--- linux-3.13.0.orig/Documentation/ABI/removed/net_dma +++ linux-3.13.0/Documentation/ABI/removed/net_dma @@ -0,0 +1,8 @@ +What: tcp_dma_copybreak sysctl +Date: Removed in kernel v3.13 +Contact: Dan Williams +Description: + Formerly the lower limit, in bytes, of the size of socket reads + that will be offloaded to a DMA copy engine. Removed due to + coherency issues of the cpu potentially touching the buffers + while dma is in flight. --- linux-3.13.0.orig/Documentation/ABI/stable/sysfs-firmware-opal-dump +++ linux-3.13.0/Documentation/ABI/stable/sysfs-firmware-opal-dump @@ -0,0 +1,41 @@ +What: /sys/firmware/opal/dump +Date: Feb 2014 +Contact: Stewart Smith +Description: + This directory exposes interfaces for interacting with + the FSP and platform dumps through OPAL firmware interface. + + This is only for the powerpc/powernv platform. + + initiate_dump: When '1' is written to it, + we will initiate a dump. + Read this file for supported commands. + + 0xXX-0xYYYY: A directory for dump of type 0xXX and + id 0xYYYY (in hex). The name of this + directory should not be relied upon to + be in this format, only that it's unique + among all dumps. For determining the type + and ID of the dump, use the id and type files. + Do not rely on any particular size of dump + type or dump id. + + Each dump has the following files: + id: An ASCII representation of the dump ID + in hex (e.g. '0x01') + type: An ASCII representation of the type of + dump in the format "0x%x %s" with the ID + in hex and a description of the dump type + (or 'unknown'). + Type '0xffffffff unknown' is used when + we could not get the type from firmware. + e.g. '0x02 System/Platform Dump' + dump: A binary file containing the dump. + The size of the dump is the size of this file. + acknowledge: When 'ack' is written to this, we will + acknowledge that we've retrieved the + dump to the service processor. It will + then remove it, making the dump + inaccessible. + Reading this file will get a list of + supported actions. --- linux-3.13.0.orig/Documentation/ABI/stable/sysfs-firmware-opal-elog +++ linux-3.13.0/Documentation/ABI/stable/sysfs-firmware-opal-elog @@ -0,0 +1,60 @@ +What: /sys/firmware/opal/elog +Date: Feb 2014 +Contact: Stewart Smith +Description: + This directory exposes error log entries retrieved + through the OPAL firmware interface. + + Each error log is identified by a unique ID and will + exist until explicitly acknowledged to firmware. + + Each log entry has a directory in /sys/firmware/opal/elog. + + Log entries may be purged by the service processor + before retrieved by firmware or retrieved/acknowledged by + Linux if there is no room for more log entries. + + In the event that Linux has retrieved the log entries + but not explicitly acknowledged them to firmware and + the service processor needs more room for log entries, + the only remaining copy of a log message may be in + Linux. + + Typically, a user space daemon will monitor for new + entries, read them out and acknowledge them. + + The service processor may be able to store more log + entries than firmware can, so after you acknowledge + an event from Linux you may instantly get another one + from the queue that was generated some time in the past. + + The raw log format is a binary format. We currently + do not parse this at all in kernel, leaving it up to + user space to solve the problem. In future, we may + do more parsing in kernel and add more files to make + it easier for simple user space processes to extract + more information. + + For each log entry (directory), there are the following + files: + + id: An ASCII representation of the ID of the + error log, in hex - e.g. "0x01". + + type: An ASCII representation of the type id and + description of the type of error log. + Currently just "0x00 PEL" - platform error log. + In the future there may be additional types. + + raw: A read-only binary file that can be read + to get the raw log entry. These are + <16kb, often just hundreds of bytes and + "average" 2kb. + + acknowledge: Writing 'ack' to this file will acknowledge + the error log to firmware (and in turn + the service processor, if applicable). + Shortly after acknowledging it, the log + entry will be removed from sysfs. + Reading this file will list the supported + operations (curently just acknowledge). \ No newline at end of file --- linux-3.13.0.orig/Documentation/ABI/testing/ima_policy +++ linux-3.13.0/Documentation/ABI/testing/ima_policy @@ -23,7 +23,7 @@ [fowner]] lsm: [[subj_user=] [subj_role=] [subj_type=] [obj_user=] [obj_role=] [obj_type=]] - option: [[appraise_type=]] + option: [[appraise_type=]] [permit_directio] base: func:= [BPRM_CHECK][MMAP_CHECK][FILE_CHECK][MODULE_CHECK] mask:= [MAY_READ] [MAY_WRITE] [MAY_APPEND] [MAY_EXEC] --- linux-3.13.0.orig/Documentation/ABI/testing/sysfs-module +++ linux-3.13.0/Documentation/ABI/testing/sysfs-module @@ -49,3 +49,4 @@ O - out-of-tree module F - force-loaded module C - staging driver module + X - unsigned module --- linux-3.13.0.orig/Documentation/devices.txt +++ linux-3.13.0/Documentation/devices.txt @@ -353,6 +353,7 @@ 133 = /dev/exttrp External device trap 134 = /dev/apm_bios Advanced Power Management BIOS 135 = /dev/rtc Real Time Clock + 137 = /dev/vhci Bluetooth virtual HCI driver 139 = /dev/openprom SPARC OpenBoot PROM 140 = /dev/relay8 Berkshire Products Octal relay card 141 = /dev/relay16 Berkshire Products ISO-16 relay card --- linux-3.13.0.orig/Documentation/devicetree/bindings/arm/pmu.txt +++ linux-3.13.0/Documentation/devicetree/bindings/arm/pmu.txt @@ -7,6 +7,7 @@ Required properties: - compatible : should be one of + "apm,potenza-pmu" "arm,armv8-pmuv3" "arm,cortex-a15-pmu" "arm,cortex-a9-pmu" --- linux-3.13.0.orig/Documentation/devicetree/bindings/ata/ahci-platform.txt +++ linux-3.13.0/Documentation/devicetree/bindings/ata/ahci-platform.txt @@ -10,6 +10,8 @@ Optional properties: - dma-coherent : Present if dma operations are coherent +- clocks : a list of phandle + clock specifier pairs +- target-supply : regulator for SATA target power Example: sata@ffe08000 { --- linux-3.13.0.orig/Documentation/devicetree/bindings/ata/apm-xgene.txt +++ linux-3.13.0/Documentation/devicetree/bindings/ata/apm-xgene.txt @@ -0,0 +1,76 @@ +* APM X-Gene 6.0 Gb/s SATA host controller nodes + +SATA host controller nodes are defined to describe on-chip Serial ATA +controllers. Each SATA controller (pair of ports) have its own node. + +Required properties: +- compatible : Shall contain: + * "apm,xgene-ahci" +- reg : First memory resource shall be the AHCI memory + resource. + Second memory resource shall be the host controller + core memory resource. + Third memory resource shall be the host controller + diagnostic memory resource. + 4th memory resource shall be the host controller + AXI memory resource. + 5th optional memory resource shall be the host + controller MUX memory resource if required. +- interrupts : Interrupt-specifier for SATA host controller IRQ. +- clocks : Reference to the clock entry. +- phys : A list of phandles + phy-specifiers, one for each + entry in phy-names. +- phy-names : Should contain: + * "sata-phy" for the SATA 6.0Gbps PHY + +Optional properties: +- status : Shall be "ok" if enabled or "disabled" if disabled. + Default is "ok". + +Example: + sataclk: sataclk { + compatible = "fixed-clock"; + #clock-cells = <1>; + clock-frequency = <100000000>; + clock-output-names = "sataclk"; + }; + + phy2: phy@1f22a000 { + compatible = "apm,xgene-phy"; + reg = <0x0 0x1f22a000 0x0 0x100>; + #phy-cells = <1>; + }; + + phy3: phy@1f23a000 { + compatible = "apm,xgene-phy"; + reg = <0x0 0x1f23a000 0x0 0x100>; + #phy-cells = <1>; + }; + + sata2: sata@1a400000 { + compatible = "apm,xgene-ahci"; + reg = <0x0 0x1a400000 0x0 0x1000>, + <0x0 0x1f220000 0x0 0x1000>, + <0x0 0x1f22d000 0x0 0x1000>, + <0x0 0x1f22e000 0x0 0x1000>, + <0x0 0x1f227000 0x0 0x1000>; + interrupts = <0x0 0x87 0x4>; + status = "ok"; + clocks = <&sataclk 0>; + phys = <&phy2 0>; + phy-names = "sata-phy"; + }; + + sata3: sata@1a800000 { + compatible = "apm,xgene-ahci-pcie"; + reg = <0x0 0x1a800000 0x0 0x1000>, + <0x0 0x1f230000 0x0 0x1000>, + <0x0 0x1f23d000 0x0 0x1000>, + <0x0 0x1f23e000 0x0 0x1000>, + <0x0 0x1f237000 0x0 0x1000>; + interrupts = <0x0 0x88 0x4>; + status = "ok"; + clocks = <&sataclk 0>; + phys = <&phy3 0>; + phy-names = "sata-phy"; + }; --- linux-3.13.0.orig/Documentation/devicetree/bindings/ata/marvell.txt +++ linux-3.13.0/Documentation/devicetree/bindings/ata/marvell.txt @@ -1,7 +1,7 @@ * Marvell Orion SATA Required Properties: -- compatibility : "marvell,orion-sata" +- compatibility : "marvell,orion-sata" or "marvell,armada-370-sata" - reg : Address range of controller - interrupts : Interrupt controller is using - nr-ports : Number of SATA ports in use. --- linux-3.13.0.orig/Documentation/devicetree/bindings/dma/ti-edma.txt +++ linux-3.13.0/Documentation/devicetree/bindings/dma/ti-edma.txt @@ -29,6 +29,6 @@ dma-channels = <64>; ti,edma-regions = <4>; ti,edma-slots = <256>; - ti,edma-xbar-event-map = <1 12 - 2 13>; + ti,edma-xbar-event-map = /bits/ 16 <1 12 + 2 13>; }; --- linux-3.13.0.orig/Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt +++ linux-3.13.0/Documentation/devicetree/bindings/gpio/snps-dwapb-gpio.txt @@ -0,0 +1,57 @@ +* Synopsys DesignWare APB GPIO controller + +Required properties: +- compatible : Should contain "snps,dw-apb-gpio" +- reg : Address and length of the register set for the device. +- #address-cells : should be 1 (for addressing port subnodes). +- #size-cells : should be 0 (port subnodes). + +The GPIO controller has a configurable number of ports, each of which are +represented as child nodes with the following properties: + +Required properties: +- compatible : "snps,dw-apb-gpio-port" +- gpio-controller : Marks the device node as a gpio controller. +- #gpio-cells : Should be 1. It is the pin number. +- reg : The integer port index of the port, a single cell. + +Optional properties: +- interrupt-controller : The first port may be configured to be an interrupt +controller. +- #interrupt-cells : Specifies the number of cells needed to encode an + interrupt. Shall be set to 2. The first cell defines the interrupt number, + the second encodes the triger flags encoded as described in + Documentation/devicetree/bindings/interrupts.txt +- interrupt-parent : The parent interrupt controller. +- interrupts : The interrupt to the parent controller raised when GPIOs + generate the interrupts. +- snps,nr-gpios : The number of pins in the port, a single cell. + +Example: + +gpio: gpio@20000 { + compatible = "snps,dw-apb-gpio"; + reg = <0x20000 0x1000>; + #address-cells = <1>; + #size-cells = <0>; + + porta: gpio-controller@0 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <1>; + snps,nr-gpios = <8>; + reg = <0>; + interrupt-controller; + #interrupt-cells = <2>; + interrupt-parent = <&vic1>; + interrupts = <0>; + }; + + portb: gpio-controller@1 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + #gpio-cells = <1>; + snps,nr-gpios = <8>; + reg = <1>; + }; +}; --- linux-3.13.0.orig/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt +++ linux-3.13.0/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt @@ -5,7 +5,11 @@ - reg : Offset and length of the register set for the device - compatible : Should be "marvell,mv64xxx-i2c" or "allwinner,sun4i-i2c" - or "marvell,mv78230-i2c" + or "marvell,mv78230-i2c" or "marvell,mv78230-a0-i2c" + Note: Only use "marvell,mv78230-a0-i2c" for a very rare, + initial version of the SoC which had broken offload + support. Linux auto-detects this and sets it + appropriately. - interrupts : The interrupt number Optional properties : --- linux-3.13.0.orig/Documentation/devicetree/bindings/interrupt-controller/interrupts.txt +++ linux-3.13.0/Documentation/devicetree/bindings/interrupt-controller/interrupts.txt @@ -4,11 +4,13 @@ 1) Interrupt client nodes ------------------------- -Nodes that describe devices which generate interrupts must contain an either an -"interrupts" property or an "interrupts-extended" property. These properties -contain a list of interrupt specifiers, one per output interrupt. The format of -the interrupt specifier is determined by the interrupt controller to which the -interrupts are routed; see section 2 below for details. +Nodes that describe devices which generate interrupts must contain an +"interrupts" property, an "interrupts-extended" property, or both. If both are +present, the latter should take precedence; the former may be provided simply +for compatibility with software that does not recognize the latter. These +properties contain a list of interrupt specifiers, one per output interrupt. The +format of the interrupt specifier is determined by the interrupt controller to +which the interrupts are routed; see section 2 below for details. Example: interrupt-parent = <&intc1>; @@ -28,10 +30,6 @@ Example: interrupts-extended = <&intc1 5 1>, <&intc2 1 0>; -A device node may contain either "interrupts" or "interrupts-extended", but not -both. If both properties are present, then the operating system should log an -error and use only the data in "interrupts". - 2) Interrupt controller nodes ----------------------------- --- linux-3.13.0.orig/Documentation/devicetree/bindings/net/apm-xgene-enet.txt +++ linux-3.13.0/Documentation/devicetree/bindings/net/apm-xgene-enet.txt @@ -0,0 +1,68 @@ +APM X-Gene SoC Ethernet nodes + +Ethernet nodes are defined to describe on-chip ethernet interfaces in +APM X-Gene SoC. + +Required properties for all the ethernet interfaces: +- compatible: Should be "apm,xgene-enet" +- reg: Address and length of the register set for the device. It contains the + information of registers in the same order as described by reg-names +- reg-names: Should contain the register set names + - "enet_csr": Ethernet control and status register address space + - "ring_csr": Descriptor ring control and status register address space + - "ring_cmd": Descriptor ring command register address space +- interrupts: Ethernet main interrupt +- clocks: Reference to the clock entry. +- local-mac-address: MAC address assigned to this device +- phy-connection-type: Interface type between ethernet device and PHY device + +Required properties for ethernet interfaces that have external PHY: +- phy-handle: Reference to a PHY node connected to this device + +- mdio: Device tree subnode with the following required properties: + - compatible: Must be "apm,xgene-mdio". + - #address-cells: Must be <1>. + - #size-cells: Must be <0>. + + For the phy on the mdio bus, there must be a node with the following fields: + - compatible: PHY identifier. Please refer ./phy.txt for the format. + - reg: The ID number for the phy. + +Optional properties: +- status: Should be "ok" or "disabled" for enabled/disabled. Default is "ok". + +Example: + menetclk: menetclk { + compatible = "apm,xgene-device-clock"; + clock-output-names = "menetclk"; + status = "ok"; + }; + + menet: ethernet@17020000 { + compatible = "apm,xgene-enet"; + status = "disabled"; + reg = <0x0 0x17020000 0x0 0xd100>, + <0x0 0X17030000 0x0 0X400>, + <0x0 0X10000000 0x0 0X200>; + reg-names = "enet_csr", "ring_csr", "ring_cmd"; + interrupts = <0x0 0x3c 0x4>; + clocks = <&menetclk 0>; + local-mac-address = [00 01 73 00 00 01]; + phy-connection-type = "rgmii"; + phy-handle = <&menetphy>; + mdio { + compatible = "apm,xgene-mdio"; + #address-cells = <1>; + #size-cells = <0>; + menetphy: menetphy@3 { + compatible = "ethernet-phy-id001c.c915"; + reg = <0x3>; + }; + + }; + }; + +/* Board-specific peripheral configurations */ +&menet { + status = "ok"; +}; --- linux-3.13.0.orig/Documentation/devicetree/bindings/net/micrel-ks8851.txt +++ linux-3.13.0/Documentation/devicetree/bindings/net/micrel-ks8851.txt @@ -7,3 +7,4 @@ Optional properties: - local-mac-address : Ethernet mac address to use +- vdd-supply: supply for Ethernet mac --- linux-3.13.0.orig/Documentation/devicetree/bindings/pci/xgene-pci.txt +++ linux-3.13.0/Documentation/devicetree/bindings/pci/xgene-pci.txt @@ -0,0 +1,52 @@ +* AppliedMicro X-Gene PCIe interface + +Required properties: +- device_type: set to "pci" +- compatible: should contain "xgene,pcie" to identify the core. +- reg: A list of physical base address and length for each set of controller + registers. Must contain an entry for each entry in the reg-names + property. +- reg-names: Must include the following entries: + "csr": controller configuration registers. + "cfg": pcie configuration space registers. +- #address-cells: set to <3> +- #size-cells: set to <2> +- ranges: ranges for the outbound memory, I/O regions. +- dma-ranges: ranges for the inbound memory regions. +- #interrupt-cells: set to <1> +- interrupt-map-mask and interrupt-map: standard PCI properties + to define the mapping of the PCIe interface to interrupt + numbers. +- clocks: from common clock binding: handle to pci clock. + +Optional properties: +- status: Either "ok" or "disabled". + +Example: + +SoC specific DT Entry: + pcie0: pcie@1f2b0000 { + status = "disabled"; + device_type = "pci"; + compatible = "apm,xgene-pcie"; + #interrupt-cells = <1>; + #size-cells = <2>; + #address-cells = <3>; + reg = < 0x00 0x1f2b0000 0x0 0x00010000 /* Controller registers */ + 0xe0 0xd0000000 0x0 0x00200000>; /* PCI config space */ + reg-names = "csr", "cfg"; + ranges = <0x01000000 0x00 0x00000000 0xe0 0x00000000 0x00 0x00010000 /* io */ + 0x02000000 0x00 0x10000000 0xe0 0x10000000 0x00 0x80000000>; /* mem */ + dma-ranges = <0x42000000 0x40 0x00000000 0x40 0x00000000 0x40 0x00000000>; + interrupt-map-mask = <0x0 0x0 0x0 0x7>; + interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc2 0x1 + 0x0 0x0 0x0 0x2 &gic 0x0 0xc3 0x1 + 0x0 0x0 0x0 0x3 &gic 0x0 0xc4 0x1 + 0x0 0x0 0x0 0x4 &gic 0x0 0xc5 0x1>; + clocks = <&pcie0clk 0>; + }; + +Board specific DT Entry: + &pcie0 { + status = "ok"; + }; --- linux-3.13.0.orig/Documentation/devicetree/bindings/phy/apm-xgene-phy.txt +++ linux-3.13.0/Documentation/devicetree/bindings/phy/apm-xgene-phy.txt @@ -0,0 +1,79 @@ +* APM X-Gene 15Gbps Multi-purpose PHY nodes + +PHY nodes are defined to describe on-chip 15Gbps Multi-purpose PHY. Each +PHY (pair of lanes) has its own node. + +Required properties: +- compatible : Shall be "apm,xgene-phy". +- reg : PHY memory resource is the SDS PHY access resource. +- #phy-cells : Shall be 1 as it expects one argument for setting + the mode of the PHY. Possible values are 0 (SATA), + 1 (SGMII), 2 (PCIe), 3 (USB), and 4 (XFI). + +Optional properties: +- status : Shall be "ok" if enabled or "disabled" if disabled. + Default is "ok". +- clocks : Reference to the clock entry. +- apm,tx-eye-tuning : Manual control to fine tune the capture of the serial + bit lines from the automatic calibrated position. + Two set of 3-tuple setting for each (up to 3) + supported link speed on the host. Range from 0 to + 127 in unit of one bit period. Default is 10. +- apm,tx-eye-direction : Eye tuning manual control direction. 0 means sample + data earlier than the nominal sampling point. 1 means + sample data later than the nominal sampling point. + Two set of 3-tuple setting for each (up to 3) + supported link speed on the host. Default is 0. +- apm,tx-boost-gain : Frequency boost AC (LSB 3-bit) and DC (2-bit) + gain control. Two set of 3-tuple setting for each + (up to 3) supported link speed on the host. Range is + between 0 to 31 in unit of dB. Default is 3. +- apm,tx-amplitude : Amplitude control. Two set of 3-tuple setting for + each (up to 3) supported link speed on the host. + Range is between 0 to 199500 in unit of uV. + Default is 199500 uV. +- apm,tx-pre-cursor1 : 1st pre-cursor emphasis taps control. Two set of + 3-tuple setting for each (up to 3) supported link + speed on the host. Range is 0 to 273000 in unit of + uV. Default is 0. +- apm,tx-pre-cursor2 : 2st pre-cursor emphasis taps control. Two set of + 3-tuple setting for each (up to 3) supported link + speed on the host. Range is 0 to 127400 in unit uV. + Default is 0x0. +- apm,tx-post-cursor : Post-cursor emphasis taps control. Two set of + 3-tuple setting for Gen1, Gen2, and Gen3. Range is + between 0 to 0x1f in unit of 18.2mV. Default is 0xf. +- apm,tx-speed : Tx operating speed. One set of 3-tuple for each + supported link speed on the host. + 0 = 1-2Gbps + 1 = 2-4Gbps (1st tuple default) + 2 = 4-8Gbps + 3 = 8-15Gbps (2nd tuple default) + 4 = 2.5-4Gbps + 5 = 4-5Gbps + 6 = 5-6Gbps + 7 = 6-16Gbps (3rd tuple default) + +NOTE: PHY override parameters are board specific setting. + +Example: + phy1: phy@1f21a000 { + compatible = "apm,xgene-phy"; + reg = <0x0 0x1f21a000 0x0 0x100>; + #phy-cells = <1>; + status = "disabled"; + }; + + phy2: phy@1f22a000 { + compatible = "apm,xgene-phy"; + reg = <0x0 0x1f22a000 0x0 0x100>; + #phy-cells = <1>; + status = "ok"; + }; + + phy3: phy@1f23a000 { + compatible = "apm,xgene-phy"; + reg = <0x0 0x1f23a000 0x0 0x100>; + #phy-cells = <1>; + status = "ok"; + }; --- linux-3.13.0.orig/Documentation/devicetree/bindings/rng/apm,rng.txt +++ linux-3.13.0/Documentation/devicetree/bindings/rng/apm,rng.txt @@ -0,0 +1,17 @@ +APM X-Gene SoC random number generator. + +Required properties: + +- compatible : should be "apm,xgene-rng" +- reg : specifies base physical address and size of the registers map +- clocks : phandle to clock-controller plus clock-specifier pair +- interrupts : specify the fault interrupt for the RNG device + +Example: + + rng: rng@10520000 { + compatible = "apm,xgene-rng"; + reg = <0x0 0x10520000 0x0 0x100>; + interrupts = <0x0 0x41 0x4>; + clocks = <&rngpkaclk 0>; + }; --- linux-3.13.0.orig/Documentation/devicetree/bindings/rtc/xgene-rtc.txt +++ linux-3.13.0/Documentation/devicetree/bindings/rtc/xgene-rtc.txt @@ -0,0 +1,28 @@ +* APM X-Gene Real Time Clock + +RTC controller for the APM X-Gene Real Time Clock + +Required properties: +- compatible : Should be "apm,xgene-rtc" +- reg: physical base address of the controller and length of memory mapped + region. +- interrupts: IRQ line for the RTC. +- #clock-cells: Should be 1. +- clocks: Reference to the clock entry. + +Example: + +rtcclk: rtcclk { + compatible = "fixed-clock"; + #clock-cells = <1>; + clock-frequency = <100000000>; + clock-output-names = "rtcclk"; +}; + +rtc: rtc@10510000 { + compatible = "apm,xgene-rtc"; + reg = <0x0 0x10510000 0x0 0x400>; + interrupts = <0x0 0x46 0x4>; + #clock-cells = <1>; + clocks = <&rtcclk 0>; +}; --- linux-3.13.0.orig/Documentation/devicetree/bindings/serial/of-serial.txt +++ linux-3.13.0/Documentation/devicetree/bindings/serial/of-serial.txt @@ -37,6 +37,7 @@ - auto-flow-control: one way to enable automatic flow control support. The driver is allowed to detect support for the capability even without this property. +- has-hw-flow-control: the hardware has flow control capability. Example: --- linux-3.13.0.orig/Documentation/devicetree/bindings/spi/efm32-spi.txt +++ linux-3.13.0/Documentation/devicetree/bindings/spi/efm32-spi.txt @@ -3,7 +3,7 @@ Required properties: - #address-cells: see spi-bus.txt - #size-cells: see spi-bus.txt -- compatible: should be "efm32,spi" +- compatible: should be "energymicro,efm32-spi" - reg: Offset and length of the register set for the controller - interrupts: pair specifying rx and tx irq - clocks: phandle to the spi clock @@ -15,7 +15,7 @@ spi1: spi@0x4000c400 { /* USART1 */ #address-cells = <1>; #size-cells = <0>; - compatible = "efm32,spi"; + compatible = "energymicro,efm32-spi"; reg = <0x4000c400 0x400>; interrupts = <15 16>; clocks = <&cmu 20>; --- linux-3.13.0.orig/Documentation/filesystems/Locking +++ linux-3.13.0/Documentation/filesystems/Locking @@ -65,6 +65,7 @@ struct file *, unsigned open_flag, umode_t create_mode, int *opened); int (*tmpfile) (struct inode *, struct dentry *, umode_t); + int (*dentry_open)(struct dentry *, struct file *, const struct cred *); locking rules: all may block @@ -93,6 +94,7 @@ update_time: no atomic_open: yes tmpfile: no +dentry_open: no Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on victim. --- linux-3.13.0.orig/Documentation/filesystems/overlayfs.txt +++ linux-3.13.0/Documentation/filesystems/overlayfs.txt @@ -0,0 +1,199 @@ +Written by: Neil Brown + +Overlay Filesystem +================== + +This document describes a prototype for a new approach to providing +overlay-filesystem functionality in Linux (sometimes referred to as +union-filesystems). An overlay-filesystem tries to present a +filesystem which is the result over overlaying one filesystem on top +of the other. + +The result will inevitably fail to look exactly like a normal +filesystem for various technical reasons. The expectation is that +many use cases will be able to ignore these differences. + +This approach is 'hybrid' because the objects that appear in the +filesystem do not all appear to belong to that filesystem. In many +cases an object accessed in the union will be indistinguishable +from accessing the corresponding object from the original filesystem. +This is most obvious from the 'st_dev' field returned by stat(2). + +While directories will report an st_dev from the overlay-filesystem, +all non-directory objects will report an st_dev from the lower or +upper filesystem that is providing the object. Similarly st_ino will +only be unique when combined with st_dev, and both of these can change +over the lifetime of a non-directory object. Many applications and +tools ignore these values and will not be affected. + +Upper and Lower +--------------- + +An overlay filesystem combines two filesystems - an 'upper' filesystem +and a 'lower' filesystem. When a name exists in both filesystems, the +object in the 'upper' filesystem is visible while the object in the +'lower' filesystem is either hidden or, in the case of directories, +merged with the 'upper' object. + +It would be more correct to refer to an upper and lower 'directory +tree' rather than 'filesystem' as it is quite possible for both +directory trees to be in the same filesystem and there is no +requirement that the root of a filesystem be given for either upper or +lower. + +The lower filesystem can be any filesystem supported by Linux and does +not need to be writable. The lower filesystem can even be another +overlayfs. The upper filesystem will normally be writable and if it +is it must support the creation of trusted.* extended attributes, and +must provide valid d_type in readdir responses, at least for symbolic +links - so NFS is not suitable. + +A read-only overlay of two read-only filesystems may use any +filesystem type. + +Directories +----------- + +Overlaying mainly involves directories. If a given name appears in both +upper and lower filesystems and refers to a non-directory in either, +then the lower object is hidden - the name refers only to the upper +object. + +Where both upper and lower objects are directories, a merged directory +is formed. + +At mount time, the two directories given as mount options are combined +into a merged directory: + + mount -t overlayfs overlayfs -olowerdir=/lower,upperdir=/upper /overlay + +Then whenever a lookup is requested in such a merged directory, the +lookup is performed in each actual directory and the combined result +is cached in the dentry belonging to the overlay filesystem. If both +actual lookups find directories, both are stored and a merged +directory is created, otherwise only one is stored: the upper if it +exists, else the lower. + +Only the lists of names from directories are merged. Other content +such as metadata and extended attributes are reported for the upper +directory only. These attributes of the lower directory are hidden. + +whiteouts and opaque directories +-------------------------------- + +In order to support rm and rmdir without changing the lower +filesystem, an overlay filesystem needs to record in the upper filesystem +that files have been removed. This is done using whiteouts and opaque +directories (non-directories are always opaque). + +The overlay filesystem uses extended attributes with a +"trusted.overlay." prefix to record these details. + +A whiteout is created as a symbolic link with target +"(overlay-whiteout)" and with xattr "trusted.overlay.whiteout" set to "y". +When a whiteout is found in the upper level of a merged directory, any +matching name in the lower level is ignored, and the whiteout itself +is also hidden. + +A directory is made opaque by setting the xattr "trusted.overlay.opaque" +to "y". Where the upper filesystem contains an opaque directory, any +directory in the lower filesystem with the same name is ignored. + +readdir +------- + +When a 'readdir' request is made on a merged directory, the upper and +lower directories are each read and the name lists merged in the +obvious way (upper is read first, then lower - entries that already +exist are not re-added). This merged name list is cached in the +'struct file' and so remains as long as the file is kept open. If the +directory is opened and read by two processes at the same time, they +will each have separate caches. A seekdir to the start of the +directory (offset 0) followed by a readdir will cause the cache to be +discarded and rebuilt. + +This means that changes to the merged directory do not appear while a +directory is being read. This is unlikely to be noticed by many +programs. + +seek offsets are assigned sequentially when the directories are read. +Thus if + - read part of a directory + - remember an offset, and close the directory + - re-open the directory some time later + - seek to the remembered offset + +there may be little correlation between the old and new locations in +the list of filenames, particularly if anything has changed in the +directory. + +Readdir on directories that are not merged is simply handled by the +underlying directory (upper or lower). + + +Non-directories +--------------- + +Objects that are not directories (files, symlinks, device-special +files etc.) are presented either from the upper or lower filesystem as +appropriate. When a file in the lower filesystem is accessed in a way +the requires write-access, such as opening for write access, changing +some metadata etc., the file is first copied from the lower filesystem +to the upper filesystem (copy_up). Note that creating a hard-link +also requires copy_up, though of course creation of a symlink does +not. + +The copy_up may turn out to be unnecessary, for example if the file is +opened for read-write but the data is not modified. + +The copy_up process first makes sure that the containing directory +exists in the upper filesystem - creating it and any parents as +necessary. It then creates the object with the same metadata (owner, +mode, mtime, symlink-target etc.) and then if the object is a file, the +data is copied from the lower to the upper filesystem. Finally any +extended attributes are copied up. + +Once the copy_up is complete, the overlay filesystem simply +provides direct access to the newly created file in the upper +filesystem - future operations on the file are barely noticed by the +overlay filesystem (though an operation on the name of the file such as +rename or unlink will of course be noticed and handled). + + +Non-standard behavior +--------------------- + +The copy_up operation essentially creates a new, identical file and +moves it over to the old name. The new file may be on a different +filesystem, so both st_dev and st_ino of the file may change. + +Any open files referring to this inode will access the old data and +metadata. Similarly any file locks obtained before copy_up will not +apply to the copied up file. + +On a file opened with O_RDONLY fchmod(2), fchown(2), futimesat(2) and +fsetxattr(2) will fail with EROFS. + +If a file with multiple hard links is copied up, then this will +"break" the link. Changes will not be propagated to other names +referring to the same inode. + +Symlinks in /proc/PID/ and /proc/PID/fd which point to a non-directory +object in overlayfs will not contain valid absolute paths, only +relative paths leading up to the filesystem's root. This will be +fixed in the future. + +Some operations are not atomic, for example a crash during copy_up or +rename will leave the filesystem in an inconsistent state. This will +be addressed in the future. + +Changes to underlying filesystems +--------------------------------- + +Offline changes, when the overlay is not mounted, are allowed to either +the upper or the lower trees. + +Changes to the underlying filesystems while part of a mounted overlay +filesystem are not allowed. If the underlying filesystem is changed, +the behavior of the overlay is undefined, though it will not result in +a crash or deadlock. --- linux-3.13.0.orig/Documentation/filesystems/proc.txt +++ linux-3.13.0/Documentation/filesystems/proc.txt @@ -1377,8 +1377,8 @@ For example, if a task is using all allowed memory, its badness score will be 1000. If it is using half of its allowed memory, its score will be 500. -There is an additional factor included in the badness score: root -processes are given 3% extra memory over other tasks. +There is an additional factor included in the badness score: the current memory +and swap usage is discounted by 3% for root processes. The amount of "allowed" memory depends on the context in which the oom killer was called. If it is due to the memory assigned to the allocating task's cpuset --- linux-3.13.0.orig/Documentation/filesystems/vfs.txt +++ linux-3.13.0/Documentation/filesystems/vfs.txt @@ -362,6 +362,7 @@ int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned open_flag, umode_t create_mode, int *opened); int (*tmpfile) (struct inode *, struct dentry *, umode_t); + int (*dentry_open)(struct dentry *, struct file *, const struct cred *); }; Again, all methods are called without any locks being held, unless @@ -681,6 +682,12 @@ but instead uses bmap to find out where the blocks in the file are and uses those addresses directly. + dentry_open: this is an alternative to f_op->open(), the difference is that + this method may open a file not necessarily originating from the same + filesystem as the one i_op->open() was called on. It may be + useful for stacking filesystems which want to allow native I/O directly + on underlying files. + invalidatepage: If a page has PagePrivate set, then invalidatepage will be called when part or all of the page is to be removed --- linux-3.13.0.orig/Documentation/i2c/busses/i2c-piix4 +++ linux-3.13.0/Documentation/i2c/busses/i2c-piix4 @@ -13,7 +13,7 @@ * AMD SP5100 (SB700 derivative found on some server mainboards) Datasheet: Publicly available at the AMD website http://support.amd.com/us/Embedded_TechDocs/44413.pdf - * AMD Hudson-2, CZ + * AMD Hudson-2, ML, CZ Datasheet: Not publicly available * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge Datasheet: Publicly available at the SMSC website http://www.smsc.com --- linux-3.13.0.orig/Documentation/input/elantech.txt +++ linux-3.13.0/Documentation/input/elantech.txt @@ -504,9 +504,12 @@ * reg_10 bit 7 6 5 4 3 2 1 0 - 0 0 0 0 0 0 0 A + 0 0 0 0 R F T A A: 1 = enable absolute tracking + T: 1 = enable two finger mode auto correct + F: 1 = disable ABS Position Filter + R: 1 = enable real hardware resolution 6.2 Native absolute mode 6 byte packet format ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --- linux-3.13.0.orig/Documentation/kernel-parameters.txt +++ linux-3.13.0/Documentation/kernel-parameters.txt @@ -652,6 +652,10 @@ /proc//coredump_filter. See also Documentation/filesystems/proc.txt. + cpufreq_driver= [X86] Allow only the named cpu frequency scaling driver + to register. Example: cpufreq_driver=powernow-k8 + Format: { none | STRING } + cpuidle.off=1 [CPU_IDLE] disable the cpuidle sub-system @@ -890,6 +894,12 @@ edd= [EDD] Format: {"off" | "on" | "skip[mbr]"} + efi= [EFI] + Format: { "old_map" } + old_map [X86-64]: switch to the old ioremap-based EFI + runtime services mapping. 32-bit still uses this one by + default. + efi_no_storage_paranoia [EFI; X86] Using this parameter you can use more than 50% of your efi variable storage. Use this parameter only if @@ -962,6 +972,13 @@ parameter will force ia64_sal_cache_flush to call ia64_pal_cache_flush instead of SAL_CACHE_FLUSH. + forcepae [X86-32] + Forcefully enable Physical Address Extension (PAE). + Many Pentium M systems disable PAE but may have a + functionally usable PAE implementation. + Note: This parameter is unsupported, may cause unknown + problems, and will taint the kernel. + ftrace=[tracer] [FTRACE] will set and start the specified tracer as early as possible in order to facilitate early --- linux-3.13.0.orig/Documentation/lzo.txt +++ linux-3.13.0/Documentation/lzo.txt @@ -0,0 +1,164 @@ + +LZO stream format as understood by Linux's LZO decompressor +=========================================================== + +Introduction + + This is not a specification. No specification seems to be publicly available + for the LZO stream format. This document describes what input format the LZO + decompressor as implemented in the Linux kernel understands. The file subject + of this analysis is lib/lzo/lzo1x_decompress_safe.c. No analysis was made on + the compressor nor on any other implementations though it seems likely that + the format matches the standard one. The purpose of this document is to + better understand what the code does in order to propose more efficient fixes + for future bug reports. + +Description + + The stream is composed of a series of instructions, operands, and data. The + instructions consist in a few bits representing an opcode, and bits forming + the operands for the instruction, whose size and position depend on the + opcode and on the number of literals copied by previous instruction. The + operands are used to indicate : + + - a distance when copying data from the dictionary (past output buffer) + - a length (number of bytes to copy from dictionary) + - the number of literals to copy, which is retained in variable "state" + as a piece of information for next instructions. + + Optionally depending on the opcode and operands, extra data may follow. These + extra data can be a complement for the operand (eg: a length or a distance + encoded on larger values), or a literal to be copied to the output buffer. + + The first byte of the block follows a different encoding from other bytes, it + seems to be optimized for literal use only, since there is no dictionary yet + prior to that byte. + + Lengths are always encoded on a variable size starting with a small number + of bits in the operand. If the number of bits isn't enough to represent the + length, up to 255 may be added in increments by consuming more bytes with a + rate of at most 255 per extra byte (thus the compression ratio cannot exceed + around 255:1). The variable length encoding using #bits is always the same : + + length = byte & ((1 << #bits) - 1) + if (!length) { + length = ((1 << #bits) - 1) + length += 255*(number of zero bytes) + length += first-non-zero-byte + } + length += constant (generally 2 or 3) + + For references to the dictionary, distances are relative to the output + pointer. Distances are encoded using very few bits belonging to certain + ranges, resulting in multiple copy instructions using different encodings. + Certain encodings involve one extra byte, others involve two extra bytes + forming a little-endian 16-bit quantity (marked LE16 below). + + After any instruction except the large literal copy, 0, 1, 2 or 3 literals + are copied before starting the next instruction. The number of literals that + were copied may change the meaning and behaviour of the next instruction. In + practice, only one instruction needs to know whether 0, less than 4, or more + literals were copied. This is the information stored in the variable + in this implementation. This number of immediate literals to be copied is + generally encoded in the last two bits of the instruction but may also be + taken from the last two bits of an extra operand (eg: distance). + + End of stream is declared when a block copy of distance 0 is seen. Only one + instruction may encode this distance (0001HLLL), it takes one LE16 operand + for the distance, thus requiring 3 bytes. + + IMPORTANT NOTE : in the code some length checks are missing because certain + instructions are called under the assumption that a certain number of bytes + follow because it has already been garanteed before parsing the instructions. + They just have to "refill" this credit if they consume extra bytes. This is + an implementation design choice independant on the algorithm or encoding. + +Byte sequences + + First byte encoding : + + 0..17 : follow regular instruction encoding, see below. It is worth + noting that codes 16 and 17 will represent a block copy from + the dictionary which is empty, and that they will always be + invalid at this place. + + 18..21 : copy 0..3 literals + state = (byte - 17) = 0..3 [ copy literals ] + skip byte + + 22..255 : copy literal string + length = (byte - 17) = 4..238 + state = 4 [ don't copy extra literals ] + skip byte + + Instruction encoding : + + 0 0 0 0 X X X X (0..15) + Depends on the number of literals copied by the last instruction. + If last instruction did not copy any literal (state == 0), this + encoding will be a copy of 4 or more literal, and must be interpreted + like this : + + 0 0 0 0 L L L L (0..15) : copy long literal string + length = 3 + (L ?: 15 + (zero_bytes * 255) + non_zero_byte) + state = 4 (no extra literals are copied) + + If last instruction used to copy between 1 to 3 literals (encoded in + the instruction's opcode or distance), the instruction is a copy of a + 2-byte block from the dictionary within a 1kB distance. It is worth + noting that this instruction provides little savings since it uses 2 + bytes to encode a copy of 2 other bytes but it encodes the number of + following literals for free. It must be interpreted like this : + + 0 0 0 0 D D S S (0..15) : copy 2 bytes from <= 1kB distance + length = 2 + state = S (copy S literals after this block) + Always followed by exactly one byte : H H H H H H H H + distance = (H << 2) + D + 1 + + If last instruction used to copy 4 or more literals (as detected by + state == 4), the instruction becomes a copy of a 3-byte block from the + dictionary from a 2..3kB distance, and must be interpreted like this : + + 0 0 0 0 D D S S (0..15) : copy 3 bytes from 2..3 kB distance + length = 3 + state = S (copy S literals after this block) + Always followed by exactly one byte : H H H H H H H H + distance = (H << 2) + D + 2049 + + 0 0 0 1 H L L L (16..31) + Copy of a block within 16..48kB distance (preferably less than 10B) + length = 2 + (L ?: 7 + (zero_bytes * 255) + non_zero_byte) + Always followed by exactly one LE16 : D D D D D D D D : D D D D D D S S + distance = 16384 + (H << 14) + D + state = S (copy S literals after this block) + End of stream is reached if distance == 16384 + + 0 0 1 L L L L L (32..63) + Copy of small block within 16kB distance (preferably less than 34B) + length = 2 + (L ?: 31 + (zero_bytes * 255) + non_zero_byte) + Always followed by exactly one LE16 : D D D D D D D D : D D D D D D S S + distance = D + 1 + state = S (copy S literals after this block) + + 0 1 L D D D S S (64..127) + Copy 3-4 bytes from block within 2kB distance + state = S (copy S literals after this block) + length = 3 + L + Always followed by exactly one byte : H H H H H H H H + distance = (H << 3) + D + 1 + + 1 L L D D D S S (128..255) + Copy 5-8 bytes from block within 2kB distance + state = S (copy S literals after this block) + length = 5 + L + Always followed by exactly one byte : H H H H H H H H + distance = (H << 3) + D + 1 + +Authors + + This document was written by Willy Tarreau on 2014/07/19 during an + analysis of the decompression code available in Linux 3.16-rc5. The code is + tricky, it is possible that this document contains mistakes or that a few + corner cases were overlooked. In any case, please report any doubt, fix, or + proposed updates to the author(s) so that the document can be updated. --- linux-3.13.0.orig/Documentation/misc-devices/apm-xgene-qmtm +++ linux-3.13.0/Documentation/misc-devices/apm-xgene-qmtm @@ -0,0 +1,149 @@ +AppliedMicro X-Gene SOC Queue Manager/Traffic Manager Document + +Copyright (c) 2013 Applied Micro Circuits Corporation. +Author: Ravi Patel + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License version 2 as published by +the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + + +Overview: +QMTM is a device which interacts with CPU, Ethernet, PktDMA and Security +subsystems through AXI BUS. Its centralized resource manager/driver exports +APIs for CPU, Ethernet, PktDMA and Security subsystems to +1. Initialize & allocate queue & pbn. +2. Read queue state so that subsystems driver knows how much more work it can + offload to its subsystem. +3. Apply QoS for subsystems on their queues. + +Layout: +The layout represents run-time flow of messages between Ethernet subsystem, CPU +and QMTM in APM X-Gene SOC. PktDMA and Security subsystems interfaces with QMTM +in the same way as Ethernet. + + + CPU + o-------------------------o + | | + +----|[2] {5}|----+ + | | [1] {4} | | +Register | o------+-----------+------o | Register +Write | CPU WR | | CPU RD | Write +to start v MSG v ^ MSG v to notify +packet | | DDR | | packet +transmit | o--------+-----o-----+--------o | received + | | Q0 M . M M | M M . M Q1 | | + | | for S . S S | S S . S for | | + | | ETH G . G G | G G . G ETH | | + | | TX n . 2 1 | 1 2 . n RX | | + | o----------+---o---+----------o | + | | | | + v v ^ v + | | | | +o--------|-------------|-------|-------------|--------o +| | | | | | Coherent +| v v ^ v | I/O +| | | | | | BUS +o--------|-------------|-------|-------------|--------o + | [3] | | {3} | + v QMTM RD v ^ QMTM WR v + | MSG | | MSG | + o----+----o--------+---o---+--------o----+----o + | Queue 0 | | | Queue 1 | + | Command o ETH PBN 0 o CPU PBN 0 o Command | Queue Manager/ + | Register| | |Register | Traffic Manager + o---------o---+--------o--------+---o---------o + | | + v ^ +Ethernet RD MSG | [4] ETH {2} | Ethernet WR MSG +from its PBN o---+-----------------+---o to CPU PBN + | | + | Egress MAC Ingress MAC | + | [5] {1} | + o------|-----------|------o + v ^ + | | + TX Data RX Data + +Transmit Flow +[1] CPU (Ethernet driver) prepares 32 byte Ethernet egress work message and + enqueues the message to the queue in DDR. +[2] CPU (Ethernet driver) notifies QMTM that there is a message enqueued in + Ethernet transmit queue (e.g. Q0). +[3] QMTM prefetches the Ethernet egress work messages into Ethernet PBN + (e.g. ETH PBN 0). +[4] Ethernet reads work messages from its PBN. +[5] Ethernet DMAs payload from DDR to its egress FIFO and transmits data out. + +Receive Flow +{1} Ethernet receives data and DMAs payload from its ingress FIFO to DDR and + prepares a Ethernet ingress work message. +{2} Ethernet pushes work message to QMTM. +{3} QMTM prefetches the Ethernet ingress work messages into CPU PBN + (e.g. CPU PBN 0) and then interrupts CPU. +{4} CPU (Ethernet driver) dequeues the 32 bytes Ethernet ingress work message + from the queue in DDR. +{5} CPU (Ethernet driver) notifies QMTM that it dequeued a message from + Ethernet receive queue (e.g. Q1). + + +Definition: +1. QMTM (Queue/Traffic Manager) + QMTM manages queues and pbns for CPU, Ethernet, PktDMA and Security + Subsystems. It also performs flow control and QoS on queues. + +2. Slave/Client/Agent + Ethernet, PktDMA (XOR Engine) and Security Engine Subsystems & CPU whose + queues and pbn are managed by QMTM are called slave/client/agent. + +3. Queue + Queue is circular FIFO memory for QMTM hardware in which a 16 bytes, + 32 bytes or 64 bytes message is dequeued OR enqueued between CPU and + Ethernet, PktDMA and Security Engine Subsystems. + +4. PB + Each subsystem in the APM X-Gene SoC device has a prefetch buffer for + storing messages in order to pipeline the QMTM processing latency with the + subsystem processing latency. The number of buffers prefetched depends on + the QM/TM processing latency and the subsystem data rate. + + There are multiple PB for a subsystem, each PB is assigned a number which is + called PBN. Each subsystem and CPU can have max 32 pbns, however QMTM limits + how many pbns it supports for each subsystem. + +5. Message + The subsystems in the APM X-Gene SoC communicate with a central Queue Manager + (QM) that manages all the messages queued to the subsystems. The subsystems + communicate with the QM using messages that include information about the + work to be performed and the location of the buffers or data on which the + work is to be performed. + + A message consists of 16, 32 or 64 bytes which resides in a queue. A message + which is + a. 16 bytes contains information of data buffer, length, etc. allocated by + subsystem driver. + b. 32 or 64 bytes contains information about the work to be done for a + subsystem. Each subsystem defines its own format of work message. + + Each subsystem defines their own format of work message. A message (or queue + descriptor) has attribute fields (QMTM specific) which are common for all + subsystem work messages. The remaining fields of a message are specific to + subsystem. QMTM device doesn't have any knowledge of these subsystems + specific fields and the data operation which subsystem is going to perform + using these fields. + + e.g. + 1. Ethernet work message includes data address & length which is used by + Ethernet DMA engine for copying the data to/from its internal FIFO. + 2. PktDMA work message includes multiple data addresses & lengths for + doing scatter/gather, XOR operations and result data address/es to give + back result to the CPU (driver). + 3. Security work message includes data address & length for doing encryption + or decryption, the type of encryption or decryption and result data + address to give back result to the CPU (driver). --- linux-3.13.0.orig/Documentation/misc-devices/mei/mei-amt-version.c +++ linux-3.13.0/Documentation/misc-devices/mei/mei-amt-version.c @@ -115,8 +115,6 @@ struct mei_client *cl; struct mei_connect_client_data data; - mei_deinit(me); - me->verbose = verbose; me->fd = open("/dev/mei", O_RDWR); --- linux-3.13.0.orig/Documentation/module-signing.txt +++ linux-3.13.0/Documentation/module-signing.txt @@ -53,7 +53,8 @@ If this is off (ie. "permissive"), then modules for which the key is not available and modules that are unsigned are permitted, but the kernel will - be marked as being tainted. + be marked as being tainted, and the concerned modules will be marked as + tainted, shown with the character 'X'. If this is on (ie. "restrictive"), only modules that have a valid signature that can be verified by a public key in the kernel's possession --- linux-3.13.0.orig/Documentation/networking/fman.txt +++ linux-3.13.0/Documentation/networking/fman.txt @@ -0,0 +1,232 @@ +The FMan driver +Sysfs file description + +Author: Andrei Sorin Pistirica +Updated: 2010-12-08 + +FMAN SYSFS statistics counters +------------------------------ +The document contains statistics counters description for every type of +FMAN port and for all FMAN modules as well (FMAN, FMAN:DMA and FMAN:PCD). +Every counter is related to a specific register mapped as well. + +Port type: Tx +------------- +port_frame: FMBM_TFRC + "counts the total number of frames flowing on the Tx port, regardless of + whether they got transmitted or discarded." + +port_discard_frame: FMBM_TFDC + "counts the number of frames that were discarded due to DMA error indication + that was sensed during the process of frame payload or frame context + loading." + +port_dealloc_buf:FMBM_TBDC + "counts the number of buffer deallocate operations." + +port_enq_total:FMQM_PnETFC + "counts the number of enqueue operations preformed for this portID." + +port_length_err:FMBM_TFLEDC + "counts the number of frames that were discarded due to frame length error." + +port_unsupprted_format:FMBM_TFUFDC + "counts the number of frames that were discarded due to frame format + error - frame descriptor contains unsupported format." + +port_deq_total:FMQM_PnDTFC + "counts the total number of FDs that dequeued from the QMan for this + portID." + +port_deq_from_default:FMQM_PnDDCFQC + "counts the number of time the portID used the default confirmation FQID + from the BMI.s FMBM_TDCFQID" + +port_deq_confirm:FMQM_PnDCC + "counts the number of times the PortID got a FD from the dequeue response + that require confirmation." + +Port type: Rx +------------- +port_frame:FMBM_RFRC + "counts the total number of frames received on the Rx port." + +port_discard_frame:FMBM_RFDC + "counts the number of frames received on the Rx port that were not able + to enter the receive queue system due to WRED algorithm." + +port_dealloc_buf:FMBM_RBDC + "counts the number of buffer deallocate operations." + +port_enq_total:FMQM_PnETFC + "counts the number of enqueue operations preformed for this portID" + +port_rx_bad_frame:FMBM_RBFC + "counts the number of frames received on the Rx port with an error + indication" + +port_rx_large_frame:FMBM_RLFC + "counts the number of frames received on the Rx port with an over size + indication. Over size indication is marked when frame size exceeds the + maximum configured in the corresponding MAC configuration register" + +port_rx_out_of_buffers_discard:FMBM_RODC + "counts the number of frames received on the Rx port that were not able + to enter the receive queue system due to lack of external buffers, or + the lack of suitable buffers that cause the S/G list to grow beyond 16 + entries, or the lack of suitable buffer to hold S/G list (including + start margin), or the lack of suitable buffer to hold the frame header + (including start margin)." + +port_rx_filter_frame:FMBM_RFFC + "counts the number of frames received on the Rx port that were filtered + out by the parse and classify modules of the Fman" + +Port type: Oh +------------- +Oh ports have the same counters as RX and TX ports. The counters are listed +below and the description can be found at the other ports (above): + port_frame + port_discard_frame + port_dealloc_buf + port_enq_total + port_length_err + port_unsupprted_format + port_deq_total + port_deq_from_default + port_deq_confirm + port_rx_bad_frame + port_rx_large_frame + port_rx_out_of_buffers_discard + +Fman: +----- +enq_total_frame:FMQM_ETFC + "counts the total number of enqueue operations the QMI performed." + +deq_total_frame:FMQM_DTFC + "counts the total number of FDs that dequeued from the Qman." + +deq_0:FMQM_DC0 + "counts the number of times the QMI received a NULL FD from the QMan as a + response to a dequeue request (command)" + +deq_1:FMQM_DC1 + "counts the number of times the QMI got 1 FD from the QMan as a response + to a dequeue request (command)" + +deq_2:FMQM_DC2 + "counts the number of times the QMI got 2 FD from the QMan as a response + to a dequeue request (command)" + +deq_from_default:FMQM_DDCFQC + "counts the number of times the QMI used the default confirmation FQID + from the BMI's FMBM_TCFQID" + +deq_from_context:FMQM_CBCFQC + "counts the number of times the QMI used the override confirmation FQID + from the FD command field" + +deq_from_fd:FMQM_DFOCFQC + "counts the number of times the QMI used the override confirmation FQID + from the FD command field" + +deq_confirm:(FMQM_DCC + "counts the number of times the QMI gets an FD from the dequeue response + that requires confirmation" + +Fman: DMA +--------- +The FMAN:DMA counters are read from FMDMSR register. They reports bus error +events that are recognized by the FMan DMA controller on all of the +FMan DMA channels. + The counters are: + cmq_not_empty + bus_error + read_buf_ecc_error + write_buf_ecc_sys_error + write_buf_ecc_fm_error + +Fman: PCD +--------- +pcd_kg_total:FMKG_TPC + "count of packets passed in the keygen on all schemes" + +pcd_plcr_yellow:FMPL_YPC + "counts the total number of YELLOW packets that exit the Policer" + +pcd_plcr_red:FMPL_RPC + "counter counts the total number of RED packets that exit the Policer" + +pcd_plcr_recolored_to_red:FMPL_RRPC + "counts the number of packets that changed color to RED by the Policer" + +pcd_plcr_recolored_to_yellow:FMPL_RYPC + "counts the number of packets that changed color to YELLOW by the Policer" + +pcd_plcr_total:FMPL_TPC + "counts the total number of packets passed in the Policer" + +pcd_plcr_length_mismatch:FMPL_FLMC + "counts the number of packets with length mismatch indicated by an offset + value of 0xFF in the selected parser result entry or when the calculated + frame offset result is greater than the packet full length provided by + FD length" + +pcd_prs_parse_dispatch:FMPR_PDS + "counts the number of times the parser block was dispatched by FPM" + +pcd_prs_l2_parse_result_returned:FMPR_L2RRS + "counts the number of times L2 parse result was returned (including with + errors)" + +pcd_prs_l3_parse_result_returned:FMPR_L3RRS + "counts the number of times L3 parse result was returned (including with + errors) + +pcd_prs_l4_parse_result_returned:FMPR_L4RRS + "counts the number of times L4 parse result was returned (including with + errors)" + +pcd_prs_shim_parse_result_returned:FMPR_SRRS + "counts the number of times Shim parse result was returned (including with + errors)" + +pcd_prs_l2_parse_result_returned_with_err:FMPR_L2RRES + "counts the number of times L2 parse result was returned with errors" + +pcd_prs_l3_parse_result_returned_with_err:FMPR_L3RRES + "counts the number of times L3 parse result was returned with errors" + +pcd_prs_l4_parse_result_returned_with_err:FMPR_L4RRES + "counts the number of times L4 parse result was returned with errors" + +pcd_prs_shim_parse_result_returned_with_err:FMPR_SRRES + "counts the number of times Shim parse result was returned with errors" + +pcd_prs_soft_prs_cycles:FMPR_SPCS + "counts the number of cycles spent executing soft parser instruction + (including stall cycles)" + +pcd_prs_soft_prs_stall_cycles:FMPR_SPSCS + "counts the number of cycles stalled waiting for parser internal memory + reads while executing soft parser instruction." + +pcd_prs_hard_prs_cycle_incl_stall_cycles:FMPR_HXSCS + "counts the number of cycles spent executing hard parser (including stall + cycles)" + +pcd_prs_muram_read_cycles:FMPR_MRCS + "counts the number of cycles while performing FMan Memory read" + +pcd_prs_muram_read_stall_cycles:FMPR_MRSCS + "counts the number of cycles stalled while performing FMan Memory read" + +pcd_prs_muram_write_cycles:FMPR_MWCS + "counts the number of cycles while performing FMan Memory write" + +pcd_prs_muram_write_stall_cycles:FMPR_MWSCS + "counts the number of cycles stalled while performing FMan Memory write" + +pcd_prs_fpm_command_stall_cycles:FMPR_FCSCS + "counts the number of cycles stalled while performing a FPM command" --- linux-3.13.0.orig/Documentation/networking/i40evf.txt +++ linux-3.13.0/Documentation/networking/i40evf.txt @@ -0,0 +1,47 @@ +Linux* Base Driver for Intel(R) Network Connection +================================================== + +Intel XL710 X710 Virtual Function Linux driver. +Copyright(c) 2013 Intel Corporation. + +Contents +======== + +- Identifying Your Adapter +- Known Issues/Troubleshooting +- Support + +This file describes the i40evf Linux* Base Driver for the Intel(R) XL710 +X710 Virtual Function. + +The i40evf driver supports XL710 and X710 virtual function devices that +can only be activated on kernels with CONFIG_PCI_IOV enabled. + +The guest OS loading the i40evf driver must support MSI-X interrupts. + +Identifying Your Adapter +======================== + +For more information on how to identify your adapter, go to the Adapter & +Driver ID Guide at: + + http://support.intel.com/support/go/network/adapter/idguide.htm + +Known Issues/Troubleshooting +============================ + + +Support +======= + +For general information, go to the Intel support website at: + + http://support.intel.com + +or the Intel Wired Networking project hosted by Sourceforge at: + + http://sourceforge.net/projects/e1000 + +If an issue is identified with the released source code on the supported +kernel with a supported adapter, email the specific information related +to the issue to e1000-devel@lists.sf.net --- linux-3.13.0.orig/Documentation/networking/ip-sysctl.txt +++ linux-3.13.0/Documentation/networking/ip-sysctl.txt @@ -542,12 +542,6 @@ not receive a window scaling option from them. Default: 0 -tcp_dma_copybreak - INTEGER - Lower limit, in bytes, of the size of socket reads that will be - offloaded to a DMA copy engine, if one is present in the system - and CONFIG_NET_DMA is enabled. - Default: 4096 - tcp_thin_linear_timeouts - BOOLEAN Enable dynamic triggering of linear timeouts for thin streams. If set, a check is performed upon retransmission by timeout to --- linux-3.13.0.orig/Documentation/networking/timestamping.txt +++ linux-3.13.0/Documentation/networking/timestamping.txt @@ -85,7 +85,7 @@ by the network device and will be empty without that support. -SIOCSHWTSTAMP: +SIOCSHWTSTAMP, SIOCGHWTSTAMP: Hardware time stamping must also be initialized for each device driver that is expected to do hardware time stamping. The parameter is defined in @@ -115,6 +115,10 @@ space is responsible to ensure that multiple processes don't interfere with each other and that the settings are reset. +Any process can read the actual configuration by passing this +structure to ioctl(SIOCGHWTSTAMP) in the same way. However, this has +not been implemented in all drivers. + /* possible values for hwtstamp_config->tx_type */ enum { /* @@ -157,7 +161,8 @@ A driver which supports hardware time stamping must support the SIOCSHWTSTAMP ioctl and update the supplied struct hwtstamp_config with -the actual values as described in the section on SIOCSHWTSTAMP. +the actual values as described in the section on SIOCSHWTSTAMP. It +should also support SIOCGHWTSTAMP. Time stamps for received packets must be stored in the skb. To get a pointer to the shared time stamp structure of the skb call skb_hwtstamps(). Then --- linux-3.13.0.orig/Documentation/oops-tracing.txt +++ linux-3.13.0/Documentation/oops-tracing.txt @@ -265,6 +265,9 @@ 13: 'O' if an externally-built ("out-of-tree") module has been loaded. + 14: 'X' if an unsigned module has been loaded in a kernel supporting + module signature. + The primary reason for the 'Tainted: ' string is to tell kernel debuggers if this is a clean kernel or if anything unusual has occurred. Tainting is permanent: even if an offending module is --- linux-3.13.0.orig/Documentation/ramoops.txt +++ linux-3.13.0/Documentation/ramoops.txt @@ -14,11 +14,19 @@ 1. Ramoops concepts -Ramoops uses a predefined memory area to store the dump. The start and size of -the memory area are set using two variables: +Ramoops uses a predefined memory area to store the dump. The start and size +and type of the memory area are set using three variables: * "mem_address" for the start * "mem_size" for the size. The memory size will be rounded down to a power of two. + * "mem_type" to specifiy if the memory type (default is pgprot_writecombine). + +Typically the default value of mem_type=0 should be used as that sets the pstore +mapping to pgprot_writecombine. Setting mem_type=1 attempts to use +pgprot_noncached, which only works on some platforms. This is because pstore +depends on atomic operations. At least on ARM, pgprot_noncached causes the +memory to be mapped strongly ordered, and atomic operations on strongly ordered +memory are implementation defined, and won't work on many ARMs such as omaps. The memory area is divided into "record_size" chunks (also rounded down to power of two) and each oops/panic writes a "record_size" chunk of @@ -55,6 +63,7 @@ static struct ramoops_platform_data ramoops_data = { .mem_size = <...>, .mem_address = <...>, + .mem_type = <...>, .record_size = <...>, .dump_oops = <...>, .ecc = <...>, --- linux-3.13.0.orig/Documentation/sound/alsa/ALSA-Configuration.txt +++ linux-3.13.0/Documentation/sound/alsa/ALSA-Configuration.txt @@ -2026,8 +2026,8 @@ ------------------- Module for sound cards based on the Asus AV66/AV100/AV200 chips, - i.e., Xonar D1, DX, D2, D2X, DS, Essence ST (Deluxe), Essence STX, - HDAV1.3 (Deluxe), and HDAV1.3 Slim. + i.e., Xonar D1, DX, D2, D2X, DS, DSX, Essence ST (Deluxe), + Essence STX (II), HDAV1.3 (Deluxe), and HDAV1.3 Slim. This module supports autoprobe and multiple cards. --- linux-3.13.0.orig/Documentation/stable_kernel_rules.txt +++ linux-3.13.0/Documentation/stable_kernel_rules.txt @@ -29,6 +29,9 @@ Procedure for submitting patches to the -stable tree: + - If the patch covers files in net/ or drivers/net please follow netdev stable + submission guidelines as described in + Documentation/networking/netdev-FAQ.txt - Send the patch, after verifying that it follows the above rules, to stable@vger.kernel.org. You must note the upstream commit ID in the changelog of your submission, as well as the kernel version you wish --- linux-3.13.0.orig/Documentation/sysctl/kernel.txt +++ linux-3.13.0/Documentation/sysctl/kernel.txt @@ -33,6 +33,7 @@ - domainname - hostname - hotplug +- kexec_load_disabled - kptr_restrict - kstack_depth_to_print [ X86 only ] - l2cr [ PPC only ] @@ -287,6 +288,18 @@ ============================================================== +kexec_load_disabled: + +A toggle indicating if the kexec_load syscall has been disabled. This +value defaults to 0 (false: kexec_load enabled), but can be set to 1 +(true: kexec_load disabled). Once true, kexec can no longer be used, and +the toggle cannot be set back to false. This allows a kexec image to be +loaded before disabling the syscall, allowing a system to set up (and +later use) an image without it being altered. Generally used together +with the "modules_disabled" sysctl. + +============================================================== + kptr_restrict: This toggle indicates whether restrictions are placed on @@ -331,7 +344,7 @@ in an otherwise modular kernel. This toggle defaults to off (0), but can be set true (1). Once true, modules can be neither loaded nor unloaded, and the toggle cannot be set back -to false. +to false. Generally used with the "kexec_load_disabled" toggle. ============================================================== @@ -742,6 +755,8 @@ 1024 - A module from drivers/staging was loaded. 2048 - The system is working around a severe firmware bug. 4096 - An out-of-tree module has been loaded. +8192 - An unsigned module has been loaded in a kernel supporting module + signature. ============================================================== --- linux-3.13.0.orig/Documentation/sysctl/vm.txt +++ linux-3.13.0/Documentation/sysctl/vm.txt @@ -669,7 +669,8 @@ set to pcp->high/4. The upper limit of batch is (PAGE_SHIFT * 8) The initial value is zero. Kernel does not use this value at boot time to set -the high water marks for each per cpu page list. +the high water marks for each per cpu page list. If the user writes '0' to this +sysctl, it will revert to this default behavior. ============================================================== --- linux-3.13.0.orig/Documentation/video4linux/gspca.txt +++ linux-3.13.0/Documentation/video4linux/gspca.txt @@ -55,6 +55,7 @@ sonixj 0458:7025 Genius Eye 311Q sn9c20x 0458:7029 Genius Look 320s sonixj 0458:702e Genius Slim 310 NB +sn9c20x 0458:7045 Genius Look 1320 V2 sn9c20x 0458:704a Genius Slim 1320 sn9c20x 0458:704c Genius i-Look 1321 sn9c20x 045e:00f4 LifeCam VX-6000 (SN9C20x + OV9650) --- linux-3.13.0.orig/Documentation/virtual/kvm/api.txt +++ linux-3.13.0/Documentation/virtual/kvm/api.txt @@ -2327,7 +2327,7 @@ Capability: basic Architectures: arm, arm64 Type: vcpu ioctl -Parameters: struct struct kvm_vcpu_init (in) +Parameters: struct kvm_vcpu_init (in) Returns: 0 on success; -1 on error Errors:  EINVAL:    the target is unknown, or the combination of features is invalid. --- linux-3.13.0.orig/Documentation/virtual/kvm/mmu.txt +++ linux-3.13.0/Documentation/virtual/kvm/mmu.txt @@ -425,6 +425,20 @@ Since only 19 bits are used to store generation-number on mmio spte, all pages are zapped when there is an overflow. +Unfortunately, a single memory access might access kvm_memslots(kvm) multiple +times, the last one happening when the generation number is retrieved and +stored into the MMIO spte. Thus, the MMIO spte might be created based on +out-of-date information, but with an up-to-date generation number. + +To avoid this, the generation number is incremented again after synchronize_srcu +returns; thus, the low bit of kvm_memslots(kvm)->generation is only 1 during a +memslot update, while some SRCU readers might be using the old copy. We do not +want to use an MMIO sptes created with an odd generation number, and we can do +this without losing a bit in the MMIO spte. The low bit of the generation +is not stored in MMIO spte, and presumed zero when it is extracted out of the +spte. If KVM is unlucky and creates an MMIO spte while the low bit is 1, +the next access to the spte will always be a cache miss. + Further reading =============== --- linux-3.13.0.orig/Documentation/vm/hwpoison.txt +++ linux-3.13.0/Documentation/vm/hwpoison.txt @@ -84,6 +84,11 @@ PR_MCE_KILL_EARLY: Early kill PR_MCE_KILL_LATE: Late kill PR_MCE_KILL_DEFAULT: Use system global default + Note that if you want to have a dedicated thread which handles + the SIGBUS(BUS_MCEERR_AO) on behalf of the process, you should + call prctl(PR_MCE_KILL_EARLY) on the designated thread. Otherwise, + the SIGBUS is sent to the main thread. + PR_MCE_KILL_GET return current mode --- linux-3.13.0.orig/Documentation/x86/x86_64/mm.txt +++ linux-3.13.0/Documentation/x86/x86_64/mm.txt @@ -12,6 +12,8 @@ ffffe90000000000 - ffffe9ffffffffff (=40 bits) hole ffffea0000000000 - ffffeaffffffffff (=40 bits) virtual memory map (1TB) ... unused hole ... +ffffff0000000000 - ffffff7fffffffff (=39 bits) %esp fixup stacks +... unused hole ... ffffffff80000000 - ffffffffa0000000 (=512 MB) kernel text mapping, from phys 0 ffffffffa0000000 - ffffffffff5fffff (=1525 MB) module mapping space ffffffffff600000 - ffffffffffdfffff (=8 MB) vsyscalls @@ -28,4 +30,11 @@ Current X86-64 implementations only support 40 bits of address space, but we support up to 46 bits. This expands into MBZ space in the page tables. +->trampoline_pgd: + +We map EFI runtime services in the aforementioned PGD in the virtual +range of 64Gb (arbitrarily set, can be raised if needed) + +0xffffffef00000000 - 0xffffffff00000000 + -Andi Kleen, Jul 2004 --- linux-3.13.0.orig/MAINTAINERS +++ linux-3.13.0/MAINTAINERS @@ -665,6 +665,13 @@ F: drivers/net/appletalk/ F: net/appletalk/ +APPLIED MICRO (APM) X-GENE SOC ETHERNET DRIVER +M: Iyappan Subramanian +M: Keyur Chudgar +S: Supported +F: drivers/net/ethernet/apm/xgene/ +F: Documentation/devicetree/bindings/net/apm-xgene-enet.txt + APTINA CAMERA SENSOR PLL M: Laurent Pinchart L: linux-media@vger.kernel.org @@ -2158,6 +2165,11 @@ S: Supported F: drivers/net/ethernet/cisco/enic/ +CISCO VIC LOW LATENCY NIC DRIVER +M: Upinder Malhi +S: Supported +F: drivers/infiniband/hw/usnic + CIRRUS LOGIC EP93XX ETHERNET DRIVER M: Hartley Sweeten L: netdev@vger.kernel.org @@ -4474,7 +4486,7 @@ S: Maintained F: drivers/char/hw_random/ixp4xx-rng.c -INTEL ETHERNET DRIVERS (e100/e1000/e1000e/igb/igbvf/ixgb/ixgbe/ixgbevf/i40e) +INTEL ETHERNET DRIVERS (e100/e1000/e1000e/igb/igbvf/ixgb/ixgbe/ixgbevf/i40e/i40evf) M: Jeff Kirsher M: Jesse Brandeburg M: Bruce Allan @@ -4483,6 +4495,7 @@ M: Greg Rose M: Alex Duyck M: John Ronciak +M: Mitch Williams L: e1000-devel@lists.sourceforge.net W: http://www.intel.com/support/feedback.htm W: http://e1000.sourceforge.net/ @@ -4498,6 +4511,7 @@ F: Documentation/networking/ixgbe.txt F: Documentation/networking/ixgbevf.txt F: Documentation/networking/i40e.txt +F: Documentation/networking/i40evf.txt F: drivers/net/ethernet/intel/ INTEL-MID GPIO DRIVER @@ -6345,6 +6359,13 @@ F: include/scsi/osd_* F: fs/exofs/ +OVERLAYFS FILESYSTEM +M: Miklos Szeredi +L: linux-fsdevel@vger.kernel.org +S: Supported +F: fs/overlayfs/* +F: Documentation/filesystems/overlayfs.txt + P54 WIRELESS DRIVER M: Christian Lamparter L: linux-wireless@vger.kernel.org @@ -6533,6 +6554,13 @@ S: Maintained F: drivers/pci/host/*designware* +PCI DRIVER FOR APPLIEDMICRO XGENE +M: Tanmay Inamdar +L: linux-pci@vger.kernel.org +L: linux-arm-kernel@lists.infradead.org +S: Maintained +F: drivers/pci/host/pci-xgene.c + PCMCIA SUBSYSTEM P: Linux PCMCIA Team L: linux-pcmcia@lists.infradead.org --- linux-3.13.0.orig/Makefile +++ linux-3.13.0/Makefile @@ -1,8 +1,8 @@ VERSION = 3 PATCHLEVEL = 13 -SUBLEVEL = 0 -EXTRAVERSION = -NAME = One Giant Leap for Frogkind +SUBLEVEL = 11 +EXTRAVERSION = -ckt15 +NAME = King of Alienated Frog Porn # *DOCUMENTATION* # To see a list of typical targets execute "make help" @@ -352,6 +352,12 @@ AFLAGS_KERNEL = CFLAGS_GCOV = -fprofile-arcs -ftest-coverage +# Prefer linux-backports-modules +ifneq ($(KBUILD_SRC),) +ifneq ($(shell if test -e $(KBUILD_OUTPUT)/ubuntu-build; then echo yes; fi),yes) +UBUNTUINCLUDE := -I/usr/src/linux-headers-lbm-$(KERNELRELEASE) +endif +endif # Use USERINCLUDE when you must reference the UAPI directories only. USERINCLUDE := \ @@ -364,12 +370,16 @@ # Use LINUXINCLUDE when you must reference the include/ directory. # Needed to be compatible with the O= option LINUXINCLUDE := \ + $(UBUNTUINCLUDE) \ -I$(srctree)/arch/$(hdr-arch)/include \ -Iarch/$(hdr-arch)/include/generated \ $(if $(KBUILD_SRC), -I$(srctree)/include) \ -Iinclude \ $(USERINCLUDE) +# UBUNTU: Include our third party driver stuff too +LINUXINCLUDE += -Iubuntu/include $(if $(KBUILD_SRC),-I$(srctree)/ubuntu/include) + KBUILD_CPPFLAGS := -D__KERNEL__ KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ @@ -522,7 +532,7 @@ # Objects we will link into vmlinux / subdirs we need to visit init-y := init/ -drivers-y := drivers/ sound/ firmware/ +drivers-y := drivers/ sound/ firmware/ ubuntu/ net-y := net/ libs-y := lib/ core-y := usr/ @@ -617,6 +627,8 @@ endif endif +KBUILD_CFLAGS += $(call cc-option, -fno-var-tracking-assignments) + ifdef CONFIG_DEBUG_INFO KBUILD_CFLAGS += -g KBUILD_AFLAGS += -gdwarf-2 @@ -940,6 +952,7 @@ $(error Headers not exportable for the $(SRCARCH) architecture)) $(Q)$(MAKE) $(hdr-inst)=include/uapi $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/uapi/asm $(hdr-dst) + $(Q)$(MAKE) $(hdr-inst)=ubuntu/include dst=include oldheaders= PHONY += headers_check_all headers_check_all: headers_install_all @@ -949,6 +962,7 @@ headers_check: headers_install $(Q)$(MAKE) $(hdr-inst)=include/uapi HDRCHECK=1 $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/uapi/asm $(hdr-dst) HDRCHECK=1 + $(Q)$(MAKE) $(hdr-inst)=ubuntu/include dst=include oldheaders= HDRCHECK=1 # --------------------------------------------------------------------------- # Modules --- linux-3.13.0.orig/arch/Kconfig +++ linux-3.13.0/arch/Kconfig @@ -325,6 +325,7 @@ - secure_computing is called from a ptrace_event()-safe context - secure_computing return value is checked and a return value of -1 results in the system call being skipped immediately. + - seccomp syscall wired up config SECCOMP_FILTER def_bool y --- linux-3.13.0.orig/arch/alpha/lib/csum_partial_copy.c +++ linux-3.13.0/arch/alpha/lib/csum_partial_copy.c @@ -378,6 +378,11 @@ __wsum csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum) { - return csum_partial_copy_from_user((__force const void __user *)src, - dst, len, sum, NULL); + __wsum checksum; + mm_segment_t oldfs = get_fs(); + set_fs(KERNEL_DS); + checksum = csum_partial_copy_from_user((__force const void __user *)src, + dst, len, sum, NULL); + set_fs(oldfs); + return checksum; } --- linux-3.13.0.orig/arch/arc/boot/dts/nsimosci.dts +++ linux-3.13.0/arch/arc/boot/dts/nsimosci.dts @@ -11,13 +11,16 @@ / { compatible = "snps,nsimosci"; - clock-frequency = <80000000>; /* 80 MHZ */ + clock-frequency = <20000000>; /* 20 MHZ */ #address-cells = <1>; #size-cells = <1>; interrupt-parent = <&intc>; chosen { - bootargs = "console=tty0 consoleblank=0"; + /* this is for console on PGU */ + /* bootargs = "console=tty0 consoleblank=0"; */ + /* this is for console on serial */ + bootargs = "earlycon=uart8250,mmio32,0xf0000000,115200n8 console=tty0 console=ttyS0,115200n8 consoleblank=0 debug"; }; aliases { @@ -43,33 +46,32 @@ #interrupt-cells = <1>; }; - uart0: serial@c0000000 { - compatible = "snps,dw-apb-uart"; - reg = <0xc0000000 0x2000>; + uart0: serial@f0000000 { + compatible = "ns8250"; + reg = <0xf0000000 0x2000>; interrupts = <11>; - #clock-frequency = <80000000>; clock-frequency = <3686400>; baud = <115200>; reg-shift = <2>; reg-io-width = <4>; - status = "okay"; + no-loopback-test = <1>; }; - pgu0: pgu@c9000000 { + pgu0: pgu@f9000000 { compatible = "snps,arcpgufb"; - reg = <0xc9000000 0x400>; + reg = <0xf9000000 0x400>; }; - ps2: ps2@c9001000 { + ps2: ps2@f9001000 { compatible = "snps,arc_ps2"; - reg = <0xc9000400 0x14>; + reg = <0xf9000400 0x14>; interrupts = <13>; interrupt-names = "arc_ps2_irq"; }; - eth0: ethernet@c0003000 { + eth0: ethernet@f0003000 { compatible = "snps,oscilan"; - reg = <0xc0003000 0x44>; + reg = <0xf0003000 0x44>; interrupts = <7>, <8>; interrupt-names = "rx", "tx"; }; --- linux-3.13.0.orig/arch/arc/configs/nsimosci_defconfig +++ linux-3.13.0/arch/arc/configs/nsimosci_defconfig @@ -54,6 +54,7 @@ CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DW=y +CONFIG_SERIAL_OF_PLATFORM=y CONFIG_SERIAL_ARC=y CONFIG_SERIAL_ARC_CONSOLE=y # CONFIG_HW_RANDOM is not set --- linux-3.13.0.orig/arch/arc/include/asm/kgdb.h +++ linux-3.13.0/arch/arc/include/asm/kgdb.h @@ -19,7 +19,7 @@ * register API yet */ #undef DBG_MAX_REG_NUM -#define GDB_MAX_REGS 39 +#define GDB_MAX_REGS 87 #define BREAK_INSTR_SIZE 2 #define CACHE_FLUSH_IS_SAFE 1 @@ -33,23 +33,27 @@ extern void kgdb_trap(struct pt_regs *regs); -enum arc700_linux_regnums { +/* This is the numbering of registers according to the GDB. See GDB's + * arc-tdep.h for details. + * + * Registers are ordered for GDB 7.5. It is incompatible with GDB 6.8. */ +enum arc_linux_regnums { _R0 = 0, _R1, _R2, _R3, _R4, _R5, _R6, _R7, _R8, _R9, _R10, _R11, _R12, _R13, _R14, _R15, _R16, _R17, _R18, _R19, _R20, _R21, _R22, _R23, _R24, _R25, _R26, - _BTA = 27, - _LP_START = 28, - _LP_END = 29, - _LP_COUNT = 30, - _STATUS32 = 31, - _BLINK = 32, - _FP = 33, - __SP = 34, - _EFA = 35, - _RET = 36, - _ORIG_R8 = 37, - _STOP_PC = 38 + _FP = 27, + __SP = 28, + _R30 = 30, + _BLINK = 31, + _LP_COUNT = 60, + _STOP_PC = 64, + _RET = 64, + _LP_START = 65, + _LP_END = 66, + _STATUS32 = 67, + _ECR = 76, + _BTA = 82, }; #else --- linux-3.13.0.orig/arch/arc/kernel/entry.S +++ linux-3.13.0/arch/arc/kernel/entry.S @@ -614,11 +614,13 @@ resume_kernel_mode: -#ifdef CONFIG_PREEMPT - - ; This is a must for preempt_schedule_irq() + ; Disable Interrupts from this point on + ; CONFIG_PREEMPT: This is a must for preempt_schedule_irq() + ; !CONFIG_PREEMPT: To ensure restore_regs is intr safe IRQ_DISABLE r9 +#ifdef CONFIG_PREEMPT + ; Can't preempt if preemption disabled GET_CURR_THR_INFO_FROM_SP r10 ld r8, [r10, THREAD_INFO_PREEMPT_COUNT] --- linux-3.13.0.orig/arch/arc/mm/cache_arc700.c +++ linux-3.13.0/arch/arc/mm/cache_arc700.c @@ -282,7 +282,7 @@ #else /* if V-P const for loop, PTAG can be written once outside loop */ if (full_page_op) - write_aux_reg(ARC_REG_DC_PTAG, paddr); + write_aux_reg(aux_tag, paddr); #endif while (num_lines-- > 0) { @@ -296,7 +296,7 @@ write_aux_reg(aux_cmd, vaddr); vaddr += L1_CACHE_BYTES; #else - write_aux_reg(aux, paddr); + write_aux_reg(aux_cmd, paddr); paddr += L1_CACHE_BYTES; #endif } --- linux-3.13.0.orig/arch/arm/Kconfig +++ linux-3.13.0/arch/arm/Kconfig @@ -6,6 +6,7 @@ select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST select ARCH_HAVE_CUSTOM_GPIO_H select ARCH_MIGHT_HAVE_PC_PARPORT + select ARCH_SUPPORTS_ATOMIC_RMW select ARCH_USE_CMPXCHG_LOCKREF select ARCH_WANT_IPC_PARSE_VERSION select BUILDTIME_EXTABLE_SORT if MMU @@ -871,7 +872,7 @@ bool "ARMv5 based platforms (ARM926T, XSCALE, PJ1, ...)" depends on !ARCH_MULTI_V6_V7 select ARCH_MULTI_V4_V5 - select CPU_ARM926T if (!CPU_ARM946E || CPU_ARM1020 || \ + select CPU_ARM926T if !(CPU_ARM946E || CPU_ARM1020 || \ CPU_ARM1020E || CPU_ARM1022 || CPU_ARM1026 || \ CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_FEROCEON) @@ -1543,6 +1544,7 @@ choice prompt "Memory split" + depends on MMU default VMSPLIT_3G help Select the desired split between kernel and user memory. @@ -1560,6 +1562,7 @@ config PAGE_OFFSET hex + default PHYS_OFFSET if !MMU default 0x40000000 if VMSPLIT_1G default 0x80000000 if VMSPLIT_2G default 0xC0000000 @@ -2261,6 +2264,8 @@ source "drivers/Kconfig" +source "ubuntu/Kconfig" + source "fs/Kconfig" source "arch/arm/Kconfig.debug" --- linux-3.13.0.orig/arch/arm/Kconfig.debug +++ linux-3.13.0/arch/arm/Kconfig.debug @@ -1033,7 +1033,7 @@ default 0xf1600000 if ARCH_INTEGRATOR default 0xf1c28000 if DEBUG_SUNXI_UART0 default 0xf1c28400 if DEBUG_SUNXI_UART1 - default 0xf2100000 if DEBUG_PXA_UART1 + default 0xf6200000 if DEBUG_PXA_UART1 default 0xf4090000 if ARCH_LPC32XX default 0xf4200000 if ARCH_GEMINI default 0xf8009000 if DEBUG_VEXPRESS_UART0_CA9 --- linux-3.13.0.orig/arch/arm/boot/compressed/Makefile +++ linux-3.13.0/arch/arm/boot/compressed/Makefile @@ -3,6 +3,7 @@ # # create a compressed vmlinuz image from the original vmlinux # +KBUILD_CFLAGS := $(filter-out -fstack-protector, $(KBUILD_CFLAGS)) -fno-stack-protector OBJS = --- linux-3.13.0.orig/arch/arm/boot/compressed/head.S +++ linux-3.13.0/arch/arm/boot/compressed/head.S @@ -400,8 +400,7 @@ add sp, sp, r6 #endif - tst r4, #1 - bleq cache_clean_flush + bl cache_clean_flush adr r0, BSYM(restart) add r0, r0, r6 @@ -1050,6 +1049,8 @@ b call_cache_fn __armv4_mpu_cache_flush: + tst r4, #1 + movne pc, lr mov r2, #1 mov r3, #0 mcr p15, 0, ip, c7, c6, 0 @ invalidate D cache @@ -1067,6 +1068,8 @@ mov pc, lr __fa526_cache_flush: + tst r4, #1 + movne pc, lr mov r1, #0 mcr p15, 0, r1, c7, c14, 0 @ clean and invalidate D cache mcr p15, 0, r1, c7, c5, 0 @ flush I cache @@ -1075,13 +1078,16 @@ __armv6_mmu_cache_flush: mov r1, #0 - mcr p15, 0, r1, c7, c14, 0 @ clean+invalidate D + tst r4, #1 + mcreq p15, 0, r1, c7, c14, 0 @ clean+invalidate D mcr p15, 0, r1, c7, c5, 0 @ invalidate I+BTB - mcr p15, 0, r1, c7, c15, 0 @ clean+invalidate unified + mcreq p15, 0, r1, c7, c15, 0 @ clean+invalidate unified mcr p15, 0, r1, c7, c10, 4 @ drain WB mov pc, lr __armv7_mmu_cache_flush: + tst r4, #1 + bne iflush mrc p15, 0, r10, c0, c1, 5 @ read ID_MMFR1 tst r10, #0xf << 16 @ hierarchical cache (ARMv7) mov r10, #0 @@ -1142,6 +1148,8 @@ mov pc, lr __armv5tej_mmu_cache_flush: + tst r4, #1 + movne pc, lr 1: mrc p15, 0, r15, c7, c14, 3 @ test,clean,invalidate D cache bne 1b mcr p15, 0, r0, c7, c5, 0 @ flush I cache @@ -1149,6 +1157,8 @@ mov pc, lr __armv4_mmu_cache_flush: + tst r4, #1 + movne pc, lr mov r2, #64*1024 @ default: 32K dcache size (*2) mov r11, #32 @ default: 32 byte line size mrc p15, 0, r3, c0, c0, 1 @ read cache type @@ -1182,6 +1192,8 @@ __armv3_mmu_cache_flush: __armv3_mpu_cache_flush: + tst r4, #1 + movne pc, lr mov r1, #0 mcr p15, 0, r1, c7, c0, 0 @ invalidate whole cache v3 mov pc, lr --- linux-3.13.0.orig/arch/arm/boot/dts/am33xx.dtsi +++ linux-3.13.0/arch/arm/boot/dts/am33xx.dtsi @@ -114,7 +114,7 @@ compatible = "ti,edma3"; ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2"; reg = <0x49000000 0x10000>, - <0x44e10f90 0x10>; + <0x44e10f90 0x40>; interrupts = <12 13 14>; #dma-cells = <1>; dma-channels = <64>; @@ -422,7 +422,7 @@ ti,hwmods = "usb_otg_hs"; status = "disabled"; - usb_ctrl_mod: control@44e10000 { + usb_ctrl_mod: control@44e10620 { compatible = "ti,am335x-usb-ctrl-module"; reg = <0x44e10620 0x10 0x44e10648 0x4>; @@ -525,7 +525,7 @@ "tx14", "tx15"; }; - cppi41dma: dma-controller@07402000 { + cppi41dma: dma-controller@47402000 { compatible = "ti,am3359-cppi41"; reg = <0x47400000 0x1000 0x47402000 0x1000 --- linux-3.13.0.orig/arch/arm/boot/dts/armada-370-xp.dtsi +++ linux-3.13.0/arch/arm/boot/dts/armada-370-xp.dtsi @@ -152,7 +152,7 @@ }; sata@a0000 { - compatible = "marvell,orion-sata"; + compatible = "marvell,armada-370-sata"; reg = <0xa0000 0x5000>; interrupts = <55>; clocks = <&gateclk 15>, <&gateclk 30>; --- linux-3.13.0.orig/arch/arm/boot/dts/armada-xp-db.dts +++ linux-3.13.0/arch/arm/boot/dts/armada-xp-db.dts @@ -40,7 +40,7 @@ /* Device Bus parameters are required */ /* Read parameters */ - devbus,bus-width = <8>; + devbus,bus-width = <16>; devbus,turn-off-ps = <60000>; devbus,badr-skew-ps = <0>; devbus,acc-first-ps = <124000>; --- linux-3.13.0.orig/arch/arm/boot/dts/armada-xp-gp.dts +++ linux-3.13.0/arch/arm/boot/dts/armada-xp-gp.dts @@ -49,7 +49,7 @@ /* Device Bus parameters are required */ /* Read parameters */ - devbus,bus-width = <8>; + devbus,bus-width = <16>; devbus,turn-off-ps = <60000>; devbus,badr-skew-ps = <0>; devbus,acc-first-ps = <124000>; --- linux-3.13.0.orig/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts +++ linux-3.13.0/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts @@ -23,7 +23,7 @@ memory { device_type = "memory"; - reg = <0 0x00000000 0 0xC0000000>; /* 3 GB */ + reg = <0 0x00000000 0 0x40000000>; /* 1 GB soldered on */ }; soc { @@ -37,7 +37,7 @@ /* Device Bus parameters are required */ /* Read parameters */ - devbus,bus-width = <8>; + devbus,bus-width = <16>; devbus,turn-off-ps = <60000>; devbus,badr-skew-ps = <0>; devbus,acc-first-ps = <124000>; --- linux-3.13.0.orig/arch/arm/boot/dts/at91sam9263.dtsi +++ linux-3.13.0/arch/arm/boot/dts/at91sam9263.dtsi @@ -506,6 +506,7 @@ compatible = "atmel,hsmci"; reg = <0xfff80000 0x600>; interrupts = <10 IRQ_TYPE_LEVEL_HIGH 0>; + pinctrl-names = "default"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; @@ -515,6 +516,7 @@ compatible = "atmel,hsmci"; reg = <0xfff84000 0x600>; interrupts = <11 IRQ_TYPE_LEVEL_HIGH 0>; + pinctrl-names = "default"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; --- linux-3.13.0.orig/arch/arm/boot/dts/at91sam9g45.dtsi +++ linux-3.13.0/arch/arm/boot/dts/at91sam9g45.dtsi @@ -618,6 +618,7 @@ compatible = "atmel,hsmci"; reg = <0xfff80000 0x600>; interrupts = <11 IRQ_TYPE_LEVEL_HIGH 0>; + pinctrl-names = "default"; dmas = <&dma 1 AT91_DMA_CFG_PER_ID(0)>; dma-names = "rxtx"; #address-cells = <1>; @@ -629,6 +630,7 @@ compatible = "atmel,hsmci"; reg = <0xfffd0000 0x600>; interrupts = <29 IRQ_TYPE_LEVEL_HIGH 0>; + pinctrl-names = "default"; dmas = <&dma 1 AT91_DMA_CFG_PER_ID(13)>; dma-names = "rxtx"; #address-cells = <1>; --- linux-3.13.0.orig/arch/arm/boot/dts/exynos5250-arndale.dts +++ linux-3.13.0/arch/arm/boot/dts/exynos5250-arndale.dts @@ -286,6 +286,7 @@ regulator-name = "vdd_g3d"; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; + regulator-always-on; regulator-boot-on; op_mode = <1>; }; --- linux-3.13.0.orig/arch/arm/boot/dts/imx53.dtsi +++ linux-3.13.0/arch/arm/boot/dts/imx53.dtsi @@ -87,7 +87,7 @@ ipu: ipu@18000000 { #crtc-cells = <1>; compatible = "fsl,imx53-ipu"; - reg = <0x18000000 0x080000000>; + reg = <0x18000000 0x08000000>; interrupts = <11 10>; clocks = <&clks 59>, <&clks 110>, <&clks 61>; clock-names = "bus", "di0", "di1"; @@ -1111,7 +1111,7 @@ compatible = "fsl,imx53-vpu"; reg = <0x63ff4000 0x1000>; interrupts = <9>; - clocks = <&clks 63>, <&clks 63>; + clocks = <&clks 64>, <&clks 63>; clock-names = "per", "ahb"; iram = <&ocram>; status = "disabled"; --- linux-3.13.0.orig/arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts +++ linux-3.13.0/arch/arm/boot/dts/kirkwood-mv88f6281gtw-ge.dts @@ -30,6 +30,16 @@ bootargs = "console=ttyS0,115200n8 earlyprintk"; }; + mbus { + pcie-controller { + status = "okay"; + + pcie@1,0 { + status = "okay"; + }; + }; + }; + ocp@f1000000 { pinctrl@10000 { pmx_usb_led: pmx-usb-led { @@ -73,14 +83,6 @@ ehci@50000 { status = "okay"; }; - - pcie-controller { - status = "okay"; - - pcie@1,0 { - status = "okay"; - }; - }; }; gpio-leds { --- linux-3.13.0.orig/arch/arm/boot/dts/kirkwood-nsa310-common.dtsi +++ linux-3.13.0/arch/arm/boot/dts/kirkwood-nsa310-common.dtsi @@ -4,6 +4,16 @@ / { model = "ZyXEL NSA310"; + mbus { + pcie-controller { + status = "okay"; + + pcie@1,0 { + status = "okay"; + }; + }; + }; + ocp@f1000000 { pinctrl: pinctrl@10000 { @@ -26,14 +36,6 @@ status = "okay"; nr-ports = <2>; }; - - pcie-controller { - status = "okay"; - - pcie@1,0 { - status = "okay"; - }; - }; }; gpio_poweroff { --- linux-3.13.0.orig/arch/arm/boot/dts/ste-ccu8540.dts +++ linux-3.13.0/arch/arm/boot/dts/ste-ccu8540.dts @@ -18,6 +18,7 @@ compatible = "st-ericsson,ccu8540", "st-ericsson,u8540"; memory@0 { + device_type = "memory"; reg = <0x20000000 0x1f000000>, <0xc0000000 0x3f000000>; }; --- linux-3.13.0.orig/arch/arm/boot/dts/tegra124.dtsi +++ linux-3.13.0/arch/arm/boot/dts/tegra124.dtsi @@ -87,14 +87,6 @@ status = "disabled"; }; - serial@70006400 { - compatible = "nvidia,tegra124-uart", "nvidia,tegra20-uart"; - reg = <0x70006400 0x40>; - reg-shift = <2>; - interrupts = ; - status = "disabled"; - }; - rtc@7000e000 { compatible = "nvidia,tegra124-rtc", "nvidia,tegra20-rtc"; reg = <0x7000e000 0x100>; --- linux-3.13.0.orig/arch/arm/common/edma.c +++ linux-3.13.0/arch/arm/common/edma.c @@ -1423,55 +1423,38 @@ #if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_DMADEVICES) -static int edma_of_read_u32_to_s16_array(const struct device_node *np, - const char *propname, s16 *out_values, - size_t sz) +static int edma_xbar_event_map(struct device *dev, struct device_node *node, + struct edma_soc_info *pdata, size_t sz) { - int ret; - - ret = of_property_read_u16_array(np, propname, out_values, sz); - if (ret) - return ret; - - /* Terminate it */ - *out_values++ = -1; - *out_values++ = -1; - - return 0; -} - -static int edma_xbar_event_map(struct device *dev, - struct device_node *node, - struct edma_soc_info *pdata, int len) -{ - int ret, i; + const char pname[] = "ti,edma-xbar-event-map"; struct resource res; void __iomem *xbar; - const s16 (*xbar_chans)[2]; + s16 (*xbar_chans)[2]; + size_t nelm = sz / sizeof(s16); u32 shift, offset, mux; + int ret, i; - xbar_chans = devm_kzalloc(dev, - len/sizeof(s16) + 2*sizeof(s16), - GFP_KERNEL); + xbar_chans = devm_kzalloc(dev, (nelm + 2) * sizeof(s16), GFP_KERNEL); if (!xbar_chans) return -ENOMEM; ret = of_address_to_resource(node, 1, &res); if (ret) - return -EIO; + return -ENOMEM; xbar = devm_ioremap(dev, res.start, resource_size(&res)); if (!xbar) return -ENOMEM; - ret = edma_of_read_u32_to_s16_array(node, - "ti,edma-xbar-event-map", - (s16 *)xbar_chans, - len/sizeof(u32)); + ret = of_property_read_u16_array(node, pname, (u16 *)xbar_chans, nelm); if (ret) return -EIO; - for (i = 0; xbar_chans[i][0] != -1; i++) { + /* Invalidate last entry for the other user of this mess */ + nelm >>= 1; + xbar_chans[nelm][0] = xbar_chans[nelm][1] = -1; + + for (i = 0; i < nelm; i++) { shift = (xbar_chans[i][1] & 0x03) << 3; offset = xbar_chans[i][1] & 0xfffffffc; mux = readl(xbar + offset); @@ -1480,8 +1463,7 @@ writel(mux, (xbar + offset)); } - pdata->xbar_chans = xbar_chans; - + pdata->xbar_chans = (const s16 (*)[2]) xbar_chans; return 0; } --- linux-3.13.0.orig/arch/arm/crypto/aesbs-glue.c +++ linux-3.13.0/arch/arm/crypto/aesbs-glue.c @@ -137,7 +137,7 @@ dst += AES_BLOCK_SIZE; } while (--blocks); } - err = blkcipher_walk_done(desc, &walk, 0); + err = blkcipher_walk_done(desc, &walk, walk.nbytes % AES_BLOCK_SIZE); } return err; } @@ -158,7 +158,7 @@ bsaes_cbc_encrypt(walk.src.virt.addr, walk.dst.virt.addr, walk.nbytes, &ctx->dec, walk.iv); kernel_neon_end(); - err = blkcipher_walk_done(desc, &walk, 0); + err = blkcipher_walk_done(desc, &walk, walk.nbytes % AES_BLOCK_SIZE); } while (walk.nbytes) { u32 blocks = walk.nbytes / AES_BLOCK_SIZE; @@ -182,7 +182,7 @@ dst += AES_BLOCK_SIZE; src += AES_BLOCK_SIZE; } while (--blocks); - err = blkcipher_walk_done(desc, &walk, 0); + err = blkcipher_walk_done(desc, &walk, walk.nbytes % AES_BLOCK_SIZE); } return err; } @@ -268,7 +268,7 @@ bsaes_xts_encrypt(walk.src.virt.addr, walk.dst.virt.addr, walk.nbytes, &ctx->enc, walk.iv); kernel_neon_end(); - err = blkcipher_walk_done(desc, &walk, 0); + err = blkcipher_walk_done(desc, &walk, walk.nbytes % AES_BLOCK_SIZE); } return err; } @@ -292,7 +292,7 @@ bsaes_xts_decrypt(walk.src.virt.addr, walk.dst.virt.addr, walk.nbytes, &ctx->dec, walk.iv); kernel_neon_end(); - err = blkcipher_walk_done(desc, &walk, 0); + err = blkcipher_walk_done(desc, &walk, walk.nbytes % AES_BLOCK_SIZE); } return err; } --- linux-3.13.0.orig/arch/arm/include/asm/arch_timer.h +++ linux-3.13.0/arch/arm/include/asm/arch_timer.h @@ -78,6 +78,15 @@ return val; } +static inline u64 arch_counter_get_cntpct(void) +{ + u64 cval; + + isb(); + asm volatile("mrrc p15, 0, %Q0, %R0, c14" : "=r" (cval)); + return cval; +} + static inline u64 arch_counter_get_cntvct(void) { u64 cval; --- linux-3.13.0.orig/arch/arm/include/asm/cacheflush.h +++ linux-3.13.0/arch/arm/include/asm/cacheflush.h @@ -212,6 +212,7 @@ static inline void __flush_icache_all(void) { __flush_icache_preferred(); + dsb(); } /* @@ -471,7 +472,6 @@ "mcr p15, 0, r0, c1, c0, 0 @ set SCTLR \n\t" \ "isb \n\t" \ "bl v7_flush_dcache_"__stringify(level)" \n\t" \ - "clrex \n\t" \ "mrc p15, 0, r0, c1, c0, 1 @ get ACTLR \n\t" \ "bic r0, r0, #(1 << 6) @ disable local coherency \n\t" \ "mcr p15, 0, r0, c1, c0, 1 @ set ACTLR \n\t" \ --- linux-3.13.0.orig/arch/arm/include/asm/div64.h +++ linux-3.13.0/arch/arm/include/asm/div64.h @@ -156,7 +156,7 @@ /* Select the best insn combination to perform the */ \ /* actual __m * __n / (__p << 64) operation. */ \ if (!__c) { \ - asm ( "umull %Q0, %R0, %1, %Q2\n\t" \ + asm ( "umull %Q0, %R0, %Q1, %Q2\n\t" \ "mov %Q0, #0" \ : "=&r" (__res) \ : "r" (__m), "r" (__n) \ --- linux-3.13.0.orig/arch/arm/include/asm/futex.h +++ linux-3.13.0/arch/arm/include/asm/futex.h @@ -3,11 +3,6 @@ #ifdef __KERNEL__ -#if defined(CONFIG_CPU_USE_DOMAINS) && defined(CONFIG_SMP) -/* ARM doesn't provide unprivileged exclusive memory accessors */ -#include -#else - #include #include #include @@ -164,6 +159,5 @@ return ret; } -#endif /* !(CPU_USE_DOMAINS && SMP) */ #endif /* __KERNEL__ */ #endif /* _ASM_ARM_FUTEX_H */ --- linux-3.13.0.orig/arch/arm/include/asm/kvm_mmu.h +++ linux-3.13.0/arch/arm/include/asm/kvm_mmu.h @@ -114,11 +114,34 @@ pmd_val(*pmd) |= L_PMD_S2_RDWR; } +/* Open coded p*d_addr_end that can deal with 64bit addresses */ +#define kvm_pgd_addr_end(addr, end) \ +({ u64 __boundary = ((addr) + PGDIR_SIZE) & PGDIR_MASK; \ + (__boundary - 1 < (end) - 1)? __boundary: (end); \ +}) + +#define kvm_pud_addr_end(addr,end) (end) + +#define kvm_pmd_addr_end(addr, end) \ +({ u64 __boundary = ((addr) + PMD_SIZE) & PMD_MASK; \ + (__boundary - 1 < (end) - 1)? __boundary: (end); \ +}) + struct kvm; -static inline void coherent_icache_guest_page(struct kvm *kvm, hva_t hva, - unsigned long size) +#define kvm_flush_dcache_to_poc(a,l) __cpuc_flush_dcache_area((a), (l)) + +static inline bool vcpu_has_cache_enabled(struct kvm_vcpu *vcpu) { + return (vcpu->arch.cp15[c1_SCTLR] & 0b101) == 0b101; +} + +static inline void coherent_cache_guest_page(struct kvm_vcpu *vcpu, hva_t hva, + unsigned long size) +{ + if (!vcpu_has_cache_enabled(vcpu)) + kvm_flush_dcache_to_poc((void *)hva, size); + /* * If we are going to insert an instruction page and the icache is * either VIPT or PIPT, there is a potential problem where the host @@ -139,7 +162,7 @@ } } -#define kvm_flush_dcache_to_poc(a,l) __cpuc_flush_dcache_area((a), (l)) +void stage2_flush_vm(struct kvm *kvm); #endif /* !__ASSEMBLY__ */ --- linux-3.13.0.orig/arch/arm/include/asm/memory.h +++ linux-3.13.0/arch/arm/include/asm/memory.h @@ -30,14 +30,15 @@ */ #define UL(x) _AC(x, UL) +/* PAGE_OFFSET - the virtual address of the start of the kernel image */ +#define PAGE_OFFSET UL(CONFIG_PAGE_OFFSET) + #ifdef CONFIG_MMU /* - * PAGE_OFFSET - the virtual address of the start of the kernel image * TASK_SIZE - the maximum size of a user space task. * TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area */ -#define PAGE_OFFSET UL(CONFIG_PAGE_OFFSET) #define TASK_SIZE (UL(CONFIG_PAGE_OFFSET) - UL(SZ_16M)) #define TASK_UNMAPPED_BASE ALIGN(TASK_SIZE / 3, SZ_16M) @@ -104,10 +105,6 @@ #define END_MEM (UL(CONFIG_DRAM_BASE) + CONFIG_DRAM_SIZE) #endif -#ifndef PAGE_OFFSET -#define PAGE_OFFSET PLAT_PHYS_OFFSET -#endif - /* * The module can be at any place in ram in nommu mode. */ --- linux-3.13.0.orig/arch/arm/include/asm/pgtable-2level.h +++ linux-3.13.0/arch/arm/include/asm/pgtable-2level.h @@ -140,6 +140,7 @@ #define L_PTE_MT_DEV_NONSHARED (_AT(pteval_t, 0x0c) << 2) /* 1100 */ #define L_PTE_MT_DEV_WC (_AT(pteval_t, 0x09) << 2) /* 1001 */ #define L_PTE_MT_DEV_CACHED (_AT(pteval_t, 0x0b) << 2) /* 1011 */ +#define L_PTE_MT_VECTORS (_AT(pteval_t, 0x0f) << 2) /* 1111 */ #define L_PTE_MT_MASK (_AT(pteval_t, 0x0f) << 2) #ifndef __ASSEMBLY__ --- linux-3.13.0.orig/arch/arm/include/asm/pgtable-3level.h +++ linux-3.13.0/arch/arm/include/asm/pgtable-3level.h @@ -120,13 +120,16 @@ /* * 2nd stage PTE definitions for LPAE. */ -#define L_PTE_S2_MT_UNCACHED (_AT(pteval_t, 0x5) << 2) /* MemAttr[3:0] */ -#define L_PTE_S2_MT_WRITETHROUGH (_AT(pteval_t, 0xa) << 2) /* MemAttr[3:0] */ -#define L_PTE_S2_MT_WRITEBACK (_AT(pteval_t, 0xf) << 2) /* MemAttr[3:0] */ -#define L_PTE_S2_RDONLY (_AT(pteval_t, 1) << 6) /* HAP[1] */ -#define L_PTE_S2_RDWR (_AT(pteval_t, 3) << 6) /* HAP[2:1] */ +#define L_PTE_S2_MT_UNCACHED (_AT(pteval_t, 0x0) << 2) /* strongly ordered */ +#define L_PTE_S2_MT_WRITETHROUGH (_AT(pteval_t, 0xa) << 2) /* normal inner write-through */ +#define L_PTE_S2_MT_WRITEBACK (_AT(pteval_t, 0xf) << 2) /* normal inner write-back */ +#define L_PTE_S2_MT_DEV_SHARED (_AT(pteval_t, 0x1) << 2) /* device */ +#define L_PTE_S2_MT_MASK (_AT(pteval_t, 0xf) << 2) -#define L_PMD_S2_RDWR (_AT(pmdval_t, 3) << 6) /* HAP[2:1] */ +#define L_PTE_S2_RDONLY (_AT(pteval_t, 1) << 6) /* HAP[1] */ +#define L_PTE_S2_RDWR (_AT(pteval_t, 3) << 6) /* HAP[2:1] */ + +#define L_PMD_S2_RDWR (_AT(pmdval_t, 3) << 6) /* HAP[2:1] */ /* * Hyp-mode PL2 PTE definitions for LPAE. --- linux-3.13.0.orig/arch/arm/include/asm/spinlock.h +++ linux-3.13.0/arch/arm/include/asm/spinlock.h @@ -37,18 +37,9 @@ static inline void dsb_sev(void) { -#if __LINUX_ARM_ARCH__ >= 7 - __asm__ __volatile__ ( - "dsb ishst\n" - SEV - ); -#else - __asm__ __volatile__ ( - "mcr p15, 0, %0, c7, c10, 4\n" - SEV - : : "r" (0) - ); -#endif + + dsb(ishst); + __asm__(SEV); } /* --- linux-3.13.0.orig/arch/arm/include/asm/thread_info.h +++ linux-3.13.0/arch/arm/include/asm/thread_info.h @@ -43,16 +43,6 @@ __u32 extra[2]; /* Xscale 'acc' register, etc */ }; -struct arm_restart_block { - union { - /* For user cache flushing */ - struct { - unsigned long start; - unsigned long end; - } cache; - }; -}; - /* * low level task data that entry.S needs immediate access to. * __switch_to() assumes cpu_context follows immediately after cpu_domain. @@ -78,7 +68,6 @@ unsigned long thumbee_state; /* ThumbEE Handler Base register */ #endif struct restart_block restart_block; - struct arm_restart_block arm_restart_block; }; #define INIT_THREAD_INFO(tsk) \ --- linux-3.13.0.orig/arch/arm/include/asm/tls.h +++ linux-3.13.0/arch/arm/include/asm/tls.h @@ -1,6 +1,9 @@ #ifndef __ASMARM_TLS_H #define __ASMARM_TLS_H +#include +#include + #ifdef __ASSEMBLY__ #include .macro switch_tls_none, base, tp, tpuser, tmp1, tmp2 @@ -50,6 +53,49 @@ #endif #ifndef __ASSEMBLY__ + +static inline void set_tls(unsigned long val) +{ + struct thread_info *thread; + + thread = current_thread_info(); + + thread->tp_value[0] = val; + + /* + * This code runs with preemption enabled and therefore must + * be reentrant with respect to switch_tls. + * + * We need to ensure ordering between the shadow state and the + * hardware state, so that we don't corrupt the hardware state + * with a stale shadow state during context switch. + * + * If we're preempted here, switch_tls will load TPIDRURO from + * thread_info upon resuming execution and the following mcr + * is merely redundant. + */ + barrier(); + + if (!tls_emu) { + if (has_tls_reg) { + asm("mcr p15, 0, %0, c13, c0, 3" + : : "r" (val)); + } else { +#ifdef CONFIG_KUSER_HELPERS + /* + * User space must never try to access this + * directly. Expect your app to break + * eventually if you do so. The user helper + * at 0xffff0fe0 must be used instead. (see + * entry-armv.S for details) + */ + *((unsigned int *)0xffff0ff0) = val; +#endif + } + + } +} + static inline unsigned long get_tpuser(void) { unsigned long reg = 0; @@ -59,5 +105,23 @@ return reg; } + +static inline void set_tpuser(unsigned long val) +{ + /* Since TPIDRURW is fully context-switched (unlike TPIDRURO), + * we need not update thread_info. + */ + if (has_tls_reg && !tls_emu) { + asm("mcr p15, 0, %0, c13, c0, 2" + : : "r" (val)); + } +} + +static inline void flush_tls(void) +{ + set_tls(0); + set_tpuser(0); +} + #endif #endif /* __ASMARM_TLS_H */ --- linux-3.13.0.orig/arch/arm/include/asm/uaccess.h +++ linux-3.13.0/arch/arm/include/asm/uaccess.h @@ -171,8 +171,9 @@ #define __put_user_check(x,p) \ ({ \ unsigned long __limit = current_thread_info()->addr_limit - 1; \ + const typeof(*(p)) __user *__tmp_p = (p); \ register const typeof(*(p)) __r2 asm("r2") = (x); \ - register const typeof(*(p)) __user *__p asm("r0") = (p);\ + register const typeof(*(p)) __user *__p asm("r0") = __tmp_p; \ register unsigned long __l asm("r1") = __limit; \ register int __e asm("r0"); \ switch (sizeof(*(__p))) { \ --- linux-3.13.0.orig/arch/arm/include/asm/unistd.h +++ linux-3.13.0/arch/arm/include/asm/unistd.h @@ -15,7 +15,7 @@ #include -#define __NR_syscalls (380) +#define __NR_syscalls (384) #define __ARM_NR_cmpxchg (__ARM_NR_BASE+0x00fff0) #define __ARCH_WANT_STAT64 --- linux-3.13.0.orig/arch/arm/include/uapi/asm/unistd.h +++ linux-3.13.0/arch/arm/include/uapi/asm/unistd.h @@ -406,6 +406,10 @@ #define __NR_process_vm_writev (__NR_SYSCALL_BASE+377) #define __NR_kcmp (__NR_SYSCALL_BASE+378) #define __NR_finit_module (__NR_SYSCALL_BASE+379) +#define __NR_sched_setattr (__NR_SYSCALL_BASE+380) +#define __NR_sched_getattr (__NR_SYSCALL_BASE+381) +#define __NR_renameat2 (__NR_SYSCALL_BASE+382) +#define __NR_seccomp (__NR_SYSCALL_BASE+383) /* * This may need to be greater than __NR_last_syscall+1 in order to --- linux-3.13.0.orig/arch/arm/kernel/calls.S +++ linux-3.13.0/arch/arm/kernel/calls.S @@ -389,6 +389,10 @@ CALL(sys_process_vm_writev) CALL(sys_kcmp) CALL(sys_finit_module) +/* 380 */ CALL(sys_ni_syscall) /* sys_sched_setattr */ + CALL(sys_ni_syscall) /* sys_sched_getattr */ + CALL(sys_ni_syscall) /* sys_renameat2 */ + CALL(sys_seccomp) #ifndef syscalls_counted .equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls #define syscalls_counted --- linux-3.13.0.orig/arch/arm/kernel/entry-header.S +++ linux-3.13.0/arch/arm/kernel/entry-header.S @@ -132,6 +132,10 @@ orrne r5, V7M_xPSR_FRAMEPTRALIGN biceq r5, V7M_xPSR_FRAMEPTRALIGN + @ ensure bit 0 is cleared in the PC, otherwise behaviour is + @ unpredictable + bic r4, #1 + @ write basic exception frame stmdb r2!, {r1, r3-r5} ldmia sp, {r1, r3-r5} @@ -204,26 +208,21 @@ #endif .endif msr spsr_cxsf, \rpsr -#if defined(CONFIG_CPU_V6) - ldr r0, [sp] - strex r1, r2, [sp] @ clear the exclusive monitor - ldmib sp, {r1 - pc}^ @ load r1 - pc, cpsr -#elif defined(CONFIG_CPU_32v6K) - clrex @ clear the exclusive monitor - ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr -#else - ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr +#if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_32v6K) + @ We must avoid clrex due to Cortex-A15 erratum #830321 + sub r0, sp, #4 @ uninhabited address + strex r1, r2, [r0] @ clear the exclusive monitor #endif + ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr .endm .macro restore_user_regs, fast = 0, offset = 0 ldr r1, [sp, #\offset + S_PSR] @ get calling cpsr ldr lr, [sp, #\offset + S_PC]! @ get pc msr spsr_cxsf, r1 @ save in spsr_svc -#if defined(CONFIG_CPU_V6) +#if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_32v6K) + @ We must avoid clrex due to Cortex-A15 erratum #830321 strex r1, r2, [sp] @ clear the exclusive monitor -#elif defined(CONFIG_CPU_32v6K) - clrex @ clear the exclusive monitor #endif .if \fast ldmdb sp, {r1 - lr}^ @ get calling r1 - lr @@ -268,7 +267,10 @@ .endif ldr lr, [sp, #S_SP] @ top of the stack ldrd r0, r1, [sp, #S_LR] @ calling lr and pc - clrex @ clear the exclusive monitor + + @ We must avoid clrex due to Cortex-A15 erratum #830321 + strex r2, r1, [sp, #S_LR] @ clear the exclusive monitor + stmdb lr!, {r0, r1, \rpsr} @ calling lr and rfe context ldmia sp, {r0 - r12} mov sp, lr @@ -289,13 +291,16 @@ .endm #else /* ifdef CONFIG_CPU_V7M */ .macro restore_user_regs, fast = 0, offset = 0 - clrex @ clear the exclusive monitor mov r2, sp load_user_sp_lr r2, r3, \offset + S_SP @ calling sp, lr ldr r1, [sp, #\offset + S_PSR] @ get calling cpsr ldr lr, [sp, #\offset + S_PC] @ get pc add sp, sp, #\offset + S_SP msr spsr_cxsf, r1 @ save in spsr_svc + + @ We must avoid clrex due to Cortex-A15 erratum #830321 + strex r1, r2, [sp] @ clear the exclusive monitor + .if \fast ldmdb sp, {r1 - r12} @ get calling r1 - r12 .else --- linux-3.13.0.orig/arch/arm/kernel/irq.c +++ linux-3.13.0/arch/arm/kernel/irq.c @@ -163,7 +163,7 @@ c = irq_data_get_irq_chip(d); if (!c->irq_set_affinity) pr_debug("IRQ%u: unable to set affinity\n", d->irq); - else if (c->irq_set_affinity(d, affinity, true) == IRQ_SET_MASK_OK && ret) + else if (c->irq_set_affinity(d, affinity, false) == IRQ_SET_MASK_OK && ret) cpumask_copy(d->affinity, affinity); return ret; --- linux-3.13.0.orig/arch/arm/kernel/machine_kexec.c +++ linux-3.13.0/arch/arm/kernel/machine_kexec.c @@ -184,3 +184,10 @@ soft_restart(reboot_entry_phys); } + +void arch_crash_save_vmcoreinfo(void) +{ +#ifdef CONFIG_ARM_LPAE + VMCOREINFO_CONFIG(ARM_LPAE); +#endif +} --- linux-3.13.0.orig/arch/arm/kernel/process.c +++ linux-3.13.0/arch/arm/kernel/process.c @@ -334,6 +334,8 @@ memset(&tsk->thread.debug, 0, sizeof(struct debug_info)); memset(&thread->fpstate, 0, sizeof(union fp_state)); + flush_tls(); + thread_notify(THREAD_NOTIFY_FLUSH, thread); } --- linux-3.13.0.orig/arch/arm/kernel/ptrace.c +++ linux-3.13.0/arch/arm/kernel/ptrace.c @@ -908,7 +908,7 @@ PTRACE_SYSCALL_EXIT, }; -static int tracehook_report_syscall(struct pt_regs *regs, +static void tracehook_report_syscall(struct pt_regs *regs, enum ptrace_syscall_dir dir) { unsigned long ip; @@ -926,7 +926,6 @@ current_thread_info()->syscall = -1; regs->ARM_ip = ip; - return current_thread_info()->syscall; } asmlinkage int syscall_trace_enter(struct pt_regs *regs, int scno) @@ -938,7 +937,9 @@ return -1; if (test_thread_flag(TIF_SYSCALL_TRACE)) - scno = tracehook_report_syscall(regs, PTRACE_SYSCALL_ENTER); + tracehook_report_syscall(regs, PTRACE_SYSCALL_ENTER); + + scno = current_thread_info()->syscall; if (test_thread_flag(TIF_SYSCALL_TRACEPOINT)) trace_sys_enter(regs, scno); --- linux-3.13.0.orig/arch/arm/kernel/stacktrace.c +++ linux-3.13.0/arch/arm/kernel/stacktrace.c @@ -83,13 +83,16 @@ return trace->nr_entries >= trace->max_entries; } -void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace) +/* This must be noinline to so that our skip calculation works correctly */ +static noinline void __save_stack_trace(struct task_struct *tsk, + struct stack_trace *trace, unsigned int nosched) { struct stack_trace_data data; struct stackframe frame; data.trace = trace; data.skip = trace->skip; + data.no_sched_functions = nosched; if (tsk != current) { #ifdef CONFIG_SMP @@ -102,7 +105,6 @@ trace->entries[trace->nr_entries++] = ULONG_MAX; return; #else - data.no_sched_functions = 1; frame.fp = thread_saved_fp(tsk); frame.sp = thread_saved_sp(tsk); frame.lr = 0; /* recovered from the stack */ @@ -111,11 +113,12 @@ } else { register unsigned long current_sp asm ("sp"); - data.no_sched_functions = 0; + /* We don't want this function nor the caller */ + data.skip += 2; frame.fp = (unsigned long)__builtin_frame_address(0); frame.sp = current_sp; frame.lr = (unsigned long)__builtin_return_address(0); - frame.pc = (unsigned long)save_stack_trace_tsk; + frame.pc = (unsigned long)__save_stack_trace; } walk_stackframe(&frame, save_trace, &data); @@ -123,9 +126,14 @@ trace->entries[trace->nr_entries++] = ULONG_MAX; } +void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace) +{ + __save_stack_trace(tsk, trace, 1); +} + void save_stack_trace(struct stack_trace *trace) { - save_stack_trace_tsk(current, trace); + __save_stack_trace(current, trace, 0); } EXPORT_SYMBOL_GPL(save_stack_trace); #endif --- linux-3.13.0.orig/arch/arm/kernel/thumbee.c +++ linux-3.13.0/arch/arm/kernel/thumbee.c @@ -45,7 +45,7 @@ switch (cmd) { case THREAD_NOTIFY_FLUSH: - thread->thumbee_state = 0; + teehbr_write(0); break; case THREAD_NOTIFY_SWITCH: current_thread_info()->thumbee_state = teehbr_read(); --- linux-3.13.0.orig/arch/arm/kernel/traps.c +++ linux-3.13.0/arch/arm/kernel/traps.c @@ -510,8 +510,6 @@ return regs->ARM_r0; } -static long do_cache_op_restart(struct restart_block *); - static inline int __do_cache_op(unsigned long start, unsigned long end) { @@ -520,24 +518,8 @@ do { unsigned long chunk = min(PAGE_SIZE, end - start); - if (signal_pending(current)) { - struct thread_info *ti = current_thread_info(); - - ti->restart_block = (struct restart_block) { - .fn = do_cache_op_restart, - }; - - ti->arm_restart_block = (struct arm_restart_block) { - { - .cache = { - .start = start, - .end = end, - }, - }, - }; - - return -ERESTART_RESTARTBLOCK; - } + if (fatal_signal_pending(current)) + return 0; ret = flush_cache_user_range(start, start + chunk); if (ret) @@ -550,15 +532,6 @@ return 0; } -static long do_cache_op_restart(struct restart_block *unused) -{ - struct arm_restart_block *restart_block; - - restart_block = ¤t_thread_info()->arm_restart_block; - return __do_cache_op(restart_block->cache.start, - restart_block->cache.end); -} - static inline int do_cache_op(unsigned long start, unsigned long end, int flags) { @@ -578,7 +551,6 @@ #define NR(x) ((__ARM_NR_##x) - __ARM_NR_BASE) asmlinkage int arm_syscall(int no, struct pt_regs *regs) { - struct thread_info *thread = current_thread_info(); siginfo_t info; if ((no >> 16) != (__ARM_NR_BASE>> 16)) @@ -629,21 +601,7 @@ return regs->ARM_r0; case NR(set_tls): - thread->tp_value[0] = regs->ARM_r0; - if (tls_emu) - return 0; - if (has_tls_reg) { - asm ("mcr p15, 0, %0, c13, c0, 3" - : : "r" (regs->ARM_r0)); - } else { - /* - * User space must never try to access this directly. - * Expect your app to break eventually if you do so. - * The user helper at 0xffff0fe0 must be used instead. - * (see entry-armv.S for details) - */ - *((unsigned int *)0xffff0ff0) = regs->ARM_r0; - } + set_tls(regs->ARM_r0); return 0; #ifdef CONFIG_NEEDS_SYSCALL_FOR_CMPXCHG --- linux-3.13.0.orig/arch/arm/kvm/handle_exit.c +++ linux-3.13.0/arch/arm/kvm/handle_exit.c @@ -91,6 +91,8 @@ else kvm_vcpu_block(vcpu); + kvm_skip_instr(vcpu, kvm_vcpu_trap_il_is32bit(vcpu)); + return 1; } --- linux-3.13.0.orig/arch/arm/kvm/init.S +++ linux-3.13.0/arch/arm/kvm/init.S @@ -98,6 +98,10 @@ mrc p15, 0, r0, c10, c2, 1 mcr p15, 4, r0, c10, c2, 1 + @ Invalidate the stale TLBs from Bootloader + mcr p15, 4, r0, c8, c7, 0 @ TLBIALLH + dsb ish + @ Set the HSCTLR to: @ - ARM/THUMB exceptions: Kernel config (Thumb-2 kernel) @ - Endianness: Kernel config --- linux-3.13.0.orig/arch/arm/kvm/mmu.c +++ linux-3.13.0/arch/arm/kvm/mmu.c @@ -42,6 +42,8 @@ static unsigned long hyp_idmap_end; static phys_addr_t hyp_idmap_vector; +#define pgd_order get_order(PTRS_PER_PGD * sizeof(pgd_t)) + #define kvm_pmd_huge(_x) (pmd_huge(_x) || pmd_trans_huge(_x)) static void kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa) @@ -145,7 +147,7 @@ pgd = pgdp + pgd_index(addr); pud = pud_offset(pgd, addr); if (pud_none(*pud)) { - addr = pud_addr_end(addr, end); + addr = kvm_pud_addr_end(addr, end); continue; } @@ -155,13 +157,13 @@ * move on. */ clear_pud_entry(kvm, pud, addr); - addr = pud_addr_end(addr, end); + addr = kvm_pud_addr_end(addr, end); continue; } pmd = pmd_offset(pud, addr); if (pmd_none(*pmd)) { - addr = pmd_addr_end(addr, end); + addr = kvm_pmd_addr_end(addr, end); continue; } @@ -176,10 +178,10 @@ */ if (kvm_pmd_huge(*pmd) || page_empty(pte)) { clear_pmd_entry(kvm, pmd, addr); - next = pmd_addr_end(addr, end); + next = kvm_pmd_addr_end(addr, end); if (page_empty(pmd) && !page_empty(pud)) { clear_pud_entry(kvm, pud, addr); - next = pud_addr_end(addr, end); + next = kvm_pud_addr_end(addr, end); } } @@ -187,6 +189,99 @@ } } +static void stage2_flush_ptes(struct kvm *kvm, pmd_t *pmd, + phys_addr_t addr, phys_addr_t end) +{ + pte_t *pte; + + pte = pte_offset_kernel(pmd, addr); + do { + if (!pte_none(*pte)) { + hva_t hva = gfn_to_hva(kvm, addr >> PAGE_SHIFT); + kvm_flush_dcache_to_poc((void*)hva, PAGE_SIZE); + } + } while (pte++, addr += PAGE_SIZE, addr != end); +} + +static void stage2_flush_pmds(struct kvm *kvm, pud_t *pud, + phys_addr_t addr, phys_addr_t end) +{ + pmd_t *pmd; + phys_addr_t next; + + pmd = pmd_offset(pud, addr); + do { + next = kvm_pmd_addr_end(addr, end); + if (!pmd_none(*pmd)) { + if (kvm_pmd_huge(*pmd)) { + hva_t hva = gfn_to_hva(kvm, addr >> PAGE_SHIFT); + kvm_flush_dcache_to_poc((void*)hva, PMD_SIZE); + } else { + stage2_flush_ptes(kvm, pmd, addr, next); + } + } + } while (pmd++, addr = next, addr != end); +} + +static void stage2_flush_puds(struct kvm *kvm, pgd_t *pgd, + phys_addr_t addr, phys_addr_t end) +{ + pud_t *pud; + phys_addr_t next; + + pud = pud_offset(pgd, addr); + do { + next = kvm_pud_addr_end(addr, end); + if (!pud_none(*pud)) { + if (pud_huge(*pud)) { + hva_t hva = gfn_to_hva(kvm, addr >> PAGE_SHIFT); + kvm_flush_dcache_to_poc((void*)hva, PUD_SIZE); + } else { + stage2_flush_pmds(kvm, pud, addr, next); + } + } + } while (pud++, addr = next, addr != end); +} + +static void stage2_flush_memslot(struct kvm *kvm, + struct kvm_memory_slot *memslot) +{ + phys_addr_t addr = memslot->base_gfn << PAGE_SHIFT; + phys_addr_t end = addr + PAGE_SIZE * memslot->npages; + phys_addr_t next; + pgd_t *pgd; + + pgd = kvm->arch.pgd + pgd_index(addr); + do { + next = kvm_pgd_addr_end(addr, end); + stage2_flush_puds(kvm, pgd, addr, next); + } while (pgd++, addr = next, addr != end); +} + +/** + * stage2_flush_vm - Invalidate cache for pages mapped in stage 2 + * @kvm: The struct kvm pointer + * + * Go through the stage 2 page tables and invalidate any cache lines + * backing memory already mapped to the VM. + */ +void stage2_flush_vm(struct kvm *kvm) +{ + struct kvm_memslots *slots; + struct kvm_memory_slot *memslot; + int idx; + + idx = srcu_read_lock(&kvm->srcu); + spin_lock(&kvm->mmu_lock); + + slots = kvm_memslots(kvm); + kvm_for_each_memslot(memslot, slots) + stage2_flush_memslot(kvm, memslot); + + spin_unlock(&kvm->mmu_lock); + srcu_read_unlock(&kvm->srcu, idx); +} + /** * free_boot_hyp_pgd - free HYP boot page tables * @@ -199,14 +294,14 @@ if (boot_hyp_pgd) { unmap_range(NULL, boot_hyp_pgd, hyp_idmap_start, PAGE_SIZE); unmap_range(NULL, boot_hyp_pgd, TRAMPOLINE_VA, PAGE_SIZE); - kfree(boot_hyp_pgd); + free_pages((unsigned long)boot_hyp_pgd, pgd_order); boot_hyp_pgd = NULL; } if (hyp_pgd) unmap_range(NULL, hyp_pgd, TRAMPOLINE_VA, PAGE_SIZE); - kfree(init_bounce_page); + free_page((unsigned long)init_bounce_page); init_bounce_page = NULL; mutex_unlock(&kvm_hyp_pgd_mutex); @@ -236,7 +331,7 @@ for (addr = VMALLOC_START; is_vmalloc_addr((void*)addr); addr += PGDIR_SIZE) unmap_range(NULL, hyp_pgd, KERN_TO_HYP(addr), PGDIR_SIZE); - kfree(hyp_pgd); + free_pages((unsigned long)hyp_pgd, pgd_order); hyp_pgd = NULL; } @@ -713,7 +808,7 @@ kvm_set_s2pmd_writable(&new_pmd); kvm_set_pfn_dirty(pfn); } - coherent_icache_guest_page(kvm, hva & PMD_MASK, PMD_SIZE); + coherent_cache_guest_page(vcpu, hva & PMD_MASK, PMD_SIZE); ret = stage2_set_pmd_huge(kvm, memcache, fault_ipa, &new_pmd); } else { pte_t new_pte = pfn_pte(pfn, PAGE_S2); @@ -721,7 +816,7 @@ kvm_set_s2pte_writable(&new_pte); kvm_set_pfn_dirty(pfn); } - coherent_icache_guest_page(kvm, hva, PAGE_SIZE); + coherent_cache_guest_page(vcpu, hva, PAGE_SIZE); ret = stage2_set_pte(kvm, memcache, fault_ipa, &new_pte, false); } @@ -928,7 +1023,7 @@ size_t len = __hyp_idmap_text_end - __hyp_idmap_text_start; phys_addr_t phys_base; - init_bounce_page = kmalloc(PAGE_SIZE, GFP_KERNEL); + init_bounce_page = (void *)__get_free_page(GFP_KERNEL); if (!init_bounce_page) { kvm_err("Couldn't allocate HYP init bounce page\n"); err = -ENOMEM; @@ -954,8 +1049,9 @@ (unsigned long)phys_base); } - hyp_pgd = kzalloc(PTRS_PER_PGD * sizeof(pgd_t), GFP_KERNEL); - boot_hyp_pgd = kzalloc(PTRS_PER_PGD * sizeof(pgd_t), GFP_KERNEL); + hyp_pgd = (pgd_t *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, pgd_order); + boot_hyp_pgd = (pgd_t *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, pgd_order); + if (!hyp_pgd || !boot_hyp_pgd) { kvm_err("Hyp mode PGD not allocated\n"); err = -ENOMEM; --- linux-3.13.0.orig/arch/arm/mach-at91/clock.c +++ linux-3.13.0/arch/arm/mach-at91/clock.c @@ -963,6 +963,7 @@ } at91_pmc_write(AT91_PMC_SCDR, scdr); + at91_pmc_write(AT91_PMC_PCDR, pcdr); if (cpu_is_sama5d3()) at91_pmc_write(AT91_PMC_PCDR1, pcdr1); --- linux-3.13.0.orig/arch/arm/mach-at91/sam9_smc.c +++ linux-3.13.0/arch/arm/mach-at91/sam9_smc.c @@ -101,7 +101,7 @@ /* Pulse register */ val = __raw_readl(base + AT91_SMC_PULSE); - config->nwe_setup = val & AT91_SMC_NWEPULSE; + config->nwe_pulse = val & AT91_SMC_NWEPULSE; config->ncs_write_pulse = (val & AT91_SMC_NCS_WRPULSE) >> 8; config->nrd_pulse = (val & AT91_SMC_NRDPULSE) >> 16; config->ncs_read_pulse = (val & AT91_SMC_NCS_RDPULSE) >> 24; --- linux-3.13.0.orig/arch/arm/mach-highbank/Makefile +++ linux-3.13.0/arch/arm/mach-highbank/Makefile @@ -1,3 +1,5 @@ +KBUILD_CFLAGS += -I$(srctree)/arch/arm/mach-highbank/include + obj-y := highbank.o system.o smc.o plus_sec := $(call as-instr,.arch_extension sec,+sec) --- linux-3.13.0.orig/arch/arm/mach-imx/Makefile +++ linux-3.13.0/arch/arm/mach-imx/Makefile @@ -100,11 +100,9 @@ obj-$(CONFIG_SOC_IMX6Q) += clk-imx6q.o mach-imx6q.o obj-$(CONFIG_SOC_IMX6SL) += clk-imx6sl.o mach-imx6sl.o -ifeq ($(CONFIG_PM),y) obj-$(CONFIG_SOC_IMX6Q) += pm-imx6q.o headsmp.o # i.MX6SL reuses i.MX6Q code obj-$(CONFIG_SOC_IMX6SL) += pm-imx6q.o headsmp.o -endif # i.MX5 based machines obj-$(CONFIG_MACH_MX51_BABBAGE) += mach-mx51_babbage.o --- linux-3.13.0.orig/arch/arm/mach-imx/clk-imx6q.c +++ linux-3.13.0/arch/arm/mach-imx/clk-imx6q.c @@ -479,6 +479,9 @@ if (IS_ENABLED(CONFIG_PCI_IMX6)) clk_set_parent(clk[lvds1_sel], clk[sata_ref]); + /* Set initial power mode */ + imx6q_set_lpm(WAIT_CLOCKED); + np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-gpt"); base = of_iomap(np, 0); WARN_ON(!base); --- linux-3.13.0.orig/arch/arm/mach-imx/clk-imx6sl.c +++ linux-3.13.0/arch/arm/mach-imx/clk-imx6sl.c @@ -261,6 +261,9 @@ clk_prepare_enable(clks[IMX6SL_CLK_USBPHY2_GATE]); } + /* Set initial power mode */ + imx6q_set_lpm(WAIT_CLOCKED); + np = of_find_compatible_node(NULL, NULL, "fsl,imx6sl-gpt"); base = of_iomap(np, 0); WARN_ON(!base); --- linux-3.13.0.orig/arch/arm/mach-imx/common.h +++ linux-3.13.0/arch/arm/mach-imx/common.h @@ -143,13 +143,11 @@ void imx_cpu_die(unsigned int cpu); int imx_cpu_kill(unsigned int cpu); -#ifdef CONFIG_PM void imx6q_pm_init(void); void imx6q_pm_set_ccm_base(void __iomem *base); +#ifdef CONFIG_PM void imx5_pm_init(void); #else -static inline void imx6q_pm_init(void) {} -static inline void imx6q_pm_set_ccm_base(void __iomem *base) {} static inline void imx5_pm_init(void) {} #endif --- linux-3.13.0.orig/arch/arm/mach-imx/devices/platform-ipu-core.c +++ linux-3.13.0/arch/arm/mach-imx/devices/platform-ipu-core.c @@ -77,7 +77,7 @@ pdev = platform_device_alloc("mx3-camera", 0); if (!pdev) - goto err; + return ERR_PTR(-ENOMEM); pdev->dev.dma_mask = kmalloc(sizeof(*pdev->dev.dma_mask), GFP_KERNEL); if (!pdev->dev.dma_mask) --- linux-3.13.0.orig/arch/arm/mach-imx/pm-imx6q.c +++ linux-3.13.0/arch/arm/mach-imx/pm-imx6q.c @@ -228,8 +228,6 @@ regmap_update_bits(gpr, IOMUXC_GPR1, IMX6Q_GPR1_GINT, IMX6Q_GPR1_GINT); - /* Set initial power mode */ - imx6q_set_lpm(WAIT_CLOCKED); suspend_set_ops(&imx6q_pm_ops); } --- linux-3.13.0.orig/arch/arm/mach-mvebu/Makefile +++ linux-3.13.0/arch/arm/mach-mvebu/Makefile @@ -3,7 +3,7 @@ AFLAGS_coherency_ll.o := -Wa,-march=armv7-a -obj-y += system-controller.o +obj-y += system-controller.o mvebu-soc-id.o obj-$(CONFIG_MACH_ARMADA_370_XP) += armada-370-xp.o obj-$(CONFIG_ARCH_MVEBU) += coherency.o coherency_ll.o pmsu.o obj-$(CONFIG_SMP) += platsmp.o headsmp.o --- linux-3.13.0.orig/arch/arm/mach-mvebu/armada-370-xp.c +++ linux-3.13.0/arch/arm/mach-mvebu/armada-370-xp.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -28,6 +29,7 @@ #include "armada-370-xp.h" #include "common.h" #include "coherency.h" +#include "mvebu-soc-id.h" static void __init armada_370_xp_map_io(void) { @@ -45,8 +47,38 @@ #endif } +static void __init i2c_quirk(void) +{ + struct device_node *np; + u32 dev, rev; + + /* + * Only revisons more recent than A0 support the offload + * mechanism. We can exit only if we are sure that we can + * get the SoC revision and it is more recent than A0. + */ + if (mvebu_get_soc_id(&rev, &dev) == 0 && dev > MV78XX0_A0_REV) + return; + + for_each_compatible_node(np, NULL, "marvell,mv78230-i2c") { + struct property *new_compat; + + new_compat = kzalloc(sizeof(*new_compat), GFP_KERNEL); + + new_compat->name = kstrdup("compatible", GFP_KERNEL); + new_compat->length = sizeof("marvell,mv78230-a0-i2c"); + new_compat->value = kstrdup("marvell,mv78230-a0-i2c", + GFP_KERNEL); + + of_update_property(np, new_compat); + } + return; +} + static void __init armada_370_xp_dt_init(void) { + if (of_machine_is_compatible("plathome,openblocks-ax3-4")) + i2c_quirk(); of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); } --- linux-3.13.0.orig/arch/arm/mach-mvebu/mvebu-soc-id.c +++ linux-3.13.0/arch/arm/mach-mvebu/mvebu-soc-id.c @@ -0,0 +1,119 @@ +/* + * ID and revision information for mvebu SoCs + * + * Copyright (C) 2014 Marvell + * + * Gregory CLEMENT + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + * + * All the mvebu SoCs have information related to their variant and + * revision that can be read from the PCI control register. This is + * done before the PCI initialization to avoid any conflict. Once the + * ID and revision are retrieved, the mapping is freed. + */ + +#define pr_fmt(fmt) "mvebu-soc-id: " fmt + +#include +#include +#include +#include +#include +#include +#include "mvebu-soc-id.h" + +#define PCIE_DEV_ID_OFF 0x0 +#define PCIE_DEV_REV_OFF 0x8 + +#define SOC_ID_MASK 0xFFFF0000 +#define SOC_REV_MASK 0xFF + +static u32 soc_dev_id; +static u32 soc_rev; +static bool is_id_valid; + +static const struct of_device_id mvebu_pcie_of_match_table[] = { + { .compatible = "marvell,armada-xp-pcie", }, + { .compatible = "marvell,armada-370-pcie", }, + {}, +}; + +int mvebu_get_soc_id(u32 *dev, u32 *rev) +{ + if (is_id_valid) { + *dev = soc_dev_id; + *rev = soc_rev; + return 0; + } else + return -1; +} + +static int __init mvebu_soc_id_init(void) +{ + struct device_node *np; + int ret = 0; + void __iomem *pci_base; + struct clk *clk; + struct device_node *child; + + np = of_find_matching_node(NULL, mvebu_pcie_of_match_table); + if (!np) + return ret; + + /* + * ID and revision are available from any port, so we + * just pick the first one + */ + child = of_get_next_child(np, NULL); + if (child == NULL) { + pr_err("cannot get pci node\n"); + ret = -ENOMEM; + goto clk_err; + } + + clk = of_clk_get_by_name(child, NULL); + if (IS_ERR(clk)) { + pr_err("cannot get clock\n"); + ret = -ENOMEM; + goto clk_err; + } + + ret = clk_prepare_enable(clk); + if (ret) { + pr_err("cannot enable clock\n"); + goto clk_err; + } + + pci_base = of_iomap(child, 0); + if (pci_base == NULL) { + pr_err("cannot map registers\n"); + ret = -ENOMEM; + goto res_ioremap; + } + + /* SoC ID */ + soc_dev_id = readl(pci_base + PCIE_DEV_ID_OFF) >> 16; + + /* SoC revision */ + soc_rev = readl(pci_base + PCIE_DEV_REV_OFF) & SOC_REV_MASK; + + is_id_valid = true; + + pr_info("MVEBU SoC ID=0x%X, Rev=0x%X\n", soc_dev_id, soc_rev); + + iounmap(pci_base); + +res_ioremap: + clk_disable_unprepare(clk); + +clk_err: + of_node_put(child); + of_node_put(np); + + return ret; +} +core_initcall(mvebu_soc_id_init); + --- linux-3.13.0.orig/arch/arm/mach-mvebu/mvebu-soc-id.h +++ linux-3.13.0/arch/arm/mach-mvebu/mvebu-soc-id.h @@ -0,0 +1,32 @@ +/* + * Marvell EBU SoC ID and revision definitions. + * + * Copyright (C) 2014 Marvell Semiconductor + * + * This file is licensed under the terms of the GNU General Public + * License version 2. This program is licensed "as is" without any + * warranty of any kind, whether express or implied. + */ + +#ifndef __LINUX_MVEBU_SOC_ID_H +#define __LINUX_MVEBU_SOC_ID_H + +/* Armada XP ID */ +#define MV78230_DEV_ID 0x7823 +#define MV78260_DEV_ID 0x7826 +#define MV78460_DEV_ID 0x7846 + +/* Armada XP Revision */ +#define MV78XX0_A0_REV 0x1 +#define MV78XX0_B0_REV 0x2 + +#ifdef CONFIG_ARCH_MVEBU +int mvebu_get_soc_id(u32 *dev, u32 *rev); +#else +static inline int mvebu_get_soc_id(u32 *dev, u32 *rev) +{ + return -1; +} +#endif + +#endif /* __LINUX_MVEBU_SOC_ID_H */ --- linux-3.13.0.orig/arch/arm/mach-omap2/board-flash.c +++ linux-3.13.0/arch/arm/mach-omap2/board-flash.c @@ -142,7 +142,7 @@ board_nand_data.nr_parts = nr_parts; board_nand_data.devsize = nand_type; - board_nand_data.ecc_opt = OMAP_ECC_BCH8_CODE_HW; + board_nand_data.ecc_opt = OMAP_ECC_HAM1_CODE_HW; gpmc_nand_init(&board_nand_data, gpmc_t); } #endif /* CONFIG_MTD_NAND_OMAP2 || CONFIG_MTD_NAND_OMAP2_MODULE */ --- linux-3.13.0.orig/arch/arm/mach-omap2/cclock3xxx_data.c +++ linux-3.13.0/arch/arm/mach-omap2/cclock3xxx_data.c @@ -454,7 +454,8 @@ .clkdm_name = "dpll4_clkdm", }; -DEFINE_STRUCT_CLK(dpll4_m5x2_ck, dpll4_m5x2_ck_parent_names, dpll4_m5x2_ck_ops); +DEFINE_STRUCT_CLK_FLAGS(dpll4_m5x2_ck, dpll4_m5x2_ck_parent_names, + dpll4_m5x2_ck_ops, CLK_SET_RATE_PARENT); static struct clk dpll4_m5x2_ck_3630 = { .name = "dpll4_m5x2_ck", --- linux-3.13.0.orig/arch/arm/mach-omap2/common.h +++ linux-3.13.0/arch/arm/mach-omap2/common.h @@ -236,6 +236,7 @@ extern void __init gic_init_irq(void); extern void gic_dist_disable(void); +extern void gic_dist_enable(void); extern bool gic_dist_disabled(void); extern void gic_timer_retrigger(void); extern void omap_smc1(u32 fn, u32 arg); --- linux-3.13.0.orig/arch/arm/mach-omap2/control.c +++ linux-3.13.0/arch/arm/mach-omap2/control.c @@ -314,7 +314,8 @@ scratchpad_contents.public_restore_ptr = virt_to_phys(omap3_restore_3630); else if (omap_rev() != OMAP3430_REV_ES3_0 && - omap_rev() != OMAP3430_REV_ES3_1) + omap_rev() != OMAP3430_REV_ES3_1 && + omap_rev() != OMAP3430_REV_ES3_1_2) scratchpad_contents.public_restore_ptr = virt_to_phys(omap3_restore); else --- linux-3.13.0.orig/arch/arm/mach-omap2/cpuidle44xx.c +++ linux-3.13.0/arch/arm/mach-omap2/cpuidle44xx.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -80,6 +81,8 @@ int index) { struct idle_statedata *cx = state_ptr + index; + int cpu_id = smp_processor_id(); + u32 mpuss_can_lose_context = 0; /* * CPU0 has to wait and stay ON until CPU1 is OFF state. @@ -104,6 +107,11 @@ } } + mpuss_can_lose_context = (cx->mpu_state == PWRDM_POWER_RET) && + (cx->mpu_logic_state == PWRDM_POWER_OFF); + + clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &cpu_id); + /* * Call idle CPU PM enter notifier chain so that * VFP and per CPU interrupt context is saved. @@ -118,9 +126,8 @@ * Call idle CPU cluster PM enter notifier chain * to save GIC and wakeupgen context. */ - if ((cx->mpu_state == PWRDM_POWER_RET) && - (cx->mpu_logic_state == PWRDM_POWER_OFF)) - cpu_cluster_pm_enter(); + if (mpuss_can_lose_context) + cpu_cluster_pm_enter(); } omap4_enter_lowpower(dev->cpu, cx->cpu_state); @@ -128,9 +135,23 @@ /* Wakeup CPU1 only if it is not offlined */ if (dev->cpu == 0 && cpumask_test_cpu(1, cpu_online_mask)) { + + if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) && + mpuss_can_lose_context) + gic_dist_disable(); + clkdm_wakeup(cpu_clkdm[1]); omap_set_pwrdm_state(cpu_pd[1], PWRDM_POWER_ON); clkdm_allow_idle(cpu_clkdm[1]); + + if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) && + mpuss_can_lose_context) { + while (gic_dist_disabled()) { + udelay(1); + cpu_relax(); + } + gic_timer_retrigger(); + } } /* @@ -143,10 +164,11 @@ * Call idle CPU cluster PM exit notifier chain * to restore GIC and wakeupgen context. */ - if (dev->cpu == 0 && (cx->mpu_state == PWRDM_POWER_RET) && - (cx->mpu_logic_state == PWRDM_POWER_OFF)) + if (dev->cpu == 0 && mpuss_can_lose_context) cpu_cluster_pm_exit(); + clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu_id); + fail: cpuidle_coupled_parallel_barrier(dev, &abort_barrier); cpu_done[dev->cpu] = false; @@ -154,6 +176,16 @@ return index; } +/* + * For each cpu, setup the broadcast timer because local timers + * stops for the states above C1. + */ +static void omap_setup_broadcast_timer(void *arg) +{ + int cpu = smp_processor_id(); + clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ON, &cpu); +} + static struct cpuidle_driver omap4_idle_driver = { .name = "omap4_idle", .owner = THIS_MODULE, @@ -171,8 +203,7 @@ /* C2 - CPU0 OFF + CPU1 OFF + MPU CSWR */ .exit_latency = 328 + 440, .target_residency = 960, - .flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_COUPLED | - CPUIDLE_FLAG_TIMER_STOP, + .flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_COUPLED, .enter = omap_enter_idle_coupled, .name = "C2", .desc = "CPUx OFF, MPUSS CSWR", @@ -181,8 +212,7 @@ /* C3 - CPU0 OFF + CPU1 OFF + MPU OSWR */ .exit_latency = 460 + 518, .target_residency = 1100, - .flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_COUPLED | - CPUIDLE_FLAG_TIMER_STOP, + .flags = CPUIDLE_FLAG_TIME_VALID | CPUIDLE_FLAG_COUPLED, .enter = omap_enter_idle_coupled, .name = "C3", .desc = "CPUx OFF, MPUSS OSWR", @@ -213,5 +243,8 @@ if (!cpu_clkdm[0] || !cpu_clkdm[1]) return -ENODEV; + /* Configure the broadcast timer on each cpu */ + on_each_cpu(omap_setup_broadcast_timer, NULL, 1); + return cpuidle_register(&omap4_idle_driver, cpu_online_mask); } --- linux-3.13.0.orig/arch/arm/mach-omap2/gpmc.c +++ linux-3.13.0/arch/arm/mach-omap2/gpmc.c @@ -1339,7 +1339,7 @@ of_property_read_bool(np, "gpmc,time-para-granularity"); } -#ifdef CONFIG_MTD_NAND +#if IS_ENABLED(CONFIG_MTD_NAND) static const char * const nand_xfer_types[] = { [NAND_OMAP_PREFETCH_POLLED] = "prefetch-polled", @@ -1429,7 +1429,7 @@ } #endif -#ifdef CONFIG_MTD_ONENAND +#if IS_ENABLED(CONFIG_MTD_ONENAND) static int gpmc_probe_onenand_child(struct platform_device *pdev, struct device_node *child) { --- linux-3.13.0.orig/arch/arm/mach-omap2/irq.c +++ linux-3.13.0/arch/arm/mach-omap2/irq.c @@ -222,6 +222,7 @@ static inline void omap_intc_handle_irq(void __iomem *base_addr, struct pt_regs *regs) { u32 irqnr; + int handled_irq = 0; do { irqnr = readl_relaxed(base_addr + 0x98); @@ -249,8 +250,15 @@ if (irqnr) { irqnr = irq_find_mapping(domain, irqnr); handle_IRQ(irqnr, regs); + handled_irq = 1; } } while (irqnr); + + /* If an irq is masked or deasserted while active, we will + * keep ending up here with no irq handled. So remove it from + * the INTC with an ack.*/ + if (!handled_irq) + omap_ack_irq(NULL); } asmlinkage void __exception_irq_entry omap2_intc_handle_irq(struct pt_regs *regs) --- linux-3.13.0.orig/arch/arm/mach-omap2/mux.c +++ linux-3.13.0/arch/arm/mach-omap2/mux.c @@ -183,8 +183,10 @@ m0_entry = mux->muxnames[0]; /* First check for full name in mode0.muxmode format */ - if (mode0_len && strncmp(muxname, m0_entry, mode0_len)) - continue; + if (mode0_len) + if (strncmp(muxname, m0_entry, mode0_len) || + (strlen(m0_entry) != mode0_len)) + continue; /* Then check for muxmode only */ for (i = 0; i < OMAP_MUX_NR_MODES; i++) { --- linux-3.13.0.orig/arch/arm/mach-omap2/omap-mpuss-lowpower.c +++ linux-3.13.0/arch/arm/mach-omap2/omap-mpuss-lowpower.c @@ -271,6 +271,9 @@ else omap_pm_ops.finish_suspend(save_state); + if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) && cpu) + gic_dist_enable(); + /* * Restore the CPUx power state to ON otherwise CPUx * power domain can transitions to programmed low power --- linux-3.13.0.orig/arch/arm/mach-omap2/omap4-common.c +++ linux-3.13.0/arch/arm/mach-omap2/omap4-common.c @@ -127,6 +127,12 @@ __raw_writel(0x0, gic_dist_base_addr + GIC_DIST_CTRL); } +void gic_dist_enable(void) +{ + if (gic_dist_base_addr) + __raw_writel(0x1, gic_dist_base_addr + GIC_DIST_CTRL); +} + bool gic_dist_disabled(void) { return !(__raw_readl(gic_dist_base_addr + GIC_DIST_CTRL) & 0x1); --- linux-3.13.0.orig/arch/arm/mach-omap2/omap_hwmod.h +++ linux-3.13.0/arch/arm/mach-omap2/omap_hwmod.h @@ -41,6 +41,7 @@ extern struct omap_hwmod_sysc_fields omap_hwmod_sysc_type1; extern struct omap_hwmod_sysc_fields omap_hwmod_sysc_type2; extern struct omap_hwmod_sysc_fields omap_hwmod_sysc_type3; +extern struct omap_hwmod_sysc_fields omap_hwmod_sysc_type4; /* * OCP SYSCONFIG bit shifts/masks TYPE1. These are for IPs compliant @@ -81,6 +82,16 @@ #define SYSC_TYPE3_MIDLEMODE_SHIFT 2 #define SYSC_TYPE3_MIDLEMODE_MASK (0x3 << SYSC_TYPE3_MIDLEMODE_SHIFT) +/* + * OCP SYSCONFIG bit shifts/masks TYPE4. + */ +#define SYSC_TYPE4_SIDLEMODE_SHIFT 2 +#define SYSC_TYPE4_SIDLEMODE_MASK (0x3 << SYSC_TYPE4_SIDLEMODE_SHIFT) +#define SYSC_TYPE4_SOFTRESET_SHIFT 1 +#define SYSC_TYPE4_SOFTRESET_MASK (1 << SYSC_TYPE4_SOFTRESET_SHIFT) +#define SYSC_TYPE4_AUTOIDLE_SHIFT 0 +#define SYSC_TYPE4_AUTOIDLE_MASK (1 << SYSC_TYPE4_AUTOIDLE_SHIFT) + /* OCP SYSSTATUS bit shifts/masks */ #define SYSS_RESETDONE_SHIFT 0 #define SYSS_RESETDONE_MASK (1 << SYSS_RESETDONE_SHIFT) --- linux-3.13.0.orig/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c +++ linux-3.13.0/arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c @@ -209,6 +209,7 @@ .sysc_offs = 0x84, .syss_offs = 0x88, .sysc_flags = SYSS_HAS_RESET_STATUS, + .sysc_fields = &omap_hwmod_sysc_type4, }; static struct omap_hwmod_class am33xx_aes0_hwmod_class = { --- linux-3.13.0.orig/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ linux-3.13.0/arch/arm/mach-omap2/omap_hwmod_44xx_data.c @@ -4783,6 +4783,59 @@ .user = OCP_USER_MPU | OCP_USER_SDMA, }; +/* + Crypto modules AES0/1 belong to: + PD_L4_PER power domain + CD_L4_SEC clock domain + On the L3, the AES modules are mapped to + L3_CLK2: Peripherals and multimedia sub clock domain +*/ + +static struct omap_hwmod_class_sysconfig omap4_aes1_sysc = { + .rev_offs = 0x80, + .sysc_offs = 0x84, + .syss_offs = 0x88, + .sysc_flags = SYSS_HAS_RESET_STATUS, + .sysc_fields = &omap_hwmod_sysc_type4, +}; + +static struct omap_hwmod_class omap4_aes1_hwmod_class = { + .name = "aes1", + .sysc = &omap4_aes1_sysc, +}; + +static struct omap_hwmod omap4_aes1_hwmod = { + .name = "aes", + .class = &omap4_aes1_hwmod_class, + .clkdm_name = "l4_secure_clkdm", + .main_clk = "aes1_fck", + .prcm = { + .omap4 = { + .clkctrl_offs = OMAP4_CM_L4SEC_AES1_CLKCTRL_OFFSET, + .context_offs = OMAP4_RM_L4SEC_AES1_CONTEXT_OFFSET, + .modulemode = MODULEMODE_SWCTRL, + }, + }, +}; + +/* l3_main_2 -> aes1 */ +static struct omap_hwmod_addr_space omap4_aes1_addrs[] = { + { + .pa_start = 0x4B500000, + .pa_end = 0x4B500000 + SZ_1M - 1, + .flags = ADDR_TYPE_RT + }, + { } +}; + +static struct omap_hwmod_ocp_if omap4_l3_main_2__aes1 = { + .master = &omap44xx_l3_main_2_hwmod, + .slave = &omap4_aes1_hwmod, + .clk = "aes1_fck", + .addr = omap4_aes1_addrs, + .user = OCP_USER_MPU | OCP_USER_SDMA, +}; + static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l3_main_1__dmm, &omap44xx_mpu__dmm, @@ -4937,6 +4990,7 @@ &omap44xx_l4_abe__wd_timer3_dma, &omap44xx_mpu__emif1, &omap44xx_mpu__emif2, + &omap4_l3_main_2__aes1, NULL, }; --- linux-3.13.0.orig/arch/arm/mach-omap2/omap_hwmod_54xx_data.c +++ linux-3.13.0/arch/arm/mach-omap2/omap_hwmod_54xx_data.c @@ -895,7 +895,7 @@ * current exception. */ - .flags = HWMOD_EXT_OPT_MAIN_CLK, + .flags = HWMOD_EXT_OPT_MAIN_CLK | HWMOD_SWSUP_SIDLE, .main_clk = "pad_clks_ck", .prcm = { .omap4 = { --- linux-3.13.0.orig/arch/arm/mach-omap2/omap_hwmod_common_data.c +++ linux-3.13.0/arch/arm/mach-omap2/omap_hwmod_common_data.c @@ -59,6 +59,16 @@ .sidle_shift = SYSC_TYPE3_SIDLEMODE_SHIFT, }; +/** + * struct omap_hwmod_sysc_type4 - TYPE4 sysconfig scheme. + * Used by some IPs on AM33xx + */ +struct omap_hwmod_sysc_fields omap_hwmod_sysc_type4 = { + .sidle_shift = SYSC_TYPE4_SIDLEMODE_SHIFT, + .srst_shift = SYSC_TYPE4_SOFTRESET_SHIFT, + .autoidle_shift = SYSC_TYPE4_AUTOIDLE_SHIFT, +}; + struct omap_dss_dispc_dev_attr omap2_3_dss_dispc_dev_attr = { .manager_count = 2, .has_framedonetv_irq = 0 --- linux-3.13.0.orig/arch/arm/mach-orion5x/common.h +++ linux-3.13.0/arch/arm/mach-orion5x/common.h @@ -21,7 +21,7 @@ #define ORION_MBUS_DEVBUS_BOOT_ATTR 0x0f #define ORION_MBUS_DEVBUS_TARGET(cs) 0x01 #define ORION_MBUS_DEVBUS_ATTR(cs) (~(1 << cs)) -#define ORION_MBUS_SRAM_TARGET 0x00 +#define ORION_MBUS_SRAM_TARGET 0x09 #define ORION_MBUS_SRAM_ATTR 0x00 /* --- linux-3.13.0.orig/arch/arm/mach-pxa/am300epd.c +++ linux-3.13.0/arch/arm/mach-pxa/am300epd.c @@ -30,6 +30,7 @@ #include #include +#include #include #include "generic.h" --- linux-3.13.0.orig/arch/arm/mach-pxa/include/mach/addr-map.h +++ linux-3.13.0/arch/arm/mach-pxa/include/mach/addr-map.h @@ -39,6 +39,11 @@ #define DMEMC_SIZE 0x00100000 /* + * Reserved space for low level debug virtual addresses within + * 0xf6200000..0xf6201000 + */ + +/* * Internal Memory Controller (PXA27x and later) */ #define IMEMC_PHYS 0x58000000 --- linux-3.13.0.orig/arch/arm/mach-pxa/include/mach/balloon3.h +++ linux-3.13.0/arch/arm/mach-pxa/include/mach/balloon3.h @@ -14,6 +14,8 @@ #ifndef ASM_ARCH_BALLOON3_H #define ASM_ARCH_BALLOON3_H +#include "irqs.h" /* PXA_NR_BUILTIN_GPIO */ + enum balloon3_features { BALLOON3_FEATURE_OHCI, BALLOON3_FEATURE_MMC, --- linux-3.13.0.orig/arch/arm/mach-pxa/include/mach/corgi.h +++ linux-3.13.0/arch/arm/mach-pxa/include/mach/corgi.h @@ -13,6 +13,7 @@ #ifndef __ASM_ARCH_CORGI_H #define __ASM_ARCH_CORGI_H 1 +#include "irqs.h" /* PXA_NR_BUILTIN_GPIO */ /* * Corgi (Non Standard) GPIO Definitions --- linux-3.13.0.orig/arch/arm/mach-pxa/include/mach/csb726.h +++ linux-3.13.0/arch/arm/mach-pxa/include/mach/csb726.h @@ -11,6 +11,8 @@ #ifndef CSB726_H #define CSB726_H +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ + #define CSB726_GPIO_IRQ_LAN 52 #define CSB726_GPIO_IRQ_SM501 53 #define CSB726_GPIO_MMC_DETECT 100 --- linux-3.13.0.orig/arch/arm/mach-pxa/include/mach/gumstix.h +++ linux-3.13.0/arch/arm/mach-pxa/include/mach/gumstix.h @@ -6,6 +6,7 @@ * published by the Free Software Foundation. */ +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ /* BTRESET - Reset line to Bluetooth module, active low signal. */ #define GPIO_GUMSTIX_BTRESET 7 --- linux-3.13.0.orig/arch/arm/mach-pxa/include/mach/hx4700.h +++ linux-3.13.0/arch/arm/mach-pxa/include/mach/hx4700.h @@ -14,6 +14,7 @@ #include #include +#include "irqs.h" /* PXA_NR_BUILTIN_GPIO */ #define HX4700_ASIC3_GPIO_BASE PXA_NR_BUILTIN_GPIO #define HX4700_EGPIO_BASE (HX4700_ASIC3_GPIO_BASE + ASIC3_NUM_GPIOS) --- linux-3.13.0.orig/arch/arm/mach-pxa/include/mach/idp.h +++ linux-3.13.0/arch/arm/mach-pxa/include/mach/idp.h @@ -23,6 +23,7 @@ * IDP hardware. */ +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ #define IDP_FLASH_PHYS (PXA_CS0_PHYS) #define IDP_ALT_FLASH_PHYS (PXA_CS1_PHYS) --- linux-3.13.0.orig/arch/arm/mach-pxa/include/mach/palmld.h +++ linux-3.13.0/arch/arm/mach-pxa/include/mach/palmld.h @@ -13,6 +13,8 @@ #ifndef _INCLUDE_PALMLD_H_ #define _INCLUDE_PALMLD_H_ +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ + /** HERE ARE GPIOs **/ /* GPIOs */ --- linux-3.13.0.orig/arch/arm/mach-pxa/include/mach/palmt5.h +++ linux-3.13.0/arch/arm/mach-pxa/include/mach/palmt5.h @@ -15,6 +15,8 @@ #ifndef _INCLUDE_PALMT5_H_ #define _INCLUDE_PALMT5_H_ +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ + /** HERE ARE GPIOs **/ /* GPIOs */ --- linux-3.13.0.orig/arch/arm/mach-pxa/include/mach/palmtc.h +++ linux-3.13.0/arch/arm/mach-pxa/include/mach/palmtc.h @@ -16,6 +16,8 @@ #ifndef _INCLUDE_PALMTC_H_ #define _INCLUDE_PALMTC_H_ +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ + /** HERE ARE GPIOs **/ /* GPIOs */ --- linux-3.13.0.orig/arch/arm/mach-pxa/include/mach/palmtx.h +++ linux-3.13.0/arch/arm/mach-pxa/include/mach/palmtx.h @@ -16,6 +16,8 @@ #ifndef _INCLUDE_PALMTX_H_ #define _INCLUDE_PALMTX_H_ +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ + /** HERE ARE GPIOs **/ /* GPIOs */ --- linux-3.13.0.orig/arch/arm/mach-pxa/include/mach/pcm027.h +++ linux-3.13.0/arch/arm/mach-pxa/include/mach/pcm027.h @@ -23,6 +23,8 @@ * Definitions of CPU card resources only */ +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ + /* phyCORE-PXA270 (PCM027) Interrupts */ #define PCM027_IRQ(x) (IRQ_BOARD_START + (x)) #define PCM027_BTDET_IRQ PCM027_IRQ(0) --- linux-3.13.0.orig/arch/arm/mach-pxa/include/mach/pcm990_baseboard.h +++ linux-3.13.0/arch/arm/mach-pxa/include/mach/pcm990_baseboard.h @@ -20,6 +20,7 @@ */ #include +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ /* * definitions relevant only when the PCM-990 --- linux-3.13.0.orig/arch/arm/mach-pxa/include/mach/poodle.h +++ linux-3.13.0/arch/arm/mach-pxa/include/mach/poodle.h @@ -15,6 +15,8 @@ #ifndef __ASM_ARCH_POODLE_H #define __ASM_ARCH_POODLE_H 1 +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ + /* * GPIOs */ --- linux-3.13.0.orig/arch/arm/mach-pxa/include/mach/spitz.h +++ linux-3.13.0/arch/arm/mach-pxa/include/mach/spitz.h @@ -15,8 +15,8 @@ #define __ASM_ARCH_SPITZ_H 1 #endif +#include "irqs.h" /* PXA_NR_BUILTIN_GPIO, PXA_GPIO_TO_IRQ */ #include -#include /* Spitz/Akita GPIOs */ --- linux-3.13.0.orig/arch/arm/mach-pxa/include/mach/tosa.h +++ linux-3.13.0/arch/arm/mach-pxa/include/mach/tosa.h @@ -13,6 +13,8 @@ #ifndef _ASM_ARCH_TOSA_H_ #define _ASM_ARCH_TOSA_H_ 1 +#include "irqs.h" /* PXA_NR_BUILTIN_GPIO */ + /* TOSA Chip selects */ #define TOSA_LCDC_PHYS PXA_CS4_PHYS /* Internel Scoop */ --- linux-3.13.0.orig/arch/arm/mach-pxa/include/mach/trizeps4.h +++ linux-3.13.0/arch/arm/mach-pxa/include/mach/trizeps4.h @@ -10,6 +10,8 @@ #ifndef _TRIPEPS4_H_ #define _TRIPEPS4_H_ +#include "irqs.h" /* PXA_GPIO_TO_IRQ */ + /* physical memory regions */ #define TRIZEPS4_FLASH_PHYS (PXA_CS0_PHYS) /* Flash region */ #define TRIZEPS4_DISK_PHYS (PXA_CS1_PHYS) /* Disk On Chip region */ --- linux-3.13.0.orig/arch/arm/mach-sa1100/include/mach/collie.h +++ linux-3.13.0/arch/arm/mach-sa1100/include/mach/collie.h @@ -13,6 +13,8 @@ #ifndef __ASM_ARCH_COLLIE_H #define __ASM_ARCH_COLLIE_H +#include "hardware.h" /* Gives GPIO_MAX */ + extern void locomolcd_power(int on); #define COLLIE_SCOOP_GPIO_BASE (GPIO_MAX + 1) --- linux-3.13.0.orig/arch/arm/mach-tegra/reset-handler.S +++ linux-3.13.0/arch/arm/mach-tegra/reset-handler.S @@ -51,6 +51,7 @@ THUMB( it ne ) bne cpu_resume @ no + tegra_get_soc_id TEGRA_APB_MISC_BASE, r6 /* Are we on Tegra20? */ cmp r6, #TEGRA20 beq 1f @ Yes --- linux-3.13.0.orig/arch/arm/mach-tegra/tegra.c +++ linux-3.13.0/arch/arm/mach-tegra/tegra.c @@ -74,10 +74,20 @@ static void __init tegra_init_cache(void) { #ifdef CONFIG_CACHE_L2X0 + static const struct of_device_id pl310_ids[] __initconst = { + { .compatible = "arm,pl310-cache", }, + {} + }; + + struct device_node *np; int ret; void __iomem *p = IO_ADDRESS(TEGRA_ARM_PERIF_BASE) + 0x3000; u32 aux_ctrl, cache_type; + np = of_find_matching_node(NULL, pl310_ids); + if (!np) + return; + cache_type = readl(p + L2X0_CACHE_TYPE); aux_ctrl = (cache_type & 0x700) << (17-8); aux_ctrl |= 0x7C400001; --- linux-3.13.0.orig/arch/arm/mm/Kconfig +++ linux-3.13.0/arch/arm/mm/Kconfig @@ -446,7 +446,6 @@ config CPU_32v6 bool - select CPU_USE_DOMAINS if CPU_V6 && MMU select TLS_REG_EMUL if !CPU_32v6K && !MMU config CPU_32v6K @@ -671,7 +670,7 @@ config SWP_EMULATE bool "Emulate SWP/SWPB instructions" - depends on !CPU_USE_DOMAINS && CPU_V7 + depends on CPU_V7 default y if SMP select HAVE_PROC_CPU if PROC_FS help @@ -799,6 +798,7 @@ config KUSER_HELPERS bool "Enable kuser helpers in vector page" if !NEED_KUSER_HELPERS + depends on MMU default y help Warning: disabling this option may break user programs. --- linux-3.13.0.orig/arch/arm/mm/abort-ev6.S +++ linux-3.13.0/arch/arm/mm/abort-ev6.S @@ -17,12 +17,6 @@ */ .align 5 ENTRY(v6_early_abort) -#ifdef CONFIG_CPU_V6 - sub r1, sp, #4 @ Get unused stack location - strex r0, r1, [r1] @ Clear the exclusive monitor -#elif defined(CONFIG_CPU_32v6K) - clrex -#endif mrc p15, 0, r1, c5, c0, 0 @ get FSR mrc p15, 0, r0, c6, c0, 0 @ get FAR /* --- linux-3.13.0.orig/arch/arm/mm/abort-ev7.S +++ linux-3.13.0/arch/arm/mm/abort-ev7.S @@ -13,12 +13,6 @@ */ .align 5 ENTRY(v7_early_abort) - /* - * The effect of data aborts on on the exclusive access monitor are - * UNPREDICTABLE. Do a CLREX to clear the state - */ - clrex - mrc p15, 0, r1, c5, c0, 0 @ get FSR mrc p15, 0, r0, c6, c0, 0 @ get FAR --- linux-3.13.0.orig/arch/arm/mm/alignment.c +++ linux-3.13.0/arch/arm/mm/alignment.c @@ -40,6 +40,7 @@ * This code is not portable to processors with late data abort handling. */ #define CODING_BITS(i) (i & 0x0e000000) +#define COND_BITS(i) (i & 0xf0000000) #define LDST_I_BIT(i) (i & (1 << 26)) /* Immediate constant */ #define LDST_P_BIT(i) (i & (1 << 24)) /* Preindex */ @@ -817,6 +818,8 @@ break; case 0x04000000: /* ldr or str immediate */ + if (COND_BITS(instr) == 0xf0000000) /* NEON VLDn, VSTn */ + goto bad; offset.un = OFFSET_BITS(instr); handler = do_alignment_ldrstr; break; --- linux-3.13.0.orig/arch/arm/mm/dma-mapping.c +++ linux-3.13.0/arch/arm/mm/dma-mapping.c @@ -1358,7 +1358,7 @@ *handle = DMA_ERROR_CODE; size = PAGE_ALIGN(size); - if (gfp & GFP_ATOMIC) + if (!(gfp & __GFP_WAIT)) return __iommu_alloc_atomic(dev, size, handle); /* --- linux-3.13.0.orig/arch/arm/mm/hugetlbpage.c +++ linux-3.13.0/arch/arm/mm/hugetlbpage.c @@ -56,8 +56,3 @@ { return pmd_val(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT); } - -int pmd_huge_support(void) -{ - return 1; -} --- linux-3.13.0.orig/arch/arm/mm/init.c +++ linux-3.13.0/arch/arm/mm/init.c @@ -345,10 +345,11 @@ #endif #ifdef CONFIG_BLK_DEV_INITRD /* FDT scan will populate initrd_start */ - if (initrd_start) { + if (initrd_start && !phys_initrd_size) { phys_initrd_start = __virt_to_phys(initrd_start); phys_initrd_size = initrd_end - initrd_start; } + initrd_start = initrd_end = 0; if (phys_initrd_size && !memblock_is_region_memory(phys_initrd_start, phys_initrd_size)) { pr_err("INITRD: 0x%08llx+0x%08lx is not a memory region - disabling initrd\n", --- linux-3.13.0.orig/arch/arm/mm/mm.h +++ linux-3.13.0/arch/arm/mm/mm.h @@ -38,6 +38,7 @@ struct mem_type { pteval_t prot_pte; + pteval_t prot_pte_s2; pmdval_t prot_l1; pmdval_t prot_sect; unsigned int domain; --- linux-3.13.0.orig/arch/arm/mm/mmu.c +++ linux-3.13.0/arch/arm/mm/mmu.c @@ -231,12 +231,16 @@ #endif /* ifdef CONFIG_CPU_CP15 / else */ #define PROT_PTE_DEVICE L_PTE_PRESENT|L_PTE_YOUNG|L_PTE_DIRTY|L_PTE_XN +#define PROT_PTE_S2_DEVICE PROT_PTE_DEVICE #define PROT_SECT_DEVICE PMD_TYPE_SECT|PMD_SECT_AP_WRITE static struct mem_type mem_types[] = { [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */ .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED | L_PTE_SHARED, + .prot_pte_s2 = s2_policy(PROT_PTE_S2_DEVICE) | + s2_policy(L_PTE_S2_MT_DEV_SHARED) | + L_PTE_SHARED, .prot_l1 = PMD_TYPE_TABLE, .prot_sect = PROT_SECT_DEVICE | PMD_SECT_S, .domain = DOMAIN_IO, @@ -458,7 +462,18 @@ cp = &cache_policies[cachepolicy]; vecs_pgprot = kern_pgprot = user_pgprot = cp->pte; s2_pgprot = cp->pte_s2; - hyp_device_pgprot = s2_device_pgprot = mem_types[MT_DEVICE].prot_pte; + hyp_device_pgprot = mem_types[MT_DEVICE].prot_pte; + s2_device_pgprot = mem_types[MT_DEVICE].prot_pte_s2; + + /* + * We don't use domains on ARMv6 (since this causes problems with + * v6/v7 kernels), so we must use a separate memory type for user + * r/o, kernel r/w to map the vectors page. + */ +#ifndef CONFIG_ARM_LPAE + if (cpu_arch == CPU_ARCH_ARMv6) + vecs_pgprot |= L_PTE_MT_VECTORS; +#endif /* * ARMv6 and above have extended page tables. @@ -1337,8 +1352,8 @@ return; /* remap kernel code and data */ - map_start = init_mm.start_code; - map_end = init_mm.brk; + map_start = init_mm.start_code & PMD_MASK; + map_end = ALIGN(init_mm.brk, PMD_SIZE); /* get a handle on things... */ pgd0 = pgd_offset_k(0); @@ -1373,7 +1388,7 @@ } /* remap pmds for kernel mapping */ - phys = __pa(map_start) & PMD_MASK; + phys = __pa(map_start); do { *pmdk++ = __pmd(phys | pmdprot); phys += PMD_SIZE; --- linux-3.13.0.orig/arch/arm/mm/proc-macros.S +++ linux-3.13.0/arch/arm/mm/proc-macros.S @@ -112,13 +112,9 @@ * 100x 1 0 1 r/o no acc * 10x0 1 0 1 r/o no acc * 1011 0 0 1 r/w no acc - * 110x 0 1 0 r/w r/o - * 11x0 0 1 0 r/w r/o - * 1111 0 1 1 r/w r/w - * - * If !CONFIG_CPU_USE_DOMAINS, the following permissions are changed: * 110x 1 1 1 r/o r/o * 11x0 1 1 1 r/o r/o + * 1111 0 1 1 r/w r/w */ .macro armv6_mt_table pfx \pfx\()_mt_table: @@ -137,7 +133,7 @@ .long PTE_EXT_TEX(2) @ L_PTE_MT_DEV_NONSHARED .long 0x00 @ unused .long 0x00 @ unused - .long 0x00 @ unused + .long PTE_CACHEABLE | PTE_BUFFERABLE | PTE_EXT_APX @ L_PTE_MT_VECTORS .endm .macro armv6_set_pte_ext pfx @@ -158,24 +154,21 @@ tst r1, #L_PTE_USER orrne r3, r3, #PTE_EXT_AP1 -#ifdef CONFIG_CPU_USE_DOMAINS - @ allow kernel read/write access to read-only user pages tstne r3, #PTE_EXT_APX - bicne r3, r3, #PTE_EXT_APX | PTE_EXT_AP0 -#endif + + @ user read-only -> kernel read-only + bicne r3, r3, #PTE_EXT_AP0 tst r1, #L_PTE_XN orrne r3, r3, #PTE_EXT_XN - orr r3, r3, r2 + eor r3, r3, r2 tst r1, #L_PTE_YOUNG tstne r1, #L_PTE_PRESENT moveq r3, #0 -#ifndef CONFIG_CPU_USE_DOMAINS tstne r1, #L_PTE_NONE movne r3, #0 -#endif str r3, [r0] mcr p15, 0, r0, c7, c10, 1 @ flush_pte --- linux-3.13.0.orig/arch/arm/mm/proc-v6.S +++ linux-3.13.0/arch/arm/mm/proc-v6.S @@ -208,7 +208,6 @@ mcr p15, 0, r0, c7, c14, 0 @ clean+invalidate D cache mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache mcr p15, 0, r0, c7, c15, 0 @ clean+invalidate cache - mcr p15, 0, r0, c7, c10, 4 @ drain write buffer #ifdef CONFIG_MMU mcr p15, 0, r0, c8, c7, 0 @ invalidate I + D TLBs mcr p15, 0, r0, c2, c0, 2 @ TTB control register @@ -218,6 +217,8 @@ ALT_UP(orr r8, r8, #TTB_FLAGS_UP) mcr p15, 0, r8, c2, c0, 1 @ load TTB1 #endif /* CONFIG_MMU */ + mcr p15, 0, r0, c7, c10, 4 @ drain write buffer and + @ complete invalidations adr r5, v6_crval ldmia r5, {r5, r6} ARM_BE8(orr r6, r6, #1 << 25) @ big-endian page tables --- linux-3.13.0.orig/arch/arm/mm/proc-v7-2level.S +++ linux-3.13.0/arch/arm/mm/proc-v7-2level.S @@ -90,21 +90,14 @@ tst r1, #L_PTE_USER orrne r3, r3, #PTE_EXT_AP1 -#ifdef CONFIG_CPU_USE_DOMAINS - @ allow kernel read/write access to read-only user pages - tstne r3, #PTE_EXT_APX - bicne r3, r3, #PTE_EXT_APX | PTE_EXT_AP0 -#endif tst r1, #L_PTE_XN orrne r3, r3, #PTE_EXT_XN tst r1, #L_PTE_YOUNG tstne r1, #L_PTE_VALID -#ifndef CONFIG_CPU_USE_DOMAINS eorne r1, r1, #L_PTE_NONE tstne r1, #L_PTE_NONE -#endif moveq r3, #0 ARM( str r3, [r0, #2048]! ) --- linux-3.13.0.orig/arch/arm/mm/proc-v7.S +++ linux-3.13.0/arch/arm/mm/proc-v7.S @@ -211,7 +211,6 @@ /* Auxiliary Debug Modes Control 1 Register */ #define PJ4B_STATIC_BP (1 << 2) /* Enable Static BP */ #define PJ4B_INTER_PARITY (1 << 8) /* Disable Internal Parity Handling */ -#define PJ4B_BCK_OFF_STREX (1 << 5) /* Enable the back off of STREX instr */ #define PJ4B_CLEAN_LINE (1 << 16) /* Disable data transfer for clean line */ /* Auxiliary Debug Modes Control 2 Register */ @@ -234,7 +233,6 @@ /* Auxiliary Debug Modes Control 1 Register */ mrc p15, 1, r0, c15, c1, 1 orr r0, r0, #PJ4B_CLEAN_LINE - orr r0, r0, #PJ4B_BCK_OFF_STREX orr r0, r0, #PJ4B_INTER_PARITY bic r0, r0, #PJ4B_STATIC_BP mcr p15, 1, r0, c15, c1, 1 @@ -351,7 +349,6 @@ 4: mov r10, #0 mcr p15, 0, r10, c7, c5, 0 @ I+BTB cache invalidate - dsb #ifdef CONFIG_MMU mcr p15, 0, r10, c8, c7, 0 @ invalidate I + D TLBs v7_ttb_setup r10, r4, r8, r5 @ TTBCR, TTBRx setup @@ -360,6 +357,7 @@ mcr p15, 0, r5, c10, c2, 0 @ write PRRR mcr p15, 0, r6, c10, c2, 1 @ write NMRR #endif + dsb @ Complete invalidations #ifndef CONFIG_ARM_THUMBEE mrc p15, 0, r0, c0, c1, 0 @ read ID_PFR0 for ThumbEE and r0, r0, #(0xf << 12) @ ThumbEE enabled field --- linux-3.13.0.orig/arch/arm/mm/proc-xscale.S +++ linux-3.13.0/arch/arm/mm/proc-xscale.S @@ -535,7 +535,7 @@ mrc p15, 0, r5, c15, c1, 0 @ CP access reg mrc p15, 0, r6, c13, c0, 0 @ PID mrc p15, 0, r7, c3, c0, 0 @ domain ID - mrc p15, 0, r8, c1, c1, 0 @ auxiliary control reg + mrc p15, 0, r8, c1, c0, 1 @ auxiliary control reg mrc p15, 0, r9, c1, c0, 0 @ control reg bic r4, r4, #2 @ clear frequency change bit stmia r0, {r4 - r9} @ store cp regs @@ -552,7 +552,7 @@ mcr p15, 0, r6, c13, c0, 0 @ PID mcr p15, 0, r7, c3, c0, 0 @ domain ID mcr p15, 0, r1, c2, c0, 0 @ translation table base addr - mcr p15, 0, r8, c1, c1, 0 @ auxiliary control reg + mcr p15, 0, r8, c1, c0, 1 @ auxiliary control reg mov r0, r9 @ control register b cpu_resume_mmu ENDPROC(cpu_xscale_do_resume) --- linux-3.13.0.orig/arch/arm/plat-orion/irq.c +++ linux-3.13.0/arch/arm/plat-orion/irq.c @@ -15,8 +15,51 @@ #include #include #include +#include #include #include +#include + +#ifdef CONFIG_MULTI_IRQ_HANDLER +/* + * Compiling with both non-DT and DT support enabled, will + * break asm irq handler used by non-DT boards. Therefore, + * we provide a C-style irq handler even for non-DT boards, + * if MULTI_IRQ_HANDLER is set. + * + * Notes: + * - this is prepared for Kirkwood and Dove only, update + * accordingly if you add Orion5x or MV78x00. + * - Orion5x uses different macro names and has only one + * set of CAUSE/MASK registers. + * - MV78x00 uses the same macro names but has a third + * set of CAUSE/MASK registers. + * + */ + +static void __iomem *orion_irq_base = IRQ_VIRT_BASE; + +asmlinkage void +__exception_irq_entry orion_legacy_handle_irq(struct pt_regs *regs) +{ + u32 stat; + + stat = readl_relaxed(orion_irq_base + IRQ_CAUSE_LOW_OFF); + stat &= readl_relaxed(orion_irq_base + IRQ_MASK_LOW_OFF); + if (stat) { + unsigned int hwirq = __fls(stat); + handle_IRQ(hwirq, regs); + return; + } + stat = readl_relaxed(orion_irq_base + IRQ_CAUSE_HIGH_OFF); + stat &= readl_relaxed(orion_irq_base + IRQ_MASK_HIGH_OFF); + if (stat) { + unsigned int hwirq = 32 + __fls(stat); + handle_IRQ(hwirq, regs); + return; + } +} +#endif void __init orion_irq_init(unsigned int irq_start, void __iomem *maskaddr) { @@ -35,6 +78,10 @@ ct->chip.irq_unmask = irq_gc_mask_set_bit; irq_setup_generic_chip(gc, IRQ_MSK(32), IRQ_GC_INIT_MASK_CACHE, IRQ_NOREQUEST, IRQ_LEVEL | IRQ_NOPROBE); + +#ifdef CONFIG_MULTI_IRQ_HANDLER + set_handle_irq(orion_legacy_handle_irq); +#endif } #ifdef CONFIG_OF --- linux-3.13.0.orig/arch/arm/xen/grant-table.c +++ linux-3.13.0/arch/arm/xen/grant-table.c @@ -51,3 +51,8 @@ { return -ENOSYS; } + +int arch_gnttab_init(unsigned long nr_shared, unsigned long nr_status) +{ + return 0; +} --- linux-3.13.0.orig/arch/arm64/Kconfig +++ linux-3.13.0/arch/arm64/Kconfig @@ -2,6 +2,7 @@ def_bool y select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE select ARCH_USE_CMPXCHG_LOCKREF + select ARCH_SUPPORTS_ATOMIC_RMW select ARCH_WANT_OPTIONAL_GPIOLIB select ARCH_WANT_COMPAT_IPC_PARSE_VERSION select ARCH_WANT_FRAME_POINTERS @@ -113,6 +114,8 @@ Express). config ARCH_XGENE + select PCI + select PCI_DOMAINS bool "AppliedMicro X-Gene SOC Family" help This enables support for AppliedMicro X-Gene SOC Family @@ -124,6 +127,23 @@ config ARM_AMBA bool +config PCI + bool "PCI support" + help + Find out whether you have a PCI motherboard. PCI is the name of a + bus system, i.e. the way the CPU talks to the other stuff inside + your box. Other bus systems are ISA, EISA, MicroChannel (MCA) or + VESA. If you have PCI, say Y, otherwise N. + +config PCI_DOMAINS + bool + depends on PCI + +config PCI_SYSCALL + def_bool PCI + +source "drivers/pci/Kconfig" +source "drivers/pci/pcie/Kconfig" endmenu menu "Kernel Features" @@ -279,6 +299,8 @@ source "drivers/Kconfig" +source "ubuntu/Kconfig" + source "fs/Kconfig" source "arch/arm64/kvm/Kconfig" --- linux-3.13.0.orig/arch/arm64/boot/dts/apm-mustang.dts +++ linux-3.13.0/arch/arm64/boot/dts/apm-mustang.dts @@ -24,3 +24,23 @@ reg = < 0x1 0x00000000 0x0 0x80000000 >; /* Updated by bootloader */ }; }; + +&pcie0clk { + status = "ok"; +}; + +&pcie0 { + status = "ok"; +}; + +&menet { + status = "ok"; +}; + +&sgenet0 { + status = "ok"; +}; + +&xgenet { + status = "ok"; +}; --- linux-3.13.0.orig/arch/arm64/boot/dts/apm-storm.dtsi +++ linux-3.13.0/arch/arm64/boot/dts/apm-storm.dtsi @@ -97,12 +97,22 @@ clock-frequency = <50000000>; }; + pmu { + compatible = "apm,potenza-pmu", "arm,armv8-pmuv3"; + interrupts = <1 12 0xff04>; + }; + soc { compatible = "simple-bus"; #address-cells = <2>; #size-cells = <2>; ranges; + scu: system-clk-controller@17000000 { + compatible = "apm,xgene-scu","syscon"; + reg = <0x0 0x17000000 0x0 0x400>; + }; + clocks { #address-cells = <2>; #size-cells = <2>; @@ -118,7 +128,7 @@ compatible = "apm,xgene-pcppll-clock"; #clock-cells = <1>; clocks = <&refclk 0>; - clock-names = "pcppll"; + clock-names = "refclk"; reg = <0x0 0x17000100 0x0 0x1000>; clock-output-names = "pcppll"; type = <0>; @@ -128,7 +138,7 @@ compatible = "apm,xgene-socpll-clock"; #clock-cells = <1>; clocks = <&refclk 0>; - clock-names = "socpll"; + clock-names = "refclk"; reg = <0x0 0x17000120 0x0 0x1000>; clock-output-names = "socpll"; type = <1>; @@ -141,7 +151,7 @@ clock-names = "socplldiv2"; clock-mult = <1>; clock-div = <2>; - clock-output-names = "socplldiv2"; + clock-output-names = "socpll"; }; qmlclk: qmlclk { @@ -167,15 +177,320 @@ clock-output-names = "ethclk"; }; - eth8clk: eth8clk { + menetclk: menetclk { compatible = "apm,xgene-device-clock"; #clock-cells = <1>; clocks = <ðclk 0>; - clock-names = "eth8clk"; reg = <0x0 0x1702C000 0x0 0x1000>; reg-names = "csr-reg"; - clock-output-names = "eth8clk"; + clock-output-names = "menetclk"; + }; + + sge0clk: sge0clk@1f21c000 { + compatible = "apm,xgene-device-clock"; + #clock-cells = <1>; + clocks = <&socplldiv2 0>; + reg = <0x0 0x1f21c000 0x0 0x1000>; + reg-names = "csr-reg"; + csr-mask = <0x3>; + clock-output-names = "sge0clk"; + }; + + xge0clk: xge0clk@1f61c000 { + compatible = "apm,xgene-device-clock"; + #clock-cells = <1>; + clocks = <&socplldiv2 0>; + reg = <0x0 0x1f61c000 0x0 0x1000>; + reg-names = "csr-reg"; + csr-mask = <0x3>; + clock-output-names = "xge0clk"; + }; + + sataphy1clk: sataphy1clk@1f21c000 { + compatible = "apm,xgene-device-clock"; + #clock-cells = <1>; + clocks = <&socplldiv2 0>; + reg = <0x0 0x1f21c000 0x0 0x1000>; + reg-names = "csr-reg"; + clock-output-names = "sataphy1clk"; + csr-offset = <0x4>; + csr-mask = <0x3a>; + enable-offset = <0x0>; + enable-mask = <0x06>; + }; + + sataphy2clk: sataphy1clk@1f22c000 { + compatible = "apm,xgene-device-clock"; + #clock-cells = <1>; + clocks = <&socplldiv2 0>; + reg = <0x0 0x1f22c000 0x0 0x1000>; + reg-names = "csr-reg"; + clock-output-names = "sataphy2clk"; + csr-offset = <0x4>; + csr-mask = <0x3a>; + enable-offset = <0x0>; + enable-mask = <0x06>; + }; + + sataphy3clk: sataphy1clk@1f23c000 { + compatible = "apm,xgene-device-clock"; + #clock-cells = <1>; + clocks = <&socplldiv2 0>; + reg = <0x0 0x1f23c000 0x0 0x1000>; + reg-names = "csr-reg"; + clock-output-names = "sataphy3clk"; + csr-offset = <0x4>; + csr-mask = <0x3a>; + enable-offset = <0x0>; + enable-mask = <0x06>; + }; + + sata01clk: sata01clk@1f21c000 { + compatible = "apm,xgene-device-clock"; + #clock-cells = <1>; + clocks = <&socplldiv2 0>; + reg = <0x0 0x1f21c000 0x0 0x1000>; + reg-names = "csr-reg"; + clock-output-names = "sata01clk"; + csr-offset = <0x4>; + csr-mask = <0x05>; + enable-offset = <0x0>; + enable-mask = <0x39>; + }; + + sata23clk: sata23clk@1f22c000 { + compatible = "apm,xgene-device-clock"; + #clock-cells = <1>; + clocks = <&socplldiv2 0>; + reg = <0x0 0x1f22c000 0x0 0x1000>; + reg-names = "csr-reg"; + clock-output-names = "sata23clk"; + csr-offset = <0x4>; + csr-mask = <0x05>; + enable-offset = <0x0>; + enable-mask = <0x39>; + }; + + sata45clk: sata45clk@1f23c000 { + compatible = "apm,xgene-device-clock"; + #clock-cells = <1>; + clocks = <&socplldiv2 0>; + reg = <0x0 0x1f23c000 0x0 0x1000>; + reg-names = "csr-reg"; + clock-output-names = "sata45clk"; + csr-offset = <0x4>; + csr-mask = <0x05>; + enable-offset = <0x0>; + enable-mask = <0x39>; + }; + + pcie0clk: pcie0clk@1f2bc000 { + status = "disabled"; + compatible = "apm,xgene-device-clock"; + #clock-cells = <1>; + clocks = <&socplldiv2 0>; + reg = <0x0 0x1f2bc000 0x0 0x1000>; + reg-names = "csr-reg"; + clock-output-names = "pcie0clk"; + }; + + pcie1clk: pcie1clk@1f2cc000 { + status = "disabled"; + compatible = "apm,xgene-device-clock"; + #clock-cells = <1>; + clocks = <&socplldiv2 0>; + reg = <0x0 0x1f2cc000 0x0 0x1000>; + reg-names = "csr-reg"; + clock-output-names = "pcie1clk"; + }; + + pcie2clk: pcie2clk@1f2dc000 { + status = "disabled"; + compatible = "apm,xgene-device-clock"; + #clock-cells = <1>; + clocks = <&socplldiv2 0>; + reg = <0x0 0x1f2dc000 0x0 0x1000>; + reg-names = "csr-reg"; + clock-output-names = "pcie2clk"; + }; + + pcie3clk: pcie3clk@1f50c000 { + status = "disabled"; + compatible = "apm,xgene-device-clock"; + #clock-cells = <1>; + clocks = <&socplldiv2 0>; + reg = <0x0 0x1f50c000 0x0 0x1000>; + reg-names = "csr-reg"; + clock-output-names = "pcie3clk"; + }; + + pcie4clk: pcie4clk@1f51c000 { + status = "disabled"; + compatible = "apm,xgene-device-clock"; + #clock-cells = <1>; + clocks = <&socplldiv2 0>; + reg = <0x0 0x1f51c000 0x0 0x1000>; + reg-names = "csr-reg"; + clock-output-names = "pcie4clk"; }; + + rtcclk: rtcclk@17000000 { + compatible = "apm,xgene-device-clock"; + #clock-cells = <1>; + clocks = <&socplldiv2 0>; + reg = <0x0 0x17000000 0x0 0x2000>; + reg-names = "csr-reg"; + csr-offset = <0xc>; + csr-mask = <0x2>; + enable-offset = <0x10>; + enable-mask = <0x2>; + clock-output-names = "rtcclk"; + }; + + rngpkaclk: rngpkaclk@17000000 { + compatible = "apm,xgene-device-clock"; + #clock-cells = <1>; + clocks = <&socplldiv2 0>; + reg = <0x0 0x17000000 0x0 0x2000>; + reg-names = "csr-reg"; + csr-offset = <0xc>; + csr-mask = <0x10>; + enable-offset = <0x10>; + enable-mask = <0x10>; + clock-output-names = "rngpkaclk"; + }; + }; + + msi: msi@79000000 { + compatible = "xgene,gic-msi"; + reg = <0x00 0x79000000 0x0 0x900000>; + msi-available-ranges = <0x0 0x1000>; + interrupts = < 0x0 0x10 0x4 + 0x0 0x11 0x4 + 0x0 0x12 0x4 + 0x0 0x13 0x4 + 0x0 0x14 0x4 + 0x0 0x15 0x4 + 0x0 0x16 0x4 + 0x0 0x17 0x4 + 0x0 0x18 0x4 + 0x0 0x19 0x4 + 0x0 0x1a 0x4 + 0x0 0x1b 0x4 + 0x0 0x1c 0x4 + 0x0 0x1d 0x4 + 0x0 0x1e 0x4 + 0x0 0x1f 0x4>; + }; + + pcie0: pcie@1f2b0000 { + status = "disabled"; + device_type = "pci"; + compatible = "apm,xgene-pcie"; + #interrupt-cells = <1>; + #size-cells = <2>; + #address-cells = <3>; + reg = < 0x00 0x1f2b0000 0x0 0x00010000 /* Controller registers */ + 0xe0 0xd0000000 0x0 0x00200000>; /* PCI config space */ + reg-names = "csr", "cfg"; + ranges = <0x01000000 0x00 0x00000000 0xe0 0x00000000 0x00 0x00010000 /* io */ + 0x02000000 0x00 0x10000000 0xe0 0x10000000 0x00 0x80000000>; /* mem */ + ib-ranges = <0x42000000 0x40 0x00000000 0x40 0x00000000 0x40 0x00000000 /* dma */ + 0x00000000 0x0 0x79000000 0x00 0x79000000 0x0 0x00800000>; /* msi */ + interrupt-map-mask = <0x0 0x0 0x0 0x7>; + interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc2 0x1 + 0x0 0x0 0x0 0x2 &gic 0x0 0xc3 0x1 + 0x0 0x0 0x0 0x3 &gic 0x0 0xc4 0x1 + 0x0 0x0 0x0 0x4 &gic 0x0 0xc5 0x1>; + clocks = <&pcie0clk 0>; + }; + + pcie1: pcie@1f2c0000 { + status = "disabled"; + device_type = "pci"; + compatible = "apm,xgene-pcie"; + #interrupt-cells = <1>; + #size-cells = <2>; + #address-cells = <3>; + reg = < 0x00 0x1f2c0000 0x0 0x00010000 /* Controller registers */ + 0xd0 0xd0000000 0x0 0x00200000>; /* PCI config space */ + reg-names = "csr", "cfg"; + ranges = <0x01000000 0x0 0x00000000 0xd0 0x00000000 0x00 0x00010000 /* io */ + 0x02000000 0x0 0x10000000 0xd0 0x10000000 0x00 0x80000000>; /* mem */ + ib-ranges = <0x42000000 0x40 0x00000000 0x40 0x00000000 0x40 0x00000000 /* dma */ + 0x00000000 0x0 0x79000000 0x00 0x79000000 0x0 0x00800000>; /* msi */ + interrupt-map-mask = <0x0 0x0 0x0 0x7>; + interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xc8 0x1 + 0x0 0x0 0x0 0x2 &gic 0x0 0xc9 0x1 + 0x0 0x0 0x0 0x3 &gic 0x0 0xca 0x1 + 0x0 0x0 0x0 0x4 &gic 0x0 0xcb 0x1>; + clocks = <&pcie1clk 0>; + }; + + pcie2: pcie@1f2d0000 { + status = "disabled"; + device_type = "pci"; + compatible = "apm,xgene-pcie"; + #interrupt-cells = <1>; + #size-cells = <2>; + #address-cells = <3>; + reg = < 0x00 0x1f2d0000 0x0 0x00010000 /* Controller registers */ + 0x90 0xd0000000 0x0 0x00200000>; /* PCI config space */ + reg-names = "csr", "cfg"; + ranges = <0x01000000 0x0 0x00000000 0x90 0x00000000 0x0 0x00010000 /* io */ + 0x02000000 0x0 0x10000000 0x90 0x10000000 0x0 0x80000000>; /* mem */ + ib-ranges = <0x42000000 0x40 0x00000000 0x40 0x00000000 0x40 0x00000000 /* dma */ + 0x00000000 0x0 0x79000000 0x00 0x79000000 0x0 0x00800000>; /* msi */ + interrupt-map-mask = <0x0 0x0 0x0 0x7>; + interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xce 0x1 + 0x0 0x0 0x0 0x2 &gic 0x0 0xcf 0x1 + 0x0 0x0 0x0 0x3 &gic 0x0 0xd0 0x1 + 0x0 0x0 0x0 0x4 &gic 0x0 0xd1 0x1>; + clocks = <&pcie2clk 0>; + }; + + pcie3: pcie@1f500000 { + status = "disabled"; + device_type = "pci"; + compatible = "apm,xgene-pcie"; + #interrupt-cells = <1>; + #size-cells = <2>; + #address-cells = <3>; + reg = < 0x00 0x1f500000 0x0 0x00010000 /* Controller registers */ + 0xa0 0xd0000000 0x0 0x00200000>; /* PCI config space */ + reg-names = "csr", "cfg"; + ranges = <0x01000000 0x0 0x00000000 0xa0 0x00000000 0x0 0x00010000 /* io */ + 0x02000000 0x0 0x10000000 0xa0 0x10000000 0x0 0x80000000>; /* mem */ + ib-ranges = <0x42000000 0x40 0x00000000 0x40 0x00000000 0x40 0x00000000 /* dma */ + 0x00000000 0x0 0x79000000 0x00 0x79000000 0x0 0x00800000>; /* msi */ + interrupt-map-mask = <0x0 0x0 0x0 0x7>; + interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xd4 0x1 + 0x0 0x0 0x0 0x2 &gic 0x0 0xd5 0x1 + 0x0 0x0 0x0 0x3 &gic 0x0 0xd6 0x1 + 0x0 0x0 0x0 0x4 &gic 0x0 0xd7 0x1>; + clocks = <&pcie3clk 0>; + }; + + pcie4: pcie@1f510000 { + status = "disabled"; + device_type = "pci"; + compatible = "apm,xgene-pcie"; + #interrupt-cells = <1>; + #size-cells = <2>; + #address-cells = <3>; + reg = < 0x00 0x1f510000 0x0 0x00010000 /* Controller registers */ + 0xc0 0xd0000000 0x0 0x00200000>; /* PCI config space */ + reg-names = "csr", "cfg"; + ranges = <0x01000000 0x0 0x00000000 0xc0 0x00000000 0x0 0x00010000 /* io */ + 0x02000000 0x0 0x10000000 0xc0 0x10000000 0x0 0x80000000>; /* mem */ + ib-ranges = <0x42000000 0x40 0x00000000 0x40 0x00000000 0x40 0x00000000 /* dma */ + 0x00000000 0x0 0x79000000 0x00 0x79000000 0x0 0x00800000>; /* msi */ + interrupt-map-mask = <0x0 0x0 0x0 0x7>; + interrupt-map = <0x0 0x0 0x0 0x1 &gic 0x0 0xda 0x1 + 0x0 0x0 0x0 0x2 &gic 0x0 0xdb 0x1 + 0x0 0x0 0x0 0x3 &gic 0x0 0xdc 0x1 + 0x0 0x0 0x0 0x4 &gic 0x0 0xdd 0x1>; + clocks = <&pcie4clk 0>; }; serial0: serial@1c020000 { @@ -187,5 +502,180 @@ interrupt-parent = <&gic>; interrupts = <0x0 0x4c 0x4>; }; + + serial1: serial@1c021000 { + status = "disabled"; + device_type = "serial"; + compatible = "ns16550a"; + reg = <0x0 0x1c021000 0x0 0x1000>; + reg-shift = <2>; + clock-frequency = <10000000>; /* Updated by bootloader */ + interrupt-parent = <&gic>; + interrupts = <0x0 0x4d 0x4>; + }; + + reboot@17000014 { + compatible = "syscon-reboot"; + regmap = <&scu>; + offset = <0x14>; + mask = <0x1>; + }; + + phy1: phy@1f21a000 { + compatible = "apm,xgene-phy"; + reg = <0x0 0x1f21a000 0x0 0x100>; + #phy-cells = <1>; + clocks = <&sataphy1clk 0>; + status = "disabled"; + apm,tx-boost-gain = <30 30 30 30 30 30>; + apm,tx-eye-tuning = <2 10 10 2 10 10>; + }; + + phy2: phy@1f22a000 { + compatible = "apm,xgene-phy"; + reg = <0x0 0x1f22a000 0x0 0x100>; + #phy-cells = <1>; + clocks = <&sataphy2clk 0>; + status = "ok"; + apm,tx-boost-gain = <30 30 30 30 30 30>; + apm,tx-eye-tuning = <1 10 10 2 10 10>; + }; + + phy3: phy@1f23a000 { + compatible = "apm,xgene-phy"; + reg = <0x0 0x1f23a000 0x0 0x100>; + #phy-cells = <1>; + clocks = <&sataphy3clk 0>; + status = "ok"; + apm,tx-boost-gain = <31 31 31 31 31 31>; + apm,tx-eye-tuning = <2 10 10 2 10 10>; + }; + + sata1: sata@1a000000 { + compatible = "apm,xgene-ahci"; + reg = <0x0 0x1a000000 0x0 0x1000>, + <0x0 0x1f210000 0x0 0x1000>, + <0x0 0x1f21d000 0x0 0x1000>, + <0x0 0x1f21e000 0x0 0x1000>, + <0x0 0x1f217000 0x0 0x1000>; + interrupts = <0x0 0x86 0x4>; + status = "disabled"; + clocks = <&sata01clk 0>; + phys = <&phy1 0>; + phy-names = "sata-phy"; + }; + + sata2: sata@1a400000 { + compatible = "apm,xgene-ahci"; + reg = <0x0 0x1a400000 0x0 0x1000>, + <0x0 0x1f220000 0x0 0x1000>, + <0x0 0x1f22d000 0x0 0x1000>, + <0x0 0x1f22e000 0x0 0x1000>, + <0x0 0x1f227000 0x0 0x1000>; + interrupts = <0x0 0x87 0x4>; + status = "ok"; + clocks = <&sata23clk 0>; + phys = <&phy2 0>; + phy-names = "sata-phy"; + }; + + sata3: sata@1a800000 { + compatible = "apm,xgene-ahci"; + reg = <0x0 0x1a800000 0x0 0x1000>, + <0x0 0x1f230000 0x0 0x1000>, + <0x0 0x1f23d000 0x0 0x1000>, + <0x0 0x1f23e000 0x0 0x1000>; + interrupts = <0x0 0x88 0x4>; + status = "ok"; + clocks = <&sata45clk 0>; + phys = <&phy3 0>; + phy-names = "sata-phy"; + }; + + rtc: rtc@10510000 { + compatible = "apm,xgene-rtc"; + reg = <0x0 0x10510000 0x0 0x400>; + interrupts = <0x0 0x46 0x4>; + #clock-cells = <1>; + clocks = <&rtcclk 0>; + }; + + dwgpio: dwgpio@1c024000 { + compatible = "snps,dw-apb-gpio"; + reg = <0x0 0x1c024000 0x0 0x1000>; + reg-io-width = <4>; + #address-cells = <1>; + #size-cells = <0>; + + porta: gpio-controller@0 { + compatible = "snps,dw-apb-gpio-port"; + gpio-controller; + snps,nr-gpios = <32>; + reg = <0>; + }; + }; + + menet: ethernet@17020000 { + compatible = "apm,xgene-enet"; + status = "disabled"; + reg = <0x0 0x17020000 0x0 0xd100>, + <0x0 0X17030000 0x0 0Xc300>, + <0x0 0X10000000 0x0 0X200>; + reg-names = "enet_csr", "ring_csr", "ring_cmd"; + interrupts = <0x0 0x3c 0x4>; + dma-coherent; + clocks = <&menetclk 0>; + /* mac address will be overwritten by the bootloader */ + local-mac-address = [00 00 00 00 00 00]; + phy-connection-type = "rgmii"; + phy-handle = <&menetphy>; + mdio { + compatible = "apm,xgene-mdio"; + #address-cells = <1>; + #size-cells = <0>; + menetphy: menetphy@3 { + compatible = "ethernet-phy-id001c.c915"; + reg = <0x3>; + }; + + }; + }; + + sgenet0: ethernet@1f210000 { + compatible = "apm,xgene-enet"; + status = "disabled"; + reg = <0x0 0x1f210000 0x0 0xd100>, + <0x0 0x1f200000 0x0 0Xc300>, + <0x0 0x1B000000 0x0 0X200>; + reg-names = "enet_csr", "ring_csr", "ring_cmd"; + interrupts = <0x0 0xA0 0x4>; + dma-coherent; + clocks = <&sge0clk 0>; + local-mac-address = [00 00 00 00 00 00]; + phy-connection-type = "sgmii"; + }; + + xgenet: ethernet@1f610000 { + compatible = "apm,xgene-enet"; + status = "disabled"; + reg = <0x0 0x1f610000 0x0 0xd100>, + <0x0 0x1f600000 0x0 0Xc300>, + <0x0 0x18000000 0x0 0X200>; + reg-names = "enet_csr", "ring_csr", "ring_cmd"; + interrupts = <0x0 0x60 0x4>; + dma-coherent; + clocks = <&xge0clk 0>; + /* mac address will be overwritten by the bootloader */ + local-mac-address = [00 00 00 00 00 00]; + phy-connection-type = "xgmii"; + }; + + rng: rng@10520000 { + compatible = "apm,xgene-rng"; + reg = <0x0 0x10520000 0x0 0x100>; + interrupts = <0x0 0x41 0x4>; + clocks = <&rngpkaclk 0>; + }; + }; }; --- linux-3.13.0.orig/arch/arm64/include/asm/Kbuild +++ linux-3.13.0/arch/arm64/include/asm/Kbuild @@ -28,7 +28,6 @@ generic-y += pci.h generic-y += percpu.h generic-y += poll.h -generic-y += posix_types.h generic-y += resource.h generic-y += scatterlist.h generic-y += sections.h --- linux-3.13.0.orig/arch/arm64/include/asm/arch_timer.h +++ linux-3.13.0/arch/arm64/include/asm/arch_timer.h @@ -135,6 +135,15 @@ #endif } +static inline u64 arch_counter_get_cntpct(void) +{ + /* + * AArch64 kernel and user space mandate the use of CNTVCT. + */ + BUG(); + return 0; +} + static inline u64 arch_counter_get_cntvct(void) { u64 cval; --- linux-3.13.0.orig/arch/arm64/include/asm/atomic.h +++ linux-3.13.0/arch/arm64/include/asm/atomic.h @@ -64,7 +64,7 @@ int result; asm volatile("// atomic_add_return\n" -"1: ldaxr %w0, %2\n" +"1: ldxr %w0, %2\n" " add %w0, %w0, %w3\n" " stlxr %w1, %w0, %2\n" " cbnz %w1, 1b" @@ -72,6 +72,7 @@ : "Ir" (i) : "cc", "memory"); + smp_mb(); return result; } @@ -96,7 +97,7 @@ int result; asm volatile("// atomic_sub_return\n" -"1: ldaxr %w0, %2\n" +"1: ldxr %w0, %2\n" " sub %w0, %w0, %w3\n" " stlxr %w1, %w0, %2\n" " cbnz %w1, 1b" @@ -104,6 +105,7 @@ : "Ir" (i) : "cc", "memory"); + smp_mb(); return result; } @@ -112,17 +114,20 @@ unsigned long tmp; int oldval; + smp_mb(); + asm volatile("// atomic_cmpxchg\n" -"1: ldaxr %w1, %2\n" +"1: ldxr %w1, %2\n" " cmp %w1, %w3\n" " b.ne 2f\n" -" stlxr %w0, %w4, %2\n" +" stxr %w0, %w4, %2\n" " cbnz %w0, 1b\n" "2:" : "=&r" (tmp), "=&r" (oldval), "+Q" (ptr->counter) : "Ir" (old), "r" (new) : "cc", "memory"); + smp_mb(); return oldval; } @@ -183,7 +188,7 @@ unsigned long tmp; asm volatile("// atomic64_add_return\n" -"1: ldaxr %0, %2\n" +"1: ldxr %0, %2\n" " add %0, %0, %3\n" " stlxr %w1, %0, %2\n" " cbnz %w1, 1b" @@ -191,6 +196,7 @@ : "Ir" (i) : "cc", "memory"); + smp_mb(); return result; } @@ -215,7 +221,7 @@ unsigned long tmp; asm volatile("// atomic64_sub_return\n" -"1: ldaxr %0, %2\n" +"1: ldxr %0, %2\n" " sub %0, %0, %3\n" " stlxr %w1, %0, %2\n" " cbnz %w1, 1b" @@ -223,6 +229,7 @@ : "Ir" (i) : "cc", "memory"); + smp_mb(); return result; } @@ -231,17 +238,20 @@ long oldval; unsigned long res; + smp_mb(); + asm volatile("// atomic64_cmpxchg\n" -"1: ldaxr %1, %2\n" +"1: ldxr %1, %2\n" " cmp %1, %3\n" " b.ne 2f\n" -" stlxr %w0, %4, %2\n" +" stxr %w0, %4, %2\n" " cbnz %w0, 1b\n" "2:" : "=&r" (res), "=&r" (oldval), "+Q" (ptr->counter) : "Ir" (old), "r" (new) : "cc", "memory"); + smp_mb(); return oldval; } @@ -253,11 +263,12 @@ unsigned long tmp; asm volatile("// atomic64_dec_if_positive\n" -"1: ldaxr %0, %2\n" +"1: ldxr %0, %2\n" " subs %0, %0, #1\n" " b.mi 2f\n" " stlxr %w1, %0, %2\n" " cbnz %w1, 1b\n" +" dmb ish\n" "2:" : "=&r" (result), "=&r" (tmp), "+Q" (v->counter) : --- linux-3.13.0.orig/arch/arm64/include/asm/cacheflush.h +++ linux-3.13.0/arch/arm64/include/asm/cacheflush.h @@ -116,6 +116,7 @@ static inline void __flush_icache_all(void) { asm("ic ialluis"); + dsb(); } #define flush_dcache_mmap_lock(mapping) \ --- linux-3.13.0.orig/arch/arm64/include/asm/cmpxchg.h +++ linux-3.13.0/arch/arm64/include/asm/cmpxchg.h @@ -29,7 +29,7 @@ switch (size) { case 1: asm volatile("// __xchg1\n" - "1: ldaxrb %w0, %2\n" + "1: ldxrb %w0, %2\n" " stlxrb %w1, %w3, %2\n" " cbnz %w1, 1b\n" : "=&r" (ret), "=&r" (tmp), "+Q" (*(u8 *)ptr) @@ -38,7 +38,7 @@ break; case 2: asm volatile("// __xchg2\n" - "1: ldaxrh %w0, %2\n" + "1: ldxrh %w0, %2\n" " stlxrh %w1, %w3, %2\n" " cbnz %w1, 1b\n" : "=&r" (ret), "=&r" (tmp), "+Q" (*(u16 *)ptr) @@ -47,7 +47,7 @@ break; case 4: asm volatile("// __xchg4\n" - "1: ldaxr %w0, %2\n" + "1: ldxr %w0, %2\n" " stlxr %w1, %w3, %2\n" " cbnz %w1, 1b\n" : "=&r" (ret), "=&r" (tmp), "+Q" (*(u32 *)ptr) @@ -56,7 +56,7 @@ break; case 8: asm volatile("// __xchg8\n" - "1: ldaxr %0, %2\n" + "1: ldxr %0, %2\n" " stlxr %w1, %3, %2\n" " cbnz %w1, 1b\n" : "=&r" (ret), "=&r" (tmp), "+Q" (*(u64 *)ptr) @@ -67,6 +67,7 @@ BUILD_BUG(); } + smp_mb(); return ret; } --- linux-3.13.0.orig/arch/arm64/include/asm/compat.h +++ linux-3.13.0/arch/arm64/include/asm/compat.h @@ -37,8 +37,8 @@ typedef s32 compat_time_t; typedef s32 compat_clock_t; typedef s32 compat_pid_t; -typedef u32 __compat_uid_t; -typedef u32 __compat_gid_t; +typedef u16 __compat_uid_t; +typedef u16 __compat_gid_t; typedef u16 __compat_uid16_t; typedef u16 __compat_gid16_t; typedef u32 __compat_uid32_t; --- linux-3.13.0.orig/arch/arm64/include/asm/dma-mapping.h +++ linux-3.13.0/arch/arm64/include/asm/dma-mapping.h @@ -26,8 +26,6 @@ #include #include -#define ARCH_HAS_DMA_GET_REQUIRED_MASK - #define DMA_ERROR_CODE (~(dma_addr_t)0) extern struct dma_map_ops *dma_ops; --- linux-3.13.0.orig/arch/arm64/include/asm/dma.h +++ linux-3.13.0/arch/arm64/include/asm/dma.h @@ -0,0 +1,18 @@ +/* + * Based on linux/arch/arm/include/asm/dma.h + */ +#ifndef __ASM_ARM_DMA_H +#define __ASM_ARM_DMA_H + +/* + * This is the maximum virtual address which can be DMA'd from. + */ +#define MAX_DMA_ADDRESS (~0ULL) + +#ifdef CONFIG_PCI +extern int isa_dma_bridge_buggy; +#else +#define isa_dma_bridge_buggy (0) +#endif + +#endif /* __ASM_ARM_DMA_H */ --- linux-3.13.0.orig/arch/arm64/include/asm/futex.h +++ linux-3.13.0/arch/arm64/include/asm/futex.h @@ -24,10 +24,11 @@ #define __futex_atomic_op(insn, ret, oldval, uaddr, tmp, oparg) \ asm volatile( \ -"1: ldaxr %w1, %2\n" \ +"1: ldxr %w1, %2\n" \ insn "\n" \ "2: stlxr %w3, %w0, %2\n" \ " cbnz %w3, 1b\n" \ +" dmb ish\n" \ "3:\n" \ " .pushsection .fixup,\"ax\"\n" \ "4: mov %w0, %w5\n" \ @@ -110,11 +111,12 @@ return -EFAULT; asm volatile("// futex_atomic_cmpxchg_inatomic\n" -"1: ldaxr %w1, %2\n" +"1: ldxr %w1, %2\n" " sub %w3, %w1, %w4\n" " cbnz %w3, 3f\n" "2: stlxr %w3, %w5, %2\n" " cbnz %w3, 1b\n" +" dmb ish\n" "3:\n" " .pushsection .fixup,\"ax\"\n" "4: mov %w0, %w6\n" --- linux-3.13.0.orig/arch/arm64/include/asm/hw_breakpoint.h +++ linux-3.13.0/arch/arm64/include/asm/hw_breakpoint.h @@ -79,7 +79,6 @@ */ #define ARM_MAX_BRP 16 #define ARM_MAX_WRP 16 -#define ARM_MAX_HBP_SLOTS (ARM_MAX_BRP + ARM_MAX_WRP) /* Virtual debug register bases. */ #define AARCH64_DBG_REG_BVR 0 --- linux-3.13.0.orig/arch/arm64/include/asm/hwcap.h +++ linux-3.13.0/arch/arm64/include/asm/hwcap.h @@ -30,6 +30,7 @@ #define COMPAT_HWCAP_IDIVA (1 << 17) #define COMPAT_HWCAP_IDIVT (1 << 18) #define COMPAT_HWCAP_IDIV (COMPAT_HWCAP_IDIVA|COMPAT_HWCAP_IDIVT) +#define COMPAT_HWCAP_LPAE (1 << 20) #define COMPAT_HWCAP_EVTSTRM (1 << 21) #ifndef __ASSEMBLY__ --- linux-3.13.0.orig/arch/arm64/include/asm/io.h +++ linux-3.13.0/arch/arm64/include/asm/io.h @@ -118,10 +118,27 @@ #define writeq(v,c) ({ __iowmb(); writeq_relaxed((v),(c)); }) /* + * A typesafe __io() helper + */ +static inline void __iomem *__typesafe_io(unsigned long addr) +{ + return (void __iomem *)addr; +} + +/* * I/O port access primitives. */ -#define IO_SPACE_LIMIT 0xffff #define PCI_IOBASE ((void __iomem *)(MODULES_VADDR - SZ_2M)) +#if defined(CONFIG_PCI) +#define IO_SPACE_LIMIT ((resource_size_t)0xffffffff) +#define __io(a) __typesafe_io((unsigned long)PCI_IOBASE + \ + ((a) & IO_SPACE_LIMIT)) +#else +#define __io(a) __typesafe_io((a) & IO_SPACE_LIMIT) +#endif +extern void __iomem *ioport_map(unsigned long port, unsigned int nr); +extern void ioport_unmap(void __iomem *addr); +extern int pci_ioremap_io(unsigned int offset, phys_addr_t phys_addr); static inline u8 inb(unsigned long addr) { --- linux-3.13.0.orig/arch/arm64/include/asm/kvm_arm.h +++ linux-3.13.0/arch/arm64/include/asm/kvm_arm.h @@ -62,6 +62,7 @@ * RW: 64bit by default, can be overriden for 32bit VMs * TAC: Trap ACTLR * TSC: Trap SMC + * TVM: Trap VM ops (until M+C set in SCTLR_EL1) * TSW: Trap cache operations by set/way * TWE: Trap WFE * TWI: Trap WFI @@ -74,7 +75,7 @@ * SWIO: Turn set/way invalidates into set/way clean+invalidate */ #define HCR_GUEST_FLAGS (HCR_TSC | HCR_TSW | HCR_TWE | HCR_TWI | HCR_VM | \ - HCR_BSU_IS | HCR_FB | HCR_TAC | \ + HCR_TVM | HCR_BSU_IS | HCR_FB | HCR_TAC | \ HCR_AMO | HCR_IMO | HCR_FMO | \ HCR_SWIO | HCR_TIDCP | HCR_RW) #define HCR_VIRT_EXCP_MASK (HCR_VA | HCR_VI | HCR_VF) --- linux-3.13.0.orig/arch/arm64/include/asm/kvm_asm.h +++ linux-3.13.0/arch/arm64/include/asm/kvm_asm.h @@ -79,7 +79,8 @@ #define c13_TID_URW (TPIDR_EL0 * 2) /* Thread ID, User R/W */ #define c13_TID_URO (TPIDRRO_EL0 * 2)/* Thread ID, User R/O */ #define c13_TID_PRIV (TPIDR_EL1 * 2) /* Thread ID, Privileged */ -#define c10_AMAIR (AMAIR_EL1 * 2) /* Aux Memory Attr Indirection Reg */ +#define c10_AMAIR0 (AMAIR_EL1 * 2) /* Aux Memory Attr Indirection Reg */ +#define c10_AMAIR1 (c10_AMAIR0 + 1)/* Aux Memory Attr Indirection Reg */ #define c14_CNTKCTL (CNTKCTL_EL1 * 2) /* Timer Control Register (PL1) */ #define NR_CP15_REGS (NR_SYS_REGS * 2) --- linux-3.13.0.orig/arch/arm64/include/asm/kvm_host.h +++ linux-3.13.0/arch/arm64/include/asm/kvm_host.h @@ -26,7 +26,12 @@ #include #include -#define KVM_MAX_VCPUS 4 +#if defined(CONFIG_KVM_ARM_MAX_VCPUS) +#define KVM_MAX_VCPUS CONFIG_KVM_ARM_MAX_VCPUS +#else +#define KVM_MAX_VCPUS 0 +#endif + #define KVM_USER_MEM_SLOTS 32 #define KVM_PRIVATE_MEM_SLOTS 4 #define KVM_COALESCED_MMIO_PAGE_OFFSET 1 --- linux-3.13.0.orig/arch/arm64/include/asm/kvm_mmu.h +++ linux-3.13.0/arch/arm64/include/asm/kvm_mmu.h @@ -106,7 +106,6 @@ return true; } -static inline void kvm_clean_dcache_area(void *addr, size_t size) {} static inline void kvm_clean_pgd(pgd_t *pgd) {} static inline void kvm_clean_pmd_entry(pmd_t *pmd) {} static inline void kvm_clean_pte(pte_t *pte) {} @@ -122,11 +121,25 @@ pmd_val(*pmd) |= PMD_S2_RDWR; } +#define kvm_pgd_addr_end(addr, end) pgd_addr_end(addr, end) +#define kvm_pud_addr_end(addr, end) pud_addr_end(addr, end) +#define kvm_pmd_addr_end(addr, end) pmd_addr_end(addr, end) + struct kvm; -static inline void coherent_icache_guest_page(struct kvm *kvm, hva_t hva, - unsigned long size) +#define kvm_flush_dcache_to_poc(a,l) __flush_dcache_area((a), (l)) + +static inline bool vcpu_has_cache_enabled(struct kvm_vcpu *vcpu) +{ + return (vcpu_sys_reg(vcpu, SCTLR_EL1) & 0b101) == 0b101; +} + +static inline void coherent_cache_guest_page(struct kvm_vcpu *vcpu, hva_t hva, + unsigned long size) { + if (!vcpu_has_cache_enabled(vcpu)) + kvm_flush_dcache_to_poc((void *)hva, size); + if (!icache_is_aliasing()) { /* PIPT */ flush_icache_range(hva, hva + size); } else if (!icache_is_aivivt()) { /* non ASID-tagged VIVT */ @@ -135,7 +148,7 @@ } } -#define kvm_flush_dcache_to_poc(a,l) __flush_dcache_area((a), (l)) +void stage2_flush_vm(struct kvm *kvm); #endif /* __ASSEMBLY__ */ #endif /* __ARM64_KVM_MMU_H__ */ --- linux-3.13.0.orig/arch/arm64/include/asm/memory.h +++ linux-3.13.0/arch/arm64/include/asm/memory.h @@ -56,6 +56,8 @@ #define TASK_SIZE_32 UL(0x100000000) #define TASK_SIZE (test_thread_flag(TIF_32BIT) ? \ TASK_SIZE_32 : TASK_SIZE_64) +#define TASK_SIZE_OF(tsk) (test_tsk_thread_flag(tsk, TIF_32BIT) ? \ + TASK_SIZE_32 : TASK_SIZE_64) #else #define TASK_SIZE TASK_SIZE_64 #endif /* CONFIG_COMPAT */ --- linux-3.13.0.orig/arch/arm64/include/asm/msi_bitmap.h +++ linux-3.13.0/arch/arm64/include/asm/msi_bitmap.h @@ -0,0 +1,36 @@ +#ifndef MSI_BITMAP_H +#define MSI_BITMAP_H + +/* + * Copyright 2008, Michael Ellerman, IBM Corporation. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; version 2 of the + * License. + * + * Borrowed from powerpc arch + */ + +#include +#include + +struct msi_bitmap { + struct device_node *of_node; + unsigned long *bitmap; + spinlock_t lock; + unsigned int irq_count; +}; + +int msi_bitmap_alloc_hwirqs(struct msi_bitmap *bmp, int num); +void msi_bitmap_free_hwirqs(struct msi_bitmap *bmp, unsigned int offset, + unsigned int num); +void msi_bitmap_reserve_hwirq(struct msi_bitmap *bmp, unsigned int hwirq); + +int msi_bitmap_reserve_dt_hwirqs(struct msi_bitmap *bmp); + +int msi_bitmap_alloc(struct msi_bitmap *bmp, unsigned int irq_count, + struct device_node *of_node); +void msi_bitmap_free(struct msi_bitmap *bmp); + +#endif /* MSI_BITMAP_H */ --- linux-3.13.0.orig/arch/arm64/include/asm/pci.h +++ linux-3.13.0/arch/arm64/include/asm/pci.h @@ -0,0 +1,74 @@ +/* + * Based on arch/arm/include/asm/pci.h + */ +#ifndef ASMARM_PCI_H +#define ASMARM_PCI_H + +#ifdef __KERNEL__ +#include +#include + +#include /* for pci_sys_data */ + +extern unsigned long pcibios_min_io; +#define PCIBIOS_MIN_IO pcibios_min_io +extern unsigned long pcibios_min_mem; +#define PCIBIOS_MIN_MEM pcibios_min_mem + +static inline int pcibios_assign_all_busses(void) +{ + return pci_has_flag(PCI_REASSIGN_ALL_RSRC); +} + +#ifdef CONFIG_PCI_DOMAINS +static inline int pci_domain_nr(struct pci_bus *bus) +{ + struct pci_sys_data *root = bus->sysdata; + + return root->domain; +} + +static inline int pci_proc_domain(struct pci_bus *bus) +{ + return pci_domain_nr(bus); +} +#endif /* CONFIG_PCI_DOMAINS */ + +static inline void pcibios_penalize_isa_irq(int irq, int active) +{ + /* We don't do dynamic PCI IRQ allocation */ +} + +/* + * The PCI address space does equal the physical memory address space. + * The networking and block device layers use this boolean for bounce + * buffer decisions. + */ +#define PCI_DMA_BUS_IS_PHYS (1) + +#ifdef CONFIG_PCI +static inline void pci_dma_burst_advice(struct pci_dev *pdev, + enum pci_dma_burst_strategy *strat, + unsigned long *strategy_parameter) +{ + *strat = PCI_DMA_BURST_INFINITY; + *strategy_parameter = ~0UL; +} +#endif + +#define HAVE_PCI_MMAP +extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, + enum pci_mmap_state mmap_state, + int write_combine); + +/* + * Dummy implementation; always return 0. + */ +static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) +{ + return 0; +} + +#endif /* __KERNEL__ */ + +#endif --- linux-3.13.0.orig/arch/arm64/include/asm/pcibios.h +++ linux-3.13.0/arch/arm64/include/asm/pcibios.h @@ -0,0 +1,98 @@ +/* + * Based on arch/arm/include/asm/mach/pci.h + * + * Copyright (C) 2000 Russell King + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef __ASM_PCIBIOS_H +#define __ASM_PCIBIOS_H + +#include + +struct pci_sys_data; +struct pci_ops; +struct pci_bus; +struct device; + +struct hw_pci { +#ifdef CONFIG_PCI_DOMAINS + int domain; +#endif + struct pci_ops *ops; + int nr_controllers; + void **private_data; + int (*setup) (int nr, struct pci_sys_data *); + struct pci_bus *(*scan) (int nr, struct pci_sys_data *); + void (*preinit) (void); + void (*postinit) (void); + u8(*swizzle) (struct pci_dev *dev, u8 *pin); + int (*map_irq) (const struct pci_dev *dev, u8 slot, u8 pin); + resource_size_t(*align_resource) (struct pci_dev *dev, + const struct resource *res, + resource_size_t start, + resource_size_t size, + resource_size_t align); + void (*add_bus) (struct pci_bus *bus); + void (*remove_bus) (struct pci_bus *bus); +}; + +/* + * Per-controller structure + */ +struct pci_sys_data { +#ifdef CONFIG_PCI_DOMAINS + int domain; +#endif + struct list_head node; + int busnr; /* primary bus number */ + u64 mem_offset; /* bus->cpu memory mapping offset */ + unsigned long io_offset; /* bus->cpu IO mapping offset */ + struct pci_bus *bus; /* PCI bus */ + struct list_head resources; /* root bus resources (apertures) */ + struct resource io_res; + char io_res_name[12]; + /* Bridge swizzling */ + u8(*swizzle) (struct pci_dev *, u8 *); + /* IRQ mapping */ + int (*map_irq) (const struct pci_dev *, u8, u8); + /* Resource alignement requirements */ + resource_size_t(*align_resource) (struct pci_dev *dev, + const struct resource *res, + resource_size_t start, + resource_size_t size, + resource_size_t align); + void (*add_bus) (struct pci_bus *bus); + void (*remove_bus) (struct pci_bus *bus); + void *private_data; /* platform controller private data */ +}; + +/* + * Call this with your hw_pci struct to initialise the PCI system. + */ +void pci_common_init_dev(struct device *, struct hw_pci *); + +/* + * Compatibility wrapper for older platforms that do not care about + * passing the parent device. + */ +static inline void pci_common_init(struct hw_pci *hw) +{ + pci_common_init_dev(NULL, hw); +} + +/* + * Setup early fixed I/O mapping. + */ +#if defined(CONFIG_PCI) +extern void pci_map_io_early(unsigned long pfn); +#else +static inline void pci_map_io_early(unsigned long pfn) +{ +} +#endif + +#endif /* __ASM_PCIBIOS_H */ --- linux-3.13.0.orig/arch/arm64/include/asm/pgtable.h +++ linux-3.13.0/arch/arm64/include/asm/pgtable.h @@ -136,10 +136,10 @@ /* * The following only work if pte_present(). Undefined behaviour otherwise. */ -#define pte_present(pte) (pte_val(pte) & (PTE_VALID | PTE_PROT_NONE)) -#define pte_dirty(pte) (pte_val(pte) & PTE_DIRTY) -#define pte_young(pte) (pte_val(pte) & PTE_AF) -#define pte_special(pte) (pte_val(pte) & PTE_SPECIAL) +#define pte_present(pte) (!!(pte_val(pte) & (PTE_VALID | PTE_PROT_NONE))) +#define pte_dirty(pte) (!!(pte_val(pte) & PTE_DIRTY)) +#define pte_young(pte) (!!(pte_val(pte) & PTE_AF)) +#define pte_special(pte) (!!(pte_val(pte) & PTE_SPECIAL)) #define pte_write(pte) (!(pte_val(pte) & PTE_RDONLY)) #define pte_exec(pte) (!(pte_val(pte) & PTE_UXN)) @@ -168,7 +168,7 @@ pte_t *ptep, pte_t pte) { if (pte_valid_user(pte)) { - if (pte_exec(pte)) + if (!pte_special(pte) && pte_exec(pte)) __sync_icache_dcache(pte, addr); if (!pte_dirty(pte)) pte = pte_wrprotect(pte); @@ -253,11 +253,11 @@ * Mark the prot value as uncacheable and unbufferable. */ #define pgprot_noncached(prot) \ - __pgprot_modify(prot, PTE_ATTRINDX_MASK, PTE_ATTRINDX(MT_DEVICE_nGnRnE)) + __pgprot_modify(prot, PTE_ATTRINDX_MASK, PTE_ATTRINDX(MT_DEVICE_nGnRnE) | PTE_PXN | PTE_UXN) #define pgprot_writecombine(prot) \ - __pgprot_modify(prot, PTE_ATTRINDX_MASK, PTE_ATTRINDX(MT_NORMAL_NC)) + __pgprot_modify(prot, PTE_ATTRINDX_MASK, PTE_ATTRINDX(MT_NORMAL_NC) | PTE_PXN | PTE_UXN) #define pgprot_dmacoherent(prot) \ - __pgprot_modify(prot, PTE_ATTRINDX_MASK, PTE_ATTRINDX(MT_NORMAL_NC)) + __pgprot_modify(prot, PTE_ATTRINDX_MASK, PTE_ATTRINDX(MT_NORMAL_NC) | PTE_PXN | PTE_UXN) #define __HAVE_PHYS_MEM_ACCESS_PROT struct file; extern pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn, --- linux-3.13.0.orig/arch/arm64/include/uapi/asm/kvm.h +++ linux-3.13.0/arch/arm64/include/uapi/asm/kvm.h @@ -55,8 +55,9 @@ #define KVM_ARM_TARGET_AEM_V8 0 #define KVM_ARM_TARGET_FOUNDATION_V8 1 #define KVM_ARM_TARGET_CORTEX_A57 2 +#define KVM_ARM_TARGET_XGENE_POTENZA 3 -#define KVM_ARM_NUM_TARGETS 3 +#define KVM_ARM_NUM_TARGETS 4 /* KVM_ARM_SET_DEVICE_ADDR ioctl id encoding */ #define KVM_ARM_DEVICE_TYPE_SHIFT 0 --- linux-3.13.0.orig/arch/arm64/include/uapi/asm/posix_types.h +++ linux-3.13.0/arch/arm64/include/uapi/asm/posix_types.h @@ -0,0 +1,10 @@ +#ifndef __ASM_POSIX_TYPES_H +#define __ASM_POSIX_TYPES_H + +typedef unsigned short __kernel_old_uid_t; +typedef unsigned short __kernel_old_gid_t; +#define __kernel_old_uid_t __kernel_old_uid_t + +#include + +#endif /* __ASM_POSIX_TYPES_H */ --- linux-3.13.0.orig/arch/arm64/kernel/Makefile +++ linux-3.13.0/arch/arm64/kernel/Makefile @@ -19,6 +19,8 @@ arm64-obj-$(CONFIG_HAVE_HW_BREAKPOINT)+= hw_breakpoint.o arm64-obj-$(CONFIG_EARLY_PRINTK) += early_printk.o +obj-$(CONFIG_PCI) += pcibios.o +obj-$(CONFIG_PCI_MSI) += msi_bitmap.o obj-y += $(arm64-obj-y) vdso/ obj-m += $(arm64-obj-m) head-y := head.o --- linux-3.13.0.orig/arch/arm64/kernel/entry.S +++ linux-3.13.0/arch/arm64/kernel/entry.S @@ -275,7 +275,6 @@ * Stack or PC alignment exception handling */ mrs x0, far_el1 - mov x1, x25 mov x2, sp b do_sp_pc_abort el1_undef: --- linux-3.13.0.orig/arch/arm64/kernel/irq.c +++ linux-3.13.0/arch/arm64/kernel/irq.c @@ -105,7 +105,7 @@ c = irq_data_get_irq_chip(d); if (!c->irq_set_affinity) pr_debug("IRQ%u: unable to set affinity\n", d->irq); - else if (c->irq_set_affinity(d, affinity, true) == IRQ_SET_MASK_OK && ret) + else if (c->irq_set_affinity(d, affinity, false) == IRQ_SET_MASK_OK && ret) cpumask_copy(d->affinity, affinity); return ret; --- linux-3.13.0.orig/arch/arm64/kernel/kuser32.S +++ linux-3.13.0/arch/arm64/kernel/kuser32.S @@ -38,12 +38,13 @@ .inst 0xe92d00f0 // push {r4, r5, r6, r7} .inst 0xe1c040d0 // ldrd r4, r5, [r0] .inst 0xe1c160d0 // ldrd r6, r7, [r1] - .inst 0xe1b20e9f // 1: ldaexd r0, r1, [r2] + .inst 0xe1b20f9f // 1: ldrexd r0, r1, [r2] .inst 0xe0303004 // eors r3, r0, r4 .inst 0x00313005 // eoreqs r3, r1, r5 .inst 0x01a23e96 // stlexdeq r3, r6, [r2] .inst 0x03330001 // teqeq r3, #1 .inst 0x0afffff9 // beq 1b + .inst 0xf57ff05b // dmb ish .inst 0xe2730000 // rsbs r0, r3, #0 .inst 0xe8bd00f0 // pop {r4, r5, r6, r7} .inst 0xe12fff1e // bx lr @@ -55,11 +56,12 @@ .align 5 __kuser_cmpxchg: // 0xffff0fc0 - .inst 0xe1923e9f // 1: ldaex r3, [r2] + .inst 0xe1923f9f // 1: ldrex r3, [r2] .inst 0xe0533000 // subs r3, r3, r0 .inst 0x01823e91 // stlexeq r3, r1, [r2] .inst 0x03330001 // teqeq r3, #1 .inst 0x0afffffa // beq 1b + .inst 0xf57ff05b // dmb ish .inst 0xe2730000 // rsbs r0, r3, #0 .inst 0xe12fff1e // bx lr --- linux-3.13.0.orig/arch/arm64/kernel/msi_bitmap.c +++ linux-3.13.0/arch/arm64/kernel/msi_bitmap.c @@ -0,0 +1,134 @@ +/* + * Copyright 2006-2008, Michael Ellerman, IBM Corporation. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; version 2 of the + * License. + * + * Borrowed from powerpc arch + */ + +#include +#include +#include +#include +#include + +int msi_bitmap_alloc_hwirqs(struct msi_bitmap *bmp, int num) +{ + unsigned long flags; + int offset, order = get_count_order(num); + + spin_lock_irqsave(&bmp->lock, flags); + /* + * This is fast, but stricter than we need. We might want to add + * a fallback routine which does a linear search with no alignment. + */ + offset = bitmap_find_free_region(bmp->bitmap, bmp->irq_count, order); + spin_unlock_irqrestore(&bmp->lock, flags); + + pr_debug("msi_bitmap: allocated 0x%x (2^%d) at offset 0x%x\n", + num, order, offset); + + return offset; +} + +void msi_bitmap_free_hwirqs(struct msi_bitmap *bmp, unsigned int offset, + unsigned int num) +{ + unsigned long flags; + int order = get_count_order(num); + + pr_debug("msi_bitmap: freeing 0x%x (2^%d) at offset 0x%x\n", + num, order, offset); + + spin_lock_irqsave(&bmp->lock, flags); + bitmap_release_region(bmp->bitmap, offset, order); + spin_unlock_irqrestore(&bmp->lock, flags); +} + +void msi_bitmap_reserve_hwirq(struct msi_bitmap *bmp, unsigned int hwirq) +{ + unsigned long flags; + + pr_debug("msi_bitmap: reserving hwirq 0x%x\n", hwirq); + + spin_lock_irqsave(&bmp->lock, flags); + bitmap_allocate_region(bmp->bitmap, hwirq, 0); + spin_unlock_irqrestore(&bmp->lock, flags); +} + +/** + * msi_bitmap_reserve_dt_hwirqs - Reserve irqs specified in the device tree. + * @bmp: pointer to the MSI bitmap. + * + * Looks in the device tree to see if there is a property specifying which + * irqs can be used for MSI. If found those irqs reserved in the device tree + * are reserved in the bitmap. + * + * Returns 0 for success, < 0 if there was an error, and > 0 if no property + * was found in the device tree. + **/ +int msi_bitmap_reserve_dt_hwirqs(struct msi_bitmap *bmp) +{ + int i, j, len = 2; + u32 array[2]; + u32 *p = array; + int ret; + + if (!bmp->of_node) + return 1; + + ret = of_property_read_u32_array(bmp->of_node, + "msi-available-ranges", p, len); + if (ret) + return ret; + + bitmap_allocate_region(bmp->bitmap, 0, get_count_order(bmp->irq_count)); + + spin_lock(&bmp->lock); + + /* Format is: ( )+ */ + len /= 2 * sizeof(u32); + for (i = 0; i < len; i++, p += 2) { + for (j = 0; j < *(p + 1); j++) + bitmap_release_region(bmp->bitmap, *p + j, 0); + } + + spin_unlock(&bmp->lock); + + return 0; +} + +int msi_bitmap_alloc(struct msi_bitmap *bmp, unsigned int irq_count, + struct device_node *of_node) +{ + int size; + + if (!irq_count) + return -EINVAL; + + size = BITS_TO_LONGS(irq_count) * sizeof(long); + pr_debug("msi_bitmap: allocator bitmap size is 0x%x bytes\n", size); + + bmp->bitmap = kzalloc(size, GFP_KERNEL); + if (!bmp->bitmap) { + pr_debug("msi_bitmap: ENOMEM allocating allocator bitmap!\n"); + return -ENOMEM; + } + + /* We zalloc'ed the bitmap, so all irqs are free by default */ + spin_lock_init(&bmp->lock); + bmp->of_node = of_node_get(of_node); + bmp->irq_count = irq_count; + + return 0; +} + +void msi_bitmap_free(struct msi_bitmap *bmp) +{ + /* we can't free the bitmap we don't know if it's bootmem etc. */ + of_node_put(bmp->of_node); + bmp->bitmap = NULL; +} --- linux-3.13.0.orig/arch/arm64/kernel/pcibios.c +++ linux-3.13.0/arch/arm64/kernel/pcibios.c @@ -0,0 +1,689 @@ +/* + * Based on linux/arch/arm/kernel/bios32.c + * + * PCI bios-type initialisation for PCI machines + * + * Bits taken from various places. + */ +#include +#include +#include +#include +#include +#include +#include + +static int debug_pci; + +/* + * We can't use pci_find_device() here since we are + * called from interrupt context. + */ +static void pcibios_bus_report_status(struct pci_bus *bus, u_int status_mask, + int warn) +{ + struct pci_dev *dev; + + list_for_each_entry(dev, &bus->devices, bus_list) { + u16 status; + + /* + * ignore host bridge - we handle + * that separately + */ + if (dev->bus->number == 0 && dev->devfn == 0) + continue; + + pci_read_config_word(dev, PCI_STATUS, &status); + if (status == 0xffff) + continue; + + if ((status & status_mask) == 0) + continue; + + /* clear the status errors */ + pci_write_config_word(dev, PCI_STATUS, status & status_mask); + + if (warn) + printk("(%s: %04X) ", pci_name(dev), status); + } + + list_for_each_entry(dev, &bus->devices, bus_list) + if (dev->subordinate) + pcibios_bus_report_status(dev->subordinate, status_mask, warn); +} + +void pcibios_report_status(u_int status_mask, int warn) +{ + struct list_head *l; + + list_for_each(l, &pci_root_buses) { + struct pci_bus *bus = pci_bus_b(l); + + pcibios_bus_report_status(bus, status_mask, warn); + } +} + +/* + * We don't use this to fix the device, but initialisation of it. + * It's not the correct use for this, but it works. + * Note that the arbiter/ISA bridge appears to be buggy, specifically in + * the following area: + * 1. park on CPU + * 2. ISA bridge ping-pong + * 3. ISA bridge master handling of target RETRY + * + * Bug 3 is responsible for the sound DMA grinding to a halt. We now + * live with bug 2. + */ +static void pci_fixup_83c553(struct pci_dev *dev) +{ + /* + * Set memory region to start at address 0, and enable IO + */ + pci_write_config_dword(dev, PCI_BASE_ADDRESS_0, + PCI_BASE_ADDRESS_SPACE_MEMORY); + pci_write_config_word(dev, PCI_COMMAND, PCI_COMMAND_IO); + + dev->resource[0].end -= dev->resource[0].start; + dev->resource[0].start = 0; + + /* + * All memory requests from ISA to be channelled to PCI + */ + pci_write_config_byte(dev, 0x48, 0xff); + + /* + * Enable ping-pong on bus master to ISA bridge transactions. + * This improves the sound DMA substantially. The fixed + * priority arbiter also helps (see below). + */ + pci_write_config_byte(dev, 0x42, 0x01); + + /* + * Enable PCI retry + */ + pci_write_config_byte(dev, 0x40, 0x22); + + /* + * We used to set the arbiter to "park on last master" (bit + * 1 set), but unfortunately the CyberPro does not park the + * bus. We must therefore park on CPU. Unfortunately, this + * may trigger yet another bug in the 553. + */ + pci_write_config_byte(dev, 0x83, 0x02); + + /* + * Make the ISA DMA request lowest priority, and disable + * rotating priorities completely. + */ + pci_write_config_byte(dev, 0x80, 0x11); + pci_write_config_byte(dev, 0x81, 0x00); + + /* + * Route INTA input to IRQ 11, and set IRQ11 to be level + * sensitive. + */ + pci_write_config_word(dev, 0x44, 0xb000); + outb(0x08, 0x4d1); +} + +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_WINBOND, PCI_DEVICE_ID_WINBOND_83C553, + pci_fixup_83c553); + +static void pci_fixup_unassign(struct pci_dev *dev) +{ + dev->resource[0].end -= dev->resource[0].start; + dev->resource[0].start = 0; +} + +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_WINBOND2, PCI_DEVICE_ID_WINBOND2_89C940F, + pci_fixup_unassign); + +/* + * Prevent the PCI layer from seeing the resources allocated to this device + * if it is the host bridge by marking it as such. These resources are of + * no consequence to the PCI layer (they are handled elsewhere). + */ +static void pci_fixup_dec21285(struct pci_dev *dev) +{ + int i; + + if (dev->devfn == 0) { + dev->class &= 0xff; + dev->class |= PCI_CLASS_BRIDGE_HOST << 8; + for (i = 0; i < PCI_NUM_RESOURCES; i++) { + dev->resource[i].start = 0; + dev->resource[i].end = 0; + dev->resource[i].flags = 0; + } + } +} + +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21285, + pci_fixup_dec21285); + +/* + * PCI IDE controllers use non-standard I/O port decoding, respect it. + */ +static void pci_fixup_ide_bases(struct pci_dev *dev) +{ + struct resource *r; + int i; + + if ((dev->class >> 8) != PCI_CLASS_STORAGE_IDE) + return; + + for (i = 0; i < PCI_NUM_RESOURCES; i++) { + r = dev->resource + i; + if ((r->start & ~0x80) == 0x374) { + r->start |= 2; + r->end = r->start; + } + } +} + +DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pci_fixup_ide_bases); + +/* + * Put the DEC21142 to sleep + */ +static void pci_fixup_dec21142(struct pci_dev *dev) +{ + pci_write_config_dword(dev, 0x40, 0x80000000); +} + +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21142, + pci_fixup_dec21142); + +/* + * The CY82C693 needs some rather major fixups to ensure that it does + * the right thing. Idea from the Alpha people, with a few additions. + * + * We ensure that the IDE base registers are set to 1f0/3f4 for the + * primary bus, and 170/374 for the secondary bus. Also, hide them + * from the PCI subsystem view as well so we won't try to perform + * our own auto-configuration on them. + * + * In addition, we ensure that the PCI IDE interrupts are routed to + * IRQ 14 and IRQ 15 respectively. + * + * The above gets us to a point where the IDE on this device is + * functional. However, The CY82C693U _does not work_ in bus + * master mode without locking the PCI bus solid. + */ +static void pci_fixup_cy82c693(struct pci_dev *dev) +{ + if ((dev->class >> 8) == PCI_CLASS_STORAGE_IDE) { + u32 base0, base1; + + if (dev->class & 0x80) { /* primary */ + base0 = 0x1f0; + base1 = 0x3f4; + } else { /* secondary */ + base0 = 0x170; + base1 = 0x374; + } + + pci_write_config_dword(dev, PCI_BASE_ADDRESS_0, + base0 | PCI_BASE_ADDRESS_SPACE_IO); + pci_write_config_dword(dev, PCI_BASE_ADDRESS_1, + base1 | PCI_BASE_ADDRESS_SPACE_IO); + + dev->resource[0].start = 0; + dev->resource[0].end = 0; + dev->resource[0].flags = 0; + + dev->resource[1].start = 0; + dev->resource[1].end = 0; + dev->resource[1].flags = 0; + } else if (PCI_FUNC(dev->devfn) == 0) { + /* + * Setup IDE IRQ routing. + */ + pci_write_config_byte(dev, 0x4b, 14); + pci_write_config_byte(dev, 0x4c, 15); + + /* + * Disable FREQACK handshake, enable USB. + */ + pci_write_config_byte(dev, 0x4d, 0x41); + + /* + * Enable PCI retry, and PCI post-write buffer. + */ + pci_write_config_byte(dev, 0x44, 0x17); + + /* + * Enable ISA master and DMA post write buffering. + */ + pci_write_config_byte(dev, 0x45, 0x03); + } +} + +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CONTAQ, PCI_DEVICE_ID_CONTAQ_82C693, + pci_fixup_cy82c693); + +static void pci_fixup_it8152(struct pci_dev *dev) +{ + int i; + /* fixup for ITE 8152 devices */ + /* FIXME: add defines for class 0x68000 and 0x80103 */ + if ((dev->class >> 8) == PCI_CLASS_BRIDGE_HOST || + dev->class == 0x68000 || dev->class == 0x80103) { + for (i = 0; i < PCI_NUM_RESOURCES; i++) { + dev->resource[i].start = 0; + dev->resource[i].end = 0; + dev->resource[i].flags = 0; + } + } +} + +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ITE, PCI_DEVICE_ID_ITE_8152, + pci_fixup_it8152); + +/* + * If the bus contains any of these devices, then we must not turn on + * parity checking of any kind. Currently this is CyberPro 20x0 only. + */ +static inline int pdev_bad_for_parity(struct pci_dev *dev) +{ + return ((dev->vendor == PCI_VENDOR_ID_INTERG && + (dev->device == PCI_DEVICE_ID_INTERG_2000 || + dev->device == PCI_DEVICE_ID_INTERG_2010)) || + (dev->vendor == PCI_VENDOR_ID_ITE && + dev->device == PCI_DEVICE_ID_ITE_8152)); + +} + +/* + * pcibios_fixup_bus - Called after each bus is probed, + * but before its children are examined. + */ +void pcibios_fixup_bus(struct pci_bus *bus) +{ + struct pci_dev *dev; + u16 features = + PCI_COMMAND_SERR | PCI_COMMAND_PARITY | PCI_COMMAND_FAST_BACK; + + /* + * Walk the devices on this bus, working out what we can + * and can't support. + */ + list_for_each_entry(dev, &bus->devices, bus_list) { + u16 status; + + pci_read_config_word(dev, PCI_STATUS, &status); + + /* + * If any device on this bus does not support fast back + * to back transfers, then the bus as a whole is not able + * to support them. Having fast back to back transfers + * on saves us one PCI cycle per transaction. + */ + if (!(status & PCI_STATUS_FAST_BACK)) + features &= ~PCI_COMMAND_FAST_BACK; + + if (pdev_bad_for_parity(dev)) + features &= ~(PCI_COMMAND_SERR | PCI_COMMAND_PARITY); + + switch (dev->class >> 8) { + case PCI_CLASS_BRIDGE_PCI: + pci_read_config_word(dev, PCI_BRIDGE_CONTROL, &status); + status |= + PCI_BRIDGE_CTL_PARITY | PCI_BRIDGE_CTL_MASTER_ABORT; + status &= + ~(PCI_BRIDGE_CTL_BUS_RESET | + PCI_BRIDGE_CTL_FAST_BACK); + pci_write_config_word(dev, PCI_BRIDGE_CONTROL, status); + break; + + case PCI_CLASS_BRIDGE_CARDBUS: + pci_read_config_word(dev, PCI_CB_BRIDGE_CONTROL, + &status); + status |= + PCI_CB_BRIDGE_CTL_PARITY | + PCI_CB_BRIDGE_CTL_MASTER_ABORT; + pci_write_config_word(dev, PCI_CB_BRIDGE_CONTROL, + status); + break; + } + } + + /* + * Now walk the devices again, this time setting them up. + */ + list_for_each_entry(dev, &bus->devices, bus_list) { + u16 cmd; + + pci_read_config_word(dev, PCI_COMMAND, &cmd); + cmd |= features; + pci_write_config_word(dev, PCI_COMMAND, cmd); + + pci_write_config_byte(dev, PCI_CACHE_LINE_SIZE, + L1_CACHE_BYTES >> 2); + } + + /* + * Propagate the flags to the PCI bridge. + */ + if (bus->self && bus->self->hdr_type == PCI_HEADER_TYPE_BRIDGE) { + if (features & PCI_COMMAND_FAST_BACK) + bus->bridge_ctl |= PCI_BRIDGE_CTL_FAST_BACK; + if (features & PCI_COMMAND_PARITY) + bus->bridge_ctl |= PCI_BRIDGE_CTL_PARITY; + } + + /* + * Report what we did for this bus + */ + printk(KERN_INFO "PCI: bus%d: Fast back to back transfers %sabled\n", + bus->number, (features & PCI_COMMAND_FAST_BACK) ? "en" : "dis"); +} +EXPORT_SYMBOL(pcibios_fixup_bus); + +void pcibios_add_bus(struct pci_bus *bus) +{ + struct pci_sys_data *sys = bus->sysdata; + if (sys->add_bus) + sys->add_bus(bus); +} + +void pcibios_remove_bus(struct pci_bus *bus) +{ + struct pci_sys_data *sys = bus->sysdata; + if (sys->remove_bus) + sys->remove_bus(bus); +} + +/* + * Swizzle the device pin each time we cross a bridge. If a platform does + * not provide a swizzle function, we perform the standard PCI swizzling. + * + * The default swizzling walks up the bus tree one level at a time, applying + * the standard swizzle function at each step, stopping when it finds the PCI + * root bus. This will return the slot number of the bridge device on the + * root bus and the interrupt pin on that device which should correspond + * with the downstream device interrupt. + * + * Platforms may override this, in which case the slot and pin returned + * depend entirely on the platform code. However, please note that the + * PCI standard swizzle is implemented on plug-in cards and Cardbus based + * PCI extenders, so it can not be ignored. + */ +static u8 pcibios_swizzle(struct pci_dev *dev, u8 *pin) +{ + struct pci_sys_data *sys = dev->sysdata; + int slot, oldpin = *pin; + + if (sys->swizzle) + slot = sys->swizzle(dev, pin); + else + slot = pci_common_swizzle(dev, pin); + + if (debug_pci) + printk("PCI: %s swizzling pin %d => pin %d slot %d\n", + pci_name(dev), oldpin, *pin, slot); + + return slot; +} + +/* + * Map a slot/pin to an IRQ. + */ +static int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) +{ + struct pci_sys_data *sys = dev->sysdata; + int irq = -1; + + if (sys->map_irq) + irq = sys->map_irq(dev, slot, pin); + + if (debug_pci) + printk("PCI: %s mapping slot %d pin %d => irq %d\n", + pci_name(dev), slot, pin, irq); + + return irq; +} + +static int pcibios_init_resources(int busnr, struct pci_sys_data *sys) +{ + int ret; + struct pci_host_bridge_window *window; + + if (list_empty(&sys->resources)) { + pci_add_resource_offset(&sys->resources, + &iomem_resource, sys->mem_offset); + } + + list_for_each_entry(window, &sys->resources, list) { + if (resource_type(window->res) == IORESOURCE_IO) + return 0; + } + + sys->io_res.start = (busnr * SZ_64K) ? : pcibios_min_io; + sys->io_res.end = (busnr + 1) * SZ_64K - 1; + sys->io_res.flags = IORESOURCE_IO; + sys->io_res.name = sys->io_res_name; + sprintf(sys->io_res_name, "PCI%d I/O", busnr); + + ret = request_resource(&ioport_resource, &sys->io_res); + if (ret) { + pr_err("PCI: unable to allocate I/O port region (%d)\n", ret); + return ret; + } + pci_add_resource_offset(&sys->resources, &sys->io_res, sys->io_offset); + + return 0; +} + +static void pcibios_init_hw(struct device *parent, struct hw_pci *hw, + struct list_head *head) +{ + struct pci_sys_data *sys = NULL; + int ret; + int nr, busnr; + + for (nr = busnr = 0; nr < hw->nr_controllers; nr++) { + sys = kzalloc(sizeof(struct pci_sys_data), GFP_KERNEL); + if (!sys) + panic("PCI: unable to allocate sys data!"); + +#ifdef CONFIG_PCI_DOMAINS + sys->domain = hw->domain; +#endif + sys->busnr = busnr; + sys->swizzle = hw->swizzle; + sys->map_irq = hw->map_irq; + sys->align_resource = hw->align_resource; + sys->add_bus = hw->add_bus; + sys->remove_bus = hw->remove_bus; + INIT_LIST_HEAD(&sys->resources); + + if (hw->private_data) + sys->private_data = hw->private_data[nr]; + + ret = hw->setup(nr, sys); + + if (ret > 0) { + ret = pcibios_init_resources(nr, sys); + if (ret) { + kfree(sys); + break; + } + + if (hw->scan) + sys->bus = hw->scan(nr, sys); + else + sys->bus = pci_scan_root_bus(parent, sys->busnr, + hw->ops, sys, + &sys->resources); + + if (!sys->bus) + panic("PCI: unable to scan bus!"); + + busnr = sys->bus->busn_res.end + 1; + + list_add(&sys->node, head); + } else { + kfree(sys); + if (ret < 0) + break; + } + } +} + +void pci_common_init_dev(struct device *parent, struct hw_pci *hw) +{ + struct pci_sys_data *sys; + LIST_HEAD(head); + + pci_add_flags(PCI_REASSIGN_ALL_RSRC); + if (hw->preinit) + hw->preinit(); + pcibios_init_hw(parent, hw, &head); + if (hw->postinit) + hw->postinit(); + + pci_fixup_irqs(pcibios_swizzle, pcibios_map_irq); + + list_for_each_entry(sys, &head, node) { + struct pci_bus *bus = sys->bus; + + if (!pci_has_flag(PCI_PROBE_ONLY)) { + /* + * Size the bridge windows. + */ + pci_bus_size_bridges(bus); + + /* + * Assign resources. + */ + pci_bus_assign_resources(bus); + } + + /* + * Tell drivers about devices found. + */ + pci_bus_add_devices(bus); + } +} + +#ifndef CONFIG_PCI_HOST_ITE8152 +void pcibios_set_master(struct pci_dev *dev) +{ + /* No special bus mastering setup handling */ +} +#endif + +char *__init pcibios_setup(char *str) +{ + if (!strcmp(str, "debug")) { + debug_pci = 1; + return NULL; + } else if (!strcmp(str, "firmware")) { + pci_add_flags(PCI_PROBE_ONLY); + return NULL; + } + return str; +} + +/* + * From arch/i386/kernel/pci-i386.c: + * + * We need to avoid collisions with `mirrored' VGA ports + * and other strange ISA hardware, so we always want the + * addresses to be allocated in the 0x000-0x0ff region + * modulo 0x400. + * + * Why? Because some silly external IO cards only decode + * the low 10 bits of the IO address. The 0x00-0xff region + * is reserved for motherboard devices that decode all 16 + * bits, so it's ok to allocate at, say, 0x2800-0x28ff, + * but we want to try to avoid allocating at 0x2900-0x2bff + * which might be mirrored at 0x0100-0x03ff.. + */ +resource_size_t pcibios_align_resource(void *data, const struct resource *res, + resource_size_t size, + resource_size_t align) +{ + struct pci_dev *dev = data; + struct pci_sys_data *sys = dev->sysdata; + resource_size_t start = res->start; + + if (res->flags & IORESOURCE_IO && start & 0x300) + start = (start + 0x3ff) & ~0x3ff; + + start = (start + align - 1) & ~(align - 1); + + if (sys->align_resource) + return sys->align_resource(dev, res, start, size, align); + + return start; +} + +/** + * pcibios_enable_device - Enable I/O and memory. + * @dev: PCI device to be enabled + */ +int pcibios_enable_device(struct pci_dev *dev, int mask) +{ + u16 cmd, old_cmd; + int idx; + struct resource *r; + + pci_read_config_word(dev, PCI_COMMAND, &cmd); + old_cmd = cmd; + for (idx = 0; idx < 6; idx++) { + /* Only set up the requested stuff */ + if (!(mask & (1 << idx))) + continue; + + r = dev->resource + idx; + if (!r->start && r->end) { + printk(KERN_ERR "PCI: Device %s not available because" + " of resource collisions\n", pci_name(dev)); + return -EINVAL; + } + if (r->flags & IORESOURCE_IO) + cmd |= PCI_COMMAND_IO; + if (r->flags & IORESOURCE_MEM) + cmd |= PCI_COMMAND_MEMORY; + } + + /* + * Bridges (eg, cardbus bridges) need to be fully enabled + */ + if ((dev->class >> 16) == PCI_BASE_CLASS_BRIDGE) + cmd |= PCI_COMMAND_IO | PCI_COMMAND_MEMORY; + + if (cmd != old_cmd) { + printk("PCI: enabling device %s (%04x -> %04x)\n", + pci_name(dev), old_cmd, cmd); + pci_write_config_word(dev, PCI_COMMAND, cmd); + } + return 0; +} + +int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, + enum pci_mmap_state mmap_state, int write_combine) +{ + struct pci_sys_data *root = dev->sysdata; + unsigned long phys; + + if (mmap_state == pci_mmap_io) + return -EINVAL; + else + phys = vma->vm_pgoff + (root->mem_offset >> PAGE_SHIFT); + + /* + * Mark this as IO + */ + vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); + + if (remap_pfn_range(vma, vma->vm_start, phys, + vma->vm_end - vma->vm_start, vma->vm_page_prot)) + return -EAGAIN; + + return 0; +} --- linux-3.13.0.orig/arch/arm64/kernel/perf_event.c +++ linux-3.13.0/arch/arm64/kernel/perf_event.c @@ -22,6 +22,7 @@ #include #include +#include #include #include #include @@ -363,26 +364,53 @@ } static void +armpmu_disable_percpu_irq(void *data) +{ + unsigned int irq = *(unsigned int *)data; + disable_percpu_irq(irq); +} + +static void armpmu_release_hardware(struct arm_pmu *armpmu) { - int i, irq, irqs; + int irq; + unsigned int i, irqs; struct platform_device *pmu_device = armpmu->plat_device; irqs = min(pmu_device->num_resources, num_possible_cpus()); + if (!irqs) + return; - for (i = 0; i < irqs; ++i) { - if (!cpumask_test_and_clear_cpu(i, &armpmu->active_irqs)) - continue; - irq = platform_get_irq(pmu_device, i); - if (irq >= 0) - free_irq(irq, armpmu); + irq = platform_get_irq(pmu_device, 0); + if (irq <= 0) + return; + + if (irq_is_percpu(irq)) { + on_each_cpu(armpmu_disable_percpu_irq, &irq, 1); + free_percpu_irq(irq, &cpu_hw_events); + } else { + for (i = 0; i < irqs; ++i) { + if (!cpumask_test_and_clear_cpu(i, &armpmu->active_irqs)) + continue; + irq = platform_get_irq(pmu_device, i); + if (irq > 0) + free_irq(irq, armpmu); + } } } +static void +armpmu_enable_percpu_irq(void *data) +{ + unsigned int irq = *(unsigned int *)data; + enable_percpu_irq(irq, IRQ_TYPE_NONE); +} + static int armpmu_reserve_hardware(struct arm_pmu *armpmu) { - int i, err, irq, irqs; + int err, irq; + unsigned int i, irqs; struct platform_device *pmu_device = armpmu->plat_device; if (!pmu_device) { @@ -391,39 +419,59 @@ } irqs = min(pmu_device->num_resources, num_possible_cpus()); - if (irqs < 1) { + if (!irqs) { pr_err("no irqs for PMUs defined\n"); return -ENODEV; } - for (i = 0; i < irqs; ++i) { - err = 0; - irq = platform_get_irq(pmu_device, i); - if (irq < 0) - continue; - - /* - * If we have a single PMU interrupt that we can't shift, - * assume that we're running on a uniprocessor machine and - * continue. Otherwise, continue without this interrupt. - */ - if (irq_set_affinity(irq, cpumask_of(i)) && irqs > 1) { - pr_warning("unable to set irq affinity (irq=%d, cpu=%u)\n", - irq, i); - continue; - } + irq = platform_get_irq(pmu_device, 0); + if (irq <= 0) { + pr_err("failed to get valid irq for PMU device\n"); + return -ENODEV; + } + + if (irq_is_percpu(irq)) { + err = request_percpu_irq(irq, armpmu->handle_irq, + "arm-pmu", &cpu_hw_events); - err = request_irq(irq, armpmu->handle_irq, - IRQF_NOBALANCING, - "arm-pmu", armpmu); if (err) { - pr_err("unable to request IRQ%d for ARM PMU counters\n", - irq); + pr_err("unable to request percpu IRQ%d for ARM PMU counters\n", + irq); armpmu_release_hardware(armpmu); return err; } - cpumask_set_cpu(i, &armpmu->active_irqs); + on_each_cpu(armpmu_enable_percpu_irq, &irq, 1); + } else { + for (i = 0; i < irqs; ++i) { + err = 0; + irq = platform_get_irq(pmu_device, i); + if (irq <= 0) + continue; + + /* + * If we have a single PMU interrupt that we can't shift, + * assume that we're running on a uniprocessor machine and + * continue. Otherwise, continue without this interrupt. + */ + if (irq_set_affinity(irq, cpumask_of(i)) && irqs > 1) { + pr_warning("unable to set irq affinity (irq=%d, cpu=%u)\n", + irq, i); + continue; + } + + err = request_irq(irq, armpmu->handle_irq, + IRQF_NOBALANCING, + "arm-pmu", armpmu); + if (err) { + pr_err("unable to request IRQ%d for ARM PMU counters\n", + irq); + armpmu_release_hardware(armpmu); + return err; + } + + cpumask_set_cpu(i, &armpmu->active_irqs); + } } return 0; --- linux-3.13.0.orig/arch/arm64/kernel/process.c +++ linux-3.13.0/arch/arm64/kernel/process.c @@ -109,33 +109,63 @@ } #endif +/* + * Called by kexec, immediately prior to machine_kexec(). + * + * This must completely disable all secondary CPUs; simply causing those CPUs + * to execute e.g. a RAM-based pin loop is not sufficient. This allows the + * kexec'd kernel to use any and all RAM as it sees fit, without having to + * avoid any code or data used by any SW CPU pin loop. The CPU hotplug + * functionality embodied in disable_nonboot_cpus() to achieve this. + */ void machine_shutdown(void) { -#ifdef CONFIG_SMP - smp_send_stop(); -#endif + disable_nonboot_cpus(); } +/* + * Halting simply requires that the secondary CPUs stop performing any + * activity (executing tasks, handling interrupts). smp_send_stop() + * achieves this. + */ void machine_halt(void) { - machine_shutdown(); + local_irq_disable(); + smp_send_stop(); while (1); } +/* + * Power-off simply requires that the secondary CPUs stop performing any + * activity (executing tasks, handling interrupts). smp_send_stop() + * achieves this. When the system power is turned off, it will take all CPUs + * with it. + */ void machine_power_off(void) { - machine_shutdown(); + local_irq_disable(); + smp_send_stop(); if (pm_power_off) pm_power_off(); } +/* + * Restart requires that the secondary CPUs stop performing any activity + * while the primary CPU resets the system. Systems with a single CPU can + * use soft_restart() as their machine descriptor's .restart hook, since that + * will cause the only available CPU to reset. Systems with multiple CPUs must + * provide a HW restart implementation, to ensure that all CPUs reset at once. + * This is required so that any code running after reset on the primary CPU + * doesn't have to co-ordinate with other CPUs to ensure they aren't still + * executing pre-reset code, and using RAM that the primary CPU's code wishes + * to use. Implementing such co-ordination would be essentially impossible. + */ void machine_restart(char *cmd) { - machine_shutdown(); - /* Disable interrupts first */ local_irq_disable(); local_fiq_disable(); + smp_send_stop(); /* Now call the architecture specific reboot code. */ if (arm_pm_restart) @@ -190,9 +220,27 @@ { } +static void tls_thread_flush(void) +{ + asm ("msr tpidr_el0, xzr"); + + if (is_compat_task()) { + current->thread.tp_value = 0; + + /* + * We need to ensure ordering between the shadow state and the + * hardware state, so that we don't corrupt the hardware state + * with a stale shadow state during context switch. + */ + barrier(); + asm ("msr tpidrro_el0, xzr"); + } +} + void flush_thread(void) { fpsimd_flush_thread(); + tls_thread_flush(); flush_ptrace_hw_breakpoint(current); } --- linux-3.13.0.orig/arch/arm64/kernel/ptrace.c +++ linux-3.13.0/arch/arm64/kernel/ptrace.c @@ -81,7 +81,8 @@ break; } } - for (i = ARM_MAX_BRP; i < ARM_MAX_HBP_SLOTS && !bp; ++i) { + + for (i = 0; i < ARM_MAX_WRP; ++i) { if (current->thread.debug.hbp_watch[i] == bp) { info.si_errno = -((i << 1) + 1); break; @@ -650,11 +651,16 @@ reg = task_pt_regs(target)->regs[idx]; } - ret = copy_to_user(ubuf, ®, sizeof(reg)); - if (ret) - break; + if (kbuf) { + memcpy(kbuf, ®, sizeof(reg)); + kbuf += sizeof(reg); + } else { + ret = copy_to_user(ubuf, ®, sizeof(reg)); + if (ret) + break; - ubuf += sizeof(reg); + ubuf += sizeof(reg); + } } return ret; @@ -684,11 +690,16 @@ unsigned int idx = start + i; compat_ulong_t reg; - ret = copy_from_user(®, ubuf, sizeof(reg)); - if (ret) - return ret; + if (kbuf) { + memcpy(®, kbuf, sizeof(reg)); + kbuf += sizeof(reg); + } else { + ret = copy_from_user(®, ubuf, sizeof(reg)); + if (ret) + return ret; - ubuf += sizeof(reg); + ubuf += sizeof(reg); + } switch (idx) { case 15: @@ -821,6 +832,7 @@ compat_ulong_t val) { int ret; + mm_segment_t old_fs = get_fs(); if (off & 3 || off >= COMPAT_USER_SZ) return -EIO; @@ -828,10 +840,13 @@ if (off >= sizeof(compat_elf_gregset_t)) return 0; + set_fs(KERNEL_DS); ret = copy_regset_from_user(tsk, &user_aarch32_view, REGSET_COMPAT_GPR, off, sizeof(compat_ulong_t), &val); + set_fs(old_fs); + return ret; } --- linux-3.13.0.orig/arch/arm64/kernel/setup.c +++ linux-3.13.0/arch/arm64/kernel/setup.c @@ -67,7 +67,8 @@ COMPAT_HWCAP_FAST_MULT|COMPAT_HWCAP_EDSP|\ COMPAT_HWCAP_TLS|COMPAT_HWCAP_VFP|\ COMPAT_HWCAP_VFPv3|COMPAT_HWCAP_VFPv4|\ - COMPAT_HWCAP_NEON|COMPAT_HWCAP_IDIV) + COMPAT_HWCAP_NEON|COMPAT_HWCAP_IDIV|\ + COMPAT_HWCAP_LPAE) unsigned int compat_elf_hwcap __read_mostly = COMPAT_ELF_HWCAP_DEFAULT; #endif --- linux-3.13.0.orig/arch/arm64/kernel/stacktrace.c +++ linux-3.13.0/arch/arm64/kernel/stacktrace.c @@ -48,7 +48,11 @@ frame->sp = fp + 0x10; frame->fp = *(unsigned long *)(fp); - frame->pc = *(unsigned long *)(fp + 8); + /* + * -4 here because we care about the PC at time of bl, + * not where the return will go. + */ + frame->pc = *(unsigned long *)(fp + 8) - 4; return 0; } --- linux-3.13.0.orig/arch/arm64/kernel/sys_compat.c +++ linux-3.13.0/arch/arm64/kernel/sys_compat.c @@ -79,6 +79,12 @@ case __ARM_NR_compat_set_tls: current->thread.tp_value = regs->regs[0]; + + /* + * Protect against register corruption from context switch. + * See comment in tls_thread_flush. + */ + barrier(); asm ("msr tpidrro_el0, %0" : : "r" (regs->regs[0])); return 0; --- linux-3.13.0.orig/arch/arm64/kernel/vdso.c +++ linux-3.13.0/arch/arm64/kernel/vdso.c @@ -238,6 +238,8 @@ vdso_data->use_syscall = use_syscall; vdso_data->xtime_coarse_sec = xtime_coarse.tv_sec; vdso_data->xtime_coarse_nsec = xtime_coarse.tv_nsec; + vdso_data->wtm_clock_sec = tk->wall_to_monotonic.tv_sec; + vdso_data->wtm_clock_nsec = tk->wall_to_monotonic.tv_nsec; if (!use_syscall) { vdso_data->cs_cycle_last = tk->clock->cycle_last; @@ -245,8 +247,6 @@ vdso_data->xtime_clock_nsec = tk->xtime_nsec; vdso_data->cs_mult = tk->mult; vdso_data->cs_shift = tk->shift; - vdso_data->wtm_clock_sec = tk->wall_to_monotonic.tv_sec; - vdso_data->wtm_clock_nsec = tk->wall_to_monotonic.tv_nsec; } smp_wmb(); --- linux-3.13.0.orig/arch/arm64/kernel/vdso/Makefile +++ linux-3.13.0/arch/arm64/kernel/vdso/Makefile @@ -48,7 +48,7 @@ # Actual build commands quiet_cmd_vdsold = VDSOL $@ - cmd_vdsold = $(CC) $(c_flags) -Wl,-T $^ -o $@ + cmd_vdsold = $(CC) $(c_flags) -Wl,-n -Wl,-T $^ -o $@ quiet_cmd_vdsoas = VDSOA $@ cmd_vdsoas = $(CC) $(a_flags) -c -o $@ $< --- linux-3.13.0.orig/arch/arm64/kernel/vdso/gettimeofday.S +++ linux-3.13.0/arch/arm64/kernel/vdso/gettimeofday.S @@ -103,6 +103,8 @@ bl __do_get_tspec seqcnt_check w9, 1b + mov x30, x2 + cmp w0, #CLOCK_MONOTONIC b.ne 6f @@ -118,6 +120,9 @@ ccmp w0, #CLOCK_MONOTONIC_COARSE, #0x4, ne b.ne 8f + /* xtime_coarse_nsec is already right-shifted */ + mov x12, #0 + /* Get coarse timespec. */ adr vdso_data, _vdso_data 3: seqcnt_acquire @@ -156,7 +161,7 @@ lsr x11, x11, x12 stp x10, x11, [x1, #TSPEC_TV_SEC] mov x0, xzr - ret x2 + ret 7: mov x30, x2 8: /* Syscall fallback. */ --- linux-3.13.0.orig/arch/arm64/kvm/Kconfig +++ linux-3.13.0/arch/arm64/kvm/Kconfig @@ -36,6 +36,17 @@ ---help--- Provides host support for ARM processors. +config KVM_ARM_MAX_VCPUS + int "Number maximum supported virtual CPUs per VM" + depends on KVM_ARM_HOST + default 4 + help + Static number of max supported virtual CPUs per VM. + + If you choose a high number, the vcpu structures will be quite + large, so only choose a reasonable number that you expect to + actually use. + config KVM_ARM_VGIC bool depends on KVM_ARM_HOST && OF --- linux-3.13.0.orig/arch/arm64/kvm/guest.c +++ linux-3.13.0/arch/arm64/kvm/guest.c @@ -207,20 +207,26 @@ unsigned long implementor = read_cpuid_implementor(); unsigned long part_number = read_cpuid_part_number(); - if (implementor != ARM_CPU_IMP_ARM) - return -EINVAL; + switch (implementor) { + case ARM_CPU_IMP_ARM: + switch (part_number) { + case ARM_CPU_PART_AEM_V8: + return KVM_ARM_TARGET_AEM_V8; + case ARM_CPU_PART_FOUNDATION: + return KVM_ARM_TARGET_FOUNDATION_V8; + case ARM_CPU_PART_CORTEX_A57: + return KVM_ARM_TARGET_CORTEX_A57; + }; + break; + case ARM_CPU_IMP_APM: + switch (part_number) { + case APM_CPU_PART_POTENZA: + return KVM_ARM_TARGET_XGENE_POTENZA; + }; + break; + }; - switch (part_number) { - case ARM_CPU_PART_AEM_V8: - return KVM_ARM_TARGET_AEM_V8; - case ARM_CPU_PART_FOUNDATION: - return KVM_ARM_TARGET_FOUNDATION_V8; - case ARM_CPU_PART_CORTEX_A57: - /* Currently handled by the generic backend */ - return KVM_ARM_TARGET_CORTEX_A57; - default: - return -EINVAL; - } + return -EINVAL; } int kvm_vcpu_set_target(struct kvm_vcpu *vcpu, --- linux-3.13.0.orig/arch/arm64/kvm/handle_exit.c +++ linux-3.13.0/arch/arm64/kvm/handle_exit.c @@ -39,9 +39,6 @@ static int handle_smc(struct kvm_vcpu *vcpu, struct kvm_run *run) { - if (kvm_psci_call(vcpu)) - return 1; - kvm_inject_undefined(vcpu); return 1; } @@ -65,6 +62,8 @@ else kvm_vcpu_block(vcpu); + kvm_skip_instr(vcpu, kvm_vcpu_trap_il_is32bit(vcpu)); + return 1; } --- linux-3.13.0.orig/arch/arm64/kvm/hyp-init.S +++ linux-3.13.0/arch/arm64/kvm/hyp-init.S @@ -74,6 +74,10 @@ msr mair_el2, x4 isb + /* Invalidate the stale TLBs from Bootloader */ + tlbi alle2 + dsb sy + mrs x4, sctlr_el2 and x4, x4, #SCTLR_EL2_EE // preserve endianness of EL2 ldr x5, =SCTLR_EL2_FLAGS --- linux-3.13.0.orig/arch/arm64/kvm/sys_regs.c +++ linux-3.13.0/arch/arm64/kvm/sys_regs.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -121,6 +122,48 @@ } /* + * Generic accessor for VM registers. Only called as long as HCR_TVM + * is set. + */ +static bool access_vm_reg(struct kvm_vcpu *vcpu, + const struct sys_reg_params *p, + const struct sys_reg_desc *r) +{ + unsigned long val; + + BUG_ON(!p->is_write); + + val = *vcpu_reg(vcpu, p->Rt); + if (!p->is_aarch32) { + vcpu_sys_reg(vcpu, r->reg) = val; + } else { + vcpu_cp15(vcpu, r->reg) = val & 0xffffffffUL; + if (!p->is_32bit) + vcpu_cp15(vcpu, r->reg + 1) = val >> 32; + } + return true; +} + +/* + * SCTLR_EL1 accessor. Only called as long as HCR_TVM is set. If the + * guest enables the MMU, we stop trapping the VM sys_regs and leave + * it in complete control of the caches. + */ +static bool access_sctlr(struct kvm_vcpu *vcpu, + const struct sys_reg_params *p, + const struct sys_reg_desc *r) +{ + access_vm_reg(vcpu, p, r); + + if (vcpu_has_cache_enabled(vcpu)) { /* MMU+Caches enabled? */ + vcpu->arch.hcr_el2 &= ~HCR_TVM; + stage2_flush_vm(vcpu->kvm); + } + + return true; +} + +/* * We could trap ID_DFR0 and tell the guest we don't support performance * monitoring. Unfortunately the patch to make the kernel check ID_DFR0 was * NAKed, so it will read the PMCR anyway. @@ -185,32 +228,32 @@ NULL, reset_mpidr, MPIDR_EL1 }, /* SCTLR_EL1 */ { Op0(0b11), Op1(0b000), CRn(0b0001), CRm(0b0000), Op2(0b000), - NULL, reset_val, SCTLR_EL1, 0x00C50078 }, + access_sctlr, reset_val, SCTLR_EL1, 0x00C50078 }, /* CPACR_EL1 */ { Op0(0b11), Op1(0b000), CRn(0b0001), CRm(0b0000), Op2(0b010), NULL, reset_val, CPACR_EL1, 0 }, /* TTBR0_EL1 */ { Op0(0b11), Op1(0b000), CRn(0b0010), CRm(0b0000), Op2(0b000), - NULL, reset_unknown, TTBR0_EL1 }, + access_vm_reg, reset_unknown, TTBR0_EL1 }, /* TTBR1_EL1 */ { Op0(0b11), Op1(0b000), CRn(0b0010), CRm(0b0000), Op2(0b001), - NULL, reset_unknown, TTBR1_EL1 }, + access_vm_reg, reset_unknown, TTBR1_EL1 }, /* TCR_EL1 */ { Op0(0b11), Op1(0b000), CRn(0b0010), CRm(0b0000), Op2(0b010), - NULL, reset_val, TCR_EL1, 0 }, + access_vm_reg, reset_val, TCR_EL1, 0 }, /* AFSR0_EL1 */ { Op0(0b11), Op1(0b000), CRn(0b0101), CRm(0b0001), Op2(0b000), - NULL, reset_unknown, AFSR0_EL1 }, + access_vm_reg, reset_unknown, AFSR0_EL1 }, /* AFSR1_EL1 */ { Op0(0b11), Op1(0b000), CRn(0b0101), CRm(0b0001), Op2(0b001), - NULL, reset_unknown, AFSR1_EL1 }, + access_vm_reg, reset_unknown, AFSR1_EL1 }, /* ESR_EL1 */ { Op0(0b11), Op1(0b000), CRn(0b0101), CRm(0b0010), Op2(0b000), - NULL, reset_unknown, ESR_EL1 }, + access_vm_reg, reset_unknown, ESR_EL1 }, /* FAR_EL1 */ { Op0(0b11), Op1(0b000), CRn(0b0110), CRm(0b0000), Op2(0b000), - NULL, reset_unknown, FAR_EL1 }, + access_vm_reg, reset_unknown, FAR_EL1 }, /* PAR_EL1 */ { Op0(0b11), Op1(0b000), CRn(0b0111), CRm(0b0100), Op2(0b000), NULL, reset_unknown, PAR_EL1 }, @@ -224,17 +267,17 @@ /* MAIR_EL1 */ { Op0(0b11), Op1(0b000), CRn(0b1010), CRm(0b0010), Op2(0b000), - NULL, reset_unknown, MAIR_EL1 }, + access_vm_reg, reset_unknown, MAIR_EL1 }, /* AMAIR_EL1 */ { Op0(0b11), Op1(0b000), CRn(0b1010), CRm(0b0011), Op2(0b000), - NULL, reset_amair_el1, AMAIR_EL1 }, + access_vm_reg, reset_amair_el1, AMAIR_EL1 }, /* VBAR_EL1 */ { Op0(0b11), Op1(0b000), CRn(0b1100), CRm(0b0000), Op2(0b000), NULL, reset_val, VBAR_EL1, 0 }, /* CONTEXTIDR_EL1 */ { Op0(0b11), Op1(0b000), CRn(0b1101), CRm(0b0000), Op2(0b001), - NULL, reset_val, CONTEXTIDR_EL1, 0 }, + access_vm_reg, reset_val, CONTEXTIDR_EL1, 0 }, /* TPIDR_EL1 */ { Op0(0b11), Op1(0b000), CRn(0b1101), CRm(0b0000), Op2(0b100), NULL, reset_unknown, TPIDR_EL1 }, @@ -305,14 +348,32 @@ NULL, reset_val, FPEXC32_EL2, 0x70 }, }; -/* Trapped cp15 registers */ +/* + * Trapped cp15 registers. TTBR0/TTBR1 get a double encoding, + * depending on the way they are accessed (as a 32bit or a 64bit + * register). + */ static const struct sys_reg_desc cp15_regs[] = { + { Op1( 0), CRn( 0), CRm( 2), Op2( 0), access_vm_reg, NULL, c2_TTBR0 }, + { Op1( 0), CRn( 1), CRm( 0), Op2( 0), access_sctlr, NULL, c1_SCTLR }, + { Op1( 0), CRn( 2), CRm( 0), Op2( 0), access_vm_reg, NULL, c2_TTBR0 }, + { Op1( 0), CRn( 2), CRm( 0), Op2( 1), access_vm_reg, NULL, c2_TTBR1 }, + { Op1( 0), CRn( 2), CRm( 0), Op2( 2), access_vm_reg, NULL, c2_TTBCR }, + { Op1( 0), CRn( 3), CRm( 0), Op2( 0), access_vm_reg, NULL, c3_DACR }, + { Op1( 0), CRn( 5), CRm( 0), Op2( 0), access_vm_reg, NULL, c5_DFSR }, + { Op1( 0), CRn( 5), CRm( 0), Op2( 1), access_vm_reg, NULL, c5_IFSR }, + { Op1( 0), CRn( 5), CRm( 1), Op2( 0), access_vm_reg, NULL, c5_ADFSR }, + { Op1( 0), CRn( 5), CRm( 1), Op2( 1), access_vm_reg, NULL, c5_AIFSR }, + { Op1( 0), CRn( 6), CRm( 0), Op2( 0), access_vm_reg, NULL, c6_DFAR }, + { Op1( 0), CRn( 6), CRm( 0), Op2( 2), access_vm_reg, NULL, c6_IFAR }, + /* * DC{C,I,CI}SW operations: */ { Op1( 0), CRn( 7), CRm( 6), Op2( 2), access_dcsw }, { Op1( 0), CRn( 7), CRm(10), Op2( 2), access_dcsw }, { Op1( 0), CRn( 7), CRm(14), Op2( 2), access_dcsw }, + { Op1( 0), CRn( 9), CRm(12), Op2( 0), pm_fake }, { Op1( 0), CRn( 9), CRm(12), Op2( 1), pm_fake }, { Op1( 0), CRn( 9), CRm(12), Op2( 2), pm_fake }, @@ -326,6 +387,14 @@ { Op1( 0), CRn( 9), CRm(14), Op2( 0), pm_fake }, { Op1( 0), CRn( 9), CRm(14), Op2( 1), pm_fake }, { Op1( 0), CRn( 9), CRm(14), Op2( 2), pm_fake }, + + { Op1( 0), CRn(10), CRm( 2), Op2( 0), access_vm_reg, NULL, c10_PRRR }, + { Op1( 0), CRn(10), CRm( 2), Op2( 1), access_vm_reg, NULL, c10_NMRR }, + { Op1( 0), CRn(10), CRm( 3), Op2( 0), access_vm_reg, NULL, c10_AMAIR0 }, + { Op1( 0), CRn(10), CRm( 3), Op2( 1), access_vm_reg, NULL, c10_AMAIR1 }, + { Op1( 0), CRn(13), CRm( 0), Op2( 1), access_vm_reg, NULL, c13_CID }, + + { Op1( 1), CRn( 0), CRm( 2), Op2( 0), access_vm_reg, NULL, c2_TTBR1 }, }; /* Target specific emulation tables */ @@ -437,6 +506,8 @@ u32 hsr = kvm_vcpu_get_hsr(vcpu); int Rt2 = (hsr >> 10) & 0xf; + params.is_aarch32 = true; + params.is_32bit = false; params.CRm = (hsr >> 1) & 0xf; params.Rt = (hsr >> 5) & 0xf; params.is_write = ((hsr & 1) == 0); @@ -480,6 +551,8 @@ struct sys_reg_params params; u32 hsr = kvm_vcpu_get_hsr(vcpu); + params.is_aarch32 = true; + params.is_32bit = true; params.CRm = (hsr >> 1) & 0xf; params.Rt = (hsr >> 5) & 0xf; params.is_write = ((hsr & 1) == 0); @@ -549,6 +622,8 @@ struct sys_reg_params params; unsigned long esr = kvm_vcpu_get_hsr(vcpu); + params.is_aarch32 = false; + params.is_32bit = false; params.Op0 = (esr >> 20) & 3; params.Op1 = (esr >> 14) & 0x7; params.CRn = (esr >> 10) & 0xf; --- linux-3.13.0.orig/arch/arm64/kvm/sys_regs.h +++ linux-3.13.0/arch/arm64/kvm/sys_regs.h @@ -30,6 +30,8 @@ u8 Op2; u8 Rt; bool is_write; + bool is_aarch32; + bool is_32bit; /* Only valid if is_aarch32 is true */ }; struct sys_reg_desc { --- linux-3.13.0.orig/arch/arm64/kvm/sys_regs_generic_v8.c +++ linux-3.13.0/arch/arm64/kvm/sys_regs_generic_v8.c @@ -90,6 +90,9 @@ &genericv8_target_table); kvm_register_target_sys_reg_table(KVM_ARM_TARGET_CORTEX_A57, &genericv8_target_table); + kvm_register_target_sys_reg_table(KVM_ARM_TARGET_XGENE_POTENZA, + &genericv8_target_table); + return 0; } late_initcall(sys_reg_genericv8_init); --- linux-3.13.0.orig/arch/arm64/lib/bitops.S +++ linux-3.13.0/arch/arm64/lib/bitops.S @@ -46,11 +46,12 @@ mov x2, #1 add x1, x1, x0, lsr #3 // Get word offset lsl x4, x2, x3 // Create mask -1: ldaxr x2, [x1] +1: ldxr x2, [x1] lsr x0, x2, x3 // Save old value of bit \instr x2, x2, x4 // toggle bit stlxr w5, x2, [x1] cbnz w5, 1b + dmb ish and x0, x0, #1 3: ret ENDPROC(\name ) --- linux-3.13.0.orig/arch/arm64/lib/clear_user.S +++ linux-3.13.0/arch/arm64/lib/clear_user.S @@ -46,7 +46,7 @@ sub x1, x1, #2 4: adds x1, x1, #1 b.mi 5f - strb wzr, [x0] +USER(9f, strb wzr, [x0] ) 5: mov x0, #0 ret ENDPROC(__clear_user) --- linux-3.13.0.orig/arch/arm64/lib/copy_from_user.S +++ linux-3.13.0/arch/arm64/lib/copy_from_user.S @@ -15,7 +15,6 @@ */ #include -#include /* * Copy from user space to a kernel buffer (alignment handled by the hardware) @@ -28,39 +27,63 @@ * x0 - bytes not copied */ ENTRY(__copy_from_user) - add x4, x1, x2 // upper user buffer boundary - subs x2, x2, #8 - b.mi 2f -1: -USER(9f, ldr x3, [x1], #8 ) - subs x2, x2, #8 - str x3, [x0], #8 - b.pl 1b -2: adds x2, x2, #4 - b.mi 3f -USER(9f, ldr w3, [x1], #4 ) - sub x2, x2, #4 - str w3, [x0], #4 -3: adds x2, x2, #2 - b.mi 4f -USER(9f, ldrh w3, [x1], #2 ) - sub x2, x2, #2 - strh w3, [x0], #2 -4: adds x2, x2, #1 - b.mi 5f -USER(9f, ldrb w3, [x1] ) - strb w3, [x0] -5: mov x0, #0 - ret +#include "copy_template.S" ENDPROC(__copy_from_user) .section .fixup,"ax" - .align 2 -9: sub x2, x4, x1 - mov x3, x2 -10: strb wzr, [x0], #1 // zero remaining buffer space - subs x3, x3, #1 - b.ne 10b - mov x0, x2 // bytes not copied + .align 2 +8: + /* + * Count bytes remain + * dst points to (dst + tmp1) + */ + mov x0, count + sub dst, dst, tmp1 + b .Lfinalize +9: + /* + * 16 bytes remain + * dst is accurate + */ + mov x0, #16 + b .Lfinalize +10: + /* + * count is accurate + * dst is accurate + */ + mov x0, count + b .Lfinalize +11: + /* + *(count + tmp2) bytes remain + * dst points to the start of the remaining bytes + */ + add x0, count, tmp2 + b .Lfinalize +12: + /* + * (count + 128) bytes remain + * dst is accurate + */ + add x0, count, #128 + b .Lfinalize +13: + /* + * (count + 128) bytes remain + * dst is pre-biased to (dst + 16) + */ + add x0, count, #128 + add dst, dst, #16 +.Lfinalize: + /* + * Zeroize remaining destination-buffer + */ + mov count, x0 +20: + /* Zero remaining buffer space */ + strb wzr, [dst], #1 + subs count, count, #1 + b.ne 20b ret .previous --- linux-3.13.0.orig/arch/arm64/lib/copy_template.S +++ linux-3.13.0/arch/arm64/lib/copy_template.S @@ -0,0 +1,212 @@ +/* + * Copyright (c) 2013, Applied Micro Circuits Corporation + * Copyright (c) 2012-2013, Linaro Limited + * + * Author: Feng Kan + * Author: Philipp Tomsich + * + * The code is adopted from the memcpy routine by Linaro Limited. + * + * This file is free software: you may copy, redistribute and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation, either version 2 of the License, or (at your + * option) any later version. + * + * This file is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * This file incorporates work covered by the following copyright and + * permission notice: + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * 1 Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2 Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3 Neither the name of the Linaro nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include + +dstin .req x0 +src .req x1 +count .req x2 +tmp1 .req x3 +tmp1w .req w3 +tmp2 .req x4 +tmp2w .req w4 +tmp3 .req x5 +tmp3w .req w5 +dst .req x6 + +A_l .req x7 +A_h .req x8 +B_l .req x9 +B_h .req x10 +C_l .req x11 +C_h .req x12 +D_l .req x13 +D_h .req x14 + + mov dst, dstin + cmp count, #64 + b.ge .Lcpy_not_short + cmp count, #15 + b.le .Ltail15tiny + + /* + * Deal with small copies quickly by dropping straight into the + * exit block. + */ +.Ltail63: + /* + * Copy up to 48 bytes of data. At this point we only need the + * bottom 6 bits of count to be accurate. + */ + ands tmp1, count, #0x30 + b.eq .Ltail15 + add dst, dst, tmp1 + add src, src, tmp1 + cmp tmp1w, #0x20 + b.eq 1f + b.lt 2f + USER(8f, ldp A_l, A_h, [src, #-48]) + USER(8f, stp A_l, A_h, [dst, #-48]) +1: + USER(8f, ldp A_l, A_h, [src, #-32]) + USER(8f, stp A_l, A_h, [dst, #-32]) +2: + USER(8f, ldp A_l, A_h, [src, #-16]) + USER(8f, stp A_l, A_h, [dst, #-16]) + +.Ltail15: + ands count, count, #15 + beq 1f + add src, src, count + USER(9f, ldp A_l, A_h, [src, #-16]) + add dst, dst, count + USER(9f, stp A_l, A_h, [dst, #-16]) +1: + b .Lsuccess + +.Ltail15tiny: + /* + * Copy up to 15 bytes of data. Does not assume additional data + * being copied. + */ + tbz count, #3, 1f + USER(10f, ldr tmp1, [src], #8) + USER(10f, str tmp1, [dst], #8) +1: + tbz count, #2, 1f + USER(10f, ldr tmp1w, [src], #4) + USER(10f, str tmp1w, [dst], #4) +1: + tbz count, #1, 1f + USER(10f, ldrh tmp1w, [src], #2) + USER(10f, strh tmp1w, [dst], #2) +1: + tbz count, #0, 1f + USER(10f, ldrb tmp1w, [src]) + USER(10f, strb tmp1w, [dst]) +1: + b .Lsuccess + +.Lcpy_not_short: + /* + * We don't much care about the alignment of DST, but we want SRC + * to be 128-bit (16 byte) aligned so that we don't cross cache line + * boundaries on both loads and stores. + */ + neg tmp2, src + ands tmp2, tmp2, #15 /* Bytes to reach alignment. */ + b.eq 2f + sub count, count, tmp2 + /* + * Copy more data than needed; it's faster than jumping + * around copying sub-Quadword quantities. We know that + * it can't overrun. + */ + USER(11f, ldp A_l, A_h, [src]) + add src, src, tmp2 + USER(11f, stp A_l, A_h, [dst]) + add dst, dst, tmp2 + /* There may be less than 63 bytes to go now. */ + cmp count, #63 + b.le .Ltail63 +2: + subs count, count, #128 + b.ge .Lcpy_body_large + /* + * Less than 128 bytes to copy, so handle 64 here and then jump + * to the tail. + */ + USER(12f, ldp A_l, A_h, [src]) + USER(12f, ldp B_l, B_h, [src, #16]) + USER(12f, ldp C_l, C_h, [src, #32]) + USER(12f, ldp D_l, D_h, [src, #48]) + USER(12f, stp A_l, A_h, [dst]) + USER(12f, stp B_l, B_h, [dst, #16]) + USER(12f, stp C_l, C_h, [dst, #32]) + USER(12f, stp D_l, D_h, [dst, #48]) + tst count, #0x3f + add src, src, #64 + add dst, dst, #64 + b.ne .Ltail63 + b .Lsuccess + + /* + * Critical loop. Start at a new cache line boundary. Assuming + * 64 bytes per line this ensures the entire loop is in one line. + */ + .p2align 6 +.Lcpy_body_large: + /* There are at least 128 bytes to copy. */ + USER(12f, ldp A_l, A_h, [src, #0]) + sub dst, dst, #16 /* Pre-bias. */ + USER(13f, ldp B_l, B_h, [src, #16]) + USER(13f, ldp C_l, C_h, [src, #32]) + USER(13f, ldp D_l, D_h, [src, #48]!) /* src += 64 - Pre-bias. */ +1: + USER(13f, stp A_l, A_h, [dst, #16]) + USER(13f, ldp A_l, A_h, [src, #16]) + USER(13f, stp B_l, B_h, [dst, #32]) + USER(13f, ldp B_l, B_h, [src, #32]) + USER(13f, stp C_l, C_h, [dst, #48]) + USER(13f, ldp C_l, C_h, [src, #48]) + USER(13f, stp D_l, D_h, [dst, #64]!) + USER(13f, ldp D_l, D_h, [src, #64]!) + subs count, count, #64 + b.ge 1b + USER(13f, stp A_l, A_h, [dst, #16]) + USER(13f, stp B_l, B_h, [dst, #32]) + USER(13f, stp C_l, C_h, [dst, #48]) + USER(13f, stp D_l, D_h, [dst, #64]) + add src, src, #16 + add dst, dst, #64 + 16 + tst count, #0x3f + b.ne .Ltail63 +.Lsuccess: + /* Nothing left to copy */ + mov x0, #0 + ret --- linux-3.13.0.orig/arch/arm64/lib/copy_to_user.S +++ linux-3.13.0/arch/arm64/lib/copy_to_user.S @@ -15,7 +15,6 @@ */ #include -#include /* * Copy to user space from a kernel buffer (alignment handled by the hardware) @@ -28,34 +27,38 @@ * x0 - bytes not copied */ ENTRY(__copy_to_user) - add x4, x0, x2 // upper user buffer boundary - subs x2, x2, #8 - b.mi 2f -1: - ldr x3, [x1], #8 - subs x2, x2, #8 -USER(9f, str x3, [x0], #8 ) - b.pl 1b -2: adds x2, x2, #4 - b.mi 3f - ldr w3, [x1], #4 - sub x2, x2, #4 -USER(9f, str w3, [x0], #4 ) -3: adds x2, x2, #2 - b.mi 4f - ldrh w3, [x1], #2 - sub x2, x2, #2 -USER(9f, strh w3, [x0], #2 ) -4: adds x2, x2, #1 - b.mi 5f - ldrb w3, [x1] -USER(9f, strb w3, [x0] ) -5: mov x0, #0 - ret +#include "copy_template.S" ENDPROC(__copy_to_user) .section .fixup,"ax" - .align 2 -9: sub x0, x4, x0 // bytes not copied + .align 2 +8: +10: + /* + * count is accurate + */ + mov x0, count + b .Lfinalize +9: + /* + * 16 bytes remain + */ + mov x0, #16 + b .Lfinalize +11: + /* + *(count + tmp2) bytes remain + * dst points to the start of the remaining bytes + */ + add x0, count, tmp2 + b .Lfinalize +12: +13: + /* + * (count + 128) bytes remain + */ + add x0, count, #128 + b .Lfinalize +.Lfinalize: ret .previous --- linux-3.13.0.orig/arch/arm64/mm/Makefile +++ linux-3.13.0/arch/arm64/mm/Makefile @@ -1,5 +1,5 @@ obj-y := dma-mapping.o extable.o fault.o init.o \ cache.o copypage.o flush.o \ - ioremap.o mmap.o pgd.o mmu.o \ + ioremap.o iomap.o mmap.o pgd.o mmu.o \ context.o tlb.o proc.o obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o --- linux-3.13.0.orig/arch/arm64/mm/copypage.c +++ linux-3.13.0/arch/arm64/mm/copypage.c @@ -32,3 +32,4 @@ { clear_page(kaddr); } +EXPORT_SYMBOL(__cpu_clear_user_page); --- linux-3.13.0.orig/arch/arm64/mm/flush.c +++ linux-3.13.0/arch/arm64/mm/flush.c @@ -79,7 +79,8 @@ return; if (!test_and_set_bit(PG_dcache_clean, &page->flags)) { - __flush_dcache_area(page_address(page), PAGE_SIZE); + __flush_dcache_area(page_address(page), + PAGE_SIZE << compound_order(page)); __flush_icache_all(); } else if (icache_is_aivivt()) { __flush_icache_all(); --- linux-3.13.0.orig/arch/arm64/mm/hugetlbpage.c +++ linux-3.13.0/arch/arm64/mm/hugetlbpage.c @@ -51,12 +51,11 @@ int pud_huge(pud_t pud) { +#ifndef __PAGETABLE_PMD_FOLDED return !(pud_val(pud) & PUD_TABLE_BIT); -} - -int pmd_huge_support(void) -{ - return 1; +#else + return 0; +#endif } static __init int setup_hugepagesz(char *opt) --- linux-3.13.0.orig/arch/arm64/mm/iomap.c +++ linux-3.13.0/arch/arm64/mm/iomap.c @@ -0,0 +1,31 @@ +/* + * Based on linux/arch/arm/mm/iomap.c + * + * Map IO port and PCI memory spaces so that {read,write}[bwl] can + * be used to access this memory. + */ +#include +#include +#include +#include + +#ifdef __io +void __iomem *ioport_map(unsigned long port, unsigned int nr) +{ + return __io(port); +} +EXPORT_SYMBOL(ioport_map); + +void ioport_unmap(void __iomem *addr) +{ +} +EXPORT_SYMBOL(ioport_unmap); +#endif + +#ifdef CONFIG_PCI +unsigned long pcibios_min_io = 0x1000; +EXPORT_SYMBOL(pcibios_min_io); + +unsigned long pcibios_min_mem = 0x01000000; +EXPORT_SYMBOL(pcibios_min_mem); +#endif --- linux-3.13.0.orig/arch/arm64/mm/ioremap.c +++ linux-3.13.0/arch/arm64/mm/ioremap.c @@ -98,3 +98,17 @@ __builtin_return_address(0)); } EXPORT_SYMBOL(ioremap_cache); + +#ifdef CONFIG_PCI +int pci_ioremap_io(unsigned int offset, phys_addr_t phys_addr) +{ + BUG_ON(offset + SZ_64K > IO_SPACE_LIMIT); + + return ioremap_page_range((unsigned long)PCI_IOBASE + offset, + (unsigned long)PCI_IOBASE + offset + SZ_64K, + phys_addr, + __pgprot(PROT_NORMAL_NC)); +} +EXPORT_SYMBOL_GPL(pci_ioremap_io); +#endif + --- linux-3.13.0.orig/arch/arm64/mm/mmu.c +++ linux-3.13.0/arch/arm64/mm/mmu.c @@ -203,10 +203,18 @@ do { next = pmd_addr_end(addr, end); /* try section mapping first */ - if (((addr | next | phys) & ~SECTION_MASK) == 0) + if (((addr | next | phys) & ~SECTION_MASK) == 0) { + pmd_t old_pmd =*pmd; set_pmd(pmd, __pmd(phys | prot_sect_kernel)); - else + /* + * Check for previous table entries created during + * boot (__create_page_tables) and flush them. + */ + if (!pmd_none(old_pmd)) + flush_tlb_all(); + } else { alloc_init_pte(pmd, addr, next, __phys_to_pfn(phys)); + } phys += next - addr; } while (pmd++, addr = next, addr != end); } --- linux-3.13.0.orig/arch/avr32/Makefile +++ linux-3.13.0/arch/avr32/Makefile @@ -11,7 +11,7 @@ KBUILD_DEFCONFIG := atstk1002_defconfig -KBUILD_CFLAGS += -pipe -fno-builtin -mno-pic +KBUILD_CFLAGS += -pipe -fno-builtin -mno-pic -D__linux__ KBUILD_AFLAGS += -mrelax -mno-pic KBUILD_CFLAGS_MODULE += -mno-relax LDFLAGS_vmlinux += --relax --- linux-3.13.0.orig/arch/avr32/boards/mimc200/fram.c +++ linux-3.13.0/arch/avr32/boards/mimc200/fram.c @@ -11,6 +11,7 @@ #define FRAM_VERSION "1.0" #include +#include #include #include #include --- linux-3.13.0.orig/arch/ia64/configs/generic_defconfig +++ linux-3.13.0/arch/ia64/configs/generic_defconfig @@ -25,7 +25,6 @@ CONFIG_CRASH_DUMP=y CONFIG_EFI_VARS=y CONFIG_BINFMT_MISC=m -CONFIG_ACPI_PROCFS=y CONFIG_ACPI_BUTTON=m CONFIG_ACPI_FAN=m CONFIG_ACPI_DOCK=y --- linux-3.13.0.orig/arch/ia64/configs/tiger_defconfig +++ linux-3.13.0/arch/ia64/configs/tiger_defconfig @@ -26,7 +26,6 @@ CONFIG_KEXEC=y CONFIG_EFI_VARS=y CONFIG_BINFMT_MISC=m -CONFIG_ACPI_PROCFS=y CONFIG_ACPI_BUTTON=m CONFIG_ACPI_FAN=m CONFIG_ACPI_PROCESSOR=m --- linux-3.13.0.orig/arch/ia64/configs/zx1_defconfig +++ linux-3.13.0/arch/ia64/configs/zx1_defconfig @@ -16,7 +16,6 @@ CONFIG_CRASH_DUMP=y CONFIG_EFI_VARS=y CONFIG_BINFMT_MISC=y -CONFIG_ACPI_PROCFS=y CONFIG_HOTPLUG_PCI=y CONFIG_HOTPLUG_PCI_ACPI=y CONFIG_PACKET=y --- linux-3.13.0.orig/arch/ia64/hp/common/sba_iommu.c +++ linux-3.13.0/arch/ia64/hp/common/sba_iommu.c @@ -242,7 +242,7 @@ struct pci_dev *sac_only_dev; }; -static struct ioc *ioc_list; +static struct ioc *ioc_list, *ioc_found; static int reserve_sba_gart = 1; static SBA_INLINE void sba_mark_invalid(struct ioc *, dma_addr_t, size_t); @@ -1807,20 +1807,13 @@ { SX2000_IOC_ID, "sx2000", NULL }, }; -static struct ioc * __init -ioc_init(unsigned long hpa, void *handle) +static void ioc_init(unsigned long hpa, struct ioc *ioc) { - struct ioc *ioc; struct ioc_iommu *info; - ioc = kzalloc(sizeof(*ioc), GFP_KERNEL); - if (!ioc) - return NULL; - ioc->next = ioc_list; ioc_list = ioc; - ioc->handle = handle; ioc->ioc_hpa = ioremap(hpa, 0x1000); ioc->func_id = READ_REG(ioc->ioc_hpa + IOC_FUNC_ID); @@ -1861,8 +1854,6 @@ "%s %d.%d HPA 0x%lx IOVA space %dMb at 0x%lx\n", ioc->name, (ioc->rev >> 4) & 0xF, ioc->rev & 0xF, hpa, ioc->iov_size >> 20, ioc->ibase); - - return ioc; } @@ -2041,22 +2032,21 @@ #define sba_map_ioc_to_node(ioc, handle) #endif -static int __init -acpi_sba_ioc_add(struct acpi_device *device, - const struct acpi_device_id *not_used) +static void acpi_sba_ioc_add(struct ioc *ioc) { - struct ioc *ioc; + acpi_handle handle = ioc->handle; acpi_status status; u64 hpa, length; struct acpi_device_info *adi; - status = hp_acpi_csr_space(device->handle, &hpa, &length); + ioc_found = ioc->next; + status = hp_acpi_csr_space(handle, &hpa, &length); if (ACPI_FAILURE(status)) - return 1; + goto err; - status = acpi_get_object_info(device->handle, &adi); + status = acpi_get_object_info(handle, &adi); if (ACPI_FAILURE(status)) - return 1; + goto err; /* * For HWP0001, only SBA appears in ACPI namespace. It encloses the PCI @@ -2077,13 +2067,13 @@ if (!iovp_shift) iovp_shift = 12; - ioc = ioc_init(hpa, device->handle); - if (!ioc) - return 1; - + ioc_init(hpa, ioc); /* setup NUMA node association */ - sba_map_ioc_to_node(ioc, device->handle); - return 0; + sba_map_ioc_to_node(ioc, handle); + return; + + err: + kfree(ioc); } static const struct acpi_device_id hp_ioc_iommu_device_ids[] = { @@ -2091,9 +2081,26 @@ {"HWP0004", 0}, {"", 0}, }; + +static int acpi_sba_ioc_attach(struct acpi_device *device, + const struct acpi_device_id *not_used) +{ + struct ioc *ioc; + + ioc = kzalloc(sizeof(*ioc), GFP_KERNEL); + if (!ioc) + return -ENOMEM; + + ioc->next = ioc_found; + ioc_found = ioc; + ioc->handle = device->handle; + return 1; +} + + static struct acpi_scan_handler acpi_sba_ioc_handler = { .ids = hp_ioc_iommu_device_ids, - .attach = acpi_sba_ioc_add, + .attach = acpi_sba_ioc_attach, }; static int __init acpi_sba_ioc_init_acpi(void) @@ -2128,9 +2135,12 @@ #endif /* - * ioc_list should be populated by the acpi_sba_ioc_handler's .attach() + * ioc_found should be populated by the acpi_sba_ioc_handler's .attach() * routine, but that only happens if acpi_scan_init() has already run. */ + while (ioc_found) + acpi_sba_ioc_add(ioc_found); + if (!ioc_list) { #ifdef CONFIG_IA64_GENERIC /* --- linux-3.13.0.orig/arch/ia64/mm/hugetlbpage.c +++ linux-3.13.0/arch/ia64/mm/hugetlbpage.c @@ -114,11 +114,6 @@ return 0; } -int pmd_huge_support(void) -{ - return 0; -} - struct page * follow_huge_pmd(struct mm_struct *mm, unsigned long address, pmd_t *pmd, int write) { --- linux-3.13.0.orig/arch/ia64/pci/fixup.c +++ linux-3.13.0/arch/ia64/pci/fixup.c @@ -5,6 +5,7 @@ #include #include +#include #include @@ -63,7 +64,7 @@ pci_read_config_word(pdev, PCI_COMMAND, &config); if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) { pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW; - dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n"); + dev_printk(KERN_DEBUG, &pdev->dev, "Video device with shadowed ROM\n"); } } DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pci_fixup_video); --- linux-3.13.0.orig/arch/m68k/Kconfig +++ linux-3.13.0/arch/m68k/Kconfig @@ -17,6 +17,7 @@ select FPU if MMU select ARCH_WANT_IPC_PARSE_VERSION select ARCH_USES_GETTIMEOFFSET if MMU && !COLDFIRE + select HAVE_FUTEX_CMPXCHG if MMU && FUTEX select HAVE_MOD_ARCH_SPECIFIC select MODULES_USE_ELF_REL select MODULES_USE_ELF_RELA --- linux-3.13.0.orig/arch/m68k/mm/hwtest.c +++ linux-3.13.0/arch/m68k/mm/hwtest.c @@ -28,9 +28,11 @@ int hwreg_present( volatile void *regp ) { int ret = 0; + unsigned long flags; long save_sp, save_vbr; long tmp_vectors[3]; + local_irq_save(flags); __asm__ __volatile__ ( "movec %/vbr,%2\n\t" "movel #Lberr1,%4@(8)\n\t" @@ -46,6 +48,7 @@ : "=&d" (ret), "=&r" (save_sp), "=&r" (save_vbr) : "a" (regp), "a" (tmp_vectors) ); + local_irq_restore(flags); return( ret ); } @@ -58,9 +61,11 @@ int hwreg_write( volatile void *regp, unsigned short val ) { int ret; + unsigned long flags; long save_sp, save_vbr; long tmp_vectors[3]; + local_irq_save(flags); __asm__ __volatile__ ( "movec %/vbr,%2\n\t" "movel #Lberr2,%4@(8)\n\t" @@ -78,6 +83,7 @@ : "=&d" (ret), "=&r" (save_sp), "=&r" (save_vbr) : "a" (regp), "a" (tmp_vectors), "g" (val) ); + local_irq_restore(flags); return( ret ); } --- linux-3.13.0.orig/arch/metag/include/asm/barrier.h +++ linux-3.13.0/arch/metag/include/asm/barrier.h @@ -15,6 +15,7 @@ volatile int *flushptr = (volatile int *) LINSYSEVENT_WR_FENCE; barrier(); *flushptr = 0; + barrier(); } #else /* CONFIG_METAG_META21 */ @@ -35,6 +36,7 @@ *flushptr = 0; *flushptr = 0; *flushptr = 0; + barrier(); } #endif /* !CONFIG_METAG_META21 */ @@ -68,6 +70,7 @@ volatile int *flushptr = (volatile int *) LINSYSEVENT_WR_ATOMIC_UNLOCK; barrier(); *flushptr = 0; + barrier(); } #define smp_mb() fence() #define smp_rmb() fence() --- linux-3.13.0.orig/arch/metag/include/asm/processor.h +++ linux-3.13.0/arch/metag/include/asm/processor.h @@ -22,6 +22,8 @@ /* Add an extra page of padding at the top of the stack for the guard page. */ #define STACK_TOP (TASK_SIZE - PAGE_SIZE) #define STACK_TOP_MAX STACK_TOP +/* Maximum virtual space for stack */ +#define STACK_SIZE_MAX (1 << 28) /* 256 MB */ /* This decides where the kernel will search for a free chunk of vm * space during mmap's. --- linux-3.13.0.orig/arch/metag/mm/hugetlbpage.c +++ linux-3.13.0/arch/metag/mm/hugetlbpage.c @@ -110,11 +110,6 @@ return 0; } -int pmd_huge_support(void) -{ - return 1; -} - struct page *follow_huge_pmd(struct mm_struct *mm, unsigned long address, pmd_t *pmd, int write) { --- linux-3.13.0.orig/arch/mips/boot/compressed/decompress.c +++ linux-3.13.0/arch/mips/boot/compressed/decompress.c @@ -13,6 +13,7 @@ #include #include +#include #include --- linux-3.13.0.orig/arch/mips/cavium-octeon/octeon-irq.c +++ linux-3.13.0/arch/mips/cavium-octeon/octeon-irq.c @@ -635,7 +635,7 @@ cpumask_clear(&new_affinity); cpumask_set_cpu(cpumask_first(cpu_online_mask), &new_affinity); } - __irq_set_affinity_locked(data, &new_affinity); + irq_set_affinity_locked(data, &new_affinity, false); } static int octeon_irq_ciu_set_affinity(struct irq_data *data, --- linux-3.13.0.orig/arch/mips/cavium-octeon/setup.c +++ linux-3.13.0/arch/mips/cavium-octeon/setup.c @@ -458,6 +458,18 @@ octeon_kill_core(NULL); } +static char __read_mostly octeon_system_type[80]; + +static int __init init_octeon_system_type(void) +{ + snprintf(octeon_system_type, sizeof(octeon_system_type), "%s (%s)", + cvmx_board_type_to_string(octeon_bootinfo->board_type), + octeon_model_get_string(read_c0_prid())); + + return 0; +} +early_initcall(init_octeon_system_type); + /** * Return a string representing the system type * @@ -465,11 +477,7 @@ */ const char *octeon_board_type_string(void) { - static char name[80]; - sprintf(name, "%s (%s)", - cvmx_board_type_to_string(octeon_bootinfo->board_type), - octeon_model_get_string(read_c0_prid())); - return name; + return octeon_system_type; } const char *get_system_type(void) --- linux-3.13.0.orig/arch/mips/include/asm/ftrace.h +++ linux-3.13.0/arch/mips/include/asm/ftrace.h @@ -24,7 +24,7 @@ asm volatile ( \ "1: " load " %[" STR(dst) "], 0(%[" STR(src) "])\n"\ " li %[" STR(error) "], 0\n" \ - "2:\n" \ + "2: .insn\n" \ \ ".section .fixup, \"ax\"\n" \ "3: li %[" STR(error) "], 1\n" \ @@ -46,7 +46,7 @@ asm volatile ( \ "1: " store " %[" STR(src) "], 0(%[" STR(dst) "])\n"\ " li %[" STR(error) "], 0\n" \ - "2:\n" \ + "2: .insn\n" \ \ ".section .fixup, \"ax\"\n" \ "3: li %[" STR(error) "], 1\n" \ --- linux-3.13.0.orig/arch/mips/include/asm/mipsregs.h +++ linux-3.13.0/arch/mips/include/asm/mipsregs.h @@ -14,6 +14,7 @@ #define _ASM_MIPSREGS_H #include +#include #include #include --- linux-3.13.0.orig/arch/mips/include/asm/ptrace.h +++ linux-3.13.0/arch/mips/include/asm/ptrace.h @@ -23,7 +23,7 @@ struct pt_regs { #ifdef CONFIG_32BIT /* Pad bytes for argument save space on the stack. */ - unsigned long pad0[6]; + unsigned long pad0[8]; #endif /* Saved main processor registers. */ --- linux-3.13.0.orig/arch/mips/include/asm/reg.h +++ linux-3.13.0/arch/mips/include/asm/reg.h @@ -12,116 +12,194 @@ #ifndef __ASM_MIPS_REG_H #define __ASM_MIPS_REG_H - -#if defined(CONFIG_32BIT) || defined(WANT_COMPAT_REG_H) - -#define EF_R0 6 -#define EF_R1 7 -#define EF_R2 8 -#define EF_R3 9 -#define EF_R4 10 -#define EF_R5 11 -#define EF_R6 12 -#define EF_R7 13 -#define EF_R8 14 -#define EF_R9 15 -#define EF_R10 16 -#define EF_R11 17 -#define EF_R12 18 -#define EF_R13 19 -#define EF_R14 20 -#define EF_R15 21 -#define EF_R16 22 -#define EF_R17 23 -#define EF_R18 24 -#define EF_R19 25 -#define EF_R20 26 -#define EF_R21 27 -#define EF_R22 28 -#define EF_R23 29 -#define EF_R24 30 -#define EF_R25 31 +#define MIPS32_EF_R0 6 +#define MIPS32_EF_R1 7 +#define MIPS32_EF_R2 8 +#define MIPS32_EF_R3 9 +#define MIPS32_EF_R4 10 +#define MIPS32_EF_R5 11 +#define MIPS32_EF_R6 12 +#define MIPS32_EF_R7 13 +#define MIPS32_EF_R8 14 +#define MIPS32_EF_R9 15 +#define MIPS32_EF_R10 16 +#define MIPS32_EF_R11 17 +#define MIPS32_EF_R12 18 +#define MIPS32_EF_R13 19 +#define MIPS32_EF_R14 20 +#define MIPS32_EF_R15 21 +#define MIPS32_EF_R16 22 +#define MIPS32_EF_R17 23 +#define MIPS32_EF_R18 24 +#define MIPS32_EF_R19 25 +#define MIPS32_EF_R20 26 +#define MIPS32_EF_R21 27 +#define MIPS32_EF_R22 28 +#define MIPS32_EF_R23 29 +#define MIPS32_EF_R24 30 +#define MIPS32_EF_R25 31 /* * k0/k1 unsaved */ -#define EF_R26 32 -#define EF_R27 33 +#define MIPS32_EF_R26 32 +#define MIPS32_EF_R27 33 -#define EF_R28 34 -#define EF_R29 35 -#define EF_R30 36 -#define EF_R31 37 +#define MIPS32_EF_R28 34 +#define MIPS32_EF_R29 35 +#define MIPS32_EF_R30 36 +#define MIPS32_EF_R31 37 /* * Saved special registers */ -#define EF_LO 38 -#define EF_HI 39 +#define MIPS32_EF_LO 38 +#define MIPS32_EF_HI 39 -#define EF_CP0_EPC 40 -#define EF_CP0_BADVADDR 41 -#define EF_CP0_STATUS 42 -#define EF_CP0_CAUSE 43 -#define EF_UNUSED0 44 - -#define EF_SIZE 180 - -#endif - -#if defined(CONFIG_64BIT) && !defined(WANT_COMPAT_REG_H) - -#define EF_R0 0 -#define EF_R1 1 -#define EF_R2 2 -#define EF_R3 3 -#define EF_R4 4 -#define EF_R5 5 -#define EF_R6 6 -#define EF_R7 7 -#define EF_R8 8 -#define EF_R9 9 -#define EF_R10 10 -#define EF_R11 11 -#define EF_R12 12 -#define EF_R13 13 -#define EF_R14 14 -#define EF_R15 15 -#define EF_R16 16 -#define EF_R17 17 -#define EF_R18 18 -#define EF_R19 19 -#define EF_R20 20 -#define EF_R21 21 -#define EF_R22 22 -#define EF_R23 23 -#define EF_R24 24 -#define EF_R25 25 +#define MIPS32_EF_CP0_EPC 40 +#define MIPS32_EF_CP0_BADVADDR 41 +#define MIPS32_EF_CP0_STATUS 42 +#define MIPS32_EF_CP0_CAUSE 43 +#define MIPS32_EF_UNUSED0 44 + +#define MIPS32_EF_SIZE 180 + +#define MIPS64_EF_R0 0 +#define MIPS64_EF_R1 1 +#define MIPS64_EF_R2 2 +#define MIPS64_EF_R3 3 +#define MIPS64_EF_R4 4 +#define MIPS64_EF_R5 5 +#define MIPS64_EF_R6 6 +#define MIPS64_EF_R7 7 +#define MIPS64_EF_R8 8 +#define MIPS64_EF_R9 9 +#define MIPS64_EF_R10 10 +#define MIPS64_EF_R11 11 +#define MIPS64_EF_R12 12 +#define MIPS64_EF_R13 13 +#define MIPS64_EF_R14 14 +#define MIPS64_EF_R15 15 +#define MIPS64_EF_R16 16 +#define MIPS64_EF_R17 17 +#define MIPS64_EF_R18 18 +#define MIPS64_EF_R19 19 +#define MIPS64_EF_R20 20 +#define MIPS64_EF_R21 21 +#define MIPS64_EF_R22 22 +#define MIPS64_EF_R23 23 +#define MIPS64_EF_R24 24 +#define MIPS64_EF_R25 25 /* * k0/k1 unsaved */ -#define EF_R26 26 -#define EF_R27 27 +#define MIPS64_EF_R26 26 +#define MIPS64_EF_R27 27 -#define EF_R28 28 -#define EF_R29 29 -#define EF_R30 30 -#define EF_R31 31 +#define MIPS64_EF_R28 28 +#define MIPS64_EF_R29 29 +#define MIPS64_EF_R30 30 +#define MIPS64_EF_R31 31 /* * Saved special registers */ -#define EF_LO 32 -#define EF_HI 33 - -#define EF_CP0_EPC 34 -#define EF_CP0_BADVADDR 35 -#define EF_CP0_STATUS 36 -#define EF_CP0_CAUSE 37 +#define MIPS64_EF_LO 32 +#define MIPS64_EF_HI 33 -#define EF_SIZE 304 /* size in bytes */ +#define MIPS64_EF_CP0_EPC 34 +#define MIPS64_EF_CP0_BADVADDR 35 +#define MIPS64_EF_CP0_STATUS 36 +#define MIPS64_EF_CP0_CAUSE 37 + +#define MIPS64_EF_SIZE 304 /* size in bytes */ + +#if defined(CONFIG_32BIT) + +#define EF_R0 MIPS32_EF_R0 +#define EF_R1 MIPS32_EF_R1 +#define EF_R2 MIPS32_EF_R2 +#define EF_R3 MIPS32_EF_R3 +#define EF_R4 MIPS32_EF_R4 +#define EF_R5 MIPS32_EF_R5 +#define EF_R6 MIPS32_EF_R6 +#define EF_R7 MIPS32_EF_R7 +#define EF_R8 MIPS32_EF_R8 +#define EF_R9 MIPS32_EF_R9 +#define EF_R10 MIPS32_EF_R10 +#define EF_R11 MIPS32_EF_R11 +#define EF_R12 MIPS32_EF_R12 +#define EF_R13 MIPS32_EF_R13 +#define EF_R14 MIPS32_EF_R14 +#define EF_R15 MIPS32_EF_R15 +#define EF_R16 MIPS32_EF_R16 +#define EF_R17 MIPS32_EF_R17 +#define EF_R18 MIPS32_EF_R18 +#define EF_R19 MIPS32_EF_R19 +#define EF_R20 MIPS32_EF_R20 +#define EF_R21 MIPS32_EF_R21 +#define EF_R22 MIPS32_EF_R22 +#define EF_R23 MIPS32_EF_R23 +#define EF_R24 MIPS32_EF_R24 +#define EF_R25 MIPS32_EF_R25 +#define EF_R26 MIPS32_EF_R26 +#define EF_R27 MIPS32_EF_R27 +#define EF_R28 MIPS32_EF_R28 +#define EF_R29 MIPS32_EF_R29 +#define EF_R30 MIPS32_EF_R30 +#define EF_R31 MIPS32_EF_R31 +#define EF_LO MIPS32_EF_LO +#define EF_HI MIPS32_EF_HI +#define EF_CP0_EPC MIPS32_EF_CP0_EPC +#define EF_CP0_BADVADDR MIPS32_EF_CP0_BADVADDR +#define EF_CP0_STATUS MIPS32_EF_CP0_STATUS +#define EF_CP0_CAUSE MIPS32_EF_CP0_CAUSE +#define EF_UNUSED0 MIPS32_EF_UNUSED0 +#define EF_SIZE MIPS32_EF_SIZE + +#elif defined(CONFIG_64BIT) + +#define EF_R0 MIPS64_EF_R0 +#define EF_R1 MIPS64_EF_R1 +#define EF_R2 MIPS64_EF_R2 +#define EF_R3 MIPS64_EF_R3 +#define EF_R4 MIPS64_EF_R4 +#define EF_R5 MIPS64_EF_R5 +#define EF_R6 MIPS64_EF_R6 +#define EF_R7 MIPS64_EF_R7 +#define EF_R8 MIPS64_EF_R8 +#define EF_R9 MIPS64_EF_R9 +#define EF_R10 MIPS64_EF_R10 +#define EF_R11 MIPS64_EF_R11 +#define EF_R12 MIPS64_EF_R12 +#define EF_R13 MIPS64_EF_R13 +#define EF_R14 MIPS64_EF_R14 +#define EF_R15 MIPS64_EF_R15 +#define EF_R16 MIPS64_EF_R16 +#define EF_R17 MIPS64_EF_R17 +#define EF_R18 MIPS64_EF_R18 +#define EF_R19 MIPS64_EF_R19 +#define EF_R20 MIPS64_EF_R20 +#define EF_R21 MIPS64_EF_R21 +#define EF_R22 MIPS64_EF_R22 +#define EF_R23 MIPS64_EF_R23 +#define EF_R24 MIPS64_EF_R24 +#define EF_R25 MIPS64_EF_R25 +#define EF_R26 MIPS64_EF_R26 +#define EF_R27 MIPS64_EF_R27 +#define EF_R28 MIPS64_EF_R28 +#define EF_R29 MIPS64_EF_R29 +#define EF_R30 MIPS64_EF_R30 +#define EF_R31 MIPS64_EF_R31 +#define EF_LO MIPS64_EF_LO +#define EF_HI MIPS64_EF_HI +#define EF_CP0_EPC MIPS64_EF_CP0_EPC +#define EF_CP0_BADVADDR MIPS64_EF_CP0_BADVADDR +#define EF_CP0_STATUS MIPS64_EF_CP0_STATUS +#define EF_CP0_CAUSE MIPS64_EF_CP0_CAUSE +#define EF_SIZE MIPS64_EF_SIZE #endif /* CONFIG_64BIT */ --- linux-3.13.0.orig/arch/mips/include/asm/syscall.h +++ linux-3.13.0/arch/mips/include/asm/syscall.h @@ -29,7 +29,7 @@ static inline unsigned long mips_get_syscall_arg(unsigned long *arg, struct task_struct *task, struct pt_regs *regs, unsigned int n) { - unsigned long usp = regs->regs[29]; + unsigned long usp __maybe_unused = regs->regs[29]; switch (n) { case 0: case 1: case 2: case 3: --- linux-3.13.0.orig/arch/mips/include/uapi/asm/unistd.h +++ linux-3.13.0/arch/mips/include/uapi/asm/unistd.h @@ -369,16 +369,20 @@ #define __NR_process_vm_writev (__NR_Linux + 346) #define __NR_kcmp (__NR_Linux + 347) #define __NR_finit_module (__NR_Linux + 348) +#define __NR_sched_setattr (__NR_Linux + 349) +#define __NR_sched_getattr (__NR_Linux + 350) +#define __NR_renameat2 (__NR_Linux + 351) +#define __NR_seccomp (__NR_Linux + 352) /* * Offset of the last Linux o32 flavoured syscall */ -#define __NR_Linux_syscalls 348 +#define __NR_Linux_syscalls 352 #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ #define __NR_O32_Linux 4000 -#define __NR_O32_Linux_syscalls 348 +#define __NR_O32_Linux_syscalls 352 #if _MIPS_SIM == _MIPS_SIM_ABI64 @@ -695,16 +699,20 @@ #define __NR_kcmp (__NR_Linux + 306) #define __NR_finit_module (__NR_Linux + 307) #define __NR_getdents64 (__NR_Linux + 308) +#define __NR_sched_setattr (__NR_Linux + 309) +#define __NR_sched_getattr (__NR_Linux + 310) +#define __NR_renameat2 (__NR_Linux + 311) +#define __NR_seccomp (__NR_Linux + 312) /* * Offset of the last Linux 64-bit flavoured syscall */ -#define __NR_Linux_syscalls 308 +#define __NR_Linux_syscalls 312 #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ #define __NR_64_Linux 5000 -#define __NR_64_Linux_syscalls 308 +#define __NR_64_Linux_syscalls 312 #if _MIPS_SIM == _MIPS_SIM_NABI32 @@ -1025,15 +1033,19 @@ #define __NR_process_vm_writev (__NR_Linux + 310) #define __NR_kcmp (__NR_Linux + 311) #define __NR_finit_module (__NR_Linux + 312) +#define __NR_sched_setattr (__NR_Linux + 313) +#define __NR_sched_getattr (__NR_Linux + 314) +#define __NR_renameat2 (__NR_Linux + 315) +#define __NR_seccomp (__NR_Linux + 316) /* * Offset of the last N32 flavoured syscall */ -#define __NR_Linux_syscalls 312 +#define __NR_Linux_syscalls 316 #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ #define __NR_N32_Linux 6000 -#define __NR_N32_Linux_syscalls 312 +#define __NR_N32_Linux_syscalls 316 #endif /* _UAPI_ASM_UNISTD_H */ --- linux-3.13.0.orig/arch/mips/kernel/binfmt_elfo32.c +++ linux-3.13.0/arch/mips/kernel/binfmt_elfo32.c @@ -58,12 +58,6 @@ #include -/* - * When this file is selected, we are definitely running a 64bit kernel. - * So using the right regs define in asm/reg.h - */ -#define WANT_COMPAT_REG_H - /* These MUST be defined before elf.h gets included */ extern void elf32_core_copy_regs(elf_gregset_t grp, struct pt_regs *regs); #define ELF_CORE_COPY_REGS(_dest, _regs) elf32_core_copy_regs(_dest, _regs); @@ -135,21 +129,21 @@ { int i; - for (i = 0; i < EF_R0; i++) + for (i = 0; i < MIPS32_EF_R0; i++) grp[i] = 0; - grp[EF_R0] = 0; + grp[MIPS32_EF_R0] = 0; for (i = 1; i <= 31; i++) - grp[EF_R0 + i] = (elf_greg_t) regs->regs[i]; - grp[EF_R26] = 0; - grp[EF_R27] = 0; - grp[EF_LO] = (elf_greg_t) regs->lo; - grp[EF_HI] = (elf_greg_t) regs->hi; - grp[EF_CP0_EPC] = (elf_greg_t) regs->cp0_epc; - grp[EF_CP0_BADVADDR] = (elf_greg_t) regs->cp0_badvaddr; - grp[EF_CP0_STATUS] = (elf_greg_t) regs->cp0_status; - grp[EF_CP0_CAUSE] = (elf_greg_t) regs->cp0_cause; -#ifdef EF_UNUSED0 - grp[EF_UNUSED0] = 0; + grp[MIPS32_EF_R0 + i] = (elf_greg_t) regs->regs[i]; + grp[MIPS32_EF_R26] = 0; + grp[MIPS32_EF_R27] = 0; + grp[MIPS32_EF_LO] = (elf_greg_t) regs->lo; + grp[MIPS32_EF_HI] = (elf_greg_t) regs->hi; + grp[MIPS32_EF_CP0_EPC] = (elf_greg_t) regs->cp0_epc; + grp[MIPS32_EF_CP0_BADVADDR] = (elf_greg_t) regs->cp0_badvaddr; + grp[MIPS32_EF_CP0_STATUS] = (elf_greg_t) regs->cp0_status; + grp[MIPS32_EF_CP0_CAUSE] = (elf_greg_t) regs->cp0_cause; +#ifdef MIPS32_EF_UNUSED0 + grp[MIPS32_EF_UNUSED0] = 0; #endif } --- linux-3.13.0.orig/arch/mips/kernel/irq-gic.c +++ linux-3.13.0/arch/mips/kernel/irq-gic.c @@ -255,11 +255,13 @@ /* Setup Intr to Pin mapping */ if (pin & GIC_MAP_TO_NMI_MSK) { + int i; + GICWRITE(GIC_REG_ADDR(SHARED, GIC_SH_MAP_TO_PIN(intr)), pin); /* FIXME: hack to route NMI to all cpu's */ - for (cpu = 0; cpu < NR_CPUS; cpu += 32) { + for (i = 0; i < NR_CPUS; i += 32) { GICWRITE(GIC_REG_ADDR(SHARED, - GIC_SH_MAP_TO_VPE_REG_OFF(intr, cpu)), + GIC_SH_MAP_TO_VPE_REG_OFF(intr, i)), 0xffffffff); } } else { --- linux-3.13.0.orig/arch/mips/kernel/irq-msc01.c +++ linux-3.13.0/arch/mips/kernel/irq-msc01.c @@ -131,7 +131,7 @@ board_bind_eic_interrupt = &msc_bind_eic_interrupt; - for (; nirq >= 0; nirq--, imp++) { + for (; nirq > 0; nirq--, imp++) { int n = imp->im_irq; switch (imp->im_type) { --- linux-3.13.0.orig/arch/mips/kernel/mcount.S +++ linux-3.13.0/arch/mips/kernel/mcount.S @@ -123,7 +123,11 @@ nop #endif b ftrace_stub +#ifdef CONFIG_32BIT + addiu sp, sp, 8 +#else nop +#endif static_trace: MCOUNT_SAVE_REGS @@ -133,6 +137,9 @@ move a1, AT /* arg2: parent's return address */ MCOUNT_RESTORE_REGS +#ifdef CONFIG_32BIT + addiu sp, sp, 8 +#endif .globl ftrace_stub ftrace_stub: RETURN_BACK @@ -177,6 +184,11 @@ jal prepare_ftrace_return nop MCOUNT_RESTORE_REGS +#ifndef CONFIG_DYNAMIC_FTRACE +#ifdef CONFIG_32BIT + addiu sp, sp, 8 +#endif +#endif RETURN_BACK END(ftrace_graph_caller) --- linux-3.13.0.orig/arch/mips/kernel/ptrace.c +++ linux-3.13.0/arch/mips/kernel/ptrace.c @@ -170,6 +170,7 @@ __get_user(fregs[i], i + (__u64 __user *) data); __get_user(child->thread.fpu.fcr31, data + 64); + child->thread.fpu.fcr31 &= ~FPU_CSR_ALL_X; /* FIR may not be written. */ @@ -265,36 +266,160 @@ /* regset get/set implementations */ -static int gpr_get(struct task_struct *target, - const struct user_regset *regset, - unsigned int pos, unsigned int count, - void *kbuf, void __user *ubuf) +#if defined(CONFIG_32BIT) || defined(CONFIG_MIPS32_O32) + +static int gpr32_get(struct task_struct *target, + const struct user_regset *regset, + unsigned int pos, unsigned int count, + void *kbuf, void __user *ubuf) { struct pt_regs *regs = task_pt_regs(target); + u32 uregs[ELF_NGREG] = {}; + unsigned i; - return user_regset_copyout(&pos, &count, &kbuf, &ubuf, - regs, 0, sizeof(*regs)); + for (i = MIPS32_EF_R1; i <= MIPS32_EF_R31; i++) { + /* k0/k1 are copied as zero. */ + if (i == MIPS32_EF_R26 || i == MIPS32_EF_R27) + continue; + + uregs[i] = regs->regs[i - MIPS32_EF_R0]; + } + + uregs[MIPS32_EF_LO] = regs->lo; + uregs[MIPS32_EF_HI] = regs->hi; + uregs[MIPS32_EF_CP0_EPC] = regs->cp0_epc; + uregs[MIPS32_EF_CP0_BADVADDR] = regs->cp0_badvaddr; + uregs[MIPS32_EF_CP0_STATUS] = regs->cp0_status; + uregs[MIPS32_EF_CP0_CAUSE] = regs->cp0_cause; + + return user_regset_copyout(&pos, &count, &kbuf, &ubuf, uregs, 0, + sizeof(uregs)); } -static int gpr_set(struct task_struct *target, - const struct user_regset *regset, - unsigned int pos, unsigned int count, - const void *kbuf, const void __user *ubuf) +static int gpr32_set(struct task_struct *target, + const struct user_regset *regset, + unsigned int pos, unsigned int count, + const void *kbuf, const void __user *ubuf) { - struct pt_regs newregs; - int ret; + struct pt_regs *regs = task_pt_regs(target); + u32 uregs[ELF_NGREG]; + unsigned start, num_regs, i; + int err; - ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, - &newregs, - 0, sizeof(newregs)); - if (ret) - return ret; + start = pos / sizeof(u32); + num_regs = count / sizeof(u32); + + if (start + num_regs > ELF_NGREG) + return -EIO; - *task_pt_regs(target) = newregs; + err = user_regset_copyin(&pos, &count, &kbuf, &ubuf, uregs, 0, + sizeof(uregs)); + if (err) + return err; + + for (i = start; i < num_regs; i++) { + /* + * Cast all values to signed here so that if this is a 64-bit + * kernel, the supplied 32-bit values will be sign extended. + */ + switch (i) { + case MIPS32_EF_R1 ... MIPS32_EF_R25: + /* k0/k1 are ignored. */ + case MIPS32_EF_R28 ... MIPS32_EF_R31: + regs->regs[i - MIPS32_EF_R0] = (s32)uregs[i]; + break; + case MIPS32_EF_LO: + regs->lo = (s32)uregs[i]; + break; + case MIPS32_EF_HI: + regs->hi = (s32)uregs[i]; + break; + case MIPS32_EF_CP0_EPC: + regs->cp0_epc = (s32)uregs[i]; + break; + } + } return 0; } +#endif /* CONFIG_32BIT || CONFIG_MIPS32_O32 */ + +#ifdef CONFIG_64BIT + +static int gpr64_get(struct task_struct *target, + const struct user_regset *regset, + unsigned int pos, unsigned int count, + void *kbuf, void __user *ubuf) +{ + struct pt_regs *regs = task_pt_regs(target); + u64 uregs[ELF_NGREG] = {}; + unsigned i; + + for (i = MIPS64_EF_R1; i <= MIPS64_EF_R31; i++) { + /* k0/k1 are copied as zero. */ + if (i == MIPS64_EF_R26 || i == MIPS64_EF_R27) + continue; + + uregs[i] = regs->regs[i - MIPS64_EF_R0]; + } + + uregs[MIPS64_EF_LO] = regs->lo; + uregs[MIPS64_EF_HI] = regs->hi; + uregs[MIPS64_EF_CP0_EPC] = regs->cp0_epc; + uregs[MIPS64_EF_CP0_BADVADDR] = regs->cp0_badvaddr; + uregs[MIPS64_EF_CP0_STATUS] = regs->cp0_status; + uregs[MIPS64_EF_CP0_CAUSE] = regs->cp0_cause; + + return user_regset_copyout(&pos, &count, &kbuf, &ubuf, uregs, 0, + sizeof(uregs)); +} + +static int gpr64_set(struct task_struct *target, + const struct user_regset *regset, + unsigned int pos, unsigned int count, + const void *kbuf, const void __user *ubuf) +{ + struct pt_regs *regs = task_pt_regs(target); + u64 uregs[ELF_NGREG]; + unsigned start, num_regs, i; + int err; + + start = pos / sizeof(u64); + num_regs = count / sizeof(u64); + + if (start + num_regs > ELF_NGREG) + return -EIO; + + err = user_regset_copyin(&pos, &count, &kbuf, &ubuf, uregs, 0, + sizeof(uregs)); + if (err) + return err; + + for (i = start; i < num_regs; i++) { + switch (i) { + case MIPS64_EF_R1 ... MIPS64_EF_R25: + /* k0/k1 are ignored. */ + case MIPS64_EF_R28 ... MIPS64_EF_R31: + regs->regs[i - MIPS64_EF_R0] = uregs[i]; + break; + case MIPS64_EF_LO: + regs->lo = uregs[i]; + break; + case MIPS64_EF_HI: + regs->hi = uregs[i]; + break; + case MIPS64_EF_CP0_EPC: + regs->cp0_epc = uregs[i]; + break; + } + } + + return 0; +} + +#endif /* CONFIG_64BIT */ + static int fpr_get(struct task_struct *target, const struct user_regset *regset, unsigned int pos, unsigned int count, @@ -322,14 +447,16 @@ REGSET_FPR, }; +#if defined(CONFIG_32BIT) || defined(CONFIG_MIPS32_O32) + static const struct user_regset mips_regsets[] = { [REGSET_GPR] = { .core_note_type = NT_PRSTATUS, .n = ELF_NGREG, .size = sizeof(unsigned int), .align = sizeof(unsigned int), - .get = gpr_get, - .set = gpr_set, + .get = gpr32_get, + .set = gpr32_set, }, [REGSET_FPR] = { .core_note_type = NT_PRFPREG, @@ -349,14 +476,18 @@ .n = ARRAY_SIZE(mips_regsets), }; +#endif /* CONFIG_32BIT || CONFIG_MIPS32_O32 */ + +#ifdef CONFIG_64BIT + static const struct user_regset mips64_regsets[] = { [REGSET_GPR] = { .core_note_type = NT_PRSTATUS, .n = ELF_NGREG, .size = sizeof(unsigned long), .align = sizeof(unsigned long), - .get = gpr_get, - .set = gpr_set, + .get = gpr64_get, + .set = gpr64_set, }, [REGSET_FPR] = { .core_note_type = NT_PRFPREG, @@ -369,25 +500,26 @@ }; static const struct user_regset_view user_mips64_view = { - .name = "mips", + .name = "mips64", .e_machine = ELF_ARCH, .ei_osabi = ELF_OSABI, .regsets = mips64_regsets, - .n = ARRAY_SIZE(mips_regsets), + .n = ARRAY_SIZE(mips64_regsets), }; +#endif /* CONFIG_64BIT */ + const struct user_regset_view *task_user_regset_view(struct task_struct *task) { #ifdef CONFIG_32BIT return &user_mips_view; -#endif - +#else #ifdef CONFIG_MIPS32_O32 - if (test_thread_flag(TIF_32BIT_REGS)) - return &user_mips_view; + if (test_tsk_thread_flag(task, TIF_32BIT_REGS)) + return &user_mips_view; #endif - return &user_mips64_view; +#endif } long arch_ptrace(struct task_struct *child, long request, @@ -587,7 +719,7 @@ break; #endif case FPC_CSR: - child->thread.fpu.fcr31 = data; + child->thread.fpu.fcr31 = data & ~FPU_CSR_ALL_X; break; case DSP_BASE ... DSP_BASE + 5: { dspreg_t *dregs; --- linux-3.13.0.orig/arch/mips/kernel/scall32-o32.S +++ linux-3.13.0/arch/mips/kernel/scall32-o32.S @@ -563,3 +563,7 @@ PTR sys_process_vm_writev PTR sys_kcmp PTR sys_finit_module + PTR sys_ni_syscall /* sched_setattr */ + PTR sys_ni_syscall /* 4350 */ /* sched_getattr */ + PTR sys_ni_syscall /* renameat2 */ + PTR sys_seccomp --- linux-3.13.0.orig/arch/mips/kernel/scall64-64.S +++ linux-3.13.0/arch/mips/kernel/scall64-64.S @@ -425,4 +425,8 @@ PTR sys_kcmp PTR sys_finit_module PTR sys_getdents64 + PTR sys_sched_setattr /* sched_setattr */ + PTR sys_sched_getattr /* 5310 */ /* sched_getattr */ + PTR sys_ni_syscall /* renameat2 */ + PTR sys_seccomp .size sys_call_table,.-sys_call_table --- linux-3.13.0.orig/arch/mips/kernel/scall64-n32.S +++ linux-3.13.0/arch/mips/kernel/scall64-n32.S @@ -418,4 +418,8 @@ PTR compat_sys_process_vm_writev /* 6310 */ PTR sys_kcmp PTR sys_finit_module + PTR sys_ni_syscall /* sched_setattr */ + PTR sys_ni_syscall /* sched_getattr */ + PTR sys_ni_syscall /* 6315 */ /* renameat2 */ + PTR sys_seccomp .size sysn32_call_table,.-sysn32_call_table --- linux-3.13.0.orig/arch/mips/kernel/scall64-o32.S +++ linux-3.13.0/arch/mips/kernel/scall64-o32.S @@ -541,4 +541,8 @@ PTR compat_sys_process_vm_writev PTR sys_kcmp PTR sys_finit_module + PTR sys_ni_syscall /* sched_setattr */ + PTR sys_ni_syscall /* 4350 */ /* sched_getattr */ + PTR sys_ni_syscall /* renameat2 */ + PTR sys_seccomp .size sys32_call_table,.-sys32_call_table --- linux-3.13.0.orig/arch/mips/kernel/unaligned.c +++ linux-3.13.0/arch/mips/kernel/unaligned.c @@ -605,7 +605,6 @@ case sdc1_op: die_if_kernel("Unaligned FP access in kernel code", regs); BUG_ON(!used_math()); - BUG_ON(!is_fpu_owner()); lose_fpu(1); /* Save FPU state for the emulator. */ res = fpu_emulator_cop1Handler(regs, ¤t->thread.fpu, 1, --- linux-3.13.0.orig/arch/mips/kvm/kvm_mips.c +++ linux-3.13.0/arch/mips/kvm/kvm_mips.c @@ -304,7 +304,7 @@ if (cpu_has_veic || cpu_has_vint) { size = 0x200 + VECTORSPACING * 64; } else { - size = 0x200; + size = 0x4000; } /* Save Linux EBASE */ @@ -395,6 +395,7 @@ if (vcpu->arch.kseg0_commpage) kfree(vcpu->arch.kseg0_commpage); + kfree(vcpu); } void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu) --- linux-3.13.0.orig/arch/mips/kvm/kvm_mips_emul.c +++ linux-3.13.0/arch/mips/kvm/kvm_mips_emul.c @@ -1571,17 +1571,17 @@ arch->gprs[rt] = kvm_read_c0_guest_userlocal(cop0); #else /* UserLocal not implemented */ - er = kvm_mips_emulate_ri_exc(cause, opc, run, vcpu); + er = EMULATE_FAIL; #endif break; default: - printk("RDHWR not supported\n"); + kvm_debug("RDHWR %#x not supported @ %p\n", rd, opc); er = EMULATE_FAIL; break; } } else { - printk("Emulate RI not supported @ %p: %#x\n", opc, inst); + kvm_debug("Emulate RI not supported @ %p: %#x\n", opc, inst); er = EMULATE_FAIL; } @@ -1590,6 +1590,7 @@ */ if (er == EMULATE_FAIL) { vcpu->arch.pc = curr_pc; + er = kvm_mips_emulate_ri_exc(cause, opc, run, vcpu); } return er; } --- linux-3.13.0.orig/arch/mips/lantiq/dts/easy50712.dts +++ linux-3.13.0/arch/mips/lantiq/dts/easy50712.dts @@ -8,6 +8,7 @@ }; memory@0 { + device_type = "memory"; reg = <0x0 0x2000000>; }; --- linux-3.13.0.orig/arch/mips/loongson/common/Makefile +++ linux-3.13.0/arch/mips/loongson/common/Makefile @@ -11,7 +11,8 @@ # Serial port support # obj-$(CONFIG_EARLY_PRINTK) += early_printk.o -obj-$(CONFIG_SERIAL_8250) += serial.o +loongson-serial-$(CONFIG_SERIAL_8250) := serial.o +obj-y += $(loongson-serial-m) $(loongson-serial-y) obj-$(CONFIG_LOONGSON_UART_BASE) += uart_base.o obj-$(CONFIG_LOONGSON_MC146818) += rtc.o --- linux-3.13.0.orig/arch/mips/mm/hugetlbpage.c +++ linux-3.13.0/arch/mips/mm/hugetlbpage.c @@ -85,11 +85,6 @@ return (pud_val(pud) & _PAGE_HUGE) != 0; } -int pmd_huge_support(void) -{ - return 1; -} - struct page * follow_huge_pmd(struct mm_struct *mm, unsigned long address, pmd_t *pmd, int write) --- linux-3.13.0.orig/arch/mips/mm/tlbex.c +++ linux-3.13.0/arch/mips/mm/tlbex.c @@ -1057,6 +1057,7 @@ struct mips_huge_tlb_info { int huge_pte; int restore_scratch; + bool need_reload_pte; }; static struct mips_huge_tlb_info @@ -1071,6 +1072,7 @@ rv.huge_pte = scratch; rv.restore_scratch = 0; + rv.need_reload_pte = false; if (check_for_high_segbits) { UASM_i_MFC0(p, tmp, C0_BADVADDR); @@ -1259,6 +1261,7 @@ } else { htlb_info.huge_pte = K0; htlb_info.restore_scratch = 0; + htlb_info.need_reload_pte = true; vmalloc_mode = refill_noscratch; /* * create the plain linear handler @@ -1295,6 +1298,8 @@ } #ifdef CONFIG_MIPS_HUGE_TLB_SUPPORT uasm_l_tlb_huge_update(&l, p); + if (htlb_info.need_reload_pte) + UASM_i_LW(&p, htlb_info.huge_pte, 0, K1); build_huge_update_entries(&p, htlb_info.huge_pte, K1); build_huge_tlb_write_entry(&p, &l, &r, K0, tlb_random, htlb_info.restore_scratch); --- linux-3.13.0.orig/arch/mips/oprofile/backtrace.c +++ linux-3.13.0/arch/mips/oprofile/backtrace.c @@ -92,7 +92,7 @@ /* This marks the end of the previous function, which means we overran. */ break; - stack_size = (unsigned) stack_adjustment; + stack_size = (unsigned long) stack_adjustment; } else if (is_ra_save_ins(&ip)) { int ra_slot = ip.i_format.simmediate; if (ra_slot < 0) --- linux-3.13.0.orig/arch/mips/power/hibernate.S +++ linux-3.13.0/arch/mips/power/hibernate.S @@ -43,6 +43,7 @@ bne t1, t3, 1b PTR_L t0, PBE_NEXT(t0) bnez t0, 0b + jal local_flush_tlb_all /* Avoid TLB mismatch after kernel resume */ PTR_LA t0, saved_regs PTR_L ra, PT_R31(t0) PTR_L sp, PT_R29(t0) --- linux-3.13.0.orig/arch/mips/ralink/dts/mt7620a_eval.dts +++ linux-3.13.0/arch/mips/ralink/dts/mt7620a_eval.dts @@ -7,6 +7,7 @@ model = "Ralink MT7620A evaluation board"; memory@0 { + device_type = "memory"; reg = <0x0 0x2000000>; }; --- linux-3.13.0.orig/arch/mips/ralink/dts/rt2880_eval.dts +++ linux-3.13.0/arch/mips/ralink/dts/rt2880_eval.dts @@ -7,6 +7,7 @@ model = "Ralink RT2880 evaluation board"; memory@0 { + device_type = "memory"; reg = <0x8000000 0x2000000>; }; --- linux-3.13.0.orig/arch/mips/ralink/dts/rt3052_eval.dts +++ linux-3.13.0/arch/mips/ralink/dts/rt3052_eval.dts @@ -7,6 +7,7 @@ model = "Ralink RT3052 evaluation board"; memory@0 { + device_type = "memory"; reg = <0x0 0x2000000>; }; --- linux-3.13.0.orig/arch/mips/ralink/dts/rt3883_eval.dts +++ linux-3.13.0/arch/mips/ralink/dts/rt3883_eval.dts @@ -7,6 +7,7 @@ model = "Ralink RT3883 evaluation board"; memory@0 { + device_type = "memory"; reg = <0x0 0x2000000>; }; --- linux-3.13.0.orig/arch/parisc/Kconfig +++ linux-3.13.0/arch/parisc/Kconfig @@ -22,6 +22,7 @@ select GENERIC_SMP_IDLE_THREAD select GENERIC_STRNCPY_FROM_USER select SYSCTL_ARCH_UNALIGN_ALLOW + select SYSCTL_EXCEPTION_TRACE select HAVE_MOD_ARCH_SPECIFIC select VIRT_TO_BUS select MODULES_USE_ELF_RELA --- linux-3.13.0.orig/arch/parisc/Makefile +++ linux-3.13.0/arch/parisc/Makefile @@ -48,7 +48,12 @@ # These flags should be implied by an hppa-linux configuration, but they # are not in gcc 3.2. -cflags-y += -mno-space-regs -mfast-indirect-calls +cflags-y += -mno-space-regs + +# -mfast-indirect-calls is only relevant for 32-bit kernels. +ifndef CONFIG_64BIT +cflags-y += -mfast-indirect-calls +endif # Currently we save and restore fpregs on all kernel entry/interruption paths. # If that gets optimized, we might need to disable the use of fpregs in the --- linux-3.13.0.orig/arch/parisc/include/asm/cacheflush.h +++ linux-3.13.0/arch/parisc/include/asm/cacheflush.h @@ -132,7 +132,6 @@ static inline void *kmap(struct page *page) { might_sleep(); - flush_dcache_page(page); return page_address(page); } @@ -144,7 +143,6 @@ static inline void *kmap_atomic(struct page *page) { pagefault_disable(); - flush_dcache_page(page); return page_address(page); } --- linux-3.13.0.orig/arch/parisc/include/asm/page.h +++ linux-3.13.0/arch/parisc/include/asm/page.h @@ -29,7 +29,8 @@ void clear_page_asm(void *page); void copy_page_asm(void *to, void *from); #define clear_user_page(vto, vaddr, page) clear_page_asm(vto) -#define copy_user_page(vto, vfrom, vaddr, page) copy_page_asm(vto, vfrom) +void copy_user_page(void *vto, void *vfrom, unsigned long vaddr, + struct page *pg); /* #define CONFIG_PARISC_TMPALIAS */ --- linux-3.13.0.orig/arch/parisc/include/asm/processor.h +++ linux-3.13.0/arch/parisc/include/asm/processor.h @@ -53,6 +53,8 @@ #define STACK_TOP TASK_SIZE #define STACK_TOP_MAX DEFAULT_TASK_SIZE +#define STACK_SIZE_MAX (1 << 30) /* 1 GB */ + #endif #ifndef __ASSEMBLY__ --- linux-3.13.0.orig/arch/parisc/include/uapi/asm/shmbuf.h +++ linux-3.13.0/arch/parisc/include/uapi/asm/shmbuf.h @@ -36,23 +36,16 @@ unsigned int __unused2; }; -#ifdef CONFIG_64BIT -/* The 'unsigned int' (formerly 'unsigned long') data types below will - * ensure that a 32-bit app calling shmctl(*,IPC_INFO,*) will work on - * a wide kernel, but if some of these values are meant to contain pointers - * they may need to be 'long long' instead. -PB XXX FIXME - */ -#endif struct shminfo64 { - unsigned int shmmax; - unsigned int shmmin; - unsigned int shmmni; - unsigned int shmseg; - unsigned int shmall; - unsigned int __unused1; - unsigned int __unused2; - unsigned int __unused3; - unsigned int __unused4; + unsigned long shmmax; + unsigned long shmmin; + unsigned long shmmni; + unsigned long shmseg; + unsigned long shmall; + unsigned long __unused1; + unsigned long __unused2; + unsigned long __unused3; + unsigned long __unused4; }; #endif /* _PARISC_SHMBUF_H */ --- linux-3.13.0.orig/arch/parisc/include/uapi/asm/signal.h +++ linux-3.13.0/arch/parisc/include/uapi/asm/signal.h @@ -69,8 +69,6 @@ #define SA_NOMASK SA_NODEFER #define SA_ONESHOT SA_RESETHAND -#define SA_RESTORER 0x04000000 /* obsolete -- ignored */ - #define MINSIGSTKSZ 2048 #define SIGSTKSZ 8192 --- linux-3.13.0.orig/arch/parisc/kernel/cache.c +++ linux-3.13.0/arch/parisc/kernel/cache.c @@ -388,6 +388,20 @@ } EXPORT_SYMBOL(flush_kernel_dcache_page_addr); +void copy_user_page(void *vto, void *vfrom, unsigned long vaddr, + struct page *pg) +{ + /* Copy using kernel mapping. No coherency is needed (all in + kunmap) for the `to' page. However, the `from' page needs to + be flushed through a mapping equivalent to the user mapping + before it can be accessed through the kernel mapping. */ + preempt_disable(); + flush_dcache_page_asm(__pa(vfrom), vaddr); + preempt_enable(); + copy_page_asm(vto, vfrom); +} +EXPORT_SYMBOL(copy_user_page); + void purge_tlb_entries(struct mm_struct *mm, unsigned long addr) { unsigned long flags; --- linux-3.13.0.orig/arch/parisc/kernel/hardware.c +++ linux-3.13.0/arch/parisc/kernel/hardware.c @@ -1210,7 +1210,8 @@ {HPHW_FIO, 0x004, 0x00320, 0x0, "Metheus Frame Buffer"}, {HPHW_FIO, 0x004, 0x00340, 0x0, "BARCO CX4500 VME Grphx Cnsl"}, {HPHW_FIO, 0x004, 0x00360, 0x0, "Hughes TOG VME FDDI"}, - {HPHW_FIO, 0x076, 0x000AD, 0x00, "Crestone Peak RS-232"}, + {HPHW_FIO, 0x076, 0x000AD, 0x0, "Crestone Peak Core RS-232"}, + {HPHW_FIO, 0x077, 0x000AD, 0x0, "Crestone Peak Fast? Core RS-232"}, {HPHW_IOA, 0x185, 0x0000B, 0x00, "Java BC Summit Port"}, {HPHW_IOA, 0x1FF, 0x0000B, 0x00, "Hitachi Ghostview Summit Port"}, {HPHW_IOA, 0x580, 0x0000B, 0x10, "U2-IOA BC Runway Port"}, --- linux-3.13.0.orig/arch/parisc/kernel/sys_parisc32.c +++ linux-3.13.0/arch/parisc/kernel/sys_parisc32.c @@ -4,6 +4,7 @@ * Copyright (C) 2000-2001 Hewlett Packard Company * Copyright (C) 2000 John Marvin * Copyright (C) 2001 Matthew Wilcox + * Copyright (C) 2014 Helge Deller * * These routines maintain argument size conversion between 32bit and 64bit * environment. Based heavily on sys_ia32.c and sys_sparc32.c. @@ -11,44 +12,8 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include -#include -#include -#include - -#undef DEBUG - -#ifdef DEBUG -#define DBG(x) printk x -#else -#define DBG(x) -#endif asmlinkage long sys32_unimplemented(int r26, int r25, int r24, int r23, int r22, int r21, int r20) @@ -57,3 +22,12 @@ current->comm, current->pid, r20); return -ENOSYS; } + +asmlinkage long sys32_fanotify_mark(compat_int_t fanotify_fd, compat_uint_t flags, + compat_uint_t mask0, compat_uint_t mask1, compat_int_t dfd, + const char __user * pathname) +{ + return sys_fanotify_mark(fanotify_fd, flags, + ((__u64)mask1 << 32) | mask0, + dfd, pathname); +} --- linux-3.13.0.orig/arch/parisc/kernel/syscall.S +++ linux-3.13.0/arch/parisc/kernel/syscall.S @@ -74,7 +74,7 @@ /* ADDRESS 0xb0 to 0xb8, lws uses two insns for entry */ /* Light-weight-syscall entry must always be located at 0xb0 */ /* WARNING: Keep this number updated with table size changes */ -#define __NR_lws_entries (2) +#define __NR_lws_entries (3) lws_entry: gate lws_start, %r0 /* increase privilege */ @@ -502,7 +502,7 @@ /*************************************************** - Implementing CAS as an atomic operation: + Implementing 32bit CAS as an atomic operation: %r26 - Address to examine %r25 - Old value to check (old) @@ -589,10 +589,13 @@ # endif /* ENABLE_LWS_DEBUG */ + rsm PSW_SM_I, %r0 /* Disable interrupts */ + /* COW breaks can cause contention on UP systems */ LDCW 0(%sr2,%r20), %r28 /* Try to acquire the lock */ cmpb,<>,n %r0, %r28, cas_action /* Did we get it? */ cas_wouldblock: ldo 2(%r0), %r28 /* 2nd case */ + ssm PSW_SM_I, %r0 b lws_exit /* Contended... */ ldo -EAGAIN(%r0), %r21 /* Spin in userspace */ @@ -619,15 +622,17 @@ stw %r1, 4(%sr2,%r20) #endif /* The load and store could fail */ -1: ldw 0(%sr3,%r26), %r28 +1: ldw,ma 0(%sr3,%r26), %r28 sub,<> %r28, %r25, %r0 -2: stw %r24, 0(%sr3,%r26) +2: stw,ma %r24, 0(%sr3,%r26) /* Free lock */ - stw %r20, 0(%sr2,%r20) + stw,ma %r20, 0(%sr2,%r20) #if ENABLE_LWS_DEBUG /* Clear thread register indicator */ stw %r0, 4(%sr2,%r20) #endif + /* Enable interrupts */ + ssm PSW_SM_I, %r0 /* Return to userspace, set no error */ b lws_exit copy %r0, %r21 @@ -639,6 +644,7 @@ #if ENABLE_LWS_DEBUG stw %r0, 4(%sr2,%r20) #endif + ssm PSW_SM_I, %r0 b lws_exit ldo -EFAULT(%r0),%r21 /* set errno */ nop @@ -653,6 +659,230 @@ ASM_EXCEPTIONTABLE_ENTRY(2b-linux_gateway_page, 3b-linux_gateway_page) + /*************************************************** + New CAS implementation which uses pointers and variable size + information. The value pointed by old and new MUST NOT change + while performing CAS. The lock only protect the value at %r26. + + %r26 - Address to examine + %r25 - Pointer to the value to check (old) + %r24 - Pointer to the value to set (new) + %r23 - Size of the variable (0/1/2/3 for 8/16/32/64 bit) + %r28 - Return non-zero on failure + %r21 - Kernel error code + + %r21 has the following meanings: + + EAGAIN - CAS is busy, ldcw failed, try again. + EFAULT - Read or write failed. + + Scratch: r20, r22, r28, r29, r1, fr4 (32bit for 64bit CAS only) + + ****************************************************/ + + /* ELF32 Process entry path */ +lws_compare_and_swap_2: +#ifdef CONFIG_64BIT + /* Clip the input registers */ + depdi 0, 31, 32, %r26 + depdi 0, 31, 32, %r25 + depdi 0, 31, 32, %r24 + depdi 0, 31, 32, %r23 +#endif + + /* Check the validity of the size pointer */ + subi,>>= 4, %r23, %r0 + b,n lws_exit_nosys + + /* Jump to the functions which will load the old and new values into + registers depending on the their size */ + shlw %r23, 2, %r29 + blr %r29, %r0 + nop + + /* 8bit load */ +4: ldb 0(%sr3,%r25), %r25 + b cas2_lock_start +5: ldb 0(%sr3,%r24), %r24 + nop + nop + nop + nop + nop + + /* 16bit load */ +6: ldh 0(%sr3,%r25), %r25 + b cas2_lock_start +7: ldh 0(%sr3,%r24), %r24 + nop + nop + nop + nop + nop + + /* 32bit load */ +8: ldw 0(%sr3,%r25), %r25 + b cas2_lock_start +9: ldw 0(%sr3,%r24), %r24 + nop + nop + nop + nop + nop + + /* 64bit load */ +#ifdef CONFIG_64BIT +10: ldd 0(%sr3,%r25), %r25 +11: ldd 0(%sr3,%r24), %r24 +#else + /* Load new value into r22/r23 - high/low */ +10: ldw 0(%sr3,%r25), %r22 +11: ldw 4(%sr3,%r25), %r23 + /* Load new value into fr4 for atomic store later */ +12: flddx 0(%sr3,%r24), %fr4 +#endif + +cas2_lock_start: + /* Load start of lock table */ + ldil L%lws_lock_start, %r20 + ldo R%lws_lock_start(%r20), %r28 + + /* Extract four bits from r26 and hash lock (Bits 4-7) */ + extru %r26, 27, 4, %r20 + + /* Find lock to use, the hash is either one of 0 to + 15, multiplied by 16 (keep it 16-byte aligned) + and add to the lock table offset. */ + shlw %r20, 4, %r20 + add %r20, %r28, %r20 + + rsm PSW_SM_I, %r0 /* Disable interrupts */ + /* COW breaks can cause contention on UP systems */ + LDCW 0(%sr2,%r20), %r28 /* Try to acquire the lock */ + cmpb,<>,n %r0, %r28, cas2_action /* Did we get it? */ +cas2_wouldblock: + ldo 2(%r0), %r28 /* 2nd case */ + ssm PSW_SM_I, %r0 + b lws_exit /* Contended... */ + ldo -EAGAIN(%r0), %r21 /* Spin in userspace */ + + /* + prev = *addr; + if ( prev == old ) + *addr = new; + return prev; + */ + + /* NOTES: + This all works becuse intr_do_signal + and schedule both check the return iasq + and see that we are on the kernel page + so this process is never scheduled off + or is ever sent any signal of any sort, + thus it is wholly atomic from usrspaces + perspective + */ +cas2_action: + /* Jump to the correct function */ + blr %r29, %r0 + /* Set %r28 as non-zero for now */ + ldo 1(%r0),%r28 + + /* 8bit CAS */ +13: ldb,ma 0(%sr3,%r26), %r29 + sub,= %r29, %r25, %r0 + b,n cas2_end +14: stb,ma %r24, 0(%sr3,%r26) + b cas2_end + copy %r0, %r28 + nop + nop + + /* 16bit CAS */ +15: ldh,ma 0(%sr3,%r26), %r29 + sub,= %r29, %r25, %r0 + b,n cas2_end +16: sth,ma %r24, 0(%sr3,%r26) + b cas2_end + copy %r0, %r28 + nop + nop + + /* 32bit CAS */ +17: ldw,ma 0(%sr3,%r26), %r29 + sub,= %r29, %r25, %r0 + b,n cas2_end +18: stw,ma %r24, 0(%sr3,%r26) + b cas2_end + copy %r0, %r28 + nop + nop + + /* 64bit CAS */ +#ifdef CONFIG_64BIT +19: ldd,ma 0(%sr3,%r26), %r29 + sub,= %r29, %r25, %r0 + b,n cas2_end +20: std,ma %r24, 0(%sr3,%r26) + copy %r0, %r28 +#else + /* Compare first word */ +19: ldw,ma 0(%sr3,%r26), %r29 + sub,= %r29, %r22, %r0 + b,n cas2_end + /* Compare second word */ +20: ldw,ma 4(%sr3,%r26), %r29 + sub,= %r29, %r23, %r0 + b,n cas2_end + /* Perform the store */ +21: fstdx %fr4, 0(%sr3,%r26) + copy %r0, %r28 +#endif + +cas2_end: + /* Free lock */ + stw,ma %r20, 0(%sr2,%r20) + /* Enable interrupts */ + ssm PSW_SM_I, %r0 + /* Return to userspace, set no error */ + b lws_exit + copy %r0, %r21 + +22: + /* Error occurred on load or store */ + /* Free lock */ + stw %r20, 0(%sr2,%r20) + ssm PSW_SM_I, %r0 + ldo 1(%r0),%r28 + b lws_exit + ldo -EFAULT(%r0),%r21 /* set errno */ + nop + nop + nop + + /* Exception table entries, for the load and store, return EFAULT. + Each of the entries must be relocated. */ + ASM_EXCEPTIONTABLE_ENTRY(4b-linux_gateway_page, 22b-linux_gateway_page) + ASM_EXCEPTIONTABLE_ENTRY(5b-linux_gateway_page, 22b-linux_gateway_page) + ASM_EXCEPTIONTABLE_ENTRY(6b-linux_gateway_page, 22b-linux_gateway_page) + ASM_EXCEPTIONTABLE_ENTRY(7b-linux_gateway_page, 22b-linux_gateway_page) + ASM_EXCEPTIONTABLE_ENTRY(8b-linux_gateway_page, 22b-linux_gateway_page) + ASM_EXCEPTIONTABLE_ENTRY(9b-linux_gateway_page, 22b-linux_gateway_page) + ASM_EXCEPTIONTABLE_ENTRY(10b-linux_gateway_page, 22b-linux_gateway_page) + ASM_EXCEPTIONTABLE_ENTRY(11b-linux_gateway_page, 22b-linux_gateway_page) + ASM_EXCEPTIONTABLE_ENTRY(13b-linux_gateway_page, 22b-linux_gateway_page) + ASM_EXCEPTIONTABLE_ENTRY(14b-linux_gateway_page, 22b-linux_gateway_page) + ASM_EXCEPTIONTABLE_ENTRY(15b-linux_gateway_page, 22b-linux_gateway_page) + ASM_EXCEPTIONTABLE_ENTRY(16b-linux_gateway_page, 22b-linux_gateway_page) + ASM_EXCEPTIONTABLE_ENTRY(17b-linux_gateway_page, 22b-linux_gateway_page) + ASM_EXCEPTIONTABLE_ENTRY(18b-linux_gateway_page, 22b-linux_gateway_page) + ASM_EXCEPTIONTABLE_ENTRY(19b-linux_gateway_page, 22b-linux_gateway_page) + ASM_EXCEPTIONTABLE_ENTRY(20b-linux_gateway_page, 22b-linux_gateway_page) +#ifndef CONFIG_64BIT + ASM_EXCEPTIONTABLE_ENTRY(12b-linux_gateway_page, 22b-linux_gateway_page) + ASM_EXCEPTIONTABLE_ENTRY(21b-linux_gateway_page, 22b-linux_gateway_page) +#endif + /* Make sure nothing else is placed on this page */ .align PAGE_SIZE END(linux_gateway_page) @@ -669,8 +899,9 @@ /* Light-weight-syscall table */ /* Start of lws table. */ ENTRY(lws_table) - LWS_ENTRY(compare_and_swap32) /* 0 - ELF32 Atomic compare and swap */ - LWS_ENTRY(compare_and_swap64) /* 1 - ELF64 Atomic compare and swap */ + LWS_ENTRY(compare_and_swap32) /* 0 - ELF32 Atomic 32bit CAS */ + LWS_ENTRY(compare_and_swap64) /* 1 - ELF64 Atomic 32bit CAS */ + LWS_ENTRY(compare_and_swap_2) /* 2 - ELF32 Atomic 64bit CAS */ END(lws_table) /* End of lws table */ --- linux-3.13.0.orig/arch/parisc/kernel/syscall_table.S +++ linux-3.13.0/arch/parisc/kernel/syscall_table.S @@ -286,11 +286,11 @@ ENTRY_COMP(msgsnd) ENTRY_COMP(msgrcv) ENTRY_SAME(msgget) /* 190 */ - ENTRY_SAME(msgctl) - ENTRY_SAME(shmat) + ENTRY_COMP(msgctl) + ENTRY_COMP(shmat) ENTRY_SAME(shmdt) ENTRY_SAME(shmget) - ENTRY_SAME(shmctl) /* 195 */ + ENTRY_COMP(shmctl) /* 195 */ ENTRY_SAME(ni_syscall) /* streams1 */ ENTRY_SAME(ni_syscall) /* streams2 */ ENTRY_SAME(lstat64) @@ -323,7 +323,7 @@ ENTRY_SAME(epoll_ctl) /* 225 */ ENTRY_SAME(epoll_wait) ENTRY_SAME(remap_file_pages) - ENTRY_SAME(semtimedop) + ENTRY_COMP(semtimedop) ENTRY_COMP(mq_open) ENTRY_SAME(mq_unlink) /* 230 */ ENTRY_COMP(mq_timedsend) @@ -392,7 +392,7 @@ ENTRY_COMP(vmsplice) ENTRY_COMP(move_pages) /* 295 */ ENTRY_SAME(getcpu) - ENTRY_SAME(epoll_pwait) + ENTRY_COMP(epoll_pwait) ENTRY_COMP(statfs64) ENTRY_COMP(fstatfs64) ENTRY_COMP(kexec_load) /* 300 */ @@ -418,7 +418,7 @@ ENTRY_SAME(accept4) /* 320 */ ENTRY_SAME(prlimit64) ENTRY_SAME(fanotify_init) - ENTRY_COMP(fanotify_mark) + ENTRY_DIFF(fanotify_mark) ENTRY_COMP(clock_adjtime) ENTRY_SAME(name_to_handle_at) /* 325 */ ENTRY_COMP(open_by_handle_at) --- linux-3.13.0.orig/arch/parisc/kernel/traps.c +++ linux-3.13.0/arch/parisc/kernel/traps.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -42,9 +43,6 @@ #include "../math-emu/math-emu.h" /* for handle_fpe() */ -#define PRINT_USER_FAULTS /* (turn this on if you want user faults to be */ - /* dumped to the console via printk) */ - #if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK) DEFINE_SPINLOCK(pa_dbit_lock); #endif @@ -160,6 +158,17 @@ } } +static DEFINE_RATELIMIT_STATE(_hppa_rs, + DEFAULT_RATELIMIT_INTERVAL, DEFAULT_RATELIMIT_BURST); + +#define parisc_printk_ratelimited(critical, regs, fmt, ...) { \ + if ((critical || show_unhandled_signals) && __ratelimit(&_hppa_rs)) { \ + printk(fmt, ##__VA_ARGS__); \ + show_regs(regs); \ + } \ +} + + static void do_show_stack(struct unwind_frame_info *info) { int i = 1; @@ -229,12 +238,10 @@ if (err == 0) return; /* STFU */ - printk(KERN_CRIT "%s (pid %d): %s (code %ld) at " RFMT "\n", + parisc_printk_ratelimited(1, regs, + KERN_CRIT "%s (pid %d): %s (code %ld) at " RFMT "\n", current->comm, task_pid_nr(current), str, err, regs->iaoq[0]); -#ifdef PRINT_USER_FAULTS - /* XXX for debugging only */ - show_regs(regs); -#endif + return; } @@ -321,14 +328,11 @@ (tt == BUG_TRAP_TYPE_NONE) ? 9 : 0); } -#ifdef PRINT_USER_FAULTS - if (unlikely(iir != GDB_BREAK_INSN)) { - printk(KERN_DEBUG "break %d,%d: pid=%d command='%s'\n", + if (unlikely(iir != GDB_BREAK_INSN)) + parisc_printk_ratelimited(0, regs, + KERN_DEBUG "break %d,%d: pid=%d command='%s'\n", iir & 31, (iir>>13) & ((1<<13)-1), task_pid_nr(current), current->comm); - show_regs(regs); - } -#endif /* send standard GDB signal */ handle_gdb_break(regs, TRAP_BRKPT); @@ -758,11 +762,9 @@ default: if (user_mode(regs)) { -#ifdef PRINT_USER_FAULTS - printk(KERN_DEBUG "\nhandle_interruption() pid=%d command='%s'\n", - task_pid_nr(current), current->comm); - show_regs(regs); -#endif + parisc_printk_ratelimited(0, regs, KERN_DEBUG + "handle_interruption() pid=%d command='%s'\n", + task_pid_nr(current), current->comm); /* SIGBUS, for lack of a better one. */ si.si_signo = SIGBUS; si.si_code = BUS_OBJERR; @@ -779,16 +781,10 @@ if (user_mode(regs)) { if ((fault_space >> SPACEID_SHIFT) != (regs->sr[7] >> SPACEID_SHIFT)) { -#ifdef PRINT_USER_FAULTS - if (fault_space == 0) - printk(KERN_DEBUG "User Fault on Kernel Space "); - else - printk(KERN_DEBUG "User Fault (long pointer) (fault %d) ", - code); - printk(KERN_CONT "pid=%d command='%s'\n", - task_pid_nr(current), current->comm); - show_regs(regs); -#endif + parisc_printk_ratelimited(0, regs, KERN_DEBUG + "User fault %d on space 0x%08lx, pid=%d command='%s'\n", + code, fault_space, + task_pid_nr(current), current->comm); si.si_signo = SIGSEGV; si.si_errno = 0; si.si_code = SEGV_MAPERR; --- linux-3.13.0.orig/arch/parisc/mm/fault.c +++ linux-3.13.0/arch/parisc/mm/fault.c @@ -19,10 +19,6 @@ #include #include -#define PRINT_USER_FAULTS /* (turn this on if you want user faults to be */ - /* dumped to the console via printk) */ - - /* Various important other fields */ #define bit22set(x) (x & 0x00000200) #define bits23_25set(x) (x & 0x000001c0) @@ -34,6 +30,8 @@ DEFINE_PER_CPU(struct exception_data, exception_data); +int show_unhandled_signals = 1; + /* * parisc_acctyp(unsigned int inst) -- * Given a PA-RISC memory access instruction, determine if the @@ -173,6 +171,32 @@ return 0; } +/* + * Print out info about fatal segfaults, if the show_unhandled_signals + * sysctl is set: + */ +static inline void +show_signal_msg(struct pt_regs *regs, unsigned long code, + unsigned long address, struct task_struct *tsk, + struct vm_area_struct *vma) +{ + if (!unhandled_signal(tsk, SIGSEGV)) + return; + + if (!printk_ratelimit()) + return; + + pr_warn("\n"); + pr_warn("do_page_fault() command='%s' type=%lu address=0x%08lx", + tsk->comm, code, address); + print_vma_addr(KERN_CONT " in ", regs->iaoq[0]); + if (vma) + pr_warn(" vm_start = 0x%08lx, vm_end = 0x%08lx\n", + vma->vm_start, vma->vm_end); + + show_regs(regs); +} + void do_page_fault(struct pt_regs *regs, unsigned long code, unsigned long address) { @@ -270,16 +294,8 @@ if (user_mode(regs)) { struct siginfo si; -#ifdef PRINT_USER_FAULTS - printk(KERN_DEBUG "\n"); - printk(KERN_DEBUG "do_page_fault() pid=%d command='%s' type=%lu address=0x%08lx\n", - task_pid_nr(tsk), tsk->comm, code, address); - if (vma) { - printk(KERN_DEBUG "vm_start = 0x%08lx, vm_end = 0x%08lx\n", - vma->vm_start, vma->vm_end); - } - show_regs(regs); -#endif + show_signal_msg(regs, code, address, tsk, vma); + switch (code) { case 15: /* Data TLB miss fault/Data page fault */ /* send SIGSEGV when outside of vma */ --- linux-3.13.0.orig/arch/powerpc/Kconfig +++ linux-3.13.0/arch/powerpc/Kconfig @@ -139,6 +139,7 @@ select OLD_SIGACTION if PPC32 select HAVE_DEBUG_STACKOVERFLOW select HAVE_IRQ_EXIT_ON_IRQ_STACK + select ARCH_SUPPORTS_ATOMIC_RMW config GENERIC_CSUM def_bool CPU_LITTLE_ENDIAN @@ -381,7 +382,7 @@ config KEXEC bool "kexec system call" - depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP)) + depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP)) || PPC_BOOK3E help kexec is a system call that implements the ability to shutdown your current kernel, and to start another kernel. It is like a reboot @@ -439,6 +440,14 @@ default "4" depends on NEED_MULTIPLE_NODES +config USE_PERCPU_NUMA_NODE_ID + def_bool y + depends on NUMA + +config HAVE_MEMORYLESS_NODES + def_bool y + depends on NUMA + config ARCH_SELECT_MEMORY_MODEL def_bool y depends on PPC64 @@ -735,6 +744,16 @@ help Freescale General-purpose Timers support +config HAS_FSL_QBMAN + bool "Datapath Acceleration Queue and Buffer management" + help + Datapath Acceleration Queue and Buffer management + +config HAS_FSL_PME + bool + depends on HAS_FSL_QBMAN + default n + # Yes MCA RS/6000s exist but Linux-PPC does not currently support any config MCA bool @@ -1020,6 +1039,8 @@ source "drivers/Kconfig" +source "ubuntu/Kconfig" + source "fs/Kconfig" source "arch/powerpc/sysdev/qe_lib/Kconfig" --- linux-3.13.0.orig/arch/powerpc/Makefile +++ linux-3.13.0/arch/powerpc/Makefile @@ -149,7 +149,9 @@ CFLAGS-$(CONFIG_TUNE_CELL) += $(call cc-option,-mtune=cell) -KBUILD_CPPFLAGS += -Iarch/$(ARCH) +asinstr := $(call as-instr,lis 9$(comma)foo@high,-DHAVE_AS_ATHIGH=1) + +KBUILD_CPPFLAGS += -Iarch/$(ARCH) $(asinstr) KBUILD_AFLAGS += -Iarch/$(ARCH) KBUILD_CFLAGS += -msoft-float -pipe -Iarch/$(ARCH) $(CFLAGS-y) CPP = $(CC) -E $(KBUILD_CFLAGS) @@ -225,7 +227,7 @@ all: zImage # With make 3.82 we cannot mix normal and wildcard targets -BOOT_TARGETS1 := zImage zImage.initrd uImage +BOOT_TARGETS1 := zImage zImage.initrd uImage vmlinux.strip BOOT_TARGETS2 := zImage% dtbImage% treeImage.% cuImage.% simpleImage.% uImage.% PHONY += $(BOOT_TARGETS1) $(BOOT_TARGETS2) --- linux-3.13.0.orig/arch/powerpc/configs/pseries_defconfig +++ linux-3.13.0/arch/powerpc/configs/pseries_defconfig @@ -353,3 +353,4 @@ CONFIG_VIRTUALIZATION=y CONFIG_KVM_BOOK3S_64=m CONFIG_KVM_BOOK3S_64_HV=y +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y --- linux-3.13.0.orig/arch/powerpc/configs/pseries_le_defconfig +++ linux-3.13.0/arch/powerpc/configs/pseries_le_defconfig @@ -350,3 +350,4 @@ # CONFIG_CRYPTO_ANSI_CPRNG is not set CONFIG_CRYPTO_DEV_NX=y CONFIG_CRYPTO_DEV_NX_ENCRYPT=m +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y --- linux-3.13.0.orig/arch/powerpc/include/asm/bitops.h +++ linux-3.13.0/arch/powerpc/include/asm/bitops.h @@ -46,6 +46,11 @@ #include #include +/* PPC bit number conversion */ +#define PPC_BITLSHIFT(be) (BITS_PER_LONG - 1 - (be)) +#define PPC_BIT(bit) (1UL << PPC_BITLSHIFT(bit)) +#define PPC_BITMASK(bs, be) ((PPC_BIT(bs) - PPC_BIT(be)) | PPC_BIT(bs)) + /* * clear_bit doesn't imply a memory barrier */ --- linux-3.13.0.orig/arch/powerpc/include/asm/compat.h +++ linux-3.13.0/arch/powerpc/include/asm/compat.h @@ -8,7 +8,11 @@ #include #define COMPAT_USER_HZ 100 +#ifdef __BIG_ENDIAN__ #define COMPAT_UTS_MACHINE "ppc\0\0" +#else +#define COMPAT_UTS_MACHINE "ppcle\0\0" +#endif typedef u32 compat_size_t; typedef s32 compat_ssize_t; @@ -200,10 +204,11 @@ /* * We can't access below the stack pointer in the 32bit ABI and - * can access 288 bytes in the 64bit ABI + * can access 288 bytes in the 64bit big-endian ABI, + * or 512 bytes with the new ELFv2 little-endian ABI. */ if (!is_32bit_task()) - usp -= 288; + usp -= USER_REDZONE_SIZE; return (void __user *) (usp - len); } --- linux-3.13.0.orig/arch/powerpc/include/asm/cputable.h +++ linux-3.13.0/arch/powerpc/include/asm/cputable.h @@ -90,6 +90,18 @@ * if the error is fatal, 1 if it was fully recovered and 0 to * pass up (not CPU originated) */ int (*machine_check)(struct pt_regs *regs); + + /* + * Processor specific early machine check handler which is + * called in real mode to handle SLB and TLB errors. + */ + long (*machine_check_early)(struct pt_regs *regs); + + /* + * Processor specific routine to flush tlbs. + */ + void (*flush_tlb)(unsigned long inval_selector); + }; extern struct cpu_spec *cur_cpu_spec; @@ -177,6 +189,7 @@ #define CPU_FTR_HAS_PPR LONG_ASM_CONST(0x0200000000000000) #define CPU_FTR_DAWR LONG_ASM_CONST(0x0400000000000000) #define CPU_FTR_DABRX LONG_ASM_CONST(0x0800000000000000) +#define CPU_FTR_PMAO_BUG LONG_ASM_CONST(0x1000000000000000) #ifndef __ASSEMBLY__ @@ -433,6 +446,7 @@ CPU_FTR_ICSWX | CPU_FTR_CFAR | CPU_FTR_HVMODE | CPU_FTR_VMX_COPY | \ CPU_FTR_DBELL | CPU_FTR_HAS_PPR | CPU_FTR_DAWR | \ CPU_FTR_ARCH_207S | CPU_FTR_TM_COMP) +#define CPU_FTRS_POWER8E (CPU_FTRS_POWER8 | CPU_FTR_PMAO_BUG) #define CPU_FTRS_CELL (CPU_FTR_USE_TB | CPU_FTR_LWSYNC | \ CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | \ CPU_FTR_ALTIVEC_COMP | CPU_FTR_MMCRA | CPU_FTR_SMT | \ @@ -454,8 +468,8 @@ #define CPU_FTRS_POSSIBLE \ (CPU_FTRS_POWER3 | CPU_FTRS_RS64 | CPU_FTRS_POWER4 | \ CPU_FTRS_PPC970 | CPU_FTRS_POWER5 | CPU_FTRS_POWER6 | \ - CPU_FTRS_POWER7 | CPU_FTRS_POWER8 | CPU_FTRS_CELL | \ - CPU_FTRS_PA6T | CPU_FTR_VSX) + CPU_FTRS_POWER7 | CPU_FTRS_POWER8E | CPU_FTRS_POWER8 | \ + CPU_FTRS_CELL | CPU_FTRS_PA6T | CPU_FTR_VSX) #endif #else enum { --- linux-3.13.0.orig/arch/powerpc/include/asm/dma-mapping.h +++ linux-3.13.0/arch/powerpc/include/asm/dma-mapping.h @@ -134,6 +134,7 @@ } extern int dma_set_mask(struct device *dev, u64 dma_mask); +extern int __dma_set_mask(struct device *dev, u64 dma_mask); #define dma_alloc_coherent(d,s,h,f) dma_alloc_attrs(d,s,h,f,NULL) --- linux-3.13.0.orig/arch/powerpc/include/asm/eeh.h +++ linux-3.13.0/arch/powerpc/include/asm/eeh.h @@ -117,6 +117,16 @@ return edev ? edev->pdev : NULL; } +/* Return values from eeh_ops::next_error */ +enum { + EEH_NEXT_ERR_NONE = 0, + EEH_NEXT_ERR_INF, + EEH_NEXT_ERR_FROZEN_PE, + EEH_NEXT_ERR_FENCED_PHB, + EEH_NEXT_ERR_DEAD_PHB, + EEH_NEXT_ERR_DEAD_IOC +}; + /* * The struct is used to trace the registered EEH operation * callback functions. Actually, those operation callback --- linux-3.13.0.orig/arch/powerpc/include/asm/exception-64e.h +++ linux-3.13.0/arch/powerpc/include/asm/exception-64e.h @@ -214,10 +214,21 @@ #define TLB_MISS_STATS_SAVE_INFO_BOLTED #endif +#ifndef CONFIG_RELOCATABLE #define SET_IVOR(vector_number, vector_offset) \ li r3,vector_offset@l; \ ori r3,r3,interrupt_base_book3e@l; \ mtspr SPRN_IVOR##vector_number,r3; +#else /* !CONFIG_RELOCATABLE */ +/* In relocatable case the value of the constant expression 'expr' is only + * offset. So instead, we should loads the address of label 'name'. + */ +#define SET_IVOR(vector_number, vector_offset) \ + LOAD_REG_ADDR(r3,interrupt_base_book3e);\ + rlwinm r3,r3,0,15,0; \ + ori r3,r3,vector_offset@l; \ + mtspr SPRN_IVOR##vector_number,r3; +#endif /* CONFIG_RELOCATABLE */ #endif /* _ASM_POWERPC_EXCEPTION_64E_H */ --- linux-3.13.0.orig/arch/powerpc/include/asm/exception-64s.h +++ linux-3.13.0/arch/powerpc/include/asm/exception-64s.h @@ -147,6 +147,14 @@ END_FTR_SECTION_NESTED(ftr,ftr,943) /* + * Set an SPR from a register if the CPU has the given feature + */ +#define OPT_SET_SPR(ra, spr, ftr) \ +BEGIN_FTR_SECTION_NESTED(943) \ + mtspr spr,ra; \ +END_FTR_SECTION_NESTED(ftr,ftr,943) + +/* * Save a register to the PACA if the CPU has the given feature */ #define OPT_SAVE_REG_TO_PACA(offset, ra, ftr) \ @@ -301,9 +309,12 @@ beq 4f; /* if from kernel mode */ \ ACCOUNT_CPU_USER_ENTRY(r9, r10); \ SAVE_PPR(area, r9, r10); \ -4: std r2,GPR2(r1); /* save r2 in stackframe */ \ - SAVE_4GPRS(3, r1); /* save r3 - r6 in stackframe */ \ - SAVE_2GPRS(7, r1); /* save r7, r8 in stackframe */ \ +4: EXCEPTION_PROLOG_COMMON_2(area) \ + EXCEPTION_PROLOG_COMMON_3(n) \ + ACCOUNT_STOLEN_TIME + +/* Save original regs values from save area to stack frame. */ +#define EXCEPTION_PROLOG_COMMON_2(area) \ ld r9,area+EX_R9(r13); /* move r9, r10 to stackframe */ \ ld r10,area+EX_R10(r13); \ std r9,GPR9(r1); \ @@ -318,11 +329,16 @@ ld r10,area+EX_CFAR(r13); \ std r10,ORIG_GPR3(r1); \ END_FTR_SECTION_NESTED(CPU_FTR_CFAR, CPU_FTR_CFAR, 66); \ + GET_CTR(r10, area); \ + std r10,_CTR(r1); + +#define EXCEPTION_PROLOG_COMMON_3(n) \ + std r2,GPR2(r1); /* save r2 in stackframe */ \ + SAVE_4GPRS(3, r1); /* save r3 - r6 in stackframe */ \ + SAVE_2GPRS(7, r1); /* save r7, r8 in stackframe */ \ mflr r9; /* Get LR, later save to stack */ \ ld r2,PACATOC(r13); /* get kernel TOC into r2 */ \ std r9,_LINK(r1); \ - GET_CTR(r10, area); \ - std r10,_CTR(r1); \ lbz r10,PACASOFTIRQEN(r13); \ mfspr r11,SPRN_XER; /* save XER in stackframe */ \ std r10,SOFTE(r1); \ @@ -332,8 +348,7 @@ li r10,0; \ ld r11,exception_marker@toc(r2); \ std r10,RESULT(r1); /* clear regs->result */ \ - std r11,STACK_FRAME_OVERHEAD-16(r1); /* mark the frame */ \ - ACCOUNT_STOLEN_TIME + std r11,STACK_FRAME_OVERHEAD-16(r1); /* mark the frame */ /* * Exception vectors. --- linux-3.13.0.orig/arch/powerpc/include/asm/hugetlb.h +++ linux-3.13.0/arch/powerpc/include/asm/hugetlb.h @@ -127,7 +127,7 @@ unsigned long addr, pte_t *ptep) { #ifdef CONFIG_PPC64 - return __pte(pte_update(mm, addr, ptep, ~0UL, 1)); + return __pte(pte_update(mm, addr, ptep, ~0UL, 0, 1)); #else return __pte(pte_update(ptep, ~0UL, 0)); #endif --- linux-3.13.0.orig/arch/powerpc/include/asm/hvcall.h +++ linux-3.13.0/arch/powerpc/include/asm/hvcall.h @@ -274,6 +274,12 @@ /* Platform specific hcalls, used by KVM */ #define H_RTAS 0xf000 +/* Values for 2nd argument to H_SET_MODE */ +#define H_SET_MODE_RESOURCE_SET_CIABR 1 +#define H_SET_MODE_RESOURCE_SET_DAWR 2 +#define H_SET_MODE_RESOURCE_ADDR_TRANS_MODE 3 +#define H_SET_MODE_RESOURCE_LE 4 + #ifndef __ASSEMBLY__ /** --- linux-3.13.0.orig/arch/powerpc/include/asm/iommu.h +++ linux-3.13.0/arch/powerpc/include/asm/iommu.h @@ -79,6 +79,7 @@ #ifdef CONFIG_IOMMU_API struct iommu_group *it_group; #endif + void (*set_bypass)(struct iommu_table *tbl, bool enable); }; struct scatterlist; --- linux-3.13.0.orig/arch/powerpc/include/asm/kvm_book3s.h +++ linux-3.13.0/arch/powerpc/include/asm/kvm_book3s.h @@ -271,6 +271,29 @@ return vcpu->arch.pc; } +static inline bool kvmppc_need_byteswap(struct kvm_vcpu *vcpu) +{ + return vcpu->arch.shared->msr & MSR_LE; +} + +static inline bool kvmppc_is_bigendian(struct kvm_vcpu *vcpu) +{ + return !kvmppc_need_byteswap(vcpu); +} + +static inline int kvmppc_ld32(struct kvm_vcpu *vcpu, ulong *eaddr, + u32 *ptr, bool data) +{ + int ret; + + ret = kvmppc_ld(vcpu, eaddr, sizeof(u32), ptr, data); + + if (kvmppc_need_byteswap(vcpu)) + *ptr = swab32(*ptr); + + return ret; +} + static inline u32 kvmppc_get_last_inst(struct kvm_vcpu *vcpu) { ulong pc = kvmppc_get_pc(vcpu); @@ -278,7 +301,7 @@ /* Load the instruction manually if it failed to do so in the * exit path */ if (vcpu->arch.last_inst == KVM_INST_FETCH_FAILED) - kvmppc_ld(vcpu, &pc, sizeof(u32), &vcpu->arch.last_inst, false); + kvmppc_ld32(vcpu, &pc, &vcpu->arch.last_inst, false); return vcpu->arch.last_inst; } @@ -295,7 +318,7 @@ /* Load the instruction manually if it failed to do so in the * exit path */ if (vcpu->arch.last_inst == KVM_INST_FETCH_FAILED) - kvmppc_ld(vcpu, &pc, sizeof(u32), &vcpu->arch.last_inst, false); + kvmppc_ld32(vcpu, &pc, &vcpu->arch.last_inst, false); return vcpu->arch.last_inst; } --- linux-3.13.0.orig/arch/powerpc/include/asm/kvm_booke.h +++ linux-3.13.0/arch/powerpc/include/asm/kvm_booke.h @@ -98,6 +98,11 @@ return vcpu->arch.pc; } +static inline bool kvmppc_is_bigendian(struct kvm_vcpu *vcpu) +{ + return 1; +} + static inline ulong kvmppc_get_fault_dar(struct kvm_vcpu *vcpu) { return vcpu->arch.fault_dear; --- linux-3.13.0.orig/arch/powerpc/include/asm/kvm_host.h +++ linux-3.13.0/arch/powerpc/include/asm/kvm_host.h @@ -616,6 +616,7 @@ spinlock_t tbacct_lock; u64 busy_stolen; u64 busy_preempt; + unsigned long intr_msr; #endif }; --- linux-3.13.0.orig/arch/powerpc/include/asm/kvm_ppc.h +++ linux-3.13.0/arch/powerpc/include/asm/kvm_ppc.h @@ -53,13 +53,13 @@ extern void kvmppc_dump_vcpu(struct kvm_vcpu *vcpu); extern int kvmppc_handle_load(struct kvm_run *run, struct kvm_vcpu *vcpu, - unsigned int rt, unsigned int bytes, - int is_bigendian); + unsigned int rt, unsigned int bytes, + int not_reverse); extern int kvmppc_handle_loads(struct kvm_run *run, struct kvm_vcpu *vcpu, - unsigned int rt, unsigned int bytes, - int is_bigendian); + unsigned int rt, unsigned int bytes, + int not_reverse); extern int kvmppc_handle_store(struct kvm_run *run, struct kvm_vcpu *vcpu, - u64 val, unsigned int bytes, int is_bigendian); + u64 val, unsigned int bytes, int not_reverse); extern int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu); --- linux-3.13.0.orig/arch/powerpc/include/asm/machdep.h +++ linux-3.13.0/arch/powerpc/include/asm/machdep.h @@ -57,10 +57,10 @@ void (*hpte_removebolted)(unsigned long ea, int psize, int ssize); void (*flush_hash_range)(unsigned long number, int local); - void (*hugepage_invalidate)(struct mm_struct *mm, + void (*hugepage_invalidate)(unsigned long vsid, + unsigned long addr, unsigned char *hpte_slot_array, - unsigned long addr, int psize); - + int psize, int ssize); /* special for kexec, to be called in real mode, linear mapping is * destroyed as well */ void (*hpte_clear_all)(void); @@ -170,6 +170,9 @@ int (*system_reset_exception)(struct pt_regs *regs); int (*machine_check_exception)(struct pt_regs *regs); + /* Called during machine check exception to retrive fixup address. */ + bool (*mce_check_early_recovery)(struct pt_regs *regs); + /* Motherboard/chipset features. This is a kind of general purpose * hook used to control some machine specific features (like reset * lines, chip power control, etc...). --- linux-3.13.0.orig/arch/powerpc/include/asm/mce.h +++ linux-3.13.0/arch/powerpc/include/asm/mce.h @@ -0,0 +1,198 @@ +/* + * Machine check exception header file. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * Copyright 2013 IBM Corporation + * Author: Mahesh Salgaonkar + */ + +#ifndef __ASM_PPC64_MCE_H__ +#define __ASM_PPC64_MCE_H__ + +#include + +/* + * Machine Check bits on power7 and power8 + */ +#define P7_SRR1_MC_LOADSTORE(srr1) ((srr1) & PPC_BIT(42)) /* P8 too */ + +/* SRR1 bits for machine check (On Power7 and Power8) */ +#define P7_SRR1_MC_IFETCH(srr1) ((srr1) & PPC_BITMASK(43, 45)) /* P8 too */ + +#define P7_SRR1_MC_IFETCH_UE (0x1 << PPC_BITLSHIFT(45)) /* P8 too */ +#define P7_SRR1_MC_IFETCH_SLB_PARITY (0x2 << PPC_BITLSHIFT(45)) /* P8 too */ +#define P7_SRR1_MC_IFETCH_SLB_MULTIHIT (0x3 << PPC_BITLSHIFT(45)) /* P8 too */ +#define P7_SRR1_MC_IFETCH_SLB_BOTH (0x4 << PPC_BITLSHIFT(45)) +#define P7_SRR1_MC_IFETCH_TLB_MULTIHIT (0x5 << PPC_BITLSHIFT(45)) /* P8 too */ +#define P7_SRR1_MC_IFETCH_UE_TLB_RELOAD (0x6 << PPC_BITLSHIFT(45)) /* P8 too */ +#define P7_SRR1_MC_IFETCH_UE_IFU_INTERNAL (0x7 << PPC_BITLSHIFT(45)) + +/* SRR1 bits for machine check (On Power8) */ +#define P8_SRR1_MC_IFETCH_ERAT_MULTIHIT (0x4 << PPC_BITLSHIFT(45)) + +/* DSISR bits for machine check (On Power7 and Power8) */ +#define P7_DSISR_MC_UE (PPC_BIT(48)) /* P8 too */ +#define P7_DSISR_MC_UE_TABLEWALK (PPC_BIT(49)) /* P8 too */ +#define P7_DSISR_MC_ERAT_MULTIHIT (PPC_BIT(52)) /* P8 too */ +#define P7_DSISR_MC_TLB_MULTIHIT_MFTLB (PPC_BIT(53)) /* P8 too */ +#define P7_DSISR_MC_SLB_PARITY_MFSLB (PPC_BIT(55)) /* P8 too */ +#define P7_DSISR_MC_SLB_MULTIHIT (PPC_BIT(56)) /* P8 too */ +#define P7_DSISR_MC_SLB_MULTIHIT_PARITY (PPC_BIT(57)) /* P8 too */ + +/* + * DSISR bits for machine check (Power8) in addition to above. + * Secondary DERAT Multihit + */ +#define P8_DSISR_MC_ERAT_MULTIHIT_SEC (PPC_BIT(54)) + +/* SLB error bits */ +#define P7_DSISR_MC_SLB_ERRORS (P7_DSISR_MC_ERAT_MULTIHIT | \ + P7_DSISR_MC_SLB_PARITY_MFSLB | \ + P7_DSISR_MC_SLB_MULTIHIT | \ + P7_DSISR_MC_SLB_MULTIHIT_PARITY) + +#define P8_DSISR_MC_SLB_ERRORS (P7_DSISR_MC_SLB_ERRORS | \ + P8_DSISR_MC_ERAT_MULTIHIT_SEC) +enum MCE_Version { + MCE_V1 = 1, +}; + +enum MCE_Severity { + MCE_SEV_NO_ERROR = 0, + MCE_SEV_WARNING = 1, + MCE_SEV_ERROR_SYNC = 2, + MCE_SEV_FATAL = 3, +}; + +enum MCE_Disposition { + MCE_DISPOSITION_RECOVERED = 0, + MCE_DISPOSITION_NOT_RECOVERED = 1, +}; + +enum MCE_Initiator { + MCE_INITIATOR_UNKNOWN = 0, + MCE_INITIATOR_CPU = 1, +}; + +enum MCE_ErrorType { + MCE_ERROR_TYPE_UNKNOWN = 0, + MCE_ERROR_TYPE_UE = 1, + MCE_ERROR_TYPE_SLB = 2, + MCE_ERROR_TYPE_ERAT = 3, + MCE_ERROR_TYPE_TLB = 4, +}; + +enum MCE_UeErrorType { + MCE_UE_ERROR_INDETERMINATE = 0, + MCE_UE_ERROR_IFETCH = 1, + MCE_UE_ERROR_PAGE_TABLE_WALK_IFETCH = 2, + MCE_UE_ERROR_LOAD_STORE = 3, + MCE_UE_ERROR_PAGE_TABLE_WALK_LOAD_STORE = 4, +}; + +enum MCE_SlbErrorType { + MCE_SLB_ERROR_INDETERMINATE = 0, + MCE_SLB_ERROR_PARITY = 1, + MCE_SLB_ERROR_MULTIHIT = 2, +}; + +enum MCE_EratErrorType { + MCE_ERAT_ERROR_INDETERMINATE = 0, + MCE_ERAT_ERROR_PARITY = 1, + MCE_ERAT_ERROR_MULTIHIT = 2, +}; + +enum MCE_TlbErrorType { + MCE_TLB_ERROR_INDETERMINATE = 0, + MCE_TLB_ERROR_PARITY = 1, + MCE_TLB_ERROR_MULTIHIT = 2, +}; + +struct machine_check_event { + enum MCE_Version version:8; /* 0x00 */ + uint8_t in_use; /* 0x01 */ + enum MCE_Severity severity:8; /* 0x02 */ + enum MCE_Initiator initiator:8; /* 0x03 */ + enum MCE_ErrorType error_type:8; /* 0x04 */ + enum MCE_Disposition disposition:8; /* 0x05 */ + uint8_t reserved_1[2]; /* 0x06 */ + uint64_t gpr3; /* 0x08 */ + uint64_t srr0; /* 0x10 */ + uint64_t srr1; /* 0x18 */ + union { /* 0x20 */ + struct { + enum MCE_UeErrorType ue_error_type:8; + uint8_t effective_address_provided; + uint8_t physical_address_provided; + uint8_t reserved_1[5]; + uint64_t effective_address; + uint64_t physical_address; + uint8_t reserved_2[8]; + } ue_error; + + struct { + enum MCE_SlbErrorType slb_error_type:8; + uint8_t effective_address_provided; + uint8_t reserved_1[6]; + uint64_t effective_address; + uint8_t reserved_2[16]; + } slb_error; + + struct { + enum MCE_EratErrorType erat_error_type:8; + uint8_t effective_address_provided; + uint8_t reserved_1[6]; + uint64_t effective_address; + uint8_t reserved_2[16]; + } erat_error; + + struct { + enum MCE_TlbErrorType tlb_error_type:8; + uint8_t effective_address_provided; + uint8_t reserved_1[6]; + uint64_t effective_address; + uint8_t reserved_2[16]; + } tlb_error; + } u; +}; + +struct mce_error_info { + enum MCE_ErrorType error_type:8; + union { + enum MCE_UeErrorType ue_error_type:8; + enum MCE_SlbErrorType slb_error_type:8; + enum MCE_EratErrorType erat_error_type:8; + enum MCE_TlbErrorType tlb_error_type:8; + } u; + uint8_t reserved[2]; +}; + +#define MAX_MC_EVT 100 + +/* Release flags for get_mce_event() */ +#define MCE_EVENT_RELEASE true +#define MCE_EVENT_DONTRELEASE false + +extern void save_mce_event(struct pt_regs *regs, long handled, + struct mce_error_info *mce_err, uint64_t nip, + uint64_t addr); +extern int get_mce_event(struct machine_check_event *mce, bool release); +extern void release_mce_event(void); +extern void machine_check_queue_event(void); +extern void machine_check_print_event_info(struct machine_check_event *evt); +extern uint64_t get_mce_fault_addr(struct machine_check_event *evt); + +#endif /* __ASM_PPC64_MCE_H__ */ --- linux-3.13.0.orig/arch/powerpc/include/asm/mmu-hash64.h +++ linux-3.13.0/arch/powerpc/include/asm/mmu-hash64.h @@ -22,6 +22,7 @@ */ #include #include +#include /* * Segment table @@ -496,7 +497,7 @@ */ struct subpage_prot_table { unsigned long maxaddr; /* only addresses < this are protected */ - unsigned int **protptrs[2]; + unsigned int **protptrs[(TASK_SIZE_USER64 >> 43)]; unsigned int *low_prot[4]; }; --- linux-3.13.0.orig/arch/powerpc/include/asm/opal.h +++ linux-3.13.0/arch/powerpc/include/asm/opal.h @@ -33,6 +33,28 @@ u64 rd_loc; /* r11 */ }; +/* + * SG entry + * + * WARNING: The current implementation requires each entry + * to represent a block that is 4k aligned *and* each block + * size except the last one in the list to be as well. + */ +struct opal_sg_entry { + __be64 data; + __be64 length; +}; + +/* SG list */ +struct opal_sg_list { + __be64 length; + __be64 next; + struct opal_sg_entry entry[]; +}; + +/* We calculate number of sg entries based on PAGE_SIZE */ +#define SG_ENTRIES_PER_NODE ((PAGE_SIZE - 16) / sizeof(struct opal_sg_entry)) + extern long opal_query_takeover(u64 *hal_size, u64 *hal_align); extern long opal_do_takeover(struct opal_takeover_args *args); @@ -61,6 +83,8 @@ #define OPAL_INTERNAL_ERROR -11 #define OPAL_BUSY_EVENT -12 #define OPAL_HARDWARE_FROZEN -13 +#define OPAL_WRONG_STATE -14 +#define OPAL_ASYNC_COMPLETION -15 /* API Tokens (in r0) */ #define OPAL_CONSOLE_WRITE 1 @@ -129,9 +153,28 @@ #define OPAL_LPC_READ 67 #define OPAL_LPC_WRITE 68 #define OPAL_RETURN_CPU 69 +#define OPAL_REINIT_CPUS 70 +#define OPAL_ELOG_READ 71 +#define OPAL_ELOG_WRITE 72 +#define OPAL_ELOG_ACK 73 +#define OPAL_ELOG_RESEND 74 +#define OPAL_ELOG_SIZE 75 #define OPAL_FLASH_VALIDATE 76 #define OPAL_FLASH_MANAGE 77 #define OPAL_FLASH_UPDATE 78 +#define OPAL_DUMP_INIT 81 +#define OPAL_DUMP_INFO 82 +#define OPAL_DUMP_READ 83 +#define OPAL_DUMP_ACK 84 +#define OPAL_GET_MSG 85 +#define OPAL_CHECK_ASYNC_COMPLETION 86 +#define OPAL_SYNC_HOST_REBOOT 87 +#define OPAL_SENSOR_READ 88 +#define OPAL_GET_PARAM 89 +#define OPAL_SET_PARAM 90 +#define OPAL_DUMP_RESEND 91 +#define OPAL_SYNC_HOST_REBOOT 87 +#define OPAL_DUMP_INFO2 94 #ifndef __ASSEMBLY__ @@ -211,7 +254,19 @@ OPAL_EVENT_ERROR_LOG = 0x40, OPAL_EVENT_EPOW = 0x80, OPAL_EVENT_LED_STATUS = 0x100, - OPAL_EVENT_PCI_ERROR = 0x200 + OPAL_EVENT_PCI_ERROR = 0x200, + OPAL_EVENT_DUMP_AVAIL = 0x400, + OPAL_EVENT_MSG_PENDING = 0x800, +}; + +enum OpalMessageType { + OPAL_MSG_ASYNC_COMP = 0, /* params[0] = token, params[1] = rc, + * additional params function-specific + */ + OPAL_MSG_MEM_ERR, + OPAL_MSG_EPOW, + OPAL_MSG_SHUTDOWN, + OPAL_MSG_TYPE_MAX, }; /* Machine check related definitions */ @@ -356,6 +411,12 @@ OPAL_LPC_FW = 2, }; +struct opal_msg { + uint32_t msg_type; + uint32_t reserved; + uint64_t params[8]; +}; + struct opal_machine_check_event { enum OpalMCE_Version version:8; /* 0x00 */ uint8_t in_use; /* 0x01 */ @@ -472,9 +533,9 @@ }; struct OpalIoPhbErrorCommon { - uint32_t version; - uint32_t ioType; - uint32_t len; + __be32 version; + __be32 ioType; + __be32 len; }; struct OpalIoP7IOCPhbErrorData { @@ -539,64 +600,69 @@ struct OpalIoPhb3ErrorData { struct OpalIoPhbErrorCommon common; - uint32_t brdgCtl; + __be32 brdgCtl; /* PHB3 UTL regs */ - uint32_t portStatusReg; - uint32_t rootCmplxStatus; - uint32_t busAgentStatus; + __be32 portStatusReg; + __be32 rootCmplxStatus; + __be32 busAgentStatus; /* PHB3 cfg regs */ - uint32_t deviceStatus; - uint32_t slotStatus; - uint32_t linkStatus; - uint32_t devCmdStatus; - uint32_t devSecStatus; + __be32 deviceStatus; + __be32 slotStatus; + __be32 linkStatus; + __be32 devCmdStatus; + __be32 devSecStatus; /* cfg AER regs */ - uint32_t rootErrorStatus; - uint32_t uncorrErrorStatus; - uint32_t corrErrorStatus; - uint32_t tlpHdr1; - uint32_t tlpHdr2; - uint32_t tlpHdr3; - uint32_t tlpHdr4; - uint32_t sourceId; + __be32 rootErrorStatus; + __be32 uncorrErrorStatus; + __be32 corrErrorStatus; + __be32 tlpHdr1; + __be32 tlpHdr2; + __be32 tlpHdr3; + __be32 tlpHdr4; + __be32 sourceId; - uint32_t rsv3; + __be32 rsv3; /* Record data about the call to allocate a buffer */ - uint64_t errorClass; - uint64_t correlator; + __be64 errorClass; + __be64 correlator; - uint64_t nFir; /* 000 */ - uint64_t nFirMask; /* 003 */ - uint64_t nFirWOF; /* 008 */ + __be64 nFir; /* 000 */ + __be64 nFirMask; /* 003 */ + __be64 nFirWOF; /* 008 */ /* PHB3 MMIO Error Regs */ - uint64_t phbPlssr; /* 120 */ - uint64_t phbCsr; /* 110 */ - uint64_t lemFir; /* C00 */ - uint64_t lemErrorMask; /* C18 */ - uint64_t lemWOF; /* C40 */ - uint64_t phbErrorStatus; /* C80 */ - uint64_t phbFirstErrorStatus; /* C88 */ - uint64_t phbErrorLog0; /* CC0 */ - uint64_t phbErrorLog1; /* CC8 */ - uint64_t mmioErrorStatus; /* D00 */ - uint64_t mmioFirstErrorStatus; /* D08 */ - uint64_t mmioErrorLog0; /* D40 */ - uint64_t mmioErrorLog1; /* D48 */ - uint64_t dma0ErrorStatus; /* D80 */ - uint64_t dma0FirstErrorStatus; /* D88 */ - uint64_t dma0ErrorLog0; /* DC0 */ - uint64_t dma0ErrorLog1; /* DC8 */ - uint64_t dma1ErrorStatus; /* E00 */ - uint64_t dma1FirstErrorStatus; /* E08 */ - uint64_t dma1ErrorLog0; /* E40 */ - uint64_t dma1ErrorLog1; /* E48 */ - uint64_t pestA[OPAL_PHB3_NUM_PEST_REGS]; - uint64_t pestB[OPAL_PHB3_NUM_PEST_REGS]; + __be64 phbPlssr; /* 120 */ + __be64 phbCsr; /* 110 */ + __be64 lemFir; /* C00 */ + __be64 lemErrorMask; /* C18 */ + __be64 lemWOF; /* C40 */ + __be64 phbErrorStatus; /* C80 */ + __be64 phbFirstErrorStatus; /* C88 */ + __be64 phbErrorLog0; /* CC0 */ + __be64 phbErrorLog1; /* CC8 */ + __be64 mmioErrorStatus; /* D00 */ + __be64 mmioFirstErrorStatus; /* D08 */ + __be64 mmioErrorLog0; /* D40 */ + __be64 mmioErrorLog1; /* D48 */ + __be64 dma0ErrorStatus; /* D80 */ + __be64 dma0FirstErrorStatus; /* D88 */ + __be64 dma0ErrorLog0; /* DC0 */ + __be64 dma0ErrorLog1; /* DC8 */ + __be64 dma1ErrorStatus; /* E00 */ + __be64 dma1FirstErrorStatus; /* E08 */ + __be64 dma1ErrorLog0; /* E40 */ + __be64 dma1ErrorLog1; /* E48 */ + __be64 pestA[OPAL_PHB3_NUM_PEST_REGS]; + __be64 pestB[OPAL_PHB3_NUM_PEST_REGS]; +}; + +enum { + OPAL_REINIT_CPUS_HILE_BE = (1 << 0), + OPAL_REINIT_CPUS_HILE_LE = (1 << 1), }; typedef struct oppanel_line { @@ -607,6 +673,9 @@ /* /sys/firmware/opal */ extern struct kobject *opal_kobj; +/* /ibm,opal */ +extern struct device_node *opal_node; + /* API functions */ int64_t opal_console_write(int64_t term_number, __be64 *length, const uint8_t *buffer); @@ -715,24 +784,49 @@ int64_t opal_set_slot_led_status(uint64_t phb_id, uint64_t slot_id, uint8_t led_type, uint8_t led_action); int64_t opal_get_epow_status(__be64 *status); int64_t opal_set_system_attention_led(uint8_t led_action); -int64_t opal_pci_next_error(uint64_t phb_id, uint64_t *first_frozen_pe, - uint16_t *pci_error_type, uint16_t *severity); +int64_t opal_pci_next_error(uint64_t phb_id, __be64 *first_frozen_pe, + __be16 *pci_error_type, __be16 *severity); int64_t opal_pci_poll(uint64_t phb_id); int64_t opal_return_cpu(void); +int64_t opal_reinit_cpus(uint64_t flags); -int64_t opal_xscom_read(uint32_t gcid, uint32_t pcb_addr, __be64 *val); -int64_t opal_xscom_write(uint32_t gcid, uint32_t pcb_addr, uint64_t val); +int64_t opal_xscom_read(uint32_t gcid, uint64_t pcb_addr, __be64 *val); +int64_t opal_xscom_write(uint32_t gcid, uint64_t pcb_addr, uint64_t val); int64_t opal_lpc_write(uint32_t chip_id, enum OpalLPCAddressType addr_type, uint32_t addr, uint32_t data, uint32_t sz); int64_t opal_lpc_read(uint32_t chip_id, enum OpalLPCAddressType addr_type, uint32_t addr, __be32 *data, uint32_t sz); + +int64_t opal_read_elog(uint64_t buffer, uint64_t size, uint64_t log_id); +int64_t opal_get_elog_size(__be64 *log_id, __be64 *size, __be64 *elog_type); +int64_t opal_write_elog(uint64_t buffer, uint64_t size, uint64_t offset); +int64_t opal_send_ack_elog(uint64_t log_id); +void opal_resend_pending_logs(void); + int64_t opal_validate_flash(uint64_t buffer, uint32_t *size, uint32_t *result); int64_t opal_manage_flash(uint8_t op); int64_t opal_update_flash(uint64_t blk_list); +int64_t opal_dump_init(uint8_t dump_type); +int64_t opal_dump_info(__be32 *dump_id, __be32 *dump_size); +int64_t opal_dump_info2(__be32 *dump_id, __be32 *dump_size, __be32 *dump_type); +int64_t opal_dump_read(uint32_t dump_id, uint64_t buffer); +int64_t opal_dump_ack(uint32_t dump_id); +int64_t opal_dump_resend_notification(void); + +int64_t opal_get_msg(uint64_t buffer, size_t size); +int64_t opal_check_completion(uint64_t buffer, size_t size, uint64_t token); +int64_t opal_sync_host_reboot(void); +int64_t opal_get_param(uint64_t token, uint32_t param_id, uint64_t buffer, + size_t length); +int64_t opal_set_param(uint64_t token, uint32_t param_id, uint64_t buffer, + size_t length); +int64_t opal_sensor_read(uint32_t sensor_hndl, int token, __be32 *sensor_data); /* Internal functions */ extern int early_init_dt_scan_opal(unsigned long node, const char *uname, int depth, void *data); +extern int early_init_dt_scan_recoverable_ranges(unsigned long node, + const char *uname, int depth, void *data); extern int opal_get_chars(uint32_t vtermno, char *buf, int count); extern int opal_put_chars(uint32_t vtermno, const char *buf, int total_len); @@ -744,6 +838,8 @@ int depth, void *data); extern int opal_notifier_register(struct notifier_block *nb); +extern int opal_message_notifier_register(enum OpalMessageType msg_type, + struct notifier_block *nb); extern void opal_notifier_enable(void); extern void opal_notifier_disable(void); extern void opal_notifier_update_evt(uint64_t evt_mask, uint64_t evt_val); @@ -751,6 +847,13 @@ extern int opal_get_chars(uint32_t vtermno, char *buf, int count); extern int opal_put_chars(uint32_t vtermno, const char *buf, int total_len); +extern int __opal_async_get_token(void); +extern int opal_async_get_token_interruptible(void); +extern int __opal_async_release_token(int token); +extern int opal_async_release_token(int token); +extern int opal_async_wait_response(uint64_t token, struct opal_msg *msg); +extern int opal_get_sensor_data(u32 sensor_hndl, u32 *sensor_data); + extern void hvc_opal_init_early(void); struct rtc_time; @@ -759,13 +862,22 @@ extern unsigned long opal_get_boot_time(void); extern void opal_nvram_init(void); extern void opal_flash_init(void); +extern void opal_flash_term_callback(void); +extern int opal_elog_init(void); +extern void opal_platform_dump_init(void); +extern void opal_msglog_init(void); extern int opal_machine_check(struct pt_regs *regs); +extern bool opal_mce_check_early_recovery(struct pt_regs *regs); extern void opal_shutdown(void); extern void opal_lpc_init(void); +struct opal_sg_list *opal_vmalloc_to_sg_list(void *vmalloc_addr, + unsigned long vmalloc_size); +void opal_free_sg_list(struct opal_sg_list *sg); + #endif /* __ASSEMBLY__ */ #endif /* __OPAL_H */ --- linux-3.13.0.orig/arch/powerpc/include/asm/paca.h +++ linux-3.13.0/arch/powerpc/include/asm/paca.h @@ -152,6 +152,15 @@ */ struct opal_machine_check_event *opal_mc_evt; #endif +#ifdef CONFIG_PPC_BOOK3S_64 + /* Exclusive emergency stack pointer for machine check exception. */ + void *mc_emergency_sp; + /* + * Flag to check whether we are in machine check early handler + * and already using emergency stack. + */ + u16 in_mce; +#endif /* Stuff for accurate time accounting */ u64 user_time; /* accumulated usermode TB ticks */ --- linux-3.13.0.orig/arch/powerpc/include/asm/page.h +++ linux-3.13.0/arch/powerpc/include/asm/page.h @@ -112,6 +112,8 @@ /* See Description below for VIRT_PHYS_OFFSET */ #ifdef CONFIG_RELOCATABLE_PPC32 #define VIRT_PHYS_OFFSET virt_phys_offset +#elif defined(CONFIG_PPC_BOOK3E_64) +#define VIRT_PHYS_OFFSET (KERNELBASE - MEMORY_START) #else #define VIRT_PHYS_OFFSET (KERNELBASE - PHYSICAL_START) #endif --- linux-3.13.0.orig/arch/powerpc/include/asm/perf_event_server.h +++ linux-3.13.0/arch/powerpc/include/asm/perf_event_server.h @@ -14,6 +14,7 @@ #include #include +/* Update perf_event_print_debug() if this changes */ #define MAX_HWEVENTS 8 #define MAX_EVENT_ALTERNATIVES 8 #define MAX_LIMITED_HWCOUNTERS 2 @@ -60,8 +61,7 @@ #define PPMU_SIAR_VALID 0x00000010 /* Processor has SIAR Valid bit */ #define PPMU_HAS_SSLOT 0x00000020 /* Has sampled slot in MMCRA */ #define PPMU_HAS_SIER 0x00000040 /* Has SIER */ -#define PPMU_BHRB 0x00000080 /* has BHRB feature enabled */ -#define PPMU_EBB 0x00000100 /* supports event based branch */ +#define PPMU_ARCH_207S 0x00000080 /* PMC is architecture v2.07S */ /* * Values for flags to get_alternatives() --- linux-3.13.0.orig/arch/powerpc/include/asm/pgtable-ppc64.h +++ linux-3.13.0/arch/powerpc/include/asm/pgtable-ppc64.h @@ -195,6 +195,7 @@ static inline unsigned long pte_update(struct mm_struct *mm, unsigned long addr, pte_t *ptep, unsigned long clr, + unsigned long set, int huge) { #ifdef PTE_ATOMIC_UPDATES @@ -205,14 +206,15 @@ andi. %1,%0,%6\n\ bne- 1b \n\ andc %1,%0,%4 \n\ + or %1,%1,%7\n\ stdcx. %1,0,%3 \n\ bne- 1b" : "=&r" (old), "=&r" (tmp), "=m" (*ptep) - : "r" (ptep), "r" (clr), "m" (*ptep), "i" (_PAGE_BUSY) + : "r" (ptep), "r" (clr), "m" (*ptep), "i" (_PAGE_BUSY), "r" (set) : "cc" ); #else unsigned long old = pte_val(*ptep); - *ptep = __pte(old & ~clr); + *ptep = __pte((old & ~clr) | set); #endif /* huge pages use the old page table lock */ if (!huge) @@ -231,9 +233,9 @@ { unsigned long old; - if ((pte_val(*ptep) & (_PAGE_ACCESSED | _PAGE_HASHPTE)) == 0) + if ((pte_val(*ptep) & (_PAGE_ACCESSED | _PAGE_HASHPTE)) == 0) return 0; - old = pte_update(mm, addr, ptep, _PAGE_ACCESSED, 0); + old = pte_update(mm, addr, ptep, _PAGE_ACCESSED, 0, 0); return (old & _PAGE_ACCESSED) != 0; } #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG @@ -252,7 +254,7 @@ if ((pte_val(*ptep) & _PAGE_RW) == 0) return; - pte_update(mm, addr, ptep, _PAGE_RW, 0); + pte_update(mm, addr, ptep, _PAGE_RW, 0, 0); } static inline void huge_ptep_set_wrprotect(struct mm_struct *mm, @@ -261,7 +263,7 @@ if ((pte_val(*ptep) & _PAGE_RW) == 0) return; - pte_update(mm, addr, ptep, _PAGE_RW, 1); + pte_update(mm, addr, ptep, _PAGE_RW, 0, 1); } /* @@ -284,14 +286,14 @@ static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) { - unsigned long old = pte_update(mm, addr, ptep, ~0UL, 0); + unsigned long old = pte_update(mm, addr, ptep, ~0UL, 0, 0); return __pte(old); } static inline void pte_clear(struct mm_struct *mm, unsigned long addr, pte_t * ptep) { - pte_update(mm, addr, ptep, ~0UL, 0); + pte_update(mm, addr, ptep, ~0UL, 0, 0); } @@ -411,7 +413,7 @@ } extern void hpte_do_hugepage_flush(struct mm_struct *mm, unsigned long addr, - pmd_t *pmdp); + pmd_t *pmdp, unsigned long old_pmd); #ifdef CONFIG_TRANSPARENT_HUGEPAGE extern pmd_t pfn_pmd(unsigned long pfn, pgprot_t pgprot); extern pmd_t mk_pmd(struct page *page, pgprot_t pgprot); @@ -506,7 +508,9 @@ extern unsigned long pmd_hugepage_update(struct mm_struct *mm, unsigned long addr, - pmd_t *pmdp, unsigned long clr); + pmd_t *pmdp, + unsigned long clr, + unsigned long set); static inline int __pmdp_test_and_clear_young(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp) @@ -515,7 +519,7 @@ if ((pmd_val(*pmdp) & (_PAGE_ACCESSED | _PAGE_HASHPTE)) == 0) return 0; - old = pmd_hugepage_update(mm, addr, pmdp, _PAGE_ACCESSED); + old = pmd_hugepage_update(mm, addr, pmdp, _PAGE_ACCESSED, 0); return ((old & _PAGE_ACCESSED) != 0); } @@ -542,7 +546,7 @@ if ((pmd_val(*pmdp) & _PAGE_RW) == 0) return; - pmd_hugepage_update(mm, addr, pmdp, _PAGE_RW); + pmd_hugepage_update(mm, addr, pmdp, _PAGE_RW, 0); } #define __HAVE_ARCH_PMDP_SPLITTING_FLUSH @@ -558,5 +562,19 @@ #define __HAVE_ARCH_PMDP_INVALIDATE extern void pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp); + +#define pmd_move_must_withdraw pmd_move_must_withdraw +struct spinlock; +static inline int pmd_move_must_withdraw(struct spinlock *new_pmd_ptl, + struct spinlock *old_pmd_ptl) +{ + /* + * Archs like ppc64 use pgtable to store per pmd + * specific information. So when we switch the pmd, + * we should also withdraw and deposit the pgtable + */ + return true; +} + #endif /* __ASSEMBLY__ */ #endif /* _ASM_POWERPC_PGTABLE_PPC64_H_ */ --- linux-3.13.0.orig/arch/powerpc/include/asm/ppc_asm.h +++ linux-3.13.0/arch/powerpc/include/asm/ppc_asm.h @@ -306,11 +306,16 @@ * ld rY,ADDROFF(name)(rX) */ #ifdef __powerpc64__ +#ifdef HAVE_AS_ATHIGH +#define __AS_ATHIGH high +#else +#define __AS_ATHIGH h +#endif #define LOAD_REG_IMMEDIATE(reg,expr) \ lis reg,(expr)@highest; \ ori reg,reg,(expr)@higher; \ rldicr reg,reg,32,31; \ - oris reg,reg,(expr)@h; \ + oris reg,reg,(expr)@__AS_ATHIGH; \ ori reg,reg,(expr)@l; #define LOAD_REG_ADDR(reg,name) \ --- linux-3.13.0.orig/arch/powerpc/include/asm/processor.h +++ linux-3.13.0/arch/powerpc/include/asm/processor.h @@ -373,6 +373,8 @@ extern int get_unalign_ctl(struct task_struct *tsk, unsigned long adr); extern int set_unalign_ctl(struct task_struct *tsk, unsigned int val); +extern void fp_enable(void); +extern void vec_enable(void); extern void load_fp_state(struct thread_fp_state *fp); extern void store_fp_state(struct thread_fp_state *fp); extern void load_vr_state(struct thread_vr_state *vr); --- linux-3.13.0.orig/arch/powerpc/include/asm/pte-hash64-64k.h +++ linux-3.13.0/arch/powerpc/include/asm/pte-hash64-64k.h @@ -46,11 +46,31 @@ * in order to deal with 64K made of 4K HW pages. Thus we override the * generic accessors and iterators here */ -#define __real_pte(e,p) ((real_pte_t) { \ - (e), (pte_val(e) & _PAGE_COMBO) ? \ - (pte_val(*((p) + PTRS_PER_PTE))) : 0 }) -#define __rpte_to_hidx(r,index) ((pte_val((r).pte) & _PAGE_COMBO) ? \ - (((r).hidx >> ((index)<<2)) & 0xf) : ((pte_val((r).pte) >> 12) & 0xf)) +#define __real_pte __real_pte +static inline real_pte_t __real_pte(pte_t pte, pte_t *ptep) +{ + real_pte_t rpte; + + rpte.pte = pte; + rpte.hidx = 0; + if (pte_val(pte) & _PAGE_COMBO) { + /* + * Make sure we order the hidx load against the _PAGE_COMBO + * check. The store side ordering is done in __hash_page_4K + */ + smp_rmb(); + rpte.hidx = pte_val(*((ptep) + PTRS_PER_PTE)); + } + return rpte; +} + +static inline unsigned long __rpte_to_hidx(real_pte_t rpte, unsigned long index) +{ + if ((pte_val(rpte.pte) & _PAGE_COMBO)) + return (rpte.hidx >> (index<<2)) & 0xf; + return (pte_val(rpte.pte) >> 12) & 0xf; +} + #define __rpte_to_pte(r) ((r).pte) #define __rpte_sub_valid(rpte, index) \ (pte_val(rpte.pte) & (_PAGE_HPTE_SUB0 >> (index))) --- linux-3.13.0.orig/arch/powerpc/include/asm/ptrace.h +++ linux-3.13.0/arch/powerpc/include/asm/ptrace.h @@ -28,11 +28,23 @@ #ifdef __powerpc64__ +/* + * Size of redzone that userspace is allowed to use below the stack + * pointer. This is 288 in the 64-bit big-endian ELF ABI, and 512 in + * the new ELFv2 little-endian ABI, so we allow the larger amount. + * + * For kernel code we allow a 288-byte redzone, in order to conserve + * kernel stack space; gcc currently only uses 288 bytes, and will + * hopefully allow explicit control of the redzone size in future. + */ +#define USER_REDZONE_SIZE 512 +#define KERNEL_REDZONE_SIZE 288 + #define STACK_FRAME_OVERHEAD 112 /* size of minimum stack frame */ #define STACK_FRAME_LR_SAVE 2 /* Location of LR in stack frame */ #define STACK_FRAME_REGS_MARKER ASM_CONST(0x7265677368657265) #define STACK_INT_FRAME_SIZE (sizeof(struct pt_regs) + \ - STACK_FRAME_OVERHEAD + 288) + STACK_FRAME_OVERHEAD + KERNEL_REDZONE_SIZE) #define STACK_FRAME_MARKER 12 /* Size of dummy stack frame allocated when calling signal handler. */ @@ -41,6 +53,8 @@ #else /* __powerpc64__ */ +#define USER_REDZONE_SIZE 0 +#define KERNEL_REDZONE_SIZE 0 #define STACK_FRAME_OVERHEAD 16 /* size of minimum stack frame */ #define STACK_FRAME_LR_SAVE 1 /* Location of LR in stack frame */ #define STACK_FRAME_REGS_MARKER ASM_CONST(0x72656773) --- linux-3.13.0.orig/arch/powerpc/include/asm/reg.h +++ linux-3.13.0/arch/powerpc/include/asm/reg.h @@ -118,8 +118,10 @@ #define __MSR (MSR_ME | MSR_RI | MSR_IR | MSR_DR | MSR_ISF |MSR_HV) #ifdef __BIG_ENDIAN__ #define MSR_ __MSR +#define MSR_IDLE (MSR_ME | MSR_SF | MSR_HV) #else #define MSR_ (__MSR | MSR_LE) +#define MSR_IDLE (MSR_ME | MSR_SF | MSR_HV | MSR_LE) #endif #define MSR_KERNEL (MSR_ | MSR_64BIT) #define MSR_USER32 (MSR_ | MSR_PR | MSR_EE) @@ -213,6 +215,7 @@ #define SPRN_ACOP 0x1F /* Available Coprocessor Register */ #define SPRN_TFIAR 0x81 /* Transaction Failure Inst Addr */ #define SPRN_TEXASR 0x82 /* Transaction EXception & Summary */ +#define TEXASR_FS __MASK(63-36) /* Transaction Failure Summary */ #define SPRN_TEXASRU 0x83 /* '' '' '' Upper 32 */ #define SPRN_TFHAR 0x80 /* Transaction Failure Handler Addr */ #define SPRN_CTRLF 0x088 @@ -260,6 +263,10 @@ #define SPRN_HRMOR 0x139 /* Real mode offset register */ #define SPRN_HSRR0 0x13A /* Hypervisor Save/Restore 0 */ #define SPRN_HSRR1 0x13B /* Hypervisor Save/Restore 1 */ +#define SPRN_PMICR 0x354 /* Power Management Idle Control Reg */ +#define SPRN_PMSR 0x355 /* Power Management Status Reg */ +#define SPRN_PMCR 0x374 /* Power Management Control Register */ + /* HFSCR and FSCR bit numbers are the same */ #define FSCR_TAR_LG 8 /* Enable Target Address Register */ #define FSCR_EBB_LG 7 /* Enable Event Based Branching */ @@ -643,12 +650,14 @@ #define MMCR0_PMXE 0x04000000UL /* performance monitor exception enable */ #define MMCR0_FCECE 0x02000000UL /* freeze ctrs on enabled cond or event */ #define MMCR0_TBEE 0x00400000UL /* time base exception enable */ +#define MMCR0_BHRBA 0x00200000UL /* BHRB Access allowed in userspace */ #define MMCR0_EBE 0x00100000UL /* Event based branch enable */ #define MMCR0_PMCC 0x000c0000UL /* PMC control */ #define MMCR0_PMCC_U6 0x00080000UL /* PMC1-6 are R/W by user (PR) */ #define MMCR0_PMC1CE 0x00008000UL /* PMC1 count enable*/ #define MMCR0_PMCjCE 0x00004000UL /* PMCj count enable*/ #define MMCR0_TRIGGER 0x00002000UL /* TRIGGER enable */ +#define MMCR0_PMAO_SYNC 0x00000800UL /* PMU interrupt is synchronous */ #define MMCR0_PMAO 0x00000080UL /* performance monitor alert has occurred, set to 0 after handling exception */ #define MMCR0_SHRFC 0x00000040UL /* SHRre freeze conditions between threads */ #define MMCR0_FC56 0x00000010UL /* freeze counters 5 and 6 */ @@ -682,6 +691,7 @@ #define SPRN_EBBHR 804 /* Event based branch handler register */ #define SPRN_EBBRR 805 /* Event based branch return register */ #define SPRN_BESCR 806 /* Branch event status and control register */ +#define BESCR_GE 0x8000000000000000ULL /* Global Enable */ #define SPRN_PMC1 787 #define SPRN_PMC2 788 --- linux-3.13.0.orig/arch/powerpc/include/asm/rtas.h +++ linux-3.13.0/arch/powerpc/include/asm/rtas.h @@ -150,19 +150,53 @@ #define RTAS_VECTOR_EXTERNAL_INTERRUPT 0x500 struct rtas_error_log { - unsigned long version:8; /* Architectural version */ - unsigned long severity:3; /* Severity level of error */ - unsigned long disposition:2; /* Degree of recovery */ - unsigned long extended:1; /* extended log present? */ - unsigned long /* reserved */ :2; /* Reserved for future use */ - unsigned long initiator:4; /* Initiator of event */ - unsigned long target:4; /* Target of failed operation */ - unsigned long type:8; /* General event or error*/ - unsigned long extended_log_length:32; /* length in bytes */ - unsigned char buffer[1]; /* Start of extended log */ + /* Byte 0 */ + uint8_t byte0; /* Architectural version */ + + /* Byte 1 */ + uint8_t byte1; + /* XXXXXXXX + * XXX 3: Severity level of error + * XX 2: Degree of recovery + * X 1: Extended log present? + * XX 2: Reserved + */ + + /* Byte 2 */ + uint8_t byte2; + /* XXXXXXXX + * XXXX 4: Initiator of event + * XXXX 4: Target of failed operation + */ + uint8_t byte3; /* General event or error*/ + __be32 extended_log_length; /* length in bytes */ + unsigned char buffer[1]; /* Start of extended log */ /* Variable length. */ }; +static inline uint8_t rtas_error_severity(const struct rtas_error_log *elog) +{ + return (elog->byte1 & 0xE0) >> 5; +} + +static inline uint8_t rtas_error_disposition(const struct rtas_error_log *elog) +{ + return (elog->byte1 & 0x18) >> 3; +} + +static inline uint8_t rtas_error_extended(const struct rtas_error_log *elog) +{ + return (elog->byte1 & 0x04) >> 2; +} + +#define rtas_error_type(x) ((x)->byte3) + +static inline +uint32_t rtas_error_extended_log_length(const struct rtas_error_log *elog) +{ + return be32_to_cpu(elog->extended_log_length); +} + #define RTAS_V6EXT_LOG_FORMAT_EVENT_LOG 14 #define RTAS_V6EXT_COMPANY_ID_IBM (('I' << 24) | ('B' << 16) | ('M' << 8)) @@ -172,32 +206,35 @@ */ struct rtas_ext_event_log_v6 { /* Byte 0 */ - uint32_t log_valid:1; /* 1:Log valid */ - uint32_t unrecoverable_error:1; /* 1:Unrecoverable error */ - uint32_t recoverable_error:1; /* 1:recoverable (correctable */ - /* or successfully retried) */ - uint32_t degraded_operation:1; /* 1:Unrecoverable err, bypassed*/ - /* - degraded operation (e.g. */ - /* CPU or mem taken off-line) */ - uint32_t predictive_error:1; - uint32_t new_log:1; /* 1:"New" log (Always 1 for */ - /* data returned from RTAS */ - uint32_t big_endian:1; /* 1: Big endian */ - uint32_t :1; /* reserved */ + uint8_t byte0; + /* XXXXXXXX + * X 1: Log valid + * X 1: Unrecoverable error + * X 1: Recoverable (correctable or successfully retried) + * X 1: Bypassed unrecoverable error (degraded operation) + * X 1: Predictive error + * X 1: "New" log (always 1 for data returned from RTAS) + * X 1: Big Endian + * X 1: Reserved + */ + /* Byte 1 */ - uint32_t :8; /* reserved */ + uint8_t byte1; /* reserved */ + /* Byte 2 */ - uint32_t powerpc_format:1; /* Set to 1 (indicating log is */ - /* in PowerPC format */ - uint32_t :3; /* reserved */ - uint32_t log_format:4; /* Log format indicator. Define */ - /* format used for byte 12-2047 */ + uint8_t byte2; + /* XXXXXXXX + * X 1: Set to 1 (indicating log is in PowerPC format) + * XXX 3: Reserved + * XXXX 4: Log format used for bytes 12-2047 + */ + /* Byte 3 */ - uint32_t :8; /* reserved */ + uint8_t byte3; /* reserved */ /* Byte 4-11 */ uint8_t reserved[8]; /* reserved */ /* Byte 12-15 */ - uint32_t company_id; /* Company ID of the company */ + __be32 company_id; /* Company ID of the company */ /* that defines the format for */ /* the vendor specific log type */ /* Byte 16-end of log */ @@ -205,6 +242,18 @@ /* Variable length. */ }; +static +inline uint8_t rtas_ext_event_log_format(struct rtas_ext_event_log_v6 *ext_log) +{ + return ext_log->byte2 & 0x0F; +} + +static +inline uint32_t rtas_ext_event_company_id(struct rtas_ext_event_log_v6 *ext_log) +{ + return be32_to_cpu(ext_log->company_id); +} + /* pSeries event log format */ /* Two bytes ASCII section IDs */ @@ -227,14 +276,26 @@ /* Vendor specific Platform Event Log Format, Version 6, section header */ struct pseries_errorlog { - uint16_t id; /* 0x00 2-byte ASCII section ID */ - uint16_t length; /* 0x02 Section length in bytes */ + __be16 id; /* 0x00 2-byte ASCII section ID */ + __be16 length; /* 0x02 Section length in bytes */ uint8_t version; /* 0x04 Section version */ uint8_t subtype; /* 0x05 Section subtype */ - uint16_t creator_component; /* 0x06 Creator component ID */ + __be16 creator_component; /* 0x06 Creator component ID */ uint8_t data[]; /* 0x08 Start of section data */ }; +static +inline uint16_t pseries_errorlog_id(struct pseries_errorlog *sect) +{ + return be16_to_cpu(sect->id); +} + +static +inline uint16_t pseries_errorlog_length(struct pseries_errorlog *sect) +{ + return be16_to_cpu(sect->length); +} + struct pseries_errorlog *get_pseries_errorlog(struct rtas_error_log *log, uint16_t section_id); --- linux-3.13.0.orig/arch/powerpc/include/asm/sections.h +++ linux-3.13.0/arch/powerpc/include/asm/sections.h @@ -8,6 +8,7 @@ #ifdef __powerpc64__ +extern char __start_interrupts[]; extern char __end_interrupts[]; extern char __prom_init_toc_start[]; @@ -21,6 +22,17 @@ return 0; } +static inline int overlaps_interrupt_vector_text(unsigned long start, + unsigned long end) +{ + unsigned long real_start, real_end; + real_start = __start_interrupts - _stext; + real_end = __end_interrupts - _stext; + + return start < (unsigned long)__va(real_end) && + (unsigned long)__va(real_start) < end; +} + static inline int overlaps_kernel_text(unsigned long start, unsigned long end) { return start < (unsigned long)__init_end && --- linux-3.13.0.orig/arch/powerpc/include/asm/smp.h +++ linux-3.13.0/arch/powerpc/include/asm/smp.h @@ -207,6 +207,7 @@ extern unsigned long __secondary_hold_spinloop; extern unsigned long __secondary_hold_acknowledge; extern char __secondary_hold; +extern unsigned long __run_at_kexec; extern void __early_start(void); #endif /* __ASSEMBLY__ */ --- linux-3.13.0.orig/arch/powerpc/include/asm/switch_to.h +++ linux-3.13.0/arch/powerpc/include/asm/switch_to.h @@ -16,13 +16,15 @@ extern struct task_struct *_switch(struct thread_struct *prev, struct thread_struct *next); #ifdef CONFIG_PPC_BOOK3S_64 -static inline void save_tar(struct thread_struct *prev) +static inline void save_early_sprs(struct thread_struct *prev) { if (cpu_has_feature(CPU_FTR_ARCH_207S)) prev->tar = mfspr(SPRN_TAR); + if (cpu_has_feature(CPU_FTR_DSCR)) + prev->dscr = mfspr(SPRN_DSCR); } #else -static inline void save_tar(struct thread_struct *prev) {} +static inline void save_early_sprs(struct thread_struct *prev) {} #endif extern void load_up_fpu(void); @@ -86,6 +88,8 @@ { #ifdef CONFIG_PPC_BOOK3S_64 /* EBB perf events are not inherited, so clear all EBB state. */ + t->thread.ebbrr = 0; + t->thread.ebbhr = 0; t->thread.bescr = 0; t->thread.mmcr2 = 0; t->thread.mmcr0 = 0; --- linux-3.13.0.orig/arch/powerpc/include/asm/systbl.h +++ linux-3.13.0/arch/powerpc/include/asm/systbl.h @@ -190,7 +190,7 @@ SYSCALL_SPU(capget) SYSCALL_SPU(capset) COMPAT_SYS(sigaltstack) -COMPAT_SYS_SPU(sendfile) +SYSX_SPU(sys_sendfile64,compat_sys_sendfile,sys_sendfile) SYSCALL(ni_syscall) SYSCALL(ni_syscall) PPC_SYS(vfork) --- linux-3.13.0.orig/arch/powerpc/include/asm/thread_info.h +++ linux-3.13.0/arch/powerpc/include/asm/thread_info.h @@ -91,8 +91,7 @@ #define TIF_POLLING_NRFLAG 3 /* true if poll_idle() is polling TIF_NEED_RESCHED */ #define TIF_32BIT 4 /* 32 bit binary */ -#define TIF_PERFMON_WORK 5 /* work for pfm_handle_work() */ -#define TIF_PERFMON_CTXSW 6 /* perfmon needs ctxsw calls */ +#define TIF_RESTORE_TM 5 /* need to restore TM FP/VEC/VSX */ #define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */ #define TIF_SINGLESTEP 8 /* singlestepping active */ #define TIF_NOHZ 9 /* in adaptive nohz mode */ @@ -115,8 +114,7 @@ #define _TIF_NEED_RESCHED (1< -static inline int cpu_to_node(int cpu) -{ - return numa_cpu_lookup_table[cpu]; -} - #define parent_node(node) (node) #define cpumask_of_node(node) ((node) == -1 ? \ --- linux-3.13.0.orig/arch/powerpc/include/uapi/asm/cputable.h +++ linux-3.13.0/arch/powerpc/include/uapi/asm/cputable.h @@ -41,5 +41,6 @@ #define PPC_FEATURE2_EBB 0x10000000 #define PPC_FEATURE2_ISEL 0x08000000 #define PPC_FEATURE2_TAR 0x04000000 +#define PPC_FEATURE2_VEC_CRYPTO 0x02000000 #endif /* _UAPI__ASM_POWERPC_CPUTABLE_H */ --- linux-3.13.0.orig/arch/powerpc/kernel/Makefile +++ linux-3.13.0/arch/powerpc/kernel/Makefile @@ -39,6 +39,7 @@ obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o obj-$(CONFIG_PPC_BOOK3S_64) += cpu_setup_ppc970.o cpu_setup_pa6t.o obj-$(CONFIG_PPC_BOOK3S_64) += cpu_setup_power.o +obj-$(CONFIG_PPC_BOOK3S_64) += mce.o mce_power.o obj64-$(CONFIG_RELOCATABLE) += reloc_64.o obj-$(CONFIG_PPC_BOOK3E_64) += exceptions-64e.o idle_book3e.o obj-$(CONFIG_PPC_A2) += cpu_setup_a2.o --- linux-3.13.0.orig/arch/powerpc/kernel/asm-offsets.c +++ linux-3.13.0/arch/powerpc/kernel/asm-offsets.c @@ -232,6 +232,10 @@ DEFINE(PACA_DTL_RIDX, offsetof(struct paca_struct, dtl_ridx)); #endif /* CONFIG_PPC_STD_MMU_64 */ DEFINE(PACAEMERGSP, offsetof(struct paca_struct, emergency_sp)); +#ifdef CONFIG_PPC_BOOK3S_64 + DEFINE(PACAMCEMERGSP, offsetof(struct paca_struct, mc_emergency_sp)); + DEFINE(PACA_IN_MCE, offsetof(struct paca_struct, in_mce)); +#endif DEFINE(PACAHWCPUID, offsetof(struct paca_struct, hw_cpu_id)); DEFINE(PACAKEXECSTATE, offsetof(struct paca_struct, kexec_state)); DEFINE(PACA_STARTTIME, offsetof(struct paca_struct, starttime)); @@ -484,6 +488,7 @@ DEFINE(VCPU_DAR, offsetof(struct kvm_vcpu, arch.shregs.dar)); DEFINE(VCPU_VPA, offsetof(struct kvm_vcpu, arch.vpa.pinned_addr)); DEFINE(VCPU_VPA_DIRTY, offsetof(struct kvm_vcpu, arch.vpa.dirty)); + DEFINE(VCPU_INTR_MSR, offsetof(struct kvm_vcpu, arch.intr_msr)); #endif #ifdef CONFIG_PPC_BOOK3S DEFINE(VCPU_VCPUID, offsetof(struct kvm_vcpu, vcpu_id)); --- linux-3.13.0.orig/arch/powerpc/kernel/cacheinfo.c +++ linux-3.13.0/arch/powerpc/kernel/cacheinfo.c @@ -794,6 +794,9 @@ { remove_index_dirs(cache_dir); + /* Remove cache dir from sysfs */ + kobject_del(cache_dir->kobj); + kobject_put(cache_dir->kobj); kfree(cache_dir); --- linux-3.13.0.orig/arch/powerpc/kernel/cpu_setup_power.S +++ linux-3.13.0/arch/powerpc/kernel/cpu_setup_power.S @@ -29,7 +29,7 @@ mtspr SPRN_LPID,r0 mfspr r3,SPRN_LPCR bl __init_LPCR - bl __init_TLB + bl __init_tlb_power7 mtlr r11 blr @@ -42,7 +42,7 @@ mtspr SPRN_LPID,r0 mfspr r3,SPRN_LPCR bl __init_LPCR - bl __init_TLB + bl __init_tlb_power7 mtlr r11 blr @@ -59,7 +59,7 @@ oris r3, r3, LPCR_AIL_3@h bl __init_LPCR bl __init_HFSCR - bl __init_TLB + bl __init_tlb_power8 bl __init_PMU_HV mtlr r11 blr @@ -78,7 +78,7 @@ oris r3, r3, LPCR_AIL_3@h bl __init_LPCR bl __init_HFSCR - bl __init_TLB + bl __init_tlb_power8 bl __init_PMU_HV mtlr r11 blr @@ -134,15 +134,31 @@ mtspr SPRN_HFSCR,r3 blr -__init_TLB: - /* - * Clear the TLB using the "IS 3" form of tlbiel instruction - * (invalidate by congruence class). P7 has 128 CCs, P8 has 512 - * so we just always do 512 - */ +/* + * Clear the TLB using the specified IS form of tlbiel instruction + * (invalidate by congruence class). P7 has 128 CCs., P8 has 512. + * + * r3 = IS field + */ +__init_tlb_power7: + li r3,0xc00 /* IS field = 0b11 */ +_GLOBAL(__flush_tlb_power7) + li r6,128 + mtctr r6 + mr r7,r3 /* IS field */ + ptesync +2: tlbiel r7 + addi r7,r7,0x1000 + bdnz 2b + ptesync +1: blr + +__init_tlb_power8: + li r3,0xc00 /* IS field = 0b11 */ +_GLOBAL(__flush_tlb_power8) li r6,512 mtctr r6 - li r7,0xc00 /* IS field = 0b11 */ + mr r7,r3 /* IS field */ ptesync 2: tlbiel r7 addi r7,r7,0x1000 --- linux-3.13.0.orig/arch/powerpc/kernel/cputable.c +++ linux-3.13.0/arch/powerpc/kernel/cputable.c @@ -71,6 +71,10 @@ extern void __setup_cpu_power8(unsigned long offset, struct cpu_spec* spec); extern void __restore_cpu_power8(void); extern void __restore_cpu_a2(void); +extern void __flush_tlb_power7(unsigned long inval_selector); +extern void __flush_tlb_power8(unsigned long inval_selector); +extern long __machine_check_early_realmode_p7(struct pt_regs *regs); +extern long __machine_check_early_realmode_p8(struct pt_regs *regs); #endif /* CONFIG_PPC64 */ #if defined(CONFIG_E500) extern void __setup_cpu_e5500(unsigned long offset, struct cpu_spec* spec); @@ -105,7 +109,8 @@ PPC_FEATURE_PSERIES_PERFMON_COMPAT) #define COMMON_USER2_POWER8 (PPC_FEATURE2_ARCH_2_07 | \ PPC_FEATURE2_HTM_COMP | PPC_FEATURE2_DSCR | \ - PPC_FEATURE2_ISEL | PPC_FEATURE2_TAR) + PPC_FEATURE2_ISEL | PPC_FEATURE2_TAR | \ + PPC_FEATURE2_VEC_CRYPTO) #define COMMON_USER_PA6T (COMMON_USER_PPC64 | PPC_FEATURE_PA6T |\ PPC_FEATURE_TRUE_LE | \ PPC_FEATURE_HAS_ALTIVEC_COMP) @@ -440,6 +445,8 @@ .oprofile_cpu_type = "ppc64/ibm-compat-v1", .cpu_setup = __setup_cpu_power7, .cpu_restore = __restore_cpu_power7, + .flush_tlb = __flush_tlb_power7, + .machine_check_early = __machine_check_early_realmode_p7, .platform = "power7", }, { /* 2.07-compliant processor, i.e. Power8 "architected" mode */ @@ -456,6 +463,8 @@ .oprofile_cpu_type = "ppc64/ibm-compat-v1", .cpu_setup = __setup_cpu_power8, .cpu_restore = __restore_cpu_power8, + .flush_tlb = __flush_tlb_power8, + .machine_check_early = __machine_check_early_realmode_p8, .platform = "power8", }, { /* Power7 */ @@ -474,6 +483,8 @@ .oprofile_type = PPC_OPROFILE_POWER4, .cpu_setup = __setup_cpu_power7, .cpu_restore = __restore_cpu_power7, + .flush_tlb = __flush_tlb_power7, + .machine_check_early = __machine_check_early_realmode_p7, .platform = "power7", }, { /* Power7+ */ @@ -492,13 +503,15 @@ .oprofile_type = PPC_OPROFILE_POWER4, .cpu_setup = __setup_cpu_power7, .cpu_restore = __restore_cpu_power7, + .flush_tlb = __flush_tlb_power7, + .machine_check_early = __machine_check_early_realmode_p7, .platform = "power7+", }, { /* Power8E */ .pvr_mask = 0xffff0000, .pvr_value = 0x004b0000, .cpu_name = "POWER8E (raw)", - .cpu_features = CPU_FTRS_POWER8, + .cpu_features = CPU_FTRS_POWER8E, .cpu_user_features = COMMON_USER_POWER8, .cpu_user_features2 = COMMON_USER2_POWER8, .mmu_features = MMU_FTRS_POWER8, @@ -510,6 +523,8 @@ .oprofile_type = PPC_OPROFILE_INVALID, .cpu_setup = __setup_cpu_power8, .cpu_restore = __restore_cpu_power8, + .flush_tlb = __flush_tlb_power8, + .machine_check_early = __machine_check_early_realmode_p8, .platform = "power8", }, { /* Power8 */ @@ -528,6 +543,8 @@ .oprofile_type = PPC_OPROFILE_INVALID, .cpu_setup = __setup_cpu_power8, .cpu_restore = __restore_cpu_power8, + .flush_tlb = __flush_tlb_power8, + .machine_check_early = __machine_check_early_realmode_p8, .platform = "power8", }, { /* Cell Broadband Engine */ --- linux-3.13.0.orig/arch/powerpc/kernel/crash_dump.c +++ linux-3.13.0/arch/powerpc/kernel/crash_dump.c @@ -98,17 +98,19 @@ size_t csize, unsigned long offset, int userbuf) { void *vaddr; + phys_addr_t paddr; if (!csize) return 0; csize = min_t(size_t, csize, PAGE_SIZE); + paddr = pfn << PAGE_SHIFT; - if ((min_low_pfn < pfn) && (pfn < max_pfn)) { - vaddr = __va(pfn << PAGE_SHIFT); + if (memblock_is_region_memory(paddr, csize)) { + vaddr = __va(paddr); csize = copy_oldmem_vaddr(vaddr, buf, csize, offset, userbuf); } else { - vaddr = __ioremap(pfn << PAGE_SHIFT, PAGE_SIZE, 0); + vaddr = __ioremap(paddr, PAGE_SIZE, 0); csize = copy_oldmem_vaddr(vaddr, buf, csize, offset, userbuf); iounmap(vaddr); } --- linux-3.13.0.orig/arch/powerpc/kernel/dma.c +++ linux-3.13.0/arch/powerpc/kernel/dma.c @@ -191,12 +191,10 @@ #define PREALLOC_DMA_DEBUG_ENTRIES (1 << 16) -int dma_set_mask(struct device *dev, u64 dma_mask) +int __dma_set_mask(struct device *dev, u64 dma_mask) { struct dma_map_ops *dma_ops = get_dma_ops(dev); - if (ppc_md.dma_set_mask) - return ppc_md.dma_set_mask(dev, dma_mask); if ((dma_ops != NULL) && (dma_ops->set_dma_mask != NULL)) return dma_ops->set_dma_mask(dev, dma_mask); if (!dev->dma_mask || !dma_supported(dev, dma_mask)) @@ -204,6 +202,12 @@ *dev->dma_mask = dma_mask; return 0; } +int dma_set_mask(struct device *dev, u64 dma_mask) +{ + if (ppc_md.dma_set_mask) + return ppc_md.dma_set_mask(dev, dma_mask); + return __dma_set_mask(dev, dma_mask); +} EXPORT_SYMBOL(dma_set_mask); u64 dma_get_required_mask(struct device *dev) --- linux-3.13.0.orig/arch/powerpc/kernel/eeh_driver.c +++ linux-3.13.0/arch/powerpc/kernel/eeh_driver.c @@ -626,84 +626,90 @@ { struct eeh_pe *pe, *phb_pe; struct pci_bus *bus; - struct pci_controller *hose, *tmp; + struct pci_controller *hose; unsigned long flags; - int rc = 0; + int rc; - /* - * The return value from next_error() has been classified as follows. - * It might be good to enumerate them. However, next_error() is only - * supported by PowerNV platform for now. So it would be fine to use - * integer directly: - * - * 4 - Dead IOC 3 - Dead PHB - * 2 - Fenced PHB 1 - Frozen PE - * 0 - No error found - * - */ - rc = eeh_ops->next_error(&pe); - if (rc <= 0) - return; - - switch (rc) { - case 4: - /* Mark all PHBs in dead state */ - eeh_serialize_lock(&flags); - list_for_each_entry_safe(hose, tmp, - &hose_list, list_node) { - phb_pe = eeh_phb_pe_get(hose); - if (!phb_pe) continue; - eeh_pe_state_mark(phb_pe, - EEH_PE_ISOLATED | EEH_PE_PHB_DEAD); + do { + rc = eeh_ops->next_error(&pe); + + switch (rc) { + case EEH_NEXT_ERR_DEAD_IOC: + /* Mark all PHBs in dead state */ + eeh_serialize_lock(&flags); + + /* Purge all events */ + eeh_remove_event(NULL); + + list_for_each_entry(hose, &hose_list, list_node) { + phb_pe = eeh_phb_pe_get(hose); + if (!phb_pe) continue; + + eeh_pe_state_mark(phb_pe, + EEH_PE_ISOLATED | EEH_PE_PHB_DEAD); + } + + eeh_serialize_unlock(flags); + + break; + case EEH_NEXT_ERR_FROZEN_PE: + case EEH_NEXT_ERR_FENCED_PHB: + case EEH_NEXT_ERR_DEAD_PHB: + /* Mark the PE in fenced state */ + eeh_serialize_lock(&flags); + + /* Purge all events of the PHB */ + eeh_remove_event(pe); + + if (rc == EEH_NEXT_ERR_DEAD_PHB) + eeh_pe_state_mark(pe, + EEH_PE_ISOLATED | EEH_PE_PHB_DEAD); + else + eeh_pe_state_mark(pe, + EEH_PE_ISOLATED | EEH_PE_RECOVERING); + + eeh_serialize_unlock(flags); + + break; + case EEH_NEXT_ERR_NONE: + return; + default: + pr_warn("%s: Invalid value %d from next_error()\n", + __func__, rc); + return; } - eeh_serialize_unlock(flags); - /* Purge all events */ - eeh_remove_event(NULL); - break; - case 3: - case 2: - case 1: - /* Mark the PE in fenced state */ - eeh_serialize_lock(&flags); - if (rc == 3) - eeh_pe_state_mark(pe, - EEH_PE_ISOLATED | EEH_PE_PHB_DEAD); - else - eeh_pe_state_mark(pe, - EEH_PE_ISOLATED | EEH_PE_RECOVERING); - eeh_serialize_unlock(flags); - - /* Purge all events of the PHB */ - eeh_remove_event(pe); - break; - default: - pr_err("%s: Invalid value %d from next_error()\n", - __func__, rc); - return; - } - - /* - * For fenced PHB and frozen PE, it's handled as normal - * event. We have to remove the affected PHBs for dead - * PHB and IOC - */ - if (rc == 2 || rc == 1) - eeh_handle_normal_event(pe); - else { - list_for_each_entry_safe(hose, tmp, - &hose_list, list_node) { - phb_pe = eeh_phb_pe_get(hose); - if (!phb_pe || !(phb_pe->state & EEH_PE_PHB_DEAD)) - continue; - - bus = eeh_pe_bus_get(phb_pe); - /* Notify all devices that they're about to go down. */ - eeh_pe_dev_traverse(pe, eeh_report_failure, NULL); - pcibios_remove_pci_devices(bus); + /* + * For fenced PHB and frozen PE, it's handled as normal + * event. We have to remove the affected PHBs for dead + * PHB and IOC + */ + if (rc == EEH_NEXT_ERR_FROZEN_PE || + rc == EEH_NEXT_ERR_FENCED_PHB) { + eeh_handle_normal_event(pe); + } else { + list_for_each_entry(hose, &hose_list, list_node) { + phb_pe = eeh_phb_pe_get(hose); + if (!phb_pe || + !(phb_pe->state & EEH_PE_PHB_DEAD)) + continue; + + /* Notify all devices to be down */ + bus = eeh_pe_bus_get(phb_pe); + eeh_pe_dev_traverse(pe, + eeh_report_failure, NULL); + pcibios_remove_pci_devices(bus); + } } - } + + /* + * If we have detected dead IOC, we needn't proceed + * any more since all PHBs would have been removed + */ + if (rc == EEH_NEXT_ERR_DEAD_IOC) + break; + } while (rc != EEH_NEXT_ERR_NONE); } /** --- linux-3.13.0.orig/arch/powerpc/kernel/entry_64.S +++ linux-3.13.0/arch/powerpc/kernel/entry_64.S @@ -432,12 +432,6 @@ std r24,THREAD_VRSAVE(r3) END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC) #endif /* CONFIG_ALTIVEC */ -#ifdef CONFIG_PPC64 -BEGIN_FTR_SECTION - mfspr r25,SPRN_DSCR - std r25,THREAD_DSCR(r3) -END_FTR_SECTION_IFSET(CPU_FTR_DSCR) -#endif and. r0,r0,r22 beq+ 1f andc r22,r22,r0 @@ -664,9 +658,23 @@ bl .restore_interrupts SCHEDULE_USER b .ret_from_except_lite - -2: bl .save_nvgprs +2: +#ifdef CONFIG_PPC_TRANSACTIONAL_MEM + andi. r0,r4,_TIF_USER_WORK_MASK & ~_TIF_RESTORE_TM + bne 3f /* only restore TM if nothing else to do */ + addi r3,r1,STACK_FRAME_OVERHEAD + bl .restore_tm_state + b restore +3: +#endif + bl .save_nvgprs + /* + * Use a non volatile GPR to save and restore our thread_info flags + * across the call to restore_interrupts. + */ + mr r30,r4 bl .restore_interrupts + mr r4,r30 addi r3,r1,STACK_FRAME_OVERHEAD bl .do_notify_resume b .ret_from_except --- linux-3.13.0.orig/arch/powerpc/kernel/exceptions-64e.S +++ linux-3.13.0/arch/powerpc/kernel/exceptions-64e.S @@ -309,8 +309,8 @@ EXCEPTION_STUB(0x300, hypercall) EXCEPTION_STUB(0x320, ehpriv) - .globl interrupt_end_book3e -interrupt_end_book3e: + .globl __end_interrupts +__end_interrupts: /* Critical Input Interrupt */ START_EXCEPTION(critical_input); @@ -494,7 +494,7 @@ beq+ 1f LOAD_REG_IMMEDIATE(r14,interrupt_base_book3e) - LOAD_REG_IMMEDIATE(r15,interrupt_end_book3e) + LOAD_REG_IMMEDIATE(r15,__end_interrupts) cmpld cr0,r10,r14 cmpld cr1,r10,r15 blt+ cr0,1f @@ -560,7 +560,7 @@ beq+ 1f LOAD_REG_IMMEDIATE(r14,interrupt_base_book3e) - LOAD_REG_IMMEDIATE(r15,interrupt_end_book3e) + LOAD_REG_IMMEDIATE(r15,__end_interrupts) cmpld cr0,r10,r14 cmpld cr1,r10,r15 blt+ cr0,1f @@ -1099,7 +1099,15 @@ * r4 = MAS0 w/TLBSEL & ESEL for the temp mapping */ /* Now we branch the new virtual address mapped by this entry */ +#ifdef CONFIG_RELOCATABLE + /* We have to find out address from lr. */ + bl 1f /* Find our address */ +1: mflr r6 + addi r6,r6,(2f - 1b) + tovirt(r6,r6) +#else LOAD_REG_IMMEDIATE(r6,2f) +#endif lis r7,MSR_KERNEL@h ori r7,r7,MSR_KERNEL@l mtspr SPRN_SRR0,r6 @@ -1350,9 +1358,17 @@ mflr r28 b 3b -_STATIC(init_core_book3e) +_GLOBAL(init_core_book3e) /* Establish the interrupt vector base */ +#ifdef CONFIG_RELOCATABLE +/* In relocatable case the value of the constant expression 'expr' is only + * offset. So instead, we should loads the address of label 'name'. + */ + tovirt(r2,r2) + LOAD_REG_ADDR(r3, interrupt_base_book3e) +#else LOAD_REG_IMMEDIATE(r3, interrupt_base_book3e) +#endif mtspr SPRN_IVPR,r3 sync blr --- linux-3.13.0.orig/arch/powerpc/kernel/exceptions-64s.S +++ linux-3.13.0/arch/powerpc/kernel/exceptions-64s.S @@ -155,8 +155,35 @@ */ HMT_MEDIUM_PPR_DISCARD SET_SCRATCH0(r13) /* save r13 */ +#ifdef CONFIG_PPC_P7_NAP +BEGIN_FTR_SECTION + /* Running native on arch 2.06 or later, check if we are + * waking up from nap. We only handle no state loss and + * supervisor state loss. We do -not- handle hypervisor + * state loss at this time. + */ + mfspr r13,SPRN_SRR1 + rlwinm. r13,r13,47-31,30,31 + OPT_GET_SPR(r13, SPRN_CFAR, CPU_FTR_CFAR) + beq 9f + + mfspr r13,SPRN_SRR1 + rlwinm. r13,r13,47-31,30,31 + /* waking up from powersave (nap) state */ + cmpwi cr1,r13,2 + /* Total loss of HV state is fatal. let's just stay stuck here */ + OPT_GET_SPR(r13, SPRN_CFAR, CPU_FTR_CFAR) + bgt cr1,. +9: + OPT_SET_SPR(r13, SPRN_CFAR, CPU_FTR_CFAR) +END_FTR_SECTION_IFSET(CPU_FTR_HVMODE | CPU_FTR_ARCH_206) +#endif /* CONFIG_PPC_P7_NAP */ EXCEPTION_PROLOG_0(PACA_EXMC) +BEGIN_FTR_SECTION + b machine_check_pSeries_early +FTR_SECTION_ELSE b machine_check_pSeries_0 +ALT_FTR_SECTION_END_IFSET(CPU_FTR_HVMODE) . = 0x300 .globl data_access_pSeries @@ -405,6 +432,64 @@ .align 7 /* moved from 0x200 */ +machine_check_pSeries_early: +BEGIN_FTR_SECTION + EXCEPTION_PROLOG_1(PACA_EXMC, NOTEST, 0x200) + /* + * Register contents: + * R13 = PACA + * R9 = CR + * Original R9 to R13 is saved on PACA_EXMC + * + * Switch to mc_emergency stack and handle re-entrancy (though we + * currently don't test for overflow). Save MCE registers srr1, + * srr0, dar and dsisr and then set ME=1 + * + * We use paca->in_mce to check whether this is the first entry or + * nested machine check. We increment paca->in_mce to track nested + * machine checks. + * + * If this is the first entry then set stack pointer to + * paca->mc_emergency_sp, otherwise r1 is already pointing to + * stack frame on mc_emergency stack. + * + * NOTE: We are here with MSR_ME=0 (off), which means we risk a + * checkstop if we get another machine check exception before we do + * rfid with MSR_ME=1. + */ + mr r11,r1 /* Save r1 */ + lhz r10,PACA_IN_MCE(r13) + cmpwi r10,0 /* Are we in nested machine check */ + bne 0f /* Yes, we are. */ + /* First machine check entry */ + ld r1,PACAMCEMERGSP(r13) /* Use MC emergency stack */ +0: subi r1,r1,INT_FRAME_SIZE /* alloc stack frame */ + addi r10,r10,1 /* increment paca->in_mce */ + sth r10,PACA_IN_MCE(r13) + std r11,GPR1(r1) /* Save r1 on the stack. */ + std r11,0(r1) /* make stack chain pointer */ + mfspr r11,SPRN_SRR0 /* Save SRR0 */ + std r11,_NIP(r1) + mfspr r11,SPRN_SRR1 /* Save SRR1 */ + std r11,_MSR(r1) + mfspr r11,SPRN_DAR /* Save DAR */ + std r11,_DAR(r1) + mfspr r11,SPRN_DSISR /* Save DSISR */ + std r11,_DSISR(r1) + std r9,_CCR(r1) /* Save CR in stackframe */ + /* Save r9 through r13 from EXMC save area to stack frame. */ + EXCEPTION_PROLOG_COMMON_2(PACA_EXMC) + mfmsr r11 /* get MSR value */ + ori r11,r11,MSR_ME /* turn on ME bit */ + ori r11,r11,MSR_RI /* turn on RI bit */ + ld r12,PACAKBASE(r13) /* get high part of &label */ + LOAD_HANDLER(r12, machine_check_handle_early) + mtspr SPRN_SRR0,r12 + mtspr SPRN_SRR1,r11 + rfid + b . /* prevent speculative execution */ +END_FTR_SECTION_IFSET(CPU_FTR_HVMODE) + machine_check_pSeries: .globl machine_check_fwnmi machine_check_fwnmi: @@ -688,30 +773,6 @@ STD_EXCEPTION_COMMON(0x100, system_reset, .system_reset_exception) - /* - * Machine check is different because we use a different - * save area: PACA_EXMC instead of PACA_EXGEN. - */ - .align 7 - .globl machine_check_common -machine_check_common: - - mfspr r10,SPRN_DAR - std r10,PACA_EXGEN+EX_DAR(r13) - mfspr r10,SPRN_DSISR - stw r10,PACA_EXGEN+EX_DSISR(r13) - EXCEPTION_PROLOG_COMMON(0x200, PACA_EXMC) - FINISH_NAP - DISABLE_INTS - ld r3,PACA_EXGEN+EX_DAR(r13) - lwz r4,PACA_EXGEN+EX_DSISR(r13) - std r3,_DAR(r1) - std r4,_DSISR(r1) - bl .save_nvgprs - addi r3,r1,STACK_FRAME_OVERHEAD - bl .machine_check_exception - b .ret_from_except - STD_EXCEPTION_COMMON_ASYNC(0x500, hardware_interrupt, do_IRQ) STD_EXCEPTION_COMMON_ASYNC(0x900, decrementer, .timer_interrupt) STD_EXCEPTION_COMMON(0x980, hdecrementer, .hdec_interrupt) @@ -1080,6 +1141,30 @@ #endif /* __DISABLED__ */ + /* + * Machine check is different because we use a different + * save area: PACA_EXMC instead of PACA_EXGEN. + */ + .align 7 + .globl machine_check_common +machine_check_common: + + mfspr r10,SPRN_DAR + std r10,PACA_EXGEN+EX_DAR(r13) + mfspr r10,SPRN_DSISR + stw r10,PACA_EXGEN+EX_DSISR(r13) + EXCEPTION_PROLOG_COMMON(0x200, PACA_EXMC) + FINISH_NAP + DISABLE_INTS + ld r3,PACA_EXGEN+EX_DAR(r13) + lwz r4,PACA_EXGEN+EX_DSISR(r13) + std r3,_DAR(r1) + std r4,_DSISR(r1) + bl .save_nvgprs + addi r3,r1,STACK_FRAME_OVERHEAD + bl .machine_check_exception + b .ret_from_except + .align 7 .globl alignment_common alignment_common: @@ -1263,6 +1348,120 @@ #endif /* CONFIG_PPC_POWERNV */ +#define MACHINE_CHECK_HANDLER_WINDUP \ + /* Clear MSR_RI before setting SRR0 and SRR1. */\ + li r0,MSR_RI; \ + mfmsr r9; /* get MSR value */ \ + andc r9,r9,r0; \ + mtmsrd r9,1; /* Clear MSR_RI */ \ + /* Move original SRR0 and SRR1 into the respective regs */ \ + ld r9,_MSR(r1); \ + mtspr SPRN_SRR1,r9; \ + ld r3,_NIP(r1); \ + mtspr SPRN_SRR0,r3; \ + ld r9,_CTR(r1); \ + mtctr r9; \ + ld r9,_XER(r1); \ + mtxer r9; \ + ld r9,_LINK(r1); \ + mtlr r9; \ + REST_GPR(0, r1); \ + REST_8GPRS(2, r1); \ + REST_GPR(10, r1); \ + ld r11,_CCR(r1); \ + mtcr r11; \ + /* Decrement paca->in_mce. */ \ + lhz r12,PACA_IN_MCE(r13); \ + subi r12,r12,1; \ + sth r12,PACA_IN_MCE(r13); \ + REST_GPR(11, r1); \ + REST_2GPRS(12, r1); \ + /* restore original r1. */ \ + ld r1,GPR1(r1) + + /* + * Handle machine check early in real mode. We come here with + * ME=1, MMU (IR=0 and DR=0) off and using MC emergency stack. + */ + .align 7 + .globl machine_check_handle_early +machine_check_handle_early: + std r0,GPR0(r1) /* Save r0 */ + EXCEPTION_PROLOG_COMMON_3(0x200) + bl .save_nvgprs + addi r3,r1,STACK_FRAME_OVERHEAD + bl .machine_check_early + ld r12,_MSR(r1) +#ifdef CONFIG_PPC_P7_NAP + /* + * Check if thread was in power saving mode. We come here when any + * of the following is true: + * a. thread wasn't in power saving mode + * b. thread was in power saving mode with no state loss or + * supervisor state loss + * + * Go back to nap again if (b) is true. + */ + rlwinm. r11,r12,47-31,30,31 /* Was it in power saving mode? */ + beq 4f /* No, it wasn;t */ + /* Thread was in power saving mode. Go back to nap again. */ + cmpwi r11,2 + bne 3f + /* Supervisor state loss */ + li r0,1 + stb r0,PACA_NAPSTATELOST(r13) +3: bl .machine_check_queue_event + MACHINE_CHECK_HANDLER_WINDUP + GET_PACA(r13) + ld r1,PACAR1(r13) + b .power7_enter_nap_mode +4: +#endif + /* + * Check if we are coming from hypervisor userspace. If yes then we + * continue in host kernel in V mode to deliver the MC event. + */ + rldicl. r11,r12,4,63 /* See if MC hit while in HV mode. */ + beq 5f + andi. r11,r12,MSR_PR /* See if coming from user. */ + bne 9f /* continue in V mode if we are. */ + +5: +#ifdef CONFIG_KVM_BOOK3S_64_HV + /* + * We are coming from kernel context. Check if we are coming from + * guest. if yes, then we can continue. We will fall through + * do_kvm_200->kvmppc_interrupt to deliver the MC event to guest. + */ + lbz r11,HSTATE_IN_GUEST(r13) + cmpwi r11,0 /* Check if coming from guest */ + bne 9f /* continue if we are. */ +#endif + /* + * At this point we are not sure about what context we come from. + * Queue up the MCE event and return from the interrupt. + * But before that, check if this is an un-recoverable exception. + * If yes, then stay on emergency stack and panic. + */ + andi. r11,r12,MSR_RI + bne 2f +1: addi r3,r1,STACK_FRAME_OVERHEAD + bl .unrecoverable_exception + b 1b +2: + /* + * Return from MC interrupt. + * Queue up the MCE event so that we can log it later, while + * returning from kernel or opal call. + */ + bl .machine_check_queue_event + MACHINE_CHECK_HANDLER_WINDUP + rfid +9: + /* Deliver the machine check to host kernel in V mode. */ + MACHINE_CHECK_HANDLER_WINDUP + b machine_check_pSeries + /* * r13 points to the PACA, r9 contains the saved CR, * r12 contain the saved SRR1, SRR0 is still ready for return --- linux-3.13.0.orig/arch/powerpc/kernel/fpu.S +++ linux-3.13.0/arch/powerpc/kernel/fpu.S @@ -81,6 +81,22 @@ #endif /* CONFIG_PPC_TRANSACTIONAL_MEM */ /* + * Enable use of the FPU, and VSX if possible, for the caller. + */ +_GLOBAL(fp_enable) + mfmsr r3 + ori r3,r3,MSR_FP +#ifdef CONFIG_VSX +BEGIN_FTR_SECTION + oris r3,r3,MSR_VSX@h +END_FTR_SECTION_IFSET(CPU_FTR_VSX) +#endif + SYNC + MTMSRD(r3) + isync /* (not necessary for arch 2.02 and later) */ + blr + +/* * Load state from memory into FP registers including FPSCR. * Assumes the caller has enabled FP in the MSR. */ --- linux-3.13.0.orig/arch/powerpc/kernel/head_64.S +++ linux-3.13.0/arch/powerpc/kernel/head_64.S @@ -91,6 +91,10 @@ __secondary_hold_acknowledge: .llong 0x0 + .globl __run_at_kexec +__run_at_kexec: + .llong 0x0 /* Flag for the secondary kernel from kexec. */ + #ifdef CONFIG_RELOCATABLE /* This flag is set to 1 by a loader if the kernel should run * at the loaded address instead of the linked address. This @@ -126,6 +130,10 @@ /* Grab our physical cpu number */ mr r24,r3 /* stash r4 for book3e */ +#ifdef CONFIG_PPC_FSL_BOOK3E + /* we need to setup initial TLB entry. */ + li r4,0 +#endif mr r25,r4 /* Tell the master cpu we're here */ @@ -418,12 +426,31 @@ /* process relocations for the final address of the kernel */ lis r25,PAGE_OFFSET@highest /* compute virtual base of kernel */ sldi r25,r25,32 +#if defined(CONFIG_PPC_BOOK3E) + tovirt(r26,r26) /* on booke, we already run at PAGE_OFFSET */ +#endif +#if defined(CONFIG_KEXEC) || defined(CONFIG_CRASH_DUMP) + /* If relocated we need to restore this flag on that relocated address. */ + ld r7,__run_at_kexec-_stext(r26) + std r7,__run_at_kexec-_stext(r26) +#endif + lwz r7,__run_at_load-_stext(r26) +#if defined(CONFIG_PPC_BOOK3E) + tophys(r26,r26) /* Restore for the remains. */ +#endif cmplwi cr0,r7,1 /* flagged to stay where we are ? */ bne 1f add r25,r25,r26 1: mr r3,r25 bl .relocate +#if defined(CONFIG_PPC_BOOK3E) + /* In relocatable case we always have to load the address of label 'name' + * to set IVPR. So after .relocate we have to update IVPR with current + * address of label. + */ + bl .init_core_book3e +#endif #endif /* @@ -438,12 +465,12 @@ tovirt(r3,r3) /* on booke, we already run at PAGE_OFFSET */ #endif mr. r4,r26 /* In some cases the loader may */ +#if defined(CONFIG_PPC_BOOK3E) + tovirt(r4,r4) +#endif beq 9f /* have already put us at zero */ li r6,0x100 /* Start offset, the first 0x100 */ /* bytes were copied earlier. */ -#ifdef CONFIG_PPC_BOOK3E - tovirt(r6,r6) /* on booke, we already run at PAGE_OFFSET */ -#endif #ifdef CONFIG_RELOCATABLE /* @@ -451,12 +478,24 @@ * variable __run_at_load, if it is set the kernel is treated as relocatable * kernel, otherwise it will be moved to PHYSICAL_START */ +#if defined(CONFIG_PPC_BOOK3E) + tovirt(r26,r26) /* on booke, we already run at PAGE_OFFSET */ +#endif lwz r7,__run_at_load-_stext(r26) +#if defined(CONFIG_PPC_BOOK3E) + tophys(r26,r26) /* Restore for the remains. */ +#endif cmplwi cr0,r7,1 bne 3f +#ifdef CONFIG_PPC_BOOK3E + LOAD_REG_ADDR(r5, __end_interrupts) + LOAD_REG_ADDR(r11, _stext) + sub r5,r5,r11 +#else /* just copy interrupts */ LOAD_REG_IMMEDIATE(r5, __end_interrupts - _stext) +#endif b 5f 3: #endif @@ -475,6 +514,9 @@ p_end: .llong _end - _stext 4: /* Now copy the rest of the kernel up to _end */ +#if defined(CONFIG_PPC_BOOK3E) + tovirt(r26,r26) +#endif addis r5,r26,(p_end - _stext)@ha ld r5,(p_end - _stext)@l(r5) /* get _end */ 5: bl .copy_and_flush /* copy the rest */ --- linux-3.13.0.orig/arch/powerpc/kernel/idle_power7.S +++ linux-3.13.0/arch/powerpc/kernel/idle_power7.S @@ -84,6 +84,22 @@ std r9,_MSR(r1) std r1,PACAR1(r13) + /* + * Go to real mode to do the nap, as required by the architecture. + * Also, we need to be in real mode before setting hwthread_state, + * because as soon as we do that, another thread can switch + * the MMU context to the guest. + */ + LOAD_REG_IMMEDIATE(r5, MSR_IDLE) + li r6, MSR_RI + andc r6, r9, r6 + LOAD_REG_ADDR(r7, power7_enter_nap_mode) + mtmsrd r6, 1 /* clear RI before setting SRR0/1 */ + mtspr SPRN_SRR0, r7 + mtspr SPRN_SRR1, r5 + rfid + +_GLOBAL(power7_enter_nap_mode) #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE /* Tell KVM we're napping */ li r4,KVM_HWTHREAD_IN_NAP --- linux-3.13.0.orig/arch/powerpc/kernel/iommu.c +++ linux-3.13.0/arch/powerpc/kernel/iommu.c @@ -1088,6 +1088,14 @@ memset(tbl->it_map, 0xff, sz); iommu_clear_tces_and_put_pages(tbl, tbl->it_offset, tbl->it_size); + /* + * Disable iommu bypass, otherwise the user can DMA to all of + * our physical memory via the bypass window instead of just + * the pages that has been explicitly mapped into the iommu + */ + if (tbl->set_bypass) + tbl->set_bypass(tbl, false); + return 0; } EXPORT_SYMBOL_GPL(iommu_take_ownership); @@ -1102,6 +1110,10 @@ /* Restore bit#0 set by iommu_init_table() */ if (tbl->it_offset == 0) set_bit(0, tbl->it_map); + + /* The kernel owns the device now, we can restore the iommu bypass */ + if (tbl->set_bypass) + tbl->set_bypass(tbl, true); } EXPORT_SYMBOL_GPL(iommu_release_ownership); --- linux-3.13.0.orig/arch/powerpc/kernel/legacy_serial.c +++ linux-3.13.0/arch/powerpc/kernel/legacy_serial.c @@ -48,6 +48,9 @@ static unsigned int legacy_serial_count; static int legacy_serial_console = -1; +static const upf_t legacy_port_flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | + UPF_SHARE_IRQ | UPF_FIXED_PORT; + static unsigned int tsi_serial_in(struct uart_port *p, int offset) { unsigned int tmp; @@ -153,8 +156,6 @@ { u64 addr; const __be32 *addrp; - upf_t flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_SHARE_IRQ - | UPF_FIXED_PORT; struct device_node *tsi = of_get_parent(np); /* We only support ports that have a clock frequency properly @@ -185,9 +186,11 @@ * IO port value. It will be fixed up later along with the irq */ if (tsi && !strcmp(tsi->type, "tsi-bridge")) - return add_legacy_port(np, -1, UPIO_TSI, addr, addr, NO_IRQ, flags, 0); + return add_legacy_port(np, -1, UPIO_TSI, addr, addr, + NO_IRQ, legacy_port_flags, 0); else - return add_legacy_port(np, -1, UPIO_MEM, addr, addr, NO_IRQ, flags, 0); + return add_legacy_port(np, -1, UPIO_MEM, addr, addr, + NO_IRQ, legacy_port_flags, 0); } static int __init add_legacy_isa_port(struct device_node *np, @@ -233,7 +236,7 @@ /* Add port, irq will be dealt with later */ return add_legacy_port(np, index, UPIO_PORT, be32_to_cpu(reg[1]), - taddr, NO_IRQ, UPF_BOOT_AUTOCONF, 0); + taddr, NO_IRQ, legacy_port_flags, 0); } @@ -306,7 +309,7 @@ * IO port value. It will be fixed up later along with the irq */ return add_legacy_port(np, index, iotype, base, addr, NO_IRQ, - UPF_BOOT_AUTOCONF, np != pci_dev); + legacy_port_flags, np != pci_dev); } #endif --- linux-3.13.0.orig/arch/powerpc/kernel/machine_kexec.c +++ linux-3.13.0/arch/powerpc/kernel/machine_kexec.c @@ -196,7 +196,9 @@ /* Values we need to export to the second kernel via the device tree. */ static phys_addr_t kernel_end; +static phys_addr_t crashk_base; static phys_addr_t crashk_size; +static unsigned long long mem_limit; static struct property kernel_end_prop = { .name = "linux,kernel-end", @@ -207,7 +209,7 @@ static struct property crashk_base_prop = { .name = "linux,crashkernel-base", .length = sizeof(phys_addr_t), - .value = &crashk_res.start, + .value = &crashk_base }; static struct property crashk_size_prop = { @@ -219,9 +221,11 @@ static struct property memory_limit_prop = { .name = "linux,memory-limit", .length = sizeof(unsigned long long), - .value = &memory_limit, + .value = &mem_limit, }; +#define cpu_to_be_ulong __PASTE(cpu_to_be, BITS_PER_LONG) + static void __init export_crashk_values(struct device_node *node) { struct property *prop; @@ -237,8 +241,9 @@ of_remove_property(node, prop); if (crashk_res.start != 0) { + crashk_base = cpu_to_be_ulong(crashk_res.start), of_add_property(node, &crashk_base_prop); - crashk_size = resource_size(&crashk_res); + crashk_size = cpu_to_be_ulong(resource_size(&crashk_res)); of_add_property(node, &crashk_size_prop); } @@ -246,6 +251,7 @@ * memory_limit is required by the kexec-tools to limit the * crash regions to the actual memory used. */ + mem_limit = cpu_to_be_ulong(memory_limit); of_update_property(node, &memory_limit_prop); } @@ -264,7 +270,7 @@ of_remove_property(node, prop); /* information needed by userspace when using default_machine_kexec */ - kernel_end = __pa(_end); + kernel_end = cpu_to_be_ulong(__pa(_end)); of_add_property(node, &kernel_end_prop); export_crashk_values(node); --- linux-3.13.0.orig/arch/powerpc/kernel/machine_kexec_64.c +++ linux-3.13.0/arch/powerpc/kernel/machine_kexec_64.c @@ -30,72 +30,6 @@ #include #include -int default_machine_kexec_prepare(struct kimage *image) -{ - int i; - unsigned long begin, end; /* limits of segment */ - unsigned long low, high; /* limits of blocked memory range */ - struct device_node *node; - const unsigned long *basep; - const unsigned int *sizep; - - if (!ppc_md.hpte_clear_all) - return -ENOENT; - - /* - * Since we use the kernel fault handlers and paging code to - * handle the virtual mode, we must make sure no destination - * overlaps kernel static data or bss. - */ - for (i = 0; i < image->nr_segments; i++) - if (image->segment[i].mem < __pa(_end)) - return -ETXTBSY; - - /* - * For non-LPAR, we absolutely can not overwrite the mmu hash - * table, since we are still using the bolted entries in it to - * do the copy. Check that here. - * - * It is safe if the end is below the start of the blocked - * region (end <= low), or if the beginning is after the - * end of the blocked region (begin >= high). Use the - * boolean identity !(a || b) === (!a && !b). - */ - if (htab_address) { - low = __pa(htab_address); - high = low + htab_size_bytes; - - for (i = 0; i < image->nr_segments; i++) { - begin = image->segment[i].mem; - end = begin + image->segment[i].memsz; - - if ((begin < high) && (end > low)) - return -ETXTBSY; - } - } - - /* We also should not overwrite the tce tables */ - for_each_node_by_type(node, "pci") { - basep = of_get_property(node, "linux,tce-base", NULL); - sizep = of_get_property(node, "linux,tce-size", NULL); - if (basep == NULL || sizep == NULL) - continue; - - low = *basep; - high = low + (*sizep); - - for (i = 0; i < image->nr_segments; i++) { - begin = image->segment[i].mem; - end = begin + image->segment[i].memsz; - - if ((begin < high) && (end > low)) - return -ETXTBSY; - } - } - - return 0; -} - #define IND_FLAGS (IND_DESTINATION | IND_INDIRECTION | IND_DONE | IND_SOURCE) static void copy_segments(unsigned long ind) @@ -237,7 +171,7 @@ if (!cpu_online(cpu)) { printk(KERN_INFO "kexec: Waking offline cpu %d.\n", cpu); - cpu_up(cpu); + WARN_ON(cpu_up(cpu)); } } } @@ -367,8 +301,90 @@ /* NOTREACHED */ } +#ifdef CONFIG_PPC_BOOK3E +int default_machine_kexec_prepare(struct kimage *image) +{ + int i; + /* + * Since we use the kernel fault handlers and paging code to + * handle the virtual mode, we must make sure no destination + * overlaps kernel static data or bss. + */ + for (i = 0; i < image->nr_segments; i++) + if (image->segment[i].mem < __pa(_end)) + return -ETXTBSY; + return 0; +} +#else /* CONFIG_PPC_BOOK3E */ +int default_machine_kexec_prepare(struct kimage *image) +{ + int i; + unsigned long begin, end; /* limits of segment */ + unsigned long low, high; /* limits of blocked memory range */ + struct device_node *node; + const unsigned long *basep; + const unsigned int *sizep; + + if (!ppc_md.hpte_clear_all) + return -ENOENT; + + /* + * Since we use the kernel fault handlers and paging code to + * handle the virtual mode, we must make sure no destination + * overlaps kernel static data or bss. + */ + for (i = 0; i < image->nr_segments; i++) + if (image->segment[i].mem < __pa(_end)) + return -ETXTBSY; + + /* + * For non-LPAR, we absolutely can not overwrite the mmu hash + * table, since we are still using the bolted entries in it to + * do the copy. Check that here. + * + * It is safe if the end is below the start of the blocked + * region (end <= low), or if the beginning is after the + * end of the blocked region (begin >= high). Use the + * boolean identity !(a || b) === (!a && !b). + */ + if (htab_address) { + low = __pa(htab_address); + high = low + htab_size_bytes; + + for (i = 0; i < image->nr_segments; i++) { + begin = image->segment[i].mem; + end = begin + image->segment[i].memsz; + + if ((begin < high) && (end > low)) + return -ETXTBSY; + } + } + + /* We also should not overwrite the tce tables */ + for_each_node_by_type(node, "pci") { + basep = of_get_property(node, "linux,tce-base", NULL); + sizep = of_get_property(node, "linux,tce-size", NULL); + if (basep == NULL || sizep == NULL) + continue; + + low = *basep; + high = low + (*sizep); + + for (i = 0; i < image->nr_segments; i++) { + begin = image->segment[i].mem; + end = begin + image->segment[i].memsz; + + if ((begin < high) && (end > low)) + return -ETXTBSY; + } + } + + return 0; +} + /* Values we need to export to the second kernel via the device tree. */ static unsigned long htab_base; +static unsigned long htab_size; static struct property htab_base_prop = { .name = "linux,htab-base", @@ -379,7 +395,7 @@ static struct property htab_size_prop = { .name = "linux,htab-size", .length = sizeof(unsigned long), - .value = &htab_size_bytes, + .value = &htab_size, }; static int __init export_htab_values(void) @@ -403,11 +419,13 @@ if (prop) of_remove_property(node, prop); - htab_base = __pa(htab_address); + htab_base = cpu_to_be64(__pa(htab_address)); of_add_property(node, &htab_base_prop); + htab_size = cpu_to_be64(htab_size_bytes); of_add_property(node, &htab_size_prop); of_node_put(node); return 0; } late_initcall(export_htab_values); +#endif /* !CONFIG_PPC_BOOK3E */ --- linux-3.13.0.orig/arch/powerpc/kernel/mce.c +++ linux-3.13.0/arch/powerpc/kernel/mce.c @@ -0,0 +1,352 @@ +/* + * Machine check exception handling. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * Copyright 2013 IBM Corporation + * Author: Mahesh Salgaonkar + */ + +#undef DEBUG +#define pr_fmt(fmt) "mce: " fmt + +#include +#include +#include +#include +#include +#include + +static DEFINE_PER_CPU(int, mce_nest_count); +static DEFINE_PER_CPU(struct machine_check_event[MAX_MC_EVT], mce_event); + +/* Queue for delayed MCE events. */ +static DEFINE_PER_CPU(int, mce_queue_count); +static DEFINE_PER_CPU(struct machine_check_event[MAX_MC_EVT], mce_event_queue); + +static void machine_check_process_queued_event(struct irq_work *work); +struct irq_work mce_event_process_work = { + .func = machine_check_process_queued_event, +}; + +static void mce_set_error_info(struct machine_check_event *mce, + struct mce_error_info *mce_err) +{ + mce->error_type = mce_err->error_type; + switch (mce_err->error_type) { + case MCE_ERROR_TYPE_UE: + mce->u.ue_error.ue_error_type = mce_err->u.ue_error_type; + break; + case MCE_ERROR_TYPE_SLB: + mce->u.slb_error.slb_error_type = mce_err->u.slb_error_type; + break; + case MCE_ERROR_TYPE_ERAT: + mce->u.erat_error.erat_error_type = mce_err->u.erat_error_type; + break; + case MCE_ERROR_TYPE_TLB: + mce->u.tlb_error.tlb_error_type = mce_err->u.tlb_error_type; + break; + case MCE_ERROR_TYPE_UNKNOWN: + default: + break; + } +} + +/* + * Decode and save high level MCE information into per cpu buffer which + * is an array of machine_check_event structure. + */ +void save_mce_event(struct pt_regs *regs, long handled, + struct mce_error_info *mce_err, + uint64_t nip, uint64_t addr) +{ + uint64_t srr1; + int index = __get_cpu_var(mce_nest_count)++; + struct machine_check_event *mce = &__get_cpu_var(mce_event[index]); + + /* + * Return if we don't have enough space to log mce event. + * mce_nest_count may go beyond MAX_MC_EVT but that's ok, + * the check below will stop buffer overrun. + */ + if (index >= MAX_MC_EVT) + return; + + /* Populate generic machine check info */ + mce->version = MCE_V1; + mce->srr0 = nip; + mce->srr1 = regs->msr; + mce->gpr3 = regs->gpr[3]; + mce->in_use = 1; + + mce->initiator = MCE_INITIATOR_CPU; + if (handled) + mce->disposition = MCE_DISPOSITION_RECOVERED; + else + mce->disposition = MCE_DISPOSITION_NOT_RECOVERED; + mce->severity = MCE_SEV_ERROR_SYNC; + + srr1 = regs->msr; + + /* + * Populate the mce error_type and type-specific error_type. + */ + mce_set_error_info(mce, mce_err); + + if (!addr) + return; + + if (mce->error_type == MCE_ERROR_TYPE_TLB) { + mce->u.tlb_error.effective_address_provided = true; + mce->u.tlb_error.effective_address = addr; + } else if (mce->error_type == MCE_ERROR_TYPE_SLB) { + mce->u.slb_error.effective_address_provided = true; + mce->u.slb_error.effective_address = addr; + } else if (mce->error_type == MCE_ERROR_TYPE_ERAT) { + mce->u.erat_error.effective_address_provided = true; + mce->u.erat_error.effective_address = addr; + } else if (mce->error_type == MCE_ERROR_TYPE_UE) { + mce->u.ue_error.effective_address_provided = true; + mce->u.ue_error.effective_address = addr; + } + return; +} + +/* + * get_mce_event: + * mce Pointer to machine_check_event structure to be filled. + * release Flag to indicate whether to free the event slot or not. + * 0 <= do not release the mce event. Caller will invoke + * release_mce_event() once event has been consumed. + * 1 <= release the slot. + * + * return 1 = success + * 0 = failure + * + * get_mce_event() will be called by platform specific machine check + * handle routine and in KVM. + * When we call get_mce_event(), we are still in interrupt context and + * preemption will not be scheduled until ret_from_expect() routine + * is called. + */ +int get_mce_event(struct machine_check_event *mce, bool release) +{ + int index = __get_cpu_var(mce_nest_count) - 1; + struct machine_check_event *mc_evt; + int ret = 0; + + /* Sanity check */ + if (index < 0) + return ret; + + /* Check if we have MCE info to process. */ + if (index < MAX_MC_EVT) { + mc_evt = &__get_cpu_var(mce_event[index]); + /* Copy the event structure and release the original */ + if (mce) + *mce = *mc_evt; + if (release) + mc_evt->in_use = 0; + ret = 1; + } + /* Decrement the count to free the slot. */ + if (release) + __get_cpu_var(mce_nest_count)--; + + return ret; +} + +void release_mce_event(void) +{ + get_mce_event(NULL, true); +} + +/* + * Queue up the MCE event which then can be handled later. + */ +void machine_check_queue_event(void) +{ + int index; + struct machine_check_event evt; + + if (!get_mce_event(&evt, MCE_EVENT_RELEASE)) + return; + + index = __get_cpu_var(mce_queue_count)++; + /* If queue is full, just return for now. */ + if (index >= MAX_MC_EVT) { + __get_cpu_var(mce_queue_count)--; + return; + } + __get_cpu_var(mce_event_queue[index]) = evt; + + /* Queue irq work to process this event later. */ + irq_work_queue(&mce_event_process_work); +} + +/* + * process pending MCE event from the mce event queue. This function will be + * called during syscall exit. + */ +static void machine_check_process_queued_event(struct irq_work *work) +{ + int index; + + /* + * For now just print it to console. + * TODO: log this error event to FSP or nvram. + */ + while (__get_cpu_var(mce_queue_count) > 0) { + index = __get_cpu_var(mce_queue_count) - 1; + machine_check_print_event_info( + &__get_cpu_var(mce_event_queue[index])); + __get_cpu_var(mce_queue_count)--; + } +} + +void machine_check_print_event_info(struct machine_check_event *evt) +{ + const char *level, *sevstr, *subtype; + static const char *mc_ue_types[] = { + "Indeterminate", + "Instruction fetch", + "Page table walk ifetch", + "Load/Store", + "Page table walk Load/Store", + }; + static const char *mc_slb_types[] = { + "Indeterminate", + "Parity", + "Multihit", + }; + static const char *mc_erat_types[] = { + "Indeterminate", + "Parity", + "Multihit", + }; + static const char *mc_tlb_types[] = { + "Indeterminate", + "Parity", + "Multihit", + }; + + /* Print things out */ + if (evt->version != MCE_V1) { + pr_err("Machine Check Exception, Unknown event version %d !\n", + evt->version); + return; + } + switch (evt->severity) { + case MCE_SEV_NO_ERROR: + level = KERN_INFO; + sevstr = "Harmless"; + break; + case MCE_SEV_WARNING: + level = KERN_WARNING; + sevstr = ""; + break; + case MCE_SEV_ERROR_SYNC: + level = KERN_ERR; + sevstr = "Severe"; + break; + case MCE_SEV_FATAL: + default: + level = KERN_ERR; + sevstr = "Fatal"; + break; + } + + printk("%s%s Machine check interrupt [%s]\n", level, sevstr, + evt->disposition == MCE_DISPOSITION_RECOVERED ? + "Recovered" : "[Not recovered"); + printk("%s Initiator: %s\n", level, + evt->initiator == MCE_INITIATOR_CPU ? "CPU" : "Unknown"); + switch (evt->error_type) { + case MCE_ERROR_TYPE_UE: + subtype = evt->u.ue_error.ue_error_type < + ARRAY_SIZE(mc_ue_types) ? + mc_ue_types[evt->u.ue_error.ue_error_type] + : "Unknown"; + printk("%s Error type: UE [%s]\n", level, subtype); + if (evt->u.ue_error.effective_address_provided) + printk("%s Effective address: %016llx\n", + level, evt->u.ue_error.effective_address); + if (evt->u.ue_error.physical_address_provided) + printk("%s Physial address: %016llx\n", + level, evt->u.ue_error.physical_address); + break; + case MCE_ERROR_TYPE_SLB: + subtype = evt->u.slb_error.slb_error_type < + ARRAY_SIZE(mc_slb_types) ? + mc_slb_types[evt->u.slb_error.slb_error_type] + : "Unknown"; + printk("%s Error type: SLB [%s]\n", level, subtype); + if (evt->u.slb_error.effective_address_provided) + printk("%s Effective address: %016llx\n", + level, evt->u.slb_error.effective_address); + break; + case MCE_ERROR_TYPE_ERAT: + subtype = evt->u.erat_error.erat_error_type < + ARRAY_SIZE(mc_erat_types) ? + mc_erat_types[evt->u.erat_error.erat_error_type] + : "Unknown"; + printk("%s Error type: ERAT [%s]\n", level, subtype); + if (evt->u.erat_error.effective_address_provided) + printk("%s Effective address: %016llx\n", + level, evt->u.erat_error.effective_address); + break; + case MCE_ERROR_TYPE_TLB: + subtype = evt->u.tlb_error.tlb_error_type < + ARRAY_SIZE(mc_tlb_types) ? + mc_tlb_types[evt->u.tlb_error.tlb_error_type] + : "Unknown"; + printk("%s Error type: TLB [%s]\n", level, subtype); + if (evt->u.tlb_error.effective_address_provided) + printk("%s Effective address: %016llx\n", + level, evt->u.tlb_error.effective_address); + break; + default: + case MCE_ERROR_TYPE_UNKNOWN: + printk("%s Error type: Unknown\n", level); + break; + } +} + +uint64_t get_mce_fault_addr(struct machine_check_event *evt) +{ + switch (evt->error_type) { + case MCE_ERROR_TYPE_UE: + if (evt->u.ue_error.effective_address_provided) + return evt->u.ue_error.effective_address; + break; + case MCE_ERROR_TYPE_SLB: + if (evt->u.slb_error.effective_address_provided) + return evt->u.slb_error.effective_address; + break; + case MCE_ERROR_TYPE_ERAT: + if (evt->u.erat_error.effective_address_provided) + return evt->u.erat_error.effective_address; + break; + case MCE_ERROR_TYPE_TLB: + if (evt->u.tlb_error.effective_address_provided) + return evt->u.tlb_error.effective_address; + break; + default: + case MCE_ERROR_TYPE_UNKNOWN: + break; + } + return 0; +} +EXPORT_SYMBOL(get_mce_fault_addr); --- linux-3.13.0.orig/arch/powerpc/kernel/mce_power.c +++ linux-3.13.0/arch/powerpc/kernel/mce_power.c @@ -0,0 +1,313 @@ +/* + * Machine check exception handling CPU-side for power7 and power8 + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * Copyright 2013 IBM Corporation + * Author: Mahesh Salgaonkar + */ + +#undef DEBUG +#define pr_fmt(fmt) "mce_power: " fmt + +#include +#include +#include +#include +#include + +/* flush SLBs and reload */ +static void flush_and_reload_slb(void) +{ + struct slb_shadow *slb; + unsigned long i, n; + + /* Invalidate all SLBs */ + asm volatile("slbmte %0,%0; slbia" : : "r" (0)); + +#ifdef CONFIG_KVM_BOOK3S_HANDLER + /* + * If machine check is hit when in guest or in transition, we will + * only flush the SLBs and continue. + */ + if (get_paca()->kvm_hstate.in_guest) + return; +#endif + + /* For host kernel, reload the SLBs from shadow SLB buffer. */ + slb = get_slb_shadow(); + if (!slb) + return; + + n = min_t(u32, be32_to_cpu(slb->persistent), SLB_MIN_SIZE); + + /* Load up the SLB entries from shadow SLB */ + for (i = 0; i < n; i++) { + unsigned long rb = be64_to_cpu(slb->save_area[i].esid); + unsigned long rs = be64_to_cpu(slb->save_area[i].vsid); + + rb = (rb & ~0xFFFul) | i; + asm volatile("slbmte %0,%1" : : "r" (rs), "r" (rb)); + } +} + +static long mce_handle_derror(uint64_t dsisr, uint64_t slb_error_bits) +{ + long handled = 1; + + /* + * flush and reload SLBs for SLB errors and flush TLBs for TLB errors. + * reset the error bits whenever we handle them so that at the end + * we can check whether we handled all of them or not. + * */ + if (dsisr & slb_error_bits) { + flush_and_reload_slb(); + /* reset error bits */ + dsisr &= ~(slb_error_bits); + } + if (dsisr & P7_DSISR_MC_TLB_MULTIHIT_MFTLB) { + if (cur_cpu_spec && cur_cpu_spec->flush_tlb) + cur_cpu_spec->flush_tlb(TLBIEL_INVAL_PAGE); + /* reset error bits */ + dsisr &= ~P7_DSISR_MC_TLB_MULTIHIT_MFTLB; + } + /* Any other errors we don't understand? */ + if (dsisr & 0xffffffffUL) + handled = 0; + + return handled; +} + +static long mce_handle_derror_p7(uint64_t dsisr) +{ + return mce_handle_derror(dsisr, P7_DSISR_MC_SLB_ERRORS); +} + +static long mce_handle_common_ierror(uint64_t srr1) +{ + long handled = 0; + + switch (P7_SRR1_MC_IFETCH(srr1)) { + case 0: + break; + case P7_SRR1_MC_IFETCH_SLB_PARITY: + case P7_SRR1_MC_IFETCH_SLB_MULTIHIT: + /* flush and reload SLBs for SLB errors. */ + flush_and_reload_slb(); + handled = 1; + break; + case P7_SRR1_MC_IFETCH_TLB_MULTIHIT: + if (cur_cpu_spec && cur_cpu_spec->flush_tlb) { + cur_cpu_spec->flush_tlb(TLBIEL_INVAL_PAGE); + handled = 1; + } + break; + default: + break; + } + + return handled; +} + +static long mce_handle_ierror_p7(uint64_t srr1) +{ + long handled = 0; + + handled = mce_handle_common_ierror(srr1); + + if (P7_SRR1_MC_IFETCH(srr1) == P7_SRR1_MC_IFETCH_SLB_BOTH) { + flush_and_reload_slb(); + handled = 1; + } + return handled; +} + +static void mce_get_common_ierror(struct mce_error_info *mce_err, uint64_t srr1) +{ + switch (P7_SRR1_MC_IFETCH(srr1)) { + case P7_SRR1_MC_IFETCH_SLB_PARITY: + mce_err->error_type = MCE_ERROR_TYPE_SLB; + mce_err->u.slb_error_type = MCE_SLB_ERROR_PARITY; + break; + case P7_SRR1_MC_IFETCH_SLB_MULTIHIT: + mce_err->error_type = MCE_ERROR_TYPE_SLB; + mce_err->u.slb_error_type = MCE_SLB_ERROR_MULTIHIT; + break; + case P7_SRR1_MC_IFETCH_TLB_MULTIHIT: + mce_err->error_type = MCE_ERROR_TYPE_TLB; + mce_err->u.tlb_error_type = MCE_TLB_ERROR_MULTIHIT; + break; + case P7_SRR1_MC_IFETCH_UE: + case P7_SRR1_MC_IFETCH_UE_IFU_INTERNAL: + mce_err->error_type = MCE_ERROR_TYPE_UE; + mce_err->u.ue_error_type = MCE_UE_ERROR_IFETCH; + break; + case P7_SRR1_MC_IFETCH_UE_TLB_RELOAD: + mce_err->error_type = MCE_ERROR_TYPE_UE; + mce_err->u.ue_error_type = + MCE_UE_ERROR_PAGE_TABLE_WALK_IFETCH; + break; + } +} + +static void mce_get_ierror_p7(struct mce_error_info *mce_err, uint64_t srr1) +{ + mce_get_common_ierror(mce_err, srr1); + if (P7_SRR1_MC_IFETCH(srr1) == P7_SRR1_MC_IFETCH_SLB_BOTH) { + mce_err->error_type = MCE_ERROR_TYPE_SLB; + mce_err->u.slb_error_type = MCE_SLB_ERROR_INDETERMINATE; + } +} + +static void mce_get_derror_p7(struct mce_error_info *mce_err, uint64_t dsisr) +{ + if (dsisr & P7_DSISR_MC_UE) { + mce_err->error_type = MCE_ERROR_TYPE_UE; + mce_err->u.ue_error_type = MCE_UE_ERROR_LOAD_STORE; + } else if (dsisr & P7_DSISR_MC_UE_TABLEWALK) { + mce_err->error_type = MCE_ERROR_TYPE_UE; + mce_err->u.ue_error_type = + MCE_UE_ERROR_PAGE_TABLE_WALK_LOAD_STORE; + } else if (dsisr & P7_DSISR_MC_ERAT_MULTIHIT) { + mce_err->error_type = MCE_ERROR_TYPE_ERAT; + mce_err->u.erat_error_type = MCE_ERAT_ERROR_MULTIHIT; + } else if (dsisr & P7_DSISR_MC_SLB_MULTIHIT) { + mce_err->error_type = MCE_ERROR_TYPE_SLB; + mce_err->u.slb_error_type = MCE_SLB_ERROR_MULTIHIT; + } else if (dsisr & P7_DSISR_MC_SLB_PARITY_MFSLB) { + mce_err->error_type = MCE_ERROR_TYPE_SLB; + mce_err->u.slb_error_type = MCE_SLB_ERROR_PARITY; + } else if (dsisr & P7_DSISR_MC_TLB_MULTIHIT_MFTLB) { + mce_err->error_type = MCE_ERROR_TYPE_TLB; + mce_err->u.tlb_error_type = MCE_TLB_ERROR_MULTIHIT; + } else if (dsisr & P7_DSISR_MC_SLB_MULTIHIT_PARITY) { + mce_err->error_type = MCE_ERROR_TYPE_SLB; + mce_err->u.slb_error_type = MCE_SLB_ERROR_INDETERMINATE; + } +} + +static long mce_handle_ue_error(struct pt_regs *regs) +{ + long handled = 0; + + /* + * On specific SCOM read via MMIO we may get a machine check + * exception with SRR0 pointing inside opal. If that is the + * case OPAL may have recovery address to re-read SCOM data in + * different way and hence we can recover from this MC. + */ + + if (ppc_md.mce_check_early_recovery) { + if (ppc_md.mce_check_early_recovery(regs)) + handled = 1; + } + return handled; +} + +long __machine_check_early_realmode_p7(struct pt_regs *regs) +{ + uint64_t srr1, nip, addr; + long handled = 1; + struct mce_error_info mce_error_info = { 0 }; + + srr1 = regs->msr; + nip = regs->nip; + + /* + * Handle memory errors depending whether this was a load/store or + * ifetch exception. Also, populate the mce error_type and + * type-specific error_type from either SRR1 or DSISR, depending + * whether this was a load/store or ifetch exception + */ + if (P7_SRR1_MC_LOADSTORE(srr1)) { + handled = mce_handle_derror_p7(regs->dsisr); + mce_get_derror_p7(&mce_error_info, regs->dsisr); + addr = regs->dar; + } else { + handled = mce_handle_ierror_p7(srr1); + mce_get_ierror_p7(&mce_error_info, srr1); + addr = regs->nip; + } + + /* Handle UE error. */ + if (mce_error_info.error_type == MCE_ERROR_TYPE_UE) + handled = mce_handle_ue_error(regs); + + save_mce_event(regs, handled, &mce_error_info, nip, addr); + return handled; +} + +static void mce_get_ierror_p8(struct mce_error_info *mce_err, uint64_t srr1) +{ + mce_get_common_ierror(mce_err, srr1); + if (P7_SRR1_MC_IFETCH(srr1) == P8_SRR1_MC_IFETCH_ERAT_MULTIHIT) { + mce_err->error_type = MCE_ERROR_TYPE_ERAT; + mce_err->u.erat_error_type = MCE_ERAT_ERROR_MULTIHIT; + } +} + +static void mce_get_derror_p8(struct mce_error_info *mce_err, uint64_t dsisr) +{ + mce_get_derror_p7(mce_err, dsisr); + if (dsisr & P8_DSISR_MC_ERAT_MULTIHIT_SEC) { + mce_err->error_type = MCE_ERROR_TYPE_ERAT; + mce_err->u.erat_error_type = MCE_ERAT_ERROR_MULTIHIT; + } +} + +static long mce_handle_ierror_p8(uint64_t srr1) +{ + long handled = 0; + + handled = mce_handle_common_ierror(srr1); + + if (P7_SRR1_MC_IFETCH(srr1) == P8_SRR1_MC_IFETCH_ERAT_MULTIHIT) { + flush_and_reload_slb(); + handled = 1; + } + return handled; +} + +static long mce_handle_derror_p8(uint64_t dsisr) +{ + return mce_handle_derror(dsisr, P8_DSISR_MC_SLB_ERRORS); +} + +long __machine_check_early_realmode_p8(struct pt_regs *regs) +{ + uint64_t srr1, nip, addr; + long handled = 1; + struct mce_error_info mce_error_info = { 0 }; + + srr1 = regs->msr; + nip = regs->nip; + + if (P7_SRR1_MC_LOADSTORE(srr1)) { + handled = mce_handle_derror_p8(regs->dsisr); + mce_get_derror_p8(&mce_error_info, regs->dsisr); + addr = regs->dar; + } else { + handled = mce_handle_ierror_p8(srr1); + mce_get_ierror_p8(&mce_error_info, srr1); + addr = regs->nip; + } + + /* Handle UE error. */ + if (mce_error_info.error_type == MCE_ERROR_TYPE_UE) + handled = mce_handle_ue_error(regs); + + save_mce_event(regs, handled, &mce_error_info, nip, addr); + return handled; +} --- linux-3.13.0.orig/arch/powerpc/kernel/misc_32.S +++ linux-3.13.0/arch/powerpc/kernel/misc_32.S @@ -57,11 +57,14 @@ mtlr r0 blr +/* + * void call_do_irq(struct pt_regs *regs, struct thread_info *irqtp); + */ _GLOBAL(call_do_irq) mflr r0 stw r0,4(r1) lwz r10,THREAD+KSP_LIMIT(r2) - addi r11,r3,THREAD_INFO_GAP + addi r11,r4,THREAD_INFO_GAP stwu r1,THREAD_SIZE-STACK_FRAME_OVERHEAD(r4) mr r1,r4 stw r10,8(r1) --- linux-3.13.0.orig/arch/powerpc/kernel/misc_64.S +++ linux-3.13.0/arch/powerpc/kernel/misc_64.S @@ -481,6 +481,49 @@ #ifdef CONFIG_KEXEC +#ifdef CONFIG_PPC_BOOK3E +/* BOOK3E have no a real MMU mode so we have to setup the initial TLB + * for a core to map v:0 to p:0 as 1:1. This current implementation + * assume that 1G is enough for kexec. + */ +#include +kexec_create_tlb: + /* Invalidate all TLBs to avoid any TLB conflict. */ + PPC_TLBILX_ALL(0,R0) + sync + isync + + mfspr r10,SPRN_TLB1CFG + andi. r10,r10,TLBnCFG_N_ENTRY /* Extract # entries */ + subi r10,r10,1 /* Often its always safe to use last */ + lis r9,MAS0_TLBSEL(1)@h + rlwimi r9,r10,16,4,15 /* Setup MAS0 = TLBSEL | ESEL(r9) */ + +/* Setup a temp mapping v:0 to p:0 as 1:1 and return to it. + */ +#ifdef CONFIG_SMP +#define M_IF_SMP MAS2_M +#else +#define M_IF_SMP 0 +#endif + mtspr SPRN_MAS0,r9 + + lis r9,(MAS1_VALID|MAS1_IPROT)@h + ori r9,r9,(MAS1_TSIZE(BOOK3E_PAGESZ_1GB))@l + mtspr SPRN_MAS1,r9 + + LOAD_REG_IMMEDIATE(r9, 0x0 | M_IF_SMP) + mtspr SPRN_MAS2,r9 + + LOAD_REG_IMMEDIATE(r9, 0x0 | MAS3_SR | MAS3_SW | MAS3_SX) + mtspr SPRN_MAS3,r9 + li r9,0 + mtspr SPRN_MAS7,r9 + + tlbwe + isync + blr +#endif /* kexec_smp_wait(void) * @@ -494,6 +537,10 @@ */ _GLOBAL(kexec_smp_wait) lhz r3,PACAHWCPUID(r13) +#ifdef CONFIG_PPC_BOOK3E + /* Create a 1:1 mapping. */ + bl kexec_create_tlb +#endif bl real_mode li r4,KEXEC_STATE_REAL_MODE @@ -510,6 +557,7 @@ * don't overwrite r3 here, it is live for kexec_wait above. */ real_mode: /* assume normal blr return */ +#ifndef CONFIG_PPC_BOOK3E 1: li r9,MSR_RI li r10,MSR_DR|MSR_IR mflr r11 /* return address to SRR0 */ @@ -521,7 +569,10 @@ mtspr SPRN_SRR1,r10 mtspr SPRN_SRR0,r11 rfid - +#else + /* the real mode is nothing for book3e. */ + blr +#endif /* * kexec_sequence(newstack, start, image, control, clear_all()) @@ -564,9 +615,15 @@ lhz r25,PACAHWCPUID(r13) /* get our phys cpu from paca */ /* disable interrupts, we are overwriting kernel data next */ +#ifndef CONFIG_PPC_BOOK3E mfmsr r3 rlwinm r3,r3,0,17,15 mtmsrd r3,1 +#else + wrteei 0 + /* Create a 1:1 mapping. */ + bl kexec_create_tlb +#endif /* copy dest pages, flush whole dest image */ mr r3,r29 @@ -583,15 +640,23 @@ bl .copy_and_flush /* (dest, src, copy limit, start offset) */ 1: /* assume normal blr return */ + /* notify we're going into kexec kernel for SMP. */ + LOAD_REG_ADDR(r3,__run_at_kexec) + li r4,1 + std r4,0(r3) + sync + /* release other cpus to the new kernel secondary start at 0x60 */ mflr r5 li r6,1 stw r6,kexec_flag-1b(5) +#ifndef CONFIG_PPC_BOOK3E /* clear out hardware hash page table and tlb */ ld r5,0(r27) /* deref function descriptor */ mtctr r5 bctrl /* ppc_md.hpte_clear_all(void); */ +#endif /* * kexec image calling is: --- linux-3.13.0.orig/arch/powerpc/kernel/pci-common.c +++ linux-3.13.0/arch/powerpc/kernel/pci-common.c @@ -1483,9 +1483,15 @@ return pci_enable_resources(dev, mask); } +/* Before assuming too much here, take care to realize that we need sign + * extension from 32-bit pointers to 64-bit resource addresses to work. + */ resource_size_t pcibios_io_space_offset(struct pci_controller *hose) { - return (unsigned long) hose->io_base_virt - _IO_BASE; + long vbase = (long)hose->io_base_virt; + long io_base = _IO_BASE; + + return (resource_size_t)(vbase - io_base); } static void pcibios_setup_phb_resources(struct pci_controller *hose, --- linux-3.13.0.orig/arch/powerpc/kernel/process.c +++ linux-3.13.0/arch/powerpc/kernel/process.c @@ -74,6 +74,48 @@ struct task_struct *last_task_used_spe = NULL; #endif +#ifdef CONFIG_PPC_TRANSACTIONAL_MEM +void giveup_fpu_maybe_transactional(struct task_struct *tsk) +{ + /* + * If we are saving the current thread's registers, and the + * thread is in a transactional state, set the TIF_RESTORE_TM + * bit so that we know to restore the registers before + * returning to userspace. + */ + if (tsk == current && tsk->thread.regs && + MSR_TM_ACTIVE(tsk->thread.regs->msr) && + !test_thread_flag(TIF_RESTORE_TM)) { + tsk->thread.tm_orig_msr = tsk->thread.regs->msr; + set_thread_flag(TIF_RESTORE_TM); + } + + giveup_fpu(tsk); +} + +void giveup_altivec_maybe_transactional(struct task_struct *tsk) +{ + /* + * If we are saving the current thread's registers, and the + * thread is in a transactional state, set the TIF_RESTORE_TM + * bit so that we know to restore the registers before + * returning to userspace. + */ + if (tsk == current && tsk->thread.regs && + MSR_TM_ACTIVE(tsk->thread.regs->msr) && + !test_thread_flag(TIF_RESTORE_TM)) { + tsk->thread.tm_orig_msr = tsk->thread.regs->msr; + set_thread_flag(TIF_RESTORE_TM); + } + + giveup_altivec(tsk); +} + +#else +#define giveup_fpu_maybe_transactional(tsk) giveup_fpu(tsk) +#define giveup_altivec_maybe_transactional(tsk) giveup_altivec(tsk) +#endif /* CONFIG_PPC_TRANSACTIONAL_MEM */ + #ifdef CONFIG_PPC_FPU /* * Make sure the floating-point register state in the @@ -102,13 +144,13 @@ */ BUG_ON(tsk != current); #endif - giveup_fpu(tsk); + giveup_fpu_maybe_transactional(tsk); } preempt_enable(); } } EXPORT_SYMBOL_GPL(flush_fp_to_thread); -#endif +#endif /* CONFIG_PPC_FPU */ void enable_kernel_fp(void) { @@ -116,11 +158,11 @@ #ifdef CONFIG_SMP if (current->thread.regs && (current->thread.regs->msr & MSR_FP)) - giveup_fpu(current); + giveup_fpu_maybe_transactional(current); else giveup_fpu(NULL); /* just enables FP for kernel */ #else - giveup_fpu(last_task_used_math); + giveup_fpu_maybe_transactional(last_task_used_math); #endif /* CONFIG_SMP */ } EXPORT_SYMBOL(enable_kernel_fp); @@ -132,11 +174,11 @@ #ifdef CONFIG_SMP if (current->thread.regs && (current->thread.regs->msr & MSR_VEC)) - giveup_altivec(current); + giveup_altivec_maybe_transactional(current); else giveup_altivec_notask(); #else - giveup_altivec(last_task_used_altivec); + giveup_altivec_maybe_transactional(last_task_used_altivec); #endif /* CONFIG_SMP */ } EXPORT_SYMBOL(enable_kernel_altivec); @@ -153,7 +195,7 @@ #ifdef CONFIG_SMP BUG_ON(tsk != current); #endif - giveup_altivec(tsk); + giveup_altivec_maybe_transactional(tsk); } preempt_enable(); } @@ -182,8 +224,8 @@ void giveup_vsx(struct task_struct *tsk) { - giveup_fpu(tsk); - giveup_altivec(tsk); + giveup_fpu_maybe_transactional(tsk); + giveup_altivec_maybe_transactional(tsk); __giveup_vsx(tsk); } @@ -479,7 +521,48 @@ return false; return true; } + #ifdef CONFIG_PPC_TRANSACTIONAL_MEM +static void tm_reclaim_thread(struct thread_struct *thr, + struct thread_info *ti, uint8_t cause) +{ + unsigned long msr_diff = 0; + + /* + * If FP/VSX registers have been already saved to the + * thread_struct, move them to the transact_fp array. + * We clear the TIF_RESTORE_TM bit since after the reclaim + * the thread will no longer be transactional. + */ + if (test_ti_thread_flag(ti, TIF_RESTORE_TM)) { + msr_diff = thr->tm_orig_msr & ~thr->regs->msr; + if (msr_diff & MSR_FP) + memcpy(&thr->transact_fp, &thr->fp_state, + sizeof(struct thread_fp_state)); + if (msr_diff & MSR_VEC) + memcpy(&thr->transact_vr, &thr->vr_state, + sizeof(struct thread_vr_state)); + clear_ti_thread_flag(ti, TIF_RESTORE_TM); + msr_diff &= MSR_FP | MSR_VEC | MSR_VSX | MSR_FE0 | MSR_FE1; + } + + tm_reclaim(thr, thr->regs->msr, cause); + + /* Having done the reclaim, we now have the checkpointed + * FP/VSX values in the registers. These might be valid + * even if we have previously called enable_kernel_fp() or + * flush_fp_to_thread(), so update thr->regs->msr to + * indicate their current validity. + */ + thr->regs->msr |= msr_diff; +} + +void tm_reclaim_current(uint8_t cause) +{ + tm_enable(); + tm_reclaim_thread(¤t->thread, current_thread_info(), cause); +} + static inline void tm_reclaim_task(struct task_struct *tsk) { /* We have to work out if we're switching from/to a task that's in the @@ -502,9 +585,11 @@ /* Stash the original thread MSR, as giveup_fpu et al will * modify it. We hold onto it to see whether the task used - * FP & vector regs. + * FP & vector regs. If the TIF_RESTORE_TM flag is set, + * tm_orig_msr is already set. */ - thr->tm_orig_msr = thr->regs->msr; + if (!test_ti_thread_flag(task_thread_info(tsk), TIF_RESTORE_TM)) + thr->tm_orig_msr = thr->regs->msr; TM_DEBUG("--- tm_reclaim on pid %d (NIP=%lx, " "ccr=%lx, msr=%lx, trap=%lx)\n", @@ -512,7 +597,7 @@ thr->regs->ccr, thr->regs->msr, thr->regs->trap); - tm_reclaim(thr, thr->regs->msr, TM_CAUSE_RESCHED); + tm_reclaim_thread(thr, task_thread_info(tsk), TM_CAUSE_RESCHED); TM_DEBUG("--- tm_reclaim on pid %d complete\n", tsk->pid); @@ -588,6 +673,43 @@ tm_reclaim_task(prev); } } + +/* + * This is called if we are on the way out to userspace and the + * TIF_RESTORE_TM flag is set. It checks if we need to reload + * FP and/or vector state and does so if necessary. + * If userspace is inside a transaction (whether active or + * suspended) and FP/VMX/VSX instructions have ever been enabled + * inside that transaction, then we have to keep them enabled + * and keep the FP/VMX/VSX state loaded while ever the transaction + * continues. The reason is that if we didn't, and subsequently + * got a FP/VMX/VSX unavailable interrupt inside a transaction, + * we don't know whether it's the same transaction, and thus we + * don't know which of the checkpointed state and the transactional + * state to use. + */ +void restore_tm_state(struct pt_regs *regs) +{ + unsigned long msr_diff; + + clear_thread_flag(TIF_RESTORE_TM); + if (!MSR_TM_ACTIVE(regs->msr)) + return; + + msr_diff = current->thread.tm_orig_msr & ~regs->msr; + msr_diff &= MSR_FP | MSR_VEC | MSR_VSX; + if (msr_diff & MSR_FP) { + fp_enable(); + load_fp_state(¤t->thread.fp_state); + regs->msr |= current->thread.fpexc_mode; + } + if (msr_diff & MSR_VEC) { + vec_enable(); + load_vr_state(¤t->thread.vr_state); + } + regs->msr |= msr_diff; +} + #else #define tm_recheckpoint_new_task(new) #define __switch_to_tm(prev) @@ -604,15 +726,15 @@ WARN_ON(!irqs_disabled()); - /* Back up the TAR across context switches. + /* Back up the TAR and DSCR across context switches. * Note that the TAR is not available for use in the kernel. (To * provide this, the TAR should be backed up/restored on exception * entry/exit instead, and be in pt_regs. FIXME, this should be in * pt_regs anyway (for debug).) - * Save the TAR here before we do treclaim/trecheckpoint as these - * will change the TAR. + * Save the TAR and DSCR here before we do treclaim/trecheckpoint as + * these will change them. */ - save_tar(&prev->thread); + save_early_sprs(&prev->thread); __switch_to_tm(prev); @@ -927,6 +1049,15 @@ flush_altivec_to_thread(src); flush_vsx_to_thread(src); flush_spe_to_thread(src); + /* + * Flush TM state out so we can copy it. __switch_to_tm() does this + * flush but it removes the checkpointed state from the current CPU and + * transitions the CPU out of TM mode. Hence we need to call + * tm_recheckpoint_new_task() (on the same task) to restore the + * checkpointed state back and the TM mode. + */ + __switch_to_tm(src); + tm_recheckpoint_new_task(src); *dst = *src; --- linux-3.13.0.orig/arch/powerpc/kernel/prom.c +++ linux-3.13.0/arch/powerpc/kernel/prom.c @@ -737,6 +737,11 @@ spinning_secondaries = boot_cpu_count - 1; #endif +#ifdef CONFIG_PPC_POWERNV + /* Scan and build the list of machine check recoverable ranges */ + of_scan_flat_dt(early_init_dt_scan_recoverable_ranges, NULL); +#endif + DBG(" <- early_init_devtree()\n"); } --- linux-3.13.0.orig/arch/powerpc/kernel/reloc_64.S +++ linux-3.13.0/arch/powerpc/kernel/reloc_64.S @@ -69,8 +69,8 @@ * R_PPC64_RELATIVE ones. */ mtctr r8 -5: lwz r0,12(9) /* ELF64_R_TYPE(reloc->r_info) */ - cmpwi r0,R_PPC64_RELATIVE +5: ld r0,8(9) /* ELF64_R_TYPE(reloc->r_info) */ + cmpdi r0,R_PPC64_RELATIVE bne 6f ld r6,0(r9) /* reloc->r_offset */ ld r0,16(r9) /* reloc->r_addend */ @@ -81,6 +81,7 @@ 6: blr +.balign 8 p_dyn: .llong __dynamic_start - 0b p_rela: .llong __rela_dyn_start - 0b p_st: .llong _stext - 0b --- linux-3.13.0.orig/arch/powerpc/kernel/rtas.c +++ linux-3.13.0/arch/powerpc/kernel/rtas.c @@ -993,32 +993,36 @@ (struct rtas_ext_event_log_v6 *)log->buffer; struct pseries_errorlog *sect; unsigned char *p, *log_end; + uint32_t ext_log_length = rtas_error_extended_log_length(log); + uint8_t log_format = rtas_ext_event_log_format(ext_log); + uint32_t company_id = rtas_ext_event_company_id(ext_log); /* Check that we understand the format */ - if (log->extended_log_length < sizeof(struct rtas_ext_event_log_v6) || - ext_log->log_format != RTAS_V6EXT_LOG_FORMAT_EVENT_LOG || - ext_log->company_id != RTAS_V6EXT_COMPANY_ID_IBM) + if (ext_log_length < sizeof(struct rtas_ext_event_log_v6) || + log_format != RTAS_V6EXT_LOG_FORMAT_EVENT_LOG || + company_id != RTAS_V6EXT_COMPANY_ID_IBM) return NULL; - log_end = log->buffer + log->extended_log_length; + log_end = log->buffer + ext_log_length; p = ext_log->vendor_log; while (p < log_end) { sect = (struct pseries_errorlog *)p; - if (sect->id == section_id) + if (pseries_errorlog_id(sect) == section_id) return sect; - p += sect->length; + p += pseries_errorlog_length(sect); } return NULL; } +/* We assume to be passed big endian arguments */ asmlinkage int ppc_rtas(struct rtas_args __user *uargs) { struct rtas_args args; unsigned long flags; char *buff_copy, *errbuf = NULL; - int nargs; + int nargs, nret, token; int rc; if (!capable(CAP_SYS_ADMIN)) @@ -1027,10 +1031,13 @@ if (copy_from_user(&args, uargs, 3 * sizeof(u32)) != 0) return -EFAULT; - nargs = args.nargs; + nargs = be32_to_cpu(args.nargs); + nret = be32_to_cpu(args.nret); + token = be32_to_cpu(args.token); + if (nargs > ARRAY_SIZE(args.args) - || args.nret > ARRAY_SIZE(args.args) - || nargs + args.nret > ARRAY_SIZE(args.args)) + || nret > ARRAY_SIZE(args.args) + || nargs + nret > ARRAY_SIZE(args.args)) return -EINVAL; /* Copy in args. */ @@ -1038,14 +1045,14 @@ nargs * sizeof(rtas_arg_t)) != 0) return -EFAULT; - if (args.token == RTAS_UNKNOWN_SERVICE) + if (token == RTAS_UNKNOWN_SERVICE) return -EINVAL; args.rets = &args.args[nargs]; - memset(args.rets, 0, args.nret * sizeof(rtas_arg_t)); + memset(args.rets, 0, nret * sizeof(rtas_arg_t)); /* Need to handle ibm,suspend_me call specially */ - if (args.token == ibm_suspend_me_token) { + if (token == ibm_suspend_me_token) { rc = rtas_ibm_suspend_me(&args); if (rc) return rc; @@ -1062,7 +1069,7 @@ /* A -1 return code indicates that the last command couldn't be completed due to a hardware error. */ - if (args.rets[0] == -1) + if (be32_to_cpu(args.rets[0]) == -1) errbuf = __fetch_rtas_last_error(buff_copy); unlock_rtas(flags); @@ -1077,7 +1084,7 @@ /* Copy out args. */ if (copy_to_user(uargs->args + nargs, args.args + nargs, - args.nret * sizeof(rtas_arg_t)) != 0) + nret * sizeof(rtas_arg_t)) != 0) return -EFAULT; return 0; --- linux-3.13.0.orig/arch/powerpc/kernel/rtas_flash.c +++ linux-3.13.0/arch/powerpc/kernel/rtas_flash.c @@ -705,7 +705,7 @@ if (rtas_token("ibm,update-flash-64-and-reboot") == RTAS_UNKNOWN_SERVICE) { pr_info("rtas_flash: no firmware flash support\n"); - return 1; + return -EINVAL; } rtas_validate_flash_data.buf = kzalloc(VALIDATE_BUF_SIZE, GFP_KERNEL); --- linux-3.13.0.orig/arch/powerpc/kernel/rtasd.c +++ linux-3.13.0/arch/powerpc/kernel/rtasd.c @@ -150,8 +150,8 @@ struct rtas_error_log *errlog = (struct rtas_error_log *)buf; printk(RTAS_DEBUG "event: %d, Type: %s, Severity: %d\n", - error_log_cnt, rtas_event_type(errlog->type), - errlog->severity); + error_log_cnt, rtas_event_type(rtas_error_type(errlog)), + rtas_error_severity(errlog)); } } @@ -159,14 +159,16 @@ { int len; struct rtas_error_log *err; + uint32_t extended_log_length; /* rtas fixed header */ len = 8; err = (struct rtas_error_log *)buf; - if (err->extended && err->extended_log_length) { + extended_log_length = rtas_error_extended_log_length(err); + if (rtas_error_extended(err) && extended_log_length) { /* extended header */ - len += err->extended_log_length; + len += extended_log_length; } if (rtas_error_log_max == 0) @@ -293,15 +295,13 @@ static void handle_rtas_event(const struct rtas_error_log *log) { - if (log->type == RTAS_TYPE_PRRN) { - /* For PRRN Events the extended log length is used to denote - * the scope for calling rtas update-nodes. - */ - if (prrn_is_enabled()) - prrn_schedule_update(log->extended_log_length); - } + if (rtas_error_type(log) != RTAS_TYPE_PRRN || !prrn_is_enabled()) + return; - return; + /* For PRRN Events the extended log length is used to denote + * the scope for calling rtas update-nodes. + */ + prrn_schedule_update(rtas_error_extended_log_length(log)); } #else --- linux-3.13.0.orig/arch/powerpc/kernel/setup-common.c +++ linux-3.13.0/arch/powerpc/kernel/setup-common.c @@ -456,9 +456,17 @@ } for (j = 0; j < nthreads && cpu < nr_cpu_ids; j++) { + bool avail; + DBG(" thread %d -> cpu %d (hard id %d)\n", j, cpu, be32_to_cpu(intserv[j])); - set_cpu_present(cpu, true); + + avail = of_device_is_available(dn); + if (!avail) + avail = !of_property_match_string(dn, + "enable-method", "spin-table"); + + set_cpu_present(cpu, avail); set_hard_smp_processor_id(cpu, be32_to_cpu(intserv[j])); set_cpu_possible(cpu, true); cpu++; --- linux-3.13.0.orig/arch/powerpc/kernel/setup_64.c +++ linux-3.13.0/arch/powerpc/kernel/setup_64.c @@ -544,7 +544,8 @@ /* * Stack space used when we detect a bad kernel stack pointer, and - * early in SMP boots before relocation is enabled. + * early in SMP boots before relocation is enabled. Exclusive emergency + * stack for machine checks. */ static void __init emergency_stack_init(void) { @@ -567,6 +568,13 @@ sp = memblock_alloc_base(THREAD_SIZE, THREAD_SIZE, limit); sp += THREAD_SIZE; paca[i].emergency_sp = __va(sp); + +#ifdef CONFIG_PPC_BOOK3S_64 + /* emergency stack for machine check exception handling. */ + sp = memblock_alloc_base(THREAD_SIZE, THREAD_SIZE, limit); + sp += THREAD_SIZE; + paca[i].mc_emergency_sp = __va(sp); +#endif } } --- linux-3.13.0.orig/arch/powerpc/kernel/signal.c +++ linux-3.13.0/arch/powerpc/kernel/signal.c @@ -203,8 +203,7 @@ #ifdef CONFIG_PPC_TRANSACTIONAL_MEM if (MSR_TM_ACTIVE(regs->msr)) { - tm_enable(); - tm_reclaim(¤t->thread, regs->msr, TM_CAUSE_SIGNAL); + tm_reclaim_current(TM_CAUSE_SIGNAL); if (MSR_TM_TRANSACTIONAL(regs->msr)) return current->thread.ckpt_regs.gpr[1]; } --- linux-3.13.0.orig/arch/powerpc/kernel/signal_32.c +++ linux-3.13.0/arch/powerpc/kernel/signal_32.c @@ -519,6 +519,13 @@ { unsigned long msr = regs->msr; + /* Remove TM bits from thread's MSR. The MSR in the sigcontext + * just indicates to userland that we were doing a transaction, but we + * don't want to return in transactional state. This also ensures + * that flush_fp_to_thread won't set TIF_RESTORE_TM again. + */ + regs->msr &= ~MSR_TS_MASK; + /* Make sure floating point registers are stored in regs */ flush_fp_to_thread(current); @@ -1056,13 +1063,6 @@ /* enter the signal handler in native-endian mode */ regs->msr &= ~MSR_LE; regs->msr |= (MSR_KERNEL & MSR_LE); -#ifdef CONFIG_PPC_TRANSACTIONAL_MEM - /* Remove TM bits from thread's MSR. The MSR in the sigcontext - * just indicates to userland that we were doing a transaction, but we - * don't want to return in transactional state: - */ - regs->msr &= ~MSR_TS_MASK; -#endif return 1; badframe: @@ -1484,13 +1484,6 @@ regs->nip = (unsigned long) ka->sa.sa_handler; /* enter the signal handler in big-endian mode */ regs->msr &= ~MSR_LE; -#ifdef CONFIG_PPC_TRANSACTIONAL_MEM - /* Remove TM bits from thread's MSR. The MSR in the sigcontext - * just indicates to userland that we were doing a transaction, but we - * don't want to return in transactional state: - */ - regs->msr &= ~MSR_TS_MASK; -#endif return 1; badframe: --- linux-3.13.0.orig/arch/powerpc/kernel/signal_64.c +++ linux-3.13.0/arch/powerpc/kernel/signal_64.c @@ -65,8 +65,8 @@ struct siginfo __user *pinfo; void __user *puc; struct siginfo info; - /* 64 bit ABI allows for 288 bytes below sp before decrementing it. */ - char abigap[288]; + /* New 64 bit little-endian ABI allows redzone of 512 bytes below sp */ + char abigap[USER_REDZONE_SIZE]; } __attribute__ ((aligned (16))); static const char fmt32[] = KERN_INFO \ @@ -192,6 +192,13 @@ BUG_ON(!MSR_TM_ACTIVE(regs->msr)); + /* Remove TM bits from thread's MSR. The MSR in the sigcontext + * just indicates to userland that we were doing a transaction, but we + * don't want to return in transactional state. This also ensures + * that flush_fp_to_thread won't set TIF_RESTORE_TM again. + */ + regs->msr &= ~MSR_TS_MASK; + flush_fp_to_thread(current); #ifdef CONFIG_ALTIVEC @@ -749,13 +756,6 @@ /* Make sure signal handler doesn't get spurious FP exceptions */ current->thread.fp_state.fpscr = 0; -#ifdef CONFIG_PPC_TRANSACTIONAL_MEM - /* Remove TM bits from thread's MSR. The MSR in the sigcontext - * just indicates to userland that we were doing a transaction, but we - * don't want to return in transactional state: - */ - regs->msr &= ~MSR_TS_MASK; -#endif /* Set up to return from userspace. */ if (vdso64_rt_sigtramp && current->mm->context.vdso_base) { --- linux-3.13.0.orig/arch/powerpc/kernel/smp.c +++ linux-3.13.0/arch/powerpc/kernel/smp.c @@ -384,6 +384,7 @@ #ifdef CONFIG_PPC64 paca[boot_cpuid].__current = current; #endif + set_numa_node(numa_cpu_lookup_table[boot_cpuid]); current_set[boot_cpuid] = task_thread_info(current); } @@ -744,6 +745,12 @@ } traverse_core_siblings(cpu, true); + /* + * numa_node_id() works after this. + */ + set_numa_node(numa_cpu_lookup_table[cpu]); + set_numa_mem(local_memory_node(numa_cpu_lookup_table[cpu])); + smp_wmb(); notify_cpu_starting(cpu); set_cpu_online(cpu, true); --- linux-3.13.0.orig/arch/powerpc/kernel/traps.c +++ linux-3.13.0/arch/powerpc/kernel/traps.c @@ -285,6 +285,21 @@ /* What should we do here? We could issue a shutdown or hard reset. */ } + +/* + * This function is called in real mode. Strictly no printk's please. + * + * regs->nip and regs->msr contains srr0 and ssr1. + */ +long machine_check_early(struct pt_regs *regs) +{ + long handled = 0; + + if (cur_cpu_spec && cur_cpu_spec->machine_check_early) + handled = cur_cpu_spec->machine_check_early(regs); + return handled; +} + #endif /* @@ -1384,7 +1399,6 @@ TM_DEBUG("FP Unavailable trap whilst transactional at 0x%lx, MSR=%lx\n", regs->nip, regs->msr); - tm_enable(); /* We can only have got here if the task started using FP after * beginning the transaction. So, the transactional regs are just a @@ -1393,8 +1407,7 @@ * transaction, and probably retry but now with FP enabled. So the * checkpointed FP registers need to be loaded. */ - tm_reclaim(¤t->thread, current->thread.regs->msr, - TM_CAUSE_FAC_UNAV); + tm_reclaim_current(TM_CAUSE_FAC_UNAV); /* Reclaim didn't save out any FPRs to transact_fprs. */ /* Enable FP for the task: */ @@ -1403,11 +1416,19 @@ /* This loads and recheckpoints the FP registers from * thread.fpr[]. They will remain in registers after the * checkpoint so we don't need to reload them after. + * If VMX is in use, the VRs now hold checkpointed values, + * so we don't want to load the VRs from the thread_struct. */ - tm_recheckpoint(¤t->thread, regs->msr); + tm_recheckpoint(¤t->thread, MSR_FP); + + /* If VMX is in use, get the transactional values back */ + if (regs->msr & MSR_VEC) { + do_load_up_transact_altivec(¤t->thread); + /* At this point all the VSX state is loaded, so enable it */ + regs->msr |= MSR_VSX; + } } -#ifdef CONFIG_ALTIVEC void altivec_unavailable_tm(struct pt_regs *regs) { /* See the comments in fp_unavailable_tm(). This function operates @@ -1417,18 +1438,21 @@ TM_DEBUG("Vector Unavailable trap whilst transactional at 0x%lx," "MSR=%lx\n", regs->nip, regs->msr); - tm_enable(); - tm_reclaim(¤t->thread, current->thread.regs->msr, - TM_CAUSE_FAC_UNAV); + tm_reclaim_current(TM_CAUSE_FAC_UNAV); regs->msr |= MSR_VEC; - tm_recheckpoint(¤t->thread, regs->msr); + tm_recheckpoint(¤t->thread, MSR_VEC); current->thread.used_vr = 1; + + if (regs->msr & MSR_FP) { + do_load_up_transact_fpu(¤t->thread); + regs->msr |= MSR_VSX; + } } -#endif -#ifdef CONFIG_VSX void vsx_unavailable_tm(struct pt_regs *regs) { + unsigned long orig_msr = regs->msr; + /* See the comments in fp_unavailable_tm(). This works similarly, * though we're loading both FP and VEC registers in here. * @@ -1440,18 +1464,30 @@ "MSR=%lx\n", regs->nip, regs->msr); - tm_enable(); + current->thread.used_vsr = 1; + + /* If FP and VMX are already loaded, we have all the state we need */ + if ((orig_msr & (MSR_FP | MSR_VEC)) == (MSR_FP | MSR_VEC)) { + regs->msr |= MSR_VSX; + return; + } + /* This reclaims FP and/or VR regs if they're already enabled */ - tm_reclaim(¤t->thread, current->thread.regs->msr, - TM_CAUSE_FAC_UNAV); + tm_reclaim_current(TM_CAUSE_FAC_UNAV); regs->msr |= MSR_VEC | MSR_FP | current->thread.fpexc_mode | MSR_VSX; - /* This loads & recheckpoints FP and VRs. */ - tm_recheckpoint(¤t->thread, regs->msr); - current->thread.used_vsr = 1; + + /* This loads & recheckpoints FP and VRs; but we have + * to be sure not to overwrite previously-valid state. + */ + tm_recheckpoint(¤t->thread, regs->msr & ~orig_msr); + + if (orig_msr & MSR_FP) + do_load_up_transact_fpu(¤t->thread); + if (orig_msr & MSR_VEC) + do_load_up_transact_altivec(¤t->thread); } -#endif #endif /* CONFIG_PPC_TRANSACTIONAL_MEM */ void performance_monitor_exception(struct pt_regs *regs) --- linux-3.13.0.orig/arch/powerpc/kernel/vdso32/getcpu.S +++ linux-3.13.0/arch/powerpc/kernel/vdso32/getcpu.S @@ -30,8 +30,8 @@ V_FUNCTION_BEGIN(__kernel_getcpu) .cfi_startproc mfspr r5,SPRN_USPRG3 - cmpdi cr0,r3,0 - cmpdi cr1,r4,0 + cmpwi cr0,r3,0 + cmpwi cr1,r4,0 clrlwi r6,r5,16 rlwinm r7,r5,16,31-15,31-0 beq cr0,1f --- linux-3.13.0.orig/arch/powerpc/kernel/vector.S +++ linux-3.13.0/arch/powerpc/kernel/vector.S @@ -37,6 +37,16 @@ #endif /* + * Enable use of VMX/Altivec for the caller. + */ +_GLOBAL(vec_enable) + mfmsr r3 + oris r3,r3,MSR_VEC@h + MTMSRD(r3) + isync + blr + +/* * Load state from memory into VMX registers including VSCR. * Assumes the caller has enabled VMX in the MSR. */ --- linux-3.13.0.orig/arch/powerpc/kvm/book3s_64_mmu_hv.c +++ linux-3.13.0/arch/powerpc/kvm/book3s_64_mmu_hv.c @@ -262,7 +262,7 @@ static void kvmppc_mmu_book3s_64_hv_reset_msr(struct kvm_vcpu *vcpu) { - kvmppc_set_msr(vcpu, MSR_SF | MSR_ME); + kvmppc_set_msr(vcpu, vcpu->arch.intr_msr); } /* @@ -544,7 +544,7 @@ * If we fail, we just return to the guest and try executing it again. */ if (vcpu->arch.last_inst == KVM_INST_FETCH_FAILED) { - ret = kvmppc_ld(vcpu, &srr0, sizeof(u32), &last_inst, false); + ret = kvmppc_ld32(vcpu, &srr0, &last_inst, false); if (ret != EMULATE_DONE || last_inst == KVM_INST_FETCH_FAILED) return RESUME_GUEST; vcpu->arch.last_inst = last_inst; --- linux-3.13.0.orig/arch/powerpc/kvm/book3s_hv.c +++ linux-3.13.0/arch/powerpc/kvm/book3s_hv.c @@ -85,10 +85,13 @@ /* CPU points to the first thread of the core */ if (cpu != me && cpu >= 0 && cpu < nr_cpu_ids) { +#ifdef CONFIG_PPC_ICP_NATIVE int real_cpu = cpu + vcpu->arch.ptid; if (paca[real_cpu].kvm_hstate.xics_phys) xics_wake_cpu(real_cpu); - else if (cpu_online(cpu)) + else +#endif + if (cpu_online(cpu)) smp_send_reschedule(cpu); } put_cpu(); @@ -537,6 +540,48 @@ vcpu->arch.dtl.dirty = true; } +static int kvmppc_h_set_mode(struct kvm_vcpu *vcpu, unsigned long mflags, + unsigned long resource, unsigned long value1, + unsigned long value2) +{ + struct kvm *kvm = vcpu->kvm; + struct kvm_vcpu *v; + int n; + + switch (resource) { + case H_SET_MODE_RESOURCE_LE: + if (value1) + return H_P3; + if (value2) + return H_P4; + + switch (mflags) { + case 0: + mutex_lock(&kvm->lock); + kvm->arch.lpcr &= ~LPCR_ILE; + kvm_for_each_vcpu(n, v, kvm) + v->arch.intr_msr &= ~MSR_LE; + mutex_unlock(&kvm->lock); + kick_all_cpus_sync(); + return H_SUCCESS; + + case 1: + mutex_lock(&kvm->lock); + kvm->arch.lpcr |= LPCR_ILE; + kvm_for_each_vcpu(n, v, kvm) + v->arch.intr_msr |= MSR_LE; + mutex_unlock(&kvm->lock); + kick_all_cpus_sync(); + return H_SUCCESS; + + default: + return H_UNSUPPORTED_FLAG_START; + } + default: + return H_P2; + } +} + int kvmppc_pseries_do_hcall(struct kvm_vcpu *vcpu) { unsigned long req = kvmppc_get_gpr(vcpu, 3); @@ -602,6 +647,12 @@ /* Send the error out to userspace via KVM_RUN */ return rc; + case H_SET_MODE: + ret = kvmppc_h_set_mode(vcpu, kvmppc_get_gpr(vcpu, 4), + kvmppc_get_gpr(vcpu, 5), + kvmppc_get_gpr(vcpu, 6), + kvmppc_get_gpr(vcpu, 7)); + break; case H_XIRR: case H_CPPR: @@ -1017,6 +1068,7 @@ spin_lock_init(&vcpu->arch.vpa_update_lock); spin_lock_init(&vcpu->arch.tbacct_lock); vcpu->arch.busy_preempt = TB_NIL; + vcpu->arch.intr_msr = MSR_SF | MSR_ME; kvmppc_mmu_book3s_hv_init(vcpu); --- linux-3.13.0.orig/arch/powerpc/kvm/book3s_hv_builtin.c +++ linux-3.13.0/arch/powerpc/kvm/book3s_hv_builtin.c @@ -156,6 +156,12 @@ unsigned long align_size; struct memblock_region *reg; phys_addr_t selected_size = 0; + + /* + * We need CMA reservation only when we are in HV mode + */ + if (!cpu_has_feature(CPU_FTR_HVMODE)) + return; /* * We cannot use memblock_phys_mem_size() here, because * memblock_analyze() has not been called yet. --- linux-3.13.0.orig/arch/powerpc/kvm/book3s_hv_ras.c +++ linux-3.13.0/arch/powerpc/kvm/book3s_hv_ras.c @@ -12,6 +12,7 @@ #include #include #include +#include /* SRR1 bits for machine check on POWER7 */ #define SRR1_MC_LDSTERR (1ul << (63-42)) @@ -58,18 +59,6 @@ } } -/* POWER7 TLB flush */ -static void flush_tlb_power7(struct kvm_vcpu *vcpu) -{ - unsigned long i, rb; - - rb = TLBIEL_INVAL_SET_LPID; - for (i = 0; i < POWER7_TLB_SETS; ++i) { - asm volatile("tlbiel %0" : : "r" (rb)); - rb += 1 << TLBIEL_INVAL_SET_SHIFT; - } -} - /* * On POWER7, see if we can handle a machine check that occurred inside * the guest in real mode, without switching to the host partition. @@ -79,9 +68,7 @@ static long kvmppc_realmode_mc_power7(struct kvm_vcpu *vcpu) { unsigned long srr1 = vcpu->arch.shregs.msr; -#ifdef CONFIG_PPC_POWERNV - struct opal_machine_check_event *opal_evt; -#endif + struct machine_check_event mce_evt; long handled = 1; if (srr1 & SRR1_MC_LDSTERR) { @@ -96,7 +83,8 @@ DSISR_MC_SLB_PARITY | DSISR_MC_DERAT_MULTI); } if (dsisr & DSISR_MC_TLB_MULTI) { - flush_tlb_power7(vcpu); + if (cur_cpu_spec && cur_cpu_spec->flush_tlb) + cur_cpu_spec->flush_tlb(TLBIEL_INVAL_SET_LPID); dsisr &= ~DSISR_MC_TLB_MULTI; } /* Any other errors we don't understand? */ @@ -113,28 +101,38 @@ reload_slb(vcpu); break; case SRR1_MC_IFETCH_TLBMULTI: - flush_tlb_power7(vcpu); + if (cur_cpu_spec && cur_cpu_spec->flush_tlb) + cur_cpu_spec->flush_tlb(TLBIEL_INVAL_SET_LPID); break; default: handled = 0; } -#ifdef CONFIG_PPC_POWERNV /* - * See if OPAL has already handled the condition. - * We assume that if the condition is recovered then OPAL + * See if we have already handled the condition in the linux host. + * We assume that if the condition is recovered then linux host * will have generated an error log event that we will pick * up and log later. + * Don't release mce event now. In case if condition is not + * recovered we do guest exit and go back to linux host machine + * check handler. Hence we need make sure that current mce event + * is available for linux host to consume. */ - opal_evt = local_paca->opal_mc_evt; - if (opal_evt->version == OpalMCE_V1 && - (opal_evt->severity == OpalMCE_SEV_NO_ERROR || - opal_evt->disposition == OpalMCE_DISPOSITION_RECOVERED)) + if (!get_mce_event(&mce_evt, MCE_EVENT_DONTRELEASE)) + goto out; + + if (mce_evt.version == MCE_V1 && + (mce_evt.severity == MCE_SEV_NO_ERROR || + mce_evt.disposition == MCE_DISPOSITION_RECOVERED)) handled = 1; +out: + /* + * If we have handled the error, then release the mce event because + * we will be delivering machine check to guest. + */ if (handled) - opal_evt->in_use = 0; -#endif + release_mce_event(); return handled; } --- linux-3.13.0.orig/arch/powerpc/kvm/book3s_hv_rmhandlers.S +++ linux-3.13.0/arch/powerpc/kvm/book3s_hv_rmhandlers.S @@ -676,8 +676,7 @@ 12: mr r6,r10 mr r10,r0 mr r7,r11 - li r11,(MSR_ME << 1) | 1 /* synthesize MSR_SF | MSR_ME */ - rotldi r11,r11,63 + ld r11,VCPU_INTR_MSR(r4) b 5f 11: beq 5f mfspr r0,SPRN_DEC @@ -896,8 +895,7 @@ mtspr SPRN_SRR0, r10 mtspr SPRN_SRR1, r11 li r10, BOOK3S_INTERRUPT_EXTERNAL - li r11, (MSR_ME << 1) | 1 /* synthesize MSR_SF | MSR_ME */ - rotldi r11, r11, 63 + ld r11,VCPU_INTR_MSR(r9) 2: mr r4, r9 mtspr SPRN_LPCR, r8 b fast_guest_return @@ -1386,8 +1384,7 @@ mtspr SPRN_SRR0, r10 mtspr SPRN_SRR1, r11 li r10, BOOK3S_INTERRUPT_DATA_STORAGE - li r11, (MSR_ME << 1) | 1 /* synthesize MSR_SF | MSR_ME */ - rotldi r11, r11, 63 + ld r11,VCPU_INTR_MSR(r9) fast_interrupt_c_return: 6: ld r7, VCPU_CTR(r9) lwz r8, VCPU_XER(r9) @@ -1415,10 +1412,19 @@ lwz r8, 0(r10) mtmsrd r3 + andi. r0, r11, MSR_LE + /* Store the result */ stw r8, VCPU_LAST_INST(r9) + beq after_inst_store + + /* Swap and store the result */ + addi r4, r9, VCPU_LAST_INST + stwbrx r8, 0, r4 + /* Unset guest mode. */ +after_inst_store: li r0, KVM_GUEST_MODE_HOST_HV stb r0, HSTATE_IN_GUEST(r13) b guest_exit_cont @@ -1456,8 +1462,7 @@ 1: mtspr SPRN_SRR0, r10 mtspr SPRN_SRR1, r11 li r10, BOOK3S_INTERRUPT_INST_STORAGE - li r11, (MSR_ME << 1) | 1 /* synthesize MSR_SF | MSR_ME */ - rotldi r11, r11, 63 + ld r11,VCPU_INTR_MSR(r9) b fast_interrupt_c_return 3: ld r6, VCPU_KVM(r9) /* not relocated, use VRMA */ @@ -1783,8 +1788,7 @@ beq mc_cont /* If not, deliver a machine check. SRR0/1 are already set */ li r10, BOOK3S_INTERRUPT_MACHINE_CHECK - li r11, (MSR_ME << 1) | 1 /* synthesize MSR_SF | MSR_ME */ - rotldi r11, r11, 63 + ld r11,VCPU_INTR_MSR(r9) b fast_interrupt_c_return /* --- linux-3.13.0.orig/arch/powerpc/kvm/book3s_pr.c +++ linux-3.13.0/arch/powerpc/kvm/book3s_pr.c @@ -627,7 +627,7 @@ u32 last_inst = kvmppc_get_last_inst(vcpu); int ret; - ret = kvmppc_ld(vcpu, &srr0, sizeof(u32), &last_inst, false); + ret = kvmppc_ld32(vcpu, &srr0, &last_inst, false); if (ret == -ENOENT) { ulong msr = vcpu->arch.shared->msr; --- linux-3.13.0.orig/arch/powerpc/kvm/book3s_pr_papr.c +++ linux-3.13.0/arch/powerpc/kvm/book3s_pr_papr.c @@ -258,6 +258,8 @@ int kvmppc_h_pr(struct kvm_vcpu *vcpu, unsigned long cmd) { + int rc, idx; + switch (cmd) { case H_ENTER: return kvmppc_h_pr_enter(vcpu); @@ -286,8 +288,11 @@ break; case H_RTAS: if (list_empty(&vcpu->kvm->arch.rtas_tokens)) - return RESUME_HOST; - if (kvmppc_rtas_hcall(vcpu)) + break; + idx = srcu_read_lock(&vcpu->kvm->srcu); + rc = kvmppc_rtas_hcall(vcpu); + srcu_read_unlock(&vcpu->kvm->srcu, idx); + if (rc) break; kvmppc_set_gpr(vcpu, 3, 0); return EMULATE_DONE; --- linux-3.13.0.orig/arch/powerpc/kvm/book3s_segment.S +++ linux-3.13.0/arch/powerpc/kvm/book3s_segment.S @@ -289,6 +289,15 @@ #endif stw r0, SVCPU_LAST_INST(r13) +#ifdef CONFIG_PPC64 + andi. r9, r4, MSR_LE + beq no_ld_last_inst + + /* swap and store the result */ + addi r9, r13, SVCPU_LAST_INST + stwbrx r0, 0, r9 +#endif + no_ld_last_inst: /* Unset guest mode */ --- linux-3.13.0.orig/arch/powerpc/kvm/e500_mmu.c +++ linux-3.13.0/arch/powerpc/kvm/e500_mmu.c @@ -127,7 +127,7 @@ } static inline void kvmppc_e500_deliver_tlb_miss(struct kvm_vcpu *vcpu, - unsigned int eaddr, int as) + gva_t eaddr, int as) { struct kvmppc_vcpu_e500 *vcpu_e500 = to_e500(vcpu); unsigned int victim, tsized; --- linux-3.13.0.orig/arch/powerpc/kvm/emulate.c +++ linux-3.13.0/arch/powerpc/kvm/emulate.c @@ -219,7 +219,6 @@ * lmw * stmw * - * XXX is_bigendian should depend on MMU mapping or MSR[LE] */ /* XXX Should probably auto-generate instruction decoding for a particular core * from opcode tables in the future. */ --- linux-3.13.0.orig/arch/powerpc/kvm/powerpc.c +++ linux-3.13.0/arch/powerpc/kvm/powerpc.c @@ -673,9 +673,13 @@ } int kvmppc_handle_load(struct kvm_run *run, struct kvm_vcpu *vcpu, - unsigned int rt, unsigned int bytes, int is_bigendian) + unsigned int rt, unsigned int bytes, int not_reverse) { int idx, ret; + int is_bigendian = not_reverse; + + if (!kvmppc_is_bigendian(vcpu)) + is_bigendian = !not_reverse; if (bytes > sizeof(run->mmio.data)) { printk(KERN_ERR "%s: bad MMIO length: %d\n", __func__, @@ -711,21 +715,25 @@ /* Same as above, but sign extends */ int kvmppc_handle_loads(struct kvm_run *run, struct kvm_vcpu *vcpu, - unsigned int rt, unsigned int bytes, int is_bigendian) + unsigned int rt, unsigned int bytes, int not_reverse) { int r; vcpu->arch.mmio_sign_extend = 1; - r = kvmppc_handle_load(run, vcpu, rt, bytes, is_bigendian); + r = kvmppc_handle_load(run, vcpu, rt, bytes, not_reverse); return r; } int kvmppc_handle_store(struct kvm_run *run, struct kvm_vcpu *vcpu, - u64 val, unsigned int bytes, int is_bigendian) + u64 val, unsigned int bytes, int not_reverse) { void *data = run->mmio.data; int idx, ret; + int is_bigendian = not_reverse; + + if (!kvmppc_is_bigendian(vcpu)) + is_bigendian = !not_reverse; if (bytes > sizeof(run->mmio.data)) { printk(KERN_ERR "%s: bad MMIO length: %d\n", __func__, --- linux-3.13.0.orig/arch/powerpc/mm/hash_native_64.c +++ linux-3.13.0/arch/powerpc/mm/hash_native_64.c @@ -418,18 +418,18 @@ local_irq_restore(flags); } -static void native_hugepage_invalidate(struct mm_struct *mm, +static void native_hugepage_invalidate(unsigned long vsid, + unsigned long addr, unsigned char *hpte_slot_array, - unsigned long addr, int psize) + int psize, int ssize) { - int ssize = 0, i; - int lock_tlbie; + int i; struct hash_pte *hptep; int actual_psize = MMU_PAGE_16M; unsigned int max_hpte_count, valid; unsigned long flags, s_addr = addr; unsigned long hpte_v, want_v, shift; - unsigned long hidx, vpn = 0, vsid, hash, slot; + unsigned long hidx, vpn = 0, hash, slot; shift = mmu_psize_defs[psize].shift; max_hpte_count = 1U << (PMD_SHIFT - shift); @@ -443,15 +443,6 @@ /* get the vpn */ addr = s_addr + (i * (1ul << shift)); - if (!is_kernel_addr(addr)) { - ssize = user_segment_size(addr); - vsid = get_vsid(mm->context.id, addr, ssize); - WARN_ON(vsid == 0); - } else { - vsid = get_kernel_vsid(addr, mmu_kernel_ssize); - ssize = mmu_kernel_ssize; - } - vpn = hpt_vpn(addr, vsid, ssize); hash = hpt_hash(vpn, shift, ssize); if (hidx & _PTEIDX_SECONDARY) @@ -471,22 +462,13 @@ else /* Invalidate the hpte. NOTE: this also unlocks it */ hptep->v = 0; + /* + * We need to do tlb invalidate for all the address, tlbie + * instruction compares entry_VA in tlb with the VA specified + * here + */ + tlbie(vpn, psize, actual_psize, ssize, 0); } - /* - * Since this is a hugepage, we just need a single tlbie. - * use the last vpn. - */ - lock_tlbie = !mmu_has_feature(MMU_FTR_LOCKLESS_TLBIE); - if (lock_tlbie) - raw_spin_lock(&native_tlbie_lock); - - asm volatile("ptesync":::"memory"); - __tlbie(vpn, psize, actual_psize, ssize); - asm volatile("eieio; tlbsync; ptesync":::"memory"); - - if (lock_tlbie) - raw_spin_unlock(&native_tlbie_lock); - local_irq_restore(flags); } --- linux-3.13.0.orig/arch/powerpc/mm/hash_utils_64.c +++ linux-3.13.0/arch/powerpc/mm/hash_utils_64.c @@ -206,6 +206,20 @@ if (overlaps_kernel_text(vaddr, vaddr + step)) tprot &= ~HPTE_R_N; + /* + * If relocatable, check if it overlaps interrupt vectors that + * are copied down to real 0. For relocatable kernel + * (e.g. kdump case) we copy interrupt vectors down to real + * address 0. Mark that region as executable. This is + * because on p8 system with relocation on exception feature + * enabled, exceptions are raised with MMU (IR=DR=1) ON. Hence + * in order to execute the interrupt handlers in virtual + * mode the vector region need to be marked as executable. + */ + if ((PHYSICAL_START > MEMORY_START) && + overlaps_interrupt_vector_text(vaddr, vaddr + step)) + tprot &= ~HPTE_R_N; + hash = hpt_hash(vpn, shift, ssize); hpteg = ((hash & htab_hash_mask) * HPTES_PER_GROUP); @@ -945,6 +959,22 @@ trap, vsid, ssize, psize, lpsize, pte); } +static void check_paca_psize(unsigned long ea, struct mm_struct *mm, + int psize, bool user_region) +{ + if (user_region) { + if (psize != get_paca_psize(ea)) { + get_paca()->context = mm->context; + slb_flush_and_rebolt(); + } + } else if (get_paca()->vmalloc_sllp != + mmu_psize_defs[mmu_vmalloc_psize].sllp) { + get_paca()->vmalloc_sllp = + mmu_psize_defs[mmu_vmalloc_psize].sllp; + slb_vmalloc_update(); + } +} + /* Result code is: * 0 - handled * 1 - normal page fault @@ -1066,6 +1096,8 @@ WARN_ON(1); } #endif + check_paca_psize(ea, mm, psize, user_region); + goto bail; } @@ -1106,17 +1138,8 @@ #endif } } - if (user_region) { - if (psize != get_paca_psize(ea)) { - get_paca()->context = mm->context; - slb_flush_and_rebolt(); - } - } else if (get_paca()->vmalloc_sllp != - mmu_psize_defs[mmu_vmalloc_psize].sllp) { - get_paca()->vmalloc_sllp = - mmu_psize_defs[mmu_vmalloc_psize].sllp; - slb_vmalloc_update(); - } + + check_paca_psize(ea, mm, psize, user_region); #endif /* CONFIG_PPC_64K_PAGES */ #ifdef CONFIG_PPC_HAS_HASH_64K --- linux-3.13.0.orig/arch/powerpc/mm/hugepage-hash64.c +++ linux-3.13.0/arch/powerpc/mm/hugepage-hash64.c @@ -18,6 +18,57 @@ #include #include +static void invalidate_old_hpte(unsigned long vsid, unsigned long addr, + pmd_t *pmdp, unsigned int psize, int ssize) +{ + int i, max_hpte_count, valid; + unsigned long s_addr; + unsigned char *hpte_slot_array; + unsigned long hidx, shift, vpn, hash, slot; + + s_addr = addr & HPAGE_PMD_MASK; + hpte_slot_array = get_hpte_slot_array(pmdp); + /* + * IF we try to do a HUGE PTE update after a withdraw is done. + * we will find the below NULL. This happens when we do + * split_huge_page_pmd + */ + if (!hpte_slot_array) + return; + + if (ppc_md.hugepage_invalidate) + return ppc_md.hugepage_invalidate(vsid, s_addr, hpte_slot_array, + psize, ssize); + /* + * No bluk hpte removal support, invalidate each entry + */ + shift = mmu_psize_defs[psize].shift; + max_hpte_count = HPAGE_PMD_SIZE >> shift; + for (i = 0; i < max_hpte_count; i++) { + /* + * 8 bits per each hpte entries + * 000| [ secondary group (one bit) | hidx (3 bits) | valid bit] + */ + valid = hpte_valid(hpte_slot_array, i); + if (!valid) + continue; + hidx = hpte_hash_index(hpte_slot_array, i); + + /* get the vpn */ + addr = s_addr + (i * (1ul << shift)); + vpn = hpt_vpn(addr, vsid, ssize); + hash = hpt_hash(vpn, shift, ssize); + if (hidx & _PTEIDX_SECONDARY) + hash = ~hash; + + slot = (hash & htab_hash_mask) * HPTES_PER_GROUP; + slot += hidx & _PTEIDX_GROUP_IX; + ppc_md.hpte_invalidate(slot, vpn, psize, + MMU_PAGE_16M, ssize, 0); + } +} + + int __hash_page_thp(unsigned long ea, unsigned long access, unsigned long vsid, pmd_t *pmdp, unsigned long trap, int local, int ssize, unsigned int psize) @@ -33,7 +84,9 @@ * atomically mark the linux large page PMD busy and dirty */ do { - old_pmd = pmd_val(*pmdp); + pmd_t pmd = ACCESS_ONCE(*pmdp); + + old_pmd = pmd_val(pmd); /* If PMD busy, retry the access */ if (unlikely(old_pmd & _PAGE_BUSY)) return 0; @@ -85,6 +138,15 @@ vpn = hpt_vpn(ea, vsid, ssize); hash = hpt_hash(vpn, shift, ssize); hpte_slot_array = get_hpte_slot_array(pmdp); + if (psize == MMU_PAGE_4K) { + /* + * invalidate the old hpte entry if we have that mapped via 64K + * base page size. This is because demote_segment won't flush + * hash page table entries. + */ + if ((old_pmd & _PAGE_HASHPTE) && !(old_pmd & _PAGE_COMBO)) + invalidate_old_hpte(vsid, ea, pmdp, MMU_PAGE_64K, ssize); + } valid = hpte_valid(hpte_slot_array, index); if (valid) { @@ -107,11 +169,8 @@ * safely update this here. */ valid = 0; - new_pmd &= ~_PAGE_HPTEFLAGS; hpte_slot_array[index] = 0; - } else - /* clear the busy bits and set the hash pte bits */ - new_pmd = (new_pmd & ~_PAGE_HPTEFLAGS) | _PAGE_HASHPTE; + } } if (!valid) { @@ -119,15 +178,17 @@ /* insert new entry */ pa = pmd_pfn(__pmd(old_pmd)) << PAGE_SHIFT; -repeat: - hpte_group = ((hash & htab_hash_mask) * HPTES_PER_GROUP) & ~0x7UL; - - /* clear the busy bits and set the hash pte bits */ - new_pmd = (new_pmd & ~_PAGE_HPTEFLAGS) | _PAGE_HASHPTE; + new_pmd |= _PAGE_HASHPTE; /* Add in WIMG bits */ rflags |= (new_pmd & (_PAGE_WRITETHRU | _PAGE_NO_CACHE | - _PAGE_COHERENT | _PAGE_GUARDED)); + _PAGE_GUARDED)); + /* + * enable the memory coherence always + */ + rflags |= HPTE_R_M; +repeat: + hpte_group = ((hash & htab_hash_mask) * HPTES_PER_GROUP) & ~0x7UL; /* Insert into the hash table, primary slot */ slot = ppc_md.hpte_insert(hpte_group, vpn, pa, rflags, 0, @@ -168,8 +229,17 @@ mark_hpte_slot_valid(hpte_slot_array, index, slot); } /* - * No need to use ldarx/stdcx here + * Mark the pte with _PAGE_COMBO, if we are trying to hash it with + * base page size 4k. + */ + if (psize == MMU_PAGE_4K) + new_pmd |= _PAGE_COMBO; + /* + * The hpte valid is stored in the pgtable whose address is in the + * second half of the PMD. Order this against clearing of the busy bit in + * huge pmd. */ + smp_wmb(); *pmdp = __pmd(new_pmd & ~_PAGE_BUSY); return 0; } --- linux-3.13.0.orig/arch/powerpc/mm/hugetlbpage.c +++ linux-3.13.0/arch/powerpc/mm/hugetlbpage.c @@ -86,11 +86,6 @@ */ return ((pgd_val(pgd) & 0x3) != 0x0); } - -int pmd_huge_support(void) -{ - return 1; -} #else int pmd_huge(pmd_t pmd) { @@ -106,11 +101,6 @@ { return 0; } - -int pmd_huge_support(void) -{ - return 0; -} #endif pte_t *huge_pte_offset(struct mm_struct *mm, unsigned long addr) --- linux-3.13.0.orig/arch/powerpc/mm/numa.c +++ linux-3.13.0/arch/powerpc/mm/numa.c @@ -31,6 +31,8 @@ #include #include #include +#include +#include #include #include #include @@ -152,9 +154,22 @@ } } -static void map_cpu_to_node(int cpu, int node) +static void reset_numa_cpu_lookup_table(void) +{ + unsigned int cpu; + + for_each_possible_cpu(cpu) + numa_cpu_lookup_table[cpu] = -1; +} + +static void update_numa_cpu_lookup_table(unsigned int cpu, int node) { numa_cpu_lookup_table[cpu] = node; +} + +static void map_cpu_to_node(int cpu, int node) +{ + update_numa_cpu_lookup_table(cpu, node); dbg("adding cpu %d to node %d\n", cpu, node); @@ -522,11 +537,24 @@ */ static int numa_setup_cpu(unsigned long lcpu) { - int nid = 0; - struct device_node *cpu = of_get_cpu_node(lcpu, NULL); + int nid; + struct device_node *cpu; + + /* + * If a valid cpu-to-node mapping is already available, use it + * directly instead of querying the firmware, since it represents + * the most recent mapping notified to us by the platform (eg: VPHN). + */ + if ((nid = numa_cpu_lookup_table[lcpu]) >= 0) { + map_cpu_to_node(lcpu, nid); + return nid; + } + + cpu = of_get_cpu_node(lcpu, NULL); if (!cpu) { WARN_ON(1); + nid = 0; goto out; } @@ -560,8 +588,8 @@ case CPU_UP_CANCELED: case CPU_UP_CANCELED_FROZEN: unmap_cpu_from_node(lcpu); - break; ret = NOTIFY_OK; + break; #endif } return ret; @@ -1067,6 +1095,7 @@ */ setup_node_to_cpumask_map(); + reset_numa_cpu_lookup_table(); register_cpu_notifier(&ppc64_numa_nb); cpu_numa_callback(&ppc64_numa_nb, CPU_UP_PREPARE, (void *)(unsigned long)boot_cpuid); @@ -1388,8 +1417,11 @@ long retbuf[PLPAR_HCALL9_BUFSIZE] = {0}; u64 flags = 1; int hwcpu = get_hard_smp_processor_id(cpu); + int i; rc = plpar_hcall9(H_HOME_NODE_ASSOCIATIVITY, retbuf, flags, hwcpu); + for (i = 0; i < 6; i++) + retbuf[i] = cpu_to_be64(retbuf[i]); vphn_unpack_associativity(retbuf, associativity); return rc; @@ -1445,6 +1477,33 @@ return 0; } +static int update_lookup_table(void *data) +{ + struct topology_update_data *update; + + if (!data) + return -EINVAL; + + /* + * Upon topology update, the numa-cpu lookup table needs to be updated + * for all threads in the core, including offline CPUs, to ensure that + * future hotplug operations respect the cpu-to-node associativity + * properly. + */ + for (update = data; update; update = update->next) { + int nid, base, j; + + nid = update->new_nid; + base = cpu_first_thread_sibling(update->cpu); + + for (j = 0; j < threads_per_core; j++) { + update_numa_cpu_lookup_table(base + j, nid); + } + } + + return 0; +} + /* * Update the node maps and sysfs entries for each cpu whose home node * has changed. Returns 1 when the topology has changed, and 0 otherwise. @@ -1513,6 +1572,14 @@ stop_machine(update_cpu_topology, &updates[0], &updated_cpus); + /* + * Update the numa-cpu lookup table with the new mappings, even for + * offline CPUs. It is best to perform this update from the stop- + * machine context. + */ + stop_machine(update_lookup_table, &updates[0], + cpumask_of(raw_smp_processor_id())); + for (ud = &updates[0]; ud; ud = ud->next) { unregister_cpu_under_node(ud->cpu, ud->old_nid); register_cpu_under_node(ud->cpu, ud->new_nid); --- linux-3.13.0.orig/arch/powerpc/mm/pgtable_64.c +++ linux-3.13.0/arch/powerpc/mm/pgtable_64.c @@ -55,6 +55,9 @@ #include "mmu_decl.h" +#define CREATE_TRACE_POINTS +#include + /* Some sanity checking */ #if TASK_SIZE_USER64 > PGTABLE_RANGE #error TASK_SIZE_USER64 exceeds pagetable range @@ -499,7 +502,8 @@ } unsigned long pmd_hugepage_update(struct mm_struct *mm, unsigned long addr, - pmd_t *pmdp, unsigned long clr) + pmd_t *pmdp, unsigned long clr, + unsigned long set) { unsigned long old, tmp; @@ -515,17 +519,19 @@ andi. %1,%0,%6\n\ bne- 1b \n\ andc %1,%0,%4 \n\ + or %1,%1,%7\n\ stdcx. %1,0,%3 \n\ bne- 1b" : "=&r" (old), "=&r" (tmp), "=m" (*pmdp) - : "r" (pmdp), "r" (clr), "m" (*pmdp), "i" (_PAGE_BUSY) + : "r" (pmdp), "r" (clr), "m" (*pmdp), "i" (_PAGE_BUSY), "r" (set) : "cc" ); #else old = pmd_val(*pmdp); - *pmdp = __pmd(old & ~clr); + *pmdp = __pmd((old & ~clr) | set); #endif + trace_hugepage_update(addr, old, clr, set); if (old & _PAGE_HASHPTE) - hpte_do_hugepage_flush(mm, addr, pmdp); + hpte_do_hugepage_flush(mm, addr, pmdp, old); return old; } @@ -629,10 +635,11 @@ * If we didn't had the splitting flag set, go and flush the * HPTE entries. */ + trace_hugepage_splitting(address, old); if (!(old & _PAGE_SPLITTING)) { /* We need to flush the hpte */ if (old & _PAGE_HASHPTE) - hpte_do_hugepage_flush(vma->vm_mm, address, pmdp); + hpte_do_hugepage_flush(vma->vm_mm, address, pmdp, old); } } @@ -691,13 +698,14 @@ assert_spin_locked(&mm->page_table_lock); WARN_ON(!pmd_trans_huge(pmd)); #endif + trace_hugepage_set_pmd(addr, pmd); return set_pte_at(mm, addr, pmdp_ptep(pmdp), pmd_pte(pmd)); } void pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) { - pmd_hugepage_update(vma->vm_mm, address, pmdp, _PAGE_PRESENT); + pmd_hugepage_update(vma->vm_mm, address, pmdp, _PAGE_PRESENT, 0); } /* @@ -705,7 +713,7 @@ * neesd to be flushed. */ void hpte_do_hugepage_flush(struct mm_struct *mm, unsigned long addr, - pmd_t *pmdp) + pmd_t *pmdp, unsigned long old_pmd) { int ssize, i; unsigned long s_addr; @@ -727,12 +735,29 @@ if (!hpte_slot_array) return; - /* get the base page size */ + /* get the base page size,vsid and segment size */ +#ifdef CONFIG_DEBUG_VM psize = get_slice_psize(mm, s_addr); + BUG_ON(psize == MMU_PAGE_16M); +#endif + if (old_pmd & _PAGE_COMBO) + psize = MMU_PAGE_4K; + else + psize = MMU_PAGE_64K; + + if (!is_kernel_addr(s_addr)) { + ssize = user_segment_size(s_addr); + vsid = get_vsid(mm->context.id, s_addr, ssize); + WARN_ON(vsid == 0); + } else { + vsid = get_kernel_vsid(s_addr, mmu_kernel_ssize); + ssize = mmu_kernel_ssize; + } if (ppc_md.hugepage_invalidate) - return ppc_md.hugepage_invalidate(mm, hpte_slot_array, - s_addr, psize); + return ppc_md.hugepage_invalidate(vsid, s_addr, + hpte_slot_array, + psize, ssize); /* * No bluk hpte removal support, invalidate each entry */ @@ -750,15 +775,6 @@ /* get the vpn */ addr = s_addr + (i * (1ul << shift)); - if (!is_kernel_addr(addr)) { - ssize = user_segment_size(addr); - vsid = get_vsid(mm->context.id, addr, ssize); - WARN_ON(vsid == 0); - } else { - vsid = get_kernel_vsid(addr, mmu_kernel_ssize); - ssize = mmu_kernel_ssize; - } - vpn = hpt_vpn(addr, vsid, ssize); hash = hpt_hash(vpn, shift, ssize); if (hidx & _PTEIDX_SECONDARY) @@ -824,7 +840,7 @@ unsigned long old; pgtable_t *pgtable_slot; - old = pmd_hugepage_update(mm, addr, pmdp, ~0UL); + old = pmd_hugepage_update(mm, addr, pmdp, ~0UL, 0); old_pmd = __pmd(old); /* * We have pmd == none and we are holding page_table_lock. --- linux-3.13.0.orig/arch/powerpc/mm/subpage-prot.c +++ linux-3.13.0/arch/powerpc/mm/subpage-prot.c @@ -78,7 +78,7 @@ pte = pte_offset_map_lock(mm, pmd, addr, &ptl); arch_enter_lazy_mmu_mode(); for (; npages > 0; --npages) { - pte_update(mm, addr, pte, 0, 0); + pte_update(mm, addr, pte, 0, 0, 0); addr += PAGE_SIZE; ++pte; } --- linux-3.13.0.orig/arch/powerpc/mm/tlb_hash64.c +++ linux-3.13.0/arch/powerpc/mm/tlb_hash64.c @@ -31,6 +31,8 @@ #include #include +#include + DEFINE_PER_CPU(struct ppc64_tlb_batch, ppc64_tlb_batch); /* @@ -214,10 +216,12 @@ if (ptep == NULL) continue; pte = pte_val(*ptep); + if (hugepage_shift) + trace_hugepage_invalidate(start, pte_val(pte)); if (!(pte & _PAGE_HASHPTE)) continue; if (unlikely(hugepage_shift && pmd_trans_huge(*(pmd_t *)pte))) - hpte_do_hugepage_flush(mm, start, (pmd_t *)pte); + hpte_do_hugepage_flush(mm, start, (pmd_t *)ptep, pte); else hpte_need_flush(mm, start, ptep, pte, 0); } --- linux-3.13.0.orig/arch/powerpc/perf/core-book3s.c +++ linux-3.13.0/arch/powerpc/perf/core-book3s.c @@ -78,6 +78,7 @@ #define MMCR0_FC56 0 #define MMCR0_PMAO 0 #define MMCR0_EBE 0 +#define MMCR0_BHRBA 0 #define MMCR0_PMCC 0 #define MMCR0_PMCC_U6 0 @@ -120,6 +121,7 @@ static inline void power_pmu_bhrb_disable(struct perf_event *event) {} void power_pmu_flush_branch_stack(void) {} static inline void power_pmu_bhrb_read(struct cpu_hw_events *cpuhw) {} +static void pmao_restore_workaround(bool ebb) { } #endif /* CONFIG_PPC32 */ static bool regs_use_siar(struct pt_regs *regs) @@ -483,7 +485,7 @@ * check that the PMU supports EBB, meaning those that don't can still * use bit 63 of the event code for something else if they wish. */ - return (ppmu->flags & PPMU_EBB) && + return (ppmu->flags & PPMU_ARCH_207S) && ((event->attr.config >> PERF_EVENT_CONFIG_EBB_SHIFT) & 1); } @@ -502,8 +504,11 @@ if (!leader->attr.pinned || !leader->attr.exclusive) return -EINVAL; - if (event->attr.inherit || event->attr.sample_period || - event->attr.enable_on_exec || event->attr.freq) + if (event->attr.freq || + event->attr.inherit || + event->attr.sample_type || + event->attr.sample_period || + event->attr.enable_on_exec) return -EINVAL; } @@ -542,13 +547,21 @@ if (!ebb) goto out; - /* Enable EBB and read/write to all 6 PMCs for userspace */ - mmcr0 |= MMCR0_EBE | MMCR0_PMCC_U6; + /* Enable EBB and read/write to all 6 PMCs and BHRB for userspace */ + mmcr0 |= MMCR0_EBE | MMCR0_BHRBA | MMCR0_PMCC_U6; - /* Add any bits from the user reg, FC or PMAO */ + /* + * Add any bits from the user MMCR0, FC or PMAO. This is compatible + * with pmao_restore_workaround() because we may add PMAO but we never + * clear it here. + */ mmcr0 |= current->thread.mmcr0; - /* Be careful not to set PMXE if userspace had it cleared */ + /* + * Be careful not to set PMXE if userspace had it cleared. This is also + * compatible with pmao_restore_workaround() because it has already + * cleared PMXE and we leave PMAO alone. + */ if (!(current->thread.mmcr0 & MMCR0_PMXE)) mmcr0 &= ~MMCR0_PMXE; @@ -559,13 +572,94 @@ out: return mmcr0; } -#endif /* CONFIG_PPC64 */ -static void perf_event_interrupt(struct pt_regs *regs); - -void perf_event_print_debug(void) +static void pmao_restore_workaround(bool ebb) { + unsigned pmcs[6]; + + if (!cpu_has_feature(CPU_FTR_PMAO_BUG)) + return; + + /* + * On POWER8E there is a hardware defect which affects the PMU context + * switch logic, ie. power_pmu_disable/enable(). + * + * When a counter overflows PMXE is cleared and FC/PMAO is set in MMCR0 + * by the hardware. Sometime later the actual PMU exception is + * delivered. + * + * If we context switch, or simply disable/enable, the PMU prior to the + * exception arriving, the exception will be lost when we clear PMAO. + * + * When we reenable the PMU, we will write the saved MMCR0 with PMAO + * set, and this _should_ generate an exception. However because of the + * defect no exception is generated when we write PMAO, and we get + * stuck with no counters counting but no exception delivered. + * + * The workaround is to detect this case and tweak the hardware to + * create another pending PMU exception. + * + * We do that by setting up PMC6 (cycles) for an imminent overflow and + * enabling the PMU. That causes a new exception to be generated in the + * chip, but we don't take it yet because we have interrupts hard + * disabled. We then write back the PMU state as we want it to be seen + * by the exception handler. When we reenable interrupts the exception + * handler will be called and see the correct state. + * + * The logic is the same for EBB, except that the exception is gated by + * us having interrupts hard disabled as well as the fact that we are + * not in userspace. The exception is finally delivered when we return + * to userspace. + */ + + /* Only if PMAO is set and PMAO_SYNC is clear */ + if ((current->thread.mmcr0 & (MMCR0_PMAO | MMCR0_PMAO_SYNC)) != MMCR0_PMAO) + return; + + /* If we're doing EBB, only if BESCR[GE] is set */ + if (ebb && !(current->thread.bescr & BESCR_GE)) + return; + + /* + * We are already soft-disabled in power_pmu_enable(). We need to hard + * enable to actually prevent the PMU exception from firing. + */ + hard_irq_disable(); + + /* + * This is a bit gross, but we know we're on POWER8E and have 6 PMCs. + * Using read/write_pmc() in a for loop adds 12 function calls and + * almost doubles our code size. + */ + pmcs[0] = mfspr(SPRN_PMC1); + pmcs[1] = mfspr(SPRN_PMC2); + pmcs[2] = mfspr(SPRN_PMC3); + pmcs[3] = mfspr(SPRN_PMC4); + pmcs[4] = mfspr(SPRN_PMC5); + pmcs[5] = mfspr(SPRN_PMC6); + + /* Ensure all freeze bits are unset */ + mtspr(SPRN_MMCR2, 0); + + /* Set up PMC6 to overflow in one cycle */ + mtspr(SPRN_PMC6, 0x7FFFFFFE); + + /* Enable exceptions and unfreeze PMC6 */ + mtspr(SPRN_MMCR0, MMCR0_PMXE | MMCR0_PMCjCE | MMCR0_PMAO); + + /* Now we need to refreeze and restore the PMCs */ + mtspr(SPRN_MMCR0, MMCR0_FC | MMCR0_PMAO); + + mtspr(SPRN_PMC1, pmcs[0]); + mtspr(SPRN_PMC2, pmcs[1]); + mtspr(SPRN_PMC3, pmcs[2]); + mtspr(SPRN_PMC4, pmcs[3]); + mtspr(SPRN_PMC5, pmcs[4]); + mtspr(SPRN_PMC6, pmcs[5]); } +#endif /* CONFIG_PPC64 */ + +static void perf_event_interrupt(struct pt_regs *regs); /* * Read one performance monitor counter (PMC). @@ -645,6 +739,57 @@ } } +/* Called from sysrq_handle_showregs() */ +void perf_event_print_debug(void) +{ + unsigned long sdar, sier, flags; + u32 pmcs[MAX_HWEVENTS]; + int i; + + if (!ppmu->n_counter) + return; + + local_irq_save(flags); + + pr_info("CPU: %d PMU registers, ppmu = %s n_counters = %d", + smp_processor_id(), ppmu->name, ppmu->n_counter); + + for (i = 0; i < ppmu->n_counter; i++) + pmcs[i] = read_pmc(i + 1); + + for (; i < MAX_HWEVENTS; i++) + pmcs[i] = 0xdeadbeef; + + pr_info("PMC1: %08x PMC2: %08x PMC3: %08x PMC4: %08x\n", + pmcs[0], pmcs[1], pmcs[2], pmcs[3]); + + if (ppmu->n_counter > 4) + pr_info("PMC5: %08x PMC6: %08x PMC7: %08x PMC8: %08x\n", + pmcs[4], pmcs[5], pmcs[6], pmcs[7]); + + pr_info("MMCR0: %016lx MMCR1: %016lx MMCRA: %016lx\n", + mfspr(SPRN_MMCR0), mfspr(SPRN_MMCR1), mfspr(SPRN_MMCRA)); + + sdar = sier = 0; +#ifdef CONFIG_PPC64 + sdar = mfspr(SPRN_SDAR); + + if (ppmu->flags & PPMU_HAS_SIER) + sier = mfspr(SPRN_SIER); + + if (ppmu->flags & PPMU_ARCH_207S) { + pr_info("MMCR2: %016lx EBBHR: %016lx\n", + mfspr(SPRN_MMCR2), mfspr(SPRN_EBBHR)); + pr_info("EBBRR: %016lx BESCR: %016lx\n", + mfspr(SPRN_EBBRR), mfspr(SPRN_BESCR)); + } +#endif + pr_info("SIAR: %016lx SDAR: %016lx SIER: %016lx\n", + mfspr(SPRN_SIAR), sdar, sier); + + local_irq_restore(flags); +} + /* * Check if a set of events can all go on the PMU at once. * If they can't, this will look at alternative codes for the events @@ -851,7 +996,22 @@ } while (local64_cmpxchg(&event->hw.prev_count, prev, val) != prev); local64_add(delta, &event->count); - local64_sub(delta, &event->hw.period_left); + + /* + * A number of places program the PMC with (0x80000000 - period_left). + * We never want period_left to be less than 1 because we will program + * the PMC with a value >= 0x800000000 and an edge detected PMC will + * roll around to 0 before taking an exception. We have seen this + * on POWER8. + * + * To fix this, clamp the minimum value of period_left to 1. + */ + do { + prev = local64_read(&event->hw.period_left); + val = prev - delta; + if (val < 1) + val = 1; + } while (local64_cmpxchg(&event->hw.period_left, prev, val) != prev); } /* @@ -973,11 +1133,12 @@ } /* - * Set the 'freeze counters' bit, clear EBE/PMCC/PMAO/FC56. + * Set the 'freeze counters' bit, clear EBE/BHRBA/PMCC/PMAO/FC56 */ val = mmcr0 = mfspr(SPRN_MMCR0); val |= MMCR0_FC; - val &= ~(MMCR0_EBE | MMCR0_PMCC | MMCR0_PMAO | MMCR0_FC56); + val &= ~(MMCR0_EBE | MMCR0_BHRBA | MMCR0_PMCC | MMCR0_PMAO | + MMCR0_FC56); /* * The barrier is to make sure the mtspr has been @@ -1144,9 +1305,17 @@ cpuhw->mmcr[0] |= MMCR0_PMXE | MMCR0_FCECE; out_enable: + pmao_restore_workaround(ebb); + + if (ppmu->flags & PPMU_ARCH_207S) + mtspr(SPRN_MMCR2, 0); + mmcr0 = ebb_switch_in(ebb, cpuhw->mmcr[0]); mb(); + if (cpuhw->bhrb_users) + ppmu->config_bhrb(cpuhw->bhrb_filter); + write_mmcr0(cpuhw, mmcr0); /* @@ -1158,8 +1327,6 @@ } out: - if (cpuhw->bhrb_users) - ppmu->config_bhrb(cpuhw->bhrb_filter); local_irq_restore(flags); } @@ -1547,7 +1714,7 @@ if (has_branch_stack(event)) { /* PMU has BHRB enabled */ - if (!(ppmu->flags & PPMU_BHRB)) + if (!(ppmu->flags & PPMU_ARCH_207S)) return -EOPNOTSUPP; } --- linux-3.13.0.orig/arch/powerpc/perf/power8-pmu.c +++ linux-3.13.0/arch/powerpc/perf/power8-pmu.c @@ -10,6 +10,8 @@ * 2 of the License, or (at your option) any later version. */ +#define pr_fmt(fmt) "power8-pmu: " fmt + #include #include #include @@ -25,15 +27,48 @@ #define PM_BRU_FIN 0x10068 #define PM_BR_MPRED_CMPL 0x400f6 +/* All L1 D cache load references counted at finish, gated by reject */ +#define PM_LD_REF_L1 0x100ee +/* Load Missed L1 */ +#define PM_LD_MISS_L1 0x3e054 +/* Store Missed L1 */ +#define PM_ST_MISS_L1 0x300f0 +/* L1 cache data prefetches */ +#define PM_L1_PREF 0x0d8b8 +/* Instruction fetches from L1 */ +#define PM_INST_FROM_L1 0x04080 +/* Demand iCache Miss */ +#define PM_L1_ICACHE_MISS 0x200fd +/* Instruction Demand sectors wriittent into IL1 */ +#define PM_L1_DEMAND_WRITE 0x0408c +/* Instruction prefetch written into IL1 */ +#define PM_IC_PREF_WRITE 0x0408e +/* The data cache was reloaded from local core's L3 due to a demand load */ +#define PM_DATA_FROM_L3 0x4c042 +/* Demand LD - L3 Miss (not L2 hit and not L3 hit) */ +#define PM_DATA_FROM_L3MISS 0x300fe +/* All successful D-side store dispatches for this thread */ +#define PM_L2_ST 0x17080 +/* All successful D-side store dispatches for this thread that were L2 Miss */ +#define PM_L2_ST_MISS 0x17082 +/* Total HW L3 prefetches(Load+store) */ +#define PM_L3_PREF_ALL 0x4e052 +/* Data PTEG reload */ +#define PM_DTLB_MISS 0x300fc +/* ITLB Reloaded */ +#define PM_ITLB_MISS 0x400fc + /* * Raw event encoding for POWER8: * * 60 56 52 48 44 40 36 32 * | - - - - | - - - - | - - - - | - - - - | - - - - | - - - - | - - - - | - - - - | - * | [ thresh_cmp ] [ thresh_ctl ] - * | | - * *- EBB (Linux) thresh start/stop OR FAB match -* + * | | [ ] [ thresh_cmp ] [ thresh_ctl ] + * | | | | + * | | *- IFM (Linux) thresh start/stop OR FAB match -* + * | *- BHRB (Linux) + * *- EBB (Linux) * * 28 24 20 16 12 8 4 0 * | - - - - | - - - - | - - - - | - - - - | - - - - | - - - - | - - - - | - - - - | @@ -83,9 +118,18 @@ * MMCRA[57:59] = sample[0:2] (RAND_SAMP_ELIG)  * MMCRA[61:62] = sample[3:4] (RAND_SAMP_MODE) * + * if EBB and BHRB: + * MMCRA[32:33] = IFM + * */ #define EVENT_EBB_MASK 1ull +#define EVENT_EBB_SHIFT PERF_EVENT_CONFIG_EBB_SHIFT +#define EVENT_BHRB_MASK 1ull +#define EVENT_BHRB_SHIFT 62 +#define EVENT_WANTS_BHRB (EVENT_BHRB_MASK << EVENT_BHRB_SHIFT) +#define EVENT_IFM_MASK 3ull +#define EVENT_IFM_SHIFT 60 #define EVENT_THR_CMP_SHIFT 40 /* Threshold CMP value */ #define EVENT_THR_CMP_MASK 0x3ff #define EVENT_THR_CTL_SHIFT 32 /* Threshold control value (start/stop) */ @@ -110,6 +154,12 @@ #define EVENT_IS_MARKED (EVENT_MARKED_MASK << EVENT_MARKED_SHIFT) #define EVENT_PSEL_MASK 0xff /* PMCxSEL value */ +/* Bits defined by Linux */ +#define EVENT_LINUX_MASK \ + ((EVENT_EBB_MASK << EVENT_EBB_SHIFT) | \ + (EVENT_BHRB_MASK << EVENT_BHRB_SHIFT) | \ + (EVENT_IFM_MASK << EVENT_IFM_SHIFT)) + #define EVENT_VALID_MASK \ ((EVENT_THRESH_MASK << EVENT_THRESH_SHIFT) | \ (EVENT_SAMPLE_MASK << EVENT_SAMPLE_SHIFT) | \ @@ -118,7 +168,7 @@ (EVENT_UNIT_MASK << EVENT_UNIT_SHIFT) | \ (EVENT_COMBINE_MASK << EVENT_COMBINE_SHIFT) | \ (EVENT_MARKED_MASK << EVENT_MARKED_SHIFT) | \ - (EVENT_EBB_MASK << PERF_EVENT_CONFIG_EBB_SHIFT) | \ + EVENT_LINUX_MASK | \ EVENT_PSEL_MASK) /* MMCRA IFM bits - POWER8 */ @@ -142,10 +192,11 @@ * * 28 24 20 16 12 8 4 0 * | - - - - | - - - - | - - - - | - - - - | - - - - | - - - - | - - - - | - - - - | - * | [ ] [ sample ] [ ] [6] [5] [4] [3] [2] [1] - * EBB -* | | - * | | Count of events for each PMC. - * L1 I/D qualifier -* | p1, p2, p3, p4, p5, p6. + * [ ] | [ ] [ sample ] [ ] [6] [5] [4] [3] [2] [1] + * | | | | + * BHRB IFM -* | | | Count of events for each PMC. + * EBB -* | | p1, p2, p3, p4, p5, p6. + * L1 I/D qualifier -* | * nc - number of counters -* * * The PMC fields P1..P6, and NC, are adder fields. As we accumulate constraints @@ -164,6 +215,9 @@ #define CNST_EBB_VAL(v) (((v) & EVENT_EBB_MASK) << 24) #define CNST_EBB_MASK CNST_EBB_VAL(EVENT_EBB_MASK) +#define CNST_IFM_VAL(v) (((v) & EVENT_IFM_MASK) << 25) +#define CNST_IFM_MASK CNST_IFM_VAL(EVENT_IFM_MASK) + #define CNST_L1_QUAL_VAL(v) (((v) & 3) << 22) #define CNST_L1_QUAL_MASK CNST_L1_QUAL_VAL(3) @@ -210,6 +264,7 @@ #define MMCRA_THR_SEL_SHIFT 16 #define MMCRA_THR_CMP_SHIFT 32 #define MMCRA_SDAR_MODE_TLB (1ull << 42) +#define MMCRA_IFM_SHIFT 30 static inline bool event_is_fab_match(u64 event) @@ -234,20 +289,22 @@ pmc = (event >> EVENT_PMC_SHIFT) & EVENT_PMC_MASK; unit = (event >> EVENT_UNIT_SHIFT) & EVENT_UNIT_MASK; cache = (event >> EVENT_CACHE_SEL_SHIFT) & EVENT_CACHE_SEL_MASK; - ebb = (event >> PERF_EVENT_CONFIG_EBB_SHIFT) & EVENT_EBB_MASK; - - /* Clear the EBB bit in the event, so event checks work below */ - event &= ~(EVENT_EBB_MASK << PERF_EVENT_CONFIG_EBB_SHIFT); + ebb = (event >> EVENT_EBB_SHIFT) & EVENT_EBB_MASK; if (pmc) { + u64 base_event; + if (pmc > 6) return -1; - mask |= CNST_PMC_MASK(pmc); - value |= CNST_PMC_VAL(pmc); + /* Ignore Linux defined bits when checking event below */ + base_event = event & ~EVENT_LINUX_MASK; - if (pmc >= 5 && event != 0x500fa && event != 0x600f4) + if (pmc >= 5 && base_event != 0x500fa && base_event != 0x600f4) return -1; + + mask |= CNST_PMC_MASK(pmc); + value |= CNST_PMC_VAL(pmc); } if (pmc <= 4) { @@ -268,9 +325,10 @@ * HV writable, and there is no API for guest kernels to modify * it. The solution is for the hypervisor to initialise the * field to zeroes, and for us to only ever allow events that - * have a cache selector of zero. + * have a cache selector of zero. The bank selector (bit 3) is + * irrelevant, as long as the rest of the value is 0. */ - if (cache) + if (cache & 0x7) return -1; } else if (event & EVENT_IS_L1) { @@ -311,6 +369,15 @@ /* EBB events must specify the PMC */ return -1; + if (event & EVENT_WANTS_BHRB) { + if (!ebb) + /* Only EBB events can request BHRB */ + return -1; + + mask |= CNST_IFM_MASK; + value |= CNST_IFM_VAL(event >> EVENT_IFM_SHIFT); + } + /* * All events must agree on EBB, either all request it or none. * EBB events are pinned & exclusive, so this should never actually @@ -400,6 +467,11 @@ mmcra |= val << MMCRA_THR_CMP_SHIFT; } + if (event[i] & EVENT_WANTS_BHRB) { + val = (event[i] >> EVENT_IFM_SHIFT) & EVENT_IFM_MASK; + mmcra |= val << MMCRA_IFM_SHIFT; + } + hwc[i] = pmc - 1; } @@ -557,6 +629,8 @@ [PERF_COUNT_HW_INSTRUCTIONS] = PM_INST_CMPL, [PERF_COUNT_HW_BRANCH_INSTRUCTIONS] = PM_BRU_FIN, [PERF_COUNT_HW_BRANCH_MISSES] = PM_BR_MPRED_CMPL, + [PERF_COUNT_HW_CACHE_REFERENCES] = PM_LD_REF_L1, + [PERF_COUNT_HW_CACHE_MISSES] = PM_LD_MISS_L1, }; static u64 power8_bhrb_filter_map(u64 branch_sample_type) @@ -596,6 +670,116 @@ mtspr(SPRN_MMCRA, (mfspr(SPRN_MMCRA) | pmu_bhrb_filter)); } +#define C(x) PERF_COUNT_HW_CACHE_##x + +/* + * Table of generalized cache-related events. + * 0 means not supported, -1 means nonsensical, other values + * are event codes. + */ +static int power8_cache_events[C(MAX)][C(OP_MAX)][C(RESULT_MAX)] = { + [ C(L1D) ] = { + [ C(OP_READ) ] = { + [ C(RESULT_ACCESS) ] = PM_LD_REF_L1, + [ C(RESULT_MISS) ] = PM_LD_MISS_L1, + }, + [ C(OP_WRITE) ] = { + [ C(RESULT_ACCESS) ] = 0, + [ C(RESULT_MISS) ] = PM_ST_MISS_L1, + }, + [ C(OP_PREFETCH) ] = { + [ C(RESULT_ACCESS) ] = PM_L1_PREF, + [ C(RESULT_MISS) ] = 0, + }, + }, + [ C(L1I) ] = { + [ C(OP_READ) ] = { + [ C(RESULT_ACCESS) ] = PM_INST_FROM_L1, + [ C(RESULT_MISS) ] = PM_L1_ICACHE_MISS, + }, + [ C(OP_WRITE) ] = { + [ C(RESULT_ACCESS) ] = PM_L1_DEMAND_WRITE, + [ C(RESULT_MISS) ] = -1, + }, + [ C(OP_PREFETCH) ] = { + [ C(RESULT_ACCESS) ] = PM_IC_PREF_WRITE, + [ C(RESULT_MISS) ] = 0, + }, + }, + [ C(LL) ] = { + [ C(OP_READ) ] = { + [ C(RESULT_ACCESS) ] = PM_DATA_FROM_L3, + [ C(RESULT_MISS) ] = PM_DATA_FROM_L3MISS, + }, + [ C(OP_WRITE) ] = { + [ C(RESULT_ACCESS) ] = PM_L2_ST, + [ C(RESULT_MISS) ] = PM_L2_ST_MISS, + }, + [ C(OP_PREFETCH) ] = { + [ C(RESULT_ACCESS) ] = PM_L3_PREF_ALL, + [ C(RESULT_MISS) ] = 0, + }, + }, + [ C(DTLB) ] = { + [ C(OP_READ) ] = { + [ C(RESULT_ACCESS) ] = 0, + [ C(RESULT_MISS) ] = PM_DTLB_MISS, + }, + [ C(OP_WRITE) ] = { + [ C(RESULT_ACCESS) ] = -1, + [ C(RESULT_MISS) ] = -1, + }, + [ C(OP_PREFETCH) ] = { + [ C(RESULT_ACCESS) ] = -1, + [ C(RESULT_MISS) ] = -1, + }, + }, + [ C(ITLB) ] = { + [ C(OP_READ) ] = { + [ C(RESULT_ACCESS) ] = 0, + [ C(RESULT_MISS) ] = PM_ITLB_MISS, + }, + [ C(OP_WRITE) ] = { + [ C(RESULT_ACCESS) ] = -1, + [ C(RESULT_MISS) ] = -1, + }, + [ C(OP_PREFETCH) ] = { + [ C(RESULT_ACCESS) ] = -1, + [ C(RESULT_MISS) ] = -1, + }, + }, + [ C(BPU) ] = { + [ C(OP_READ) ] = { + [ C(RESULT_ACCESS) ] = PM_BRU_FIN, + [ C(RESULT_MISS) ] = PM_BR_MPRED_CMPL, + }, + [ C(OP_WRITE) ] = { + [ C(RESULT_ACCESS) ] = -1, + [ C(RESULT_MISS) ] = -1, + }, + [ C(OP_PREFETCH) ] = { + [ C(RESULT_ACCESS) ] = -1, + [ C(RESULT_MISS) ] = -1, + }, + }, + [ C(NODE) ] = { + [ C(OP_READ) ] = { + [ C(RESULT_ACCESS) ] = -1, + [ C(RESULT_MISS) ] = -1, + }, + [ C(OP_WRITE) ] = { + [ C(RESULT_ACCESS) ] = -1, + [ C(RESULT_MISS) ] = -1, + }, + [ C(OP_PREFETCH) ] = { + [ C(RESULT_ACCESS) ] = -1, + [ C(RESULT_MISS) ] = -1, + }, + }, +}; + +#undef C + static struct power_pmu power8_pmu = { .name = "POWER8", .n_counter = 6, @@ -608,9 +792,10 @@ .get_constraint = power8_get_constraint, .get_alternatives = power8_get_alternatives, .disable_pmc = power8_disable_pmc, - .flags = PPMU_HAS_SSLOT | PPMU_HAS_SIER | PPMU_BHRB | PPMU_EBB, + .flags = PPMU_HAS_SSLOT | PPMU_HAS_SIER | PPMU_ARCH_207S, .n_generic = ARRAY_SIZE(power8_generic_events), .generic_events = power8_generic_events, + .cache_events = &power8_cache_events, .attr_groups = power8_pmu_attr_groups, .bhrb_nr = 32, }; @@ -630,6 +815,9 @@ /* Tell userspace that EBB is supported */ cur_cpu_spec->cpu_user_features2 |= PPC_FEATURE2_EBB; + if (cpu_has_feature(CPU_FTR_PMAO_BUG)) + pr_info("PMAO restore workaround active.\n"); + return 0; } early_initcall(init_power8_pmu); --- linux-3.13.0.orig/arch/powerpc/platforms/85xx/Kconfig +++ linux-3.13.0/arch/powerpc/platforms/85xx/Kconfig @@ -253,6 +253,8 @@ select ARCH_REQUIRE_GPIOLIB select GPIO_MPC8XXX select HAS_RAPIDIO + select HAS_FSL_QBMAN + select HAS_FSL_PME select PPC_EPAPR_HV_PIC help This option enables support for the FSL CoreNet based boards. --- linux-3.13.0.orig/arch/powerpc/platforms/85xx/corenet_generic.c +++ linux-3.13.0/arch/powerpc/platforms/85xx/corenet_generic.c @@ -64,6 +64,9 @@ .compatible = "simple-bus" }, { + .compatible = "fsl,dpaa" + }, + { .compatible = "fsl,srio", }, { @@ -96,6 +99,32 @@ return of_platform_bus_probe(NULL, of_device_ids, NULL); } +/* Early setup is required for large chunks of contiguous (and coarsely-aligned) + * memory. The following shoe-horns Qman/Bman "init_early" calls into the + * platform setup to let them parse their CCSR nodes early on. */ +#ifdef CONFIG_FSL_QMAN_CONFIG +void __init qman_init_early(void); +#endif +#ifdef CONFIG_FSL_BMAN_CONFIG +void __init bman_init_early(void); +#endif +#ifdef CONFIG_FSL_PME2_CTRL +void __init pme2_init_early(void); +#endif + +__init void corenet_ds_init_early(void) +{ +#ifdef CONFIG_FSL_QMAN_CONFIG + qman_init_early(); +#endif +#ifdef CONFIG_FSL_BMAN_CONFIG + bman_init_early(); +#endif +#ifdef CONFIG_FSL_PME2_CTRL + pme2_init_early(); +#endif +} + static const char * const boards[] __initconst = { "fsl,P2041RDB", "fsl,P3041DS", @@ -103,6 +132,7 @@ "fsl,P5020DS", "fsl,P5040DS", "fsl,T4240QDS", + "fsl,T4240RDB", "fsl,B4860QDS", "fsl,B4420QDS", "fsl,B4220QDS", @@ -116,6 +146,7 @@ "fsl,P5020DS-hv", "fsl,P5040DS-hv", "fsl,T4240QDS-hv", + "fsl,T4240RDB-hv", "fsl,B4860QDS-hv", "fsl,B4420QDS-hv", "fsl,B4220QDS-hv", @@ -173,6 +204,7 @@ #else .power_save = e500_idle, #endif + .init_early = corenet_ds_init_early, }; machine_arch_initcall(corenet_generic, corenet_gen_publish_devices); --- linux-3.13.0.orig/arch/powerpc/platforms/85xx/smp.c +++ linux-3.13.0/arch/powerpc/platforms/85xx/smp.c @@ -176,6 +176,9 @@ int hw_cpu = get_hard_smp_processor_id(nr); int ioremappable; int ret = 0; +#ifdef CONFIG_PPC64 + unsigned long *ptr = NULL; +#endif WARN_ON(nr < 0 || nr >= NR_CPUS); WARN_ON(hw_cpu < 0 || hw_cpu >= NR_CPUS); @@ -264,11 +267,18 @@ #else smp_generic_kick_cpu(nr); - flush_spin_table(spin_table); - out_be32(&spin_table->pir, hw_cpu); - out_be64((u64 *)(&spin_table->addr_h), - __pa((u64)*((unsigned long long *)generic_secondary_smp_init))); - flush_spin_table(spin_table); + ptr = (unsigned long *)((unsigned long)&__run_at_kexec); + /* We shouldn't access spin_table from the bootloader to up any + * secondary cpu for kexec kernel, and kexec kernel already + * know how to jump to generic_secondary_smp_init. + */ + if (!*ptr) { + flush_spin_table(spin_table); + out_be32(&spin_table->pir, hw_cpu); + out_be64((u64 *)(&spin_table->addr_h), + __pa((u64)*((unsigned long long *)generic_secondary_smp_init))); + flush_spin_table(spin_table); + } #endif local_irq_restore(flags); @@ -293,6 +303,7 @@ }; #ifdef CONFIG_KEXEC +#ifdef CONFIG_PPC32 atomic_t kexec_down_cpus = ATOMIC_INIT(0); void mpc85xx_smp_kexec_cpu_down(int crash_shutdown, int secondary) @@ -311,6 +322,14 @@ if (ppc_md.kexec_cpu_down) ppc_md.kexec_cpu_down(0,1); } +#else +void mpc85xx_smp_kexec_cpu_down(int crash_shutdown, int secondary) +{ + local_irq_disable(); + hard_irq_disable(); + mpic_teardown_this_cpu(secondary); +} +#endif static void map_and_flush(unsigned long paddr) { @@ -362,11 +381,14 @@ static void mpc85xx_smp_machine_kexec(struct kimage *image) { +#ifdef CONFIG_PPC32 int timeout = INT_MAX; int i, num_cpus = num_present_cpus(); +#endif mpc85xx_smp_flush_dcache_kexec(image); +#ifdef CONFIG_PPC32 if (image->type == KEXEC_TYPE_DEFAULT) smp_call_function(mpc85xx_smp_kexec_down, NULL, 0); @@ -384,6 +406,7 @@ if ( i == smp_processor_id() ) continue; mpic_reset_core(i); } +#endif default_machine_kexec(image); } --- linux-3.13.0.orig/arch/powerpc/platforms/cell/spufs/inode.c +++ linux-3.13.0/arch/powerpc/platforms/cell/spufs/inode.c @@ -164,7 +164,7 @@ struct dentry *dentry, *tmp; mutex_lock(&dir->d_inode->i_mutex); - list_for_each_entry_safe(dentry, tmp, &dir->d_subdirs, d_u.d_child) { + list_for_each_entry_safe(dentry, tmp, &dir->d_subdirs, d_child) { spin_lock(&dentry->d_lock); if (!(d_unhashed(dentry)) && dentry->d_inode) { dget_dlock(dentry); --- linux-3.13.0.orig/arch/powerpc/platforms/powernv/Kconfig +++ linux-3.13.0/arch/powerpc/platforms/powernv/Kconfig @@ -11,6 +11,12 @@ select PPC_UDBG_16550 select PPC_SCOM select ARCH_RANDOM + select CPU_FREQ + select CPU_FREQ_GOV_PERFORMANCE + select CPU_FREQ_GOV_POWERSAVE + select CPU_FREQ_GOV_USERSPACE + select CPU_FREQ_GOV_ONDEMAND + select CPU_FREQ_GOV_CONSERVATIVE default y config POWERNV_MSI --- linux-3.13.0.orig/arch/powerpc/platforms/powernv/Makefile +++ linux-3.13.0/arch/powerpc/platforms/powernv/Makefile @@ -1,6 +1,7 @@ -obj-y += setup.o opal-takeover.o opal-wrappers.o opal.o +obj-y += setup.o opal-takeover.o opal-wrappers.o opal.o opal-async.o obj-y += opal-rtc.o opal-nvram.o opal-lpc.o opal-flash.o -obj-y += rng.o +obj-y += rng.o opal-elog.o opal-dump.o opal-sensor.o +obj-y += opal-msglog.o obj-$(CONFIG_SMP) += smp.o obj-$(CONFIG_PCI) += pci.o pci-p5ioc2.o pci-ioda.o --- linux-3.13.0.orig/arch/powerpc/platforms/powernv/eeh-ioda.c +++ linux-3.13.0/arch/powerpc/platforms/powernv/eeh-ioda.c @@ -114,6 +114,7 @@ ioda_eeh_inbB_dbgfs_set, "0x%llx\n"); #endif /* CONFIG_DEBUG_FS */ + /** * ioda_eeh_post_init - Chip dependent post initialization * @hose: PCI controller @@ -221,6 +222,22 @@ return ret; } +static void ioda_eeh_phb_diag(struct pci_controller *hose) +{ + struct pnv_phb *phb = hose->private_data; + long rc; + + rc = opal_pci_get_phb_diag_data2(phb->opal_id, phb->diag.blob, + PNV_PCI_DIAG_BUF_SIZE); + if (rc != OPAL_SUCCESS) { + pr_warning("%s: Failed to get diag-data for PHB#%x (%ld)\n", + __func__, hose->global_number, rc); + return; + } + + pnv_pci_dump_phb_diag_data(hose, phb->diag.blob); +} + /** * ioda_eeh_get_state - Retrieve the state of PE * @pe: EEH PE @@ -233,7 +250,7 @@ { s64 ret = 0; u8 fstate; - u16 pcierr; + __be16 pcierr; u32 pe_no; int result; struct pci_controller *hose = pe->phb; @@ -267,11 +284,14 @@ result = 0; result &= ~EEH_STATE_RESET_ACTIVE; - if (pcierr != OPAL_EEH_PHB_ERROR) { + if (be16_to_cpu(pcierr) != OPAL_EEH_PHB_ERROR) { result |= EEH_STATE_MMIO_ACTIVE; result |= EEH_STATE_DMA_ACTIVE; result |= EEH_STATE_MMIO_ENABLED; result |= EEH_STATE_DMA_ENABLED; + } else if (!(pe->state & EEH_PE_ISOLATED)) { + eeh_pe_state_mark(pe, EEH_PE_ISOLATED); + ioda_eeh_phb_diag(hose); } return result; @@ -315,6 +335,15 @@ __func__, fstate, hose->global_number, pe_no); } + /* Dump PHB diag-data for frozen PE */ + if (result != EEH_STATE_NOT_SUPPORT && + (result & (EEH_STATE_MMIO_ACTIVE | EEH_STATE_DMA_ACTIVE)) != + (EEH_STATE_MMIO_ACTIVE | EEH_STATE_DMA_ACTIVE) && + !(pe->state & EEH_PE_ISOLATED)) { + eeh_pe_state_mark(pe, EEH_PE_ISOLATED); + ioda_eeh_phb_diag(hose); + } + return result; } @@ -490,8 +519,7 @@ static int ioda_eeh_reset(struct eeh_pe *pe, int option) { struct pci_controller *hose = pe->phb; - struct eeh_dev *edev; - struct pci_dev *dev; + struct pci_bus *bus; int ret; /* @@ -520,76 +548,18 @@ if (pe->type & EEH_PE_PHB) { ret = ioda_eeh_phb_reset(hose, option); } else { - if (pe->type & EEH_PE_DEVICE) { - /* - * If it's device PE, we didn't refer to the parent - * PCI bus yet. So we have to figure it out indirectly. - */ - edev = list_first_entry(&pe->edevs, - struct eeh_dev, list); - dev = eeh_dev_to_pci_dev(edev); - dev = dev->bus->self; - } else { - /* - * If it's bus PE, the parent PCI bus is already there - * and just pick it up. - */ - dev = pe->bus->self; - } - - /* - * Do reset based on the fact that the direct upstream bridge - * is root bridge (port) or not. - */ - if (dev->bus->number == 0) + bus = eeh_pe_bus_get(pe); + if (pci_is_root_bus(bus) || + pci_is_root_bus(bus->parent)) ret = ioda_eeh_root_reset(hose, option); else - ret = ioda_eeh_bridge_reset(hose, dev, option); + ret = ioda_eeh_bridge_reset(hose, bus->self, option); } return ret; } /** - * ioda_eeh_get_log - Retrieve error log - * @pe: EEH PE - * @severity: Severity level of the log - * @drv_log: buffer to store the log - * @len: space of the log buffer - * - * The function is used to retrieve error log from P7IOC. - */ -static int ioda_eeh_get_log(struct eeh_pe *pe, int severity, - char *drv_log, unsigned long len) -{ - s64 ret; - unsigned long flags; - struct pci_controller *hose = pe->phb; - struct pnv_phb *phb = hose->private_data; - - spin_lock_irqsave(&phb->lock, flags); - - ret = opal_pci_get_phb_diag_data2(phb->opal_id, - phb->diag.blob, PNV_PCI_DIAG_BUF_SIZE); - if (ret) { - spin_unlock_irqrestore(&phb->lock, flags); - pr_warning("%s: Can't get log for PHB#%x-PE#%x (%lld)\n", - __func__, hose->global_number, pe->addr, ret); - return -EIO; - } - - /* - * FIXME: We probably need log the error in somewhere. - * Lets make it up in future. - */ - /* pr_info("%s", phb->diag.blob); */ - - spin_unlock_irqrestore(&phb->lock, flags); - - return 0; -} - -/** * ioda_eeh_configure_bridge - Configure the PCI bridges for the indicated PE * @pe: EEH PE * @@ -670,167 +640,6 @@ } } -static void ioda_eeh_p7ioc_phb_diag(struct pci_controller *hose, - struct OpalIoPhbErrorCommon *common) -{ - struct OpalIoP7IOCPhbErrorData *data; - int i; - - data = (struct OpalIoP7IOCPhbErrorData *)common; - - pr_info("P7IOC PHB#%x Diag-data (Version: %d)\n\n", - hose->global_number, common->version); - - pr_info(" brdgCtl: %08x\n", data->brdgCtl); - - pr_info(" portStatusReg: %08x\n", data->portStatusReg); - pr_info(" rootCmplxStatus: %08x\n", data->rootCmplxStatus); - pr_info(" busAgentStatus: %08x\n", data->busAgentStatus); - - pr_info(" deviceStatus: %08x\n", data->deviceStatus); - pr_info(" slotStatus: %08x\n", data->slotStatus); - pr_info(" linkStatus: %08x\n", data->linkStatus); - pr_info(" devCmdStatus: %08x\n", data->devCmdStatus); - pr_info(" devSecStatus: %08x\n", data->devSecStatus); - - pr_info(" rootErrorStatus: %08x\n", data->rootErrorStatus); - pr_info(" uncorrErrorStatus: %08x\n", data->uncorrErrorStatus); - pr_info(" corrErrorStatus: %08x\n", data->corrErrorStatus); - pr_info(" tlpHdr1: %08x\n", data->tlpHdr1); - pr_info(" tlpHdr2: %08x\n", data->tlpHdr2); - pr_info(" tlpHdr3: %08x\n", data->tlpHdr3); - pr_info(" tlpHdr4: %08x\n", data->tlpHdr4); - pr_info(" sourceId: %08x\n", data->sourceId); - - pr_info(" errorClass: %016llx\n", data->errorClass); - pr_info(" correlator: %016llx\n", data->correlator); - pr_info(" p7iocPlssr: %016llx\n", data->p7iocPlssr); - pr_info(" p7iocCsr: %016llx\n", data->p7iocCsr); - pr_info(" lemFir: %016llx\n", data->lemFir); - pr_info(" lemErrorMask: %016llx\n", data->lemErrorMask); - pr_info(" lemWOF: %016llx\n", data->lemWOF); - pr_info(" phbErrorStatus: %016llx\n", data->phbErrorStatus); - pr_info(" phbFirstErrorStatus: %016llx\n", data->phbFirstErrorStatus); - pr_info(" phbErrorLog0: %016llx\n", data->phbErrorLog0); - pr_info(" phbErrorLog1: %016llx\n", data->phbErrorLog1); - pr_info(" mmioErrorStatus: %016llx\n", data->mmioErrorStatus); - pr_info(" mmioFirstErrorStatus: %016llx\n", data->mmioFirstErrorStatus); - pr_info(" mmioErrorLog0: %016llx\n", data->mmioErrorLog0); - pr_info(" mmioErrorLog1: %016llx\n", data->mmioErrorLog1); - pr_info(" dma0ErrorStatus: %016llx\n", data->dma0ErrorStatus); - pr_info(" dma0FirstErrorStatus: %016llx\n", data->dma0FirstErrorStatus); - pr_info(" dma0ErrorLog0: %016llx\n", data->dma0ErrorLog0); - pr_info(" dma0ErrorLog1: %016llx\n", data->dma0ErrorLog1); - pr_info(" dma1ErrorStatus: %016llx\n", data->dma1ErrorStatus); - pr_info(" dma1FirstErrorStatus: %016llx\n", data->dma1FirstErrorStatus); - pr_info(" dma1ErrorLog0: %016llx\n", data->dma1ErrorLog0); - pr_info(" dma1ErrorLog1: %016llx\n", data->dma1ErrorLog1); - - for (i = 0; i < OPAL_P7IOC_NUM_PEST_REGS; i++) { - if ((data->pestA[i] >> 63) == 0 && - (data->pestB[i] >> 63) == 0) - continue; - - pr_info(" PE[%3d] PESTA: %016llx\n", i, data->pestA[i]); - pr_info(" PESTB: %016llx\n", data->pestB[i]); - } -} - -static void ioda_eeh_phb3_phb_diag(struct pci_controller *hose, - struct OpalIoPhbErrorCommon *common) -{ - struct OpalIoPhb3ErrorData *data; - int i; - - data = (struct OpalIoPhb3ErrorData*)common; - pr_info("PHB3 PHB#%x Diag-data (Version: %d)\n\n", - hose->global_number, common->version); - - pr_info(" brdgCtl: %08x\n", data->brdgCtl); - - pr_info(" portStatusReg: %08x\n", data->portStatusReg); - pr_info(" rootCmplxStatus: %08x\n", data->rootCmplxStatus); - pr_info(" busAgentStatus: %08x\n", data->busAgentStatus); - - pr_info(" deviceStatus: %08x\n", data->deviceStatus); - pr_info(" slotStatus: %08x\n", data->slotStatus); - pr_info(" linkStatus: %08x\n", data->linkStatus); - pr_info(" devCmdStatus: %08x\n", data->devCmdStatus); - pr_info(" devSecStatus: %08x\n", data->devSecStatus); - - pr_info(" rootErrorStatus: %08x\n", data->rootErrorStatus); - pr_info(" uncorrErrorStatus: %08x\n", data->uncorrErrorStatus); - pr_info(" corrErrorStatus: %08x\n", data->corrErrorStatus); - pr_info(" tlpHdr1: %08x\n", data->tlpHdr1); - pr_info(" tlpHdr2: %08x\n", data->tlpHdr2); - pr_info(" tlpHdr3: %08x\n", data->tlpHdr3); - pr_info(" tlpHdr4: %08x\n", data->tlpHdr4); - pr_info(" sourceId: %08x\n", data->sourceId); - pr_info(" errorClass: %016llx\n", data->errorClass); - pr_info(" correlator: %016llx\n", data->correlator); - pr_info(" nFir: %016llx\n", data->nFir); - pr_info(" nFirMask: %016llx\n", data->nFirMask); - pr_info(" nFirWOF: %016llx\n", data->nFirWOF); - pr_info(" PhbPlssr: %016llx\n", data->phbPlssr); - pr_info(" PhbCsr: %016llx\n", data->phbCsr); - pr_info(" lemFir: %016llx\n", data->lemFir); - pr_info(" lemErrorMask: %016llx\n", data->lemErrorMask); - pr_info(" lemWOF: %016llx\n", data->lemWOF); - pr_info(" phbErrorStatus: %016llx\n", data->phbErrorStatus); - pr_info(" phbFirstErrorStatus: %016llx\n", data->phbFirstErrorStatus); - pr_info(" phbErrorLog0: %016llx\n", data->phbErrorLog0); - pr_info(" phbErrorLog1: %016llx\n", data->phbErrorLog1); - pr_info(" mmioErrorStatus: %016llx\n", data->mmioErrorStatus); - pr_info(" mmioFirstErrorStatus: %016llx\n", data->mmioFirstErrorStatus); - pr_info(" mmioErrorLog0: %016llx\n", data->mmioErrorLog0); - pr_info(" mmioErrorLog1: %016llx\n", data->mmioErrorLog1); - pr_info(" dma0ErrorStatus: %016llx\n", data->dma0ErrorStatus); - pr_info(" dma0FirstErrorStatus: %016llx\n", data->dma0FirstErrorStatus); - pr_info(" dma0ErrorLog0: %016llx\n", data->dma0ErrorLog0); - pr_info(" dma0ErrorLog1: %016llx\n", data->dma0ErrorLog1); - pr_info(" dma1ErrorStatus: %016llx\n", data->dma1ErrorStatus); - pr_info(" dma1FirstErrorStatus: %016llx\n", data->dma1FirstErrorStatus); - pr_info(" dma1ErrorLog0: %016llx\n", data->dma1ErrorLog0); - pr_info(" dma1ErrorLog1: %016llx\n", data->dma1ErrorLog1); - - for (i = 0; i < OPAL_PHB3_NUM_PEST_REGS; i++) { - if ((data->pestA[i] >> 63) == 0 && - (data->pestB[i] >> 63) == 0) - continue; - - pr_info(" PE[%3d] PESTA: %016llx\n", i, data->pestA[i]); - pr_info(" PESTB: %016llx\n", data->pestB[i]); - } -} - -static void ioda_eeh_phb_diag(struct pci_controller *hose) -{ - struct pnv_phb *phb = hose->private_data; - struct OpalIoPhbErrorCommon *common; - long rc; - - rc = opal_pci_get_phb_diag_data2(phb->opal_id, phb->diag.blob, - PNV_PCI_DIAG_BUF_SIZE); - if (rc != OPAL_SUCCESS) { - pr_warning("%s: Failed to get diag-data for PHB#%x (%ld)\n", - __func__, hose->global_number, rc); - return; - } - - common = (struct OpalIoPhbErrorCommon *)phb->diag.blob; - switch (common->ioType) { - case OPAL_PHB_ERROR_DATA_TYPE_P7IOC: - ioda_eeh_p7ioc_phb_diag(hose, common); - break; - case OPAL_PHB_ERROR_DATA_TYPE_PHB3: - ioda_eeh_phb3_phb_diag(hose, common); - break; - default: - pr_warning("%s: Unrecognized I/O chip %d\n", - __func__, common->ioType); - } -} - static int ioda_eeh_get_phb_pe(struct pci_controller *hose, struct eeh_pe **pe) { @@ -884,12 +693,12 @@ */ static int ioda_eeh_next_error(struct eeh_pe **pe) { - struct pci_controller *hose, *tmp; + struct pci_controller *hose; struct pnv_phb *phb; - u64 frozen_pe_no; - u16 err_type, severity; + __be64 frozen_pe_no; + __be16 err_type, severity; long rc; - int ret = 1; + int ret = EEH_NEXT_ERR_NONE; /* * While running here, it's safe to purge the event queue. @@ -899,7 +708,7 @@ eeh_remove_event(NULL); opal_notifier_update_evt(OPAL_EVENT_PCI_ERROR, 0x0ul); - list_for_each_entry_safe(hose, tmp, &hose_list, list_node) { + list_for_each_entry(hose, &hose_list, list_node) { /* * If the subordinate PCI buses of the PHB has been * removed, we needn't take care of it any more. @@ -920,8 +729,8 @@ } /* If the PHB doesn't have error, stop processing */ - if (err_type == OPAL_EEH_NO_ERROR || - severity == OPAL_EEH_SEV_NO_ERROR) { + if (be16_to_cpu(err_type) == OPAL_EEH_NO_ERROR || + be16_to_cpu(severity) == OPAL_EEH_SEV_NO_ERROR) { pr_devel("%s: No error found on PHB#%x\n", __func__, hose->global_number); continue; @@ -933,66 +742,91 @@ * specific PHB. */ pr_devel("%s: Error (%d, %d, %llu) on PHB#%x\n", - __func__, err_type, severity, - frozen_pe_no, hose->global_number); - switch (err_type) { + __func__, be16_to_cpu(err_type), be16_to_cpu(severity), + be64_to_cpu(frozen_pe_no), hose->global_number); + switch (be16_to_cpu(err_type)) { case OPAL_EEH_IOC_ERROR: - if (severity == OPAL_EEH_SEV_IOC_DEAD) { - list_for_each_entry_safe(hose, tmp, - &hose_list, list_node) { + if (be16_to_cpu(severity) == OPAL_EEH_SEV_IOC_DEAD) { + list_for_each_entry(hose, &hose_list, + list_node) { phb = hose->private_data; phb->eeh_state |= PNV_EEH_STATE_REMOVED; } pr_err("EEH: dead IOC detected\n"); - ret = 4; - goto out; - } else if (severity == OPAL_EEH_SEV_INF) { + ret = EEH_NEXT_ERR_DEAD_IOC; + } else if (be16_to_cpu(severity) == OPAL_EEH_SEV_INF) { pr_info("EEH: IOC informative error " "detected\n"); ioda_eeh_hub_diag(hose); + ret = EEH_NEXT_ERR_NONE; } break; case OPAL_EEH_PHB_ERROR: - if (severity == OPAL_EEH_SEV_PHB_DEAD) { + if (be16_to_cpu(severity) == OPAL_EEH_SEV_PHB_DEAD) { if (ioda_eeh_get_phb_pe(hose, pe)) break; pr_err("EEH: dead PHB#%x detected\n", hose->global_number); phb->eeh_state |= PNV_EEH_STATE_REMOVED; - ret = 3; - goto out; - } else if (severity == OPAL_EEH_SEV_PHB_FENCED) { + ret = EEH_NEXT_ERR_DEAD_PHB; + } else if (be16_to_cpu(severity) == + OPAL_EEH_SEV_PHB_FENCED) { if (ioda_eeh_get_phb_pe(hose, pe)) break; pr_err("EEH: fenced PHB#%x detected\n", hose->global_number); - ret = 2; - goto out; - } else if (severity == OPAL_EEH_SEV_INF) { + ret = EEH_NEXT_ERR_FENCED_PHB; + } else if (be16_to_cpu(severity) == OPAL_EEH_SEV_INF) { pr_info("EEH: PHB#%x informative error " "detected\n", hose->global_number); ioda_eeh_phb_diag(hose); + ret = EEH_NEXT_ERR_NONE; } break; case OPAL_EEH_PE_ERROR: - if (ioda_eeh_get_pe(hose, frozen_pe_no, pe)) + if (ioda_eeh_get_pe(hose, be64_to_cpu(frozen_pe_no), + pe)) break; pr_err("EEH: Frozen PE#%x on PHB#%x detected\n", (*pe)->addr, (*pe)->phb->global_number); - ret = 1; - goto out; + ret = EEH_NEXT_ERR_FROZEN_PE; + break; + default: + pr_warn("%s: Unexpected error type %d\n", + __func__, be16_to_cpu(err_type)); + } + + /* + * EEH core will try recover from fenced PHB or + * frozen PE. In the time for frozen PE, EEH core + * enable IO path for that before collecting logs, + * but it ruins the site. So we have to dump the + * log in advance here. + */ + if ((ret == EEH_NEXT_ERR_FROZEN_PE || + ret == EEH_NEXT_ERR_FENCED_PHB) && + !((*pe)->state & EEH_PE_ISOLATED)) { + eeh_pe_state_mark(*pe, EEH_PE_ISOLATED); + ioda_eeh_phb_diag(hose); } + + /* + * If we have no errors on the specific PHB or only + * informative error there, we continue poking it. + * Otherwise, we need actions to be taken by upper + * layer. + */ + if (ret > EEH_NEXT_ERR_INF) + break; } - ret = 0; -out: return ret; } @@ -1001,7 +835,6 @@ .set_option = ioda_eeh_set_option, .get_state = ioda_eeh_get_state, .reset = ioda_eeh_reset, - .get_log = ioda_eeh_get_log, .configure_bridge = ioda_eeh_configure_bridge, .next_error = ioda_eeh_next_error }; --- linux-3.13.0.orig/arch/powerpc/platforms/powernv/opal-async.c +++ linux-3.13.0/arch/powerpc/platforms/powernv/opal-async.c @@ -0,0 +1,203 @@ +/* + * PowerNV OPAL asynchronous completion interfaces + * + * Copyright 2013 IBM Corp. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#undef DEBUG + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define N_ASYNC_COMPLETIONS 64 + +static DECLARE_BITMAP(opal_async_complete_map, N_ASYNC_COMPLETIONS) = {~0UL}; +static DECLARE_BITMAP(opal_async_token_map, N_ASYNC_COMPLETIONS); +static DECLARE_WAIT_QUEUE_HEAD(opal_async_wait); +static DEFINE_SPINLOCK(opal_async_comp_lock); +static struct semaphore opal_async_sem; +static struct opal_msg *opal_async_responses; +static unsigned int opal_max_async_tokens; + +int __opal_async_get_token(void) +{ + unsigned long flags; + int token; + + spin_lock_irqsave(&opal_async_comp_lock, flags); + token = find_first_bit(opal_async_complete_map, opal_max_async_tokens); + if (token >= opal_max_async_tokens) { + token = -EBUSY; + goto out; + } + + if (__test_and_set_bit(token, opal_async_token_map)) { + token = -EBUSY; + goto out; + } + + __clear_bit(token, opal_async_complete_map); + +out: + spin_unlock_irqrestore(&opal_async_comp_lock, flags); + return token; +} + +int opal_async_get_token_interruptible(void) +{ + int token; + + /* Wait until a token is available */ + if (down_interruptible(&opal_async_sem)) + return -ERESTARTSYS; + + token = __opal_async_get_token(); + if (token < 0) + up(&opal_async_sem); + + return token; +} + +int __opal_async_release_token(int token) +{ + unsigned long flags; + + if (token < 0 || token >= opal_max_async_tokens) { + pr_err("%s: Passed token is out of range, token %d\n", + __func__, token); + return -EINVAL; + } + + spin_lock_irqsave(&opal_async_comp_lock, flags); + __set_bit(token, opal_async_complete_map); + __clear_bit(token, opal_async_token_map); + spin_unlock_irqrestore(&opal_async_comp_lock, flags); + + return 0; +} + +int opal_async_release_token(int token) +{ + int ret; + + ret = __opal_async_release_token(token); + if (ret) + return ret; + + up(&opal_async_sem); + + return 0; +} + +int opal_async_wait_response(uint64_t token, struct opal_msg *msg) +{ + if (token >= opal_max_async_tokens) { + pr_err("%s: Invalid token passed\n", __func__); + return -EINVAL; + } + + if (!msg) { + pr_err("%s: Invalid message pointer passed\n", __func__); + return -EINVAL; + } + + wait_event(opal_async_wait, test_bit(token, opal_async_complete_map)); + memcpy(msg, &opal_async_responses[token], sizeof(*msg)); + + return 0; +} + +static int opal_async_comp_event(struct notifier_block *nb, + unsigned long msg_type, void *msg) +{ + struct opal_msg *comp_msg = msg; + unsigned long flags; + + if (msg_type != OPAL_MSG_ASYNC_COMP) + return 0; + + memcpy(&opal_async_responses[comp_msg->params[0]], comp_msg, + sizeof(*comp_msg)); + spin_lock_irqsave(&opal_async_comp_lock, flags); + __set_bit(comp_msg->params[0], opal_async_complete_map); + spin_unlock_irqrestore(&opal_async_comp_lock, flags); + + wake_up(&opal_async_wait); + + return 0; +} + +static struct notifier_block opal_async_comp_nb = { + .notifier_call = opal_async_comp_event, + .next = NULL, + .priority = 0, +}; + +static int __init opal_async_comp_init(void) +{ + struct device_node *opal_node; + const __be32 *async; + int err; + + opal_node = of_find_node_by_path("/ibm,opal"); + if (!opal_node) { + pr_err("%s: Opal node not found\n", __func__); + err = -ENOENT; + goto out; + } + + async = of_get_property(opal_node, "opal-msg-async-num", NULL); + if (!async) { + pr_err("%s: %s has no opal-msg-async-num\n", + __func__, opal_node->full_name); + err = -ENOENT; + goto out_opal_node; + } + + opal_max_async_tokens = be32_to_cpup(async); + if (opal_max_async_tokens > N_ASYNC_COMPLETIONS) + opal_max_async_tokens = N_ASYNC_COMPLETIONS; + + err = opal_message_notifier_register(OPAL_MSG_ASYNC_COMP, + &opal_async_comp_nb); + if (err) { + pr_err("%s: Can't register OPAL event notifier (%d)\n", + __func__, err); + goto out_opal_node; + } + + opal_async_responses = kzalloc( + sizeof(*opal_async_responses) * opal_max_async_tokens, + GFP_KERNEL); + if (!opal_async_responses) { + pr_err("%s: Out of memory, failed to do asynchronous " + "completion init\n", __func__); + err = -ENOMEM; + goto out_opal_node; + } + + /* Initialize to 1 less than the maximum tokens available, as we may + * require to pop one during emergency through synchronous call to + * __opal_async_get_token() + */ + sema_init(&opal_async_sem, opal_max_async_tokens - 1); + +out_opal_node: + of_node_put(opal_node); +out: + return err; +} +subsys_initcall(opal_async_comp_init); --- linux-3.13.0.orig/arch/powerpc/platforms/powernv/opal-dump.c +++ linux-3.13.0/arch/powerpc/platforms/powernv/opal-dump.c @@ -0,0 +1,453 @@ +/* + * PowerNV OPAL Dump Interface + * + * Copyright 2013,2014 IBM Corp. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include + +#include + +#define DUMP_TYPE_FSP 0x01 + +struct dump_obj { + struct kobject kobj; + struct bin_attribute dump_attr; + uint32_t id; /* becomes object name */ + uint32_t type; + uint32_t size; + char *buffer; +}; +#define to_dump_obj(x) container_of(x, struct dump_obj, kobj) + +struct dump_attribute { + struct attribute attr; + ssize_t (*show)(struct dump_obj *dump, struct dump_attribute *attr, + char *buf); + ssize_t (*store)(struct dump_obj *dump, struct dump_attribute *attr, + const char *buf, size_t count); +}; +#define to_dump_attr(x) container_of(x, struct dump_attribute, attr) + +static ssize_t dump_id_show(struct dump_obj *dump_obj, + struct dump_attribute *attr, + char *buf) +{ + return sprintf(buf, "0x%x\n", dump_obj->id); +} + +static const char* dump_type_to_string(uint32_t type) +{ + switch (type) { + case 0x01: return "SP Dump"; + case 0x02: return "System/Platform Dump"; + case 0x03: return "SMA Dump"; + default: return "unknown"; + } +} + +static ssize_t dump_type_show(struct dump_obj *dump_obj, + struct dump_attribute *attr, + char *buf) +{ + + return sprintf(buf, "0x%x %s\n", dump_obj->type, + dump_type_to_string(dump_obj->type)); +} + +static ssize_t dump_ack_show(struct dump_obj *dump_obj, + struct dump_attribute *attr, + char *buf) +{ + return sprintf(buf, "ack - acknowledge dump\n"); +} + +/* + * Send acknowledgement to OPAL + */ +static int64_t dump_send_ack(uint32_t dump_id) +{ + int rc; + + rc = opal_dump_ack(dump_id); + if (rc) + pr_warn("%s: Failed to send ack to Dump ID 0x%x (%d)\n", + __func__, dump_id, rc); + return rc; +} + +static void delay_release_kobj(void *kobj) +{ + kobject_put((struct kobject *)kobj); +} + +static ssize_t dump_ack_store(struct dump_obj *dump_obj, + struct dump_attribute *attr, + const char *buf, + size_t count) +{ + dump_send_ack(dump_obj->id); + sysfs_schedule_callback(&dump_obj->kobj, delay_release_kobj, + &dump_obj->kobj, THIS_MODULE); + return count; +} + +/* Attributes of a dump + * The binary attribute of the dump itself is dynamic + * due to the dynamic size of the dump + */ +static struct dump_attribute id_attribute = + __ATTR(id, 0666, dump_id_show, NULL); +static struct dump_attribute type_attribute = + __ATTR(type, 0666, dump_type_show, NULL); +static struct dump_attribute ack_attribute = + __ATTR(acknowledge, 0660, dump_ack_show, dump_ack_store); + +static ssize_t init_dump_show(struct dump_obj *dump_obj, + struct dump_attribute *attr, + char *buf) +{ + return sprintf(buf, "1 - initiate dump\n"); +} + +static int64_t dump_fips_init(uint8_t type) +{ + int rc; + + rc = opal_dump_init(type); + if (rc) + pr_warn("%s: Failed to initiate FipS dump (%d)\n", + __func__, rc); + return rc; +} + +static ssize_t init_dump_store(struct dump_obj *dump_obj, + struct dump_attribute *attr, + const char *buf, + size_t count) +{ + dump_fips_init(DUMP_TYPE_FSP); + pr_info("%s: Initiated FSP dump\n", __func__); + return count; +} + +static struct dump_attribute initiate_attribute = + __ATTR(initiate_dump, 0600, init_dump_show, init_dump_store); + +static struct attribute *initiate_attrs[] = { + &initiate_attribute.attr, + NULL, +}; + +static struct attribute_group initiate_attr_group = { + .attrs = initiate_attrs, +}; + +static struct kset *dump_kset; + +static ssize_t dump_attr_show(struct kobject *kobj, + struct attribute *attr, + char *buf) +{ + struct dump_attribute *attribute; + struct dump_obj *dump; + + attribute = to_dump_attr(attr); + dump = to_dump_obj(kobj); + + if (!attribute->show) + return -EIO; + + return attribute->show(dump, attribute, buf); +} + +static ssize_t dump_attr_store(struct kobject *kobj, + struct attribute *attr, + const char *buf, size_t len) +{ + struct dump_attribute *attribute; + struct dump_obj *dump; + + attribute = to_dump_attr(attr); + dump = to_dump_obj(kobj); + + if (!attribute->store) + return -EIO; + + return attribute->store(dump, attribute, buf, len); +} + +static const struct sysfs_ops dump_sysfs_ops = { + .show = dump_attr_show, + .store = dump_attr_store, +}; + +static void dump_release(struct kobject *kobj) +{ + struct dump_obj *dump; + + dump = to_dump_obj(kobj); + vfree(dump->buffer); + kfree(dump); +} + +static struct attribute *dump_default_attrs[] = { + &id_attribute.attr, + &type_attribute.attr, + &ack_attribute.attr, + NULL, +}; + +static struct kobj_type dump_ktype = { + .sysfs_ops = &dump_sysfs_ops, + .release = &dump_release, + .default_attrs = dump_default_attrs, +}; + +static int64_t dump_read_info(uint32_t *dump_id, uint32_t *dump_size, uint32_t *dump_type) +{ + __be32 id, size, type; + int rc; + + type = cpu_to_be32(0xffffffff); + + rc = opal_dump_info2(&id, &size, &type); + if (rc == OPAL_PARAMETER) + rc = opal_dump_info(&id, &size); + + *dump_id = be32_to_cpu(id); + *dump_size = be32_to_cpu(size); + *dump_type = be32_to_cpu(type); + + if (rc) + pr_warn("%s: Failed to get dump info (%d)\n", + __func__, rc); + return rc; +} + +static int64_t dump_read_data(struct dump_obj *dump) +{ + struct opal_sg_list *list; + uint64_t addr; + int64_t rc; + + /* Allocate memory */ + dump->buffer = vzalloc(PAGE_ALIGN(dump->size)); + if (!dump->buffer) { + pr_err("%s : Failed to allocate memory\n", __func__); + rc = -ENOMEM; + goto out; + } + + /* Generate SG list */ + list = opal_vmalloc_to_sg_list(dump->buffer, dump->size); + if (!list) { + rc = -ENOMEM; + goto out; + } + + /* First entry address */ + addr = __pa(list); + + /* Fetch data */ + rc = OPAL_BUSY_EVENT; + while (rc == OPAL_BUSY || rc == OPAL_BUSY_EVENT) { + rc = opal_dump_read(dump->id, addr); + if (rc == OPAL_BUSY_EVENT) { + opal_poll_events(NULL); + msleep(20); + } + } + + if (rc != OPAL_SUCCESS && rc != OPAL_PARTIAL) + pr_warn("%s: Extract dump failed for ID 0x%x\n", + __func__, dump->id); + + /* Free SG list */ + opal_free_sg_list(list); + +out: + return rc; +} + +static ssize_t dump_attr_read(struct file *filep, struct kobject *kobj, + struct bin_attribute *bin_attr, + char *buffer, loff_t pos, size_t count) +{ + ssize_t rc; + + struct dump_obj *dump = to_dump_obj(kobj); + + if (!dump->buffer) { + rc = dump_read_data(dump); + + if (rc != OPAL_SUCCESS && rc != OPAL_PARTIAL) { + vfree(dump->buffer); + dump->buffer = NULL; + + return -EIO; + } + if (rc == OPAL_PARTIAL) { + /* On a partial read, we just return EIO + * and rely on userspace to ask us to try + * again. + */ + pr_info("%s: Platform dump partially read.ID = 0x%x\n", + __func__, dump->id); + return -EIO; + } + } + + memcpy(buffer, dump->buffer + pos, count); + + /* You may think we could free the dump buffer now and retrieve + * it again later if needed, but due to current firmware limitation, + * that's not the case. So, once read into userspace once, + * we keep the dump around until it's acknowledged by userspace. + */ + + return count; +} + +static struct dump_obj *create_dump_obj(uint32_t id, size_t size, + uint32_t type) +{ + struct dump_obj *dump; + int rc; + + dump = kzalloc(sizeof(*dump), GFP_KERNEL); + if (!dump) + return NULL; + + dump->kobj.kset = dump_kset; + + kobject_init(&dump->kobj, &dump_ktype); + + sysfs_bin_attr_init(&dump->dump_attr); + + dump->dump_attr.attr.name = "dump"; + dump->dump_attr.attr.mode = 0400; + dump->dump_attr.size = size; + dump->dump_attr.read = dump_attr_read; + + dump->id = id; + dump->size = size; + dump->type = type; + + rc = kobject_add(&dump->kobj, NULL, "0x%x-0x%x", type, id); + if (rc) { + kobject_put(&dump->kobj); + return NULL; + } + + rc = sysfs_create_bin_file(&dump->kobj, &dump->dump_attr); + if (rc) { + kobject_put(&dump->kobj); + return NULL; + } + + pr_info("%s: New platform dump. ID = 0x%x Size %u\n", + __func__, dump->id, dump->size); + + kobject_uevent(&dump->kobj, KOBJ_ADD); + + return dump; +} + +static int process_dump(void) +{ + int rc; + uint32_t dump_id, dump_size, dump_type; + struct dump_obj *dump; + char name[22]; + + rc = dump_read_info(&dump_id, &dump_size, &dump_type); + if (rc != OPAL_SUCCESS) + return rc; + + sprintf(name, "0x%x-0x%x", dump_type, dump_id); + + /* we may get notified twice, let's handle + * that gracefully and not create two conflicting + * entries. + */ + if (kset_find_obj(dump_kset, name)) + return 0; + + dump = create_dump_obj(dump_id, dump_size, dump_type); + if (!dump) + return -1; + + return 0; +} + +static void dump_work_fn(struct work_struct *work) +{ + process_dump(); +} + +static DECLARE_WORK(dump_work, dump_work_fn); + +static void schedule_process_dump(void) +{ + schedule_work(&dump_work); +} + +/* + * New dump available notification + * + * Once we get notification, we add sysfs entries for it. + * We only fetch the dump on demand, and create sysfs asynchronously. + */ +static int dump_event(struct notifier_block *nb, + unsigned long events, void *change) +{ + if (events & OPAL_EVENT_DUMP_AVAIL) + schedule_process_dump(); + + return 0; +} + +static struct notifier_block dump_nb = { + .notifier_call = dump_event, + .next = NULL, + .priority = 0 +}; + +void __init opal_platform_dump_init(void) +{ + int rc; + + dump_kset = kset_create_and_add("dump", NULL, opal_kobj); + if (!dump_kset) { + pr_warn("%s: Failed to create dump kset\n", __func__); + return; + } + + rc = sysfs_create_group(&dump_kset->kobj, &initiate_attr_group); + if (rc) { + pr_warn("%s: Failed to create initiate dump attr group\n", + __func__); + kobject_put(&dump_kset->kobj); + return; + } + + rc = opal_notifier_register(&dump_nb); + if (rc) { + pr_warn("%s: Can't register OPAL event notifier (%d)\n", + __func__, rc); + return; + } + + opal_dump_resend_notification(); +} --- linux-3.13.0.orig/arch/powerpc/platforms/powernv/opal-elog.c +++ linux-3.13.0/arch/powerpc/platforms/powernv/opal-elog.c @@ -0,0 +1,320 @@ +/* + * Error log support on PowerNV. + * + * Copyright 2013,2014 IBM Corp. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct elog_obj { + struct kobject kobj; + struct bin_attribute raw_attr; + uint64_t id; + uint64_t type; + size_t size; + char *buffer; +}; +#define to_elog_obj(x) container_of(x, struct elog_obj, kobj) + +struct elog_attribute { + struct attribute attr; + ssize_t (*show)(struct elog_obj *elog, struct elog_attribute *attr, + char *buf); + ssize_t (*store)(struct elog_obj *elog, struct elog_attribute *attr, + const char *buf, size_t count); +}; +#define to_elog_attr(x) container_of(x, struct elog_attribute, attr) + +static ssize_t elog_id_show(struct elog_obj *elog_obj, + struct elog_attribute *attr, + char *buf) +{ + return sprintf(buf, "0x%llx\n", elog_obj->id); +} + +static const char *elog_type_to_string(uint64_t type) +{ + switch (type) { + case 0: return "PEL"; + default: return "unknown"; + } +} + +static ssize_t elog_type_show(struct elog_obj *elog_obj, + struct elog_attribute *attr, + char *buf) +{ + return sprintf(buf, "0x%llx %s\n", + elog_obj->type, + elog_type_to_string(elog_obj->type)); +} + +static ssize_t elog_ack_show(struct elog_obj *elog_obj, + struct elog_attribute *attr, + char *buf) +{ + return sprintf(buf, "ack - acknowledge log message\n"); +} + +static void delay_release_kobj(void *kobj) +{ + kobject_put((struct kobject *)kobj); +} + +static ssize_t elog_ack_store(struct elog_obj *elog_obj, + struct elog_attribute *attr, + const char *buf, + size_t count) +{ + opal_send_ack_elog(elog_obj->id); + sysfs_schedule_callback(&elog_obj->kobj, delay_release_kobj, + &elog_obj->kobj, THIS_MODULE); + return count; +} + +static struct elog_attribute id_attribute = + __ATTR(id, 0666, elog_id_show, NULL); +static struct elog_attribute type_attribute = + __ATTR(type, 0666, elog_type_show, NULL); +static struct elog_attribute ack_attribute = + __ATTR(acknowledge, 0660, elog_ack_show, elog_ack_store); + +static struct kset *elog_kset; + +static ssize_t elog_attr_show(struct kobject *kobj, + struct attribute *attr, + char *buf) +{ + struct elog_attribute *attribute; + struct elog_obj *elog; + + attribute = to_elog_attr(attr); + elog = to_elog_obj(kobj); + + if (!attribute->show) + return -EIO; + + return attribute->show(elog, attribute, buf); +} + +static ssize_t elog_attr_store(struct kobject *kobj, + struct attribute *attr, + const char *buf, size_t len) +{ + struct elog_attribute *attribute; + struct elog_obj *elog; + + attribute = to_elog_attr(attr); + elog = to_elog_obj(kobj); + + if (!attribute->store) + return -EIO; + + return attribute->store(elog, attribute, buf, len); +} + +static const struct sysfs_ops elog_sysfs_ops = { + .show = elog_attr_show, + .store = elog_attr_store, +}; + +static void elog_release(struct kobject *kobj) +{ + struct elog_obj *elog; + + elog = to_elog_obj(kobj); + kfree(elog->buffer); + kfree(elog); +} + +static struct attribute *elog_default_attrs[] = { + &id_attribute.attr, + &type_attribute.attr, + &ack_attribute.attr, + NULL, +}; + +static struct kobj_type elog_ktype = { + .sysfs_ops = &elog_sysfs_ops, + .release = &elog_release, + .default_attrs = elog_default_attrs, +}; + +/* Maximum size of a single log on FSP is 16KB */ +#define OPAL_MAX_ERRLOG_SIZE 16384 + +static ssize_t raw_attr_read(struct file *filep, struct kobject *kobj, + struct bin_attribute *bin_attr, + char *buffer, loff_t pos, size_t count) +{ + int opal_rc; + + struct elog_obj *elog = to_elog_obj(kobj); + + /* We may have had an error reading before, so let's retry */ + if (!elog->buffer) { + elog->buffer = kzalloc(elog->size, GFP_KERNEL); + if (!elog->buffer) + return -EIO; + + opal_rc = opal_read_elog(__pa(elog->buffer), + elog->size, elog->id); + if (opal_rc != OPAL_SUCCESS) { + pr_err("ELOG: log read failed for log-id=%llx\n", + elog->id); + kfree(elog->buffer); + elog->buffer = NULL; + return -EIO; + } + } + + memcpy(buffer, elog->buffer + pos, count); + + return count; +} + +static struct elog_obj *create_elog_obj(uint64_t id, size_t size, uint64_t type) +{ + struct elog_obj *elog; + int rc; + + elog = kzalloc(sizeof(*elog), GFP_KERNEL); + if (!elog) + return NULL; + + elog->kobj.kset = elog_kset; + + kobject_init(&elog->kobj, &elog_ktype); + + sysfs_bin_attr_init(&elog->raw_attr); + + elog->raw_attr.attr.name = "raw"; + elog->raw_attr.attr.mode = 0400; + elog->raw_attr.size = size; + elog->raw_attr.read = raw_attr_read; + + elog->id = id; + elog->size = size; + elog->type = type; + + elog->buffer = kzalloc(elog->size, GFP_KERNEL); + + if (elog->buffer) { + rc = opal_read_elog(__pa(elog->buffer), + elog->size, elog->id); + if (rc != OPAL_SUCCESS) { + pr_err("ELOG: log read failed for log-id=%llx\n", + elog->id); + kfree(elog->buffer); + elog->buffer = NULL; + } + } + + rc = kobject_add(&elog->kobj, NULL, "0x%llx", id); + if (rc) { + kobject_put(&elog->kobj); + return NULL; + } + + rc = sysfs_create_bin_file(&elog->kobj, &elog->raw_attr); + if (rc) { + kobject_put(&elog->kobj); + return NULL; + } + + kobject_uevent(&elog->kobj, KOBJ_ADD); + + return elog; +} + +static void elog_work_fn(struct work_struct *work) +{ + __be64 size; + __be64 id; + __be64 type; + uint64_t elog_size; + uint64_t log_id; + uint64_t elog_type; + int rc; + char name[2+16+1]; + + rc = opal_get_elog_size(&id, &size, &type); + if (rc != OPAL_SUCCESS) { + pr_err("ELOG: Opal log read failed\n"); + return; + } + + elog_size = be64_to_cpu(size); + log_id = be64_to_cpu(id); + elog_type = be64_to_cpu(type); + + BUG_ON(elog_size > OPAL_MAX_ERRLOG_SIZE); + + if (elog_size >= OPAL_MAX_ERRLOG_SIZE) + elog_size = OPAL_MAX_ERRLOG_SIZE; + + sprintf(name, "0x%llx", log_id); + + /* we may get notified twice, let's handle + * that gracefully and not create two conflicting + * entries. + */ + if (kset_find_obj(elog_kset, name)) + return; + + create_elog_obj(log_id, elog_size, elog_type); +} + +static DECLARE_WORK(elog_work, elog_work_fn); + +static int elog_event(struct notifier_block *nb, + unsigned long events, void *change) +{ + /* check for error log event */ + if (events & OPAL_EVENT_ERROR_LOG_AVAIL) + schedule_work(&elog_work); + return 0; +} + +static struct notifier_block elog_nb = { + .notifier_call = elog_event, + .next = NULL, + .priority = 0 +}; + +int __init opal_elog_init(void) +{ + int rc = 0; + + elog_kset = kset_create_and_add("elog", NULL, opal_kobj); + if (!elog_kset) { + pr_warn("%s: failed to create elog kset\n", __func__); + return -1; + } + + rc = opal_notifier_register(&elog_nb); + if (rc) { + pr_err("%s: Can't register OPAL event notifier (%d)\n", + __func__, rc); + return rc; + } + + /* We are now ready to pull error logs from opal. */ + opal_resend_pending_logs(); + + return 0; +} --- linux-3.13.0.orig/arch/powerpc/platforms/powernv/opal-flash.c +++ linux-3.13.0/arch/powerpc/platforms/powernv/opal-flash.c @@ -20,6 +20,7 @@ #include #include #include +#include #include @@ -76,11 +77,8 @@ /* Validate buffer size */ #define VALIDATE_BUF_SIZE 4096 -/* XXX: Assume candidate image size is <= 256MB */ -#define MAX_IMAGE_SIZE 0x10000000 - -/* Flash sg list version */ -#define SG_LIST_VERSION (1UL) +/* XXX: Assume candidate image size is <= 1GB */ +#define MAX_IMAGE_SIZE 0x40000000 /* Image status */ enum { @@ -103,27 +101,6 @@ uint32_t size; }; -/* Scatter/gather entry */ -struct opal_sg_entry { - void *data; - long length; -}; - -/* We calculate number of entries based on PAGE_SIZE */ -#define SG_ENTRIES_PER_NODE ((PAGE_SIZE - 16) / sizeof(struct opal_sg_entry)) - -/* - * This struct is very similar but not identical to that - * needed by the opal flash update. All we need to do for - * opal is rewrite num_entries into a version/length and - * translate the pointers to absolute. - */ -struct opal_sg_list { - unsigned long num_entries; - struct opal_sg_list *next; - struct opal_sg_entry entry[SG_ENTRIES_PER_NODE]; -}; - struct validate_flash_t { int status; /* Return status */ void *buf; /* Candiate image buffer */ @@ -152,11 +129,16 @@ */ static inline void opal_flash_validate(void) { - struct validate_flash_t *args_buf = &validate_flash_data; - - args_buf->status = opal_validate_flash(__pa(args_buf->buf), - &(args_buf->buf_size), - &(args_buf->result)); + long ret; + void *buf = validate_flash_data.buf; + __be32 size = cpu_to_be32(validate_flash_data.buf_size); + __be32 result; + + ret = opal_validate_flash(__pa(buf), &size, &result); + + validate_flash_data.status = ret; + validate_flash_data.buf_size = be32_to_cpu(size); + validate_flash_data.result = be32_to_cpu(result); } /* @@ -289,94 +271,11 @@ } /* - * Free sg list - */ -static void free_sg_list(struct opal_sg_list *list) -{ - struct opal_sg_list *sg1; - while (list) { - sg1 = list->next; - kfree(list); - list = sg1; - } - list = NULL; -} - -/* - * Build candidate image scatter gather list - * - * list format: - * ----------------------------------- - * | VER (8) | Entry length in bytes | - * ----------------------------------- - * | Pointer to next entry | - * ----------------------------------- - * | Address of memory area 1 | - * ----------------------------------- - * | Length of memory area 1 | - * ----------------------------------- - * | ......... | - * ----------------------------------- - * | ......... | - * ----------------------------------- - * | Address of memory area N | - * ----------------------------------- - * | Length of memory area N | - * ----------------------------------- - */ -static struct opal_sg_list *image_data_to_sglist(void) -{ - struct opal_sg_list *sg1, *list = NULL; - void *addr; - int size; - - addr = image_data.data; - size = image_data.size; - - sg1 = kzalloc((sizeof(struct opal_sg_list)), GFP_KERNEL); - if (!sg1) - return NULL; - - list = sg1; - sg1->num_entries = 0; - while (size > 0) { - /* Translate virtual address to physical address */ - sg1->entry[sg1->num_entries].data = - (void *)(vmalloc_to_pfn(addr) << PAGE_SHIFT); - - if (size > PAGE_SIZE) - sg1->entry[sg1->num_entries].length = PAGE_SIZE; - else - sg1->entry[sg1->num_entries].length = size; - - sg1->num_entries++; - if (sg1->num_entries >= SG_ENTRIES_PER_NODE) { - sg1->next = kzalloc((sizeof(struct opal_sg_list)), - GFP_KERNEL); - if (!sg1->next) { - pr_err("%s : Failed to allocate memory\n", - __func__); - goto nomem; - } - - sg1 = sg1->next; - sg1->num_entries = 0; - } - addr += PAGE_SIZE; - size -= PAGE_SIZE; - } - return list; -nomem: - free_sg_list(list); - return NULL; -} - -/* * OPAL update flash */ static int opal_flash_update(int op) { - struct opal_sg_list *sg, *list, *next; + struct opal_sg_list *list; unsigned long addr; int64_t rc = OPAL_PARAMETER; @@ -386,32 +285,13 @@ goto flash; } - list = image_data_to_sglist(); + list = opal_vmalloc_to_sg_list(image_data.data, image_data.size); if (!list) goto invalid_img; /* First entry address */ addr = __pa(list); - /* Translate sg list address to absolute */ - for (sg = list; sg; sg = next) { - next = sg->next; - /* Don't translate NULL pointer for last entry */ - if (sg->next) - sg->next = (struct opal_sg_list *)__pa(sg->next); - else - sg->next = NULL; - - /* Make num_entries into the version/length field */ - sg->num_entries = (SG_LIST_VERSION << 56) | - (sg->num_entries * sizeof(struct opal_sg_entry) + 16); - } - - pr_alert("FLASH: Image is %u bytes\n", image_data.size); - pr_alert("FLASH: Image update requested\n"); - pr_alert("FLASH: Image will be updated during system reboot\n"); - pr_alert("FLASH: This will take several minutes. Do not power off!\n"); - flash: rc = opal_update_flash(addr); @@ -419,6 +299,47 @@ return rc; } +/* Return CPUs to OPAL before starting FW update */ +static void flash_return_cpu(void *info) +{ + int cpu = smp_processor_id(); + + if (!cpu_online(cpu)) + return; + + /* Disable IRQ */ + hard_irq_disable(); + + /* Return the CPU to OPAL */ + opal_return_cpu(); +} + +/* This gets called just before system reboots */ +void opal_flash_term_callback(void) +{ + struct cpumask mask; + + if (update_flash_data.status != FLASH_IMG_READY) + return; + + pr_alert("FLASH: Flashing new firmware\n"); + pr_alert("FLASH: Image is %u bytes\n", image_data.size); + pr_alert("FLASH: Performing flash and reboot/shutdown\n"); + pr_alert("FLASH: This will take several minutes. Do not power off!\n"); + + /* Small delay to help getting the above message out */ + msleep(500); + + /* Return secondary CPUs to firmware */ + cpumask_copy(&mask, cpu_online_mask); + cpumask_clear_cpu(smp_processor_id(), &mask); + if (!cpumask_empty(&mask)) + smp_call_function_many(&mask, + flash_return_cpu, NULL, false); + /* Hard disable interrupts */ + hard_irq_disable(); +} + /* * Show candidate image status */ --- linux-3.13.0.orig/arch/powerpc/platforms/powernv/opal-msglog.c +++ linux-3.13.0/arch/powerpc/platforms/powernv/opal-msglog.c @@ -0,0 +1,120 @@ +/* + * PowerNV OPAL in-memory console interface + * + * Copyright 2014 IBM Corp. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include + +/* OPAL in-memory console. Defined in OPAL source at core/console.c */ +struct memcons { + __be64 magic; +#define MEMCONS_MAGIC 0x6630696567726173L + __be64 obuf_phys; + __be64 ibuf_phys; + __be32 obuf_size; + __be32 ibuf_size; + __be32 out_pos; +#define MEMCONS_OUT_POS_WRAP 0x80000000u +#define MEMCONS_OUT_POS_MASK 0x00ffffffu + __be32 in_prod; + __be32 in_cons; +}; + +static ssize_t opal_msglog_read(struct file *file, struct kobject *kobj, + struct bin_attribute *bin_attr, char *to, + loff_t pos, size_t count) +{ + struct memcons *mc = bin_attr->private; + const char *conbuf; + size_t ret, first_read = 0; + uint32_t out_pos, avail; + + if (!mc) + return -ENODEV; + + out_pos = be32_to_cpu(ACCESS_ONCE(mc->out_pos)); + + /* Now we've read out_pos, put a barrier in before reading the new + * data it points to in conbuf. */ + smp_rmb(); + + conbuf = phys_to_virt(be64_to_cpu(mc->obuf_phys)); + + /* When the buffer has wrapped, read from the out_pos marker to the end + * of the buffer, and then read the remaining data as in the un-wrapped + * case. */ + if (out_pos & MEMCONS_OUT_POS_WRAP) { + + out_pos &= MEMCONS_OUT_POS_MASK; + avail = be32_to_cpu(mc->obuf_size) - out_pos; + + ret = memory_read_from_buffer(to, count, &pos, + conbuf + out_pos, avail); + + if (ret < 0) + goto out; + + first_read = ret; + to += first_read; + count -= first_read; + pos -= avail; + } + + /* Sanity check. The firmware should not do this to us. */ + if (out_pos > be32_to_cpu(mc->obuf_size)) { + pr_err("OPAL: memory console corruption. Aborting read.\n"); + return -EINVAL; + } + + ret = memory_read_from_buffer(to, count, &pos, conbuf, out_pos); + + if (ret < 0) + goto out; + + ret += first_read; +out: + return ret; +} + +static struct bin_attribute opal_msglog_attr = { + .attr = {.name = "msglog", .mode = 0444}, + .read = opal_msglog_read +}; + +void __init opal_msglog_init(void) +{ + u64 mcaddr; + struct memcons *mc; + + if (of_property_read_u64(opal_node, "ibm,opal-memcons", &mcaddr)) { + pr_warn("OPAL: Property ibm,opal-memcons not found, no message log\n"); + return; + } + + mc = phys_to_virt(mcaddr); + if (!mc) { + pr_warn("OPAL: memory console address is invalid\n"); + return; + } + + if (be64_to_cpu(mc->magic) != MEMCONS_MAGIC) { + pr_warn("OPAL: memory console version is invalid\n"); + return; + } + + opal_msglog_attr.private = mc; + + if (sysfs_create_bin_file(opal_kobj, &opal_msglog_attr) != 0) + pr_warn("OPAL: sysfs file creation failed\n"); +} --- linux-3.13.0.orig/arch/powerpc/platforms/powernv/opal-sensor.c +++ linux-3.13.0/arch/powerpc/platforms/powernv/opal-sensor.c @@ -0,0 +1,66 @@ +/* + * PowerNV sensor code + * + * Copyright (C) 2013 IBM + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include + +static DEFINE_MUTEX(opal_sensor_mutex); + +/* + * This will return sensor information to driver based on the requested sensor + * handle. A handle is an opaque id for the powernv, read by the driver from the + * device tree.. + */ +int opal_get_sensor_data(u32 sensor_hndl, u32 *sensor_data) +{ + int ret, token; + struct opal_msg msg; + __be32 data; + + token = opal_async_get_token_interruptible(); + if (token < 0) { + pr_err("%s: Couldn't get the token, returning\n", __func__); + ret = token; + goto out; + } + + mutex_lock(&opal_sensor_mutex); + ret = opal_sensor_read(sensor_hndl, token, &data); + if (ret != OPAL_ASYNC_COMPLETION) + goto out_token; + + ret = opal_async_wait_response(token, &msg); + if (ret) { + pr_err("%s: Failed to wait for the async response, %d\n", + __func__, ret); + goto out_token; + } + + *sensor_data = be32_to_cpu(data); + ret = be64_to_cpu(msg.params[1]); + +out_token: + mutex_unlock(&opal_sensor_mutex); + opal_async_release_token(token); +out: + return ret; +} +EXPORT_SYMBOL_GPL(opal_get_sensor_data); --- linux-3.13.0.orig/arch/powerpc/platforms/powernv/opal-wrappers.S +++ linux-3.13.0/arch/powerpc/platforms/powernv/opal-wrappers.S @@ -123,6 +123,24 @@ OPAL_CALL(opal_lpc_read, OPAL_LPC_READ); OPAL_CALL(opal_lpc_write, OPAL_LPC_WRITE); OPAL_CALL(opal_return_cpu, OPAL_RETURN_CPU); +OPAL_CALL(opal_reinit_cpus, OPAL_REINIT_CPUS); +OPAL_CALL(opal_read_elog, OPAL_ELOG_READ); +OPAL_CALL(opal_send_ack_elog, OPAL_ELOG_ACK); +OPAL_CALL(opal_get_elog_size, OPAL_ELOG_SIZE); +OPAL_CALL(opal_resend_pending_logs, OPAL_ELOG_RESEND); +OPAL_CALL(opal_write_elog, OPAL_ELOG_WRITE); OPAL_CALL(opal_validate_flash, OPAL_FLASH_VALIDATE); OPAL_CALL(opal_manage_flash, OPAL_FLASH_MANAGE); OPAL_CALL(opal_update_flash, OPAL_FLASH_UPDATE); +OPAL_CALL(opal_dump_init, OPAL_DUMP_INIT); +OPAL_CALL(opal_dump_info, OPAL_DUMP_INFO); +OPAL_CALL(opal_dump_info2, OPAL_DUMP_INFO2); +OPAL_CALL(opal_dump_read, OPAL_DUMP_READ); +OPAL_CALL(opal_dump_ack, OPAL_DUMP_ACK); +OPAL_CALL(opal_get_msg, OPAL_GET_MSG); +OPAL_CALL(opal_check_completion, OPAL_CHECK_ASYNC_COMPLETION); +OPAL_CALL(opal_dump_resend_notification, OPAL_DUMP_RESEND); +OPAL_CALL(opal_sync_host_reboot, OPAL_SYNC_HOST_REBOOT); +OPAL_CALL(opal_sensor_read, OPAL_SENSOR_READ); +OPAL_CALL(opal_get_param, OPAL_GET_PARAM); +OPAL_CALL(opal_set_param, OPAL_SET_PARAM); --- linux-3.13.0.orig/arch/powerpc/platforms/powernv/opal-xscom.c +++ linux-3.13.0/arch/powerpc/platforms/powernv/opal-xscom.c @@ -71,11 +71,11 @@ } } -static u64 opal_scom_unmangle(u64 reg) +static u64 opal_scom_unmangle(u64 addr) { /* * XSCOM indirect addresses have the top bit set. Additionally - * the reset of the top 3 nibbles is always 0. + * the rest of the top 3 nibbles is always 0. * * Because the debugfs interface uses signed offsets and shifts * the address left by 3, we basically cannot use the top 4 bits @@ -86,10 +86,13 @@ * conversion here. To leave room for further xscom address * expansion, we only clear out the top byte * + * For in-kernel use, we also support the real indirect bit, so + * we test for any of the top 5 bits + * */ - if (reg & (1ull << 59)) - reg = (reg & ~(0xffull << 56)) | (1ull << 63); - return reg; + if (addr & (0x1full << 59)) + addr = (addr & ~(0xffull << 56)) | (1ull << 63); + return addr; } static int opal_scom_read(scom_map_t map, u64 reg, u64 *value) @@ -98,8 +101,8 @@ int64_t rc; __be64 v; - reg = opal_scom_unmangle(reg); - rc = opal_xscom_read(m->chip, m->addr + reg, (__be64 *)__pa(&v)); + reg = opal_scom_unmangle(m->addr + reg); + rc = opal_xscom_read(m->chip, reg, (__be64 *)__pa(&v)); *value = be64_to_cpu(v); return opal_xscom_err_xlate(rc); } @@ -109,8 +112,8 @@ struct opal_scom_map *m = map; int64_t rc; - reg = opal_scom_unmangle(reg); - rc = opal_xscom_write(m->chip, m->addr + reg, value); + reg = opal_scom_unmangle(m->addr + reg); + rc = opal_xscom_write(m->chip, reg, value); return opal_xscom_err_xlate(rc); } --- linux-3.13.0.orig/arch/powerpc/platforms/powernv/opal.c +++ linux-3.13.0/arch/powerpc/platforms/powernv/opal.c @@ -18,9 +18,12 @@ #include #include #include +#include #include +#include #include #include +#include #include "powernv.h" @@ -30,40 +33,70 @@ struct opal { u64 base; u64 entry; + u64 size; } opal; -static struct device_node *opal_node; +struct mcheck_recoverable_range { + u64 start_addr; + u64 end_addr; + u64 recover_addr; +}; + +static struct mcheck_recoverable_range *mc_recoverable_range; +static int mc_recoverable_range_len; + +struct device_node *opal_node; static DEFINE_SPINLOCK(opal_write_lock); extern u64 opal_mc_secondary_handler[]; static unsigned int *opal_irqs; static unsigned int opal_irq_count; static ATOMIC_NOTIFIER_HEAD(opal_notifier_head); +static struct atomic_notifier_head opal_msg_notifier_head[OPAL_MSG_TYPE_MAX]; static DEFINE_SPINLOCK(opal_notifier_lock); static uint64_t last_notified_mask = 0x0ul; static atomic_t opal_notifier_hold = ATOMIC_INIT(0); +static void opal_reinit_cores(void) +{ + /* Do the actual re-init, This will clobber all FPRs, VRs, etc... + * + * It will preserve non volatile GPRs and HSPRG0/1. It will + * also restore HIDs and other SPRs to their original value + * but it might clobber a bunch. + */ +#ifdef __BIG_ENDIAN__ + opal_reinit_cpus(OPAL_REINIT_CPUS_HILE_BE); +#else + opal_reinit_cpus(OPAL_REINIT_CPUS_HILE_LE); +#endif +} + int __init early_init_dt_scan_opal(unsigned long node, const char *uname, int depth, void *data) { - const void *basep, *entryp; - unsigned long basesz, entrysz; + const void *basep, *entryp, *sizep; + unsigned long basesz, entrysz, runtimesz; if (depth != 1 || strcmp(uname, "ibm,opal") != 0) return 0; basep = of_get_flat_dt_prop(node, "opal-base-address", &basesz); entryp = of_get_flat_dt_prop(node, "opal-entry-address", &entrysz); + sizep = of_get_flat_dt_prop(node, "opal-runtime-size", &runtimesz); - if (!basep || !entryp) + if (!basep || !entryp || !sizep) return 1; opal.base = of_read_number(basep, basesz/4); opal.entry = of_read_number(entryp, entrysz/4); + opal.size = of_read_number(sizep, runtimesz/4); pr_debug("OPAL Base = 0x%llx (basep=%p basesz=%ld)\n", opal.base, basep, basesz); pr_debug("OPAL Entry = 0x%llx (entryp=%p basesz=%ld)\n", opal.entry, entryp, entrysz); + pr_debug("OPAL Entry = 0x%llx (sizep=%p runtimesz=%ld)\n", + opal.size, sizep, runtimesz); powerpc_firmware_features |= FW_FEATURE_OPAL; if (of_flat_dt_is_compatible(node, "ibm,opal-v3")) { @@ -77,6 +110,72 @@ printk("OPAL V1 detected !\n"); } + /* Reinit all cores with the right endian */ + opal_reinit_cores(); + + /* Restore some bits */ + if (cur_cpu_spec->cpu_restore) + cur_cpu_spec->cpu_restore(); + + return 1; +} + +int __init early_init_dt_scan_recoverable_ranges(unsigned long node, + const char *uname, int depth, void *data) +{ + unsigned long i, psize, size; + const __be32 *prop; + + if (depth != 1 || strcmp(uname, "ibm,opal") != 0) + return 0; + + prop = of_get_flat_dt_prop(node, "mcheck-recoverable-ranges", &psize); + + if (!prop) + return 1; + + pr_debug("Found machine check recoverable ranges.\n"); + + /* + * Calculate number of available entries. + * + * Each recoverable address range entry is (start address, len, + * recovery address), 2 cells each for start and recovery address, + * 1 cell for len, totalling 5 cells per entry. + */ + mc_recoverable_range_len = psize / (sizeof(*prop) * 5); + + /* Sanity check */ + if (!mc_recoverable_range_len) + return 1; + + /* Size required to hold all the entries. */ + size = mc_recoverable_range_len * + sizeof(struct mcheck_recoverable_range); + + /* + * Allocate a buffer to hold the MC recoverable ranges. We would be + * accessing them in real mode, hence it needs to be within + * RMO region. + */ + mc_recoverable_range =__va(memblock_alloc_base(size, __alignof__(u64), + ppc64_rma_size)); + memset(mc_recoverable_range, 0, size); + + for (i = 0; i < mc_recoverable_range_len; i++) { + mc_recoverable_range[i].start_addr = + of_read_number(prop + (i * 5) + 0, 2); + mc_recoverable_range[i].end_addr = + mc_recoverable_range[i].start_addr + + of_read_number(prop + (i * 5) + 2, 1); + mc_recoverable_range[i].recover_addr = + of_read_number(prop + (i * 5) + 3, 2); + + pr_debug("Machine check recoverable range: %llx..%llx: %llx\n", + mc_recoverable_range[i].start_addr, + mc_recoverable_range[i].end_addr, + mc_recoverable_range[i].recover_addr); + } return 1; } @@ -88,14 +187,10 @@ if (!(powerpc_firmware_features & FW_FEATURE_OPAL)) return -ENODEV; - /* Hookup some exception handlers. We use the fwnmi area at 0x7000 - * to provide the glue space to OPAL + /* Hookup some exception handlers except machine check. We use the + * fwnmi area at 0x7000 to provide the glue space to OPAL */ glue = 0x7000; - opal_register_exception_handler(OPAL_MACHINE_CHECK_HANDLER, - __pa(opal_mc_secondary_handler[0]), - glue); - glue += 128; opal_register_exception_handler(OPAL_HYPERVISOR_MAINTENANCE_HANDLER, 0, glue); glue += 128; @@ -154,14 +249,14 @@ void opal_notifier_enable(void) { int64_t rc; - uint64_t evt = 0; + __be64 evt = 0; atomic_set(&opal_notifier_hold, 0); /* Process pending events */ rc = opal_poll_events(&evt); if (rc == OPAL_SUCCESS && evt) - opal_do_notifier(evt); + opal_do_notifier(be64_to_cpu(evt)); } void opal_notifier_disable(void) @@ -169,6 +264,95 @@ atomic_set(&opal_notifier_hold, 1); } +/* + * Opal message notifier based on message type. Allow subscribers to get + * notified for specific messgae type. + */ +int opal_message_notifier_register(enum OpalMessageType msg_type, + struct notifier_block *nb) +{ + if (!nb) { + pr_warning("%s: Invalid argument (%p)\n", + __func__, nb); + return -EINVAL; + } + if (msg_type > OPAL_MSG_TYPE_MAX) { + pr_warning("%s: Invalid message type argument (%d)\n", + __func__, msg_type); + return -EINVAL; + } + return atomic_notifier_chain_register( + &opal_msg_notifier_head[msg_type], nb); +} + +static void opal_message_do_notify(uint32_t msg_type, void *msg) +{ + /* notify subscribers */ + atomic_notifier_call_chain(&opal_msg_notifier_head[msg_type], + msg_type, msg); +} + +static void opal_handle_message(void) +{ + s64 ret; + /* + * TODO: pre-allocate a message buffer depending on opal-msg-size + * value in /proc/device-tree. + */ + static struct opal_msg msg; + + ret = opal_get_msg(__pa(&msg), sizeof(msg)); + /* No opal message pending. */ + if (ret == OPAL_RESOURCE) + return; + + /* check for errors. */ + if (ret) { + pr_warning("%s: Failed to retrive opal message, err=%lld\n", + __func__, ret); + return; + } + + /* Sanity check */ + if (msg.msg_type > OPAL_MSG_TYPE_MAX) { + pr_warning("%s: Unknown message type: %u\n", + __func__, msg.msg_type); + return; + } + opal_message_do_notify(msg.msg_type, (void *)&msg); +} + +static int opal_message_notify(struct notifier_block *nb, + unsigned long events, void *change) +{ + if (events & OPAL_EVENT_MSG_PENDING) + opal_handle_message(); + return 0; +} + +static struct notifier_block opal_message_nb = { + .notifier_call = opal_message_notify, + .next = NULL, + .priority = 0, +}; + +static int __init opal_message_init(void) +{ + int ret, i; + + for (i = 0; i < OPAL_MSG_TYPE_MAX; i++) + ATOMIC_INIT_NOTIFIER_HEAD(&opal_msg_notifier_head[i]); + + ret = opal_notifier_register(&opal_message_nb); + if (ret) { + pr_err("%s: Can't register OPAL event notifier (%d)\n", + __func__, ret); + return ret; + } + return 0; +} +early_initcall(opal_message_init); + int opal_get_chars(uint32_t vtermno, char *buf, int count) { s64 rc; @@ -254,119 +438,94 @@ return written; } +static int opal_recover_mce(struct pt_regs *regs, + struct machine_check_event *evt) +{ + int recovered = 0; + uint64_t ea = get_mce_fault_addr(evt); + + if (!(regs->msr & MSR_RI)) { + /* If MSR_RI isn't set, we cannot recover */ + recovered = 0; + } else if (evt->disposition == MCE_DISPOSITION_RECOVERED) { + /* Platform corrected itself */ + recovered = 1; + } else if (ea && !is_kernel_addr(ea)) { + /* + * Faulting address is not in kernel text. We should be fine. + * We need to find which process uses this address. + * For now, kill the task if we have received exception when + * in userspace. + * + * TODO: Queue up this address for hwpoisioning later. + */ + if (user_mode(regs) && !is_global_init(current)) { + _exception(SIGBUS, regs, BUS_MCEERR_AR, regs->nip); + recovered = 1; + } else + recovered = 0; + } else if (user_mode(regs) && !is_global_init(current) && + evt->severity == MCE_SEV_ERROR_SYNC) { + /* + * If we have received a synchronous error when in userspace + * kill the task. + */ + _exception(SIGBUS, regs, BUS_MCEERR_AR, regs->nip); + recovered = 1; + } + return recovered; +} + int opal_machine_check(struct pt_regs *regs) { - struct opal_machine_check_event *opal_evt = get_paca()->opal_mc_evt; - struct opal_machine_check_event evt; - const char *level, *sevstr, *subtype; - static const char *opal_mc_ue_types[] = { - "Indeterminate", - "Instruction fetch", - "Page table walk ifetch", - "Load/Store", - "Page table walk Load/Store", - }; - static const char *opal_mc_slb_types[] = { - "Indeterminate", - "Parity", - "Multihit", - }; - static const char *opal_mc_erat_types[] = { - "Indeterminate", - "Parity", - "Multihit", - }; - static const char *opal_mc_tlb_types[] = { - "Indeterminate", - "Parity", - "Multihit", - }; - - /* Copy the event structure and release the original */ - evt = *opal_evt; - opal_evt->in_use = 0; + struct machine_check_event evt; + + if (!get_mce_event(&evt, MCE_EVENT_RELEASE)) + return 0; /* Print things out */ - if (evt.version != OpalMCE_V1) { + if (evt.version != MCE_V1) { pr_err("Machine Check Exception, Unknown event version %d !\n", evt.version); return 0; } - switch(evt.severity) { - case OpalMCE_SEV_NO_ERROR: - level = KERN_INFO; - sevstr = "Harmless"; - break; - case OpalMCE_SEV_WARNING: - level = KERN_WARNING; - sevstr = ""; - break; - case OpalMCE_SEV_ERROR_SYNC: - level = KERN_ERR; - sevstr = "Severe"; - break; - case OpalMCE_SEV_FATAL: - default: - level = KERN_ERR; - sevstr = "Fatal"; - break; - } - - printk("%s%s Machine check interrupt [%s]\n", level, sevstr, - evt.disposition == OpalMCE_DISPOSITION_RECOVERED ? - "Recovered" : "[Not recovered"); - printk("%s Initiator: %s\n", level, - evt.initiator == OpalMCE_INITIATOR_CPU ? "CPU" : "Unknown"); - switch(evt.error_type) { - case OpalMCE_ERROR_TYPE_UE: - subtype = evt.u.ue_error.ue_error_type < - ARRAY_SIZE(opal_mc_ue_types) ? - opal_mc_ue_types[evt.u.ue_error.ue_error_type] - : "Unknown"; - printk("%s Error type: UE [%s]\n", level, subtype); - if (evt.u.ue_error.effective_address_provided) - printk("%s Effective address: %016llx\n", - level, evt.u.ue_error.effective_address); - if (evt.u.ue_error.physical_address_provided) - printk("%s Physial address: %016llx\n", - level, evt.u.ue_error.physical_address); - break; - case OpalMCE_ERROR_TYPE_SLB: - subtype = evt.u.slb_error.slb_error_type < - ARRAY_SIZE(opal_mc_slb_types) ? - opal_mc_slb_types[evt.u.slb_error.slb_error_type] - : "Unknown"; - printk("%s Error type: SLB [%s]\n", level, subtype); - if (evt.u.slb_error.effective_address_provided) - printk("%s Effective address: %016llx\n", - level, evt.u.slb_error.effective_address); - break; - case OpalMCE_ERROR_TYPE_ERAT: - subtype = evt.u.erat_error.erat_error_type < - ARRAY_SIZE(opal_mc_erat_types) ? - opal_mc_erat_types[evt.u.erat_error.erat_error_type] - : "Unknown"; - printk("%s Error type: ERAT [%s]\n", level, subtype); - if (evt.u.erat_error.effective_address_provided) - printk("%s Effective address: %016llx\n", - level, evt.u.erat_error.effective_address); - break; - case OpalMCE_ERROR_TYPE_TLB: - subtype = evt.u.tlb_error.tlb_error_type < - ARRAY_SIZE(opal_mc_tlb_types) ? - opal_mc_tlb_types[evt.u.tlb_error.tlb_error_type] - : "Unknown"; - printk("%s Error type: TLB [%s]\n", level, subtype); - if (evt.u.tlb_error.effective_address_provided) - printk("%s Effective address: %016llx\n", - level, evt.u.tlb_error.effective_address); - break; - default: - case OpalMCE_ERROR_TYPE_UNKNOWN: - printk("%s Error type: Unknown\n", level); - break; - } - return evt.severity == OpalMCE_SEV_FATAL ? 0 : 1; + machine_check_print_event_info(&evt); + + if (opal_recover_mce(regs, &evt)) + return 1; + return 0; +} + +static uint64_t find_recovery_address(uint64_t nip) +{ + int i; + + for (i = 0; i < mc_recoverable_range_len; i++) + if ((nip >= mc_recoverable_range[i].start_addr) && + (nip < mc_recoverable_range[i].end_addr)) + return mc_recoverable_range[i].recover_addr; + return 0; +} + +bool opal_mce_check_early_recovery(struct pt_regs *regs) +{ + uint64_t recover_addr = 0; + + if (!opal.base || !opal.size) + goto out; + + if ((regs->nip >= opal.base) && + (regs->nip <= (opal.base + opal.size))) + recover_addr = find_recovery_address(regs->nip); + + /* + * Setup regs->nip to rfi into fixup address. + */ + if (recover_addr) + regs->nip = recover_addr; + +out: + return !!recover_addr; } static irqreturn_t opal_interrupt(int irq, void *data) @@ -375,7 +534,7 @@ opal_handle_interrupt(virq_to_hw(irq), &events); - opal_do_notifier(events); + opal_do_notifier(be64_to_cpu(events)); return IRQ_HANDLED; } @@ -440,8 +599,14 @@ /* Create "opal" kobject under /sys/firmware */ rc = opal_sysfs_init(); if (rc == 0) { + /* Setup error log interface */ + rc = opal_elog_init(); /* Setup code update interface */ opal_flash_init(); + /* Setup platform dump extract interface */ + opal_platform_dump_init(); + /* Setup message log interface. */ + opal_msglog_init(); } return 0; @@ -458,3 +623,66 @@ opal_irqs[i] = 0; } } + +/* Convert a region of vmalloc memory to an opal sg list */ +struct opal_sg_list *opal_vmalloc_to_sg_list(void *vmalloc_addr, + unsigned long vmalloc_size) +{ + struct opal_sg_list *sg, *first = NULL; + unsigned long i = 0; + + sg = kzalloc(PAGE_SIZE, GFP_KERNEL); + if (!sg) + goto nomem; + + first = sg; + + while (vmalloc_size > 0) { + uint64_t data = vmalloc_to_pfn(vmalloc_addr) << PAGE_SHIFT; + uint64_t length = min(vmalloc_size, PAGE_SIZE); + + sg->entry[i].data = cpu_to_be64(data); + sg->entry[i].length = cpu_to_be64(length); + i++; + + if (i >= SG_ENTRIES_PER_NODE) { + struct opal_sg_list *next; + + next = kzalloc(PAGE_SIZE, GFP_KERNEL); + if (!next) + goto nomem; + + sg->length = cpu_to_be64( + i * sizeof(struct opal_sg_entry) + 16); + i = 0; + sg->next = cpu_to_be64(__pa(next)); + sg = next; + } + + vmalloc_addr += length; + vmalloc_size -= length; + } + + sg->length = cpu_to_be64(i * sizeof(struct opal_sg_entry) + 16); + + return first; + +nomem: + pr_err("%s : Failed to allocate memory\n", __func__); + opal_free_sg_list(first); + return NULL; +} + +void opal_free_sg_list(struct opal_sg_list *sg) +{ + while (sg) { + uint64_t next = be64_to_cpu(sg->next); + + kfree(sg); + + if (next) + sg = __va(next); + else + sg = NULL; + } +} --- linux-3.13.0.orig/arch/powerpc/platforms/powernv/pci-ioda.c +++ linux-3.13.0/arch/powerpc/platforms/powernv/pci-ioda.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -460,9 +461,39 @@ return; pe = &phb->ioda.pe_array[pdn->pe_number]; + WARN_ON(get_dma_ops(&pdev->dev) != &dma_iommu_ops); set_iommu_table_base(&pdev->dev, &pe->tce32_table); } +static int pnv_pci_ioda_dma_set_mask(struct pnv_phb *phb, + struct pci_dev *pdev, u64 dma_mask) +{ + struct pci_dn *pdn = pci_get_pdn(pdev); + struct pnv_ioda_pe *pe; + uint64_t top; + bool bypass = false; + + if (WARN_ON(!pdn || pdn->pe_number == IODA_INVALID_PE)) + return -ENODEV;; + + pe = &phb->ioda.pe_array[pdn->pe_number]; + if (pe->tce_bypass_enabled) { + top = pe->tce_bypass_base + memblock_end_of_DRAM() - 1; + bypass = (dma_mask >= top); + } + + if (bypass) { + dev_info(&pdev->dev, "Using 64-bit DMA iommu bypass\n"); + set_dma_ops(&pdev->dev, &dma_direct_ops); + set_dma_offset(&pdev->dev, pe->tce_bypass_base); + } else { + dev_info(&pdev->dev, "Using 32-bit DMA via iommu\n"); + set_dma_ops(&pdev->dev, &dma_iommu_ops); + set_iommu_table_base(&pdev->dev, &pe->tce32_table); + } + return 0; +} + static void pnv_ioda_setup_bus_dma(struct pnv_ioda_pe *pe, struct pci_bus *bus) { struct pci_dev *dev; @@ -657,6 +688,56 @@ __free_pages(tce_mem, get_order(TCE32_TABLE_SIZE * segs)); } +static void pnv_pci_ioda2_set_bypass(struct iommu_table *tbl, bool enable) +{ + struct pnv_ioda_pe *pe = container_of(tbl, struct pnv_ioda_pe, + tce32_table); + uint16_t window_id = (pe->pe_number << 1 ) + 1; + int64_t rc; + + pe_info(pe, "%sabling 64-bit DMA bypass\n", enable ? "En" : "Dis"); + if (enable) { + phys_addr_t top = memblock_end_of_DRAM(); + + top = roundup_pow_of_two(top); + rc = opal_pci_map_pe_dma_window_real(pe->phb->opal_id, + pe->pe_number, + window_id, + pe->tce_bypass_base, + top); + } else { + rc = opal_pci_map_pe_dma_window_real(pe->phb->opal_id, + pe->pe_number, + window_id, + pe->tce_bypass_base, + 0); + + /* + * We might want to reset the DMA ops of all devices on + * this PE. However in theory, that shouldn't be necessary + * as this is used for VFIO/KVM pass-through and the device + * hasn't yet been returned to its kernel driver + */ + } + if (rc) + pe_err(pe, "OPAL error %lld configuring bypass window\n", rc); + else + pe->tce_bypass_enabled = enable; +} + +static void pnv_pci_ioda2_setup_bypass_pe(struct pnv_phb *phb, + struct pnv_ioda_pe *pe) +{ + /* TVE #1 is selected by PCI address bit 59 */ + pe->tce_bypass_base = 1ull << 59; + + /* Install set_bypass callback for VFIO */ + pe->tce32_table.set_bypass = pnv_pci_ioda2_set_bypass; + + /* Enable bypass by default */ + pnv_pci_ioda2_set_bypass(&pe->tce32_table, true); +} + static void pnv_pci_ioda2_setup_dma_pe(struct pnv_phb *phb, struct pnv_ioda_pe *pe) { @@ -727,6 +808,8 @@ else pnv_ioda_setup_bus_dma(pe, pe->pbus); + /* Also create a bypass window */ + pnv_pci_ioda2_setup_bypass_pe(phb, pe); return; fail: if (pe->tce32_seg >= 0) @@ -818,7 +901,6 @@ unsigned int is_64, struct msi_msg *msg) { struct pnv_ioda_pe *pe = pnv_ioda_get_pe(dev); - struct pci_dn *pdn = pci_get_pdn(dev); struct irq_data *idata; struct irq_chip *ichip; unsigned int xive_num = hwirq - phb->msi_base; @@ -834,7 +916,7 @@ return -ENXIO; /* Force 32-bit MSI on some broken devices */ - if (pdn && pdn->force_32bit_msi) + if (dev->no_64bit_msi) is_64 = 0; /* Assign XIVE to PE */ @@ -1287,6 +1369,7 @@ /* Setup TCEs */ phb->dma_dev_setup = pnv_pci_ioda_dma_dev_setup; + phb->dma_set_mask = pnv_pci_ioda_dma_set_mask; /* Setup shutdown function for kexec */ phb->shutdown = pnv_pci_ioda_shutdown; --- linux-3.13.0.orig/arch/powerpc/platforms/powernv/pci.c +++ linux-3.13.0/arch/powerpc/platforms/powernv/pci.c @@ -50,9 +50,8 @@ { struct pci_controller *hose = pci_bus_to_host(pdev->bus); struct pnv_phb *phb = hose->private_data; - struct pci_dn *pdn = pci_get_pdn(pdev); - if (pdn && pdn->force_32bit_msi && !phb->msi32_support) + if (pdev->no_64bit_msi && !phb->msi32_support) return -ENODEV; return (phb && phb->msi_bmp.bitmap) ? 0 : -ENODEV; @@ -124,77 +123,220 @@ } #endif /* CONFIG_PCI_MSI */ -static void pnv_pci_dump_p7ioc_diag_data(struct pnv_phb *phb) +static void pnv_pci_dump_p7ioc_diag_data(struct pci_controller *hose, + struct OpalIoPhbErrorCommon *common) { - struct OpalIoP7IOCPhbErrorData *data = &phb->diag.p7ioc; + struct OpalIoP7IOCPhbErrorData *data; int i; - pr_info("PHB %d diagnostic data:\n", phb->hose->global_number); + data = (struct OpalIoP7IOCPhbErrorData *)common; + pr_info("P7IOC PHB#%d Diag-data (Version: %d)\n\n", + hose->global_number, be32_to_cpu(common->version)); + + if (data->brdgCtl) + pr_info(" brdgCtl: %08x\n", + be32_to_cpu(data->brdgCtl)); + if (data->portStatusReg || data->rootCmplxStatus || + data->busAgentStatus) + pr_info(" UtlSts: %08x %08x %08x\n", + be32_to_cpu(data->portStatusReg), + be32_to_cpu(data->rootCmplxStatus), + be32_to_cpu(data->busAgentStatus)); + if (data->deviceStatus || data->slotStatus || + data->linkStatus || data->devCmdStatus || + data->devSecStatus) + pr_info(" RootSts: %08x %08x %08x %08x %08x\n", + be32_to_cpu(data->deviceStatus), + be32_to_cpu(data->slotStatus), + be32_to_cpu(data->linkStatus), + be32_to_cpu(data->devCmdStatus), + be32_to_cpu(data->devSecStatus)); + if (data->rootErrorStatus || data->uncorrErrorStatus || + data->corrErrorStatus) + pr_info(" RootErrSts: %08x %08x %08x\n", + be32_to_cpu(data->rootErrorStatus), + be32_to_cpu(data->uncorrErrorStatus), + be32_to_cpu(data->corrErrorStatus)); + if (data->tlpHdr1 || data->tlpHdr2 || + data->tlpHdr3 || data->tlpHdr4) + pr_info(" RootErrLog: %08x %08x %08x %08x\n", + be32_to_cpu(data->tlpHdr1), + be32_to_cpu(data->tlpHdr2), + be32_to_cpu(data->tlpHdr3), + be32_to_cpu(data->tlpHdr4)); + if (data->sourceId || data->errorClass || + data->correlator) + pr_info(" RootErrLog1: %08x %016llx %016llx\n", + be32_to_cpu(data->sourceId), + be64_to_cpu(data->errorClass), + be64_to_cpu(data->correlator)); + if (data->p7iocPlssr || data->p7iocCsr) + pr_info(" PhbSts: %016llx %016llx\n", + data->p7iocPlssr, data->p7iocCsr); + if (data->lemFir || data->lemErrorMask || + data->lemWOF) + pr_info(" Lem: %016llx %016llx %016llx\n", + be64_to_cpu(data->lemFir), + be64_to_cpu(data->lemErrorMask), + be64_to_cpu(data->lemWOF)); + if (data->phbErrorStatus || data->phbFirstErrorStatus || + data->phbErrorLog0 || data->phbErrorLog1) + pr_info(" PhbErr: %016llx %016llx %016llx %016llx\n", + be64_to_cpu(data->phbErrorStatus), + be64_to_cpu(data->phbFirstErrorStatus), + be64_to_cpu(data->phbErrorLog0), + be64_to_cpu(data->phbErrorLog1)); + if (data->mmioErrorStatus || data->mmioFirstErrorStatus || + data->mmioErrorLog0 || data->mmioErrorLog1) + pr_info(" OutErr: %016llx %016llx %016llx %016llx\n", + be64_to_cpu(data->mmioErrorStatus), + be64_to_cpu(data->mmioFirstErrorStatus), + be64_to_cpu(data->mmioErrorLog0), + be64_to_cpu(data->mmioErrorLog1)); + if (data->dma0ErrorStatus || data->dma0FirstErrorStatus || + data->dma0ErrorLog0 || data->dma0ErrorLog1) + pr_info(" InAErr: %016llx %016llx %016llx %016llx\n", + be64_to_cpu(data->dma0ErrorStatus), + be64_to_cpu(data->dma0FirstErrorStatus), + be64_to_cpu(data->dma0ErrorLog0), + be64_to_cpu(data->dma0ErrorLog1)); + if (data->dma1ErrorStatus || data->dma1FirstErrorStatus || + data->dma1ErrorLog0 || data->dma1ErrorLog1) + pr_info(" InBErr: %016llx %016llx %016llx %016llx\n", + be64_to_cpu(data->dma1ErrorStatus), + be64_to_cpu(data->dma1FirstErrorStatus), + be64_to_cpu(data->dma1ErrorLog0), + be64_to_cpu(data->dma1ErrorLog1)); - pr_info(" brdgCtl = 0x%08x\n", data->brdgCtl); + for (i = 0; i < OPAL_P7IOC_NUM_PEST_REGS; i++) { + if ((be64_to_cpu(data->pestA[i]) >> 63) == 0 && + (be64_to_cpu(data->pestB[i]) >> 63) == 0) + continue; - pr_info(" portStatusReg = 0x%08x\n", data->portStatusReg); - pr_info(" rootCmplxStatus = 0x%08x\n", data->rootCmplxStatus); - pr_info(" busAgentStatus = 0x%08x\n", data->busAgentStatus); - - pr_info(" deviceStatus = 0x%08x\n", data->deviceStatus); - pr_info(" slotStatus = 0x%08x\n", data->slotStatus); - pr_info(" linkStatus = 0x%08x\n", data->linkStatus); - pr_info(" devCmdStatus = 0x%08x\n", data->devCmdStatus); - pr_info(" devSecStatus = 0x%08x\n", data->devSecStatus); - - pr_info(" rootErrorStatus = 0x%08x\n", data->rootErrorStatus); - pr_info(" uncorrErrorStatus = 0x%08x\n", data->uncorrErrorStatus); - pr_info(" corrErrorStatus = 0x%08x\n", data->corrErrorStatus); - pr_info(" tlpHdr1 = 0x%08x\n", data->tlpHdr1); - pr_info(" tlpHdr2 = 0x%08x\n", data->tlpHdr2); - pr_info(" tlpHdr3 = 0x%08x\n", data->tlpHdr3); - pr_info(" tlpHdr4 = 0x%08x\n", data->tlpHdr4); - pr_info(" sourceId = 0x%08x\n", data->sourceId); - - pr_info(" errorClass = 0x%016llx\n", data->errorClass); - pr_info(" correlator = 0x%016llx\n", data->correlator); - - pr_info(" p7iocPlssr = 0x%016llx\n", data->p7iocPlssr); - pr_info(" p7iocCsr = 0x%016llx\n", data->p7iocCsr); - pr_info(" lemFir = 0x%016llx\n", data->lemFir); - pr_info(" lemErrorMask = 0x%016llx\n", data->lemErrorMask); - pr_info(" lemWOF = 0x%016llx\n", data->lemWOF); - pr_info(" phbErrorStatus = 0x%016llx\n", data->phbErrorStatus); - pr_info(" phbFirstErrorStatus = 0x%016llx\n", data->phbFirstErrorStatus); - pr_info(" phbErrorLog0 = 0x%016llx\n", data->phbErrorLog0); - pr_info(" phbErrorLog1 = 0x%016llx\n", data->phbErrorLog1); - pr_info(" mmioErrorStatus = 0x%016llx\n", data->mmioErrorStatus); - pr_info(" mmioFirstErrorStatus = 0x%016llx\n", data->mmioFirstErrorStatus); - pr_info(" mmioErrorLog0 = 0x%016llx\n", data->mmioErrorLog0); - pr_info(" mmioErrorLog1 = 0x%016llx\n", data->mmioErrorLog1); - pr_info(" dma0ErrorStatus = 0x%016llx\n", data->dma0ErrorStatus); - pr_info(" dma0FirstErrorStatus = 0x%016llx\n", data->dma0FirstErrorStatus); - pr_info(" dma0ErrorLog0 = 0x%016llx\n", data->dma0ErrorLog0); - pr_info(" dma0ErrorLog1 = 0x%016llx\n", data->dma0ErrorLog1); - pr_info(" dma1ErrorStatus = 0x%016llx\n", data->dma1ErrorStatus); - pr_info(" dma1FirstErrorStatus = 0x%016llx\n", data->dma1FirstErrorStatus); - pr_info(" dma1ErrorLog0 = 0x%016llx\n", data->dma1ErrorLog0); - pr_info(" dma1ErrorLog1 = 0x%016llx\n", data->dma1ErrorLog1); + pr_info(" PE[%3d] A/B: %016llx %016llx\n", + i, be64_to_cpu(data->pestA[i]), + be64_to_cpu(data->pestB[i])); + } +} - for (i = 0; i < OPAL_P7IOC_NUM_PEST_REGS; i++) { - if ((data->pestA[i] >> 63) == 0 && - (data->pestB[i] >> 63) == 0) +static void pnv_pci_dump_phb3_diag_data(struct pci_controller *hose, + struct OpalIoPhbErrorCommon *common) +{ + struct OpalIoPhb3ErrorData *data; + int i; + + data = (struct OpalIoPhb3ErrorData*)common; + pr_info("PHB3 PHB#%d Diag-data (Version: %d)\n\n", + hose->global_number, be32_to_cpu(common->version)); + if (data->brdgCtl) + pr_info(" brdgCtl: %08x\n", + be32_to_cpu(data->brdgCtl)); + if (data->portStatusReg || data->rootCmplxStatus || + data->busAgentStatus) + pr_info(" UtlSts: %08x %08x %08x\n", + be32_to_cpu(data->portStatusReg), + be32_to_cpu(data->rootCmplxStatus), + be32_to_cpu(data->busAgentStatus)); + if (data->deviceStatus || data->slotStatus || + data->linkStatus || data->devCmdStatus || + data->devSecStatus) + pr_info(" RootSts: %08x %08x %08x %08x %08x\n", + be32_to_cpu(data->deviceStatus), + be32_to_cpu(data->slotStatus), + be32_to_cpu(data->linkStatus), + be32_to_cpu(data->devCmdStatus), + be32_to_cpu(data->devSecStatus)); + if (data->rootErrorStatus || data->uncorrErrorStatus || + data->corrErrorStatus) + pr_info(" RootErrSts: %08x %08x %08x\n", + be32_to_cpu(data->rootErrorStatus), + be32_to_cpu(data->uncorrErrorStatus), + be32_to_cpu(data->corrErrorStatus)); + if (data->tlpHdr1 || data->tlpHdr2 || + data->tlpHdr3 || data->tlpHdr4) + pr_info(" RootErrLog: %08x %08x %08x %08x\n", + be32_to_cpu(data->tlpHdr1), be32_to_cpu(data->tlpHdr2), + be32_to_cpu(data->tlpHdr3), be32_to_cpu(data->tlpHdr4)); + if (data->sourceId || data->errorClass || + data->correlator) + pr_info(" RootErrLog1: %08x %016llx %016llx\n", + be32_to_cpu(data->sourceId), + be64_to_cpu(data->errorClass), + be64_to_cpu(data->correlator)); + if (data->nFir || data->nFirMask || + data->nFirWOF) + pr_info(" nFir: %016llx %016llx %016llx\n", + be64_to_cpu(data->nFir), + be64_to_cpu(data->nFirMask), + be64_to_cpu(data->nFirWOF)); + if (data->phbPlssr || data->phbCsr) + pr_info(" PhbSts: %016llx %016llx\n", + be64_to_cpu(data->phbPlssr), be64_to_cpu(data->phbCsr)); + if (data->lemFir || data->lemErrorMask || + data->lemWOF) + pr_info(" Lem: %016llx %016llx %016llx\n", + be64_to_cpu(data->lemFir), + be64_to_cpu(data->lemErrorMask), + be64_to_cpu(data->lemWOF)); + if (data->phbErrorStatus || data->phbFirstErrorStatus || + data->phbErrorLog0 || data->phbErrorLog1) + pr_info(" PhbErr: %016llx %016llx %016llx %016llx\n", + be64_to_cpu(data->phbErrorStatus), + be64_to_cpu(data->phbFirstErrorStatus), + be64_to_cpu(data->phbErrorLog0), + be64_to_cpu(data->phbErrorLog1)); + if (data->mmioErrorStatus || data->mmioFirstErrorStatus || + data->mmioErrorLog0 || data->mmioErrorLog1) + pr_info(" OutErr: %016llx %016llx %016llx %016llx\n", + be64_to_cpu(data->mmioErrorStatus), + be64_to_cpu(data->mmioFirstErrorStatus), + be64_to_cpu(data->mmioErrorLog0), + be64_to_cpu(data->mmioErrorLog1)); + if (data->dma0ErrorStatus || data->dma0FirstErrorStatus || + data->dma0ErrorLog0 || data->dma0ErrorLog1) + pr_info(" InAErr: %016llx %016llx %016llx %016llx\n", + be64_to_cpu(data->dma0ErrorStatus), + be64_to_cpu(data->dma0FirstErrorStatus), + be64_to_cpu(data->dma0ErrorLog0), + be64_to_cpu(data->dma0ErrorLog1)); + if (data->dma1ErrorStatus || data->dma1FirstErrorStatus || + data->dma1ErrorLog0 || data->dma1ErrorLog1) + pr_info(" InBErr: %016llx %016llx %016llx %016llx\n", + be64_to_cpu(data->dma1ErrorStatus), + be64_to_cpu(data->dma1FirstErrorStatus), + be64_to_cpu(data->dma1ErrorLog0), + be64_to_cpu(data->dma1ErrorLog1)); + + for (i = 0; i < OPAL_PHB3_NUM_PEST_REGS; i++) { + if ((be64_to_cpu(data->pestA[i]) >> 63) == 0 && + (be64_to_cpu(data->pestB[i]) >> 63) == 0) continue; - pr_info(" PE[%3d] PESTA = 0x%016llx\n", i, data->pestA[i]); - pr_info(" PESTB = 0x%016llx\n", data->pestB[i]); + + pr_info(" PE[%3d] A/B: %016llx %016llx\n", + i, be64_to_cpu(data->pestA[i]), + be64_to_cpu(data->pestB[i])); } } -static void pnv_pci_dump_phb_diag_data(struct pnv_phb *phb) +void pnv_pci_dump_phb_diag_data(struct pci_controller *hose, + unsigned char *log_buff) { - switch(phb->model) { - case PNV_PHB_MODEL_P7IOC: - pnv_pci_dump_p7ioc_diag_data(phb); + struct OpalIoPhbErrorCommon *common; + + if (!hose || !log_buff) + return; + + common = (struct OpalIoPhbErrorCommon *)log_buff; + switch (be32_to_cpu(common->ioType)) { + case OPAL_PHB_ERROR_DATA_TYPE_P7IOC: + pnv_pci_dump_p7ioc_diag_data(hose, common); + break; + case OPAL_PHB_ERROR_DATA_TYPE_PHB3: + pnv_pci_dump_phb3_diag_data(hose, common); break; default: - pr_warning("PCI %d: Can't decode this PHB diag data\n", - phb->hose->global_number); + pr_warn("%s: Unrecognized ioType %d\n", + __func__, be32_to_cpu(common->ioType)); } } @@ -222,7 +364,7 @@ * with the normal errors generated when probing empty slots */ if (has_diag) - pnv_pci_dump_phb_diag_data(phb); + pnv_pci_dump_phb_diag_data(phb->hose, phb->diag.blob); else pr_warning("PCI %d: No diag data available\n", phb->hose->global_number); @@ -553,6 +695,16 @@ pnv_pci_dma_fallback_setup(hose, pdev); } +int pnv_pci_dma_set_mask(struct pci_dev *pdev, u64 dma_mask) +{ + struct pci_controller *hose = pci_bus_to_host(pdev->bus); + struct pnv_phb *phb = hose->private_data; + + if (phb && phb->dma_set_mask) + return phb->dma_set_mask(phb, pdev, dma_mask); + return __dma_set_mask(&pdev->dev, dma_mask); +} + void pnv_pci_shutdown(void) { struct pci_controller *hose; --- linux-3.13.0.orig/arch/powerpc/platforms/powernv/pci.h +++ linux-3.13.0/arch/powerpc/platforms/powernv/pci.h @@ -54,7 +54,9 @@ struct iommu_table tce32_table; phys_addr_t tce_inval_reg_phys; - /* XXX TODO: Add support for additional 64-bit iommus */ + /* 64-bit TCE bypass region */ + bool tce_bypass_enabled; + uint64_t tce_bypass_base; /* MSIs. MVE index is identical for for 32 and 64 bit MSI * and -1 if not supported. (It's actually identical to the @@ -113,6 +115,8 @@ unsigned int hwirq, unsigned int virq, unsigned int is_64, struct msi_msg *msg); void (*dma_dev_setup)(struct pnv_phb *phb, struct pci_dev *pdev); + int (*dma_set_mask)(struct pnv_phb *phb, struct pci_dev *pdev, + u64 dma_mask); void (*fixup_phb)(struct pci_controller *hose); u32 (*bdfn_to_pe)(struct pnv_phb *phb, struct pci_bus *bus, u32 devfn); void (*shutdown)(struct pnv_phb *phb); @@ -177,6 +181,7 @@ unsigned char blob[PNV_PCI_DIAG_BUF_SIZE]; struct OpalIoP7IOCPhbErrorData p7ioc; struct OpalIoP7IOCErrorData hub_diag; + struct OpalIoPhb3ErrorData phb3; } diag; }; @@ -186,6 +191,8 @@ extern struct pnv_eeh_ops ioda_eeh_ops; #endif +void pnv_pci_dump_phb_diag_data(struct pci_controller *hose, + unsigned char *log_buff); int pnv_pci_cfg_read(struct device_node *dn, int where, int size, u32 *val); int pnv_pci_cfg_write(struct device_node *dn, --- linux-3.13.0.orig/arch/powerpc/platforms/powernv/powernv.h +++ linux-3.13.0/arch/powerpc/platforms/powernv/powernv.h @@ -7,12 +7,20 @@ static inline void pnv_smp_init(void) { } #endif +struct pci_dev; + #ifdef CONFIG_PCI extern void pnv_pci_init(void); extern void pnv_pci_shutdown(void); +extern int pnv_pci_dma_set_mask(struct pci_dev *pdev, u64 dma_mask); #else static inline void pnv_pci_init(void) { } static inline void pnv_pci_shutdown(void) { } + +static inline int pnv_pci_dma_set_mask(struct pci_dev *pdev, u64 dma_mask) +{ + return -ENODEV; +} #endif extern void pnv_lpc_init(void); --- linux-3.13.0.orig/arch/powerpc/platforms/powernv/setup.c +++ linux-3.13.0/arch/powerpc/platforms/powernv/setup.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include @@ -97,11 +98,32 @@ of_node_put(root); } +static void pnv_prepare_going_down(void) +{ + /* + * Disable all notifiers from OPAL, we can't + * service interrupts anymore anyway + */ + opal_notifier_disable(); + + /* Soft disable interrupts */ + local_irq_disable(); + + /* + * Return secondary CPUs to firwmare if a flash update + * is pending otherwise we will get all sort of error + * messages about CPU being stuck etc.. This will also + * have the side effect of hard disabling interrupts so + * past this point, the kernel is effectively dead. + */ + opal_flash_term_callback(); +} + static void __noreturn pnv_restart(char *cmd) { long rc = OPAL_BUSY; - opal_notifier_disable(); + pnv_prepare_going_down(); while (rc == OPAL_BUSY || rc == OPAL_BUSY_EVENT) { rc = opal_cec_reboot(); @@ -118,7 +140,7 @@ { long rc = OPAL_BUSY; - opal_notifier_disable(); + pnv_prepare_going_down(); while (rc == OPAL_BUSY || rc == OPAL_BUSY_EVENT) { rc = opal_cec_power_down(0); @@ -140,6 +162,13 @@ { } +static int pnv_dma_set_mask(struct device *dev, u64 dma_mask) +{ + if (dev_is_pci(dev)) + return pnv_pci_dma_set_mask(to_pci_dev(dev), dma_mask); + return __dma_set_mask(dev, dma_mask); +} + static void pnv_shutdown(void) { /* Let the PCI code clear up IODA tables */ @@ -152,18 +181,62 @@ } #ifdef CONFIG_KEXEC +static void pnv_kexec_wait_secondaries_down(void) +{ + int my_cpu, i, notified = -1; + + my_cpu = get_cpu(); + + for_each_online_cpu(i) { + uint8_t status; + int64_t rc; + + if (i == my_cpu) + continue; + + for (;;) { + rc = opal_query_cpu_status(get_hard_smp_processor_id(i), + &status); + if (rc != OPAL_SUCCESS || status != OPAL_THREAD_STARTED) + break; + barrier(); + if (i != notified) { + printk(KERN_INFO "kexec: waiting for cpu %d " + "(physical %d) to enter OPAL\n", + i, paca[i].hw_cpu_id); + notified = i; + } + } + } +} + static void pnv_kexec_cpu_down(int crash_shutdown, int secondary) { xics_kexec_teardown_cpu(secondary); - /* Return secondary CPUs to firmware on OPAL v3 */ - if (firmware_has_feature(FW_FEATURE_OPALv3) && secondary) { + /* On OPAL v3, we return all CPUs to firmware */ + + if (!firmware_has_feature(FW_FEATURE_OPALv3)) + return; + + if (secondary) { + /* Return secondary CPUs to firmware on OPAL v3 */ mb(); get_paca()->kexec_state = KEXEC_STATE_REAL_MODE; mb(); /* Return the CPU to OPAL */ opal_return_cpu(); + } else if (crash_shutdown) { + /* + * On crash, we don't wait for secondaries to go + * down as they might be unreachable or hung, so + * instead we just wait a bit and move on. + */ + mdelay(1); + } else { + /* Primary waits for the secondaries to have reached OPAL */ + pnv_kexec_wait_secondaries_down(); } } #endif /* CONFIG_KEXEC */ @@ -177,6 +250,7 @@ ppc_md.power_off = pnv_power_off; ppc_md.halt = pnv_halt; ppc_md.machine_check_exception = opal_machine_check; + ppc_md.mce_check_early_recovery = opal_mce_check_early_recovery; } #ifdef CONFIG_PPC_POWERNV_RTAS @@ -225,6 +299,7 @@ .machine_shutdown = pnv_shutdown, .power_save = power7_idle, .calibrate_decr = generic_calibrate_decr, + .dma_set_mask = pnv_dma_set_mask, #ifdef CONFIG_KEXEC .kexec_cpu_down = pnv_kexec_cpu_down, #endif --- linux-3.13.0.orig/arch/powerpc/platforms/pseries/eeh_pseries.c +++ linux-3.13.0/arch/powerpc/platforms/pseries/eeh_pseries.c @@ -464,6 +464,7 @@ } else { result = EEH_STATE_NOT_SUPPORT; } + break; default: result = EEH_STATE_NOT_SUPPORT; } --- linux-3.13.0.orig/arch/powerpc/platforms/pseries/hotplug-cpu.c +++ linux-3.13.0/arch/powerpc/platforms/pseries/hotplug-cpu.c @@ -35,12 +35,7 @@ #include "offline_states.h" /* This version can't take the spinlock, because it never returns */ -static struct rtas_args rtas_stop_self_args = { - .token = RTAS_UNKNOWN_SERVICE, - .nargs = 0, - .nret = 1, - .rets = &rtas_stop_self_args.args[0], -}; +static int rtas_stop_self_token = RTAS_UNKNOWN_SERVICE; static DEFINE_PER_CPU(enum cpu_state_vals, preferred_offline_state) = CPU_STATE_OFFLINE; @@ -93,15 +88,20 @@ static void rtas_stop_self(void) { - struct rtas_args *args = &rtas_stop_self_args; + struct rtas_args args = { + .token = cpu_to_be32(rtas_stop_self_token), + .nargs = 0, + .nret = 1, + .rets = &args.args[0], + }; local_irq_disable(); - BUG_ON(args->token == RTAS_UNKNOWN_SERVICE); + BUG_ON(rtas_stop_self_token == RTAS_UNKNOWN_SERVICE); printk("cpu %u (hwid %u) Ready to die...\n", smp_processor_id(), hard_smp_processor_id()); - enter_rtas(__pa(args)); + enter_rtas(__pa(&args)); panic("Alas, I survived.\n"); } @@ -392,10 +392,10 @@ } } - rtas_stop_self_args.token = rtas_token("stop-self"); + rtas_stop_self_token = rtas_token("stop-self"); qcss_tok = rtas_token("query-cpu-stopped-state"); - if (rtas_stop_self_args.token == RTAS_UNKNOWN_SERVICE || + if (rtas_stop_self_token == RTAS_UNKNOWN_SERVICE || qcss_tok == RTAS_UNKNOWN_SERVICE) { printk(KERN_INFO "CPU Hotplug not supported by firmware " "- disabling.\n"); --- linux-3.13.0.orig/arch/powerpc/platforms/pseries/hotplug-memory.c +++ linux-3.13.0/arch/powerpc/platforms/pseries/hotplug-memory.c @@ -164,7 +164,7 @@ } static inline int pseries_remove_memory(struct device_node *np) { - return -EOPNOTSUPP; + return 0; } #endif /* CONFIG_MEMORY_HOTREMOVE */ --- linux-3.13.0.orig/arch/powerpc/platforms/pseries/io_event_irq.c +++ linux-3.13.0/arch/powerpc/platforms/pseries/io_event_irq.c @@ -82,9 +82,9 @@ * RTAS_TYPE_IO only exists in extended event log version 6 or later. * No need to check event log version. */ - if (unlikely(elog->type != RTAS_TYPE_IO)) { - printk_once(KERN_WARNING "io_event_irq: Unexpected event type %d", - elog->type); + if (unlikely(rtas_error_type(elog) != RTAS_TYPE_IO)) { + printk_once(KERN_WARNING"io_event_irq: Unexpected event type %d", + rtas_error_type(elog)); return NULL; } --- linux-3.13.0.orig/arch/powerpc/platforms/pseries/lpar.c +++ linux-3.13.0/arch/powerpc/platforms/pseries/lpar.c @@ -429,16 +429,17 @@ spin_unlock_irqrestore(&pSeries_lpar_tlbie_lock, flags); } -static void pSeries_lpar_hugepage_invalidate(struct mm_struct *mm, - unsigned char *hpte_slot_array, - unsigned long addr, int psize) +static void pSeries_lpar_hugepage_invalidate(unsigned long vsid, + unsigned long addr, + unsigned char *hpte_slot_array, + int psize, int ssize) { - int ssize = 0, i, index = 0; + int i, index = 0; unsigned long s_addr = addr; unsigned int max_hpte_count, valid; unsigned long vpn_array[PPC64_HUGE_HPTE_BATCH]; unsigned long slot_array[PPC64_HUGE_HPTE_BATCH]; - unsigned long shift, hidx, vpn = 0, vsid, hash, slot; + unsigned long shift, hidx, vpn = 0, hash, slot; shift = mmu_psize_defs[psize].shift; max_hpte_count = 1U << (PMD_SHIFT - shift); @@ -451,15 +452,6 @@ /* get the vpn */ addr = s_addr + (i * (1ul << shift)); - if (!is_kernel_addr(addr)) { - ssize = user_segment_size(addr); - vsid = get_vsid(mm->context.id, addr, ssize); - WARN_ON(vsid == 0); - } else { - vsid = get_kernel_vsid(addr, mmu_kernel_ssize); - ssize = mmu_kernel_ssize; - } - vpn = hpt_vpn(addr, vsid, ssize); hash = hpt_hash(vpn, shift, ssize); if (hidx & _PTEIDX_SECONDARY) --- linux-3.13.0.orig/arch/powerpc/platforms/pseries/msi.c +++ linux-3.13.0/arch/powerpc/platforms/pseries/msi.c @@ -428,7 +428,7 @@ */ again: if (type == PCI_CAP_ID_MSI) { - if (pdn->force_32bit_msi) { + if (pdev->no_64bit_msi) { rc = rtas_change_msi(pdn, RTAS_CHANGE_32MSI_FN, nvec); if (rc < 0) { /* --- linux-3.13.0.orig/arch/powerpc/platforms/pseries/pci_dlpar.c +++ linux-3.13.0/arch/powerpc/platforms/pseries/pci_dlpar.c @@ -118,10 +118,10 @@ } } - /* Unregister the bridge device from sysfs and remove the PCI bus */ - device_unregister(b->bridge); + /* Remove the PCI bus and unregister the bridge device from sysfs */ phb->bus = NULL; pci_remove_bus(b); + device_unregister(b->bridge); /* Now release the IO resource */ if (res->flags & IORESOURCE_IO) --- linux-3.13.0.orig/arch/powerpc/platforms/pseries/ras.c +++ linux-3.13.0/arch/powerpc/platforms/pseries/ras.c @@ -236,7 +236,8 @@ rtas_elog = (struct rtas_error_log *)ras_log_buf; - if ((status == 0) && (rtas_elog->severity >= RTAS_SEVERITY_ERROR_SYNC)) + if (status == 0 && + rtas_error_severity(rtas_elog) >= RTAS_SEVERITY_ERROR_SYNC) fatal = 1; else fatal = 0; @@ -300,13 +301,14 @@ /* If it isn't an extended log we can use the per cpu 64bit buffer */ h = (struct rtas_error_log *)&savep[1]; - if (!h->extended) { + if (!rtas_error_extended(h)) { memcpy(&__get_cpu_var(mce_data_buf), h, sizeof(__u64)); errhdr = (struct rtas_error_log *)&__get_cpu_var(mce_data_buf); } else { - int len; + int len, error_log_length; - len = max_t(int, 8+h->extended_log_length, RTAS_ERROR_LOG_MAX); + error_log_length = 8 + rtas_error_extended_log_length(h); + len = max_t(int, error_log_length, RTAS_ERROR_LOG_MAX); memset(global_mce_data_buf, 0, RTAS_ERROR_LOG_MAX); memcpy(global_mce_data_buf, h, len); errhdr = (struct rtas_error_log *)global_mce_data_buf; @@ -350,23 +352,24 @@ static int recover_mce(struct pt_regs *regs, struct rtas_error_log *err) { int recovered = 0; + int disposition = rtas_error_disposition(err); if (!(regs->msr & MSR_RI)) { /* If MSR_RI isn't set, we cannot recover */ recovered = 0; - } else if (err->disposition == RTAS_DISP_FULLY_RECOVERED) { + } else if (disposition == RTAS_DISP_FULLY_RECOVERED) { /* Platform corrected itself */ recovered = 1; - } else if (err->disposition == RTAS_DISP_LIMITED_RECOVERY) { + } else if (disposition == RTAS_DISP_LIMITED_RECOVERY) { /* Platform corrected itself but could be degraded */ printk(KERN_ERR "MCE: limited recovery, system may " "be degraded\n"); recovered = 1; } else if (user_mode(regs) && !is_global_init(current) && - err->severity == RTAS_SEVERITY_ERROR_SYNC) { + rtas_error_severity(err) == RTAS_SEVERITY_ERROR_SYNC) { /* * If we received a synchronous error when in userspace --- linux-3.13.0.orig/arch/powerpc/xmon/xmon.c +++ linux-3.13.0/arch/powerpc/xmon/xmon.c @@ -171,7 +171,11 @@ #define REG "%.8lx" #endif +#ifdef __LITTLE_ENDIAN__ +#define GETWORD(v) (((v)[3] << 24) + ((v)[2] << 16) + ((v)[1] << 8) + (v)[0]) +#else #define GETWORD(v) (((v)[0] << 24) + ((v)[1] << 16) + ((v)[2] << 8) + (v)[3]) +#endif #define isxdigit(c) (('0' <= (c) && (c) <= '9') \ || ('a' <= (c) && (c) <= 'f') \ @@ -288,10 +292,11 @@ args.token = rtas_token("set-indicator"); if (args.token == RTAS_UNKNOWN_SERVICE) return; - args.nargs = 3; - args.nret = 1; + args.token = cpu_to_be32(args.token); + args.nargs = cpu_to_be32(3); + args.nret = cpu_to_be32(1); args.rets = &args.args[3]; - args.args[0] = SURVEILLANCE_TOKEN; + args.args[0] = cpu_to_be32(SURVEILLANCE_TOKEN); args.args[1] = 0; args.args[2] = 0; enter_rtas(__pa(&args)); @@ -2051,6 +2056,10 @@ DUMP(p, stab_addr, "lx"); #endif DUMP(p, emergency_sp, "p"); +#ifdef CONFIG_PPC_BOOK3S_64 + DUMP(p, mc_emergency_sp, "p"); + DUMP(p, in_mce, "x"); +#endif DUMP(p, data_offset, "lx"); DUMP(p, hw_cpu_id, "x"); DUMP(p, cpu_start, "x"); --- linux-3.13.0.orig/arch/s390/Kconfig +++ linux-3.13.0/arch/s390/Kconfig @@ -93,6 +93,7 @@ select ARCH_INLINE_WRITE_UNLOCK_IRQ select ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE select ARCH_SAVE_PAGE_KEYS if HIBERNATION + select ARCH_SUPPORTS_ATOMIC_RMW select ARCH_USE_CMPXCHG_LOCKREF select ARCH_WANT_IPC_PARSE_VERSION select BUILDTIME_EXTABLE_SORT @@ -117,6 +118,7 @@ select HAVE_FUNCTION_GRAPH_TRACER select HAVE_FUNCTION_TRACER select HAVE_FUNCTION_TRACE_MCOUNT_TEST + select HAVE_FUTEX_CMPXCHG if FUTEX select HAVE_KERNEL_BZIP2 select HAVE_KERNEL_GZIP select HAVE_KERNEL_LZ4 --- linux-3.13.0.orig/arch/s390/crypto/aes_s390.c +++ linux-3.13.0/arch/s390/crypto/aes_s390.c @@ -25,6 +25,7 @@ #include #include #include +#include #include "crypt_s390.h" #define AES_KEYLEN_128 1 @@ -32,6 +33,7 @@ #define AES_KEYLEN_256 4 static u8 *ctrblk; +static DEFINE_SPINLOCK(ctrblk_lock); static char keylen_flag; struct s390_aes_ctx { @@ -758,43 +760,67 @@ return aes_set_key(tfm, in_key, key_len); } +static unsigned int __ctrblk_init(u8 *ctrptr, unsigned int nbytes) +{ + unsigned int i, n; + + /* only use complete blocks, max. PAGE_SIZE */ + n = (nbytes > PAGE_SIZE) ? PAGE_SIZE : nbytes & ~(AES_BLOCK_SIZE - 1); + for (i = AES_BLOCK_SIZE; i < n; i += AES_BLOCK_SIZE) { + memcpy(ctrptr + i, ctrptr + i - AES_BLOCK_SIZE, + AES_BLOCK_SIZE); + crypto_inc(ctrptr + i, AES_BLOCK_SIZE); + } + return n; +} + static int ctr_aes_crypt(struct blkcipher_desc *desc, long func, struct s390_aes_ctx *sctx, struct blkcipher_walk *walk) { int ret = blkcipher_walk_virt_block(desc, walk, AES_BLOCK_SIZE); - unsigned int i, n, nbytes; - u8 buf[AES_BLOCK_SIZE]; - u8 *out, *in; + unsigned int n, nbytes; + u8 buf[AES_BLOCK_SIZE], ctrbuf[AES_BLOCK_SIZE]; + u8 *out, *in, *ctrptr = ctrbuf; if (!walk->nbytes) return ret; - memcpy(ctrblk, walk->iv, AES_BLOCK_SIZE); + if (spin_trylock(&ctrblk_lock)) + ctrptr = ctrblk; + + memcpy(ctrptr, walk->iv, AES_BLOCK_SIZE); while ((nbytes = walk->nbytes) >= AES_BLOCK_SIZE) { out = walk->dst.virt.addr; in = walk->src.virt.addr; while (nbytes >= AES_BLOCK_SIZE) { - /* only use complete blocks, max. PAGE_SIZE */ - n = (nbytes > PAGE_SIZE) ? PAGE_SIZE : - nbytes & ~(AES_BLOCK_SIZE - 1); - for (i = AES_BLOCK_SIZE; i < n; i += AES_BLOCK_SIZE) { - memcpy(ctrblk + i, ctrblk + i - AES_BLOCK_SIZE, - AES_BLOCK_SIZE); - crypto_inc(ctrblk + i, AES_BLOCK_SIZE); - } - ret = crypt_s390_kmctr(func, sctx->key, out, in, n, ctrblk); - if (ret < 0 || ret != n) + if (ctrptr == ctrblk) + n = __ctrblk_init(ctrptr, nbytes); + else + n = AES_BLOCK_SIZE; + ret = crypt_s390_kmctr(func, sctx->key, out, in, + n, ctrptr); + if (ret < 0 || ret != n) { + if (ctrptr == ctrblk) + spin_unlock(&ctrblk_lock); return -EIO; + } if (n > AES_BLOCK_SIZE) - memcpy(ctrblk, ctrblk + n - AES_BLOCK_SIZE, + memcpy(ctrptr, ctrptr + n - AES_BLOCK_SIZE, AES_BLOCK_SIZE); - crypto_inc(ctrblk, AES_BLOCK_SIZE); + crypto_inc(ctrptr, AES_BLOCK_SIZE); out += n; in += n; nbytes -= n; } ret = blkcipher_walk_done(desc, walk, nbytes); } + if (ctrptr == ctrblk) { + if (nbytes) + memcpy(ctrbuf, ctrptr, AES_BLOCK_SIZE); + else + memcpy(walk->iv, ctrptr, AES_BLOCK_SIZE); + spin_unlock(&ctrblk_lock); + } /* * final block may be < AES_BLOCK_SIZE, copy only nbytes */ @@ -802,14 +828,15 @@ out = walk->dst.virt.addr; in = walk->src.virt.addr; ret = crypt_s390_kmctr(func, sctx->key, buf, in, - AES_BLOCK_SIZE, ctrblk); + AES_BLOCK_SIZE, ctrbuf); if (ret < 0 || ret != AES_BLOCK_SIZE) return -EIO; memcpy(out, buf, nbytes); - crypto_inc(ctrblk, AES_BLOCK_SIZE); + crypto_inc(ctrbuf, AES_BLOCK_SIZE); ret = blkcipher_walk_done(desc, walk, 0); + memcpy(walk->iv, ctrbuf, AES_BLOCK_SIZE); } - memcpy(walk->iv, ctrblk, AES_BLOCK_SIZE); + return ret; } --- linux-3.13.0.orig/arch/s390/crypto/des_s390.c +++ linux-3.13.0/arch/s390/crypto/des_s390.c @@ -25,6 +25,7 @@ #define DES3_KEY_SIZE (3 * DES_KEY_SIZE) static u8 *ctrblk; +static DEFINE_SPINLOCK(ctrblk_lock); struct s390_des_ctx { u8 iv[DES_BLOCK_SIZE]; @@ -105,29 +106,35 @@ } static int cbc_desall_crypt(struct blkcipher_desc *desc, long func, - u8 *iv, struct blkcipher_walk *walk) + struct blkcipher_walk *walk) { + struct s390_des_ctx *ctx = crypto_blkcipher_ctx(desc->tfm); int ret = blkcipher_walk_virt(desc, walk); unsigned int nbytes = walk->nbytes; + struct { + u8 iv[DES_BLOCK_SIZE]; + u8 key[DES3_KEY_SIZE]; + } param; if (!nbytes) goto out; - memcpy(iv, walk->iv, DES_BLOCK_SIZE); + memcpy(param.iv, walk->iv, DES_BLOCK_SIZE); + memcpy(param.key, ctx->key, DES3_KEY_SIZE); do { /* only use complete blocks */ unsigned int n = nbytes & ~(DES_BLOCK_SIZE - 1); u8 *out = walk->dst.virt.addr; u8 *in = walk->src.virt.addr; - ret = crypt_s390_kmc(func, iv, out, in, n); + ret = crypt_s390_kmc(func, ¶m, out, in, n); if (ret < 0 || ret != n) return -EIO; nbytes &= DES_BLOCK_SIZE - 1; ret = blkcipher_walk_done(desc, walk, nbytes); } while ((nbytes = walk->nbytes)); - memcpy(walk->iv, iv, DES_BLOCK_SIZE); + memcpy(walk->iv, param.iv, DES_BLOCK_SIZE); out: return ret; @@ -179,22 +186,20 @@ struct scatterlist *dst, struct scatterlist *src, unsigned int nbytes) { - struct s390_des_ctx *ctx = crypto_blkcipher_ctx(desc->tfm); struct blkcipher_walk walk; blkcipher_walk_init(&walk, dst, src, nbytes); - return cbc_desall_crypt(desc, KMC_DEA_ENCRYPT, ctx->iv, &walk); + return cbc_desall_crypt(desc, KMC_DEA_ENCRYPT, &walk); } static int cbc_des_decrypt(struct blkcipher_desc *desc, struct scatterlist *dst, struct scatterlist *src, unsigned int nbytes) { - struct s390_des_ctx *ctx = crypto_blkcipher_ctx(desc->tfm); struct blkcipher_walk walk; blkcipher_walk_init(&walk, dst, src, nbytes); - return cbc_desall_crypt(desc, KMC_DEA_DECRYPT, ctx->iv, &walk); + return cbc_desall_crypt(desc, KMC_DEA_DECRYPT, &walk); } static struct crypto_alg cbc_des_alg = { @@ -327,22 +332,20 @@ struct scatterlist *dst, struct scatterlist *src, unsigned int nbytes) { - struct s390_des_ctx *ctx = crypto_blkcipher_ctx(desc->tfm); struct blkcipher_walk walk; blkcipher_walk_init(&walk, dst, src, nbytes); - return cbc_desall_crypt(desc, KMC_TDEA_192_ENCRYPT, ctx->iv, &walk); + return cbc_desall_crypt(desc, KMC_TDEA_192_ENCRYPT, &walk); } static int cbc_des3_decrypt(struct blkcipher_desc *desc, struct scatterlist *dst, struct scatterlist *src, unsigned int nbytes) { - struct s390_des_ctx *ctx = crypto_blkcipher_ctx(desc->tfm); struct blkcipher_walk walk; blkcipher_walk_init(&walk, dst, src, nbytes); - return cbc_desall_crypt(desc, KMC_TDEA_192_DECRYPT, ctx->iv, &walk); + return cbc_desall_crypt(desc, KMC_TDEA_192_DECRYPT, &walk); } static struct crypto_alg cbc_des3_alg = { @@ -366,54 +369,80 @@ } }; +static unsigned int __ctrblk_init(u8 *ctrptr, unsigned int nbytes) +{ + unsigned int i, n; + + /* align to block size, max. PAGE_SIZE */ + n = (nbytes > PAGE_SIZE) ? PAGE_SIZE : nbytes & ~(DES_BLOCK_SIZE - 1); + for (i = DES_BLOCK_SIZE; i < n; i += DES_BLOCK_SIZE) { + memcpy(ctrptr + i, ctrptr + i - DES_BLOCK_SIZE, DES_BLOCK_SIZE); + crypto_inc(ctrptr + i, DES_BLOCK_SIZE); + } + return n; +} + static int ctr_desall_crypt(struct blkcipher_desc *desc, long func, - struct s390_des_ctx *ctx, struct blkcipher_walk *walk) + struct s390_des_ctx *ctx, + struct blkcipher_walk *walk) { int ret = blkcipher_walk_virt_block(desc, walk, DES_BLOCK_SIZE); - unsigned int i, n, nbytes; - u8 buf[DES_BLOCK_SIZE]; - u8 *out, *in; + unsigned int n, nbytes; + u8 buf[DES_BLOCK_SIZE], ctrbuf[DES_BLOCK_SIZE]; + u8 *out, *in, *ctrptr = ctrbuf; + + if (!walk->nbytes) + return ret; - memcpy(ctrblk, walk->iv, DES_BLOCK_SIZE); + if (spin_trylock(&ctrblk_lock)) + ctrptr = ctrblk; + + memcpy(ctrptr, walk->iv, DES_BLOCK_SIZE); while ((nbytes = walk->nbytes) >= DES_BLOCK_SIZE) { out = walk->dst.virt.addr; in = walk->src.virt.addr; while (nbytes >= DES_BLOCK_SIZE) { - /* align to block size, max. PAGE_SIZE */ - n = (nbytes > PAGE_SIZE) ? PAGE_SIZE : - nbytes & ~(DES_BLOCK_SIZE - 1); - for (i = DES_BLOCK_SIZE; i < n; i += DES_BLOCK_SIZE) { - memcpy(ctrblk + i, ctrblk + i - DES_BLOCK_SIZE, - DES_BLOCK_SIZE); - crypto_inc(ctrblk + i, DES_BLOCK_SIZE); - } - ret = crypt_s390_kmctr(func, ctx->key, out, in, n, ctrblk); - if (ret < 0 || ret != n) + if (ctrptr == ctrblk) + n = __ctrblk_init(ctrptr, nbytes); + else + n = DES_BLOCK_SIZE; + ret = crypt_s390_kmctr(func, ctx->key, out, in, + n, ctrptr); + if (ret < 0 || ret != n) { + if (ctrptr == ctrblk) + spin_unlock(&ctrblk_lock); return -EIO; + } if (n > DES_BLOCK_SIZE) - memcpy(ctrblk, ctrblk + n - DES_BLOCK_SIZE, + memcpy(ctrptr, ctrptr + n - DES_BLOCK_SIZE, DES_BLOCK_SIZE); - crypto_inc(ctrblk, DES_BLOCK_SIZE); + crypto_inc(ctrptr, DES_BLOCK_SIZE); out += n; in += n; nbytes -= n; } ret = blkcipher_walk_done(desc, walk, nbytes); } - + if (ctrptr == ctrblk) { + if (nbytes) + memcpy(ctrbuf, ctrptr, DES_BLOCK_SIZE); + else + memcpy(walk->iv, ctrptr, DES_BLOCK_SIZE); + spin_unlock(&ctrblk_lock); + } /* final block may be < DES_BLOCK_SIZE, copy only nbytes */ if (nbytes) { out = walk->dst.virt.addr; in = walk->src.virt.addr; ret = crypt_s390_kmctr(func, ctx->key, buf, in, - DES_BLOCK_SIZE, ctrblk); + DES_BLOCK_SIZE, ctrbuf); if (ret < 0 || ret != DES_BLOCK_SIZE) return -EIO; memcpy(out, buf, nbytes); - crypto_inc(ctrblk, DES_BLOCK_SIZE); + crypto_inc(ctrbuf, DES_BLOCK_SIZE); ret = blkcipher_walk_done(desc, walk, 0); + memcpy(walk->iv, ctrbuf, DES_BLOCK_SIZE); } - memcpy(walk->iv, ctrblk, DES_BLOCK_SIZE); return ret; } --- linux-3.13.0.orig/arch/s390/include/asm/atomic.h +++ linux-3.13.0/arch/s390/include/asm/atomic.h @@ -15,23 +15,29 @@ #include #include +#include #include #define ATOMIC_INIT(i) { (i) } +#define __ATOMIC_NO_BARRIER "\n" + #ifdef CONFIG_HAVE_MARCH_Z196_FEATURES #define __ATOMIC_OR "lao" #define __ATOMIC_AND "lan" #define __ATOMIC_ADD "laa" +#define __ATOMIC_BARRIER "bcr 14,0\n" -#define __ATOMIC_LOOP(ptr, op_val, op_string) \ +#define __ATOMIC_LOOP(ptr, op_val, op_string, __barrier) \ ({ \ int old_val; \ \ typecheck(atomic_t *, ptr); \ asm volatile( \ + __barrier \ op_string " %0,%2,%1\n" \ + __barrier \ : "=d" (old_val), "+Q" ((ptr)->counter) \ : "d" (op_val) \ : "cc", "memory"); \ @@ -43,8 +49,9 @@ #define __ATOMIC_OR "or" #define __ATOMIC_AND "nr" #define __ATOMIC_ADD "ar" +#define __ATOMIC_BARRIER "\n" -#define __ATOMIC_LOOP(ptr, op_val, op_string) \ +#define __ATOMIC_LOOP(ptr, op_val, op_string, __barrier) \ ({ \ int old_val, new_val; \ \ @@ -82,7 +89,7 @@ static inline int atomic_add_return(int i, atomic_t *v) { - return __ATOMIC_LOOP(v, i, __ATOMIC_ADD) + i; + return __ATOMIC_LOOP(v, i, __ATOMIC_ADD, __ATOMIC_BARRIER) + i; } static inline void atomic_add(int i, atomic_t *v) @@ -94,12 +101,10 @@ : "+Q" (v->counter) : "i" (i) : "cc", "memory"); - } else { - atomic_add_return(i, v); + return; } -#else - atomic_add_return(i, v); #endif + __ATOMIC_LOOP(v, i, __ATOMIC_ADD, __ATOMIC_NO_BARRIER); } #define atomic_add_negative(_i, _v) (atomic_add_return(_i, _v) < 0) @@ -115,12 +120,12 @@ static inline void atomic_clear_mask(unsigned int mask, atomic_t *v) { - __ATOMIC_LOOP(v, ~mask, __ATOMIC_AND); + __ATOMIC_LOOP(v, ~mask, __ATOMIC_AND, __ATOMIC_NO_BARRIER); } static inline void atomic_set_mask(unsigned int mask, atomic_t *v) { - __ATOMIC_LOOP(v, mask, __ATOMIC_OR); + __ATOMIC_LOOP(v, mask, __ATOMIC_OR, __ATOMIC_NO_BARRIER); } #define atomic_xchg(v, new) (xchg(&((v)->counter), new)) @@ -157,19 +162,24 @@ #ifdef CONFIG_64BIT +#define __ATOMIC64_NO_BARRIER "\n" + #ifdef CONFIG_HAVE_MARCH_Z196_FEATURES #define __ATOMIC64_OR "laog" #define __ATOMIC64_AND "lang" #define __ATOMIC64_ADD "laag" +#define __ATOMIC64_BARRIER "bcr 14,0\n" -#define __ATOMIC64_LOOP(ptr, op_val, op_string) \ +#define __ATOMIC64_LOOP(ptr, op_val, op_string, __barrier) \ ({ \ long long old_val; \ \ typecheck(atomic64_t *, ptr); \ asm volatile( \ + __barrier \ op_string " %0,%2,%1\n" \ + __barrier \ : "=d" (old_val), "+Q" ((ptr)->counter) \ : "d" (op_val) \ : "cc", "memory"); \ @@ -181,8 +191,9 @@ #define __ATOMIC64_OR "ogr" #define __ATOMIC64_AND "ngr" #define __ATOMIC64_ADD "agr" +#define __ATOMIC64_BARRIER "\n" -#define __ATOMIC64_LOOP(ptr, op_val, op_string) \ +#define __ATOMIC64_LOOP(ptr, op_val, op_string, __barrier) \ ({ \ long long old_val, new_val; \ \ @@ -220,17 +231,32 @@ static inline long long atomic64_add_return(long long i, atomic64_t *v) { - return __ATOMIC64_LOOP(v, i, __ATOMIC64_ADD) + i; + return __ATOMIC64_LOOP(v, i, __ATOMIC64_ADD, __ATOMIC64_BARRIER) + i; +} + +static inline void atomic64_add(long long i, atomic64_t *v) +{ +#ifdef CONFIG_HAVE_MARCH_Z196_FEATURES + if (__builtin_constant_p(i) && (i > -129) && (i < 128)) { + asm volatile( + "agsi %0,%1\n" + : "+Q" (v->counter) + : "i" (i) + : "cc", "memory"); + return; + } +#endif + __ATOMIC64_LOOP(v, i, __ATOMIC64_ADD, __ATOMIC64_NO_BARRIER); } static inline void atomic64_clear_mask(unsigned long mask, atomic64_t *v) { - __ATOMIC64_LOOP(v, ~mask, __ATOMIC64_AND); + __ATOMIC64_LOOP(v, ~mask, __ATOMIC64_AND, __ATOMIC64_NO_BARRIER); } static inline void atomic64_set_mask(unsigned long mask, atomic64_t *v) { - __ATOMIC64_LOOP(v, mask, __ATOMIC64_OR); + __ATOMIC64_LOOP(v, mask, __ATOMIC64_OR, __ATOMIC64_NO_BARRIER); } #define atomic64_xchg(v, new) (xchg(&((v)->counter), new)) @@ -334,25 +360,13 @@ } while (atomic64_cmpxchg(v, old, new) != old); } -#endif /* CONFIG_64BIT */ - static inline void atomic64_add(long long i, atomic64_t *v) { -#ifdef CONFIG_HAVE_MARCH_Z196_FEATURES - if (__builtin_constant_p(i) && (i > -129) && (i < 128)) { - asm volatile( - "agsi %0,%1\n" - : "+Q" (v->counter) - : "i" (i) - : "cc", "memory"); - } else { - atomic64_add_return(i, v); - } -#else atomic64_add_return(i, v); -#endif } +#endif /* CONFIG_64BIT */ + static inline int atomic64_add_unless(atomic64_t *v, long long i, long long u) { long long c, old; --- linux-3.13.0.orig/arch/s390/include/asm/bitops.h +++ linux-3.13.0/arch/s390/include/asm/bitops.h @@ -47,14 +47,18 @@ #include #include +#include + +#define __BITOPS_NO_BARRIER "\n" #ifndef CONFIG_64BIT #define __BITOPS_OR "or" #define __BITOPS_AND "nr" #define __BITOPS_XOR "xr" +#define __BITOPS_BARRIER "\n" -#define __BITOPS_LOOP(__addr, __val, __op_string) \ +#define __BITOPS_LOOP(__addr, __val, __op_string, __barrier) \ ({ \ unsigned long __old, __new; \ \ @@ -67,7 +71,7 @@ " jl 0b" \ : "=&d" (__old), "=&d" (__new), "+Q" (*(__addr))\ : "d" (__val) \ - : "cc"); \ + : "cc", "memory"); \ __old; \ }) @@ -78,17 +82,20 @@ #define __BITOPS_OR "laog" #define __BITOPS_AND "lang" #define __BITOPS_XOR "laxg" +#define __BITOPS_BARRIER "bcr 14,0\n" -#define __BITOPS_LOOP(__addr, __val, __op_string) \ +#define __BITOPS_LOOP(__addr, __val, __op_string, __barrier) \ ({ \ unsigned long __old; \ \ typecheck(unsigned long *, (__addr)); \ asm volatile( \ + __barrier \ __op_string " %0,%2,%1\n" \ + __barrier \ : "=d" (__old), "+Q" (*(__addr)) \ : "d" (__val) \ - : "cc"); \ + : "cc", "memory"); \ __old; \ }) @@ -97,8 +104,9 @@ #define __BITOPS_OR "ogr" #define __BITOPS_AND "ngr" #define __BITOPS_XOR "xgr" +#define __BITOPS_BARRIER "\n" -#define __BITOPS_LOOP(__addr, __val, __op_string) \ +#define __BITOPS_LOOP(__addr, __val, __op_string, __barrier) \ ({ \ unsigned long __old, __new; \ \ @@ -111,7 +119,7 @@ " jl 0b" \ : "=&d" (__old), "=&d" (__new), "+Q" (*(__addr))\ : "d" (__val) \ - : "cc"); \ + : "cc", "memory"); \ __old; \ }) @@ -149,12 +157,12 @@ "oi %0,%b1\n" : "+Q" (*caddr) : "i" (1 << (nr & 7)) - : "cc"); + : "cc", "memory"); return; } #endif mask = 1UL << (nr & (BITS_PER_LONG - 1)); - __BITOPS_LOOP(addr, mask, __BITOPS_OR); + __BITOPS_LOOP(addr, mask, __BITOPS_OR, __BITOPS_NO_BARRIER); } static inline void clear_bit(unsigned long nr, volatile unsigned long *ptr) @@ -170,12 +178,12 @@ "ni %0,%b1\n" : "+Q" (*caddr) : "i" (~(1 << (nr & 7))) - : "cc"); + : "cc", "memory"); return; } #endif mask = ~(1UL << (nr & (BITS_PER_LONG - 1))); - __BITOPS_LOOP(addr, mask, __BITOPS_AND); + __BITOPS_LOOP(addr, mask, __BITOPS_AND, __BITOPS_NO_BARRIER); } static inline void change_bit(unsigned long nr, volatile unsigned long *ptr) @@ -191,12 +199,12 @@ "xi %0,%b1\n" : "+Q" (*caddr) : "i" (1 << (nr & 7)) - : "cc"); + : "cc", "memory"); return; } #endif mask = 1UL << (nr & (BITS_PER_LONG - 1)); - __BITOPS_LOOP(addr, mask, __BITOPS_XOR); + __BITOPS_LOOP(addr, mask, __BITOPS_XOR, __BITOPS_NO_BARRIER); } static inline int @@ -206,8 +214,7 @@ unsigned long old, mask; mask = 1UL << (nr & (BITS_PER_LONG - 1)); - old = __BITOPS_LOOP(addr, mask, __BITOPS_OR); - barrier(); + old = __BITOPS_LOOP(addr, mask, __BITOPS_OR, __BITOPS_BARRIER); return (old & mask) != 0; } @@ -218,8 +225,7 @@ unsigned long old, mask; mask = ~(1UL << (nr & (BITS_PER_LONG - 1))); - old = __BITOPS_LOOP(addr, mask, __BITOPS_AND); - barrier(); + old = __BITOPS_LOOP(addr, mask, __BITOPS_AND, __BITOPS_BARRIER); return (old & ~mask) != 0; } @@ -230,8 +236,7 @@ unsigned long old, mask; mask = 1UL << (nr & (BITS_PER_LONG - 1)); - old = __BITOPS_LOOP(addr, mask, __BITOPS_XOR); - barrier(); + old = __BITOPS_LOOP(addr, mask, __BITOPS_XOR, __BITOPS_BARRIER); return (old & mask) != 0; } --- linux-3.13.0.orig/arch/s390/include/asm/ccwdev.h +++ linux-3.13.0/arch/s390/include/asm/ccwdev.h @@ -219,7 +219,7 @@ #define to_ccwdev(n) container_of(n, struct ccw_device, dev) #define to_ccwdrv(n) container_of(n, struct ccw_driver, driver) -extern struct ccw_device *ccw_device_probe_console(void); +extern struct ccw_device *ccw_device_probe_console(struct ccw_driver *); extern void ccw_device_wait_idle(struct ccw_device *); extern int ccw_device_force_console(struct ccw_device *); --- linux-3.13.0.orig/arch/s390/include/asm/compat.h +++ linux-3.13.0/arch/s390/include/asm/compat.h @@ -38,7 +38,8 @@ #define PSW32_USER_BITS (PSW32_MASK_DAT | PSW32_MASK_IO | PSW32_MASK_EXT | \ PSW32_DEFAULT_KEY | PSW32_MASK_BASE | \ - PSW32_MASK_MCHECK | PSW32_MASK_PSTATE | PSW32_ASC_HOME) + PSW32_MASK_MCHECK | PSW32_MASK_PSTATE | \ + PSW32_ASC_PRIMARY) #define COMPAT_USER_HZ 100 #define COMPAT_UTS_MACHINE "s390\0\0\0\0" --- linux-3.13.0.orig/arch/s390/include/asm/lowcore.h +++ linux-3.13.0/arch/s390/include/asm/lowcore.h @@ -142,9 +142,9 @@ __u8 pad_0x02fc[0x0300-0x02fc]; /* 0x02fc */ /* Interrupt response block */ - __u8 irb[64]; /* 0x0300 */ + __u8 irb[96]; /* 0x0300 */ - __u8 pad_0x0340[0x0e00-0x0340]; /* 0x0340 */ + __u8 pad_0x0360[0x0e00-0x0360]; /* 0x0360 */ /* * 0xe00 contains the address of the IPL Parameter Information @@ -288,12 +288,13 @@ __u8 pad_0x03a0[0x0400-0x03a0]; /* 0x03a0 */ /* Interrupt response block. */ - __u8 irb[64]; /* 0x0400 */ + __u8 irb[96]; /* 0x0400 */ + __u8 pad_0x0460[0x0480-0x0460]; /* 0x0460 */ /* Per cpu primary space access list */ - __u32 paste[16]; /* 0x0440 */ + __u32 paste[16]; /* 0x0480 */ - __u8 pad_0x0480[0x0e00-0x0480]; /* 0x0480 */ + __u8 pad_0x04c0[0x0e00-0x04c0]; /* 0x04c0 */ /* * 0xe00 contains the address of the IPL Parameter Information --- linux-3.13.0.orig/arch/s390/include/uapi/asm/statfs.h +++ linux-3.13.0/arch/s390/include/uapi/asm/statfs.h @@ -35,11 +35,11 @@ struct statfs64 { unsigned int f_type; unsigned int f_bsize; - unsigned long f_blocks; - unsigned long f_bfree; - unsigned long f_bavail; - unsigned long f_files; - unsigned long f_ffree; + unsigned long long f_blocks; + unsigned long long f_bfree; + unsigned long long f_bavail; + unsigned long long f_files; + unsigned long long f_ffree; __kernel_fsid_t f_fsid; unsigned int f_namelen; unsigned int f_frsize; --- linux-3.13.0.orig/arch/s390/kernel/compat_linux.c +++ linux-3.13.0/arch/s390/kernel/compat_linux.c @@ -245,7 +245,7 @@ struct group_info *group_info; int retval; - if (!capable(CAP_SETGID)) + if (!may_setgroups()) return -EPERM; if ((unsigned)gidsetsize > NGROUPS_MAX) return -EINVAL; --- linux-3.13.0.orig/arch/s390/kernel/head64.S +++ linux-3.13.0/arch/s390/kernel/head64.S @@ -59,7 +59,7 @@ .quad 0 # cr12: tracing off .quad 0 # cr13: home space segment table .quad 0xc0000000 # cr14: machine check handling off - .quad 0 # cr15: linkage stack operations + .quad .Llinkage_stack # cr15: linkage stack operations .Lpcmsk:.quad 0x0000000180000000 .L4malign:.quad 0xffffffffffc00000 .Lscan2g:.quad 0x80000000 + 0x20000 - 8 # 2GB + 128K - 8 @@ -67,12 +67,15 @@ .Lparmaddr: .quad PARMAREA .align 64 -.Lduct: .long 0,0,0,0,.Lduald,0,0,0 +.Lduct: .long 0,.Laste,.Laste,0,.Lduald,0,0,0 .long 0,0,0,0,0,0,0,0 +.Laste: .quad 0,0xffffffffffffffff,0,0,0,0,0,0 .align 128 .Lduald:.rept 8 .long 0x80000000,0,0,0 # invalid access-list entries .endr +.Llinkage_stack: + .long 0,0,0x89000000,0,0,0,0x8a000000,0 ENTRY(_ehead) --- linux-3.13.0.orig/arch/s390/kernel/ptrace.c +++ linux-3.13.0/arch/s390/kernel/ptrace.c @@ -326,9 +326,14 @@ unsigned long mask = PSW_MASK_USER; mask |= is_ri_task(child) ? PSW_MASK_RI : 0; - if ((data & ~mask) != PSW_USER_BITS) + if ((data ^ PSW_USER_BITS) & ~mask) + /* Invalid psw mask. */ + return -EINVAL; + if ((data & PSW_MASK_ASC) == PSW_ASC_HOME) + /* Invalid address-space-control bits */ return -EINVAL; if ((data & PSW_MASK_EA) && !(data & PSW_MASK_BA)) + /* Invalid addressing mode bits */ return -EINVAL; } *(addr_t *)((addr_t) &task_pt_regs(child)->psw + addr) = data; @@ -664,9 +669,12 @@ mask |= is_ri_task(child) ? PSW32_MASK_RI : 0; /* Build a 64 bit psw mask from 31 bit mask. */ - if ((tmp & ~mask) != PSW32_USER_BITS) + if ((tmp ^ PSW32_USER_BITS) & ~mask) /* Invalid psw mask. */ return -EINVAL; + if ((data & PSW32_MASK_ASC) == PSW32_ASC_HOME) + /* Invalid address-space-control bits */ + return -EINVAL; regs->psw.mask = (regs->psw.mask & ~PSW_MASK_USER) | (regs->psw.mask & PSW_MASK_BA) | (__u64)(tmp & mask) << 32; --- linux-3.13.0.orig/arch/s390/kernel/time.c +++ linux-3.13.0/arch/s390/kernel/time.c @@ -226,7 +226,7 @@ vdso_data->wtom_clock_sec = tk->xtime_sec + tk->wall_to_monotonic.tv_sec; vdso_data->wtom_clock_nsec = tk->xtime_nsec + - + (tk->wall_to_monotonic.tv_nsec << tk->shift); + + ((u64) tk->wall_to_monotonic.tv_nsec << tk->shift); nsecps = (u64) NSEC_PER_SEC << tk->shift; while (vdso_data->wtom_clock_nsec >= nsecps) { vdso_data->wtom_clock_nsec -= nsecps; --- linux-3.13.0.orig/arch/s390/kvm/diag.c +++ linux-3.13.0/arch/s390/kvm/diag.c @@ -121,7 +121,7 @@ * - gpr 4 contains the index on the bus (optionally) */ ret = kvm_io_bus_write_cookie(vcpu->kvm, KVM_VIRTIO_CCW_NOTIFY_BUS, - vcpu->run->s.regs.gprs[2], + vcpu->run->s.regs.gprs[2] & 0xffffffff, 8, &vcpu->run->s.regs.gprs[3], vcpu->run->s.regs.gprs[4]); @@ -137,7 +137,7 @@ int kvm_s390_handle_diag(struct kvm_vcpu *vcpu) { - int code = (vcpu->arch.sie_block->ipb & 0xfff0000) >> 16; + int code = kvm_s390_get_base_disp_rs(vcpu) & 0xffff; if (vcpu->arch.sie_block->gpsw.mask & PSW_MASK_PSTATE) return kvm_s390_inject_program_int(vcpu, PGM_PRIVILEGED_OP); --- linux-3.13.0.orig/arch/s390/kvm/interrupt.c +++ linux-3.13.0/arch/s390/kvm/interrupt.c @@ -71,6 +71,7 @@ return 0; if (vcpu->arch.sie_block->gcr[0] & 0x2000ul) return 1; + return 0; case KVM_S390_INT_EMERGENCY: if (psw_extint_disabled(vcpu)) return 0; --- linux-3.13.0.orig/arch/s390/kvm/kvm-s390.c +++ linux-3.13.0/arch/s390/kvm/kvm-s390.c @@ -746,7 +746,8 @@ if (rc == 0) { if (kvm_is_ucontrol(vcpu->kvm)) - rc = -EOPNOTSUPP; + /* Don't exit for host interrupts. */ + rc = vcpu->arch.sie_block->icptcode ? -EOPNOTSUPP : 0; else rc = kvm_handle_sie_intercept(vcpu); } @@ -801,18 +802,6 @@ BUG_ON(vcpu->kvm->arch.float_int.local_int[vcpu->vcpu_id] == NULL); - switch (kvm_run->exit_reason) { - case KVM_EXIT_S390_SIEIC: - case KVM_EXIT_UNKNOWN: - case KVM_EXIT_INTR: - case KVM_EXIT_S390_RESET: - case KVM_EXIT_S390_UCONTROL: - case KVM_EXIT_S390_TSCH: - break; - default: - BUG(); - } - vcpu->arch.sie_block->gpsw.mask = kvm_run->psw_mask; vcpu->arch.sie_block->gpsw.addr = kvm_run->psw_addr; if (kvm_run->kvm_dirty_regs & KVM_SYNC_PREFIX) { @@ -885,7 +874,7 @@ * KVM_S390_STORE_STATUS_NOADDR: -> 0x1200 on 64 bit * KVM_S390_STORE_STATUS_PREFIXED: -> prefix */ -int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr) +int kvm_s390_store_status_unloaded(struct kvm_vcpu *vcpu, unsigned long addr) { unsigned char archmode = 1; int prefix; @@ -903,15 +892,6 @@ } else prefix = 0; - /* - * The guest FPRS and ACRS are in the host FPRS/ACRS due to the lazy - * copying in vcpu load/put. Lets update our copies before we save - * it into the save area - */ - save_fp_ctl(&vcpu->arch.guest_fpregs.fpc); - save_fp_regs(vcpu->arch.guest_fpregs.fprs); - save_access_regs(vcpu->run->s.regs.acrs); - if (__guestcopy(vcpu, addr + offsetof(struct save_area, fp_regs), vcpu->arch.guest_fpregs.fprs, 128, prefix)) return -EFAULT; @@ -956,6 +936,20 @@ return 0; } +int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr) +{ + /* + * The guest FPRS and ACRS are in the host FPRS/ACRS due to the lazy + * copying in vcpu load/put. Lets update our copies before we save + * it into the save area + */ + save_fp_ctl(&vcpu->arch.guest_fpregs.fpc); + save_fp_regs(vcpu->arch.guest_fpregs.fprs); + save_access_regs(vcpu->run->s.regs.acrs); + + return kvm_s390_store_status_unloaded(vcpu, addr); +} + static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu, struct kvm_enable_cap *cap) { --- linux-3.13.0.orig/arch/s390/kvm/kvm-s390.h +++ linux-3.13.0/arch/s390/kvm/kvm-s390.h @@ -150,8 +150,8 @@ int kvm_s390_handle_sigp(struct kvm_vcpu *vcpu); /* implemented in kvm-s390.c */ -int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, - unsigned long addr); +int kvm_s390_store_status_unloaded(struct kvm_vcpu *vcpu, unsigned long addr); +int kvm_s390_vcpu_store_status(struct kvm_vcpu *vcpu, unsigned long addr); void s390_vcpu_block(struct kvm_vcpu *vcpu); void s390_vcpu_unblock(struct kvm_vcpu *vcpu); void exit_sie(struct kvm_vcpu *vcpu); --- linux-3.13.0.orig/arch/s390/kvm/priv.c +++ linux-3.13.0/arch/s390/kvm/priv.c @@ -688,7 +688,7 @@ break; reg = (reg + 1) % 16; } while (1); - + kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu); return 0; } @@ -725,7 +725,7 @@ break; reg = (reg + 1) % 16; } while (1); - + kvm_make_request(KVM_REQ_TLB_FLUSH, vcpu); return 0; } --- linux-3.13.0.orig/arch/s390/kvm/sigp.c +++ linux-3.13.0/arch/s390/kvm/sigp.c @@ -130,6 +130,7 @@ static int __inject_sigp_stop(struct kvm_s390_local_interrupt *li, int action) { struct kvm_s390_interrupt_info *inti; + int rc = SIGP_CC_ORDER_CODE_ACCEPTED; inti = kzalloc(sizeof(*inti), GFP_ATOMIC); if (!inti) @@ -139,6 +140,8 @@ spin_lock_bh(&li->lock); if ((atomic_read(li->cpuflags) & CPUSTAT_STOPPED)) { kfree(inti); + if ((action & ACTION_STORE_ON_STOP) != 0) + rc = -ESHUTDOWN; goto out; } list_add_tail(&inti->list, &li->list); @@ -150,7 +153,7 @@ out: spin_unlock_bh(&li->lock); - return SIGP_CC_ORDER_CODE_ACCEPTED; + return rc; } static int __sigp_stop(struct kvm_vcpu *vcpu, u16 cpu_addr, int action) @@ -174,6 +177,16 @@ unlock: spin_unlock(&fi->lock); VCPU_EVENT(vcpu, 4, "sent sigp stop to cpu %x", cpu_addr); + + if ((action & ACTION_STORE_ON_STOP) != 0 && rc == -ESHUTDOWN) { + /* If the CPU has already been stopped, we still have + * to save the status when doing stop-and-store. This + * has to be done after unlocking all spinlocks. */ + struct kvm_vcpu *dst_vcpu = kvm_get_vcpu(vcpu->kvm, cpu_addr); + rc = kvm_s390_store_status_unloaded(dst_vcpu, + KVM_S390_STORE_STATUS_NOADDR); + } + return rc; } --- linux-3.13.0.orig/arch/s390/mm/hugetlbpage.c +++ linux-3.13.0/arch/s390/mm/hugetlbpage.c @@ -223,11 +223,6 @@ return 0; } -int pmd_huge_support(void) -{ - return 1; -} - struct page *follow_huge_pmd(struct mm_struct *mm, unsigned long address, pmd_t *pmdp, int write) { --- linux-3.13.0.orig/arch/s390/mm/page-states.c +++ linux-3.13.0/arch/s390/mm/page-states.c @@ -12,6 +12,8 @@ #include #include #include +#include +#include #define ESSA_SET_STABLE 1 #define ESSA_SET_UNUSED 2 @@ -41,6 +43,14 @@ if (!cmma_flag) return; + /* + * Disable CMM for dump, otherwise the tprot based memory + * detection can fail because of unstable pages. + */ + if (OLDMEM_BASE || ipl_info.type == IPL_TYPE_FCP_DUMP) { + cmma_flag = 0; + return; + } asm volatile( " .insn rrf,0xb9ab0000,%1,%1,0,0\n" "0: la %0,0\n" --- linux-3.13.0.orig/arch/s390/mm/pgtable.c +++ linux-3.13.0/arch/s390/mm/pgtable.c @@ -810,11 +810,21 @@ pte_t *ptep; down_read(&mm->mmap_sem); +retry: ptep = get_locked_pte(current->mm, addr, &ptl); if (unlikely(!ptep)) { up_read(&mm->mmap_sem); return -EFAULT; } + if (!(pte_val(*ptep) & _PAGE_INVALID) && + (pte_val(*ptep) & _PAGE_PROTECT)) { + pte_unmap_unlock(*ptep, ptl); + if (fixup_user_fault(current, mm, addr, FAULT_FLAG_WRITE)) { + up_read(&mm->mmap_sem); + return -EFAULT; + } + goto retry; + } new = old = pgste_get_lock(ptep); pgste_val(new) &= ~(PGSTE_GR_BIT | PGSTE_GC_BIT | --- linux-3.13.0.orig/arch/s390/net/bpf_jit_comp.c +++ linux-3.13.0/arch/s390/net/bpf_jit_comp.c @@ -276,7 +276,6 @@ case BPF_S_LD_W_IND: case BPF_S_LD_H_IND: case BPF_S_LD_B_IND: - case BPF_S_LDX_B_MSH: case BPF_S_LD_IMM: case BPF_S_LD_MEM: case BPF_S_MISC_TXA: @@ -812,7 +811,7 @@ return NULL; memset(header, 0, sz); header->pages = sz / PAGE_SIZE; - hole = sz - (bpfsize + sizeof(*header)); + hole = min(sz - (bpfsize + sizeof(*header)), PAGE_SIZE - sizeof(*header)); /* Insert random number of illegal instructions before BPF code * and make sure the first instruction starts at an even address. */ --- linux-3.13.0.orig/arch/sh/kernel/dumpstack.c +++ linux-3.13.0/arch/sh/kernel/dumpstack.c @@ -115,7 +115,7 @@ */ static void print_trace_address(void *data, unsigned long addr, int reliable) { - printk(data); + printk("%s", (char *)data); printk_address(addr, reliable); } --- linux-3.13.0.orig/arch/sh/kernel/kgdb.c +++ linux-3.13.0/arch/sh/kernel/kgdb.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include --- linux-3.13.0.orig/arch/sh/mm/hugetlbpage.c +++ linux-3.13.0/arch/sh/mm/hugetlbpage.c @@ -83,11 +83,6 @@ return 0; } -int pmd_huge_support(void) -{ - return 0; -} - struct page *follow_huge_pmd(struct mm_struct *mm, unsigned long address, pmd_t *pmd, int write) { --- linux-3.13.0.orig/arch/sparc/Kconfig +++ linux-3.13.0/arch/sparc/Kconfig @@ -26,7 +26,7 @@ select RTC_DRV_M48T59 select HAVE_DMA_ATTRS select HAVE_DMA_API_DEBUG - select HAVE_ARCH_JUMP_LABEL + select HAVE_ARCH_JUMP_LABEL if SPARC64 select GENERIC_IRQ_SHOW select ARCH_WANT_IPC_PARSE_VERSION select GENERIC_PCI_IOMAP @@ -66,6 +66,7 @@ select HAVE_SYSCALL_TRACEPOINTS select HAVE_CONTEXT_TRACKING select HAVE_DEBUG_KMEMLEAK + select SPARSE_IRQ select RTC_DRV_CMOS select RTC_DRV_BQ4802 select RTC_DRV_SUN4V @@ -76,6 +77,7 @@ select ARCH_HAVE_NMI_SAFE_CMPXCHG select HAVE_C_RECORDMCOUNT select NO_BOOTMEM + select ARCH_SUPPORTS_ATOMIC_RMW config ARCH_DEFCONFIG string --- linux-3.13.0.orig/arch/sparc/include/asm/atomic_32.h +++ linux-3.13.0/arch/sparc/include/asm/atomic_32.h @@ -21,7 +21,7 @@ extern int __atomic_add_return(int, atomic_t *); extern int atomic_cmpxchg(atomic_t *, int, int); -#define atomic_xchg(v, new) (xchg(&((v)->counter), new)) +extern int atomic_xchg(atomic_t *, int); extern int __atomic_add_unless(atomic_t *, int, int); extern void atomic_set(atomic_t *, int); --- linux-3.13.0.orig/arch/sparc/include/asm/cmpxchg_32.h +++ linux-3.13.0/arch/sparc/include/asm/cmpxchg_32.h @@ -11,22 +11,14 @@ #ifndef __ARCH_SPARC_CMPXCHG__ #define __ARCH_SPARC_CMPXCHG__ -static inline unsigned long xchg_u32(__volatile__ unsigned long *m, unsigned long val) -{ - __asm__ __volatile__("swap [%2], %0" - : "=&r" (val) - : "0" (val), "r" (m) - : "memory"); - return val; -} - +extern unsigned long __xchg_u32(volatile u32 *m, u32 new); extern void __xchg_called_with_bad_pointer(void); static inline unsigned long __xchg(unsigned long x, __volatile__ void * ptr, int size) { switch (size) { case 4: - return xchg_u32(ptr, x); + return __xchg_u32(ptr, x); } __xchg_called_with_bad_pointer(); return x; --- linux-3.13.0.orig/arch/sparc/include/asm/hypervisor.h +++ linux-3.13.0/arch/sparc/include/asm/hypervisor.h @@ -2944,6 +2944,16 @@ unsigned long reg_val); #endif +#define HV_FAST_T5_GET_PERFREG 0x1a8 +#define HV_FAST_T5_SET_PERFREG 0x1a9 + +#ifndef __ASSEMBLY__ +unsigned long sun4v_t5_get_perfreg(unsigned long reg_num, + unsigned long *reg_val); +unsigned long sun4v_t5_set_perfreg(unsigned long reg_num, + unsigned long reg_val); +#endif + /* Function numbers for HV_CORE_TRAP. */ #define HV_CORE_SET_VER 0x00 #define HV_CORE_PUTCHAR 0x01 @@ -2975,6 +2985,7 @@ #define HV_GRP_VF_CPU 0x0205 #define HV_GRP_KT_CPU 0x0209 #define HV_GRP_VT_CPU 0x020c +#define HV_GRP_T5_CPU 0x0211 #define HV_GRP_DIAG 0x0300 #ifndef __ASSEMBLY__ --- linux-3.13.0.orig/arch/sparc/include/asm/irq_64.h +++ linux-3.13.0/arch/sparc/include/asm/irq_64.h @@ -37,7 +37,7 @@ * * ino_bucket->irq allocation is made during {sun4v_,}build_irq(). */ -#define NR_IRQS 255 +#define NR_IRQS (2048) extern void irq_install_pre_handler(int irq, void (*func)(unsigned int, void *, void *), @@ -57,11 +57,8 @@ unsigned long iclr_base); extern void sun4u_destroy_msi(unsigned int irq); -extern unsigned char irq_alloc(unsigned int dev_handle, - unsigned int dev_ino); -#ifdef CONFIG_PCI_MSI -extern void irq_free(unsigned int irq); -#endif +unsigned int irq_alloc(unsigned int dev_handle, unsigned int dev_ino); +void irq_free(unsigned int irq); extern void __init init_IRQ(void); extern void fixup_irqs(void); --- linux-3.13.0.orig/arch/sparc/include/asm/ldc.h +++ linux-3.13.0/arch/sparc/include/asm/ldc.h @@ -53,13 +53,14 @@ /* Allocate state for a channel. */ extern struct ldc_channel *ldc_alloc(unsigned long id, const struct ldc_channel_config *cfgp, - void *event_arg); + void *event_arg, + const char *name); /* Shut down and free state for a channel. */ extern void ldc_free(struct ldc_channel *lp); /* Register TX and RX queues of the link with the hypervisor. */ -extern int ldc_bind(struct ldc_channel *lp, const char *name); +extern int ldc_bind(struct ldc_channel *lp); /* For non-RAW protocols we need to complete a handshake before * communication can proceed. ldc_connect() does that, if the --- linux-3.13.0.orig/arch/sparc/include/asm/oplib_64.h +++ linux-3.13.0/arch/sparc/include/asm/oplib_64.h @@ -62,7 +62,8 @@ /* You must call prom_init() before using any of the library services, * preferably as early as possible. Pass it the romvec pointer. */ -extern void prom_init(void *cif_handler, void *cif_stack); +extern void prom_init(void *cif_handler); +extern void prom_init_report(void); /* Boot argument acquisition, returns the boot command line string. */ extern char *prom_getbootargs(void); --- linux-3.13.0.orig/arch/sparc/include/asm/page_64.h +++ linux-3.13.0/arch/sparc/include/asm/page_64.h @@ -57,18 +57,21 @@ typedef struct { unsigned long pte; } pte_t; typedef struct { unsigned long iopte; } iopte_t; typedef struct { unsigned long pmd; } pmd_t; +typedef struct { unsigned long pud; } pud_t; typedef struct { unsigned long pgd; } pgd_t; typedef struct { unsigned long pgprot; } pgprot_t; #define pte_val(x) ((x).pte) #define iopte_val(x) ((x).iopte) #define pmd_val(x) ((x).pmd) +#define pud_val(x) ((x).pud) #define pgd_val(x) ((x).pgd) #define pgprot_val(x) ((x).pgprot) #define __pte(x) ((pte_t) { (x) } ) #define __iopte(x) ((iopte_t) { (x) } ) #define __pmd(x) ((pmd_t) { (x) } ) +#define __pud(x) ((pud_t) { (x) } ) #define __pgd(x) ((pgd_t) { (x) } ) #define __pgprot(x) ((pgprot_t) { (x) } ) @@ -77,18 +80,21 @@ typedef unsigned long pte_t; typedef unsigned long iopte_t; typedef unsigned long pmd_t; +typedef unsigned long pud_t; typedef unsigned long pgd_t; typedef unsigned long pgprot_t; #define pte_val(x) (x) #define iopte_val(x) (x) #define pmd_val(x) (x) +#define pud_val(x) (x) #define pgd_val(x) (x) #define pgprot_val(x) (x) #define __pte(x) (x) #define __iopte(x) (x) #define __pmd(x) (x) +#define __pud(x) (x) #define __pgd(x) (x) #define __pgprot(x) (x) @@ -96,21 +102,14 @@ typedef pte_t *pgtable_t; -/* These two values define the virtual address space range in which we - * must forbid 64-bit user processes from making mappings. It used to - * represent precisely the virtual address space hole present in most - * early sparc64 chips including UltraSPARC-I. But now it also is - * further constrained by the limits of our page tables, which is - * 43-bits of virtual address. - */ -#define SPARC64_VA_HOLE_TOP _AC(0xfffffc0000000000,UL) -#define SPARC64_VA_HOLE_BOTTOM _AC(0x0000040000000000,UL) +extern unsigned long sparc64_va_hole_top; +extern unsigned long sparc64_va_hole_bottom; /* The next two defines specify the actual exclusion region we * enforce, wherein we use a 4GB red zone on each side of the VA hole. */ -#define VA_EXCLUDE_START (SPARC64_VA_HOLE_BOTTOM - (1UL << 32UL)) -#define VA_EXCLUDE_END (SPARC64_VA_HOLE_TOP + (1UL << 32UL)) +#define VA_EXCLUDE_START (sparc64_va_hole_bottom - (1UL << 32UL)) +#define VA_EXCLUDE_END (sparc64_va_hole_top + (1UL << 32UL)) #define TASK_UNMAPPED_BASE (test_thread_flag(TIF_32BIT) ? \ _AC(0x0000000070000000,UL) : \ @@ -118,20 +117,16 @@ #include -#define PAGE_OFFSET_BY_BITS(X) (-(_AC(1,UL) << (X))) extern unsigned long PAGE_OFFSET; #endif /* !(__ASSEMBLY__) */ -/* The maximum number of physical memory address bits we support, this - * is used to size various tables used to manage kernel TLB misses and - * also the sparsemem code. +/* The maximum number of physical memory address bits we support. The + * largest value we can support is whatever "KPGD_SHIFT + KPTE_BITS" + * evaluates to. */ -#define MAX_PHYS_ADDRESS_BITS 47 +#define MAX_PHYS_ADDRESS_BITS 53 -/* These two shift counts are used when indexing sparc64_valid_addr_bitmap - * and kpte_linear_bitmap. - */ #define ILOG2_4MB 22 #define ILOG2_256MB 28 --- linux-3.13.0.orig/arch/sparc/include/asm/pgalloc_64.h +++ linux-3.13.0/arch/sparc/include/asm/pgalloc_64.h @@ -15,6 +15,13 @@ extern struct kmem_cache *pgtable_cache; +static inline void __pgd_populate(pgd_t *pgd, pud_t *pud) +{ + pgd_set(pgd, pud); +} + +#define pgd_populate(MM, PGD, PUD) __pgd_populate(PGD, PUD) + static inline pgd_t *pgd_alloc(struct mm_struct *mm) { return kmem_cache_alloc(pgtable_cache, GFP_KERNEL); @@ -25,7 +32,23 @@ kmem_cache_free(pgtable_cache, pgd); } -#define pud_populate(MM, PUD, PMD) pud_set(PUD, PMD) +static inline void __pud_populate(pud_t *pud, pmd_t *pmd) +{ + pud_set(pud, pmd); +} + +#define pud_populate(MM, PUD, PMD) __pud_populate(PUD, PMD) + +static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr) +{ + return kmem_cache_alloc(pgtable_cache, + GFP_KERNEL|__GFP_REPEAT); +} + +static inline void pud_free(struct mm_struct *mm, pud_t *pud) +{ + kmem_cache_free(pgtable_cache, pud); +} static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long addr) { @@ -91,4 +114,7 @@ #define __pmd_free_tlb(tlb, pmd, addr) \ pgtable_free_tlb(tlb, pmd, false) +#define __pud_free_tlb(tlb, pud, addr) \ + pgtable_free_tlb(tlb, pud, false) + #endif /* _SPARC64_PGALLOC_H */ --- linux-3.13.0.orig/arch/sparc/include/asm/pgtable_64.h +++ linux-3.13.0/arch/sparc/include/asm/pgtable_64.h @@ -20,11 +20,10 @@ #include #include -#include - /* The kernel image occupies 0x4000000 to 0x6000000 (4MB --> 96MB). * The page copy blockops can use 0x6000000 to 0x8000000. - * The TSB is mapped in the 0x8000000 to 0xa000000 range. + * The 8K TSB is mapped in the 0x8000000 to 0x8400000 range. + * The 4M TSB is mapped in the 0x8400000 to 0x8800000 range. * The PROM resides in an area spanning 0xf0000000 to 0x100000000. * The vmalloc area spans 0x100000000 to 0x200000000. * Since modules need to be in the lowest 32-bits of the address space, @@ -33,17 +32,15 @@ * 0x400000000. */ #define TLBTEMP_BASE _AC(0x0000000006000000,UL) -#define TSBMAP_BASE _AC(0x0000000008000000,UL) +#define TSBMAP_8K_BASE _AC(0x0000000008000000,UL) +#define TSBMAP_4M_BASE _AC(0x0000000008400000,UL) #define MODULES_VADDR _AC(0x0000000010000000,UL) #define MODULES_LEN _AC(0x00000000e0000000,UL) #define MODULES_END _AC(0x00000000f0000000,UL) #define LOW_OBP_ADDRESS _AC(0x00000000f0000000,UL) #define HI_OBP_ADDRESS _AC(0x0000000100000000,UL) #define VMALLOC_START _AC(0x0000000100000000,UL) -#define VMALLOC_END _AC(0x0000010000000000,UL) -#define VMEMMAP_BASE _AC(0x0000010000000000,UL) - -#define vmemmap ((struct page *)VMEMMAP_BASE) +#define VMEMMAP_BASE VMALLOC_END /* PMD_SHIFT determines the size of the area a second-level page * table can map @@ -53,13 +50,25 @@ #define PMD_MASK (~(PMD_SIZE-1)) #define PMD_BITS (PAGE_SHIFT - 3) -/* PGDIR_SHIFT determines what a third-level page table entry can map */ -#define PGDIR_SHIFT (PAGE_SHIFT + (PAGE_SHIFT-3) + PMD_BITS) +/* PUD_SHIFT determines the size of the area a third-level page + * table can map + */ +#define PUD_SHIFT (PMD_SHIFT + PMD_BITS) +#define PUD_SIZE (_AC(1,UL) << PUD_SHIFT) +#define PUD_MASK (~(PUD_SIZE-1)) +#define PUD_BITS (PAGE_SHIFT - 3) + +/* PGDIR_SHIFT determines what a fourth-level page table entry can map */ +#define PGDIR_SHIFT (PUD_SHIFT + PUD_BITS) #define PGDIR_SIZE (_AC(1,UL) << PGDIR_SHIFT) #define PGDIR_MASK (~(PGDIR_SIZE-1)) #define PGDIR_BITS (PAGE_SHIFT - 3) -#if (PGDIR_SHIFT + PGDIR_BITS) != 43 +#if (MAX_PHYS_ADDRESS_BITS > PGDIR_SHIFT + PGDIR_BITS) +#error MAX_PHYS_ADDRESS_BITS exceeds what kernel page tables can support +#endif + +#if (PGDIR_SHIFT + PGDIR_BITS) != 53 #error Page table parameters do not cover virtual address space properly. #endif @@ -69,19 +78,32 @@ #ifndef __ASSEMBLY__ +extern unsigned long VMALLOC_END; + +#define vmemmap ((struct page *)VMEMMAP_BASE) + #include +bool kern_addr_valid(unsigned long addr); + /* Entries per page directory level. */ #define PTRS_PER_PTE (1UL << (PAGE_SHIFT-3)) #define PTRS_PER_PMD (1UL << PMD_BITS) +#define PTRS_PER_PUD (1UL << PUD_BITS) #define PTRS_PER_PGD (1UL << PGDIR_BITS) /* Kernel has a separate 44bit address space. */ #define FIRST_USER_ADDRESS 0 -#define pte_ERROR(e) __builtin_trap() -#define pmd_ERROR(e) __builtin_trap() -#define pgd_ERROR(e) __builtin_trap() +#define pmd_ERROR(e) \ + pr_err("%s:%d: bad pmd %p(%016lx) seen at (%pS)\n", \ + __FILE__, __LINE__, &(e), pmd_val(e), __builtin_return_address(0)) +#define pud_ERROR(e) \ + pr_err("%s:%d: bad pud %p(%016lx) seen at (%pS)\n", \ + __FILE__, __LINE__, &(e), pud_val(e), __builtin_return_address(0)) +#define pgd_ERROR(e) \ + pr_err("%s:%d: bad pgd %p(%016lx) seen at (%pS)\n", \ + __FILE__, __LINE__, &(e), pgd_val(e), __builtin_return_address(0)) #endif /* !(__ASSEMBLY__) */ @@ -90,6 +112,7 @@ #define _PAGE_R _AC(0x8000000000000000,UL) /* Keep ref bit uptodate*/ #define _PAGE_SPECIAL _AC(0x0200000000000000,UL) /* Special page */ #define _PAGE_PMD_HUGE _AC(0x0100000000000000,UL) /* Huge page */ +#define _PAGE_PUD_HUGE _PAGE_PMD_HUGE /* Advertise support for _PAGE_SPECIAL */ #define __HAVE_ARCH_PTE_SPECIAL @@ -258,8 +281,8 @@ { unsigned long mask, tmp; - /* SUN4U: 0x600307ffffffecb8 (negated == 0x9ffcf80000001347) - * SUN4V: 0x30ffffffffffee17 (negated == 0xcf000000000011e8) + /* SUN4U: 0x630107ffffffec38 (negated == 0x9cfef800000013c7) + * SUN4V: 0x33ffffffffffee07 (negated == 0xcc000000000011f8) * * Even if we use negation tricks the result is still a 6 * instruction sequence, so don't try to play fancy and just @@ -289,10 +312,10 @@ " .previous\n" : "=r" (mask), "=r" (tmp) : "i" (_PAGE_PADDR_4U | _PAGE_MODIFIED_4U | _PAGE_ACCESSED_4U | - _PAGE_CP_4U | _PAGE_CV_4U | _PAGE_E_4U | _PAGE_PRESENT_4U | + _PAGE_CP_4U | _PAGE_CV_4U | _PAGE_E_4U | _PAGE_SPECIAL | _PAGE_PMD_HUGE | _PAGE_SZALL_4U), "i" (_PAGE_PADDR_4V | _PAGE_MODIFIED_4V | _PAGE_ACCESSED_4V | - _PAGE_CP_4V | _PAGE_CV_4V | _PAGE_E_4V | _PAGE_PRESENT_4V | + _PAGE_CP_4V | _PAGE_CV_4V | _PAGE_E_4V | _PAGE_SPECIAL | _PAGE_PMD_HUGE | _PAGE_SZALL_4V)); return __pte((pte_val(pte) & mask) | (pgprot_val(prot) & ~mask)); @@ -633,29 +656,29 @@ { pte_t pte = __pte(pmd_val(pmd)); - return (pte_val(pte) & _PAGE_PMD_HUGE) && pte_present(pte); + return pte_val(pte) & _PAGE_PMD_HUGE; } -#ifdef CONFIG_TRANSPARENT_HUGEPAGE -static inline unsigned long pmd_young(pmd_t pmd) +static inline unsigned long pmd_pfn(pmd_t pmd) { pte_t pte = __pte(pmd_val(pmd)); - return pte_young(pte); + return pte_pfn(pte); } -static inline unsigned long pmd_write(pmd_t pmd) +#ifdef CONFIG_TRANSPARENT_HUGEPAGE +static inline unsigned long pmd_young(pmd_t pmd) { pte_t pte = __pte(pmd_val(pmd)); - return pte_write(pte); + return pte_young(pte); } -static inline unsigned long pmd_pfn(pmd_t pmd) +static inline unsigned long pmd_write(pmd_t pmd) { pte_t pte = __pte(pmd_val(pmd)); - return pte_pfn(pte); + return pte_write(pte); } static inline unsigned long pmd_trans_huge(pmd_t pmd) @@ -719,20 +742,6 @@ return __pmd(pte_val(pte)); } -static inline pmd_t pmd_mknotpresent(pmd_t pmd) -{ - unsigned long mask; - - if (tlb_type == hypervisor) - mask = _PAGE_PRESENT_4V; - else - mask = _PAGE_PRESENT_4U; - - pmd_val(pmd) &= ~mask; - - return pmd; -} - static inline pmd_t pmd_mksplitting(pmd_t pmd) { pte_t pte = __pte(pmd_val(pmd)); @@ -757,6 +766,22 @@ #define pmd_none(pmd) (!pmd_val(pmd)) +/* pmd_bad() is only called on non-trans-huge PMDs. Our encoding is + * very simple, it's just the physical address. PTE tables are of + * size PAGE_SIZE so make sure the sub-PAGE_SIZE bits are clear and + * the top bits outside of the range of any physical address size we + * support are clear as well. We also validate the physical itself. + */ +#define pmd_bad(pmd) (pmd_val(pmd) & ~PAGE_MASK) + +#define pud_none(pud) (!pud_val(pud)) + +#define pud_bad(pud) (pud_val(pud) & ~PAGE_MASK) + +#define pgd_none(pgd) (!pgd_val(pgd)) + +#define pgd_bad(pgd) (pgd_val(pgd) & ~PAGE_MASK) + #ifdef CONFIG_TRANSPARENT_HUGEPAGE extern void set_pmd_at(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, pmd_t pmd); @@ -790,16 +815,34 @@ #define pud_page_vaddr(pud) \ ((unsigned long) __va(pud_val(pud))) #define pud_page(pud) virt_to_page((void *)pud_page_vaddr(pud)) -#define pmd_bad(pmd) (0) #define pmd_clear(pmdp) (pmd_val(*(pmdp)) = 0UL) -#define pud_none(pud) (!pud_val(pud)) -#define pud_bad(pud) (0) #define pud_present(pud) (pud_val(pud) != 0U) #define pud_clear(pudp) (pud_val(*(pudp)) = 0UL) +#define pgd_page_vaddr(pgd) \ + ((unsigned long) __va(pgd_val(pgd))) +#define pgd_present(pgd) (pgd_val(pgd) != 0U) +#define pgd_clear(pgdp) (pgd_val(*(pgd)) = 0UL) + +static inline unsigned long pud_large(pud_t pud) +{ + pte_t pte = __pte(pud_val(pud)); + + return pte_val(pte) & _PAGE_PMD_HUGE; +} + +static inline unsigned long pud_pfn(pud_t pud) +{ + pte_t pte = __pte(pud_val(pud)); + + return pte_pfn(pte); +} /* Same in both SUN4V and SUN4U. */ #define pte_none(pte) (!pte_val(pte)) +#define pgd_set(pgdp, pudp) \ + (pgd_val(*(pgdp)) = (__pa((unsigned long) (pudp)))) + /* to find an entry in a page-table-directory. */ #define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD - 1)) #define pgd_offset(mm, address) ((mm)->pgd + pgd_index(address)) @@ -807,6 +850,11 @@ /* to find an entry in a kernel page-table-directory */ #define pgd_offset_k(address) pgd_offset(&init_mm, address) +/* Find an entry in the third-level page table.. */ +#define pud_index(address) (((address) >> PUD_SHIFT) & (PTRS_PER_PUD - 1)) +#define pud_offset(pgdp, address) \ + ((pud_t *) pgd_page_vaddr(*(pgdp)) + pud_index(address)) + /* Find an entry in the second-level page table.. */ #define pmd_offset(pudp, address) \ ((pmd_t *) pud_page_vaddr(*(pudp)) + \ @@ -879,7 +927,6 @@ #endif extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; -extern pmd_t swapper_low_pmd_dir[PTRS_PER_PMD]; extern void paging_init(void); extern unsigned long find_ecache_flush_span(unsigned long size); @@ -893,6 +940,10 @@ extern void update_mmu_cache_pmd(struct vm_area_struct *vma, unsigned long addr, pmd_t *pmd); +#define __HAVE_ARCH_PMDP_INVALIDATE +extern void pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, + pmd_t *pmdp); + #define __HAVE_ARCH_PGTABLE_DEPOSIT extern void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, pgtable_t pgtable); @@ -919,18 +970,6 @@ extern pte_t pgoff_to_pte(unsigned long); #define PTE_FILE_MAX_BITS (64UL - PAGE_SHIFT - 1UL) -extern unsigned long sparc64_valid_addr_bitmap[]; - -/* Needs to be defined here and not in linux/mm.h, as it is arch dependent */ -static inline bool kern_addr_valid(unsigned long addr) -{ - unsigned long paddr = __pa(addr); - - if ((paddr >> 41UL) != 0UL) - return false; - return test_bit(paddr >> 22, sparc64_valid_addr_bitmap); -} - extern int page_in_phys_avail(unsigned long paddr); /* --- linux-3.13.0.orig/arch/sparc/include/asm/setup.h +++ linux-3.13.0/arch/sparc/include/asm/setup.h @@ -24,6 +24,10 @@ } #endif +#ifdef CONFIG_SPARC64 +extern void __init start_early_boot(void); +#endif + extern void sun_do_break(void); extern int stop_a_enabled; extern int scons_pwroff; --- linux-3.13.0.orig/arch/sparc/include/asm/spitfire.h +++ linux-3.13.0/arch/sparc/include/asm/spitfire.h @@ -45,6 +45,8 @@ #define SUN4V_CHIP_NIAGARA3 0x03 #define SUN4V_CHIP_NIAGARA4 0x04 #define SUN4V_CHIP_NIAGARA5 0x05 +#define SUN4V_CHIP_SPARC_M6 0x06 +#define SUN4V_CHIP_SPARC_M7 0x07 #define SUN4V_CHIP_SPARC64X 0x8a #define SUN4V_CHIP_UNKNOWN 0xff --- linux-3.13.0.orig/arch/sparc/include/asm/thread_info_64.h +++ linux-3.13.0/arch/sparc/include/asm/thread_info_64.h @@ -63,7 +63,8 @@ struct pt_regs *kern_una_regs; unsigned int kern_una_insn; - unsigned long fpregs[0] __attribute__ ((aligned(64))); + unsigned long fpregs[(7 * 256) / sizeof(unsigned long)] + __attribute__ ((aligned(64))); }; #endif /* !(__ASSEMBLY__) */ @@ -102,6 +103,7 @@ #define FAULT_CODE_ITLB 0x04 /* Miss happened in I-TLB */ #define FAULT_CODE_WINFIXUP 0x08 /* Miss happened during spill/fill */ #define FAULT_CODE_BLKCOMMIT 0x10 /* Use blk-commit ASI in copy_page */ +#define FAULT_CODE_BAD_RA 0x20 /* Bad RA for sun4v */ #if PAGE_SHIFT == 13 #define THREAD_SIZE (2*PAGE_SIZE) --- linux-3.13.0.orig/arch/sparc/include/asm/tlbflush_64.h +++ linux-3.13.0/arch/sparc/include/asm/tlbflush_64.h @@ -34,6 +34,8 @@ { } +void flush_tlb_kernel_range(unsigned long start, unsigned long end); + #define __HAVE_ARCH_ENTER_LAZY_MMU_MODE extern void flush_tlb_pending(void); @@ -48,11 +50,6 @@ #ifndef CONFIG_SMP -#define flush_tlb_kernel_range(start,end) \ -do { flush_tsb_kernel_range(start,end); \ - __flush_tlb_kernel_range(start,end); \ -} while (0) - static inline void global_flush_tlb_page(struct mm_struct *mm, unsigned long vaddr) { __flush_tlb_page(CTX_HWBITS(mm->context), vaddr); @@ -63,11 +60,6 @@ extern void smp_flush_tlb_kernel_range(unsigned long start, unsigned long end); extern void smp_flush_tlb_page(struct mm_struct *mm, unsigned long vaddr); -#define flush_tlb_kernel_range(start, end) \ -do { flush_tsb_kernel_range(start,end); \ - smp_flush_tlb_kernel_range(start, end); \ -} while (0) - #define global_flush_tlb_page(mm, vaddr) \ smp_flush_tlb_page(mm, vaddr) --- linux-3.13.0.orig/arch/sparc/include/asm/tsb.h +++ linux-3.13.0/arch/sparc/include/asm/tsb.h @@ -133,9 +133,24 @@ sub TSB, 0x8, TSB; \ TSB_STORE(TSB, TAG); - /* Do a kernel page table walk. Leaves physical PTE pointer in - * REG1. Jumps to FAIL_LABEL on early page table walk termination. - * VADDR will not be clobbered, but REG2 will. + /* Do a kernel page table walk. Leaves valid PTE value in + * REG1. Jumps to FAIL_LABEL on early page table walk + * termination. VADDR will not be clobbered, but REG2 will. + * + * There are two masks we must apply to propagate bits from + * the virtual address into the PTE physical address field + * when dealing with huge pages. This is because the page + * table boundaries do not match the huge page size(s) the + * hardware supports. + * + * In these cases we propagate the bits that are below the + * page table level where we saw the huge page mapping, but + * are still within the relevant physical bits for the huge + * page size in question. So for PMD mappings (which fall on + * bit 23, for 8MB per PMD) we must propagate bit 22 for a + * 4MB huge page. For huge PUDs (which fall on bit 33, for + * 8GB per PUD), we have to accomodate 256MB and 2GB huge + * pages. So for those we propagate bits 32 to 28. */ #define KERN_PGTABLE_WALK(VADDR, REG1, REG2, FAIL_LABEL) \ sethi %hi(swapper_pg_dir), REG1; \ @@ -145,15 +160,40 @@ andn REG2, 0x7, REG2; \ ldx [REG1 + REG2], REG1; \ brz,pn REG1, FAIL_LABEL; \ - sllx VADDR, 64 - (PMD_SHIFT + PMD_BITS), REG2; \ + sllx VADDR, 64 - (PUD_SHIFT + PUD_BITS), REG2; \ + srlx REG2, 64 - PAGE_SHIFT, REG2; \ + andn REG2, 0x7, REG2; \ + ldxa [REG1 + REG2] ASI_PHYS_USE_EC, REG1; \ + brz,pn REG1, FAIL_LABEL; \ + sethi %uhi(_PAGE_PUD_HUGE), REG2; \ + brz,pn REG1, FAIL_LABEL; \ + sllx REG2, 32, REG2; \ + andcc REG1, REG2, %g0; \ + sethi %hi(0xf8000000), REG2; \ + bne,pt %xcc, 697f; \ + sllx REG2, 1, REG2; \ + sllx VADDR, 64 - (PMD_SHIFT + PMD_BITS), REG2; \ srlx REG2, 64 - PAGE_SHIFT, REG2; \ andn REG2, 0x7, REG2; \ ldxa [REG1 + REG2] ASI_PHYS_USE_EC, REG1; \ + sethi %uhi(_PAGE_PMD_HUGE), REG2; \ brz,pn REG1, FAIL_LABEL; \ - sllx VADDR, 64 - PMD_SHIFT, REG2; \ + sllx REG2, 32, REG2; \ + andcc REG1, REG2, %g0; \ + be,pn %xcc, 698f; \ + sethi %hi(0x400000), REG2; \ +697: brgez,pn REG1, FAIL_LABEL; \ + andn REG1, REG2, REG1; \ + and VADDR, REG2, REG2; \ + ba,pt %xcc, 699f; \ + or REG1, REG2, REG1; \ +698: sllx VADDR, 64 - PMD_SHIFT, REG2; \ srlx REG2, 64 - PAGE_SHIFT, REG2; \ andn REG2, 0x7, REG2; \ - add REG1, REG2, REG1; + ldxa [REG1 + REG2] ASI_PHYS_USE_EC, REG1; \ + brgez,pn REG1, FAIL_LABEL; \ + nop; \ +699: /* PMD has been loaded into REG1, interpret the value, seeing * if it is a HUGE PMD or a normal one. If it is not valid @@ -171,7 +211,8 @@ andcc REG1, REG2, %g0; \ be,pt %xcc, 700f; \ sethi %hi(4 * 1024 * 1024), REG2; \ - andn REG1, REG2, REG1; \ + brgez,pn REG1, FAIL_LABEL; \ + andn REG1, REG2, REG1; \ and VADDR, REG2, REG2; \ brlz,pt REG1, PTE_LABEL; \ or REG1, REG2, REG1; \ @@ -197,6 +238,11 @@ andn REG2, 0x7, REG2; \ ldxa [PHYS_PGD + REG2] ASI_PHYS_USE_EC, REG1; \ brz,pn REG1, FAIL_LABEL; \ + sllx VADDR, 64 - (PUD_SHIFT + PUD_BITS), REG2; \ + srlx REG2, 64 - PAGE_SHIFT, REG2; \ + andn REG2, 0x7, REG2; \ + ldxa [REG1 + REG2] ASI_PHYS_USE_EC, REG1; \ + brz,pn REG1, FAIL_LABEL; \ sllx VADDR, 64 - (PMD_SHIFT + PMD_BITS), REG2; \ srlx REG2, 64 - PAGE_SHIFT, REG2; \ andn REG2, 0x7, REG2; \ @@ -245,8 +291,6 @@ (KERNEL_TSB_SIZE_BYTES / 16) #define KERNEL_TSB4M_NENTRIES 4096 -#define KTSB_PHYS_SHIFT 15 - /* Do a kernel TSB lookup at tl>0 on VADDR+TAG, branch to OK_LABEL * on TSB hit. REG1, REG2, REG3, and REG4 are used as temporaries * and the found TTE will be left in REG1. REG3 and REG4 must @@ -255,17 +299,15 @@ * VADDR and TAG will be preserved and not clobbered by this macro. */ #define KERN_TSB_LOOKUP_TL1(VADDR, TAG, REG1, REG2, REG3, REG4, OK_LABEL) \ -661: sethi %hi(swapper_tsb), REG1; \ - or REG1, %lo(swapper_tsb), REG1; \ +661: sethi %uhi(swapper_tsb), REG1; \ + sethi %hi(swapper_tsb), REG2; \ + or REG1, %ulo(swapper_tsb), REG1; \ + or REG2, %lo(swapper_tsb), REG2; \ .section .swapper_tsb_phys_patch, "ax"; \ .word 661b; \ .previous; \ -661: nop; \ - .section .tsb_ldquad_phys_patch, "ax"; \ - .word 661b; \ - sllx REG1, KTSB_PHYS_SHIFT, REG1; \ - sllx REG1, KTSB_PHYS_SHIFT, REG1; \ - .previous; \ + sllx REG1, 32, REG1; \ + or REG1, REG2, REG1; \ srlx VADDR, PAGE_SHIFT, REG2; \ and REG2, (KERNEL_TSB_NENTRIES - 1), REG2; \ sllx REG2, 4, REG2; \ @@ -280,17 +322,15 @@ * we can make use of that for the index computation. */ #define KERN_TSB4M_LOOKUP_TL1(TAG, REG1, REG2, REG3, REG4, OK_LABEL) \ -661: sethi %hi(swapper_4m_tsb), REG1; \ - or REG1, %lo(swapper_4m_tsb), REG1; \ +661: sethi %uhi(swapper_4m_tsb), REG1; \ + sethi %hi(swapper_4m_tsb), REG2; \ + or REG1, %ulo(swapper_4m_tsb), REG1; \ + or REG2, %lo(swapper_4m_tsb), REG2; \ .section .swapper_4m_tsb_phys_patch, "ax"; \ .word 661b; \ .previous; \ -661: nop; \ - .section .tsb_ldquad_phys_patch, "ax"; \ - .word 661b; \ - sllx REG1, KTSB_PHYS_SHIFT, REG1; \ - sllx REG1, KTSB_PHYS_SHIFT, REG1; \ - .previous; \ + sllx REG1, 32, REG1; \ + or REG1, REG2, REG1; \ and TAG, (KERNEL_TSB4M_NENTRIES - 1), REG2; \ sllx REG2, 4, REG2; \ add REG1, REG2, REG2; \ --- linux-3.13.0.orig/arch/sparc/include/asm/vio.h +++ linux-3.13.0/arch/sparc/include/asm/vio.h @@ -118,12 +118,18 @@ u8 vdisk_type; #define VD_DISK_TYPE_SLICE 0x01 /* Slice in block device */ #define VD_DISK_TYPE_DISK 0x02 /* Entire block device */ - u16 resv1; + u8 vdisk_mtype; /* v1.1 */ +#define VD_MEDIA_TYPE_FIXED 0x01 /* Fixed device */ +#define VD_MEDIA_TYPE_CD 0x02 /* CD Device */ +#define VD_MEDIA_TYPE_DVD 0x03 /* DVD Device */ + u8 resv1; u32 vdisk_block_size; u64 operations; - u64 vdisk_size; + u64 vdisk_size; /* v1.1 */ u64 max_xfer_size; - u64 resv2[2]; + u32 phys_block_size; /* v1.2 */ + u32 resv2; + u64 resv3[1]; }; struct vio_disk_desc { @@ -259,7 +265,7 @@ unsigned int ring_size) { return (dr->pending - - ((dr->prod - dr->cons) & (ring_size - 1))); + ((dr->prod - dr->cons) & (ring_size - 1)) - 1); } #define VIO_MAX_TYPE_LEN 32 --- linux-3.13.0.orig/arch/sparc/include/asm/visasm.h +++ linux-3.13.0/arch/sparc/include/asm/visasm.h @@ -39,6 +39,14 @@ 297: wr %o5, FPRS_FEF, %fprs; \ 298: +#define VISEntryHalfFast(fail_label) \ + rd %fprs, %o5; \ + andcc %o5, FPRS_FEF, %g0; \ + be,pt %icc, 297f; \ + nop; \ + ba,a,pt %xcc, fail_label; \ +297: wr %o5, FPRS_FEF, %fprs; + #define VISExitHalf \ wr %o5, 0, %fprs; --- linux-3.13.0.orig/arch/sparc/include/uapi/asm/swab.h +++ linux-3.13.0/arch/sparc/include/uapi/asm/swab.h @@ -9,9 +9,9 @@ { __u16 ret; - __asm__ __volatile__ ("lduha [%1] %2, %0" + __asm__ __volatile__ ("lduha [%2] %3, %0" : "=r" (ret) - : "r" (addr), "i" (ASI_PL)); + : "m" (*addr), "r" (addr), "i" (ASI_PL)); return ret; } #define __arch_swab16p __arch_swab16p @@ -20,9 +20,9 @@ { __u32 ret; - __asm__ __volatile__ ("lduwa [%1] %2, %0" + __asm__ __volatile__ ("lduwa [%2] %3, %0" : "=r" (ret) - : "r" (addr), "i" (ASI_PL)); + : "m" (*addr), "r" (addr), "i" (ASI_PL)); return ret; } #define __arch_swab32p __arch_swab32p @@ -31,9 +31,9 @@ { __u64 ret; - __asm__ __volatile__ ("ldxa [%1] %2, %0" + __asm__ __volatile__ ("ldxa [%2] %3, %0" : "=r" (ret) - : "r" (addr), "i" (ASI_PL)); + : "m" (*addr), "r" (addr), "i" (ASI_PL)); return ret; } #define __arch_swab64p __arch_swab64p --- linux-3.13.0.orig/arch/sparc/kernel/cpu.c +++ linux-3.13.0/arch/sparc/kernel/cpu.c @@ -493,6 +493,18 @@ sparc_pmu_type = "niagara5"; break; + case SUN4V_CHIP_SPARC_M6: + sparc_cpu_type = "SPARC-M6"; + sparc_fpu_type = "SPARC-M6 integrated FPU"; + sparc_pmu_type = "sparc-m6"; + break; + + case SUN4V_CHIP_SPARC_M7: + sparc_cpu_type = "SPARC-M7"; + sparc_fpu_type = "SPARC-M7 integrated FPU"; + sparc_pmu_type = "sparc-m7"; + break; + case SUN4V_CHIP_SPARC64X: sparc_cpu_type = "SPARC64-X"; sparc_fpu_type = "SPARC64-X integrated FPU"; --- linux-3.13.0.orig/arch/sparc/kernel/cpumap.c +++ linux-3.13.0/arch/sparc/kernel/cpumap.c @@ -327,6 +327,8 @@ case SUN4V_CHIP_NIAGARA3: case SUN4V_CHIP_NIAGARA4: case SUN4V_CHIP_NIAGARA5: + case SUN4V_CHIP_SPARC_M6: + case SUN4V_CHIP_SPARC_M7: case SUN4V_CHIP_SPARC64X: rover_inc_table = niagara_iterate_method; break; --- linux-3.13.0.orig/arch/sparc/kernel/ds.c +++ linux-3.13.0/arch/sparc/kernel/ds.c @@ -1200,14 +1200,14 @@ ds_cfg.tx_irq = vdev->tx_irq; ds_cfg.rx_irq = vdev->rx_irq; - lp = ldc_alloc(vdev->channel_id, &ds_cfg, dp); + lp = ldc_alloc(vdev->channel_id, &ds_cfg, dp, "DS"); if (IS_ERR(lp)) { err = PTR_ERR(lp); goto out_free_ds_states; } dp->lp = lp; - err = ldc_bind(lp, "DS"); + err = ldc_bind(lp); if (err) goto out_free_ldc; --- linux-3.13.0.orig/arch/sparc/kernel/dtlb_prot.S +++ linux-3.13.0/arch/sparc/kernel/dtlb_prot.S @@ -24,11 +24,11 @@ mov TLB_TAG_ACCESS, %g4 ! For reload of vaddr /* PROT ** ICACHE line 2: More real fault processing */ + ldxa [%g4] ASI_DMMU, %g5 ! Put tagaccess in %g5 bgu,pn %xcc, winfix_trampoline ! Yes, perform winfixup - ldxa [%g4] ASI_DMMU, %g5 ! Put tagaccess in %g5 - ba,pt %xcc, sparc64_realfault_common ! Nope, normal fault mov FAULT_CODE_DTLB | FAULT_CODE_WRITE, %g4 - nop + ba,pt %xcc, sparc64_realfault_common ! Nope, normal fault + nop nop nop nop --- linux-3.13.0.orig/arch/sparc/kernel/entry.h +++ linux-3.13.0/arch/sparc/kernel/entry.h @@ -66,13 +66,10 @@ extern struct pause_patch_entry __pause_3insn_patch, __pause_3insn_patch_end; -extern void __init per_cpu_patch(void); extern void sun4v_patch_1insn_range(struct sun4v_1insn_patch_entry *, struct sun4v_1insn_patch_entry *); extern void sun4v_patch_2insn_range(struct sun4v_2insn_patch_entry *, struct sun4v_2insn_patch_entry *); -extern void __init sun4v_patch(void); -extern void __init boot_cpu_id_too_large(int cpu); extern unsigned int dcache_parity_tl1_occurred; extern unsigned int icache_parity_tl1_occurred; --- linux-3.13.0.orig/arch/sparc/kernel/head_64.S +++ linux-3.13.0/arch/sparc/kernel/head_64.S @@ -282,8 +282,8 @@ stx %l2, [%l4 + 0x0] ldx [%sp + 2047 + 128 + 0x50], %l3 ! physaddr low /* 4MB align */ - srlx %l3, 22, %l3 - sllx %l3, 22, %l3 + srlx %l3, ILOG2_4MB, %l3 + sllx %l3, ILOG2_4MB, %l3 stx %l3, [%l4 + 0x8] /* Leave service as-is, "call-method" */ @@ -427,6 +427,12 @@ cmp %g2, '5' be,pt %xcc, 5f mov SUN4V_CHIP_NIAGARA5, %g4 + cmp %g2, '6' + be,pt %xcc, 5f + mov SUN4V_CHIP_SPARC_M6, %g4 + cmp %g2, '7' + be,pt %xcc, 5f + mov SUN4V_CHIP_SPARC_M7, %g4 ba,pt %xcc, 49f nop @@ -585,6 +591,12 @@ cmp %g1, SUN4V_CHIP_NIAGARA5 be,pt %xcc, niagara4_patch nop + cmp %g1, SUN4V_CHIP_SPARC_M6 + be,pt %xcc, niagara4_patch + nop + cmp %g1, SUN4V_CHIP_SPARC_M7 + be,pt %xcc, niagara4_patch + nop call generic_patch_copyops nop @@ -660,14 +672,12 @@ sethi %hi(init_thread_union), %g6 or %g6, %lo(init_thread_union), %g6 ldx [%g6 + TI_TASK], %g4 - mov %sp, %l6 wr %g0, ASI_P, %asi mov 1, %g1 sllx %g1, THREAD_SHIFT, %g1 sub %g1, (STACKFRAME_SZ + STACK_BIAS), %g1 add %g6, %g1, %sp - mov 0, %fp /* Set per-cpu pointer initially to zero, this makes * the boot-cpu use the in-kernel-image per-cpu areas @@ -694,44 +704,14 @@ nop #endif - mov %l6, %o1 ! OpenPROM stack call prom_init mov %l7, %o0 ! OpenPROM cif handler - /* Initialize current_thread_info()->cpu as early as possible. - * In order to do that accurately we have to patch up the get_cpuid() - * assembler sequences. And that, in turn, requires that we know - * if we are on a Starfire box or not. While we're here, patch up - * the sun4v sequences as well. + /* To create a one-register-window buffer between the kernel's + * initial stack and the last stack frame we use from the firmware, + * do the rest of the boot from a C helper function. */ - call check_if_starfire - nop - call per_cpu_patch - nop - call sun4v_patch - nop - -#ifdef CONFIG_SMP - call hard_smp_processor_id - nop - cmp %o0, NR_CPUS - blu,pt %xcc, 1f - nop - call boot_cpu_id_too_large - nop - /* Not reached... */ - -1: -#else - mov 0, %o0 -#endif - sth %o0, [%g6 + TI_CPU] - - call prom_init_report - nop - - /* Off we go.... */ - call start_kernel + call start_early_boot nop /* Not reached... */ --- linux-3.13.0.orig/arch/sparc/kernel/hvapi.c +++ linux-3.13.0/arch/sparc/kernel/hvapi.c @@ -46,6 +46,7 @@ { .group = HV_GRP_VF_CPU, }, { .group = HV_GRP_KT_CPU, }, { .group = HV_GRP_VT_CPU, }, + { .group = HV_GRP_T5_CPU, }, { .group = HV_GRP_DIAG, .flags = FLAG_PRE_API }, }; --- linux-3.13.0.orig/arch/sparc/kernel/hvcalls.S +++ linux-3.13.0/arch/sparc/kernel/hvcalls.S @@ -821,3 +821,19 @@ retl nop ENDPROC(sun4v_vt_set_perfreg) + +ENTRY(sun4v_t5_get_perfreg) + mov %o1, %o4 + mov HV_FAST_T5_GET_PERFREG, %o5 + ta HV_FAST_TRAP + stx %o1, [%o4] + retl + nop +ENDPROC(sun4v_t5_get_perfreg) + +ENTRY(sun4v_t5_set_perfreg) + mov HV_FAST_T5_SET_PERFREG, %o5 + ta HV_FAST_TRAP + retl + nop +ENDPROC(sun4v_t5_set_perfreg) --- linux-3.13.0.orig/arch/sparc/kernel/hvtramp.S +++ linux-3.13.0/arch/sparc/kernel/hvtramp.S @@ -110,7 +110,6 @@ sllx %g5, THREAD_SHIFT, %g5 sub %g5, (STACKFRAME_SZ + STACK_BIAS), %g5 add %g6, %g5, %sp - mov 0, %fp call init_irqwork_curcpu nop --- linux-3.13.0.orig/arch/sparc/kernel/ioport.c +++ linux-3.13.0/arch/sparc/kernel/ioport.c @@ -278,7 +278,8 @@ } order = get_order(len_total); - if ((va = __get_free_pages(GFP_KERNEL|__GFP_COMP, order)) == 0) + va = __get_free_pages(gfp, order); + if (va == 0) goto err_nopages; if ((res = kzalloc(sizeof(struct resource), GFP_KERNEL)) == NULL) @@ -443,7 +444,7 @@ } order = get_order(len_total); - va = (void *) __get_free_pages(GFP_KERNEL, order); + va = (void *) __get_free_pages(gfp, order); if (va == NULL) { printk("pci_alloc_consistent: no %ld pages\n", len_total>>PAGE_SHIFT); goto err_nopages; --- linux-3.13.0.orig/arch/sparc/kernel/irq_64.c +++ linux-3.13.0/arch/sparc/kernel/irq_64.c @@ -47,8 +47,6 @@ #include "cpumap.h" #include "kstack.h" -#define NUM_IVECS (IMAP_INR + 1) - struct ino_bucket *ivector_table; unsigned long ivector_table_pa; @@ -107,55 +105,196 @@ #define irq_work_pa(__cpu) &(trap_block[(__cpu)].irq_worklist_pa) -static struct { - unsigned int dev_handle; - unsigned int dev_ino; - unsigned int in_use; -} irq_table[NR_IRQS]; -static DEFINE_SPINLOCK(irq_alloc_lock); +static unsigned long hvirq_major __initdata; +static int __init early_hvirq_major(char *p) +{ + int rc = kstrtoul(p, 10, &hvirq_major); + + return rc; +} +early_param("hvirq", early_hvirq_major); + +static int hv_irq_version; + +/* Major version 2.0 of HV_GRP_INTR added support for the VIRQ cookie + * based interfaces, but: + * + * 1) Several OSs, Solaris and Linux included, use them even when only + * negotiating version 1.0 (or failing to negotiate at all). So the + * hypervisor has a workaround that provides the VIRQ interfaces even + * when only verion 1.0 of the API is in use. + * + * 2) Second, and more importantly, with major version 2.0 these VIRQ + * interfaces only were actually hooked up for LDC interrupts, even + * though the Hypervisor specification clearly stated: + * + * The new interrupt API functions will be available to a guest + * when it negotiates version 2.0 in the interrupt API group 0x2. When + * a guest negotiates version 2.0, all interrupt sources will only + * support using the cookie interface, and any attempt to use the + * version 1.0 interrupt APIs numbered 0xa0 to 0xa6 will result in the + * ENOTSUPPORTED error being returned. + * + * with an emphasis on "all interrupt sources". + * + * To correct this, major version 3.0 was created which does actually + * support VIRQs for all interrupt sources (not just LDC devices). So + * if we want to move completely over the cookie based VIRQs we must + * negotiate major version 3.0 or later of HV_GRP_INTR. + */ +static bool sun4v_cookie_only_virqs(void) +{ + if (hv_irq_version >= 3) + return true; + return false; +} -unsigned char irq_alloc(unsigned int dev_handle, unsigned int dev_ino) +static void __init irq_init_hv(void) { - unsigned long flags; - unsigned char ent; + unsigned long hv_error, major, minor = 0; + + if (tlb_type != hypervisor) + return; - BUILD_BUG_ON(NR_IRQS >= 256); + if (hvirq_major) + major = hvirq_major; + else + major = 3; - spin_lock_irqsave(&irq_alloc_lock, flags); + hv_error = sun4v_hvapi_register(HV_GRP_INTR, major, &minor); + if (!hv_error) + hv_irq_version = major; + else + hv_irq_version = 1; - for (ent = 1; ent < NR_IRQS; ent++) { - if (!irq_table[ent].in_use) + pr_info("SUN4V: Using IRQ API major %d, cookie only virqs %s\n", + hv_irq_version, + sun4v_cookie_only_virqs() ? "enabled" : "disabled"); +} + +/* This function is for the timer interrupt.*/ +int __init arch_probe_nr_irqs(void) +{ + return 1; +} + +#define DEFAULT_NUM_IVECS (0xfffU) +static unsigned int nr_ivec = DEFAULT_NUM_IVECS; +#define NUM_IVECS (nr_ivec) + +static unsigned int __init size_nr_ivec(void) +{ + if (tlb_type == hypervisor) { + switch (sun4v_chip_type) { + /* Athena's devhandle|devino is large.*/ + case SUN4V_CHIP_SPARC64X: + nr_ivec = 0xffff; break; + } } - if (ent >= NR_IRQS) { - printk(KERN_ERR "IRQ: Out of virtual IRQs.\n"); - ent = 0; - } else { - irq_table[ent].dev_handle = dev_handle; - irq_table[ent].dev_ino = dev_ino; - irq_table[ent].in_use = 1; - } + return nr_ivec; +} + +struct irq_handler_data { + union { + struct { + unsigned int dev_handle; + unsigned int dev_ino; + }; + unsigned long sysino; + }; + struct ino_bucket bucket; + unsigned long iclr; + unsigned long imap; +}; + +static inline unsigned int irq_data_to_handle(struct irq_data *data) +{ + struct irq_handler_data *ihd = data->handler_data; + + return ihd->dev_handle; +} + +static inline unsigned int irq_data_to_ino(struct irq_data *data) +{ + struct irq_handler_data *ihd = data->handler_data; + + return ihd->dev_ino; +} - spin_unlock_irqrestore(&irq_alloc_lock, flags); +static inline unsigned long irq_data_to_sysino(struct irq_data *data) +{ + struct irq_handler_data *ihd = data->handler_data; - return ent; + return ihd->sysino; } -#ifdef CONFIG_PCI_MSI void irq_free(unsigned int irq) { - unsigned long flags; + void *data = irq_get_handler_data(irq); - if (irq >= NR_IRQS) - return; + kfree(data); + irq_set_handler_data(irq, NULL); + irq_free_descs(irq, 1); +} - spin_lock_irqsave(&irq_alloc_lock, flags); +unsigned int irq_alloc(unsigned int dev_handle, unsigned int dev_ino) +{ + int irq; - irq_table[irq].in_use = 0; + irq = __irq_alloc_descs(-1, 1, 1, numa_node_id(), NULL); + if (irq <= 0) + goto out; - spin_unlock_irqrestore(&irq_alloc_lock, flags); + return irq; +out: + return 0; +} + +static unsigned int cookie_exists(u32 devhandle, unsigned int devino) +{ + unsigned long hv_err, cookie; + struct ino_bucket *bucket; + unsigned int irq = 0U; + + hv_err = sun4v_vintr_get_cookie(devhandle, devino, &cookie); + if (hv_err) { + pr_err("HV get cookie failed hv_err = %ld\n", hv_err); + goto out; + } + + if (cookie & ((1UL << 63UL))) { + cookie = ~cookie; + bucket = (struct ino_bucket *) __va(cookie); + irq = bucket->__irq; + } +out: + return irq; +} + +static unsigned int sysino_exists(u32 devhandle, unsigned int devino) +{ + unsigned long sysino = sun4v_devino_to_sysino(devhandle, devino); + struct ino_bucket *bucket; + unsigned int irq; + + bucket = &ivector_table[sysino]; + irq = bucket_get_irq(__pa(bucket)); + + return irq; +} + +void ack_bad_irq(unsigned int irq) +{ + pr_crit("BAD IRQ ack %d\n", irq); +} + +void irq_install_pre_handler(int irq, + void (*func)(unsigned int, void *, void *), + void *arg1, void *arg2) +{ + pr_warn("IRQ pre handler NOT supported.\n"); } -#endif /* * /proc/interrupts printing: @@ -206,15 +345,6 @@ return tid; } -struct irq_handler_data { - unsigned long iclr; - unsigned long imap; - - void (*pre_handler)(unsigned int, void *, void *); - void *arg1; - void *arg2; -}; - #ifdef CONFIG_SMP static int irq_choose_cpu(unsigned int irq, const struct cpumask *affinity) { @@ -316,8 +446,8 @@ static void sun4v_irq_enable(struct irq_data *data) { - unsigned int ino = irq_table[data->irq].dev_ino; unsigned long cpuid = irq_choose_cpu(data->irq, data->affinity); + unsigned int ino = irq_data_to_sysino(data); int err; err = sun4v_intr_settarget(ino, cpuid); @@ -337,8 +467,8 @@ static int sun4v_set_affinity(struct irq_data *data, const struct cpumask *mask, bool force) { - unsigned int ino = irq_table[data->irq].dev_ino; unsigned long cpuid = irq_choose_cpu(data->irq, mask); + unsigned int ino = irq_data_to_sysino(data); int err; err = sun4v_intr_settarget(ino, cpuid); @@ -351,7 +481,7 @@ static void sun4v_irq_disable(struct irq_data *data) { - unsigned int ino = irq_table[data->irq].dev_ino; + unsigned int ino = irq_data_to_sysino(data); int err; err = sun4v_intr_setenabled(ino, HV_INTR_DISABLED); @@ -362,7 +492,7 @@ static void sun4v_irq_eoi(struct irq_data *data) { - unsigned int ino = irq_table[data->irq].dev_ino; + unsigned int ino = irq_data_to_sysino(data); int err; err = sun4v_intr_setstate(ino, HV_INTR_STATE_IDLE); @@ -373,14 +503,13 @@ static void sun4v_virq_enable(struct irq_data *data) { - unsigned long cpuid, dev_handle, dev_ino; + unsigned long dev_handle = irq_data_to_handle(data); + unsigned long dev_ino = irq_data_to_ino(data); + unsigned long cpuid; int err; cpuid = irq_choose_cpu(data->irq, data->affinity); - dev_handle = irq_table[data->irq].dev_handle; - dev_ino = irq_table[data->irq].dev_ino; - err = sun4v_vintr_set_target(dev_handle, dev_ino, cpuid); if (err != HV_EOK) printk(KERN_ERR "sun4v_vintr_set_target(%lx,%lx,%lu): " @@ -403,14 +532,13 @@ static int sun4v_virt_set_affinity(struct irq_data *data, const struct cpumask *mask, bool force) { - unsigned long cpuid, dev_handle, dev_ino; + unsigned long dev_handle = irq_data_to_handle(data); + unsigned long dev_ino = irq_data_to_ino(data); + unsigned long cpuid; int err; cpuid = irq_choose_cpu(data->irq, mask); - dev_handle = irq_table[data->irq].dev_handle; - dev_ino = irq_table[data->irq].dev_ino; - err = sun4v_vintr_set_target(dev_handle, dev_ino, cpuid); if (err != HV_EOK) printk(KERN_ERR "sun4v_vintr_set_target(%lx,%lx,%lu): " @@ -422,11 +550,10 @@ static void sun4v_virq_disable(struct irq_data *data) { - unsigned long dev_handle, dev_ino; + unsigned long dev_handle = irq_data_to_handle(data); + unsigned long dev_ino = irq_data_to_ino(data); int err; - dev_handle = irq_table[data->irq].dev_handle; - dev_ino = irq_table[data->irq].dev_ino; err = sun4v_vintr_set_valid(dev_handle, dev_ino, HV_INTR_DISABLED); @@ -438,12 +565,10 @@ static void sun4v_virq_eoi(struct irq_data *data) { - unsigned long dev_handle, dev_ino; + unsigned long dev_handle = irq_data_to_handle(data); + unsigned long dev_ino = irq_data_to_ino(data); int err; - dev_handle = irq_table[data->irq].dev_handle; - dev_ino = irq_table[data->irq].dev_ino; - err = sun4v_vintr_set_state(dev_handle, dev_ino, HV_INTR_STATE_IDLE); if (err != HV_EOK) @@ -479,31 +604,10 @@ .flags = IRQCHIP_EOI_IF_HANDLED, }; -static void pre_flow_handler(struct irq_data *d) -{ - struct irq_handler_data *handler_data = irq_data_get_irq_handler_data(d); - unsigned int ino = irq_table[d->irq].dev_ino; - - handler_data->pre_handler(ino, handler_data->arg1, handler_data->arg2); -} - -void irq_install_pre_handler(int irq, - void (*func)(unsigned int, void *, void *), - void *arg1, void *arg2) -{ - struct irq_handler_data *handler_data = irq_get_handler_data(irq); - - handler_data->pre_handler = func; - handler_data->arg1 = arg1; - handler_data->arg2 = arg2; - - __irq_set_preflow_handler(irq, pre_flow_handler); -} - unsigned int build_irq(int inofixup, unsigned long iclr, unsigned long imap) { - struct ino_bucket *bucket; struct irq_handler_data *handler_data; + struct ino_bucket *bucket; unsigned int irq; int ino; @@ -537,119 +641,166 @@ return irq; } -static unsigned int sun4v_build_common(unsigned long sysino, - struct irq_chip *chip) +static unsigned int sun4v_build_common(u32 devhandle, unsigned int devino, + void (*handler_data_init)(struct irq_handler_data *data, + u32 devhandle, unsigned int devino), + struct irq_chip *chip) { - struct ino_bucket *bucket; - struct irq_handler_data *handler_data; + struct irq_handler_data *data; unsigned int irq; - BUG_ON(tlb_type != hypervisor); + irq = irq_alloc(devhandle, devino); + if (!irq) + goto out; - bucket = &ivector_table[sysino]; - irq = bucket_get_irq(__pa(bucket)); - if (!irq) { - irq = irq_alloc(0, sysino); - bucket_set_irq(__pa(bucket), irq); - irq_set_chip_and_handler_name(irq, chip, handle_fasteoi_irq, - "IVEC"); + data = kzalloc(sizeof(struct irq_handler_data), GFP_ATOMIC); + if (unlikely(!data)) { + pr_err("IRQ handler data allocation failed.\n"); + irq_free(irq); + irq = 0; + goto out; } - handler_data = irq_get_handler_data(irq); - if (unlikely(handler_data)) - goto out; + irq_set_handler_data(irq, data); + handler_data_init(data, devhandle, devino); + irq_set_chip_and_handler_name(irq, chip, handle_fasteoi_irq, "IVEC"); + data->imap = ~0UL; + data->iclr = ~0UL; +out: + return irq; +} - handler_data = kzalloc(sizeof(struct irq_handler_data), GFP_ATOMIC); - if (unlikely(!handler_data)) { - prom_printf("IRQ: kzalloc(irq_handler_data) failed.\n"); - prom_halt(); - } - irq_set_handler_data(irq, handler_data); +static unsigned long cookie_assign(unsigned int irq, u32 devhandle, + unsigned int devino) +{ + struct irq_handler_data *ihd = irq_get_handler_data(irq); + unsigned long hv_error, cookie; - /* Catch accidental accesses to these things. IMAP/ICLR handling - * is done by hypervisor calls on sun4v platforms, not by direct - * register accesses. + /* handler_irq needs to find the irq. cookie is seen signed in + * sun4v_dev_mondo and treated as a non ivector_table delivery. */ - handler_data->imap = ~0UL; - handler_data->iclr = ~0UL; + ihd->bucket.__irq = irq; + cookie = ~__pa(&ihd->bucket); -out: - return irq; + hv_error = sun4v_vintr_set_cookie(devhandle, devino, cookie); + if (hv_error) + pr_err("HV vintr set cookie failed = %ld\n", hv_error); + + return hv_error; } -unsigned int sun4v_build_irq(u32 devhandle, unsigned int devino) +static void cookie_handler_data(struct irq_handler_data *data, + u32 devhandle, unsigned int devino) { - unsigned long sysino = sun4v_devino_to_sysino(devhandle, devino); + data->dev_handle = devhandle; + data->dev_ino = devino; +} - return sun4v_build_common(sysino, &sun4v_irq); +static unsigned int cookie_build_irq(u32 devhandle, unsigned int devino, + struct irq_chip *chip) +{ + unsigned long hv_error; + unsigned int irq; + + irq = sun4v_build_common(devhandle, devino, cookie_handler_data, chip); + + hv_error = cookie_assign(irq, devhandle, devino); + if (hv_error) { + irq_free(irq); + irq = 0; + } + + return irq; } -unsigned int sun4v_build_virq(u32 devhandle, unsigned int devino) +static unsigned int sun4v_build_cookie(u32 devhandle, unsigned int devino) { - struct irq_handler_data *handler_data; - unsigned long hv_err, cookie; - struct ino_bucket *bucket; unsigned int irq; - bucket = kzalloc(sizeof(struct ino_bucket), GFP_ATOMIC); - if (unlikely(!bucket)) - return 0; - - /* The only reference we store to the IRQ bucket is - * by physical address which kmemleak can't see, tell - * it that this object explicitly is not a leak and - * should be scanned. - */ - kmemleak_not_leak(bucket); + irq = cookie_exists(devhandle, devino); + if (irq) + goto out; - __flush_dcache_range((unsigned long) bucket, - ((unsigned long) bucket + - sizeof(struct ino_bucket))); + irq = cookie_build_irq(devhandle, devino, &sun4v_virq); - irq = irq_alloc(devhandle, devino); +out: + return irq; +} + +static void sysino_set_bucket(unsigned int irq) +{ + struct irq_handler_data *ihd = irq_get_handler_data(irq); + struct ino_bucket *bucket; + unsigned long sysino; + + sysino = sun4v_devino_to_sysino(ihd->dev_handle, ihd->dev_ino); + BUG_ON(sysino >= nr_ivec); + bucket = &ivector_table[sysino]; bucket_set_irq(__pa(bucket), irq); +} - irq_set_chip_and_handler_name(irq, &sun4v_virq, handle_fasteoi_irq, - "IVEC"); +static void sysino_handler_data(struct irq_handler_data *data, + u32 devhandle, unsigned int devino) +{ + unsigned long sysino; - handler_data = kzalloc(sizeof(struct irq_handler_data), GFP_ATOMIC); - if (unlikely(!handler_data)) - return 0; + sysino = sun4v_devino_to_sysino(devhandle, devino); + data->sysino = sysino; +} - /* In order to make the LDC channel startup sequence easier, - * especially wrt. locking, we do not let request_irq() enable - * the interrupt. - */ - irq_set_status_flags(irq, IRQ_NOAUTOEN); - irq_set_handler_data(irq, handler_data); +static unsigned int sysino_build_irq(u32 devhandle, unsigned int devino, + struct irq_chip *chip) +{ + unsigned int irq; - /* Catch accidental accesses to these things. IMAP/ICLR handling - * is done by hypervisor calls on sun4v platforms, not by direct - * register accesses. - */ - handler_data->imap = ~0UL; - handler_data->iclr = ~0UL; + irq = sun4v_build_common(devhandle, devino, sysino_handler_data, chip); + if (!irq) + goto out; - cookie = ~__pa(bucket); - hv_err = sun4v_vintr_set_cookie(devhandle, devino, cookie); - if (hv_err) { - prom_printf("IRQ: Fatal, cannot set cookie for [%x:%x] " - "err=%lu\n", devhandle, devino, hv_err); - prom_halt(); - } + sysino_set_bucket(irq); +out: + return irq; +} +static int sun4v_build_sysino(u32 devhandle, unsigned int devino) +{ + int irq; + + irq = sysino_exists(devhandle, devino); + if (irq) + goto out; + + irq = sysino_build_irq(devhandle, devino, &sun4v_irq); +out: return irq; } -void ack_bad_irq(unsigned int irq) +unsigned int sun4v_build_irq(u32 devhandle, unsigned int devino) { - unsigned int ino = irq_table[irq].dev_ino; + unsigned int irq; - if (!ino) - ino = 0xdeadbeef; + if (sun4v_cookie_only_virqs()) + irq = sun4v_build_cookie(devhandle, devino); + else + irq = sun4v_build_sysino(devhandle, devino); - printk(KERN_CRIT "Unexpected IRQ from ino[%x] irq[%u]\n", - ino, irq); + return irq; +} + +unsigned int sun4v_build_virq(u32 devhandle, unsigned int devino) +{ + int irq; + + irq = cookie_build_irq(devhandle, devino, &sun4v_virq); + if (!irq) + goto out; + + /* This is borrowed from the original function. + */ + irq_set_status_flags(irq, IRQ_NOAUTOEN); + +out: + return irq; } void *hardirq_stack[NR_CPUS]; @@ -720,9 +871,12 @@ for (irq = 0; irq < NR_IRQS; irq++) { struct irq_desc *desc = irq_to_desc(irq); - struct irq_data *data = irq_desc_get_irq_data(desc); + struct irq_data *data; unsigned long flags; + if (!desc) + continue; + data = irq_desc_get_irq_data(desc); raw_spin_lock_irqsave(&desc->lock, flags); if (desc->action && !irqd_is_per_cpu(data)) { if (data->chip->irq_set_affinity) @@ -922,16 +1076,22 @@ .name = "timer", }; -/* Only invoked on boot processor. */ -void __init init_IRQ(void) +static void __init irq_ivector_init(void) { - unsigned long size; + unsigned long size, order; + unsigned int ivecs; - map_prom_timers(); - kill_prom_timer(); + /* If we are doing cookie only VIRQs then we do not need the ivector + * table to process interrupts. + */ + if (sun4v_cookie_only_virqs()) + return; - size = sizeof(struct ino_bucket) * NUM_IVECS; - ivector_table = kzalloc(size, GFP_KERNEL); + ivecs = size_nr_ivec(); + size = sizeof(struct ino_bucket) * ivecs; + order = get_order(size); + ivector_table = (struct ino_bucket *) + __get_free_pages(GFP_KERNEL | __GFP_ZERO, order); if (!ivector_table) { prom_printf("Fatal error, cannot allocate ivector_table\n"); prom_halt(); @@ -940,6 +1100,15 @@ ((unsigned long) ivector_table) + size); ivector_table_pa = __pa(ivector_table); +} + +/* Only invoked on boot processor.*/ +void __init init_IRQ(void) +{ + irq_init_hv(); + irq_ivector_init(); + map_prom_timers(); + kill_prom_timer(); if (tlb_type == hypervisor) sun4v_init_mondo_queues(); --- linux-3.13.0.orig/arch/sparc/kernel/ktlb.S +++ linux-3.13.0/arch/sparc/kernel/ktlb.S @@ -47,14 +47,6 @@ KERN_PGTABLE_WALK(%g4, %g5, %g2, kvmap_itlb_longpath) TSB_LOCK_TAG(%g1, %g2, %g7) - - /* Load and check PTE. */ - ldxa [%g5] ASI_PHYS_USE_EC, %g5 - mov 1, %g7 - sllx %g7, TSB_TAG_INVALID_BIT, %g7 - brgez,a,pn %g5, kvmap_itlb_longpath - TSB_STORE(%g1, %g7) - TSB_WRITE(%g1, %g5, %g6) /* fallthrough to TLB load */ @@ -118,6 +110,12 @@ ba,pt %xcc, kvmap_dtlb_load nop +kvmap_linear_early: + sethi %hi(kern_linear_pte_xor), %g7 + ldx [%g7 + %lo(kern_linear_pte_xor)], %g2 + ba,pt %xcc, kvmap_dtlb_tsb4m_load + xor %g2, %g4, %g5 + .align 32 kvmap_dtlb_tsb4m_load: TSB_LOCK_TAG(%g1, %g2, %g7) @@ -146,105 +144,17 @@ /* Correct TAG_TARGET is already in %g6, check 4mb TSB. */ KERN_TSB4M_LOOKUP_TL1(%g6, %g5, %g1, %g2, %g3, kvmap_dtlb_load) #endif - /* TSB entry address left in %g1, lookup linear PTE. - * Must preserve %g1 and %g6 (TAG). - */ -kvmap_dtlb_tsb4m_miss: - /* Clear the PAGE_OFFSET top virtual bits, shift - * down to get PFN, and make sure PFN is in range. - */ -661: sllx %g4, 0, %g5 - .section .page_offset_shift_patch, "ax" - .word 661b - .previous - - /* Check to see if we know about valid memory at the 4MB - * chunk this physical address will reside within. + /* Linear mapping TSB lookup failed. Fallthrough to kernel + * page table based lookup. */ -661: srlx %g5, MAX_PHYS_ADDRESS_BITS, %g2 - .section .page_offset_shift_patch, "ax" - .word 661b - .previous - - brnz,pn %g2, kvmap_dtlb_longpath - nop - - /* This unconditional branch and delay-slot nop gets patched - * by the sethi sequence once the bitmap is properly setup. - */ - .globl valid_addr_bitmap_insn -valid_addr_bitmap_insn: - ba,pt %xcc, 2f - nop - .subsection 2 - .globl valid_addr_bitmap_patch -valid_addr_bitmap_patch: - sethi %hi(sparc64_valid_addr_bitmap), %g7 - or %g7, %lo(sparc64_valid_addr_bitmap), %g7 - .previous - -661: srlx %g5, ILOG2_4MB, %g2 - .section .page_offset_shift_patch, "ax" - .word 661b - .previous - - srlx %g2, 6, %g5 - and %g2, 63, %g2 - sllx %g5, 3, %g5 - ldx [%g7 + %g5], %g5 - mov 1, %g7 - sllx %g7, %g2, %g7 - andcc %g5, %g7, %g0 - be,pn %xcc, kvmap_dtlb_longpath - -2: sethi %hi(kpte_linear_bitmap), %g2 - - /* Get the 256MB physical address index. */ -661: sllx %g4, 0, %g5 - .section .page_offset_shift_patch, "ax" - .word 661b - .previous - - or %g2, %lo(kpte_linear_bitmap), %g2 - -661: srlx %g5, ILOG2_256MB, %g5 - .section .page_offset_shift_patch, "ax" - .word 661b - .previous - - and %g5, (32 - 1), %g7 - - /* Divide by 32 to get the offset into the bitmask. */ - srlx %g5, 5, %g5 - add %g7, %g7, %g7 - sllx %g5, 3, %g5 - - /* kern_linear_pte_xor[(mask >> shift) & 3)] */ - ldx [%g2 + %g5], %g2 - srlx %g2, %g7, %g7 - sethi %hi(kern_linear_pte_xor), %g5 - and %g7, 3, %g7 - or %g5, %lo(kern_linear_pte_xor), %g5 - sllx %g7, 3, %g7 - ldx [%g5 + %g7], %g2 - .globl kvmap_linear_patch kvmap_linear_patch: - ba,pt %xcc, kvmap_dtlb_tsb4m_load - xor %g2, %g4, %g5 + ba,a,pt %xcc, kvmap_linear_early kvmap_dtlb_vmalloc_addr: KERN_PGTABLE_WALK(%g4, %g5, %g2, kvmap_dtlb_longpath) TSB_LOCK_TAG(%g1, %g2, %g7) - - /* Load and check PTE. */ - ldxa [%g5] ASI_PHYS_USE_EC, %g5 - mov 1, %g7 - sllx %g7, TSB_TAG_INVALID_BIT, %g7 - brgez,a,pn %g5, kvmap_dtlb_longpath - TSB_STORE(%g1, %g7) - TSB_WRITE(%g1, %g5, %g6) /* fallthrough to TLB load */ @@ -276,13 +186,8 @@ #ifdef CONFIG_SPARSEMEM_VMEMMAP kvmap_vmemmap: - sub %g4, %g5, %g5 - srlx %g5, 22, %g5 - sethi %hi(vmemmap_table), %g1 - sllx %g5, 3, %g5 - or %g1, %lo(vmemmap_table), %g1 - ba,pt %xcc, kvmap_dtlb_load - ldx [%g1 + %g5], %g5 + KERN_PGTABLE_WALK(%g4, %g5, %g2, kvmap_dtlb_longpath) + ba,a,pt %xcc, kvmap_dtlb_load #endif kvmap_dtlb_nonlinear: @@ -294,8 +199,8 @@ #ifdef CONFIG_SPARSEMEM_VMEMMAP /* Do not use the TSB for vmemmap. */ - mov (VMEMMAP_BASE >> 40), %g5 - sllx %g5, 40, %g5 + sethi %hi(VMEMMAP_BASE), %g5 + ldx [%g5 + %lo(VMEMMAP_BASE)], %g5 cmp %g4,%g5 bgeu,pn %xcc, kvmap_vmemmap nop @@ -307,8 +212,8 @@ sethi %hi(MODULES_VADDR), %g5 cmp %g4, %g5 blu,pn %xcc, kvmap_dtlb_longpath - mov (VMALLOC_END >> 40), %g5 - sllx %g5, 40, %g5 + sethi %hi(VMALLOC_END), %g5 + ldx [%g5 + %lo(VMALLOC_END)], %g5 cmp %g4, %g5 bgeu,pn %xcc, kvmap_dtlb_longpath nop --- linux-3.13.0.orig/arch/sparc/kernel/ldc.c +++ linux-3.13.0/arch/sparc/kernel/ldc.c @@ -1078,7 +1078,8 @@ struct ldc_channel *ldc_alloc(unsigned long id, const struct ldc_channel_config *cfgp, - void *event_arg) + void *event_arg, + const char *name) { struct ldc_channel *lp; const struct ldc_mode_ops *mops; @@ -1093,6 +1094,8 @@ err = -EINVAL; if (!cfgp) goto out_err; + if (!name) + goto out_err; switch (cfgp->mode) { case LDC_MODE_RAW: @@ -1185,6 +1188,21 @@ INIT_HLIST_HEAD(&lp->mh_list); + snprintf(lp->rx_irq_name, LDC_IRQ_NAME_MAX, "%s RX", name); + snprintf(lp->tx_irq_name, LDC_IRQ_NAME_MAX, "%s TX", name); + + err = request_irq(lp->cfg.rx_irq, ldc_rx, 0, + lp->rx_irq_name, lp); + if (err) + goto out_free_txq; + + err = request_irq(lp->cfg.tx_irq, ldc_tx, 0, + lp->tx_irq_name, lp); + if (err) { + free_irq(lp->cfg.rx_irq, lp); + goto out_free_txq; + } + return lp; out_free_txq: @@ -1237,31 +1255,14 @@ * state. This does not initiate a handshake, ldc_connect() does * that. */ -int ldc_bind(struct ldc_channel *lp, const char *name) +int ldc_bind(struct ldc_channel *lp) { unsigned long hv_err, flags; int err = -EINVAL; - if (!name || - (lp->state != LDC_STATE_INIT)) + if (lp->state != LDC_STATE_INIT) return -EINVAL; - snprintf(lp->rx_irq_name, LDC_IRQ_NAME_MAX, "%s RX", name); - snprintf(lp->tx_irq_name, LDC_IRQ_NAME_MAX, "%s TX", name); - - err = request_irq(lp->cfg.rx_irq, ldc_rx, 0, - lp->rx_irq_name, lp); - if (err) - return err; - - err = request_irq(lp->cfg.tx_irq, ldc_tx, 0, - lp->tx_irq_name, lp); - if (err) { - free_irq(lp->cfg.rx_irq, lp); - return err; - } - - spin_lock_irqsave(&lp->lock, flags); enable_irq(lp->cfg.rx_irq); @@ -1336,7 +1337,7 @@ if (!(lp->flags & LDC_FLAG_ALLOCED_QUEUES) || !(lp->flags & LDC_FLAG_REGISTERED_QUEUES) || lp->hs_state != LDC_HS_OPEN) - err = -EINVAL; + err = ((lp->hs_state > LDC_HS_OPEN) ? 0 : -EINVAL); else err = start_handshake(lp); --- linux-3.13.0.orig/arch/sparc/kernel/nmi.c +++ linux-3.13.0/arch/sparc/kernel/nmi.c @@ -141,7 +141,6 @@ static __init void nmi_cpu_busy(void *data) { - local_irq_enable_in_hardirq(); while (endflag == 0) mb(); } --- linux-3.13.0.orig/arch/sparc/kernel/pci_schizo.c +++ linux-3.13.0/arch/sparc/kernel/pci_schizo.c @@ -581,7 +581,7 @@ { unsigned long csr_reg, csr, csr_error_bits; irqreturn_t ret = IRQ_NONE; - u16 stat; + u32 stat; csr_reg = pbm->pbm_regs + SCHIZO_PCI_CTRL; csr = upa_readq(csr_reg); @@ -617,7 +617,7 @@ pbm->name); ret = IRQ_HANDLED; } - pci_read_config_word(pbm->pci_bus->self, PCI_STATUS, &stat); + pbm->pci_ops->read(pbm->pci_bus, 0, PCI_STATUS, 2, &stat); if (stat & (PCI_STATUS_PARITY | PCI_STATUS_SIG_TARGET_ABORT | PCI_STATUS_REC_TARGET_ABORT | @@ -625,7 +625,7 @@ PCI_STATUS_SIG_SYSTEM_ERROR)) { printk("%s: PCI bus error, PCI_STATUS[%04x]\n", pbm->name, stat); - pci_write_config_word(pbm->pci_bus->self, PCI_STATUS, 0xffff); + pbm->pci_ops->write(pbm->pci_bus, 0, PCI_STATUS, 2, 0xffff); ret = IRQ_HANDLED; } return ret; --- linux-3.13.0.orig/arch/sparc/kernel/pcr.c +++ linux-3.13.0/arch/sparc/kernel/pcr.c @@ -191,12 +191,41 @@ .pcr_nmi_disable = PCR_N4_PICNPT, }; +static u64 n5_pcr_read(unsigned long reg_num) +{ + unsigned long val; + + (void) sun4v_t5_get_perfreg(reg_num, &val); + + return val; +} + +static void n5_pcr_write(unsigned long reg_num, u64 val) +{ + (void) sun4v_t5_set_perfreg(reg_num, val); +} + +static const struct pcr_ops n5_pcr_ops = { + .read_pcr = n5_pcr_read, + .write_pcr = n5_pcr_write, + .read_pic = n4_pic_read, + .write_pic = n4_pic_write, + .nmi_picl_value = n4_picl_value, + .pcr_nmi_enable = (PCR_N4_PICNPT | PCR_N4_STRACE | + PCR_N4_UTRACE | PCR_N4_TOE | + (26 << PCR_N4_SL_SHIFT)), + .pcr_nmi_disable = PCR_N4_PICNPT, +}; + + static unsigned long perf_hsvc_group; static unsigned long perf_hsvc_major; static unsigned long perf_hsvc_minor; static int __init register_perf_hsvc(void) { + unsigned long hverror; + if (tlb_type == hypervisor) { switch (sun4v_chip_type) { case SUN4V_CHIP_NIAGARA1: @@ -215,6 +244,10 @@ perf_hsvc_group = HV_GRP_VT_CPU; break; + case SUN4V_CHIP_NIAGARA5: + perf_hsvc_group = HV_GRP_T5_CPU; + break; + default: return -ENODEV; } @@ -222,10 +255,12 @@ perf_hsvc_major = 1; perf_hsvc_minor = 0; - if (sun4v_hvapi_register(perf_hsvc_group, - perf_hsvc_major, - &perf_hsvc_minor)) { - printk("perfmon: Could not register hvapi.\n"); + hverror = sun4v_hvapi_register(perf_hsvc_group, + perf_hsvc_major, + &perf_hsvc_minor); + if (hverror) { + pr_err("perfmon: Could not register hvapi(0x%lx).\n", + hverror); return -ENODEV; } } @@ -254,6 +289,10 @@ pcr_ops = &n4_pcr_ops; break; + case SUN4V_CHIP_NIAGARA5: + pcr_ops = &n5_pcr_ops; + break; + default: ret = -ENODEV; break; --- linux-3.13.0.orig/arch/sparc/kernel/perf_event.c +++ linux-3.13.0/arch/sparc/kernel/perf_event.c @@ -1662,7 +1662,8 @@ sparc_pmu = &niagara2_pmu; return true; } - if (!strcmp(sparc_pmu_type, "niagara4")) { + if (!strcmp(sparc_pmu_type, "niagara4") || + !strcmp(sparc_pmu_type, "niagara5")) { sparc_pmu = &niagara4_pmu; return true; } @@ -1671,9 +1672,12 @@ int __init init_hw_perf_events(void) { + int err; + pr_info("Performance events: "); - if (!supported_pmu()) { + err = pcr_arch_init(); + if (err || !supported_pmu()) { pr_cont("No support for PMU type '%s'\n", sparc_pmu_type); return 0; } @@ -1685,7 +1689,7 @@ return 0; } -early_initcall(init_hw_perf_events); +pure_initcall(init_hw_perf_events); void perf_callchain_kernel(struct perf_callchain_entry *entry, struct pt_regs *regs) --- linux-3.13.0.orig/arch/sparc/kernel/process_64.c +++ linux-3.13.0/arch/sparc/kernel/process_64.c @@ -58,9 +58,12 @@ { if (tlb_type != hypervisor) { touch_nmi_watchdog(); + local_irq_enable(); } else { unsigned long pstate; + local_irq_enable(); + /* The sun4v sleeping code requires that we have PSTATE.IE cleared over * the cpu sleep hypervisor call. */ @@ -82,7 +85,6 @@ : "=&r" (pstate) : "i" (PSTATE_IE)); } - local_irq_enable(); } #ifdef CONFIG_HOTPLUG_CPU @@ -304,6 +306,9 @@ struct global_pmu_snapshot *pp; int i, num; + if (!pcr_ops) + return; + pp = &global_cpu_snapshot[this_cpu].pmu; num = 1; --- linux-3.13.0.orig/arch/sparc/kernel/setup_64.c +++ linux-3.13.0/arch/sparc/kernel/setup_64.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -174,7 +175,7 @@ static struct pt_regs fake_swapper_regs = { { 0, }, 0, 0, 0, 0 }; -void __init per_cpu_patch(void) +static void __init per_cpu_patch(void) { struct cpuid_patch_entry *p; unsigned long ver; @@ -266,7 +267,7 @@ } } -void __init sun4v_patch(void) +static void __init sun4v_patch(void) { extern void sun4v_hvapi_init(void); @@ -335,14 +336,25 @@ } } -#ifdef CONFIG_SMP -void __init boot_cpu_id_too_large(int cpu) +void __init start_early_boot(void) { - prom_printf("Serious problem, boot cpu id (%d) >= NR_CPUS (%d)\n", - cpu, NR_CPUS); - prom_halt(); + int cpu; + + check_if_starfire(); + per_cpu_patch(); + sun4v_patch(); + + cpu = hard_smp_processor_id(); + if (cpu >= NR_CPUS) { + prom_printf("Serious problem, boot cpu id (%d) >= NR_CPUS (%d)\n", + cpu, NR_CPUS); + prom_halt(); + } + current_thread_info()->cpu = cpu; + + prom_init_report(); + start_kernel(); } -#endif /* On Ultra, we support all of the v8 capabilities. */ unsigned long sparc64_elf_hwcap = (HWCAP_SPARC_FLUSH | HWCAP_SPARC_STBAR | @@ -500,12 +512,16 @@ sun4v_chip_type == SUN4V_CHIP_NIAGARA3 || sun4v_chip_type == SUN4V_CHIP_NIAGARA4 || sun4v_chip_type == SUN4V_CHIP_NIAGARA5 || + sun4v_chip_type == SUN4V_CHIP_SPARC_M6 || + sun4v_chip_type == SUN4V_CHIP_SPARC_M7 || sun4v_chip_type == SUN4V_CHIP_SPARC64X) cap |= HWCAP_SPARC_BLKINIT; if (sun4v_chip_type == SUN4V_CHIP_NIAGARA2 || sun4v_chip_type == SUN4V_CHIP_NIAGARA3 || sun4v_chip_type == SUN4V_CHIP_NIAGARA4 || sun4v_chip_type == SUN4V_CHIP_NIAGARA5 || + sun4v_chip_type == SUN4V_CHIP_SPARC_M6 || + sun4v_chip_type == SUN4V_CHIP_SPARC_M7 || sun4v_chip_type == SUN4V_CHIP_SPARC64X) cap |= HWCAP_SPARC_N2; } @@ -533,6 +549,8 @@ sun4v_chip_type == SUN4V_CHIP_NIAGARA3 || sun4v_chip_type == SUN4V_CHIP_NIAGARA4 || sun4v_chip_type == SUN4V_CHIP_NIAGARA5 || + sun4v_chip_type == SUN4V_CHIP_SPARC_M6 || + sun4v_chip_type == SUN4V_CHIP_SPARC_M7 || sun4v_chip_type == SUN4V_CHIP_SPARC64X) cap |= (AV_SPARC_VIS | AV_SPARC_VIS2 | AV_SPARC_ASI_BLK_INIT | @@ -540,6 +558,8 @@ if (sun4v_chip_type == SUN4V_CHIP_NIAGARA3 || sun4v_chip_type == SUN4V_CHIP_NIAGARA4 || sun4v_chip_type == SUN4V_CHIP_NIAGARA5 || + sun4v_chip_type == SUN4V_CHIP_SPARC_M6 || + sun4v_chip_type == SUN4V_CHIP_SPARC_M7 || sun4v_chip_type == SUN4V_CHIP_SPARC64X) cap |= (AV_SPARC_VIS3 | AV_SPARC_HPC | AV_SPARC_FMAF); --- linux-3.13.0.orig/arch/sparc/kernel/smp_64.c +++ linux-3.13.0/arch/sparc/kernel/smp_64.c @@ -151,7 +151,7 @@ #define NUM_ROUNDS 64 /* magic value */ #define NUM_ITERS 5 /* likewise */ -static DEFINE_SPINLOCK(itc_sync_lock); +static DEFINE_RAW_SPINLOCK(itc_sync_lock); static unsigned long go[SLAVE + 1]; #define DEBUG_TICK_SYNC 0 @@ -259,7 +259,7 @@ go[MASTER] = 0; membar_safe("#StoreLoad"); - spin_lock_irqsave(&itc_sync_lock, flags); + raw_spin_lock_irqsave(&itc_sync_lock, flags); { for (i = 0; i < NUM_ROUNDS*NUM_ITERS; i++) { while (!go[MASTER]) @@ -270,7 +270,7 @@ membar_safe("#StoreLoad"); } } - spin_unlock_irqrestore(&itc_sync_lock, flags); + raw_spin_unlock_irqrestore(&itc_sync_lock, flags); } #if defined(CONFIG_SUN_LDOMS) && defined(CONFIG_HOTPLUG_CPU) @@ -823,13 +823,17 @@ void __irq_entry smp_call_function_client(int irq, struct pt_regs *regs) { clear_softint(1 << irq); + irq_enter(); generic_smp_call_function_interrupt(); + irq_exit(); } void __irq_entry smp_call_function_single_client(int irq, struct pt_regs *regs) { clear_softint(1 << irq); + irq_enter(); generic_smp_call_function_single_interrupt(); + irq_exit(); } static void tsb_sync(void *info) @@ -1395,7 +1399,6 @@ void __init smp_cpus_done(unsigned int max_cpus) { - pcr_arch_init(); } void smp_send_reschedule(int cpu) @@ -1480,6 +1483,13 @@ pud_t *pud; pmd_t *pmd; + if (pgd_none(*pgd)) { + pud_t *new; + + new = __alloc_bootmem(PAGE_SIZE, PAGE_SIZE, PAGE_SIZE); + pgd_populate(&init_mm, pgd, new); + } + pud = pud_offset(pgd, addr); if (pud_none(*pud)) { pmd_t *new; --- linux-3.13.0.orig/arch/sparc/kernel/sun4v_tlb_miss.S +++ linux-3.13.0/arch/sparc/kernel/sun4v_tlb_miss.S @@ -195,6 +195,11 @@ ldx [%g2 + TRAP_PER_CPU_PGD_PADDR], %g7 sun4v_itlb_error: + rdpr %tl, %g1 + cmp %g1, 1 + ble,pt %icc, sun4v_bad_ra + or %g0, FAULT_CODE_BAD_RA | FAULT_CODE_ITLB, %g1 + sethi %hi(sun4v_err_itlb_vaddr), %g1 stx %g4, [%g1 + %lo(sun4v_err_itlb_vaddr)] sethi %hi(sun4v_err_itlb_ctx), %g1 @@ -206,15 +211,10 @@ sethi %hi(sun4v_err_itlb_error), %g1 stx %o0, [%g1 + %lo(sun4v_err_itlb_error)] + sethi %hi(1f), %g7 rdpr %tl, %g4 - cmp %g4, 1 - ble,pt %icc, 1f - sethi %hi(2f), %g7 ba,pt %xcc, etraptl1 - or %g7, %lo(2f), %g7 - -1: ba,pt %xcc, etrap -2: or %g7, %lo(2b), %g7 +1: or %g7, %lo(1f), %g7 mov %l4, %o1 call sun4v_itlb_error_report add %sp, PTREGS_OFF, %o0 @@ -222,6 +222,11 @@ /* NOTREACHED */ sun4v_dtlb_error: + rdpr %tl, %g1 + cmp %g1, 1 + ble,pt %icc, sun4v_bad_ra + or %g0, FAULT_CODE_BAD_RA | FAULT_CODE_DTLB, %g1 + sethi %hi(sun4v_err_dtlb_vaddr), %g1 stx %g4, [%g1 + %lo(sun4v_err_dtlb_vaddr)] sethi %hi(sun4v_err_dtlb_ctx), %g1 @@ -233,21 +238,23 @@ sethi %hi(sun4v_err_dtlb_error), %g1 stx %o0, [%g1 + %lo(sun4v_err_dtlb_error)] + sethi %hi(1f), %g7 rdpr %tl, %g4 - cmp %g4, 1 - ble,pt %icc, 1f - sethi %hi(2f), %g7 ba,pt %xcc, etraptl1 - or %g7, %lo(2f), %g7 - -1: ba,pt %xcc, etrap -2: or %g7, %lo(2b), %g7 +1: or %g7, %lo(1f), %g7 mov %l4, %o1 call sun4v_dtlb_error_report add %sp, PTREGS_OFF, %o0 /* NOTREACHED */ +sun4v_bad_ra: + or %g0, %g4, %g5 + ba,pt %xcc, sparc64_realfault_common + or %g1, %g0, %g4 + + /* NOTREACHED */ + /* Instruction Access Exception, tl0. */ sun4v_iacc: ldxa [%g0] ASI_SCRATCHPAD, %g2 --- linux-3.13.0.orig/arch/sparc/kernel/sys32.S +++ linux-3.13.0/arch/sparc/kernel/sys32.S @@ -44,7 +44,7 @@ SIGN1(sys32_io_submit, compat_sys_io_submit, %o1) SIGN1(sys32_mq_open, compat_sys_mq_open, %o1) SIGN1(sys32_select, compat_sys_select, %o0) -SIGN3(sys32_futex, compat_sys_futex, %o1, %o2, %o5) +SIGN1(sys32_futex, compat_sys_futex, %o1) SIGN1(sys32_recvfrom, compat_sys_recvfrom, %o0) SIGN1(sys32_recvmsg, compat_sys_recvmsg, %o0) SIGN1(sys32_sendmsg, compat_sys_sendmsg, %o0) --- linux-3.13.0.orig/arch/sparc/kernel/syscalls.S +++ linux-3.13.0/arch/sparc/kernel/syscalls.S @@ -189,7 +189,8 @@ mov %i0, %l5 ! IEU1 5: call %l7 ! CTI Group brk forced srl %i5, 0, %o5 ! IEU1 - ba,a,pt %xcc, 3f + ba,pt %xcc, 3f + sra %o0, 0, %o0 /* Linux native system calls enter here... */ .align 32 @@ -217,7 +218,6 @@ 3: stx %o0, [%sp + PTREGS_OFF + PT_V9_I0] ret_sys_call: ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %g3 - sra %o0, 0, %o0 mov %ulo(TSTATE_XCARRY | TSTATE_ICARRY), %g2 sllx %g2, 32, %g2 --- linux-3.13.0.orig/arch/sparc/kernel/trampoline_64.S +++ linux-3.13.0/arch/sparc/kernel/trampoline_64.S @@ -110,10 +110,13 @@ brnz,pn %g1, 1b nop - sethi %hi(p1275buf), %g2 - or %g2, %lo(p1275buf), %g2 - ldx [%g2 + 0x10], %l2 - add %l2, -(192 + 128), %sp + /* Get onto temporary stack which will be in the locked + * kernel image. + */ + sethi %hi(tramp_stack), %g1 + or %g1, %lo(tramp_stack), %g1 + add %g1, TRAMP_STACK_SIZE, %g1 + sub %g1, STACKFRAME_SZ + STACK_BIAS + 256, %sp flushw /* Setup the loop variables: @@ -395,7 +398,6 @@ sllx %g5, THREAD_SHIFT, %g5 sub %g5, (STACKFRAME_SZ + STACK_BIAS), %g5 add %g6, %g5, %sp - mov 0, %fp rdpr %pstate, %o1 or %o1, PSTATE_IE, %o1 --- linux-3.13.0.orig/arch/sparc/kernel/traps_64.c +++ linux-3.13.0/arch/sparc/kernel/traps_64.c @@ -2102,6 +2102,11 @@ atomic_inc(&sun4v_nonresum_oflow_cnt); } +static void sun4v_tlb_error(struct pt_regs *regs) +{ + die_if_kernel("TLB/TSB error", regs); +} + unsigned long sun4v_err_itlb_vaddr; unsigned long sun4v_err_itlb_ctx; unsigned long sun4v_err_itlb_pte; @@ -2109,8 +2114,7 @@ void sun4v_itlb_error_report(struct pt_regs *regs, int tl) { - if (tl > 1) - dump_tl1_traplog((struct tl1_traplog *)(regs + 1)); + dump_tl1_traplog((struct tl1_traplog *)(regs + 1)); printk(KERN_EMERG "SUN4V-ITLB: Error at TPC[%lx], tl %d\n", regs->tpc, tl); @@ -2123,7 +2127,7 @@ sun4v_err_itlb_vaddr, sun4v_err_itlb_ctx, sun4v_err_itlb_pte, sun4v_err_itlb_error); - prom_halt(); + sun4v_tlb_error(regs); } unsigned long sun4v_err_dtlb_vaddr; @@ -2133,8 +2137,7 @@ void sun4v_dtlb_error_report(struct pt_regs *regs, int tl) { - if (tl > 1) - dump_tl1_traplog((struct tl1_traplog *)(regs + 1)); + dump_tl1_traplog((struct tl1_traplog *)(regs + 1)); printk(KERN_EMERG "SUN4V-DTLB: Error at TPC[%lx], tl %d\n", regs->tpc, tl); @@ -2147,7 +2150,7 @@ sun4v_err_dtlb_vaddr, sun4v_err_dtlb_ctx, sun4v_err_dtlb_pte, sun4v_err_dtlb_error); - prom_halt(); + sun4v_tlb_error(regs); } void hypervisor_tlbop_error(unsigned long err, unsigned long op) --- linux-3.13.0.orig/arch/sparc/kernel/tsb.S +++ linux-3.13.0/arch/sparc/kernel/tsb.S @@ -162,10 +162,10 @@ nop .previous - rdpr %tl, %g3 - cmp %g3, 1 + rdpr %tl, %g7 + cmp %g7, 1 bne,pn %xcc, winfix_trampoline - nop + mov %g3, %g4 ba,pt %xcc, etrap rd %pc, %g7 call hugetlb_setup --- linux-3.13.0.orig/arch/sparc/kernel/unaligned_64.c +++ linux-3.13.0/arch/sparc/kernel/unaligned_64.c @@ -166,17 +166,23 @@ unsigned long compute_effective_address(struct pt_regs *regs, unsigned int insn, unsigned int rd) { + int from_kernel = (regs->tstate & TSTATE_PRIV) != 0; unsigned int rs1 = (insn >> 14) & 0x1f; unsigned int rs2 = insn & 0x1f; - int from_kernel = (regs->tstate & TSTATE_PRIV) != 0; + unsigned long addr; if (insn & 0x2000) { maybe_flush_windows(rs1, 0, rd, from_kernel); - return (fetch_reg(rs1, regs) + sign_extend_imm13(insn)); + addr = (fetch_reg(rs1, regs) + sign_extend_imm13(insn)); } else { maybe_flush_windows(rs1, rs2, rd, from_kernel); - return (fetch_reg(rs1, regs) + fetch_reg(rs2, regs)); + addr = (fetch_reg(rs1, regs) + fetch_reg(rs2, regs)); } + + if (!from_kernel && test_thread_flag(TIF_32BIT)) + addr &= 0xffffffff; + + return addr; } /* This is just to make gcc think die_if_kernel does return... */ --- linux-3.13.0.orig/arch/sparc/kernel/viohs.c +++ linux-3.13.0/arch/sparc/kernel/viohs.c @@ -714,7 +714,7 @@ cfg.tx_irq = vio->vdev->tx_irq; cfg.rx_irq = vio->vdev->rx_irq; - lp = ldc_alloc(vio->vdev->channel_id, &cfg, event_arg); + lp = ldc_alloc(vio->vdev->channel_id, &cfg, event_arg, vio->name); if (IS_ERR(lp)) return PTR_ERR(lp); @@ -746,7 +746,7 @@ err = 0; if (state == LDC_STATE_INIT) { - err = ldc_bind(vio->lp, vio->name); + err = ldc_bind(vio->lp); if (err) printk(KERN_WARNING "%s: Port %lu bind failed, " "err=%d\n", --- linux-3.13.0.orig/arch/sparc/kernel/vmlinux.lds.S +++ linux-3.13.0/arch/sparc/kernel/vmlinux.lds.S @@ -35,8 +35,9 @@ SECTIONS { - /* swapper_low_pmd_dir is sparc64 only */ - swapper_low_pmd_dir = 0x0000000000402000; +#ifdef CONFIG_SPARC64 + swapper_pg_dir = 0x0000000000402000; +#endif . = INITIAL_ADDRESS; .text TEXTSTART : { @@ -122,11 +123,6 @@ *(.swapper_4m_tsb_phys_patch) __swapper_4m_tsb_phys_patch_end = .; } - .page_offset_shift_patch : { - __page_offset_shift_patch = .; - *(.page_offset_shift_patch) - __page_offset_shift_patch_end = .; - } .popc_3insn_patch : { __popc_3insn_patch = .; *(.popc_3insn_patch) --- linux-3.13.0.orig/arch/sparc/lib/NG2memcpy.S +++ linux-3.13.0/arch/sparc/lib/NG2memcpy.S @@ -236,6 +236,7 @@ */ VISEntryHalf + membar #Sync alignaddr %o1, %g0, %g0 add %o1, (64 - 1), %o4 --- linux-3.13.0.orig/arch/sparc/lib/NG4memcpy.S +++ linux-3.13.0/arch/sparc/lib/NG4memcpy.S @@ -41,6 +41,10 @@ #endif #endif +#if !defined(EX_LD) && !defined(EX_ST) +#define NON_USER_COPY +#endif + #ifndef EX_LD #define EX_LD(x) x #endif @@ -197,9 +201,13 @@ mov EX_RETVAL(%o3), %o0 .Llarge_src_unaligned: +#ifdef NON_USER_COPY + VISEntryHalfFast(.Lmedium_vis_entry_fail) +#else + VISEntryHalf +#endif andn %o2, 0x3f, %o4 sub %o2, %o4, %o2 - VISEntryHalf alignaddr %o1, %g0, %g1 add %o1, %o4, %o1 EX_LD(LOAD(ldd, %g1 + 0x00, %f0)) @@ -240,6 +248,10 @@ nop ba,a,pt %icc, .Lmedium_unaligned +#ifdef NON_USER_COPY +.Lmedium_vis_entry_fail: + or %o0, %o1, %g2 +#endif .Lmedium: LOAD(prefetch, %o1 + 0x40, #n_reads_strong) andcc %g2, 0x7, %g0 --- linux-3.13.0.orig/arch/sparc/lib/atomic32.c +++ linux-3.13.0/arch/sparc/lib/atomic32.c @@ -40,6 +40,19 @@ } EXPORT_SYMBOL(__atomic_add_return); +int atomic_xchg(atomic_t *v, int new) +{ + int ret; + unsigned long flags; + + spin_lock_irqsave(ATOMIC_HASH(v), flags); + ret = v->counter; + v->counter = new; + spin_unlock_irqrestore(ATOMIC_HASH(v), flags); + return ret; +} +EXPORT_SYMBOL(atomic_xchg); + int atomic_cmpxchg(atomic_t *v, int old, int new) { int ret; @@ -132,3 +145,17 @@ return (unsigned long)prev; } EXPORT_SYMBOL(__cmpxchg_u32); + +unsigned long __xchg_u32(volatile u32 *ptr, u32 new) +{ + unsigned long flags; + u32 prev; + + spin_lock_irqsave(ATOMIC_HASH(ptr), flags); + prev = *ptr; + *ptr = new; + spin_unlock_irqrestore(ATOMIC_HASH(ptr), flags); + + return (unsigned long)prev; +} +EXPORT_SYMBOL(__xchg_u32); --- linux-3.13.0.orig/arch/sparc/lib/memset.S +++ linux-3.13.0/arch/sparc/lib/memset.S @@ -3,8 +3,9 @@ * Copyright (C) 1996,1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz) * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu) * - * Returns 0, if ok, and number of bytes not yet set if exception - * occurs and we were called as clear_user. + * Calls to memset returns initial %o0. Calls to bzero returns 0, if ok, and + * number of bytes not yet set if exception occurs and we were called as + * clear_user. */ #include @@ -65,6 +66,8 @@ .globl __memset_start, __memset_end __memset_start: memset: + mov %o0, %g1 + mov 1, %g4 and %o1, 0xff, %g3 sll %g3, 8, %g2 or %g3, %g2, %g3 @@ -89,6 +92,7 @@ sub %o0, %o2, %o0 __bzero: + clr %g4 mov %g0, %g3 1: cmp %o1, 7 @@ -151,8 +155,8 @@ bne,a 8f EX(stb %g3, [%o0], and %o1, 1) 8: - retl - clr %o0 + b 0f + nop 7: be 13b orcc %o1, 0, %g0 @@ -164,6 +168,12 @@ bne 8b EX(stb %g3, [%o0 - 1], add %o1, 1) 0: + andcc %g4, 1, %g0 + be 5f + nop + retl + mov %g1, %o0 +5: retl clr %o0 __memset_end: --- linux-3.13.0.orig/arch/sparc/math-emu/math_32.c +++ linux-3.13.0/arch/sparc/math-emu/math_32.c @@ -499,7 +499,7 @@ case 0: fsr = *pfsr; if (IR == -1) IR = 2; /* fcc is always fcc0 */ - fsr &= ~0xc00; fsr |= (IR << 10); break; + fsr &= ~0xc00; fsr |= (IR << 10); *pfsr = fsr; break; case 1: rd->s = IR; break; --- linux-3.13.0.orig/arch/sparc/mm/fault_64.c +++ linux-3.13.0/arch/sparc/mm/fault_64.c @@ -96,38 +96,51 @@ pte_t *ptep, pte; unsigned long pa; u32 insn = 0; - unsigned long pstate; - if (pgd_none(*pgdp)) - goto outret; + if (pgd_none(*pgdp) || unlikely(pgd_bad(*pgdp))) + goto out; pudp = pud_offset(pgdp, tpc); - if (pud_none(*pudp)) - goto outret; - pmdp = pmd_offset(pudp, tpc); - if (pmd_none(*pmdp)) - goto outret; - - /* This disables preemption for us as well. */ - __asm__ __volatile__("rdpr %%pstate, %0" : "=r" (pstate)); - __asm__ __volatile__("wrpr %0, %1, %%pstate" - : : "r" (pstate), "i" (PSTATE_IE)); - ptep = pte_offset_map(pmdp, tpc); - pte = *ptep; - if (!pte_present(pte)) + if (pud_none(*pudp) || unlikely(pud_bad(*pudp))) goto out; - pa = (pte_pfn(pte) << PAGE_SHIFT); - pa += (tpc & ~PAGE_MASK); + /* This disables preemption for us as well. */ + local_irq_disable(); - /* Use phys bypass so we don't pollute dtlb/dcache. */ - __asm__ __volatile__("lduwa [%1] %2, %0" - : "=r" (insn) - : "r" (pa), "i" (ASI_PHYS_USE_EC)); + pmdp = pmd_offset(pudp, tpc); + if (pmd_none(*pmdp) || unlikely(pmd_bad(*pmdp))) + goto out_irq_enable; +#ifdef CONFIG_TRANSPARENT_HUGEPAGE + if (pmd_trans_huge(*pmdp)) { + if (pmd_trans_splitting(*pmdp)) + goto out_irq_enable; + + pa = pmd_pfn(*pmdp) << PAGE_SHIFT; + pa += tpc & ~HPAGE_MASK; + + /* Use phys bypass so we don't pollute dtlb/dcache. */ + __asm__ __volatile__("lduwa [%1] %2, %0" + : "=r" (insn) + : "r" (pa), "i" (ASI_PHYS_USE_EC)); + } else +#endif + { + ptep = pte_offset_map(pmdp, tpc); + pte = *ptep; + if (pte_present(pte)) { + pa = (pte_pfn(pte) << PAGE_SHIFT); + pa += (tpc & ~PAGE_MASK); + + /* Use phys bypass so we don't pollute dtlb/dcache. */ + __asm__ __volatile__("lduwa [%1] %2, %0" + : "=r" (insn) + : "r" (pa), "i" (ASI_PHYS_USE_EC)); + } + pte_unmap(ptep); + } +out_irq_enable: + local_irq_enable(); out: - pte_unmap(ptep); - __asm__ __volatile__("wrpr %0, 0x0, %%pstate" : : "r" (pstate)); -outret: return insn; } @@ -153,7 +166,8 @@ } static void do_fault_siginfo(int code, int sig, struct pt_regs *regs, - unsigned int insn, int fault_code) + unsigned long fault_addr, unsigned int insn, + int fault_code) { unsigned long addr; siginfo_t info; @@ -161,10 +175,18 @@ info.si_code = code; info.si_signo = sig; info.si_errno = 0; - if (fault_code & FAULT_CODE_ITLB) + if (fault_code & FAULT_CODE_ITLB) { addr = regs->tpc; - else - addr = compute_effective_address(regs, insn, 0); + } else { + /* If we were able to probe the faulting instruction, use it + * to compute a precise fault address. Otherwise use the fault + * time provided address which may only have page granularity. + */ + if (insn) + addr = compute_effective_address(regs, insn, 0); + else + addr = fault_addr; + } info.si_addr = (void __user *) addr; info.si_trapno = 0; @@ -239,7 +261,7 @@ /* The si_code was set to make clear whether * this was a SEGV_MAPERR or SEGV_ACCERR fault. */ - do_fault_siginfo(si_code, SIGSEGV, regs, insn, fault_code); + do_fault_siginfo(si_code, SIGSEGV, regs, address, insn, fault_code); return; } @@ -259,18 +281,6 @@ show_regs(regs); } -static void noinline __kprobes bogus_32bit_fault_address(struct pt_regs *regs, - unsigned long addr) -{ - static int times; - - if (times++ < 10) - printk(KERN_ERR "FAULT[%s:%d]: 32-bit process " - "reports 64-bit fault address [%lx]\n", - current->comm, current->pid, addr); - show_regs(regs); -} - asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs) { enum ctx_state prev_state = exception_enter(); @@ -300,10 +310,8 @@ goto intr_or_no_mm; } } - if (unlikely((address >> 32) != 0)) { - bogus_32bit_fault_address(regs, address); + if (unlikely((address >> 32) != 0)) goto intr_or_no_mm; - } } if (regs->tstate & TSTATE_PRIV) { @@ -340,6 +348,9 @@ down_read(&mm->mmap_sem); } + if (fault_code & FAULT_CODE_BAD_RA) + goto do_sigbus; + vma = find_vma(mm, address); if (!vma) goto bad_area; @@ -525,7 +536,7 @@ * Send a sigbus, regardless of whether we were in kernel * or user mode. */ - do_fault_siginfo(BUS_ADRERR, SIGBUS, regs, insn, fault_code); + do_fault_siginfo(BUS_ADRERR, SIGBUS, regs, address, insn, fault_code); /* Kernel mode? Handle exceptions or die */ if (regs->tstate & TSTATE_PRIV) --- linux-3.13.0.orig/arch/sparc/mm/gup.c +++ linux-3.13.0/arch/sparc/mm/gup.c @@ -73,7 +73,7 @@ struct page *head, *page, *tail; int refs; - if (!pmd_large(pmd)) + if (!(pmd_val(pmd) & _PAGE_VALID)) return 0; if (write && !pmd_write(pmd)) @@ -160,6 +160,36 @@ return 1; } +int __get_user_pages_fast(unsigned long start, int nr_pages, int write, + struct page **pages) +{ + struct mm_struct *mm = current->mm; + unsigned long addr, len, end; + unsigned long next, flags; + pgd_t *pgdp; + int nr = 0; + + start &= PAGE_MASK; + addr = start; + len = (unsigned long) nr_pages << PAGE_SHIFT; + end = start + len; + + local_irq_save(flags); + pgdp = pgd_offset(mm, addr); + do { + pgd_t pgd = *pgdp; + + next = pgd_addr_end(addr, end); + if (pgd_none(pgd)) + break; + if (!gup_pud_range(pgd, addr, next, write, pages, &nr)) + break; + } while (pgdp++, addr = next, addr != end); + local_irq_restore(flags); + + return nr; +} + int get_user_pages_fast(unsigned long start, int nr_pages, int write, struct page **pages) { --- linux-3.13.0.orig/arch/sparc/mm/hugetlbpage.c +++ linux-3.13.0/arch/sparc/mm/hugetlbpage.c @@ -232,11 +232,6 @@ return 0; } -int pmd_huge_support(void) -{ - return 0; -} - struct page *follow_huge_pmd(struct mm_struct *mm, unsigned long address, pmd_t *pmd, int write) { --- linux-3.13.0.orig/arch/sparc/mm/init_64.c +++ linux-3.13.0/arch/sparc/mm/init_64.c @@ -73,7 +73,6 @@ * 'cpu' properties, but we need to have this table setup before the * MDESC is initialized. */ -unsigned long kpte_linear_bitmap[KPTE_BITMAP_BYTES / sizeof(unsigned long)]; #ifndef CONFIG_DEBUG_PAGEALLOC /* A special kernel TSB for 4MB, 256MB, 2GB and 16GB linear mappings. @@ -82,10 +81,11 @@ */ extern struct tsb swapper_4m_tsb[KERNEL_TSB4M_NENTRIES]; #endif +extern struct tsb swapper_tsb[KERNEL_TSB_NENTRIES]; static unsigned long cpu_pgsz_mask; -#define MAX_BANKS 32 +#define MAX_BANKS 1024 static struct linux_prom64_registers pavail[MAX_BANKS]; static int pavail_ents; @@ -163,10 +163,6 @@ cmp_p64, NULL); } -unsigned long sparc64_valid_addr_bitmap[VALID_ADDR_BITMAP_BYTES / - sizeof(unsigned long)]; -EXPORT_SYMBOL(sparc64_valid_addr_bitmap); - /* Kernel physical address base and size in bytes. */ unsigned long kern_base __read_mostly; unsigned long kern_size __read_mostly; @@ -350,6 +346,10 @@ mm = vma->vm_mm; + /* Don't insert a non-valid PTE into the TSB, we'll deadlock. */ + if (!pte_accessible(mm, pte)) + return; + spin_lock_irqsave(&mm->context.lock, flags); #if defined(CONFIG_HUGETLB_PAGE) || defined(CONFIG_TRANSPARENT_HUGEPAGE) @@ -588,7 +588,7 @@ int i, tlb_ent = sparc64_highest_locked_tlbent(); tte_vaddr = (unsigned long) KERNBASE; - phys_page = (prom_boot_mapping_phys_low >> 22UL) << 22UL; + phys_page = (prom_boot_mapping_phys_low >> ILOG2_4MB) << ILOG2_4MB; tte_data = kern_large_tte(phys_page); kern_locked_tte_data = tte_data; @@ -834,7 +834,10 @@ if ((addr & p->mask) == p->val) return i; } - return -1; + /* The following condition has been observed on LDOM guests.*/ + WARN_ONCE(1, "find_node: A physical address doesn't match a NUMA node" + " rule. Some physical memory will be owned by node 0."); + return 0; } static u64 memblock_nid_range(u64 start, u64 end, int *nid) @@ -1355,9 +1358,144 @@ static struct linux_prom64_registers pall[MAX_BANKS] __initdata; static int pall_ents __initdata; -#ifdef CONFIG_DEBUG_PAGEALLOC +static unsigned long max_phys_bits = 40; + +bool kern_addr_valid(unsigned long addr) +{ + pgd_t *pgd; + pud_t *pud; + pmd_t *pmd; + pte_t *pte; + + if ((long)addr < 0L) { + unsigned long pa = __pa(addr); + + if ((addr >> max_phys_bits) != 0UL) + return false; + + return pfn_valid(pa >> PAGE_SHIFT); + } + + if (addr >= (unsigned long) KERNBASE && + addr < (unsigned long)&_end) + return true; + + pgd = pgd_offset_k(addr); + if (pgd_none(*pgd)) + return 0; + + pud = pud_offset(pgd, addr); + if (pud_none(*pud)) + return 0; + + if (pud_large(*pud)) + return pfn_valid(pud_pfn(*pud)); + + pmd = pmd_offset(pud, addr); + if (pmd_none(*pmd)) + return 0; + + if (pmd_large(*pmd)) + return pfn_valid(pmd_pfn(*pmd)); + + pte = pte_offset_kernel(pmd, addr); + if (pte_none(*pte)) + return 0; + + return pfn_valid(pte_pfn(*pte)); +} +EXPORT_SYMBOL(kern_addr_valid); + +static unsigned long __ref kernel_map_hugepud(unsigned long vstart, + unsigned long vend, + pud_t *pud) +{ + const unsigned long mask16gb = (1UL << 34) - 1UL; + u64 pte_val = vstart; + + /* Each PUD is 8GB */ + if ((vstart & mask16gb) || + (vend - vstart <= mask16gb)) { + pte_val ^= kern_linear_pte_xor[2]; + pud_val(*pud) = pte_val | _PAGE_PUD_HUGE; + + return vstart + PUD_SIZE; + } + + pte_val ^= kern_linear_pte_xor[3]; + pte_val |= _PAGE_PUD_HUGE; + + vend = vstart + mask16gb + 1UL; + while (vstart < vend) { + pud_val(*pud) = pte_val; + + pte_val += PUD_SIZE; + vstart += PUD_SIZE; + pud++; + } + return vstart; +} + +static bool kernel_can_map_hugepud(unsigned long vstart, unsigned long vend, + bool guard) +{ + if (guard && !(vstart & ~PUD_MASK) && (vend - vstart) >= PUD_SIZE) + return true; + + return false; +} + +static unsigned long __ref kernel_map_hugepmd(unsigned long vstart, + unsigned long vend, + pmd_t *pmd) +{ + const unsigned long mask256mb = (1UL << 28) - 1UL; + const unsigned long mask2gb = (1UL << 31) - 1UL; + u64 pte_val = vstart; + + /* Each PMD is 8MB */ + if ((vstart & mask256mb) || + (vend - vstart <= mask256mb)) { + pte_val ^= kern_linear_pte_xor[0]; + pmd_val(*pmd) = pte_val | _PAGE_PMD_HUGE; + + return vstart + PMD_SIZE; + } + + if ((vstart & mask2gb) || + (vend - vstart <= mask2gb)) { + pte_val ^= kern_linear_pte_xor[1]; + pte_val |= _PAGE_PMD_HUGE; + vend = vstart + mask256mb + 1UL; + } else { + pte_val ^= kern_linear_pte_xor[2]; + pte_val |= _PAGE_PMD_HUGE; + vend = vstart + mask2gb + 1UL; + } + + while (vstart < vend) { + pmd_val(*pmd) = pte_val; + + pte_val += PMD_SIZE; + vstart += PMD_SIZE; + pmd++; + } + + return vstart; +} + +static bool kernel_can_map_hugepmd(unsigned long vstart, unsigned long vend, + bool guard) +{ + if (guard && !(vstart & ~PMD_MASK) && (vend - vstart) >= PMD_SIZE) + return true; + + return false; +} + static unsigned long __ref kernel_map_range(unsigned long pstart, - unsigned long pend, pgprot_t prot) + unsigned long pend, pgprot_t prot, + bool use_huge) { unsigned long vstart = PAGE_OFFSET + pstart; unsigned long vend = PAGE_OFFSET + pend; @@ -1376,19 +1514,34 @@ pmd_t *pmd; pte_t *pte; + if (pgd_none(*pgd)) { + pud_t *new; + + new = __alloc_bootmem(PAGE_SIZE, PAGE_SIZE, PAGE_SIZE); + alloc_bytes += PAGE_SIZE; + pgd_populate(&init_mm, pgd, new); + } pud = pud_offset(pgd, vstart); if (pud_none(*pud)) { pmd_t *new; + if (kernel_can_map_hugepud(vstart, vend, use_huge)) { + vstart = kernel_map_hugepud(vstart, vend, pud); + continue; + } new = __alloc_bootmem(PAGE_SIZE, PAGE_SIZE, PAGE_SIZE); alloc_bytes += PAGE_SIZE; pud_populate(&init_mm, pud, new); } pmd = pmd_offset(pud, vstart); - if (!pmd_present(*pmd)) { + if (pmd_none(*pmd)) { pte_t *new; + if (kernel_can_map_hugepmd(vstart, vend, use_huge)) { + vstart = kernel_map_hugepmd(vstart, vend, pmd); + continue; + } new = __alloc_bootmem(PAGE_SIZE, PAGE_SIZE, PAGE_SIZE); alloc_bytes += PAGE_SIZE; pmd_populate_kernel(&init_mm, pmd, new); @@ -1411,100 +1564,34 @@ return alloc_bytes; } -extern unsigned int kvmap_linear_patch[1]; -#endif /* CONFIG_DEBUG_PAGEALLOC */ - -static void __init kpte_set_val(unsigned long index, unsigned long val) -{ - unsigned long *ptr = kpte_linear_bitmap; - - val <<= ((index % (BITS_PER_LONG / 2)) * 2); - ptr += (index / (BITS_PER_LONG / 2)); - - *ptr |= val; -} - -static const unsigned long kpte_shift_min = 28; /* 256MB */ -static const unsigned long kpte_shift_max = 34; /* 16GB */ -static const unsigned long kpte_shift_incr = 3; - -static unsigned long kpte_mark_using_shift(unsigned long start, unsigned long end, - unsigned long shift) +static void __init flush_all_kernel_tsbs(void) { - unsigned long size = (1UL << shift); - unsigned long mask = (size - 1UL); - unsigned long remains = end - start; - unsigned long val; - - if (remains < size || (start & mask)) - return start; - - /* VAL maps: - * - * shift 28 --> kern_linear_pte_xor index 1 - * shift 31 --> kern_linear_pte_xor index 2 - * shift 34 --> kern_linear_pte_xor index 3 - */ - val = ((shift - kpte_shift_min) / kpte_shift_incr) + 1; - - remains &= ~mask; - if (shift != kpte_shift_max) - remains = size; - - while (remains) { - unsigned long index = start >> kpte_shift_min; + int i; - kpte_set_val(index, val); + for (i = 0; i < KERNEL_TSB_NENTRIES; i++) { + struct tsb *ent = &swapper_tsb[i]; - start += 1UL << kpte_shift_min; - remains -= 1UL << kpte_shift_min; + ent->tag = (1UL << TSB_TAG_INVALID_BIT); } +#ifndef CONFIG_DEBUG_PAGEALLOC + for (i = 0; i < KERNEL_TSB4M_NENTRIES; i++) { + struct tsb *ent = &swapper_4m_tsb[i]; - return start; -} - -static void __init mark_kpte_bitmap(unsigned long start, unsigned long end) -{ - unsigned long smallest_size, smallest_mask; - unsigned long s; - - smallest_size = (1UL << kpte_shift_min); - smallest_mask = (smallest_size - 1UL); - - while (start < end) { - unsigned long orig_start = start; - - for (s = kpte_shift_max; s >= kpte_shift_min; s -= kpte_shift_incr) { - start = kpte_mark_using_shift(start, end, s); - - if (start != orig_start) - break; - } - - if (start == orig_start) - start = (start + smallest_size) & ~smallest_mask; + ent->tag = (1UL << TSB_TAG_INVALID_BIT); } +#endif } -static void __init init_kpte_bitmap(void) -{ - unsigned long i; - - for (i = 0; i < pall_ents; i++) { - unsigned long phys_start, phys_end; - - phys_start = pall[i].phys_addr; - phys_end = phys_start + pall[i].reg_size; - - mark_kpte_bitmap(phys_start, phys_end); - } -} +extern unsigned int kvmap_linear_patch[1]; static void __init kernel_physical_mapping_init(void) { -#ifdef CONFIG_DEBUG_PAGEALLOC unsigned long i, mem_alloced = 0UL; + bool use_huge = true; +#ifdef CONFIG_DEBUG_PAGEALLOC + use_huge = false; +#endif for (i = 0; i < pall_ents; i++) { unsigned long phys_start, phys_end; @@ -1512,7 +1599,7 @@ phys_end = phys_start + pall[i].reg_size; mem_alloced += kernel_map_range(phys_start, phys_end, - PAGE_KERNEL); + PAGE_KERNEL, use_huge); } printk("Allocated %ld bytes for kernel page tables.\n", @@ -1521,8 +1608,9 @@ kvmap_linear_patch[0] = 0x01000000; /* nop */ flushi(&kvmap_linear_patch[0]); + flush_all_kernel_tsbs(); + __flush_tlb_all(); -#endif } #ifdef CONFIG_DEBUG_PAGEALLOC @@ -1532,7 +1620,7 @@ unsigned long phys_end = phys_start + (numpages * PAGE_SIZE); kernel_map_range(phys_start, phys_end, - (enable ? PAGE_KERNEL : __pgprot(0))); + (enable ? PAGE_KERNEL : __pgprot(0)), false); flush_tsb_kernel_range(PAGE_OFFSET + phys_start, PAGE_OFFSET + phys_end); @@ -1560,76 +1648,56 @@ unsigned long PAGE_OFFSET; EXPORT_SYMBOL(PAGE_OFFSET); -static void __init page_offset_shift_patch_one(unsigned int *insn, unsigned long phys_bits) -{ - unsigned long final_shift; - unsigned int val = *insn; - unsigned int cnt; - - /* We are patching in ilog2(max_supported_phys_address), and - * we are doing so in a manner similar to a relocation addend. - * That is, we are adding the shift value to whatever value - * is in the shift instruction count field already. - */ - cnt = (val & 0x3f); - val &= ~0x3f; - - /* If we are trying to shift >= 64 bits, clear the destination - * register. This can happen when phys_bits ends up being equal - * to MAX_PHYS_ADDRESS_BITS. - */ - final_shift = (cnt + (64 - phys_bits)); - if (final_shift >= 64) { - unsigned int rd = (val >> 25) & 0x1f; +unsigned long VMALLOC_END = 0x0000010000000000UL; +EXPORT_SYMBOL(VMALLOC_END); - val = 0x80100000 | (rd << 25); - } else { - val |= final_shift; - } - *insn = val; - - __asm__ __volatile__("flush %0" - : /* no outputs */ - : "r" (insn)); -} - -static void __init page_offset_shift_patch(unsigned long phys_bits) -{ - extern unsigned int __page_offset_shift_patch; - extern unsigned int __page_offset_shift_patch_end; - unsigned int *p; - - p = &__page_offset_shift_patch; - while (p < &__page_offset_shift_patch_end) { - unsigned int *insn = (unsigned int *)(unsigned long)*p; - - page_offset_shift_patch_one(insn, phys_bits); - - p++; - } -} +unsigned long sparc64_va_hole_top = 0xfffff80000000000UL; +unsigned long sparc64_va_hole_bottom = 0x0000080000000000UL; static void __init setup_page_offset(void) { - unsigned long max_phys_bits = 40; - if (tlb_type == cheetah || tlb_type == cheetah_plus) { + /* Cheetah/Panther support a full 64-bit virtual + * address, so we can use all that our page tables + * support. + */ + sparc64_va_hole_top = 0xfff0000000000000UL; + sparc64_va_hole_bottom = 0x0010000000000000UL; + max_phys_bits = 42; } else if (tlb_type == hypervisor) { switch (sun4v_chip_type) { case SUN4V_CHIP_NIAGARA1: case SUN4V_CHIP_NIAGARA2: + /* T1 and T2 support 48-bit virtual addresses. */ + sparc64_va_hole_top = 0xffff800000000000UL; + sparc64_va_hole_bottom = 0x0000800000000000UL; + max_phys_bits = 39; break; case SUN4V_CHIP_NIAGARA3: + /* T3 supports 48-bit virtual addresses. */ + sparc64_va_hole_top = 0xffff800000000000UL; + sparc64_va_hole_bottom = 0x0000800000000000UL; + max_phys_bits = 43; break; case SUN4V_CHIP_NIAGARA4: case SUN4V_CHIP_NIAGARA5: case SUN4V_CHIP_SPARC64X: - default: + case SUN4V_CHIP_SPARC_M6: + /* T4 and later support 52-bit virtual addresses. */ + sparc64_va_hole_top = 0xfff8000000000000UL; + sparc64_va_hole_bottom = 0x0008000000000000UL; max_phys_bits = 47; break; + case SUN4V_CHIP_SPARC_M7: + default: + /* M7 and later support 52-bit virtual addresses. */ + sparc64_va_hole_top = 0xfff8000000000000UL; + sparc64_va_hole_bottom = 0x0008000000000000UL; + max_phys_bits = 49; + break; } } @@ -1639,12 +1707,16 @@ prom_halt(); } - PAGE_OFFSET = PAGE_OFFSET_BY_BITS(max_phys_bits); + PAGE_OFFSET = sparc64_va_hole_top; + VMALLOC_END = ((sparc64_va_hole_bottom >> 1) + + (sparc64_va_hole_bottom >> 2)); - pr_info("PAGE_OFFSET is 0x%016lx (max_phys_bits == %lu)\n", + pr_info("MM: PAGE_OFFSET is 0x%016lx (max_phys_bits == %lu)\n", PAGE_OFFSET, max_phys_bits); - - page_offset_shift_patch(max_phys_bits); + pr_info("MM: VMALLOC [0x%016lx --> 0x%016lx]\n", + VMALLOC_START, VMALLOC_END); + pr_info("MM: VMEMMAP [0x%016lx --> 0x%016lx]\n", + VMEMMAP_BASE, VMEMMAP_BASE << 1); } static void __init tsb_phys_patch(void) @@ -1689,21 +1761,42 @@ #define NUM_KTSB_DESCR 1 #endif static struct hv_tsb_descr ktsb_descr[NUM_KTSB_DESCR]; -extern struct tsb swapper_tsb[KERNEL_TSB_NENTRIES]; + +/* The swapper TSBs are loaded with a base sequence of: + * + * sethi %uhi(SYMBOL), REG1 + * sethi %hi(SYMBOL), REG2 + * or REG1, %ulo(SYMBOL), REG1 + * or REG2, %lo(SYMBOL), REG2 + * sllx REG1, 32, REG1 + * or REG1, REG2, REG1 + * + * When we use physical addressing for the TSB accesses, we patch the + * first four instructions in the above sequence. + */ static void patch_one_ktsb_phys(unsigned int *start, unsigned int *end, unsigned long pa) { - pa >>= KTSB_PHYS_SHIFT; + unsigned long high_bits, low_bits; + + high_bits = (pa >> 32) & 0xffffffff; + low_bits = (pa >> 0) & 0xffffffff; while (start < end) { unsigned int *ia = (unsigned int *)(unsigned long)*start; - ia[0] = (ia[0] & ~0x3fffff) | (pa >> 10); + ia[0] = (ia[0] & ~0x3fffff) | (high_bits >> 10); __asm__ __volatile__("flush %0" : : "r" (ia)); - ia[1] = (ia[1] & ~0x3ff) | (pa & 0x3ff); + ia[1] = (ia[1] & ~0x3fffff) | (low_bits >> 10); __asm__ __volatile__("flush %0" : : "r" (ia + 1)); + ia[2] = (ia[2] & ~0x1fff) | (high_bits & 0x3ff); + __asm__ __volatile__("flush %0" : : "r" (ia + 2)); + + ia[3] = (ia[3] & ~0x1fff) | (low_bits & 0x3ff); + __asm__ __volatile__("flush %0" : : "r" (ia + 3)); + start++; } } @@ -1842,7 +1935,6 @@ /* paging_init() sets up the page tables */ static unsigned long last_valid_pfn; -pgd_t swapper_pg_dir[PTRS_PER_PGD]; static void sun4u_pgprot_init(void); static void sun4v_pgprot_init(void); @@ -1880,7 +1972,7 @@ BUILD_BUG_ON(NR_CPUS > 4096); - kern_base = (prom_boot_mapping_phys_low >> 22UL) << 22UL; + kern_base = (prom_boot_mapping_phys_low >> ILOG2_4MB) << ILOG2_4MB; kern_size = (unsigned long)&_end - (unsigned long)KERNBASE; /* Invalidate both kernel TSBs. */ @@ -1936,7 +2028,7 @@ shift = kern_base + PAGE_OFFSET - ((unsigned long)KERNBASE); real_end = (unsigned long)_end; - num_kernel_image_mappings = DIV_ROUND_UP(real_end - KERNBASE, 1 << 22); + num_kernel_image_mappings = DIV_ROUND_UP(real_end - KERNBASE, 1 << ILOG2_4MB); printk("Kernel: Using %d locked TLB entries for main kernel image.\n", num_kernel_image_mappings); @@ -1945,16 +2037,10 @@ */ init_mm.pgd += ((shift) / (sizeof(pgd_t))); - memset(swapper_low_pmd_dir, 0, sizeof(swapper_low_pmd_dir)); + memset(swapper_pg_dir, 0, sizeof(swapper_pg_dir)); - /* Now can init the kernel/bad page tables. */ - pud_set(pud_offset(&swapper_pg_dir[0], 0), - swapper_low_pmd_dir + (shift / sizeof(pgd_t))); - inherit_prom_mappings(); - init_kpte_bitmap(); - /* Ok, we can use our TLB miss and window trap handlers safely. */ setup_tba(); @@ -2061,70 +2147,6 @@ return 0; } -static struct linux_prom64_registers pavail_rescan[MAX_BANKS] __initdata; -static int pavail_rescan_ents __initdata; - -/* Certain OBP calls, such as fetching "available" properties, can - * claim physical memory. So, along with initializing the valid - * address bitmap, what we do here is refetch the physical available - * memory list again, and make sure it provides at least as much - * memory as 'pavail' does. - */ -static void __init setup_valid_addr_bitmap_from_pavail(unsigned long *bitmap) -{ - int i; - - read_obp_memory("available", &pavail_rescan[0], &pavail_rescan_ents); - - for (i = 0; i < pavail_ents; i++) { - unsigned long old_start, old_end; - - old_start = pavail[i].phys_addr; - old_end = old_start + pavail[i].reg_size; - while (old_start < old_end) { - int n; - - for (n = 0; n < pavail_rescan_ents; n++) { - unsigned long new_start, new_end; - - new_start = pavail_rescan[n].phys_addr; - new_end = new_start + - pavail_rescan[n].reg_size; - - if (new_start <= old_start && - new_end >= (old_start + PAGE_SIZE)) { - set_bit(old_start >> 22, bitmap); - goto do_next_page; - } - } - - prom_printf("mem_init: Lost memory in pavail\n"); - prom_printf("mem_init: OLD start[%lx] size[%lx]\n", - pavail[i].phys_addr, - pavail[i].reg_size); - prom_printf("mem_init: NEW start[%lx] size[%lx]\n", - pavail_rescan[i].phys_addr, - pavail_rescan[i].reg_size); - prom_printf("mem_init: Cannot continue, aborting.\n"); - prom_halt(); - - do_next_page: - old_start += PAGE_SIZE; - } - } -} - -static void __init patch_tlb_miss_handler_bitmap(void) -{ - extern unsigned int valid_addr_bitmap_insn[]; - extern unsigned int valid_addr_bitmap_patch[]; - - valid_addr_bitmap_insn[1] = valid_addr_bitmap_patch[1]; - mb(); - valid_addr_bitmap_insn[0] = valid_addr_bitmap_patch[0]; - flushi(&valid_addr_bitmap_insn[0]); -} - static void __init register_page_bootmem_info(void) { #ifdef CONFIG_NEED_MULTIPLE_NODES @@ -2137,18 +2159,6 @@ } void __init mem_init(void) { - unsigned long addr, last; - - addr = PAGE_OFFSET + kern_base; - last = PAGE_ALIGN(kern_size) + addr; - while (addr < last) { - set_bit(__pa(addr) >> 22, sparc64_valid_addr_bitmap); - addr += PAGE_SIZE; - } - - setup_valid_addr_bitmap_from_pavail(sparc64_valid_addr_bitmap); - patch_tlb_miss_handler_bitmap(); - high_memory = __va(last_valid_pfn << PAGE_SHIFT); register_page_bootmem_info(); @@ -2238,18 +2248,9 @@ EXPORT_SYMBOL(_PAGE_CACHE); #ifdef CONFIG_SPARSEMEM_VMEMMAP -unsigned long vmemmap_table[VMEMMAP_SIZE]; - -static long __meminitdata addr_start, addr_end; -static int __meminitdata node_start; - int __meminit vmemmap_populate(unsigned long vstart, unsigned long vend, int node) { - unsigned long phys_start = (vstart - VMEMMAP_BASE); - unsigned long phys_end = (vend - VMEMMAP_BASE); - unsigned long addr = phys_start & VMEMMAP_CHUNK_MASK; - unsigned long end = VMEMMAP_ALIGN(phys_end); unsigned long pte_base; pte_base = (_PAGE_VALID | _PAGE_SZ4MB_4U | @@ -2260,47 +2261,52 @@ _PAGE_CP_4V | _PAGE_CV_4V | _PAGE_P_4V | _PAGE_W_4V); - for (; addr < end; addr += VMEMMAP_CHUNK) { - unsigned long *vmem_pp = - vmemmap_table + (addr >> VMEMMAP_CHUNK_SHIFT); - void *block; + pte_base |= _PAGE_PMD_HUGE; - if (!(*vmem_pp & _PAGE_VALID)) { - block = vmemmap_alloc_block(1UL << 22, node); - if (!block) + vstart = vstart & PMD_MASK; + vend = ALIGN(vend, PMD_SIZE); + for (; vstart < vend; vstart += PMD_SIZE) { + pgd_t *pgd = pgd_offset_k(vstart); + unsigned long pte; + pud_t *pud; + pmd_t *pmd; + + if (pgd_none(*pgd)) { + pud_t *new = vmemmap_alloc_block(PAGE_SIZE, node); + + if (!new) return -ENOMEM; + pgd_populate(&init_mm, pgd, new); + } - *vmem_pp = pte_base | __pa(block); + pud = pud_offset(pgd, vstart); + if (pud_none(*pud)) { + pmd_t *new = vmemmap_alloc_block(PAGE_SIZE, node); - /* check to see if we have contiguous blocks */ - if (addr_end != addr || node_start != node) { - if (addr_start) - printk(KERN_DEBUG " [%lx-%lx] on node %d\n", - addr_start, addr_end-1, node_start); - addr_start = addr; - node_start = node; - } - addr_end = addr + VMEMMAP_CHUNK; + if (!new) + return -ENOMEM; + pud_populate(&init_mm, pud, new); } - } - return 0; -} -void __meminit vmemmap_populate_print_last(void) -{ - if (addr_start) { - printk(KERN_DEBUG " [%lx-%lx] on node %d\n", - addr_start, addr_end-1, node_start); - addr_start = 0; - addr_end = 0; - node_start = 0; + pmd = pmd_offset(pud, vstart); + + pte = pmd_val(*pmd); + if (!(pte & _PAGE_VALID)) { + void *block = vmemmap_alloc_block(PMD_SIZE, node); + + if (!block) + return -ENOMEM; + + pmd_val(*pmd) = pte_base | __pa(block); + } } + + return 0; } void vmemmap_free(unsigned long start, unsigned long end) { } - #endif /* CONFIG_SPARSEMEM_VMEMMAP */ static void prot_init_common(unsigned long page_none, @@ -2613,6 +2619,10 @@ pte = pmd_val(entry); + /* Don't insert a non-valid PMD into the TSB, we'll deadlock. */ + if (!(pte & _PAGE_VALID)) + return; + /* We are fabricating 8MB pages using 4MB real hw pages. */ pte |= (addr & (1UL << REAL_HPAGE_SHIFT)); @@ -2693,3 +2703,26 @@ } } #endif + +#ifdef CONFIG_SMP +#define do_flush_tlb_kernel_range smp_flush_tlb_kernel_range +#else +#define do_flush_tlb_kernel_range __flush_tlb_kernel_range +#endif + +void flush_tlb_kernel_range(unsigned long start, unsigned long end) +{ + if (start < HI_OBP_ADDRESS && end > LOW_OBP_ADDRESS) { + if (start < LOW_OBP_ADDRESS) { + flush_tsb_kernel_range(start, LOW_OBP_ADDRESS); + do_flush_tlb_kernel_range(start, LOW_OBP_ADDRESS); + } + if (end > HI_OBP_ADDRESS) { + flush_tsb_kernel_range(HI_OBP_ADDRESS, end); + do_flush_tlb_kernel_range(HI_OBP_ADDRESS, end); + } + } else { + flush_tsb_kernel_range(start, end); + do_flush_tlb_kernel_range(start, end); + } +} --- linux-3.13.0.orig/arch/sparc/mm/init_64.h +++ linux-3.13.0/arch/sparc/mm/init_64.h @@ -8,15 +8,8 @@ */ #define MAX_PHYS_ADDRESS (1UL << MAX_PHYS_ADDRESS_BITS) -#define KPTE_BITMAP_CHUNK_SZ (256UL * 1024UL * 1024UL) -#define KPTE_BITMAP_BYTES \ - ((MAX_PHYS_ADDRESS / KPTE_BITMAP_CHUNK_SZ) / 4) -#define VALID_ADDR_BITMAP_CHUNK_SZ (4UL * 1024UL * 1024UL) -#define VALID_ADDR_BITMAP_BYTES \ - ((MAX_PHYS_ADDRESS / VALID_ADDR_BITMAP_CHUNK_SZ) / 8) extern unsigned long kern_linear_pte_xor[4]; -extern unsigned long kpte_linear_bitmap[KPTE_BITMAP_BYTES / sizeof(unsigned long)]; extern unsigned int sparc64_highest_unlocked_tlb_ent; extern unsigned long sparc64_kern_pri_context; extern unsigned long sparc64_kern_pri_nuc_bits; @@ -38,15 +31,4 @@ extern void prom_world(int enter); -#ifdef CONFIG_SPARSEMEM_VMEMMAP -#define VMEMMAP_CHUNK_SHIFT 22 -#define VMEMMAP_CHUNK (1UL << VMEMMAP_CHUNK_SHIFT) -#define VMEMMAP_CHUNK_MASK ~(VMEMMAP_CHUNK - 1UL) -#define VMEMMAP_ALIGN(x) (((x)+VMEMMAP_CHUNK-1UL)&VMEMMAP_CHUNK_MASK) - -#define VMEMMAP_SIZE ((((1UL << MAX_PHYSADDR_BITS) >> PAGE_SHIFT) * \ - sizeof(struct page)) >> VMEMMAP_CHUNK_SHIFT) -extern unsigned long vmemmap_table[VMEMMAP_SIZE]; -#endif - #endif /* _SPARC64_MM_INIT_H */ --- linux-3.13.0.orig/arch/sparc/mm/tlb.c +++ linux-3.13.0/arch/sparc/mm/tlb.c @@ -135,7 +135,7 @@ #ifdef CONFIG_TRANSPARENT_HUGEPAGE static void tlb_batch_pmd_scan(struct mm_struct *mm, unsigned long vaddr, - pmd_t pmd, bool exec) + pmd_t pmd) { unsigned long end; pte_t *pte; @@ -143,8 +143,11 @@ pte = pte_offset_map(&pmd, vaddr); end = vaddr + HPAGE_SIZE; while (vaddr < end) { - if (pte_val(*pte) & _PAGE_VALID) + if (pte_val(*pte) & _PAGE_VALID) { + bool exec = pte_exec(*pte); + tlb_batch_add_one(mm, vaddr, exec); + } pte++; vaddr += PAGE_SIZE; } @@ -178,19 +181,30 @@ } if (!pmd_none(orig)) { - pte_t orig_pte = __pte(pmd_val(orig)); - bool exec = pte_exec(orig_pte); - addr &= HPAGE_MASK; if (pmd_trans_huge(orig)) { + pte_t orig_pte = __pte(pmd_val(orig)); + bool exec = pte_exec(orig_pte); + tlb_batch_add_one(mm, addr, exec); tlb_batch_add_one(mm, addr + REAL_HPAGE_SIZE, exec); } else { - tlb_batch_pmd_scan(mm, addr, orig, exec); + tlb_batch_pmd_scan(mm, addr, orig); } } } +void pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, + pmd_t *pmdp) +{ + pmd_t entry = *pmdp; + + pmd_val(entry) &= ~_PAGE_VALID; + + set_pmd_at(vma->vm_mm, address, pmdp, entry); + flush_tlb_range(vma, address, address + HPAGE_PMD_SIZE); +} + void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, pgtable_t pgtable) { --- linux-3.13.0.orig/arch/sparc/mm/tsb.c +++ linux-3.13.0/arch/sparc/mm/tsb.c @@ -133,7 +133,19 @@ mm->context.tsb_block[tsb_idx].tsb_nentries = tsb_bytes / sizeof(struct tsb); - base = TSBMAP_BASE; + switch (tsb_idx) { + case MM_TSB_BASE: + base = TSBMAP_8K_BASE; + break; +#if defined(CONFIG_HUGETLB_PAGE) || defined(CONFIG_TRANSPARENT_HUGEPAGE) + case MM_TSB_HUGE: + base = TSBMAP_4M_BASE; + break; +#endif + default: + BUG(); + } + tte = pgprot_val(PAGE_KERNEL_LOCKED); tsb_paddr = __pa(mm->context.tsb_block[tsb_idx].tsb); BUG_ON(tsb_paddr & (tsb_bytes - 1UL)); --- linux-3.13.0.orig/arch/sparc/net/bpf_jit_comp.c +++ linux-3.13.0/arch/sparc/net/bpf_jit_comp.c @@ -83,9 +83,9 @@ #define BNE (F2(0, 2) | CONDNE) #ifdef CONFIG_SPARC64 -#define BNE_PTR (F2(0, 1) | CONDNE | (2 << 20)) +#define BE_PTR (F2(0, 1) | CONDE | (2 << 20)) #else -#define BNE_PTR BNE +#define BE_PTR BE #endif #define SETHI(K, REG) \ @@ -600,7 +600,7 @@ case BPF_S_ANC_IFINDEX: emit_skb_loadptr(dev, r_A); emit_cmpi(r_A, 0); - emit_branch(BNE_PTR, cleanup_addr + 4); + emit_branch(BE_PTR, cleanup_addr + 4); emit_nop(); emit_load32(r_A, struct net_device, ifindex, r_A); break; @@ -613,7 +613,7 @@ case BPF_S_ANC_HATYPE: emit_skb_loadptr(dev, r_A); emit_cmpi(r_A, 0); - emit_branch(BNE_PTR, cleanup_addr + 4); + emit_branch(BE_PTR, cleanup_addr + 4); emit_nop(); emit_load16(r_A, struct net_device, type, r_A); break; --- linux-3.13.0.orig/arch/sparc/power/hibernate_asm.S +++ linux-3.13.0/arch/sparc/power/hibernate_asm.S @@ -54,8 +54,8 @@ nop /* Write PAGE_OFFSET to %g7 */ - sethi %uhi(PAGE_OFFSET), %g7 - sllx %g7, 32, %g7 + sethi %hi(PAGE_OFFSET), %g7 + ldx [%g7 + %lo(PAGE_OFFSET)], %g7 setuw (PAGE_SIZE-8), %g3 --- linux-3.13.0.orig/arch/sparc/prom/bootstr_64.c +++ linux-3.13.0/arch/sparc/prom/bootstr_64.c @@ -14,7 +14,10 @@ * the .bss section or it will break things. */ -#define BARG_LEN 256 +/* We limit BARG_LEN to 1024 because this is the size of the + * 'barg_out' command line buffer in the SILO bootloader. + */ +#define BARG_LEN 1024 struct { int bootstr_len; int bootstr_valid; --- linux-3.13.0.orig/arch/sparc/prom/cif.S +++ linux-3.13.0/arch/sparc/prom/cif.S @@ -11,11 +11,10 @@ .text .globl prom_cif_direct prom_cif_direct: + save %sp, -192, %sp sethi %hi(p1275buf), %o1 or %o1, %lo(p1275buf), %o1 - ldx [%o1 + 0x0010], %o2 ! prom_cif_stack - save %o2, -192, %sp - ldx [%i1 + 0x0008], %l2 ! prom_cif_handler + ldx [%o1 + 0x0008], %l2 ! prom_cif_handler mov %g4, %l0 mov %g5, %l1 mov %g6, %l3 --- linux-3.13.0.orig/arch/sparc/prom/init_64.c +++ linux-3.13.0/arch/sparc/prom/init_64.c @@ -26,13 +26,13 @@ * It gets passed the pointer to the PROM vector. */ -extern void prom_cif_init(void *, void *); +extern void prom_cif_init(void *); -void __init prom_init(void *cif_handler, void *cif_stack) +void __init prom_init(void *cif_handler) { phandle node; - prom_cif_init(cif_handler, cif_stack); + prom_cif_init(cif_handler); prom_chosen_node = prom_finddevice(prom_chosen_path); if (!prom_chosen_node || (s32)prom_chosen_node == -1) --- linux-3.13.0.orig/arch/sparc/prom/p1275.c +++ linux-3.13.0/arch/sparc/prom/p1275.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -20,7 +21,6 @@ struct { long prom_callback; /* 0x00 */ void (*prom_cif_handler)(long *); /* 0x08 */ - unsigned long prom_cif_stack; /* 0x10 */ } p1275buf; extern void prom_world(int); @@ -37,8 +37,8 @@ { unsigned long flags; - raw_local_save_flags(flags); - raw_local_irq_restore((unsigned long)PIL_NMI); + local_save_flags(flags); + local_irq_restore((unsigned long)PIL_NMI); raw_spin_lock(&prom_entry_lock); prom_world(1); @@ -46,11 +46,10 @@ prom_world(0); raw_spin_unlock(&prom_entry_lock); - raw_local_irq_restore(flags); + local_irq_restore(flags); } void prom_cif_init(void *cif_handler, void *cif_stack) { p1275buf.prom_cif_handler = (void (*)(long *))cif_handler; - p1275buf.prom_cif_stack = (unsigned long)cif_stack; } --- linux-3.13.0.orig/arch/tile/include/asm/compat.h +++ linux-3.13.0/arch/tile/include/asm/compat.h @@ -281,7 +281,6 @@ u32 dummy, u32 low, u32 high); long compat_sys_pwrite64(unsigned int fd, char __user *ubuf, size_t count, u32 dummy, u32 low, u32 high); -long compat_sys_lookup_dcookie(u32 low, u32 high, char __user *buf, size_t len); long compat_sys_sync_file_range2(int fd, unsigned int flags, u32 offset_lo, u32 offset_hi, u32 nbytes_lo, u32 nbytes_hi); --- linux-3.13.0.orig/arch/tile/mm/hugetlbpage.c +++ linux-3.13.0/arch/tile/mm/hugetlbpage.c @@ -166,11 +166,6 @@ return !!(pud_val(pud) & _PAGE_HUGE_PAGE); } -int pmd_huge_support(void) -{ - return 1; -} - struct page *follow_huge_pmd(struct mm_struct *mm, unsigned long address, pmd_t *pmd, int write) { --- linux-3.13.0.orig/arch/um/drivers/ubd_kern.c +++ linux-3.13.0/arch/um/drivers/ubd_kern.c @@ -1277,7 +1277,7 @@ while(1){ struct ubd *dev = q->queuedata; - if(dev->end_sg == 0){ + if(dev->request == NULL){ struct request *req = blk_fetch_request(q); if(req == NULL) return; @@ -1299,7 +1299,8 @@ return; } prepare_flush_request(req, io_req); - submit_request(io_req, dev); + if (submit_request(io_req, dev) == false) + return; } while(dev->start_sg < dev->end_sg){ --- linux-3.13.0.orig/arch/x86/Kconfig +++ linux-3.13.0/arch/x86/Kconfig @@ -125,6 +125,7 @@ select RTC_LIB select HAVE_DEBUG_STACKOVERFLOW select HAVE_IRQ_EXIT_ON_IRQ_STACK if X86_64 + select ARCH_SUPPORTS_ATOMIC_RMW config INSTRUCTION_DECODER def_bool y @@ -977,10 +978,27 @@ default y depends on X86_32 ---help--- - This option is required by programs like DOSEMU to run 16-bit legacy - code on X86 processors. It also may be needed by software like - XFree86 to initialize some video cards via BIOS. Disabling this - option saves about 6k. + This option is required by programs like DOSEMU to run + 16-bit real mode legacy code on x86 processors. It also may + be needed by software like XFree86 to initialize some video + cards via BIOS. Disabling this option saves about 6K. + +config X86_16BIT + bool "Enable support for 16-bit segments" if EXPERT + default y + ---help--- + This option is required by programs like Wine to run 16-bit + protected mode legacy code on x86 processors. Disabling + this option saves about 300 bytes on i386, or around 6K text + plus 16K runtime memory on x86-64, + +config X86_ESPFIX32 + def_bool y + depends on X86_16BIT && X86_32 + +config X86_ESPFIX64 + def_bool y + depends on X86_16BIT && X86_64 config TOSHIBA tristate "Toshiba Laptop support" @@ -1595,6 +1613,7 @@ config EFI_STUB bool "EFI stub support" depends on EFI + select RELOCATABLE ---help--- This kernel feature allows a bzImage to be loaded directly by EFI firmware without the use of a bootloader. @@ -1890,6 +1909,10 @@ def_bool y depends on X86_64 || X86_PAE +config ARCH_ENABLE_HUGEPAGE_MIGRATION + def_bool y + depends on X86_64 && HUGETLB_PAGE && MIGRATION + menu "Power management and ACPI options" config ARCH_HIBERNATION_HEADER @@ -2397,6 +2420,8 @@ source "drivers/Kconfig" +source "ubuntu/Kconfig" + source "drivers/firmware/Kconfig" source "fs/Kconfig" --- linux-3.13.0.orig/arch/x86/boot/cpucheck.c +++ linux-3.13.0/arch/x86/boot/cpucheck.c @@ -69,6 +69,13 @@ cpu_vendor[2] == A32('M', 'x', '8', '6'); } +static int is_intel(void) +{ + return cpu_vendor[0] == A32('G', 'e', 'n', 'u') && + cpu_vendor[1] == A32('i', 'n', 'e', 'I') && + cpu_vendor[2] == A32('n', 't', 'e', 'l'); +} + static int has_fpu(void) { u16 fcw = -1, fsw = -1; @@ -239,6 +246,24 @@ asm("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx)); err = check_flags(); + } else if (err == 0x01 && + !(err_flags[0] & ~(1 << X86_FEATURE_PAE)) && + is_intel() && cpu.level == 6 && + (cpu.model == 9 || cpu.model == 13)) { + /* PAE is disabled on this Pentium M but can be forced */ + if (cmdline_find_option_bool("forcepae")) { + puts("WARNING: Forcing PAE in CPU flags\n"); + set_bit(X86_FEATURE_PAE, cpu.flags); + err = check_flags(); + } + else { + puts("ERROR: PAE is disabled on this Pentium M\n" + "(PAE can potentially be enabled with " + "kernel parameter\n" + "\"forcepae\" - this is unsupported, may " + "cause unknown\n" + "problems, and will taint the kernel)\n"); + } } if (err_flags_ptr) --- linux-3.13.0.orig/arch/x86/boot/header.S +++ linux-3.13.0/arch/x86/boot/header.S @@ -91,10 +91,9 @@ .section ".bsdata", "a" bugger_off_msg: - .ascii "Direct floppy boot is not supported. " - .ascii "Use a boot loader program instead.\r\n" + .ascii "Use a boot loader.\r\n" .ascii "\n" - .ascii "Remove disk and press any key to reboot ...\r\n" + .ascii "Remove disk and press any key to reboot...\r\n" .byte 0 #ifdef CONFIG_EFI_STUB @@ -108,7 +107,7 @@ #else .word 0x8664 # x86-64 #endif - .word 3 # nr_sections + .word 4 # nr_sections .long 0 # TimeDateStamp .long 0 # PointerToSymbolTable .long 1 # NumberOfSymbols @@ -250,6 +249,25 @@ .word 0 # NumberOfLineNumbers .long 0x60500020 # Characteristics (section flags) + # + # The offset & size fields are filled in by build.c. + # + .ascii ".bss" + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .long 0 + .long 0x0 + .long 0 # Size of initialized data + # on disk + .long 0x0 + .long 0 # PointerToRelocations + .long 0 # PointerToLineNumbers + .word 0 # NumberOfRelocations + .word 0 # NumberOfLineNumbers + .long 0xc8000080 # Characteristics (section flags) + #endif /* CONFIG_EFI_STUB */ # Kernel attributes; used by setup. This is part 1 of the --- linux-3.13.0.orig/arch/x86/boot/tools/build.c +++ linux-3.13.0/arch/x86/boot/tools/build.c @@ -142,7 +142,7 @@ #ifdef CONFIG_EFI_STUB -static void update_pecoff_section_header(char *section_name, u32 offset, u32 size) +static void update_pecoff_section_header_fields(char *section_name, u32 vma, u32 size, u32 datasz, u32 offset) { unsigned int pe_header; unsigned short num_sections; @@ -163,10 +163,10 @@ put_unaligned_le32(size, section + 0x8); /* section header vma field */ - put_unaligned_le32(offset, section + 0xc); + put_unaligned_le32(vma, section + 0xc); /* section header 'size of initialised data' field */ - put_unaligned_le32(size, section + 0x10); + put_unaligned_le32(datasz, section + 0x10); /* section header 'file offset' field */ put_unaligned_le32(offset, section + 0x14); @@ -178,6 +178,11 @@ } } +static void update_pecoff_section_header(char *section_name, u32 offset, u32 size) +{ + update_pecoff_section_header_fields(section_name, offset, size, size, offset); +} + static void update_pecoff_setup_and_reloc(unsigned int size) { u32 setup_offset = 0x200; @@ -202,9 +207,6 @@ pe_header = get_unaligned_le32(&buf[0x3c]); - /* Size of image */ - put_unaligned_le32(file_sz, &buf[pe_header + 0x50]); - /* * Size of code: Subtract the size of the first sector (512 bytes) * which includes the header. @@ -219,6 +221,22 @@ update_pecoff_section_header(".text", text_start, text_sz); } +static void update_pecoff_bss(unsigned int file_sz, unsigned int init_sz) +{ + unsigned int pe_header; + unsigned int bss_sz = init_sz - file_sz; + + pe_header = get_unaligned_le32(&buf[0x3c]); + + /* Size of uninitialized data */ + put_unaligned_le32(bss_sz, &buf[pe_header + 0x24]); + + /* Size of image */ + put_unaligned_le32(init_sz, &buf[pe_header + 0x50]); + + update_pecoff_section_header_fields(".bss", file_sz, bss_sz, 0, 0); +} + #endif /* CONFIG_EFI_STUB */ @@ -270,6 +288,9 @@ int fd; void *kernel; u32 crc = 0xffffffffUL; +#ifdef CONFIG_EFI_STUB + unsigned int init_sz; +#endif /* Defaults for old kernel */ #ifdef CONFIG_X86_32 @@ -343,7 +364,9 @@ put_unaligned_le32(sys_size, &buf[0x1f4]); #ifdef CONFIG_EFI_STUB - update_pecoff_text(setup_sectors * 512, sz + i + ((sys_size * 16) - sz)); + update_pecoff_text(setup_sectors * 512, i + (sys_size * 16)); + init_sz = get_unaligned_le32(&buf[0x260]); + update_pecoff_bss(i + (sys_size * 16), init_sz); #ifdef CONFIG_X86_64 /* Yes, this is really how we defined it :( */ efi_stub_entry -= 0x200; --- linux-3.13.0.orig/arch/x86/boot/video.h +++ linux-3.13.0/arch/x86/boot/video.h @@ -80,7 +80,7 @@ u16 xmode_n; /* Size of unprobed mode range */ }; -#define __videocard struct card_info __attribute__((section(".videocards"))) +#define __videocard struct card_info __attribute__((used,section(".videocards"))) extern struct card_info video_cards[], video_cards_end[]; int mode_defined(u16 mode); /* video.c */ --- linux-3.13.0.orig/arch/x86/configs/i386_defconfig +++ linux-3.13.0/arch/x86/configs/i386_defconfig @@ -60,7 +60,6 @@ CONFIG_HIBERNATION=y CONFIG_PM_DEBUG=y CONFIG_PM_TRACE_RTC=y -CONFIG_ACPI_PROCFS=y CONFIG_ACPI_DOCK=y CONFIG_CPU_FREQ=y # CONFIG_CPU_FREQ_STAT is not set --- linux-3.13.0.orig/arch/x86/configs/x86_64_defconfig +++ linux-3.13.0/arch/x86/configs/x86_64_defconfig @@ -58,7 +58,6 @@ CONFIG_HIBERNATION=y CONFIG_PM_DEBUG=y CONFIG_PM_TRACE_RTC=y -CONFIG_ACPI_PROCFS=y CONFIG_ACPI_DOCK=y CONFIG_CPU_FREQ=y # CONFIG_CPU_FREQ_STAT is not set --- linux-3.13.0.orig/arch/x86/crypto/ghash-clmulni-intel_asm.S +++ linux-3.13.0/arch/x86/crypto/ghash-clmulni-intel_asm.S @@ -24,10 +24,6 @@ .align 16 .Lbswap_mask: .octa 0x000102030405060708090a0b0c0d0e0f -.Lpoly: - .octa 0xc2000000000000000000000000000001 -.Ltwo_one: - .octa 0x00000001000000000000000000000001 #define DATA %xmm0 #define SHASH %xmm1 @@ -134,28 +130,3 @@ .Lupdate_just_ret: ret ENDPROC(clmul_ghash_update) - -/* - * void clmul_ghash_setkey(be128 *shash, const u8 *key); - * - * Calculate hash_key << 1 mod poly - */ -ENTRY(clmul_ghash_setkey) - movaps .Lbswap_mask, BSWAP - movups (%rsi), %xmm0 - PSHUFB_XMM BSWAP %xmm0 - movaps %xmm0, %xmm1 - psllq $1, %xmm0 - psrlq $63, %xmm1 - movaps %xmm1, %xmm2 - pslldq $8, %xmm1 - psrldq $8, %xmm2 - por %xmm1, %xmm0 - # reduction - pshufd $0b00100100, %xmm2, %xmm1 - pcmpeqd .Ltwo_one, %xmm1 - pand .Lpoly, %xmm1 - pxor %xmm1, %xmm0 - movups %xmm0, (%rdi) - ret -ENDPROC(clmul_ghash_setkey) --- linux-3.13.0.orig/arch/x86/crypto/ghash-clmulni-intel_glue.c +++ linux-3.13.0/arch/x86/crypto/ghash-clmulni-intel_glue.c @@ -30,8 +30,6 @@ void clmul_ghash_update(char *dst, const char *src, unsigned int srclen, const be128 *shash); -void clmul_ghash_setkey(be128 *shash, const u8 *key); - struct ghash_async_ctx { struct cryptd_ahash *cryptd_tfm; }; @@ -58,13 +56,23 @@ const u8 *key, unsigned int keylen) { struct ghash_ctx *ctx = crypto_shash_ctx(tfm); + be128 *x = (be128 *)key; + u64 a, b; if (keylen != GHASH_BLOCK_SIZE) { crypto_shash_set_flags(tfm, CRYPTO_TFM_RES_BAD_KEY_LEN); return -EINVAL; } - clmul_ghash_setkey(&ctx->shash, key); + /* perform multiplication by 'x' in GF(2^128) */ + a = be64_to_cpu(x->a); + b = be64_to_cpu(x->b); + + ctx->shash.a = (__be64)((b << 1) | (a >> 63)); + ctx->shash.b = (__be64)((a << 1) | (b >> 63)); + + if (a >> 63) + ctx->shash.b ^= cpu_to_be64(0xc2); return 0; } --- linux-3.13.0.orig/arch/x86/crypto/sha512_ssse3_glue.c +++ linux-3.13.0/arch/x86/crypto/sha512_ssse3_glue.c @@ -141,7 +141,7 @@ /* save number of bits */ bits[1] = cpu_to_be64(sctx->count[0] << 3); - bits[0] = cpu_to_be64(sctx->count[1] << 3) | sctx->count[0] >> 61; + bits[0] = cpu_to_be64(sctx->count[1] << 3 | sctx->count[0] >> 61); /* Pad out to 112 mod 128 and append length */ index = sctx->count[0] & 0x7f; --- linux-3.13.0.orig/arch/x86/ia32/ia32entry.S +++ linux-3.13.0/arch/x86/ia32/ia32entry.S @@ -151,6 +151,16 @@ 1: movl (%rbp),%ebp _ASM_EXTABLE(1b,ia32_badarg) ASM_CLAC + + /* + * Sysenter doesn't filter flags, so we need to clear NT + * ourselves. To save a few cycles, we can check whether + * NT was set instead of doing an unconditional popfq. + */ + testl $X86_EFLAGS_NT,EFLAGS-ARGOFFSET(%rsp) + jnz sysenter_fix_flags +sysenter_flags_fixed: + orl $TS_COMPAT,TI_status+THREAD_INFO(%rsp,RIP-ARGOFFSET) testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET) CFI_REMEMBER_STATE @@ -184,6 +194,8 @@ TRACE_IRQS_ON ENABLE_INTERRUPTS_SYSEXIT32 + CFI_RESTORE_STATE + #ifdef CONFIG_AUDITSYSCALL .macro auditsys_entry_common movl %esi,%r9d /* 6th arg: 4th syscall arg */ @@ -226,7 +238,6 @@ .endm sysenter_auditsys: - CFI_RESTORE_STATE auditsys_entry_common movl %ebp,%r9d /* reload 6th syscall arg */ jmp sysenter_dispatch @@ -235,6 +246,11 @@ auditsys_exit sysexit_from_sys_call #endif +sysenter_fix_flags: + pushq_cfi $(X86_EFLAGS_IF|X86_EFLAGS_FIXED) + popfq_cfi + jmp sysenter_flags_fixed + sysenter_tracesys: #ifdef CONFIG_AUDITSYSCALL testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT),TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET) --- linux-3.13.0.orig/arch/x86/include/asm/cpufeature.h +++ linux-3.13.0/arch/x86/include/asm/cpufeature.h @@ -203,6 +203,7 @@ #define X86_FEATURE_DECODEASSISTS (8*32+12) /* AMD Decode Assists support */ #define X86_FEATURE_PAUSEFILTER (8*32+13) /* AMD filtered pause intercept */ #define X86_FEATURE_PFTHRESHOLD (8*32+14) /* AMD pause filter threshold */ +#define X86_FEATURE_VMMCALL ( 8*32+15) /* Prefer vmmcall to vmcall */ /* Intel-defined CPU features, CPUID level 0x00000007:0 (ebx), word 9 */ @@ -216,9 +217,13 @@ #define X86_FEATURE_ERMS (9*32+ 9) /* Enhanced REP MOVSB/STOSB */ #define X86_FEATURE_INVPCID (9*32+10) /* Invalidate Processor Context ID */ #define X86_FEATURE_RTM (9*32+11) /* Restricted Transactional Memory */ +#define X86_FEATURE_AVX512F (9*32+16) /* AVX-512 Foundation */ #define X86_FEATURE_RDSEED (9*32+18) /* The RDSEED instruction */ #define X86_FEATURE_ADX (9*32+19) /* The ADCX and ADOX instructions */ #define X86_FEATURE_SMAP (9*32+20) /* Supervisor Mode Access Prevention */ +#define X86_FEATURE_AVX512PF (9*32+26) /* AVX-512 Prefetch */ +#define X86_FEATURE_AVX512ER (9*32+27) /* AVX-512 Exponential and Reciprocal */ +#define X86_FEATURE_AVX512CD (9*32+28) /* AVX-512 Conflict Detection */ /* * BUG word(s) --- linux-3.13.0.orig/arch/x86/include/asm/dma-mapping.h +++ linux-3.13.0/arch/x86/include/asm/dma-mapping.h @@ -163,8 +163,6 @@ { struct dma_map_ops *ops = get_dma_ops(dev); - WARN_ON(irqs_disabled()); /* for portability */ - if (dma_release_from_coherent(dev, get_order(size), vaddr)) return; --- linux-3.13.0.orig/arch/x86/include/asm/efi.h +++ linux-3.13.0/arch/x86/include/asm/efi.h @@ -1,6 +1,24 @@ #ifndef _ASM_X86_EFI_H #define _ASM_X86_EFI_H +/* + * We map the EFI regions needed for runtime services non-contiguously, + * with preserved alignment on virtual addresses starting from -4G down + * for a total max space of 64G. This way, we provide for stable runtime + * services addresses across kernels so that a kexec'd kernel can still + * use them. + * + * This is the main reason why we're doing stable VA mappings for RT + * services. + * + * This flag is used in conjuction with a chicken bit called + * "efi=old_map" which can be used as a fallback to the old runtime + * services mapping method in case there's some b0rkage with a + * particular EFI implementation (haha, it is hard to hold up the + * sarcasm here...). + */ +#define EFI_OLD_MEMMAP EFI_ARCH_1 + #ifdef CONFIG_X86_32 #define EFI_LOADER_SIGNATURE "EL32" @@ -69,24 +87,31 @@ efi_call6((f), (u64)(a1), (u64)(a2), (u64)(a3), \ (u64)(a4), (u64)(a5), (u64)(a6)) +#define _efi_call_virtX(x, f, ...) \ +({ \ + efi_status_t __s; \ + \ + efi_sync_low_kernel_mappings(); \ + preempt_disable(); \ + __s = efi_call##x((void *)efi.systab->runtime->f, __VA_ARGS__); \ + preempt_enable(); \ + __s; \ +}) + #define efi_call_virt0(f) \ - efi_call0((efi.systab->runtime->f)) -#define efi_call_virt1(f, a1) \ - efi_call1((efi.systab->runtime->f), (u64)(a1)) -#define efi_call_virt2(f, a1, a2) \ - efi_call2((efi.systab->runtime->f), (u64)(a1), (u64)(a2)) -#define efi_call_virt3(f, a1, a2, a3) \ - efi_call3((efi.systab->runtime->f), (u64)(a1), (u64)(a2), \ - (u64)(a3)) -#define efi_call_virt4(f, a1, a2, a3, a4) \ - efi_call4((efi.systab->runtime->f), (u64)(a1), (u64)(a2), \ - (u64)(a3), (u64)(a4)) -#define efi_call_virt5(f, a1, a2, a3, a4, a5) \ - efi_call5((efi.systab->runtime->f), (u64)(a1), (u64)(a2), \ - (u64)(a3), (u64)(a4), (u64)(a5)) -#define efi_call_virt6(f, a1, a2, a3, a4, a5, a6) \ - efi_call6((efi.systab->runtime->f), (u64)(a1), (u64)(a2), \ - (u64)(a3), (u64)(a4), (u64)(a5), (u64)(a6)) + _efi_call_virtX(0, f) +#define efi_call_virt1(f, a1) \ + _efi_call_virtX(1, f, (u64)(a1)) +#define efi_call_virt2(f, a1, a2) \ + _efi_call_virtX(2, f, (u64)(a1), (u64)(a2)) +#define efi_call_virt3(f, a1, a2, a3) \ + _efi_call_virtX(3, f, (u64)(a1), (u64)(a2), (u64)(a3)) +#define efi_call_virt4(f, a1, a2, a3, a4) \ + _efi_call_virtX(4, f, (u64)(a1), (u64)(a2), (u64)(a3), (u64)(a4)) +#define efi_call_virt5(f, a1, a2, a3, a4, a5) \ + _efi_call_virtX(5, f, (u64)(a1), (u64)(a2), (u64)(a3), (u64)(a4), (u64)(a5)) +#define efi_call_virt6(f, a1, a2, a3, a4, a5, a6) \ + _efi_call_virtX(6, f, (u64)(a1), (u64)(a2), (u64)(a3), (u64)(a4), (u64)(a5), (u64)(a6)) extern void __iomem *efi_ioremap(unsigned long addr, unsigned long size, u32 type, u64 attribute); @@ -95,12 +120,19 @@ extern int add_efi_memmap; extern unsigned long x86_efi_facility; +extern struct efi_scratch efi_scratch; extern void efi_set_executable(efi_memory_desc_t *md, bool executable); extern int efi_memblock_x86_reserve_range(void); extern void efi_call_phys_prelog(void); extern void efi_call_phys_epilog(void); extern void efi_unmap_memmap(void); extern void efi_memory_uc(u64 addr, unsigned long size); +extern void __init efi_map_region(efi_memory_desc_t *md); +extern void efi_sync_low_kernel_mappings(void); +extern void efi_setup_page_tables(void); +extern void __init old_map_region(efi_memory_desc_t *md); +extern void __init runtime_code_page_mkexec(void); +extern void __init efi_runtime_mkexec(void); #ifdef CONFIG_EFI --- linux-3.13.0.orig/arch/x86/include/asm/elf.h +++ linux-3.13.0/arch/x86/include/asm/elf.h @@ -155,8 +155,9 @@ #define elf_check_arch(x) \ ((x)->e_machine == EM_X86_64) -#define compat_elf_check_arch(x) \ - (elf_check_arch_ia32(x) || (x)->e_machine == EM_X86_64) +#define compat_elf_check_arch(x) \ + (elf_check_arch_ia32(x) || \ + (IS_ENABLED(CONFIG_X86_X32_ABI) && (x)->e_machine == EM_X86_64)) #if __USER32_DS != __USER_DS # error "The following code assumes __USER32_DS == __USER_DS" --- linux-3.13.0.orig/arch/x86/include/asm/espfix.h +++ linux-3.13.0/arch/x86/include/asm/espfix.h @@ -0,0 +1,16 @@ +#ifndef _ASM_X86_ESPFIX_H +#define _ASM_X86_ESPFIX_H + +#ifdef CONFIG_X86_64 + +#include + +DECLARE_PER_CPU_READ_MOSTLY(unsigned long, espfix_stack); +DECLARE_PER_CPU_READ_MOSTLY(unsigned long, espfix_waddr); + +extern void init_espfix_bsp(void); +extern void init_espfix_ap(void); + +#endif /* CONFIG_X86_64 */ + +#endif /* _ASM_X86_ESPFIX_H */ --- linux-3.13.0.orig/arch/x86/include/asm/hugetlb.h +++ linux-3.13.0/arch/x86/include/asm/hugetlb.h @@ -52,6 +52,7 @@ static inline void huge_ptep_clear_flush(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) { + ptep_clear_flush(vma, addr, ptep); } static inline int huge_pte_none(pte_t pte) --- linux-3.13.0.orig/arch/x86/include/asm/irqflags.h +++ linux-3.13.0/arch/x86/include/asm/irqflags.h @@ -129,7 +129,7 @@ #define PARAVIRT_ADJUST_EXCEPTION_FRAME /* */ -#define INTERRUPT_RETURN iretq +#define INTERRUPT_RETURN jmp native_iret #define USERGS_SYSRET64 \ swapgs; \ sysretq; --- linux-3.13.0.orig/arch/x86/include/asm/kvm_host.h +++ linux-3.13.0/arch/x86/include/asm/kvm_host.h @@ -462,7 +462,7 @@ bool nmi_injected; /* Trying to inject an NMI this entry */ struct mtrr_state_type mtrr_state; - u32 pat; + u64 pat; int switch_db_regs; unsigned long db[KVM_NR_DB_REGS]; @@ -480,6 +480,7 @@ u64 mmio_gva; unsigned access; gfn_t mmio_gfn; + u64 mmio_gen; struct kvm_pmu pmu; @@ -762,6 +763,8 @@ struct x86_instruction_info *info, enum x86_intercept_stage stage); void (*handle_external_intr)(struct kvm_vcpu *vcpu); + + int (*check_nested_events)(struct kvm_vcpu *vcpu, bool external_intr); }; struct kvm_arch_async_pf { @@ -980,6 +983,20 @@ kvm_queue_exception_e(vcpu, GP_VECTOR, error_code); } +static inline u64 get_canonical(u64 la) +{ + return ((int64_t)la << 16) >> 16; +} + +static inline bool is_noncanonical_address(u64 la) +{ +#ifdef CONFIG_X86_64 + return get_canonical(la) != la; +#else + return false; +#endif +} + #define TSS_IOPB_BASE_OFFSET 0x66 #define TSS_BASE_SIZE 0x68 #define TSS_IOPB_SIZE (65536 / 8) @@ -1038,7 +1055,7 @@ void kvm_vcpu_reset(struct kvm_vcpu *vcpu); void kvm_define_shared_msr(unsigned index, u32 msr); -void kvm_set_shared_msr(unsigned index, u64 val, u64 mask); +int kvm_set_shared_msr(unsigned index, u64 val, u64 mask); bool kvm_is_linear_rip(struct kvm_vcpu *vcpu, unsigned long linear_rip); --- linux-3.13.0.orig/arch/x86/include/asm/kvm_para.h +++ linux-3.13.0/arch/x86/include/asm/kvm_para.h @@ -2,6 +2,7 @@ #define _ASM_X86_KVM_PARA_H #include +#include #include extern void kvmclock_init(void); @@ -16,10 +17,15 @@ } #endif /* CONFIG_KVM_GUEST */ -/* This instruction is vmcall. On non-VT architectures, it will generate a - * trap that we will then rewrite to the appropriate instruction. +#ifdef CONFIG_DEBUG_RODATA +#define KVM_HYPERCALL \ + ALTERNATIVE(".byte 0x0f,0x01,0xc1", ".byte 0x0f,0x01,0xd9", X86_FEATURE_VMMCALL) +#else +/* On AMD processors, vmcall will generate a trap that we will + * then rewrite to the appropriate instruction. */ #define KVM_HYPERCALL ".byte 0x0f,0x01,0xc1" +#endif /* For KVM hypercalls, a three-byte sequence of either the vmcall or the vmmcall * instruction. The hypervisor may replace it with something else but only the @@ -85,28 +91,9 @@ return ret; } -static inline uint32_t kvm_cpuid_base(void) -{ - if (boot_cpu_data.cpuid_level < 0) - return 0; /* So we don't blow up on old processors */ - - if (cpu_has_hypervisor) - return hypervisor_cpuid_base("KVMKVMKVM\0\0\0", 0); - - return 0; -} - -static inline bool kvm_para_available(void) -{ - return kvm_cpuid_base() != 0; -} - -static inline unsigned int kvm_arch_para_features(void) -{ - return cpuid_eax(KVM_CPUID_FEATURES); -} - #ifdef CONFIG_KVM_GUEST +bool kvm_para_available(void); +unsigned int kvm_arch_para_features(void); void __init kvm_guest_init(void); void kvm_async_pf_task_wait(u32 token); void kvm_async_pf_task_wake(u32 token); @@ -126,6 +113,16 @@ #define kvm_async_pf_task_wait(T) do {} while(0) #define kvm_async_pf_task_wake(T) do {} while(0) +static inline bool kvm_para_available(void) +{ + return 0; +} + +static inline unsigned int kvm_arch_para_features(void) +{ + return 0; +} + static inline u32 kvm_read_and_reset_pf_reason(void) { return 0; --- linux-3.13.0.orig/arch/x86/include/asm/page_32_types.h +++ linux-3.13.0/arch/x86/include/asm/page_32_types.h @@ -20,7 +20,6 @@ #define THREAD_SIZE_ORDER 1 #define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER) -#define STACKFAULT_STACK 0 #define DOUBLEFAULT_STACK 1 #define NMI_STACK 0 #define DEBUG_STACK 0 --- linux-3.13.0.orig/arch/x86/include/asm/page_64_types.h +++ linux-3.13.0/arch/x86/include/asm/page_64_types.h @@ -14,12 +14,11 @@ #define IRQ_STACK_ORDER 2 #define IRQ_STACK_SIZE (PAGE_SIZE << IRQ_STACK_ORDER) -#define STACKFAULT_STACK 1 -#define DOUBLEFAULT_STACK 2 -#define NMI_STACK 3 -#define DEBUG_STACK 4 -#define MCE_STACK 5 -#define N_EXCEPTION_STACKS 5 /* hw limit: 7 */ +#define DOUBLEFAULT_STACK 1 +#define NMI_STACK 2 +#define DEBUG_STACK 3 +#define MCE_STACK 4 +#define N_EXCEPTION_STACKS 4 /* hw limit: 7 */ #define PUD_PAGE_SIZE (_AC(1, UL) << PUD_SHIFT) #define PUD_PAGE_MASK (~(PUD_PAGE_SIZE-1)) --- linux-3.13.0.orig/arch/x86/include/asm/pgtable_64_types.h +++ linux-3.13.0/arch/x86/include/asm/pgtable_64_types.h @@ -61,6 +61,8 @@ #define MODULES_VADDR _AC(0xffffffffa0000000, UL) #define MODULES_END _AC(0xffffffffff000000, UL) #define MODULES_LEN (MODULES_END - MODULES_VADDR) +#define ESPFIX_PGD_ENTRY _AC(-2, UL) +#define ESPFIX_BASE_ADDR (ESPFIX_PGD_ENTRY << PGDIR_SHIFT) #define EARLY_DYNAMIC_PAGE_TABLES 64 --- linux-3.13.0.orig/arch/x86/include/asm/pgtable_types.h +++ linux-3.13.0/arch/x86/include/asm/pgtable_types.h @@ -121,7 +121,8 @@ /* Set of bits not changed in pte_modify */ #define _PAGE_CHG_MASK (PTE_PFN_MASK | _PAGE_PCD | _PAGE_PWT | \ - _PAGE_SPECIAL | _PAGE_ACCESSED | _PAGE_DIRTY) + _PAGE_SPECIAL | _PAGE_ACCESSED | _PAGE_DIRTY | \ + _PAGE_SOFT_DIRTY) #define _HPAGE_CHG_MASK (_PAGE_CHG_MASK | _PAGE_PSE) #define _PAGE_CACHE_MASK (_PAGE_PCD | _PAGE_PWT) @@ -382,7 +383,8 @@ */ extern pte_t *lookup_address(unsigned long address, unsigned int *level); extern phys_addr_t slow_virt_to_phys(void *__address); - +extern int kernel_map_pages_in_pgd(pgd_t *pgd, u64 pfn, unsigned long address, + unsigned numpages, unsigned long page_flags); #endif /* !__ASSEMBLY__ */ #endif /* _ASM_X86_PGTABLE_DEFS_H */ --- linux-3.13.0.orig/arch/x86/include/asm/ptrace.h +++ linux-3.13.0/arch/x86/include/asm/ptrace.h @@ -232,6 +232,22 @@ #define ARCH_HAS_USER_SINGLE_STEP_INFO +/* + * When hitting ptrace_stop(), we cannot return using SYSRET because + * that does not restore the full CPU state, only a minimal set. The + * ptracer can change arbitrary register values, which is usually okay + * because the usual ptrace stops run off the signal delivery path which + * forces IRET; however, ptrace_event() stops happen in arbitrary places + * in the kernel and don't force IRET path. + * + * So force IRET path after a ptrace stop. + */ +#define arch_ptrace_stop_needed(code, info) \ +({ \ + set_thread_flag(TIF_NOTIFY_RESUME); \ + false; \ +}) + struct user_desc; extern int do_get_thread_area(struct task_struct *p, int idx, struct user_desc __user *info); --- linux-3.13.0.orig/arch/x86/include/asm/setup.h +++ linux-3.13.0/arch/x86/include/asm/setup.h @@ -64,6 +64,8 @@ #ifndef _SETUP +#include + /* * This is set up by the setup-routine at boot-time */ --- linux-3.13.0.orig/arch/x86/include/asm/topology.h +++ linux-3.13.0/arch/x86/include/asm/topology.h @@ -119,9 +119,10 @@ extern const struct cpumask *cpu_coregroup_mask(int cpu); -#ifdef ENABLE_TOPO_DEFINES #define topology_physical_package_id(cpu) (cpu_data(cpu).phys_proc_id) #define topology_core_id(cpu) (cpu_data(cpu).cpu_core_id) + +#ifdef ENABLE_TOPO_DEFINES #define topology_core_cpumask(cpu) (per_cpu(cpu_core_map, cpu)) #define topology_thread_cpumask(cpu) (per_cpu(cpu_sibling_map, cpu)) #endif --- linux-3.13.0.orig/arch/x86/include/asm/traps.h +++ linux-3.13.0/arch/x86/include/asm/traps.h @@ -39,6 +39,7 @@ #ifdef CONFIG_TRACING asmlinkage void trace_page_fault(void); +#define trace_stack_segment stack_segment #define trace_divide_error divide_error #define trace_bounds bounds #define trace_invalid_op invalid_op --- linux-3.13.0.orig/arch/x86/include/asm/vga.h +++ linux-3.13.0/arch/x86/include/asm/vga.h @@ -17,10 +17,4 @@ #define vga_readb(x) (*(x)) #define vga_writeb(x, y) (*(y) = (x)) -#ifdef CONFIG_FB_EFI -#define __ARCH_HAS_VGA_DEFAULT_DEVICE -extern struct pci_dev *vga_default_device(void); -extern void vga_set_default_device(struct pci_dev *pdev); -#endif - #endif /* _ASM_X86_VGA_H */ --- linux-3.13.0.orig/arch/x86/include/asm/xsave.h +++ linux-3.13.0/arch/x86/include/asm/xsave.h @@ -6,9 +6,14 @@ #define XSTATE_CPUID 0x0000000d -#define XSTATE_FP 0x1 -#define XSTATE_SSE 0x2 -#define XSTATE_YMM 0x4 +#define XSTATE_FP 0x1 +#define XSTATE_SSE 0x2 +#define XSTATE_YMM 0x4 +#define XSTATE_BNDREGS 0x8 +#define XSTATE_BNDCSR 0x10 +#define XSTATE_OPMASK 0x20 +#define XSTATE_ZMM_Hi256 0x40 +#define XSTATE_Hi16_ZMM 0x80 #define XSTATE_FPSSE (XSTATE_FP | XSTATE_SSE) @@ -23,7 +28,7 @@ /* * These are the features that the OS can handle currently. */ -#define XCNTXT_MASK (XSTATE_FP | XSTATE_SSE | XSTATE_YMM) +#define XCNTXT_MASK (XSTATE_FP | XSTATE_SSE | XSTATE_YMM | XSTATE_OPMASK | XSTATE_ZMM_Hi256 | XSTATE_Hi16_ZMM) #ifdef CONFIG_X86_64 #define REX_PREFIX "0x48, " --- linux-3.13.0.orig/arch/x86/include/uapi/asm/ldt.h +++ linux-3.13.0/arch/x86/include/uapi/asm/ldt.h @@ -28,6 +28,13 @@ unsigned int seg_not_present:1; unsigned int useable:1; #ifdef __x86_64__ + /* + * Because this bit is not present in 32-bit user code, user + * programs can pass uninitialized values here. Therefore, in + * any context in which a user_desc comes from a 32-bit program, + * the kernel must act as though lm == 0, regardless of the + * actual value. + */ unsigned int lm:1; #endif }; --- linux-3.13.0.orig/arch/x86/include/uapi/asm/msr-index.h +++ linux-3.13.0/arch/x86/include/uapi/asm/msr-index.h @@ -184,6 +184,7 @@ #define MSR_AMD64_PATCH_LOADER 0xc0010020 #define MSR_AMD64_OSVW_ID_LENGTH 0xc0010140 #define MSR_AMD64_OSVW_STATUS 0xc0010141 +#define MSR_AMD64_LS_CFG 0xc0011020 #define MSR_AMD64_DC_CFG 0xc0011022 #define MSR_AMD64_BU_CFG2 0xc001102a #define MSR_AMD64_IBSFETCHCTL 0xc0011030 --- linux-3.13.0.orig/arch/x86/include/uapi/asm/vmx.h +++ linux-3.13.0/arch/x86/include/uapi/asm/vmx.h @@ -67,6 +67,7 @@ #define EXIT_REASON_EPT_MISCONFIG 49 #define EXIT_REASON_INVEPT 50 #define EXIT_REASON_PREEMPTION_TIMER 52 +#define EXIT_REASON_INVVPID 53 #define EXIT_REASON_WBINVD 54 #define EXIT_REASON_XSETBV 55 #define EXIT_REASON_APIC_WRITE 56 @@ -114,6 +115,7 @@ { EXIT_REASON_EOI_INDUCED, "EOI_INDUCED" }, \ { EXIT_REASON_INVALID_STATE, "INVALID_STATE" }, \ { EXIT_REASON_INVD, "INVD" }, \ + { EXIT_REASON_INVVPID, "INVVPID" }, \ { EXIT_REASON_INVPCID, "INVPCID" } #endif /* _UAPIVMX_H */ --- linux-3.13.0.orig/arch/x86/kernel/Makefile +++ linux-3.13.0/arch/x86/kernel/Makefile @@ -29,6 +29,7 @@ obj-y += syscall_$(BITS).o obj-$(CONFIG_X86_64) += vsyscall_64.o obj-$(CONFIG_X86_64) += vsyscall_emu_64.o +obj-$(CONFIG_X86_ESPFIX64) += espfix_64.o obj-y += bootflag.o e820.o obj-y += pci-dma.o quirks.o topology.o kdebugfs.o obj-y += alternative.o i8253.o pci-nommu.o hw_breakpoint.o --- linux-3.13.0.orig/arch/x86/kernel/apic/apic.c +++ linux-3.13.0/arch/x86/kernel/apic/apic.c @@ -1283,7 +1283,7 @@ unsigned int value, queued; int i, j, acked = 0; unsigned long long tsc = 0, ntsc; - long long max_loops = cpu_khz; + long long max_loops = cpu_khz ? cpu_khz : 1000000; if (cpu_has_tsc) rdtscll(tsc); @@ -1380,7 +1380,7 @@ break; } if (queued) { - if (cpu_has_tsc) { + if (cpu_has_tsc && cpu_khz) { rdtscll(ntsc); max_loops = (cpu_khz << 10) - (ntsc - tsc); } else --- linux-3.13.0.orig/arch/x86/kernel/cpu/amd.c +++ linux-3.13.0/arch/x86/kernel/cpu/amd.c @@ -219,7 +219,7 @@ */ WARN_ONCE(1, "WARNING: This combination of AMD" " processors is not suitable for SMP.\n"); - add_taint(TAINT_UNSAFE_SMP, LOCKDEP_NOW_UNRELIABLE); + add_taint(TAINT_CPU_OUT_OF_SPEC, LOCKDEP_NOW_UNRELIABLE); } static void init_amd_k7(struct cpuinfo_x86 *c) @@ -508,6 +508,23 @@ set_cpu_cap(c, X86_FEATURE_EXTD_APICID); } #endif + + /* + * This is only needed to tell the kernel whether to use VMCALL + * and VMMCALL. VMMCALL is never executed except under virt, so + * we can set it unconditionally. + */ + set_cpu_cap(c, X86_FEATURE_VMMCALL); + + /* F16h erratum 793, CVE-2013-6885 */ + if (c->x86 == 0x16 && c->x86_model <= 0xf) { + u64 val; + + rdmsrl(MSR_AMD64_LS_CFG, val); + if (!(val & BIT(15))) + wrmsrl(MSR_AMD64_LS_CFG, val | BIT(15)); + } + } static const int amd_erratum_383[]; --- linux-3.13.0.orig/arch/x86/kernel/cpu/common.c +++ linux-3.13.0/arch/x86/kernel/cpu/common.c @@ -144,6 +144,8 @@ static int __init x86_xsave_setup(char *s) { + if (strlen(s)) + return 0; setup_clear_cpu_cap(X86_FEATURE_XSAVE); setup_clear_cpu_cap(X86_FEATURE_XSAVEOPT); setup_clear_cpu_cap(X86_FEATURE_AVX); @@ -284,8 +286,13 @@ raw_local_save_flags(eflags); BUG_ON(eflags & X86_EFLAGS_AC); - if (cpu_has(c, X86_FEATURE_SMAP)) + if (cpu_has(c, X86_FEATURE_SMAP)) { +#ifdef CONFIG_X86_SMAP set_in_cr4(X86_CR4_SMAP); +#else + clear_in_cr4(X86_CR4_SMAP); +#endif + } } /* @@ -1135,7 +1142,7 @@ /* Flags to clear on syscall */ wrmsrl(MSR_SYSCALL_MASK, X86_EFLAGS_TF|X86_EFLAGS_DF|X86_EFLAGS_IF| - X86_EFLAGS_IOPL|X86_EFLAGS_AC); + X86_EFLAGS_IOPL|X86_EFLAGS_AC|X86_EFLAGS_NT); } /* --- linux-3.13.0.orig/arch/x86/kernel/cpu/intel.c +++ linux-3.13.0/arch/x86/kernel/cpu/intel.c @@ -154,6 +154,21 @@ setup_clear_cpu_cap(X86_FEATURE_ERMS); } } + + /* + * Intel Quark Core DevMan_001.pdf section 6.4.11 + * "The operating system also is required to invalidate (i.e., flush) + * the TLB when any changes are made to any of the page table entries. + * The operating system must reload CR3 to cause the TLB to be flushed" + * + * As a result cpu_has_pge() in arch/x86/include/asm/tlbflush.h should + * be false so that __flush_tlb_all() causes CR3 insted of CR4.PGE + * to be modified + */ + if (c->x86 == 5 && c->x86_model == 9) { + pr_info("Disabling PGE capability bit\n"); + setup_clear_cpu_cap(X86_FEATURE_PGE); + } } #ifdef CONFIG_X86_32 @@ -196,6 +211,14 @@ } } +static int forcepae; +static int __init forcepae_setup(char *__unused) +{ + forcepae = 1; + return 1; +} +__setup("forcepae", forcepae_setup); + static void intel_workarounds(struct cpuinfo_x86 *c) { unsigned long lo, hi; @@ -226,6 +249,17 @@ clear_cpu_cap(c, X86_FEATURE_SEP); /* + * PAE CPUID issue: many Pentium M report no PAE but may have a + * functionally usable PAE implementation. + * Forcefully enable PAE if kernel parameter "forcepae" is present. + */ + if (forcepae) { + printk(KERN_WARNING "PAE forced!\n"); + set_cpu_cap(c, X86_FEATURE_PAE); + add_taint(TAINT_CPU_OUT_OF_SPEC, LOCKDEP_NOW_UNRELIABLE); + } + + /* * P4 Xeon errata 037 workaround. * Hardware prefetcher may cause stale data to be loaded into the cache. */ @@ -628,7 +662,7 @@ tlb_flushall_shift = 5; break; case 0x63a: /* Ivybridge */ - tlb_flushall_shift = 1; + tlb_flushall_shift = 2; break; default: tlb_flushall_shift = 6; --- linux-3.13.0.orig/arch/x86/kernel/cpu/mshyperv.c +++ linux-3.13.0/arch/x86/kernel/cpu/mshyperv.c @@ -26,6 +26,7 @@ #include #include #include +#include struct ms_hyperv_info ms_hyperv; EXPORT_SYMBOL_GPL(ms_hyperv); @@ -91,20 +92,16 @@ lapic_timer_frequency = hv_lapic_frequency; printk(KERN_INFO "HyperV: LAPIC Timer Frequency: %#x\n", lapic_timer_frequency); - - /* - * On Hyper-V, when we are booting off an EFI firmware stack, - * we do not have many legacy devices including PIC, PIT etc. - */ - if (efi_enabled(EFI_BOOT)) { - printk(KERN_INFO "HyperV: Using null_legacy_pic\n"); - legacy_pic = &null_legacy_pic; - } } #endif if (ms_hyperv.features & HV_X64_MSR_TIME_REF_COUNT_AVAILABLE) clocksource_register_hz(&hyperv_cs, NSEC_PER_SEC/100); + +#ifdef CONFIG_X86_IO_APIC + no_timer_check = 1; +#endif + } const __refconst struct hypervisor_x86 x86_hyper_ms_hyperv = { --- linux-3.13.0.orig/arch/x86/kernel/cpu/perf_event.c +++ linux-3.13.0/arch/x86/kernel/cpu/perf_event.c @@ -1192,6 +1192,9 @@ for (i = 0; i < cpuc->n_events; i++) { if (event == cpuc->event_list[i]) { + if (i >= cpuc->n_events - cpuc->n_added) + --cpuc->n_added; + if (x86_pmu.put_event_constraints) x86_pmu.put_event_constraints(cpuc, event); --- linux-3.13.0.orig/arch/x86/kernel/cpu/perf_event_intel.c +++ linux-3.13.0/arch/x86/kernel/cpu/perf_event_intel.c @@ -1385,6 +1385,15 @@ intel_pmu_lbr_read(); /* + * CondChgd bit 63 doesn't mean any overflow status. Ignore + * and clear the bit. + */ + if (__test_and_clear_bit(63, (unsigned long *)&status)) { + if (!status) + goto done; + } + + /* * PEBS overflow sets bit 62 in the global status register */ if (__test_and_clear_bit(62, (unsigned long *)&status)) { --- linux-3.13.0.orig/arch/x86/kernel/cpu/perf_event_intel_uncore.c +++ linux-3.13.0/arch/x86/kernel/cpu/perf_event_intel_uncore.c @@ -2878,6 +2878,17 @@ return uncore_pmu_to_box(uncore_event_to_pmu(event), smp_processor_id()); } +/* + * Using uncore_pmu_event_init pmu event_init callback + * as a detection point for uncore events. + */ +static int uncore_pmu_event_init(struct perf_event *event); + +static bool is_uncore_event(struct perf_event *event) +{ + return event->pmu->event_init == uncore_pmu_event_init; +} + static int uncore_collect_events(struct intel_uncore_box *box, struct perf_event *leader, bool dogrp) { @@ -2892,13 +2903,18 @@ return -EINVAL; n = box->n_events; - box->event_list[n] = leader; - n++; + + if (is_uncore_event(leader)) { + box->event_list[n] = leader; + n++; + } + if (!dogrp) return n; list_for_each_entry(event, &leader->sibling_list, group_entry) { - if (event->state <= PERF_EVENT_STATE_OFF) + if (!is_uncore_event(event) || + event->state <= PERF_EVENT_STATE_OFF) continue; if (n >= max_count) --- linux-3.13.0.orig/arch/x86/kernel/dumpstack_64.c +++ linux-3.13.0/arch/x86/kernel/dumpstack_64.c @@ -24,7 +24,6 @@ [ DEBUG_STACK-1 ] = "#DB", [ NMI_STACK-1 ] = "NMI", [ DOUBLEFAULT_STACK-1 ] = "#DF", - [ STACKFAULT_STACK-1 ] = "#SS", [ MCE_STACK-1 ] = "#MC", #if DEBUG_STKSZ > EXCEPTION_STKSZ [ N_EXCEPTION_STACKS ... --- linux-3.13.0.orig/arch/x86/kernel/early-quirks.c +++ linux-3.13.0/arch/x86/kernel/early-quirks.c @@ -203,18 +203,15 @@ revision = read_pci_config_byte(num, slot, func, PCI_REVISION_ID); /* - * Revision 13 of all triggering devices id in this quirk have - * a problem draining interrupts when irq remapping is enabled, - * and should be flagged as broken. Additionally revisions 0x12 - * and 0x22 of device id 0x3405 has this problem. + * Revision <= 13 of all triggering devices id in this quirk + * have a problem draining interrupts when irq remapping is + * enabled, and should be flagged as broken. Additionally + * revision 0x22 of device id 0x3405 has this problem. */ - if (revision == 0x13) + if (revision <= 0x13) set_irq_remapping_broken(); - else if ((device == 0x3405) && - ((revision == 0x12) || - (revision == 0x22))) + else if (device == 0x3405 && revision == 0x22) set_irq_remapping_broken(); - } /* --- linux-3.13.0.orig/arch/x86/kernel/entry_32.S +++ linux-3.13.0/arch/x86/kernel/entry_32.S @@ -431,8 +431,9 @@ jnz sysenter_audit sysenter_do_call: cmpl $(NR_syscalls), %eax - jae syscall_badsys + jae sysenter_badsys call *sys_call_table(,%eax,4) +sysenter_after_call: movl %eax,PT_EAX(%esp) LOCKDEP_SYS_EXIT DISABLE_INTERRUPTS(CLBR_ANY) @@ -513,6 +514,7 @@ jae syscall_badsys syscall_call: call *sys_call_table(,%eax,4) +syscall_after_call: movl %eax,PT_EAX(%esp) # store the return value syscall_exit: LOCKDEP_SYS_EXIT @@ -527,6 +529,7 @@ restore_all: TRACE_IRQS_IRET restore_all_notrace: +#ifdef CONFIG_X86_ESPFIX32 movl PT_EFLAGS(%esp), %eax # mix EFLAGS, SS and CS # Warning: PT_OLDSS(%esp) contains the wrong/random values if we # are returning to the kernel. @@ -537,6 +540,7 @@ cmpl $((SEGMENT_LDT << 8) | USER_RPL), %eax CFI_REMEMBER_STATE je ldt_ss # returning to user-space with LDT SS +#endif restore_nocheck: RESTORE_REGS 4 # skip orig_eax/error_code irq_return: @@ -549,13 +553,9 @@ .previous _ASM_EXTABLE(irq_return,iret_exc) +#ifdef CONFIG_X86_ESPFIX32 CFI_RESTORE_STATE ldt_ss: - larl PT_OLDSS(%esp), %eax - jnz restore_nocheck - testl $0x00400000, %eax # returning to 32bit stack? - jnz restore_nocheck # allright, normal return - #ifdef CONFIG_PARAVIRT /* * The kernel can't run on a non-flat stack if paravirt mode @@ -597,6 +597,7 @@ lss (%esp), %esp /* switch to espfix segment */ CFI_ADJUST_CFA_OFFSET -8 jmp restore_nocheck +#endif CFI_ENDPROC ENDPROC(system_call) @@ -687,8 +688,13 @@ END(syscall_fault) syscall_badsys: - movl $-ENOSYS,PT_EAX(%esp) - jmp resume_userspace + movl $-ENOSYS,%eax + jmp syscall_after_call +END(syscall_badsys) + +sysenter_badsys: + movl $-ENOSYS,%eax + jmp sysenter_after_call END(syscall_badsys) CFI_ENDPROC /* @@ -704,6 +710,7 @@ * the high word of the segment base from the GDT and swiches to the * normal stack and adjusts ESP with the matching offset. */ +#ifdef CONFIG_X86_ESPFIX32 /* fixup the stack */ mov GDT_ESPFIX_SS + 4, %al /* bits 16..23 */ mov GDT_ESPFIX_SS + 7, %ah /* bits 24..31 */ @@ -713,8 +720,10 @@ pushl_cfi %eax lss (%esp), %esp /* switch to the normal stack segment */ CFI_ADJUST_CFA_OFFSET -8 +#endif .endm .macro UNWIND_ESPFIX_STACK +#ifdef CONFIG_X86_ESPFIX32 movl %ss, %eax /* see if on espfix stack */ cmpw $__ESPFIX_SS, %ax @@ -725,6 +734,7 @@ /* switch to normal stack */ FIXUP_ESPFIX_STACK 27: +#endif .endm /* @@ -1355,11 +1365,13 @@ ENTRY(nmi) RING0_INT_FRAME ASM_CLAC +#ifdef CONFIG_X86_ESPFIX32 pushl_cfi %eax movl %ss, %eax cmpw $__ESPFIX_SS, %ax popl_cfi %eax je nmi_espfix_stack +#endif cmpl $ia32_sysenter_target,(%esp) je nmi_stack_fixup pushl_cfi %eax @@ -1399,6 +1411,7 @@ FIX_STACK 24, nmi_stack_correct, 1 jmp nmi_stack_correct +#ifdef CONFIG_X86_ESPFIX32 nmi_espfix_stack: /* We have a RING0_INT_FRAME here. * @@ -1420,6 +1433,7 @@ lss 12+4(%esp), %esp # back to espfix stack CFI_ADJUST_CFA_OFFSET -24 jmp irq_return +#endif CFI_ENDPROC END(nmi) --- linux-3.13.0.orig/arch/x86/kernel/entry_64.S +++ linux-3.13.0/arch/x86/kernel/entry_64.S @@ -58,6 +58,7 @@ #include #include #include +#include #include /* Avoid __ASSEMBLER__'ifying just for this. */ @@ -101,6 +102,39 @@ #endif .endm +#ifdef CONFIG_FRAME_POINTER +/* + * Stack traces will stop at the ftrace trampoline if the frame pointer + * is not set up properly. If fentry is used, we need to save a frame + * pointer for the parent as well as the function traced, because the + * fentry is called before the stack frame is set up, where as mcount + * is called afterward. + */ +.macro create_frame parent rip +#ifdef CC_USING_FENTRY + pushq \parent + pushq %rbp + movq %rsp, %rbp +#endif + pushq \rip + pushq %rbp + movq %rsp, %rbp +.endm + +.macro restore_frame +#ifdef CC_USING_FENTRY + addq $16, %rsp +#endif + popq %rbp + addq $8, %rsp +.endm +#else +.macro create_frame parent rip +.endm +.macro restore_frame +.endm +#endif /* CONFIG_FRAME_POINTER */ + ENTRY(ftrace_caller) /* Check if tracing was disabled (quick check) */ cmpl $0, function_trace_stop @@ -160,9 +194,13 @@ /* regs go into 4th parameter */ leaq (%rsp), %rcx + create_frame %rsi, %rdi + GLOBAL(ftrace_regs_call) call ftrace_stub + restore_frame + /* Copy flags back to SS, to restore them */ movq EFLAGS(%rsp), %rax movq %rax, SS(%rsp) @@ -1041,32 +1079,52 @@ irq_return: INTERRUPT_RETURN - _ASM_EXTABLE(irq_return, bad_iret) -#ifdef CONFIG_PARAVIRT ENTRY(native_iret) - iretq - _ASM_EXTABLE(native_iret, bad_iret) + /* + * Are we returning to a stack segment from the LDT? Note: in + * 64-bit mode SS:RSP on the exception stack is always valid. + */ +#ifdef CONFIG_X86_ESPFIX64 + testb $4,(SS-RIP)(%rsp) + jnz native_irq_return_ldt #endif - .section .fixup,"ax" -bad_iret: +.global native_irq_return_iret +native_irq_return_iret: /* - * The iret traps when the %cs or %ss being restored is bogus. - * We've lost the original trap vector and error code. - * #GPF is the most likely one to get for an invalid selector. - * So pretend we completed the iret and took the #GPF in user mode. - * - * We are now running with the kernel GS after exception recovery. - * But error_entry expects us to have user GS to match the user %cs, - * so swap back. + * This may fault. Non-paranoid faults on return to userspace are + * handled by fixup_bad_iret. These include #SS, #GP, and #NP. + * Double-faults due to espfix64 are handled in do_double_fault. + * Other faults here are fatal. */ - pushq $0 + iretq +#ifdef CONFIG_X86_ESPFIX64 +native_irq_return_ldt: + pushq_cfi %rax + pushq_cfi %rdi SWAPGS - jmp general_protection - - .previous + movq PER_CPU_VAR(espfix_waddr),%rdi + movq %rax,(0*8)(%rdi) /* RAX */ + movq (2*8)(%rsp),%rax /* RIP */ + movq %rax,(1*8)(%rdi) + movq (3*8)(%rsp),%rax /* CS */ + movq %rax,(2*8)(%rdi) + movq (4*8)(%rsp),%rax /* RFLAGS */ + movq %rax,(3*8)(%rdi) + movq (6*8)(%rsp),%rax /* SS */ + movq %rax,(5*8)(%rdi) + movq (5*8)(%rsp),%rax /* RSP */ + movq %rax,(4*8)(%rdi) + andl $0xffff0000,%eax + popq_cfi %rdi + orq PER_CPU_VAR(espfix_stack),%rax + SWAPGS + movq %rax,%rsp + popq_cfi %rax + jmp native_irq_return_iret +#endif /* edi: workmask, edx: work */ retint_careful: @@ -1110,9 +1168,9 @@ call preempt_schedule_irq jmp exit_intr #endif - CFI_ENDPROC END(common_interrupt) + /* * End of kprobes section */ @@ -1484,7 +1542,7 @@ paranoidzeroentry_ist debug do_debug DEBUG_STACK paranoidzeroentry_ist int3 do_int3 DEBUG_STACK -paranoiderrorentry stack_segment do_stack_segment +errorentry stack_segment do_stack_segment #ifdef CONFIG_XEN zeroentry xen_debug do_debug zeroentry xen_int3 do_int3 @@ -1594,16 +1652,15 @@ /* * There are two places in the kernel that can potentially fault with - * usergs. Handle them here. The exception handlers after iret run with - * kernel gs again, so don't set the user space flag. B stepping K8s - * sometimes report an truncated RIP for IRET exceptions returning to - * compat mode. Check for these here too. + * usergs. Handle them here. B stepping K8s sometimes report a + * truncated RIP for IRET exceptions returning to compat mode. Check + * for these here too. */ error_kernelspace: incl %ebx - leaq irq_return(%rip),%rcx + leaq native_irq_return_iret(%rip),%rcx cmpq %rcx,RIP+8(%rsp) - je error_swapgs + je error_bad_iret movl %ecx,%eax /* zero extend */ cmpq %rax,RIP+8(%rsp) je bstep_iret @@ -1614,7 +1671,15 @@ bstep_iret: /* Fix truncated RIP */ movq %rcx,RIP+8(%rsp) - jmp error_swapgs + /* fall through */ + +error_bad_iret: + SWAPGS + mov %rsp,%rdi + call fixup_bad_iret + mov %rax,%rsp + decl %ebx /* Return to usergs */ + jmp error_sti CFI_ENDPROC END(error_entry) --- linux-3.13.0.orig/arch/x86/kernel/espfix_64.c +++ linux-3.13.0/arch/x86/kernel/espfix_64.c @@ -0,0 +1,208 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2014 Intel Corporation; author: H. Peter Anvin + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * ----------------------------------------------------------------------- */ + +/* + * The IRET instruction, when returning to a 16-bit segment, only + * restores the bottom 16 bits of the user space stack pointer. This + * causes some 16-bit software to break, but it also leaks kernel state + * to user space. + * + * This works around this by creating percpu "ministacks", each of which + * is mapped 2^16 times 64K apart. When we detect that the return SS is + * on the LDT, we copy the IRET frame to the ministack and use the + * relevant alias to return to userspace. The ministacks are mapped + * readonly, so if the IRET fault we promote #GP to #DF which is an IST + * vector and thus has its own stack; we then do the fixup in the #DF + * handler. + * + * This file sets up the ministacks and the related page tables. The + * actual ministack invocation is in entry_64.S. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * Note: we only need 6*8 = 48 bytes for the espfix stack, but round + * it up to a cache line to avoid unnecessary sharing. + */ +#define ESPFIX_STACK_SIZE (8*8UL) +#define ESPFIX_STACKS_PER_PAGE (PAGE_SIZE/ESPFIX_STACK_SIZE) + +/* There is address space for how many espfix pages? */ +#define ESPFIX_PAGE_SPACE (1UL << (PGDIR_SHIFT-PAGE_SHIFT-16)) + +#define ESPFIX_MAX_CPUS (ESPFIX_STACKS_PER_PAGE * ESPFIX_PAGE_SPACE) +#if CONFIG_NR_CPUS > ESPFIX_MAX_CPUS +# error "Need more than one PGD for the ESPFIX hack" +#endif + +#define PGALLOC_GFP (GFP_KERNEL | __GFP_NOTRACK | __GFP_REPEAT | __GFP_ZERO) + +/* This contains the *bottom* address of the espfix stack */ +DEFINE_PER_CPU_READ_MOSTLY(unsigned long, espfix_stack); +DEFINE_PER_CPU_READ_MOSTLY(unsigned long, espfix_waddr); + +/* Initialization mutex - should this be a spinlock? */ +static DEFINE_MUTEX(espfix_init_mutex); + +/* Page allocation bitmap - each page serves ESPFIX_STACKS_PER_PAGE CPUs */ +#define ESPFIX_MAX_PAGES DIV_ROUND_UP(CONFIG_NR_CPUS, ESPFIX_STACKS_PER_PAGE) +static void *espfix_pages[ESPFIX_MAX_PAGES]; + +static __page_aligned_bss pud_t espfix_pud_page[PTRS_PER_PUD] + __aligned(PAGE_SIZE); + +static unsigned int page_random, slot_random; + +/* + * This returns the bottom address of the espfix stack for a specific CPU. + * The math allows for a non-power-of-two ESPFIX_STACK_SIZE, in which case + * we have to account for some amount of padding at the end of each page. + */ +static inline unsigned long espfix_base_addr(unsigned int cpu) +{ + unsigned long page, slot; + unsigned long addr; + + page = (cpu / ESPFIX_STACKS_PER_PAGE) ^ page_random; + slot = (cpu + slot_random) % ESPFIX_STACKS_PER_PAGE; + addr = (page << PAGE_SHIFT) + (slot * ESPFIX_STACK_SIZE); + addr = (addr & 0xffffUL) | ((addr & ~0xffffUL) << 16); + addr += ESPFIX_BASE_ADDR; + return addr; +} + +#define PTE_STRIDE (65536/PAGE_SIZE) +#define ESPFIX_PTE_CLONES (PTRS_PER_PTE/PTE_STRIDE) +#define ESPFIX_PMD_CLONES PTRS_PER_PMD +#define ESPFIX_PUD_CLONES (65536/(ESPFIX_PTE_CLONES*ESPFIX_PMD_CLONES)) + +#define PGTABLE_PROT ((_KERNPG_TABLE & ~_PAGE_RW) | _PAGE_NX) + +static void init_espfix_random(void) +{ + unsigned long rand; + + /* + * This is run before the entropy pools are initialized, + * but this is hopefully better than nothing. + */ + if (!arch_get_random_long(&rand)) { + /* The constant is an arbitrary large prime */ + rdtscll(rand); + rand *= 0xc345c6b72fd16123UL; + } + + slot_random = rand % ESPFIX_STACKS_PER_PAGE; + page_random = (rand / ESPFIX_STACKS_PER_PAGE) + & (ESPFIX_PAGE_SPACE - 1); +} + +void __init init_espfix_bsp(void) +{ + pgd_t *pgd_p; + pteval_t ptemask; + + ptemask = __supported_pte_mask; + + /* Install the espfix pud into the kernel page directory */ + pgd_p = &init_level4_pgt[pgd_index(ESPFIX_BASE_ADDR)]; + pgd_populate(&init_mm, pgd_p, (pud_t *)espfix_pud_page); + + /* Randomize the locations */ + init_espfix_random(); + + /* The rest is the same as for any other processor */ + init_espfix_ap(); +} + +void init_espfix_ap(void) +{ + unsigned int cpu, page; + unsigned long addr; + pud_t pud, *pud_p; + pmd_t pmd, *pmd_p; + pte_t pte, *pte_p; + int n; + void *stack_page; + pteval_t ptemask; + + /* We only have to do this once... */ + if (likely(this_cpu_read(espfix_stack))) + return; /* Already initialized */ + + cpu = smp_processor_id(); + addr = espfix_base_addr(cpu); + page = cpu/ESPFIX_STACKS_PER_PAGE; + + /* Did another CPU already set this up? */ + stack_page = ACCESS_ONCE(espfix_pages[page]); + if (likely(stack_page)) + goto done; + + mutex_lock(&espfix_init_mutex); + + /* Did we race on the lock? */ + stack_page = ACCESS_ONCE(espfix_pages[page]); + if (stack_page) + goto unlock_done; + + ptemask = __supported_pte_mask; + + pud_p = &espfix_pud_page[pud_index(addr)]; + pud = *pud_p; + if (!pud_present(pud)) { + pmd_p = (pmd_t *)__get_free_page(PGALLOC_GFP); + pud = __pud(__pa(pmd_p) | (PGTABLE_PROT & ptemask)); + paravirt_alloc_pmd(&init_mm, __pa(pmd_p) >> PAGE_SHIFT); + for (n = 0; n < ESPFIX_PUD_CLONES; n++) + set_pud(&pud_p[n], pud); + } + + pmd_p = pmd_offset(&pud, addr); + pmd = *pmd_p; + if (!pmd_present(pmd)) { + pte_p = (pte_t *)__get_free_page(PGALLOC_GFP); + pmd = __pmd(__pa(pte_p) | (PGTABLE_PROT & ptemask)); + paravirt_alloc_pte(&init_mm, __pa(pte_p) >> PAGE_SHIFT); + for (n = 0; n < ESPFIX_PMD_CLONES; n++) + set_pmd(&pmd_p[n], pmd); + } + + pte_p = pte_offset_kernel(&pmd, addr); + stack_page = (void *)__get_free_page(GFP_KERNEL); + pte = __pte(__pa(stack_page) | (__PAGE_KERNEL_RO & ptemask)); + for (n = 0; n < ESPFIX_PTE_CLONES; n++) + set_pte(&pte_p[n*PTE_STRIDE], pte); + + /* Job is done for this CPU and any CPU which shares this page */ + ACCESS_ONCE(espfix_pages[page]) = stack_page; + +unlock_done: + mutex_unlock(&espfix_init_mutex); +done: + this_cpu_write(espfix_stack, addr); + this_cpu_write(espfix_waddr, (unsigned long)stack_page + + (addr & ~PAGE_MASK)); +} --- linux-3.13.0.orig/arch/x86/kernel/ftrace.c +++ linux-3.13.0/arch/x86/kernel/ftrace.c @@ -77,8 +77,7 @@ return addr >= start && addr < end; } -static int -do_ftrace_mod_code(unsigned long ip, const void *new_code) +static unsigned long text_ip_addr(unsigned long ip) { /* * On x86_64, kernel text mappings are mapped read-only with @@ -91,7 +90,7 @@ if (within(ip, (unsigned long)_text, (unsigned long)_etext)) ip = (unsigned long)__va(__pa_symbol(ip)); - return probe_kernel_write((void *)ip, new_code, MCOUNT_INSN_SIZE); + return ip; } static const unsigned char *ftrace_nop_replace(void) @@ -123,8 +122,10 @@ if (memcmp(replaced, old_code, MCOUNT_INSN_SIZE) != 0) return -EINVAL; + ip = text_ip_addr(ip); + /* replace the text with the new text */ - if (do_ftrace_mod_code(ip, new_code)) + if (probe_kernel_write((void *)ip, new_code, MCOUNT_INSN_SIZE)) return -EPERM; sync_core(); @@ -221,37 +222,51 @@ return -EINVAL; } -int ftrace_update_ftrace_func(ftrace_func_t func) +static unsigned long ftrace_update_func; + +static int update_ftrace_func(unsigned long ip, void *new) { - unsigned long ip = (unsigned long)(&ftrace_call); - unsigned char old[MCOUNT_INSN_SIZE], *new; + unsigned char old[MCOUNT_INSN_SIZE]; int ret; - memcpy(old, &ftrace_call, MCOUNT_INSN_SIZE); - new = ftrace_call_replace(ip, (unsigned long)func); + memcpy(old, (void *)ip, MCOUNT_INSN_SIZE); + + ftrace_update_func = ip; + /* Make sure the breakpoints see the ftrace_update_func update */ + smp_wmb(); /* See comment above by declaration of modifying_ftrace_code */ atomic_inc(&modifying_ftrace_code); ret = ftrace_modify_code(ip, old, new); + atomic_dec(&modifying_ftrace_code); + + return ret; +} + +int ftrace_update_ftrace_func(ftrace_func_t func) +{ + unsigned long ip = (unsigned long)(&ftrace_call); + unsigned char *new; + int ret; + + new = ftrace_call_replace(ip, (unsigned long)func); + ret = update_ftrace_func(ip, new); + /* Also update the regs callback function */ if (!ret) { ip = (unsigned long)(&ftrace_regs_call); - memcpy(old, &ftrace_regs_call, MCOUNT_INSN_SIZE); new = ftrace_call_replace(ip, (unsigned long)func); - ret = ftrace_modify_code(ip, old, new); + ret = update_ftrace_func(ip, new); } - atomic_dec(&modifying_ftrace_code); - return ret; } static int is_ftrace_caller(unsigned long ip) { - if (ip == (unsigned long)(&ftrace_call) || - ip == (unsigned long)(&ftrace_regs_call)) + if (ip == ftrace_update_func) return 1; return 0; @@ -677,45 +692,41 @@ #ifdef CONFIG_DYNAMIC_FTRACE extern void ftrace_graph_call(void); -static int ftrace_mod_jmp(unsigned long ip, - int old_offset, int new_offset) +static unsigned char *ftrace_jmp_replace(unsigned long ip, unsigned long addr) { - unsigned char code[MCOUNT_INSN_SIZE]; + static union ftrace_code_union calc; - if (probe_kernel_read(code, (void *)ip, MCOUNT_INSN_SIZE)) - return -EFAULT; + /* Jmp not a call (ignore the .e8) */ + calc.e8 = 0xe9; + calc.offset = ftrace_calc_offset(ip + MCOUNT_INSN_SIZE, addr); - if (code[0] != 0xe9 || old_offset != *(int *)(&code[1])) - return -EINVAL; + /* + * ftrace external locks synchronize the access to the static variable. + */ + return calc.code; +} - *(int *)(&code[1]) = new_offset; +static int ftrace_mod_jmp(unsigned long ip, void *func) +{ + unsigned char *new; - if (do_ftrace_mod_code(ip, &code)) - return -EPERM; + new = ftrace_jmp_replace(ip, (unsigned long)func); - return 0; + return update_ftrace_func(ip, new); } int ftrace_enable_ftrace_graph_caller(void) { unsigned long ip = (unsigned long)(&ftrace_graph_call); - int old_offset, new_offset; - - old_offset = (unsigned long)(&ftrace_stub) - (ip + MCOUNT_INSN_SIZE); - new_offset = (unsigned long)(&ftrace_graph_caller) - (ip + MCOUNT_INSN_SIZE); - return ftrace_mod_jmp(ip, old_offset, new_offset); + return ftrace_mod_jmp(ip, &ftrace_graph_caller); } int ftrace_disable_ftrace_graph_caller(void) { unsigned long ip = (unsigned long)(&ftrace_graph_call); - int old_offset, new_offset; - - old_offset = (unsigned long)(&ftrace_graph_caller) - (ip + MCOUNT_INSN_SIZE); - new_offset = (unsigned long)(&ftrace_stub) - (ip + MCOUNT_INSN_SIZE); - return ftrace_mod_jmp(ip, old_offset, new_offset); + return ftrace_mod_jmp(ip, &ftrace_stub); } #endif /* !CONFIG_DYNAMIC_FTRACE */ --- linux-3.13.0.orig/arch/x86/kernel/head_32.S +++ linux-3.13.0/arch/x86/kernel/head_32.S @@ -544,6 +544,10 @@ /* This is global to keep gas from relaxing the jumps */ ENTRY(early_idt_handler) cld + + cmpl $2,(%esp) # X86_TRAP_NMI + je is_nmi # Ignore NMI + cmpl $2,%ss:early_recursion_flag je hlt_loop incl %ss:early_recursion_flag @@ -594,8 +598,9 @@ pop %edx pop %ecx pop %eax - addl $8,%esp /* drop vector number and error code */ decl %ss:early_recursion_flag +is_nmi: + addl $8,%esp /* drop vector number and error code */ iret ENDPROC(early_idt_handler) --- linux-3.13.0.orig/arch/x86/kernel/head_64.S +++ linux-3.13.0/arch/x86/kernel/head_64.S @@ -343,6 +343,9 @@ ENTRY(early_idt_handler) cld + cmpl $2,(%rsp) # X86_TRAP_NMI + je is_nmi # Ignore NMI + cmpl $2,early_recursion_flag(%rip) jz 1f incl early_recursion_flag(%rip) @@ -405,8 +408,9 @@ popq %rdx popq %rcx popq %rax - addq $16,%rsp # drop vector number and error code decl early_recursion_flag(%rip) +is_nmi: + addq $16,%rsp # drop vector number and error code INTERRUPT_RETURN ENDPROC(early_idt_handler) --- linux-3.13.0.orig/arch/x86/kernel/i387.c +++ linux-3.13.0/arch/x86/kernel/i387.c @@ -86,10 +86,19 @@ void __kernel_fpu_end(void) { - if (use_eager_fpu()) - math_state_restore(); - else + if (use_eager_fpu()) { + /* + * For eager fpu, most the time, tsk_used_math() is true. + * Restore the user math as we are done with the kernel usage. + * At few instances during thread exit, signal handling etc, + * tsk_used_math() is false. Those few places will take proper + * actions, so we don't need to restore the math here. + */ + if (likely(tsk_used_math(current))) + math_state_restore(); + } else { stts(); + } } EXPORT_SYMBOL(__kernel_fpu_end); --- linux-3.13.0.orig/arch/x86/kernel/i8259.c +++ linux-3.13.0/arch/x86/kernel/i8259.c @@ -299,13 +299,31 @@ static void init_8259A(int auto_eoi) { unsigned long flags; + unsigned char probe_val = ~(1 << PIC_CASCADE_IR); + unsigned char new_val; i8259A_auto_eoi = auto_eoi; raw_spin_lock_irqsave(&i8259A_lock, flags); - outb(0xff, PIC_MASTER_IMR); /* mask all of 8259A-1 */ + /* + * Check to see if we have a PIC. + * Mask all except the cascade and read + * back the value we just wrote. If we don't + * have a PIC, we will read 0xff as opposed to the + * value we wrote. + */ outb(0xff, PIC_SLAVE_IMR); /* mask all of 8259A-2 */ + outb(probe_val, PIC_MASTER_IMR); + new_val = inb(PIC_MASTER_IMR); + if (new_val != probe_val) { + printk(KERN_INFO "Using NULL legacy PIC\n"); + legacy_pic = &null_legacy_pic; + raw_spin_unlock_irqrestore(&i8259A_lock, flags); + return; + } + + outb(0xff, PIC_MASTER_IMR); /* mask all of 8259A-1 */ /* * outb_pic - this has to work on a wide range of PC hardware. --- linux-3.13.0.orig/arch/x86/kernel/kvm.c +++ linux-3.13.0/arch/x86/kernel/kvm.c @@ -280,7 +280,14 @@ static void __init paravirt_ops_setup(void) { pv_info.name = "KVM"; - pv_info.paravirt_enabled = 1; + + /* + * KVM isn't paravirt in the sense of paravirt_enabled. A KVM + * guest kernel works like a bare metal kernel with additional + * features, and paravirt_enabled is about features that are + * missing. + */ + pv_info.paravirt_enabled = 0; if (kvm_para_has_feature(KVM_FEATURE_NOP_IO_DELAY)) pv_cpu_ops.io_delay = kvm_io_delay; @@ -500,6 +507,38 @@ #endif } +static noinline uint32_t __kvm_cpuid_base(void) +{ + if (boot_cpu_data.cpuid_level < 0) + return 0; /* So we don't blow up on old processors */ + + if (cpu_has_hypervisor) + return hypervisor_cpuid_base("KVMKVMKVM\0\0\0", 0); + + return 0; +} + +static inline uint32_t kvm_cpuid_base(void) +{ + static int kvm_cpuid_base = -1; + + if (kvm_cpuid_base == -1) + kvm_cpuid_base = __kvm_cpuid_base(); + + return kvm_cpuid_base; +} + +bool kvm_para_available(void) +{ + return kvm_cpuid_base() != 0; +} +EXPORT_SYMBOL_GPL(kvm_para_available); + +unsigned int kvm_arch_para_features(void) +{ + return cpuid_eax(kvm_cpuid_base() | KVM_CPUID_FEATURES); +} + static uint32_t __init kvm_detect(void) { return kvm_cpuid_base(); --- linux-3.13.0.orig/arch/x86/kernel/kvmclock.c +++ linux-3.13.0/arch/x86/kernel/kvmclock.c @@ -263,8 +263,6 @@ #endif kvm_get_preset_lpj(); clocksource_register_hz(&kvm_clock, NSEC_PER_SEC); - pv_info.paravirt_enabled = 1; - pv_info.name = "KVM"; if (kvm_para_has_feature(KVM_FEATURE_CLOCKSOURCE_STABLE_BIT)) pvclock_set_flags(PVCLOCK_TSC_STABLE_BIT); --- linux-3.13.0.orig/arch/x86/kernel/ldt.c +++ linux-3.13.0/arch/x86/kernel/ldt.c @@ -229,6 +229,11 @@ } } + if (!IS_ENABLED(CONFIG_X86_16BIT) && !ldt_info.seg_32bit) { + error = -EINVAL; + goto out_unlock; + } + fill_ldt(&ldt, &ldt_info); if (oldmode) ldt.avl = 0; --- linux-3.13.0.orig/arch/x86/kernel/paravirt_patch_64.c +++ linux-3.13.0/arch/x86/kernel/paravirt_patch_64.c @@ -6,7 +6,6 @@ DEF_NATIVE(pv_irq_ops, irq_enable, "sti"); DEF_NATIVE(pv_irq_ops, restore_fl, "pushq %rdi; popfq"); DEF_NATIVE(pv_irq_ops, save_fl, "pushfq; popq %rax"); -DEF_NATIVE(pv_cpu_ops, iret, "iretq"); DEF_NATIVE(pv_mmu_ops, read_cr2, "movq %cr2, %rax"); DEF_NATIVE(pv_mmu_ops, read_cr3, "movq %cr3, %rax"); DEF_NATIVE(pv_mmu_ops, write_cr3, "movq %rdi, %cr3"); @@ -50,7 +49,6 @@ PATCH_SITE(pv_irq_ops, save_fl); PATCH_SITE(pv_irq_ops, irq_enable); PATCH_SITE(pv_irq_ops, irq_disable); - PATCH_SITE(pv_cpu_ops, iret); PATCH_SITE(pv_cpu_ops, irq_enable_sysexit); PATCH_SITE(pv_cpu_ops, usergs_sysret32); PATCH_SITE(pv_cpu_ops, usergs_sysret64); --- linux-3.13.0.orig/arch/x86/kernel/pci-dma.c +++ linux-3.13.0/arch/x86/kernel/pci-dma.c @@ -100,8 +100,10 @@ flag |= __GFP_ZERO; again: page = NULL; - if (!(flag & GFP_ATOMIC)) + /* CMA can be used only in the context which permits sleeping */ + if (flag & __GFP_WAIT) page = dma_alloc_from_contiguous(dev, count, get_order(size)); + /* fallback */ if (!page) page = alloc_pages_node(dev_to_node(dev), flag, get_order(size)); if (!page) --- linux-3.13.0.orig/arch/x86/kernel/process_64.c +++ linux-3.13.0/arch/x86/kernel/process_64.c @@ -286,24 +286,9 @@ fpu = switch_fpu_prepare(prev_p, next_p, cpu); - /* - * Reload esp0, LDT and the page table pointer: - */ + /* Reload esp0 and ss1. */ load_sp0(tss, next); - /* - * Switch DS and ES. - * This won't pick up thread selector changes, but I guess that is ok. - */ - savesegment(es, prev->es); - if (unlikely(next->es | prev->es)) - loadsegment(es, next->es); - - savesegment(ds, prev->ds); - if (unlikely(next->ds | prev->ds)) - loadsegment(ds, next->ds); - - /* We must save %fs and %gs before load_TLS() because * %fs and %gs may be cleared by load_TLS(). * @@ -312,41 +297,101 @@ savesegment(fs, fsindex); savesegment(gs, gsindex); + /* + * Load TLS before restoring any segments so that segment loads + * reference the correct GDT entries. + */ load_TLS(next, cpu); /* - * Leave lazy mode, flushing any hypercalls made here. - * This must be done before restoring TLS segments so - * the GDT and LDT are properly updated, and must be - * done before math_state_restore, so the TS bit is up - * to date. + * Leave lazy mode, flushing any hypercalls made here. This + * must be done after loading TLS entries in the GDT but before + * loading segments that might reference them, and and it must + * be done before math_state_restore, so the TS bit is up to + * date. */ arch_end_context_switch(next_p); + /* Switch DS and ES. + * + * Reading them only returns the selectors, but writing them (if + * nonzero) loads the full descriptor from the GDT or LDT. The + * LDT for next is loaded in switch_mm, and the GDT is loaded + * above. + * + * We therefore need to write new values to the segment + * registers on every context switch unless both the new and old + * values are zero. + * + * Note that we don't need to do anything for CS and SS, as + * those are saved and restored as part of pt_regs. + */ + savesegment(es, prev->es); + if (unlikely(next->es | prev->es)) + loadsegment(es, next->es); + + savesegment(ds, prev->ds); + if (unlikely(next->ds | prev->ds)) + loadsegment(ds, next->ds); + /* * Switch FS and GS. * - * Segment register != 0 always requires a reload. Also - * reload when it has changed. When prev process used 64bit - * base always reload to avoid an information leak. + * These are even more complicated than FS and GS: they have + * 64-bit bases are that controlled by arch_prctl. Those bases + * only differ from the values in the GDT or LDT if the selector + * is 0. + * + * Loading the segment register resets the hidden base part of + * the register to 0 or the value from the GDT / LDT. If the + * next base address zero, writing 0 to the segment register is + * much faster than using wrmsr to explicitly zero the base. + * + * The thread_struct.fs and thread_struct.gs values are 0 + * if the fs and gs bases respectively are not overridden + * from the values implied by fsindex and gsindex. They + * are nonzero, and store the nonzero base addresses, if + * the bases are overridden. + * + * (fs != 0 && fsindex != 0) || (gs != 0 && gsindex != 0) should + * be impossible. + * + * Therefore we need to reload the segment registers if either + * the old or new selector is nonzero, and we need to override + * the base address if next thread expects it to be overridden. + * + * This code is unnecessarily slow in the case where the old and + * new indexes are zero and the new base is nonzero -- it will + * unnecessarily write 0 to the selector before writing the new + * base address. + * + * Note: This all depends on arch_prctl being the only way that + * user code can override the segment base. Once wrfsbase and + * wrgsbase are enabled, most of this code will need to change. */ if (unlikely(fsindex | next->fsindex | prev->fs)) { loadsegment(fs, next->fsindex); + /* - * Check if the user used a selector != 0; if yes - * clear 64bit base, since overloaded base is always - * mapped to the Null selector + * If user code wrote a nonzero value to FS, then it also + * cleared the overridden base address. + * + * XXX: if user code wrote 0 to FS and cleared the base + * address itself, we won't notice and we'll incorrectly + * restore the prior base address next time we reschdule + * the process. */ if (fsindex) prev->fs = 0; } - /* when next process has a 64bit base use it */ if (next->fs) wrmsrl(MSR_FS_BASE, next->fs); prev->fsindex = fsindex; if (unlikely(gsindex | next->gsindex | prev->gs)) { load_gs_index(next->gsindex); + + /* This works (and fails) the same way as fsindex above. */ if (gsindex) prev->gs = 0; } --- linux-3.13.0.orig/arch/x86/kernel/quirks.c +++ linux-3.13.0/arch/x86/kernel/quirks.c @@ -529,7 +529,7 @@ return; pci_read_config_dword(nb_ht, 0x60, &val); - node = val & 7; + node = pcibus_to_node(dev->bus) | (val & 7); /* * Some hardware may return an invalid node ID, * so check it first: --- linux-3.13.0.orig/arch/x86/kernel/reboot.c +++ linux-3.13.0/arch/x86/kernel/reboot.c @@ -385,7 +385,46 @@ DMI_MATCH(DMI_PRODUCT_NAME, "VGN-Z540N"), }, }, - + { /* Handle problems with rebooting on the Latitude E6520. */ + .callback = set_pci_reboot, + .ident = "Dell Latitude E6520", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6520"), + }, + }, + { /* Handle problems with rebooting on the OptiPlex 790. */ + .callback = set_pci_reboot, + .ident = "Dell OptiPlex 790", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 790"), + }, + }, + { /* Handle problems with rebooting on the OptiPlex 990. */ + .callback = set_pci_reboot, + .ident = "Dell OptiPlex 990", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 990"), + }, + }, + { /* Handle problems with rebooting on the Latitude E6220. */ + .callback = set_pci_reboot, + .ident = "Dell Latitude E6220", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6220"), + }, + }, + { /* Handle problems with rebooting on the OptiPlex 390. */ + .callback = set_pci_reboot, + .ident = "Dell OptiPlex 390", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 390"), + }, + }, { } }; --- linux-3.13.0.orig/arch/x86/kernel/resource.c +++ linux-3.13.0/arch/x86/kernel/resource.c @@ -37,10 +37,12 @@ void arch_remove_reservations(struct resource *avail) { - /* Trim out BIOS areas (low 1MB and high 2MB) and E820 regions */ + /* + * Trim out BIOS area (high 2MB) and E820 regions. We do not remove + * the low 1MB unconditionally, as this area is needed for some ISA + * cards requiring a memory range, e.g. the i82365 PCMCIA controller. + */ if (avail->flags & IORESOURCE_MEM) { - if (avail->start < BIOS_END) - avail->start = BIOS_END; resource_clip(avail, BIOS_ROM_BASE, BIOS_ROM_END); remove_e820_regions(avail); --- linux-3.13.0.orig/arch/x86/kernel/signal.c +++ linux-3.13.0/arch/x86/kernel/signal.c @@ -673,6 +673,11 @@ * handler too. */ regs->flags &= ~(X86_EFLAGS_DF|X86_EFLAGS_RF|X86_EFLAGS_TF); + /* + * Ensure the signal handler starts with the new fpu state. + */ + if (used_math()) + drop_init_fpu(current); } signal_setup_done(failed, ksig, test_thread_flag(TIF_SINGLESTEP)); } --- linux-3.13.0.orig/arch/x86/kernel/smpboot.c +++ linux-3.13.0/arch/x86/kernel/smpboot.c @@ -243,6 +243,13 @@ check_tsc_sync_target(); /* + * Enable the espfix hack for this CPU + */ +#ifdef CONFIG_X86_ESPFIX64 + init_espfix_ap(); +#endif + + /* * We need to hold vector_lock so there the set of online cpus * does not change while we are assigning vectors to cpus. Holding * this lock ensures we don't half assign or remove an irq from a cpu. @@ -1280,6 +1287,9 @@ for_each_cpu(sibling, cpu_sibling_mask(cpu)) cpumask_clear_cpu(cpu, cpu_sibling_mask(sibling)); + for_each_cpu(sibling, cpu_llc_shared_mask(cpu)) + cpumask_clear_cpu(cpu, cpu_llc_shared_mask(sibling)); + cpumask_clear(cpu_llc_shared_mask(cpu)); cpumask_clear(cpu_sibling_mask(cpu)); cpumask_clear(cpu_core_mask(cpu)); c->phys_proc_id = 0; --- linux-3.13.0.orig/arch/x86/kernel/tls.c +++ linux-3.13.0/arch/x86/kernel/tls.c @@ -27,6 +27,37 @@ return -ESRCH; } +static bool tls_desc_okay(const struct user_desc *info) +{ + if (LDT_empty(info)) + return true; + + /* + * espfix is required for 16-bit data segments, but espfix + * only works for LDT segments. + */ + if (!info->seg_32bit) + return false; + + /* Only allow data segments in the TLS array. */ + if (info->contents > 1) + return false; + + /* + * Non-present segments with DPL 3 present an interesting attack + * surface. The kernel should handle such segments correctly, + * but TLS is very difficult to protect in a sandbox, so prevent + * such segments from being created. + * + * If userspace needs to remove a TLS entry, it can still delete + * it outright. + */ + if (info->seg_not_present) + return false; + + return true; +} + static void set_tls_desc(struct task_struct *p, int idx, const struct user_desc *info, int n) { @@ -66,6 +97,9 @@ if (copy_from_user(&info, u_info, sizeof(info))) return -EFAULT; + if (!tls_desc_okay(&info)) + return -EINVAL; + if (idx == -1) idx = info.entry_number; @@ -192,6 +226,7 @@ { struct user_desc infobuf[GDT_ENTRY_TLS_ENTRIES]; const struct user_desc *info; + int i; if (pos >= GDT_ENTRY_TLS_ENTRIES * sizeof(struct user_desc) || (pos % sizeof(struct user_desc)) != 0 || @@ -205,6 +240,10 @@ else info = infobuf; + for (i = 0; i < count / sizeof(struct user_desc); i++) + if (!tls_desc_okay(info + i)) + return -EINVAL; + set_tls_desc(target, GDT_ENTRY_TLS_MIN + (pos / sizeof(struct user_desc)), info, count / sizeof(struct user_desc)); --- linux-3.13.0.orig/arch/x86/kernel/traps.c +++ linux-3.13.0/arch/x86/kernel/traps.c @@ -221,33 +221,41 @@ coprocessor_segment_overrun) DO_ERROR(X86_TRAP_TS, SIGSEGV, "invalid TSS", invalid_TSS) DO_ERROR(X86_TRAP_NP, SIGBUS, "segment not present", segment_not_present) -#ifdef CONFIG_X86_32 DO_ERROR(X86_TRAP_SS, SIGBUS, "stack segment", stack_segment) -#endif DO_ERROR_INFO(X86_TRAP_AC, SIGBUS, "alignment check", alignment_check, BUS_ADRALN, 0) #ifdef CONFIG_X86_64 /* Runs on IST stack */ -dotraplinkage void do_stack_segment(struct pt_regs *regs, long error_code) -{ - enum ctx_state prev_state; - - prev_state = exception_enter(); - if (notify_die(DIE_TRAP, "stack segment", regs, error_code, - X86_TRAP_SS, SIGBUS) != NOTIFY_STOP) { - preempt_conditional_sti(regs); - do_trap(X86_TRAP_SS, SIGBUS, "stack segment", regs, error_code, NULL); - preempt_conditional_cli(regs); - } - exception_exit(prev_state); -} - dotraplinkage void do_double_fault(struct pt_regs *regs, long error_code) { static const char str[] = "double fault"; struct task_struct *tsk = current; +#ifdef CONFIG_X86_ESPFIX64 + extern unsigned char native_irq_return_iret[]; + + /* + * If IRET takes a non-IST fault on the espfix64 stack, then we + * end up promoting it to a doublefault. In that case, modify + * the stack to make it look like we just entered the #GP + * handler from user space, similar to bad_iret. + */ + if (((long)regs->sp >> PGDIR_SHIFT) == ESPFIX_PGD_ENTRY && + regs->cs == __KERNEL_CS && + regs->ip == (unsigned long)native_irq_return_iret) + { + struct pt_regs *normal_regs = task_pt_regs(current); + + /* Fake a #GP(0) from userspace. */ + memmove(&normal_regs->ip, (void *)regs->sp, 5*8); + normal_regs->orig_ax = 0; /* Missing (lost) #GP error code */ + regs->ip = (unsigned long)general_protection; + regs->sp = (unsigned long)&normal_regs->orig_ax; + return; + } +#endif + exception_enter(); /* Return not checked because double check cannot be ignored */ notify_die(DIE_TRAP, str, regs, error_code, X86_TRAP_DF, SIGSEGV); @@ -361,7 +369,7 @@ * for scheduling or signal handling. The actual stack switch is done in * entry.S */ -asmlinkage __kprobes struct pt_regs *sync_regs(struct pt_regs *eregs) +asmlinkage __visible notrace struct pt_regs *sync_regs(struct pt_regs *eregs) { struct pt_regs *regs = eregs; /* Did already sync */ @@ -380,6 +388,35 @@ *regs = *eregs; return regs; } + +struct bad_iret_stack { + void *error_entry_ret; + struct pt_regs regs; +}; + +asmlinkage __visible notrace +struct bad_iret_stack *fixup_bad_iret(struct bad_iret_stack *s) +{ + /* + * This is called from entry_64.S early in handling a fault + * caused by a bad iret to user mode. To handle the fault + * correctly, we want move our stack frame to task_pt_regs + * and we want to pretend that the exception came from the + * iret target. + */ + struct bad_iret_stack *new_stack = + container_of(task_pt_regs(current), + struct bad_iret_stack, regs); + + /* Copy the IRET target to the new stack. */ + memmove(&new_stack->regs.ip, (void *)s->regs.sp, 5*8); + + /* Copy the remainder of the stack from the current stack. */ + memmove(new_stack, s, offsetof(struct bad_iret_stack, regs.ip)); + + BUG_ON(!user_mode_vm(&new_stack->regs)); + return new_stack; +} #endif /* @@ -752,7 +789,7 @@ set_intr_gate(X86_TRAP_OLD_MF, coprocessor_segment_overrun); set_intr_gate(X86_TRAP_TS, invalid_TSS); set_intr_gate(X86_TRAP_NP, segment_not_present); - set_intr_gate_ist(X86_TRAP_SS, &stack_segment, STACKFAULT_STACK); + set_intr_gate(X86_TRAP_SS, stack_segment); set_intr_gate(X86_TRAP_GP, general_protection); set_intr_gate(X86_TRAP_SPURIOUS, spurious_interrupt_bug); set_intr_gate(X86_TRAP_MF, coprocessor_error); --- linux-3.13.0.orig/arch/x86/kernel/tsc.c +++ linux-3.13.0/arch/x86/kernel/tsc.c @@ -722,9 +722,9 @@ tsc_khz = cpufreq_scale(tsc_khz_ref, ref_freq, freq->new); if (!(freq->flags & CPUFREQ_CONST_LOOPS)) mark_tsc_unstable("cpufreq changes"); - } - set_cyc2ns_scale(tsc_khz, freq->cpu); + set_cyc2ns_scale(tsc_khz, freq->cpu); + } return 0; } @@ -974,14 +974,17 @@ x86_init.timers.tsc_pre_init(); - if (!cpu_has_tsc) + if (!cpu_has_tsc) { + setup_clear_cpu_cap(X86_FEATURE_TSC_DEADLINE_TIMER); return; + } tsc_khz = x86_platform.calibrate_tsc(); cpu_khz = tsc_khz; if (!tsc_khz) { mark_tsc_unstable("could not calculate TSC khz"); + setup_clear_cpu_cap(X86_FEATURE_TSC_DEADLINE_TIMER); return; } --- linux-3.13.0.orig/arch/x86/kernel/vsyscall_64.c +++ linux-3.13.0/arch/x86/kernel/vsyscall_64.c @@ -125,10 +125,10 @@ if (!show_unhandled_signals) return; - pr_notice_ratelimited("%s%s[%d] %s ip:%lx cs:%lx sp:%lx ax:%lx si:%lx di:%lx\n", - level, current->comm, task_pid_nr(current), - message, regs->ip, regs->cs, - regs->sp, regs->ax, regs->si, regs->di); + printk_ratelimited("%s%s[%d] %s ip:%lx cs:%lx sp:%lx ax:%lx si:%lx di:%lx\n", + level, current->comm, task_pid_nr(current), + message, regs->ip, regs->cs, + regs->sp, regs->ax, regs->si, regs->di); } static int addr_to_vsyscall_nr(unsigned long addr) --- linux-3.13.0.orig/arch/x86/kernel/xsave.c +++ linux-3.13.0/arch/x86/kernel/xsave.c @@ -268,8 +268,6 @@ if (use_fxsr() && save_xstate_epilog(buf_fx, ia32_fxstate)) return -1; - drop_init_fpu(tsk); /* trigger finit */ - return 0; } @@ -399,8 +397,11 @@ set_used_math(); } - if (use_eager_fpu()) + if (use_eager_fpu()) { + preempt_disable(); math_state_restore(); + preempt_enable(); + } return err; } else { --- linux-3.13.0.orig/arch/x86/kvm/cpuid.c +++ linux-3.13.0/arch/x86/kvm/cpuid.c @@ -43,14 +43,14 @@ return ret; } -void kvm_update_cpuid(struct kvm_vcpu *vcpu) +int kvm_update_cpuid(struct kvm_vcpu *vcpu) { struct kvm_cpuid_entry2 *best; struct kvm_lapic *apic = vcpu->arch.apic; best = kvm_find_cpuid_entry(vcpu, 1, 0); if (!best) - return; + return 0; /* Update OSXSAVE bit */ if (cpu_has_xsave && best->function == 0x1) { @@ -78,7 +78,17 @@ xstate_required_size(vcpu->arch.guest_supported_xcr0); } + /* + * The existing code assumes virtual address is 48-bit in the canonical + * address checks; exit if it is ever changed. + */ + best = kvm_find_cpuid_entry(vcpu, 0x80000008, 0); + if (best && ((best->eax & 0xff00) >> 8) != 48 && + ((best->eax & 0xff00) >> 8) != 0) + return -EINVAL; + kvm_pmu_cpuid_update(vcpu); + return 0; } static int is_efer_nx(void) @@ -141,10 +151,9 @@ } vcpu->arch.cpuid_nent = cpuid->nent; cpuid_fix_nx_cap(vcpu); - r = 0; kvm_apic_set_version(vcpu); kvm_x86_ops->cpuid_update(vcpu); - kvm_update_cpuid(vcpu); + r = kvm_update_cpuid(vcpu); out_free: vfree(cpuid_entries); @@ -168,9 +177,7 @@ vcpu->arch.cpuid_nent = cpuid->nent; kvm_apic_set_version(vcpu); kvm_x86_ops->cpuid_update(vcpu); - kvm_update_cpuid(vcpu); - return 0; - + r = kvm_update_cpuid(vcpu); out: return r; } --- linux-3.13.0.orig/arch/x86/kvm/cpuid.h +++ linux-3.13.0/arch/x86/kvm/cpuid.h @@ -3,7 +3,7 @@ #include "x86.h" -void kvm_update_cpuid(struct kvm_vcpu *vcpu); +int kvm_update_cpuid(struct kvm_vcpu *vcpu); struct kvm_cpuid_entry2 *kvm_find_cpuid_entry(struct kvm_vcpu *vcpu, u32 function, u32 index); int kvm_dev_ioctl_get_cpuid(struct kvm_cpuid2 *cpuid, --- linux-3.13.0.orig/arch/x86/kvm/emulate.c +++ linux-3.13.0/arch/x86/kvm/emulate.c @@ -498,11 +498,6 @@ masked_increment(reg_rmw(ctxt, VCPU_REGS_RSP), stack_mask(ctxt), inc); } -static inline void jmp_rel(struct x86_emulate_ctxt *ctxt, int rel) -{ - register_address_increment(ctxt, &ctxt->_eip, rel); -} - static u32 desc_limit_scaled(struct desc_struct *desc) { u32 limit = get_desc_limit(desc); @@ -576,6 +571,40 @@ return emulate_exception(ctxt, NM_VECTOR, 0, false); } +static inline int assign_eip_far(struct x86_emulate_ctxt *ctxt, ulong dst, + int cs_l) +{ + switch (ctxt->op_bytes) { + case 2: + ctxt->_eip = (u16)dst; + break; + case 4: + ctxt->_eip = (u32)dst; + break; +#ifdef CONFIG_X86_64 + case 8: + if ((cs_l && is_noncanonical_address(dst)) || + (!cs_l && (dst >> 32) != 0)) + return emulate_gp(ctxt, 0); + ctxt->_eip = dst; + break; +#endif + default: + WARN(1, "unsupported eip assignment size\n"); + } + return X86EMUL_CONTINUE; +} + +static inline int assign_eip_near(struct x86_emulate_ctxt *ctxt, ulong dst) +{ + return assign_eip_far(ctxt, dst, ctxt->mode == X86EMUL_MODE_PROT64); +} + +static inline int jmp_rel(struct x86_emulate_ctxt *ctxt, int rel) +{ + return assign_eip_near(ctxt, ctxt->_eip + rel); +} + static u16 get_segment_selector(struct x86_emulate_ctxt *ctxt, unsigned seg) { u16 selector; @@ -1409,11 +1438,12 @@ } /* Does not support long mode */ -static int load_segment_descriptor(struct x86_emulate_ctxt *ctxt, - u16 selector, int seg) +static int __load_segment_descriptor(struct x86_emulate_ctxt *ctxt, + u16 selector, int seg, u8 cpl, + struct desc_struct *desc) { struct desc_struct seg_desc, old_desc; - u8 dpl, rpl, cpl; + u8 dpl, rpl; unsigned err_vec = GP_VECTOR; u32 err_code = 0; bool null_selector = !(selector & ~0x3); /* 0000-0003 are null */ @@ -1441,7 +1471,6 @@ } rpl = selector & 3; - cpl = ctxt->ops->cpl(ctxt); /* NULL selector is not valid for TR, CS and SS (except for long mode) */ if ((seg == VCPU_SREG_CS @@ -1498,6 +1527,15 @@ if (rpl > cpl || dpl != cpl) goto exception; } + /* in long-mode d/b must be clear if l is set */ + if (seg_desc.d && seg_desc.l) { + u64 efer = 0; + + ctxt->ops->get_msr(ctxt, MSR_EFER, &efer); + if (efer & EFER_LMA) + goto exception; + } + /* CS(RPL) <- CPL */ selector = (selector & 0xfffc) | cpl; break; @@ -1537,12 +1575,21 @@ } load: ctxt->ops->set_segment(ctxt, selector, &seg_desc, 0, seg); + if (desc) + *desc = seg_desc; return X86EMUL_CONTINUE; exception: emulate_exception(ctxt, err_vec, err_code, true); return X86EMUL_PROPAGATE_FAULT; } +static int load_segment_descriptor(struct x86_emulate_ctxt *ctxt, + u16 selector, int seg) +{ + u8 cpl = ctxt->ops->cpl(ctxt); + return __load_segment_descriptor(ctxt, selector, seg, cpl, NULL); +} + static void write_register_operand(struct operand *op) { /* The 4-byte case *is* correct: in 64-bit mode we zero-extend. */ @@ -1937,17 +1984,31 @@ static int em_jmp_far(struct x86_emulate_ctxt *ctxt) { int rc; - unsigned short sel; + unsigned short sel, old_sel; + struct desc_struct old_desc, new_desc; + const struct x86_emulate_ops *ops = ctxt->ops; + u8 cpl = ctxt->ops->cpl(ctxt); + + /* Assignment of RIP may only fail in 64-bit mode */ + if (ctxt->mode == X86EMUL_MODE_PROT64) + ops->get_segment(ctxt, &old_sel, &old_desc, NULL, + VCPU_SREG_CS); memcpy(&sel, ctxt->src.valptr + ctxt->op_bytes, 2); - rc = load_segment_descriptor(ctxt, sel, VCPU_SREG_CS); + rc = __load_segment_descriptor(ctxt, sel, VCPU_SREG_CS, cpl, + &new_desc); if (rc != X86EMUL_CONTINUE) return rc; - ctxt->_eip = 0; - memcpy(&ctxt->_eip, ctxt->src.valptr, ctxt->op_bytes); - return X86EMUL_CONTINUE; + rc = assign_eip_far(ctxt, ctxt->src.val, new_desc.l); + if (rc != X86EMUL_CONTINUE) { + WARN_ON(ctxt->mode != X86EMUL_MODE_PROT64); + /* assigning eip failed; restore the old cs */ + ops->set_segment(ctxt, old_sel, &old_desc, 0, VCPU_SREG_CS); + return rc; + } + return rc; } static int em_grp45(struct x86_emulate_ctxt *ctxt) @@ -1958,13 +2019,15 @@ case 2: /* call near abs */ { long int old_eip; old_eip = ctxt->_eip; - ctxt->_eip = ctxt->src.val; + rc = assign_eip_near(ctxt, ctxt->src.val); + if (rc != X86EMUL_CONTINUE) + break; ctxt->src.val = old_eip; rc = em_push(ctxt); break; } case 4: /* jmp abs */ - ctxt->_eip = ctxt->src.val; + rc = assign_eip_near(ctxt, ctxt->src.val); break; case 5: /* jmp far */ rc = em_jmp_far(ctxt); @@ -1996,26 +2059,47 @@ static int em_ret(struct x86_emulate_ctxt *ctxt) { - ctxt->dst.type = OP_REG; - ctxt->dst.addr.reg = &ctxt->_eip; - ctxt->dst.bytes = ctxt->op_bytes; - return em_pop(ctxt); + int rc; + unsigned long eip; + + rc = emulate_pop(ctxt, &eip, ctxt->op_bytes); + if (rc != X86EMUL_CONTINUE) + return rc; + + return assign_eip_near(ctxt, eip); } static int em_ret_far(struct x86_emulate_ctxt *ctxt) { int rc; - unsigned long cs; + unsigned long eip, cs; + u16 old_cs; + int cpl = ctxt->ops->cpl(ctxt); + struct desc_struct old_desc, new_desc; + const struct x86_emulate_ops *ops = ctxt->ops; + + if (ctxt->mode == X86EMUL_MODE_PROT64) + ops->get_segment(ctxt, &old_cs, &old_desc, NULL, + VCPU_SREG_CS); - rc = emulate_pop(ctxt, &ctxt->_eip, ctxt->op_bytes); + rc = emulate_pop(ctxt, &eip, ctxt->op_bytes); if (rc != X86EMUL_CONTINUE) return rc; - if (ctxt->op_bytes == 4) - ctxt->_eip = (u32)ctxt->_eip; rc = emulate_pop(ctxt, &cs, ctxt->op_bytes); if (rc != X86EMUL_CONTINUE) return rc; - rc = load_segment_descriptor(ctxt, (u16)cs, VCPU_SREG_CS); + /* Outer-privilege level return is not implemented */ + if (ctxt->mode >= X86EMUL_MODE_PROT16 && (cs & 3) > cpl) + return X86EMUL_UNHANDLEABLE; + rc = __load_segment_descriptor(ctxt, (u16)cs, VCPU_SREG_CS, 0, + &new_desc); + if (rc != X86EMUL_CONTINUE) + return rc; + rc = assign_eip_far(ctxt, eip, new_desc.l); + if (rc != X86EMUL_CONTINUE) { + WARN_ON(ctxt->mode != X86EMUL_MODE_PROT64); + ops->set_segment(ctxt, old_cs, &old_desc, 0, VCPU_SREG_CS); + } return rc; } @@ -2221,7 +2305,7 @@ * Not recognized on AMD in compat mode (but is recognized in legacy * mode). */ - if ((ctxt->mode == X86EMUL_MODE_PROT32) && (efer & EFER_LMA) + if ((ctxt->mode != X86EMUL_MODE_PROT64) && (efer & EFER_LMA) && !vendor_intel(ctxt)) return emulate_ud(ctxt); @@ -2234,25 +2318,13 @@ setup_syscalls_segments(ctxt, &cs, &ss); ops->get_msr(ctxt, MSR_IA32_SYSENTER_CS, &msr_data); - switch (ctxt->mode) { - case X86EMUL_MODE_PROT32: - if ((msr_data & 0xfffc) == 0x0) - return emulate_gp(ctxt, 0); - break; - case X86EMUL_MODE_PROT64: - if (msr_data == 0x0) - return emulate_gp(ctxt, 0); - break; - default: - break; - } + if ((msr_data & 0xfffc) == 0x0) + return emulate_gp(ctxt, 0); ctxt->eflags &= ~(EFLG_VM | EFLG_IF | EFLG_RF); - cs_sel = (u16)msr_data; - cs_sel &= ~SELECTOR_RPL_MASK; + cs_sel = (u16)msr_data & ~SELECTOR_RPL_MASK; ss_sel = cs_sel + 8; - ss_sel &= ~SELECTOR_RPL_MASK; - if (ctxt->mode == X86EMUL_MODE_PROT64 || (efer & EFER_LMA)) { + if (efer & EFER_LMA) { cs.d = 0; cs.l = 1; } @@ -2261,10 +2333,11 @@ ops->set_segment(ctxt, ss_sel, &ss, 0, VCPU_SREG_SS); ops->get_msr(ctxt, MSR_IA32_SYSENTER_EIP, &msr_data); - ctxt->_eip = msr_data; + ctxt->_eip = (efer & EFER_LMA) ? msr_data : (u32)msr_data; ops->get_msr(ctxt, MSR_IA32_SYSENTER_ESP, &msr_data); - *reg_write(ctxt, VCPU_REGS_RSP) = msr_data; + *reg_write(ctxt, VCPU_REGS_RSP) = (efer & EFER_LMA) ? msr_data : + (u32)msr_data; return X86EMUL_CONTINUE; } @@ -2273,7 +2346,7 @@ { const struct x86_emulate_ops *ops = ctxt->ops; struct desc_struct cs, ss; - u64 msr_data; + u64 msr_data, rcx, rdx; int usermode; u16 cs_sel = 0, ss_sel = 0; @@ -2289,6 +2362,9 @@ else usermode = X86EMUL_MODE_PROT32; + rcx = reg_read(ctxt, VCPU_REGS_RCX); + rdx = reg_read(ctxt, VCPU_REGS_RDX); + cs.dpl = 3; ss.dpl = 3; ops->get_msr(ctxt, MSR_IA32_SYSENTER_CS, &msr_data); @@ -2306,6 +2382,9 @@ ss_sel = cs_sel + 8; cs.d = 0; cs.l = 1; + if (is_noncanonical_address(rcx) || + is_noncanonical_address(rdx)) + return emulate_gp(ctxt, 0); break; } cs_sel |= SELECTOR_RPL_MASK; @@ -2314,8 +2393,8 @@ ops->set_segment(ctxt, cs_sel, &cs, 0, VCPU_SREG_CS); ops->set_segment(ctxt, ss_sel, &ss, 0, VCPU_SREG_SS); - ctxt->_eip = reg_read(ctxt, VCPU_REGS_RDX); - *reg_write(ctxt, VCPU_REGS_RSP) = reg_read(ctxt, VCPU_REGS_RCX); + ctxt->_eip = rdx; + *reg_write(ctxt, VCPU_REGS_RSP) = rcx; return X86EMUL_CONTINUE; } @@ -2404,6 +2483,7 @@ struct tss_segment_16 *tss) { int ret; + u8 cpl; ctxt->_eip = tss->ip; ctxt->eflags = tss->flag | 2; @@ -2426,23 +2506,30 @@ set_segment_selector(ctxt, tss->ss, VCPU_SREG_SS); set_segment_selector(ctxt, tss->ds, VCPU_SREG_DS); + cpl = tss->cs & 3; + /* * Now load segment descriptors. If fault happens at this stage * it is handled in a context of new task */ - ret = load_segment_descriptor(ctxt, tss->ldt, VCPU_SREG_LDTR); + ret = __load_segment_descriptor(ctxt, tss->ldt, VCPU_SREG_LDTR, cpl, + NULL); if (ret != X86EMUL_CONTINUE) return ret; - ret = load_segment_descriptor(ctxt, tss->es, VCPU_SREG_ES); + ret = __load_segment_descriptor(ctxt, tss->es, VCPU_SREG_ES, cpl, + NULL); if (ret != X86EMUL_CONTINUE) return ret; - ret = load_segment_descriptor(ctxt, tss->cs, VCPU_SREG_CS); + ret = __load_segment_descriptor(ctxt, tss->cs, VCPU_SREG_CS, cpl, + NULL); if (ret != X86EMUL_CONTINUE) return ret; - ret = load_segment_descriptor(ctxt, tss->ss, VCPU_SREG_SS); + ret = __load_segment_descriptor(ctxt, tss->ss, VCPU_SREG_SS, cpl, + NULL); if (ret != X86EMUL_CONTINUE) return ret; - ret = load_segment_descriptor(ctxt, tss->ds, VCPU_SREG_DS); + ret = __load_segment_descriptor(ctxt, tss->ds, VCPU_SREG_DS, cpl, + NULL); if (ret != X86EMUL_CONTINUE) return ret; @@ -2521,6 +2608,7 @@ struct tss_segment_32 *tss) { int ret; + u8 cpl; if (ctxt->ops->set_cr(ctxt, 3, tss->cr3)) return emulate_gp(ctxt, 0); @@ -2539,7 +2627,8 @@ /* * SDM says that segment selectors are loaded before segment - * descriptors + * descriptors. This is important because CPL checks will + * use CS.RPL. */ set_segment_selector(ctxt, tss->ldt_selector, VCPU_SREG_LDTR); set_segment_selector(ctxt, tss->es, VCPU_SREG_ES); @@ -2553,43 +2642,45 @@ * If we're switching between Protected Mode and VM86, we need to make * sure to update the mode before loading the segment descriptors so * that the selectors are interpreted correctly. - * - * Need to get rflags to the vcpu struct immediately because it - * influences the CPL which is checked at least when loading the segment - * descriptors and when pushing an error code to the new kernel stack. - * - * TODO Introduce a separate ctxt->ops->set_cpl callback */ - if (ctxt->eflags & X86_EFLAGS_VM) + if (ctxt->eflags & X86_EFLAGS_VM) { ctxt->mode = X86EMUL_MODE_VM86; - else + cpl = 3; + } else { ctxt->mode = X86EMUL_MODE_PROT32; - - ctxt->ops->set_rflags(ctxt, ctxt->eflags); + cpl = tss->cs & 3; + } /* * Now load segment descriptors. If fault happenes at this stage * it is handled in a context of new task */ - ret = load_segment_descriptor(ctxt, tss->ldt_selector, VCPU_SREG_LDTR); + ret = __load_segment_descriptor(ctxt, tss->ldt_selector, VCPU_SREG_LDTR, + cpl, NULL); if (ret != X86EMUL_CONTINUE) return ret; - ret = load_segment_descriptor(ctxt, tss->es, VCPU_SREG_ES); + ret = __load_segment_descriptor(ctxt, tss->es, VCPU_SREG_ES, cpl, + NULL); if (ret != X86EMUL_CONTINUE) return ret; - ret = load_segment_descriptor(ctxt, tss->cs, VCPU_SREG_CS); + ret = __load_segment_descriptor(ctxt, tss->cs, VCPU_SREG_CS, cpl, + NULL); if (ret != X86EMUL_CONTINUE) return ret; - ret = load_segment_descriptor(ctxt, tss->ss, VCPU_SREG_SS); + ret = __load_segment_descriptor(ctxt, tss->ss, VCPU_SREG_SS, cpl, + NULL); if (ret != X86EMUL_CONTINUE) return ret; - ret = load_segment_descriptor(ctxt, tss->ds, VCPU_SREG_DS); + ret = __load_segment_descriptor(ctxt, tss->ds, VCPU_SREG_DS, cpl, + NULL); if (ret != X86EMUL_CONTINUE) return ret; - ret = load_segment_descriptor(ctxt, tss->fs, VCPU_SREG_FS); + ret = __load_segment_descriptor(ctxt, tss->fs, VCPU_SREG_FS, cpl, + NULL); if (ret != X86EMUL_CONTINUE) return ret; - ret = load_segment_descriptor(ctxt, tss->gs, VCPU_SREG_GS); + ret = __load_segment_descriptor(ctxt, tss->gs, VCPU_SREG_GS, cpl, + NULL); if (ret != X86EMUL_CONTINUE) return ret; @@ -2854,10 +2945,13 @@ static int em_call(struct x86_emulate_ctxt *ctxt) { + int rc; long rel = ctxt->src.val; ctxt->src.val = (unsigned long)ctxt->_eip; - jmp_rel(ctxt, rel); + rc = jmp_rel(ctxt, rel); + if (rc != X86EMUL_CONTINUE) + return rc; return em_push(ctxt); } @@ -2866,34 +2960,50 @@ u16 sel, old_cs; ulong old_eip; int rc; + struct desc_struct old_desc, new_desc; + const struct x86_emulate_ops *ops = ctxt->ops; + int cpl = ctxt->ops->cpl(ctxt); - old_cs = get_segment_selector(ctxt, VCPU_SREG_CS); old_eip = ctxt->_eip; + ops->get_segment(ctxt, &old_cs, &old_desc, NULL, VCPU_SREG_CS); memcpy(&sel, ctxt->src.valptr + ctxt->op_bytes, 2); - if (load_segment_descriptor(ctxt, sel, VCPU_SREG_CS)) + rc = __load_segment_descriptor(ctxt, sel, VCPU_SREG_CS, cpl, + &new_desc); + if (rc != X86EMUL_CONTINUE) return X86EMUL_CONTINUE; - ctxt->_eip = 0; - memcpy(&ctxt->_eip, ctxt->src.valptr, ctxt->op_bytes); + rc = assign_eip_far(ctxt, ctxt->src.val, new_desc.l); + if (rc != X86EMUL_CONTINUE) + goto fail; ctxt->src.val = old_cs; rc = em_push(ctxt); if (rc != X86EMUL_CONTINUE) - return rc; + goto fail; ctxt->src.val = old_eip; - return em_push(ctxt); + rc = em_push(ctxt); + /* If we failed, we tainted the memory, but the very least we should + restore cs */ + if (rc != X86EMUL_CONTINUE) + goto fail; + return rc; +fail: + ops->set_segment(ctxt, old_cs, &old_desc, 0, VCPU_SREG_CS); + return rc; + } static int em_ret_near_imm(struct x86_emulate_ctxt *ctxt) { int rc; + unsigned long eip; - ctxt->dst.type = OP_REG; - ctxt->dst.addr.reg = &ctxt->_eip; - ctxt->dst.bytes = ctxt->op_bytes; - rc = emulate_pop(ctxt, &ctxt->dst.val, ctxt->op_bytes); + rc = emulate_pop(ctxt, &eip, ctxt->op_bytes); + if (rc != X86EMUL_CONTINUE) + return rc; + rc = assign_eip_near(ctxt, eip); if (rc != X86EMUL_CONTINUE) return rc; rsp_increment(ctxt, ctxt->src.val); @@ -3223,20 +3333,24 @@ static int em_loop(struct x86_emulate_ctxt *ctxt) { + int rc = X86EMUL_CONTINUE; + register_address_increment(ctxt, reg_rmw(ctxt, VCPU_REGS_RCX), -1); if ((address_mask(ctxt, reg_read(ctxt, VCPU_REGS_RCX)) != 0) && (ctxt->b == 0xe2 || test_cc(ctxt->b ^ 0x5, ctxt->eflags))) - jmp_rel(ctxt, ctxt->src.val); + rc = jmp_rel(ctxt, ctxt->src.val); - return X86EMUL_CONTINUE; + return rc; } static int em_jcxz(struct x86_emulate_ctxt *ctxt) { + int rc = X86EMUL_CONTINUE; + if (address_mask(ctxt, reg_read(ctxt, VCPU_REGS_RCX)) == 0) - jmp_rel(ctxt, ctxt->src.val); + rc = jmp_rel(ctxt, ctxt->src.val); - return X86EMUL_CONTINUE; + return rc; } static int em_in(struct x86_emulate_ctxt *ctxt) @@ -4092,6 +4206,7 @@ fetch_register_operand(op); break; case OpCL: + op->type = OP_IMM; op->bytes = 1; op->val = reg_read(ctxt, VCPU_REGS_RCX) & 0xff; break; @@ -4099,6 +4214,7 @@ rc = decode_imm(ctxt, op, 1, true); break; case OpOne: + op->type = OP_IMM; op->bytes = 1; op->val = 1; break; @@ -4157,21 +4273,27 @@ ctxt->memop.bytes = ctxt->op_bytes + 2; goto mem_common; case OpES: + op->type = OP_IMM; op->val = VCPU_SREG_ES; break; case OpCS: + op->type = OP_IMM; op->val = VCPU_SREG_CS; break; case OpSS: + op->type = OP_IMM; op->val = VCPU_SREG_SS; break; case OpDS: + op->type = OP_IMM; op->val = VCPU_SREG_DS; break; case OpFS: + op->type = OP_IMM; op->val = VCPU_SREG_FS; break; case OpGS: + op->type = OP_IMM; op->val = VCPU_SREG_GS; break; case OpImplicit: @@ -4633,7 +4755,7 @@ break; case 0x70 ... 0x7f: /* jcc (short) */ if (test_cc(ctxt->b, ctxt->eflags)) - jmp_rel(ctxt, ctxt->src.val); + rc = jmp_rel(ctxt, ctxt->src.val); break; case 0x8d: /* lea r16/r32, m */ ctxt->dst.val = ctxt->src.addr.mem.ea; @@ -4662,7 +4784,7 @@ break; case 0xe9: /* jmp rel */ case 0xeb: /* jmp rel short */ - jmp_rel(ctxt, ctxt->src.val); + rc = jmp_rel(ctxt, ctxt->src.val); ctxt->dst.type = OP_NONE; /* Disable writeback. */ break; case 0xf4: /* hlt */ @@ -4782,7 +4904,7 @@ break; case 0x80 ... 0x8f: /* jnz rel, etc*/ if (test_cc(ctxt->b, ctxt->eflags)) - jmp_rel(ctxt, ctxt->src.val); + rc = jmp_rel(ctxt, ctxt->src.val); break; case 0x90 ... 0x9f: /* setcc r/m8 */ ctxt->dst.val = test_cc(ctxt->b, ctxt->eflags); --- linux-3.13.0.orig/arch/x86/kvm/i8254.c +++ linux-3.13.0/arch/x86/kvm/i8254.c @@ -37,6 +37,7 @@ #include "irq.h" #include "i8254.h" +#include "x86.h" #ifndef CONFIG_X86_64 #define mod_64(x, y) ((x) - (y) * div64_u64(x, y)) @@ -261,8 +262,10 @@ return; timer = &pit->pit_state.timer; + mutex_lock(&pit->pit_state.lock); if (hrtimer_cancel(timer)) hrtimer_start_expires(timer, HRTIMER_MODE_ABS); + mutex_unlock(&pit->pit_state.lock); } static void destroy_pit_timer(struct kvm_pit *pit) @@ -349,6 +352,23 @@ atomic_set(&ps->pending, 0); ps->irq_ack = 1; + /* + * Do not allow the guest to program periodic timers with small + * interval, since the hrtimers are not throttled by the host + * scheduler. + */ + if (ps->is_periodic) { + s64 min_period = min_timer_period_us * 1000LL; + + if (ps->period < min_period) { + pr_info_ratelimited( + "kvm: requested %lld ns " + "i8254 timer period limited to %lld ns\n", + ps->period, min_period); + ps->period = min_period; + } + } + hrtimer_start(&ps->timer, ktime_add_ns(ktime_get(), interval), HRTIMER_MODE_ABS); } --- linux-3.13.0.orig/arch/x86/kvm/irq.c +++ linux-3.13.0/arch/x86/kvm/irq.c @@ -108,7 +108,7 @@ vector = kvm_cpu_get_extint(v); - if (kvm_apic_vid_enabled(v->kvm) || vector != -1) + if (vector != -1) return vector; /* PIC */ return kvm_get_apic_interrupt(v); /* APIC */ --- linux-3.13.0.orig/arch/x86/kvm/lapic.c +++ linux-3.13.0/arch/x86/kvm/lapic.c @@ -71,9 +71,6 @@ #define VEC_POS(v) ((v) & (32 - 1)) #define REG_POS(v) (((v) >> 5) << 4) -static unsigned int min_timer_period_us = 500; -module_param(min_timer_period_us, uint, S_IRUGO | S_IWUSR); - static inline void apic_set_reg(struct kvm_lapic *apic, int reg_off, u32 val) { *((u32 *) (apic->regs + reg_off)) = val; @@ -355,31 +352,90 @@ static inline void apic_clear_irr(int vec, struct kvm_lapic *apic) { - apic->irr_pending = false; + struct kvm_vcpu *vcpu; + + vcpu = apic->vcpu; + apic_clear_vector(vec, apic->regs + APIC_IRR); - if (apic_search_irr(apic) != -1) - apic->irr_pending = true; + if (unlikely(kvm_apic_vid_enabled(vcpu->kvm))) + /* try to update RVI */ + kvm_make_request(KVM_REQ_EVENT, vcpu); + else { + vec = apic_search_irr(apic); + apic->irr_pending = (vec != -1); + } } static inline void apic_set_isr(int vec, struct kvm_lapic *apic) { - if (!__apic_test_and_set_vector(vec, apic->regs + APIC_ISR)) + struct kvm_vcpu *vcpu; + + if (__apic_test_and_set_vector(vec, apic->regs + APIC_ISR)) + return; + + vcpu = apic->vcpu; + + /* + * With APIC virtualization enabled, all caching is disabled + * because the processor can modify ISR under the hood. Instead + * just set SVI. + */ + if (unlikely(kvm_apic_vid_enabled(vcpu->kvm))) + kvm_x86_ops->hwapic_isr_update(vcpu->kvm, vec); + else { ++apic->isr_count; - BUG_ON(apic->isr_count > MAX_APIC_VECTOR); + BUG_ON(apic->isr_count > MAX_APIC_VECTOR); + /* + * ISR (in service register) bit is set when injecting an interrupt. + * The highest vector is injected. Thus the latest bit set matches + * the highest bit in ISR. + */ + apic->highest_isr_cache = vec; + } +} + +static inline int apic_find_highest_isr(struct kvm_lapic *apic) +{ + int result; + /* - * ISR (in service register) bit is set when injecting an interrupt. - * The highest vector is injected. Thus the latest bit set matches - * the highest bit in ISR. + * Note that isr_count is always 1, and highest_isr_cache + * is always -1, with APIC virtualization enabled. */ - apic->highest_isr_cache = vec; + if (!apic->isr_count) + return -1; + if (likely(apic->highest_isr_cache != -1)) + return apic->highest_isr_cache; + + result = find_highest_vector(apic->regs + APIC_ISR); + ASSERT(result == -1 || result >= 16); + + return result; } static inline void apic_clear_isr(int vec, struct kvm_lapic *apic) { - if (__apic_test_and_clear_vector(vec, apic->regs + APIC_ISR)) + struct kvm_vcpu *vcpu; + if (!__apic_test_and_clear_vector(vec, apic->regs + APIC_ISR)) + return; + + vcpu = apic->vcpu; + + /* + * We do get here for APIC virtualization enabled if the guest + * uses the Hyper-V APIC enlightenment. In this case we may need + * to trigger a new interrupt delivery by writing the SVI field; + * on the other hand isr_count and highest_isr_cache are unused + * and must be left alone. + */ + if (unlikely(kvm_apic_vid_enabled(vcpu->kvm))) + kvm_x86_ops->hwapic_isr_update(vcpu->kvm, + apic_find_highest_isr(apic)); + else { --apic->isr_count; - BUG_ON(apic->isr_count < 0); - apic->highest_isr_cache = -1; + BUG_ON(apic->isr_count < 0); + apic->highest_isr_cache = -1; + } } int kvm_lapic_find_highest_irr(struct kvm_vcpu *vcpu) @@ -459,22 +515,6 @@ __clear_bit(KVM_APIC_PV_EOI_PENDING, &vcpu->arch.apic_attention); } -static inline int apic_find_highest_isr(struct kvm_lapic *apic) -{ - int result; - - /* Note that isr_count is always 1 with vid enabled */ - if (!apic->isr_count) - return -1; - if (likely(apic->highest_isr_cache != -1)) - return apic->highest_isr_cache; - - result = find_highest_vector(apic->regs + APIC_ISR); - ASSERT(result == -1 || result >= 16); - - return result; -} - void kvm_apic_update_tmr(struct kvm_vcpu *vcpu, u32 *tmr) { struct kvm_lapic *apic = vcpu->arch.apic; @@ -1611,6 +1651,13 @@ if (vector == -1) return -1; + /* + * We get here even with APIC virtualization enabled, if doing + * nested virtualization and L1 runs with the "acknowledge interrupt + * on exit" mode. Then we cannot inject the interrupt via RVI, + * because the process would deliver it through the IDT. + */ + apic_set_isr(vector, apic); apic_update_ppr(apic); apic_clear_irr(vector, apic); --- linux-3.13.0.orig/arch/x86/kvm/mmu.c +++ linux-3.13.0/arch/x86/kvm/mmu.c @@ -198,16 +198,20 @@ EXPORT_SYMBOL_GPL(kvm_mmu_set_mmio_spte_mask); /* - * spte bits of bit 3 ~ bit 11 are used as low 9 bits of generation number, - * the bits of bits 52 ~ bit 61 are used as high 10 bits of generation - * number. + * the low bit of the generation number is always presumed to be zero. + * This disables mmio caching during memslot updates. The concept is + * similar to a seqcount but instead of retrying the access we just punt + * and ignore the cache. + * + * spte bits 3-11 are used as bits 1-9 of the generation number, + * the bits 52-61 are used as bits 10-19 of the generation number. */ -#define MMIO_SPTE_GEN_LOW_SHIFT 3 +#define MMIO_SPTE_GEN_LOW_SHIFT 2 #define MMIO_SPTE_GEN_HIGH_SHIFT 52 -#define MMIO_GEN_SHIFT 19 -#define MMIO_GEN_LOW_SHIFT 9 -#define MMIO_GEN_LOW_MASK ((1 << MMIO_GEN_LOW_SHIFT) - 1) +#define MMIO_GEN_SHIFT 20 +#define MMIO_GEN_LOW_SHIFT 10 +#define MMIO_GEN_LOW_MASK ((1 << MMIO_GEN_LOW_SHIFT) - 2) #define MMIO_GEN_MASK ((1 << MMIO_GEN_SHIFT) - 1) #define MMIO_MAX_GEN ((1 << MMIO_GEN_SHIFT) - 1) @@ -235,12 +239,7 @@ static unsigned int kvm_current_mmio_generation(struct kvm *kvm) { - /* - * Init kvm generation close to MMIO_MAX_GEN to easily test the - * code of handling generation number wrap-around. - */ - return (kvm_memslots(kvm)->generation + - MMIO_MAX_GEN - 150) & MMIO_GEN_MASK; + return kvm_memslots(kvm)->generation & MMIO_GEN_MASK; } static void mark_mmio_spte(struct kvm *kvm, u64 *sptep, u64 gfn, @@ -2659,6 +2658,9 @@ int emulate = 0; gfn_t pseudo_gfn; + if (!VALID_PAGE(vcpu->arch.mmu.root_hpa)) + return 0; + for_each_shadow_entry(vcpu, (u64)gfn << PAGE_SHIFT, iterator) { if (iterator.level == level) { mmu_set_spte(vcpu, iterator.sptep, ACC_ALL, @@ -2829,6 +2831,9 @@ bool ret = false; u64 spte = 0ull; + if (!VALID_PAGE(vcpu->arch.mmu.root_hpa)) + return false; + if (!page_fault_can_be_fast(error_code)) return false; @@ -3150,7 +3155,7 @@ if (!VALID_PAGE(vcpu->arch.mmu.root_hpa)) return; - vcpu_clear_mmio_info(vcpu, ~0ul); + vcpu_clear_mmio_info(vcpu, MMIO_GVA_ANY); kvm_mmu_audit(vcpu, AUDIT_PRE_SYNC); if (vcpu->arch.mmu.root_level == PT64_ROOT_LEVEL) { hpa_t root = vcpu->arch.mmu.root_hpa; @@ -3224,6 +3229,9 @@ struct kvm_shadow_walk_iterator iterator; u64 spte = 0ull; + if (!VALID_PAGE(vcpu->arch.mmu.root_hpa)) + return spte; + walk_shadow_page_lockless_begin(vcpu); for_each_shadow_entry_lockless(vcpu, addr, iterator, spte) if (!is_shadow_present_pte(spte)) @@ -4369,7 +4377,7 @@ * The very rare case: if the generation-number is round, * zap all shadow pages. */ - if (unlikely(kvm_current_mmio_generation(kvm) >= MMIO_MAX_GEN)) { + if (unlikely(kvm_current_mmio_generation(kvm) == 0)) { printk_ratelimited(KERN_INFO "kvm: zapping shadow pages for mmio generation wraparound\n"); kvm_mmu_invalidate_zap_all_pages(kvm); } @@ -4510,6 +4518,9 @@ u64 spte; int nr_sptes = 0; + if (!VALID_PAGE(vcpu->arch.mmu.root_hpa)) + return nr_sptes; + walk_shadow_page_lockless_begin(vcpu); for_each_shadow_entry_lockless(vcpu, addr, iterator, spte) { sptes[iterator.level-1] = spte; --- linux-3.13.0.orig/arch/x86/kvm/paging_tmpl.h +++ linux-3.13.0/arch/x86/kvm/paging_tmpl.h @@ -569,6 +569,9 @@ if (FNAME(gpte_changed)(vcpu, gw, top_level)) goto out_gpte_changed; + if (!VALID_PAGE(vcpu->arch.mmu.root_hpa)) + goto out_gpte_changed; + for (shadow_walk_init(&it, vcpu, addr); shadow_walk_okay(&it) && it.level > gw->level; shadow_walk_next(&it)) { @@ -820,6 +823,11 @@ */ mmu_topup_memory_caches(vcpu); + if (!VALID_PAGE(vcpu->arch.mmu.root_hpa)) { + WARN_ON(1); + return; + } + spin_lock(&vcpu->kvm->mmu_lock); for_each_shadow_entry(vcpu, gva, iterator) { level = iterator.level; --- linux-3.13.0.orig/arch/x86/kvm/svm.c +++ linux-3.13.0/arch/x86/kvm/svm.c @@ -2989,10 +2989,8 @@ u8 cr8_prev = kvm_get_cr8(&svm->vcpu); /* instruction emulation calls kvm_set_cr8() */ r = cr_interception(svm); - if (irqchip_in_kernel(svm->vcpu.kvm)) { - clr_cr_intercept(svm, INTERCEPT_CR8_WRITE); + if (irqchip_in_kernel(svm->vcpu.kvm)) return r; - } if (cr8_prev <= kvm_get_cr8(&svm->vcpu)) return r; kvm_run->exit_reason = KVM_EXIT_SET_TPR; @@ -3202,7 +3200,7 @@ msr.host_initiated = false; svm->next_rip = kvm_rip_read(&svm->vcpu) + 2; - if (svm_set_msr(&svm->vcpu, &msr)) { + if (kvm_set_msr(&svm->vcpu, &msr)) { trace_kvm_msr_write_ex(ecx, data); kvm_inject_gp(&svm->vcpu, 0); } else { @@ -3484,9 +3482,9 @@ if (exit_code >= ARRAY_SIZE(svm_exit_handlers) || !svm_exit_handlers[exit_code]) { - kvm_run->exit_reason = KVM_EXIT_UNKNOWN; - kvm_run->hw.hardware_exit_reason = exit_code; - return 0; + WARN_ONCE(1, "vmx: unexpected exit reason 0x%x\n", exit_code); + kvm_queue_exception(vcpu, UD_VECTOR); + return 1; } return svm_exit_handlers[exit_code](svm); @@ -3554,6 +3552,8 @@ if (is_guest_mode(vcpu) && (vcpu->arch.hflags & HF_VINTR_MASK)) return; + clr_cr_intercept(svm, INTERCEPT_CR8_WRITE); + if (irr == -1) return; --- linux-3.13.0.orig/arch/x86/kvm/vmx.c +++ linux-3.13.0/arch/x86/kvm/vmx.c @@ -439,6 +439,7 @@ #endif int gs_ldt_reload_needed; int fs_reload_needed; + unsigned long vmcs_host_cr4; /* May not match real cr4 */ } host_state; struct { int vm86_active; @@ -1056,7 +1057,9 @@ == (INTR_TYPE_HARD_EXCEPTION | INTR_INFO_VALID_MASK); } -static void nested_vmx_vmexit(struct kvm_vcpu *vcpu); +static void nested_vmx_vmexit(struct kvm_vcpu *vcpu, u32 exit_reason, + u32 exit_intr_info, + unsigned long exit_qualification); static void nested_vmx_entry_failure(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12, u32 reason, unsigned long qualification); @@ -1906,7 +1909,9 @@ if (!(vmcs12->exception_bitmap & (1u << nr))) return 0; - nested_vmx_vmexit(vcpu); + nested_vmx_vmexit(vcpu, to_vmx(vcpu)->exit_reason, + vmcs_read32(VM_EXIT_INTR_INFO), + vmcs_readl(EXIT_QUALIFICATION)); return 1; } @@ -2255,12 +2260,12 @@ nested_vmx_secondary_ctls_low = 0; nested_vmx_secondary_ctls_high &= SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES | - SECONDARY_EXEC_UNRESTRICTED_GUEST | SECONDARY_EXEC_WBINVD_EXITING; if (enable_ept) { /* nested EPT: emulate EPT also to L1 */ - nested_vmx_secondary_ctls_high |= SECONDARY_EXEC_ENABLE_EPT; + nested_vmx_secondary_ctls_high |= SECONDARY_EXEC_ENABLE_EPT | + SECONDARY_EXEC_UNRESTRICTED_GUEST; nested_vmx_ept_caps = VMX_EPT_PAGE_WALK_4_BIT | VMX_EPTP_WB_BIT | VMX_EPT_2MB_PAGE_BIT | VMX_EPT_INVEPT_BIT; @@ -2545,12 +2550,15 @@ break; msr = find_msr_entry(vmx, msr_index); if (msr) { + u64 old_msr_data = msr->data; msr->data = data; if (msr - vmx->guest_msrs < vmx->save_nmsrs) { preempt_disable(); - kvm_set_shared_msr(msr->index, msr->data, - msr->mask); + ret = kvm_set_shared_msr(msr->index, msr->data, + msr->mask); preempt_enable(); + if (ret) + msr->data = old_msr_data; } break; } @@ -4131,11 +4139,16 @@ u32 low32, high32; unsigned long tmpl; struct desc_ptr dt; + unsigned long cr4; vmcs_writel(HOST_CR0, read_cr0() & ~X86_CR0_TS); /* 22.2.3 */ - vmcs_writel(HOST_CR4, read_cr4()); /* 22.2.3, 22.2.5 */ vmcs_writel(HOST_CR3, read_cr3()); /* 22.2.3 FIXME: shadow tables */ + /* Save the most likely value for this task's CR4 in the VMCS. */ + cr4 = read_cr4(); + vmcs_writel(HOST_CR4, cr4); /* 22.2.3, 22.2.5 */ + vmx->host_state.vmcs_host_cr4 = cr4; + vmcs_write16(HOST_CS_SELECTOR, __KERNEL_CS); /* 22.2.4 */ #ifdef CONFIG_X86_64 /* @@ -4587,25 +4600,8 @@ static int vmx_nmi_allowed(struct kvm_vcpu *vcpu) { - if (is_guest_mode(vcpu)) { - struct vmcs12 *vmcs12 = get_vmcs12(vcpu); - - if (to_vmx(vcpu)->nested.nested_run_pending) - return 0; - if (nested_exit_on_nmi(vcpu)) { - nested_vmx_vmexit(vcpu); - vmcs12->vm_exit_reason = EXIT_REASON_EXCEPTION_NMI; - vmcs12->vm_exit_intr_info = NMI_VECTOR | - INTR_TYPE_NMI_INTR | INTR_INFO_VALID_MASK; - /* - * The NMI-triggered VM exit counts as injection: - * clear this one and block further NMIs. - */ - vcpu->arch.nmi_pending = 0; - vmx_set_nmi_mask(vcpu, true); - return 0; - } - } + if (to_vmx(vcpu)->nested.nested_run_pending) + return 0; if (!cpu_has_virtual_nmis() && to_vmx(vcpu)->soft_vnmi_blocked) return 0; @@ -4617,23 +4613,8 @@ static int vmx_interrupt_allowed(struct kvm_vcpu *vcpu) { - if (is_guest_mode(vcpu)) { - struct vmcs12 *vmcs12 = get_vmcs12(vcpu); - - if (to_vmx(vcpu)->nested.nested_run_pending) - return 0; - if (nested_exit_on_intr(vcpu)) { - nested_vmx_vmexit(vcpu); - vmcs12->vm_exit_reason = - EXIT_REASON_EXTERNAL_INTERRUPT; - vmcs12->vm_exit_intr_info = 0; - /* - * fall through to normal code, but now in L1, not L2 - */ - } - } - - return (vmcs_readl(GUEST_RFLAGS) & X86_EFLAGS_IF) && + return (!to_vmx(vcpu)->nested.nested_run_pending && + vmcs_readl(GUEST_RFLAGS) & X86_EFLAGS_IF) && !(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) & (GUEST_INTR_STATE_STI | GUEST_INTR_STATE_MOV_SS)); } @@ -5129,7 +5110,7 @@ msr.data = data; msr.index = ecx; msr.host_initiated = false; - if (vmx_set_msr(vcpu, &msr) != 0) { + if (kvm_set_msr(vcpu, &msr) != 0) { trace_kvm_msr_write_ex(ecx, data); kvm_inject_gp(vcpu, 0); return 1; @@ -6401,6 +6382,12 @@ return 1; } +static int handle_invvpid(struct kvm_vcpu *vcpu) +{ + kvm_queue_exception(vcpu, UD_VECTOR); + return 1; +} + /* * The exit handlers return 1 if the exit was handled fully and guest execution * may resume. Otherwise they set the kvm_run parameter to indicate what needs @@ -6446,6 +6433,7 @@ [EXIT_REASON_MWAIT_INSTRUCTION] = handle_invalid_op, [EXIT_REASON_MONITOR_INSTRUCTION] = handle_invalid_op, [EXIT_REASON_INVEPT] = handle_invept, + [EXIT_REASON_INVVPID] = handle_invvpid, }; static const int kvm_vmx_max_exit_handlers = @@ -6644,7 +6632,7 @@ else if (is_page_fault(intr_info)) return enable_ept; else if (is_no_device(intr_info) && - !(nested_read_cr0(vmcs12) & X86_CR0_TS)) + !(vmcs12->guest_cr0 & X86_CR0_TS)) return 0; return vmcs12->exception_bitmap & (1u << (intr_info & INTR_INFO_VECTOR_MASK)); @@ -6675,7 +6663,7 @@ case EXIT_REASON_VMPTRST: case EXIT_REASON_VMREAD: case EXIT_REASON_VMRESUME: case EXIT_REASON_VMWRITE: case EXIT_REASON_VMOFF: case EXIT_REASON_VMON: - case EXIT_REASON_INVEPT: + case EXIT_REASON_INVEPT: case EXIT_REASON_INVVPID: /* * VMX instructions trap unconditionally. This allows L1 to * emulate them for its L2 guest, i.e., allows 3-level nesting! @@ -6777,7 +6765,9 @@ return handle_invalid_guest_state(vcpu); if (is_guest_mode(vcpu) && nested_vmx_exit_handled(vcpu)) { - nested_vmx_vmexit(vcpu); + nested_vmx_vmexit(vcpu, exit_reason, + vmcs_read32(VM_EXIT_INTR_INFO), + vmcs_readl(EXIT_QUALIFICATION)); return 1; } @@ -6838,10 +6828,10 @@ && kvm_vmx_exit_handlers[exit_reason]) return kvm_vmx_exit_handlers[exit_reason](vcpu); else { - vcpu->run->exit_reason = KVM_EXIT_UNKNOWN; - vcpu->run->hw.hardware_exit_reason = exit_reason; + WARN_ONCE(1, "vmx: unexpected exit reason 0x%x\n", exit_reason); + kvm_queue_exception(vcpu, UD_VECTOR); + return 1; } - return 0; } static void update_cr8_intercept(struct kvm_vcpu *vcpu, int tpr, int irr) @@ -7140,7 +7130,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu) { struct vcpu_vmx *vmx = to_vmx(vcpu); - unsigned long debugctlmsr; + unsigned long debugctlmsr, cr4; /* Record the guest's net vcpu time for enforced NMI injections. */ if (unlikely(!cpu_has_virtual_nmis() && vmx->soft_vnmi_blocked)) @@ -7161,6 +7151,12 @@ if (test_bit(VCPU_REGS_RIP, (unsigned long *)&vcpu->arch.regs_dirty)) vmcs_writel(GUEST_RIP, vcpu->arch.regs[VCPU_REGS_RIP]); + cr4 = read_cr4(); + if (unlikely(cr4 != vmx->host_state.vmcs_host_cr4)) { + vmcs_writel(HOST_CR4, cr4); + vmx->host_state.vmcs_host_cr4 = cr4; + } + /* When single-stepping over STI and MOV SS, we must clear the * corresponding interruptibility bits in the guest state. Otherwise * vmentry fails as it then expects bit 14 (BS) in pending debug @@ -7332,8 +7328,8 @@ struct vcpu_vmx *vmx = to_vmx(vcpu); free_vpid(vmx); - free_nested(vmx); free_loaded_vmcs(vmx->loaded_vmcs); + free_nested(vmx); kfree(vmx->guest_msrs); kvm_vcpu_uninit(vcpu); kmem_cache_free(kvm_vcpu_cache, vmx); @@ -7518,15 +7514,14 @@ static void nested_ept_inject_page_fault(struct kvm_vcpu *vcpu, struct x86_exception *fault) { - struct vmcs12 *vmcs12; - nested_vmx_vmexit(vcpu); - vmcs12 = get_vmcs12(vcpu); + struct vmcs12 *vmcs12 = get_vmcs12(vcpu); + u32 exit_reason; if (fault->error_code & PFERR_RSVD_MASK) - vmcs12->vm_exit_reason = EXIT_REASON_EPT_MISCONFIG; + exit_reason = EXIT_REASON_EPT_MISCONFIG; else - vmcs12->vm_exit_reason = EXIT_REASON_EPT_VIOLATION; - vmcs12->exit_qualification = vcpu->arch.exit_qualification; + exit_reason = EXIT_REASON_EPT_VIOLATION; + nested_vmx_vmexit(vcpu, exit_reason, 0, vcpu->arch.exit_qualification); vmcs12->guest_physical_address = fault->address; } @@ -7564,7 +7559,9 @@ /* TODO: also check PFEC_MATCH/MASK, not just EB.PF. */ if (vmcs12->exception_bitmap & (1u << PF_VECTOR)) - nested_vmx_vmexit(vcpu); + nested_vmx_vmexit(vcpu, to_vmx(vcpu)->exit_reason, + vmcs_read32(VM_EXIT_INTR_INFO), + vmcs_readl(EXIT_QUALIFICATION)); else kvm_inject_page_fault(vcpu, fault); } @@ -7640,9 +7637,11 @@ vmcs_write64(VMCS_LINK_POINTER, -1ull); - vmcs_write32(PIN_BASED_VM_EXEC_CONTROL, - (vmcs_config.pin_based_exec_ctrl | - vmcs12->pin_based_vm_exec_control)); + exec_control = vmcs12->pin_based_vm_exec_control; + exec_control |= vmcs_config.pin_based_exec_ctrl; + exec_control &= ~(PIN_BASED_VMX_PREEMPTION_TIMER | + PIN_BASED_POSTED_INTR); + vmcs_write32(PIN_BASED_VM_EXEC_CONTROL, exec_control); if (vmcs12->pin_based_vm_exec_control & PIN_BASED_VMX_PREEMPTION_TIMER) vmcs_write32(VMX_PREEMPTION_TIMER_VALUE, @@ -7678,7 +7677,9 @@ if (!vmx->rdtscp_enabled) exec_control &= ~SECONDARY_EXEC_RDTSCP; /* Take the following fields only from vmcs12 */ - exec_control &= ~SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES; + exec_control &= ~(SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES | + SECONDARY_EXEC_VIRTUAL_INTR_DELIVERY | + SECONDARY_EXEC_APIC_REGISTER_VIRT); if (nested_cpu_has(vmcs12, CPU_BASED_ACTIVATE_SECONDARY_CONTROLS)) exec_control |= vmcs12->secondary_vm_exec_control; @@ -8099,6 +8100,35 @@ } } +static int vmx_check_nested_events(struct kvm_vcpu *vcpu, bool external_intr) +{ + struct vcpu_vmx *vmx = to_vmx(vcpu); + + if (vcpu->arch.nmi_pending && nested_exit_on_nmi(vcpu)) { + if (vmx->nested.nested_run_pending) + return -EBUSY; + nested_vmx_vmexit(vcpu, EXIT_REASON_EXCEPTION_NMI, + NMI_VECTOR | INTR_TYPE_NMI_INTR | + INTR_INFO_VALID_MASK, 0); + /* + * The NMI-triggered VM exit counts as injection: + * clear this one and block further NMIs. + */ + vcpu->arch.nmi_pending = 0; + vmx_set_nmi_mask(vcpu, true); + return 0; + } + + if ((kvm_cpu_has_interrupt(vcpu) || external_intr) && + nested_exit_on_intr(vcpu)) { + if (vmx->nested.nested_run_pending) + return -EBUSY; + nested_vmx_vmexit(vcpu, EXIT_REASON_EXTERNAL_INTERRUPT, 0, 0); + } + + return 0; +} + /* * prepare_vmcs12 is part of what we need to do when the nested L2 guest exits * and we want to prepare to run its L1 parent. L1 keeps a vmcs for L2 (vmcs12), @@ -8110,7 +8140,9 @@ * exit-information fields only. Other fields are modified by L1 with VMWRITE, * which already writes to vmcs12 directly. */ -static void prepare_vmcs12(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12) +static void prepare_vmcs12(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12, + u32 exit_reason, u32 exit_intr_info, + unsigned long exit_qualification) { /* update guest state fields: */ vmcs12->guest_cr0 = vmcs12_guest_cr0(vcpu, vmcs12); @@ -8201,10 +8233,10 @@ /* update exit information fields: */ - vmcs12->vm_exit_reason = to_vmx(vcpu)->exit_reason; - vmcs12->exit_qualification = vmcs_readl(EXIT_QUALIFICATION); + vmcs12->vm_exit_reason = exit_reason; + vmcs12->exit_qualification = exit_qualification; - vmcs12->vm_exit_intr_info = vmcs_read32(VM_EXIT_INTR_INFO); + vmcs12->vm_exit_intr_info = exit_intr_info; if ((vmcs12->vm_exit_intr_info & (INTR_INFO_VALID_MASK | INTR_INFO_DELIVER_CODE_MASK)) == (INTR_INFO_VALID_MASK | INTR_INFO_DELIVER_CODE_MASK)) @@ -8370,7 +8402,9 @@ * and modify vmcs12 to make it see what it would expect to see there if * L2 was its real guest. Must only be called when in L2 (is_guest_mode()) */ -static void nested_vmx_vmexit(struct kvm_vcpu *vcpu) +static void nested_vmx_vmexit(struct kvm_vcpu *vcpu, u32 exit_reason, + u32 exit_intr_info, + unsigned long exit_qualification) { struct vcpu_vmx *vmx = to_vmx(vcpu); int cpu; @@ -8380,7 +8414,8 @@ WARN_ON_ONCE(vmx->nested.nested_run_pending); leave_guest_mode(vcpu); - prepare_vmcs12(vcpu, vmcs12); + prepare_vmcs12(vcpu, vmcs12, exit_reason, exit_intr_info, + exit_qualification); cpu = get_cpu(); vmx->loaded_vmcs = &vmx->vmcs01; @@ -8421,6 +8456,9 @@ nested_vmx_succeed(vcpu); if (enable_shadow_vmcs) vmx->nested.sync_shadow_vmcs = true; + + /* in case we halted in L2 */ + vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE; } /* @@ -8548,6 +8586,8 @@ .check_intercept = vmx_check_intercept, .handle_external_intr = vmx_handle_external_intr, + + .check_nested_events = vmx_check_nested_events, }; static int __init vmx_init(void) --- linux-3.13.0.orig/arch/x86/kvm/x86.c +++ linux-3.13.0/arch/x86/kvm/x86.c @@ -94,6 +94,9 @@ static bool ignore_msrs = 0; module_param(ignore_msrs, bool, S_IRUGO | S_IWUSR); +unsigned int min_timer_period_us = 500; +module_param(min_timer_period_us, uint, S_IRUGO | S_IWUSR); + bool kvm_has_tsc_control; EXPORT_SYMBOL_GPL(kvm_has_tsc_control); u32 kvm_max_guest_tsc_khz; @@ -222,20 +225,25 @@ shared_msr_update(i, shared_msrs_global.msrs[i]); } -void kvm_set_shared_msr(unsigned slot, u64 value, u64 mask) +int kvm_set_shared_msr(unsigned slot, u64 value, u64 mask) { unsigned int cpu = smp_processor_id(); struct kvm_shared_msrs *smsr = per_cpu_ptr(shared_msrs, cpu); + int err; if (((value ^ smsr->values[slot].curr) & mask) == 0) - return; + return 0; smsr->values[slot].curr = value; - wrmsrl(shared_msrs_global.msrs[slot], value); + err = wrmsrl_safe(shared_msrs_global.msrs[slot], value); + if (err) + return 1; + if (!smsr->registered) { smsr->urn.on_user_return = kvm_on_user_return; user_return_notifier_register(&smsr->urn); smsr->registered = true; } + return 0; } EXPORT_SYMBOL_GPL(kvm_set_shared_msr); @@ -916,7 +924,6 @@ } EXPORT_SYMBOL_GPL(kvm_enable_efer_bits); - /* * Writes msr value into into the appropriate "register". * Returns 0 on success, non-0 otherwise. @@ -924,8 +931,34 @@ */ int kvm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr) { + switch (msr->index) { + case MSR_FS_BASE: + case MSR_GS_BASE: + case MSR_KERNEL_GS_BASE: + case MSR_CSTAR: + case MSR_LSTAR: + if (is_noncanonical_address(msr->data)) + return 1; + break; + case MSR_IA32_SYSENTER_EIP: + case MSR_IA32_SYSENTER_ESP: + /* + * IA32_SYSENTER_ESP and IA32_SYSENTER_EIP cause #GP if + * non-canonical address is written on Intel but not on + * AMD (which ignores the top 32-bits, because it does + * not implement 64-bit SYSENTER). + * + * 64-bit code should hence be able to write a non-canonical + * value on AMD. Making the address canonical ensures that + * vmentry does not fail on Intel after writing a non-canonical + * value, and that something deterministic happens if the guest + * invokes 64-bit SYSENTER. + */ + msr->data = get_canonical(msr->data); + } return kvm_x86_ops->set_msr(vcpu, msr); } +EXPORT_SYMBOL_GPL(kvm_set_msr); /* * Adapt set_msr() to msr_io()'s calling convention @@ -4861,7 +4894,7 @@ ++vcpu->stat.insn_emulation_fail; trace_kvm_emulate_insn_failed(vcpu); - if (!is_guest_mode(vcpu)) { + if (!is_guest_mode(vcpu) && kvm_x86_ops->get_cpl(vcpu) == 0) { vcpu->run->exit_reason = KVM_EXIT_INTERNAL_ERROR; vcpu->run->internal.suberror = KVM_INTERNAL_ERROR_EMULATION; vcpu->run->internal.ndata = 0; @@ -5499,7 +5532,7 @@ goto out; } if (ops->disabled_by_bios()) { - printk(KERN_ERR "kvm: disabled by bios\n"); + printk(KERN_WARNING "kvm: disabled by bios\n"); r = -EOPNOTSUPP; goto out; } @@ -5761,8 +5794,10 @@ kvm_x86_ops->update_cr8_intercept(vcpu, tpr, max_irr); } -static void inject_pending_event(struct kvm_vcpu *vcpu) +static int inject_pending_event(struct kvm_vcpu *vcpu, bool req_int_win) { + int r; + /* try to reinject previous events if any */ if (vcpu->arch.exception.pending) { trace_kvm_inj_exception(vcpu->arch.exception.nr, @@ -5772,17 +5807,23 @@ vcpu->arch.exception.has_error_code, vcpu->arch.exception.error_code, vcpu->arch.exception.reinject); - return; + return 0; } if (vcpu->arch.nmi_injected) { kvm_x86_ops->set_nmi(vcpu); - return; + return 0; } if (vcpu->arch.interrupt.pending) { kvm_x86_ops->set_irq(vcpu); - return; + return 0; + } + + if (is_guest_mode(vcpu) && kvm_x86_ops->check_nested_events) { + r = kvm_x86_ops->check_nested_events(vcpu, req_int_win); + if (r != 0) + return r; } /* try to inject new event if pending */ @@ -5799,6 +5840,7 @@ kvm_x86_ops->set_irq(vcpu); } } + return 0; } static void process_nmi(struct kvm_vcpu *vcpu) @@ -5898,10 +5940,10 @@ goto out; } - inject_pending_event(vcpu); - + if (inject_pending_event(vcpu, req_int_win) != 0) + req_immediate_exit = true; /* enable NMI/IRQ window open exits if needed */ - if (vcpu->arch.nmi_pending) + else if (vcpu->arch.nmi_pending) req_immediate_exit = kvm_x86_ops->enable_nmi_window(vcpu) != 0; else if (kvm_cpu_has_injectable_intr(vcpu) || req_int_win) @@ -6089,6 +6131,20 @@ } if (need_resched()) { srcu_read_unlock(&kvm->srcu, vcpu->srcu_idx); +#ifdef CONFIG_X86_32 + /* + * This is a hack around a current bug on i386 + * that causes TIF_NEED_RESCHED not being propagated + * into the per-cpu counter. This causes cond_resched() + * which is what kvm_resched() calls to exit without + * actually rescheduling. We continue immediately with + * the loop but vcpu_enter_guest checks for the process + * flag and immediately exits and this loops busily + * runs forever. + */ + if (tif_need_resched()) + set_preempt_need_resched(); +#endif kvm_resched(vcpu); vcpu->srcu_idx = srcu_read_lock(&kvm->srcu); } @@ -6160,7 +6216,7 @@ frag->len -= len; } - if (vcpu->mmio_cur_fragment == vcpu->mmio_nr_fragments) { + if (vcpu->mmio_cur_fragment >= vcpu->mmio_nr_fragments) { vcpu->mmio_needed = 0; /* FIXME: return into emulator if single-stepping. */ @@ -7218,6 +7274,9 @@ int kvm_arch_vcpu_runnable(struct kvm_vcpu *vcpu) { + if (is_guest_mode(vcpu) && kvm_x86_ops->check_nested_events) + kvm_x86_ops->check_nested_events(vcpu, false); + return (vcpu->arch.mp_state == KVM_MP_STATE_RUNNABLE && !vcpu->arch.apf.halted) || !list_empty_careful(&vcpu->async_pf.done) --- linux-3.13.0.orig/arch/x86/kvm/x86.h +++ linux-3.13.0/arch/x86/kvm/x86.h @@ -78,15 +78,23 @@ vcpu->arch.mmio_gva = gva & PAGE_MASK; vcpu->arch.access = access; vcpu->arch.mmio_gfn = gfn; + vcpu->arch.mmio_gen = kvm_memslots(vcpu->kvm)->generation; +} + +static inline bool vcpu_match_mmio_gen(struct kvm_vcpu *vcpu) +{ + return vcpu->arch.mmio_gen == kvm_memslots(vcpu->kvm)->generation; } /* - * Clear the mmio cache info for the given gva, - * specially, if gva is ~0ul, we clear all mmio cache info. + * Clear the mmio cache info for the given gva. If gva is MMIO_GVA_ANY, we + * clear all mmio cache info. */ +#define MMIO_GVA_ANY (~(gva_t)0) + static inline void vcpu_clear_mmio_info(struct kvm_vcpu *vcpu, gva_t gva) { - if (gva != (~0ul) && vcpu->arch.mmio_gva != (gva & PAGE_MASK)) + if (gva != MMIO_GVA_ANY && vcpu->arch.mmio_gva != (gva & PAGE_MASK)) return; vcpu->arch.mmio_gva = 0; @@ -94,7 +102,8 @@ static inline bool vcpu_match_mmio_gva(struct kvm_vcpu *vcpu, unsigned long gva) { - if (vcpu->arch.mmio_gva && vcpu->arch.mmio_gva == (gva & PAGE_MASK)) + if (vcpu_match_mmio_gen(vcpu) && vcpu->arch.mmio_gva && + vcpu->arch.mmio_gva == (gva & PAGE_MASK)) return true; return false; @@ -102,7 +111,8 @@ static inline bool vcpu_match_mmio_gpa(struct kvm_vcpu *vcpu, gpa_t gpa) { - if (vcpu->arch.mmio_gfn && vcpu->arch.mmio_gfn == gpa >> PAGE_SHIFT) + if (vcpu_match_mmio_gen(vcpu) && vcpu->arch.mmio_gfn && + vcpu->arch.mmio_gfn == gpa >> PAGE_SHIFT) return true; return false; @@ -125,5 +135,7 @@ #define KVM_SUPPORTED_XCR0 (XSTATE_FP | XSTATE_SSE | XSTATE_YMM) extern u64 host_xcr0; +extern unsigned int min_timer_period_us; + extern struct static_key kvm_no_apic_vcpu; #endif --- linux-3.13.0.orig/arch/x86/mm/dump_pagetables.c +++ linux-3.13.0/arch/x86/mm/dump_pagetables.c @@ -30,11 +30,13 @@ unsigned long start_address; unsigned long current_address; const struct addr_marker *marker; + unsigned long lines; }; struct addr_marker { unsigned long start_address; const char *name; + unsigned long max_lines; }; /* indices for address_markers; keep sync'd w/ address_markers below */ @@ -45,6 +47,7 @@ LOW_KERNEL_NR, VMALLOC_START_NR, VMEMMAP_START_NR, + ESPFIX_START_NR, HIGH_KERNEL_NR, MODULES_VADDR_NR, MODULES_END_NR, @@ -67,6 +70,7 @@ { PAGE_OFFSET, "Low Kernel Mapping" }, { VMALLOC_START, "vmalloc() Area" }, { VMEMMAP_START, "Vmemmap" }, + { ESPFIX_BASE_ADDR, "ESPfix Area", 16 }, { __START_KERNEL_map, "High Kernel Mapping" }, { MODULES_VADDR, "Modules" }, { MODULES_END, "End Modules" }, @@ -163,7 +167,7 @@ pgprot_t new_prot, int level) { pgprotval_t prot, cur; - static const char units[] = "KMGTPE"; + static const char units[] = "BKMGTPE"; /* * If we have a "break" in the series, we need to flush the state that @@ -178,6 +182,7 @@ st->current_prot = new_prot; st->level = level; st->marker = address_markers; + st->lines = 0; seq_printf(m, "---[ %s ]---\n", st->marker->name); } else if (prot != cur || level != st->level || st->current_address >= st->marker[1].start_address) { @@ -188,17 +193,21 @@ /* * Now print the actual finished series */ - seq_printf(m, "0x%0*lx-0x%0*lx ", - width, st->start_address, - width, st->current_address); - - delta = (st->current_address - st->start_address) >> 10; - while (!(delta & 1023) && unit[1]) { - delta >>= 10; - unit++; + if (!st->marker->max_lines || + st->lines < st->marker->max_lines) { + seq_printf(m, "0x%0*lx-0x%0*lx ", + width, st->start_address, + width, st->current_address); + + delta = st->current_address - st->start_address; + while (!(delta & 1023) && unit[1]) { + delta >>= 10; + unit++; + } + seq_printf(m, "%9lu%c ", delta, *unit); + printk_prot(m, st->current_prot, st->level); } - seq_printf(m, "%9lu%c ", delta, *unit); - printk_prot(m, st->current_prot, st->level); + st->lines++; /* * We print markers for special areas of address space, @@ -206,7 +215,16 @@ * This helps in the interpretation. */ if (st->current_address >= st->marker[1].start_address) { + if (st->marker->max_lines && + st->lines > st->marker->max_lines) { + unsigned long nskip = + st->lines - st->marker->max_lines; + seq_printf(m, "... %lu entr%s skipped ... \n", + nskip, + nskip == 1 ? "y" : "ies"); + } st->marker++; + st->lines = 0; seq_printf(m, "---[ %s ]---\n", st->marker->name); } --- linux-3.13.0.orig/arch/x86/mm/fault.c +++ linux-3.13.0/arch/x86/mm/fault.c @@ -1001,6 +1001,12 @@ static inline bool smap_violation(int error_code, struct pt_regs *regs) { + if (!IS_ENABLED(CONFIG_X86_SMAP)) + return false; + + if (!static_cpu_has(X86_FEATURE_SMAP)) + return false; + if (error_code & PF_USER) return false; @@ -1087,11 +1093,9 @@ if (unlikely(error_code & PF_RSVD)) pgtable_bad(regs, error_code, address); - if (static_cpu_has(X86_FEATURE_SMAP)) { - if (unlikely(smap_violation(error_code, regs))) { - bad_area_nosemaphore(regs, error_code, address); - return; - } + if (unlikely(smap_violation(error_code, regs))) { + bad_area_nosemaphore(regs, error_code, address); + return; } /* --- linux-3.13.0.orig/arch/x86/mm/hugetlbpage.c +++ linux-3.13.0/arch/x86/mm/hugetlbpage.c @@ -58,11 +58,6 @@ { return NULL; } - -int pmd_huge_support(void) -{ - return 0; -} #else struct page * @@ -80,11 +75,6 @@ { return !!(pud_val(pud) & _PAGE_PSE); } - -int pmd_huge_support(void) -{ - return 1; -} #endif /* x86_64 also uses this file */ --- linux-3.13.0.orig/arch/x86/mm/init_64.c +++ linux-3.13.0/arch/x86/mm/init_64.c @@ -1110,7 +1110,7 @@ unsigned long end = (unsigned long) &__end_rodata_hpage_align; unsigned long text_end = PFN_ALIGN(&__stop___ex_table); unsigned long rodata_end = PFN_ALIGN(&__end_rodata); - unsigned long all_end = PFN_ALIGN(&_end); + unsigned long all_end; printk(KERN_INFO "Write protecting the kernel read-only data: %luk\n", (end - start) >> 10); @@ -1121,7 +1121,16 @@ /* * The rodata/data/bss/brk section (but not the kernel text!) * should also be not-executable. + * + * We align all_end to PMD_SIZE because the existing mapping + * is a full PMD. If we would align _brk_end to PAGE_SIZE we + * split the PMD and the reminder between _brk_end and the end + * of the PMD will remain mapped executable. + * + * Any PMD which was setup after the one which covers _brk_end + * has been zapped already via cleanup_highmem(). */ + all_end = roundup((unsigned long)_brk_end, PMD_SIZE); set_memory_nx(rodata_start, (all_end - rodata_start) >> PAGE_SHIFT); rodata_test(); --- linux-3.13.0.orig/arch/x86/mm/pageattr.c +++ linux-3.13.0/arch/x86/mm/pageattr.c @@ -30,6 +30,7 @@ */ struct cpa_data { unsigned long *vaddr; + pgd_t *pgd; pgprot_t mask_set; pgprot_t mask_clr; int numpages; @@ -322,17 +323,9 @@ return prot; } -/* - * Lookup the page table entry for a virtual address. Return a pointer - * to the entry and the level of the mapping. - * - * Note: We return pud and pmd either when the entry is marked large - * or when the present bit is not set. Otherwise we would return a - * pointer to a nonexisting mapping. - */ -pte_t *lookup_address(unsigned long address, unsigned int *level) +static pte_t *__lookup_address_in_pgd(pgd_t *pgd, unsigned long address, + unsigned int *level) { - pgd_t *pgd = pgd_offset_k(address); pud_t *pud; pmd_t *pmd; @@ -361,8 +354,31 @@ return pte_offset_kernel(pmd, address); } + +/* + * Lookup the page table entry for a virtual address. Return a pointer + * to the entry and the level of the mapping. + * + * Note: We return pud and pmd either when the entry is marked large + * or when the present bit is not set. Otherwise we would return a + * pointer to a nonexisting mapping. + */ +pte_t *lookup_address(unsigned long address, unsigned int *level) +{ + return __lookup_address_in_pgd(pgd_offset_k(address), address, level); +} EXPORT_SYMBOL_GPL(lookup_address); +static pte_t *_lookup_address_cpa(struct cpa_data *cpa, unsigned long address, + unsigned int *level) +{ + if (cpa->pgd) + return __lookup_address_in_pgd(cpa->pgd + pgd_index(address), + address, level); + + return lookup_address(address, level); +} + /* * This is necessary because __pa() does not work on some * kinds of memory, like vmalloc() or the alloc_remap() @@ -389,7 +405,7 @@ psize = page_level_size(level); pmask = page_level_mask(level); offset = virt_addr & ~pmask; - phys_addr = pte_pfn(*pte) << PAGE_SHIFT; + phys_addr = (phys_addr_t)pte_pfn(*pte) << PAGE_SHIFT; return (phys_addr | offset); } EXPORT_SYMBOL_GPL(slow_virt_to_phys); @@ -437,7 +453,7 @@ * Check for races, another CPU might have split this page * up already: */ - tmp = lookup_address(address, &level); + tmp = _lookup_address_cpa(cpa, address, &level); if (tmp != kpte) goto out_unlock; @@ -543,7 +559,8 @@ } static int -__split_large_page(pte_t *kpte, unsigned long address, struct page *base) +__split_large_page(struct cpa_data *cpa, pte_t *kpte, unsigned long address, + struct page *base) { pte_t *pbase = (pte_t *)page_address(base); unsigned long pfn, pfninc = 1; @@ -556,7 +573,7 @@ * Check for races, another CPU might have split this page * up for us already: */ - tmp = lookup_address(address, &level); + tmp = _lookup_address_cpa(cpa, address, &level); if (tmp != kpte) { spin_unlock(&pgd_lock); return 1; @@ -632,7 +649,8 @@ return 0; } -static int split_large_page(pte_t *kpte, unsigned long address) +static int split_large_page(struct cpa_data *cpa, pte_t *kpte, + unsigned long address) { struct page *base; @@ -644,15 +662,390 @@ if (!base) return -ENOMEM; - if (__split_large_page(kpte, address, base)) + if (__split_large_page(cpa, kpte, address, base)) __free_page(base); return 0; } +static bool try_to_free_pte_page(pte_t *pte) +{ + int i; + + for (i = 0; i < PTRS_PER_PTE; i++) + if (!pte_none(pte[i])) + return false; + + free_page((unsigned long)pte); + return true; +} + +static bool try_to_free_pmd_page(pmd_t *pmd) +{ + int i; + + for (i = 0; i < PTRS_PER_PMD; i++) + if (!pmd_none(pmd[i])) + return false; + + free_page((unsigned long)pmd); + return true; +} + +static bool unmap_pte_range(pmd_t *pmd, unsigned long start, unsigned long end) +{ + pte_t *pte = pte_offset_kernel(pmd, start); + + while (start < end) { + set_pte(pte, __pte(0)); + + start += PAGE_SIZE; + pte++; + } + + if (try_to_free_pte_page((pte_t *)pmd_page_vaddr(*pmd))) { + pmd_clear(pmd); + return true; + } + return false; +} + +static void __unmap_pmd_range(pud_t *pud, pmd_t *pmd, + unsigned long start, unsigned long end) +{ + if (unmap_pte_range(pmd, start, end)) + if (try_to_free_pmd_page((pmd_t *)pud_page_vaddr(*pud))) + pud_clear(pud); +} + +static void unmap_pmd_range(pud_t *pud, unsigned long start, unsigned long end) +{ + pmd_t *pmd = pmd_offset(pud, start); + + /* + * Not on a 2MB page boundary? + */ + if (start & (PMD_SIZE - 1)) { + unsigned long next_page = (start + PMD_SIZE) & PMD_MASK; + unsigned long pre_end = min_t(unsigned long, end, next_page); + + __unmap_pmd_range(pud, pmd, start, pre_end); + + start = pre_end; + pmd++; + } + + /* + * Try to unmap in 2M chunks. + */ + while (end - start >= PMD_SIZE) { + if (pmd_large(*pmd)) + pmd_clear(pmd); + else + __unmap_pmd_range(pud, pmd, start, start + PMD_SIZE); + + start += PMD_SIZE; + pmd++; + } + + /* + * 4K leftovers? + */ + if (start < end) + return __unmap_pmd_range(pud, pmd, start, end); + + /* + * Try again to free the PMD page if haven't succeeded above. + */ + if (!pud_none(*pud)) + if (try_to_free_pmd_page((pmd_t *)pud_page_vaddr(*pud))) + pud_clear(pud); +} + +static void unmap_pud_range(pgd_t *pgd, unsigned long start, unsigned long end) +{ + pud_t *pud = pud_offset(pgd, start); + + /* + * Not on a GB page boundary? + */ + if (start & (PUD_SIZE - 1)) { + unsigned long next_page = (start + PUD_SIZE) & PUD_MASK; + unsigned long pre_end = min_t(unsigned long, end, next_page); + + unmap_pmd_range(pud, start, pre_end); + + start = pre_end; + pud++; + } + + /* + * Try to unmap in 1G chunks? + */ + while (end - start >= PUD_SIZE) { + + if (pud_large(*pud)) + pud_clear(pud); + else + unmap_pmd_range(pud, start, start + PUD_SIZE); + + start += PUD_SIZE; + pud++; + } + + /* + * 2M leftovers? + */ + if (start < end) + unmap_pmd_range(pud, start, end); + + /* + * No need to try to free the PUD page because we'll free it in + * populate_pgd's error path + */ +} + +static int alloc_pte_page(pmd_t *pmd) +{ + pte_t *pte = (pte_t *)get_zeroed_page(GFP_KERNEL | __GFP_NOTRACK); + if (!pte) + return -1; + + set_pmd(pmd, __pmd(__pa(pte) | _KERNPG_TABLE)); + return 0; +} + +static int alloc_pmd_page(pud_t *pud) +{ + pmd_t *pmd = (pmd_t *)get_zeroed_page(GFP_KERNEL | __GFP_NOTRACK); + if (!pmd) + return -1; + + set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE)); + return 0; +} + +static void populate_pte(struct cpa_data *cpa, + unsigned long start, unsigned long end, + unsigned num_pages, pmd_t *pmd, pgprot_t pgprot) +{ + pte_t *pte; + + pte = pte_offset_kernel(pmd, start); + + while (num_pages-- && start < end) { + + /* deal with the NX bit */ + if (!(pgprot_val(pgprot) & _PAGE_NX)) + cpa->pfn &= ~_PAGE_NX; + + set_pte(pte, pfn_pte(cpa->pfn >> PAGE_SHIFT, pgprot)); + + start += PAGE_SIZE; + cpa->pfn += PAGE_SIZE; + pte++; + } +} + +static int populate_pmd(struct cpa_data *cpa, + unsigned long start, unsigned long end, + unsigned num_pages, pud_t *pud, pgprot_t pgprot) +{ + unsigned int cur_pages = 0; + pmd_t *pmd; + + /* + * Not on a 2M boundary? + */ + if (start & (PMD_SIZE - 1)) { + unsigned long pre_end = start + (num_pages << PAGE_SHIFT); + unsigned long next_page = (start + PMD_SIZE) & PMD_MASK; + + pre_end = min_t(unsigned long, pre_end, next_page); + cur_pages = (pre_end - start) >> PAGE_SHIFT; + cur_pages = min_t(unsigned int, num_pages, cur_pages); + + /* + * Need a PTE page? + */ + pmd = pmd_offset(pud, start); + if (pmd_none(*pmd)) + if (alloc_pte_page(pmd)) + return -1; + + populate_pte(cpa, start, pre_end, cur_pages, pmd, pgprot); + + start = pre_end; + } + + /* + * We mapped them all? + */ + if (num_pages == cur_pages) + return cur_pages; + + while (end - start >= PMD_SIZE) { + + /* + * We cannot use a 1G page so allocate a PMD page if needed. + */ + if (pud_none(*pud)) + if (alloc_pmd_page(pud)) + return -1; + + pmd = pmd_offset(pud, start); + + set_pmd(pmd, __pmd(cpa->pfn | _PAGE_PSE | massage_pgprot(pgprot))); + + start += PMD_SIZE; + cpa->pfn += PMD_SIZE; + cur_pages += PMD_SIZE >> PAGE_SHIFT; + } + + /* + * Map trailing 4K pages. + */ + if (start < end) { + pmd = pmd_offset(pud, start); + if (pmd_none(*pmd)) + if (alloc_pte_page(pmd)) + return -1; + + populate_pte(cpa, start, end, num_pages - cur_pages, + pmd, pgprot); + } + return num_pages; +} + +static int populate_pud(struct cpa_data *cpa, unsigned long start, pgd_t *pgd, + pgprot_t pgprot) +{ + pud_t *pud; + unsigned long end; + int cur_pages = 0; + + end = start + (cpa->numpages << PAGE_SHIFT); + + /* + * Not on a Gb page boundary? => map everything up to it with + * smaller pages. + */ + if (start & (PUD_SIZE - 1)) { + unsigned long pre_end; + unsigned long next_page = (start + PUD_SIZE) & PUD_MASK; + + pre_end = min_t(unsigned long, end, next_page); + cur_pages = (pre_end - start) >> PAGE_SHIFT; + cur_pages = min_t(int, (int)cpa->numpages, cur_pages); + + pud = pud_offset(pgd, start); + + /* + * Need a PMD page? + */ + if (pud_none(*pud)) + if (alloc_pmd_page(pud)) + return -1; + + cur_pages = populate_pmd(cpa, start, pre_end, cur_pages, + pud, pgprot); + if (cur_pages < 0) + return cur_pages; + + start = pre_end; + } + + /* We mapped them all? */ + if (cpa->numpages == cur_pages) + return cur_pages; + + pud = pud_offset(pgd, start); + + /* + * Map everything starting from the Gb boundary, possibly with 1G pages + */ + while (end - start >= PUD_SIZE) { + set_pud(pud, __pud(cpa->pfn | _PAGE_PSE | massage_pgprot(pgprot))); + + start += PUD_SIZE; + cpa->pfn += PUD_SIZE; + cur_pages += PUD_SIZE >> PAGE_SHIFT; + pud++; + } + + /* Map trailing leftover */ + if (start < end) { + int tmp; + + pud = pud_offset(pgd, start); + if (pud_none(*pud)) + if (alloc_pmd_page(pud)) + return -1; + + tmp = populate_pmd(cpa, start, end, cpa->numpages - cur_pages, + pud, pgprot); + if (tmp < 0) + return cur_pages; + + cur_pages += tmp; + } + return cur_pages; +} + +/* + * Restrictions for kernel page table do not necessarily apply when mapping in + * an alternate PGD. + */ +static int populate_pgd(struct cpa_data *cpa, unsigned long addr) +{ + pgprot_t pgprot = __pgprot(_KERNPG_TABLE); + bool allocd_pgd = false; + pgd_t *pgd_entry; + pud_t *pud = NULL; /* shut up gcc */ + int ret; + + pgd_entry = cpa->pgd + pgd_index(addr); + + /* + * Allocate a PUD page and hand it down for mapping. + */ + if (pgd_none(*pgd_entry)) { + pud = (pud_t *)get_zeroed_page(GFP_KERNEL | __GFP_NOTRACK); + if (!pud) + return -1; + + set_pgd(pgd_entry, __pgd(__pa(pud) | _KERNPG_TABLE)); + allocd_pgd = true; + } + + pgprot_val(pgprot) &= ~pgprot_val(cpa->mask_clr); + pgprot_val(pgprot) |= pgprot_val(cpa->mask_set); + + ret = populate_pud(cpa, addr, pgd_entry, pgprot); + if (ret < 0) { + unmap_pud_range(pgd_entry, addr, + addr + (cpa->numpages << PAGE_SHIFT)); + + if (allocd_pgd) { + /* + * If I allocated this PUD page, I can just as well + * free it in this error path. + */ + pgd_clear(pgd_entry); + free_page((unsigned long)pud); + } + return ret; + } + cpa->numpages = ret; + return 0; +} + static int __cpa_process_fault(struct cpa_data *cpa, unsigned long vaddr, int primary) { + if (cpa->pgd) + return populate_pgd(cpa, vaddr); + /* * Ignore all non primary paths. */ @@ -697,7 +1090,7 @@ else address = *cpa->vaddr; repeat: - kpte = lookup_address(address, &level); + kpte = _lookup_address_cpa(cpa, address, &level); if (!kpte) return __cpa_process_fault(cpa, address, primary); @@ -761,7 +1154,7 @@ /* * We have to split the large page: */ - err = split_large_page(kpte, address); + err = split_large_page(cpa, kpte, address); if (!err) { /* * Do a global flush tlb after splitting the large page @@ -910,6 +1303,8 @@ int ret, cache, checkalias; unsigned long baddr = 0; + memset(&cpa, 0, sizeof(cpa)); + /* * Check, if we are requested to change a not supported * feature: @@ -1356,6 +1751,7 @@ { unsigned long tempaddr = (unsigned long) page_address(page); struct cpa_data cpa = { .vaddr = &tempaddr, + .pgd = NULL, .numpages = numpages, .mask_set = __pgprot(_PAGE_PRESENT | _PAGE_RW), .mask_clr = __pgprot(0), @@ -1374,6 +1770,7 @@ { unsigned long tempaddr = (unsigned long) page_address(page); struct cpa_data cpa = { .vaddr = &tempaddr, + .pgd = NULL, .numpages = numpages, .mask_set = __pgprot(0), .mask_clr = __pgprot(_PAGE_PRESENT | _PAGE_RW), @@ -1434,6 +1831,36 @@ #endif /* CONFIG_DEBUG_PAGEALLOC */ +int kernel_map_pages_in_pgd(pgd_t *pgd, u64 pfn, unsigned long address, + unsigned numpages, unsigned long page_flags) +{ + int retval = -EINVAL; + + struct cpa_data cpa = { + .vaddr = &address, + .pfn = pfn, + .pgd = pgd, + .numpages = numpages, + .mask_set = __pgprot(0), + .mask_clr = __pgprot(0), + .flags = 0, + }; + + if (!(__supported_pte_mask & _PAGE_NX)) + goto out; + + if (!(page_flags & _PAGE_NX)) + cpa.mask_clr = __pgprot(_PAGE_NX); + + cpa.mask_set = __pgprot(_PAGE_PRESENT | page_flags); + + retval = __change_page_attr_set_clr(&cpa, 0); + __flush_tlb_all(); + +out: + return retval; +} + /* * The testcases use internal knowledge of the implementation that shouldn't * be exposed to the rest of the kernel. Include these directly here. --- linux-3.13.0.orig/arch/x86/net/bpf_jit.S +++ linux-3.13.0/arch/x86/net/bpf_jit.S @@ -140,7 +140,7 @@ push %r9; \ push SKBDATA; \ /* rsi already has offset */ \ - mov $SIZE,%ecx; /* size */ \ + mov $SIZE,%edx; /* size */ \ call bpf_internal_load_pointer_neg_helper; \ test %rax,%rax; \ pop SKBDATA; \ --- linux-3.13.0.orig/arch/x86/net/bpf_jit_comp.c +++ linux-3.13.0/arch/x86/net/bpf_jit_comp.c @@ -171,7 +171,7 @@ memset(header, 0xcc, sz); /* fill whole space with int3 instructions */ header->pages = sz / PAGE_SIZE; - hole = sz - (proglen + sizeof(*header)); + hole = min(sz - (proglen + sizeof(*header)), PAGE_SIZE - sizeof(*header)); /* insert a random number of int3 instructions before BPF code */ *image_ptr = &header->image[prandom_u32() % hole]; --- linux-3.13.0.orig/arch/x86/pci/fixup.c +++ linux-3.13.0/arch/x86/pci/fixup.c @@ -350,9 +350,7 @@ pci_read_config_word(pdev, PCI_COMMAND, &config); if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) { pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW; - dev_printk(KERN_DEBUG, &pdev->dev, "Boot video device\n"); - if (!vga_default_device()) - vga_set_default_device(pdev); + dev_printk(KERN_DEBUG, &pdev->dev, "Video device with shadowed ROM\n"); } } DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID, --- linux-3.13.0.orig/arch/x86/pci/i386.c +++ linux-3.13.0/arch/x86/pci/i386.c @@ -162,6 +162,10 @@ return start; if (start & 0x300) start = (start + 0x3ff) & ~0x3ff; + } else if (res->flags & IORESOURCE_MEM) { + /* The low 1MB range is reserved for ISA cards */ + if (start < BIOS_END) + start = BIOS_END; } return start; } --- linux-3.13.0.orig/arch/x86/platform/efi/efi.c +++ linux-3.13.0/arch/x86/platform/efi/efi.c @@ -12,6 +12,8 @@ * Bibo Mao * Chandramouli Narayanan * Huang Ying + * Copyright (C) 2013 SuSE Labs + * Borislav Petkov - runtime services VA mapping * * Copied from efi_32.c to eliminate the duplicated code between EFI * 32/64 support code. --ying 2007-10-26 @@ -436,7 +438,7 @@ * - Not within any part of the kernel * - Not the bios reserved area */ - if ((start+size >= __pa_symbol(_text) + if ((start + size > __pa_symbol(_text) && start <= __pa_symbol(_end)) || !e820_all_mapped(start, start+size, E820_RAM) || memblock_is_region_reserved(start, size)) { @@ -715,7 +717,7 @@ set_memory_nx(addr, npages); } -static void __init runtime_code_page_mkexec(void) +void __init runtime_code_page_mkexec(void) { efi_memory_desc_t *md; void *p; @@ -741,21 +743,56 @@ set_memory_uc(addr, npages); } +void __init old_map_region(efi_memory_desc_t *md) +{ + u64 start_pfn, end_pfn, end; + unsigned long size; + void *va; + + start_pfn = PFN_DOWN(md->phys_addr); + size = md->num_pages << PAGE_SHIFT; + end = md->phys_addr + size; + end_pfn = PFN_UP(end); + + if (pfn_range_is_mapped(start_pfn, end_pfn)) { + va = __va(md->phys_addr); + + if (!(md->attribute & EFI_MEMORY_WB)) + efi_memory_uc((u64)(unsigned long)va, size); + } else + va = efi_ioremap(md->phys_addr, size, + md->type, md->attribute); + + md->virt_addr = (u64) (unsigned long) va; + if (!va) + pr_err("ioremap of 0x%llX failed!\n", + (unsigned long long)md->phys_addr); +} + /* * This function will switch the EFI runtime services to virtual mode. - * Essentially, look through the EFI memmap and map every region that - * has the runtime attribute bit set in its memory descriptor and update - * that memory descriptor with the virtual address obtained from ioremap(). - * This enables the runtime services to be called without having to + * Essentially, we look through the EFI memmap and map every region that + * has the runtime attribute bit set in its memory descriptor into the + * ->trampoline_pgd page table using a top-down VA allocation scheme. + * + * The old method which used to update that memory descriptor with the + * virtual address obtained from ioremap() is still supported when the + * kernel is booted with efi=old_map on its command line. Same old + * method enabled the runtime services to be called without having to * thunk back into physical mode for every invocation. + * + * The new method does a pagetable switch in a preemption-safe manner + * so that we're in a different address space when calling a runtime + * function. For function arguments passing we do copy the PGDs of the + * kernel page table into ->trampoline_pgd prior to each call. */ void __init efi_enter_virtual_mode(void) { efi_memory_desc_t *md, *prev_md = NULL; - efi_status_t status; + void *p, *new_memmap = NULL; unsigned long size; - u64 end, systab, start_pfn, end_pfn; - void *p, *va, *new_memmap = NULL; + efi_status_t status; + u64 end, systab; int count = 0; efi.systab = NULL; @@ -764,7 +801,6 @@ * We don't do virtual mode, since we don't do runtime services, on * non-native EFI */ - if (!efi_is_native()) { efi_unmap_memmap(); return; @@ -795,6 +831,7 @@ continue; } prev_md = md; + } for (p = memmap.map; p < memmap.map_end; p += memmap.desc_size) { @@ -807,36 +844,24 @@ continue; } + efi_map_region(md); + size = md->num_pages << EFI_PAGE_SHIFT; end = md->phys_addr + size; - start_pfn = PFN_DOWN(md->phys_addr); - end_pfn = PFN_UP(end); - if (pfn_range_is_mapped(start_pfn, end_pfn)) { - va = __va(md->phys_addr); - - if (!(md->attribute & EFI_MEMORY_WB)) - efi_memory_uc((u64)(unsigned long)va, size); - } else - va = efi_ioremap(md->phys_addr, size, - md->type, md->attribute); - - md->virt_addr = (u64) (unsigned long) va; - - if (!va) { - pr_err("ioremap of 0x%llX failed!\n", - (unsigned long long)md->phys_addr); - continue; - } - systab = (u64) (unsigned long) efi_phys.systab; if (md->phys_addr <= systab && systab < end) { systab += md->virt_addr - md->phys_addr; + efi.systab = (efi_system_table_t *) (unsigned long) systab; } + new_memmap = krealloc(new_memmap, (count + 1) * memmap.desc_size, GFP_KERNEL); + if (!new_memmap) + goto err_out; + memcpy(new_memmap + (count * memmap.desc_size), md, memmap.desc_size); count++; @@ -844,6 +869,9 @@ BUG_ON(!efi.systab); + efi_setup_page_tables(); + efi_sync_low_kernel_mappings(); + status = phys_efi_set_virtual_address_map( memmap.desc_size * count, memmap.desc_size, @@ -876,8 +904,8 @@ efi.query_variable_info = virt_efi_query_variable_info; efi.update_capsule = virt_efi_update_capsule; efi.query_capsule_caps = virt_efi_query_capsule_caps; - if (__supported_pte_mask & _PAGE_NX) - runtime_code_page_mkexec(); + + efi_runtime_mkexec(); kfree(new_memmap); @@ -887,6 +915,11 @@ EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS, 0, NULL); + + return; + + err_out: + pr_err("Error reallocating memory, EFI runtime non-functional!\n"); } /* @@ -1006,3 +1039,15 @@ return EFI_SUCCESS; } EXPORT_SYMBOL_GPL(efi_query_variable_store); + +static int __init parse_efi_cmdline(char *str) +{ + if (*str == '=') + str++; + + if (!strncmp(str, "old_map", 7)) + set_bit(EFI_OLD_MEMMAP, &x86_efi_facility); + + return 0; +} +early_param("efi", parse_efi_cmdline); --- linux-3.13.0.orig/arch/x86/platform/efi/efi_32.c +++ linux-3.13.0/arch/x86/platform/efi/efi_32.c @@ -37,9 +37,16 @@ * claim EFI runtime service handler exclusively and to duplicate a memory in * low memory space say 0 - 3G. */ - static unsigned long efi_rt_eflags; +void efi_sync_low_kernel_mappings(void) {} +void efi_setup_page_tables(void) {} + +void __init efi_map_region(efi_memory_desc_t *md) +{ + old_map_region(md); +} + void efi_call_phys_prelog(void) { struct desc_ptr gdt_descr; @@ -67,3 +74,9 @@ local_irq_restore(efi_rt_eflags); } + +void __init efi_runtime_mkexec(void) +{ + if (__supported_pte_mask & _PAGE_NX) + runtime_code_page_mkexec(); +} --- linux-3.13.0.orig/arch/x86/platform/efi/efi_64.c +++ linux-3.13.0/arch/x86/platform/efi/efi_64.c @@ -38,10 +38,28 @@ #include #include #include +#include static pgd_t *save_pgd __initdata; static unsigned long efi_flags __initdata; +/* + * We allocate runtime services regions bottom-up, starting from -4G, i.e. + * 0xffff_ffff_0000_0000 and limit EFI VA mapping space to 64G. + */ +static u64 efi_va = -4 * (1UL << 30); +#define EFI_VA_END (-68 * (1UL << 30)) + +/* + * Scratch space used for switching the pagetable in the EFI stub + */ +struct efi_scratch { + u64 r15; + u64 prev_cr3; + pgd_t *efi_pgt; + bool use_pgd; +}; + static void __init early_code_mapping_set_exec(int executable) { efi_memory_desc_t *md; @@ -65,6 +83,9 @@ int pgd; int n_pgds; + if (!efi_enabled(EFI_OLD_MEMMAP)) + return; + early_code_mapping_set_exec(1); local_irq_save(efi_flags); @@ -86,6 +107,10 @@ */ int pgd; int n_pgds = DIV_ROUND_UP((max_pfn << PAGE_SHIFT) , PGDIR_SIZE); + + if (!efi_enabled(EFI_OLD_MEMMAP)) + return; + for (pgd = 0; pgd < n_pgds; pgd++) set_pgd(pgd_offset_k(pgd * PGDIR_SIZE), save_pgd[pgd]); kfree(save_pgd); @@ -94,6 +119,90 @@ early_code_mapping_set_exec(0); } +/* + * Add low kernel mappings for passing arguments to EFI functions. + */ +void efi_sync_low_kernel_mappings(void) +{ + unsigned num_pgds; + pgd_t *pgd = (pgd_t *)__va(real_mode_header->trampoline_pgd); + + if (efi_enabled(EFI_OLD_MEMMAP)) + return; + + num_pgds = pgd_index(MODULES_END - 1) - pgd_index(PAGE_OFFSET); + + memcpy(pgd + pgd_index(PAGE_OFFSET), + init_mm.pgd + pgd_index(PAGE_OFFSET), + sizeof(pgd_t) * num_pgds); +} + +void efi_setup_page_tables(void) +{ + efi_scratch.efi_pgt = (pgd_t *)(unsigned long)real_mode_header->trampoline_pgd; + + if (!efi_enabled(EFI_OLD_MEMMAP)) + efi_scratch.use_pgd = true; +} + +static void __init __map_region(efi_memory_desc_t *md, u64 va) +{ + pgd_t *pgd = (pgd_t *)__va(real_mode_header->trampoline_pgd); + unsigned long pf = 0, size; + u64 end; + + if (!(md->attribute & EFI_MEMORY_WB)) + pf |= _PAGE_PCD; + + size = md->num_pages << PAGE_SHIFT; + end = va + size; + + if (kernel_map_pages_in_pgd(pgd, md->phys_addr, va, md->num_pages, pf)) + pr_warn("Error mapping PA 0x%llx -> VA 0x%llx!\n", + md->phys_addr, va); +} + +void __init efi_map_region(efi_memory_desc_t *md) +{ + unsigned long size = md->num_pages << PAGE_SHIFT; + u64 pa = md->phys_addr; + + if (efi_enabled(EFI_OLD_MEMMAP)) + return old_map_region(md); + + /* + * Make sure the 1:1 mappings are present as a catch-all for b0rked + * firmware which doesn't update all internal pointers after switching + * to virtual mode and would otherwise crap on us. + */ + __map_region(md, md->phys_addr); + + efi_va -= size; + + /* Is PA 2M-aligned? */ + if (!(pa & (PMD_SIZE - 1))) { + efi_va &= PMD_MASK; + } else { + u64 pa_offset = pa & (PMD_SIZE - 1); + u64 prev_va = efi_va; + + /* get us the same offset within this 2M page */ + efi_va = (efi_va & PMD_MASK) + pa_offset; + + if (efi_va > prev_va) + efi_va -= PMD_SIZE; + } + + if (efi_va < EFI_VA_END) { + pr_warn(FW_WARN "VA address range overflow!\n"); + return; + } + + /* Do the VA map */ + __map_region(md, efi_va); + md->virt_addr = efi_va; +} + void __iomem *__init efi_ioremap(unsigned long phys_addr, unsigned long size, u32 type, u64 attribute) { @@ -113,3 +222,12 @@ return (void __iomem *)__va(phys_addr); } + +void __init efi_runtime_mkexec(void) +{ + if (!efi_enabled(EFI_OLD_MEMMAP)) + return; + + if (__supported_pte_mask & _PAGE_NX) + runtime_code_page_mkexec(); +} --- linux-3.13.0.orig/arch/x86/platform/efi/efi_stub_64.S +++ linux-3.13.0/arch/x86/platform/efi/efi_stub_64.S @@ -34,10 +34,47 @@ mov %rsi, %cr0; \ mov (%rsp), %rsp + /* stolen from gcc */ + .macro FLUSH_TLB_ALL + movq %r15, efi_scratch(%rip) + movq %r14, efi_scratch+8(%rip) + movq %cr4, %r15 + movq %r15, %r14 + andb $0x7f, %r14b + movq %r14, %cr4 + movq %r15, %cr4 + movq efi_scratch+8(%rip), %r14 + movq efi_scratch(%rip), %r15 + .endm + + .macro SWITCH_PGT + cmpb $0, efi_scratch+24(%rip) + je 1f + movq %r15, efi_scratch(%rip) # r15 + # save previous CR3 + movq %cr3, %r15 + movq %r15, efi_scratch+8(%rip) # prev_cr3 + movq efi_scratch+16(%rip), %r15 # EFI pgt + movq %r15, %cr3 + 1: + .endm + + .macro RESTORE_PGT + cmpb $0, efi_scratch+24(%rip) + je 2f + movq efi_scratch+8(%rip), %r15 + movq %r15, %cr3 + movq efi_scratch(%rip), %r15 + FLUSH_TLB_ALL + 2: + .endm + ENTRY(efi_call0) SAVE_XMM subq $32, %rsp + SWITCH_PGT call *%rdi + RESTORE_PGT addq $32, %rsp RESTORE_XMM ret @@ -47,7 +84,9 @@ SAVE_XMM subq $32, %rsp mov %rsi, %rcx + SWITCH_PGT call *%rdi + RESTORE_PGT addq $32, %rsp RESTORE_XMM ret @@ -57,7 +96,9 @@ SAVE_XMM subq $32, %rsp mov %rsi, %rcx + SWITCH_PGT call *%rdi + RESTORE_PGT addq $32, %rsp RESTORE_XMM ret @@ -68,7 +109,9 @@ subq $32, %rsp mov %rcx, %r8 mov %rsi, %rcx + SWITCH_PGT call *%rdi + RESTORE_PGT addq $32, %rsp RESTORE_XMM ret @@ -80,7 +123,9 @@ mov %r8, %r9 mov %rcx, %r8 mov %rsi, %rcx + SWITCH_PGT call *%rdi + RESTORE_PGT addq $32, %rsp RESTORE_XMM ret @@ -93,7 +138,9 @@ mov %r8, %r9 mov %rcx, %r8 mov %rsi, %rcx + SWITCH_PGT call *%rdi + RESTORE_PGT addq $48, %rsp RESTORE_XMM ret @@ -109,8 +156,15 @@ mov %r8, %r9 mov %rcx, %r8 mov %rsi, %rcx + SWITCH_PGT call *%rdi + RESTORE_PGT addq $48, %rsp RESTORE_XMM ret ENDPROC(efi_call6) + + .data +ENTRY(efi_scratch) + .fill 3,8,0 + .byte 0 --- linux-3.13.0.orig/arch/x86/syscalls/syscall_32.tbl +++ linux-3.13.0/arch/x86/syscalls/syscall_32.tbl @@ -357,3 +357,7 @@ 348 i386 process_vm_writev sys_process_vm_writev compat_sys_process_vm_writev 349 i386 kcmp sys_kcmp 350 i386 finit_module sys_finit_module +351 i386 sched_setattr sys_ni_syscall +352 i386 sched_getattr sys_ni_syscall +353 i386 renameat2 sys_ni_syscall +354 i386 seccomp sys_seccomp --- linux-3.13.0.orig/arch/x86/syscalls/syscall_64.tbl +++ linux-3.13.0/arch/x86/syscalls/syscall_64.tbl @@ -212,10 +212,10 @@ 203 common sched_setaffinity sys_sched_setaffinity 204 common sched_getaffinity sys_sched_getaffinity 205 64 set_thread_area -206 common io_setup sys_io_setup +206 64 io_setup sys_io_setup 207 common io_destroy sys_io_destroy 208 common io_getevents sys_io_getevents -209 common io_submit sys_io_submit +209 64 io_submit sys_io_submit 210 common io_cancel sys_io_cancel 211 64 get_thread_area 212 common lookup_dcookie sys_lookup_dcookie @@ -320,6 +320,10 @@ 311 64 process_vm_writev sys_process_vm_writev 312 common kcmp sys_kcmp 313 common finit_module sys_finit_module +314 common sched_setattr sys_ni_syscall +315 common sched_getattr sys_ni_syscall +316 common renameat2 sys_ni_syscall +317 common seccomp sys_seccomp # # x32-specific system call numbers start at 512 to avoid cache impact @@ -356,3 +360,5 @@ 540 x32 process_vm_writev compat_sys_process_vm_writev 541 x32 setsockopt compat_sys_setsockopt 542 x32 getsockopt compat_sys_getsockopt +543 x32 io_setup compat_sys_io_setup +544 x32 io_submit compat_sys_io_submit --- linux-3.13.0.orig/arch/x86/vdso/vma.c +++ linux-3.13.0/arch/x86/vdso/vma.c @@ -117,30 +117,45 @@ struct linux_binprm; -/* Put the vdso above the (randomized) stack with another randomized offset. - This way there is no hole in the middle of address space. - To save memory make sure it is still in the same PTE as the stack top. - This doesn't give that many random bits */ +/* + * Put the vdso above the (randomized) stack with another randomized + * offset. This way there is no hole in the middle of address space. + * To save memory make sure it is still in the same PTE as the stack + * top. This doesn't give that many random bits. + * + * Note that this algorithm is imperfect: the distribution of the vdso + * start address within a PMD is biased toward the end. + * + * Only used for the 64-bit and x32 vdsos. + */ static unsigned long vdso_addr(unsigned long start, unsigned len) { unsigned long addr, end; unsigned offset; - end = (start + PMD_SIZE - 1) & PMD_MASK; + + /* + * Round up the start address. It can start out unaligned as a result + * of stack start randomization. + */ + start = PAGE_ALIGN(start); + + /* Round the lowest possible end address up to a PMD boundary. */ + end = (start + len + PMD_SIZE - 1) & PMD_MASK; if (end >= TASK_SIZE_MAX) end = TASK_SIZE_MAX; end -= len; - /* This loses some more bits than a modulo, but is cheaper */ - offset = get_random_int() & (PTRS_PER_PTE - 1); - addr = start + (offset << PAGE_SHIFT); - if (addr >= end) - addr = end; + + if (end > start) { + offset = get_random_int() % (((end - start) >> PAGE_SHIFT) + 1); + addr = start + (offset << PAGE_SHIFT); + } else { + addr = start; + } /* - * page-align it here so that get_unmapped_area doesn't - * align it wrongfully again to the next page. addr can come in 4K - * unaligned here as a result of stack start randomization. + * Forcibly align the final address in case we have a hardware + * issue that requires alignment for performance reasons. */ - addr = PAGE_ALIGN(addr); addr = align_vdso_addr(addr); return addr; --- linux-3.13.0.orig/arch/x86/xen/grant-table.c +++ linux-3.13.0/arch/x86/xen/grant-table.c @@ -36,92 +36,126 @@ #include #include +#include #include #include #include #include +#include #include -static int map_pte_fn(pte_t *pte, struct page *pmd_page, - unsigned long addr, void *data) -{ - unsigned long **frames = (unsigned long **)data; - - set_pte_at(&init_mm, addr, pte, mfn_pte((*frames)[0], PAGE_KERNEL)); - (*frames)++; - return 0; -} - -/* - * This function is used to map shared frames to store grant status. It is - * different from map_pte_fn above, the frames type here is uint64_t. - */ -static int map_pte_fn_status(pte_t *pte, struct page *pmd_page, - unsigned long addr, void *data) -{ - uint64_t **frames = (uint64_t **)data; - - set_pte_at(&init_mm, addr, pte, mfn_pte((*frames)[0], PAGE_KERNEL)); - (*frames)++; - return 0; -} - -static int unmap_pte_fn(pte_t *pte, struct page *pmd_page, - unsigned long addr, void *data) -{ - - set_pte_at(&init_mm, addr, pte, __pte(0)); - return 0; -} +static struct gnttab_vm_area { + struct vm_struct *area; + pte_t **ptes; +} gnttab_shared_vm_area, gnttab_status_vm_area; int arch_gnttab_map_shared(unsigned long *frames, unsigned long nr_gframes, unsigned long max_nr_gframes, void **__shared) { - int rc; void *shared = *__shared; + unsigned long addr; + unsigned long i; + + if (shared == NULL) + *__shared = shared = gnttab_shared_vm_area.area->addr; - if (shared == NULL) { - struct vm_struct *area = - alloc_vm_area(PAGE_SIZE * max_nr_gframes, NULL); - BUG_ON(area == NULL); - shared = area->addr; - *__shared = shared; + addr = (unsigned long)shared; + + for (i = 0; i < nr_gframes; i++) { + set_pte_at(&init_mm, addr, gnttab_shared_vm_area.ptes[i], + mfn_pte(frames[i], PAGE_KERNEL)); + addr += PAGE_SIZE; } - rc = apply_to_page_range(&init_mm, (unsigned long)shared, - PAGE_SIZE * nr_gframes, - map_pte_fn, &frames); - return rc; + return 0; } int arch_gnttab_map_status(uint64_t *frames, unsigned long nr_gframes, unsigned long max_nr_gframes, grant_status_t **__shared) { - int rc; grant_status_t *shared = *__shared; + unsigned long addr; + unsigned long i; + + if (shared == NULL) + *__shared = shared = gnttab_status_vm_area.area->addr; + + addr = (unsigned long)shared; - if (shared == NULL) { - /* No need to pass in PTE as we are going to do it - * in apply_to_page_range anyhow. */ - struct vm_struct *area = - alloc_vm_area(PAGE_SIZE * max_nr_gframes, NULL); - BUG_ON(area == NULL); - shared = area->addr; - *__shared = shared; + for (i = 0; i < nr_gframes; i++) { + set_pte_at(&init_mm, addr, gnttab_status_vm_area.ptes[i], + mfn_pte(frames[i], PAGE_KERNEL)); + addr += PAGE_SIZE; } - rc = apply_to_page_range(&init_mm, (unsigned long)shared, - PAGE_SIZE * nr_gframes, - map_pte_fn_status, &frames); - return rc; + return 0; } void arch_gnttab_unmap(void *shared, unsigned long nr_gframes) { - apply_to_page_range(&init_mm, (unsigned long)shared, - PAGE_SIZE * nr_gframes, unmap_pte_fn, NULL); + pte_t **ptes; + unsigned long addr; + unsigned long i; + + if (shared == gnttab_status_vm_area.area->addr) + ptes = gnttab_status_vm_area.ptes; + else + ptes = gnttab_shared_vm_area.ptes; + + addr = (unsigned long)shared; + + for (i = 0; i < nr_gframes; i++) { + set_pte_at(&init_mm, addr, ptes[i], __pte(0)); + addr += PAGE_SIZE; + } +} + +static int arch_gnttab_valloc(struct gnttab_vm_area *area, unsigned nr_frames) +{ + area->ptes = kmalloc(sizeof(pte_t *) * nr_frames, GFP_KERNEL); + if (area->ptes == NULL) + return -ENOMEM; + + area->area = alloc_vm_area(PAGE_SIZE * nr_frames, area->ptes); + if (area->area == NULL) { + kfree(area->ptes); + return -ENOMEM; + } + + return 0; +} + +static void arch_gnttab_vfree(struct gnttab_vm_area *area) +{ + free_vm_area(area->area); + kfree(area->ptes); +} + +int arch_gnttab_init(unsigned long nr_shared, unsigned long nr_status) +{ + int ret; + + if (!xen_pv_domain()) + return 0; + + ret = arch_gnttab_valloc(&gnttab_shared_vm_area, nr_shared); + if (ret < 0) + return ret; + + /* + * Always allocate the space for the status frames in case + * we're migrated to a host with V2 support. + */ + ret = arch_gnttab_valloc(&gnttab_status_vm_area, nr_status); + if (ret < 0) + goto err; + + return 0; + err: + arch_gnttab_vfree(&gnttab_shared_vm_area); + return -ENOMEM; } --- linux-3.13.0.orig/arch/x86/xen/platform-pci-unplug.c +++ linux-3.13.0/arch/x86/xen/platform-pci-unplug.c @@ -69,6 +69,80 @@ return 0; } +bool xen_has_pv_devices() +{ + if (!xen_domain()) + return false; + + /* PV domains always have them. */ + if (xen_pv_domain()) + return true; + + /* And user has xen_platform_pci=0 set in guest config as + * driver did not modify the value. */ + if (xen_platform_pci_unplug == 0) + return false; + + if (xen_platform_pci_unplug & XEN_UNPLUG_NEVER) + return false; + + if (xen_platform_pci_unplug & XEN_UNPLUG_ALL) + return true; + + /* This is an odd one - we are going to run legacy + * and PV drivers at the same time. */ + if (xen_platform_pci_unplug & XEN_UNPLUG_UNNECESSARY) + return true; + + /* And the caller has to follow with xen_pv_{disk,nic}_devices + * to be certain which driver can load. */ + return false; +} +EXPORT_SYMBOL_GPL(xen_has_pv_devices); + +static bool __xen_has_pv_device(int state) +{ + /* HVM domains might or might not */ + if (xen_hvm_domain() && (xen_platform_pci_unplug & state)) + return true; + + return xen_has_pv_devices(); +} + +bool xen_has_pv_nic_devices(void) +{ + return __xen_has_pv_device(XEN_UNPLUG_ALL_NICS | XEN_UNPLUG_ALL); +} +EXPORT_SYMBOL_GPL(xen_has_pv_nic_devices); + +bool xen_has_pv_disk_devices(void) +{ + return __xen_has_pv_device(XEN_UNPLUG_ALL_IDE_DISKS | + XEN_UNPLUG_AUX_IDE_DISKS | XEN_UNPLUG_ALL); +} +EXPORT_SYMBOL_GPL(xen_has_pv_disk_devices); + +/* + * This one is odd - it determines whether you want to run PV _and_ + * legacy (IDE) drivers together. This combination is only possible + * under HVM. + */ +bool xen_has_pv_and_legacy_disk_devices(void) +{ + if (!xen_domain()) + return false; + + /* N.B. This is only ever used in HVM mode */ + if (xen_pv_domain()) + return false; + + if (xen_platform_pci_unplug & XEN_UNPLUG_UNNECESSARY) + return true; + + return false; +} +EXPORT_SYMBOL_GPL(xen_has_pv_and_legacy_disk_devices); + void xen_unplug_emulated_devices(void) { int r; --- linux-3.13.0.orig/arch/x86/xen/setup.c +++ linux-3.13.0/arch/x86/xen/setup.c @@ -556,13 +556,7 @@ } #endif /* CONFIG_X86_64 */ } -void xen_enable_nmi(void) -{ -#ifdef CONFIG_X86_64 - if (register_callback(CALLBACKTYPE_nmi, nmi)) - BUG(); -#endif -} + void __init xen_arch_setup(void) { xen_panic_handler_init(); @@ -580,7 +574,6 @@ xen_enable_sysenter(); xen_enable_syscall(); - xen_enable_nmi(); #ifdef CONFIG_ACPI if (!(xen_start_info->flags & SIF_INITDOMAIN)) { printk(KERN_INFO "ACPI in unprivileged domain disabled\n"); --- linux-3.13.0.orig/arch/x86/xen/spinlock.c +++ linux-3.13.0/arch/x86/xen/spinlock.c @@ -274,7 +274,7 @@ printk(KERN_DEBUG "xen: PV spinlocks disabled\n"); return; } - + printk(KERN_DEBUG "xen: PV spinlocks enabled\n"); pv_lock_ops.lock_spinning = PV_CALLEE_SAVE(xen_lock_spinning); pv_lock_ops.unlock_kick = xen_unlock_kick; } @@ -290,6 +290,9 @@ if (!xen_pvspin) return 0; + if (!xen_domain()) + return 0; + static_key_slow_inc(¶virt_ticketlocks_enabled); return 0; } --- linux-3.13.0.orig/arch/x86/xen/time.c +++ linux-3.13.0/arch/x86/xen/time.c @@ -444,7 +444,7 @@ irq = bind_virq_to_irqhandler(VIRQ_TIMER, cpu, xen_timer_interrupt, IRQF_PERCPU|IRQF_NOBALANCING|IRQF_TIMER| - IRQF_FORCE_RESUME, + IRQF_FORCE_RESUME|IRQF_EARLY_RESUME, name, NULL); memcpy(evt, xen_clockevent, sizeof(*evt)); --- linux-3.13.0.orig/arch/xtensa/include/asm/pgtable.h +++ linux-3.13.0/arch/xtensa/include/asm/pgtable.h @@ -67,7 +67,12 @@ #define VMALLOC_START 0xC0000000 #define VMALLOC_END 0xC7FEFFFF #define TLBTEMP_BASE_1 0xC7FF0000 -#define TLBTEMP_BASE_2 0xC7FF8000 +#define TLBTEMP_BASE_2 (TLBTEMP_BASE_1 + DCACHE_WAY_SIZE) +#if 2 * DCACHE_WAY_SIZE > ICACHE_WAY_SIZE +#define TLBTEMP_SIZE (2 * DCACHE_WAY_SIZE) +#else +#define TLBTEMP_SIZE ICACHE_WAY_SIZE +#endif /* * For the Xtensa architecture, the PTE layout is as follows: --- linux-3.13.0.orig/arch/xtensa/include/asm/traps.h +++ linux-3.13.0/arch/xtensa/include/asm/traps.h @@ -22,25 +22,37 @@ static inline void spill_registers(void) { - +#if XCHAL_NUM_AREGS > 16 __asm__ __volatile__ ( - "movi a14, "__stringify((1 << PS_EXCM_BIT) | LOCKLEVEL)"\n\t" - "mov a12, a0\n\t" - "rsr a13, sar\n\t" - "xsr a14, ps\n\t" - "movi a0, _spill_registers\n\t" - "rsync\n\t" - "callx0 a0\n\t" - "mov a0, a12\n\t" - "wsr a13, sar\n\t" - "wsr a14, ps\n\t" - : : -#if defined(CONFIG_FRAME_POINTER) - : "a2", "a3", "a4", "a11", "a12", "a13", "a14", "a15", + " call12 1f\n" + " _j 2f\n" + " retw\n" + " .align 4\n" + "1:\n" + " _entry a1, 48\n" + " addi a12, a0, 3\n" +#if XCHAL_NUM_AREGS > 32 + " .rept (" __stringify(XCHAL_NUM_AREGS) " - 32) / 12\n" + " _entry a1, 48\n" + " mov a12, a0\n" + " .endr\n" +#endif + " _entry a1, 48\n" +#if XCHAL_NUM_AREGS % 12 == 0 + " mov a8, a8\n" +#elif XCHAL_NUM_AREGS % 12 == 4 + " mov a12, a12\n" +#elif XCHAL_NUM_AREGS % 12 == 8 + " mov a4, a4\n" +#endif + " retw\n" + "2:\n" + : : : "a12", "a13", "memory"); #else - : "a2", "a3", "a4", "a7", "a11", "a12", "a13", "a14", "a15", + __asm__ __volatile__ ( + " mov a12, a12\n" + : : : "memory"); #endif - "memory"); } #endif /* _XTENSA_TRAPS_H */ --- linux-3.13.0.orig/arch/xtensa/include/asm/uaccess.h +++ linux-3.13.0/arch/xtensa/include/asm/uaccess.h @@ -52,7 +52,12 @@ */ .macro get_fs ad, sp GET_CURRENT(\ad,\sp) +#if THREAD_CURRENT_DS > 1020 + addi \ad, \ad, TASK_THREAD + l32i \ad, \ad, THREAD_CURRENT_DS - TASK_THREAD +#else l32i \ad, \ad, THREAD_CURRENT_DS +#endif .endm /* --- linux-3.13.0.orig/arch/xtensa/include/uapi/asm/ioctls.h +++ linux-3.13.0/arch/xtensa/include/uapi/asm/ioctls.h @@ -28,17 +28,17 @@ #define TCSETSW 0x5403 #define TCSETSF 0x5404 -#define TCGETA _IOR('t', 23, struct termio) -#define TCSETA _IOW('t', 24, struct termio) -#define TCSETAW _IOW('t', 25, struct termio) -#define TCSETAF _IOW('t', 28, struct termio) +#define TCGETA 0x80127417 /* _IOR('t', 23, struct termio) */ +#define TCSETA 0x40127418 /* _IOW('t', 24, struct termio) */ +#define TCSETAW 0x40127419 /* _IOW('t', 25, struct termio) */ +#define TCSETAF 0x4012741C /* _IOW('t', 28, struct termio) */ #define TCSBRK _IO('t', 29) #define TCXONC _IO('t', 30) #define TCFLSH _IO('t', 31) -#define TIOCSWINSZ _IOW('t', 103, struct winsize) -#define TIOCGWINSZ _IOR('t', 104, struct winsize) +#define TIOCSWINSZ 0x40087467 /* _IOW('t', 103, struct winsize) */ +#define TIOCGWINSZ 0x80087468 /* _IOR('t', 104, struct winsize) */ #define TIOCSTART _IO('t', 110) /* start output, like ^Q */ #define TIOCSTOP _IO('t', 111) /* stop output, like ^S */ #define TIOCOUTQ _IOR('t', 115, int) /* output queue size */ @@ -88,7 +88,6 @@ #define TIOCSETD _IOW('T', 35, int) #define TIOCGETD _IOR('T', 36, int) #define TCSBRKP _IOW('T', 37, int) /* Needed for POSIX tcsendbreak()*/ -#define TIOCTTYGSTRUCT _IOR('T', 38, struct tty_struct) /* For debugging only*/ #define TIOCSBRK _IO('T', 39) /* BSD compatibility */ #define TIOCCBRK _IO('T', 40) /* BSD compatibility */ #define TIOCGSID _IOR('T', 41, pid_t) /* Return the session ID of FD*/ @@ -114,8 +113,10 @@ #define TIOCSERGETLSR _IOR('T', 89, unsigned int) /* Get line status reg. */ /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ # define TIOCSER_TEMT 0x01 /* Transmitter physically empty */ -#define TIOCSERGETMULTI _IOR('T', 90, struct serial_multiport_struct) /* Get multiport config */ -#define TIOCSERSETMULTI _IOW('T', 91, struct serial_multiport_struct) /* Set multiport config */ +#define TIOCSERGETMULTI 0x80a8545a /* Get multiport config */ + /* _IOR('T', 90, struct serial_multiport_struct) */ +#define TIOCSERSETMULTI 0x40a8545b /* Set multiport config */ + /* _IOW('T', 91, struct serial_multiport_struct) */ #define TIOCMIWAIT _IO('T', 92) /* wait for a change on serial input line(s) */ #define TIOCGICOUNT 0x545D /* read serial port inline interrupt counts */ --- linux-3.13.0.orig/arch/xtensa/include/uapi/asm/unistd.h +++ linux-3.13.0/arch/xtensa/include/uapi/asm/unistd.h @@ -384,7 +384,8 @@ #define __NR_pivot_root 175 __SYSCALL(175, sys_pivot_root, 2) #define __NR_umount 176 -__SYSCALL(176, sys_umount, 2) +__SYSCALL(176, sys_oldumount, 1) +#define __ARCH_WANT_SYS_OLDUMOUNT #define __NR_swapoff 177 __SYSCALL(177, sys_swapoff, 1) #define __NR_sync 178 --- linux-3.13.0.orig/arch/xtensa/kernel/entry.S +++ linux-3.13.0/arch/xtensa/kernel/entry.S @@ -1001,9 +1001,8 @@ movi a7, 4 # sizeof(unsigned int) access_ok a3, a7, a0, a2, .Leac # a0: scratch reg, a2: sp - addi a6, a6, -1 # assuming SYS_XTENSA_ATOMIC_SET = 1 - _bgeui a6, SYS_XTENSA_COUNT - 1, .Lill - _bnei a6, SYS_XTENSA_ATOMIC_CMP_SWP - 1, .Lnswp + _bgeui a6, SYS_XTENSA_COUNT, .Lill + _bnei a6, SYS_XTENSA_ATOMIC_CMP_SWP, .Lnswp /* Fall through for ATOMIC_CMP_SWP. */ @@ -1015,27 +1014,26 @@ l32i a7, a2, PT_AREG7 # restore a7 l32i a0, a2, PT_AREG0 # restore a0 movi a2, 1 # and return 1 - addi a6, a6, 1 # restore a6 (really necessary?) rfe 1: l32i a7, a2, PT_AREG7 # restore a7 l32i a0, a2, PT_AREG0 # restore a0 movi a2, 0 # return 0 (note that we cannot set - addi a6, a6, 1 # restore a6 (really necessary?) rfe .Lnswp: /* Atomic set, add, and exg_add. */ TRY l32i a7, a3, 0 # orig + addi a6, a6, -SYS_XTENSA_ATOMIC_SET add a0, a4, a7 # + arg moveqz a0, a4, a6 # set + addi a6, a6, SYS_XTENSA_ATOMIC_SET TRY s32i a0, a3, 0 # write new value mov a0, a2 mov a2, a7 l32i a7, a0, PT_AREG7 # restore a7 l32i a0, a0, PT_AREG0 # restore a0 - addi a6, a6, 1 # restore a6 (really necessary?) rfe CATCH @@ -1044,7 +1042,7 @@ movi a2, -EFAULT rfe -.Lill: l32i a7, a2, PT_AREG0 # restore a7 +.Lill: l32i a7, a2, PT_AREG7 # restore a7 l32i a0, a2, PT_AREG0 # restore a0 movi a2, -EINVAL rfe @@ -1117,6 +1115,13 @@ * We basically restore WINDOWBASE and WINDOWSTART to the condition when * we entered the spill routine and jump to the user exception handler. * + * Note that we only need to restore the bits in windowstart that have not + * been spilled yet by the _spill_register routine. Luckily, a3 contains a + * rotated windowstart with only those bits set for frames that haven't been + * spilled yet. Because a3 is rotated such that bit 0 represents the register + * frame for the current windowbase - 1, we need to rotate a3 left by the + * value of the current windowbase + 1 and move it to windowstart. + * * a0: value of depc, original value in depc * a2: trashed, original value in EXC_TABLE_DOUBLE_SAVE * a3: exctable, original value in excsave1 @@ -1131,10 +1136,15 @@ /* We need to make sure the current registers (a0-a3) are preserved. * To do this, we simply set the bit for the current window frame * in WS, so that the exception handlers save them to the task stack. + * + * Note: we use a3 to set the windowbase, so we take a special care + * of it, saving it in the original _spill_registers frame across + * the exception handler call. */ xsr a3, excsave1 # get spill-mask slli a3, a3, 1 # shift left by one + addi a3, a3, 1 # set the bit for the current window frame slli a2, a3, 32-WSBITS src a2, a3, a2 # a2 = xxwww1yyxxxwww1yy...... @@ -1588,7 +1598,7 @@ rsr a0, excvaddr bltu a0, a3, 2f - addi a1, a0, -(2 << (DCACHE_ALIAS_ORDER + PAGE_SHIFT)) + addi a1, a0, -TLBTEMP_SIZE bgeu a1, a3, 2f /* Check if we have to restore an ITLB mapping. */ @@ -1794,6 +1804,43 @@ ENDPROC(system_call) +/* + * Spill live registers on the kernel stack macro. + * + * Entry condition: ps.woe is set, ps.excm is cleared + * Exit condition: windowstart has single bit set + * May clobber: a12, a13 + */ + .macro spill_registers_kernel + +#if XCHAL_NUM_AREGS > 16 + call12 1f + _j 2f + retw + .align 4 +1: + _entry a1, 48 + addi a12, a0, 3 +#if XCHAL_NUM_AREGS > 32 + .rept (XCHAL_NUM_AREGS - 32) / 12 + _entry a1, 48 + mov a12, a0 + .endr +#endif + _entry a1, 48 +#if XCHAL_NUM_AREGS % 12 == 0 + mov a8, a8 +#elif XCHAL_NUM_AREGS % 12 == 4 + mov a12, a12 +#elif XCHAL_NUM_AREGS % 12 == 8 + mov a4, a4 +#endif + retw +2: +#else + mov a12, a12 +#endif + .endm /* * Task switch. @@ -1806,21 +1853,25 @@ entry a1, 16 - mov a12, a2 # preserve 'prev' (a2) - mov a13, a3 # and 'next' (a3) + mov a11, a3 # and 'next' (a3) l32i a4, a2, TASK_THREAD_INFO l32i a5, a3, TASK_THREAD_INFO - save_xtregs_user a4 a6 a8 a9 a10 a11 THREAD_XTREGS_USER + save_xtregs_user a4 a6 a8 a9 a12 a13 THREAD_XTREGS_USER - s32i a0, a12, THREAD_RA # save return address - s32i a1, a12, THREAD_SP # save stack pointer +#if THREAD_RA > 1020 || THREAD_SP > 1020 + addi a10, a2, TASK_THREAD + s32i a0, a10, THREAD_RA - TASK_THREAD # save return address + s32i a1, a10, THREAD_SP - TASK_THREAD # save stack pointer +#else + s32i a0, a2, THREAD_RA # save return address + s32i a1, a2, THREAD_SP # save stack pointer +#endif /* Disable ints while we manipulate the stack pointer. */ - movi a14, (1 << PS_EXCM_BIT) | LOCKLEVEL - xsr a14, ps + rsil a14, LOCKLEVEL rsr a3, excsave1 rsync s32i a3, a3, EXC_TABLE_FIXUP /* enter critical section */ @@ -1835,7 +1886,7 @@ /* Flush register file. */ - call0 _spill_registers # destroys a3, a4, and SAR + spill_registers_kernel /* Set kernel stack (and leave critical section) * Note: It's save to set it here. The stack will not be overwritten @@ -1851,13 +1902,12 @@ /* restore context of the task 'next' */ - l32i a0, a13, THREAD_RA # restore return address - l32i a1, a13, THREAD_SP # restore stack pointer + l32i a0, a11, THREAD_RA # restore return address + l32i a1, a11, THREAD_SP # restore stack pointer - load_xtregs_user a5 a6 a8 a9 a10 a11 THREAD_XTREGS_USER + load_xtregs_user a5 a6 a8 a9 a12 a13 THREAD_XTREGS_USER wsr a14, ps - mov a2, a12 # return 'prev' rsync retw --- linux-3.13.0.orig/arch/xtensa/kernel/pci-dma.c +++ linux-3.13.0/arch/xtensa/kernel/pci-dma.c @@ -49,9 +49,8 @@ /* We currently don't support coherent memory outside KSEG */ - if (ret < XCHAL_KSEG_CACHED_VADDR - || ret >= XCHAL_KSEG_CACHED_VADDR + XCHAL_KSEG_SIZE) - BUG(); + BUG_ON(ret < XCHAL_KSEG_CACHED_VADDR || + ret > XCHAL_KSEG_CACHED_VADDR + XCHAL_KSEG_SIZE - 1); if (ret != 0) { @@ -68,10 +67,11 @@ void dma_free_coherent(struct device *hwdev, size_t size, void *vaddr, dma_addr_t dma_handle) { - long addr=(long)vaddr+XCHAL_KSEG_CACHED_VADDR-XCHAL_KSEG_BYPASS_VADDR; + unsigned long addr = (unsigned long)vaddr + + XCHAL_KSEG_CACHED_VADDR - XCHAL_KSEG_BYPASS_VADDR; - if (addr < 0 || addr >= XCHAL_KSEG_SIZE) - BUG(); + BUG_ON(addr < XCHAL_KSEG_CACHED_VADDR || + addr > XCHAL_KSEG_CACHED_VADDR + XCHAL_KSEG_SIZE - 1); free_pages(addr, get_order(size)); } --- linux-3.13.0.orig/arch/xtensa/kernel/vectors.S +++ linux-3.13.0/arch/xtensa/kernel/vectors.S @@ -376,38 +376,42 @@ beqz a2, 1f # if at start of vector, don't restore addi a0, a0, -128 - bbsi a0, 8, 1f # don't restore except for overflow 8 and 12 - bbsi a0, 7, 2f + bbsi.l a0, 8, 1f # don't restore except for overflow 8 and 12 + + /* + * This fixup handler is for the extremely unlikely case where the + * overflow handler's reference thru a0 gets a hardware TLB refill + * that bumps out the (distinct, aliasing) TLB entry that mapped its + * prior references thru a9/a13, and where our reference now thru + * a9/a13 gets a 2nd-level miss exception (not hardware TLB refill). + */ + movi a2, window_overflow_restore_a0_fixup + s32i a2, a3, EXC_TABLE_FIXUP + l32i a2, a3, EXC_TABLE_DOUBLE_SAVE + xsr a3, excsave1 + + bbsi.l a0, 7, 2f /* * Restore a0 as saved by _WindowOverflow8(). - * - * FIXME: we really need a fixup handler for this L32E, - * for the extremely unlikely case where the overflow handler's - * reference thru a0 gets a hardware TLB refill that bumps out - * the (distinct, aliasing) TLB entry that mapped its prior - * references thru a9, and where our reference now thru a9 - * gets a 2nd-level miss exception (not hardware TLB refill). */ - l32e a2, a9, -16 - wsr a2, depc # replace the saved a0 - j 1f + l32e a0, a9, -16 + wsr a0, depc # replace the saved a0 + j 3f 2: /* * Restore a0 as saved by _WindowOverflow12(). - * - * FIXME: we really need a fixup handler for this L32E, - * for the extremely unlikely case where the overflow handler's - * reference thru a0 gets a hardware TLB refill that bumps out - * the (distinct, aliasing) TLB entry that mapped its prior - * references thru a13, and where our reference now thru a13 - * gets a 2nd-level miss exception (not hardware TLB refill). */ - l32e a2, a13, -16 - wsr a2, depc # replace the saved a0 + l32e a0, a13, -16 + wsr a0, depc # replace the saved a0 +3: + xsr a3, excsave1 + movi a0, 0 + s32i a0, a3, EXC_TABLE_FIXUP + s32i a2, a3, EXC_TABLE_DOUBLE_SAVE 1: /* * Restore WindowBase while leaving all address registers restored. @@ -449,6 +453,7 @@ s32i a0, a2, PT_DEPC +_DoubleExceptionVector_handle_exception: addx4 a0, a0, a3 l32i a0, a0, EXC_TABLE_FAST_USER xsr a3, excsave1 @@ -464,11 +469,120 @@ rotw -3 j 1b - .end literal_prefix ENDPROC(_DoubleExceptionVector) /* + * Fixup handler for TLB miss in double exception handler for window owerflow. + * We get here with windowbase set to the window that was being spilled and + * a0 trashed. a0 bit 7 determines if this is a call8 (bit clear) or call12 + * (bit set) window. + * + * We do the following here: + * - go to the original window retaining a0 value; + * - set up exception stack to return back to appropriate a0 restore code + * (we'll need to rotate window back and there's no place to save this + * information, use different return address for that); + * - handle the exception; + * - go to the window that was being spilled; + * - set up window_overflow_restore_a0_fixup as a fixup routine; + * - reload a0; + * - restore the original window; + * - reset the default fixup routine; + * - return to user. By the time we get to this fixup handler all information + * about the conditions of the original double exception that happened in + * the window overflow handler is lost, so we just return to userspace to + * retry overflow from start. + * + * a0: value of depc, original value in depc + * a2: trashed, original value in EXC_TABLE_DOUBLE_SAVE + * a3: exctable, original value in excsave1 + */ + +ENTRY(window_overflow_restore_a0_fixup) + + rsr a0, ps + extui a0, a0, PS_OWB_SHIFT, PS_OWB_WIDTH + rsr a2, windowbase + sub a0, a2, a0 + extui a0, a0, 0, 3 + l32i a2, a3, EXC_TABLE_DOUBLE_SAVE + xsr a3, excsave1 + + _beqi a0, 1, .Lhandle_1 + _beqi a0, 3, .Lhandle_3 + + .macro overflow_fixup_handle_exception_pane n + + rsr a0, depc + rotw -\n + + xsr a3, excsave1 + wsr a2, depc + l32i a2, a3, EXC_TABLE_KSTK + s32i a0, a2, PT_AREG0 + + movi a0, .Lrestore_\n + s32i a0, a2, PT_DEPC + rsr a0, exccause + j _DoubleExceptionVector_handle_exception + + .endm + + overflow_fixup_handle_exception_pane 2 +.Lhandle_1: + overflow_fixup_handle_exception_pane 1 +.Lhandle_3: + overflow_fixup_handle_exception_pane 3 + + .macro overflow_fixup_restore_a0_pane n + + rotw \n + /* Need to preserve a0 value here to be able to handle exception + * that may occur on a0 reload from stack. It may occur because + * TLB miss handler may not be atomic and pointer to page table + * may be lost before we get here. There are no free registers, + * so we need to use EXC_TABLE_DOUBLE_SAVE area. + */ + xsr a3, excsave1 + s32i a2, a3, EXC_TABLE_DOUBLE_SAVE + movi a2, window_overflow_restore_a0_fixup + s32i a2, a3, EXC_TABLE_FIXUP + l32i a2, a3, EXC_TABLE_DOUBLE_SAVE + xsr a3, excsave1 + bbsi.l a0, 7, 1f + l32e a0, a9, -16 + j 2f +1: + l32e a0, a13, -16 +2: + rotw -\n + + .endm + +.Lrestore_2: + overflow_fixup_restore_a0_pane 2 + +.Lset_default_fixup: + xsr a3, excsave1 + s32i a2, a3, EXC_TABLE_DOUBLE_SAVE + movi a2, 0 + s32i a2, a3, EXC_TABLE_FIXUP + l32i a2, a3, EXC_TABLE_DOUBLE_SAVE + xsr a3, excsave1 + rfe + +.Lrestore_1: + overflow_fixup_restore_a0_pane 1 + j .Lset_default_fixup +.Lrestore_3: + overflow_fixup_restore_a0_pane 3 + j .Lset_default_fixup + +ENDPROC(window_overflow_restore_a0_fixup) + + .end literal_prefix +/* * Debug interrupt vector * * There is not much space here, so simply jump to another handler. --- linux-3.13.0.orig/arch/xtensa/kernel/vmlinux.lds.S +++ linux-3.13.0/arch/xtensa/kernel/vmlinux.lds.S @@ -262,13 +262,13 @@ .UserExceptionVector.literal) SECTION_VECTOR (_DoubleExceptionVector_literal, .DoubleExceptionVector.literal, - DOUBLEEXC_VECTOR_VADDR - 16, + DOUBLEEXC_VECTOR_VADDR - 40, SIZEOF(.UserExceptionVector.text), .UserExceptionVector.text) SECTION_VECTOR (_DoubleExceptionVector_text, .DoubleExceptionVector.text, DOUBLEEXC_VECTOR_VADDR, - 32, + 40, .DoubleExceptionVector.literal) . = (LOADADDR( .DoubleExceptionVector.text ) + SIZEOF( .DoubleExceptionVector.text ) + 3) & ~ 3; --- linux-3.13.0.orig/arch/xtensa/platforms/xtfpga/setup.c +++ linux-3.13.0/arch/xtensa/platforms/xtfpga/setup.c @@ -194,7 +194,7 @@ * Ethernet -- OpenCores Ethernet MAC (ethoc driver) */ -static struct resource ethoc_res[] __initdata = { +static struct resource ethoc_res[] = { [0] = { /* register space */ .start = OETH_REGS_PADDR, .end = OETH_REGS_PADDR + OETH_REGS_SIZE - 1, @@ -212,7 +212,7 @@ }, }; -static struct ethoc_platform_data ethoc_pdata __initdata = { +static struct ethoc_platform_data ethoc_pdata = { /* * The MAC address for these boards is 00:50:c2:13:6f:xx. * The last byte (here as zero) is read from the DIP switches on the @@ -222,7 +222,7 @@ .phy_id = -1, }; -static struct platform_device ethoc_device __initdata = { +static struct platform_device ethoc_device = { .name = "ethoc", .id = -1, .num_resources = ARRAY_SIZE(ethoc_res), @@ -236,13 +236,13 @@ * UART */ -static struct resource serial_resource __initdata = { +static struct resource serial_resource = { .start = DUART16552_PADDR, .end = DUART16552_PADDR + 0x1f, .flags = IORESOURCE_MEM, }; -static struct plat_serial8250_port serial_platform_data[] __initdata = { +static struct plat_serial8250_port serial_platform_data[] = { [0] = { .mapbase = DUART16552_PADDR, .irq = DUART16552_INTNUM, @@ -255,7 +255,7 @@ { }, }; -static struct platform_device xtavnet_uart __initdata = { +static struct platform_device xtavnet_uart = { .name = "serial8250", .id = PLAT8250_DEV_PLATFORM, .dev = { --- linux-3.13.0.orig/block/blk-cgroup.c +++ linux-3.13.0/block/blk-cgroup.c @@ -80,7 +80,7 @@ blkg->q = q; INIT_LIST_HEAD(&blkg->q_node); blkg->blkcg = blkcg; - blkg->refcnt = 1; + atomic_set(&blkg->refcnt, 1); /* root blkg uses @q->root_rl, init rl only for !root blkgs */ if (blkcg != &blkcg_root) { @@ -399,11 +399,8 @@ /* release the blkcg and parent blkg refs this blkg has been holding */ css_put(&blkg->blkcg->css); - if (blkg->parent) { - spin_lock_irq(blkg->q->queue_lock); + if (blkg->parent) blkg_put(blkg->parent); - spin_unlock_irq(blkg->q->queue_lock); - } blkg_free(blkg); } @@ -862,6 +859,13 @@ { lockdep_assert_held(q->queue_lock); + /* + * @q could be exiting and already have destroyed all blkgs as + * indicated by NULL root_blkg. If so, don't confuse policies. + */ + if (!q->root_blkg) + return; + blk_throtl_drain(q); } --- linux-3.13.0.orig/block/blk-cgroup.h +++ linux-3.13.0/block/blk-cgroup.h @@ -18,6 +18,7 @@ #include #include #include +#include /* Max limits for throttle policy */ #define THROTL_IOPS_MAX UINT_MAX @@ -104,7 +105,7 @@ struct request_list rl; /* reference count */ - int refcnt; + atomic_t refcnt; /* is this blkg online? protected by both blkcg and q locks */ bool online; @@ -253,13 +254,12 @@ * blkg_get - get a blkg reference * @blkg: blkg to get * - * The caller should be holding queue_lock and an existing reference. + * The caller should be holding an existing reference. */ static inline void blkg_get(struct blkcg_gq *blkg) { - lockdep_assert_held(blkg->q->queue_lock); - WARN_ON_ONCE(!blkg->refcnt); - blkg->refcnt++; + WARN_ON_ONCE(atomic_read(&blkg->refcnt) <= 0); + atomic_inc(&blkg->refcnt); } void __blkg_release_rcu(struct rcu_head *rcu); @@ -267,14 +267,11 @@ /** * blkg_put - put a blkg reference * @blkg: blkg to put - * - * The caller should be holding queue_lock. */ static inline void blkg_put(struct blkcg_gq *blkg) { - lockdep_assert_held(blkg->q->queue_lock); - WARN_ON_ONCE(blkg->refcnt <= 0); - if (!--blkg->refcnt) + WARN_ON_ONCE(atomic_read(&blkg->refcnt) <= 0); + if (atomic_dec_and_test(&blkg->refcnt)) call_rcu(&blkg->rcu_head, __blkg_release_rcu); } @@ -435,9 +432,9 @@ uint64_t v; do { - start = u64_stats_fetch_begin_bh(&stat->syncp); + start = u64_stats_fetch_begin_irq(&stat->syncp); v = stat->cnt; - } while (u64_stats_fetch_retry_bh(&stat->syncp, start)); + } while (u64_stats_fetch_retry_irq(&stat->syncp, start)); return v; } @@ -508,9 +505,9 @@ struct blkg_rwstat tmp; do { - start = u64_stats_fetch_begin_bh(&rwstat->syncp); + start = u64_stats_fetch_begin_irq(&rwstat->syncp); tmp = *rwstat; - } while (u64_stats_fetch_retry_bh(&rwstat->syncp, start)); + } while (u64_stats_fetch_retry_irq(&rwstat->syncp, start)); return tmp; } --- linux-3.13.0.orig/block/blk-core.c +++ linux-3.13.0/block/blk-core.c @@ -506,6 +506,9 @@ del_timer_sync(&q->backing_dev_info.laptop_mode_wb_timer); blk_sync_queue(q); + if (q->mq_ops) + blk_mq_free_queue(q); + spin_lock_irq(lock); if (q->queue_lock != &q->__queue_lock) q->queue_lock = &q->__queue_lock; @@ -2325,7 +2328,7 @@ if (!req->bio) return false; - trace_block_rq_complete(req->q, req); + trace_block_rq_complete(req->q, req, nr_bytes); /* * For fs requests, rq is just carrier of independent bio's --- linux-3.13.0.orig/block/blk-lib.c +++ linux-3.13.0/block/blk-lib.c @@ -119,6 +119,14 @@ atomic_inc(&bb.done); submit_bio(type, bio); + + /* + * We can loop for a long time in here, if someone does + * full device discards (like mkfs). Be nice and allow + * us to schedule out to avoid softlocking if preempt + * is disabled. + */ + cond_resched(); } blk_finish_plug(&plug); --- linux-3.13.0.orig/block/blk-mq-cpumap.c +++ linux-3.13.0/block/blk-mq-cpumap.c @@ -95,7 +95,7 @@ unsigned int *map; /* If cpus are offline, map them to first hctx */ - map = kzalloc_node(sizeof(*map) * num_possible_cpus(), GFP_KERNEL, + map = kzalloc_node(sizeof(*map) * nr_cpu_ids, GFP_KERNEL, reg->numa_node); if (!map) return NULL; --- linux-3.13.0.orig/block/blk-mq-tag.c +++ linux-3.13.0/block/blk-mq-tag.c @@ -36,7 +36,8 @@ { int tag; - tag = percpu_ida_alloc(&tags->free_tags, gfp); + tag = percpu_ida_alloc(&tags->free_tags, (gfp & __GFP_WAIT) ? + TASK_UNINTERRUPTIBLE : TASK_RUNNING); if (tag < 0) return BLK_MQ_TAG_FAIL; return tag + tags->nr_reserved_tags; @@ -52,7 +53,8 @@ return BLK_MQ_TAG_FAIL; } - tag = percpu_ida_alloc(&tags->reserved_tags, gfp); + tag = percpu_ida_alloc(&tags->reserved_tags, (gfp & __GFP_WAIT) ? + TASK_UNINTERRUPTIBLE : TASK_RUNNING); if (tag < 0) return BLK_MQ_TAG_FAIL; return tag; --- linux-3.13.0.orig/block/blk-mq.c +++ linux-3.13.0/block/blk-mq.c @@ -179,6 +179,8 @@ rq->mq_ctx = ctx; rq->cmd_flags = rw_flags; + rq->start_time = jiffies; + set_start_time_ns(rq); ctx->rq_dispatched[rw_is_sync(rw_flags)]++; } @@ -299,7 +301,7 @@ struct bio *bio = rq->bio; unsigned int bytes = 0; - trace_block_rq_complete(rq->q, rq); + trace_block_rq_complete(rq->q, rq, blk_rq_bytes(rq)); while (bio) { struct bio *next = bio->bi_next; --- linux-3.13.0.orig/block/blk-settings.c +++ linux-3.13.0/block/blk-settings.c @@ -553,7 +553,7 @@ bottom = max(b->physical_block_size, b->io_min) + alignment; /* Verify that top and bottom intervals line up */ - if (max(top, bottom) & (min(top, bottom) - 1)) { + if (max(top, bottom) % min(top, bottom)) { t->misaligned = 1; ret = -1; } @@ -594,7 +594,7 @@ /* Find lowest common alignment_offset */ t->alignment_offset = lcm(t->alignment_offset, alignment) - & (max(t->physical_block_size, t->io_min) - 1); + % max(t->physical_block_size, t->io_min); /* Verify that new alignment_offset is on a logical block boundary */ if (t->alignment_offset & (t->logical_block_size - 1)) { --- linux-3.13.0.orig/block/blk-sysfs.c +++ linux-3.13.0/block/blk-sysfs.c @@ -518,17 +518,15 @@ * Currently, its primary task it to free all the &struct request * structures that were allocated to the queue and the queue itself. * - * Caveat: - * Hopefully the low level driver will have finished any - * outstanding requests first... + * Note: + * The low level driver must have finished any outstanding requests first + * via blk_cleanup_queue(). **/ static void blk_release_queue(struct kobject *kobj) { struct request_queue *q = container_of(kobj, struct request_queue, kobj); - blk_sync_queue(q); - blkcg_exit_queue(q); if (q->elevator) { @@ -545,9 +543,6 @@ percpu_counter_destroy(&q->mq_usage_counter); - if (q->mq_ops) - blk_mq_free_queue(q); - blk_trace_shutdown(q); bdi_destroy(&q->backing_dev_info); --- linux-3.13.0.orig/block/blk-tag.c +++ linux-3.13.0/block/blk-tag.c @@ -27,18 +27,15 @@ EXPORT_SYMBOL(blk_queue_find_tag); /** - * __blk_free_tags - release a given set of tag maintenance info + * blk_free_tags - release a given set of tag maintenance info * @bqt: the tag map to free * - * Tries to free the specified @bqt. Returns true if it was - * actually freed and false if there are still references using it + * Drop the reference count on @bqt and frees it when the last reference + * is dropped. */ -static int __blk_free_tags(struct blk_queue_tag *bqt) +void blk_free_tags(struct blk_queue_tag *bqt) { - int retval; - - retval = atomic_dec_and_test(&bqt->refcnt); - if (retval) { + if (atomic_dec_and_test(&bqt->refcnt)) { BUG_ON(find_first_bit(bqt->tag_map, bqt->max_depth) < bqt->max_depth); @@ -50,9 +47,8 @@ kfree(bqt); } - - return retval; } +EXPORT_SYMBOL(blk_free_tags); /** * __blk_queue_free_tags - release tag maintenance info @@ -69,28 +65,13 @@ if (!bqt) return; - __blk_free_tags(bqt); + blk_free_tags(bqt); q->queue_tags = NULL; queue_flag_clear_unlocked(QUEUE_FLAG_QUEUED, q); } /** - * blk_free_tags - release a given set of tag maintenance info - * @bqt: the tag map to free - * - * For externally managed @bqt frees the map. Callers of this - * function must guarantee to have released all the queues that - * might have been using this tag map. - */ -void blk_free_tags(struct blk_queue_tag *bqt) -{ - if (unlikely(!__blk_free_tags(bqt))) - BUG(); -} -EXPORT_SYMBOL(blk_free_tags); - -/** * blk_queue_free_tags - release tag maintenance info * @q: the request queue for the device * --- linux-3.13.0.orig/block/blk.h +++ linux-3.13.0/block/blk.h @@ -113,7 +113,7 @@ q->flush_queue_delayed = 1; return NULL; } - if (unlikely(blk_queue_dying(q)) || + if (unlikely(blk_queue_bypass(q)) || !q->elevator->type->ops.elevator_dispatch_fn(q, 0)) return NULL; } --- linux-3.13.0.orig/block/cfq-iosched.c +++ linux-3.13.0/block/cfq-iosched.c @@ -1275,12 +1275,16 @@ static void cfq_update_group_weight(struct cfq_group *cfqg) { - BUG_ON(!RB_EMPTY_NODE(&cfqg->rb_node)); - if (cfqg->new_weight) { cfqg->weight = cfqg->new_weight; cfqg->new_weight = 0; } +} + +static void +cfq_update_group_leaf_weight(struct cfq_group *cfqg) +{ + BUG_ON(!RB_EMPTY_NODE(&cfqg->rb_node)); if (cfqg->new_leaf_weight) { cfqg->leaf_weight = cfqg->new_leaf_weight; @@ -1299,7 +1303,7 @@ /* add to the service tree */ BUG_ON(!RB_EMPTY_NODE(&cfqg->rb_node)); - cfq_update_group_weight(cfqg); + cfq_update_group_leaf_weight(cfqg); __cfq_group_service_tree_add(st, cfqg); /* @@ -1323,6 +1327,7 @@ */ while ((parent = cfqg_parent(pos))) { if (propagate) { + cfq_update_group_weight(pos); propagate = !parent->nr_active++; parent->children_weight += pos->weight; } --- linux-3.13.0.orig/block/compat_ioctl.c +++ linux-3.13.0/block/compat_ioctl.c @@ -690,6 +690,7 @@ case BLKROSET: case BLKDISCARD: case BLKSECDISCARD: + case BLKZEROOUT: /* * the ones below are implemented in blkdev_locked_ioctl, * but we call blkdev_ioctl, which gets the lock for us --- linux-3.13.0.orig/block/genhd.c +++ linux-3.13.0/block/genhd.c @@ -28,10 +28,10 @@ /* for extended dynamic devt allocation, currently only one major is used */ #define NR_EXT_DEVT (1 << MINORBITS) -/* For extended devt allocation. ext_devt_mutex prevents look up +/* For extended devt allocation. ext_devt_lock prevents look up * results from going away underneath its user. */ -static DEFINE_MUTEX(ext_devt_mutex); +static DEFINE_SPINLOCK(ext_devt_lock); static DEFINE_IDR(ext_devt_idr); static struct device_type disk_type; @@ -420,9 +420,13 @@ } /* allocate ext devt */ - mutex_lock(&ext_devt_mutex); - idx = idr_alloc(&ext_devt_idr, part, 0, NR_EXT_DEVT, GFP_KERNEL); - mutex_unlock(&ext_devt_mutex); + idr_preload(GFP_KERNEL); + + spin_lock(&ext_devt_lock); + idx = idr_alloc(&ext_devt_idr, part, 0, NR_EXT_DEVT, GFP_NOWAIT); + spin_unlock(&ext_devt_lock); + + idr_preload_end(); if (idx < 0) return idx == -ENOSPC ? -EBUSY : idx; @@ -441,15 +445,13 @@ */ void blk_free_devt(dev_t devt) { - might_sleep(); - if (devt == MKDEV(0, 0)) return; if (MAJOR(devt) == BLOCK_EXT_MAJOR) { - mutex_lock(&ext_devt_mutex); + spin_lock(&ext_devt_lock); idr_remove(&ext_devt_idr, blk_mangle_minor(MINOR(devt))); - mutex_unlock(&ext_devt_mutex); + spin_unlock(&ext_devt_lock); } } @@ -665,7 +667,6 @@ sysfs_remove_link(block_depr, dev_name(disk_to_dev(disk))); pm_runtime_set_memalloc_noio(disk_to_dev(disk), false); device_del(disk_to_dev(disk)); - blk_free_devt(disk_to_dev(disk)->devt); } EXPORT_SYMBOL(del_gendisk); @@ -690,13 +691,13 @@ } else { struct hd_struct *part; - mutex_lock(&ext_devt_mutex); + spin_lock(&ext_devt_lock); part = idr_find(&ext_devt_idr, blk_mangle_minor(MINOR(devt))); if (part && get_disk(part_to_disk(part))) { *partno = part->partno; disk = part_to_disk(part); } - mutex_unlock(&ext_devt_mutex); + spin_unlock(&ext_devt_lock); } return disk; @@ -1069,9 +1070,16 @@ struct disk_part_tbl *old_ptbl = disk->part_tbl; struct disk_part_tbl *new_ptbl; int len = old_ptbl ? old_ptbl->len : 0; - int target = partno + 1; + int i, target; size_t size; - int i; + + /* + * check for int overflow, since we can get here from blkpg_ioctl() + * with a user passed 'partno'. + */ + target = partno + 1; + if (target < 0) + return -EINVAL; /* disk_max_parts() is zero during initialization, ignore if so */ if (disk_max_parts(disk) && target > disk_max_parts(disk)) @@ -1098,6 +1106,7 @@ { struct gendisk *disk = dev_to_disk(dev); + blk_free_devt(dev->devt); disk_release_events(disk); kfree(disk->random); disk_replace_part_tbl(disk, NULL); --- linux-3.13.0.orig/block/partition-generic.c +++ linux-3.13.0/block/partition-generic.c @@ -211,6 +211,7 @@ static void part_release(struct device *dev) { struct hd_struct *p = dev_to_part(dev); + blk_free_devt(dev->devt); free_part_stats(p); free_part_info(p); kfree(p); @@ -253,7 +254,6 @@ rcu_assign_pointer(ptbl->last_lookup, NULL); kobject_put(part->holder_dir); device_del(part_to_dev(part)); - blk_free_devt(part_devt(part)); hd_struct_put(part); } --- linux-3.13.0.orig/block/scsi_ioctl.c +++ linux-3.13.0/block/scsi_ioctl.c @@ -28,6 +28,9 @@ #include #include #include +#include +#include +#include #include #include @@ -487,7 +490,7 @@ if (bytes && blk_rq_map_kern(q, rq, buffer, bytes, __GFP_WAIT)) { err = DRIVER_ERROR << 24; - goto out; + goto error; } memset(sense, 0, sizeof(sense)); @@ -497,7 +500,6 @@ blk_execute_rq(q, disk, rq, 0); -out: err = rq->errors & 0xff; /* only 8 bit SCSI status */ if (err) { if (rq->sense_len && rq->sense) { @@ -692,8 +694,17 @@ case SG_GET_RESERVED_SIZE: case SG_SET_RESERVED_SIZE: case SG_EMULATED_HOST: + case BLKFLSBUF: + case BLKROSET: return 0; case CDROM_GET_CAPABILITY: + case CDROM_DRIVE_STATUS: + case FDGETPRM: + case RAID_VERSION: + case MTIOCGET: +#ifdef CONFIG_COMPAT + case 0x801c6d02: /* MTIOCGET32 */ +#endif /* Keep this until we remove the printk below. udev sends it * and we do not want to spam dmesg about it. CD-ROMs do * not have partitions, so we get here only for disks. --- linux-3.13.0.orig/crypto/af_alg.c +++ linux-3.13.0/crypto/af_alg.c @@ -21,6 +21,7 @@ #include #include #include +#include struct alg_type_list { const struct af_alg_type *type; @@ -243,6 +244,7 @@ sock_init_data(newsock, sk2); sock_graft(sk2, newsock); + security_sk_clone(sk, sk2); err = type->accept(ask->private, sk2); if (err) { --- linux-3.13.0.orig/crypto/async_tx/async_xor.c +++ linux-3.13.0/crypto/async_tx/async_xor.c @@ -78,8 +78,6 @@ tx = dma->device_prep_dma_xor(chan, dma_dest, src_list, xor_src_cnt, unmap->len, dma_flags); - src_list[0] = tmp; - if (unlikely(!tx)) async_tx_quiesce(&submit->depend_tx); @@ -92,6 +90,7 @@ xor_src_cnt, unmap->len, dma_flags); } + src_list[0] = tmp; dma_set_unmap(tx, unmap); async_tx_submit(chan, tx, submit); --- linux-3.13.0.orig/crypto/crypto_user.c +++ linux-3.13.0/crypto/crypto_user.c @@ -466,7 +466,7 @@ type -= CRYPTO_MSG_BASE; link = &crypto_dispatch[type]; - if (!capable(CAP_NET_ADMIN)) + if (!netlink_capable(skb, CAP_NET_ADMIN)) return -EPERM; if ((type == (CRYPTO_MSG_GETALG - CRYPTO_MSG_BASE) && --- linux-3.13.0.orig/debian.master/NOTES +++ linux-3.13.0/debian.master/NOTES @@ -0,0 +1,4 @@ +eSCO patch removed. Replaced upstream with a disable_esco module parm. +airprime: Module gone, use option driver instead +AppArmor: Patch is all there and ported. Ooops when enabled, so default + off (still can be enabled apparmor=1) --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/abiname +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/abiname @@ -0,0 +1 @@ +46 --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/amd64/generic +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/amd64/generic @@ -0,0 +1,17462 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x145a3214 kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/kvm/kvm 0x640fe953 kvm_cpu_has_pending_timer +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/video 0x176f1d0e acpi_video_get_edid +EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister +EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register +EXPORT_SYMBOL drivers/atm/suni 0x4b14fc7b suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x1c76325c uPD98402_init +EXPORT_SYMBOL drivers/bcma/bcma 0x9c604362 bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x127a5901 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/paride/paride 0x03a8ca63 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x1c89b698 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x20030a5f pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x22b469cd pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x6855032b pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x798fbeee pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x7e3a393f pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xa7acd1e4 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xaa425cb7 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xb65c6a41 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xbf4a1597 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xe65ed52e paride_unregister +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x11fef388 dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x3ba44005 dw_dma_cyclic_free +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x562fe9b2 dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x58986445 dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x5a953c02 dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x73ba6f07 dw_dma_get_src_addr +EXPORT_SYMBOL drivers/dma/ioat/ioatdma 0x54d04add ioat_dma_setup_interrupts +EXPORT_SYMBOL drivers/edac/edac_core 0x5b469f79 edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x030cc4e2 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04d0f641 fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0f7d6af8 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1bb914ec fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x26a90776 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3032e4a7 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x478eff96 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x48a14246 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5548ef84 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x626ed0d4 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x645b715f fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6ae3d3d9 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6f330962 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7aca1181 fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8460c914 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8ce7f811 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa7c1831a fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xaae4c9a2 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb0032a77 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc058f3a4 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc54a0e61 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc6eee09c fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xcac04501 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xcc00ea0d fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd933079b fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe75ac036 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf0361dab fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf2d3d1c3 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf736850b fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/fmc/fmc 0x208ca412 fmc_reprogram +EXPORT_SYMBOL drivers/fmc/fmc 0x515868e6 fmc_device_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x66d6d53c fmc_driver_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x89ba34fc fmc_driver_register +EXPORT_SYMBOL drivers/fmc/fmc 0x8cba4f70 fmc_show_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xca6cc31f fmc_device_unregister_n +EXPORT_SYMBOL drivers/fmc/fmc 0xdf7a55f0 fmc_scan_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xe7a0e638 fmc_find_sdb_device +EXPORT_SYMBOL drivers/fmc/fmc 0xeb8df9fc fmc_device_register +EXPORT_SYMBOL drivers/fmc/fmc 0xedf6ecd5 fmc_device_register_n +EXPORT_SYMBOL drivers/fmc/fmc 0xfa159d09 fmc_free_sdb_tree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00025916 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00667d8a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x006dab93 drm_pcie_get_speed_cap_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x026c0d6b drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05f005b7 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x080dad9b drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b413cd3 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0bfc34f1 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c3841f5 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x107742a9 drm_get_subpixel_order_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12616b1d drm_dev_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x126f4440 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13fcdaa0 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x147fd060 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a9a178 drm_get_format_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x15a6cf14 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x15fec4bd drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1739d576 drm_gem_dumb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x175ad6ab drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17a6a2c2 drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x189f6401 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x18f4d6a1 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1999a016 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19e44324 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a39b026 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a770ac3 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a780949 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b41b95d drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b480f22 drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d7b00a6 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e85d8b4 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2000a3d8 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x204783d4 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20b37c60 drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21c42686 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x232fa875 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2684ad28 drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x281a616a drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28ae08e6 drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28e3e4c7 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2989922a drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29d23b58 drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a942ab2 drm_mm_insert_node_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c047b16 drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d80be4d drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e650fb3 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e7a4300 drm_rgb_quant_range_selectable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fa8519f drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x301bcdab drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x308efc24 drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x320a76a8 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32d4e656 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33571214 drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33c12309 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x35afe70a drm_mode_group_init_legacy_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3611e917 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36f91ef3 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x378603bb drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a4f7ae drm_format_num_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ac1fef9 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ae7b2d0 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b9d009a drm_format_plane_cpp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d4b8108 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eeb1429 drm_prime_sg_to_page_addr_arrays +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f1e0fcb drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4004a59b drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x423881f8 drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42558a5f drm_prime_init_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x426372d9 drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43d7c9d5 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44ea0a32 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46673801 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x471e3e55 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47c13847 drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49cf3957 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49fabf0d drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b56b636 drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c511235 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c61bc60 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c9ee325 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4dd0a3be drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x508c1df0 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e28c07 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51614736 drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51ef51b6 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x526f6f71 drm_rect_calc_hscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x528cffd9 drm_framebuffer_unreference +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54ca01df drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5590b8aa drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56b0a465 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57bdc550 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b76aef3 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5bcb3896 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c0960ad drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d7318dc drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f3110e1 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6090be61 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x613347f1 drm_bridge_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x624f67ee drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6277a95f drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x629c05e1 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6659453a drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66803841 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67580278 drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68226e9c drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6900d335 drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69255d57 drm_framebuffer_reference +EXPORT_SYMBOL drivers/gpu/drm/drm 0x698c0237 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cc3c29e drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cee2e42 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d5c315f drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6dc6834f drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f08acc3 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7067fba5 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72cb2304 drm_bridge_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a3729f7 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a398754 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4e7297 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b67ea61 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e2934ef drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ec29549 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x80331323 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8115185d drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81ba930c drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81e773e4 drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82979f72 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82a15d36 drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x853f6cb4 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8941ff94 drm_prime_destroy_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a238a42 drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ab3e5c9 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ac0c31b drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b37d4c2 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ba7d61f drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de13715 drm_format_vert_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7df3a7 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8fb21f61 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x914005fb drm_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x93252ac0 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94270913 drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96bcc337 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x973f01dc drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98829f9d drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9972db48 drm_rect_calc_vscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c154ab1 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c184ab2 drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c3b0bc0 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d553e32 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d70fc2a drm_rnodes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e9a1eab drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9eccfe56 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0030bb7 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa03a4591 drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa062b406 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1230020 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1f4e9e6 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa20ed5ec drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa28078b2 drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa34ef2aa drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3a02e8c drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4c6e7f5 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5dbd572 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa608f142 drm_crtc_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6902f65 drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6f15c47 drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7057336 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa70aaaf0 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8fe5c2c drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa96acfcb drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9e12eed drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa0b7975 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab54e628 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xadee587a drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf22793f drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafb0cb6f drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafd51394 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb31f5674 drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb468d0d6 drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5540008 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb55dcdf2 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb572a9f0 drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5850ec6 drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5b7907f drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb669f5ba drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6d0f4a1 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb707a079 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95beb55 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9627abe drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbabc3dc3 drm_unplug_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbaecac8e drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd4bdb91 drm_connector_unplug_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd7c85dd drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe001c53 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe94f6ca drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf31830a drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0a4b4f1 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0cd03c7 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4000f9f drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4a943b1 drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc70b5380 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc70e8d93 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8149441 drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca45efbc drm_format_horz_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca93ede3 drm_vma_offset_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcae0eabf drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb28ee71 drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd01333c drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcffac705 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2335101 drm_fb_get_bpp_depth +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd55aea8d drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7aebd73 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8579fd6 drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd966cd3e drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda60cea8 drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe00f8aea drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0e1a5fc drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe261acf7 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2ef97e4 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f46e6e drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8169a5c drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe899ec2b drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8de9d1e drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed80edfb drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeed15271 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefdf9b69 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf08d712a drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1026d88 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2604e7b drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf446a0e2 drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf57fe20b drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf59928b4 drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7a85e10 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7e84e60 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf8f4488f drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb3c716b drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb497216 drm_mm_insert_node_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfbb1d49d drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd063935 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe4a68c7 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc6c87a drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x000f096d drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00482263 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x08e3c4e5 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x098e47d2 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0c5a3a76 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f96ec70 drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x10eab908 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x163251c8 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x241a6ede drm_dp_aux_register_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x28bad732 drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2a574b86 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2f1d21ea drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x30fc46cf drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x31eb5a64 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x32831e2d drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34871adf drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x39cd83fc drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3a904740 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3cccdbfe drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x43a8b378 drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x43f9b18b drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x46f30106 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x67464e89 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6b182cb3 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6e243a4b drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x711a004a drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84e924ba drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x860ebc69 drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x874702fe drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x880e5fd8 drm_dp_link_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8b0ffd10 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9622a551 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x971f0617 drm_dp_link_configure +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa77858bb drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8d6809d drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8f91cca drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb0d22b60 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb5871204 drm_pick_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb7f6a9ac drm_has_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc0e10a2c drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xca960c51 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcbed3a51 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd1acd163 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd3c143d0 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd9fb95e3 drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xda168e29 drm_dp_link_power_up +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdd47b207 drm_dp_aux_unregister_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe721d7b5 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf9c185cb drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfbf6fb9d drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x1f133aa7 drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x471715c6 drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x992df4bb drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x03861944 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x04531570 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x07fcb525 ttm_dma_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0a37710d ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1001eb5c ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x11268e3a ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1275ed73 ttm_agp_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x201a87bc ttm_prime_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2105e18d ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x21f0f8cb ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x30dc7567 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x32753458 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34c06003 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3dcc1bda ttm_mem_io_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44138fd8 ttm_agp_tt_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x45dcffbb ttm_mem_io_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x47f0d12d ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x485a5bc0 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4bac14a5 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4e8dd264 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4f78a048 ttm_mem_io_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x50174221 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x506ae74a ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5348d1b5 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x564e1aee ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x57ec94f8 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5a7a6046 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5d14bf53 ttm_pool_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5df79c06 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5f88d590 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6052860c ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6210557f ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x64e8eb64 ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x675ad2e1 ttm_pool_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6b797c25 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x70e7c9cd ttm_mem_io_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x718a56bb ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x72b10d50 ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7333e467 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x73e80da4 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x770fb1b8 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7c2f88a4 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x800978ac ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x807ead01 ttm_bo_add_to_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8568be30 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x880a15ad ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x90ae0733 ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x922d41cb ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x939f0892 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x94894449 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9561d4cf ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9a3e9979 ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b091835 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9c21fced ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9d3eab45 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xba52f824 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbc8aea44 ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4d4618d ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc94c6993 ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcc1a1226 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce6e43a8 ttm_base_object_lookup_for_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcee7bb78 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd1f38ea1 ttm_agp_tt_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7b5075e ttm_bo_del_sub_from_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd8edb115 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe3aff2f7 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe87dc3b3 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf430ba2c ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf43d8a19 ttm_dma_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf626027f ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfb61bf6a ttm_bo_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xff4fb401 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xff8a8e8b ttm_bo_dma_acc_size +EXPORT_SYMBOL drivers/hv/hv_vmbus 0x2453d76c vmbus_recvpacket +EXPORT_SYMBOL drivers/hv/hv_vmbus 0x81b1df77 vmbus_sendpacket +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0e2a6864 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0f5877d4 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x34257f35 sch56xx_watchdog_unregister +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x97a147c0 sch56xx_watchdog_register +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xe5022f95 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xed1d2a08 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x5f1fcc1e i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x722eee5b i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x95ac7ed6 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x6b851691 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x6fceb755 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x64ceea24 amd756_smbus +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x2b8c8b89 st_accel_common_probe +EXPORT_SYMBOL drivers/iio/accel/st_accel 0xba0e5f97 st_accel_common_remove +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x0b43e5d7 hid_sensor_write_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x6c499841 hid_sensor_read_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x9098e518 hid_sensor_write_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xb27698b7 hid_sensor_read_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xbb34138a hid_sensor_parse_common_attributes +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0xb03e2d0a hid_sensor_remove_trigger +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0xe9f87daf hid_sensor_setup_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x074d7047 st_sensors_trigger_handler +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x078b5852 st_sensors_check_device_support +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x2e717f8f st_sensors_set_axis_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x2f971700 st_sensors_set_odr +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x3750a18a st_sensors_sysfs_sampling_frequency_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x409a89b2 st_sensors_sysfs_get_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x4db7747f st_sensors_deallocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x55f99436 st_sensors_sysfs_set_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x564730e9 st_sensors_set_dataready_irq +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x7fd09da1 st_sensors_read_info_raw +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x92b39286 st_sensors_set_fullscale_by_gain +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xa73a6683 st_sensors_allocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xdb0b4520 st_sensors_init_sensor +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xe59d7992 st_sensors_set_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xf471af70 st_sensors_sysfs_scale_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xf57ca3f8 st_sensors_get_buffer_element +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0x2be96674 st_sensors_i2c_configure +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0xbe3fa485 st_sensors_spi_configure +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x19515970 st_gyro_common_remove +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0xaa8c6c54 st_gyro_common_probe +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x0cd4b252 adis_enable_irq +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0xcd79fa8f adis_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/industrialio 0x0876f50f iio_buffer_read_length +EXPORT_SYMBOL drivers/iio/industrialio 0x08c8e4fe iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x0bf9f525 iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0x2a8f5b09 iio_buffer_show_enable +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x329247bd iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x57a044ca iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x66cd0d90 iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x735ad604 iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0x7a320901 iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0x7f09a533 iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x8f8bd192 iio_buffer_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x97dec679 iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0x9accd6e5 iio_buffer_register +EXPORT_SYMBOL drivers/iio/industrialio 0x9e9495e0 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/iio/industrialio 0xb846d259 iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0xc6bdeda4 iio_buffer_store_enable +EXPORT_SYMBOL drivers/iio/industrialio 0xd9c6e444 iio_buffer_write_length +EXPORT_SYMBOL drivers/iio/industrialio 0xdec1384c iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xe91bf141 iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0xe9cb0567 iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/iio/industrialio 0xef99b7c2 iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0xf0a74d1a iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0xf230201a iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x0a353f3c iio_triggered_buffer_setup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0xbe98dfbf iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/kfifo_buf 0x0f941320 iio_kfifo_free +EXPORT_SYMBOL drivers/iio/kfifo_buf 0x4ddcda05 iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x6ec4f5e7 st_magn_common_probe +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x8304ff89 st_magn_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x214eed77 st_press_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0xf190ea37 st_press_common_probe +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x049ace30 rdma_addr_find_smac_by_sgid +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x04b8b6d7 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1c3c0ad3 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x2107de5f rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x273f4cca rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x446fd7c9 rdma_addr_find_dmac_by_grh +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x6f6ee97c rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xf19ab26c rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xfa5d1f76 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x184945b0 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1a6cc5f3 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x28fc407b ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x36d5a1e1 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3800151a ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3c4eb54e ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x41cf8211 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x459a3a35 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x482b7854 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5e3d9f63 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x615c7fb7 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7bca06f2 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9508747e ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xafcee76e ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xba2006dd ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc071c3bc ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe2c413e9 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c220cb ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x077b9223 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09c56cfa ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0e0c644a ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0f48f0d0 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1065c3d1 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x181bbe59 ib_resolve_eth_l2_attrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22647176 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22f3cf93 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x23f094dd ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x24d24c96 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x291c35d2 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2978657e ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x29897752 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x362d3cea ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x38f4048e ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x47f877bd ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x485af3bc ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x497c7d38 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4bc321fa ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4c150837 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4e394a80 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4ef6b3a2 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x57933634 ib_create_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5c9187d5 ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6273ad37 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x62b3a798 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x62c399f7 ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x669ccf33 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6bb95c46 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e030e26 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6f0f71f8 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x703e5864 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7479cd90 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7a1541f6 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7a2fd227 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7be03ce9 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8011cece ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x85a6eceb ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x86f8ce6b ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x897cb44e ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8a6e3073 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8ce83100 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9333c833 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x95724ed3 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96fd64a7 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c3873e2 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa432baf6 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa6491d70 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac217df9 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xace2a1b9 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xad0ec86a rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xada3aa56 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae303930 ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb9104a35 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb917d228 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbc77260f ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbfa3359c ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc31ffa21 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc478030b ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4cab242 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc572eaf8 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc5bd5218 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc804b512 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xca839b06 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd31c08b ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xce54188c ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcf8bd197 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd38a9021 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd69e9059 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd7e65870 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdc2cf697 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdff23f2f ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xebf037f0 ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xee5dfe71 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf1daf6dc ib_destroy_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf774066f ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf7d97107 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf86110ad ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfe2b3ec3 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x259c6a2f ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4445c00f ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x458a7557 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4b8136f8 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5fdab4d2 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x61c062f3 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa0c5a80e ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa0d50a99 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xbc8d239f ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe5e970a2 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xea4da164 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf46b05be ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x106f6e7c ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x1092c8a2 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x22f07253 ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x2fd0e42f ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x475d9bf4 ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x50dece7c ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc1955a3f ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xddc330e7 ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe3b1eabc ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf4f88a80 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf7673664 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x2569d757 ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x52a6ce77 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7971c00e ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe350f2aa ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x16ff6097 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x31ea592f iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x6071d1c3 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x73be1b01 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x76a655d9 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x9c5a4908 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa089664b iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf02b3900 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x07a74e50 rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2e5927f0 rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x36144055 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4affe26c rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5bf6aeaf rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5c6e0b08 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5ee2fed4 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x62bbd58d rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6ab35546 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7b830002 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x889d7831 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9f3cb654 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa28c06e0 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xac7c3ab6 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbc693d21 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc39fcbfe rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd2bcd603 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd978d86a rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdca17c93 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe3234370 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe3d6a699 rdma_join_multicast +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0685cfa5 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2ae29c17 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x44aee4df gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9b4c72ec gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa106e27e gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa31a2c12 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa7fca147 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc87dd29e gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd5849c08 __gameport_register_driver +EXPORT_SYMBOL drivers/input/input-polldev 0x1b1f1a3b input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x31f6319c input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x8673a953 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xbe9db3fc input_register_polled_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0x97e4c87f matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x0c580443 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x32329333 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x471d6ee6 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xf864e9aa ad714x_probe +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x9270672c cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/sparse-keymap 0x1cb29129 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x3ac2864c sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xb3de0fe3 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xb90482a1 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xd7c27771 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xfefcfc6b sparse_keymap_setup +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x087ca986 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x8c117937 ad7879_pm_ops +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x3a8df23d amd_iommu_bind_pasid +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x6ac1ee05 amd_iommu_unbind_pasid +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x8a3778da amd_iommu_free_device +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0xb814f521 amd_iommu_init_device +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0xcaeb866d amd_iommu_set_invalid_ppr_cb +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0xf9fa7198 amd_iommu_set_invalidate_ctx_cb +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x66dfccc5 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7292ab34 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x72a25a72 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7ee93c9b capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x91831c09 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x939b86c1 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb09b4fa2 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb67b7f6b detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd4b4791e capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xde74d863 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xea891fb0 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfd00122c capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfd552f7a capi_message2str +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2ce38d33 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x30328eba b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x3a6d5800 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x66321cbb b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8fa4adfc b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x925d86ca b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x935bc056 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9da3a857 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa1248f55 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb5d1313f b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb5fafbae b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xcbd3dc60 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd01e67f6 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd7226b4c avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe60a68fe b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x0e906801 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x19b255d7 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2cc51fdf b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2cdba073 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x57bbbcf7 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x58d79d00 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x620b1f86 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x9d064d50 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xfc1c3ce5 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x7ab59853 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x43d8711e mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x6122bb47 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xe8bd28a8 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xe92ad39e mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x2cdeda3e mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x9dbc56db mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x226cf9b5 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x15827e96 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x20f04a48 isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x438fc8a4 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x56bc7962 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x7d80e1f2 isacsx_setup +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x176b8abb isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x282f9556 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x2a7d5734 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x036386cc mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0e6edf7d mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x18a417a7 mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2426d6be bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x27aaaf81 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ad86dd1 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3f21e04a dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4792faff recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x597cd4c6 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x59a8378c mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x775cb94d recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7ce0da39 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7f80c515 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a15c1ed recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a4e99fb mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa89205a4 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb7f44aec get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbedbc0cc queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc28d423c create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc638d733 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd38045ec mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xeeed2161 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfa007a84 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfabad8f1 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/bcache/bcache 0x1636abc9 closure_put +EXPORT_SYMBOL drivers/md/bcache/bcache 0x2b32aea2 closure_wait +EXPORT_SYMBOL drivers/md/bcache/bcache 0x486a4e0f closure_trylock +EXPORT_SYMBOL drivers/md/bcache/bcache 0x72c43ee3 closure_sub +EXPORT_SYMBOL drivers/md/bcache/bcache 0xb845af12 __closure_lock +EXPORT_SYMBOL drivers/md/bcache/bcache 0xe3c17af1 __closure_wake_up +EXPORT_SYMBOL drivers/md/bcache/bcache 0xf35e44fb closure_sync +EXPORT_SYMBOL drivers/md/dm-log 0x1374330c dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0x3ecccd83 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x4c6e3bf6 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0xd90b360e dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x39fb3fdf dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x40fe80c6 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0xaa7db33c dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0xb476c420 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xe561bcca dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0xeffc6907 dm_snap_origin +EXPORT_SYMBOL drivers/md/raid456 0xb0a5c139 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x2086530f flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x2a5d0e8d flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x6d2e35a1 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x786b132e flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x930a3499 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xac12a45a flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xb188a387 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xb3c7184a flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xbe566c2a flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xe3834c32 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xe454934f flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xeef1dae4 flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xf638e054 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x07d25b59 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x78faa5d2 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/common/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x228bfa6d cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0x3db8be82 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x469539c8 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x91dc66af cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc16d699a cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0x7827bd0b cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/tveeprom 0x665ea0ed tveeprom_read +EXPORT_SYMBOL drivers/media/common/tveeprom 0x756b6542 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0c651bb2 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x17523ce7 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1a802e4b dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1aa9a106 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2c1574e6 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2f3241b4 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x39413e9e dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x398aab01 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4060f574 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4a409493 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x545523a4 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x57a0fb75 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x592dd0b2 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x59677dc3 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5fe83cf4 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6313473e dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x64d6d7a9 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x695508e8 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x731d682c dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x807385b3 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x81f22c4d dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x887caf4f dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8900ef5c dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8d0df2a1 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa09956ad dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa2a65e70 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa920a0cd dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc23ef391 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc4059d71 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc9a96461 dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xca4965f1 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd03c012d dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd68a099e timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe15697bd dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe1af72f0 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xefcef46b dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf3acdaf5 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf65fe750 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xff405471 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/a8293 0x2cf2087a a8293_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9013 0x34900cc0 af9013_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9033 0xfb5e85bc af9033_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x489e8bf8 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x04cfb068 au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x19740867 au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x52a3ad8a au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x70c1b203 au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xa285e953 au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xc134bd14 au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xca0d78a3 au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xdb68d081 au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xefeef316 au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0x51c7ae5a au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0xd59ca334 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0xe400930e cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0x7bedf159 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0xa0782ee0 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x964061a9 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xbfb8cbee cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x77d4cfbd cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x059b0d67 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xeb2a60ef cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0x8c0921b3 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x0f678cac dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x770cf28b dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xa76f0663 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xabf4d9b4 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xf85f0b21 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x0204b3c4 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x122a6562 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x15c9cc2d dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x1c7d75e7 dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x230ce32f dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x3da6dcbf dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x6d863c58 dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7faec12b dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x934a4a75 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x97f56343 dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xbc5d4280 dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xc3a69031 dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xc45a2cd8 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xdbf953c9 dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xe0e719d8 dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0x6943eb33 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x05d1c896 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x10b7e943 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x619b92a0 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x9e9c87d0 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xd28d37e2 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xf5ebeff0 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x4c29ec68 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x558c48c2 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x64cf264d dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x7ca4610d dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x0a29d57f dib7000p_set_agc1_min +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x0f9e1c49 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x2739da2a dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x2d3747ee dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x3dac064c dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x4018b077 dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x5e7bd86f dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x82334996 dib7000p_get_agc_values +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xa1b9b6d2 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xb506a29d dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xc813ef8f dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xca3dad02 dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xcd776e27 dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xdaf3c2c9 dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xe559c147 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xf63bc060 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x02835eb9 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x2da672f8 dib8000_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x3fbae453 dib8090p_get_dc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x4436431a dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x50f6a505 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x60843ef8 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x73db25ab dib8096p_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x7d40fc50 dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x90add117 dib8000_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x9f072a14 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xad66b9dc dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xadeaf3a4 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb0a5cabe dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xbb5e8103 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xbd74eb85 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xd975de01 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xe3593b2e dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xe55f5b7e dib8096p_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xed93afbe dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x29dd19c4 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x2a8f2145 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x3dbbe47b dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xa0cf4d1e dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xc4816472 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x5dc56b03 drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x9e3b7c0c drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x376efcb3 drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0xc2c077d2 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0xa5ebdc49 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0xa9cd618e ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x8df5c009 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0xf861f9d9 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0xa90d413a isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/it913x-fe 0x4aed60e1 it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0x9055d657 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0x5f63b0e2 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x5af7bc6c l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0xad815aae lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0x80d70c3c lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x58c85429 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x911b03b8 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x79cb5e93 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xd825e28d lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x7823ce56 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0x172839a4 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0x1d08a870 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0xe79270c8 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x60d101d2 mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x8f7df67c mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0x20669437 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x1481adbf nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0xa11c78d0 or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0x0fda0248 or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x053bf10b rtl2830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x5a360570 rtl2830_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2832 0x571d8c9c rtl2832_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x360dccb0 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0x797e3cd2 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x3f4ef52e s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x789c696d s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x34a5e947 s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x1e8763b7 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp8870 0xfb7b3974 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x63e7c0af sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0xe3aab758 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0xba7941c3 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0xc3f4f268 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0xa753b483 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0xc52bdb02 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0xf0b25ff4 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x58d31302 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x8010333f stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0xbf196f3a stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0xedfe6dca stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0xf293cf91 stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0xe81714dc stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0xa9465c2c stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0xdf79372f tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0xb6371ed3 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x81fd9a0a tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x6393ba9f tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0xb3ff298b tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10071 0x3539a784 tda10071_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x47522282 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0xacfce606 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0xe51aa433 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0x972862ed tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0xaf881432 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0x2f8a139f ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0x2068ca8e tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x56b79716 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0xcd75148f ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0xabb8e6aa zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0xf862aae6 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0xf6f4a014 zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x13ca03b6 flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x41d2bafd flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x43c9757b flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x5ba98de9 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x7051b16a flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x7b580f16 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xd822e5f1 flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x374eef53 bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x868888d1 bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x928107b8 bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xa4e0e113 bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x0cf98617 bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x7e71c764 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xb69c622a bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x77c995f2 write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x9a006a27 dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x9dfaa111 dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xa8d42107 read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xb6fbdc92 dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xc86f161f rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xd2af420b dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xd6b61902 dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xd6f63338 dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0xbc57c565 dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x45c3cd0a cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x45dc7a67 cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x56b9519a cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x6c1a30cb cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x98b44749 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x4f88c501 altera_pid_feed_control +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x7e4587b6 altera_hw_filt_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x8f0e53c6 altera_ci_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x5ff6cf5c cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x6d99b799 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x72548b13 cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x7ae73b55 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xa7b2b540 cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xc5d38741 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xd447f24a cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x99ddbfa4 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0xb472837f vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x682e9a77 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x8556492f cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xae7d0b84 cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xfea0e575 cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x19a109a9 cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x1ab2021b cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x5116614f cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x66822fef cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xa9abedac cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xfb5bf394 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0d29db60 cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x10149ded cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x241ca1ed cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x28ebb12c cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2b36c136 cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4216fc84 cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x48d5766e cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x529c69eb cx88_free_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x54370746 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x5dc30e07 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x62b473d5 cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x688df398 cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7a3cfb95 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x83aebaac cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x859a26c4 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x85b5bd39 cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x88d87040 cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xa587a5da cx88_risc_stopper +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xb25837d5 cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xbbd9a7be cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc2e1c3d8 cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xceeabfe1 cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xde9a6783 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x0e6b9e8f ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x21d84d0b ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x2f8eaa5e ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x407a1327 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6290209e ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x659ac2d8 ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x709c1656 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7838c1a4 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7af72352 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x837c3956 ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x922eded7 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x9816cbad ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xae2bf446 ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xbd9d43eb ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xdba12712 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xdbbc45d3 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xf492100f ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x0281382e saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x03abf979 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x113b27d2 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x26372e21 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x30ffff02 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x3c633a94 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x73039031 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x93f75526 saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xa837127f saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xc4220d55 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xd450ed63 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xe1596bc9 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xfcb43f39 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0x694fac30 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x689efc26 videocodec_unregister +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x886b8d0e videocodec_detach +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x8c95fc3e videocodec_attach +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0xd76bd998 videocodec_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x11302c17 soc_camera_power_init +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x168727e6 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x1bffdb2b soc_camera_lock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x757a954a soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x8252d10c soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x847eb8b4 soc_camera_unlock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xdbff06f2 soc_camera_host_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xdc7fcdea soc_camera_power_on +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xf4e70ea5 soc_camera_power_off +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x25c52d97 soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x2863728e soc_mbus_image_size +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x5f3e3558 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xa9546115 soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xfe2c3a07 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x0b318da4 soc_camera_client_g_rect +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x3630fe9d soc_camera_calc_client_output +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x45973de5 soc_camera_client_scale +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x57a1c23c soc_camera_client_s_crop +EXPORT_SYMBOL drivers/media/radio/tea575x 0x1a0ab4e2 snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x248b1b8b snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/radio/tea575x 0x5bac449e snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0xefa30af9 snd_tea575x_init +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x28654b64 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x5e4967b5 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x761517e5 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x8985d686 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x9d0cf67b lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xb215c4f8 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xd6460656 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xe9167000 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/rc-core 0x42802945 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0xebcde9ea ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/tuners/e4000 0x08b763b2 e4000_attach +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x43286468 fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x625aa922 fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x7db19bb9 fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x99c98a78 fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xaa2f8989 fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc2580 0xae142cae fc2580_attach +EXPORT_SYMBOL drivers/media/tuners/max2165 0x15c897cb max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0xd9819a82 mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0x440a84be mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0x6f49ecfa mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x883fb736 mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0xc151790d mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0x65d094a0 qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18212 0x45f18dd4 tda18212_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0x4e0935c0 tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tua9001 0xd816d309 tua9001_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0xb8c478f9 xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/tuner_it913x 0xa2814832 it913x_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x83797b4c xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0xbf4f4033 xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x74229dec cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0xcfc12ced cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x092e47ae dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x23959d40 dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x5288597a dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x8221bddd dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x9764c321 dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x9c9bbc76 dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xaa464103 dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc9ce1a2f dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xdaff6ba4 dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x22182c68 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x383ea2ef dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x4cce5c60 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x777d7760 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x97a9b402 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xa6ef5bd5 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xf17235ca dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x5fe47b60 af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x08035ffc dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x2abf7c23 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x2f5d4a97 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x4e15fe5b dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x68b14bba dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x6910ef41 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x8a1491f9 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xc00457d3 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd10f023b dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd1edccbf dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xff76d152 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x94864831 em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xbc0dd4f8 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x05f74234 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x4b4ff4df gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7bbc5bc2 gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7dad9f19 gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x959ace14 gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xaacf4385 gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xb6770839 gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xf010bc80 gspca_resume +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x9e4c1365 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xbd94c0e6 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xe7f2e8c4 tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x1b5af72c ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x309df6e6 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x4adaf0f3 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x53c9394f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x5f96a661 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0xabe27502 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xc045d60f v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xcb02b2d6 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xe727a827 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x39f1e0be videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x3dda4afa videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x443c7e36 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x698aa7c5 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x8b329cda videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xd3c6c9ba videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf2-core 0x782bf410 vb2_querybuf +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1040e916 v4l2_clk_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1142c284 v4l2_clk_get_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x14f78ac1 v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x249a45fd v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x299ecc52 v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2b0255cd v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2d65e742 v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2ed2e704 v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x36847d11 v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x376e5989 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x39df9fee v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3ec4d794 video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x490ed017 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x50bda86d v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x516e5c16 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x52f7bfe4 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x56201c31 video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x56e56a8b v4l2_async_notifier_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x571d7504 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x572430c9 v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5b466492 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x62845e06 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x63531bf6 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x644cbc2d v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x652e9139 video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6c6dbe50 video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6df75107 v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x74feb76e v4l2_clk_enable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x755b4a45 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7751b27f v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7af0f805 v4l2_clk_disable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7c620a9b video_usercopy +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7dbf4b7e video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x81057ab1 v4l2_clk_put +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x83ff5fd2 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x86fd3f50 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8b3b4070 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8b48e8a9 v4l2_clk_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x934cf835 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9632802a v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x98b55907 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9a53a977 __v4l2_clk_register_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9b731386 v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9eaf83b7 v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa1e436de v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa5928b38 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa9bacda7 v4l2_clk_set_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xaab25246 v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xab7f4b30 v4l2_async_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb6c4e932 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb87b8bef v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbac4a225 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc0233ab v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbd3284c1 v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc12cf8f8 v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc1788411 v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc2a1e1f2 __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc36e502b v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc650c3fa v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcfd5b81d v4l2_clk_unregister_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd1fe29b6 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd43c288b v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd4d44707 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd7bb2d7e v4l2_clk_get +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xde7c35e5 video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe31a4d0f v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6024902 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6fce6f2 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xef2fdbd7 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf56abe22 v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1291a9b6 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1d8404c6 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x308ccbc9 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x3bd6c075 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4c40270f memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x50ce4073 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x510371ce memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x683951a1 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb08bf218 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xcfc6f3fc memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xdc07e67e memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe5879954 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfc2ceda7 memstick_new_req +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x119f0d32 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1c526046 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1f09bab7 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2f05764f mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x38100984 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4a7e7162 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4e746c9e mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x594e84cf mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7202c922 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7568f3c0 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x76ac068e mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7c21e8b4 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x82a8f1bf mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa083450f mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa14f0720 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa8e60b1a mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xac1a3ba1 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xad62e477 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb0858179 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbf7bb863 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc13922b0 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc8257bd7 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcf7b3b9b mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd3e4a47d mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd69c0a97 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xed5566b8 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf207f008 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfaf70b8d mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfd4a52e2 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x224b390d mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x34572ef8 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x54894a56 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x577ab29f mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5d677ccd mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x648b4511 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x651f7629 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x741717e6 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x80ca1e76 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x86cb6fca mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8fc0b2b0 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x929f5741 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x944e0990 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa7105f7e mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa786e69b mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xabd6c5e3 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc0bd6dc6 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd4756fc3 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe68420a8 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe71a0a5d mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xeb3add85 mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xecee39fc mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf23097ec mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf364c490 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf6a1529e mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfcb7859d mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfde7dd6c mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x093760e4 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x095750db i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0966519c i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0a7719fd i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0dc60f97 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1c5e7715 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1f455fc5 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x208aaa49 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x24b29615 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x34025e29 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x39dbdaf4 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3ea6b561 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x475edbdc i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4d6a6aa5 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5f6a9d35 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x73379d10 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x89e6e546 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8a4b42f9 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa4db0926 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb3b65075 i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c98cca i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc1a231fb i2o_exec_lct_get +EXPORT_SYMBOL drivers/mfd/cros_ec 0x3e012cc4 cros_ec_prepare_tx +EXPORT_SYMBOL drivers/mfd/cros_ec 0x45ac71c5 cros_ec_suspend +EXPORT_SYMBOL drivers/mfd/cros_ec 0x4942f2da cros_ec_resume +EXPORT_SYMBOL drivers/mfd/cros_ec 0x6242f276 cros_ec_register +EXPORT_SYMBOL drivers/mfd/cros_ec 0xc5595388 cros_ec_remove +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xa89705da pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xe6734321 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0ac93580 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0f6cdfd5 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x18b36e3c mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x52570044 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x5a9386d9 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x62e0a98a mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x761a065d mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x87a92c0a mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x881b56a1 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8e219590 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xad7b97cf mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb97b160a mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xf67b8716 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/tps6105x 0x6ebde706 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x702d1620 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0xf8236207 tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x44516e30 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xff1ad72a ad_dpot_remove +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x1746ab2d altera_init +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x1d875b9b ssc_request +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x846eda8e ssc_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x0e9755b9 pwm_channel_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5a8b82f9 pwm_channel_handler +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5d5c2951 pwm_clk_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x6a5e1f70 pwm_channel_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x73330c97 pwm_clk_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0xeb7f2c6f __pwm_channel_onoff +EXPORT_SYMBOL drivers/misc/c2port/core 0x15bede50 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0x4b108190 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x1b8cc445 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x6ca0f5d4 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x160bc777 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x2525f027 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x4156ddfd tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x563ecd2c tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x5bdb5e24 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x75c0b507 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x8dea88af tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xb43fe27b tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0xbe8ed12a tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xcdd839bf tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xdb63af4d tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xfeecd4a6 tifm_free_adapter +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x0c7039ed mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x01dbbe0d cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xa6bb8d1a cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd7c091f4 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x3d242bea register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x4d77d49f do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x5b00d44e map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x8fc98ade unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xeaeb2af8 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x5654a8a3 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x9405dcb1 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x67122b8d mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtd 0xe576fafa mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/denali 0x25bfb304 denali_init +EXPORT_SYMBOL drivers/mtd/nand/denali 0xb9645268 denali_remove +EXPORT_SYMBOL drivers/mtd/nand/nand 0x1cb499ec nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0x6518942b nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0x73a0c71c nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0x87d4434c nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xbe24f813 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xd542db4b nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x59b8a7ea nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x9d5d75f2 nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xf89f6fbb nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x1f530cd4 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x996ed795 nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x57a31e57 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x03195f28 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x30c531df onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x605f6d52 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x7ae1fcd4 onenand_default_bbt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00057b26 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x013855e9 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x10752677 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x44837bb9 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5ba7d497 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xba38e82c arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc25701e1 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc7f34ecb arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc99420e2 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xcfd7e80f arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x2cbb47d0 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x9fb79f4c com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xe0bcddea com20020_found +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x085b0234 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1b058d50 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x354054fe ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x66717b3b ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x6c44dfd3 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7540fb4c ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa3443e3b NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa716c2f9 ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xd5be0e3b ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xf90f468f ei_open +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x9393bc09 cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x087f7742 dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x1b76a6f0 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3ef3a0b4 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x43087da6 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x4612aae9 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x4c96d2fc t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x4d47ec92 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5009f90f cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7202b2cb cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7f5f09c7 t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb82723f1 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb93e8e71 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xbc365e1e cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc6bb8b8b cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xca88189b t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xefc36c41 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1005e960 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1c7cca9c cxgb4_disable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x40faa1bd cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x45e274af cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4d5f7673 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4f3d8b2f cxgb4_enable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4fc7ce64 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x55afe740 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x58bf015a cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x655a3d23 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x67408ceb cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x676627ce cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x73b15767 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x77b32d0f cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7ea38b28 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8de6ad92 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x947e8ec7 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xac30a026 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbf6a2943 cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbf721e48 cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc6a0c169 cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcd90b37c cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcfa2aa09 cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd613301e cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe0c79a54 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe1577c05 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xed89446d cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf15599f2 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x0e712340 vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x17e80c97 enic_api_devcmd_proxy_by_index +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x4f650da7 vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x627b773a vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x9196d804 vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xb7bdc7cc vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x33e933ad be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xbab62e22 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xea564832 be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e07502a mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x19356c17 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1ddc17db mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f4dd598 mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2311e320 mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x415fdacf mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x43a035a8 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b4986c1 mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x50b3d7e4 mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x50c6dafa mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x54b10962 mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x554e5fb7 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x56fe414c mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f63c988 mlx4_set_stats_bitmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5fd836da mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x714a8049 mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x71c7fc40 set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x837cc327 mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x87d45ee4 mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a3f9519 mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa33aa9e1 mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb770f3f3 mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdaafb761 mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xde50b2c7 mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe36b28fa mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf40cca72 mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0717d5e7 mlx5_dev_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3197bc94 mlx5_cmd_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x42740a2b mlx5_core_query_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x448ea505 mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4bdbcb2a mlx5_core_get_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4f6c197c mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x51eefd05 mlx5_core_dump_fill_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x58555889 mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x62e09335 mlx5_cmd_alloc_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x634e1e47 mlx5_cmd_comp_handler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x67b52886 mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x78f2f94a mlx5_cmd_free_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a42c49f mlx5_core_destroy_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7f95f4e5 mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81e2a41c mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb3afe4ab mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbff88dc9 mlx5_core_create_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc12a16cc mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc83f019e mlx5_core_arm_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd556a2fd mlx5_cmd_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd590a79a mlx5_dev_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe84de248 mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeb8a1838 mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xecfb5aff mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf45d633e mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf7d43c80 mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf9c150b3 mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x1285ceea hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x25f8301d hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe5fbf7ab hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe74dadd9 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xf73d9230 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x0f19bd7a sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x13b8c4d2 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1cf29aed sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1dabd8f1 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3972cec6 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4937c3d4 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x73735e13 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa962b378 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe058096f sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xfa9156e6 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mdio 0xddc98749 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mii 0x14bee7b2 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x5eca3786 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x75a17331 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xb1ba62bb generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0xb501c4ec mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0xb524488b mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xcec5b213 mii_check_media +EXPORT_SYMBOL drivers/net/mii 0xd455425b mii_check_link +EXPORT_SYMBOL drivers/net/ppp/pppox 0x462b08a1 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0x82f836a2 pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0x96af336e register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x532bbcd5 sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x2ea06fe1 team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0x3884a555 team_option_inst_set_change +EXPORT_SYMBOL drivers/net/team/team 0x40e35354 team_options_register +EXPORT_SYMBOL drivers/net/team/team 0x4af362ae team_mode_register +EXPORT_SYMBOL drivers/net/team/team 0x599912ad team_options_unregister +EXPORT_SYMBOL drivers/net/team/team 0x74120571 team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0x8348a3c1 team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0xe17d8fd8 team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/usb/usbnet 0x107783c7 usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0x41b5b750 usbnet_manage_power +EXPORT_SYMBOL drivers/net/usb/usbnet 0xe0d63d59 usbnet_link_change +EXPORT_SYMBOL drivers/net/wan/hdlc 0x380eaed0 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x65bdbfb4 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8557e294 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8e26b7bd alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x9896e741 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa7ad1eb5 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xacf6b243 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc3f830b3 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd6acf90d unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe518495e hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0xfecccdbd attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xef2be074 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x8042951e init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x911ff9bf stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xdb0be385 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x273aeb75 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x2dca5212 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x33f2d139 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x53358ce3 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x60273255 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6f0bc07f ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x75012fc8 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7712d837 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7a2fdac9 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7cb07389 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbae478d5 dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xc6c28cae ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x43691910 ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4fe26a80 ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7b5f951c ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8246be6c ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x895f9dc2 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x9c521f90 ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf096710 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xb3d8f774 ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xc5e69b07 ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0199ec46 ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x27cf1694 ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3b238e61 ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4c6ddcb4 ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4e1380ee ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x6a87678f ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x81612ec1 ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x9558994b ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x99f3b41f ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xab52041c ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb08c214f ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xd7522294 ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xd90d891e ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xfaebb360 ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x22d3eba9 ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x63efce70 ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x91fc76f5 ath9k_hw_wow_event_to_string +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x9544f712 ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x409c1047 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x43a8b85c ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x478ffbd0 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x4a943ed7 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x01c39109 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x02a9a55c ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x02d9f82c ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x04674ee3 ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x051d9e1b ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x06edc316 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x091665bc ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b20eac4 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d91b990 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0defd9e7 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1238ad2f ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x146329c3 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1633f5dc ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1875b9bc ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1da38da9 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x20574abb ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2484aa19 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x27320793 ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2aef7bb5 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b3d9c3a ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b75ebf5 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x30a97d0d ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x314e3cfd ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x320e6a8e ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x332a39a5 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x33b88bc8 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x34f0362e ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x36dd4203 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3777f113 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38ecc05c ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x392c29ad ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a46250d ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3dfcb5f1 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f396524 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x45682b65 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x45e56b1e ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x46e9421d ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x477826a6 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x490037c1 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x497defd7 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a3d003e ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a4c78a7 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4ebfa85a ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5481054b ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x579f6d34 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x646aa6fb ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x661c0667 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6930c093 ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6d4aca68 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6d5aa7ea ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6f6024d0 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x70aca583 ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x74105fb7 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x76b089b8 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x795a1eb2 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a664045 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7b76a508 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d5b0697 ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ef91476 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f70195b ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80f487de ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x817222ce ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83ebd27d ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9687611d ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x998fea05 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f079859 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa75283b2 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab4b1881 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf9a18fb ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb02a188a ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb215d960 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2cd31c6 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb3556349 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb3cb110d ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb35270c ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbcce026 ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc6c0abcc ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc77e6fd9 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca5aaf12 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcbae63cb ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcedbfadb ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd12f35dd ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2afae4f ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd60c89b2 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd75888f7 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdafacace ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdfd69143 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe18adfba ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2b30b10 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2e72ff7 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe420dd08 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb01a386 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf0ad7fe8 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf413ca85 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7126c23 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfe8bf5f1 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff57dfb2 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xffd08ea5 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/atmel 0x40842453 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xfbe419d8 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xfd596fa6 atmel_open +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x6e8448b6 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0xa1ba59c5 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x006996be brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2351d45d brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x24e1eb83 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x24ef7d57 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x284d9996 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x293e3d9f brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2dc227f8 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x39822122 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x64e2494f brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x86050f64 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x88367e67 brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x8e368b33 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xa544c7cf brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xfce204c8 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x16104274 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1edd9928 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x236ede2e hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2c3263c0 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x30616582 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x44986365 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x47b0ac8c hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x497f232f prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4bd757a6 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6051387f hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x83ae4081 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x85ca4d8c hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x87e8d09d hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8e57098c hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x94a43a66 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9a5f22b9 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa253be42 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xae32fe2b hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2bc98e7 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd3db243e hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd602d0dc hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd768da7b hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdca55772 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdfb08d68 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe6186727 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x03b47713 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0ffbcbe9 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1cd376e8 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2df6e3b1 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3bc72dd2 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x49938733 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4ace0dc2 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4d2c3cad libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x558972f2 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x617ac81d libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x685e3057 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6d4d1a95 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x874bbedd libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x897c2138 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8ff62491 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa0963eae libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa5c79088 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc97d3148 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xcfd27d52 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xeb8e130b libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfedf1816 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x01917944 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x02509cd9 il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x027b609e il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0b4ef1d1 il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0c43f31c il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0eb4c761 il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0ecfb597 il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x12201f9d il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x13bbda88 _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1ce12bd4 il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1d34ecd1 il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1e0e244a il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1e81263c il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1fcdc1f3 il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x21b8b44d il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x21c92800 il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x22f8da55 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x23e5e147 il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x23f893c0 il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x26866b28 il_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x26a4b413 il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x27168c5f il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x311be089 il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x33ef83d5 il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3a685a98 il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3ace29e2 il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3db3b58c il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3f355d8a il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3f3a9198 il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x45861bdd il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4aa39103 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4c5aacb7 il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4cd4d953 il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4d64b460 il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x518e4036 il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x52861bbc il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x52ede7a6 il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x564c6740 il_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x59d66378 il_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5a9b5171 il_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x648bd6fe il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6856af5f il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6b7658a4 il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6e00d7aa il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x73d55fcc il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x74ca2562 il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7e9413ea il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7f18eb61 il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x80667fa4 il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8188a483 il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x81c47218 il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x822567a3 il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x861e80c9 il_set_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x86d1f45e il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x87a1fb88 il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8a421912 il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8d043510 il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8f1a9da6 il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8fbca4e3 il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9014b455 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x92b4d002 il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x92f4fa3f il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x97874af0 il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x98c45e5b il_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9c6e2eaf il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9e4b5a61 il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9f2e8f04 il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa121f19a il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa35f0bc2 il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa370477f il_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa96c7a1a il_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xabe3254a il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xac3e66a0 il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xafbc1ec6 il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb0e9824c il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb231d216 il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb3959b0d il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb4688a62 il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb76ac184 il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb7bd33ff il_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xba59de8c il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbb10e68a il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbc7323a7 il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbd782a70 il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc39cf12c il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc4ebbb61 il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc8d905ea il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc956bc39 il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xca055d62 il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcaa9b016 il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcc4e8064 il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcc8f9593 il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd8db982c il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd93d6cb8 il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdae3dd59 il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe1699655 il_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe435493a il_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe9477117 _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xed773145 il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xedbd09ee il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf501278b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf773e73c il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf7ca2798 il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf8caac4f il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x08dd8699 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0c50fa2b __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x1ecc5465 __tracepoint_iwlwifi_err +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x2f7b7e55 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x3b9d00d6 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x675bcb86 __tracepoint_iwlwifi_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x779dd6f5 __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x85c1bb84 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x8de37664 __tracepoint_iwlwifi_dbg +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x954eb7a7 __tracepoint_iwlwifi_crit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x963a6f8a __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xb8f7026f __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xe2dcc8de __tracepoint_iwlwifi_warn +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xf9ec6bdd __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0c710b8a orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0f48de96 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x19f6f430 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x337517d0 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x52a1f011 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x732c0cab orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x82e48e16 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8bb5e895 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb1b6eb52 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xba1ec30e orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xcb5d3626 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdb0cbd65 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe926e6ba orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xeb911b7f orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xec69c76c alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf5617869 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfad9287a orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/btcoexist/btcoexist 0xd238156f rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x031759f6 rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x06819cc1 rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2f575aeb rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x36bed287 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3f8e5104 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x47de69d6 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x49426b3a _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x53e6addb rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x59bf75d3 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5ac4400f rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5f04b36f rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x636baa9e rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6b030c00 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6e2d3826 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x72981d5b rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x76fc251f rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7757a666 rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x83b09639 _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x84b8e4ed _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x87db98fa rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8ef578b8 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x94599839 _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x99059d44 _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa3138135 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xada9280c _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb5801376 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb9e4474c rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcd80a1ff _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xce65bc57 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcf748242 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd11d4840 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd62bad63 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd683c5dd _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe21871d4 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe31315eb rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe84b6efe _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xefd3a6e3 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf4400a84 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf97fc6f9 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfc5998ca rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfd849bee rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x369ff4b6 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x81b91b1e rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x9a186881 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0xc3bcf5c8 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x3e1e6dda rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x9396b29f rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xed75e288 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xff07a595 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x17c28cff rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2024a3d7 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x207fbb70 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x314982b2 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x32266ddf rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3a8650cf efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x481ff5a8 rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4ba28473 rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5b984f7d rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5bd9b18c rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6146868e rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x63567bc2 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x67bfdb6b rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x78645548 rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79188a02 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x8e9ff8b0 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xaa8f0083 rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xad55cbe1 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xcb421f0a rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd29b8d19 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf085f148 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf0bb1564 rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x14108c24 wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x5838d710 wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x717ed2dd wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xb03b9fb2 wlcore_tx_complete +EXPORT_SYMBOL drivers/nfc/microread/microread 0x266b2305 microread_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0x2adb9b16 microread_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x3761cbbc pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xe29b4c08 pn544_hci_remove +EXPORT_SYMBOL drivers/parport/parport 0x1988dd88 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x1acaf50c parport_read +EXPORT_SYMBOL drivers/parport/parport 0x1edfd445 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x2817c68c parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x2dfaefdb parport_release +EXPORT_SYMBOL drivers/parport/parport 0x3bbc4bb4 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x3dc4aee1 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x4467f9c8 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x45dc871e parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x4c91ea1c parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x5cbec2af parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x62c6d6b5 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x638e30dc parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x6def6414 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x79e8500d parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x8fd215fe parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x96d2c282 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xa612fb71 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xa8944ef0 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xa982aa06 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xabae87a6 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xb316f590 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xcdc76e80 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xd32a601a parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xdae63da4 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xe7194c8e parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xed791e62 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xef3c7436 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xf4520e65 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xf947d881 parport_register_device +EXPORT_SYMBOL drivers/parport/parport_pc 0x708038e0 parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xb8eccce4 parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x003b1127 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x16c463b1 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x20eef3ba pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3986c926 pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x41917885 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4260b392 pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x55714217 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5f79156c pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x68561d7d pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6f544137 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7178d9c7 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8221cc66 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb44b596d pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb48f7255 pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb8b08dfc __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbea97675 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xca841681 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe9c63f9f pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xfed1e0bc pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x034d1d1f pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x19c1c5bc pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x31b7545a pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x36a2f584 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5749af3b pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x588d9884 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7eedf5bb pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x87e00ce2 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8e91fd0d pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd33085d3 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf1ccb3f7 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xe35be4c6 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xe45ffab4 pccard_static_ops +EXPORT_SYMBOL drivers/platform/x86/intel_ips 0xd32b0b5b i915_bdw_enabled +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x405341fd pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0x4168a310 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0x8be66a5d pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0xb4a0a5c8 pps_lookup_dev +EXPORT_SYMBOL drivers/ptp/ptp 0x446520dd ptp_clock_register +EXPORT_SYMBOL drivers/ptp/ptp 0x4c70d83b ptp_clock_index +EXPORT_SYMBOL drivers/ptp/ptp 0x9943e721 ptp_clock_event +EXPORT_SYMBOL drivers/ptp/ptp 0xdd2c7f85 ptp_clock_unregister +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x19df0001 pch_ch_event_write +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x54220f16 pch_ch_control_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x5483f37b pch_set_station_address +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x55d0283d pch_ch_event_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x86a9dfae pch_ch_control_write +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x9e7d613e pch_rx_snap_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xb39f5c2c pch_src_uuid_lo_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xc64ad641 pch_src_uuid_hi_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xdabee747 pch_tx_snap_read +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x04b0e60c rproc_boot +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x22001b94 rproc_del +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x386941c4 rproc_da_to_va +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x3dc02499 rproc_add +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x4d56f8e9 rproc_shutdown +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x69138b68 rproc_put +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x8a4d9f27 rproc_vq_interrupt +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xf0a2557d rproc_report_crash +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xf3d5aa2b rproc_alloc +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x02001806 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x04631e39 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x376307eb fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x47916764 fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x63a26ec0 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x75f43572 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x952ce1ae fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa57dbc51 fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xdb3257e1 fcoe_ctlr_destroy_store +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf30bf117 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf499071b fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf6cbec06 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x082251d6 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0d18ad2c fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0e47adc1 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1652e359 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c6371ae fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c81b882 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2018e7eb fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x202088e6 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x26d17254 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x28004ec3 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x28546cff fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x28fb3581 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2f0d503b fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x35b13765 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3774ca9b fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3d6d26ff fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4481c199 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4550603b fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x481bdab3 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x48cc00be fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c5eee93 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4e3b7e2f fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4fa1f45e fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5203a1c4 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x648e8040 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x651daf70 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6826e9b3 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x71c10ae0 fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x71d25547 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7bc4d1e2 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7d4374e3 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x81cde075 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x85351331 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8a88c745 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8f152cd0 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9bfbbde6 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa06e9fdc fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaaaa6df1 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb3a62efc fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb8663b4c fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc4fae941 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc753d87e fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd1a44647 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd6302481 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdd353ae1 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe07e8b45 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe0f0a215 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe597a46b fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xec8f7642 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xef496f31 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf530f0c3 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc471e52 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x01e03080 sas_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x4e60fe74 sas_wait_eh +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x75e1ec42 sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8593e9cd sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xc0a45579 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x08832dcc osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0a61e1a6 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0b5c794a osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x10a57c27 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x15e308d2 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1b2a1e3a osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1cc7e01d osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2673c4c1 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x29f3a6d8 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x35695426 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x369b233a osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3dbb6aed osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x543ab27d osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x548a0691 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x59813959 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x72e4e5f4 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7d3f6efd osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7f85d9a1 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x802b9971 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x82e2d5ac osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x887c4097 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8b0ba4b1 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x924aac0c osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9651b886 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9a075519 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9d972db8 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb61431a5 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcb6fc864 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd7d44ebd osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xda72c19a osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdc517f26 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdcd1137d osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xec596a58 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf13a4579 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf7e079e6 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xffaa4b0b osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/osd 0x35b7fbd7 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x4abb67b7 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x519747fd osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x66c811a1 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xc16f0ee8 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xc2df9d5b osduld_device_info +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x011f0c5d qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x1fd6f342 qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x4a234455 qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x4f6766da qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x5d0677c1 qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x76cc9375 qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xa983c841 qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xb6623dd3 qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xdf9f0eea qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xe1004f3b qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xfe09857a qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x44ae0aeb qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x7f12e5c1 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x8a525232 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xa0dad97d qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc7e3a12c qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xd410ba6f qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x1b039273 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x720430f9 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xb7fbb3b7 raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x103cb53e fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x178bdbb7 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1bb18d16 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x230b0d07 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x319930e9 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x46253c3c fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4983b193 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x609b64ac fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x657c7cb7 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbd9296d1 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd2d5df0f fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf68784db scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfbf24217 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x04a12beb sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0b1e16ea sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0cdb78ab scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x152de007 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x206f195e sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x24fa9862 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2e56c88e sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x32179eb8 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x43ebe1e4 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x45800708 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x48c4da29 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4c850fc8 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5cfa0922 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6f3340ea sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7af86ec8 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7d174405 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x903cae5c sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa4765e86 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa8a67ed0 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc4022d31 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcd0e74e1 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd3453729 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd6f3e5a8 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe2d2f45d sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xec88a425 sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xed050b48 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf8690871 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfe1f7771 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x031337e7 srp_rport_put +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x0c78b2bd srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x5852ff76 srp_reconnect_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xec8fa7f0 srp_rport_get +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x0e2feeea ufshcd_runtime_resume +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x502c1086 ufshcd_runtime_idle +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x9986a893 ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x07df1cb5 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x1c35cf3f ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x3c33f70f ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x3e8a82e9 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x4a48ad4b ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x6097bbe5 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x6705a45e ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x7a2970af ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x98165a12 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xa6de1bd8 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0xa8f44907 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xacbe3a34 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xaf293880 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xb693638a ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc8b9c3cc ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xdbd73522 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xe08b31d4 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xe9c54137 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xf0a9060a ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xf7c0ef01 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xfd001106 __ssb_driver_register +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0x4640c430 fwtty_port_get +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0xe0a89def fwtty_port_put +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x4eddf759 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xdcf3c92b adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x65e405ac ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x6d3f1123 ade7854_probe +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0264d470 lnet_extract_iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0363b57a lnet_copy_iov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x063bed5d lnet_set_ip_niaddr +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x063e8489 lnet_copy_iov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0bce7eef lnet_counters_get +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1148a9a3 lnet_finalize +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1283f756 lnet_copy_kiov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1366b7ac LNetSetLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x19670622 LNetNIInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1b191752 lnet_msgtyp2str +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1ec3b2d3 lnet_register_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1fe16fd5 LNetGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x204b8151 lnet_counters_reset +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2342c677 lnet_extract_kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2aa9953d lnet_cpt_of_nid +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2ac93e90 lnet_connect_console_error +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2da914b4 the_lnet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x33202a6c LNetGetId +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x38b8413e lnet_parse +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3c779ee0 LNetPut +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3f2fb374 lnet_kiov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3f4f5b46 LNetNIFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x473ad33b LNetDist +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4ade6ecc lnet_set_reply_msg_len +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4d823121 lnet_create_reply_msg +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5811a721 LNetInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x58a1ca89 LNetMDUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5fee352c lnet_acceptor_timeout +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x61f784b2 LNetClearLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x64cdea3a LNetCtl +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x6f7be171 LNetEQGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x722c76e5 LNetMDAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x7d59a7fe LNetMEInsert +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x854ab844 LNetEQWait +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8a3064f2 LNetSetAsync +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x91d657ec lnet_net2ni +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x9de986d3 LNetEQAlloc +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa3d61f8d lnet_iov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa8c2760b LNetFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa414970 LNetMEUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa9b477e LNetMDBind +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb3a56d2b lnet_unregister_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb3f843e0 lnet_copy_kiov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb75f7953 LNetEQFree +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xba5566d2 lnet_acceptor_port +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xbf0760a2 LNetMEAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xc1e7bd44 lnet_notify +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xf1b316bf LNetSnprintHandle +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xfd1fc8bc lnet_connect +EXPORT_SYMBOL drivers/staging/lustre/lnet/selftest/lnet_selftest 0x078db139 lstcon_ioctl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x0068a904 client_fid_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x1c4bb5f9 LU_OBF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x375e6f8d LUSTRE_BFL_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x460bb3fc seq_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x5aa53f4f seq_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x7c14ead8 seq_client_get_seq +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x9b2fcb94 seq_client_alloc_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x9da45ed8 client_fid_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xae61cff5 LU_DOT_LUSTRE_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xc997a02f LUSTRE_SEQ_SPACE_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xecee2727 LUSTRE_SEQ_ZERO_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xf0a7289e seq_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x02b793e6 fld_client_add_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x29c3bab9 fld_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x705e4d2b fld_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x880d8ad7 fld_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x9a637848 fld_client_proc_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xbed28cbc fld_client_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xd305c3b7 fld_client_del_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x000c507f libcfs_debug_dumplog +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x01db5172 cfs_percpt_atomic_summary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x03387ca6 cfs_curproc_groups_nr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x04d3ce6a lbug_with_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x069f9bb2 cfs_wi_schedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x06acbefe cfs_hash_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x08ada613 libcfs_console_backoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0b4b1546 libcfs_lnd2modname +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0de6c369 cfs_cap_lower +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0eb410a2 cfs_percpt_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0ee3a27c cfs_hash_for_each_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0f5eff79 cfs_percpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1059cbd6 cfs_hash_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x10d45f30 libcfs_sock_getbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12426266 libcfs_run_lbug_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x127b745d cfs_hash_dual_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12cd873d cfs_cpt_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x150034e5 cfs_hash_dual_bd_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x162e0511 upcall_cache_flush_idle +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x16605f1c cfs_hash_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x16bef72c cfs_hash_rehash_cancel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1756d138 cfs_hash_for_each_nolock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x177b6ebd libcfs_sock_getaddr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x17ac7833 libcfs_deregister_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1a60d439 cfs_parse_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1d5a3928 cfs_timer_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2143ceb7 cfs_cpt_table_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x24f39469 cfs_cpt_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x25f98e2b libcfs_sock_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2663147a __cfs_fail_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x26b80c60 cfs_cpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x27b6d3ba cfs_ip_addr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x29bf925f cfs_hash_bd_del_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2a876a64 cfs_hash_size_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2b1e0458 cfs_get_environ +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2da017ea cfs_cpt_set_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2db9d08f cfs_hash_dual_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2dbe54b2 cfs_trimwhite +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x30986343 cfs_range_expr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x30f7eff6 upcall_cache_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x314d752a cfs_hash_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x31a4294d cfs_cpt_unset_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x31fc5082 cfs_crypto_hash_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x32cd9771 upcall_cache_get_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x346b9d41 cfs_cpt_weight +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x361e82d4 cfs_firststr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x377f93fb cfs_srand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x389ca502 libcfs_debug_mb +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x39fdcd2b libcfs_debug_set_level +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3b7129eb cfs_hash_hlist_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3c1285bd libcfs_subsystem_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3d2cce75 cfs_cpt_set_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3d5e6098 cfs_race_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3e3ae0da cfs_hash_bd_peek_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ea730c0 cfs_gettok +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ef0d90c libcfs_kkuc_group_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3fe13eaa cfs_cpt_unset_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x411db754 cfs_crypto_hash_final +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x41ab33a1 libcfs_ipif_free_enumeration +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44839bbb cfs_rand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44f07cfc cfs_pause +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4692c376 libcfs_sock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x47fdb4d1 cfs_timer_is_armed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x48f163c6 libcfs_str2anynid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4a99af72 cfs_clear_sigpending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4ae500f8 add_wait_queue_exclusive_head +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4bd3ea3d cfs_hash_bd_move_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4c7e3d8a cfs_hash_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4e8fbec5 cfs_cpt_table_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4f1f2fa5 cfs_crypto_hash_digest +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x50345570 libcfs_str2net +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5051b6d2 portal_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x509d38b0 libcfs_net2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x50bca709 cfs_cpt_spread_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x54fd9a71 cfs_percpt_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x56a518ce cfs_cpt_set_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x58a7ee00 libcfs_catastrophe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x58e7f03a cfs_hash_dual_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5946ec2b cfs_percpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x59f95db2 cfs_cpt_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5aee0169 cfs_percpt_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5c013b81 cfs_expr_list_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d3be65a cfs_crypto_adler32_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d655232 cfs_percpt_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d73c3e3 cfs_expr_list_free_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5dce9e80 libcfs_lnd2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x617c152f libcfs_sock_abort_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62289d65 cfs_array_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62822d74 cfs_hash_dual_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62b9cb2e cfs_percpt_atomic_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6326638a cfs_percpt_lock_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x64685fef libcfs_console_min_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6564c55b libcfs_console_max_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x656e257d upcall_cache_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x65dd9f0c libcfs_run_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x66136d2d cfs_timer_arm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x67398404 cfs_wi_sched_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x692bd054 cfs_hash_for_each_safe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c905b5f libcfs_watchdog_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6dfa9ea1 cfs_crypto_adler32_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6e242a95 cfs_hash_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6e6af71c current_is_32bit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6f928e1b libcfs_debug_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7087fd2f libcfs_sock_listen +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x71f662a3 libcfs_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7570a460 cfs_hash_debug_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7a3d49ae cfs_expr_list_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7b0b748a cfs_ip_addr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c7986cf waitq_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7d11d8ec cfs_cpt_unset_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7e6f6485 cfs_ip_addr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7f99ddb6 cfs_race_waitq +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7fda989d cfs_fail_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8151c3aa cfs_cap_raised +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x83d795e4 cfs_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x857aaea7 libcfs_register_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x875e0492 cfs_hash_del_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8840f591 cfs_block_allsigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x89ce22bb cfs_hash_cond_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c500d25 cfs_cpt_table_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c85e4e6 cfs_crypto_hash_speed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8d26cd32 upcall_cache_flush_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f12bb52 libcfs_log_goto +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f45f10d cfs_init_timer +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x91504e8b libcfs_kmemory +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x940ed192 libcfs_stack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9453647a libcfs_sock_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x95620e8c cfs_wi_deschedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x97652a15 cfs_hash_is_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x97b0b9bc cfs_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9879b229 cfs_get_random_bytes +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x994ac27f cfs_cpt_table +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x99661e2b cfs_hash_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9c7e9bb7 cfs_crypto_hash_update_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9e420643 cfs_restore_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9f82f712 cfs_trace_copyout_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa0650897 cfs_cpt_unset_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa247d5fa libcfs_sock_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa2b68b2a cfs_array_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa3c9f30f cfs_hash_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa4bc5fb5 cfs_hash_rehash_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa6b9dee6 libcfs_kkuc_group_rem +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9088531 cfs_expr_list_values +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9dc74e2 cfs_trace_copyin_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9eae690 cfs_str2mask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xaa587cf6 cfs_hash_add_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xab73c8d3 libcfs_sock_setbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xab887583 init_waitqueue_entry_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xad019238 cfs_str2num_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb20c6ebb cfs_hash_for_each_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb2854871 upcall_cache_downcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb4e48237 cfs_cpt_online +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb972619 proc_call_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb9cb508 cfs_curproc_cap_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbd5d492e cfs_timer_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbf7a37f1 cfs_signal_pending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc0ea7fc0 cfs_expr_list_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2911d96 cfs_expr_list_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2dfd791 libcfs_console_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc39fd2f9 libcfs_panic_on_lbug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc3eb614e libcfs_ipif_query +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc47433a6 cfs_capable +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc49b1c62 cfs_percpt_atomic_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc8eb843d libcfs_sock_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xca9320d4 cfs_hash_findadd_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcb385db9 libcfs_debug_binary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcbab8493 schedule_timeout_and_set_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcc20e694 libcfs_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xccc45639 cfs_free_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xccd9aa58 cfs_percpt_lock_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcce5b37f cfs_hash_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcd38904c cfs_wi_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xce1a88f2 libcfs_arch_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf61bacb __cfs_fail_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf80c212 libcfs_kkuc_group_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcfab9ecb upcall_cache_put_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd6a52be3 libcfs_printk +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd6f1fc60 cfs_strncasecmp +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd8857d7a cfs_hash_rehash_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd96f406d cfs_cap_raise +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xddd68341 libcfs_kkuc_msg_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xde17bb8d libcfs_isknown_lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xded410c2 cfs_hash_rehash +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdf26be81 cfs_hash_dual_bd_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdf2789c0 cfs_curproc_cap_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdfecb98d cfs_block_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdffc951d cfs_timer_disarm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe2e423cd cfs_hash_debug_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe3bf6897 cfs_percpt_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe5c5e952 cfs_wi_sched_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe63efe11 upcall_cache_flush_all +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe6555032 libcfs_ipif_enumerate +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe7b54314 libcfs_arch_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xea411f63 cfs_block_sigsinv +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeb447115 cfs_hash_getref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeb4913fd cfs_cpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xec1f56d5 libcfs_str2nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeceac781 cfs_fail_val +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeda75539 cfs_hash_bd_add_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xedf3a25a cfs_timer_deadline +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xef66c80b cfs_cpt_set_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf1872998 cfs_cpt_of_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf3a80fbc cfs_hash_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf440bb38 libcfs_kkuc_group_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8a8644b libcfs_id2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8efb8c5 waitq_timedwait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf94025d1 libcfs_str2lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfc4c70a2 cfs_cpt_bind +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfe565fa9 cfs_crypto_hash_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xff0f98a6 libcfs_debug_vmsg2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x477d332b ll_iocontrol_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x534a4f14 ll_osscapa_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xc1b2ce0c ll_direct_rw_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xc8d75429 ll_stats_ops_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xcd3cde92 ll_iocontrol_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x114f2762 lov_device_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x17db92bf lov_lsm_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x1c444555 lov_stripe_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x2d84506a lov_stripe_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xbf32ecd4 lov_lsm_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xd1187b63 lov_read_and_clear_async_rc +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x0a7ee95a fsfilt_unregister_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x386c2fbf l_dentry_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x4d2687b2 push_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x6cfccc8e lprocfs_stats_alloc_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x793fd5c4 lprocfs_counter_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x91e4a8f5 fsfilt_register_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xa235e381 pop_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xa870589d fsfilt_put_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xaaa59631 fsfilt_get_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb4f8ee63 lprocfs_read_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xd0591c84 lprocfs_counter_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xd4531faf lustre_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xf53861f8 obd_memory +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x14a47f31 it_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x9c22b84f it_open_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xb57d8447 it_set_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xf46a886f it_clear_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mgc/mgc 0xdc287f95 mgc_fsname2resid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x00fbd2d2 cl_req_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x01665e34 class_parse_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x01bb9f23 cl_req_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x01be0888 cl_page_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x035852d0 lustre_swab_llog_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x03741561 cl_page_clip +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x038ff7ca cl_io_lock_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0410cc8d cl_wait_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x047dc993 lu_object_anon +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x04f4cb33 lprocfs_rd_numrefs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05704818 cl_io_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x057f6d4b class_find_old_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x06b4107c dt_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07aa68bb lustre_swab_lustre_cfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x083942ff class_del_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x094fa7fa cl_lock_enqueue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b7c619d cl_lock_weigh +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b8a44d9 lprocfs_oh_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b8e2c97 local_index_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0e2c528f class_handle_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0f8e7265 capa_cpy +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fabead7 local_index_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fb11271 cl_lock_descr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fb1abcc cl_sync_io_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fe91547 obdo_to_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1091b41b dt_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x10b97a0e lprocfs_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x10bbfca5 lprocfs_add_simple +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x10e151b6 cl_lock_mutex_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x110290db cl_page_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x112d7864 lu_context_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11495519 lprocfs_write_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1156ef86 obdo_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11df2886 lustre_idmap_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x123e5b5b dt_directory_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x12c22179 dt_store_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1308410f lu_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x132f3c6c dt_index_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x14191737 cl_conf_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1491dc30 lu_context_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x15e40d60 cl_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x164bd3d8 lprocfs_alloc_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1720607f lprocfs_init_ldlm_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17260880 obdo_cpy_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17977ff3 cl_io_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17ec7c2d lu_object_locate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x198cfa02 class_fail_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x19a30359 llog_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1a1e51fd cl_io_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1b9b49ee dt_locate_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1c298114 cl_lock_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1c67d2ce lprocfs_counter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1da48212 class_handle_hash_back +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1ee3c682 lustre_in_group_p +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2041c3b1 capa_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x213af212 lprocfs_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21b05a34 capa_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21b9709c cl_page_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21ecd900 dt_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x221826f1 class_parse_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x221ffdbf llog_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x23836dc9 cl_object_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x239721bc cl_lock_ext_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2417e021 cl_lock_user_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x24ccf2ec cl_env_unplant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2547efae lustre_uuid_to_peer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2654c4d7 class_manual_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x26916de8 class_conn2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x26d1c606 lu_object_assign_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x275cdc7a cl_env_reexit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x277d34b6 lu_device_type_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x27a15fde lprocfs_rd_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x297cf5e0 class_handle2object +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x29b6b53e lprocfs_rd_timeouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x29cc810f cl_io_iter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ae1cd79 kuc_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2c4e740c cl_page_unassume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2d2d9db5 class_new_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2d77be31 lprocfs_oh_tally_log2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2df3dde3 class_config_llog_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2e0d369b lprocfs_exp_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ea44286 lustre_register_client_fill_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2f362f18 lu_object_add_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2f4b209e lu_ucred_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2f5dd882 lu_env_refill_by_tags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2fad4fb6 lprocfs_free_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x30302e74 cl_unuse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x31d386d0 cl_2queue_init_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x326c536d cl_page_list_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32b35d2d cl_io_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32ba7a38 dt_quota_slv_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32d5750b lprocfs_alloc_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x332ad019 lustre_idmap_lookup_gid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x33c151e3 lu_buf_realloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3430af71 obdo_from_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x348ac127 class_export_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x34c9894e cl_lock_closure_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x34e1192b lprocfs_alloc_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x35b1284b lu_context_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x36276e8e cl_io_rw_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x36ba65e9 cl_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x373a8a8b dump_lsm +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37ed6e4b at_early_margin +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x381e6ce9 cl_lock_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x384d61d1 lprocfs_wr_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38e6b958 cl_page_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38fb0c90 class_match_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x395869a7 cl_lock_enclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x39ff79a6 llog_osd_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3a4d7495 local_file_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3bced4e4 lu_env_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3e2ef1ca cl_object_has_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3e81bfab lu_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3e973fa5 cl_page_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3eab7bfe LU_BUF_NULL +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3eae58de cl_page_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3ef8490a cl_env_nested_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f36b63a cl_io_commit_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x406d4f05 lu_object_invariant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x41172bd8 lustre_idmap_lookup_uid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4187f8db class_register_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x41e767b2 cl_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4212411c cl_page_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4214e680 cl_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x43924f14 iattr_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44381593 cl_sync_io_note +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44e41abb lustre_posix_acl_xattr_filter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x452f559a lu_buf_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x45b8ccdb dt_record_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4610300c cl_page_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x472e43f9 cl_io_prepare_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x474ed5bd lustre_swab_ll_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47832000 cl_page_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47b35f7d statfs_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47c55f0c dt_index_walk +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x484a13d8 cl_lock_is_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x490cf3ee lu_object_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x494b034f lprocfs_at_hist_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x494cfb52 lustre_acl_xattr_merge2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4995b64b lu_kmem_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a0f6ea lustre_posix_acl_xattr_2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49f9a5c2 lu_env_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4a2143db cl_lock_disclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4a3e65fd llog_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ac58713 obd_connect_flags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4acdcc5d obdo_refresh_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ad0bda0 cl_page_own_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ad1994d class_import_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4aed87dd lu_device_type_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4b881a1c cl_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4b8af8af cl_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4bbc2791 cl_pages_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c190aad lprocfs_find_named_value +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c4c700b obd_alloc_fail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d0696b3 lprocfs_rd_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d13458b kuc_len +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d8e84ce llog_init_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4db23f7c cl_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4dbf9ad7 cl_page_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4e13be47 cl_page_list_move +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5085adb3 class_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50a5cebd cl_object_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50c7fc36 ptlrpc_put_connection_superhack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x52df1174 lprocfs_nid_stats_clear_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x535bba6b cl_req_page_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x538e0865 dt_version_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54885f87 ldlm_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x548bfb51 cl_lock_discard_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x55715b43 class_put_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x558bec27 obd_ioctl_getdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x55abe33a cl_page_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x55ac8821 lu_ucred_assert +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x564e9d44 init_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x56b9b561 lustre_common_put_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x570d09ae lustre_swab_lu_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x582b013d dt_quota_glb_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x590d8314 cl_io_submit_rw +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x59b6f28d cl_unuse_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a20d896 obd_memory_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a823912 cl_env_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5b5fd8e2 llog_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5b7161c6 llog_cat_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5bc022c5 lprocfs_dt_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5be87ece llog_cat_cancel_records +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d138bcb cl_io_iter_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d34ae0d cl_lock_mode_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5dae5300 cl_lock_at_pgoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e3f1406 llog_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ed188a9 lprocfs_add_symlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5f483d13 cl_lock_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5faf8226 cl_page_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5fe97b73 block_debug_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ffcb5ca cl_object_glimpse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6189d5e1 lprocfs_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x61ba15ec dt_txn_hook_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x62286f43 cl_page_gang_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x62fc4131 class_new_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631a518d mea_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631fd7b9 lustre_ext_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x634dccd1 obd_devs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x64b193e3 cl_env_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6734adbd lprocfs_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x675244fa dt_otable_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x677fd7f9 proc_lustre_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67977b42 lprocfs_remove_proc_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67a90622 la_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67bff0f8 cl_page_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67dc223a lprocfs_remove +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6890d175 lustre_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6934514c lprocfs_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69bcd372 lprocfs_rd_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69c42114 at_min +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a4cc7f3 local_object_unlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6b393e06 capa_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6b99858c cl_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6ba09fce cl_page_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6c3bc8f8 llog_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6d66fb61 class_detach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6e6ab6f9 class_name2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6ec5d9e0 obd_llog_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6fa8ba71 class_num2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6fc27ed8 cl_page_list_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6feb0a3d cl_io_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6ff7b2fd llog_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x70945731 cl_page_list_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7102407a cl_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x716a948d cl_lock_modify +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x71f4f60f cl_io_rw_advance +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x724af693 cl_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x725c790b cl_lock_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72ddee4c obdo_le_to_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7325f377 class_exp2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7381208a lu_site_purge +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x742559b1 class_unregister_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7441c759 dump_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x74445ba8 cl_page_is_owned +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x74f2cdba llog_declare_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x750eddfc lu_object_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x752f71a8 class_get_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x756a77f3 class_parse_nid_quiet +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x75e7c141 llog_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x768d45e1 lustre_idmap_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77d2089a class_name2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7802fcd7 lustre_swab_llogd_conn_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7834b2a4 lu_context_key_degister +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x789796a1 obd_zombie_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7a07dc54 llog_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7a0c14f7 obd_llog_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7a135e29 lprocfs_stats_collect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7a45534a cl_object_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7abc6ae8 cl_2queue_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ac61ca1 cl_lock_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b4fc57b at_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7bca84ee cl_io_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7c83ea92 cl_lock_nr_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7cc7a83a dt_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7cd460ed cl_object_attr_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7e001d44 llog_cat_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7e0cbf21 dt_store_resolve +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7e111996 llog_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7e410a27 class_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7edcafa0 cl_env_reenter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7eee29ed cl_use_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f7d7cd9 lu_buf_check_and_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f954961 cl_offset +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fab9bd7 class_exp2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fad7291 raw_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fe5561a obd_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fe6b3e1 lu_cdebug_printer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fefde21 cl_page_list_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ffa40a1 lu_object_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8031efb8 lprocfs_dt_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x806cc497 class_add_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8105f052 cl_lock_mutex_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8109c27b class_search_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x811ee31c cl_lock_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81742d89 obd_ioctl_popdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81de668c class_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x831f656c class_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x835850ba class_handle_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8371d640 lu_context_key_degister_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x83e42e0c lu_context_key_quiesce +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x83f1ba16 lprocfs_obd_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x84805837 cl_io_read_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8489f086 obd_alloc_fail_rate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x849e5385 obd_update_maxusage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8503c454 lu_buf_check_and_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x85278c2b lu_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8533a327 lu_context_key_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x85a2c300 lprocfs_init_mps_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x85c86385 lu_env_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8624366e lprocfs_seq_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x86286639 llog_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x86946af1 obd_export_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x86bacf11 obd_export_evict_by_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8755d51b cl_req_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x875e41a7 dt_txn_hook_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8823a92e class_conn2export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x888fbc12 lu_object_put_nocache +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x88a8b094 cl_enqueue_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x899c9461 obd_export_evict_by_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8a27358a lu_context_key_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8a335745 llog_cat_declare_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8aa2c358 lprocfs_dt_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b5f4057 lu_context_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b7fabd0 class_process_proc_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ba6e479 lustre_swab_lu_seq_range +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8be9aa6f lprocfs_rd_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8bf0a3b7 lu_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8c687e79 cl_2queue_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8cec57d7 cl_lock_user_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d04fb2f obd_exports_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d1b9077 lprocfs_single_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d2ef0bd llog_cat_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d601796 cl_page_list_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8db3055c dump_lniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8e10e6d6 server_name2svname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8e3da148 cl_locks_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ef7a781 lprocfs_oh_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f5849c5 cl_io_sub_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f67314c obd_dump_on_eviction +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x906034dd lu_dev_add_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x907db93f local_oid_storage_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x923130a5 llog_osd_put_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92814b22 cl_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92e58479 obd_dump_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x939c6e8e cl_page_find_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93ab6b91 class_connected_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93b46468 lu_session_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93c32c56 cl_env_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x944e0999 llog_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x94ceef2f lprocfs_wr_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9512d507 lustre_acl_xattr_merge2posix +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x955f5220 ldlm_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95735c6c at_extra +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95b3c9b3 llog_declare_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95bac67a local_oid_storage_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95c268c6 cl_type_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95ec998a lustre_groups_sort +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95f30595 lprocfs_obd_rd_max_pages_per_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9767adce class_uuid2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9787196f class_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97cfd457 class_config_dump_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97d03783 at_history +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9a287820 lu_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9a5efc3f cl_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9a738a0d cl_page_make_ready +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b1ed9d8 obd_jobid_var +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b2e9a12 llog_cat_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9c154b4a cl_page_vmpage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9cd7c255 cl_page_list_splice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9dbb17b6 lprocfs_dt_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9e1770f2 md_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9faa42bf cl_page_list_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa0ccd83e local_file_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa0f3067e capa_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa208cda5 cl_lock_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa21c5ea1 obdo_from_la +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa23e1014 cl_env_implant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa2f5eca4 lprocfs_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa2fbf9c9 dt_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa311aad0 dt_try_as_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa399c3c1 obdo_from_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa511035a lu_context_key_register_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa513f7e4 lustre_groups_from_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa526366d lu_device_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5278206 class_disconnect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa55eac0f lu_context_key_quiesce_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa573bce6 lustre_register_kill_super_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5fb234f lprocfs_write_frac_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa611bae6 lu_context_key_revive +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa674c241 kuc_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa6d30744 llog_cancel_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa813b29e cl_object_attr_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa8aff106 llog_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa8b6d740 cl_object_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa19d01e cl_env_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa21b7a0 lustre_register_quota_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaab4c666 llog_exist +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xab04d893 lustre_process_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xab31fb88 cl_2queue_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabf45922 capa_decrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac205290 cl_lock_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac674dfe lu_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac7f1596 kuc_ptr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xacb3d2ae llog_declare_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xacb838a3 lprocfs_init_ops_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xad47f19c dt_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xadb1baaf cl_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xadea66ba lustre_idmap_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xae6834a1 lprocfs_rd_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaed19185 llog_copy_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaef8171c cl_sync_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaf912f41 lu_site_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xafe6648d lu_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb01963a6 class_uuid_unparse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0fb9886 cl_lvb2attr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb12c3d39 lprocfs_free_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1690dd9 class_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1873a7c lprocfs_register_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1b89b6d class_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb3165eca lprocfs_rd_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb350aa31 llog_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb41998cd lustre_cfg_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb422cf7c class_find_client_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb55616db cl_io_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb5ac0cc2 lu_ucred +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb635af9e dt_acct_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6ba5dd5 kuc_ispayload +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6e9216a class_disconnect_stale_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb726ead2 cl_page_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb743ec6a dt_mode_to_dft +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb867a2fe lprocfs_rd_num_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb89fe916 class_export_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb8dfede2 lprocfs_exp_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb9898a89 dt_declare_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb9af180a llog_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb9e9b306 cat_cancel_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba497f43 cl_io_submit_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba985283 lustre_register_client_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbacac922 lprocfs_write_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbb3766d5 cl_env_nested_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbbe533e0 dt_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc36a465 class_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbd5bbf61 cl_lock_state_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbedcd86f lu_context_enter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbf0fccfa cl_lock_hold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0bf7ef2 obd_debug_peer_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc18d06cf lu_buf_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc275110f cl_page_is_vmlocked +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc3004b41 cl_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc3138332 llog_cat_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc38e0084 cl_lock_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc4304a47 cl_io_is_going +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc5498b0f lu_object_find_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc5739558 lu_context_key_revive_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc5b31692 lu_device_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc5b8eba9 dt_txn_callback_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc7969168 cl_req_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc84d7e37 class_disconnect_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8ce171f cl_lock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8dbaa87 lustre_swab_cfg_marker +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8e63520 cl_page_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8ecb773 cl_vmpage_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc9c4d2dc llog_open_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xca99eeba lprocfs_oh_sum +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcaab0827 llog_cat_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb0ab67f obd_max_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcc7e8fc4 lu_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcca7a0b4 lu_context_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccf7a8de obdo_cpu_to_le +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd2ef7de cl_page_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd7537ee get_devices_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcdec76a3 class_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcedb140a obdo_cmp_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcfa7a052 cl_2queue_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd08827c0 server_name2fsname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd0bec786 class_unlink_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd10aa042 lustre_swab_llog_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1441b1a class_config_parse_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd16a8337 cl_page_list_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd198f5f8 cl_lock_closure_build +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1b1478b cl_attr2lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1f58645 lustre_swab_llog_hdr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd27e0fb1 lprocfs_free_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd37aaa16 cl_queue_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd38dceec cl_lock_mutex_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd3af6154 lu_context_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd3bfddd3 class_conn2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd3cbcaaf cl_lock_closure_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd3e7f3f9 cl_io_lock_alloc_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd3fe7393 lprocfs_rd_connect_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd42ade8a class_uuid2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd529817e dt_txn_hook_commit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd70fe669 lustre_swab_llogd_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bc8654 obd_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bfbc9c lprocfs_dt_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7db9b61 cl_page_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7f7b340 cl_lock_mode_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd93b5dee lu_object_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd9948d0b dt_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd9fe7a0d cl_req_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda520042 lustre_end_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda5b1ced class_find_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdac644c8 lustre_posix_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb13dce1 capa_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb236c07 lprocfs_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb67dfc0 dt_txn_callback_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb760255 cl_object_attr_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdc7f6652 cl_io_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcc40af0 class_check_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd0b2076 __llog_ctxt_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd19f8cc cl_lock_hold_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd5522c4 lprocfs_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd78c0c7 lu_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xddc2f051 lprocfs_rd_server_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde1337d1 dt_lookup_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde5d2f78 lu_site_init_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde7d985b obd_dirty_transit_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe00f6dda cl_lock_extransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe028cf84 capa_encrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe0b93482 llog_thread_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe11301c3 llog_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe210c08d obdo_to_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe224db07 llog_osd_get_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2eb4470 class_get_next_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3323f5d class_handle_free_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7d83236 cleanup_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7e3e328 class_import_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe80bf1e3 cl_2queue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8d5f60e lprocfs_free_per_client_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8e84c32 class_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xea33c878 obdo_from_iattr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb3f388a _debug_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xebdb4d22 cl_page_list_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec429ee7 lu_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec7d6b85 obd_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xed61123f lprocfs_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xed853d54 llog_obd_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xedf4ce37 class_incref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee47ebb2 cl_page_list_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee68bc29 lu_session_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee70b469 class_devices_in_group +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeeca7a13 lu_kmem_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeeeb79fa do_lcfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef76f858 block_debug_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef88602d llog_cat_init_and_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef8dbcf3 lprocfs_add_vars +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf01b92cd lprocfs_rd_u64 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf01e2527 server_name2index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf1055599 lu_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf1cc5834 lu_object_find_slice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf2fd6695 statfs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf321f6d0 cl_page_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3394823 dt_record_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3bc5b9d dt_lfsck_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3f50bfb lu_dev_del_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf490d5f9 class_del_profiles +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf4d86545 cl_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf560b2e1 cl_page_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf56c1f4f lprocfs_rd_conn_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf5ab0d04 lprocfs_nid_stats_clear_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf5d42eb6 cl_lock_unhold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf60d4659 capa_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf6198789 cl_object_kill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf66774a3 lprocfs_clear_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7020831 lprocfs_dt_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf75a8912 lustre_idmap_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7a12be4 lprocfs_seq_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf89ad14b cl_page_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8b1d6f2 cl_page_is_under_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8c2df92 obdo_set_parent_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf972e339 cl_page_cache_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa813d06 capa_hmac +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfb0dc9d5 cl_lock_get_trust +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfb7ba30a cl_lock_signal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfb8cd3b0 cl_lock_hold_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbea0098 lu_types_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc323129 cl_2queue_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc7f18d0 obd_pages_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfcaa5b06 cl_io_loop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfce4103b lu_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd1eb3de lprocfs_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd68d17a class_notify_sptlrpc_conf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfdbe1557 lprocfs_write_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfdd35724 cl_lock_descr_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe82af34 cl_req_page_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff14366f cl_lock_is_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff57e92d class_match_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff75569a lprocfs_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfffc1f11 lustre_swab_ost_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/osc/osc 0x5c4940c2 osc_update_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0097164e llog_origin_handle_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00d95039 ptlrpcd_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0122a54e ptlrpc_service_health_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x016014e9 ptlrpc_init_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x01d6ef7f ldlm_pools_recalc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x03896379 _ldlm_lock_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x048b59d5 lustre_msg_set_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x04a4a642 llog_client_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x04be904e ptlrpc_set_import_active +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0515f93b RQF_FLD_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x06571125 ldlm_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x06b3942b lustre_swab_lov_user_md_objects +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x071fc74a RQF_LDLM_ENQUEUE_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x07605c7d interval_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08bb2d27 lustre_swab_obd_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x095587d0 lustre_msg_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0a3130b0 RMF_MDT_EPOCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0aaf0c62 ldlm_cli_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac252b2 lustre_msg_set_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0b4a2484 req_capsule_server_sized_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0bcacb5d RMF_MDS_HSM_USER_ITEM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0bf0230a ldlm_init_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0bf7a2af ptlrpc_mark_interrupted +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0c2d9c43 lustre_swab_lip_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0cf343dd RQF_LDLM_INTENT_BASIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0eb7f622 req_capsule_server_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ee1c4dd ldlm_destroy_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0fc2b205 ptlrpc_disconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x103dc64f req_capsule_server_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x107288fe ldlm_pool_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x109dd207 target_print_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x10e123ca llog_origin_handle_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x10f18f20 interval_iterate_reverse +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x115017f6 req_layout_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x116b9d59 sptlrpc_cli_ctx_wakeup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12b6f5a3 ptlrpc_connection_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x13ee71ad ptlrpc_at_set_req_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x13fafdec target_pack_pool_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1483eca4 ldlm_lock_addref_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x14d192db lustre_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x15800377 sptlrpc_cli_unwrap_bulk_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x15a24a00 ptlrpc_activate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x15a3e4db RMF_GETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x172fb86d lustre_msg_hdr_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1747d8b3 ldlm_lockname +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17950f60 RQF_SEC_CTX +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17a68b12 ptlrpc_lprocfs_register_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x183025ef sptlrpc_import_flush_all_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19108a0f RQF_OST_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x194c1aba ldlm_resource_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19c08934 RQF_LDLM_INTENT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a63f107 req_capsule_field_present +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a6a3ce9 RQF_OST_GET_INFO_LAST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a9b76aa RMF_OBD_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1abd3258 RMF_SETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ace4b5f RQF_LDLM_BL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1bae0270 interval_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1be21715 lustre_msg_size_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c300d8e lustre_msg_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1d043548 lustre_msg_set_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1d0dff97 ldlm_pool_get_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1dc2051d RMF_SEQ_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1de9c288 lustre_swab_layout_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1e8e48a4 sptlrpc_flavor_has_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1e9df5cf req_capsule_init_area +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1eb2a65f RQF_OST_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee46b51 lustre_init_msg_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee486b2 client_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee9eb3c RQF_MDS_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1efa7cdd ldlm_namespace_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x207b6362 req_capsule_server_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2096f5b5 RQF_OST_SET_GRANT_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x20d6b82c RQF_LDLM_INTENT_QUOTA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x20ef2c01 ptlrpc_save_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x218a36ce ldlm_cli_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x233790b5 RMF_OST_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x244e5558 lustre_msg_get_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x24aafdba RMF_MGS_TARGET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x25659704 ldlm_lock2handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2585a629 RMF_SEQ_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2587513c RQF_LDLM_CP_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x25d97e59 client_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x269554ce RQF_LDLM_INTENT_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x26c1eada sptlrpc_register_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x26f99d16 RQF_MGS_CONFIG_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x275d5c4e ptlrpc_request_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x27704f67 ptlrpc_lprocfs_brw +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x285e5b99 lustre_msg_set_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x28bbc290 sptlrpc_cli_unwrap_bulk_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x28d020a4 ldlm_pool_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x29c7b0f0 ldlm_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x29e0869a sptlrpc_get_hash_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2a63a472 lustre_swab_ptlrpc_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2a955d06 ldlm_enqueue_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2befc551 ldlm_prep_elc_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2c00c60d ptlrpc_sample_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2c1753d2 ptlrpc_req_finished_with_imp_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ca92fa8 ldlm_lock_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2caddc88 ldlm_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2cc36377 ptlrpc_recover_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ccd5b87 ldlm_cli_cancel_list_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d56f168 ptlrpc_pinger_ir_up +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d798316 RMF_MGS_CONFIG_RES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4562fe RQF_LLOG_ORIGIN_HANDLE_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4ca396 RQF_LDLM_INTENT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e774c15 ptlrpc_nrs_policy_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ecd7515 lustre_msg_check_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2f0e4f87 RQF_OST_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2f8cade5 ptlrpc_lprocfs_unregister_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2fd2f737 lustre_msg_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x301d4fcd RQF_MDS_READPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x302937e0 RQF_MDS_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3060b9c6 sptlrpc_rule_set_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x31838cb4 RMF_IDX_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3240a688 req_capsule_server_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3261b862 RQF_OST_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x33bb7761 ldlm_typename +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x356706e5 ldlm_pool_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35939a3d lustre_swab_fiemap +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x36f18298 ptlrpc_replay_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3835ab4b RQF_LLOG_ORIGIN_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38519137 ptlrpc_free_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3858fb94 RMF_OBD_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38c01799 RQF_LDLM_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38f3e7b7 client_import_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38fce533 lustre_msg_set_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3907bc36 ldlm_pool_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x394efa4a ptlrpc_buf_set_swabbed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3966842a req_capsule_client_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x39db792e ldlm_pool_get_lvf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x39f60a5f RMF_OST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3a1e4bcb __lustre_unpack_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3a83db4c __ldlm_handle2lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3aa40f5a ptlrpc_unpack_rep_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ab90f6e lustre_msg_bufcount +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ac00716 lustre_swab_hsm_user_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b6b7cba dump_ioo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3bedb0c7 RMF_LLOGD_CONN_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c3d535c req_capsule_filled_sizes +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c63e62b RQF_MDS_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ca50f33 RQF_MDS_HSM_CT_REGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3d72d05a client_import_del_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3d7dc5f9 ldlm_pools_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dae6edb req_capsule_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dc47695 lustre_msg_get_magic +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dddb3e2 dump_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3e4ba1fc ptlrpc_queue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3edc4b9d ldlm_cli_cancel_unused_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f034caf lustre_msg_get_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f04aadc ldlm_reprocess_all_ns +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f3b95a1 lustre_pack_reply_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f752e78 RQF_MDS_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x406e5c38 ldlm_pool_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x40f3bf0c llog_origin_handle_read_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41008cef RQF_LDLM_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4137126a ldlm_pool_set_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x42bb583c ptlrpc_buf_need_swab +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x432437dc ldlm_lock_change_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x434b3f0f ldlm_completion_ast_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43705ee4 RQF_LOG_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43d7efc8 lustre_msg_set_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x44036eda RQF_MDS_GET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x440c2a71 RMF_FIEMAP_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4481591d RQF_OST_SET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45ad8158 ldlm_resource_unlink_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45d05893 lustre_swab_lustre_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45e30cea lustre_swab_ldlm_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x46c4d9e8 ptlrpc_unpack_req_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47f5e903 RMF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x480f6286 sptlrpc_import_sec_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x48814c9f lustre_swab_ost_lvb_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x490e3c8a ldlm_pool_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x498c03c5 lustre_msg_set_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4a2f2307 llog_origin_handle_prev_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4a5a2416 RMF_DLM_REQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4aac1fbb ldlm_cli_enqueue_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4b09ce4b lustre_swab_mdt_rec_reint +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4c512bd5 lprocfs_wr_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4c8ec098 ptlrpc_set_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4ca5fe8b ldlm_lock_allow_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4d7580d0 lustre_swab_hsm_user_item +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e1706e5 lustre_msg_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e696b96 ptlrpcd_queue_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4eb03a6f ptlrpcd_destroy_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4eea8f34 sptlrpc_cli_ctx_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4f766c3b lustre_swab_generic_32s +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50443f6a ptlrpc_init_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50dd74f8 RMF_STRING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50de2258 ldlm_resource_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x519cefc5 sptlrpc_gc_add_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5283e1db ptlrpc_deactivate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5290ffe3 ldlm_namespace_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x52c62150 RMF_RCS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53411557 RMF_DLM_REP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53a4a004 bulk_sec_desc_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x54ae5021 ldlm_lock_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x555eb7fe RQF_MDS_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x55ea0111 ldlm_glimpse_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x56c7f8ce ldlm_lock_fail_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x587f188e client_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x588035b4 RMF_UPDATE_REPLY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5910dc1e ptlrpc_start_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x595ab175 lustre_swab_obd_quotactl +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x596582bf RMF_GETINFO_VALLEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59ca398b ptlrpc_add_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5a057439 interval_search +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5a45129a ptlrpc_request_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5af0d02a ldlm_lock_dump_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b489418 ptlrpc_send_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b6ba895 lustre_packed_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b7e776f ldlm_cli_enqueue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5c6a3a83 RQF_SEQ_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5c6f05a2 ptlrpc_set_add_new_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5c844d88 ldlm_lock_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5caae213 ptlrpc_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e0b19b1 RMF_CLUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e2b7558 lustre_msghdr_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e6f435d RQF_OST_BRW_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e80f899 RQF_LLOG_ORIGIN_HANDLE_READ_HEADER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ec3284d RQF_MDS_HSM_CT_UNREGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ef831ee lustre_msg_get_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5f0331bc req_capsule_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5f96ccdd ptlrpc_connection_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60112d76 client_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6042bc15 RQF_MDS_REINT_RENAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x604e2505 RMF_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x607ec932 lustre_msg_set_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60cd26ad RQF_MDS_REINT_CREATE_SYM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x61397a92 do_set_info_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6154b905 ptlrpc_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x61646e1b RQF_MDS_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6175bbb3 ptlrpc_add_rqs_to_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x618ad203 RQF_OST_GET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62192cf8 dump_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62aaae3f RQF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6315dd4c RMF_LLOGD_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6352a62d ldlm_get_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x637f114a ptlrpc_resend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x647b6e48 lustre_swab_ldlm_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x653723dc RMF_LOGCOOKIES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x65ec460e lustre_free_reply_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x678033a7 ldlm_pool_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x685eeaba RMF_DLM_GL_DESC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68cb2541 interval_is_overlapped +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68f49e5e ptlrpc_expired_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6912990a RQF_OST_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x696ba811 lustre_msg_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69966338 req_capsule_server_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69b5f101 ptlrpc_schedule_difficult_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69c9f04d RQF_MDS_REINT_LINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6a3785c9 RMF_EADATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6a6efb90 sptlrpc_sec_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6a7fa174 sptlrpc_cli_ctx_expire +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d72828c sptlrpc_conf_log_update_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d7931cc RQF_UPDATE_OBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6eae1f1e ldlm_pool_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6ed20499 ldlm_revalidate_lock_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6efa82b0 RQF_MGS_TARGET_REG +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f3b2807 ptlrpc_hpreq_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f533656 sptlrpc_cli_enlarge_reqbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f6dc736 lustre_swab_mdt_remote_perm +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f74a83a ptlrpc_reconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6fb92092 sptlrpc_flavor2name_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x703538e4 lustre_swab_hsm_current_action +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x70fcb3e2 ldlm_blocking_ast_nocheck +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x71c16345 ldlm_init_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x723d43b6 sptlrpc_rule_set_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x725a892c RQF_MDS_REINT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x725ce0c7 sptlrpc_enc_pool_get_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x72dcfec6 ldlm_replay_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x74840056 lustre_msg_set_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x748a8e5e ldlm_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75249c7b ptlrpc_restart_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75a2c40d ldlm_put_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x76b728e5 lustre_swab_update_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77571cc6 lustre_swab_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77840c82 sptlrpc_rule_set_choose +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77d99a19 ptlrpc_unregister_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x78bf9136 lustre_swab_ldlm_lock_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7967cc71 lock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x799da218 ptlrpc_req_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x79d237c2 ptlrpc_wake_delayed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7a832f10 RMF_CONN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7b158da4 lustre_swab_ldlm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7bbf8001 RMF_MDT_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7c4c6107 RQF_LDLM_CONVERT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7c8899e6 ptlrpc_request_set_replen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d1ecd7f RQF_LDLM_INTENT_LAYOUT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d41a8b9 RQF_QUOTA_DQACQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d5e5c3e ptlrpc_retain_replayable_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d73eee7 target_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dc0e7cd RMF_QUOTA_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dfb3c18 lustre_msg_clear_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7e311914 sptlrpc_conf_client_adapt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7e7290df __ptlrpc_prep_bulk_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7ebd3d7b lustre_pack_reply_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4925d8 interval_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4c99b1 ldlm_expired_completion_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f5a1cc7 lustre_msg_set_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f6d2357 lustre_msg_is_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7fe73394 ptlrpc_req_finished +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7ffbd171 sptlrpc_gc_del_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80a9e8c3 lustre_msg_get_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80ecb4e3 RMF_MDS_HSM_CURRENT_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x817d7f1f lustre_msg_add_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x825b90a5 ldlm_cli_cancel_unused +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x826d3c4f RQF_LDLM_GL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x827dc7bc sptlrpc_cli_wrap_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x830bacda ldlm_lock_downgrade +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x837efb00 RMF_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x849c2171 client_disconnect_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85135801 RMF_DLM_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85a9e0d8 RMF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85eecf67 sptlrpc_get_hash_alg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x863db6eb RMF_HSM_USER_STATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8694ff9b ldlm_namespace_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x86ea04e2 ptlrpc_fail_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x86fa8c3b ldlm_cli_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8760beaf lustre_swab_ldlm_policy_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x876c2551 RMF_GETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87bf7b3c sptlrpc_get_next_secid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x880d3717 req_capsule_client_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8872f3d2 RMF_SETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x88fff52d RMF_CAPA2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x89f9edf7 RQF_MDS_REINT_SETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a1ea476 lustre_swab_hsm_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a257736 RQF_MDS_HSM_STATE_GET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a850dc1 ptlrpc_stop_all_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ac440fa ptlrpc_uuid_to_connection +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8b854254 lustre_swab_mgs_config_res +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8cb71d4b RQF_MDS_REINT_CREATE_SLAVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d2322b7 ptlrpcd_wake +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d27c8d9 sptlrpc_import_flush_my_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d77ea75 lustre_msg_set_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8da3fca7 lustre_msg_add_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8df400e6 ptlrpc_request_alloc_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8e572592 ldlm_blocking_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8e9abe4d RMF_GENERIC_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8eb670e3 ldlm_lock_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8f0aceac RQF_MDS_HSM_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8f7c1b4e sptlrpc_sec_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8fa247b3 ptlrpc_set_add_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8fec0451 lustre_msg_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x90657bbe ldlm_prep_enqueue_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x90b29ab7 ptlrpc_unregister_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x919c4ce3 RMF_OBD_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91cf58d3 RQF_MDS_PIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9276f0b7 ptlrpc_request_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x937b1ee0 lustre_swab_mdt_ioepoch +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9536726a req_capsule_has_field +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9553c633 RQF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95999658 ldlm_cli_update_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95d08f0c lustre_swab_mgs_target_info +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9660ace0 RMF_FLD_MDFLD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x967bfd52 RQF_OBD_PING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9798f2f1 RQF_MDS_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x980fcfdc ptlrpc_connection_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9902f5e5 sptlrpc_sec_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x991fa899 llog_origin_handle_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x99db8332 ptlrpcd_alloc_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a258886 RQF_MDS_GETSTATUS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a6dd15d ptlrpc_pinger_sending_on_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a6f2f6d lustre_msg_set_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9aecf95b ptlrpc_obd_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9b88f6ce RMF_NIOBUF_REMOTE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9bb2a8d4 lprocfs_wr_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9bb5198b RQF_MDS_CLOSE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d4fab20 sptlrpc_enc_pool_put_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d7ea314 sptlrpc_pack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9e653bd8 lprocfs_wr_evict_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9e6ac3f7 lustre_pack_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9ea2978b sptlrpc_get_bulk_checksum +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9ea5a441 ptlrpc_set_next_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9fb088f1 lustre_swab_lov_mds_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa01fe242 ldlm_lock2desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa10f0d3d RMF_UPDATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa131c653 ptlrpc_invalidate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa163f4c3 dump_rniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa1903d8f ldlm_namespace_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2244636 RQF_MDS_GETATTR_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa22c0086 ldlm_error2errno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2d57a94 ptlrpc_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa3547eee req_capsule_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa36aa80f req_capsule_set_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa3d2a6ee RMF_CAPA1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa47787ef RMF_PTLRPC_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4a2d089 RQF_OST_PUNCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4bea5ef lustre_swab_lmv_user_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5458dad ldlm_lock_decref_and_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5880075 ldlm_errno2error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa6c436ca RQF_MDS_WRITEPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa6f6529f req_capsule_server_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7d55cc3 RQF_MDS_REINT_CREATE_RMT_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7e360b1 RMF_OBD_IOOBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7ec567d RMF_CONNECT_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa88999e6 ptlrpc_commit_replies +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa8bbc559 ldlm_pool_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa955aa91 ptlrpc_prep_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9704f80 lustre_msg_get_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9c4658e lustre_swab_lov_user_md_v3 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9edf09d RQF_OBD_IDX_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaabb165d sptlrpc_lprocfs_cliobd_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xabe724ee ldlm_cli_cancel_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xac68a952 ptlrpc_prep_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xacc82ce1 ptlrpc_prep_fcset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xacfd50f4 ldlm_lock_fail_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaddc3979 lustre_swab_lustre_capa_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xae443bb9 ptlrpc_abort_inflight +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf4e9658 RQF_MDS_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf50a0d6 RMF_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf8ab969 ptlrpcd_add_rqset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xafee2647 ldlm_resource_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0751fa4 RQF_LLOG_ORIGIN_HANDLE_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1681755 ldlm_namespace_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1b43d8a dump_rcs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1ededa0 ldlm_lock_allow_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb27c2374 lustre_msg_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb291473d lustre_msg_early_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb2b1817d lustre_swab_ost_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4881689 ptlrpc_cleanup_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb49e705b ptlrpc_request_alloc_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4a7ecf3 lustre_msg_add_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4f851f9 ldlm_extent_shift_kms +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb512ebc2 sptlrpc_parse_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb61cb95a RQF_MDS_GETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb68476df interval_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb68d711f ptlrpc_request_bufs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb6aafd03 RQF_MDS_DONE_WRITING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb787c422 sptlrpc_svc_ctx_invalidate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7b38189 RMF_MDT_MD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7fa3cc8 RMF_LLOG_LOG_HDR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb903634e RQF_OST_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb94bfb6d sptlrpc_target_sec_part +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb9b631cf lustre_swab_mgs_config_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb9b81e4b ldlm_pool_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbaa76097 lustre_msg_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc1370dc lustre_shrink_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc9f30f6 ptlrpc_unregister_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbd83bc44 RQF_OBD_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbdc76719 req_capsule_other_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbe47bc7e ping_evictor_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbf98b86f RQF_MDS_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbffd4313 RQF_OST_BRW_WRITE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0491c2c ptlrpc_resend_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc06c4670 lustre_msg_get_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0867da7 RMF_REC_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0cdf55e RMF_MGS_SEND_PARAM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2986d28 lustre_swab_ldlm_res_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2b1af57 RQF_MGS_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2be922a RMF_SYMTGT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2e8ad06 req_capsule_client_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2e9fe61 lprocfs_wr_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc33298a0 ptlrpc_prep_req_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc3660d3f sptlrpc_conf_target_get_rules +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc3b5a9b6 sptlrpc_cli_ctx_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc559a634 RMF_LAYOUT_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc576b0cb ptlrpc_request_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc60a60e1 RQF_OST_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc61a2221 ptlrpc_set_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc694be4b RQF_LLOG_ORIGIN_HANDLE_PREV_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc75d74f1 ldlm_destroy_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc763fabc sptlrpc_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc78bc113 ptlrpc_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc79b9c67 ldlm_pools_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7ca8257 RQF_MDS_REINT_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7e3f6e4 ptlrpc_nrs_policy_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7e47564 ptlrpc_interrupted_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc8f586a9 ptlrpc_connection_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca567d8f ptlrpc_register_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca5a81ec ptlrpc_pinger_ir_down +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2cc0cf lustre_swab_lquota_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2ceaff sptlrpc_secflags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcd1462af ldlm_get_enq_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcdaab59a req_capsule_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcdbc2c8a ptlrpc_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce1a689b sptlrpc_enc_pool_add_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce86066d lustre_msg_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcec513c9 RQF_MDS_UNPIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xced015be sptlrpc_rule_set_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9963db lustre_msg_get_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9aab6a RQF_MDS_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcfc87061 ptlrpc_cleanup_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2143aa6 ldlm_namespace_new +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2983334 lustre_swab_swap_layouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2e0d4eb lustre_msg_get_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd3187a53 ptlrpcd_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd375ede3 ptlrpc_req_set_repsize +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd3dae408 ldlm_it2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd49e914a sec2target_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd537ded2 lustre_swab_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd5c9d07b ptlrpc_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd67a5d7b lustre_swab_update_reply_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd69e0a27 RQF_MDS_IS_SUBDIR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6c18bed ptlrpc_register_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6c3ebfb RMF_FIEMAP_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd707211a ldlm_resource_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd7910326 lustre_swab_obd_statfs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd82389ce __ptlrpc_free_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8b91b3e lustre_swab_lov_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8f06300 RQF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd9561861 RQF_LDLM_INTENT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd9a840e1 llog_initiator_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xda2ac111 sptlrpc_proc_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb1fb0a2 RQF_MDS_REINT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb9d5a6a lustre_swab_niobuf_remote +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdcf910b9 lustre_swab_ost_last_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd0ffb04 sptlrpc_flavor2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd30d7bf RMF_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xddc40a85 lustre_msg_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde12d36b RMF_MDS_HSM_ARCHIVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde555d70 sptlrpc_enc_pool_del_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdebc5f52 ptlrpc_pinger_del_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdee87192 sptlrpc_conf_log_update_begin +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf222a6c ldlm_cancel_resource_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf701ae7 lustre_swab_fid2path +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0cc694c RQF_LLOG_ORIGIN_HANDLE_NEXT_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe1d45b18 sptlrpc_gc_add_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe3bd92e3 req_capsule_client_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe40e0a50 lustre_msg_get_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe57bd972 sptlrpc_current_user_desc_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe643998e RQF_OST_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6f0dc96 RQF_OST_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7062b5f RMF_U32 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7512278 ptlrpcd_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe754d1f4 ptlrpc_set_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeaa09080 ptlrpc_init_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabaa0b1 lustre_swab_mdt_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabac4fc sptlrpc_rule_set_merge +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeb43ba82 client_import_find_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xebb64e68 req_layout_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec226f66 ping_evictor_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec5cdb5d unlock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec939a00 RQF_MDS_REINT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xecace5c1 RQF_OST_GET_INFO_GENERIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xecc9cf3f req_capsule_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed1c10d6 ptlrpc_connection_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed340cd2 sptlrpc_target_export_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xedcb740d sptlrpc_name2flavor_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xee6af7a4 sptlrpc_req_replace_dead_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeee7e241 ldlm_namespace_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef1aeca9 RMF_FLD_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0241d6e lustre_swab_hsm_progress_kernel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0d52b5f ptlrpc_pinger_suppress_pings +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf1300275 _sptlrpc_enlarge_msg_inplace +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf1c372c8 sptlrpc_target_update_exp_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf1ea8fa9 sptlrpc_unregister_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf21d2b9a ldlm_cli_cancel_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf277c125 RQF_OST_GET_INFO_FIEMAP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf27d49dc sptlrpc_target_choose_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf2c0d2f4 _debug_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf2e109cd lustre_pack_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf307e2fb ptlrpc_pinger_add_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf35f132b lustre_swab_ldlm_resource_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf3cc5db8 llog_origin_handle_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf3d44370 RQF_OST_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf43540b9 lustre_swab_mgs_nidtbl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf45085e1 sptlrpc_conf_log_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf55c033b RMF_MGS_CONFIG_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf584a16b sptlrpc_part2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf596e9ae sptlrpc_conf_log_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf59fc3b1 ldlm_register_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf5be9fb1 ldlm_flock_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf607fc23 sptlrpc_flavor2name_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf617ab8a lustre_msg_get_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf697b756 ldlm_dump_all_namespaces +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7408f84 lustre_swab_hsm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7ba40c0 RMF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7fa4a65 llog_origin_handle_next_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf85cb27e sptlrpc_parse_rule +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf870fed9 RQF_LDLM_GL_DESC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9051bd6 RQF_QC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf94e41e0 deuuidify +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9626213 req_capsule_extend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf973aa93 lustre_swab_lov_user_md_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9826b9e ptl_send_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9ee11e2 lustre_msg_set_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9f72dfc RMF_TGTUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa2a9424 ptlrpc_prep_bulk_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa51688d interval_insert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfc2fa83f ptlrpc_del_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd148bf8 RMF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd2300a6 lprocfs_rd_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff02a0e9 ldlm_lock_set_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffc807e8 sptlrpc_unpack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffe29c3f RQF_LDLM_ENQUEUE +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0x1daff98c cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x1295979c go7007_snd_init +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x21228c1e go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x45d748f0 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x4f5c293c go7007_update_board +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x630cb291 go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x6e0f663c go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xa31305e4 go7007_snd_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xad68ccc0 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xf4c20661 go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x06ec352c rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0b66a4c9 rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0dc13c76 free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x15f696f9 rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x20043f30 rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2ea58b36 rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3021f80b RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x333a4bb4 rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x33b55705 rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3458e6c3 rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3915940a rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3a961e4c rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3b6e0481 rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3cc8d0b9 rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x40bb3764 rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4b3c4b7c rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4f421c1f alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x58e062f8 rtllib_wpa_supplicant_ioctl +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5933db57 Dot11d_Channelmap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5c7a90d4 rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x67af35e7 rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6afaf83e rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6ddfb17a rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6ee5b499 rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x74f6b857 rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7930b242 rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7a6042ee rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8b5744d8 rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8de4d1cd rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x90e38e94 rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x968eea7c rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9d375a42 dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa2a64ad1 rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa39bb91d rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb53f5b9e rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb8db3f0a rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb98ca3c5 HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbdec7185 rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe1420f2 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc8d37bad rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xcae3dcf0 rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xcf878a5d rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd024103e notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd9958f49 rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdb52ca63 rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdc702d72 rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf78f620 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdfc23a8b rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe407c696 rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf0decde9 rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf194045c rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfbedb3fb rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0093de62 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x04c3a47b ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x08add202 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x096ea455 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x09ea9684 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x14225583 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1826567b ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1b8f3df8 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1f737dba ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x24da996c ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x27bca0dd ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2d026d43 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x381b9867 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x383d0914 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3e3711b3 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x42975930 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x46dc665a ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4c501c65 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4cdb778d HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x534b98fd ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x539aeeba ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x55463a9c ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x55d45036 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x59d4416b ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5b4efaaf ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5b7e6b39 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5c5fb394 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5d7836fc ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x61702587 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6dbc8141 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x77c67e16 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7e66de14 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8396f881 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8826a5c1 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8bd272da ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8e8bad95 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8f0104e5 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x947cad2a ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9aa2e139 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9f2195c9 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa44f3c27 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa60a2028 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaf1839f2 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb35d1dd0 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb583c64f ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbefa07e1 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc164c5ca ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc1f7bae7 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc4905e92 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd0697240 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd88df7c3 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdb3f8caa DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe218a8f2 ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe72b1b04 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfc20ced4 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfc31b1b9 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0017f35f set_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x00ea0cde set_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x06d6f244 get_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x09df8f3e set_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0a8d32c3 get_bypass_slave_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1936264c set_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1d2eb8ca get_tap_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x203af1f7 reset_bypass_wd_timer_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2070f14a set_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x27b990ef get_bypass_info_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2ba7cd35 get_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2c3f1c17 get_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2f59e636 get_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2fdb893a get_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x361cf40a get_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x45ca99c3 set_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x550a188c set_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x5cb59e92 get_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x66b60122 set_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x675208c0 set_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x692623f2 get_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x75131ec6 set_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x76c0b7d0 set_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e872825 get_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e8d701e get_wd_expire_time_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x86388b07 get_bp_disc_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x93ae4648 get_wd_set_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x95e42b0d is_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9df5f807 set_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9e21f42e set_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xa689a214 get_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xae117788 get_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xc368d30d get_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xccab5de0 get_bypass_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd3e034b3 get_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9c1ccfc get_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9d38d97 set_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xe640f06e set_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xecdaa456 set_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xedcd3c1b get_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf06d67bf set_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf57c1671 get_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf693c3a1 bp_if_scan_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf8237882 get_bypass_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xfa59240d get_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05af3c4c set_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05b08a42 set_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0b0d5ce0 get_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0fc2e83c reset_bypass_wd_timer +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x123a8133 get_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x157ec89c get_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2440f05a get_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2b01d1d4 set_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2c27a2f0 set_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2da97f4b is_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2e86c67b get_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37416370 get_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37bdab27 get_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x3da96a18 get_bypass_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4025805e get_bypass_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4940a0cc get_bypass_info +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4d21ff51 get_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5147360c get_bp_disc_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x515d4df1 get_bypass_slave +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5560267e set_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5be44d44 set_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6653590c get_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6bda14ec get_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x72c618ae set_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x76d47e6f set_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x794e3815 set_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x7c6cbc16 get_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x84a263dc set_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x8a16f22c set_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x946ff795 get_wd_set_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x94f6aff2 get_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x9d1ecf73 set_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xb1385629 set_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xbff68c45 set_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xc871c561 get_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xcee528df set_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd202dd85 get_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd787f151 get_wd_expire_time +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xdb6a39d2 get_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xebd25ae5 get_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf1e9f8c1 set_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf224abd9 get_tap_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf5a591b2 set_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf643fd4c get_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x25978d50 xillybus_isr +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x372be017 xillybus_do_cleanup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x3a1e840e xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x56791993 xillybus_init_endpoint +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x701827dc xillybus_endpoint_remove +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00bc592d iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x11a9efef iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x214e90aa iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x308f5bf9 iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x31ee4a2e iscsit_handle_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x396a048f iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x44d05056 iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4cf1db75 iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x634a3c92 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7b9954e4 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8768329a iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8889d9c7 iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x92e7c796 iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x935e58c0 iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa3a7eaf5 iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa837404f iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xad7199b3 iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc2509352 iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc4be6a62 iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc5635791 iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc88125c5 iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc9041c82 iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd526bdfd iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xda425aec iscsit_set_unsoliticed_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe0f1eba1 iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xebba5ffe iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf18a9592 iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xfb5b41ff iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x012b94c1 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x053938bf target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x09e7917e target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x0a21cd56 core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x1072f2bc sbc_execute_unmap +EXPORT_SYMBOL drivers/target/target_core_mod 0x11f3e5fd transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x14f1b523 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x197d8147 spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x1b546e54 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x1c09c862 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x305bb0bd target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x321ea83c transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x34585aad transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x3d9e65f1 target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x3e8b0451 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x43747b9e fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x48fa5cd5 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x51a4d86c transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x52567ed8 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x52a4b30f target_put_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x54f295e2 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x561ae49b transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x5b0b515d transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x5b155bfb core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x5c708214 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x617df86a target_submit_cmd_map_sgls +EXPORT_SYMBOL drivers/target/target_core_mod 0x63956c61 transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x665edb40 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x6b54728c transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x6ef4e18f transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0x71489c9e transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x73b791aa transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x74d69622 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7a16e68e target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7f4839a7 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x83819944 target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0x847b10e8 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x900f33cc transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x96b4b563 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x98cf9170 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x9a98c83d transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xa7599b05 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xa78996f0 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xacceabeb sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0xaf707b43 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xb1b2354f sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xb23fab24 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0xb360da44 spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0xb4115c7a target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0xbc1814ca transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xbc1a5c55 iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xbdd6067a iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xc2b1a9be target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xc6b46ef7 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xc6ee7cf4 transport_init_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0xcafe5bb5 spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0xcb4d5fdf fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xcb9a842f target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xd06d0434 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0xd0ced577 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xd5243158 target_sess_cmd_list_set_waiting +EXPORT_SYMBOL drivers/target/target_core_mod 0xd5a8b45a target_get_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xd7108188 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xd7be62c1 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0xdecb97b8 spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0xe577287d target_setup_cmd_from_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xe580cbcd sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xee2ba40c core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0xee4e7336 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf409457d core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xfcdc00d8 core_tpg_register +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0xa5e7707d usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0xf2f150cc unregister_gadget_item +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x0b2d95d6 gether_connect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x10daa803 gether_get_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x405785fe gether_get_ifname +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x5213b027 gether_get_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x526e6a3d gether_register_netdev +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x765ed932 gether_get_host_addr_u8 +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x7873b3a6 gether_get_host_addr_cdc +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x78eaae18 gether_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x7eb39e20 gether_set_gadget +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x860b3fe1 gether_get_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8878cfa6 gether_cleanup +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x97481bc9 gether_set_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x9b9c21aa gether_set_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xc328e2fe gether_set_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xe4b33501 gether_setup_name_default +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xe81acf24 gether_setup_name +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x10275f11 rndis_set_param_dev +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3a6d4f22 rndis_free_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3ca38e3a rndis_signal_connect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x4ca90996 rndis_signal_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x5d22b406 rndis_register +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x7511251b rndis_rm_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x785d494b rndis_msg_parser +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x840dd143 rndis_deregister +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x988ad2a2 rndis_set_param_vendor +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x9acf72e4 rndis_set_param_medium +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xa90054ee rndis_uninit +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xb971ebca rndis_get_next_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xd2fe47b1 rndis_set_host_mac +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xecc0c9f1 rndis_add_hdr +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1710b539 fsg_fs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x17a3d914 fsg_store_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x17dbf1bc fsg_store_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1b1cc3af store_cdrom_address +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x2933ee1d fsg_ss_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x369d64d8 fsg_show_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x3806bbdd fsg_show_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x398778e1 fsg_ss_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x40f3d421 fsg_lun_close +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x423845e4 fsg_ss_bulk_in_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x56344daf fsg_hs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x5e38f14a fsg_lun_fsync_sub +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x6dd45fb5 fsg_show_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x857b6dc2 fsg_hs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x94ef1460 fsg_store_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x95cffb3e fsg_hs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa21bc264 fsg_store_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5cae92f fsg_ss_bulk_out_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5f99b69 fsg_fs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb52ba28a fsg_intf_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb54d0d95 fsg_fs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb83d0af2 fsg_show_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xceb1c64e fsg_store_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xd90a74c6 fsg_show_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf4efc0c8 fsg_ss_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf797a1cc fsg_lun_open +EXPORT_SYMBOL drivers/usb/gadget/usb_f_rndis 0xe8876857 rndis_borrow_net +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x25a7a12b sl811h_driver +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x245d3e1b usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2ecf67fc usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2ee52c72 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4a921336 usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4d8ac9ef usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x853acc6b usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8ba730f3 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x95fed93c usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9e773443 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb6de87f3 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xbcb75927 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd5824e44 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf49322a7 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x079b62a3 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x249b5319 usb_serial_suspend +EXPORT_SYMBOL drivers/vhost/vringh 0x0dda8c5a vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1f063017 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x2eae4a2a vringh_getdesc_user +EXPORT_SYMBOL drivers/vhost/vringh 0x36dfce73 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3b304ebb vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3eaf442a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3fa42e4f vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x4311cd91 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5dafbd4e vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x66af098b vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x6d0e7948 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x76bd9a5d vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x97fa07e9 vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xaf8e4a0e vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xafb47dae vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc884d704 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc8bee0a4 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xda4ea4cc vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xde804bb9 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x40832413 devm_lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x8dcaa203 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xa2d42eca devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xbc18d93f lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xa40991b7 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/macmodes 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x42202955 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x2d9bd066 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xbba4c035 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xf9a59ac3 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x457e7ed0 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x7e4846fd matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x91dc9002 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xffef3116 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x6d712b5c matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x0052363b matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x0a199c12 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x1f724fdc matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x43dc06ab matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xb56b3168 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x704539e6 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xa411b6e0 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x1ae604a8 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x299304a3 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x2f4eae82 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x5d46503f matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xae7af919 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0x1da3ae1b mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x3f2d1899 video_output_register +EXPORT_SYMBOL drivers/video/output 0x657c6f55 video_output_unregister +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x309b0d08 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x6c71ded4 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x6e4adb1e svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x8de63fb4 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0xa3c11dc4 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xca65c9a8 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xdb40cf47 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf2db5956 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xf336a2fe svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xf3664104 svga_get_tilemax +EXPORT_SYMBOL drivers/video/syscopyarea 0x4325cb8d sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x6688ce9a sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0xb77d6f26 sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/vme/vme 0x0b623611 vme_irq_handler +EXPORT_SYMBOL drivers/vme/vme 0x0c6bdc3f vme_master_read +EXPORT_SYMBOL drivers/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/vme/vme 0x20df5a3d vme_dma_pci_attribute +EXPORT_SYMBOL drivers/vme/vme 0x307fbd98 vme_master_request +EXPORT_SYMBOL drivers/vme/vme 0x3863cdd1 vme_slot_get +EXPORT_SYMBOL drivers/vme/vme 0x390880b9 vme_slave_request +EXPORT_SYMBOL drivers/vme/vme 0x3ac51558 vme_lm_request +EXPORT_SYMBOL drivers/vme/vme 0x3e95083c vme_slave_get +EXPORT_SYMBOL drivers/vme/vme 0x41d87114 vme_irq_request +EXPORT_SYMBOL drivers/vme/vme 0x44b0adac vme_register_bridge +EXPORT_SYMBOL drivers/vme/vme 0x46649cd1 vme_lm_set +EXPORT_SYMBOL drivers/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/vme/vme 0x4baf35a7 vme_master_get +EXPORT_SYMBOL drivers/vme/vme 0x52983a4f vme_master_write +EXPORT_SYMBOL drivers/vme/vme 0x535c8308 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/vme/vme 0x5aff4177 vme_lm_get +EXPORT_SYMBOL drivers/vme/vme 0x5fe275aa vme_unregister_driver +EXPORT_SYMBOL drivers/vme/vme 0x79a33f85 vme_get_size +EXPORT_SYMBOL drivers/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/vme/vme 0x8dcc496d vme_dma_list_exec +EXPORT_SYMBOL drivers/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/vme/vme 0x998c37e0 vme_irq_generate +EXPORT_SYMBOL drivers/vme/vme 0x99a5c266 vme_dma_request +EXPORT_SYMBOL drivers/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/vme/vme 0xa2a335bd vme_alloc_consistent +EXPORT_SYMBOL drivers/vme/vme 0xa31bdf07 vme_master_set +EXPORT_SYMBOL drivers/vme/vme 0xaa11a24b vme_register_driver +EXPORT_SYMBOL drivers/vme/vme 0xbe15f7f8 vme_unregister_bridge +EXPORT_SYMBOL drivers/vme/vme 0xc3085ac8 vme_irq_free +EXPORT_SYMBOL drivers/vme/vme 0xca5ee09a vme_free_consistent +EXPORT_SYMBOL drivers/vme/vme 0xdedb0ff8 vme_new_dma_list +EXPORT_SYMBOL drivers/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/vme/vme 0xe88cb570 vme_dma_list_free +EXPORT_SYMBOL drivers/vme/vme 0xefd1624a vme_dma_free_attribute +EXPORT_SYMBOL drivers/vme/vme 0xf23e00dc vme_bus_type +EXPORT_SYMBOL drivers/vme/vme 0xf52fc688 vme_dma_list_add +EXPORT_SYMBOL drivers/vme/vme 0xf5a10e25 vme_slave_set +EXPORT_SYMBOL drivers/vme/vme 0xfacd8e72 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x34354f10 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x482ce996 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xc789c1aa w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xe653bbb9 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x3240b3bb w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x88362765 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x4b29cbbf w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0xfe1f7855 w1_ds2781_io +EXPORT_SYMBOL drivers/w1/wire 0x3e0466fe w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x6ed99b42 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x8a688eb0 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x9642eb24 w1_unregister_family +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xb5f20875 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xc4f657bf iTCO_vendor_pre_stop +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xdc6effc9 iTCO_vendor_pre_start +EXPORT_SYMBOL fs/btrfs/btrfs 0x27476846 ulist_reinit +EXPORT_SYMBOL fs/btrfs/btrfs 0x41e6a9d2 ulist_init +EXPORT_SYMBOL fs/btrfs/btrfs 0x7e2ee765 ulist_free +EXPORT_SYMBOL fs/btrfs/btrfs 0xa2eec2e8 ulist_fini +EXPORT_SYMBOL fs/btrfs/btrfs 0xb1320bc8 ulist_add +EXPORT_SYMBOL fs/btrfs/btrfs 0xb42289d2 ulist_alloc +EXPORT_SYMBOL fs/btrfs/btrfs 0xc2c745db ulist_next +EXPORT_SYMBOL fs/configfs/configfs 0x0a8e61d7 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x17ceb08a config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x3c7636ea config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x479753f1 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x68d1fa55 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x7bfe0e0a config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x9a900a6d configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x9ba0b2bc configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xded585cc configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xdff03111 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xeb9d1ba0 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xed4aa8e1 config_item_set_name +EXPORT_SYMBOL fs/exofs/libore 0x051bf84b ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0x09e826e2 ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0x0bf0f50f ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0x0c27f12d ore_remove +EXPORT_SYMBOL fs/exofs/libore 0x0e3fb60e ore_create +EXPORT_SYMBOL fs/exofs/libore 0x0ee6ed4d extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x43c1af4d ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0x4527e170 ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x811341f7 ore_read +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xbba9b781 ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0xc8f666d4 ore_write +EXPORT_SYMBOL fs/fscache/fscache 0x00b986ac fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x0117b6ed __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x01adcb57 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x0fa6a811 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x1b1c82fa fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x21445e2d fscache_object_init +EXPORT_SYMBOL fs/fscache/fscache 0x34489c59 __fscache_readpages_cancel +EXPORT_SYMBOL fs/fscache/fscache 0x3d9de81f fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x3ee6307e fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x4acaf934 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x51755689 __fscache_check_consistency +EXPORT_SYMBOL fs/fscache/fscache 0x6841f613 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x6dcb2a07 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x6eed5917 fscache_object_destroy +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x76294adb fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x7985df6a fscache_mark_page_cached +EXPORT_SYMBOL fs/fscache/fscache 0x7cb1245a __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x7e72ab51 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x837a7bd2 fscache_op_complete +EXPORT_SYMBOL fs/fscache/fscache 0x88df7313 __fscache_enable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x8e546f88 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x927799d2 __fscache_wait_on_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0xa4c0f7aa fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xaa8d15bf fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xabf99e07 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xb8ff1d20 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xbe68d1e9 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xcc547fa6 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xccf0786d __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xcd3c976c fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0xce92fd4e __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xd755d727 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0xda8fea41 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xe2008fc1 __fscache_disable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xe74bdba6 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0xe80d7bec __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0xfe87a285 fscache_io_error +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xa0f4b528 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0xb25b2957 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0xe13337f0 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x1891e776 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x65c920c5 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x6f3cc6f3 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x6fa352a8 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xe976a26e qtree_read_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x1a703ba1 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x6d356209 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc7 0x6c1f6fee crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd09b2cba crc8 +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x0f0f1605 lc_del +EXPORT_SYMBOL lib/lru_cache 0x2ae6a89a lc_put +EXPORT_SYMBOL lib/lru_cache 0x3b3372b4 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x41111725 lc_get +EXPORT_SYMBOL lib/lru_cache 0x44ec99ee lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x4645c85f lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x540b1697 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x577252ab lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x57ff4d61 lc_is_used +EXPORT_SYMBOL lib/lru_cache 0x5dd01edd lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x62b86d70 lc_get_cumulative +EXPORT_SYMBOL lib/lru_cache 0x76b957fe lc_try_lock +EXPORT_SYMBOL lib/lru_cache 0x7afe19c6 lc_find +EXPORT_SYMBOL lib/lru_cache 0xa977668e lc_set +EXPORT_SYMBOL lib/lru_cache 0xb2deafbf lc_destroy +EXPORT_SYMBOL lib/lru_cache 0xbcdb24bd lc_committed +EXPORT_SYMBOL lib/lru_cache 0xfcc6da8d lc_create +EXPORT_SYMBOL lib/lz4/lz4_compress 0x0c222eb5 lz4_compress +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x682a23e0 lz4hc_compress +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/raid6/raid6_pq 0xd9e91f83 raid6_vgfmul +EXPORT_SYMBOL net/802/p8022 0x8aaa44f3 register_8022_client +EXPORT_SYMBOL net/802/p8022 0xc17b69a4 unregister_8022_client +EXPORT_SYMBOL net/802/p8023 0x26ac802d destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0x9da2e93f make_8023_client +EXPORT_SYMBOL net/802/psnap 0x400f8591 register_snap_client +EXPORT_SYMBOL net/802/psnap 0xd2bbeb65 unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x000750cb p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x078c7ff6 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x0daacef0 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x1a60ee38 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x239e3b72 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x254de3e6 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x2605be56 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x2cd4509a p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x2f0fc2aa p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x30760788 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x314a3c92 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x37a75521 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x3aeaa2d6 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x437e4c16 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x44d2c2c0 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x45f8df5a p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0x530418d7 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x5e40bb23 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x611480df p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x675123c6 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x67c6c199 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x6c90ccf6 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x6ce03f36 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x6dcb5bb7 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x75590a49 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x80eb62e2 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x838b28b9 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x89545468 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x8f13f076 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x9c0cb682 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xa5ba985f p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0xadeb1bef p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xb6f3ee59 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0xb8e5d375 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0xbd28ddd0 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xc7043f02 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0xc79515bb p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xd40871c0 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xd74861b8 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xdd98fe65 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xe3072df1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe9c698c5 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xeb0f165f p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0xfdfdbb99 p9_client_begin_disconnect +EXPORT_SYMBOL net/appletalk/appletalk 0x4db17e31 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x5fa218c5 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x91bd7a68 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x9337d52a alloc_ltalkdev +EXPORT_SYMBOL net/atm/atm 0x155d8c3c atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x3ed1cefd deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x4bef78ca vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x5cb8f1aa atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x63704a15 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x69400250 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x8953680c atm_charge +EXPORT_SYMBOL net/atm/atm 0x93136f41 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0x9dd779df atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa4ca36a3 vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xabd8746d atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xb5bf14f3 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xc6362daf atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0xd627882d register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x1c639904 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x1d0ee7d9 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x3afee63e ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x3d389b55 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x559318cc ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x55c32a4b ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xdecf1c09 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xe2160d9c ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xe5764316 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xfd02e01d ax25_hard_header +EXPORT_SYMBOL net/bluetooth/bluetooth 0x19fc89d7 __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1ab00680 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4ce82060 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5219d27d bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6a8b6b6e hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x72619b89 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c640527 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x85b7e211 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x882eae21 bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0x884e7a96 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8dc9a1e5 l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8e0366b5 l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x92567cfd hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x932364c2 bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0x971f31d1 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9cc127f0 l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9d360dc5 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa02bd01a bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa332a295 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa4c9eda3 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa7d65663 __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb1d50eb7 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb61a0c3b bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb70c2f91 bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc4dbb484 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd1eeb155 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd255e49e hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdedfd97d hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe1d1ed76 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0xea043966 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xea1ea9bc hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xeaa12ad1 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xebe33baf bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xed250499 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xee8c5c6a bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf573909e hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfad02958 l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfb6dbce8 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0xff0577cc bt_sock_unlink +EXPORT_SYMBOL net/bridge/bridge 0x6b51b590 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x1ead57ca ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x49d39d3e ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x981f3b1d ebt_unregister_table +EXPORT_SYMBOL net/caif/caif 0x09f5cd43 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x38701a7c cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x4fc1b3f8 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x6a44fc70 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x966d7de2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xa5cfdd98 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/caif/caif 0xe92563ea cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xf60fd480 caif_enroll_dev +EXPORT_SYMBOL net/can/can 0x4f11ffd2 can_proto_register +EXPORT_SYMBOL net/can/can 0x642e7ebc can_ioctl +EXPORT_SYMBOL net/can/can 0xac7b7b6f can_proto_unregister +EXPORT_SYMBOL net/can/can 0xbd67eba5 can_rx_register +EXPORT_SYMBOL net/can/can 0xd429d06d can_send +EXPORT_SYMBOL net/can/can 0xed1e27cf can_rx_unregister +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0b65f0d6 osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x0bf8622d osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x0c8fb921 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x0d61c270 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x11845f33 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x1475bf0d ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1ab051bc ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0x1d8a6067 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x1dde1077 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x20d151cb ceph_osdc_setup +EXPORT_SYMBOL net/ceph/libceph 0x221f62c1 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0x28627b89 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0x2b10d4ba ceph_messenger_init +EXPORT_SYMBOL net/ceph/libceph 0x2ec26223 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x2fbd216e osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0x3122a5d7 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x3232b405 ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x32a70dfb ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x36d670b9 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3c16de85 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x3dddd0f3 osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0x3df0ec7c ceph_calc_ceph_pg +EXPORT_SYMBOL net/ceph/libceph 0x3f688151 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x4080fc36 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0x41515b6b osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x41d9b282 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x4205ffd7 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x423adf2a ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x429723b7 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x43efd647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x48d782f3 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x4a283545 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x4b0c0411 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x4b47a7f1 ceph_auth_create_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x4e45de47 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x55ce087e ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x570ceb67 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x58030c55 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x5979bae0 ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0x5fbebfa8 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x62fbdc4f ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x641aa8fa ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x65451a23 osd_req_op_cls_response_data +EXPORT_SYMBOL net/ceph/libceph 0x6918b681 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x6b2e3bcd ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x6c5d5ac1 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x6c791186 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0x6e92f85b ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x6e9e8fea ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x7168baf8 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x791a14c4 osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x7d0a3f29 ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x81eae1b6 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x8b96eccf osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x8cb028bf ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x93112ced ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x99e36571 ceph_osdc_cleanup +EXPORT_SYMBOL net/ceph/libceph 0x9a980b12 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0x9f9603ed ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0xa19ba678 osd_req_op_watch_init +EXPORT_SYMBOL net/ceph/libceph 0xae3515ba ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb3581740 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0xb37679d3 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0xb3b0e709 osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb92a5da9 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0xbb7f65f9 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xbc01f649 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xbe4edb5b ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0xbfb9d4ac ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0xc32b84b4 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc55de604 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xc89fe9a0 ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xce8d01eb osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xde4effa9 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0xdeea8e71 ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0xdefc9b02 ceph_auth_update_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xdf2eb4fb ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xe0ed25d6 osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0xe82c9c32 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0xed229339 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0xee7d4724 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0xefeb0975 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0xf29053c2 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0xf2fb247e ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xf5774cba ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0xfa9cb37e ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0xff9ea05d ceph_osdc_cancel_event +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x1e4a2bcd dccp_syn_ack_timeout +EXPORT_SYMBOL net/ieee802154/ieee802154 0x046420eb ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x09aa690d ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x17ea9ae9 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1ec942d8 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4de04586 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x60143955 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x705805f7 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7255d63d wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa0cf8a61 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc56e8dbc wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd27297fa wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf4680b5b wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xfa1a1781 wpan_phy_register +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x2a704f4a arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x36f57cac arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x3d3f795a arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x318e77f1 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x62e9dc9b ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xc4516e55 ipt_register_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x219a2d83 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xdb1d8d3f xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x102b17ca ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xe814259e ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x0184dc83 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x1075eec5 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x9cfa0fde ip6t_do_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x92d41064 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0xa0761565 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x508911e8 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xd35f3762 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x61ecb445 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x949da654 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9d44a461 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xafc575d2 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbd690036 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xcebe46d1 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd0da12cb ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf19ffecb ircomm_close +EXPORT_SYMBOL net/irda/irda 0x00305fbb irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x04607e45 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x09f58a8b hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0x110b8fdd irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x12db214b irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x144c53ec async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x180d47d8 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x1ea4edff irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x25077644 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x26e6b539 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x2f65c77c irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x3314d4d7 iriap_close +EXPORT_SYMBOL net/irda/irda 0x33cbe2c6 proc_irda +EXPORT_SYMBOL net/irda/irda 0x358e24f4 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x38177525 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x3b6d5f65 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x3fecdc8c irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x42a9904d irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x514ab47b irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x615ee918 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x66ef7db3 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x74ea19e2 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x76ef9f52 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7dabe31e hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x7fb81606 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x86b5f4ce hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x8705f01c irttp_dup +EXPORT_SYMBOL net/irda/irda 0x8829889f irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x8b69b459 hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0xa4548c32 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xacbb08be irlap_close +EXPORT_SYMBOL net/irda/irda 0xad66e1db hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc310cf21 hashbin_new +EXPORT_SYMBOL net/irda/irda 0xc4b41a28 irlap_open +EXPORT_SYMBOL net/irda/irda 0xc6ca61ce iriap_open +EXPORT_SYMBOL net/irda/irda 0xcf486d24 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xcf7b386b iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xd1ae6745 irias_find_object +EXPORT_SYMBOL net/irda/irda 0xd2f696a4 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0xd57045a8 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd944010b irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xfd53a9d9 irttp_disconnect_request +EXPORT_SYMBOL net/l2tp/l2tp_core 0x4e9b919f l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x02989791 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x2948dde8 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x352032e7 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x373ad482 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x7e5fd73c lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x956b14e9 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xb1a5b970 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xff95231a lapb_unregister +EXPORT_SYMBOL net/llc/llc 0x2d528a22 llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x3bbacc37 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x59f057d1 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x6269f16a llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x6c6cdb31 llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0xc50cccf6 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0xcf126f81 llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0xefb9e595 llc_sap_close +EXPORT_SYMBOL net/mac80211/mac80211 0x009376f2 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x05203d13 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0x06788ebd ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x08fa9845 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x0b895b08 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0x0d0018d0 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x0dcd761b ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x0e997216 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x11603311 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x11ba5d84 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x138168e7 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x1796deb8 ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x196f246c ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x1e7239ca __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x21a2ae71 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x279c70e9 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x29b3ca45 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x2dd616af ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x2e254de0 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x38725980 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x3c78434c ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x3d8245dc rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x40817a94 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x4b33a6dc ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x4e2f6d7a ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0x4f997100 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x545951cd ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x5c34f43d ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x5dc13aff ieee80211_csa_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x6e37ec2b ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x7169332f __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x7174c882 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x72b3d53b ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x73441f59 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x777fc94a ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x78213a1e ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x8289a326 ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x84d589e5 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x87c18a2d ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x88c6bc5a ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x8ca4c71f ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x93758710 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x968100fb ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x9c5e6334 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0x9d71c972 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x9e9c4b1c ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xa0f49047 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0xa1fc36c4 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa59a109c __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xad947c09 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xb30daed1 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xb3ea5857 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xb4e4fd29 ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0xb712e0bc ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xc6c7865b ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xcccafe99 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xd58978be ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0xd661012d wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xdab34b1c ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe951b518 ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0xebaed6f2 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xecc64ffd ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xefa6558f ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xf12f709a ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xf395de03 ieee80211_aes_cmac_calculate_k1_k2 +EXPORT_SYMBOL net/mac80211/mac80211 0xf5c3fea6 ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0xf902ebff ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xfe62a242 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xfe9dbd9c ieee80211_rate_control_register +EXPORT_SYMBOL net/mac802154/mac802154 0x1c8fd6f7 ieee802154_unregister_device +EXPORT_SYMBOL net/mac802154/mac802154 0x1dfce65f ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0x8bf8b982 ieee802154_free_device +EXPORT_SYMBOL net/mac802154/mac802154 0x9e83b4f0 ieee802154_register_device +EXPORT_SYMBOL net/mac802154/mac802154 0xcf156af0 ieee802154_alloc_device +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x110ea39e ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x37007c2a ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3cd3abed ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3f6afaee ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6e88973d register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x75e12f9e register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7f21bf57 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x95ba74e5 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9643d118 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9b165be2 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa6e87623 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb5d93faa ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xbeea8688 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd0d1b27c unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x59378649 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x7ceb3f3f nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xacf29920 __nf_ct_ext_add_length +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x827cc6a1 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x9ec62078 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/nf_nat 0x4b90ef4a nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0x60375532 nf_xfrm_me_harder +EXPORT_SYMBOL net/netfilter/nf_nat 0x6ca495f7 nf_nat_used_tuple +EXPORT_SYMBOL net/netfilter/nf_nat 0xb2b6fc80 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0xc0b23971 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0xe65cb430 nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/x_tables 0x0451486c xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x253e8b44 xt_compat_init_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x441e4c70 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x49aa6d9b xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x6d8ca74d xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x71383bf3 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x880ee6ff xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xa2c748a9 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xa610634d xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xdd49c9c5 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xf3f2b5d4 xt_unregister_matches +EXPORT_SYMBOL net/nfc/hci/hci 0x163c7fe6 nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x2ea6bd01 nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x388611cc nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0x3d0e9c59 nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x43028a27 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x59a06400 nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0x64736c03 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x6f101df8 nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x6f79671d nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0x78148609 nfc_hci_send_response +EXPORT_SYMBOL net/nfc/hci/hci 0x79d3732a nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0x83189a3b nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0xa69d58c9 nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0xacc506fa nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xb75be262 nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0xba19cdc7 nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0xbca0b4fd nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xbe294e9b nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0xe1ae38d1 nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0xf18ca1e8 nfc_hci_get_param +EXPORT_SYMBOL net/nfc/nci/nci 0x66cb9542 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0xa19aac2d nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0xa787f29e nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xbf31e046 nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0xbfffcf96 nci_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x0ab027f3 nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0x1099d253 nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0x1c2b8245 nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0x241fcd84 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0x283c247d nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x2e0a12b2 nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x414710ad nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0x43e820bf nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x47e8d0f9 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x4a8fb993 nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0x5a4b9410 nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x60df664a nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0x7153419f nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0x8ff22756 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x90eb8bf5 nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0xcd1ff7be nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0xd5f2fdd5 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0xe550cc52 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0xe8a797ea nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0xffa05087 nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc_digital 0x2b0bf3bd nfc_digital_unregister_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x9ef82d7b nfc_digital_free_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xae21373c nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xc7eac412 nfc_digital_register_device +EXPORT_SYMBOL net/phonet/phonet 0x0c3a2dd1 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x17054553 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x38048621 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x59baa83b pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x5c404ea0 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x62b09978 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x8d1ae5d4 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xea6887fb pn_skb_send +EXPORT_SYMBOL net/rds/rds 0x7505d413 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0295b63a rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x07856af7 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1122f1ba rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x25dee6f8 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2f8601de rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x60e4aae5 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x882b42c1 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9142fb20 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9be3c736 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa6db3d47 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc95a4a13 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xde45f1a4 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe568c59b rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf312f040 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf51ffe6b rxrpc_kernel_begin_call +EXPORT_SYMBOL net/sctp/sctp 0xc2c86447 sctp_do_peeloff +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x66de6ac3 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x684c39f0 gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xc54c125b gss_mech_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa5062b36 svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0x2a8d070e wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0x56b5d067 wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x09878b9d wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x09f673c3 cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x0c5b1a63 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x0d644d58 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x1093b973 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x11c82d77 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x1386539c cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0x140d7c36 cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x14696975 cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0x181c6178 cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19e03378 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x1e6cb1a3 cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x236b116b wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x25b35ef2 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x25cdfb4f freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x265b43c5 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x33369ec0 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x3c06d6a5 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x3ee31f7e cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x406a8302 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x4c3b5878 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x4c40b2fb ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x50cf4d78 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x521d79e3 cfg80211_inform_bss_width +EXPORT_SYMBOL net/wireless/cfg80211 0x52ae65c9 cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x537e3044 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x549ae50f ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x57b4dd26 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x5c089a3a wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x5c116629 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x68722c78 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6b980081 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x6d2e8969 cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x6d6cb9ad ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x700ed829 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x703d1e8e cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x70a90823 cfg80211_report_obss_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x73957ff1 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x752bd989 cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x7724f2bf wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x7c252e1b cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7f749a9d cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0x7f79230f cfg80211_inform_bss_width_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x80fb50b5 cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x82143cd1 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x834d8abf cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x876788db cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x929024f5 cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x931bb1ff cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x968025d3 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0xa1425906 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xaab2093b cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xb0fddb73 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xb1fac2de regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xb90489f4 cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xbc558524 cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xbd2d6490 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0xbe9bf4ce wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xc001c039 cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0xc15c8611 cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0xc1b4399e cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc8d695db cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xcab6c438 cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0xcf618a57 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0xd49d5185 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xd5d62c5f ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xd9e8c219 cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xdba126c1 reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0xe4ef9d9e cfg80211_roamed_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xe87b6898 cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0xea658f70 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xed795528 cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xee2341c4 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xee42db3c cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xf1ac8b50 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xf6a1c316 cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0xf826cc30 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x0a382dd4 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x0ab33705 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x15ca9a62 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x9be973ce lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe0ca3977 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0xe39280d2 lib80211_register_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x5e74304b ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x13086355 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6aa6723b snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xa5a621d0 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe20cc1f2 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x4bbd2a4d snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xbb754c2b snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x01b82065 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x0d2b74da snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2ceec35d snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x668570c0 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7f92860c snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb494afee snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xc7b2b6c2 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe0a50454 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xbc35d2d7 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x052b64e6 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x088431cf snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x102163db snd_card_register +EXPORT_SYMBOL sound/core/snd 0x16634daf snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x21b0eb9b snd_device_new +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x28090265 snd_card_unref +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x32e3e9de snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x342a2354 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x36a9343b snd_card_create +EXPORT_SYMBOL sound/core/snd 0x3957b2c7 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3b5fd63b snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x45c23efc snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x465783ae snd_device_free +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4b015768 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x5167cfad snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x589bffe9 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x61088797 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x6210d17e snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x66eabd15 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x73d5dd63 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x752d8473 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x7772f88f snd_component_add +EXPORT_SYMBOL sound/core/snd 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x8467efd0 snd_cards +EXPORT_SYMBOL sound/core/snd 0x85254ad4 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x85aa76b0 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x8a694e74 snd_card_free +EXPORT_SYMBOL sound/core/snd 0x8c6fe080 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x8e8a0c1c snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x9040f15e snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0031bd5 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0xa0ca7c9f snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xad364036 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0xb171f9c8 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb91b2558 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xbbdad648 snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xbc0fda51 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0xbc7090ff snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0xc5a00fcf snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0xc5a7d4e9 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xc5eaa1aa snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0xd54f5515 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xd709f176 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0xdc3ed40c snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xddb936ed snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0xe439cfec snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0xef5c2f06 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0xf4fba4f1 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0xfba10e47 snd_device_register +EXPORT_SYMBOL sound/core/snd 0xfe416e36 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0xfffd89db copy_from_user_toio +EXPORT_SYMBOL sound/core/snd-hwdep 0xa0038abd snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x06b310c9 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x0bd96594 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x5898dcba snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x9340cf9e snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0xbc98467d snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xca34c226 snd_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-page-alloc 0xf24634f6 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xf97371e6 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x0e25aead snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1fd4d333 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x20235971 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x2528d821 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x257c1199 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x314b2dc4 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x334f0e0e snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x33a0f72b snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x398f0adb snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3ce6a271 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x3cf0e2be snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x4069184d snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x4104dcd8 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x41c26285 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x5465211f snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x75021869 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x756b901d snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x76150593 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x806b0abe snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x834dc955 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x8e0c620a snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x90cbbad9 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0x94098ff8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0x9e1f370b snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xa07c2993 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xa2e8af5d snd_pcm_new_internal +EXPORT_SYMBOL sound/core/snd-pcm 0xa469183b snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa97ed849 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0xa9adc229 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xac2c2c73 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbe64ef3a snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xc095486b snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0xca6951d0 snd_pcm_debug_name +EXPORT_SYMBOL sound/core/snd-pcm 0xcd3beb97 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xcec574b4 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xd3782714 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xd54ff3db snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0xd68adb00 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0xd7f8dff1 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xdcd1a19b snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xdef3c428 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xe48b2062 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0xe49dde23 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe764d309 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xe9614968 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0xf37356c3 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xfa31d1d1 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0b70089b snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x16184230 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x29017399 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x34168fe4 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x357f2850 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3dbd5523 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x40178b43 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x439963c6 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x441a77db snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8b9f956b snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x947033cc snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa8b7a62f snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xad612b6a snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xcccf7365 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdceef4d9 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xedcd4909 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf5b721fb snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-timer 0x0712ae4e snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x09d1a254 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x0e67d317 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x21473748 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x2155ede8 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x27af901d snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x55debf2c snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x7ab1114b snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x8d3ea532 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xb8bfa734 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0xc179e71f snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xd9b5c99d snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0xfbc33841 snd_timer_open +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xbc0e26d8 snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x12e9720e snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1b64fffc snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1f619bdf snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4f195e31 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x748d43ee snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x95ee81aa snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xc259b3c0 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd539cc61 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf4741048 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x04161a0d snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x17405b02 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1f02d98b snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x2bffc347 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x62f9f7e0 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xac8e0264 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xbb39cec7 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xcbcbb82c snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xeac26515 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x09b73e1f cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0c6597bc fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1023ca3b amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x20254e45 amdtp_syt_intervals +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x48a69fa1 amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x582a425a amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x60010f6a amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x729860d5 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x75f5d434 amdtp_out_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x77508d72 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7bef49e7 cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x845f6cab fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x86a2cf03 cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x8abded12 fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x8b6b2d41 cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x99b02176 amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa3a0d9ad cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa9e56f73 iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xafd86e56 fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb0a2b412 amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xbbc4bb86 amdtp_out_stream_pcm_pointer +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xbbfc2adf amdtp_out_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe30bf3d7 snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xeadd5aa3 amdtp_out_stream_set_parameters +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xee5b3e42 iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf9daf0a8 fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xfd602024 amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x1de36184 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x2b8f9ff3 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x6eb713a6 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xadae9646 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xe11cdd1d snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf0f44150 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x09778b9a snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x14ad44c7 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x33502bc3 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x7f988891 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xaf30a94f snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xeec8ff02 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x097fd499 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x0bef7dad snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x4f40d50e snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xb07f1192 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x238d6d75 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x7cfea35c snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x6da0c143 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x720631a1 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x745e2c6e snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xaaf12e43 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xbf3c3f4d snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x3368e4e4 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x4211830e snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xbaa0ed1c snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xdab6ac3f snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0xdcf8d5f6 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xecac51a9 snd_i2c_device_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x198b0350 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2af9a893 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x537894f2 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5e4b1c68 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x75814b07 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x90d590ca snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x99d85354 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9acedc28 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xd2727bf0 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf1541e2e snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x4a2bd850 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x69979af9 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xd7152d07 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe0b3f690 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0d2c5f08 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x14e1729c snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x20815133 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x362654fc snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3720816b snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3f8b921f snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5ea5e78c snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x692a0e01 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x71ab5de6 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x833b8f6a snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x915c504c snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa6286fa4 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb4fa3f23 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc19d6084 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd3751a28 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe7518d7e snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf352a18e snd_ac97_mixer +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xf8630382 hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x06bf0959 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x21525fdc snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4008802e snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4847629b snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x84c51504 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x89d4cf6b snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xafc8eba8 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf9b7f2a7 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xfdbf4a8a snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x6462aea4 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x8735cd95 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xe7ad0f1b snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x04bad5ca oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2041755d oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x24a39e09 oxygen_pci_pm +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2c3360d7 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x324bcf2b oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x359db207 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3fdf695a oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x452bae5b oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x46d076dd oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4788ea99 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7258fe15 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x73865e4e oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x802f37a8 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9bfdd83d oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xae15990b oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb916c886 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd7edc012 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdc67a2e0 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe103cadf oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf092749d oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x6a6b5d58 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x834b8f80 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x973ede61 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xcca9c101 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xe80dd518 snd_trident_start_voice +EXPORT_SYMBOL sound/soundcore 0x981287c8 sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x3efddc0b snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x714303bb snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x77e5c86f snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x96bdca37 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xb544b642 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xd5dd6264 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x36acfe25 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x4f6cf27e __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x714fa514 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x889a6a7a __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x89d66bd5 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xb5fb8270 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xc8e7360d snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf1bfd287 snd_util_mem_avail +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x8a27cbba snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 __symbol_put +EXPORT_SYMBOL vmlinux 0x00000000 alloc_pages_current +EXPORT_SYMBOL vmlinux 0x00000000 current_fs_time +EXPORT_SYMBOL vmlinux 0x00000000 d_tmpfile +EXPORT_SYMBOL vmlinux 0x00000000 do_sync_read +EXPORT_SYMBOL vmlinux 0x00000000 filp_close +EXPORT_SYMBOL vmlinux 0x00000000 finish_open +EXPORT_SYMBOL vmlinux 0x00000000 generic_getxattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_write_sync +EXPORT_SYMBOL vmlinux 0x00000000 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x00000000 in_group_p +EXPORT_SYMBOL vmlinux 0x00000000 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x00000000 iov_shorten +EXPORT_SYMBOL vmlinux 0x00000000 iterate_fd +EXPORT_SYMBOL vmlinux 0x00000000 ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 path_is_under +EXPORT_SYMBOL vmlinux 0x00000000 register_exec_domain +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout +EXPORT_SYMBOL vmlinux 0x00000000 sock_register +EXPORT_SYMBOL vmlinux 0x00000000 sys_close +EXPORT_SYMBOL vmlinux 0x00000000 task_nice +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x00000000 vm_brk +EXPORT_SYMBOL vmlinux 0x000996a8 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0x000fb553 dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x0036638d scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x004068de pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00af57e3 d_invalidate +EXPORT_SYMBOL vmlinux 0x00bf9f91 efi +EXPORT_SYMBOL vmlinux 0x00ea58c9 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x00f95dd8 tty_port_destroy +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0101d5b1 ip_idents_reserve +EXPORT_SYMBOL vmlinux 0x010f5417 do_splice_to +EXPORT_SYMBOL vmlinux 0x0144d09e __ps2_command +EXPORT_SYMBOL vmlinux 0x01505fb9 sk_free +EXPORT_SYMBOL vmlinux 0x015ddbdc wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a360f8 pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0x01a71a0c bio_alloc_pages +EXPORT_SYMBOL vmlinux 0x01b3125f blk_init_queue +EXPORT_SYMBOL vmlinux 0x020bfc1d ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x021aa6d7 netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x0236198f ps2_command +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x02395856 kfree_skb_list +EXPORT_SYMBOL vmlinux 0x0239d09a inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x026716f0 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x0294feed agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02a87a47 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x02d8cdcd key_put +EXPORT_SYMBOL vmlinux 0x02f89782 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x0304a40e max8998_update_reg +EXPORT_SYMBOL vmlinux 0x030bcba9 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x0313cd80 fbcon_rotate_cw +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x03477f5d __sock_create +EXPORT_SYMBOL vmlinux 0x03498156 cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x034f5834 udp_add_offload +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x0381d5e4 from_kprojid +EXPORT_SYMBOL vmlinux 0x0389b7cf swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x038a7220 key_validate +EXPORT_SYMBOL vmlinux 0x038dc27d inet_ioctl +EXPORT_SYMBOL vmlinux 0x0397b94e agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x03996773 security_inode_readlink +EXPORT_SYMBOL vmlinux 0x03a5d79f mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x03a88560 i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0x03b1b678 blk_run_queue +EXPORT_SYMBOL vmlinux 0x03bf9e5b kthread_stop +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03c89da4 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x03db8187 gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0x03ebda85 dns_query +EXPORT_SYMBOL vmlinux 0x03f257e4 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x040fd2be pci_clear_master +EXPORT_SYMBOL vmlinux 0x041c1a0c mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x04382065 empty_aops +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x04585fad skb_store_bits +EXPORT_SYMBOL vmlinux 0x0481df46 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048dce55 __inet6_hash +EXPORT_SYMBOL vmlinux 0x04901b72 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x04927208 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x049cb510 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x049e2976 sock_update_classid +EXPORT_SYMBOL vmlinux 0x04a6223b __idr_pre_get +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04e9f692 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04ea5d10 ksize +EXPORT_SYMBOL vmlinux 0x04f852fe devm_gpio_request +EXPORT_SYMBOL vmlinux 0x050877b9 dmi_first_match +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x05249199 bdget_disk +EXPORT_SYMBOL vmlinux 0x053eb9c3 register_shrinker +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x055c8559 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x0562db18 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x05702de7 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x0582bcf5 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x0593a99b init_timer_key +EXPORT_SYMBOL vmlinux 0x05acf135 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x05bec50d pci_get_subsys +EXPORT_SYMBOL vmlinux 0x05d527e7 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x05f0e70a __scsi_put_command +EXPORT_SYMBOL vmlinux 0x060570fb mutex_trylock +EXPORT_SYMBOL vmlinux 0x060a0965 from_kgid +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061f4039 acpi_get_table_with_size +EXPORT_SYMBOL vmlinux 0x06335a55 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x0658f8fa ip6_frag_match +EXPORT_SYMBOL vmlinux 0x06636ec0 tty_throttle +EXPORT_SYMBOL vmlinux 0x06797871 vm_stat +EXPORT_SYMBOL vmlinux 0x0679d9a2 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x067c9732 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x067d579a mmc_gpio_free_ro +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x0682b0d4 __devm_request_region +EXPORT_SYMBOL vmlinux 0x06893f3e tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x068bc5a5 netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x06ae4099 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x06c0dae5 __kernel_fpu_end +EXPORT_SYMBOL vmlinux 0x06c15e90 call_netdevice_notifiers_info +EXPORT_SYMBOL vmlinux 0x06c5882e skb_clone +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x070e7ad1 pci_platform_rom +EXPORT_SYMBOL vmlinux 0x0717ca90 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x072a6851 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x07302593 kern_path_mountpoint +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x075f02f8 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x07682087 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x0774b201 fbcon_set_rotate +EXPORT_SYMBOL vmlinux 0x07980e70 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07a8fb78 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d03bf2 security_path_unlink +EXPORT_SYMBOL vmlinux 0x07d6308a scsi_register_interface +EXPORT_SYMBOL vmlinux 0x07e2242e skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x080f7e55 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083158af cdrom_open +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x0842554a skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0x0846f59a cpu_info +EXPORT_SYMBOL vmlinux 0x0847951e misc_register +EXPORT_SYMBOL vmlinux 0x08552999 generic_file_open +EXPORT_SYMBOL vmlinux 0x085b5ce8 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x088f2f5d pagevec_lookup +EXPORT_SYMBOL vmlinux 0x0897287b acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x08d0374f set_disk_ro +EXPORT_SYMBOL vmlinux 0x08f64aa4 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x0906bbe0 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x092c83b8 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x094853c7 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x09516ed9 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x0954882f sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x095f976e skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x0961d3f8 devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x098431ba acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x098b6dac proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0992780d efi_enabled +EXPORT_SYMBOL vmlinux 0x099ea272 __sb_start_write +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c5f25d input_unregister_handler +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d07ed1 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09d906da dump_align +EXPORT_SYMBOL vmlinux 0x09d99d86 x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0x09e004ee put_disk +EXPORT_SYMBOL vmlinux 0x09e88842 inet_accept +EXPORT_SYMBOL vmlinux 0x0a0b5eca jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x0a214a6d ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x0a236935 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a2b0683 always_delete_dentry +EXPORT_SYMBOL vmlinux 0x0a41966f pipe_to_file +EXPORT_SYMBOL vmlinux 0x0a48a515 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0x0a576ceb __frontswap_test +EXPORT_SYMBOL vmlinux 0x0a5e8006 dma_common_mmap +EXPORT_SYMBOL vmlinux 0x0a770832 register_memory_notifier +EXPORT_SYMBOL vmlinux 0x0a82e148 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x0a8323a9 touch_atime +EXPORT_SYMBOL vmlinux 0x0a9b168d tty_port_close +EXPORT_SYMBOL vmlinux 0x0ab003c9 bd_set_size +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad0e67c idr_replace +EXPORT_SYMBOL vmlinux 0x0ad1d849 user_path_create +EXPORT_SYMBOL vmlinux 0x0ad3c104 skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b5e74a9 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b775f28 __seq_open_private +EXPORT_SYMBOL vmlinux 0x0b7867cc posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x0b847027 arp_find +EXPORT_SYMBOL vmlinux 0x0b8ada37 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x0b9218d6 genphy_setup_forced +EXPORT_SYMBOL vmlinux 0x0bbc5908 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x0bc3c522 setup_new_exec +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bcc03b9 kobject_get +EXPORT_SYMBOL vmlinux 0x0bd212bd pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0x0bd2fbe7 mapping_tagged +EXPORT_SYMBOL vmlinux 0x0c08da2c posix_test_lock +EXPORT_SYMBOL vmlinux 0x0c45fc96 vfs_lstat +EXPORT_SYMBOL vmlinux 0x0c58a8cd netdev_increment_features +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c6ef4f9 mmc_free_host +EXPORT_SYMBOL vmlinux 0x0c72aa28 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x0c78644b vga_switcheroo_get_client_state +EXPORT_SYMBOL vmlinux 0x0c79c6c1 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x0c7d1ec8 mmc_read_bkops_status +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c9a52f0 mnt_unpin +EXPORT_SYMBOL vmlinux 0x0ca73ec2 dev_load +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cac4343 spi_release_transport +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cc376a7 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x0cd8251d i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x0cdb7d12 __kernel_fpu_begin +EXPORT_SYMBOL vmlinux 0x0ce2dc3f neigh_event_ns +EXPORT_SYMBOL vmlinux 0x0ce900af blk_finish_plug +EXPORT_SYMBOL vmlinux 0x0d05f19b md_write_end +EXPORT_SYMBOL vmlinux 0x0d1488f5 amd_iommu_enable_device_erratum +EXPORT_SYMBOL vmlinux 0x0d1c0ea6 noop_qdisc +EXPORT_SYMBOL vmlinux 0x0d1fa0ec pskb_expand_head +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d490550 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d731d6d d_obtain_alias +EXPORT_SYMBOL vmlinux 0x0d7fc550 sock_from_file +EXPORT_SYMBOL vmlinux 0x0d894ef4 genphy_update_link +EXPORT_SYMBOL vmlinux 0x0d8cc318 sk_wait_data +EXPORT_SYMBOL vmlinux 0x0da0d6ca make_kuid +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dba8881 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x0debf06f i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x0e371eeb input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x0e4bfe8f generic_fillattr +EXPORT_SYMBOL vmlinux 0x0e65f7c5 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x0e6da44a set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x0e6fad42 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x0e76c640 vlan_untag +EXPORT_SYMBOL vmlinux 0x0e78808b agp_copy_info +EXPORT_SYMBOL vmlinux 0x0e863311 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x0e9ae4d6 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x0eccdb37 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0x0ed8cc7b acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x0eedbb08 simple_write_begin +EXPORT_SYMBOL vmlinux 0x0efcbb1b set_current_groups +EXPORT_SYMBOL vmlinux 0x0f0b3145 fbcon_rotate_ccw +EXPORT_SYMBOL vmlinux 0x0f0f0e9e generic_readlink +EXPORT_SYMBOL vmlinux 0x0f4c91ed ns_to_timespec +EXPORT_SYMBOL vmlinux 0x0f7c730d ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x0f8698ce inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb22618 netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fe590fa abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x0ff05d5a sk_dst_check +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ff32a85 dev_mc_init +EXPORT_SYMBOL vmlinux 0x102dc0a7 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x1055bb3d update_time +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x107be211 abort_creds +EXPORT_SYMBOL vmlinux 0x10c1918b md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x10c51301 input_grab_device +EXPORT_SYMBOL vmlinux 0x10ccfe31 seq_open +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f24cd5 request_firmware +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x111b655f __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x112ca2b5 vc_resize +EXPORT_SYMBOL vmlinux 0x113bde81 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x1159cfdb i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x119d9371 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x11a2bedf pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0x11a466ce twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0x11b93a22 dev_get_flags +EXPORT_SYMBOL vmlinux 0x11ba448f fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x11d055b6 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x11e2ec12 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x11e3eaa7 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x11fd03fe netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0x1208bc83 register_filesystem +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x120d67d4 unregister_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x12159e0b set_pages_x +EXPORT_SYMBOL vmlinux 0x1223f12b mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x12324b2a ip6_frag_init +EXPORT_SYMBOL vmlinux 0x1242a199 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x127d03b3 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x129c531d elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x129de341 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12a9b7ec ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x12bb11c7 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x12be4111 free_task +EXPORT_SYMBOL vmlinux 0x12c0349f tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x12d13913 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x12dfeb12 vprintk_emit +EXPORT_SYMBOL vmlinux 0x12eb39d1 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x12eb7418 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x1305d532 ucs2_strncmp +EXPORT_SYMBOL vmlinux 0x130cd308 md_error +EXPORT_SYMBOL vmlinux 0x1325af9c generic_make_request +EXPORT_SYMBOL vmlinux 0x13307fde vsscanf +EXPORT_SYMBOL vmlinux 0x1348760d ipmi_request_settime +EXPORT_SYMBOL vmlinux 0x134f2d09 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x1370a75a dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x137de093 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x138901bf i2c_release_client +EXPORT_SYMBOL vmlinux 0x13ac1d0b input_inject_event +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13e35ca6 dm_put_device +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13fcba85 filemap_fault +EXPORT_SYMBOL vmlinux 0x14057b76 tty_devnum +EXPORT_SYMBOL vmlinux 0x14073d62 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x14263389 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x143f0fd7 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x1451ed22 km_policy_expired +EXPORT_SYMBOL vmlinux 0x146c168e prepare_binprm +EXPORT_SYMBOL vmlinux 0x1472ee01 pci_bus_put +EXPORT_SYMBOL vmlinux 0x1498bd52 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x14d3dab5 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x14e8ea2d ___pskb_trim +EXPORT_SYMBOL vmlinux 0x1501d0d7 scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x150389d6 acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0x150822d3 security_path_chown +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x155b38a1 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x158acb55 register_md_personality +EXPORT_SYMBOL vmlinux 0x15b48617 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x15c009a2 __cleancache_invalidate_inode +EXPORT_SYMBOL vmlinux 0x15d80224 gen10g_restart_aneg +EXPORT_SYMBOL vmlinux 0x15e7a70a d_alloc +EXPORT_SYMBOL vmlinux 0x15f571ec blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x15fa8081 vc_cons +EXPORT_SYMBOL vmlinux 0x15ff82f5 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x1637ff0f _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x165628aa simple_transaction_release +EXPORT_SYMBOL vmlinux 0x165685c1 sock_create +EXPORT_SYMBOL vmlinux 0x165a4aab compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x16739225 blk_mq_init_commands +EXPORT_SYMBOL vmlinux 0x167c5967 print_hex_dump +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x168604e6 dquot_file_open +EXPORT_SYMBOL vmlinux 0x168f1082 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x16ad07bc d_find_any_alias +EXPORT_SYMBOL vmlinux 0x16b81f21 pci_find_bus +EXPORT_SYMBOL vmlinux 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL vmlinux 0x16f1dc27 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x1709e0ed bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x1744e1f6 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x174c78c3 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0x1757996a dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x177c0fbf follow_up +EXPORT_SYMBOL vmlinux 0x178fe851 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x1790d76b _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x17b1125d gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x17b64d09 dqstats +EXPORT_SYMBOL vmlinux 0x17b9a23b dentry_open +EXPORT_SYMBOL vmlinux 0x17be09e4 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x17c64002 ipmi_register_smi +EXPORT_SYMBOL vmlinux 0x17d9e8b2 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x17ecb63f __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x17f02873 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x17f68649 tcp_poll +EXPORT_SYMBOL vmlinux 0x183a51f6 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x18536a3b blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x188a3dfb timespec_trunc +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18b72573 register_kmmio_probe +EXPORT_SYMBOL vmlinux 0x18e35733 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x19444627 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x19494622 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x19586f24 phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x19628158 tty_mutex +EXPORT_SYMBOL vmlinux 0x1965d149 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x196bc459 pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x1975e314 register_netdev +EXPORT_SYMBOL vmlinux 0x199ae243 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b3c3ad nobh_write_begin +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19c0b28c compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x19df08bb netlink_set_err +EXPORT_SYMBOL vmlinux 0x19fa0c17 acpi_pm_device_run_wake +EXPORT_SYMBOL vmlinux 0x19fead14 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x1a086b83 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL vmlinux 0x1a12d699 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x1a3d0587 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a4eaa8a eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a702b1b dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x1a89f754 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x1a91e6d8 inet6_unregister_icmp_sender +EXPORT_SYMBOL vmlinux 0x1ab953ca bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL vmlinux 0x1ac5d3cb strcspn +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae14ef5 _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x1ae2c889 proc_symlink +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b1e1088 sg_nents +EXPORT_SYMBOL vmlinux 0x1b224d23 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x1b353088 clk_register_clkdevs +EXPORT_SYMBOL vmlinux 0x1b4253c1 free_xenballooned_pages +EXPORT_SYMBOL vmlinux 0x1b52516f __genl_register_family +EXPORT_SYMBOL vmlinux 0x1b56d155 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x1b570d23 acpi_warning +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b803cda from_kuid_munged +EXPORT_SYMBOL vmlinux 0x1b82fefa md_unplug +EXPORT_SYMBOL vmlinux 0x1b896ff4 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9904f4 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1ba093d2 phy_device_create +EXPORT_SYMBOL vmlinux 0x1ba6e1a3 tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0x1bc329f3 fb_get_mode +EXPORT_SYMBOL vmlinux 0x1bdc26cf sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x1beb69ce bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x1c2ff87d __brelse +EXPORT_SYMBOL vmlinux 0x1c560ac3 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x1c5fe273 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x1c6ae7ad skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1c9e7199 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x1ca40999 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x1cc89d42 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x1cde0c5b remap_pfn_range +EXPORT_SYMBOL vmlinux 0x1cee77aa sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x1d125ece nf_setsockopt +EXPORT_SYMBOL vmlinux 0x1d1c73b1 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x1d233f21 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x1d6dd53e security_d_instantiate +EXPORT_SYMBOL vmlinux 0x1d6fc9ed blk_mq_map_queue +EXPORT_SYMBOL vmlinux 0x1d7acb6b cont_write_begin +EXPORT_SYMBOL vmlinux 0x1db1a808 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0x1db6f5cc mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x1db7706b __copy_user_nocache +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dcffd24 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de74f72 acpi_execute_simple_method +EXPORT_SYMBOL vmlinux 0x1deb4729 blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0x1e047854 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e0e8623 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x1e13bf94 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e51e955 vga_switcheroo_init_domain_pm_ops +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e87b9e7 registered_fb +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1eae4ac3 __bread +EXPORT_SYMBOL vmlinux 0x1ec3bed9 hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x1ec4eb34 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x1eca399c __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x1ed8d0da napi_gro_receive +EXPORT_SYMBOL vmlinux 0x1eecf3fc mutex_unlock +EXPORT_SYMBOL vmlinux 0x1f355f57 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x1f42de2d blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x1f6ce67a sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x1f7ca874 find_or_create_page +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fe912f1 netdev_alloc_frag +EXPORT_SYMBOL vmlinux 0x1fe9f800 unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20092385 acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x2021c348 kobject_add +EXPORT_SYMBOL vmlinux 0x203d1950 blk_free_tags +EXPORT_SYMBOL vmlinux 0x2044aea7 amd_iommu_pc_get_max_banks +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x20558d4e i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x205f1d98 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x2079bdb9 tty_lock_pair +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20893696 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x208a28f0 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x20a253d7 inet_getname +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20abc15b acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0x20b2bb2d param_array_ops +EXPORT_SYMBOL vmlinux 0x20b87bba jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x20c55ae0 sscanf +EXPORT_SYMBOL vmlinux 0x20d29eec pci_find_capability +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x20f41ebc blk_get_request +EXPORT_SYMBOL vmlinux 0x21013560 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x21095711 elevator_change +EXPORT_SYMBOL vmlinux 0x210b9dab __lock_page +EXPORT_SYMBOL vmlinux 0x2116112b fail_migrate_page +EXPORT_SYMBOL vmlinux 0x211b75b7 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x21232ee3 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x2135a81a padata_add_cpu +EXPORT_SYMBOL vmlinux 0x21384b76 __frontswap_store +EXPORT_SYMBOL vmlinux 0x213dd07b pci_read_vpd +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x216d17f0 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x217dda13 flex_array_get +EXPORT_SYMBOL vmlinux 0x21905b0c submit_bh +EXPORT_SYMBOL vmlinux 0x219e5dd2 lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0x21ba3c7a generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x21dfa4c9 mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21e1e118 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x21f7626c jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x21f95b7f sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x21fca33b ip_ct_attach +EXPORT_SYMBOL vmlinux 0x21fdead6 keyring_clear +EXPORT_SYMBOL vmlinux 0x22080b62 blkdev_issue_write_same +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x223a599f inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x223cd6a8 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x224af7af get_write_access +EXPORT_SYMBOL vmlinux 0x225639b1 mpage_readpages +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x22824d51 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x229681a2 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x22afbd8f pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x22b1e21a drop_nlink +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22b43171 get_fs_type +EXPORT_SYMBOL vmlinux 0x22fb8b61 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x22fd9ad0 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x23590f6a try_module_get +EXPORT_SYMBOL vmlinux 0x237fb02f scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x23854fa2 update_devfreq +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23bcf19f pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23c9891c kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x23cd4785 nf_log_register +EXPORT_SYMBOL vmlinux 0x23e2fb6a dm_io +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24196c32 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x24212d86 __frontswap_invalidate_page +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x24513cc5 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x2468ed53 __pskb_copy +EXPORT_SYMBOL vmlinux 0x2472e513 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x2484adc3 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0x248c273b ida_remove +EXPORT_SYMBOL vmlinux 0x24903aa7 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x24a59fec pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x24ad7ebd jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x24babcbd generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x24c6a241 freezing_slow_path +EXPORT_SYMBOL vmlinux 0x24c6e998 dev_deactivate +EXPORT_SYMBOL vmlinux 0x24d28266 __f_setown +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250b0823 netdev_crit +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x2528eec8 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x252d9bd4 bdev_read_only +EXPORT_SYMBOL vmlinux 0x252f855e pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x254323dc tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x2544a76a dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0x254dcbf1 kernel_bind +EXPORT_SYMBOL vmlinux 0x256b4fd5 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258bee07 netdev_change_features +EXPORT_SYMBOL vmlinux 0x25965ef7 inet6_del_offload +EXPORT_SYMBOL vmlinux 0x259e1402 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x25c60454 find_vma +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x2607116b posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x2609ac8a page_symlink +EXPORT_SYMBOL vmlinux 0x2626fe7c mmc_request_done +EXPORT_SYMBOL vmlinux 0x262cc6b4 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x263122f8 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x263a79b0 agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x2650d835 sysctl_ip_early_demux +EXPORT_SYMBOL vmlinux 0x265e27cb xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x2665d53a key_create_or_update +EXPORT_SYMBOL vmlinux 0x2680ab2e inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x2682acc6 redraw_screen +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x268f1b70 touch_buffer +EXPORT_SYMBOL vmlinux 0x26948d96 copy_user_enhanced_fast_string +EXPORT_SYMBOL vmlinux 0x26bcf750 path_put +EXPORT_SYMBOL vmlinux 0x26c4cf2e swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x26dfe689 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x26e298e0 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f0453a blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x27004916 security_path_rename +EXPORT_SYMBOL vmlinux 0x2712f4f5 crc32_le_combine +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x2733247d pcim_iomap +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x274e1cb8 phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x2761b692 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x2764f57d dump_trace +EXPORT_SYMBOL vmlinux 0x2766a810 genphy_suspend +EXPORT_SYMBOL vmlinux 0x2772bb01 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27999e3f scsi_print_command +EXPORT_SYMBOL vmlinux 0x279aa6a4 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x279c8b7a bio_put +EXPORT_SYMBOL vmlinux 0x27ae7d0c ec_transaction +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27e75587 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x2802dacb tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x282111ed gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x2826db4d dma_pool_create +EXPORT_SYMBOL vmlinux 0x282c1608 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x28318305 snprintf +EXPORT_SYMBOL vmlinux 0x284b4342 pci_choose_state +EXPORT_SYMBOL vmlinux 0x28564d78 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x285f22f1 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x287a8ab0 __skb_gso_segment +EXPORT_SYMBOL vmlinux 0x287d21af phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x289211a0 simple_link +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28abfe6e scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x28b2185d pci_bus_get +EXPORT_SYMBOL vmlinux 0x28e39841 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x28fe2acf kill_pid +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29640198 md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0x2970ea9c pci_set_ltr +EXPORT_SYMBOL vmlinux 0x29bf208a i2c_clients_command +EXPORT_SYMBOL vmlinux 0x29f32298 __register_chrdev +EXPORT_SYMBOL vmlinux 0x29f43d96 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x29f4bbbd file_ns_capable +EXPORT_SYMBOL vmlinux 0x29f9079a zero_fill_bio +EXPORT_SYMBOL vmlinux 0x29fa1d4b agp_free_memory +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a3f7d97 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x2a4d804d security_path_link +EXPORT_SYMBOL vmlinux 0x2a597ce8 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x2a6e6109 __init_rwsem +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2a80c5f0 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x2a8bb606 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x2abb43fa tc_classify +EXPORT_SYMBOL vmlinux 0x2ac69cbf ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x2acf0feb vfs_fstat +EXPORT_SYMBOL vmlinux 0x2adefbf2 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x2ae0493c shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x2ae526c6 netdev_lower_dev_get_private_rcu +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b19ea38 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x2b1e527c __ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x2b2629a0 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b49120c tty_hangup +EXPORT_SYMBOL vmlinux 0x2b51837e proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x2b543c8c neigh_direct_output +EXPORT_SYMBOL vmlinux 0x2b5e6131 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x2b65dfde max8998_read_reg +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba1857c dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bc5a3fa __module_get +EXPORT_SYMBOL vmlinux 0x2bca4413 flush_signals +EXPORT_SYMBOL vmlinux 0x2bce2d60 devfreq_interval_update +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c0b614f kmalloc_dma_caches +EXPORT_SYMBOL vmlinux 0x2c22ea82 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c2bbd54 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x2c350605 vga_switcheroo_set_dynamic_switch +EXPORT_SYMBOL vmlinux 0x2c803138 input_event +EXPORT_SYMBOL vmlinux 0x2c8e9245 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x2c900d91 cpufreq_put_global_kobject +EXPORT_SYMBOL vmlinux 0x2ca319a6 wrmsrl_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x2ccb6122 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x2ccffd69 blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x2cd03ccb md_check_recovery +EXPORT_SYMBOL vmlinux 0x2cd8ffb1 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x2ce39de9 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x2cf73cb7 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x2cf90492 unregister_netdev +EXPORT_SYMBOL vmlinux 0x2d03c10d posix_acl_create +EXPORT_SYMBOL vmlinux 0x2d0949e7 pci_enable_ido +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d144e21 rdmsrl_on_cpu +EXPORT_SYMBOL vmlinux 0x2d2e6945 mntput +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d50f35d dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x2d571a21 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x2d693c23 sock_create_lite +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2daaaba9 param_get_byte +EXPORT_SYMBOL vmlinux 0x2db55fb4 sock_rfree +EXPORT_SYMBOL vmlinux 0x2db99167 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2deda4a1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2e0d2f7f queue_work_on +EXPORT_SYMBOL vmlinux 0x2e151774 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e2b40d2 strncat +EXPORT_SYMBOL vmlinux 0x2e2c0436 input_allocate_device +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e3246bf jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x2e4684d0 n_tty_compat_ioctl_helper +EXPORT_SYMBOL vmlinux 0x2e51c74e dev_set_group +EXPORT_SYMBOL vmlinux 0x2e5a704c udp_table +EXPORT_SYMBOL vmlinux 0x2e63013c d_add_ci +EXPORT_SYMBOL vmlinux 0x2e770a06 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0x2e7f1329 __bforget +EXPORT_SYMBOL vmlinux 0x2e8ec91c generic_removexattr +EXPORT_SYMBOL vmlinux 0x2e9993ee mdiobus_register +EXPORT_SYMBOL vmlinux 0x2ea543e1 seq_lseek +EXPORT_SYMBOL vmlinux 0x2eda7e64 devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2efd8ab4 tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f1a6e37 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x2f2b36ff d_splice_alias +EXPORT_SYMBOL vmlinux 0x2f34aa5a mpage_writepage +EXPORT_SYMBOL vmlinux 0x2f384db3 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x2fb3750c on_each_cpu_mask +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fb76adf compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x2fb7f23b del_gendisk +EXPORT_SYMBOL vmlinux 0x2fd902bb mount_bdev +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2ff063b5 acpi_get_name +EXPORT_SYMBOL vmlinux 0x3000a3b7 inode_reclaim_rsv_space +EXPORT_SYMBOL vmlinux 0x30173ae5 mmc_add_host +EXPORT_SYMBOL vmlinux 0x301d3061 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x30207345 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x303d9d3a seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x30616291 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x306cade5 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x308cb7df tcf_exts_change +EXPORT_SYMBOL vmlinux 0x309bd804 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30ae87b7 iget5_locked +EXPORT_SYMBOL vmlinux 0x30b57786 __memcg_kmem_get_cache +EXPORT_SYMBOL vmlinux 0x30c39ffd phy_device_free +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30e73776 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30e8523b udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x3102d70b frontswap_curr_pages +EXPORT_SYMBOL vmlinux 0x3111f6be generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x31255838 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x314f8dee pci_get_slot +EXPORT_SYMBOL vmlinux 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x316eff07 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x316fe32a load_nls +EXPORT_SYMBOL vmlinux 0x318cadb1 reciprocal_value +EXPORT_SYMBOL vmlinux 0x3191702a neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x319c02b1 mmc_can_reset +EXPORT_SYMBOL vmlinux 0x319c3e35 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x319e0726 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31d182d2 vfs_rename +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31ef2508 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x3202435a wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x32067010 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x320c2da8 __destroy_inode +EXPORT_SYMBOL vmlinux 0x322f48d4 abx500_dump_all_banks +EXPORT_SYMBOL vmlinux 0x32300f22 mdiobus_free +EXPORT_SYMBOL vmlinux 0x323fb74f write_one_page +EXPORT_SYMBOL vmlinux 0x32593829 save_mount_options +EXPORT_SYMBOL vmlinux 0x326425ca pci_unmap_biosrom +EXPORT_SYMBOL vmlinux 0x3264c504 account_page_dirtied +EXPORT_SYMBOL vmlinux 0x328269ce dquot_operations +EXPORT_SYMBOL vmlinux 0x32922ca9 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0x32c19257 fb_show_logo +EXPORT_SYMBOL vmlinux 0x32c1dc67 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x32dbfe03 input_set_abs_params +EXPORT_SYMBOL vmlinux 0x32debb16 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x32e834af input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x32eeaded _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x33188908 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x333cb37c __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x3341e181 input_set_keycode +EXPORT_SYMBOL vmlinux 0x3341fcac ipmi_smi_watcher_register +EXPORT_SYMBOL vmlinux 0x33479f40 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x334f7257 free_netdev +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33ba5cd4 param_ops_bool +EXPORT_SYMBOL vmlinux 0x33bdba38 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x33c7435c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33f3b555 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x33fcf44a __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x33fd818d tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x34184afe current_kernel_time +EXPORT_SYMBOL vmlinux 0x341cbed2 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x34339df7 load_nls_default +EXPORT_SYMBOL vmlinux 0x343b4465 set_pages_uc +EXPORT_SYMBOL vmlinux 0x344e9af4 __idr_get_new_above +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x347eb9bd param_set_bool +EXPORT_SYMBOL vmlinux 0x34927213 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x34998e1c gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x349e16c1 acpi_device_hid +EXPORT_SYMBOL vmlinux 0x34bf54e9 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x34d19715 amd_iommu_domain_set_gcr3 +EXPORT_SYMBOL vmlinux 0x34e21dc0 register_sysctl +EXPORT_SYMBOL vmlinux 0x34f22f94 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x34fad59e input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x350ea5c5 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x351dfa9d input_free_device +EXPORT_SYMBOL vmlinux 0x351f684f bdi_register +EXPORT_SYMBOL vmlinux 0x35225ea3 down_write_trylock +EXPORT_SYMBOL vmlinux 0x352af1d6 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x3539f11b match_strlcpy +EXPORT_SYMBOL vmlinux 0x353e21e3 acpi_bios_warning +EXPORT_SYMBOL vmlinux 0x3565e072 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x35738b7c gen_pool_dma_alloc +EXPORT_SYMBOL vmlinux 0x3583240c devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0x35c34cc5 pci_request_region +EXPORT_SYMBOL vmlinux 0x35d18799 inet_shutdown +EXPORT_SYMBOL vmlinux 0x35defc50 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x35fe60dd ata_link_printk +EXPORT_SYMBOL vmlinux 0x36010cf1 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x36015a8e abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x360b8d16 x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x3612b07c register_nls +EXPORT_SYMBOL vmlinux 0x361bae00 thaw_super +EXPORT_SYMBOL vmlinux 0x36222692 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x362928a8 __get_user_pages +EXPORT_SYMBOL vmlinux 0x3648c5dc qdisc_reset +EXPORT_SYMBOL vmlinux 0x3679b0d0 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x36819a38 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x36899eed agp_put_bridge +EXPORT_SYMBOL vmlinux 0x369e1115 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x36bb9fe3 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x36bd681b groups_alloc +EXPORT_SYMBOL vmlinux 0x36bebf4d inet_add_protocol +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x37463cc6 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x3766b5f5 devm_ioremap +EXPORT_SYMBOL vmlinux 0x37926617 sg_miter_stop +EXPORT_SYMBOL vmlinux 0x37bdafa6 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c39189 dcb_setapp +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37f0ca4c compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x37f80ad3 tcf_em_register +EXPORT_SYMBOL vmlinux 0x38099e13 wrmsrl_on_cpu +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x382e00e1 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x382e7eb9 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x38620957 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x38694636 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x389bfe0d rtc_lock +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38f33bed dump_fpu +EXPORT_SYMBOL vmlinux 0x38f46e65 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x3928efe9 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x394e2820 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0x3955fcf6 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x399ad043 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x39a055f3 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x39b1bb48 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x39bb372f dq_data_lock +EXPORT_SYMBOL vmlinux 0x39c43cf2 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x39c8715c kill_pgrp +EXPORT_SYMBOL vmlinux 0x39cc4a78 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x39f66767 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x39feeefc give_up_console +EXPORT_SYMBOL vmlinux 0x3a08475f platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x3a0dbb94 pnp_is_active +EXPORT_SYMBOL vmlinux 0x3a20ff73 __crc32c_le +EXPORT_SYMBOL vmlinux 0x3a27a1d0 netlink_ack +EXPORT_SYMBOL vmlinux 0x3a2f93a3 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x3a31a76f nonseekable_open +EXPORT_SYMBOL vmlinux 0x3a32839e intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x3a438841 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x3a92936e sock_update_memcg +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3abe099e wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x3acaad0d lookup_one_len +EXPORT_SYMBOL vmlinux 0x3ad2bb03 ata_port_printk +EXPORT_SYMBOL vmlinux 0x3ad70152 ps2_init +EXPORT_SYMBOL vmlinux 0x3ae2371a inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x3b1acf18 __find_get_block +EXPORT_SYMBOL vmlinux 0x3b35d11f ip6_xmit +EXPORT_SYMBOL vmlinux 0x3b4ceb4a up_write +EXPORT_SYMBOL vmlinux 0x3b5f0043 bio_init +EXPORT_SYMBOL vmlinux 0x3b84aa0b sk_reset_timer +EXPORT_SYMBOL vmlinux 0x3ba8ed06 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x3bb83703 eth_header_parse +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd558e9 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x3bd80144 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x3beb690b lg_local_unlock +EXPORT_SYMBOL vmlinux 0x3bef03b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x3befbe18 block_write_end +EXPORT_SYMBOL vmlinux 0x3bfcd11a jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x3c05a768 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x3c479cb9 do_truncate +EXPORT_SYMBOL vmlinux 0x3c70edc8 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c961a75 __i2c_transfer +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3ca1a42c file_remove_suid +EXPORT_SYMBOL vmlinux 0x3cd6f965 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d04bdc3 kset_unregister +EXPORT_SYMBOL vmlinux 0x3d1a53c8 led_blink_set +EXPORT_SYMBOL vmlinux 0x3d3e0447 netdev_state_change +EXPORT_SYMBOL vmlinux 0x3d49e047 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x3d4fae97 scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x3d582493 cdev_add +EXPORT_SYMBOL vmlinux 0x3d5844b3 strnicmp +EXPORT_SYMBOL vmlinux 0x3d5b98ac pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0x3d666c97 finish_no_open +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d86ac65 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3da71756 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x3da97bef generic_writepages +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dcf7a2b tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x3df6bf3c dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x3df8acd7 generic_write_end +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e030fdc blk_put_request +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e3b8599 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x3e5aff2b tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x3e5d7e3f blk_queue_max_write_same_sectors +EXPORT_SYMBOL vmlinux 0x3e842e9e module_refcount +EXPORT_SYMBOL vmlinux 0x3e8527ed devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e8f009f dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x3e8f2641 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ea0773c ida_get_new_above +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee4abfa netpoll_setup +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f35a295 simple_setattr +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f71faa1 mempool_create +EXPORT_SYMBOL vmlinux 0x3f74754b scsi_finish_command +EXPORT_SYMBOL vmlinux 0x3f79fa82 input_register_handler +EXPORT_SYMBOL vmlinux 0x3f9fca48 pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0x3fba14a0 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x3fe2ccbe memweight +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x4022684d register_netdevice +EXPORT_SYMBOL vmlinux 0x40256835 complete_all +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x403964d5 irq_set_chip +EXPORT_SYMBOL vmlinux 0x4040e047 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x405af52d tcf_hash_release +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x406f0629 spi_dv_device +EXPORT_SYMBOL vmlinux 0x40735b3c set_bdi_congested +EXPORT_SYMBOL vmlinux 0x40751186 iterate_supers_type +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a2350e vga_put +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a4cf5c mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40bef3b5 create_syslog_header +EXPORT_SYMBOL vmlinux 0x40c01859 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x40c5d2df blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40c90258 phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d167c7 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL vmlinux 0x411565e7 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x412ad90d tty_port_init +EXPORT_SYMBOL vmlinux 0x4135c1a6 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x4138ecae tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x413b5620 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414d6b04 mount_nodev +EXPORT_SYMBOL vmlinux 0x41540b6e tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x415fa6c5 generic_listxattr +EXPORT_SYMBOL vmlinux 0x4165df72 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x417eaf4f mmc_get_card +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x4189d548 do_splice_from +EXPORT_SYMBOL vmlinux 0x4197fa53 simple_rmdir +EXPORT_SYMBOL vmlinux 0x41c84b96 md_flush_request +EXPORT_SYMBOL vmlinux 0x41dfe427 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x41ec1e0d __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x41f7f45b __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x420029c5 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x420f75c6 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x422d976b agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x42350e8d ucs2_strlen +EXPORT_SYMBOL vmlinux 0x423b776a ipmi_create_user +EXPORT_SYMBOL vmlinux 0x42538ab5 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x4269c0af scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x42768e16 mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0x4283a265 kern_path +EXPORT_SYMBOL vmlinux 0x429598b1 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a1b208 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x42a8cbc8 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x42b2fcb6 lock_may_write +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42d7046e neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43261dca _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0x433bcb32 clk_get +EXPORT_SYMBOL vmlinux 0x434d5d6a pcim_iounmap +EXPORT_SYMBOL vmlinux 0x434fdd90 tty_port_put +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x43785628 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x4388a127 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x43adaacd fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x43ce7f54 skb_flow_dissect +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x43ffd2b6 blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0x4411c503 prandom_seed +EXPORT_SYMBOL vmlinux 0x4436f96d stop_tty +EXPORT_SYMBOL vmlinux 0x4442e1df pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x4450c6dd bio_add_page +EXPORT_SYMBOL vmlinux 0x445da259 ip_route_input_noref +EXPORT_SYMBOL vmlinux 0x446d2832 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x446dee2b __nla_reserve +EXPORT_SYMBOL vmlinux 0x4476e9e2 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x448eac3e kmemdup +EXPORT_SYMBOL vmlinux 0x4494e65f mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x449ad0a7 memcmp +EXPORT_SYMBOL vmlinux 0x44a81d5f acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44e6ecc8 ida_simple_get +EXPORT_SYMBOL vmlinux 0x44e7d660 fb_pan_display +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44fd57e5 thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x45044497 percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x45081703 ec_get_handle +EXPORT_SYMBOL vmlinux 0x450d7963 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x452944ba sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x453ddfad tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x45495044 pnp_get_resource +EXPORT_SYMBOL vmlinux 0x454dc4a2 netdev_notice +EXPORT_SYMBOL vmlinux 0x455c78f4 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x45744f6e compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x45883707 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x45883987 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x45a6be13 cpufreq_sysfs_remove_file +EXPORT_SYMBOL vmlinux 0x45a765cf pci_add_resource +EXPORT_SYMBOL vmlinux 0x45ba5804 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x45c0d9c9 truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x45c92723 idr_destroy +EXPORT_SYMBOL vmlinux 0x45fc4ada pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x45ff592d pci_select_bars +EXPORT_SYMBOL vmlinux 0x46093717 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x460e13ed fs_bio_set +EXPORT_SYMBOL vmlinux 0x461ac773 kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x4629334c __preempt_count +EXPORT_SYMBOL vmlinux 0x463647e8 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x465459c8 tty_unlock +EXPORT_SYMBOL vmlinux 0x4657af67 sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0x46595008 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0x465cab34 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x46608fa0 getnstimeofday +EXPORT_SYMBOL vmlinux 0x466249cb read_cache_pages +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x46762bb9 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x4685bcdb tty_kref_put +EXPORT_SYMBOL vmlinux 0x4685c99a acpi_pm_device_sleep_state +EXPORT_SYMBOL vmlinux 0x46a362e3 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x46ab18f1 blk_make_request +EXPORT_SYMBOL vmlinux 0x46b29925 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance +EXPORT_SYMBOL vmlinux 0x46d51de8 genl_notify +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x471ded8e padata_stop +EXPORT_SYMBOL vmlinux 0x471fae40 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x472c9a18 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x472eaf98 d_delete +EXPORT_SYMBOL vmlinux 0x47416e14 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x476ac4d0 vm_insert_page +EXPORT_SYMBOL vmlinux 0x476b7afa bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x4771e448 dqget +EXPORT_SYMBOL vmlinux 0x477e6dcb amd_iommu_pc_get_set_reg_val +EXPORT_SYMBOL vmlinux 0x4788b613 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x478a6b74 dev_get_nest_level +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b3309c submit_bio_wait +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47b9ed74 phy_connect +EXPORT_SYMBOL vmlinux 0x47bcf84c param_set_ulong +EXPORT_SYMBOL vmlinux 0x47c8baf4 param_ops_uint +EXPORT_SYMBOL vmlinux 0x480297e7 get_task_io_context +EXPORT_SYMBOL vmlinux 0x48034724 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x481cbfd1 devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x482750be xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x482825a3 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x482a2a49 param_set_charp +EXPORT_SYMBOL vmlinux 0x482fb55e uart_register_driver +EXPORT_SYMBOL vmlinux 0x4841bdee strnchr +EXPORT_SYMBOL vmlinux 0x4846bdf0 ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x485857ff path_get +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x4878504b blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x487d7c9e acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x4888c793 dma_common_get_sgtable +EXPORT_SYMBOL vmlinux 0x488a4fe8 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x48b32628 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x48bca8cf writeback_in_progress +EXPORT_SYMBOL vmlinux 0x48d11e37 agp_find_bridge +EXPORT_SYMBOL vmlinux 0x48d50e79 amd_iommu_register_ppr_notifier +EXPORT_SYMBOL vmlinux 0x48d58257 ihold +EXPORT_SYMBOL vmlinux 0x48f94f58 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x492ca090 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x4937dcac sync_blockdev +EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x495c96f8 posix_acl_init +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49790082 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b163b8 acpi_bus_scan +EXPORT_SYMBOL vmlinux 0x49df7f72 x86_hyper_xen_hvm +EXPORT_SYMBOL vmlinux 0x49dfa474 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x49e8c9e4 vfs_symlink +EXPORT_SYMBOL vmlinux 0x49f937aa posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x49ff896f dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x4a03e7bb textsearch_unregister +EXPORT_SYMBOL vmlinux 0x4a042eba I_BDEV +EXPORT_SYMBOL vmlinux 0x4a31eb73 dev_uc_init +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a387121 vga_switcheroo_init_domain_pm_optimus_hdmi_audio +EXPORT_SYMBOL vmlinux 0x4a3e1587 pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x4a52edfb bioset_free +EXPORT_SYMBOL vmlinux 0x4a5a0af3 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x4a619630 tty_name +EXPORT_SYMBOL vmlinux 0x4a674f7d vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x4a80e1f0 pci_set_master +EXPORT_SYMBOL vmlinux 0x4aad52d7 mempool_free +EXPORT_SYMBOL vmlinux 0x4ab3e3a2 netif_napi_add +EXPORT_SYMBOL vmlinux 0x4ac672f4 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x4aca9e3e unregister_console +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ad73ee9 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x4afd47e6 devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b06d2e7 complete +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b1b7ebf __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x4b1baf68 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x4b1ceefc pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x4b1dc297 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x4b31a3f3 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x4b3b29d3 register_console +EXPORT_SYMBOL vmlinux 0x4b45685c deactivate_super +EXPORT_SYMBOL vmlinux 0x4b494ccf sock_kmalloc +EXPORT_SYMBOL vmlinux 0x4b4b482c dqput +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b65250d tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x4b880dfd mb_cache_create +EXPORT_SYMBOL vmlinux 0x4ba5f8af inode_permission +EXPORT_SYMBOL vmlinux 0x4ba6ebc6 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x4bb6a82c led_blink_set_oneshot +EXPORT_SYMBOL vmlinux 0x4bd74eff ftrace_raw_output_prep +EXPORT_SYMBOL vmlinux 0x4be1e295 check_disk_change +EXPORT_SYMBOL vmlinux 0x4be21056 ilookup +EXPORT_SYMBOL vmlinux 0x4bf8fca9 vfs_link +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c2045ae unregister_quota_format +EXPORT_SYMBOL vmlinux 0x4c2b6ee3 clk_add_alias +EXPORT_SYMBOL vmlinux 0x4c2ddb0e uart_add_one_port +EXPORT_SYMBOL vmlinux 0x4c31adb9 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x4c4fef19 kernel_stack +EXPORT_SYMBOL vmlinux 0x4c5c7f87 netdev_alert +EXPORT_SYMBOL vmlinux 0x4c5dc152 jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0x4c5e1f9c ps2_end_command +EXPORT_SYMBOL vmlinux 0x4c74fe83 phy_attach_direct +EXPORT_SYMBOL vmlinux 0x4c859940 would_dump +EXPORT_SYMBOL vmlinux 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL vmlinux 0x4c9d28b0 phys_base +EXPORT_SYMBOL vmlinux 0x4ca3d7bf md_write_start +EXPORT_SYMBOL vmlinux 0x4ca9669f scnprintf +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cd81d8c simple_fill_super +EXPORT_SYMBOL vmlinux 0x4cdb3178 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x4cec84d5 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x4d0e937d seq_path +EXPORT_SYMBOL vmlinux 0x4d1023f8 mempool_resize +EXPORT_SYMBOL vmlinux 0x4d21a28f get_disk +EXPORT_SYMBOL vmlinux 0x4d337c97 tcp_connect +EXPORT_SYMBOL vmlinux 0x4d5456cf set_security_override +EXPORT_SYMBOL vmlinux 0x4d560c0b gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0x4d6abc5a agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x4d6c279e tty_do_resize +EXPORT_SYMBOL vmlinux 0x4d78b168 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x4d7f5e2b generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x4d82019d register_qdisc +EXPORT_SYMBOL vmlinux 0x4d8b9811 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d98600e acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4daa360a acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0x4dd3a2ba rtnl_create_link +EXPORT_SYMBOL vmlinux 0x4de34a07 cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4dfa91f5 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x4dffb6d0 keyring_search +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e470cf1 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x4e5952fe md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4ea25709 dql_reset +EXPORT_SYMBOL vmlinux 0x4eda9e6b pci_disable_msi +EXPORT_SYMBOL vmlinux 0x4edc9ad6 netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4ee06578 vm_map_ram +EXPORT_SYMBOL vmlinux 0x4f1097c2 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f25d358 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x4f26c15c eth_mac_addr +EXPORT_SYMBOL vmlinux 0x4f27c8eb vlan_vid_del +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f540188 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x4f65805f xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x4f68e5c9 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x4f6b400b _copy_from_user +EXPORT_SYMBOL vmlinux 0x4f6f1f84 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f81a882 inode_change_ok +EXPORT_SYMBOL vmlinux 0x4f82945c __skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user +EXPORT_SYMBOL vmlinux 0x4f94f1ba idr_get_next +EXPORT_SYMBOL vmlinux 0x4f96d3c3 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x4f984da4 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x4fd16249 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4febcff9 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x4fee0fd3 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x5000c87e udp_prot +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x5033ac94 crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x5038b354 skb_trim +EXPORT_SYMBOL vmlinux 0x504de086 user_path_at +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x5081d3ec i2c_master_send +EXPORT_SYMBOL vmlinux 0x5098bd64 pci_match_id +EXPORT_SYMBOL vmlinux 0x50993c98 phy_drivers_register +EXPORT_SYMBOL vmlinux 0x509b64ea acpi_has_method +EXPORT_SYMBOL vmlinux 0x50a90e8d bsearch +EXPORT_SYMBOL vmlinux 0x50bcec54 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x50d2592d hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x50d68377 arch_phys_wc_del +EXPORT_SYMBOL vmlinux 0x51098860 ipmi_smi_watcher_unregister +EXPORT_SYMBOL vmlinux 0x511493e3 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x511a2da2 iunique +EXPORT_SYMBOL vmlinux 0x511ab427 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x512b7c7f proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x513b44fd simple_unlink +EXPORT_SYMBOL vmlinux 0x51527cf5 tcp_check_req +EXPORT_SYMBOL vmlinux 0x5156340c napi_get_frags +EXPORT_SYMBOL vmlinux 0x51612396 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x5182420f ida_pre_get +EXPORT_SYMBOL vmlinux 0x5182e870 xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0x518a7770 __mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x51a43a76 dev_notice +EXPORT_SYMBOL vmlinux 0x51be099d sock_init_data +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51d31a02 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e0459f blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x51e1132c max8925_reg_write +EXPORT_SYMBOL vmlinux 0x51e142fa ppp_register_channel +EXPORT_SYMBOL vmlinux 0x51e7887a sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x51f59549 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x52006d56 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x52095e93 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x520c4109 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x52130046 acpi_check_address_range +EXPORT_SYMBOL vmlinux 0x521b36b5 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x523b581d xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x52428cc8 parent_mem_cgroup +EXPORT_SYMBOL vmlinux 0x5245f6a4 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x524821d7 __quota_error +EXPORT_SYMBOL vmlinux 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL vmlinux 0x5259de02 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x525e026f acpi_os_unmap_generic_address +EXPORT_SYMBOL vmlinux 0x525e840d tty_unlock_pair +EXPORT_SYMBOL vmlinux 0x52609e4d bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x5262324a pci_map_biosrom +EXPORT_SYMBOL vmlinux 0x529cc01f gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x52a8234c proc_set_size +EXPORT_SYMBOL vmlinux 0x52be1598 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x52bf31a8 __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x52c862d8 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x52cbb014 lockref_get +EXPORT_SYMBOL vmlinux 0x52de27be pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x5307f033 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x5338f8d0 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x5340a0b5 serio_reconnect +EXPORT_SYMBOL vmlinux 0x536cc847 memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0x5377e556 hex2bin +EXPORT_SYMBOL vmlinux 0x53a49c11 from_kgid_munged +EXPORT_SYMBOL vmlinux 0x53b47d24 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x53c6745c mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x53d1efbd nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x53d339c8 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x53e56775 dev_alert +EXPORT_SYMBOL vmlinux 0x53e8f597 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x53eaf1a9 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x53f6ffbc wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x5402680b lockref_mark_dead +EXPORT_SYMBOL vmlinux 0x54059a2a amd_iommu_pc_get_max_counters +EXPORT_SYMBOL vmlinux 0x5409775b free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x540f267f blk_delay_queue +EXPORT_SYMBOL vmlinux 0x54245b39 kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0x54261dd4 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x544b0c11 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x545dce25 names_cachep +EXPORT_SYMBOL vmlinux 0x5492bbff blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x549f34f0 d_rehash +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54e3cc3b param_get_int +EXPORT_SYMBOL vmlinux 0x54e40086 d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54e78056 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x54efb5d6 cpu_number +EXPORT_SYMBOL vmlinux 0x550503a6 dev_printk_emit +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x552071e6 poll_initwait +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x554b32fc inet6_release +EXPORT_SYMBOL vmlinux 0x554ba56c vga_get +EXPORT_SYMBOL vmlinux 0x555241ca dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x55671680 lg_lock_init +EXPORT_SYMBOL vmlinux 0x5567c227 kernel_cpustat +EXPORT_SYMBOL vmlinux 0x55691a36 vfs_fsync +EXPORT_SYMBOL vmlinux 0x556c2740 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55b12eec release_pages +EXPORT_SYMBOL vmlinux 0x55b64d12 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x55cbcbb0 init_task +EXPORT_SYMBOL vmlinux 0x55ccd4d2 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0x55d02b81 d_lookup +EXPORT_SYMBOL vmlinux 0x55d085db unregister_cdrom +EXPORT_SYMBOL vmlinux 0x55d3fe64 key_revoke +EXPORT_SYMBOL vmlinux 0x55daa1a6 udp_ioctl +EXPORT_SYMBOL vmlinux 0x55ed5bd1 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x55f5019b __kmalloc_node +EXPORT_SYMBOL vmlinux 0x55fac92b phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0x560ffb71 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5618a0a4 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x56203fb5 skb_seq_read +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x56467674 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x5669ce7b account_page_redirty +EXPORT_SYMBOL vmlinux 0x5669e6b6 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x56c86659 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56fab560 filp_open +EXPORT_SYMBOL vmlinux 0x56faf0e3 fasync_helper +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x5760c10f vga_client_register +EXPORT_SYMBOL vmlinux 0x576674bf writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x5780f774 do_SAK +EXPORT_SYMBOL vmlinux 0x5784ac7c lro_receive_skb +EXPORT_SYMBOL vmlinux 0x578efd50 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x5792f848 strlcpy +EXPORT_SYMBOL vmlinux 0x57a6ccd0 down_read +EXPORT_SYMBOL vmlinux 0x57b9c897 devm_clk_get +EXPORT_SYMBOL vmlinux 0x57c411a6 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x57c42280 agp_enable +EXPORT_SYMBOL vmlinux 0x57c8ac3d skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x58072c89 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x5823c47d vfs_mknod +EXPORT_SYMBOL vmlinux 0x582e187d pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x5837504b arp_invalidate +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5849f983 inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x58519b12 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x5856535f padata_do_serial +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x585ed035 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x5860aad4 add_wait_queue +EXPORT_SYMBOL vmlinux 0x586103be acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x58746b0c fifo_set_limit +EXPORT_SYMBOL vmlinux 0x5875da1b pcie_set_mps +EXPORT_SYMBOL vmlinux 0x587616f1 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x58a3b6c5 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x58cd3912 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x58db8205 wireless_send_event +EXPORT_SYMBOL vmlinux 0x58f56f58 vfs_statfs +EXPORT_SYMBOL vmlinux 0x591a8272 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x594a966c mem_cgroup_subsys +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5967c929 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x5991219c cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x599fc28a agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x59a1608b pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x59b6e326 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59cc1389 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x59cca3d9 pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0x59dc84d6 fd_install +EXPORT_SYMBOL vmlinux 0x5a0c37a4 agp_free_page_array +EXPORT_SYMBOL vmlinux 0x5a100d16 page_put_link +EXPORT_SYMBOL vmlinux 0x5a288b99 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x5a346706 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a5536c2 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x5a5c5563 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x5a921311 strncmp +EXPORT_SYMBOL vmlinux 0x5ac11af5 fb_class +EXPORT_SYMBOL vmlinux 0x5ac21822 irq_stat +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5adb9b1c kernel_connect +EXPORT_SYMBOL vmlinux 0x5ae50279 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5aeb145f complete_and_exit +EXPORT_SYMBOL vmlinux 0x5b1e7d04 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x5b271d86 acpi_video_dmi_promote_vendor +EXPORT_SYMBOL vmlinux 0x5b424341 lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0x5b436623 dquot_destroy +EXPORT_SYMBOL vmlinux 0x5b517f28 misc_deregister +EXPORT_SYMBOL vmlinux 0x5b56860c vm_munmap +EXPORT_SYMBOL vmlinux 0x5b86541a jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x5b94eff2 elevator_exit +EXPORT_SYMBOL vmlinux 0x5bc10524 printk_emit +EXPORT_SYMBOL vmlinux 0x5bc4060e d_prune_aliases +EXPORT_SYMBOL vmlinux 0x5bc8d583 copy_from_user_overflow +EXPORT_SYMBOL vmlinux 0x5befbbcd dcache_dir_close +EXPORT_SYMBOL vmlinux 0x5c0ece6b skb_pull +EXPORT_SYMBOL vmlinux 0x5c2fd8ae mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x5c3edd59 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x5c409f93 get_super_thawed +EXPORT_SYMBOL vmlinux 0x5c4e01c7 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x5c7c95b9 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x5c7fa529 __nlmsg_put +EXPORT_SYMBOL vmlinux 0x5c84c8ae nf_log_unset +EXPORT_SYMBOL vmlinux 0x5c8b5ce8 prepare_to_wait +EXPORT_SYMBOL vmlinux 0x5ca25bce free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x5ca2cb29 sock_create_kern +EXPORT_SYMBOL vmlinux 0x5ca8c1ce install_exec_creds +EXPORT_SYMBOL vmlinux 0x5cd0be1b skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x5cd6cda4 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5d0a71ba read_cache_page_async +EXPORT_SYMBOL vmlinux 0x5d0dbdc3 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x5d2a071e input_flush_device +EXPORT_SYMBOL vmlinux 0x5d41c87c param_ops_charp +EXPORT_SYMBOL vmlinux 0x5d4d5071 wake_up_process +EXPORT_SYMBOL vmlinux 0x5d550c4d scsi_sd_probe_domain +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5d85b96b udp_del_offload +EXPORT_SYMBOL vmlinux 0x5d85c052 blk_start_request +EXPORT_SYMBOL vmlinux 0x5d85cf8d amd_iommu_get_v2_domain +EXPORT_SYMBOL vmlinux 0x5d862bb4 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x5d960cd9 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x5dbfa42c __get_page_tail +EXPORT_SYMBOL vmlinux 0x5dd5ac11 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x5df472df sk_net_capable +EXPORT_SYMBOL vmlinux 0x5df4b31b tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x5e0f339b dev_emerg +EXPORT_SYMBOL vmlinux 0x5e1594d6 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x5e15d54c ida_init +EXPORT_SYMBOL vmlinux 0x5e73531a register_cdrom +EXPORT_SYMBOL vmlinux 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL vmlinux 0x5e82a48f inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x5e8c3633 bdi_unregister +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ec10e66 __scm_send +EXPORT_SYMBOL vmlinux 0x5ec29256 find_get_page +EXPORT_SYMBOL vmlinux 0x5ec9c923 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5efec3f1 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f1af800 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x5f3c8f5c mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x5f4602ad done_path_create +EXPORT_SYMBOL vmlinux 0x5f557703 acpi_evaluate_hotplug_ost +EXPORT_SYMBOL vmlinux 0x5f58f676 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x5f6629de mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x5f752f64 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x5fbd2d97 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL vmlinux 0x5fda0227 vfs_stat +EXPORT_SYMBOL vmlinux 0x5fdbd5fe netdev_master_upper_dev_link_private +EXPORT_SYMBOL vmlinux 0x5fdc44e2 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x5fe56825 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601e5e04 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x6026a047 pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x6034e32c pci_pme_active +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x60484956 ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x6064a3e1 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x6084193a tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x609f5b35 ucs2_strnlen +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60c037fe mdio_bus_type +EXPORT_SYMBOL vmlinux 0x60cfbfdd xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x60df1e3b posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x60f21583 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x60f5962d security_path_mknod +EXPORT_SYMBOL vmlinux 0x60ff89ae pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x614383c0 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0x61538ad0 param_get_charp +EXPORT_SYMBOL vmlinux 0x6156c48c fbcon_rotate_ud +EXPORT_SYMBOL vmlinux 0x6164494f __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x618911fc numa_node +EXPORT_SYMBOL vmlinux 0x619cb7dd simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x61a67a18 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61fb248a node_states +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6226b9fa machine_to_phys_mapping +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x623f0cbe netif_skb_dev_features +EXPORT_SYMBOL vmlinux 0x6272b4d5 datagram_poll +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62748e70 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x628121e9 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x62aba286 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x62af4d2e netpoll_rx_disable +EXPORT_SYMBOL vmlinux 0x62b52bba blk_get_queue +EXPORT_SYMBOL vmlinux 0x62e91368 genphy_resume +EXPORT_SYMBOL vmlinux 0x62fa2c5d pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x630bf591 blk_mq_alloc_reserved_request +EXPORT_SYMBOL vmlinux 0x63173857 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x631e69ce dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x6325cbb9 phy_init_eee +EXPORT_SYMBOL vmlinux 0x635462ce vfs_setpos +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x63766771 gen10g_read_status +EXPORT_SYMBOL vmlinux 0x6394d1c5 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x639b9fe2 clear_inode +EXPORT_SYMBOL vmlinux 0x639efd18 inc_nlink +EXPORT_SYMBOL vmlinux 0x63a01291 acpi_leave_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x63a3d935 dev_change_carrier +EXPORT_SYMBOL vmlinux 0x63a6bcc9 acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0x63a6cbf0 skb_checksum +EXPORT_SYMBOL vmlinux 0x63bf6d6e revert_creds +EXPORT_SYMBOL vmlinux 0x63c41baa dev_driver_string +EXPORT_SYMBOL vmlinux 0x63e56227 __dst_free +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63f2fb3b ht_create_irq +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64195a68 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x6432902a max8998_write_reg +EXPORT_SYMBOL vmlinux 0x64355b0e pci_restore_state +EXPORT_SYMBOL vmlinux 0x643e117c dentry_path_raw +EXPORT_SYMBOL vmlinux 0x6449fd41 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64a804f7 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x64b829e3 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x64bbc288 string_unescape +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x64edffc3 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65276353 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x6527995f dev_remove_offload +EXPORT_SYMBOL vmlinux 0x652ce9aa nla_memcmp +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65421171 dquot_commit +EXPORT_SYMBOL vmlinux 0x654dc0c6 PDE_DATA +EXPORT_SYMBOL vmlinux 0x655634d5 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x655cb964 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x656ba977 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x6580c9c0 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x6589d6e8 blk_bio_map_sg +EXPORT_SYMBOL vmlinux 0x658fb709 seq_release +EXPORT_SYMBOL vmlinux 0x65b4feee udp_poll +EXPORT_SYMBOL vmlinux 0x65bf0527 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x65c0cc23 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x65caba29 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x65d51054 cdev_alloc +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65e0d6d7 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x65e8d47d nf_ct_attach +EXPORT_SYMBOL vmlinux 0x65f3ad9a fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x65f40340 mmc_release_host +EXPORT_SYMBOL vmlinux 0x65f8cf35 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x6605f97f flex_array_clear +EXPORT_SYMBOL vmlinux 0x660b22f9 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x66140e5f scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x6620c0f5 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x663f7cd0 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0x664a46fc dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x665b4406 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x665fcbb5 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x6676bbb2 tcp_prot +EXPORT_SYMBOL vmlinux 0x6683d261 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66924bb8 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x66a67dab flex_array_shrink +EXPORT_SYMBOL vmlinux 0x66cdcad5 seq_vprintf +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6753a0f0 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x67550e72 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x675b8f61 param_get_string +EXPORT_SYMBOL vmlinux 0x675c09e4 lockref_get_not_zero +EXPORT_SYMBOL vmlinux 0x6768cc99 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x6768d9f7 compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0x676dc9d0 dev_add_offload +EXPORT_SYMBOL vmlinux 0x6797cecd set_bh_page +EXPORT_SYMBOL vmlinux 0x67a0306a percpu_counter_set +EXPORT_SYMBOL vmlinux 0x67a4d654 xen_biovec_phys_mergeable +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c0003d neigh_ifdown +EXPORT_SYMBOL vmlinux 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL vmlinux 0x67d396b0 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x67d649f6 devm_clk_put +EXPORT_SYMBOL vmlinux 0x67da17df d_drop +EXPORT_SYMBOL vmlinux 0x680bdccf netif_receive_skb +EXPORT_SYMBOL vmlinux 0x681107a3 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x682a5495 __netif_schedule +EXPORT_SYMBOL vmlinux 0x683d7e02 read_dev_sector +EXPORT_SYMBOL vmlinux 0x684527a2 mount_subtree +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x6890e56f security_mmap_file +EXPORT_SYMBOL vmlinux 0x689f61f6 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x68aca4ad down +EXPORT_SYMBOL vmlinux 0x68b03670 netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x68b83ac6 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x68d543c1 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x68dc33e8 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x68e05d57 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x68f858e6 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x68f8c31d __cleancache_invalidate_fs +EXPORT_SYMBOL vmlinux 0x691001b5 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x691067b2 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x69309618 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x69335f30 follow_pfn +EXPORT_SYMBOL vmlinux 0x694540af skb_copy_expand +EXPORT_SYMBOL vmlinux 0x694b6259 elv_register_queue +EXPORT_SYMBOL vmlinux 0x69614318 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x69873e3a scm_fp_dup +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x698f4d17 backlight_force_update +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69acdf38 memcpy +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69ae708c block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x69c15c8a tcf_hash_check +EXPORT_SYMBOL vmlinux 0x69c2c8af gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0x69d31a8a generic_permission +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69f17d7c tcp_proc_register +EXPORT_SYMBOL vmlinux 0x69fbc0a2 acpi_get_event_resources +EXPORT_SYMBOL vmlinux 0x6a010a13 mount_single +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a139ea1 __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0x6a52def5 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a62ac26 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a7fd0c4 processors +EXPORT_SYMBOL vmlinux 0x6a96c148 amd_iommu_domain_clear_gcr3 +EXPORT_SYMBOL vmlinux 0x6abb8f91 padata_alloc +EXPORT_SYMBOL vmlinux 0x6ac2244a block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad85887 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6ade9105 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x6b06fdce delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x6b18bb3f mpage_readpage +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b1d89f0 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b414db3 pci_release_region +EXPORT_SYMBOL vmlinux 0x6b60b088 amd_iommu_device_info +EXPORT_SYMBOL vmlinux 0x6b640864 nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6b72674f mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x6b787805 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x6b91c5a4 amd_iommu_complete_ppr +EXPORT_SYMBOL vmlinux 0x6b92f3ab pnp_device_detach +EXPORT_SYMBOL vmlinux 0x6b9a5464 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x6ba406f0 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x6ba99b4a elevator_alloc +EXPORT_SYMBOL vmlinux 0x6ba9ee07 dev_addr_del +EXPORT_SYMBOL vmlinux 0x6bc15499 fget_raw +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6be10668 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x6beb2078 param_set_copystring +EXPORT_SYMBOL vmlinux 0x6bf0e148 unload_nls +EXPORT_SYMBOL vmlinux 0x6bf65828 simple_open +EXPORT_SYMBOL vmlinux 0x6c141fa0 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x6c1bac1c bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x6c2152ea scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x6c33561c generic_setxattr +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c428773 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x6c5101d8 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x6c51a836 sysctl_tcp_notsent_lowat +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c66f9c9 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x6c6fa332 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c8d0bb0 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x6ca37ab7 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x6cb2cd04 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x6cb31957 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x6cb4a8aa serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0x6cc2acc9 handle_edge_irq +EXPORT_SYMBOL vmlinux 0x6cd8c86b __crc32c_le_combine +EXPORT_SYMBOL vmlinux 0x6cfa85c9 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x6cfbf0bc compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x6d0aba34 wait_for_completion +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d165c40 lockref_get_or_lock +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8 +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d567fb0 textsearch_register +EXPORT_SYMBOL vmlinux 0x6d5710a4 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x6d6818ff gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x6d7538be inode_dio_done +EXPORT_SYMBOL vmlinux 0x6ddafe38 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6dff7fa7 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0x6e297a62 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x6e3ba43e in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x6e3ed51c lro_flush_all +EXPORT_SYMBOL vmlinux 0x6e6fd5ed pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e745ac6 migrate_page +EXPORT_SYMBOL vmlinux 0x6e767d18 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x6e7cff33 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x6e857add vfs_writev +EXPORT_SYMBOL vmlinux 0x6e996c63 notify_change +EXPORT_SYMBOL vmlinux 0x6ebc5149 param_ops_long +EXPORT_SYMBOL vmlinux 0x6efc90ee block_invalidatepage +EXPORT_SYMBOL vmlinux 0x6f178d97 _dev_info +EXPORT_SYMBOL vmlinux 0x6f20960a full_name_hash +EXPORT_SYMBOL vmlinux 0x6f351553 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x6f36c782 idr_find_slowpath +EXPORT_SYMBOL vmlinux 0x6f4c812f __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f7b93ad request_key_async +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fcf2086 neigh_table_init +EXPORT_SYMBOL vmlinux 0x6fd040ec generic_segment_checks +EXPORT_SYMBOL vmlinux 0x6fda72a0 ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x70060977 dget_parent +EXPORT_SYMBOL vmlinux 0x70136091 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x7023bea8 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x702b6c54 udplite_table +EXPORT_SYMBOL vmlinux 0x702b88eb prepare_creds +EXPORT_SYMBOL vmlinux 0x703b4352 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x7045a1a7 get_io_context +EXPORT_SYMBOL vmlinux 0x704dffbf ppp_dev_name +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x707f43f6 __ctzdi2 +EXPORT_SYMBOL vmlinux 0x7090c808 sock_no_listen +EXPORT_SYMBOL vmlinux 0x70ad3e2b phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70be8378 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70dc9dae dquot_quota_off +EXPORT_SYMBOL vmlinux 0x70ee5e2d mmc_erase +EXPORT_SYMBOL vmlinux 0x70f81a1a genl_unregister_family +EXPORT_SYMBOL vmlinux 0x71057486 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x7111e9f1 do_sync_write +EXPORT_SYMBOL vmlinux 0x711bbf18 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x711c77bc security_inode_permission +EXPORT_SYMBOL vmlinux 0x711d4c57 kdb_current_task +EXPORT_SYMBOL vmlinux 0x711f847d __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x714115e7 netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71a0ea80 dquot_enable +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71b36801 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x71b54783 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x71ce1b16 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x71e3cecb up +EXPORT_SYMBOL vmlinux 0x71e85c5a sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x7202a010 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x7205463a posix_lock_file +EXPORT_SYMBOL vmlinux 0x7277c9f9 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x727b7c75 blk_register_region +EXPORT_SYMBOL vmlinux 0x7284fe0d generic_file_remap_pages +EXPORT_SYMBOL vmlinux 0x728e047e jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x72a64a39 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x72a6b537 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x72a6ce17 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x72a98fdb copy_user_generic_unrolled +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b304ec commit_creds +EXPORT_SYMBOL vmlinux 0x72bb35a7 devm_gpiod_get +EXPORT_SYMBOL vmlinux 0x72bc8eb1 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72d31a2f genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x72e0628a pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72ee5686 init_net +EXPORT_SYMBOL vmlinux 0x72efa1d5 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x72f3aa32 acpi_get_physical_device_location +EXPORT_SYMBOL vmlinux 0x72fe3b18 sock_alloc_file +EXPORT_SYMBOL vmlinux 0x7331b756 inet_del_offload +EXPORT_SYMBOL vmlinux 0x733848d6 __ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x73400c85 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x734d1df4 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7372144a dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x73788c4b tcp_release_cb +EXPORT_SYMBOL vmlinux 0x737cea91 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x73a75557 udplite_prot +EXPORT_SYMBOL vmlinux 0x73a78bc4 downgrade_write +EXPORT_SYMBOL vmlinux 0x73dd54eb irq_fpu_usable +EXPORT_SYMBOL vmlinux 0x73dfffb3 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x74322b5e __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x747195f0 hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x747b62f6 loop_backing_file +EXPORT_SYMBOL vmlinux 0x74856a35 napi_complete +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74881d07 acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74da8364 blk_mq_run_queues +EXPORT_SYMBOL vmlinux 0x74e066e6 blk_run_queue_async +EXPORT_SYMBOL vmlinux 0x74e1e670 phy_print_status +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x74ef255b zerocopy_sg_from_iovec +EXPORT_SYMBOL vmlinux 0x74fa6041 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x75168913 scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0x7532588a alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x754d539c strlen +EXPORT_SYMBOL vmlinux 0x754dac78 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x7559e4f9 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x755a6524 dquot_transfer +EXPORT_SYMBOL vmlinux 0x75603a67 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x7587c8a7 dev_add_pack +EXPORT_SYMBOL vmlinux 0x75910c6e devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75df0466 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x75f24a5a dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x75f2af9e sock_release +EXPORT_SYMBOL vmlinux 0x75fbdefd acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x762575f2 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x762bf7d4 blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0x7641abdc set_trace_device +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x7648a19c tty_write_room +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x765ff474 crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x767dd8fd acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x768555b4 ipmi_smi_add_proc_entry +EXPORT_SYMBOL vmlinux 0x76869ac8 rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x76877b85 pci_get_device +EXPORT_SYMBOL vmlinux 0x768da667 lock_fb_info +EXPORT_SYMBOL vmlinux 0x76ad567b dev_crit +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76c46ec4 set_pages_wb +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d451c4 add_taint +EXPORT_SYMBOL vmlinux 0x76ea5979 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x76fb08a7 amd_iommu_unregister_ppr_notifier +EXPORT_SYMBOL vmlinux 0x77072ff0 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x7713052c vga_switcheroo_fini_domain_pm_ops +EXPORT_SYMBOL vmlinux 0x77158a71 netif_napi_del +EXPORT_SYMBOL vmlinux 0x7719c127 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x7721c621 user_revoke +EXPORT_SYMBOL vmlinux 0x77314ec2 con_is_bound +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x773fa409 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x77456e0a acpi_root_dir +EXPORT_SYMBOL vmlinux 0x775eb941 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x778b4e6f read_cache_page +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77acc2c7 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77d22974 skb_find_text +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e19dc6 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f53abc acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x780fdfd1 intel_enable_gtt +EXPORT_SYMBOL vmlinux 0x78243a1d ata_std_end_eh +EXPORT_SYMBOL vmlinux 0x7837af7e bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x783b3563 wake_up_atomic_t +EXPORT_SYMBOL vmlinux 0x784213a6 pv_lock_ops +EXPORT_SYMBOL vmlinux 0x7846af3e __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x78526536 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x7863c85d tcp_init_sock +EXPORT_SYMBOL vmlinux 0x786ecb49 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x78749890 __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0x78764f4e pv_irq_ops +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x789affb1 frontswap_tmem_exclusive_gets +EXPORT_SYMBOL vmlinux 0x78a5fdaa unregister_nls +EXPORT_SYMBOL vmlinux 0x78bb3e24 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0x78da97b9 vfs_create +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e27c93 check_submounts_and_drop +EXPORT_SYMBOL vmlinux 0x78fb8a4f kernel_listen +EXPORT_SYMBOL vmlinux 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x79394920 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x7953af94 gen10g_config_advert +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x796feb32 seq_pad +EXPORT_SYMBOL vmlinux 0x797c8fa9 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x7984eefc key_update +EXPORT_SYMBOL vmlinux 0x79945d9f proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x799d6c55 rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0x79a38e61 ___ratelimit +EXPORT_SYMBOL vmlinux 0x79a7bf53 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79b82308 pci_iomap +EXPORT_SYMBOL vmlinux 0x79d3898c single_open +EXPORT_SYMBOL vmlinux 0x79e41e6f default_llseek +EXPORT_SYMBOL vmlinux 0x79e83dec inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x7a188791 prandom_bytes +EXPORT_SYMBOL vmlinux 0x7a26680f generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a3ea807 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a48bd3c sock_wake_async +EXPORT_SYMBOL vmlinux 0x7a65b03b input_open_device +EXPORT_SYMBOL vmlinux 0x7a7c99a6 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x7a7dc0ce padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x7a82cb47 rdmsrl_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7a844994 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x7a87aadc swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7a925833 cpufreq_get_global_kobject +EXPORT_SYMBOL vmlinux 0x7a9cb945 devfreq_resume_device +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7aa47278 pcie_get_mps +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7adc9699 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x7add44b5 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7adee0e1 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7b056c16 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x7b09b509 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x7b0d7f64 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x7b12a5da page_readlink +EXPORT_SYMBOL vmlinux 0x7b16235f hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x7b259dbe scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x7b2aef6c __krealloc +EXPORT_SYMBOL vmlinux 0x7b2b380d alloc_disk_node +EXPORT_SYMBOL vmlinux 0x7b40ef4b input_reset_device +EXPORT_SYMBOL vmlinux 0x7b42ada4 from_kuid +EXPORT_SYMBOL vmlinux 0x7b440793 follow_down +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b624a1a blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x7b6c9dd7 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x7b988b88 tty_set_operations +EXPORT_SYMBOL vmlinux 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL vmlinux 0x7baf9126 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x7bbdd4a6 ppp_input_error +EXPORT_SYMBOL vmlinux 0x7bebc490 dev_printk +EXPORT_SYMBOL vmlinux 0x7bebd7d0 tcp_close +EXPORT_SYMBOL vmlinux 0x7c1372e8 panic +EXPORT_SYMBOL vmlinux 0x7c161cc4 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x7c1a8080 mntget +EXPORT_SYMBOL vmlinux 0x7c2d098f krealloc +EXPORT_SYMBOL vmlinux 0x7c2dafca put_tty_driver +EXPORT_SYMBOL vmlinux 0x7c2e301d qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x7c3761e7 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c4f3fb8 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x7c59e56c pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c82c098 __inet_stream_connect +EXPORT_SYMBOL vmlinux 0x7c9bcd0f end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x7c9e7263 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x7ca46555 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cb38fb3 scsi_host_get +EXPORT_SYMBOL vmlinux 0x7cbf7081 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x7cc578da param_get_long +EXPORT_SYMBOL vmlinux 0x7cd456d3 balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7ce83365 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7cf3a16b put_cmsg +EXPORT_SYMBOL vmlinux 0x7cfd83a4 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d27908d pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x7d324420 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x7d3452f7 mdiobus_write +EXPORT_SYMBOL vmlinux 0x7d3c02ec tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x7d3c3969 __frontswap_load +EXPORT_SYMBOL vmlinux 0x7d497c03 dentry_unhash +EXPORT_SYMBOL vmlinux 0x7d4f1008 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x7d7b29af mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x7d94f746 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x7dbc2e57 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x7dc40a25 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x7dd554fc unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7dfa135f pcim_pin_device +EXPORT_SYMBOL vmlinux 0x7dfc5967 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x7e057981 input_set_capability +EXPORT_SYMBOL vmlinux 0x7e07b26e key_type_keyring +EXPORT_SYMBOL vmlinux 0x7e11e053 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x7e1b5018 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x7e32f44b write_cache_pages +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e6cf13b tty_lock +EXPORT_SYMBOL vmlinux 0x7e7157c6 cap_mmap_file +EXPORT_SYMBOL vmlinux 0x7e99303a dev_get_phys_port_id +EXPORT_SYMBOL vmlinux 0x7eb44271 locks_init_lock +EXPORT_SYMBOL vmlinux 0x7ed914c9 acpi_decode_pld_buffer +EXPORT_SYMBOL vmlinux 0x7edd3340 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x7f0dc59c inet_addr_type +EXPORT_SYMBOL vmlinux 0x7f20c786 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f4850d3 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x7f658e80 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x7f8842b7 sget +EXPORT_SYMBOL vmlinux 0x7fc74917 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x7fd09e85 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7fe38f48 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x802d0e93 crc32_le +EXPORT_SYMBOL vmlinux 0x804f922a ipmi_addr_length +EXPORT_SYMBOL vmlinux 0x806ddd07 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x80c14015 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x80c6ad59 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80e2835c consume_skb +EXPORT_SYMBOL vmlinux 0x80f457b3 block_write_full_page +EXPORT_SYMBOL vmlinux 0x810421bd __blk_run_queue +EXPORT_SYMBOL vmlinux 0x811d10a7 kern_unmount +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x81533963 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x8190197d may_umount +EXPORT_SYMBOL vmlinux 0x81ae2108 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x81b3ebb1 complete_request_key +EXPORT_SYMBOL vmlinux 0x81cb842a devm_ioport_map +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81dce848 rtmsg_ifinfo +EXPORT_SYMBOL vmlinux 0x81e67763 try_to_writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81f13db6 scsi_execute_req_flags +EXPORT_SYMBOL vmlinux 0x81fc55e6 alloc_anon_inode +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x820ca23a mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x821d8428 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x8222a525 have_submounts +EXPORT_SYMBOL vmlinux 0x82477240 ida_destroy +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8261740b dquot_initialize +EXPORT_SYMBOL vmlinux 0x828062b1 __frontswap_init +EXPORT_SYMBOL vmlinux 0x82909a2d __serio_register_port +EXPORT_SYMBOL vmlinux 0x829d4e08 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x830e62f3 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x832b83cd scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x833c03aa acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x834b999e nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0x834fb3d8 phy_driver_register +EXPORT_SYMBOL vmlinux 0x8357c833 pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83d7ab1a neigh_lookup +EXPORT_SYMBOL vmlinux 0x83f3cdff gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0x83fb7638 generic_read_dir +EXPORT_SYMBOL vmlinux 0x84060081 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x8409bc23 amd_iommu_flush_tlb +EXPORT_SYMBOL vmlinux 0x8417f512 acpi_update_all_gpes +EXPORT_SYMBOL vmlinux 0x841962f8 param_get_ushort +EXPORT_SYMBOL vmlinux 0x8426e762 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x8462a835 pci_disable_obff +EXPORT_SYMBOL vmlinux 0x847c0968 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x8485cc44 kobject_set_name +EXPORT_SYMBOL vmlinux 0x84a4eb91 dev_mc_del +EXPORT_SYMBOL vmlinux 0x84d8646e nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x84f2c779 sock_no_accept +EXPORT_SYMBOL vmlinux 0x84f80f48 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x84fb869a mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x84ffea8b idr_preload +EXPORT_SYMBOL vmlinux 0x85028b0f uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x8509c540 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0x851751e1 __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x8518eca9 param_get_short +EXPORT_SYMBOL vmlinux 0x851ba539 should_remove_suid +EXPORT_SYMBOL vmlinux 0x853bf7c1 param_set_int +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x859e4598 skb_insert +EXPORT_SYMBOL vmlinux 0x85a275ad inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85f4b46b sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x86469862 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x865f0a4c pcim_enable_device +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x8676a21d iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86944cea devm_gpio_free +EXPORT_SYMBOL vmlinux 0x86bd9684 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x86d09da3 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x86d3b95d arp_create +EXPORT_SYMBOL vmlinux 0x86d46b05 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x86d5255f _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x87196816 __sb_end_write +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x87223166 blk_rq_init +EXPORT_SYMBOL vmlinux 0x872a0324 vlan_vid_add +EXPORT_SYMBOL vmlinux 0x872c4386 netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0x874642b4 pci_save_state +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x87706b0c dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0x8779a34f param_ops_byte +EXPORT_SYMBOL vmlinux 0x877ce861 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x8782c70b netdev_all_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x878ea26e thaw_bdev +EXPORT_SYMBOL vmlinux 0x8790917f devm_free_irq +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87c2a1c0 framebuffer_release +EXPORT_SYMBOL vmlinux 0x87c58a96 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x87dc469a mempool_create_node +EXPORT_SYMBOL vmlinux 0x87e1ecb4 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x87ec5ee7 pci_enable_msi_range +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88300259 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x8843a0f3 ndo_dflt_bridge_getlink +EXPORT_SYMBOL vmlinux 0x88513970 param_set_byte +EXPORT_SYMBOL vmlinux 0x8855e8e8 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x886e4a99 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x8897df7d kobject_init +EXPORT_SYMBOL vmlinux 0x889b08b4 vga_switcheroo_register_audio_client +EXPORT_SYMBOL vmlinux 0x88a11ddc pci_dev_put +EXPORT_SYMBOL vmlinux 0x88b04e39 __register_nmi_handler +EXPORT_SYMBOL vmlinux 0x88cb3a9b locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x88d903f3 new_inode +EXPORT_SYMBOL vmlinux 0x88ecc21f eth_type_trans +EXPORT_SYMBOL vmlinux 0x88f00d18 lg_global_unlock +EXPORT_SYMBOL vmlinux 0x891412c9 inet_listen +EXPORT_SYMBOL vmlinux 0x89157a83 bdput +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x89460740 alloc_file +EXPORT_SYMBOL vmlinux 0x8947f5a3 gen10g_suspend +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d79cdf dcache_readdir +EXPORT_SYMBOL vmlinux 0x89e2085b pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x8a1ab4ee timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8a336c45 end_page_writeback +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a4f3aee address_space_init_once +EXPORT_SYMBOL vmlinux 0x8a51d565 quota_send_warning +EXPORT_SYMBOL vmlinux 0x8a5e5e42 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x8a6af65c kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a7f9384 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x8a80d7a5 acpi_error +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aa90c3f dev_disable_lro +EXPORT_SYMBOL vmlinux 0x8ac2f5bb alloc_disk +EXPORT_SYMBOL vmlinux 0x8ae5d8c5 __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b20a3be fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x8b226a81 acpi_video_dmi_demote_vendor +EXPORT_SYMBOL vmlinux 0x8b3323c7 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b3f3531 d_validate +EXPORT_SYMBOL vmlinux 0x8b410978 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x8b43159b register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b79675a key_task_permission +EXPORT_SYMBOL vmlinux 0x8b8d4c04 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x8b93f4ca vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8bb1ff41 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x8bbc8e50 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x8bddf536 __elv_add_request +EXPORT_SYMBOL vmlinux 0x8beb5907 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x8bf04f03 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x8bffffdf scsi_scan_target +EXPORT_SYMBOL vmlinux 0x8c018096 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x8c050c43 mount_ns +EXPORT_SYMBOL vmlinux 0x8c0a2600 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c1cbfc8 security_path_symlink +EXPORT_SYMBOL vmlinux 0x8c29a470 proto_unregister +EXPORT_SYMBOL vmlinux 0x8c30e507 nf_reinject +EXPORT_SYMBOL vmlinux 0x8c418527 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x8c637d43 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL vmlinux 0x8c932c97 scsi_device_put +EXPORT_SYMBOL vmlinux 0x8c9989f9 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x8cb1ff45 current_task +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8cdba13b ps2_drain +EXPORT_SYMBOL vmlinux 0x8ce82826 netif_device_attach +EXPORT_SYMBOL vmlinux 0x8d0a7982 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x8d120ca2 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x8d1842a9 acpi_gpiochip_request_interrupts +EXPORT_SYMBOL vmlinux 0x8d2bc820 pci_map_rom +EXPORT_SYMBOL vmlinux 0x8d2e268b param_ops_ulong +EXPORT_SYMBOL vmlinux 0x8d44a153 tty_free_termios +EXPORT_SYMBOL vmlinux 0x8d54ce22 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d70d248 pci_biosrom_size +EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8da0b858 sk_stream_error +EXPORT_SYMBOL vmlinux 0x8da1a3cb acpi_remove_interface +EXPORT_SYMBOL vmlinux 0x8daf8c42 dql_init +EXPORT_SYMBOL vmlinux 0x8dcecc03 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x8dd703de sock_kfree_s +EXPORT_SYMBOL vmlinux 0x8dd80e84 skb_put +EXPORT_SYMBOL vmlinux 0x8df6c16d seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x8df7aaf8 skb_queue_head +EXPORT_SYMBOL vmlinux 0x8df92f66 memchr_inv +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e2cc2ca bprm_change_interp +EXPORT_SYMBOL vmlinux 0x8e332829 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x8e71693f md_done_sync +EXPORT_SYMBOL vmlinux 0x8e7feffd devm_gpiod_put +EXPORT_SYMBOL vmlinux 0x8e864a86 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x8e96d3ed dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8eb6eb16 blkdev_put +EXPORT_SYMBOL vmlinux 0x8eb75fb8 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x8ec909f6 skb_make_writable +EXPORT_SYMBOL vmlinux 0x8ecd5393 acpi_gpiochip_free_interrupts +EXPORT_SYMBOL vmlinux 0x8ecdc7f3 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x8edf67ac sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0x8ee32f7f serio_close +EXPORT_SYMBOL vmlinux 0x8eeca0dc pci_fixup_device +EXPORT_SYMBOL vmlinux 0x8ef1f784 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x8effd851 mmc_set_blockcount +EXPORT_SYMBOL vmlinux 0x8f09a880 inet6_add_offload +EXPORT_SYMBOL vmlinux 0x8f252d5c tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f441772 make_bad_inode +EXPORT_SYMBOL vmlinux 0x8f65421a jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0x8f6c4666 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x8f8eea76 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fc33b47 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x8fe48b08 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x8ff2f0ad vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0x9038ec6b elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x9051a538 inode_init_always +EXPORT_SYMBOL vmlinux 0x906a4a5c tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x906ea1aa compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x907ee3a9 no_llseek +EXPORT_SYMBOL vmlinux 0x908090c5 sk_common_release +EXPORT_SYMBOL vmlinux 0x908b53ed param_set_short +EXPORT_SYMBOL vmlinux 0x90af7838 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x912440c1 search_binary_handler +EXPORT_SYMBOL vmlinux 0x912f3e4d backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x914d69db gen10g_config_aneg +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x9166fada strncpy +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x917e1c9d __netlink_dump_start +EXPORT_SYMBOL vmlinux 0x91967e8e xen_selfballoon_init +EXPORT_SYMBOL vmlinux 0x919b3f8e blk_sync_queue +EXPORT_SYMBOL vmlinux 0x91a3cdf4 down_timeout +EXPORT_SYMBOL vmlinux 0x91aa523c pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x91ac822f vscnprintf +EXPORT_SYMBOL vmlinux 0x91d529cd sock_i_uid +EXPORT_SYMBOL vmlinux 0x91d9ef62 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x91e14f04 mutex_lock +EXPORT_SYMBOL vmlinux 0x920fa368 bio_advance +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x9241aecd dev_trans_start +EXPORT_SYMBOL vmlinux 0x925520d2 blk_start_plug +EXPORT_SYMBOL vmlinux 0x92593e0c iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x9272dff0 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x92874fa8 ping_prot +EXPORT_SYMBOL vmlinux 0x9291cd3b memdup_user +EXPORT_SYMBOL vmlinux 0x92a9c60c time_to_tm +EXPORT_SYMBOL vmlinux 0x92ac832f blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x92af1dc7 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x92b685c8 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x92c1558f pci_assign_resource +EXPORT_SYMBOL vmlinux 0x92d050df iov_pages +EXPORT_SYMBOL vmlinux 0x92deea80 gen10g_resume +EXPORT_SYMBOL vmlinux 0x92eb657f skb_pad +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x931f157c scsi_target_resume +EXPORT_SYMBOL vmlinux 0x9327f5ce _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x933ef442 nf_log_set +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x9361d7ef __register_binfmt +EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid +EXPORT_SYMBOL vmlinux 0x938bef4e pci_dev_get +EXPORT_SYMBOL vmlinux 0x938f52a6 __scm_destroy +EXPORT_SYMBOL vmlinux 0x93a5e20c scm_detach_fds +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93b6dda8 blk_mq_end_io +EXPORT_SYMBOL vmlinux 0x93dcf199 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x93f09c4a cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x93f3e52b acpi_extract_package +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x94041f29 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x94374b8c pci_reenable_device +EXPORT_SYMBOL vmlinux 0x944868ba unregister_binfmt +EXPORT_SYMBOL vmlinux 0x944b9e46 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x94661dc3 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x946cccea crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x94745f80 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x9488a299 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x948b5ad0 uart_match_port +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94a404e1 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x94abe32c serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x94db5281 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x94e066b2 mmc_gpio_request_ro +EXPORT_SYMBOL vmlinux 0x94efe9ff dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x95010666 kill_bdev +EXPORT_SYMBOL vmlinux 0x9505f019 dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x9508f166 param_ops_bint +EXPORT_SYMBOL vmlinux 0x950b6bac pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0x950e6702 scsi_host_put +EXPORT_SYMBOL vmlinux 0x9531cad9 pci_enable_obff +EXPORT_SYMBOL vmlinux 0x95395301 acpi_exception +EXPORT_SYMBOL vmlinux 0x953bc83e scsi_get_command +EXPORT_SYMBOL vmlinux 0x953cd34f pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x9575988e twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0x95902e17 blkdev_get +EXPORT_SYMBOL vmlinux 0x95a49215 arp_tbl +EXPORT_SYMBOL vmlinux 0x95ae0c36 agp_bridge +EXPORT_SYMBOL vmlinux 0x95b1bc94 first_ec +EXPORT_SYMBOL vmlinux 0x95b56f5c __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x95d0ba06 agp_create_memory +EXPORT_SYMBOL vmlinux 0x95ed525f max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x95f89a33 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x96036a27 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x961a13a0 pid_task +EXPORT_SYMBOL vmlinux 0x9676121b elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x96800bc9 simple_rename +EXPORT_SYMBOL vmlinux 0x969c0f35 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x96b29254 strncasecmp +EXPORT_SYMBOL vmlinux 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL vmlinux 0x96cc7af3 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96e89436 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x96f4ad0c __page_cache_alloc +EXPORT_SYMBOL vmlinux 0x96ff1c8a sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0x9706c4fc skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x971695e9 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x971a8268 __bio_clone +EXPORT_SYMBOL vmlinux 0x971be0da tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x9725b589 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x972e74db inet6_protos +EXPORT_SYMBOL vmlinux 0x973fa82e register_acpi_notifier +EXPORT_SYMBOL vmlinux 0x9749196b blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x97730479 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x9775568d starget_for_each_device +EXPORT_SYMBOL vmlinux 0x97868aef __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x9786ef94 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x97a60e3d param_get_bool +EXPORT_SYMBOL vmlinux 0x97bb27c0 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x97c5bd0a acpi_unload_parent_table +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97f511e8 lock_may_read +EXPORT_SYMBOL vmlinux 0x97f914df pci_enable_msi_block_auto +EXPORT_SYMBOL vmlinux 0x97f9e548 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x9820b644 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x9829fc11 __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0x984c0ccd ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x986db78e swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98782c9e twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x988f58f8 pipe_lock +EXPORT_SYMBOL vmlinux 0x98992f39 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x98d6d206 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x98e8ec99 dst_destroy +EXPORT_SYMBOL vmlinux 0x98f1496f vfs_read +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x99065f0a truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x99131518 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x99195078 vsnprintf +EXPORT_SYMBOL vmlinux 0x993192c6 netdev_features_change +EXPORT_SYMBOL vmlinux 0x994d11ed ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x9953c97a wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x99591a7a ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x9979679a eth_header +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99b20bc2 secpath_dup +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d3a43c dm_table_get_size +EXPORT_SYMBOL vmlinux 0x99daa9bf try_offline_node +EXPORT_SYMBOL vmlinux 0x99f068d5 x86_cpu_to_node_map +EXPORT_SYMBOL vmlinux 0x99fc50bc is_bad_inode +EXPORT_SYMBOL vmlinux 0x9a022552 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1fc4b4 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9a308dc1 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x9a46e8dc vfs_unlink +EXPORT_SYMBOL vmlinux 0x9a47fe3d neigh_app_ns +EXPORT_SYMBOL vmlinux 0x9a571d8c ip_options_compile +EXPORT_SYMBOL vmlinux 0x9a5ae938 __page_symlink +EXPORT_SYMBOL vmlinux 0x9a5ffc64 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x9a7012b7 dm_get_device +EXPORT_SYMBOL vmlinux 0x9aa3574f pcie_get_minimum_link +EXPORT_SYMBOL vmlinux 0x9aaf2e9d sock_no_getname +EXPORT_SYMBOL vmlinux 0x9ab0d9d1 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x9ab82491 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x9ac87c05 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x9acd9060 iterate_dir +EXPORT_SYMBOL vmlinux 0x9aef01fb bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x9af89f98 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9b0b9fd0 key_link +EXPORT_SYMBOL vmlinux 0x9b2fef1c unregister_key_type +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b525725 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x9b55fd9a generic_show_options +EXPORT_SYMBOL vmlinux 0x9b58af42 start_tty +EXPORT_SYMBOL vmlinux 0x9b591d27 brioctl_set +EXPORT_SYMBOL vmlinux 0x9b6d29de block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x9b75cb81 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x9b765a25 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x9b768dde audit_log +EXPORT_SYMBOL vmlinux 0x9b7d428e mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x9b9e05f9 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bd33449 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x9be761b9 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x9be7bde4 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x9be88c2a skb_tx_error +EXPORT_SYMBOL vmlinux 0x9be98e8b vfs_llseek +EXPORT_SYMBOL vmlinux 0x9beb7d2f mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x9c101ac5 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x9c3c2c50 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c52672f dev_mc_sync +EXPORT_SYMBOL vmlinux 0x9c587a20 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x9c59f435 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x9c6fa99c qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x9c73f8e4 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x9ca6f924 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9cbf8889 mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x9cc44cc8 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x9cc8a624 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x9cdfd973 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x9cfb6747 send_sig_info +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d05f6c4 ktime_get_clocktai +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d1a5e3a __memcpy +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3bf7d1 read_code +EXPORT_SYMBOL vmlinux 0x9d549e44 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x9dc69c34 pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e16d57a dev_queue_xmit_accel +EXPORT_SYMBOL vmlinux 0x9e2f8c90 lz4_decompress_unknownoutputsize +EXPORT_SYMBOL vmlinux 0x9e363b6b acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e52959c dma_set_mask +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e6a470c amd_iommu_domain_direct_map +EXPORT_SYMBOL vmlinux 0x9e7b31b8 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ec4902d mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x9ed2eec7 param_set_ushort +EXPORT_SYMBOL vmlinux 0x9ee0ba60 md_register_thread +EXPORT_SYMBOL vmlinux 0x9f098f58 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x9f127d56 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f40b064 vlan_uses_dev +EXPORT_SYMBOL vmlinux 0x9f420d4c find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f6104bc cfb_imageblit +EXPORT_SYMBOL vmlinux 0x9f6118b8 padata_free +EXPORT_SYMBOL vmlinux 0x9f6e19ab mem_section +EXPORT_SYMBOL vmlinux 0x9f708690 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x9f92adf4 kset_register +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fae1a69 locks_free_lock +EXPORT_SYMBOL vmlinux 0x9fb615b9 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x9fc0f5d1 iget_failed +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0x9ffbba41 kernel_read +EXPORT_SYMBOL vmlinux 0xa004a725 arp_xmit +EXPORT_SYMBOL vmlinux 0xa00aca2a dql_completed +EXPORT_SYMBOL vmlinux 0xa014baeb xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xa022b04b scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xa03c1057 bio_copy_user +EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa051a570 sock_no_poll +EXPORT_SYMBOL vmlinux 0xa05922ae dma_find_channel +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa05f372e seq_printf +EXPORT_SYMBOL vmlinux 0xa07a37f0 memchr +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa0834a47 gen_pool_free +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0dad88e netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0xa0dfc78a netlink_unicast +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0f27128 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xa0f389ad dquot_drop +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0ff74d6 udp_memory_allocated +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa1166917 fb_set_var +EXPORT_SYMBOL vmlinux 0xa11aac63 fsync_bdev +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa15186bf ip6_expire_frag_queue +EXPORT_SYMBOL vmlinux 0xa1a893f0 dev_activate +EXPORT_SYMBOL vmlinux 0xa1ae34a4 rtnl_notify +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1bc1a0a scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1c78cc0 set_anon_super +EXPORT_SYMBOL vmlinux 0xa1e13c62 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xa1fc359a dquot_release +EXPORT_SYMBOL vmlinux 0xa202a8e5 kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa22d501f tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xa23994f6 padata_do_parallel +EXPORT_SYMBOL vmlinux 0xa23bf423 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xa23fd7be netdev_emerg +EXPORT_SYMBOL vmlinux 0xa28040cc lookup_bdev +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL vmlinux 0xa28a3184 bio_pair_release +EXPORT_SYMBOL vmlinux 0xa29acd4a vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL vmlinux 0xa2af98e6 phy_stop +EXPORT_SYMBOL vmlinux 0xa2b4f698 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xa2c23ec9 sock_i_ino +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa3252c1c scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xa326af8c sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0xa3333cb1 sk_filter +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa3682862 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xa373cb2a devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xa3874f06 netdev_warn +EXPORT_SYMBOL vmlinux 0xa3a77c69 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa3be1310 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xa3f96685 wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0xa3fc3d50 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0xa400159f crc32_be +EXPORT_SYMBOL vmlinux 0xa407fd34 skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0xa40bdabc xfrm_register_km +EXPORT_SYMBOL vmlinux 0xa41b1eb8 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xa428e106 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xa43332c8 __kfree_skb +EXPORT_SYMBOL vmlinux 0xa4509bf7 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xa4511467 crc16 +EXPORT_SYMBOL vmlinux 0xa457505b write_inode_now +EXPORT_SYMBOL vmlinux 0xa458118e dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0xa4701e9e timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0xa4710020 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0xa47d68e5 alloc_fcdev +EXPORT_SYMBOL vmlinux 0xa47df104 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xa48629c5 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xa4a3a041 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4d82a29 ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0xa4fbe363 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0xa4fd49b7 seq_bitmap +EXPORT_SYMBOL vmlinux 0xa5098fac skb_copy_bits +EXPORT_SYMBOL vmlinux 0xa51df2b4 down_killable +EXPORT_SYMBOL vmlinux 0xa52e03b7 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xa53a83a0 mdiobus_scan +EXPORT_SYMBOL vmlinux 0xa5430bdf __ht_create_irq +EXPORT_SYMBOL vmlinux 0xa54ad8dd serio_open +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa55e6215 twl6040_get_pll +EXPORT_SYMBOL vmlinux 0xa56795f7 netdev_err +EXPORT_SYMBOL vmlinux 0xa58a3166 lg_local_lock +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a48714 eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0xa5bc317c vfs_open +EXPORT_SYMBOL vmlinux 0xa5e4f65c __next_cpu_nr +EXPORT_SYMBOL vmlinux 0xa5e5586a xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xa601f654 acpi_device_set_power +EXPORT_SYMBOL vmlinux 0xa62f13c9 cdev_del +EXPORT_SYMBOL vmlinux 0xa63a2f9b param_get_ulong +EXPORT_SYMBOL vmlinux 0xa63d579c tcp_ioctl +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa64cfc99 elevator_init +EXPORT_SYMBOL vmlinux 0xa66cc157 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0xa6715115 do_settimeofday +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa68f39d8 inet_frags_init +EXPORT_SYMBOL vmlinux 0xa69b1d36 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0xa6a1ea4b pipe_unlock +EXPORT_SYMBOL vmlinux 0xa6a31add __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0xa6bd63ca acpi_bios_error +EXPORT_SYMBOL vmlinux 0xa70e7b13 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0xa70f2fe0 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71d9ecc sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xa7269295 devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0xa729e96f dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa735db59 prandom_u32 +EXPORT_SYMBOL vmlinux 0xa73c89d4 __invalidate_device +EXPORT_SYMBOL vmlinux 0xa77d578f sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xa78516cf sg_miter_start +EXPORT_SYMBOL vmlinux 0xa7a1c232 set_binfmt +EXPORT_SYMBOL vmlinux 0xa7b038fe key_unlink +EXPORT_SYMBOL vmlinux 0xa7c3aa7e pcie_port_service_register +EXPORT_SYMBOL vmlinux 0xa7e21ed0 lease_modify +EXPORT_SYMBOL vmlinux 0xa8110a5d pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xa811daa3 d_path +EXPORT_SYMBOL vmlinux 0xa81af43c security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa82a9ec2 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xa83e68a5 dev_get_stats +EXPORT_SYMBOL vmlinux 0xa8426acc n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa85df551 qdisc_destroy +EXPORT_SYMBOL vmlinux 0xa8721b97 system_state +EXPORT_SYMBOL vmlinux 0xa893f9a4 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8b93287 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0xa8b9acb6 __d_drop +EXPORT_SYMBOL vmlinux 0xa8bc1807 invalidate_partition +EXPORT_SYMBOL vmlinux 0xa8cffefe __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xa8f66bba scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa916b694 strnlen +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa91ca689 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xa93c5a4f mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xa94c382d i2c_del_driver +EXPORT_SYMBOL vmlinux 0xa95d3cdb gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0xa96d8ecd unregister_filesystem +EXPORT_SYMBOL vmlinux 0xa97874ab sock_setsockopt +EXPORT_SYMBOL vmlinux 0xa981fa2d iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0xa987d622 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xa9a8e17f arch_phys_wc_add +EXPORT_SYMBOL vmlinux 0xa9a96fa5 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xa9b9fa72 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc +EXPORT_SYMBOL vmlinux 0xa9c5db09 flush_old_exec +EXPORT_SYMBOL vmlinux 0xa9d8f55e ida_simple_remove +EXPORT_SYMBOL vmlinux 0xaa0073b7 __net_get_random_once +EXPORT_SYMBOL vmlinux 0xaa580751 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xaa636278 pci_enable_ltr +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa821421 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xaa86e4a8 set_create_files_as +EXPORT_SYMBOL vmlinux 0xaa9087c0 param_ops_string +EXPORT_SYMBOL vmlinux 0xaaa1c875 ip_defrag +EXPORT_SYMBOL vmlinux 0xaacb9773 inode_init_once +EXPORT_SYMBOL vmlinux 0xaad06f76 build_skb +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaae68c1e free_buffer_head +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xaafe2c62 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xab164ac7 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0xab24e312 remap_vmalloc_range_partial +EXPORT_SYMBOL vmlinux 0xab2abddf dma_spin_lock +EXPORT_SYMBOL vmlinux 0xab34f669 d_instantiate +EXPORT_SYMBOL vmlinux 0xab48c52b set_groups +EXPORT_SYMBOL vmlinux 0xab56b5f2 __put_cred +EXPORT_SYMBOL vmlinux 0xab5d7b7e mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab660934 bio_map_user +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xab84ef28 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0xab964f83 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0xab9c9bee i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xabacc3f6 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0xabbedb54 input_register_handle +EXPORT_SYMBOL vmlinux 0xabc6dd63 cpufreq_sysfs_create_file +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabdb0b7d amd_iommu_domain_enable_v2 +EXPORT_SYMBOL vmlinux 0xac08bc07 cad_pid +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac0f6c83 __cleancache_invalidate_page +EXPORT_SYMBOL vmlinux 0xac1083e6 pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac28be56 iget_locked +EXPORT_SYMBOL vmlinux 0xac3c7b7c __lock_buffer +EXPORT_SYMBOL vmlinux 0xac3d20e2 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac7f6dfd __mutex_init +EXPORT_SYMBOL vmlinux 0xac80abcc inetdev_by_index +EXPORT_SYMBOL vmlinux 0xac822c71 inet_release +EXPORT_SYMBOL vmlinux 0xac8cc634 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacc1c8ed netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xacc5e30c vfs_readlink +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacd424da elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad01744f kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad164875 kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xad2a8bd2 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0xad3163f5 dma_ops +EXPORT_SYMBOL vmlinux 0xad380efa iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xad41d927 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xad45a838 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xad477f89 d_move +EXPORT_SYMBOL vmlinux 0xad47ab93 elv_rb_find +EXPORT_SYMBOL vmlinux 0xad6d0b95 inet_put_port +EXPORT_SYMBOL vmlinux 0xad7d03ce nf_register_hook +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad96deda fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xad9a85d6 ipmi_get_smi_info +EXPORT_SYMBOL vmlinux 0xada54d2f inode_dio_wait +EXPORT_SYMBOL vmlinux 0xada60489 agp_bind_memory +EXPORT_SYMBOL vmlinux 0xadcfdcdb dev_addr_flush +EXPORT_SYMBOL vmlinux 0xaddd7f8e genlmsg_put +EXPORT_SYMBOL vmlinux 0xae01d77f nobh_write_end +EXPORT_SYMBOL vmlinux 0xae42309c splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xae42d7f9 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0xae436194 adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0xae5b8932 sk_release_kernel +EXPORT_SYMBOL vmlinux 0xae643a73 vmap +EXPORT_SYMBOL vmlinux 0xae729e59 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaeb2b8a3 set_page_dirty +EXPORT_SYMBOL vmlinux 0xaed9103d compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xaee8c77a blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xaefc5b48 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0xaefd4a17 __pci_register_driver +EXPORT_SYMBOL vmlinux 0xaf0ce1e6 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xaf3a49f6 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf611eac amd_nb_misc_ids +EXPORT_SYMBOL vmlinux 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL vmlinux 0xaf6ae696 kstrndup +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf95e762 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xaf9e2360 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xafad493b param_ops_ushort +EXPORT_SYMBOL vmlinux 0xafb8c6ff copy_user_generic_string +EXPORT_SYMBOL vmlinux 0xafd344d5 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xafd5ff2c amd_iommu_v2_supported +EXPORT_SYMBOL vmlinux 0xb0096378 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xb01b1db8 intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0xb02b630b mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xb03194f9 backlight_device_register +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb0726985 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xb0915974 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0cac8f1 inet_frag_find +EXPORT_SYMBOL vmlinux 0xb0cdb04a phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e452c6 mmc_start_req +EXPORT_SYMBOL vmlinux 0xb0e602eb memmove +EXPORT_SYMBOL vmlinux 0xb0ebea22 phy_find_first +EXPORT_SYMBOL vmlinux 0xb0ffda2f blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xb116bafc unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xb11de135 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb122cd41 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xb12a214d inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0xb12aa883 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb13474cf ip_check_defrag +EXPORT_SYMBOL vmlinux 0xb138d0bf dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0xb146d1f8 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xb149257f filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xb1561a2c devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb1929478 unlock_rename +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb198dba6 __scsi_add_device +EXPORT_SYMBOL vmlinux 0xb1a8f6a8 phy_detach +EXPORT_SYMBOL vmlinux 0xb1a97dcc mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0xb1b366f2 block_write_begin +EXPORT_SYMBOL vmlinux 0xb1b42470 idr_init +EXPORT_SYMBOL vmlinux 0xb1bc2d6a key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xb1c21d67 inet_frag_kill +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c797cd sock_no_bind +EXPORT_SYMBOL vmlinux 0xb1cf20e0 bdget +EXPORT_SYMBOL vmlinux 0xb1cf44df fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1d67563 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0xb1db9e4e param_get_invbool +EXPORT_SYMBOL vmlinux 0xb1ec055d __skb_get_hash +EXPORT_SYMBOL vmlinux 0xb1fb3188 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0xb2044729 netif_rx +EXPORT_SYMBOL vmlinux 0xb20ecf88 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb22bedbe phy_get_eee_err +EXPORT_SYMBOL vmlinux 0xb232100e simple_transaction_set +EXPORT_SYMBOL vmlinux 0xb234e361 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0xb239ffb0 sk_ns_capable +EXPORT_SYMBOL vmlinux 0xb23d0841 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0xb243d003 kmem_cache_create +EXPORT_SYMBOL vmlinux 0xb2459921 open_exec +EXPORT_SYMBOL vmlinux 0xb2672c1d filemap_flush +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2a35506 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xb2b689ec seq_write +EXPORT_SYMBOL vmlinux 0xb2be6e92 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xb2be9534 neigh_destroy +EXPORT_SYMBOL vmlinux 0xb2c194fb mmc_put_card +EXPORT_SYMBOL vmlinux 0xb2ce8d34 __ip_dev_find +EXPORT_SYMBOL vmlinux 0xb2d5e6e4 ll_rw_block +EXPORT_SYMBOL vmlinux 0xb2e08e7b lg_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xb2ebf97b max8998_bulk_read +EXPORT_SYMBOL vmlinux 0xb2edf9b1 may_umount_tree +EXPORT_SYMBOL vmlinux 0xb2f6ea27 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0xb2f74fb6 intel_gmch_remove +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb304bb65 pci_request_regions +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb36bc4d2 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0xb3a0029d jbd2__journal_start +EXPORT_SYMBOL vmlinux 0xb3a1957a scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xb3b15eed xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xb3effd97 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb40186df d_alloc_name +EXPORT_SYMBOL vmlinux 0xb41a77a3 set_pages_nx +EXPORT_SYMBOL vmlinux 0xb41bd7ea kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xb41e3c67 mmc_of_parse +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb425f311 console_start +EXPORT_SYMBOL vmlinux 0xb42ed3e2 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xb43596ba __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0xb44188ef ip_getsockopt +EXPORT_SYMBOL vmlinux 0xb445a3c3 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xb44e4f56 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb47189b5 reservation_ww_class +EXPORT_SYMBOL vmlinux 0xb476e6e6 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xb47d7916 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xb4830e40 mmc_gpio_request_cd +EXPORT_SYMBOL vmlinux 0xb49475b8 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xb4af92c1 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0xb4d21875 simple_release_fs +EXPORT_SYMBOL vmlinux 0xb4e9e68c pci_set_mwi +EXPORT_SYMBOL vmlinux 0xb4ffbf80 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xb5039fdc max8925_reg_read +EXPORT_SYMBOL vmlinux 0xb524a0ea genphy_read_status +EXPORT_SYMBOL vmlinux 0xb52ee8be intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb57343c2 frontswap_shrink +EXPORT_SYMBOL vmlinux 0xb57f2457 sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0xb5880203 proc_set_user +EXPORT_SYMBOL vmlinux 0xb59a0c1e register_xen_selfballooning +EXPORT_SYMBOL vmlinux 0xb5a269bb ppp_input +EXPORT_SYMBOL vmlinux 0xb5a32a65 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5b4a199 icmp_send +EXPORT_SYMBOL vmlinux 0xb5be1894 blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5dcab5b remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb5dd3482 simple_lookup +EXPORT_SYMBOL vmlinux 0xb5ee13ca bio_reset +EXPORT_SYMBOL vmlinux 0xb60a8e2f padata_remove_cpu +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb6394d4b param_set_bint +EXPORT_SYMBOL vmlinux 0xb63f9a28 xfrm_input +EXPORT_SYMBOL vmlinux 0xb66d8bb1 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb69347f3 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb6987b84 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6b46a7c param_ops_int +EXPORT_SYMBOL vmlinux 0xb6bee329 md_finish_reshape +EXPORT_SYMBOL vmlinux 0xb6c2065b __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node +EXPORT_SYMBOL vmlinux 0xb6d39a92 __dev_remove_offload +EXPORT_SYMBOL vmlinux 0xb707df6b bio_map_kern +EXPORT_SYMBOL vmlinux 0xb70ae204 module_put +EXPORT_SYMBOL vmlinux 0xb73de515 revalidate_disk +EXPORT_SYMBOL vmlinux 0xb749ae89 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xb755f031 spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb75e89d2 nla_reserve +EXPORT_SYMBOL vmlinux 0xb76d8398 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xb77131b1 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xb7b1ba8d dst_discard +EXPORT_SYMBOL vmlinux 0xb7f47feb inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0xb80adfd9 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xb81f5509 generic_ro_fops +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb84d3732 kernel_accept +EXPORT_SYMBOL vmlinux 0xb85327df pnp_device_attach +EXPORT_SYMBOL vmlinux 0xb8566598 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xb85fd8c7 bio_integrity_split +EXPORT_SYMBOL vmlinux 0xb861550b pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xb86a3cca set_blocksize +EXPORT_SYMBOL vmlinux 0xb874b87a __clzsi2 +EXPORT_SYMBOL vmlinux 0xb8765479 neigh_update +EXPORT_SYMBOL vmlinux 0xb87bad84 sk_alloc +EXPORT_SYMBOL vmlinux 0xb8a2538b acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0xb8d5e0b6 pci_release_regions +EXPORT_SYMBOL vmlinux 0xb8d73e97 param_set_uint +EXPORT_SYMBOL vmlinux 0xb8d894bc blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8edf2eb bitmap_unplug +EXPORT_SYMBOL vmlinux 0xb8f28162 devm_request_and_ioremap +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb9231e4b md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xb9249d16 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xb931acaf blk_mq_free_queue +EXPORT_SYMBOL vmlinux 0xb95434a1 force_sig +EXPORT_SYMBOL vmlinux 0xb95620d2 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xb974d5e6 input_release_device +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb998acde tcp_seq_open +EXPORT_SYMBOL vmlinux 0xb998edc6 kill_litter_super +EXPORT_SYMBOL vmlinux 0xb9b4e181 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0xb9bce4c1 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0xb9bf2b9e i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xb9c928d7 __free_pages +EXPORT_SYMBOL vmlinux 0xb9e8e2cc in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba011b47 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xba174387 netpoll_rx_enable +EXPORT_SYMBOL vmlinux 0xba18f6c1 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba31f20b i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xba322dd3 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba63339c _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xba65144b inet6_bind +EXPORT_SYMBOL vmlinux 0xba6cceb3 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xba7189a6 phy_start +EXPORT_SYMBOL vmlinux 0xba8a4598 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xba90f067 dev_uc_add +EXPORT_SYMBOL vmlinux 0xbabfb715 scsi_free_command +EXPORT_SYMBOL vmlinux 0xbae066e7 twl6040_set_bits +EXPORT_SYMBOL vmlinux 0xbae15354 make_kprojid +EXPORT_SYMBOL vmlinux 0xbaf61251 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb2db38b nf_nat_decode_session_hook +EXPORT_SYMBOL vmlinux 0xbb3a6172 init_buffer +EXPORT_SYMBOL vmlinux 0xbb409974 single_open_size +EXPORT_SYMBOL vmlinux 0xbb4f4766 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xbb59801a elv_add_request +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb68aa39 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xbb713e6d sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0xbb8f280d jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbadf45e xfrm_state_update +EXPORT_SYMBOL vmlinux 0xbbaeb559 memcg_socket_limit_enabled +EXPORT_SYMBOL vmlinux 0xbbd3ba62 dma_supported +EXPORT_SYMBOL vmlinux 0xbbfcaca5 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc2662bb dm_unregister_target +EXPORT_SYMBOL vmlinux 0xbc2978e9 lg_global_lock +EXPORT_SYMBOL vmlinux 0xbc37ba45 find_lock_page +EXPORT_SYMBOL vmlinux 0xbc502e70 input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0xbc50b901 ata_print_version +EXPORT_SYMBOL vmlinux 0xbc9e432b block_commit_write +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbd09cd54 pci_alloc_dev +EXPORT_SYMBOL vmlinux 0xbd100793 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xbd265904 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xbd318c45 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xbd36a219 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xbd462b55 __kfifo_init +EXPORT_SYMBOL vmlinux 0xbd89e0ac tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xbd8f9155 dev_err +EXPORT_SYMBOL vmlinux 0xbda4748d mmc_remove_host +EXPORT_SYMBOL vmlinux 0xbdaf5b07 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0xbdbfa52c kfree_put_link +EXPORT_SYMBOL vmlinux 0xbdd39d5f bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xbdf9acee node_data +EXPORT_SYMBOL vmlinux 0xbdfb6dbb __fentry__ +EXPORT_SYMBOL vmlinux 0xbe01f3e0 skb_push +EXPORT_SYMBOL vmlinux 0xbe134e23 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xbe18153d try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe3460eb scsi_init_io +EXPORT_SYMBOL vmlinux 0xbe3ae0f4 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xbe492f66 proto_register +EXPORT_SYMBOL vmlinux 0xbe5018e0 unlock_buffer +EXPORT_SYMBOL vmlinux 0xbe50a75e scsi_remove_device +EXPORT_SYMBOL vmlinux 0xbea216c3 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xbec30d05 x86_match_cpu +EXPORT_SYMBOL vmlinux 0xbecd87fd ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xbee90f7e skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef763cb capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0xbefa433d mmc_detect_change +EXPORT_SYMBOL vmlinux 0xbf08a4ff phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xbf0e623d tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xbf13a9ca fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xbf18f3b1 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xbf23d6c3 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xbf2816d2 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xbf33c7a1 scsi_put_command +EXPORT_SYMBOL vmlinux 0xbf418ef4 skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0xbf6810ec kernel_write +EXPORT_SYMBOL vmlinux 0xbf69ac2d sock_wfree +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf83320f free_user_ns +EXPORT_SYMBOL vmlinux 0xbf840d6a netlink_capable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfb0bd0f md_unregister_thread +EXPORT_SYMBOL vmlinux 0xbfb485a6 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff0235e d_set_d_op +EXPORT_SYMBOL vmlinux 0xc00037e0 inet_sendpage +EXPORT_SYMBOL vmlinux 0xc0035815 put_io_context +EXPORT_SYMBOL vmlinux 0xc00c9071 elv_rb_add +EXPORT_SYMBOL vmlinux 0xc01cf848 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xc01ff43c scsi_prep_return +EXPORT_SYMBOL vmlinux 0xc025edc6 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc02fdbc6 bdgrab +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc0846461 proc_remove +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0b4e989 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0xc0b6a6be mnt_pin +EXPORT_SYMBOL vmlinux 0xc0e80856 release_sock +EXPORT_SYMBOL vmlinux 0xc0f955cd inode_init_owner +EXPORT_SYMBOL vmlinux 0xc10d4394 scsi_print_result +EXPORT_SYMBOL vmlinux 0xc14d4436 blk_end_request +EXPORT_SYMBOL vmlinux 0xc15a44c6 memzero_explicit +EXPORT_SYMBOL vmlinux 0xc171d966 fget +EXPORT_SYMBOL vmlinux 0xc196a10d __devm_release_region +EXPORT_SYMBOL vmlinux 0xc1c047d1 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1c397a7 amd_northbridges +EXPORT_SYMBOL vmlinux 0xc1c83d21 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0xc1ce7fa3 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xc1da7899 netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0xc1e42e14 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0xc1f2f4d0 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0xc1f31539 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xc1f94fba security_inode_init_security +EXPORT_SYMBOL vmlinux 0xc2088eb2 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc245fbb7 simple_transaction_read +EXPORT_SYMBOL vmlinux 0xc2506d23 inet_bind +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc293ee68 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0xc29bf967 strspn +EXPORT_SYMBOL vmlinux 0xc2b5ecd1 devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0xc2be5d5d kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xc2d05bbd da903x_query_status +EXPORT_SYMBOL vmlinux 0xc2e56ed9 pci_enable_device +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2e73432 __test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xc2f6a274 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0xc2f9c045 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xc2fca153 tcp_gso_segment +EXPORT_SYMBOL vmlinux 0xc310b981 strnstr +EXPORT_SYMBOL vmlinux 0xc3126428 block_read_full_page +EXPORT_SYMBOL vmlinux 0xc312c38e generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xc35a6a00 seq_puts +EXPORT_SYMBOL vmlinux 0xc369dafa __mmc_claim_host +EXPORT_SYMBOL vmlinux 0xc37e5950 __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0xc398df2d dev_open +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3b4f081 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xc3b854ec vga_tryget +EXPORT_SYMBOL vmlinux 0xc3beed1b dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xc3c63631 d_find_alias +EXPORT_SYMBOL vmlinux 0xc3d2eebd ps2_begin_command +EXPORT_SYMBOL vmlinux 0xc42c808f rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0xc4382c5b freeze_bdev +EXPORT_SYMBOL vmlinux 0xc4442643 security_file_permission +EXPORT_SYMBOL vmlinux 0xc44ae325 default_qdisc_ops +EXPORT_SYMBOL vmlinux 0xc462aa54 ilookup5 +EXPORT_SYMBOL vmlinux 0xc479b441 serio_interrupt +EXPORT_SYMBOL vmlinux 0xc48307db lz4_decompress +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49e1e74 dquot_acquire +EXPORT_SYMBOL vmlinux 0xc49fff60 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xc4a5af9d blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xc4cfbc37 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0xc4d2314c vm_event_states +EXPORT_SYMBOL vmlinux 0xc4d9cc3a pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xc4e37293 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xc4ede791 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xc5011772 skb_free_datagram +EXPORT_SYMBOL vmlinux 0xc520438c file_update_time +EXPORT_SYMBOL vmlinux 0xc52b7068 __alloc_skb +EXPORT_SYMBOL vmlinux 0xc52f4ffa tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xc538ab98 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc554ebc1 scsi_register_driver +EXPORT_SYMBOL vmlinux 0xc558530d profile_pc +EXPORT_SYMBOL vmlinux 0xc55ddcc7 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xc578481e scsi_add_device +EXPORT_SYMBOL vmlinux 0xc57debb3 inet6_register_icmp_sender +EXPORT_SYMBOL vmlinux 0xc589e044 param_set_long +EXPORT_SYMBOL vmlinux 0xc5991066 drop_super +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5d9ec57 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xc5f9c35e dquot_disable +EXPORT_SYMBOL vmlinux 0xc5fdef94 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xc61a63c5 eth_header_cache +EXPORT_SYMBOL vmlinux 0xc61a9e7a kern_path_create +EXPORT_SYMBOL vmlinux 0xc61ce51f sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc63fd772 set_user_nice +EXPORT_SYMBOL vmlinux 0xc64c652d xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xc64c88af dst_release +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc6656f58 ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0xc666a132 crc_t10dif +EXPORT_SYMBOL vmlinux 0xc69ead09 eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0xc6a66180 rwsem_wake +EXPORT_SYMBOL vmlinux 0xc6b368d3 acpi_gpe_count +EXPORT_SYMBOL vmlinux 0xc6c6bc1d input_register_device +EXPORT_SYMBOL vmlinux 0xc6cb465a __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6cbdf92 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xc6ceded6 scsi_unregister +EXPORT_SYMBOL vmlinux 0xc6e49179 dev_close +EXPORT_SYMBOL vmlinux 0xc6ed07bd mmc_gpio_free_cd +EXPORT_SYMBOL vmlinux 0xc6f1dcae agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0xc6f68c28 ip6_route_output +EXPORT_SYMBOL vmlinux 0xc70b30f9 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xc70de1c8 bio_split +EXPORT_SYMBOL vmlinux 0xc715d9e0 boot_cpu_data +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc72cec63 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xc76a5652 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xc770d15c idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc79bb554 do_splice_direct +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7b9a5f3 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xc7c340de tcp_shutdown +EXPORT_SYMBOL vmlinux 0xc7d05213 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xc7d8dfa7 neigh_seq_next +EXPORT_SYMBOL vmlinux 0xc7dcd9ee bio_phys_segments +EXPORT_SYMBOL vmlinux 0xc7e1e76a kill_block_super +EXPORT_SYMBOL vmlinux 0xc7f6dca3 lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0xc7f8a1a1 file_open_root +EXPORT_SYMBOL vmlinux 0xc7fc0331 blk_integrity_register +EXPORT_SYMBOL vmlinux 0xc7ffe493 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0xc83b4d5b posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xc845f61c blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc85b2f08 km_report +EXPORT_SYMBOL vmlinux 0xc86d7e2d get_thermal_instance +EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0xc881e542 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8995da6 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8cab1fa locks_remove_posix +EXPORT_SYMBOL vmlinux 0xc8de363b netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0xc8e0abef generic_write_checks +EXPORT_SYMBOL vmlinux 0xc8f6dab1 get_phy_device +EXPORT_SYMBOL vmlinux 0xc8f8de58 ab3100_event_register +EXPORT_SYMBOL vmlinux 0xc9036ac2 skb_queue_purge +EXPORT_SYMBOL vmlinux 0xc9076890 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xc90b20e2 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0xc978479a xz_dec_run +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc9a7e3e7 blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc9a9e261 get_super +EXPORT_SYMBOL vmlinux 0xc9b7a99b compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xc9bcb845 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xc9c39193 devm_gpio_request_one +EXPORT_SYMBOL vmlinux 0xc9c8ac7c alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0xca02774c fb_set_suspend +EXPORT_SYMBOL vmlinux 0xca258ee2 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0xca3462fa pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xca4ca404 gen_pool_create +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca7e2687 mark_page_accessed +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xcac89f81 dev_uc_del +EXPORT_SYMBOL vmlinux 0xcaeefd60 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xcaef1b77 idr_remove +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb0580c9 nla_append +EXPORT_SYMBOL vmlinux 0xcb0c5d50 param_get_uint +EXPORT_SYMBOL vmlinux 0xcb1080d8 get_user_pages +EXPORT_SYMBOL vmlinux 0xcb166b4b simple_getattr +EXPORT_SYMBOL vmlinux 0xcb18cb56 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcba14ce5 __idr_remove_all +EXPORT_SYMBOL vmlinux 0xcba35b5e inode_set_bytes +EXPORT_SYMBOL vmlinux 0xcbae6c7a acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xcbbb785a pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xcbbe818a nf_log_unregister +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbca71ea unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xcbeace1c blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xcc0c7643 __dquot_transfer +EXPORT_SYMBOL vmlinux 0xcc1460c4 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xcc173cab acpi_walk_resource_buffer +EXPORT_SYMBOL vmlinux 0xcc22d365 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc37f55c blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc7696c8 blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0xcc76beea skb_dequeue +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc8121d9 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xcc9fee4b blk_rq_map_user +EXPORT_SYMBOL vmlinux 0xccc12cf0 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0xccc21f5e input_get_new_minor +EXPORT_SYMBOL vmlinux 0xccf1d9ff pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xccf846a7 __nla_put +EXPORT_SYMBOL vmlinux 0xccf98f2d agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0xccfdbc4c sock_sendmsg +EXPORT_SYMBOL vmlinux 0xcd165e9f uart_update_timeout +EXPORT_SYMBOL vmlinux 0xcd20667a kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd3bc598 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xcd4d4c6f pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0xcd5dc3f3 vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0xcd7dad18 netif_device_detach +EXPORT_SYMBOL vmlinux 0xcda143d3 gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0xcdb43722 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcdc9e3eb copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xcde0e500 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xce09fc3d alloc_xenballooned_pages +EXPORT_SYMBOL vmlinux 0xce0d1a20 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xce0f5a21 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xce274592 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce4e47b6 __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce6220b5 pnp_possible_config +EXPORT_SYMBOL vmlinux 0xce62cbe8 dcb_getapp +EXPORT_SYMBOL vmlinux 0xce6bc829 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0xce8af66f sock_edemux +EXPORT_SYMBOL vmlinux 0xcea51fcc bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf000203 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xcf11c085 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xcf21d241 __wake_up +EXPORT_SYMBOL vmlinux 0xcf3e4354 mddev_congested +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf8683f3 noop_fsync +EXPORT_SYMBOL vmlinux 0xcf996e46 vfs_getattr +EXPORT_SYMBOL vmlinux 0xcf9f6e71 register_key_type +EXPORT_SYMBOL vmlinux 0xcfb41811 scsi_register +EXPORT_SYMBOL vmlinux 0xcfb4f147 follow_down_one +EXPORT_SYMBOL vmlinux 0xcfbc709c bh_submit_read +EXPORT_SYMBOL vmlinux 0xcfcb5a9c d_instantiate_no_diralias +EXPORT_SYMBOL vmlinux 0xcfcd41c0 bio_copy_data +EXPORT_SYMBOL vmlinux 0xcfd450f5 icmpv6_send +EXPORT_SYMBOL vmlinux 0xcfea399c xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xd0022c17 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xd00a74d2 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd01b311e inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xd0298b8b proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xd032161f ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0xd033f413 seq_release_private +EXPORT_SYMBOL vmlinux 0xd067fc5c proc_dointvec +EXPORT_SYMBOL vmlinux 0xd06ad478 pci_target_state +EXPORT_SYMBOL vmlinux 0xd0720a17 on_each_cpu_cond +EXPORT_SYMBOL vmlinux 0xd08a0697 set_device_ro +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0ac326b ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xd0c34ea6 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0xd0c6f32c jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xd0d0aa72 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0e913f6 dump_emit +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd0ff9557 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xd1058011 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xd117b442 neigh_for_each +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd14b99b1 __napi_schedule +EXPORT_SYMBOL vmlinux 0xd1652a93 acpi_info +EXPORT_SYMBOL vmlinux 0xd1816f32 frontswap_writethrough +EXPORT_SYMBOL vmlinux 0xd18674b2 netdev_info +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd18cffe5 amd_iommu_flush_page +EXPORT_SYMBOL vmlinux 0xd195d3dd xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0xd197a4f6 netlink_net_capable +EXPORT_SYMBOL vmlinux 0xd1981610 ata_dev_printk +EXPORT_SYMBOL vmlinux 0xd1c8b3b1 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xd1cf7df9 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xd1daa2b0 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xd1e7bcea tty_port_close_end +EXPORT_SYMBOL vmlinux 0xd1e97e9c unlazy_fpu +EXPORT_SYMBOL vmlinux 0xd1eec6cb bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd20cf920 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xd2130401 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xd220cf8a jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0xd221e359 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xd227892e sleep_on +EXPORT_SYMBOL vmlinux 0xd231eb48 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xd2366c01 netlink_broadcast +EXPORT_SYMBOL vmlinux 0xd23e2f6a swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd2730fc3 netif_carrier_off +EXPORT_SYMBOL vmlinux 0xd2783038 __skb_checksum +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd2a18349 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0xd2b09ce5 __kmalloc +EXPORT_SYMBOL vmlinux 0xd2b3dde7 kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0xd2c4f16a napi_gro_flush +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2f055d1 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xd2f1b260 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xd2f75b29 vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0xd31b2aee blk_requeue_request +EXPORT_SYMBOL vmlinux 0xd333c75c release_firmware +EXPORT_SYMBOL vmlinux 0xd357dd6a dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xd35e249a _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0xd36257ba memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0xd3718879 compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0xd3719d59 paravirt_ticketlocks_enabled +EXPORT_SYMBOL vmlinux 0xd3a57838 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xd3aab11e sock_no_connect +EXPORT_SYMBOL vmlinux 0xd3dcab0b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xd3ddd0ca tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xd3f19dac ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0xd4026556 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0xd4111433 md_integrity_register +EXPORT_SYMBOL vmlinux 0xd415e786 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xd47db9f9 nf_afinfo +EXPORT_SYMBOL vmlinux 0xd4835ef8 dmi_check_system +EXPORT_SYMBOL vmlinux 0xd4b08e54 wait_for_completion_io +EXPORT_SYMBOL vmlinux 0xd4c63514 padata_start +EXPORT_SYMBOL vmlinux 0xd4e605a1 cdrom_check_events +EXPORT_SYMBOL vmlinux 0xd4edeb04 cpu_core_map +EXPORT_SYMBOL vmlinux 0xd4f0556a register_quota_format +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd51d4c14 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xd52bf1ce _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xd5485c95 udp6_csum_init +EXPORT_SYMBOL vmlinux 0xd5a95097 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xd5b1c802 input_unregister_device +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd611bca3 completion_done +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd62ce0a5 kobject_del +EXPORT_SYMBOL vmlinux 0xd648e564 fb_match_mode +EXPORT_SYMBOL vmlinux 0xd66d823e blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd688a93d blk_start_queue +EXPORT_SYMBOL vmlinux 0xd6a3c094 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xd6b2196a md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xd6b2b76e update_region +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6c8d7c2 truncate_setsize +EXPORT_SYMBOL vmlinux 0xd6d0439e generic_setlease +EXPORT_SYMBOL vmlinux 0xd6d2fdcd __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xd6df32b4 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd73181ad agp_generic_enable +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd77cad17 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xd79136c9 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a43669 xfrm_garbage_collect +EXPORT_SYMBOL vmlinux 0xd7b90983 serio_rescan +EXPORT_SYMBOL vmlinux 0xd7cbddda memcpy_toiovec +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd80395b1 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xd80c35bb swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0xd81be892 pci_disable_ido +EXPORT_SYMBOL vmlinux 0xd81d7c9c cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xd84572a5 bio_endio +EXPORT_SYMBOL vmlinux 0xd8537991 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xd8605ca7 dev_warn +EXPORT_SYMBOL vmlinux 0xd865c664 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xd86efc86 ether_setup +EXPORT_SYMBOL vmlinux 0xd87d92d7 vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0xd87dbe7f dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0xd8992369 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a1598b tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xd8a6b931 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0xd8b1816a blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xd8c085ad netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xd8c5a90e scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xd8c72cf0 ifla_policy +EXPORT_SYMBOL vmlinux 0xd8ded085 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8fb49e1 unlock_page +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd90ec703 __breadahead +EXPORT_SYMBOL vmlinux 0xd9112379 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xd91e7702 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0xd91fcb79 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0xd9294f08 block_truncate_page +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd92e16ba csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0xd93d89aa jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xd93e4fc2 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0xd93eefa1 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xd94322e7 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0xd94b919c km_query +EXPORT_SYMBOL vmlinux 0xd94bf93d inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xd9673393 mdiobus_read +EXPORT_SYMBOL vmlinux 0xd969b2c7 amd_e400_c1e_detected +EXPORT_SYMBOL vmlinux 0xd96d072c scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xd980e9cb inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd997abfc blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xd99d5e2c mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0xd9a9bb30 getname +EXPORT_SYMBOL vmlinux 0xd9ae4121 inet_add_offload +EXPORT_SYMBOL vmlinux 0xd9b55b2f fb_find_mode +EXPORT_SYMBOL vmlinux 0xd9fa0e69 abx500_register_ops +EXPORT_SYMBOL vmlinux 0xda0c5c6b kthread_bind +EXPORT_SYMBOL vmlinux 0xda20ec9d unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xda2478d0 param_ops_short +EXPORT_SYMBOL vmlinux 0xda34fbb2 fget_light +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda3e43d1 _raw_spin_unlock +EXPORT_SYMBOL vmlinux 0xda436e3a splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xda62b5ce pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0xda7593db mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda9f48ac ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0xdab933a1 phy_disconnect +EXPORT_SYMBOL vmlinux 0xdad4785a km_state_notify +EXPORT_SYMBOL vmlinux 0xdad9f106 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0xdaea6e0d mfd_clone_cell +EXPORT_SYMBOL vmlinux 0xdb1a8c87 ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xdb1ad634 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xdb2faca8 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xdb44eea9 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xdb4509f7 scsi_device_get +EXPORT_SYMBOL vmlinux 0xdb65737f audit_log_start +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb6a354b scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xdb76090a security_dentry_init_security +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb978a4c remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xdb99e1c1 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xdbb9328c override_creds +EXPORT_SYMBOL vmlinux 0xdbc3d93b simple_empty +EXPORT_SYMBOL vmlinux 0xdbc7dc5a con_copy_unimap +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdc02ef70 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc180603 key_invalidate +EXPORT_SYMBOL vmlinux 0xdc23db75 set_nlink +EXPORT_SYMBOL vmlinux 0xdc246851 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xdc3c41a8 __crypto_memneq +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc46d9bc __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xdc4ab260 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xdc4ee6de inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0xdc5699f9 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xdc57f532 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0xdc5ec49d buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0xdc6420e8 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xdc6ad4e8 inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0xdc8d1dde _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xdc8ec01b napi_gro_frags +EXPORT_SYMBOL vmlinux 0xdc8ed596 tcp_prequeue +EXPORT_SYMBOL vmlinux 0xdc92800c blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0xdcc83291 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xdcfb00fb xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xdcfde1bc jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xdd2f914f pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xdd370963 softnet_data +EXPORT_SYMBOL vmlinux 0xdd6ce91e i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xdd6fd9b4 phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0xdd853dd6 blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0xdd8d7cc5 ip_fragment +EXPORT_SYMBOL vmlinux 0xdd905724 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xdd985b06 netdev_printk +EXPORT_SYMBOL vmlinux 0xdda29ab6 twl6040_power +EXPORT_SYMBOL vmlinux 0xddc7cd13 tty_unthrottle +EXPORT_SYMBOL vmlinux 0xddca56d6 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xdde20bb4 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xdde83545 intel_gtt_get +EXPORT_SYMBOL vmlinux 0xde0ee056 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xde10eb10 param_set_invbool +EXPORT_SYMBOL vmlinux 0xde16dc16 tboot +EXPORT_SYMBOL vmlinux 0xde18f31c mmc_start_bkops +EXPORT_SYMBOL vmlinux 0xde451b05 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xde51eca6 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xde60269d swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xde6151db tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xde8dbcae __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xde8f1e40 inet_confirm_addr +EXPORT_SYMBOL vmlinux 0xde91e81f mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde98c647 kobject_put +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xde9f2c53 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xdeb48c62 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xdebbfbe4 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xdebec6d7 dm_register_target +EXPORT_SYMBOL vmlinux 0xdf07ede3 ipv4_specific +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf201f80 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf368839 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xdf455e07 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0xdf48a0eb flex_array_put +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf5d99ff nf_hook_slow +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf6632f9 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xdf6b8c64 spi_attach_transport +EXPORT_SYMBOL vmlinux 0xdf78b393 dm_kobject_release +EXPORT_SYMBOL vmlinux 0xdf88c75a freeze_super +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfd00e48 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xdffaa039 __block_write_begin +EXPORT_SYMBOL vmlinux 0xe000ac92 skb_append +EXPORT_SYMBOL vmlinux 0xe011f373 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xe0435a73 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xe046466c cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xe04aae59 bdi_init +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe0512db2 simple_write_end +EXPORT_SYMBOL vmlinux 0xe05c80d8 km_state_expired +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe061c3da tty_port_close_start +EXPORT_SYMBOL vmlinux 0xe06e4199 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe089a259 km_new_mapping +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b2c90d elv_rb_del +EXPORT_SYMBOL vmlinux 0xe0b91346 skb_unlink +EXPORT_SYMBOL vmlinux 0xe0cad721 devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0xe0ccc2f6 tty_vhangup +EXPORT_SYMBOL vmlinux 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe12a8d9e twl6040_set_pll +EXPORT_SYMBOL vmlinux 0xe136f7a2 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xe13c58b8 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe15e0f24 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xe15f42bb _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xe16b3ad4 submit_bio +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24778a9 clear_nlink +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe250937f inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0xe25ab805 rt6_lookup +EXPORT_SYMBOL vmlinux 0xe27fcfdb netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0xe29b04e9 acpi_set_firmware_waking_vector64 +EXPORT_SYMBOL vmlinux 0xe29e1d0e out_of_line_wait_on_atomic_t +EXPORT_SYMBOL vmlinux 0xe2cfb038 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e83642 security_path_chmod +EXPORT_SYMBOL vmlinux 0xe2f2224b register_gifconf +EXPORT_SYMBOL vmlinux 0xe31944f4 sk_stop_timer +EXPORT_SYMBOL vmlinux 0xe319eb24 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xe3348e4f __neigh_create +EXPORT_SYMBOL vmlinux 0xe339eb59 lock_rename +EXPORT_SYMBOL vmlinux 0xe358b653 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0xe3677e0f cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xe36e50b4 igrab +EXPORT_SYMBOL vmlinux 0xe3719d0a devm_iounmap +EXPORT_SYMBOL vmlinux 0xe3741812 intel_gmch_probe +EXPORT_SYMBOL vmlinux 0xe37ac1ac aio_complete +EXPORT_SYMBOL vmlinux 0xe3a53f4c sort +EXPORT_SYMBOL vmlinux 0xe3b89c23 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3e12008 __first_cpu +EXPORT_SYMBOL vmlinux 0xe401186b ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xe40b6101 tcp_child_process +EXPORT_SYMBOL vmlinux 0xe4186b07 audit_log_task_info +EXPORT_SYMBOL vmlinux 0xe44363ad __break_lease +EXPORT_SYMBOL vmlinux 0xe452a504 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0xe45a59c7 net_dma_find_channel +EXPORT_SYMBOL vmlinux 0xe46c598c __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0xe4712fac simple_dentry_operations +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4882ec7 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xe4907cdf tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xe4d75cf9 eth_change_mtu +EXPORT_SYMBOL vmlinux 0xe4eddbe6 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL vmlinux 0xe4f584d6 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xe4fcfe6b uart_get_divisor +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe517884e mpage_writepages +EXPORT_SYMBOL vmlinux 0xe5208918 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe563e79c pci_get_class +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe58ed05f nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xe594c8c1 dev_addr_add +EXPORT_SYMBOL vmlinux 0xe5a6473c ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xe5bec95c i8253_lock +EXPORT_SYMBOL vmlinux 0xe5c2eecd xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xe5c6ad24 __getblk +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5f837ec try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xe61786e0 input_close_device +EXPORT_SYMBOL vmlinux 0xe620a068 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xe63031e1 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xe641fbde dump_skip +EXPORT_SYMBOL vmlinux 0xe64d98fe rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xe6754877 iterate_mounts +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe69a9df4 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0xe6a3d796 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL vmlinux 0xe6b5771e scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xe6e3b875 down_write +EXPORT_SYMBOL vmlinux 0xe6f92cfb tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xe6fb675c node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe70a8df3 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xe70c02e4 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe7402ca0 sk_run_filter +EXPORT_SYMBOL vmlinux 0xe75ed039 tty_register_driver +EXPORT_SYMBOL vmlinux 0xe76c125e tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xe7722171 flex_array_free +EXPORT_SYMBOL vmlinux 0xe773c752 kmem_cache_alloc_node_trace +EXPORT_SYMBOL vmlinux 0xe77575fb linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xe7770a43 cdev_init +EXPORT_SYMBOL vmlinux 0xe782fdc2 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xe791dc54 frontswap_register_ops +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7c5bd1b __inode_permission +EXPORT_SYMBOL vmlinux 0xe7d1e9be cpumask_set_cpu_local_first +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7dbcbdb blk_mq_insert_request +EXPORT_SYMBOL vmlinux 0xe7dd1233 __pagevec_release +EXPORT_SYMBOL vmlinux 0xe85b5e75 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xe8617f30 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe87bfefe add_disk +EXPORT_SYMBOL vmlinux 0xe88d3a24 dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0xe89700cf tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xe89c3e9e tty_register_device +EXPORT_SYMBOL vmlinux 0xe8a6a280 pci_bus_type +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8bea3bc qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xe8bef4d9 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xe8dbafef __next_cpu +EXPORT_SYMBOL vmlinux 0xe8f00ad1 seq_escape +EXPORT_SYMBOL vmlinux 0xe8f28731 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe9155eea uart_resume_port +EXPORT_SYMBOL vmlinux 0xe92efdaa sg_miter_next +EXPORT_SYMBOL vmlinux 0xe932a90b x86_hyper +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe954025e security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0xe973ddbf kfree_skb +EXPORT_SYMBOL vmlinux 0xe97b2e17 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9d81530 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xe9dff136 mempool_alloc +EXPORT_SYMBOL vmlinux 0xe9ed5c28 dquot_alloc +EXPORT_SYMBOL vmlinux 0xe9f64e5f netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea16dd4c tcp_destroy_cgroup +EXPORT_SYMBOL vmlinux 0xea3166c6 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0xea400a35 agp_backend_release +EXPORT_SYMBOL vmlinux 0xea7b8a44 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xea84ecc7 put_page +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea9b1f68 key_alloc +EXPORT_SYMBOL vmlinux 0xea9cf6f9 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xeaab11c5 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0xeab845bd skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xeac73847 irq_regs +EXPORT_SYMBOL vmlinux 0xeac9d974 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xead01385 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xeadf43fd bdi_register_dev +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeae58a83 init_special_inode +EXPORT_SYMBOL vmlinux 0xeaf74b2f tcp_proto_cgroup +EXPORT_SYMBOL vmlinux 0xeb0ba9e0 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xeb304bef jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb44339a free_pages_exact +EXPORT_SYMBOL vmlinux 0xeb47fdcd scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xeb507228 vm_mmap +EXPORT_SYMBOL vmlinux 0xeb57e589 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xeb6ef2dd udp_seq_open +EXPORT_SYMBOL vmlinux 0xeb783499 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xeb8ce0d8 tcp_splice_read +EXPORT_SYMBOL vmlinux 0xeb989939 __neigh_event_send +EXPORT_SYMBOL vmlinux 0xebd0f827 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebdd6526 from_kprojid_munged +EXPORT_SYMBOL vmlinux 0xebe225bc jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xec1c1408 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xec3c0942 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xec3e0a69 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xec44bdd4 blk_peek_request +EXPORT_SYMBOL vmlinux 0xec46d4ef neigh_compat_output +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec5675b7 pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0xec64711c udp_proc_register +EXPORT_SYMBOL vmlinux 0xec730387 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0xec7d7813 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xec81fcb7 __dquot_free_space +EXPORT_SYMBOL vmlinux 0xec881fe7 mmc_stop_bkops +EXPORT_SYMBOL vmlinux 0xeca597bc sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xecab1f35 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xecb24d00 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xeccd3e0c acpi_handle_printk +EXPORT_SYMBOL vmlinux 0xece75910 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xed0342a5 led_set_brightness +EXPORT_SYMBOL vmlinux 0xed1a06fc jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0xed396c29 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xed597524 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xed65b368 max8925_set_bits +EXPORT_SYMBOL vmlinux 0xed79f3d6 fput +EXPORT_SYMBOL vmlinux 0xed9f9a20 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xedb8f77e __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedf55461 bioset_create +EXPORT_SYMBOL vmlinux 0xee03a443 blk_mq_alloc_single_hw_queue +EXPORT_SYMBOL vmlinux 0xee0a055c __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xee12f6a8 nf_log_packet +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee3c468f proc_mkdir +EXPORT_SYMBOL vmlinux 0xee46885d add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xee56a06d tcf_register_action +EXPORT_SYMBOL vmlinux 0xee76d190 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder +EXPORT_SYMBOL vmlinux 0xee9850da ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeaaf2be seq_read +EXPORT_SYMBOL vmlinux 0xeeb29a13 kill_fasync +EXPORT_SYMBOL vmlinux 0xeeb5bd3b __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xeecf499b padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0xeeec26a7 queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xeef161aa groups_free +EXPORT_SYMBOL vmlinux 0xef025c67 module_layout +EXPORT_SYMBOL vmlinux 0xef1cf66d scsi_execute +EXPORT_SYMBOL vmlinux 0xef51517c i2c_use_client +EXPORT_SYMBOL vmlinux 0xef8f0f56 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xef90449a generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xef9dbfe9 keyring_alloc +EXPORT_SYMBOL vmlinux 0xefb55c3c bio_clone_bioset +EXPORT_SYMBOL vmlinux 0xefb6b186 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xefba93e1 mempool_destroy +EXPORT_SYMBOL vmlinux 0xefbc0a30 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf00d3c3b cdrom_release +EXPORT_SYMBOL vmlinux 0xf00df958 pci_iounmap +EXPORT_SYMBOL vmlinux 0xf0187927 __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0xf0212aa0 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xf043c294 pci_disable_ltr +EXPORT_SYMBOL vmlinux 0xf0509167 devfreq_add_governor +EXPORT_SYMBOL vmlinux 0xf05d4f71 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xf05ffa15 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xf0619801 timekeeping_clocktai +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf067257c register_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0xf07bbd65 blk_mq_can_queue +EXPORT_SYMBOL vmlinux 0xf087137d __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0xf0888763 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xf09de776 get_random_int +EXPORT_SYMBOL vmlinux 0xf0bbf4a8 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xf0bf1ac0 nla_put +EXPORT_SYMBOL vmlinux 0xf0c1e832 km_policy_notify +EXPORT_SYMBOL vmlinux 0xf0d88411 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xf0e919cf bdi_destroy +EXPORT_SYMBOL vmlinux 0xf0e9f05c inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0f2c8fc jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10cb99e wait_iff_congested +EXPORT_SYMBOL vmlinux 0xf10d22ac __blk_end_request +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf116d4b5 copy_in_user +EXPORT_SYMBOL vmlinux 0xf13856ee bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xf13feb57 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0xf147dcb2 hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0xf147ecb1 down_trylock +EXPORT_SYMBOL vmlinux 0xf1536ec2 netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0xf158425a get_gendisk +EXPORT_SYMBOL vmlinux 0xf15a15ce tty_check_change +EXPORT_SYMBOL vmlinux 0xf1686aae ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0xf17d9a64 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19bdeb1 get_tz_trend +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1de955d tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20bb292 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf211cc9d input_get_keycode +EXPORT_SYMBOL vmlinux 0xf212c91a jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xf22449ae down_interruptible +EXPORT_SYMBOL vmlinux 0xf233a9a7 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf24f3c50 blk_init_tags +EXPORT_SYMBOL vmlinux 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL vmlinux 0xf25fccd7 noop_llseek +EXPORT_SYMBOL vmlinux 0xf28a1287 soft_cursor +EXPORT_SYMBOL vmlinux 0xf28ed6e2 machine_to_phys_nr +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a0af8f backlight_device_registered +EXPORT_SYMBOL vmlinux 0xf2ad507b devfreq_add_device +EXPORT_SYMBOL vmlinux 0xf2b1ac8e __getnstimeofday +EXPORT_SYMBOL vmlinux 0xf2c22cb5 inet_select_addr +EXPORT_SYMBOL vmlinux 0xf2d31980 account_page_writeback +EXPORT_SYMBOL vmlinux 0xf2d43a0d pci_scan_bus +EXPORT_SYMBOL vmlinux 0xf30e092c dst_alloc +EXPORT_SYMBOL vmlinux 0xf312cb9d ucs2_strsize +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3179f4a filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xf32055e7 dev_base_lock +EXPORT_SYMBOL vmlinux 0xf320a4d8 blk_complete_request +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf335899f __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xf3405c84 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf3644084 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xf36dee8d arp_send +EXPORT_SYMBOL vmlinux 0xf370ed42 fsnotify_get_group +EXPORT_SYMBOL vmlinux 0xf37260ab _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xf37b8bc9 generic_file_llseek +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf3986b06 acpi_os_map_generic_address +EXPORT_SYMBOL vmlinux 0xf3b124e0 clocksource_register +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3de8e1d unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0xf3ea3d48 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xf3ec3d73 dquot_resume +EXPORT_SYMBOL vmlinux 0xf4091042 dput +EXPORT_SYMBOL vmlinux 0xf409f029 mount_pseudo +EXPORT_SYMBOL vmlinux 0xf4106c54 tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0xf432dd3d __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf459fe8a kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xf4984ed9 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xf49fcb69 iput +EXPORT_SYMBOL vmlinux 0xf4a523cd dev_uc_sync +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4af9219 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4b78567 netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0xf4bdbeb9 __frontswap_invalidate_area +EXPORT_SYMBOL vmlinux 0xf4e620c3 d_make_root +EXPORT_SYMBOL vmlinux 0xf4ee7276 blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4fc8477 dev_mc_add +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf51bf88b nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xf5361f4c setattr_copy +EXPORT_SYMBOL vmlinux 0xf536d22e acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5893abf up_read +EXPORT_SYMBOL vmlinux 0xf590a6e8 make_kgid +EXPORT_SYMBOL vmlinux 0xf598be6a rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xf5b10e67 acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0xf5bfa857 dev_addr_init +EXPORT_SYMBOL vmlinux 0xf5c77540 security_path_truncate +EXPORT_SYMBOL vmlinux 0xf5ce272b idr_for_each +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf601564a mmc_can_discard +EXPORT_SYMBOL vmlinux 0xf624fac2 netdev_update_features +EXPORT_SYMBOL vmlinux 0xf62dd2e2 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf639abc9 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xf6767581 vfs_readv +EXPORT_SYMBOL vmlinux 0xf6822d54 tcp_init_cgroup +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf68687be __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0xf68991aa sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0xf6afeb03 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf7289d14 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xf74f7424 dev_get_by_name +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf76e23c4 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xf7723fa3 inet_recvmsg +EXPORT_SYMBOL vmlinux 0xf774db66 pci_disable_device +EXPORT_SYMBOL vmlinux 0xf7866193 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xf7adcaf3 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xf7b5e494 bdevname +EXPORT_SYMBOL vmlinux 0xf7f3e443 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf80de9ff hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf812cff6 memscan +EXPORT_SYMBOL vmlinux 0xf827cb83 free_reserved_area +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82cfd1a proc_dostring +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf830144c try_to_release_page +EXPORT_SYMBOL vmlinux 0xf86454c6 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xf8791f2b disk_stack_limits +EXPORT_SYMBOL vmlinux 0xf8799876 key_reject_and_link +EXPORT_SYMBOL vmlinux 0xf87b57eb tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xf881fd0f __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xf88a420e simple_statfs +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf88e3077 skb_orphan_partial +EXPORT_SYMBOL vmlinux 0xf88ffa0e proc_create_data +EXPORT_SYMBOL vmlinux 0xf8983de7 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xf89fb667 blk_put_queue +EXPORT_SYMBOL vmlinux 0xf8f84ba3 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xf8f8a4fe xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xf911a640 seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0xf91e34c4 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xf92bc8f0 phy_attach +EXPORT_SYMBOL vmlinux 0xf975e4c0 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xf97afdd5 seq_open_private +EXPORT_SYMBOL vmlinux 0xf988e3a2 netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0xf991ffa5 pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9c0b663 strlcat +EXPORT_SYMBOL vmlinux 0xf9c498da qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xf9dbd30e vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xf9dc8b59 pci_pme_capable +EXPORT_SYMBOL vmlinux 0xf9ebdf1c nobh_writepage +EXPORT_SYMBOL vmlinux 0xf9f67cc5 poll_freewait +EXPORT_SYMBOL vmlinux 0xf9fe55fc scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xfa15e6d5 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xfa2638a3 i2c_transfer +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa66f77c finish_wait +EXPORT_SYMBOL vmlinux 0xfa7d7687 pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0xfa7f3156 wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0xfab383b9 rename_lock +EXPORT_SYMBOL vmlinux 0xfac44333 gen_new_estimator +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfacc5574 d_genocide +EXPORT_SYMBOL vmlinux 0xfad64606 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xfae1ca25 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xfae67b1f cap_mmap_addr +EXPORT_SYMBOL vmlinux 0xfaef4f44 tty_port_open +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb10b877 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xfb1a1188 qdisc_watchdog_schedule_ns +EXPORT_SYMBOL vmlinux 0xfb48013d bmap +EXPORT_SYMBOL vmlinux 0xfb4c3fe3 skb_copy +EXPORT_SYMBOL vmlinux 0xfb4ed98f jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xfb578fc5 memset +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb904423 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0xfb94103e __clzdi2 +EXPORT_SYMBOL vmlinux 0xfb9f34fc vfs_write +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbb32b10 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xfbcffe66 __napi_complete +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc09fff5 request_key +EXPORT_SYMBOL vmlinux 0xfc136ab2 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xfc16bb57 devm_gpiod_get_index +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3e7f68 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xfc60cc10 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xfc665949 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0xfc66bff8 single_release +EXPORT_SYMBOL vmlinux 0xfc7b20e0 phy_device_register +EXPORT_SYMBOL vmlinux 0xfc872fd1 get_ibs_caps +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcac0d40 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL vmlinux 0xfcb926cd kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcc54f91 lg_local_lock_cpu +EXPORT_SYMBOL vmlinux 0xfce06a90 dev_change_flags +EXPORT_SYMBOL vmlinux 0xfce5dc1a irq_to_desc +EXPORT_SYMBOL vmlinux 0xfceb05f9 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf090f7 kill_anon_super +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd06eb7f blk_mq_free_single_hw_queue +EXPORT_SYMBOL vmlinux 0xfd17affc pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0xfd1a1494 replace_mount_options +EXPORT_SYMBOL vmlinux 0xfd282d51 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0xfd2c65fa jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xfd57e7f7 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd6be21d unlink_framebuffer +EXPORT_SYMBOL vmlinux 0xfd6faff3 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xfd92798b udp_disconnect +EXPORT_SYMBOL vmlinux 0xfd961cf0 inet6_getname +EXPORT_SYMBOL vmlinux 0xfd99623a ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfdb5dcbb fb_blank +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdbe0288 pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0xfdee7d42 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xfdfb792f amd_iommu_pc_supported +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xfe0f5f4f grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe29c0ba __cleancache_get_page +EXPORT_SYMBOL vmlinux 0xfe2f2e7d filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0xfe51ddf9 register_framebuffer +EXPORT_SYMBOL vmlinux 0xfe535cdd lock_sock_fast +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe5ee609 bio_integrity_free +EXPORT_SYMBOL vmlinux 0xfe6bca32 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe85c4ca f_setown +EXPORT_SYMBOL vmlinux 0xfe9ebbbb acpi_osi_is_win8 +EXPORT_SYMBOL vmlinux 0xfea70505 sync_inode +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfee5702e get_agp_version +EXPORT_SYMBOL vmlinux 0xfeebc7c4 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xfef0c3af bio_sector_offset +EXPORT_SYMBOL vmlinux 0xfef350d2 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff03f8d1 send_sig +EXPORT_SYMBOL vmlinux 0xff18e5bf __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff2dd309 skb_split +EXPORT_SYMBOL vmlinux 0xff360903 simple_readpage +EXPORT_SYMBOL vmlinux 0xff391b9b sk_capable +EXPORT_SYMBOL vmlinux 0xff45a1dd ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xff57868e rtnl_unicast +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff784133 seq_putc +EXPORT_SYMBOL vmlinux 0xff8e6456 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0xff92b207 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffc447a3 console_stop +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffef1e29 bio_integrity_alloc +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0x7060bf0a crypto_aes_encrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0xe409b491 crypto_aes_decrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x13a65ecf camellia_ecb_enc_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x17bf48dc camellia_xts_dec_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x1a08ded1 camellia_xts_enc +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x47129015 camellia_xts_enc_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x7d54edc2 camellia_cbc_dec_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x7e87ef55 camellia_ecb_dec_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x8f185793 camellia_xts_dec +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x9e8086dc camellia_ctr_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x16061d06 __camellia_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x1636abdf __camellia_enc_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x1c3d6c3f lrw_camellia_exit_tfm +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x1da0e256 camellia_crypt_ctr +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x31bbe42b camellia_crypt_ctr_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x50dc55b6 __camellia_enc_blk_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x589486e0 xts_camellia_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x930f687f camellia_decrypt_cbc_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0xa41a5ad3 camellia_dec_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0xefdc0bec lrw_camellia_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0xf4521fda camellia_dec_blk_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x05678e3a glue_cbc_decrypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x0acafc15 glue_cbc_encrypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x392b4a9d glue_ctr_crypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x8f02ac4d glue_xts_crypt_128bit_one +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0xb3cfa537 glue_ctr_crypt_final_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0xcec9776f glue_ecb_crypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0xe65c3f6f glue_xts_crypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x016a957f serpent_xts_enc_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x0c5a8af6 serpent_xts_dec_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x0ff3c26d serpent_xts_dec +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x1304efe1 xts_serpent_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x606a8162 serpent_cbc_dec_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x79ff0b7a serpent_ecb_dec_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x96d4bee3 lrw_serpent_exit_tfm +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x9ae34b2f serpent_xts_enc +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x9e018632 __serpent_crypt_ctr +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x9f99663c serpent_ctr_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0xa84ea33d serpent_ecb_enc_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0xe6d5d89f lrw_serpent_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64 0x19dc7881 twofish_dec_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64 0x5e752773 twofish_enc_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x08615d0a xts_twofish_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x1fd77fb1 twofish_dec_blk_3way +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x3212b47c lrw_twofish_exit_tfm +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x61694b97 twofish_dec_blk_cbc_3way +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x8d75ab44 twofish_enc_blk_ctr +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x8e856922 twofish_enc_blk_ctr_3way +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0xf2e80e9c __twofish_enc_blk_3way +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0xfdb06a74 lrw_twofish_setkey +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0672ee92 kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0967aae6 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0cf1f072 kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0eb56024 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0f85dff8 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x13bd6de8 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1d38ea81 kvm_write_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1f575f36 kvm_inject_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x210b6c0d kvm_lapic_set_eoi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x23c68cb2 kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2860505b x86_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x29266719 kvm_complete_insn_gp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f1707fb kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x31384cdd kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x314e52ec kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x392a7f43 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3988530e kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3b5dd35e __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3dd501f8 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e385c9a kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3f47628c kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x432b6a2d kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4902c6b9 kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x49410a4e gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x49657ac0 mark_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4c51f664 __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4cf2c58e kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x503e8e62 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5094f8dd kvm_vcpu_kick +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x510b7f5c gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x51f4f41b kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x52aed2cd kvm_init_shadow_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x52c74d63 kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53a2a3f7 __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5ad2dbf4 kvm_set_xcr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5b7d8658 kvm_read_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5e8b7fc9 kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x63672b71 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x64020e10 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x64511291 kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x64a34f49 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x67bfd00d kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x68378229 kvm_mmu_sync_roots +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6c78e5e4 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x709cd8cb kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x71ab4271 kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x759bfd06 gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x76df156b kvm_write_guest_virt_system +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7829fc5f kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7a3f5ae5 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c502ab9 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7cae62b5 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7f2c1163 __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7f67042d kvm_apic_update_irr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8128d14a kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8265c4d5 kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x831327da kvm_max_guest_tsc_khz +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x86843274 handle_mmio_page_fault_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x86e3694b kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x894073b2 kvm_mmu_unprotect_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x897a809d kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x899f6eea kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8a26f7b0 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ad1f487 gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce9f43b kvm_mmu_unload +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e43c249 kvm_arch_has_noncoherent_dma +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x90c8f5d6 kvm_valid_efer +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x91ffbcd4 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x92a4a845 kvm_set_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x94a67497 kvm_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99cee2e1 kvm_read_guest_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a3eef3a gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9cf07e17 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9dc872f7 kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9ee59155 __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa0ec3a0a gfn_to_hva_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa1a4c4e6 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa3ac4f68 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa3f1e8de kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa508e36b __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa63743a5 kvm_apic_write_nodecode +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7fab3fe kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaa79cab5 __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaabce6a7 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaac606be kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xabce47bb kvm_apic_set_eoi_accelerated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xabe8c35e kvm_mmu_flush_tlb +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xacf7f97c gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xae69368e kvm_init_shadow_ept_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaf275715 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb22be348 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb3f8928c kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb60a6007 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb76fca45 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb7ec5a98 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb81b2f81 kvm_read_guest_page_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb9fefc4c kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba9ed435 kvm_mmu_set_mmio_spte_mask +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbf178858 kvm_get_dirty_log +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc1e242c3 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc68c4f83 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc966335d kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcc1582dd kvm_arch_unregister_noncoherent_dma +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcde681b3 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xce1a726c kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcef3fec5 __tracepoint_kvm_write_tsc_offset +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcf143f60 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0459e67 kvm_has_tsc_control +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd816fa49 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd990c482 kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdbeab83c kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdc1c5c18 kvm_arch_register_noncoherent_dma +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdeb9e564 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdf582b6f kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe11e6be2 kvm_vcpu_block +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe6ffb703 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xea393d6c kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xee519a8a kvm_irq_has_notifier +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf2edda4c kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf65bb1ab kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfa65b866 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfb862481 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfc35eac4 kvm_rdpmc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfccdc8a8 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfceea667 kvm_flush_remote_tlbs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfe933acf kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfec9c2cf kvm_put_kvm +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x3ef85e73 ablk_init_common +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x6b9c7a13 ablk_set_key +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x71a32650 __ablk_encrypt +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x7a90e7db ablk_exit +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x821061e2 ablk_decrypt +EXPORT_SYMBOL_GPL crypto/ablk_helper 0xb6ccf6bc ablk_init +EXPORT_SYMBOL_GPL crypto/ablk_helper 0xbe28d1b3 ablk_encrypt +EXPORT_SYMBOL_GPL crypto/af_alg 0x13dc4473 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x260ff928 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x289197b2 af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0x3b80c21c af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x65eef7f4 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x85cc53b4 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xcc111fa0 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xee2d3713 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xf2860acb af_alg_complete +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xeb373bac async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x5320782d async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x68674abd async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x4d50faca async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xcd713520 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x7b340818 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9e4fab4d async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xd94ba984 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xfc2a3f2e async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xc40aef03 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xe90d2153 async_xor_val +EXPORT_SYMBOL_GPL crypto/authenc 0x587ef278 crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0xc7729f92 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x27278ca9 __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x4a2a3ca6 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0xca3db466 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1291971c __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1e2c961f __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x39379bf8 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x8f04034a __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast_common 0x08aa6fb7 cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x0c5fbf8a cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xe39dd4b4 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0xee83a4f3 cast_s4 +EXPORT_SYMBOL_GPL crypto/cryptd 0x15057320 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x3a71aaef cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x570dca72 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x603d2375 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x62caf162 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x7bec508d cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xb1dfefd9 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xdb56e6cb cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xe76a4670 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xe9eaee00 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/lrw 0x3082195d lrw_crypt +EXPORT_SYMBOL_GPL crypto/lrw 0x3864eb66 lrw_free_table +EXPORT_SYMBOL_GPL crypto/lrw 0xcd074900 lrw_init_table +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x5ddb33e9 __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x77b39cb4 __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x8a1a99ad __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xc33b423f serpent_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x6c3229bb __twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xd11f2666 twofish_setkey +EXPORT_SYMBOL_GPL crypto/xts 0x1615a02c xts_crypt +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x1c8984c7 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x87bd07bd acpi_smbus_register_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xb9a141b0 acpi_smbus_read +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xe1372311 acpi_smbus_write +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x04763608 ahci_platform_disable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x16f6255c ahci_platform_disable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x3038525f ahci_platform_init_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x7572d35c ahci_platform_enable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x7e23b4c6 ahci_platform_ops +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x8deb81ff ahci_platform_get_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x9e0757b6 ahci_platform_suspend +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xb3907093 ahci_platform_suspend_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xc37a573d ahci_platform_enable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xce273177 ahci_platform_resume +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xfb5e0293 ahci_platform_resume_host +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x09f47013 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0ae3684a ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1d9de0a9 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x25fa19d2 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x546ab713 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5c9dbb0a ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x61d92ba3 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x694f923e ahci_thread_fn +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6e05c4e7 ahci_hw_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x742303c3 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7479e8bf ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x770dc0c0 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x83b062f7 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x87e7c477 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8ba854ac ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8bc80b66 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8beeb3bf ahci_start_fis_rx +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa89f0b82 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xbad6e213 ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc3ea4284 ahci_restart_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcd12cc6d ahci_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcff4c7e5 ahci_qc_issue +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe941f0b6 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xec0cfde9 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xec904d7d ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xc2a52fe6 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x055d1d61 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1f9e329e bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x24f9871d bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x25523c8c bcma_core_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x28efe1e8 bcma_find_core +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x3dde356c bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x588bad5c bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x599ccf74 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5e36228b bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6a575be4 bcma_core_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7311aaa6 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7ded5bcb bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x943e6b6b bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa4c578b2 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa7e3e2f8 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa90bd3bd bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xabeb856e bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe496d5ed bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xebd83f5a __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf25e1ad6 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf2bb65fd bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xfa189e7c bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xfad25faf bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3cdea65e btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x45500041 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4a042736 btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8f7eec58 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x948d8a65 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9b9433e5 btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xccbe9095 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd2829980 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd4609f54 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd95f1351 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/cpufreq/speedstep-lib 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL drivers/cpufreq/speedstep-lib 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL drivers/cpufreq/speedstep-lib 0xd7ab2c0c speedstep_detect_processor +EXPORT_SYMBOL_GPL drivers/dca/dca 0x01a33ab9 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x1c79d7d5 register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x3c15df25 free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x41858f80 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x68771881 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xac34ecec dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0xbc2d4e8d alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xcf9d277d dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0xe209ed69 unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x0aaafd68 dw_dma_shutdown +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x2969b31b dw_dma_suspend +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xa36572e0 dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xe9bab0ce dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xf9d2baf3 dw_dma_resume +EXPORT_SYMBOL_GPL drivers/edac/amd64_edac_mod 0xfef57571 amd64_get_dram_hole_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x060e32d9 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x130f3909 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1c08adf3 edac_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1e2def0d edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x33a11861 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x37155210 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x46b095cd edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x49dda053 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x50c13e31 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x697629ca edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x89e60550 edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x94ee9834 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x96ebdc67 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x991ed64d edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa3312b2c edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xae05c346 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xafd18e0c edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbc89d00e edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc0403748 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc9430472 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd3822fa9 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd399600d edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfbdb13d9 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1d34e996 pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x21626132 amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x737912b3 amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb30b7e56 amd_decode_mce +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xf4ade51f fw_card_release +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x93f8fe67 cs5535_gpio_set_irq +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xc0bb404a cs5535_gpio_setup_event +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x47a1e964 bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x5537d866 bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x402a651a __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x5e8021b3 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x01c817a6 drm_vm_open_locked +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x3293bbd2 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xafc76c67 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x05876c69 i915_gpu_busy +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x08a7896d i915_gpu_raise +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x2b2c59ae i915_release_power_well +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x402468e9 i915_gpu_lower +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x500858b9 i915_read_mch_val +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x96108893 i915_request_power_well +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xb76bf2ac i915_get_cdclk_freq +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xe7237b0b i915_gpu_turbo_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x665177c5 ttm_dma_populate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x69fcf068 ttm_dma_page_alloc_debugfs +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x6adf436b ttm_prime_fd_to_handle +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x6cc1fd7e ttm_dma_unpopulate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xce36343e ttm_prime_handle_to_fd +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00522409 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x00918427 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0cc37a78 hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x15cf21a3 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x24fa6aa0 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3139f35c hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x318f3f07 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x41b3f65a hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x47442adb hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4906a967 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4ea1ea05 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x50b6a869 hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0x55d2d91a hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5a649cfe hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0x60f2f9c3 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x62210dc6 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x710ddbdf hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x91ba9770 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x923a59d1 hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9af06e9e hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa76dfca0 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa8c69d3d hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb213f41d hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb436db66 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbca4a6f4 hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbcc63421 hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcf726c9d hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd1525de3 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd7808648 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xef8182ec hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf0be32a3 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf408ecad hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf645b601 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf6cdfc5c hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfff03ee4 hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x1afaceca roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x317853ca roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x3b7b27c4 roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x666eb6c9 roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xc0a7a3e8 roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xc5a59c97 roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xdf71b5f6 roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x1d3873c9 sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x27ec6e64 sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x2e0958eb sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x6a01d483 sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x87893bc2 sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xbe0628c2 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xd3d2ac4b sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xe40dd8a6 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x808fa76c hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x2331cb6c hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x31015f4c hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x3e719c2a hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x5745bf5f hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x60a23978 hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x6e9b3f15 hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7809383c hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7b0c076a hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x8093e7a5 hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xa35d25dd hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xb005378d hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xc33b3712 hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xd9217fc6 hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x02868ca1 vmbus_close +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x079bf80d vmbus_driver_unregister +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x0e2e3c7f vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x14cb301f vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x1e53de75 vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x358fafa5 vmbus_prep_negotiate_resp +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x46a417ca vmbus_proto_version +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x66b05354 __vmbus_driver_register +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x723f4658 vmbus_get_outgoing_channel +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xb3245c5a vmbus_open +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xb474c61d vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xbdaaf529 vmbus_are_subchannels_present +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xbdd683b2 vmbus_sendpacket_multipagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xeea50809 vmbus_set_sc_create_callback +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xf45dd651 hyperv_mmio +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0xb4365d22 adt7x10_remove +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0xcea5a8d9 adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0xe33f3b55 adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x1395307b pmbus_do_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x1dd4ee2f pmbus_get_driver_info +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x480f5ac7 pmbus_do_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x88891081 pmbus_check_byte_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xa044640c pmbus_clear_faults +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xbdb45f1f pmbus_clear_cache +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xce5e0b6b pmbus_read_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xcf891e2a pmbus_write_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xd8e41c73 pmbus_write_byte +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xef07f6dd pmbus_read_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xf3e803f6 pmbus_set_page +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xf57374c2 pmbus_check_word_register +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x13c45768 i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x170d7851 i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x297a9e22 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x2f1a8241 i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x6bd5c4f2 i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x77b25d45 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xad0b8b10 i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xd8c49451 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xe13be475 i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x519b7d79 nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x869e2dca i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xbd3ddb9b i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x34ccffd0 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x45ef9e26 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x1536fb98 ad_sd_set_comm +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x3fb5b867 ad_sd_read_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x432f1415 ad_sd_write_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x4dc58f30 ad_sd_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x95126930 ad_sigma_delta_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xa3cac870 ad_sd_validate_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xb7bbc1b4 ad_sd_init +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xc8a4d205 ad_sd_calibrate_all +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xf2302705 ad_sd_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x1f433090 adis_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x28619809 adis_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x2acea7ad adis_check_status +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x4953af29 adis_write_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x4b185f4c adis_update_scan_mode +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x5bdabf11 adis_probe_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x7302e472 adis_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x93c5251e adis_reset +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x979dadb4 adis_remove_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x99439332 adis_read_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x9b326997 adis_initial_startup +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xb7928251 adis_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x030a49fb devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0697c610 iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x10fab02d iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x19014ab7 devm_iio_device_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x250dc0fa iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x267c0508 iio_channel_release_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a1fab3c iio_channel_stop_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x33dbc273 iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4651e480 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x479ef2dc iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x49577f55 iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x50fdd69e iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x665a24b4 iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6860c44e iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x72182879 iio_update_demux +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7631440f devm_iio_trigger_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x78f92108 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7a711aef iio_channel_start_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7c1b7131 iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9d811203 iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xbb422a0e iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc238ec0d iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc2689d5d iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc278407c iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc742232e iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc8fedbdc iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd126ee28 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd9024055 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd959d955 iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xdd78b887 iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe6901ba4 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xee5800c9 iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf5b16d63 devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/infiniband/hw/ipath/ib_ipath 0x1514b2b2 ipath_debug +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x863742cb input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x897d8b4d adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x92d3bc2c cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xe324eaed cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xfa8a24f6 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x1f2534af cyttsp_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x7cb1eb15 cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xa34083d3 cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x3b2f71e9 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0xbfd6509b cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2e9b5f74 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x300ef8b4 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4b632082 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6459c73c wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x68146002 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6a54c18c wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa6fec112 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xabe8a71c wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbb40dc48 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc320564d wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc72ed095 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xccacb466 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x002eeb9f ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x057406b4 ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x23f44c42 ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x2d667ff2 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x346fbe5a ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x57fe47b1 ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xaa2e44b4 ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xc015035b ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xccd56fa9 ipack_bus_register +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x23359aff unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xce1414b2 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3343d6c4 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x452cb953 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5909b2ff gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x661423c6 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x663509e2 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6862cd91 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x873efe7a gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa3151853 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb4aec589 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb4f00efb gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb55bb4b0 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd17cd4de gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd53fee45 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd7648df8 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdcf8e080 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe45b7ce5 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf2822807 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf4672d8a gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/leds/dell-led 0x86fd1ffb dell_app_wmi_led_set +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x0e830f5b lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x1b85e468 lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x2aec2aae lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x2e1881f8 lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x3d644d5e lp55xx_unregister_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x4d65e84e lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x638266bf lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x704e3b7a lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xacd3462c lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xcc0f702e lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xd02d49bd lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x749e05f2 ledtrig_flash_ctrl +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x7903e46e ledtrig_torch_ctrl +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0ec17d44 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x26062738 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x40c27b88 __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4c49fc16 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x51a15737 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x616b6217 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6907ac0d __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7be42a1c __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7e532a71 __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8a4afa11 __tracepoint_bcache_alloc_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x914361f4 __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9272fb0f __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x938cc2b2 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa649dd21 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb157059f __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb317649e __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb493772a __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb834c124 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbb1fc0a4 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbc4fcb1e __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc1474d91 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc379085a __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc5aed8ad __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc7eda602 __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce055cbe __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe20fe821 __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe24daf87 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe2ed0930 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xea2303e0 __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xef1156ee __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfc131205 __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2241aa67 dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x8e4941c1 dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xa4b55d6f dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb6d5c65d dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb70b342a dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xba8b1acc dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xbc3607ca dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xd8d980ad dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xebd06eaf dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xf2478b94 dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6aba7f5e dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x74dcd98c dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7c381a76 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9310ba06 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9c256008 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa1d2413a dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa448e19f dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xafbda3f3 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xcbb1bae2 dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe6024e59 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe9890a5f dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xebcc64a4 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xeca7949e dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x0eb82d25 dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x3f015b88 dm_cache_policy_get_name +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x72aec6ad dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x8c38677e dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xabbf6f88 dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xc70f6528 dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xdd0ce5a7 dm_cache_policy_get_version +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x63a85e5b dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x7dd40926 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x01d2f9ac dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x15398178 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x15cf2e17 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x2c572819 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4430764e dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x45ab972a dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x83598e0d dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa68e1f06 dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb1a1482f dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb91b0e7e dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfad9d53a dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfc62ef4e dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x01445176 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x17c36f29 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1cac81ac dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2025e954 dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f40da68 dm_bm_set_read_write +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f74609d dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x32b5f546 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x38c75c44 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x42dbdfc3 dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x49b35849 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x55b4bd4d dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5e6a04d3 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5e6aea80 dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x62c1b9ee dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x688d422d dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x68fae9d2 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7ade1071 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7b047bd9 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x827a42f4 dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x832bf228 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x858c8d94 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x89f1e1cc dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x966a8838 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9e798e22 dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9f624559 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa0bbbb49 dm_bitset_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa13861b4 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa87c5b4d dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xaee02382 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xafeda29f dm_bm_write_lock_zero +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbd50ebbb dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca40abd5 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd041d62b dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd29923fb dm_tm_shadow_block +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe44b4b9b dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xed1e1f96 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf375d009 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf475af48 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf5455120 dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/raid1 0x797dc5e9 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid10 0x8c081314 md_raid10_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x89ecf1f1 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x00caf55a saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x03f27ac9 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x09a4726d saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x1e48abdd saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x3237537d saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x545d46af saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x55bebc6b saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x5a93346e saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x96ddf57d saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe83e516e saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x1d1d488d saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x2ebde926 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x47dad92a saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x6ad355a8 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xc423e863 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xd601d787 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xf32bea02 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x1d3aaa13 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x23060f7b smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x31f2e37d smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x43bbcae4 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x46990f4c smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x4b789135 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7a7b9178 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7f96708c sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x83ddbb54 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x99a81ab3 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9c2225ed smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9eab77e1 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb454aae5 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc8c1f2e7 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xce601631 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xd253a2ec sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xec9428b1 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xef5f453a smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xf83bf67d smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0x575c43d7 cx24117_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0xd0612b5c tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0x83095478 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x06b9bb28 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x09003240 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x0dcb051d mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x16806a91 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x189c078c mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x23415965 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x439c5b33 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x5ad5a86c mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x61bbd8f9 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x79417b41 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7c2465a6 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xad0e37ab mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xc11dd9a2 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xc5b5dd12 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd19e26e4 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd429e8de mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xe47aa0a3 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x5554c4f9 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x9b395f4c saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xa74d699c saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xb0ca01ea saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xb886b6be saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x2eb1cc8d ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x316882bd ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x78d0af48 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x819fb7a2 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x9a338e1e ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xad9d600d ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xe28f45d1 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x97d646f6 radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xa366b10d radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0075249c rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0400bdec rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x06ea7fee rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x17f2e754 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2135670c rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x266d1994 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x37c071b0 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x44d80e3f ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x51725dfe ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x81aac2bf rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x8edc9e2e ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa838cd07 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xafe56f5e rc_close +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb90953d4 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbeb76c9c rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc510d64d rc_open +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc9dfd067 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe8d9de91 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf11ddc10 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0xa7d77d73 mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x8f56c199 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0x51fa7dab mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0xa63948dc r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0xacb2dd95 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0xf286b521 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x4d5bf308 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x994a5fd6 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0xf123fb43 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x4dba933e tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0xa26b85a5 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0xb8a5ca36 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0xffe9b02b tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x8fe0dca7 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x142862d0 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x1dc9d240 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x26e20e97 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x3fb73a2e cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x4c13875a cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x4e6cece8 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x54d0aae3 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x64c6b83f cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7a0fb58e cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x80dd89a1 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x8b7196e4 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x8e7eb00a cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x9a9065fe cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xa0babcf7 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xb039bc1b is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xb8a5a2db cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xd19887ed cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xf09a566d cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xf76ec411 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x0affa4c2 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x38520e61 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x2d207438 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x3ffdd345 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x51ba29e7 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x5a95e781 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x5ed8bc02 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x6e314181 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x8db8c066 em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x94d21be4 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xa791e909 em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xaf2737bd em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xbf45d51a em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xeb4d5309 em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xf5862c85 em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xf7071998 em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x000444f7 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x09e4e741 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x7b686903 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xc88da10e tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x01c483a9 v4l2_get_timestamp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x063e601d v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x4695148c v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x52a46cc4 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x5b6a92ee v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x71cc3984 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x9c26ec40 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x08982d59 v4l2_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x221d2fbc v4l2_enum_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x36e8756a v4l2_find_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x4103badb v4l2_print_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x53105839 v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6976cfe0 v4l2_valid_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6f344bb9 v4l2_calc_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7eaf8e7a v4l2_detect_gtf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0xb0891da2 v4l2_dv_timings_presets +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x15e96a1d v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x611e0b0c v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xb2f96f8a v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xeeaa01ef v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0ec1a7ad v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x1256a3d8 v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x17eb0eee v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x1e20a305 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x293a6dc9 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2eec9457 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x39396a9b v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x6f657b2d v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x71a61a78 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xaae4ea99 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xbbce7967 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc335ce9b v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xd2e20c5d v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xdea8303a v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe38fdc8d v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x0c331fe8 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x115adcb7 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x2b75be80 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x5359f85b videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x5b2e9506 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x68e88308 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x6eaf127d videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x961e86e5 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa657e3a2 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa8a9bb4f videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xb392239f videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbc9886b6 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc06e9895 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc361bffe videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc992ec5e videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xcb5a8b48 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd2cb06f2 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd6c367f1 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xddb1375a videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe0764c38 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe672a964 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf5e3021f videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf904a457 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xfb898486 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x44dcab33 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x78f47618 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xb6b437f0 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x1248819a videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x31a1f235 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x31be8469 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x563c0a1b videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x66cb0d12 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x79ab2b13 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x9900a6aa videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xbe76d2b8 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xf14c9504 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x5b0e3052 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x66d4976e videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x6a567f62 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x0008ca34 vb2_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x08f808c0 vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1082e44e vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1e3e6012 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x3c774963 vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x3f943855 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x42056ab3 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x443aa32b vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4dc47cc5 vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5d593f99 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x6003f08f vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x628e1a6e vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x65375245 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x714dd271 vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x72d1705b vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x77e405c5 vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x83060104 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x95f34935 vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x9a410e02 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa7a13f22 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb0493fdb vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb049c3a6 vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb26e43f6 vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb2fdcc13 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb516ca88 vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xba572f5f vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xc58bfd20 vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xcf8c34fd vb2_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd3c1c415 vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd5efc63a vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xdcf7ebb6 vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe76d3a19 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe9ff1c8b vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf40319bb vb2_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x43765a10 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x53807ed4 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-sg 0x6ce8a887 vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x07cd1119 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x30159f72 vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xc242b875 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xd6d338e0 vb2_get_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-vmalloc 0x0a6d8416 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x012d95ed v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x05606e47 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x06cf30de v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x13a0a830 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1706b246 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x22f5525e v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2b61ba9f v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x310b5ee1 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3d3a965d v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3ea5906c v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x47db08bd v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x66ca2a2d v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x86c7d16a v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8c7fd241 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9d0a55f8 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xae37c8a7 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xae3e2499 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xcae3c535 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd3f917c0 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd7233076 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd9abd926 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd9f48dd7 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xdb49232e v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xfeacec77 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x068a8edd i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x1ce6ae41 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x2376ce3b i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x2e135fa9 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x774d2cb6 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xd86bd2f8 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xeb9acb0d i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xed341199 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x525c26ee pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x9eb890c9 pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xec946ca2 pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x317ff770 kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x5644e585 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x68cdceff kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x6fb230f9 kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xa443c577 kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xa6844b67 kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xbcd51bf7 kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xbd3c65d9 kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x01370597 lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x78db53f9 lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xcc01d2b2 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x056847bd lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x1480b085 lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x3b7c318b lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x3f9933cb lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x53d715a9 lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xa8061609 lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xab209226 lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x3591af9f mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x4708c07d mc13xxx_common_cleanup +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x53c83a98 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xa64bafe6 mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xe6f1e4c6 mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xf4fe11ae mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x121094ae pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2659aff1 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x29bfbfba pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x421e76fc pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7bf84621 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8da568be pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9b81fd71 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa74d7346 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xb840a52a pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xba093c7b pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xee005bee pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xab1b2417 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xd1ac24b5 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xb4e1571c pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xcd7131af pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xd58dd4c0 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xd722169e pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xff48ce23 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x01a33234 retu_write +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x4fca3918 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x086fc6e7 rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x09770ee5 rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x0f2ebc1b rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x11e175e1 rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x1302d817 rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x1463d7a4 rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x15de6249 rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x16ea31aa rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x17c065ea rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x260624cf rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x31b73f9b rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x36a38545 rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x3b8140bf rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x4750a184 rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x7705fe95 rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x844e19c6 rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x864f2757 rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x8e51156f rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xdd21315f rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xe2c4d6e1 rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xedc79fa5 rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0d27c130 si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x117c886c si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1c8a8617 si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x33597d51 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x377759c5 si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x558c1871 si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x59d9d208 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x5ff8aa00 si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x60131056 si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6964e607 si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6c0a9757 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6edf5a16 si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7695b5d4 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7b1f0fe3 si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x87c25095 si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8c5350cb si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9805553e si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x98ab001a si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9b3ea479 si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9c73fabb si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa2ebdcc8 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa6505fab si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xaaab9d31 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xab15d6f5 si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xac86015f si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xacc8e95d si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb6ce4533 si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xbfdb589b si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc5eb3f81 si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd1f3ec26 si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd4bf4850 si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe0c6bb4e si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf20e54ef si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xfe449045 si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x04d1ec5b sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x5887fced sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa04c2866 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xc264089d sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xe735aa3c sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x06a82d52 tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x60cff425 tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x780ebe6c tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xe704a69c tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x74f71b60 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x07bb1b89 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x3e4a5d02 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x940d29c6 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xc4250ec8 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x27cb133b eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63 eeprom_93cx6_wren +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x822222db eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x98bb5a22 eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x1dbc1437 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x1f1da0b6 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x4d779e7c enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x79fd7f7f enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x92ebcff4 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xbcffcc0a enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xe92ba191 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x06f6574f lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x1fbac0ce lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x2009c9e0 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7736ff89 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x9a96fd5b lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xb0403396 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xbbed4eb5 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xd7eabc4c lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x1964430f mei_cl_remove_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x1e01c10b mei_cl_register_event_cb +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x254390bd mei_restart +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x29d30c70 mei_register +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x3d6ccc1d mei_cancel_work +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x430d8eaa mei_irq_write_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x45154a41 mei_deregister +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x48158764 mei_cl_enable_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x52aebb65 mei_start +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x5ce98a9c mei_stop +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x650efc48 mei_cl_recv +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x6bf10bef mei_cl_send +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x70b8e536 mei_irq_read_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x879c9477 mei_cl_add_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x907fb2c4 mei_cl_get_drvdata +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xb134357c mei_device_init +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xb19cd67b mei_cl_disable_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xc6c0a25f mei_irq_compl_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xca7f592b mei_cl_driver_unregister +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xd2174f30 __mei_cl_driver_register +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xf43d06fc mei_cl_set_drvdata +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xf72934bb mei_reset +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x5b6b1144 st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x817515db st_unregister +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x0f6680ea vmci_qpair_produce_buf_ready +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x1152e318 vmci_qpair_get_produce_indexes +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x13aa5a5d vmci_datagram_create_handle +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x1872c7af vmci_qpair_produce_free_space +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x1a195863 vmci_context_get_priv_flags +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x31f6ad8f vmci_qpair_peekv +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x3ef56cd5 vmci_qpair_alloc +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x4b630dac vmci_get_context_id +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x4ba5c46b vmci_qpair_peek +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x50a255c9 vmci_doorbell_create +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x53c20507 vmci_qpair_enquev +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x612df9ae vmci_qpair_detach +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x677c36d0 vmci_is_context_owner +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x69ef87ff vmci_datagram_destroy_handle +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x6cc1a5f7 vmci_datagram_create_handle_priv +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x722d488a vmci_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x7d540b50 vmci_qpair_consume_free_space +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x81d61eef vmci_qpair_dequeue +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x9624c58c vmci_datagram_send +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x9973b9b2 vmci_qpair_consume_buf_ready +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x9d16164a vmci_send_datagram +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xccbb53d1 vmci_doorbell_notify +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xcf5ed7ef vmci_event_subscribe +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xcff91c6e vmci_qpair_dequev +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xdac94780 vmci_qpair_get_consume_indexes +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xe67343c1 vmci_qpair_enqueue +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xe7e7c107 vmci_doorbell_destroy +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1f5ca7cc sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x27e1ff44 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x3a65c207 sdhci_disable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x612e9525 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x7a6120d8 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa3bb5625 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa3e10a48 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa52fa752 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa6930cf5 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xccc1d81f sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xfa118e88 sdhci_send_command +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x0b502284 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x4b783219 sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x685d4558 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x92a43783 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xaa6b7191 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xb7af730f sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xdb8adfae sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x055ba7a2 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x3a72824a cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xf8458234 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x12e4fb50 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x6cb6b080 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x9f4f7f06 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x8b0853d1 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xdb69484f cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xe0bfec5b cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xe4be17e1 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0418e12a deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x090b2655 mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x15cffb6d mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1ad20656 mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1e54847c mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1fbaba71 mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x321d5c31 mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3ad8f781 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3e1c62a1 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x41f8ee67 mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x48f05fc3 mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x50cc050b mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x58afe41d mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6194aba4 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x61f04266 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x67372666 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x70ade4bb mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x725835c2 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7626633c mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x764ec4ff register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7bdba034 mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x86dde733 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8b2aeebc __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8fd9e9e6 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9b520e12 mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xaa821a30 mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xadf94b24 mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xaef79288 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb2e4e8b6 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb5c2b7d2 mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb5d104e1 mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbaf8520a mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbbcb6338 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbfff38b9 mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd0a66b45 mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdf740bee mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe585bd95 mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xeb90db8c mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xee9d0431 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf020dc73 mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfcad417d get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x085fd26a register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x3e82efa5 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x4e13a0e7 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x9a87cf81 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xffb3cd46 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x6cf8fd6e nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x87cfe578 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x18c836a4 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x4ad96008 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x6e6be50a onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x04ea0e44 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0ba7bb82 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x138b1483 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x14f788d0 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6cb47c7e ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6e97002a ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7de37c87 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x80826205 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa71a42c0 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb8395788 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc0f9d864 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdee803c9 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xedca5117 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x059c9c62 c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x2937b2a7 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x8dcd2089 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xa689900e register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xe749caa9 alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xf570527d c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x04edfc5b can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x195dabfb can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x20cf9189 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x216a8e93 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x222c295a can_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2388b796 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x444339e8 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x51c91c67 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7a7c5078 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8561074e devm_can_led_init +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xabefca5d alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xad5105e5 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb346573b can_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb627d2b0 can_led_event +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd4d42665 safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xdab3fb1a can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf8ed06a9 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x1901fbfc unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x3257b89a free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x64786876 alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xc2bdad20 register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x0b02a3a8 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x2eed9892 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x81683dfc register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xf29f6fcf free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x09e763de macb_get_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x3583fe5b macb_set_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x578be97f macb_ethtool_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x5dc0cb55 macb_ioctl +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x7e082038 macb_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xbe464dcc macb_get_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xff2db721 macb_mii_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0131434a mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x040a0bef mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x07794806 mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x08b7e9f5 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0cc33e3c mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x12d984b0 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x142cbb4d mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x15f82314 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1eb25409 mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2296d2a3 mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x22dd1bc3 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x25954e8f mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x28c771b9 mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x29b6c90e mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2aed7c10 mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b83989f mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c65836e mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2eec8e9d mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2fdced30 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x30ba5fdb __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x349d6a41 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3d15a2b7 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x41712e98 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x43ebd6c5 mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x46d02a88 mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x47cb5c7b mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4aa6db6d mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4e2800c8 mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x50a0a9ea mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x50e4f912 mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x524df20a mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5427d47d mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x56e6cb68 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x57ebf9da mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5a025697 mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5c8c394e mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5e07af14 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5ed03b93 mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6044b51b mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x670318c3 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x67378da9 mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6920365d mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6b774c2a mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6bf3ffb1 mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e60ae61 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x74a91083 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x77b0dd7b mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x781acbc0 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7c74b843 mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7f374dc9 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x802401c3 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x806b8ed0 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x80d3f7b3 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8824f06f mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x893cd7de mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8c8b7046 mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8da65a54 mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8ef9faf3 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8fd9d62b mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9586de65 mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x95d997a3 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x96ccb35f __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x98e498a9 mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9bd6d741 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9d9a990a mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9efc4a91 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa069d90b mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa2982000 mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaa82289c mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xab1b36df mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xab552fd4 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaf057f0e __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb843546a mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb8626319 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb8bd51f3 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb907eb73 mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb94acf35 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb987e76d mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba3773e4 mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba4646fc mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbb5483df mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbcf13ab4 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbdb76c21 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc109e90e mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc1daf199 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc2eb0c91 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc8ce5b69 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xca0122fe mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xca74783f __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcca5a54f mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce2c22e7 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xceaab650 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd2948d5e mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd4946281 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd6a2dece mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdc28c461 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xde5f6ec4 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe72e384e mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xebfb3406 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xec7f8267 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf0f52c13 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf154359f mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x012065eb mlx5_destroy_unmap_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x091637ab mlx5_core_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1507f680 mlx5_core_destroy_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x19827df7 mlx5_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3c777e68 mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x51adda4f mlx5_core_create_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x52d29f35 mlx5_core_xrcd_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x54bb7ff2 mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9723f3e2 mlx5_core_eq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d0c361c mlx5_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9fd80cd2 mlx5_core_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa332cfbc mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbbb3f71f mlx5_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcf0b55db mlx5_core_mad_ifc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6c4ef56 mlx5_fill_page_array +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd7f0cad0 mlx5_core_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf8bac412 mlx5_create_map_eq +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x07c34149 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x2c32d819 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x307bc12b macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xa846bb3b macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xe583390a macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x86caf677 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x022ef607 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x74b4c403 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7fad771d usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xf729ac87 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x072c5147 cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x4bfd87a5 cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x5483eb91 cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x6e808149 cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x751ae3f3 cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x88f9a1fb cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xcf71054d cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xe238ff7a cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x0805373b rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x1a7cc3bb rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x51e619d3 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x55de5240 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x64eb7567 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xe01be2b7 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x16ac7393 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1a371cf7 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x232eda90 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2801ff09 usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x28c84b90 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x424dd398 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x56d65931 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5ec0a091 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x60173266 usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x61f458cb usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x62fc4479 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6343962f usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x665ff26c usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6731b9bc usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6ded3847 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8472da63 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x88c77e63 usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x92191a92 usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x94a6eb95 usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x94aa4289 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x98887cf1 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9c54c3e5 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9d6b4067 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc46fc5c1 usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcbb1f015 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcbe65136 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd284618c usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd9505496 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf433ac55 usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf4f9fcea usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf5685215 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf6f92cf7 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x952bfa49 vxlan_src_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x9a130347 vxlan_sock_release +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xc5451735 vxlan_get_rx_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xe2a0fd94 vxlan_xmit_skb +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xf101371b vxlan_sock_add +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0fd1ea73 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x286832ae i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x32ab8c13 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x385059b6 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4730b7da i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4e3ed05e i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x57b17996 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x59b113f1 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x693fc164 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x736a91a4 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x85edcfc0 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa00fb71f i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd9ac89e2 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe1079708 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xed288b1f i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf9c7d606 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x14dea3fc cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x4d0f201d cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xce06d1ed cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xea14a863 cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x103404cd libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x0b4d28c5 il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x0fe0350c il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x802c8dab _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xf8cbcb0a il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xfe230fc1 il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x071acccd __iwl_err +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x0a30bb4d iwl_parse_eeprom_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x23b31849 iwl_notification_wait_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x2c79a69a iwl_set_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x2fa8f7ea iwl_opmode_register +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x35033c81 iwl_phy_db_free +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x4391ad07 __iwl_info +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x546a0499 iwl_write_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5c52e109 iwl_opmode_deregister +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5d0a212e iwlwifi_mod_params +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x642d87f9 __iwl_crit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x65e52f6f iwl_write_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x6715334b iwl_init_notification_wait +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x6bcdfb1b iwl_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x6da642a2 iwl_phy_db_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x776221bf iwl_send_phy_db_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x81ec7396 iwl_clear_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8c5d5ab3 iwl_phy_db_set_section +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x95795c57 iwl_abort_notification_waits +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x9e1e12ab iwl_read_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa5d48a68 __iwl_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa6ef4f47 iwl_poll_direct_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xb6eef3e3 __iwl_warn +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xc10ece07 iwl_nvm_check_version +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xc7e89505 iwl_read_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xcf341945 iwl_notification_wait_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xd1db77fe iwl_wait_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xdc73c93e iwl_set_bits_mask_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xdd3e32a4 iwl_remove_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xe8322d64 iwl_parse_nvm_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xf16c95d3 iwl_poll_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1764f09c lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1b606a5f lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x23cd510c lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x24a1a920 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x260d244b lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x26d52dff lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3d9752b1 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4c90bd56 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5cbf437a lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6dbaf7f9 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x735b2177 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x80ecfdcc lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb34c895b lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xce8c706e lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd6532bcf lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xff1f5c92 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x214d2d0e lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x21996d1c lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x22035fe2 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x454cb9a7 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x6f26f7d1 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x7b4ac023 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf470bb2b lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf62f6739 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xad002858 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xb5f64282 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x0530364d mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x3922d3ff mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x40dc9449 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x415a2577 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x4866e777 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x590dd318 mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x721af815 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x98b044e7 mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x9c0f5bbc mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xb9951228 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd566fab7 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd858fd90 mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xe1076542 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xfbd01baf mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x1d99d4f6 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x40ad51e6 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4e21d18d p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x52c2b6c4 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x5f32cc8a p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9a054b67 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb281aad9 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb8cee6f5 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe9a023fd p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0502811a rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x05322dd2 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x06b2ae87 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x08229ea4 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x27589a8a rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2c98b349 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3183c3ba rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3a09a37a rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3dcee067 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x477df4b4 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x57eaad2b rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5808eff3 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6772c874 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6a96c56e rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6c7f15db rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6dc2201d rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6ef3a175 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x715f6935 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7fd2e2d0 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x878493d2 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x896b8d75 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x900fda97 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9177d47f rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x984618d4 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x992988f9 rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa6e6365c rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xae4725e7 rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb25b1ab8 rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb67079f4 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc5f495f1 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcc00d718 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd432271e rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe5ad8e4b rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe5e1bfdc rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xefbec931 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfb049c47 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfe0041c4 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xff6abe65 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x01b1d890 rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x0fad1430 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x2505789d rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x2c072f90 rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x32b1a717 rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x38b9875c rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x3d3a3836 rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x41bb6e98 rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x441432c5 rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x4899104d rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x7111003f rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x79422f72 rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x92c0bcd1 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc6a1455e rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xcc03468c rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xe28f94c7 rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xeb3461e5 rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xf54c1c04 rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x04cbdd5f rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0addba6e rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x13940a80 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1a8c46f0 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1f0a495d rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x22cc3844 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2b3d3de9 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2c65ad76 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2f49514b rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x35757b04 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x38d74983 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3beacd1b rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3d83275d rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3e91ec34 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x42b3d5ec rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4771b0f5 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x49ef82bd rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5af54280 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5d9ef449 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x60864523 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6cf6d9f5 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x793f37dd rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7a127410 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x80f8b185 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x83b66d76 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x889052e4 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8bf235bb rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x97ab945e rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa4c93bf4 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa6db145e rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb3525ab6 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb3c631e5 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc03d50d0 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc499aaee rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc57571b4 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd38da430 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd93ac3f4 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdba03c0a rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xde5da07b rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdf7fca48 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe79c5837 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe9b60fbf rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xefcca033 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf44f59a2 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf956192d rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfd36adec rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x02a9623d rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x286b8a86 rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x64c1e06b rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x684fd850 rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xac914fa4 rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x02ea2b7f rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x41163ce2 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x775bd402 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb0f6701e rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x30ec46f8 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x354b887f rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x39905e46 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x491beba9 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x49e4adbb rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5b6bfccd rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8caac38e rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x90346845 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x97548fbd rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9c343e67 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xac307351 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcbb39e2c rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd00bc37a rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd8f590b0 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdf8a5e8c rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe4525291 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x49fa411e dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5bfb28d0 dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7e23ec8d rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf28c65bd dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x091bc306 rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x1e985b8c rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x277d84e5 rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x2984653c rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x2ba6f2d7 rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x34006d11 rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x394bee3f rtl8723_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x45e4d492 rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x5b2f9b6f rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x61f71133 rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6240e590 rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6bc970a6 rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6fee3a6c rtl8723_phy_set_sw_chnl_cmdarray +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x788e16d3 rtl8723_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x88d79fda rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x89f7f008 rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x9109a667 rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xa169e7cb rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xad38e264 rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xaf4d6d94 rtl8723_phy_calculate_bit_shift +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xaf73f49d rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xafdff17d rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xb41ae8ab rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xb66bc124 rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xb8e2526e rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd1c0fb66 rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd87a6ed8 rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xdea1c55a rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xe2df9b17 rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x241dedc1 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x3dd0e9c0 rtl_dbgp_flag_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x5060abe7 rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x5115d7cc rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x5da0c84f rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x6b37f382 rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x6b4de810 rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x753c3732 rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x76a01a80 rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x7f924daf rtl_attribute_group +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x86602a7a rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x90849d6c rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xa6f6dff2 rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xa8c1c4b2 rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xae0ca53d rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xb9ed8648 read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xbc0e6d63 rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xc41dae31 rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xd1cc6215 rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xd2b1f48a rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x1f3e5d8b wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x357034c7 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xcca30486 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0673d34d wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0d0b9d88 wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x110d2241 wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x16a9b652 wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1ad295dd wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2f05c92f wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x32d82b22 wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x34164c76 wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x358a435c wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x38150dd3 wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3834d463 wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3c72d48f wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x461548b1 wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x48eeb500 wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4e08d2a4 wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53a594cf wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5da68aed wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5e7bfce6 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5e8e39e3 wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x66b11857 wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6c0b5ed0 wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x767e9079 wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7b236613 wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8731c726 wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x87b79dcd wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x88ab6844 wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8bf1cbfa wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8eed2ad9 wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x98400673 wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9914ae1f wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa8169028 wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xab04cfaf wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xaf328573 wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb430d0e3 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb96ddb16 wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd39bb505 wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd97909ba wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xea4de1ff wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xec635899 wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf426fe4d wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfd3e6394 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfeede001 wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x3b577068 nfc_mei_phy_disable +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x8b4e7b3b nfc_mei_event_cb +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0xe82e19a5 nfc_mei_phy_enable +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0xf2b070a7 nfc_mei_phy_free +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0xfb65dc81 mei_phy_ops +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0xfe257319 nfc_mei_phy_alloc +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x099bb806 ntb_unregister_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x0c41de3e ntb_register_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x30934216 ntb_transport_max_size +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x32537aca ntb_transport_link_query +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x3d54dbfc ntb_transport_tx_enqueue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x436098aa ntb_transport_link_down +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x77ae9ef1 ntb_register_client_dev +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x82e6c13d ntb_transport_qp_num +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x9c992c8f ntb_transport_link_up +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xc270dc24 ntb_transport_free_queue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xc37d9036 ntb_transport_rx_remove +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xd40e7a02 ntb_transport_rx_enqueue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xd42d6d86 ntb_transport_create_queue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xfe897ddd ntb_unregister_client_dev +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x0a418418 phy_destroy +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x0e3c094b phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x1063bf48 devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x1601a182 devm_phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x1fa01c96 devm_phy_destroy +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x23b8de60 __of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x2e325114 phy_init +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x34eff2c6 of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x3c1e4f57 devm_phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x3ea17426 of_phy_simple_xlate +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x413f44cd phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x42c5bc4c __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x5587eb4f phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x5afec848 devm_phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x73f7b6d5 phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x7f354e71 phy_pm_runtime_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xa438085f phy_power_off +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xc56e1dc3 phy_pm_runtime_allow +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xd0c33909 phy_power_on +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xda0b43aa phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xe125ca8e phy_pm_runtime_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xf439a7cb phy_exit +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xf7cd88e5 phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x0cc40841 asus_wmi_unregister_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0xd878dcbb asus_wmi_register_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_ips 0x46809fa9 ips_link_to_i915_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0x232b5238 mxm_wmi_supported +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0x61cdf799 mxm_wmi_call_mxds +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0xe26032eb mxm_wmi_call_mxmx +EXPORT_SYMBOL_GPL drivers/platform/x86/thinkpad_acpi 0x706cdcef tpacpi_led_set +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x561c634a wmi_evaluate_method +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x876d29f1 wmi_get_event_data +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xda29f8b0 wmi_set_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xfb882fb7 wmi_query_block +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x0895216e pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x9dde3d27 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xb30bf501 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x0ea01b23 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x4627ea43 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xee4e87a8 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x34cd7a62 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x3a73fce2 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x54af084b wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa271a45b wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa962fa24 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xf5952fa0 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xcdf0d2a6 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x022e4ccb cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0b414742 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1519e883 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x16cfa13a cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1b28d8f3 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1c59d30e cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1dc8f559 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1fe040a0 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x239c3070 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2a3aaa13 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x37842fd6 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3e5c310b cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4563c776 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4b3f96ad cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x560e114b cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x623b57bd cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x62de8a98 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x63fd1a68 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x643e103d cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6ae86305 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6cd4835f cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x73e30fe0 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7a8e8a99 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8853184d cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x897d9407 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x90645f36 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x92a838d1 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa4a88036 cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa6afddd5 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa6d81fc5 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa708ba3e cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb027379f cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb5e9ecbe cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb738c446 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc2020f16 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc8bbde01 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd4454db3 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdc040430 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdc37e993 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe7fa46d9 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xeaeaaeb2 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfafc7ca0 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfb989997 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfee5226d cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x020eced2 scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x1bc6e875 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x2d014c55 scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x3c2b1cb3 scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x6e5c5de8 scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x6e603ce0 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x9b563d06 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x013951d9 fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x09ec55f5 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x21c15edf fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x278f2f60 fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x39f2a4b0 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x3c815d60 fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x42eee69c __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4b64ac95 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x76687e7a fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7a9d7426 fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8202deb0 fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xb5bbda00 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc21b7b8f fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xce854c04 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xefc6d75d fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf3159307 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x50afb021 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x58e28c1d iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x9fc75df1 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa1eb3580 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xb4975539 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xe9eb4167 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x05c76006 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x08b10779 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1543e8b2 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x15d12613 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x209c2569 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x28e51494 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2fb4fc84 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x33a469fa iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x374d45d1 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e20065e iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e58ca7e iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4042cc1e iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4116ea31 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4247e743 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4449c1b2 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5601e607 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x58c1da29 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5af8403c iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5d643f26 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6af04849 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x71d7e615 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7cb2f9fe iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7dad3ef5 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d0ebed8 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d1d966b iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d4fee55 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x980b01bc iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x997610e5 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xae6956fa iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaf686489 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb139e2a8 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb36f8e76 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb7ab3f07 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc3e9d208 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcd442704 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcf65afcb iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd6bb6637 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdbc5745f iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe2ac30a0 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe7dd2070 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe916822e iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xed4b9922 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf7dba0ef iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfdeff60a iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1006b185 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x135ccc1d iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x18e3e1e4 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1fd91c39 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x21c353c9 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x247837eb iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4b9dafdc iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5e8645ae iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6cb56900 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x722339dc iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa683ad74 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xad4b32f1 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb6072822 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb637a718 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe2006e27 iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf6125a34 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xff46cbde iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x07600022 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0848a81d sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0875d7f0 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1078e5f4 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2384b23a sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x28863591 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x29e1063b sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2a884cd5 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x54041423 sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x55cbd0d5 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6c1afc44 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x76d8b420 sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x782fd937 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x819d56d8 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8559e55f sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8bedbb80 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9d096221 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa90d9d46 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbb714716 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcb5b4539 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd05d717d sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdbf8c5dd sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xea816fe4 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xeba94726 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xffd3dadd sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x15ced4b0 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x2ef4be37 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x36d88bfa srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x447be0ed srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe244ae69 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xed438812 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x20ed79e9 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x451e1da7 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5ddef941 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6fd75f29 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9969e8eb scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd821073d scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe4b789ef scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe9f234fa scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf00e2d65 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x08a7411d iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0b29e116 iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0badfae6 iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0bcc3aad iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0e0ab315 iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0fd9a235 iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x10a7a780 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x175360b2 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x22809cac iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4e516727 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5490311f iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x607c480c iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x61685253 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x672f7b2b iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6d9ba96f iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x70565e40 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x710b8704 iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x71cabaec iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x720eaf0d iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7cc26ddb iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8bd4cbe3 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9514255b iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9b3e9ca7 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9c008380 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9eeaf8c7 iscsi_is_flashnode_conn_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa65d40a9 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa7318cb2 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xac668fdd iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb286ffb1 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbd0f7d31 iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc0f9253f iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc22a41f6 iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc5dfc43f iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc65b3f11 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcc119fdb iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd8d6a19e iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe18b23d3 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe3015091 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf0bf394c iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf6dd4901 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x44f777eb sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x4be544ab sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x89ddc2f4 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xaa8baeb1 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x341881b8 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x57f365e2 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x84e89f59 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xbc2fc6fe srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xdb26d178 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xee891cc0 srp_tmo_valid +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x5083c56b ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x577f80f1 ufshcd_suspend +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x6274bdce ufshcd_resume +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x6867f45c ufshcd_init +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xc1328c22 ufshcd_remove +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xf87ba728 ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x24e6ff16 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x53b42096 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x8c8f4472 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xac35fca3 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xdcd47da1 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x47d978fa dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x813dc330 dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x9cfc10c6 dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xdd4f0d5f dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xe0177fef dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0x22a15bc7 ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x02baecd4 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x09d9b89b comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0a8a3181 comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1ab2867e comedi_pcmcia_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1bb08d12 comedi_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2264541e comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x250e3630 comedi_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x35181329 comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3d1f532c comedi_pcmcia_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x46206f26 comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4a751875 comedi_buf_put +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x55adfc26 comedi_error +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x560af93d comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5687ef96 comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x58a95d97 comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x64594859 comedi_buf_get +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x666046dd comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6780c10c comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6811c5e9 comedi_buf_memcpy_from +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7a7619c7 comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7e12f18e comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x800141ed comedi_buf_memcpy_to +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x81732b34 comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8288c02d comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x83329d37 comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x847301ef __comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x9f053806 comedi_pcmcia_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa112eec2 comedi_event +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa63545f5 comedi_dev_from_minor +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa66a5c8f comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa8097888 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb7c158c4 comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbea86506 comedi_pcmcia_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc52c8b43 comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc90354ef comedi_to_pcmcia_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc9b31689 comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd0942f35 comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd2df05cb comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd751add8 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe50f730e comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe5662de9 comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xea0a81bd comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf35bd6f0 comedi_pcmcia_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf61e14b3 comedi_pcmcia_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf9ebb1aa comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfd3aa2bb comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfe10a711 comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xff8def2b comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x04260fe9 subdev_8255_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x1e16150f subdev_8255_init_irq +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x206f13da subdev_8255_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0xb6a9cda1 addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x3b9d0e19 amplc_dio200_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xb3c1662a amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xf8ff0636 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x49778760 cfc_handle_events +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0xdff38070 cfc_read_array_from_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0xfb72df02 cfc_write_array_to_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xd220db08 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x0194eeed mite_release_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x0d15822a mite_bytes_read_from_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x27891d7a mite_bytes_written_to_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x383176a8 mite_sync_input_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x497fc419 mite_sync_output_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x52e07fd4 mite_get_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x60fb6b24 mite_setup2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x64487f3a mite_dma_tcr +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x6758abc2 mite_done +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x73c5007d mite_setup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x86690dbe mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x875e367e mite_bytes_written_to_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x876eddef mite_buf_change +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x8af1154c mite_free_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x948ee17c mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x9feb84fa mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xa55c018d mite_dma_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xadc2a92e mite_bytes_read_from_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xb7202f50 mite_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xcdb6f74a mite_unsetup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xcf1b2145 mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xec6cccd3 mite_prep_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x717ae1b4 labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x4b571fec labpc_setup_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x62b66a4f labpc_free_dma_chan +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0xc9de9d3a labpc_drain_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0xdf2791a8 labpc_init_dma_chan +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0xe71df38d labpc_handle_dma_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x02ed3cdd ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x23e3b970 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x631a7562 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x65370ef7 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x87599de1 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xaf6f6ec5 ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xb24bf480 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xc29e58d4 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x7c8eddd0 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xaec53e7b ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xdc0f2adf ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xe53d4270 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xfbc8c294 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xfed90748 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x31834834 comedi_open +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x4a429bea comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x935ead4c comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x952107f7 comedi_dio_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x9e222ba0 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xc21ce98a comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xd6be17c8 comedi_close +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x2206b003 dwc2_handle_common_intr +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x6d854a6f dwc2_hcd_remove +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xb05a818c dwc2_set_all_params +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xfbe2f19c dwc2_hcd_init +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x1a1b5249 oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2feda75b oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x3227a28e oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x7dc9dddd oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xb2c66001 oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xc8b5a524 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xd370f679 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x8aff9666 adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0xbd5a0e51 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x1c91a1a2 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x5436efff spk_serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x59cdee85 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x77dbc97d spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x7d2ae111 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8fe66c8b spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xa8f24531 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xabafebd7 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc91490ae spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xcda38867 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd1b551a2 spk_get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xde7ae2e8 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xf53d17af synth_remove +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x08339442 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x4e06b01f usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x60e33847 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x678d7536 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x888d08af usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8fa3389b usbip_recv +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x98a01e08 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xb7e49452 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe0624bc0 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe7dd7a0f usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe9899571 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xef199229 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xf3297ae9 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/uio/uio 0x2754657f __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xa7ce42a4 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xd7da548b uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x4fa81f55 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xa4d38999 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x1af6c15c ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x6e8fb864 ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x068144cf usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1608ddbc usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x203275f5 usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x20d36a60 usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x218a52d6 usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x28233179 usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x30c92246 usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x354bbda0 usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x36b8dba8 usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x37c5046e usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3fe7b478 usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x57ec2fc5 usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x59fcf82a usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x64b7bf09 usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x78ef5050 usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x8f0dc685 usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x9208de5b usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x9487bb86 usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x94d7075a usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa95a4e35 usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xaad1c3bd usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xad81aef7 usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb5243cd0 usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xba5e4252 usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd1c7c317 config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd9bd54e5 usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xddafe23c usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xde14dc8e usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x692a27d0 gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x8e27d6de gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xd80b698c gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xf1981607 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x259d9e4a usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x604cd733 usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x7254b935 usb_gadget_unmap_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x81eb886e usb_gadget_map_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x8a4e8754 usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xa0fd6263 usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xae90cbc8 usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xc26b202e usb_gadget_set_state +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xda68627f udc_attach_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x0a5230df fsg_common_set_nluns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x141fce2a fsg_common_remove_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x1ccb58f7 fsg_common_set_num_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x2d10b6a7 fsg_common_create_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x51707c29 fsg_common_run_thread +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x6544cba4 fsg_common_set_cdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x6acb4179 fsg_common_set_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x7e26d4a5 fsg_common_set_sysfs +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x99023bfc fsg_common_put +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9a0221c7 fsg_common_free_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9dc025a5 fsg_common_free_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xa46e6443 fsg_common_get +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xce9204f2 fsg_common_remove_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd3ae3b65 fsg_common_create_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd468f882 fsg_common_set_ops +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xe4d1591e fsg_config_from_params +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x656cbdd9 ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0xdb6ec008 ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2efe0666 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4c4874a5 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x568fb771 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x73d6f88d ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x996337ce usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9e52130c usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb163f2bd usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb4517f02 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb90ce9cc usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x5de6549e musb_interrupt +EXPORT_SYMBOL_GPL drivers/usb/musb/tusb6010 0xdce609ba tusb_get_revision +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x41f5cb90 usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x5eed11c5 usb_gen_phy_init +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x9a2f5ab6 usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0xf8df582d isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x09adcf8f samsung_usbphy_rate_to_clksel_4x12 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x17b9f9d9 samsung_usbphy_get_refclk_freq +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x33fc1706 samsung_usbphy_set_type +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x35dffb36 samsung_usbphy_set_isolation_4210 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x64b954d5 samsung_usbphy_parse_dt +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x6a4955b8 samsung_usbphy_cfg_sel +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xc9f9a583 samsung_usbphy_rate_to_clksel_64xx +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0x2bbd6b70 usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0be6f271 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x20a37e2d usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x25cdf300 usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3640c874 usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x36fc8303 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3ea78550 usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4f82d8d8 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6392bc50 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x67e8d539 usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x769925f4 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x807c99c7 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x993411c6 usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa5239768 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xac4bb3d5 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb15f70c5 usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb854da54 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb8775f0d usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb94964d6 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc328fbf8 usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe2865a4e usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xef99b4c4 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x02190df1 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x03bcfdf9 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0c6181d1 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0cf424ef usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1ee20a3d usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x20048bae usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x221bba2c usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3cbc5536 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3ff03e0c usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x46fbdfc3 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5c72fca8 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x66ac6bb1 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x75130295 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x97038a6f fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x99e9e0a6 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xaeaaa9db usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbd920217 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc234660d usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc31fbcf6 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd42fbb02 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdd8551df usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe4696b9d usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0bd816f0 wa_process_errored_transfers_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x2923a366 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x2939fe2d wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x532c739b __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x936479f2 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xb550f114 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xe53f14d2 rpipe_clear_feature_stalled +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1a31ba0b wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1ad0b2f0 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x28d7bd1a wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3241df7a wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x65bb63f9 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x78524ede wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x93ea08c1 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x97d27eb2 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc0ffd639 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcf738954 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd4def92f wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe60b5a08 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf949d309 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf9dde4af wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x10d0eb78 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x8543015d i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xdf59bf6c i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x0bcfa0ed umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x18345c43 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x6e688b25 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x75d95fdb umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb496021c umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xbafa9753 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd85df055 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfa401a9d umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0d68d0b6 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0d78016e __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0fc02440 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x25783789 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2df8c72b uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4255b247 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x46826b0c __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x47d7fd6d uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x496b6c43 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4ffab7ff uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x504948e2 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x51ee065d uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5c912bf6 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5fa2e1fb uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x730e77ff uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7d1f369f uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x816b9e92 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x83f74b19 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x85284a33 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x889be69c uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8a66c428 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8ccd553e uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8fe4ab7b uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x90157fc8 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa6281410 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xac97316b uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb1db30b8 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb351360c uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb9c038c4 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc15718b8 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc71b9d06 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc8aa7e3c uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xca907907 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd0f8f5e9 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdbe49237 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe99d77d2 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf3eaed36 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf64b5413 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf77f9327 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfc2bdffc uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfd2bb692 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x701a8689 whci_wait_for +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x145ba967 vfio_add_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x2f5f92a8 vfio_register_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x3567743b vfio_external_user_iommu_id +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x95258207 vfio_device_data +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x969c73d9 vfio_device_put +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xc39adb80 vfio_del_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xc4913442 vfio_group_put_external_user +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xc760e73f vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xd7bfbff7 vfio_group_get_external_user +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xd9b85663 vfio_device_get_from_dev +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1b0ec119 vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1c1d8ac2 vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1dc8bbe7 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1e48dd92 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x269f7a09 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2a0f0591 vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2cb1b54e vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3e744223 vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4199732b vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x58f0ab8d vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5cc9eb43 vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x62eaf3de vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6aef7703 vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x75d0d5bb vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x79713f49 vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x80c90a16 vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x90dac6ac vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x970edf9b vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x97cfd005 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9ec50adc vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa1dcbcf2 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa3abe710 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa73fd173 vhost_poll_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc331c1e5 vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd58aa43e vhost_init_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd8946b22 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xdfd3f386 vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe8b45710 vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xee11cb6b vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf1516980 vhost_work_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf2d07f64 vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x066fe6ec auok190x_pm +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x0b9c0ffd auok190x_send_cmdargs_pixels +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x24361989 auok190x_send_command_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x3dd6cccf auok190x_send_cmdargs_pixels_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x99b48730 auok190x_read_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xa073afa5 auok190x_common_probe +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xb3433f84 auok190x_send_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xbda4cf75 auok190x_send_cmdargs_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xc092c8ca auok190x_common_remove +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xf4628f26 auok190x_send_command +EXPORT_SYMBOL_GPL drivers/video/backlight/apple_bl 0x2c63e051 apple_bl_register +EXPORT_SYMBOL_GPL drivers/video/backlight/apple_bl 0xdab0f892 apple_bl_unregister +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x2c3e7f71 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x52223ddc ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x595a54d4 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xaf6560b7 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xb1ca284a ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xc4f7f467 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd61654d0 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x6d25414a fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x8eececaa fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x975dd5cc fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x8b02784f sis_free_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x941ab538 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x31469540 viafb_pm_unregister +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xb4f863e6 viafb_pm_register +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xf2ef4b3a viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x0c34cc29 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2a422509 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x54be33fa w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x552efcca w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x6c200855 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x836d3276 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x876fecbd w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xcafddd1d w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe8fe2a57 w1_write_block +EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0xeab02494 xen_privcmd_fops +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x6e54b993 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc5bae3bd dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc6dc8c2f dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xe4f4f3c2 dlm_posix_get +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x09371eef nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x20caa55f nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x2b00cf55 lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6261c50d nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6a33475c nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x72131c60 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7ddf121 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xe22f9fe4 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xe7d2074c lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0051f28f nfs_generic_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x009b17a5 nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0295499f nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x02ef3b3b nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0554e237 nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x08cc6281 nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x09412c41 register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0b08dcb4 nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0b0f1c34 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0b99cb50 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0bdf5111 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0d0cdcbf nfs_pageio_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0f70f7de nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0fc8a24a nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x114394ce nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1340cb7d nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x13bacd2d nfs_try_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x15e4ef83 nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x17463068 nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x17ba6c9d nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x192a4e63 nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1a816e16 nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1c14bc29 nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1f0d3616 nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1f1c56c8 nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x20e79d9f nfs_file_fsync_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x213d74ca nfs_readhdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x232f0aa2 nfs_generic_pagein +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2484d2b3 nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x24e31c68 nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x265de35d nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2760e6a5 nfs_readdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2950306e nfs_file_splice_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2b9e87b7 nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2c7ec452 nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2d6d08f0 nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2da797d3 nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2e9bb6ef nfs_pageio_add_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3006376e nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x32350b86 nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x33c6e3d6 nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x35037e1b nfs_writehdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3570a7e8 nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x38982e47 nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39ca60f1 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ca31f35 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3da5c645 nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3eed71bf nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f464534 nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x422a2c2c nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x43108aac nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x43c82b8c nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x497cfcb7 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4c6a7886 nfs_clone_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cd3df11 nfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4d99fe0d nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x508eadcf nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x52e3125c nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x56eb7b5d nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5a541131 nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e1d863a nfs_sockaddr_match_ipaddr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6054fe8c nfs_destroy_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x61950db3 nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x633988fd nfs_pageio_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x659e1090 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x696fdd04 nfs_fs_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6ae8c8f6 nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6afdd9a0 nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6c78e1f3 nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6f665567 put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6f68bfc1 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x71b2ad8b nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x737d48e4 nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x75e85af1 nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7a31f8ff nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7b3bdab5 nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7b9b346f nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c26ab18 nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c9722ba nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7cf0ed7b nfs_probe_fsinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7d0bfcaf alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x829c179d nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8468898a nfs_remount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x861c2006 nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89bc5a64 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8d30db45 nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8ddfc090 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9535bc65 nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x96ad91ca nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x97af8131 nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x980fbb61 nfs_file_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x98d48b25 nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x998c96b8 nfs_put_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x99932598 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9a2673bd nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9d4e04ef nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa514a8dd nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8d2d1ce nfs_callback_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa998e8c7 nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb2e6e5bb nfs_writedata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb4a7bc7c nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb51f839b nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb606e716 nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb82415d3 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb9177f14 nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbfa930ad nfs_fill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc002ece4 nfs_set_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc14d354c nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc38c00ce nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4ff1e9f nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5ef47d5 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc6cdfd59 nfs_fs_mount_common +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc94c0764 nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcac5d787 nfs_file_splice_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcbebaec9 nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcd8a6980 nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2513081 _nfs_display_fhandle_hash +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd32ceaa5 nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd46c71d2 nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd58cc237 nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd66aceba nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd68ec539 nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd7b48a1a nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd99eb734 nfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd9e7a610 nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdadf8488 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe0fc6405 nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe232ecc3 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe5093d19 nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe91c8f16 nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xea7bd667 nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeee038e8 unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeef12ffe nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeef8c696 nfs_setlease +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfa55bd8e get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfb7ee006 nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc619abd _nfs_display_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfe165ef5 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0391181c nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x06c36816 __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x08ab9f2b pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x106432c5 pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x170f3ed6 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1a21ec7f nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x229fa14c pnfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2540f9a0 nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x27dc73c2 nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2b5374f1 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2eb92c0e pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x31da6695 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x34b9ab20 pnfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3dfe6fe3 __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3f30f360 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x471de0a9 __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4b5656a7 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4d5e0a84 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4f5e5519 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x54c24222 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x60a14f12 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7b4b7a07 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7e91de58 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x828574b7 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8492ad08 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa3ac1495 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa4530e99 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa54e7375 pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa76a5e39 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa7fc5cff nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xada3f818 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb1970283 _pnfs_return_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb4a5ae08 nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbc796b5b nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc07d2725 pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc6627299 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcdcf6576 nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xce2cff02 nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xeb5cdc0a nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xec801a0e nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf306e232 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf3602052 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfece9842 nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x894dbc63 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xf732f85b nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x0c8f06f0 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x265a2a25 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x325fa2ba o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36a28a9e o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x45b3e161 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x529191c9 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa59f6aa7 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc814e250 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x1250d34c dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x4b23b4d6 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x87b89d55 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x90dfe31b dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x99a7e8fa dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xac6c6cc2 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x1d9b8fae ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xa569204f ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbe013f43 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x8444d7b8 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0xf0433b81 notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x1803a6ed raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xe4b051cf raid6_datap_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xfdfcb8cb raid6_call +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x201d8ea3 encode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x29fa419f decode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x603e23fa garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x6c32c1b7 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x74d3727f garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xc8774d28 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xdbe10403 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xfb33d594 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x0965086e mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x0ade489f mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0x15cf22c8 mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0xa1c0437a mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xa4e740d6 mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0xafe4fb6d mrp_request_leave +EXPORT_SYMBOL_GPL net/802/stp 0x18f6b4dc stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0x9e9feed5 stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x377a2a8c p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0x8f17197e p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0xb09faf79 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xcfb6a3da unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/ax25/ax25 0xe0d53994 ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xbb9e4661 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0225153c dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0435c078 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0828519c dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0d3bd6d3 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x196a5cc4 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1f054e46 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x20fcf280 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x26395e62 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x26503dc3 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x30e7fde7 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b436f2b dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3e2f3ac6 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x40d15aaf dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x543531f3 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x55d5e6b9 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56cdba66 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x594b50b5 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5abefb68 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5f6028e6 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7caf7b4e dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x914383c3 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x98d000ba compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb6762809 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb6ee658a dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb7aa7e79 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc07ed95e inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd2b294e7 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd6eb7957 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd9bf123d compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdad083be dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xde6ecf66 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe2cd97d2 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe3691b9d dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe4a782dc dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf77dbc6e dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfba72e1a dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfe47f9da dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x55a6b4bb dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa00773a6 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xaba8cb00 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xc451976c dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xc9c83946 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xebb3c5a8 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7f58f813 register_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xefee823a unregister_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x9a6609f2 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xab16eb89 gre_cisco_register +EXPORT_SYMBOL_GPL net/ipv4/gre 0xacb292ae gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xd8a74030 gre_build_header +EXPORT_SYMBOL_GPL net/ipv4/gre 0xf17f38cd gre_cisco_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x1ab7c6c4 inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x34bb4c41 inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x54141b9d inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x902db691 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xb6f53636 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xba3830f3 inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x20889872 ip_tunnel_ioctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x4a071d62 ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x5a3f4723 ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x6ef77034 ip_tunnel_delete_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x70ddf9ab ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7c1ee7f2 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7de9d924 ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x881d7b30 ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x906d52b4 ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x97c0f077 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xca1f33af ip_tunnel_get_stats64 +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xdd824a00 ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xeb45573d ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xfdde5436 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x3cde9fa1 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xdcf77c2b ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_ipv4 0x57a30c29 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x02df7042 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x06736e0f tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x333f300a tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6349d95c tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd3a45e49 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0x18ffe1a6 xfrm4_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0x61e3e9dd xfrm4_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x390d6fe7 ip6_tnl_dst_reset +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x7529cceb ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xa2a60f82 ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xb8c5b4f3 ip6_tnl_dst_check +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xc6d76b5d ip6_tnl_dst_store +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xc76a17a1 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_nat_ipv6 0xb29633e0 nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0x5d98951b xfrm6_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0x872167ee xfrm6_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x02b7588f l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0da599bf l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x459ab1fd l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x48c08712 l2tp_tunnel_sock_lookup +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5989e9b4 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x59d19c40 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5b56f286 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x687fa628 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x770e78d7 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x805cf454 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8fed77cf l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x959e130e l2tp_tunnel_sock_put +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa6ae7fd6 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb27dc025 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe00b4e81 __l2tp_session_unhash +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe74b9edd l2tp_session_queue_purge +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf70549f0 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x289141df l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x0b72ee9b ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x178b2326 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3663a36d ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x434e859f ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4bf42798 ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x59357084 ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5d38f601 ieee80211_set_key_tx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6c8001d2 ieee80211_iterate_active_interfaces_rtnl +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6d550986 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa21f9364 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xac842d75 ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xbea03e22 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc7dc3076 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xcc3e588c ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe0e0c4c4 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x021337d8 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x069ee825 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0eea8c98 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x13f779ab ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x266b013b ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x2b0889f2 ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x524d71c0 ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6cae09a1 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7966a0e7 ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x83264dec ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa4bded68 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xab528787 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb368d2ed ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb3c54e5f ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe41ad042 ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xef13ebbe ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf3b4d4ae ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xfefeda0a ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x361811b1 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x59a159d4 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x7b711772 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x9cfdd9d5 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x010248d2 nf_ct_l3proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01f84db5 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x04b9a8c3 nf_ct_l3proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x05b9c3f2 nf_ct_timeout_find_get_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x09744b7b nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a1cbcc2 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0b257a0f nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0c7363e7 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1366b57e nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1367818a nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x18b63ac0 nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1b64fddb nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1f0a8223 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x24edcc88 nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x253603b4 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25911685 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25a60f17 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x271245e5 nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3547ec29 nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3606bed1 nf_ct_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37386cac nf_conntrack_hash_rnd +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3e669967 nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4975e0e5 nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5060eb55 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x52a70671 nf_connlabel_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x59bc8263 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5a8f9e08 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5fac9e18 nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x61329fb2 nf_ct_timeout_put_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6139405b nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x613e3f53 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x64e888c6 nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x692cc37c __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6ec486d6 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7075b5aa nf_connlabel_match +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x729e6d12 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x740490c7 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7470de48 nf_ct_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7891b224 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78fa5822 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e9eaf69 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7efbab1e nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x888e6068 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x88974134 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89c9ccec nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e830593 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90b3bc26 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96b97b5b nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96e7216c __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x98261254 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9b1bce3b nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa112ba50 nf_ct_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa2365d3a nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xae915c14 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaece0e86 nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaefbbfc8 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb22063fc nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb53ad7a3 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb662bcb9 nf_ct_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb1c55f7 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbfe0244b nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0cd71bf nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcce1d6b8 nf_ct_l4proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xce82d1d9 nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf8b6585 nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd02d8418 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd9fe31d9 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe15ed829 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe21be69a nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe5afd484 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe9bdccba nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xebc8535b nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xed22cdf6 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xee4cfc68 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf4343cef nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf6e7027a nf_ct_l4proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf85d08c2 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfc681534 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xffddf1ca nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfff683fa nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x3391f783 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0xc4047aa9 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xb03ad945 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1a67ef2b get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2792588a set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x47f3d320 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5dfc156b nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x64bf929b set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa04e7624 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd4a49fd6 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xdaa40c53 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe4a6212e nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf1ac3d1f nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xbca193a5 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x3ca06057 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x43f260c8 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x938993bc nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x97b5f41c nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x3fd7d920 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xbffd9d18 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x011fcef0 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2831cf9f ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2a667784 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc8011333 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf4f4a926 nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf898e9ec ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfc3583fa ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x784a0612 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x017b6b8d nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00f95fb8 nf_nat_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x08f22e21 nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0d9bae4b nf_nat_l4proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x131f636c nf_nat_l4proto_in_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x4bffd811 nf_nat_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7e287855 __nf_nat_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x8b2cc134 nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x9b6543c7 nf_nat_l4proto_unique_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xe10c553e nf_nat_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xf012cefa nf_nat_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x11a006b5 synproxy_check_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x8841d39b synproxy_build_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x90298227 synproxy_init_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xb42e336a synproxy_options_size +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xd967337b synproxy_tstamp_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xe8cc2d44 synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xef7db50c synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0377ba0b nft_register_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0627c7b3 nft_do_chain_pktinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0c1ba28b nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0fda3c99 nft_validate_output_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x1ad0998c nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x2f1c9332 nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3d49dab7 nft_validate_input_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x41c4f7df nft_register_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x4f20e035 nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x562d0cac nft_validate_data_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x6c5c8992 nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9020cc0e nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xaff91068 nft_data_uninit +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xcbd8ad9f nft_unregister_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xd491b297 nft_unregister_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x09dc8090 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0fa5d1b0 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x34b1fc50 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa687a4e6 nfnetlink_alloc_skb +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf9d080fa nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xfba6821f nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xfccea2db nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x21f6bba6 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xc3b3e800 nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xb2807d81 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x03af9f23 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0e7f2dad xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0f2ff100 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2948472e xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x31f4d31e xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x43a49515 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4676ae7e xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x50307af6 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x520a8ab0 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x56345dee xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x81b39863 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8bfd58ce xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8c542fa0 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x97b9d0ea xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa5b62b18 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb97d8c9b xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcc50d0bc xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd524fee1 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xec24fd82 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfe0f2976 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x132318ac xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xd7e1b517 xt_rateest_put +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x7a08d55d nci_spi_send +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x86278f6c nci_spi_read +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xed0321a8 nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x04fa4166 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x0bef4936 rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x114d3de1 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x13fbaa64 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x15b5d52c rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x23cf7b9d rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x27c52d57 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x36de1d6f rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x4b68b74f rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x51fed273 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x5bffa5c3 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x67ac4e2a rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x76fb5825 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x7b8e0590 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x7bc62829 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x7c7c9ec0 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x7d7d4af2 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x83958276 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x92481f32 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0xa4b59794 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xb6f59e5e rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xbf6eadd1 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc99f4952 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xd32f6682 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x0b389222 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x37af7c7a rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4d964e45 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x85d17537 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8f2bd835 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00e0ab85 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01e19326 rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x021c2d6c gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x026f145a xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02f14a14 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03438832 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03ce4733 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0433777b rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045834e9 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06011102 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0613f1f9 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b3224be rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0be0f8d3 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0be2fc72 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e4f4128 cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x111575c2 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1177c9df rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x118526f2 cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x121166dc svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14d51bee write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x150a9967 rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x191c03bf rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1954484d sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1964d42a rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a06a31a rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1aee3977 rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e1d6e3b rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f1693c0 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f2a9970 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x203fc9ae rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x208d4d37 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20dc45d4 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21f464e0 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22a88fd3 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23e2a957 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x256d5344 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2801bc43 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2aef6454 svc_shutdown_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b838717 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b893d0b xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c5cd739 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e84b9ac rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30cc1857 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30edf610 svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31908c63 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x325fcc2b svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x359ee6bc svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35a1fee8 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cf7656f rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x404cb548 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40de9227 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42a5da0e rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42e6137c xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43fe9880 rpc_get_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44b5ded8 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46f9315d rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3db1a1 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4dcc5dd4 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4dd9cfda rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e8e9728 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f320bb3 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50168d6e svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50681d5d rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x512cd574 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51c89ce2 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x543f88c3 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56bc0ca2 rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x571561ed rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57dd44dc rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58899eef svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x592d79e7 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59a301dc svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5cdef156 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5dfb20b4 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f7d64da svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f94de43 rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fa879d9 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fa88026 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62ec6661 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63230d9f xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64e44b51 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x653886b4 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6660236a xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x680bf6cd xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a67e86c put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e28628a svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7066689f xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73a4bfab rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73ff12ec xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74c53340 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x781d821f rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a36ddbd rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ad7831e svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b192828 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c654af1 svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d4da85b xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e89737a svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f5323ab rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8007c0a2 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80951b28 rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80c7c60a xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8142f91c __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x818fccdc xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x821d29a6 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x822ee323 xs_swapper +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x88c99d01 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x890bcedf xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a6d154f rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8aa42056 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9039bb8e xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90462879 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x923fd945 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x937e0ab0 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94397e88 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94ac474a xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98028fe2 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b75d64 rpcauth_list_flavors +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9af975ab sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9dadb2ef svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f414ebf rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f930d84 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa20947a8 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa24c9c8c rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3071227 rpc_rmdir +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa44f56a3 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa543c5bd xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5fa4816 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6917b0c xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8329868 rpcauth_cred_key_to_expire +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9da51ec rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9f67a0a rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaafb03d3 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac509673 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae37281d svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1a41126 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb366a955 rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3a64c59 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4b1553a rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4fb52b1 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5e7d973 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6b19249 rpc_protocol +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb80200da rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb950ca04 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbac8c5c6 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbdd22adf svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf433fd5 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbff451df svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3018b79 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4259452 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9d956e7 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcab2502d cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcaecbc97 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf8a4b28 svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1f8806c svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2a6a40b svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd32a0e48 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4799f75 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4abf4b0 rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd537d94d xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd59ab451 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd627b9d6 rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd718b7f9 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd75cdb99 rpcauth_key_timeout_notify +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7d828fa cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9624907 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdabb80d3 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdac923bb bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdbcb9b06 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdedc07ae sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf0fa4b8 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf131949 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf9350fc rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ac2bb8 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3fd9650 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe826215e sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe907dc7e xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea42aa63 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xebf2aaad xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec2905c4 rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef716215 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf02c0b72 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2057859 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3feb1c3 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4133263 rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf45bc564 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4871af3 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5ce8640 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa02079b svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb7d5575 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff13c328 rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00387987 vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0c79d5ef vm_sockets_get_local_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x15c0c57c vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2663cb64 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x45bd28e4 vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x5166c45f vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x59d943c8 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x73ee584f __vsock_create +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x751ff010 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7f730c80 vsock_core_exit +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x80ed2557 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x946383b6 vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x951a0e3b vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x970b77bc vsock_pending_work +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xa5cad8d8 vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xaa198176 vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xb52d2238 vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbc713e21 __vsock_core_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd0f699d vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd95ac116 vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xe8b7a546 vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf01727ab vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0a79af1e wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x44b9e2aa wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x44d6a89b wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x45e80d21 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x52f70bc3 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6f6a9bdb wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8dec4e37 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb8a8951a wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xc3cae7e8 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xc6bf7557 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xce6e1775 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe6b8ca1b wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf6167a7a wimax_state_change +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0ed30031 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2354295c cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2ee67055 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x39bd0ea4 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x587d2200 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5a7ea37a cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7a752e01 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xaa5353ed cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbd6b4763 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xee79ecb0 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfa666069 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00778770 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x056bb269 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0a575945 xfrm_count_pfkey_auth_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0b9e5852 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x74e1a843 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7a8ca627 xfrm_count_pfkey_enc_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7c30b8c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x92dbc6c1 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xbc8b0f41 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xce7a55c1 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe122af95 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x14d4e776 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x52d485c5 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xa47de02a ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xf7db9121 ipcomp_output +EXPORT_SYMBOL_GPL sound/core/snd 0x3677438d snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL sound/core/snd 0x3ca17104 __snd_printk +EXPORT_SYMBOL_GPL sound/core/snd 0x532c5cef snd_kctl_jack_report +EXPORT_SYMBOL_GPL sound/core/snd 0xb2dcc59d snd_kctl_jack_new +EXPORT_SYMBOL_GPL sound/core/snd 0xd06f89a0 snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/core/snd 0xf6bc5a54 snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x0e5b579b snd_compress_register +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x2da9ba66 snd_compress_new +EXPORT_SYMBOL_GPL sound/core/snd-compress 0xb2ebab4a snd_compress_deregister +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x02cae67c snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x04e1b99f snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x09e913c1 snd_pcm_alt_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa7d4e04c snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x0057e7df snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x0378d5b0 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x912cbce1 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x976e715b snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xadf0ad47 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xb365e19f snd_ak4113_build +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x010ae7ef snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676ab16 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x072da3fa snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x07f31d7c snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x08485234 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x087a0c9a snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x09b8b00c snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0b1242e2 snd_hda_jack_detect_state +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0b1e5a41 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0dbf2b60 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e7f7e9d snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x10593d14 snd_hda_get_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x11713b17 snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x120a41a2 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x160ac63a snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1854a680 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ca8bf47 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1dfb53a9 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1f3e190e snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x21771863 snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x24f92ea2 snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2643af2e snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x26507254 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x285bc452 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x288eeae2 snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x291419d2 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x29f92ab6 snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2a1cd741 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2b75913f snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2b7eb751 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2bc830c5 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2c9c5a55 snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2cf0e2a4 snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2d9dd362 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x30289a97 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x31da2fb7 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3406ef6d snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x358b879d snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3abd8d4a snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e7b1e67 __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4155565d snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x460526cb snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x460e80e0 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48fea21f snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4b49562f snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4cc3c871 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4db020a9 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x521ef6d9 snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x531aa063 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x542cfedd snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5450c9bd snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x567cb98e snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x56867fd3 is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5780ae35 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58e11f1f snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58f0fe65 snd_hda_gen_spec_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58fb5496 snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a476373 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c4d0f03 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5e724139 snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x600af6a8 snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x676012d4 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b371c32 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b7a59bb snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f0c6025 snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71677b4e snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x755dc89e snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76dc6871 hda_main_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x79dcda06 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7ac0c6c9 snd_hda_parse_generic_codec +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7b7b5b4d snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7c610aec snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7c96a248 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d30dead snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7e4cbdb7 snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x806bf487 snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x83ec9ed5 snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x846d8c76 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86065951 snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x871a6e44 hda_extra_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x87f107a6 snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x888f9abe snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8edffd97 snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x927adea5 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9284b7e5 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x936e4851 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x94598afd snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x975eb7fd snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x988399f2 snd_hda_codec_flush_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9909a20c snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x994efe69 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9968875c snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b74bdc4 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9c686631 snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9c6d1efe snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9fea5dfd snd_hda_jack_detect_enable_callback +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa3b88a91 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa460c640 snd_hda_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa4a9892a snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5d03d22 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6039595 snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa9243ec2 snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xacbe16ae snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf697d55 snd_hda_parse_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb25347c2 snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb59a175a snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7ae2842 snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb8a14015 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbae30053 snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbeb45a93 snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc014113d snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc25b9a84 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc26c6a41 snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc440492e snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc4541178 snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5750ae3 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6f79947 snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7383bf1 snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc793d0bb snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca6fca19 snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcc4d2e78 _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcdb0ec07 snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xce2619ef snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd0a1cbfe snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd15c696e snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd3ae9872 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd4f08fdb hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd5fe40fe snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd7faaba8 snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd8eb4225 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd915e8f3 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdad76641 snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb49921f snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd32d948 snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd75e978 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe118de5d snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe197f771 snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe3394753 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe448f882 snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe604055a snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe71b6d56 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe9e54fd8 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeaa461a5 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed4bd362 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeeb1cebf snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef6f88e9 snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4b28506 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf6bb6505 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf9ad2b1c snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa7516e8 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd93f90b snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xff648d5a snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xffab12fd snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x001570c8 atmel_pcm_new +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x739e1be7 atmel_pcm_free +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0xd3d2029b atmel_pcm_mmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x016b3e17 snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06dceffb snd_soc_of_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0946b6d7 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0dafa09b snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1047a84b snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x15574533 snd_soc_lookup_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x17527962 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x18366359 snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1a6baeeb snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ab925e5 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1b32534f snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1bc71cef snd_soc_unregister_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1d4c8348 dapm_regulator_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ea218a2 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2233b6d1 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x25f340c9 snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2b08de27 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2e4e5b61 snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f062e60 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x32d7c093 dapm_clock_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x33c1af7a snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3633da00 snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38b268a3 snd_soc_dapm_kcontrol_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38ba859a snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38d0a31e snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3a2ee58d snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b556758 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c57210b snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3de6fab1 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3eeccda4 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3fe353b0 snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x40073727 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x41b3862c snd_soc_put_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43a13a45 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43d9a073 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x47fa3db5 snd_soc_dpcm_be_get_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x484bdd32 snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49549e95 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4b69bf2d snd_soc_add_card_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4b99a625 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4cd4b623 snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d5ef60e devm_snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4ed0db19 snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x514b726d snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54e7dd65 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x57523a74 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x588918bf snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5b66c2a5 snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5cc30d10 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x60d5d43a snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x63492f72 snd_soc_get_dai_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x64a92357 snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6aaa0e1b snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6bbb7942 soc_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6daf4c1e snd_soc_dpcm_be_set_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6e57395c snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ebc7c68 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6fb5aa12 snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x70ffc803 snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71bb696f snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x758c2fe8 snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78847b25 snd_soc_bytes_info +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7cca81fd snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7d683e58 snd_soc_bytes_put +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ea7192b snd_soc_add_codec_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7f35f833 snd_soc_get_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80f3fc12 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x820fa689 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x822dd843 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x868c7e87 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87078cb8 snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87bc6ef5 snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87d2a786 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x89f03299 devm_snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e273649 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x907ba291 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x918a9464 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x928a2032 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x92d1f5bb snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x92e63901 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9465c6b5 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x947cca8a dapm_mark_io_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x957a00af snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9dec5268 snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9e7cca6b snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9ee3d4f9 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9f35bc44 snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9fba59e1 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa27091eb snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa35818d4 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa3db0731 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa75c696b snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa7deaa94 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa98488e4 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac1b0dcd dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb10deb4a snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb13af3d7 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb2109fb5 snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb3b9bd38 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb5b652d4 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbfbb5e84 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc0003ca3 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc0d23610 snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc1d3a81b snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc2574817 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc300eeca snd_soc_bytes_get +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc5cd3776 snd_soc_remove_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc5fb39fe snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc79324a8 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc9037bb1 snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc9b67e2c snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcbb3a0ea snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd291eb11 snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd3dc1bcf snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd507b900 snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5ef3e56 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd86048fa snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc475a09 snd_soc_platform_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdcfc22e3 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdd39c6b7 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdd637d44 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdda45700 snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe068958c snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe0fe2414 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe22cdedc snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4daff53 snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe54aa049 dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe82a97bd snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe8563412 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeba61198 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xebc4dd3b snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf097a955 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf17a8ab8 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf3a330e0 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf4b12085 snd_soc_add_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xff6179af snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x118a3f6e i915_bdw_gpu_busy +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x34af3be3 i915_bdw_release_power_well +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x7381c75a i915_bdw_read_mch_val +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x8993eade i915_bdw_request_power_well +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x8b28f943 i915_bdw_get_cdclk_freq +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x96d7119d i915_bdw_gpu_raise +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0xa17bc3aa i915_bdw_gpu_turbo_disable +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0xde54f019 i915_bdw_gpu_lower +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_file_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sigset_from_compat +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x0034f3b6 xen_has_pv_nic_devices +EXPORT_SYMBOL_GPL vmlinux 0x006bc072 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0070ef14 __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x007f2837 perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0x00804727 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x009304b6 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x009f41e6 ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x00a42843 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x00bf344c ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00fa62c3 fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x013e9041 blkg_lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x014242b2 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0x014272c0 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x018618d6 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0186262e crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x01addc42 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01f19e73 ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x020ba3da css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x02448233 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x026211e2 memory_failure_queue +EXPORT_SYMBOL_GPL vmlinux 0x026fc4e5 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x02c60b4e alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x02d45f54 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x02f94c2b rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x031b7f1b regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x0334ec6f jump_label_rate_limit +EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0357cfdb acpiphp_register_attention +EXPORT_SYMBOL_GPL vmlinux 0x03710b99 restore_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0x03870e99 vtime_guest_exit +EXPORT_SYMBOL_GPL vmlinux 0x03bf1d5e gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x03dd0962 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03eca9a1 btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x044492c1 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x04736b2c regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04df8fbc lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x04eed9c4 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x052a9ac5 gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0x052d3dcc ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x053494cb tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0x05413789 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0569f6a2 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x05752a96 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x057fc350 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x058b582a vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x058f3923 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x05b70fa5 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x05d85fcc subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x05fad427 xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0x0602646f ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x060ec973 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x061f82dd seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x062fc169 xen_hvm_resume_frames +EXPORT_SYMBOL_GPL vmlinux 0x062fe820 xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0x0631ed69 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x063965fa regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x0646a4e2 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x064bbec2 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0658fcce sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x0664a5d5 rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x06809958 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x068c6f46 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x06c14d8d evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x06d549e6 pinctrl_free_gpio +EXPORT_SYMBOL_GPL vmlinux 0x06e6f816 regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x06eec5c5 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x06ffd847 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x07325465 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x0749ca3d __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x07525315 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x075ddff4 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x0762403c edac_put_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x076e1088 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x07920583 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x07a92010 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07cd5cc4 subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x07f9a414 subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07fc478e acpi_dev_resource_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x08264cee pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x0879c83c dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x087d9164 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x0889f9b8 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x088bfa7e cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x08bc0870 compat_put_timespec +EXPORT_SYMBOL_GPL vmlinux 0x08f789aa led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x08fa9bab ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x0906f462 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x090fee6c dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0x0913e589 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x094313d7 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x09437748 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x09469482 kfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x09834bd3 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0985595b tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x0993bcba regulator_can_change_voltage +EXPORT_SYMBOL_GPL vmlinux 0x09a0b11b devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x09aade98 rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0x09af1c74 rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x09bbaedc __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x09c9d8e7 xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x09f461e2 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x0a42d0e3 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x0a518fd1 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x0a56c390 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x0a72fa9e kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x0a9fd3c5 gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x0abb655d xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x0acce1b0 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x0ae7785c usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x0afc5125 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b2c7dc7 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x0b4e566f usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x0b52e502 apei_resources_add +EXPORT_SYMBOL_GPL vmlinux 0x0b7b9554 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b99c938 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x0bae62b1 ktime_get_monotonic_offset +EXPORT_SYMBOL_GPL vmlinux 0x0be8cb31 btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0bfacd5a bmp085_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x0c013f3b rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x0c0b4af5 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c0d504d disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c0df415 rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c51162c usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x0c5d0ced ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x0c7700b1 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c80e3fe efivar_init +EXPORT_SYMBOL_GPL vmlinux 0x0c968e90 napi_hash_del +EXPORT_SYMBOL_GPL vmlinux 0x0cb1a3fb usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x0cb2ee43 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x0cba7fe4 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0cce0227 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x0cd236ce regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x0d065ca6 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x0d517c93 acpi_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x0d51e4ce xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x0d52fb8a xenbus_dev_groups +EXPORT_SYMBOL_GPL vmlinux 0x0d904db8 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x0dadf681 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x0dc075bc dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x0dd11f01 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e1d0c4c fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0x0e227208 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0x0e295039 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x0e305ab5 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x0e3698cc skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0e36b3a9 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x0e3903d1 serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0x0e59f022 virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0x0e6be2ce irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x0ea62f93 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x0eb5a34e sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x0ec778b9 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0ecf823a static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x0ed9302e percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x0eed47ff __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0efaf572 dma_buf_get +EXPORT_SYMBOL_GPL vmlinux 0x0f2661bb kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0x0f2d7d87 mce_unregister_decode_chain +EXPORT_SYMBOL_GPL vmlinux 0x0f51c456 key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x0f751aea input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x0f8a0fae regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x0f930597 efivar_entry_remove +EXPORT_SYMBOL_GPL vmlinux 0x0fa138de xen_hvm_need_lapic +EXPORT_SYMBOL_GPL vmlinux 0x0fcc1969 copy_from_user_nmi +EXPORT_SYMBOL_GPL vmlinux 0x0fddeac6 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x0fe3bdb9 efivar_entry_set_get_size +EXPORT_SYMBOL_GPL vmlinux 0x1005ad86 rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x101cc060 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x1044ccbe __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x10a35034 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x10bf92b4 acpi_subsys_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x10c6eccb vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x10c949a2 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x10d07dea gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0x10d7331d sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x10e82ff4 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x11001e3a devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0x110106c1 cper_severity_to_aer +EXPORT_SYMBOL_GPL vmlinux 0x1116a3fb xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x111931da attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x11233ec5 blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0x114c0d92 devm_rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x114f1a20 balloon_stats +EXPORT_SYMBOL_GPL vmlinux 0x1157eda4 cpufreq_table_validate_and_show +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x117c7305 hwpoison_filter_dev_major +EXPORT_SYMBOL_GPL vmlinux 0x119af014 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x11bc5158 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x11f51109 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x124fde41 regmap_field_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x126b0ae2 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0x127a806c acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0x127bb994 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x12954274 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x12975931 arizona_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x12bbac5e swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0x130bd388 check_tsc_disabled +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x131f8dbf __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x132279d9 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x132f1814 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x132fc939 cper_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0x133bda37 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x136c7aed pinctrl_utils_dt_free_map +EXPORT_SYMBOL_GPL vmlinux 0x137f4f19 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x13921363 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x13ad647f scatterwalk_bytes_sglen +EXPORT_SYMBOL_GPL vmlinux 0x13b89dee pinctrl_request_gpio +EXPORT_SYMBOL_GPL vmlinux 0x13ce87e8 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0x13d1549d platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x13f13403 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x1416c8d6 put_compat_timeval +EXPORT_SYMBOL_GPL vmlinux 0x1418a698 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x143b2e3c inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x147b0ebf usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x14996660 unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x14a1ab6e arizona_set_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x14b816c6 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x14d4329e __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x14f875ce devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x14fe4faf subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x15010e1f arbitrary_virt_to_machine +EXPORT_SYMBOL_GPL vmlinux 0x1501bf65 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x15026a32 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x150f9eda __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x154593d8 pwm_disable +EXPORT_SYMBOL_GPL vmlinux 0x155de1be device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x157c2cd1 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x159016ec clk_register_divider_table +EXPORT_SYMBOL_GPL vmlinux 0x15939b46 devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x159d1ed0 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x15a62617 xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x15c2b096 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0x15c52601 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x15cebae7 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x15d71915 pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x15e0801e lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x161ed341 fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x163eb9b8 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x168f45bf inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x168f5114 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x16de74c2 fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0x16e2e169 vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x16f66ebc virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x171dea60 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x1753a32f hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0x175d89ed PageHeadHuge +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x17a36ce9 tps80031_ext_power_req_config +EXPORT_SYMBOL_GPL vmlinux 0x17e1991b wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x17f1e8f8 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x181d13c4 pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x1829b9ed hwpoison_filter_memcg +EXPORT_SYMBOL_GPL vmlinux 0x18383d28 rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0x183c7c5c sk_unattached_filter_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1848d7d7 __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x1853653c btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x18582826 amd_pmu_disable_virt +EXPORT_SYMBOL_GPL vmlinux 0x1866cec2 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x18777fe8 task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x187b573e acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x1889563a clk_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x188a95eb pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x18aa9e15 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x18b99b60 regmap_update_bits_check_async +EXPORT_SYMBOL_GPL vmlinux 0x18c1f51c pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x1920feb2 wait_for_tpm_stat +EXPORT_SYMBOL_GPL vmlinux 0x19230fbc sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x192a42bf clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x19473885 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x194dd5f5 pkey_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x196f1579 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19a58609 xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0x19b384a5 hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x19bdd5b3 __online_page_set_limits +EXPORT_SYMBOL_GPL vmlinux 0x19c89fe7 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0x19d31363 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x19f8863d dma_buf_map_attachment +EXPORT_SYMBOL_GPL vmlinux 0x1a082d69 max77693_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a335037 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x1a4f83ed stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x1a762189 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x1a7dbdb9 unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0x1a917828 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1ab35b56 rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0x1acef7d2 pm_freezing +EXPORT_SYMBOL_GPL vmlinux 0x1ad83009 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1add48eb register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x1aef84ed ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x1b11d960 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x1b2d11ac rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x1b3c9291 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x1b548e65 ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0x1b5de5c2 device_move +EXPORT_SYMBOL_GPL vmlinux 0x1b8822d8 pinctrl_gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bb78c5c pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x1bc5eebe pinctrl_gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x1bd06aab cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x1be6dcb6 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x1becf221 extcon_set_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x1bf1a11c device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x1bfc5b83 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1bfe53fa bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x1c0c873f usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x1c3752fd sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c5e1c4e page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x1c5fe39a device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c89cb70 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x1ca23f7f pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x1ca27277 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x1ccd21f9 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x1cdb2147 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x1cfd95c1 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x1d20f7ec ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x1d459685 xstate_size +EXPORT_SYMBOL_GPL vmlinux 0x1d4bb928 crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0x1d58ae14 lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x1d739e1c xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d7dd7f9 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x1d8fb3bb acpi_dev_resource_address_space +EXPORT_SYMBOL_GPL vmlinux 0x1db53455 gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0x1db62e00 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x1dc8d475 sdhci_pci_o2_resume +EXPORT_SYMBOL_GPL vmlinux 0x1dd91a39 sec_reg_update +EXPORT_SYMBOL_GPL vmlinux 0x1de9fe33 ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1dea2676 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x1dfba683 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x1e000879 hwpoison_filter_enable +EXPORT_SYMBOL_GPL vmlinux 0x1e27c632 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x1e2f2af4 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x1e5654a5 md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x1e5b03dc pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e7afad4 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e82f59e gpiochip_add_pin_range +EXPORT_SYMBOL_GPL vmlinux 0x1e8f10a4 __online_page_increment_counters +EXPORT_SYMBOL_GPL vmlinux 0x1eaa1c51 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x1eafc958 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x1eb1594f gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x1eb59cb2 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ed95ab3 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x1edc21cb hwpoison_filter_flags_mask +EXPORT_SYMBOL_GPL vmlinux 0x1ef9471b rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x1f1988f7 hwpoison_filter_flags_value +EXPORT_SYMBOL_GPL vmlinux 0x1f2139ea vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x1f2e0e99 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x1f6d4507 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x1f7399d2 xen_swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1f9212eb class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x1faf77f5 usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x1fbaa0cd dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x1fbb6c35 tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0x1fc8d79e rio_unlock_device +EXPORT_SYMBOL_GPL vmlinux 0x1fcd6c34 pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1febb5fe __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x201948e1 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x20583a1d unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x209ec764 xen_event_channel_op_compat +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20bccfff rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0x20d167ce ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x20e3cff4 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x2119a0ee blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x211a28bb __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x212514da inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x213f48ce virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x21572dc3 devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x2189a017 pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x219071a5 xen_swiotlb_sync_single_for_device +EXPORT_SYMBOL_GPL vmlinux 0x21ac8b77 iommu_group_get_by_id +EXPORT_SYMBOL_GPL vmlinux 0x21cbd162 ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x21e373fa ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x21ffe9ed single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x2223ab77 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x2243753d inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x225e5b05 inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x22703314 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22a2dc3a crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x22c58da2 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x22cab6ef pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x22cac200 ima_file_check +EXPORT_SYMBOL_GPL vmlinux 0x22e53550 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x22f57b78 regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0x2319685b ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x23251457 crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0x2366a2c0 errata +EXPORT_SYMBOL_GPL vmlinux 0x236a8415 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x239e56f5 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x23f2220f debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x24011e14 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x2473a28e pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24a7b123 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24bbc93c dma_buf_export_named +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24d302d6 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x24ea2f4f inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24eed83a srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x252ea475 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x25571c3c each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x256a10b2 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x25a5dd44 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x25a97010 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x25b1b467 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x25c16734 skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x25d0293b powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x26646434 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x26690aab tpm_write +EXPORT_SYMBOL_GPL vmlinux 0x26965721 slow_virt_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x2698ae9d ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x26b0d652 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26b8dae0 regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x26c3c286 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x270c3e1e pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x2735ef9d init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x2761ed6c sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x276819a7 rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27a4727a usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x27a5d89a devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x27c0c4be eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27d872ca device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x27ddb33d acpi_dev_resource_io +EXPORT_SYMBOL_GPL vmlinux 0x27e2e5d7 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x27ea090d subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x284291e6 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x286c25af pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0x2873f4e6 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x287e2bee pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x2893ce4f regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x28a903c8 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x28c0b380 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x28c3217e ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0x28c8d5e9 devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x28d5767f regmap_fields_write +EXPORT_SYMBOL_GPL vmlinux 0x28e64c64 xen_has_pv_and_legacy_disk_devices +EXPORT_SYMBOL_GPL vmlinux 0x28fd2dcf pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x28ff6a3f irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x292e5b78 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x2982be20 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x29b6cf7c kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x29bcb005 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x29c5724d spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0x2a466a38 spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0x2a4adaf1 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2a64c7f8 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a86b039 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2ab33b3c crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x2abc1a82 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2ac93842 vtime_guest_enter +EXPORT_SYMBOL_GPL vmlinux 0x2ad1ece4 zs_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2adb5b4f kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x2ade5055 pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x2b238f05 percpu_ida_for_each_free +EXPORT_SYMBOL_GPL vmlinux 0x2b333555 ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0x2b67771a xenbus_dev_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x2b7a6de8 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x2b7f5d24 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x2b85f6a4 acpi_dma_request_slave_chan_by_name +EXPORT_SYMBOL_GPL vmlinux 0x2b8c965b ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x2ba4f6d4 btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x2ba95110 sec_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x2bca8961 iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0x2bd72b76 btree_update +EXPORT_SYMBOL_GPL vmlinux 0x2bdaebaa ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0x2bfaef4e clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0x2bfee4e1 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x2c08a2d5 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0x2c1286ac ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c28a9fd device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c83bd38 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x2c903340 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x2ca42e8c security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x2cb31026 ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x2cbbe401 gpiochip_remove_pin_ranges +EXPORT_SYMBOL_GPL vmlinux 0x2cc6c321 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x2cd52e37 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x2cda57ab crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2cf46a70 thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0x2d00bd89 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2d17a0e1 cgroup_taskset_size +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d656d3f context_tracking_enabled +EXPORT_SYMBOL_GPL vmlinux 0x2d6fa5db fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x2d75cb25 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x2d7a9c3c driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2d8a3524 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x2d95e6e6 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2db958b6 dma_buf_begin_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x2dba276a __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x2dcf1e8c crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x2def8c13 bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0x2e07309e ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x2e1bde80 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x2e1da9fb probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e40ce47 tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x2e418cd8 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e4896a5 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x2e5317ec crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x2e592309 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x2e5d0d44 max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x2e8863db lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0x2ea16038 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ed550b5 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x2ed7d797 sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0x2efafde5 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x2f0b4f16 regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f1324ea usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f64415f unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2fa5637c bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x2fa65029 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x2fc32d75 dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x2fd2cf03 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2fd8cba9 freeze_wake +EXPORT_SYMBOL_GPL vmlinux 0x2fedd8b4 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x2ff524af napi_by_id +EXPORT_SYMBOL_GPL vmlinux 0x300755a3 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x304629be regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x304c085e __efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x305a17b3 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x306c78ea tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x30796305 pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x308b733a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x30a2bf21 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x30b03965 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x30ce5e8b __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x31281cdb edac_subsys +EXPORT_SYMBOL_GPL vmlinux 0x3175e4bc get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x31ad0fe1 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x31dcbe1b bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31f730fa find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x31fb1b4c fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x321bdbb1 compat_get_timeval +EXPORT_SYMBOL_GPL vmlinux 0x321f86e7 list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0x32442886 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x3256ca45 gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x325c9a65 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x328995b5 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x3296c2cb wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x329bbbde timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x32a64e52 nl_table +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32bded08 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32fc0463 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x32fd447a monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0x3303158d ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0x330d1143 apic +EXPORT_SYMBOL_GPL vmlinux 0x3310bf11 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x33655159 xen_pcpu_hotplug_sync +EXPORT_SYMBOL_GPL vmlinux 0x337f4ee0 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x3390521a irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x33a4f64f extcon_get_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33bce964 xenbus_dev_cancel +EXPORT_SYMBOL_GPL vmlinux 0x33ce1cec skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x33f7ab15 get_compat_timespec +EXPORT_SYMBOL_GPL vmlinux 0x33f9ff82 ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x3427e3d4 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x343cb6a0 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x3442d640 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x3456ed2d dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x3465fce6 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x347fcb22 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x34805ee3 crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x349c9c6f cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0x34a5809d shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x34b95ade adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x351dacaa bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x352650ee gnttab_batch_map +EXPORT_SYMBOL_GPL vmlinux 0x358a7dd3 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x35a438dc device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x35e1b99a __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x35eb30bc rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0x35f10f43 nfq_ct_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x35f165f1 devm_reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x360059cb ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x36075bb5 iommu_group_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x365cc1d0 alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0x36705262 pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0x36761522 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x368a9ed3 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x368f1fea static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36ad052a regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x36b5497e intel_iommu_enabled +EXPORT_SYMBOL_GPL vmlinux 0x36bf9c7b dma_buf_vmap +EXPORT_SYMBOL_GPL vmlinux 0x36d318ac tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x36f21055 mmput +EXPORT_SYMBOL_GPL vmlinux 0x36f63718 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0x37099b6c iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0x3730c360 system_trusted_keyring +EXPORT_SYMBOL_GPL vmlinux 0x37316d21 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x37338d02 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x37664021 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x37681b2b tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x376cb776 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x37718294 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x379a9c17 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x37aea065 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x37d4df8f blkg_stat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x37f1ffbf gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x38014b7b __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x380c83da xen_swiotlb_sync_sg_for_device +EXPORT_SYMBOL_GPL vmlinux 0x38620e38 gnttab_grant_foreign_access_trans_ref +EXPORT_SYMBOL_GPL vmlinux 0x386bf222 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x386c9a0c dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x387e6995 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x3890279b device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x38ac15a3 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x38ae20b8 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x38f38bec devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x38fb1c9a wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x391924c0 md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x391ac514 pinctrl_add_gpio_ranges +EXPORT_SYMBOL_GPL vmlinux 0x393b7d55 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x3962e5c7 crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0x396a10fd crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x3983b13c zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x39a85e8d pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x39b80674 pinctrl_pm_select_idle_state +EXPORT_SYMBOL_GPL vmlinux 0x39c34a64 irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0x39d6f106 bmp085_detect +EXPORT_SYMBOL_GPL vmlinux 0x39de4976 dma_buf_kunmap +EXPORT_SYMBOL_GPL vmlinux 0x39e41d76 alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0x3a03175e device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x3a1636fa bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x3a17a268 device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a37de51 split_page +EXPORT_SYMBOL_GPL vmlinux 0x3a38dc65 memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6568 bio_trim +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a5974f9 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3a723441 regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0x3a9123ca wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x3aa8be1a pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x3ab4d1c6 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x3abd99f2 usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0x3abdf24d gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0x3ac10930 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x3ad0e201 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x3addd981 acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x3af44c25 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x3b135d7e pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x3b19ad63 ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0x3b4b560a pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0x3b554d04 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3b58b71d regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3b9d4bf5 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x3bb385df ata_sas_port_async_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3bceb998 subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x3bfa78ce regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x3bfcedd5 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x3c02d4b0 gov_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x3c1bfbb9 pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0x3c3d0cf9 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x3c551782 ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0x3c6b2449 devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x3c748889 devm_usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x3c76b88b css_rightmost_descendant +EXPORT_SYMBOL_GPL vmlinux 0x3c8424a0 clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3ca6dbbc get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3ce81837 acpi_dev_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3cef4392 dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0x3d1ca66a regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d3e2b59 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x3d41e6c6 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x3d4243d3 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3d5ed81d tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x3d5f392d acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d81a34d iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0x3d898930 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x3dae6404 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x3dbf5f66 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3debaedd vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x3dee0cc1 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x3e1da372 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3e2c767c virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x3e2e543d cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x3e2fa31f wm8997_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3e3897fd xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x3e4fb9f0 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x3e58a212 rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x3e5b39dc dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e8a96fb usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x3e971b8d regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x3e9cc10e acpi_processor_get_performance_info +EXPORT_SYMBOL_GPL vmlinux 0x3ea5196d apei_osc_setup +EXPORT_SYMBOL_GPL vmlinux 0x3ea95dad debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x3ec056b9 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x3ed4eda8 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x3eede1d9 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x3ef493ed regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f183c82 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x3f229c4c oops_begin +EXPORT_SYMBOL_GPL vmlinux 0x3f2d4f8c hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3f55be4c usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x3f80d817 tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3f920af2 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x3fb0581d platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x3fc2eb3b pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x3fc72d3d __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x3fd0b719 virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0x3fd6397a cgroup_taskset_cur_css +EXPORT_SYMBOL_GPL vmlinux 0x3ffad772 balloon_mapping_alloc +EXPORT_SYMBOL_GPL vmlinux 0x400a024b acpi_scan_lock_release +EXPORT_SYMBOL_GPL vmlinux 0x400f0c67 bmp085_remove +EXPORT_SYMBOL_GPL vmlinux 0x4013b30c virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0x4017814e cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4045c494 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x405abbb9 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x405c97ab scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x4065d168 pm_print_active_wakeup_sources +EXPORT_SYMBOL_GPL vmlinux 0x40897db2 blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x408d3fa5 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40b24e7a arizona_dev_exit +EXPORT_SYMBOL_GPL vmlinux 0x40b6319e tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40dad4b7 spi_master_resume +EXPORT_SYMBOL_GPL vmlinux 0x40de13b1 virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x40ecaf5b ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x41079080 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x41200f8a subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x412fc7c2 md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x415b8d34 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x417e6f5b __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x417eabbd fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x41864e99 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x4190969f efivar_entry_find +EXPORT_SYMBOL_GPL vmlinux 0x419d58aa da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x41a235ca xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x4209ee1d power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x4213a51a efivar_entry_set_safe +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x421dc616 pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x42236030 devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x4226831c thermal_notify_framework +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x426ce367 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x427d5c68 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42b6e404 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x42db0333 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x42e2c26a pci_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x42e39097 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x42eace2c aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x432e0fe4 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x436b7da7 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x437210b6 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x4389dc06 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x43928edf wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x43a53735 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x43af39aa extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x43c545c6 xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0x43c83888 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x44239ba3 get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x442477f8 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x442db9c3 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4445b3ca pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x446678b8 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x447f0169 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x4483e318 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44908c8e skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x44ab70e0 pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x44d17181 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x44f5b15a sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x44f9e888 xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0x450fb522 kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x45239b86 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x45339658 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x454c15ae __smp_call_function_single +EXPORT_SYMBOL_GPL vmlinux 0x4570cece powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45792b70 da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x459f502e crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x45b1f71f call_filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x46042ff9 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x46049aa9 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x460f7531 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x46130a9c tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x4618cd89 ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x461a4bab crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x461affc5 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x463f7445 sk_unattached_filter_create +EXPORT_SYMBOL_GPL vmlinux 0x46434934 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x4644d384 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4667cda4 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x4682ab59 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x46ad45a6 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x46cb4645 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x46d5b7fe sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x470d9d0c ping_proc_register +EXPORT_SYMBOL_GPL vmlinux 0x470fa426 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x4760e80a __efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4768c24a cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x476da82f __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x477a6ec6 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x47866eab pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x478c3b40 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47be56dc tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x47df8013 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x47f89f1b ping_err +EXPORT_SYMBOL_GPL vmlinux 0x48118af3 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x48133ad1 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x4828e77b acpi_scan_lock_acquire +EXPORT_SYMBOL_GPL vmlinux 0x4864bb28 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0x486592ed tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x48682db9 perf_guest_get_msrs +EXPORT_SYMBOL_GPL vmlinux 0x487164c3 iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0x48a63291 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x48b746bb sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x48dd1b2b da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x490a8df6 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x490d5687 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x490da9b4 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x4922a33c usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x496f9c80 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x498d293a trace_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x4996ca95 rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0x49af972a regmap_field_write +EXPORT_SYMBOL_GPL vmlinux 0x49c0dd4a adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x49db9342 crypto_lookup_aead +EXPORT_SYMBOL_GPL vmlinux 0x49fe0a99 xen_swiotlb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x4a24e355 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4a3c3cf9 microcode_sanity_check +EXPORT_SYMBOL_GPL vmlinux 0x4a4b84d8 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x4a61ed42 virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0x4a67ab79 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x4a701d0f crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x4a7ba08e ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x4a833633 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x4a90160e bprintf +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4ad16c8f spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x4aef5d78 proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0x4af4d663 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x4affd08b put_compat_timespec +EXPORT_SYMBOL_GPL vmlinux 0x4b114085 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x4b13401f blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x4b78c3de extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x4b88ec66 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4b8e755e dma_buf_mmap +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bea1976 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x4bf0d6d1 wakeup_source_prepare +EXPORT_SYMBOL_GPL vmlinux 0x4c145dcb serial8250_rx_dma +EXPORT_SYMBOL_GPL vmlinux 0x4c2a472b __static_cpu_has_safe +EXPORT_SYMBOL_GPL vmlinux 0x4c2e1f24 clk_disable +EXPORT_SYMBOL_GPL vmlinux 0x4c4a8771 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x4c602bf1 __blkg_release_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c82f985 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x4c8c0ba2 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x4ca4c9df clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x4cc2ed45 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x4cd6835f pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0x4cd7695b __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x4d0d575d usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x4d1583a0 dma_buf_put +EXPORT_SYMBOL_GPL vmlinux 0x4d37bb0a crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x4d5cec42 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x4d5e6b89 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x4da52c4c tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x4db171e3 clk_register_mux_table +EXPORT_SYMBOL_GPL vmlinux 0x4db5375c usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4de3e3fc od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x4e05e6d5 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x4e0a735e wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e242f5f pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x4e2b7de6 pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x4e4d557c ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x4e57723d apei_read +EXPORT_SYMBOL_GPL vmlinux 0x4e5de514 devm_regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x4e74e625 gnttab_batch_copy +EXPORT_SYMBOL_GPL vmlinux 0x4e8f0757 regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x4ec7b8e3 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f020dee public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x4f06f754 blkg_prfill_stat +EXPORT_SYMBOL_GPL vmlinux 0x4f0974d7 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x4f165d72 dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x4f245c80 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fd5cfb9 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4fea324f vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x5004163e rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x500b6dd7 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x50195fbd dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x5026585c xen_irq_from_gsi +EXPORT_SYMBOL_GPL vmlinux 0x50347bac synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x5045433c led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x505c72c5 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0x506691f1 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory +EXPORT_SYMBOL_GPL vmlinux 0x507f34bf ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5089519f netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x508c5f5c xen_swiotlb_sync_single_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50980a6f device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x50c70653 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x50d1f870 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0x50d7dc9a shake_page +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50e7c105 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x51113344 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x51142ac2 pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x511f2d5b crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x512b1d19 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x5191bd3c efivar_work +EXPORT_SYMBOL_GPL vmlinux 0x51a1c718 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x51acf222 xen_swiotlb_map_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x51e2a1ea xen_pci_frontend +EXPORT_SYMBOL_GPL vmlinux 0x5206a776 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL vmlinux 0x522f538b tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x523f5545 cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x525b89d5 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x5272d8bc __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0x52969624 devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x52a41251 __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x52d003b8 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x52e0cefb register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x52e9129b da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0x52e9af8c inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x5305646e alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x5354693e cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x536eaea6 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x539f157b pci_xen_swiotlb_init_late +EXPORT_SYMBOL_GPL vmlinux 0x53eb806d module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x53f8d014 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x54005fbb ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x540b5a76 rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x54215db5 visitor64 +EXPORT_SYMBOL_GPL vmlinux 0x544dbb39 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x546a202c pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x54740eb7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x547d2410 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x548b5e9b sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x54902d1e spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54ab003f get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x54c209c7 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x556f854d ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x557c69bd acpi_match_device +EXPORT_SYMBOL_GPL vmlinux 0x5584b694 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x55afd255 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x55fc8d16 virtqueue_is_broken +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x5654f836 erst_get_record_id_next +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56607294 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x567310d9 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x56886b19 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x5692386f gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56ab2a9b devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x56b0d06d __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x56be903c crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x56c90f6e vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x56d697ce cpu_up +EXPORT_SYMBOL_GPL vmlinux 0x56da7dc4 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56e7d899 unix_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x56faab88 __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0x57231f45 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x57267cc3 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x57314a06 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x574cba9c dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x574cc770 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x57520d16 cper_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x5783eef8 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x579ee14f led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x579f9927 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x57b0f2e4 iommu_present +EXPORT_SYMBOL_GPL vmlinux 0x57d4e6de usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x57d4fdcc xen_unregister_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x57dafbc4 pinctrl_remove_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x57fb701e register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x58255d3d usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x5835c0a0 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x58413099 ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x585704ab aer_recover_queue +EXPORT_SYMBOL_GPL vmlinux 0x5858e881 dma_buf_fd +EXPORT_SYMBOL_GPL vmlinux 0x586e7ccd inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x589e4569 syscon_regmap_lookup_by_pdevname +EXPORT_SYMBOL_GPL vmlinux 0x58e2a027 list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0x58f3e327 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x58faff15 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x58fb2778 __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x5901349e usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x592a34ec da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x5947abbe max77693_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x595bf892 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x597def2a irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0x599482f5 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x59a6e91d clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x59b2adbf input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x59d47bcb ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x59e2743e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x59e6e91b ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x59fdcd24 device_register +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a2cd84a dev_get_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x5a2ec5a1 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x5a30ca83 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5a3f3c55 tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0x5a441ebd efi_query_variable_store +EXPORT_SYMBOL_GPL vmlinux 0x5a69dd7a devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a929221 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x5ab3cccb tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x5ac2727f smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x5acb5e96 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x5adfed7d devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5b01a37c acpi_get_gpiod_by_index +EXPORT_SYMBOL_GPL vmlinux 0x5b19a782 efivars_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5b4f330a blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x5b6e485f spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x5b71226b put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x5b7fdb15 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5bb27c46 serial8250_tx_dma +EXPORT_SYMBOL_GPL vmlinux 0x5bc291df usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x5c0303ec devm_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x5c1830af ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x5c1b815c regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x5c3252c0 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x5c364e9b irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x5c54f307 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x5c66e90c efivar_run_worker +EXPORT_SYMBOL_GPL vmlinux 0x5c94e4a3 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x5ca93699 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x5cabdced dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5cd907e5 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x5cec8808 regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0x5cf0c997 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0x5cf8a882 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x5d0ff900 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x5d12e48f input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d48a650 m2p_find_override_pfn +EXPORT_SYMBOL_GPL vmlinux 0x5d491415 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x5d62f992 regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0x5d6e7a60 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x5d729a7d rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x5d77952d hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x5da0f5dd blkg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5db99521 pwm_set_polarity +EXPORT_SYMBOL_GPL vmlinux 0x5dbcfa4f boot_cpu_physical_apicid +EXPORT_SYMBOL_GPL vmlinux 0x5dd40745 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x5e136f40 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x5e302dea sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x5e51cd74 swiotlb_nr_tbl +EXPORT_SYMBOL_GPL vmlinux 0x5e667286 debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x5e6e51be __mmu_notifier_invalidate_range_end +EXPORT_SYMBOL_GPL vmlinux 0x5eb857d9 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x5ebf4a4d sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x5ec064aa udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5ec3b2fe ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x5eddbbd9 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x5efee2fc napi_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x5f058189 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f372800 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x5f40fe5c unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x5f419491 gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x5f601203 devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x5f79a98b __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x5f8327cc regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0x5f8aafe4 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x5f8e6369 pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x5fc27be9 acpi_dev_irq_flags +EXPORT_SYMBOL_GPL vmlinux 0x5fd4d393 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x5fdf3564 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x5fdfa2c1 amd_pmu_enable_virt +EXPORT_SYMBOL_GPL vmlinux 0x5fe26bd6 da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x6002d9da hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x6009bd20 acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x600caee1 uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x601277dc rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x601ea878 ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x60458ed8 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x6049dc79 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x6060f0d4 devm_acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x60862568 thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x608d640f swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x60930d37 save_mc_for_early +EXPORT_SYMBOL_GPL vmlinux 0x6094685f wm8997_irq +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60afd388 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x60b2d415 arizona_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x60bcc05d tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x60c95350 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x60c95b35 powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x60e53680 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x60e8ceb3 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x60e96b73 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x60f4e5b4 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x613fd25d cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x614ddd8f key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0x617055ed xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6183ff15 sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x6194ffea do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0x61c2d44a rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0x61dba457 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x6212b05b cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x6223d719 alarm_start +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x623803c8 hest_disable +EXPORT_SYMBOL_GPL vmlinux 0x6241f00a efivar_entry_size +EXPORT_SYMBOL_GPL vmlinux 0x626a89f2 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x6286d9da gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x62925e16 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0x62a3e518 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x630d1f8b crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x631abd20 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x6331bb54 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x63817cc4 sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x638fe045 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x63ad9cca input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x63b4a055 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x63b5bec5 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x63f23886 irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0x6409273c blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x640fc71c ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0x642f263c acpi_subsys_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x643d817e usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x644df435 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x6484dd46 xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0x64851d93 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x64940c10 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x649aff04 dma_buf_unmap_attachment +EXPORT_SYMBOL_GPL vmlinux 0x64a22860 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x64add207 regmap_fields_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x64b7069e apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0x64c454b9 xen_swiotlb_dma_mapping_error +EXPORT_SYMBOL_GPL vmlinux 0x64d8d639 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x64fac867 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x64fcae00 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x65180529 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6527a231 dbgp_external_startup +EXPORT_SYMBOL_GPL vmlinux 0x65449b43 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x654ee362 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6559fea8 cgroup_add_cftypes +EXPORT_SYMBOL_GPL vmlinux 0x656970f5 of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x65807f62 smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x658c8186 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x658f7226 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x65b08baa xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65dbe691 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x65e1351c vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x65e8a7aa pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x65ff2579 get_matching_microcode +EXPORT_SYMBOL_GPL vmlinux 0x66069728 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662a0c3f x509_get_sig_params +EXPORT_SYMBOL_GPL vmlinux 0x663c16d6 gnttab_grant_foreign_access_subpage_ref +EXPORT_SYMBOL_GPL vmlinux 0x664a0901 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x6673450d scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x66737cff xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66bd8370 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x66c1d1ac spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66f1ebb2 efivar_entry_set +EXPORT_SYMBOL_GPL vmlinux 0x66f51880 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0x670ed4cb xen_swiotlb_unmap_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x67245128 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x672cbb60 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x672e68ee crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x6734af15 dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x6739a503 balloon_set_new_target +EXPORT_SYMBOL_GPL vmlinux 0x674e13e1 public_key_destroy +EXPORT_SYMBOL_GPL vmlinux 0x676144f8 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x6766907b acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x67837db1 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67a5500f inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x67dab95d iommu_domain_window_enable +EXPORT_SYMBOL_GPL vmlinux 0x67db20ee i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x68030eff ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x680a809d of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x681300fb extcon_find_cable_index +EXPORT_SYMBOL_GPL vmlinux 0x681337c8 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x68287c68 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x685f8ba3 blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x687934e9 gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x687ec372 bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x6884dcc3 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x688fe679 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x68a1e5a8 pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0x68b5d9d4 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x6921aa34 compat_put_timeval +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x693b88b5 pwm_can_sleep +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x696486a1 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x6970c42c skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x6979dd3b inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x698f3d75 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x69c0fc55 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x69c34853 sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x69da6196 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69f50830 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x6a1300b1 register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x6a1733eb iommu_group_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a6cafd2 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6a90532e acpi_dev_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x6a9fdea9 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x6aa789c3 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x6ac18f6d user_read +EXPORT_SYMBOL_GPL vmlinux 0x6ac9a41d regmap_update_bits_check +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6ad2d082 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x6ad93740 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6b0a141a ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b3f7985 get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x6b89049a shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x6b8d4b82 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6bc7723c dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x6bcf0cb5 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x6bf1b90d dmi_memdev_name +EXPORT_SYMBOL_GPL vmlinux 0x6c0f757b pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c1b09ab gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x6c21fb61 arizona_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c655913 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6c87bd71 inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x6c988b23 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cd21997 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x6cd4ea62 wm5110_irq +EXPORT_SYMBOL_GPL vmlinux 0x6ce217c3 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x6d1ac31f eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x6d2785b5 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d83e6d3 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x6db5d827 irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x6df8f4cd pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x6e04a077 usb_bind_phy +EXPORT_SYMBOL_GPL vmlinux 0x6e0f96c3 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x6e49ad38 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e7943ec iommu_group_id +EXPORT_SYMBOL_GPL vmlinux 0x6e819580 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x6e85b00b local_touch_nmi +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6e8bf789 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x6e8fb649 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x6ea98361 ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x6eb4e907 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x6eea6a09 acpi_dev_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x6ef85e84 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x6f0ae820 ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x6f10f668 __clk_register +EXPORT_SYMBOL_GPL vmlinux 0x6f14592f serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f49fc9e fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x6f7fc5c9 palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0x6f88ba2d subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x6fa4d61b sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x6fa9e2e5 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x6fbf864f dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6fc050c0 usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x701ecdef iommu_domain_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x702695b2 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x703278bb i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x70409aeb tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x70501891 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x706691bf xen_swiotlb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x706f14a9 sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70a8c62d usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x70aab156 tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0x70c386c4 devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x70c5185f dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70f03052 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x712d5375 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x714713aa percpu_ida_free +EXPORT_SYMBOL_GPL vmlinux 0x715bed2f net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71663e71 list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0x71700f70 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x71781140 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x718a4388 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x71b805a6 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x71be8df1 skb_gso_transport_seglen +EXPORT_SYMBOL_GPL vmlinux 0x71c5db47 netlink_alloc_skb +EXPORT_SYMBOL_GPL vmlinux 0x71d9116f dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x71e0562c md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x71f9e9b6 pinctrl_force_sleep +EXPORT_SYMBOL_GPL vmlinux 0x721c603a regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x722c1bf8 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x722fcfeb crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7289f4c0 tcp_peer_is_proven +EXPORT_SYMBOL_GPL vmlinux 0x7291fb72 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x72e8b42d bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x72f11037 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0x72fd0b2a wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x73013896 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x732b4662 wm5110_patch +EXPORT_SYMBOL_GPL vmlinux 0x734ee3f1 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x73554a70 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x7388112b ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0x738ba9f7 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x7393e411 unregister_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x739fbf73 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73b1bf2a __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x73bc55d6 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x73c2554f __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x73c63a1c pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x73c832f2 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73f0b0bd pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x7422c95e gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x7424d72a get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x74584459 devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x74628570 context_tracking +EXPORT_SYMBOL_GPL vmlinux 0x7464ea38 dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x746d2f3d PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x748d801a pcap_adc_sync +EXPORT_SYMBOL_GPL vmlinux 0x748f9852 rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74968aa0 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x749adffd __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c08941 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x74c2a82b blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0x74c72ea4 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x74f86833 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x75133f6e visitor128 +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x752d31e2 usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x7534dedb inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x753e6eae pinctrl_lookup_state +EXPORT_SYMBOL_GPL vmlinux 0x7548d565 nf_queue_entry_release_refs +EXPORT_SYMBOL_GPL vmlinux 0x7550a11c tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7564c9b2 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x7573af8b m2p_add_override +EXPORT_SYMBOL_GPL vmlinux 0x757b49d2 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0x7580563d key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x758a3812 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x758a782e blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x75a4a1cf show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x75d42ca0 acpi_unbind_one +EXPORT_SYMBOL_GPL vmlinux 0x75e0c590 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x75ebb987 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7606e7f4 gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x763412c5 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x764ad1db iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0x764fc7ec ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x765a3f13 devm_regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x765b73c5 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x767858d6 gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0x76794ecb invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7692831f transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x76d07d6e gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x76f3b018 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7726f426 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7729cbdd task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x772cc1d0 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x772fbcaf trace_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x773dfaa2 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x775a6ef5 kvm_read_and_reset_pf_reason +EXPORT_SYMBOL_GPL vmlinux 0x77a7659a spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x77aad2c6 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x77bafd25 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x77d5dd73 btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0x77f7bab6 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x781776ef shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x782adb74 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x785c9ce6 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x78706039 pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0x787c882b lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x788601d3 extcon_register_interest +EXPORT_SYMBOL_GPL vmlinux 0x7895f2c3 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x78a7d29e driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x78b4023e crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x78bd3bc0 dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x78c90154 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x78d7e800 dma_buf_end_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x78ea227b acpi_bus_no_hotplug +EXPORT_SYMBOL_GPL vmlinux 0x78f442b9 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x791d0cd3 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7930b50a usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x7931c317 xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x7947a1e0 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x796dbc54 pci_reset_bridge_secondary_bus +EXPORT_SYMBOL_GPL vmlinux 0x7975090e blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x7991fd8d crash_vmclear_loaded_vmcss +EXPORT_SYMBOL_GPL vmlinux 0x799cc695 usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x79b10b1a device_reset +EXPORT_SYMBOL_GPL vmlinux 0x79b7cea6 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0x79c1f25b debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0x79e69460 intel_iommu_gfx_mapped +EXPORT_SYMBOL_GPL vmlinux 0x7a2014b2 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x7a2e4b44 ezx_pcap_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7a319404 clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x7a382463 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x7a56b0ef debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7a58f6f3 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x7a7061de usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x7a76926e regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0x7a8a96a0 ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7a9a8248 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x7aa04026 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x7ab3bd2e debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x7ac8e5b0 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7af0ada0 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x7af4ab56 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b25a440 dma_buf_attach +EXPORT_SYMBOL_GPL vmlinux 0x7b292d19 static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0x7b482145 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x7b90d1a9 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7b90d30a __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x7b92ca85 pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x7b9d5ef7 __remove_pages +EXPORT_SYMBOL_GPL vmlinux 0x7bd052a1 pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x7bd1df71 thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x7bf7e171 clockevents_unbind +EXPORT_SYMBOL_GPL vmlinux 0x7c1b7756 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x7c227088 clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x7c2771db tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7c309fa6 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7c346357 pkey_algo +EXPORT_SYMBOL_GPL vmlinux 0x7c608d57 irq_create_strict_mappings +EXPORT_SYMBOL_GPL vmlinux 0x7c71eeff ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x7c7cbfed mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x7c9f3e69 __tracepoint_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x7cc1b7fd max77693_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7cc7de1c x509_check_signature +EXPORT_SYMBOL_GPL vmlinux 0x7cc8d8c4 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x7ccbb8f8 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ce5b92a gpiod_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cf150fb led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7cfe29c3 pwm_enable +EXPORT_SYMBOL_GPL vmlinux 0x7d1f75f0 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0x7d2c6c1c __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x7d351e25 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x7d3574f8 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x7d36e534 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7d397cc7 gpiod_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d4048b8 __add_pages +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d621acf fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x7d9fd1e8 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x7da1894c inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dadfc11 extcon_set_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x7dce1d1b sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x7dce6869 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x7df0a539 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x7e049e93 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7e0a4ac9 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x7e249ab7 xen_swiotlb_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0x7e2f25fb usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x7e39a120 pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0x7e5249fc remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e6de6f1 ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7e7346cf sdhci_pci_o2_probe_slot +EXPORT_SYMBOL_GPL vmlinux 0x7e79cfab user_describe +EXPORT_SYMBOL_GPL vmlinux 0x7e80aa36 cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0x7e9547d6 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x7ea19d5b __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x7ea1a2bc probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x7eab9fbe ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x7eb8e181 ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0x7ecdc4ed pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x7ef1bd0e regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x7f32ea4c gpio_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x7f78c790 devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x7f8b0936 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x7f9127b4 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x7fa02cf0 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x800532a1 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x80156244 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x80191fce pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x8032687b usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x8053d25c usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x806e502f btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80af9bf3 vtime_common_account_irq_enter +EXPORT_SYMBOL_GPL vmlinux 0x80c35713 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x80d3927f __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80d9d303 fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0x80dd2193 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x80eca9d2 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x8104517b irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x810a443c fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x810f2e4e clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x813d726b crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x8140842a gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x816561b3 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x8183e57c debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x8184bd0d regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x819a72fa find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x81f3fee1 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x81fe5579 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x81fe9951 acpi_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x82016ec2 __mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x825daa01 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82e2b34b clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x82ecf5f2 list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0x830210c2 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x8318eb66 clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x832724e0 inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0x834616bb sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x838d8b74 dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x83a2aa24 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x83bbf1e5 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0x841b4005 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x841c32d5 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x841ddec7 iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x8420bccd cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x84480a0c xen_remap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x84489ee4 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x84517c7e security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x8459247e blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x84648d8d da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x8487125a extcon_get_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x8487a2b6 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x84ae6dbf pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0x84cc6975 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x84e92b07 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x84ef1542 dma_buf_vunmap +EXPORT_SYMBOL_GPL vmlinux 0x85001a6e regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x850b2770 sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0x85127fa2 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x85216155 ezx_pcap_read +EXPORT_SYMBOL_GPL vmlinux 0x85395bbd ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0x859aea9a xen_set_domain_pte +EXPORT_SYMBOL_GPL vmlinux 0x85b14d33 clk_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85c87a8f sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0x85cb2c45 xen_has_pv_devices +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x85e9c0e2 pinctrl_utils_reserve_map +EXPORT_SYMBOL_GPL vmlinux 0x85fa44ee __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x860642ee usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x861ada05 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x86375aad acpi_dev_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x86474422 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x864eb90b mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x866b9687 wm8997_aod +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86be514e cgroup_taskset_next +EXPORT_SYMBOL_GPL vmlinux 0x86d7d610 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x86dca734 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x86e93ec8 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x86eeabeb pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86f8c910 pcap_set_ts_bits +EXPORT_SYMBOL_GPL vmlinux 0x8702e548 process_srcu +EXPORT_SYMBOL_GPL vmlinux 0x870e16b7 xen_test_irq_shared +EXPORT_SYMBOL_GPL vmlinux 0x872f1b23 tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x874bdcf2 rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x8774eb6c pinctrl_utils_add_map_mux +EXPORT_SYMBOL_GPL vmlinux 0x8794cd19 btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0x87a3f840 skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x87af324c regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x87b5bb2a fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0x87beb396 task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0x87cc30d4 usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x87f3e139 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0x87fbd8d1 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x88076a25 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8813e1d9 irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x882ba6ee dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x883c2740 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x8849def4 pinctrl_find_and_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x88593181 rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x885c8014 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b5647c trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x88ba3f39 rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x88cd9b58 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x88cea80a uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x88d3132d pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x88f86d26 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x890518b6 usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89485687 iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x89502f0c gnttab_subpage_grants_available +EXPORT_SYMBOL_GPL vmlinux 0x89509ba1 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x89a858e5 usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x89b68927 irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x89b701f7 ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x8a00eaad ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x8a056da5 virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x8a083c47 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x8a2b14ba wm5110_aod +EXPORT_SYMBOL_GPL vmlinux 0x8a2df25d ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x8a3630a9 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x8a4b8066 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x8a4f1cfc efivar_entry_add +EXPORT_SYMBOL_GPL vmlinux 0x8a520bf0 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x8a7093f6 pinctrl_force_default +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a7cb9c4 platform_thermal_package_rate_control +EXPORT_SYMBOL_GPL vmlinux 0x8aa66d39 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ac8177f platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x8ad0bb7a ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x8ad24330 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x8ad531b7 cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0x8aefc802 iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x8af893da fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x8afc8ed2 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x8b031794 iommu_domain_set_attr +EXPORT_SYMBOL_GPL vmlinux 0x8b04668e bind_interdomain_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x8b0b561d usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0x8b0e1b3f skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x8b0f2ca4 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x8b19801e __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x8b394a4e __netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x8b3b1605 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x8b5b6332 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x8b66f9e0 xen_platform_pci_unplug +EXPORT_SYMBOL_GPL vmlinux 0x8b70c18a sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x8b9200fd lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x8bbaf27d blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x8bc4f159 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x8bcff85a ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x8be3f662 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c7736ad xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0x8cdace59 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x8cea765f memalloc_socks +EXPORT_SYMBOL_GPL vmlinux 0x8cf89306 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x8d22bb58 iommu_group_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8d232b4d fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x8d2642b8 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x8d27c84f tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x8d36c088 look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0x8d6527e2 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x8d686204 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x8d7bbae9 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x8e0e64af fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x8e3a8468 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0x8e74eb09 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x8e8b10e2 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x8e8cb40d xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0x8e934ecb ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x8e9c7933 gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x8edbe510 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x8edfb574 injectm +EXPORT_SYMBOL_GPL vmlinux 0x8f122010 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x8f13c612 get_kernel_page +EXPORT_SYMBOL_GPL vmlinux 0x8f16634c tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x8f19f022 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0x8f1b0019 cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0x8f621c54 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f70eb58 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x8f8a365c ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x8f902a2c gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x8fb70cb4 usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x8fc2529a xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x8fcdde64 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x8fdb41d7 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x9003aa50 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x9011a7bc find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x901786ed inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x90228869 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x9027a5a2 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x904b8633 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9060bac1 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90705b7f syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x908235bf fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x9082f87d blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90c66b90 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x90ce4538 dma_buf_kmap +EXPORT_SYMBOL_GPL vmlinux 0x90dc29df aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x90de0452 platform_thermal_package_notify +EXPORT_SYMBOL_GPL vmlinux 0x90dea35d ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x90df4cc3 percpu_ida_alloc +EXPORT_SYMBOL_GPL vmlinux 0x90e3b3ae rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x910a697a sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0x912387a4 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x91286982 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9133a1b2 pinctrl_select_state +EXPORT_SYMBOL_GPL vmlinux 0x913d0af4 acpi_preset_companion +EXPORT_SYMBOL_GPL vmlinux 0x915ccfdb dma_buf_kmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91ac78b2 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x91af4e55 __mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x91c6e5b0 pcap_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x91dc3c3a kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x91eb6347 tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0x920cc389 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x920e19c2 fuse_get_req_for_background +EXPORT_SYMBOL_GPL vmlinux 0x92181060 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x922010bd fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x923cfb30 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x9274631d iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0x927f5fb7 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x9285e606 __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x9285fa6a mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x9291ac38 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x92a42c7d efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0x92b150ab tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92d9a4e1 irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x92db8f68 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x92e6bb5f pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x9306d496 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x9312d80e evtchn_put +EXPORT_SYMBOL_GPL vmlinux 0x9324e78e acpi_dev_resource_memory +EXPORT_SYMBOL_GPL vmlinux 0x932ac049 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x932b5e40 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x9331b8fa blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9336303d spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x93412349 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x9360e5a0 xen_swiotlb_set_dma_mask +EXPORT_SYMBOL_GPL vmlinux 0x93617ebf exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x9375a06d pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0x9398bb9d xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x939c7fc5 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x93abb1c6 btree_init +EXPORT_SYMBOL_GPL vmlinux 0x93e257c9 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x93f13ffe devm_spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x94299c02 gpio_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x943e8cbd __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x94414c9e sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x9454c675 acpi_kobj +EXPORT_SYMBOL_GPL vmlinux 0x946867fc pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x949f7342 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x94a66b2f bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94ab0cd7 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94e98805 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x95191b7c elv_register +EXPORT_SYMBOL_GPL vmlinux 0x951fdbe5 arizona_clk32k_enable +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x9558037c srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x95705845 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x959896dd rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x95c3a72e inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x95cc57cc pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x95e9c96b xen_register_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x95ee2689 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x960d87dd usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x961ee1ff iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x9639c5a0 hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x964add15 xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x964d5c39 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96a22790 vmcore_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x96d01e99 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x96e71ae8 regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x971243c7 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x9730c462 gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x974ccfee devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x97529f70 usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x975583fd da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x975e318c regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x9767018f sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x9787f51f iommu_attach_group +EXPORT_SYMBOL_GPL vmlinux 0x978a61d7 cm_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x97c539a4 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x97d58521 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x97dac777 ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x97e41f34 pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0x98005dc0 acpi_register_gsi +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x98403f48 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x984b83af pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x985271d2 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x9856cfc1 ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x9874c1d8 __percpu_ida_init +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x987fc1c9 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x989d9b90 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x98a07350 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x98fa1e20 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x99352dda pwm_config +EXPORT_SYMBOL_GPL vmlinux 0x995ae983 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9973add9 __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x99bf21ea blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x99ca35d2 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0x99dff43d rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x99e28f10 __tracepoint_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x99ec1133 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x99f31b59 devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a39813a dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x9a40de22 sdhci_pci_o2_probe +EXPORT_SYMBOL_GPL vmlinux 0x9a6728b0 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x9a67fd73 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9a89dbf7 lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x9a8de587 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x9a98d6c1 thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0x9abe9435 tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9aca444b get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9b0db716 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x9b1c308c uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0x9b3cc6c0 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x9b6a7412 idle_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9b8d9503 hv_register_vmbus_handler +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba2bb2b gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x9ba65ace pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x9bc483b4 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x9bca6f7f get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0x9bd72b78 apei_write +EXPORT_SYMBOL_GPL vmlinux 0x9be13cac xen_swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9c2de449 memory_add_physaddr_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x9c2e4b66 acpi_unregister_gsi +EXPORT_SYMBOL_GPL vmlinux 0x9c400ad8 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x9c469f3c blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x9c489f89 acpi_dev_pm_detach +EXPORT_SYMBOL_GPL vmlinux 0x9c930981 css_next_descendant_post +EXPORT_SYMBOL_GPL vmlinux 0x9c9a65d8 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x9ca64187 devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x9cc4f70a register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d138533 percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d3fbe10 regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x9d673052 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x9d68e1f4 cpufreq_governor_dbs +EXPORT_SYMBOL_GPL vmlinux 0x9d9e155d pv_info +EXPORT_SYMBOL_GPL vmlinux 0x9dab3dc5 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x9dc1ed2b ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x9dc3c427 uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9df0823b put_device +EXPORT_SYMBOL_GPL vmlinux 0x9df0b487 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x9e20dd1e ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x9e2f1f78 kobj_completion_init +EXPORT_SYMBOL_GPL vmlinux 0x9e3c97c6 pci_intx_mask_supported +EXPORT_SYMBOL_GPL vmlinux 0x9e4b61e6 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x9e4dfa44 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x9eb155d6 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x9ed11334 tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x9ed3143c leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ee40d28 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x9ef14889 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x9f0664bf dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x9f3e70d8 perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0x9f56639a efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x9f63d58a usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x9f6e8806 extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x9f7edd68 pinctrl_pm_select_sleep_state +EXPORT_SYMBOL_GPL vmlinux 0x9f80d0de usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x9f8c5cd7 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x9ff3b790 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x9fffca12 regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xa00e4307 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xa038e761 percpu_ida_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa044bf52 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa0557f36 extcon_unregister_interest +EXPORT_SYMBOL_GPL vmlinux 0xa058ee3b uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xa08449a5 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0c777f5 debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0xa0ccf5ab xen_unmap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0xa0d5b41f devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa0e0a68d print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0xa0f06e5f tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xa10488d6 blk_queue_bypass_start +EXPORT_SYMBOL_GPL vmlinux 0xa10cc275 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xa10e5b3d inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xa11216be xen_store_domain_type +EXPORT_SYMBOL_GPL vmlinux 0xa11c7abd pinctrl_dev_get_devname +EXPORT_SYMBOL_GPL vmlinux 0xa121014f vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xa12d929d desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0xa1563135 tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0xa156a1f2 erst_get_record_id_end +EXPORT_SYMBOL_GPL vmlinux 0xa1bc02ed __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xa1ce0778 __put_net +EXPORT_SYMBOL_GPL vmlinux 0xa1d26de9 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xa1e04e76 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0xa1f79553 xen_create_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xa2017d66 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xa21b93a3 da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xa22677a8 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xa2282a88 pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xa22adf2d debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xa23437fe stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xa256b54d scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa270920d pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xa29ebd9c rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xa2b9c993 clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0xa2dfc274 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xa2ea6004 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xa2f83f2d tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0xa3438880 dma_buf_kunmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xa3477c32 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0xa34df22c regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa389a49a profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0xa396522b perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3b09f1f serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0xa3b9f41f sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xa3cf384f sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa3eb90e3 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xa40be8ca sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0xa414ac76 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xa4181a2f device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0xa41ca7cb devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa452f2a4 xen_pirq_from_irq +EXPORT_SYMBOL_GPL vmlinux 0xa466de38 acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa485e7e7 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xa495ee48 da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0xa4981bdb regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0xa49acd8a devm_regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa4a99284 xen_swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0xa4d15a41 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xa5419fbf security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xa56ca855 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xa58b4db4 da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0xa59be390 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa59e01ec sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0xa59fa308 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xa5cc50df ata_sas_port_async_resume +EXPORT_SYMBOL_GPL vmlinux 0xa5d44c2e i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xa5def9c0 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa60ce443 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0xa617dd7b __tracepoint_map +EXPORT_SYMBOL_GPL vmlinux 0xa61de15c kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xa625110d kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0xa62892c6 efivar_sysfs_list +EXPORT_SYMBOL_GPL vmlinux 0xa62dc6fb generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xa64a404a __class_create +EXPORT_SYMBOL_GPL vmlinux 0xa66438e8 erst_read +EXPORT_SYMBOL_GPL vmlinux 0xa6a0a273 max77693_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa6b21ef2 dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0xa6e10638 led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa71441c5 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xa723148d key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0xa724257f init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xa75312bc call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0xa75811d0 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xa763dd8c md_stop +EXPORT_SYMBOL_GPL vmlinux 0xa77b4b37 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xa77b5cc6 __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xa7909aa0 efivars_register +EXPORT_SYMBOL_GPL vmlinux 0xa79f3b0c xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xa7cb3e08 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xa7d590af iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa801b359 efivar_entry_iter_begin +EXPORT_SYMBOL_GPL vmlinux 0xa809c82e hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xa81f969e sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa87912d1 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa8baab42 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xa8ca2a79 extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa925e478 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0xa92df4ad watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0xa93c073f wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0xa9650a03 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xa980af16 RSA_public_key_algorithm +EXPORT_SYMBOL_GPL vmlinux 0xa9a82042 gnttab_trans_grants_available +EXPORT_SYMBOL_GPL vmlinux 0xa9bd9d4e pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0xa9e18049 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9eb89ab crypto_lookup_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xa9fc3f54 gnttab_grant_foreign_access_trans +EXPORT_SYMBOL_GPL vmlinux 0xaa0565ce __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xaa26c88a klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xaa5080dc inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xaa5e5f12 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0xaa947fd2 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0xaa9f0775 rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaad71101 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab0d5850 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0xab1b0b6c scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xab6a3a82 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xab6b83d1 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xaba04e1f xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0xabd625e9 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xabdabd24 smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0xac2c4279 unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xac9ce195 kvm_async_pf_task_wait +EXPORT_SYMBOL_GPL vmlinux 0xacaebe00 kobj_completion_del_and_wait +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacbed70e class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xacd5d279 posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xace8b426 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xacee5f3e edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0xad039c54 mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xad1be9bc xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0xad221a0f list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0xad376749 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0xad632592 fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0xad755786 thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xad8d8ab0 xen_physdev_op_compat +EXPORT_SYMBOL_GPL vmlinux 0xada407f4 apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadda6915 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0xadf69ded usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae1401e9 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0xae2dd3cd tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xae3a51d1 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xae54d53f shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae6eaf93 hwpoison_filter_dev_minor +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae7c5411 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0xae957976 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xaea12f8b da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xaea75aae irq_create_direct_mapping +EXPORT_SYMBOL_GPL vmlinux 0xaeb67271 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xaec62d11 xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0xaee13414 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0xaeec98b3 regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xaf330a16 gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0xaf401aff irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0xaf464be3 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0xaf4a599c rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xaf4facc2 devres_find +EXPORT_SYMBOL_GPL vmlinux 0xaf6cc387 register_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xafbfea4f tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0xafc909ad __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xafdc2ed2 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xafdeea62 thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0xb01c80ab ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb023a593 pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0xb02ac411 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb048b14f sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xb049b460 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xb04d2937 rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0xb05fd721 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0c96774 regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xb0ca9741 regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xb0d1656c gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0xb0f041fc ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb12a1a84 pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb16b0bd6 sec_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xb172ffac efivars_sysfs_init +EXPORT_SYMBOL_GPL vmlinux 0xb17b8f16 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xb17dcdbd crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb191d405 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0xb1a7e3f6 clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1b30ad2 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0xb1bda942 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xb1bed25d dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0xb1bedeb7 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb1c0c1c2 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xb1ccd303 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xb1cd3706 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb1e2b557 rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xb1eb768a i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb24c7239 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xb26461dc pinctrl_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0xb26a13a5 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xb2ae3f79 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb322c7f3 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb32a82f2 pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0xb34594d7 rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0xb347bb2c work_busy +EXPORT_SYMBOL_GPL vmlinux 0xb368b71b device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xb383c4e3 clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0xb3b81a59 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xb3d65bac pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0xb3fc8cf7 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xb40275be wm5102_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb42e9897 usb_anchor_suspend_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xb42ee8d2 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb43a234e crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xb43da1da usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xb4501ac5 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb4578d6f hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb4759adc stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xb4b3fc65 tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4cbb404 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xb4dcb513 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4e9a1d0 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb5412a8f ref_module +EXPORT_SYMBOL_GPL vmlinux 0xb57a7c86 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xb57fddbc regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0xb583589e dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb58ecbf5 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xb5a0e11e lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0xb5c8a2fa ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xb5cb8145 hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xb5d324b1 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xb5d8ac2b set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xb5dcab0d regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb61611f0 nfq_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb626d7a0 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0xb6335aef devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xb639bae1 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xb641cc91 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xb66421b2 acpi_str_to_uuid +EXPORT_SYMBOL_GPL vmlinux 0xb6763175 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0xb67b2219 cm_suspend_again +EXPORT_SYMBOL_GPL vmlinux 0xb67bd285 regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6c635af wm5110_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb6c9447d dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xb6d03afc screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xb6e015b7 netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0xb6f4751f dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xb6f5f69b pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xb6fdb498 acpi_bind_one +EXPORT_SYMBOL_GPL vmlinux 0xb702f073 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xb709e339 efivar_validate +EXPORT_SYMBOL_GPL vmlinux 0xb716c0ec ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb71eba35 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb73237a2 sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0xb74423ca blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xb74453c9 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xb7816abc pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xb783a23e nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xb7908701 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xb7969242 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xb7998986 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb7ae46f6 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7ebc0d2 btree_merge +EXPORT_SYMBOL_GPL vmlinux 0xb7f653eb pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb8107916 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0xb82553ac rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xb862f044 tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0xb881088b ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xb88d81f0 usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xb8b2b1f7 mce_register_decode_chain +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb9288aa8 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xb9342a14 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xb93bd0d1 list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0xb98b90d9 tpm_read +EXPORT_SYMBOL_GPL vmlinux 0xb99b4b47 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9aac158 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9cfe779 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9d7da8c pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xba4e3af4 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0xba63c56e get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xba87223f extcon_update_state +EXPORT_SYMBOL_GPL vmlinux 0xba8a1dde blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0xba8bec9b mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xba92f9ff regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0xbac89516 rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0xbade3852 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xbae92ba3 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0xbafc3143 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xbaffed76 register_mce_write_callback +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb128381 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xbb172843 xen_xenbus_fops +EXPORT_SYMBOL_GPL vmlinux 0xbb2564e4 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0xbb599742 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xbb8b5e72 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0xbba9b648 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xbbb00a95 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xbbb38239 btree_last +EXPORT_SYMBOL_GPL vmlinux 0xbbb78983 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbbf64d6 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xbbc066d0 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xbbcab80d cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xbbd4f657 xen_pcpu_id +EXPORT_SYMBOL_GPL vmlinux 0xbbe7ae5b crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xbc18bfac mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xbc47fd49 __tracepoint_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0xbc678239 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xbc789846 devm_pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0xbc900fd6 acpiphp_unregister_attention +EXPORT_SYMBOL_GPL vmlinux 0xbcac6160 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbcb22bf2 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbcdd5b99 iommu_group_set_name +EXPORT_SYMBOL_GPL vmlinux 0xbd1b2aae register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xbd22e2a1 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xbd493596 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd546964 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbd5ad7ac acpi_dev_pm_attach +EXPORT_SYMBOL_GPL vmlinux 0xbd5cb8b9 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbd61af63 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xbd6f640b crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xbd7d2afd crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xbd9bbeeb pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0xbda8cb61 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0xbdaf5686 get_compat_timeval +EXPORT_SYMBOL_GPL vmlinux 0xbdb14a59 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xbdb7f09d cgroup_taskset_first +EXPORT_SYMBOL_GPL vmlinux 0xbdca4add pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse +EXPORT_SYMBOL_GPL vmlinux 0xbddb0f95 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xbddcaf2d pci_restore_ats_state +EXPORT_SYMBOL_GPL vmlinux 0xbded9864 ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe37de6b aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xbe5d0996 idle_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe69ec5a i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xbe6e1f08 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xbe7e7783 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xbe7f0616 dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0xbe92ae46 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0xbea5ff1e static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0xbed20d9a __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0xbeee5630 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf2efb21 md_run +EXPORT_SYMBOL_GPL vmlinux 0xbf606c84 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xbf619737 use_mm +EXPORT_SYMBOL_GPL vmlinux 0xbf6929ef user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xbf75cef3 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xbf82e6af synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xbfc37e60 pin_is_valid +EXPORT_SYMBOL_GPL vmlinux 0xbfc42e32 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xbfc5f780 tcp_fetch_timewait_stamp +EXPORT_SYMBOL_GPL vmlinux 0xc00ec95b rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xc0231e40 __online_page_free +EXPORT_SYMBOL_GPL vmlinux 0xc02a4c66 mmc_send_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0xc03ac8dd blk_queue_bypass_end +EXPORT_SYMBOL_GPL vmlinux 0xc078aa27 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc0900fcf acpi_os_get_iomem +EXPORT_SYMBOL_GPL vmlinux 0xc0a451a8 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0xc0ae0b08 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xc0b0e6ec btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0d01bc0 percpu_ref_cancel_init +EXPORT_SYMBOL_GPL vmlinux 0xc0d26387 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc0d73c7e inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xc0de66e3 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xc0e176e6 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0xc113e4bf pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc115ace5 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xc11b45c6 gpiod_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc1478784 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xc14c2824 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0xc164642e xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc17d852d hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xc1a5dd14 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xc1af222d ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xc1dc0d5d acpi_find_child +EXPORT_SYMBOL_GPL vmlinux 0xc1f81642 devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0xc21e78e5 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc24bb1ee wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc2676e7c usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0xc27eeae1 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2873445 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xc29b1ff8 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xc2d814ab spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0xc2f15c13 pwm_free +EXPORT_SYMBOL_GPL vmlinux 0xc2fa7338 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xc338b165 usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc37763fc dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xc38c0e90 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xc38c6f72 pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0xc3b398a1 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xc3c339b7 __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc3ea7fe3 cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0xc407a1d4 gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0xc4131d9d rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc4432f3f debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0xc447dd93 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xc4487e6c blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4975851 percpu_ida_free_tags +EXPORT_SYMBOL_GPL vmlinux 0xc49df273 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xc4a5c60d tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0xc4f79110 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc5481e0f device_add +EXPORT_SYMBOL_GPL vmlinux 0xc54aa2ff ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0xc55658cc root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc56a4606 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc5c13dcc blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc5edc559 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc617d798 print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc63a1109 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xc63d65d0 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc661c300 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xc667061f pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xc66aa30b tpm_release +EXPORT_SYMBOL_GPL vmlinux 0xc66b77b1 iommu_group_set_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xc68585a5 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xc690866c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6c42187 tpm_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0xc6ca1d36 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xc6d7ad42 wakeup_source_drop +EXPORT_SYMBOL_GPL vmlinux 0xc6d9acc5 dev_hard_start_xmit +EXPORT_SYMBOL_GPL vmlinux 0xc6e25e99 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xc7002ac4 evtchn_make_refcounted +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc7a02561 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7c397cf driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xc7c6391c mpi_set_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc7e39bca ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc7f6c06c __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xc8167ae0 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xc83a746a tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0xc8480287 efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0xc852f085 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xc85ad4a5 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc88a211d ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0xc899c0f2 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8b84365 relay_open +EXPORT_SYMBOL_GPL vmlinux 0xc8bfcd9d noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xc8dec81f thermal_generate_netlink_event +EXPORT_SYMBOL_GPL vmlinux 0xc8e931d6 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xc908a873 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9189cdf uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0xc94a7cb2 tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc96326e6 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0xc9641b48 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0xc966aa9c transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xc978d3ba nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0xc97d1140 cpufreq_cooling_get_level +EXPORT_SYMBOL_GPL vmlinux 0xc98643a4 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xc99cd730 pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xc9ae7ec5 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xc9b5f779 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xc9bcaa26 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0xc9c2c14e xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xc9c3f176 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xc9d5a620 regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0xc9d957b2 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9edd195 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xca225531 ping_seq_fops +EXPORT_SYMBOL_GPL vmlinux 0xca4ae8ce crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0xca5ff4e5 put_pid +EXPORT_SYMBOL_GPL vmlinux 0xca67266a watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca99789d class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xcaaa46c0 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcacea6f1 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0xcad23ba5 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0xcadfc8ce usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xcaf3545d __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xcb014640 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xcb09de12 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xcb139a94 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xcb15eee9 sdhci_pci_get_data +EXPORT_SYMBOL_GPL vmlinux 0xcb469d2b ddebug_add_module +EXPORT_SYMBOL_GPL vmlinux 0xcb8ebb6d tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xcb96bc85 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xcb9b162e clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbfc757d usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xcc047a30 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xcc04e04f raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xcc16be70 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc298f0b inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xcc2eda83 get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0xcc46dc8d wm8997_patch +EXPORT_SYMBOL_GPL vmlinux 0xcc64e42d arizona_dev_init +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc85fcb6 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0xcc9435ca pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0xcca5971e verify_signature +EXPORT_SYMBOL_GPL vmlinux 0xccb7f83b sec_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccea4e34 perf_get_x86_pmu_capability +EXPORT_SYMBOL_GPL vmlinux 0xccf58b0c ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0xcd31965e regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0xcd331e18 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xcd7bb4bd devres_get +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdec6183 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xcdf928d1 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xce0b9b59 max77693_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xce118c0a crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xce18cadf tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xce445045 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xce46e140 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xce54ecde usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0xce6e58d9 regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0xce75b10f rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0xce80db9c device_del +EXPORT_SYMBOL_GPL vmlinux 0xce97d129 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0xce9b9407 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xcea0f067 gpiochip_add_pingroup_range +EXPORT_SYMBOL_GPL vmlinux 0xceb1f126 mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0xcec692a1 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xcef1dd0e perf_check_microcode +EXPORT_SYMBOL_GPL vmlinux 0xcef672cb ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xcf2f14c4 irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0xcf32c649 sdhci_pci_o2_fujin2_pci_init +EXPORT_SYMBOL_GPL vmlinux 0xcf418b81 device_create +EXPORT_SYMBOL_GPL vmlinux 0xcf54ea93 async_unregister_domain +EXPORT_SYMBOL_GPL vmlinux 0xcf5fd60a acpi_subsys_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcf873569 serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0xcfa39eca __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcfbe4ba1 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0xcfc62f27 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfde5862 __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd0073c09 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xd00c6947 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd05c6cb4 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd0ac847a srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xd0bfe0fd ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c72e51 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xd0dd7f21 serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0xd0fe6c54 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xd105ad9a ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd10a991a usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xd14bc4d9 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd1524349 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xd15a9268 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xd163e83d regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1895996 cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0xd1958cc9 pinctrl_utils_add_config +EXPORT_SYMBOL_GPL vmlinux 0xd1a2702c __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xd1a57edb page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1b69545 sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xd1bb9b40 rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd214daad device_store_int +EXPORT_SYMBOL_GPL vmlinux 0xd217b35c __mmu_notifier_invalidate_range_start +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd218966f set_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0xd22844f5 rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0xd258217d clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0xd25e2b7d serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2a7b564 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd2afe2b2 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd2c3577a regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xd2c5425b __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33c05c2 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xd33e02b8 pinctrl_pm_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0xd34d13e2 devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xd38b3e1d wm8400_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xd3a9bdbf pinctrl_dev_get_name +EXPORT_SYMBOL_GPL vmlinux 0xd3b86b07 reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xd3e73037 udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0xd3f569e0 of_reset_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd426dbc4 erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd45b0150 regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd45eeea1 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0xd45f3a33 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xd4a94b77 x86_hyper_kvm +EXPORT_SYMBOL_GPL vmlinux 0xd4b3803c scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4c411da fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0xd4cad45e clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xd4d254a8 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xd4d7370c hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0xd4f53b8d blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xd502fd75 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xd51cf374 usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0xd545ab91 alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0xd5518212 rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0xd555c36f stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0xd55ad93b iommu_group_get_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xd5674d82 cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd56e36a5 clk_register +EXPORT_SYMBOL_GPL vmlinux 0xd5825a00 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0xd58d9d35 regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0xd59cac2a ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xd5a8b61f irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5c36c40 __tracepoint_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0xd5faa68b crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xd6011bf5 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xd602d546 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xd608fe65 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xd6538e45 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xd66a8f98 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd680a9d8 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xd6934469 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd6ac0511 rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd71b9e50 ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0xd7278283 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd7374402 pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0xd7399d2a efivar_entry_iter_end +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd77c48c1 pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0xd78cee5c generic_access_phys +EXPORT_SYMBOL_GPL vmlinux 0xd7ac6e0d crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0xd7c322a4 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xd7c916b7 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7f2ec6a cgroup_is_descendant +EXPORT_SYMBOL_GPL vmlinux 0xd7ffaf14 ping_close +EXPORT_SYMBOL_GPL vmlinux 0xd80af31c acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0xd80df3ca debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd841b562 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd8568398 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd86db286 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd8786b2a task_xstate_cachep +EXPORT_SYMBOL_GPL vmlinux 0xd87bda92 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xd87fc0a0 usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0xd8b50397 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0xd8bbdfc9 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xd8c0b87d bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xd8c21980 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xd901370e proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0xd901a218 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xd916f287 dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xd919806a amd_cache_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xd91dcec5 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xd942d353 ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0xd947734f reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd956ed9b rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xd96a2de6 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xd9a34035 __clk_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xd9ffe0d3 regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0xda1dcdec virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0xda44cb37 setup_charger_manager +EXPORT_SYMBOL_GPL vmlinux 0xda47a898 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xda48458f udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xda4d8223 input_class +EXPORT_SYMBOL_GPL vmlinux 0xda5289b7 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xdab50ae7 fpu_finit +EXPORT_SYMBOL_GPL vmlinux 0xdaced332 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xdad8396b xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xdae17a1c ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb045d8e crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb05556d posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdb06683c regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xdb11e15d file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xdb21b808 regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0xdb66880c fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xdb6faaa4 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xdb749b1a crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xdb78a97c pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdbb36e15 device_show_int +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc0e3404 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc1e15f1 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xdc294b10 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xdc2b2322 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc33a559 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xdc5e8c29 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xdc6699cb acpi_dev_free_resource_list +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9d6e5d usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdcc13c65 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xdccb8fad scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xdce3be5e regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0xdce542c5 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd391eff profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd6618ba btree_remove +EXPORT_SYMBOL_GPL vmlinux 0xdd794d33 phys_wc_to_mtrr_index +EXPORT_SYMBOL_GPL vmlinux 0xdd941435 regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xdd96f283 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xddce7fa7 regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0xddd41037 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xde01fcc0 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0xde18e0a9 user_update +EXPORT_SYMBOL_GPL vmlinux 0xde4e19ba klist_next +EXPORT_SYMBOL_GPL vmlinux 0xde56bdb7 css_next_child +EXPORT_SYMBOL_GPL vmlinux 0xde73bc24 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xde95bf23 rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xdea63051 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xdea6aacb preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdea96b63 key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0xdec2c0fd trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xded4ea21 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xded905d9 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf1882af dbgp_reset_prep +EXPORT_SYMBOL_GPL vmlinux 0xdf221e72 regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0xdf2f4c17 xen_find_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0xdf4ae42d inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xdf528d92 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0xdf66ca81 ucode_cpu_info +EXPORT_SYMBOL_GPL vmlinux 0xdf8e3dc1 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xdf97b80c rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xdfb94c60 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xdfdf9c10 __tracepoint_unmap +EXPORT_SYMBOL_GPL vmlinux 0xdfea621e devm_pwm_put +EXPORT_SYMBOL_GPL vmlinux 0xdfecd092 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe01dd7b8 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xe02b1b4f ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xe02e1e0b ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe03fda22 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xe0527dfc rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe076fd3a debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xe077a9a8 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe0b5b0f1 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0xe0bd2602 init_fpu +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0d5f921 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe0d7ca6e device_rename +EXPORT_SYMBOL_GPL vmlinux 0xe0f139ed lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xe0f2f1eb class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xe0fcadc7 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xe10c3107 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xe10cd6ad erst_get_record_id_begin +EXPORT_SYMBOL_GPL vmlinux 0xe13f768b __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xe16b0d30 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xe1775ee7 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0xe1835868 devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe1b65a64 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xe1bd6c99 rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0xe1c32794 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0xe1cc8cab crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xe1f021d0 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xe208a944 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xe234e507 pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0xe2568dbf br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xe2599b6d regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xe26699a4 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xe26e46f0 acpi_dev_resource_ext_address_space +EXPORT_SYMBOL_GPL vmlinux 0xe270aab5 cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0xe273ff62 devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xe27571ec usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2aa45c9 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xe2b71a28 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xe2e7840d regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe357694a ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0xe36892bb rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0xe3778475 regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe3bc7fd4 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xe3c2398b md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xe3ca0c52 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe3cc2a50 get_device +EXPORT_SYMBOL_GPL vmlinux 0xe3fd790c crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xe40b4268 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0xe41534ce bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe43846f2 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xe477522d usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xe495771d acpi_subsys_prepare +EXPORT_SYMBOL_GPL vmlinux 0xe49f2a48 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0xe4ade154 dbs_check_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe4c4b28f gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xe4cd0c19 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xe4d022b7 tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xe4db8336 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xe4e68bc8 apei_map_generic_address +EXPORT_SYMBOL_GPL vmlinux 0xe4f82e19 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0xe51069b9 user_match +EXPORT_SYMBOL_GPL vmlinux 0xe52ae762 __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0xe5387357 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0xe53c5fab crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe59668cd ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xe5c0bdee map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xe5d94526 rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xe5e04b7f crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xe605e382 usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0xe6161308 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xe64ad8ea unregister_nmi_handler +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6602e9f perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xe66685a7 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xe668540e sysfs_get_dirent_ns +EXPORT_SYMBOL_GPL vmlinux 0xe67f70ef kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xe6932c1a m2p_remove_override +EXPORT_SYMBOL_GPL vmlinux 0xe6b1ba69 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xe6c68334 ddebug_remove_module +EXPORT_SYMBOL_GPL vmlinux 0xe6c8b53f usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6e37789 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xe6f012cc simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0xe6fdb0a5 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe72b437c ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xe75d6006 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xe76293fc __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe76b39ef i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0xe78322d9 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xe7cbb2d7 pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0xe7f3608a hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe8189eec pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe8229917 dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0xe82b0ade inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0xe82c6d76 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe86f9d78 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xe887bc46 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xe89bd243 ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xe8aac300 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xe8abc0cc rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe8e33272 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xe92d6fc0 iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0xe92e7450 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe94b264f stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xe94d6cef unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0xe969e180 acpi_dma_request_slave_chan_by_index +EXPORT_SYMBOL_GPL vmlinux 0xe96df9a9 efivars_kobject +EXPORT_SYMBOL_GPL vmlinux 0xe98670a4 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xe9b020f1 ping_proc_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe9c59790 led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0xe9ce931a kvm_para_available +EXPORT_SYMBOL_GPL vmlinux 0xe9d0f8a0 iommu_domain_window_disable +EXPORT_SYMBOL_GPL vmlinux 0xe9d1b7cf irq_to_pcap +EXPORT_SYMBOL_GPL vmlinux 0xe9dcf7f3 clk_register_divider +EXPORT_SYMBOL_GPL vmlinux 0xe9de842c bmp085_probe +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea1c3553 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0xea1f1352 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0xea37874a usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea628c20 bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0xea987f82 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xeaa69fef balloon_devinfo_alloc +EXPORT_SYMBOL_GPL vmlinux 0xeacf491d find_module +EXPORT_SYMBOL_GPL vmlinux 0xead0ff70 pinctrl_utils_add_map_configs +EXPORT_SYMBOL_GPL vmlinux 0xeadf816e klist_init +EXPORT_SYMBOL_GPL vmlinux 0xeae1726e uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0xeaf027ae vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xeb1c3628 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xeb2798f7 xen_destroy_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xeb370805 __apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xeb833c22 xen_has_pv_disk_devices +EXPORT_SYMBOL_GPL vmlinux 0xeb85d59d fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xeb9d75b9 tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0xeba5f55b eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xeba745e1 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0xebaa6048 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xebc9870d regmap_update_bits_async +EXPORT_SYMBOL_GPL vmlinux 0xebd6198e irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0xebd964e5 regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xebec57c4 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xebf7aa91 devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0xebfa2fbd usb_acpi_power_manageable +EXPORT_SYMBOL_GPL vmlinux 0xebfca31e xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec5a394a pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0xec5e1eb3 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0xec631f34 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0xec76ab9f rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0xec785f15 alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0xec7e1ce0 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0xec8636bc rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xecad38f8 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xecbc8f60 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xece7f13e devm_acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0xed0a6298 xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0xed14c4f6 pci_bus_sem +EXPORT_SYMBOL_GPL vmlinux 0xed297597 kobj_completion_release +EXPORT_SYMBOL_GPL vmlinux 0xed4f73af platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xed7d5f98 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0xed7e078b fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xedb6f20c filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedc340bd pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xedd49930 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xede1f959 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xedebbee1 evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0xedef1e89 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0xedf7f0e8 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xee098562 ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xee13e697 set_personality_ia32 +EXPORT_SYMBOL_GPL vmlinux 0xee64f7ff tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0xee6b71c4 syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0xeebb9ab0 thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0xeec1708a rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xeec98329 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xeed17414 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef4b4838 rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xef5ed9c3 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef782b88 gnttab_grant_foreign_access_subpage +EXPORT_SYMBOL_GPL vmlinux 0xef8c7850 pcap_adc_async +EXPORT_SYMBOL_GPL vmlinux 0xef960891 rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xef9fdf0e acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0xefa54a9d atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xefab807d register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0xefb483d1 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0xefe51b71 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xeff3430f bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0xeffa6b8f __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xf0189cdb usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xf024075e devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xf02495d9 _submit_bh +EXPORT_SYMBOL_GPL vmlinux 0xf030bba7 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xf05b8fbd platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf08afca5 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0xf0be5a75 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0xf0ed056c device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xf0f5dbc2 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xf1040a32 digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0xf105b27d usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0xf112cdaf pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0xf122a574 irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0xf148565e reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xf154127f pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xf16d5514 alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0xf1741626 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf186c82f nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xf1b97a23 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0xf1e4ee92 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xf1edbcba pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xf1f81743 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xf1f969ec balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf22128fc acpi_dev_get_resources +EXPORT_SYMBOL_GPL vmlinux 0xf23148a4 cper_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0xf25814f5 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xf27977e2 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xf2a09cec fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0xf2eea268 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xf2f077cc pkey_id_type_name +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30e105d ezx_pcap_write +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf32bdc5d unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0xf35a550c raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xf3722307 dma_buf_detach +EXPORT_SYMBOL_GPL vmlinux 0xf37c8d1a ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xf388e912 alarm_init +EXPORT_SYMBOL_GPL vmlinux 0xf3941ed1 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3e2be37 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xf3e431e9 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xf3ef980f rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xf42fa7d3 cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xf44569b6 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0xf469a942 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0xf47cc14c need_load_eval +EXPORT_SYMBOL_GPL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4a7ff3f netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0xf4a86323 call_srcu +EXPORT_SYMBOL_GPL vmlinux 0xf4beacce sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0xf4bf33f7 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xf4c397ca usb_acpi_set_power_state +EXPORT_SYMBOL_GPL vmlinux 0xf4c8af4f ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf4ff3b6d crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xf515b99d pinctrl_find_gpio_range_from_pin +EXPORT_SYMBOL_GPL vmlinux 0xf523bfd6 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xf5328c31 rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0xf538473a nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf558ef4f irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0xf572c90f ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0xf5785b42 evtchn_get +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf5a0fb00 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5b83a9b led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xf5d1f1a5 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0xf5d6696f __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0xf5fef4e3 wm5110_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf605f4c9 pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0xf60c5bf0 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xf60eabcc regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xf611f195 __efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0xf64b0582 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xf66df4ca ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0xf6748423 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xf6753690 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0xf68e9053 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xf693a198 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xf6a229e5 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf6badaf3 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xf6d07664 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xf6ded8d3 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf722baf9 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0xf7322bc8 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0xf73ab4f2 wm5102_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf74990b5 ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0xf7608cdf __tracepoint_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0xf7850de1 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xf79b08b6 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xf7a1801f iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0xf7aca28e wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xf81097f2 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xf816c866 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0xf81f38c9 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xf81fc4ad ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf83187f4 __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xf852dde8 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xf860b334 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xf862a210 acpi_subsys_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0xf8642371 ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf88c8bb6 xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0xf898a24f ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xf8d8fca4 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xf8e4fa90 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8fe3d0b kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0xf901f2b5 ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0xf90554c0 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf9165a7c i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xf925c264 blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0xf928f9df ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf932015f __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf9598fc3 devres_release +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf977f4c2 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xf985af8a device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0xf98b0b11 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xf9924426 arch_add_memory +EXPORT_SYMBOL_GPL vmlinux 0xf9a03f64 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9bdad87 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xf9c2a1e7 balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9ccb1fd da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0xf9d9264e xen_have_vector_callback +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa15515f task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa3168d3 public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0xfa353782 lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0xfa4a647e klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xfa8db325 ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0xfa901b31 compat_get_timespec +EXPORT_SYMBOL_GPL vmlinux 0xfa944641 pinctrl_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0xfaa36a2b vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xfabb5f77 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0xfac5e6ad cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xfaddcfe2 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xfb150ede tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0xfb17dec1 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb24dca8 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb64b230 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0xfb684196 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb8aeb31 sec_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xfb9b3b04 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xfb9c7ba0 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfbb049ee ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc1574a7 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0xfc201b66 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0xfc2fe322 driver_find +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc645355 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xfc690e64 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfcc025e2 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfce22864 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xfd0641f9 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xfd2b94ca spi_master_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfd2ff4f7 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd5658bb devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0xfd646277 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0xfd676f02 wm8400_block_read +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfda00f7b relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xfe0124d6 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0xfe2c09fd sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xfe30607e bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe9188ab ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfeb7f315 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfed3c486 powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0xfed74ccb spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xfeea9a1f tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xfeeccc57 rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfefba3a5 sock_update_netprioidx +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff1076fc usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xff204b23 arizona_clk32k_disable +EXPORT_SYMBOL_GPL vmlinux 0xff25fe9c do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xff29292c usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5b35f8 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xff82f3b3 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xffb16857 yield_to +EXPORT_SYMBOL_GPL vmlinux 0xffb86cde __netpoll_free_async +EXPORT_SYMBOL_GPL vmlinux 0xffc35333 pinctrl_dev_get_drvdata --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/amd64/generic.compiler +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/amd64/generic.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2 --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/amd64/generic.modules +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/amd64/generic.modules @@ -0,0 +1,3941 @@ +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250_dw +8255 +8255_pci +8390 +88pm800 +88pm805 +88pm80x +88pm80x_onkey +88pm860x_battery +88pm860x_bl +88pm860x_charger +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +abituguru +abituguru3 +ablk_helper +ac97_bus +acard-ahci +acecad +acenic +acerhdf +acer-wmi +acpi_extlog +acpi_ipmi +acpi_pad +acpiphp_ibm +acpi_power_meter +acquirewdt +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5380 +ad5398 +ad5421 +ad5446 +ad5449 +ad5504 +ad5624r_spi +ad5686 +ad5755 +ad5764 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7266 +ad7280a +ad7291 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7791 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad7923 +ad799x +ad8366 +ad9523 +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2032 +addi_apci_2200 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +addi_watchdog +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adf4350 +adfs +adi +adis16060 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1275 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +adq12b +ads1015 +ads7828 +ads7846 +ads7871 +ad_sigma_delta +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adv7170 +adv7175 +adv7180 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci1724 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +aesni-intel +aes-x86_64 +af_802154 +af9013 +af9033 +af_alg +affs +af_key +af_packet_diag +af-rxrpc +ah4 +ah6 +aha152x_cs +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +airo +airo_cs +ak8975 +algif_hash +algif_skcipher +ali-ircc +alim1535_wdt +alim7101_wdt +alphatrack +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +alx +ambassador +amc6821 +amd5536udc +amd64_edac_mod +amd76xrom +amd8111e +amd_freq_sensitivity +amd_iommu_v2 +amd-rng +amilo-rfkill +amplc_dio200 +amplc_dio200_common +amplc_dio200_pci +amplc_pc236 +amplc_pc263 +amplc_pci224 +amplc_pci230 +amplc_pci263 +ams369fg06 +analog +anatop-regulator +ansi_cprng +anubis +aoe +apanel +apds9300 +apds9802als +apds990x +apple_bl +appledisplay +apple-gmux +applesmc +appletalk +appletouch +applicom +ar5523 +ar7part +arc4 +arcfb +arcmsr +arcnet +arc_ps2 +arc-rawmode +arc-rimi +arc_uart +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as3711_bl +as3711-regulator +as5011 +asb100 +asc7621 +asix +ast +asus_atk0110 +asus-laptop +asus-nb-wmi +asus-wmi +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at86rf230 +at91_ether +atbm8830 +aten +ath +ath10k_core +ath10k_pci +ath3k +ath5k +ath6kl_core +ath6kl_sdio +ath6kl_usb +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atlas_btns +atm +atmel +atmel_cs +atmel_mxt_ts +atmel_pci +atmel_pwm +atmel-pwm-bl +atmel-ssc +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522_common +au8522_decoder +au8522_dig +aufs +auo_k1900fb +auo_k1901fb +auo_k190x +auo-pixcir-ts +authenc +authencesn +auth_rpcgss +autofs4 +avma1_cs +avm_cs +avmfritz +ax25 +ax88179_178a +axnet_cs +b1 +b1dma +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcma-hcd +bcm_wimax +bd6107 +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +blowfish-x86_64 +bluecard_cs +bluetooth +bma150 +bma180 +bmp085-i2c +bmp085-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpa10x +bpck +bpctl_mod +bpqether +bq2415x_charger +bq24190_charger +bq24735-charger +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcoexist +btcx-risc +btmrvl +btmrvl_sdio +btmtk_usb +btrfs +btsdio +bttv +btuart_cs +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +bypass +c2port-duramar2150 +c4 +c67x00 +c6xdigio +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +caif_usb +caif_virtio +camellia-aesni-avx2 +camellia-aesni-avx-x86_64 +camellia_generic +camellia-x86_64 +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5-avx-x86_64 +cast5_generic +cast6-avx-x86_64 +cast6_generic +cast_common +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcimdas +cb_pcimdda +cc770 +cc770_isa +cc770_platform +c_can +c_can_pci +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +cedusb +ceph +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +chromeos_laptop +cifs +ci_hdrc +ci_hdrc_msm +ci_hdrc_pci +cirrus +cirrusfb +ck804xrom +classmate-laptop +clearpad_tm1217 +clip +clk-max77686 +clk-s2mps11 +clk-si5351 +clk-twl6040 +clk-wm831x +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm36651 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmac +cmdlinepart +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +compal-laptop +configfs +contec_pci_dio +cordic +core +coretemp +cp210x +cpcihp_generic +cpcihp_zt5550 +cpia2 +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc32 +crc32-pclmul +crc7 +crc8 +crc-ccitt +crc-itu-t +crct10dif-pclmul +cros_ec +cros_ec_i2c +cros_ec_keyb +cros_ec_spi +crvml +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +cs5535-mfd +csiostor +ct82c710 +ctr +cts +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24117 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyapa +cyber2000fb +cyberjack +cyclades +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da9030_battery +da9034-ts +da903x +da903x_bl +da9052-battery +da9052_bl +da9052-hwmon +da9052_onkey +da9052-regulator +da9052_tsi +da9052_wdt +da9055-hwmon +da9055_onkey +da9055-regulator +da9055_wdt +da9063-regulator +da9210-regulator +DAC960 +daqboard2000 +das08 +das08_cs +das08_isa +das08_pci +das16 +das16m1 +das1800 +das6402 +das800 +db9 +dc395x +dca +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dcdbas +ddbridge +de2104x +de4x5 +decnet +deflate +defxx +dell-laptop +dell-led +dell_rbu +dell-wmi +dell-wmi-aio +denali +denali_dt +denali_pci +des_generic +designware_i2s +dgap +dgnc +dgrp +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bio-prison +dm-bufio +dm-cache +dm-cache-cleaner +dm-cache-mq +dm-crypt +dm-delay +dme1737 +dmfe +dm-flakey +dmi-sysfs +dm-log +dm-log-userspace +dmm32at +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-switch +dm-thin-pool +dm-verity +dmx3191d +dm-zero +dnet +dn_rtmsg +docg3 +docg4 +dpt_i2o +drbd +drm +drm_kms_helper +drm_usb +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2781_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt2801 +dt2811 +dt2814 +dt2815 +dt2817 +dt282x +dt3000 +dt3155v4l +dt9812 +dtl1_cs +dummy +dummy-irq +dvb-as102 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-af9035 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6007 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-rtl28xxu +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb_usb_v2 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc2 +dwc2_pci +dwc2_platform +dwc3 +dwc3-pci +dw_dmac +dw_dmac_core +dw_dmac_pci +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e4000 +e752x_edac +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_vlan +ec100 +echo +ec_sys +edac_core +edac_mce_amd +edt-ft5x06 +eeepc-laptop +eeepc-wmi +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efi-pstore +efs +ehset +einj +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +em28xx-rc +emc1403 +emc2103 +emc6w201 +em_canid +em_cmp +emi26 +emi62 +em_ipset +em_meta +em_nbyte +empeg +ems_pci +ems_pcmcia +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +ene_ir +eni +enic +epat +epia +epic100 +eql +esas2r +esb2rom +esd_usb2 +esi-sir +esp4 +esp6 +et131x +ethoc +eurotechwdt +evbug +exofs +extcon-adc-jack +extcon-arizona +extcon-gpio +extcon-max77693 +extcon-max8997 +extcon-palmas +ezusb +f2fs +f71805f +f71808e_wdt +f71882fg +f75375s +f81232 +fakelb +fam15h_power +fan53555 +farsync +faulty +fb_ddc +fb_sys_fops +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +fid +fintek-cir +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +firewire-serial +fit2 +fit3 +fixed +fl512 +fld +floppy +fm801-gp +fmc +fmc-chardev +fmc-fakedev +fmc-trivial +fmc-write-eeprom +fm_drv +fmvj18x_cs +fnic +forcedeth +fore_200e +fotg210-hcd +fotg210-udc +freevxfs +friq +frpw +fsa9480 +fscache +fschmd +ft1000 +ft1000_pcmcia +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu-tablet +fujitsu_ts +fusbh200-hcd +g450_pll +g760a +g762 +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdmtty +gdmulte +gdmwm +gdth +generic +generic-adc-battery +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-clmulni-intel +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +glue_helper +gma500_gfx +g_mass_storage +g_midi +g_ncm +g_nokia +go7007 +go7007-loader +go7007-usb +goku_udc +goldfishfb +gp2ap002a00f +gp2ap020a00f +gpio +gpio-74x164 +gpio-addr-flash +gpio-adp5520 +gpio-adp5588 +gpio-amd8111 +gpio-arizona +gpio_backlight +gpio-charger +gpio-cs5535 +gpio-da9052 +gpio-da9055 +gpio-f7188x +gpio-fan +gpio-generic +gpio-ich +gpio-ir-recv +gpio-it8761e +gpio-janz-ttl +gpio-kempld +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-pch +gpio-rdc321x +gpio-regulator +gpio-sch +gpio_tilt_polled +gpio-tps65912 +gpio-ts5500 +gpio-twl6040 +gpio-ucb1400 +gpio-viperboard +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_jl2005bcd +gspca_kinect +gspca_konica +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_nw80x +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_se401 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stk1135 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +hci +hci_uart +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hecubafb +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hgafb +hid +hid-a4tech +hid-apple +hid-appleir +hid-aureal +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-elo +hid-emsff +hid-ezkey +hid-gaff +hid-generic +hid-gyration +hid-holtekff +hid-holtek-kbd +hid-holtek-mouse +hid-huion +hid-hyperv +hid-icade +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-lenovo-tpkbd +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-rmi +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-isku +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-konepure +hid-roccat-kovaplus +hid-roccat-lua +hid-roccat-pyra +hid-roccat-ryos +hid-roccat-savu +hid-saitek +hid-samsung +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-gyro-3d +hid-sensor-hub +hid-sensor-iio-common +hid-sensor-magn-3d +hid-sensor-trigger +hid-sjoy +hid-sony +hid-speedlink +hid-steelseries +hid-sunplus +hid-thingm +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-xinmo +hid-zpff +hid-zydacron +hih6130 +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp_accel +hpfs +hpilo +hpsa +hptiop +hpwdt +hp-wireless +hp-wmi +hsi +hsi_char +hso +hsr +htc-pasic3 +htu21 +huawei_cdc_ncm +hv_balloon +hv_netvsc +hv_storvsc +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hwpoison-inject +hx8357 +hyperv_fb +hyperv-keyboard +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-cbus-gpio +i2c-designware-core +i2c-designware-pci +i2c-designware-platform +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-hid +i2c-i801 +i2c-isch +i2c-ismt +i2c-kempld +i2c-matroxfb +i2c-mux +i2c-mux-gpio +i2c-mux-pca9541 +i2c-mux-pca954x +i2c-mux-pinctrl +i2c-nforce2 +i2c-nforce2-s4985 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-piix4 +i2c-scmi +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-viperboard +i2c-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i3000_edac +i3200_edac +i40e +i40evf +i5000_edac +i5100_edac +i5400_edac +i5k_amb +i6300esb +i7300_edac +i7300_idle +i740fb +i7core_edac +i810 +i82092 +i82975x_edac +i8k +i915 +i915_bdw +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipath +ib_ipoib +ib_iser +ib_isert +ib_mad +ibmaem +ibmasm +ibmasr +ibmpex +ibm_rtl +ib_mthca +ib_qib +ib_sa +ib_srp +ib_srpt +ib_ucm +ib_umad +ib_uverbs +ichxrom +icp_multi +ics932s401 +ideapad-laptop +ideapad_slidebar +idmouse +idt77252 +idtcps +idt_gen2 +ie6xx_wdt +ieee802154 +ifb +iforce +igb +igbvf +iguanair +iio_dummy +iio_hwmon +iio-trig-interrupt +iio-trig-periodic-rtc +iio-trig-sysfs +ii_pci20kc +ili210x +ili922x +ili9320 +imm +imon +ims-pcu +imx074 +ina209 +ina2xx +industrialio +industrialio-triggered-buffer +inet_diag +inexio +inftl +initio +input-polldev +int51x1 +intelfb +intel_ips +intel_menlow +intel_mid_dma +intel_oaktrail +intel_powerclamp +intel_rapl +intel-rng +intel-rst +intel-smartconnect +intel_vr_nor +interact +interval_tree_test +inv-mpu6050 +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip6_gre +ip6table_filter +ip6table_mangle +ip6table_nat +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_MASQUERADE +ip6t_mh +ip6t_NPT +ip6t_REJECT +ip6t_rpfilter +ip6t_rt +ip6t_SYNPROXY +ip6_tunnel +ip6_vti +ipack +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_poweroff +ipmi_si +ipmi_watchdog +ipoctal +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netnet +ip_set_hash_netport +ip_set_hash_netportnet +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_MASQUERADE +ipt_REJECT +ipt_rpfilter +ipt_SYNPROXY +ipt_ULOG +ip_tunnel +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ip_vti +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sanyo-decoder +ir-sony-decoder +irtty-sir +ir-usb +isci +iscsi_boot_sysfs +iscsi_ibft +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it87 +it8712f_wdt +it87_wdt +it913x-fe +iTCO_vendor_support +iTCO_wdt +itd1000 +ite-cir +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwldvm +iwlegacy +iwlmvm +iwlwifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kalmia +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kempld-core +kempld_wdt +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +ko2iblnd +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksocklnd +ksz884x +ktti +kvaser_pci +kvaser_usb +kvm +kvm-amd +kvm-intel +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +l2tp_ppp +l440gx +l4f00242t03 +l64781 +lanai +lapb +lapbether +latch-addr-flash +lattice-ecp3-config +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-atmel-pwm +leds-bd2802 +leds-blinkm +leds-clevo-mail +leds-da903x +leds-da9052 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lm3533 +leds-lm355x +leds-lm3642 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lp5562 +leds-lp55xx-common +leds-lp8501 +leds-lp8788 +leds-lt3593 +leds-max8997 +leds-mc13783 +leds-ot200 +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pca9685 +leds-pwm +leds-regulator +leds-ss4200 +leds-tca6507 +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-camera +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-oneshot +ledtrig-timer +ledtrig-transient +legousbtower +lg2160 +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libceph +libcfs +libcomposite +libcrc32c +libcxgbi +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +litelink-sir +lkkbd +llc +llc2 +llog_test +lm25066 +lm3533-als +lm3533_bl +lm3533-core +lm3533-ctrlbank +lm3630a_bl +lm3639_bl +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm8333 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95234 +lm95241 +lm95245 +lmc +lms283gf05 +lms501kf03 +lmv +lnbp21 +lnbp22 +lnet +lnet_selftest +lockd +lov +lp +lp3971 +lp3972 +lp855x_bl +lp8727_charger +lp8755 +lp8788_bl +lp8788-charger +lpc_ich +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc2978 +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lustre +lv5207lp +lvfs +lz4 +lz4_compress +lz4hc +lz4hc_compress +m25p80 +m2m-deinterlace +m52790 +m88rs2000 +ma600-sir +mac80211 +mac80211_hwsim +mac802154 +macb +mac-celtic +mac-centeuro +mac-croatian +mac-cyrillic +mac-gaelic +mac-greek +mac_hid +machzwd +mac-iceland +mac-inuit +macmodes +mac-roman +mac-romanian +mac-turkish +macvlan +macvtap +mag3110 +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix-keymap +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16064 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max197 +max2165 +max3100 +max34440 +max517 +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77686 +max77693 +max8649 +max8660 +max8688 +max8903_charger +max8907 +max8907-regulator +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8973-regulator +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-i2c +mc13xxx-regulator-core +mc13xxx-spi +mc44s803 +mce_amd_inj +mce-inject +mceusb +mcp2120-sir +mcp251x +mcp3021 +mcp320x +mcp3422 +mcp4725 +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mei +mei-me +mei_phy +mem2mem_testdev +memory-notifier-error-inject +memstick +mena21_wdt +metronomefb +metro-usb +meye +mfd +mga +mgc +mic_card +michael_mic +mic_host +microread +microread_i2c +microread_mei +microtek +mii +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mlx5_core +mlx5_ib +mma8450 +mmc_block +mmc_spi +mms114 +mos7720 +mos7840 +moxa +mpc624 +mpoa +mpr121_touchkey +mpt2sas +mpt3sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrf24j40 +mrp +mrst_max3110 +ms_block +msdos +msi-laptop +msi-wmi +msp3400 +mspro_block +msr +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt29f_spinand +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +multiq3 +musb_hdrc +mv88e6060 +mv88e6xxx_drv +mvmdio +mvsas +mv_u3d_core +mv_udc +mvumi +mwave +mwifiex +mwifiex_pcie +mwifiex_sdio +mwifiex_usb +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxm-wmi +mxser +myri10ge +n411 +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +nau7802 +navman +nbd +nci +ncpfs +nct6775 +ne2k-pci +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netlink_diag +netprio_cgroup +netrom +netsc520 +nettel +netxen_nic +newtonkbd +nfc +nfc_digital +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcsim +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_ipv4 +nf_nat_ipv6 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nfsv2 +nfsv3 +nfsv4 +nf_synproxy_core +nf_tables +nf_tables_arp +nf_tables_bridge +nf_tables_ipv4 +nf_tables_ipv6 +nft_chain_nat_ipv4 +nft_chain_nat_ipv6 +nft_chain_route_ipv4 +nft_chain_route_ipv6 +nft_compat +nft_counter +nft_ct +nft_exthdr +nft_hash +nftl +nft_limit +nft_log +nft_meta +nft_nat +nft_rbtree +nft_reject_ipv4 +ngene +n_hdlc +ni_6527 +ni_65xx +ni_660x +ni_670x +ni_at_a2150 +ni_at_ao +ni_atmio +ni_atmio16d +nicstar +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_cs +ni_labpc_isadma +ni_labpc_pci +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nlmon +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +nosy +notifier-error-inject +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc-ircc +ntb +ntb_netdev +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +null_blk +nuvoton-cir +nvidiafb +nvme +nvram +nv_tco +nxt200x +nxt6000 +obdclass +obdecho +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ocrdma +old_belkin-sir +omfs +omninet +on20 +on26 +onenand +opencores-kbd +openvswitch +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osc +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7640 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +ozwpan +p4-clockmod +p54common +p54pci +p54spi +p54usb +p8022 +p8023 +padlock-aes +padlock-sha +palmas-regulator +panasonic-laptop +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_acpi +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87410 +pata_ns87415 +pata_oldpiix +pata_opti +pata_optidma +pata_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pc300too +pc87360 +pc87413_wdt +pc87427 +pcap_keys +pcap-regulator +pcap_ts +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_dma +pch_gbe +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci-stub +pcl711 +pcl724 +pcl726 +pcl730 +pcl812 +pcl816 +pcl818 +pcm3724 +pcmad +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcmda12 +pcmmio +pcmuio +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc_adma +peak_pci +peak_pcmcia +peak_usb +pegasus +penmount +percpu_test +pf +pfuze100-regulator +pg +phantom +phison +phonet +phram +phy-core +phy-generic +phy-gpio-vbus-usb +phy-isp1301 +phy-rcar-usb +phy-samsung-usb +phy-samsung-usb2 +phy-samsung-usb3 +physmap +pixcir_i2c_ts +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm80xx +pmbus +pmbus_core +pmc551 +pmcraid +pm-notifier-error-inject +pn533 +pn544 +pn544_i2c +pn544_mei +pn_pep +poc +port100 +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +psmouse +psnap +pt +ptlrpc +ptp +ptp_pch +pvpanic +pvrusb2 +pwc +pwm_bl +pxa27x_udc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qmi_wwan +qnx4 +qnx6 +qt1010 +qt1070 +qt2160 +quatech2 +quatech_daqp_cs +quickstart +quota_tree +quota_v1 +quota_v2 +qxl +r128 +r592 +r6040 +r8152 +r815x +r8169 +r8187se +r8188eu +r8192e_pci +r8192u_usb +r820t +r852 +r8712u +r8a66597-hcd +r8a66597-udc +radeon +radeonfb +radio-i2c-si470x +radio-keene +radio-ma901 +radio-maxiradio +radio-mr800 +radio-shark +radio-si4713 +radio-si476x +radio-tea5764 +radio-timb +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +ray_cs +rbd +rbtree_test +rc5t583-regulator +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rcar_vin +rc-asus-pc39 +rc-asus-ps3-100 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-delock-61959 +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-it913x-v1 +rc-it913x-v2 +rc-kaiomy +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-msi-digivox-ii +rc-msi-digivox-iii +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-reddo +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-total-media-in-hand-02 +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +remoteproc +renesas_usbhs +retu-mfd +retu-pwrbutton +retu_wdt +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-gpio +rfkill-regulator +rio500 +rionet +rio-scan +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rp2 +rpcsec_gss_krb5 +rsxx +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800mmio +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm80x +rtc-88pm860x +rtc-ab3100 +rtc-bq32k +rtc-bq4802 +rtc-da9052 +rtc-da9055 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds2404 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-hid-sensor-time +rtc-isl12022 +rtc-isl1208 +rtc-lp8788 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max77686 +rtc-max8907 +rtc-max8925 +rtc-max8997 +rtc-max8998 +rtc-mc13xxx +rtc-moxart +rtc-msm6242 +rtc-palmas +rtc-pcap +rtc-pcf2123 +rtc-pcf2127 +rtc-pcf50633 +rtc-pcf8523 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rc5t583 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx4581 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-s5m +rtc-stk17ta8 +rtc-tps6586x +rtc-tps65910 +rtc-tps80031 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rti800 +rti802 +rtl2830 +rtl2832 +rtl8150 +rtl8180 +rtl8187 +rtl8188ee +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtl8723ae +rtl8723be +rtl8723-common +rtl8821ae +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtl_pci +rtl_usb +rtlwifi +rts5139 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rxkad +s1d13xxxfb +s2250 +s2255drv +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s5m8767 +s626 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +salsa20_generic +salsa20-x86_64 +samsung-keypad +samsung-laptop +samsung-q10 +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_rcar +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sb1000 +sbc60xxwdt +sbc8360 +sbc_epx_c3 +sbc_fitpc2_wdt +sbc_gxx +sbe-2t3e3 +sb_edac +sbni +sbp_target +sbs +sbs-battery +sbshc +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +sca3000 +scb2_flash +sch311x_wdt +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_fq +sch_fq_codel +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_plug +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_srp +sctp +sctp_probe +sdhci +sdhci-acpi +sdhci-pci +sdhci-pltfm +sdhci-pxav2 +sdhci-pxav3 +sdio_uart +sdricoh_cs +sdr-msi3101 +sedlbauer_cs +seed +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent-avx2 +serpent-avx-x86_64 +serpent_generic +serpent-sse2-x86_64 +serport +serqt_usb2 +ses +sfc +sha1-ssse3 +sha256-ssse3 +sha512-ssse3 +shark2 +sh_eth +sh_mobile_ceu_camera +sh_mobile_csi2 +shpchp +sht15 +sht21 +sh_veu +si21xx +si4713-i2c +si476x-core +sidewinder +sierra +sierra_net +sil164 +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_platform +skd +skel +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slicoss +slip +slram +sm501 +sm501fb +sm7xxfb +smb347-charger +smc91c92_cs +sm_common +sm_ftl +smm665 +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +snd +snd-ac97-codec +snd-ad1889 +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-aloop +snd-als300 +snd-als4000 +snd-asihpi +snd-at73c213 +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-compress +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dice +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-firewire-lib +snd-firewire-speakers +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-ca0110 +snd-hda-codec-ca0132 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-isight +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lola +snd-lx6464es +snd-maestro3 +snd-mia +snd-mixart +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcsp +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-scs1x +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-atmel-pcm +snd-soc-core +snd-soc-si476x +snd-soc-simple-card +snd-sonicvibes +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usb-hiface +snd-usbmidi-lib +snd-usb-us122l +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +soc_scale_crop +softdog +softing +softing_cs +solo6x10 +solos-pci +sony-btf-mpx +sony-laptop +soundcore +sp5100_tco +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_dectlk +speakup_dummy +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +spectrum_cs +speedfax +speedstep-lib +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw +spi-dw-midpci +spi-dw-mmio +spi-gpio +spi_ks8995 +spi-lm70llp +spi-oc-tiny +spi-pxa2xx-pci +spi-pxa2xx-platform +spi-sc18is602 +spi-tle62x0 +spi-topcliff-pch +spi-xcomm +squashfs +sr9700 +ssb +ssb-hcd +ssfdc +sst25l +sstfb +ssu100 +st +st1232 +st_accel +st_accel_i2c +st_accel_spi +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste_modem_rproc +stex +st_gyro +st_gyro_i2c +st_gyro_spi +stinger +stir4200 +stk1160 +stkwebcam +st_magn +st_magn_i2c +st_magn_spi +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +st_pressure +st_pressure_i2c +st_pressure_spi +streamzap +st_sensors +st_sensors_i2c +st_sensors_spi +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +sur40 +svcrdma +svgalib +sx8 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synaptics_usb +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tca8418_keypad +tcm_fc +tcm_loop +tcm_qla2xxx +tcm_usb_gadget +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tcs3472 +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tda998x +tdfx +tdfxfb +tdo24m +tea +tea575x +tea5761 +tea5767 +tea6415c +tea6420 +team +team_mode_activebackup +team_mode_broadcast +team_mode_loadbalance +team_mode_random +team_mode_roundrobin +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +test-string_helpers +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti-adc081c +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmem +tmiofb +tmp006 +tmp102 +tmp401 +tmp421 +tmscsim +toim3232-sir +topstar-laptop +toshiba_acpi +toshiba_bluetooth +touchit213 +touchright +touchwin +tpci200 +tpm_atmel +tpm_i2c_atmel +tpm_i2c_infineon +tpm_i2c_nuvoton +tpm_i2c_stm_st33 +tpm_infineon +tpm_nsc +tpm-rng +tps51632-regulator +tps6105x +tps6105x-regulator +tps62360-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps65090-charger +tps65090-regulator +tps65217 +tps65217_bl +tps65217-regulator +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +tps80031-regulator +trancevibrator +tranzport +tridentfb +ts2020 +ts5500_flash +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +tsi568 +tsi57x +tsi721_mport +ts_kmp +tsl2550 +tsl2563 +tsl2583 +tsl2x7x_core +tsl4531 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +tua6100 +tua9001 +tulip +tuner +tuner_it913x +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tusb6010 +tvaudio +tveeprom +tvp5150 +tw2804 +tw9903 +tw9906 +tw9910 +twidjoy +twl6040-vibra +twofish-avx-x86_64 +twofish_common +twofish_generic +twofish-x86_64 +twofish-x86_64-3way +typhoon +u132-hcd +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +ucd9000 +ucd9200 +uda1342 +udc-core +udf +udl +udlfb +udp_diag +ueagle-atm +u_ether +ufs +ufshcd +ufshcd-pci +ufshcd-pltfrm +uhid +uio +uio_aec +uio_cif +uio_dmem_genirq +uio_mf624 +uio_netx +uio_pci_generic +uio_pdrv_genirq +uio_sercos3 +uli526x +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unioxx5 +unix_diag +upd64031a +upd64083 +uPD98402 +u_rndis +usb3503 +usb_8dev +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_f_acm +usb_f_ecm +usb_f_ecm_subset +usb_f_eem +usb_f_mass_storage +usb_f_ncm +usb_f_obex +usb_f_phonet +usb_f_rndis +usb_f_serial +usb_f_ss_lb +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usb-serial-simple +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbtv +usbvision +usb_wwan +u_serial +userspace-consumer +ushc +usnic_verbs +uss720 +uvcvideo +uvesafb +uwb +ux500 +v4l2-common +v4l2-dv-timings +v4l2-int-device +v4l2-mem2mem +vcan +vcnl4000 +ves1820 +ves1x93 +veth +vfio +vfio_iommu_type1 +vfio-pci +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost +vhost_net +vhost_scsi +via +via686a +via-camera +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +via_wdt +video +videobuf2-core +videobuf2-dma-contig +videobuf2-dma-sg +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +viperboard +viperboard_adc +virtio-rng +virtio_scsi +virtual +visor +vivi +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_pio2 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmw_balloon +vmwgfx +vmw_pvscsi +vmw_vmci +vmw_vsock_vmci_transport +vmxnet3 +vp27smpx +vpx3220 +vringh +vsock +vsxxxaa +vt1211 +vt6655_stage +vt6656_stage +vt8231 +vt8623fb +vub300 +vx855 +vxge +vxlan +w1_bq27000 +w1_ds2408 +w1_ds2413 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1_ds2781 +w1_ds28e04 +w1-gpio +w1_smem +w1_therm +w35und +w5100 +w5300 +w6692 +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83697ug_wdt +w83781d +w83791d +w83792d +w83793 +w83795 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w90p910_ts +w9966 +wacom +wacom_i2c +wacom_w8001 +wafer5823wdt +walkera0701 +wanxl +warrior +wbsd +wcn36xx +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wil6210 +wimax +winbond-840 +winbond-cir +wire +wishbone-serial +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl18xx +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wlcore +wlcore_sdio +wlcore_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wmi +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +x38_edac +x86_pkg_temp_thermal +xc4000 +xc5000 +xcbc +xen-blkback +xen-evtchn +xen-fbfront +xenfs +xen-gntalloc +xen-gntdev +xen-kbdfront +xen-netback +xen-pciback +xen-pcifront +xen-privcmd +xen-tpmfront +xen_wdt +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_algo +xfrm_ipcomp +xfrm_user +xfs +xgene-enet +xgifb +xgmac +xillybus_core +xillybus_pcie +xirc2ps_cs +xircom_cb +xo15-ebook +xor +xpad +xprtrdma +xsens_mt +x_tables +xt_addrtype +xt_AUDIT +xt_bpf +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlabel +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_ecn +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_HMARK +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_LOG +xt_mac +xt_mark +xt_multiport +xt_nat +xt_NETMAP +xt_nfacct +xt_NFLOG +xt_NFQUEUE +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xt_REDIRECT +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +zatm +zaurus +zd1201 +zd1211rw +zforce_ts +zhenhua +zl10036 +zl10039 +zl10353 +zl6100 +zlib +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram +zte_ev --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/amd64/lowlatency +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/amd64/lowlatency @@ -0,0 +1,17476 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x5b2a71fe kvm_cpu_has_pending_timer +EXPORT_SYMBOL arch/x86/kvm/kvm 0xcd706218 kvm_read_guest_atomic +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister +EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register +EXPORT_SYMBOL drivers/acpi/video 0xb3415386 acpi_video_get_edid +EXPORT_SYMBOL drivers/atm/suni 0xd882aaab suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x87136ee3 uPD98402_init +EXPORT_SYMBOL drivers/bcma/bcma 0x9c604362 bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x127a5901 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/paride/paride 0x03a8ca63 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x1c89b698 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x20030a5f pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x22b469cd pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x6855032b pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x798fbeee pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x7e3a393f pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xa7acd1e4 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xaa425cb7 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xb65c6a41 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xbf4a1597 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xe65ed52e paride_unregister +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x11fef388 dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x3ba44005 dw_dma_cyclic_free +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x562fe9b2 dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x58986445 dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x5a953c02 dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x73ba6f07 dw_dma_get_src_addr +EXPORT_SYMBOL drivers/dma/ioat/ioatdma 0xfbce4bc1 ioat_dma_setup_interrupts +EXPORT_SYMBOL drivers/edac/edac_core 0x7855418c edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x030cc4e2 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04d0f641 fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0f7d6af8 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1bb914ec fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x26a90776 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3032e4a7 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x478eff96 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x48a14246 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5548ef84 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x626ed0d4 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x645b715f fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6ae3d3d9 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6f330962 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7aca1181 fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8460c914 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8ce7f811 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa7c1831a fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xaae4c9a2 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb0032a77 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc058f3a4 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc54a0e61 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc6eee09c fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xcac04501 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xcc00ea0d fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd933079b fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe75ac036 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf0361dab fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf2d3d1c3 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf736850b fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/fmc/fmc 0x208ca412 fmc_reprogram +EXPORT_SYMBOL drivers/fmc/fmc 0x515868e6 fmc_device_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x66d6d53c fmc_driver_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x89ba34fc fmc_driver_register +EXPORT_SYMBOL drivers/fmc/fmc 0x8cba4f70 fmc_show_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xca6cc31f fmc_device_unregister_n +EXPORT_SYMBOL drivers/fmc/fmc 0xdf7a55f0 fmc_scan_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xe7a0e638 fmc_find_sdb_device +EXPORT_SYMBOL drivers/fmc/fmc 0xeb8df9fc fmc_device_register +EXPORT_SYMBOL drivers/fmc/fmc 0xedf6ecd5 fmc_device_register_n +EXPORT_SYMBOL drivers/fmc/fmc 0xfa159d09 fmc_free_sdb_tree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00025916 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00667d8a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x026c0d6b drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x041fa294 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07c70d3d drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x084a8574 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a51deed drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a82724b drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ac6559f drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e2909ac drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e59c4a4 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0eba3b07 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f312852 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x107742a9 drm_get_subpixel_order_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x137c84ff drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a9a178 drm_get_format_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x168b1ee7 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1690693e drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17a2b828 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x18324153 drm_pcie_get_speed_cap_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x186d7b86 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x189f6401 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19e44324 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a00a1f4 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a770ac3 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c3bf3dd drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d5e5625 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d631d21 drm_mode_group_init_legacy_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20b37c60 drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21474bac drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x215a65e5 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22d571f7 drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23fdce2e drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24b05e57 drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24e42ac9 drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25410b23 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26fc0748 drm_prime_sg_to_page_addr_arrays +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2869208b drm_framebuffer_reference +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2962832c drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29e036ad drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a942ab2 drm_mm_insert_node_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b3d4f3b drm_framebuffer_unreference +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b89f6dd drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c230a5d drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c34d1c5 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d80be4d drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d95ef6a drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e7a4300 drm_rgb_quant_range_selectable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30129f91 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x314e98f6 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33e379a4 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x35937370 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36f91ef3 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a4f7ae drm_format_num_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x393b60e3 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a49226e drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ac1fef9 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ac7fb57 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ae7b2d0 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b9d009a drm_format_plane_cpp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d4b8108 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d5994f4 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f1716d8 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f3486d2 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4015f63f drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x401fbd4f drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0x410f3355 drm_gem_dumb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41347956 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4161b657 drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x426372d9 drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4442cbf1 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47c0c07e drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49fabf0d drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c511235 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f7c5c3a drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4fd7b18c drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e28c07 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x524ea941 drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x526f6f71 drm_rect_calc_hscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5291799d drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53bd51df drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57d56eba drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x591c90cb drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59dba06b drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5cd7592c drm_connector_unplug_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d7318dc drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f846880 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6090be61 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62699dc0 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x629c05e1 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x630308f2 drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0x638fa1a4 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x647dd198 drm_crtc_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0x657a2a1f drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66803841 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6783f16b drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6900d335 drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a0b92b2 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ab2658b drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c8e477e drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cc3c29e drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cee2e42 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d38969d drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d5c0e6c drm_bridge_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e0058cb drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e488594 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f08acc3 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71dcaf93 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7400be54 drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74b7b592 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74bb0267 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x750558f4 drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75196d33 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75aa4aba drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4e7297 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7aa5ba66 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b38755b drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fb3983d drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x800efff5 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81ba930c drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81e773e4 drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85be91c9 drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x87619ed3 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x884e7c45 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8854023b drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8855ff9e drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89124673 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8aed396c drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b215228 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ddf3e38 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de13715 drm_format_vert_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7df3a7 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91672ffb drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94d76341 drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98e85166 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x996e9b5f drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9972db48 drm_rect_calc_vscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b301ab0 drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c626562 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d70fc2a drm_rnodes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9eccfe56 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1ea2c8d drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1f4e9e6 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa218acd8 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa26825f4 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa28078b2 drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa2f5a7fa drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3a02e8c drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3de531e drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3ef3679 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5dbd572 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6902f65 drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa78eefe7 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8779b1b drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa96acfcb drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab4e56f6 drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xac16d7df drm_bridge_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xac9c9e7e drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae49d47a drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaee39614 drm_dev_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafa17c84 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafb0cb6f drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafd51394 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb26f6a87 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2fac07c drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb36e4ac7 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3d2111e drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4a353d1 drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb511707d drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5540008 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb572a9f0 drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5a52d5d drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6c347c0 drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb80c8c5f drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb81c6a17 drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95beb55 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba2567d9 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbad7df2f drm_prime_destroy_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb0dca7a drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd97d00f drm_unplug_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe001c53 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf0f50ba drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbfa8d6aa drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc21e7d62 drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4000f9f drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc45de15a drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9da9bd2 drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca45efbc drm_format_horz_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca77200d drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca93ede3 drm_vma_offset_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcafb8bff drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb4daf45 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xccf56c58 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd8f5cef drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2335101 drm_fb_get_bpp_depth +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd27ee2b5 drm_prime_init_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2837471 drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3292dd4 drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd333df45 drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd41e0065 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd55aea8d drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd9bf3a70 drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdad4364d drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd6bab88 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe001c862 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1fd71fa drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2de6e20 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2ef97e4 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe4a23047 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6956774 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6e81573 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f46e6e drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe838a1d5 drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8a11d6d drm_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe99e8754 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea15bd9e drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea4606bb drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea8af8a1 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeaa5c296 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeeb7d8b6 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefafe63b drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefdf9b69 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf08d712a drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0ad2ae2 drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf316158f drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42e3b84 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf446a0e2 drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf58db4db drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf613aea2 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf674ef15 drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf97ad115 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb497216 drm_mm_insert_node_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb90e112 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc930390 drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd063935 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdcedfc2 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe30d518 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe3db960 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe4a68c7 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc6c87a drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x012c82b8 drm_pick_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x098e47d2 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0a8c3136 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0ac0ee85 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0b18662e drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0e4837bb drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f96ec70 drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x100d126f drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x163251c8 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1a40bcf8 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2e5c85aa drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x30a6d894 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x330fea8c drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34871adf drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x388fa7f7 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x562744cc drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6a54a1ff drm_dp_aux_register_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x711a004a drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x75276c45 drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7b51a46f drm_dp_aux_unregister_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x838bfb36 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84e924ba drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8815ec1f drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8a75097d drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x90bb0632 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x924274c8 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x95127afe drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x96dc4ae9 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9b0cbff2 drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa37511d1 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa6538a61 drm_has_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa77858bb drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa7db4470 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8d6809d drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb5da922f drm_dp_link_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbc983cc1 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbccda520 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbe4b9883 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc219b950 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc58ce3b7 drm_dp_link_configure +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xce0bc24b drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xced1488f drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd3bdd1b5 drm_dp_link_power_up +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdb85f0fb drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdd212fd4 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe271123c drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe6ffee94 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe948fbee drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf98503c4 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf99f7d0a drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x8f689226 drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0xc4344cbe drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0xe1377f85 drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x04175e6a ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x04531570 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0a37710d ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0c8cf1ab ttm_bo_add_to_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1001eb5c ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1275ed73 ttm_agp_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1dff374d ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ef1c055 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x201a87bc ttm_prime_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2105e18d ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x21f0f8cb ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2893f20f ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x293fc313 ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x32753458 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3dcc1bda ttm_mem_io_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44138fd8 ttm_agp_tt_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44a248e9 ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x45dcffbb ttm_mem_io_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x485a5bc0 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4e8dd264 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4f78a048 ttm_mem_io_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x50174221 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x506ae74a ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x564e1aee ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5a7a6046 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5d14bf53 ttm_pool_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6052860c ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6210557f ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x65c635d2 ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x675ad2e1 ttm_pool_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6b797c25 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6d2121fe ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6db473e1 ttm_bo_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x70e7c9cd ttm_mem_io_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x718a56bb ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x770fb1b8 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d7637d4 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7ebc569a ttm_dma_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80379871 ttm_bo_dma_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x805b061a ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8568be30 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85b00a16 ttm_dma_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x880a15ad ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8ac397a7 ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8eec6e12 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8f244191 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9385c733 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x94894449 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9503a6ff ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9561d4cf ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b091835 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9c21fced ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9d3eab45 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9e6037ad ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9ea57e30 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa3ad8c19 ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa4a47a42 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaa4da723 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaa592468 ttm_bo_del_sub_from_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xba52f824 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4d4618d ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcc1a1226 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcc2af077 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce6e43a8 ttm_base_object_lookup_for_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcee7bb78 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd1f38ea1 ttm_agp_tt_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd8edb115 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdfedf98e ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe87dc3b3 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe8e84d7a ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf0f28149 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf626027f ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfeef5096 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/hv/hv_vmbus 0x9dfa55d7 vmbus_sendpacket +EXPORT_SYMBOL drivers/hv/hv_vmbus 0xf68b5101 vmbus_recvpacket +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x02501fcb sch56xx_watchdog_register +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0e2a6864 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0f5877d4 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x34257f35 sch56xx_watchdog_unregister +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xe5022f95 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xed1d2a08 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x181ffe9f i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x49f57a02 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x6ffbe78b i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x1bdccfaa i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xc216d31b i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x70bd85c2 amd756_smbus +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x0d92fc7d st_accel_common_probe +EXPORT_SYMBOL drivers/iio/accel/st_accel 0xc6314b7c st_accel_common_remove +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x0b43e5d7 hid_sensor_write_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x6c499841 hid_sensor_read_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x9098e518 hid_sensor_write_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xb27698b7 hid_sensor_read_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xbb34138a hid_sensor_parse_common_attributes +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0xb03e2d0a hid_sensor_remove_trigger +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0xe9f87daf hid_sensor_setup_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x037c7c7b st_sensors_get_buffer_element +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x05b1150a st_sensors_init_sensor +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x074d7047 st_sensors_trigger_handler +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x1435621b st_sensors_sysfs_scale_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x45fbb0df st_sensors_set_fullscale_by_gain +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x5817ce66 st_sensors_deallocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x6c5df4ed st_sensors_set_odr +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x76aa510e st_sensors_set_axis_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x8367946b st_sensors_check_device_support +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x8e9cff60 st_sensors_allocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x9f3223dd st_sensors_sysfs_set_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xad9ab6cc st_sensors_read_info_raw +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xc5d7aa3e st_sensors_set_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xd2486861 st_sensors_sysfs_sampling_frequency_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xdd199c50 st_sensors_set_dataready_irq +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xebb94169 st_sensors_sysfs_get_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0x2255b9f1 st_sensors_i2c_configure +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0xc44c82e8 st_sensors_spi_configure +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x5620d5f2 st_gyro_common_remove +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0xbeba9cfc st_gyro_common_probe +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x618ca7ce adis_enable_irq +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0xef0b784f adis_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/industrialio 0x08c8e4fe iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x22e8871b iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0x29760e40 iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x2a0df426 iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x329247bd iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x507a0f56 iio_buffer_register +EXPORT_SYMBOL drivers/iio/industrialio 0x57a044ca iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x66cd0d90 iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x6854efc6 iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0x735ad604 iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0x7a320901 iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0x926ec88e iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0x927bf082 iio_buffer_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x9539aa32 iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x9e9495e0 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/iio/industrialio 0xab02d9d9 iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0xb6e8d602 iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0xc65cbf79 iio_buffer_write_length +EXPORT_SYMBOL drivers/iio/industrialio 0xc97002ab iio_buffer_show_enable +EXPORT_SYMBOL drivers/iio/industrialio 0xd1725181 iio_buffer_read_length +EXPORT_SYMBOL drivers/iio/industrialio 0xd1c115b8 iio_buffer_store_enable +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xe91bf141 iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0xe9cb0567 iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x0a353f3c iio_triggered_buffer_setup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0xbe98dfbf iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/kfifo_buf 0xc5ed8bd1 iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/kfifo_buf 0xcf050506 iio_kfifo_free +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x62c02329 st_magn_common_remove +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x7009847a st_magn_common_probe +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x3d5fb27d st_press_common_probe +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0xdfe7119b st_press_common_remove +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x049ace30 rdma_addr_find_smac_by_sgid +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x04b8b6d7 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1c3c0ad3 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x2107de5f rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x273f4cca rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x33f2f06a rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x446fd7c9 rdma_addr_find_dmac_by_grh +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x6f6ee97c rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xf19ab26c rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x05b83454 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0b1b82a6 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x17a439c6 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1ca4d8a3 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x214c93b5 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x25e6a7ee ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x50aba663 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5310aa7e ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5ab9a084 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x884db49c ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x95073a39 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9d40aeee ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa0e6cb7e ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbf0156a8 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd99983c4 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe4589148 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xefb279f2 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06cd3d38 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x08b73ad7 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0cfcbf19 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x15d0a641 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b461502 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1f0b6f37 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x21972bac ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22647176 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22f3cf93 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x25639d89 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x284eb3d4 ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2b1624ce ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2feda14a ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3059d308 ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x34e34631 ib_destroy_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x363f8089 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4ae36092 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4c19b5a5 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4d68d75e ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4da76410 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x52542ab0 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x52d1a2c0 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x556deb6b ib_resolve_eth_l2_attrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5882963f ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5ca73944 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x60b3775e ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x65484e31 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x65d802ee ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6a07d7eb ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ac49e07 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ae93f2b ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6d5d1468 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e030e26 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x72f02aa0 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x74e3f920 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x79115311 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7aa8cc51 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7ddcb6cf ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x80a05e84 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x81d82547 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8723b62e ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x897cb44e ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8a26cedd ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8a964621 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8b02bb52 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8db0cfd8 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x91b62f7f ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x97fcc9e1 ib_create_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9862cbe9 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9b329675 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c4f3dca ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d67b533 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa090b967 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa432baf6 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa586211f rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac217df9 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xace2a1b9 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb134bc63 ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb329bd13 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb34e60cc ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb4291cfb ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc12d6bd2 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc220385d ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc2a31f4f ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc65e46f5 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcde91200 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd4b0fc32 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd69e9059 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd7ac8ba0 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdc37608a ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdcc546f4 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe0bb4bf7 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe59b5413 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe99c5346 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea9c4667 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeac02012 ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xebf037f0 ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf1f7520b ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf86110ad ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfb5eae5a ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x259c6a2f ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4445c00f ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x458a7557 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4b8136f8 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5fdab4d2 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x61c062f3 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa0c5a80e ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa0d50a99 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xbc8d239f ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe5e970a2 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xea4da164 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf46b05be ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x106f6e7c ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x1092c8a2 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x22f07253 ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x2fd0e42f ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x475d9bf4 ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x50dece7c ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc1955a3f ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xddc330e7 ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe3b1eabc ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf4f88a80 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf7673664 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x2569d757 ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x52a6ce77 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7971c00e ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe350f2aa ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x143b97dd iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x1b97aac9 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x23d58c2f iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x38356ac9 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x497fb0db iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x5020ca77 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x818575b7 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xed574e06 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0f54c391 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0f86e519 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x20e3520c rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x25127dbb rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x25b5786f rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x329c1648 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x51b4b86a rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5718c993 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5e377ed4 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x67d737ce rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6c01474c rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7b35fc68 rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7de1bea9 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8d622db8 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x915809a4 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x91d1e90e rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa4019183 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa6e893a9 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbb9cfde9 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc28ebb6a rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcb5bd6ba rdma_create_qp +EXPORT_SYMBOL drivers/input/gameport/gameport 0x1ea82d9d gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4b07199f gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x51ca52b3 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x64b0d77a gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x974ff252 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa4f8b3d9 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xaf6e92d0 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb161cdc7 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbda14ed9 __gameport_register_driver +EXPORT_SYMBOL drivers/input/input-polldev 0x1b1f1a3b input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x31f6319c input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x8673a953 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xbe9db3fc input_register_polled_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0x97e4c87f matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x0c580443 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x32329333 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x471d6ee6 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xf864e9aa ad714x_probe +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x9270672c cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/sparse-keymap 0x1cb29129 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x3ac2864c sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xb3de0fe3 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xb90482a1 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xd7c27771 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xfefcfc6b sparse_keymap_setup +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x2a7257fb ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xab54df71 ad7879_pm_ops +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x50eb138b amd_iommu_set_invalidate_ctx_cb +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x7f516c69 amd_iommu_set_invalid_ppr_cb +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0xab1bc340 amd_iommu_free_device +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0xb79c7af8 amd_iommu_init_device +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0xc9bd671f amd_iommu_bind_pasid +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0xe317ecd5 amd_iommu_unbind_pasid +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x0596282e detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x08d95e85 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x09dbbd3b attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1011dfb0 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1891e1bd capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x22830461 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x37c6208c capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7292ab34 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x72a25a72 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x871d0f4e capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9aa549c8 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe7f6974b capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfd552f7a capi_message2str +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x067b177b b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x14f91805 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x21ad70d8 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2757708a avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x33a6f359 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x550a92e6 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6137fa3b b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x81772e5c avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x86c7cace b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9f0107ef b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa1c72de4 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa491f319 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb022a6c1 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf493acdc b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf4ebeffa b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x10a10a16 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x244eb813 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x68f590c8 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xbb3e470b b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xdabb8546 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xe396f057 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xe513da2f b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xeb92451a b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xfc8870d3 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x7ab59853 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x03d4b2a0 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x524ae476 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x8754a6c7 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xafe6ee10 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x60c41b7c mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x76faa9db mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa7fd25d5 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x2d100401 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x441b3482 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x853e0638 isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x8d161771 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xa491703a isacsx_setup +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x5484d8b6 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xd3ba0cab register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xe6897f69 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2cf7db7e mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x31b58b7a bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x33c19048 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3f152e50 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x42ece6f8 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4fedcf22 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x56238a41 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x63e6e0de recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x730967b2 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7689cfa4 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x78a11921 mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7ace12f6 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8100c149 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a4e99fb mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8ed5a345 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x94d48835 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xaf58b253 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xba53393c mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbcc22553 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc34d836b mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd8a80b38 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe913a5f2 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xec09fa6b dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfc3823c5 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/bcache/bcache 0x0fc779fe __closure_lock +EXPORT_SYMBOL drivers/md/bcache/bcache 0x108ee3f9 closure_wait +EXPORT_SYMBOL drivers/md/bcache/bcache 0x310d30d0 closure_sync +EXPORT_SYMBOL drivers/md/bcache/bcache 0x384fa7dd closure_sub +EXPORT_SYMBOL drivers/md/bcache/bcache 0x7b65a7e3 closure_put +EXPORT_SYMBOL drivers/md/bcache/bcache 0xe3c17af1 __closure_wake_up +EXPORT_SYMBOL drivers/md/bcache/bcache 0xf6c927fd closure_trylock +EXPORT_SYMBOL drivers/md/dm-log 0x0c1ba537 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x3c25d64f dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0x5ab7da6b dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0x6f95157d dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x39fb3fdf dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x43ccbace dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x5b4eefd1 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0xa9668d56 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0xaa7db33c dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0xb476c420 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/raid456 0x28153bc8 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x1a98acb8 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x428c7fa2 flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x5423d130 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7c237728 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x897c41f4 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x8e993d78 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x92635b3f flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x983a8894 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x99350a42 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xbf9194bb flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xc95c73e8 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xd7de9b44 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xfb65df18 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x07d25b59 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x78faa5d2 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/common/cx2341x 0x166b19e6 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0x3db8be82 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x6d27c613 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7c60968d cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0xf13ea2b6 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0x1c32369d cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/tveeprom 0xbf0866df tveeprom_read +EXPORT_SYMBOL drivers/media/common/tveeprom 0xc83fd8ae tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0c304953 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0c651bb2 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x12d534d7 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x17523ce7 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1aa9a106 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2c1574e6 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x32e4e9c8 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3414f102 dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x398aab01 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x45c92bfa dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4a409493 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x56ff1b6c dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x64d6d7a9 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x695508e8 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6e2e35e8 dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6f992ad7 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x731d682c dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x887caf4f dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8900ef5c dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8d0df2a1 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9883076f dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa2a65e70 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa6c3b5a4 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xbad9d477 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xbc5c103c dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc23ef391 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc75afcf9 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xca4965f1 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd03c012d dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd6162768 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd68a099e timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xda335e9c dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe15697bd dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe1af72f0 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe28422d4 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe642f1b8 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xefcef46b dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf3acdaf5 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xff405471 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/a8293 0xeeb78e62 a8293_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9013 0xb31459d0 af9013_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9033 0xe3cc94f2 af9033_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0xc6c87b5d atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x0c9ab083 au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x1888ae14 au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x21300755 au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x3fd38c73 au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x6ffd3a6a au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xc5c472f6 au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xc678651f au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xd56281e8 au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xf2a10791 au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0xb2ffcaf8 au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0xfc0c6d26 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0xdd0f5c57 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0xfd2d8d50 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0x9977e1b9 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x59870070 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x7e242ee8 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x5ae1d9a0 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xbfb81451 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xc68ecbca cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0x92511253 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x7df6d4f7 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x7e92220d dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xb95a712b dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xd344d188 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xfdfe956b dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x1c1d51bf dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x3132f46a dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x39607b74 dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x4c7de049 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x4e7d4ff7 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x4f118c70 dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x74e6d38f dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7844fc0d dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7889b790 dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x82f99197 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x8f9ccec9 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xba6e0dd8 dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xc1913b61 dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xde9305b7 dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xdf3b44a1 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0x3ce9af88 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x07ed55c3 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x4184c45d dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x4e7de663 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x75f2abe0 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x91cc107f dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xa9ad0d34 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x2420acff dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x309df466 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x43f15bd4 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x4cd71d69 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x0a769a7b dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x46af2246 dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x48a6e21f dib7000p_get_agc_values +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x4ed296de dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x72276180 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x77fcdd9a dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x793b5ea2 dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x8494f36d dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x8741cc46 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xa3d911d8 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xb71b51ab dib7000p_set_agc1_min +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xcd7c2071 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xd105bdf9 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xdfffeca8 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xe1dc89af dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xfb7c9d1a dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x095329dc dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x11717989 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x179a52bb dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x1992fff4 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x1ca7c951 dib8090p_get_dc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x2a4be5fe dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x69afbbd2 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x7080320c dib8000_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x780a706b dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x79e69269 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x7dfe460f dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x849f8a8c dib8096p_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x88391611 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x9f046dc8 dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb0504720 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb34e63d5 dib8096p_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xc1629706 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xcd000933 dib8000_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xcf5b15ec dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x0625c64e dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x259ff4d3 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xe69a7fd0 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xf6670516 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xfd61799c dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0xa22a319f drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0xc8e95f33 drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0xb1635fc7 drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0x7d1b004b ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0xa40f9ff6 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x05dd5eef ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0xbccf257c isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0xa3beb387 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x1964fe2b isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/it913x-fe 0x41fbefd2 it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0x83fb0b87 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0x54faf346 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x907767a7 l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0x385e52ab lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0x9f5792c5 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x43b7d180 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x70d15c5b lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x2da0c43d lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x666ee125 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x9db867b1 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0x6f9918f3 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0x059ab93e mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0x0bf5e363 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x44244a69 mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x2cd8382e mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0x52d3114b nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x0f48574d nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0xd3a9fdac or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0x738c81fe or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x0ea471ce rtl2830_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x32e780a1 rtl2830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2832 0x16f5916f rtl2832_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0xb18999a0 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0xdb6e2f44 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x2c0e1dd3 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x66445b9a s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x4e7d826c s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x98471fbe si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp8870 0x95b60d92 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x0d2af449 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0x25eb1b91 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0x051a3e77 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0x2b9df4d9 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x11bb41cb stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0x77c922c4 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0x9baf8ea7 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x6f0f62a8 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0xb7cc4295 stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0x3611fa46 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x22d2b423 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x67a7af54 stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0xb7e5fa65 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0x459a1f58 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0x570837b1 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0xce863f84 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x58909268 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x313c2c2f tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0xe150bf3b tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10071 0x9c970ff9 tda10071_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x4ccb6126 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0x2e077cf5 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0xdc156b6a tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0x3f8ca87e tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0xb2c0d38f tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0x764b9b0d ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0x9f0bb53a tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x1864a699 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0x21128724 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0x14b1ea4b zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0x4b7c08d5 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x6578f453 zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x14ef6f4e flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x1566afe9 flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x63d59455 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x63fca62d flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x9d20e0ba flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xbf2967d9 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xfa83e725 flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x087dd544 bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x594eb367 bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xa1b5b8ec bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xea46eb7e bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x25339078 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x807629ee bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xc7213afe bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x2b2b89f7 write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x33809df7 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x6ea4838a dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x8635fef5 read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x8d4fcb5b rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x9624ac99 dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x9a1b8625 dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xdbffb1c9 dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xf223e233 dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0xb0d5a2ac dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x29220f2c cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x557d4fde cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x59acc4f1 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x96719401 cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xc0efe509 cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x64da484b altera_pid_feed_control +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xbf9107ae altera_hw_filt_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xc08fbbc8 altera_ci_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x555dab3b cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x6d3dbdf3 cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x96279cb7 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x9fe7f045 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xb4d37bb3 cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xc5d38741 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xf4d7b1c9 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x6995d31f vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0xdee3dbac vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x165fff66 cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x42ad07ea cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x80bc3814 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x935b3077 cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x2c60f9f5 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x3bf8ba60 cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x4b4ccee0 cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x61f32095 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x9eef6dd4 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xdd1ca4ca cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0cfc31d3 cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x1fa60230 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x23f009cf cx88_risc_stopper +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2a2c0aaf cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2b355f65 cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4216fc84 cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x49e976a6 cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4def28ea cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x58ee4280 cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x5f646818 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x614e58b9 cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6b047352 cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x9bdadad3 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xaa948186 cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xab2e65f0 cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xb3c74c88 cx88_free_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xbc2a5f4b cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xbd0e377b cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xca84e8ec cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xd2c63875 cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xdacd06a6 cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xfa6b1306 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xff69c048 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x0a5dcb94 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x17318e4d ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x24cd56b7 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x269493a7 ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x2c6d5811 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x4465e390 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x52b59cac ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x5524c6c0 ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x68d4e8b0 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6938713b ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6fbaeac8 ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x72b2cfcd ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x895ed5a3 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xb1211258 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xd2c0736b ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xd954aa13 ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xded47f40 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x4fb77f6c saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x73039031 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x7bbc90fb saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x897f1c77 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x8a4041e1 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x9979407b saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x9a98ec7a saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x9e87c06d saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xb3b75718 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xcce39788 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xd474adc8 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xf2d570d6 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xf95871ad saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xef18a848 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x689efc26 videocodec_unregister +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x886b8d0e videocodec_detach +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x8c95fc3e videocodec_attach +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0xd76bd998 videocodec_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x039c7ee5 soc_camera_unlock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x4448e237 soc_camera_host_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x4468a704 soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x5faddabc soc_camera_lock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x6ab605d4 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x80a28262 soc_camera_power_init +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x9da429a9 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x9fc4c5aa soc_camera_power_on +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xafd7de62 soc_camera_power_off +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x25c52d97 soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x2863728e soc_mbus_image_size +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x5f3e3558 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xa9546115 soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xfe2c3a07 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x2f9dfd4a soc_camera_calc_client_output +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xb794bef0 soc_camera_client_scale +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xd778b0ab soc_camera_client_g_rect +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xdc94736d soc_camera_client_s_crop +EXPORT_SYMBOL drivers/media/radio/tea575x 0x32ceb097 snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/radio/tea575x 0x7e80caf8 snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0xc0c25769 snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0xc5908a9b snd_tea575x_init +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04ce68bd lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x1a4507ec lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x213f35e5 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x282ccc38 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x2daa6b5c lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x3fce3a7a lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x76b15da7 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x822f9992 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/rc-core 0xcb867cef ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0xf9043173 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/tuners/e4000 0x7355e046 e4000_attach +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x5417ab2b fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x91ca48a4 fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x3f708eed fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x63e9a859 fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xb0cf67d5 fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/fc2580 0xaa75a16f fc2580_attach +EXPORT_SYMBOL drivers/media/tuners/max2165 0x11a91a0a max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x98698771 mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0x535b0536 mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0x78186d72 mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x1a46088a mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x98a893b8 mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0xf7a92b1c qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18212 0xed554747 tda18212_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0x11fbdb79 tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tua9001 0x7327f4c5 tua9001_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0xe63ad5e9 xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/tuner_it913x 0x1cca4b9a it913x_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x216968da xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0xbd134037 xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x297b7e2d cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x3c9d7302 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x0ad03411 dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x0f0fc503 dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x1df0f43a dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x2d5084ba dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x9825495e dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xbe5c320d dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xddeaf9f9 dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xe3f30814 dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xe945272d dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x38bd96d9 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x40463693 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x7310a067 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x7d6a2ec1 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x8cab5b04 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xb561b49d dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xe517a5c6 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x6243dcb7 af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x1fc012ac dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x2da7a2a0 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x39be3817 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x4c72fbac dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5ca82de1 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x61a6c7e3 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x705dcfc4 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x770062a1 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xbd252e63 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xe37752f1 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xe7ad98bc dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xcc037c90 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xe8ea5a6b em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x31c44479 gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x59d8a81f gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x6547d939 gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x672851d5 gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x869d3c7e gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x933d1cf9 gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xb75b15c0 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xd7006bbc gspca_resume +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x393884ea tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x7f030ecb tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xc982e405 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0xd505da7c ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0xfec2dbb6 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x4adaf0f3 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x53c9394f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x5f96a661 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0xabe27502 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x3ff61cc1 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x5d369a90 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xad421370 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x27e4b79e videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xac1a83d1 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xbeeb566b videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xc7c80c8d videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xe1d4c14d videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xfd42b178 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf2-core 0x909175ca vb2_querybuf +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0254398a __v4l2_clk_register_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x07f9a5ca v4l2_clk_disable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x088c99e5 video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x09c8ccca v4l2_clk_get +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0df4637a video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0e9212f6 v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x109d9b3b v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x10a98188 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16e337e7 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1825ddf1 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x234d3311 v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x23656037 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x256bc85f video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2b05c721 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x35d8a959 v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x36847d11 v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3722dcd9 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3818cf20 video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3d2f3518 v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x418d1826 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x420018ae v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x45dc9d38 v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4bdac127 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5151ef48 v4l2_clk_put +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x55c2c348 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x592f01ae v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5c23cc3b v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5d1f9135 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x600ed06f v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x653f17c0 v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x694d3eee v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6c2ca4a9 video_usercopy +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6c7c8822 v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6fccf807 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7012804c v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x71da46f2 __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x73b6b6f5 v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7526bed3 v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x76720e1e video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x778654f1 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x78181404 v4l2_clk_unregister_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7ba416aa v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7db65d34 v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x805ae9a2 v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x818b80f3 v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8227bc4a v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8a4e9aca v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x92e8126f v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9972f9c9 v4l2_async_notifier_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9b838826 video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb09b4145 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb7759751 v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbac4a225 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc12cf8f8 v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc906a0a2 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd3e11583 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd5e7c77d v4l2_clk_enable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd7bf6a41 v4l2_clk_set_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdabd36e9 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe04dbe11 v4l2_async_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe4d5e5c2 v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe4fa02a6 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6764ecf v4l2_clk_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6fce6f2 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xeb4093e1 v4l2_clk_get_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xebf83d4c v4l2_clk_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xed7b5b95 v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf2919854 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf6ee12cb v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf9ebbd0d v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1291a9b6 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1d8404c6 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x308ccbc9 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x3bd6c075 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4c40270f memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x50ce4073 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x510371ce memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x683951a1 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb08bf218 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xcfc6f3fc memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xdc07e67e memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe5879954 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfc2ceda7 memstick_new_req +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x04af2cf7 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x075aa131 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x08457baa mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x104fdd00 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x26dd5be3 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2a7e8928 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4bca1371 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x54fd9d97 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x606e64e2 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x64d12173 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x749cd302 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7db0c9ab mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x80f50466 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x840df936 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x85d2347e mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9b665a64 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9d487407 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9da3ffdc mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa3fa98ef mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa69b0804 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xaea68537 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb047a978 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc40ab663 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc61f55fe mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcb3aeed6 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd541f171 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf18bc12c mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf2d758c3 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf723a46f mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0dc6ab5d mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0e81b746 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x386e4d9b mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3b50961c mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3d4024f6 mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x55a3c059 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x65515eb2 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x687e46cf mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6c122602 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6c1cbfc8 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x75de4cbb mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8628389c mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x87e72f7b mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x93bbcaa4 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x99b591d2 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xaa86d9a6 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb6ab45d1 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbd2094af mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbe5568ea mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbf7cc28b mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbfdcf80c mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd5bb151e mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xda194cbb mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xde47cc43 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xecdaa1eb mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf824410d mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfe51feeb mptscsih_bios_param +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0966519c i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0dc60f97 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1f455fc5 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x208aaa49 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x24b29615 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x293d0147 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x39dbdaf4 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3bd192c0 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x42466562 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x475edbdc i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x54484668 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5e62e4ff i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x89e6e546 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8a4b42f9 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8c5e8099 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa4db0926 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c98cca i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc434346a i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xee1b2635 i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf705e045 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfdda659a i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfe21f9d0 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/mfd/cros_ec 0x3e012cc4 cros_ec_prepare_tx +EXPORT_SYMBOL drivers/mfd/cros_ec 0x45ac71c5 cros_ec_suspend +EXPORT_SYMBOL drivers/mfd/cros_ec 0x4942f2da cros_ec_resume +EXPORT_SYMBOL drivers/mfd/cros_ec 0x6242f276 cros_ec_register +EXPORT_SYMBOL drivers/mfd/cros_ec 0xc5595388 cros_ec_remove +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xa89705da pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xe6734321 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0ac93580 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0f6cdfd5 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x18b36e3c mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x52570044 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x5a9386d9 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x62e0a98a mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x761a065d mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x87a92c0a mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x881b56a1 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8e219590 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xad7b97cf mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb97b160a mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xf67b8716 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/tps6105x 0x359478e6 tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps6105x 0x4644e320 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x530f5607 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x44516e30 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xff1ad72a ad_dpot_remove +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x1746ab2d altera_init +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x1d875b9b ssc_request +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x846eda8e ssc_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x0e9755b9 pwm_channel_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5a8b82f9 pwm_channel_handler +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5d5c2951 pwm_clk_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x6a5e1f70 pwm_channel_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x73330c97 pwm_clk_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0xeb7f2c6f __pwm_channel_onoff +EXPORT_SYMBOL drivers/misc/c2port/core 0x26ff9bc7 c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0x28591642 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/ioc4 0x1b8cc445 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x6ca0f5d4 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x160bc777 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x2525f027 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x4156ddfd tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x563ecd2c tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x5bdb5e24 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x75c0b507 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x8dea88af tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xb43fe27b tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0xbe8ed12a tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xcdd839bf tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xdb63af4d tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xfeecd4a6 tifm_free_adapter +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x56acc0f3 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x0d2fc535 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x77589a68 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xe70d18f3 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x3d242bea register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x4d77d49f do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x5b00d44e map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x8fc98ade unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x67973c03 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x60995a42 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x9405dcb1 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x29a92bbf mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtd 0x6f98dacf mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/denali 0x28866102 denali_init +EXPORT_SYMBOL drivers/mtd/nand/denali 0xa8db7e7e denali_remove +EXPORT_SYMBOL drivers/mtd/nand/nand 0x0b05c4b9 nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0x31cb64be nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x32684ee8 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x3b1eaeba nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0x8bd2fef1 nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0xc3585090 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x97b548d4 nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xcf2e0e44 nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xfa657254 nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x2780531c nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xf7b90f78 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x57a31e57 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x85eaf8b2 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x9afa51df flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xba84fca8 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xd40a5aee onenand_addr +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x00adf3f8 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x236035d9 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4331f38c alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x530c7f97 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5ed2bf95 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x67244c25 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7601220e arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa364c8d1 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd9cd3fb7 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf0319b77 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x25f6ba21 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x72701960 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x88a372cc com20020_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1695bfb7 NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x2e450d14 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x3f91695f ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x4d9d7faf ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x62243a2b ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x65fe48d1 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x6965c59c __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7c4f7883 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa01835f1 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xbf22abc2 ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0xa2129d01 cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x04d8612f t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0c200330 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x26164365 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x29265f76 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3c96745e cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5077f498 t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6b88341f cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x945864aa cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x94bedf28 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa85b1412 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xaab3d98e cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc9966cdd dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe9236524 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe9f817f7 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf3c57b3e cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xfdc536dc t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1005e960 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x159e53bd cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x341f4035 cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x34e7b904 cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x36281de2 cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x374aed77 cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x40e19e61 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4d5f7673 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x58bf015a cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x655a3d23 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6589b475 cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x67408ceb cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x72d4c3ae cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8aabbbf0 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x91fac26c cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9cf3e7a8 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb01160de cxgb4_enable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb3c7d18a cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb95480eb cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc19cefbd cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc78cb1f4 cxgb4_disable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xda85328b cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe1577c05 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe712a5b1 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf13aa4c1 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf64e79ee cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf76474d1 cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfff78178 cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x0e712340 vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x4f650da7 vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x627b773a vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x64425571 enic_api_devcmd_proxy_by_index +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x9196d804 vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xb7bdc7cc vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x246dd3a2 be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x75be008b be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xbab62e22 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x09dc3ac7 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0dadba4d mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4798898c mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b18ba07 mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x555f7b9b mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5d78eb3f mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f690872 mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60d95763 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7584f764 mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7db96561 mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7eca4322 mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8b4d1dcc mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x907ebc35 set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b4f435a mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9ed051ad mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9f2f0fad mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xab7adfbc mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd2146d7d mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd43332e2 mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd98fe4f3 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdefd2054 mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe60b9c9c mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf0aa2e8d mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf10078d1 mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf79643cb mlx4_set_stats_bitmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd02bb2b mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0a0a4851 mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x188b9da6 mlx5_cmd_free_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x24b07294 mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2942cb85 mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x322d73d1 mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x366a16b9 mlx5_dev_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5fdb5eff mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6a8739a3 mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7919b108 mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a263556 mlx5_core_query_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x82100f34 mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x849015df mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8b05c8d0 mlx5_cmd_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8d2a282c mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x95af8792 mlx5_core_destroy_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9dcfd66d mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa1de45fa mlx5_cmd_comp_handler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa2f051f5 mlx5_core_arm_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa33b950d mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaea934c9 mlx5_cmd_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb7f7c00a mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbf010b50 mlx5_core_get_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc7391d35 mlx5_core_create_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc9fa631c mlx5_cmd_alloc_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd76ca99f mlx5_core_dump_fill_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe4daaeac mlx5_dev_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf6869b08 mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x61f53bb5 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x701441d2 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xbbf06e00 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xcae1259c hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xdd9f967e hdlcdrv_register +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x04eb7da9 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1dfa0eb6 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1e45af46 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x351feaaf sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x45b707a0 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7655225d sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x85d11aa5 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd931a392 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xda5d4905 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf8125f48 sirdev_raw_read +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mdio 0xddc98749 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mii 0x1c42168d mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x44442234 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x6d726387 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x8ccc79a6 mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x904a6b9d mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0xbb5243bc mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xda066007 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0xfffb384c mii_check_gmii_support +EXPORT_SYMBOL drivers/net/ppp/pppox 0x1669789e pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0x7eb561bf register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xa9ab0c13 pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x6f98fdad sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x0739429c team_options_register +EXPORT_SYMBOL drivers/net/team/team 0x0df404f5 team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0x1e4ed86b team_mode_register +EXPORT_SYMBOL drivers/net/team/team 0x65d781a3 team_options_unregister +EXPORT_SYMBOL drivers/net/team/team 0xcf6abc2c team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0xdbe22f47 team_option_inst_set_change +EXPORT_SYMBOL drivers/net/team/team 0xde78393c team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0xe72a598b team_options_change_check +EXPORT_SYMBOL drivers/net/usb/usbnet 0x1b1152d9 usbnet_manage_power +EXPORT_SYMBOL drivers/net/usb/usbnet 0x6e2db9d5 usbnet_link_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0xfa329564 usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/wan/hdlc 0x386d4c17 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x4e6b9493 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x535ce600 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5d1f6402 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x9fa2be9d alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa8af0df1 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0xae14d001 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb713e8b5 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xbc4a1a27 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xbca3ee18 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd90d8fce unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x6b93f63d i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x24c223f4 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x6d8ae6f9 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x8351889e reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0e841a16 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x121c5a98 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x30f95868 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x53358ce3 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x583ae9fc dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x5e469527 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6b204d97 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x87c185f7 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x8aa6d063 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb752f441 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb8b3f522 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf41ed12a ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x01152901 ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x385dd1c8 ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x3bcc4441 ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x66bb0976 ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8246be6c ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x895f9dc2 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaed87c2d ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf096710 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xe7fbca4d ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0199ec46 ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x24bd1718 ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x25cf94f4 ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x27cf1694 ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4bcb61fc ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4c6ddcb4 ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4d6b2466 ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4e1380ee ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x6b99467e ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xabc73e6b ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xbc1e3c11 ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xd27a43f3 ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xe4ddad51 ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xf062bda8 ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x3b597583 ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x5f785c43 ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x91fc76f5 ath9k_hw_wow_event_to_string +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0xa88a3d55 ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x10b5e000 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3db64c3a ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x95b4280f ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa3339ce7 ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x01c2d69c ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x043288ea ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x082b25ff ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09da3c05 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a01aa2a ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b3f94ad ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ed480fd ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x12c674fb ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17182b74 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17b80916 ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1d1aeb9b ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2278112b ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x23147cad ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2327ac4e ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x29a0acc8 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x29b41e46 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x29f72730 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ba91330 ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d332bc8 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31611941 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b38989c ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c854245 ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d31daa2 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3de8b683 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e581e8b ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x40d5fc94 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x42485bae ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4783094f ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x47afa8d5 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4dcd0488 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x506b9465 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x516498ea ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5255e07f ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x540d3ee5 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b09bf3f ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b297fc9 ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b52e10e ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5cbafd89 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ce325fe ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5f03f620 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x615ef6e7 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x68ee5e00 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x692df1fb ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x69a11615 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6c93a8fa ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e4af160 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x774f64ab ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x779f8a9c ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x78893846 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f8253bb ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x842647ec ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x869dc30d ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x86a4bc86 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8b6aa993 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c2e7489 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8e522134 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8fcd7f10 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x90c329f1 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x910188ea ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9a572032 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9cb03ce9 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9ccc0215 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9dfbb373 ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa6fd73f4 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa9b814c3 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa9d54be8 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaa8a8546 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad9628dc ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1a1b848 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1a928c8 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb7814bb6 ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb860dff2 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb870eab8 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb93c11e3 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xba55ec1e ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc03fbf7d ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc122c06c ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2bc2a8e ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5619d0d ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc924aaf3 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc9c04d9f ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca67b4a3 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcce83c66 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcde10af6 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcff0cce3 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd0aab24f ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd298e6ec ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd81e7e98 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb97ada6 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe0a32a45 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8c55c65 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea1b4e45 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeaf62930 ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf085ad57 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf4dcbd70 ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5925d0b ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5d5b2c4 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xffecd1f1 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/atmel 0x792d1b77 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xea5ac24e atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0xf11dbed8 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x3c90cb67 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0xa3b44dc4 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x0d13433a brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x17387791 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x29aa0e9b brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2dc227f8 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x38e702c5 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4c62ee3d brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x6727a4bb brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x74a10600 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xa371cfe2 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xa85df610 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xab24d4d4 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xad1a0bad brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xdef0419f brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xff6c7758 brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x014ca9d0 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0b52771d hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3a967316 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x45ac04a3 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x51d637cf hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x53db251a hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5e4655ff hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6514e501 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x68c067a4 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x778d98e9 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x85057ddd hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x895337fc hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8e1e9f39 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x91879d36 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x97c13f0e hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9c92477a hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xaa86e712 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xaf8d6ee0 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc29a51d7 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc9a3d68c hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcdf95068 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd1277737 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd610207a hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe008c7c6 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf94a678c hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x08a3aed0 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0ecb0865 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0fbb2745 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1866b6b1 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1952552f libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x304a8143 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x315291fe libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x318697ba libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3353d270 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x47398cb5 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x571a19c3 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x58bf0844 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5adf18fe libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x648bb25e libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x74cd983d libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa440539d libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbdb1e048 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc2e35f5e libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xda504107 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe6166e62 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfc3df35e libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x05b96ad6 _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0887ad32 il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0a3c896f il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0bb763d8 il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0e93d974 il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0e98dbc6 il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x10657bc0 il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x12339e8c il_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1560ccd1 il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1684bc9a il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1a87abad il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1c87e31c il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1db4268a il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x211cb1c7 il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x212ebb18 il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x249590ad il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x256b46fa il_set_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2c692cfc il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x38db6cd0 il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3bbad7e7 il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3c00a394 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3ea1822b il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4256ffbd il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4260d2f0 il_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x42c973f0 il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x44b1dbb3 il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x478aef21 il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x478e8202 il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x47cf49e2 il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4aa39103 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x517708d4 il_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x51a3b166 il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x51d3255e il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x564c6740 il_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5b520468 _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5daa2851 il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5fbe3c18 il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x63d92ed4 il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x64ceb42b il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x64e4bbdb il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6584dbb1 il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x68a1acdb il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6b991822 il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x74e7fcf5 il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7656d06d il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x79e72160 il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7aa77f1d il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7adcafab il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7b528887 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7c2757a9 il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7c657c99 il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7d6f8504 il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7feb1bbc il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8952fb6f il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x897549fd il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8979b1fe il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8c1da91b il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x907274f5 il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9873cd8c il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x996164d1 il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9aa9e6b3 il_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9dd1873f il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9e72139d il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa35284b9 il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xac835847 il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xafff63c9 il_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb767f39c il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb7bd33ff il_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb80e891c il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb8439292 il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbc4914d2 il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbc4b197c il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc08630de il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc39cf12c il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc3b9f591 il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc4aa96d6 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc6950b16 il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc7dc2b8f il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcdbd2a37 il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcdeaebd6 il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd40d2ef5 il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd6c1f4ef il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd8e710b1 il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdb8264b4 il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdb912de8 il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdba0d79d il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdcb1d9a8 il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xddbe4936 il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe0a20e94 il_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe1772420 il_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe1c2ec80 il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe249d67a il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe287e3b6 il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe435493a il_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe45c96ec il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe61674e2 il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe90d33c2 il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xec55d9e3 il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xef2984a7 il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf0a75478 il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf0deee69 il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf501278b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf75cdf41 il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf9cc2d33 il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x08dd8699 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0c50fa2b __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x1ecc5465 __tracepoint_iwlwifi_err +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x2f7b7e55 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x3b9d00d6 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x675bcb86 __tracepoint_iwlwifi_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x779dd6f5 __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x85c1bb84 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x8de37664 __tracepoint_iwlwifi_dbg +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x954eb7a7 __tracepoint_iwlwifi_crit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x963a6f8a __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xb8f7026f __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xe2dcc8de __tracepoint_iwlwifi_warn +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xf9ec6bdd __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x09ab8798 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x25c50922 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x33dec1fb orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4c295e34 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x53d2e37c orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x56c3012b orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5848c1e8 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb88813c0 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbd3230b7 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc3b5f059 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xce20956c orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd3aaddb8 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdb0cbd65 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xecf1b5bf free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xefa7c5af orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf268d6f7 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf7ea6b0d alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/btcoexist/btcoexist 0x2fc8d3ad rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1468af94 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1995fd20 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1d0715f2 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2b397348 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x32c57bef rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x455220ed rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4c412d09 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x508730ca rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5e4bd539 _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x681ea4d6 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6da67318 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6ece1f53 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7029d000 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x726b240d rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x74a8430c _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x814828a7 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x85fc2ad2 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x910a9a66 rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x98a92677 _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x98e026cb _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9dce02d2 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9ed3c632 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa1c0e539 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa64da84d rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa775e2d6 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa7c49a13 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xae923f09 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb76dba9d rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbfa71ad9 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc2d81fd5 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xca808440 _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcd709bc0 _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcf280b00 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe4c74977 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe63c1aae _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe6af206b rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xeacad3b7 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xefaa38b3 rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf867d269 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf9a12d1c rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xffd0ee02 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x20d0ca19 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x3c311d72 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x93d01cfe rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0xcab2c79f rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x01c8d741 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x957e9b91 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xa175bcf1 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xb2b12f00 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0632b286 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1009e5ce rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1f7ac63b rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x207fbb70 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3436c1db rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3681f6de rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x45562049 rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4f040786 rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x52116f48 rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x53df337f rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x570b1190 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x714c007a rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x739451a4 rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7838856c rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79188a02 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7f035e82 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x81c48709 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa97d094f efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb17d1ea1 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb4595deb rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd21da444 rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe7703ba0 rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x78a41121 wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x7b40b608 wlcore_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xa19d9e01 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xe97b0143 wl1271_free_tx_id +EXPORT_SYMBOL drivers/nfc/microread/microread 0x266b2305 microread_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0x2adb9b16 microread_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x3761cbbc pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xe29b4c08 pn544_hci_remove +EXPORT_SYMBOL drivers/parport/parport 0x1988dd88 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x1acaf50c parport_read +EXPORT_SYMBOL drivers/parport/parport 0x1edfd445 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x2817c68c parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x2dfaefdb parport_release +EXPORT_SYMBOL drivers/parport/parport 0x3bbc4bb4 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x3dc4aee1 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x4467f9c8 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x45dc871e parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x4c91ea1c parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x5cbec2af parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x62c6d6b5 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x638e30dc parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x6def6414 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x79e8500d parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x8fd215fe parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x96d2c282 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xa612fb71 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xa8944ef0 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xa982aa06 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xabae87a6 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xb316f590 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xcdc76e80 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xd32a601a parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xdae63da4 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xe7194c8e parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xed791e62 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xef3c7436 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xf4520e65 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xf947d881 parport_register_device +EXPORT_SYMBOL drivers/parport/parport_pc 0x98b5a9ef parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xe0653553 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x07b14f85 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x11f3b5fd pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1f0353f4 pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3d1f1d9e pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5871c079 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5f015a12 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6660b1f0 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6c58a91c pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6e737848 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8123f52a pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x826bdd70 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8acdca18 pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9997ccd9 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9d20b483 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb968e861 pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcb7fe266 pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd19cb418 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe0f97669 __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf955dee7 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0d86e4a8 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x19c1c5bc pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x43d44ae0 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x584c9053 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x60703049 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x63bd2721 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7aafda95 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8a55ce8a pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8bd470a1 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xeb4ddb97 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xfe3edfb8 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xbfede9f2 pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xd3cc86dd pccard_nonstatic_ops +EXPORT_SYMBOL drivers/platform/x86/intel_ips 0xd32b0b5b i915_bdw_enabled +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x2cc3af1b pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0x619d037a pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0xa250b63c pps_lookup_dev +EXPORT_SYMBOL drivers/pps/pps_core 0xe45f6c5d pps_unregister_source +EXPORT_SYMBOL drivers/ptp/ptp 0x35317ebe ptp_clock_register +EXPORT_SYMBOL drivers/ptp/ptp 0x63d3da87 ptp_clock_event +EXPORT_SYMBOL drivers/ptp/ptp 0x8bc54099 ptp_clock_unregister +EXPORT_SYMBOL drivers/ptp/ptp 0x96d2600b ptp_clock_index +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x19df0001 pch_ch_event_write +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x54220f16 pch_ch_control_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x5483f37b pch_set_station_address +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x55d0283d pch_ch_event_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x86a9dfae pch_ch_control_write +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x9e7d613e pch_rx_snap_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xb39f5c2c pch_src_uuid_lo_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xc64ad641 pch_src_uuid_hi_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xdabee747 pch_tx_snap_read +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x04b0e60c rproc_boot +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x22001b94 rproc_del +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x386941c4 rproc_da_to_va +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x3dc02499 rproc_add +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x4d56f8e9 rproc_shutdown +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x69138b68 rproc_put +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x8a4d9f27 rproc_vq_interrupt +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xf0a2557d rproc_report_crash +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xf3d5aa2b rproc_alloc +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0530d3f9 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2365fa25 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x328e78d0 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x3789e50b fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x3d297895 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x47f474c4 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x58c5b6f7 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x814742f0 fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb76941bd fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xbc06a136 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xbc08fae1 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xfb14c475 fcoe_ctlr_destroy_store +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x01541ea1 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x03f0ff63 fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0b04e7d8 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0d2ca990 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0f8575dd fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x12e84bd8 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1652e359 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x16cc46c3 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x183d6fd5 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1a50f671 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x20d17150 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x23a5298e fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2490ee9a fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x26d17254 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2f39d5b0 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x32891e9a fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3336b536 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3726ee23 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x390d7fee fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x48cc00be fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c5eee93 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4d1d7101 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4da8f8be fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5413fe1a fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5503aae8 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5db03c03 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6c823326 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x76294271 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x85cd7303 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x85d06e68 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x97faf9e4 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9bfbbde6 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa270023c fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa8926786 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaefe9b29 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaf7b843a fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb62bc565 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb8b2052d libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbdf6e46a fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc4284c5d fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc753d87e fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd060e2be fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd5ec78e1 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd92fe82a fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd9566606 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xda51b635 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe326e349 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe825349e fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf530f0c3 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc471e52 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfd287c81 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xff5f705a fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x34dde3b3 sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x6c6a56db sas_wait_eh +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x9e64081a sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xd797e3fa sas_resume_ha +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xc3322b59 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x022e84fe osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x051f308e osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0df866b6 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0e0e817d osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x10b93302 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2745b499 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2a576262 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2deaa406 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2f9e7c2b osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2fe43b5d osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x314789ab osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x321b227b osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x34332bc2 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x35574670 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x366dd0d7 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x42333b53 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x42e47d17 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4bd7837e osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4c29d291 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x52b5b934 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x531836e0 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x626d2505 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7ccd980b osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x96ad0dc0 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9978354e osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xaac5952c osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbf71d908 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc0cd1c82 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcb4a3cf4 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcc919051 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd1a5c0b5 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd62260f6 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xda1d7007 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf161f13c osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfae75756 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfd14dd0c osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/osd 0x23368ae1 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x3da679f3 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x3dba3965 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xa2943453 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xb397ebca osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xe3012a3f osduld_put_device +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x08e793ed qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x12efdd9a qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x18e8b5c2 qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x1b2b8092 qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x3b332412 qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x52f79129 qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x59157d4c qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x611cfaca qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x87c8cef7 qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xc5fcc5ca qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xf2837a10 qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x24049d2c qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x6c13fc46 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc9a3953d qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe2a14552 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xec78d3a2 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xedc4fbfe qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x6778343b raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xc1245a6b raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xf52198c8 raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x20831dd8 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3f32273e fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x566eeb4d fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6a525270 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7ad7933c fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x80d59d23 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x86ba70d3 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x92b6a761 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9e30e1a9 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xad9afd75 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb56af9e1 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc77d7b07 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc9bbff3b scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x02da2a71 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x13bb0178 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x14b43403 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x14f8a092 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1b3e78fa scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1cce0390 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1ebc7cc9 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x29bedb31 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x38128bb2 sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3fe6799d scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4700355f sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4e5aa785 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6d59190b sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x78d0be60 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8518fa8e sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9206de61 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x936b4995 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb3d0dd67 sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xba8e01c3 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbb833bfb sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc0171478 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc2abf106 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd7f38c4e sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xda5fd52b sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdc48f744 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xec6f6829 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf15f295a sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf18af75c sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x0315b6fb srp_rport_put +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xad9e5eb3 srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xae31561c srp_rport_get +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xb41534a5 srp_reconnect_rport +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0xb67abf8a ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0xbecd5f82 ufshcd_runtime_idle +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0xd1e18414 ufshcd_runtime_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x0679f699 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x1c35cf3f ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x23a919ca ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x36148272 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x3af15ed9 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x6097bbe5 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x62ecc0c8 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x7177c142 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x739a526f ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x754c49bf ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x77a3ab68 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x98165a12 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xa46875b1 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xaf293880 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xb07e9f93 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xba1d1f50 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd91c12da ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0xece90886 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xf7c0ef01 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xfafe2b1c ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xfbf1d575 ssb_bus_resume +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0x30f4486a fwtty_port_put +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0xe00f60af fwtty_port_get +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x018a247c adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xff4fc9a4 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x65e405ac ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x6d3f1123 ade7854_probe +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0264d470 lnet_extract_iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x03453c1d lnet_connect +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0363b57a lnet_copy_iov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0bce7eef lnet_counters_get +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1366b7ac LNetSetLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x19670622 LNetNIInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1b191752 lnet_msgtyp2str +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1ceec8a0 lnet_kiov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1fe16fd5 LNetGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x20426b99 lnet_unregister_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x204b8151 lnet_counters_reset +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2aa9953d lnet_cpt_of_nid +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2ac93e90 lnet_connect_console_error +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x30e0242a lnet_set_ip_niaddr +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x33202a6c LNetGetId +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3a4b90bb lnet_copy_kiov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3c779ee0 LNetPut +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3f4f5b46 LNetNIFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x473ad33b LNetDist +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x556a95b5 lnet_set_reply_msg_len +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5811a721 LNetInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x58a1ca89 LNetMDUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5fee352c lnet_acceptor_timeout +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x61f784b2 LNetClearLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x64cdea3a LNetCtl +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x674637ce lnet_copy_iov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x6e2cf6d9 lnet_notify +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x6f7be171 LNetEQGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x722c76e5 LNetMDAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x77b90676 lnet_register_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x7d59a7fe LNetMEInsert +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8277dc78 lnet_parse +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x854ab844 LNetEQWait +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8a3064f2 LNetSetAsync +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x9de986d3 LNetEQAlloc +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa3d61f8d lnet_iov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa8c2760b LNetFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa414970 LNetMEUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa9b477e LNetMDBind +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb75f7953 LNetEQFree +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xba5566d2 lnet_acceptor_port +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xbd3aead4 lnet_finalize +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xbf0760a2 LNetMEAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xc37f2b73 lnet_create_reply_msg +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xd34bd7b9 the_lnet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xd595ec6e lnet_net2ni +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xd673cf01 lnet_copy_kiov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xedcaff6b lnet_extract_kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xf1b316bf LNetSnprintHandle +EXPORT_SYMBOL drivers/staging/lustre/lnet/selftest/lnet_selftest 0x078db139 lstcon_ioctl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x1c4bb5f9 LU_OBF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x1d8a4e1e seq_client_get_seq +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x331896f0 seq_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x375e6f8d LUSTRE_BFL_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x66ff8e06 seq_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x8b035fc5 seq_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xae61cff5 LU_DOT_LUSTRE_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xbcf4a80f client_fid_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xc018c9c3 client_fid_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xc997a02f LUSTRE_SEQ_SPACE_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xe5c02e47 seq_client_alloc_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xecee2727 LUSTRE_SEQ_ZERO_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x0a34851b fld_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x2ce0dc76 fld_client_proc_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x4e037225 fld_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x8e12218a fld_client_del_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x8eda5f37 fld_client_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xa1eddcd5 fld_client_add_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xaf5d60e9 fld_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x000c507f libcfs_debug_dumplog +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x01db5172 cfs_percpt_atomic_summary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x03387ca6 cfs_curproc_groups_nr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x04d3ce6a lbug_with_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x069f9bb2 cfs_wi_schedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x06acbefe cfs_hash_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x06fe91c5 libcfs_sock_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x07349226 libcfs_sock_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x08ada613 libcfs_console_backoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0b4b1546 libcfs_lnd2modname +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0de6c369 cfs_cap_lower +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0eb410a2 cfs_percpt_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0ee3a27c cfs_hash_for_each_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0f5eff79 cfs_percpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1059cbd6 cfs_hash_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12426266 libcfs_run_lbug_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x127b745d cfs_hash_dual_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12cd873d cfs_cpt_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x150034e5 cfs_hash_dual_bd_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x162e0511 upcall_cache_flush_idle +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x16605f1c cfs_hash_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x16bef72c cfs_hash_rehash_cancel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1756d138 cfs_hash_for_each_nolock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x17ac7833 libcfs_deregister_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1a60d439 cfs_parse_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1d5a3928 cfs_timer_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2143ceb7 cfs_cpt_table_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x24f39469 cfs_cpt_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2663147a __cfs_fail_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x26b80c60 cfs_cpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x27b6d3ba cfs_ip_addr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x29bf925f cfs_hash_bd_del_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2a876a64 cfs_hash_size_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2b1e0458 cfs_get_environ +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2da017ea cfs_cpt_set_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2db9d08f cfs_hash_dual_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2dbe54b2 cfs_trimwhite +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x30986343 cfs_range_expr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x30f7eff6 upcall_cache_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x314d752a cfs_hash_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x31a4294d cfs_cpt_unset_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x31fc5082 cfs_crypto_hash_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x32cd9771 upcall_cache_get_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x346b9d41 cfs_cpt_weight +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x361e82d4 cfs_firststr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x377f93fb cfs_srand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x389ca502 libcfs_debug_mb +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x39fdcd2b libcfs_debug_set_level +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3b7129eb cfs_hash_hlist_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3c1285bd libcfs_subsystem_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3d2cce75 cfs_cpt_set_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3d5e6098 cfs_race_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3e3ae0da cfs_hash_bd_peek_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ea730c0 cfs_gettok +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ef0d90c libcfs_kkuc_group_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3fe13eaa cfs_cpt_unset_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x411db754 cfs_crypto_hash_final +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x414885b4 cfs_crypto_hash_update_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x41ab33a1 libcfs_ipif_free_enumeration +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44839bbb cfs_rand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44f07cfc cfs_pause +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x47fdb4d1 cfs_timer_is_armed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x48f163c6 libcfs_str2anynid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4a99af72 cfs_clear_sigpending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4ae500f8 add_wait_queue_exclusive_head +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4bd3ea3d cfs_hash_bd_move_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4c7e3d8a cfs_hash_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4e8fbec5 cfs_cpt_table_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4f1f2fa5 cfs_crypto_hash_digest +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x50345570 libcfs_str2net +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5051b6d2 portal_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x509d38b0 libcfs_net2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x50bca709 cfs_cpt_spread_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x52b3e93d libcfs_sock_setbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x54fd9a71 cfs_percpt_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x55aacfca libcfs_kkuc_msg_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x56805877 libcfs_kkuc_group_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x56a518ce cfs_cpt_set_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x58a7ee00 libcfs_catastrophe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x58e7f03a cfs_hash_dual_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5946ec2b cfs_percpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x59f95db2 cfs_cpt_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5aee0169 cfs_percpt_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5b6ca8f2 cfs_hash_debug_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5c013b81 cfs_expr_list_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5c5fea7a libcfs_sock_getaddr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5cde03ec libcfs_sock_listen +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d3be65a cfs_crypto_adler32_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d655232 cfs_percpt_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d73c3e3 cfs_expr_list_free_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5dce9e80 libcfs_lnd2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62289d65 cfs_array_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62822d74 cfs_hash_dual_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62b9cb2e cfs_percpt_atomic_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6326638a cfs_percpt_lock_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x64685fef libcfs_console_min_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6564c55b libcfs_console_max_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x656e257d upcall_cache_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x65dd9f0c libcfs_run_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x66136d2d cfs_timer_arm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x67398404 cfs_wi_sched_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x692bd054 cfs_hash_for_each_safe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c905b5f libcfs_watchdog_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6dfa9ea1 cfs_crypto_adler32_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6e242a95 cfs_hash_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6e6af71c current_is_32bit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6f928e1b libcfs_debug_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x71f662a3 libcfs_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7a3d49ae cfs_expr_list_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7b0b748a cfs_ip_addr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c7986cf waitq_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7d11d8ec cfs_cpt_unset_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7e6f6485 cfs_ip_addr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7f99ddb6 cfs_race_waitq +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7fda989d cfs_fail_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8151c3aa cfs_cap_raised +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x83d795e4 cfs_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x857aaea7 libcfs_register_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x875e0492 cfs_hash_del_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8840f591 cfs_block_allsigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x89ce22bb cfs_hash_cond_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c500d25 cfs_cpt_table_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c85e4e6 cfs_crypto_hash_speed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8d26cd32 upcall_cache_flush_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f12bb52 libcfs_log_goto +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f45f10d cfs_init_timer +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x91504e8b libcfs_kmemory +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x940ed192 libcfs_stack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x95620e8c cfs_wi_deschedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x97652a15 cfs_hash_is_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x97b0b9bc cfs_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x981a5a02 cfs_hash_debug_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9879b229 cfs_get_random_bytes +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x994ac27f cfs_cpt_table +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x99661e2b cfs_hash_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9e420643 cfs_restore_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9e877d44 libcfs_sock_getbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9f82f712 cfs_trace_copyout_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa0650897 cfs_cpt_unset_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa2b68b2a cfs_array_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa3c9f30f cfs_hash_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa4bc5fb5 cfs_hash_rehash_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa6b9dee6 libcfs_kkuc_group_rem +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9088531 cfs_expr_list_values +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9dc74e2 cfs_trace_copyin_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9eae690 cfs_str2mask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xaa587cf6 cfs_hash_add_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xab887583 init_waitqueue_entry_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xad019238 cfs_str2num_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xad434a98 libcfs_sock_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb20c6ebb cfs_hash_for_each_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb2854871 upcall_cache_downcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb4e48237 cfs_cpt_online +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb972619 proc_call_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb9cb508 cfs_curproc_cap_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbd2f7659 libcfs_sock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbd5d492e cfs_timer_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbf7a37f1 cfs_signal_pending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc0ea7fc0 cfs_expr_list_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2911d96 cfs_expr_list_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2dfd791 libcfs_console_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc39fd2f9 libcfs_panic_on_lbug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc3eb614e libcfs_ipif_query +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc47433a6 cfs_capable +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc49b1c62 cfs_percpt_atomic_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xca9320d4 cfs_hash_findadd_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcb385db9 libcfs_debug_binary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcbab8493 schedule_timeout_and_set_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcc20e694 libcfs_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xccc45639 cfs_free_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xccd9aa58 cfs_percpt_lock_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcce5b37f cfs_hash_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcd38904c cfs_wi_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xce1a88f2 libcfs_arch_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf61bacb __cfs_fail_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcfa29bbe libcfs_sock_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcfab9ecb upcall_cache_put_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd6a52be3 libcfs_printk +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd6f1fc60 cfs_strncasecmp +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd7343c04 libcfs_sock_abort_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd8857d7a cfs_hash_rehash_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd96f406d cfs_cap_raise +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xde17bb8d libcfs_isknown_lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xded410c2 cfs_hash_rehash +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdf26be81 cfs_hash_dual_bd_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdf2789c0 cfs_curproc_cap_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdfecb98d cfs_block_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdffc951d cfs_timer_disarm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe3bf6897 cfs_percpt_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe5c5e952 cfs_wi_sched_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe63efe11 upcall_cache_flush_all +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe6555032 libcfs_ipif_enumerate +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe7b54314 libcfs_arch_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xea411f63 cfs_block_sigsinv +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeb447115 cfs_hash_getref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeb4913fd cfs_cpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xec1f56d5 libcfs_str2nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeceac781 cfs_fail_val +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeda75539 cfs_hash_bd_add_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xedf3a25a cfs_timer_deadline +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xef66c80b cfs_cpt_set_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf1872998 cfs_cpt_of_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf3a80fbc cfs_hash_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf440bb38 libcfs_kkuc_group_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8a8644b libcfs_id2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8efb8c5 waitq_timedwait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf94025d1 libcfs_str2lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfc4c70a2 cfs_cpt_bind +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfe565fa9 cfs_crypto_hash_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xff0f98a6 libcfs_debug_vmsg2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x57cadb4b ll_stats_ops_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x5e3e9ed8 ll_iocontrol_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xcd3cde92 ll_iocontrol_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xee4a3e5c ll_osscapa_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xf760f175 ll_direct_rw_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x1c444555 lov_stripe_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x2d84506a lov_stripe_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x2f757645 lov_lsm_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x302f3b23 lov_device_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x9456648a lov_read_and_clear_async_rc +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xab9f52e4 lov_lsm_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x163e2088 fsfilt_register_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x2980acce l_dentry_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x36b03e18 pop_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x3c6ccc40 push_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x5cee0127 fsfilt_put_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x68cc6668 lustre_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x6cfccc8e lprocfs_stats_alloc_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x793fd5c4 lprocfs_counter_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb4f8ee63 lprocfs_read_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xc0efc452 fsfilt_unregister_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xd0591c84 lprocfs_counter_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xde17e58f fsfilt_get_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xf53861f8 obd_memory +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x14a47f31 it_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x9c22b84f it_open_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xb57d8447 it_set_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xf46a886f it_clear_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mgc/mgc 0xdc287f95 mgc_fsname2resid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0120708f llog_osd_put_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0153f8c0 cl_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x01665e34 class_parse_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x01d36a42 cl_object_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x034b3f1b lu_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x035852d0 lustre_swab_llog_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x03d06698 cl_offset +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x044f8f84 lu_device_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x046f7333 cl_unuse_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x057f6d4b class_find_old_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x06294655 class_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x063068d7 cl_page_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07aa68bb lustre_swab_lustre_cfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0809d5bc cl_page_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x083942ff class_del_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0849f1c0 cl_lock_modify +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0857ef6b cl_page_own_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x08831e1e cl_lock_user_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x08f1afb0 class_detach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x09192136 cl_lock_signal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0935b364 lu_context_key_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x09d9ec11 class_unlink_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0a832444 class_import_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b8a44d9 lprocfs_oh_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0bdb9def cl_object_glimpse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0cf73236 local_file_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d23ad02 cl_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0def721e llog_cat_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0e2c528f class_handle_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0e57d483 llog_cat_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0efa4b38 cl_io_prepare_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fe91547 obdo_to_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x107e0b72 lu_object_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1143e220 dt_locate_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11495519 lprocfs_write_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11df2886 lustre_idmap_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x123e5b5b dt_directory_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1248c6c0 cl_lock_enclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x12872a0a local_file_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x12f92f13 dt_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1491dc30 lu_context_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x14d4291a lprocfs_obd_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x15404717 cl_page_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1553342b cl_2queue_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x15e40d60 cl_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x164bd3d8 lprocfs_alloc_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1698b4e3 lu_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1720607f lprocfs_init_ldlm_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17260880 obdo_cpy_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x190b14e3 cl_vmpage_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1aad7bb9 lprocfs_rd_u64 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1b3ddffc dt_lookup_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1bbb4dac cl_object_attr_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1c280d6b cat_cancel_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1c67d2ce lprocfs_counter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1d715865 class_config_parse_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1da48212 class_handle_hash_back +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1e04fbc2 lprocfs_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1e943760 class_name2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1e9be5dc lu_context_key_quiesce +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1ee3c682 lustre_in_group_p +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1f618c11 llog_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1fa94ad1 cl_lock_mutex_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1fe46188 lu_object_locate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2099959f cl_lock_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2132c328 llog_thread_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x216e793c capa_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21b05a34 capa_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x221663f2 lu_object_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x221826f1 class_parse_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x233e3562 cl_io_submit_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x237c74db cl_env_nested_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x23a16506 cl_page_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x241dca26 lu_kmem_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2454df8f cl_lock_hold_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x24b3492e lprocfs_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x24b5783b lprocfs_rd_timeouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2547efae lustre_uuid_to_peer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2553d8e0 lprocfs_rd_connect_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x25825533 class_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x25a3c14b llog_cat_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x260cd1e0 cl_lock_user_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x26e98fc6 class_find_client_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x275cdc7a cl_env_reexit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x27cb270b lprocfs_rd_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2803c102 cl_req_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x297861be cl_lock_descr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x297cf5e0 class_handle2object +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x29edc81c dt_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x29f3aa4e llog_cat_declare_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ac563a1 lprocfs_exp_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ae1cd79 kuc_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2b1e4342 class_new_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2bcdb085 class_conn2export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2c06523a cl_io_submit_rw +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2c8c723e llog_init_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2c8ff6dd cl_io_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2cfb6dd7 cl_page_list_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2d77be31 lprocfs_oh_tally_log2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2e6afe3e cl_page_is_owned +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2f4b209e lu_ucred_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x30397b01 llog_obd_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x315ea906 lprocfs_rd_conn_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3186d6a1 cl_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x31c7de67 cl_page_list_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x321fb917 cl_locks_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32a491a0 lu_object_assign_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32adc203 lu_context_key_revive_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32ba7a38 dt_quota_slv_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x332ad019 lustre_idmap_lookup_gid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x33c151e3 lu_buf_realloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x33e1e744 lu_device_type_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x340219ca lu_cdebug_printer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3475ec8a llog_cat_init_and_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3502c874 obd_devs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x369ef06c cl_page_find_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x36cc7679 class_export_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3732c09f cl_page_vmpage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x373614d0 llog_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x373a8a8b dump_lsm +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37ca4bc7 __llog_ctxt_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37ed6e4b at_early_margin +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38a7b8ce lprocfs_exp_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38aa53e4 cl_io_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38ca58d7 cl_page_gang_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38fb0c90 class_match_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3a06f0eb cl_io_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3a1cd69b cl_page_clip +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3a878d63 lu_object_add_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3b428132 lprocfs_free_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3b750b11 obd_export_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3c1b0b2e cl_env_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3cd38bc4 lu_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3d22cdf3 cl_lock_closure_build +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3e56020a lu_context_key_revive +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3e63f07f lprocfs_nid_stats_clear_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3e8d10a1 class_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3eab7bfe LU_BUF_NULL +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f1c0c2f cl_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f56f39c cl_lock_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x40474953 lu_object_invariant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4049b2fe cl_2queue_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x41172bd8 lustre_idmap_lookup_uid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x415ed37b cl_2queue_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4316d0ab llog_declare_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x441881cb cl_io_iter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x443303b8 llog_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4434d892 cl_io_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44381593 cl_sync_io_note +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44e41abb lustre_posix_acl_xattr_filter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4511520d lu_context_enter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x452f559a lu_buf_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x464ed149 class_search_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x474ed5bd lustre_swab_ll_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4788f951 lu_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47b35f7d statfs_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4817d460 cl_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x492e5662 lu_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x494cfb52 lustre_acl_xattr_merge2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x495ba879 lu_context_key_degister_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4996c4ba cl_object_has_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a0f6ea lustre_posix_acl_xattr_2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4a5222ea class_export_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ac2c51e obd_llog_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ac58713 obd_connect_flags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ad72a78 dt_txn_hook_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4aea268e class_disconnect_stale_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c190aad lprocfs_find_named_value +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c2398d2 lu_object_find_slice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c2c1949 lu_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c4c700b obd_alloc_fail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4cb31d3d class_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d13458b kuc_len +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4db23f7c cl_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4dcc93cd obd_exports_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4dfaf655 llog_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4eab571c cl_page_is_under_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50c7fc36 ptlrpc_put_connection_superhack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x511afaa3 cl_page_list_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x521a8ff6 llog_cancel_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x526811a6 lprocfs_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x536f1c7a class_num2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x537a9fa3 cl_lock_extransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54885f87 ldlm_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54a7db5f cl_io_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x551076b2 cl_io_loop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x558bec27 obd_ioctl_getdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x55ac8821 lu_ucred_assert +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x564e9d44 init_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x565cca89 cl_io_read_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x57089d79 cl_page_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x570d09ae lustre_swab_lu_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x57f1b5de cl_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x582b013d dt_quota_glb_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x59499cb5 cl_lock_discard_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x59a0fd1f cl_page_list_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x59ced665 lprocfs_free_per_client_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a07a87a cl_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a20d896 obd_memory_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5b2f846c lprocfs_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5bc022c5 lprocfs_dt_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5bd8192f lprocfs_rd_num_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5c161ece cl_env_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d34ae0d cl_lock_mode_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5dd1cda2 cl_object_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ecc3aa7 md_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ed188a9 lprocfs_add_symlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5f345a8e llog_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5fe97b73 block_debug_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ff27387 lprocfs_rd_numrefs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x600f15f6 lu_site_purge +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6089871a cl_page_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x60f6ba92 cl_page_list_splice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6119ac84 llog_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x61c7fd04 cl_type_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631a518d mea_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631fd7b9 lustre_ext_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6363fcdc class_fail_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x637077e8 class_config_llog_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x656122cf lprocfs_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x65aee49a cl_page_list_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6601bcb0 dump_lniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6709ab2a obdo_to_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6734adbd lprocfs_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x675244fa dt_otable_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67608073 lprocfs_at_hist_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x676a29e7 lprocfs_alloc_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x677fd7f9 proc_lustre_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67977b42 lprocfs_remove_proc_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67a90622 la_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67dc223a lprocfs_remove +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x681aa373 lprocfs_seq_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x684db4ee class_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6890d175 lustre_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x696143a6 cl_page_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69be6f7e cl_enqueue_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69c42114 at_min +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a92de7d cl_page_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6b9dd2b0 cl_lock_closure_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6ca713a7 cl_lock_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6d1c251a cl_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6d7683f7 lu_context_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6e1e4ff1 cl_lock_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6e208085 lprocfs_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f66cddc llog_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6ff0c31e dt_try_as_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x702412ab dt_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72ddee4c obdo_le_to_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72f98699 cl_wait_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x742559b1 class_unregister_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7440e3f2 lu_dev_add_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x752f71a8 class_get_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x755b5300 cl_lock_disclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x755c07a2 cl_page_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x756a77f3 class_parse_nid_quiet +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x75a404f6 lu_site_init_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x768d45e1 lustre_idmap_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x779411e7 cl_env_unplant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77d2089a class_name2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7802fcd7 lustre_swab_llogd_conn_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x789796a1 obd_zombie_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x78c750f4 class_conn2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x78ca3b89 lprocfs_rd_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7a135e29 lprocfs_stats_collect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7acc4c6a dt_index_walk +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ae10a37 dt_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b0bc5a3 lu_env_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b4fc57b at_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b8a0dae llog_cat_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7cff5099 lu_object_anon +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7d1bd82f cl_io_is_going +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7edcafa0 cl_env_reenter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f3e9607 cl_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f7d7cd9 lu_buf_check_and_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fad7291 raw_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fe5561a obd_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x801c3813 lu_context_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8031efb8 lprocfs_dt_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x806cc497 class_add_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x80b2e317 lu_context_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81742d89 obd_ioctl_popdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x831f656c class_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x835850ba class_handle_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8489f086 obd_alloc_fail_rate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x849e5385 obd_update_maxusage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8503c454 lu_buf_check_and_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x854ad002 lu_env_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x85a2c300 lprocfs_init_mps_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x87e21e62 cl_io_rw_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x892e451b llog_exist +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x89749131 obd_llog_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8989c30e llog_osd_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8a051157 obd_export_evict_by_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8aa2c358 lprocfs_dt_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b0ed89d llog_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b5f4057 lu_context_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ba6e479 lustre_swab_lu_seq_range +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8cd4e65c dt_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d2f0f94 class_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8dc683a4 dump_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8e10e6d6 server_name2svname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ef7a781 lprocfs_oh_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f5ce3ea lprocfs_free_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f67314c obd_dump_on_eviction +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x907f332c cl_io_sub_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x908d66bb cl_page_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x90928fac lu_env_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9296659e lustre_end_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92b254b0 cl_conf_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92cb5cbb class_exp2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92e58479 obd_dump_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x935b8f8d dt_record_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93b46468 lu_session_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93ba6ca5 cl_object_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x946d4618 dt_txn_callback_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9512d507 lustre_acl_xattr_merge2posix +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9518ed0e cl_lock_ext_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95405b37 cl_io_iter_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x955f5220 ldlm_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95714da2 cl_page_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95735c6c at_extra +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95afb5e8 class_put_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95ec998a lustre_groups_sort +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9720d66a cl_lock_get_trust +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9767adce class_uuid2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97d03783 at_history +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x998fe868 local_object_unlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x99a6bcaf class_conn2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9a2cf5d2 cl_object_attr_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b1ed9d8 obd_jobid_var +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9bbf812a cl_pages_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9bd16f5a cl_lock_hold_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9be74711 llog_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9c53311c class_devices_in_group +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9dbb17b6 lprocfs_dt_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9f27f0da llog_cat_cancel_records +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9fe49a03 cl_use_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa0b4cf62 cl_page_list_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa21c5ea1 obdo_from_la +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa2a4e89e cl_req_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa30156a8 cl_page_make_ready +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa3b11912 cl_page_is_vmlocked +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa436a06f cl_io_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa43cdbdf cl_object_kill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa4dcc4da lprocfs_seq_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa4fcb38d cl_page_list_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa513f7e4 lustre_groups_from_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa516f153 lu_object_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa534f055 cl_lock_is_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5685ec4 dt_txn_hook_commit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5d1e5f9 cl_io_lock_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5fb234f lprocfs_write_frac_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa64a48cf cl_lock_descr_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa674c241 kuc_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa74c17db obdo_refresh_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa7c1a112 cl_2queue_init_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa8e07a04 cl_req_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa9b64b76 cl_io_commit_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa9ee484f lprocfs_wr_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa1bfe5e cl_page_list_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa21b7a0 lustre_register_quota_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa9e0c1c llog_copy_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaaf5ef1d lprocfs_obd_rd_max_pages_per_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xab5319e0 lprocfs_add_simple +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabf45922 capa_decrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabfb1879 lu_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac21027b cl_object_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac4bc464 lprocfs_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac6fba00 cl_lock_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac7f1596 kuc_ptr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xacb838a3 lprocfs_init_ops_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xad852ed2 cl_lock_unhold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xada0a68f cl_req_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xadea66ba lustre_idmap_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xae9301bc class_config_dump_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaef8171c cl_sync_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaf3c402d cl_lock_state_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb01963a6 class_uuid_unparse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb01a5109 lu_device_type_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb08770ba lu_context_key_quiesce_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0b59087 lu_context_key_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0fb9886 cl_lvb2attr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb12c3d39 lprocfs_free_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1873a7c lprocfs_register_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb198f31a llog_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1b89b6d class_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1c58f0d cl_lock_closure_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb2d3c34e lprocfs_rd_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb2fe6c86 llog_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb384504b cl_queue_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb41998cd lustre_cfg_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb42339c0 cl_lock_enqueue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb494ca26 llog_cat_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb5ac0cc2 lu_ucred +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb5b1be41 class_register_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb635af9e dt_acct_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6ba5dd5 kuc_ispayload +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb73f088e class_import_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb743ec6a dt_mode_to_dft +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb7b75a5b llog_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb7eb49f4 lprocfs_nid_stats_clear_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb7f8eb3d cl_env_implant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb827c8aa cl_page_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb8adb0d4 cl_lock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb8f61033 class_process_proc_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb9242015 cl_unuse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb929fd21 lu_object_put_nocache +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb93baebd llog_declare_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba985283 lustre_register_client_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbacac922 lprocfs_write_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbb288c1b obdo_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbb8fb5a2 cl_lock_is_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbbd50fbb lustre_register_client_fill_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbbdd783f lu_context_key_register_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc2b4a0f cl_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc66a18f lu_context_key_degister +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbccac9e3 cl_env_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbd6f32c1 lu_env_refill_by_tags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbd7aeb07 dt_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbda35389 llog_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe486a49 lprocfs_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe4d5560 cl_2queue_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbeb6bc3b obd_export_evict_by_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbeb83bf9 lustre_common_put_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc04d5ad9 class_new_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0bf7ef2 obd_debug_peer_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0d211b0 lu_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc1475d9b capa_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc18d06cf lu_buf_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc1a60686 cl_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc38bb9d2 cl_io_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc4424bed llog_osd_get_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc451846f cl_page_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc517a4ed lustre_process_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc616234a cl_req_page_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc71135a6 local_index_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc839e53f obdo_from_iattr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc845a212 llog_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8dbaa87 lustre_swab_cfg_marker +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8f40267 dt_txn_callback_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc91fe03c cl_lock_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xca3b0325 llog_declare_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xca99eeba lprocfs_oh_sum +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcac0358d llog_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcad6a89d cl_page_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb0ab67f obd_max_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb6e9a91 dt_index_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb79748c cl_lock_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb93b599 lu_context_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccf7a8de obdo_cpu_to_le +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd36a385 cl_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd577e77 class_disconnect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd7537ee get_devices_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd993abe class_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcdbc6d99 class_uuid2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xce10cf04 cl_env_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcedb140a obdo_cmp_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcf91fa8f cl_lock_nr_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcff96bd4 lu_device_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd0499bc9 obdo_from_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd08827c0 server_name2fsname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd0c20800 cl_env_nested_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd0cbf492 dt_txn_hook_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd10aa042 lustre_swab_llog_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd11b4f03 cl_page_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1b1478b cl_attr2lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1f58645 lustre_swab_llog_hdr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd2542340 cl_req_page_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd2733125 cl_page_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd2886747 dt_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd2fdfc1b lu_object_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd3ccdb16 cl_page_cache_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd4224442 cl_lock_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd4e56a6a lprocfs_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd59775a3 lu_site_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd63d30f2 cl_io_rw_advance +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd6e6ad70 class_manual_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7022628 cl_page_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd70fe669 lustre_swab_llogd_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bc8654 obd_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bfbc9c lprocfs_dt_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7f7b340 cl_lock_mode_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd85023f1 lu_object_find_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd94ac7d3 lprocfs_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda0beff9 lu_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda225d37 lprocfs_rd_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda55581d llog_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda5b1ced class_find_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdab999cc local_index_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdac644c8 lustre_posix_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdad01a2d cl_page_list_move +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb13dce1 capa_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb3f47b4 dt_store_resolve +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb677388 dt_version_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdc39ad87 cl_page_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcc40af0 class_check_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd78c0c7 lu_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde2aac04 cl_io_lock_alloc_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde7d985b obd_dirty_transit_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdea755d8 cl_lock_mutex_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdecd7978 cl_page_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdef69dae lprocfs_alloc_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdf110275 cl_lock_hold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe028cf84 capa_encrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe078ca65 local_oid_storage_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe146e9ea capa_cpy +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe1c31e19 llog_cat_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2eb4470 class_get_next_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3323f5d class_handle_free_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe37eb5c0 lustre_register_kill_super_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3ac5122 cl_req_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe4956af2 cl_sync_io_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe590579c lu_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe639e79e cl_page_unassume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe68ae012 cl_lock_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7a13861 dt_record_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7d569a0 cl_lock_weigh +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7d83236 cleanup_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8e84c32 class_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe9948564 cl_lock_mutex_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xea478175 cl_2queue_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeafa599f cl_lock_at_pgoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb3f388a _debug_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec7d6b85 obd_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xed7be045 obdo_from_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee68bc29 lu_session_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee7f8cde lprocfs_rd_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee901c86 class_incref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeeeb79fa do_lcfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeeed07d6 local_oid_storage_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef76f858 block_debug_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf01e2527 server_name2index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf06f0c46 cl_object_attr_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf0ebeea9 lprocfs_rd_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf1ba273e lprocfs_rd_server_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf240412d dt_declare_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf2fd6695 statfs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3213cb0 cl_2queue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3bc5b9d dt_lfsck_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf490d5f9 class_del_profiles +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf5425786 llog_open_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf5515af6 lprocfs_single_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf5dc8ffe cl_page_list_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf60d4659 capa_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf66774a3 lprocfs_clear_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf680966b dt_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7020831 lprocfs_dt_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf75a8912 lustre_idmap_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf782241a class_exp2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf849acc4 dt_store_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8c2df92 obdo_set_parent_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf9b990c9 cl_page_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf9c2a133 lprocfs_add_vars +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf9d6a3ad class_disconnect_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa813d06 capa_hmac +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfaa16234 lprocfs_wr_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfafcdefc class_connected_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfb483253 cl_page_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbb3414d cl_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbea0098 lu_types_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc7f18d0 obd_pages_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfce4103b lu_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd4a7a84 cl_io_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd68d17a class_notify_sptlrpc_conf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfdbe1557 lprocfs_write_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe63c527 lu_kmem_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfea6bb8d capa_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfed5cb4c iattr_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff57e92d class_match_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff922343 lu_dev_del_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfffc1f11 lustre_swab_ost_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/osc/osc 0x5c4940c2 osc_update_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x002009b1 sptlrpc_sec_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00d95039 ptlrpcd_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x015fb006 sptlrpc_lprocfs_cliobd_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x01d6ef7f ldlm_pools_recalc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0313cf76 sptlrpc_target_update_exp_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x048b59d5 lustre_msg_set_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0515f93b RQF_FLD_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x057d9799 ldlm_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x05b576b5 ptlrpc_prep_bulk_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x05be3ae5 ptlrpc_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x05d88990 ptlrpc_unpack_req_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x05eff50f ptlrpc_resend_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x05f1765d sptlrpc_cli_enlarge_reqbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x06b3942b lustre_swab_lov_user_md_objects +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x071fc74a RQF_LDLM_ENQUEUE_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x07605c7d interval_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08383585 llog_origin_handle_prev_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08bb2d27 lustre_swab_obd_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x095587d0 lustre_msg_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0a3130b0 RMF_MDT_EPOCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ab2b487 sptlrpc_register_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ab477b7 ptlrpcd_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac252b2 lustre_msg_set_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0b360334 ldlm_namespace_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0bcacb5d RMF_MDS_HSM_USER_ITEM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0bed10ac ldlm_lock_change_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0bfa8c2f ptlrpc_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0c2d9c43 lustre_swab_lip_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0c3f606c ptlrpc_request_bufs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0c4e5b5d req_capsule_set_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0cf343dd RQF_LDLM_INTENT_BASIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0e1790fd ldlm_namespace_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0e387ec2 ptlrpc_req_finished +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x10f18f20 interval_iterate_reverse +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x115017f6 req_layout_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1232de50 ptlrpc_request_alloc_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12b6f5a3 ptlrpc_connection_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1483eca4 ldlm_lock_addref_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x14d192db lustre_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x15a3e4db RMF_GETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x16a0a8b9 ptlrpc_pinger_del_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x16fa92e2 ptlrpc_deactivate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x172fb86d lustre_msg_hdr_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1747d8b3 ldlm_lockname +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17950f60 RQF_SEC_CTX +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17add058 ptlrpc_req_set_repsize +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x181142cb req_capsule_server_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x18759766 ptlrpc_prep_req_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19108a0f RQF_OST_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19c08934 RQF_LDLM_INTENT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a6a3ce9 RQF_OST_GET_INFO_LAST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a9b76aa RMF_OBD_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1abd3258 RMF_SETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ace4b5f RQF_LDLM_BL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1b663c72 client_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1bae0270 interval_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1be21715 lustre_msg_size_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c1f8f16 ptlrpc_request_alloc_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c300d8e lustre_msg_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1cb93dda ptlrpc_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1d043548 lustre_msg_set_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1d0dff97 ldlm_pool_get_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1dc2051d RMF_SEQ_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1de9c288 lustre_swab_layout_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1df3c124 sptlrpc_cli_unwrap_bulk_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1e8e48a4 sptlrpc_flavor_has_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1eb2a65f RQF_OST_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee46b51 lustre_init_msg_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee9eb3c RQF_MDS_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2096f5b5 RQF_OST_SET_GRANT_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x20cca4eb _ldlm_lock_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x20d6b82c RQF_LDLM_INTENT_QUOTA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x217ee901 ptlrpc_nrs_policy_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x218a36ce ldlm_cli_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x21e92185 ptlrpc_recover_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x21f609ee ptlrpc_abort_inflight +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2247dc43 ptlrpc_req_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x228b2cf0 ldlm_flock_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2325ba15 ldlm_namespace_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x233790b5 RMF_OST_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x244e5558 lustre_msg_get_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x24aafdba RMF_MGS_TARGET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2585a629 RMF_SEQ_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2587513c RQF_LDLM_CP_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x269554ce RQF_LDLM_INTENT_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x26f99d16 RQF_MGS_CONFIG_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x285e5b99 lustre_msg_set_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x288a8351 __ptlrpc_free_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x28d020a4 ldlm_pool_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x29e0869a sptlrpc_get_hash_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2a63a472 lustre_swab_ptlrpc_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2b10df8b req_capsule_server_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2bf4738f ptlrpc_wake_delayed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2c00c60d ptlrpc_sample_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ca92fa8 ldlm_lock_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2cb381aa ptl_send_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ccd5b87 ldlm_cli_cancel_list_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d56f168 ptlrpc_pinger_ir_up +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d6d556b __ptlrpc_prep_bulk_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d798316 RMF_MGS_CONFIG_RES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e1fb7ce lprocfs_wr_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4562fe RQF_LLOG_ORIGIN_HANDLE_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4ca396 RQF_LDLM_INTENT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2eab34ea ptlrpcd_wake +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ecd7515 lustre_msg_check_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2f0e4f87 RQF_OST_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2fd2f737 lustre_msg_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x301d4fcd RQF_MDS_READPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x302937e0 RQF_MDS_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3060b9c6 sptlrpc_rule_set_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x308725e0 sptlrpc_conf_client_adapt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3127f05d ptlrpc_queue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x315b3082 ptlrpc_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x31838cb4 RMF_IDX_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3261b862 RQF_OST_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x33bb7761 ldlm_typename +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x34165ef7 client_import_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x349de255 req_capsule_server_sized_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x356706e5 ldlm_pool_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35939a3d lustre_swab_fiemap +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x37c7c4ad ptlrpcd_alloc_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38106b1b llog_client_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3835ab4b RQF_LLOG_ORIGIN_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38519137 ptlrpc_free_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3858fb94 RMF_OBD_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38b5c618 ptlrpc_set_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38c01799 RQF_LDLM_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38fce533 lustre_msg_set_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3907bc36 ldlm_pool_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x39db792e ldlm_pool_get_lvf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x39f60a5f RMF_OST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3a1e4bcb __lustre_unpack_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3a1f5441 ptlrpc_disconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ab90f6e lustre_msg_bufcount +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ac00716 lustre_swab_hsm_user_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b6b7cba dump_ioo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3bedb0c7 RMF_LLOGD_CONN_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c63e62b RQF_MDS_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ca50f33 RQF_MDS_HSM_CT_REGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3d0fd0de sptlrpc_enc_pool_put_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3d7dc5f9 ldlm_pools_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dc47695 lustre_msg_get_magic +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ddbf081 ldlm_pool_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dddb3e2 dump_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ec9a50f ptlrpc_request_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f034caf lustre_msg_get_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f3522e2 ldlm_replay_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f752e78 RQF_MDS_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3fc27c52 ldlm_lock_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x406e5c38 ldlm_pool_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x40709b43 sptlrpc_conf_target_get_rules +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x40910aed ldlm_cli_update_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41008cef RQF_LDLM_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4137126a ldlm_pool_set_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43705ee4 RQF_LOG_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43d7efc8 lustre_msg_set_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43fa5598 ptlrpc_mark_interrupted +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x44036eda RQF_MDS_GET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x440c2a71 RMF_FIEMAP_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x44789a15 ptlrpc_invalidate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4481591d RQF_OST_SET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4522d15c do_set_info_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45521bf4 ldlm_register_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45d05893 lustre_swab_lustre_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45e30cea lustre_swab_ldlm_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x476aca82 ptlrpc_resend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47f5e903 RMF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4841acf4 sptlrpc_import_sec_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x48814c9f lustre_swab_ost_lvb_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x490e3c8a ldlm_pool_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4926f126 lock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x498c03c5 lustre_msg_set_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4a5a2416 RMF_DLM_REQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4b09ce4b lustre_swab_mdt_rec_reint +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4c2ed550 sptlrpc_cli_wrap_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4c8ec098 ptlrpc_set_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4d7580d0 lustre_swab_hsm_user_item +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e1706e5 lustre_msg_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e696b96 ptlrpcd_queue_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4eb03a6f ptlrpcd_destroy_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4f4e8c4a req_capsule_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4f766c3b lustre_swab_generic_32s +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50443f6a ptlrpc_init_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50dd74f8 RMF_STRING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x51ca3281 req_capsule_client_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x52c62150 RMF_RCS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5327e753 ptlrpc_hpreq_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53411557 RMF_DLM_REP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53a4a004 bulk_sec_desc_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x54328bb3 sptlrpc_gc_add_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x54ae5021 ldlm_lock_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x555eb7fe RQF_MDS_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x55b49076 ptlrpc_nrs_policy_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x56d670f9 ptlrpc_start_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x588035b4 RMF_UPDATE_REPLY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5903e18f ptlrpc_unregister_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59070da7 sptlrpc_cli_ctx_expire +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x595ab175 lustre_swab_obd_quotactl +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x596582bf RMF_GETINFO_VALLEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59ca398b ptlrpc_add_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5a057439 interval_search +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5af0d02a ldlm_lock_dump_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b6ba895 lustre_packed_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5c6a3a83 RQF_SEQ_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5caae213 ptlrpc_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ccbf9b2 req_capsule_server_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e0b19b1 RMF_CLUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e2b7558 lustre_msghdr_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e6b752b ldlm_resource_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e6f435d RQF_OST_BRW_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e80f899 RQF_LLOG_ORIGIN_HANDLE_READ_HEADER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ec3284d RQF_MDS_HSM_CT_UNREGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ef831ee lustre_msg_get_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5f833ee7 ldlm_lock_allow_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5f96ccdd ptlrpc_connection_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6042bc15 RQF_MDS_REINT_RENAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x604e2505 RMF_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x607ec932 lustre_msg_set_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60aa31cb ptlrpc_service_health_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60cd26ad RQF_MDS_REINT_CREATE_SYM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60da3776 ptlrpc_set_import_active +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6123b954 lprocfs_wr_evict_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x61646e1b RQF_MDS_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6175bbb3 ptlrpc_add_rqs_to_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x618ad203 RQF_OST_GET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62192cf8 dump_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62705694 sptlrpc_sec_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62aaae3f RQF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6315dd4c RMF_LLOGD_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6352a62d ldlm_get_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x647b6e48 lustre_swab_ldlm_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x65154ee2 llog_origin_handle_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x653723dc RMF_LOGCOOKIES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6552bba8 ldlm_lock_fail_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x685eeaba RMF_DLM_GL_DESC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68ad765b sptlrpc_unregister_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68b82cb3 ldlm_reprocess_all_ns +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68cb2541 interval_is_overlapped +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68f49e5e ptlrpc_expired_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6912990a RQF_OST_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69505ce1 req_capsule_client_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x696ba811 lustre_msg_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69c9f04d RQF_MDS_REINT_LINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6a3785c9 RMF_EADATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d5185ba ptlrpc_lprocfs_register_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d72828c sptlrpc_conf_log_update_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d7931cc RQF_UPDATE_OBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6daf45da ptlrpc_schedule_difficult_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6e53ff53 req_capsule_server_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6eae1f1e ldlm_pool_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6ed20499 ldlm_revalidate_lock_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6efa82b0 RQF_MGS_TARGET_REG +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f62ce13 ptlrpc_register_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f6dc736 lustre_swab_mdt_remote_perm +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6fb92092 sptlrpc_flavor2name_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6fe130cb target_print_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x703538e4 lustre_swab_hsm_current_action +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x709f6267 ldlm_cli_enqueue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x723d43b6 sptlrpc_rule_set_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x725a892c RQF_MDS_REINT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7293ce17 ldlm_cli_cancel_unused_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x739c42ff lustre_pack_reply_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x73dc1b70 req_capsule_server_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x74840056 lustre_msg_set_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75a2c40d ldlm_put_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x76b728e5 lustre_swab_update_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77571cc6 lustre_swab_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77840c82 sptlrpc_rule_set_choose +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x78bf9136 lustre_swab_ldlm_lock_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7a832f10 RMF_CONN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7b158da4 lustre_swab_ldlm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7bbf8001 RMF_MDT_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7c4c6107 RQF_LDLM_CONVERT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7c99eb97 ldlm_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d1ecd7f RQF_LDLM_INTENT_LAYOUT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d41a8b9 RQF_QUOTA_DQACQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dc0e7cd RMF_QUOTA_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dfb3c18 lustre_msg_clear_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f0ce3da ldlm_cli_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4925d8 interval_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4c99b1 ldlm_expired_completion_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f5a1cc7 lustre_msg_set_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f6d2357 lustre_msg_is_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7fa98812 ldlm_resource_unlink_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80a9e8c3 lustre_msg_get_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80ecb4e3 RMF_MDS_HSM_CURRENT_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x817d7f1f lustre_msg_add_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x826d3c4f RQF_LDLM_GL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x82ee10c6 ldlm_resource_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x831592c8 req_capsule_extend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x837efb00 RMF_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x838ab130 req_capsule_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85135801 RMF_DLM_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85a9e0d8 RMF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85eecf67 sptlrpc_get_hash_alg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x863db6eb RMF_HSM_USER_STATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x86fa8c3b ldlm_cli_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x86ff6623 sptlrpc_import_flush_all_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8733cd72 ptlrpc_fail_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x875cd435 ldlm_completion_ast_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8760beaf lustre_swab_ldlm_policy_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x876c2551 RMF_GETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87897378 sptlrpc_svc_ctx_invalidate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87bf7b3c sptlrpc_get_next_secid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x881a7739 sptlrpc_req_replace_dead_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8872f3d2 RMF_SETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x88f75dd9 ptlrpc_obd_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x88fff52d RMF_CAPA2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x89c1e6cb ptlrpc_request_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x89f4071f req_capsule_field_present +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x89f9edf7 RQF_MDS_REINT_SETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a1ea476 lustre_swab_hsm_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a257736 RQF_MDS_HSM_STATE_GET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a6730da ptlrpc_unregister_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ac440fa ptlrpc_uuid_to_connection +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8b854254 lustre_swab_mgs_config_res +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ca08002 ldlm_cancel_resource_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8cb71d4b RQF_MDS_REINT_CREATE_SLAVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8cf87997 sptlrpc_target_sec_part +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d77ea75 lustre_msg_set_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8da3fca7 lustre_msg_add_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8dbb13b5 ptlrpc_request_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8e9abe4d RMF_GENERIC_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ec43bcc ldlm_blocking_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ed791b4 req_capsule_init_area +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8f0aceac RQF_MDS_HSM_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8f26d77f lprocfs_wr_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8fa247b3 ptlrpc_set_add_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8fb8e197 ldlm_cli_cancel_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8fec0451 lustre_msg_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x919c4ce3 RMF_OBD_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91cf58d3 RQF_MDS_PIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91fba4ff ldlm_blocking_ast_nocheck +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x92ba5217 sptlrpc_sec_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x937b1ee0 lustre_swab_mdt_ioepoch +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9553c633 RQF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95d08f0c lustre_swab_mgs_target_info +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95d11a58 client_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9660ace0 RMF_FLD_MDFLD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x967391b7 ptlrpc_req_finished_with_imp_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x967bfd52 RQF_OBD_PING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9700348f ptlrpc_stop_all_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x975da97a client_import_del_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9798f2f1 RQF_MDS_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x980fcfdc ptlrpc_connection_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x99138737 req_capsule_client_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x994d68a8 ptlrpc_pinger_add_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x99a26109 ldlm_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a258886 RQF_MDS_GETSTATUS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a6f2f6d lustre_msg_set_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9b251dc2 ptlrpc_lprocfs_unregister_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9b88f6ce RMF_NIOBUF_REMOTE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9bb5198b RQF_MDS_CLOSE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d7ea314 sptlrpc_pack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9e9b59ab req_capsule_other_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9ea5a441 ptlrpc_set_next_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9fb088f1 lustre_swab_lov_mds_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa10f0d3d RMF_UPDATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa163f4c3 dump_rniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2244636 RQF_MDS_GETATTR_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa22c0086 ldlm_error2errno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa3d2a6ee RMF_CAPA1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa456270c sec2target_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa47787ef RMF_PTLRPC_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4a2d089 RQF_OST_PUNCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4bea5ef lustre_swab_lmv_user_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5458dad ldlm_lock_decref_and_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa54d3361 ptlrpc_save_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5880075 ldlm_errno2error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa6c436ca RQF_MDS_WRITEPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa6c5844f ptlrpc_activate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7d55cc3 RQF_MDS_REINT_CREATE_RMT_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7e360b1 RMF_OBD_IOOBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7ec567d RMF_CONNECT_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa8483159 ptlrpc_request_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa86ca5ea llog_origin_handle_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa8ffe5f7 ptlrpc_unpack_rep_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa955aa91 ptlrpc_prep_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9704f80 lustre_msg_get_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa97afcb2 ldlm_namespace_new +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9c4658e lustre_swab_lov_user_md_v3 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9d56cab ptlrpc_cleanup_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9edf09d RQF_OBD_IDX_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaa7957ae ldlm_namespace_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xab562b3a client_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xac44da67 ldlm_namespace_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xacc82ce1 ptlrpc_prep_fcset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xad80f628 ldlm_lock_fail_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaddc3979 lustre_swab_lustre_capa_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xae7f747a ptlrpc_commit_replies +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xae9a8bb8 lprocfs_rd_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf247e3e sptlrpc_target_export_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf4e9658 RQF_MDS_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf50a0d6 RMF_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf8ab969 ptlrpcd_add_rqset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xafc4fe88 ptlrpc_buf_need_swab +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb064c776 target_pack_pool_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0751fa4 RQF_LLOG_ORIGIN_HANDLE_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0da60eb ldlm_init_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb115f80f ptlrpc_lprocfs_brw +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1579f27 llog_origin_handle_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb177c7e8 ptlrpc_set_add_new_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1b43d8a dump_rcs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1f9d8a8 lustre_pack_reply_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb27c2374 lustre_msg_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb291473d lustre_msg_early_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb2b1817d lustre_swab_ost_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb2b968f3 llog_origin_handle_read_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb3be5813 ptlrpc_pinger_sending_on_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4a7ecf3 lustre_msg_add_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb512ebc2 sptlrpc_parse_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb61cb95a RQF_MDS_GETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb68476df interval_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb68b0694 client_disconnect_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb6aafd03 RQF_MDS_DONE_WRITING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb6fda209 ldlm_lock2handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7b38189 RMF_MDT_MD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7fa3cc8 RMF_LLOG_LOG_HDR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb903634e RQF_OST_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb9a79036 ptlrpc_send_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb9b631cf lustre_swab_mgs_config_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb9b81e4b ldlm_pool_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xba045af3 sptlrpc_enc_pool_get_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xba543b9a sptlrpc_cli_ctx_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbaa76097 lustre_msg_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc1370dc lustre_shrink_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbd75ce93 ptlrpc_buf_set_swabbed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbd83bc44 RQF_OBD_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbe217dff ldlm_destroy_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbe47bc7e ping_evictor_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbee8cf97 ldlm_cli_enqueue_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbf693c4d ldlm_resource_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbf98b86f RQF_MDS_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbffd4313 RQF_OST_BRW_WRITE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc06c4670 lustre_msg_get_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0867da7 RMF_REC_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0cdf55e RMF_MGS_SEND_PARAM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0d73613 ldlm_resource_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2986d28 lustre_swab_ldlm_res_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2b1af57 RQF_MGS_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2be922a RMF_SYMTGT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc559a634 RMF_LAYOUT_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc5d504a0 ldlm_lock_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc60a60e1 RQF_OST_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc61a2221 ptlrpc_set_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc6763f29 ldlm_glimpse_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc694be4b RQF_LLOG_ORIGIN_HANDLE_PREV_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc6b30081 ldlm_get_enq_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc763fabc sptlrpc_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc79b9c67 ldlm_pools_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7ca8257 RQF_MDS_REINT_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7e47564 ptlrpc_interrupted_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc8de8c14 llog_origin_handle_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc8f586a9 ptlrpc_connection_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc9ec55dd req_capsule_server_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca5a81ec ptlrpc_pinger_ir_down +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcad3da33 ldlm_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcaf933ee _debug_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2cc0cf lustre_swab_lquota_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2ceaff sptlrpc_secflags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcbbd6b86 sptlrpc_gc_del_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcc4390b3 sptlrpc_gc_add_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcd2e46b2 ldlm_lock_downgrade +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce1a689b sptlrpc_enc_pool_add_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce86066d lustre_msg_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcec513c9 RQF_MDS_UNPIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xced015be sptlrpc_rule_set_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xced17d5b lustre_pack_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9963db lustre_msg_get_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9aab6a RQF_MDS_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd02fd227 ldlm_prep_enqueue_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd204fc02 sptlrpc_cli_ctx_wakeup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2983334 lustre_swab_swap_layouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2e0d4eb lustre_msg_get_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd3bfb88e req_capsule_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd3dae408 ldlm_it2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd537ded2 lustre_swab_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd5ad414a ldlm_enqueue_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd641661c unlock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd67a5d7b lustre_swab_update_reply_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd69e0a27 RQF_MDS_IS_SUBDIR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6c3ebfb RMF_FIEMAP_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6ea8d8c req_capsule_client_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd707db7c ldlm_pool_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd7910326 lustre_swab_obd_statfs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd7e72cdd ptlrpc_reconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8b91b3e lustre_swab_lov_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8f06300 RQF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd9561861 RQF_LDLM_INTENT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd9e23536 ptlrpc_at_set_req_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xda131d33 lustre_free_reply_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xda2ac111 sptlrpc_proc_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb006dbb ptlrpc_register_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb1fb0a2 RQF_MDS_REINT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb9d5a6a lustre_swab_niobuf_remote +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdccb00a1 sptlrpc_cli_ctx_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdcf910b9 lustre_swab_ost_last_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd0ffb04 sptlrpc_flavor2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd30d7bf RMF_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xddc40a85 lustre_msg_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xddfb9432 ldlm_prep_elc_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde06ba47 ldlm_cli_cancel_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde12d36b RMF_MDS_HSM_ARCHIVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde555d70 sptlrpc_enc_pool_del_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde7c7f20 req_capsule_filled_sizes +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdee87192 sptlrpc_conf_log_update_begin +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf701ae7 lustre_swab_fid2path +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf9132e9 ptlrpc_retain_replayable_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0cc694c RQF_LLOG_ORIGIN_HANDLE_NEXT_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe209e814 ldlm_namespace_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe40e0a50 lustre_msg_get_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe4ae57d7 ptlrpc_unregister_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe57bd972 sptlrpc_current_user_desc_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe5d5a33b sptlrpc_import_flush_my_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe643998e RQF_OST_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6530b9b ldlm_lock_allow_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6e0073e ptlrpc_request_set_replen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6f0dc96 RQF_OST_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7062b5f RMF_U32 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7512278 ptlrpcd_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7c3a660 ldlm_lock2desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe89b5664 ptlrpc_cleanup_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe8a92631 llog_origin_handle_next_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe92e1a7a ldlm_cli_cancel_unused +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeaa09080 ptlrpc_init_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabaa0b1 lustre_swab_mdt_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabac4fc sptlrpc_rule_set_merge +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeae50868 llog_initiator_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeb02ff38 ptlrpc_replay_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeb272eee client_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xebb64e68 req_layout_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec226f66 ping_evictor_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec67f688 client_import_find_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec939a00 RQF_MDS_REINT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xecace5c1 RQF_OST_GET_INFO_GENERIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed1c10d6 ptlrpc_connection_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xedcb740d sptlrpc_name2flavor_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeea11787 ptlrpc_prep_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef1aeca9 RMF_FLD_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf015d836 ptlrpc_restart_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf01d1630 req_capsule_has_field +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0241d6e lustre_swab_hsm_progress_kernel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0d52b5f ptlrpc_pinger_suppress_pings +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf11336ed req_capsule_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf1178724 ldlm_destroy_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf1300275 _sptlrpc_enlarge_msg_inplace +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf277c125 RQF_OST_GET_INFO_FIEMAP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf27d49dc sptlrpc_target_choose_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf35f132b lustre_swab_ldlm_resource_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf3d44370 RQF_OST_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf3fdffbe target_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf43540b9 lustre_swab_mgs_nidtbl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf45085e1 sptlrpc_conf_log_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf4cd15f7 sptlrpc_get_bulk_checksum +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf55c033b RMF_MGS_CONFIG_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf567bda8 lustre_pack_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf584a16b sptlrpc_part2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf596e9ae sptlrpc_conf_log_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf607fc23 sptlrpc_flavor2name_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf617ab8a lustre_msg_get_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf62efa1b __ldlm_handle2lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf697b756 ldlm_dump_all_namespaces +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf6e7dca6 ptlrpc_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7408f84 lustre_swab_hsm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7ba40c0 RMF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf85cb27e sptlrpc_parse_rule +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf870fed9 RQF_LDLM_GL_DESC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9051bd6 RQF_QC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf94e41e0 deuuidify +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf973aa93 lustre_swab_lov_user_md_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9b0724f lprocfs_wr_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9ee11e2 lustre_msg_set_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9f72dfc RMF_TGTUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa51688d interval_insert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfb2dfdda ldlm_init_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfbe88c13 ptlrpc_init_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfc2fa83f ptlrpc_del_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd148bf8 RMF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfe354e03 sptlrpc_cli_unwrap_bulk_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfe7b4d42 req_capsule_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff02a0e9 ldlm_lock_set_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff41ebe2 ldlm_pool_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff4506c3 ldlm_extent_shift_kms +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffc807e8 sptlrpc_unpack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffe29c3f RQF_LDLM_ENQUEUE +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0xf6edf786 cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x1b2c27b6 go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x23215f72 go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x5c579e11 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x9aefc3ae go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xb49303f2 go7007_snd_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xce231713 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xd5c98159 go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xea447592 go7007_update_board +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xfbac813a go7007_snd_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0456dd94 rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0c61fcfc rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x102313f7 RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x179854f7 rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x18c88eed rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1a2e2e80 dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1dc944ed rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x21244c1e rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2d2e8bf5 rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3cc8550d rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3e009b3e rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5404c4b2 rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x54b17622 rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x57b25eec alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5c1a6728 rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x66efbf28 rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6705cd5f notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6c027c7b rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6d0a1969 rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x70f796c0 rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x77a4e74f rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7b603019 rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7ceaed5a rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7de28848 rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x81fefe7c rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x876f29bb rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8d516800 rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8ecc998d rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x92e76339 rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9319a1cf rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x949c4d83 rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x983dcf48 rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9e2408ac rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa39be62e rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa777faef rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xade57a2d rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xafb0c194 rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb79f6bce rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe1420f2 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc15eac2d free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc607248f rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xcda5477c rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd0a49784 rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd0eda6b6 Dot11d_Channelmap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd4443787 rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd6e3bf45 rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd792007a rtllib_wpa_supplicant_ioctl +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf78f620 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe24fec1e rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf53038de rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf7830182 rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfd27a8d9 HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x02d7c94f ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0403a3fb ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0b0aecb7 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0d43f4f9 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x10596c79 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x107451a6 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x190fa37c ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x20668524 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x25c2e28d ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2a236402 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2ba3003c ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x31453172 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x368c5176 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x478c3c80 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x49139dc0 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x535e180e ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x550299b6 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x57e7c783 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5c5456b3 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5ce79dd4 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x62a63ce0 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x687f2833 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6d987d67 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x750a2861 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x778678a9 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7b1c2008 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7e94acb5 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fcebca4 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8789a91a ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x89d90f67 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8c65946e IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9011449c DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x907fc2fa ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x937ccbba ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x94ddeb8b ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x984eea44 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x98e24f6e ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa2b22144 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa8859580 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb0c3b947 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbdf1ce63 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbf6b45f6 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc1f7bae7 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcd999ddc ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcf6eec57 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdb48aa60 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe0fac6b0 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe1685f33 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe218a8f2 ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe5585cde Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xef383674 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf0d558a2 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf5984c88 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfca73c27 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfe7b34ed ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xffb59a25 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0017f35f set_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x00ea0cde set_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x06d6f244 get_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x09df8f3e set_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0a8d32c3 get_bypass_slave_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1936264c set_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1d2eb8ca get_tap_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x203af1f7 reset_bypass_wd_timer_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2070f14a set_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x27b990ef get_bypass_info_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2ba7cd35 get_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2c3f1c17 get_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2f59e636 get_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2fdb893a get_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x361cf40a get_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x45ca99c3 set_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x550a188c set_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x5cb59e92 get_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x66b60122 set_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x675208c0 set_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x692623f2 get_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x75131ec6 set_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x76c0b7d0 set_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e872825 get_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e8d701e get_wd_expire_time_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x86388b07 get_bp_disc_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x93ae4648 get_wd_set_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x95e42b0d is_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9df5f807 set_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9e21f42e set_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xa689a214 get_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xae117788 get_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xc368d30d get_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xccab5de0 get_bypass_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd3e034b3 get_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9c1ccfc get_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9d38d97 set_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xe640f06e set_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xecdaa456 set_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xedcd3c1b get_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf06d67bf set_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf57c1671 get_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf693c3a1 bp_if_scan_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf8237882 get_bypass_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xfa59240d get_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05af3c4c set_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05b08a42 set_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0b0d5ce0 get_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0fc2e83c reset_bypass_wd_timer +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x123a8133 get_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x157ec89c get_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2440f05a get_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2b01d1d4 set_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2c27a2f0 set_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2da97f4b is_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2e86c67b get_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37416370 get_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37bdab27 get_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x3da96a18 get_bypass_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4025805e get_bypass_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4940a0cc get_bypass_info +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4d21ff51 get_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5147360c get_bp_disc_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x515d4df1 get_bypass_slave +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5560267e set_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5be44d44 set_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6653590c get_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6bda14ec get_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x72c618ae set_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x76d47e6f set_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x794e3815 set_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x7c6cbc16 get_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x84a263dc set_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x8a16f22c set_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x946ff795 get_wd_set_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x94f6aff2 get_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x9d1ecf73 set_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xb1385629 set_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xbff68c45 set_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xc871c561 get_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xcee528df set_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd202dd85 get_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd787f151 get_wd_expire_time +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xdb6a39d2 get_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xebd25ae5 get_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf1e9f8c1 set_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf224abd9 get_tap_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf5a591b2 set_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf643fd4c get_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x0ddf3341 xillybus_init_endpoint +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x25978d50 xillybus_isr +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x578ca05b xillybus_endpoint_remove +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0xa6f91290 xillybus_do_cleanup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0xc6aa8ab3 xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x117394c6 iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x15166642 iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2109dff3 iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x26d04f85 iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x34ca5add iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3e37904e iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x460638af iscsit_set_unsoliticed_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4b8f5554 iscsit_handle_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x59366b83 iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5fa45d53 iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7c97ac5c iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x852b8a4f iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x89af00f4 iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x89f93edb iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8bbf6508 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa275b44a iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa5c8025e iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa6338fad iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb88ca101 iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc891c894 iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xcff68f5a iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xdd0a95b0 iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xdd5b4dfb iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xdef350ba iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe889c1f9 iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xec055257 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf441f5e0 iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf945343d iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/target_core_mod 0x004566a8 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x01720449 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x02196bcb transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x05eeaa1c transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x07a0d244 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x1381a343 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x1622e41f core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0x1c861882 target_put_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x1d60fcfb target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x21a6734a target_setup_cmd_from_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x252b7848 target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x296ae5ea target_get_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x2b804fcb iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x30ea757b transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x340076ad transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x3579966c transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x38263e36 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x3f5818fd fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x42b87409 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x438bd665 spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x44eee618 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x45465fc1 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x47e4e428 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x4a89a849 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x5464d5f4 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x5610e11a iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x58de451d target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x5c89aef1 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x63bd65f7 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x6b650c53 core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x6ba5fc52 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x701e9756 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x728c7a7d transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x731b99a2 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x750890a4 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7b42aac0 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x7bb30204 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x848ee38e fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x8582325e sbc_execute_unmap +EXPORT_SYMBOL drivers/target/target_core_mod 0x85843ddf transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x85cd245c spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0x8cfb1855 sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0x94b0c9a8 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xa532bca7 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xaacbbd99 target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0xb26019eb target_sess_cmd_list_set_waiting +EXPORT_SYMBOL drivers/target/target_core_mod 0xb59219ac target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xb726253b core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xb7bfc23a spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0xbd1c36e3 spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0xbfbc75f1 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xc341e938 transport_init_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0xc4d125a7 sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xc6766f23 target_submit_cmd_map_sgls +EXPORT_SYMBOL drivers/target/target_core_mod 0xccd94ecc target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xd2066093 iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xd2cba83c core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xd43974e3 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xd60c20f5 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xda55da1f transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0xde21f614 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xeb3715fe fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf0c999ea core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xf496fd3d transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0xf6a56764 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0xf6eca4f1 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xf7e73c7e target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xf8b468b6 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xfc4551d7 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xfca4908a transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0xffc047d5 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0x8d7a3d75 usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0xf2f150cc unregister_gadget_item +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x007836f9 gether_register_netdev +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x14e68105 gether_get_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x3a2cb78d gether_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x3dab6360 gether_get_host_addr_u8 +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x613e5b6a gether_connect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x66d68f2f gether_get_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x75dbf470 gether_get_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x776652a1 gether_set_gadget +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x7a186cb4 gether_set_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8878cfa6 gether_cleanup +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x916426cf gether_get_ifname +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x95c1882a gether_set_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xd87e6c89 gether_setup_name_default +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xd88abb13 gether_set_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xdf1f81e8 gether_get_host_addr_cdc +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xeaee0de2 gether_setup_name +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3a6d4f22 rndis_free_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3ca38e3a rndis_signal_connect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x4ca90996 rndis_signal_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x5d22b406 rndis_register +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x785d494b rndis_msg_parser +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x840dd143 rndis_deregister +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x988ad2a2 rndis_set_param_vendor +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x9acf72e4 rndis_set_param_medium +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xa90054ee rndis_uninit +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xb7297b9c rndis_rm_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xb971ebca rndis_get_next_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xd2fe47b1 rndis_set_host_mac +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xde2e192f rndis_set_param_dev +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xe392618e rndis_add_hdr +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1710b539 fsg_fs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1b1cc3af store_cdrom_address +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x2933ee1d fsg_ss_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x398778e1 fsg_ss_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x423845e4 fsg_ss_bulk_in_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x4728bd23 fsg_store_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x533c376d fsg_lun_fsync_sub +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x56344daf fsg_hs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x6bd1864f fsg_show_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x73d887cc fsg_lun_open +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x74f5b5b6 fsg_store_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x8165e681 fsg_store_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x857b6dc2 fsg_hs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x917386dd fsg_store_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x95cffb3e fsg_hs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x96cf02fc fsg_store_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5cae92f fsg_ss_bulk_out_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5f99b69 fsg_fs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa9488f48 fsg_show_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xae1e3ab1 fsg_lun_close +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb52ba28a fsg_intf_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb54d0d95 fsg_fs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb9ddb063 fsg_show_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xd18fb17f fsg_show_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf4efc0c8 fsg_ss_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf551a129 fsg_show_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_rndis 0xd868e920 rndis_borrow_net +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x2825bc77 sl811h_driver +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x06285605 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1602a063 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x22e378b7 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2c74b6d0 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x43511872 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x48b3f588 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6136c734 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa99f3649 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc636d58f usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc99052ef usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd2a29895 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd37a6f1c usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf9ef282f usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x2a4e9c16 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xef4d34e3 usb_serial_resume +EXPORT_SYMBOL drivers/vhost/vringh 0x0dda8c5a vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1f063017 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x2eae4a2a vringh_getdesc_user +EXPORT_SYMBOL drivers/vhost/vringh 0x36dfce73 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3b304ebb vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3eaf442a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3fa42e4f vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x4311cd91 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5dafbd4e vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x66af098b vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x6d0e7948 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x76bd9a5d vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x97fa07e9 vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xaf8e4a0e vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xafb47dae vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc884d704 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc8bee0a4 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xda4ea4cc vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xde804bb9 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x13ab0d75 devm_lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x4593f353 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x7dd37cac lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xc4d1ced4 devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x107977c5 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/macmodes 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x964712d0 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x969bd8f6 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xb2a0d867 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xb978d34a g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x02d3c518 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x8a1e066b DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x9ca51d9c matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xf1b2a6c7 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0xed2e1b2b matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xab3f4cc3 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x05648629 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x2b0dd8f1 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xa73c2477 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xeb08fe95 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x7e677b1c matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x8fa9f2eb matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x18b86cf6 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x1d71d62e matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x3a76971a matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xdea6df7c matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xe590b627 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0xe49d9547 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x3f2d1899 video_output_register +EXPORT_SYMBOL drivers/video/output 0x657c6f55 video_output_unregister +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1b68512e svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x299ed47f svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x30e85cbb svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x48c703d8 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x6e4adb1e svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x7200f098 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x8de63fb4 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0xceea9ae8 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe4a3d0fa svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf2db5956 svga_match_format +EXPORT_SYMBOL drivers/video/syscopyarea 0x366b70a7 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0xb42f1293 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x7b305389 sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/vme/vme 0x0c6bdc3f vme_master_read +EXPORT_SYMBOL drivers/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/vme/vme 0x20df5a3d vme_dma_pci_attribute +EXPORT_SYMBOL drivers/vme/vme 0x2e7414ce vme_dma_list_add +EXPORT_SYMBOL drivers/vme/vme 0x3d1ab2fe vme_slave_request +EXPORT_SYMBOL drivers/vme/vme 0x3e95083c vme_slave_get +EXPORT_SYMBOL drivers/vme/vme 0x425c902c vme_dma_list_free +EXPORT_SYMBOL drivers/vme/vme 0x46649cd1 vme_lm_set +EXPORT_SYMBOL drivers/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/vme/vme 0x4baf35a7 vme_master_get +EXPORT_SYMBOL drivers/vme/vme 0x4d2467e2 vme_unregister_bridge +EXPORT_SYMBOL drivers/vme/vme 0x52983a4f vme_master_write +EXPORT_SYMBOL drivers/vme/vme 0x535c8308 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/vme/vme 0x5aff4177 vme_lm_get +EXPORT_SYMBOL drivers/vme/vme 0x663d783b vme_register_bridge +EXPORT_SYMBOL drivers/vme/vme 0x6d3513dd vme_slot_get +EXPORT_SYMBOL drivers/vme/vme 0x79a33f85 vme_get_size +EXPORT_SYMBOL drivers/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/vme/vme 0x88618587 vme_new_dma_list +EXPORT_SYMBOL drivers/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/vme/vme 0x9fb38bbf vme_master_request +EXPORT_SYMBOL drivers/vme/vme 0xa2a335bd vme_alloc_consistent +EXPORT_SYMBOL drivers/vme/vme 0xa31bdf07 vme_master_set +EXPORT_SYMBOL drivers/vme/vme 0xa6376a96 vme_bus_type +EXPORT_SYMBOL drivers/vme/vme 0xbf4889f4 vme_irq_free +EXPORT_SYMBOL drivers/vme/vme 0xbf73ae4a vme_irq_generate +EXPORT_SYMBOL drivers/vme/vme 0xc7803471 vme_lm_request +EXPORT_SYMBOL drivers/vme/vme 0xca597443 vme_irq_request +EXPORT_SYMBOL drivers/vme/vme 0xca5ee09a vme_free_consistent +EXPORT_SYMBOL drivers/vme/vme 0xcb0ffc60 vme_irq_handler +EXPORT_SYMBOL drivers/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/vme/vme 0xe05b4efb vme_register_driver +EXPORT_SYMBOL drivers/vme/vme 0xe91d08d9 vme_dma_list_exec +EXPORT_SYMBOL drivers/vme/vme 0xece18ab1 vme_unregister_driver +EXPORT_SYMBOL drivers/vme/vme 0xef33320b vme_dma_request +EXPORT_SYMBOL drivers/vme/vme 0xefd1624a vme_dma_free_attribute +EXPORT_SYMBOL drivers/vme/vme 0xf5a10e25 vme_slave_set +EXPORT_SYMBOL drivers/vme/vme 0xfacd8e72 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x34354f10 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x482ce996 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xc789c1aa w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xe653bbb9 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x3240b3bb w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x88362765 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x4b29cbbf w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0xfe1f7855 w1_ds2781_io +EXPORT_SYMBOL drivers/w1/wire 0x5b3e7704 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x9ab86279 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xd7609641 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xeafe1b3b w1_register_family +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xb5f20875 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xc4f657bf iTCO_vendor_pre_stop +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xdc6effc9 iTCO_vendor_pre_start +EXPORT_SYMBOL fs/btrfs/btrfs 0x27476846 ulist_reinit +EXPORT_SYMBOL fs/btrfs/btrfs 0x41e6a9d2 ulist_init +EXPORT_SYMBOL fs/btrfs/btrfs 0x7e2ee765 ulist_free +EXPORT_SYMBOL fs/btrfs/btrfs 0xa2eec2e8 ulist_fini +EXPORT_SYMBOL fs/btrfs/btrfs 0xb1320bc8 ulist_add +EXPORT_SYMBOL fs/btrfs/btrfs 0xb42289d2 ulist_alloc +EXPORT_SYMBOL fs/btrfs/btrfs 0xc2c745db ulist_next +EXPORT_SYMBOL fs/configfs/configfs 0x0a8e61d7 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x17ceb08a config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x3c7636ea config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x479753f1 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x68d1fa55 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x7bfe0e0a config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x9a900a6d configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x9ba0b2bc configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xded585cc configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xdff03111 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xeb9d1ba0 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xed4aa8e1 config_item_set_name +EXPORT_SYMBOL fs/exofs/libore 0x154bd722 ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0x170737f4 ore_remove +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x2b73e3b4 ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0x3ab08b57 ore_read +EXPORT_SYMBOL fs/exofs/libore 0x4527e170 ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x4e46a4f4 ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0x51e45189 ore_write +EXPORT_SYMBOL fs/exofs/libore 0x5928d3bf ore_create +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xb685098b ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0xf250d10d ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0xffbdba3b extract_attr_from_ios +EXPORT_SYMBOL fs/fscache/fscache 0x0bf3e13c fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x199d5226 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x28fa84e6 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x299f0364 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x2ea3d111 fscache_op_complete +EXPORT_SYMBOL fs/fscache/fscache 0x2f90316e fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x352a4db0 fscache_object_init +EXPORT_SYMBOL fs/fscache/fscache 0x538818e3 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x62db6fdb fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x6390dea0 __fscache_disable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x74af9901 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x7e7f81bf __fscache_readpages_cancel +EXPORT_SYMBOL fs/fscache/fscache 0x809ba6a7 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x839458b9 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x8815aa91 fscache_object_destroy +EXPORT_SYMBOL fs/fscache/fscache 0x8dc9ef14 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x93f62986 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x9d0d2cf5 __fscache_check_consistency +EXPORT_SYMBOL fs/fscache/fscache 0xa175305a __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0xa53a7726 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xa89ca613 __fscache_wait_on_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0xa9dc9834 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xa9f74379 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xaa160173 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xbfe76cf4 __fscache_enable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xc2f311b1 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xc4402af0 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xcc9a2d70 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xcea0b174 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xd1815673 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0xdf3a19a4 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xe74bdba6 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0xf22d1722 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0xf2708261 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xf5143723 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xf8ac8038 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xfc16aa53 fscache_mark_page_cached +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xa0f4b528 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0xb25b2957 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0xe13337f0 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x1891e776 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x65c920c5 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x6f3cc6f3 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x6fa352a8 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xe976a26e qtree_read_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x1a703ba1 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x6d356209 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc7 0x6c1f6fee crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd09b2cba crc8 +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x0f0f1605 lc_del +EXPORT_SYMBOL lib/lru_cache 0x2ae6a89a lc_put +EXPORT_SYMBOL lib/lru_cache 0x3b3372b4 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x41111725 lc_get +EXPORT_SYMBOL lib/lru_cache 0x44ec99ee lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x4645c85f lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x540b1697 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x577252ab lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x57ff4d61 lc_is_used +EXPORT_SYMBOL lib/lru_cache 0x5dd01edd lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x62b86d70 lc_get_cumulative +EXPORT_SYMBOL lib/lru_cache 0x76b957fe lc_try_lock +EXPORT_SYMBOL lib/lru_cache 0x7afe19c6 lc_find +EXPORT_SYMBOL lib/lru_cache 0xa977668e lc_set +EXPORT_SYMBOL lib/lru_cache 0xb2deafbf lc_destroy +EXPORT_SYMBOL lib/lru_cache 0xbcdb24bd lc_committed +EXPORT_SYMBOL lib/lru_cache 0xfcc6da8d lc_create +EXPORT_SYMBOL lib/lz4/lz4_compress 0x0c222eb5 lz4_compress +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x682a23e0 lz4hc_compress +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/raid6/raid6_pq 0xd9e91f83 raid6_vgfmul +EXPORT_SYMBOL net/802/p8022 0x9d020e55 unregister_8022_client +EXPORT_SYMBOL net/802/p8022 0xdafa107b register_8022_client +EXPORT_SYMBOL net/802/p8023 0x0ffcced3 destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0xef8738f5 make_8023_client +EXPORT_SYMBOL net/802/psnap 0x23d61166 register_snap_client +EXPORT_SYMBOL net/802/psnap 0xbcd36fd0 unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x031f113e p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x078c7ff6 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x1a6debeb p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x1dddf12d p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x26b9b970 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x281d551d p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x30d8c2b4 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x314a3c92 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3aeaa2d6 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x3f9dee69 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0x42667e7a p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x42ed8545 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x44d2c2c0 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x44d88652 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x4c70b40a p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x59aa3945 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x675123c6 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x6ce03f36 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x6f45f563 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x6f61884b p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x77995ad3 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x77a74310 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x80de4037 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x8359f4ca p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x8f22a0e1 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0xa0c8aeea p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xa27e580f p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xa5b96cd8 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xa8983901 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0xb351df9b p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0xbf678f0f p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xcfa089b5 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xd310ed16 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0xd40871c0 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xd7f0b5b5 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0xd8971c4e p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xdbf2c058 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xdd33b55e p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xdfba4e42 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0xe25451d5 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xe3072df1 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe7836bef p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xfb649f0f p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0xfb6611b9 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x19d2380f atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x829a8eb6 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xc1288398 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xcd41960d atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x68021575 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x7690cb83 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x7cf3d1f1 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x80c2d6af atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x93136f41 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0x9bbce606 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa6bfa8f1 vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xbb81ae2c atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xc2fff359 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xc728e689 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xd41542c9 atm_charge +EXPORT_SYMBOL net/atm/atm 0xe83e98a7 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0xed9f75ae atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xf32b646f vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x0950c76a ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x29b2d743 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x2deb2dcf ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x3afee63e ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x44470a78 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x459cc63f ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x6ffd1252 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xacddb720 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xbe99f192 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xf396c283 ax25_rebuild_header +EXPORT_SYMBOL net/bluetooth/bluetooth 0x046c756b bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2066605d bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x27ad9b17 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x301d4775 bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0x39ea3be4 l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3df28026 __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3ffbaee4 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x429251d3 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x44798aed bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4da2a2da hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x51874b07 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x51e5f125 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x66366fd4 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x67444567 bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0x71d63b27 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x79119d6a hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c640527 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8c245686 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8ef4a935 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x94a6644d hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x98ab4cf9 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9af38b2e hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa2e9895f hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xae5776d0 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb28b0e82 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb5c76fbf l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb61a0c3b bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb727d3fe hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb7e0956b __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc0a22de8 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcb24a93e hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd7b2deec hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdaecde31 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdcf1258d l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdffe4864 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe47f62dd bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe72cc6c0 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe9292925 l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf7c491ab hci_recv_frame +EXPORT_SYMBOL net/bridge/bridge 0x1996dea7 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x2c321699 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x51f0362e ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd4d0d830 ebt_do_table +EXPORT_SYMBOL net/caif/caif 0x029e3a5d cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x38701a7c cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x53b53831 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x6a44fc70 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x77f11e5e caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x9197167d get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0x966d7de2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/caif/caif 0xfb020f56 caif_enroll_dev +EXPORT_SYMBOL net/can/can 0x0a1f190f can_ioctl +EXPORT_SYMBOL net/can/can 0x2f5cf916 can_proto_unregister +EXPORT_SYMBOL net/can/can 0x5afa33c5 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x66b63e80 can_proto_register +EXPORT_SYMBOL net/can/can 0xc4897995 can_rx_register +EXPORT_SYMBOL net/can/can 0xe312729b can_send +EXPORT_SYMBOL net/ceph/libceph 0x01b257e6 osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0x02ab0ba3 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x038a121a ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x0580edfc ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0d61c270 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x0f20cc5f osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x1091267b __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x1295108e ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x1475bf0d ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x1490134b osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1c04fc42 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x1ddaa681 osd_req_op_cls_response_data +EXPORT_SYMBOL net/ceph/libceph 0x1e481880 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x20d151cb ceph_osdc_setup +EXPORT_SYMBOL net/ceph/libceph 0x2758a681 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x2ac4e44a ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0x2b10d4ba ceph_messenger_init +EXPORT_SYMBOL net/ceph/libceph 0x2b3cc6a8 osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x2f65d537 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x34b53d16 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x36b96019 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3b4d32e1 ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x3df0ec7c ceph_calc_ceph_pg +EXPORT_SYMBOL net/ceph/libceph 0x3f1641cb ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x3f688151 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x401935b3 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x41edfde7 ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x4205ffd7 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x438f6a82 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x43efd647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x48949da8 osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x4a283545 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x4c54ad69 osd_req_op_watch_init +EXPORT_SYMBOL net/ceph/libceph 0x4e0e9e8e ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x570ceb67 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x58f12869 ceph_auth_update_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x59a0a977 ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0x5caa8b01 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0x5cc6e541 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x5d61d5bd ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x6b2e3bcd ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x6c5d5ac1 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x7168baf8 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0x74cf0639 osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7e4df0d8 ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x7ea4dc2c ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x819ed1b7 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0x81eae1b6 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x82ab93e3 ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0x83916a86 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x8408b9c1 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x87e91cff ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x8b324ded ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0x90519035 osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x923ee764 osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x99e36571 ceph_osdc_cleanup +EXPORT_SYMBOL net/ceph/libceph 0x9aa440ac ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x9b54f724 ceph_auth_create_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x9c43e2b3 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0x9fc87d45 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0xae3515ba ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb5b86c75 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb9bed8d7 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc55de604 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xca27540e ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xd12b0920 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd38b1df1 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0xd59a5c69 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0xd5d042fd ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xd942bcd7 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0xe0a6b990 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0xe10963b8 ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0xe4dce661 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0xe57313db ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xe60c27c2 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xe6da09d4 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xe82c9c32 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0xe8d56507 ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0xed229339 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0xee14e381 osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0xee3190a2 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0xf10ba56a ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0xf1a32417 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0xf5774cba ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0xf7ff7cad ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0xfa3a6a0f ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xfcfddd5e ceph_monc_got_mdsmap +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x15db09f6 dccp_syn_ack_timeout +EXPORT_SYMBOL net/ieee802154/ieee802154 0x217a7d46 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3c82ce16 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x57a4c89e ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6f920a0b ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x736b4a4f wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x842732db ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8df63171 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9f2bbacc wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xadbbc48f ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xaebf3a54 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb7021f33 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xcce0fd07 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe9b10f6d wpan_phy_free +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x344f46de arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x384dc1af arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x4366a085 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x214ab548 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x2e9de3c6 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xa23d02fb ipt_do_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x1279aa76 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x923695b8 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x8b3f8512 ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x8e6faeff ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x296d6f8f ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x5fd3e3e8 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xc67cd0ef ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x3d2f164b xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0xd5e58712 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x95d2cca8 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xea9b69b8 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x1eb81145 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x397259a5 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x39a4260c ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4ed75ca6 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa3e95aa8 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb766b727 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xcaf8ce83 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe4f290fc ircomm_data_request +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x09f58a8b hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x219b5eaf irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x2295521e irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x237b2721 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x26e6b539 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x2a1b8f03 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x30d9c323 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x33cbe2c6 proc_irda +EXPORT_SYMBOL net/irda/irda 0x3b6d5f65 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x4175001d irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x42a9904d irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x4792743e irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x58c7682f irlap_close +EXPORT_SYMBOL net/irda/irda 0x615ee918 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x65348637 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x66ef7db3 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x76ef9f52 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x7927fb3f iriap_close +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7dabe31e hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x7f9275a2 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x7fb81606 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x86b5f4ce hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x86c381ed iriap_open +EXPORT_SYMBOL net/irda/irda 0x89916bce irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x8b69b459 hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x93fdf2ef irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9f3fb3bc irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xa4548c32 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xabdd1465 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0xad66e1db hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0xb009d69b irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0xb20503dc irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc2bd1c8f irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0xc310cf21 hashbin_new +EXPORT_SYMBOL net/irda/irda 0xc647d742 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0xd1ae6745 irias_find_object +EXPORT_SYMBOL net/irda/irda 0xd52601ee iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xd57045a8 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd803f85e irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf38dd1e8 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xf5b890c3 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0xfd443fc9 irlap_open +EXPORT_SYMBOL net/l2tp/l2tp_core 0x4e56a7e3 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x0b2013eb lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x3fb140ff lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x68326dc9 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x683c3f8f lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x8ee2bee7 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xa79affe2 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xae78b4e9 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xb00cd59c lapb_register +EXPORT_SYMBOL net/llc/llc 0x05753eeb llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x61757a7f llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x6c6cdb31 llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0x77e64d64 llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x831ff973 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0x849c130c llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0xa329de3c llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0xf9b9b9a3 llc_set_station_handler +EXPORT_SYMBOL net/mac80211/mac80211 0x009376f2 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x017c3ae7 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x01b660b2 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x0e243a85 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x15125d08 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x16cfd046 ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x1ffb18dc ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x21a2ae71 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x2dd8436f ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x2e92e074 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x2f599708 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x321964b1 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x3843f139 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x3e548e3e ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x430e73c8 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x451520a5 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x47bd3a42 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x4847489f ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x4949c45f ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x545951cd ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x5472bb93 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x5767685e ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x5846b764 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x58662c94 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x63b3cfdf ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x6b073438 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0x78028b07 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x7e944bd4 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x8f7eb45e ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x9062fc7b ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0x9571b8bf ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x95fb800a ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x986d5bea rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x9bcb4723 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x9c5e6334 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0x9d38a9ae ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x9d738232 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x9de96796 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x9f51bed6 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xa12d101f ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xa1fc36c4 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa850d1a0 ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0xa9bb6985 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa9ea4ee3 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xbd5c3497 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xc142bc7b ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xc37484e3 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xc3f7c220 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xc5e7bfb7 ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xc986b0d0 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xcb193b2f ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0xcb5b41ed ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xcccafe99 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xcd3da828 ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0xd43d9dff ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xd8922814 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0xdc24b859 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xdce63c2d ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xdd4bd957 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe3e1baef ieee80211_csa_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0xe9eeb1a7 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xebf5031b ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xed3312c1 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xed635e47 ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0xedad918e ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xf0795253 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xf395de03 ieee80211_aes_cmac_calculate_k1_k2 +EXPORT_SYMBOL net/mac80211/mac80211 0xf46c1d68 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0xfc811b14 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac802154/mac802154 0x1cef853f ieee802154_unregister_device +EXPORT_SYMBOL net/mac802154/mac802154 0x3dcbfcc1 ieee802154_register_device +EXPORT_SYMBOL net/mac802154/mac802154 0xc9f7395e ieee802154_alloc_device +EXPORT_SYMBOL net/mac802154/mac802154 0xec4bfb73 ieee802154_free_device +EXPORT_SYMBOL net/mac802154/mac802154 0xf3979dbf ieee802154_rx_irqsafe +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x03622de2 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0c4120e2 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0fe5cb58 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2ab2faf1 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x35e3be37 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x39d29220 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4b3f79be ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6eae0ebe ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xcc0bf5f0 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xce3d31b3 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdb61431a ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe8f30c0e unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe9cb0398 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xff588410 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xad6e6fc7 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xb4e91b48 __nf_ct_ext_add_length +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xcfc1a090 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x827cc6a1 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x7b63b4ad nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/nf_nat 0x1b3e8867 nf_nat_used_tuple +EXPORT_SYMBOL net/netfilter/nf_nat 0x4c5c20c2 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x563da640 nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0x6a3a76f4 nf_xfrm_me_harder +EXPORT_SYMBOL net/netfilter/nf_nat 0xcde99331 nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0xd698b97e nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x16aecd56 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x253e8b44 xt_compat_init_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x29ca0d0f xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x5356550c xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x5c9cc036 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x5ca44cbb xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x70a7b1f0 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x7befde72 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x893595b2 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xa8e56cd1 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xf41cbd34 xt_find_target +EXPORT_SYMBOL net/nfc/hci/hci 0x163c7fe6 nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x23f4fb7f nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0x2b81da4f nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0x388611cc nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0x43028a27 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x442a3a30 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x6a4ded77 nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x6f101df8 nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x6f79671d nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0x72b827a3 nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0x79d3732a nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0x83189a3b nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0x83f707c5 nfc_hci_send_response +EXPORT_SYMBOL net/nfc/hci/hci 0xacc506fa nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xb643b255 nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0xbca0b4fd nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xbe294e9b nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0xc4a88e40 nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0xda734857 nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0xe1ae38d1 nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0x73a704bf nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x831a5b6f nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0x96bf4171 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xdc1b9c4e nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xe8494b35 nci_recv_frame +EXPORT_SYMBOL net/nfc/nfc 0x0e2f9107 nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0x27ec21b2 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x3e24e1da nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x424047f0 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x437e9575 nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0x4c897a00 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x5ae7f1aa nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x73f349de nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0x8242f4d8 nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0x9081b925 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x910f0f93 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x953f28ad nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0xa79db2cf nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0xad1c70c0 nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0xb219f4d2 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0xc150b948 nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0xc60579d8 nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0xd368186d nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0xd970c5b7 nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0xe8a7b0fc nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc_digital 0x2b0bf3bd nfc_digital_unregister_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x9ef82d7b nfc_digital_free_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xae21373c nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xc7eac412 nfc_digital_register_device +EXPORT_SYMBOL net/phonet/phonet 0x06969b8c phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x153ca5b3 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x2047c474 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x66b64125 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x7fa8b1a9 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x8bebe065 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xb0992193 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xb2a320c8 pn_sock_hash +EXPORT_SYMBOL net/rds/rds 0x7505d413 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x11f0d2cc rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x29a8b5ff key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3bacce3e rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4e861b54 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x62fa3bde rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7ac3790a rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9100a330 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x975fdf96 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa516ff53 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa5dc58c8 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xafae8dc3 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd0e1afbf rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd5e18dc8 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf2dcd1aa rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf52638a7 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/sctp/sctp 0x32403752 sctp_do_peeloff +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x451d2b21 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x72524118 gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xdc9a13fe gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/sunrpc 0x8b52d68e svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0x5fe36d52 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0xe0be0aee wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x0013a725 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x013036a0 cfg80211_report_obss_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x013bbb63 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x0266efa6 cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x029ec4ca cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x04557d10 cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0x0501e719 cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0x06bf5fcd cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x11ccb74b cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x16da7d32 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19e03378 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x1ad1261c cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x1d43d9d5 cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x1e83c93a cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x2667eeed wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x27a8022b cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x2d235ea8 cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0x2f29be3c cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x315a2064 cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x31f81499 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x3353de2e wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x34d3f97d cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x378678c0 cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x391db8c3 cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x406a8302 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x4271314d wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x48a67aba cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0x4b638df6 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x4c3b5878 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x4c40b2fb ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x502e8997 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x520dc2c1 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x53a34275 cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x549ae50f ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x5527e628 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x56347444 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x593dbd76 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x5f9a35c4 cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0x605d9eca cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x66bc1ea7 cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6d6cb9ad ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x70dcf1e7 cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x71b29f6c cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x7281ccdb cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x800f0fc9 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x826ec3d8 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x82ce9fac wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x888cf2db cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0x9112178e cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9a48c099 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x9d5b522b cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xa1425906 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa3c9b54f cfg80211_inform_bss_width +EXPORT_SYMBOL net/wireless/cfg80211 0xaeae60a3 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xb4db368d cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xb885fcbe ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xb9bfccfe wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xba799db8 cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xbc0504e1 cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xc121e335 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0xc15c8611 cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc665b1ca cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0xc77e37df cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xc8cd2387 cfg80211_roamed_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xcb11e751 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xcf618a57 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0xd084e75b cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xd16408b2 cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xdba126c1 reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0xe259fde2 cfg80211_inform_bss_width_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xe88c94c5 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0xee03b7f9 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xee3e7c30 cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0xee42db3c cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xf86a2ee9 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xfba4c175 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0xfd4c94cd cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x0a382dd4 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x0ab33705 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x15ca9a62 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x9be973ce lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe0ca3977 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0xe39280d2 lib80211_register_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x5e74304b ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x0eed2c7c snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1d913734 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6aa6723b snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b0d4298 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x1162dce4 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x8df2d41f snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x01b82065 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x0d2b74da snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2ceec35d snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x668570c0 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7f92860c snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb494afee snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xc7b2b6c2 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe0a50454 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x9101c92f snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x05d05671 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x1ac2156a snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x1af172f0 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x22446fa9 snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x25fb3229 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x285bd148 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x3251979b snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x334bfe90 snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x342a2354 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3e8a7ad1 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x41353809 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x41a8267f snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4b015768 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x4beda4a4 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x55d86b7d snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x58e8cbc1 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x5bb74cb7 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x5cc1306f snd_device_register +EXPORT_SYMBOL sound/core/snd 0x5ed64e7e snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x647f6b48 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x665e71b1 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x72522482 snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0x752d7246 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x7717bc97 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x7c78e9f6 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x7c83bf7b snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x7d0fbc62 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x7fdc49f2 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x835f4dae snd_device_new +EXPORT_SYMBOL sound/core/snd 0x88e0ed46 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x9269ffd5 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x9662c8cf snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x998045e5 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0x9f66780d snd_cards +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa2733ec1 snd_card_free +EXPORT_SYMBOL sound/core/snd 0xa507de3c snd_card_create +EXPORT_SYMBOL sound/core/snd 0xa85ce294 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0xaf6bbeac snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb75f42c7 snd_card_unref +EXPORT_SYMBOL sound/core/snd 0xbc31e80e snd_info_register +EXPORT_SYMBOL sound/core/snd 0xcd44c730 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xdfed4b55 snd_card_register +EXPORT_SYMBOL sound/core/snd 0xe883f8a0 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0xea482abf snd_jack_report +EXPORT_SYMBOL sound/core/snd 0xf23c87e6 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xf4acca89 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xfc957a09 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xfe229000 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xffcda9c2 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0xfffd89db copy_from_user_toio +EXPORT_SYMBOL sound/core/snd-hwdep 0x3218637c snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x06b310c9 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x0bd96594 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x5898dcba snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x9340cf9e snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0xbc98467d snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xca34c226 snd_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-page-alloc 0xf24634f6 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xf97371e6 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x00c21fdd snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x145db1be snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x1544deab snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x18e89db3 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x22a28d3b snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x253f08c9 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x2545e7f9 snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x257c675d snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x2777550d snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x324a9135 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x35951742 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3c4d0abe snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0x3ff60f21 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x457d4d14 snd_pcm_debug_name +EXPORT_SYMBOL sound/core/snd-pcm 0x464ddfa5 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x55de8587 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x5d57df43 snd_pcm_new_internal +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x60e1bf04 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x64a2e837 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x65b7d28f snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x667bbfaa snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x71ba84cc snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x834dc955 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x859818b5 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x8e78dc1b snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x921a4d8b snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x94098ff8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0x97ae75b7 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x9caa8d2c snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x9d03cf1b snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xa3170cd6 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa9adc229 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xaa8a8edc snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xb1eced7f snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xb7eb50ab snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xb7fca72e snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0xb81a7d25 snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc03408d4 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xcb2dbb4e snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0xd279f62d snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0xd36daf7b snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0xdc9fa070 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe585cc0b snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xeabd1542 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf3e149df snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0xfa170041 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xfcd06578 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL sound/core/snd-rawmidi 0x061722cc snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0ad156e3 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0fd78af6 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x26ab54ac snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x36b2d3a0 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x423577be snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x49b3b4f3 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5f605169 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x61987ffa snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x79211e6b snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8c486d8a snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8cb0cac7 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x912c3708 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb19efa00 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc7121f31 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf8de6d54 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfd5192a6 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-timer 0x1baea1cd snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x4fbf247c snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x743f1ff0 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x7b85006c snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x7ecf4477 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x8c709699 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xb1cd552c snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0xb524dc98 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xb86d9345 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0xcfeb3429 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0xd7b4d509 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0xdad23f63 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xe332689d snd_timer_open +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x3052addb snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1becc0ef snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x3f6aad43 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x46706daf snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5dcbf47f snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8c9e1d20 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x909ef455 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xae3d59dc snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xc432d647 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe22b1a61 snd_opl3_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x095283fb snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x14c74e6f snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x2124c564 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x22b20db1 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x25efde1b snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x77d56dff snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x9e7b736b snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xace4fb7c snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc67b23fc snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1023ca3b amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1d58a0b0 cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x20254e45 amdtp_syt_intervals +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x38130c4f fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x43a547bc fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x48a69fa1 amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x582a425a amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x60010f6a amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6716d9e0 cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6bf34a5a cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x71a1e10a fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x75f5d434 amdtp_out_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x99b02176 amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa6b4e8c1 cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa9e56f73 iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb0a2b412 amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xbbc4bb86 amdtp_out_stream_pcm_pointer +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xbbfc2adf amdtp_out_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xca2e16bb fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xcad890b1 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd9bae378 fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe30bf3d7 snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xeadd5aa3 amdtp_out_stream_set_parameters +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xee5b3e42 iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xef9dd2e1 fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf0e282e7 cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xfd602024 amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x5bdb0eff snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x65966987 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x819aa1bf snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xb875188b snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xe4713688 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf7a7faae snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x2a584dcf snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x51349904 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x54196d04 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x8131be38 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd0367e4f snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd47cd9b4 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x1e0d8817 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x68236086 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x6dfcb258 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xfa19abdd snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x60ade7aa snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xedfca40e snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x4ea694d1 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x5308af9f snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x5ce0d986 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x965ecd03 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xd86ac007 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-i2c 0x19bbf4d5 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x20b0c09e snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x24912375 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x26f755d4 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x51014ab2 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc0bb6ae7 snd_i2c_sendbytes +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x1336548f snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3ff978b0 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4d4fa519 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4de4bbae snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5d6c8249 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x6bc2740f snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x903e0d3a snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xac332e2c snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xde8aa5dd snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xfd96d4c6 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x053f08e4 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x39a967f9 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe0b3f690 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe3846038 snd_sb16dsp_configure +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1672b737 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1de87f55 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1f503bf2 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2422bb67 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x27ca6a95 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2eac0d9f snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x35ad7c07 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x483ad013 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7a683eb8 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb1faa68a snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb591c4c7 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb8b5a6e8 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbc4fe0b9 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd4897b14 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xec462944 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xee68c68b snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf9ffca78 snd_ac97_update +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xf8630382 hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0614b27a snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1a818a48 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x28844486 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4384979a snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xa102ed0a snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xa95074d0 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd4cbee63 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd85b64a8 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xfda97956 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x8052df44 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x972b9771 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xbc35da38 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0c7b462a oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1e97b51f oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2d254213 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4fcacb4f oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x50038975 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6d818e06 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7e12efdb oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x82230792 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x848d6b48 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa29e41cf oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa2a5eb96 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa80e6821 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbc67d61b oxygen_pci_pm +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xca5dbb1b oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcbb57ef2 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xce586c40 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd2e8a089 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd813c0eb oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf06aa518 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf884238c oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x2b733018 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x64ecc9e7 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x8a5c0fda snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x8ba8673a snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x9461c224 snd_trident_free_voice +EXPORT_SYMBOL sound/soundcore 0x45efdbed sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x484fd5fe snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x517a4944 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x64df634d snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x8caf4134 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xa6a99bfe snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xb033ffa7 snd_emux_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x1f02babc __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x31c7c83f __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x33018c5f snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x73089181 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xe31b93c0 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xe341de7d __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xefb44c89 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf5a61c1c snd_util_mem_avail +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xbedf4e67 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 __symbol_put +EXPORT_SYMBOL vmlinux 0x00000000 alloc_pages_current +EXPORT_SYMBOL vmlinux 0x00000000 current_fs_time +EXPORT_SYMBOL vmlinux 0x00000000 d_tmpfile +EXPORT_SYMBOL vmlinux 0x00000000 do_sync_read +EXPORT_SYMBOL vmlinux 0x00000000 filp_close +EXPORT_SYMBOL vmlinux 0x00000000 finish_open +EXPORT_SYMBOL vmlinux 0x00000000 generic_getxattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_write_sync +EXPORT_SYMBOL vmlinux 0x00000000 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x00000000 in_group_p +EXPORT_SYMBOL vmlinux 0x00000000 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x00000000 iov_shorten +EXPORT_SYMBOL vmlinux 0x00000000 iterate_fd +EXPORT_SYMBOL vmlinux 0x00000000 ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 path_is_under +EXPORT_SYMBOL vmlinux 0x00000000 register_exec_domain +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout +EXPORT_SYMBOL vmlinux 0x00000000 sock_register +EXPORT_SYMBOL vmlinux 0x00000000 sys_close +EXPORT_SYMBOL vmlinux 0x00000000 task_nice +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x00000000 vm_brk +EXPORT_SYMBOL vmlinux 0x000996a8 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0x002cfe03 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x004068de pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x00471fc0 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x006c2b91 keyring_alloc +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00aabba0 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x00bf9f91 efi +EXPORT_SYMBOL vmlinux 0x00ce2bee mem_cgroup_subsys +EXPORT_SYMBOL vmlinux 0x00d711a8 vfs_symlink +EXPORT_SYMBOL vmlinux 0x00d765f8 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x00d96fb0 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0101d5b1 ip_idents_reserve +EXPORT_SYMBOL vmlinux 0x01154e61 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x014b4066 tcp_child_process +EXPORT_SYMBOL vmlinux 0x015cff1a audit_log +EXPORT_SYMBOL vmlinux 0x015d711a pci_find_capability +EXPORT_SYMBOL vmlinux 0x015ddbdc wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x01896c1b acpi_device_set_power +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01987886 try_to_writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x019c1d30 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x01d8a27a fail_migrate_page +EXPORT_SYMBOL vmlinux 0x01f3ec98 tty_check_change +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x02237f7a set_create_files_as +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x02775343 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x027a1300 pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02bcf65f kern_path_create +EXPORT_SYMBOL vmlinux 0x02d55237 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x02e72ac9 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0339f1ff tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0x0348dff6 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x03498156 cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x0370d13d __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x037862ab compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x039e5332 mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x03b72e30 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03db5704 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x03db8187 gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0x03e5ddd5 con_is_bound +EXPORT_SYMBOL vmlinux 0x03ebda85 dns_query +EXPORT_SYMBOL vmlinux 0x03f7153e pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04017232 dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x04239741 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x045f9fc7 eth_header_cache +EXPORT_SYMBOL vmlinux 0x04658196 dev_close +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04901b72 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x04927208 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x04a6223b __idr_pre_get +EXPORT_SYMBOL vmlinux 0x04c162c3 __memcg_kmem_get_cache +EXPORT_SYMBOL vmlinux 0x04c6e9ad jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x04ca7a16 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04ea5d10 ksize +EXPORT_SYMBOL vmlinux 0x04f852fe devm_gpio_request +EXPORT_SYMBOL vmlinux 0x050877b9 dmi_first_match +EXPORT_SYMBOL vmlinux 0x0511cd89 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x052d98b3 netlink_net_capable +EXPORT_SYMBOL vmlinux 0x0536cbb7 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x053eb9c3 register_shrinker +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x0545c9b6 mmc_start_bkops +EXPORT_SYMBOL vmlinux 0x055c8559 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x057f4801 dev_uc_del +EXPORT_SYMBOL vmlinux 0x058ebd9b sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x058f180c dma_set_mask +EXPORT_SYMBOL vmlinux 0x0593a99b init_timer_key +EXPORT_SYMBOL vmlinux 0x05b2ef8e sk_receive_skb +EXPORT_SYMBOL vmlinux 0x05b44f20 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x05bd84c9 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x05bec50d pci_get_subsys +EXPORT_SYMBOL vmlinux 0x05cc4f7a dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x05f6ff71 dquot_commit +EXPORT_SYMBOL vmlinux 0x060003eb follow_down +EXPORT_SYMBOL vmlinux 0x0603ec65 register_qdisc +EXPORT_SYMBOL vmlinux 0x0608f3e5 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061ecc90 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x061f4039 acpi_get_table_with_size +EXPORT_SYMBOL vmlinux 0x062cac57 fbcon_set_rotate +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x064888e3 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x065aaa04 mnt_unpin +EXPORT_SYMBOL vmlinux 0x065b0391 cdrom_release +EXPORT_SYMBOL vmlinux 0x065b8425 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x0672e420 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x06797871 vm_stat +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x068d686e ipmi_get_smi_info +EXPORT_SYMBOL vmlinux 0x069d0128 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x06a580c0 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x06a803e2 bio_split +EXPORT_SYMBOL vmlinux 0x06bc3acf cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x06c0dae5 __kernel_fpu_end +EXPORT_SYMBOL vmlinux 0x06c4309f ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x06d06328 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x06dc70c5 mount_nodev +EXPORT_SYMBOL vmlinux 0x06dfae34 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x06f3c79e md_integrity_register +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x070b5718 vm_mmap +EXPORT_SYMBOL vmlinux 0x070e7ad1 pci_platform_rom +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x0751125e sk_stream_error +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07c849dd cdev_init +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07e1863f nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x07e1dbc0 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x07e3b08c __inet6_hash +EXPORT_SYMBOL vmlinux 0x08050a31 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0x08085b84 sk_wait_data +EXPORT_SYMBOL vmlinux 0x08114ce1 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x0846f59a cpu_info +EXPORT_SYMBOL vmlinux 0x0847951e misc_register +EXPORT_SYMBOL vmlinux 0x0860ee5f blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x0862d051 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x086d64de inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x088f61ff ip6_route_output +EXPORT_SYMBOL vmlinux 0x0897287b acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x089e72df truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x08aa9cb9 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x08d3207d qdisc_watchdog_schedule_ns +EXPORT_SYMBOL vmlinux 0x08f64aa4 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x08fc0670 pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0x091c67f1 vfs_readv +EXPORT_SYMBOL vmlinux 0x0938e7cd tty_devnum +EXPORT_SYMBOL vmlinux 0x09762093 sock_release +EXPORT_SYMBOL vmlinux 0x097bd6a2 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x098431ba acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x098b6dac proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0992780d efi_enabled +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09d99d86 x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0x0a000109 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x0a103ac2 netdev_emerg +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a41cba6 twl6040_set_bits +EXPORT_SYMBOL vmlinux 0x0a47d938 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x0a5e8006 dma_common_mmap +EXPORT_SYMBOL vmlinux 0x0a770832 register_memory_notifier +EXPORT_SYMBOL vmlinux 0x0a779660 dev_printk +EXPORT_SYMBOL vmlinux 0x0a86e25b _raw_read_unlock_irq +EXPORT_SYMBOL vmlinux 0x0aad703c get_disk +EXPORT_SYMBOL vmlinux 0x0abb5df6 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x0ac8b928 sock_no_bind +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad0e67c idr_replace +EXPORT_SYMBOL vmlinux 0x0ad12abd dcb_setapp +EXPORT_SYMBOL vmlinux 0x0add5a4d ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x0aff8ce8 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x0b0c9912 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1a8528 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b42ad7d inode_set_bytes +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b775f28 __seq_open_private +EXPORT_SYMBOL vmlinux 0x0b7da43a skb_trim +EXPORT_SYMBOL vmlinux 0x0bbc5908 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bc4b467 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x0bcc03b9 kobject_get +EXPORT_SYMBOL vmlinux 0x0bd212bd pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0x0be03762 lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x0be9ac68 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x0c0bf936 generic_readlink +EXPORT_SYMBOL vmlinux 0x0c45fc96 vfs_lstat +EXPORT_SYMBOL vmlinux 0x0c58a8cd netdev_increment_features +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c6ad797 scsi_unregister +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cb53cd7 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x0cdb7d12 __kernel_fpu_begin +EXPORT_SYMBOL vmlinux 0x0ce900af blk_finish_plug +EXPORT_SYMBOL vmlinux 0x0cf8c9f5 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x0d0f38cc sock_no_getname +EXPORT_SYMBOL vmlinux 0x0d1488f5 amd_iommu_enable_device_erratum +EXPORT_SYMBOL vmlinux 0x0d391d73 bio_clone_bioset +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d4d785b netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d5f10a3 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x0d817fc8 pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0x0d91881d tcp_check_req +EXPORT_SYMBOL vmlinux 0x0d95af26 netif_rx +EXPORT_SYMBOL vmlinux 0x0d986431 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da7d8d1 skb_pad +EXPORT_SYMBOL vmlinux 0x0dd755e7 locks_free_lock +EXPORT_SYMBOL vmlinux 0x0de28206 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x0de46671 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x0e20b588 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x0e371eeb input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x0e41de1b key_reject_and_link +EXPORT_SYMBOL vmlinux 0x0e4bc885 input_unregister_device +EXPORT_SYMBOL vmlinux 0x0e55b9b7 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x0e5797f3 mpage_readpages +EXPORT_SYMBOL vmlinux 0x0e67bf57 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x0e6da44a set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x0e7435f1 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x0e76469f ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x0e7f0c7d remove_proc_entry +EXPORT_SYMBOL vmlinux 0x0e83c16f fb_find_mode +EXPORT_SYMBOL vmlinux 0x0eb238f6 blk_mq_init_commands +EXPORT_SYMBOL vmlinux 0x0eb46d97 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x0ecb08c5 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0x0ed8cc7b acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x0efcbb1b set_current_groups +EXPORT_SYMBOL vmlinux 0x0efe3321 devfreq_interval_update +EXPORT_SYMBOL vmlinux 0x0f0cd253 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x0f128b2a default_qdisc_ops +EXPORT_SYMBOL vmlinux 0x0f2e69e7 d_validate +EXPORT_SYMBOL vmlinux 0x0f3d9b0d elv_abort_queue +EXPORT_SYMBOL vmlinux 0x0f4b54ba input_allocate_device +EXPORT_SYMBOL vmlinux 0x0f4c91ed ns_to_timespec +EXPORT_SYMBOL vmlinux 0x0f94b8db vfs_rmdir +EXPORT_SYMBOL vmlinux 0x0f9a08db inet6_unregister_icmp_sender +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fbe04d3 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x1049d1bd elv_rb_del +EXPORT_SYMBOL vmlinux 0x1059be90 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x105d82e8 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x1075c727 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x107be211 abort_creds +EXPORT_SYMBOL vmlinux 0x10965679 uart_match_port +EXPORT_SYMBOL vmlinux 0x10a6ed00 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x10a8a5db fget_raw +EXPORT_SYMBOL vmlinux 0x10b50a59 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x10c73c4a ppp_input +EXPORT_SYMBOL vmlinux 0x10ccfe31 seq_open +EXPORT_SYMBOL vmlinux 0x10d6b80d __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11004cbb bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x11052843 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x112a04dd netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x11370325 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x113bde81 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x115656db poll_freewait +EXPORT_SYMBOL vmlinux 0x1163969b unregister_filesystem +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x118b9002 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x11a2bedf pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0x11af90cd inet6_del_offload +EXPORT_SYMBOL vmlinux 0x11be1a17 inode_init_always +EXPORT_SYMBOL vmlinux 0x11d76afa tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x11e2ec12 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x11ed6519 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x120d67d4 unregister_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x123a30e2 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x123a9df0 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x124ab1fa inet6_release +EXPORT_SYMBOL vmlinux 0x129de341 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12aa4be8 xfrm_input +EXPORT_SYMBOL vmlinux 0x12afd6fd unregister_netdev +EXPORT_SYMBOL vmlinux 0x12c4c629 pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0x12d3f009 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x12dfeb12 vprintk_emit +EXPORT_SYMBOL vmlinux 0x1305d532 ucs2_strncmp +EXPORT_SYMBOL vmlinux 0x132f56b6 set_pages_nx +EXPORT_SYMBOL vmlinux 0x13307fde vsscanf +EXPORT_SYMBOL vmlinux 0x1348760d ipmi_request_settime +EXPORT_SYMBOL vmlinux 0x134a6106 softnet_data +EXPORT_SYMBOL vmlinux 0x1369c2dd keyring_search +EXPORT_SYMBOL vmlinux 0x1370a75a dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x1380ffc2 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x13817f6d unlock_new_inode +EXPORT_SYMBOL vmlinux 0x138a8ce6 security_path_truncate +EXPORT_SYMBOL vmlinux 0x1393912b scsi_put_command +EXPORT_SYMBOL vmlinux 0x13ac4231 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d7b342 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x13e745da __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x13e8c98b brioctl_set +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x140ce601 sock_no_poll +EXPORT_SYMBOL vmlinux 0x14263389 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x1427808c __skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x1438c178 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x1444cc8c input_register_handler +EXPORT_SYMBOL vmlinux 0x144b8935 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x1451d641 filemap_flush +EXPORT_SYMBOL vmlinux 0x1472ee01 pci_bus_put +EXPORT_SYMBOL vmlinux 0x14814e7e file_open_root +EXPORT_SYMBOL vmlinux 0x14b2ac5a nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x1502a99a devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0x150389d6 acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0x151a2fe5 eth_header +EXPORT_SYMBOL vmlinux 0x153be9fc __bio_clone +EXPORT_SYMBOL vmlinux 0x15469a1d invalidate_partition +EXPORT_SYMBOL vmlinux 0x154c4b57 drop_super +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x156c4a05 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x157c2b01 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x1590c049 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x15bd7b35 __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0x15c009a2 __cleancache_invalidate_inode +EXPORT_SYMBOL vmlinux 0x15dc0e81 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x15f38e5c __skb_checksum +EXPORT_SYMBOL vmlinux 0x15f571ec blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x1637ff0f _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x16793482 vfs_link +EXPORT_SYMBOL vmlinux 0x167c5967 print_hex_dump +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x1682528b simple_write_end +EXPORT_SYMBOL vmlinux 0x16836ca9 generic_file_remap_pages +EXPORT_SYMBOL vmlinux 0x168f1082 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x1692c81b pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x16b81f21 pci_find_bus +EXPORT_SYMBOL vmlinux 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL vmlinux 0x16dec03f jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x16f1dc27 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x1706e46c mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0x17086275 lock_may_read +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x1710bc5d __ip_dev_find +EXPORT_SYMBOL vmlinux 0x1723ac82 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x174efdb4 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x1790d76b _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x1793bd55 __nlmsg_put +EXPORT_SYMBOL vmlinux 0x17a72a75 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0x17ac1a9f sock_setsockopt +EXPORT_SYMBOL vmlinux 0x17b1125d gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x17b64d09 dqstats +EXPORT_SYMBOL vmlinux 0x17dd49b6 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x17e4e1cc abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x17e5f8cd call_netdevice_notifiers_info +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x1816d4e0 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x1834b1a7 genlmsg_put +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x1857b324 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x1864c6f1 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x188a3dfb timespec_trunc +EXPORT_SYMBOL vmlinux 0x189018e8 dm_get_device +EXPORT_SYMBOL vmlinux 0x18974066 put_io_context +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18a5ced0 skb_put +EXPORT_SYMBOL vmlinux 0x18a66457 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x18aa1d8f vc_resize +EXPORT_SYMBOL vmlinux 0x18b72573 register_kmmio_probe +EXPORT_SYMBOL vmlinux 0x18ecf801 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x18f16a34 vm_map_ram +EXPORT_SYMBOL vmlinux 0x192f1e0c max8998_read_reg +EXPORT_SYMBOL vmlinux 0x19444627 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x196bc459 pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b9cf47 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19d7a862 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x19f41c08 nf_reinject +EXPORT_SYMBOL vmlinux 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL vmlinux 0x1a1d0f32 skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0x1a45a7c2 generic_make_request +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a4f3bac kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x1a5399a7 vfs_open +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a742067 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x1a9e0668 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x1aa35e3b sock_kmalloc +EXPORT_SYMBOL vmlinux 0x1aa67a61 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL vmlinux 0x1abebeaa scsi_scan_host +EXPORT_SYMBOL vmlinux 0x1ac5d3cb strcspn +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae14ef5 _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x1af00e05 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b12de8f inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x1b1e1088 sg_nents +EXPORT_SYMBOL vmlinux 0x1b353088 clk_register_clkdevs +EXPORT_SYMBOL vmlinux 0x1b47fd11 thaw_bdev +EXPORT_SYMBOL vmlinux 0x1b570d23 acpi_warning +EXPORT_SYMBOL vmlinux 0x1b5b341a twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6df849 clear_inode +EXPORT_SYMBOL vmlinux 0x1b7007b1 netdev_warn +EXPORT_SYMBOL vmlinux 0x1b7a4ca7 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x1b82fefa md_unplug +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9b58fd sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1b9f8efb pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x1bb9c73d blk_requeue_request +EXPORT_SYMBOL vmlinux 0x1bce7af3 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x1bd31288 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x1bdc26cf sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x1beb04e8 ppp_input_error +EXPORT_SYMBOL vmlinux 0x1bfe4650 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x1c0e6065 tty_unlock +EXPORT_SYMBOL vmlinux 0x1c245b36 n_tty_compat_ioctl_helper +EXPORT_SYMBOL vmlinux 0x1c2ff886 input_flush_device +EXPORT_SYMBOL vmlinux 0x1c3cc9a3 pcie_set_mps +EXPORT_SYMBOL vmlinux 0x1c3eb929 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1c915ff3 elevator_change +EXPORT_SYMBOL vmlinux 0x1ca7db4b ip6_frag_init +EXPORT_SYMBOL vmlinux 0x1ce03c69 pci_dev_put +EXPORT_SYMBOL vmlinux 0x1cf4b6cc mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x1d21fc47 tcp_init_cgroup +EXPORT_SYMBOL vmlinux 0x1d380104 netdev_crit +EXPORT_SYMBOL vmlinux 0x1d74eb27 iterate_mounts +EXPORT_SYMBOL vmlinux 0x1db7706b __copy_user_nocache +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de74f72 acpi_execute_simple_method +EXPORT_SYMBOL vmlinux 0x1deacc5d sock_wmalloc +EXPORT_SYMBOL vmlinux 0x1df780f1 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x1e047854 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e0ddf09 sk_dst_check +EXPORT_SYMBOL vmlinux 0x1e21471f __dst_free +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e2d2b30 vfs_statfs +EXPORT_SYMBOL vmlinux 0x1e598767 module_put +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e735d4a md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x1e7b0e60 read_code +EXPORT_SYMBOL vmlinux 0x1e92961d vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1eb89939 input_release_device +EXPORT_SYMBOL vmlinux 0x1ec3bed9 hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x1ec4eb34 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x1ee0a98f x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x1ef9cd11 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x1f0c48c6 vga_switcheroo_init_domain_pm_ops +EXPORT_SYMBOL vmlinux 0x1f22c1df vlan_uses_dev +EXPORT_SYMBOL vmlinux 0x1f355f57 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x1f37c013 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x1f51fc1f dev_mc_del +EXPORT_SYMBOL vmlinux 0x1f549e02 padata_free +EXPORT_SYMBOL vmlinux 0x1f681361 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x1f6ce67a sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fe912f1 netdev_alloc_frag +EXPORT_SYMBOL vmlinux 0x1fe9f800 unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20070a54 __invalidate_device +EXPORT_SYMBOL vmlinux 0x20092385 acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x201bff85 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x20203b86 inet_del_offload +EXPORT_SYMBOL vmlinux 0x2021c348 kobject_add +EXPORT_SYMBOL vmlinux 0x2044aea7 amd_iommu_pc_get_max_banks +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x207791a1 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0x207cf412 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20abc15b acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0x20b0529e tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x20b2bb2d param_array_ops +EXPORT_SYMBOL vmlinux 0x20b7a79f pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x20c55ae0 sscanf +EXPORT_SYMBOL vmlinux 0x20cb76d8 inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0x20d560bd tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x20d71e81 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x210f72d6 nla_append +EXPORT_SYMBOL vmlinux 0x21161acc tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x216b724e xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x217dda13 flex_array_get +EXPORT_SYMBOL vmlinux 0x21860b07 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x218d3d5e phy_device_create +EXPORT_SYMBOL vmlinux 0x219e5dd2 lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0x21b303e2 blk_put_request +EXPORT_SYMBOL vmlinux 0x21b3cab3 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x21c15ce5 pci_biosrom_size +EXPORT_SYMBOL vmlinux 0x21c24b10 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x21ca6ca0 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x21d7052e sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x2202a6f0 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x220a30d1 dev_printk_emit +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x223ae6ce blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x225265d8 blk_start_queue +EXPORT_SYMBOL vmlinux 0x226072c2 inet6_bind +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x227a9871 default_llseek +EXPORT_SYMBOL vmlinux 0x22838717 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x228c2fd4 mpage_readpage +EXPORT_SYMBOL vmlinux 0x228e4872 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x22a09676 fsnotify_get_group +EXPORT_SYMBOL vmlinux 0x22a373ba devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0x22a429b7 ip_options_compile +EXPORT_SYMBOL vmlinux 0x22a96320 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x22ad1cf8 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22d4291e inet_release +EXPORT_SYMBOL vmlinux 0x22e07e5e netlink_capable +EXPORT_SYMBOL vmlinux 0x22fd9ad0 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x2311e9bd read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x231aeac1 sk_free +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x232b2c71 md_write_end +EXPORT_SYMBOL vmlinux 0x232c7009 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x233a86e6 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x234022fd freezing_slow_path +EXPORT_SYMBOL vmlinux 0x234627e4 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x2372f52f scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0x237f084f generic_file_llseek +EXPORT_SYMBOL vmlinux 0x238390a5 dump_skip +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23c9891c kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x23d36308 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x23e4c6dc vfs_unlink +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x241d4343 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x24212d86 __frontswap_invalidate_page +EXPORT_SYMBOL vmlinux 0x242ca53d atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x2470f8e3 inode_permission +EXPORT_SYMBOL vmlinux 0x2471506f blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x2472e513 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x2484adc3 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0x248c273b ida_remove +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x251739c4 skb_tx_error +EXPORT_SYMBOL vmlinux 0x252364b8 security_inode_readlink +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x255325bc __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x259e154b nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x25a5c133 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x25bf1dad ppp_channel_index +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25f24d6b writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x25f5ed4a xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x26204af6 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x26209620 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x26278eba tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x263122f8 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x263a79b0 agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x2650d835 sysctl_ip_early_demux +EXPORT_SYMBOL vmlinux 0x2665d53a key_create_or_update +EXPORT_SYMBOL vmlinux 0x267f7e5d netdev_err +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x26948d96 copy_user_enhanced_fast_string +EXPORT_SYMBOL vmlinux 0x26b95354 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x26ba1b80 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x26e298e0 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f0453a blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x27123ed0 filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0x2712f4f5 crc32_le_combine +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x27264bba scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x272e94b6 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x2733247d pcim_iomap +EXPORT_SYMBOL vmlinux 0x2738261d dev_alloc_name +EXPORT_SYMBOL vmlinux 0x273ba024 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x273f1940 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x274754f8 ata_std_end_eh +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x27521ae8 netdev_master_upper_dev_link_private +EXPORT_SYMBOL vmlinux 0x2761b692 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x2775accd __mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x277cfd8a do_splice_from +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27ae7d0c ec_transaction +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x27c37a9d prepare_binprm +EXPORT_SYMBOL vmlinux 0x27c66b8d sock_kfree_s +EXPORT_SYMBOL vmlinux 0x27d83823 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x27dac597 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27ee652d tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x2811c103 dquot_operations +EXPORT_SYMBOL vmlinux 0x2817f65c __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x281ef1c3 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x28318305 snprintf +EXPORT_SYMBOL vmlinux 0x28359137 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x283b460f xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x28561f9a neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x2869328a key_put +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28abfe6e scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x28b2185d pci_bus_get +EXPORT_SYMBOL vmlinux 0x28f88a50 dma_supported +EXPORT_SYMBOL vmlinux 0x2900a91b elv_rb_find +EXPORT_SYMBOL vmlinux 0x29021078 __pagevec_release +EXPORT_SYMBOL vmlinux 0x29084dfa dev_add_pack +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29884da5 tty_free_termios +EXPORT_SYMBOL vmlinux 0x29aa9dba security_inode_permission +EXPORT_SYMBOL vmlinux 0x29bd277c xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x29bdb597 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x29e2b894 register_console +EXPORT_SYMBOL vmlinux 0x29e8161a create_empty_buffers +EXPORT_SYMBOL vmlinux 0x2a0d13be tcp_shutdown +EXPORT_SYMBOL vmlinux 0x2a2210f5 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x2a237d80 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a597ce8 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x2a678c6e gen10g_config_advert +EXPORT_SYMBOL vmlinux 0x2a69246a I_BDEV +EXPORT_SYMBOL vmlinux 0x2a6e6109 __init_rwsem +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2a8c8bf8 _raw_spin_unlock_irq +EXPORT_SYMBOL vmlinux 0x2a94df70 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x2ab035aa get_fs_type +EXPORT_SYMBOL vmlinux 0x2ab9717d xfrm_state_update +EXPORT_SYMBOL vmlinux 0x2acf0feb vfs_fstat +EXPORT_SYMBOL vmlinux 0x2afb23a9 devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b1f13bd qdisc_list_del +EXPORT_SYMBOL vmlinux 0x2b1f1761 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b51837e proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x2b5218a1 dev_disable_lro +EXPORT_SYMBOL vmlinux 0x2b615311 iput +EXPORT_SYMBOL vmlinux 0x2b6252a5 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x2b74e96d jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x2b822f28 from_kprojid +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba04369 __brelse +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bcca28b mntput +EXPORT_SYMBOL vmlinux 0x2bdb20b8 mount_bdev +EXPORT_SYMBOL vmlinux 0x2bfca667 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c0265c4 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x2c0fec6d fput +EXPORT_SYMBOL vmlinux 0x2c20a8fe skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x2c2297f0 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c2bbd54 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x2c424123 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x2c49fa1a jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0x2c7444de security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x2c900d91 cpufreq_put_global_kobject +EXPORT_SYMBOL vmlinux 0x2ca09303 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x2ca319a6 wrmsrl_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x2ca42e19 dquot_enable +EXPORT_SYMBOL vmlinux 0x2cb0c68c net_dma_find_channel +EXPORT_SYMBOL vmlinux 0x2cf73cb7 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x2cf7a01e __neigh_event_send +EXPORT_SYMBOL vmlinux 0x2cff467f inet_ioctl +EXPORT_SYMBOL vmlinux 0x2d03c10d posix_acl_create +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d144e21 rdmsrl_on_cpu +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d497dfa blkdev_put +EXPORT_SYMBOL vmlinux 0x2d5753e9 pci_request_regions +EXPORT_SYMBOL vmlinux 0x2d648ad7 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x2d732423 devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0x2d7e908f nf_log_set +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d9eee91 netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0x2da0ba3c neigh_destroy +EXPORT_SYMBOL vmlinux 0x2daaaba9 param_get_byte +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2deda4a1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2dfcc9f4 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x2e05d6e2 vm_insert_page +EXPORT_SYMBOL vmlinux 0x2e0d2f7f queue_work_on +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e2b40d2 strncat +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e5a704c udp_table +EXPORT_SYMBOL vmlinux 0x2e61244e file_update_time +EXPORT_SYMBOL vmlinux 0x2e650df9 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x2e659427 block_write_end +EXPORT_SYMBOL vmlinux 0x2e6c34c5 dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0x2e7f75d6 elevator_init +EXPORT_SYMBOL vmlinux 0x2ea543e1 seq_lseek +EXPORT_SYMBOL vmlinux 0x2eb7468b spi_attach_transport +EXPORT_SYMBOL vmlinux 0x2ed763bb mmc_put_card +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2efb92d0 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x2f01d7be generic_file_fsync +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f1c39b2 padata_add_cpu +EXPORT_SYMBOL vmlinux 0x2f29fc04 __f_setown +EXPORT_SYMBOL vmlinux 0x2f384db3 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x2f440ff3 gen10g_suspend +EXPORT_SYMBOL vmlinux 0x2f568f75 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x2f7c6bea blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x2f895f17 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x2fb3750c on_each_cpu_mask +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fdaa659 pci_enable_obff +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2fe556e7 init_buffer +EXPORT_SYMBOL vmlinux 0x2ff063b5 acpi_get_name +EXPORT_SYMBOL vmlinux 0x301d3061 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x302790ac ipmi_smi_watcher_unregister +EXPORT_SYMBOL vmlinux 0x303d9d3a seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x304d088f simple_setattr +EXPORT_SYMBOL vmlinux 0x306f1ff7 skb_queue_head +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x308f0d33 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30b2c85b mutex_trylock +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30e73776 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30e95e92 agp_enable +EXPORT_SYMBOL vmlinux 0x30ebb72b check_disk_change +EXPORT_SYMBOL vmlinux 0x3102d70b frontswap_curr_pages +EXPORT_SYMBOL vmlinux 0x311e326d sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x31200213 elv_register_queue +EXPORT_SYMBOL vmlinux 0x31249045 acpi_device_hid +EXPORT_SYMBOL vmlinux 0x31255838 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0x3130c950 tty_port_close +EXPORT_SYMBOL vmlinux 0x313a292e security_task_getsecid +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x314d1c3a jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x314f8dee pci_get_slot +EXPORT_SYMBOL vmlinux 0x31544798 tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x31668b76 md_flush_request +EXPORT_SYMBOL vmlinux 0x316fe32a load_nls +EXPORT_SYMBOL vmlinux 0x31789208 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x318cadb1 reciprocal_value +EXPORT_SYMBOL vmlinux 0x31941063 input_set_capability +EXPORT_SYMBOL vmlinux 0x319e0726 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31c842ca __blk_end_request +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31f0bccd tty_port_put +EXPORT_SYMBOL vmlinux 0x3202435a wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x3214b523 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x322f48d4 abx500_dump_all_banks +EXPORT_SYMBOL vmlinux 0x3247e578 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x325e26c9 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x326425ca pci_unmap_biosrom +EXPORT_SYMBOL vmlinux 0x326d3b11 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x326d9293 deactivate_super +EXPORT_SYMBOL vmlinux 0x328cc103 i2c_release_client +EXPORT_SYMBOL vmlinux 0x32a50e71 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x32b43f32 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x32b44cb7 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x32d46de6 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x32debb16 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x32e1d3c3 bio_alloc_pages +EXPORT_SYMBOL vmlinux 0x32e6ac97 napi_complete +EXPORT_SYMBOL vmlinux 0x32e834af input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x32eeaded _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x331ac6a0 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x331f3538 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x3336560c ppp_unit_number +EXPORT_SYMBOL vmlinux 0x333cb37c __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x3375acd8 inet6_protos +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33ba5cd4 param_ops_bool +EXPORT_SYMBOL vmlinux 0x33c7435c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x33cf1d8f no_llseek +EXPORT_SYMBOL vmlinux 0x33d80318 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x33e57ae5 blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0x33e7079c lease_get_mtime +EXPORT_SYMBOL vmlinux 0x33efe0c2 genphy_suspend +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33f9972b inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x33fcf44a __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x34184afe current_kernel_time +EXPORT_SYMBOL vmlinux 0x341cbed2 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x342e6c71 udplite_prot +EXPORT_SYMBOL vmlinux 0x34339df7 load_nls_default +EXPORT_SYMBOL vmlinux 0x343a010e phy_start_aneg +EXPORT_SYMBOL vmlinux 0x343ab45f vga_tryget +EXPORT_SYMBOL vmlinux 0x343b6ac3 dm_put_device +EXPORT_SYMBOL vmlinux 0x343c3f45 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x3448c260 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x344e9af4 __idr_get_new_above +EXPORT_SYMBOL vmlinux 0x3450bf3a i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x345d9b66 dev_addr_add +EXPORT_SYMBOL vmlinux 0x345f871c xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x34662646 noop_fsync +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x347eb9bd param_set_bool +EXPORT_SYMBOL vmlinux 0x3487fd65 mmc_free_host +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34bd22a0 __get_page_tail +EXPORT_SYMBOL vmlinux 0x34bf54e9 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x34c80d3f blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x34cec0bb scsi_scan_target +EXPORT_SYMBOL vmlinux 0x34d19715 amd_iommu_domain_set_gcr3 +EXPORT_SYMBOL vmlinux 0x34e21dc0 register_sysctl +EXPORT_SYMBOL vmlinux 0x34ec66a3 kern_path +EXPORT_SYMBOL vmlinux 0x34f22f94 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x34f2833d __inode_permission +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x34f55277 touch_atime +EXPORT_SYMBOL vmlinux 0x34f5ba9d wireless_spy_update +EXPORT_SYMBOL vmlinux 0x34fad59e input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x35225ea3 down_write_trylock +EXPORT_SYMBOL vmlinux 0x3539f11b match_strlcpy +EXPORT_SYMBOL vmlinux 0x353e21e3 acpi_bios_warning +EXPORT_SYMBOL vmlinux 0x355f257e __napi_complete +EXPORT_SYMBOL vmlinux 0x35738b7c gen_pool_dma_alloc +EXPORT_SYMBOL vmlinux 0x3579b7d9 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x35a00f1d kfree_skb +EXPORT_SYMBOL vmlinux 0x35defc50 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x35e0b6c1 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x3609f647 iget5_locked +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x360b8d16 x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x3612b07c register_nls +EXPORT_SYMBOL vmlinux 0x365bf53f scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x366bae15 blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x36899eed agp_put_bridge +EXPORT_SYMBOL vmlinux 0x369e1115 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x36bd5462 dentry_unhash +EXPORT_SYMBOL vmlinux 0x36bd681b groups_alloc +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36ed1538 bio_add_page +EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0x37043886 setup_new_exec +EXPORT_SYMBOL vmlinux 0x372a64e9 netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374970ad posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x3766b5f5 devm_ioremap +EXPORT_SYMBOL vmlinux 0x37887c78 vlan_vid_add +EXPORT_SYMBOL vmlinux 0x378c8c1b scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x37926617 sg_miter_stop +EXPORT_SYMBOL vmlinux 0x37a67446 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c8e3de agp_create_memory +EXPORT_SYMBOL vmlinux 0x37cf5308 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x37d49fa4 path_get +EXPORT_SYMBOL vmlinux 0x37d50a99 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37e615e3 mddev_congested +EXPORT_SYMBOL vmlinux 0x38099e13 wrmsrl_on_cpu +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x382f0496 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x38301458 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x383ec5c9 mount_ns +EXPORT_SYMBOL vmlinux 0x384ad561 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x385020e8 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0x385261e1 ip_defrag +EXPORT_SYMBOL vmlinux 0x385e3799 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x385e6718 security_path_link +EXPORT_SYMBOL vmlinux 0x386b45dd neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x388a9612 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x3891672b alloc_fcdev +EXPORT_SYMBOL vmlinux 0x389bfe0d rtc_lock +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38ade458 kmalloc_dma_caches +EXPORT_SYMBOL vmlinux 0x38c7cdb4 set_blocksize +EXPORT_SYMBOL vmlinux 0x38d62f87 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x38d7efa8 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x38f0294a blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x38f33bed dump_fpu +EXPORT_SYMBOL vmlinux 0x390a3050 pci_enable_ltr +EXPORT_SYMBOL vmlinux 0x391c9c09 address_space_init_once +EXPORT_SYMBOL vmlinux 0x3928efe9 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x394b12b5 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x3955fcf6 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x3981d3ea ping_prot +EXPORT_SYMBOL vmlinux 0x39875d76 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x39953098 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x399ad043 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x39a055f3 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x39ac84cc mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x39acc8d4 mdiobus_write +EXPORT_SYMBOL vmlinux 0x39bb372f dq_data_lock +EXPORT_SYMBOL vmlinux 0x39bf9e3e kmem_cache_alloc_node_trace +EXPORT_SYMBOL vmlinux 0x39c0f9a7 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x39cc4a78 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x3a08475f platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x3a0dbb94 pnp_is_active +EXPORT_SYMBOL vmlinux 0x3a1359c6 lro_flush_all +EXPORT_SYMBOL vmlinux 0x3a1f2730 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x3a20ff73 __crc32c_le +EXPORT_SYMBOL vmlinux 0x3a272daa module_refcount +EXPORT_SYMBOL vmlinux 0x3a2b3ac6 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x3a32839e intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x3a3af13a xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x3a5ffdd4 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3a9d4579 ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0x3abfd6e0 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x3ac87a65 bio_pair_release +EXPORT_SYMBOL vmlinux 0x3acf75d2 writeback_in_progress +EXPORT_SYMBOL vmlinux 0x3b2f16b7 kernel_write +EXPORT_SYMBOL vmlinux 0x3b4ceb4a up_write +EXPORT_SYMBOL vmlinux 0x3b54a3cb __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x3b5556e0 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x3ba982f0 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x3bb1f931 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x3bb20079 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd74f60 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x3beb690b lg_local_unlock +EXPORT_SYMBOL vmlinux 0x3bef03b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x3befa190 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x3bfa8940 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x3c284643 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0x3c3e37c6 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x3c41d6d9 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x3c78e01b scsi_free_command +EXPORT_SYMBOL vmlinux 0x3c7f414e vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cc7085b dst_release +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3ceb06d4 scsi_execute_req_flags +EXPORT_SYMBOL vmlinux 0x3d04bdc3 kset_unregister +EXPORT_SYMBOL vmlinux 0x3d128244 nf_afinfo +EXPORT_SYMBOL vmlinux 0x3d1a53c8 led_blink_set +EXPORT_SYMBOL vmlinux 0x3d1f26f9 first_ec +EXPORT_SYMBOL vmlinux 0x3d27afb8 udp_seq_open +EXPORT_SYMBOL vmlinux 0x3d2afd80 dentry_open +EXPORT_SYMBOL vmlinux 0x3d3b5700 tty_register_device +EXPORT_SYMBOL vmlinux 0x3d4b08e4 i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0x3d4bdbd3 aio_complete +EXPORT_SYMBOL vmlinux 0x3d5844b3 strnicmp +EXPORT_SYMBOL vmlinux 0x3d60ac99 pci_disable_ltr +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d7e7684 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x3d937697 input_grab_device +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3d9f4600 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3da45be5 nla_reserve +EXPORT_SYMBOL vmlinux 0x3dbf867f i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3de027a0 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x3df124dc tcf_action_exec +EXPORT_SYMBOL vmlinux 0x3df78394 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e1128e7 genphy_update_link +EXPORT_SYMBOL vmlinux 0x3e23b0aa gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e4ad792 tty_unlock_pair +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e8dc0d6 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e9bcab8 kdb_current_task +EXPORT_SYMBOL vmlinux 0x3ea0773c ida_get_new_above +EXPORT_SYMBOL vmlinux 0x3eb60d1c dev_open +EXPORT_SYMBOL vmlinux 0x3eb94548 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ef79bda skb_orphan_partial +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f0b33f2 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f4a9211 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x3f71faa1 mempool_create +EXPORT_SYMBOL vmlinux 0x3f83fc2e blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x3f873f5f scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x3fa93999 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x3fb0c7b5 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x3fb51499 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x3fc1ac4d skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x3fd86c49 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x3fe2ccbe memweight +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3fffd4da skb_free_datagram +EXPORT_SYMBOL vmlinux 0x400082ba generic_file_open +EXPORT_SYMBOL vmlinux 0x400b60e0 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x40171ede dquot_resume +EXPORT_SYMBOL vmlinux 0x40256835 complete_all +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x403964d5 irq_set_chip +EXPORT_SYMBOL vmlinux 0x404c70e5 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x4051f65e blk_make_request +EXPORT_SYMBOL vmlinux 0x405af52d tcf_hash_release +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4093e5b0 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40c01859 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40c79755 migrate_page +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d0e79d pci_fixup_device +EXPORT_SYMBOL vmlinux 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL vmlinux 0x4102858b unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x4105c9de simple_pin_fs +EXPORT_SYMBOL vmlinux 0x4122745c neigh_direct_output +EXPORT_SYMBOL vmlinux 0x4130ef4d mark_page_accessed +EXPORT_SYMBOL vmlinux 0x4141f76f request_key_async +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4165df72 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x417fcad2 __inet_stream_connect +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41903289 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x419607fe kfree_put_link +EXPORT_SYMBOL vmlinux 0x41b6e76a wait_iff_congested +EXPORT_SYMBOL vmlinux 0x41dda78d pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42350e8d ucs2_strlen +EXPORT_SYMBOL vmlinux 0x423b776a ipmi_create_user +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x429598b1 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a1b208 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x42b2ac63 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x42b39a03 vga_get +EXPORT_SYMBOL vmlinux 0x42b5ca64 ether_setup +EXPORT_SYMBOL vmlinux 0x42c37e2c register_md_personality +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42dadf69 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x4301e321 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43261dca _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0x433bcb32 clk_get +EXPORT_SYMBOL vmlinux 0x434d5d6a pcim_iounmap +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x4356e135 __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x43590c86 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x43777e68 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x43785628 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x43b0c9c3 preempt_schedule +EXPORT_SYMBOL vmlinux 0x43b4a4e6 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x43c0fe95 sock_i_ino +EXPORT_SYMBOL vmlinux 0x43c42960 kill_anon_super +EXPORT_SYMBOL vmlinux 0x43d0a5ff proto_register +EXPORT_SYMBOL vmlinux 0x43d1bafc inet6_add_offload +EXPORT_SYMBOL vmlinux 0x43d6a041 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x43efa9ca acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x4411c503 prandom_seed +EXPORT_SYMBOL vmlinux 0x441a6ce8 udp6_csum_init +EXPORT_SYMBOL vmlinux 0x442d16b0 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x4476e9e2 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x44788c89 pid_task +EXPORT_SYMBOL vmlinux 0x448eac3e kmemdup +EXPORT_SYMBOL vmlinux 0x449635f9 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x4498b55e dev_uc_add +EXPORT_SYMBOL vmlinux 0x449ad0a7 memcmp +EXPORT_SYMBOL vmlinux 0x44a81d5f acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x44aa842c pci_target_state +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44bf4b52 blk_run_queue +EXPORT_SYMBOL vmlinux 0x44c41e49 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x44e6ecc8 ida_simple_get +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x45044497 percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x45081703 ec_get_handle +EXPORT_SYMBOL vmlinux 0x45257fd7 vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0x4528cd3c simple_rename +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x453d8bc2 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x45495044 pnp_get_resource +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x458b700e free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x45a6be13 cpufreq_sysfs_remove_file +EXPORT_SYMBOL vmlinux 0x45a765cf pci_add_resource +EXPORT_SYMBOL vmlinux 0x45ac3fee blk_bio_map_sg +EXPORT_SYMBOL vmlinux 0x45ae1695 set_pages_uc +EXPORT_SYMBOL vmlinux 0x45ba5804 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x45c92723 idr_destroy +EXPORT_SYMBOL vmlinux 0x45f52a5e xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x461ac773 kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x461afcd1 skb_unlink +EXPORT_SYMBOL vmlinux 0x461fc6d3 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x4629334c __preempt_count +EXPORT_SYMBOL vmlinux 0x462c86d5 pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0x463c139d splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x465cab34 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x46608fa0 getnstimeofday +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x4676acb2 phy_device_register +EXPORT_SYMBOL vmlinux 0x468885e4 module_layout +EXPORT_SYMBOL vmlinux 0x469163fe inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x469cef2a d_move +EXPORT_SYMBOL vmlinux 0x46a362e3 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x46c28c80 xfrm_garbage_collect +EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance +EXPORT_SYMBOL vmlinux 0x46e8c17b skb_copy_bits +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x470de86e sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x471a9f71 km_query +EXPORT_SYMBOL vmlinux 0x47209d75 do_splice_to +EXPORT_SYMBOL vmlinux 0x4725f682 dma_ops +EXPORT_SYMBOL vmlinux 0x47331140 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x473d22e8 key_validate +EXPORT_SYMBOL vmlinux 0x47416e14 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x474e294a neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x47524730 md_write_start +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x47633d90 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x477b993f __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x477e6dcb amd_iommu_pc_get_set_reg_val +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x479edfce sk_common_release +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47bc70f2 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x47bcf84c param_set_ulong +EXPORT_SYMBOL vmlinux 0x47c8baf4 param_ops_uint +EXPORT_SYMBOL vmlinux 0x47c96de5 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x47cfd2fa locks_init_lock +EXPORT_SYMBOL vmlinux 0x47d398e1 pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0x47f5be5b dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x48034724 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x482a2a49 param_set_charp +EXPORT_SYMBOL vmlinux 0x4841bdee strnchr +EXPORT_SYMBOL vmlinux 0x4848f139 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0x484fee3b md_register_thread +EXPORT_SYMBOL vmlinux 0x4850c8ff skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x485460cc dev_emerg +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x487d7c9e acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x487e9b72 arp_send +EXPORT_SYMBOL vmlinux 0x4888c793 dma_common_get_sgtable +EXPORT_SYMBOL vmlinux 0x488c0cf9 lookup_one_len +EXPORT_SYMBOL vmlinux 0x48a004a0 ilookup +EXPORT_SYMBOL vmlinux 0x48c5a62e fb_set_cmap +EXPORT_SYMBOL vmlinux 0x48d11e37 agp_find_bridge +EXPORT_SYMBOL vmlinux 0x48d50e79 amd_iommu_register_ppr_notifier +EXPORT_SYMBOL vmlinux 0x48d8908d jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x48d92286 mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x49059995 nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0x4939c3b5 acpi_gpiochip_request_interrupts +EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x495c96f8 posix_acl_init +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49790082 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x498a0754 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x498f952e jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x498fd35d bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x499e01c8 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b163b8 acpi_bus_scan +EXPORT_SYMBOL vmlinux 0x49c5066d acpi_gpiochip_free_interrupts +EXPORT_SYMBOL vmlinux 0x49cb77d3 dev_get_stats +EXPORT_SYMBOL vmlinux 0x49df7f72 x86_hyper_xen_hvm +EXPORT_SYMBOL vmlinux 0x49f937aa posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x4a03e7bb textsearch_unregister +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a36dcac inode_init_owner +EXPORT_SYMBOL vmlinux 0x4a78c574 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0x4a81a897 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x4a9d8a4c sync_blockdev +EXPORT_SYMBOL vmlinux 0x4aad52d7 mempool_free +EXPORT_SYMBOL vmlinux 0x4abaa802 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ae46a84 input_reset_device +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b01266c skb_find_text +EXPORT_SYMBOL vmlinux 0x4b012fa7 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x4b06d2e7 complete +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b124f74 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x4b1baf68 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x4b337a9f pci_bus_type +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b6e99a1 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x4bb6a82c led_blink_set_oneshot +EXPORT_SYMBOL vmlinux 0x4bc87876 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x4bfa196d prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x4bfff44a padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x4c088279 ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c14fb90 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x4c2b6ee3 clk_add_alias +EXPORT_SYMBOL vmlinux 0x4c4fa5d7 __devm_release_region +EXPORT_SYMBOL vmlinux 0x4c4fea07 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x4c4fef19 kernel_stack +EXPORT_SYMBOL vmlinux 0x4c52dd48 cap_mmap_file +EXPORT_SYMBOL vmlinux 0x4c5f9df5 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x4c68060b unlock_buffer +EXPORT_SYMBOL vmlinux 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL vmlinux 0x4c9d28b0 phys_base +EXPORT_SYMBOL vmlinux 0x4c9d6ea3 nf_register_hook +EXPORT_SYMBOL vmlinux 0x4ca9669f scnprintf +EXPORT_SYMBOL vmlinux 0x4cadbfe4 audit_log_start +EXPORT_SYMBOL vmlinux 0x4cba839b tty_port_destroy +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cdb3178 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x4cee04cc have_submounts +EXPORT_SYMBOL vmlinux 0x4d0e937d seq_path +EXPORT_SYMBOL vmlinux 0x4d1023f8 mempool_resize +EXPORT_SYMBOL vmlinux 0x4d10b3d0 sock_create +EXPORT_SYMBOL vmlinux 0x4d2d69b6 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x4d2e1803 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x4d3fd464 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x4d48191c inet_sendpage +EXPORT_SYMBOL vmlinux 0x4d5456cf set_security_override +EXPORT_SYMBOL vmlinux 0x4d7197dd pci_save_state +EXPORT_SYMBOL vmlinux 0x4d756525 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x4d7b5b2c mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x4d8b6356 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x4d8b9811 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4d9ccade tcp_close +EXPORT_SYMBOL vmlinux 0x4daa360a acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0x4db98106 __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0x4de07777 bioset_free +EXPORT_SYMBOL vmlinux 0x4de34a07 cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x4de5e4c1 padata_stop +EXPORT_SYMBOL vmlinux 0x4df09a7a node_data +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4df85a2f blk_fetch_request +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e38fd29 input_free_device +EXPORT_SYMBOL vmlinux 0x4e6638b2 igrab +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e76c54f rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x4e898844 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x4ea25709 dql_reset +EXPORT_SYMBOL vmlinux 0x4ec5a9a3 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x4eda9e6b pci_disable_msi +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4ee7e1dc xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x4f012937 pci_clear_master +EXPORT_SYMBOL vmlinux 0x4f11f260 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f2e99a7 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f4c80bc iget_locked +EXPORT_SYMBOL vmlinux 0x4f68e5c9 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x4f6b400b _copy_from_user +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user +EXPORT_SYMBOL vmlinux 0x4f8e1f18 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x4f8ef230 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x4f94f1ba idr_get_next +EXPORT_SYMBOL vmlinux 0x4fc63938 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x4fca969e scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fed1de9 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x500114c5 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x5030ebc8 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x5033ac94 crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x503e26d4 tty_mutex +EXPORT_SYMBOL vmlinux 0x504895e0 unlock_page +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x506e15a7 kern_path_mountpoint +EXPORT_SYMBOL vmlinux 0x509b64ea acpi_has_method +EXPORT_SYMBOL vmlinux 0x50a90e8d bsearch +EXPORT_SYMBOL vmlinux 0x50d2592d hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x50d68377 arch_phys_wc_del +EXPORT_SYMBOL vmlinux 0x50de0a52 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x50e5cdc1 ata_port_printk +EXPORT_SYMBOL vmlinux 0x50fcc040 scsi_print_result +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x511ab427 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x512b7c7f proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x512bba78 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x512ef818 stop_tty +EXPORT_SYMBOL vmlinux 0x51498945 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x5182420f ida_pre_get +EXPORT_SYMBOL vmlinux 0x5186de10 arp_create +EXPORT_SYMBOL vmlinux 0x518c9e5d handle_edge_irq +EXPORT_SYMBOL vmlinux 0x51a85dba mmc_get_card +EXPORT_SYMBOL vmlinux 0x51be171c mmc_gpio_request_cd +EXPORT_SYMBOL vmlinux 0x51cd3b87 ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51d31a02 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e63839 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x51eac85d netdev_lower_dev_get_private_rcu +EXPORT_SYMBOL vmlinux 0x51f6e131 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x52006d56 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x52130046 acpi_check_address_range +EXPORT_SYMBOL vmlinux 0x521b36b5 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x521c8b01 eth_header_parse +EXPORT_SYMBOL vmlinux 0x5222400f put_disk +EXPORT_SYMBOL vmlinux 0x52428cc8 parent_mem_cgroup +EXPORT_SYMBOL vmlinux 0x5245f6a4 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL vmlinux 0x525e026f acpi_os_unmap_generic_address +EXPORT_SYMBOL vmlinux 0x526f7ad0 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x527fb9bf pci_choose_state +EXPORT_SYMBOL vmlinux 0x5298eedd i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x52a53da4 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x52a96301 d_instantiate_no_diralias +EXPORT_SYMBOL vmlinux 0x52b870b0 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x52cbb014 lockref_get +EXPORT_SYMBOL vmlinux 0x52de27be pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x52e1f776 get_phy_device +EXPORT_SYMBOL vmlinux 0x52e7e286 simple_open +EXPORT_SYMBOL vmlinux 0x52f0002e pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x532a0958 inet_frag_find +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x534a81d7 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x534dcc1b invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x535284a5 simple_fill_super +EXPORT_SYMBOL vmlinux 0x536cc847 memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0x5377e556 hex2bin +EXPORT_SYMBOL vmlinux 0x538018ea cont_write_begin +EXPORT_SYMBOL vmlinux 0x53837bff tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x53939c27 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x53b4d59c dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x53bd2141 alloc_xenballooned_pages +EXPORT_SYMBOL vmlinux 0x53c5a062 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x53c6745c mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x53e4c3af dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x53f6ffbc wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x53fe4e32 do_truncate +EXPORT_SYMBOL vmlinux 0x5402680b lockref_mark_dead +EXPORT_SYMBOL vmlinux 0x5403dd8c generic_delete_inode +EXPORT_SYMBOL vmlinux 0x54059a2a amd_iommu_pc_get_max_counters +EXPORT_SYMBOL vmlinux 0x5405b72d update_devfreq +EXPORT_SYMBOL vmlinux 0x5409775b free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x54245b39 kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0x542c53ad d_instantiate +EXPORT_SYMBOL vmlinux 0x54314591 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x544b0c11 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x54546317 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x546779ab swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x54678b6f sk_alloc +EXPORT_SYMBOL vmlinux 0x549ef8e9 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x54a5f570 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54aa65c3 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x54b7a2d3 blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0x54bf18ea vlan_untag +EXPORT_SYMBOL vmlinux 0x54d8e467 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x54e3cc3b param_get_int +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54efb5d6 cpu_number +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x5546be45 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0x554d04da dst_destroy +EXPORT_SYMBOL vmlinux 0x5554d0fb __pci_register_driver +EXPORT_SYMBOL vmlinux 0x55671680 lg_lock_init +EXPORT_SYMBOL vmlinux 0x5567c227 kernel_cpustat +EXPORT_SYMBOL vmlinux 0x556c2740 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x558f1de9 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55ccd4d2 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0x55cd2e4d spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x55dc6140 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x55f5019b __kmalloc_node +EXPORT_SYMBOL vmlinux 0x55f9c995 sk_ns_capable +EXPORT_SYMBOL vmlinux 0x560c6318 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x560ffb71 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5617e1dc iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x56473dfc ip_fragment +EXPORT_SYMBOL vmlinux 0x5652f3d1 pci_enable_device +EXPORT_SYMBOL vmlinux 0x5679c244 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x56850ba1 find_get_page +EXPORT_SYMBOL vmlinux 0x568b3151 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x5697020e skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x56a26e8b jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56eb3c9e security_path_rmdir +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57443618 netif_skb_dev_features +EXPORT_SYMBOL vmlinux 0x57509fa6 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x5792f848 strlcpy +EXPORT_SYMBOL vmlinux 0x57a4c737 security_path_chown +EXPORT_SYMBOL vmlinux 0x57a6ccd0 down_read +EXPORT_SYMBOL vmlinux 0x57b9c897 devm_clk_get +EXPORT_SYMBOL vmlinux 0x57d9f4fc unregister_binfmt +EXPORT_SYMBOL vmlinux 0x57f0d1a3 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x57f87f54 __page_cache_alloc +EXPORT_SYMBOL vmlinux 0x57f999d1 __free_pages +EXPORT_SYMBOL vmlinux 0x580bf831 arp_tbl +EXPORT_SYMBOL vmlinux 0x580f4e8f sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5860aad4 add_wait_queue +EXPORT_SYMBOL vmlinux 0x586103be acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x5866bd76 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x587616f1 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x58b5225d sk_net_capable +EXPORT_SYMBOL vmlinux 0x58bd1a62 dev_err +EXPORT_SYMBOL vmlinux 0x58d0fc6f cfb_imageblit +EXPORT_SYMBOL vmlinux 0x58fa41d1 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x59082a57 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x59150e7c kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5953740f sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x5966af33 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x5967c929 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x5984a791 twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x5991219c cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x599a3dd6 _raw_write_unlock_irq +EXPORT_SYMBOL vmlinux 0x59a3bb16 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59dc5581 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x59e65d24 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x5a23f016 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a54d66b unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x5a5536c2 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x5a6b5986 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x5a7a9061 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x5a921311 strncmp +EXPORT_SYMBOL vmlinux 0x5ac21822 irq_stat +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5ad6fe8e loop_backing_file +EXPORT_SYMBOL vmlinux 0x5ae50279 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5aeb145f complete_and_exit +EXPORT_SYMBOL vmlinux 0x5af557f0 ip6_xmit +EXPORT_SYMBOL vmlinux 0x5af91180 fbcon_rotate_ccw +EXPORT_SYMBOL vmlinux 0x5b271d86 acpi_video_dmi_promote_vendor +EXPORT_SYMBOL vmlinux 0x5b3a5873 generic_write_checks +EXPORT_SYMBOL vmlinux 0x5b424341 lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0x5b465a37 __dev_remove_offload +EXPORT_SYMBOL vmlinux 0x5b517f28 misc_deregister +EXPORT_SYMBOL vmlinux 0x5b56860c vm_munmap +EXPORT_SYMBOL vmlinux 0x5b69d016 mmc_gpio_free_cd +EXPORT_SYMBOL vmlinux 0x5b7c3921 ftrace_raw_output_prep +EXPORT_SYMBOL vmlinux 0x5b94d2ce inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x5ba016c8 udp_add_offload +EXPORT_SYMBOL vmlinux 0x5bb65161 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x5bc10524 printk_emit +EXPORT_SYMBOL vmlinux 0x5bc8d583 copy_from_user_overflow +EXPORT_SYMBOL vmlinux 0x5bd4c047 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x5be911c6 ip_route_input_noref +EXPORT_SYMBOL vmlinux 0x5c3892e3 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x5c3edd59 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x5c5f0a4f nobh_write_end +EXPORT_SYMBOL vmlinux 0x5c749e61 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x5c8b5ce8 prepare_to_wait +EXPORT_SYMBOL vmlinux 0x5cadf9c5 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5d0d5472 blk_start_request +EXPORT_SYMBOL vmlinux 0x5d2e2445 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x5d3e7cfc genphy_resume +EXPORT_SYMBOL vmlinux 0x5d41c87c param_ops_charp +EXPORT_SYMBOL vmlinux 0x5d550c4d scsi_sd_probe_domain +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d6fb595 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5d7f7e4d __scm_send +EXPORT_SYMBOL vmlinux 0x5d85cf8d amd_iommu_get_v2_domain +EXPORT_SYMBOL vmlinux 0x5d870c04 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x5d89586a phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x5d9dde8e pci_dev_get +EXPORT_SYMBOL vmlinux 0x5daa1077 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x5db25005 __serio_register_port +EXPORT_SYMBOL vmlinux 0x5dc0ce01 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x5dc29763 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x5ddea225 phy_detach +EXPORT_SYMBOL vmlinux 0x5de86e78 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x5df0dcf6 security_path_symlink +EXPORT_SYMBOL vmlinux 0x5df9863f skb_dequeue +EXPORT_SYMBOL vmlinux 0x5e15d54c ida_init +EXPORT_SYMBOL vmlinux 0x5e30a3c1 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x5e3a84ba inode_change_ok +EXPORT_SYMBOL vmlinux 0x5e49678a bio_copy_kern +EXPORT_SYMBOL vmlinux 0x5e79506b nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5ea09095 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x5ea2002c noop_qdisc +EXPORT_SYMBOL vmlinux 0x5ea9e1bf mmc_can_erase +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5eb60140 dev_mc_add +EXPORT_SYMBOL vmlinux 0x5ebbadff blk_complete_request +EXPORT_SYMBOL vmlinux 0x5ec2d6ed sock_create_lite +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f1b990f scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x5f2b1e0d swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0x5f2d10b9 unregister_console +EXPORT_SYMBOL vmlinux 0x5f3c8f5c mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x5f557703 acpi_evaluate_hotplug_ost +EXPORT_SYMBOL vmlinux 0x5f58f676 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x5f613a35 devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0x5f800c0d key_link +EXPORT_SYMBOL vmlinux 0x5f85a721 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x5f87645a block_write_begin +EXPORT_SYMBOL vmlinux 0x5f91814b neigh_lookup +EXPORT_SYMBOL vmlinux 0x5f9aecef sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0x5fa696d4 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x5fbd8c36 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL vmlinux 0x5fda0227 vfs_stat +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x6026a047 pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x60452058 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x605ee1f0 get_thermal_instance +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x607e8278 uart_resume_port +EXPORT_SYMBOL vmlinux 0x6089219b pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x60994a85 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x609f5b35 ucs2_strnlen +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60ac96f9 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x60baa6cc put_tty_driver +EXPORT_SYMBOL vmlinux 0x60bc5a96 get_gendisk +EXPORT_SYMBOL vmlinux 0x60c702cb scsi_remove_target +EXPORT_SYMBOL vmlinux 0x60df1e3b posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x60ec0d03 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x60f21583 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x61053592 skb_copy +EXPORT_SYMBOL vmlinux 0x6105bce3 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x6106d8cd arp_find +EXPORT_SYMBOL vmlinux 0x6114e938 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0x6119757f vfs_mkdir +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x613fcf3a devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x614383c0 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0x61538ad0 param_get_charp +EXPORT_SYMBOL vmlinux 0x615a40f4 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x616829d6 search_binary_handler +EXPORT_SYMBOL vmlinux 0x618911fc numa_node +EXPORT_SYMBOL vmlinux 0x6197110b phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0x619cb7dd simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x61a58200 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x61a714af i2c_verify_client +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61c42b04 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x61fb248a node_states +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6225b790 scsi_device_get +EXPORT_SYMBOL vmlinux 0x6226b9fa machine_to_phys_mapping +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x622c2cbc neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x62721573 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x627437c9 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x62748e70 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x6276c867 sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0x627d3d4e start_tty +EXPORT_SYMBOL vmlinux 0x628121e9 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x62bc4b46 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x62bd14cd bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x62c1d460 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x62ff7228 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x632d4994 __nla_reserve +EXPORT_SYMBOL vmlinux 0x6361639d pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x637d9ac4 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x637f120e iunique +EXPORT_SYMBOL vmlinux 0x639d1693 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x63a01291 acpi_leave_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x63a6bcc9 acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0x63bf6d6e revert_creds +EXPORT_SYMBOL vmlinux 0x63d14c06 vfs_writev +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63f2fb3b ht_create_irq +EXPORT_SYMBOL vmlinux 0x63f75a28 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x640ed3d0 d_genocide +EXPORT_SYMBOL vmlinux 0x641485ec poll_initwait +EXPORT_SYMBOL vmlinux 0x6440bc47 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x6449fd41 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x645032df bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x6485802b tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0x6489b3ec dev_crit +EXPORT_SYMBOL vmlinux 0x64964b15 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64a804f7 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x64bbc288 string_unescape +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x6502c816 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x652517a6 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x652c519f user_revoke +EXPORT_SYMBOL vmlinux 0x652ce9aa nla_memcmp +EXPORT_SYMBOL vmlinux 0x652d06f9 ip_check_defrag +EXPORT_SYMBOL vmlinux 0x652fdccd soft_cursor +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x6540f740 lock_rename +EXPORT_SYMBOL vmlinux 0x654dfb38 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x6580616b dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x6581717b replace_mount_options +EXPORT_SYMBOL vmlinux 0x6585057c tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x658fb709 seq_release +EXPORT_SYMBOL vmlinux 0x65ab144f grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x65b8a343 inet6_register_icmp_sender +EXPORT_SYMBOL vmlinux 0x65bf78c6 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x65d24902 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65e0d6d7 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x65e94a2a tcp_poll +EXPORT_SYMBOL vmlinux 0x65f3ad9a fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x6605f97f flex_array_clear +EXPORT_SYMBOL vmlinux 0x663f7cd0 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0x66466ff0 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x666a66e3 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x66777e3f twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66944b87 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x6697c279 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x66a67dab flex_array_shrink +EXPORT_SYMBOL vmlinux 0x66cdcad5 seq_vprintf +EXPORT_SYMBOL vmlinux 0x66d65d62 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x67069425 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x670fd821 generic_show_options +EXPORT_SYMBOL vmlinux 0x6720b0d3 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x673547af vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x674360f6 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x675b8f61 param_get_string +EXPORT_SYMBOL vmlinux 0x675c09e4 lockref_get_not_zero +EXPORT_SYMBOL vmlinux 0x6782b3e4 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x678c5e5a freeze_super +EXPORT_SYMBOL vmlinux 0x67a0306a percpu_counter_set +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL vmlinux 0x67d396b0 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x67d649f6 devm_clk_put +EXPORT_SYMBOL vmlinux 0x67e71c0b inode_dio_done +EXPORT_SYMBOL vmlinux 0x67ec2859 tty_register_driver +EXPORT_SYMBOL vmlinux 0x680936ce xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x68204135 unlazy_fpu +EXPORT_SYMBOL vmlinux 0x6834d0c9 fb_blank +EXPORT_SYMBOL vmlinux 0x6835ec9e vfs_llseek +EXPORT_SYMBOL vmlinux 0x6868f7db vfs_read +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x688e2c09 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x68930d8c padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x6899ea91 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x68aca4ad down +EXPORT_SYMBOL vmlinux 0x68aea693 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x68b83ac6 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x68c86043 mutex_lock +EXPORT_SYMBOL vmlinux 0x68cef661 always_delete_dentry +EXPORT_SYMBOL vmlinux 0x68e05d57 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x68f8c31d __cleancache_invalidate_fs +EXPORT_SYMBOL vmlinux 0x68fb33f5 dev_queue_xmit_accel +EXPORT_SYMBOL vmlinux 0x6900b166 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x690eba00 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x691001b5 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x693ad0db ___preempt_schedule_context +EXPORT_SYMBOL vmlinux 0x69659b23 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x698194ec generic_listxattr +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x6988f98a input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x6991e60b generic_setlease +EXPORT_SYMBOL vmlinux 0x699caeda set_nlink +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69a887f9 page_put_link +EXPORT_SYMBOL vmlinux 0x69aa2c87 devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x69ab7803 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x69acdf38 memcpy +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69b92d60 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x69c2c8af gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69d77430 netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69eace46 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x69fbc0a2 acpi_get_event_resources +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a150cab dcache_dir_open +EXPORT_SYMBOL vmlinux 0x6a203250 blk_mq_free_single_hw_queue +EXPORT_SYMBOL vmlinux 0x6a468ccc dump_align +EXPORT_SYMBOL vmlinux 0x6a46d826 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x6a55281b kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a62ac26 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a902eb7 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x6a96c148 amd_iommu_domain_clear_gcr3 +EXPORT_SYMBOL vmlinux 0x6aa64599 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad85887 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6aefd2f6 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x6afa4f39 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x6b06fdce delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x6b19b757 vga_switcheroo_init_domain_pm_optimus_hdmi_audio +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b326254 phy_start +EXPORT_SYMBOL vmlinux 0x6b60b088 amd_iommu_device_info +EXPORT_SYMBOL vmlinux 0x6b640864 nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6b787805 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x6b80d653 twl6040_power +EXPORT_SYMBOL vmlinux 0x6b898cb9 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x6b91c5a4 amd_iommu_complete_ppr +EXPORT_SYMBOL vmlinux 0x6b92f3ab pnp_device_detach +EXPORT_SYMBOL vmlinux 0x6b9ea160 generic_permission +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bd83666 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x6bdb2955 blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6be10668 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x6be7bb3d tcp_release_cb +EXPORT_SYMBOL vmlinux 0x6beb2078 param_set_copystring +EXPORT_SYMBOL vmlinux 0x6bf0e148 unload_nls +EXPORT_SYMBOL vmlinux 0x6bf44304 inet_addr_type +EXPORT_SYMBOL vmlinux 0x6c076dce posix_lock_file +EXPORT_SYMBOL vmlinux 0x6c122bff write_cache_pages +EXPORT_SYMBOL vmlinux 0x6c128054 ihold +EXPORT_SYMBOL vmlinux 0x6c141fa0 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x6c19958e set_anon_super +EXPORT_SYMBOL vmlinux 0x6c26e62c udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x6c2c2dd2 end_page_writeback +EXPORT_SYMBOL vmlinux 0x6c301333 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c5101d8 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x6c51a836 sysctl_tcp_notsent_lowat +EXPORT_SYMBOL vmlinux 0x6c587472 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c66f9c9 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x6c6f8a0f _raw_write_unlock +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c719684 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x6c97010e default_file_splice_read +EXPORT_SYMBOL vmlinux 0x6ca4abf9 dquot_destroy +EXPORT_SYMBOL vmlinux 0x6cb1a7a3 pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0x6cd8c86b __crc32c_le_combine +EXPORT_SYMBOL vmlinux 0x6d0aba34 wait_for_completion +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d165c40 lockref_get_or_lock +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2a7495 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x6d2de139 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8 +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d567fb0 textsearch_register +EXPORT_SYMBOL vmlinux 0x6d6818ff gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x6d7322b8 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x6d75f9d6 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x6daac5fb sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x6dacefc6 __elv_add_request +EXPORT_SYMBOL vmlinux 0x6dbc6cfc kernel_accept +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6df2e256 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x6df9311d inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x6dffc735 __test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x6e297a62 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x6e2bda24 __frontswap_load +EXPORT_SYMBOL vmlinux 0x6e4f3912 mb_cache_create +EXPORT_SYMBOL vmlinux 0x6e55ccfc blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x6e65b577 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x6e6fd5ed pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e7cff33 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x6ea26951 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x6ebc5149 param_ops_long +EXPORT_SYMBOL vmlinux 0x6ed3d466 ilookup5 +EXPORT_SYMBOL vmlinux 0x6f1ba3cf pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x6f20960a full_name_hash +EXPORT_SYMBOL vmlinux 0x6f36c782 idr_find_slowpath +EXPORT_SYMBOL vmlinux 0x6f4c812f __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f71f1af inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x6f8a308b xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x6f8b838d i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x6f8e7a09 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x6f96f421 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x6fa2eff5 netpoll_setup +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd040ec generic_segment_checks +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x700d4e1f ps2_handle_response +EXPORT_SYMBOL vmlinux 0x700fbad3 fd_install +EXPORT_SYMBOL vmlinux 0x701450f1 vga_client_register +EXPORT_SYMBOL vmlinux 0x70207a15 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x7023bea8 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x702b6c54 udplite_table +EXPORT_SYMBOL vmlinux 0x702b88eb prepare_creds +EXPORT_SYMBOL vmlinux 0x70316b0d napi_gro_receive +EXPORT_SYMBOL vmlinux 0x703b4352 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x705182ca init_special_inode +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x70596e2f jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x707f43f6 __ctzdi2 +EXPORT_SYMBOL vmlinux 0x70833ec1 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x70b4baea netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70c5e87a blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x70c79ed7 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x70cc7e9b directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70db8891 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x70eea030 submit_bh +EXPORT_SYMBOL vmlinux 0x70ff5814 sock_wake_async +EXPORT_SYMBOL vmlinux 0x710c5a8c xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x715172e8 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x7160fa14 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x7192d0a2 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71a7f63a registered_fb +EXPORT_SYMBOL vmlinux 0x71adf1ab inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x71aef24e pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x71ce1b16 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x71d15fd9 console_stop +EXPORT_SYMBOL vmlinux 0x71e3cecb up +EXPORT_SYMBOL vmlinux 0x720380c9 mdiobus_free +EXPORT_SYMBOL vmlinux 0x7212097d scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x7221921a tcp_splice_read +EXPORT_SYMBOL vmlinux 0x72379f37 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x72396027 ip6_expire_frag_queue +EXPORT_SYMBOL vmlinux 0x724c4406 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x725e11b7 inet_add_offload +EXPORT_SYMBOL vmlinux 0x727b7c75 blk_register_region +EXPORT_SYMBOL vmlinux 0x72a98fdb copy_user_generic_unrolled +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b304ec commit_creds +EXPORT_SYMBOL vmlinux 0x72bb35a7 devm_gpiod_get +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72e0628a pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f3aa32 acpi_get_physical_device_location +EXPORT_SYMBOL vmlinux 0x7315e7ab scsi_print_sense +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x734d1df4 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x736a8d9f mmc_of_parse +EXPORT_SYMBOL vmlinux 0x736db829 __register_binfmt +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x7397ba48 skb_make_writable +EXPORT_SYMBOL vmlinux 0x73a78bc4 downgrade_write +EXPORT_SYMBOL vmlinux 0x73c6f2cd __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x73dd54eb irq_fpu_usable +EXPORT_SYMBOL vmlinux 0x73e84c16 input_register_handle +EXPORT_SYMBOL vmlinux 0x73eab60e dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x7401f62f follow_up +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x74322b5e __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x7458a3f4 pci_set_ltr +EXPORT_SYMBOL vmlinux 0x7462f67c vga_switcheroo_set_dynamic_switch +EXPORT_SYMBOL vmlinux 0x7469f534 blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x747033f4 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x7470eadf tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x747195f0 hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x747638d3 genphy_read_status +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74881d07 acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74ced43f tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x74d1d392 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x74d66a67 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x7527f734 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x7532588a alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7532b9e2 md_error +EXPORT_SYMBOL vmlinux 0x75333ba1 __netif_schedule +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x754cab2f mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x754d539c strlen +EXPORT_SYMBOL vmlinux 0x754dac78 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x755fc77c vfs_getattr +EXPORT_SYMBOL vmlinux 0x7566423c xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x75910c6e devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x75b90a7d sock_create_kern +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75db346e sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x75dbbd7b mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x75dde875 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x75fbdefd acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x76138277 __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x7629b9ac dm_io +EXPORT_SYMBOL vmlinux 0x7632d7ca __frontswap_test +EXPORT_SYMBOL vmlinux 0x763334ed gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x7638ce68 vga_put +EXPORT_SYMBOL vmlinux 0x7641abdc set_trace_device +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x765fecbe ps2_command +EXPORT_SYMBOL vmlinux 0x765ff474 crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x767dd8fd acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x76869ac8 rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x76877b85 pci_get_device +EXPORT_SYMBOL vmlinux 0x7694c9d6 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x769aa3d2 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x76a5a0a8 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x76aa6a17 dev_get_flags +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d451c4 add_taint +EXPORT_SYMBOL vmlinux 0x76fb08a7 amd_iommu_unregister_ppr_notifier +EXPORT_SYMBOL vmlinux 0x7711b577 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x771fef89 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x77371f72 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x773fa409 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x77456e0a acpi_root_dir +EXPORT_SYMBOL vmlinux 0x774e4697 phy_init_eee +EXPORT_SYMBOL vmlinux 0x77561bd9 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x775ebb9e generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x7762a487 from_kuid +EXPORT_SYMBOL vmlinux 0x776e08a1 dquot_alloc +EXPORT_SYMBOL vmlinux 0x77781152 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x7789da8a inet_select_addr +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77bbbb16 blk_mq_free_queue +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77cb1193 d_find_alias +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f53abc acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x7807f967 km_state_expired +EXPORT_SYMBOL vmlinux 0x780f3123 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x780fdfd1 intel_enable_gtt +EXPORT_SYMBOL vmlinux 0x7814547c tcp_prequeue +EXPORT_SYMBOL vmlinux 0x781bb92a generic_read_dir +EXPORT_SYMBOL vmlinux 0x781e97a4 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x7826b954 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x782bbad1 kernel_listen +EXPORT_SYMBOL vmlinux 0x783b3563 wake_up_atomic_t +EXPORT_SYMBOL vmlinux 0x784213a6 pv_lock_ops +EXPORT_SYMBOL vmlinux 0x7846af3e __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x784abc19 i2c_use_client +EXPORT_SYMBOL vmlinux 0x7856408e abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x7859d883 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x786f8692 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x78749890 __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0x78764f4e pv_irq_ops +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x789886a7 free_xenballooned_pages +EXPORT_SYMBOL vmlinux 0x7898f723 acpi_pm_device_run_wake +EXPORT_SYMBOL vmlinux 0x789affb1 frontswap_tmem_exclusive_gets +EXPORT_SYMBOL vmlinux 0x78a5fdaa unregister_nls +EXPORT_SYMBOL vmlinux 0x78bb3e24 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0x78c676f5 register_framebuffer +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78f2ae86 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL vmlinux 0x78ffb337 elevator_alloc +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x79383cbf compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0x795bc926 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x796feb32 seq_pad +EXPORT_SYMBOL vmlinux 0x797c8fa9 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x7984eefc key_update +EXPORT_SYMBOL vmlinux 0x79945d9f proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x79a38e61 ___ratelimit +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79b5ff17 ipmi_smi_watcher_register +EXPORT_SYMBOL vmlinux 0x79b82308 pci_iomap +EXPORT_SYMBOL vmlinux 0x79d3898c single_open +EXPORT_SYMBOL vmlinux 0x79e83dec inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x79eac861 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x79f1f3f1 tty_name +EXPORT_SYMBOL vmlinux 0x7a188791 prandom_bytes +EXPORT_SYMBOL vmlinux 0x7a2647f0 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a5a16ef current_task +EXPORT_SYMBOL vmlinux 0x7a5ba561 blk_mq_alloc_single_hw_queue +EXPORT_SYMBOL vmlinux 0x7a606c7c gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x7a78e4df blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x7a82cb47 rdmsrl_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7a8791c7 mmc_can_reset +EXPORT_SYMBOL vmlinux 0x7a89efba max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7a925833 cpufreq_get_global_kobject +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7acfd249 fs_bio_set +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7ad8dd58 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x7add44b5 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7af3fca8 __nla_put +EXPORT_SYMBOL vmlinux 0x7afa0b3e eth_validate_addr +EXPORT_SYMBOL vmlinux 0x7b16235f hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x7b2a9d1a flush_signals +EXPORT_SYMBOL vmlinux 0x7b2aef6c __krealloc +EXPORT_SYMBOL vmlinux 0x7b339008 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x7b34856d uart_update_timeout +EXPORT_SYMBOL vmlinux 0x7b45a616 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x7b4e03ad submit_bio_wait +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b55271b bdi_register_dev +EXPORT_SYMBOL vmlinux 0x7b60494a tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x7b701da0 mmc_release_host +EXPORT_SYMBOL vmlinux 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL vmlinux 0x7bb76117 sock_rfree +EXPORT_SYMBOL vmlinux 0x7bbbd44b genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x7bd1e227 devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0x7be8e688 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x7bf7c36d udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x7c0c2e04 mdiobus_register +EXPORT_SYMBOL vmlinux 0x7c1372e8 panic +EXPORT_SYMBOL vmlinux 0x7c25c9bb security_mmap_file +EXPORT_SYMBOL vmlinux 0x7c2d098f krealloc +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c649831 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x7c86a800 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x7ca46555 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cb2698d kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x7cb315c8 try_to_release_page +EXPORT_SYMBOL vmlinux 0x7cb46cd5 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x7cb4fa7f freeze_bdev +EXPORT_SYMBOL vmlinux 0x7cbf7081 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x7cc578da param_get_long +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7ce83365 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7cf3a16b put_cmsg +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d235534 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x7d27908d pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x7d2a38a9 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x7d3aa042 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x7d5787ca scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x7d770222 input_get_keycode +EXPORT_SYMBOL vmlinux 0x7d7f2af7 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x7d82a00d dev_mc_sync +EXPORT_SYMBOL vmlinux 0x7d94f746 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x7dbc2e57 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x7dbe5708 input_register_device +EXPORT_SYMBOL vmlinux 0x7dd554fc unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7dfc6da2 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x7e11e053 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x7e29b1f7 serio_open +EXPORT_SYMBOL vmlinux 0x7e32258d nf_log_register +EXPORT_SYMBOL vmlinux 0x7e34b129 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e63bcc3 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x7e6d680c find_or_create_page +EXPORT_SYMBOL vmlinux 0x7e76e5c2 kernel_bind +EXPORT_SYMBOL vmlinux 0x7e84e2c0 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x7ed914c9 acpi_decode_pld_buffer +EXPORT_SYMBOL vmlinux 0x7eeebb46 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x7f00e0e1 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f307999 tty_port_open +EXPORT_SYMBOL vmlinux 0x7f521f24 mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0x7f658e80 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x7f6c6a37 bio_put +EXPORT_SYMBOL vmlinux 0x7f8a6f73 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x7fbf72f4 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7fe38f48 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x7ff5189a skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x7ff72722 flush_old_exec +EXPORT_SYMBOL vmlinux 0x800b224a iterate_supers_type +EXPORT_SYMBOL vmlinux 0x802d0e93 crc32_le +EXPORT_SYMBOL vmlinux 0x8035ab35 netlink_unicast +EXPORT_SYMBOL vmlinux 0x804f922a ipmi_addr_length +EXPORT_SYMBOL vmlinux 0x80b61ecf skb_split +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80f53548 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x8111c621 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x811986cb __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x81279196 netdev_notice +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x81533963 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x816a79aa kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x81861dae mntget +EXPORT_SYMBOL vmlinux 0x818cf085 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x81a3e498 udp_poll +EXPORT_SYMBOL vmlinux 0x81a953c4 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x81c8dd08 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x81cb842a devm_ioport_map +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x82278526 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x82288f8c netlink_set_err +EXPORT_SYMBOL vmlinux 0x82424d46 notify_change +EXPORT_SYMBOL vmlinux 0x82477240 ida_destroy +EXPORT_SYMBOL vmlinux 0x8250bfdf tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8266276e netif_napi_del +EXPORT_SYMBOL vmlinux 0x826b5d6b dentry_path_raw +EXPORT_SYMBOL vmlinux 0x827f30e2 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x828062b1 __frontswap_init +EXPORT_SYMBOL vmlinux 0x829d4e08 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b86ce8 d_rehash +EXPORT_SYMBOL vmlinux 0x82d6597a filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x82e3d9cb udp_disconnect +EXPORT_SYMBOL vmlinux 0x8306b32d swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x831fa651 __sb_start_write +EXPORT_SYMBOL vmlinux 0x833c03aa acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x8356548d vfs_rename +EXPORT_SYMBOL vmlinux 0x8360237b jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x839a0416 scsi_init_io +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83ab4c81 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x83b22c2c add_disk +EXPORT_SYMBOL vmlinux 0x83b55ec8 elv_rb_add +EXPORT_SYMBOL vmlinux 0x83f3cdff gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0x8401b532 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x84060081 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x8409bc23 amd_iommu_flush_tlb +EXPORT_SYMBOL vmlinux 0x8417f512 acpi_update_all_gpes +EXPORT_SYMBOL vmlinux 0x841962f8 param_get_ushort +EXPORT_SYMBOL vmlinux 0x8435035f kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x844fe06a phy_drivers_register +EXPORT_SYMBOL vmlinux 0x8459e10b padata_alloc +EXPORT_SYMBOL vmlinux 0x8485cc44 kobject_set_name +EXPORT_SYMBOL vmlinux 0x84b4fe10 __pskb_copy +EXPORT_SYMBOL vmlinux 0x84ffea8b idr_preload +EXPORT_SYMBOL vmlinux 0x85004bc5 dev_change_carrier +EXPORT_SYMBOL vmlinux 0x85014063 netdev_all_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0x8509c540 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0x8518eca9 param_get_short +EXPORT_SYMBOL vmlinux 0x85322451 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x853bf7c1 param_set_int +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x8574b372 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x85806cf1 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x859d7781 account_page_redirty +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85de2562 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85ece68d ip_getsockopt +EXPORT_SYMBOL vmlinux 0x8608acbf dev_change_flags +EXPORT_SYMBOL vmlinux 0x86163603 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x8625692e mount_single +EXPORT_SYMBOL vmlinux 0x86283eb6 mmc_set_blockcount +EXPORT_SYMBOL vmlinux 0x863eab17 sock_from_file +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x8678ecbf release_sock +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86944cea devm_gpio_free +EXPORT_SYMBOL vmlinux 0x869f79e6 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x86c78811 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0x86d5255f _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x86e2676c jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x86e55604 bioset_create +EXPORT_SYMBOL vmlinux 0x86eb5149 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870ba891 free_user_ns +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x87572220 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x8779a34f param_ops_byte +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x8790917f devm_free_irq +EXPORT_SYMBOL vmlinux 0x879b0dc5 sock_alloc_file +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87ab7d56 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x87c29c1b netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0x87c58a96 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x87c7d825 tty_write_room +EXPORT_SYMBOL vmlinux 0x87d94bde inet_stream_ops +EXPORT_SYMBOL vmlinux 0x87dc469a mempool_create_node +EXPORT_SYMBOL vmlinux 0x87ec5ee7 pci_enable_msi_range +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8831c011 bdget_disk +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x88513970 param_set_byte +EXPORT_SYMBOL vmlinux 0x886e4a99 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x88901fd3 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x889704ce jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x8897df7d kobject_init +EXPORT_SYMBOL vmlinux 0x88b04e39 __register_nmi_handler +EXPORT_SYMBOL vmlinux 0x88b2002a ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x88b4fe4a redraw_screen +EXPORT_SYMBOL vmlinux 0x88bd91c4 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x88d4daf4 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x88e63b30 dqput +EXPORT_SYMBOL vmlinux 0x88f00d18 lg_global_unlock +EXPORT_SYMBOL vmlinux 0x88f3d342 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x88fb27a1 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x89167a2a account_page_dirtied +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x89330514 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x893f94ae twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x8948d328 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x894c2a85 backlight_force_update +EXPORT_SYMBOL vmlinux 0x894f80c2 __netlink_dump_start +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89794ad9 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x897e93f4 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x89916f73 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89b28c07 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x89b7b2a8 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x89c2c557 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x89c76e87 f_setown +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89e0fb08 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x89e2085b pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x89e2c319 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x8a0ceae5 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x8a1ab4ee timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8a2137ce __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x8a2ae4b5 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a4ef178 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x8a51d565 quota_send_warning +EXPORT_SYMBOL vmlinux 0x8a5690c8 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x8a5e9df4 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x8a5fdbf1 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x8a6af65c kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x8a7481da sock_no_listen +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a80d7a5 acpi_error +EXPORT_SYMBOL vmlinux 0x8a8acb49 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x8a8c4ce1 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ab6591e jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x8ab77fd3 ipmi_register_smi +EXPORT_SYMBOL vmlinux 0x8ad36b16 blk_peek_request +EXPORT_SYMBOL vmlinux 0x8adb9ea1 devfreq_resume_device +EXPORT_SYMBOL vmlinux 0x8addf5cf mpage_writepage +EXPORT_SYMBOL vmlinux 0x8b021b47 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x8b0c5f4e unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b226a81 acpi_video_dmi_demote_vendor +EXPORT_SYMBOL vmlinux 0x8b27ecd0 qdisc_reset +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b43159b register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x8b55613c tty_set_operations +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b75a3be key_type_keyring +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8baaeefb tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x8bb1ff41 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x8bb4c834 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x8bdc4f05 netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0x8bebda07 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x8bfcd7e6 security_dentry_init_security +EXPORT_SYMBOL vmlinux 0x8c06d610 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x8c0b2b18 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c306e84 bio_map_user +EXPORT_SYMBOL vmlinux 0x8c482143 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0x8c59eaed tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x8c637d43 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x8c66aed5 input_event +EXPORT_SYMBOL vmlinux 0x8c7c4949 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x8c8e7352 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL vmlinux 0x8c94a790 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8ceaee84 simple_write_begin +EXPORT_SYMBOL vmlinux 0x8cec02ff blk_mq_alloc_reserved_request +EXPORT_SYMBOL vmlinux 0x8cec2663 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x8cfbc914 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x8d0a7982 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x8d2a7d81 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x8d2bc820 pci_map_rom +EXPORT_SYMBOL vmlinux 0x8d2e268b param_ops_ulong +EXPORT_SYMBOL vmlinux 0x8d2fe30e touch_buffer +EXPORT_SYMBOL vmlinux 0x8d308ce1 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x8d377329 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x8d4d687f xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper +EXPORT_SYMBOL vmlinux 0x8d812ae0 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8da1a3cb acpi_remove_interface +EXPORT_SYMBOL vmlinux 0x8daf8c42 dql_init +EXPORT_SYMBOL vmlinux 0x8dbf4ff8 cdev_del +EXPORT_SYMBOL vmlinux 0x8dd028f7 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x8dd03c51 scsi_device_put +EXPORT_SYMBOL vmlinux 0x8dd6468e bdi_unregister +EXPORT_SYMBOL vmlinux 0x8df6c16d seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x8df92f66 memchr_inv +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0382f6 udp_prot +EXPORT_SYMBOL vmlinux 0x8e332829 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x8e4450d5 open_exec +EXPORT_SYMBOL vmlinux 0x8e4c982d proc_set_user +EXPORT_SYMBOL vmlinux 0x8e7feffd devm_gpiod_put +EXPORT_SYMBOL vmlinux 0x8e864a86 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x8e97186b __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x8ea43def max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8ec19b69 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x8ecdc7f3 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x8f01230a kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x8f159b0d pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0x8f252d5c tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f434d93 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x8f441772 make_bad_inode +EXPORT_SYMBOL vmlinux 0x8f48f86e fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x8f4fc0ac vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x8f54d382 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x8f65f32c scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x8f6df073 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0x8f8f56e0 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x8f91c6d8 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fc05578 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x8fc33b47 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x8fc7bf45 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x8fe48b08 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x8ff17f79 genphy_setup_forced +EXPORT_SYMBOL vmlinux 0x90075fcb dump_emit +EXPORT_SYMBOL vmlinux 0x901ae6fb pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x901b67e5 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x902b18ea end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x907475bf d_delete +EXPORT_SYMBOL vmlinux 0x908b53ed param_set_short +EXPORT_SYMBOL vmlinux 0x90921dc3 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x90b3a246 nf_log_packet +EXPORT_SYMBOL vmlinux 0x90b85f50 vga_switcheroo_register_audio_client +EXPORT_SYMBOL vmlinux 0x90cc536a ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x90d9ea4c tc_classify_compat +EXPORT_SYMBOL vmlinux 0x90e6eb26 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x90f3bf1a bdgrab +EXPORT_SYMBOL vmlinux 0x911b10c3 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x9148b0e9 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x914f9d08 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x91501e28 block_commit_write +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x9166fada strncpy +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x91967e8e xen_selfballoon_init +EXPORT_SYMBOL vmlinux 0x91a3cdf4 down_timeout +EXPORT_SYMBOL vmlinux 0x91ac822f vscnprintf +EXPORT_SYMBOL vmlinux 0x91b1b056 skb_pull +EXPORT_SYMBOL vmlinux 0x91b2da98 bdi_destroy +EXPORT_SYMBOL vmlinux 0x91ba07db lock_fb_info +EXPORT_SYMBOL vmlinux 0x91c66813 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x91e576c4 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x91f7f887 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x92218d88 sock_update_memcg +EXPORT_SYMBOL vmlinux 0x9237a911 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x925520d2 blk_start_plug +EXPORT_SYMBOL vmlinux 0x926ce692 __kfree_skb +EXPORT_SYMBOL vmlinux 0x9272dff0 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x927feb0c pskb_expand_head +EXPORT_SYMBOL vmlinux 0x9291cd3b memdup_user +EXPORT_SYMBOL vmlinux 0x92a9c60c time_to_tm +EXPORT_SYMBOL vmlinux 0x92b353bd dma_find_channel +EXPORT_SYMBOL vmlinux 0x92be0ac5 md_done_sync +EXPORT_SYMBOL vmlinux 0x92c62cd1 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x92d050df iov_pages +EXPORT_SYMBOL vmlinux 0x92e2c757 simple_statfs +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x931691dd vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0x9327f5ce _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x932ad7ff vfs_mknod +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x9347f202 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x9353268c inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x936673a5 netif_device_detach +EXPORT_SYMBOL vmlinux 0x936a8467 sock_no_accept +EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid +EXPORT_SYMBOL vmlinux 0x937eb6a7 scsi_get_command +EXPORT_SYMBOL vmlinux 0x9395eac6 bdev_read_only +EXPORT_SYMBOL vmlinux 0x93a33535 __break_lease +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93dfd729 may_umount_tree +EXPORT_SYMBOL vmlinux 0x93e9590c tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x93f3e52b acpi_extract_package +EXPORT_SYMBOL vmlinux 0x93f4fc27 datagram_poll +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x940b7b0a iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x9422dee3 agp_free_memory +EXPORT_SYMBOL vmlinux 0x94391f83 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x944c1f2e mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x946c69d7 update_time +EXPORT_SYMBOL vmlinux 0x946cccea crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x949cc1fb phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x949f6d04 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x94a42432 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x94bdd8b7 give_up_console +EXPORT_SYMBOL vmlinux 0x94c3f88e km_report +EXPORT_SYMBOL vmlinux 0x94dbb844 user_path_at +EXPORT_SYMBOL vmlinux 0x94eeb00a km_policy_notify +EXPORT_SYMBOL vmlinux 0x94f5bdb7 security_path_rename +EXPORT_SYMBOL vmlinux 0x9508f166 param_ops_bint +EXPORT_SYMBOL vmlinux 0x95273ab7 should_remove_suid +EXPORT_SYMBOL vmlinux 0x952fb6a3 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x9537e389 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x95395301 acpi_exception +EXPORT_SYMBOL vmlinux 0x95397067 set_pages_wb +EXPORT_SYMBOL vmlinux 0x953cd34f pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x955a832f ___preempt_schedule +EXPORT_SYMBOL vmlinux 0x95696490 netif_napi_add +EXPORT_SYMBOL vmlinux 0x9586c367 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x95ae0c36 agp_bridge +EXPORT_SYMBOL vmlinux 0x95f89a33 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x95fd9698 phy_connect +EXPORT_SYMBOL vmlinux 0x960456a3 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x960684e9 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x960d3dc2 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x961480c9 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x9630b796 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x969c0f35 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x96a793a0 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x96aecec1 xen_biovec_phys_mergeable +EXPORT_SYMBOL vmlinux 0x96b29254 strncasecmp +EXPORT_SYMBOL vmlinux 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96e1af90 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x970d83f9 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x9725b589 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x973fa82e register_acpi_notifier +EXPORT_SYMBOL vmlinux 0x973fdb1d netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x97683ae5 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x9772b31c lease_modify +EXPORT_SYMBOL vmlinux 0x977726ac agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x97868aef __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x978b90c0 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x97958bee kthread_stop +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x979c6914 mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x97a0ff64 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x97a22f11 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x97a60e3d param_get_bool +EXPORT_SYMBOL vmlinux 0x97b876bf setattr_copy +EXPORT_SYMBOL vmlinux 0x97c5bd0a acpi_unload_parent_table +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97e5f913 new_inode +EXPORT_SYMBOL vmlinux 0x97f914df pci_enable_msi_block_auto +EXPORT_SYMBOL vmlinux 0x9814d850 dst_discard +EXPORT_SYMBOL vmlinux 0x9820b644 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x9828b0fc sk_filter +EXPORT_SYMBOL vmlinux 0x9829fc11 __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0x9833aa28 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x983dd63f ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98769ac1 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x989a145b netpoll_rx_disable +EXPORT_SYMBOL vmlinux 0x98b67287 simple_readpage +EXPORT_SYMBOL vmlinux 0x98c1c963 rtnl_notify +EXPORT_SYMBOL vmlinux 0x98c44d43 __ps2_command +EXPORT_SYMBOL vmlinux 0x98ccc15e mmc_stop_bkops +EXPORT_SYMBOL vmlinux 0x98d6d206 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x9902000c netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x99195078 vsnprintf +EXPORT_SYMBOL vmlinux 0x99249212 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x9936447f gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x993b4b7f jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x99591a7a ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x9966bc3f generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x996f623e generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x998907d9 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99cb0c81 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d3a43c dm_table_get_size +EXPORT_SYMBOL vmlinux 0x99daa9bf try_offline_node +EXPORT_SYMBOL vmlinux 0x99e86969 set_pages_x +EXPORT_SYMBOL vmlinux 0x99f068d5 x86_cpu_to_node_map +EXPORT_SYMBOL vmlinux 0x99fc50bc is_bad_inode +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1fc4b4 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9a2c33f8 __skb_get_hash +EXPORT_SYMBOL vmlinux 0x9a386749 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x9a4dd891 __frontswap_store +EXPORT_SYMBOL vmlinux 0x9a5ffc64 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x9a647594 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x9a89066f inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x9ab02fad gen10g_resume +EXPORT_SYMBOL vmlinux 0x9abdf7a8 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x9ac18dac __alloc_skb +EXPORT_SYMBOL vmlinux 0x9ae93d77 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x9af89f98 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9b103148 mnt_pin +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b4e4b14 dev_trans_start +EXPORT_SYMBOL vmlinux 0x9b5ac90e scsi_ioctl +EXPORT_SYMBOL vmlinux 0x9b63a65f inet_accept +EXPORT_SYMBOL vmlinux 0x9b7097c8 truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x9b75cb81 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x9b9513ca ata_print_version +EXPORT_SYMBOL vmlinux 0x9b9e05f9 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x9b9f9ae7 block_truncate_page +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9be17fb0 udp_del_offload +EXPORT_SYMBOL vmlinux 0x9be7bde4 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x9bfc7988 dev_get_nest_level +EXPORT_SYMBOL vmlinux 0x9c07d2e7 skb_insert +EXPORT_SYMBOL vmlinux 0x9c3c2c50 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x9c40b99c kernel_sendpage +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c56ee77 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x9c594dfc create_syslog_header +EXPORT_SYMBOL vmlinux 0x9c75f596 simple_dentry_operations +EXPORT_SYMBOL vmlinux 0x9c7ce456 sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0x9ca18f8d skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9cad7326 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x9cb3f9fe proc_remove +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d05f6c4 ktime_get_clocktai +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d1a5e3a __memcpy +EXPORT_SYMBOL vmlinux 0x9d216a05 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3e6a9e bdi_register +EXPORT_SYMBOL vmlinux 0x9d476ca4 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x9d48f802 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x9d5b5c94 dma_pool_create +EXPORT_SYMBOL vmlinux 0x9d769eda xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x9d81ad4d unregister_key_type +EXPORT_SYMBOL vmlinux 0x9dee1bce do_sync_write +EXPORT_SYMBOL vmlinux 0x9e038d3d ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x9e079764 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e15e04a keyring_clear +EXPORT_SYMBOL vmlinux 0x9e250130 get_agp_version +EXPORT_SYMBOL vmlinux 0x9e2f8c90 lz4_decompress_unknownoutputsize +EXPORT_SYMBOL vmlinux 0x9e3383a2 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x9e363b6b acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e624c9b inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x9e6491b8 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e68e22b init_net +EXPORT_SYMBOL vmlinux 0x9e6a470c amd_iommu_domain_direct_map +EXPORT_SYMBOL vmlinux 0x9e6bd4c4 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x9e700d94 spi_dv_device +EXPORT_SYMBOL vmlinux 0x9e791650 dm_register_target +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ec8b75b padata_do_parallel +EXPORT_SYMBOL vmlinux 0x9ed2eec7 param_set_ushort +EXPORT_SYMBOL vmlinux 0x9ed94b6e nf_ct_attach +EXPORT_SYMBOL vmlinux 0x9edb836d __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x9f1032e2 neigh_for_each +EXPORT_SYMBOL vmlinux 0x9f29e6ff __skb_gso_segment +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f31f54b PDE_DATA +EXPORT_SYMBOL vmlinux 0x9f459f34 truncate_setsize +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f66c01b pv_cpu_ops +EXPORT_SYMBOL vmlinux 0x9f6e19ab mem_section +EXPORT_SYMBOL vmlinux 0x9f708690 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x9f859de6 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x9f92adf4 kset_register +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa6038b irq_to_desc +EXPORT_SYMBOL vmlinux 0x9fb615b9 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x9fc0f5d1 iget_failed +EXPORT_SYMBOL vmlinux 0x9fc169fa xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x9fc28107 names_cachep +EXPORT_SYMBOL vmlinux 0x9fcac0c5 mmc_read_bkops_status +EXPORT_SYMBOL vmlinux 0x9fd7e08c netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe69a63 find_lock_page +EXPORT_SYMBOL vmlinux 0x9feb7fe2 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0xa00aca2a dql_completed +EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa05f372e seq_printf +EXPORT_SYMBOL vmlinux 0xa07a37f0 memchr +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa0834a47 gen_pool_free +EXPORT_SYMBOL vmlinux 0xa090a907 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xa093c024 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xa0ac9908 ipmi_smi_add_proc_entry +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b27c09 mmc_erase +EXPORT_SYMBOL vmlinux 0xa0b45bd9 tty_lock_pair +EXPORT_SYMBOL vmlinux 0xa0bb502a xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d5d69d __napi_schedule +EXPORT_SYMBOL vmlinux 0xa0dad88e netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0f5e484 blk_integrity_register +EXPORT_SYMBOL vmlinux 0xa0f8ef50 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0ff74d6 udp_memory_allocated +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa10b54f0 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xa120ac34 dev_alert +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa131c402 mmc_start_req +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa19a6018 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xa1b33eda block_invalidatepage +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1b8dbf6 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1e7b648 filemap_fault +EXPORT_SYMBOL vmlinux 0xa1f2e127 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xa1ffc92f sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xa202a8e5 kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa229a717 submit_bio +EXPORT_SYMBOL vmlinux 0xa278c5a3 compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL vmlinux 0xa28c540d key_invalidate +EXPORT_SYMBOL vmlinux 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL vmlinux 0xa2abc3b6 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xa2ca5753 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa326af8c sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0xa341244f bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa3682862 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xa38830fe fb_get_mode +EXPORT_SYMBOL vmlinux 0xa3a63867 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xa3a77c69 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa3be1310 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xa3de9b0c request_firmware +EXPORT_SYMBOL vmlinux 0xa3f96685 wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0xa3f9d4ac __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xa3fc3d50 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0xa400159f crc32_be +EXPORT_SYMBOL vmlinux 0xa402e043 bdput +EXPORT_SYMBOL vmlinux 0xa412d594 vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0xa434305b rt6_lookup +EXPORT_SYMBOL vmlinux 0xa436b645 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xa43f67ea dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0xa447de6d security_file_permission +EXPORT_SYMBOL vmlinux 0xa4511467 crc16 +EXPORT_SYMBOL vmlinux 0xa45ff8b1 nobh_writepage +EXPORT_SYMBOL vmlinux 0xa4701e9e timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0xa4710020 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0xa47fbe17 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xa48895af sk_run_filter +EXPORT_SYMBOL vmlinux 0xa48ab2e1 rtmsg_ifinfo +EXPORT_SYMBOL vmlinux 0xa4a510bb neigh_connected_output +EXPORT_SYMBOL vmlinux 0xa4b2cfe6 skb_seq_read +EXPORT_SYMBOL vmlinux 0xa4b46004 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4f0aa19 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xa4f13ccc bd_set_size +EXPORT_SYMBOL vmlinux 0xa4f87d42 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xa4fd49b7 seq_bitmap +EXPORT_SYMBOL vmlinux 0xa51df2b4 down_killable +EXPORT_SYMBOL vmlinux 0xa53521d4 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xa5430bdf __ht_create_irq +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa5751e41 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xa58a3166 lg_local_lock +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5bf258b mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xa5e4f65c __next_cpu_nr +EXPORT_SYMBOL vmlinux 0xa5ebc334 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xa5ef1a34 dev_deactivate +EXPORT_SYMBOL vmlinux 0xa5fe5c65 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xa63a2f9b param_get_ulong +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa65569a4 nonseekable_open +EXPORT_SYMBOL vmlinux 0xa65dd935 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xa6715115 do_settimeofday +EXPORT_SYMBOL vmlinux 0xa6752c21 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa67cd501 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0xa67d99f0 scsi_register +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6a925be scsi_register_driver +EXPORT_SYMBOL vmlinux 0xa6bd63ca acpi_bios_error +EXPORT_SYMBOL vmlinux 0xa6ca2864 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xa70e7b13 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa730963d tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xa735db59 prandom_u32 +EXPORT_SYMBOL vmlinux 0xa78516cf sg_miter_start +EXPORT_SYMBOL vmlinux 0xa7c3aa7e pcie_port_service_register +EXPORT_SYMBOL vmlinux 0xa7dc75fc pci_disable_ido +EXPORT_SYMBOL vmlinux 0xa7fe4ce5 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa8308bc9 vfs_setpos +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa847e9e5 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xa8719003 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0xa8721b97 system_state +EXPORT_SYMBOL vmlinux 0xa89f636e pci_restore_state +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8e760ca bdevname +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa908350b bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xa916b694 strnlen +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa91d1125 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xa941acdd tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xa94cdf4d tcp_proc_register +EXPORT_SYMBOL vmlinux 0xa955b90d scsi_host_put +EXPORT_SYMBOL vmlinux 0xa95d3cdb gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0xa96ea43e input_close_device +EXPORT_SYMBOL vmlinux 0xa981fa2d iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0xa98be38c swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xa98e2ed4 __d_drop +EXPORT_SYMBOL vmlinux 0xa993559e fsync_bdev +EXPORT_SYMBOL vmlinux 0xa9a1c64b dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xa9a8e17f arch_phys_wc_add +EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc +EXPORT_SYMBOL vmlinux 0xa9d8f55e ida_simple_remove +EXPORT_SYMBOL vmlinux 0xa9fd6828 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xaa0073b7 __net_get_random_once +EXPORT_SYMBOL vmlinux 0xaa0afc04 compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0xaa1675a5 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0xaa1cb6f1 d_drop +EXPORT_SYMBOL vmlinux 0xaa5ae018 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xaa6c42dd __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa9087c0 param_ops_string +EXPORT_SYMBOL vmlinux 0xaaa35363 simple_rmdir +EXPORT_SYMBOL vmlinux 0xaabd82f9 send_sig_info +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaf829d9 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab03c28e compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xab0795f4 generic_writepages +EXPORT_SYMBOL vmlinux 0xab2abddf dma_spin_lock +EXPORT_SYMBOL vmlinux 0xab48c52b set_groups +EXPORT_SYMBOL vmlinux 0xab56b5f2 __put_cred +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65df5e neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xabc6dd63 cpufreq_sysfs_create_file +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd9d36f fasync_helper +EXPORT_SYMBOL vmlinux 0xabdb0b7d amd_iommu_domain_enable_v2 +EXPORT_SYMBOL vmlinux 0xabfb3899 _dev_info +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac0f6c83 __cleancache_invalidate_page +EXPORT_SYMBOL vmlinux 0xac11e849 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac22ee74 alloc_anon_inode +EXPORT_SYMBOL vmlinux 0xac374df6 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0xac3d20e2 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xac4a1707 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac8c39f3 __neigh_create +EXPORT_SYMBOL vmlinux 0xac905208 blk_mq_map_queue +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacb74e68 phy_device_free +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacd4de07 pcim_pin_device +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad01744f kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0c0eb2 dquot_drop +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad164875 kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xad2a8bd2 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0xad31e1ad qdisc_destroy +EXPORT_SYMBOL vmlinux 0xad37bbcd pci_enable_ido +EXPORT_SYMBOL vmlinux 0xad69d8da netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xad72f25f serio_interrupt +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad97e9d0 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xadab82c2 phy_print_status +EXPORT_SYMBOL vmlinux 0xadd8c219 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xade28ff7 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xadfb6647 ps2_init +EXPORT_SYMBOL vmlinux 0xadfdcccf bio_init +EXPORT_SYMBOL vmlinux 0xae08a119 netpoll_rx_enable +EXPORT_SYMBOL vmlinux 0xae091c59 pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0xae237eba skb_push +EXPORT_SYMBOL vmlinux 0xae418a47 xfrm_register_type +EXPORT_SYMBOL vmlinux 0xae44a545 blk_init_queue +EXPORT_SYMBOL vmlinux 0xae596364 make_kgid +EXPORT_SYMBOL vmlinux 0xae64a0bd inet6_getname +EXPORT_SYMBOL vmlinux 0xae729e59 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0xae75993b blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaed01c30 force_sig +EXPORT_SYMBOL vmlinux 0xaf2330aa skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xaf282cd8 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xaf2c31d2 write_inode_now +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf431349 netif_device_attach +EXPORT_SYMBOL vmlinux 0xaf58aa58 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xaf611eac amd_nb_misc_ids +EXPORT_SYMBOL vmlinux 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL vmlinux 0xaf6ae696 kstrndup +EXPORT_SYMBOL vmlinux 0xaf7ee16b arp_invalidate +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xafa53c0b ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xafad493b param_ops_ushort +EXPORT_SYMBOL vmlinux 0xafae0796 __mutex_init +EXPORT_SYMBOL vmlinux 0xafb8c6ff copy_user_generic_string +EXPORT_SYMBOL vmlinux 0xafc3ae75 __blk_run_queue +EXPORT_SYMBOL vmlinux 0xafd5ff2c amd_iommu_v2_supported +EXPORT_SYMBOL vmlinux 0xafd7ccb4 xfrm_register_km +EXPORT_SYMBOL vmlinux 0xafedccc8 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xb0026d7b phy_stop +EXPORT_SYMBOL vmlinux 0xb006077e tcf_register_action +EXPORT_SYMBOL vmlinux 0xb01b1db8 intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0xb01bb2f1 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0xb02c0c33 save_mount_options +EXPORT_SYMBOL vmlinux 0xb02e9cab compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xb05902ca blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb078667f pipe_to_file +EXPORT_SYMBOL vmlinux 0xb07b4183 blk_mq_run_queues +EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0bb41cc phy_attach_direct +EXPORT_SYMBOL vmlinux 0xb0c13ace d_set_d_op +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e602eb memmove +EXPORT_SYMBOL vmlinux 0xb0e7f014 udp_sendmsg +EXPORT_SYMBOL vmlinux 0xb0f1b188 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xb0f83b66 set_binfmt +EXPORT_SYMBOL vmlinux 0xb0ffda2f blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xb103e24e tcp_init_sock +EXPORT_SYMBOL vmlinux 0xb108c0df install_exec_creds +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb138d0bf dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0xb1561a2c devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb1690185 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xb1722664 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xb174d323 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xb177efe7 secpath_dup +EXPORT_SYMBOL vmlinux 0xb17906b1 skb_queue_purge +EXPORT_SYMBOL vmlinux 0xb1826278 simple_link +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb19a050f bio_copy_user +EXPORT_SYMBOL vmlinux 0xb1a3e345 blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0xb1b42470 idr_init +EXPORT_SYMBOL vmlinux 0xb1b85786 eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cf44df fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1db9e4e param_get_invbool +EXPORT_SYMBOL vmlinux 0xb1e009b2 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xb1e68173 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xb1f7876c kernel_connect +EXPORT_SYMBOL vmlinux 0xb20ecf88 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb2348642 kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0xb246d474 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xb24d6927 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb28b6636 fddi_type_trans +EXPORT_SYMBOL vmlinux 0xb2a57339 skb_flow_dissect +EXPORT_SYMBOL vmlinux 0xb2b531c9 mount_subtree +EXPORT_SYMBOL vmlinux 0xb2b689ec seq_write +EXPORT_SYMBOL vmlinux 0xb2be6e92 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xb2d97d7b inet_listen +EXPORT_SYMBOL vmlinux 0xb2e08e7b lg_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xb2f1bb0e inet_csk_accept +EXPORT_SYMBOL vmlinux 0xb2f74fb6 intel_gmch_remove +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb3003ceb elv_add_request +EXPORT_SYMBOL vmlinux 0xb307278b d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0xb325ead6 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb34b8c68 phy_attach +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb37327ae key_revoke +EXPORT_SYMBOL vmlinux 0xb37a6e28 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xb38ca3be inet_shutdown +EXPORT_SYMBOL vmlinux 0xb3a625a3 dquot_acquire +EXPORT_SYMBOL vmlinux 0xb3adb9ef qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xb3bb43b9 padata_start +EXPORT_SYMBOL vmlinux 0xb3d35444 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0xb3e4d8bc sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb44e4f56 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xb4529f1c request_key +EXPORT_SYMBOL vmlinux 0xb46b2f6f rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb47189b5 reservation_ww_class +EXPORT_SYMBOL vmlinux 0xb4985853 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xb4adf170 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0xb4ae27f4 netdev_update_features +EXPORT_SYMBOL vmlinux 0xb4c19b24 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0xb4c8520a block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xb4cbf2b7 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xb4d33ba4 ata_dev_printk +EXPORT_SYMBOL vmlinux 0xb4ead463 rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0xb510e488 dev_uc_init +EXPORT_SYMBOL vmlinux 0xb5115151 fb_show_logo +EXPORT_SYMBOL vmlinux 0xb5116ad3 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xb52ee8be intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb558611c d_add_ci +EXPORT_SYMBOL vmlinux 0xb55ec554 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xb55efadf kthread_bind +EXPORT_SYMBOL vmlinux 0xb56f8f8f d_find_any_alias +EXPORT_SYMBOL vmlinux 0xb57343c2 frontswap_shrink +EXPORT_SYMBOL vmlinux 0xb57f2457 sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0xb5a32a65 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5b39bd0 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5dcab5b remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb5f729b1 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xb5fedc93 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0xb5ffdc28 __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0xb6083b9d tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xb611ab3d ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb6270100 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xb62bc996 from_kuid_munged +EXPORT_SYMBOL vmlinux 0xb6394d4b param_set_bint +EXPORT_SYMBOL vmlinux 0xb659c4df ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xb6662dad jbd2__journal_start +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb682ab58 eth_change_mtu +EXPORT_SYMBOL vmlinux 0xb688c2ec free_buffer_head +EXPORT_SYMBOL vmlinux 0xb68e4745 ata_link_printk +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6b46a7c param_ops_int +EXPORT_SYMBOL vmlinux 0xb6b556af dput +EXPORT_SYMBOL vmlinux 0xb6c19d20 dquot_initialize +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node +EXPORT_SYMBOL vmlinux 0xb6e44acd pipe_lock +EXPORT_SYMBOL vmlinux 0xb6e5b495 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0xb70a1246 gen10g_restart_aneg +EXPORT_SYMBOL vmlinux 0xb71364fb netif_carrier_off +EXPORT_SYMBOL vmlinux 0xb72b0124 nf_log_unset +EXPORT_SYMBOL vmlinux 0xb74a04a8 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb75d7daf serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xb75d8f3e gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0xb76cba6f mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0xb77131b1 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xb799d95c fbcon_rotate_ud +EXPORT_SYMBOL vmlinux 0xb7acfb35 bio_advance +EXPORT_SYMBOL vmlinux 0xb7b6cfa9 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xb7d4a06f netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0xb7e39e89 phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0xb7e5aaf4 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xb7f47feb inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0xb7fa335a tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xb80f8730 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xb8144042 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb83679d1 __block_write_begin +EXPORT_SYMBOL vmlinux 0xb84e034e uart_get_divisor +EXPORT_SYMBOL vmlinux 0xb85327df pnp_device_attach +EXPORT_SYMBOL vmlinux 0xb8547890 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xb8605984 release_pages +EXPORT_SYMBOL vmlinux 0xb874b87a __clzsi2 +EXPORT_SYMBOL vmlinux 0xb8918710 dcache_readdir +EXPORT_SYMBOL vmlinux 0xb892b294 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0xb8bf134a pci_disable_device +EXPORT_SYMBOL vmlinux 0xb8d2b9e2 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xb8d73e97 param_set_uint +EXPORT_SYMBOL vmlinux 0xb8de87fc rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8f28162 devm_request_and_ioremap +EXPORT_SYMBOL vmlinux 0xb8f40de9 tcp_connect +EXPORT_SYMBOL vmlinux 0xb8fcd8bb scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0xb903aa95 get_user_pages +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb90a462e napi_get_frags +EXPORT_SYMBOL vmlinux 0xb9249d16 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xb933db00 alloc_file +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb995963b i2c_transfer +EXPORT_SYMBOL vmlinux 0xb99fd1ca kfree_skb_list +EXPORT_SYMBOL vmlinux 0xb9ac2615 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0xb9b4b823 dquot_quota_off +EXPORT_SYMBOL vmlinux 0xb9b4e181 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0xb9b60a84 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0xb9c65a19 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xb9c87a1c vga_switcheroo_fini_domain_pm_ops +EXPORT_SYMBOL vmlinux 0xb9e889a1 do_splice_direct +EXPORT_SYMBOL vmlinux 0xb9e8e2cc in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0xb9e981a1 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xb9eb6205 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xb9ecce15 pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0xb9ee60d7 security_inode_init_security +EXPORT_SYMBOL vmlinux 0xb9ef78d6 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0xb9f5b297 fget +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xb9ffda5c tty_kref_put +EXPORT_SYMBOL vmlinux 0xba0a3290 md_check_recovery +EXPORT_SYMBOL vmlinux 0xba1b64d1 eth_type_trans +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba63339c _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xba6cceb3 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xbaa34806 security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0xbac21cc5 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xbacf7eec sock_sendmsg +EXPORT_SYMBOL vmlinux 0xbb037f24 pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb409974 single_open_size +EXPORT_SYMBOL vmlinux 0xbb4f4766 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb631597 find_vma +EXPORT_SYMBOL vmlinux 0xbb6530ec insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xbb694f38 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xbb713e6d sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0xbb7d7d3d inet_frags_fini +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba3ba6c kill_pid +EXPORT_SYMBOL vmlinux 0xbba3f119 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xbbaeb559 memcg_socket_limit_enabled +EXPORT_SYMBOL vmlinux 0xbbc444b8 sk_capable +EXPORT_SYMBOL vmlinux 0xbbef9178 ndo_dflt_bridge_getlink +EXPORT_SYMBOL vmlinux 0xbbf7d644 d_alloc_name +EXPORT_SYMBOL vmlinux 0xbbf8cba7 register_netdevice +EXPORT_SYMBOL vmlinux 0xbbfcaca5 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xbc04baaf audit_log_task_info +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc276c9d swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xbc2978e9 lg_global_lock +EXPORT_SYMBOL vmlinux 0xbc34cb1a kmem_cache_free +EXPORT_SYMBOL vmlinux 0xbc45baa7 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xbc49048a jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xbc502e70 input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0xbc782a64 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0xbc9b9dac security_path_unlink +EXPORT_SYMBOL vmlinux 0xbca84bf9 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xbcc22f61 cad_pid +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcdd601a generic_write_end +EXPORT_SYMBOL vmlinux 0xbcea5265 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xbcf33807 dev_addr_init +EXPORT_SYMBOL vmlinux 0xbcf54961 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xbcfbf91e agp_unbind_memory +EXPORT_SYMBOL vmlinux 0xbd09cd54 pci_alloc_dev +EXPORT_SYMBOL vmlinux 0xbd100793 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xbd318c45 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xbd34350c inet_bind +EXPORT_SYMBOL vmlinux 0xbd462b55 __kfifo_init +EXPORT_SYMBOL vmlinux 0xbd497058 netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0xbd911d0e tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xbd930b1e kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xbd9d6d1c netdev_printk +EXPORT_SYMBOL vmlinux 0xbda4e66b bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xbdae371f swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0xbdaf5b07 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0xbdb70dfa xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xbde2767d inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0xbdf635ef sget +EXPORT_SYMBOL vmlinux 0xbdfb6dbb __fentry__ +EXPORT_SYMBOL vmlinux 0xbe046049 proto_unregister +EXPORT_SYMBOL vmlinux 0xbe18153d try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xbe1e7a3e mapping_tagged +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe6bae83 __sock_create +EXPORT_SYMBOL vmlinux 0xbe82b661 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xbe9e6230 __scsi_put_command +EXPORT_SYMBOL vmlinux 0xbe9fae9c xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xbea5e603 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xbeaca902 write_one_page +EXPORT_SYMBOL vmlinux 0xbec30d05 x86_match_cpu +EXPORT_SYMBOL vmlinux 0xbeceb992 d_lookup +EXPORT_SYMBOL vmlinux 0xbedee460 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf01fde0 pci_request_region +EXPORT_SYMBOL vmlinux 0xbf0819f3 netdev_features_change +EXPORT_SYMBOL vmlinux 0xbf11b604 kill_block_super +EXPORT_SYMBOL vmlinux 0xbf1bc52c simple_getattr +EXPORT_SYMBOL vmlinux 0xbf2c3d87 neigh_app_ns +EXPORT_SYMBOL vmlinux 0xbf3d01d6 capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0xbf41079e cdev_add +EXPORT_SYMBOL vmlinux 0xbf42c8ba register_xen_selfballooning +EXPORT_SYMBOL vmlinux 0xbf5b514e pci_match_id +EXPORT_SYMBOL vmlinux 0xbf644a1e tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xbf760db1 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba0de blk_free_tags +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfbfd38b ll_rw_block +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc01cf848 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xc0266843 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc02f4c4d fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xc06f86a7 consume_skb +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc08608a7 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xc0909936 twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0b4e989 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0xc0b79797 update_region +EXPORT_SYMBOL vmlinux 0xc0ccaea5 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0xc0cf17f9 tcp_ioctl +EXPORT_SYMBOL vmlinux 0xc0e0cc32 blk_mq_end_io +EXPORT_SYMBOL vmlinux 0xc0e106ee d_path +EXPORT_SYMBOL vmlinux 0xc0e2583c set_page_dirty +EXPORT_SYMBOL vmlinux 0xc101fb53 __breadahead +EXPORT_SYMBOL vmlinux 0xc135907c blkdev_issue_write_same +EXPORT_SYMBOL vmlinux 0xc136cc24 dqget +EXPORT_SYMBOL vmlinux 0xc14f6010 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xc15a44c6 memzero_explicit +EXPORT_SYMBOL vmlinux 0xc15ea471 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xc170e304 sock_no_connect +EXPORT_SYMBOL vmlinux 0xc1a7a3d3 pci_release_region +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1c397a7 amd_northbridges +EXPORT_SYMBOL vmlinux 0xc1f041fc mount_pseudo +EXPORT_SYMBOL vmlinux 0xc1f1506e netdev_info +EXPORT_SYMBOL vmlinux 0xc1f3dff9 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xc1fc2eea dev_set_group +EXPORT_SYMBOL vmlinux 0xc207762b posix_test_lock +EXPORT_SYMBOL vmlinux 0xc2172e3f padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xc21b1fa7 blk_get_request +EXPORT_SYMBOL vmlinux 0xc222cca5 serio_rescan +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc24b6571 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc25b8f9b bio_map_kern +EXPORT_SYMBOL vmlinux 0xc25dc220 from_kgid_munged +EXPORT_SYMBOL vmlinux 0xc276958c dev_driver_string +EXPORT_SYMBOL vmlinux 0xc27dab98 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0xc29a2b06 wake_up_process +EXPORT_SYMBOL vmlinux 0xc29bf967 strspn +EXPORT_SYMBOL vmlinux 0xc2a2af74 blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0xc2a49a69 vfs_fsync +EXPORT_SYMBOL vmlinux 0xc2b7b9a4 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xc2c69238 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xc2caddcb __destroy_inode +EXPORT_SYMBOL vmlinux 0xc2cdc1f1 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xc2d139a2 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xc2d8a739 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2e9f79e acpi_pm_device_sleep_state +EXPORT_SYMBOL vmlinux 0xc2f9c045 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xc310b981 strnstr +EXPORT_SYMBOL vmlinux 0xc335e6f3 clear_nlink +EXPORT_SYMBOL vmlinux 0xc33ac5bc remap_vmalloc_range_partial +EXPORT_SYMBOL vmlinux 0xc356130a ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xc357e03a netlink_broadcast +EXPORT_SYMBOL vmlinux 0xc35a6a00 seq_puts +EXPORT_SYMBOL vmlinux 0xc35c5067 dquot_quota_on +EXPORT_SYMBOL vmlinux 0xc35ef68d __ww_mutex_lock +EXPORT_SYMBOL vmlinux 0xc3711919 mmc_can_trim +EXPORT_SYMBOL vmlinux 0xc3a756c7 filp_open +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3e20023 kill_pgrp +EXPORT_SYMBOL vmlinux 0xc3e32536 spi_release_transport +EXPORT_SYMBOL vmlinux 0xc3e4f92d register_quota_format +EXPORT_SYMBOL vmlinux 0xc3e670c9 dquot_disable +EXPORT_SYMBOL vmlinux 0xc40157ce kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xc40b2ed5 dget_parent +EXPORT_SYMBOL vmlinux 0xc46d409a security_path_chmod +EXPORT_SYMBOL vmlinux 0xc48307db lz4_decompress +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a9c239 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xc4ca3ab5 dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0xc4ce1bf9 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xc4d2314c vm_event_states +EXPORT_SYMBOL vmlinux 0xc4dd4121 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xc4de2759 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xc4e35593 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xc4fc5ff4 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xc50d5568 vfs_write +EXPORT_SYMBOL vmlinux 0xc548b168 tcp_seq_open +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc558530d profile_pc +EXPORT_SYMBOL vmlinux 0xc589e044 param_set_long +EXPORT_SYMBOL vmlinux 0xc597513f revalidate_disk +EXPORT_SYMBOL vmlinux 0xc5ad613d adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0xc5ae661b lock_sock_nested +EXPORT_SYMBOL vmlinux 0xc5c02989 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5e0a697 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xc5f75159 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xc5fdef94 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xc60cd857 bio_endio +EXPORT_SYMBOL vmlinux 0xc625ebcf __bread +EXPORT_SYMBOL vmlinux 0xc6271112 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xc63079d8 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc64360a6 bdget +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc666a132 crc_t10dif +EXPORT_SYMBOL vmlinux 0xc6826169 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xc69280d0 file_remove_suid +EXPORT_SYMBOL vmlinux 0xc6a66180 rwsem_wake +EXPORT_SYMBOL vmlinux 0xc6b06462 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xc6b368d3 acpi_gpe_count +EXPORT_SYMBOL vmlinux 0xc6b808cc get_super +EXPORT_SYMBOL vmlinux 0xc6ba134c __ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xc6c5bb04 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xc6cb465a __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6cdb0fc dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0xc6d21d81 dev_get_phys_port_id +EXPORT_SYMBOL vmlinux 0xc6d85490 mutex_unlock +EXPORT_SYMBOL vmlinux 0xc6deb8b5 input_inject_event +EXPORT_SYMBOL vmlinux 0xc715d9e0 boot_cpu_data +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc73d499b devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0xc74175cb nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xc74a5479 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xc753ec8e del_gendisk +EXPORT_SYMBOL vmlinux 0xc770d15c idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc784c7e3 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc79ab4a7 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7ad09e7 gen10g_read_status +EXPORT_SYMBOL vmlinux 0xc7b65f84 free_task +EXPORT_SYMBOL vmlinux 0xc7e629e8 pci_select_bars +EXPORT_SYMBOL vmlinux 0xc7ea9c90 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xc7edb236 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xc800bbbd get_super_thawed +EXPORT_SYMBOL vmlinux 0xc80ffced jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xc83b4d5b posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc860e57f gen10g_config_aneg +EXPORT_SYMBOL vmlinux 0xc86aff3f inet6_ioctl +EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc89d0492 empty_aops +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8ffa858 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xc903a92d abx500_register_ops +EXPORT_SYMBOL vmlinux 0xc90b9abd set_bh_page +EXPORT_SYMBOL vmlinux 0xc910adbe mark_info_dirty +EXPORT_SYMBOL vmlinux 0xc916fe8b __i2c_transfer +EXPORT_SYMBOL vmlinux 0xc91f15cd gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0xc943149f jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xc94d33f2 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0xc95efb4c md_finish_reshape +EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0xc97655d6 __lock_page +EXPORT_SYMBOL vmlinux 0xc978479a xz_dec_run +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc997e09d simple_transaction_read +EXPORT_SYMBOL vmlinux 0xc9a66d5f abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xc9a7e3e7 blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc9c39193 devm_gpio_request_one +EXPORT_SYMBOL vmlinux 0xca006794 neigh_table_init +EXPORT_SYMBOL vmlinux 0xca4ca404 gen_pool_create +EXPORT_SYMBOL vmlinux 0xca577782 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca636325 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0xca6dc027 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xca71cc4a make_kprojid +EXPORT_SYMBOL vmlinux 0xca73cb4f block_write_full_page +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xcaa2875c qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xcab7f30c set_device_ro +EXPORT_SYMBOL vmlinux 0xcac8b710 __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0xcaef1b77 idr_remove +EXPORT_SYMBOL vmlinux 0xcafac0ea md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb0c5d50 param_get_uint +EXPORT_SYMBOL vmlinux 0xcb230409 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xcb3f132d dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0xcb6e2c34 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb7ec586 security_path_mknod +EXPORT_SYMBOL vmlinux 0xcb8b6ffe pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xcba14ce5 __idr_remove_all +EXPORT_SYMBOL vmlinux 0xcbae6c7a acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbce361b dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xcbe67281 ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0xcc173cab acpi_walk_resource_buffer +EXPORT_SYMBOL vmlinux 0xcc1c63e3 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xcc1e5dc3 key_unlink +EXPORT_SYMBOL vmlinux 0xcc22d365 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc37f55c blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xcc43ee06 dev_addr_del +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc58ea76 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xcc60102b pci_pme_capable +EXPORT_SYMBOL vmlinux 0xcc68241c __pci_enable_wake +EXPORT_SYMBOL vmlinux 0xcc7f98c6 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc88840c blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0xccab4d6c pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xccc21f5e input_get_new_minor +EXPORT_SYMBOL vmlinux 0xccda53e2 pci_release_regions +EXPORT_SYMBOL vmlinux 0xcd168f39 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xcd1d07c0 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xcd20667a kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0xcd230948 __lru_cache_add +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd2ec414 skb_checksum +EXPORT_SYMBOL vmlinux 0xcd3bc598 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xcd6fb127 wireless_send_event +EXPORT_SYMBOL vmlinux 0xcd743079 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xcd8e330c icmp_send +EXPORT_SYMBOL vmlinux 0xcda3d3c1 serio_close +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcde0a1e5 pcie_get_minimum_link +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xce16bd70 tty_do_resize +EXPORT_SYMBOL vmlinux 0xce189199 jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0xce1a2686 free_netdev +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce3d88bf input_set_keycode +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce4e47b6 __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce6220b5 pnp_possible_config +EXPORT_SYMBOL vmlinux 0xce69722b netdev_change_features +EXPORT_SYMBOL vmlinux 0xce77b06c user_path_create +EXPORT_SYMBOL vmlinux 0xce8d76da register_filesystem +EXPORT_SYMBOL vmlinux 0xce9546b7 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xcee55a9c generic_removexattr +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcef87c50 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf21d241 __wake_up +EXPORT_SYMBOL vmlinux 0xcf23a509 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0xcf3c2557 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xcf46d927 register_key_type +EXPORT_SYMBOL vmlinux 0xcf4776c7 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcfb5fb54 __find_get_block +EXPORT_SYMBOL vmlinux 0xcfd3b282 balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0xcfd937ae ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0xcfe7c1b9 dquot_scan_active +EXPORT_SYMBOL vmlinux 0xcff47557 iterate_dir +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd01eb3c3 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xd01f6f5d __genl_register_family +EXPORT_SYMBOL vmlinux 0xd0298b8b proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xd033f413 seq_release_private +EXPORT_SYMBOL vmlinux 0xd067fc5c proc_dointvec +EXPORT_SYMBOL vmlinux 0xd0720a17 on_each_cpu_cond +EXPORT_SYMBOL vmlinux 0xd074bfa6 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0xd0854db3 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0b58ef7 blk_run_queue_async +EXPORT_SYMBOL vmlinux 0xd0d0aa72 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd1047e84 __bforget +EXPORT_SYMBOL vmlinux 0xd104f04b account_page_writeback +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd11c2d10 scsi_finish_command +EXPORT_SYMBOL vmlinux 0xd1652a93 acpi_info +EXPORT_SYMBOL vmlinux 0xd16c940d generic_setxattr +EXPORT_SYMBOL vmlinux 0xd1750b3c backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xd17ab8c2 inc_nlink +EXPORT_SYMBOL vmlinux 0xd1816f32 frontswap_writethrough +EXPORT_SYMBOL vmlinux 0xd18657da vfs_create +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd18cffe5 amd_iommu_flush_page +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd20b9d3b genl_notify +EXPORT_SYMBOL vmlinux 0xd2105122 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xd21c383f vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xd220cf8a jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0xd221e359 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xd227892e sleep_on +EXPORT_SYMBOL vmlinux 0xd22e988d blk_get_queue +EXPORT_SYMBOL vmlinux 0xd231eb48 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xd247998c __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xd24e5ea9 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd25e2ab2 agp_free_page_array +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd2819b5b phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0xd2984118 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xd29f1179 dev_add_offload +EXPORT_SYMBOL vmlinux 0xd2b09ce5 __kmalloc +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2f1b260 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xd31745bf generic_ro_fops +EXPORT_SYMBOL vmlinux 0xd3373362 mdiobus_scan +EXPORT_SYMBOL vmlinux 0xd33904ca dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0xd35e249a _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0xd36257ba memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0xd3660085 dst_alloc +EXPORT_SYMBOL vmlinux 0xd3719d59 paravirt_ticketlocks_enabled +EXPORT_SYMBOL vmlinux 0xd3926f0c dev_remove_pack +EXPORT_SYMBOL vmlinux 0xd3b000c9 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xd3dcab0b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xd3ddd0ca tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xd3e3828d blk_mq_insert_request +EXPORT_SYMBOL vmlinux 0xd3e63d57 from_kgid +EXPORT_SYMBOL vmlinux 0xd40f5c97 blk_delay_queue +EXPORT_SYMBOL vmlinux 0xd41df114 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xd437a8c8 inode_init_once +EXPORT_SYMBOL vmlinux 0xd450ee8a tty_port_init +EXPORT_SYMBOL vmlinux 0xd4541df4 init_task +EXPORT_SYMBOL vmlinux 0xd46418a5 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xd4835ef8 dmi_check_system +EXPORT_SYMBOL vmlinux 0xd489732e add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xd4a76c50 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xd4ab28b5 cdrom_open +EXPORT_SYMBOL vmlinux 0xd4b08e54 wait_for_completion_io +EXPORT_SYMBOL vmlinux 0xd4edeb04 cpu_core_map +EXPORT_SYMBOL vmlinux 0xd50e18ac scsi_remove_device +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd5140268 blk_put_queue +EXPORT_SYMBOL vmlinux 0xd51d4c14 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xd52253b4 d_invalidate +EXPORT_SYMBOL vmlinux 0xd52bf1ce _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xd5344d56 kill_bdev +EXPORT_SYMBOL vmlinux 0xd543e254 dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0xd556d4b9 simple_release_fs +EXPORT_SYMBOL vmlinux 0xd57e7de8 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xd5944914 netlink_ack +EXPORT_SYMBOL vmlinux 0xd5b6991e blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xd5b9f030 xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0xd5eb5d9a tcf_hash_check +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd608a5bc generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xd609716e scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xd611bca3 completion_done +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd62abc39 _raw_read_unlock +EXPORT_SYMBOL vmlinux 0xd62ce0a5 kobject_del +EXPORT_SYMBOL vmlinux 0xd62fdf57 make_kuid +EXPORT_SYMBOL vmlinux 0xd648e564 fb_match_mode +EXPORT_SYMBOL vmlinux 0xd652669f elevator_exit +EXPORT_SYMBOL vmlinux 0xd658d5f4 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xd66d0b90 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xd67a793a udp_proc_register +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6beadee mfd_cell_disable +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd72025c8 block_read_full_page +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd76d5bea xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xd76ff424 lock_may_write +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd7989983 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a3bcf8 ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xd7aaa460 scsi_host_get +EXPORT_SYMBOL vmlinux 0xd7b546e4 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xd7cbddda memcpy_toiovec +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd81a1402 mdiobus_read +EXPORT_SYMBOL vmlinux 0xd81aeea7 sock_wfree +EXPORT_SYMBOL vmlinux 0xd82c0882 thermal_cdev_update +EXPORT_SYMBOL vmlinux 0xd8485e68 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xd8526d08 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xd865c664 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xd86b5e4e cdev_alloc +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd89df1e7 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xd8aa74e5 kill_litter_super +EXPORT_SYMBOL vmlinux 0xd8aabce2 alloc_disk +EXPORT_SYMBOL vmlinux 0xd8c72cf0 ifla_policy +EXPORT_SYMBOL vmlinux 0xd8ded085 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8f8e872 udp_ioctl +EXPORT_SYMBOL vmlinux 0xd9005cf5 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xd9050a91 scm_detach_fds +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd9138017 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd92e16ba csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0xd94322e7 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0xd9439efd fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xd95ca3d5 __get_user_pages +EXPORT_SYMBOL vmlinux 0xd962b32c swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0xd969b2c7 amd_e400_c1e_detected +EXPORT_SYMBOL vmlinux 0xd97a231f bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xd97b089b jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xd9853a10 proc_symlink +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9872abd __register_chrdev +EXPORT_SYMBOL vmlinux 0xd9883721 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xd9a9bb30 getname +EXPORT_SYMBOL vmlinux 0xd9f84ba8 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xda2478d0 param_ops_short +EXPORT_SYMBOL vmlinux 0xda2b2c4b inet_put_port +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda3e43d1 _raw_spin_unlock +EXPORT_SYMBOL vmlinux 0xda4738a4 dump_trace +EXPORT_SYMBOL vmlinux 0xda62b5ce pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda92d7ac netdev_alert +EXPORT_SYMBOL vmlinux 0xda992679 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xdac5b652 from_kprojid_munged +EXPORT_SYMBOL vmlinux 0xdaea3da0 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0xdaea6e0d mfd_clone_cell +EXPORT_SYMBOL vmlinux 0xdb08398f fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xdb08528a console_start +EXPORT_SYMBOL vmlinux 0xdb17e817 dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0xdb230494 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xdb52b1e8 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xdb5cba7c __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xdb5d50ab dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0xdb603c20 check_submounts_and_drop +EXPORT_SYMBOL vmlinux 0xdb662a05 blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb70cabc netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdbb9328c override_creds +EXPORT_SYMBOL vmlinux 0xdbc7dc5a con_copy_unimap +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbcd8c17 phy_find_first +EXPORT_SYMBOL vmlinux 0xdbdd0b40 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xdbec33d7 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xdc02ef70 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc0794dc key_task_permission +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc23fd96 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xdc3c41a8 __crypto_memneq +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc4ee6de inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0xdc57f532 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0xdc75602a dev_mc_flush +EXPORT_SYMBOL vmlinux 0xdc86fbac sock_edemux +EXPORT_SYMBOL vmlinux 0xdc8d1dde _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xdce09835 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xdce53fdb tcp_gso_segment +EXPORT_SYMBOL vmlinux 0xdcf9dd39 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xdd130cc8 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xdd15e257 __module_get +EXPORT_SYMBOL vmlinux 0xdd2f914f pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xdd504b0c starget_for_each_device +EXPORT_SYMBOL vmlinux 0xdd80fe6e dquot_transfer +EXPORT_SYMBOL vmlinux 0xdd9e6032 padata_do_serial +EXPORT_SYMBOL vmlinux 0xdd9fd03f vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0xdda40f6e security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xddb3c74f jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xddc0d5e3 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0xdde5c3f2 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xdde800f6 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xdde83545 intel_gtt_get +EXPORT_SYMBOL vmlinux 0xddffccd2 tty_throttle +EXPORT_SYMBOL vmlinux 0xde046db9 bio_copy_data +EXPORT_SYMBOL vmlinux 0xde10eb10 param_set_invbool +EXPORT_SYMBOL vmlinux 0xde16dc16 tboot +EXPORT_SYMBOL vmlinux 0xde2023e6 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xde3811ec compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0xde511448 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xde6151db tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xde7be324 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0xde813fe2 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde98c647 kobject_put +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdea86f23 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0xdeadf125 da903x_query_status +EXPORT_SYMBOL vmlinux 0xdeaf1916 dev_load +EXPORT_SYMBOL vmlinux 0xdec1498c sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0xdecf5c34 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xded55b96 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0xded68eb6 blk_mq_can_queue +EXPORT_SYMBOL vmlinux 0xdee92ac1 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xdf09be37 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf26a587 register_gifconf +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf3c8a4c simple_lookup +EXPORT_SYMBOL vmlinux 0xdf455e07 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0xdf488c44 km_policy_expired +EXPORT_SYMBOL vmlinux 0xdf48a0eb flex_array_put +EXPORT_SYMBOL vmlinux 0xdf4e8e66 bh_submit_read +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf67f962 __lock_buffer +EXPORT_SYMBOL vmlinux 0xdf78b393 dm_kobject_release +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfa2fe93 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0xdfb7dd6c phy_driver_register +EXPORT_SYMBOL vmlinux 0xdfb9e370 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfc818dd skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xdfe8c85f cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xe002a11c netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0xe010af40 vfs_readlink +EXPORT_SYMBOL vmlinux 0xe0231a53 netdev_state_change +EXPORT_SYMBOL vmlinux 0xe03dc4b7 fget_light +EXPORT_SYMBOL vmlinux 0xe046466c cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe05f7cd6 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe06e4199 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0a61df1 scsi_print_command +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0baa237 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xe0c46b8e tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL vmlinux 0xe0fa864b kern_unmount +EXPORT_SYMBOL vmlinux 0xe109d4eb neigh_parms_release +EXPORT_SYMBOL vmlinux 0xe111fcfa alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe11edd42 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xe1208f87 eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0xe1254528 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xe127243f phy_disconnect +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe1428672 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xe144394e disk_stack_limits +EXPORT_SYMBOL vmlinux 0xe14cf02d udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xe1542b2f put_page +EXPORT_SYMBOL vmlinux 0xe15f42bb _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xe16be37d phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0xe174843e sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe18744c2 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0xe1968e56 tcp_sendpage +EXPORT_SYMBOL vmlinux 0xe1c3e769 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xe1ca62b4 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0xe1e5069e __quota_error +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe20de57b tty_vhangup +EXPORT_SYMBOL vmlinux 0xe21c8544 km_state_notify +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe242f674 pci_disable_obff +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe250937f inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0xe2565cbf fifo_set_limit +EXPORT_SYMBOL vmlinux 0xe262fa63 inode_dio_wait +EXPORT_SYMBOL vmlinux 0xe2741925 devfreq_add_device +EXPORT_SYMBOL vmlinux 0xe27b0dc6 vga_switcheroo_get_client_state +EXPORT_SYMBOL vmlinux 0xe29b04e9 acpi_set_firmware_waking_vector64 +EXPORT_SYMBOL vmlinux 0xe29e1d0e out_of_line_wait_on_atomic_t +EXPORT_SYMBOL vmlinux 0xe2a3da27 inode_reclaim_rsv_space +EXPORT_SYMBOL vmlinux 0xe2a85dea kill_fasync +EXPORT_SYMBOL vmlinux 0xe2cfb038 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xe2d45350 vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0xe2d45a9a inet_getname +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2f6f403 noop_llseek +EXPORT_SYMBOL vmlinux 0xe303da0a ps2_end_command +EXPORT_SYMBOL vmlinux 0xe319eb24 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xe320b7af phy_get_eee_err +EXPORT_SYMBOL vmlinux 0xe326d8b1 do_SAK +EXPORT_SYMBOL vmlinux 0xe3719d0a devm_iounmap +EXPORT_SYMBOL vmlinux 0xe3741812 intel_gmch_probe +EXPORT_SYMBOL vmlinux 0xe3a53f4c sort +EXPORT_SYMBOL vmlinux 0xe3a932e9 ppp_register_channel +EXPORT_SYMBOL vmlinux 0xe3b7f1fa get_io_context +EXPORT_SYMBOL vmlinux 0xe3b89c23 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3da532c rtnl_create_link +EXPORT_SYMBOL vmlinux 0xe3e12008 __first_cpu +EXPORT_SYMBOL vmlinux 0xe452a504 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4eddbe6 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL vmlinux 0xe50de857 agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe51b87f4 dev_remove_offload +EXPORT_SYMBOL vmlinux 0xe5208918 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe5403b52 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xe563e79c pci_get_class +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe58715a7 security_d_instantiate +EXPORT_SYMBOL vmlinux 0xe5bec95c i8253_lock +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5d2bc7a scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe6216a2d dev_activate +EXPORT_SYMBOL vmlinux 0xe63031e1 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xe64d98fe rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xe6631347 uart_register_driver +EXPORT_SYMBOL vmlinux 0xe663aab0 tty_hangup +EXPORT_SYMBOL vmlinux 0xe666438f neigh_seq_next +EXPORT_SYMBOL vmlinux 0xe68bf29d jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xe68caa04 bdi_init +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe69a9df4 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL vmlinux 0xe6b08b66 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xe6bfd5e9 phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0xe6e3b875 down_write +EXPORT_SYMBOL vmlinux 0xe6e580f3 lookup_bdev +EXPORT_SYMBOL vmlinux 0xe6e89088 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xe6fb675c node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe7399f14 fb_set_var +EXPORT_SYMBOL vmlinux 0xe754c7e2 complete_request_key +EXPORT_SYMBOL vmlinux 0xe7722171 flex_array_free +EXPORT_SYMBOL vmlinux 0xe782fdc2 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7b21994 compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xe7b8f33d mmc_gpio_request_ro +EXPORT_SYMBOL vmlinux 0xe7c3f28e filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xe7caab5e key_alloc +EXPORT_SYMBOL vmlinux 0xe7d1e9be cpumask_set_cpu_local_first +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7d9478f tcp_prot +EXPORT_SYMBOL vmlinux 0xe7dab90e generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xe7e15a3f ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xe7e781d0 inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0xe80790d5 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xe80e54e2 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xe815e5c4 pci_map_biosrom +EXPORT_SYMBOL vmlinux 0xe82c56d9 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xe85b5e75 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe88a3737 mdio_bus_type +EXPORT_SYMBOL vmlinux 0xe8b0d31b get_write_access +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8bea3bc qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xe8c471ec tcf_hash_search +EXPORT_SYMBOL vmlinux 0xe8cfd85d inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xe8dad1a0 register_cdrom +EXPORT_SYMBOL vmlinux 0xe8dbafef __next_cpu +EXPORT_SYMBOL vmlinux 0xe8f00ad1 seq_escape +EXPORT_SYMBOL vmlinux 0xe8fff688 fbcon_rotate_cw +EXPORT_SYMBOL vmlinux 0xe90235b9 loop_register_transfer +EXPORT_SYMBOL vmlinux 0xe9100636 scsi_execute +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe921ed5f pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xe92efdaa sg_miter_next +EXPORT_SYMBOL vmlinux 0xe932a90b x86_hyper +EXPORT_SYMBOL vmlinux 0xe9452f51 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xe94d2040 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xe95381f9 blk_end_request +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe966b82b dev_warn +EXPORT_SYMBOL vmlinux 0xe96ef691 vc_cons +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9b6461d sock_update_classid +EXPORT_SYMBOL vmlinux 0xe9beaccf vlan_vid_del +EXPORT_SYMBOL vmlinux 0xe9c4f523 sock_no_mmap +EXPORT_SYMBOL vmlinux 0xe9cbac08 tty_port_hangup +EXPORT_SYMBOL vmlinux 0xe9dff136 mempool_alloc +EXPORT_SYMBOL vmlinux 0xe9f662d4 bio_reset +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xe9f78ac8 ps2_drain +EXPORT_SYMBOL vmlinux 0xe9fba2b6 dm_unregister_target +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea16dd4c tcp_destroy_cgroup +EXPORT_SYMBOL vmlinux 0xea232254 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xea2746ab vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0xea2eef44 tc_classify +EXPORT_SYMBOL vmlinux 0xea2f3115 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xea400a35 agp_backend_release +EXPORT_SYMBOL vmlinux 0xea714978 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xea7b8a44 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xeaa25255 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xeaa7bba7 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xeaabd870 __page_symlink +EXPORT_SYMBOL vmlinux 0xeab4d638 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0xeac73847 irq_regs +EXPORT_SYMBOL vmlinux 0xeacf20c1 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xeacf9ef3 fb_pan_display +EXPORT_SYMBOL vmlinux 0xeadae54c neigh_update +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeaf74b2f tcp_proto_cgroup +EXPORT_SYMBOL vmlinux 0xeb147ce0 finish_no_open +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb44339a free_pages_exact +EXPORT_SYMBOL vmlinux 0xeb807282 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xeb8acc2d would_dump +EXPORT_SYMBOL vmlinux 0xeb928145 read_dev_sector +EXPORT_SYMBOL vmlinux 0xebabfba4 frontswap_register_ops +EXPORT_SYMBOL vmlinux 0xebc22edd bio_integrity_split +EXPORT_SYMBOL vmlinux 0xebc24427 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebe9523e scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xebe9abb6 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xec0b309c pci_set_master +EXPORT_SYMBOL vmlinux 0xec262089 simple_unlink +EXPORT_SYMBOL vmlinux 0xec39aad9 d_alloc +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec5c7e3b pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0xec5d55fc input_set_abs_params +EXPORT_SYMBOL vmlinux 0xec6be2d3 kernel_getsockname +EXPORT_SYMBOL vmlinux 0xec730387 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0xec884d88 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xeca86aae __getblk +EXPORT_SYMBOL vmlinux 0xecc1e9bb kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0xeccd3e0c acpi_handle_printk +EXPORT_SYMBOL vmlinux 0xecd9c879 pipe_unlock +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xed0342a5 led_set_brightness +EXPORT_SYMBOL vmlinux 0xed128d62 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xed2a36d9 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0xed3568e8 scsi_add_device +EXPORT_SYMBOL vmlinux 0xed48be57 __sb_end_write +EXPORT_SYMBOL vmlinux 0xed55f8e8 lock_sock_fast +EXPORT_SYMBOL vmlinux 0xed597524 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xed6049d5 framebuffer_release +EXPORT_SYMBOL vmlinux 0xed78d719 skb_append +EXPORT_SYMBOL vmlinux 0xed9f9a20 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xedabd2e5 blk_rq_init +EXPORT_SYMBOL vmlinux 0xedb94e3a pcie_get_mps +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xede67677 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xedf33b72 generic_fillattr +EXPORT_SYMBOL vmlinux 0xee0a055c __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xee18fef5 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee2e89e0 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xee3b2c7a dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xee46885d add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xee51155d devfreq_add_governor +EXPORT_SYMBOL vmlinux 0xee5d6fee done_path_create +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder +EXPORT_SYMBOL vmlinux 0xee9e0a52 unlock_rename +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeaaf2be seq_read +EXPORT_SYMBOL vmlinux 0xeeb5bd3b __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xeeec26a7 queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xeeed5d16 follow_pfn +EXPORT_SYMBOL vmlinux 0xeef161aa groups_free +EXPORT_SYMBOL vmlinux 0xef2073cf unregister_quota_format +EXPORT_SYMBOL vmlinux 0xef655f98 jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0xef6ec30d bitmap_end_sync +EXPORT_SYMBOL vmlinux 0xef7561d8 sync_inode +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefb6b186 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xefba93e1 mempool_destroy +EXPORT_SYMBOL vmlinux 0xefdb8d96 dev_mc_init +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefdfb2ce sock_init_data +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefe3d1fc release_firmware +EXPORT_SYMBOL vmlinux 0xeff41a0a follow_down_one +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf00df958 pci_iounmap +EXPORT_SYMBOL vmlinux 0xf00e628b block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xf0187927 __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0xf02fdeb7 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0xf055ea46 unregister_md_personality +EXPORT_SYMBOL vmlinux 0xf05eaed1 arp_xmit +EXPORT_SYMBOL vmlinux 0xf05ffa15 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xf0619801 timekeeping_clocktai +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf067257c register_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0xf0773b83 page_symlink +EXPORT_SYMBOL vmlinux 0xf087137d __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0xf09de776 get_random_int +EXPORT_SYMBOL vmlinux 0xf0a41eb3 build_skb +EXPORT_SYMBOL vmlinux 0xf0de1989 alloc_fddidev +EXPORT_SYMBOL vmlinux 0xf0ed214d skb_clone +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0f632b5 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf116d4b5 copy_in_user +EXPORT_SYMBOL vmlinux 0xf120b86f proc_create_data +EXPORT_SYMBOL vmlinux 0xf13feb57 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0xf147dcb2 hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0xf147ecb1 down_trylock +EXPORT_SYMBOL vmlinux 0xf1875746 dev_notice +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1a73167 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xf1a84aa3 __devm_request_region +EXPORT_SYMBOL vmlinux 0xf1b615ee i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1effaae netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf206b987 read_cache_pages +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf22449ae down_interruptible +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf24229e3 backlight_device_register +EXPORT_SYMBOL vmlinux 0xf2540441 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL vmlinux 0xf26572fc scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xf27fb53f d_make_root +EXPORT_SYMBOL vmlinux 0xf28ed6e2 machine_to_phys_nr +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a0af8f backlight_device_registered +EXPORT_SYMBOL vmlinux 0xf2a2c51e tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xf2b1ac8e __getnstimeofday +EXPORT_SYMBOL vmlinux 0xf2b79812 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xf2d43a0d pci_scan_bus +EXPORT_SYMBOL vmlinux 0xf2d83af4 mmc_add_host +EXPORT_SYMBOL vmlinux 0xf312cb9d ucs2_strsize +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf32055e7 dev_base_lock +EXPORT_SYMBOL vmlinux 0xf3212c65 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0xf3219e18 skb_store_bits +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf3363f00 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf35db716 page_readlink +EXPORT_SYMBOL vmlinux 0xf37260ab _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf3950d7a zerocopy_sg_from_iovec +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf3986b06 acpi_os_map_generic_address +EXPORT_SYMBOL vmlinux 0xf3ad7533 send_sig +EXPORT_SYMBOL vmlinux 0xf3b124e0 clocksource_register +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3d8fc54 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xf3f14d34 icmpv6_send +EXPORT_SYMBOL vmlinux 0xf40ca8ab simple_transaction_get +EXPORT_SYMBOL vmlinux 0xf432dd3d __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4bdbeb9 __frontswap_invalidate_area +EXPORT_SYMBOL vmlinux 0xf4c8bc4e sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xf4d60117 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xf4e26a8a blk_end_request_all +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f41fe9 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xf4f9580b try_module_get +EXPORT_SYMBOL vmlinux 0xf51ad705 proc_set_size +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf51bf88b nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xf5235d2a mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xf525acf5 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xf5283290 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xf536d22e acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf53e5845 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xf545a548 nf_nat_decode_session_hook +EXPORT_SYMBOL vmlinux 0xf54ba96a __starget_for_each_device +EXPORT_SYMBOL vmlinux 0xf5593dce mmc_gpio_free_ro +EXPORT_SYMBOL vmlinux 0xf56d5cd2 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xf582c36f clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xf585cee2 serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0xf5893abf up_read +EXPORT_SYMBOL vmlinux 0xf598be6a rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xf5a6bef7 path_put +EXPORT_SYMBOL vmlinux 0xf5b10e67 acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0xf5ce272b idr_for_each +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf61b152d dev_get_by_name +EXPORT_SYMBOL vmlinux 0xf620dea9 i2c_master_send +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf663f20c vmap +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf68687be __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0xf6adfa75 blkdev_get +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6e810eb sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf700e4e5 dquot_release +EXPORT_SYMBOL vmlinux 0xf71ee818 nf_hook_slow +EXPORT_SYMBOL vmlinux 0xf72092e0 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xf721d592 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0xf7289d14 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0xf73f2be1 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xf75124f0 dquot_file_open +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7adcaf3 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xf7b57fcb thaw_super +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf80de9ff hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf812cff6 memscan +EXPORT_SYMBOL vmlinux 0xf827cb83 free_reserved_area +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82cfd1a proc_dostring +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf837e789 km_new_mapping +EXPORT_SYMBOL vmlinux 0xf859c833 dquot_commit_info +EXPORT_SYMBOL vmlinux 0xf85e150e skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0xf879c024 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xf88dca82 read_cache_page +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf8983de7 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xf8ab9942 may_umount +EXPORT_SYMBOL vmlinux 0xf8b44b0f get_tz_trend +EXPORT_SYMBOL vmlinux 0xf911a640 seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0xf9125750 fb_class +EXPORT_SYMBOL vmlinux 0xf9164180 vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0xf917372b proc_mkdir +EXPORT_SYMBOL vmlinux 0xf9210a28 file_ns_capable +EXPORT_SYMBOL vmlinux 0xf936e912 blk_queue_max_write_same_sectors +EXPORT_SYMBOL vmlinux 0xf9554b72 netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0xf95a880c pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xf961d271 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0xf97afdd5 seq_open_private +EXPORT_SYMBOL vmlinux 0xf998b250 kernel_read +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9c0b663 strlcat +EXPORT_SYMBOL vmlinux 0xf9df23e9 simple_empty +EXPORT_SYMBOL vmlinux 0xf9ec119b skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0xf9efbc9d jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xfa10dc8f pci_pme_active +EXPORT_SYMBOL vmlinux 0xfa15e6d5 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xfa1a048d skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xfa3a22c5 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa62db60 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xfa66f77c finish_wait +EXPORT_SYMBOL vmlinux 0xfa7f3156 wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0xfa831d5a inet_frags_init +EXPORT_SYMBOL vmlinux 0xfa85a602 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0xfa868346 compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xfa959e28 tcf_em_register +EXPORT_SYMBOL vmlinux 0xfa9a3f5e netpoll_print_options +EXPORT_SYMBOL vmlinux 0xfab383b9 rename_lock +EXPORT_SYMBOL vmlinux 0xfac44333 gen_new_estimator +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfacdd858 agp_copy_info +EXPORT_SYMBOL vmlinux 0xfae67b1f cap_mmap_addr +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0ba96a netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0xfb1dfcf3 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xfb237b3d dcb_getapp +EXPORT_SYMBOL vmlinux 0xfb2cbec0 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xfb578fc5 memset +EXPORT_SYMBOL vmlinux 0xfb684dd3 bmap +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb71d7f1 nla_put +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb8f2540 d_splice_alias +EXPORT_SYMBOL vmlinux 0xfb94103e __clzdi2 +EXPORT_SYMBOL vmlinux 0xfba88f65 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbd75254 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc0f3042 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xfc126bfe jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xfc16bb57 devm_gpiod_get_index +EXPORT_SYMBOL vmlinux 0xfc189b4d scsi_register_interface +EXPORT_SYMBOL vmlinux 0xfc1bb9f9 blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc43c9a5 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0xfc447ce2 ab3100_event_register +EXPORT_SYMBOL vmlinux 0xfc66bff8 single_release +EXPORT_SYMBOL vmlinux 0xfc872fd1 get_ibs_caps +EXPORT_SYMBOL vmlinux 0xfc885774 tty_lock +EXPORT_SYMBOL vmlinux 0xfc97abc8 set_user_nice +EXPORT_SYMBOL vmlinux 0xfca0c2ac processors +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcac0d40 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0xfcaf53dc __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL vmlinux 0xfcb926cd kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xfcbe441f filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xfcbe6967 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcc54f91 lg_local_lock_cpu +EXPORT_SYMBOL vmlinux 0xfcca07cd alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xfccb53a9 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xfcebdf5a sock_i_uid +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf77580 cdrom_check_events +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd0ffae7 inode_needs_sync +EXPORT_SYMBOL vmlinux 0xfd20ab7a input_open_device +EXPORT_SYMBOL vmlinux 0xfd2cdb44 serio_reconnect +EXPORT_SYMBOL vmlinux 0xfd44bd74 drop_nlink +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd6be675 ipv4_specific +EXPORT_SYMBOL vmlinux 0xfd85e6e6 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xfd94b036 register_netdev +EXPORT_SYMBOL vmlinux 0xfd95780b mfd_cell_enable +EXPORT_SYMBOL vmlinux 0xfd99623a ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdbc6770 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xfdbe0288 pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0xfdee7d42 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xfdfb792f amd_iommu_pc_supported +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe29c0ba __cleancache_get_page +EXPORT_SYMBOL vmlinux 0xfe37419f get_task_io_context +EXPORT_SYMBOL vmlinux 0xfe391306 __scm_destroy +EXPORT_SYMBOL vmlinux 0xfe542edc mmc_request_done +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe78aab0 set_disk_ro +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe9af02b agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0xfe9ebbbb acpi_osi_is_win8 +EXPORT_SYMBOL vmlinux 0xfea4637d blk_init_tags +EXPORT_SYMBOL vmlinux 0xfebaf8d8 inet_recvmsg +EXPORT_SYMBOL vmlinux 0xfed542dd blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfeebc7c4 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff06ea47 max8925_reg_read +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff3edc11 mpage_writepages +EXPORT_SYMBOL vmlinux 0xff41db24 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff784133 seq_putc +EXPORT_SYMBOL vmlinux 0xff7c0e25 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xff92b207 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0xff93286a ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffb1f4e0 simple_dir_operations +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0x7060bf0a crypto_aes_encrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0xe409b491 crypto_aes_decrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x13a65ecf camellia_ecb_enc_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x17bf48dc camellia_xts_dec_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x1a08ded1 camellia_xts_enc +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x47129015 camellia_xts_enc_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x7d54edc2 camellia_cbc_dec_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x7e87ef55 camellia_ecb_dec_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x8f185793 camellia_xts_dec +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x9e8086dc camellia_ctr_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x16061d06 __camellia_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x1636abdf __camellia_enc_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x1da0e256 camellia_crypt_ctr +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x31bbe42b camellia_crypt_ctr_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x50dc55b6 __camellia_enc_blk_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x930f687f camellia_decrypt_cbc_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x9c40db38 lrw_camellia_exit_tfm +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0xa41a5ad3 camellia_dec_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0xa679686b lrw_camellia_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0xc25c6044 xts_camellia_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0xf4521fda camellia_dec_blk_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x00a81c14 glue_ecb_crypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x4a580255 glue_ctr_crypt_final_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x54fa4294 glue_cbc_encrypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x8f02ac4d glue_xts_crypt_128bit_one +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0xc2ded35c glue_cbc_decrypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0xd6283262 glue_ctr_crypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0xf8e4d0f0 glue_xts_crypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x016a957f serpent_xts_enc_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x0c5a8af6 serpent_xts_dec_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x0ff3c26d serpent_xts_dec +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x606a8162 serpent_cbc_dec_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x79ff0b7a serpent_ecb_dec_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x9ae34b2f serpent_xts_enc +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x9e018632 __serpent_crypt_ctr +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x9f99663c serpent_ctr_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0xa126629f xts_serpent_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0xa84ea33d serpent_ecb_enc_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0xd6afb2c3 lrw_serpent_exit_tfm +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0xef868d86 lrw_serpent_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64 0x19dc7881 twofish_dec_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64 0x5e752773 twofish_enc_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x1fd77fb1 twofish_dec_blk_3way +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x61694b97 twofish_dec_blk_cbc_3way +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x8d75ab44 twofish_enc_blk_ctr +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x8e856922 twofish_enc_blk_ctr_3way +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x95ecadb6 lrw_twofish_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0xd6abbe83 lrw_twofish_exit_tfm +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0xdb4c42af xts_twofish_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0xf2e80e9c __twofish_enc_blk_3way +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x014ac163 kvm_valid_efer +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x01c5e1e6 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x024a9b97 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x036d74d8 kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x09ed641b kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0a9893c6 kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0a9dc557 kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0abd634a kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0bf09181 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x10a3e6f5 kvm_mmu_flush_tlb +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x17fc134c kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x203a0cc5 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x21952d18 gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x21ff4c87 kvm_read_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x232e0210 kvm_write_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2464728b kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2483f7c0 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27837fad kvm_arch_has_noncoherent_dma +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x28aecdf5 kvm_inject_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2d5774b7 kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x31231a41 kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3511476d kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x351274b5 kvm_set_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x35e7bc77 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x36761362 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3b5dd35e __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x42734782 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x45562e1b handle_mmio_page_fault_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x467bbf9f kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x499a6e98 kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4c51f664 __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x50e7558b kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x511ea3bd kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x518a113f kvm_irq_has_notifier +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5267615b kvm_rdpmc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53a2a3f7 __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x58667110 kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5eea9597 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5fd5302b kvm_arch_register_noncoherent_dma +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x618f98ff kvm_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x633aae00 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x64020e10 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x64525bbe kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x64a34f49 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x65453676 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6b5f0cd3 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6bbfbdfa kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7000b57f kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x709cd8cb kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7162ab72 gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x72e61f49 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x76df156b kvm_write_guest_virt_system +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x78464e5c kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7b03d8ab kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7b292d2c kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7bac3f05 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c502ab9 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7f2c1163 __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x831327da kvm_max_guest_tsc_khz +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x850cb690 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8a0e4554 kvm_mmu_sync_roots +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8a1b3e71 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8a26f7b0 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8b6c4c19 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e012694 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9099a21c kvm_complete_insn_gp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x93a824d9 kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9445d005 x86_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x96040ee8 mark_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9651ee4b kvm_mmu_unload +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x982ca686 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x995916d1 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99cee2e1 kvm_read_guest_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9d5e165a kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9eddba79 kvm_arch_unregister_noncoherent_dma +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9ee59155 __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa0ec3a0a gfn_to_hva_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa508e36b __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa68ddd19 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaa4529c2 kvm_vcpu_kick +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaa79cab5 __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xac5e4944 kvm_read_guest_page_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xace0abb8 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xacf7f97c gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaebb9a3b kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaf275715 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb0868db5 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb38ed869 kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb7a9a1d7 kvm_apic_update_irr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb8cd9eeb kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba5b6932 kvm_init_shadow_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba6da092 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba9ed435 kvm_mmu_set_mmio_spte_mask +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbabba970 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc6454df kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbeef334a kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc0220967 kvm_set_xcr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc3207099 gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc42df506 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc50d60d2 kvm_flush_remote_tlbs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc619c3c4 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc6b53b32 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc8ac1ec2 kvm_lapic_set_eoi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcef3fec5 __tracepoint_kvm_write_tsc_offset +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcfd9cbbf gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0459e67 kvm_has_tsc_control +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd20598d3 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd38edc88 kvm_apic_write_nodecode +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd3f42f8e kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd47d4799 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd5027fa6 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd69d348b kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdc85050a kvm_apic_set_eoi_accelerated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xddcf4f34 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xde8906d0 kvm_mmu_unprotect_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdeb9e564 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe9b144be kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xea0bf17e kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xec65aa28 kvm_vcpu_block +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xecc67673 kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xececc4ce kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xecfef60d kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf6625165 kvm_get_dirty_log +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf830639f kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfcbfdb77 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfd22a763 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfef53cbc kvm_init_shadow_ept_mmu +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x007b5324 ablk_decrypt +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x0a27cf21 ablk_set_key +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x2974c01d ablk_init_common +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x91229973 __ablk_encrypt +EXPORT_SYMBOL_GPL crypto/ablk_helper 0xb5b416b6 ablk_encrypt +EXPORT_SYMBOL_GPL crypto/ablk_helper 0xc88c120b ablk_init +EXPORT_SYMBOL_GPL crypto/ablk_helper 0xdff21130 ablk_exit +EXPORT_SYMBOL_GPL crypto/af_alg 0x0f4974c3 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x17356ad5 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x289197b2 af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0x62c97a33 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x644ba73c af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x65eef7f4 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x8d70d829 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x9f0a991a af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xb8b25148 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xeb373bac async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x3fa0daab async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xd37e272c async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x63082c26 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x96282887 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x7b340818 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9e4fab4d async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xd94ba984 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xfc2a3f2e async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xc40aef03 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xe90d2153 async_xor_val +EXPORT_SYMBOL_GPL crypto/authenc 0x587ef278 crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0xc7729f92 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x27278ca9 __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x4a2a3ca6 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0xca3db466 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1291971c __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1e2c961f __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x39379bf8 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x8f04034a __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast_common 0x08aa6fb7 cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x0c5fbf8a cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xe39dd4b4 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0xee83a4f3 cast_s4 +EXPORT_SYMBOL_GPL crypto/cryptd 0x0dd90079 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x0f293935 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x1678199b cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x30f57670 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x85c1922a cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xaaea5503 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xabbc52df cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xaf4af6a0 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xdbc1d0f2 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xe2f84622 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/lrw 0x3082195d lrw_crypt +EXPORT_SYMBOL_GPL crypto/lrw 0x3864eb66 lrw_free_table +EXPORT_SYMBOL_GPL crypto/lrw 0xcd074900 lrw_init_table +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x5ddb33e9 __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x77b39cb4 __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x8a1a99ad __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xc33b423f serpent_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x6c3229bb __twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xd11f2666 twofish_setkey +EXPORT_SYMBOL_GPL crypto/xts 0x1615a02c xts_crypt +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x1c8984c7 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x87bd07bd acpi_smbus_register_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xb9a141b0 acpi_smbus_read +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xe1372311 acpi_smbus_write +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x53562ed7 ahci_platform_get_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x5e0be0d1 ahci_platform_init_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x69835d50 ahci_platform_enable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x7aebae68 ahci_platform_resume_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x89e14d76 ahci_platform_suspend_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x9abd45dd ahci_platform_ops +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xb6f79239 ahci_platform_disable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xd104dab6 ahci_platform_suspend +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xd84952ad ahci_platform_enable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xd84d3873 ahci_platform_resume +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xe3a4108a ahci_platform_disable_clks +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0f527b84 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x12326711 ahci_restart_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1a5e78aa ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2f1bb967 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4c8f1041 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4edf9398 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x53d66361 ahci_qc_issue +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x597fde77 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x694f923e ahci_thread_fn +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6c4f38f7 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6e05c4e7 ahci_hw_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x734e70b6 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x751921d5 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x898d1d8e ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8ba854ac ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xba076754 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc81d2912 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcb3cbcfb ahci_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd4879386 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd92f5042 ahci_start_fis_rx +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xdd2e3929 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe1d1c201 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe2ffc301 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe64b5f7b ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea69ade2 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x0cf59ad8 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x055d1d61 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1f9e329e bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x24f9871d bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x25523c8c bcma_core_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x28efe1e8 bcma_find_core +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x3dde356c bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x588bad5c bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x599ccf74 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5e36228b bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6a575be4 bcma_core_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7311aaa6 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7ded5bcb bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x943e6b6b bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa4c578b2 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa7e3e2f8 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa90bd3bd bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xabeb856e bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe496d5ed bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xebd83f5a __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf25e1ad6 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf2bb65fd bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xfa189e7c bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xfad25faf bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x05b0a594 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0b7d0162 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x127c9579 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5acd8aa8 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x736ac911 btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x76b13ffa btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa15cc721 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe68edf3c btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xee42a01b btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xefeefb3f btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/cpufreq/speedstep-lib 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL drivers/cpufreq/speedstep-lib 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL drivers/cpufreq/speedstep-lib 0xd7ab2c0c speedstep_detect_processor +EXPORT_SYMBOL_GPL drivers/dca/dca 0x01a33ab9 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x1c79d7d5 register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x3c15df25 free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x41858f80 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x68771881 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xac34ecec dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0xbc2d4e8d alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xcf9d277d dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0xe209ed69 unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x0aaafd68 dw_dma_shutdown +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x2969b31b dw_dma_suspend +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xa36572e0 dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xe9bab0ce dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xf9d2baf3 dw_dma_resume +EXPORT_SYMBOL_GPL drivers/edac/amd64_edac_mod 0xe90d07a7 amd64_get_dram_hole_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x02e867c7 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0a021d80 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c41839f edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x159c43df edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x16297627 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x28b45f87 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2ac07adf edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2b7ea97a edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3b00862c find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3ce5ba00 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x573f9fea edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x642f293b edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x81b9ceee edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9c5d0c23 edac_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9f6b905d edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc94ec3cf edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xdf3309d1 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe1a4ebe1 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe865fad0 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe9f92b7e edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfb30a23d edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfde8d593 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xffb5f575 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1d34e996 pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x21626132 amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x737912b3 amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb30b7e56 amd_decode_mce +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xf4ade51f fw_card_release +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x93f8fe67 cs5535_gpio_set_irq +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xc0bb404a cs5535_gpio_setup_event +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x47a1e964 bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x5537d866 bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x402a651a __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x5e8021b3 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x91df4989 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x92577808 drm_vm_open_locked +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xe853a693 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x05876c69 i915_gpu_busy +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x08a7896d i915_gpu_raise +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x2b2c59ae i915_release_power_well +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x402468e9 i915_gpu_lower +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x500858b9 i915_read_mch_val +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x96108893 i915_request_power_well +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xb76bf2ac i915_get_cdclk_freq +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xe7237b0b i915_gpu_turbo_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x6adf436b ttm_prime_fd_to_handle +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x7164b806 ttm_dma_page_alloc_debugfs +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x88417bfb ttm_dma_unpopulate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x9d9606e6 ttm_dma_populate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xce36343e ttm_prime_handle_to_fd +EXPORT_SYMBOL_GPL drivers/hid/hid 0x01334087 hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0962539d __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x099bd736 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0d6226d6 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0dc649d3 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x17edd62c hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4906a967 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x491d773e hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4b83bec3 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x504be405 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x55286a4d hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x56d56b5c hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5a649cfe hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5bfeff7f hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x79c93adc hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x879d0b7d hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x890298f5 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8a345e0b hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8ce346a2 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x923a59d1 hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9512b472 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x959f4672 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x96993a92 hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa76dfca0 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa8c69d3d hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa9ca8a3c hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb0b89c23 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb1831e56 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb326a45e hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb436db66 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb6a9455e hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc7c35d4f hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd7808648 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf59efd40 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfff03ee4 hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xe65708bf roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x16107376 roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x3667808c roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x4086b76a roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x82877fcf roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xd39351a0 roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xe5a2f2fc roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x1d3873c9 sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x27ec6e64 sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x2e0958eb sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x6a01d483 sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x87893bc2 sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xbe0628c2 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xd3d2ac4b sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xe40dd8a6 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xb5af63bb hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x2331cb6c hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x31015f4c hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x3e719c2a hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x5745bf5f hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x60a23978 hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x6e9b3f15 hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7809383c hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7b0c076a hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x8093e7a5 hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xa35d25dd hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xb005378d hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xc33b3712 hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xd9217fc6 hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x0406105d vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x05ea7e97 vmbus_open +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x358fafa5 vmbus_prep_negotiate_resp +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x46a417ca vmbus_proto_version +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x8d3d1110 vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x9ca7fe2e __vmbus_driver_register +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x9cce7d39 vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xa44c92fe vmbus_set_sc_create_callback +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xb5e8411d vmbus_are_subchannels_present +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xb8aa1d96 vmbus_driver_unregister +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xd18302b4 vmbus_get_outgoing_channel +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xd390a858 vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xdd96907b vmbus_sendpacket_multipagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xf41d12c5 vmbus_close +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xf45dd651 hyperv_mmio +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0xb4365d22 adt7x10_remove +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0xcea5a8d9 adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0xe33f3b55 adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x05f1a0fb pmbus_read_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x07ec09ee pmbus_check_byte_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x0e0de792 pmbus_do_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x127d93b3 pmbus_write_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x17ff7a87 pmbus_read_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x181aa2f7 pmbus_get_driver_info +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x433de636 pmbus_write_byte +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x57ccef4f pmbus_set_page +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x8aa3f1cd pmbus_check_word_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xabab8d9a pmbus_do_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xb3c0e6e4 pmbus_clear_cache +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xf883f630 pmbus_clear_faults +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x2bc311df i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x6e211f57 i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x8650045f i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x9f332db1 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xa837862b i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xaedfd69e i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xcdf00623 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xd60d0cfc i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xfb5d882e i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0xd79d8691 nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xa2df5f6f i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xe0b5365b i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x76b003b4 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xfa24a70f i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x07150d4d ad_sd_calibrate_all +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x0770e4e3 ad_sd_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x07f4aad8 ad_sd_init +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x0c148d53 ad_sigma_delta_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x48b3a3c7 ad_sd_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x601f1b62 ad_sd_write_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x61e37145 ad_sd_validate_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xb03b8a7d ad_sd_read_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xc29a14da ad_sd_set_comm +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x1c529706 adis_read_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x27463aa2 adis_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x55a507ad adis_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x596c821c adis_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x59e370ae adis_reset +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x5d208ea3 adis_update_scan_mode +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x86a230ba adis_probe_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x9050eb3e adis_check_status +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xbe6eaac2 adis_write_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xc030ef8e adis_initial_startup +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xc7aa7ac5 adis_remove_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xd915fe28 adis_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0697c610 iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x11b261e7 iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x135570bf iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x22b617d6 iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x24a72e00 devm_iio_device_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x250dc0fa iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x267c0508 iio_channel_release_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a1fab3c iio_channel_stop_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2c04810f iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4651e480 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x479ef2dc iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x50fdd69e iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x611fd838 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x665a24b4 iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7631440f devm_iio_trigger_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x78f92108 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7a711aef iio_channel_start_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9d811203 iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xaab3ba8b iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xadc0746c devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc2689d5d iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc51f9b26 iio_update_demux +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc8fedbdc iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd126ee28 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd38f1223 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd8211cc0 iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd9024055 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd959d955 iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd96b40f6 iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe2a1351b iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe6901ba4 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xee5800c9 iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf5b16d63 devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/infiniband/hw/ipath/ib_ipath 0x1514b2b2 ipath_debug +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x863742cb input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x897d8b4d adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x0d4b1d2f cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x591ad5ba cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xb6c8547d cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x1f2534af cyttsp_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x7cb1eb15 cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xa34083d3 cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x425bc494 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x5e52c811 cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x0ba39aaf wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x21bf51d6 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5ad31cd3 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5d53bd4d wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7d5b363c wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8c47a089 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x91f9bdd3 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x94457e3a wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9d30e9bf wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb56530cd wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbc037635 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf066cea7 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x002eeb9f ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x057406b4 ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x23f44c42 ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x2d667ff2 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x346fbe5a ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x57fe47b1 ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xaa2e44b4 ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xc015035b ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xccd56fa9 ipack_bus_register +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x23359aff unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xce1414b2 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x006cafa7 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x116e7c75 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1f9b120b gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x200a7378 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x276487ee gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3ae91a46 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4953e5f8 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4e52258d gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x51baacf8 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6420065e gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x820f35d4 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x848809ef gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8fc3acb1 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa3151853 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xafed1362 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb16a9f43 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc6daff3d gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdc302b69 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/leds/dell-led 0x86fd1ffb dell_app_wmi_led_set +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x0914aacd lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x34a2ccea lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x36e912fa lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x6c2d08b2 lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x72f45c5c lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x7a5a7480 lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xa5be25b4 lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xa8824044 lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xc44d7543 lp55xx_unregister_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xd8a04d4d lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xfb2dac9d lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x749e05f2 ledtrig_flash_ctrl +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x7903e46e ledtrig_torch_ctrl +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0ec17d44 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x26062738 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x40c27b88 __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4c49fc16 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x51a15737 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x616b6217 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6907ac0d __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7be42a1c __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7e532a71 __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8a4afa11 __tracepoint_bcache_alloc_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x914361f4 __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9272fb0f __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x938cc2b2 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa649dd21 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb157059f __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb317649e __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb493772a __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb834c124 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbb1fc0a4 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbc4fcb1e __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc1474d91 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc379085a __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc5aed8ad __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc7eda602 __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce055cbe __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe20fe821 __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe24daf87 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe2ed0930 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xea2303e0 __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xef1156ee __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfc131205 __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x137e2218 dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x1786c72b dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x257c0b67 dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x4bf7678a dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x8e395cca dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xaee19519 dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb6d5c65d dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb70b342a dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xdbab97e4 dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xebd06eaf dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0e02d7dd dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6aba7f5e dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x74dcd98c dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7c381a76 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9310ba06 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9c256008 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa1d2413a dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa448e19f dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xafbda3f3 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xcbb1bae2 dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe6024e59 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xebcc64a4 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xeca7949e dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x2ba9b411 dm_cache_policy_get_version +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x4360db16 dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xa430b250 dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xbc0e90f4 dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xc6c2f697 dm_cache_policy_get_name +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xd0d7e1d8 dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xd89937e3 dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x496d47cd dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xe713b3db dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x01d2f9ac dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4430764e dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x45ab972a dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7777876d dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x805c3681 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x8117f3ca dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x86e0bd79 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa68e1f06 dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbd8c6111 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe4b2e82e dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfad9d53a dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfc62ef4e dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x01445176 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x17c36f29 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1cac81ac dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2025e954 dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f40da68 dm_bm_set_read_write +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f74609d dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x32b5f546 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x38c75c44 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3d8f3a2b dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x42dbdfc3 dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x49b35849 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x55b4bd4d dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5e6aea80 dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x62c1b9ee dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x688d422d dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x68fae9d2 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7ade1071 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7b047bd9 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x827a42f4 dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x832bf228 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x858c8d94 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x89f1e1cc dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x966a8838 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9e798e22 dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9f624559 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa0bbbb49 dm_bitset_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa13861b4 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa87c5b4d dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xaee02382 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xafeda29f dm_bm_write_lock_zero +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbd50ebbb dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca40abd5 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd041d62b dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd29923fb dm_tm_shadow_block +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe44b4b9b dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xed1e1f96 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf375d009 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf475af48 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf5455120 dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/raid1 0xb1937fa3 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid10 0x5240c851 md_raid10_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x73ece985 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x34850062 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x57177875 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x6637bd0d saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x9b2c649a saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xb55a1ed3 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xbe081ecb saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xd6181a8d saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xda999f27 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe5c1f09a saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xef2f0a4c saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x2e7f8cc2 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x406b5af8 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xa4eba740 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xb29bfad6 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xc58f4e08 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xe7868924 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xeb297b2e saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x03743992 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x0437b8cb smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x313b64bc smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x511baea6 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x57aea3ae smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x6c0716ba sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x705b3e42 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x739820df smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x80c23e11 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x99a81ab3 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9c2225ed smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbe9408b4 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbf775321 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xd3311465 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xda86b836 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xdee563a2 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xe263ad5c smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xf77779d1 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xfe25ee07 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0x6e538c8e cx24117_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0x08d24b85 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0x3521ada5 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x028376fc mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x1560b458 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x2e5104d9 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x4c9489c8 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x50f62742 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x53b69af6 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x587c219e mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x5dfa4cb9 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x618600a6 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x634d911f mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x63fddc85 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x68872a77 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x704ddb47 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xc667539d mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xcb7b2622 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xcf2ee72e mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xed52be18 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x22517a26 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x22cf791e saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x8768a262 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xc1c6a18d saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xd49bb140 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x0bc7c31f ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x1a46767c ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x5282bd03 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x71f122eb ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7d1bd23f ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xaafec3a1 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xc49d6443 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x1a45b867 radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xba51ef65 radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0075249c rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0400bdec rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x06ea7fee rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x17f2e754 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2135670c rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x266d1994 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x37c071b0 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4d556040 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x5bdb0486 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x5e99b5f2 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x735e0248 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x81aac2bf rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa838cd07 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xafe56f5e rc_close +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb23e161f ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbeb76c9c rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc510d64d rc_open +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe8d9de91 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf11ddc10 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0xe63f6080 mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x43e5d573 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0x0edf90ea mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0x0bab578d r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0xf3aec852 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0xd340088d tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x519e45b0 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x88d2a101 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x7dd539d2 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x0b0e1718 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x11752796 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x4cf71218 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x8f14b03e tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x84f65394 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x049ad336 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0b7910d5 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x1b7f9a95 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x2234607c is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x249d9186 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x29628287 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x47703b8d cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x6592fdd3 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x73cdccb5 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x8f6d7883 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xac8ab6bb cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xbb163095 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xbcbe23b1 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xc308781e cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xcfb0f5f9 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xd20adeea cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xe955b555 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xef3f94c4 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xf64dc48b cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0xd82e6a52 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x07e87e60 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x21e0adae em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x2949dbb5 em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x2dd6e081 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x342dd4e3 em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x5aaeeb1e em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x63986c43 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x69511546 em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x8423f274 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x84dba81b em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x97cd0077 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xc18a3a9b em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xd84dc138 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xe4161b9a em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xfb33fe7b em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x0ac2f1dd tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x380aeb83 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xccecc036 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xfe6b3906 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x01c483a9 v4l2_get_timestamp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x3944d7e9 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x4170f916 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x4feb604a v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x5362220e v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x7866f0a4 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x7de23b69 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x08982d59 v4l2_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x221d2fbc v4l2_enum_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x36e8756a v4l2_find_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x4103badb v4l2_print_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x53105839 v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6976cfe0 v4l2_valid_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6f344bb9 v4l2_calc_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7eaf8e7a v4l2_detect_gtf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0xb0891da2 v4l2_dv_timings_presets +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x15e96a1d v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x611e0b0c v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xb2f96f8a v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xeeaa01ef v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x17eb0eee v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2d19a4f9 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x3dcf299b v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x472e3639 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x57ba3c0d v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x668c53e6 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x69d8f09a v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x82816733 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8eb54dfb v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x90b2cbea v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9352c423 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa96ef30b v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc4212b31 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc923520e v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe3f31025 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x03309875 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x049b532f videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x0a1a9c7e videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x14f94d02 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x185a5f1c videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x19e48012 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x24ef73be videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x2a50fed7 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4a1b8f96 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x5351b085 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x6919356f videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x79377f51 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x900fa68e videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x94c2a7bb videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa2b75853 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa2bf698d videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa7d92c57 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xb96a58b2 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbdc35be2 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc74bd723 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd52f6327 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe8d34c45 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xed6c6c84 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf661db51 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x5e868bd7 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x8dcba0d8 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xb9019e56 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x24e717b8 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x2f6b792c videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x34c7bd39 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x85c0b5ab videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x9b55c0ed videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xc5af8531 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xe8b3716f videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xf4ef767b videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xf8fe05b7 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x5b0e3052 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x66d4976e videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x6a567f62 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x08c030e0 vb2_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1ff3b3d4 vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x29ca20f5 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2e4afa47 vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x3c094c82 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x581159ee vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5dd556ba vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x71398b52 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x72a0be7c vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7357bcb6 vb2_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7518b0c4 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8d56ebd7 vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x91fe9d40 vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x933e1de4 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x947be335 vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x99fe69d0 vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x9bb018c0 vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x9df6d0d3 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa865c461 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb0d2ca32 vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb2d3c728 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xbde63f93 vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xc676c20c vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xc86c5b59 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xca271115 vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xcb6f7559 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd08c6ebf vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd135d6d5 vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xdc39e46e vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xdcb3b141 vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xeb6f8be1 vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xefd70840 vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xfc269afa vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xfc5a8fd6 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x7e0e3088 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x7fc70d5f vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-sg 0xd22e8da4 vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x525e0cb8 vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x9eb17a7b vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xaea1df53 vb2_get_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xd634c341 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-vmalloc 0xa8b43341 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x012d95ed v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x05606e47 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0f42f138 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1706b246 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x21c356da v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x23f51e7e v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x37da2170 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x41225243 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4185c42a v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4b10f6ef v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x693cf9fb v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7a3aa53f v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7e4e4943 v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x86c7d16a v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8b368934 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8c7fd241 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9d692e84 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa8d7d9e5 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xcae3c535 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd47ceea3 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd4cea8d7 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd9f48dd7 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xebaa4dcd v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xfab2906a v4l2_device_register +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x068a8edd i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x1ce6ae41 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x2376ce3b i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x2e135fa9 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x774d2cb6 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xd86bd2f8 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xeb9acb0d i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xed341199 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x398c86c1 pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x652bacb6 pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x70beef9f pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x317ff770 kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x5644e585 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x68cdceff kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x6fb230f9 kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xa443c577 kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xa6844b67 kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xbcd51bf7 kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xbd3c65d9 kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x96c2a848 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x97aa0b81 lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xeed6ff1e lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x056847bd lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x1480b085 lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x3b7c318b lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x3f9933cb lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x53d715a9 lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xa8061609 lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xab209226 lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x3591af9f mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x4708c07d mc13xxx_common_cleanup +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x53c83a98 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xa64bafe6 mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xe6f1e4c6 mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xf4fe11ae mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4134b3da pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4d31d38f pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x504ed702 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x68d010a4 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x937e0f78 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x99696b93 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc4cc3274 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc6556544 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcc3a1f9d pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xedf5ef1b pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf859ab77 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x93a14682 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x997c245f pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x39abe559 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x42e8a2b5 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x903cf462 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xd41d23b2 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xe18084cb pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x01a33234 retu_write +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x4fca3918 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x009a1731 rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x020c280c rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x3069fbe2 rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x3f2273d2 rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x3f5c95b1 rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x4425cc0f rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x47e94577 rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x66c87261 rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x6708480d rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x74fbbf4c rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x7a7fcf8e rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x9f0dc65f rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xb2c7ab58 rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xb5779105 rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xb60751d6 rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xd2da34dc rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xd33a9da4 rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xd79b1a84 rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xeb671cb5 rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xf0526ba9 rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xff30b730 rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x04475fe2 si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x09e38814 si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0a3c24f2 si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0e82d521 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x103296a9 si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x11155d5f si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1d15e7a5 si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1f43cd57 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2358dae6 si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x37bf1ef1 si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3800a1bd si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x384c604e si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3f2daee3 si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4e060c7d si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x51c74126 si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x56889c9e si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x575bab30 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x61a5fe2b si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6756f631 si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x81e7c37c si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x89b76282 si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8dc7b61d si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x91494256 si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x941f6aba si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xad2cd3ff si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xae1ebaf0 si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb0ed8fe1 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xbc4b1e73 si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc167de38 si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc83f7cca si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe19439dc si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xeea761e3 si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xfbfc9c5f si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xfe0802fd si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x23dc6755 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x3d3a9c3b sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x73db83ee sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa2c53459 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xc065c19a sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x0e09cd8d tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x68e93d27 tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x777115f6 tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x94ea1232 tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x43aebd13 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x6660e0e7 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xa4c38a5a cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xb03e5514 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xcd44538e cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x27cb133b eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63 eeprom_93cx6_wren +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x822222db eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x98bb5a22 eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x1dbc1437 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x1f1da0b6 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x4d779e7c enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x79fd7f7f enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x92ebcff4 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xbcffcc0a enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xe92ba191 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x03ae6ef0 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x0546d865 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x468cca55 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x73e60c49 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x8bc0e6a1 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xa25703f5 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xa8ab1e51 lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xf8bbbfaa lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x38514e8c mei_restart +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x3d43d3d5 __mei_cl_driver_register +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x40cdb0ec mei_irq_read_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x42ffafaa mei_register +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x5646f8d7 mei_cancel_work +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x6418d63e mei_cl_recv +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x65582a74 mei_start +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x6785b363 mei_cl_send +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x7dd1d08d mei_reset +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x7fac5255 mei_cl_add_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x8079b400 mei_irq_compl_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x82d2f59a mei_cl_remove_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x890ce945 mei_stop +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x95d7724c mei_deregister +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xb2aff1e6 mei_device_init +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xb6b4c4d2 mei_cl_register_event_cb +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xbc5608da mei_irq_write_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xbe9bdf14 mei_cl_driver_unregister +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xc4e068e4 mei_cl_enable_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xd0a15931 mei_cl_get_drvdata +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xd9ca83e1 mei_cl_disable_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xf1f5e693 mei_cl_set_drvdata +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x5b6b1144 st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x817515db st_unregister +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x0f6680ea vmci_qpair_produce_buf_ready +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x1152e318 vmci_qpair_get_produce_indexes +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x13aa5a5d vmci_datagram_create_handle +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x1872c7af vmci_qpair_produce_free_space +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x1a195863 vmci_context_get_priv_flags +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x31f6ad8f vmci_qpair_peekv +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x3ef56cd5 vmci_qpair_alloc +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x4b630dac vmci_get_context_id +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x4ba5c46b vmci_qpair_peek +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x50a255c9 vmci_doorbell_create +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x53c20507 vmci_qpair_enquev +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x612df9ae vmci_qpair_detach +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x677c36d0 vmci_is_context_owner +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x69ef87ff vmci_datagram_destroy_handle +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x6cc1a5f7 vmci_datagram_create_handle_priv +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x722d488a vmci_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x7d540b50 vmci_qpair_consume_free_space +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x81d61eef vmci_qpair_dequeue +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x9624c58c vmci_datagram_send +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x9973b9b2 vmci_qpair_consume_buf_ready +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x9d16164a vmci_send_datagram +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xccbb53d1 vmci_doorbell_notify +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xcf5ed7ef vmci_event_subscribe +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xcff91c6e vmci_qpair_dequev +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xdac94780 vmci_qpair_get_consume_indexes +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xe67343c1 vmci_qpair_enqueue +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xe7e7c107 vmci_doorbell_destroy +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x032a3713 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x066138f7 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1fd094f4 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x39a6f5a2 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x4e5d8c16 sdhci_send_command +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x54a1dbcb sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x857ca584 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x880af497 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc6ade959 sdhci_disable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe09046e4 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe6e7a4e2 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x18e3a921 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x313b7b0a sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x3ccf5bf7 sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x4a3bf609 sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x50286e28 sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x5e885f76 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x77e25113 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x17af1e50 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xd5981e2e cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xeab13bc6 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x08c66f61 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x769424b1 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x856deb37 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x64e2cfb5 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x07a0413e cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x107ab031 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x33d62ee2 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x001e55c0 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0418e12a deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x15cffb6d mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x26c6842c mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x361884a0 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3e1c62a1 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3ff184f5 mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x46c4b234 mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x497e2228 mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x49c5d4af register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4faa52f4 mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x58afe41d mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5a17c390 mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x61f04266 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6e884066 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x764ec4ff register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7bdba034 mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8bf22879 mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9143db37 mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x92130af9 mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x94989d15 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa0152a6d mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa21b5f44 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa69b9375 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xadf94b24 mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb61e2304 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc1eaa349 mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc2287943 mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd10c67f8 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd245c81d __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd2efa6c7 mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd4b0ddb3 mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd4e37d4f mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdf740bee mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe3236445 mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe47e926b mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf316e165 mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf5e6a5f8 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf9362664 mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfd6f95c3 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfde373fc mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x01465d8e register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x193c21a4 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xab4879df add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xad55b797 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xf9a78936 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x3e6ad3a4 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xc9b43fc9 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x66a5f89f sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x3a909163 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xde8ba060 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x18c59a43 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x29ac53c8 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3641d4cd ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x67e8c6d2 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x76a2918c ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9415bb88 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9996b590 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9d88857b ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9fb725d0 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xaa187445 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xad611ce3 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd4868163 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfb739990 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x55ec9b1a c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x672e5353 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x7649be96 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xc604966e alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xe8c9268f c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xe9afa919 register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x097cbe31 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x10979b6f alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x222c295a can_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x24cfd05e can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2a3e8502 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4ecdce0e devm_can_led_init +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x71623452 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb346573b can_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xcfc51e0f free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd92f0ff1 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xdc9e0622 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xddc0f130 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe1a066ab register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe563cb46 safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe8b65a55 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xede3aaad unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf9bb0f1b can_led_event +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x75d533ea alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x824d320e free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xdbbe1848 register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xe4ababd5 unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x2a4fff6f alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x52b29327 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xb9adc2f5 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xc435ba53 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x05d2b4bc macb_get_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x183268cd macb_ethtool_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x18fec9b3 macb_mii_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x82b1ea44 macb_ioctl +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x9ad4c549 macb_set_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xd5e624da macb_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xeea35d50 macb_get_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0447054a mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x047cfa77 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0748601c mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0dcbcb8c __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f54ded9 mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x102cf0e7 mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x10ae36f7 mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x117b86f7 mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x11d57acb mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x14cb782e mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x155e8e7d mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1577d846 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x169eed18 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x16d03f65 mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x19b4fb1b mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1ba47b0e mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1be99fea mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1e2772e2 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x20e880ed mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x24937e76 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x26df0488 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2be3b7e7 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2e878524 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ef48776 __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ffa7aa3 mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x33f69a78 mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x348d8b3b mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3c44c1a1 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x40dd9aee mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4209443b mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x421eff7f mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x425a629e mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x44188bc6 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4689727a mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4867988a mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x496d9659 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4c4655d7 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4d76d309 mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4ddfbf1e mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4fb971ca mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5594358a mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x58704362 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f44e702 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x611c589e mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6409bf7d mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x64f2741a mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6537a5a9 mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6c159b2b mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6c92a6ce mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6ed55791 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7deb8f3c mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7e67fbc1 mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x832d2d0a mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x87339e23 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8878d977 mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x88875fd6 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8cf52ee2 mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e6f275d mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8ee44d5c mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8fc0b49b mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92ef7356 __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x95d36fff mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x96bb33e1 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9fdb4f3e mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa02b1cda mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa3ef0c40 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa93f4be7 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa9a5c124 mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xac0074eb mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb00a542b mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb1783f40 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb2177c72 mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb296c859 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb2a0f7ab mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4a41d5f mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb6a9291f mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb7ef36d0 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb928a529 mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb9d326a8 mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbc387f75 mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd00781f mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd3313dc mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbe6d02dc mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbee0e99c mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc8df8b10 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc94f58f3 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc98371e9 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xca30ac24 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcd03536e mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd1eb4960 mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd38b1f5d mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd4f4b8d7 mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdc4f30f5 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe047f697 mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe198eb15 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2a14815 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe49bea17 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6d58e2e mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf06e2dd8 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf1e0b5ca mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf8382d1e mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfac9bfec mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00a48002 mlx5_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1b99a390 mlx5_core_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x261779ec mlx5_core_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e04ac56 mlx5_core_eq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37a94240 mlx5_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x49fd80c8 mlx5_core_xrcd_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x589f7b50 mlx5_core_create_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6e0155c1 mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa7f7b5fb mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb70e05e3 mlx5_destroy_unmap_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbbc6b77b mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd1b20b3e mlx5_core_mad_ifc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6c4ef56 mlx5_fill_page_array +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xda2f11cf mlx5_core_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdbf7aeb9 mlx5_core_destroy_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe1be34a9 mlx5_create_map_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf866ecea mlx5_buf_free +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x24eb2539 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x316960e5 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xbd07ce05 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc0df4883 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xe0cade5e macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x15581099 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x12f489a0 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x190e4d13 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x5a49ad36 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xa344e375 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x15585c3b cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x1e2a00bb cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x2179dc76 cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x32776dce cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x90b256b5 cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xcaa41461 cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xe351d587 cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xed2ceddf cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x3cc4b91d rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x689abe00 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x7113980e rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x76313f50 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xec72aeb7 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf45a7e34 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x05e12ec7 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0ec9a897 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0fea5ffc usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x184492f1 usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x22c0dfae usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x298c43fc usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2f5bb9b7 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3778cee8 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3c9d6827 usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5158c73a usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x54cacc2d usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x690d1c80 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6f7b180d usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x724bcc5a usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x76d31c09 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x79331c38 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7eb67bc7 usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x846c78f8 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9cdd66ed usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa3684780 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaa86b7d0 usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb28306be usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb49dc209 usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb6b00c80 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbacbadf7 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbd3eb00f usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbe669849 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcec4f756 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd5b637ef usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xde5197ed usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf57eb940 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xff367b44 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x16800140 vxlan_xmit_skb +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x6c9f87a6 vxlan_get_rx_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xadcbc814 vxlan_src_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xd68ce4b1 vxlan_sock_release +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xf4d4d91f vxlan_sock_add +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x046be585 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0692c37f i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x164977d5 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2629adb6 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x419b3d2b i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x54f96f78 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x73269903 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x796180e8 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7ddfd33d i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7e9914f6 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8535e33f i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8e94262a i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc154aedb i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd2e40372 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf5e67138 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf90e3145 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x25cf43e4 cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x5fff342a cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x83d8387c cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xbab119be cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x66fa6fd4 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x07aecb38 il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x105dc7af il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x518d32af il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xd7a9d58b il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xf42b7397 _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x06879031 iwl_opmode_register +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x0d4f8e98 iwl_clear_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x17e6e3ae iwl_read_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x1d39ac78 __iwl_crit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x23b31849 iwl_notification_wait_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x26a89e76 iwl_write_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x27a1a8e9 iwl_poll_direct_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x297815ea __iwl_err +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x34333432 iwl_set_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x35033c81 iwl_phy_db_free +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x49b87cdd iwl_parse_nvm_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5c52e109 iwl_opmode_deregister +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5d0a212e iwlwifi_mod_params +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x64cb890d iwl_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x6715334b iwl_init_notification_wait +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x69ddda41 __iwl_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x6e48864a iwl_read_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x776221bf iwl_send_phy_db_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x78efc8c5 iwl_poll_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8c5d5ab3 iwl_phy_db_set_section +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x95795c57 iwl_abort_notification_waits +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x9751ac67 iwl_phy_db_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x9e8f4c00 iwl_set_bits_mask_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xb79aa0da iwl_write_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xb9647558 __iwl_warn +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xcf341945 iwl_notification_wait_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xd1db77fe iwl_wait_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xdc606b0d iwl_nvm_check_version +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xdccffeb0 iwl_parse_eeprom_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xdd3e32a4 iwl_remove_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xeb30e1e1 __iwl_info +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x12bcd175 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1ded0362 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5dac0579 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6429f946 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x80799060 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8665b1e7 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa1bbf082 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xad3d12a0 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb016445d lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb0c47661 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbe3cd05c lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xce2a6477 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe1f0fe2d lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe343fe65 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf41edafb lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xfa422ee4 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x10eef481 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x5738b732 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9ba702b6 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa592bd26 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xaad6e96e lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd00546e6 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xddbfaee8 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf8b374f5 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x8197ca5f if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xcddc49cd if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x163b716f mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x16a992fc mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x2c82556c mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x35ebeffc mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x38a6302d mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x65f9fb01 mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x7c1df3fa mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x8153ba91 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x83b51832 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x878240ec mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xa6fa093e mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xc5751171 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xc5d43c6a mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd09d31db mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x22a2eb10 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x42564271 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4b584f42 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x5bdeb7e2 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x751b472c p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7ca9b411 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa357d924 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xd8d0008a p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe59465da p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0002a914 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x032b5b2b rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x102c9ef7 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x152e2153 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x240bf54b rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x25d571ce rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x29d8c903 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3d31ab4d rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x464bfadc rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x509e0ec0 rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x50de40de rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5195663e rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5483e41f rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5f45c3ab rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x60129d8c rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x60f71839 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x64f872cb rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x652e520c rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x656710a7 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x668d0a87 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x671a02e3 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x671f0c4b rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6d511009 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x718c388d rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8b58b98b rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9228e637 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9341fbad rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x969b8f7b rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9f02d7f4 rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa0b3fe3a rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbc8fb2c9 rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc154c9a6 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc4c6c096 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc9fd10b5 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe67c4911 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe8349107 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe90a4bd4 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xff7f4b41 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x037d922c rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x0d9cdc2d rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x0fad1430 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x123c3b9c rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x12c830f6 rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x2505789d rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x344a1511 rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x3b38191e rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x3c152ecf rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x47fee34f rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x4c4e0aa7 rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x74c7b6f8 rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x7d0baaee rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x8d703274 rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x92c0bcd1 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x965db082 rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc6a1455e rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xe28f94c7 rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0091a9c5 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x10243a77 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1458339c rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1ec58bce rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x219a852f rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2236a519 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x38c39957 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3d828f3f rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x46663754 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4b517893 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4c49fd0a rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4dda4c68 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4e72b880 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4e90fb66 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5fb9230a rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6037aefd rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x611dfa9b rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x63b8b9da rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x63c12491 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x649c442f rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x65bd212e rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6c6f7009 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6c8efbf5 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7058ae5a rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x79448822 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x84c57bda rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x921ac3eb rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x94a1e4ee rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x961a79bb rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9b33d528 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa05d3de4 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa2e222a8 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa5da7121 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaa014c49 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xafdcd00a rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaff6213f rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb6ac99bd rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc9ecc586 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd6ee62bf rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdade24e5 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe32783c2 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe9cca033 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xee5be27d rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf0529c9e rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf549357f rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf862506a rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x0fc49658 rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x43b3aab6 rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x48e8fbd0 rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x7fddafcd rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x878302b7 rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x79dade39 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8d327122 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x9ff90b3d rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc149d543 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x236523e1 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x38d4c182 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3dce6199 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4a56865d rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4eb3467c rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x523b87d4 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6345149d rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6d502c2c rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xab449680 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xacb28267 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xad10fa8c rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xad406baf rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc27ac67b rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc3f97155 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdda96135 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe07b0ac1 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x041d349b dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x40a48410 dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb58f99f2 dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe74fd76e rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x027d7325 rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x0fca2cc6 rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x1a4c7290 rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x22e56333 rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x25707a47 rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x2be64c3f rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x32c00ae6 rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x4292797a rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x43b233e0 rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x57857a11 rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x5b642125 rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x5e0e6ce8 rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6037e6f8 rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6fee3a6c rtl8723_phy_set_sw_chnl_cmdarray +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x7550368a rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x80d412c7 rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x8be4bbde rtl8723_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x9a4e4079 rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xab9be8ca rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xad9b41b5 rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xaf4d6d94 rtl8723_phy_calculate_bit_shift +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xb0693748 rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xb0d39b52 rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xb4e25140 rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xc2f501c2 rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xce115d37 rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd1b38bd2 rtl8723_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xf747dc48 rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xfc42eacd rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x07328755 rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x241dedc1 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x2ec7e423 read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x310e5d22 rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x356464b6 rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x3861d33e rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x388883d3 rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x3f35bc4a rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x5ad8defc rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x6b4de810 rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x74b4c967 rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x8fb0c2e6 rtl_dbgp_flag_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xb302b7ff rtl_attribute_group +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xc6ab0e86 rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xc96dde18 rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xd2b1f48a rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xdd3fd68d rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xefe01c98 rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf49080f7 rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xfb0c23ea rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x317c0c5e wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x4de2b9c6 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xf36159b4 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00337883 wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x011e5db6 wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x02741def wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0534b6b3 wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x09b8c1a2 wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0d87754f wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x15d3ba9e wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x22eb7840 wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2554cf2f wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x25a4bf6e wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x51bfc1fb wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x539d80c9 wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5b0a9357 wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x78f98a45 wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7c61798e wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7d3e384a wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x893ddf7e wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8f54d1de wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x92f0a4a2 wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x931c96f7 wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x955ed81b wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x961b5727 wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa80b0955 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xad20c4fe wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xae703ad1 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xae7d6f98 wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb07a9803 wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb333c499 wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb3dda437 wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xba33e604 wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xba856091 wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc1403a36 wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xcec0470a wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd39bb505 wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd94e9a79 wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xeb8b0235 wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xed68ad89 wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf28c19b8 wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf37193b5 wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf41aa192 wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfa6e7999 wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xff212836 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x3b577068 nfc_mei_phy_disable +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x8b4e7b3b nfc_mei_event_cb +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0xe82e19a5 nfc_mei_phy_enable +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0xf2b070a7 nfc_mei_phy_free +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0xfb65dc81 mei_phy_ops +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0xfe257319 nfc_mei_phy_alloc +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x099bb806 ntb_unregister_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x0c41de3e ntb_register_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x30934216 ntb_transport_max_size +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x32537aca ntb_transport_link_query +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x3d54dbfc ntb_transport_tx_enqueue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x436098aa ntb_transport_link_down +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x77ae9ef1 ntb_register_client_dev +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x82e6c13d ntb_transport_qp_num +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x9c992c8f ntb_transport_link_up +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xc270dc24 ntb_transport_free_queue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xc37d9036 ntb_transport_rx_remove +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xd40e7a02 ntb_transport_rx_enqueue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xd42d6d86 ntb_transport_create_queue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xfe897ddd ntb_unregister_client_dev +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x0a418418 phy_destroy +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x0e3c094b phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x1063bf48 devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x1601a182 devm_phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x1fa01c96 devm_phy_destroy +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x23b8de60 __of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x2e325114 phy_init +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x34eff2c6 of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x3c1e4f57 devm_phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x3ea17426 of_phy_simple_xlate +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x413f44cd phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x42c5bc4c __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x5587eb4f phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x5afec848 devm_phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x73f7b6d5 phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x7f354e71 phy_pm_runtime_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xa438085f phy_power_off +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xc56e1dc3 phy_pm_runtime_allow +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xd0c33909 phy_power_on +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xda0b43aa phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xe125ca8e phy_pm_runtime_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xf439a7cb phy_exit +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xf7cd88e5 phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0xdd7acc39 asus_wmi_register_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0xf27bb0df asus_wmi_unregister_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_ips 0x46809fa9 ips_link_to_i915_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0x232b5238 mxm_wmi_supported +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0x61cdf799 mxm_wmi_call_mxds +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0xe26032eb mxm_wmi_call_mxmx +EXPORT_SYMBOL_GPL drivers/platform/x86/thinkpad_acpi 0x706cdcef tpacpi_led_set +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x561c634a wmi_evaluate_method +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x876d29f1 wmi_get_event_data +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xda29f8b0 wmi_set_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xfb882fb7 wmi_query_block +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x07bfdb3d pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x92e62368 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xc8e80380 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x01521ebc mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x2efcd019 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xcb578dcf mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x02649bcf wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x11620033 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x50fe55f9 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x69c4dee6 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xb6c0777a wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc8986a29 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xbb5ba7ec wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00817ee4 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x021bc435 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x07b2c997 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x08c4acbc cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0a548aae cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1467263b cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x17376ef8 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x18468b51 cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1984c045 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x23781e52 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2ccca560 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x32b7594c cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x447177ba cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x462f939d cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x46e0604c cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x47d8496d cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4b4e93ed cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4ca912d2 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5a24df5b cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x72f5ee8f cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7e4c3232 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x81100208 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x838210a8 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x85885711 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x87e45138 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x93838f98 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xaa3bbcec cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xade4182d cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb083589e cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb40297a2 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbd83263c cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbfe258d5 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc16201f1 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc2ae4e7f cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc6eeb5ef cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc9eb7780 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcb201572 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd1ab3a1d cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd212fb4d cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd435de8a cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe364b1c9 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe9e07192 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf08d7174 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf1346d9f cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x0c498e9a scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x41576ac2 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x48ad60b5 scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x8f9d3aed scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x972a371a scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xaa5a0b8e scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xaf7b1a0f scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0348e19a fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4303c06e fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x57d1e7fb fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x6330c1a6 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x6a03b584 fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x6b682060 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8f2fe0dc fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x909e337b fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xb10a9ba0 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xb32b1d97 fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xb98c4fd6 fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xbb918842 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xbc92f8b7 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc659372f fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd6c3ac90 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf86f2c37 fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x50afb021 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x58e28c1d iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x9fc75df1 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa1eb3580 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xb4975539 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xe9eb4167 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0996bb0b iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x18b3c7c9 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x250c5ea3 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x32b6b8fa iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3795a2e3 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x37bdb222 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3b844bae iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e58ca7e iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x40a5c870 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4137b625 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x427abfe7 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x456b923e iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4904d6ef __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4c3d82f8 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x643310a0 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6b514d46 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7b1efd85 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7bf8156d iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7d603eb3 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x83098fb2 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x87b665a8 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x880b43a6 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8839485b iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8ab668de iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x90aaac86 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x934349ba iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9d07fcee iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9efa46de iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4acf3fe iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaa576641 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaab51371 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xabcfff1a iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xad871409 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb1286cea iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb3fd328d iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb42ea6d0 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xce9f27ae iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd465d67f iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd5566717 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdea4446b iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe52c5d2c iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeaa3d1e0 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xecaaffdd iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf5751a11 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x100c351f iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x153083cd iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x19b1a275 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2d6ccd03 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3b261e88 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3c96040e iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3f582f7a iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4932d736 iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5f65d9a6 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6a92d644 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8a3a6d8f iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8da9ede1 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa7d312f9 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbaa063d1 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbe10a431 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd0cd6a30 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe3716404 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x03c489cd sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x11fb357b sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x30dd724c sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3648d400 sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3d1a7b8c sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3f7c86d9 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4525f051 sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x453b33e5 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x46b8ae52 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4ec839d3 sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x51ddd849 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x576132e6 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6920e968 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6c5cece8 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8e2b3627 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa29ee5d8 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb14474bb sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb7eb6440 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc0e9004d sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcc323638 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd9a324b9 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xda149836 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xde372750 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe55a6e80 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf17f1e9c sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x03f5e0dd srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x2f08f595 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x37a8e4e3 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x77576293 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa2f85829 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xac9e8aa4 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1b339b3f scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4bfa4c38 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5ab8b649 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7667e596 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7947e6b6 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7ed9ec88 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x914400fe scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd77a75a5 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xff5376be scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0785d76d iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0bf447e6 iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x14a7bbc1 iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x190dd871 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x22666d2f iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x33bbaf28 iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x33d417fa iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x36783902 iscsi_is_flashnode_conn_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x37048baf iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x43520825 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4ebbd132 iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x57634a7d iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6c9aa44f iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x74a1248b iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x81345cf0 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x84768d88 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x89eb56d9 iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8c18cb9c iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8d2bf225 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x91ae0ac0 iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x963e036f iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9915293f iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9eadf24f iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9fe6f4a7 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa5f61ac2 iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb1a985ed iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb4a3b9b9 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc66ed40f iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc690a43c iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc9c21b56 iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd452675a iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdd1ca218 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe6b1d6b3 iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe89975fc iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf1a52326 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf74836cd iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfa599469 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfa7f7796 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfc3a859a iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfe2bd212 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x358de062 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x3a06ac7d sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x48b7b7a1 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x96a0fadc sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1b977e1b srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x76d238da srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x7b50b05f srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xb875a3a2 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xbcf5ccb0 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xee891cc0 srp_tmo_valid +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x430534ea ufshcd_init +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x44e27354 ufshcd_suspend +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x84e62176 ufshcd_remove +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x8a52be29 ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xb2142ba9 ufshcd_resume +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xe2d02789 ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x07088418 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x33cd5e19 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xab9959dc spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xd427288a spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xea86b6af spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x390a4ccd dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x48c1ea28 dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x5e0b87e8 dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xa57bcd04 dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xcc648115 dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0x22a15bc7 ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x01b29f20 comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x02b78f46 comedi_to_pcmcia_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0443dcdf comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0a8a3181 comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0d7e7188 comedi_pcmcia_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1cea6b09 comedi_pcmcia_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x35181329 comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x381aa3fa comedi_pcmcia_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3a34f2c2 comedi_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3e48ef26 comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x46206f26 comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4a751875 comedi_buf_put +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4f9b19e4 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x53412e55 comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5687ef96 comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x58d8eb07 comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6044ce42 comedi_pcmcia_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x64594859 comedi_buf_get +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6780c10c comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6811c5e9 comedi_buf_memcpy_from +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x69ec89e5 comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7a7619c7 comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7e12f18e comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x800141ed comedi_buf_memcpy_to +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x81507215 comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x908c3f11 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa3d32241 comedi_dev_from_minor +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa62f8337 comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xab9451de comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xad684b8a comedi_pcmcia_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbc4896e3 comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc26ab48e comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc626882d comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc930abc5 comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xcc1ff1b3 comedi_error +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd0942f35 comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd2bd88ba __comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd37353b8 comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd751add8 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xddc8477f comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe50f730e comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xea0a81bd comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf7894eef comedi_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf9ebb1aa comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfb8d0fdf comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfc22cd16 comedi_event +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfcc3633e comedi_pcmcia_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfe10a711 comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x04260fe9 subdev_8255_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x1e16150f subdev_8255_init_irq +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x206f13da subdev_8255_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0xb6a9cda1 addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x3b9d0e19 amplc_dio200_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xb3c1662a amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xf8ff0636 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x49778760 cfc_handle_events +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0xdff38070 cfc_read_array_from_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0xfb72df02 cfc_write_array_to_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xd220db08 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x0194eeed mite_release_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x0d15822a mite_bytes_read_from_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x27891d7a mite_bytes_written_to_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x383176a8 mite_sync_input_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x497fc419 mite_sync_output_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x52e07fd4 mite_get_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x60fb6b24 mite_setup2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x64487f3a mite_dma_tcr +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x6758abc2 mite_done +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x73c5007d mite_setup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x86690dbe mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x875e367e mite_bytes_written_to_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x876eddef mite_buf_change +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x8af1154c mite_free_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x948ee17c mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x9feb84fa mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xa55c018d mite_dma_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xadc2a92e mite_bytes_read_from_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xb7202f50 mite_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xcdb6f74a mite_unsetup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xcf1b2145 mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xec6cccd3 mite_prep_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x717ae1b4 labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x4b571fec labpc_setup_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x62b66a4f labpc_free_dma_chan +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0xc9de9d3a labpc_drain_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0xdf2791a8 labpc_init_dma_chan +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0xe71df38d labpc_handle_dma_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x02ed3cdd ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x23e3b970 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x631a7562 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x65370ef7 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x87599de1 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xaf6f6ec5 ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xb24bf480 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xc29e58d4 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x7c8eddd0 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xaec53e7b ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xdc0f2adf ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xe53d4270 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xfbc8c294 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xfed90748 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x194f689a comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x3bacc6da comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x5553babb comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x61364a6c comedi_close +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x72cef0c6 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x95b82e6f comedi_open +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xeda67a46 comedi_dio_config +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x08d37c5d dwc2_hcd_init +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x2206b003 dwc2_handle_common_intr +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xb05a818c dwc2_set_all_params +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xf42a971e dwc2_hcd_remove +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x1a1b5249 oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2feda75b oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x3227a28e oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x7dc9dddd oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xb2c66001 oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xc8b5a524 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xd370f679 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x3a7460e3 adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0xbd5a0e51 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x078e1998 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0a5c5f48 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x1e5d77d8 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4164306b spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4d473874 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8fe66c8b spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb1ff4bdc spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc91490ae spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xcda38867 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd1b551a2 spk_get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xde7ae2e8 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xedcc16aa spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xf2a19e31 spk_serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x0f84328b usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x2fec7847 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x3a860e80 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x50606061 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x6440675d usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa0b50f62 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xc02797cc usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xc8d45a99 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xcaf34b6d usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd0a12dcb usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xdd87416b usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xefc268e8 usbip_recv +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xf863173a usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/uio/uio 0x2b38f7a4 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x881df21e __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xab85a7e6 uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xdfcad130 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xee8d4396 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x0532c445 ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0xc78cccd1 ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x068144cf usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0aefa68f usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0dc48c6b usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x13d5fdff usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x20d36a60 usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x21c7c4bf config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x246f7fc3 usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x28233179 usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x30c92246 usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x36b8dba8 usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x51731579 usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x57ec2fc5 usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x617bd9a7 usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x6397bfd9 usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x6b529230 usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x79d99a81 usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x9208de5b usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x94d7075a usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa664f3ab usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa95a4e35 usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xaad1c3bd usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xad2c9ca9 usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb5243cd0 usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd9bd54e5 usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xdbbd4556 usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe2811550 usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xeb0e3286 usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xfb715e90 usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x4274e059 gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x8e27d6de gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xdc32ccf1 gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xf1981607 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x259d9e4a usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x604cd733 usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x7254b935 usb_gadget_unmap_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x81eb886e usb_gadget_map_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x8a4e8754 usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xa0fd6263 usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xae90cbc8 usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xc26b202e usb_gadget_set_state +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xda68627f udc_attach_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x0a5230df fsg_common_set_nluns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x141fce2a fsg_common_remove_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x1ccb58f7 fsg_common_set_num_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x2d10b6a7 fsg_common_create_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x51707c29 fsg_common_run_thread +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x55e886a7 fsg_common_set_cdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x6acb4179 fsg_common_set_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x7e26d4a5 fsg_common_set_sysfs +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x99023bfc fsg_common_put +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9a0221c7 fsg_common_free_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9dc025a5 fsg_common_free_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xa46e6443 fsg_common_get +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd3ae3b65 fsg_common_create_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd468f882 fsg_common_set_ops +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xe4d1591e fsg_config_from_params +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xf5ea6f7d fsg_common_remove_lun +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x553e5bf5 ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x87458803 ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x191a088e usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x293e8b6f usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x32057df4 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x39b3034c ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3b4a4746 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6140a8f6 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x61446738 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb434a088 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xf0085223 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x21a78a74 musb_interrupt +EXPORT_SYMBOL_GPL drivers/usb/musb/tusb6010 0x77149b7c tusb_get_revision +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x999e8ecd usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xf285af15 usb_gen_phy_init +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xf51d4bac usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0x1a9e7146 isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x10c4904e samsung_usbphy_parse_dt +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x374c7eae samsung_usbphy_cfg_sel +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x41e1a180 samsung_usbphy_rate_to_clksel_64xx +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x5ea67793 samsung_usbphy_set_isolation_4210 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xb38f4eb9 samsung_usbphy_rate_to_clksel_4x12 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xbc153647 samsung_usbphy_set_type +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xc4c5947b samsung_usbphy_get_refclk_freq +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0x299f9403 usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x050da00e usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0a659696 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x184df5bd usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x256ccdd1 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3277b26f usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3b0b7060 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6164fc80 usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x64fdafff usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8c013238 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x917906f2 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x929995c4 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x92cb6124 usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x93bc1055 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa1ab1a1d usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa504c022 usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb1b19fc8 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd49ff5d7 usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdf8e2a5b usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe0889da7 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xea489a28 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfdf72916 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0c2eebc5 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0def84ee usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0ebec625 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2b26cafa usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x492856a2 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x49f716ad usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5720e2fa usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7543c9e9 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9008bc65 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x93f25e81 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x93f61eed fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9cd07615 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa858b3a9 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xad7bbef7 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xaf4100b9 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb702d05c usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbb8caeec usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbd4f8c2a usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc4d0c6db usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdadc9882 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdff653e5 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf0fafea5 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0bd816f0 wa_process_errored_transfers_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x18cdec46 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x1ec01765 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x2803ed43 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x3cbcb806 rpipe_clear_feature_stalled +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x766f59ca __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x7eec4135 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0ae0716b wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x513fec0d wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x58447804 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x611d8172 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6c1b4d94 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9c0eb377 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9dcde589 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xaa63a96f wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xaeee3327 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb4522907 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe0b4a1a5 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe5714e05 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xef1dc191 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf743f244 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x10d0eb78 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x8543015d i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xdf59bf6c i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x0bcfa0ed umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x18345c43 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x6e688b25 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x75d95fdb umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb496021c umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xbafa9753 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd85df055 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfa401a9d umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0d68d0b6 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0d78016e __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0fc02440 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3949cab9 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4255b247 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x43acc991 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x47d7fd6d uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x48f478e3 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x496b6c43 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4e2afaa2 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4ffab7ff uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x504948e2 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5c912bf6 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x655ad969 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x730e77ff uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7d1f369f uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x816b9e92 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x83f74b19 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x85284a33 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x889be69c uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8a66c428 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8ccd553e uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8fe4ab7b uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xac97316b uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xad018b32 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb1db30b8 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb351360c uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb9c038c4 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc15718b8 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc1ab164c uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc71b9d06 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc8aa7e3c uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xca44e6cd uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xca907907 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd0f8f5e9 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe25fd011 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe6c7e168 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf3eaed36 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf64b5413 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf77f9327 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfc2bdffc uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x701a8689 whci_wait_for +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x00682764 vfio_del_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x06935c8c vfio_group_get_external_user +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x3567743b vfio_external_user_iommu_id +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x3960df06 vfio_add_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x95258207 vfio_device_data +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x969c73d9 vfio_device_put +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xa81343b7 vfio_register_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xc47a7a10 vfio_device_get_from_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xc4913442 vfio_group_put_external_user +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xd84dc075 vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x01c572ef vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x03aac4df vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0ffab1a6 vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x14fa1987 vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x269f7a09 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x300741c5 vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3e54da69 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x50212451 vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5b745bd1 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x768de34b vhost_init_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7f009451 vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x82f49f17 vhost_poll_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x8d72700f vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9103104a vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa1dcbcf2 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xabcb443c vhost_work_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xabcd8ac0 vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xba9c4583 vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbf74fe44 vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc7257af2 vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc8067091 vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd255118f vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd38f5935 vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd3fe2d1c vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd7c80dcc vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd8d72937 vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe9a0cc04 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf7306210 vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf95f5bcb vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfc244fbf vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfc5d1162 vhost_work_queue +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x244b042d auok190x_common_remove +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x39522b34 auok190x_send_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x417095be auok190x_send_cmdargs_pixels_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x534ce802 auok190x_pm +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x54f452f3 auok190x_common_probe +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x74951260 auok190x_send_cmdargs_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x837a351d auok190x_send_cmdargs_pixels +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xa23c2354 auok190x_read_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xb4467cfc auok190x_send_command_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xc636fb3e auok190x_send_command +EXPORT_SYMBOL_GPL drivers/video/backlight/apple_bl 0x2c63e051 apple_bl_register +EXPORT_SYMBOL_GPL drivers/video/backlight/apple_bl 0xdab0f892 apple_bl_unregister +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x34cd3492 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3992d2a7 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x4336328c ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x5c517b28 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7f40b1b2 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd2589beb ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xf87fac52 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x60ee4c95 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x50e9c7da fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x74aaff0d fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xe26ade9c sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xe55e7acb sis_free_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x31469540 viafb_pm_unregister +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x75cc5912 viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xb4f863e6 viafb_pm_register +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x0c34cc29 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2a422509 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x54be33fa w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x552efcca w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x6c200855 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x836d3276 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x876fecbd w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xcafddd1d w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe8fe2a57 w1_write_block +EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0x918fb60a xen_privcmd_fops +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x841fd0ba dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9a059734 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc6dc8c2f dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcb114d55 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x54e7a572 lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7184bcd3 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x72131c60 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8bde52ce nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa547b281 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7ddf121 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xe50b55ea nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xede129f7 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xfc801641 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x01fb8087 nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0c5e549e nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0c8b349f nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0e1658b3 nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1279213c nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x13949765 nfs_writedata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1404ad0b nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x150d26b8 nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x165b2d97 unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1c9f1fb3 nfs_probe_fsinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x20141e4c nfs_pageio_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x21a789f8 nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2239bb0c nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x22c108b7 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x24395e1d nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x25b79f6e nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x25e50ee2 nfs_put_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x27431fb9 nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x27aec54e nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x27e9f992 nfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x29f4af9b nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2a352def nfs_pageio_add_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2e6c367d nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2edf6257 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2f00026d nfs_fill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3053d537 nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ca31f35 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ce0765b nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4013bbe6 nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4472ec14 nfs_destroy_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4489c65b nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x44beb798 nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4c7a7abf nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cca361f nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51b58ea3 nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5346ac2d nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x55634b95 nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x55e44e25 nfs_fs_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5777e9a5 nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5a0c933d nfs_writehdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5b685356 nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e1d863a nfs_sockaddr_match_ipaddr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e7435ed nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5f0920eb nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x60fef6e2 nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x61194200 nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x616ec8eb nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x62c7263f nfs_remount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x62d58556 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x63539566 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x640fbea9 nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x64cb9626 nfs_set_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x67a56f10 nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6916f9ac nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6a586aa6 nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6f1572a4 register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x710ebb5d nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x721a294e nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x78434ef5 nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x786876ca nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c9722ba nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7e505557 nfs_generic_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8025fc95 nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x850becdc nfs_generic_pagein +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x852de03a nfs_file_splice_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x865d1e79 nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x888e004b nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x88bb8990 nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x88e26859 nfs_readdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89bc5a64 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8b5181a2 nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x94bcab74 nfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9579228b nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9c325afd nfs_pageio_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa16a0f4a nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa1b4d1ab nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa3822f6b nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa415de59 nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa4440224 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa89e2549 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8cc7f3c put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8d2d1ce nfs_callback_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xac34a679 nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xac6baa3e nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xad2aa4fb nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xae318b31 nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaf2bcfb5 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb1bfec30 nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb3e68272 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb600c3a6 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb606e716 nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb6f6c409 nfs_file_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb76dedda nfs_readhdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb89913f5 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbc618da6 nfs_clone_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc22b5aca nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc2af6a6a nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc2e5daaa nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4ff1e9f nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5ef47d5 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc753aedd nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc9241b36 nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xca602728 nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xccb1129c nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xccd75904 nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcff15943 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd0ebe8da nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2513081 _nfs_display_fhandle_hash +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2754c70 nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2dfab49 nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd5203871 nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd5697ccc nfs_file_fsync_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd8e85b4c nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd9abc496 nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdadd5bcb nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdcd25e98 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xddad7280 get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xde92c95e nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdef9dde2 nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdfbdabbb nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe08a09a1 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe0fd6bb5 nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe0fda297 nfs_try_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe15f9c94 nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe49e3853 nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe661ead2 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe6c01766 nfs_fs_mount_common +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe777973c nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe85329f8 alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe9b39845 nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xec557f72 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xed081d43 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf45f4c88 nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfa86f368 nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfb7ee006 nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc22686e nfs_setlease +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc619abd _nfs_display_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfe13e51c nfs_file_splice_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00aa99e9 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x06c36816 __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0a5b603f nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x12327934 pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1240914e pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x170f3ed6 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1f93b3d8 nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x23e461ee nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x26cfb3e8 nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2a8a7b4e _pnfs_return_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2d0e6998 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2e9c230d nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3590751c pnfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3cf23e97 pnfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3dfe6fe3 __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x44237ff2 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x471de0a9 __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4865a9bc nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x502d2a0f pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5707f7c4 nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5c9e0bfc pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5e8fe2cd pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x65e43fe5 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7937db39 nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7a572590 nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x802c648a nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x80979fb1 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x848992d4 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa59c1879 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xaa05ff98 nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb511edbd pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb9d26b2e pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc1386cb9 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc38a9212 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc8260e5d pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc948624f pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc960b9a1 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcb0cdb1c pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd1640cd4 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xda7acf47 nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdc565d22 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdd1f5254 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xddea2953 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x894dbc63 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xf732f85b nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x32d69159 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36a28a9e o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x68d05c1f o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x70842c50 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x990fb87e o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb7309d2e o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc8d071ed o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe307a407 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x182ff7fd dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x70275bcb dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd2ab2157 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xeedc941f dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xf10b52e8 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xf3172c05 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x1d9b8fae ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xa569204f ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbe013f43 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x8444d7b8 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0xf0433b81 notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x1803a6ed raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xe4b051cf raid6_datap_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xfdfcb8cb raid6_call +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x201d8ea3 encode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x29fa419f decode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x2a21fee3 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x3148ec71 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x3f408f0c garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x635e77b9 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x788a2451 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x948159ca garp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x16c53c12 mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x1c968056 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x3e59d7ac mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0x6384d228 mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0xeb6e25cd mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0xf7595414 mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/stp 0x1cc6c997 stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0x279f79c8 stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x688676bd p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0x9ab1d2e4 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0xb09faf79 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xcfb6a3da unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x1699afd2 ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x24ca2ba6 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00ce0b68 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0684272f dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0ca29d84 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1e38a6f5 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2371d17e dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x27b91930 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2c1f9be2 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2e558a03 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x43db9005 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x496643e2 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x52ef431f dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5430d540 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5511eb49 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x553d984f dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5cedb7dd dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x654f8743 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6e537bf7 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x817186d7 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x847eeaa3 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x89c9412f dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8eabb3f0 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x98ae17a3 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa3659595 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa82cdf04 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa848a48e dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaaf89d9d dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xac6ac69d dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xad606870 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb1bd3645 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbdd5d340 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf969704 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc2688e32 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcd9353b6 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe3691b9d dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeaa64587 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf780d450 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf9cd66dd dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2effe80e dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x618588b6 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6f92c566 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x90a3efb0 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x94ea477c dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xf76b3fe8 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xaeb234be unregister_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xe2ab4b1c register_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x0294ec29 gre_cisco_register +EXPORT_SYMBOL_GPL net/ipv4/gre 0x38e3bde4 gre_build_header +EXPORT_SYMBOL_GPL net/ipv4/gre 0x89a21d75 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x9b5fa244 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xef138a68 gre_cisco_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x1d0a4bf0 inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x2d787d35 inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x30d0d324 inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x31b78c78 inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x53762445 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xf3ec4887 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x0927373c ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x0c1b4621 ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x12272ac3 ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x4480ae2e ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x4d547c34 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x66815837 ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7e279cd6 ip_tunnel_ioctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x9ae96d2d ip_tunnel_delete_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xa5a2d61d ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xc1287fdf ip_tunnel_get_stats64 +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xc475435a ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xf62eba33 ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xf654e00c ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xffdedd36 ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xfb29fe45 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xb084a7ed ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_ipv4 0xd7f125ab nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x0fcf34e9 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x2c02a8cf tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7ea39ba0 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xc0885533 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xcbe2eb8d tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0x16972c82 xfrm4_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0xa9ea5456 xfrm4_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x28edf114 ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x44c5f2b4 ip6_tnl_dst_check +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x4652962b ip6_tnl_dst_store +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xb149b35f ip6_tnl_dst_reset +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xf39a4789 ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xec3256e8 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_nat_ipv6 0x7de38ed1 nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0x72deb45b xfrm6_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0x9be5f4e0 xfrm6_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0e2e0287 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x14d6fc6e l2tp_session_queue_purge +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x280fd5bf __l2tp_session_unhash +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3593d46a l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3844a46e l2tp_tunnel_sock_lookup +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x68d05ed7 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x69a15d16 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6c6103ea l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x740d1c23 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7661fc73 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x88608060 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8ff523ad l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb2505911 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xba86e279 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbae8a75a l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcdd8b221 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xec08da66 l2tp_tunnel_sock_put +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0xef93d3cc l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3663a36d ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4bf42798 ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x52540438 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5d38f601 ieee80211_set_key_tx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6502030e ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x79d95ae6 ieee80211_iterate_active_interfaces_rtnl +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7f3678c1 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb3dcd8a3 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xbf279f3d ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc8f8df7b ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd6f6e383 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe27e8062 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe9e44ec2 ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf14127b9 ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfc47a1e8 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0549dc92 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x18e9d2d6 ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x2230f700 ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x37d6375f ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x38b3fc6d ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x5b94a333 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6020ff61 ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6a5f285d ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8447f2df ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xcb517de7 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xcd4df5b7 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xcf516297 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xcf8993fd ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xd478befe ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xd7dd7c2e ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xef13ebbe ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf16966af ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf3b4d4ae ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x2b0a9207 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x54e2c6b0 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x766d7918 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x799ea7e2 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0109b2a0 nf_ct_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x017e0da8 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01f84db5 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x022bcc04 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x08f51a60 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x14a6f6f9 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x14cc7cb5 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x16602b0b nf_ct_timeout_put_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1e4b7222 nf_ct_timeout_find_get_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b9b9de1 nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x312afb49 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x31c6b878 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34dd2f7c nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3649f562 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x36e74b67 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x371413f4 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37386cac nf_conntrack_hash_rnd +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x38d7d699 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44498873 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x466b75a8 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x597957e3 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5cceec10 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5ced34a8 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6154b049 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x625ab143 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x630ae0ae nf_ct_l4proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x648d3f91 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x675a162e nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6ddf2762 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6edb562a nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x70f17026 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x72834a25 nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73c8a52a nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x742958b2 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x789873a4 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7cb8b353 nf_ct_l3proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d2e77a8 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89144a0f nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8945a8fc nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c99ae4f nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x92203ba5 nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x932fa247 nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9546eb7a nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x955aa923 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9cd808d1 nf_connlabel_match +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9cdb625d nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9d45b519 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9de7882d nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa164493a nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa8fb1d27 nf_ct_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb1f37295 nf_ct_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb44e394 nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb73ca7e nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc4f392e nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe405585 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0cd71bf nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc1bb4ddf nf_ct_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc1e2d142 nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc2e80fb6 nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc30eb9ff nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc4287f25 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc43b6faa nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca451fc5 nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcd46f13c nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd07360a5 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd2105f40 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd224911a nf_connlabel_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd55593ee __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd77861d1 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdaeb7bfd nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdb5ce9ae __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdfac157e nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe215bdd7 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe28d0795 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe3b4a5c7 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe9175ed4 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe98b3dde nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xed6ff2f0 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf66d2673 nf_ct_l4proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfc135fff nf_ct_l3proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xa4a06cce nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0xe9ee9d0c nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x27855425 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x00b24172 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3df6e7d8 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5676bbfa nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa1224a2e nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd0e6f742 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd9808f78 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe29e8df4 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe3bb9d03 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf6e6750d nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xfe16c60a get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x9a633d05 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x010ad3e5 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xea270562 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf0ff5870 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xfddc8241 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x2345d9a6 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xac38a3d1 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4ba23f5f ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x76535e86 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x81a3e35c ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x92e7f147 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb9902363 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xefce9b51 nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf7cb4ce2 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x43a8da47 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xd87aff1d nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0d9bae4b nf_nat_l4proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x131f636c nf_nat_l4proto_in_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x25668c26 __nf_nat_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x38db016f nf_nat_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x53849d2f nf_nat_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x614414ae nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x6272391a nf_nat_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x86f697eb nf_nat_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xaeb592a3 nf_nat_l4proto_unique_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xf23b5e90 nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x11a006b5 synproxy_check_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x2f0d55bf synproxy_tstamp_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x8841d39b synproxy_build_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x90298227 synproxy_init_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xb42e336a synproxy_options_size +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xd9709d6f synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xef7db50c synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x09689dda nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0fda3c99 nft_validate_output_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x149ca5b2 nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x2a5f5495 nft_register_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3d1c8648 nft_data_uninit +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3d49dab7 nft_validate_input_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x41bf6a50 nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x780aea94 nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xb2a0489b nft_register_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xc328c6df nft_unregister_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xc4590910 nft_validate_data_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe5e28406 nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe9a43378 nft_do_chain_pktinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xea378cd0 nft_unregister_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf7496b7d nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x14c150d5 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x2bf732fb nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x39febd38 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x443a0fc0 nfnetlink_alloc_skb +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x6a2d07d0 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa081bf96 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xb20eddf2 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x21f6bba6 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x67231e32 nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x685420e0 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2d6082a4 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3ddce7ae xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x47f57c8c xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x65b73a22 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x68a3d825 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x746dd942 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x749f7e08 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x78279f1b xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x861e40c8 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8a170f96 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x94fa7752 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9652b61c xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9c48b120 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb8dbabfe xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc824bc32 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xced9d2ad xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd3030d22 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xda426b9e xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xec24fd82 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xeeae2488 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x132318ac xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xd7e1b517 xt_rateest_put +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x622a59c9 nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x8e013288 nci_spi_read +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xdc6bfb02 nci_spi_send +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x0bef4936 rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x18b396cb rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x2bb53474 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x36dd5b7d rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x5497327d rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x58e88e22 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x6920a6d0 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7bc62829 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x83b45dc0 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x8682a49a rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x90495e5d rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x952e4ad2 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x99ee9e38 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x9c92b87c rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0xa4fe7a61 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xbc3d393d rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xbeca8467 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xc0ada5c4 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xcd116423 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xdc9871c1 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xe3f6c2e6 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xe4f786d4 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0xf6f2176a rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0xf9e7b5ed rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xb111068b rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xda685181 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x140ffa4f svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1db8c309 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x361a50f1 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00e0ab85 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02f14a14 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x037dcaa5 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x038cc63d rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045834e9 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x046d3419 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05ed9c4a svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06011102 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07d67dbf xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a1278bf rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a77b7f4 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b916e15 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0be2fc72 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ef14987 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ef47c89 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1241aa31 rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e63901 rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14d51bee write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1686ec9c rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18e88cda xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b90ea6a sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d9cbf0e cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f2a9970 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x208d4d37 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20dc45d4 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23065867 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2375f986 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x297d9a3e rpcauth_key_timeout_notify +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a979547 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b893d0b xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d6ff804 rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d90530a rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31908c63 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3216e96e cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33791ad1 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3569bc88 rpc_protocol +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35a1fee8 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36ea8b9a svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37c05517 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38b779e4 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d46955f svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f7859b1 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40275ad2 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41977177 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x426cbf12 cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x449052ab rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44a45cfd rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44bb12a1 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x455e922e xs_swapper +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x456a4a47 rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46204e8b svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a8efa6a rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ae0ef7d xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c0675bb rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c4ac105 cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d942478 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4dbcc0c1 svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ddbe47c svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4df56851 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e8e9728 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f320bb3 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x506e4c91 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5137f686 rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51625dc8 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51f82fa5 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5717ee1b svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x576b99fe rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x588015f9 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x592d79e7 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b36186f rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5cb7e646 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e583179 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6100bc42 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x615346e8 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6273f13f rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63e72c7f rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64394454 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x644fa675 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66025277 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66203081 rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6660236a xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x680bf6cd xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c1cf2f9 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f3f3401 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f5bf37d rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7431db0d svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x743c46c6 rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x748b01b7 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74c148ac xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74c53340 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x751afe5e put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75f63ceb rpcauth_cred_key_to_expire +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a36ddbd rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b192828 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e89737a svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8007c0a2 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80648aa2 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80951b28 rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80c7c60a xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x821d29a6 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82eff06f xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85c7f821 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87c0df94 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x890bcedf xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8aa42056 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d4e780d rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8dbae376 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x923fd945 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x927ddd3c rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93bed58e rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x942409b3 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94ac474a xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9597d915 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b75d64 rpcauth_list_flavors +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c03aa91 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c3dc106 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f930d84 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9fe82999 rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa141aae0 rpc_rmdir +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1d70794 sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa291efa0 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa35bd2b5 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3a35747 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5b89fdc svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa68f2bbe rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8cc8cb0 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaaf764e4 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab138bd9 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab25f948 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac29567b cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xace07680 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad5e5050 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae37281d svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb077cd6e rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0fa2102 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb291972b rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3a64c59 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb487e442 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6f61073 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb9d98405 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba4bf703 svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf15c683 gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf433fd5 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1def256 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3d08dab rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4d5d32c svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc54dbb7a svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc626a6ed rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc764b3d2 rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9d956e7 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcac3052e svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc8de2fd rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd035319 rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf6b4826 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd114d837 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd19a0fac xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1b1da3e rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3492867 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd35367a8 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3c2ffa7 rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4799f75 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7630b20 svc_shutdown_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd78291c8 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd896fd7a xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9624907 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9ed66c0 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda4376be svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc64359f rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde19fd58 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf494a99 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdfcb2950 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe00d9b8d svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ac2bb8 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6ccfff3 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xebf2aaad xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeed06af7 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2057859 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf45bc564 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4a2b00a svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9a65dca xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9deab50 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa01bf25 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb453c27 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfbb2a52c rpc_get_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfbeb3670 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfde10765 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfdee6b62 rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfdf70da6 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe210b91 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfeb8e95f rpcauth_unregister +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0c79d5ef vm_sockets_get_local_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x151f822a __vsock_create +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x15c0c57c vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x1f1d64b0 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2663cb64 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x37c62727 vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x556fac0a vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x59d943c8 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x751ff010 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7f730c80 vsock_core_exit +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x871dd09d vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x8faa490e vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x970b77bc vsock_pending_work +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xaffd4036 vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xb0a2d0f9 vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd0f699d vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc1f442b5 vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc58d35ed vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd95ac116 vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd9a2c168 vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xe2ba679a __vsock_core_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xfa03827c vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0b6239c7 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x17603c27 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1d4cd4d4 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2133d20c wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x213e531a wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x21aa83d8 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x25490834 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x385e2d2f wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x481c586f wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x65caa390 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x84338e03 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8823e725 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xc33c53cd wimax_dev_add +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0e0a5130 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1474294c cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x62e1ba60 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7222bba3 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7ed92ae5 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x82304a34 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xae2b2319 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcebd55ad cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xda0d6e9d cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe3e0d553 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfa2767f2 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00778770 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x056bb269 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0a575945 xfrm_count_pfkey_auth_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0b9e5852 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x74e1a843 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7a8ca627 xfrm_count_pfkey_enc_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7c30b8c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x92dbc6c1 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xbc8b0f41 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xce7a55c1 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe122af95 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x3df04606 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x43296d2c ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x4de80965 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xf8374905 ipcomp_input +EXPORT_SYMBOL_GPL sound/core/snd 0x1bb2a0ab snd_kctl_jack_report +EXPORT_SYMBOL_GPL sound/core/snd 0x3ca17104 __snd_printk +EXPORT_SYMBOL_GPL sound/core/snd 0xb2d9cdcc snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/core/snd 0xc70fa5cd snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL sound/core/snd 0xced0fc47 snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0xdbc43f75 snd_kctl_jack_new +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x3cc177c7 snd_compress_register +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x90fc57cb snd_compress_new +EXPORT_SYMBOL_GPL sound/core/snd-compress 0xec4cd41c snd_compress_deregister +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x04e1b99f snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x09e913c1 snd_pcm_alt_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x739bd65b snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa5986e80 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x0368bfdf snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x4d25dc11 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x76f2c189 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x8e46a2fc snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd0a3ac85 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf621db4f snd_ak4113_create +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00036fce snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00dd4409 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x03173754 is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x04b724e4 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05201682 snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05cbb65a snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0801e6f6 snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x081375c0 snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x08e6e898 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0901c967 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x090311a7 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x09847381 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0d69e629 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0d6daf2b snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x11507dd9 snd_hda_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x115cc62a snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1217a092 snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12ab8845 snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1365a686 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1371142a snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14a2b02d snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1577a3d8 snd_hda_codec_flush_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1669afff snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x18918d4b snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x19e07fac snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1aa8b264 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1b2dc8df snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1eb0b0bc snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2121f741 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x21832750 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x21876e52 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x21bce052 snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x24696fab query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2d5f8e21 snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33d79d5d snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34ea1ea5 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x374feeb9 __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38fc2358 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a4b2767 snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a563bd8 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ba0ea46 snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c9c573b snd_hda_jack_detect_state +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3d4d6fd0 snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ddbdfd4 snd_hda_get_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e1ec2a8 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e9ef2bb snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x41f15406 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x439f852d snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4517a64c snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x455fb0bf snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x45ec612b snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x46bbd7cf snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4701f78d snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48587199 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4a8cf29e snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x50b19a5d snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5231d340 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5474b50d snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x54c24976 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f2f3bb6 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f386577 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x65c09a96 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x665c564a snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6743be69 snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x67b0652f snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x686d2745 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x695dc9d8 snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b2be089 snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6be0c74e __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6cbba34f snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6d9b5a2e snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e18bacb snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e1cf3c9 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6eaf22ad snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x738e4d09 snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75436402 snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76dc6871 hda_main_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x77528460 snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7797fbd7 snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7b31f35b snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f35b4ae snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f46581a snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x807c11f1 snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x85f22d5f snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x871a6e44 hda_extra_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8bcfd775 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c6cb15b snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c8c42d8 snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8d1f986e snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8d4b07e7 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8f532cb4 snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x921e8c1f snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x932a8464 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x97009b32 snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b7f8d46 snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9fc8e604 snd_hda_parse_generic_codec +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa17fd7f9 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5279296 snd_hda_jack_detect_enable_callback +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5933eb2 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5c4537a snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa5c2214 snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xabb17d43 snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad03707f snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xade151bc snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf8efb07 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf9125dd snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb1821c8e snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb30aa6b1 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb6ff2279 snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbbe76629 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc0681485 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc2bd1a2b snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc45003ec snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc8ece664 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc984650a snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd30abb43 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd382c105 snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd3c1992e snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd63d3179 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd69f2c88 snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd8692250 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd90a8fbc snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda42a8a3 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda46e1a1 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdac7e705 snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc2127b4 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc3dcfcc snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc56d331 snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xddb51f4c snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xddd1bfeb snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdeb09aec snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe118de5d snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe464410c snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe48d8cde snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe49f25d8 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe63d7ba8 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe89a0bb3 snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8bac295 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xec09c67b snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xec278a15 snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef81931c snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf03fa5cb snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf0cbe44c snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf58c976c _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf5c65b81 snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf794fbc1 snd_hda_parse_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf84e762b snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf86574f4 snd_hda_gen_spec_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf872ade5 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf8a4095e snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf920b165 snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf9e858e9 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa975cb3 snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x4d14c602 atmel_pcm_free +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x528f3ca2 atmel_pcm_mmap +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0xab0b9548 atmel_pcm_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x01457bbd snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0335c588 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0406187c snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06dceffb snd_soc_of_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x088777e4 snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b66143e snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0dfb0765 devm_snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1047a84b snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x15906e94 soc_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x169d8606 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x16c3e067 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1d5afbfe snd_soc_unregister_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1fba125a snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2215636f dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2359e7d6 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23b30a16 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x26ce0f89 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x27798ea2 dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x27aec3ac snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2978a9f0 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2acb1309 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2b7ff5fc snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38629b96 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3cbb2414 snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x40ec9f4a snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43bf59dd snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x47eda31c snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x47f9381b snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x497e82ab snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4b02a4fa snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4b177511 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4c69a98d snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4e9f1d74 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4fc9af9e snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4fd74e07 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x502fc7ea snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x50f8ed89 snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5313a046 snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x535b2a92 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x543a7a2f snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54e3e1fc dapm_regulator_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5643b85c snd_soc_put_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x585b9d02 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a1ef81b snd_soc_add_card_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ad60625 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5b266434 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5df98894 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5fdfc30c snd_soc_get_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x61f84533 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x68057515 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a492e70 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c9b43f5 snd_soc_add_codec_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6dce4317 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6de213f3 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6e0287a8 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6f0def79 snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6fdf30ca snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71e481a0 snd_soc_bytes_get +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x73b179e8 dapm_mark_io_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7500355f snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x77b09e99 devm_snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x785b51d3 snd_soc_remove_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7b9d9185 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7c2987c1 snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7d519d7f snd_soc_get_dai_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e5643de snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e5939f4 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80e43b88 snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x81fdb3bd snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87464b51 snd_soc_add_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x881890d8 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x896dbc91 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8f9689c1 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x91e21271 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x93d983e8 dapm_clock_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x96316715 snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x96d6a4d4 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b13e9db snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa06febca snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa12b77a4 snd_soc_platform_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa3e02a89 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa4950ed7 snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa4b59d69 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa522f606 snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaaa761a9 snd_soc_dpcm_be_set_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xab42266e snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaca708f3 snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xad5e5270 snd_soc_bytes_put +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb049848b snd_soc_lookup_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb0b3ca7b snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb1be1e8d snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb5f72b3d snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb7b0407b snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb823cec8 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb89af3a1 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbb930656 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbdcacf87 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbf3e837d snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3b9d097 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb06c7fb snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcc72a966 snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcd1b1afa snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcf1784c9 snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd0fba1a6 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd4c36863 snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd4f195c1 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd95c602a snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda496566 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdadc29df snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde9a62c7 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xded2f29b snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdfac3085 snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe1b72ae4 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe281af25 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe41dcd36 snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe47f44c4 snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe545ff67 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe770a3fb snd_soc_dpcm_be_get_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xecf5cc9d snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xed071205 snd_soc_dapm_kcontrol_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xed0de323 snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xef0ad77e snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf0509c46 snd_soc_bytes_info +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf07125de snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf09b8c55 snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf210be37 snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf268b53d snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf26c4973 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf2e30653 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf3b1f591 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf47de8c7 snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf565bf74 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf59b4b89 snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5dc68a4 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfb3014ae snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfc46e489 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x118a3f6e i915_bdw_gpu_busy +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x34af3be3 i915_bdw_release_power_well +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x7381c75a i915_bdw_read_mch_val +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x8993eade i915_bdw_request_power_well +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x8b28f943 i915_bdw_get_cdclk_freq +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x96d7119d i915_bdw_gpu_raise +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0xa17bc3aa i915_bdw_gpu_turbo_disable +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0xde54f019 i915_bdw_gpu_lower +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_file_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sigset_from_compat +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x000678c2 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x000f5fd1 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x002ad65f gpiochip_add_pin_range +EXPORT_SYMBOL_GPL vmlinux 0x0034f3b6 xen_has_pv_nic_devices +EXPORT_SYMBOL_GPL vmlinux 0x00497331 uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0x0066f63b usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x006bc072 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0070ef14 __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x0084d969 pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0x009304b6 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00e9f93f fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00edcfec regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0x00f883d3 pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x00fcf9ad __online_page_increment_counters +EXPORT_SYMBOL_GPL vmlinux 0x0100d4ff each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x014242b2 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0x016d1f19 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x018618d6 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x01dce643 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01f70b0e pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x021ad530 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x021f7c1d hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x02448233 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x024834cf device_move +EXPORT_SYMBOL_GPL vmlinux 0x026211e2 memory_failure_queue +EXPORT_SYMBOL_GPL vmlinux 0x0269568c sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x026fc4e5 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x02742deb crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x02773c80 regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x02857672 css_rightmost_descendant +EXPORT_SYMBOL_GPL vmlinux 0x02d45f54 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x02df8cb9 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x02fc2f66 fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0x032f9728 acpi_dev_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x0334ec6f jump_label_rate_limit +EXPORT_SYMBOL_GPL vmlinux 0x03366a78 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x036953a1 ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0x036ea5bd crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x0370d453 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x03bf1d5e gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x03c358ca skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x03dd0962 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03e61f8f sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x03eca9a1 btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x044492c1 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044fe9c5 thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x04736b2c regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x047941f8 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04df8fbc lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x04fc6bc0 usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x053494cb tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x05511f5d regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x058b582a vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x058f3923 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x05b70fa5 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x05d85fcc subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x05da2b13 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x05f5f5f7 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x062fc169 xen_hvm_resume_frames +EXPORT_SYMBOL_GPL vmlinux 0x063d715b sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0664a5d5 rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x066a353a fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x06d549e6 pinctrl_free_gpio +EXPORT_SYMBOL_GPL vmlinux 0x06dad982 blkg_stat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x06ffd455 nf_queue_entry_release_refs +EXPORT_SYMBOL_GPL vmlinux 0x06ffd847 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x070f6b14 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x0719390a blkg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x07276069 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x074b03ac sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x075ddff4 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x0762403c edac_put_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x0765c109 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x076a50e7 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x076e1088 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x0789539b wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x078ab651 nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07cd5cc4 subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x07e1a4d0 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x07f4639b blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x07f9a414 subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07fc478e acpi_dev_resource_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x07fc84e9 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x081547d8 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x08264cee pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x0835e30d __mmu_notifier_invalidate_range_end +EXPORT_SYMBOL_GPL vmlinux 0x0873b101 yield_to +EXPORT_SYMBOL_GPL vmlinux 0x0879c83c dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x088174c5 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x0883debc sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x0889f9b8 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x088bfa7e cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x08bc0870 compat_put_timespec +EXPORT_SYMBOL_GPL vmlinux 0x08c98264 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x08ee00e1 set_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0x08f789aa led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x08f7ad13 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x0906f462 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x090fee6c dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x09275434 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x092fb94e scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x094313d7 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x09437748 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x09469482 kfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x09590eb5 ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0x09754160 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x09840226 ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x09a0b11b devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x09aade98 rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0x09af1c74 rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x09c9d8e7 xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x09f461e2 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x0a214f53 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x0a415814 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x0a56c390 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x0a72fa9e kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x0a9fd3c5 gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x0abb655d xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x0acce1b0 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x0aceb58b wait_for_tpm_stat +EXPORT_SYMBOL_GPL vmlinux 0x0ae093ae ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x0af02075 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x0af5d65a usb_acpi_set_power_state +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b4784ed sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x0b52e502 apei_resources_add +EXPORT_SYMBOL_GPL vmlinux 0x0b7b9554 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b8bd378 m2p_add_override +EXPORT_SYMBOL_GPL vmlinux 0x0bae62b1 ktime_get_monotonic_offset +EXPORT_SYMBOL_GPL vmlinux 0x0bc18890 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0bca7ab2 mmput +EXPORT_SYMBOL_GPL vmlinux 0x0be8cb31 btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0bea6115 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x0bef0393 pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0x0bf8611b thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0bfacd5a bmp085_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c0df415 rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x0c1fa655 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0x0c2ca43b user_describe +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c678bcd rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x0c71334c inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c80e3fe efivar_init +EXPORT_SYMBOL_GPL vmlinux 0x0c8d5c8c inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x0c9bd765 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x0c9ecd98 sec_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0cce0227 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x0cd236ce regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x0d065ca6 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x0d0980bd ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x0d3810e9 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x0d554906 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x0d62d870 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x0d6bdbe8 serial8250_tx_dma +EXPORT_SYMBOL_GPL vmlinux 0x0d904db8 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x0dc075bc dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x0dd11f01 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0deec217 sdhci_pci_o2_resume +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e2fb910 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x0e32b1eb da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x0e4ac2c3 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x0e59f022 virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0x0e6bb84e crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0x0ec778b9 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0ecf823a static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x0ed9302e percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0efaf572 dma_buf_get +EXPORT_SYMBOL_GPL vmlinux 0x0f125352 vtime_guest_enter +EXPORT_SYMBOL_GPL vmlinux 0x0f1e155a sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x0f1f4942 tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0x0f2d7d87 mce_unregister_decode_chain +EXPORT_SYMBOL_GPL vmlinux 0x0f51c456 key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x0f5bb1fb init_fpu +EXPORT_SYMBOL_GPL vmlinux 0x0f67872d blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x0f6c9e9d tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x0f6d4dac inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x0f751aea input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x0f930597 efivar_entry_remove +EXPORT_SYMBOL_GPL vmlinux 0x0fa138de xen_hvm_need_lapic +EXPORT_SYMBOL_GPL vmlinux 0x0faee82d cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x0fcc1969 copy_from_user_nmi +EXPORT_SYMBOL_GPL vmlinux 0x0fd0d7c6 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x0fe3bdb9 efivar_entry_set_get_size +EXPORT_SYMBOL_GPL vmlinux 0x10002cd1 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x1005ad86 rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0x100d552d ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x1056010e rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x10c1e12d tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x10c73fba do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x10c7555d pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x10ca3500 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x10d07dea gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0x10d7331d sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x10da8382 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x10ebb266 mmc_send_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x10edbe35 usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x10f37bc2 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x10f8001b ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x110106c1 cper_severity_to_aer +EXPORT_SYMBOL_GPL vmlinux 0x111931da attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x1139b3ed register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x11456987 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x1146320d __online_page_free +EXPORT_SYMBOL_GPL vmlinux 0x114c0d92 devm_rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x114f1a20 balloon_stats +EXPORT_SYMBOL_GPL vmlinux 0x1157eda4 cpufreq_table_validate_and_show +EXPORT_SYMBOL_GPL vmlinux 0x115a907c task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0x115fc817 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x117c7305 hwpoison_filter_dev_major +EXPORT_SYMBOL_GPL vmlinux 0x117dab6c spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x11835c42 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x119af014 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x11a9d63e shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x11d89c38 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x11d97d18 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x11e564a2 thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0x11f51109 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x1218bb10 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x128e3f69 device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x12975931 arizona_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x12a8e12e tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0x12b0720a css_next_child +EXPORT_SYMBOL_GPL vmlinux 0x12cf2a5a fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x12dec9f6 sk_unattached_filter_create +EXPORT_SYMBOL_GPL vmlinux 0x130bd388 check_tsc_disabled +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x132b7f4b nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x132fc939 cper_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0x133d463a usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x1352d79f ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x136c7aed pinctrl_utils_dt_free_map +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x13921363 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x13ad647f scatterwalk_bytes_sglen +EXPORT_SYMBOL_GPL vmlinux 0x13b89dee pinctrl_request_gpio +EXPORT_SYMBOL_GPL vmlinux 0x13ce337e gpio_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x13ce87e8 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0x13fa0eab usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x14018e32 ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x14152ed9 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x141650f2 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x1416c8d6 put_compat_timeval +EXPORT_SYMBOL_GPL vmlinux 0x1477ce38 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x14a1ab6e arizona_set_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x14b00027 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x14ba7ffe crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x14dd709c _submit_bh +EXPORT_SYMBOL_GPL vmlinux 0x14f1bc20 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0x14f875ce devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x14fe4faf subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x15010e1f arbitrary_virt_to_machine +EXPORT_SYMBOL_GPL vmlinux 0x1501bf65 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x15026a32 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x152fcb30 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x154593d8 pwm_disable +EXPORT_SYMBOL_GPL vmlinux 0x15510891 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x1583d840 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x159016ec clk_register_divider_table +EXPORT_SYMBOL_GPL vmlinux 0x159d1ed0 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x15c2b096 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0x15da8ca0 pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0x15db88b8 device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x15dda445 napi_hash_del +EXPORT_SYMBOL_GPL vmlinux 0x15de379b serial8250_rx_dma +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x160155ff perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x1608bd1d acpiphp_register_attention +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x167f9ac5 shake_page +EXPORT_SYMBOL_GPL vmlinux 0x168f5114 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x16b63769 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x16c83dbb usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x16f156df set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x16f66ebc virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x171dea60 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x172d9a76 wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x1753a32f hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x17924335 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x17be17fc napi_by_id +EXPORT_SYMBOL_GPL vmlinux 0x181d13c4 pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x1829b9ed hwpoison_filter_memcg +EXPORT_SYMBOL_GPL vmlinux 0x18383d28 rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0x18482586 sock_update_netprioidx +EXPORT_SYMBOL_GPL vmlinux 0x18488760 ping_close +EXPORT_SYMBOL_GPL vmlinux 0x1848d7d7 __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x1852410d sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x1853653c btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x18582826 amd_pmu_disable_virt +EXPORT_SYMBOL_GPL vmlinux 0x18658d44 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x1866cec2 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x1889563a clk_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x188a95eb pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x1894ee57 acpi_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x18c34ae9 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x192a42bf clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x19439355 tcp_peer_is_proven +EXPORT_SYMBOL_GPL vmlinux 0x194dd5f5 pkey_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19a58609 xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0x19b384a5 hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x19f8863d dma_buf_map_attachment +EXPORT_SYMBOL_GPL vmlinux 0x1a082d69 max77693_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a3e800b device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x1a4f83ed stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x1a59a771 blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0x1a62f360 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x1a917828 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1ab35b56 rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0x1ac41c1d pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x1acef7d2 pm_freezing +EXPORT_SYMBOL_GPL vmlinux 0x1ad83009 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1b109986 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x1b3c9291 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x1b4ec827 sk_unattached_filter_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1b500f23 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x1b86879f tps80031_ext_power_req_config +EXPORT_SYMBOL_GPL vmlinux 0x1b8822d8 pinctrl_gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1b9f060d blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x1baa5b13 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x1bb4a1d2 regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0x1bc5eebe pinctrl_gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x1bd06aab cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x1be06951 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x1becf221 extcon_set_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x1bf2fd44 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x1bfe53fa bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x1c185a54 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x1c45e5ad regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c6476c5 __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1c79427d xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1ca23f7f pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x1cb4de1f relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x1cc63fbc pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x1ccd21f9 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x1cdb2147 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x1ce54e4d inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x1ce99f30 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1cf7273d irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x1cfd95c1 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x1d459685 xstate_size +EXPORT_SYMBOL_GPL vmlinux 0x1d46e9d9 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x1d58ae14 lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x1d739e1c xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d78f18b usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x1d7dd7f9 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x1d8fb3bb acpi_dev_resource_address_space +EXPORT_SYMBOL_GPL vmlinux 0x1da3ed44 regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x1dc6b02d adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x1dfba683 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x1e000879 hwpoison_filter_enable +EXPORT_SYMBOL_GPL vmlinux 0x1e2e6821 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x1e5296fa inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x1e5b03dc pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1eafc958 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x1eb1594f gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1edc21cb hwpoison_filter_flags_mask +EXPORT_SYMBOL_GPL vmlinux 0x1eecb35b regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x1ef9471b rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x1efc9c69 css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x1f1988f7 hwpoison_filter_flags_value +EXPORT_SYMBOL_GPL vmlinux 0x1f1cc224 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x1f2ffdd8 gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0x1f41fa44 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x1f55940d pci_intx_mask_supported +EXPORT_SYMBOL_GPL vmlinux 0x1f6f9d31 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x1f72ec94 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x1f7399d2 xen_swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x1f7be68c inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1f9212eb class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x1f9d8354 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x1fbaa0cd dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x1fc8d79e rio_unlock_device +EXPORT_SYMBOL_GPL vmlinux 0x1fcd6c34 pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fd375b9 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x1fec6a3f rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2012cc01 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x201948e1 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x208eddcd usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x209ec764 xen_event_channel_op_compat +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20bccfff rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0x20bfaafc sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x20d4f8e1 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x20e553c5 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0x213f48ce virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x21421f1a tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x21572dc3 devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x215c4c59 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x215f8abe bio_trim +EXPORT_SYMBOL_GPL vmlinux 0x2177d9fd pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x219071a5 xen_swiotlb_sync_single_for_device +EXPORT_SYMBOL_GPL vmlinux 0x21a5ec4c generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x21a7b0fb anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x21ac8b77 iommu_group_get_by_id +EXPORT_SYMBOL_GPL vmlinux 0x21bed412 xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0x21d50922 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x21fb8412 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x2230dbee ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x226935a9 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x226bb7d4 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22cab6ef pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x22cd217e usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x22cd5b10 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x22cee2fc __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x2366a2c0 errata +EXPORT_SYMBOL_GPL vmlinux 0x237dd3cc usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23903c80 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x23ad8aaa scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x23c78f91 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x23d772c0 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x23dec803 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x23ecf81e tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x23f2220f debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x23f68b3a devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x24011e14 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x245f3b3a rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x2469810f __rcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x247e2acb spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2482c71e platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24bbc93c dma_buf_export_named +EXPORT_SYMBOL_GPL vmlinux 0x24c75311 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x24feee00 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x250c2877 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x2510bb04 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x252540e3 pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0x25273232 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x252ea475 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x256a10b2 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x256ed15b sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x25a97010 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x25d0293b powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0x260edc18 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x261cab00 usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x262b3614 pci_reset_bridge_secondary_bus +EXPORT_SYMBOL_GPL vmlinux 0x262e4f33 crypto_lookup_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x2644ef23 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x26556bf7 regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0x267ec353 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x26965721 slow_virt_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x26a8208c get_kernel_page +EXPORT_SYMBOL_GPL vmlinux 0x26b0d652 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26b8dae0 regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x26bdbcbf sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x270029dd regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0x270c3e1e pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x270f3c30 proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0x2723affc uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x2735ef9d init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x27382dfc crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x2764041a pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0x276819a7 rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x2778f065 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27a5d89a devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x27ac675e xen_remap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x27b7efcd seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x27c0c4be eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27c33d4e cgroup_taskset_next +EXPORT_SYMBOL_GPL vmlinux 0x27ddb33d acpi_dev_resource_io +EXPORT_SYMBOL_GPL vmlinux 0x27ea090d subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x286122a5 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x287d871b sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x287e2bee pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x28a903c8 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x28b9db2c ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x28c67257 acpi_unbind_one +EXPORT_SYMBOL_GPL vmlinux 0x28c8d5e9 devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x28d45745 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x28e63e6f register_mce_write_callback +EXPORT_SYMBOL_GPL vmlinux 0x28e64c64 xen_has_pv_and_legacy_disk_devices +EXPORT_SYMBOL_GPL vmlinux 0x28ff6a3f irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x2906606c platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x290e10a1 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x2954fe88 __mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x2981ce3e input_class +EXPORT_SYMBOL_GPL vmlinux 0x29b469bf blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x2a1ddf22 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x2a4adaf1 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a6d9633 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x2a86b039 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2a8a3fcc ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2a996298 tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0x2abc1a82 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2ad1ece4 zs_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2ad7fff1 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x2adb5b4f kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x2ae4b8ca regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x2b17994f crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x2b1ae953 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x2b238f05 percpu_ida_for_each_free +EXPORT_SYMBOL_GPL vmlinux 0x2b7a6de8 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x2b7a83b5 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x2b7f5d24 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x2b86e600 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x2b8f0fae cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x2b90812a unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x2ba4f6d4 btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x2bca8961 iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0x2bd72b76 btree_update +EXPORT_SYMBOL_GPL vmlinux 0x2bf5b699 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x2bfaef4e clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c59347d tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x2c5d77e7 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x2c5fbab0 call_filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x2c6cf373 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2d00bd89 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2d17a0e1 cgroup_taskset_size +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d656d3f context_tracking_enabled +EXPORT_SYMBOL_GPL vmlinux 0x2d7a9c3c driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x2d95e6e6 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2da0e629 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x2db958b6 dma_buf_begin_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x2dba276a __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x2de97acc raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x2e07ef7f __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x2e1bde80 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x2e1da9fb probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2bf81c ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e418cd8 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e5317ec crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x2e590da4 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x2e76f2bf input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x2ea9091d md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ed7d797 sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0x2ef518a3 acpi_dev_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2f037a53 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f64415f unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2f64d9fa inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x2f73d426 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2fa5637c bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x2fa65029 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x2fd8cba9 freeze_wake +EXPORT_SYMBOL_GPL vmlinux 0x2fedd8b4 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x3000b21a acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x3013585c __mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x302f7a45 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x303cb6af ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x304629be regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x304c085e __efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x30796305 pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x30876f22 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x308b733a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x3091b8f8 usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x3095cebe ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x309f5c73 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x30e018b6 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x31281cdb edac_subsys +EXPORT_SYMBOL_GPL vmlinux 0x314a32aa regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x319374ae usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x31a66e43 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x31dcbe1b bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3219745b __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x321bdbb1 compat_get_timeval +EXPORT_SYMBOL_GPL vmlinux 0x321f86e7 list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0x322b2cb8 regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x3237317d ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x3256ca45 gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x327832c7 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x327e7848 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x328995b5 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x329bbbde timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x32ac567e key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32bded08 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32ddd5b6 call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x32e1fce6 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x32fc0463 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x32fd447a monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0x330d1143 apic +EXPORT_SYMBOL_GPL vmlinux 0x3310bf11 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x3318b0f4 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x335112b7 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x33513ea6 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x33655159 xen_pcpu_hotplug_sync +EXPORT_SYMBOL_GPL vmlinux 0x33923915 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x33939504 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x33a4f64f extcon_get_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x33af659e __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x33b13213 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33f7ab15 get_compat_timespec +EXPORT_SYMBOL_GPL vmlinux 0x33fb19ba d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x34041380 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x3465fce6 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x347a9326 palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0x347ca255 uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x349c9c6f cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0x34a147c9 __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x34b7662c invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x34b86160 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x34e1897f devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x34e52e34 cgroup_is_descendant +EXPORT_SYMBOL_GPL vmlinux 0x34ff9880 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x3524b087 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x352650ee gnttab_batch_map +EXPORT_SYMBOL_GPL vmlinux 0x353533e8 thermal_notify_framework +EXPORT_SYMBOL_GPL vmlinux 0x357cdd40 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x357e039a security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x359915ad dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x359fe86a regmap_fields_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x35eb30bc rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0x35f10f43 nfq_ct_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x35f165f1 devm_reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x36075bb5 iommu_group_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x360aea7e regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x3634d767 clk_register +EXPORT_SYMBOL_GPL vmlinux 0x365cc1d0 alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0x36761522 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x36862bd6 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x368a9ed3 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x368f1fea static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x368ff14b fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x3695425e register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x36996dac arizona_dev_exit +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36afe2dc sdhci_pci_o2_probe +EXPORT_SYMBOL_GPL vmlinux 0x36b5497e intel_iommu_enabled +EXPORT_SYMBOL_GPL vmlinux 0x36bb6fa5 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x36bf9c7b dma_buf_vmap +EXPORT_SYMBOL_GPL vmlinux 0x36c41c96 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x36c56a16 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x36c68cff pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x36d8882a ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0x36ee6dcc crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0x36f315d7 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x36f3852d ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x36f63718 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0x36fa083d __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x372c325c __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x372fc030 xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0x3730c360 system_trusted_keyring +EXPORT_SYMBOL_GPL vmlinux 0x37664021 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x3792f7a7 xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0x37ac90df debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x37f1ffbf gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x380c83da xen_swiotlb_sync_sg_for_device +EXPORT_SYMBOL_GPL vmlinux 0x382ebe17 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x38620e38 gnttab_grant_foreign_access_trans_ref +EXPORT_SYMBOL_GPL vmlinux 0x3874fca7 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x387e6995 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x3899ba43 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x38ddceac uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0x38fb1c9a wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x391924c0 md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x391ac514 pinctrl_add_gpio_ranges +EXPORT_SYMBOL_GPL vmlinux 0x39376aca gov_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x393d287d blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x39419b50 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x397e271a crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x39a74adf __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0x39b80674 pinctrl_pm_select_idle_state +EXPORT_SYMBOL_GPL vmlinux 0x39b8ebc4 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x39d6f106 bmp085_detect +EXPORT_SYMBOL_GPL vmlinux 0x39de4976 dma_buf_kunmap +EXPORT_SYMBOL_GPL vmlinux 0x39e41d76 alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0x39fbcc3b da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x3a1636fa bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a34d979 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x3a38dc65 memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x3a3a5a19 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a5974f9 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3a6addc2 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x3a723441 regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0x3aa0c987 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x3aa535ca __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x3aab21d5 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x3ad0e201 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x3ae4aca3 ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x3b304b8a gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x3b434ef9 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x3b4b560a pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0x3b554d04 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3b70afb0 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3bb93d1e sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x3bceb998 subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x3bfcedd5 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x3c1bfbb9 pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0x3c2c2311 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x3c6b2449 devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x3c8424a0 clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3ced314f __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x3cef4392 dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0x3d01c15d __clk_register +EXPORT_SYMBOL_GPL vmlinux 0x3d1ca66a regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0x3d27731b hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d4243d3 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3d5ccbfd usb_acpi_power_manageable +EXPORT_SYMBOL_GPL vmlinux 0x3d5f392d acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3dae6404 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3def6507 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x3e2c767c virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x3e2e543d cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x3e2fa31f wm8997_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3e3897fd xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x3e4fb9f0 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x3e50b701 usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x3e58a212 rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e965eaa xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0x3e971b8d regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x3e9cc393 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x3ea5196d apei_osc_setup +EXPORT_SYMBOL_GPL vmlinux 0x3ea95dad debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x3ec056b9 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x3ed4eda8 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x3edcf21c ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3ee949c1 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3eebcfdd ata_sas_port_async_resume +EXPORT_SYMBOL_GPL vmlinux 0x3ef493ed regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f03987a pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x3f05e41e usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x3f229c4c oops_begin +EXPORT_SYMBOL_GPL vmlinux 0x3f40dc65 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3f92f2c6 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x3fc72d3d __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x3fd0b719 virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0x3fdf0df4 vtime_guest_exit +EXPORT_SYMBOL_GPL vmlinux 0x3ffad772 balloon_mapping_alloc +EXPORT_SYMBOL_GPL vmlinux 0x400a024b acpi_scan_lock_release +EXPORT_SYMBOL_GPL vmlinux 0x400f0c67 bmp085_remove +EXPORT_SYMBOL_GPL vmlinux 0x4013b30c virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0x4017814e cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x40269240 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4045073e platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x4045c494 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x4065d168 pm_print_active_wakeup_sources +EXPORT_SYMBOL_GPL vmlinux 0x40864c24 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x408d3fa5 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x409c8105 blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x40a4ca5b rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x40a8525b crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40d78540 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x40de13b1 virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x41200f8a subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x412fc7c2 md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x4145288a blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0x415f8d31 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x418c5327 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x4190969f efivar_entry_find +EXPORT_SYMBOL_GPL vmlinux 0x41a235ca xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x41daf204 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x41f9d2fe usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x4209ee1d power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x4213a51a efivar_entry_set_safe +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x421dc616 pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x42228164 xenbus_dev_groups +EXPORT_SYMBOL_GPL vmlinux 0x42236030 devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x423914ea dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x424cf412 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x425b811a ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x425e3e9c pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0x427d5c68 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x4295b8a9 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x42bd8f9b regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x42bfcf3d __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x42c1cf9b blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x42e39097 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x42e840f1 ima_file_check +EXPORT_SYMBOL_GPL vmlinux 0x42ec508b relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x42ed085a trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x42f4306f ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x43057cf8 ping_seq_fops +EXPORT_SYMBOL_GPL vmlinux 0x437fbb87 xen_register_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x43928edf wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x43a53735 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x43af39aa extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x43c545c6 xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x43fbca5d sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x441e4555 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x442477f8 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4445b3ca pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x445181fd scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x4483e318 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x448e4a4c flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x44a6d4f3 thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x44ab70e0 pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x44d8f487 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0x44e74b7c blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x450fb522 kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x45339658 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x4535475c save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x4548c644 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0x454c15ae __smp_call_function_single +EXPORT_SYMBOL_GPL vmlinux 0x456143a6 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0x4570cece powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45792b70 da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x459d4547 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x45a340d2 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45e0a4c9 regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x46042ff9 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x460f7531 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x461affc5 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x46434934 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x4644d384 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x466136a7 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x468873ec ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x46e9f34b usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x46f001ac usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x470a036e irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x470fa426 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x4732f795 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x4760e80a __efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x47675949 arizona_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x4767c175 device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x477a6ec6 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x47866eab pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x478c3b40 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47bd394b xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0x47efcd6d __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x4823eff3 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x4828e77b acpi_scan_lock_acquire +EXPORT_SYMBOL_GPL vmlinux 0x48437cff platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x48552ff0 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0x4864bb28 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0x48682db9 perf_guest_get_msrs +EXPORT_SYMBOL_GPL vmlinux 0x487164c3 iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0x48902550 sec_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x489b19c2 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x48c46e3a blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x48fb3e6f fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x490a8df6 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x491648a2 regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0x49854eef fuse_get_req_for_background +EXPORT_SYMBOL_GPL vmlinux 0x498d293a trace_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49925ff7 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x4996ca95 rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0x49a31b3e pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x49e17e8e tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0x49fe0a99 xen_swiotlb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x4a24e355 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4a266e0e crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x4a39e2f9 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x4a3c3cf9 microcode_sanity_check +EXPORT_SYMBOL_GPL vmlinux 0x4a582033 sdhci_pci_o2_probe_slot +EXPORT_SYMBOL_GPL vmlinux 0x4a61ed42 virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0x4a847bca ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0x4a90160e bprintf +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4ad58181 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x4af4d663 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x4affd08b put_compat_timespec +EXPORT_SYMBOL_GPL vmlinux 0x4b114085 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x4b2f1bef disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x4b6b3197 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x4b78c3de extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x4b8e755e dma_buf_mmap +EXPORT_SYMBOL_GPL vmlinux 0x4b9da112 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bf0d6d1 wakeup_source_prepare +EXPORT_SYMBOL_GPL vmlinux 0x4c2a472b __static_cpu_has_safe +EXPORT_SYMBOL_GPL vmlinux 0x4c2e1f24 clk_disable +EXPORT_SYMBOL_GPL vmlinux 0x4c415571 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x4c5d0c6e __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x4c602bf1 __blkg_release_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4c71cbb7 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4ca4c9df clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x4cb6f663 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x4cba480d relay_open +EXPORT_SYMBOL_GPL vmlinux 0x4cc36929 fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0x4ce02788 sdhci_pci_o2_fujin2_pci_init +EXPORT_SYMBOL_GPL vmlinux 0x4d08478d blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0x4d0d575d usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x4d1583a0 dma_buf_put +EXPORT_SYMBOL_GPL vmlinux 0x4d35198a net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x4d4ea12a ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0x4d5cec42 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x4d5e6b89 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x4d674381 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x4d6cefbd acpi_bind_one +EXPORT_SYMBOL_GPL vmlinux 0x4d81ac76 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x4d956862 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x4d9e58e1 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x4dae3085 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x4db171e3 clk_register_mux_table +EXPORT_SYMBOL_GPL vmlinux 0x4dc69536 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4de3e3fc od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x4df4e204 swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x4e0a735e wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e171af6 irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x4e242f5f pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x4e57723d apei_read +EXPORT_SYMBOL_GPL vmlinux 0x4e5de514 devm_regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x4e74e625 gnttab_batch_copy +EXPORT_SYMBOL_GPL vmlinux 0x4ea77428 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x4ec7b8e3 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x4ed7c8af pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f020dee public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x4f165d72 dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x4f245c80 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x4f3706ec ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x4f81d1c9 devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4f8b8e32 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x4f97aaac device_add +EXPORT_SYMBOL_GPL vmlinux 0x4fb34483 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fd5cfb9 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4fe5c796 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x500b6dd7 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x5018c767 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x5021b40e usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x5026585c xen_irq_from_gsi +EXPORT_SYMBOL_GPL vmlinux 0x50347bac synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x5045433c led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x504818bf nl_table +EXPORT_SYMBOL_GPL vmlinux 0x505c72c5 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0x506691f1 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x508c5f5c xen_swiotlb_sync_single_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x509778ff free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x50a0f670 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x50d1f870 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0x50dcf814 acpi_dma_request_slave_chan_by_index +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50e7c105 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x50f1e315 spi_master_resume +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x510f3219 dbs_check_cpu +EXPORT_SYMBOL_GPL vmlinux 0x51142ac2 pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x511dba3b bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x5122770e shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x512b1d19 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x514fa59c sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x516c0e76 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x5191bd3c efivar_work +EXPORT_SYMBOL_GPL vmlinux 0x519baf3e debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x519caf71 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x51a1b162 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x51a8ddb4 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x51acf222 xen_swiotlb_map_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x51e8cb66 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x51eca9eb ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x51f4915b blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL vmlinux 0x521b408e rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x5226406e ref_module +EXPORT_SYMBOL_GPL vmlinux 0x522f28d8 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x522f538b tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x523f5545 cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x525b89d5 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x5272d8bc __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0x52856f2f unregister_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x52969624 devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x52a41251 __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x52c652a1 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x52e9129b da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0x5303b743 nfq_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x5305646e alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x5316d2d7 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x53468613 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x5354693e cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x539f157b pci_xen_swiotlb_init_late +EXPORT_SYMBOL_GPL vmlinux 0x53a76e6e regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x53f2bda9 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x540b5a76 rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0x5410d6f5 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x54202a10 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x54215db5 visitor64 +EXPORT_SYMBOL_GPL vmlinux 0x54381171 arizona_clk32k_disable +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x546a202c pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x54740eb7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x54824f95 uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54dfc875 tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x553ebf56 ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5550029a crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x5575378c sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x5594ce6c spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x55afd255 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x55f1e37e xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0x55fc8d16 virtqueue_is_broken +EXPORT_SYMBOL_GPL vmlinux 0x560f5ae8 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x5654f836 erst_get_record_id_next +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x5672fe82 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x56886b19 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x5692386f gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x569fcf83 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x56a52b72 fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0x56a5cd01 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x56ab2a9b devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x56d353ba rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x56d697ce cpu_up +EXPORT_SYMBOL_GPL vmlinux 0x56da7dc4 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56e7d899 unix_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x5710aa27 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x57231f45 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x57267cc3 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x57520d16 cper_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x576ed1dd inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x578d1743 inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x579ee14f led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x57b0f2e4 iommu_present +EXPORT_SYMBOL_GPL vmlinux 0x57dafbc4 pinctrl_remove_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x57fb701e register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x58413099 ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x584d54cf crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x584fef20 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x585704ab aer_recover_queue +EXPORT_SYMBOL_GPL vmlinux 0x5858e881 dma_buf_fd +EXPORT_SYMBOL_GPL vmlinux 0x58807665 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x5880ff9a alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x589cb225 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x589e4569 syscon_regmap_lookup_by_pdevname +EXPORT_SYMBOL_GPL vmlinux 0x58b8b038 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x58e2a027 list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x59036348 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5923d814 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x592d000b pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x5947abbe max77693_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x594d566d inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x597def2a irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0x59a6e91d clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x59b2adbf input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x59e150e3 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x59e2743e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x59f56e31 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x5a1baf82 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x5a25572d __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a2cd84a dev_get_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x5a441ebd efi_query_variable_store +EXPORT_SYMBOL_GPL vmlinux 0x5a69dd7a devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5aba7abe print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x5abc2511 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x5ac2727f smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x5adfed7d devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5af12068 acpi_dev_get_resources +EXPORT_SYMBOL_GPL vmlinux 0x5afc5fcc dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x5b0963bc ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x5b19a782 efivars_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5b6e93fd rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x5b70c687 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x5ba23574 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x5c0303ec devm_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x5c17d518 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x5c1830af ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x5c3b14e5 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x5c3df161 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x5c54f307 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x5c66e90c efivar_run_worker +EXPORT_SYMBOL_GPL vmlinux 0x5c8966b6 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x5c984fa8 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x5ca93699 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x5cabdced dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5cb3ffaf __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x5cd907e5 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x5cf8a882 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x5d07fb87 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x5d0a29e0 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x5d12e48f input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x5d1c3448 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x5d1db5d8 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d408b5b ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x5d4179a0 user_update +EXPORT_SYMBOL_GPL vmlinux 0x5d48a650 m2p_find_override_pfn +EXPORT_SYMBOL_GPL vmlinux 0x5d5982db ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x5d729a7d rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x5d77952d hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x5d8a5532 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x5d95b9ac simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x5db99521 pwm_set_polarity +EXPORT_SYMBOL_GPL vmlinux 0x5dbcfa4f boot_cpu_physical_apicid +EXPORT_SYMBOL_GPL vmlinux 0x5dd849c0 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x5ddfce2e wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x5e0f8b14 pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x5e136f40 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x5e26554d skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x5e286d67 sec_reg_update +EXPORT_SYMBOL_GPL vmlinux 0x5e302dea sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x5e310614 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x5e51cd74 swiotlb_nr_tbl +EXPORT_SYMBOL_GPL vmlinux 0x5e567d38 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x5e667286 debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x5e7c1291 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x5e7fa941 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x5e8932eb filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x5e922242 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x5eb1b07f regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0x5eca47e6 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x5f170bda print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0x5f1d8974 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f419491 gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x5f6be0e5 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x5f79a98b __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x5f8aafe4 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x5f8e6369 pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x5fa4d6b6 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x5fc27be9 acpi_dev_irq_flags +EXPORT_SYMBOL_GPL vmlinux 0x5fce67cf ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x5fd895a7 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x5fdfa2c1 amd_pmu_enable_virt +EXPORT_SYMBOL_GPL vmlinux 0x5fe26bd6 da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x6002d9da hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x6005b2a3 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x60458ed8 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x6048d9cd tpm_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x60930d37 save_mc_for_early +EXPORT_SYMBOL_GPL vmlinux 0x6094685f wm8997_irq +EXPORT_SYMBOL_GPL vmlinux 0x60984eb8 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60b3c1e8 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x60bcf851 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x60c95350 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x60c95b35 powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x60e53680 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x60f79fe0 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x613fd25d cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x61419f24 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x614ddd8f key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0x61577338 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x6183ff15 sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x6194ffea do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0x61bd18e7 gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0x61c2d44a rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0x61cfa3f6 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x61e3241b key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x620d7f85 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x6212b05b cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x6223d719 alarm_start +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x623803c8 hest_disable +EXPORT_SYMBOL_GPL vmlinux 0x6241f00a efivar_entry_size +EXPORT_SYMBOL_GPL vmlinux 0x6286d9da gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x62c76d1e crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x62cd9b6b vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x62ee7e6e pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x6320ebbd preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x6322bb3c get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0x63568bdc usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x6358882f evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x636da4ba srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x638fe045 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x63b2e7b4 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x63b4a055 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x63b5bec5 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x63e33c3e gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x63f23886 irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0x643f1bbd mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x64851d93 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x649592d6 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x649aff04 dma_buf_unmap_attachment +EXPORT_SYMBOL_GPL vmlinux 0x64b7069e apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0x64c454b9 xen_swiotlb_dma_mapping_error +EXPORT_SYMBOL_GPL vmlinux 0x64fc8c57 irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x6527a231 dbgp_external_startup +EXPORT_SYMBOL_GPL vmlinux 0x652adae2 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x6531309f sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x6535a044 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x65449b43 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x654ee362 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x656970f5 of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x658c8186 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x658ed86c preempt_schedule_context +EXPORT_SYMBOL_GPL vmlinux 0x658f7226 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x65b08baa xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0x65b117f6 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65e1351c vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x65e8a7aa pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x65ff2579 get_matching_microcode +EXPORT_SYMBOL_GPL vmlinux 0x66069728 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662a0c3f x509_get_sig_params +EXPORT_SYMBOL_GPL vmlinux 0x663c16d6 gnttab_grant_foreign_access_subpage_ref +EXPORT_SYMBOL_GPL vmlinux 0x6646aa24 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x666c083b get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x666cf7d1 irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6692c2f3 serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0x66bd8370 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x66d1eb64 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x66d51ea7 pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66f1ebb2 efivar_entry_set +EXPORT_SYMBOL_GPL vmlinux 0x67040936 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x670ed4cb xen_swiotlb_unmap_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x672cbb60 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x672e68ee crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x6739a503 balloon_set_new_target +EXPORT_SYMBOL_GPL vmlinux 0x674e13e1 public_key_destroy +EXPORT_SYMBOL_GPL vmlinux 0x676281f0 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x677230fc skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x6776bd23 regmap_update_bits_check_async +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67dab95d iommu_domain_window_enable +EXPORT_SYMBOL_GPL vmlinux 0x67e96b10 user_match +EXPORT_SYMBOL_GPL vmlinux 0x680a809d of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x681300fb extcon_find_cable_index +EXPORT_SYMBOL_GPL vmlinux 0x68287c68 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x68302214 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x687934e9 gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x688fd7e1 device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x68a1e5a8 pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0x68b76ba5 sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x68c4925c xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x68c89d48 task_xstate_cachep +EXPORT_SYMBOL_GPL vmlinux 0x68cde966 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x6921aa34 compat_put_timeval +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x693b88b5 pwm_can_sleep +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x6972ffc5 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x698f3d75 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x69b5edd4 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a07dc36 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x6a1733eb iommu_group_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6a5a9ab0 acpi_register_gsi +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a67da72 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x6a6cafd2 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x6a71fc5c bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6ab223bc __mmu_notifier_invalidate_range_start +EXPORT_SYMBOL_GPL vmlinux 0x6ab4872c platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x6abc5414 devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6ad2d082 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b51710a spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0x6b5d5831 pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0x6b5e6dc6 ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6b9f9ef4 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x6ba4aa9a usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x6bf1b90d dmi_memdev_name +EXPORT_SYMBOL_GPL vmlinux 0x6c0d0091 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c1b09ab gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x6c21fb61 arizona_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c655913 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6c8a13da ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cd21997 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x6cd4ea62 wm5110_irq +EXPORT_SYMBOL_GPL vmlinux 0x6d060fcd ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0x6d2785b5 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d308eb0 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x6d39f746 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x6d7bd9bb mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x6d81800c ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x6d83e6d3 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x6da8f510 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x6dab189d proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0x6dbdc1c5 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6dcee4ff acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x6df3af5e regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x6df8f4cd pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x6e04a077 usb_bind_phy +EXPORT_SYMBOL_GPL vmlinux 0x6e0f96c3 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x6e1854f1 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x6e2583ce usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x6e3b4507 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x6e43c3eb vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e7231e9 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x6e7943ec iommu_group_id +EXPORT_SYMBOL_GPL vmlinux 0x6e85b00b local_touch_nmi +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6e8bf789 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x6e8fb649 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x6ea98361 ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x6eae92a1 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f2117df usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x6f88ba2d subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x6fa9e2e5 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x6fbf864f dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x701c44c2 blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x701ecdef iommu_domain_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x706691bf xen_swiotlb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70f1838e fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x70f39fbb tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x7103c81a ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7115e301 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x711f6433 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x71329bef dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x714713aa percpu_ida_free +EXPORT_SYMBOL_GPL vmlinux 0x71625765 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71650b9b crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x71663e71 list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0x71669e23 acpi_get_gpiod_by_index +EXPORT_SYMBOL_GPL vmlinux 0x71767c5d inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x7199b4f2 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x71ae02ef tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x71e7f0ce blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x71f9e9b6 pinctrl_force_sleep +EXPORT_SYMBOL_GPL vmlinux 0x72068d42 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x722fcfeb crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x72401fda ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x7240dc1f crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x7246f86f exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x7262daf7 thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72bfc78a xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x72c5a3ab fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x72d25851 posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0x72e8b42d bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x72f11037 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0x72f4acf6 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x72fd0b2a wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x73013896 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x732b4662 wm5110_patch +EXPORT_SYMBOL_GPL vmlinux 0x737bad3b tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x739fbf73 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73c2554f __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x73c63a1c pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x73c832f2 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x73d11875 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73eec22b blk_queue_bypass_start +EXPORT_SYMBOL_GPL vmlinux 0x73f57475 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7414e98e netlink_alloc_skb +EXPORT_SYMBOL_GPL vmlinux 0x7422c95e gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x7432599b acpi_dev_pm_detach +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x74584459 devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x74628570 context_tracking +EXPORT_SYMBOL_GPL vmlinux 0x7464ea38 dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x748d801a pcap_adc_sync +EXPORT_SYMBOL_GPL vmlinux 0x748f9852 rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c08941 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x74c88f52 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x74e437db usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x75133f6e visitor128 +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x75232950 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x7534dedb inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x753e6eae pinctrl_lookup_state +EXPORT_SYMBOL_GPL vmlinux 0x7551d80d ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x755dda50 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x7577f243 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x757b49d2 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0x758a3812 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x758a782e blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x75a192a4 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x75a4a1cf show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x75b0d2b1 wm8400_block_read +EXPORT_SYMBOL_GPL vmlinux 0x75b54839 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x75e0c590 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x75efc340 hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x7600a5b6 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x76147c76 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x76149baf __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7623f57d sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x762d8a24 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x764ad1db iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0x764ff75c regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x765a3f13 devm_regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x768a79ab dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x7692831f transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x76c21517 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x76d07d6e gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x76d95d2e crypto_lookup_aead +EXPORT_SYMBOL_GPL vmlinux 0x76e3eaff regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0x770d6a21 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7729cbdd task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x772fbcaf trace_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x7733bcf0 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x77452de2 wm8400_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x775a6ef5 kvm_read_and_reset_pf_reason +EXPORT_SYMBOL_GPL vmlinux 0x77840f93 smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x778da309 pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x77a24d50 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x77ba789a device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x77d5dd73 btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0x77e81cc0 ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0x77f09519 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x781a6f8c device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x782714e4 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x782adb74 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x784add69 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x784c5af4 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x78706039 pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0x787c882b lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x788601d3 extcon_register_interest +EXPORT_SYMBOL_GPL vmlinux 0x78994e0d serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x78a7d29e driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x78b78285 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x78bd3bc0 dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x78bf07f9 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x78d7e800 dma_buf_end_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x78ea227b acpi_bus_no_hotplug +EXPORT_SYMBOL_GPL vmlinux 0x78f442b9 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x791d0cd3 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7931c317 xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x7961f135 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x797bdbdf crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x7991fd8d crash_vmclear_loaded_vmcss +EXPORT_SYMBOL_GPL vmlinux 0x7995a410 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x799cc695 usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x79b10b1a device_reset +EXPORT_SYMBOL_GPL vmlinux 0x79bbecb9 device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0x79c1f25b debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0x79d75599 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0x79dfe6ec eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x79e1f5bb ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x79e69460 intel_iommu_gfx_mapped +EXPORT_SYMBOL_GPL vmlinux 0x79fb65d4 __online_page_set_limits +EXPORT_SYMBOL_GPL vmlinux 0x7a2aafdb regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x7a2e4b44 ezx_pcap_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7a319404 clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x7a499531 crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0x7a5f2266 netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0x7a660af2 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x7a7f0d63 get_device +EXPORT_SYMBOL_GPL vmlinux 0x7a88a931 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7aa1af1e ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x7aa34d16 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7ab3bd2e debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x7ac15681 xen_unmap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x7ac8e5b0 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7acbd0ca regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b0f8e61 usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b25a440 dma_buf_attach +EXPORT_SYMBOL_GPL vmlinux 0x7b292d19 static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0x7b55c5eb pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x7b72aa6d fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x7b76597f ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x7b8b0278 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x7b90d1a9 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7b90d30a __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x7b92ca85 pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x7bbafcbd ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x7bf7e171 clockevents_unbind +EXPORT_SYMBOL_GPL vmlinux 0x7c09a095 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x7c181747 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x7c227088 clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x7c309fa6 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7c346357 pkey_algo +EXPORT_SYMBOL_GPL vmlinux 0x7c370f7a scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x7c4c55cd thermal_generate_netlink_event +EXPORT_SYMBOL_GPL vmlinux 0x7c5c49e9 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x7c608d57 irq_create_strict_mappings +EXPORT_SYMBOL_GPL vmlinux 0x7c9f3e69 __tracepoint_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x7cb6901f __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x7cc1b7fd max77693_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7cc5b895 usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0x7cc7de1c x509_check_signature +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ce5b92a gpiod_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cf150fb led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7cfab1f5 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x7cfe29c3 pwm_enable +EXPORT_SYMBOL_GPL vmlinux 0x7d1f75f0 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0x7d2c6c1c __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x7d36e534 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7d37494f use_mm +EXPORT_SYMBOL_GPL vmlinux 0x7d397cc7 gpiod_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d43bfc3 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x7d531b02 pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d5ba45a ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dadfc11 extcon_set_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x7db16503 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7e249ab7 xen_swiotlb_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0x7e39a120 pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0x7e530173 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x7e55fc34 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x7e64124a ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e6b137e max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x7e6bc212 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x7e80aa36 cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0x7ea19d5b __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x7ea1a2bc probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x7f0fe786 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x7f15fcec xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0x7f35822a crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x7f506f4b ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0x7f56dcd0 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x7f77a273 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x7f78c790 devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x7f9080e6 need_load_eval +EXPORT_SYMBOL_GPL vmlinux 0x7f9c6be5 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x7fa02cf0 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x7fb7d0a9 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x7fbd1e95 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ffc7453 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x80050436 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x80070ba8 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x80156244 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x802b76c4 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x803161a1 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x80695f66 tcp_fetch_timewait_stamp +EXPORT_SYMBOL_GPL vmlinux 0x806e502f btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80d3927f __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80dd2193 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x80eca4c5 spi_master_suspend +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x8104517b irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x810f2e4e clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x8116b51d crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x8136129a usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x8140842a gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0x814266b6 inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x814817ce ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x8183e57c debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x81c39475 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x81cff13a ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x81dd1f70 devm_usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x81f3fee1 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x81fe5579 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x822f91af tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x82468b74 dev_hard_start_xmit +EXPORT_SYMBOL_GPL vmlinux 0x828da168 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x829530ba acpi_preset_companion +EXPORT_SYMBOL_GPL vmlinux 0x82ac13f9 cgroup_add_cftypes +EXPORT_SYMBOL_GPL vmlinux 0x82c54017 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x82d65313 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82e2b34b clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x82ecf5f2 list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0x8317b479 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0x8318eb66 clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x832724e0 inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0x834616bb sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8346acc3 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x8378ebb1 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x837b7343 unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x83a24db3 acpi_subsys_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x83a921b6 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x83e28e0a blkg_prfill_stat +EXPORT_SYMBOL_GPL vmlinux 0x8407b6cc usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x841ddec7 iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x841f8daf disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x8420bccd cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x84648d8d da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x847487fd blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0x8487125a extcon_get_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x8487a2b6 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x848e61b9 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x84cc6975 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x84ef1542 dma_buf_vunmap +EXPORT_SYMBOL_GPL vmlinux 0x84f6e89e vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x84ff16b7 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x85001a6e regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x850b2770 sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0x85216155 ezx_pcap_read +EXPORT_SYMBOL_GPL vmlinux 0x854e1fe9 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x8563eff5 acpi_processor_get_performance_info +EXPORT_SYMBOL_GPL vmlinux 0x859aea9a xen_set_domain_pte +EXPORT_SYMBOL_GPL vmlinux 0x85b14d33 clk_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x85ba9b1c fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c6185d napi_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85c87a8f sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0x85cb2c45 xen_has_pv_devices +EXPORT_SYMBOL_GPL vmlinux 0x85ce7218 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x85e9c0e2 pinctrl_utils_reserve_map +EXPORT_SYMBOL_GPL vmlinux 0x85fa44ee __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x8612cc9c crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x866b9687 wm8997_aod +EXPORT_SYMBOL_GPL vmlinux 0x867c1c7a swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x869bd85d usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86b14bd5 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x86c41e0f regmap_field_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x86cc863c inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x86dccbf5 spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86f8c910 pcap_set_ts_bits +EXPORT_SYMBOL_GPL vmlinux 0x8702e548 process_srcu +EXPORT_SYMBOL_GPL vmlinux 0x870e16b7 xen_test_irq_shared +EXPORT_SYMBOL_GPL vmlinux 0x872e743b generic_access_phys +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x874bdcf2 rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x8774eb6c pinctrl_utils_add_map_mux +EXPORT_SYMBOL_GPL vmlinux 0x8786546d __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x8787ec6f xen_find_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x8794cd19 btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0x879c9b48 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x87af324c regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8813e1d9 irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x88154b1e ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x883c2740 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x883f51ad vtime_common_account_irq_enter +EXPORT_SYMBOL_GPL vmlinux 0x8849def4 pinctrl_find_and_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x88593181 rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x885c59f8 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x8890cea4 usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x889408a4 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b5647c trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x88ba3f39 rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x88d3132d pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x88f4536e regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x891e89ea tpm_read +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89338baa get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x893b8e0e remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x89485687 iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x89502f0c gnttab_subpage_grants_available +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x895b6348 tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x8977eef8 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x89a02cf2 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x89b68927 irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89e8f823 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x89eff47a usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x8a056da5 virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x8a122a55 xen_unregister_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x8a1ddb91 mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x8a1ed0d9 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x8a277886 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x8a2b14ba wm5110_aod +EXPORT_SYMBOL_GPL vmlinux 0x8a4b8066 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x8a4f1cfc efivar_entry_add +EXPORT_SYMBOL_GPL vmlinux 0x8a5a3d06 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x8a63d36e __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x8a7093f6 pinctrl_force_default +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a7cb9c4 platform_thermal_package_rate_control +EXPORT_SYMBOL_GPL vmlinux 0x8a7d653f regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ad531b7 cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0x8ade4d22 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x8ae574f6 fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0x8aeb92b0 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x8aefc802 iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x8af4a626 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x8af893da fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x8afa4886 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x8afad31b usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x8b031794 iommu_domain_set_attr +EXPORT_SYMBOL_GPL vmlinux 0x8b04668e bind_interdomain_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x8b26e597 crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0x8b66f9e0 xen_platform_pci_unplug +EXPORT_SYMBOL_GPL vmlinux 0x8b80c7ae swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0x8b8d228a tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x8b9200fd lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x8b942a5e usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x8bbbe7ce regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x8bf535ec xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c0ccb96 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x8c2a6d17 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x8c73b7e8 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x8c7736ad xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8ca27ae6 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x8cbd828a regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x8ccbc10b set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0x8cea765f memalloc_socks +EXPORT_SYMBOL_GPL vmlinux 0x8d22bb58 iommu_group_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8d36c088 look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0x8d3cf8d9 uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x8d4bc9e2 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8d4cfe6e iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x8d522714 __rcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x8d65551a dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0x8d686204 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x8d69cb79 dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x8da1e5af usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x8de9b12c regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x8e1b19f0 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x8e5a166f irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x8e7cd594 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x8e8cb40d xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0x8e949b28 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x8e98bb0f __remove_pages +EXPORT_SYMBOL_GPL vmlinux 0x8e9c7933 gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x8edfb574 injectm +EXPORT_SYMBOL_GPL vmlinux 0x8ee15b05 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x8ee15b9d ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x8f190916 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x8f1b0019 cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0x8f2f2689 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x8f695745 xenbus_dev_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f738a27 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x8f8a365c ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x8f902a2c gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x8fa631e4 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x8fa86509 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x8fafa89a __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x8fb17f84 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x8feee4e5 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x8ff705c6 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x9003aa50 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x90093a85 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x90228869 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90705b7f syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x908235bf fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x908267e2 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90c66b90 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x90c96150 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x90ce41f0 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x90ce4538 dma_buf_kmap +EXPORT_SYMBOL_GPL vmlinux 0x90d02905 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x90dc29df aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x90de0452 platform_thermal_package_notify +EXPORT_SYMBOL_GPL vmlinux 0x90df4cc3 percpu_ida_alloc +EXPORT_SYMBOL_GPL vmlinux 0x90e3b3ae rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x90e7c388 regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0x90ecc36d usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x91286982 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x91295ace blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x9133a1b2 pinctrl_select_state +EXPORT_SYMBOL_GPL vmlinux 0x91550301 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x915ccfdb dma_buf_kmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x916abcd9 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x9186625d PageHeadHuge +EXPORT_SYMBOL_GPL vmlinux 0x9189cc70 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x9194b683 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x91a04c73 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x91ac78b2 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x91c6e5b0 pcap_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x91dc3c3a kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x91e20a8e fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x920b37ee xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x920cc389 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x920d23ee rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x922ef1f4 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x923cfb30 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x923f9ebd shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x924ac7a9 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x925e53d1 usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0x92688ef0 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x9269b857 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x9274631d iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0x927ee3f9 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x9285e606 __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x929d9c92 skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x92a42c7d efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0x92b150ab tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x92bc1d90 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92d8fac5 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x92db8f68 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x92e6bb5f pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x9306d496 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x9312d80e evtchn_put +EXPORT_SYMBOL_GPL vmlinux 0x9324e78e acpi_dev_resource_memory +EXPORT_SYMBOL_GPL vmlinux 0x9331b8fa blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9360e5a0 xen_swiotlb_set_dma_mask +EXPORT_SYMBOL_GPL vmlinux 0x936fad15 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x9375a06d pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0x9398bb9d xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x93abb1c6 btree_init +EXPORT_SYMBOL_GPL vmlinux 0x93b7682b blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x942a7a6b wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x9433da54 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x943cad49 sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x9454c675 acpi_kobj +EXPORT_SYMBOL_GPL vmlinux 0x945e8c2e vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x949f7342 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x94a66b2f bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94c3f9dc register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x950ba93a ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x9522f3f3 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x95462543 ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x95d1856b scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x95df65d0 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0x95ee58f5 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x961266fd default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x961ee1ff iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x964add15 xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x964d5c39 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x964d6550 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96997d11 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x96a22790 vmcore_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x96ad66f9 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x96b709fa regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x96e1bc42 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x96e71ae8 regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x96f413d0 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x9730c462 gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9731e33e tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x97410abb lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0x975583fd da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x976871f8 arizona_clk32k_enable +EXPORT_SYMBOL_GPL vmlinux 0x97691b6a regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x976ec3c5 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x976f0556 regmap_update_bits_check +EXPORT_SYMBOL_GPL vmlinux 0x97747504 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x97858440 restore_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0x9787f51f iommu_attach_group +EXPORT_SYMBOL_GPL vmlinux 0x978a61d7 cm_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x97c539a4 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x97d880e6 pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x97e41f34 pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0x980c1631 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x9818a2cc tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x98403f48 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x984b83af pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9874c1d8 __percpu_ida_init +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x987fc1c9 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x988c42d8 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x98cf2e9e irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x98fa1e20 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x98fa5e58 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x99352dda pwm_config +EXPORT_SYMBOL_GPL vmlinux 0x995ae983 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9973add9 __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x9974bea9 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x9999bfab pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x99dff43d rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x99e204cf ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x99e28f10 __tracepoint_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a89dbf7 lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x9a9275b2 devm_acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x9a950543 regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0x9a9c87d4 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x9ab3e76a regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9aca444b get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x9adf7329 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x9ae6a57c rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9ae7cd32 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9b6a7412 idle_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9b8d9503 hv_register_vmbus_handler +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba2bb2b gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x9babb6bd thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0x9bd72b78 apei_write +EXPORT_SYMBOL_GPL vmlinux 0x9be13cac xen_swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x9be3d271 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x9be7f16a cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9c01d5ad usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x9c050ccf device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x9c2de449 memory_add_physaddr_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x9c2e4b66 acpi_unregister_gsi +EXPORT_SYMBOL_GPL vmlinux 0x9cc4f70a register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ce96347 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x9cf32ea7 ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x9d038895 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d138533 percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d4eb643 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x9d73712e ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x9d9e155d pv_info +EXPORT_SYMBOL_GPL vmlinux 0x9dab3dc5 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x9daec1dc dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x9de08d8e sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x9e12bfec ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x9e1b6139 sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x9e2f1f78 kobj_completion_init +EXPORT_SYMBOL_GPL vmlinux 0x9e39b10d ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0x9e3d7eba md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x9e548f6e blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x9e59dc51 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x9e614cff blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x9e6cb5d9 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9e84e63a ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x9ecfb2e0 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x9ed3143c leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9f0664bf dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x9f1d9c5b usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x9f56639a efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x9f6e8806 extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x9f7c7b36 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x9f7edd68 pinctrl_pm_select_sleep_state +EXPORT_SYMBOL_GPL vmlinux 0x9f83fc42 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x9f9fe5d6 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x9fff9f7e get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xa0117590 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xa01df99a bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0xa038e761 percpu_ida_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa0557f36 extcon_unregister_interest +EXPORT_SYMBOL_GPL vmlinux 0xa05d3e70 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xa06c5891 tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0xa08449a5 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0xa08e994e crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0c777f5 debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0xa0cbc1a5 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xa0d5b41f devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa0dc3c53 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xa107a6ae ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xa10e39c0 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xa11216be xen_store_domain_type +EXPORT_SYMBOL_GPL vmlinux 0xa11c7abd pinctrl_dev_get_devname +EXPORT_SYMBOL_GPL vmlinux 0xa121014f vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xa12d929d desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0xa1342d44 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xa13b86ef __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0xa1509ea8 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xa156a1f2 erst_get_record_id_end +EXPORT_SYMBOL_GPL vmlinux 0xa1f79553 xen_create_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xa21b93a3 da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xa2282a88 pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xa22adf2d debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xa23437fe stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xa2569820 acpi_subsys_prepare +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa26f1b9d cgroup_taskset_cur_css +EXPORT_SYMBOL_GPL vmlinux 0xa2968e30 tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0xa2997fdd pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xa2b9c993 clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0xa2cd4c4e blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0xa2e30a4a ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0xa33865b4 usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0xa3438880 dma_buf_kunmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xa3477c32 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0xa34df22c regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa3685d7d wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa389a49a profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0xa3c14bee rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xa3c48fe3 __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xa3c999a4 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa41ca7cb devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa452f2a4 xen_pirq_from_irq +EXPORT_SYMBOL_GPL vmlinux 0xa466de38 acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa495ee48 da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0xa49acd8a devm_regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa4a99284 xen_swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0xa4b24397 ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0xa4cebb7c devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xa4d5cd66 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xa4dea0fa crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xa5189d6d ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa53663bd console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xa53cbb5b ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xa54f75c8 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xa56ca855 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xa57360c1 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xa5807874 device_store_int +EXPORT_SYMBOL_GPL vmlinux 0xa58b4db4 da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0xa59e01ec sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa60ce443 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0xa617dd7b __tracepoint_map +EXPORT_SYMBOL_GPL vmlinux 0xa61de15c kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xa625110d kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0xa62892c6 efivar_sysfs_list +EXPORT_SYMBOL_GPL vmlinux 0xa62d180d tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0xa64a404a __class_create +EXPORT_SYMBOL_GPL vmlinux 0xa66438e8 erst_read +EXPORT_SYMBOL_GPL vmlinux 0xa67ab678 device_register +EXPORT_SYMBOL_GPL vmlinux 0xa6a0a273 max77693_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa6b21ef2 dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0xa6c7e2af acpi_dev_pm_attach +EXPORT_SYMBOL_GPL vmlinux 0xa6cbd33b handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xa6e10638 led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa6e976e7 register_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa6ed085e blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xa7108a73 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xa71441c5 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xa7195360 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xa723148d key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0xa724257f init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xa739cda6 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xa7526efc tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xa75312bc call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0xa753a13a regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xa75811d0 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xa75b2fd4 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xa76693ec shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xa7892d51 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0xa7909aa0 efivars_register +EXPORT_SYMBOL_GPL vmlinux 0xa7cbd35a sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xa7d590af iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xa7e70901 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa801b359 efivar_entry_iter_begin +EXPORT_SYMBOL_GPL vmlinux 0xa809c82e hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa87912d1 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa8baab42 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xa8ca2a79 extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa8d9e707 acpiphp_unregister_attention +EXPORT_SYMBOL_GPL vmlinux 0xa8e27a98 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xa8ed901e spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0xa8f255d9 gpiochip_remove_pin_ranges +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa9248428 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xa925e478 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0xa92df4ad watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0xa980af16 RSA_public_key_algorithm +EXPORT_SYMBOL_GPL vmlinux 0xa9a6ccb1 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xa9a82042 gnttab_trans_grants_available +EXPORT_SYMBOL_GPL vmlinux 0xa9d39048 dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0xa9d4938d sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xa9e18049 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9fc3f54 gnttab_grant_foreign_access_trans +EXPORT_SYMBOL_GPL vmlinux 0xa9fcf390 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xaa268992 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xaa26c88a klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xaa3dc763 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xaa65d59a ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xaa774940 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xaa9f0775 rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaaaa51cc dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab0d5850 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0xab12ce74 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0xab1c22b7 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0xab348397 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xab365480 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xab6a3a82 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab97912d dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0xaba04e1f xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0xabbd7f89 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xabc2bde3 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xabe4dd4b fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0xac2c4279 unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xac2d271b __netpoll_free_async +EXPORT_SYMBOL_GPL vmlinux 0xac62c3fe devm_acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xac7144c4 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0xac9ce195 kvm_async_pf_task_wait +EXPORT_SYMBOL_GPL vmlinux 0xacaebe00 kobj_completion_del_and_wait +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacbed70e class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xace206b8 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xace8b426 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xacee5f3e edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0xad039c54 mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xad1258a2 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xad1408a5 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xad221a0f list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0xad376749 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0xad8d8ab0 xen_physdev_op_compat +EXPORT_SYMBOL_GPL vmlinux 0xad9d6073 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xaddd3724 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xadedc3de rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae0d7853 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xae1dffa6 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xae3b1358 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xae4a3532 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae6eaf93 hwpoison_filter_dev_minor +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae7c5411 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0xae810551 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xae905211 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xaea50e2a tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xaea75aae irq_create_direct_mapping +EXPORT_SYMBOL_GPL vmlinux 0xaeb7b6b4 lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xaed0e19b ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0xaef302b6 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xaf0e321a tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0xaf1414dc pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0xaf240d9a ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xaf2be4f9 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xaf37f2ce crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xaf401aff irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0xaf4facc2 devres_find +EXPORT_SYMBOL_GPL vmlinux 0xaf699fe5 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xaf731735 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xaf8035ec acpi_subsys_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xafbd75cf crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xafcf99e6 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xaffeef4d device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb00da47b spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xb017f6e6 blkg_lookup_create +EXPORT_SYMBOL_GPL vmlinux 0xb023a593 pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0xb02ac411 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb0420b9e tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xb04d2937 rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0xb0756190 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0xb078e931 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xb0ac8258 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xb0b84d28 apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0c96774 regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xb0d1656c gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0xb1082ecf serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb16d0657 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0xb172ffac efivars_sysfs_init +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb18e6715 xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0xb191d405 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0xb1a7e3f6 clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1b30ad2 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0xb1bed25d dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0xb1bedeb7 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb1c0c1c2 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb1e2b557 rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb24c7239 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xb250b1a8 acpi_subsys_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb26461dc pinctrl_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0xb26a03f2 arizona_dev_init +EXPORT_SYMBOL_GPL vmlinux 0xb26c8200 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xb29d298c usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xb2bec55a raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xb2cc7cf6 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb2e4782d gpio_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb2e9afb9 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xb2ebc887 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xb2ed1d18 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb3263208 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xb32a82f2 pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0xb34594d7 rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0xb347bb2c work_busy +EXPORT_SYMBOL_GPL vmlinux 0xb3585ca5 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xb376ec76 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xb379ae96 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xb383c4e3 clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0xb387279d __add_pages +EXPORT_SYMBOL_GPL vmlinux 0xb3c4ce4a pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0xb3f08766 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0xb40275be wm5102_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb42e9897 usb_anchor_suspend_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xb431be9f sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0xb4578d6f hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb457fcb9 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xb4759adc stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xb48aa0b9 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb4b3fc65 tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb4b5b387 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4be30ab acpi_dev_resume_early +EXPORT_SYMBOL_GPL vmlinux 0xb4d44fa5 pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0xb4d4df23 ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb4f0967b mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb5441fb4 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xb54d2c89 acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0xb55459a7 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xb56146e3 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xb57a7c86 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xb57fddbc regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0xb581e1df regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb59620d8 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0xb5a0e11e lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0xb5cb8145 hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xb5cf5691 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0xb5edea8a da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb6335aef devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xb644a766 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xb66421b2 acpi_str_to_uuid +EXPORT_SYMBOL_GPL vmlinux 0xb669df19 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xb67237b3 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xb67b2219 cm_suspend_again +EXPORT_SYMBOL_GPL vmlinux 0xb67b9a9c sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6c5007b crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0xb6c635af wm5110_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb6f5f69b pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xb709e339 efivar_validate +EXPORT_SYMBOL_GPL vmlinux 0xb712af05 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb71e30d6 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb732ce56 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xb73fa5e1 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xb7517b9d locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7ebc0d2 btree_merge +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb7fdd68d __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xb8374170 devm_spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xb872ddf9 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0xb874cce8 sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xb8875e21 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xb8895625 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xb88d81f0 usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xb8a32f17 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xb8a9fc89 netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0xb8b2b1f7 mce_register_decode_chain +EXPORT_SYMBOL_GPL vmlinux 0xb8b5578b sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xb8b717ee rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xb902ef48 spi_async +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb90f86cc regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xb91b730f key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0xb91eaa95 acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xb9288aa8 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xb93bd0d1 list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9bba2ec xen_pci_frontend +EXPORT_SYMBOL_GPL vmlinux 0xb9c0cfb3 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9d7da8c pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xba1d772d fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0xba87223f extcon_update_state +EXPORT_SYMBOL_GPL vmlinux 0xba92f9ff regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0xbac89516 rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0xbad68645 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xbad82956 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xbae61801 gpiochip_add_pingroup_range +EXPORT_SYMBOL_GPL vmlinux 0xbaf8b802 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb128381 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xbb39d7c7 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xbb77a214 dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0xbbb38239 btree_last +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbcab80d cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xbbd08ab0 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xbbd4f657 xen_pcpu_id +EXPORT_SYMBOL_GPL vmlinux 0xbbf8db07 gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0xbbfad018 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0xbc060f97 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xbc18bfac mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xbc23da61 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xbc2b2213 device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xbc47fd49 __tracepoint_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0xbc4d57e7 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xbc50b6bd dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xbc789846 devm_pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0xbc9a8442 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xbc9b4c58 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xbcac6160 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbcb381a7 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbcdd5b99 iommu_group_set_name +EXPORT_SYMBOL_GPL vmlinux 0xbcdec29a usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xbd168df1 cgroup_taskset_first +EXPORT_SYMBOL_GPL vmlinux 0xbd1addd9 acpi_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0xbd1b2aae register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xbd22e2a1 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd5aac0b inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbd5cb8b9 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbd85703a ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0xbd9bbeeb pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0xbdaf5686 get_compat_timeval +EXPORT_SYMBOL_GPL vmlinux 0xbdb14a59 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xbdca4add pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse +EXPORT_SYMBOL_GPL vmlinux 0xbddb0f95 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xbddcaf2d pci_restore_ats_state +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe1bd478 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xbe477e2d usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0xbe518fc5 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xbe5d0996 idle_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe7e7783 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xbe7ecf1e scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xbe7ef4cf tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xbe7f0616 dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0xbe9d87f8 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xbe9e8a8d cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0xbea5ff1e static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0xbed20d9a __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0xbee6d6aa bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0xbeee5630 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf43994d crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xbf771150 ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0xbf82e6af synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xbf8b9cc5 ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xbf9d34e2 serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xbfc37e60 pin_is_valid +EXPORT_SYMBOL_GPL vmlinux 0xbfc42e32 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xbfe99463 ping_proc_register +EXPORT_SYMBOL_GPL vmlinux 0xc003d091 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xc03d4b05 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0xc05e0950 thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc0900fcf acpi_os_get_iomem +EXPORT_SYMBOL_GPL vmlinux 0xc098cd4d pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0xc0b0e6ec btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0cab6f4 xen_xenbus_fops +EXPORT_SYMBOL_GPL vmlinux 0xc0cdb840 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xc0d01bc0 percpu_ref_cancel_init +EXPORT_SYMBOL_GPL vmlinux 0xc0d26387 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc0e176e6 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0xc1051584 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xc11248f6 perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0xc113e4bf pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc11b45c6 gpiod_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc14c2824 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0xc164642e xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc17d852d hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xc17da41e i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0xc192c113 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xc1c0fcf6 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc1c4b774 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0xc1dc0d5d acpi_find_child +EXPORT_SYMBOL_GPL vmlinux 0xc1f81642 devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2e950aa fsnotify +EXPORT_SYMBOL_GPL vmlinux 0xc2f15c13 pwm_free +EXPORT_SYMBOL_GPL vmlinux 0xc3083057 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc37763fc dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xc381104e regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc38c0e90 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xc38c6f72 pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0xc39a3d45 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xc39c8b7c devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xc3a987bd ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0xc3b398a1 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xc3cd0178 acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0xc3cf82e6 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xc3f1950e wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xc3f62272 split_page +EXPORT_SYMBOL_GPL vmlinux 0xc407a1d4 gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0xc4101003 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xc4131d9d rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc4432f3f debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0xc444eda3 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0xc447dd93 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc49538ab find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xc4975851 percpu_ida_free_tags +EXPORT_SYMBOL_GPL vmlinux 0xc4b6ba88 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xc4c0e1db ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xc4da6b2b __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xc503456a ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xc50cf25b bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xc52d058d put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc54f3a2f crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xc567cc83 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc5c98b21 usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0xc5dc7b85 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc61811bd __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xc63a1109 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xc65753b6 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc667061f pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xc66b77b1 iommu_group_set_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xc690866c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6aa25f2 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xc6d7ad42 wakeup_source_drop +EXPORT_SYMBOL_GPL vmlinux 0xc6e25e99 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xc6e6c5db ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xc6ee6e1b ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xc6f5beec unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0xc7002ac4 evtchn_make_refcounted +EXPORT_SYMBOL_GPL vmlinux 0xc70dcbf8 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc7309ea7 ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc7a02561 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7a3ec55 skb_gso_transport_seglen +EXPORT_SYMBOL_GPL vmlinux 0xc7a99f59 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xc7c397cf driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xc7c6391c mpi_set_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc7e39bca ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc80f4466 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc8254d9b usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0xc83216a3 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xc8480287 efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0xc85ad4a5 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc88efc67 iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0xc899c0f2 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8ba8303 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0xc8e931d6 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc93a68b7 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xc945aaac tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xc9542bdc usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9641b48 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0xc966aa9c transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xc97d1140 cpufreq_cooling_get_level +EXPORT_SYMBOL_GPL vmlinux 0xc9807300 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0xc99cd730 pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xc9c3f176 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xc9d367f9 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xc9d957b2 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca67266a watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca99789d class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xcaa71fd8 lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0xcaaa46c0 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcac01bde da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xcad13d1f pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcad23ba5 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0xcad79380 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xcaea56c0 __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0xcaeb52ab register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xcaf3545d __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xcb09de12 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xcb15eee9 sdhci_pci_get_data +EXPORT_SYMBOL_GPL vmlinux 0xcb469d2b ddebug_add_module +EXPORT_SYMBOL_GPL vmlinux 0xcb614b77 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xcb96bc85 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xcb9b162e clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0xcbb15961 tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0xcbe0f9e3 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xcbe9c2ee regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xcbec1111 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbf68eb7 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0xcc015125 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc2eda83 get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0xcc46dc8d wm8997_patch +EXPORT_SYMBOL_GPL vmlinux 0xcc474a25 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc85fcb6 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0xcc9595d8 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xcca5971e verify_signature +EXPORT_SYMBOL_GPL vmlinux 0xcca91a0d fat_scan +EXPORT_SYMBOL_GPL vmlinux 0xccac45b6 acpi_subsys_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0xccb61ece fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccea4e34 perf_get_x86_pmu_capability +EXPORT_SYMBOL_GPL vmlinux 0xcceabd62 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0xcceb466f crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xccedb750 regmap_fields_write +EXPORT_SYMBOL_GPL vmlinux 0xcd331e18 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xcd59eb27 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0xcd7bb4bd devres_get +EXPORT_SYMBOL_GPL vmlinux 0xcd8d85b5 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcd9750c4 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xcd9c4061 usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdf555ea usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xce0b9b59 max77693_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xce46e140 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xce4eb19e ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0xce6e58d9 regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0xce75b10f rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0xce88c8a1 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xce97d129 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0xce9b9407 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xceb1f126 mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xcee71c88 css_next_descendant_post +EXPORT_SYMBOL_GPL vmlinux 0xcef1dd0e perf_check_microcode +EXPORT_SYMBOL_GPL vmlinux 0xcf54ea93 async_unregister_domain +EXPORT_SYMBOL_GPL vmlinux 0xcfa39eca __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcfc62f27 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfde5862 __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd029f7c9 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd0659959 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0d51cfe relay_close +EXPORT_SYMBOL_GPL vmlinux 0xd10630e2 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xd107213b scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xd11f0a08 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xd14bc4d9 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd15c217e irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1895996 cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0xd1958cc9 pinctrl_utils_add_config +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1bb9b40 rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0xd1f95933 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xd206bacf regmap_field_write +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd22844f5 rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0xd258217d clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2af6cb6 device_del +EXPORT_SYMBOL_GPL vmlinux 0xd2afe2b2 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2edec3e __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xd30e456c scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xd316c223 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd3315137 ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0xd33e02b8 pinctrl_pm_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0xd34d13e2 devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xd3a9bdbf pinctrl_dev_get_name +EXPORT_SYMBOL_GPL vmlinux 0xd3b80739 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xd3b86b07 reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xd3e4fed6 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0xd3f569e0 of_reset_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd40d7e8e gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0xd426dbc4 erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xd432d378 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0xd4345aa9 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xd43b89a1 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd480466b acpi_dma_request_slave_chan_by_name +EXPORT_SYMBOL_GPL vmlinux 0xd49cf80e tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xd4a94b77 x86_hyper_kvm +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4c180ab simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xd4cad45e clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xd4d7370c hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0xd4d9f0f2 usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xd4fccd51 tpm_write +EXPORT_SYMBOL_GPL vmlinux 0xd502fd75 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xd52b3710 __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xd545ab91 alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0xd5518212 rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0xd551e668 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xd555c36f stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0xd55ad93b iommu_group_get_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xd56471b9 blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0xd5674d82 cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd58c8159 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0xd5b338c7 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5c03489 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0xd5c36c40 __tracepoint_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0xd5f21745 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xd6011bf5 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xd602d546 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xd66a8f98 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd67c0216 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xd68dd078 ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0xd6934469 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd6ac0511 rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0xd6afb835 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0xd6b87ae3 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xd6d612fe max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xd6ecbed8 md_run +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd7399d2a efivar_entry_iter_end +EXPORT_SYMBOL_GPL vmlinux 0xd745aeff __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xd7636bc4 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd77c48c1 pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0xd799d1d6 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xd7a0c2b0 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0xd7d380ae ping_proc_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7e662ef __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0xd814fa42 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd82a634a m2p_remove_override +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd85c18fd sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0xd86db286 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd87fc0a0 usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0xd8a3fb92 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xd8bae80e fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0xd8d466ec ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xd901a218 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xd90e6f49 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xd919806a amd_cache_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xd91dcec5 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xd93acbce acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xd942d353 ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0xd947734f reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd956ed9b rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xd96a2de6 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xd980deba usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xd986e379 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xd9a34035 __clk_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xd9e6e59f ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0xd9e76a37 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xd9f320c0 ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0xd9ffe0d3 regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0xda1dcdec virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0xda354381 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xda44cb37 setup_charger_manager +EXPORT_SYMBOL_GPL vmlinux 0xda774512 ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdab50ae7 fpu_finit +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdafb5ab6 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb2a4db6 devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0xdb50a8bd rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0xdb5d34e0 rcu_batches_completed_preempt +EXPORT_SYMBOL_GPL vmlinux 0xdb78a97c pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdb8e9238 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xdbd0d679 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xdbd3e54b dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0xdbdb3d09 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc0c0ce8 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc1e15f1 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xdc2b2322 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc32d7de sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xdc5c2aeb acpi_match_device +EXPORT_SYMBOL_GPL vmlinux 0xdc6699cb acpi_dev_free_resource_list +EXPORT_SYMBOL_GPL vmlinux 0xdc7814ce __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc93700b ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9da7d6 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdcc0fec3 sec_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xdcd60f84 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xdce542c5 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0xdd01a806 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xdd03e62d inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd391eff profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd4c04f8 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xdd6618ba btree_remove +EXPORT_SYMBOL_GPL vmlinux 0xdd710694 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xdd794d33 phys_wc_to_mtrr_index +EXPORT_SYMBOL_GPL vmlinux 0xdd94a442 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xdd96f283 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xdd9f36db ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xdda319ed cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xddb90d68 usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xdde1ad1f __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xde01fcc0 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0xde2d18bc regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xde2d9278 perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0xde340822 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0xde38548c crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xde390ebf con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0xde474450 usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xde4e19ba klist_next +EXPORT_SYMBOL_GPL vmlinux 0xde801336 cpufreq_governor_dbs +EXPORT_SYMBOL_GPL vmlinux 0xde95bf23 rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xdea13d34 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf1882af dbgp_reset_prep +EXPORT_SYMBOL_GPL vmlinux 0xdf221e72 regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0xdf498115 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0xdf60cca5 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xdf66ca81 ucode_cpu_info +EXPORT_SYMBOL_GPL vmlinux 0xdf8d344e ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xdf8e3dc1 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xdf97b80c rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xdfa92a38 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0xdfa968da regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xdfd94b8e md_stop +EXPORT_SYMBOL_GPL vmlinux 0xdfdc8ff6 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xdfdf9c10 __tracepoint_unmap +EXPORT_SYMBOL_GPL vmlinux 0xdfea621e devm_pwm_put +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe0528bb3 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xe06d848e platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe0a7f55a regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0d5f921 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe0e05214 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xe0f2f1eb class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xe0f58818 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xe0fb4fee tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xe0fb85c2 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0xe0fd3c5c vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0xe10cd6ad erst_get_record_id_begin +EXPORT_SYMBOL_GPL vmlinux 0xe1312309 device_create +EXPORT_SYMBOL_GPL vmlinux 0xe16b0d30 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xe1775ee7 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0xe1835868 devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe1bd6c99 rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0xe1beca02 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xe1c32794 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0xe2052d90 xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0xe208a944 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xe234e507 pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0xe26e46f0 acpi_dev_resource_ext_address_space +EXPORT_SYMBOL_GPL vmlinux 0xe270aab5 cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0xe27507d3 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2e7840d regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe316d5d2 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xe34688d0 iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0xe3766d5a usb_string +EXPORT_SYMBOL_GPL vmlinux 0xe3778475 regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe3964d59 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0xe3a274d2 smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0xe3bc7fd4 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xe3ca0c52 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe3d2b024 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe3d3c8ed regulator_can_change_voltage +EXPORT_SYMBOL_GPL vmlinux 0xe40b4268 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0xe4149b05 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xe41534ce bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xe416bca0 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe440d788 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0xe47774a0 put_pid +EXPORT_SYMBOL_GPL vmlinux 0xe48ab701 gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0xe48ac4b0 pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0xe491e5a3 regmap_update_bits_async +EXPORT_SYMBOL_GPL vmlinux 0xe4b8681d spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0xe4c4b28f gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xe4c70495 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xe4d259ca acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xe4e68bc8 apei_map_generic_address +EXPORT_SYMBOL_GPL vmlinux 0xe52ae762 __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0xe534edff udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0xe5442661 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0xe5443394 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xe57e4829 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xe57f6c91 sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe5a6b60c pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xe5d94526 rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xe5e888dd ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0xe60154db usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xe61c77e7 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xe625dae7 tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0xe64ad8ea unregister_nmi_handler +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6602e9f perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xe668540e sysfs_get_dirent_ns +EXPORT_SYMBOL_GPL vmlinux 0xe676fd76 tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0xe69bb726 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xe6b89c3d mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe6c68334 ddebug_remove_module +EXPORT_SYMBOL_GPL vmlinux 0xe6c8b53f usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xe6d33b59 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe71beb3e mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe75d6006 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe78322d9 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xe7f3608a hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe8386f1e pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe86e140d ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0xe8830a64 user_read +EXPORT_SYMBOL_GPL vmlinux 0xe89738bc tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0xe89bd243 ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xe8c53c60 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xe8e33272 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xe9240c1d tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0xe92d6fc0 iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0xe92ef69d devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe94b264f stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xe96df9a9 efivars_kobject +EXPORT_SYMBOL_GPL vmlinux 0xe98670a4 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xe98d6140 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xe9b2e53d put_device +EXPORT_SYMBOL_GPL vmlinux 0xe9c59790 led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0xe9ce931a kvm_para_available +EXPORT_SYMBOL_GPL vmlinux 0xe9d0f8a0 iommu_domain_window_disable +EXPORT_SYMBOL_GPL vmlinux 0xe9d1b7cf irq_to_pcap +EXPORT_SYMBOL_GPL vmlinux 0xe9dcf7f3 clk_register_divider +EXPORT_SYMBOL_GPL vmlinux 0xe9de842c bmp085_probe +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea1c3553 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0xea1f1352 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea628c20 bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0xea63b8e2 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xea65fbc4 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0xea72d8a7 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0xea7af6ea md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0xea980563 gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0xea987f82 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xeaa3e50e tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0xeaa69fef balloon_devinfo_alloc +EXPORT_SYMBOL_GPL vmlinux 0xeacffdd8 usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xead0ff70 pinctrl_utils_add_map_configs +EXPORT_SYMBOL_GPL vmlinux 0xeada76ad shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0xeadf816e klist_init +EXPORT_SYMBOL_GPL vmlinux 0xeae4d2ca ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0xeb1c3628 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xeb2798f7 xen_destroy_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xeb28ec15 serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0xeb370805 __apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xeb80e1f4 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xeb833c22 xen_has_pv_disk_devices +EXPORT_SYMBOL_GPL vmlinux 0xeb910a0f ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xeba745e1 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0xebcb1855 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xebd2a3f0 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xebd6198e irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0xebd964e5 regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xebec57c4 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xebf7aa91 devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec2dffc6 task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xec3c98d1 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0xec413234 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xec4784a1 usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0xec5a394a pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0xec631f34 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0xec72aa4a uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xec76ab9f rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0xec785f15 alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0xec848474 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0xec8636bc rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xec8b0415 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xec956c68 devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0xeca2d94e ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0xecad38f8 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xece48345 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0xece4eb99 regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xecedd490 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xed14c4f6 pci_bus_sem +EXPORT_SYMBOL_GPL vmlinux 0xed297597 kobj_completion_release +EXPORT_SYMBOL_GPL vmlinux 0xed404058 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xed67125b fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xed7d5f98 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedcb5670 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xedd49930 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xede4180a sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xedef1e89 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0xee0301db ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xee04f784 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xee13e697 set_personality_ia32 +EXPORT_SYMBOL_GPL vmlinux 0xee18436f netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0xee45139e device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xee4a389e dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xee6b71c4 syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0xeeae7416 tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0xeefa9b68 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xef1c04fe device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0xef1e859c sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef20a58e tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0xef4b4838 rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef782b88 gnttab_grant_foreign_access_subpage +EXPORT_SYMBOL_GPL vmlinux 0xef8c7850 pcap_adc_async +EXPORT_SYMBOL_GPL vmlinux 0xef8f3c52 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xef960891 rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xef9f35ff device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xefa54a9d atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xefdbd752 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0xeff3430f bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0xeffa6b8f __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xeffed5ca ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xf00316bc tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0xf0236dc7 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xf024075e devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xf03459bd unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xf054b9ff __netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf07bcb51 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xf086a4e7 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf08afca5 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0xf0ce1b82 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0xf0f5dbc2 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xf1040a32 digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0xf105b27d usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0xf10f4e49 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xf122a574 irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0xf148565e reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xf162f759 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xf16d5514 alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf186c82f nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0xf19bfb0b rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xf1b5aefa tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0xf1f1f6eb usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0xf1f969ec balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf23148a4 cper_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0xf253455c device_attach +EXPORT_SYMBOL_GPL vmlinux 0xf2663393 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xf27977e2 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xf28c8280 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xf2a5ffb3 ata_sas_port_async_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf2f077cc pkey_id_type_name +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30e105d ezx_pcap_write +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf32bdc5d unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0xf35a9755 trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xf35f230b tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0xf36fa03a serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0xf3722307 dma_buf_detach +EXPORT_SYMBOL_GPL vmlinux 0xf37e50ec skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0xf388e912 alarm_init +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3ccc89f ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0xf3e431e9 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xf3ed050f inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xf3ef980f rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xf42fa7d3 cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xf4483054 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xf4767c23 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf49a6ae1 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0xf4a86323 call_srcu +EXPORT_SYMBOL_GPL vmlinux 0xf4c2ddc1 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xf4d9e58e br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf511bdd0 unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0xf515b99d pinctrl_find_gpio_range_from_pin +EXPORT_SYMBOL_GPL vmlinux 0xf523bfd6 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xf5328c31 rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf558ef4f irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0xf559ad10 ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0xf5785b42 evtchn_get +EXPORT_SYMBOL_GPL vmlinux 0xf58c2a60 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xf590bef0 find_module +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf595ca1c fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5b83a9b led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xf5d6696f __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0xf5fae2d6 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xf5fef4e3 wm5110_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf60555d7 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xf611f195 __efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0xf622be13 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xf64b0582 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xf6521102 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf6748423 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xf6753690 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0xf679354d __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xf6a229e5 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf6b30963 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0xf6d07664 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xf6e0ec0a task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf705894e platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xf7126a22 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0xf7322bc8 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0xf73ab4f2 wm5102_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf7608cdf __tracepoint_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0xf79b08b6 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xf7c6f557 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xf7ee6466 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xf7f8f86f irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0xf80283e8 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xf816c866 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0xf81f38c9 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf879cf82 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8bcebf2 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xf8d0b56f pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xf8db111a __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xf8dce240 ping_err +EXPORT_SYMBOL_GPL vmlinux 0xf8e4fa90 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8f8729b fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf8fe3d0b kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0xf90554c0 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf932015f __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf958beba unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xf9598fc3 devres_release +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf97e603c inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xf9859cf8 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xf9924426 arch_add_memory +EXPORT_SYMBOL_GPL vmlinux 0xf9943095 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9bb9138 pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0xf9c2a1e7 balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d9264e xen_have_vector_callback +EXPORT_SYMBOL_GPL vmlinux 0xf9f50457 regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0xf9f9a960 xenbus_dev_cancel +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa1a2b3e devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa26bba0 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0xfa3168d3 public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0xfa4a647e klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xfa595ec5 ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0xfa901b31 compat_get_timespec +EXPORT_SYMBOL_GPL vmlinux 0xfa944641 pinctrl_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0xfab5f50b sec_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xfac64298 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xfaddcfe2 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xfae2ea46 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0xfae8d2d1 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xfb06f8ca shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0xfb130283 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xfb17dec1 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb2e22a0 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb332540 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xfb398b6f srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xfb64b230 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb80cf1f usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xfb8de33a ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0xfb9b3b04 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xfba26983 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfbb038ae acpi_dev_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0xfbbb1d87 lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0xfbcc87b4 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xfbfe08f8 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc201b66 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0xfc2fe322 driver_find +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc63170a tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfcc47405 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xfcd1d5c9 tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0xfcd27de3 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfd2ff4f7 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfd75276d ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0xfdd496c5 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0xfde9292e sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0xfe224515 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0xfe2941e7 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xfe2b8aea rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xfe2db2d9 pci_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0xfe30607e bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xfe4b6706 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfe540502 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfed3c486 powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0xfeeccc57 rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff00e52c i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff0a798a crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xff1076fc usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5b35f8 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xff967e59 blk_queue_bypass_end +EXPORT_SYMBOL_GPL vmlinux 0xffc35333 pinctrl_dev_get_drvdata --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/amd64/lowlatency.compiler +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/amd64/lowlatency.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2 --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/amd64/lowlatency.modules +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/amd64/lowlatency.modules @@ -0,0 +1,3940 @@ +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250_dw +8255 +8255_pci +8390 +88pm800 +88pm805 +88pm80x +88pm80x_onkey +88pm860x_battery +88pm860x_bl +88pm860x_charger +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +abituguru +abituguru3 +ablk_helper +ac97_bus +acard-ahci +acecad +acenic +acerhdf +acer-wmi +acpi_extlog +acpi_ipmi +acpi_pad +acpiphp_ibm +acpi_power_meter +acquirewdt +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5380 +ad5398 +ad5421 +ad5446 +ad5449 +ad5504 +ad5624r_spi +ad5686 +ad5755 +ad5764 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7266 +ad7280a +ad7291 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7791 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad7923 +ad799x +ad8366 +ad9523 +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2032 +addi_apci_2200 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +addi_watchdog +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adf4350 +adfs +adi +adis16060 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1275 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +adq12b +ads1015 +ads7828 +ads7846 +ads7871 +ad_sigma_delta +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adv7170 +adv7175 +adv7180 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci1724 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +aesni-intel +aes-x86_64 +af_802154 +af9013 +af9033 +af_alg +affs +af_key +af_packet_diag +af-rxrpc +ah4 +ah6 +aha152x_cs +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +airo +airo_cs +ak8975 +algif_hash +algif_skcipher +ali-ircc +alim1535_wdt +alim7101_wdt +alphatrack +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +alx +ambassador +amc6821 +amd5536udc +amd64_edac_mod +amd76xrom +amd8111e +amd_freq_sensitivity +amd_iommu_v2 +amd-rng +amilo-rfkill +amplc_dio200 +amplc_dio200_common +amplc_dio200_pci +amplc_pc236 +amplc_pc263 +amplc_pci224 +amplc_pci230 +amplc_pci263 +ams369fg06 +analog +anatop-regulator +ansi_cprng +anubis +aoe +apanel +apds9300 +apds9802als +apds990x +apple_bl +appledisplay +apple-gmux +applesmc +appletalk +appletouch +applicom +ar5523 +ar7part +arc4 +arcfb +arcmsr +arcnet +arc_ps2 +arc-rawmode +arc-rimi +arc_uart +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as3711_bl +as3711-regulator +as5011 +asb100 +asc7621 +asix +ast +asus_atk0110 +asus-laptop +asus-nb-wmi +asus-wmi +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at86rf230 +at91_ether +atbm8830 +aten +ath +ath10k_core +ath10k_pci +ath3k +ath5k +ath6kl_core +ath6kl_sdio +ath6kl_usb +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atlas_btns +atm +atmel +atmel_cs +atmel_mxt_ts +atmel_pci +atmel_pwm +atmel-pwm-bl +atmel-ssc +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522_common +au8522_decoder +au8522_dig +aufs +auo_k1900fb +auo_k1901fb +auo_k190x +auo-pixcir-ts +authenc +authencesn +auth_rpcgss +autofs4 +avma1_cs +avm_cs +avmfritz +ax25 +ax88179_178a +axnet_cs +b1 +b1dma +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcma-hcd +bcm_wimax +bd6107 +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +blowfish-x86_64 +bluecard_cs +bluetooth +bma150 +bma180 +bmp085-i2c +bmp085-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpa10x +bpck +bpctl_mod +bpqether +bq2415x_charger +bq24190_charger +bq24735-charger +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcoexist +btcx-risc +btmrvl +btmrvl_sdio +btmtk_usb +btrfs +btsdio +bttv +btuart_cs +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +bypass +c2port-duramar2150 +c4 +c67x00 +c6xdigio +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +caif_usb +caif_virtio +camellia-aesni-avx2 +camellia-aesni-avx-x86_64 +camellia_generic +camellia-x86_64 +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5-avx-x86_64 +cast5_generic +cast6-avx-x86_64 +cast6_generic +cast_common +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcimdas +cb_pcimdda +cc770 +cc770_isa +cc770_platform +c_can +c_can_pci +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +cedusb +ceph +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +chromeos_laptop +cifs +ci_hdrc +ci_hdrc_msm +ci_hdrc_pci +cirrus +cirrusfb +ck804xrom +classmate-laptop +clearpad_tm1217 +clip +clk-max77686 +clk-s2mps11 +clk-si5351 +clk-twl6040 +clk-wm831x +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm36651 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmac +cmdlinepart +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +compal-laptop +configfs +contec_pci_dio +cordic +core +coretemp +cp210x +cpcihp_generic +cpcihp_zt5550 +cpia2 +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc32 +crc32-pclmul +crc7 +crc8 +crc-ccitt +crc-itu-t +crct10dif-pclmul +cros_ec +cros_ec_i2c +cros_ec_keyb +cros_ec_spi +crvml +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +cs5535-mfd +csiostor +ct82c710 +ctr +cts +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24117 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyapa +cyber2000fb +cyberjack +cyclades +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da9030_battery +da9034-ts +da903x +da903x_bl +da9052-battery +da9052_bl +da9052-hwmon +da9052_onkey +da9052-regulator +da9052_tsi +da9052_wdt +da9055-hwmon +da9055_onkey +da9055-regulator +da9055_wdt +da9063-regulator +da9210-regulator +DAC960 +daqboard2000 +das08 +das08_cs +das08_isa +das08_pci +das16 +das16m1 +das1800 +das6402 +das800 +db9 +dc395x +dca +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dcdbas +ddbridge +de2104x +de4x5 +decnet +deflate +defxx +dell-laptop +dell-led +dell_rbu +dell-wmi +dell-wmi-aio +denali +denali_dt +denali_pci +des_generic +designware_i2s +dgap +dgnc +dgrp +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bio-prison +dm-bufio +dm-cache +dm-cache-cleaner +dm-cache-mq +dm-crypt +dm-delay +dme1737 +dmfe +dm-flakey +dmi-sysfs +dm-log +dm-log-userspace +dmm32at +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-switch +dm-thin-pool +dm-verity +dmx3191d +dm-zero +dnet +dn_rtmsg +docg3 +docg4 +dpt_i2o +drbd +drm +drm_kms_helper +drm_usb +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2781_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt2801 +dt2811 +dt2814 +dt2815 +dt2817 +dt282x +dt3000 +dt3155v4l +dt9812 +dtl1_cs +dummy +dummy-irq +dvb-as102 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-af9035 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6007 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-rtl28xxu +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb_usb_v2 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc2 +dwc2_pci +dwc2_platform +dwc3 +dwc3-pci +dw_dmac +dw_dmac_core +dw_dmac_pci +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e4000 +e752x_edac +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_vlan +ec100 +echo +ec_sys +edac_core +edac_mce_amd +edt-ft5x06 +eeepc-laptop +eeepc-wmi +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efi-pstore +efs +ehset +einj +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +em28xx-rc +emc1403 +emc2103 +emc6w201 +em_canid +em_cmp +emi26 +emi62 +em_ipset +em_meta +em_nbyte +empeg +ems_pci +ems_pcmcia +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +ene_ir +eni +enic +epat +epia +epic100 +eql +esas2r +esb2rom +esd_usb2 +esi-sir +esp4 +esp6 +et131x +ethoc +eurotechwdt +evbug +exofs +extcon-adc-jack +extcon-arizona +extcon-gpio +extcon-max77693 +extcon-max8997 +extcon-palmas +ezusb +f2fs +f71805f +f71808e_wdt +f71882fg +f75375s +f81232 +fakelb +fam15h_power +fan53555 +farsync +faulty +fb_ddc +fb_sys_fops +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +fid +fintek-cir +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +firewire-serial +fit2 +fit3 +fixed +fl512 +fld +floppy +fm801-gp +fmc +fmc-chardev +fmc-fakedev +fmc-trivial +fmc-write-eeprom +fm_drv +fmvj18x_cs +fnic +forcedeth +fore_200e +fotg210-hcd +fotg210-udc +freevxfs +friq +frpw +fsa9480 +fscache +fschmd +ft1000 +ft1000_pcmcia +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu-tablet +fujitsu_ts +fusbh200-hcd +g450_pll +g760a +g762 +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdmtty +gdmulte +gdmwm +gdth +generic +generic-adc-battery +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-clmulni-intel +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +glue_helper +gma500_gfx +g_mass_storage +g_midi +g_ncm +g_nokia +go7007 +go7007-loader +go7007-usb +goku_udc +goldfishfb +gp2ap002a00f +gp2ap020a00f +gpio +gpio-74x164 +gpio-addr-flash +gpio-adp5520 +gpio-adp5588 +gpio-amd8111 +gpio-arizona +gpio_backlight +gpio-charger +gpio-cs5535 +gpio-da9052 +gpio-da9055 +gpio-f7188x +gpio-fan +gpio-generic +gpio-ich +gpio-ir-recv +gpio-it8761e +gpio-janz-ttl +gpio-kempld +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-pch +gpio-rdc321x +gpio-regulator +gpio-sch +gpio_tilt_polled +gpio-tps65912 +gpio-ts5500 +gpio-twl6040 +gpio-ucb1400 +gpio-viperboard +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_jl2005bcd +gspca_kinect +gspca_konica +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_nw80x +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_se401 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stk1135 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +hci +hci_uart +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hecubafb +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hgafb +hid +hid-a4tech +hid-apple +hid-appleir +hid-aureal +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-elo +hid-emsff +hid-ezkey +hid-gaff +hid-generic +hid-gyration +hid-holtekff +hid-holtek-kbd +hid-holtek-mouse +hid-huion +hid-hyperv +hid-icade +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-lenovo-tpkbd +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-rmi +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-isku +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-konepure +hid-roccat-kovaplus +hid-roccat-lua +hid-roccat-pyra +hid-roccat-ryos +hid-roccat-savu +hid-saitek +hid-samsung +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-gyro-3d +hid-sensor-hub +hid-sensor-iio-common +hid-sensor-magn-3d +hid-sensor-trigger +hid-sjoy +hid-sony +hid-speedlink +hid-steelseries +hid-sunplus +hid-thingm +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-xinmo +hid-zpff +hid-zydacron +hih6130 +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hp_accel +hpfs +hpilo +hpsa +hptiop +hpwdt +hp-wireless +hp-wmi +hsi +hsi_char +hso +hsr +htc-pasic3 +htu21 +huawei_cdc_ncm +hv_balloon +hv_netvsc +hv_storvsc +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hwpoison-inject +hx8357 +hyperv_fb +hyperv-keyboard +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-cbus-gpio +i2c-designware-core +i2c-designware-pci +i2c-designware-platform +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-hid +i2c-i801 +i2c-isch +i2c-ismt +i2c-kempld +i2c-matroxfb +i2c-mux +i2c-mux-gpio +i2c-mux-pca9541 +i2c-mux-pca954x +i2c-mux-pinctrl +i2c-nforce2 +i2c-nforce2-s4985 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-piix4 +i2c-scmi +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-viperboard +i2c-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i3000_edac +i3200_edac +i40e +i40evf +i5000_edac +i5100_edac +i5400_edac +i5k_amb +i6300esb +i7300_edac +i7300_idle +i740fb +i7core_edac +i82092 +i82975x_edac +i8k +i915 +i915_bdw +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipath +ib_ipoib +ib_iser +ib_isert +ib_mad +ibmaem +ibmasm +ibmasr +ibmpex +ibm_rtl +ib_mthca +ib_qib +ib_sa +ib_srp +ib_srpt +ib_ucm +ib_umad +ib_uverbs +ichxrom +icp_multi +ics932s401 +ideapad-laptop +ideapad_slidebar +idmouse +idt77252 +idtcps +idt_gen2 +ie6xx_wdt +ieee802154 +ifb +iforce +igb +igbvf +iguanair +iio_dummy +iio_hwmon +iio-trig-interrupt +iio-trig-periodic-rtc +iio-trig-sysfs +ii_pci20kc +ili210x +ili922x +ili9320 +imm +imon +ims-pcu +imx074 +ina209 +ina2xx +industrialio +industrialio-triggered-buffer +inet_diag +inexio +inftl +initio +input-polldev +int51x1 +intelfb +intel_ips +intel_menlow +intel_mid_dma +intel_oaktrail +intel_powerclamp +intel_rapl +intel-rng +intel-rst +intel-smartconnect +intel_vr_nor +interact +interval_tree_test +inv-mpu6050 +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip6_gre +ip6table_filter +ip6table_mangle +ip6table_nat +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_MASQUERADE +ip6t_mh +ip6t_NPT +ip6t_REJECT +ip6t_rpfilter +ip6t_rt +ip6t_SYNPROXY +ip6_tunnel +ip6_vti +ipack +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_poweroff +ipmi_si +ipmi_watchdog +ipoctal +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netnet +ip_set_hash_netport +ip_set_hash_netportnet +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_MASQUERADE +ipt_REJECT +ipt_rpfilter +ipt_SYNPROXY +ipt_ULOG +ip_tunnel +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ip_vti +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sanyo-decoder +ir-sony-decoder +irtty-sir +ir-usb +isci +iscsi_boot_sysfs +iscsi_ibft +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it87 +it8712f_wdt +it87_wdt +it913x-fe +iTCO_vendor_support +iTCO_wdt +itd1000 +ite-cir +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwldvm +iwlegacy +iwlmvm +iwlwifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kalmia +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kempld-core +kempld_wdt +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +ko2iblnd +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksocklnd +ksz884x +ktti +kvaser_pci +kvaser_usb +kvm +kvm-amd +kvm-intel +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +l2tp_ppp +l440gx +l4f00242t03 +l64781 +lanai +lapb +lapbether +latch-addr-flash +lattice-ecp3-config +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-atmel-pwm +leds-bd2802 +leds-blinkm +leds-clevo-mail +leds-da903x +leds-da9052 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lm3533 +leds-lm355x +leds-lm3642 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lp5562 +leds-lp55xx-common +leds-lp8501 +leds-lp8788 +leds-lt3593 +leds-max8997 +leds-mc13783 +leds-ot200 +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pca9685 +leds-pwm +leds-regulator +leds-ss4200 +leds-tca6507 +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-camera +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-oneshot +ledtrig-timer +ledtrig-transient +legousbtower +lg2160 +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libceph +libcfs +libcomposite +libcrc32c +libcxgbi +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +litelink-sir +lkkbd +llc +llc2 +llog_test +lm25066 +lm3533-als +lm3533_bl +lm3533-core +lm3533-ctrlbank +lm3630a_bl +lm3639_bl +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm8333 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95234 +lm95241 +lm95245 +lmc +lms283gf05 +lms501kf03 +lmv +lnbp21 +lnbp22 +lnet +lnet_selftest +lockd +lov +lp +lp3971 +lp3972 +lp855x_bl +lp8727_charger +lp8755 +lp8788_bl +lp8788-charger +lpc_ich +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc2978 +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lustre +lv5207lp +lvfs +lz4 +lz4_compress +lz4hc +lz4hc_compress +m25p80 +m2m-deinterlace +m52790 +m88rs2000 +ma600-sir +mac80211 +mac80211_hwsim +mac802154 +macb +mac-celtic +mac-centeuro +mac-croatian +mac-cyrillic +mac-gaelic +mac-greek +mac_hid +machzwd +mac-iceland +mac-inuit +macmodes +mac-roman +mac-romanian +mac-turkish +macvlan +macvtap +mag3110 +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix-keymap +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16064 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max197 +max2165 +max3100 +max34440 +max517 +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77686 +max77693 +max8649 +max8660 +max8688 +max8903_charger +max8907 +max8907-regulator +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8973-regulator +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-i2c +mc13xxx-regulator-core +mc13xxx-spi +mc44s803 +mce_amd_inj +mce-inject +mceusb +mcp2120-sir +mcp251x +mcp3021 +mcp320x +mcp3422 +mcp4725 +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mei +mei-me +mei_phy +mem2mem_testdev +memory-notifier-error-inject +memstick +mena21_wdt +metronomefb +metro-usb +meye +mfd +mga +mgc +mic_card +michael_mic +mic_host +microread +microread_i2c +microread_mei +microtek +mii +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mlx5_core +mlx5_ib +mma8450 +mmc_block +mmc_spi +mms114 +mos7720 +mos7840 +moxa +mpc624 +mpoa +mpr121_touchkey +mpt2sas +mpt3sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrf24j40 +mrp +mrst_max3110 +ms_block +msdos +msi-laptop +msi-wmi +msp3400 +mspro_block +msr +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt29f_spinand +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +multiq3 +musb_hdrc +mv88e6060 +mv88e6xxx_drv +mvmdio +mvsas +mv_u3d_core +mv_udc +mvumi +mwave +mwifiex +mwifiex_pcie +mwifiex_sdio +mwifiex_usb +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxm-wmi +mxser +myri10ge +n411 +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +nau7802 +navman +nbd +nci +ncpfs +nct6775 +ne2k-pci +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netlink_diag +netprio_cgroup +netrom +netsc520 +nettel +netxen_nic +newtonkbd +nfc +nfc_digital +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcsim +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_ipv4 +nf_nat_ipv6 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nfsv2 +nfsv3 +nfsv4 +nf_synproxy_core +nf_tables +nf_tables_arp +nf_tables_bridge +nf_tables_ipv4 +nf_tables_ipv6 +nft_chain_nat_ipv4 +nft_chain_nat_ipv6 +nft_chain_route_ipv4 +nft_chain_route_ipv6 +nft_compat +nft_counter +nft_ct +nft_exthdr +nft_hash +nftl +nft_limit +nft_log +nft_meta +nft_nat +nft_rbtree +nft_reject_ipv4 +ngene +n_hdlc +ni_6527 +ni_65xx +ni_660x +ni_670x +ni_at_a2150 +ni_at_ao +ni_atmio +ni_atmio16d +nicstar +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_cs +ni_labpc_isadma +ni_labpc_pci +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nlmon +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +nosy +notifier-error-inject +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc-ircc +ntb +ntb_netdev +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +null_blk +nuvoton-cir +nvidiafb +nvme +nvram +nv_tco +nxt200x +nxt6000 +obdclass +obdecho +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ocrdma +old_belkin-sir +omfs +omninet +on20 +on26 +onenand +opencores-kbd +openvswitch +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osc +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7640 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +ozwpan +p4-clockmod +p54common +p54pci +p54spi +p54usb +p8022 +p8023 +padlock-aes +padlock-sha +palmas-regulator +panasonic-laptop +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_acpi +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87410 +pata_ns87415 +pata_oldpiix +pata_opti +pata_optidma +pata_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pc300too +pc87360 +pc87413_wdt +pc87427 +pcap_keys +pcap-regulator +pcap_ts +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_dma +pch_gbe +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci-stub +pcl711 +pcl724 +pcl726 +pcl730 +pcl812 +pcl816 +pcl818 +pcm3724 +pcmad +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcmda12 +pcmmio +pcmuio +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc_adma +peak_pci +peak_pcmcia +peak_usb +pegasus +penmount +percpu_test +pf +pfuze100-regulator +pg +phantom +phison +phonet +phram +phy-core +phy-generic +phy-gpio-vbus-usb +phy-isp1301 +phy-rcar-usb +phy-samsung-usb +phy-samsung-usb2 +phy-samsung-usb3 +physmap +pixcir_i2c_ts +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm80xx +pmbus +pmbus_core +pmc551 +pmcraid +pm-notifier-error-inject +pn533 +pn544 +pn544_i2c +pn544_mei +pn_pep +poc +port100 +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +psmouse +psnap +pt +ptlrpc +ptp +ptp_pch +pvpanic +pvrusb2 +pwc +pwm_bl +pxa27x_udc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qmi_wwan +qnx4 +qnx6 +qt1010 +qt1070 +qt2160 +quatech2 +quatech_daqp_cs +quickstart +quota_tree +quota_v1 +quota_v2 +qxl +r128 +r592 +r6040 +r8152 +r815x +r8169 +r8187se +r8188eu +r8192e_pci +r8192u_usb +r820t +r852 +r8712u +r8a66597-hcd +r8a66597-udc +radeon +radeonfb +radio-i2c-si470x +radio-keene +radio-ma901 +radio-maxiradio +radio-mr800 +radio-shark +radio-si4713 +radio-si476x +radio-tea5764 +radio-timb +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +ray_cs +rbd +rbtree_test +rc5t583-regulator +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rcar_vin +rc-asus-pc39 +rc-asus-ps3-100 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-delock-61959 +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-it913x-v1 +rc-it913x-v2 +rc-kaiomy +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-msi-digivox-ii +rc-msi-digivox-iii +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-reddo +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-total-media-in-hand-02 +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +remoteproc +renesas_usbhs +retu-mfd +retu-pwrbutton +retu_wdt +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-gpio +rfkill-regulator +rio500 +rionet +rio-scan +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rp2 +rpcsec_gss_krb5 +rsxx +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800mmio +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm80x +rtc-88pm860x +rtc-ab3100 +rtc-bq32k +rtc-bq4802 +rtc-da9052 +rtc-da9055 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds2404 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-hid-sensor-time +rtc-isl12022 +rtc-isl1208 +rtc-lp8788 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max77686 +rtc-max8907 +rtc-max8925 +rtc-max8997 +rtc-max8998 +rtc-mc13xxx +rtc-moxart +rtc-msm6242 +rtc-palmas +rtc-pcap +rtc-pcf2123 +rtc-pcf2127 +rtc-pcf50633 +rtc-pcf8523 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rc5t583 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx4581 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-s5m +rtc-stk17ta8 +rtc-tps6586x +rtc-tps65910 +rtc-tps80031 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rti800 +rti802 +rtl2830 +rtl2832 +rtl8150 +rtl8180 +rtl8187 +rtl8188ee +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtl8723ae +rtl8723be +rtl8723-common +rtl8821ae +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtl_pci +rtl_usb +rtlwifi +rts5139 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rxkad +s1d13xxxfb +s2250 +s2255drv +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s5m8767 +s626 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +salsa20_generic +salsa20-x86_64 +samsung-keypad +samsung-laptop +samsung-q10 +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_rcar +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sb1000 +sbc60xxwdt +sbc8360 +sbc_epx_c3 +sbc_fitpc2_wdt +sbc_gxx +sbe-2t3e3 +sb_edac +sbni +sbp_target +sbs +sbs-battery +sbshc +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +sca3000 +scb2_flash +sch311x_wdt +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_fq +sch_fq_codel +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_plug +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_srp +sctp +sctp_probe +sdhci +sdhci-acpi +sdhci-pci +sdhci-pltfm +sdhci-pxav2 +sdhci-pxav3 +sdio_uart +sdricoh_cs +sdr-msi3101 +sedlbauer_cs +seed +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent-avx2 +serpent-avx-x86_64 +serpent_generic +serpent-sse2-x86_64 +serport +serqt_usb2 +ses +sfc +sha1-ssse3 +sha256-ssse3 +sha512-ssse3 +shark2 +sh_eth +sh_mobile_ceu_camera +sh_mobile_csi2 +shpchp +sht15 +sht21 +sh_veu +si21xx +si4713-i2c +si476x-core +sidewinder +sierra +sierra_net +sil164 +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_platform +skd +skel +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slicoss +slip +slram +sm501 +sm501fb +sm7xxfb +smb347-charger +smc91c92_cs +sm_common +sm_ftl +smm665 +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +snd +snd-ac97-codec +snd-ad1889 +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-aloop +snd-als300 +snd-als4000 +snd-asihpi +snd-at73c213 +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-compress +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dice +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-firewire-lib +snd-firewire-speakers +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-ca0110 +snd-hda-codec-ca0132 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-isight +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lola +snd-lx6464es +snd-maestro3 +snd-mia +snd-mixart +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcsp +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-scs1x +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-atmel-pcm +snd-soc-core +snd-soc-si476x +snd-soc-simple-card +snd-sonicvibes +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usb-hiface +snd-usbmidi-lib +snd-usb-us122l +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +soc_scale_crop +softdog +softing +softing_cs +solo6x10 +solos-pci +sony-btf-mpx +sony-laptop +soundcore +sp5100_tco +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_dectlk +speakup_dummy +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +spectrum_cs +speedfax +speedstep-lib +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw +spi-dw-midpci +spi-dw-mmio +spi-gpio +spi_ks8995 +spi-lm70llp +spi-oc-tiny +spi-pxa2xx-pci +spi-pxa2xx-platform +spi-sc18is602 +spi-tle62x0 +spi-topcliff-pch +spi-xcomm +squashfs +sr9700 +ssb +ssb-hcd +ssfdc +sst25l +sstfb +ssu100 +st +st1232 +st_accel +st_accel_i2c +st_accel_spi +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste_modem_rproc +stex +st_gyro +st_gyro_i2c +st_gyro_spi +stinger +stir4200 +stk1160 +stkwebcam +st_magn +st_magn_i2c +st_magn_spi +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +st_pressure +st_pressure_i2c +st_pressure_spi +streamzap +st_sensors +st_sensors_i2c +st_sensors_spi +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +sur40 +svcrdma +svgalib +sx8 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synaptics_usb +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tca8418_keypad +tcm_fc +tcm_loop +tcm_qla2xxx +tcm_usb_gadget +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tcs3472 +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tda998x +tdfx +tdfxfb +tdo24m +tea +tea575x +tea5761 +tea5767 +tea6415c +tea6420 +team +team_mode_activebackup +team_mode_broadcast +team_mode_loadbalance +team_mode_random +team_mode_roundrobin +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +test-string_helpers +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti-adc081c +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmem +tmiofb +tmp006 +tmp102 +tmp401 +tmp421 +tmscsim +toim3232-sir +topstar-laptop +toshiba_acpi +toshiba_bluetooth +touchit213 +touchright +touchwin +tpci200 +tpm_atmel +tpm_i2c_atmel +tpm_i2c_infineon +tpm_i2c_nuvoton +tpm_i2c_stm_st33 +tpm_infineon +tpm_nsc +tpm-rng +tps51632-regulator +tps6105x +tps6105x-regulator +tps62360-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps65090-charger +tps65090-regulator +tps65217 +tps65217_bl +tps65217-regulator +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +tps80031-regulator +trancevibrator +tranzport +tridentfb +ts2020 +ts5500_flash +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +tsi568 +tsi57x +tsi721_mport +ts_kmp +tsl2550 +tsl2563 +tsl2583 +tsl2x7x_core +tsl4531 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +tua6100 +tua9001 +tulip +tuner +tuner_it913x +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tusb6010 +tvaudio +tveeprom +tvp5150 +tw2804 +tw9903 +tw9906 +tw9910 +twidjoy +twl6040-vibra +twofish-avx-x86_64 +twofish_common +twofish_generic +twofish-x86_64 +twofish-x86_64-3way +typhoon +u132-hcd +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +ucd9000 +ucd9200 +uda1342 +udc-core +udf +udl +udlfb +udp_diag +ueagle-atm +u_ether +ufs +ufshcd +ufshcd-pci +ufshcd-pltfrm +uhid +uio +uio_aec +uio_cif +uio_dmem_genirq +uio_mf624 +uio_netx +uio_pci_generic +uio_pdrv_genirq +uio_sercos3 +uli526x +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unioxx5 +unix_diag +upd64031a +upd64083 +uPD98402 +u_rndis +usb3503 +usb_8dev +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_f_acm +usb_f_ecm +usb_f_ecm_subset +usb_f_eem +usb_f_mass_storage +usb_f_ncm +usb_f_obex +usb_f_phonet +usb_f_rndis +usb_f_serial +usb_f_ss_lb +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usb-serial-simple +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbtv +usbvision +usb_wwan +u_serial +userspace-consumer +ushc +usnic_verbs +uss720 +uvcvideo +uvesafb +uwb +ux500 +v4l2-common +v4l2-dv-timings +v4l2-int-device +v4l2-mem2mem +vcan +vcnl4000 +ves1820 +ves1x93 +veth +vfio +vfio_iommu_type1 +vfio-pci +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost +vhost_net +vhost_scsi +via +via686a +via-camera +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +via_wdt +video +videobuf2-core +videobuf2-dma-contig +videobuf2-dma-sg +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +viperboard +viperboard_adc +virtio-rng +virtio_scsi +virtual +visor +vivi +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_pio2 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmw_balloon +vmwgfx +vmw_pvscsi +vmw_vmci +vmw_vsock_vmci_transport +vmxnet3 +vp27smpx +vpx3220 +vringh +vsock +vsxxxaa +vt1211 +vt6655_stage +vt6656_stage +vt8231 +vt8623fb +vub300 +vx855 +vxge +vxlan +w1_bq27000 +w1_ds2408 +w1_ds2413 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1_ds2781 +w1_ds28e04 +w1-gpio +w1_smem +w1_therm +w35und +w5100 +w5300 +w6692 +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83697ug_wdt +w83781d +w83791d +w83792d +w83793 +w83795 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w90p910_ts +w9966 +wacom +wacom_i2c +wacom_w8001 +wafer5823wdt +walkera0701 +wanxl +warrior +wbsd +wcn36xx +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wil6210 +wimax +winbond-840 +winbond-cir +wire +wishbone-serial +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl18xx +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wlcore +wlcore_sdio +wlcore_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wmi +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +x38_edac +x86_pkg_temp_thermal +xc4000 +xc5000 +xcbc +xen-blkback +xen-evtchn +xen-fbfront +xenfs +xen-gntalloc +xen-gntdev +xen-kbdfront +xen-netback +xen-pciback +xen-pcifront +xen-privcmd +xen-tpmfront +xen_wdt +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_algo +xfrm_ipcomp +xfrm_user +xfs +xgene-enet +xgifb +xgmac +xillybus_core +xillybus_pcie +xirc2ps_cs +xircom_cb +xo15-ebook +xor +xpad +xprtrdma +xsens_mt +x_tables +xt_addrtype +xt_AUDIT +xt_bpf +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlabel +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_ecn +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_HMARK +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_LOG +xt_mac +xt_mark +xt_multiport +xt_nat +xt_NETMAP +xt_nfacct +xt_NFLOG +xt_NFQUEUE +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xt_REDIRECT +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +zatm +zaurus +zd1201 +zd1211rw +zforce_ts +zhenhua +zl10036 +zl10039 +zl10353 +zl6100 +zlib +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram +zte_ev --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/arm64/generic +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/arm64/generic @@ -0,0 +1,14492 @@ +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0x5f254d6a suni_init +EXPORT_SYMBOL drivers/bcma/bcma 0x503e5afa bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x127a5901 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x33eeddd2 dw_dma_cyclic_free +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x41f2ba93 dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x4536f3a8 dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x9b04a5a0 dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xc830a876 dw_dma_get_src_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xce5b7f8e dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/pl330 0x52ccb717 pl330_filter +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04d0f641 fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0f7d6af8 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0fffbbc7 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x15e0d5f1 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x29b8de87 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2c8a7de1 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x44edde35 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x48a27879 fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4bd3b810 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x55b60dde fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x58d3d3a6 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5da5977e fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x645b715f fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6c690c9a fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x841d8fbc fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86560573 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x88df514c fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8f0dcc34 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9f786d9e fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa982fc55 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xab75c24e fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc032bf30 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xcb2513a3 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0xcec28245 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe0890e89 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe6bc1067 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf0e6146f fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf52772ff fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfc304cda fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/fmc/fmc 0x00f38e2d fmc_scan_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x0fbe9069 fmc_device_register_n +EXPORT_SYMBOL drivers/fmc/fmc 0x197780d6 fmc_free_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x476241d8 fmc_driver_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x726edaee fmc_device_unregister_n +EXPORT_SYMBOL drivers/fmc/fmc 0x8bc069a6 fmc_device_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x991c57c5 fmc_device_register +EXPORT_SYMBOL drivers/fmc/fmc 0xa924a76c fmc_show_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xc4cdebb2 fmc_driver_register +EXPORT_SYMBOL drivers/fmc/fmc 0xda534ff9 fmc_find_sdb_device +EXPORT_SYMBOL drivers/fmc/fmc 0xf0cffd31 fmc_reprogram +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00025916 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00667d8a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x022a12c7 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x026c0d6b drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x034e64f6 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0bd9f8a8 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c59582e drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f062502 drm_prime_sg_to_page_addr_arrays +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f965fc6 drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x107742a9 drm_get_subpixel_order_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x10dc7c9e drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11c25d50 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13d93011 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a9a178 drm_get_format_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x173fc1d1 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1793b040 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x189f6401 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19e44324 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a770ac3 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ad09e75 drm_prime_destroy_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e056d16 drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f216b37 drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ff348b9 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x204caa81 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x209755ea drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20b37c60 drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm 0x220b28ca drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22a3ca5c drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22a550ab drm_crtc_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0x237c6b60 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25a12393 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25e53201 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2609d02f drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a911204 drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a942ab2 drm_mm_insert_node_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b1be3e9 drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d80be4d drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e7a4300 drm_rgb_quant_range_selectable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f96280b drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30088b7e drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x318cc6e7 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31e8667f drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3281a713 drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x339d5284 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33d91d9c drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34b5ee66 drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36f91ef3 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37631e62 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a4f7ae drm_format_num_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a7c702d drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ac1fef9 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ae7b2d0 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b9d009a drm_format_plane_cpp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d4b8108 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e86aa75 drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f947945 drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4043591f drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x405e2b6b drm_unplug_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x407649fc drm_prime_init_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40ef3862 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x419e6d90 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x426d5ad6 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4286184a drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43972303 drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43fb0fbf drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46a7e055 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48d01ded drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x496e7d87 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49792535 drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49fabf0d drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b45e391 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c3099d9 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c511235 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e2cabf2 drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50a20c2a drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e28c07 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51f65259 drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x52005033 drm_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x526f6f71 drm_rect_calc_hscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x533e1abf drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x544ed8c1 drm_bridge_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5968fa93 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5bc2751b drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d7318dc drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e35e58b drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e94842a drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x607cd3bb drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6090be61 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x629c05e1 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x64f74517 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x659f0f75 drm_bridge_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66803841 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x688daed0 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69009008 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6900d335 drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c69af68 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cc3c29e drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cee2e42 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cefda0c drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6dad3f06 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f08605b drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f77d6c0 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f8ba64e drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x70bd2077 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71f1db02 drm_gem_dumb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72396fbd drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x731374c1 drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75a1c710 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75e42e21 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76243211 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77282e8f drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x780724c1 drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79c6cc12 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4e7297 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7cfaa08f drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7dd58165 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7dde36d8 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e0ea386 drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81ba930c drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81da3997 drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81e773e4 drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83c573f6 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8400b35f drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x894f8cd7 drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x897556c2 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c091043 drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c735f58 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de13715 drm_format_vert_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7df3a7 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8fa9a229 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8fcf942f drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x90354135 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x90ef3467 drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92d76c37 drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94ee0dcf drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95d273dc drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9773508a drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9972db48 drm_rect_calc_vscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ba6f8fb drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d1d8631 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d4624bd drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d70fc2a drm_rnodes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9eccfe56 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f8649b2 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa068924d drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa09d15fd drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1f4e9e6 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa28078b2 drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3a02e8c drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa40ff964 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa42ce374 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa467a2f2 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5dbd572 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa96acfcb drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0xac582d4e drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaddc71bd drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae75cd5e drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafb0cb6f drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb20f29c1 drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb360518e drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3643161 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb399f82a drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3b74fa3 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5540008 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb572a9f0 drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb58f03d3 drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb64bb0b3 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6913a07 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb72d5f2c drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb93d388d drm_vma_offset_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95beb55 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9ba7bc8 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9cd4078 drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba3bc266 drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbafca3df drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd2807a0 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe001c53 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe214680 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbef7909f drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc17319f1 drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc2e346c8 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4000f9f drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc42cf548 drm_dev_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca45efbc drm_format_horz_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc895f86 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0xccb84f20 drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce644d1f drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcea2ec5a drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1ac3b64 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2335101 drm_fb_get_bpp_depth +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4ca89e6 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4d0a296 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd62553f9 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd70a2c21 drm_connector_unplug_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8200b4d drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd95f80da drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda42cd89 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdad27161 drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbe4f717 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde2a63f6 drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xded012c4 drm_pcie_get_speed_cap_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe04fed8e drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1058361 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1977774 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1d9c5a8 drm_framebuffer_unreference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe26878db drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2ef97e4 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6053e14 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f0fe8a drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f46e6e drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe75f9e68 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8682d4c drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe88b6ba0 drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xebde9099 drm_mode_group_init_legacy_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecb8b32c drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefb27644 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefdf9b69 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf08d712a drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3ba73c7 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf446a0e2 drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf59c0bd8 drm_framebuffer_reference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5f0cfb7 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf686e8e0 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb497216 drm_mm_insert_node_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfbbab4ad drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfbc2aee9 drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd063935 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdf3678b drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe4a68c7 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc6c87a drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x03fe6952 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x098e47d2 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f96ec70 drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x13b51272 drm_has_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x15110f4e drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x163251c8 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2211d82c drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x230413b7 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x291c2c70 drm_dp_link_configure +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34871adf drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x36098526 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x37b06d24 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x385b0989 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3aebb558 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4569312e drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4d40e2cc drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4dc195e2 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x56d9923c drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x570886a9 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5759d960 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x65eed682 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x69554cfa drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6997df0e drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x711a004a drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x73adceb2 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x767219ad drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x77fcb072 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x78a9c166 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7e718bd9 drm_dp_link_power_up +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7eb0ee33 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84e924ba drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x94b627b2 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x99a4678a drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9dbb7e1c drm_pick_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa06f8569 drm_dp_aux_register_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa1aaf02f drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa2d32046 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa355daef drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa72ecb2b i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa77858bb drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa7fd5f2e drm_dp_aux_unregister_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8d6809d drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb6ae7f92 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbef084c5 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc60100dd drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd32baf6d drm_dp_link_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf7312cc5 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf7761ce6 drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfcc06645 drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfeae49b2 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x08387d07 ttm_bo_add_to_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0be92271 ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0cca2eab ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0cfe9bbb ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x19001b39 ttm_bo_del_sub_from_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x196d7174 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1a5a9f46 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1f849006 ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x219140d1 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x263756e0 ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x29b106ba ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2c1fc621 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2dafbc96 ttm_mem_io_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34ac4f98 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x36151f4b ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3a364b46 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3e1c1cb4 ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4552b165 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x47312bdd ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x485a5bc0 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4e8dd264 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x51a08f28 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5570c7f7 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x564e1aee ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x56a063f1 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x589d4322 ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x591d7b41 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5e0f19d7 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ee757e7 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x601c1a3c ttm_bo_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6052860c ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61ca3f88 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6809ca74 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6a1bec14 ttm_dma_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6e1a6ecf ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6fa23711 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x70e832a1 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d10e67f ttm_pool_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7dc54fba ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8196ca11 ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x880a15ad ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x92cf5dbc ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x94402532 ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x94894449 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x95d2ff0e ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x98c0c988 ttm_mem_io_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b01c37d ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9c6b8af6 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa0e1f89b ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa907c5df ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac492a46 ttm_mem_io_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xae038a23 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xae870f58 ttm_mem_io_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xae87b61d ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xba5b4c41 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce6e43a8 ttm_base_object_lookup_for_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd010e970 ttm_pool_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd3bf4d71 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd3ead632 ttm_dma_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd8edb115 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdb822e74 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd0cdcca ttm_prime_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe341dde7 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe62ec942 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe634e8d9 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe6ec87f5 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf270d9c5 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf515851b ttm_bo_dma_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf7b7f501 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf87cdac9 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0e2a6864 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0f5877d4 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x34257f35 sch56xx_watchdog_unregister +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x8b24a02c sch56xx_watchdog_register +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xe5022f95 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xed1d2a08 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x0786751d i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x912d2f71 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xf25b7857 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x477dfb16 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x631a346c i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x0fc0aba6 amd756_smbus +EXPORT_SYMBOL drivers/iio/accel/st_accel 0xdcaaba01 st_accel_common_probe +EXPORT_SYMBOL drivers/iio/accel/st_accel 0xe7b81282 st_accel_common_remove +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x71c2d0b2 hid_sensor_read_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x77f38e3a hid_sensor_write_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x894606fa hid_sensor_read_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x9c446652 hid_sensor_parse_common_attributes +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xf88eb5c6 hid_sensor_write_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x3a99f288 hid_sensor_remove_trigger +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0xc9fe215a hid_sensor_setup_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x074d7047 st_sensors_trigger_handler +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x2f222404 st_sensors_get_buffer_element +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x40ea119d st_sensors_allocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x4dd90d12 st_sensors_sysfs_sampling_frequency_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x700fbdff st_sensors_init_sensor +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x767dac71 st_sensors_check_device_support +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x7ccbdae3 st_sensors_read_info_raw +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x92a3634d st_sensors_deallocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xb9e91345 st_sensors_set_odr +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xc0b06a59 st_sensors_set_dataready_irq +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xc3f29500 st_sensors_set_axis_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xd78bd551 st_sensors_set_fullscale_by_gain +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xd900d9f7 st_sensors_sysfs_set_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xde008c32 st_sensors_set_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xe3e7712a st_sensors_sysfs_scale_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xff96370b st_sensors_sysfs_get_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0x46646c7b st_sensors_i2c_configure +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0x3b410977 st_sensors_spi_configure +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x3168da0b st_gyro_common_remove +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x93c16981 st_gyro_common_probe +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0xa6a2100a adis_enable_irq +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0xb457ec0f adis_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/industrialio 0x067d93a9 iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x0a0dec02 iio_buffer_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x1f872e32 iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x2edc6000 iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x3c2a63ba iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x41afa318 iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x4b623b21 iio_buffer_write_length +EXPORT_SYMBOL drivers/iio/industrialio 0x4d83abd9 iio_buffer_show_enable +EXPORT_SYMBOL drivers/iio/industrialio 0x567ffe84 iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x5c758607 iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0x6cb9683b iio_buffer_read_length +EXPORT_SYMBOL drivers/iio/industrialio 0x753e30aa iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0x7d6f46f3 iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x8e12d2e4 iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0xa2ec8a4e iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0xa7990077 iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0xcca34a11 iio_buffer_store_enable +EXPORT_SYMBOL drivers/iio/industrialio 0xcdd148d1 iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0xd32e9cb3 iio_buffer_register +EXPORT_SYMBOL drivers/iio/industrialio 0xd83c1e59 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xea131f6b iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0xefa9ad5b iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0xf031f2dd iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x82f8b015 iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0xdde01ea7 iio_triggered_buffer_setup +EXPORT_SYMBOL drivers/iio/kfifo_buf 0x6c5bf0ca iio_kfifo_free +EXPORT_SYMBOL drivers/iio/kfifo_buf 0xe2d3bc64 iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x3292048c st_magn_common_probe +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0xa19bfd19 st_magn_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x590ecd3b st_press_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x594a8637 st_press_common_probe +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x049ace30 rdma_addr_find_smac_by_sgid +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x04b8b6d7 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1c3c0ad3 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x273f4cca rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x446fd7c9 rdma_addr_find_dmac_by_grh +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x4c33e170 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x4fa3893d rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xca5cb363 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xfe6e58a5 rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x00b83dd7 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2d221a22 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3502ccff ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x37f20275 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x46295d57 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x532eaac7 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x53c02322 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5d38dfec ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x66edca02 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x696c0e2a ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x812b95e0 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x886bed03 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9c89c9c8 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc44c35eb ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc9d08e79 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf2e0f82d ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf89a38ba ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0222cf5f ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0d8d35b1 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0dff0307 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0e0982c9 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0e901476 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x16818125 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x180e0d98 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x187a8cc5 ib_destroy_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1a3187c5 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1d3060a3 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22ea5c3b ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22f3cf93 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x24850550 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2793177b ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2bb4f7ef ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2e5c1e1d ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33a27b94 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x43ba464a ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x43eb0eb5 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4534375b ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x474680b9 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x48aa3016 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4b3ea8a5 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4e54aae5 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x51ffc2ae ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53a68f66 ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53d8eb55 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53e83ace ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x54e044d6 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5520a608 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5b2696b4 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x605729ac ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x62bc3c45 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x64563bac ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ae1b15d ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e030e26 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6fca2fe8 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6fe2ff52 rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x744ee6fd ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7943fcf3 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7bb70e26 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7c9b5a17 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7d7b27f8 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7f6ed11c ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7f9ef6d9 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x81e77d07 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8302f794 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x89a17d1f ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x89ef3e44 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8c8f8312 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9ad1cb39 ib_resolve_eth_l2_attrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d3b495a ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d5ddfb5 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9e767345 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa03b2a50 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa2cdd127 ib_create_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa302f933 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa3a94d01 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa432baf6 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa64ec2f3 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac217df9 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xadb4a062 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbf6f2bed ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc193828a ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc225bc11 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc3d19727 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67eb015 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd543a349 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd86ec670 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda99ddfb ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xddf4fc21 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe5f4e0c7 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe954f40d ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeb4633bd ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeb61c6a4 ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xebca143c ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf98bf0eb ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfaae31c3 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfd946c34 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfe462d1c ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x22f8d618 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3338cc8c ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3571a735 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x65059be6 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7e679842 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x853091c2 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x89bafc33 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa9af2171 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc9212b0f ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xcb065359 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd21d9dd7 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe6e54a02 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0088744d ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0c2f976a ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x22f07253 ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6f7e97ab ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x7b618cb5 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8ad15bd9 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8ed9af46 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9ae4b8a2 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda7e7c2a ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xddc330e7 ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf2e57985 ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x2569d757 ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x52a6ce77 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7971c00e ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe350f2aa ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x05b59ff3 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x221d4d37 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2493530a iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2db5b5fc iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x374925af iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x9aa72037 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x9db1ed5d iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xacab5f0b iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0ae32f6c rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x10c0fdd7 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x176ebb30 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x26e6e479 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3609d1b5 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3bc7663b rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4cefc036 rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x613e16ba rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6498b99d rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6de06db0 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6fa9599d rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x70933c6c rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7bdae955 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7d81bcd4 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7da2c0a5 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7eb5c259 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xaa531a5c rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xaf890f1a rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdfc794fe rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xeea5f83e rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf77814e8 rdma_destroy_id +EXPORT_SYMBOL drivers/input/gameport/gameport 0x1ef6835f gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x3789d34d gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x3e6a7675 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x61f50b07 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x8f24dec1 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9efea1b5 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc2e39ccf gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0xcc6f6ca0 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xcd3aa613 gameport_set_phys +EXPORT_SYMBOL drivers/input/input-polldev 0x36d0cf1e input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x53177e41 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x7f7c8fd8 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x816bd095 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0x872c47a6 matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x0ab880e9 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xbbd7217f ad714x_probe +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xf8f09aed cma3000_init +EXPORT_SYMBOL drivers/input/sparse-keymap 0x0f99ce81 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x1d620923 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x41d773f2 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0xba10b800 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xf13bf6ad sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xff0cbddd sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x63c7b6a7 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x673041e6 ad7879_pm_ops +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x0631966c capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x06a3468b detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1b56045d capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1e73fc95 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2bee9289 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x33023b11 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x44dccb9c capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x65bcf3ad capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7292ab34 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x72a25a72 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb6852e4b capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd2b36305 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfd552f7a capi_message2str +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x24da1648 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x32ad80ab b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x3a4f72c2 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x3b55d0d8 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5b8ed391 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5f91127a b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6f9a53a3 b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x89ade2bf avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xad1801b5 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xad4a2cfd b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xae21ecc3 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xbef0d208 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc58852ed b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xec834197 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfb36a8b6 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x0c5f5f43 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2272f18a b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x48362214 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x73e97b64 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xb547eca5 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc389b28a b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xce4e076d b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd31bb24b b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xdf33e247 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x7ab59853 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x57f303d8 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xb00212f5 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xcc26c1c6 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xf57a119d mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x0efe4f0e mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xb21fa5d5 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe2dc69bf hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x19384771 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3b3e9d0b isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x5fa6dd10 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x7d716f9f isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xb890e467 isac_init +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x1674a66c isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x9423fa0d isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xafe38b52 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x301f71ea recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4d3da9f3 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6c2ade15 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6dd39406 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a4e99fb mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8eea67e5 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x93dd192e get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9a7082c3 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9b8e862b create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9e52781b mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9f0bd931 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa3882db5 mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa4cf9939 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa7ba2911 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xadb8a200 bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb77e8f83 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc9402641 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcb7e3a98 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd1b0d862 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdb9a523b get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdea1eefd mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe93487b9 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xec82fa01 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xef4a5e85 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/bcache/bcache 0x23a57163 closure_trylock +EXPORT_SYMBOL drivers/md/bcache/bcache 0x31c9e0dc __closure_lock +EXPORT_SYMBOL drivers/md/bcache/bcache 0x4d323f51 closure_wait +EXPORT_SYMBOL drivers/md/bcache/bcache 0x8b2a4697 closure_put +EXPORT_SYMBOL drivers/md/bcache/bcache 0xaa4643d1 closure_sync +EXPORT_SYMBOL drivers/md/bcache/bcache 0xd7765cfd closure_sub +EXPORT_SYMBOL drivers/md/bcache/bcache 0xe3c17af1 __closure_wake_up +EXPORT_SYMBOL drivers/md/dm-log 0x0a33e78c dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0x6bd105c0 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x8ac48ccf dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0xc664022e dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x11775290 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x1a2e3af2 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x31cc6a25 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x3a8b94f8 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x6301593d dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x699d8108 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/raid456 0x4ec1a094 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x16183ab2 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x200b0a16 flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x3be8ad6c flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x3df83f25 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x3fc865c7 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x47bf2ade flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x5ad52e5f flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x87fc3874 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x929d71d1 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xaadd3b86 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xd22e8493 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xec859753 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xf949d024 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x32fd1cbd btcx_riscmem_free +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xfba17558 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/common/cx2341x 0x0c66039c cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0x10b13a6d cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0x3db8be82 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x53ad047a cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0xb3706010 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/tveeprom 0x8710b13b tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0xa4e90f5f tveeprom_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0341e6ff dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0422b810 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x076119f5 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x17523ce7 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1d564530 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1ec0d0ed dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x24897a38 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2975b9bd dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2cf33697 dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3e1d4d86 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x429cbd6c dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4b96de00 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4bf950c2 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5ab4496e dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5e9d4636 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6162bb45 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6a83bfa3 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x72af56d2 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7caa224e dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8158cd5f dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8fafb3a2 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9510a851 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9989748f dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9f7bc93a dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa10e976c dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xab56e804 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xaf0dba0f dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb873b199 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xbe8483f5 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc3c77f8d dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd13b4032 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd68a099e timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdfde8348 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe60d865f dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xebdf144a dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xee58cb86 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf0791b69 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf13ca57e dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf23a08e3 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0x96ad8273 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0x71841535 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0x6c66ac95 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x0eb35052 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x6e478d8a cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0xe24e712a cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x91a09f56 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xfed9c0fd cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x2da7f9d7 drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0x6e854b72 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0x1ce0801d dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x573398f5 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0x94de6768 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x88905204 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0xf91f9dd9 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x18fe5835 l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0x25d34097 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0xe09e23f2 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xde7fbcd2 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xdf2b72f8 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0xd702e1d5 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x12493ad2 mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x6b0ba458 mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0xdaad2e85 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x0161dc7c nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0x5bd7c262 or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0x0bf70765 or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x0bd6c39e s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0xe398129a s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x021696d4 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0xb88c2567 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x14ee87db si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp8870 0x5b1a4049 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0xc386b992 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0x7d13521f stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0x0040661b stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0x8d0901c0 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x9902e834 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0x01ac0a1c stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0xcc8107d0 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0x2402d90d stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0xf07555c2 stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0xfad60d1c stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0xb064b823 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0xb1563f8c tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0xe30c69a0 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0xee68042b tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x31b11e0f tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0xe1dd8d1b tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x67a43b3e tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0xe2d7a993 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0x29042646 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0x87095a7a tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0x67eeb589 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0x0a1f0a85 ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0x9a51ed56 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x3446a784 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0x2e1477c9 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0x5f6b3114 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0x11737712 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x5b8fc600 zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x0e6cdb93 flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x415f1b2a flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x47335825 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x7af5c9e0 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x85d1d152 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xce3c1a44 flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xdd2b0a9a flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x216fa476 bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x6c75813f bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd71d80ef bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xf8d723cb bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x245aaedf bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x8d06f4c0 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xc46117ff bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x330e0826 dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x55b82f98 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x5afc8050 dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x5c440cf6 dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x66c9ed3c rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x7d0d34ff dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x9de1ec3a dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xa4d6f632 read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xa8a1724a write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0x3ce504fa dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x11493635 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x40c5ca72 cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x66d7b636 cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x991ad7ba cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xe2174b49 cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x0a41e37c cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x40e0a628 cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x50393010 cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x5c54df75 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x6eacdb8e cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x998e9122 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xc5d38741 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x4bfb7c3f vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0xa62a8472 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x04b39386 cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x0eceb781 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x42e58557 cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xa30e6a6f cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x28bea5b2 cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x39378dce cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x68bf7b2f cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xbd3a647e cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xe20f2d64 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xee497a00 cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x04976893 cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0a9fddd5 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x1e5c76a0 cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x1f8374a5 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x276e5e94 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2b5d8f29 cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x40e52f85 cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4216fc84 cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x628ffe9c cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6fe04fe4 cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x9034910a cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x92dca0d8 cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x94d27357 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x9649ab5b cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xaf827fe6 cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xba520fd7 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc277c71e cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc31ade8c cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xcb32ed06 cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xd06092b2 cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xd593f0db cx88_free_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xdfe262be cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xfb6efa5d cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x0894bd7d ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14d0db42 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x16bab7d3 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x1f60f077 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x2740773e ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x2e6ad199 ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x3ac2e006 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x40ea6805 ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6f7d952a ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x70afcbec ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x9910a634 ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x9cf325fc ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xc00678f2 ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xc44cd7ca ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xc811026d ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xd1ab7f3f ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xd24c0ab2 ivtv_api +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x28e0bebe saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x2bf2c9af saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x33babccf saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x5e00a199 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x63f2ec90 saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x72306686 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x73039031 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x93d74928 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xa270e6ab saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xb246f556 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xb5df94c3 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xbb83c32c saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xceb63ac7 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xedaf37aa ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x0eb4711d soc_camera_power_off +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x29ed634c soc_camera_host_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x6e9d6fad soc_camera_power_on +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x95c673c8 soc_camera_lock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x9e64cc9b soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xcd135b5c soc_camera_power_init +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xce68f087 soc_camera_unlock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xec10a61a soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xff2d7cb0 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x25c52d97 soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x2863728e soc_mbus_image_size +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x5f3e3558 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xa9546115 soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xfe2c3a07 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x515b9a2d soc_camera_calc_client_output +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x8fa77427 soc_camera_client_s_crop +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xa5ee04da soc_camera_client_scale +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xab325934 soc_camera_client_g_rect +EXPORT_SYMBOL drivers/media/radio/tea575x 0x1cabd26e snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x33d2ba51 snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0x9230e9e2 snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/radio/tea575x 0xe4c963de snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x1f2e7b70 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x2454c6c9 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x6ce1548b lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x7eeb8459 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xaf34a725 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xb4da7dc1 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xcc512349 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xf800ec81 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/rc-core 0xb077d9bb ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0xec61e27f ir_raw_handler_register +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x46dd1f44 mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0xad2f18c6 mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x47430fbf mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0x13b8024f xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x199f5504 xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0x7ba2e8f7 xc5000_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x4adaf0f3 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x53c9394f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x5f96a661 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0xabe27502 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x50a3d711 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x89e6c6a4 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xe60a8e3d v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x0b186920 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x0de4d3c9 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x31124459 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xb1ef4b71 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xd40a0880 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xee985bbd videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf2-core 0xc39a98ed vb2_querybuf +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x03b4f7fc v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x03e4ca65 video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0740ef98 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0828d45c v4l2_clk_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0835c66c v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0b7b05e0 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0e267302 v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0ebb66db v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x106d9244 video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x10b96e02 v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x140e371b v4l2_of_get_remote_port_parent +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1582b213 video_usercopy +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1ab5bc02 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x20de50c0 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x22d696d3 video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x288f9c6b v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2bf9ab5d v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3156e123 v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x31a5fb3c v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x36847d11 v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x372a15c8 v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3ac795ec v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3db7f213 v4l2_of_get_remote_port +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3df390ca v4l2_clk_disable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3e807d9b v4l2_clk_unregister_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3f94a973 v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x449fdbd7 v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4707b65a v4l2_async_notifier_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4ce9d1d3 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x58e93837 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x592de6c4 video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x63fedbde v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x65706459 v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6fcaad27 v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x718ab021 v4l2_clk_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x727d9775 __v4l2_clk_register_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x73788f72 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x775e86d9 v4l2_clk_get +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x78ccc9f6 v4l2_async_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7c22e26f v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7f923f2a v4l2_of_parse_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8ed2600d v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x955dc00e __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x97610c00 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb3112606 v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb59eba8b v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb664f77e video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb90cbedf v4l2_of_get_next_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbac4a225 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc41c9a0 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc12cf8f8 v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc7f6659c v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc918393f v4l2_clk_set_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcae39267 v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xce179d1d v4l2_clk_enable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xce2770dd v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd2083a6b v4l2_clk_put +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdaa533ab v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdfe275f9 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe06bd5e6 v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe0767ee3 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6581495 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe677cc7c v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6fce6f2 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe8986de9 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe89e05ba v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe988d4be v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xea4d28c8 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xeaddc13a v4l2_clk_get_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xeca33981 v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xece9c93a v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf76d8335 video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf9dd26b0 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xff948d15 v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/memstick/core/memstick 0x14e28870 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x3854f229 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x6ecde043 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x94f6190e memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xae2cd85e memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb395011e memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xbb6958fe memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc1c4f5d4 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc71a7aba memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd820fe80 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xdc07e67e memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf59247b4 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf6505c67 memstick_free_host +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x05ce2625 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x060dd0b7 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x06970401 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x06bf512c mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x135d0254 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2de0700f mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x33b23e6c mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x39305d1c mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3bc7797f mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x40248199 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x463ca224 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x471fceb3 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x590a130d mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x662427a7 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x77ec3fb6 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9108eecf mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa1fc22f6 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa51388ca mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xaae16e45 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbce6815e mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc05cecf4 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd25bc45f mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd8e69cc3 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9ba831c mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xec9eefe4 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf13713c8 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfd9086d5 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0379bb3a mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x06644187 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x08f62deb mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0a4ccd4f mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0b2db0ec mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x129e0ff7 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1812a633 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1d486e3c mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x30656331 mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x602cdeab mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x77df1401 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7b081fe2 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7bd40bff mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8c5897fc mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8e774905 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9de4ab67 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa7310fbf mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb5363994 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbbc0510e mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbdcc2a78 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc322d12c mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd259fcc4 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xddf0c749 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe07a7267 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe734759d mptscsih_event_process +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0aeaba14 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1637bf2c i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x23fc895c i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x43b8663d i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x54d97203 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5b7c3318 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7a7dc741 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7c4fd0b6 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x810c4ce1 i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x88194f3b i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x88427563 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9f035e25 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa023963a i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbea6141d i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc2b0299d i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc8d83cea i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd3008d4c i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd3ba5289 i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd74a4ee8 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe070d562 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xea4aba11 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf3ca8dfa i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/mfd/cros_ec 0x2fe8dbbd cros_ec_remove +EXPORT_SYMBOL drivers/mfd/cros_ec 0x4c7386b2 cros_ec_register +EXPORT_SYMBOL drivers/mfd/cros_ec 0xcb71f8c8 cros_ec_prepare_tx +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xa385c992 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xebe383f1 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x1862a92a mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x2aad235d mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x5d5f1c99 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x6043f198 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x61499553 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x6ca13837 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x6cfed194 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x6f101362 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8784a753 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x929cb76b mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xaaee366a mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xcde454d7 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xd4f32849 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/tps6105x 0x13f77f88 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x77b513e6 tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps6105x 0xad1d92b0 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x1c0bd114 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xf198b6e3 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0xe54b1002 altera_init +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x6374ae69 ssc_request +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x6e9e7183 ssc_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x0e9755b9 pwm_channel_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5a8b82f9 pwm_channel_handler +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5d5c2951 pwm_clk_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x6a5e1f70 pwm_channel_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x73330c97 pwm_clk_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0xeb7f2c6f __pwm_channel_onoff +EXPORT_SYMBOL drivers/misc/c2port/core 0x4c234ec7 c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0xc2db9eb6 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/ioc4 0x14d13667 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xfdf60237 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x37b8d364 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x40d7d6f7 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x53faa38d tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x54f4e4f4 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x7d58d8ec tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x9e8010e5 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xa25f97ca tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xba6f2aa9 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xe14789b2 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xeab79e85 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xf0cb91b7 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xfc8ae272 tifm_eject +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x3251b22a mmc_spi_get_pdata +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x4937fb2d mmc_spi_put_pdata +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x36063c1d cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x6372fb45 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xf74b02a0 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x41c89a4a map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x6f47e471 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xa99e76af register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xfe4b5b0e do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xd71212c9 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xf2fdf31e lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x9474f682 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x52192234 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtd 0xccec4c6e mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/denali 0x355b50eb denali_init +EXPORT_SYMBOL drivers/mtd/nand/denali 0x696597eb denali_remove +EXPORT_SYMBOL drivers/mtd/nand/nand 0x0a93d213 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x1060444e nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x84da8d67 nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0x971a1935 nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0x9c5f1014 nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xc33159eb nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x79a7976b nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xb2c18b5b nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xc0802e99 nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb5ebc6e6 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xfadfa966 nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x57a31e57 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x3c7e5295 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x8e479c3f onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xd802c0bb onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xf9b17150 onenand_scan_bbt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1dce3d62 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2a5eadae arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2d18bf6a arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x68b5c288 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x709ae3dc alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x89b7737a arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa25a3c13 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa3aed310 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe8cc3f6c arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf2a2020a arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xc96cb245 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xd30b96ad com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xdc4b8f61 com20020_found +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x0af1d06b ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x199b71eb ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x2138f5e5 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x3cd59c94 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x4c073ea0 NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x53f7efeb __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x5c400f98 ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x8d6d5b13 ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xcd0b86d6 ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xf3836181 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0xf622913c cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0389b434 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x17cd4b57 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2c5f0450 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x42e793f9 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5337c2e6 t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x55a3f613 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5de349ec t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa9335bc1 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xaa9aa2c7 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb1601abb cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb18628cd dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc089f927 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd68982af cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xeb79c193 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xed7dcdb0 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf8d2faa4 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0bafb987 cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0d2fb126 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1287e3c7 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x13a1c381 cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x16eac327 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1ccadadc cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3d99019f cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3e492533 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4b2c3fe9 cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4ed8e35e cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x552bc261 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x58b17697 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x63577c22 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x67fb07ab cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x706c8a77 cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x818796c2 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x834481fa cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8b9ce5ca cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9192411e cxgb4_enable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x98f6598e cxgb4_disable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9ab1d159 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb183000d cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb28edf3d cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc3de529e cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf22c6076 cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf5099c4e cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf70eb647 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfda9a624 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x0e712340 vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x0f8b7e79 enic_api_devcmd_proxy_by_index +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x4f650da7 vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x9196d804 vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x9aad422f vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xb2e8bb64 vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x83c02397 be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xbab62e22 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xc992b46b be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0662a898 mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0dad5c93 mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x100b5af2 mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1cd57764 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2e26d319 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31d52d11 mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3337814a mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3b67c2af mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x497cd069 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4a44c67e mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5a6e41af mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5dd9d537 mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x65984a20 mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x74627aaa mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x762fe54f mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7cc04d94 mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x836a4e20 mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x87367f9b mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a6ea965 mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa4805d74 mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb752e7a0 mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc2ec6689 set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcbf1847b mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd74fd83d mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeda2bc06 mlx4_set_stats_bitmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfcc1ba89 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x01768b61 mlx5_cmd_free_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0868faf9 mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x15e3b904 mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1c0f513a mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1f029d14 mlx5_cmd_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2c69bd27 mlx5_core_destroy_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x33f37f99 mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x49ae7d8e mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x57d57278 mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6e8464c4 mlx5_core_dump_fill_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x801cf1f1 mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x831cdbc0 mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x86a7a579 mlx5_cmd_comp_handler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8ffbbc1f mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x945e16f7 mlx5_core_arm_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9eef0216 mlx5_core_query_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa9905ac8 mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb4f7ce67 mlx5_dev_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbdc29779 mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xce4cac7e mlx5_cmd_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd361a9cc mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd53032b3 mlx5_dev_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe0d82b44 mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe41e34d4 mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe77aca4d mlx5_cmd_alloc_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xea584aba mlx5_core_get_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xed90a89f mlx5_core_create_srq +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x3780fa0f hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xb144d3c7 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd31be49e hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe414cdfd hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe760a56f hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2278fbbc sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3500323d irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x58071c39 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6ae6f6c6 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x778ba571 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8b55f7ad sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc82dfbc0 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdbcc447f irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xea0f7aa8 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xfd1bad5f sirdev_put_instance +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mdio 0xddc98749 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/ppp/pppox 0x1bdec3a3 register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0x841a423e pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0xc298283c pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x53e14f2f sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x51cd5496 team_options_register +EXPORT_SYMBOL drivers/net/team/team 0x568ea451 team_mode_register +EXPORT_SYMBOL drivers/net/team/team 0x69b5c691 team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0x6c3e9618 team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0xa3e7092e team_option_inst_set_change +EXPORT_SYMBOL drivers/net/team/team 0xc3e9544e team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0xd55335cd team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0xf865d7d8 team_options_unregister +EXPORT_SYMBOL drivers/net/wan/hdlc 0x00596f68 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x215a001b alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5a99bcdb hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x96ad0351 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x9986c395 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa838d0df unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xbe146c39 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xcdbe9f70 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd6c3a7e2 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xde2254dc detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe36eea1d hdlc_ioctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x26eb10a7 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x27b528cc dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4b0c7b0a ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x53358ce3 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x66eaeb23 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x685b1d32 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7129751f ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb039e88f ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb070c2a2 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbc5e099e ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xc9d92cf4 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe010858b ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x12268f84 ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x426b428a ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x49fa6aec ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x6d3937d3 ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8246be6c ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x895f9dc2 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf096710 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xbefa466a ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xea520386 ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0199ec46 ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1e9c1d45 ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x27cf1694 ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x34b6406d ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4c6ddcb4 ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4e1380ee ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4e906de3 ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb50d8e4b ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xd72c073c ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xda12bec7 ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xe2deef20 ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xe7a8b7df ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xe8357502 ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xf81ce844 ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1392d9ea ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa12880b9 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xb3f3f70d ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe0bcc3d3 ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x013632e9 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x084b823c ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09098566 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09c3293e ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09d1e475 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a75d01a ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d577d04 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f69e78d ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f831ea7 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x10b3cba3 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x139a99d4 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13bb19f8 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x19f2534d ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1a7beb37 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1a9fa97e ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x235cba0b ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2456495f ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a9955b4 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b070671 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2c707e6c ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e086d86 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2f6404b2 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x35211d5d ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c82cb98 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3eb3bed4 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x42c68c9e ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x45642710 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x459679bc ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4cf6d777 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5192d71c ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x52f1aa0c ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b63aca6 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ece62eb ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x60eaf993 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ef61c38 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73c1d793 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7499e1e4 ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7549c066 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x76324680 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7713d0c7 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7acf4a25 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83b03274 ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x843082b0 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x89be5437 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a067b39 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d6b1df7 ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8ebfd9c5 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8eeac2e3 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f3a9e3d ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x92f44135 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9526bb2a ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x956e9753 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x98f8575a ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9c042c96 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9cdb70c9 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa1b1d0d5 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa310b557 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa580bbb7 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8a3f71f ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae74bac9 ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xafdcb345 ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0b2cca7 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb152aa2d ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4516cb4 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8f6d306 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9c13fff ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf0890a6 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0390126 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0812fe2 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc138fee9 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc28a2c32 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc67fe805 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc8361920 ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcaf366e1 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcb87f7f1 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd0d93036 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1211bd8 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd14e8239 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd281f19f ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd33ba1a9 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd61950d4 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd74c4124 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb80ac73 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc37cd46 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdcab5c72 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd629984 ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1537da7 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1ce81f4 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8bc7b6d ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe9d8b61c ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea6c0ada ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1538d98 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1fbd335 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf29b5036 ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf6be5773 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7815fd1 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8e61db1 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfd248c9b ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/atmel 0x1b8b3bc5 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x61277071 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xe83ebc38 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0xe19384ab brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0xe9b24202 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x0d6974aa brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x123a431f brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2dc227f8 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x3122bad0 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x3b73d25f brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4a9d2215 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x5b0511ab brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x83481c2c brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x83f22309 brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x84a6575d brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xaa6d56db brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb8d28ed2 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xdabdc9d8 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xe3fd1055 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0125db96 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0a652c3a hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0f4de1f3 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x11423808 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1cf76c14 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x382ffd1c hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3f5effd6 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x42947a38 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4a411654 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4ba47d24 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x54993ad7 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5762b146 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5e60ca90 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x612d7f22 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7b4fb3bd hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x88b0c9f9 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8f431cab hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9558a573 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9b855c75 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9ea5d527 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa1871935 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc4214a52 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcb850bcf hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xda96dce0 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfde52d5b prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x17aa7547 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x275904b9 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2c46ca78 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x306df811 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x35781bfe libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x40047a9c libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x50e6cbe2 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5d7959fc libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x64721f84 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x78014940 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7e80eb1b libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8ee66db3 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8ef220bf libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9954bcd0 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xafe5fe47 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb003e623 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc246a104 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xcd74a40e libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xce51ceea libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd201efe9 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd487fb6c libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0100e9b5 il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x01713c1d il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0409a8e6 il_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x043c457c il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x06ef8ab9 il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x07125bda il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0745619a il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x09bf86f0 il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0c7127a8 il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0dc59b3f il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0f8efb3f il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x15133c2e il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x199fb972 il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1a254047 il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x249f7b5e il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2bca6728 il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2ee049f4 il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2f0b9cc3 il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x336baf47 il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x33a19363 il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3af3730a il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3b06e53e il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3be09aaa il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3d77994e il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x43a6c7a0 il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x48a3ee5d il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4aa39103 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4b0ab922 il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x500da111 il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x517cda71 il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x54116baa il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x564c6740 il_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x60799f2e il_set_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x60fff91e il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x64e0c3c2 il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x68adea43 il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6b23f574 il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6b285c32 il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6bf4fbab il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6fc67b72 il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x74516636 il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7ee4d222 il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7f16f310 il_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x82a51647 il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8705405c il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x87614914 il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8de824ea il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8f33b475 il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x92036031 il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9320cc4a _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x94c6a702 il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x959a4a11 il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x95adee79 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x97a0a6dc il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9a17e77e il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9aae4889 il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9ab3289c il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9b7f84ea il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa1a6ce25 il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa397cc02 il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa4bc9781 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa633ea84 il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xab1d2e83 il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xaf8e60a7 il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xafbcf080 il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb0449e2f il_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb0c09ecd il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb49103a1 il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb71c6883 il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb7bd33ff il_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb7efab84 il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbc8bee04 il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbd3a1baa il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbe048888 il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbf670281 il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc0ee43ba il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc1aaea5f il_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc374bd1d _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc39cf12c il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc6a98501 il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc96984db il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xca9b0677 il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcfc1039a il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd19c4189 il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd4e20978 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd6f1b03b il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd8922ce9 il_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd8bb776e il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdafbb778 il_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdb9b1bee il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xde700d38 il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe25c775b il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe435493a il_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe4cab16d il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe67c5559 il_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xecffdf48 il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xee7c9742 il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf2db334a il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf3421124 il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf501278b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf5b2a9e2 il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf68837da il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xff7f7ed0 il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x084b4719 __tracepoint_iwlwifi_warn +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x39483213 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x57a72d66 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x5c04aae1 __tracepoint_iwlwifi_err +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x7fd93860 __tracepoint_iwlwifi_crit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x8dcc4441 __tracepoint_iwlwifi_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xaec44e29 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xb54212ab __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xbc905f54 __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xcf2b88e0 __tracepoint_iwlwifi_dbg +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xda9416fc __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xe9fb9634 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xf161b336 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xf5eccf84 __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x136c58fd orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x13f7406f orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2ed26aef orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3e25820d free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x400e2c9c alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x43a87d00 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5136eeff orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x66a93964 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xadc6e08b __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb8583484 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbe77666f orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd072ed75 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe67a7356 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe7b15bee orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe8bbb05b orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xeafbe45a orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xef64033b hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/btcoexist/btcoexist 0x3498ae2e rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x16dd0232 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1e05416d _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1fa99aa7 rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x216bac17 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x254f0f85 _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x256f82b3 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3cae1ae4 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x46e6c724 rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4e40cadd rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5468712c rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x56e93a6a rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x580ec605 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5f2ba8e7 _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5f651a95 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x76059109 _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x76b5ba2c _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x84f27617 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x87993724 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x920140b6 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9950c7ef rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9a6024ab _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9e3f2dde rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb0be285c rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd09bcb80 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd54df2b5 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd65abd35 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd703ed09 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd7e3ad41 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd872f0a7 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdc15beaa rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdf4164d9 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe4e6e45b rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe5cc126d rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe8146359 _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe8c0235b rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf316594e rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf637f933 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf772ea4e _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfa103d34 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfa48d540 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfa987e27 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x50a864bb rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x63e571c2 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0679fef6 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x10753c28 rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x17ad2c12 rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x197b45d1 rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x207fbb70 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x36bf9067 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x46a8498c rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4cfd6aaf rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4fd08c34 rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5192d49d rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5d9bc435 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x77c90c08 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79188a02 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7b819fe3 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x913cad04 rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x97522a72 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xac10bf75 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xbf36c729 rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe31f7ae0 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe6b5f416 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe6bf51c7 rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfa515c1a rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x3459587d wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x3d1c8f6e wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x5aa4b6b2 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xd6142856 wlcore_tx_complete +EXPORT_SYMBOL drivers/nfc/microread/microread 0xa0162f17 microread_remove +EXPORT_SYMBOL drivers/nfc/microread/microread 0xb97e16ff microread_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x987f0d48 pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xd201f9c7 pn544_hci_remove +EXPORT_SYMBOL drivers/parport/parport 0x012cf49d parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x08939018 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x17cfba6e parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x1b4065e4 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x1d65dc08 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x246fd530 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x31a859b1 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x31f3d553 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x3426a8a4 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x381c629c parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x437a616d parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x50f5dde2 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x562bffc4 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x6193b841 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x623a4795 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x64fa2a4b parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x75209852 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x7b7ca986 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x82c59f3d parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x82f58f6f parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x84d03683 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x8e0493d7 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x95e9b09b parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x9d2b1385 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xa5b98357 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xc7966ddb parport_release +EXPORT_SYMBOL drivers/parport/parport 0xcac01396 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xd51068bb parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xd60eab1a parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xedaba916 parport_register_device +EXPORT_SYMBOL drivers/pps/pps_core 0x69772e0f pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0x9ccc486c pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xd1e51ea9 pps_lookup_dev +EXPORT_SYMBOL drivers/pps/pps_core 0xf773219e pps_event +EXPORT_SYMBOL drivers/ptp/ptp 0x1f0098f6 ptp_clock_register +EXPORT_SYMBOL drivers/ptp/ptp 0x3c1ece33 ptp_clock_event +EXPORT_SYMBOL drivers/ptp/ptp 0x7b931c70 ptp_clock_index +EXPORT_SYMBOL drivers/ptp/ptp 0x80288ac5 ptp_clock_unregister +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x02a8f02c rproc_add +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x51d7095e rproc_alloc +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x52db7f6e rproc_put +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x5f05d041 rproc_boot +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x70b7d150 rproc_del +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xa06e0412 rproc_vq_interrupt +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xdfbeb0aa rproc_da_to_va +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xee6b8417 rproc_shutdown +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xf22ae98c rproc_report_crash +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x083bfdc5 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0f672ab1 fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x14e53cc0 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1d050b4b fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x22dc55d9 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2ec1e15d fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x57207103 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x71f8676c fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8ef024db fcoe_ctlr_destroy_store +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xaa60637a fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb8e8182b fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe2a94c30 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0fc654ae fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x117346a8 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1285fea8 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1652e359 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1cac2524 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1f33d1ea fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x24ba6963 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x26d17254 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3384a320 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3588f618 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x380bf191 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3cf4c39b fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3eac20ba fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x48cc00be fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4a3cbc6a fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c5eee93 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4dea36bc fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x556a8777 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x58f0f761 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x65d0721e fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x66c72631 fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6af2db21 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6d64b4d9 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e1fb7d8 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7a5db255 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x84c9ce68 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x85c36f28 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x87f3eaf4 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8a3ad83b fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8b0ff65a fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8bb69cee fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8e7b0bf3 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9647d812 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9a5b442e fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9aaaa7cc fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9bfbbde6 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9e897b87 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbdf29cb5 fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc176a441 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc2737972 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc753d87e fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd7988fb2 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdf3f2581 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe2959252 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe49d0109 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xebecc835 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf3315d4b fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf38bb011 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfb860530 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfb9089b1 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc471e52 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xff6dc52f fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x385cf0b5 sas_wait_eh +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x49209f90 sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xf0effe6c sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xf8eb0832 sas_resume_ha +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xa1ada96a mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0093eaf8 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0dbff1b6 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1f8a3aea osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x261934be osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2b1cfd7c osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2d62a099 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2d8fa438 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x346b5be8 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x38b24e17 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x39cdeba9 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4bd37d7a osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4c224238 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x53a99afa osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x53af8ca0 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5567d32d osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x59781a02 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5e5c42b1 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x61a7fad4 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6723c63a osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x69ce197d osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6f9a482b osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7c3627b1 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7e3155a9 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x89ce2d1b osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa04e7783 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xab1d9427 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb833db65 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc187d0ba osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc40133e2 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc561f1e9 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd1ed6bf6 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe0dce626 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xea74270a osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf1cf41c5 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf3e12b7c osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf963e791 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/osd 0x0277da5c osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x06fe3346 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x16905772 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x444866e8 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x661bd4cd osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xd90ae6e2 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x191c525b qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x2de4ec77 qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x2fcc3aac qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x76b497ff qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7e9422c5 qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xa9fcdca0 qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xac76a3c2 qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xb12f83eb qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xb774c060 qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xc76365e6 qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xd30ca8a8 qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/raid_class 0x5536344a raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x9fccfec0 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xb674dbec raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x08d89c74 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0aded956 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x399b418f fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5cb06abc scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5f61cc65 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6122a43b fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x738c9187 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8657bd4d fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9d68c1e8 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb86ed421 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdd18d310 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf03ec0f2 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf4d8ffb9 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1ad0835a sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1e68f5ee scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x25d373b5 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x270e88d6 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2c83f15b sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x32bf59c6 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x36c1dad0 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3b24829b sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5903f820 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6b906950 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6e6cf24a sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x716af8a6 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7c37d313 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8898adc5 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9e091043 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9f4f9d02 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9f6310e9 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb19c8301 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb7ce7d00 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbe7d4110 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc62f71be sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe1fc89b0 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe7da6a37 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe92fe46c sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe93aa1e7 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xea140188 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf0b11a51 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf469edc9 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3db65a08 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x53a3d65b spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x58b90eed spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7a94ea03 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xf7da0646 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x1ba97c68 srp_rport_get +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x528e445b srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x5b117387 srp_reconnect_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xf18013e1 srp_rport_put +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x261cb80f ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x47e61dad ufshcd_runtime_idle +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x719d7a57 ufshcd_runtime_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x0f7f1632 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x144e5265 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x1653a550 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x1e9cb826 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x2f22185c ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x4084ca11 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x4aa09b22 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x79c2e38e ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x8eb2b1f4 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x9127b6bd ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0xb740b7e5 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd1a222c9 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd64f68af __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xda4ec8cd ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xda6923ee ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xdffdf2e2 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xeb634fd1 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xecb0db28 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xef1b7d81 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xf1170d81 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xff4d4d3b ssb_bus_suspend +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0x5142cf6c fwtty_port_get +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0xb44dda54 fwtty_port_put +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x922d1eea adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xb89bd9b7 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x66a2308c ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xbf92378c ade7854_remove +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0264d470 lnet_extract_iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0363b57a lnet_copy_iov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0596f53d lnet_set_reply_msg_len +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x07b9d69f lnet_set_ip_niaddr +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0b64da55 lnet_notify +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0b88fe30 lnet_finalize +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0bce7eef lnet_counters_get +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1366b7ac LNetSetLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x19670622 LNetNIInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1b191752 lnet_msgtyp2str +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1fe16fd5 LNetGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x204b8151 lnet_counters_reset +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x27a83005 lnet_copy_iov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x28c62980 lnet_extract_kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2aa9953d lnet_cpt_of_nid +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2ac93e90 lnet_connect_console_error +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x33202a6c LNetGetId +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3a5ba3a6 lnet_copy_kiov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3c779ee0 LNetPut +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3f4f5b46 LNetNIFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x41ebc181 lnet_copy_kiov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x473ad33b LNetDist +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x512544ef lnet_parse +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5811a721 LNetInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x58a1ca89 LNetMDUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5fee352c lnet_acceptor_timeout +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x61f784b2 LNetClearLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x64cdea3a LNetCtl +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x6841b091 lnet_connect +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x6f7be171 LNetEQGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x722c76e5 LNetMDAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x7d59a7fe LNetMEInsert +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x843e1c47 lnet_kiov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x854ab844 LNetEQWait +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8a3064f2 LNetSetAsync +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8ad8035d lnet_unregister_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x962f5575 lnet_create_reply_msg +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x9de986d3 LNetEQAlloc +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa3d61f8d lnet_iov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa8c2760b LNetFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa8e92de6 lnet_register_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa414970 LNetMEUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa9b477e LNetMDBind +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb75f7953 LNetEQFree +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xba5566d2 lnet_acceptor_port +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xbf0760a2 LNetMEAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xc6b23b07 the_lnet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xc86abea3 lnet_net2ni +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xf1b316bf LNetSnprintHandle +EXPORT_SYMBOL drivers/staging/lustre/lnet/selftest/lnet_selftest 0x078db139 lstcon_ioctl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x001d3369 seq_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x1c4bb5f9 LU_OBF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x375e6f8d LUSTRE_BFL_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x5c2e698d seq_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x7e95648a client_fid_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x8254566a seq_client_get_seq +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xae61cff5 LU_DOT_LUSTRE_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xbcf7e0ce seq_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xc23579f2 client_fid_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xc997a02f LUSTRE_SEQ_SPACE_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xecee2727 LUSTRE_SEQ_ZERO_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xf5b8e440 seq_client_alloc_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x17587020 fld_client_add_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x3d68e6c9 fld_client_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x8e48ffc4 fld_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xa4c13cbf fld_client_proc_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xcfd06b5b fld_client_del_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xee236f63 fld_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xfdd75f59 fld_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x000c507f libcfs_debug_dumplog +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x01db5172 cfs_percpt_atomic_summary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x03387ca6 cfs_curproc_groups_nr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x03dea4d3 cfs_race_waitq +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x04d3ce6a lbug_with_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x05c87ef0 libcfs_sock_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x069f9bb2 cfs_wi_schedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x08ada613 libcfs_console_backoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0a14b775 cfs_percpt_lock_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0a92bb19 cfs_hash_getref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0b3ad299 cfs_hash_findadd_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0b4b1546 libcfs_lnd2modname +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0ca2d23f cfs_hash_rehash +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0de6c369 cfs_cap_lower +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0e4820ab cfs_percpt_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0f49dd81 upcall_cache_flush_all +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0f5eff79 cfs_percpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0ff51426 cfs_hash_dual_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x117c8a95 cfs_cpt_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12426266 libcfs_run_lbug_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x15565c7f cfs_cpt_set_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x17ac7833 libcfs_deregister_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1910d48b cfs_percpt_lock_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1a60d439 cfs_parse_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1d5a3928 cfs_timer_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2663147a __cfs_fail_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x26bedd60 cfs_hash_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x27b6d3ba cfs_ip_addr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x28afa7fc cfs_hash_debug_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2a31663b upcall_cache_put_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2a582c5a cfs_hash_del_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2b1e0458 cfs_get_environ +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2c9d4e18 libcfs_sock_setbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2dbe54b2 cfs_trimwhite +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2eb30b23 libcfs_sock_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x30986343 cfs_range_expr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x30d585c5 cfs_hash_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x31fc5082 cfs_crypto_hash_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x34f32dc9 cfs_hash_for_each_safe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x361e82d4 cfs_firststr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x377f93fb cfs_srand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x38828b92 cfs_cpt_unset_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x389ca502 libcfs_debug_mb +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x39fdcd2b libcfs_debug_set_level +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3a62a183 cfs_cpt_set_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3c1285bd libcfs_subsystem_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3cc97a08 cfs_hash_for_each_nolock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3d5e6098 cfs_race_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ea730c0 cfs_gettok +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ef0d90c libcfs_kkuc_group_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3f0d9281 cfs_wi_sched_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3f37358f libcfs_sock_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x411db754 cfs_crypto_hash_final +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x413056d8 cfs_cpt_weight +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x41ab33a1 libcfs_ipif_free_enumeration +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x41e922d9 libcfs_sock_getbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x42989621 libcfs_kkuc_group_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x42e22feb cfs_cpt_table +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44839bbb cfs_rand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44f07cfc cfs_pause +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x47fdb4d1 cfs_timer_is_armed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x48f163c6 libcfs_str2anynid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4a99af72 cfs_clear_sigpending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4aaba153 cfs_hash_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4b792dc7 cfs_hash_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4f1d3adf cfs_hash_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4f1f2fa5 cfs_crypto_hash_digest +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x50345570 libcfs_str2net +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5051b6d2 portal_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x509d38b0 libcfs_net2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x52e9cfc1 cfs_cpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x53b383e4 cfs_cpt_unset_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x545c2435 upcall_cache_flush_idle +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x54fd9a71 cfs_percpt_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x55a037e8 upcall_cache_downcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x56595649 cfs_hash_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x58a7ee00 libcfs_catastrophe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5946ec2b cfs_percpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5c013b81 cfs_expr_list_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5ce62c0e cfs_cpt_table_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d3be65a cfs_crypto_adler32_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d73c3e3 cfs_expr_list_free_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5dce9e80 libcfs_lnd2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x61963be9 cfs_hash_is_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62289d65 cfs_array_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x64685fef libcfs_console_min_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6564c55b libcfs_console_max_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x65dd9f0c libcfs_run_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x66136d2d cfs_timer_arm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x67398404 cfs_wi_sched_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x68497dbf cfs_cpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6b6fce89 cfs_hash_dual_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c605eaa cfs_cpt_unset_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c905b5f libcfs_watchdog_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6dfa9ea1 cfs_crypto_adler32_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6e6af71c current_is_32bit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6f928e1b libcfs_debug_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x71f662a3 libcfs_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x738e5af5 cfs_percpt_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x740cdd58 cfs_hash_size_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x742d26e0 cfs_hash_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x752858fb cfs_cpt_table_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7565fbba cfs_hash_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x76e75041 cfs_hash_debug_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7a3d49ae cfs_expr_list_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7a75b523 cfs_hash_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7b0b748a cfs_ip_addr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c7986cf waitq_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7d3b386c cfs_hash_rehash_cancel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7d93cded cfs_cpt_of_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7e6f6485 cfs_ip_addr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7fda989d cfs_fail_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8151c3aa cfs_cap_raised +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x831e04fb cfs_hash_bd_peek_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x83d795e4 cfs_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x83f2c5c9 cfs_hash_rehash_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x841e4c39 cfs_hash_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x857aaea7 libcfs_register_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8840f591 cfs_block_allsigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8a8f66da cfs_hash_dual_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c85e4e6 cfs_crypto_hash_speed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8e61d47b cfs_cpt_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8eded0f0 libcfs_kkuc_msg_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f12bb52 libcfs_log_goto +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f45f10d cfs_init_timer +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x91504e8b libcfs_kmemory +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x925ced2d upcall_cache_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x92e3737a cfs_hash_bd_move_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x940ed192 libcfs_stack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x95620e8c cfs_wi_deschedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x957f1d04 cfs_percpt_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x97b0b9bc cfs_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9879b229 cfs_get_random_bytes +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x996c53bb cfs_crypto_hash_update_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9c43568d cfs_hash_cond_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9c810d46 libcfs_sock_abort_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9e420643 cfs_restore_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9f702602 cfs_hash_bd_add_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9f82f712 cfs_trace_copyout_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa2b68b2a cfs_array_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa59e6cdc cfs_hash_rehash_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa6b9dee6 libcfs_kkuc_group_rem +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa711aec5 cfs_cpt_table_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9088531 cfs_expr_list_values +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9dc74e2 cfs_trace_copyin_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9eae690 cfs_str2mask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xaaf59b75 cfs_cpt_set_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xab887583 init_waitqueue_entry_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xad019238 cfs_str2num_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb141dff7 add_wait_queue_exclusive_head +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb42d008e cfs_hash_bd_del_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb53b5569 cfs_cpt_spread_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb883b006 cfs_percpt_atomic_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbada117b cfs_cpt_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb972619 proc_call_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb9cb508 cfs_curproc_cap_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbd5d492e cfs_timer_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbf7a37f1 cfs_signal_pending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc0ea7fc0 cfs_expr_list_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2911d96 cfs_expr_list_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2dfd791 libcfs_console_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc39fd2f9 libcfs_panic_on_lbug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc3eb614e libcfs_ipif_query +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc3ecbab8 libcfs_sock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc47433a6 cfs_capable +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc49b1c62 cfs_percpt_atomic_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc77a24c3 cfs_cpt_set_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcb385db9 libcfs_debug_binary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcbab8493 schedule_timeout_and_set_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcc20e694 libcfs_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xccc45639 cfs_free_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcd38904c cfs_wi_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xce1a88f2 libcfs_arch_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf61bacb __cfs_fail_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd0d8d08a cfs_cpt_unset_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd2b128e0 upcall_cache_get_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd3985935 upcall_cache_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd47515ca libcfs_sock_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd6a52be3 libcfs_printk +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd6f1fc60 cfs_strncasecmp +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd96f406d cfs_cap_raise +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd9783a01 cfs_hash_hlist_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xde17bb8d libcfs_isknown_lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xde7bdf2c upcall_cache_flush_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdf2789c0 cfs_curproc_cap_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdfecb98d cfs_block_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdffc951d cfs_timer_disarm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe38fb7bf libcfs_sock_listen +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe3b9ae5a libcfs_sock_getaddr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe3bf6897 cfs_percpt_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe6555032 libcfs_ipif_enumerate +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe7b54314 libcfs_arch_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xea411f63 cfs_block_sigsinv +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xebe084c1 cfs_hash_dual_bd_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xec1f56d5 libcfs_str2nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeccafa5c cfs_cpt_online +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeceac781 cfs_fail_val +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xedbfa1db cfs_hash_dual_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xedf3a25a cfs_timer_deadline +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf1f98ed4 cfs_hash_dual_bd_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf2c02048 cfs_cpt_bind +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf440bb38 libcfs_kkuc_group_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf4d96eb4 cfs_hash_for_each_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf5f64f4d cfs_hash_add_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8a8644b libcfs_id2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8efb8c5 waitq_timedwait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf94025d1 libcfs_str2lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfd6a0184 cfs_hash_for_each_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfe565fa9 cfs_crypto_hash_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xff0f98a6 libcfs_debug_vmsg2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x18cb6d7c ll_stats_ops_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x302e655d ll_osscapa_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xcd3cde92 ll_iocontrol_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xda0af7a3 ll_iocontrol_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xe74b8daa ll_direct_rw_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x08a84c53 lov_stripe_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x13facc31 lov_read_and_clear_async_rc +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x70bd4522 lov_lsm_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x7bc481e1 lov_device_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xa203fced lov_stripe_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xa9d6b638 lov_lsm_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x0a87caab fsfilt_get_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x16657f64 lprocfs_counter_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x3f1d565e pop_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x64aa196b lustre_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x9bb1254a l_dentry_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x9e3b2d27 fsfilt_put_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xa54a496d lprocfs_counter_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb4a870f9 lprocfs_stats_alloc_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb4f8ee63 lprocfs_read_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xc333d896 fsfilt_unregister_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xd1f8863a obd_memory +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xd6bffd4b fsfilt_register_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xe2778972 push_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x14a47f31 it_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x9c22b84f it_open_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xb57d8447 it_set_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xf46a886f it_clear_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mgc/mgc 0xdc287f95 mgc_fsname2resid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0021006c cl_lock_get_trust +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x00b6780c lustre_common_put_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0103035b cl_env_implant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x01665e34 class_parse_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x021085b7 cl_page_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0259aad7 lu_dev_del_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x035852d0 lustre_swab_llog_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x041fb406 lprocfs_exp_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0573b7e2 cl_lock_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x057f6d4b class_find_old_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05993358 cl_lock_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05b81c3f cl_page_list_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x075466ac lu_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07aa68bb lustre_swab_lustre_cfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x08105889 lu_context_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x083942ff class_del_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x08e9e944 lustre_process_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x090deb9c class_conn2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x09b2f2e7 cl_2queue_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x09c072cd cl_lock_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b0e5f7d class_disconnect_stale_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b5c5991 class_search_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0be48edc cl_env_nested_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0c2fe3bd lprocfs_exp_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0c8a3f18 cl_page_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0cd06a9e class_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d0ce98b cl_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d2dc9d6 cl_2queue_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d48f18c lu_context_key_register_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d63f8f3 cl_page_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d7298e6 local_index_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0dfca9a8 cl_lock_descr_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fe91547 obdo_to_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x101fba0e cl_page_clip +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1036a0e2 lprocfs_free_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11495519 lprocfs_write_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11d3ac7e dt_declare_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11d74175 lustre_register_kill_super_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x123e5b5b dt_directory_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x12547bf7 local_index_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1286588a cl_lock_discard_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x135aedaa lprocfs_rd_num_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1406242c lprocfs_rd_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1491dc30 lu_context_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1686340e llog_open_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x16de11f4 cl_type_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17260880 obdo_cpy_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1814d2bb class_import_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x19ad0431 lu_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1b555017 lu_env_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1b79691b cl_page_list_move +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1beba634 cl_lock_modify +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1f24d4f1 class_num2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1f67a689 dt_locate_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2035da0e cl_io_submit_rw +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21f07589 cl_page_is_vmlocked +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21f7e03d lprocfs_rd_timeouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x221826f1 class_parse_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x22a7503d cl_lock_enclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x22e1e731 cl_page_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2347b77d cl_queue_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2355b1f9 llog_obd_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x23568cc1 class_fail_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x24329424 lu_object_find_slice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x245f8452 capa_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2473e0a9 lprocfs_clear_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x251ea73a cl_io_commit_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2547efae lustre_uuid_to_peer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x25bc6229 dt_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x26443426 lu_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2679ad37 cl_io_rw_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2691421f class_handle_hash_back +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x275cdc7a cl_env_reexit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2765f9e2 llog_cat_declare_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x296e5d6a cl_req_page_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x297cf5e0 class_handle2object +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x299cfc1b lprocfs_oh_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x29d7fa42 class_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2aa2432e llog_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ae1cd79 kuc_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2bcd4e95 lu_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2cac2772 obdo_from_iattr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ce8ba1f cl_lock_at_pgoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2d1bb63d class_detach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2d9db17d cl_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ec960d7 cl_page_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2f8a307f lu_object_locate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2f98cfcb cl_page_find_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x303ab68e cl_io_lock_alloc_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3058b378 cl_lock_extransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x305d4124 cl_lock_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x323a942b class_register_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32ba7a38 dt_quota_slv_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32c3a5f2 cl_locks_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32cf3e3e llog_cat_cancel_records +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32edd553 lu_context_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x335e580c dt_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x33c151e3 lu_buf_realloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x344058f8 cl_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x34ae72a6 class_manual_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x34dbf893 lprocfs_alloc_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3573afd9 lu_object_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x35b57905 cl_2queue_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x36f86614 cl_sync_io_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x375a675a lprocfs_init_ops_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37ed6e4b at_early_margin +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38b27c72 cl_lock_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38fb0c90 class_match_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x396b3665 lustre_idmap_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3a2345bd cl_offset +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3bbdca3a cl_wait_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3bd5b03b lu_kmem_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3cdb442a llog_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3d1ba6a8 cl_pages_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3d563660 llog_cat_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3e26c62b lu_context_key_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3eab7bfe LU_BUF_NULL +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f7e753a cl_lock_unhold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f9ee229 class_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3fd1ee25 cl_lock_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3fece890 obdo_to_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4152bcb3 cl_lock_mutex_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4185d5ef lu_context_key_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x41d1f757 lprocfs_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x432ee3bb cl_lock_weigh +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4386acd1 cl_page_list_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x43cc89ee lprocfs_rd_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x43d7e85e cl_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x443c7884 dt_store_resolve +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44e41abb lustre_posix_acl_xattr_filter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x452f559a lu_buf_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x453d65a0 lprocfs_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x45c9257f obd_devs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x472cf013 cl_lock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x474ed5bd lustre_swab_ll_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4754d0e9 cl_page_list_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x475af21d lu_cdebug_printer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47b35f7d statfs_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x486535ca lu_site_purge +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x487fd8d1 capa_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x494cfb52 lustre_acl_xattr_merge2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a0f6ea lustre_posix_acl_xattr_2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4a909627 cl_conf_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ac58713 obd_connect_flags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4aefe43a cl_object_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c190aad lprocfs_find_named_value +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c4c700b obd_alloc_fail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4cd6d7db dt_record_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d13458b kuc_len +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4efdab6d lprocfs_nid_stats_clear_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4f86396d cl_page_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4f9ceded dt_index_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x502c0d57 llog_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50751f90 lu_context_key_degister_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50b0df75 capa_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50bc0105 lu_device_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50c0238e cl_env_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50c7fc36 ptlrpc_put_connection_superhack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50df9492 cl_page_list_splice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x510f620c lu_context_key_degister +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5124f25f lprocfs_oh_tally_log2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5283e8a7 cl_page_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5308447b cl_lock_state_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5331612e class_connected_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x53dc3444 cl_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x53e42de2 lprocfs_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54885f87 ldlm_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54cb86ce cl_object_attr_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x552883fa llog_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x55656a96 cl_page_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x556c4738 cl_lock_mutex_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x558bec27 obd_ioctl_getdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x559d09b2 lprocfs_seq_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x564e9d44 init_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x570d09ae lustre_swab_lu_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x574e6386 lu_env_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x57637c93 class_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x582b013d dt_quota_glb_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a20d896 obd_memory_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5bc022c5 lprocfs_dt_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ccad899 obdo_from_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5cf679f2 cl_req_page_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d34ae0d cl_lock_mode_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d5e4570 cl_lock_disclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5da14519 class_unlink_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ddbd3d8 md_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e06ea71 cl_io_submit_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e9c6c73 cl_2queue_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ed188a9 lprocfs_add_symlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5eed8a51 lprocfs_rd_conn_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5f69c8d5 cl_lock_user_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5fe97b73 block_debug_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x60172a1d lprocfs_counter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x610df2fe lustre_idmap_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x616ebcc1 lprocfs_rd_connect_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6241b617 cl_object_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x63002d40 lprocfs_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631a518d mea_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631fd7b9 lustre_ext_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x64874435 lu_object_invariant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x64be4c39 cl_io_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x64cf7c7a llog_cancel_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x655814b1 dt_try_as_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x662a2191 llog_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6734adbd lprocfs_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x675244fa dt_otable_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x677fd7f9 proc_lustre_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67977b42 lprocfs_remove_proc_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67a90622 la_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67dc223a lprocfs_remove +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6802e101 cl_lock_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6890d175 lustre_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69c42114 at_min +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a4aa94c cl_io_iter_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a8286b9 capa_cpy +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a8b15c9 lu_device_type_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6af92989 cl_req_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6b510fb4 cl_env_nested_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6b62cf91 lu_ucred_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6b9fab8f llog_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6cb8a626 lustre_idmap_lookup_uid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6d049da9 cl_lock_is_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6dae05ea cl_lock_hold_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6db8f62f lu_object_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6df300ea lu_context_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6e28e48c llog_cat_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f2ca580 dt_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x706d934d __llog_ctxt_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x709f3342 dt_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x71db22f6 lu_env_refill_by_tags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x720167f4 cl_io_iter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72ddee4c obdo_le_to_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x73788911 lustre_idmap_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x73d27487 lu_context_enter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x73ecc374 cl_io_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x742559b1 class_unregister_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x744dfaa1 cl_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x748ba4ce llog_declare_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x74adb4ed class_import_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x751d3a4e dt_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x752f71a8 class_get_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x756a77f3 class_parse_nid_quiet +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x75874c7c dt_txn_callback_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x76afe096 llog_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77d2089a class_name2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7802fcd7 lustre_swab_llogd_conn_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x786124fd cl_page_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x789796a1 obd_zombie_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x78fcb9a7 llog_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x793656bc class_put_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b078065 class_handle_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b4fc57b at_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b547e2b class_export_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7c315b93 llog_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ed74ab8 lprocfs_rd_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7edcafa0 cl_env_reenter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f7d7cd9 lu_buf_check_and_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fa6ea93 llog_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fad7291 raw_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fe5561a obd_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8031efb8 lprocfs_dt_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x806cc497 class_add_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x80cc923d cl_unuse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x80eb2fc2 lu_context_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x815c6857 lprocfs_wr_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81742d89 obd_ioctl_popdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81a645d0 cl_page_list_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81c03e62 lprocfs_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x82a4060e dt_txn_hook_commit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x82ae3383 lu_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x831f656c class_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x840f4545 cl_req_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8436d0cf class_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x84562edb cl_page_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8489f086 obd_alloc_fail_rate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x849e5385 obd_update_maxusage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x84bac62a lprocfs_add_simple +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8503c454 lu_buf_check_and_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8656b3b9 dt_index_walk +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8684f0af cl_lock_descr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x87549ec8 llog_declare_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x87a4855f cl_page_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x87d2d043 llog_exist +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x897335e9 cl_lock_is_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x89c9fa8c llog_declare_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x89fd5c99 cl_page_is_owned +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8a0fef98 cl_io_loop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8a309aa7 cl_object_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8a8e08a2 llog_copy_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8aa2c358 lprocfs_dt_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b4af67f lu_site_init_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b5f4057 lu_context_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ba6e479 lustre_swab_lu_seq_range +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8bfb8971 cl_io_lock_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8cd56218 lprocfs_rd_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d4c8da0 class_disconnect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8e10e6d6 server_name2svname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8e96f517 cl_vmpage_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8eb0204c llog_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f4bc183 lu_context_key_revive_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f67314c obd_dump_on_eviction +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f978b96 lu_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8fd7273d lu_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9031dc48 lprocfs_oh_sum +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x90be487c llog_cat_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x90d134d9 lu_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x90da72d7 dt_txn_callback_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x918c4911 local_oid_storage_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x919940ad class_conn2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x91e7f15f cl_env_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x927f18b3 dt_txn_hook_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92e58479 obd_dump_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92f5440d cl_2queue_init_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x931ca029 cl_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9345a72b lprocfs_free_per_client_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93b46468 lu_session_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93c817c0 class_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93e7415e class_exp2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9512d507 lustre_acl_xattr_merge2posix +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x955f5220 ldlm_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95735c6c at_extra +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95995341 cl_page_list_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95b78c46 lprocfs_init_mps_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95ec998a lustre_groups_sort +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x96461645 llog_cat_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9767adce class_uuid2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x978eddca dt_lookup_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97d03783 at_history +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x98db2388 llog_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9939f855 lprocfs_single_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9a7ca6b3 cl_lock_hold_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9a8cfc1d cl_page_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b1ed9d8 obd_jobid_var +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b46dd8a dt_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9dae83d4 lprocfs_stats_collect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9dbb17b6 lprocfs_dt_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9e35a137 cl_object_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9ee3f3ab local_file_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9f399db7 cl_page_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9f544ea0 lu_env_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9faa2738 cl_page_list_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa0407ddc class_process_proc_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa11c167b cl_lock_ext_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa1a111c0 llog_cat_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa1c0898b cl_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa21c5ea1 obdo_from_la +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa236e324 dt_version_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa2868740 cl_page_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa29e7fb3 lu_object_add_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa2b60811 cl_page_make_ready +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa31b36b0 class_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa34caa92 class_config_dump_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa4ad82c3 cl_io_read_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa4fc72ba dump_lsm +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa513f7e4 lustre_groups_from_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5b64c77 lprocfs_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5fb234f lprocfs_write_frac_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa674c241 kuc_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa7111090 class_handle_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa805ddd3 cl_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa8bfb18d lu_device_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa8c4e53b lu_context_key_revive +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa9a65a7b llog_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa9e913f6 dt_store_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa9edd959 lprocfs_oh_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa21b7a0 lustre_register_quota_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa5fe38b iattr_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa6315ff cl_page_vmpage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaaeed698 dt_record_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xab056546 cl_io_sub_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabf45922 capa_decrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac41791e cl_page_gang_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac7f1596 kuc_ptr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xacc28973 local_file_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xad3e4192 cl_page_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xae49c2ec cl_lock_signal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaecc506e llog_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaef7f9b8 cl_io_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaf3978f6 lustre_end_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xafa64eb9 lprocfs_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb01963a6 class_uuid_unparse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb08387c2 cl_io_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0fb9886 cl_lvb2attr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb152b29b lu_context_key_quiesce +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1b89b6d class_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb340e189 local_oid_storage_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb35d4fc2 cl_req_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb3a2553d lprocfs_rd_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb3fc263a lustre_idmap_lookup_gid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb41998cd lustre_cfg_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb4760478 lprocfs_rd_numrefs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb51c7d05 cl_io_is_going +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb635af9e dt_acct_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6ba5dd5 kuc_ispayload +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb743ec6a dt_mode_to_dft +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb7572af7 lprocfs_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb76d8990 cl_sync_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb7bf9eef cl_env_unplant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb8d0a698 cl_page_is_under_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb9cbd18c cl_object_kill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba3beda5 cl_io_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba985283 lustre_register_client_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbacac922 lprocfs_write_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbaf67306 lu_object_put_nocache +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbb236917 llog_thread_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbb4fd026 cl_object_attr_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc064e5f capa_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbcd8e681 llog_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbd6436cd lprocfs_rd_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe63ca70 class_new_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe8570b1 lprocfs_rd_u64 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbf00cd60 lprocfs_at_hist_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbfc58d4a cl_use_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbfdbd6b3 lu_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc095570d cl_lock_closure_build +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0bf7ef2 obd_debug_peer_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc10a488a cl_object_has_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc18d06cf lu_buf_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc24264b3 cl_io_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc2a82ba9 lprocfs_add_vars +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc2beef7c dt_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc2cbf865 cl_lock_closure_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc322948d cl_env_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc371e980 class_uuid2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc45dcddd cl_req_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc557bc5f lu_ucred_assert +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc57bfa6b cl_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc6007208 class_incref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc6699fdf obdo_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc736adc6 obd_export_evict_by_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc76db909 lu_object_find_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc848161f class_export_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8dbaa87 lustre_swab_cfg_marker +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc93f5669 dt_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc9b8e9ae obdo_refresh_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb0ab67f obd_max_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccbe5433 lu_object_assign_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcce61e7f obd_llog_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccf7a8de obdo_cpu_to_le +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd7431d6 cl_lock_enqueue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd7537ee get_devices_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xce7e2987 cl_page_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xce975c45 lprocfs_free_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcedb140a obdo_cmp_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcf5a0bc7 cl_page_unassume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd08827c0 server_name2fsname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd10aa042 lustre_swab_llog_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd13d0199 lustre_in_group_p +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd15295e2 obd_export_evict_by_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1816dd9 cl_io_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd18fcd4f dump_lniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1b1478b cl_attr2lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1bb77ae cl_lock_user_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1f58645 lustre_swab_llog_hdr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd28aee76 cl_page_list_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd2f97bd0 llog_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd41cbac4 cl_enqueue_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd441f853 lprocfs_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd473492d lu_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd4b00a3d cl_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd5ba651c lprocfs_obd_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd5e16d9a cl_sync_io_note +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd662c135 cl_page_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd70fe669 lustre_swab_llogd_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bc8654 obd_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bfbc9c lprocfs_dt_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7f7b340 cl_lock_mode_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd84c1051 lprocfs_obd_rd_max_pages_per_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd96ab61b lprocfs_seq_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda5b1ced class_find_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda77e23e cl_io_prepare_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdaa08fef lu_ucred +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdac644c8 lustre_posix_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdae1fe20 class_config_parse_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb13dce1 capa_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcc40af0 class_check_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdceef44e cat_cancel_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd32dd03 obd_exports_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd78c0c7 lu_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xddd46964 cl_req_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde7d985b obd_dirty_transit_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdf1b7c60 cl_io_rw_advance +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdf1ced97 cl_io_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe028cf84 capa_encrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe0ad3888 cl_page_cache_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe0cd5266 cl_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe109dc41 lustre_register_client_fill_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe10b42f9 cl_page_own_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2462224 lprocfs_register_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2eb4470 class_get_next_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3323f5d class_handle_free_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe4a0900f cl_page_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe52ef10b class_new_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe749d161 lprocfs_init_ldlm_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7d83236 cleanup_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe85d1ef0 lu_kmem_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8814dbb lu_object_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8e84c32 class_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8fa7d3a dump_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe913d573 cl_page_list_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe91929ab lprocfs_free_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe9878324 cl_lock_hold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe9f68179 cl_lock_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb3f388a _debug_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb5ec658 lu_dev_add_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xebcf20b6 class_config_llog_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xebf1fd66 lprocfs_alloc_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec22f07c class_devices_in_group +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec7d6b85 obd_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeccf65e0 llog_osd_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xece5cc12 class_exp2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xed039fe9 obd_export_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xed30e689 cl_unuse_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xed9cab0b cl_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xedcf18c7 llog_osd_put_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeddc6656 cl_page_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xedf28120 cl_lock_closure_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee68bc29 lu_session_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeea7eaf9 obdo_from_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeeeb79fa do_lcfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef76f858 block_debug_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf01e2527 server_name2index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf0281c01 lprocfs_wr_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf061e2d4 lustre_idmap_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf069e122 lprocfs_rd_server_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf0966478 cl_lock_nr_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf1f65690 llog_init_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf21c14ed lu_device_type_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf2370115 lprocfs_nid_stats_clear_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf2be511a cl_lock_mutex_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf2fd6695 statfs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3551962 cl_lock_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3bc5b9d dt_lfsck_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3dd6da3 lu_site_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3ea022e cl_env_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf42c432d cl_object_glimpse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf432a570 class_name2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf43ee5a6 lprocfs_alloc_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf490d5f9 class_del_profiles +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf504a6ed cl_2queue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf51dbf95 lu_object_anon +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf52f1b2b class_conn2export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf55f2184 class_disconnect_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf5c939fa obd_llog_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf60d4659 capa_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7020831 lprocfs_dt_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7d16c6f llog_osd_get_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7eee115 lu_object_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf879ae7c cl_page_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf89278fb cl_2queue_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8c2df92 obdo_set_parent_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa22c60b cl_page_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa813d06 capa_hmac +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbbc1bcc local_object_unlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbea0098 lu_types_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbf24c35 cl_object_attr_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc7f18d0 obd_pages_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc7f8a7b cl_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfce4103b lu_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd19ca1a cl_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd68d17a class_notify_sptlrpc_conf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfdbe1557 lprocfs_write_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe041eab lprocfs_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe2619ea cl_page_list_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe46b08d dt_txn_hook_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe73ef21 class_find_client_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfef7f64a llog_cat_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff57e92d class_match_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff85f74e lu_context_key_quiesce_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xffe2b098 llog_cat_init_and_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfffc1f11 lustre_swab_ost_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/osc/osc 0x5c4940c2 osc_update_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00d95039 ptlrpcd_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00de2509 ldlm_pool_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x01608c75 sptlrpc_svc_ctx_invalidate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x01d6ef7f ldlm_pools_recalc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x048b59d5 lustre_msg_set_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0515f93b RQF_FLD_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x055f74c5 ldlm_lock_fail_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x06b3942b lustre_swab_lov_user_md_objects +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x06c6e94a ldlm_cli_enqueue_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x071fc74a RQF_LDLM_ENQUEUE_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x07605c7d interval_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08bb2d27 lustre_swab_obd_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x095587d0 lustre_msg_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x09cda79f ldlm_namespace_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0a024b2e ptlrpc_mark_interrupted +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0a3130b0 RMF_MDT_EPOCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac252b2 lustre_msg_set_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac54708 lustre_errno_hton +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0bcacb5d RMF_MDS_HSM_USER_ITEM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0bff179d sptlrpc_req_replace_dead_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0c2d9c43 lustre_swab_lip_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0c90898f llog_origin_handle_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0cf343dd RQF_LDLM_INTENT_BASIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0d489067 target_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0e338ada sptlrpc_enc_pool_put_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0efea620 sptlrpc_cli_enlarge_reqbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0f87b576 sptlrpc_get_bulk_checksum +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x10456eb3 ldlm_extent_shift_kms +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x10f18f20 interval_iterate_reverse +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x11177c45 sptlrpc_gc_add_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x115017f6 req_layout_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x128d4091 ldlm_destroy_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1294f7ec lock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12b6f5a3 ptlrpc_connection_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1316636e sptlrpc_cli_unwrap_bulk_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1324bd49 ptlrpc_save_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1369bcd4 ldlm_lock2handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x145a16d3 sptlrpc_cli_wrap_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1483eca4 ldlm_lock_addref_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x14d192db lustre_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x15a3e4db RMF_GETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x15df3ea4 ptlrpc_send_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x171cb5d9 client_import_find_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x172fb86d lustre_msg_hdr_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17403f8b ldlm_cli_update_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1747aa7c lprocfs_rd_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1747d8b3 ldlm_lockname +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17950f60 RQF_SEC_CTX +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17eacc3c llog_origin_handle_next_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1806106d req_capsule_has_field +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19108a0f RQF_OST_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19c08934 RQF_LDLM_INTENT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a6a3ce9 RQF_OST_GET_INFO_LAST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a9b76aa RMF_OBD_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1aa0e93d sptlrpc_target_update_exp_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1abd3258 RMF_SETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ace4b5f RQF_LDLM_BL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1af62fc3 ldlm_replay_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1bae0270 interval_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1bcbf517 ptlrpc_reconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1be21715 lustre_msg_size_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c300d8e lustre_msg_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c731b20 ptlrpc_lprocfs_unregister_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1d043548 lustre_msg_set_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1d540724 ptlrpc_cleanup_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1dc2051d RMF_SEQ_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1de9c288 lustre_swab_layout_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1e8e48a4 sptlrpc_flavor_has_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1eb2a65f RQF_OST_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee46b51 lustre_init_msg_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee9eb3c RQF_MDS_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2096f5b5 RQF_OST_SET_GRANT_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x20a12b11 sptlrpc_target_export_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x20d6b82c RQF_LDLM_INTENT_QUOTA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x21199acf ldlm_namespace_new +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2159091c ptlrpc_request_alloc_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x218a36ce ldlm_cli_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x230763ae ptlrpc_add_rqs_to_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x233790b5 RMF_OST_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x242911ea ptlrpc_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x244e5558 lustre_msg_get_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x24aafdba RMF_MGS_TARGET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2585a629 RMF_SEQ_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2587513c RQF_LDLM_CP_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x25960e19 ptlrpc_prep_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x25ca0836 client_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x269554ce RQF_LDLM_INTENT_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x26f99d16 RQF_MGS_CONFIG_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x27006340 ldlm_lock_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2765db38 req_capsule_other_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x285e5b99 lustre_msg_set_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x294c954f ldlm_pool_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x29e0869a sptlrpc_get_hash_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2a63a472 lustre_swab_ptlrpc_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2a7004b6 sptlrpc_cli_unwrap_bulk_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2adfd2fc ptlrpc_invalidate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2afbd569 req_capsule_server_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2b14c8a3 ptlrpc_set_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2c00c60d ptlrpc_sample_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2c73ce5c req_capsule_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ca92fa8 ldlm_lock_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ccd5b87 ldlm_cli_cancel_list_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2cde7262 sptlrpc_gc_del_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d56f168 ptlrpc_pinger_ir_up +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d798316 RMF_MGS_CONFIG_RES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4562fe RQF_LLOG_ORIGIN_HANDLE_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4ca396 RQF_LDLM_INTENT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ecd7515 lustre_msg_check_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2f0e4f87 RQF_OST_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2fd2f737 lustre_msg_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x301d4fcd RQF_MDS_READPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x302937e0 RQF_MDS_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3060b9c6 sptlrpc_rule_set_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x31838cb4 RMF_IDX_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3261b862 RQF_OST_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x32a69d8b ldlm_lock_allow_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x33bb7761 ldlm_typename +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35939a3d lustre_swab_fiemap +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35cf7bad client_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35d3f0c0 ptlrpc_set_add_new_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x37fa67a1 req_capsule_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3835ab4b RQF_LLOG_ORIGIN_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3858fb94 RMF_OBD_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38bd9763 llog_origin_handle_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38c01799 RQF_LDLM_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38fce533 lustre_msg_set_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3954ad0e sptlrpc_sec_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x39a6b95b ldlm_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x39f60a5f RMF_OST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3a1e4bcb __lustre_unpack_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3a4db3c8 ldlm_resource_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ab90f6e lustre_msg_bufcount +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ac00716 lustre_swab_hsm_user_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b4d3a6f req_capsule_init_area +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b5877ac ldlm_cli_cancel_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b6b7cba dump_ioo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3bc241a6 ldlm_register_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3bedb0c7 RMF_LLOGD_CONN_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c3cb93f sptlrpc_gc_add_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c63e62b RQF_MDS_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ca50f33 RQF_MDS_HSM_CT_REGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3d7dc5f9 ldlm_pools_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dc47695 lustre_msg_get_magic +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dc83e32 ptlrpc_buf_set_swabbed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dddb3e2 dump_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3e539760 ptlrpc_unregister_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f034caf lustre_msg_get_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f752e78 RQF_MDS_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ffe73d9 ptl_send_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x40638729 sptlrpc_import_flush_my_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41008cef RQF_LDLM_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x424e92e1 ptlrpc_deactivate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x42ec0677 llog_origin_handle_prev_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43705ee4 RQF_LOG_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43d7efc8 lustre_msg_set_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x44036eda RQF_MDS_GET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x440c2a71 RMF_FIEMAP_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x44557258 ptlrpcd_alloc_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4481591d RQF_OST_SET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x453d203c ptlrpc_recover_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45509fa1 sptlrpc_cli_ctx_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45692b79 ldlm_cli_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45d05893 lustre_swab_lustre_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45e30cea lustre_swab_ldlm_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4692682d client_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x474d8f18 ldlm_glimpse_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47f5e903 RMF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x48814c9f lustre_swab_ost_lvb_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x498c03c5 lustre_msg_set_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4a5a2416 RMF_DLM_REQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4af25b52 ptlrpc_req_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4b09ce4b lustre_swab_mdt_rec_reint +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4d7580d0 lustre_swab_hsm_user_item +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4dd43494 ldlm_pool_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4dfa8d89 ptlrpc_start_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e1706e5 lustre_msg_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e696b96 ptlrpcd_queue_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4eb03a6f ptlrpcd_destroy_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4f766c3b lustre_swab_generic_32s +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50443f6a ptlrpc_init_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50459a47 sptlrpc_conf_target_get_rules +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x507cc5ea req_capsule_set_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50dd74f8 RMF_STRING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x51223855 ldlm_flock_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x51287f34 target_print_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5241d673 lustre_pack_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x52ad3d65 ldlm_init_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x52c62150 RMF_RCS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53411557 RMF_DLM_REP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x534d399f sptlrpc_import_sec_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5379701d req_capsule_extend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53a4a004 bulk_sec_desc_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x54ae5021 ldlm_lock_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x555eb7fe RQF_MDS_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x560cb0ba ptlrpc_set_next_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x56cac597 ptlrpcd_wake +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x56f6a8b9 lprocfs_wr_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x57fb461f client_disconnect_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5833c39a ptlrpc_retain_replayable_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x588035b4 RMF_UPDATE_REPLY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59062041 lustre_pack_reply_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x595ab175 lustre_swab_obd_quotactl +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x596582bf RMF_GETINFO_VALLEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59ca398b ptlrpc_add_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5a057439 interval_search +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5a72fd25 ptlrpc_replay_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5af0d02a ldlm_lock_dump_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b6b4f79 ptlrpc_request_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b6ba895 lustre_packed_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b733ad6 ptlrpc_wake_delayed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5bf5176c ldlm_blocking_ast_nocheck +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5c4e3455 ptlrpc_at_set_req_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5c6a3a83 RQF_SEQ_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5caae213 ptlrpc_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5d1cd637 llog_initiator_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e0b19b1 RMF_CLUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e2b7558 lustre_msghdr_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e44a2dd ptlrpcd_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e4e0989 sptlrpc_enc_pool_get_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e6f435d RQF_OST_BRW_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e80f899 RQF_LLOG_ORIGIN_HANDLE_READ_HEADER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ec3284d RQF_MDS_HSM_CT_UNREGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ef831ee lustre_msg_get_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5f96ccdd ptlrpc_connection_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5fb30c98 ptlrpc_free_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6042bc15 RQF_MDS_REINT_RENAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x604e2505 RMF_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x607ec932 lustre_msg_set_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60cd26ad RQF_MDS_REINT_CREATE_SYM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x61646e1b RQF_MDS_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x618ad203 RQF_OST_GET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62192cf8 dump_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x623612c8 ldlm_cli_cancel_unused +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x623ee7be ptlrpc_prep_req_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62aaae3f RQF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6315dd4c RMF_LLOGD_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6352a62d ldlm_get_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x63586169 ptlrpc_prep_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x647b6e48 lustre_swab_ldlm_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x653723dc RMF_LOGCOOKIES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x65c86989 ldlm_get_enq_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x66431f87 ldlm_cli_cancel_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x684fdd32 ptlrpc_hpreq_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x685eeaba RMF_DLM_GL_DESC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68cb2541 interval_is_overlapped +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68f49e5e ptlrpc_expired_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6912990a RQF_OST_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x696ba811 lustre_msg_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69c9f04d RQF_MDS_REINT_LINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6a3785c9 RMF_EADATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6b07eba8 client_import_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6b08a8d1 sptlrpc_import_flush_all_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6bc4b8a1 sptlrpc_target_sec_part +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6bf8cfb9 ldlm_completion_ast_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6c14321e llog_origin_handle_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d72828c sptlrpc_conf_log_update_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d7931cc RQF_UPDATE_OBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6dd15def ldlm_cancel_resource_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6ed20499 ldlm_revalidate_lock_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6efa82b0 RQF_MGS_TARGET_REG +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f6dc736 lustre_swab_mdt_remote_perm +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6fb92092 sptlrpc_flavor2name_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6fe57b84 ldlm_lock_change_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x703538e4 lustre_swab_hsm_current_action +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x723d43b6 sptlrpc_rule_set_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7253113b sptlrpc_cli_ctx_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x725a892c RQF_MDS_REINT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x74840056 lustre_msg_set_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75857a54 ldlm_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75a2c40d ldlm_put_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x766ddd12 ldlm_namespace_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7696913f sptlrpc_lprocfs_cliobd_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x76b728e5 lustre_swab_update_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77571cc6 lustre_swab_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77840c82 sptlrpc_rule_set_choose +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x78bf9136 lustre_swab_ldlm_lock_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x78c98ae8 ptlrpcd_add_rqset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7a832f10 RMF_CONN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7b158da4 lustre_swab_ldlm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7bbf8001 RMF_MDT_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7c4c6107 RQF_LDLM_CONVERT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d1ecd7f RQF_LDLM_INTENT_LAYOUT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d41a8b9 RQF_QUOTA_DQACQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dc0e7cd RMF_QUOTA_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7df7ece6 ptlrpc_request_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dfb3c18 lustre_msg_clear_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7e314122 llog_client_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7e723e5f ptlrpc_register_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7e7ea947 ldlm_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f28ed10 ptlrpc_abort_inflight +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4925d8 interval_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4c99b1 ldlm_expired_completion_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f5a1cc7 lustre_msg_set_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f6d2357 lustre_msg_is_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7fc1f862 req_capsule_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80a9e8c3 lustre_msg_get_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80ecb4e3 RMF_MDS_HSM_CURRENT_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x814501e4 ldlm_namespace_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x815ee4ae req_capsule_server_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x817d7f1f lustre_msg_add_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x817dc042 ptlrpc_activate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x818ed5f0 __ptlrpc_prep_bulk_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x826d3c4f RQF_LDLM_GL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8290f9e9 lustre_pack_reply_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x831c8f7d ldlm_cli_enqueue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x837efb00 RMF_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x84a34f67 ldlm_lock_downgrade +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x84fb7f51 do_set_info_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85135801 RMF_DLM_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85a9e0d8 RMF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85d73069 ptlrpc_buf_need_swab +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85eecf67 sptlrpc_get_hash_alg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85fe6d0b ldlm_prep_enqueue_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x863db6eb RMF_HSM_USER_STATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x86d52878 ptlrpc_set_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x86fa8c3b ldlm_cli_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8760beaf lustre_swab_ldlm_policy_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x876c2551 RMF_GETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87bf7b3c sptlrpc_get_next_secid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x884d775f lprocfs_wr_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8872f3d2 RMF_SETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x88fff52d RMF_CAPA2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x89f9edf7 RQF_MDS_REINT_SETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a1ea476 lustre_swab_hsm_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a257736 RQF_MDS_HSM_STATE_GET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ac440fa ptlrpc_uuid_to_connection +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8b854254 lustre_swab_mgs_config_res +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8bcb7bf2 ptlrpc_req_set_repsize +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8cb71d4b RQF_MDS_REINT_CREATE_SLAVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ccf6948 ptlrpc_fail_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d6106c2 ldlm_namespace_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d77ea75 lustre_msg_set_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8da3fca7 lustre_msg_add_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ddd5472 ptlrpc_service_health_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8e9abe4d RMF_GENERIC_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8f0aceac RQF_MDS_HSM_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8fec0451 lustre_msg_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9053a7ae req_capsule_server_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x90d1ec60 ldlm_cli_cancel_unused_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x919c4ce3 RMF_OBD_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91cf58d3 RQF_MDS_PIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9283089d req_capsule_client_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x937b1ee0 lustre_swab_mdt_ioepoch +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9382396d unlock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9415549d ptlrpc_unpack_rep_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x942bf65f ldlm_pool_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9476b023 ptlrpc_init_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x94a50631 ptlrpc_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x94bf5c91 req_capsule_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x94dfa4d4 req_capsule_server_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x950d7b7d ptlrpc_prep_fcset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9553c633 RQF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9588b55e ldlm_pool_get_lvf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95d08f0c lustre_swab_mgs_target_info +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9648b06a lprocfs_wr_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9660ace0 RMF_FLD_MDFLD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x967bfd52 RQF_OBD_PING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9798f2f1 RQF_MDS_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x980fcfdc ptlrpc_connection_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9810a8a3 ldlm_pool_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x99615f94 ldlm_reprocess_all_ns +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a258886 RQF_MDS_GETSTATUS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a6f2f6d lustre_msg_set_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9b88f6ce RMF_NIOBUF_REMOTE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9bb5198b RQF_MDS_CLOSE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9cbcd743 ldlm_lock2desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d4645fa req_capsule_client_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d7ea314 sptlrpc_pack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d85ddba ptlrpc_request_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d9ac24f ptlrpc_set_import_active +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9dff4818 ldlm_resource_unlink_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9e82107f ptlrpc_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9fb088f1 lustre_swab_lov_mds_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9fb80f7f ptlrpc_req_finished_with_imp_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa0b0392f req_capsule_server_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa10f0d3d RMF_UPDATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa163f4c3 dump_rniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa21afcfa ldlm_namespace_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2244636 RQF_MDS_GETATTR_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa22c0086 ldlm_error2errno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2988255 req_capsule_server_sized_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa3d2a6ee RMF_CAPA1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa47787ef RMF_PTLRPC_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4a2d089 RQF_OST_PUNCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4bea5ef lustre_swab_lmv_user_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5458dad ldlm_lock_decref_and_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5880075 ldlm_errno2error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa6c2a4ba ptlrpc_unpack_req_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa6c436ca RQF_MDS_WRITEPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa739bdfb ptlrpc_resend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7d1799a ldlm_prep_elc_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7d55cc3 RQF_MDS_REINT_CREATE_RMT_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7e360b1 RMF_OBD_IOOBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7ec567d RMF_CONNECT_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9704f80 lustre_msg_get_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9c4658e lustre_swab_lov_user_md_v3 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9edf09d RQF_OBD_IDX_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xab300a99 req_capsule_client_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xabeec82a req_capsule_client_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xadbedcec ldlm_resource_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaddc3979 lustre_swab_lustre_capa_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaea8ae97 ptlrpc_lprocfs_brw +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaee3daec sptlrpc_cli_ctx_wakeup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf4e9658 RQF_MDS_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf50a0d6 RMF_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf92c9d4 sptlrpc_cli_ctx_expire +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0751fa4 RQF_LLOG_ORIGIN_HANDLE_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1048afa ptlrpc_request_bufs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1b43d8a dump_rcs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb27c2374 lustre_msg_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb291473d lustre_msg_early_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb2aa85df llog_origin_handle_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb2b1817d lustre_swab_ost_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb36c59dc ldlm_pool_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb49da6f9 ptlrpc_pinger_del_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4a7ecf3 lustre_msg_add_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4d61737 ldlm_lock_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb512ebc2 sptlrpc_parse_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb58d0bde ptlrpc_pinger_sending_on_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb61cb95a RQF_MDS_GETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb68476df interval_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb69b7ba6 ptlrpc_prep_bulk_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb6aafd03 RQF_MDS_DONE_WRITING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7699865 ldlm_resource_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7b38189 RMF_MDT_MD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7fa3cc8 RMF_LLOG_LOG_HDR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb88f5fce ldlm_resource_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb903634e RQF_OST_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb9b631cf lustre_swab_mgs_config_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbaa76097 lustre_msg_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc1370dc lustre_shrink_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbd83bc44 RQF_OBD_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbe1b6c16 ptlrpc_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbe47bc7e ping_evictor_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbea7cfc5 sptlrpc_sec_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbf2b882a ldlm_pool_set_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbf98b86f RQF_MDS_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbffd4313 RQF_OST_BRW_WRITE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc06c4670 lustre_msg_get_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc06e96f0 ptlrpc_nrs_policy_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0867da7 RMF_REC_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0cdf55e RMF_MGS_SEND_PARAM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc124b6f9 __ldlm_handle2lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc1f73bc5 ldlm_destroy_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2986d28 lustre_swab_ldlm_res_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2b1af57 RQF_MGS_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2be922a RMF_SYMTGT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc3c7eefa sptlrpc_sec_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc50b3fcb client_import_del_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc559a634 RMF_LAYOUT_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc5f11c9f ptlrpc_commit_replies +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc60a60e1 RQF_OST_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc6462b93 ptlrpc_nrs_policy_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc694be4b RQF_LLOG_ORIGIN_HANDLE_PREV_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc763fabc sptlrpc_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc79b9c67 ldlm_pools_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7ca8257 RQF_MDS_REINT_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7e47564 ptlrpc_interrupted_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc87ef883 ptlrpc_queue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc8f586a9 ptlrpc_connection_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc9523ff0 sptlrpc_conf_client_adapt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca375dfc req_capsule_field_present +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca396259 llog_origin_handle_read_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca5a81ec ptlrpc_pinger_ir_down +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2cc0cf lustre_swab_lquota_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2ceaff sptlrpc_secflags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcbda56a4 client_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcdb7ad25 ldlm_pool_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce1a689b sptlrpc_enc_pool_add_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce1de2d2 ptlrpc_req_finished +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce86066d lustre_msg_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcec513c9 RQF_MDS_UNPIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xced015be sptlrpc_rule_set_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf1f14d4 sec2target_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf66364f ldlm_pool_get_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9963db lustre_msg_get_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9aab6a RQF_MDS_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd188cc0a ldlm_pool_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd1b2f022 ldlm_lock_allow_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2983334 lustre_swab_swap_layouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2e0d4eb lustre_msg_get_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd3dae408 ldlm_it2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd537ded2 lustre_swab_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd575724e req_capsule_filled_sizes +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd67a5d7b lustre_swab_update_reply_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd69e0a27 RQF_MDS_IS_SUBDIR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6b51d0d _debug_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6c3ebfb RMF_FIEMAP_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd7910326 lustre_swab_obd_statfs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8b91b3e lustre_swab_lov_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8f06300 RQF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd9561861 RQF_LDLM_INTENT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xda2ac111 sptlrpc_proc_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdab23dd6 ptlrpc_lprocfs_register_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb1fb0a2 RQF_MDS_REINT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb5f1e79 ptlrpc_request_alloc_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb9d5a6a lustre_swab_niobuf_remote +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdc154678 ldlm_lock_fail_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdcf910b9 lustre_swab_ost_last_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd0ffb04 sptlrpc_flavor2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd30d7bf RMF_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd376e49 ptlrpc_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xddc40a85 lustre_msg_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde12d36b RMF_MDS_HSM_ARCHIVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde555d70 sptlrpc_enc_pool_del_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdee87192 sptlrpc_conf_log_update_begin +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf344db0 ldlm_init_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf701ae7 lustre_swab_fid2path +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe03cc2bf ldlm_pool_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe08e8680 ldlm_blocking_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0cc694c RQF_LLOG_ORIGIN_HANDLE_NEXT_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe3104a4b ldlm_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe3e6464b lprocfs_wr_evict_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe40e0a50 lustre_msg_get_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe48558de ptlrpc_register_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe4b4d6cb ptlrpc_schedule_difficult_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe53111ba req_capsule_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe5695934 ptlrpc_unregister_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe57bd972 sptlrpc_current_user_desc_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe5e8169b lustre_errno_ntoh +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe61fc1b2 ldlm_pool_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe643998e RQF_OST_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6dcad0d ptlrpc_request_set_replen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6f0dc96 RQF_OST_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7062b5f RMF_U32 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7512278 ptlrpcd_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe78dc469 ptlrpc_request_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7bbea1c sptlrpc_unregister_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeaae471b ptlrpc_cleanup_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabaa0b1 lustre_swab_mdt_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabac4fc sptlrpc_rule_set_merge +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xebb64e68 req_layout_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec226f66 ping_evictor_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec939a00 RQF_MDS_REINT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xecace5c1 RQF_OST_GET_INFO_GENERIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed1c10d6 ptlrpc_connection_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed2a8277 target_pack_pool_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xedcb740d sptlrpc_name2flavor_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef1aeca9 RMF_FLD_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0241d6e lustre_swab_hsm_progress_kernel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf081437d ptlrpc_resend_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0d52b5f ptlrpc_pinger_suppress_pings +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf1300275 _sptlrpc_enlarge_msg_inplace +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf146655d ptlrpc_disconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf151849a ldlm_enqueue_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf277c125 RQF_OST_GET_INFO_FIEMAP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf27d49dc sptlrpc_target_choose_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf35f132b lustre_swab_ldlm_resource_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf390dea6 ptlrpc_init_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf3d44370 RQF_OST_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf43540b9 lustre_swab_mgs_nidtbl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf45085e1 sptlrpc_conf_log_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf55c033b RMF_MGS_CONFIG_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf5633077 ptlrpc_obd_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf584a16b sptlrpc_part2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf596e9ae sptlrpc_conf_log_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf5a4a13b ptlrpc_pinger_add_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf607fc23 sptlrpc_flavor2name_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf617ab8a lustre_msg_get_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf64d3457 __ptlrpc_free_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf697b756 ldlm_dump_all_namespaces +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf6cd9c47 req_capsule_server_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf6d6d9b5 sptlrpc_register_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf73402e9 lustre_free_reply_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7408f84 lustre_swab_hsm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7acbcea _ldlm_lock_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7ba40c0 RMF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7cb8cd3 ptlrpc_unregister_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf85cb27e sptlrpc_parse_rule +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf870fed9 RQF_LDLM_GL_DESC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9051bd6 RQF_QC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf926302e lustre_pack_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf94e41e0 deuuidify +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf973aa93 lustre_swab_lov_user_md_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9ee11e2 lustre_msg_set_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9f72dfc RMF_TGTUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa51688d interval_insert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfae66668 ptlrpc_stop_all_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfb665956 ptlrpc_set_add_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfc2fa83f ptlrpc_del_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfc8eeee2 ptlrpc_set_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd148bf8 RMF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfe4b7a61 ptlrpc_restart_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff02a0e9 ldlm_lock_set_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffc29db2 ldlm_namespace_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffc807e8 sptlrpc_unpack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffe29c3f RQF_LDLM_ENQUEUE +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0x5e53ce20 cxd2099_attach +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0fdd5311 rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x10337697 dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x121afe39 rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x15f86e59 free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x170f2d64 rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x198eb3c6 rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2356a1fe rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x267e160d rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x28b5b54f rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2ffeac32 rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x34a17600 Dot11d_Channelmap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x35e32c46 rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3a8bb68b RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3b8c04cc rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3cb07bba rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x40c404b9 rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x49cbb372 rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4a94d559 rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4f3ed372 rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x630e4788 rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x63e07a8f rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x64e0664d rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x658602d3 rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6e5002c5 rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x81e6285e rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8bfc5a5a rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8f748bfd rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x93971fee rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x947d9094 rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x97544c9e rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9dda9175 rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa35b1c13 rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa6f225e5 rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa95cbf59 rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xac298ee9 rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xacf4a825 rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xad8c5ea6 rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb0c13062 rtllib_wpa_supplicant_ioctl +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb710c812 alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbbdfbe71 rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe1420f2 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc68d1315 notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd0f8502f HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd1b6dd6e rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd36a321e rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd4246a46 rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xda3965e2 rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xde754f0b rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf78f620 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe1f2cb90 rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xebf44650 rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf4c6e9d9 rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0017f35f set_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x00ea0cde set_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x06d6f244 get_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x09df8f3e set_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0a8d32c3 get_bypass_slave_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1936264c set_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1d2eb8ca get_tap_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x203af1f7 reset_bypass_wd_timer_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2070f14a set_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x27b990ef get_bypass_info_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2ba7cd35 get_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2c3f1c17 get_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2f59e636 get_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2fdb893a get_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x361cf40a get_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x45ca99c3 set_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x550a188c set_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x5cb59e92 get_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x66b60122 set_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x675208c0 set_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x692623f2 get_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x75131ec6 set_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x76c0b7d0 set_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e872825 get_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e8d701e get_wd_expire_time_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x86388b07 get_bp_disc_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x93ae4648 get_wd_set_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x95e42b0d is_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9df5f807 set_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9e21f42e set_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xa689a214 get_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xae117788 get_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xc368d30d get_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xccab5de0 get_bypass_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd3e034b3 get_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9c1ccfc get_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9d38d97 set_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xe640f06e set_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xecdaa456 set_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xedcd3c1b get_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf06d67bf set_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf57c1671 get_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf693c3a1 bp_if_scan_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf8237882 get_bypass_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xfa59240d get_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05af3c4c set_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05b08a42 set_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0b0d5ce0 get_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0fc2e83c reset_bypass_wd_timer +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x123a8133 get_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x157ec89c get_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2440f05a get_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2b01d1d4 set_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2c27a2f0 set_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2da97f4b is_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2e86c67b get_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37416370 get_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37bdab27 get_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x3da96a18 get_bypass_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4025805e get_bypass_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4940a0cc get_bypass_info +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4d21ff51 get_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5147360c get_bp_disc_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x515d4df1 get_bypass_slave +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5560267e set_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5be44d44 set_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6653590c get_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6bda14ec get_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x72c618ae set_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x76d47e6f set_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x794e3815 set_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x7c6cbc16 get_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x84a263dc set_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x8a16f22c set_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x946ff795 get_wd_set_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x94f6aff2 get_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x9d1ecf73 set_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xb1385629 set_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xbff68c45 set_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xc871c561 get_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xcee528df set_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd202dd85 get_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd787f151 get_wd_expire_time +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xdb6a39d2 get_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xebd25ae5 get_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf1e9f8c1 set_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf224abd9 get_tap_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf5a591b2 set_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf643fd4c get_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x25978d50 xillybus_isr +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x4190e718 xillybus_endpoint_remove +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x675dd9aa xillybus_init_endpoint +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x6817b6d4 xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x8586a4bb xillybus_do_cleanup +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x02494036 iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x043745d5 iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x069b5fcc iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x095cfd03 iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x1e075d07 iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3ccc1f8d iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3effe019 iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x58261ebf iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5fe2b757 iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x63c4f565 iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7b89180e iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x845a3c17 iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x85c92b9c iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x87ad2f35 iscsit_set_unsoliticed_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x96359d06 iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9b092c90 iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa034e220 iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa4d14448 iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xaf59e28a iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb8f7baf5 iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb92feb79 iscsit_handle_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbdd39ea1 iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xca899c29 iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd318f320 iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xdedd529e iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf7fc38e1 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf84750a9 iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xfd500dcb iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x07b2e4bf target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x119dbcd9 target_submit_cmd_map_sgls +EXPORT_SYMBOL drivers/target/target_core_mod 0x161f51a0 target_put_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x17d754b3 target_get_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x1a38def6 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x22677356 target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x25db603d transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x2700b5ae target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x306c7edf core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x36fdee43 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x3827e476 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x39142cf2 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x3b60808e transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x3e3350b3 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x426f3d71 sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0x44246b67 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x44d84981 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x48a22c17 spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x50a13888 spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x51e37dc3 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x52979d66 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x5742044b transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x5754766c target_sess_cmd_list_set_waiting +EXPORT_SYMBOL drivers/target/target_core_mod 0x5f3de9e9 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x60381314 spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x6a035220 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x6f639a40 spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0x74648477 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x7d13302a target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7ebfb9ee transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x806f96ff target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x83590939 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x83c1a716 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x83e6497f core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x86d74377 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x8c04af8c transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x8efa8971 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x8f732d7c sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x9494ff37 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x97b7bef1 sbc_execute_unmap +EXPORT_SYMBOL drivers/target/target_core_mod 0x9c53adba iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x9fabff41 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xa0996665 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xa27fe7eb sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xa6965343 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0xa898fe1f transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xb2e69461 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0xb35402ac target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xb6095635 target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0xbc078334 target_setup_cmd_from_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xbe26f734 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0xbff0215e sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xc48bcff3 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0xc56e8dd5 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xc646fde2 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xc686a1f6 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xc84e0877 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xcb786f31 fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xcdfefc98 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xcf0fb413 transport_init_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0xd31d86ba transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xde1dda4f core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xdf6bc7ec iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xe14bb1ab transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xe4328e9b fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xe5fcdf57 transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0xe958a0f4 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf80d0025 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xf8397148 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xfb9e0748 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xfcf279e7 core_tpg_register +EXPORT_SYMBOL drivers/vhost/vringh 0x0dda8c5a vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1f063017 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x2eae4a2a vringh_getdesc_user +EXPORT_SYMBOL drivers/vhost/vringh 0x36dfce73 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3b304ebb vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3eaf442a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3fa42e4f vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x4311cd91 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5dafbd4e vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x66af098b vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x6d0e7948 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x76bd9a5d vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x97fa07e9 vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xaf8e4a0e vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xafb47dae vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc884d704 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc8bee0a4 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xda4ea4cc vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xde804bb9 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x16f13a97 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x258db456 devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x267d74cb lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x4a8682f3 devm_lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x28d23634 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/macmodes 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x3f2f4841 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x079ae67b matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x85396ee5 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x8a01ae59 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x173963f1 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x1a88dc2f matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6dc5b825 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xa88d59b2 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x9798a3a6 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x03aa551b matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x02743d25 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x0afde8ed matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x45cb1b5f matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xb9f8ed94 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x1f114e13 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x9c160982 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x0f408eb3 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x463d84dd matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xa203bb3f matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xcf5ba94d matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xea0b29aa matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0x98b2924c mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x040c1762 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xbe0a0b55 video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x0ab4e894 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x34584f0f svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x52060e4d svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x54d1629d svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x55c29171 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x6e4adb1e svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x87d17744 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x8de63fb4 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe430a6d2 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf2db5956 svga_match_format +EXPORT_SYMBOL drivers/video/syscopyarea 0xd675feb8 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x1e78582d sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x0a38bef6 sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/vme/vme 0x0c6bdc3f vme_master_read +EXPORT_SYMBOL drivers/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/vme/vme 0x150d4c7e vme_slot_get +EXPORT_SYMBOL drivers/vme/vme 0x20df5a3d vme_dma_pci_attribute +EXPORT_SYMBOL drivers/vme/vme 0x2242d5fd vme_irq_generate +EXPORT_SYMBOL drivers/vme/vme 0x24893c28 vme_master_request +EXPORT_SYMBOL drivers/vme/vme 0x30b304f5 vme_irq_free +EXPORT_SYMBOL drivers/vme/vme 0x358efe4e vme_dma_request +EXPORT_SYMBOL drivers/vme/vme 0x3ad9e8fb vme_dma_list_exec +EXPORT_SYMBOL drivers/vme/vme 0x3e95083c vme_slave_get +EXPORT_SYMBOL drivers/vme/vme 0x46649cd1 vme_lm_set +EXPORT_SYMBOL drivers/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/vme/vme 0x4baf35a7 vme_master_get +EXPORT_SYMBOL drivers/vme/vme 0x4ee7f5fb vme_dma_list_add +EXPORT_SYMBOL drivers/vme/vme 0x52983a4f vme_master_write +EXPORT_SYMBOL drivers/vme/vme 0x535c8308 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/vme/vme 0x5aff4177 vme_lm_get +EXPORT_SYMBOL drivers/vme/vme 0x79a33f85 vme_get_size +EXPORT_SYMBOL drivers/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/vme/vme 0x803a3687 vme_slave_request +EXPORT_SYMBOL drivers/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/vme/vme 0x9607a03e vme_register_bridge +EXPORT_SYMBOL drivers/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/vme/vme 0x9bf1615b vme_irq_handler +EXPORT_SYMBOL drivers/vme/vme 0xa2a335bd vme_alloc_consistent +EXPORT_SYMBOL drivers/vme/vme 0xa31bdf07 vme_master_set +EXPORT_SYMBOL drivers/vme/vme 0xa4423ff2 vme_new_dma_list +EXPORT_SYMBOL drivers/vme/vme 0xa786e6c9 vme_bus_type +EXPORT_SYMBOL drivers/vme/vme 0xac242c9f vme_dma_list_free +EXPORT_SYMBOL drivers/vme/vme 0xc660c9ec vme_register_driver +EXPORT_SYMBOL drivers/vme/vme 0xc73b9746 vme_unregister_driver +EXPORT_SYMBOL drivers/vme/vme 0xca5ee09a vme_free_consistent +EXPORT_SYMBOL drivers/vme/vme 0xd2e41264 vme_irq_request +EXPORT_SYMBOL drivers/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/vme/vme 0xed2888f0 vme_lm_request +EXPORT_SYMBOL drivers/vme/vme 0xefd1624a vme_dma_free_attribute +EXPORT_SYMBOL drivers/vme/vme 0xf5a10e25 vme_slave_set +EXPORT_SYMBOL drivers/vme/vme 0xf829c969 vme_unregister_bridge +EXPORT_SYMBOL drivers/vme/vme 0xfacd8e72 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x4e64074e w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x6cf496c3 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xb83a0adf w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xc81b5f91 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x68bfa390 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xd5738498 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x53dcaf4a w1_ds2781_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0xa3c94a2e w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/wire 0x341c4bac w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xbfc00602 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xcfcdeaa0 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xd71d590d w1_register_family +EXPORT_SYMBOL fs/btrfs/btrfs 0x27476846 ulist_reinit +EXPORT_SYMBOL fs/btrfs/btrfs 0x41e6a9d2 ulist_init +EXPORT_SYMBOL fs/btrfs/btrfs 0x7e2ee765 ulist_free +EXPORT_SYMBOL fs/btrfs/btrfs 0xa2eec2e8 ulist_fini +EXPORT_SYMBOL fs/btrfs/btrfs 0xb1320bc8 ulist_add +EXPORT_SYMBOL fs/btrfs/btrfs 0xb42289d2 ulist_alloc +EXPORT_SYMBOL fs/btrfs/btrfs 0xc2c745db ulist_next +EXPORT_SYMBOL fs/configfs/configfs 0x12599de7 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x142c033a config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x256af1d1 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x8274cf0a config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0xa82d86df config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xb0d952d8 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xbad0e156 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xd02792d9 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xd77a9d9d configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xe4768ecb config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0xecc26fea config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xf39c96a6 configfs_undepend_item +EXPORT_SYMBOL fs/exofs/libore 0x03c61ae8 ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0x0f0dac04 ore_read +EXPORT_SYMBOL fs/exofs/libore 0x12ded900 ore_remove +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x3669dd98 ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0x3efe8c91 ore_write +EXPORT_SYMBOL fs/exofs/libore 0x4527e170 ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x6b25cf20 ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0x73caf168 extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0x76dc85ed ore_create +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xa5a97b56 ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0xe8b266b1 ore_truncate +EXPORT_SYMBOL fs/fscache/fscache 0x02e0ef0b __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x031f9afb fscache_op_complete +EXPORT_SYMBOL fs/fscache/fscache 0x039594c3 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x07d57c56 __fscache_readpages_cancel +EXPORT_SYMBOL fs/fscache/fscache 0x09247f8d __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x0f2fab53 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x15a4ea78 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x1a02c1ca __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x1df189f8 fscache_object_destroy +EXPORT_SYMBOL fs/fscache/fscache 0x25304bc1 __fscache_disable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x316a3ab2 __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x3241bd4f fscache_object_init +EXPORT_SYMBOL fs/fscache/fscache 0x3e16c20e fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x431f7bb8 fscache_mark_page_cached +EXPORT_SYMBOL fs/fscache/fscache 0x437d196b __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x4545053e __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x51aabdff __fscache_enable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x53adbf1d __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x63f35476 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x6719ae0c fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x6d311df3 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x72b0da0a __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x7968005e fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x7d4a1144 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x841510b7 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x8e3956cd fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x96ab9659 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x9edd8c83 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0xa71588d1 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xae0ee012 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xb43c757b fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xcbfa46c2 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0xe2611152 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xe4908b0b __fscache_check_consistency +EXPORT_SYMBOL fs/fscache/fscache 0xe8e8a7b8 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xe92d4afc __fscache_wait_on_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0xf6066c5a fscache_object_lookup_negative +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xa0f4b528 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0xb25b2957 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0xe13337f0 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x4db7e700 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x79009657 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x946ba3ea qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xaf3a1429 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xed31e953 qtree_write_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x1a703ba1 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x6d356209 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc7 0x6c1f6fee crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd09b2cba crc8 +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x0d3f79e2 lc_find +EXPORT_SYMBOL lib/lru_cache 0x15daccf7 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x18d72265 lc_try_lock +EXPORT_SYMBOL lib/lru_cache 0x2937f468 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x2b4dea0e lc_reset +EXPORT_SYMBOL lib/lru_cache 0x3360aea3 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x3b0c6f1b lc_set +EXPORT_SYMBOL lib/lru_cache 0x3f5e73a0 lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x4b2b5357 lc_get_cumulative +EXPORT_SYMBOL lib/lru_cache 0x5a546a55 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x65aceb2d lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x963de69e lc_committed +EXPORT_SYMBOL lib/lru_cache 0xc4bef5db lc_is_used +EXPORT_SYMBOL lib/lru_cache 0xcb5946de lc_put +EXPORT_SYMBOL lib/lru_cache 0xd17b424b lc_create +EXPORT_SYMBOL lib/lru_cache 0xdb79c989 lc_del +EXPORT_SYMBOL lib/lru_cache 0xff51ea31 lc_get +EXPORT_SYMBOL lib/lz4/lz4_compress 0x0c222eb5 lz4_compress +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x682a23e0 lz4hc_compress +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/raid6/raid6_pq 0xd9e91f83 raid6_vgfmul +EXPORT_SYMBOL net/802/p8022 0xd869eb4c unregister_8022_client +EXPORT_SYMBOL net/802/p8022 0xdea61847 register_8022_client +EXPORT_SYMBOL net/802/p8023 0x32ce98ea destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0x4a76c61d make_8023_client +EXPORT_SYMBOL net/802/psnap 0x123d29b7 unregister_snap_client +EXPORT_SYMBOL net/802/psnap 0x4c97777f register_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x0d5b0e5a p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x114c4fac v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x1cd42e8b p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x1db63b16 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x206234d1 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x2a4e1571 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x2ab0b9e3 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x2c493f1b p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x2cdd7a3f p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x2db95017 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3aeaa2d6 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x3f923692 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x44d2c2c0 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x492032b4 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x4d4faac7 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x5bc2d3dc p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x6034f882 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x681d200d p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0x6a6f0481 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x6b84cfb0 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x708073ca p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x7471f6a4 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x75257226 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x776e88a5 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x7f14ca65 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x8c75f289 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x8fc4f56e p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x909144f8 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x91924a53 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0xa00e16e9 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xb356b4bb p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xbdc407f5 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xc0651d95 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0xc1bbfabb p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xc71f5e11 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xcfa71aeb p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xd3a9edac p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xda991e49 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xdf2cdfe8 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe7c5a737 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0xee291c65 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0xf19288c4 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xf480e6c1 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xfb47858f p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x26c31218 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x863d66ab atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xa6e95bbf alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xbdc07f34 atalk_find_dev_addr +EXPORT_SYMBOL net/atm/atm 0x2c08916e deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x5ee2f1f1 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x82c98460 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x844f766a atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x859d34a6 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x85a9cb4a atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa9c6c42e atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xb81158d1 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0xbc434063 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xd3a70147 vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0xe34ceab7 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xe7d1e950 atm_charge +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xfaab797c atm_dev_register +EXPORT_SYMBOL net/atm/atm 0xfac5ae25 vcc_sklist_lock +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x0d9fec76 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x0f0b49d0 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x19e162b3 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x3aa57029 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x3afee63e ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x47d73459 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x933a05cd ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xa8918ecd ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xb39d289f ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xdcc54da0 ax25_linkfail_release +EXPORT_SYMBOL net/bluetooth/bluetooth 0x05ded013 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x09039526 l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0x10de5ffa bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x15f57e30 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x17c40232 l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x180c2817 bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1b0ecb57 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1cc4ab8f bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0x23436464 __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x25afd8ff hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2d7be591 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x32b97ebd hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x33e5e34b hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x38794d6c bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3e8096c0 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x43e8e994 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x46970b68 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5777dc93 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x580a762e bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0x625ace46 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7752b68b hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7a408c10 l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c640527 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x805539a0 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x87a3e556 l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x99c2aacb bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa21907a4 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa6c01a08 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xac97e102 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb105eb40 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb61a0c3b bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc1c1c7dd __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcddc1b66 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd3290888 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd7811f5d hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe79911c5 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe8541c7b hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf1ba8ba2 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf44d405b hci_register_cb +EXPORT_SYMBOL net/bridge/bridge 0x209d9dc0 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x208b9230 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x2cb88269 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x8a28baca ebt_do_table +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x38701a7c cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x3cd2ac80 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x477e9a94 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x59159605 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x6a44fc70 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x966d7de2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/caif/caif 0xd53350e8 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0xed4003e1 caif_enroll_dev +EXPORT_SYMBOL net/can/can 0x03140c71 can_send +EXPORT_SYMBOL net/can/can 0x620b1eb5 can_proto_unregister +EXPORT_SYMBOL net/can/can 0x64101c5d can_rx_unregister +EXPORT_SYMBOL net/can/can 0x87d2258d can_ioctl +EXPORT_SYMBOL net/can/can 0xc327687c can_proto_register +EXPORT_SYMBOL net/can/can 0xf6473d71 can_rx_register +EXPORT_SYMBOL net/ceph/libceph 0x053369d0 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x07cc7f3d ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x08b691ac ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0c82c96a ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x0d61c270 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x13d075bd ceph_auth_update_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x1475bf0d ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x1536cdf9 osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1de1d957 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x20d151cb ceph_osdc_setup +EXPORT_SYMBOL net/ceph/libceph 0x215972a8 ceph_auth_create_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x2300c04c osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0x27ba4f35 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x29267563 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x2b23a4d7 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x2d1f6f22 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x2fba5ed1 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x37e13f57 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x3889cfbc ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x3aa1c6cf osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3c2dd17e ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x3df0ec7c ceph_calc_ceph_pg +EXPORT_SYMBOL net/ceph/libceph 0x3f688151 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x4205ffd7 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x43efd647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x48139290 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x488fb073 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x4a283545 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x4fda2691 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x540262f8 ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x556a0c6f ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x570ceb67 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5f839b0a ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x6381bab6 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x66dc51c3 ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0x6ad3f581 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x6b2e3bcd ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x6c5d5ac1 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x7168baf8 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0x7234d33f ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x751dc2d5 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x77943de9 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x77bf7140 osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x78785789 ceph_messenger_init +EXPORT_SYMBOL net/ceph/libceph 0x7954486a ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0x802bdf53 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x81eae1b6 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x8fb4a486 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x91d6635a osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x95d1437f ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x95e13c50 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x960d1cad ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x970fcf38 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x99e36571 ceph_osdc_cleanup +EXPORT_SYMBOL net/ceph/libceph 0x9e005af4 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0x9e7ebd50 osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa268eecf ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xa30d734e ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0xa70611c8 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0xa856bf91 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0xab5b32ac ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0xacddf69c ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0xae3515ba ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xaf661342 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb1373ec6 osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xb48cf3a4 osd_req_op_cls_response_data +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb57f5bdc osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb80091e2 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xc1416b01 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xc20e2db5 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0xc2405b80 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xc36906a0 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0xc3b94abb ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc55de604 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xc5e3b12a ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcc2d000f ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0xd247fa3a ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd9271b54 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0xda29e099 osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xe4a28b62 osd_req_op_watch_init +EXPORT_SYMBOL net/ceph/libceph 0xe82c9c32 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0xed229339 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0xef9becf7 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0xf217d3c9 osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xf42e7edc ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xf5774cba ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0xfdf3b0bd osd_req_op_extent_update +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x1caf1b8b dccp_syn_ack_timeout +EXPORT_SYMBOL net/ieee802154/ieee802154 0x19f440a1 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x27af0559 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4252783e ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4ffbd68b wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6fb2b51d wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8d9b57c7 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xca5a6bde ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd18c07d3 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xea18b021 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xea64785a wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xedbd6bbc ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf0cdda6a ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf221ff31 wpan_phy_free +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x7d6b64c0 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xc9f7f051 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xcc41aa50 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x51d48b29 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x827bc251 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xbb1e2048 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x3722453e xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xbfa0dbaf xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xcfecf1a0 ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xdc6bb5f5 ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x4cd58df7 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa110b4d4 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb16b74c2 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x37463f56 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0xaa82e514 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x4825cc29 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x8bb6be92 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x00ec1b06 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x53e9fb25 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5b8de537 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x64317869 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x757fefaa ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7c964566 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb2fb116b ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xcece8b33 ircomm_flow_request +EXPORT_SYMBOL net/irda/irda 0x01590a8b irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x041570a9 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07015ee1 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0ea2c034 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x1a9f11b6 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x20980dd7 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x25163fca irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x2a17732a hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x33cbe2c6 proc_irda +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x4e139475 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x56b99f6a hashbin_new +EXPORT_SYMBOL net/irda/irda 0x598877cb irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6b7f50b3 hashbin_find +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x70e8d502 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x71c01f18 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x71d5904d iriap_close +EXPORT_SYMBOL net/irda/irda 0x73c58c08 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x745ca4d6 irlap_close +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7acd9e96 irlap_open +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x9516f690 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x97153eca iriap_open +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9ce01c3c async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xa09fb645 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0xa9b65d63 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xaad2d90a irias_find_object +EXPORT_SYMBOL net/irda/irda 0xae274362 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xaec635e4 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0xb2ac53a8 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc6f09daa irttp_dup +EXPORT_SYMBOL net/irda/irda 0xcee86c45 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0xd22e8861 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xd7702e20 irias_new_object +EXPORT_SYMBOL net/irda/irda 0xdd988ce6 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe06347ea iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xe58ba397 hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0xe7aa593d hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0xe8ccf9d5 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0xe8fa399e irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xef38c5c5 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0xf0f25ffe hashbin_remove +EXPORT_SYMBOL net/irda/irda 0xf56cecfb irda_notify_init +EXPORT_SYMBOL net/irda/irda 0xfa8787fd irttp_flow_request +EXPORT_SYMBOL net/l2tp/l2tp_core 0x74c3e04b l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x113faec4 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x1f6a6ff2 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x3ba65b6b lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x3fe30c6b lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x5459d310 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xe4c52a10 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xfb24b972 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xfb4f989e lapb_disconnect_request +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x5e01c1c8 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x61a97ba6 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0x88fceaf9 llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x8e079409 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x9c2b2a5a llc_add_pack +EXPORT_SYMBOL net/llc/llc 0xcc252789 llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0xcc49b2b2 llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0xecad5000 llc_sap_find +EXPORT_SYMBOL net/mac80211/mac80211 0x009376f2 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x05182ba5 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x0ca3884e ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x0f756cc0 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x12bd6318 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x15db6924 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x19de253e ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x1cbf8587 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0x1fcb7185 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x21a2ae71 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x22b1541c ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x242a7d70 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0x24759530 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x28df9320 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x2c39538a rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x357244a0 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0x36b13fd6 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x388150d2 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x3e11dba4 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x3f9c87ae ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x40aec795 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x41c5463d ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x44bd2df8 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x49e40e3a ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x530ca1a6 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x5449c46b ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x545951cd ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x58f20920 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x5a4c4ba0 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x5c6a9879 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x5e1ebc0f ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x5ee9f68e __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x6492e7c2 ieee80211_csa_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x65862812 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x72566878 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x739f67fb ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x7a547c29 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x7d3d9799 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x83368950 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x84740866 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x866585e3 ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x8c02226c ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x904a8ed1 ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x914975cc ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x9c5e6334 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0x9e4ae1f3 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xa1fc36c4 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa287697a wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa2a18010 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xa551aba2 ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0xa69f4359 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xaee41cb5 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xb2efdf0f ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xbf9ec039 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0xc0ab3be2 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xc10ded68 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xc2b99830 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xcccafe99 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xcd00359a ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0xceaad7d8 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xd6ee4e20 ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0xd9f6f954 ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe8d1ac80 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xf395de03 ieee80211_aes_cmac_calculate_k1_k2 +EXPORT_SYMBOL net/mac80211/mac80211 0xf5f9a69a ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xfb956608 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xfea5abc7 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xffd99e01 rate_control_set_rates +EXPORT_SYMBOL net/mac802154/mac802154 0x0a37800a ieee802154_unregister_device +EXPORT_SYMBOL net/mac802154/mac802154 0x92cdcaea ieee802154_register_device +EXPORT_SYMBOL net/mac802154/mac802154 0xa76937cc ieee802154_alloc_device +EXPORT_SYMBOL net/mac802154/mac802154 0xd0f4acb5 ieee802154_free_device +EXPORT_SYMBOL net/mac802154/mac802154 0xeda6814d ieee802154_rx_irqsafe +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0ba48a6b ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0f073a5a register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x143c23a6 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x27e2df3d ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6bc1727c unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7118c2fd register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x894903be ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8cbe2d17 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x939b5a4d ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9550dba3 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9c0dcc05 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb61c33ba ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc7db2a46 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfd5448c9 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x4489648a __nf_ct_ext_add_length +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x90476d55 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xb9da3e61 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x827cc6a1 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x89da9fe9 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/nf_nat 0x265cd230 nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0x32da7909 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x379fb1d6 nf_nat_used_tuple +EXPORT_SYMBOL net/netfilter/nf_nat 0x37b1b95e __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x77c09ba4 nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0xd38b962b nf_xfrm_me_harder +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x253e8b44 xt_compat_init_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x48d253ba xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x52d1008b xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x8defd907 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xad0ad260 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xb5c57b6c xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xc3a9828b xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xc758a804 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xf07f4826 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xf5013131 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xf6242520 xt_register_target +EXPORT_SYMBOL net/nfc/hci/hci 0x012a2c24 nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0x03ac06cd nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0x0a9ba094 nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0x1c216cd9 nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x1ce2b084 nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0x31e43188 nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0x31e90eb8 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x3d6091b5 nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x43028a27 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x667d87c2 nfc_hci_send_response +EXPORT_SYMBOL net/nfc/hci/hci 0x6c4702ab nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0x97fcfbda nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0x9d7b6dce nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0xa0b61e4e nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xbca0b4fd nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xc7fe7592 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0xda820d3c nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0xec001a6f nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0xfe4d1813 nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0xff75db54 nfc_hci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x26bc7736 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0x57e1c66f nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0x66403660 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0x7cead585 nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xbddedd21 nci_recv_frame +EXPORT_SYMBOL net/nfc/nfc 0x06b042be nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0x0b816e19 nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0x0e7faa9d nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x1e37bca1 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x52762932 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x56e40479 nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0x60516bc2 nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0x6146e9aa nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x827947ba nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x8b61ff80 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x910d720b nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x91d27d1a nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0xb1e93cd1 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0xb1f2f7e5 nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0xbb46e5b9 nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0xc2b4a8d4 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0xcbd0562c nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0xd5e6e7ae nfc_class +EXPORT_SYMBOL net/nfc/nfc 0xd8488aa6 nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0xfa9d3bed nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc_digital 0x1c33f14b nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x5eace559 nfc_digital_register_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x78bee6b4 nfc_digital_free_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xce3a4803 nfc_digital_unregister_device +EXPORT_SYMBOL net/phonet/phonet 0x415dbf2f pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x6197ff21 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x61cbc33e phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x8f2f73d0 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xabc773a7 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xcef81d37 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xdb57b65a pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xdd042953 phonet_header_ops +EXPORT_SYMBOL net/rds/rds 0x7505d413 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x16312673 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1f45cdee rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x24bbdf7a rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x41a6877f rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x491c3b06 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5e3a2379 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x62e73277 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7e8127d8 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x86eea57a rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9e131a17 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb77c8177 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe34e92ce rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe6c8204f key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf676cbd0 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf8c1fb80 rxrpc_kernel_send_data +EXPORT_SYMBOL net/sctp/sctp 0x31f1ff57 sctp_do_peeloff +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x1511bcce gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x152f1ae4 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xbf225566 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/sunrpc 0x322f0384 svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0xa14f4907 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0xff71b313 wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x0240a108 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x065fdc67 cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x0667e6be wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x06f74a7e cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0x075f956b cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x07a3905c cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0e07fa04 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x0e909767 cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x108ce55e wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x137a3933 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x143084a1 cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x17d7f895 cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19e03378 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x1c9a1243 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x21fcfde8 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x23b550d3 cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x2731aae7 cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x276794e9 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x28643a04 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x341aab51 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x3431f94a cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x37f35d84 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x39579a08 cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0x39badb74 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x3bbc271e cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x3f7c1eb5 cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x406a8302 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x462465e9 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x465f67f9 cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0x473c1ae5 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x4c3b5878 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x4c40b2fb ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x4d7530fc wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x50afbb6c cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x549ae50f ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x550a9931 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x57411a69 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x5e33e1e6 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x68ac8736 cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x68c43a46 cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6d6cb9ad ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x736c3d7d cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7c6c82c9 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x8224e721 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0x87e56384 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x8ad1653e wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x97bccc19 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9e0ca776 cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xa02431d9 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xa11e2599 cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0xa1425906 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa1a51706 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xab404d2d cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb39eec87 cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0xb53d53a2 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xb6e8b83f freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xb9e23202 cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0xbaad1a80 cfg80211_inform_bss_width +EXPORT_SYMBOL net/wireless/cfg80211 0xbc52fbc9 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xc15c8611 cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc89b72df cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0xcf618a57 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0xd113d726 cfg80211_report_obss_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0xd930ce22 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xdba126c1 reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0xe00591c8 cfg80211_roamed_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xe18c17a4 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xe6be406e wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xec4f6e76 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xed2d6edb cfg80211_inform_bss_width_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xee42db3c cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xf0575901 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xf05e5921 cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xf1895cca cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xf5c17144 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xf9f5a157 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x2c394e7f lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x3e1ba674 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x65b55c7a lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x6664e809 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x8e79a074 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xa4280ae2 lib80211_register_crypto_ops +EXPORT_SYMBOL vmlinux 0x00000000 __symbol_put +EXPORT_SYMBOL vmlinux 0x00000000 current_fs_time +EXPORT_SYMBOL vmlinux 0x00000000 d_tmpfile +EXPORT_SYMBOL vmlinux 0x00000000 do_sync_read +EXPORT_SYMBOL vmlinux 0x00000000 filp_close +EXPORT_SYMBOL vmlinux 0x00000000 finish_open +EXPORT_SYMBOL vmlinux 0x00000000 generic_getxattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_write_sync +EXPORT_SYMBOL vmlinux 0x00000000 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x00000000 in_group_p +EXPORT_SYMBOL vmlinux 0x00000000 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x00000000 iov_shorten +EXPORT_SYMBOL vmlinux 0x00000000 iterate_fd +EXPORT_SYMBOL vmlinux 0x00000000 ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 path_is_under +EXPORT_SYMBOL vmlinux 0x00000000 register_exec_domain +EXPORT_SYMBOL vmlinux 0x00000000 sock_register +EXPORT_SYMBOL vmlinux 0x00000000 sys_close +EXPORT_SYMBOL vmlinux 0x00000000 task_nice +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x00000000 vm_brk +EXPORT_SYMBOL vmlinux 0x00063d57 bio_alloc_pages +EXPORT_SYMBOL vmlinux 0x0007e4b5 idr_for_each +EXPORT_SYMBOL vmlinux 0x0012cd8d dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0x0015358d iterate_dir +EXPORT_SYMBOL vmlinux 0x0016aec2 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x00234667 mmc_set_blockcount +EXPORT_SYMBOL vmlinux 0x00280457 dev_change_carrier +EXPORT_SYMBOL vmlinux 0x00338d60 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x008f6e1d register_gifconf +EXPORT_SYMBOL vmlinux 0x00c190f4 no_llseek +EXPORT_SYMBOL vmlinux 0x00cf4a7f of_get_parent +EXPORT_SYMBOL vmlinux 0x00de0c89 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x00e36041 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x00eb774c block_write_end +EXPORT_SYMBOL vmlinux 0x00eef49e __strnlen_user +EXPORT_SYMBOL vmlinux 0x00faf980 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0101d5b1 ip_idents_reserve +EXPORT_SYMBOL vmlinux 0x01031b88 __idr_remove_all +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x011da399 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x0171d14d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x01790e94 csum_partial_copy +EXPORT_SYMBOL vmlinux 0x018b7928 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01b4c4ed __kfree_skb +EXPORT_SYMBOL vmlinux 0x01cec199 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x01f233f7 seq_bitmap +EXPORT_SYMBOL vmlinux 0x02034302 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x020696d0 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x0207840b mount_ns +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x02159e4f follow_down_one +EXPORT_SYMBOL vmlinux 0x0245de43 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x024cc826 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x026cb356 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x028423e9 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x028ab573 elv_rb_del +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02c6b200 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x0324e579 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x03252fa7 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x03355e58 dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x035ee4c8 mmc_stop_bkops +EXPORT_SYMBOL vmlinux 0x035f891b down_interruptible +EXPORT_SYMBOL vmlinux 0x036142f1 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x036228fb tcf_hash_search +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x03752cd4 netlink_capable +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03b2dfad netif_carrier_off +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03d384f0 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x03ea7873 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x03ebda85 dns_query +EXPORT_SYMBOL vmlinux 0x03f0bc4b key_put +EXPORT_SYMBOL vmlinux 0x03f34cef skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x040b0efc d_prune_aliases +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x04265e22 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x043deed5 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x0457a312 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x04585666 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04931d08 get_write_access +EXPORT_SYMBOL vmlinux 0x04c38270 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x04e2224a ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04ea5d10 ksize +EXPORT_SYMBOL vmlinux 0x05186ca4 flush_icache_range +EXPORT_SYMBOL vmlinux 0x0518efe4 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x053b8733 get_tz_trend +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x0555a87d inet_addr_type +EXPORT_SYMBOL vmlinux 0x055c8559 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x058a37c3 vfs_create +EXPORT_SYMBOL vmlinux 0x0593a99b init_timer_key +EXPORT_SYMBOL vmlinux 0x0594816f __lock_buffer +EXPORT_SYMBOL vmlinux 0x05a5c4b1 kthread_stop +EXPORT_SYMBOL vmlinux 0x05a6995d netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0x05e0fbb3 pci_iomap +EXPORT_SYMBOL vmlinux 0x05ef0ea4 netlink_unicast +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x064094fd bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x06477937 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x06559090 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x066416b3 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x06693a81 led_blink_set_oneshot +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06842322 pcim_iomap +EXPORT_SYMBOL vmlinux 0x06c0a22b netdev_alert +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x071af395 blk_run_queue +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x072c6bbb register_cdrom +EXPORT_SYMBOL vmlinux 0x072ff4a0 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x0730d1df fb_set_cmap +EXPORT_SYMBOL vmlinux 0x075cc397 single_open_size +EXPORT_SYMBOL vmlinux 0x076fbf44 idr_replace +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b7f0e0 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07f9b92d vga_get +EXPORT_SYMBOL vmlinux 0x080ab9cb request_key +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083c2cbe of_get_next_parent +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x0847f3ec sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x08495c5f find_lock_page +EXPORT_SYMBOL vmlinux 0x085b5573 md_register_thread +EXPORT_SYMBOL vmlinux 0x0885fe50 simple_setattr +EXPORT_SYMBOL vmlinux 0x088fc1fb security_task_getsecid +EXPORT_SYMBOL vmlinux 0x08957683 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x08c47486 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x08e4787d scsi_free_command +EXPORT_SYMBOL vmlinux 0x08ed8643 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x08ee288b clear_nlink +EXPORT_SYMBOL vmlinux 0x08f4e07c __neigh_create +EXPORT_SYMBOL vmlinux 0x093bfc3f proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x096824f4 vfs_setpos +EXPORT_SYMBOL vmlinux 0x096d295c dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09a8154f md_unregister_thread +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09cc6a91 __lock_page +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09e12ef5 __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0x09f23ca9 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x09f68426 phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0x0a184771 d_alloc +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a29fbc5 phy_print_status +EXPORT_SYMBOL vmlinux 0x0a58f262 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x0a7a6251 mb_cache_create +EXPORT_SYMBOL vmlinux 0x0a8c5e32 proto_unregister +EXPORT_SYMBOL vmlinux 0x0aa274a9 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x0aa7f7b8 lock_may_write +EXPORT_SYMBOL vmlinux 0x0aac599a skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0af89dde pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x0b0971ac blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x0b0a8799 ps2_init +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b15ccdc scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x0b18bc7e kset_unregister +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b1fe483 inet_frag_find +EXPORT_SYMBOL vmlinux 0x0b34005d xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x0b38803a devm_gpiod_put +EXPORT_SYMBOL vmlinux 0x0b399697 netlink_set_err +EXPORT_SYMBOL vmlinux 0x0b41cf32 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x0b56117f of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x0b5ab3ac pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x0b5e71a4 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x0b67a028 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x0b6fffde writeback_in_progress +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0ba0ba70 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x0baf908d uart_match_port +EXPORT_SYMBOL vmlinux 0x0bbc2dbe thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x0bbc5908 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bc8e7ea mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x0bd56962 register_framebuffer +EXPORT_SYMBOL vmlinux 0x0bddb2ce netif_rx +EXPORT_SYMBOL vmlinux 0x0c155237 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x0c209093 simple_statfs +EXPORT_SYMBOL vmlinux 0x0c3b09d8 dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0x0c45fc96 vfs_lstat +EXPORT_SYMBOL vmlinux 0x0c58a8cd netdev_increment_features +EXPORT_SYMBOL vmlinux 0x0c65be38 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c6e54c4 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c98eb4a pci_find_bus +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cc54457 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x0cd04c96 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x0cdf68c0 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x0ce900af blk_finish_plug +EXPORT_SYMBOL vmlinux 0x0d316460 dev_addr_del +EXPORT_SYMBOL vmlinux 0x0d42a9e2 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d6fa751 vlan_untag +EXPORT_SYMBOL vmlinux 0x0d952feb request_key_async +EXPORT_SYMBOL vmlinux 0x0d9a5db2 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x0d9c7d83 kernel_read +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da426f8 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x0da447a7 __idr_get_new_above +EXPORT_SYMBOL vmlinux 0x0daaa62d __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x0dc7d202 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x0dd6036e generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x0e10b188 scsi_print_command +EXPORT_SYMBOL vmlinux 0x0e19ab2f end_page_writeback +EXPORT_SYMBOL vmlinux 0x0e1b93bf mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x0e486b38 pci_choose_state +EXPORT_SYMBOL vmlinux 0x0e6da44a set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x0ecdd2c1 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x0efc61a8 kobject_put +EXPORT_SYMBOL vmlinux 0x0efcbb1b set_current_groups +EXPORT_SYMBOL vmlinux 0x0f2b3764 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x0f4c91ed ns_to_timespec +EXPORT_SYMBOL vmlinux 0x0f626276 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x0f6dbbc1 tcp_connect +EXPORT_SYMBOL vmlinux 0x0f72f02b bitmap_unplug +EXPORT_SYMBOL vmlinux 0x0f7c26dd bio_integrity_split +EXPORT_SYMBOL vmlinux 0x0fab2241 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fba1d78 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x0fc96600 migrate_page +EXPORT_SYMBOL vmlinux 0x0fd64fbf devm_free_irq +EXPORT_SYMBOL vmlinux 0x0fe1daf7 mdiobus_read +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ff2c759 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x0ff7b20f dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x102f6f67 __devm_release_region +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x10876689 vfs_rename +EXPORT_SYMBOL vmlinux 0x10b1d3d8 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x1109f4b9 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x1123c416 ip_fragment +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x11325dd2 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x1138658f ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x1155f242 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x115f4953 amba_device_unregister +EXPORT_SYMBOL vmlinux 0x115fbc4d mdiobus_write +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x1171353a bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x1188fdbf km_state_expired +EXPORT_SYMBOL vmlinux 0x118dac58 cont_write_begin +EXPORT_SYMBOL vmlinux 0x11aaaa91 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x11af3867 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x11b70a04 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x11c9185c of_iomap +EXPORT_SYMBOL vmlinux 0x11dc7e18 netpoll_setup +EXPORT_SYMBOL vmlinux 0x11e2ec12 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x11f82fcd nla_put +EXPORT_SYMBOL vmlinux 0x11fb6062 request_firmware +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x122043a8 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x1223bf0a tcp_seq_open +EXPORT_SYMBOL vmlinux 0x1250360d lockref_get +EXPORT_SYMBOL vmlinux 0x1262bb69 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x1264a843 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x126730c7 update_time +EXPORT_SYMBOL vmlinux 0x12865549 is_bad_inode +EXPORT_SYMBOL vmlinux 0x12901911 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x129c97cf dma_sync_wait +EXPORT_SYMBOL vmlinux 0x129e2094 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12a91a0c inet6_unregister_icmp_sender +EXPORT_SYMBOL vmlinux 0x12b2f88d padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x12ddd792 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x12dfeb12 vprintk_emit +EXPORT_SYMBOL vmlinux 0x12e0f464 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x12f083c6 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x12f2f1f9 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x13307fde vsscanf +EXPORT_SYMBOL vmlinux 0x1344ff27 bio_copy_data +EXPORT_SYMBOL vmlinux 0x1348760d ipmi_request_settime +EXPORT_SYMBOL vmlinux 0x134d0d76 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x1365d2a6 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x1396853e tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x139d7aa9 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x13ca2238 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13e489ef ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x13e67260 tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x13e9a9ca audit_log +EXPORT_SYMBOL vmlinux 0x13f189de flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x1410407a dev_open +EXPORT_SYMBOL vmlinux 0x1426f0e3 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x14705e53 blk_free_tags +EXPORT_SYMBOL vmlinux 0x14740f18 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x14926ea7 mddev_congested +EXPORT_SYMBOL vmlinux 0x1498e5cb phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x14adf53b abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x14db7740 registered_fb +EXPORT_SYMBOL vmlinux 0x14e10404 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x14efb9f6 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x15053710 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x155057d8 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1551e273 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x15971a80 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x15bbf223 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x15bebad2 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x15c12fc2 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x15e069f7 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x15f571ec blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x16065aee make_kprojid +EXPORT_SYMBOL vmlinux 0x16168047 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x1644c096 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x1648d611 ftrace_raw_output_prep +EXPORT_SYMBOL vmlinux 0x166f93b3 elv_rb_add +EXPORT_SYMBOL vmlinux 0x16766435 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x167c5967 print_hex_dump +EXPORT_SYMBOL vmlinux 0x1681d643 unregister_console +EXPORT_SYMBOL vmlinux 0x16837748 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x1697bbb6 scsi_init_io +EXPORT_SYMBOL vmlinux 0x16b89d1f blk_get_request +EXPORT_SYMBOL vmlinux 0x16cc51fc scsi_scan_target +EXPORT_SYMBOL vmlinux 0x16ce3b98 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL vmlinux 0x16df0829 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x16fb9363 input_unregister_device +EXPORT_SYMBOL vmlinux 0x16fe7f8d rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0x170473d7 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x17453db9 compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x17711c3c pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x1789bad5 devm_request_and_ioremap +EXPORT_SYMBOL vmlinux 0x17a142df __copy_from_user +EXPORT_SYMBOL vmlinux 0x17b093c5 fget +EXPORT_SYMBOL vmlinux 0x17b1125d gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x17b815aa dget_parent +EXPORT_SYMBOL vmlinux 0x17cab639 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x17ee5bbd pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x182d8db6 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x183eb805 lockref_get_not_zero +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184ba689 mmc_gpio_free_ro +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x186d99f8 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0x188a3dfb timespec_trunc +EXPORT_SYMBOL vmlinux 0x18961bfa tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18b48e28 __memset_io +EXPORT_SYMBOL vmlinux 0x18c0faac blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0x18df02c6 ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0x18f2128e splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x190b8f67 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x19296d00 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x19444627 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x194c0e9a set_create_files_as +EXPORT_SYMBOL vmlinux 0x195a42d4 dev_load +EXPORT_SYMBOL vmlinux 0x19603d71 tcp_poll +EXPORT_SYMBOL vmlinux 0x1974799e inode_get_bytes +EXPORT_SYMBOL vmlinux 0x19772e7d of_phy_find_device +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19c4e2c5 mount_pseudo +EXPORT_SYMBOL vmlinux 0x19d1a5c2 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL vmlinux 0x1a1295fe posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x1a21ae57 inet_del_offload +EXPORT_SYMBOL vmlinux 0x1a2a0283 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x1a352ad8 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x1a63f450 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x1a78af9f skb_unlink +EXPORT_SYMBOL vmlinux 0x1a7ffc20 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x1aa5e511 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x1aa735cc dma_find_channel +EXPORT_SYMBOL vmlinux 0x1aae23a5 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL vmlinux 0x1abc0bcf dcache_dir_close +EXPORT_SYMBOL vmlinux 0x1abcfd75 bdi_unregister +EXPORT_SYMBOL vmlinux 0x1abf6237 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x1ac06e00 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x1ac5d3cb strcspn +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1acf839c ps2_command +EXPORT_SYMBOL vmlinux 0x1aee7e96 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x1af49c38 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x1afc670a __elv_add_request +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b1e1088 sg_nents +EXPORT_SYMBOL vmlinux 0x1b2a4c8d blk_put_request +EXPORT_SYMBOL vmlinux 0x1b2a50d2 blk_mq_run_queues +EXPORT_SYMBOL vmlinux 0x1b353088 clk_register_clkdevs +EXPORT_SYMBOL vmlinux 0x1b3ea98a phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x1b4edab6 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x1b539797 generic_fillattr +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b82fefa md_unplug +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1ba88888 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x1bab9e8d module_put +EXPORT_SYMBOL vmlinux 0x1bb2f7f8 key_unlink +EXPORT_SYMBOL vmlinux 0x1bca2a90 prepare_to_wait +EXPORT_SYMBOL vmlinux 0x1bdb440b update_devfreq +EXPORT_SYMBOL vmlinux 0x1bdc26cf sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x1bf4f531 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x1c1b578b __vexpress_config_func_get +EXPORT_SYMBOL vmlinux 0x1c2936db pci_platform_rom +EXPORT_SYMBOL vmlinux 0x1c312ade file_update_time +EXPORT_SYMBOL vmlinux 0x1c347b9f alloc_fcdev +EXPORT_SYMBOL vmlinux 0x1c3a11c6 __scm_destroy +EXPORT_SYMBOL vmlinux 0x1c3e02e4 memcmp +EXPORT_SYMBOL vmlinux 0x1c5c3004 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x1c65f595 serio_close +EXPORT_SYMBOL vmlinux 0x1c6f67c3 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x1c7f9cc0 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x1cb371ac tty_lock_pair +EXPORT_SYMBOL vmlinux 0x1ce49b19 follow_down +EXPORT_SYMBOL vmlinux 0x1ce6f028 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x1d021344 input_release_device +EXPORT_SYMBOL vmlinux 0x1d05d746 generic_file_open +EXPORT_SYMBOL vmlinux 0x1d1f8848 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x1d3a4534 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x1d3b6a2a cdev_add +EXPORT_SYMBOL vmlinux 0x1d3c7e8f __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x1d6f2cdb misc_deregister +EXPORT_SYMBOL vmlinux 0x1d92d898 complete_and_exit +EXPORT_SYMBOL vmlinux 0x1daa9217 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dc59c36 find_or_create_page +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de3ca9a get_fs_type +EXPORT_SYMBOL vmlinux 0x1de6db38 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x1def197f scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x1e047854 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x1e0801a9 dquot_operations +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e2d198b jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x1e3a2db3 netif_device_detach +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e711bf0 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x1e7f8cb2 inet_release +EXPORT_SYMBOL vmlinux 0x1e943b01 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x1e9db5e8 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x1e9de86a open_exec +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea06663 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x1eab6e60 skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0x1eb6594a of_find_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0x1ec3bed9 hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x1ec4eb34 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x1ed482e0 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x1f2cbd88 wait_iff_congested +EXPORT_SYMBOL vmlinux 0x1f5b2ae2 kernel_connect +EXPORT_SYMBOL vmlinux 0x1f6ce67a sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x1f7f6d85 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x1f95e031 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x1fa31d23 da903x_query_status +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fc12847 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0x1fcf4d4b _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x1fe912f1 netdev_alloc_frag +EXPORT_SYMBOL vmlinux 0x1fe9f800 unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x1fef62f9 elv_rb_find +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2002dc9f generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x20055384 down_read +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x2018bbcc __free_pages +EXPORT_SYMBOL vmlinux 0x204346af proc_dostring +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x2069a608 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x20819f22 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20a86b3f of_get_pci_address +EXPORT_SYMBOL vmlinux 0x20b2bb2d param_array_ops +EXPORT_SYMBOL vmlinux 0x20c55ae0 sscanf +EXPORT_SYMBOL vmlinux 0x20d57895 seq_pad +EXPORT_SYMBOL vmlinux 0x20e33976 pci_map_rom +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x20fa0152 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x20fb70dd bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x20ffa7f6 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0x21004108 dquot_transfer +EXPORT_SYMBOL vmlinux 0x21288bc2 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x21386f6a del_gendisk +EXPORT_SYMBOL vmlinux 0x215bcc55 key_alloc +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x215fcb8c dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x216c16e2 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x217dd924 tty_lock +EXPORT_SYMBOL vmlinux 0x217dda13 flex_array_get +EXPORT_SYMBOL vmlinux 0x219c8acb register_sysctl +EXPORT_SYMBOL vmlinux 0x21bd2b74 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x21d343f7 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x21de23ba __cleancache_get_page +EXPORT_SYMBOL vmlinux 0x21df3954 may_umount +EXPORT_SYMBOL vmlinux 0x21e4e6b6 ida_destroy +EXPORT_SYMBOL vmlinux 0x21fec7c2 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x2218c65b nf_reinject +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2236ac55 tty_port_destroy +EXPORT_SYMBOL vmlinux 0x224f73f2 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x224ff4ad wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x225bda7f dev_printk +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x227d97d6 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x2290c49d mount_nodev +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22b83fbf unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x22baea3d proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x22c1636f scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x22c585bd iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x22c7a1d8 idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x22d75a62 I_BDEV +EXPORT_SYMBOL vmlinux 0x23071120 sock_edemux +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x233214f0 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x2332dca4 do_truncate +EXPORT_SYMBOL vmlinux 0x23448604 sock_init_data +EXPORT_SYMBOL vmlinux 0x23450f9e revalidate_disk +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x236fc143 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x2390592f iget_failed +EXPORT_SYMBOL vmlinux 0x2390c7da dst_alloc +EXPORT_SYMBOL vmlinux 0x239acda7 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x239ca3d4 phy_attach +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23c9891c kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24212d86 __frontswap_invalidate_page +EXPORT_SYMBOL vmlinux 0x2430dc71 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x24318aaf seq_puts +EXPORT_SYMBOL vmlinux 0x244616b1 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x24554b35 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x24830155 simple_release_fs +EXPORT_SYMBOL vmlinux 0x2484adc3 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0x2487b354 pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0x24a422aa proc_create_data +EXPORT_SYMBOL vmlinux 0x24ab91ba set_security_override +EXPORT_SYMBOL vmlinux 0x24b0db2e sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x24b0f90c of_clk_get_by_name +EXPORT_SYMBOL vmlinux 0x24b67834 sk_filter +EXPORT_SYMBOL vmlinux 0x24b6f676 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x24f9ba95 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x2508cef2 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x255760bf init_net +EXPORT_SYMBOL vmlinux 0x255bb072 change_bit +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x25883620 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25fcea5d tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x260cf8f8 of_get_property +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x2650d835 sysctl_ip_early_demux +EXPORT_SYMBOL vmlinux 0x265804f0 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x265ed37c jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x2665d53a key_create_or_update +EXPORT_SYMBOL vmlinux 0x266fde50 simple_empty +EXPORT_SYMBOL vmlinux 0x2676661e xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x268a4e78 vfs_statfs +EXPORT_SYMBOL vmlinux 0x26a51595 page_put_link +EXPORT_SYMBOL vmlinux 0x26b96a51 input_reset_device +EXPORT_SYMBOL vmlinux 0x26dac6a8 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f0453a blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x2704e97f skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x2712f4f5 crc32_le_combine +EXPORT_SYMBOL vmlinux 0x271643b6 read_cache_page +EXPORT_SYMBOL vmlinux 0x2724ba66 __ioremap +EXPORT_SYMBOL vmlinux 0x273688ec nlmsg_notify +EXPORT_SYMBOL vmlinux 0x2739c1d7 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x2743ad88 blk_peek_request +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x2770b2a6 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x277c0452 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x277eff37 dev_mc_init +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27b703bc dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27de0f36 scsi_register +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x2805b670 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x28180b20 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x281eb470 ip6_route_output +EXPORT_SYMBOL vmlinux 0x28318305 snprintf +EXPORT_SYMBOL vmlinux 0x2849d0e3 release_sock +EXPORT_SYMBOL vmlinux 0x287e8e96 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x28924e52 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x28928e6e blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28abfe6e scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x28b64311 write_one_page +EXPORT_SYMBOL vmlinux 0x28c0b9bf sk_capable +EXPORT_SYMBOL vmlinux 0x28d7ffea lg_local_unlock +EXPORT_SYMBOL vmlinux 0x28e77669 blk_mq_free_single_hw_queue +EXPORT_SYMBOL vmlinux 0x28e7b2fd qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x291ba05d udplite_table +EXPORT_SYMBOL vmlinux 0x2938a2ed ida_pre_get +EXPORT_SYMBOL vmlinux 0x29428576 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x2945966a pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x295eae50 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x2975257d swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x29a71ad3 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x29c3567f pskb_expand_head +EXPORT_SYMBOL vmlinux 0x29c905b4 phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x29e3be1c filemap_flush +EXPORT_SYMBOL vmlinux 0x2a0babb2 scsi_execute +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a3198de mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a4221e3 ps2_drain +EXPORT_SYMBOL vmlinux 0x2a45c87d ppp_input_error +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2a821788 of_mdio_find_bus +EXPORT_SYMBOL vmlinux 0x2a8d2a95 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x2a9b7e04 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x2aa1ad41 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2ab2b705 filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0x2ab5030d blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x2ab6d092 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x2ac3f052 unregister_nls +EXPORT_SYMBOL vmlinux 0x2acb104f tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x2acb7de0 blk_bio_map_sg +EXPORT_SYMBOL vmlinux 0x2acf0feb vfs_fstat +EXPORT_SYMBOL vmlinux 0x2ad41c19 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x2ae71164 i2c_use_client +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b0d8c68 handle_edge_irq +EXPORT_SYMBOL vmlinux 0x2b135eda dev_get_by_name +EXPORT_SYMBOL vmlinux 0x2b247b78 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x2b29ef66 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b303cb9 vfs_llseek +EXPORT_SYMBOL vmlinux 0x2b40d500 tty_port_init +EXPORT_SYMBOL vmlinux 0x2b6bcdf7 alloc_file +EXPORT_SYMBOL vmlinux 0x2b6d8eb1 pci_get_device +EXPORT_SYMBOL vmlinux 0x2b9abfaa find_get_page +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb67727 dquot_resume +EXPORT_SYMBOL vmlinux 0x2bc0b205 blk_run_queue_async +EXPORT_SYMBOL vmlinux 0x2bca0d82 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x2bcfbec0 devm_clk_put +EXPORT_SYMBOL vmlinux 0x2bdd3bdf sk_dst_check +EXPORT_SYMBOL vmlinux 0x2bdd6e28 node_states +EXPORT_SYMBOL vmlinux 0x2be0f12d dql_completed +EXPORT_SYMBOL vmlinux 0x2be16dbd netlink_ack +EXPORT_SYMBOL vmlinux 0x2be5c558 idr_get_next +EXPORT_SYMBOL vmlinux 0x2bf54af1 __nla_put +EXPORT_SYMBOL vmlinux 0x2c0c1372 clk_add_alias +EXPORT_SYMBOL vmlinux 0x2c0ed93b seq_escape +EXPORT_SYMBOL vmlinux 0x2c1178d2 load_nls_default +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c58bca4 blk_mq_can_queue +EXPORT_SYMBOL vmlinux 0x2c749b8f vfs_symlink +EXPORT_SYMBOL vmlinux 0x2c7c8e9a pcibios_min_mem +EXPORT_SYMBOL vmlinux 0x2caef9ff key_revoke +EXPORT_SYMBOL vmlinux 0x2cb23c3c dquot_commit +EXPORT_SYMBOL vmlinux 0x2cc9f5c3 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x2cd5b71a scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x2ce83d66 scsi_host_get +EXPORT_SYMBOL vmlinux 0x2cf73cb7 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x2d007ba2 inet6_getname +EXPORT_SYMBOL vmlinux 0x2d03c10d posix_acl_create +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d2fe793 netdev_printk +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask +EXPORT_SYMBOL vmlinux 0x2d3a7ea4 dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0x2d3c70ce sock_kmalloc +EXPORT_SYMBOL vmlinux 0x2d6ec5f0 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x2d771f2a dev_warn +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2daaaba9 param_get_byte +EXPORT_SYMBOL vmlinux 0x2dce2f1c __irq_regs +EXPORT_SYMBOL vmlinux 0x2dd2cb3a netpoll_print_options +EXPORT_SYMBOL vmlinux 0x2de1327b bit_waitqueue +EXPORT_SYMBOL vmlinux 0x2de49dce d_obtain_alias +EXPORT_SYMBOL vmlinux 0x2de8f329 fd_install +EXPORT_SYMBOL vmlinux 0x2ded4091 neigh_table_init +EXPORT_SYMBOL vmlinux 0x2deda4a1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x2df7c387 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x2e0d2f7f queue_work_on +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e2b40d2 strncat +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e3f8175 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x2e5646d5 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x2e7be112 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x2ea4c1c9 lg_global_unlock +EXPORT_SYMBOL vmlinux 0x2ea67edf unregister_key_type +EXPORT_SYMBOL vmlinux 0x2ebbdc55 softnet_data +EXPORT_SYMBOL vmlinux 0x2ec61271 netdev_update_features +EXPORT_SYMBOL vmlinux 0x2ecf620d jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x2ed14a50 netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef40cf4 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x2ef5c08c sk_receive_skb +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f1aaa4e devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x2f3857e2 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x2f65215d wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x2f6c81dd dst_destroy +EXPORT_SYMBOL vmlinux 0x2f776ea5 console_stop +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fbd9c4c lockref_get_or_lock +EXPORT_SYMBOL vmlinux 0x2fc1a877 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x2fddea88 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2ff0cef6 __skb_gso_segment +EXPORT_SYMBOL vmlinux 0x2ffce8b2 iget_locked +EXPORT_SYMBOL vmlinux 0x30182ac5 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x3047b124 pipe_to_file +EXPORT_SYMBOL vmlinux 0x304ec72b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x3051943b mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x305cec12 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x30650ef1 bio_reset +EXPORT_SYMBOL vmlinux 0x30759db0 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x3087b7ed uart_suspend_port +EXPORT_SYMBOL vmlinux 0x308cbd53 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30b2bb79 amba_driver_register +EXPORT_SYMBOL vmlinux 0x30be4ec1 netdev_change_features +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30eab9df gen10g_restart_aneg +EXPORT_SYMBOL vmlinux 0x30f35ba0 idr_remove +EXPORT_SYMBOL vmlinux 0x3102d70b frontswap_curr_pages +EXPORT_SYMBOL vmlinux 0x311c2c81 irq_to_desc +EXPORT_SYMBOL vmlinux 0x312da2ac pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0x31301b03 bio_add_page +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x31805f80 __net_get_random_once +EXPORT_SYMBOL vmlinux 0x318cadb1 reciprocal_value +EXPORT_SYMBOL vmlinux 0x319cd13b input_allocate_device +EXPORT_SYMBOL vmlinux 0x31bd0541 release_firmware +EXPORT_SYMBOL vmlinux 0x320c1309 __destroy_inode +EXPORT_SYMBOL vmlinux 0x321d5ab3 amba_release_regions +EXPORT_SYMBOL vmlinux 0x322982d6 locks_free_lock +EXPORT_SYMBOL vmlinux 0x322f48d4 abx500_dump_all_banks +EXPORT_SYMBOL vmlinux 0x324599fa sk_wait_data +EXPORT_SYMBOL vmlinux 0x324b3877 up +EXPORT_SYMBOL vmlinux 0x3252e240 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x32542836 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x326793c7 gen10g_config_advert +EXPORT_SYMBOL vmlinux 0x327186db unlock_rename +EXPORT_SYMBOL vmlinux 0x327bf883 of_can_translate_address +EXPORT_SYMBOL vmlinux 0x328f302b phy_start_aneg +EXPORT_SYMBOL vmlinux 0x32947076 mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0x32acb320 inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x32adaad9 pcie_set_mps +EXPORT_SYMBOL vmlinux 0x32c85a05 inet_select_addr +EXPORT_SYMBOL vmlinux 0x32d3e976 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x32edf7de __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x32f12b59 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x330659b2 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x3314ff45 input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x33316bfb iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x3332e13e inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x333bc7b3 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x333cb37c __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x33720dba kill_pgrp +EXPORT_SYMBOL vmlinux 0x338ce1ec neigh_direct_output +EXPORT_SYMBOL vmlinux 0x33ba5cd4 param_ops_bool +EXPORT_SYMBOL vmlinux 0x33c7435c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x33e1dc73 ipmi_smi_add_proc_entry +EXPORT_SYMBOL vmlinux 0x33e29741 blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0x33fb1440 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x33fcf44a __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x34101a12 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x34184afe current_kernel_time +EXPORT_SYMBOL vmlinux 0x341adfde truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x343bdaef serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0x343e278d xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x34465460 contig_page_data +EXPORT_SYMBOL vmlinux 0x34552e4c phy_drivers_register +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x3476b37f security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x347e6acf iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x347eb9bd param_set_bool +EXPORT_SYMBOL vmlinux 0x348f9ce5 dev_mc_del +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a54b24 netlink_net_capable +EXPORT_SYMBOL vmlinux 0x34a8387b dev_get_flags +EXPORT_SYMBOL vmlinux 0x34be4821 amba_request_regions +EXPORT_SYMBOL vmlinux 0x34ee767f padata_do_serial +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x3500a2bf neigh_table_clear +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x351f6b17 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x352bfc49 bio_copy_user +EXPORT_SYMBOL vmlinux 0x3539f11b match_strlcpy +EXPORT_SYMBOL vmlinux 0x355a4089 vga_put +EXPORT_SYMBOL vmlinux 0x356e6028 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x3570afbe genlmsg_put +EXPORT_SYMBOL vmlinux 0x3578e24c sock_no_bind +EXPORT_SYMBOL vmlinux 0x357a6346 set_anon_super +EXPORT_SYMBOL vmlinux 0x359036ba of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x359280bd scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x35a5c69f scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x35a920ed uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x35acee44 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x35b219bb ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0x35defc50 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x35df7b9c dentry_open +EXPORT_SYMBOL vmlinux 0x36044497 ilookup +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x360f8f8a __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x360ff19f down +EXPORT_SYMBOL vmlinux 0x3633cf9f generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x3635fd68 skb_checksum +EXPORT_SYMBOL vmlinux 0x3656c077 dev_set_group +EXPORT_SYMBOL vmlinux 0x367439e7 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x368382e2 of_get_named_gpiod_flags +EXPORT_SYMBOL vmlinux 0x368cee78 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x369e1115 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x36bd681b groups_alloc +EXPORT_SYMBOL vmlinux 0x36d7b11a of_find_matching_node_and_match +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36fa8daa i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x370d4ee5 call_netdevice_notifiers_info +EXPORT_SYMBOL vmlinux 0x3719e193 __d_drop +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x375ee002 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x3777ca48 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x37901c5b splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x37af9d3c ipmi_smi_watcher_unregister +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c0b0f6 ata_std_end_eh +EXPORT_SYMBOL vmlinux 0x37cd3311 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x3808d896 __serio_register_port +EXPORT_SYMBOL vmlinux 0x380ee87a abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x383ad1cd xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x3845cf81 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0x385e0206 submit_bh +EXPORT_SYMBOL vmlinux 0x386b30ff abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x388864f7 padata_start +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38a04fbb __skb_checksum +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38b7b21f __scsi_put_command +EXPORT_SYMBOL vmlinux 0x38cd6497 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x38d53185 __ip_dev_find +EXPORT_SYMBOL vmlinux 0x38eda007 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x39057767 genphy_resume +EXPORT_SYMBOL vmlinux 0x3906a729 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x391239b8 pci_disable_ido +EXPORT_SYMBOL vmlinux 0x39231787 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x393aef40 devm_gpio_request +EXPORT_SYMBOL vmlinux 0x393f7101 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x3955fcf6 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x39887768 do_SAK +EXPORT_SYMBOL vmlinux 0x398f576d cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x39968128 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x399ad043 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x39a99eb5 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x39c9d2f1 fbcon_rotate_cw +EXPORT_SYMBOL vmlinux 0x39d60deb nf_log_packet +EXPORT_SYMBOL vmlinux 0x39da82ed tty_port_put +EXPORT_SYMBOL vmlinux 0x3a0981fe uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x3a20ff73 __crc32c_le +EXPORT_SYMBOL vmlinux 0x3a23a77b pci_request_regions +EXPORT_SYMBOL vmlinux 0x3a358023 proc_mkdir +EXPORT_SYMBOL vmlinux 0x3a4ab20c inet_register_protosw +EXPORT_SYMBOL vmlinux 0x3a4b3441 inet_shutdown +EXPORT_SYMBOL vmlinux 0x3a4d7fe9 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x3a6333f6 __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x3a650700 led_blink_set +EXPORT_SYMBOL vmlinux 0x3a66a4ff generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x3a6cb529 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x3a7cbb73 eth_header_cache +EXPORT_SYMBOL vmlinux 0x3a7f7873 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x3a891331 __blk_end_request +EXPORT_SYMBOL vmlinux 0x3a8d2c92 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa0071c dqget +EXPORT_SYMBOL vmlinux 0x3ab41b25 __copy_in_user +EXPORT_SYMBOL vmlinux 0x3abccbb1 tcp_close +EXPORT_SYMBOL vmlinux 0x3aec9eb9 __napi_schedule +EXPORT_SYMBOL vmlinux 0x3afecebb twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x3b0587e0 xen_biovec_phys_mergeable +EXPORT_SYMBOL vmlinux 0x3b300948 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x3b3119fd tc_classify +EXPORT_SYMBOL vmlinux 0x3b38fac9 blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0x3b57b8e7 n_tty_compat_ioctl_helper +EXPORT_SYMBOL vmlinux 0x3b8f74ed page_symlink +EXPORT_SYMBOL vmlinux 0x3b90d889 blk_mq_alloc_single_hw_queue +EXPORT_SYMBOL vmlinux 0x3babe69f try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd71e82 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x3bef03b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x3bf4c878 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x3c0d4b06 downgrade_write +EXPORT_SYMBOL vmlinux 0x3c1f56f1 pci_enable_ido +EXPORT_SYMBOL vmlinux 0x3c1fb1b5 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x3c21d1b0 blk_register_region +EXPORT_SYMBOL vmlinux 0x3c25b6a9 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0x3c33d28d nf_log_set +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c9860ce dev_addr_init +EXPORT_SYMBOL vmlinux 0x3c9a8ff1 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb1f749 km_query +EXPORT_SYMBOL vmlinux 0x3cb9e1e3 netdev_features_change +EXPORT_SYMBOL vmlinux 0x3cbf0f55 scsi_device_get +EXPORT_SYMBOL vmlinux 0x3ccdd8d1 phy_device_register +EXPORT_SYMBOL vmlinux 0x3cdf5e60 dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf6dade pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0x3cfae893 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x3d093081 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x3d3e1d92 __block_write_begin +EXPORT_SYMBOL vmlinux 0x3d41904f of_get_next_child +EXPORT_SYMBOL vmlinux 0x3d5844b3 strnicmp +EXPORT_SYMBOL vmlinux 0x3d6ab8b6 backlight_force_update +EXPORT_SYMBOL vmlinux 0x3d73fb3c sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dd78fce neigh_for_each +EXPORT_SYMBOL vmlinux 0x3df67f8e mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x3df7a032 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e6b3ffd pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e941104 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x3ebcbb16 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f1ee93b framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x3f43eef9 get_super_thawed +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f7cfddf netdev_notice +EXPORT_SYMBOL vmlinux 0x3f8c8dc0 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x3fabc3c4 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x3fc349e3 pci_read_vpd +EXPORT_SYMBOL vmlinux 0x3fc42933 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x3fd55724 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x3fe2ccbe memweight +EXPORT_SYMBOL vmlinux 0x3feb76a9 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3fed8cad xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x4016d568 twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x4027bcb6 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x402a2e7f genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x40335fc3 icmp_send +EXPORT_SYMBOL vmlinux 0x404f0bc3 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40691086 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x407cb6d9 ip6_expire_frag_queue +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a73e98 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40b226d0 cdrom_open +EXPORT_SYMBOL vmlinux 0x40b2c030 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x40b91d87 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x40c01859 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL vmlinux 0x4103a05f put_disk +EXPORT_SYMBOL vmlinux 0x410f4985 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x41182cc0 pgprot_default +EXPORT_SYMBOL vmlinux 0x41210569 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x4131791d sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x4138c251 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x413995cc check_submounts_and_drop +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x41667ca1 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41978cd4 pci_select_bars +EXPORT_SYMBOL vmlinux 0x41fcc569 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x4227b8f8 load_nls +EXPORT_SYMBOL vmlinux 0x42324133 idr_find_slowpath +EXPORT_SYMBOL vmlinux 0x423b776a ipmi_create_user +EXPORT_SYMBOL vmlinux 0x42628b69 skb_clone +EXPORT_SYMBOL vmlinux 0x426f787a sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x428001ab dev_alert +EXPORT_SYMBOL vmlinux 0x428a5302 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a1b208 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x42aa55e8 sock_i_ino +EXPORT_SYMBOL vmlinux 0x42ab3b88 dquot_alloc +EXPORT_SYMBOL vmlinux 0x42ae5af0 dqstats +EXPORT_SYMBOL vmlinux 0x42bb4989 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x42d1abb6 nla_append +EXPORT_SYMBOL vmlinux 0x42e29f06 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x430e6084 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0x431ea294 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x434b6f5d kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x43632d7d of_find_property +EXPORT_SYMBOL vmlinux 0x436341d6 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x4371adb5 bio_advance +EXPORT_SYMBOL vmlinux 0x437b0859 fget_light +EXPORT_SYMBOL vmlinux 0x437d9755 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x43892743 led_set_brightness +EXPORT_SYMBOL vmlinux 0x439b6166 inet6_register_icmp_sender +EXPORT_SYMBOL vmlinux 0x43b4c2a4 ata_link_printk +EXPORT_SYMBOL vmlinux 0x43c2a786 __cpu_clear_user_page +EXPORT_SYMBOL vmlinux 0x43c6dae1 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x43cae752 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x43ea6b45 d_splice_alias +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x4411c503 prandom_seed +EXPORT_SYMBOL vmlinux 0x44183352 set_bh_page +EXPORT_SYMBOL vmlinux 0x4433fbc5 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x44641bd5 __quota_error +EXPORT_SYMBOL vmlinux 0x447c5470 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x448eac3e kmemdup +EXPORT_SYMBOL vmlinux 0x44abf0cd jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x44c03643 cdrom_release +EXPORT_SYMBOL vmlinux 0x44c36f86 input_flush_device +EXPORT_SYMBOL vmlinux 0x44e65039 sock_update_memcg +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f40726 pci_find_capability +EXPORT_SYMBOL vmlinux 0x44f5e8b5 of_allnodes +EXPORT_SYMBOL vmlinux 0x450cfe61 would_dump +EXPORT_SYMBOL vmlinux 0x4522fbdf scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x454f3561 twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0x45659400 noop_llseek +EXPORT_SYMBOL vmlinux 0x4569b177 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap +EXPORT_SYMBOL vmlinux 0x45a765cf pci_add_resource +EXPORT_SYMBOL vmlinux 0x45d0054f __seq_open_private +EXPORT_SYMBOL vmlinux 0x45da53ea nf_getsockopt +EXPORT_SYMBOL vmlinux 0x45ea556c generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x461ac773 kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x4625797f mpage_writepage +EXPORT_SYMBOL vmlinux 0x462c660f proc_dointvec +EXPORT_SYMBOL vmlinux 0x465cab34 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x465f1828 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x46608fa0 getnstimeofday +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x468bcda6 cpumask_set_cpu_local_first +EXPORT_SYMBOL vmlinux 0x468d9d12 skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0x46a2a807 dqput +EXPORT_SYMBOL vmlinux 0x46bdec3c dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x46d3d0bf compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x46de7c9f generic_file_mmap +EXPORT_SYMBOL vmlinux 0x46df735d udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x46f26ff6 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x4701236f fifo_set_limit +EXPORT_SYMBOL vmlinux 0x471f1957 netdev_emerg +EXPORT_SYMBOL vmlinux 0x4724e0b8 mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x4733cfdd bio_init +EXPORT_SYMBOL vmlinux 0x47416e14 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x47459950 dev_crit +EXPORT_SYMBOL vmlinux 0x474aeff6 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x475c1c28 sock_wfree +EXPORT_SYMBOL vmlinux 0x47626c04 from_kgid_munged +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47bcf84c param_set_ulong +EXPORT_SYMBOL vmlinux 0x47c8baf4 param_ops_uint +EXPORT_SYMBOL vmlinux 0x48034724 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x481ccba6 unregister_netdev +EXPORT_SYMBOL vmlinux 0x4829a47e memcpy +EXPORT_SYMBOL vmlinux 0x482a2a49 param_set_charp +EXPORT_SYMBOL vmlinux 0x482b423b __frontswap_load +EXPORT_SYMBOL vmlinux 0x482c9a4b md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0x483a282a pci_release_region +EXPORT_SYMBOL vmlinux 0x4841bdee strnchr +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x485a67b9 blkdev_issue_write_same +EXPORT_SYMBOL vmlinux 0x485ea377 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x487764f4 __frontswap_store +EXPORT_SYMBOL vmlinux 0x489d79dc mmc_start_bkops +EXPORT_SYMBOL vmlinux 0x48af9d70 seq_putc +EXPORT_SYMBOL vmlinux 0x48c6db53 of_get_child_by_name +EXPORT_SYMBOL vmlinux 0x48c730d7 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x48dd8c70 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x48e250a4 vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x4913befc rwsem_is_locked +EXPORT_SYMBOL vmlinux 0x4920bb81 release_pages +EXPORT_SYMBOL vmlinux 0x4930358a bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x493dd43e pneigh_lookup +EXPORT_SYMBOL vmlinux 0x49494d40 inode_dio_done +EXPORT_SYMBOL vmlinux 0x495c96f8 posix_acl_init +EXPORT_SYMBOL vmlinux 0x495da317 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x496aea59 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x4985c694 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49c4d434 phy_connect +EXPORT_SYMBOL vmlinux 0x49cfe8f9 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x49f27eb2 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a40c183 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x4a55ec36 register_netdev +EXPORT_SYMBOL vmlinux 0x4a59de05 cdev_init +EXPORT_SYMBOL vmlinux 0x4a74302f pci_dev_get +EXPORT_SYMBOL vmlinux 0x4a836c62 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x4aa533bc proc_set_user +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4af3bc5d inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x4af5e3c9 sync_inode +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b08d5b0 skb_copy +EXPORT_SYMBOL vmlinux 0x4b0b6f0c submit_bio +EXPORT_SYMBOL vmlinux 0x4b32f830 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x4b34915c jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x4b5832ed netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b653463 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x4b9489bd pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x4bb62fc7 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x4beddac4 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x4bee3707 netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0x4c014d9a dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c141b3f mmc_get_card +EXPORT_SYMBOL vmlinux 0x4c334e2b always_delete_dentry +EXPORT_SYMBOL vmlinux 0x4c3c0ff3 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x4c3e42e4 fb_show_logo +EXPORT_SYMBOL vmlinux 0x4c4696ba build_skb +EXPORT_SYMBOL vmlinux 0x4c6ae17f ipmi_get_smi_info +EXPORT_SYMBOL vmlinux 0x4c6ebc96 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x4c6f9ef3 test_and_change_bit +EXPORT_SYMBOL vmlinux 0x4c711e6c jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL vmlinux 0x4ca9669f scnprintf +EXPORT_SYMBOL vmlinux 0x4cb17c09 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x4cb82384 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cd71056 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x4cda3bd4 generic_setxattr +EXPORT_SYMBOL vmlinux 0x4cdb3178 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x4ce79b9a generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page +EXPORT_SYMBOL vmlinux 0x4d2bd62d mpage_writepages +EXPORT_SYMBOL vmlinux 0x4d3103f6 md_integrity_register +EXPORT_SYMBOL vmlinux 0x4d371dab read_code +EXPORT_SYMBOL vmlinux 0x4d3c3175 mii_check_media +EXPORT_SYMBOL vmlinux 0x4d5defc6 ip_route_input_noref +EXPORT_SYMBOL vmlinux 0x4d62f2fb dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x4d82a516 init_special_inode +EXPORT_SYMBOL vmlinux 0x4d908f4f tcp_make_synack +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4dcc0306 mmc_add_host +EXPORT_SYMBOL vmlinux 0x4ddf6dd7 of_device_unregister +EXPORT_SYMBOL vmlinux 0x4de34a07 cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x4de5bddf mmc_free_host +EXPORT_SYMBOL vmlinux 0x4def07f0 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e2b0225 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x4e34c784 dev_uc_add +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e53528e i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6bc99e xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e7cd4f6 tcp_release_cb +EXPORT_SYMBOL vmlinux 0x4e8f4ba5 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x4e910b10 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ea8e770 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x4ec56050 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x4ecaeea9 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x4ed8ff22 pci_bus_get +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4efc24d3 inode_change_ok +EXPORT_SYMBOL vmlinux 0x4f04e86e pci_disable_msi +EXPORT_SYMBOL vmlinux 0x4f14a573 pci_restore_state +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f248523 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f4443d9 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f624ab5 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x4f68e5c9 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x4f6b6379 pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0x4f8372e2 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x4f8ac40e __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x4f980020 arp_tbl +EXPORT_SYMBOL vmlinux 0x4fa5d409 mii_nway_restart +EXPORT_SYMBOL vmlinux 0x4fdc2279 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x4fdf060a serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x502512bc cdev_alloc +EXPORT_SYMBOL vmlinux 0x5034a6a2 __get_user_pages +EXPORT_SYMBOL vmlinux 0x504a86e9 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x5052b09c dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x50542d11 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x506af8c1 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x5077c9fc i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x507b10a0 mem_cgroup_subsys +EXPORT_SYMBOL vmlinux 0x509e5ed3 dquot_initialize +EXPORT_SYMBOL vmlinux 0x50a39cd5 input_set_capability +EXPORT_SYMBOL vmlinux 0x50a90e8d bsearch +EXPORT_SYMBOL vmlinux 0x50d2592d hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x50d657db lro_flush_all +EXPORT_SYMBOL vmlinux 0x50dc5ce4 dev_activate +EXPORT_SYMBOL vmlinux 0x50e852f1 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x50f3beb0 elevator_init +EXPORT_SYMBOL vmlinux 0x50fc00e5 dput +EXPORT_SYMBOL vmlinux 0x5111091d idr_destroy +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5144525f input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0x51494c20 phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0x51568749 generic_write_end +EXPORT_SYMBOL vmlinux 0x515ceca4 padata_stop +EXPORT_SYMBOL vmlinux 0x51749fc8 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x5177ff93 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x517a6cc3 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x517b963d md_finish_reshape +EXPORT_SYMBOL vmlinux 0x5186a78e pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x51a7c0dc unload_nls +EXPORT_SYMBOL vmlinux 0x51ad7774 should_remove_suid +EXPORT_SYMBOL vmlinux 0x51ade33a security_path_mkdir +EXPORT_SYMBOL vmlinux 0x51c7a7b5 input_event +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e77c97 pfn_valid +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x5208f766 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x521b36b5 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x522765b5 write_cache_pages +EXPORT_SYMBOL vmlinux 0x5239ce3b ___ratelimit +EXPORT_SYMBOL vmlinux 0x52428cc8 parent_mem_cgroup +EXPORT_SYMBOL vmlinux 0x52440088 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x5245f6a4 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL vmlinux 0x52643f89 dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x527c0128 iunique +EXPORT_SYMBOL vmlinux 0x52a5e05c __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x52b101ab tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x52b61c3f gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0x52bc84a2 __find_get_block +EXPORT_SYMBOL vmlinux 0x52ced4bb vfs_read +EXPORT_SYMBOL vmlinux 0x52d17e3b bio_integrity_free +EXPORT_SYMBOL vmlinux 0x52d199e8 input_register_handler +EXPORT_SYMBOL vmlinux 0x52e40d3c serio_reconnect +EXPORT_SYMBOL vmlinux 0x52f4ecb3 netpoll_rx_enable +EXPORT_SYMBOL vmlinux 0x5316258f i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x531a31c6 skb_pull +EXPORT_SYMBOL vmlinux 0x532f01ee pci_disable_obff +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x5339ea78 jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0x53621a96 follow_pfn +EXPORT_SYMBOL vmlinux 0x5377e556 hex2bin +EXPORT_SYMBOL vmlinux 0x53a5e877 cdev_del +EXPORT_SYMBOL vmlinux 0x53c1037c devm_clk_get +EXPORT_SYMBOL vmlinux 0x53f058ba ip_ct_attach +EXPORT_SYMBOL vmlinux 0x53f8e7b8 __idr_pre_get +EXPORT_SYMBOL vmlinux 0x540075c4 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x5409775b free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x54245b39 kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0x54291d8f of_phy_connect +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x545dadec sync_blockdev +EXPORT_SYMBOL vmlinux 0x54682f42 phy_start +EXPORT_SYMBOL vmlinux 0x546c1564 new_inode +EXPORT_SYMBOL vmlinux 0x549179f9 generic_file_remap_pages +EXPORT_SYMBOL vmlinux 0x54a22e53 flush_old_exec +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54abe8ed __pci_register_driver +EXPORT_SYMBOL vmlinux 0x54b439c1 __module_get +EXPORT_SYMBOL vmlinux 0x54e22d43 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0x54e3cc3b param_get_int +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54e9d4c4 touch_buffer +EXPORT_SYMBOL vmlinux 0x54f9e4ec textsearch_unregister +EXPORT_SYMBOL vmlinux 0x54fc917a notify_change +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x552c0327 free_xenballooned_pages +EXPORT_SYMBOL vmlinux 0x5536b6ab write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x5553e6d3 of_phy_attach +EXPORT_SYMBOL vmlinux 0x5567c227 kernel_cpustat +EXPORT_SYMBOL vmlinux 0x556c2740 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x557acac1 md_write_end +EXPORT_SYMBOL vmlinux 0x55885c47 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x558a8025 mmc_gpio_request_ro +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55ccd4d2 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0x55d1d1f5 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x55f26558 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x56265ffd skb_push +EXPORT_SYMBOL vmlinux 0x562f6e36 bdi_register +EXPORT_SYMBOL vmlinux 0x56342ce1 down_timeout +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563aa7c0 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x563f1d42 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x5650f8c7 sget +EXPORT_SYMBOL vmlinux 0x56623871 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x5684b35e cad_pid +EXPORT_SYMBOL vmlinux 0x5684d94a in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x5698268d qdisc_reset +EXPORT_SYMBOL vmlinux 0x56a4855f sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x56b1c96c max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56d2e2cd inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x56fec2ee mapping_tagged +EXPORT_SYMBOL vmlinux 0x571d5877 pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0x57219154 md_error +EXPORT_SYMBOL vmlinux 0x5723f36c __invalidate_device +EXPORT_SYMBOL vmlinux 0x572d0104 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x574efdcb dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x5751a572 seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x575af70c on_each_cpu_mask +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x5792f848 strlcpy +EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x57a8792d walk_stackframe +EXPORT_SYMBOL vmlinux 0x57ac17b1 mmc_can_reset +EXPORT_SYMBOL vmlinux 0x57ef3644 kern_path_mountpoint +EXPORT_SYMBOL vmlinux 0x580d2cf4 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x583d028d fasync_helper +EXPORT_SYMBOL vmlinux 0x58507045 free_task +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x58636085 vm_mmap +EXPORT_SYMBOL vmlinux 0x58698d31 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x5869ff99 sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0x58752230 keyring_clear +EXPORT_SYMBOL vmlinux 0x587616f1 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x588c130c vexpress_config_func_put +EXPORT_SYMBOL vmlinux 0x58a45c98 try_to_release_page +EXPORT_SYMBOL vmlinux 0x58b60560 revert_creds +EXPORT_SYMBOL vmlinux 0x58beccf8 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x58d1070a of_get_address +EXPORT_SYMBOL vmlinux 0x58d1aa95 xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0x58e9c139 noop_fsync +EXPORT_SYMBOL vmlinux 0x58ecc64d blk_mq_init_commands +EXPORT_SYMBOL vmlinux 0x59142245 skb_append +EXPORT_SYMBOL vmlinux 0x5919799b ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x592896e5 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0x593a5ddb scsi_finish_command +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x597dda50 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x5991219c cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x59ad3a3d con_is_bound +EXPORT_SYMBOL vmlinux 0x59af5a0c __skb_get_hash +EXPORT_SYMBOL vmlinux 0x59c4928a blk_mq_map_queue +EXPORT_SYMBOL vmlinux 0x59c793fb xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x59cd86e0 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x59dcb24b backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x59e5fe2b bdev_read_only +EXPORT_SYMBOL vmlinux 0x5a3038ed dm_kobject_release +EXPORT_SYMBOL vmlinux 0x5a326b5a devm_gpio_request_one +EXPORT_SYMBOL vmlinux 0x5a4ff8b5 key_validate +EXPORT_SYMBOL vmlinux 0x5a518a10 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x5a5536c2 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x5a6c001e mmc_gpio_free_cd +EXPORT_SYMBOL vmlinux 0x5a7cb475 __skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x5a80fa8d phy_attach_direct +EXPORT_SYMBOL vmlinux 0x5a8fd218 __dev_remove_offload +EXPORT_SYMBOL vmlinux 0x5a921311 strncmp +EXPORT_SYMBOL vmlinux 0x5a92334e pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x5a937c59 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x5a9a0d3a inode_permission +EXPORT_SYMBOL vmlinux 0x5a9befe5 ida_simple_get +EXPORT_SYMBOL vmlinux 0x5a9c9cf3 lg_lock_init +EXPORT_SYMBOL vmlinux 0x5a9f1d63 memmove +EXPORT_SYMBOL vmlinux 0x5ab95533 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0x5adc5ad3 ether_setup +EXPORT_SYMBOL vmlinux 0x5ae1462b scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x5ae274aa blk_fetch_request +EXPORT_SYMBOL vmlinux 0x5ae50279 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5b0f5199 mount_bdev +EXPORT_SYMBOL vmlinux 0x5b17b206 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x5b1bc62a pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x5b56860c vm_munmap +EXPORT_SYMBOL vmlinux 0x5b64e8c6 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x5b6ed817 dev_trans_start +EXPORT_SYMBOL vmlinux 0x5b7ac6ea unregister_cdrom +EXPORT_SYMBOL vmlinux 0x5b8884f4 skb_put +EXPORT_SYMBOL vmlinux 0x5ba1e60a mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x5bc10524 printk_emit +EXPORT_SYMBOL vmlinux 0x5bf06bc1 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x5c5d66c1 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x5c8d120a kernel_getsockname +EXPORT_SYMBOL vmlinux 0x5c8dedd4 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x5c9284a0 processor_id +EXPORT_SYMBOL vmlinux 0x5cac7fd3 sk_run_filter +EXPORT_SYMBOL vmlinux 0x5cbb1cde __pagevec_release +EXPORT_SYMBOL vmlinux 0x5cbe2e24 block_truncate_page +EXPORT_SYMBOL vmlinux 0x5cbe696c bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x5ccbfaee generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x5cd885d5 _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x5cde40c0 dma_common_get_sgtable +EXPORT_SYMBOL vmlinux 0x5ce34633 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5cfcb183 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x5d112304 __memcpy_fromio +EXPORT_SYMBOL vmlinux 0x5d39e1e8 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x5d41c87c param_ops_charp +EXPORT_SYMBOL vmlinux 0x5d550c4d scsi_sd_probe_domain +EXPORT_SYMBOL vmlinux 0x5d5b1547 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d65966c tty_write_room +EXPORT_SYMBOL vmlinux 0x5d98441a pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0x5dd66c5a key_type_keyring +EXPORT_SYMBOL vmlinux 0x5dd7d92f mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x5de367d2 unlock_buffer +EXPORT_SYMBOL vmlinux 0x5e1e69fe scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x5e492e68 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x5e4abc98 pci_set_master +EXPORT_SYMBOL vmlinux 0x5e7651cc unregister_md_personality +EXPORT_SYMBOL vmlinux 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9bacc1 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x5eaa11f9 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ec5c763 from_kprojid_munged +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f14073c d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0x5f1e0680 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x5f3c8f5c mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x5f58f676 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x5f59493b serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x5f7abb79 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x5f81c4a1 dquot_file_open +EXPORT_SYMBOL vmlinux 0x5f8a1cb4 start_tty +EXPORT_SYMBOL vmlinux 0x5fa616c5 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x5fb95b07 blk_end_request +EXPORT_SYMBOL vmlinux 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL vmlinux 0x5fd348ad get_thermal_instance +EXPORT_SYMBOL vmlinux 0x5fda0227 vfs_stat +EXPORT_SYMBOL vmlinux 0x5fe04adf i2c_release_client +EXPORT_SYMBOL vmlinux 0x5ff11cc3 pcibios_min_io +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x6037208e pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x6043dd2f scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x60506b52 mpage_readpage +EXPORT_SYMBOL vmlinux 0x60670ce1 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x60707d81 dentry_unhash +EXPORT_SYMBOL vmlinux 0x608af2e9 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x6090482e do_splice_direct +EXPORT_SYMBOL vmlinux 0x6095bf1f __register_chrdev +EXPORT_SYMBOL vmlinux 0x609ce6ca generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a95e59 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x60d35e77 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x60d67fcb jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x60df1e3b posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x60e4ecf0 tcp_gso_segment +EXPORT_SYMBOL vmlinux 0x60eb59fb fbcon_rotate_ccw +EXPORT_SYMBOL vmlinux 0x611f01bd __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x61204132 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x61260b06 remap_vmalloc_range_partial +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x61421912 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x6146427c account_page_redirty +EXPORT_SYMBOL vmlinux 0x614b8481 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x61538ad0 param_get_charp +EXPORT_SYMBOL vmlinux 0x616066ec register_key_type +EXPORT_SYMBOL vmlinux 0x6170f35b blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x617850b0 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x617eace1 pci_save_state +EXPORT_SYMBOL vmlinux 0x6197ee5b jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x619cb7dd simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x61b477ec skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61d3f94d from_kgid +EXPORT_SYMBOL vmlinux 0x61f1b036 capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0x621a83ef xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x621cfe4e fb_blank +EXPORT_SYMBOL vmlinux 0x6222c493 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x62a5f6be vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x62dfddf4 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x62ff1d26 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x63071c2e pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x633fabf8 seq_lseek +EXPORT_SYMBOL vmlinux 0x636a6448 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x637d8bec netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x63aab00c tty_unlock +EXPORT_SYMBOL vmlinux 0x63b68a1f i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x63bd8258 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x63cecf85 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ec085a __bread +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x641bf375 dev_change_flags +EXPORT_SYMBOL vmlinux 0x642a5eec scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x64443980 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x64470c75 fbcon_rotate_ud +EXPORT_SYMBOL vmlinux 0x644a1f30 may_umount_tree +EXPORT_SYMBOL vmlinux 0x6466ef0f generic_make_request +EXPORT_SYMBOL vmlinux 0x64689f9c bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64a1f140 dev_uc_init +EXPORT_SYMBOL vmlinux 0x64a4787a lease_modify +EXPORT_SYMBOL vmlinux 0x64a4b84d cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x64b05665 tcp_proto_cgroup +EXPORT_SYMBOL vmlinux 0x64bbc288 string_unescape +EXPORT_SYMBOL vmlinux 0x64c10222 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x6512dfed try_module_get +EXPORT_SYMBOL vmlinux 0x651398f6 km_report +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x6513d62d xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651e4dbb xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x652b8c3d make_bad_inode +EXPORT_SYMBOL vmlinux 0x652ce9aa nla_memcmp +EXPORT_SYMBOL vmlinux 0x6532464d flush_signals +EXPORT_SYMBOL vmlinux 0x65345022 __wake_up +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x6550a37d dev_get_phys_port_id +EXPORT_SYMBOL vmlinux 0x655ea7ba ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x6567093d skb_checksum_help +EXPORT_SYMBOL vmlinux 0x6579c68d proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x658048a1 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65e0d6d7 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x65e30bba __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x65e683a4 fb_find_mode +EXPORT_SYMBOL vmlinux 0x65efcd80 security_path_rename +EXPORT_SYMBOL vmlinux 0x65f3ad9a fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x660029f4 init_task +EXPORT_SYMBOL vmlinux 0x6601b17c ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x6605f97f flex_array_clear +EXPORT_SYMBOL vmlinux 0x6618c1a7 __init_rwsem +EXPORT_SYMBOL vmlinux 0x662735d7 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x6629e3a1 truncate_setsize +EXPORT_SYMBOL vmlinux 0x662ab864 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x662b8298 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x6659a9d0 kern_unmount +EXPORT_SYMBOL vmlinux 0x666e09cf bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x6699160e tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x66a67dab flex_array_shrink +EXPORT_SYMBOL vmlinux 0x66bba660 security_path_chmod +EXPORT_SYMBOL vmlinux 0x66daef68 devm_gpio_free +EXPORT_SYMBOL vmlinux 0x6706eec2 skb_pad +EXPORT_SYMBOL vmlinux 0x670a0549 bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0x6712c24d vexpress_config_bridge_register +EXPORT_SYMBOL vmlinux 0x67297500 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x67306432 register_md_personality +EXPORT_SYMBOL vmlinux 0x67524d50 key_task_permission +EXPORT_SYMBOL vmlinux 0x675b8f61 param_get_string +EXPORT_SYMBOL vmlinux 0x676287d9 d_genocide +EXPORT_SYMBOL vmlinux 0x676660e2 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x67725238 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x67735c75 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x6786de99 pipe_unlock +EXPORT_SYMBOL vmlinux 0x6788fed3 drop_super +EXPORT_SYMBOL vmlinux 0x67901457 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x6796d926 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x679abf1a kernel_accept +EXPORT_SYMBOL vmlinux 0x67ad29f8 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b2aea4 mmc_gpio_request_cd +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c148f7 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL vmlinux 0x67f8d826 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x6815618b tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x681baec6 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x681c12d7 d_invalidate +EXPORT_SYMBOL vmlinux 0x681c43bf bh_submit_read +EXPORT_SYMBOL vmlinux 0x6823ce74 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x684b2469 swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x68733f91 flush_cache_all +EXPORT_SYMBOL vmlinux 0x68a9b59f mnt_pin +EXPORT_SYMBOL vmlinux 0x68b83ac6 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x68bf0d09 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x68e05d57 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x691916b1 udp_prot +EXPORT_SYMBOL vmlinux 0x694077de __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x69436f7b pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x69931931 tty_hangup +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a183bf dma_mmap_from_coherent +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69bb4e6a bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x69c82f07 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x69cf081d abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69d44696 scsi_put_command +EXPORT_SYMBOL vmlinux 0x69df816d tty_check_change +EXPORT_SYMBOL vmlinux 0x69e1db34 skb_split +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69fd1905 compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a3f4119 mmc_of_parse_voltage +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6aaad442 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad59ae2 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x6ae31853 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x6af306b2 gen10g_config_aneg +EXPORT_SYMBOL vmlinux 0x6b06fdce delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x6b0fe5d6 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x6b140da4 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x6b1b5f91 sk_common_release +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b640864 nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bcb5b09 __inode_permission +EXPORT_SYMBOL vmlinux 0x6bd04458 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6be3a243 inet_add_offload +EXPORT_SYMBOL vmlinux 0x6beb2078 param_set_copystring +EXPORT_SYMBOL vmlinux 0x6bf283ab ata_port_printk +EXPORT_SYMBOL vmlinux 0x6c1210b9 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x6c252359 tcp_check_req +EXPORT_SYMBOL vmlinux 0x6c2cdc47 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x6c40e110 user_path_create +EXPORT_SYMBOL vmlinux 0x6c51a836 sysctl_tcp_notsent_lowat +EXPORT_SYMBOL vmlinux 0x6c552395 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x6c5e5a44 simple_fill_super +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c68c486 __getblk +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c74440f elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x6c7f327d file_remove_suid +EXPORT_SYMBOL vmlinux 0x6c8179ca ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x6c9f7c3f xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x6cd8c86b __crc32c_le_combine +EXPORT_SYMBOL vmlinux 0x6cee6379 single_open +EXPORT_SYMBOL vmlinux 0x6cf20451 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d128981 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x6d1ff0cd simple_unlink +EXPORT_SYMBOL vmlinux 0x6d2444a9 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2dbca9 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d45933a vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x6d66a6fa genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x6d73e9dc ps2_begin_command +EXPORT_SYMBOL vmlinux 0x6dbcabc1 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0x6dd86822 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x6decefbc f_setown +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6dfb0aa4 input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x6e1761f1 simple_lookup +EXPORT_SYMBOL vmlinux 0x6e252a54 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x6e28211a seq_read +EXPORT_SYMBOL vmlinux 0x6e3bc3f1 __ps2_command +EXPORT_SYMBOL vmlinux 0x6e3d7daa __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x6e3e6c2b inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e8263bf vc_cons +EXPORT_SYMBOL vmlinux 0x6ebc5149 param_ops_long +EXPORT_SYMBOL vmlinux 0x6ef0c45e gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0x6f20960a full_name_hash +EXPORT_SYMBOL vmlinux 0x6f270e3f tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x6f376dec scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x6f588a86 skb_dequeue +EXPORT_SYMBOL vmlinux 0x6f6ba362 bdget +EXPORT_SYMBOL vmlinux 0x6f6fd784 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x6f8ff462 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x6fa8979e audit_log_start +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd040ec generic_segment_checks +EXPORT_SYMBOL vmlinux 0x6fd2a310 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x6fe068a9 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x6fe53497 d_lookup +EXPORT_SYMBOL vmlinux 0x6fe82640 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x700bd9a0 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x700ceada gen10g_read_status +EXPORT_SYMBOL vmlinux 0x701fc486 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x7033a6e9 textsearch_register +EXPORT_SYMBOL vmlinux 0x70505f31 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x707f43f6 __ctzdi2 +EXPORT_SYMBOL vmlinux 0x70916bff tcp_proc_register +EXPORT_SYMBOL vmlinux 0x70af92f3 skb_seq_read +EXPORT_SYMBOL vmlinux 0x70afd2f4 dev_disable_lro +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d0268d __scsi_add_device +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70ddc965 phy_device_create +EXPORT_SYMBOL vmlinux 0x710d4a94 sk_free +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7147bfd5 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x715076d5 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x71621f0b mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x716c6c04 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71802e2d swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x71936327 pcie_get_minimum_link +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71aba30f input_register_handle +EXPORT_SYMBOL vmlinux 0x71b1158b unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x71b1797a blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x71cbd0fd security_d_instantiate +EXPORT_SYMBOL vmlinux 0x71d459ea pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x7205b136 mmc_start_req +EXPORT_SYMBOL vmlinux 0x722ceb12 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x724a634a generic_show_options +EXPORT_SYMBOL vmlinux 0x728a3b1e get_super +EXPORT_SYMBOL vmlinux 0x7296d8a2 memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0x72b49283 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x72cddb0e max8925_reg_read +EXPORT_SYMBOL vmlinux 0x72dcec78 arp_send +EXPORT_SYMBOL vmlinux 0x72de10ca netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72fb2031 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x72fd9a36 ata_print_version +EXPORT_SYMBOL vmlinux 0x732d1751 sock_rfree +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x7351288b neigh_update +EXPORT_SYMBOL vmlinux 0x737b37c3 padata_add_cpu +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x73af47cf bioset_create +EXPORT_SYMBOL vmlinux 0x73e5c8a1 kobject_add +EXPORT_SYMBOL vmlinux 0x73f4aa68 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x73fd33f7 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x741289dd splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x7426e669 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x74275f80 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x743910b9 bio_split +EXPORT_SYMBOL vmlinux 0x743c4026 address_space_init_once +EXPORT_SYMBOL vmlinux 0x743e7960 __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x744f4efc xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x747195f0 hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x748214ee devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74901848 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x74a69cfd serio_unregister_port +EXPORT_SYMBOL vmlinux 0x74b877e1 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0x74bcaa34 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cdfe75 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x74e4ec6b pci_write_vpd +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x74e6a2a3 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x74fcf408 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x752aff62 simple_getattr +EXPORT_SYMBOL vmlinux 0x7532588a alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x754dac78 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x75518d1e kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x75542e34 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x755bdccc skb_queue_tail +EXPORT_SYMBOL vmlinux 0x756d5373 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x75850d01 __vmalloc +EXPORT_SYMBOL vmlinux 0x758e66fd kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x75931bb0 lookup_bdev +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75cd0819 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x75dc2326 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x75e40b9e pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x75fc8607 seq_vprintf +EXPORT_SYMBOL vmlinux 0x760197e2 twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x76234c50 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x765ff474 crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x767b7936 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x768c4086 bio_endio +EXPORT_SYMBOL vmlinux 0x769e06d7 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76cf7d8c __dquot_transfer +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d451c4 add_taint +EXPORT_SYMBOL vmlinux 0x76e438ff dev_get_by_index +EXPORT_SYMBOL vmlinux 0x76eaa049 setup_new_exec +EXPORT_SYMBOL vmlinux 0x76f365b8 of_device_register +EXPORT_SYMBOL vmlinux 0x77100dc6 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x7711be82 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x771cc385 filemap_fault +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x773fa409 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x7748c1b2 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x77923fc5 dquot_destroy +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77b1305b __ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77c81a30 netdev_state_change +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f10184 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x78031ee7 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x782a3734 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x7838ca05 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x783b3563 wake_up_atomic_t +EXPORT_SYMBOL vmlinux 0x7841b96f ps2_end_command +EXPORT_SYMBOL vmlinux 0x7846af3e __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x78553414 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x7871f49e jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x7886be54 napi_complete +EXPORT_SYMBOL vmlinux 0x789affb1 frontswap_tmem_exclusive_gets +EXPORT_SYMBOL vmlinux 0x78be82d8 pci_enable_ltr +EXPORT_SYMBOL vmlinux 0x78cefc6d vlan_vid_del +EXPORT_SYMBOL vmlinux 0x78dddac9 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL vmlinux 0x79153767 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x791750c6 lock_fb_info +EXPORT_SYMBOL vmlinux 0x7930d225 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x793b4c10 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x79438a96 devm_gpiod_get +EXPORT_SYMBOL vmlinux 0x7945ec30 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x796e0bd7 mntput +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x797c8fa9 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x797f073f register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x7984eefc key_update +EXPORT_SYMBOL vmlinux 0x79992099 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79af1b72 devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x79b6b420 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x79bac056 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x79e4311d vfs_rmdir +EXPORT_SYMBOL vmlinux 0x7a093ef1 tty_set_operations +EXPORT_SYMBOL vmlinux 0x7a188791 prandom_bytes +EXPORT_SYMBOL vmlinux 0x7a1c7feb copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x7a1ea6d5 vlan_vid_add +EXPORT_SYMBOL vmlinux 0x7a1eeb32 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a48be35 key_invalidate +EXPORT_SYMBOL vmlinux 0x7a645fe7 vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0x7a708ac1 deactivate_super +EXPORT_SYMBOL vmlinux 0x7a7470ac icmpv6_send +EXPORT_SYMBOL vmlinux 0x7a7730f3 phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7ab7b234 qdisc_watchdog_schedule_ns +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7acb694f tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7ad403d5 security_dentry_init_security +EXPORT_SYMBOL vmlinux 0x7add44b5 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7ae9900a phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x7af5dd64 mntget +EXPORT_SYMBOL vmlinux 0x7af6e407 __napi_complete +EXPORT_SYMBOL vmlinux 0x7af841dc xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x7b0028da blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x7b16235f hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x7b1f7903 pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0x7b2aef6c __krealloc +EXPORT_SYMBOL vmlinux 0x7b303a5b ilookup5 +EXPORT_SYMBOL vmlinux 0x7b48eae5 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x7b5c888d d_path +EXPORT_SYMBOL vmlinux 0x7b6646bb _raw_read_lock +EXPORT_SYMBOL vmlinux 0x7b66ea2c con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x7b7a2274 clk_get +EXPORT_SYMBOL vmlinux 0x7b7a9a40 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x7b809578 wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x7b8ae2b5 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x7b9852ec pci_alloc_dev +EXPORT_SYMBOL vmlinux 0x7bccd3b4 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x7bd24caf filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x7becb4b1 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x7c0b5b8e generic_write_checks +EXPORT_SYMBOL vmlinux 0x7c1372e8 panic +EXPORT_SYMBOL vmlinux 0x7c16bcc6 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x7c20bdf6 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x7c266abb soft_cursor +EXPORT_SYMBOL vmlinux 0x7c2712ae dev_printk_emit +EXPORT_SYMBOL vmlinux 0x7c2d098f krealloc +EXPORT_SYMBOL vmlinux 0x7c2fb30d pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x7c4ddd8d clear_inode +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c920d35 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cba6277 search_binary_handler +EXPORT_SYMBOL vmlinux 0x7cbefee5 security_inode_permission +EXPORT_SYMBOL vmlinux 0x7cc578da param_get_long +EXPORT_SYMBOL vmlinux 0x7cd67333 setattr_copy +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7ce2babd request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x7cf3a16b put_cmsg +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d0dfabd gen_pool_dma_alloc +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d190b3c generic_file_llseek +EXPORT_SYMBOL vmlinux 0x7d30c79a mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x7d7311e2 pci_enable_msi_block_auto +EXPORT_SYMBOL vmlinux 0x7d796ff8 devfreq_interval_update +EXPORT_SYMBOL vmlinux 0x7d92be62 alloc_anon_inode +EXPORT_SYMBOL vmlinux 0x7da94e8a noop_qdisc +EXPORT_SYMBOL vmlinux 0x7dae603b pci_disable_msix +EXPORT_SYMBOL vmlinux 0x7dc53555 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x7dcbd6e4 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x7dd021cb pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x7decb653 d_delete +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7df652ce skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x7e224d50 uart_resume_port +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e3e5162 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x7e3f4b21 d_find_any_alias +EXPORT_SYMBOL vmlinux 0x7e7534e9 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x7e7c21f0 dma_common_mmap +EXPORT_SYMBOL vmlinux 0x7e83762c dump_emit +EXPORT_SYMBOL vmlinux 0x7e918b3d of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0x7e98d318 vexpress_config_read +EXPORT_SYMBOL vmlinux 0x7ead74cc cfb_copyarea +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7eee5bed bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x7efeef12 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x7f0bfda5 rtmsg_ifinfo +EXPORT_SYMBOL vmlinux 0x7f147ec0 dev_err +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f277629 kill_fasync +EXPORT_SYMBOL vmlinux 0x7f42f1b6 mmc_erase +EXPORT_SYMBOL vmlinux 0x7f45aa9b down_write +EXPORT_SYMBOL vmlinux 0x7f730829 kill_block_super +EXPORT_SYMBOL vmlinux 0x7f9200b1 nf_nat_decode_session_hook +EXPORT_SYMBOL vmlinux 0x7fb65284 phy_detach +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7fe38f48 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x7ff9a82d dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x800cae9e __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x80116053 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x8012c848 dev_addr_add +EXPORT_SYMBOL vmlinux 0x80151e88 tcp_prot +EXPORT_SYMBOL vmlinux 0x801670fd lock_rename +EXPORT_SYMBOL vmlinux 0x8019f035 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x802d0e93 crc32_le +EXPORT_SYMBOL vmlinux 0x80466531 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x804f922a ipmi_addr_length +EXPORT_SYMBOL vmlinux 0x805a61e1 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x8065e7d3 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x80670fe2 security_path_mknod +EXPORT_SYMBOL vmlinux 0x808323fb xfrm_state_update +EXPORT_SYMBOL vmlinux 0x808f6ff4 __bio_clone +EXPORT_SYMBOL vmlinux 0x80b12e18 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x80bb9b7d security_path_rmdir +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d4008a free_netdev +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80dd6e40 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0x80e53ef8 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x8114da7f get_gendisk +EXPORT_SYMBOL vmlinux 0x81154ad0 udp6_csum_init +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x81533963 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815c56d0 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x818cfc82 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x81c6bcf0 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81f22857 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x820f65ac dquot_scan_active +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x82195a00 eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x821a3619 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x821abe3b netdev_master_upper_dev_link_private +EXPORT_SYMBOL vmlinux 0x82504df9 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8275c096 inet_listen +EXPORT_SYMBOL vmlinux 0x828062b1 __frontswap_init +EXPORT_SYMBOL vmlinux 0x82891998 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x82a47ee9 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82d73f01 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x82d8b5c5 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x83185d54 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x832b9a8f bdi_register_dev +EXPORT_SYMBOL vmlinux 0x832ef0fd kvm_read_guest_atomic +EXPORT_SYMBOL vmlinux 0x83497862 mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x8361a303 scsi_execute_req_flags +EXPORT_SYMBOL vmlinux 0x8389b691 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x83a0d280 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83b941ff put_page +EXPORT_SYMBOL vmlinux 0x83d36df5 tcp_init_sock +EXPORT_SYMBOL vmlinux 0x83dd46c0 pci_get_class +EXPORT_SYMBOL vmlinux 0x83eeb710 vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0x84060081 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x841962f8 param_get_ushort +EXPORT_SYMBOL vmlinux 0x842c328d input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x843d1fc1 security_path_unlink +EXPORT_SYMBOL vmlinux 0x8441d292 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x84578b4f kill_anon_super +EXPORT_SYMBOL vmlinux 0x846cb27e jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x84733053 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x84993c36 default_llseek +EXPORT_SYMBOL vmlinux 0x84d4bb97 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x84f42b8f grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x84ffea8b idr_preload +EXPORT_SYMBOL vmlinux 0x85061b76 _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x8509c540 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0x8518eca9 param_get_short +EXPORT_SYMBOL vmlinux 0x8526f284 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x8527f279 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x853bf7c1 param_set_int +EXPORT_SYMBOL vmlinux 0x856251b1 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x858a28d9 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x85af4c17 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85b6b1cf elevator_alloc +EXPORT_SYMBOL vmlinux 0x85daf68e tcf_register_action +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85f613de blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x861a0d86 dev_get_nest_level +EXPORT_SYMBOL vmlinux 0x863d8f6d xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x8646fa50 gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8663fd1c mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x86790abe __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a102eb tty_kref_put +EXPORT_SYMBOL vmlinux 0x86a991e3 input_grab_device +EXPORT_SYMBOL vmlinux 0x86aa3947 abort_creds +EXPORT_SYMBOL vmlinux 0x86caa413 simple_write_begin +EXPORT_SYMBOL vmlinux 0x86db5dc4 __sock_create +EXPORT_SYMBOL vmlinux 0x86e5bdba mmc_release_host +EXPORT_SYMBOL vmlinux 0x86ea4d38 complete_all +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x873677b2 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x87646275 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x8779a34f param_ops_byte +EXPORT_SYMBOL vmlinux 0x87876a2c ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x878c5d43 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x87a1451c pci_target_state +EXPORT_SYMBOL vmlinux 0x87a526c6 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x87ac717b tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x87b3ea42 devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0x87bbc145 seq_open_private +EXPORT_SYMBOL vmlinux 0x87d66e20 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x87f1fd2c ata_dev_printk +EXPORT_SYMBOL vmlinux 0x87fa7b3b dev_deactivate +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x883ed337 __register_binfmt +EXPORT_SYMBOL vmlinux 0x88513970 param_set_byte +EXPORT_SYMBOL vmlinux 0x88736f82 user_path_at +EXPORT_SYMBOL vmlinux 0x88b4e83b down_trylock +EXPORT_SYMBOL vmlinux 0x88c0c20f pci_bus_type +EXPORT_SYMBOL vmlinux 0x88ca0d0c ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x88ecc2fc clocksource_register +EXPORT_SYMBOL vmlinux 0x8905ca48 sk_ns_capable +EXPORT_SYMBOL vmlinux 0x8921c308 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x8935d899 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x894ce170 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x8963c139 dev_close +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x8981c46c set_blocksize +EXPORT_SYMBOL vmlinux 0x89a43cb8 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x89af3cd3 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89cbc432 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x89d51b34 pci_get_slot +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89eb914e i2c_register_driver +EXPORT_SYMBOL vmlinux 0x89fdad71 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x8a02dc14 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x8a0d813a tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x8a1ab4ee timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8a2861cb tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a513d47 arp_xmit +EXPORT_SYMBOL vmlinux 0x8a51d565 quota_send_warning +EXPORT_SYMBOL vmlinux 0x8a577985 unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x8a69ba34 empty_aops +EXPORT_SYMBOL vmlinux 0x8a69e8ee pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x8a6af65c kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x8a789e74 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aa57c4f udp_table +EXPORT_SYMBOL vmlinux 0x8ae02c37 vga_tryget +EXPORT_SYMBOL vmlinux 0x8ae12c25 bd_set_size +EXPORT_SYMBOL vmlinux 0x8ae69341 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x8ae905df security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0x8b03a4d7 simple_write_end +EXPORT_SYMBOL vmlinux 0x8b1a5e0c devm_iounmap +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b217413 d_instantiate +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b43159b register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b8e03db finish_no_open +EXPORT_SYMBOL vmlinux 0x8bd0a3fd _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x8c128853 mutex_lock +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c29f025 simple_open +EXPORT_SYMBOL vmlinux 0x8c519393 bio_put +EXPORT_SYMBOL vmlinux 0x8c6169aa __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x8c637d43 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x8c6d579d __test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x8c767e8c tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x8c80b772 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL vmlinux 0x8c99fd57 ip_check_defrag +EXPORT_SYMBOL vmlinux 0x8c9b7540 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0x8cb001c6 __brelse +EXPORT_SYMBOL vmlinux 0x8cbc38c3 dcb_getapp +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cd6122b add_disk +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8cdba46e pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x8d0931f4 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x8d2e268b param_ops_ulong +EXPORT_SYMBOL vmlinux 0x8d3eb2e5 sock_update_classid +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d57d0fd ip6_frag_match +EXPORT_SYMBOL vmlinux 0x8d59dfb2 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x8d5c9e22 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper +EXPORT_SYMBOL vmlinux 0x8d7f7ac2 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x8d94cd01 drop_nlink +EXPORT_SYMBOL vmlinux 0x8d97cc3f iterate_supers_type +EXPORT_SYMBOL vmlinux 0x8de4baa6 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x8df92f66 memchr_inv +EXPORT_SYMBOL vmlinux 0x8e08b9da file_ns_capable +EXPORT_SYMBOL vmlinux 0x8e0a3ed6 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x8e0aba45 arp_create +EXPORT_SYMBOL vmlinux 0x8e332829 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x8e610745 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x8e6b19b5 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x8e864a86 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8e8a13bd dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x8e8a7ebd setup_arg_pages +EXPORT_SYMBOL vmlinux 0x8e927995 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x8eb96328 security_path_link +EXPORT_SYMBOL vmlinux 0x8ebaa876 lg_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x8eca64ff netif_napi_del +EXPORT_SYMBOL vmlinux 0x8ed48b4d __get_page_tail +EXPORT_SYMBOL vmlinux 0x8ee21528 jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0x8ee89354 pci_disable_device +EXPORT_SYMBOL vmlinux 0x8ee8a7f4 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x8f2de7de pci_scan_slot +EXPORT_SYMBOL vmlinux 0x8f3787be panic_notifier_list +EXPORT_SYMBOL vmlinux 0x8f4626fd __cleancache_invalidate_fs +EXPORT_SYMBOL vmlinux 0x8f5e6e8c blk_init_tags +EXPORT_SYMBOL vmlinux 0x8f7805c5 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x8f949daa mutex_trylock +EXPORT_SYMBOL vmlinux 0x8fa35635 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x8fa48241 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x8faa4598 of_translate_address +EXPORT_SYMBOL vmlinux 0x8faf9cbb genphy_setup_forced +EXPORT_SYMBOL vmlinux 0x8fba3cf1 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x8fd180e7 kernel_neon_begin +EXPORT_SYMBOL vmlinux 0x8fe99403 skb_store_bits +EXPORT_SYMBOL vmlinux 0x8feba73e input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x8ff3fd62 inet_accept +EXPORT_SYMBOL vmlinux 0x900cef8b __alloc_skb +EXPORT_SYMBOL vmlinux 0x9031c45c __cleancache_invalidate_inode +EXPORT_SYMBOL vmlinux 0x903a8677 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x90628483 sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0x907f78fd mii_link_ok +EXPORT_SYMBOL vmlinux 0x908b53ed param_set_short +EXPORT_SYMBOL vmlinux 0x909c0c26 md_flush_request +EXPORT_SYMBOL vmlinux 0x90ac3102 dev_base_lock +EXPORT_SYMBOL vmlinux 0x90b37042 give_up_console +EXPORT_SYMBOL vmlinux 0x90bc1ec8 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x90bfb2ac dst_release +EXPORT_SYMBOL vmlinux 0x90d24504 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x90d8fafd neigh_app_ns +EXPORT_SYMBOL vmlinux 0x90e3fc76 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x90eb48e6 do_sync_write +EXPORT_SYMBOL vmlinux 0x90ff5d5b ppp_unit_number +EXPORT_SYMBOL vmlinux 0x9118482c submit_bio_wait +EXPORT_SYMBOL vmlinux 0x91210d30 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x91228fb4 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x913cf3b9 netdev_crit +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x914b2934 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x9153a689 pci_set_ltr +EXPORT_SYMBOL vmlinux 0x915b84c7 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x9166fada strncpy +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x918c6374 mempool_alloc +EXPORT_SYMBOL vmlinux 0x919e8074 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x91a2216e fput +EXPORT_SYMBOL vmlinux 0x91a2ccb9 __inet6_hash +EXPORT_SYMBOL vmlinux 0x91a923a4 i2c_master_send +EXPORT_SYMBOL vmlinux 0x91ac822f vscnprintf +EXPORT_SYMBOL vmlinux 0x91faa88f dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0x9203d406 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x920a25c0 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x922a1421 fsnotify_get_group +EXPORT_SYMBOL vmlinux 0x922caa68 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x925520d2 blk_start_plug +EXPORT_SYMBOL vmlinux 0x926a4088 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x9272dff0 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x9291cd3b memdup_user +EXPORT_SYMBOL vmlinux 0x929eecac __strncpy_from_user +EXPORT_SYMBOL vmlinux 0x92a9c60c time_to_tm +EXPORT_SYMBOL vmlinux 0x92c63cf6 input_set_keycode +EXPORT_SYMBOL vmlinux 0x92d050df iov_pages +EXPORT_SYMBOL vmlinux 0x92f11885 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x92f3bbb8 netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x93001a1f neigh_event_ns +EXPORT_SYMBOL vmlinux 0x933334ab inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x934b7336 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x936871d6 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b152e6 tty_do_resize +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93dee787 crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x93f2cb49 posix_lock_file +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x93ff11cf vfs_mknod +EXPORT_SYMBOL vmlinux 0x94084ae3 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x941605fd jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x941b5bb6 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0x943952cd dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x944e55cb mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x9469ec49 update_region +EXPORT_SYMBOL vmlinux 0x946de3c6 md_done_sync +EXPORT_SYMBOL vmlinux 0x948b1e41 free_buffer_head +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x949b754f mempool_destroy +EXPORT_SYMBOL vmlinux 0x94a32b56 kernel_write +EXPORT_SYMBOL vmlinux 0x94a8b448 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x94b32729 __i2c_transfer +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94bfc92e skb_queue_head +EXPORT_SYMBOL vmlinux 0x94ddc1de bdevname +EXPORT_SYMBOL vmlinux 0x94e305a9 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x94e42410 vfs_open +EXPORT_SYMBOL vmlinux 0x94ef4b55 __nla_reserve +EXPORT_SYMBOL vmlinux 0x94f5d2ed pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x94fc00e5 dq_data_lock +EXPORT_SYMBOL vmlinux 0x9508f166 param_ops_bint +EXPORT_SYMBOL vmlinux 0x95098c7b inet6_del_offload +EXPORT_SYMBOL vmlinux 0x951bea1d of_dev_put +EXPORT_SYMBOL vmlinux 0x9520ee54 dev_queue_xmit_accel +EXPORT_SYMBOL vmlinux 0x952257ea inet_ioctl +EXPORT_SYMBOL vmlinux 0x952facc9 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x955a059d elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x959a0cf3 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x95a6d201 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x95c2a96d block_write_begin +EXPORT_SYMBOL vmlinux 0x95cb929c of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x95d0879e try_to_writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x95ffa892 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x96220280 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x96476766 pci_enable_device +EXPORT_SYMBOL vmlinux 0x965a1a10 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x96640374 of_get_min_tck +EXPORT_SYMBOL vmlinux 0x9669a6fc swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x967b77a5 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x9680affd generic_removexattr +EXPORT_SYMBOL vmlinux 0x9688df6f md_check_recovery +EXPORT_SYMBOL vmlinux 0x96968b45 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x96b29254 strncasecmp +EXPORT_SYMBOL vmlinux 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96f0bd67 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x97028a87 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x9702e921 __dst_free +EXPORT_SYMBOL vmlinux 0x9711e89b netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x9749219e iterate_mounts +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x97723386 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x97868aef __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x979cc068 path_put +EXPORT_SYMBOL vmlinux 0x97a60e3d param_get_bool +EXPORT_SYMBOL vmlinux 0x97b03158 d_make_root +EXPORT_SYMBOL vmlinux 0x97cf0527 d_rehash +EXPORT_SYMBOL vmlinux 0x97cf09d5 save_mount_options +EXPORT_SYMBOL vmlinux 0x97f963ee skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x97fb7269 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x97fdbab9 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x9800cf0b kfree_put_link +EXPORT_SYMBOL vmlinux 0x98082893 __copy_to_user +EXPORT_SYMBOL vmlinux 0x9815152d jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x9820b644 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x9822e62f set_user_nice +EXPORT_SYMBOL vmlinux 0x9829fc11 __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0x983e9fbc inode_init_owner +EXPORT_SYMBOL vmlinux 0x983f0096 poll_initwait +EXPORT_SYMBOL vmlinux 0x98654710 skb_insert +EXPORT_SYMBOL vmlinux 0x98683efa netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0x986d068e make_kgid +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x9874dfa5 __page_symlink +EXPORT_SYMBOL vmlinux 0x987c8fd9 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x9886f935 replace_mount_options +EXPORT_SYMBOL vmlinux 0x98bd9272 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x98cf60b3 strlen +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x99027620 dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x99195078 vsnprintf +EXPORT_SYMBOL vmlinux 0x9921651c pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x993c9cc1 __memcg_kmem_get_cache +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x99591a7a ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x99655485 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a67668 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x99b92685 netdev_all_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d3a43c dm_table_get_size +EXPORT_SYMBOL vmlinux 0x99ed6e17 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x9a00c04c up_write +EXPORT_SYMBOL vmlinux 0x9a193399 adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0x9a1b4bf6 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1fc4b4 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9a2684ed nf_log_register +EXPORT_SYMBOL vmlinux 0x9a2d65bd ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x9a2e1db0 mmc_read_bkops_status +EXPORT_SYMBOL vmlinux 0x9a4a21e8 padata_alloc +EXPORT_SYMBOL vmlinux 0x9a7d6f16 sg_miter_stop +EXPORT_SYMBOL vmlinux 0x9a8de583 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x9a908b80 test_and_clear_bit +EXPORT_SYMBOL vmlinux 0x9a910317 mem_map +EXPORT_SYMBOL vmlinux 0x9a9820a3 module_layout +EXPORT_SYMBOL vmlinux 0x9a98fd56 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x9abb5852 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x9acf85d4 rt6_lookup +EXPORT_SYMBOL vmlinux 0x9af038f2 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x9af89f98 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9afd2746 freeze_bdev +EXPORT_SYMBOL vmlinux 0x9b0092c8 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x9b29996b bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x9b2bcaef vm_insert_page +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b4b6179 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x9b63671c __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x9b668582 blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0x9b81f031 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x9b8dcfa1 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x9b9e05f9 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x9b9f0426 ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bb4c304 of_dev_get +EXPORT_SYMBOL vmlinux 0x9bc6ef31 add_wait_queue +EXPORT_SYMBOL vmlinux 0x9bcfb7c1 simple_rmdir +EXPORT_SYMBOL vmlinux 0x9be7bde4 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x9c102390 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x9c1f9a5a netif_receive_skb +EXPORT_SYMBOL vmlinux 0x9c2204ce fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x9c28881a proto_register +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c518e55 dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x9c5bc552 finish_wait +EXPORT_SYMBOL vmlinux 0x9c80b212 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x9c8ef2bc sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x9c907679 keyring_search +EXPORT_SYMBOL vmlinux 0x9c968d6e vfs_link +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9cbd7807 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x9cbed978 console_start +EXPORT_SYMBOL vmlinux 0x9ccdb4d2 blk_start_request +EXPORT_SYMBOL vmlinux 0x9cdd0e59 seq_release_private +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d05f6c4 ktime_get_clocktai +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d16f356 dev_remove_offload +EXPORT_SYMBOL vmlinux 0x9d17961f scsi_device_resume +EXPORT_SYMBOL vmlinux 0x9d36cc28 pci_pme_active +EXPORT_SYMBOL vmlinux 0x9d3808f2 fs_bio_set +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d4247db lease_get_mtime +EXPORT_SYMBOL vmlinux 0x9d4f9857 sk_net_capable +EXPORT_SYMBOL vmlinux 0x9d762e5d sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0x9d7b8154 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x9d7dccf4 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x9d8b9cf1 ipmi_register_smi +EXPORT_SYMBOL vmlinux 0x9d99dc4a pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e160ce0 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x9e18d93e gen_pool_create +EXPORT_SYMBOL vmlinux 0x9e20c934 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x9e2a9608 __breadahead +EXPORT_SYMBOL vmlinux 0x9e2f8c90 lz4_decompress_unknownoutputsize +EXPORT_SYMBOL vmlinux 0x9e44b9b7 of_get_next_available_child +EXPORT_SYMBOL vmlinux 0x9e4d4758 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e684cd6 kill_bdev +EXPORT_SYMBOL vmlinux 0x9e712f2f udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ea2dfcd md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9eca9e50 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x9ed2eec7 param_set_ushort +EXPORT_SYMBOL vmlinux 0x9f11be7e down_killable +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f37471b get_io_context +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f4fe598 __scm_send +EXPORT_SYMBOL vmlinux 0x9f545916 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x9f817a72 __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa43356 user_revoke +EXPORT_SYMBOL vmlinux 0x9fb2e3e5 __pskb_copy +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe39b27 vga_client_register +EXPORT_SYMBOL vmlinux 0x9feb84ab elevator_change +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0xa010bb0a lro_receive_frags +EXPORT_SYMBOL vmlinux 0xa0210f4f genphy_suspend +EXPORT_SYMBOL vmlinux 0xa03b8ab4 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0xa03c4d2a km_policy_notify +EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa04c91c9 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa07a37f0 memchr +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa08ba723 kern_path_create +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0dad88e netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0f81ab8 unlock_new_inode +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0ff74d6 udp_memory_allocated +EXPORT_SYMBOL vmlinux 0xa104a3e8 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa1207487 pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa138405e pci_disable_ltr +EXPORT_SYMBOL vmlinux 0xa14b9231 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa16cb931 ida_remove +EXPORT_SYMBOL vmlinux 0xa1b47115 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1e1d1c8 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xa1f98f7a pci_match_id +EXPORT_SYMBOL vmlinux 0xa202a8e5 kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0xa205681d __netif_schedule +EXPORT_SYMBOL vmlinux 0xa2084993 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa22702c8 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0xa22b167c dm_register_target +EXPORT_SYMBOL vmlinux 0xa26d5bc7 keyring_alloc +EXPORT_SYMBOL vmlinux 0xa281c15d max8998_write_reg +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL vmlinux 0xa28c1c3d blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xa2a61836 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL vmlinux 0xa2b3eda7 freeze_super +EXPORT_SYMBOL vmlinux 0xa2c5558a blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xa2d0f915 __sb_start_write +EXPORT_SYMBOL vmlinux 0xa2d8aa21 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xa2d9a60e blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2f67e34 commit_creds +EXPORT_SYMBOL vmlinux 0xa324a071 phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0xa33018b1 audit_log_task_info +EXPORT_SYMBOL vmlinux 0xa332464a of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa381944f dql_reset +EXPORT_SYMBOL vmlinux 0xa3a419a4 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xa3c9563a sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xa3f529b5 netif_napi_add +EXPORT_SYMBOL vmlinux 0xa3f91159 kill_pid +EXPORT_SYMBOL vmlinux 0xa400159f crc32_be +EXPORT_SYMBOL vmlinux 0xa4006c13 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xa42f5465 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xa4365cd5 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0xa4511467 crc16 +EXPORT_SYMBOL vmlinux 0xa4555dfe tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xa4561224 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xa4698363 nf_register_hook +EXPORT_SYMBOL vmlinux 0xa46d5e88 compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0xa4701e9e timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0xa4782aec d_find_alias +EXPORT_SYMBOL vmlinux 0xa48a4240 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0xa48abc84 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0xa49331ae jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xa499f45d fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xa4b43a21 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4dc52f1 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xa4e78f8b phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xa4e85f1c i2c_verify_client +EXPORT_SYMBOL vmlinux 0xa4eb1c11 compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xa51317fe km_new_mapping +EXPORT_SYMBOL vmlinux 0xa5283ba2 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xa5439316 blk_put_queue +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa574480f unregister_qdisc +EXPORT_SYMBOL vmlinux 0xa582fc1b __dquot_free_space +EXPORT_SYMBOL vmlinux 0xa5985000 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa599e531 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa5b43888 pipe_lock +EXPORT_SYMBOL vmlinux 0xa5ddad50 nobh_writepage +EXPORT_SYMBOL vmlinux 0xa5ee7616 phy_get_eee_err +EXPORT_SYMBOL vmlinux 0xa5f8c6d0 page_readlink +EXPORT_SYMBOL vmlinux 0xa5fa3258 sock_create_lite +EXPORT_SYMBOL vmlinux 0xa5fbae97 get_task_io_context +EXPORT_SYMBOL vmlinux 0xa63a2f9b param_get_ulong +EXPORT_SYMBOL vmlinux 0xa63a3c22 mmc_cleanup_queue +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa63e2d93 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xa64a78bc tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xa6715115 do_settimeofday +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa675c734 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6824036 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xa695321b udplite_prot +EXPORT_SYMBOL vmlinux 0xa695a44d devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0xa697ee75 udp_seq_open +EXPORT_SYMBOL vmlinux 0xa699dc33 d_move +EXPORT_SYMBOL vmlinux 0xa69cdf9b proc_set_size +EXPORT_SYMBOL vmlinux 0xa6ab14af neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xa6cceae1 dquot_drop +EXPORT_SYMBOL vmlinux 0xa6e95f2d skb_orphan_partial +EXPORT_SYMBOL vmlinux 0xa705c62a jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xa70b04d5 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa735db59 prandom_u32 +EXPORT_SYMBOL vmlinux 0xa73fc98f of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xa75075b9 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0xa75406a6 sock_wake_async +EXPORT_SYMBOL vmlinux 0xa7639e52 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0xa76e18a2 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xa77d981b tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xa7b35076 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xa7b7dac0 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0xa7be526f _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0xa7c53d5b netlink_broadcast +EXPORT_SYMBOL vmlinux 0xa7cc347e netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0xa7cd3d3b ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0xa7e233df input_open_device +EXPORT_SYMBOL vmlinux 0xa7f38f2a padata_free +EXPORT_SYMBOL vmlinux 0xa808bcb8 vexpress_config_wait +EXPORT_SYMBOL vmlinux 0xa81752dc ihold +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa82362ad _dev_info +EXPORT_SYMBOL vmlinux 0xa82643ce unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xa836496a tty_vhangup +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa84658d9 nf_afinfo +EXPORT_SYMBOL vmlinux 0xa85fc28d i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0xa86fe760 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xa8721b97 system_state +EXPORT_SYMBOL vmlinux 0xa87cf413 clear_bit +EXPORT_SYMBOL vmlinux 0xa8841a06 skb_trim +EXPORT_SYMBOL vmlinux 0xa8a18372 lockref_mark_dead +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8a8110c kernel_neon_end +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa902fc64 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0xa90e0519 wake_up_process +EXPORT_SYMBOL vmlinux 0xa916b694 strnlen +EXPORT_SYMBOL vmlinux 0xa929dea4 uart_register_driver +EXPORT_SYMBOL vmlinux 0xa948a898 sock_no_connect +EXPORT_SYMBOL vmlinux 0xa9522b63 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0xa981fa2d iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0xa98926d0 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0xa9a5eb50 mmc_request_done +EXPORT_SYMBOL vmlinux 0xa9ac034a pci_set_power_state +EXPORT_SYMBOL vmlinux 0xa9ace343 inet6_bind +EXPORT_SYMBOL vmlinux 0xa9b229fd scsi_dma_map +EXPORT_SYMBOL vmlinux 0xa9b5abec netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0xa9b63345 of_parse_phandle_with_fixed_args +EXPORT_SYMBOL vmlinux 0xa9bcde85 sg_miter_start +EXPORT_SYMBOL vmlinux 0xa9c19e77 __sb_end_write +EXPORT_SYMBOL vmlinux 0xa9dbd8e7 stop_tty +EXPORT_SYMBOL vmlinux 0xa9eb3642 mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0xa9f1d49b splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xa9fd0c99 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xaa410ac8 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xaa44a65d blk_complete_request +EXPORT_SYMBOL vmlinux 0xaa617aaa blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xaa6d339a generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa810364 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xaa86c00b xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xaa9087c0 param_ops_string +EXPORT_SYMBOL vmlinux 0xaaa4d617 sock_no_accept +EXPORT_SYMBOL vmlinux 0xaab12762 sock_from_file +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab07faac starget_for_each_device +EXPORT_SYMBOL vmlinux 0xab36dcdf elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0xab40cca9 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xab528215 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xab85b2fc phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xaba46a59 bio_clone_bioset +EXPORT_SYMBOL vmlinux 0xaba75ff9 compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xabbbd444 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xabc6e3f6 twl6040_power +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabcb6240 blk_init_queue +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xac040d62 ida_get_new_above +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac5122e5 lookup_one_len +EXPORT_SYMBOL vmlinux 0xac8998f4 thaw_bdev +EXPORT_SYMBOL vmlinux 0xac8b26dc tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xac907ebf nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0xac9d2d83 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacc5b5d2 csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacfd99c9 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xad01744f kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0c9fac scsi_print_sense +EXPORT_SYMBOL vmlinux 0xad164875 kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xad1b5627 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xad345ba7 ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0xad3baaf3 single_release +EXPORT_SYMBOL vmlinux 0xad46dec2 of_count_phandle_with_args +EXPORT_SYMBOL vmlinux 0xad521f34 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xad61f534 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xad769e9e blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad8a90c1 consume_skb +EXPORT_SYMBOL vmlinux 0xad91ddda scsi_add_device +EXPORT_SYMBOL vmlinux 0xadaf9198 security_path_truncate +EXPORT_SYMBOL vmlinux 0xae26b893 register_filesystem +EXPORT_SYMBOL vmlinux 0xae36edca redraw_screen +EXPORT_SYMBOL vmlinux 0xae4682b8 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xae4a1bda csum_tcpudp_nofold +EXPORT_SYMBOL vmlinux 0xae653aa3 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xae729e59 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0xae8c4d0c set_bit +EXPORT_SYMBOL vmlinux 0xae901002 dev_mc_add +EXPORT_SYMBOL vmlinux 0xaea7db98 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xaeb6b3eb __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xaebe1839 neigh_destroy +EXPORT_SYMBOL vmlinux 0xaef25109 cap_mmap_file +EXPORT_SYMBOL vmlinux 0xaf05b91b of_device_is_available +EXPORT_SYMBOL vmlinux 0xaf0b62f3 bdput +EXPORT_SYMBOL vmlinux 0xaf17b8e0 pci_bus_put +EXPORT_SYMBOL vmlinux 0xaf210f9f generic_listxattr +EXPORT_SYMBOL vmlinux 0xaf3a1bc5 pci_enable_msi_range +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf40f0b4 scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0xaf455050 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xaf51cab8 tcp_disconnect +EXPORT_SYMBOL vmlinux 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL vmlinux 0xaf6ae696 kstrndup +EXPORT_SYMBOL vmlinux 0xaf87c190 inode_init_once +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xafad493b param_ops_ushort +EXPORT_SYMBOL vmlinux 0xafb95a1f register_shrinker +EXPORT_SYMBOL vmlinux 0xafcc45bb swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xafcfbd09 elevator_exit +EXPORT_SYMBOL vmlinux 0xafea27ff blk_mq_alloc_reserved_request +EXPORT_SYMBOL vmlinux 0xaffbe5b2 pci_remove_bus +EXPORT_SYMBOL vmlinux 0xb01642bc flush_dcache_page +EXPORT_SYMBOL vmlinux 0xb02d2a42 seq_open +EXPORT_SYMBOL vmlinux 0xb05aa584 mempool_resize +EXPORT_SYMBOL vmlinux 0xb05f88b6 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb06a5058 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xb085e466 dquot_acquire +EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0cbd1c2 eth_header_parse +EXPORT_SYMBOL vmlinux 0xb0ce5067 kset_register +EXPORT_SYMBOL vmlinux 0xb0d18949 up_read +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0ffda2f blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xb1174668 amba_driver_unregister +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb18e41d5 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1b39eb3 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xb1b4f745 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0xb1b89f58 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cddd56 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0xb1cf44df fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xb1db9e4e param_get_invbool +EXPORT_SYMBOL vmlinux 0xb1df3ce6 scsi_unregister +EXPORT_SYMBOL vmlinux 0xb1eb04b9 set_binfmt +EXPORT_SYMBOL vmlinux 0xb204e035 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xb2187e0f pci_reenable_device +EXPORT_SYMBOL vmlinux 0xb2307161 fb_get_mode +EXPORT_SYMBOL vmlinux 0xb25be1eb blk_end_request_all +EXPORT_SYMBOL vmlinux 0xb25e7d83 max8998_read_reg +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2be6e92 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xb2ccc30c phy_driver_unregister +EXPORT_SYMBOL vmlinux 0xb2f21699 tty_devnum +EXPORT_SYMBOL vmlinux 0xb2f71bd1 security_inode_readlink +EXPORT_SYMBOL vmlinux 0xb31c3f74 irq_stat +EXPORT_SYMBOL vmlinux 0xb325c072 read_cache_pages +EXPORT_SYMBOL vmlinux 0xb32a4c92 scsi_print_result +EXPORT_SYMBOL vmlinux 0xb32bd3e6 skb_flow_dissect +EXPORT_SYMBOL vmlinux 0xb33def25 read_cache_page_async +EXPORT_SYMBOL vmlinux 0xb3498645 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0xb35c1a1f __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xb3783670 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xb37bee52 rename_lock +EXPORT_SYMBOL vmlinux 0xb38533ba tty_port_close +EXPORT_SYMBOL vmlinux 0xb38a4b48 sock_alloc_file +EXPORT_SYMBOL vmlinux 0xb38d44bb tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xb397d152 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0xb3cef7ca __mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb413c252 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0xb41429a1 mount_subtree +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb44d5160 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xb45a80f1 udp_add_offload +EXPORT_SYMBOL vmlinux 0xb469b953 netdev_info +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb47189b5 reservation_ww_class +EXPORT_SYMBOL vmlinux 0xb47bc696 vm_stat +EXPORT_SYMBOL vmlinux 0xb47ce560 path_get +EXPORT_SYMBOL vmlinux 0xb487a2b4 pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0xb4c5b145 udp_disconnect +EXPORT_SYMBOL vmlinux 0xb4dd1657 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xb4e4da4f inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0xb5012eb7 alloc_disk +EXPORT_SYMBOL vmlinux 0xb504cbd4 have_submounts +EXPORT_SYMBOL vmlinux 0xb51a33ec uart_get_divisor +EXPORT_SYMBOL vmlinux 0xb51d1012 set_disk_ro +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54a97cb brioctl_set +EXPORT_SYMBOL vmlinux 0xb57343c2 frontswap_shrink +EXPORT_SYMBOL vmlinux 0xb578a19e vlan_uses_dev +EXPORT_SYMBOL vmlinux 0xb579af82 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xb57f2457 sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0xb5922ccb install_exec_creds +EXPORT_SYMBOL vmlinux 0xb597cc5e sock_recvmsg +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5b24c5f mutex_lock_killable +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5cd1691 vexpress_config_complete +EXPORT_SYMBOL vmlinux 0xb5e6231f elv_add_request +EXPORT_SYMBOL vmlinux 0xb6236d5d __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb626ae5b inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xb6303429 padata_do_parallel +EXPORT_SYMBOL vmlinux 0xb6365936 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xb6394d4b param_set_bint +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb69def8f tty_port_open +EXPORT_SYMBOL vmlinux 0xb69f9b00 mempool_free +EXPORT_SYMBOL vmlinux 0xb6a0d259 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6b46a7c param_ops_int +EXPORT_SYMBOL vmlinux 0xb6c51cd6 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6e5a7ce writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xb6ee86e7 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xb70a6434 blk_rq_init +EXPORT_SYMBOL vmlinux 0xb71fb74f _raw_read_trylock +EXPORT_SYMBOL vmlinux 0xb727939d nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0xb7375fee key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xb77131b1 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xb778f174 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xb77caca8 input_close_device +EXPORT_SYMBOL vmlinux 0xb78a1f1b override_creds +EXPORT_SYMBOL vmlinux 0xb7a6506f mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xb7c8a5c3 blk_mq_end_io +EXPORT_SYMBOL vmlinux 0xb7d1ac98 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xb7d64339 sock_no_listen +EXPORT_SYMBOL vmlinux 0xb7ec390c ip_setsockopt +EXPORT_SYMBOL vmlinux 0xb7edff39 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xb7f404b5 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xb812d477 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xb8233e52 dquot_disable +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb84a74e7 put_tty_driver +EXPORT_SYMBOL vmlinux 0xb8504456 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0xb85410fa jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0xb858eabb jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xb874b87a __clzsi2 +EXPORT_SYMBOL vmlinux 0xb88f4e15 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xb8ac152a phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0xb8ae7879 blkdev_put +EXPORT_SYMBOL vmlinux 0xb8b82f4f scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xb8b99ffc scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xb8c6f56d d_alloc_name +EXPORT_SYMBOL vmlinux 0xb8d73e97 param_set_uint +EXPORT_SYMBOL vmlinux 0xb8ff62c9 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xb90bb584 ipv4_specific +EXPORT_SYMBOL vmlinux 0xb920ce82 blk_get_queue +EXPORT_SYMBOL vmlinux 0xb9370254 dev_get_stats +EXPORT_SYMBOL vmlinux 0xb93c4e20 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xb9543705 compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0xb9543f6d napi_gro_receive +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb98b106c eth_change_mtu +EXPORT_SYMBOL vmlinux 0xb98fbb83 register_netdevice +EXPORT_SYMBOL vmlinux 0xb9906c40 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xb99c3f05 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xb9b4e181 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0xb9d0cfd2 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xb9e8e2cc in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0xba23237d d_instantiate_no_diralias +EXPORT_SYMBOL vmlinux 0xba2c91f3 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xba3f8972 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba6ebb3d pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0xba79cd62 block_read_full_page +EXPORT_SYMBOL vmlinux 0xba9ec7b6 devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0xbab1c4df pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0xbacf17e8 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xbb13a762 set_groups +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb3872ed input_set_abs_params +EXPORT_SYMBOL vmlinux 0xbb416163 genl_notify +EXPORT_SYMBOL vmlinux 0xbb4f4766 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb713e6d sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbd03b92 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xbc0056e1 make_kuid +EXPORT_SYMBOL vmlinux 0xbc331c17 blk_stop_queue +EXPORT_SYMBOL vmlinux 0xbc3aa3e2 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xbc6c3d34 netdev_lower_dev_get_private_rcu +EXPORT_SYMBOL vmlinux 0xbc7102a6 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xbc7175ff napi_get_frags +EXPORT_SYMBOL vmlinux 0xbc7bb59f dquot_enable +EXPORT_SYMBOL vmlinux 0xbc91fdac invalidate_partition +EXPORT_SYMBOL vmlinux 0xbc9c8a6d generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xbcbc5466 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xbcc7fa38 kfree_skb_list +EXPORT_SYMBOL vmlinux 0xbcdedba7 of_get_mac_address +EXPORT_SYMBOL vmlinux 0xbcdf53c1 get_user_pages +EXPORT_SYMBOL vmlinux 0xbd1e681d sock_create_kern +EXPORT_SYMBOL vmlinux 0xbd270665 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xbd28b68e kernel_bind +EXPORT_SYMBOL vmlinux 0xbd30deda vfs_writev +EXPORT_SYMBOL vmlinux 0xbd3765cd __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xbd3d440b dev_emerg +EXPORT_SYMBOL vmlinux 0xbd462b55 __kfifo_init +EXPORT_SYMBOL vmlinux 0xbd4f4555 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xbd7ec16d of_get_ddr_timings +EXPORT_SYMBOL vmlinux 0xbd8f9d64 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xbd96c85a vexpress_config_write +EXPORT_SYMBOL vmlinux 0xbdaa519f phy_init_eee +EXPORT_SYMBOL vmlinux 0xbdbc13a1 complete +EXPORT_SYMBOL vmlinux 0xbdd4b6f2 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xbddccc6f compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0xbe09a702 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xbe1b1171 sk_stream_error +EXPORT_SYMBOL vmlinux 0xbe1dc99f do_splice_from +EXPORT_SYMBOL vmlinux 0xbe218ab2 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xbe28a5ba dm_io +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe2c5ec2 inode_init_always +EXPORT_SYMBOL vmlinux 0xbe3106f3 fb_set_var +EXPORT_SYMBOL vmlinux 0xbe311afc tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xbe536d73 seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0xbe5440e6 loop_backing_file +EXPORT_SYMBOL vmlinux 0xbe6d4d8f mii_check_link +EXPORT_SYMBOL vmlinux 0xbeaf6bd1 __genl_register_family +EXPORT_SYMBOL vmlinux 0xbec25473 of_parse_phandle +EXPORT_SYMBOL vmlinux 0xbed185e0 simple_dentry_operations +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf3a5e2d freezing_slow_path +EXPORT_SYMBOL vmlinux 0xbf58e6a2 udp_poll +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8a7c2d xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfa9d3c2 iput +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfe0f111 netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc00facfb km_state_notify +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc03768aa kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xc038dee4 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xc04bc2d4 account_page_writeback +EXPORT_SYMBOL vmlinux 0xc04e1208 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xc05b111d bmap +EXPORT_SYMBOL vmlinux 0xc0620ec5 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc0875d45 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0xc09029b7 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0e20714 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xc0fc8771 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xc10b525f xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xc1190e3b devm_ioremap +EXPORT_SYMBOL vmlinux 0xc140c7fb kern_path +EXPORT_SYMBOL vmlinux 0xc15a44c6 memzero_explicit +EXPORT_SYMBOL vmlinux 0xc16edef5 mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0xc196cea2 ip_getsockopt +EXPORT_SYMBOL vmlinux 0xc1a86da2 __nlmsg_put +EXPORT_SYMBOL vmlinux 0xc1ab4087 md_write_start +EXPORT_SYMBOL vmlinux 0xc1ac9ecb xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1ccf52b blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xc1e18178 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xc1e3e987 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xc1fb898e from_kuid_munged +EXPORT_SYMBOL vmlinux 0xc201e9f5 balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0xc2035c6b generic_setlease +EXPORT_SYMBOL vmlinux 0xc236107e neigh_lookup +EXPORT_SYMBOL vmlinux 0xc2499c57 mmc_remove_host +EXPORT_SYMBOL vmlinux 0xc2540fce nobh_write_end +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc277aec7 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0xc2908d54 tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0xc2950983 nf_log_unset +EXPORT_SYMBOL vmlinux 0xc29bf967 strspn +EXPORT_SYMBOL vmlinux 0xc2a2adb3 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xc2a84cd1 send_sig +EXPORT_SYMBOL vmlinux 0xc2e1cd48 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f9c045 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xc310b981 strnstr +EXPORT_SYMBOL vmlinux 0xc3360b63 pcie_get_mps +EXPORT_SYMBOL vmlinux 0xc3716869 skb_free_datagram +EXPORT_SYMBOL vmlinux 0xc38095b4 eth_type_trans +EXPORT_SYMBOL vmlinux 0xc394e2e7 inet_stream_ops +EXPORT_SYMBOL vmlinux 0xc3a7be25 lg_global_lock +EXPORT_SYMBOL vmlinux 0xc3b52c70 scsi_get_command +EXPORT_SYMBOL vmlinux 0xc3e58818 inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0xc3e7dbe6 mdiobus_register +EXPORT_SYMBOL vmlinux 0xc3f2e31d mnt_unpin +EXPORT_SYMBOL vmlinux 0xc3f97846 complete_request_key +EXPORT_SYMBOL vmlinux 0xc3ffcb69 bdget_disk +EXPORT_SYMBOL vmlinux 0xc403b01f set_bdi_congested +EXPORT_SYMBOL vmlinux 0xc40afbcc alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xc41074da tty_register_driver +EXPORT_SYMBOL vmlinux 0xc4121f97 tty_mutex +EXPORT_SYMBOL vmlinux 0xc41c045d pci_scan_bus +EXPORT_SYMBOL vmlinux 0xc429429a dm_put_device +EXPORT_SYMBOL vmlinux 0xc4336259 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xc440bc37 do_splice_to +EXPORT_SYMBOL vmlinux 0xc466f563 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xc478414b netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0xc48307db lz4_decompress +EXPORT_SYMBOL vmlinux 0xc48762a4 kobject_init +EXPORT_SYMBOL vmlinux 0xc489df54 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4aab9b0 dquot_quota_on +EXPORT_SYMBOL vmlinux 0xc4c23a6c tcp_read_sock +EXPORT_SYMBOL vmlinux 0xc4d9dfb1 napi_gro_flush +EXPORT_SYMBOL vmlinux 0xc4e717f3 lro_receive_skb +EXPORT_SYMBOL vmlinux 0xc4fd917d d_drop +EXPORT_SYMBOL vmlinux 0xc502add3 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xc502f4ad vfs_fsync +EXPORT_SYMBOL vmlinux 0xc51fa271 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xc54a7f45 fb_set_suspend +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc581c517 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xc589e044 param_set_long +EXPORT_SYMBOL vmlinux 0xc5906327 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0xc5cb1e27 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xc5fdef94 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xc62d5baa jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc63bd8e9 input_register_device +EXPORT_SYMBOL vmlinux 0xc63e4f7e unregister_quota_format +EXPORT_SYMBOL vmlinux 0xc665d6d7 of_parse_phandle_with_args +EXPORT_SYMBOL vmlinux 0xc666a132 crc_t10dif +EXPORT_SYMBOL vmlinux 0xc66b803d uart_update_timeout +EXPORT_SYMBOL vmlinux 0xc6811e3a pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xc692384c devfreq_add_device +EXPORT_SYMBOL vmlinux 0xc6b9335e bio_sector_offset +EXPORT_SYMBOL vmlinux 0xc6cb465a __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6d6d0e7 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xc6d92c44 names_cachep +EXPORT_SYMBOL vmlinux 0xc6da5a14 inet_bind +EXPORT_SYMBOL vmlinux 0xc701fa07 touch_atime +EXPORT_SYMBOL vmlinux 0xc709979f ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xc7116ec9 sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc73cedb1 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7af4e8b ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0xc7e6e5d3 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0xc7ed3dc7 aio_complete +EXPORT_SYMBOL vmlinux 0xc7f89beb tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0xc7faed09 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0xc8022221 udp_proc_register +EXPORT_SYMBOL vmlinux 0xc81288d2 netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0xc81b4a9f xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xc82c91f7 lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0xc83b4d5b posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc86b5391 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc89f79d4 percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8c179b5 scsi_device_put +EXPORT_SYMBOL vmlinux 0xc8c32545 dm_unregister_target +EXPORT_SYMBOL vmlinux 0xc9128a3e netif_device_attach +EXPORT_SYMBOL vmlinux 0xc9136827 __cleancache_invalidate_page +EXPORT_SYMBOL vmlinux 0xc916a184 devm_gpiod_get_index +EXPORT_SYMBOL vmlinux 0xc95f1171 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xc9601b37 inode_dio_wait +EXPORT_SYMBOL vmlinux 0xc9603830 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0xc978479a xz_dec_run +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc9a7e3e7 blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc9a9bc81 ll_rw_block +EXPORT_SYMBOL vmlinux 0xc9ac4c83 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xc9bed0c4 misc_register +EXPORT_SYMBOL vmlinux 0xc9bffdc7 phy_disconnect +EXPORT_SYMBOL vmlinux 0xca1d64c1 xfrm_garbage_collect +EXPORT_SYMBOL vmlinux 0xca27cfd3 get_disk +EXPORT_SYMBOL vmlinux 0xca2b3901 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xca345039 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0xca4180fa jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xcab8f2d4 dcache_readdir +EXPORT_SYMBOL vmlinux 0xcac746f4 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xcad0be70 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0xcad255d8 netdev_notify_peers +EXPORT_SYMBOL vmlinux 0xcad7589a dma_ops +EXPORT_SYMBOL vmlinux 0xcae26609 con_copy_unimap +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb0c5d50 param_get_uint +EXPORT_SYMBOL vmlinux 0xcb128141 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0xcb139f7c mutex_unlock +EXPORT_SYMBOL vmlinux 0xcb2061e4 kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0xcb830413 dev_add_pack +EXPORT_SYMBOL vmlinux 0xcba372a4 lock_may_read +EXPORT_SYMBOL vmlinux 0xcba74baf mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0xcbae5eef skb_find_text +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbbffac5 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbcef22c blk_queue_max_write_same_sectors +EXPORT_SYMBOL vmlinux 0xcbe6a7a8 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xcbf7b676 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xcbff5e68 mempool_create +EXPORT_SYMBOL vmlinux 0xcc1102d0 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xcc1d00d9 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc364157 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0xcc37f55c blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xcc3e734d serio_rescan +EXPORT_SYMBOL vmlinux 0xcc4ab927 input_get_keycode +EXPORT_SYMBOL vmlinux 0xcc4b84da of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5dce50 sleep_on +EXPORT_SYMBOL vmlinux 0xcc76918b unlock_page +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc811d8d netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xcc83af67 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xccc21f5e input_get_new_minor +EXPORT_SYMBOL vmlinux 0xccc92399 ida_simple_remove +EXPORT_SYMBOL vmlinux 0xccd87f32 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xcced0693 wireless_spy_update +EXPORT_SYMBOL vmlinux 0xcd1a591f dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xcd20667a kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd2a6e93 net_dma_find_channel +EXPORT_SYMBOL vmlinux 0xcd451d02 dev_add_offload +EXPORT_SYMBOL vmlinux 0xcd510ddc dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0xcdb58aca devfreq_resume_device +EXPORT_SYMBOL vmlinux 0xcdbfd194 gen_pool_free +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcdccb5b9 pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcde2fb94 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xcdee7ea3 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xcdf4c5c6 simple_link +EXPORT_SYMBOL vmlinux 0xce08ee8d security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xce14f209 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce3096cd set_device_ro +EXPORT_SYMBOL vmlinux 0xce4e47b6 __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce5adf7c rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0xce62c717 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xce6a9244 profile_pc +EXPORT_SYMBOL vmlinux 0xce711835 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xce76c6b8 send_sig_info +EXPORT_SYMBOL vmlinux 0xce76c8e5 __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0xce78c261 tty_unthrottle +EXPORT_SYMBOL vmlinux 0xceb0ddd5 d_add_ci +EXPORT_SYMBOL vmlinux 0xceb1717d completion_done +EXPORT_SYMBOL vmlinux 0xcedd87f7 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xcef1d75b unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf01ab6f eth_mac_addr +EXPORT_SYMBOL vmlinux 0xcf03d71e insert_inode_locked +EXPORT_SYMBOL vmlinux 0xcf09a74f nf_setsockopt +EXPORT_SYMBOL vmlinux 0xcf1a95a2 tcp_ioctl +EXPORT_SYMBOL vmlinux 0xcf2d814d tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xcf303aff kobject_del +EXPORT_SYMBOL vmlinux 0xcf326eb2 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xcf448c02 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xcf558ae1 devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0xcf643b19 tcp_prequeue +EXPORT_SYMBOL vmlinux 0xcf7af41a file_open_root +EXPORT_SYMBOL vmlinux 0xcf8c77b1 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xcfaea65b vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xcfe8369c tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xcff51a75 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xd00337ca pci_enable_obff +EXPORT_SYMBOL vmlinux 0xd0066b54 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xd0135c8c scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xd0170842 gen10g_resume +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0400cac bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xd06c0f22 down_write_trylock +EXPORT_SYMBOL vmlinux 0xd0720a17 on_each_cpu_cond +EXPORT_SYMBOL vmlinux 0xd0843622 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xd0a348f8 input_inject_event +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0cc74ba blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fd30dc pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xd1010c0c nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xd11678ae nobh_write_begin +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd139e338 pci_assign_resource +EXPORT_SYMBOL vmlinux 0xd146f7b9 __mutex_init +EXPORT_SYMBOL vmlinux 0xd159b5e1 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xd15a501e generic_readlink +EXPORT_SYMBOL vmlinux 0xd1610453 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xd1661d45 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xd16b5479 __devm_request_region +EXPORT_SYMBOL vmlinux 0xd173502b inet_getname +EXPORT_SYMBOL vmlinux 0xd17b563b __inet_stream_connect +EXPORT_SYMBOL vmlinux 0xd1816f32 frontswap_writethrough +EXPORT_SYMBOL vmlinux 0xd1d10031 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0xd1d6e263 udp_del_offload +EXPORT_SYMBOL vmlinux 0xd1db5cce twl6040_set_bits +EXPORT_SYMBOL vmlinux 0xd1e42aa9 done_path_create +EXPORT_SYMBOL vmlinux 0xd1ecff4a blk_recount_segments +EXPORT_SYMBOL vmlinux 0xd1f0b440 pci_iounmap +EXPORT_SYMBOL vmlinux 0xd216bf74 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xd220cf8a jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0xd22b6a75 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd25e16e3 remove_wait_queue +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd2af543f poll_freewait +EXPORT_SYMBOL vmlinux 0xd2b09ce5 __kmalloc +EXPORT_SYMBOL vmlinux 0xd2c7b047 dcb_setapp +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd31971d1 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd3259d65 test_and_set_bit +EXPORT_SYMBOL vmlinux 0xd325dd1a skb_tx_error +EXPORT_SYMBOL vmlinux 0xd34b495e __skb_tx_hash +EXPORT_SYMBOL vmlinux 0xd34f496e swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0xd36023d6 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xd36257ba memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0xd378ebd3 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0xd37e318e seq_printf +EXPORT_SYMBOL vmlinux 0xd3892f89 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0xd3981d77 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xd3b12742 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xd3b939d9 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0xd3b9b2bc nla_reserve +EXPORT_SYMBOL vmlinux 0xd3bc96f0 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0xd3d40bf3 phy_connect_direct +EXPORT_SYMBOL vmlinux 0xd3dcab0b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xd3ed35e3 posix_test_lock +EXPORT_SYMBOL vmlinux 0xd41fe818 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xd42b4b63 dev_uc_del +EXPORT_SYMBOL vmlinux 0xd43a1910 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xd43e0419 free_user_ns +EXPORT_SYMBOL vmlinux 0xd4624025 register_console +EXPORT_SYMBOL vmlinux 0xd489412f blk_sync_queue +EXPORT_SYMBOL vmlinux 0xd4c2d332 locks_init_lock +EXPORT_SYMBOL vmlinux 0xd4ceee17 module_refcount +EXPORT_SYMBOL vmlinux 0xd4e7aa3d ioremap_cache +EXPORT_SYMBOL vmlinux 0xd4ed0bce key_reject_and_link +EXPORT_SYMBOL vmlinux 0xd4ef0704 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xd5402853 arp_invalidate +EXPORT_SYMBOL vmlinux 0xd552ca9b tcf_em_register +EXPORT_SYMBOL vmlinux 0xd552d3e3 get_phy_device +EXPORT_SYMBOL vmlinux 0xd557d9c5 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xd55d2349 __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xd56ce127 dev_uc_flush +EXPORT_SYMBOL vmlinux 0xd5c3df71 pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0xd5cd8d42 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xd5d21eda blk_mq_free_queue +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd628c58a jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd63946ce inet_sendmsg +EXPORT_SYMBOL vmlinux 0xd648e564 fb_match_mode +EXPORT_SYMBOL vmlinux 0xd64943a3 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xd64f0cf9 init_buffer +EXPORT_SYMBOL vmlinux 0xd65d287a udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xd65ea424 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0xd6793d9b pci_dev_driver +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd6a5234f bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xd6ad3ff1 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0xd6af2878 netpoll_rx_disable +EXPORT_SYMBOL vmlinux 0xd6bfc5d2 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7107c9d __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0xd7164058 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xd7183778 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xd7326fa7 bioset_free +EXPORT_SYMBOL vmlinux 0xd759799c scsi_report_opcode +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd778d262 ip_options_compile +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd784d8e8 pcim_iounmap +EXPORT_SYMBOL vmlinux 0xd78ddaa1 inc_nlink +EXPORT_SYMBOL vmlinux 0xd7922484 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7ae2361 vexpress_config_bridge_unregister +EXPORT_SYMBOL vmlinux 0xd7b5aa0e crypto_sha512_update +EXPORT_SYMBOL vmlinux 0xd7c068c6 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xd7cbddda memcpy_toiovec +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd7f5441b lock_sock_nested +EXPORT_SYMBOL vmlinux 0xd80c9fb1 set_page_dirty +EXPORT_SYMBOL vmlinux 0xd810c991 phy_find_first +EXPORT_SYMBOL vmlinux 0xd82ffca4 netif_skb_dev_features +EXPORT_SYMBOL vmlinux 0xd8366843 security_inode_init_security +EXPORT_SYMBOL vmlinux 0xd846b6c8 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xd86e2218 security_path_symlink +EXPORT_SYMBOL vmlinux 0xd876321c generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xd890fa5d qdisc_list_del +EXPORT_SYMBOL vmlinux 0xd89530aa netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xd8961804 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xd8b73ffe inet6_release +EXPORT_SYMBOL vmlinux 0xd8c72cf0 ifla_policy +EXPORT_SYMBOL vmlinux 0xd8d4ecd2 filp_open +EXPORT_SYMBOL vmlinux 0xd8d8dcb1 igrab +EXPORT_SYMBOL vmlinux 0xd8ded085 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd92e16ba csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0xd9468197 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xd961ff2d inode_set_bytes +EXPORT_SYMBOL vmlinux 0xd978a54d blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd99ad579 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0xd99db481 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xd9a9bb30 getname +EXPORT_SYMBOL vmlinux 0xd9d2e65d udp_ioctl +EXPORT_SYMBOL vmlinux 0xd9ff6568 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xda01479c mempool_create_node +EXPORT_SYMBOL vmlinux 0xda2478d0 param_ops_short +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda42a6ab check_disk_change +EXPORT_SYMBOL vmlinux 0xda6a4edc dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0xda6fc5df genphy_read_status +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8d2bac blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xdaa16b82 of_clk_get +EXPORT_SYMBOL vmlinux 0xdae51d7d pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xdaea6e0d mfd_clone_cell +EXPORT_SYMBOL vmlinux 0xdaef1b02 create_syslog_header +EXPORT_SYMBOL vmlinux 0xdb163185 vfs_mkdir +EXPORT_SYMBOL vmlinux 0xdb361ebf zerocopy_sg_from_iovec +EXPORT_SYMBOL vmlinux 0xdb5d1e4b of_find_device_by_node +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb85b691 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xdbad503d inet_put_port +EXPORT_SYMBOL vmlinux 0xdbc3a07b kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbfe3907 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc0dcefc xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xdc10a84a ping_prot +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc211daa sk_alloc +EXPORT_SYMBOL vmlinux 0xdc234962 fb_pan_display +EXPORT_SYMBOL vmlinux 0xdc3c41a8 __crypto_memneq +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc49a51c vfs_unlink +EXPORT_SYMBOL vmlinux 0xdc70d137 pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0xdc8dc512 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xdca38c63 proc_remove +EXPORT_SYMBOL vmlinux 0xdcb764ad memset +EXPORT_SYMBOL vmlinux 0xdcbef018 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xdcf3ea11 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xdd0817a1 of_find_backlight_by_node +EXPORT_SYMBOL vmlinux 0xdd1f6f56 genphy_update_link +EXPORT_SYMBOL vmlinux 0xdd222374 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xdd2455c2 eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0xdd3d2797 PDE_DATA +EXPORT_SYMBOL vmlinux 0xdd62c6f9 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xdd689c34 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xdd81ce33 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xdd8da154 tty_register_device +EXPORT_SYMBOL vmlinux 0xdd998d3e ppp_register_channel +EXPORT_SYMBOL vmlinux 0xddaa7741 iget5_locked +EXPORT_SYMBOL vmlinux 0xdddaa74a neigh_seq_start +EXPORT_SYMBOL vmlinux 0xde103d39 scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0xde10eb10 param_set_invbool +EXPORT_SYMBOL vmlinux 0xde136904 empty_zero_page +EXPORT_SYMBOL vmlinux 0xde1b8b56 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xde1e1526 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xde434656 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xde4422e5 register_quota_format +EXPORT_SYMBOL vmlinux 0xde6151db tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9c2907 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0xdf032c6b read_dev_sector +EXPORT_SYMBOL vmlinux 0xdf0a52a8 bdi_init +EXPORT_SYMBOL vmlinux 0xdf1734ee block_write_full_page +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf48a0eb flex_array_put +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf6e6fc9 xfrm_input +EXPORT_SYMBOL vmlinux 0xdf7e7596 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfbb0505 tty_free_termios +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfdf473a block_invalidatepage +EXPORT_SYMBOL vmlinux 0xdff88fd5 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xe006e0cb udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xe030f7dc blkdev_get +EXPORT_SYMBOL vmlinux 0xe03dc8fc tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe070a606 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0777ff1 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xe085e746 netdev_warn +EXPORT_SYMBOL vmlinux 0xe08b06a6 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xe0a5c49e shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b16883 __ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xe0b3ed8d scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xe0c62ae2 skb_make_writable +EXPORT_SYMBOL vmlinux 0xe0daa394 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe11f3cbc _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe15ba638 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe197e2b1 mmc_of_parse +EXPORT_SYMBOL vmlinux 0xe19a0b07 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xe1af132a dev_driver_string +EXPORT_SYMBOL vmlinux 0xe1c000ea bio_pair_release +EXPORT_SYMBOL vmlinux 0xe2002460 i2c_transfer +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe23cf567 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xe24d14d5 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe250937f inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0xe271f775 frontswap_register_ops +EXPORT_SYMBOL vmlinux 0xe2784e08 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xe27f89cd inet_frags_init +EXPORT_SYMBOL vmlinux 0xe2821b57 simple_readpage +EXPORT_SYMBOL vmlinux 0xe2957907 ip6_xmit +EXPORT_SYMBOL vmlinux 0xe29e1d0e out_of_line_wait_on_atomic_t +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2de2ac7 inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0xe2e29b63 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xe2f862ca inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0xe32547ba tty_name +EXPORT_SYMBOL vmlinux 0xe34f3c66 d_validate +EXPORT_SYMBOL vmlinux 0xe35c5285 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xe36b5b82 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xe39671a8 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xe3968d8b tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xe3a53f4c sort +EXPORT_SYMBOL vmlinux 0xe3b1fc5c mount_single +EXPORT_SYMBOL vmlinux 0xe3b29839 framebuffer_release +EXPORT_SYMBOL vmlinux 0xe3b3cb18 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xe3cddb5c mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe41119c1 from_kprojid +EXPORT_SYMBOL vmlinux 0xe413be4a memcg_socket_limit_enabled +EXPORT_SYMBOL vmlinux 0xe43068f4 from_kuid +EXPORT_SYMBOL vmlinux 0xe444ea03 tty_unlock_pair +EXPORT_SYMBOL vmlinux 0xe44ca3fc dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0xe45e5243 sock_i_uid +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe49405ad ida_init +EXPORT_SYMBOL vmlinux 0xe49adbcf sock_no_poll +EXPORT_SYMBOL vmlinux 0xe49f836a pci_dev_put +EXPORT_SYMBOL vmlinux 0xe4cb806f inet6_add_offload +EXPORT_SYMBOL vmlinux 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL vmlinux 0xe4f52928 inet_sendpage +EXPORT_SYMBOL vmlinux 0xe5058d4b bio_map_kern +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52ac042 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xe53aa561 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xe53d1faa of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xe545c928 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xe57361dd __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe588d64b netif_rx_ni +EXPORT_SYMBOL vmlinux 0xe58c9122 netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0xe59a3e6b vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0xe5a6566f tty_throttle +EXPORT_SYMBOL vmlinux 0xe5bccc1d seq_write +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5c8ed0a register_nls +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe6095819 scsi_target_resume +EXPORT_SYMBOL vmlinux 0xe612f196 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xe61c2022 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xe627728f blk_delay_queue +EXPORT_SYMBOL vmlinux 0xe642e5e6 fail_migrate_page +EXPORT_SYMBOL vmlinux 0xe6471986 generic_permission +EXPORT_SYMBOL vmlinux 0xe649f0fc scm_fp_dup +EXPORT_SYMBOL vmlinux 0xe66452ab dql_init +EXPORT_SYMBOL vmlinux 0xe665f822 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xe66a3810 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xe69034a0 inet_del_protocol +EXPORT_SYMBOL vmlinux 0xe691216a inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xe6932f06 tcp_child_process +EXPORT_SYMBOL vmlinux 0xe6959857 of_match_device +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe69a9df4 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL vmlinux 0xe6b07206 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xe6bca234 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0xe6cfbdab sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xe6d6c799 xfrm_init_state +EXPORT_SYMBOL vmlinux 0xe6ea3c88 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xe6eb411f serio_open +EXPORT_SYMBOL vmlinux 0xe6f1c475 phy_driver_register +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe6fc10f8 write_inode_now +EXPORT_SYMBOL vmlinux 0xe6ff2d1a netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0xe745118e mdiobus_free +EXPORT_SYMBOL vmlinux 0xe7722171 flex_array_free +EXPORT_SYMBOL vmlinux 0xe79eb6f6 ab3100_event_register +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7adf71d blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xe7be8235 ppp_input +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7ecdef4 kill_litter_super +EXPORT_SYMBOL vmlinux 0xe80a053d clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xe80a6bbd register_qdisc +EXPORT_SYMBOL vmlinux 0xe8267252 simple_pin_fs +EXPORT_SYMBOL vmlinux 0xe8410a9b seq_release +EXPORT_SYMBOL vmlinux 0xe8561708 __netlink_dump_start +EXPORT_SYMBOL vmlinux 0xe85b9c71 ndo_dflt_bridge_getlink +EXPORT_SYMBOL vmlinux 0xe86a7cce __frontswap_test +EXPORT_SYMBOL vmlinux 0xe86ebc6e simple_rename +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe8a0f8d4 inet6_protos +EXPORT_SYMBOL vmlinux 0xe8b2085f fsync_bdev +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8bea3bc qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xe8c5e559 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0xe8cffd66 dquot_release +EXPORT_SYMBOL vmlinux 0xe8d41ded pci_release_regions +EXPORT_SYMBOL vmlinux 0xe8e7c85e rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xe8ef9cac tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0xe8f0e62a kobject_set_name +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe9177bd2 ip6_frag_init +EXPORT_SYMBOL vmlinux 0xe91b881e vmap +EXPORT_SYMBOL vmlinux 0xe921866f kernel_listen +EXPORT_SYMBOL vmlinux 0xe9508f9d scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe966f9ff kthread_bind +EXPORT_SYMBOL vmlinux 0xe97c3891 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xe981800e mark_page_accessed +EXPORT_SYMBOL vmlinux 0xe9b5286f scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xe9c033c8 bdi_destroy +EXPORT_SYMBOL vmlinux 0xe9c2b351 __put_cred +EXPORT_SYMBOL vmlinux 0xe9dc51c9 mem_section +EXPORT_SYMBOL vmlinux 0xe9e25e3f lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0xe9e4d1c8 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea16dd4c tcp_destroy_cgroup +EXPORT_SYMBOL vmlinux 0xea3b789c blk_integrity_register +EXPORT_SYMBOL vmlinux 0xea4ccea0 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xea531fc5 default_qdisc_ops +EXPORT_SYMBOL vmlinux 0xea55055a sg_miter_next +EXPORT_SYMBOL vmlinux 0xea6ac917 skb_queue_purge +EXPORT_SYMBOL vmlinux 0xea6e3003 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xea76d5cb idr_init +EXPORT_SYMBOL vmlinux 0xeaa02ba5 kfree_skb +EXPORT_SYMBOL vmlinux 0xeabf4afe tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xeac5062e input_free_device +EXPORT_SYMBOL vmlinux 0xead076c5 qdisc_destroy +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeaf604a9 tcp_splice_read +EXPORT_SYMBOL vmlinux 0xeb0d04f7 km_policy_expired +EXPORT_SYMBOL vmlinux 0xeb1b5437 vfs_write +EXPORT_SYMBOL vmlinux 0xeb368426 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb44339a free_pages_exact +EXPORT_SYMBOL vmlinux 0xeba11e88 find_vma +EXPORT_SYMBOL vmlinux 0xebccc977 gen10g_suspend +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xec04ce2c pci_clear_master +EXPORT_SYMBOL vmlinux 0xec0b2072 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xec17ebb0 of_match_node +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec5b3743 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xec8f25ee devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0xeca77ca3 vfs_readv +EXPORT_SYMBOL vmlinux 0xecaefbb7 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xecbd9efa xfrm_register_type +EXPORT_SYMBOL vmlinux 0xecdf0683 gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xecebec51 __secpath_destroy +EXPORT_SYMBOL vmlinux 0xed0080c0 security_file_permission +EXPORT_SYMBOL vmlinux 0xed2762fd alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xed3f424f irq_set_chip +EXPORT_SYMBOL vmlinux 0xed597524 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xed83a808 vfs_getattr +EXPORT_SYMBOL vmlinux 0xed83b0ff devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0xed8fc1e5 inode_reclaim_rsv_space +EXPORT_SYMBOL vmlinux 0xed9d23b4 skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0xed9f9a20 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xeda3c4c9 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xedadd054 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xede7eee0 phy_stop +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee43b816 lg_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xee53a4d3 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0xee6c8c36 of_platform_device_create +EXPORT_SYMBOL vmlinux 0xee796679 account_page_dirtied +EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder +EXPORT_SYMBOL vmlinux 0xee9a3036 key_link +EXPORT_SYMBOL vmlinux 0xee9dd263 blk_make_request +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeaaf255 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0xeebaffa8 ip_defrag +EXPORT_SYMBOL vmlinux 0xeec9fcab inet6_register_protosw +EXPORT_SYMBOL vmlinux 0xeee416c0 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xeeec26a7 queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xeef01fb3 force_sig +EXPORT_SYMBOL vmlinux 0xeef161aa groups_free +EXPORT_SYMBOL vmlinux 0xef0370a4 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0xef0c9c2e eth_validate_addr +EXPORT_SYMBOL vmlinux 0xef19dd22 blk_start_queue +EXPORT_SYMBOL vmlinux 0xef28f56b cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xef2b87f8 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xef3aae3f end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xef3dbbd8 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xefae902c scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xefb6477d xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xeff6e4bc vc_resize +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0187927 __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0xf0230adb pid_task +EXPORT_SYMBOL vmlinux 0xf03c6a76 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0xf04fa00b backlight_device_register +EXPORT_SYMBOL vmlinux 0xf05ffa15 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xf0619801 timekeeping_clocktai +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf087137d __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0xf09de776 get_random_int +EXPORT_SYMBOL vmlinux 0xf0a536ff inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0xf0a9aa10 kobject_get +EXPORT_SYMBOL vmlinux 0xf0b349ed interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xf0cb129f blk_mq_insert_request +EXPORT_SYMBOL vmlinux 0xf0d1dff7 dump_skip +EXPORT_SYMBOL vmlinux 0xf0df1b2c arp_find +EXPORT_SYMBOL vmlinux 0xf0ea11a6 d_set_d_op +EXPORT_SYMBOL vmlinux 0xf0ef123f wireless_send_event +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf104c51d blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf133bad7 nonseekable_open +EXPORT_SYMBOL vmlinux 0xf13633a1 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xf13feb57 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0xf147dcb2 hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0xf161972b proc_symlink +EXPORT_SYMBOL vmlinux 0xf16d60f1 dump_align +EXPORT_SYMBOL vmlinux 0xf16ef714 vfs_readlink +EXPORT_SYMBOL vmlinux 0xf18de3e4 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1c59c92 netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0xf1cc2095 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e4e86e jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf20f0c19 bio_map_user +EXPORT_SYMBOL vmlinux 0xf23c33a4 textsearch_prepare +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf2456892 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xf24627c5 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xf24644c6 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL vmlinux 0xf26d2371 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xf298be48 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a0459d lg_local_lock +EXPORT_SYMBOL vmlinux 0xf2a0af8f backlight_device_registered +EXPORT_SYMBOL vmlinux 0xf2af352c netlink_ns_capable +EXPORT_SYMBOL vmlinux 0xf2b0bbc6 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xf2b1ac8e __getnstimeofday +EXPORT_SYMBOL vmlinux 0xf2d2ec1e udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0xf2d89ca3 disk_stack_limits +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf31ca9e0 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xf320e405 dev_notice +EXPORT_SYMBOL vmlinux 0xf32233bd sock_no_getname +EXPORT_SYMBOL vmlinux 0xf32f92c5 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf3345d0c pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf348283f tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf36a3fe9 fb_class +EXPORT_SYMBOL vmlinux 0xf37c33d3 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf397654e inet_frag_kill +EXPORT_SYMBOL vmlinux 0xf39f0ace lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0xf3a426a4 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xf3aaa38e interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3eb2973 secpath_dup +EXPORT_SYMBOL vmlinux 0xf412f801 lock_sock_fast +EXPORT_SYMBOL vmlinux 0xf42dc9d7 generic_writepages +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4437b8a fget_raw +EXPORT_SYMBOL vmlinux 0xf445b35a security_path_chown +EXPORT_SYMBOL vmlinux 0xf44a7d19 devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0xf44e3e34 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xf4523891 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xf452edfc dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xf47c5466 phy_device_free +EXPORT_SYMBOL vmlinux 0xf4835f92 wait_for_completion_io +EXPORT_SYMBOL vmlinux 0xf493bb19 sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0xf4bdbeb9 __frontswap_invalidate_area +EXPORT_SYMBOL vmlinux 0xf4cb85d0 vm_map_ram +EXPORT_SYMBOL vmlinux 0xf4cceb51 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf505bdb8 input_unregister_handler +EXPORT_SYMBOL vmlinux 0xf5159d0e put_io_context +EXPORT_SYMBOL vmlinux 0xf517b36a simple_transaction_set +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5795e7b __f_setown +EXPORT_SYMBOL vmlinux 0xf5813a2a xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xf58f441f xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xf5e4b8a5 __bforget +EXPORT_SYMBOL vmlinux 0xf5e7c5b4 tcp_init_cgroup +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5ff1f3a scsi_scan_host +EXPORT_SYMBOL vmlinux 0xf6178275 rfkill_alloc +EXPORT_SYMBOL vmlinux 0xf6199eec pci_request_region +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf64f2f31 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xf64fe7c1 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0xf65bc03c eth_header +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf683a928 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xf68687be __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0xf6a56e51 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xf6ba27c5 mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6f0ffed _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xf70f5de4 prepare_creds +EXPORT_SYMBOL vmlinux 0xf728321a blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xf7321900 gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0xf739564d simple_transaction_release +EXPORT_SYMBOL vmlinux 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xf7501e86 tcp_parse_options +EXPORT_SYMBOL vmlinux 0xf750f281 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf76f4ecf pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xf77555cd __memcpy_toio +EXPORT_SYMBOL vmlinux 0xf77e600c __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xf7a09d35 max8998_update_reg +EXPORT_SYMBOL vmlinux 0xf7b03c74 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xf7d0969f udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xf7df7f89 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0xf7fb03b8 netdev_err +EXPORT_SYMBOL vmlinux 0xf7fe1143 ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf80de9ff hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0xf80e3a5d blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf812cff6 memscan +EXPORT_SYMBOL vmlinux 0xf827cb83 free_reserved_area +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf83c0505 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xf845ba3e dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xf8621d9d locks_remove_posix +EXPORT_SYMBOL vmlinux 0xf8663f62 cdrom_check_events +EXPORT_SYMBOL vmlinux 0xf86a26e0 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0xf8770356 bdgrab +EXPORT_SYMBOL vmlinux 0xf87914da udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xf89cf681 sock_create +EXPORT_SYMBOL vmlinux 0xf8ae8da7 amba_device_register +EXPORT_SYMBOL vmlinux 0xf8ba56c9 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xf8bcf3bd serio_interrupt +EXPORT_SYMBOL vmlinux 0xf8c71261 elv_register_queue +EXPORT_SYMBOL vmlinux 0xf8d8f138 amba_find_device +EXPORT_SYMBOL vmlinux 0xf8e398fc memstart_addr +EXPORT_SYMBOL vmlinux 0xf910244b __break_lease +EXPORT_SYMBOL vmlinux 0xf928f71d dev_set_mtu +EXPORT_SYMBOL vmlinux 0xf93b41cd rtnl_notify +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf956c339 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xf961e363 default_file_splice_read +EXPORT_SYMBOL vmlinux 0xf98e1dc4 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9bc0d1f alloc_xenballooned_pages +EXPORT_SYMBOL vmlinux 0xf9c0b663 strlcat +EXPORT_SYMBOL vmlinux 0xf9dde891 wait_for_completion +EXPORT_SYMBOL vmlinux 0xfa0b32ad mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0xfa0e7189 scsi_host_put +EXPORT_SYMBOL vmlinux 0xfa13b9c9 mpage_readpages +EXPORT_SYMBOL vmlinux 0xfa34f7ad pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xfa425508 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xfa54d5a9 thaw_super +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa6f6bf9 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xfa73b64c block_commit_write +EXPORT_SYMBOL vmlinux 0xfa7f3156 wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0xfa951087 netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0xfa96d58d i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfae67b1f cap_mmap_addr +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb09790d set_nlink +EXPORT_SYMBOL vmlinux 0xfb1f4dfb ipmi_smi_watcher_register +EXPORT_SYMBOL vmlinux 0xfb4e7347 follow_up +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb71cf18 dst_discard +EXPORT_SYMBOL vmlinux 0xfb7df132 mmc_put_card +EXPORT_SYMBOL vmlinux 0xfb94103e __clzdi2 +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbe314e9 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xfbe797cb pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc0b8947 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc4b6d0a __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xfc52047f __wake_up_bit +EXPORT_SYMBOL vmlinux 0xfc950fe3 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xfca7e9d4 generic_read_dir +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcaa4fad of_device_alloc +EXPORT_SYMBOL vmlinux 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL vmlinux 0xfcb926cd kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf7a482 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd15efcd __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xfd4eabfb jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xfd50c05e loop_register_transfer +EXPORT_SYMBOL vmlinux 0xfd50dab4 fbcon_set_rotate +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd759515 sock_release +EXPORT_SYMBOL vmlinux 0xfd8e930e datagram_poll +EXPORT_SYMBOL vmlinux 0xfd923827 blk_requeue_request +EXPORT_SYMBOL vmlinux 0xfd99623a ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xfda0d179 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdbe0288 pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0xfdc03a1a clocksource_change_rating +EXPORT_SYMBOL vmlinux 0xfde75591 neigh_connected_output +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfdfc816c dma_pool_create +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe3e4e4f tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe8710be dm_get_device +EXPORT_SYMBOL vmlinux 0xfea25dd5 security_mmap_file +EXPORT_SYMBOL vmlinux 0xfeb368b9 seq_path +EXPORT_SYMBOL vmlinux 0xfed7a159 vm_event_states +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfeebc7c4 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff1e50b2 prepare_binprm +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffb064ef devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xfff0e813 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xfff76757 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xfffc9822 padata_register_cpumask_notifier +EXPORT_SYMBOL_GPL crypto/af_alg 0x034b7831 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x289197b2 af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0x3384bc68 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x3616554f af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x647a93b4 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0xcb39de78 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0xd17d18f4 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xd36e4dc3 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xe6e0c1fb af_alg_release +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x235a5503 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x1a52be29 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x99b57b50 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x60837bc3 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x628c3e0e async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x46e99445 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9f014ede async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xe9764e44 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xfe6e84b1 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x9ad16001 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xebd26114 async_xor_val +EXPORT_SYMBOL_GPL crypto/authenc 0x587ef278 crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0xe4be1c2c blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x27278ca9 __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x4a2a3ca6 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0xd82f0eeb cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1291971c __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1e2c961f __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x7b119fde cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x8f04034a __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast_common 0x08aa6fb7 cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x0c5fbf8a cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xe39dd4b4 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0xee83a4f3 cast_s4 +EXPORT_SYMBOL_GPL crypto/cryptd 0x24456cb9 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x28e2225a cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x5a7083d8 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x61705feb cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x73b84696 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x7a56bb4d cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xa3949165 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xcaf945b4 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xe14083b9 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xf6c5bab5 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/lrw 0x13e8dab9 lrw_crypt +EXPORT_SYMBOL_GPL crypto/lrw 0x3864eb66 lrw_free_table +EXPORT_SYMBOL_GPL crypto/lrw 0xcd074900 lrw_init_table +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x5ddb33e9 __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x77b39cb4 __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x81f8a585 serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x8a1a99ad __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/twofish_common 0x6c3229bb __twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xd32a95fe twofish_setkey +EXPORT_SYMBOL_GPL crypto/xts 0xeab7c939 xts_crypt +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x00d0cd6e ahci_platform_disable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x117e070f ahci_platform_init_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x839f50c4 ahci_platform_enable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x8a676f1b ahci_platform_ops +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xadd1319d ahci_platform_disable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xba8308dd ahci_platform_get_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xc74a5954 ahci_platform_enable_resources +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0ad89e14 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x14d5a93c ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x17ad884a ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x29afc52a ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4d73b3fc ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x60013dd5 ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x694f923e ahci_thread_fn +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6e05c4e7 ahci_hw_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7e09cb02 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7e8c2423 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x81e1e46e ahci_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8577058c ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8a3ba16d ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8d840ba4 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x907db325 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x91317244 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa28e6d23 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb218cb1c ahci_restart_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb8c108b0 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xbdf998b5 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcefa4cbc ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd589de5f ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe75f03e2 ahci_start_fis_rx +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea1747e8 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xedc719c8 ahci_qc_issue +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x01ec4556 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x2a6e1463 bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x38e1e723 bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x40c9cbe3 bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5064a343 bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5843fb65 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5f2c361e bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6124b057 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x701455ae bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7a796fbb bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7a9cc6df bcma_core_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x86fba2da bcma_find_core +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x8b588419 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x91c19367 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x955b9dc0 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa8226ad1 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xad5fe430 bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb2bd0e63 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xba14328a bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc329a6af bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc97b3987 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xca91c407 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xdf3ad3d1 bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf2cbf1b0 bcma_core_pci_down +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2a9fb9f1 btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4eb9104e btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6e0f73bb btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7cea4276 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8f74e1c0 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9678833d btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9698e703 btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb9dba5b7 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc6202f33 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xcdc30e91 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xa80b15c3 dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xe000b2d8 dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xf2f8e769 dw_dma_shutdown +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xf4ade51f fw_card_release +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x31acd30e bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x9b53f10f bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x58803d4c __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xb200ddfe __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x4fc5f266 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x51d098fc drm_vm_open_locked +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xc5a7ddfa drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x095a5340 ttm_dma_populate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x6adf436b ttm_prime_fd_to_handle +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x95753c27 ttm_dma_page_alloc_debugfs +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xc0b34c30 ttm_dma_unpopulate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xce36343e ttm_prime_handle_to_fd +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0df0e6a6 hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x139a9c06 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1b805b8d __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x21dbca1a hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x22f18b18 hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2657b7c1 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x309eb19f hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x34ac828e hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4684996b hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4906a967 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x50886685 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x52c4de77 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x594e07c5 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x60ddbf1e hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6cd1632d hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x77fe4b83 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x79148baa hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7f9754bc hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0x83f41a6b hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x945bfd89 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x96b82cdd hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9884f86f hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa14b9cfd hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa53748b2 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb06c10ba hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb393e2c5 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcd49422b hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd1458b49 hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd331ffa8 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xde7ab841 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdeb212e3 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdf6ae771 hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0xee9a2db0 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf679af71 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfaaba99f hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x260efd32 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x4590d4ef sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x58d0b024 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x5bfb91d9 sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x789d9f44 sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xd80d1a5b sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xd9604943 sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xdb770188 sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x430922fc hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x55395b58 hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x79bb2349 hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xa9591280 hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xb1b62ee1 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xb1bbda18 hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xc817b3e6 hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xcae97ccd hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xda239e9e hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xda7c7320 hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xef8fc4d5 hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xf26a27b3 hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xf7ae7fd9 hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x2597895c adt7x10_remove +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x2cb1e981 adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x35225e3e pmbus_do_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x4681fa3c pmbus_do_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x4a2d5a0b pmbus_set_page +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x4bee78a8 pmbus_clear_cache +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x507c835e pmbus_check_byte_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x6799d0dd pmbus_read_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x88249510 pmbus_write_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x93bf3469 pmbus_clear_faults +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xa8ba7568 pmbus_check_word_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xab040c74 pmbus_get_driver_info +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xce7bed66 pmbus_read_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xf230de6f pmbus_write_byte +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x294145b3 i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x45a3e894 i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x4e6b3b4f i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x6dc7f162 i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x8619853c i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xbf1678ba i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xdcd4ae0a i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xe1b013a7 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xfe9c26c5 i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x24b961cb i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xf462ee92 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x1d437ad5 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x20683b9e i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x044b9177 ad_sigma_delta_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x150a1245 ad_sd_set_comm +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x3369c138 ad_sd_calibrate_all +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x3893a530 ad_sd_write_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x5380c9b1 ad_sd_read_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x5bbd480f ad_sd_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xac116e44 ad_sd_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xb74debbb ad_sd_validate_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xda4ea060 ad_sd_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x074ab751 adis_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x1135ea03 adis_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x24030b59 adis_reset +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x259d51f9 adis_update_scan_mode +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x7eb8c8a6 adis_check_status +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xa1146b84 adis_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xb36b3754 adis_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xe012a29e adis_read_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xe842d0ec adis_remove_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xee236f48 adis_probe_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xee4cd6b6 adis_initial_startup +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xf3ff010e adis_write_reg +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x060a806a devm_iio_device_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0e26a9c7 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0faa17f7 iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1af59518 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1b2c50ca iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1e5493cc iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x212ecac4 iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x267c0508 iio_channel_release_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2765f895 iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a1fab3c iio_channel_stop_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2bf1f18e iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2e71f20c devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x31a5ea53 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x39e34027 iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4404add6 iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4bb01da9 iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4de442f6 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4f288a30 iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5bfd24ab devm_iio_trigger_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x69dc234a iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6a3e3ad2 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6f9c72e7 iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7a711aef iio_channel_start_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x864987a1 iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x92a7fa05 iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xbc56990e iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc1107b29 iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc553ee3f iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc8181790 iio_update_demux +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xcd6311fc iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd6c24181 iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd9403abe devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xed6fcba6 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x4ba494a6 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0xa481291c matrix_keypad_parse_of_params +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x0182d867 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x2b1050f3 cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x63ec7f56 cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xa5067dfa cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x0bbabf41 cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x78d62569 cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xa9637b85 cyttsp_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x2ee9d35a cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0xeb40a1fa cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x2156d972 ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x33c323e7 ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x56e76904 ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x5cb2cfa4 ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x68857333 ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x759146be ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x9553562b ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x9d8eee3b ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xbeab513f ipack_get_device +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x23359aff unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xce1414b2 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x06142503 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0f9da129 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x31d6efff gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3586f400 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4af526df gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x84a77c52 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8f3c953b gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9622a27b gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa0caebde gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa17da19b gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa3151853 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb649e7de gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdbcbad74 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe6d2c5a7 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xef6d679b gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf565b6ac gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfa066c54 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfceb740a gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x0b942f84 lp55xx_unregister_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x10c04c85 lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x1cebbec0 lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x3130933b lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x5a0313d5 lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xbd8fca26 lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xc090af84 lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xddbe6f7e lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xe63b9000 lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xf1adb01c lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xf637f2c1 lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x749e05f2 ledtrig_flash_ctrl +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x7903e46e ledtrig_torch_ctrl +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x038d4400 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1bf19a28 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x20b0dcba __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x23a39c93 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2db90065 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x32a854e2 __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x33685aee __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x386e0aec __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x43f797c7 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x56d844d9 __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x65c69d18 __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6f318137 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x73856a24 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7c7a26dc __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x824f349d __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8531a000 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x86192e50 __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x87a79df0 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8f336079 __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x90293fb5 __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x903dcb57 __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x94c4008d __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9aacde96 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa9328730 __tracepoint_bcache_alloc_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb0f4bf93 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd2be2929 __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd9cf1106 __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdb00ad98 __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe7e528bd __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf2037566 __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfd1d6dbc __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x56657f01 dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x5ed30344 dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x86679ed4 dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb6d5c65d dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb70b342a dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb8d9a8a1 dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xc54ea3d7 dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xcd801d36 dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xe6c8f8ee dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xebd06eaf dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x58821da2 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6aba7f5e dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x74dcd98c dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7c381a76 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9310ba06 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9c256008 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa1d2413a dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa448e19f dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xafbda3f3 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xcbb1bae2 dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe6024e59 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xebcc64a4 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xeca7949e dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x0266a354 dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x4b08a24c dm_cache_policy_get_name +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x4c3587b7 dm_cache_policy_get_version +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x77a139ff dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xd7047d72 dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xee9d5f45 dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xf28c7aaa dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x2358e484 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x461153e6 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x01d2f9ac dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x15955783 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x2af2830e dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x2cfdb964 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4430764e dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x45ab972a dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x943711b5 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa5076d91 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa68e1f06 dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd0427339 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfad9d53a dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfc62ef4e dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x01445176 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x17c36f29 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1cac81ac dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2025e954 dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f40da68 dm_bm_set_read_write +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f74609d dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x32b5f546 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x38c75c44 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x42dbdfc3 dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x49b35849 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x55b4bd4d dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5e6aea80 dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x62c1b9ee dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x688d422d dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x68fae9d2 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7ade1071 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7b047bd9 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x827a42f4 dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x832bf228 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x858c8d94 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x89f1e1cc dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x966a8838 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9e798e22 dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9f624559 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa0bbbb49 dm_bitset_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa13861b4 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa87c5b4d dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xaee02382 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xafeda29f dm_bm_write_lock_zero +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb6914ab2 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbd50ebbb dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca40abd5 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd041d62b dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd29923fb dm_tm_shadow_block +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe44b4b9b dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xed1e1f96 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf375d009 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf475af48 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf5455120 dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/raid1 0x3ab372cb md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid10 0x72290a83 md_raid10_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x4fdfbf3a md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x0834c15f saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x0a663c57 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x0e3e8c41 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x0f5b62f6 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x516fb66b saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x5c953471 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x716723e3 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x737ce88f saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x840a7be3 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x904f6dc4 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x5363d627 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x58b30333 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x864c05b2 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xa5ee5672 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xb56662ba saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xd0c01fa9 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xf44c27b0 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x09609076 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x121f4531 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x1264826e smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x17e1aa37 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x333c0552 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x48dd3861 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x59c79da5 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x65b8b6be sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7b1faf74 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fda0e68 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x81a863a1 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x95b5400c smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x99a81ab3 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9c2225ed smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc021e81b smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc099998e smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc97cd6c5 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xe44c5913 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xee096e61 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0x2bb33d67 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0x9b9e21ec cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x293d1f94 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x3aa97021 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x40e99dbd mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x557118e1 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x5c564312 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x6b0a0dea mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x6f1415d0 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7a824e36 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x97526198 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x9e6d93cb mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xad39b213 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xcab8f9c0 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xce3e94bb mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xcfd77645 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd337a35f mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xe671d90a mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xed128c04 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x33cf28e2 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x36dfe5f1 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x431c6941 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x679603db saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7a67b9c5 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x37134673 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x4bdf5d3b ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x517041fe ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x618532bc ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7bf7c6c6 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xc527290e ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xda30569d ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1135cb7b rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1d5dac16 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1ef40498 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1f7b217b rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x29e80cd2 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x33de82da rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x37e08025 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x41b81252 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x44dfffd5 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4cbaf858 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4ef0e3cb rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x591d5caa ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x59c69a0b rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x5c81a8f8 rc_close +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbd614783 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbfe0d3b8 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc8e8f991 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xcdcf407a rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfaa09955 rc_open +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x07e4a258 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0x31a90111 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0xc6de1f56 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x1bffac7c tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x2d331522 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0xeda8325e tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x4b7a5851 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0xcc0c478b tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x16f86ddf tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x9ad2a794 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x01d8bc49 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x01c483a9 v4l2_get_timestamp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x03272ba2 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x2ef01cb4 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x4b991374 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x9a24eb1e v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf41218f7 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf69a70fb v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x08982d59 v4l2_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x221d2fbc v4l2_enum_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x36e8756a v4l2_find_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x4103badb v4l2_print_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x53105839 v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6976cfe0 v4l2_valid_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6f344bb9 v4l2_calc_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7eaf8e7a v4l2_detect_gtf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0xb0891da2 v4l2_dv_timings_presets +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x6443895c v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x90e3f169 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xe9400f68 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xf6e5d0e0 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x05fffe6c v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0ecfa309 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x17eb0eee v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x43169fa4 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x56e38d9f v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x5b468563 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x71b6d889 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x75fc3940 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x795dadf8 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x898c7666 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9244e7b1 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa64f3ad4 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb0a48cf9 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xd9484794 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xfd6831fd v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x015ffcf7 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x1dc361c8 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x3447fbf3 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x36edf55b videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x56c744db videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x57537fad videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x5beba431 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x627c756b videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x65cb894a videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x75bca1ef videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x77bfca36 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x81b37c18 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x8b66680d videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x8ce40c6b videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x8d57e892 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x97d6ffcf videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa2df55ef videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa3f601c1 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbad6976b videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbd5efc82 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc3c99174 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xce95919d videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe7501cb8 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xed94cc46 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x600d3492 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xaeabadbc videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xd40c4e0d videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x0dd4b1d9 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x17ca053c videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x18551e21 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x1db6ad83 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x2605da9a videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x473e1b6c videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x67d54924 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x78ec0f03 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xeac0c8a6 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x5c81b2a3 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xad090198 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xb9a6e21b videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x0031af41 vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x07dab056 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x09a07286 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x0c71c43a vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x0d2426e5 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1ba2b751 vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1d8e489b vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x220db0b0 vb2_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x27a61512 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x27f0b8ec vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2d664cc3 vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2e5d6836 vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x35b663b1 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x3952b84e vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4063bc53 vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4ebae624 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x51922a83 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x53e49301 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x675924e9 vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x6ed1e632 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x76339e2d vb2_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x83d81eec vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x88185f1b vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa3191ee9 vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xbb5b0c03 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xbdd8d711 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xc81df2bf vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd6dd26e8 vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe2e886a9 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe5fe281b vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe926c2b9 vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf3a990e5 vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xfba93aad vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xfd206f3f vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x18a71334 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xc3fa343a vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x77c5b074 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x8877b728 vb2_get_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xa5813f84 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xc98ba3bd vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-vmalloc 0x72cbca18 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1a4e07a5 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2a22357e v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2cd2d3ba v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2dbb074a v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3571993d v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4acff35b v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4f0ca50c v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x52f0a4b6 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x63a9245f v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9c2487f8 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9c55c4f7 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9efab614 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa075756a v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xbadd1a59 v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xbfc1b80d v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc2972ea5 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc8971067 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd54e8c1f v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xda43630e v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xdd1d6f26 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe6920269 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xebaaf0f4 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xed792a55 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf960087d v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x46f4f257 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x515a8cb5 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6a04ae36 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x7d5d5b40 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x7f637549 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x8434d34c i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xc75f2339 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xfc610d36 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x0e8177bb pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x7313843c pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd778014d pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x2755a82f kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x2f451782 kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x46d681c2 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xa4f5dbdb kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xa73c8304 kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xd06593bd kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xded89f09 kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xf3a8e019 kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x0fc8931e lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x60ca7954 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xb7627ad3 lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x40aa2728 lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x66022bb8 lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x7c3fec11 lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x879eb6f4 lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x888d1b0f lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xad14681d lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xc207e808 lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x22f6a6f7 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x8c987905 mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x9b2fc2c5 mc13xxx_common_cleanup +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x9e978c6d mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xde2dc74d mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xe3f62434 mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x003871ef pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x27b259d7 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4bf6fc2d pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4ee262f3 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x67f628fe pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7a2f2d09 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x867f1841 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xbeb7ccfe pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xdd396baf pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe733bb58 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xebd518e1 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x6628e867 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xd821c66f pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x3f51dad4 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xa955b97d pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xb95dc815 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xc8a43e5c pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xd1642700 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x01a33234 retu_write +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x4fca3918 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x000a6e16 rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x2427fa1a rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x2c3844df rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x52c5913d rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x64b1bd59 rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x65d3734c rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x65de911b rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x699740a9 rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x72649d3c rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x74503d94 rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x8256d6ad rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x99fddea0 rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x9dca9092 rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xb736b597 rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xbfb2f8cf rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xd1d6c10b rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xd7da50f8 rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xe13bd825 rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xe27a852d rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xea1a5bbf rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xfdacceab rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0b22e35d si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x109257a0 si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x164a8805 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x16ef2476 si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1cabb149 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x23abf2fd si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x278b4c79 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3ac06749 si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4e31bd2b si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x51ccfc90 si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x565ac47f si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x56807170 si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x58451975 si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x5c3e1a6e si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x5ed4ec52 si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6074a409 si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x63283aad si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x674ce1b4 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x69aa77e7 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x81f6961d si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x85c32d82 si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x965e764c si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x999c800a si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb71c165a si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc70b35e3 si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe06285fb si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe70d81ef si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf04435a5 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf483cc6c si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf7f4e3b4 si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf83b841c si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xfa425256 si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xfb5cc6cb si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xfbec3340 si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x27cd881f sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xe61d249e sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xe67af6a8 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xe7fee6ec sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf5fa8924 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x3ea35b4e tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x76c7501b tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xc3dd31fb tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xdc70c7d8 tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x2ea6e788 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x38a1bbd2 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x97df2de9 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xe885e412 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x27cb133b eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63 eeprom_93cx6_wren +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x822222db eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x98bb5a22 eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x6bce1125 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x862ae800 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x8bf1ba6b enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x90b8e898 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x998aa3b2 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xbd4965b7 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xfcd2e0a6 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x3528b830 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x479c94bd lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x52c83299 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x704dc09f lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x9821e618 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xb220ec70 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xc9332448 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xe49c2768 lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x5b6b1144 st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x817515db st_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x08e29771 sdhci_send_command +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x560149b2 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc6920027 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd557f9bc sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd55c84f9 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00c2de18 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x0eb79e80 sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x93ff35c7 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xa0bb747f sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xbf58cf2c sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xc731357c sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x199c8f2b cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xdbab8f55 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xe482aabd cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x150e105c cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x6b5c5b8c cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x98a5940a cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x6ad15ece cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x3517fa09 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x57857a25 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x6cef155c cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x09d7e4a6 mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0bf8d37f mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0d0d1f19 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0d16d4bf mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0ff124d1 mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x12edf0ac __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1d9c9d8b mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1e1967be mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2ca826f6 mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x32912d56 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3701a8fd mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3c515c39 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3cf8640f get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x495eb87b mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4b336418 mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x52f6a0c5 mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x58351c56 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x58b3dec8 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5fe5e573 mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x63cb2a78 mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6a680f2b unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6ad98027 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6e6c7b27 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x70b55c3a register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x774ade5e put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x845a42ee register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x864a5ccf mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8b2b6a2b mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x91c2b3e9 mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x94e8f09a mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa37922bb mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa5856aab mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcb91063d mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcf5ec0e4 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd1a55d2d kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd212cd19 mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdbe8b767 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xecb2da21 mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf030ca03 mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf38ce30f mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfc097347 mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x27319fbe add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x285c7587 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x57add76b register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x627d387b deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xe9590afa mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xb5a1117e nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xd841c6da nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x4dbbb3fc sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x798527b5 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xe4d453fb onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0bc99547 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x201d369e ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x216425a1 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x275bcb13 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x73c166f6 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7c1b60bd ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9ae3d4e6 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa1f11633 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xab5a13d4 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb4ac6456 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc1183002 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd611c84d ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf7586d65 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x9560dcff unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xa34bf97d register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xafc85487 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xe17f2f0f alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0237547c can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0f6e5178 can_led_event +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x222c295a can_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2423ef76 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x28823d2d register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2ac608e8 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x37b7ccbc alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x71055b16 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8d94ddf0 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8ed0bf04 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x99b3f3f7 safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb346573b can_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc1a9f58d can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xcba5c91b unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xcd3e6d4c devm_can_led_init +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe5895f79 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xeb9b301e can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x51a6e6e3 alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xcd9d514a free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xd044e72b unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xf82b9381 register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x0036777e unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x03b6be57 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x0d34460e alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5ed226f8 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x1004e131 macb_mii_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x11ab4d52 macb_ioctl +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x14ea79be macb_get_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x5873e046 macb_ethtool_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x7f019c89 macb_set_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xc37ed7d9 macb_get_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xf01ad725 macb_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x015aec5b mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x01f0eb2d mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x04ce664b mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a443c3a mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a7cdad1 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a962dd7 mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x11249489 mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x12609f98 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13af713f mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x160141c1 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1696553e mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1742210d mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1af0465a mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b6679c4 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1d53bc63 mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1fce110e mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x258b2435 mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x26462b89 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x26fd9614 mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x28fd55f9 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ad6fe7e mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b182368 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x30504dac mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x310d858a mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x311d378f mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x313fd7d0 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31bdcedc mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x322c863e mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x35169b90 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x387dc0f4 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a1d1690 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a79b8b2 mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3da8d1cc mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x41c3a9d1 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x432e7c36 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x449f0323 mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x45ccdb16 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x45d65250 mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x47a0b2ba mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4fa9a788 mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x525ed0af mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x54d35350 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x576db58d mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x59588552 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5faabb2f mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6403aa87 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6a2f2890 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6ab4c22b mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6ac7f9aa mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6bfde4b3 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x70e8e16b mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7277cae1 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7537c6fd mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7cf5ef37 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x80512b5c mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x822e78cb mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x83ad2e84 mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x85b30d40 mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x87c5c218 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8923f317 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8d38faa5 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x90f80751 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x93580589 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x97714a2e mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x988e880c mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9cf09b7d __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9d918534 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9e28f776 mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9ef861e0 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa220871b mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa267ac6f mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa281f72d mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa3137fef mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa3e9bd3a mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa9a18b6c __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaed853ff mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaeff13ab mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb8a1be6a mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbab71ddb mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbc28d0e2 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd5b017f mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc1960fa8 mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc51f3d0f mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc86b6a75 mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd5673c10 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd93a8ff4 mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdc5d6488 mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xddefcf7e mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xde2aabd2 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdeba1752 __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe4a6e547 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe515580f mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe9d40b00 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeb0bf02a mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeb0d4849 mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xec7f8372 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xedfaf119 __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf0886ca4 mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf25d8adf mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfce1c70e mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfe84de55 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff3b0c60 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2bfb705e mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3243f74b mlx5_core_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37741f59 mlx5_core_create_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x41b33e73 mlx5_core_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x61ae536d mlx5_core_mad_ifc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x64beb693 mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x772bee02 mlx5_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x846f3507 mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87593b89 mlx5_core_destroy_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9b1f4a38 mlx5_core_eq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa0e5f6c8 mlx5_core_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa8c3f96 mlx5_destroy_unmap_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb6202c03 mlx5_core_xrcd_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6c4ef56 mlx5_fill_page_array +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdfd29db4 mlx5_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe3a0953f mlx5_create_map_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe41b344f mlx5_buf_free +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x1fa840c1 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x292201dd macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x76027496 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x7d76afd1 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x85343a33 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x9f100731 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x0d6eec05 vxlan_get_rx_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x2bb580d5 vxlan_src_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x93cadcb0 vxlan_sock_add +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xd00a25a5 vxlan_sock_release +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xf40408da vxlan_xmit_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x075a16dd cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x664beb1b cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x9dcd456e cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x30c448b9 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x0d487ad9 il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x9ba2adb8 _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xb99f6e52 il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xe2167224 il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xee99f8ac il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x00526d67 iwl_opmode_register +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x0bc49f61 iwl_read_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x1a31d0eb iwl_remove_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x2cee661b __iwl_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x35033c81 iwl_phy_db_free +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3e0b43b2 __iwl_warn +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3e7d7346 iwl_parse_nvm_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x445a81d0 __iwl_err +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x4569ca0f iwl_init_notification_wait +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x48424fe8 iwl_read_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5c52e109 iwl_opmode_deregister +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5c7572f0 __iwl_crit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5d0a212e iwlwifi_mod_params +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x776221bf iwl_send_phy_db_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x77697a9e __iwl_info +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x7ab0e0f7 iwl_abort_notification_waits +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x7effb74c iwl_nvm_check_version +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8373538b iwl_phy_db_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x83fe9b07 iwl_write_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8c5d5ab3 iwl_phy_db_set_section +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8da16094 iwl_notification_wait_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x908cbab8 iwl_set_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x93f183ad iwl_poll_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x9c553437 iwl_notification_wait_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa11db86d iwl_parse_eeprom_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa6aea0d4 iwl_clear_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa82c2350 iwl_write_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa9f66159 iwl_set_bits_mask_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xd74404c1 iwl_poll_direct_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xf03a5420 iwl_wait_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xf641e1f7 iwl_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0705b822 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0d6ecdbf lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0e85a99d lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x199630ee lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x26772eac lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x26805ba7 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2fa6b67a lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3b45d5a8 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5039dccf lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x760c3ee6 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x81b901d2 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x82afcf58 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8b36c5d9 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9ceeb250 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa44ae5c2 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xebf2b5ef lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x09d27f7b lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x3e466ea0 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x73c7aa16 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xae74a917 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd107e0f2 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd9406b96 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd9d4cb63 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xe13593e2 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x176530f6 mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x19f53155 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x1a082793 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x3da5a862 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x47a1edbe mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x82f53fd4 mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x8ceb30fb mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x8ef9eb39 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x92aeb562 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x9b664077 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xa34e2d92 mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xbdb4b1a4 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xe5fd31f6 mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xffa8b21a mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x22ae5972 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2d72cda6 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4e2b1b61 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x6069d427 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb1258e02 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xbed572df p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xccfbbcf3 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xd9b10979 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf36fe3f7 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0408fde3 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0814a7de rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x12d60581 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x15acc620 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1774ccc2 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x33947677 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3c9f1de6 rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x40e6bfca rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x41df0bea rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x47a73edb rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4946c469 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x51dc2573 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x55836b5f rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6ba154d3 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x72fd5870 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7300cb21 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x88cbcd1d rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x946fa42c rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9a27b23a rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9dcd5625 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9dcfa1b2 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa1b7856e rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa22810b2 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa8ffce9f rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb027d8ff rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbe8938b5 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc31eeab0 rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd7bbea61 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe001342d rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeb5c9292 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xed6eb4a3 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf476e058 rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf7af7dce rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf9c3b3a3 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfb000941 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfb0a6be5 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfc606147 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfee07795 rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x012f23b0 rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x0acf7888 rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x0fad1430 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x1661ae41 rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x1dc36460 rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x2505789d rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x381df1c7 rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x398135a7 rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5e8b737b rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x7e5e80dc rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x92c0bcd1 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x9c2bac52 rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xa1448d04 rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xbce2f83b rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc6a1455e rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xe28f94c7 rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xe459d972 rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xffbad5a7 rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x09c016d8 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0b408180 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x13e8d1a4 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1904177d rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1aa6f991 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1db710d6 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1f98c19a rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2528e1d2 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3f1a31b5 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x63dec65f rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x68dd80f7 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x730fc8c3 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x73edb27a rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x75b3f019 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x768436cf rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x783ab86f rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x785b4295 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8787dd87 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x89d4fcc0 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8b3e3a2b rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8ed68b42 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9a39f9be rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9b33bb24 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9cec9d1a rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa76f3c77 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa8185f82 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xae098c11 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb02551f9 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb5213d47 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb95c7ae2 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbf41eec3 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc7969a78 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcf914fb9 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd5475630 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd87b70f7 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdb33a22b rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdb8a267b rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe16a25ce rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe288aca2 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe6600c72 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeac9d773 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeb087626 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeeeaa655 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfa051f54 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x3e0c6c05 rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x51f487bb rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x88584535 rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xe00d7550 rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xf3621691 rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb11dbc0f rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xfe3b5d77 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x04001037 rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2e943ee9 dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc757b79a dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd176fed1 dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x1b867760 rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x31bfdf9a rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x3f4574a5 rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x48e9d578 rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x4a82874e rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x5479e0e1 rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x5a0b2ac2 rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x5c698bbe rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x5d6d0e21 rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x61c98300 rtl8723_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x68e1fc77 rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6fee3a6c rtl8723_phy_set_sw_chnl_cmdarray +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x71798003 rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x8629b119 rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x8c59cfa8 rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x90ec1c5b rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x9c7ae165 rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x9eae6e97 rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xa203cecf rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xaf4d6d94 rtl8723_phy_calculate_bit_shift +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xc38d8ca6 rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xc493d71a rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xcbe67d14 rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd9333389 rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xebbf987b rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xebddcd30 rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xed47c14e rtl8723_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xf8a1abca rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xfe571b9a rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x0b27538d rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x0bb01198 rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x17e02b5a rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x241dedc1 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x329e4221 read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x3a3c3b64 rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x429a492f rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x476a8611 rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x4fcb8838 rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x50671204 rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x56c77260 rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x5fdf764f rtl_dbgp_flag_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x6b4de810 rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x807cef7c rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x888c3885 rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x8a30bd7e rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x8e63a154 rtl_attribute_group +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xe80b4c72 rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf816a07c rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xff894fd8 rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x231390fd wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x3989443d wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xe521fd32 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0203cae3 wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0cbc7f7b wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1781e215 wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1802c1a9 wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2c2b644e wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2e046a6d wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3eef7916 wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4157d022 wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x47509cb5 wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x480b8ed4 wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x561ce3bc wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x571b21b8 wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6827927d wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7250e76c wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x74c645dd wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7551c791 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7dec11cb wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x836aca74 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x83fb23ce wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8c5b60c0 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9a43a54a wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9fdba1a5 wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa40a5e6b wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa855f202 wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xae522443 wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xaf96ee6d wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb4ae0761 wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb89fd69a wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb9b660c2 wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc26b030c wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc4fc0d08 wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc860ba12 wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd0ea4038 wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd16e1212 wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd29bcabc wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd39bb505 wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd6271650 wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xdf791293 wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe68f51a2 wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe878e2c6 wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xee9a5618 wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf7193d7d wlcore_set_key +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x69b94898 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x7ba0ee5e pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xbe5da422 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x3af77fec mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x64110737 mc13xxx_get_num_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x645da45e mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x96ded882 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xe208b38f mc13xxx_parse_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x3baa28e4 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x4711c8d0 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x52e0801f wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x850a41ff wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x9377c7b1 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa44465dc wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x40ede72d wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0b6968aa cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0e457349 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x153be0bd cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x230e26fa cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x248adc92 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x27da1549 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x344c3ed2 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x36072783 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x387a6199 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x440462c1 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x455b1ebd cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4e782a5f cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x545c6e87 cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x597f5b1c cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5b6fc751 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x62841c98 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x62d3904e cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x73fae121 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x751c5600 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7c3a8fdc cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8630998e cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x88414172 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x88622ebd cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8944465b cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x92a106ca cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x941a38a2 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x989cab05 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9a5ee8b6 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9ab2c9ea cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9c743e3d cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa14c4bb2 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xaa468c9f cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xab9ac61d cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb2375a76 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcd69e3f5 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd1f032a9 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd75a6ecb cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdd048713 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe143f30b cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf4332789 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf5f2f8e3 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf83a28dd cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfb1e39eb cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfe48a035 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x2fb06abd scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x3c73530a scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x79168676 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xb148a7e1 scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xb16c1bec scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xdc951940 scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xec489c0c scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0a75c2c3 fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0e980c14 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x15bd9fde fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x49673bbe __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x6418950f fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x6c26ce53 fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x76ff6a37 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x781c85ed fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9a424789 fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9f5486a3 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xab128247 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc48e5dd1 fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd72d0e5a fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf2814d6d fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf862af8c fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xfd2658c4 fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x2ef6e5f9 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x452029aa iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x8fa45c5d iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x9a780cad iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa2e88f3e iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xd45ee690 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x03342a31 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1afacf8a iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x250bac09 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2707badf iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x286af46f iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2bfccddd iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x33c443b5 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x353f3739 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x38ea881c iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x39be0505 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x39c49d34 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3c0043da iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e58ca7e iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x414756a6 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x42dc8ba3 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x479ba0f3 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x62cdc8f4 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6a0feb9f iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6ad22d3c iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6e8987ac iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7d1e46b1 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x805bf4a7 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x89477f7c iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9388e711 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x93edeecb iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa18bbb31 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa2c7a0d4 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa674bd73 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xab373502 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb2f9ffac iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb4d1b3cb __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbe530af9 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcc94300e iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcf57bf86 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd933731f iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdbd585ed iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdd8b78e5 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdeeef824 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe95fe71a iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe9636249 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeb5e31a3 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf646de71 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf71816d0 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf9f4f687 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x063261df iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1c13e77b iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x26cfeb90 iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x38e0f54a iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3d714a31 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5a05b277 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7025283f iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7636472c iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8ae049bf iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x93167427 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9e128230 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9e51c951 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb58f6b9a iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcc2fe5a3 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcd3e63be iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf280a700 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf5cb371e iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0f3e4526 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x21d520fe sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x25021309 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x25b31cb4 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2bcbb018 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2db8dc6c sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2ef3a641 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x37fd9e26 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x57e3099b sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5a919a56 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x63c67007 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6f8e5fda sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x82215cf3 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x862cf855 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8b61ea96 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8ffe1beb sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa5212874 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbd84c71a sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc04f4681 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc07e99eb sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd16d5dad sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe2897094 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf709a104 sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf8b8e590 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfa311146 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x151f9f54 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x4ed08d0d srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x55094feb srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd82661db srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xdca653c5 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xdfaeb252 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x04af2060 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1b872d14 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x20465629 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x37b6e0e8 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3cd59452 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x566048c6 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8a4cd2e1 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xdd0435d2 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xfc07b8e2 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0388ecb5 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x05b38abd iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1d6f1900 iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1fcf6c11 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x24512526 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2a78ed32 iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x35653308 iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x42ae5f02 iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x46904944 iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x488adaea iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x493c1f06 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4df5ea1e iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5026d3ed iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x532e414f iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5b513f46 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5ee13d91 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699b99f4 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6dd6d724 iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x88b7ae12 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8e5a4e53 iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8fecd928 iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x906a1111 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x97791766 iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x98fee6a0 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9a64d65f iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9af1197d iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9e255e06 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa36068e8 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa9866da3 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaa461f59 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xab3f7fd0 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb075b83c iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb608b081 iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb717ec52 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbf819684 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbfa50b07 iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd336b001 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd7bc1572 iscsi_is_flashnode_conn_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe1cd00c4 iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf645a3f7 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x5e730424 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xb461e4fe sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xb623e657 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xfc8be743 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x427be516 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8b0566d9 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8fa2f84b srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xd65df8fd srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xee891cc0 srp_tmo_valid +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xf197b48f srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x5ee94e79 ufshcd_init +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x7ff8ab84 ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x83ea3d43 ufshcd_remove +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x85cc0e10 ufshcd_resume +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xa2936117 ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xc981db39 ufshcd_suspend +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x5d03f372 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x7879166c spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x86b142e7 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xc7c04458 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xfceb286f spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x154b68bd dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x1e01fe60 dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x31edcb55 dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x7ad2d04d dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xf49dacbc dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0x7587f63b ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0455a30d comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0f3dad6a comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0feab2f8 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x113ee680 comedi_buf_put +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2000ac67 comedi_buf_memcpy_from +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x21936cda comedi_buf_memcpy_to +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4f3723d8 comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x543880ee comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5dea9efc comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5f41a427 comedi_dev_from_minor +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x628c4031 comedi_error +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x634d4bb5 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x659c2537 comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6c3a91cb comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6c9caa03 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6e1a88d1 comedi_event +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x71b39246 comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x87bbe4db comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8ce46134 comedi_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8d35e68d __comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa058f107 comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb2f4c56e comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xba922d20 comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbc22737b comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xcd014b9a comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xce5e5363 comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd6b6ef32 comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd79387b0 comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd8d3ffad comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd9424ef0 comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xde47f2a7 comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe3aedde0 comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xeaa93ce4 comedi_buf_get +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfd73b9bd comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xff7e4856 comedi_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x3904fcc8 subdev_8255_init_irq +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x4b7fbfc0 subdev_8255_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0xdad843fc subdev_8255_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x387f1b43 addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x30851a98 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x6bf12780 amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xc9d2e5ff amplc_dio200_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x2e5db286 cfc_read_array_from_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x4bead1ba cfc_write_array_to_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x899baf0c cfc_handle_events +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x326d34a1 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x0d3c7071 mite_setup2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x0f09587a mite_setup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x20f7ef10 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x2768e005 mite_bytes_read_from_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x2879818f mite_sync_input_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x3026f949 mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x3b8a332b mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x45d474cc mite_unsetup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x5995c566 mite_buf_change +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x6da45c40 mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x70799de4 mite_done +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x8e1962dc mite_release_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x90a7fedb mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x9972d7cf mite_sync_output_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x9bc134ee mite_free_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x9cf88112 mite_get_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xb5685f05 mite_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc2a5766a mite_bytes_read_from_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc53a797f mite_bytes_written_to_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xcd112826 mite_dma_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xdb7c2386 mite_prep_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xedf56466 mite_dma_tcr +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xab9b87f8 labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x45778c17 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x70445af5 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x7655312e ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x82950fd2 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x9b5ad39f ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xacf9f980 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xade27032 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xb3446c57 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x1ef3bfc0 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x48b9e97e ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x610059f5 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x72ae5650 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x80613187 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xfd8107fd ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x480bf270 comedi_open +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x5dc04eed comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x8ffd0cf8 comedi_close +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xb84d4ba1 comedi_dio_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xb91904f5 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xc0c8c76c comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xc9aaa77e comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x1a1b5249 oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2feda75b oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x3227a28e oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x7dc9dddd oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xb2c66001 oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xc8b5a524 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xd370f679 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x1b8405aa speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x29e4c34f spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x49cd8160 spk_serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x56355aa9 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x777a53e5 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x94ee5b5f spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb0757dfd synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbf972d3d spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xca748e39 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd1b551a2 spk_get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd6094017 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xfcd1ce5a synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xfe210e3f spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0x343db2ae pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/uio/uio 0x074ffb85 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x9678914c uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xf5162072 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x22ee2bd7 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x3e6b359c umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x4ce5ac1f umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x53ff66df umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8e5d86ec umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xcee54a53 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xec1d6575 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xee0bd4d6 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x015c8f12 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0a108846 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0d78016e __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0fc02440 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1c9dd452 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x215a373f uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2662cced uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2be6df29 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2f444afd uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x31671934 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x316f3cad uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x33a8e99d uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x34053699 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x370211fe uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3abb4cc2 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3f429ef3 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x41bb3a17 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x433f6c30 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x48bea7d1 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x57e3b65f uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5c141796 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5dd7914e uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e2c0f53 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6c9f9069 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6ea3018f uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7176925d uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x816b9e92 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c32144e uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9c2c7b4d uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa23ac05e __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xac97316b uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb1b21845 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb43d17ee uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb69b25fc uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc4293808 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd1089d94 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdaee3d26 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdc689e2f uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdd671219 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf4403d6f uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf786f32c uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/whci 0xdec48360 whci_wait_for +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x07aee577 vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x12f287be vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1e52f6f9 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1f432c96 vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x254c43e9 vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x25761b68 vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x269f7a09 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2759d67c vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x27d8bb0e vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3870af83 vhost_init_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3cdf310d vhost_poll_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3e71ff1f vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x46136453 vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x55b1ed49 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6fa1f80a vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6ff0cfbc vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7023306e vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x794a97a2 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7e9cea5f vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x88f75b79 vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x8ad8b64c vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x90f0de7b vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb799b6e6 vhost_work_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbb03cee9 vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc480fae2 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xcfdbab51 vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xda3ad073 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xdf5c6ed3 vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe277c00d vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf8b50f7e vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfcb0e2cc vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x305c98a0 auok190x_send_cmdargs_pixels_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x481882e4 auok190x_read_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x4caa8139 auok190x_pm +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x86aae7b6 auok190x_send_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x92dd9572 auok190x_send_command_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xbc1e89df auok190x_common_probe +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xbceb5f24 auok190x_send_command +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xbf4c7172 auok190x_send_cmdargs_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xc310e166 auok190x_common_remove +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xce9c8da9 auok190x_send_cmdargs_pixels +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x2a08c8a2 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x6178ee8c ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7f875903 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x83e799b2 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x90e5e9cc ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0xb12a43c2 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x481584e4 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xde0a2919 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x73823207 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xf2eccd76 sis_free_new +EXPORT_SYMBOL_GPL drivers/w1/wire 0x025e2a5a w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x1e5c9e42 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2100e004 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x6988426d w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7d66a6c4 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7fdab822 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x8bd55fd7 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x9f50cc3c w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe94a984d w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0x7841f984 xen_privcmd_fops +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x5dbd4c55 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9eed3783 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc6dc8c2f dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdf3c4a35 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x0119d5ce lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x34a0f46f nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x3c7d5b06 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8f044477 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa799bfde locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb960d3c2 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xcb37560e locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xdab3f881 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xff4c912a nlmclnt_proc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x014f16fa nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0169ce2e nfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x07148491 nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x074cb5fc nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x078097ba nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0d15561d nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0ebe98bb nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x101a461d nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x11a6b138 nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x16d83106 nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x18a54905 nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x197deedf nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1a0a7d6b nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1a68fb3e nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1aa0bae1 nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1bc99569 nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1ed1c68b nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1fe20227 nfs_writedata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x20211566 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x21e27e58 nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x25e8e621 nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x27aa84c5 nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2bacbdcc register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2c4b7e4f nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2ed725e3 nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x303ecaa4 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x31b34fa8 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x33601d31 nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x35f2a619 nfs_try_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36ae6331 get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x382864bc nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e09c8f nfs_readdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ca31f35 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3cdbe37e nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3e9a1d72 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f9c02c9 nfs_file_fsync_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x403e40bd nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x425738ea nfs_file_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x434059b4 nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4c75c259 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4c86ea65 nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4fe4e3c2 nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51a7f95b nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5224e972 nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x52a02f4c nfs_setlease +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x530c4696 nfs_file_splice_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5621e780 nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5b2b73f5 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e1d863a nfs_sockaddr_match_ipaddr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e47b4af nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5fb8c7c2 nfs_generic_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x60fe3a54 nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x65ac45d2 nfs_fs_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x697b657e nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x69f4f772 nfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6b62a6b0 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6dd78811 nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x70fe913c nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x726f4d6a nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7340a09b put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x75135f74 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x75a9c7d9 nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x788ae42b nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7b0d0c20 nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c9722ba nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7f3d7df0 alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7f9ff39e nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7ff418b8 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x85e70060 nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89bc5a64 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8a47959a nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8c2449a0 nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8cd5654c nfs_pageio_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8d87f416 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8e527ae4 nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9050325f nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x92bda0f2 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x92e0459d nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9966b370 nfs_probe_fsinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x99dc9209 nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9ba1f7a0 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9d0c7dd0 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9dea6a0b nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9f1732fa nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa269ce14 nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa33b7bff nfs_set_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa6a70223 nfs_destroy_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8711bad nfs_generic_pagein +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8d2d1ce nfs_callback_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa9f2a2f6 nfs_put_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaa00518a nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xab50f74c nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xacba69f2 nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xadf84fb0 nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb01704e5 nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb42a7e6d nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb606e716 nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb6932073 nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb6c154d0 nfs_readhdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb92c4c24 nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbddcc606 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbecaa748 nfs_writehdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbf32f816 nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc054ec23 nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc3085865 nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc34d8a26 nfs_pageio_add_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4972f3c unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4ff1e9f nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc521ee13 nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc56d8aa6 nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5ef47d5 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc7b14b9e nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc8a0154e nfs_fs_mount_common +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcbf16215 nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcceb73ff nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcd51a972 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd23190c6 nfs_file_splice_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2513081 _nfs_display_fhandle_hash +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd3fcaa53 nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd4079b27 nfs_fill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd4be4d22 nfs_clone_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd5179cda nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xda3beb0e nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdb1c4c78 nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xded4182a nfs_pageio_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdf836fff nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe1c17f92 nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe71af257 nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xece7cc48 nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xee63f3ad nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeeba54e0 nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf022d303 nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5d437bc nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf6435f6f nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfb7ee006 nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc619abd _nfs_display_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfd31ece6 nfs_remount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfe775db2 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x124d4b02 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x167ff106 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x170f3ed6 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1a8f1346 pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x21118d76 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x23b1b77c pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2625491b nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x31b22e75 nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3306b3e8 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3cb8e7c5 pnfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3df5aef5 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3fa31d26 pnfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x40536a5a __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4090fd41 nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x486b0538 nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4f0f7029 nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x50c72df1 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x594c3da3 nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x624b705e pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x647566cb nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6612c61f nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x681b4dd8 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6bfe5a17 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6e048747 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6e3befac nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x75dd4769 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x77afbb60 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7ba5bdfd __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x87e54ac1 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8cf21d1a nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x943bddcc pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9475bdb3 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xac653504 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbea76197 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc4425a4c __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd4caaff8 nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd7295824 pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdd59ca2b nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xea4689b2 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xed12665c nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xeeb5569e pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf010f11f _pnfs_return_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfb8bde0b nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x1ab452d4 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xe0cc44f5 nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36a28a9e o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5dd14a71 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x684d5a1c o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x83114e8d o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x883aafaf o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xad27d5eb o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb00e7468 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb5750267 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x04138a16 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x16cf563e dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3d0da2d9 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x51130d31 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc77c6f5d dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xe8ac4946 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4394300c ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x8d15adad ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe56b7808 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x3246c00d notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x9cb9de08 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x1803a6ed raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xe4b051cf raid6_datap_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xfdfcb8cb raid6_call +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x201d8ea3 encode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x29fa419f decode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x053f2e7c garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x113fceef garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x322d9ecb garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x8a7dccf2 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xb5a9bc9c garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xd558e02a garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x0e5f5a72 mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0x2861bf73 mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x7348493a mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x7da80e56 mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xd850f987 mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0xfa114669 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/stp 0x5f17fe15 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0x6d861757 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x2159f412 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0x54cebe61 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/atm/atm 0xb09faf79 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xcfb6a3da unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0xa9801f74 ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xe7068326 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0ffe26f1 dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x13099748 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x153a6595 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x19436450 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1a9250a8 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2349adbb dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x314e11ca dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3a22351c dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4710a890 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x59e5f045 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5d3d0bb2 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x64e8ebe0 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6798bcdf dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6b1bc63f dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6c265c1c dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6e018de9 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x74413af0 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x80e8c34f dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x811b8a64 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8871be56 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x888f9545 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8d6bb0b1 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8db14f4b dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x930f8866 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x97f8de08 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb25515a3 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc0448669 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc9fb8b28 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xca908bb2 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcb57fadb dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcbb7b413 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd5f2d2c8 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xda8bfa23 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdf63f62e dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xed95575f dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xefe2a71d dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfce711cd dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3d9373dc dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3e6d89a0 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x43b59be9 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x8d966e8c dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x96df94ac dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xe02b70ad dccp_v4_connect +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xa4d59405 register_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xdb44eb94 unregister_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x02a693d0 gre_cisco_unregister +EXPORT_SYMBOL_GPL net/ipv4/gre 0x28505fae gre_build_header +EXPORT_SYMBOL_GPL net/ipv4/gre 0xc8eee95b gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xd2efee39 gre_cisco_register +EXPORT_SYMBOL_GPL net/ipv4/gre 0xde6af611 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x3252ccb7 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x8519100c inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x8bee7dd9 inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x91265730 inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xbd7eaa3a inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xcb3a532e inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x34ae3104 ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x362ab92f ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x3beed0a0 ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x3cc50d3f ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x4c48ef95 ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x4f2dddc1 ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x561716db ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x61ad46a6 ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x631cb46c ip_tunnel_ioctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x68115a9d ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x6c2bab50 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x70367667 ip_tunnel_delete_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x92cf1c4a ip_tunnel_get_stats64 +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xf89887b4 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xcf7b5937 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xb2d94c7f ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_ipv4 0xa1dc678b nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x0267755f tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x222ba4c5 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x857cb335 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x9675056c tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa9b84555 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0x05290ba6 xfrm4_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0x3e230d54 xfrm4_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x3ef76063 ip6_tnl_dst_store +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x49651e3f ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x4cae8901 ip6_tnl_dst_reset +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x601508f9 ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xa0b62efd ip6_tnl_dst_check +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x3a212bbc ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_nat_ipv6 0x4e7cdba5 nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0x0dd3699f xfrm6_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0xc5762eb4 xfrm6_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0f71db52 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x21a70cbd l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2b63603a l2tp_tunnel_sock_put +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x38f9f504 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x46b323d0 __l2tp_session_unhash +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x59485049 l2tp_session_queue_purge +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6664c7f5 l2tp_tunnel_sock_lookup +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7b376eab l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7e832cd8 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8c3693b0 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8dc6c4a7 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9789bb39 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcaaf3dbc l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd737976a l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xefdbbdd0 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf5efd5db l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfeaaf6fc l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0xcbb63461 l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3663a36d ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3799d0ef ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3e20a29d ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x468cb686 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4bf42798 ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x54b4836f ieee80211_iterate_active_interfaces_rtnl +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5d38f601 ieee80211_set_key_tx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6e3cf400 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x902c190b ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x91d2ca0f ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9f44543b ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa1ddba57 ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc93a7574 ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xddd29822 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfacdf2e7 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0e8f7633 ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x233376f6 ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x282b69a9 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3a1caab0 ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x44a0d64d ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4f12dcc1 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x57d370f4 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x69e8f33a ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8a9a5811 ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9bbd8e56 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb9fc4203 ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xcf294e3c ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xd267e79f ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe6afc387 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe6dc893f ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xed6cc256 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xef13ebbe ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf3b4d4ae ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x9cd3abae register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xbf7f22bd ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xc6567f3d ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xeb021ba7 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01f84db5 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x05db299e nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0be3ee22 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0dc646bd nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x139ff1b5 nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x14e3e10a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x174384eb nf_ct_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a9b44fd nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1bc1f4d9 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1be7e4dc __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1d5bb55e nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2262ff6d nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2baed213 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2c05484e nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x31a0ccbb __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37386cac nf_conntrack_hash_rnd +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x39b164f6 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3b0ba465 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4043447e nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x433e10e9 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4be60f18 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d5da016 nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d884548 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4dd05779 nf_connlabel_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4e72f6cc nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5001b9c3 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x520e09fd nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5387ecb0 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d3c5f73 nf_ct_l4proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5fddebd8 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x60e8183c nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6113a55d nf_ct_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x63a029b7 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x65e9f9c0 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7108726b nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x71553bb1 nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x76b73e75 nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78426c40 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d849393 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7ebc84a3 nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f0877b2 nf_connlabel_match +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x81f87cbe __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x857b36e7 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8aeec60d nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c5e9e21 nf_ct_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9146def8 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9390f71f nf_ct_timeout_find_get_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x93995923 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x953b571d nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af151ec nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa452a61e nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xac9caeb2 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaea871ed nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb1268952 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb333dbd1 nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb6528dff nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbdd8d826 nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc2ca7ecb nf_ct_l3proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc6783255 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbc5c148 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcfe44971 nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcff5f627 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd02ed9a2 nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd2597a8b nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd734499a nf_ct_l3proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xda8768e3 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xddebb86a __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe193a7b5 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe6d3c37c nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe720ee5f nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe8e29609 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeaa4a893 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf27669dd nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf44e50d7 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf4671ba6 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf7c432ff nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9bb6ac8 nf_ct_timeout_put_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfaa0e9d2 nf_ct_l4proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe27aea2 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfeda1670 nf_ct_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x0becc5af nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x4ff24c6f nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xad1fd78f nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6fe7cf92 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8b729f81 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x912c5cc1 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xade04d62 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcbaed686 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd05ed5e1 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd797d955 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd8cf7089 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xdd5de3d3 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xea2e56c0 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xfe27781e nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x5df8e21b nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xae2b4077 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc9939021 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xe8e3c3b4 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x768ccf30 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xd77feabb nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x167b0bd4 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x22c78cfa ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x733b4614 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x788b159a ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x907d557f ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xaf83f8ea nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xbfb587da ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x83c5c526 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x84fa1a1e nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x04d5ca06 nf_nat_l4proto_unique_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0d9bae4b nf_nat_l4proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x131f636c nf_nat_l4proto_in_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x16db6966 nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x226a0e4e nf_nat_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x57aef99e __nf_nat_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x82d63cf5 nf_nat_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xb43cddbd nf_nat_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xecb24bbe nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xf0063b57 nf_nat_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x11a006b5 synproxy_check_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x5594b804 synproxy_tstamp_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x8841d39b synproxy_build_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x90298227 synproxy_init_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xa342138e synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xb42e336a synproxy_options_size +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xef7db50c synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0091409d nft_do_chain_pktinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x071ff478 nft_unregister_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0fda3c99 nft_validate_output_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x11daecae nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3c333ec8 nft_validate_data_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3d49dab7 nft_validate_input_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x58284f93 nft_unregister_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x6d70522c nft_register_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x74f72f1f nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7c3e1627 nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xbe0661cf nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xbf2acfe3 nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe1b4fd47 nft_data_uninit +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xecb5afe0 nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf199366d nft_register_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x05e1c596 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x19baad6d nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8cc509da nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa96c57e2 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xda7d5b0a nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe378af1c nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xfd1d0ccc nfnetlink_alloc_skb +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x21f6bba6 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x46b0ac81 nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x2ff5f711 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1bd057c5 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1ec61ae1 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3a23d252 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x56b2e0d0 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x662ddda9 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6c665432 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7be7fa08 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x87f41310 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8bcc5918 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa9f35331 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb1da666f xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbf366555 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc177d522 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc37279c7 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcdd64f0e xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcfd86ca2 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdfe1990c xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe3210842 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xec24fd82 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfec07d4a xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xe9ef9dd0 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xf156a7fd xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x2ba23cb4 nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x2c43f54c nci_spi_send +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x30f3f161 nci_spi_read +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x099e3769 rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x0dddcee6 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x1fe2e212 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x2992003f rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x29c815eb rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3b1f8ac0 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x4b212cb9 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7bc62829 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x84b9a4ff rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x8bc39f5c rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x95904e3e rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xa01f002a rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xa02e22c7 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xa1183ed4 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0xa58a7208 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xa804962e rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0xb0fa5561 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0xb184c9c5 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xc04893f9 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xce9c5620 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0xd20b0901 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xd9230cd1 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xe418f9b7 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xe6f652b2 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x0cadd55a rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x517223aa rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1a95493b gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xc1aaa275 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xeffed538 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x016b81a1 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x023e9b89 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045834e9 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04acd00c svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07959a02 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x081e1dbd rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08360758 cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08c800d6 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08f8ec01 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09d87847 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b65282c rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b8c623b rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b8f4245 svc_shutdown_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0cfe09de svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d4b4c16 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d4c0b36 rpcauth_key_timeout_notify +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e6f370c xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1005eccd rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x113e23fb svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1244e873 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12f419c6 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1450ca5f rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x158f0cf2 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15a06762 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15e3e72d rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1814e146 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x185e0eb7 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x189c2418 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x197125fd rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b88f73f svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f2a9970 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ff3fe56 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20286321 rpc_get_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24fa8fbd xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2554b367 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x288b0449 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b0b6315 svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d587744 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2fd8ff13 rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x313af9de rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x316c5cbb xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3185bc29 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x330b6260 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3423c8ff xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x375726e0 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37718dfc rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a663d69 rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a80b295 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e1b58b7 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e49f588 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f25596d xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40054ae9 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4465f4d7 rpcauth_cred_key_to_expire +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4728c509 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x479f27c8 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48cd16d9 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a2d4a02 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a53000c rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d5bb2d7 xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4dfc9fa6 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4fd6c3bf rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4fe80d35 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x515dc669 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x526fefb5 cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x545cfbdd rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55209679 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x554db4b7 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59813d37 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59aa4948 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b5db5a3 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d8af370 svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f48d954 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61110b7b svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61ef18c8 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x628fda60 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63b5556f svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6620cb77 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66a90557 rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66d5aa68 rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6726b23c xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c7476c6 rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6de5d10f rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e0000a6 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ef88235 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f69fa0a xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ffb81a4 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70601aa0 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71565176 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74fb091f rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x763acf69 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77406044 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a54000d svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x807960bd rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80951b28 rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80f2843e xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8421883f xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84433600 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x845216d4 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x854160e2 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86128d3c xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x863fad11 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x873b5472 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87d001da rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a0d55cf xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ad93aee rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c1e1769 rpc_protocol +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c4cb7d2 rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d2ab9a1 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e3484b1 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x937583bc svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9490f617 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94b62a29 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96c7b77f rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x971ba767 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x978f27c6 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b75d64 rpcauth_list_flavors +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9975eedb svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9990bebe xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a7c4f08 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a7e4e1b svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b81da1e put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d4359b8 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d885883 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e117d16 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f17836d xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f6a05e4 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0ffd064 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa144636a xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa164484f rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa362e263 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3ec99dd svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4f7460f rpc_rmdir +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa75de0bb rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8f8a0ce sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa965f247 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa4c5a21 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaae3c591 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb06a8520 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3dbce90 xs_swapper +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb41be58a sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb59d3ea6 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5b80497 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5f116fe read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb63626b6 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb69d377a xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb85cf140 rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb86ad6d8 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbebb635b rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2531b48 cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc29f5234 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2acd26e sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3d63d26 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4015aed cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc458a7b7 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc45ed8b8 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5b3dbf2 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc7812cb9 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc94165a4 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9e51137 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcad383a4 rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb9d6834 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc22f004 gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce9140ca rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf6956db rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0cbfa8e rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd75a819c svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd769ee96 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd82c3337 cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd90bc053 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd94511ae xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda8b12c3 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdaca33b7 rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdcf74a07 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde7246fc svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf6bf7d4 svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ac2bb8 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2c10d36 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5249aaa xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6cdba0f xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef2a8fd7 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef99fb70 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xefb565c3 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5c7b486 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc6cd42b rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd4aae18 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd9a0dcd rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfda33806 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe49a3d4 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe5b65b8 rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff015e82 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x01e01c86 vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0c79d5ef vm_sockets_get_local_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x11908b3e vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x15c0c57c vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x16fdc74e vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2663cb64 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x339ed697 __vsock_core_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x59d943c8 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x61bbda22 vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x751ff010 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7f730c80 vsock_core_exit +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x970b77bc vsock_pending_work +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xa05039d2 vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xb76b7e71 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd0f699d vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd553edb vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd95ac116 vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xe65f8425 vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xec939f4c vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xedc7151c vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xeecceaab vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf45ecd3d __vsock_create +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0d177159 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1fb7309c wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x26b32522 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2b4421b1 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6f46f922 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8bb1f8b7 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x962b84eb wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xac8aa621 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xccf1bdf1 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd58442e3 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0xdca3b21b wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe0110c73 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xfeec31b7 wimax_dev_add +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x022c0150 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x042b0f78 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x97779e54 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbec161a9 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc5d91ca6 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd1fe02a0 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd2ea1aad cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe790e564 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xee66d3df cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xefcfc4a1 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf757d577 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00778770 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x056bb269 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0a575945 xfrm_count_pfkey_auth_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0b9e5852 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x74e1a843 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7a8ca627 xfrm_count_pfkey_enc_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7c30b8c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x92dbc6c1 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xbc8b0f41 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xce7a55c1 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe122af95 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x3a52dfb0 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x77d10b6b ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc6c15342 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xf9e0a943 ipcomp_input +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_file_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sigset_from_compat +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x00337339 xen_dma_ops +EXPORT_SYMBOL_GPL vmlinux 0x00404661 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x006bc072 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00852973 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x009304b6 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00e27417 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00ef15a5 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x00f2e8c2 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x00fda7e2 arizona_clk32k_enable +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x010720c6 dma_buf_kmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x01159016 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x011fadc3 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x012d2778 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x0144ee8c xen_swiotlb_sync_sg_for_device +EXPORT_SYMBOL_GPL vmlinux 0x01638de9 lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0x016feb4c split_page +EXPORT_SYMBOL_GPL vmlinux 0x01a75cdc device_store_int +EXPORT_SYMBOL_GPL vmlinux 0x01b75cfe pci_intx_mask_supported +EXPORT_SYMBOL_GPL vmlinux 0x01da9689 percpu_ida_free +EXPORT_SYMBOL_GPL vmlinux 0x01e1c034 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x02094583 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x0217791d gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x021ed3bf kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x0242f756 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x02690700 system_trusted_keyring +EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0345555a ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x036d4c92 xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0x0375cb66 ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0x0394b615 da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0x039599d5 crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x03bf1d5e gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x03da22ea regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03f5b768 kvm_vcpu_kick +EXPORT_SYMBOL_GPL vmlinux 0x0402eb33 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x040a1deb inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x04426798 sk_unattached_filter_destroy +EXPORT_SYMBOL_GPL vmlinux 0x04463a76 balloon_devinfo_alloc +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x045b452f of_clk_get_parent_count +EXPORT_SYMBOL_GPL vmlinux 0x0462ad96 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x046cd99d __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x04890700 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x048d48d2 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x04a00d0d inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x04b1b240 __kvm_set_memory_region +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04df8fbc lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x051168c5 irq_create_strict_mappings +EXPORT_SYMBOL_GPL vmlinux 0x051cd2de unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x053494cb tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0x05446f98 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x056f07e2 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x05762c5a crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x058b582a vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x05c0a571 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x061b091e tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x061fa8c3 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x062fc169 xen_hvm_resume_frames +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x066760c3 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x06683ae8 percpu_ida_for_each_free +EXPORT_SYMBOL_GPL vmlinux 0x06976673 nfq_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x069edcc9 regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x06a64078 xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0x06ae5ebd ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x06d6745c led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x0778c070 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07dfb7f7 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x07f300c3 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x07f44adb ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x0809ec1f xenbus_dev_cancel +EXPORT_SYMBOL_GPL vmlinux 0x082281d1 alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0x085f65bc __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x088bfa7e cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x08bc0870 compat_put_timespec +EXPORT_SYMBOL_GPL vmlinux 0x08bd5cd7 regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x08c869a0 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x08e52790 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x09437748 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x09469482 kfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x0963ac77 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x09743052 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x09839d59 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x098e0174 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x0a4fa1f8 ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x0a9ad0ef phy_exit +EXPORT_SYMBOL_GPL vmlinux 0x0a9fd3c5 gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x0ad5970e pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x0ad8e39d extcon_unregister_interest +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b620408 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x0b62537d pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x0b694e52 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x0b7088f6 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x0b828f0d i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x0b91c971 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x0bae62b1 ktime_get_monotonic_offset +EXPORT_SYMBOL_GPL vmlinux 0x0bae8d07 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x0bbd4d67 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x0be81e88 clk_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c21c99d regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c816e9a device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x0cb9d083 regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0ccae659 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x0cce0227 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x0cd57d10 thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0x0cde28d3 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x0cf2fe4e sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x0cfcc6bf sk_unattached_filter_create +EXPORT_SYMBOL_GPL vmlinux 0x0d0d4b7e net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x0d480247 task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x0d68d7de regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x0d770156 sdhci_pci_o2_probe_slot +EXPORT_SYMBOL_GPL vmlinux 0x0d787aee __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0x0da8b451 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0dacb8cc single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x0dc18449 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0de02b7d list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0x0e2a36e9 PageHeadHuge +EXPORT_SYMBOL_GPL vmlinux 0x0e33da11 pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x0e628f41 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x0e8749fd inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x0eb0c1b4 swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x0ebb960b power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x0ec5422a securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x0ed9302e percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x0efc44c7 bmp085_detect +EXPORT_SYMBOL_GPL vmlinux 0x0f02a2f2 tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x0f2a7c33 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0f48bae6 arizona_set_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x0f5e5699 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x0f6a0ca4 blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x0f751aea input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x0f7cda7c devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x0fae88c3 irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0x0fb5c563 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x0fe112dc of_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x0ff280b7 devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x10063cf8 pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x1013cbb9 phy_get +EXPORT_SYMBOL_GPL vmlinux 0x106f0a1f xen_swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x1093f1dd devm_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x109a2f10 arizona_dev_exit +EXPORT_SYMBOL_GPL vmlinux 0x10b80b03 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x10bbafd8 thermal_generate_netlink_event +EXPORT_SYMBOL_GPL vmlinux 0x10e2efc0 wm5102_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x113fa94d dma_buf_unmap_attachment +EXPORT_SYMBOL_GPL vmlinux 0x11542d66 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x11697700 kvm_set_memory_region +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x11be9394 __clk_register +EXPORT_SYMBOL_GPL vmlinux 0x11c9883d uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x11ef7b3c tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x121cd964 of_pci_range_parser_one +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x121fc652 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x1227e627 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x1235950f alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1252f519 reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x125ececa relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x12658f5a __percpu_ida_init +EXPORT_SYMBOL_GPL vmlinux 0x12d83b1b of_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x12ee9113 blkg_prfill_stat +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x132e68d7 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x1354c925 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x1358e694 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x136a61f1 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x136c5d29 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x13771dc6 of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1378b3dc register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x13921363 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x13ad647f scatterwalk_bytes_sglen +EXPORT_SYMBOL_GPL vmlinux 0x13b2a2ed mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x13ce87e8 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0x13d480f4 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0x13e46f0e irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x13fc6dd2 css_next_child +EXPORT_SYMBOL_GPL vmlinux 0x1416c8d6 put_compat_timeval +EXPORT_SYMBOL_GPL vmlinux 0x14286501 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x142a8be4 of_clk_get_parent_name +EXPORT_SYMBOL_GPL vmlinux 0x1455a1e0 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x14613a4b regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0x14b03d2a dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x14c40e0d ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x14d51202 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x14f26949 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x14f7b6c2 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x14f875ce devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x15026a32 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x156d7e9e tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x1587fa75 dma_buf_export_named +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x15b996a4 pwm_free +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x160cfd70 xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x161c0d0b xen_unmap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x162a6b92 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x163882ed anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x165729d0 md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x165923a6 of_regulator_match +EXPORT_SYMBOL_GPL vmlinux 0x167caf2b ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x168ea887 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x16d3ed92 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x1726adb1 xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x1753a32f hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0x175596aa tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0x17678517 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x176bd1d9 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x176c35d6 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x176fd229 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x17712d66 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x17740cb2 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x179d89f3 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x1809afd2 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x184e51e4 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x18512527 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x1853653c btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1866cec2 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x1876e84f adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x187b52b5 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x18a56d8f dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x18c14de8 of_extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x18e5918b virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x192e815b kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL vmlinux 0x193b659b phy_create +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x194dd5f5 pkey_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x1966b847 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x19b384a5 hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x19cae194 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x1a082d69 max77693_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x1a245620 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a33a4ee find_module +EXPORT_SYMBOL_GPL vmlinux 0x1a8e6097 get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x1a96e0d6 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x1a9f2414 ping_proc_register +EXPORT_SYMBOL_GPL vmlinux 0x1ab0274a device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x1ab0fc05 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x1acef7d2 pm_freezing +EXPORT_SYMBOL_GPL vmlinux 0x1ad83009 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1b0556bd __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x1b06de79 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x1b2e52a1 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x1b32a676 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x1b3aadc5 irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x1b3e88c4 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x1b4b3a75 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x1b6f77b7 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x1b702d65 kvm_write_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x1b9d7f05 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0x1bdd4194 kvm_write_guest_cached +EXPORT_SYMBOL_GPL vmlinux 0x1c4b6e72 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x1c4e700e crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c656d72 tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c89368f nf_queue_entry_release_refs +EXPORT_SYMBOL_GPL vmlinux 0x1caf5e4e debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x1cb36f02 regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0x1cce0db7 alarm_init +EXPORT_SYMBOL_GPL vmlinux 0x1cdb2147 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL vmlinux 0x1d1b1706 fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1d58ae14 lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x1d739e1c xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1de054d5 of_clk_del_provider +EXPORT_SYMBOL_GPL vmlinux 0x1de39d92 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x1e2382c0 debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x1e419444 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x1e5b03dc pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e83fee6 HYPERVISOR_physdev_op +EXPORT_SYMBOL_GPL vmlinux 0x1eb1594f gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x1eb7c6d8 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebbce67 watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1f0601f7 ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x1f0b0d7d rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x1f4bfa35 fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1fcb82a2 uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fd05438 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x209d488a aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x209fe9ba tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0x20a54c32 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20d52cb8 device_add +EXPORT_SYMBOL_GPL vmlinux 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL vmlinux 0x20f33ca9 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x213cc050 xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2183cea5 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x21c0bd09 da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x21c1144d spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x21c87e57 irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x21cf230a inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x220a72f7 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x224b7d5a devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x227cacef xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22bb3479 devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x22df771d pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0x22ed8b4b disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x231c9c81 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x2329d51f unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x2331ab92 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x23453def sdhci_pci_o2_probe +EXPORT_SYMBOL_GPL vmlinux 0x2349f1b7 hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x23703e36 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x23741905 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23b797db btree_last +EXPORT_SYMBOL_GPL vmlinux 0x23cb42b8 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x24011e14 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x2405aa75 __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x2423a3bd transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24323d13 pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x243bf946 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x245394b6 btree_remove +EXPORT_SYMBOL_GPL vmlinux 0x2465a719 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x249bce89 irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24b10176 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24c0ccfa dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24c896a2 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x24d75f81 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24ebb6d8 sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x2501c26b dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x250c9bcd raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x25122af5 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x25354c1a pwm_config +EXPORT_SYMBOL_GPL vmlinux 0x25416f27 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x259b4cc1 list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0x25eae9bb device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x2620dfc4 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x2622aa81 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x2632d699 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x268a255e bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x268e2570 task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0x269a79f5 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x26b53cb8 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26f653c3 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL vmlinux 0x271f4781 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x2751c4b3 arizona_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x27c0c4be eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27e9d6bb netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x27f700de ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x280f6ce3 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x2819f8ea netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x283696db xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0x285d716b __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x28647f90 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x286a091e amba_ahb_device_add +EXPORT_SYMBOL_GPL vmlinux 0x28712c1a sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x28a903c8 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x2901c694 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x290dc736 gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x291d8283 css_next_descendant_post +EXPORT_SYMBOL_GPL vmlinux 0x2921f011 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x2981b10d device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x298acfd7 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x29bac2ec inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x29d39999 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x29e8631e netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x2a069e8a security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x2a500d37 sec_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x2a694e1c tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x2a8f79dc rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x2aabaf56 xen_swiotlb_sync_single_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2ad1ece4 zs_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2aeb83d6 __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2b3c7379 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x2b3eec9c mmput +EXPORT_SYMBOL_GPL vmlinux 0x2b6d9122 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x2b70abf0 pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x2b7a6de8 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x2b9bcb3e locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x2bad31e7 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2bfaef4e clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0x2c184179 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c275d4e tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x2c56e696 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x2c66cc5f regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c8650b8 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x2c96798f kobj_completion_release +EXPORT_SYMBOL_GPL vmlinux 0x2cba857a devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x2cc6e3c4 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d149f20 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2d17a0e1 cgroup_taskset_size +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d3ed2a1 blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d470ef9 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x2d48d4c9 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x2d5de78b __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x2d798d8e extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x2d888234 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x2dba276a __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x2dc9fcdb dma_buf_detach +EXPORT_SYMBOL_GPL vmlinux 0x2de74a60 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x2df458ea find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x2dfc1114 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x2e14bc27 bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x2e1da9fb probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e3492a4 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e5139b2 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2e604f73 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2e7b4603 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x2e7bb9fd virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0x2e9670c0 pl320_ipc_transmit +EXPORT_SYMBOL_GPL vmlinux 0x2ea4de69 pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0x2ea575e5 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x2eab79a3 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ecf2158 perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0x2ed8ca05 crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f80ab4f regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x2fa0f162 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x2ff54a7c regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x2ffbd4ad bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x3006b6f5 of_pci_get_devfn +EXPORT_SYMBOL_GPL vmlinux 0x3025b88b tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0x304a09ab alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0x30896b69 percpu_ida_free_tags +EXPORT_SYMBOL_GPL vmlinux 0x308b733a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x30902782 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x30924eab regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0x309d4b85 vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x30b987ca each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x30ca0b30 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x310e6991 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x312cfe0d blk_queue_bypass_end +EXPORT_SYMBOL_GPL vmlinux 0x314bbad3 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x314c11c6 ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x3154bae6 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x31859993 of_irq_to_resource_table +EXPORT_SYMBOL_GPL vmlinux 0x319a4146 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31f5b8c2 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x321bdbb1 compat_get_timeval +EXPORT_SYMBOL_GPL vmlinux 0x322630d8 wm5110_patch +EXPORT_SYMBOL_GPL vmlinux 0x323b9da8 user_update +EXPORT_SYMBOL_GPL vmlinux 0x3256ca45 gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x325cf463 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x327eaa8d relay_open +EXPORT_SYMBOL_GPL vmlinux 0x328995b5 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x329bbbde timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32c908ff sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x32d17918 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x32fd447a monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0x3310bf11 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x3375acb6 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x3386b3fd pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x338a1969 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x339b2a3e uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x33a94a45 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x33aee0c4 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x33af21f4 fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x33cef6f7 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x33d5696c crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x33f7ab15 get_compat_timespec +EXPORT_SYMBOL_GPL vmlinux 0x34036abc key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0x3426e7cf blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x34634974 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x34e67262 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0x34faf3b1 __mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x34fd24b6 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0x352650ee gnttab_batch_map +EXPORT_SYMBOL_GPL vmlinux 0x357ffb25 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x35a3f0cc ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x35c3ecf8 netlink_alloc_skb +EXPORT_SYMBOL_GPL vmlinux 0x35f10f43 nfq_ct_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x35f165f1 devm_reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x3616cd8f sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x366fdf05 dma_buf_attach +EXPORT_SYMBOL_GPL vmlinux 0x367b12ab dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x3685f9ff dma_buf_vmap +EXPORT_SYMBOL_GPL vmlinux 0x3686ff31 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36b50b56 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x36cdea53 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x36eec17c pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x36f63718 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0x3733c02d virtqueue_is_broken +EXPORT_SYMBOL_GPL vmlinux 0x373d5673 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x373f799f dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0x37a69ae4 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x37cccde3 extcon_register_interest +EXPORT_SYMBOL_GPL vmlinux 0x37cfdcf3 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x37d3efa6 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x37e93d86 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x37f9c132 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x381731f1 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x38200dca devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x382e7f97 btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0x38525078 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x38620e38 gnttab_grant_foreign_access_trans_ref +EXPORT_SYMBOL_GPL vmlinux 0x389b28c6 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x38d578ef key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x38ee47e4 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x391dbf7a da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x396c4aaa __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x39911c5a crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0x39fb6c3e xen_swiotlb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x3a14c4c7 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x3a15c5e5 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x3a1f6174 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a4a77d2 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a61e001 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3a6334d2 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3a90ac01 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x3a967e5f fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x3aafb559 regmap_fields_write +EXPORT_SYMBOL_GPL vmlinux 0x3ad0e201 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x3ad82802 of_property_read_u32_index +EXPORT_SYMBOL_GPL vmlinux 0x3b8f4643 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x3b937e89 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x3b97a3b8 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x3b9d641d xen_swiotlb_unmap_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x3bb5a29a rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x3be92f94 sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0x3c12024d ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x3c28d4f2 tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0x3c675680 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x3c6a4dde xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0x3c8424a0 clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c8d28cc of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3ca98a9b platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x3ccffec8 of_irq_parse_one +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cfec542 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x3d327282 regmap_update_bits_async +EXPORT_SYMBOL_GPL vmlinux 0x3d385e74 pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0x3d38fc2e sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x3d589f32 __mmu_notifier_invalidate_range_start +EXPORT_SYMBOL_GPL vmlinux 0x3d65c324 trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3db1c6b2 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x3db4d942 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x3db4ff54 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x3db8b98d crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x3dbedba1 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x3dc526a9 arizona_of_match +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3dedadda scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x3df51169 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x3dfd36df serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x3e16136e simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x3e2fa31f wm8997_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3e30aef0 irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e971b8d regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x3ea41a09 bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0x3efa1655 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x3efb2607 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3efed04a pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x3f06641f debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x3f0ebc0a sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0x3f334e35 bio_trim +EXPORT_SYMBOL_GPL vmlinux 0x3f7bd41a debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3fb768ad fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x3fc346c0 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x402f2239 pci_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4045c494 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x405ad693 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x40990653 smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x40a228db regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40c4541d power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x40ca1095 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x40d0e198 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40d6cfd4 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x4137d01c bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x416c0f72 pwm_disable +EXPORT_SYMBOL_GPL vmlinux 0x41731237 spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x418dbf55 inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x41a22c48 devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x41ba5034 spi_master_resume +EXPORT_SYMBOL_GPL vmlinux 0x41bdb7a1 regmap_update_bits_check +EXPORT_SYMBOL_GPL vmlinux 0x41cae6ac security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x41d81c5d of_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x41f26ef2 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0x42006a6b device_register +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x4240c0e3 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x42739cc9 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x4276efee register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42c6ce57 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x42c725ab wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x42e882fc page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x430e5257 of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0x431e1907 of_property_read_string_helper +EXPORT_SYMBOL_GPL vmlinux 0x4340c6b8 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x437b3abf irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x439b69ae ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x43a515da seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x43a53735 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x43b466b0 gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL vmlinux 0x43f09716 regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x440270dd iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0x44319b39 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x444e4238 ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x4459b84d sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x447bd16c regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x44812b4b tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x4494160a ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x44a793ab HYPERVISOR_grant_table_op +EXPORT_SYMBOL_GPL vmlinux 0x44dbabf4 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x44e59f71 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x450fb522 kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x452ccdc3 pwm_set_polarity +EXPORT_SYMBOL_GPL vmlinux 0x4540e24c crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x454c15ae __smp_call_function_single +EXPORT_SYMBOL_GPL vmlinux 0x45746f2c virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4576337f atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x45775382 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x457b77ca of_fixed_factor_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0x45892344 crypto_lookup_aead +EXPORT_SYMBOL_GPL vmlinux 0x45afd0eb blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x45b5f7bb device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45e541c9 max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x460f7531 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x461a2e5d clk_register_divider +EXPORT_SYMBOL_GPL vmlinux 0x465118cc stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x46529c95 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x4680ffbd ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x4688d1a5 perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x46cde2c2 extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x46f506ca regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x4705a727 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x470ad9e0 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0x470fa426 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0x471daf86 clk_register_divider_table +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x476877c5 __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x479f5b4c fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x47d6eb89 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x47d71ade device_attach +EXPORT_SYMBOL_GPL vmlinux 0x481b5999 sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL vmlinux 0x486cbca6 xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x487eb945 thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x488c87d0 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x48b403ea alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x48b8f0e8 key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x492805ba gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0x493b77af crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x49450b0b ping_proc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4969abf5 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x498d293a trace_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x49903b68 ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49a2db19 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x49e7a3e3 kvm_vcpu_init +EXPORT_SYMBOL_GPL vmlinux 0x4a8d1a50 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x4a90160e bprintf +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4abfa7ad da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x4ac8a450 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x4ad75526 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x4affd08b put_compat_timespec +EXPORT_SYMBOL_GPL vmlinux 0x4b0fb811 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x4b2c4a41 regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x4b352a4b da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4b9271fe kvm_vcpu_block +EXPORT_SYMBOL_GPL vmlinux 0x4baab4eb devres_get +EXPORT_SYMBOL_GPL vmlinux 0x4bc28782 of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x4bc4d91f ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bc6cd38 blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0x4bd8763c bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x4c09611b wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x4c0e74eb sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x4c155725 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x4c1a4f1b relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x4c26dbf6 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x4c293558 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x4c2e1f24 clk_disable +EXPORT_SYMBOL_GPL vmlinux 0x4c602bf1 __blkg_release_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4c6441ca regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c7fda1d iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x4c943844 pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x4ca4c9df clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x4ca60438 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x4ccbc094 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0x4cdb337e regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x4d225e2b gpio_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x4d45281d ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x4d9f0688 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x4db5a225 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x4de86eb6 proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0x4df41498 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e113519 elf_hwcap +EXPORT_SYMBOL_GPL vmlinux 0x4e173055 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x4e242f5f pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x4e2b9689 ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x4e2e9cbc ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x4e539883 sec_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x4e59252e __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x4e655cb8 sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x4e8d5cc9 sdhci_pci_o2_resume +EXPORT_SYMBOL_GPL vmlinux 0x4ea74415 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x4ec0799e crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f020dee public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x4f16eea7 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x4f26b6ad blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x4f455cf8 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x4f7768dd inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x4f9f164c call_filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x4fd3286f crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fda1a9b pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4fef5ea6 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x50058519 irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x5005b69e btree_update +EXPORT_SYMBOL_GPL vmlinux 0x5026585c xen_irq_from_gsi +EXPORT_SYMBOL_GPL vmlinux 0x503a7ca5 __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x50532e5f tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x50601122 of_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x506691f1 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x50694d1a of_phy_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x506ddebc ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x506ef514 regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f3c95f key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x510921cb unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x51386c1f nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x51837291 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x5185f0ba rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518d290b pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x51a84ef6 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x51abf40e sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x51ca565b i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x51e86889 udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL vmlinux 0x522f538b tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x5272d8bc __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0x52941c5d tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0x52997d00 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x52a41251 __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x52ce74d6 pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x52e9d78c tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0x533923da tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x5353e230 vchan_dma_desc_free_list +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53a2f6a1 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x53cb2800 __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x53da2e8c wm5102_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x53ea4d91 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x53f4686b kvm_clear_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x5407f31e regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x54215db5 visitor64 +EXPORT_SYMBOL_GPL vmlinux 0x545f8f6f irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x547db1a9 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54b61562 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x54b9b499 ping_seq_fops +EXPORT_SYMBOL_GPL vmlinux 0x54d35405 arizona_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x54dbda41 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x55093fb3 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x551ad626 tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x5528d77a extcon_set_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x555834a4 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x555f9d59 get_kernel_page +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x55cc8350 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x55e30fc8 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x5606adb5 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x56131717 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x5614818e ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x561e4b77 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x561e6803 blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x5645efe1 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x5646c222 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x5683dfe5 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x56886b19 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x568bbcba vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x5692386f gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x569241f0 mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x56bd80e2 pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x56bf3b85 virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0x56d697ce cpu_up +EXPORT_SYMBOL_GPL vmlinux 0x56dd4968 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56ee1275 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x57231f45 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x572d62e1 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x573da4a4 xen_swiotlb_sync_single_for_device +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x57611ee5 arizona_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x5787d717 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x578daa7d thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57e6e0f0 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x58122ae0 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x5839cbf3 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x58413099 ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x584612bb dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x58635504 put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x589e4569 syscon_regmap_lookup_by_pdevname +EXPORT_SYMBOL_GPL vmlinux 0x58a48fda ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0x58a51884 devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x58dfd14b driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x58e14f15 HYPERVISOR_event_channel_op +EXPORT_SYMBOL_GPL vmlinux 0x591ad353 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x591bbcdc security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x5947abbe max77693_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x599c6967 __of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0x59a6e91d clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x59b2adbf input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x59b93f92 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x59cc814e irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x59e2743e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x5a08e41a regmap_field_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x5a1d9422 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x5a22018f fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a4aea8c shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a85696b class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x5a8f3b69 of_irq_parse_raw +EXPORT_SYMBOL_GPL vmlinux 0x5ab5a8c4 thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0x5aec9763 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5b185f9c device_del +EXPORT_SYMBOL_GPL vmlinux 0x5b3e55a5 ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0x5b4cc4f6 ping_close +EXPORT_SYMBOL_GPL vmlinux 0x5b4e379c of_prop_next_u32 +EXPORT_SYMBOL_GPL vmlinux 0x5b749ada free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x5b8c9248 tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0x5ba29ee7 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5bd1c03f ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x5c46351d crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x5c4f9067 css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x5c50bd33 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x5c6f9048 of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x5c7d72cc single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x5cbee3eb call_srcu +EXPORT_SYMBOL_GPL vmlinux 0x5cc10292 regulator_can_change_voltage +EXPORT_SYMBOL_GPL vmlinux 0x5ccc1330 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x5cdc511e kvm_vcpu_cache +EXPORT_SYMBOL_GPL vmlinux 0x5cec62e9 regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x5ceecd9a bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x5d1098c6 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x5d12e48f input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x5d243e01 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x5d2bfe7f dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d763384 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x5d77952d hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x5d7ac152 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x5d9a94da xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0x5dabe277 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x5dc46956 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x5dc9706e rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x5e0c283e tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x5e1dc646 serial8250_rx_dma +EXPORT_SYMBOL_GPL vmlinux 0x5e3e3123 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5e51cd74 swiotlb_nr_tbl +EXPORT_SYMBOL_GPL vmlinux 0x5e52444a clk_register +EXPORT_SYMBOL_GPL vmlinux 0x5e56604e blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0x5e8cfedc ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x5ea3ea77 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x5eacc13c ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x5ed68630 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x5edfe180 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x5eec1af2 regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0x5ef4ecb2 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x5efbd9d9 regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x5f1fc347 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x5f21b4b3 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f419491 gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x5f5e80aa srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x5f66f9f6 regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0x5f74340b sec_reg_update +EXPORT_SYMBOL_GPL vmlinux 0x5f77988c sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x5fe3b85a regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x5feb776c fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x5fed5135 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x60204561 device_move +EXPORT_SYMBOL_GPL vmlinux 0x60442822 phys_to_mach +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x60673cbd swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0x6094685f wm8997_irq +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x60b4c42f public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x60bb40f7 irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x60c9bee2 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0x61284424 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x61489485 sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x615e6910 dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x61710f64 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6183ff15 sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x618edb42 dma_buf_end_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x62166736 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x621ec3d7 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6232fe53 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x628f560d ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x6290025e virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x62b374d1 sock_update_netprioidx +EXPORT_SYMBOL_GPL vmlinux 0x6318757f mdio_mux_uninit +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x632cc12c skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6375dd4c __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x6376cbbd rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x6390efda of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x639dd329 xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x63bb1718 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x63c59b43 ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x63cecf61 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0x63ed1eb5 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x63f9fae0 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0x64194e97 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x641cefd8 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x6427661d ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x646a331b da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x6474a43d fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0x647537f3 pl320_ipc_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x64809f6d pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x649f49cb perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x64aba70c wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x64b282e8 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x64eb0290 subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x651037b5 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL vmlinux 0x655b305f perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65e8a7aa pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x6607f1d8 blkg_stat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x6609f7cd regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0x660e47c0 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662a0c3f x509_get_sig_params +EXPORT_SYMBOL_GPL vmlinux 0x663c16d6 gnttab_grant_foreign_access_subpage_ref +EXPORT_SYMBOL_GPL vmlinux 0x6663b68d sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x6672b2c4 subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x66825482 cgroup_taskset_cur_css +EXPORT_SYMBOL_GPL vmlinux 0x6683b05b ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x669c5ed2 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x669d803b ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL vmlinux 0x66ab55c2 btree_merge +EXPORT_SYMBOL_GPL vmlinux 0x66cec938 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e019a7 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x66f8dd33 phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL vmlinux 0x66fffbfd con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x670913d3 tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x670fca3b pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x6739a503 balloon_set_new_target +EXPORT_SYMBOL_GPL vmlinux 0x674e13e1 public_key_destroy +EXPORT_SYMBOL_GPL vmlinux 0x676bc63d bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x677dbbf6 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x679cbf9e blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x679e2b19 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x67e682f8 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0x67e68d23 vchan_tx_submit +EXPORT_SYMBOL_GPL vmlinux 0x68428e33 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x687934e9 gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x68a6e1c1 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x68a9c0a3 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68b49858 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x68e6a1db dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x690338ce __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x691d46ef fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x6921aa34 compat_put_timeval +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x694aa25f pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x695de9e9 percpu_ida_alloc +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x698d4af3 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x699e8d83 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x69a53292 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x69ab256b class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x69b42c48 arizona_clk32k_disable +EXPORT_SYMBOL_GPL vmlinux 0x69da3a1a ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a441db8 __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a66018f input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x6a6cafd2 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x6a7331ef cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0x6a87fac2 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x6acf8d30 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x6b044504 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x6b20b5c6 ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b459722 nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0x6b58af6f fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0x6b67e41d attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x6b6edd43 regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x6b8ff9ad i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6b9e7ad7 of_clk_src_simple_get +EXPORT_SYMBOL_GPL vmlinux 0x6be569fe ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x6bf7860a sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x6bfca948 amba_device_add +EXPORT_SYMBOL_GPL vmlinux 0x6c0628f4 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x6c0b8273 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x6c1b09ab gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x6c20eb5e blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x6c47008b kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c4dace4 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x6c7805b8 of_get_regulator_init_data +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cb0223d ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x6cd21997 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x6cd4ea62 wm5110_irq +EXPORT_SYMBOL_GPL vmlinux 0x6ce08985 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x6d2785b5 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d47f5d8 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x6d9e5425 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x6dc0d313 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x6dd41079 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6ddb55af regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0x6de0ba93 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x6deb1f35 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x6df0822e pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x6df8f4cd pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x6e2fd275 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x6e383393 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x6e43235f sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6e49abba sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e6c4140 uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6e907efc crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x6eac9f03 reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x6eb471ea adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x6ee47cd6 wait_for_tpm_stat +EXPORT_SYMBOL_GPL vmlinux 0x6ef25295 kvm_set_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x6ef43729 class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x6ef5c1e8 wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x6f026a15 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x6f1522aa sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x6f36f606 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x6f550384 subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x6fc21a0c xen_swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x6fd17fe3 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x7006b769 phy_power_on +EXPORT_SYMBOL_GPL vmlinux 0x7021c6c2 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x7035df3c tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x7043c7f7 device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x7064da8b btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x706b94d4 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x70719c69 ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x709b13f7 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x70a94198 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x70d336e6 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x710bde7d inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x715ea90b dma_buf_kunmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7169d59b preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x717fafd4 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x71930ed3 of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x71e4479b md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x71ea465e ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x71f61277 dma_buf_vunmap +EXPORT_SYMBOL_GPL vmlinux 0x7242bc50 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x7261f842 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x72637904 clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x727b5e53 regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x72a20fba skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x72bfcffb ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x72d5d355 ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x73013896 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x73824270 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x73a421c3 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73c2554f __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x73c832f2 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x7422c95e gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x742def44 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74571a7c tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0x747764dc ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74b39d62 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x7502041f xen_swiotlb_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0x75133f6e visitor128 +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x75362ea9 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x753697a8 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x753dbee8 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x753e5420 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x75718ac1 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x757b49d2 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0x757da333 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x758a782e blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x75b6350c regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x75c8c12a tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x75d12e37 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x75d57521 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x75e8ca8f __put_net +EXPORT_SYMBOL_GPL vmlinux 0x76147aeb __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x7614f078 devm_rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x762ee15a regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x76aa65bb sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x76b8f46b inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x76b9da74 extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x76d07d6e gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x76df1249 __mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x76e663dd rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x76e7cbbd skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x76f6d6a9 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x76fb847e debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7712b3c1 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0x772975ff fuse_get_req_for_background +EXPORT_SYMBOL_GPL vmlinux 0x7729cbdd task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x775db372 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x7777307d balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x77a82d02 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x781919f9 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x782d349c of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0x786af95e key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x787c882b lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x7889bab9 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0x78a57dce pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0x78cfc777 pci_restore_ats_state +EXPORT_SYMBOL_GPL vmlinux 0x78d5e937 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x790541cb serial8250_tx_dma +EXPORT_SYMBOL_GPL vmlinux 0x7915e0e5 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x792bba74 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x7938676f tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x7975466a ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x798ab6b9 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x799dc464 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x79afa78a modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x79c78428 devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x79eda1eb sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x7a01ef6d mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x7a145720 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x7a319404 clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x7a3a2b70 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x7a6a4cbe dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL vmlinux 0x7ab2f9f5 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x7adf8776 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b2163bd HYPERVISOR_tmem_op +EXPORT_SYMBOL_GPL vmlinux 0x7b23dc7c i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x7b44034a sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x7b62e74d tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x7b645eac bmp085_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x7b7967b0 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x7b90d1a9 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7bac8f5d gfn_to_memslot +EXPORT_SYMBOL_GPL vmlinux 0x7bc71afb bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x7bf0d8fb spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x7bf489f7 blkg_lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x7c01bc00 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x7c147be2 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7c227088 clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x7c2a8749 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x7c346357 pkey_algo +EXPORT_SYMBOL_GPL vmlinux 0x7c517ebc ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x7ca7ba30 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x7cacf8ac kvm_release_page_clean +EXPORT_SYMBOL_GPL vmlinux 0x7cc1b7fd max77693_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7cc7de1c x509_check_signature +EXPORT_SYMBOL_GPL vmlinux 0x7ce2ce3b phy_pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0x7ce5b92a gpiod_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cf471bb pci_bus_sem +EXPORT_SYMBOL_GPL vmlinux 0x7d00a704 lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0x7d0ac4e2 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x7d245896 verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x7d397cc7 gpiod_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d663883 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x7d6d557e serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dfe4adf spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x7e4b9ebf tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0x7e743214 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x7e8d6e86 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x7e9e7b08 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x7ea1a2bc probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x7ec16677 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x7ecc75a8 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x7eeab4c7 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x7f18dfe9 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7f210f49 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x7f4cf876 balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x7f7bd56d crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x7f800b4c ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x7f83f8a2 virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0x7f9236c9 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x7fa4b4a2 of_pci_parse_bus_range +EXPORT_SYMBOL_GPL vmlinux 0x7fd38778 armpmu_get_max_events +EXPORT_SYMBOL_GPL vmlinux 0x7fd3dd69 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x8027b266 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x802cdcce debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x80357887 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x80458134 da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x80516ccb debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x80698a68 pci_ioremap_io +EXPORT_SYMBOL_GPL vmlinux 0x8073f748 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80d073be debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x80fc661c crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x811c56fb ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x8140842a gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x8190f687 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x81a2a2e7 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x81df631a nl_table +EXPORT_SYMBOL_GPL vmlinux 0x81e8e4e6 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8207ec10 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x820bc639 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x82242c9c pwm_can_sleep +EXPORT_SYMBOL_GPL vmlinux 0x822abfe0 __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8241c49b hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x82513f02 devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x8253f88b extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8267d8ac srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x826a686e xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82969ba7 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x82c76f04 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82db4aef devm_pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x82f9205f posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0x82f9b765 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x82fe6743 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x831872d3 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x8318eb66 clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x834616bb sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8377734d crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x8381809d irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x8394f8eb kobj_completion_init +EXPORT_SYMBOL_GPL vmlinux 0x83a2def3 irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0x83f705ba wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x840c0fbb ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0x8411546c crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x843209c4 cm_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x8449c66b crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x84581287 of_irq_parse_pci +EXPORT_SYMBOL_GPL vmlinux 0x8487a2b6 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x84a7b034 regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x84ec1d40 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x8507cbcf shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x85138207 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8528b387 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x852e568d of_get_nand_ecc_mode +EXPORT_SYMBOL_GPL vmlinux 0x85357d30 fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0x8568f93f amba_apb_device_add_res +EXPORT_SYMBOL_GPL vmlinux 0x8598686f init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x85b14d33 clk_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85ce0446 xen_remap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x85dbc345 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x86150867 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x86564268 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x86610877 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x866b9687 wm8997_aod +EXPORT_SYMBOL_GPL vmlinux 0x8678d4b2 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86b9d3b6 virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86fa33e4 pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x8702e548 process_srcu +EXPORT_SYMBOL_GPL vmlinux 0x870e16b7 xen_test_irq_shared +EXPORT_SYMBOL_GPL vmlinux 0x8730d330 __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x87400ef6 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x8767d1a5 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x87cddcdd page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x87d011cb pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x87df71b6 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x880bc66b devm_regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8834564a list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0x88362883 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x8839a22e thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x883c2740 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x885adde7 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x888935fa alarm_start +EXPORT_SYMBOL_GPL vmlinux 0x889baa1e regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x88b5647c trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x88c302a1 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0x88c5b0de devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x88de24de dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x88ffc886 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89502f0c gnttab_subpage_grants_available +EXPORT_SYMBOL_GPL vmlinux 0x896d824c of_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x89757bb2 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x898817ff da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0x89b236f3 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x89e60173 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x8a0ef243 lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0x8a0f3e74 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x8a2b14ba wm5110_aod +EXPORT_SYMBOL_GPL vmlinux 0x8a32b597 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x8a337144 serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a7a4f86 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8a9bdfe3 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x8aa2ac3a sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8aceb0b3 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8ae152b5 of_get_nand_bus_width +EXPORT_SYMBOL_GPL vmlinux 0x8aebed97 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x8b04668e bind_interdomain_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x8b4afc0e ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x8b66f9e0 xen_platform_pci_unplug +EXPORT_SYMBOL_GPL vmlinux 0x8ba5afe9 HYPERVISOR_memory_op +EXPORT_SYMBOL_GPL vmlinux 0x8bb7b4aa crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x8bffa956 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c12e068 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x8c442be2 gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0x8c44db52 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x8c452448 pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x8c4ce60c sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x8c54e603 tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x8c5e86e1 tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x8c659b6c btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0x8c99178b kvm_read_guest_cached +EXPORT_SYMBOL_GPL vmlinux 0x8d04bad8 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x8d0cf27a dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x8d2fee1b irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x8d31efba tpm_read +EXPORT_SYMBOL_GPL vmlinux 0x8d36c088 look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0x8d39e092 irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x8d582f21 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x8d6a1f16 subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x8d8ff601 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL vmlinux 0x8db92346 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8dbf7aaa privcmd_call +EXPORT_SYMBOL_GPL vmlinux 0x8dc2e4a5 skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x8dc4014d ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8dd53556 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x8dee7453 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x8dfafb93 xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x8dfbff58 powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0x8e197555 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x8e1c8e3f sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL vmlinux 0x8e414065 vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x8e63a7d8 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x8e7bd41e devm_phy_create +EXPORT_SYMBOL_GPL vmlinux 0x8e7d67da arizona_of_get_type +EXPORT_SYMBOL_GPL vmlinux 0x8e92c5ef regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x8e93ae7f pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x8e9c7933 gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x8eabab88 sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x8eb42769 iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0x8ec3f7da hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x8f1cec4e __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x8f2c829e xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8f3dcac5 devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8f4996c8 css_rightmost_descendant +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f7164d0 regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x8f8a365c ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x8f902a2c gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x8faac947 clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x8fdbc9ee blk_queue_bypass_start +EXPORT_SYMBOL_GPL vmlinux 0x8fdc79c2 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x8feaea85 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x8ff59eaf devm_regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x8fffd63d ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x90228869 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x903b2966 proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0x903b8db9 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x903ce165 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90705b7f syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x908b9bac __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x909dab4b platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90b44c74 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x90b763f1 HYPERVISOR_console_io +EXPORT_SYMBOL_GPL vmlinux 0x90cdb192 pwm_enable +EXPORT_SYMBOL_GPL vmlinux 0x90d1a32c platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x910581be platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x91286982 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x915cd3b7 phy_init +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91ae55f0 xenbus_dev_groups +EXPORT_SYMBOL_GPL vmlinux 0x920aacca nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x920cc389 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x923a402b adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x926f3d00 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x928fed09 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x9291e3a2 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x92c46479 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92db8f68 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x92eeb078 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x930286f2 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x9312d80e evtchn_put +EXPORT_SYMBOL_GPL vmlinux 0x93254232 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x932bf07f __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x932e1d9e crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x93408846 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x9352a346 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x935a0fa6 evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x9385d8ed skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x9386e52a rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x939892ef led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x93c4ea37 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x93ce006e wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x93e93271 yield_to +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x949f7342 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94d4bf2d relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x94e62d2e __set_phys_to_machine_multi +EXPORT_SYMBOL_GPL vmlinux 0x951b47b3 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x95290507 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x954b4bed mdio_mux_init +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956039c9 ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x956a5257 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0x9576bbd1 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x95d5cf5f devm_phy_put +EXPORT_SYMBOL_GPL vmlinux 0x95ed8bf3 regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x95ff545c ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x9625e652 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x96299b82 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x964add15 xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x965d853a unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x967628a7 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x9683dbf7 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x96b4d03c inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x96c70ef3 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x96dcf2ce swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0x96de9527 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x9717d0fe regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0x971e4bd0 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x9730c462 gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9745c52a of_fixed_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0x974c1dd1 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x97f04b2c inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x981d8f43 alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9896ca51 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x98a6b069 dma_buf_fd +EXPORT_SYMBOL_GPL vmlinux 0x98d72a69 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x98fa1e20 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x995bb2b0 sysfs_get_dirent_ns +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9973add9 __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x998cb520 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x99a54fbf rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x99d406c3 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x99f0c114 pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0x9a0df4e0 tpm_write +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a89dbf7 lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x9aca444b get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x9aca9272 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0x9ad22d5f pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x9ad4693f __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0x9ae185e5 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9af1aadd ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x9b28d8e0 regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x9b3999c7 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x9b531167 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL vmlinux 0x9b7562ce dma_buf_mmap +EXPORT_SYMBOL_GPL vmlinux 0x9b8a15d9 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x9b8dc9b9 register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x9ba2bb2b gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x9bb5fef5 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x9be9732e pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9c050dfa debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x9c220df2 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x9c6ee195 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0x9c95bbb1 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x9cba785a pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x9cdd3db0 ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x9cf44f85 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d138533 percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x9d1a7783 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x9d1bf10a netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d38b7f2 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x9df40229 sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0x9e0b8796 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x9e16f628 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x9e2dd70a fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x9e3298b5 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9e55bbc5 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x9e61ddc9 btree_init +EXPORT_SYMBOL_GPL vmlinux 0x9e63a264 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x9e8089cb blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x9e86e8b1 kvm_read_guest +EXPORT_SYMBOL_GPL vmlinux 0x9e9af653 devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x9ed01572 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ed9168d kvm_get_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0x9ef7dfda btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9f0664bf dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x9f0c1975 devm_regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9f2ab3a9 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x9f3f98e1 of_get_nand_on_flash_bbt +EXPORT_SYMBOL_GPL vmlinux 0x9f517986 HYPERVISOR_hvm_op +EXPORT_SYMBOL_GPL vmlinux 0x9f691b58 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9f7eb767 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x9fa6353f input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x9faf4f43 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x9fbe0937 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x9fc80a68 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fe3a5aa dma_buf_begin_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa0343f26 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL vmlinux 0xa065c9e3 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xa077e784 regmap_fields_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xa07f9e08 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0xa08ea993 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xa0947f32 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xa0b657da devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0xa0c7d161 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xa0cb82cb __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0xa0e25b4a ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa0e688a2 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xa11216be xen_store_domain_type +EXPORT_SYMBOL_GPL vmlinux 0xa12d929d desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0xa1421367 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0xa146c12d dma_buf_get +EXPORT_SYMBOL_GPL vmlinux 0xa153bc2d crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0xa17afff1 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xa19e0f45 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xa1a9efe5 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xa1af93a2 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa1d135c2 kvm_get_kvm +EXPORT_SYMBOL_GPL vmlinux 0xa1f79553 xen_create_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xa2107b22 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xa24d4f0c bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa269d8ca gfn_to_hva +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa2895102 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xa28a5a25 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xa294b860 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xa29c3d90 ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0xa2a2681c scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xa2b29751 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xa2b48d16 btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0xa2b9c993 clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0xa2c023a6 sdhci_pci_o2_fujin2_pci_init +EXPORT_SYMBOL_GPL vmlinux 0xa2ea7bc5 pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa389a49a profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0xa3bc17a1 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xa3c641d9 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xa3cba902 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xa3d63d3c regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa3f8569a debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xa3fafefd devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xa407f304 gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0xa415f712 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa43643af ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xa43c2522 regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xa452f2a4 xen_pirq_from_irq +EXPORT_SYMBOL_GPL vmlinux 0xa4c06276 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xa4d839c2 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0xa4e57dd4 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xa4e67ae7 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xa4ea04ee of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0xa4ee9d56 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xa4f62a7d pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xa50ab8a5 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xa52447df tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0xa5449d2d __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0xa54815e7 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xa54aee12 da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xa554b36f usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0xa5560616 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0xa56ac817 dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0xa5baff28 wm8400_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xa5e2e5cc blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5f389eb of_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xa625110d kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0xa66f336f arizona_dev_init +EXPORT_SYMBOL_GPL vmlinux 0xa6a0a273 max77693_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa6c9c05b sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa709752b sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xa724257f init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xa75312bc call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0xa759aeba devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa76a2b0f ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xa778ca83 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xa7866d99 __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xa7da0ab2 wm8400_block_read +EXPORT_SYMBOL_GPL vmlinux 0xa7e29abc spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa802af08 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0xa82d8aa2 serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa85346f5 pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xa872277b device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xa87ea725 vchan_init +EXPORT_SYMBOL_GPL vmlinux 0xa890c9e2 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xa8b1bbe3 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xa8fbbd0c dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xa8ffe067 xen_swiotlb_dma_mapping_error +EXPORT_SYMBOL_GPL vmlinux 0xa926aae2 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xa9422da4 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xa9680839 spi_async +EXPORT_SYMBOL_GPL vmlinux 0xa980af16 RSA_public_key_algorithm +EXPORT_SYMBOL_GPL vmlinux 0xa9a82042 gnttab_trans_grants_available +EXPORT_SYMBOL_GPL vmlinux 0xa9aef2e1 gfn_to_hva_memslot +EXPORT_SYMBOL_GPL vmlinux 0xa9ca02f8 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xa9dfc749 irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0xa9e18049 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9fb74a2 of_device_is_stdout_path +EXPORT_SYMBOL_GPL vmlinux 0xa9fc3f54 gnttab_grant_foreign_access_trans +EXPORT_SYMBOL_GPL vmlinux 0xaa4a0a2c blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xaa813cc1 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xaa8e6c2c crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xaa998577 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaab20d3d ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab0e3225 clk_register_mux_table +EXPORT_SYMBOL_GPL vmlinux 0xab57a560 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab81ef01 devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xab8ad78d crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xab8ceced gnttab_batch_copy +EXPORT_SYMBOL_GPL vmlinux 0xab90cd93 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xabced1aa trace_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0xabde8f25 regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xabfcd92d scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xac0b6b24 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0xac2f90f1 ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0xac5aca69 thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0xac69d0c9 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xaca539ec tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xacb479ce inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xacdbe89a da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0xad039c54 mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xad1664f7 digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0xad376749 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0xad489fa3 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xad78d2b6 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xad901b61 phy_pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xad9f0a90 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0xadc79b63 xen_swiotlb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae2554c4 of_clk_src_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0xae4373d0 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae74da2d dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xae76e082 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae88f979 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xae9409b4 register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xaed8d6be ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xaeed8ed1 irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0xaefa0451 irq_create_direct_mapping +EXPORT_SYMBOL_GPL vmlinux 0xaf0f9a80 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0xaf1331fd uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xaf16eba5 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xaf1e9ad2 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xaf2416fa bmp085_remove +EXPORT_SYMBOL_GPL vmlinux 0xaf53feba virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0xaf611a21 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xaf7ed8cf srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xaf8776d2 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xafb07262 __pfn_to_mfn +EXPORT_SYMBOL_GPL vmlinux 0xafcd1726 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xaff2383f cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xb011b1bf i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xb02ac411 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb047c95b clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0xb060d5ef xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0xb08792f1 vchan_find_desc +EXPORT_SYMBOL_GPL vmlinux 0xb090df2f __module_address +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0bd24b5 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xb0d1656c gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0xb0fd5ab4 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb12874fd __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb140f189 of_pci_msi_chip_add +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb1a7e3f6 clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1b67bb7 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb1c0c1c2 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb1fd1273 devm_phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb2091e44 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb251cdb1 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xb260bfa5 unix_table_lock +EXPORT_SYMBOL_GPL vmlinux 0xb2634a44 tcp_peer_is_proven +EXPORT_SYMBOL_GPL vmlinux 0xb28dc62a inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xb2bcebff __netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0xb2d8472e tcp_fetch_timewait_stamp +EXPORT_SYMBOL_GPL vmlinux 0xb2efb877 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xb2f5b222 dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0xb3386cb2 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xb3444d17 devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xb347bb2c work_busy +EXPORT_SYMBOL_GPL vmlinux 0xb37edc08 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0xb383c4e3 clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0xb39ed498 pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0xb3c0937b uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xb3cbc774 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xb3d95d2b ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xb3f2dbc8 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb413a602 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xb43d1991 list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb46af994 gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0xb4a9764b ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4bfe053 regmap_field_write +EXPORT_SYMBOL_GPL vmlinux 0xb4c64617 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb51b3924 devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0xb51b53ef init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb5380b3a blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xb545188e rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xb56abab6 _submit_bh +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5a0e11e lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0xb5b50462 kvm_init +EXPORT_SYMBOL_GPL vmlinux 0xb5cb8145 hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb5f62b2c skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0xb5ff5d71 xen_swiotlb_set_dma_mask +EXPORT_SYMBOL_GPL vmlinux 0xb602e924 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xb61dde62 kvm_flush_remote_tlbs +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb63a75d2 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xb67712e9 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb67b2219 cm_suspend_again +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6b1f68a tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0xb6b8c8fb fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xb6c59e3d crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xb6c635af wm5110_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb6f3d3ee ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xb71406aa devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb732ea87 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xb734fa7c spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb73b600a hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0xb75eac61 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0xb761aa42 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xb78fda1d xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xb7a680b8 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xb7b4b614 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xb7b5560b fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0xb7d0b846 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xb7d7dc12 cgroup_taskset_next +EXPORT_SYMBOL_GPL vmlinux 0xb7e65370 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb803c8de crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xb86f02c3 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xb8a302ad gfn_to_pfn_prot +EXPORT_SYMBOL_GPL vmlinux 0xb8addb37 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xb8baebf5 vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0xb8c11bd2 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xb8c9b89f ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0xb8d48bbd get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb922b68f driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb92a6a18 ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xb92ee343 md_run +EXPORT_SYMBOL_GPL vmlinux 0xb94827aa regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9a4bde0 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xb9a8fffb __mmu_notifier_invalidate_range_end +EXPORT_SYMBOL_GPL vmlinux 0xb9ab17d8 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xb9b86365 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c07c3f crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9c58399 bmp085_probe +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9f7919b netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0xba0052e6 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xba2af022 kobj_completion_del_and_wait +EXPORT_SYMBOL_GPL vmlinux 0xba2cea04 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xba75952b ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0xba76f005 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xba984be9 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0xbac1177a spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xbad43815 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xbad739a3 da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb15b579 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xbb4ce1cb fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0xbb55f496 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0xbb6b1e9f regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0xbb80944c xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0xbbb3f98c ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xbbfb5e3a devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xbc043370 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0xbc5c56f2 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xbcac6160 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbcae748f unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0xbcc37efb ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xbcc701ab ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xbcc99a8c fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xbce48129 regmap_update_bits_check_async +EXPORT_SYMBOL_GPL vmlinux 0xbce64e58 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xbd03cd88 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xbd18d980 percpu_ida_destroy +EXPORT_SYMBOL_GPL vmlinux 0xbd2689ce crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xbd5cb8b9 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbd85c846 filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xbd8ce319 devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xbd905a1f simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xbd9796ee ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xbdaf5686 get_compat_timeval +EXPORT_SYMBOL_GPL vmlinux 0xbdca51ca wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbde49c4b __netpoll_free_async +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe18cc03 mmc_send_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0xbe320410 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xbe58bcfa mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xbe65f2af watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xbe82d94f spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xbea5ff1e static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0xbebaa0a6 of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xbed7c1f7 unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0xbf03645f blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf125142 alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0xbf42f113 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xbf45b854 xenbus_dev_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xbf8e151d phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xbf9505fb bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xc0219594 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc02ca593 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0xc03a654b memalloc_socks +EXPORT_SYMBOL_GPL vmlinux 0xc05a09b1 tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0xc076cb80 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0d01bc0 percpu_ref_cancel_init +EXPORT_SYMBOL_GPL vmlinux 0xc0d26387 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc0d43637 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xc0e96741 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xc11b4470 balloon_stats +EXPORT_SYMBOL_GPL vmlinux 0xc11b45c6 gpiod_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc12b0ace of_pci_find_msi_chip_by_node +EXPORT_SYMBOL_GPL vmlinux 0xc14c2824 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0xc164642e xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xc168260c pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xc16a93be led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc178dff3 phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc195af72 gpio_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xc19b29e2 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0xc1be49a8 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0xc1ea24e0 md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xc20f3f11 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xc21c3dd9 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xc21f5f80 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc22645ec regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc237eb74 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xc24d4165 tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xc256caac ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0xc2625c5f crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc27248f5 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xc2895214 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc2ae4a51 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xc2bd7249 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xc2be5a7a devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xc2be7d96 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc3462183 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc352cb02 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc356470b extcon_find_cable_index +EXPORT_SYMBOL_GPL vmlinux 0xc3573491 driver_find +EXPORT_SYMBOL_GPL vmlinux 0xc361d25c inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc3833cfd cgroup_add_cftypes +EXPORT_SYMBOL_GPL vmlinux 0xc383c8de __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xc385cb58 perf_num_counters +EXPORT_SYMBOL_GPL vmlinux 0xc3955b4e list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0xc399d112 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xc3c23dcf skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xc3e5ee9a wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc407a1d4 gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0xc415ecd8 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc4475403 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc449cdfe thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc47dd5ff ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xc48b1180 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4b840a0 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xc4e78b89 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0xc501726a device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc54d5cd9 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xc551af86 devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc5b53db2 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xc5c3b73f devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0xc5f3bfab rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xc601da70 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc6273e8a pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0xc62ff854 led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0xc63a1109 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xc6496e90 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xc64f52f6 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc663d09f ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xc66b83c2 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xc6705f76 crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0xc68709d5 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xc690866c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc69d7a2e ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc6c1cf8c stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0xc6fea3d6 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xc7002ac4 evtchn_make_refcounted +EXPORT_SYMBOL_GPL vmlinux 0xc715cd4e pstore_register +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc73fa817 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xc7649f9e serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0xc76b1d4d crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7c6391c mpi_set_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc7e39bca ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc7e84bdc pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xc7ff8927 spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0xc85822c9 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xc86e5786 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc881e4c4 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xc88543b2 __class_create +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8d26edf exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0xc8ec278c perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xc9420a5b regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc959be0a devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0xc9641b48 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0xc9745829 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xc990929e led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0xc99195b9 devres_release +EXPORT_SYMBOL_GPL vmlinux 0xc99539e5 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xc9ab2ddb kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xc9bd4f79 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xc9c47f7a regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xc9cfa97f of_pci_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca03b855 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xca7b61ce powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca8e44bb ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xca946187 of_clk_add_provider +EXPORT_SYMBOL_GPL vmlinux 0xcad9e62d irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xcae135a1 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xcafa1f3b skb_gso_transport_seglen +EXPORT_SYMBOL_GPL vmlinux 0xcafa6c98 clockevents_unbind +EXPORT_SYMBOL_GPL vmlinux 0xcb15eee9 sdhci_pci_get_data +EXPORT_SYMBOL_GPL vmlinux 0xcb184e90 extcon_get_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0xcb341b97 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xcb42ede2 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcb469d2b ddebug_add_module +EXPORT_SYMBOL_GPL vmlinux 0xcb62d1b9 subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xcb71f085 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xcb8424ef kvm_is_visible_gfn +EXPORT_SYMBOL_GPL vmlinux 0xcb9b162e clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0xcbb8db75 irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0xcbe027fc sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xcbe9a9db blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc4a1d4e blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0xcc4a9cab extcon_get_cable_state +EXPORT_SYMBOL_GPL vmlinux 0xcc4c0fbc ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xcc533352 thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0xcc6dc52e shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xcc8261cd regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0xcc85fcb6 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0xcc93c2e6 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xcc9c94ce gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0xcca48cee sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0xccbfabbe sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0xccc59c05 md_stop +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcd00829f gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xcd20508d tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xcd4ff392 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xcd6ac355 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xcd871b3c unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xcd8bf529 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xcd8c241e bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcdc8d471 phy_put +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcde5d33e mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xcde7a763 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0xcdeb3d91 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xce06c538 dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xce0b9b59 max77693_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xce18baf2 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0xce3f2b47 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xce46e140 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0xcea1d6a8 debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0xceb1f126 mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0xceed8c16 __set_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xcefba978 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xcefbfe03 devm_spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xcf17c42c of_irq_parse_and_map_pci +EXPORT_SYMBOL_GPL vmlinux 0xcf17feb6 dev_hard_start_xmit +EXPORT_SYMBOL_GPL vmlinux 0xcf2768d8 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0xcf3bdd96 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0xcf464218 regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0xcf4dad17 device_create +EXPORT_SYMBOL_GPL vmlinux 0xcf54ea93 async_unregister_domain +EXPORT_SYMBOL_GPL vmlinux 0xcf58a86a __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0xcfa8e0ba tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xcfb81af3 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfd5d9e3 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0xcffc961a map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xcfffcc00 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xd026d518 HYPERVISOR_vcpu_op +EXPORT_SYMBOL_GPL vmlinux 0xd0270d3b rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd05b3e54 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd0ae2538 serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0xd0b98f89 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0d750c3 btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0xd0eb3850 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xd14bc4d9 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xd160ae6b wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xd161813d __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1c21814 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0xd1edaf8d n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd22a3627 thermal_notify_framework +EXPORT_SYMBOL_GPL vmlinux 0xd2424b36 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xd242ddd5 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xd258217d clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0xd258b986 device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0xd269afa7 crypto_lookup_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2c45ea4 of_pci_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0xd2e023d1 regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0xd2f193d7 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xd2f7d740 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xd3051447 xen_swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd32a46fe md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd35a3c30 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xd35f6a97 kvm_put_kvm +EXPORT_SYMBOL_GPL vmlinux 0xd36e8e7a pci_reset_bridge_secondary_bus +EXPORT_SYMBOL_GPL vmlinux 0xd38f0b4f pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0xd3a5c7da smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0xd3b8ebf7 regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd463caa0 btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd4679214 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xd4b9262d of_pci_msi_chip_remove +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4cad45e clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xd4d3473f fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd50bf02c tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xd51461a1 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0xd51ff660 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0xd5688aeb sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xd59a0c89 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xd5b1f2a0 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd5bb81d5 amba_apb_device_add +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5bfda04 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd5e446fc kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xd5f617ff key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0xd62d41d1 kvm_resched +EXPORT_SYMBOL_GPL vmlinux 0xd632ef2a crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xd635fae0 device_reset +EXPORT_SYMBOL_GPL vmlinux 0xd63cd05a scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xd64518a4 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0xd670f167 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd6cfa924 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xd6dc7f53 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd77cf718 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xd792294d klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xd7933aa7 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7f2c996 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd83a8a83 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd87fc0a0 usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0xd8ff7d6a queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xd90542a4 blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd92582e7 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xd938d1f0 pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0xd942d353 ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0xd94bf790 gfn_to_pfn_async +EXPORT_SYMBOL_GPL vmlinux 0xd9979bdc hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xd99a2dac xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0xd99a6190 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xd9a34035 __clk_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xd9a88c4d ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xda039ba9 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0xda2b16d7 fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0xda3c6613 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xda4497a7 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0xda44cb37 setup_charger_manager +EXPORT_SYMBOL_GPL vmlinux 0xda48c788 dma_buf_kmap +EXPORT_SYMBOL_GPL vmlinux 0xda4972d4 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xda559dbf device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xda753f21 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xda7f21eb xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb040a4e spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb07f7c7 dma_buf_kunmap +EXPORT_SYMBOL_GPL vmlinux 0xdb15e736 tps80031_ext_power_req_config +EXPORT_SYMBOL_GPL vmlinux 0xdb440a96 unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xdb83af88 amba_device_put +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdba26274 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xdba80fc1 of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0xdbe6b1f7 put_device +EXPORT_SYMBOL_GPL vmlinux 0xdbe6e1a9 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0xdbf35036 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc0c56c2 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc1e15f1 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xdc2109ed devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xdc29a035 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdcbe8250 xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0xdcc79a66 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xdd17f782 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd391eff profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd51a651 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0xdd7bc7a0 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xddcab4e8 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xde298743 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xde443f69 list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0xde69778a pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xdea4fe2e ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xdea5a1a4 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xdeb21bbe inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xdeb4c4fc ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xdebe7303 cgroup_is_descendant +EXPORT_SYMBOL_GPL vmlinux 0xdec34935 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xdeccc9c5 input_class +EXPORT_SYMBOL_GPL vmlinux 0xdede6cec platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdf0d505a subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf25f24e gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL vmlinux 0xdf29b2bb leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xdf33e0f2 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0xdf5b84cf cgroup_taskset_first +EXPORT_SYMBOL_GPL vmlinux 0xdf7f7f7b extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0xdf851d8f tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xdfc5e79f regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xdfda5850 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe00bbe02 devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xe016cf9e init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xe01aaa45 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe098176e of_get_named_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0xe0a8004e i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0xe0b17576 virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0xe0e3147c HYPERVISOR_sched_op +EXPORT_SYMBOL_GPL vmlinux 0xe0ffa8d6 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0xe11dc72e i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xe13cf967 powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0xe162a86b led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xe1775ee7 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0xe19d2a44 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xe1c32794 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0xe1cca48b ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xe21f4fe7 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xe24b5ef4 spi_master_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe2982bc1 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xe2e7840d regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0xe2ed1658 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe30f1b4b sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xe33008d7 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0xe3436dc3 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0xe37e9c92 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xe395f3bb dev_get_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0xe3abc10a class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xe3ccb10b regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0xe41534ce bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xe41c91d3 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0xe4229fb2 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xe45a2459 sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0xe4731364 lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xe4995ab4 user_read +EXPORT_SYMBOL_GPL vmlinux 0xe4a06946 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xe4c4b28f gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xe4c4f842 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xe4c941ea sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0xe4e64793 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe4f71dea extcon_set_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0xe4f80020 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xe5242574 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xe52ae762 __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0xe53d056d klist_next +EXPORT_SYMBOL_GPL vmlinux 0xe5416d0e blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xe553cf0e rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe5ad2ccb regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xe5ae8262 regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xe5cc54c4 kvm_read_guest_page +EXPORT_SYMBOL_GPL vmlinux 0xe5d773b3 pwm_put +EXPORT_SYMBOL_GPL vmlinux 0xe5dc045e dma_buf_map_attachment +EXPORT_SYMBOL_GPL vmlinux 0xe5e4bd18 balloon_mapping_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe5eb4db7 pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0xe5fccba6 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0xe635981e ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xe63e7af5 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6c68334 ddebug_remove_module +EXPORT_SYMBOL_GPL vmlinux 0xe6c730a1 watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0xe6e0378c amba_ahb_device_add_res +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe7402218 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xe752e5fb regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe7751091 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xe77a32bb wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xe7a5a010 phy_pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0xe7ca33c9 xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0xe7e940de kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe8033b73 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe85d46cd alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xe860bdb3 ping_err +EXPORT_SYMBOL_GPL vmlinux 0xe87b7562 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0xe87c03fa ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe87c5888 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xe89bd243 ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xe8a96073 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xe8c08401 inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0xe8e42d01 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xe8f01ab1 __mfn_to_pfn +EXPORT_SYMBOL_GPL vmlinux 0xe90fef92 device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xe9104bba __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe956a75c pl320_ipc_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe9601971 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xe9604f26 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xe97ee687 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xe9933788 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xe9d286c5 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xe9ec2acc __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xea00afe7 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea2bda57 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea628c20 bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0xea900b39 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xeaa80d25 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xeac084ad tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0xeb07c249 ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0xeb0d5ae8 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xeb1c3628 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xeb1f2c0c ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xeb2394bf wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xeb2798f7 xen_destroy_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xeb3ef01d arm_pm_restart +EXPORT_SYMBOL_GPL vmlinux 0xeb44cb7d sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xeb49f6a6 mark_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0xeb53624c xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0xeb60d844 __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xeb77d890 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0xebec57c4 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xebffee86 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec3bcc3e ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0xec4e0314 ima_file_check +EXPORT_SYMBOL_GPL vmlinux 0xec708b82 phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL vmlinux 0xec7375c5 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xecf44e83 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0xed017884 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xed044020 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xed09ae53 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xed0c6d56 ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xed1bdeea blkg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xed8cc0ee pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0xedb0ea61 of_reset_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedd49930 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xedd8f83d pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0xee0480a4 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xee08604d inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xee0f1dd6 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0xee1e0c78 gfn_to_page +EXPORT_SYMBOL_GPL vmlinux 0xee4c2fac sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xee6544a2 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xee6b71c4 syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0xeec2c67b ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0xeed22c2b wm8997_patch +EXPORT_SYMBOL_GPL vmlinux 0xeef1ccf9 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0xef15c58f crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xef3e3136 kvm_clear_guest +EXPORT_SYMBOL_GPL vmlinux 0xef488b3c dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xef60a540 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef73ef08 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0xef782b88 gnttab_grant_foreign_access_subpage +EXPORT_SYMBOL_GPL vmlinux 0xef8ac74d blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0xefba3780 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xefbb31f1 amba_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xefd1edc2 get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0xeff72e0f raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0xeffc9508 crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0xf05cedcc __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf06a2706 reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xf06d4476 gfn_to_pfn +EXPORT_SYMBOL_GPL vmlinux 0xf06e467e crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xf07466b5 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xf0edb90e tpm_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0xf0f5dbc2 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xf104b941 virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0xf10e8ef7 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xf112beec rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xf1327745 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xf14c0560 sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0xf167b2b7 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0xf17ce4a4 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1953265 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0xf1af7808 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1d936eb pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0xf1f9b3ca hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf208e85f regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf2587f37 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xf27977e2 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xf28131a2 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xf282647d bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xf2851e54 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0xf2b9fb08 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0xf2d237e2 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xf2f077cc pkey_id_type_name +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf32bdc5d unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0xf338a3cf preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xf384f81a extcon_update_state +EXPORT_SYMBOL_GPL vmlinux 0xf388aab3 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xf39ff099 ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xf3b0aa69 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xf3c19fae regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0xf3c78d18 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xf3d31257 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xf3f2c32a devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xf4509fd3 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xf4873733 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xf49131b9 phy_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4b38f67 xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0xf4b8f8a3 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0xf4d7d19d default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xf4dbfc0c dma_buf_put +EXPORT_SYMBOL_GPL vmlinux 0xf4f47005 arch_pick_mmap_layout +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf52620b2 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf5526f9a ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xf5785b42 evtchn_get +EXPORT_SYMBOL_GPL vmlinux 0xf5851b8d cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xf5931926 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5fef4e3 wm5110_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf60877c6 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xf6543496 tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0xf654e708 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xf67aef4a hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xf6937a8d regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0xf69a6945 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xf6b1942a rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0xf6b4a36e bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xf6b5ed53 napi_by_id +EXPORT_SYMBOL_GPL vmlinux 0xf6c79637 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf7175789 xen_xenbus_fops +EXPORT_SYMBOL_GPL vmlinux 0xf71a0bd7 napi_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xf735da4e ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xf756dc22 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf75a95db tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xf7738f98 gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0xf77dac47 ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0xf7a040d1 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xf7d94644 pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0xf7ebff3c ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xf7ee0452 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0xf814f810 usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xf816c866 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0xf81cb902 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf8399f3c raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf887bae7 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xf8b104af regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0xf8c4e123 palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8fe3d0b kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0xf92cf749 pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0xf932015f __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf9445274 napi_hash_del +EXPORT_SYMBOL_GPL vmlinux 0xf95090c8 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf967422b HYPERVISOR_xen_version +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9a90d12 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xf9aa6d00 sec_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xf9bd7a34 subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf9c81eeb simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d5d981 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0xf9d9264e xen_have_vector_callback +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa17dd75 debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa27ea6b bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xfa310cdd register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xfa5ecee6 user_match +EXPORT_SYMBOL_GPL vmlinux 0xfa7d34b5 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xfa901b31 compat_get_timespec +EXPORT_SYMBOL_GPL vmlinux 0xfa947aa1 regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0xfaaa3465 sec_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xfadfe293 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xfae22854 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xfb215de5 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xfb22bc6c cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfba98616 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xfbbac68c tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0xfbbedefd of_prop_next_string +EXPORT_SYMBOL_GPL vmlinux 0xfbe21128 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xfbea0279 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xfbefca57 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xfbf28eb7 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc0b0d97 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xfc201b66 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0xfc28a185 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xfc55a3a9 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xfc5d4f4b pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xfc763060 get_device +EXPORT_SYMBOL_GPL vmlinux 0xfc8d218e br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xfca5891f powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0xfcaa7188 kvm_release_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0xfcbf2842 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xfcc90f43 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfcfca143 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd639087 ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xfdcb1546 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0xfdcd9a4e generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xfdf5a677 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xfe107cf0 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0xfe1fa0db of_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0xfe828323 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfeb2d99f pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0xfeb53f05 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfed2a6e5 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0xfedf4668 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff1d23a6 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xff3539cb __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xff45d80d sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xff57fce0 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff767e55 xen_swiotlb_map_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0xff89fdab power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0xff94c0a9 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xff9ace4f dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0xffa224f8 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xffa4776c mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xffc0ca11 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xffdc91c7 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0xfff58707 pci_check_and_unmask_intx --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/arm64/generic.compiler +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/arm64/generic.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.8.2-19ubuntu1) 4.8.2 --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/arm64/generic.modules +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/arm64/generic.modules @@ -0,0 +1,2839 @@ +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250_dw +8250_pci +8255 +8255_pci +8390 +88pm800 +88pm805 +88pm80x +88pm80x_onkey +88pm860x_battery +88pm860x_bl +88pm860x_charger +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +acard-ahci +acenic +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5380 +ad5398 +ad5421 +ad5446 +ad5449 +ad5504 +ad5624r_spi +ad5686 +ad5755 +ad5764 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7266 +ad7280a +ad7291 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7791 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad7923 +ad799x +ad8366 +ad9523 +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2032 +addi_apci_2200 +addi_apci_3501 +addi_apci_3xxx +addi_watchdog +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adf4350 +adfs +adi +adis16060 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1275 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +adq12b +ads1015 +ads7828 +ads7846 +ads7871 +ad_sigma_delta +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adv7180 +adv_pci1710 +adv_pci1723 +adv_pci1724 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +af_802154 +af_alg +affs +af_key +af_packet_diag +af-rxrpc +ah4 +ah6 +ahci +ahci_platform +ahci_xgene +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +ak8975 +algif_hash +algif_skcipher +alim7101_wdt +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +alx +ambakmi +amba-pl010 +amc6821 +amd8111e +amplc_dio200 +amplc_dio200_common +amplc_dio200_pci +amplc_pc236 +amplc_pc263 +amplc_pci224 +amplc_pci230 +amplc_pci263 +ams369fg06 +analog +anatop-regulator +ansi_cprng +anubis +aoe +apbps2 +apds9300 +apds9802als +apds990x +appletalk +applicom +ar7part +arc4 +arc_emac +arcmsr +arcnet +arc_ps2 +arc-rawmode +arc-rimi +arc_uart +arizona-i2c +arizona-spi +arkfb +arptable_filter +arp_tables +arpt_mangle +as3711_bl +as3711-regulator +as3722-regulator +as5011 +asc7621 +ast +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at86rf230 +at91_ether +ata_piix +ath +ath10k_core +ath10k_pci +ath5k +ath6kl_core +ath6kl_sdio +ath9k +ath9k_common +ath9k_hw +atl1 +atl1c +atl1e +atl2 +atm +atmel +atmel_mxt_ts +atmel_pci +atmel_pwm +atmel-pwm-bl +atmel-ssc +atmtcp +atp870u +atxp1 +aty128fb +atyfb +aufs +auo_k1900fb +auo_k1901fb +auo_k190x +auo-pixcir-ts +authenc +authencesn +auth_rpcgss +autofs4 +avmfritz +ax25 +b1 +b1dma +b1pci +b2c2-flexcop +b2c2-flexcop-pci +b43 +b43legacy +b44 +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bch +bcm3510 +bcma +bd6107 +be2iscsi +be2net +befs +bfa +bfs +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluetooth +bma150 +bma180 +bmp085-i2c +bmp085-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpctl_mod +bpqether +bq2415x_charger +bq24190_charger +bq24735-charger +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt878 +btcoexist +btcx-risc +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +bw-qcam +bypass +c4 +c6xdigio +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +caif_usb +caif_virtio +camellia_generic +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carminefb +cassini +cast5_generic +cast6_generic +cast_common +cb710 +cb710-mmc +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcimdas +cb_pcimdda +cc770 +cc770_isa +cc770_platform +c_can +c_can_pci +c_can_platform +cciss +ccm +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch7006 +chipreg +chnl_net +cifs +cirrus +cirrusfb +clearpad_tm1217 +clip +clk-max77686 +clk-s2mps11 +clk-si5351 +clk-twl6040 +clk-wm831x +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm36651 +cma3000_d0x +cma3000_d0x_i2c +cmac +cmdlinepart +cmtp +cnic +cobra +coda +com20020 +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +configfs +contec_pci_dio +cordic +core +cpu-notifier-error-inject +c-qcam +cramfs +crc32 +crc7 +crc8 +crc-ccitt +crc-itu-t +cros_ec +cros_ec_i2c +cros_ec_keyb +cros_ec_spi +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +csiostor +ctr +cts +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cx18 +cx22702 +cx2341x +cx24110 +cx24113 +cx24116 +cx24123 +cx25821 +cx25840 +cx8800 +cx8802 +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxd2099 +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyapa +cyber2000fb +cyclades +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da9030_battery +da9034-ts +da903x +da903x_bl +da9052-battery +da9052_bl +da9052-hwmon +da9052_onkey +da9052-regulator +da9052_tsi +da9052_wdt +da9055-hwmon +da9055_onkey +da9055-regulator +da9055_wdt +da9063-regulator +da9210-regulator +DAC960 +daqboard2000 +das08 +das08_isa +das08_pci +das16m1 +das6402 +das800 +db9 +dc395x +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +ddbridge +de2104x +decnet +deflate +defxx +denali +denali_dt +denali_pci +des_generic +dgap +dgnc +dgrp +diskonchip +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm-bio-prison +dm-bufio +dm-cache +dm-cache-cleaner +dm-cache-mq +dm-crypt +dm-delay +dme1737 +dmfe +dm-flakey +dm-log +dm-log-userspace +dmm32at +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-switch +dm-thin-pool +dm-verity +dmx3191d +dm-zero +dnet +dn_rtmsg +docg3 +docg4 +drbd +drm +drm_kms_helper +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2760_battery +ds2780_battery +ds2781_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dscc4 +dss1_divert +dst +dst_ca +dt2801 +dt2811 +dt2814 +dt2815 +dt2817 +dt3000 +dt3155v4l +dummy +dummy-irq +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dw_dmac +dw_dmac_core +dw_dmac_pci +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +earth-pt1 +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_vlan +echo +edt-ft5x06 +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efs +egalax_ts +elo +emc1403 +emc2103 +emc6w201 +em_canid +em_cmp +em_ipset +em_meta +em_nbyte +ems_pci +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +eni +enic +epic100 +eql +esas2r +esi-sir +esp4 +esp6 +et131x +ethoc +evbug +exofs +extcon-adc-jack +extcon-gpio +extcon-max77693 +extcon-max8997 +extcon-palmas +f2fs +f71805f +f71882fg +f75375s +fakelb +fan53555 +farsync +faulty +fb_ddc +fb_sys_fops +fcoe +fcrypt +fdomain +fealnx +ff-memless +fid +firedtv +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +firewire-serial +fixed +fl512 +fld +fm801-gp +fmc +fmc-chardev +fmc-fakedev +fmc-trivial +fmc-write-eeprom +fm_drv +forcedeth +fore_200e +freevxfs +fsa9480 +fscache +ftl +fujitsu_ts +g450_pll +g760a +g762 +gamecon +gameport +garp +gcm +gdmwm +generic +generic-adc-battery +generic_bl +gen_probe +gf128mul +gf2k +gfs2 +ghash-generic +gigaset +girbil-sir +gl518sm +gl520sm +gluebi +goldfishfb +gp2ap002a00f +gp2ap020a00f +gpio +gpio-74x164 +gpio-addr-flash +gpio-adnp +gpio-adp5520 +gpio-adp5588 +gpio-amd8111 +gpio-arizona +gpio_backlight +gpio-charger +gpio-da9052 +gpio-da9055 +gpio-dwapb +gpio-fan +gpio-generic +gpio-grgpio +gpio-ir-recv +gpio-janz-ttl +gpio-kempld +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-rdc321x +gpio-regulator +gpio_tilt_polled +gpio-tps65912 +gpio-ts5500 +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +grcan +gre +grip +grip_mp +gsc_hpdi +guillemot +gunze +hamachi +hampshire +hci +hci_uart +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +he +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfs +hfsplus +hid +hid-a4tech +hid-apple +hid-aureal +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-emsff +hid-ezkey +hid-gaff +hid-generic +hid-gyration +hid-icade +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-lenovo-tpkbd +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-rmi +hid-saitek +hid-samsung +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-gyro-3d +hid-sensor-hub +hid-sensor-iio-common +hid-sensor-magn-3d +hid-sensor-trigger +hid-sjoy +hid-speedlink +hid-steelseries +hid-sunplus +hid-thingm +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-xinmo +hid-zpff +hid-zydacron +hih6130 +hisax +hisax_fcpcipnp +hisax_isac +hmc5843 +hmc6352 +hopper +hostap +hostap_pci +hostap_plx +hp100 +hpfs +hpilo +hpsa +hptiop +hsi +hsi_char +hsr +htc-pasic3 +htu21 +hwmon-vid +hx8357 +hysdn +i2c-algo-bit +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-arb-gpio-challenge +i2c-cbus-gpio +i2c-designware-core +i2c-designware-pci +i2c-designware-platform +i2c-dev +i2c-eg20t +i2c-gpio +i2c-hid +i2c-i801 +i2c-isch +i2c-kempld +i2c-matroxfb +i2c-mux +i2c-mux-gpio +i2c-mux-pca9541 +i2c-mux-pca954x +i2c-nforce2 +i2c-nomadik +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-piix4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-versatile +i2c-via +i2c-viapro +i2c-xiic +i2o_block +i2o_bus +i2o_core +i2o_proc +i2o_scsi +i40e +i40evf +i5k_amb +i6300esb +i740fb +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_isert +ib_mad +ibmaem +ibmpex +ib_mthca +ib_qib +ib_sa +ib_srp +ib_srpt +ib_ucm +ib_umad +ib_uverbs +icp_multi +ics932s401 +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iio_dummy +iio_hwmon +iio-trig-interrupt +iio-trig-periodic-rtc +iio-trig-sysfs +ii_pci20kc +ili210x +ili922x +ili9320 +imx074 +ina209 +ina2xx +industrialio +industrialio-triggered-buffer +inet_diag +inexio +inftl +initio +input-polldev +intel_vr_nor +interact +interval_tree_test +inv-mpu6050 +ioc4 +ip6_gre +ip6table_filter +ip6table_mangle +ip6table_nat +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_MASQUERADE +ip6t_mh +ip6t_NPT +ip6t_REJECT +ip6t_rpfilter +ip6t_rt +ip6t_SYNPROXY +ip6_tunnel +ip6_vti +ipack +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipip +ipmi_devintf +ipmi_poweroff +ipmi_si +ipmi_watchdog +ipoctal +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netnet +ip_set_hash_netport +ip_set_hash_netportnet +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_MASQUERADE +ipt_REJECT +ipt_rpfilter +ipt_SYNPROXY +ipt_ULOG +ip_tunnel +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ip_vti +ipw2100 +ipw2200 +ipx +ircomm +ircomm-tty +irda +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sanyo-decoder +ir-sony-decoder +irtty-sir +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isl29003 +isl29018 +isl29020 +isl29028 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +it87 +itd1000 +itg3200 +ivtv +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwldvm +iwlegacy +iwlmvm +iwlwifi +iw_nes +ixgb +ixgbe +ixgbevf +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +kafs +kcomedilib +ke_counter +kempld-core +kempld_wdt +kernelcapi +kfifo_buf +khazad +ko2iblnd +ks8842 +ks8851 +ks8851_mll +ksocklnd +ksz884x +kvaser_pci +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +l2tp_ppp +l4f00242t03 +l64781 +lanai +lapb +lapbether +latch-addr-flash +lattice-ecp3-config +lcd +ld9040 +lec +leds-88pm860x +leds-adp5520 +leds-atmel-pwm +leds-bd2802 +leds-blinkm +leds-da903x +leds-da9052 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lm3533 +leds-lm355x +leds-lm3642 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lp5562 +leds-lp55xx-common +leds-lp8501 +leds-lp8788 +leds-lt3593 +leds-max8997 +leds-mc13783 +leds-ot200 +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pca9685 +leds-pwm +leds-regulator +leds-tca6507 +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-camera +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-oneshot +ledtrig-timer +ledtrig-transient +lgdt3305 +lgdt330x +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libceph +libcfs +libcrc32c +libcxgbi +libertas +libertas_sdio +libertas_spi +libertas_tf +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_parallel +lirc_serial +lirc_sir +lirc_zilog +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc +llc2 +llog_test +lm25066 +lm3533-als +lm3533_bl +lm3533-core +lm3533-ctrlbank +lm3630a_bl +lm3639_bl +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm8333 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95234 +lm95241 +lm95245 +lms283gf05 +lms501kf03 +lmv +lnbp21 +lnet +lnet_selftest +lockd +lov +lp +lp3971 +lp3972 +lp855x_bl +lp8727_charger +lp8755 +lp8788_bl +lp8788-charger +lpc_ich +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc2978 +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lustre +lv5207lp +lvfs +lz4 +lz4_compress +lz4hc +lz4hc_compress +m25p80 +m2m-deinterlace +m52790 +ma600-sir +mac80211 +mac80211_hwsim +mac802154 +macb +mac-celtic +mac-centeuro +mac-croatian +mac-cyrillic +mac-gaelic +mac-greek +mac-iceland +mac-inuit +macmodes +mac-roman +mac-romanian +mac-turkish +macvlan +macvtap +mag3110 +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix-keymap +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16064 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max197 +max3100 +max34440 +max517 +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77686 +max77693 +max8649 +max8660 +max8688 +max8903_charger +max8907 +max8907-regulator +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8973-regulator +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-i2c +mc13xxx-regulator-core +mc13xxx-spi +mc44s803 +mcp2120-sir +mcp251x +mcp3021 +mcp320x +mcp3422 +mcp4725 +mcs5000_ts +mcs_touchkey +md4 +mdc +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memstick +mena21_wdt +metronomefb +mfd +mga +mgc +michael_mic +microread +microread_i2c +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mlx5_core +mlx5_ib +mma8450 +mmc_spi +mms114 +moxa +mpc624 +mpoa +mpr121_touchkey +mpt2sas +mpt3sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrf24j40 +mrp +mrst_max3110 +ms_block +msdos +msp3400 +mspro_block +mt20xx +mt2131 +mt29f_spinand +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +multiq3 +mv88e6060 +mv88e6xxx_drv +mvmdio +mvsas +mvumi +mwifiex +mwifiex_pcie +mwifiex_sdio +mwl8k +mxb +mxl5005s +mxser +myri10ge +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +nau7802 +nbd +nci +ncpfs +nct6775 +ne2k-pci +neofb +netconsole +netjet +netlink_diag +netprio_cgroup +netrom +netxen_nic +newtonkbd +nfc +nfc_digital +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcsim +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_ipv4 +nf_nat_ipv6 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nfsv2 +nfsv3 +nfsv4 +nf_synproxy_core +nf_tables +nf_tables_arp +nf_tables_bridge +nf_tables_ipv4 +nf_tables_ipv6 +nft_chain_nat_ipv4 +nft_chain_nat_ipv6 +nft_chain_route_ipv4 +nft_chain_route_ipv6 +nft_compat +nft_counter +nft_ct +nft_exthdr +nft_hash +nftl +nft_limit +nft_log +nft_meta +nft_nat +nft_rbtree +nft_reject_ipv4 +ngene +n_hdlc +ni_6527 +ni_65xx +ni_660x +ni_670x +ni_at_ao +ni_atmio +ni_atmio16d +nicstar +ni_labpc +ni_labpc_pci +nilfs2 +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nlmon +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nosy +notifier-error-inject +nouveau +nozomi +n_r3964 +ns558 +ns83820 +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +null_blk +nvidiafb +nvme +nxt200x +nxt6000 +obdclass +obdecho +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ocrdma +of_mmc_spi +ofpart +old_belkin-sir +olpc_apsp +omfs +onenand +opencores-kbd +openvswitch +or51132 +or51211 +orinoco +orinoco_nortel +orinoco_plx +orinoco_tmd +osc +osd +osdblk +osst +output +ov2640 +ov5642 +ov6650 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +p54common +p54pci +p54spi +p8022 +p8023 +palmas-regulator +panel +parkbd +parport +parport_ax88796 +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87410 +pata_ns87415 +pata_of_platform +pata_oldpiix +pata_opti +pata_optidma +pata_pdc2027x +pata_pdc202xx_old +pata_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pc300too +pc87360 +pc87427 +pcbc +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_phub +pch_uart +pci +pci200syn +pcips2 +pci-stub +pcl711 +pcl724 +pcl726 +pcl730 +pcm3724 +pcmad +pcmda12 +pcmmio +pcmuio +pcnet32 +pcrypt +pcwd_pci +pda_power +pdc_adma +peak_pci +penmount +percpu_test +pfuze100-regulator +phantom +phison +phonet +phram +phy-exynos-dp-video +physmap +physmap_of +pixcir_i2c_ts +pktcdvd +pktgen +pl330 +platform_lcd +plat_nand +plat-ram +plip +pluto2 +plx_pci +pm2fb +pm3fb +pm80xx +pmbus +pmbus_core +pmc551 +pmcraid +pn544 +pn544_i2c +pn_pep +poc +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +ps2mult +psmouse +psnap +ptlrpc +ptp +pwm_bl +pwm-pca9685 +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qnx4 +qnx6 +qt1070 +qt2160 +quota_tree +quota_v1 +quota_v2 +qxl +r128 +r592 +r6040 +r8169 +r8187se +r8192e_pci +r852 +radeon +radeonfb +radio-i2c-si470x +radio-maxiradio +radio-si4713 +radio-tea5764 +radio-timb +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +rbd +rbtree_test +rc5t583-regulator +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rcar_vin +rc-asus-pc39 +rc-asus-ps3-100 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-delock-61959 +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-it913x-v1 +rc-it913x-v2 +rc-kaiomy +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-msi-digivox-ii +rc-msi-digivox-iii +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-reddo +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-total-media-in-hand-02 +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +reed_solomon +reiserfs +remoteproc +retu-mfd +retu-pwrbutton +retu_wdt +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-gpio +rfkill-regulator +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rocket +romfs +rose +rotary_encoder +rp2 +rpcsec_gss_krb5 +rsxx +rt2400pci +rt2500pci +rt2800lib +rt2800mmio +rt2800pci +rt2x00lib +rt2x00mmio +rt2x00pci +rt61pci +rtc-88pm80x +rtc-88pm860x +rtc-ab3100 +rtc-as3722 +rtc-bq32k +rtc-bq4802 +rtc-da9052 +rtc-da9055 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds2404 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-isl12022 +rtc-isl1208 +rtc-lp8788 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max77686 +rtc-max8907 +rtc-max8925 +rtc-max8997 +rtc-max8998 +rtc-mc13xxx +rtc-moxart +rtc-msm6242 +rtc-palmas +rtc-pcf2123 +rtc-pcf2127 +rtc-pcf50633 +rtc-pcf8523 +rtc-pcf8563 +rtc-pcf8583 +rtc-pl030 +rtc-pl031 +rtc-r9701 +rtc-rc5t583 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx4581 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-s5m +rtc-snvs +rtc-stk17ta8 +rtc-tps6586x +rtc-tps65910 +rtc-tps80031 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rti800 +rti802 +rtl8180 +rtl8188ee +rtl8192c-common +rtl8192ce +rtl8192de +rtl8192se +rtl8723ae +rtl8723be +rtl8723-common +rtl8821ae +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtl_pci +rtlwifi +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rxkad +s1d13xxxfb +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s5m8767 +s626 +s6e63m0 +saa6588 +saa6752hs +saa7115 +saa7127 +saa7134 +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7706h +salsa20_generic +samsung-keypad +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_rcar +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sbe-2t3e3 +sbp_target +sbs-battery +sc92031 +sca3000 +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_fq +sch_fq_codel +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_plug +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +sctp +sdhci +sdhci-pci +sdhci-pltfm +sdhci-pxav2 +sdhci-pxav3 +sdio_uart +seed +sep_driver +seqiv +ser_gigaset +serial2002 +serio_raw +sermouse +serpent_generic +serport +ses +sfc +sh_eth +sh_mobile_ceu_camera +sh_mobile_csi2 +sht15 +sht21 +sh_veu +si21xx +si4713-i2c +si476x-core +sidewinder +sil164 +sir-dev +sis190 +sis5595 +sis900 +sisfb +sit +sja1000 +sja1000_isa +sja1000_of_platform +sja1000_platform +skd +skel +skfp +skge +sky2 +slcan +slip +slram +sm501 +sm501fb +sm7xxfb +smb347-charger +sm_common +sm_ftl +smm665 +smsc47b397 +smsc47m1 +smsc47m192 +smsc911x +smsc9420 +smsdvb +smsmdtv +smssdio +soc_camera +soc_camera_platform +soc_mediabus +soc_scale_crop +softdog +softing +solos-pci +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +speakup +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_dectlk +speakup_dummy +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +speedfax +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw +spi-dw-midpci +spi-dw-mmio +spi-gpio +spi_ks8995 +spi-lm70llp +spi-oc-tiny +spi-pl022 +spi-pxa2xx-pci +spi-pxa2xx-platform +spi-sc18is602 +spi-tle62x0 +spi-topcliff-pch +spi-xcomm +squashfs +ssb +ssd1307fb +ssfdc +sst25l +sstfb +st +st1232 +st_accel +st_accel_i2c +st_accel_spi +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste_modem_rproc +stex +st_gyro +st_gyro_i2c +st_gyro_spi +stinger +st_magn +st_magn_i2c +st_magn_spi +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +st_pressure +st_pressure_i2c +st_pressure_spi +st_sensors +st_sensors_i2c +st_sensors_spi +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +svcrdma +svgalib +sx8 +sym53c8xx +synaptics_i2c +synaptics_i2c_rmi4 +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tca8418_keypad +tcm_fc +tcm_loop +tcm_qla2xxx +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tcs3472 +tda10021 +tda10023 +tda10048 +tda1004x +tda10086 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tda998x +tdfx +tdfxfb +tdo24m +tea +tea575x +tea5761 +tea5767 +tea6415c +tea6420 +team +team_mode_activebackup +team_mode_broadcast +team_mode_loadbalance +team_mode_random +team_mode_roundrobin +tef6862 +tehuti +tekram-sir +test-kstrtox +test_power +test-string_helpers +tg3 +tgr192 +thmc50 +ti-adc081c +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +tlan +tmdc +tmiofb +tmp006 +tmp102 +tmp401 +tmp421 +tmscsim +toim3232-sir +touchit213 +touchright +touchwin +tpci200 +tpm_i2c_atmel +tpm_i2c_infineon +tpm_i2c_nuvoton +tpm_i2c_stm_st33 +tpm-rng +tps51632-regulator +tps6105x +tps6105x-regulator +tps62360-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps65090-charger +tps65090-regulator +tps65217 +tps65217_bl +tps65217-regulator +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +tps80031-regulator +tridentfb +ts2020 +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +tsl2x7x_core +tsl4531 +ttm +ttpci-eeprom +tua6100 +tulip +tuner +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tw9910 +twidjoy +twl6040-vibra +twofish_common +twofish_generic +typhoon +uartlite +ubi +ubifs +ucd9000 +ucd9200 +udf +udp_diag +ufs +ufshcd +ufshcd-pci +ufshcd-pltfrm +uhid +uio +uio_aec +uio_cif +uio_dmem_genirq +uio_mf624 +uio_netx +uio_pci_generic +uio_pdrv_genirq +uio_sercos3 +uli526x +umc +umem +unioxx5 +unix_diag +upd64031a +upd64083 +userspace-consumer +uvesafb +uwb +v4l2-common +v4l2-dv-timings +v4l2-int-device +v4l2-mem2mem +vcan +vcnl4000 +ves1820 +ves1x93 +veth +vexpress +vgastate +vgg2432a4 +vhost +vhost_net +vhost_scsi +via +via686a +via-rhine +via-sdmmc +via-velocity +videobuf2-core +videobuf2-dma-contig +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videodev +virtio_pci +virtio-rng +virtio_scsi +virtual +vivi +vlsi_ir +vmac +vme +vme_pio2 +vme_user +vme_vmivme7805 +vmwgfx +vmxnet3 +vp27smpx +vringh +vsock +vsxxxaa +vt1211 +vt6655_stage +vt8231 +vt8623fb +vx855 +vxge +vxlan +w1_bq27000 +w1_ds2408 +w1_ds2413 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1_ds2781 +w1_ds28e04 +w1-gpio +w1_smem +w1_therm +w5100 +w5300 +w6692 +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83795 +w83l785ts +w83l786ng +w90p910_ts +w9966 +wacom_i2c +wacom_w8001 +walkera0701 +wanxl +warrior +wcn36xx +wdt_pci +whci +whc-rc +wil6210 +wimax +winbond-840 +wire +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl18xx +wlcore +wlcore_sdio +wlcore_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wp512 +x25 +x25_asy +xc4000 +xc5000 +xcbc +xen-blkback +xen-evtchn +xen-fbfront +xenfs +xen-gntalloc +xen-gntdev +xen-kbdfront +xen-netback +xen-privcmd +xen-tpmfront +xen_wdt +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_algo +xfrm_ipcomp +xfrm_user +xfs +xgene-enet +xgene-rng +xgifb +xgmac +xilinx_uartps +xillybus_core +xillybus_of +xillybus_pcie +xor +xprtrdma +x_tables +xt_addrtype +xt_AUDIT +xt_bpf +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlabel +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_ecn +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_HMARK +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_LOG +xt_mac +xt_mark +xt_multiport +xt_nat +xt_NETMAP +xt_nfacct +xt_NFLOG +xt_NFQUEUE +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xt_REDIRECT +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xz_dec_test +yam +yellowfin +zforce_ts +zhenhua +zl10036 +zl10039 +zl10353 +zl6100 +zlib +zram --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/armhf/generic +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/armhf/generic @@ -0,0 +1,16664 @@ +EXPORT_SYMBOL arch/arm/crypto/aes-arm 0x276b2f72 private_AES_set_encrypt_key +EXPORT_SYMBOL arch/arm/crypto/aes-arm 0x6c62e582 AES_decrypt +EXPORT_SYMBOL arch/arm/crypto/aes-arm 0xc30fcbed AES_encrypt +EXPORT_SYMBOL arch/arm/crypto/aes-arm 0xcf024ae9 private_AES_set_decrypt_key +EXPORT_SYMBOL arch/arm/lib/xor-neon 0x0f051164 xor_block_neon_inner +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0xa0215bc7 suni_init +EXPORT_SYMBOL drivers/bcma/bcma 0x1a2e863c bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x127a5901 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/paride/paride 0x01d0009e pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x0744efd0 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x0a9a9c94 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x2cbac21f pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x417364d9 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x45df56a0 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x785003fa pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x8821939e pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x91153a62 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xca3f1b84 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xdcef7d3c pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xf382d036 pi_write_regr +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x024f300f dw_dma_cyclic_free +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x49460049 dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x49b179a6 dw_dma_get_src_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x4ed46e16 dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x80b596b7 dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x9632ebef dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/pl330 0x013341ef pl330_filter +EXPORT_SYMBOL drivers/edac/edac_core 0x6cb9036a edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x07fbf9b4 fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2b1f9e18 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x345b11b9 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x38e775a5 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4261b0f0 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x432c0d46 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4eeda1f4 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x518c3778 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x536b6570 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6731f055 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x710032f1 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x73c1afab fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fabbb16 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x83048790 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x85037607 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8cead546 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8d4d9df3 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x943a1344 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x950a11bf fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9a412054 fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa3fb4fcb fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb1c835e2 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd91e24f1 fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0xdebe2126 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf012cf19 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf19e2a78 fw_iso_buffer_init +EXPORT_SYMBOL drivers/fmc/fmc 0x18f7dee8 fmc_scan_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x20324689 fmc_device_register +EXPORT_SYMBOL drivers/fmc/fmc 0x324e8141 fmc_show_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x35f6a51e fmc_device_register_n +EXPORT_SYMBOL drivers/fmc/fmc 0x7ed41dd6 fmc_device_unregister_n +EXPORT_SYMBOL drivers/fmc/fmc 0x8a22b9b4 fmc_device_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x955431d3 fmc_driver_register +EXPORT_SYMBOL drivers/fmc/fmc 0x99367f10 fmc_free_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xbe837fc4 fmc_driver_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0xc6b204c8 fmc_reprogram +EXPORT_SYMBOL drivers/fmc/fmc 0xd4dc060c fmc_find_sdb_device +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00025916 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00667d8a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x026c0d6b drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02c2a5c7 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0591fdc4 drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cf57a3c drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d0e026f drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ec527fc drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f262622 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f2b53a3 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x107742a9 drm_get_subpixel_order_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x118a1b05 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12346dbb drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1252a753 drm_prime_init_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13cdaadb drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a9a178 drm_get_format_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x189f6401 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x191ef701 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19e44324 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a770ac3 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b04cce9 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1cedc478 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1eccb9cb drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2034af7f drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x208769ad drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2161e600 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x241aaa63 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25251f94 drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25d6c9f4 drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26f791d8 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2786ff38 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28550cdd drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x299b7076 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a942ab2 drm_mm_insert_node_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c5b3613 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d80be4d drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e1ecca4 drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e7a4300 drm_rgb_quant_range_selectable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fb9ea79 drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3061a273 drm_framebuffer_reference +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31d34ee7 drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36ad033e drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36db50d7 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36f91ef3 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3745a4aa drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37886e4f drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a4f7ae drm_format_num_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38b61033 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ac1fef9 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ace1e86 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ae7b2d0 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b9d009a drm_format_plane_cpp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9ff4ac drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d4616a1 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d4b8108 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40df0086 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41ca63d4 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42086005 drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4448eec5 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4799d9bc drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4942884c drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49443a50 drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49ef4fed drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49fabf0d drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4aaaebe6 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b7fa589 drm_vma_offset_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c511235 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c8de247 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d9caac3 drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e8736cb drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50665f4c drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e28c07 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x526f6f71 drm_rect_calc_hscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a247f68 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a268d54 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b19936a drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d2f6a00 drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d730c70 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ed799a1 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5fb2520d drm_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6090be61 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62b0e547 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66803841 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67942694 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68723531 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6900d335 drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6907582a drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b36fd98 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b3a3992 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c9c583c drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cee2e42 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d1928ca drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f85f519 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fe67d48 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72752e89 drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72cb3443 drm_gem_dumb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x73ab1e51 drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75a097bc drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7616a2e8 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76980626 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x781749ba drm_dev_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78192ffd drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4e7297 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bb617cc drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c09d1be drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f0f87df drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x818b89ff drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81ba930c drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81d16814 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84047d30 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x844d9275 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x862612a8 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8689cb2d drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86d7914e drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88afec82 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88c8facd drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88f30fa6 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a630754 drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8afb59a6 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8bb0e057 drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c0f37e6 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d58bc64 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de13715 drm_format_vert_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eaa220e drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7df3a7 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x905350d2 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95fcdccd drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96060f67 drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9615ad97 drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96de59e9 drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96e43a71 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x979fd819 drm_crtc_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0x97bc263e drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x982db14d drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x993ea135 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9972db48 drm_rect_calc_vscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9bfb2e0e drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c46b115 drm_bridge_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d70fc2a drm_rnodes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e116ac4 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e934aaf drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9eccfe56 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9efc26a3 drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f11c2c9 drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9fa92234 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa006a902 drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa009dae8 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0c6fa99 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa10c31d3 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa16ed025 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1f4e9e6 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa23d3fc9 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa28078b2 drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa2ccf256 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa35cf7df drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3e5355e drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa418e128 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4c3b761 drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5dbd572 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa86641c7 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa96acfcb drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa987a1e5 drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa1a6e72 drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa3a0eb9 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa4a6683 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa6b5762 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaad66936 drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf91a4cf drm_pcie_get_speed_cap_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafb0cb6f drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb27340fa drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb572a9f0 drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95beb55 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbae720c8 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe001c53 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe9d45ab drm_mode_group_init_legacy_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf73d330 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1e4932e drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc34852bc drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4000f9f drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc458fc57 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca45efbc drm_format_horz_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca5418b5 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc72eccb drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd45a405 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd092fc86 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd10ab947 drm_framebuffer_unreference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1644352 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2335101 drm_fb_get_bpp_depth +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd26eb58d drm_connector_unplug_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd598859d drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd9058429 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd929f687 drm_unplug_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb5a5852 drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb6acfa6 drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc0b9f6a drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd7f1e86 drm_prime_destroy_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde1ff084 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0f3d937 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1fc8de9 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2ef97e4 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f41946 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f46e6e drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe822b2c9 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8f832c2 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed820fab drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xedc4e2b9 drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef9b787c drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefdf9b69 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf064b0b0 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf08d712a drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0c7688d drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1b056b0 drm_bridge_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1d54293 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf446a0e2 drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4962c1d drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf73ccef7 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf8e56e3e drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9be1ca4 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9ea32e1 drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb03d732 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb497216 drm_mm_insert_node_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc05a6a8 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd063935 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd0e75f7 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfddbbe10 drm_prime_sg_to_page_addr_arrays +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe4a68c7 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc6c87a drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0496a674 drm_pick_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x098e47d2 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0ecb70bc drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f96ec70 drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0fea3a08 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1459a793 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x155d6854 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x163251c8 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x16a0e4e2 drm_dp_link_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1c2f3376 drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2aca7496 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3343f546 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x346de89c drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34871adf drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3a452ee1 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x47c90423 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4d687eb5 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5141e49b drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x58555a99 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5c46ec8d drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6f06d9e2 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x711a004a drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x75b9e9aa drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x782b35c4 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7f2471b3 drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84e924ba drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x861d7a60 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8724b0d9 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x91dafbec drm_dp_link_configure +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9244a90d drm_dp_aux_register_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9252b311 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x98c71c5e drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa12b9a92 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa168d624 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa333d328 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa77858bb drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8d6809d drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa938f401 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xafc87dac drm_dp_aux_unregister_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcfd4021e drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd187e64d drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd4ca169a drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd9f0fdac drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe3651a19 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xef1be6ff drm_dp_link_power_up +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf16fe6d5 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf69ac442 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfbff92dd drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfe0d1314 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfe917468 drm_has_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x415aec38 drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x4d65924c drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0xc63464dc drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x01f0dbdc ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x03b9d20c ttm_mem_io_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x136ec7fa ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1a34ab4a ttm_bo_dma_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c40d490 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x24a32f67 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2c7fac9b ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x31279c70 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x36788373 ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x393361a2 ttm_bo_del_sub_from_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3a665763 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4628b006 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x485a5bc0 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x50212c04 ttm_prime_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5179c4b6 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x52dafc0d ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x530b16f6 ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x57145af6 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x579ebf12 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5c06d4de ttm_mem_io_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cf59609 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ffb6368 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x629cd338 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b1d568 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6c0ec969 ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6c990f94 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6ca22ac1 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6f535512 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x737b4016 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7394c573 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x74e71964 ttm_dma_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x81e4f130 ttm_mem_io_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x842882cf ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8577db39 ttm_mem_io_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8585c4a6 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8589758d ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86bb8a6c ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x880a15ad ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x88a22bef ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x94894449 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x962f47d6 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9c9507e5 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9fa1b8c9 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa03d9014 ttm_dma_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xab906f2a ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb3ae5489 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb7779bf2 ttm_bo_add_to_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbbb0afc1 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbc9aedb5 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbd9d63c7 ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbe565b8c ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc0eb5033 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc968d68f ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce6e43a8 ttm_base_object_lookup_for_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd8edb115 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdc08fa88 ttm_pool_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xddac0cf9 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe1e03e4a ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe3bff210 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe7e083b8 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xecb1a7e1 ttm_pool_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xefc4df0d ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf1926cf1 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf1fd5e75 ttm_bo_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf483e50f ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfd7484d3 ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfe5d6fa3 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfe8cc064 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfecff191 ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x6230b9c2 host1x_syncpt_wait +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x89cca254 host1x_driver_unregister +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x99fa2655 host1x_driver_register +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xdee93e7e host1x_client_unregister +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xeca3e8a7 host1x_client_register +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0e2a6864 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0f5877d4 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x34257f35 sch56xx_watchdog_unregister +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x50ace98f sch56xx_watchdog_register +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xe5022f95 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xed1d2a08 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x31b7fb43 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x8740b328 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x9ffc7d61 i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x38c7e4cd i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x472bca91 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x15cef0d8 amd756_smbus +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x5715c360 st_accel_common_probe +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x85a8ca8e st_accel_common_remove +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x1ba04a65 hid_sensor_read_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x1e872aa7 hid_sensor_read_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x544aa1b6 hid_sensor_parse_common_attributes +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x7ec9186d hid_sensor_write_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x91149297 hid_sensor_write_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x567f0486 hid_sensor_setup_trigger +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x9545657f hid_sensor_remove_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x00839b7d st_sensors_sysfs_set_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x074d7047 st_sensors_trigger_handler +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x373b0e9b st_sensors_check_device_support +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x3eb25894 st_sensors_sysfs_get_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x6eff5c3f st_sensors_sysfs_scale_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x7a526b00 st_sensors_sysfs_sampling_frequency_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x8052a735 st_sensors_deallocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x994f865b st_sensors_set_odr +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x9a42644e st_sensors_set_dataready_irq +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xabc4af0d st_sensors_read_info_raw +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xb1bb54f8 st_sensors_set_axis_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xc19962b6 st_sensors_set_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xed1e9183 st_sensors_allocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xf8746a98 st_sensors_init_sensor +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xf8d72c13 st_sensors_set_fullscale_by_gain +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xfcfa61ec st_sensors_get_buffer_element +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0x1d9bd3d1 st_sensors_i2c_configure +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0x8589841f st_sensors_spi_configure +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x6c8b1972 st_gyro_common_probe +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0xaae9b5e8 st_gyro_common_remove +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x17d09b90 adis_enable_irq +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x4f75a642 adis_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/industrialio 0x195d3752 iio_buffer_write_length +EXPORT_SYMBOL drivers/iio/industrialio 0x2b2b9577 iio_buffer_store_enable +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x33b8b25a iio_buffer_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x34c08fad iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/iio/industrialio 0x3d82461e iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0x3f38a8b8 iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/iio/industrialio 0x40521ad2 iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x60b37936 iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x64caeb9d iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0x6bbee988 iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x6eb1a547 iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0x74a5f65f iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0x8d76ae5e iio_buffer_read_length +EXPORT_SYMBOL drivers/iio/industrialio 0x98134822 iio_buffer_register +EXPORT_SYMBOL drivers/iio/industrialio 0xb5b6d512 iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xbb9964dd iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0xc4182091 iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0xccc9317c iio_buffer_show_enable +EXPORT_SYMBOL drivers/iio/industrialio 0xd1fcfc03 iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0xd62412bc iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xd91c78f3 iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xe7ba524a iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0xea3b4064 iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x85781f27 iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0xa4283d67 iio_triggered_buffer_setup +EXPORT_SYMBOL drivers/iio/kfifo_buf 0x3cac77ea iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/kfifo_buf 0xbd8b5e74 iio_kfifo_free +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x550b7a77 st_magn_common_probe +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0xb505e4b0 st_magn_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0xad0e4be5 st_press_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0xe68258b9 st_press_common_probe +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x049ace30 rdma_addr_find_smac_by_sgid +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x04b8b6d7 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1767468d rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1c3c0ad3 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x273f4cca rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x446fd7c9 rdma_addr_find_dmac_by_grh +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x45bbba01 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x5347cc38 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x7df81f32 rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x05c1a5a1 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x08cb49f2 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1d382626 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5822873b ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5cfbb423 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x645cb4e3 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x64cab7d4 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6fe5eb40 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x76895523 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa5904e00 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb027304b ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb4a69efa cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb59ab270 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xcce78272 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd1eaa6d0 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf61d0d3a ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf6c2b86c ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00dab989 rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x071b11be ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x08a1fc31 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0aa1e169 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0daef093 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x12254bdd ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17b7478e ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1c76afb9 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x20448c2a ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22d9811a ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x293c4638 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f3fbd57 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x30cf3077 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x386ba9bd ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b03ecfa ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b5fa9f4 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x412f124b ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x49add6c1 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4de342d2 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x51923c08 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5299b2b8 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53b9c449 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x540753c5 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x54c2a2d0 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x57add9ba ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5e0d3039 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5f29beda ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5ffc2595 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6018a5c9 ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x64e16fb9 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6731a92b ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x699e7aad ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6a9c109f ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e030e26 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6f9a2097 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x730e9bd6 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75ab9675 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75ef080b ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x764980e5 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78e0e421 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e5bcbc4 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7ea8cc64 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x873769a6 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x897618fb ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8bebdb67 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8fd331fe ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9878065a ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x98af2a55 ib_resolve_eth_l2_attrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9ca9cac2 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa116c48e ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa48a922f ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa98ff99e ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaaf30c76 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac217df9 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac5d66ee ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1fb0143 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb59a2b28 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbbb4c99c ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbca3eab2 ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc7648771 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xceb0c877 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd028a3d5 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd0978c89 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd3f46fea ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd4a0c3ba ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd710d294 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd7ad8c2e ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd9b7feb2 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdcac0cab ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xddd82ef6 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe1a2e6f5 ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe5df14ee ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7c7f3fa ib_destroy_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xefcd4ae4 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf06ec1de ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf1578294 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf7af0775 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf84653bb ib_create_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x06ed0224 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0f7a774d ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4bf67b4a ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x78c671d5 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x81df9aa8 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x85344c0e ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x99cc11b6 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9b8909c5 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb820380a ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xca30cfa4 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xdc47e6a9 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xfadfa11b ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x22f07253 ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x3cb3d1ad ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x552eb5b7 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x7f7ca9c1 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x888d9f96 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9e7aad54 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xaa7906cc ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb4606e23 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xd4375d59 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xddc330e7 ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xde9e1b2c ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x2569d757 ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x52a6ce77 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7971c00e ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe350f2aa ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4d341bfb iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x51943d73 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x53d12635 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x61df7eef iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x95bb3543 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xeb460d05 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf41a5cfe iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf84c352b iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2a83e04a rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x39cc31dd rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4b88bf46 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5131fca0 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x68762cdf rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7a2fb92b rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x80fa80b5 rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x896caa29 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8d5e9304 rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x96bfa6c4 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x97ed2f27 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9d87d93a rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa11b0bc8 rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xafc23d0f rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb205697e rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xba47fbbb rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc020c1dc rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc8760348 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd64a6bf8 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf8e6b57e rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfd789cff rdma_leave_multicast +EXPORT_SYMBOL drivers/input/gameport/gameport 0x49e87054 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x576e596d gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x5846308f gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x951295ad gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb7fb1305 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc24e7ccb __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc896412c __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd2c54323 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd7c1d0a8 gameport_set_phys +EXPORT_SYMBOL drivers/input/input-polldev 0x6da78ed9 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x9034ddea input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xbf6d6d97 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xc4d34656 input_free_polled_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0xe51f282b matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x09a08d22 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x7cc8006d ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xd37e5f6f ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xf1df0be6 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xa3eebdb4 cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/sparse-keymap 0x11cab48a sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x145ca3b0 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x925d95c8 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x9d4dde86 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe47045f0 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xff1132a4 sparse_keymap_free +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x862cf69e ad7879_pm_ops +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x90eb7953 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x0f632cad capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x3f56d240 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4ab698b6 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x54d1e9fd capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6c94b259 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x810b028b attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb3d9acb2 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xddf32eaa capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xdf3507ee capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf0d82744 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x3873ab03 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4345620a b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5c1ca32a b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x71e3ab75 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x7593cf9d b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9cdc8e27 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa2a88eaa b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa61db860 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa746194f b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb248c9d4 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb2da5138 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdb67443c b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe0a86dcd avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe335df51 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfbf0cfed b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x200201a0 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4d50774c b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4ff648bb b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x69e90723 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x85b180e2 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa772535a b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xbc7f631f b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6eb7620 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf568e33a b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x7ab59853 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xa3361450 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xc6aba555 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xd7d755b2 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xea58942d mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x9008dba8 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xbc46afab mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x6d0da8f1 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3feeac91 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x4a8f5cd1 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x54ea623e isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x65a3ed07 isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xb2b3ae36 isac_init +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x731c6488 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x75c17a6f register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x8d311c54 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0189ed45 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x07fc9e8c recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0b619a19 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0ba27f69 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3d582297 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3fad50cf bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x53abb90f recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5d052a5b mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5eed864a bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x61734106 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6a8049fc mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6cfdc566 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x72360474 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x86240bb8 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8670e1d9 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x89b5f3d2 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a4e99fb mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xca89d822 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd161447b get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd94423e2 mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdcff1822 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe362460e recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe3d5016d mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf5f44086 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0x0ad39993 omap_mbox_disable_irq +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0x511e62bf omap_mbox_put +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0x9b764883 omap_mbox_restore_ctx +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0xc6e28e9a omap_mbox_save_ctx +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0xc7131466 omap_mbox_msg_send +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0xcff1620b omap_mbox_enable_irq +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0xdbc75fe3 omap_mbox_unregister +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0xddcf80b5 omap_mbox_get +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0xfbb51137 omap_mbox_register +EXPORT_SYMBOL drivers/md/bcache/bcache 0x41fed1e2 closure_put +EXPORT_SYMBOL drivers/md/bcache/bcache 0x7c0e295b closure_trylock +EXPORT_SYMBOL drivers/md/bcache/bcache 0xced47c4d closure_wait +EXPORT_SYMBOL drivers/md/bcache/bcache 0xd21e0f13 __closure_lock +EXPORT_SYMBOL drivers/md/bcache/bcache 0xe3c17af1 __closure_wake_up +EXPORT_SYMBOL drivers/md/bcache/bcache 0xf6a150a4 closure_sync +EXPORT_SYMBOL drivers/md/bcache/bcache 0xfd8216e2 closure_sub +EXPORT_SYMBOL drivers/md/dm-log 0x53d051b3 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x85f41acd dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0xb629b1af dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xe5d56f80 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x31ee2088 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x3c10fd7e dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x6a8ea49a dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x6d26792f dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0xe97855df dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xfc4b0212 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/raid456 0x5858dfeb raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x029f53f4 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x0ea284b2 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x525e1e3c flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x64ce0319 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x6982a577 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x75dc41b0 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7e61e52d flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x98d60c77 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xb7e56c9a flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xb8e845d9 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xbcb7c218 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xbcf74240 flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xed6c568a flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x0b895d9b btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x2969efdb btcx_riscmem_free +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/common/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2660d05e cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0x3db8be82 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x4f7413fe cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc1058904 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0xfe0a0814 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0xda6adb5f cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/tveeprom 0x784ff471 tveeprom_read +EXPORT_SYMBOL drivers/media/common/tveeprom 0xe21f4a5c tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x051abaf7 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x051d5d25 dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x17523ce7 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1ca55e2a dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2471ff90 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x24a054ea dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x275f9950 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x344908d4 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3656cb10 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x45717fe5 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4651ecfc dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4bc8d162 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5311aaec dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5681b0b6 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x629f9d31 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x69041ba3 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x72180695 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7b3d5015 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7ea46db8 dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8633f37b dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x89e507be dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8cb7380d dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8decd294 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x901ef9d1 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9c19040b dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9c6a0170 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9d099fa8 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa26997b1 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa516866e dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xbf24be4d dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcc622f21 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd68a099e timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdb1a8bd4 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdc094c39 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xeaae3889 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xedb7767a dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xef98edff dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf48116c6 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf653b961 dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb-frontends/a8293 0xdd0154ae a8293_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9013 0x37c31b36 af9013_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9033 0x393c3d73 af9033_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x7492207a atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x01e83e7a au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x0b030bc9 au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x11795b1b au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x4432464f au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x7cdb8025 au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xa2ac60b4 au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xd668bb5a au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xe7a20554 au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xf160794b au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0xdae04619 au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0xc43b5c8e bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0xf21e41b9 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0xfc641d6e cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0xb666fc57 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x3a39b5c0 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xba0d0d6f cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x440a9fe9 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x2123fbaf cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xe228c30c cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0xfb054ddd cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x0eccaaf1 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x42d0dbee dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x64f9c17c dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xde7a4f93 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xf8b4f50f dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x262cbe11 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x363e4445 dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x5b95c731 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x6405699a dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x6babf0aa dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x89ede7d1 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x8b497f3b dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x93b32ef1 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x99bdfb30 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xbd42b150 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xc2d78e1a dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xcce7f24c dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xcfc5a315 dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xd28a0d0a dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xda5d00ca dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0x0c9fdfb5 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x061c91f8 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x2484e199 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x349444f0 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x50c14caf dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x9fdf39e1 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xa4addb1d dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x0538c51f dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x407ebdf9 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xb00f888b dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xd1709562 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x018c0025 dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x164cd338 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x4384734f dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x4f4ac0b7 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x512ff3d0 dib7000p_set_agc1_min +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x7dbad2e1 dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x851efb3d dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x93c8ba1b dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x9ee6f9e8 dib7000p_get_agc_values +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xac0dafe5 dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xb0c63e99 dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xb5be4e62 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xc2863d5f dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xc94f35b2 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xd3a2f09d dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xe5aca758 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x039b5e5a dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x12494726 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x2b4a5da7 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x2ec5f3e6 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x302fcb08 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x340d73bf dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x3c8c458b dib8090p_get_dc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x48eaa7e9 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x4ac19e29 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x4c8c3315 dib8000_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x7b9e7c55 dib8000_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x7bd856d5 dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x828263f7 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x8a0059a5 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x979fc55a dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x9e9ef80a dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb8ae91df dib8096p_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xe14a28b1 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xed649683 dib8096p_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x18a0c76e dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x54c67ba8 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x604b0349 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x99856531 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xa23926ae dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x671b7d72 drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0xb92dfc15 drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x80e9193c drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0x969eebcc ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0xaf92f175 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0xf884272d ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x498d777d isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0xd704fc73 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x0e5ca4b8 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/it913x-fe 0xca265717 it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0x111a33c6 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0xe1475758 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x4062e6aa l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0x1357bcc7 lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0x68baa09f lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x68c8d53c lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x6a0f10db lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x6036926a lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x860b355c lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0xc422367c lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0xd9f56f8b m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0xdf6a10bf mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0xd872ccb4 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x218cf76f mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0xb9df7421 mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0xa741b4f8 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x65f0122a nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0x263b581f or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0x302ce733 or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x10680470 rtl2830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x5334a693 rtl2830_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2832 0x0e915137 rtl2832_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x355edb46 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0x6046e873 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x18dca086 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x719eca8e s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0xa0e5504c s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x990e8f80 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp8870 0xb3ca85d1 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x2b567c0a sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0xb64f7bec stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0x42b164f7 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0xa2b6122e stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x1be104f4 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0xeaa8c693 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0x214555ab stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x4d80e679 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x9543c644 stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0x02363350 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x38450b4b stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0xdb128573 stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0x047602e0 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0x95807df3 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0xe6c2bec1 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0x78ea48fc tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x9d374454 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x2a965556 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0xfafac642 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10071 0x31ec27c6 tda10071_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0xf976c538 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0x54240650 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0xf3047684 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0x02b39099 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0x316c157c tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0x24d6eb9e ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0xd8a0efba tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x5c270ff1 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0xf295a8f3 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0x2265f9a5 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0x52e9f73b zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x97a0edfa zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x1c10dbd0 flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x7ee1252c flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xb703ac94 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xc2c18c4c flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xcb78bf01 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xeb258a3c flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xf2233fab flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x1a624e22 bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x797f61f5 bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x8d025a5a bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xa9829739 bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x34dace08 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xe4d1e8ce bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xfa735c24 bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x0bccdd4d dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x124dfd2e rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x46ba6834 dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x86bed6c9 read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x9cbffcbb dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x9ece3f57 write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xc01f43c0 dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xc3079758 dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xec711dc0 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0xe48c6777 dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x32652a0c cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x911d9348 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xa1d23544 cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xe0afef2a cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xf85afe91 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6d861758 altera_ci_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x86dd7400 altera_hw_filt_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xd8f2ca71 altera_pid_feed_control +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x144d3e8f cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x31ac9392 cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x3d0ea167 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x7e408955 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x983981cc cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xc5d38741 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xdcf5ebc5 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x59b00d87 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x70ed21be vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x18456884 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x346652d6 cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xb7703329 cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xffde5a57 cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x059dbf55 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x090b19ed cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x0e7a3085 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x3aeaeb7e cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x68e04929 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x6aea339a cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x03576e87 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0a45ddb5 cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x118a9280 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x130b0094 cx88_free_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x1bd15554 cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x1c1f666e cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x26b805df cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2de233a3 cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x318f4647 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x40f1196c cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4216fc84 cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x480a6f56 cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x480c200a cx88_risc_stopper +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x52378f86 cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x8f48a536 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x93d62d2e cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x9abc2cc7 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xa7ec13e1 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xaaee9601 cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xbb5a9dd4 cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc3409e36 cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc94bc646 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xeaa16cbe cx88_reset +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x012f1464 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x04bb590c ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x33f05e8e ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x379f0df3 ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x45b45e21 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x48c9c3bc ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x4b786f4d ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x562fa72a ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x629a752b ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x72b4899a ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x72ddceb8 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x836afa3d ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x918453b1 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xab4d43d2 ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xb4bb1c6f ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xb5bc0bdf ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xc613dfee ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x07ccce3e saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x12ca87bc saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x321dd060 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x56fd212d saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x73039031 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x7d10ab5f saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x7e6422ea saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xa863426c saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xb1488edd saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xd78c99b7 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xdfd51ad3 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xf14bff63 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xf8e0d75d saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xab2b0458 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/platform/davinci/vpfe_capture 0x1cf0d669 vpfe_unregister_ccdc_device +EXPORT_SYMBOL drivers/media/platform/davinci/vpfe_capture 0x7e041d70 vpfe_register_ccdc_device +EXPORT_SYMBOL drivers/media/platform/davinci/vpss 0x088ccec9 vpss_select_ccdc_source +EXPORT_SYMBOL drivers/media/platform/davinci/vpss 0x319709a6 vpss_clear_wbl_overflow +EXPORT_SYMBOL drivers/media/platform/davinci/vpss 0x54146824 dm365_vpss_set_sync_pol +EXPORT_SYMBOL drivers/media/platform/davinci/vpss 0x6e5b5413 vpss_enable_clock +EXPORT_SYMBOL drivers/media/platform/davinci/vpss 0x72f7c8bb vpss_set_pg_frame_size +EXPORT_SYMBOL drivers/media/platform/davinci/vpss 0x749bf2c9 dm365_vpss_set_pg_frame_size +EXPORT_SYMBOL drivers/media/platform/davinci/vpss 0x7517e8d7 vpss_dma_complete_interrupt +EXPORT_SYMBOL drivers/media/platform/davinci/vpss 0x95f8c400 vpss_set_sync_pol +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x0a672fb7 soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x2a755be6 soc_camera_power_init +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x427a8891 soc_camera_lock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x6cd6eb7e soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x6f31b4dc soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x7ffadd16 soc_camera_power_off +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xc7704f4f soc_camera_host_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xcde220b5 soc_camera_power_on +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xda4c1ee1 soc_camera_unlock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x25c52d97 soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x2863728e soc_mbus_image_size +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x5f3e3558 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xa9546115 soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xfe2c3a07 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x1b15420c soc_camera_client_scale +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x20965525 soc_camera_client_s_crop +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xbd9c6035 soc_camera_calc_client_output +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xe4634ee1 soc_camera_client_g_rect +EXPORT_SYMBOL drivers/media/radio/tea575x 0x14a74379 snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x47118dd3 snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0xe2f695e2 snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/radio/tea575x 0xf13b2bd5 snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x0f33c477 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x37708914 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x435a8742 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x977b6804 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xc34b86cb lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xdb4a8d2f lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xea081c5b lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xf3e6cc10 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/rc-core 0x062cb6be ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0xaf15117a ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/tuners/e4000 0x5f5fc281 e4000_attach +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x04a3109e fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x49ff544f fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x0abdf7d7 fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xbb65dd0f fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xedab3561 fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/fc2580 0xfbae8d08 fc2580_attach +EXPORT_SYMBOL drivers/media/tuners/max2165 0x4072366d max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x800d4729 mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0xdeb082ce mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0xf5f3ea8a mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0xaf8121e7 mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0xc23a4fa8 mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0x426e0271 qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18212 0xd06a7fa0 tda18212_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0xa26823fc tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tua9001 0x64c1a878 tua9001_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0x0cf15e3f xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/tuner_it913x 0xfcaf9fe3 it913x_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x9a41afed xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0x0c0b5efe xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x106a4bdb cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0xd72c0330 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x21d433dc dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x2eaab21b dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x4647ec07 dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x51dbba6a dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x68380640 dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x8c810c92 dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x919846ac dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x983a4d3a dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xde7acf9a dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x0c2c1949 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x25c167cf dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x38ba5864 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xd1d0e616 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xe4ca14e9 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xe55d7a43 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xedad6494 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xab5b3160 af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x0cbe5f6c dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x15308afe dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x3837548e dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x3ccc1764 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x4f5225da dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x9c536f7d dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb8373d28 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb8649b7d dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xbc683d9b dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xcfda27ec dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xe4f0efeb dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x8237c25f em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xe99e08df em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x0dab3c5a gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x2f38e540 gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x6c57ba8f gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7119ae38 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7ed4c0b3 gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x91d06d86 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xc9b50b1d gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xcb4a34a6 gspca_suspend +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x476a4c07 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x9922e9fe tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xbfa0b81d tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x1c91578c ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x37565646 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x4adaf0f3 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x53c9394f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x5f96a661 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0xabe27502 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xd924da13 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xda2889ba v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xfefa64fa v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x6da5f8d3 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x7f9ed93f videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x8bac37b2 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xb74fb6c8 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xc8d4a750 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xce7c8411 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf2-core 0xea9197dd vb2_querybuf +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0071e5a3 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x076efb8f v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x08bde937 v4l2_clk_set_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0966dfe9 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x10386659 v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x132d8157 v4l2_async_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x140e371b v4l2_of_get_remote_port_parent +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1aa3c726 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1b285af5 video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x21fac616 video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2976d048 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3129a77f v4l2_clk_disable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x32eb4933 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3452a7f4 video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x36847d11 v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3ca6dc5e v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3db7f213 v4l2_of_get_remote_port +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3de0399f v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3f8fed35 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x45e31b1a v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x474308f9 v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x47f6a755 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x48ef20ec v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4b5ddddc v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4dd59ce0 v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x500d08b4 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x50a9a0c2 __v4l2_clk_register_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x53671efe video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x57e8957e video_usercopy +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5a4ceb3b v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x60b7fef2 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x617163e3 v4l2_async_notifier_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6197a859 v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x64a4cbac v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x65419572 v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x68f1bc9a v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x754a9424 v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x77832cf9 v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x79d3e52c v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7dd83b97 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7f923f2a v4l2_of_parse_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x92331e13 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9329503a v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9485fc00 __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x95bc6838 v4l2_clk_put +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x96d6f001 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x991153a4 v4l2_clk_get_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9a29d22e v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9abe287a v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9ad20129 v4l2_clk_get +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9e67375f v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa41e4eb4 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa5f7cc04 v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa77bdb6b v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa8d31264 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xad561cd8 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb76d5d2e v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb90cbedf v4l2_of_get_next_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbac4a225 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbe834db5 v4l2_clk_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc12cf8f8 v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc55b2a12 v4l2_clk_enable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc9302b0c v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcc71d3dd v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd0b0d118 v4l2_clk_unregister_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe416f3f8 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe5c8db68 video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6fce6f2 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xec2d84a0 v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xee44822e video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf5c9eb8a v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfb8797db v4l2_clk_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfd83aaa3 v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfeb3f1c9 v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/memstick/core/memstick 0x2765774b memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x380757e3 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x47a1f2e1 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4c82b50d memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4ea41e88 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5b5c17c8 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x6d234c87 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7dba62d9 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8c9b5da4 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x97b27364 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x995241e7 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa0177b3b memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc7c2d5e3 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd8fb5f36 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x183221cc mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x183ed356 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2312171b mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x31c263d0 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4226481f mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4842768b mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x58ac9735 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6096e470 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7404d148 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x88cbcf42 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8d3881cb mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x90fe8991 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x94ec8207 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x98609a22 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9c246e90 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa31438c1 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xace9df9e mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xade599dc mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xaf7b0433 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbee99245 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc83af8ea mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcc28a40d mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xce41e359 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdce724d4 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe22ac90b mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe8f1906b mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xefea3631 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf12a5b83 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf3f8343d mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x01c56425 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x034ae944 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x09c33e71 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1a18368a mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2fa876ba mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x313d7404 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4316dd10 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x43af7833 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x43da199e mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x574f24c9 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x586e4e57 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x785483b3 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7f2646c8 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8e628947 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x95bebd3a mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9f6782ee mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa553df64 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb1f1b0c3 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb7cc0b9e mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc0e40d2e mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcaf918da mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd0d745fa mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd43fdab2 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdf8c18ac mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf0ff9529 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf2af2a49 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfe4b1226 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2974485c i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4f520195 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x50546729 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x62a9e051 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x62fa0f39 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x64b72232 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x74325816 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7d5eb93a i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7e66bcba i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbae7fec3 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdc2fcc61 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe75f8df0 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xea6ca89d i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xee6064c6 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf3a5830a i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf5b5a602 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf82e3a25 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf94305ab i2o_parm_field_get +EXPORT_SYMBOL drivers/mfd/cros_ec 0x4227ebba cros_ec_suspend +EXPORT_SYMBOL drivers/mfd/cros_ec 0x44d9df9e cros_ec_register +EXPORT_SYMBOL drivers/mfd/cros_ec 0x89dcf139 cros_ec_resume +EXPORT_SYMBOL drivers/mfd/cros_ec 0xf85edaf3 cros_ec_remove +EXPORT_SYMBOL drivers/mfd/cros_ec 0xfae0414c cros_ec_prepare_tx +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x79a04faa pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xc93e2e6e pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x02c368f9 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x19eee3cc mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x23e1f3af mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x320a16d3 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x3c7e7b55 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x45871415 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7d213b81 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7e6e95a9 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb7562c1f mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb9c3bf92 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xbfbfab0d mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xcbada10b mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xe326dac2 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/tps6105x 0x5ee9d100 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x9d8c2b42 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0xc21e2cca tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x5faacc20 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x6cd0ad90 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x8a05ed90 altera_init +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x0d72dca6 ssc_free +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x29bdbc00 ssc_request +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x0e9755b9 pwm_channel_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5a8b82f9 pwm_channel_handler +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5d5c2951 pwm_clk_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x6a5e1f70 pwm_channel_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x73330c97 pwm_clk_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0xeb7f2c6f __pwm_channel_onoff +EXPORT_SYMBOL drivers/misc/c2port/core 0x0d1a5b32 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0x3c3dec23 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x6518d3b7 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x92be6862 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x082c9e7a tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x32189130 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x542c738d tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x63660baf tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x68e57106 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x7c6908fe tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xb27522f1 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xce7eb4c1 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xcfe42e10 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xec4e0a64 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xee4ac25f tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0xf6bb79b1 tifm_add_adapter +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x5459e8c7 dw_mci_suspend +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x623c4d01 dw_mci_probe +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0xa998a6d7 dw_mci_remove +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0xc575fb3f dw_mci_resume +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x378f2335 tmio_mmc_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x6d3deee9 tmio_mmc_sdcard_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x7a6fd700 tmio_mmc_sdio_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x826df85b tmio_mmc_host_probe +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x9fefc399 tmio_mmc_host_suspend +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xb544bfe9 tmio_mmc_host_resume +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xb795e420 tmio_mmc_host_runtime_suspend +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xcddb98d1 tmio_mmc_host_runtime_resume +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xe8337dfa tmio_mmc_host_remove +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xf02062dd tmio_mmc_card_detect_irq +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x0021f031 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x9b7453fe cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x9eae2150 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x96fd9b2a mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xa444e175 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/nand/denali 0xecb90234 denali_remove +EXPORT_SYMBOL drivers/mtd/nand/denali 0xeee20718 denali_init +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x268e7535 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x5439e327 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x807ce924 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xada99c4f onenand_scan_bbt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x145e7b0d arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x26b7dde7 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x34dc4274 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3aecf7ee arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9a0e5088 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9e2c2c6b alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xba134fd8 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe87ddb2d arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf81a614a arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfa304cc9 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xacc4aee6 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xddd53d2b com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xec0130bb com20020_found +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1fc7431a ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x6b2f367e ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x6cf1d740 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa59cd9d3 ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa864f99f ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa8993ff4 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xb14507e0 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xb6565644 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xcf54824c ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xdf257b58 NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x97fc3888 cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0a6b5fe9 dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x29aa55d2 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x317ad219 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x40a874fc cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x557c0640 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x66beeea2 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6f6b1fab cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x77766506 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9517c4b2 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xac83c429 t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb04e24cf cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb31f409d t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc1c17a16 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc53c4dee cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xdadc6a2f t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xfc543818 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0c7b42e7 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0d25f5e6 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1ceb70d0 cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x27368e59 cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2c298a79 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2df467ec cxgb4_enable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x31c9213c cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x364d2f19 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3b6e6d81 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4189521c cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4c14c7a1 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5cfc1c88 cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x662e3238 cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7014a26e cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x779b5898 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7c070bd0 cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x892df5e5 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8cbfafbc cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa0c21417 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xaac007bd cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc1dcf196 cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcc49b307 cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcdfe0ff2 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe25f9a0a cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe2e99d9c cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe7079e21 cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe80ad9b6 cxgb4_disable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xedffba0a cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x0e712340 vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x4f650da7 vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x9196d804 vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xae20759b enic_api_devcmd_proxy_by_index +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xcac81d32 vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xe9f5139f vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x363b1b29 be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xbab62e22 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xc6901f99 be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a554009 mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e3701a4 mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x150eb70e mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x16eca5dd mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1e28f9dc mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x214fe3d2 mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x28b288c6 mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b68fd7b mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5b02b496 mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x61866712 mlx4_set_stats_bitmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x66015016 mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x76870273 set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x809c7e69 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8c05f844 mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9499f143 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb9b7468d mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbb666b98 mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbca36082 mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcafb02dd mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd777d68c mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd829cbe8 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xddfc86de mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdee86935 mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe4b60854 mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeac6a4f8 mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf51893fa mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x082bb278 mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x263aaf11 mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x26e4fb07 mlx5_dev_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2a3def4e mlx5_core_create_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x31dfbbc6 mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f63c290 mlx5_cmd_alloc_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x404f2ae4 mlx5_core_query_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x408ab5f8 mlx5_core_arm_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x45b336af mlx5_cmd_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5769e80e mlx5_core_destroy_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x69231c79 mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x80614ae2 mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x93403033 mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x93a863c2 mlx5_cmd_free_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa0aeb547 mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab30c8d9 mlx5_cmd_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb7738f4d mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbccd67bb mlx5_core_dump_fill_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbeb7b7fc mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcc527d52 mlx5_dev_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xce2f7d77 mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6b82adc mlx5_core_get_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe94d6b15 mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef5bcd05 mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf027c620 mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf180659a mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf516885d mlx5_cmd_comp_handler +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x06e12a1b hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x83181a94 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa2f35d02 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xc61e58ab hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xfcb6e4a3 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x0362dd42 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1d63e62d sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2e1cbe4f irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x319839d8 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x517b16ef sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x59459535 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9aaa771b sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9f89ea3f sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa2c9acb9 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe5518f53 sirdev_receive +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mdio 0xddc98749 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mii 0x0cc0d748 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x1930b8b5 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x3cd09ed5 mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x661b57ab mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x66c90a72 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xadb5aefd mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0xaf0683d1 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xbc7e7fbf mii_nway_restart +EXPORT_SYMBOL drivers/net/ppp/pppox 0xd8d5c5a7 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xf0fead2e register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xf7cc4e9a pppox_ioctl +EXPORT_SYMBOL drivers/net/sungem_phy 0x7353726b sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x41df2b09 team_options_register +EXPORT_SYMBOL drivers/net/team/team 0x6101d83f team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0x7b8bbec2 team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0xb07b6947 team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0xbd019e52 team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0xc8dd8bdf team_option_inst_set_change +EXPORT_SYMBOL drivers/net/team/team 0xcc7a6328 team_mode_register +EXPORT_SYMBOL drivers/net/team/team 0xf0cfd42f team_options_unregister +EXPORT_SYMBOL drivers/net/usb/usbnet 0x47f86b76 usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0x69558e14 usbnet_link_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0xc267e0d0 usbnet_manage_power +EXPORT_SYMBOL drivers/net/wan/hdlc 0x0bf6f957 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x104fea67 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x24de8acd hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x3dba2eaa hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x52754a39 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x6fd6731b hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x888168b6 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa0b5d627 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb11a53df hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe0411ae2 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe67c7aad unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x1efcaf2b i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1697bb01 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1e15530c dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x240ddfb3 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x26a07f45 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x34e6eff6 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x53358ce3 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x65a3745e ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x717b86c7 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x77e66302 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xc91858e8 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe1aa5f40 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xeb278dce ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x41c5bf50 ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4eb1c694 ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8246be6c ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x895f9dc2 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x9bdf98dc ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf096710 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xd015dee6 ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xd076e530 ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xd34a5c04 ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0199ec46 ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1c98fe30 ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x27cf1694 ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x338c8e2b ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4c6ddcb4 ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4e1380ee ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x5816229b ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x6525db4f ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x6a667ffe ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x8f7216d3 ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x978ac664 ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb7bc9016 ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xe904ebbe ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xf66b896d ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x1b888287 ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x91fc76f5 ath9k_hw_wow_event_to_string +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0xfa7c5afb ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0xfa8e9004 ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x0d91bd7c ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xbb2d4bd5 ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xcb297987 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd14c510d ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x03a0cee8 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09d411b0 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0eacb5ee ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17f9b65b ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x18347969 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x19b502a1 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1bc788f3 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1c18e9f5 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x212caf29 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22637581 ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x229583b5 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x25e568ce ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x269c874b ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2bc26ba6 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d8b98c9 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e900a6e ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f869a76 ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x451c32ea ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4836b72a ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4dc14789 ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4febff35 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5109aef5 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x52b4fef1 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x537be943 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x576bc84a ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5bfc0775 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c664188 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5db782c7 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ddeff5f ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5dfcc3f7 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e361f55 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6260e7b5 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x631a7895 ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x63655e24 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x67d9408a ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x69cd1371 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6d2dfb47 ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6d6dd85d ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6dddc5b9 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fae72fd ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x70811abb ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71ede4d4 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x741cffd2 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x78fb4bd6 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ba0677d ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c7bcadb ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x802be3b0 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8243a661 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x85694c4d ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x88d118cd ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x89dfc1bf ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9090af3b ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x91bea3db ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x926ca597 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x92cda848 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x93c9b138 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9632ae54 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa1ffdbe6 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa68f35d0 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa9090803 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab5ce96e ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac658080 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf641f86 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0da9188 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2c96cda ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb5818132 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8ccb76a ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8f4c763 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbadafa57 ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb743595 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc06ebd49 ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc60ce659 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcada34fe ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcb642906 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcd83326c ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcd972c45 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcda6fbe1 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcecd1c7b ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd340bcde ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd3ca3c08 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd5081806 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd668d274 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc9c0aba ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdfedab40 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3d975e6 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe576437a ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xec14e3b7 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xec9b0460 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeecbbb3f ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf28dda33 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf333fa36 ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5742ea7 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf6c38a0a ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8353692 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfbfa8033 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfd956528 ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfe1602f8 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff43f169 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/atmel 0x1c1d4a0f stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xb1341bac init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xda8e6845 atmel_open +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x915e8e82 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x9b718859 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2dc227f8 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x304f86da brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x456d8325 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4659b317 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x48963de7 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x560df4a1 brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x56a5a991 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x7e335a13 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x83b21708 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x9b3e9829 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xa29ebd7f brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xa7d15465 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xbdcd6287 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xf3e703a9 brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x04df2414 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x12ba30ca hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x258d0a04 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x27eb2423 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2b0ccfc8 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3061d447 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x375d54cb hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x48e3c7af prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5740050e hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x60477fc0 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6af4e93a hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7cff9a0d hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7d34f66a hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x835d583b hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x86b2dba8 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8cc312ef hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x905d32d2 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa13d9eb7 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa40a11d9 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbd2f2576 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc48cd373 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc8a4c249 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd492b158 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf85957a7 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfa0d4ef0 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x13200604 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1604a5dc libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x17cf56f1 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1e061980 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x282d34e4 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2a115608 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x339b487b libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x33d9fe6d libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3b8705fc libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5bebc584 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x600c7591 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x86f68861 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa411a1ab libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa7203387 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa779d70b libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb9bf29e2 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbeab0683 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe0445f30 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xeeadbdda free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfa58fe9a libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfc0fcc30 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x00362287 il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x05db74ed il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x06f1e625 il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0767fac4 il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0772a53f il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0bc7d5cf il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0ca99f47 il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0e097168 il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0e8a3a34 il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0f3e11be il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0fbc0cfa il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x10f8e91d il_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1377778f il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x139b05d6 il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x19c111d2 il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1b9b949e il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1ce6fde0 il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1fb89d5a il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x20d95a8c il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x225da152 il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2325a78e il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2508f5f5 il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x25236573 il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x28b98b66 il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2902b61a il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2a2a51c3 il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x34beedd8 il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x37224a02 il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x384aaec2 il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3c9a6535 il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3ccf6f74 il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3cd9bd18 il_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3fae581f il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x40c50229 il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x446570e2 il_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x45b58625 il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x48940b5f il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4a2a2b6b il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4aa39103 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4c3ac897 il_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4fc48c35 il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x522c6560 _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5256883c il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x537bb10e il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x564c6740 il_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5c5a2c19 il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6016b942 il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x62787efe il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x63ab77af il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6805ed65 il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6a241acc il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6ab0ecea il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6ea01979 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x701d839e il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7580a533 il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x78240a46 il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x79c05d0e il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7c962e7f il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7d4099a3 il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x865b277a il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8754ded7 il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8a3062b5 il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8d56a4dd il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8de04fbd il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8dfa076f _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8f5d0b4a il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x94a35085 il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x95e3c2de il_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x97981d29 il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x97cbff30 il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x99069f48 il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9a1ff506 il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa4bed31f il_set_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xac6def08 il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xaea31f8d il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb2ce4467 il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb7bd33ff il_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb9196c41 il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbb49d0d0 il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbdca7db7 il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc01504fb il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc036c82f il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc39cf12c il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc6610036 il_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc7771ad1 il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc9bb1f17 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcb58cc86 il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xccd8a0a3 il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd08c5b56 il_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd505eba0 il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd7cefbb4 il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd934270f il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdf21621a il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe20f3f58 il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe6562076 il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe92976ca il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xea886514 il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf00f8101 il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf13278bd il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf501278b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf6b9d407 il_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf6c1289f il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfaa2e9d6 il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xff6786ee il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x08ee1e7d __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0d9eb5ff __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0e7bc05f __tracepoint_iwlwifi_warn +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x201337b4 __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x249e4b06 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x36dcef55 __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x4919d1a5 __tracepoint_iwlwifi_dbg +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x67381a2a __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x79e9bf26 __tracepoint_iwlwifi_crit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x7edec07d __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x8bfcc307 __tracepoint_iwlwifi_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x9a12c9c5 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xc0827b2f __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xda36f3a4 __tracepoint_iwlwifi_err +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0bc1dd0f __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0be8c0d5 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x204f812e orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x35d39536 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4d9fba14 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x53d469a1 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x561b60aa orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5bfb0c47 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6b06cba3 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x71a7cfc1 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x78a50aff orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7ad20059 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7d803d5e free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb943a721 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe0cd0f96 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf538f095 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xff0fa6c1 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/btcoexist/btcoexist 0x051c2085 rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x056c4d3d rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x12b268b4 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x14607a19 rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x214c356a rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x220e6b4f rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x262f1424 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x27c1628a rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x29a4a79f _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2a26e69f _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2b761f26 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2cb1fc46 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x38622a60 _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3e1af282 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x489b0135 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x49904ef5 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4bba492c rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x51905a89 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x553f0176 rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x60ecb79b rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x62f90ab7 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x662e5bd6 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6b68d96f rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x79075cff _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7ea54a4b rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8a52f938 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9c1dccb6 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa8ab3d99 rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xae24b5cd rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb097c61b _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb6386e09 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc46afc27 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc7554069 _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcef09d0b rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd7dd6db5 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xde25440c _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xde3202a2 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdeca01b3 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe85d3b44 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf356f79d rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf3dfbcd1 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfd879433 _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x61a8e5ee rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x9d7ee233 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0xaad618ea rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0xfb2158a2 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x91699c46 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xba505f1b rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xc724871e rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xce361c8a rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x006a40eb rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x01d34da0 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0b0f8c13 rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0cfff931 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0e47e5b4 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x207fbb70 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x20ad4778 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2bc13093 rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3e65be4a rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4b9431c1 rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4eb641e2 rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x53a932ef rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5d551d23 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6188e820 rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79188a02 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x8f1f4cbe rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x900ba823 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb2232fb3 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xbb41faf9 rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf6a51252 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf7e09297 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfc8a7cae rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x131108a4 wlcore_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x4a635854 wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x8fa46687 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xda344f0e wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/nfc/microread/microread 0x67949181 microread_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0x751cdfae microread_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x1cd3407e pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x719ae18c pn544_hci_remove +EXPORT_SYMBOL drivers/parport/parport 0x00bf181e parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x04ded69c parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x0a564873 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x1fb7bf5b parport_release +EXPORT_SYMBOL drivers/parport/parport 0x274b24cc parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x2a61bcde parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x459cd2f7 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x4879d4b5 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x48f27df2 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4f7c55e2 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x573773f5 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x5eeab249 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x6c3c1f85 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x71b72dbc parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x81c0bd73 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xa26f3edc parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xb88b6673 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xbf59d729 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xc0257854 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0xc2adb9fe parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xc60e328c parport_read +EXPORT_SYMBOL drivers/parport/parport 0xd0a74780 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xd238c649 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xd3c56e62 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xd4c57eb5 parport_write +EXPORT_SYMBOL drivers/parport/parport 0xdb2d70ec parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xe1a19bc5 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xe7ee9129 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xfb57d045 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xfbb9e5f6 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport_pc 0x170815a8 parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x8b888a0c parport_pc_probe_port +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x054ee5e1 rproc_report_crash +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x3f836073 rproc_boot +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x4d8a1711 rproc_da_to_va +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x7a5f8abc rproc_vq_interrupt +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x980e0e51 rproc_add +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x9f7534f7 rproc_alloc +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xbf8b59cf rproc_shutdown +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xd57f2185 rproc_put +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xf1cb3932 rproc_del +EXPORT_SYMBOL drivers/rpmsg/virtio_rpmsg_bus 0x3789ce34 register_rpmsg_driver +EXPORT_SYMBOL drivers/rpmsg/virtio_rpmsg_bus 0x556bc7d6 rpmsg_destroy_ept +EXPORT_SYMBOL drivers/rpmsg/virtio_rpmsg_bus 0x6a43be83 rpmsg_create_ept +EXPORT_SYMBOL drivers/rpmsg/virtio_rpmsg_bus 0x6e5f4477 unregister_rpmsg_driver +EXPORT_SYMBOL drivers/rpmsg/virtio_rpmsg_bus 0xf005a458 rpmsg_send_offchannel_raw +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x03669bfa fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x078247d3 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x14a7263b fcoe_ctlr_destroy_store +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x27fbb5a7 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x59a9df71 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x61b1db8a fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x651debc2 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7b330014 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7e09bb2f fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7fa19ac1 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8caa5af2 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xfb385bd4 fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x04cd7153 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x06f44ab1 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x097b765c libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x122159e8 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x13a6680b fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1f1ba9c4 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22011400 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x220311ba fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2391f3e2 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x23fa980a fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2441ced2 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x24a65f65 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x310106ab fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x33b1a1ae _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3545ddab fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x41b6b754 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4803337b fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x494284e0 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c278c6a fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x54927f1d fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x549bb03b fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x54b69b1a fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x66038070 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x66602c75 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x693f55d0 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x758a65f9 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x75e13f2c fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7a39a80e fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x848a42d7 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x89490e1d fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8bdc9962 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8c9e2892 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8facd82a fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa3cbf20a fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa428f922 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa7276c3a fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa98484fd fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xab58d74d fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xad1b4ba3 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc12c0812 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc5741d92 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc934593d fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc9d46151 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcbce36ae fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xccbb5c2b fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd082be3a fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd1629b07 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd1d250d0 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe20eec7e fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe50fe803 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xeaab4466 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfaba4998 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x1715774d sas_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x25ca3d60 sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xcf982656 sas_wait_eh +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xd440f4d7 sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x493eb208 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x05358e3b osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0ce9e9ab osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x21d39cf0 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x22e0b83e osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2ce5b986 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x33da948b osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3897b10e osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3a213ba9 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3b6e5cb7 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x48f22285 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x50d9e354 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x67976379 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x770c3b2f osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x77d027d4 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x78c007de osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x823e5353 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x83c0a9f5 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8fcedb21 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x974df435 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9bcb0259 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9e514555 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9ff0b468 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa113f922 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa4cae8c6 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa5a6ba05 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa80e946a osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xad50761f osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb5940ff3 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb5b629ea osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc54368ba osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcbc670a4 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xce26e019 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd1b82d06 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd3b6ebe5 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd7ce71cb osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe2405460 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/osd 0x1cc98d80 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x9d4fbfcd osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xa317ff22 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0xb2a6ffee osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xdf4b9edb osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0xe432d434 osduld_register_test +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x25f55603 qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x2bf73803 qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x448bd8ab qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x697f076e qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x77c29d31 qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x98fe9ee0 qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x9b37746f qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x9ce01928 qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xa4b31a7c qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xb7571c32 qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xf6ce7b04 qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/raid_class 0x5892d345 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x72877d9f raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xdd38d36e raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3ccf83cd fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x401d49db fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5117d01d fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5311cbe3 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x54d907fd fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x726ece9c scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7637823d fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x80393d23 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa50471c2 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdbd0a447 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdf7067b8 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xed6476d9 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf81a418f fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0049ce12 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1b14182f sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x24b74c97 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2dd9943a sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3ea0037a scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x48f335ae sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4a695daf sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4b590b8c sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x58b37995 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5acaba6d sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6106b328 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6d4f7380 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x79fad727 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7c516cdf scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7de39fc4 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x83e333ac sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8b3ab2e4 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa2fa9166 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa5d9cb47 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xac5d71de sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaef0eb37 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb6a6fe7f sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc0aa36d1 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc2aad92c sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcaf87032 sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xde9f8772 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe384bbed scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xef52f5d5 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x2eb1f3c4 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x8d4cf18b spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x9f339164 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xad61cc8c spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xfc841f4b spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x0e36f051 srp_reconnect_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xb5c52e6d srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xbc7a7bf9 srp_rport_get +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xecd0d7c2 srp_rport_put +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x55a11587 ufshcd_runtime_resume +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0xbe7c0b7c ufshcd_runtime_idle +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0xf0824674 ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x06528527 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x0dc02a1b ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x16895660 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x1c2ba93d ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x25efefb4 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x27a08c22 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x27fea025 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x30c09c81 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x364f449b ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x3bfce926 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x6908f078 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x6f2a0407 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x77425972 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x98523457 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x9fd70ad1 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xa65517ad ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xda4ea7ee ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xdeea867f ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xe3b609e0 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xe712db0d ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0xfa4e53c4 ssb_device_enable +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0x0a8750d0 fwtty_port_put +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0x6fab45e9 fwtty_port_get +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x1c40ef3a adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xe7f675e5 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x38d0e29b ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xf8f870ff ade7854_probe +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x01cb631c lnet_copy_kiov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0bce7eef lnet_counters_get +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1366b7ac LNetSetLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x185bfd65 lnet_parse +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x19670622 LNetNIInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1b191752 lnet_msgtyp2str +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1fe16fd5 LNetGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2032a775 lnet_set_reply_msg_len +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x204b8151 lnet_counters_reset +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x299caaf2 lnet_notify +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2aa9953d lnet_cpt_of_nid +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2ac93e90 lnet_connect_console_error +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x33202a6c LNetGetId +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3558e584 lnet_iov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x381e3736 lnet_copy_kiov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3bfaa94e the_lnet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3c00de25 lnet_create_reply_msg +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3c779ee0 LNetPut +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3f4f5b46 LNetNIFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x473ad33b LNetDist +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4bb00492 lnet_copy_iov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4f9cb871 lnet_extract_iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5811a721 LNetInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x58a1ca89 LNetMDUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5fee352c lnet_acceptor_timeout +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x61f784b2 LNetClearLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x6291af0f lnet_kiov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x64cdea3a LNetCtl +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x6f7be171 LNetEQGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x722c76e5 LNetMDAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x758f9776 lnet_finalize +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x7d59a7fe LNetMEInsert +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x854ab844 LNetEQWait +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8a3064f2 LNetSetAsync +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8c61281f lnet_copy_iov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8fcd242a lnet_net2ni +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x936ff27f lnet_set_ip_niaddr +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x9de986d3 LNetEQAlloc +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x9fecbb41 lnet_extract_kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa8c2760b LNetFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa414970 LNetMEUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa9b477e LNetMDBind +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb75f7953 LNetEQFree +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xba5566d2 lnet_acceptor_port +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xbf0760a2 LNetMEAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xc42dc811 lnet_unregister_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xe5ad4842 lnet_connect +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xe8379165 lnet_register_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xf1b316bf LNetSnprintHandle +EXPORT_SYMBOL drivers/staging/lustre/lnet/selftest/lnet_selftest 0x078db139 lstcon_ioctl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x0ece187b seq_client_get_seq +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x16c4c2d3 client_fid_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x1c4bb5f9 LU_OBF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x375e6f8d LUSTRE_BFL_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x4fc871b1 seq_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x64e09933 seq_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xae61cff5 LU_DOT_LUSTRE_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xbc6545a8 seq_client_alloc_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xc997a02f LUSTRE_SEQ_SPACE_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xcca8fe59 client_fid_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xe74180e5 seq_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xecee2727 LUSTRE_SEQ_ZERO_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x04853fec fld_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x04d2f540 fld_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x270a0784 fld_client_del_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x45aec9d5 fld_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x51c0a848 fld_client_proc_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x60792d23 fld_client_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xc68c1706 fld_client_add_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x000c507f libcfs_debug_dumplog +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x00c881f6 cfs_cpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x01db5172 cfs_percpt_atomic_summary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x03387ca6 cfs_curproc_groups_nr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0389f857 cfs_cpt_spread_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x04d3ce6a lbug_with_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x069f9bb2 cfs_wi_schedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x08ada613 libcfs_console_backoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0b4b1546 libcfs_lnd2modname +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0c68bc45 cfs_cpt_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0de6c369 cfs_cap_lower +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0e311d38 cfs_percpt_atomic_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0f10432d upcall_cache_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0f5eff79 cfs_percpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x10b7e9c3 cfs_cpt_unset_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x10fd50ae cfs_hash_for_each_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12426266 libcfs_run_lbug_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x151e7546 cfs_cpt_table_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x17ac7833 libcfs_deregister_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1a60d439 cfs_parse_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1c7ec980 cfs_hash_for_each_safe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1d5a3928 cfs_timer_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x22319718 cfs_percpt_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x23f6f445 cfs_restore_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2637a660 cfs_hash_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2663147a __cfs_fail_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x27b6d3ba cfs_ip_addr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2b1e0458 cfs_get_environ +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2dbe54b2 cfs_trimwhite +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2e5044c7 cfs_cpt_set_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2efcc0e6 cfs_block_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2f85ad89 cfs_hash_dual_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x30986343 cfs_range_expr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x31fc5082 cfs_crypto_hash_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x339b461a cfs_hash_dual_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x377f93fb cfs_srand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3834f243 proc_call_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x389ca502 libcfs_debug_mb +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x38fde09c cfs_hash_hlist_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x39fdcd2b libcfs_debug_set_level +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3c1285bd libcfs_subsystem_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3d5e6098 cfs_race_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ea730c0 cfs_gettok +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ef0d90c libcfs_kkuc_group_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x411db754 cfs_crypto_hash_final +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x41ab33a1 libcfs_ipif_free_enumeration +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44688a0a cfs_block_allsigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44728d76 cfs_cpt_bind +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44839bbb cfs_rand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44d96fdb cfs_hash_debug_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44f07cfc cfs_pause +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x47fdb4d1 cfs_timer_is_armed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x48193550 cfs_hash_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x482deff7 cfs_cpt_unset_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x48f163c6 libcfs_str2anynid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4a99af72 cfs_clear_sigpending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4b123f3a cfs_hash_cond_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4d89e988 cfs_block_sigsinv +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4f1f2fa5 cfs_crypto_hash_digest +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x50345570 libcfs_str2net +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5051b6d2 portal_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x509d38b0 libcfs_net2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x52ef51ca libcfs_sock_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x54fd9a71 cfs_percpt_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x55d18175 cfs_hash_size_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x58a7ee00 libcfs_catastrophe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5946ec2b cfs_percpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5a785762 cfs_cpt_online +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5c013b81 cfs_expr_list_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5ca50414 upcall_cache_flush_idle +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d3be65a cfs_crypto_adler32_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d73c3e3 cfs_expr_list_free_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5dce9e80 libcfs_lnd2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5dd2e495 cfs_hash_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5df8c623 cfs_cpt_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6177e48b libcfs_kkuc_group_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62289d65 cfs_array_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x63be5b7f cfs_race_waitq +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x64685fef libcfs_console_min_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x647a7b6d upcall_cache_get_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6564c55b libcfs_console_max_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x65b3811d libcfs_sock_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x65dd9f0c libcfs_run_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x66136d2d cfs_timer_arm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x67398404 cfs_wi_sched_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c905b5f libcfs_watchdog_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c9b4713 cfs_hash_bd_del_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6dfa9ea1 cfs_crypto_adler32_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6e6af71c current_is_32bit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6f928e1b libcfs_debug_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x71f662a3 libcfs_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x75600a04 cfs_hash_bd_move_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x790dbd66 cfs_hash_rehash_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7a3d49ae cfs_expr_list_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7b0b748a cfs_ip_addr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7b2fa3e6 libcfs_kkuc_msg_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c7986cf waitq_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7e6a5b3c cfs_hash_findadd_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7e6f6485 cfs_ip_addr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7fda989d cfs_fail_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8151c3aa cfs_cap_raised +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x81bef0ce add_wait_queue_exclusive_head +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x828d16a2 cfs_cpt_table +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x83d795e4 cfs_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x83e75430 cfs_hash_getref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x84ed079f libcfs_sock_setbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x857aaea7 libcfs_register_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x89b2ddc3 cfs_hash_rehash_cancel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x89dcbafa cfs_hash_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8a6702c8 cfs_crypto_hash_update_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c85e4e6 cfs_crypto_hash_speed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8d3622c1 cfs_hash_bd_add_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8dda96cb cfs_hash_dual_bd_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8e3d0e35 libcfs_sock_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f12bb52 libcfs_log_goto +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f45f10d cfs_init_timer +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x91504e8b libcfs_kmemory +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x92f54077 cfs_hash_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x93611067 upcall_cache_flush_all +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x936cfe97 libcfs_sock_getaddr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x940ed192 libcfs_stack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x95620e8c cfs_wi_deschedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x96727837 cfs_hash_dual_bd_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x97b0b9bc cfs_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9879b229 cfs_get_random_bytes +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9b33e94f libcfs_sock_getbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9f82f712 cfs_trace_copyout_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa256e060 cfs_hash_bd_peek_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa28a6757 cfs_percpt_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa2b68b2a cfs_array_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa33d1293 libcfs_sock_listen +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa6b9dee6 libcfs_kkuc_group_rem +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9088531 cfs_expr_list_values +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9895d18 libcfs_sock_abort_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9a5cf4e cfs_hash_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9dc74e2 cfs_trace_copyin_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9eae690 cfs_str2mask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xab887583 init_waitqueue_entry_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xabc53bf1 cfs_hash_is_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xac0f67e3 cfs_cpt_unset_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xad019238 cfs_str2num_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xafdb46d6 cfs_hash_dual_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb2ae1633 cfs_hash_rehash_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb336ee38 cfs_hash_for_each_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb473e79e cfs_wi_sched_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb9cb508 cfs_curproc_cap_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbc275420 cfs_cpt_unset_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbd5d492e cfs_timer_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbf7a37f1 cfs_signal_pending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc0ea7fc0 cfs_expr_list_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2911d96 cfs_expr_list_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2dfd791 libcfs_console_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc39fd2f9 libcfs_panic_on_lbug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc3eb614e libcfs_ipif_query +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc40b4e8c libcfs_sock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc4172aa1 cfs_hash_debug_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc47433a6 cfs_capable +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc49b1c62 cfs_percpt_atomic_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc514e721 cfs_hash_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xca24b2dc cfs_hash_for_each_nolock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcafda950 upcall_cache_downcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcb2160d3 cfs_cpt_of_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcb385db9 libcfs_debug_binary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcbab8493 schedule_timeout_and_set_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcc20e694 libcfs_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcc7e1d13 cfs_percpt_lock_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xccc45639 cfs_free_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcd38904c cfs_wi_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xce1a88f2 libcfs_arch_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xced1fed2 cfs_hash_rehash +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf61bacb __cfs_fail_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf90528c cfs_cpt_table_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd1319447 cfs_cpt_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd13befa9 cfs_percpt_lock_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd3965252 cfs_hash_del_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd5396536 cfs_cpt_set_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd66d427e cfs_hash_dual_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd6a52be3 libcfs_printk +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd9541990 cfs_strncasecmp +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd96f406d cfs_cap_raise +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xda09d370 upcall_cache_flush_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdce448d0 cfs_cpt_set_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xde17bb8d libcfs_isknown_lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdf2789c0 cfs_curproc_cap_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdf675bc7 cfs_hash_add_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdfcd8209 upcall_cache_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdffc951d cfs_timer_disarm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe0dedd5b libcfs_sock_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe3bf6897 cfs_percpt_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe45b62ff cfs_cpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe6555032 libcfs_ipif_enumerate +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe6d83cf8 cfs_hash_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe7b54314 libcfs_arch_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xec1f56d5 libcfs_str2nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeceac781 cfs_fail_val +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xedf3a25a cfs_timer_deadline +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xee92bb75 cfs_percpt_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf0246bf2 cfs_cpt_table_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf372d1c2 cfs_firststr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf440bb38 libcfs_kkuc_group_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf782fbe6 cfs_cpt_weight +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8a8644b libcfs_id2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8efb8c5 waitq_timedwait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf94025d1 libcfs_str2lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfa0d98ca cfs_cpt_set_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfbd3438b cfs_hash_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfbfbdc46 upcall_cache_put_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfde479b0 cfs_hash_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfe565fa9 cfs_crypto_hash_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xff0f98a6 libcfs_debug_vmsg2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x03e0e38c ll_iocontrol_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x95a8d361 ll_osscapa_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x9bf5cdf5 ll_stats_ops_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x9c3e5542 ll_direct_rw_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xcd3cde92 ll_iocontrol_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x37815018 lov_stripe_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x7a1afcfe lov_lsm_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x7b99b6f2 lov_lsm_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x93909f2a lov_read_and_clear_async_rc +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xa6d9f534 lov_device_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xd7578204 lov_stripe_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x07096869 pop_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x29c8f72a fsfilt_unregister_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x5a93f245 lustre_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x5de01627 lprocfs_counter_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x6f773e3f fsfilt_register_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x85d40144 obd_memory +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x8c31e37e push_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb4f8ee63 lprocfs_read_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb96544f6 fsfilt_put_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xbbd94609 l_dentry_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xd94212be lprocfs_counter_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xdee17364 fsfilt_get_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xdf623799 lprocfs_stats_alloc_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x14a47f31 it_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x9c22b84f it_open_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xb57d8447 it_set_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xf46a886f it_clear_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mgc/mgc 0xdc287f95 mgc_fsname2resid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x00bf6fd4 lprocfs_rd_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x01665e34 class_parse_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x01c53b1c lu_kmem_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x02cb0cb4 llog_thread_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x034c8080 cl_page_make_ready +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x035852d0 lustre_swab_llog_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0385147e llog_cat_init_and_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x03dcdff3 cl_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x03e55bf7 llog_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x04e274de dt_store_resolve +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x057f6d4b class_find_old_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05af1920 dt_quota_glb_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05f84e88 LU_BUF_NULL +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07aa68bb lustre_swab_lustre_cfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0835f39c obdo_refresh_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x083942ff class_del_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x09059bec cl_lock_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x097fe2ee llog_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x09d27e0b class_conn2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0a2d7fea llog_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b098252 llog_cat_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b193764 cl_io_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0bb6ab46 class_handle_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0cf99bff dt_acct_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d324ba2 class_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0de6e1ce cl_env_implant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0e42df4d llog_exist +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fe91547 obdo_to_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x109443dc lu_env_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x10deda4f cl_page_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x10f59da0 cl_page_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11495519 lprocfs_write_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x115cc079 obdo_to_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11d98ece cl_lock_extransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x12477359 cl_io_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x13a86a88 lu_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x13afeb65 llog_cat_cancel_records +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x13bf4c2c lprocfs_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1476b8c4 lu_ucred_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1491dc30 lu_context_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x14e2b4cc cl_lock_descr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1557fde1 lprocfs_rd_numrefs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x15b0c9a1 lprocfs_rd_u64 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x15ee56ec lu_context_key_degister +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x169a9460 obdo_from_iattr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17260880 obdo_cpy_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x174a6b7d cl_2queue_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17cfc1be lu_env_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17ef6e94 cl_io_loop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x18183816 cl_page_is_vmlocked +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1989e6c2 class_new_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x19b19e93 lustre_idmap_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x19cce994 llog_cat_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1a1e21e0 lu_dev_add_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1b4a939f llog_cat_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1bee3af4 cl_env_nested_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1cc487c7 capa_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1ee3d975 lu_context_key_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1f3dfb0d lprocfs_stats_collect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1f4b1ccd cl_sync_io_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1f937c81 lu_object_assign_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1fad7a4e class_process_proc_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x20c24806 class_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21307495 lu_buf_check_and_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x217556fb lprocfs_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21c85ba1 llog_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21ebe0d0 lu_device_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x221826f1 class_parse_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x228167e3 lustre_in_group_p +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x23058d23 class_find_client_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x234f4f44 lu_object_locate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x235bfc14 class_exp2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x23f8b849 lprocfs_register_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x242c8234 lustre_end_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x24b6bd06 dt_try_as_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2547efae lustre_uuid_to_peer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x259ebac6 obd_alloc_fail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x263dd8e3 cl_2queue_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2650f3da local_index_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x26adb789 class_config_parse_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x275cdc7a cl_env_reexit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x278477fa llog_declare_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x27de3d17 dt_txn_hook_commit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x280e4df3 lu_object_put_nocache +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x28a1e9d0 cl_2queue_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x28c6cec7 cl_env_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x28d4f026 dt_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x297cf5e0 class_handle2object +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2a2f7094 cl_2queue_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2abfe7c5 obd_llog_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ae1cd79 kuc_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2b27df3f class_config_llog_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2b4c48e9 server_name2svname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ba7c78f class_conn2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2c22d973 cl_page_list_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2dbadb7c lprocfs_free_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2e6f1eb0 class_disconnect_stale_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2fc95ece cl_page_list_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x302547b7 cl_lock_descr_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x30dcff8d lprocfs_exp_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3197ceac cl_io_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x31d1b275 lu_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32fbf9aa dt_txn_hook_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x33355b32 cl_page_list_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x339e355d lprocfs_rd_connect_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x33cca385 lprocfs_rd_server_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3421a2d2 lprocfs_wr_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3470624c lprocfs_nid_stats_clear_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x34caf674 lustre_idmap_lookup_gid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x35a96e8a md_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x35cfac30 lu_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x36c481c0 cl_page_gang_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x370f7190 local_file_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3784da4c lprocfs_rd_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37ab0f5f cl_page_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37b2f571 cl_unuse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37ed6e4b at_early_margin +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x380dc459 cl_io_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x381a34e6 cl_2queue_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3825bbcf lprocfs_rd_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38fb0c90 class_match_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3907c6c7 llog_cat_declare_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3a005065 dt_otable_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3b693728 cl_io_read_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3d8f7c7b cl_page_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3dc621e7 cl_io_rw_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3e47e99e dt_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3e5eba70 cl_lock_user_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3e99d508 lu_context_key_revive_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f865080 cl_type_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x40feb8ed lprocfs_rd_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x41e19c4f lprocfs_add_simple +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x43ca23df llog_open_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x444f6933 cl_page_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44ac000a cl_io_sub_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44e41abb lustre_posix_acl_xattr_filter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x45abecca cl_page_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x45aec152 cl_lock_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x464ecef1 obd_devs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4660ab24 lprocfs_rd_num_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x46a6fd1e local_object_unlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x46e54aa9 class_config_dump_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47402fed cl_req_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x474ed5bd lustre_swab_ll_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x475664a2 lu_context_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4792f23b llog_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47b35f7d statfs_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x480f06b0 cl_page_list_move +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x48f65c90 cl_pages_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x494cfb52 lustre_acl_xattr_merge2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a0f6ea lustre_posix_acl_xattr_2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a29223 lprocfs_find_named_value +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49cc45a1 lu_device_type_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49e5fe96 cl_page_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49e9d9f0 cl_env_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4a08374f cl_io_lock_alloc_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ac58713 obd_connect_flags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ac87191 cl_lock_mutex_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4b188a59 lprocfs_alloc_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c3def96 lu_context_enter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c3ea064 cl_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4cd43281 cl_req_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d13458b kuc_len +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d2e074c lprocfs_init_ops_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4dd5b8b8 cl_object_attr_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4f50c539 llog_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4fba4346 dt_directory_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4fd91c0a lu_context_key_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50c7fc36 ptlrpc_put_connection_superhack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x51942b09 lu_object_invariant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5240d671 lu_object_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x528fae6a cl_page_own_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x52a44f4f class_import_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x53955221 llog_declare_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5398e754 llog_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x53e02088 lprocfs_obd_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54344953 lu_context_key_quiesce_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54885f87 ldlm_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5511f72e lprocfs_rd_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x552d38a5 lprocfs_rd_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x558bec27 obd_ioctl_getdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5627cce8 lprocfs_oh_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x564e9d44 init_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x570d09ae lustre_swab_lu_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x576eb136 llog_osd_get_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x57e63a34 cl_req_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x57f62935 lu_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x586a52a0 cl_page_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x58e4bf71 obdo_from_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x59ac4f10 cl_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x59afcfbb llog_obd_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a20d896 obd_memory_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a64d92d lprocfs_counter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a9d78e8 cl_io_iter_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ae368c1 llog_cat_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5b60f10d lu_object_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5b885be6 cl_req_page_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5bc022c5 lprocfs_dt_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5c1d9ffb cl_object_glimpse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5c244a57 lu_device_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5c587b8a lu_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ca56181 obd_export_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5cfba224 llog_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d34ae0d cl_lock_mode_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d3b9526 cl_object_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d9e2c14 dt_txn_callback_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5dfa0e7d lu_object_add_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e062658 cl_io_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e71f892 lu_object_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e77f527 lu_object_anon +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ed188a9 lprocfs_add_symlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5f6f83bf cl_page_list_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5fd81aed llog_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5fe97b73 block_debug_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x60599277 dt_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x606f1fce lprocfs_rd_conn_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x60c5bc58 dt_version_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x61683dc4 __llog_ctxt_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x61734800 lu_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x62fb018f cl_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631a518d mea_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631fd7b9 lustre_ext_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x637239ac lustre_idmap_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x638f62dc cl_object_kill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x639f5884 llog_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x63d440b1 lustre_idmap_lookup_uid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x645ea3c7 cl_page_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6481206e cl_env_nested_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6546012c class_incref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x65dae3ae cl_lock_hold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x66778504 lu_env_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x66912a8e lu_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x669b4c57 local_oid_storage_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6734adbd lprocfs_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6774abda cl_lock_user_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x677fd7f9 proc_lustre_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67977b42 lprocfs_remove_proc_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67a90622 la_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67dc223a lprocfs_remove +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6890d175 lustre_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x68d818a9 local_index_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x699bd270 lprocfs_alloc_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69c42114 at_min +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6b3dc096 cl_io_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6bb6d421 lu_buf_realloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6c334842 lprocfs_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6c75dda6 lu_object_find_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6ce606e5 dt_locate_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6d27a65b lu_dev_del_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6d58a732 dt_index_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f3e6225 dt_quota_slv_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f4989c2 llog_osd_put_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x70889c2a lu_context_key_degister_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x70d169dc lprocfs_add_vars +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x714a9f49 lu_env_refill_by_tags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72ddee4c obdo_le_to_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x742559b1 class_unregister_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7448ca1b cl_req_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x746675ec class_import_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x74aa95cf lprocfs_init_ldlm_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7526ec06 cl_page_list_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7527f663 cl_lock_hold_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x752f71a8 class_get_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x756a77f3 class_parse_nid_quiet +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x76bd847a cl_lock_weigh +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77cb1373 llog_copy_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77d2089a class_name2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7802fcd7 lustre_swab_llogd_conn_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7840f670 lustre_idmap_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x789796a1 obd_zombie_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7a30563e cl_req_page_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b4fc57b at_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7c6aca87 cl_lock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7cf9d399 cl_lock_is_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7d3daaef lu_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7d9b0a72 class_search_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7da4dcfe cl_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7db2416b cl_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ddbfa42 class_num2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ec615f0 llog_osd_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7edcafa0 cl_env_reenter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ede46ab cl_unuse_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f3fd9ca cl_lock_nr_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f9237e5 class_handle_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f94e70f cl_page_is_owned +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fad7291 raw_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fd57cdb iattr_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fe5561a obd_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8031efb8 lprocfs_dt_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8061adde lu_kmem_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x806767f6 cl_object_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x806cc497 class_add_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81742d89 obd_ioctl_popdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x82b97909 cl_page_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x831f656c class_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8424167d cl_lock_state_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8489f086 obd_alloc_fail_rate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x849e5385 obd_update_maxusage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x853de131 class_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x858de849 cl_lock_at_pgoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x859d1247 cl_lock_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8721452d lprocfs_single_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x88f53935 cl_lock_discard_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8962f8b7 llog_cat_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x898678e0 class_register_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x89b2ba7b lprocfs_seq_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8a39cd00 cl_io_rw_advance +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8aa2c358 lprocfs_dt_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b28ab68 cl_page_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b5f4057 lu_context_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b9412dd lustre_register_client_fill_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ba6e479 lustre_swab_lu_seq_range +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8be4742e cl_lock_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8c1ce701 cl_2queue_init_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8c7f517c obd_llog_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8dc8e257 cl_page_list_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8dd5de03 local_file_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8e258ad4 cl_env_unplant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8e58a8ce cl_lock_disclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8eb401e6 class_export_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f67314c obd_dump_on_eviction +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ff9f53d cl_conf_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x90c8d327 lprocfs_init_mps_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x90e5a3e9 lprocfs_obd_rd_max_pages_per_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x918fa104 class_conn2export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x919ff9db cl_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x927d9709 cl_page_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92e58479 obd_dump_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92e61798 lprocfs_seq_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x932b84db lprocfs_nid_stats_clear_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93b46468 lu_session_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x94677235 lprocfs_clear_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9512d507 lustre_acl_xattr_merge2posix +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x954ee36b cl_page_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x955f5220 ldlm_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95735c6c at_extra +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95ba81d8 lu_context_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95ec998a lustre_groups_sort +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9767adce class_uuid2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97c1f028 llog_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97ce053d class_devices_in_group +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97d03783 at_history +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x98aaa4c9 lu_cdebug_printer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x99499eea lu_device_type_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b1ed9d8 obd_jobid_var +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b4cfd64 llog_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b4f3487 lu_site_init_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b633fa4 lprocfs_exp_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9d0032be class_export_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9dbb17b6 lprocfs_dt_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa054418b lprocfs_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa139ee04 obd_export_evict_by_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa1e01b32 dump_lniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa21c5ea1 obdo_from_la +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa2d8ec2b cl_object_attr_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa3be1519 dt_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa3df2e95 class_unlink_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa4335379 cl_sync_io_note +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa461b49e obd_export_evict_by_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa4857b67 cl_page_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa4ed7b1c lustre_register_kill_super_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa507003f obdo_from_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa513f7e4 lustre_groups_from_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5fb234f lprocfs_write_frac_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa616d61a class_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa670bbae lprocfs_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa674c241 kuc_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa6b4ba53 cl_page_vmpage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa6cc5173 cl_page_list_splice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa6cec87b cl_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa6ecdca7 lu_site_purge +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa7af38f9 cl_enqueue_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa7df8fd3 dt_record_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa843acbb cl_lock_closure_build +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa862d221 lprocfs_oh_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa8a5728e dt_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa92dd29c lprocfs_at_hist_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa97bfeff cl_lock_modify +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa21b7a0 lustre_register_quota_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa7c5b41 llog_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabf45922 capa_decrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac02e3c0 class_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac27982e cl_page_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac7f1596 kuc_ptr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xad5883df cl_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xad5a9a24 capa_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaf464784 class_detach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaf5481fa class_uuid2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaf910f19 llog_cat_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0097dde lu_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb01963a6 class_uuid_unparse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0fb9886 cl_lvb2attr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1b89b6d class_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb2b0f093 cl_object_attr_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb319db6d class_handle_hash_back +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb41998cd lustre_cfg_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb448eafe cl_object_has_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb50c98b2 llog_cancel_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb55e4b76 dt_record_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb5d752bd cl_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb627f5fa cl_env_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6ba5dd5 kuc_ispayload +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6f9bc2a cl_io_is_going +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6faab02 capa_cpy +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb743ec6a dt_mode_to_dft +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb7faef69 cl_req_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb82620b2 lu_context_key_register_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb891f24f llog_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb924bd0b class_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb9f12b7d cl_page_list_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb9ffbade dt_txn_hook_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba985283 lustre_register_client_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbacac922 lprocfs_write_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbb36f47b dt_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbb4dbe48 cl_page_find_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbd726f56 llog_declare_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbd90f7ec lprocfs_free_per_client_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbde2b051 class_disconnect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe2f1026 cl_lock_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbea80b71 class_new_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbf1a544a dt_index_walk +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbf6ed8a8 obdo_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbf9e695e lprocfs_oh_tally_log2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc035f33f obd_exports_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0bf7ef2 obd_debug_peer_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc139effa class_fail_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc18bae07 cl_lock_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc1b9a319 lprocfs_oh_sum +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc2320a46 lu_context_key_revive +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc4660e33 dt_declare_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc4baf006 dt_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc4c02d18 class_connected_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc4cac2d1 cl_lock_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc5010928 capa_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc511ed35 lprocfs_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc533b71c cl_io_lock_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc60f4061 cl_page_cache_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc6652a77 lprocfs_free_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc814db08 cl_page_unassume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8dbaa87 lustre_swab_cfg_marker +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc98f860a cl_lock_closure_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc9b3c667 dt_lfsck_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xca0c172f cat_cancel_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xca747915 cl_page_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb0ab67f obd_max_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcbaed92b cl_io_prepare_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcc61893d cl_io_commit_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccbdd59e lu_object_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccf7a8de obdo_cpu_to_le +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd679f2c dump_lsm +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd7537ee get_devices_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd8a604e lu_buf_check_and_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcde78f9e class_manual_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xceb81135 class_disconnect_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xceb8d4b0 lprocfs_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcedb140a obdo_cmp_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd0103eae cl_sync_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd047717f cl_page_list_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd08604b1 lu_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd08827c0 server_name2fsname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd0b6995d lu_buf_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd10aa042 lustre_swab_llog_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1223e88 cl_page_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1b1478b cl_attr2lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1bf2c84 capa_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1f58645 lustre_swab_llog_hdr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd2adda95 lu_context_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd338b170 cl_lock_ext_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd351767f lu_context_key_quiesce +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd46e93f1 cl_lock_signal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd4b137e8 cl_lock_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd5918124 cl_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd5b82501 dt_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd60dc7c9 class_put_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd6467cef cl_page_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd70fe669 lustre_swab_llogd_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bc8654 obd_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bfbc9c lprocfs_dt_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7f7b340 cl_lock_mode_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd999fbba cl_lock_enclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd9d9a448 lu_site_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda5b1ced class_find_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda74761c lu_ucred +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdac644c8 lustre_posix_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb12a3f7 lprocfs_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb13dce1 capa_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb4ccbed cl_io_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcc40af0 class_check_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcf5c45e cl_lock_enqueue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd78c0c7 lu_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xddaf8e41 lu_context_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xddd4c4e2 cl_env_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde290d53 lu_ucred_assert +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde7d985b obd_dirty_transit_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe028cf84 capa_encrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe04b86e0 cl_page_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe06e7165 dt_lookup_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe14f709a cl_page_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe17ef97f lustre_process_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe1a29751 class_name2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2eb4470 class_get_next_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3323f5d class_handle_free_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe342b400 cl_queue_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe484795c cl_lock_unhold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe4b471df class_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe4d9a156 cl_lock_closure_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe4ebb827 lu_object_find_slice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe53a7202 cl_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe56fdbf4 cl_lock_is_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe5a0adf7 dump_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7d83236 cleanup_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe80b2e82 lprocfs_alloc_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe86a238a llog_init_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe88e6f35 lprocfs_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8e84c32 class_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xea1174f9 cl_locks_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xea4ea429 cl_io_submit_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xea5a8d2f cl_lock_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeaf58fa1 dt_store_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb2bc5d9 cl_vmpage_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb3f388a _debug_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec2e0d13 class_exp2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec7d6b85 obd_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xede20bca cl_object_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee105745 lprocfs_rd_timeouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee68bc29 lu_session_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeeeb79fa do_lcfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef5c5c26 local_oid_storage_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef76f858 block_debug_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf01e2527 server_name2index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf0781ffb cl_page_list_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf10a9a08 cl_page_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf1fa27fa cl_lock_mutex_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf2fd6695 statfs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3253e15 cl_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf38243dc cl_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3a33196 cl_io_iter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3eca6b1 llog_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf490d5f9 class_del_profiles +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf57de856 lprocfs_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf58a9121 cl_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf59c60c1 cl_wait_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf59fd788 lprocfs_wr_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf60d4659 capa_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf64dd950 lustre_common_put_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf6529c0e lustre_idmap_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7020831 lprocfs_dt_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf757142a cl_2queue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7f42641 lprocfs_free_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8b48bc9 cl_page_is_under_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8c2df92 obdo_set_parent_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf914cccd cl_page_clip +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa813d06 capa_hmac +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfb676b91 cl_lock_hold_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbea0098 lu_types_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbfb9d44 cl_io_submit_rw +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc5ee3e7 cl_lock_mutex_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc7f18d0 obd_pages_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfcd165a3 cl_use_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfce4103b lu_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd68d17a class_notify_sptlrpc_conf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd8f5cf4 lu_buf_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfda4e662 cl_object_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfdbe1557 lprocfs_write_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe57f20f llog_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfea900b8 cl_lock_get_trust +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfeee19f2 cl_io_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff57e92d class_match_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff58e44d cl_offset +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff6beb1f dt_txn_callback_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfffc1f11 lustre_swab_ost_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/osc/osc 0x5c4940c2 osc_update_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00d95039 ptlrpcd_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x010de4c1 ldlm_namespace_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x01d6ef7f ldlm_pools_recalc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0240cd3f ptlrpc_free_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x048b59d5 lustre_msg_set_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x04a34c62 sptlrpc_lprocfs_cliobd_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0515f93b RQF_FLD_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0564b9c0 ldlm_namespace_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x05e86b6f ldlm_resource_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x06b3942b lustre_swab_lov_user_md_objects +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x071fc74a RQF_LDLM_ENQUEUE_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x07605c7d interval_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x07a2551b sptlrpc_conf_target_get_rules +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0837181c ldlm_resource_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08467c23 ptlrpc_buf_need_swab +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08928b1c req_capsule_client_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08bb2d27 lustre_swab_obd_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08eb2059 ptlrpc_request_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x095587d0 lustre_msg_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0a3130b0 RMF_MDT_EPOCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0a980060 ldlm_replay_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac252b2 lustre_msg_set_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac54708 lustre_errno_hton +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0b72a6f3 sptlrpc_import_flush_all_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0bcacb5d RMF_MDS_HSM_USER_ITEM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0c2d9c43 lustre_swab_lip_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0cf343dd RQF_LDLM_INTENT_BASIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0f344fac ptlrpc_unpack_req_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0fb9a8b4 ldlm_flock_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1002681a ptlrpc_hpreq_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x10408b2c ptlrpc_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x10f18f20 interval_iterate_reverse +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x110749ea sptlrpc_register_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x115017f6 req_layout_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12af4097 sptlrpc_target_export_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12b6f5a3 ptlrpc_connection_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1305a9a4 llog_origin_handle_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1483eca4 ldlm_lock_addref_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x14d192db lustre_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x15a3e4db RMF_GETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x16952912 ldlm_lock_downgrade +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x170a931e sptlrpc_enc_pool_put_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17260861 req_capsule_server_sized_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x172fb86d lustre_msg_hdr_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1747d8b3 ldlm_lockname +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17950f60 RQF_SEC_CTX +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17eeda79 ptlrpc_unregister_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x18cf5798 ldlm_lock_change_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19108a0f RQF_OST_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19c08934 RQF_LDLM_INTENT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a6a3ce9 RQF_OST_GET_INFO_LAST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a9b76aa RMF_OBD_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1abd3258 RMF_SETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ace4b5f RQF_LDLM_BL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1bae0270 interval_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1be21715 lustre_msg_size_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c300d8e lustre_msg_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c344581 ldlm_pool_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1d043548 lustre_msg_set_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1d6e6552 ldlm_cli_update_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1dc2051d RMF_SEQ_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1de9c288 lustre_swab_layout_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1e05a09d req_capsule_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1e8e48a4 sptlrpc_flavor_has_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1eb2a65f RQF_OST_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee46b51 lustre_init_msg_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee9eb3c RQF_MDS_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1faaf7b7 client_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x201fd079 ldlm_pool_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2081fbdd sptlrpc_target_sec_part +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2096f5b5 RQF_OST_SET_GRANT_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x20d6b82c RQF_LDLM_INTENT_QUOTA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x218a36ce ldlm_cli_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x21aa06c2 ptlrpc_unpack_rep_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x21b7d32c ptl_send_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x21ec3c56 ptlrpc_wake_delayed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x233790b5 RMF_OST_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x23f3a0ad ptlrpc_set_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x244e5558 lustre_msg_get_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x24aafdba RMF_MGS_TARGET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2550b982 req_capsule_field_present +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2585a629 RMF_SEQ_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2587513c RQF_LDLM_CP_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x259d9bd1 sptlrpc_cli_wrap_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x269554ce RQF_LDLM_INTENT_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x26f99d16 RQF_MGS_CONFIG_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x285e5b99 lustre_msg_set_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x29e0869a sptlrpc_get_hash_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2a63a472 lustre_swab_ptlrpc_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ba2c623 ptlrpc_set_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2bfdfcc2 llog_origin_handle_read_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2c00c60d ptlrpc_sample_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2c0ec8cb sptlrpc_cli_unwrap_bulk_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2c485d35 sptlrpc_target_update_exp_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ca92fa8 ldlm_lock_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ccd5b87 ldlm_cli_cancel_list_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ce0f3b5 ldlm_namespace_new +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d56f168 ptlrpc_pinger_ir_up +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d798316 RMF_MGS_CONFIG_RES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2da8176c ptlrpc_at_set_req_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2de2f7dc req_capsule_server_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e3960a5 ptlrpc_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4562fe RQF_LLOG_ORIGIN_HANDLE_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4ca396 RQF_LDLM_INTENT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ecd7515 lustre_msg_check_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2f0e4f87 RQF_OST_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2f3ea4eb ldlm_namespace_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2fd2f737 lustre_msg_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x301d4fcd RQF_MDS_READPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x302937e0 RQF_MDS_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3060b9c6 sptlrpc_rule_set_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x306a2453 ldlm_pool_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3139e605 client_import_del_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x31838cb4 RMF_IDX_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x32580060 ldlm_cli_cancel_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3261b862 RQF_OST_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x333f57ad ptlrpcd_wake +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x33bb7761 ldlm_typename +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35939a3d lustre_swab_fiemap +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35e532cc lprocfs_wr_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x36099921 do_set_info_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x372a6c80 ptlrpc_req_finished_with_imp_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3835ab4b RQF_LLOG_ORIGIN_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3858fb94 RMF_OBD_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38c01799 RQF_LDLM_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38fce533 lustre_msg_set_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x39f60a5f RMF_OST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3a1e4bcb __lustre_unpack_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3aa694cd ptlrpc_prep_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ab90f6e lustre_msg_bufcount +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ac00716 lustre_swab_hsm_user_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b5c40cc req_capsule_set_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b6b7cba dump_ioo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3be8cc77 lustre_pack_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3bedb0c7 RMF_LLOGD_CONN_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c63e62b RQF_MDS_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ca50f33 RQF_MDS_HSM_CT_REGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3d0a5094 ptlrpc_recover_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3d7dc5f9 ldlm_pools_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dc47695 lustre_msg_get_magic +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dddb3e2 dump_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ecb81c2 ldlm_lock_fail_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f034caf lustre_msg_get_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f5685e8 ptlrpc_activate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f752e78 RQF_MDS_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3fb3d76f ptlrpc_req_set_repsize +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3fc2e940 req_capsule_server_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x40318bb0 ptlrpc_request_bufs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x40ae920b ldlm_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x40cef486 ldlm_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41008cef RQF_LDLM_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41d3e70c sec2target_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x429b760e ptlrpc_lprocfs_unregister_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43705ee4 RQF_LOG_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43d7efc8 lustre_msg_set_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x44036eda RQF_MDS_GET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x440c2a71 RMF_FIEMAP_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4481591d RQF_OST_SET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45d05893 lustre_swab_lustre_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45e30cea lustre_swab_ldlm_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x46f7c1e0 ptlrpc_disconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x471f1c57 ptlrpc_unregister_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x477c7859 lock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47f5e903 RMF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4818b10f ptlrpc_set_add_new_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x48814c9f lustre_swab_ost_lvb_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x49780d98 ptlrpcd_add_rqset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x498c03c5 lustre_msg_set_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4a5a2416 RMF_DLM_REQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4aa0057f target_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4b09ce4b lustre_swab_mdt_rec_reint +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4b7d06a8 sptlrpc_import_sec_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4b9f5669 ptlrpc_mark_interrupted +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4bec0c06 ptlrpc_obd_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4cd5f249 ptlrpc_prep_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4d7580d0 lustre_swab_hsm_user_item +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4ddc7710 req_capsule_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e1706e5 lustre_msg_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e696b96 ptlrpcd_queue_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4eb03a6f ptlrpcd_destroy_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4f053a7a ldlm_destroy_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4f766c3b lustre_swab_generic_32s +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4fbfa7d6 __ldlm_handle2lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50443f6a ptlrpc_init_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5059128f ldlm_pool_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50dd74f8 RMF_STRING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5182e0b2 ldlm_cli_cancel_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x51a3ca36 req_capsule_client_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5259856c req_capsule_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x52c62150 RMF_RCS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53411557 RMF_DLM_REP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53a4a004 bulk_sec_desc_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x54ae5021 ldlm_lock_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x54caa6b9 ldlm_prep_elc_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x555eb7fe RQF_MDS_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x55cc6cd0 lustre_pack_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x57447287 ldlm_prep_enqueue_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x588035b4 RMF_UPDATE_REPLY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5894d13a client_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x595ab175 lustre_swab_obd_quotactl +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x596582bf RMF_GETINFO_VALLEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59ca398b ptlrpc_add_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5a057439 interval_search +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5a1f24bc ldlm_lock_allow_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5aa740d9 sptlrpc_import_flush_my_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5af0d02a ldlm_lock_dump_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b202814 ptlrpc_deactivate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b6ba895 lustre_packed_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5c6a3a83 RQF_SEQ_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5caae213 ptlrpc_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5d7f178f ldlm_pool_set_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e0b19b1 RMF_CLUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e2b7558 lustre_msghdr_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e6f435d RQF_OST_BRW_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e73e4d8 req_capsule_init_area +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e80f899 RQF_LLOG_ORIGIN_HANDLE_READ_HEADER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ec3284d RQF_MDS_HSM_CT_UNREGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ef831ee lustre_msg_get_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5f96ccdd ptlrpc_connection_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6042bc15 RQF_MDS_REINT_RENAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x604e2505 RMF_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x607ec932 lustre_msg_set_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60cd26ad RQF_MDS_REINT_CREATE_SYM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x61215088 ptlrpc_restart_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x61646e1b RQF_MDS_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x618ad203 RQF_OST_GET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62192cf8 dump_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x623cf8fb ldlm_init_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62aaae3f RQF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62f1995a ptlrpc_request_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6315dd4c RMF_LLOGD_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6331e962 ldlm_enqueue_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6352a62d ldlm_get_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x63e4b851 ptlrpcd_alloc_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x647b6e48 lustre_swab_ldlm_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x64ba6fe0 ptlrpc_request_alloc_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x653723dc RMF_LOGCOOKIES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6661b4b5 req_capsule_client_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x67377c56 ptlrpc_resend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x685eeaba RMF_DLM_GL_DESC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68cb2541 interval_is_overlapped +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68f49e5e ptlrpc_expired_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6912990a RQF_OST_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69197aee ptlrpc_register_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x696ba811 lustre_msg_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x697238c9 ptlrpc_reconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69c9f04d RQF_MDS_REINT_LINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6a3785c9 RMF_EADATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d6731ef ptlrpc_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d72828c sptlrpc_conf_log_update_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d7931cc RQF_UPDATE_OBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6e4f5587 ptlrpc_set_add_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6ed20499 ldlm_revalidate_lock_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6efa82b0 RQF_MGS_TARGET_REG +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f6dc736 lustre_swab_mdt_remote_perm +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f71b2b5 sptlrpc_sec_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6faa2bbe ldlm_completion_ast_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6fb92092 sptlrpc_flavor2name_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x703538e4 lustre_swab_hsm_current_action +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x70c96b5f ptlrpc_replay_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x715567a0 ldlm_lock_allow_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x71be0428 lprocfs_wr_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x72266af0 ptlrpc_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x723d43b6 sptlrpc_rule_set_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x725a892c RQF_MDS_REINT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x74840056 lustre_msg_set_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75a2c40d ldlm_put_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x76b728e5 lustre_swab_update_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77571cc6 lustre_swab_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x777d31b4 client_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77840c82 sptlrpc_rule_set_choose +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x778e61c7 lprocfs_wr_evict_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x78bf9136 lustre_swab_ldlm_lock_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7932d879 ldlm_namespace_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x79d4a9b5 ptlrpc_req_finished +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7a076047 ptlrpc_buf_set_swabbed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7a66ca6d sptlrpc_cli_ctx_expire +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7a832f10 RMF_CONN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7b158da4 lustre_swab_ldlm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7b2c3c7d ptlrpc_request_alloc_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7bbf8001 RMF_MDT_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7c4c6107 RQF_LDLM_CONVERT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d1de617 ldlm_get_enq_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d1ecd7f RQF_LDLM_INTENT_LAYOUT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d41a8b9 RQF_QUOTA_DQACQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d86cc6f lprocfs_wr_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dc0e7cd RMF_QUOTA_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dfb3c18 lustre_msg_clear_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7e91cb48 req_capsule_filled_sizes +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f347561 ldlm_cli_enqueue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4925d8 interval_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4c99b1 ldlm_expired_completion_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f5a1cc7 lustre_msg_set_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f6d2357 lustre_msg_is_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80a42cc3 sptlrpc_conf_client_adapt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80a9e8c3 lustre_msg_get_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80c3408f ptlrpc_save_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80ecb4e3 RMF_MDS_HSM_CURRENT_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x817d7f1f lustre_msg_add_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x826d3c4f RQF_LDLM_GL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8275d05b ptlrpc_queue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x82c3867b ptlrpc_prep_bulk_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x82d719ab llog_origin_handle_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x837efb00 RMF_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85135801 RMF_DLM_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85a9e0d8 RMF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85eecf67 sptlrpc_get_hash_alg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85fe46dc sptlrpc_cli_unwrap_bulk_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x863db6eb RMF_HSM_USER_STATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x86f85b01 _debug_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x86fa8c3b ldlm_cli_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8760beaf lustre_swab_ldlm_policy_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8768f5ab ptlrpc_abort_inflight +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x876c2551 RMF_GETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87bf7b3c sptlrpc_get_next_secid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8872f3d2 RMF_SETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x88fff52d RMF_CAPA2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x891bcc48 lustre_pack_reply_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x89ec9a94 ptlrpc_prep_fcset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x89f9edf7 RQF_MDS_REINT_SETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a1ea476 lustre_swab_hsm_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a257736 RQF_MDS_HSM_STATE_GET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ac440fa ptlrpc_uuid_to_connection +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8b5ef031 sptlrpc_sec_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8b854254 lustre_swab_mgs_config_res +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8cb71d4b RQF_MDS_REINT_CREATE_SLAVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d77ea75 lustre_msg_set_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8da3fca7 lustre_msg_add_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8e41c878 ptlrpc_lprocfs_register_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8e9abe4d RMF_GENERIC_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ef37a10 ldlm_pool_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8f0aceac RQF_MDS_HSM_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8fec0451 lustre_msg_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8fef2c17 ldlm_destroy_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9100f4a9 ldlm_resource_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91023dde ptlrpc_nrs_policy_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x919c4ce3 RMF_OBD_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91cf58d3 RQF_MDS_PIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91f08951 llog_origin_handle_prev_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9273a763 unlock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x937b1ee0 lustre_swab_mdt_ioepoch +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9480add5 ptlrpc_service_health_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9553c633 RQF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95904f47 ldlm_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95afa3ac ptlrpc_pinger_add_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95d08f0c lustre_swab_mgs_target_info +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9648d4b4 sptlrpc_sec_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x965aa80b sptlrpc_req_replace_dead_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9660ace0 RMF_FLD_MDFLD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x967bfd52 RQF_OBD_PING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x96cfcec9 ptlrpc_unregister_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x977ad146 req_capsule_client_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9798f2f1 RQF_MDS_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x980fcfdc ptlrpc_connection_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9827724f ptlrpc_resend_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x996a2a21 req_capsule_has_field +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a09df28 ldlm_cancel_resource_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a258886 RQF_MDS_GETSTATUS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a6f2f6d lustre_msg_set_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9b223fc7 ldlm_resource_unlink_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9b676dfe sptlrpc_cli_ctx_wakeup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9b799f0b sptlrpc_gc_del_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9b88f6ce RMF_NIOBUF_REMOTE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9bb5198b RQF_MDS_CLOSE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9c8bd52e ptlrpc_init_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d7ea314 sptlrpc_pack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d939103 ldlm_namespace_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9e06d909 ldlm_lock_fail_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9f5825d6 ptlrpc_nrs_policy_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9fb088f1 lustre_swab_lov_mds_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa081f562 llog_client_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa0c17e89 client_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa10f0d3d RMF_UPDATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa163f4c3 dump_rniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2244636 RQF_MDS_GETATTR_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa22c0086 ldlm_error2errno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa347f7a1 ptlrpc_invalidate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa38f7480 ptlrpc_lprocfs_brw +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa3d2a6ee RMF_CAPA1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa42a056e ldlm_lock_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa47787ef RMF_PTLRPC_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4a2d089 RQF_OST_PUNCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4bea5ef lustre_swab_lmv_user_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5458dad ldlm_lock_decref_and_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5880075 ldlm_errno2error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5e6cde0 ptlrpc_send_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5ef3b41 req_capsule_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa60aea4b req_capsule_other_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa6c436ca RQF_MDS_WRITEPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7d55cc3 RQF_MDS_REINT_CREATE_RMT_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7e360b1 RMF_OBD_IOOBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7ec567d RMF_CONNECT_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7ff741b ldlm_extent_shift_kms +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa8d9ba32 ptlrpc_request_set_replen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9311295 ptlrpc_start_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa94381c7 ptlrpc_fail_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9704f80 lustre_msg_get_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9c4658e lustre_swab_lov_user_md_v3 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9ca5119 __ptlrpc_free_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9edf09d RQF_OBD_IDX_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaab83d85 client_disconnect_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaac8c9bd ldlm_pool_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaddc3979 lustre_swab_lustre_capa_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaec6f940 ptlrpc_cleanup_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf4e9658 RQF_MDS_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf50a0d6 RMF_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb05d4924 ptlrpc_retain_replayable_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0751fa4 RQF_LLOG_ORIGIN_HANDLE_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1b43d8a dump_rcs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb27c2374 lustre_msg_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb291473d lustre_msg_early_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb2b1817d lustre_swab_ost_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb2fe8022 ptlrpc_register_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb3be0407 target_pack_pool_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb3be7092 ldlm_pool_get_lvf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4270aef ldlm_namespace_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4a7ecf3 lustre_msg_add_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb512ebc2 sptlrpc_parse_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb552848e _ldlm_lock_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb5913dc8 req_capsule_server_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb5b25273 llog_origin_handle_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb61cb95a RQF_MDS_GETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb68476df interval_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb6aafd03 RQF_MDS_DONE_WRITING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7b38189 RMF_MDT_MD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7fa3cc8 RMF_LLOG_LOG_HDR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb903634e RQF_OST_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb9b631cf lustre_swab_mgs_config_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbaa76097 lustre_msg_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc1370dc lustre_shrink_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc460152 ldlm_cli_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc6fa933 sptlrpc_gc_add_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbcf30e06 sptlrpc_gc_add_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbd83bc44 RQF_OBD_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbe47bc7e ping_evictor_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbeb7e023 ptlrpc_set_next_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbf98b86f RQF_MDS_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbfaf27ce ldlm_blocking_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbffd4313 RQF_OST_BRW_WRITE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc06c4670 lustre_msg_get_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0867da7 RMF_REC_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0cdf55e RMF_MGS_SEND_PARAM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc11f1a63 llog_origin_handle_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc21f3387 ptlrpc_pinger_del_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2986d28 lustre_swab_ldlm_res_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2a2df0b ptlrpc_commit_replies +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2b1af57 RQF_MGS_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2be922a RMF_SYMTGT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc559a634 RMF_LAYOUT_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc5ab7984 ldlm_register_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc60a60e1 RQF_OST_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc669e038 ptlrpc_request_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc694be4b RQF_LLOG_ORIGIN_HANDLE_PREV_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc73f8105 ldlm_init_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc763fabc sptlrpc_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc792f56e ptlrpc_pinger_sending_on_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc79b9c67 ldlm_pools_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7ca8257 RQF_MDS_REINT_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7e47564 ptlrpc_interrupted_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc80c168f lustre_free_reply_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc8ca1726 ldlm_reprocess_all_ns +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc8f586a9 ptlrpc_connection_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc9198d7c sptlrpc_get_bulk_checksum +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca5a81ec ptlrpc_pinger_ir_down +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca74f2f9 client_import_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2cc0cf lustre_swab_lquota_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2ceaff sptlrpc_secflags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb817c32 ldlm_lock2desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcbbd5589 llog_origin_handle_next_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xccf0860f ptlrpc_prep_req_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcd8edabf ldlm_cli_enqueue_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce1a689b sptlrpc_enc_pool_add_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce5be9a4 __ptlrpc_prep_bulk_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce86066d lustre_msg_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcec513c9 RQF_MDS_UNPIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xced015be sptlrpc_rule_set_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf96af2c ldlm_blocking_ast_nocheck +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9963db lustre_msg_get_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9aab6a RQF_MDS_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd21eb6be req_capsule_server_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2983334 lustre_swab_swap_layouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2e0d4eb lustre_msg_get_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd3dae408 ldlm_it2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd40a3a29 ldlm_pool_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd4648bee sptlrpc_cli_ctx_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd537ded2 lustre_swab_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd67a5d7b lustre_swab_update_reply_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd69e0a27 RQF_MDS_IS_SUBDIR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6c3ebfb RMF_FIEMAP_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd7910326 lustre_swab_obd_statfs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8b91b3e lustre_swab_lov_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8f06300 RQF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd9561861 RQF_LDLM_INTENT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xda2ac111 sptlrpc_proc_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb1fb0a2 RQF_MDS_REINT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb9d5a6a lustre_swab_niobuf_remote +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdcf910b9 lustre_swab_ost_last_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd0ffb04 sptlrpc_flavor2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd30d7bf RMF_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xddc40a85 lustre_msg_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde12d36b RMF_MDS_HSM_ARCHIVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde195d6e req_capsule_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde555d70 sptlrpc_enc_pool_del_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdee87192 sptlrpc_conf_log_update_begin +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf701ae7 lustre_swab_fid2path +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdfc4598e ptlrpc_request_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdfe47a16 sptlrpc_unregister_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0832736 ptlrpc_init_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0cc694c RQF_LLOG_ORIGIN_HANDLE_NEXT_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe187a0d6 ldlm_cli_cancel_unused +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe33beb46 sptlrpc_cli_ctx_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe3ae75cf client_import_find_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe40e0a50 lustre_msg_get_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe4ba30f8 ldlm_pool_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe4fadee0 ptlrpc_req_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe55691ad sptlrpc_enc_pool_get_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe57bd972 sptlrpc_current_user_desc_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe5e8169b lustre_errno_ntoh +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe60bc74e ldlm_pool_get_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe643998e RQF_OST_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6f0dc96 RQF_OST_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7062b5f RMF_U32 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7512278 ptlrpcd_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe902383f sptlrpc_cli_enlarge_reqbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe95d4d8b ptlrpc_set_import_active +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe9db3d3b target_print_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabaa0b1 lustre_swab_mdt_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabac4fc sptlrpc_rule_set_merge +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeb5d2476 req_capsule_server_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeb8b249c ldlm_pool_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xebb64e68 req_layout_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec226f66 ping_evictor_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec8bee95 lprocfs_rd_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec939a00 RQF_MDS_REINT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xecace5c1 RQF_OST_GET_INFO_GENERIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xecada563 ptlrpc_cleanup_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed1c10d6 ptlrpc_connection_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xedcb740d sptlrpc_name2flavor_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef1aeca9 RMF_FLD_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeff48f88 ldlm_lock_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0241d6e lustre_swab_hsm_progress_kernel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0ceb38a ldlm_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0d52b5f ptlrpc_pinger_suppress_pings +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf1300275 _sptlrpc_enlarge_msg_inplace +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf1337f68 ptlrpc_stop_all_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf277c125 RQF_OST_GET_INFO_FIEMAP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf27d49dc sptlrpc_target_choose_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf2c7f793 ptlrpc_set_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf32434c9 llog_initiator_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf359ec7c ldlm_cli_cancel_unused_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf35f132b lustre_swab_ldlm_resource_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf3d44370 RQF_OST_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf43540b9 lustre_swab_mgs_nidtbl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf45085e1 sptlrpc_conf_log_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf4ca5832 ptlrpc_schedule_difficult_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf55c033b RMF_MGS_CONFIG_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf584a16b sptlrpc_part2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf596e9ae sptlrpc_conf_log_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf607fc23 sptlrpc_flavor2name_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf617ab8a lustre_msg_get_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf697b756 ldlm_dump_all_namespaces +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf6a62e4a ldlm_lock2handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7408f84 lustre_swab_hsm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7ba40c0 RMF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf85cb27e sptlrpc_parse_rule +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf870fed9 RQF_LDLM_GL_DESC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf8a14052 lustre_pack_reply_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf8f88994 ptlrpcd_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9051bd6 RQF_QC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf94e41e0 deuuidify +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf973aa93 lustre_swab_lov_user_md_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9ee11e2 lustre_msg_set_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9f72dfc RMF_TGTUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa51688d interval_insert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa9f40cb req_capsule_server_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfaf2c82e sptlrpc_svc_ctx_invalidate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfb9f59b2 ptlrpc_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfc186744 ptlrpc_add_rqs_to_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfc2fa83f ptlrpc_del_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfc575cf5 ldlm_pool_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd148bf8 RMF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd68c3c5 ldlm_resource_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfddb0375 req_capsule_extend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff02a0e9 ldlm_lock_set_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffc807e8 sptlrpc_unpack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffd7ce32 ldlm_glimpse_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffe29c3f RQF_LDLM_ENQUEUE +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0x7ff86791 cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x0798a919 go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x300ea7be go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x3a397f7d go7007_snd_init +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x43d4fccc go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x5ac71819 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x6a20a381 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xa8074e85 go7007_update_board +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xaba12144 go7007_snd_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xe3d847ce go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/nvec/nvec 0x2099145e nvec_write_async +EXPORT_SYMBOL drivers/staging/nvec/nvec 0x84402fff nvec_write_sync +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x06c17be0 rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0b6667f9 rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1cdb418c rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1e185f68 rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x213e3994 rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x21b05d20 rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x23bca76f rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x23c7b37b rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2cdb1b8c rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x343d3ebb rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x39d74dba rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3a1c1e08 free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x570da562 HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x58fd5148 rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6183c2a8 rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6a5ddfff rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6bd2f743 rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x71838e3f rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x71c30de4 rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x734090db rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x73ffa077 rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7dcd8337 rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7edea175 rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x84978d9c rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8b6a1f9a rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8d4acdeb rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9999c2ff rtllib_wpa_supplicant_ioctl +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9dba317b rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa75734d4 rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa8357799 rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb09061eb rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb7ccef75 rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb975e3dd rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb9b95373 rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb9fecc35 rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbbe86e63 rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbc136410 Dot11d_Channelmap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe1420f2 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc5e7878e rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc7163e44 alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xcaffe9b4 RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xce6e99bb rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd75a728b rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdd1ce7d2 rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdd59e91a rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf78f620 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe0ebf05f rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe9edd49a rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xed52c123 rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf0b9ebc5 dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf5528e2d rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf58ae4fd notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x10989c97 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x12a797b7 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x13574758 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x148deb8b ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x19deda9d ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1b77d0a8 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1d09b0a1 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1e47bbfc ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2196929b ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x27c7335e ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2adfa819 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2d424fce ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x35339ec8 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x35d8f7fb ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3a22ccd8 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cbb989d ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3d11b5fe Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3da20805 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x41c54e7f ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x485a6f92 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4b843329 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4d99ce7a ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x50b1ca64 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x54a1a93d ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5988c1ae ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5e350669 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5fef12ac ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x65c23458 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x68d2ee35 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c32c8b5 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6d0ee2d6 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6f6a692c ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7727e6fd ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8fb1f04d SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x963ce88b DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x978e9b31 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9b9eb1cd ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9d36cb8b Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa33af158 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa9af79c2 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xad431788 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb5745241 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb8344afd ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb9c89c40 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbc010e43 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbdffd557 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc69b567e notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcdd1b803 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd6fb6a7e ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdde05b74 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe31b702e ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xeff20777 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf831a253 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf909b0dc IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfa9975f7 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xffb6796f ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0017f35f set_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x00ea0cde set_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x06d6f244 get_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x09df8f3e set_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0a8d32c3 get_bypass_slave_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1936264c set_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1d2eb8ca get_tap_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x203af1f7 reset_bypass_wd_timer_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2070f14a set_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x27b990ef get_bypass_info_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2ba7cd35 get_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2c3f1c17 get_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2f59e636 get_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2fdb893a get_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x361cf40a get_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x45ca99c3 set_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x550a188c set_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x5cb59e92 get_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x66b60122 set_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x675208c0 set_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x692623f2 get_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x75131ec6 set_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x76c0b7d0 set_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e872825 get_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e8d701e get_wd_expire_time_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x86388b07 get_bp_disc_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x93ae4648 get_wd_set_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x95e42b0d is_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9df5f807 set_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9e21f42e set_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xa689a214 get_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xae117788 get_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xc368d30d get_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xccab5de0 get_bypass_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd3e034b3 get_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9c1ccfc get_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9d38d97 set_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xe640f06e set_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xecdaa456 set_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xedcd3c1b get_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf06d67bf set_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf57c1671 get_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf693c3a1 bp_if_scan_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf8237882 get_bypass_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xfa59240d get_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05af3c4c set_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05b08a42 set_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0b0d5ce0 get_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0fc2e83c reset_bypass_wd_timer +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x123a8133 get_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x157ec89c get_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2440f05a get_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2b01d1d4 set_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2c27a2f0 set_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2da97f4b is_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2e86c67b get_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37416370 get_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37bdab27 get_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x3da96a18 get_bypass_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4025805e get_bypass_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4940a0cc get_bypass_info +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4d21ff51 get_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5147360c get_bp_disc_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x515d4df1 get_bypass_slave +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5560267e set_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5be44d44 set_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6653590c get_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6bda14ec get_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x72c618ae set_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x76d47e6f set_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x794e3815 set_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x7c6cbc16 get_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x84a263dc set_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x8a16f22c set_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x946ff795 get_wd_set_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x94f6aff2 get_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x9d1ecf73 set_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xb1385629 set_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xbff68c45 set_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xc871c561 get_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xcee528df set_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd202dd85 get_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd787f151 get_wd_expire_time +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xdb6a39d2 get_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xebd25ae5 get_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf1e9f8c1 set_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf224abd9 get_tap_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf5a591b2 set_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf643fd4c get_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x25978d50 xillybus_isr +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x39406de6 xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x4519511e xillybus_init_endpoint +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x6834c159 xillybus_do_cleanup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0xd757558d xillybus_endpoint_remove +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x01a56246 iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0bb5992c iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x101d97ec iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x164c7774 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3ccc6211 iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x51525360 iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x57d08b47 iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x59a92f79 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5ad29e89 iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5b38e2c0 iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5db7de87 iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x62010d67 iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x64a14664 iscsit_set_unsoliticed_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x65bfcf3d iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x6bbfe771 iscsit_handle_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x77e881dc iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8779ba49 iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8a407b5d iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa87a56e3 iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb6e3be4f iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb7187e40 iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb8c24e1f iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd671f24f iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xdb8bde51 iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xee323c5c iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf40495ab iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf56ea249 iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf6c09dda iscsit_register_transport +EXPORT_SYMBOL drivers/target/target_core_mod 0x027a882e transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x082ddd1e transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x0913f5ca sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x14af13d0 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x17d707cc transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x22e795bf transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x23bc0984 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0x25cc5b58 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x2c0715ce transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x2e761ad0 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x2f1f082f target_put_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x2fd3b6ea target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x30557b84 transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x34a01e08 target_submit_cmd_map_sgls +EXPORT_SYMBOL drivers/target/target_core_mod 0x36c1e6cf spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x372f3668 sbc_execute_unmap +EXPORT_SYMBOL drivers/target/target_core_mod 0x38fa46a2 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x3e282c29 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x43c8513b transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x45ed0f45 transport_init_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x46ef2fe9 spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x4901f718 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x4a997e53 sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0x4ddc447b iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x546f5b0b core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x570ed956 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x5ad40320 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x5ebf389f target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x5f25041d target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x61a91350 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x61af3f4f target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x650aa1a0 transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0x6bfa5368 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x78e20623 fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x7db81771 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x82276a70 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x8e061c81 target_setup_cmd_from_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x91a972d6 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x9982bc92 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0xa21e2cb4 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xa9ad0847 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xaa2ec2e6 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xabf5d506 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xaea2e2d4 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xb0d66d6d transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xb1a169e5 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xbc52c261 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xc2cb97ac spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xc40a4ff3 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xc7eeed34 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xc8b7c292 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0xcd22da64 target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xcdf97449 spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0xd0151794 target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0xd0275f2b core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xd196e747 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xd38fcf50 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xd76bac9b core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xd9552c0b sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xdaecd39a target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xdd587d5a transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0xe45de183 target_get_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xe643976f target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xe74f33ea target_sess_cmd_list_set_waiting +EXPORT_SYMBOL drivers/target/target_core_mod 0xe8ea5ee1 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xea3bae23 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xef0acc55 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf39f0295 core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xf7dbd011 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf9a8f309 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xf9ba452b sbc_parse_cdb +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0x5d1429a4 usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0xe662ac06 unregister_gadget_item +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x027b91ed gether_set_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x1ed1b1f1 gether_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x72d128cf gether_setup_name_default +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x7a6b1a58 gether_get_host_addr_u8 +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x853bf037 gether_get_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8878cfa6 gether_cleanup +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x88aa7dde gether_set_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8a08beae gether_setup_name +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8db8880c gether_register_netdev +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x9c83ab7b gether_get_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xa068013f gether_set_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xa3baa0cb gether_set_gadget +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xae0417ed gether_connect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xb2e95ac5 gether_get_ifname +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xca10889e gether_get_host_addr_cdc +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xd170c86d gether_get_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x28ab08e2 rndis_rm_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3a6d4f22 rndis_free_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3ca38e3a rndis_signal_connect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x4ca90996 rndis_signal_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x5d22b406 rndis_register +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x785d494b rndis_msg_parser +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x840dd143 rndis_deregister +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x988ad2a2 rndis_set_param_vendor +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x9acf72e4 rndis_set_param_medium +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xa90054ee rndis_uninit +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xb971ebca rndis_get_next_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xcdd9de92 rndis_set_param_dev +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xd0895825 rndis_add_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xd2fe47b1 rndis_set_host_mac +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x0ad8c5cd fsg_show_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x106b23a1 fsg_show_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1649b1ae fsg_show_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1710b539 fsg_fs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1b1cc3af store_cdrom_address +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x2933ee1d fsg_ss_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x398778e1 fsg_ss_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x423845e4 fsg_ss_bulk_in_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x56344daf fsg_hs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x65e24e9b fsg_lun_fsync_sub +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x78371b0b fsg_store_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x857b6dc2 fsg_hs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x95cffb3e fsg_hs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x98cc3675 fsg_show_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x998133f1 fsg_lun_open +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa27ad489 fsg_show_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5cae92f fsg_ss_bulk_out_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5f99b69 fsg_fs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xab128f44 fsg_lun_close +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb52ba28a fsg_intf_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb54d0d95 fsg_fs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xd8c8ae87 fsg_store_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf0359625 fsg_store_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf4efc0c8 fsg_ss_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf84f7e2d fsg_store_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf91546af fsg_store_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_rndis 0x4dc32197 rndis_borrow_net +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xb8d13575 sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x025a7800 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x13d27ce1 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2d7d138f usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x311512c3 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x445fa1b2 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5fa12cd3 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x67506e66 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6e653608 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x70b1ae5b usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7dc1f2f1 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8a58bf51 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9eb41e66 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd7327004 usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x6947c70a usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x8deb9838 usb_serial_suspend +EXPORT_SYMBOL drivers/vhost/vringh 0x0dda8c5a vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1f063017 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x2e91ca97 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x367ce26a vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x36dfce73 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3eaf442a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3fa42e4f vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5dafbd4e vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x66af098b vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x6d0e7948 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7bda5e6d vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x821e9390 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0xaf8e4a0e vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xafb47dae vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc884d704 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc8bee0a4 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xd11d2709 vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xda4ea4cc vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xfc7dcad2 vringh_getdesc_user +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x0f2ae793 devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xba80bc50 devm_lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xbb49970d lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xf3ab2448 lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x33a2e763 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/macmodes 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0xa44620af mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x7c76c69c g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xbcf50c20 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xfad20b73 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x3583e189 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x620ccb3d DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x71a6622f DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xa41b8d3a matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0xe57cabbe matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x61bc7a30 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x0b9e4fd3 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x0f751c2d matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x40c3af45 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xbe64e03e matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x1b4b52bb matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x67d6a062 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x1dc14598 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25646571 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x3b56e85d matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x7b32c70a matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x9692658a matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0x1df44736 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x69e60bf2 video_output_register +EXPORT_SYMBOL drivers/video/output 0x9fdc5a09 video_output_unregister +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x012b008a svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x49f8b028 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x6e4adb1e svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x7790b5e0 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x850485b6 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x8de63fb4 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xef38dd45 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf2db5956 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xf606208a svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0xfa351739 svga_tilecursor +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/vme/vme 0x0b081c4d vme_irq_request +EXPORT_SYMBOL drivers/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/vme/vme 0x2157965d vme_dma_pci_attribute +EXPORT_SYMBOL drivers/vme/vme 0x23052f40 vme_bus_type +EXPORT_SYMBOL drivers/vme/vme 0x2527a087 vme_slave_set +EXPORT_SYMBOL drivers/vme/vme 0x28dcd520 vme_irq_handler +EXPORT_SYMBOL drivers/vme/vme 0x2f0e9eb4 vme_lm_request +EXPORT_SYMBOL drivers/vme/vme 0x32a1f062 vme_irq_free +EXPORT_SYMBOL drivers/vme/vme 0x3cdd6531 vme_new_dma_list +EXPORT_SYMBOL drivers/vme/vme 0x3de65229 vme_register_driver +EXPORT_SYMBOL drivers/vme/vme 0x46649cd1 vme_lm_set +EXPORT_SYMBOL drivers/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/vme/vme 0x4baf35a7 vme_master_get +EXPORT_SYMBOL drivers/vme/vme 0x535c8308 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/vme/vme 0x58259c33 vme_dma_request +EXPORT_SYMBOL drivers/vme/vme 0x59d5d969 vme_master_request +EXPORT_SYMBOL drivers/vme/vme 0x5aff4177 vme_lm_get +EXPORT_SYMBOL drivers/vme/vme 0x5b89876e vme_dma_list_free +EXPORT_SYMBOL drivers/vme/vme 0x66227eae vme_alloc_consistent +EXPORT_SYMBOL drivers/vme/vme 0x6a7ee84d vme_irq_generate +EXPORT_SYMBOL drivers/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/vme/vme 0x7d141c56 vme_register_bridge +EXPORT_SYMBOL drivers/vme/vme 0x7fde2edb vme_master_read +EXPORT_SYMBOL drivers/vme/vme 0x84a69fdc vme_slave_get +EXPORT_SYMBOL drivers/vme/vme 0x89c2b69a vme_unregister_driver +EXPORT_SYMBOL drivers/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/vme/vme 0x94b2590f vme_free_consistent +EXPORT_SYMBOL drivers/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/vme/vme 0xa092481f vme_dma_list_add +EXPORT_SYMBOL drivers/vme/vme 0xa31bdf07 vme_master_set +EXPORT_SYMBOL drivers/vme/vme 0xb3e9dab5 vme_slave_request +EXPORT_SYMBOL drivers/vme/vme 0xcb2c1017 vme_dma_list_exec +EXPORT_SYMBOL drivers/vme/vme 0xd0675a5e vme_unregister_bridge +EXPORT_SYMBOL drivers/vme/vme 0xd797b9a5 vme_master_write +EXPORT_SYMBOL drivers/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/vme/vme 0xe693a6ce vme_get_size +EXPORT_SYMBOL drivers/vme/vme 0xefd1624a vme_dma_free_attribute +EXPORT_SYMBOL drivers/vme/vme 0xf2db8143 vme_slot_get +EXPORT_SYMBOL drivers/vme/vme 0xfacd8e72 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x622b883d w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x89e57116 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x8ef7f946 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xc6b8e9ad w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xc136cfcf w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xd32ae889 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x23aa7d63 w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0xeaccfc4d w1_ds2781_io +EXPORT_SYMBOL drivers/w1/wire 0x37f65953 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xb208f6b1 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xba6af530 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xf4402626 w1_remove_master_device +EXPORT_SYMBOL fs/btrfs/btrfs 0x27476846 ulist_reinit +EXPORT_SYMBOL fs/btrfs/btrfs 0x41e6a9d2 ulist_init +EXPORT_SYMBOL fs/btrfs/btrfs 0x7e2ee765 ulist_free +EXPORT_SYMBOL fs/btrfs/btrfs 0xa2eec2e8 ulist_fini +EXPORT_SYMBOL fs/btrfs/btrfs 0xb1320bc8 ulist_add +EXPORT_SYMBOL fs/btrfs/btrfs 0xb42289d2 ulist_alloc +EXPORT_SYMBOL fs/btrfs/btrfs 0xc2c745db ulist_next +EXPORT_SYMBOL fs/configfs/configfs 0x4b00a430 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x61312aa5 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x6a3544ae config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x70f90bf7 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x87a4fbca config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x8c3822ae configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x972f79b0 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xa34d8996 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xa7482f89 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xb5aa91af config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xe0018a88 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xfd49c23e config_item_get +EXPORT_SYMBOL fs/exofs/libore 0x0d4e5c99 ore_remove +EXPORT_SYMBOL fs/exofs/libore 0x120ea317 extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x35bc9542 ore_create +EXPORT_SYMBOL fs/exofs/libore 0x4527e170 ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x4c8a0e00 ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0x64f70a02 ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0x696f79f0 ore_read +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xbfc69c74 ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0xd427cdce ore_write +EXPORT_SYMBOL fs/exofs/libore 0xeceeb292 ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0xf0d1025b ore_get_rw_state +EXPORT_SYMBOL fs/fscache/fscache 0x032f5711 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x0e97e0ce fscache_object_init +EXPORT_SYMBOL fs/fscache/fscache 0x1149dfa7 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x15b35ef3 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x18ad0c9a __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x19b509b5 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x22468c24 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x25631afd fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x29672481 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x2e03dbeb fscache_mark_page_cached +EXPORT_SYMBOL fs/fscache/fscache 0x333e1b61 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x39ee8569 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x46249014 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x4c595170 __fscache_check_consistency +EXPORT_SYMBOL fs/fscache/fscache 0x5541d7a3 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x59b006ff fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x62b29650 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x68763b6c fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x706eeb28 __fscache_wait_on_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x752be7a6 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x76a6b31a fscache_object_destroy +EXPORT_SYMBOL fs/fscache/fscache 0x844cfebf fscache_op_complete +EXPORT_SYMBOL fs/fscache/fscache 0x84fa2785 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x9db07a89 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xa1228fc2 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xaeac8c8c __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0xb01f4aa1 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xb4b30f3c __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xb71ce663 __fscache_readpages_cancel +EXPORT_SYMBOL fs/fscache/fscache 0xbfce2256 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xc66fee1e __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0xc9f8c106 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0xcb1179d5 __fscache_disable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xd0074fd0 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0xdd477031 __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0xe426352b fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xfff2a459 __fscache_enable_cookie +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xa0f4b528 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0xb25b2957 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0xe13337f0 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x1f1af63a qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x43cf16db qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xd70fc00c qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xe04e724f qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xfcce6ac4 qtree_read_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0x41248eaf crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x08b05f73 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x2686c90f lc_get_cumulative +EXPORT_SYMBOL lib/lru_cache 0x46fbdfab lc_find +EXPORT_SYMBOL lib/lru_cache 0x5817613d lc_del +EXPORT_SYMBOL lib/lru_cache 0x79fae9f7 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x85cb3257 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x906dc1af lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x9da3f346 lc_set +EXPORT_SYMBOL lib/lru_cache 0xaf36660e lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0xbb720813 lc_try_lock +EXPORT_SYMBOL lib/lru_cache 0xc418dc0b lc_is_used +EXPORT_SYMBOL lib/lru_cache 0xc63c4ce8 lc_committed +EXPORT_SYMBOL lib/lru_cache 0xd91d1d0a lc_create +EXPORT_SYMBOL lib/lru_cache 0xda2a1a5f lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0xe4fd51f2 lc_put +EXPORT_SYMBOL lib/lru_cache 0xe56bf09b lc_get +EXPORT_SYMBOL lib/lru_cache 0xf1edcc81 lc_destroy +EXPORT_SYMBOL lib/lz4/lz4_compress 0xcbc5d521 lz4_compress +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x26c3aa22 lz4hc_compress +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/raid6/raid6_pq 0xd9e91f83 raid6_vgfmul +EXPORT_SYMBOL net/802/p8022 0x38180cba unregister_8022_client +EXPORT_SYMBOL net/802/p8022 0xb41c0b84 register_8022_client +EXPORT_SYMBOL net/802/p8023 0x2437cadb destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0xef6b5b9f make_8023_client +EXPORT_SYMBOL net/802/psnap 0x865bee07 register_snap_client +EXPORT_SYMBOL net/802/psnap 0xe747ab5a unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x1640ce8f p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x1a5e52b7 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x213452c7 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x272670d2 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x28a69c33 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x305963e8 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x31b830c1 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x3364ed2f p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x34223a55 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x44d2c2c0 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x4b7e6b1c p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x4f331379 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x55a0d47b p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x5af7d344 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x5af91bfb p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x673a8a6f p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x6f2c821e v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x70a494f6 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x710c92de p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x7498aa6e v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x7ba5bc57 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x84be1794 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x8de97b89 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x98d06440 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x9b29249d v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xa51704b4 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xa7bc998b p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0xad83da96 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0xb51bd54a v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0xbd8570fe p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xc609f946 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xcebe589d p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xd2ed4c06 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xd40a4e74 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xd5f6f65d p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xd9db3417 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xebee4bad p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xec7cd7a7 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xf38d8598 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf7184130 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xf925d6e2 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xf9a70981 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0xfc4427a3 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x4b3c90f0 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x533ebe01 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x9062bee1 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xb093e580 alloc_ltalkdev +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x3b4a0258 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x452d9e92 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x51cbcc05 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x5268d0d6 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x67078cd0 vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0x8a56489c atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x96c54770 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x988220ce atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xc18aea64 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xce3b0793 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xd3445231 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xe5187e1c atm_charge +EXPORT_SYMBOL net/atm/atm 0xf1774b53 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xfbea0220 atm_dev_register +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x10ed1fc9 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x18cae8b6 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x24a36d41 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x31ffe497 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x3268f204 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x3afee63e ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x5e6b37c4 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x86cd37c0 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x9e37678c ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc6ca6c5d ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0b387d33 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x10760940 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x165ad917 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1d1780d0 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1f740177 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x36f321f5 l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x42979650 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x42e319f2 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x42f18357 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x48643553 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5132c219 bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x51a29cd7 __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x654630bc bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x70e14a0d bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7a652e86 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c640527 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7d0021c2 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x81a05d4f hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x90e3b2c7 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x917989cb bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x943ade3e bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9806e2ad hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa074ad1b hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa0d29e20 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0xac78ece4 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb0c35502 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb51df147 bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb61a0c3b bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc1da6740 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc379f05 __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xce02fa81 l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd2bf28b5 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd6b767b7 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe3e1254d bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe6643254 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xebc28758 l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf264ce4b hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfa7b2a17 l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0xff1beceb bt_sock_link +EXPORT_SYMBOL net/bridge/bridge 0x866cbde3 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x101913f3 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x251e8748 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x751873f9 ebt_unregister_table +EXPORT_SYMBOL net/caif/caif 0x06dbdb29 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x38701a7c cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x6a44fc70 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x7a3d6ba8 caif_enroll_dev +EXPORT_SYMBOL net/caif/caif 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x86281e2e cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x966d7de2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xaa7d8738 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0xb6afa79f caif_connect_client +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/can/can 0x027cc88b can_ioctl +EXPORT_SYMBOL net/can/can 0x0c7c4256 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x1be8dc11 can_send +EXPORT_SYMBOL net/can/can 0x99799797 can_rx_register +EXPORT_SYMBOL net/can/can 0xa30cd9c8 can_proto_register +EXPORT_SYMBOL net/can/can 0xc532906e can_proto_unregister +EXPORT_SYMBOL net/ceph/libceph 0x00c1208e ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x08cf5693 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x1298144b ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x1475bf0d ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x1836973c ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x19b21a77 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x19eceb9d ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x1c4d506c osd_req_op_cls_response_data +EXPORT_SYMBOL net/ceph/libceph 0x200a7530 osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x20d151cb ceph_osdc_setup +EXPORT_SYMBOL net/ceph/libceph 0x27049181 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x297ea82f ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x2b536ef9 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x31bd6ae7 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0x35156403 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0x3981bd38 ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3bbcbbeb osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0x3df0ec7c ceph_calc_ceph_pg +EXPORT_SYMBOL net/ceph/libceph 0x3f688151 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x4205ffd7 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x43efd647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x489b0d7f osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0x4c846593 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x4f7eb1e4 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x549150c4 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x54a4b520 osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x581e66e7 ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0x5fdf0c2b ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x602422dd ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x63b3b049 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x66eb05dd ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x6a4db305 osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0x6b2e3bcd ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x6c5d5ac1 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6d4601ee ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x6f734b7b osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0x707b28e2 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x73dbeb63 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x7411a0d0 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x786c8304 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x7c6b4c88 ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x7f43faed ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x8082d566 ceph_auth_create_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x8523e41c ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0x871562e2 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x8a9963ef ceph_auth_update_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x8b970ed3 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x8d6ce1a9 osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x8f2de6df ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x97c1d847 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0x99e36571 ceph_osdc_cleanup +EXPORT_SYMBOL net/ceph/libceph 0x9d96bc7e ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0x9fc7e833 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xa074742e ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0xa3dc18e9 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xa6daeadc __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xa742a698 osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xac72c4f7 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0xae3515ba ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb096f279 ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb5525ed9 osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb7672ca9 osd_req_op_watch_init +EXPORT_SYMBOL net/ceph/libceph 0xbcef25a1 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc55de604 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xc790b44a ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcab42668 osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcc1e8b1b ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0xcd5eb1fc ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd5398f38 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0xe097dbf1 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0xe82c9c32 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0xebd051a3 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0xf1616f60 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0xf7b288a7 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0xf819d91c ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xf8d1be7c ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0xfa9b05c9 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0xfc5ac817 ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0xfcfa1c63 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xff678124 ceph_messenger_init +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x2d28b4e9 dccp_syn_ack_timeout +EXPORT_SYMBOL net/ieee802154/ieee802154 0x03f5da9a ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x087a69b4 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2754c83d wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x442adc64 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4ed9606c ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5ee3bda9 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6aabc1db ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6ad6eb45 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7b6910fd ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x901acbf0 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x955e4b1a wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc7096202 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd44c0d43 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x014f3546 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x88fe8a96 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xb660463a arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x04cf2412 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x77cfa0b0 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xfe10da53 ipt_register_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x33bdd13e xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xc858c307 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x4fe00ebc ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xb2aa7e02 ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x29b2856d ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x94de6da6 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xf377c5cc ip6t_do_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x359ef89b xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0xe48a09da xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x80f783c5 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe25defc8 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0f66ca84 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x1886f83a ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x3cea7d55 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x57fd29b2 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x854802ef ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x940ad24a ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb0bea5f0 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbbb7ffbf ircomm_connect_request +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x0768e825 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0ac74d6b irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x131ad228 irlap_open +EXPORT_SYMBOL net/irda/irda 0x17a491c5 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x192e3681 irlap_close +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x26e10df5 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x2d2e496b iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x33cbe2c6 proc_irda +EXPORT_SYMBOL net/irda/irda 0x36cad55b hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x37791344 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x52f0ec2c irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x5406754f irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x55c11171 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x5b6c967e irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x6492e28c hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x679c4a3d iriap_open +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6b76aa70 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x731cec71 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7b64828f irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x7dbaf7a4 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x7e67ca6e irias_new_object +EXPORT_SYMBOL net/irda/irda 0x86264adc irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x8982c8d9 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x8a44dd5e hashbin_new +EXPORT_SYMBOL net/irda/irda 0x8e01f614 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x8ea765b5 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x90ddb6bd hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9a1712fb irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x9ffda243 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xa29319e5 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xacd4d2a1 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xad7912f2 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xb3c13d7f irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xbf7dd554 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xbfa7c08d hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xc477368d irias_find_object +EXPORT_SYMBOL net/irda/irda 0xc98367a5 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xca7a2e04 irttp_dup +EXPORT_SYMBOL net/irda/irda 0xcc82cbf9 iriap_close +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xecfb9fba irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf199cba4 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0xfa3a320c irttp_connect_request +EXPORT_SYMBOL net/l2tp/l2tp_core 0xeabe7672 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x0c3fbeb4 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x3bc3734e lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x7d0fd5b4 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x8123584b lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xd243bd0f lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xd52e9168 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xe4015d1a lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xeb5103af lapb_connect_request +EXPORT_SYMBOL net/llc/llc 0x158677e8 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x1e9e99fd llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x4988aa73 llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x5ce7d79a llc_add_pack +EXPORT_SYMBOL net/llc/llc 0xabb95943 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0xd3adccd7 llc_sap_find +EXPORT_SYMBOL net/llc/llc 0xdc1c2afa llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0xdce7bf1b llc_set_station_handler +EXPORT_SYMBOL net/mac80211/mac80211 0x009376f2 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x03040d1c ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x03f24909 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x088e2872 ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0x0f19a63c ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x11cdac13 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x133747da __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x13ae50c8 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x1695ecfd ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x1ca73efe ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x1d8d78a7 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x1e85ca0f __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x205afb0d ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x20ed3052 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0x21a2ae71 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x241233e1 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x25a70ebc ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x29491eab ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x2a6ca425 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x2e0f1b67 ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x2ee1bbf9 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x31809495 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x422da6a0 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x4613d63c ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x462ec5a6 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x46dbde19 ieee80211_csa_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x4ab94f6f ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x4b199d03 ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0x53302402 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x545951cd ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x67393df2 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x6a13f589 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x6ad33931 ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0x6d176612 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x6fa63289 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x748c7f5a ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x75f0831d ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x760c2f7b ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x81841784 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0x822ebcb4 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x83ee87eb ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x91b9af2b ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x9507c852 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x9a43b62d ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x9c5e6334 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0xa1fc36c4 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa8e1a4d5 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xaf50166b ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0xb216b77e ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xc575cd64 rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0xc5f73435 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xc628f8dc ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xcb8ef835 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0xcbd26b05 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xcccafe99 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xcd988920 ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0xce9bce31 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xd217b822 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xd62281b7 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xdaa06521 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xdddb307c ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xe70ee35a ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xed2d9242 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0xedd4206b ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xeeb24612 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xf395de03 ieee80211_aes_cmac_calculate_k1_k2 +EXPORT_SYMBOL net/mac80211/mac80211 0xf40572fc ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xfe0a96ac ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0xff59309c ieee80211_restart_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x2929c27d ieee802154_unregister_device +EXPORT_SYMBOL net/mac802154/mac802154 0x4dc58fac ieee802154_register_device +EXPORT_SYMBOL net/mac802154/mac802154 0x72aeec59 ieee802154_alloc_device +EXPORT_SYMBOL net/mac802154/mac802154 0xb3175e92 ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0xc14d7b39 ieee802154_free_device +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x037420c3 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0b8bb6f7 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3479639c ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3684c07a unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3be2ba29 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3c7d9ee9 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x756f66a1 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x94c15d85 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xad35b892 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb368af5f ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xbac4d5e7 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd221556d register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdb2a07c2 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe2ce0d98 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x5bcd9528 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x7d34008b nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x83e9c6ec __nf_ct_ext_add_length +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x827cc6a1 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x1e55ff19 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/nf_nat 0x1e82bb0b nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0xaae7db7c nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0xafecee83 nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0xc3afa4fb nf_nat_used_tuple +EXPORT_SYMBOL net/netfilter/nf_nat 0xcaf279c4 nf_xfrm_me_harder +EXPORT_SYMBOL net/netfilter/nf_nat 0xcdeab7df __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x319f6cff xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x38344dbc xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x4d260aa5 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x5e0bbb8b xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x7ead8d18 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x7f2027e0 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x85145635 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xc1570533 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xe10aecb2 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xeaf64b06 xt_register_target +EXPORT_SYMBOL net/nfc/hci/hci 0x037d2d55 nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0x1023d6b4 nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0x17665710 nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x287be415 nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0x36ed8707 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0x385a53c9 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x391e4ed6 nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x43028a27 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x4b610826 nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0x56f4c6e0 nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0x5c9453d9 nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0x74077d44 nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x74b2d5b8 nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x7b6c224d nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0x94c813e4 nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xa0657e8c nfc_hci_send_response +EXPORT_SYMBOL net/nfc/hci/hci 0xbacd300e nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0xbca0b4fd nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xf3681a91 nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0xff47f7fc nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/nci/nci 0x2eb46884 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xb109f2b1 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0xb16d3d73 nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0xb5e0d93a nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xe1ad6cbf nci_recv_frame +EXPORT_SYMBOL net/nfc/nfc 0x065df452 nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0x1ab7c694 nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0x2f3fa7b0 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x38a4486f nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0x39d4074e nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x540a0add nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0x57b21543 nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0x6e27ae28 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0x6e837a9e nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x73615880 nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0x7b619694 nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0x95a52c62 nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0xa4a69464 nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0xaa1298b6 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0xb59cb12c nfc_class +EXPORT_SYMBOL net/nfc/nfc 0xba012188 nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0xc926278f nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0xcbf31765 nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0xe208195b nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0xe75ad115 nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc_digital 0x5de7e8a1 nfc_digital_register_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x712772ca nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x7c1abe5e nfc_digital_unregister_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x829eda7b nfc_digital_free_device +EXPORT_SYMBOL net/phonet/phonet 0x1f48f428 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x81f6addb phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x963bd04b pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xb263ec84 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xd49c04b3 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xd6e04885 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xeed584a2 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xf419eae5 phonet_proto_register +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x05798ad3 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x05de307f rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x08bbf6be rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0f0b1722 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x13395682 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2bf4d1e4 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x53720b79 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x63b2bb52 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6f0dfb94 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x90e9e7d0 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x913bd774 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xabd8ff48 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbd357787 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcddf76ee rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xce1fb3e2 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/sctp/sctp 0x35cf7a04 sctp_do_peeloff +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb58b00af gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xd701dff5 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xdabdf971 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/sunrpc 0x531e085a svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0x59e53001 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xbef661b2 wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x009d231f cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x0589ffb8 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x0888886a cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0c696133 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x199c520d cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x19e03378 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x1b4f88cb cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x1ba05bfc cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x1c02a8bc wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x2292bb50 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x27718770 cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x2e2eadb9 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x2f8993df wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x30419dbe cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0x328430d7 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x332783f0 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x39219996 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x3abea62b cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x3cf3f3b2 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x402f31eb cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0x406a8302 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x44f69ec3 cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0x4c3b5878 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x4c40b2fb ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x4c520d1b cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x51dde577 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x5472daad ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x549ae50f ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x5aa80f36 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x5aee0255 cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x5b526aa2 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x62461e0b cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x64428c39 cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x6540b311 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x66837ddc wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6a2cdbba cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x6d6cb9ad ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x6e015245 cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x70cc7ab1 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x7a7d7bcd wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x7e2d0bdc cfg80211_report_obss_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7f61603a cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x80e969d3 cfg80211_roamed_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x835a3159 cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x871a8fe2 cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0x8f39be65 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x90c0edab cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0x92a875b7 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x935ba183 cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x97d4676a cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x98edc9e7 cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x9aa2dd70 cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x9cb79b94 cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0x9e11ad56 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x9eece19b cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0xa1425906 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa29f7d83 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xa791d535 cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xaa7af88d cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xb0474e63 cfg80211_inform_bss_width_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xb33bc65c wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xbc849f5f cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xc15c8611 cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xccaf7b58 cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xcf618a57 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0xd0df917e cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xd0f42734 cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0xd7131ce7 cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0xd8fdac93 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0xdba126c1 reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0xe253ea45 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xe377ba8b cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xee42db3c cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xf43898e6 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xfa12a5de cfg80211_inform_bss_width +EXPORT_SYMBOL net/wireless/cfg80211 0xfbde9763 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xfddb93e1 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x16d6637b lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x35bba1c1 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x56009f40 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x75573050 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xfa5f4168 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xfea5fcfc lib80211_crypt_info_init +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x78a1dc53 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xa927bb44 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe0d7407b snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0xfa285faf snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x117b89a4 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xd48cb484 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x127b30fb snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x1cdc0812 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x59eb74ae snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x8102ed2f snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb11ba32d snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb2c7f684 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xea0e5748 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xed42580b snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x8e35b7ba snd_virmidi_new +EXPORT_SYMBOL sound/core/snd-hwdep 0x7484e9cd snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x075f56b0 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1841ed43 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1ca4ffeb snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1e98c095 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3803c778 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x535433fc snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6c2d0a05 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x77dcf466 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7ca61066 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x84ea9a56 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x940b0ae7 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9d69da1a snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa2dd0c93 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xabf814a7 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe4100c99 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xedd50e31 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf9ea4a70 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x1fb8ab77 snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x19e90917 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x3ae79537 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x41f26420 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x59f72f87 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x796510fc snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x804714ee snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8bdde105 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xaa2621da snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb92fef1a snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x10d52895 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x213dd7b8 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8095611a snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x83326460 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x96b17bb5 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd29aab2f snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd2c3f61f snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd68f77b1 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe14d6c18 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x05454bb4 cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x07ff0b95 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0db19b5b amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x16a4b08e iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1724b0e7 cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1d1a5f4e iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x20254e45 amdtp_syt_intervals +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4e04fb29 fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x528fea61 amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x596e980a amdtp_out_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5cd2082c cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5e897e54 amdtp_out_stream_pcm_pointer +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5f0b5d40 amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5f7e23f9 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6875d1b7 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x69ab055e fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6f3e6696 amdtp_out_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x82e8687f fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x83149192 amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x9bd5e087 cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb31a94fe fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb467f37c amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xcf4ee1e9 snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd8bccddd amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf7afbf1a cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf7e9d131 amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf88fe72a amdtp_out_stream_set_parameters +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x23678394 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x2af5b385 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x346ef7df snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x87e84187 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc325e42a snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xeba12e4b snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x365a65b9 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x57dbec71 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xb26d4db4 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xe6a2c912 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x68978998 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xcfbb029a snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x0d6cedb7 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x2f8526c7 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x5ecd050e snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x9d393026 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xd4a1fa57 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-i2c 0x69bd7142 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x7b4e99c7 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x8d6cbb7d snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x94d7ad02 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc7e5b8ce snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xd41b1903 snd_i2c_device_create +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x011a73e6 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x05ad150b snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1929680a snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2f4370fd snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x44ef3f2c snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x469ea477 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5b124422 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5d6b8dee snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x734d1289 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x864f43da snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa197af84 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbb56250e snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xcfb42192 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdf1d4129 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdf6d1440 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xedc15544 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfc52d112 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x138ca9c1 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x2695cc51 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x3ea52e80 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x47d798f4 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x67596eb4 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x837d15fd snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb2cbdc19 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc86de6ed snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd2e32711 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x4ec59662 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x9e4438a4 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xe60ee6b0 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x10d73e9f oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x25e28e71 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x28178610 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3c96a4ec oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x58d548ce oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x77fa8dda oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8d27542d oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa56a2a2e oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa60f21a9 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xaac43064 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc06aa5c2 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc890b83c oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc94ce333 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc96019af oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe047355d oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xea274e5b oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xee53d598 oxygen_pci_pm +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf4598e40 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf747b3b5 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xfe5ccfe6 oxygen_write_spi +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x1889496b snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x9bf20ae5 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xb5af47cc snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xc77e9376 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xfea4e638 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x00048d90 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x4579c702 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x64601e42 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x79aa7e07 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x97384785 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xead93f49 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x271fe8c0 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x27f1c552 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x3b125b2e snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x4a52a59d __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x9a9935d9 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0xac22a83d snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xae433a93 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xbf4ee1cb snd_util_mem_alloc +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x70765341 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 __symbol_put +EXPORT_SYMBOL vmlinux 0x00000000 current_fs_time +EXPORT_SYMBOL vmlinux 0x00000000 d_tmpfile +EXPORT_SYMBOL vmlinux 0x00000000 do_sync_read +EXPORT_SYMBOL vmlinux 0x00000000 filp_close +EXPORT_SYMBOL vmlinux 0x00000000 finish_open +EXPORT_SYMBOL vmlinux 0x00000000 generic_getxattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_write_sync +EXPORT_SYMBOL vmlinux 0x00000000 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x00000000 in_group_p +EXPORT_SYMBOL vmlinux 0x00000000 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x00000000 iov_shorten +EXPORT_SYMBOL vmlinux 0x00000000 iterate_fd +EXPORT_SYMBOL vmlinux 0x00000000 ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 path_is_under +EXPORT_SYMBOL vmlinux 0x00000000 register_exec_domain +EXPORT_SYMBOL vmlinux 0x00000000 sock_register +EXPORT_SYMBOL vmlinux 0x00000000 sys_close +EXPORT_SYMBOL vmlinux 0x00000000 task_nice +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x00000000 vm_brk +EXPORT_SYMBOL vmlinux 0x00095ca1 kern_path_mountpoint +EXPORT_SYMBOL vmlinux 0x000c53f9 sk_alloc +EXPORT_SYMBOL vmlinux 0x000d28b3 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x001ee95a imx_ssi_fiq_base +EXPORT_SYMBOL vmlinux 0x003ed69a __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x0048dda7 blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x0059cf41 submit_bio +EXPORT_SYMBOL vmlinux 0x007cf196 init_special_inode +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0084f5a4 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x00990fab pci_set_power_state +EXPORT_SYMBOL vmlinux 0x00b22eab elevator_change +EXPORT_SYMBOL vmlinux 0x00ccce51 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x00cf4a7f of_get_parent +EXPORT_SYMBOL vmlinux 0x00dbeab2 __cleancache_invalidate_page +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0101d5b1 ip_idents_reserve +EXPORT_SYMBOL vmlinux 0x0108f036 nobh_writepage +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x0127e824 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x013cd331 pci_choose_state +EXPORT_SYMBOL vmlinux 0x01586ca4 bio_advance +EXPORT_SYMBOL vmlinux 0x017eda83 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x0186e2de smp_call_function_many +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a3d310 omap_set_dma_channel_mode +EXPORT_SYMBOL vmlinux 0x01b7fd59 dispc_read_irqstatus +EXPORT_SYMBOL vmlinux 0x01b89682 md_done_sync +EXPORT_SYMBOL vmlinux 0x01c99991 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x01ea132e dispc_runtime_put +EXPORT_SYMBOL vmlinux 0x02010312 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x0206197f simple_getattr +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x02196324 __aeabi_idiv +EXPORT_SYMBOL vmlinux 0x0226e1ac mem_map +EXPORT_SYMBOL vmlinux 0x024bf88f omap_modify_dma_chain_params +EXPORT_SYMBOL vmlinux 0x02573b36 omap_disable_dma_irq +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x027e287e __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02c5d935 seq_vprintf +EXPORT_SYMBOL vmlinux 0x02edb3ba __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02ef742b percpu_counter_set +EXPORT_SYMBOL vmlinux 0x02fe006d freeze_super +EXPORT_SYMBOL vmlinux 0x03026722 mempool_alloc +EXPORT_SYMBOL vmlinux 0x03152461 d_validate +EXPORT_SYMBOL vmlinux 0x03204cb2 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x03259279 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x0334795d icst307_s2div +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x033a9188 single_release +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x03635439 edma_stop +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x038c67e5 pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0x039cd6d4 __cleancache_invalidate_inode +EXPORT_SYMBOL vmlinux 0x03ba39b0 v7_flush_user_cache_all +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03e58aed insert_inode_locked +EXPORT_SYMBOL vmlinux 0x03f51f6b __mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x0400a560 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x042a270b pci_clear_master +EXPORT_SYMBOL vmlinux 0x042dc8d7 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x04786955 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04b94185 crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x04cda566 snd_interval_refine +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04f99511 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x051b5e85 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x051d60d6 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x0533904d padata_add_cpu +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x054c4d93 dev_add_pack +EXPORT_SYMBOL vmlinux 0x054f300b get_thermal_instance +EXPORT_SYMBOL vmlinux 0x05514049 snd_pcm_hw_refine +EXPORT_SYMBOL vmlinux 0x0565bc41 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x0587e94d key_revoke +EXPORT_SYMBOL vmlinux 0x058df1b2 arm_dma_ops +EXPORT_SYMBOL vmlinux 0x0593a99b init_timer_key +EXPORT_SYMBOL vmlinux 0x0594fe80 sk_free +EXPORT_SYMBOL vmlinux 0x05997872 ilookup +EXPORT_SYMBOL vmlinux 0x059cf098 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x05a92f5b __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x05ae3cd7 irq_set_chip +EXPORT_SYMBOL vmlinux 0x05d26320 snd_device_free +EXPORT_SYMBOL vmlinux 0x05d4ffac commit_creds +EXPORT_SYMBOL vmlinux 0x05f1f1f5 genphy_read_status +EXPORT_SYMBOL vmlinux 0x0603d509 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x06357cb2 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x063745ec handle_edge_irq +EXPORT_SYMBOL vmlinux 0x06465663 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x06607f92 dss_feat_get_supported_outputs +EXPORT_SYMBOL vmlinux 0x0665a1b9 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x066930d5 force_sig +EXPORT_SYMBOL vmlinux 0x0674f1bb scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x06751078 snd_pcm_debug_name +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x067da42e lock_rename +EXPORT_SYMBOL vmlinux 0x0684ac48 serio_close +EXPORT_SYMBOL vmlinux 0x0699f4a1 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x06cd093b mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x06d61c4d gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x06de059f nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x06e01ee1 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x06e38e69 dev_alert +EXPORT_SYMBOL vmlinux 0x06f3210d scsi_remove_device +EXPORT_SYMBOL vmlinux 0x06f50b45 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0703d614 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x07248560 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x07359522 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x07365edd netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0x0792e26d bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07cd4bcc wake_up_process +EXPORT_SYMBOL vmlinux 0x07cf9099 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x07dd6477 search_binary_handler +EXPORT_SYMBOL vmlinux 0x07e6c845 skb_unlink +EXPORT_SYMBOL vmlinux 0x07ea4312 update_devfreq +EXPORT_SYMBOL vmlinux 0x07f4619a dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x07f5f89c splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x07fc48d7 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x08061eda skb_make_writable +EXPORT_SYMBOL vmlinux 0x081f3afb complete_all +EXPORT_SYMBOL vmlinux 0x0822d8a1 bio_pair_release +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083c2cbe of_get_next_parent +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x084d5b2f __pagevec_release +EXPORT_SYMBOL vmlinux 0x08aba374 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x08fddd63 get_user_pages +EXPORT_SYMBOL vmlinux 0x0902cb2e i2c_master_send +EXPORT_SYMBOL vmlinux 0x091f6e55 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x0926187d register_cdrom +EXPORT_SYMBOL vmlinux 0x094523e3 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x096f6f18 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x097ec1ff _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0994a9a6 vfs_setpos +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09cf1b46 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09d48e01 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x09eb945f neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x09ef4a3d unregister_quota_format +EXPORT_SYMBOL vmlinux 0x0a0456b0 netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0x0a0786de udplite_table +EXPORT_SYMBOL vmlinux 0x0a1073fd truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a402369 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x0a432b83 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x0a462758 __skb_checksum +EXPORT_SYMBOL vmlinux 0x0a469d23 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0x0a4e28db snd_ctl_add +EXPORT_SYMBOL vmlinux 0x0a65b559 kernel_listen +EXPORT_SYMBOL vmlinux 0x0a73de9b pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x0a8965a3 fb_find_mode +EXPORT_SYMBOL vmlinux 0x0a958ed4 down_write +EXPORT_SYMBOL vmlinux 0x0aa045b9 udp_del_offload +EXPORT_SYMBOL vmlinux 0x0aa13d05 __raw_readsw +EXPORT_SYMBOL vmlinux 0x0aa41c48 __bio_clone +EXPORT_SYMBOL vmlinux 0x0aab8f59 iterate_dir +EXPORT_SYMBOL vmlinux 0x0abbcb35 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0adfab73 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b243576 snd_pcm_suspend_all +EXPORT_SYMBOL vmlinux 0x0b34e980 release_sock +EXPORT_SYMBOL vmlinux 0x0b355d06 devfreq_interval_update +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b48791a nand_scan +EXPORT_SYMBOL vmlinux 0x0b4e8ab6 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x0b56117f of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x0b6ae90f pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b74d80e netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x0b78c580 ll_rw_block +EXPORT_SYMBOL vmlinux 0x0b7e8d45 d_delete +EXPORT_SYMBOL vmlinux 0x0b8693ea pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x0b86da09 md_integrity_register +EXPORT_SYMBOL vmlinux 0x0b8c7311 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x0b910d19 dquot_disable +EXPORT_SYMBOL vmlinux 0x0b93a281 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x0ba65a1f user_path_create +EXPORT_SYMBOL vmlinux 0x0bbabd30 elevator_exit +EXPORT_SYMBOL vmlinux 0x0bbc5908 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bdd9916 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x0bf3dd63 kfree_skb_list +EXPORT_SYMBOL vmlinux 0x0c06d3f1 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0x0c1f520a jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x0c3cd558 no_llseek +EXPORT_SYMBOL vmlinux 0x0c45fc96 vfs_lstat +EXPORT_SYMBOL vmlinux 0x0c58a8cd netdev_increment_features +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c9e9b90 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca54fee _test_and_set_bit +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cb8e4bf inet_del_protocol +EXPORT_SYMBOL vmlinux 0x0ce900af blk_finish_plug +EXPORT_SYMBOL vmlinux 0x0ceb006d set_security_override +EXPORT_SYMBOL vmlinux 0x0cfd08d9 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x0cfefe1e percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x0d108bb3 devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0x0d173233 register_console +EXPORT_SYMBOL vmlinux 0x0d3f57a2 _find_next_bit_le +EXPORT_SYMBOL vmlinux 0x0d4d7a32 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d718188 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x0d768930 get_tz_trend +EXPORT_SYMBOL vmlinux 0x0d7c4f9a __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x0d9fdf17 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0daa0e5f ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x0dd4f439 single_open +EXPORT_SYMBOL vmlinux 0x0e12057e ___pskb_trim +EXPORT_SYMBOL vmlinux 0x0e1f7b0c qdisc_reset +EXPORT_SYMBOL vmlinux 0x0e483e89 mmc_set_blockcount +EXPORT_SYMBOL vmlinux 0x0e6532d1 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x0e6d96fd snd_dma_reserve_buf +EXPORT_SYMBOL vmlinux 0x0e6da44a set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x0e7b3b48 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x0e7de29b snd_pcm_lib_malloc_pages +EXPORT_SYMBOL vmlinux 0x0e814aef devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0x0e94dc86 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x0e950e8c of_get_ddr_timings +EXPORT_SYMBOL vmlinux 0x0ea72661 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x0ea79e78 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x0eaf451e hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x0eafddab scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x0eb079d2 scsi_execute_req_flags +EXPORT_SYMBOL vmlinux 0x0edb3e5f tcp_prot +EXPORT_SYMBOL vmlinux 0x0efcbb1b set_current_groups +EXPORT_SYMBOL vmlinux 0x0efd27cc pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x0f04a76d kern_path +EXPORT_SYMBOL vmlinux 0x0f16af78 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x0f1d3bc4 fsnotify_get_group +EXPORT_SYMBOL vmlinux 0x0f353ef9 security_path_truncate +EXPORT_SYMBOL vmlinux 0x0f420eac __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x0f433b5d sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x0f4c91ed ns_to_timespec +EXPORT_SYMBOL vmlinux 0x0f55c043 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x0f6b1bcc __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x0f7ac628 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x0f8e3030 netdev_printk +EXPORT_SYMBOL vmlinux 0x0f8f03b4 dst_destroy +EXPORT_SYMBOL vmlinux 0x0f9f937f of_find_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0x0fa2a45e __memzero +EXPORT_SYMBOL vmlinux 0x0fa2f6da override_creds +EXPORT_SYMBOL vmlinux 0x0fa6600f eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb05492 mpage_writepages +EXPORT_SYMBOL vmlinux 0x0fc66ba4 register_qdisc +EXPORT_SYMBOL vmlinux 0x0fed0dfd pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x0ff178f6 __aeabi_idivmod +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x101c8edd cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x103847ae mmc_read_bkops_status +EXPORT_SYMBOL vmlinux 0x1059579d blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x106a15e8 snd_jack_set_parent +EXPORT_SYMBOL vmlinux 0x106f13ab crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x107d94d3 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x10d60355 omapdss_output_unset_device +EXPORT_SYMBOL vmlinux 0x10d668f9 submit_bio_wait +EXPORT_SYMBOL vmlinux 0x10e20849 blk_delay_queue +EXPORT_SYMBOL vmlinux 0x10eadc95 rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11162ac3 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x111dbf8b __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x1122964d scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x112748bd omap_vrfb_adjust_size +EXPORT_SYMBOL vmlinux 0x1138c0f1 devm_ioremap +EXPORT_SYMBOL vmlinux 0x114374e0 kill_fasync +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x116af5f5 get_super_thawed +EXPORT_SYMBOL vmlinux 0x116dccaf vga_put +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x11756239 snd_ctl_register_ioctl +EXPORT_SYMBOL vmlinux 0x1177a998 mmc_cleanup_queue +EXPORT_SYMBOL vmlinux 0x117c344d kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x117f6387 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x11820e7b nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x1187f586 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x119b50e7 elf_check_arch +EXPORT_SYMBOL vmlinux 0x11a1da88 pcie_get_minimum_link +EXPORT_SYMBOL vmlinux 0x11c9185c of_iomap +EXPORT_SYMBOL vmlinux 0x11e2ec12 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x11f8ec69 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x122043a8 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x1247c77a mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x128cfe36 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x12a2fbfe neigh_table_clear +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12d9623b dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x13148f18 new_inode +EXPORT_SYMBOL vmlinux 0x131741c3 pci_disable_ido +EXPORT_SYMBOL vmlinux 0x13187192 follow_pfn +EXPORT_SYMBOL vmlinux 0x13307fde vsscanf +EXPORT_SYMBOL vmlinux 0x1348760d ipmi_request_settime +EXPORT_SYMBOL vmlinux 0x13646e89 rtnl_notify +EXPORT_SYMBOL vmlinux 0x1373543c mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x1390020b __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x13a678fb md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d21331 pci_disable_ltr +EXPORT_SYMBOL vmlinux 0x13da7de2 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x141b6e59 pps_register_source +EXPORT_SYMBOL vmlinux 0x1420b379 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x143950bc scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x1448b577 fget +EXPORT_SYMBOL vmlinux 0x144b4304 mtd_concat_destroy +EXPORT_SYMBOL vmlinux 0x144f091b sock_kfree_s +EXPORT_SYMBOL vmlinux 0x144f168d blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0x144f365d dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x145f55da lease_get_mtime +EXPORT_SYMBOL vmlinux 0x146ddeab seq_release +EXPORT_SYMBOL vmlinux 0x1470752e mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x14817197 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x149701da omap_dss_get_overlay +EXPORT_SYMBOL vmlinux 0x14a08a90 release_firmware +EXPORT_SYMBOL vmlinux 0x14d4a9c5 _change_bit +EXPORT_SYMBOL vmlinux 0x14e1aedb pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x15147fb6 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x15349cee cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15681a5c request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x159e0824 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x15f240ab set_bh_page +EXPORT_SYMBOL vmlinux 0x15f571ec blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x16045d82 dev_emerg +EXPORT_SYMBOL vmlinux 0x160b5f4f amba_driver_register +EXPORT_SYMBOL vmlinux 0x162ccc0c lg_local_lock +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x16603870 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x16605e87 dev_change_flags +EXPORT_SYMBOL vmlinux 0x166e64bb sock_wmalloc +EXPORT_SYMBOL vmlinux 0x16773975 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x16860c0e tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x168e86b6 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x1693a67e pci_save_state +EXPORT_SYMBOL vmlinux 0x16a4613b mdio_bus_type +EXPORT_SYMBOL vmlinux 0x16c05916 genphy_resume +EXPORT_SYMBOL vmlinux 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL vmlinux 0x16f4cec7 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x16f4d647 d_alloc +EXPORT_SYMBOL vmlinux 0x1701932d mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x170ce926 stop_tty +EXPORT_SYMBOL vmlinux 0x1727933e tty_kref_put +EXPORT_SYMBOL vmlinux 0x172c381c pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x17348689 security_path_symlink +EXPORT_SYMBOL vmlinux 0x173affe4 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x173bb396 vc_cons +EXPORT_SYMBOL vmlinux 0x17489134 bio_put +EXPORT_SYMBOL vmlinux 0x174afb1a __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0x174e6087 snd_ctl_unregister_ioctl +EXPORT_SYMBOL vmlinux 0x1758ca0a blk_stop_queue +EXPORT_SYMBOL vmlinux 0x1776550c read_cache_pages +EXPORT_SYMBOL vmlinux 0x1777c1b3 get_super +EXPORT_SYMBOL vmlinux 0x177dad51 blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0x17a142df __copy_from_user +EXPORT_SYMBOL vmlinux 0x17b1125d gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x17b39365 tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x17b9a070 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x17cf33ec snd_timer_open +EXPORT_SYMBOL vmlinux 0x17d3b2a4 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x17d6f8d7 bdi_destroy +EXPORT_SYMBOL vmlinux 0x17dd607e del_gendisk +EXPORT_SYMBOL vmlinux 0x17f5408c snd_pcm_hw_constraint_step +EXPORT_SYMBOL vmlinux 0x181e2990 arm_dma_zone_size +EXPORT_SYMBOL vmlinux 0x181f10af pci_dev_get +EXPORT_SYMBOL vmlinux 0x1826f089 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x183d5f31 pci_match_id +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x18489ccd md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x185abe36 key_type_keyring +EXPORT_SYMBOL vmlinux 0x186fbc1c pci_claim_resource +EXPORT_SYMBOL vmlinux 0x18728e8e inode_reclaim_rsv_space +EXPORT_SYMBOL vmlinux 0x187cbe7c mount_bdev +EXPORT_SYMBOL vmlinux 0x188a3dfb timespec_trunc +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18b7ff51 dcb_setapp +EXPORT_SYMBOL vmlinux 0x18bd76a4 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x18bdeeb0 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x18c2227f cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x18d100a2 blk_run_queue_async +EXPORT_SYMBOL vmlinux 0x18d76b43 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x18f085bf pskb_expand_head +EXPORT_SYMBOL vmlinux 0x19610e1f cpu_all_bits +EXPORT_SYMBOL vmlinux 0x19620273 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x19751a63 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x197dc3b3 omap_set_dma_src_burst_mode +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b3aae2 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x19b3e593 __f_setown +EXPORT_SYMBOL vmlinux 0x19bb11b6 sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0x19bbdc70 ipmi_smi_watcher_unregister +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19c99f86 devm_gpiod_put +EXPORT_SYMBOL vmlinux 0x19d57d5d sys_fillrect +EXPORT_SYMBOL vmlinux 0x19d97058 devfreq_add_device +EXPORT_SYMBOL vmlinux 0x19f5809b dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0x1a023cdd mnt_pin +EXPORT_SYMBOL vmlinux 0x1a048de3 tty_port_close +EXPORT_SYMBOL vmlinux 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL vmlinux 0x1a1f15a6 free_user_ns +EXPORT_SYMBOL vmlinux 0x1a20c540 omap_vrfb_supported +EXPORT_SYMBOL vmlinux 0x1a3b155c account_page_redirty +EXPORT_SYMBOL vmlinux 0x1a42964a eth_header_cache +EXPORT_SYMBOL vmlinux 0x1a515439 skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x1a546aef fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x1a5f8cb9 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x1a65f4ad __arm_ioremap_pfn +EXPORT_SYMBOL vmlinux 0x1a84182a get_task_io_context +EXPORT_SYMBOL vmlinux 0x1a8d401c pci_bus_get +EXPORT_SYMBOL vmlinux 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL vmlinux 0x1abddbac vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad1f2e7 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0x1aec4639 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x1af3f403 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x1af97153 wireless_send_event +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b0168a6 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL vmlinux 0x1b0ac272 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x1b10b340 filemap_fault +EXPORT_SYMBOL vmlinux 0x1b269528 scsi_device_get +EXPORT_SYMBOL vmlinux 0x1b2ca21b blk_mq_end_io +EXPORT_SYMBOL vmlinux 0x1b38792e netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x1b40149e pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0x1b4cce3a tcp_check_req +EXPORT_SYMBOL vmlinux 0x1b4ce78e km_policy_notify +EXPORT_SYMBOL vmlinux 0x1b4e3be2 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b82fefa md_unplug +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1ba085e8 fb_get_mode +EXPORT_SYMBOL vmlinux 0x1c0be19c security_path_mknod +EXPORT_SYMBOL vmlinux 0x1c54ce5e tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x1c56516b inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x1c5b9848 clear_nlink +EXPORT_SYMBOL vmlinux 0x1c5e3878 icst525_idx2s +EXPORT_SYMBOL vmlinux 0x1c6dea12 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x1c71470c snd_timer_global_free +EXPORT_SYMBOL vmlinux 0x1c7dabf1 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x1c95b2fe of_phy_find_device +EXPORT_SYMBOL vmlinux 0x1cad4029 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x1ceb5c28 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x1ceef526 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x1cfb04fa finish_wait +EXPORT_SYMBOL vmlinux 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL vmlinux 0x1d1d5c3d dquot_transfer +EXPORT_SYMBOL vmlinux 0x1d208b1e __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x1d37f272 mmc_start_bkops +EXPORT_SYMBOL vmlinux 0x1d3940b6 kmap_high +EXPORT_SYMBOL vmlinux 0x1d601d39 aio_complete +EXPORT_SYMBOL vmlinux 0x1d85e587 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x1d8d6c34 snd_pcm_lib_free_pages +EXPORT_SYMBOL vmlinux 0x1da13980 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x1da46445 mount_pseudo +EXPORT_SYMBOL vmlinux 0x1db7dc40 pgprot_kernel +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dc3c900 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x1dc7cf58 generic_show_options +EXPORT_SYMBOL vmlinux 0x1dd1c18f security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1df193e3 d_drop +EXPORT_SYMBOL vmlinux 0x1e047854 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x1e20106d nla_append +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e2ce1ec igrab +EXPORT_SYMBOL vmlinux 0x1e2f1a7d ip6_route_output +EXPORT_SYMBOL vmlinux 0x1e3e17ea netif_carrier_off +EXPORT_SYMBOL vmlinux 0x1e47d2d6 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x1e535473 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e8ce9ae scsi_execute +EXPORT_SYMBOL vmlinux 0x1e9387c4 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x1e975388 nand_scan_ident +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ebd21d4 nf_nat_decode_session_hook +EXPORT_SYMBOL vmlinux 0x1ebdea8d generic_readlink +EXPORT_SYMBOL vmlinux 0x1ec03789 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x1ec3bed9 hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x1ec4eb34 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x1ed341f2 give_up_console +EXPORT_SYMBOL vmlinux 0x1ed86aed keyring_alloc +EXPORT_SYMBOL vmlinux 0x1eda861d sock_create_kern +EXPORT_SYMBOL vmlinux 0x1ee660f8 pci_get_class +EXPORT_SYMBOL vmlinux 0x1eeb848e __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x1ef23629 filp_open +EXPORT_SYMBOL vmlinux 0x1efcab55 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x1f1938fb sync_inode +EXPORT_SYMBOL vmlinux 0x1f50ff3f __frontswap_load +EXPORT_SYMBOL vmlinux 0x1f763d8b dquot_destroy +EXPORT_SYMBOL vmlinux 0x1f7e153c bio_unmap_user +EXPORT_SYMBOL vmlinux 0x1f7e807f kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x1f9a73b3 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x1fab5905 wait_for_completion +EXPORT_SYMBOL vmlinux 0x1fb7fad8 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x1fb88fa4 inet6_protos +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd24d14 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x1fe912f1 netdev_alloc_frag +EXPORT_SYMBOL vmlinux 0x1fe9f800 unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x1fee7949 inet6_register_icmp_sender +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2008cbea max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x2018de4b elevator_alloc +EXPORT_SYMBOL vmlinux 0x20295f63 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x20421305 on_each_cpu_mask +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x20534482 inet_shutdown +EXPORT_SYMBOL vmlinux 0x205ec8de omap_dispc_register_isr +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x2078fc92 kmap +EXPORT_SYMBOL vmlinux 0x207be0e8 inode_dio_wait +EXPORT_SYMBOL vmlinux 0x209fe9ee dss_mgr_start_update +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20a86b3f of_get_pci_address +EXPORT_SYMBOL vmlinux 0x20b2bb2d param_array_ops +EXPORT_SYMBOL vmlinux 0x20b6e8d2 __pv_phys_offset +EXPORT_SYMBOL vmlinux 0x20c55ae0 sscanf +EXPORT_SYMBOL vmlinux 0x20cbc8ff sk_reset_timer +EXPORT_SYMBOL vmlinux 0x20df2681 ida_simple_remove +EXPORT_SYMBOL vmlinux 0x211331fa __divsi3 +EXPORT_SYMBOL vmlinux 0x21371681 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x217dda13 flex_array_get +EXPORT_SYMBOL vmlinux 0x219bb0b0 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x219c847b truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x21a72158 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x21af3f70 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x21c9ea17 simple_readpage +EXPORT_SYMBOL vmlinux 0x21cdfaea from_kgid +EXPORT_SYMBOL vmlinux 0x21fcf65f nand_calculate_ecc +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x222fa684 lg_global_lock +EXPORT_SYMBOL vmlinux 0x2232a8a5 mempool_free +EXPORT_SYMBOL vmlinux 0x22381994 page_address +EXPORT_SYMBOL vmlinux 0x22393e1d tcp_proc_register +EXPORT_SYMBOL vmlinux 0x223cc898 omap_vrfb_max_height +EXPORT_SYMBOL vmlinux 0x2256fafa div64_u64_rem +EXPORT_SYMBOL vmlinux 0x226a65ee neigh_event_ns +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x22830711 edma_clear_event +EXPORT_SYMBOL vmlinux 0x2289bd31 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x22a7026f __neigh_event_send +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22cb7fc0 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x22e1ae6f up_read +EXPORT_SYMBOL vmlinux 0x22ee25e0 bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0x22fc8d5a find_vma +EXPORT_SYMBOL vmlinux 0x22fe455a make_kuid +EXPORT_SYMBOL vmlinux 0x2317c65d genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x233f0306 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x237fe02f blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x238a0aaf tty_port_close_start +EXPORT_SYMBOL vmlinux 0x239d440f blk_make_request +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23aa49d3 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23de39da nf_register_hook +EXPORT_SYMBOL vmlinux 0x23ebb240 complete_request_key +EXPORT_SYMBOL vmlinux 0x23ee2563 mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24212d86 __frontswap_invalidate_page +EXPORT_SYMBOL vmlinux 0x2430fb91 serio_reconnect +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x24441b92 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x244b8fca fd_install +EXPORT_SYMBOL vmlinux 0x2457048a snd_pcm_lib_write +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245aec79 scsi_host_get +EXPORT_SYMBOL vmlinux 0x2461c2ef sys_imageblit +EXPORT_SYMBOL vmlinux 0x247df6cd mmc_start_req +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x24834d29 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x24a00a7e register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x24a6f0eb kfree_skb +EXPORT_SYMBOL vmlinux 0x24a8840c netdev_features_change +EXPORT_SYMBOL vmlinux 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL vmlinux 0x24b029e2 try_to_writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x24b0f90c of_clk_get_by_name +EXPORT_SYMBOL vmlinux 0x24c52a64 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x24d7b4eb cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x24e125c5 set_user_nice +EXPORT_SYMBOL vmlinux 0x24ebfa15 scsi_device_put +EXPORT_SYMBOL vmlinux 0x24f7760e poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x253a5181 dquot_file_open +EXPORT_SYMBOL vmlinux 0x25540332 inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258d4e52 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x25a3f607 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x25b6ee29 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x25bd946d mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25d09a81 udp_seq_open +EXPORT_SYMBOL vmlinux 0x25d58c23 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x25f673fc gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x260cf8f8 of_get_property +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x264cb50c init_task +EXPORT_SYMBOL vmlinux 0x2650d835 sysctl_ip_early_demux +EXPORT_SYMBOL vmlinux 0x26695728 lockref_mark_dead +EXPORT_SYMBOL vmlinux 0x26aa5bfb fs_bio_set +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26e0cc4b registered_fb +EXPORT_SYMBOL vmlinux 0x26e6f069 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26ee3f1d freezing_slow_path +EXPORT_SYMBOL vmlinux 0x26f0453a blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x270622f8 read_dev_sector +EXPORT_SYMBOL vmlinux 0x271c5a18 deactivate_super +EXPORT_SYMBOL vmlinux 0x27436b6d pcim_iomap +EXPORT_SYMBOL vmlinux 0x2750fa85 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x275ef902 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x276a6146 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x276df003 __ps2_command +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x279dbac5 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x279fbb82 find_get_page +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27bcd5c8 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27edfe98 snd_card_unref +EXPORT_SYMBOL vmlinux 0x27f44873 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x27f9530d gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x27fdf5d3 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x28118cb6 __get_user_1 +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2840a69a sock_release +EXPORT_SYMBOL vmlinux 0x2872b8a7 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x28844726 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28d6861d __vmalloc +EXPORT_SYMBOL vmlinux 0x28e65def cpu_user +EXPORT_SYMBOL vmlinux 0x29095855 cpu_tlb +EXPORT_SYMBOL vmlinux 0x290bd6f6 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x291764e7 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x29324455 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x294d953d netdev_err +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29613635 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x296e3651 console_stop +EXPORT_SYMBOL vmlinux 0x2989ad68 scsi_put_command +EXPORT_SYMBOL vmlinux 0x29ae6093 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x29b1c366 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x29b890e5 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x29baca14 fail_migrate_page +EXPORT_SYMBOL vmlinux 0x29baff70 ida_remove +EXPORT_SYMBOL vmlinux 0x29c10c71 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x29ecbed9 input_release_device +EXPORT_SYMBOL vmlinux 0x29fdda53 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x2a06af7a key_payload_reserve +EXPORT_SYMBOL vmlinux 0x2a29255f pci_fixup_device +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a3aa678 _test_and_clear_bit +EXPORT_SYMBOL vmlinux 0x2a4fabcf videomode_to_omap_video_timings +EXPORT_SYMBOL vmlinux 0x2a797a24 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2a7cac99 pci_add_resource +EXPORT_SYMBOL vmlinux 0x2a87418d inet_listen +EXPORT_SYMBOL vmlinux 0x2a9072ac zero_fill_bio +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa7e11a dev_load +EXPORT_SYMBOL vmlinux 0x2ab96bd8 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x2ac0af82 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x2ac40de0 wait_iff_congested +EXPORT_SYMBOL vmlinux 0x2acbe8bd uart_suspend_port +EXPORT_SYMBOL vmlinux 0x2acf0feb vfs_fstat +EXPORT_SYMBOL vmlinux 0x2ae1988d tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b12925d cpumask_next_and +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b312cde pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x2b31f279 __bread +EXPORT_SYMBOL vmlinux 0x2b38f6cf make_bad_inode +EXPORT_SYMBOL vmlinux 0x2b3de185 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x2b4e956e mempool_create +EXPORT_SYMBOL vmlinux 0x2b67c30b input_unregister_handle +EXPORT_SYMBOL vmlinux 0x2b7559bb vfs_create +EXPORT_SYMBOL vmlinux 0x2b83ec22 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x2b9af02a mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb3bf83 path_get +EXPORT_SYMBOL vmlinux 0x2bc2e1a8 netif_rx +EXPORT_SYMBOL vmlinux 0x2bcdb611 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x2bce83bf bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x2be0f12d dql_completed +EXPORT_SYMBOL vmlinux 0x2c14323a kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c275934 sk_ns_capable +EXPORT_SYMBOL vmlinux 0x2c38adca snd_jack_new +EXPORT_SYMBOL vmlinux 0x2c3d0219 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x2c759a42 devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0x2c7c8e9a pcibios_min_mem +EXPORT_SYMBOL vmlinux 0x2c81ec75 __irq_regs +EXPORT_SYMBOL vmlinux 0x2c900d91 cpufreq_put_global_kobject +EXPORT_SYMBOL vmlinux 0x2c9732f8 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x2c988955 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x2c99dcef __scsi_put_command +EXPORT_SYMBOL vmlinux 0x2cc65233 omapdss_find_output_from_display +EXPORT_SYMBOL vmlinux 0x2cd4babd genphy_setup_forced +EXPORT_SYMBOL vmlinux 0x2cfc5b46 dm_register_target +EXPORT_SYMBOL vmlinux 0x2d03c10d posix_acl_create +EXPORT_SYMBOL vmlinux 0x2d08df59 seq_pad +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d44ff4e dss_mgr_enable +EXPORT_SYMBOL vmlinux 0x2d476057 netdev_state_change +EXPORT_SYMBOL vmlinux 0x2d4cfef5 iterate_supers_type +EXPORT_SYMBOL vmlinux 0x2d519503 ps2_init +EXPORT_SYMBOL vmlinux 0x2d5d36ba block_write_end +EXPORT_SYMBOL vmlinux 0x2d6507b5 _find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0x2d770676 dispc_mgr_go +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d8fca5b ip_setsockopt +EXPORT_SYMBOL vmlinux 0x2daaaba9 param_get_byte +EXPORT_SYMBOL vmlinux 0x2dddc754 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x2deda4a1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x2df56ff8 d_alloc_name +EXPORT_SYMBOL vmlinux 0x2dfb273a phy_device_free +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e23e1f9 dquot_alloc +EXPORT_SYMBOL vmlinux 0x2e2957a6 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e474617 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x2e4f547a pci_enable_obff +EXPORT_SYMBOL vmlinux 0x2e5810c6 __aeabi_unwind_cpp_pr1 +EXPORT_SYMBOL vmlinux 0x2e6aa131 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x2e7d6fd4 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x2e9c44ca dquot_operations +EXPORT_SYMBOL vmlinux 0x2eab9952 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ece625f genl_notify +EXPORT_SYMBOL vmlinux 0x2eddb564 tty_hangup +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f1b0143 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x2f3c6db9 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x2f64c3a4 dev_mc_add +EXPORT_SYMBOL vmlinux 0x2f757e54 seq_escape +EXPORT_SYMBOL vmlinux 0x2f9d992f snd_pcm_lib_ioctl +EXPORT_SYMBOL vmlinux 0x2fb3db37 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2ff69d7f unlock_new_inode +EXPORT_SYMBOL vmlinux 0x3002acbf dev_addr_add +EXPORT_SYMBOL vmlinux 0x3017e200 flush_dcache_page +EXPORT_SYMBOL vmlinux 0x301cb63e ip_check_defrag +EXPORT_SYMBOL vmlinux 0x30275db9 inet_release +EXPORT_SYMBOL vmlinux 0x3028352d security_path_mkdir +EXPORT_SYMBOL vmlinux 0x3066027b nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x3082a0b3 dss_feat_get_supported_color_modes +EXPORT_SYMBOL vmlinux 0x308aad56 omap_vrfb_min_phys_size +EXPORT_SYMBOL vmlinux 0x308ae3f2 noop_qdisc +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30c1b0e5 iput +EXPORT_SYMBOL vmlinux 0x30c4b523 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x30c8acd8 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30d110d0 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x30d90a99 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x3101577f generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x3102d70b frontswap_curr_pages +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31178aa4 dev_printk +EXPORT_SYMBOL vmlinux 0x311da044 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x312824e0 hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x312e90b2 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x313221ef tcp_sendpage +EXPORT_SYMBOL vmlinux 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3148c72a sock_from_file +EXPORT_SYMBOL vmlinux 0x31501060 vfs_rename +EXPORT_SYMBOL vmlinux 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x31692bd4 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x316a0c92 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x318c0dd8 vm_mmap +EXPORT_SYMBOL vmlinux 0x318cadb1 reciprocal_value +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31a3f24c __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31d81f18 snd_pcm_limit_hw_rates +EXPORT_SYMBOL vmlinux 0x31f0bb78 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x31f7430f nf_log_set +EXPORT_SYMBOL vmlinux 0x3200b197 snd_pcm_lib_read +EXPORT_SYMBOL vmlinux 0x32024da4 omapdss_unregister_output +EXPORT_SYMBOL vmlinux 0x3206fc5a devm_gpio_free +EXPORT_SYMBOL vmlinux 0x32191896 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x322f48d4 abx500_dump_all_banks +EXPORT_SYMBOL vmlinux 0x3230dceb skb_pad +EXPORT_SYMBOL vmlinux 0x325455a4 mount_single +EXPORT_SYMBOL vmlinux 0x327bf883 of_can_translate_address +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x32928733 twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0x3295fca8 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x32ac0657 dev_addr_del +EXPORT_SYMBOL vmlinux 0x32c4adf7 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x32c916e8 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x32d81a5c block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x33215b60 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x3330a47d gen_pool_free +EXPORT_SYMBOL vmlinux 0x333e9c78 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x334bee0d udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x3353f254 __skb_get_hash +EXPORT_SYMBOL vmlinux 0x33553da5 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x335c6ce8 gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0x335cd22b i2c_release_client +EXPORT_SYMBOL vmlinux 0x33637329 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x33685ad7 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x336946b1 snd_pcm_lib_writev +EXPORT_SYMBOL vmlinux 0x33724b89 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x337cce46 put_cmsg +EXPORT_SYMBOL vmlinux 0x33855011 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x33ba5cd4 param_ops_bool +EXPORT_SYMBOL vmlinux 0x33c7435c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33e4b8f9 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33f601eb __sb_end_write +EXPORT_SYMBOL vmlinux 0x3402b4c5 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x34184afe current_kernel_time +EXPORT_SYMBOL vmlinux 0x341dbfa3 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x34380b33 inet_addr_type +EXPORT_SYMBOL vmlinux 0x343cb2ec __nlmsg_put +EXPORT_SYMBOL vmlinux 0x344931c8 textsearch_register +EXPORT_SYMBOL vmlinux 0x344b7739 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x347001c7 padata_free +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x347eb9bd param_set_bool +EXPORT_SYMBOL vmlinux 0x34967fe1 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x349a8f9e pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x349fcedd mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x34a75138 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x34b0751d __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x34b96996 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x34be1110 napi_get_frags +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x35052481 ata_std_end_eh +EXPORT_SYMBOL vmlinux 0x3507a132 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x351af9bd balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0x352cb1cf generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x353e3fa5 __get_user_4 +EXPORT_SYMBOL vmlinux 0x358d1957 snd_dma_get_reserved_buf +EXPORT_SYMBOL vmlinux 0x35a22a7c pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x35b2a89a tty_unthrottle +EXPORT_SYMBOL vmlinux 0x35b95325 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x35bcc89a sk_net_capable +EXPORT_SYMBOL vmlinux 0x35c172fb sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x35c19d3a i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x35f465f9 blk_run_queue +EXPORT_SYMBOL vmlinux 0x35fbd6a1 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x35fc1593 security_path_unlink +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3612c10f tmio_core_mmc_enable +EXPORT_SYMBOL vmlinux 0x36308d6e thaw_super +EXPORT_SYMBOL vmlinux 0x363958a2 alloc_disk +EXPORT_SYMBOL vmlinux 0x365384ac check_disk_change +EXPORT_SYMBOL vmlinux 0x365d62a8 tcp_gso_segment +EXPORT_SYMBOL vmlinux 0x36754ef8 tcp_poll +EXPORT_SYMBOL vmlinux 0x368382e2 of_get_named_gpiod_flags +EXPORT_SYMBOL vmlinux 0x368c16b6 init_buffer +EXPORT_SYMBOL vmlinux 0x369bee4d bio_sector_offset +EXPORT_SYMBOL vmlinux 0x36b121b5 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x36bd681b groups_alloc +EXPORT_SYMBOL vmlinux 0x36d7b11a of_find_matching_node_and_match +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x3714050e sock_no_getname +EXPORT_SYMBOL vmlinux 0x37154498 snd_pcm_lib_readv +EXPORT_SYMBOL vmlinux 0x371a4fdf lock_fb_info +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x375692e0 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x375dd417 netdev_warn +EXPORT_SYMBOL vmlinux 0x376785db I_BDEV +EXPORT_SYMBOL vmlinux 0x376b56a3 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x3789bf12 dss_mgr_set_lcd_config +EXPORT_SYMBOL vmlinux 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL vmlinux 0x37aef3df inode_change_ok +EXPORT_SYMBOL vmlinux 0x37b514f1 input_flush_device +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37d1a408 nand_bch_calculate_ecc +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x380473fa register_filesystem +EXPORT_SYMBOL vmlinux 0x381144a9 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x38217782 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x3824708f tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x38296a53 kill_pid +EXPORT_SYMBOL vmlinux 0x384e5de6 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x38571d88 keyring_clear +EXPORT_SYMBOL vmlinux 0x386e9a95 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0x3873ed1d generic_removexattr +EXPORT_SYMBOL vmlinux 0x387d63f6 file_open_root +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x3897160f dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x389acf0c gpmc_configure +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38c97d50 idr_get_next +EXPORT_SYMBOL vmlinux 0x38d2db55 snd_ctl_free_one +EXPORT_SYMBOL vmlinux 0x38d6b434 is_bad_inode +EXPORT_SYMBOL vmlinux 0x38e4ca98 misc_register +EXPORT_SYMBOL vmlinux 0x3917c741 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x39194fd9 generic_read_dir +EXPORT_SYMBOL vmlinux 0x3924dd56 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3926c7c6 i2c_verify_client +EXPORT_SYMBOL vmlinux 0x3939bd9f tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x3949bc1d pci_alloc_dev +EXPORT_SYMBOL vmlinux 0x394dbb8c sock_i_ino +EXPORT_SYMBOL vmlinux 0x3955ab2d dentry_open +EXPORT_SYMBOL vmlinux 0x3965ce4a snd_pcm_set_sync +EXPORT_SYMBOL vmlinux 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL vmlinux 0x397a3308 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x398bdfe6 dev_printk_emit +EXPORT_SYMBOL vmlinux 0x39a85f16 bdget_disk +EXPORT_SYMBOL vmlinux 0x39b077a8 snd_pcm_hw_constraint_list +EXPORT_SYMBOL vmlinux 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL vmlinux 0x39c381c4 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x39c8152a tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x39f71542 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x39fd8098 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x3a066727 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x3a0d0a70 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x3a0f8e01 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x3a29003d free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x3a497c15 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x3a5ff72b jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x3a721a6b kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0x3a94fdc6 fget_raw +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aab9531 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x3ab4ecf5 tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0x3acb40f8 genphy_update_link +EXPORT_SYMBOL vmlinux 0x3ae1e4bd ab3100_event_register +EXPORT_SYMBOL vmlinux 0x3af0913e pci_set_mwi +EXPORT_SYMBOL vmlinux 0x3af1f912 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x3b184cd6 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x3b380de6 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x3b7ea6cd __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x3b91f3af snd_free_pages +EXPORT_SYMBOL vmlinux 0x3bb4d91e do_splice_direct +EXPORT_SYMBOL vmlinux 0x3bbf46ea vga_base +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd3891e netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x3bef03b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x3c01f3e6 input_inject_event +EXPORT_SYMBOL vmlinux 0x3c0e9f11 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x3c169878 arp_send +EXPORT_SYMBOL vmlinux 0x3c33ab75 snd_ctl_boolean_mono_info +EXPORT_SYMBOL vmlinux 0x3c3f11eb grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x3c442aee xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3ca5dbf2 bio_init +EXPORT_SYMBOL vmlinux 0x3cb0d726 of_phy_attach +EXPORT_SYMBOL vmlinux 0x3cbdccdd inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x3cce4770 i2c_transfer +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf5f683 _dev_info +EXPORT_SYMBOL vmlinux 0x3cfada66 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x3d16499d dma_mmap_from_coherent +EXPORT_SYMBOL vmlinux 0x3d2d1a13 sg_miter_stop +EXPORT_SYMBOL vmlinux 0x3d322e27 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x3d3c540f elf_hwcap +EXPORT_SYMBOL vmlinux 0x3d41904f of_get_next_child +EXPORT_SYMBOL vmlinux 0x3d4f589c gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x3d59cb17 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x3d64d43d vfs_open +EXPORT_SYMBOL vmlinux 0x3d8d0552 __dev_remove_offload +EXPORT_SYMBOL vmlinux 0x3d9239b6 __invalidate_device +EXPORT_SYMBOL vmlinux 0x3dbfde9e __neigh_create +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3df0f1a1 find_lock_page +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e12316a nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0x3e34b5a3 htc_egpio_get_wakeup_irq +EXPORT_SYMBOL vmlinux 0x3e524b3f blkdev_issue_write_same +EXPORT_SYMBOL vmlinux 0x3e884f4b vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3eb674db softnet_data +EXPORT_SYMBOL vmlinux 0x3ec45ad1 __dst_free +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3efe9ab0 pipe_lock +EXPORT_SYMBOL vmlinux 0x3f034aea ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x3f121170 generic_writepages +EXPORT_SYMBOL vmlinux 0x3f1fe15e tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f5b67d5 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x3f63531f follow_down_one +EXPORT_SYMBOL vmlinux 0x3f64ddcc noop_fsync +EXPORT_SYMBOL vmlinux 0x3f7f450b __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x3fab3ca9 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x3fbffbe6 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x3fcd4bdf input_set_keycode +EXPORT_SYMBOL vmlinux 0x3fd55724 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x3fdf1361 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x3fe85748 cdrom_check_events +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x4009832c pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x401e53ed sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x40271a3a vfs_write +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x402d767c bdi_init +EXPORT_SYMBOL vmlinux 0x402dca99 read_cache_page +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x407136b1 __put_user_8 +EXPORT_SYMBOL vmlinux 0x40720bb1 bio_split +EXPORT_SYMBOL vmlinux 0x407a3275 omap_start_dma +EXPORT_SYMBOL vmlinux 0x40957694 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x409eeade serio_rescan +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a2d1dd dm_table_get_size +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40afc42c snd_device_new +EXPORT_SYMBOL vmlinux 0x40baa87e twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x40bae973 inet6_add_offload +EXPORT_SYMBOL vmlinux 0x40c01859 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x40c6081e tcf_register_action +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40ce485b mempool_resize +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d5ae74 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x40dbf526 cap_mmap_file +EXPORT_SYMBOL vmlinux 0x40e3cb19 dispc_ovl_check +EXPORT_SYMBOL vmlinux 0x40ed524a _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x40f07981 __ashldi3 +EXPORT_SYMBOL vmlinux 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL vmlinux 0x4108fad8 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x410cdb02 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x410ec44d serio_open +EXPORT_SYMBOL vmlinux 0x4111a671 mutex_lock +EXPORT_SYMBOL vmlinux 0x412f9c7a phy_attach +EXPORT_SYMBOL vmlinux 0x414614bb neigh_for_each +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x415ed92f kmalloc_caches +EXPORT_SYMBOL vmlinux 0x417c4474 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41b7d75a scsi_host_put +EXPORT_SYMBOL vmlinux 0x41b86f60 dump_skip +EXPORT_SYMBOL vmlinux 0x41bd3858 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x41ced7a6 snd_card_file_add +EXPORT_SYMBOL vmlinux 0x41d32d7b eth_change_mtu +EXPORT_SYMBOL vmlinux 0x41d4d274 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x41d6316e bdi_unregister +EXPORT_SYMBOL vmlinux 0x41e46889 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x41fffbbb pci_request_region +EXPORT_SYMBOL vmlinux 0x420b68cc request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x422386e3 sock_no_connect +EXPORT_SYMBOL vmlinux 0x423b776a ipmi_create_user +EXPORT_SYMBOL vmlinux 0x42480d61 fget_light +EXPORT_SYMBOL vmlinux 0x425b0592 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x4264d4a7 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x426ceaca snd_timer_global_new +EXPORT_SYMBOL vmlinux 0x4271e2f9 edma_filter_fn +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x4298b775 v7_flush_kern_cache_all +EXPORT_SYMBOL vmlinux 0x429dc1cc install_exec_creds +EXPORT_SYMBOL vmlinux 0x42a1b208 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x42a848c4 phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0x42b5a5f6 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x43632d7d of_find_property +EXPORT_SYMBOL vmlinux 0x43649fcd km_report +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x4386d6b1 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x439eca16 proc_create_data +EXPORT_SYMBOL vmlinux 0x43ac238b brioctl_set +EXPORT_SYMBOL vmlinux 0x43b7b47a xfrm_init_state +EXPORT_SYMBOL vmlinux 0x43c33665 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x43cefbe8 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x43db4c4c __module_get +EXPORT_SYMBOL vmlinux 0x43ed071d generic_file_open +EXPORT_SYMBOL vmlinux 0x43edada2 __sb_start_write +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x43f49045 map_destroy +EXPORT_SYMBOL vmlinux 0x440dc1c3 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x4411c503 prandom_seed +EXPORT_SYMBOL vmlinux 0x441ed159 omap_get_dma_src_pos +EXPORT_SYMBOL vmlinux 0x442495c9 tmio_core_mmc_resume +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x443af877 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x4440dc28 kernel_write +EXPORT_SYMBOL vmlinux 0x44438b96 hex2bin +EXPORT_SYMBOL vmlinux 0x44643b93 __aeabi_lmul +EXPORT_SYMBOL vmlinux 0x44808232 mdiobus_register +EXPORT_SYMBOL vmlinux 0x44811ed0 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x44da5d0f __csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x44dd3d8d completion_done +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f12171 mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x44f5e8b5 of_allnodes +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x455293f6 down_read +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x45a6be13 cpufreq_sysfs_remove_file +EXPORT_SYMBOL vmlinux 0x45b40be5 jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0x45b9f6db bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x45bda0d5 system_serial_low +EXPORT_SYMBOL vmlinux 0x45d37ad5 ppp_input_error +EXPORT_SYMBOL vmlinux 0x46038938 bdev_read_only +EXPORT_SYMBOL vmlinux 0x461cbb77 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x46220643 __nla_put +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x463bbeb0 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x465757c3 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x465cab34 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x46608fa0 getnstimeofday +EXPORT_SYMBOL vmlinux 0x467bb2f3 kset_unregister +EXPORT_SYMBOL vmlinux 0x469806c5 proto_register +EXPORT_SYMBOL vmlinux 0x46a09edc arp_xmit +EXPORT_SYMBOL vmlinux 0x46aa7a06 pci_bus_put +EXPORT_SYMBOL vmlinux 0x46b33e98 get_io_context +EXPORT_SYMBOL vmlinux 0x46be1c3c sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x46cfe2da backlight_force_update +EXPORT_SYMBOL vmlinux 0x46d3b28c __div0 +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x471065d4 sk_run_filter +EXPORT_SYMBOL vmlinux 0x47348514 dquot_resume +EXPORT_SYMBOL vmlinux 0x473bd23f __napi_complete +EXPORT_SYMBOL vmlinux 0x47416e14 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x478a9500 vc_resize +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x47991aa2 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x47a52fd3 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b410ce __alloc_skb +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47bcf84c param_set_ulong +EXPORT_SYMBOL vmlinux 0x47c8baf4 param_ops_uint +EXPORT_SYMBOL vmlinux 0x47cd0e29 tcp_close +EXPORT_SYMBOL vmlinux 0x47cf7b55 d_rehash +EXPORT_SYMBOL vmlinux 0x47d49b31 skb_insert +EXPORT_SYMBOL vmlinux 0x47dcbd3e simple_rmdir +EXPORT_SYMBOL vmlinux 0x47e33584 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x47e70229 v7_flush_user_cache_range +EXPORT_SYMBOL vmlinux 0x47f757de elf_platform +EXPORT_SYMBOL vmlinux 0x48034724 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x48134efa block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x481ce6ce cpu_active_mask +EXPORT_SYMBOL vmlinux 0x482a2a49 param_set_charp +EXPORT_SYMBOL vmlinux 0x48315d27 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x486ae228 inode_init_always +EXPORT_SYMBOL vmlinux 0x4873c49b __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0x487a4460 cpumask_set_cpu_local_first +EXPORT_SYMBOL vmlinux 0x4881d505 idr_for_each +EXPORT_SYMBOL vmlinux 0x488512b4 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x488882e7 downgrade_write +EXPORT_SYMBOL vmlinux 0x4890f713 mdiobus_read +EXPORT_SYMBOL vmlinux 0x48a5b067 __machine_arch_type +EXPORT_SYMBOL vmlinux 0x48c6db53 of_get_child_by_name +EXPORT_SYMBOL vmlinux 0x48cbba42 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x48e0a3b4 dump_align +EXPORT_SYMBOL vmlinux 0x48feabfd blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x4911a28b __scsi_add_device +EXPORT_SYMBOL vmlinux 0x49222126 snd_ctl_remove_id +EXPORT_SYMBOL vmlinux 0x495c96f8 posix_acl_init +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x4964d489 unregister_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x4972610f mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x49756a73 devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x49825ed0 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x499cb58c prepare_to_wait +EXPORT_SYMBOL vmlinux 0x499e0b7b pci_iounmap +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49d68c13 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x49d9201d nand_scan_tail +EXPORT_SYMBOL vmlinux 0x49eabed1 ata_port_printk +EXPORT_SYMBOL vmlinux 0x49ebacbd _clear_bit +EXPORT_SYMBOL vmlinux 0x49ecd914 snd_card_disconnect +EXPORT_SYMBOL vmlinux 0x49f502f8 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x4a039964 key_unlink +EXPORT_SYMBOL vmlinux 0x4a173c3f d_add_ci +EXPORT_SYMBOL vmlinux 0x4a30f477 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a39e5a1 omap_set_dma_src_params +EXPORT_SYMBOL vmlinux 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL vmlinux 0x4a432e62 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x4a44a91c seq_printf +EXPORT_SYMBOL vmlinux 0x4a475da1 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x4a4bff21 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x4a55d0c6 kill_bdev +EXPORT_SYMBOL vmlinux 0x4a57b339 wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x4a5a3103 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x4a5fb5b2 mddev_congested +EXPORT_SYMBOL vmlinux 0x4a7fb243 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x4a845cc1 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x4ab18134 fb_show_logo +EXPORT_SYMBOL vmlinux 0x4ab59c3f nf_log_unregister +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4afef982 input_set_capability +EXPORT_SYMBOL vmlinux 0x4b015768 snd_iprintf +EXPORT_SYMBOL vmlinux 0x4b1ec3e2 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x4b264c28 unregister_key_type +EXPORT_SYMBOL vmlinux 0x4b26d717 devm_clk_get +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b52df28 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b66b950 module_refcount +EXPORT_SYMBOL vmlinux 0x4b804a7b amba_device_unregister +EXPORT_SYMBOL vmlinux 0x4b82808c generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x4bbc73bb __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x4bc94e21 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x4be7fb63 up +EXPORT_SYMBOL vmlinux 0x4be85a03 memweight +EXPORT_SYMBOL vmlinux 0x4bf43632 dma_supported +EXPORT_SYMBOL vmlinux 0x4c03348f mpage_readpages +EXPORT_SYMBOL vmlinux 0x4c09ac01 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c233a44 _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x4c26c6dc dm_io +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c33081d omapdss_compat_uninit +EXPORT_SYMBOL vmlinux 0x4c5fc58c _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x4c79923b set_create_files_as +EXPORT_SYMBOL vmlinux 0x4c7ce436 i2c_use_client +EXPORT_SYMBOL vmlinux 0x4c85d867 gen10g_resume +EXPORT_SYMBOL vmlinux 0x4c86184b remove_wait_queue +EXPORT_SYMBOL vmlinux 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL vmlinux 0x4ca206f9 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cc2854d tegra114_clock_assert_dfll_dvco_reset +EXPORT_SYMBOL vmlinux 0x4cd3e40f netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0x4cd556df tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x4cdb3178 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x4cdf4d51 vm_insert_page +EXPORT_SYMBOL vmlinux 0x4ce107ae kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x4ce8b87f misc_deregister +EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page +EXPORT_SYMBOL vmlinux 0x4d1182cd lookup_one_len +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d6decf7 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x4d757e9f default_qdisc_ops +EXPORT_SYMBOL vmlinux 0x4d83b295 sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x4d936093 dss_install_mgr_ops +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL vmlinux 0x4da3e03d security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x4dabdce8 default_llseek +EXPORT_SYMBOL vmlinux 0x4dd62b9d unlock_buffer +EXPORT_SYMBOL vmlinux 0x4dd9ad83 ppp_input +EXPORT_SYMBOL vmlinux 0x4de34a07 cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4dfe450e d_splice_alias +EXPORT_SYMBOL vmlinux 0x4e111b37 con_is_bound +EXPORT_SYMBOL vmlinux 0x4e12691f sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x4e19097c jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e36e1a2 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x4e506013 omap_dma_link_lch +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6a7aeb lockref_get_not_zero +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e7f1b51 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e9ce9f9 edma_link +EXPORT_SYMBOL vmlinux 0x4ea4167d remap_vmalloc_range_partial +EXPORT_SYMBOL vmlinux 0x4eacceff jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x4ebe6df4 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x4ed73153 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f248523 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f4869c5 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x4f551fe1 simple_empty +EXPORT_SYMBOL vmlinux 0x4f59bf90 ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x4f68e5c9 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x4f6a22ed nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL vmlinux 0x4f88ccd4 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x4f89c9de gpmc_cs_free +EXPORT_SYMBOL vmlinux 0x4f9ec1cd kernel_connect +EXPORT_SYMBOL vmlinux 0x4fa207b4 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x4faf1113 simple_unlink +EXPORT_SYMBOL vmlinux 0x4fba75ee __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x4fc1d72f blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x4fd835a2 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x4fdbd120 blk_complete_request +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x501387ce __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x50146b17 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0x501f8fd2 tty_do_resize +EXPORT_SYMBOL vmlinux 0x503a23b8 mtd_concat_create +EXPORT_SYMBOL vmlinux 0x50558108 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x50635fd7 skb_tx_error +EXPORT_SYMBOL vmlinux 0x5075c61e dev_uc_del +EXPORT_SYMBOL vmlinux 0x508bcd9f __vexpress_config_func_get +EXPORT_SYMBOL vmlinux 0x50959bac ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x509817cf vprintk_emit +EXPORT_SYMBOL vmlinux 0x50a34a59 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x50ccff03 omap_dma_set_prio_lch +EXPORT_SYMBOL vmlinux 0x50d5612e dispc_mgr_get_sync_lost_irq +EXPORT_SYMBOL vmlinux 0x50d78740 names_cachep +EXPORT_SYMBOL vmlinux 0x50e34635 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x50ec6d33 simple_map_init +EXPORT_SYMBOL vmlinux 0x5101ad7a snd_pcm_new_internal +EXPORT_SYMBOL vmlinux 0x5102f0cf elv_register_queue +EXPORT_SYMBOL vmlinux 0x5105b1f2 pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0x511746c1 dump_fpu +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x512c482a netlink_net_capable +EXPORT_SYMBOL vmlinux 0x5143aede bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x515e9240 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x5169161d omap_free_dma_chain +EXPORT_SYMBOL vmlinux 0x518c4858 tty_throttle +EXPORT_SYMBOL vmlinux 0x51908eb8 __raw_writesl +EXPORT_SYMBOL vmlinux 0x51a4fe29 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x51a7c127 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x51d2f647 padata_start +EXPORT_SYMBOL vmlinux 0x51d559d1 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e00768 __free_pages +EXPORT_SYMBOL vmlinux 0x51e04f43 write_cache_pages +EXPORT_SYMBOL vmlinux 0x51e647e8 snd_timer_pause +EXPORT_SYMBOL vmlinux 0x51e77c97 pfn_valid +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x51fa8594 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x5204ff72 pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0x52073b32 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x521b36b5 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x52329dcb capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0x5241b05c dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x52428cc8 parent_mem_cgroup +EXPORT_SYMBOL vmlinux 0x524ab2ed single_open_size +EXPORT_SYMBOL vmlinux 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL vmlinux 0x5250c0d9 icmp_send +EXPORT_SYMBOL vmlinux 0x525f69a6 ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x526a7335 snd_dma_free_pages +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52c16fb1 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x52ce7243 kmap_atomic +EXPORT_SYMBOL vmlinux 0x52dea962 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL vmlinux 0x5307270a tcp_read_sock +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53185171 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x53261169 i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533f68c3 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x535ac675 write_one_page +EXPORT_SYMBOL vmlinux 0x5368101d proc_mkdir +EXPORT_SYMBOL vmlinux 0x5379d7bf mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x5382f1f3 register_key_type +EXPORT_SYMBOL vmlinux 0x539156da scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x53bb01e2 vm_stat +EXPORT_SYMBOL vmlinux 0x53be902f scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x53f39839 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x53fb3dcf put_tty_driver +EXPORT_SYMBOL vmlinux 0x5409775b free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x54137b5e d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x544a57dd dm_put_device +EXPORT_SYMBOL vmlinux 0x544f59e2 would_dump +EXPORT_SYMBOL vmlinux 0x5465f17e netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x547077ec __wake_up_bit +EXPORT_SYMBOL vmlinux 0x547ce898 dispc_read_irqenable +EXPORT_SYMBOL vmlinux 0x549e4df3 netif_device_attach +EXPORT_SYMBOL vmlinux 0x54a6a151 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54b7f06d __serio_register_driver +EXPORT_SYMBOL vmlinux 0x54c5be90 seq_path +EXPORT_SYMBOL vmlinux 0x54cf8c2f build_skb +EXPORT_SYMBOL vmlinux 0x54e3cc3b param_get_int +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54f6830a omapdss_get_default_display_name +EXPORT_SYMBOL vmlinux 0x5506c6b8 simple_link +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x551cc3a3 __block_write_begin +EXPORT_SYMBOL vmlinux 0x5528494d skb_seq_read +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x5543c224 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x5567c227 kernel_cpustat +EXPORT_SYMBOL vmlinux 0x556bcfb4 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0x556c2740 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x5579ca74 snd_card_free +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55d71234 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x55e3d404 of_platform_device_create +EXPORT_SYMBOL vmlinux 0x55e799f5 bd_set_size +EXPORT_SYMBOL vmlinux 0x560147fd edma_unlink +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5625342f scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x562a64df twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x564e73fb tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x5656f0b8 vfs_symlink +EXPORT_SYMBOL vmlinux 0x56789ac5 omap_set_dma_color_mode +EXPORT_SYMBOL vmlinux 0x5689afe7 dispc_ovl_enable +EXPORT_SYMBOL vmlinux 0x568e7559 snd_pcm_hw_param_last +EXPORT_SYMBOL vmlinux 0x5697f84b inet_getname +EXPORT_SYMBOL vmlinux 0x569c30b6 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x569e99ac tcp_make_synack +EXPORT_SYMBOL vmlinux 0x56b7ce15 snd_jack_report +EXPORT_SYMBOL vmlinux 0x56bc2f15 dispc_ovl_set_channel_out +EXPORT_SYMBOL vmlinux 0x56c062f1 request_key_async +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56cdebf6 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x56da98d5 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x56f0896f tegra_periph_reset_assert +EXPORT_SYMBOL vmlinux 0x56f14f26 prepare_binprm +EXPORT_SYMBOL vmlinux 0x5708a14c dev_queue_xmit_accel +EXPORT_SYMBOL vmlinux 0x571397bc security_file_permission +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57355db9 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x5739c3cc blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x575bbba4 vga_client_register +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x577910d1 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x577e2a5d bdput +EXPORT_SYMBOL vmlinux 0x57a31e57 nand_flash_ids +EXPORT_SYMBOL vmlinux 0x57d341ec i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x57e30cb1 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x581273cf sound_class +EXPORT_SYMBOL vmlinux 0x582a6be4 freeze_bdev +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x5839e744 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x584eccf3 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x58516557 omap_set_dma_src_data_pack +EXPORT_SYMBOL vmlinux 0x58533709 netdev_info +EXPORT_SYMBOL vmlinux 0x587616f1 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x588c130c vexpress_config_func_put +EXPORT_SYMBOL vmlinux 0x5895a892 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x589c1f50 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x58a816b9 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x58afb235 netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x58d1070a of_get_address +EXPORT_SYMBOL vmlinux 0x58de491a skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x58f72337 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x5914f02c __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x593af729 may_umount +EXPORT_SYMBOL vmlinux 0x59404d4e scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594e1317 __modsi3 +EXPORT_SYMBOL vmlinux 0x596307bb pci_get_subsys +EXPORT_SYMBOL vmlinux 0x598542b2 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x598cd828 udp_table +EXPORT_SYMBOL vmlinux 0x59a17bfc tegra114_clock_tune_cpu_trimmers_high +EXPORT_SYMBOL vmlinux 0x59a3d4a8 blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0x59ab0075 phy_device_register +EXPORT_SYMBOL vmlinux 0x59c3b0b8 empty_aops +EXPORT_SYMBOL vmlinux 0x59d29dab v7_flush_kern_dcache_area +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x59e5070d __do_div64 +EXPORT_SYMBOL vmlinux 0x59e73d05 snd_unregister_device +EXPORT_SYMBOL vmlinux 0x59eb50c0 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x5a2495c5 flush_signals +EXPORT_SYMBOL vmlinux 0x5a31ad31 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x5a3b7295 tty_port_open +EXPORT_SYMBOL vmlinux 0x5a483b3f tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x5a49725d udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x5a5536c2 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x5a8932cf kmem_cache_create +EXPORT_SYMBOL vmlinux 0x5ab0ca9b snd_power_wait +EXPORT_SYMBOL vmlinux 0x5ab40abe snd_card_file_remove +EXPORT_SYMBOL vmlinux 0x5ab4933d phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x5abe2c49 iterate_mounts +EXPORT_SYMBOL vmlinux 0x5acd5199 __elv_add_request +EXPORT_SYMBOL vmlinux 0x5ae5be44 lg_lock_init +EXPORT_SYMBOL vmlinux 0x5afe6e29 __skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b276b24 mount_subtree +EXPORT_SYMBOL vmlinux 0x5b462010 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x5b72009f ida_simple_get +EXPORT_SYMBOL vmlinux 0x5b750c06 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x5b7e2137 snd_jack_set_key +EXPORT_SYMBOL vmlinux 0x5bb9daec __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0x5bbaf13e simple_rename +EXPORT_SYMBOL vmlinux 0x5bd2ffdb inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0x5c1c1c61 simple_fill_super +EXPORT_SYMBOL vmlinux 0x5c1f2206 kill_litter_super +EXPORT_SYMBOL vmlinux 0x5c265cba sg_init_one +EXPORT_SYMBOL vmlinux 0x5c3b2a7d md_register_thread +EXPORT_SYMBOL vmlinux 0x5c5937db iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x5c791916 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x5c874fcd dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0x5c9284a0 processor_id +EXPORT_SYMBOL vmlinux 0x5cadb8f6 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x5cc3db25 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x5cc9ee31 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x5cddbd95 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x5cecd5e3 devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5d276f46 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x5d2dfd7c mmc_request_done +EXPORT_SYMBOL vmlinux 0x5d386152 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x5d41c87c param_ops_charp +EXPORT_SYMBOL vmlinux 0x5d508ceb gen10g_restart_aneg +EXPORT_SYMBOL vmlinux 0x5d550c4d scsi_sd_probe_domain +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d891a64 idr_destroy +EXPORT_SYMBOL vmlinux 0x5d91baf4 pci_target_state +EXPORT_SYMBOL vmlinux 0x5da210e1 kobject_init +EXPORT_SYMBOL vmlinux 0x5db4f160 posix_test_lock +EXPORT_SYMBOL vmlinux 0x5de43a7b disk_stack_limits +EXPORT_SYMBOL vmlinux 0x5ded3070 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x5e4fb28c neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x5e5d2964 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x5e60eb27 omap_dma_unlink_lch +EXPORT_SYMBOL vmlinux 0x5e6a763b mmc_detect_change +EXPORT_SYMBOL vmlinux 0x5e71c2b9 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL vmlinux 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e962947 inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x5e9e52be mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ebde3d8 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edfceed vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x5ee05502 input_register_handler +EXPORT_SYMBOL vmlinux 0x5ef0d755 uart_resume_port +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f028690 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x5f04df51 netdev_notice +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f0a3394 module_layout +EXPORT_SYMBOL vmlinux 0x5f237c61 netlink_ack +EXPORT_SYMBOL vmlinux 0x5f27323c _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f306350 phy_get_eee_err +EXPORT_SYMBOL vmlinux 0x5f3c8f5c mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x5f48e37c security_dentry_init_security +EXPORT_SYMBOL vmlinux 0x5f58f676 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x5f667357 posix_lock_file +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f8971bf inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x5fa7e5e2 input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL vmlinux 0x5fd1561b skb_flow_dissect +EXPORT_SYMBOL vmlinux 0x5fda0227 vfs_stat +EXPORT_SYMBOL vmlinux 0x5fefde17 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x5ff11cc3 pcibios_min_io +EXPORT_SYMBOL vmlinux 0x5ffb0110 security_mmap_file +EXPORT_SYMBOL vmlinux 0x60055baa dispc_mgr_get_vsync_irq +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL vmlinux 0x603175a6 audit_log_task_info +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x60384165 dm_kobject_release +EXPORT_SYMBOL vmlinux 0x603a296a tcf_hash_check +EXPORT_SYMBOL vmlinux 0x6040e87d d_obtain_alias +EXPORT_SYMBOL vmlinux 0x60541702 edma_alloc_slot +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x606ec51e netdev_emerg +EXPORT_SYMBOL vmlinux 0x60848cb1 pci_get_slot +EXPORT_SYMBOL vmlinux 0x60892cb2 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x60965d56 scsi_print_result +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b80f84 blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0x60ced25c key_link +EXPORT_SYMBOL vmlinux 0x60cf6271 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x60df1e3b posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x6102cf10 set_disk_ro +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x613b7732 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x61426cb9 netif_device_detach +EXPORT_SYMBOL vmlinux 0x6150d904 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x61538ad0 param_get_charp +EXPORT_SYMBOL vmlinux 0x615e70e5 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x61762016 tegra_periph_reset_deassert +EXPORT_SYMBOL vmlinux 0x617a218d __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x61a382e7 devm_gpiod_get +EXPORT_SYMBOL vmlinux 0x61b6f05a pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61b7c810 scsi_print_command +EXPORT_SYMBOL vmlinux 0x61e1850a edma_write_slot +EXPORT_SYMBOL vmlinux 0x61e62afc tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x61f35086 __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0x620423a8 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x6207f378 pps_lookup_dev +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x62194024 omapdss_find_mgr_from_display +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6226c71e mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x623b4785 of_device_alloc +EXPORT_SYMBOL vmlinux 0x624227d9 of_match_device +EXPORT_SYMBOL vmlinux 0x62475197 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x6247696b dquot_initialize +EXPORT_SYMBOL vmlinux 0x6255a50b scsi_print_sense +EXPORT_SYMBOL vmlinux 0x6263e0c1 lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0x6269de14 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62822d05 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x628d84cb fbcon_set_rotate +EXPORT_SYMBOL vmlinux 0x629825c3 swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x62ae3d22 send_sig +EXPORT_SYMBOL vmlinux 0x62d63358 __pskb_copy +EXPORT_SYMBOL vmlinux 0x62e506e9 inet_put_port +EXPORT_SYMBOL vmlinux 0x62ed8411 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x630779f2 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x634d11e0 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x636b3461 omap_dss_get_num_overlays +EXPORT_SYMBOL vmlinux 0x636b86e8 udp_poll +EXPORT_SYMBOL vmlinux 0x6371f107 proc_symlink +EXPORT_SYMBOL vmlinux 0x63744f16 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x63812e5d dss_mgr_disable +EXPORT_SYMBOL vmlinux 0x638edf56 do_sync_write +EXPORT_SYMBOL vmlinux 0x639cee70 block_write_begin +EXPORT_SYMBOL vmlinux 0x63a36905 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x63b2e11d dquot_quota_on +EXPORT_SYMBOL vmlinux 0x63b65718 devm_iounmap +EXPORT_SYMBOL vmlinux 0x63bcaebf pci_pme_active +EXPORT_SYMBOL vmlinux 0x63d6ceb1 __devm_request_region +EXPORT_SYMBOL vmlinux 0x63e40028 input_reset_device +EXPORT_SYMBOL vmlinux 0x63e625fb snd_ctl_boolean_stereo_info +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ee87e5 sg_miter_start +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x64030d0e pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x640f6aeb __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x6411c75c atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x641aa551 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x641ce2aa xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x642bc63b block_write_full_page +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64a22ff0 dispc_mgr_set_lcd_config +EXPORT_SYMBOL vmlinux 0x64bd22ad alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x64cf8556 read_code +EXPORT_SYMBOL vmlinux 0x64d2d6c0 serio_interrupt +EXPORT_SYMBOL vmlinux 0x64dd13b9 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x64f7ee9c bitmap_unplug +EXPORT_SYMBOL vmlinux 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x6524e782 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65466939 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x656c0eb1 sock_wake_async +EXPORT_SYMBOL vmlinux 0x6585b66a inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x6585e310 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x658f66ea bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x65905633 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x6592fb94 dss_mgr_disconnect +EXPORT_SYMBOL vmlinux 0x65a33747 netpoll_setup +EXPORT_SYMBOL vmlinux 0x65cb924d uart_match_port +EXPORT_SYMBOL vmlinux 0x65ce91bc cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65dbd8c5 blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65f3ad9a fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x65f4509f phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x65f6be4a udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x6605f97f flex_array_clear +EXPORT_SYMBOL vmlinux 0x66493f4a remove_proc_entry +EXPORT_SYMBOL vmlinux 0x665a7ae3 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x66657c6c d_instantiate +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a67dab flex_array_shrink +EXPORT_SYMBOL vmlinux 0x66abafd7 vm_map_ram +EXPORT_SYMBOL vmlinux 0x66b58100 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x66b58475 sys_copyarea +EXPORT_SYMBOL vmlinux 0x66b88fbd inet6_bind +EXPORT_SYMBOL vmlinux 0x66bedf94 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x66dab9ff key_alloc +EXPORT_SYMBOL vmlinux 0x66df873f wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x66e06b8a mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x66f23839 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x67054ebf omap_dss_find_output_by_node +EXPORT_SYMBOL vmlinux 0x670bf6e8 tty_register_device +EXPORT_SYMBOL vmlinux 0x671a06bb unregister_console +EXPORT_SYMBOL vmlinux 0x67368bca snd_card_register +EXPORT_SYMBOL vmlinux 0x673ad202 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x6740bf33 block_commit_write +EXPORT_SYMBOL vmlinux 0x674194fe blk_end_request +EXPORT_SYMBOL vmlinux 0x674981d6 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x674e1407 twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x6756b8d9 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x675a77de eth_type_trans +EXPORT_SYMBOL vmlinux 0x675b8f61 param_get_string +EXPORT_SYMBOL vmlinux 0x676bbc0f _set_bit +EXPORT_SYMBOL vmlinux 0x67a6d563 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x67b1945e pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c23cd3 mntget +EXPORT_SYMBOL vmlinux 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL vmlinux 0x67ccdd8d alloc_disk_node +EXPORT_SYMBOL vmlinux 0x67d0cc95 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x67d78a2f ppp_unit_number +EXPORT_SYMBOL vmlinux 0x67d8f585 devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x67ea44cf snd_pcm_new_stream +EXPORT_SYMBOL vmlinux 0x682e93b9 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x684d5365 register_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x6881e120 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x68869bae panic_notifier_list +EXPORT_SYMBOL vmlinux 0x688dd34d update_region +EXPORT_SYMBOL vmlinux 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL vmlinux 0x68b83ac6 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x68c8cd8f __register_binfmt +EXPORT_SYMBOL vmlinux 0x68da5d2b scsi_prep_return +EXPORT_SYMBOL vmlinux 0x68e05d57 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x68fb581a icst307_idx2s +EXPORT_SYMBOL vmlinux 0x690880d7 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x6915eb38 down_interruptible +EXPORT_SYMBOL vmlinux 0x6921a784 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x692290f0 from_kuid +EXPORT_SYMBOL vmlinux 0x693b15d5 jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x693f11bc mmc_stop_bkops +EXPORT_SYMBOL vmlinux 0x695945a7 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x696dcca7 ether_setup +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x697254ce blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x69741c60 phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x69752fa8 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x69770f25 snd_card_create +EXPORT_SYMBOL vmlinux 0x69a5469d seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69b6f8d9 omap_set_dma_transfer_params +EXPORT_SYMBOL vmlinux 0x69d1305b tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69d96834 dst_release +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69f42e07 simple_statfs +EXPORT_SYMBOL vmlinux 0x69f769b2 vfs_link +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a1ccb1b edma_get_position +EXPORT_SYMBOL vmlinux 0x6a1e2a96 nand_unlock +EXPORT_SYMBOL vmlinux 0x6a34e81a jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x6a3505d9 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x6a3ca72c prepare_creds +EXPORT_SYMBOL vmlinux 0x6a3f4119 mmc_of_parse_voltage +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a73423c snd_ctl_new1 +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a8218e9 dqget +EXPORT_SYMBOL vmlinux 0x6a9a9473 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x6aaff146 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x6af0b69d twl6040_set_bits +EXPORT_SYMBOL vmlinux 0x6b06fdce delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2d6304 clk_get +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b5e79f2 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x6b698f09 user_path_at +EXPORT_SYMBOL vmlinux 0x6b797d17 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x6b85d28c scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x6b8fd1bf dev_activate +EXPORT_SYMBOL vmlinux 0x6b9797ea kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x6bbb6351 nand_lock +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6beb2078 param_set_copystring +EXPORT_SYMBOL vmlinux 0x6bf1d3c6 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2e8f0a ppp_register_channel +EXPORT_SYMBOL vmlinux 0x6c364003 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x6c43eb6e swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0x6c51a836 sysctl_tcp_notsent_lowat +EXPORT_SYMBOL vmlinux 0x6c5ef537 __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c663734 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x6c6cdd4d wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c947a31 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x6ca061cc inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x6ca5b0f8 __net_get_random_once +EXPORT_SYMBOL vmlinux 0x6cab89dc blk_queue_max_write_same_sectors +EXPORT_SYMBOL vmlinux 0x6cb9e181 __genl_register_family +EXPORT_SYMBOL vmlinux 0x6cc97904 phy_detach +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6ce46b34 set_blocksize +EXPORT_SYMBOL vmlinux 0x6cf0b33e blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x6cf3034d pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d212f2e pci_find_capability +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d31b12f snd_ctl_replace +EXPORT_SYMBOL vmlinux 0x6d338883 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d3c8abf dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x6d457c5b dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0x6d464175 __sg_free_table +EXPORT_SYMBOL vmlinux 0x6d55e4df module_put +EXPORT_SYMBOL vmlinux 0x6d630748 inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0x6d662533 _find_first_bit_le +EXPORT_SYMBOL vmlinux 0x6d68e013 devfreq_resume_device +EXPORT_SYMBOL vmlinux 0x6d75c05e neigh_connected_output +EXPORT_SYMBOL vmlinux 0x6d98a110 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x6d9c728f user_revoke +EXPORT_SYMBOL vmlinux 0x6d9feae8 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x6da767a6 mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x6dcbca14 devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x6ddfe1c2 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e14e0a4 km_state_notify +EXPORT_SYMBOL vmlinux 0x6e21d13c mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x6e2503ce pci_platform_rom +EXPORT_SYMBOL vmlinux 0x6e5908f1 have_submounts +EXPORT_SYMBOL vmlinux 0x6e6124c5 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x6e6f9ebb nla_put +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6ea3d70e input_allocate_device +EXPORT_SYMBOL vmlinux 0x6ea43329 redraw_screen +EXPORT_SYMBOL vmlinux 0x6eadc8fe filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x6ebc5149 param_ops_long +EXPORT_SYMBOL vmlinux 0x6ebcd23a dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x6ec9ccdb _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x6ee6f41a fbcon_rotate_ccw +EXPORT_SYMBOL vmlinux 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL vmlinux 0x6efb2bc7 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x6f076c8a end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x6f20960a full_name_hash +EXPORT_SYMBOL vmlinux 0x6f2cf343 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x6f340d7f netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x6f358a48 make_kgid +EXPORT_SYMBOL vmlinux 0x6f378152 ipmi_get_smi_info +EXPORT_SYMBOL vmlinux 0x6f39990e __ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x6f3e1b4d buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0x6f51c6ce iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x6f56d2a9 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x6f665ff4 skb_put +EXPORT_SYMBOL vmlinux 0x6f8d381b blk_recount_segments +EXPORT_SYMBOL vmlinux 0x6f924849 pci_disable_device +EXPORT_SYMBOL vmlinux 0x6f9c3075 dget_parent +EXPORT_SYMBOL vmlinux 0x6fb48a4a generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x6fc33be6 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fe5cd61 __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0x7000c785 elevator_init +EXPORT_SYMBOL vmlinux 0x70048a68 security_inode_permission +EXPORT_SYMBOL vmlinux 0x70097aa0 nand_bch_free +EXPORT_SYMBOL vmlinux 0x701cdcc1 of_dev_get +EXPORT_SYMBOL vmlinux 0x703b58ce snd_info_free_entry +EXPORT_SYMBOL vmlinux 0x70401cc3 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7079faa6 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x707d7bf2 snd_pcm_stop +EXPORT_SYMBOL vmlinux 0x707f43f6 __ctzdi2 +EXPORT_SYMBOL vmlinux 0x7087a3d7 pipe_unlock +EXPORT_SYMBOL vmlinux 0x70a45234 simple_setattr +EXPORT_SYMBOL vmlinux 0x70ace8dd dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70c03ae8 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70d27597 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x70d6e252 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x70e39dae dss_uninstall_mgr_ops +EXPORT_SYMBOL vmlinux 0x71026d62 save_mount_options +EXPORT_SYMBOL vmlinux 0x711fdf71 vlan_untag +EXPORT_SYMBOL vmlinux 0x71201ecd fsync_bdev +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x71316275 dquot_acquire +EXPORT_SYMBOL vmlinux 0x7142c63c edma_free_slot +EXPORT_SYMBOL vmlinux 0x714434b9 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x71658a05 dispc_ovl_setup +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71874a77 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x7197e7de serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71b4fc37 __page_symlink +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71ecad4f crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x71f65175 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0x71f86058 sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0x721fcde3 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x72350130 ___ratelimit +EXPORT_SYMBOL vmlinux 0x72431cb7 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x725bec6f nobh_write_begin +EXPORT_SYMBOL vmlinux 0x7260e630 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x7262f10b elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x72670550 jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0x726d63bf lro_flush_all +EXPORT_SYMBOL vmlinux 0x729ad19a seq_read +EXPORT_SYMBOL vmlinux 0x72a1e5e3 phy_start +EXPORT_SYMBOL vmlinux 0x72ac7755 inet_del_offload +EXPORT_SYMBOL vmlinux 0x72b362ae amba_device_register +EXPORT_SYMBOL vmlinux 0x72b5b2b7 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x72bfe429 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x72c12763 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x72c2bba9 of_device_unregister +EXPORT_SYMBOL vmlinux 0x72cd1a30 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x72d4050a abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x72d58de9 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x72ddb466 lookup_bdev +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72ee0d53 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x72f2dde0 arm_coherent_dma_ops +EXPORT_SYMBOL vmlinux 0x73038c25 dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x731b81f1 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x7369949b snd_ctl_find_numid +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x73897515 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x7389b32d __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x738b82ae inet_bind +EXPORT_SYMBOL vmlinux 0x73be5bd5 omapdss_output_set_device +EXPORT_SYMBOL vmlinux 0x73c187ea uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x73df87b9 snd_card_free_when_closed +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73f067b1 tty_unlock +EXPORT_SYMBOL vmlinux 0x73fede76 locks_free_lock +EXPORT_SYMBOL vmlinux 0x740d9f8b blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x741ab07d file_update_time +EXPORT_SYMBOL vmlinux 0x74305b00 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x7442cc1a snd_pcm_open_substream +EXPORT_SYMBOL vmlinux 0x7452018e key_task_permission +EXPORT_SYMBOL vmlinux 0x745301c6 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x746114c6 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x7470f1de inet6_release +EXPORT_SYMBOL vmlinux 0x747195f0 hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x7473538d blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x74770309 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x7480b992 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x749cbb81 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL vmlinux 0x74b96141 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x74be655c pci_dev_driver +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74ce05b8 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x74e46dac imx_ssi_fiq_tx_buffer +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x74e8cc13 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x74ef59a0 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x74fa022d edma_trigger_channel +EXPORT_SYMBOL vmlinux 0x74fcc9f7 get_write_access +EXPORT_SYMBOL vmlinux 0x7505bdef memchr_inv +EXPORT_SYMBOL vmlinux 0x75201bbc sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0x7538aa23 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x753d3b8a ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x754dac78 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x75506826 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x755757ef pci_write_vpd +EXPORT_SYMBOL vmlinux 0x757ac001 netlink_capable +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75e4d63e udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x75fc91ba neigh_app_ns +EXPORT_SYMBOL vmlinux 0x75fee7fd __raw_writesb +EXPORT_SYMBOL vmlinux 0x7609ae8f block_invalidatepage +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x7636f7c4 dm_get_device +EXPORT_SYMBOL vmlinux 0x76372859 devm_gpio_request_one +EXPORT_SYMBOL vmlinux 0x763882a1 skb_pull +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x765bcd04 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x766a34d4 from_kprojid +EXPORT_SYMBOL vmlinux 0x76bd1dde gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76cf47f6 __aeabi_llsl +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d451c4 add_taint +EXPORT_SYMBOL vmlinux 0x76fc1a1c sock_recvmsg +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x77537879 snd_component_add +EXPORT_SYMBOL vmlinux 0x77722bba blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x777aab4d arp_create +EXPORT_SYMBOL vmlinux 0x7791193f icst525_s2div +EXPORT_SYMBOL vmlinux 0x7796aea9 dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77bdfee6 seq_open +EXPORT_SYMBOL vmlinux 0x77be3030 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL vmlinux 0x77c23ee3 kmalloc_dma_caches +EXPORT_SYMBOL vmlinux 0x77c5b012 security_path_chown +EXPORT_SYMBOL vmlinux 0x77c91486 drop_super +EXPORT_SYMBOL vmlinux 0x77d5b6b6 kobject_set_name +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77fe4cb2 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x77fe9dfd blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x780b9b5f snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL vmlinux 0x782567ec memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0x783211a9 elm_config +EXPORT_SYMBOL vmlinux 0x783b3563 wake_up_atomic_t +EXPORT_SYMBOL vmlinux 0x7860ffd5 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x7865c074 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x78723018 pcie_set_mps +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x78862ff3 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x789affb1 frontswap_tmem_exclusive_gets +EXPORT_SYMBOL vmlinux 0x789b5f5f devm_clk_put +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78f3075b dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x78fa04dd udp_prot +EXPORT_SYMBOL vmlinux 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL vmlinux 0x7904845b pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x791738c6 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x792156b8 dss_mgr_connect +EXPORT_SYMBOL vmlinux 0x7929d42c inc_nlink +EXPORT_SYMBOL vmlinux 0x7930d225 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x795ed4e8 key_reject_and_link +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79701623 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x79753eb4 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x797d682e mb_cache_create +EXPORT_SYMBOL vmlinux 0x799c1f22 blk_register_region +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79ab78ef tcp_seq_open +EXPORT_SYMBOL vmlinux 0x79c74c34 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x79d711c1 vfs_readv +EXPORT_SYMBOL vmlinux 0x79e4aead inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x79f4d5fd omapdss_register_display +EXPORT_SYMBOL vmlinux 0x79fa1deb imx_ssi_fiq_rx_buffer +EXPORT_SYMBOL vmlinux 0x7a0ce54d udplite_prot +EXPORT_SYMBOL vmlinux 0x7a188791 prandom_bytes +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a29e2ef phy_disconnect +EXPORT_SYMBOL vmlinux 0x7a43d6d3 set_anon_super +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a451cf6 sk_dst_check +EXPORT_SYMBOL vmlinux 0x7a5fef80 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x7a71366c ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0x7a87d006 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7a925833 cpufreq_get_global_kobject +EXPORT_SYMBOL vmlinux 0x7a9d7a74 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7aaf2247 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7ac4712e blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7ad5a6c9 ptp_clock_unregister +EXPORT_SYMBOL vmlinux 0x7add44b5 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7adf4e30 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x7afa89fc vsnprintf +EXPORT_SYMBOL vmlinux 0x7b020887 audit_log_start +EXPORT_SYMBOL vmlinux 0x7b1ade38 lz4_decompress +EXPORT_SYMBOL vmlinux 0x7b30d9ad __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x7b4687ff pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0x7b5c8440 vm_munmap +EXPORT_SYMBOL vmlinux 0x7b7519df jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x7b7583fa arp_invalidate +EXPORT_SYMBOL vmlinux 0x7b79ded0 bio_alloc_pages +EXPORT_SYMBOL vmlinux 0x7b9b17b3 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x7b9f07c6 poll_freewait +EXPORT_SYMBOL vmlinux 0x7be013ec pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x7be05708 neigh_direct_output +EXPORT_SYMBOL vmlinux 0x7c1372e8 panic +EXPORT_SYMBOL vmlinux 0x7c383cf7 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7c428a7c qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c475b59 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x7c4add9c dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x7c513662 open_exec +EXPORT_SYMBOL vmlinux 0x7c5e38f2 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x7c5ecd39 mount_nodev +EXPORT_SYMBOL vmlinux 0x7c81d261 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cb23bf6 kobject_del +EXPORT_SYMBOL vmlinux 0x7cbe8095 dispc_mgr_set_timings +EXPORT_SYMBOL vmlinux 0x7cc035a7 __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x7cc578da param_get_long +EXPORT_SYMBOL vmlinux 0x7cd3bdc8 pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0x7cdd0821 skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7ce234b5 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x7cec5148 of_find_backlight_by_node +EXPORT_SYMBOL vmlinux 0x7cf544f8 __frontswap_test +EXPORT_SYMBOL vmlinux 0x7d01f5e7 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d0e3e72 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d253ca4 inet_frag_find +EXPORT_SYMBOL vmlinux 0x7d31e857 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x7d3e22ac snd_timer_global_register +EXPORT_SYMBOL vmlinux 0x7d4e2276 __init_rwsem +EXPORT_SYMBOL vmlinux 0x7dccc294 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7e017954 sk_wait_data +EXPORT_SYMBOL vmlinux 0x7e1b3302 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e4bfb3a kobject_get +EXPORT_SYMBOL vmlinux 0x7e613688 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x7e796a04 neigh_table_init +EXPORT_SYMBOL vmlinux 0x7e98d318 vexpress_config_read +EXPORT_SYMBOL vmlinux 0x7e9cbf59 sk_stream_error +EXPORT_SYMBOL vmlinux 0x7e9efe8e complete_and_exit +EXPORT_SYMBOL vmlinux 0x7ead817c __idr_pre_get +EXPORT_SYMBOL vmlinux 0x7eb84d44 mmc_release_host +EXPORT_SYMBOL vmlinux 0x7ee73c0c memcg_socket_limit_enabled +EXPORT_SYMBOL vmlinux 0x7ee8f8df bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x7efdee5a tcp_child_process +EXPORT_SYMBOL vmlinux 0x7effeefb release_pages +EXPORT_SYMBOL vmlinux 0x7f04aeab ip_ct_attach +EXPORT_SYMBOL vmlinux 0x7f10e21b fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x7f1ab1bc blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x7f20b03a notify_change +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f28edf2 from_kuid_munged +EXPORT_SYMBOL vmlinux 0x7f33a63b omap_get_dma_chain_dst_pos +EXPORT_SYMBOL vmlinux 0x7f61c08f block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x7f63b31e _memcpy_toio +EXPORT_SYMBOL vmlinux 0x7f7de178 pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x7f895da1 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x7f8c5b0d tcf_hash_create +EXPORT_SYMBOL vmlinux 0x7fa2f9f3 nobh_write_end +EXPORT_SYMBOL vmlinux 0x7fa54e2f load_nls +EXPORT_SYMBOL vmlinux 0x7fa64cca omap_dss_pal_timings +EXPORT_SYMBOL vmlinux 0x7fdf5e01 __serio_register_port +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7fe5ed30 md_flush_request +EXPORT_SYMBOL vmlinux 0x7fec7d72 omap_dss_put_device +EXPORT_SYMBOL vmlinux 0x7ff5daa3 d_invalidate +EXPORT_SYMBOL vmlinux 0x80011a9d dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x800e4ffa __muldi3 +EXPORT_SYMBOL vmlinux 0x8025a1c7 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x804318d6 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x804f922a ipmi_addr_length +EXPORT_SYMBOL vmlinux 0x808b8f5e pps_unregister_source +EXPORT_SYMBOL vmlinux 0x808f3780 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x80a476e5 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x80a7e0b6 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x80c1c54e mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d5ad6a blk_mq_init_commands +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80d81308 omap_vrfb_release_ctx +EXPORT_SYMBOL vmlinux 0x80e4c1af pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x80f8394d snd_pcm_kernel_ioctl +EXPORT_SYMBOL vmlinux 0x8127c838 omap_dss_get_overlay_manager +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x814f9d41 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x817f513e inode_dio_done +EXPORT_SYMBOL vmlinux 0x818d4286 tcp_init_sock +EXPORT_SYMBOL vmlinux 0x8190894d eth_header_parse +EXPORT_SYMBOL vmlinux 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL vmlinux 0x81bd0f9d snd_timer_new +EXPORT_SYMBOL vmlinux 0x81d051d5 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81d7ddaa nla_reserve +EXPORT_SYMBOL vmlinux 0x81d83928 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x82049e70 fbcon_rotate_cw +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x822af4cf tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x822ecd2a nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x8243f506 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x824a4367 tmio_core_mmc_pwr +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8258b08d __cleancache_put_page +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x826fbc69 phy_init_eee +EXPORT_SYMBOL vmlinux 0x8275c54b i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x82795576 kernel_accept +EXPORT_SYMBOL vmlinux 0x828062b1 __frontswap_init +EXPORT_SYMBOL vmlinux 0x8296f7ba do_splice_from +EXPORT_SYMBOL vmlinux 0x82a0f08c twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82afaf17 get_disk +EXPORT_SYMBOL vmlinux 0x82e4aeea __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x830556c1 pci_map_rom +EXPORT_SYMBOL vmlinux 0x8320bea8 __umodsi3 +EXPORT_SYMBOL vmlinux 0x83211609 up_write +EXPORT_SYMBOL vmlinux 0x8363e56b amba_release_regions +EXPORT_SYMBOL vmlinux 0x836b4847 finish_no_open +EXPORT_SYMBOL vmlinux 0x8374372d dquot_commit_info +EXPORT_SYMBOL vmlinux 0x8374a56e bioset_create +EXPORT_SYMBOL vmlinux 0x8378a75d scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x838991c7 dput +EXPORT_SYMBOL vmlinux 0x839cdf99 edma_resume +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83d31ee6 tty_name +EXPORT_SYMBOL vmlinux 0x83d70683 edma_start +EXPORT_SYMBOL vmlinux 0x84099c37 try_module_get +EXPORT_SYMBOL vmlinux 0x841962f8 param_get_ushort +EXPORT_SYMBOL vmlinux 0x841d1797 __mutex_init +EXPORT_SYMBOL vmlinux 0x84222dc8 dma_common_mmap +EXPORT_SYMBOL vmlinux 0x84452489 gen10g_config_aneg +EXPORT_SYMBOL vmlinux 0x84643d76 vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0x847c7c16 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x848414a9 d_move +EXPORT_SYMBOL vmlinux 0x848d1979 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x849c285b devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x84a92950 vfs_llseek +EXPORT_SYMBOL vmlinux 0x84af0bf7 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84c4e438 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x84e645e0 scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x84ffea8b idr_preload +EXPORT_SYMBOL vmlinux 0x8509c540 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0x8518eca9 param_get_short +EXPORT_SYMBOL vmlinux 0x853bf7c1 param_set_int +EXPORT_SYMBOL vmlinux 0x8541b8fc sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x854e1c0b sg_nents +EXPORT_SYMBOL vmlinux 0x85604d89 pci_set_ltr +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x85737519 edma_read_slot +EXPORT_SYMBOL vmlinux 0x85765fee omap_enable_dma_irq +EXPORT_SYMBOL vmlinux 0x8587a3e0 d_lookup +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85bae8f0 snd_pcm_new +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x860fc560 pci_disable_obff +EXPORT_SYMBOL vmlinux 0x86366d42 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8654f0d9 set_binfmt +EXPORT_SYMBOL vmlinux 0x86620339 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x86672836 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x867f002e ip_fragment +EXPORT_SYMBOL vmlinux 0x86860195 dss_feat_get_supported_displays +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86baf92d insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x86dc17b5 inet_frags_init +EXPORT_SYMBOL vmlinux 0x86e8ba75 address_space_init_once +EXPORT_SYMBOL vmlinux 0x86e935f6 skb_copy +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x87021e0d dev_driver_string +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x8710cfee snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x874a5e09 register_netdevice +EXPORT_SYMBOL vmlinux 0x876e2dd8 dev_mc_del +EXPORT_SYMBOL vmlinux 0x8779a34f param_ops_byte +EXPORT_SYMBOL vmlinux 0x877e07de seq_puts +EXPORT_SYMBOL vmlinux 0x8782404b do_splice_to +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87900f62 tc6393xb_lcd_mode +EXPORT_SYMBOL vmlinux 0x87966b9b omapdss_get_version +EXPORT_SYMBOL vmlinux 0x8798e453 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x87c3a1f5 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x87d3e521 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x87d86a0a eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0x87f71d4a jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x8803a5bb jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x880a2937 dev_get_flags +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881e69e5 pci_enable_ltr +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x88459963 vlan_vid_del +EXPORT_SYMBOL vmlinux 0x884d179b jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x884f1717 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL vmlinux 0x88513970 param_set_byte +EXPORT_SYMBOL vmlinux 0x8888d92f snd_ctl_rename_id +EXPORT_SYMBOL vmlinux 0x88ca7e3d scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x88cf88fc mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x8904682a dma_common_get_sgtable +EXPORT_SYMBOL vmlinux 0x890dc2ed idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x8917dabe fbcon_rotate_ud +EXPORT_SYMBOL vmlinux 0x8953f8ff __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x8954f25d tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x89664152 pci_find_bus +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89a3c4f4 omap_get_dma_chain_index +EXPORT_SYMBOL vmlinux 0x89b2d407 snd_ctl_make_virtual_master +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89e12bc2 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x8a07326e cleancache_register_ops +EXPORT_SYMBOL vmlinux 0x8a0f4230 rename_lock +EXPORT_SYMBOL vmlinux 0x8a1ab4ee timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8a27b464 neigh_lookup +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a4fa83b __aeabi_llsr +EXPORT_SYMBOL vmlinux 0x8a51d565 quota_send_warning +EXPORT_SYMBOL vmlinux 0x8a61f141 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x8a76cfd3 inet6_unregister_icmp_sender +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a879ed3 kthread_bind +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8a9ac033 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0x8ad57d85 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x8aeacce1 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x8afe8d8c setup_arg_pages +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b39e3a8 register_netdev +EXPORT_SYMBOL vmlinux 0x8b43159b register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b762509 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x8b8f7bb1 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x8ba1a6b8 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x8ba722f8 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x8ba78639 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x8bcda7fd eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x8bdfa333 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x8be8903a i2c_master_recv +EXPORT_SYMBOL vmlinux 0x8c0a57c2 blk_init_queue +EXPORT_SYMBOL vmlinux 0x8c224975 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x8c306446 blk_mq_alloc_single_hw_queue +EXPORT_SYMBOL vmlinux 0x8c4d6523 omap_dma_chain_a_transfer +EXPORT_SYMBOL vmlinux 0x8c509648 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x8c5e01a3 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x8c637d43 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x8c6a29be invalidate_partition +EXPORT_SYMBOL vmlinux 0x8c705b8c edma_clean_channel +EXPORT_SYMBOL vmlinux 0x8c812413 km_state_expired +EXPORT_SYMBOL vmlinux 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL vmlinux 0x8cb1ac55 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x8cb2ccc6 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x8cb7b229 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x8cd8c339 omap_free_dma +EXPORT_SYMBOL vmlinux 0x8ce28525 ps2_drain +EXPORT_SYMBOL vmlinux 0x8ce43903 tcp_init_cgroup +EXPORT_SYMBOL vmlinux 0x8cf37e30 ipv4_specific +EXPORT_SYMBOL vmlinux 0x8d2b9591 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x8d2cda96 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x8d2e268b param_ops_ulong +EXPORT_SYMBOL vmlinux 0x8d494fb0 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d6ac22a kernel_bind +EXPORT_SYMBOL vmlinux 0x8d6d685b rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper +EXPORT_SYMBOL vmlinux 0x8d8b6353 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x8d9ec0d6 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x8da076f7 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x8dcff6e2 __pv_offset +EXPORT_SYMBOL vmlinux 0x8dd8f46c vfs_readlink +EXPORT_SYMBOL vmlinux 0x8de753e9 check_submounts_and_drop +EXPORT_SYMBOL vmlinux 0x8dfed1df uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x8e0d66f4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x8e193e11 pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0x8e281bff dev_remove_offload +EXPORT_SYMBOL vmlinux 0x8e4b5d72 ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0x8e4f2d6b jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x8e5c580a ida_init +EXPORT_SYMBOL vmlinux 0x8e64d5c1 _snd_ctl_add_slave +EXPORT_SYMBOL vmlinux 0x8e6b80e7 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x8e864a86 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x8e865d3c arm_delay_ops +EXPORT_SYMBOL vmlinux 0x8e8b0438 register_gifconf +EXPORT_SYMBOL vmlinux 0x8e8e7f3a call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x8e966884 input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x8eaa7c8f dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x8ec28f58 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x8ee016ae ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x8ef8f7b7 nf_log_packet +EXPORT_SYMBOL vmlinux 0x8f045d1c cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x8f21bbff xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x8f34d2c2 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x8f375660 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x8f4778ca input_open_device +EXPORT_SYMBOL vmlinux 0x8f4c2eb1 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x8f595b11 snd_major +EXPORT_SYMBOL vmlinux 0x8f678b07 __stack_chk_guard +EXPORT_SYMBOL vmlinux 0x8f87919f init_net +EXPORT_SYMBOL vmlinux 0x8fa4130a omap_set_dma_callback +EXPORT_SYMBOL vmlinux 0x8faa4598 of_translate_address +EXPORT_SYMBOL vmlinux 0x8fbdf9cb load_nls_default +EXPORT_SYMBOL vmlinux 0x8fd180e7 kernel_neon_begin +EXPORT_SYMBOL vmlinux 0x8fd9fede sock_update_classid +EXPORT_SYMBOL vmlinux 0x8fed42b7 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90067ba0 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x904f9229 d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0x906cd73d lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x906ff7c3 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x907aaf43 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x9088f6f4 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x908b53ed param_set_short +EXPORT_SYMBOL vmlinux 0x90bdb9c4 sock_rfree +EXPORT_SYMBOL vmlinux 0x90c39f4b generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x90c5e819 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x90cfeb86 __cleancache_invalidate_fs +EXPORT_SYMBOL vmlinux 0x90d31c1e ip_options_compile +EXPORT_SYMBOL vmlinux 0x90e1327a ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x90fadb20 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x9107eb8a flush_old_exec +EXPORT_SYMBOL vmlinux 0x912c05fc __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x9161f056 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x91862c33 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x918a653e netif_napi_add +EXPORT_SYMBOL vmlinux 0x919029aa __readwrite_bug +EXPORT_SYMBOL vmlinux 0x91abcc3a dev_addr_init +EXPORT_SYMBOL vmlinux 0x91aec064 down_read_trylock +EXPORT_SYMBOL vmlinux 0x91b4ea2c xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x91b87e4d d_find_any_alias +EXPORT_SYMBOL vmlinux 0x91c0980e icst_hz +EXPORT_SYMBOL vmlinux 0x91c2c9e5 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x91ebdaeb phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x91eecb52 mapping_tagged +EXPORT_SYMBOL vmlinux 0x920eb90c interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x9210dbff jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x92180899 devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0x921aa03a tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x921debd8 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x922fe29a kill_block_super +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x92418478 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x9245366b elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x925520d2 blk_start_plug +EXPORT_SYMBOL vmlinux 0x925cbccd md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x926fc284 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x9272dff0 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x9276ce28 edma_set_dest +EXPORT_SYMBOL vmlinux 0x92a37eda pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x92a9c60c time_to_tm +EXPORT_SYMBOL vmlinux 0x92c07223 cdrom_release +EXPORT_SYMBOL vmlinux 0x92d18086 qdisc_watchdog_schedule_ns +EXPORT_SYMBOL vmlinux 0x92ec5d1b dispc_mgr_enable +EXPORT_SYMBOL vmlinux 0x92f98f57 input_close_device +EXPORT_SYMBOL vmlinux 0x930458ce jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x930d62f4 cdrom_open +EXPORT_SYMBOL vmlinux 0x93178b52 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x932c7374 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x9330cb9f sg_alloc_table +EXPORT_SYMBOL vmlinux 0x93378fbf tty_register_driver +EXPORT_SYMBOL vmlinux 0x93440201 dquot_enable +EXPORT_SYMBOL vmlinux 0x936859b6 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid +EXPORT_SYMBOL vmlinux 0x93832820 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x93963a85 dss_feat_get_num_mgrs +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93c45c30 bh_submit_read +EXPORT_SYMBOL vmlinux 0x93dbbf2a __nla_reserve +EXPORT_SYMBOL vmlinux 0x93dd151c lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0x93e81770 eth_header +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9404ea4b seq_putc +EXPORT_SYMBOL vmlinux 0x94098ff8 snd_interval_list +EXPORT_SYMBOL vmlinux 0x940e17b1 netdev_change_features +EXPORT_SYMBOL vmlinux 0x941058fb ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x9422ef46 call_netdevice_notifiers_info +EXPORT_SYMBOL vmlinux 0x943cc016 padata_alloc +EXPORT_SYMBOL vmlinux 0x9478a3a4 vfs_fsync +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94d3da68 rtc_lock +EXPORT_SYMBOL vmlinux 0x9508f166 param_ops_bint +EXPORT_SYMBOL vmlinux 0x952534df dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x95622f41 down_timeout +EXPORT_SYMBOL vmlinux 0x9566f046 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x956a9d71 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x957fdcf6 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x9582d0c2 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x95a6a8a4 netif_skb_dev_features +EXPORT_SYMBOL vmlinux 0x95b0df7d netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0x95c213ba ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x95c91fc5 put_page +EXPORT_SYMBOL vmlinux 0x95cb929c of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x95d16132 kern_unmount +EXPORT_SYMBOL vmlinux 0x95dbe078 __get_user_2 +EXPORT_SYMBOL vmlinux 0x95e6e500 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x96124d4f alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x9613509a idr_replace +EXPORT_SYMBOL vmlinux 0x961c7bfc led_set_brightness +EXPORT_SYMBOL vmlinux 0x96202cb6 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x9621d87f gen10g_suspend +EXPORT_SYMBOL vmlinux 0x9654b852 add_disk +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x965add9c do_SAK +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x96b39b6e omap_start_dma_chain_transfers +EXPORT_SYMBOL vmlinux 0x96b4e031 omapdss_register_output +EXPORT_SYMBOL vmlinux 0x96b52f1c jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x96c85d31 of_mdio_find_bus +EXPORT_SYMBOL vmlinux 0x96ca4f59 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x972777c0 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x9749abf5 register_quota_format +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x976e700f down_trylock +EXPORT_SYMBOL vmlinux 0x976fad19 bdget +EXPORT_SYMBOL vmlinux 0x97797e9a pps_event +EXPORT_SYMBOL vmlinux 0x9787fde8 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x9793c93a dispc_mgr_setup +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x97a60e3d param_get_bool +EXPORT_SYMBOL vmlinux 0x97ade91f jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x97b4500c __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x97b87ab3 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x97c1e6d9 lockref_get_or_lock +EXPORT_SYMBOL vmlinux 0x97e98735 cdev_alloc +EXPORT_SYMBOL vmlinux 0x97eba383 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x98082893 __copy_to_user +EXPORT_SYMBOL vmlinux 0x9813d00d iget_locked +EXPORT_SYMBOL vmlinux 0x9819d70e xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x9820b644 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x9823f138 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x985c9fa6 ptp_clock_register +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98844382 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x98937abe sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x98b5bcaa inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x98c733b9 vlan_vid_add +EXPORT_SYMBOL vmlinux 0x98cd2c47 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x990780ef free_netdev +EXPORT_SYMBOL vmlinux 0x992d3878 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x99368a26 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x99492d61 vfs_read +EXPORT_SYMBOL vmlinux 0x994aac5e swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x994c6879 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x994ebcdb mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x99591a7a ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x996c4d30 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x996fdbf6 ata_link_printk +EXPORT_SYMBOL vmlinux 0x998467fd nf_setsockopt +EXPORT_SYMBOL vmlinux 0x99850190 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999c3148 __raw_readsb +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99ee56dd fixed_size_llseek +EXPORT_SYMBOL vmlinux 0x99f58330 lg_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x9a048490 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x9a0ef629 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x9a1315d9 proc_set_size +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1fc4b4 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9a3f874b swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x9a626470 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x9a69918f console_start +EXPORT_SYMBOL vmlinux 0x9a6e183a __idr_remove_all +EXPORT_SYMBOL vmlinux 0x9a77da87 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x9a8318ef v7_coherent_kern_range +EXPORT_SYMBOL vmlinux 0x9a86a868 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x9a9389d9 inet_select_addr +EXPORT_SYMBOL vmlinux 0x9a9793c4 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x9aa4c357 snd_ctl_notify +EXPORT_SYMBOL vmlinux 0x9aac0d26 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x9ab8ec00 fasync_helper +EXPORT_SYMBOL vmlinux 0x9add7c31 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x9b08c133 mmc_get_card +EXPORT_SYMBOL vmlinux 0x9b2283d9 __i2c_transfer +EXPORT_SYMBOL vmlinux 0x9b298dae vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x9b3097b0 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b3d8758 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x9b3f8605 free_buffer_head +EXPORT_SYMBOL vmlinux 0x9b427a5c ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x9b54d737 adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b9a2a88 snd_info_create_card_entry +EXPORT_SYMBOL vmlinux 0x9b9e05f9 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9bda4bb4 edma_set_src +EXPORT_SYMBOL vmlinux 0x9be7bde4 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x9c0bd51f _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x9c11baca dev_disable_lro +EXPORT_SYMBOL vmlinux 0x9c253ddd nand_scan_bbt +EXPORT_SYMBOL vmlinux 0x9c2e95a6 setattr_copy +EXPORT_SYMBOL vmlinux 0x9c35cb15 sk_capable +EXPORT_SYMBOL vmlinux 0x9c3737fc __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x9c59d027 phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x9c5ba58a netdev_update_features +EXPORT_SYMBOL vmlinux 0x9c628748 inode_init_owner +EXPORT_SYMBOL vmlinux 0x9c7d7f8c poll_initwait +EXPORT_SYMBOL vmlinux 0x9c88f73f set_page_dirty +EXPORT_SYMBOL vmlinux 0x9c8e2f8e file_remove_suid +EXPORT_SYMBOL vmlinux 0x9c97082e edma_pause +EXPORT_SYMBOL vmlinux 0x9c9cb293 sock_create_lite +EXPORT_SYMBOL vmlinux 0x9c9ec2a0 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x9ca5bd46 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9cba3c37 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x9cc6ddee md_write_start +EXPORT_SYMBOL vmlinux 0x9cd32365 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cf17f42 __lock_buffer +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d05f6c4 ktime_get_clocktai +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d90f95f __crc32c_le_combine +EXPORT_SYMBOL vmlinux 0x9dac39a1 snd_timer_interrupt +EXPORT_SYMBOL vmlinux 0x9daeb120 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0x9df33035 skb_clone +EXPORT_SYMBOL vmlinux 0x9df3a5e5 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x9df715a6 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x9dfe7307 lz4_decompress_unknownoutputsize +EXPORT_SYMBOL vmlinux 0x9e0c152a skb_dequeue +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e2234f4 ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x9e2f4e88 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x9e44b9b7 of_get_next_available_child +EXPORT_SYMBOL vmlinux 0x9e46c29c sock_no_mmap +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e672ff6 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL vmlinux 0x9e985eea set_bdi_congested +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea34573 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x9ea35ff7 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x9ecc6a7a interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x9eccaba2 generic_listxattr +EXPORT_SYMBOL vmlinux 0x9ed2c7d9 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x9ed2eec7 param_set_ushort +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9f037b93 pcie_get_mps +EXPORT_SYMBOL vmlinux 0x9f0480a7 scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0x9f2a6548 unlock_page +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f36759d vfs_writev +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f491e5d ftrace_print_symbols_seq_u64 +EXPORT_SYMBOL vmlinux 0x9f4c2103 __test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x9f4dc68c dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x9f619d40 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x9f823cea dispc_mgr_is_enabled +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa37896 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x9fae91c3 udp_add_offload +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fd4c16d set_nlink +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0xa00eb15b ioremap_page +EXPORT_SYMBOL vmlinux 0xa012b923 ipmi_smi_watcher_register +EXPORT_SYMBOL vmlinux 0xa025e5cf d_instantiate_no_diralias +EXPORT_SYMBOL vmlinux 0xa02de97b generic_permission +EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0xa0499737 fb_set_suspend +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa0576437 tegra_ahb_enable_smmu +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa05ceccc dev_remove_pack +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa0844148 sock_alloc_file +EXPORT_SYMBOL vmlinux 0xa084a5f9 ip6_frag_match +EXPORT_SYMBOL vmlinux 0xa091f623 dev_add_offload +EXPORT_SYMBOL vmlinux 0xa0966e4b unregister_shrinker +EXPORT_SYMBOL vmlinux 0xa099272c fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xa09f5d59 irq_to_desc +EXPORT_SYMBOL vmlinux 0xa0aae687 imx_ssi_fiq_end +EXPORT_SYMBOL vmlinux 0xa0ab9fab dev_err +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0bc9578 loop_register_transfer +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d93224 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0xa0dad88e netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL vmlinux 0xa105a8a3 pci_restore_state +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa11e169e scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa127c7d4 backlight_device_register +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa1544f0f skb_checksum +EXPORT_SYMBOL vmlinux 0xa169865a sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xa182420d ac97_bus_type +EXPORT_SYMBOL vmlinux 0xa184c27e bdi_register_dev +EXPORT_SYMBOL vmlinux 0xa1973282 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0xa1acb276 __inet_stream_connect +EXPORT_SYMBOL vmlinux 0xa1b06829 ihold +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1c50724 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1d55e90 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xa1f0ebea bit_waitqueue +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa210cad9 pci_enable_device +EXPORT_SYMBOL vmlinux 0xa22a0ad6 inode_get_bytes +EXPORT_SYMBOL vmlinux 0xa23b0d97 nand_correct_data +EXPORT_SYMBOL vmlinux 0xa24a2c24 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa28552ea ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL vmlinux 0xa29a03ba pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xa2a31321 gen10g_read_status +EXPORT_SYMBOL vmlinux 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL vmlinux 0xa2b20234 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa30490e8 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xa30ffbe9 sock_edemux +EXPORT_SYMBOL vmlinux 0xa3129016 generic_write_checks +EXPORT_SYMBOL vmlinux 0xa31e44ba edma_free_channel +EXPORT_SYMBOL vmlinux 0xa332464a of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35444e4 dispc_write_irqenable +EXPORT_SYMBOL vmlinux 0xa356859c touch_buffer +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa365f146 do_truncate +EXPORT_SYMBOL vmlinux 0xa36b91ac alloc_fddidev +EXPORT_SYMBOL vmlinux 0xa381944f dql_reset +EXPORT_SYMBOL vmlinux 0xa3a299d2 md_write_end +EXPORT_SYMBOL vmlinux 0xa3d971e8 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xa3dee702 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xa3edca64 skb_find_text +EXPORT_SYMBOL vmlinux 0xa3f35bf5 rwsem_is_locked +EXPORT_SYMBOL vmlinux 0xa40ab7d6 ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0xa40ebd48 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0xa40ef6b6 __ip_dev_find +EXPORT_SYMBOL vmlinux 0xa414882d add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xa4297bc6 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xa43b1297 vscnprintf +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa442f5dd padata_stop +EXPORT_SYMBOL vmlinux 0xa447b9c3 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xa452ec0a omap_video_timings_to_videomode +EXPORT_SYMBOL vmlinux 0xa4610bc6 omap_rev +EXPORT_SYMBOL vmlinux 0xa46839bd skb_store_bits +EXPORT_SYMBOL vmlinux 0xa46e9270 arp_tbl +EXPORT_SYMBOL vmlinux 0xa4701e9e timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0xa48f5b09 omap_dma_set_global_params +EXPORT_SYMBOL vmlinux 0xa4a6a4b1 cdev_add +EXPORT_SYMBOL vmlinux 0xa4b42c55 omap_set_dma_priority +EXPORT_SYMBOL vmlinux 0xa4d22612 create_syslog_header +EXPORT_SYMBOL vmlinux 0xa4ebc26e phy_print_status +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa56ad2e7 __brelse +EXPORT_SYMBOL vmlinux 0xa57cdb99 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xa58fea9d mempool_destroy +EXPORT_SYMBOL vmlinux 0xa59003a6 skb_trim +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a633b9 sg_last +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5d3eebf kfree_skb_partial +EXPORT_SYMBOL vmlinux 0xa604dab4 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xa60669b3 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xa609f90c tc6393xb_lcd_set_power +EXPORT_SYMBOL vmlinux 0xa60ecea3 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL vmlinux 0xa61e4362 omap_request_dma +EXPORT_SYMBOL vmlinux 0xa639fd68 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xa63a2f9b param_get_ulong +EXPORT_SYMBOL vmlinux 0xa63b4045 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL vmlinux 0xa650c7c3 pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0xa652c4ef __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xa6715115 do_settimeofday +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa68c18db seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa6a25034 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xa6a72fa3 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0xa6b2417a datagram_poll +EXPORT_SYMBOL vmlinux 0xa6b38185 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xa6bab23d dqstats +EXPORT_SYMBOL vmlinux 0xa6f5742e dcb_getapp +EXPORT_SYMBOL vmlinux 0xa6f9d24d pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xa7063516 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xa734a3e9 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xa735db59 prandom_u32 +EXPORT_SYMBOL vmlinux 0xa73fc98f of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xa760f8bf keyring_search +EXPORT_SYMBOL vmlinux 0xa77a369d idr_init +EXPORT_SYMBOL vmlinux 0xa7962a71 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xa79b0326 path_put +EXPORT_SYMBOL vmlinux 0xa7ce452d bmap +EXPORT_SYMBOL vmlinux 0xa7f0c52a scsi_unregister +EXPORT_SYMBOL vmlinux 0xa808bcb8 vexpress_config_wait +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa82691d1 nf_ct_attach +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa8480296 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xa8721b97 system_state +EXPORT_SYMBOL vmlinux 0xa88d62e0 put_disk +EXPORT_SYMBOL vmlinux 0xa89849f0 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xa89b745c ip_defrag +EXPORT_SYMBOL vmlinux 0xa8a50915 noop_llseek +EXPORT_SYMBOL vmlinux 0xa8a8110c kernel_neon_end +EXPORT_SYMBOL vmlinux 0xa8bcc12d amba_request_regions +EXPORT_SYMBOL vmlinux 0xa8c19022 pci_iomap +EXPORT_SYMBOL vmlinux 0xa8c238ee sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0xa8e700aa elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa9076bd8 cdev_del +EXPORT_SYMBOL vmlinux 0xa91802d0 d_path +EXPORT_SYMBOL vmlinux 0xa957934c mark_page_accessed +EXPORT_SYMBOL vmlinux 0xa964dd13 gpmc_cs_request +EXPORT_SYMBOL vmlinux 0xa97878a0 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xa97e6a49 __lock_page +EXPORT_SYMBOL vmlinux 0xa98e2cdd dst_alloc +EXPORT_SYMBOL vmlinux 0xa9adff1a neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xa9b5ddf5 pci_scan_bus +EXPORT_SYMBOL vmlinux 0xa9b63345 of_parse_phandle_with_fixed_args +EXPORT_SYMBOL vmlinux 0xa9c7a878 vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0xa9effda5 __first_cpu +EXPORT_SYMBOL vmlinux 0xaa12b472 mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0xaa267669 tty_port_hangup +EXPORT_SYMBOL vmlinux 0xaa3288a8 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xaa37a8b7 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xaa5ea169 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa6ae059 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa84bc33 netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0xaa9087c0 param_ops_string +EXPORT_SYMBOL vmlinux 0xaa9aaa25 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0xaaa47bdd scsi_register_interface +EXPORT_SYMBOL vmlinux 0xaaadbf39 ps2_end_command +EXPORT_SYMBOL vmlinux 0xaad08e5b udp6_csum_init +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaada2c5c i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab330163 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab694444 bsearch +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab7603e7 imx_ssi_fiq_start +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xab7e4c4a blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xaba55d42 try_to_release_page +EXPORT_SYMBOL vmlinux 0xabaa8dda __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xabc6dd63 cpufreq_sysfs_create_file +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabfe0729 tty_port_destroy +EXPORT_SYMBOL vmlinux 0xac030e35 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xac036491 blk_get_request +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac18372f dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac390091 dev_base_lock +EXPORT_SYMBOL vmlinux 0xac634f7a xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xac817567 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xac8f37b2 outer_cache +EXPORT_SYMBOL vmlinux 0xac9f01eb pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacc0666e elm_decode_bch_error_page +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xace106de xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xace72139 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0caaef jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xad0e95c9 __d_drop +EXPORT_SYMBOL vmlinux 0xad109903 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xad17d615 mdiobus_free +EXPORT_SYMBOL vmlinux 0xad1f4354 dev_get_nest_level +EXPORT_SYMBOL vmlinux 0xad2fbb8a omapdss_default_get_timings +EXPORT_SYMBOL vmlinux 0xad46dec2 of_count_phandle_with_args +EXPORT_SYMBOL vmlinux 0xad476dd7 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0xad573418 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xad6de7bb page_put_link +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad87b8f2 snd_timer_stop +EXPORT_SYMBOL vmlinux 0xadc46bb7 cdev_init +EXPORT_SYMBOL vmlinux 0xadd5451f __napi_schedule +EXPORT_SYMBOL vmlinux 0xaddf4586 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xaddfe220 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL vmlinux 0xadf06e60 textsearch_prepare +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xadff5715 nf_log_unset +EXPORT_SYMBOL vmlinux 0xae03e36c input_set_abs_params +EXPORT_SYMBOL vmlinux 0xae0a9b18 dentry_path_raw +EXPORT_SYMBOL vmlinux 0xae48a2c3 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xae5ec2db led_blink_set +EXPORT_SYMBOL vmlinux 0xae69e043 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xae729e59 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0xae74d8c2 __find_get_block +EXPORT_SYMBOL vmlinux 0xae795317 snd_pcm_hw_param_first +EXPORT_SYMBOL vmlinux 0xae8e2bb5 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xaeb76ae9 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0xaeb9959a key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaeca5718 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0xaedfdf84 netif_napi_del +EXPORT_SYMBOL vmlinux 0xaee3923a tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xaeea126a vfs_unlink +EXPORT_SYMBOL vmlinux 0xaef79796 input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0xaf05b91b of_device_is_available +EXPORT_SYMBOL vmlinux 0xaf2aa79b i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xaf2d9702 __sock_create +EXPORT_SYMBOL vmlinux 0xaf2e1212 simple_dentry_operations +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf3fa630 phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0xaf50e76d elf_set_personality +EXPORT_SYMBOL vmlinux 0xaf5a7ef0 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL vmlinux 0xaf6c1223 __get_user_pages +EXPORT_SYMBOL vmlinux 0xaf8aa518 system_rev +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf9d3c63 km_query +EXPORT_SYMBOL vmlinux 0xafa4f436 dev_close +EXPORT_SYMBOL vmlinux 0xafad493b param_ops_ushort +EXPORT_SYMBOL vmlinux 0xafaee5a2 phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0xafe95700 tcp_parse_options +EXPORT_SYMBOL vmlinux 0xb004e0cc pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xb010befc snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL vmlinux 0xb02c8b9f unregister_netdev +EXPORT_SYMBOL vmlinux 0xb0428d63 blk_mq_free_queue +EXPORT_SYMBOL vmlinux 0xb045ffd1 ip6_xmit +EXPORT_SYMBOL vmlinux 0xb04cf0fe lg_local_unlock +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb08bcbac cad_pid +EXPORT_SYMBOL vmlinux 0xb0918215 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xb0923b8d scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0b5cde1 should_remove_suid +EXPORT_SYMBOL vmlinux 0xb0b63900 dev_notice +EXPORT_SYMBOL vmlinux 0xb0b7fbcf invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0cad87b mntput +EXPORT_SYMBOL vmlinux 0xb0cd06f2 simple_write_end +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0ffda2f blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xb116a8fc elv_rb_del +EXPORT_SYMBOL vmlinux 0xb11d5d0c blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb12f4703 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xb1304bfe of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0xb1304f10 request_key +EXPORT_SYMBOL vmlinux 0xb158015c proc_set_user +EXPORT_SYMBOL vmlinux 0xb158ddc0 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xb15b6c4c vfs_mkdir +EXPORT_SYMBOL vmlinux 0xb179dc54 genphy_suspend +EXPORT_SYMBOL vmlinux 0xb17a4eff __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb19c8029 phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0xb1b01f95 da903x_query_status +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cf44df fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xb1d9aabd lg_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xb1db9e4e param_get_invbool +EXPORT_SYMBOL vmlinux 0xb1e16731 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xb1e645af pci_enable_msi_range +EXPORT_SYMBOL vmlinux 0xb1f87599 find_or_create_page +EXPORT_SYMBOL vmlinux 0xb212bcf3 sock_no_listen +EXPORT_SYMBOL vmlinux 0xb2434d75 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2897d4b dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xb28e3ce5 tty_devnum +EXPORT_SYMBOL vmlinux 0xb299de46 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL vmlinux 0xb2a6aae6 lro_receive_skb +EXPORT_SYMBOL vmlinux 0xb2b94674 __crc32c_le +EXPORT_SYMBOL vmlinux 0xb2be6e92 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xb2c1fe8e snd_info_create_module_entry +EXPORT_SYMBOL vmlinux 0xb2c36191 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0xb2cf8c63 dcache_readdir +EXPORT_SYMBOL vmlinux 0xb2d48a2e queue_work_on +EXPORT_SYMBOL vmlinux 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL vmlinux 0xb31526ee sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0xb31c5c09 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xb33befd7 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0xb342ac11 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xb34b044e omap_dss_get_next_device +EXPORT_SYMBOL vmlinux 0xb367c984 mxc_set_irq_fiq +EXPORT_SYMBOL vmlinux 0xb3693176 __register_chrdev +EXPORT_SYMBOL vmlinux 0xb3871b14 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0xb39f4d89 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0xb3a12d4d qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xb3aa8c1d cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xb3b6ee7f snd_card_proc_new +EXPORT_SYMBOL vmlinux 0xb3db3a66 dev_change_carrier +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb41af393 nand_bch_init +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb4284bc4 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xb43234f1 pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0xb43e6e47 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0xb458e79e neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xb45c4c10 d_make_root +EXPORT_SYMBOL vmlinux 0xb4687ffd follow_up +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4775f20 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xb497a40e __put_cred +EXPORT_SYMBOL vmlinux 0xb498348e kill_pgrp +EXPORT_SYMBOL vmlinux 0xb4a5cbe5 tty_port_init +EXPORT_SYMBOL vmlinux 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL vmlinux 0xb4c8f38a omap_dma_chain_status +EXPORT_SYMBOL vmlinux 0xb4cc00e3 twl6040_power +EXPORT_SYMBOL vmlinux 0xb4e4d890 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xb4ee9f59 pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0xb4f6229b pci_get_device +EXPORT_SYMBOL vmlinux 0xb50007b5 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xb50ff4a9 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xb5105399 skb_orphan_partial +EXPORT_SYMBOL vmlinux 0xb5113293 sget +EXPORT_SYMBOL vmlinux 0xb5171883 pipe_to_file +EXPORT_SYMBOL vmlinux 0xb5198b77 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xb5344760 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb557df98 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xb57343c2 frontswap_shrink +EXPORT_SYMBOL vmlinux 0xb587fb87 __seq_open_private +EXPORT_SYMBOL vmlinux 0xb5a253c3 snd_timer_start +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5a84055 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5c00014 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5cd1691 vexpress_config_complete +EXPORT_SYMBOL vmlinux 0xb5d9454c printk_emit +EXPORT_SYMBOL vmlinux 0xb629af4e sock_no_accept +EXPORT_SYMBOL vmlinux 0xb6394d4b param_set_bint +EXPORT_SYMBOL vmlinux 0xb6535bcd sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0xb66602f9 bio_endio +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb683a151 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb68b6037 snd_ctl_remove +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6a9b936 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xb6b46a7c param_ops_int +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6fe47da netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xb7004795 blk_get_queue +EXPORT_SYMBOL vmlinux 0xb7150fc6 pagevec_lookup +EXPORT_SYMBOL vmlinux 0xb723e7cc end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xb73b188d ping_prot +EXPORT_SYMBOL vmlinux 0xb73d7e7f generic_setxattr +EXPORT_SYMBOL vmlinux 0xb74b616b gen_pool_dma_alloc +EXPORT_SYMBOL vmlinux 0xb752b9e2 pci_bus_type +EXPORT_SYMBOL vmlinux 0xb77131b1 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xb7a384d7 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xb7ac59a4 phy_stop +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7ba76c7 __aeabi_unwind_cpp_pr2 +EXPORT_SYMBOL vmlinux 0xb7c1ebc8 __blk_run_queue +EXPORT_SYMBOL vmlinux 0xb7d472f0 sock_init_data +EXPORT_SYMBOL vmlinux 0xb7f18789 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xb80f797d con_copy_unimap +EXPORT_SYMBOL vmlinux 0xb81960ca snprintf +EXPORT_SYMBOL vmlinux 0xb822104a snd_ctl_find_id +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb844901e kernel_sendpage +EXPORT_SYMBOL vmlinux 0xb846433a __memcg_kmem_get_cache +EXPORT_SYMBOL vmlinux 0xb84d61fb nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xb8637d77 tcp_release_cb +EXPORT_SYMBOL vmlinux 0xb868e2a1 from_kprojid_munged +EXPORT_SYMBOL vmlinux 0xb874b87a __clzsi2 +EXPORT_SYMBOL vmlinux 0xb89e6075 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8abfd8e netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0xb8c6bc8c vfs_rmdir +EXPORT_SYMBOL vmlinux 0xb8d73e97 param_set_uint +EXPORT_SYMBOL vmlinux 0xb8e877e7 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xb8ec8bbe xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0xb8f0d809 mutex_trylock +EXPORT_SYMBOL vmlinux 0xb8fb7cb0 always_delete_dentry +EXPORT_SYMBOL vmlinux 0xb8fc8ff4 tcp_splice_read +EXPORT_SYMBOL vmlinux 0xb9130b76 seq_write +EXPORT_SYMBOL vmlinux 0xb924f43e kfree_put_link +EXPORT_SYMBOL vmlinux 0xb93c3193 kthread_stop +EXPORT_SYMBOL vmlinux 0xb93fd87f jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xb95557c0 snd_pci_quirk_lookup +EXPORT_SYMBOL vmlinux 0xb95f98d6 _memset_io +EXPORT_SYMBOL vmlinux 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL vmlinux 0xb96966f5 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9a4aecd __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xb9a8f03b omap_stop_dma +EXPORT_SYMBOL vmlinux 0xb9acd3d9 __put_user_2 +EXPORT_SYMBOL vmlinux 0xb9b78c52 genl_unregister_family +EXPORT_SYMBOL vmlinux 0xb9c7231e put_io_context +EXPORT_SYMBOL vmlinux 0xb9e8e2cc in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0xb9edd7b8 scsi_add_device +EXPORT_SYMBOL vmlinux 0xb9fd61a6 md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0xba17308c mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0xba219c32 inode_permission +EXPORT_SYMBOL vmlinux 0xba2c96ad lock_may_read +EXPORT_SYMBOL vmlinux 0xba2cc3a0 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xba3f40fe tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba542bfb vfs_mknod +EXPORT_SYMBOL vmlinux 0xba638086 snd_pcm_set_ops +EXPORT_SYMBOL vmlinux 0xba6a2d0a rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0xba6f4faf __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xba740aa5 fb_blank +EXPORT_SYMBOL vmlinux 0xba7d870a __mxc_cpu_type +EXPORT_SYMBOL vmlinux 0xba817569 __quota_error +EXPORT_SYMBOL vmlinux 0xba83cb18 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL vmlinux 0xba927536 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xba989531 pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0xbadad810 netpoll_rx_disable +EXPORT_SYMBOL vmlinux 0xbaf1ced8 dev_get_stats +EXPORT_SYMBOL vmlinux 0xbafeee36 dispc_runtime_get +EXPORT_SYMBOL vmlinux 0xbb1696a3 lro_receive_frags +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb20fe92 pci_pme_capable +EXPORT_SYMBOL vmlinux 0xbb295e93 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xbb4fcdd8 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb713e6d sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0xbb72d4fe __put_user_1 +EXPORT_SYMBOL vmlinux 0xbb982640 flush_kernel_dcache_page +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbb9dafe2 scsi_target_resume +EXPORT_SYMBOL vmlinux 0xbbab63b9 pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0xbbabd629 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0xbbc5944a tty_unlock_pair +EXPORT_SYMBOL vmlinux 0xbbf1f537 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xbbf9095a crypto_sha256_update +EXPORT_SYMBOL vmlinux 0xbc0b81c6 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xbc10dd97 __put_user_4 +EXPORT_SYMBOL vmlinux 0xbc13ab8d __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xbc342a3f sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xbc3f0e23 proc_remove +EXPORT_SYMBOL vmlinux 0xbc47a86f skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0xbc4a9014 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xbc9d5905 mmc_gpio_free_cd +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcca2443 snd_card_set_id +EXPORT_SYMBOL vmlinux 0xbccddba1 elv_add_request +EXPORT_SYMBOL vmlinux 0xbcdcdcfa textsearch_unregister +EXPORT_SYMBOL vmlinux 0xbcdedba7 of_get_mac_address +EXPORT_SYMBOL vmlinux 0xbce8a632 tcp_proto_cgroup +EXPORT_SYMBOL vmlinux 0xbcefd991 snd_device_register +EXPORT_SYMBOL vmlinux 0xbd0ba7b9 blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0xbd0e8af0 mount_ns +EXPORT_SYMBOL vmlinux 0xbd0ecc9c blk_sync_queue +EXPORT_SYMBOL vmlinux 0xbd280a84 check_disk_size_change +EXPORT_SYMBOL vmlinux 0xbd28c448 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xbd3c8246 mmc_register_driver +EXPORT_SYMBOL vmlinux 0xbd48fe57 kmap_to_page +EXPORT_SYMBOL vmlinux 0xbd52c1a0 kunmap_high +EXPORT_SYMBOL vmlinux 0xbd5f4d46 blk_end_request_all +EXPORT_SYMBOL vmlinux 0xbd642441 tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0xbd83cb9a fddi_type_trans +EXPORT_SYMBOL vmlinux 0xbd96c85a vexpress_config_write +EXPORT_SYMBOL vmlinux 0xbdab462a tcp_connect +EXPORT_SYMBOL vmlinux 0xbdabe30f nonseekable_open +EXPORT_SYMBOL vmlinux 0xbdac1eb7 lockref_get +EXPORT_SYMBOL vmlinux 0xbdacec99 sg_miter_next +EXPORT_SYMBOL vmlinux 0xbdba9828 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0xbdcd097d pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xbddd9aef f_setown +EXPORT_SYMBOL vmlinux 0xbdedb6b2 irq_stat +EXPORT_SYMBOL vmlinux 0xbdefc7a6 amba_driver_unregister +EXPORT_SYMBOL vmlinux 0xbdf2580d __raw_readsl +EXPORT_SYMBOL vmlinux 0xbdf7ff02 dev_trans_start +EXPORT_SYMBOL vmlinux 0xbdff4080 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe1d9f55 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe78d760 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xbe840f1a tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xbe8860a8 dispc_mgr_go_busy +EXPORT_SYMBOL vmlinux 0xbe8c7821 blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0xbe8fb90c dispc_mgr_get_framedone_irq +EXPORT_SYMBOL vmlinux 0xbec25473 of_parse_phandle +EXPORT_SYMBOL vmlinux 0xbec3df71 dev_mc_init +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf1a51b3 devm_free_irq +EXPORT_SYMBOL vmlinux 0xbf1b7169 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xbf4c126e __cleancache_get_page +EXPORT_SYMBOL vmlinux 0xbf75ea6c tegra114_clock_tune_cpu_trimmers_low +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfa6d5ef filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0xbfb6fbc8 sock_no_bind +EXPORT_SYMBOL vmlinux 0xbfcbc0d2 stmp_reset_block +EXPORT_SYMBOL vmlinux 0xbfe318c5 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc0027982 skb_queue_head +EXPORT_SYMBOL vmlinux 0xc0056be5 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xc005e738 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xc00abe37 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xc0129c10 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc0341a64 ipmi_register_smi +EXPORT_SYMBOL vmlinux 0xc03f499f mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc07cddb5 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xc07dcb78 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc09aeacd __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xc0a6a8c5 omap_set_dma_dest_burst_mode +EXPORT_SYMBOL vmlinux 0xc0a98385 profile_pc +EXPORT_SYMBOL vmlinux 0xc0b83d31 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0xc0b976b2 generic_setlease +EXPORT_SYMBOL vmlinux 0xc0bbe2db revert_creds +EXPORT_SYMBOL vmlinux 0xc0cf95f9 omap_vrfb_request_ctx +EXPORT_SYMBOL vmlinux 0xc0d55bea md_error +EXPORT_SYMBOL vmlinux 0xc0edc5ae ptp_clock_index +EXPORT_SYMBOL vmlinux 0xc0fed3a3 sk_common_release +EXPORT_SYMBOL vmlinux 0xc0ff4d26 iget5_locked +EXPORT_SYMBOL vmlinux 0xc12ec3a6 dns_query +EXPORT_SYMBOL vmlinux 0xc132db1e tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xc1407dfd pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xc152638f security_path_chmod +EXPORT_SYMBOL vmlinux 0xc191167d jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xc19180b3 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xc19191f1 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xc1b32a9d snd_dma_alloc_pages +EXPORT_SYMBOL vmlinux 0xc1b82d22 register_shrinker +EXPORT_SYMBOL vmlinux 0xc1bb9e04 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1c81dcc netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0xc1d18d28 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xc1d52af2 locks_init_lock +EXPORT_SYMBOL vmlinux 0xc202b0ad find_get_pages_tag +EXPORT_SYMBOL vmlinux 0xc2081a83 gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0xc2165d85 __arm_iounmap +EXPORT_SYMBOL vmlinux 0xc21e9366 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xc233a943 clk_add_alias +EXPORT_SYMBOL vmlinux 0xc239937b sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xc23f9b52 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0xc24e3227 elv_rb_add +EXPORT_SYMBOL vmlinux 0xc24f702f skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc282ab79 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0xc286c081 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xc2989f42 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xc29b640f unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2d96626 blk_mq_free_single_hw_queue +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f96fc9 tcp_disconnect +EXPORT_SYMBOL vmlinux 0xc2f9c045 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xc2f9eafa udp_sendmsg +EXPORT_SYMBOL vmlinux 0xc2fa1c15 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xc3009933 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xc30199bb tty_port_put +EXPORT_SYMBOL vmlinux 0xc309f045 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xc30d39bb fb_class +EXPORT_SYMBOL vmlinux 0xc310c731 xfrm_register_type +EXPORT_SYMBOL vmlinux 0xc33cd3ad phy_attach_direct +EXPORT_SYMBOL vmlinux 0xc359fb65 abort +EXPORT_SYMBOL vmlinux 0xc38ee893 netdev_lower_dev_get_private_rcu +EXPORT_SYMBOL vmlinux 0xc3b6dfd1 __netlink_dump_start +EXPORT_SYMBOL vmlinux 0xc3b7cb25 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xc3d1fa4d edma_alloc_cont_slots +EXPORT_SYMBOL vmlinux 0xc40e07eb pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xc41015e0 netdev_master_upper_dev_link_private +EXPORT_SYMBOL vmlinux 0xc41f0516 node_states +EXPORT_SYMBOL vmlinux 0xc426a705 pci_set_master +EXPORT_SYMBOL vmlinux 0xc447ced0 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xc4586af6 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49a97a3 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xc4a7ed7e scsi_free_command +EXPORT_SYMBOL vmlinux 0xc4cd99bc posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xc4d4178d secpath_dup +EXPORT_SYMBOL vmlinux 0xc4d9d8d6 blk_mq_can_queue +EXPORT_SYMBOL vmlinux 0xc4e1b133 blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0xc4e45449 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xc4f000f2 inet6_del_offload +EXPORT_SYMBOL vmlinux 0xc52cf990 sk_stop_timer +EXPORT_SYMBOL vmlinux 0xc52da066 omap_set_dma_dest_params +EXPORT_SYMBOL vmlinux 0xc536470f snd_timer_notify +EXPORT_SYMBOL vmlinux 0xc56252ef drop_nlink +EXPORT_SYMBOL vmlinux 0xc5718627 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0xc589e044 param_set_long +EXPORT_SYMBOL vmlinux 0xc5af1572 simple_write_begin +EXPORT_SYMBOL vmlinux 0xc5b40ba5 migrate_page +EXPORT_SYMBOL vmlinux 0xc5d86ae9 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xc5e00f3d submit_bh +EXPORT_SYMBOL vmlinux 0xc5fdef94 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc63c0c3d snd_pcm_suspend +EXPORT_SYMBOL vmlinux 0xc640b1e3 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xc65a7300 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xc665d6d7 of_parse_phandle_with_args +EXPORT_SYMBOL vmlinux 0xc68af0b1 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xc6bb1797 vfs_getattr +EXPORT_SYMBOL vmlinux 0xc6bdeb25 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6ce05c4 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xc6d655a3 xfrm_input +EXPORT_SYMBOL vmlinux 0xc6e565d5 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xc6f0828e ps2_command +EXPORT_SYMBOL vmlinux 0xc7037475 inet_accept +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc725555b of_get_min_tck +EXPORT_SYMBOL vmlinux 0xc74526fb scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xc74593c9 dquot_commit +EXPORT_SYMBOL vmlinux 0xc76d1c2c kern_path_create +EXPORT_SYMBOL vmlinux 0xc778b543 dma_sync_wait +EXPORT_SYMBOL vmlinux 0xc77a0935 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc79eaba4 blk_mq_run_queues +EXPORT_SYMBOL vmlinux 0xc7a2c06e framebuffer_release +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7b50bf3 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xc7bcbc8d add_wait_queue +EXPORT_SYMBOL vmlinux 0xc7d6502e send_sig_info +EXPORT_SYMBOL vmlinux 0xc7db19d8 mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc8276a79 nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xc831b146 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xc8336d77 __skb_gso_segment +EXPORT_SYMBOL vmlinux 0xc8339e24 string_unescape +EXPORT_SYMBOL vmlinux 0xc83b4d5b posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xc8408ae4 snd_info_register +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc8728a7e fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0xc8763288 snd_pcm_period_elapsed +EXPORT_SYMBOL vmlinux 0xc889aaa8 bio_clone_bioset +EXPORT_SYMBOL vmlinux 0xc898e616 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xc8adf476 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xc8af300f xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xc8b29a92 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8db4243 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xc8dcf9c1 cfb_imageblit +EXPORT_SYMBOL vmlinux 0xc8f925db ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xc9007cd1 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xc9052872 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xc93a2f4d edma_free_cont_slots +EXPORT_SYMBOL vmlinux 0xc9574bc8 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0xc9655e45 snd_register_device_for_dev +EXPORT_SYMBOL vmlinux 0xc974696a __scm_send +EXPORT_SYMBOL vmlinux 0xc97e8460 blk_mq_map_queue +EXPORT_SYMBOL vmlinux 0xc9868ebf nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc99dca0b fput +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9a9269e nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xc9b8c220 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xc9b8c308 __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0xc9bbb713 vexpress_config_bridge_register +EXPORT_SYMBOL vmlinux 0xc9e35122 scsi_block_requests +EXPORT_SYMBOL vmlinux 0xc9e99047 writeback_in_progress +EXPORT_SYMBOL vmlinux 0xc9fcb7b5 scsi_get_command +EXPORT_SYMBOL vmlinux 0xca22482e dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0xca36eafa d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0xca423b0d jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca6ce8ba omap_dss_ntsc_timings +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xca948c04 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0xca9ccbcc bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xcab1499e nf_getsockopt +EXPORT_SYMBOL vmlinux 0xcac51dcc abx500_register_ops +EXPORT_SYMBOL vmlinux 0xcaddbd7e edma_set_dest_index +EXPORT_SYMBOL vmlinux 0xcae28cb6 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xcaf15941 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xcafd51c2 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb0c5d50 param_get_uint +EXPORT_SYMBOL vmlinux 0xcb111080 rt6_lookup +EXPORT_SYMBOL vmlinux 0xcb466063 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xcb4bf6fc udp_ioctl +EXPORT_SYMBOL vmlinux 0xcb4faa91 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xcb540d46 netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbe93d84 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xcbfaca7b input_get_keycode +EXPORT_SYMBOL vmlinux 0xcc01c6dd scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xcc06c45d bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xcc1bf68f simple_dir_operations +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc37f55c blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xcc3d0e7d setup_new_exec +EXPORT_SYMBOL vmlinux 0xcc41932d skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xcc4b84da of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc61345a iunique +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc972b0c snd_timer_resolution +EXPORT_SYMBOL vmlinux 0xcc990dc5 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xcc9a707d dqput +EXPORT_SYMBOL vmlinux 0xccb27523 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xccc21f5e input_get_new_minor +EXPORT_SYMBOL vmlinux 0xccd3d4ae dcache_dir_open +EXPORT_SYMBOL vmlinux 0xcce11c8b fb_pan_display +EXPORT_SYMBOL vmlinux 0xcd02957d xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd30b95a tmio_core_mmc_clk_div +EXPORT_SYMBOL vmlinux 0xcd4da37d _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0xcd567bb3 mmc_can_discard +EXPORT_SYMBOL vmlinux 0xcd635134 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0xcd63c845 __aeabi_lasr +EXPORT_SYMBOL vmlinux 0xcd6b3bbe netdev_all_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0xcd7773fa rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xcdb7bb30 bioset_free +EXPORT_SYMBOL vmlinux 0xcdc1f349 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcde60935 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0xcde72477 ptp_clock_event +EXPORT_SYMBOL vmlinux 0xcdfe354d done_path_create +EXPORT_SYMBOL vmlinux 0xce1fd277 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xce250da1 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce2a2b6a security_inode_readlink +EXPORT_SYMBOL vmlinux 0xce2f1f17 clear_inode +EXPORT_SYMBOL vmlinux 0xce3443bd blkdev_put +EXPORT_SYMBOL vmlinux 0xce39b7ca omap_dss_find_output +EXPORT_SYMBOL vmlinux 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL vmlinux 0xce3eaca7 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xce47680e __getblk +EXPORT_SYMBOL vmlinux 0xce4bbdee shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce653f08 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xce6932e5 inet6_getname +EXPORT_SYMBOL vmlinux 0xce6cfb09 blkdev_get +EXPORT_SYMBOL vmlinux 0xce783473 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xced41dd6 snd_pcm_link_rwlock +EXPORT_SYMBOL vmlinux 0xceed7f85 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcef5b351 dst_discard +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf009d60 scsi_register +EXPORT_SYMBOL vmlinux 0xcf01d480 mutex_unlock +EXPORT_SYMBOL vmlinux 0xcf191d7f tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xcf19f882 mmc_can_erase +EXPORT_SYMBOL vmlinux 0xcf1c4155 tegra_powergate_sequence_power_up +EXPORT_SYMBOL vmlinux 0xcf235367 pci_enable_msi_block_auto +EXPORT_SYMBOL vmlinux 0xcf4084ef tcf_hash_search +EXPORT_SYMBOL vmlinux 0xcf46490e bdevname +EXPORT_SYMBOL vmlinux 0xcf88625f mempool_create_node +EXPORT_SYMBOL vmlinux 0xcf90c7c2 security_path_rename +EXPORT_SYMBOL vmlinux 0xcfbc08d5 update_time +EXPORT_SYMBOL vmlinux 0xcfc76556 tty_write_room +EXPORT_SYMBOL vmlinux 0xcff24525 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xcff6b676 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd006b33a km_policy_expired +EXPORT_SYMBOL vmlinux 0xd00cb81f unload_nls +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0379b6b blk_init_tags +EXPORT_SYMBOL vmlinux 0xd046c7e3 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xd0720a17 on_each_cpu_cond +EXPORT_SYMBOL vmlinux 0xd08c1049 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xd093583c page_symlink +EXPORT_SYMBOL vmlinux 0xd09a1ce3 phy_drivers_register +EXPORT_SYMBOL vmlinux 0xd09ada61 simple_transaction_release +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0ba5a37 udp_disconnect +EXPORT_SYMBOL vmlinux 0xd0d144f7 account_page_writeback +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd100acbd _raw_write_lock +EXPORT_SYMBOL vmlinux 0xd1021d2f __inet6_hash +EXPORT_SYMBOL vmlinux 0xd1067ba7 dispc_ovl_enabled +EXPORT_SYMBOL vmlinux 0xd10a2cb1 nand_bch_correct_data +EXPORT_SYMBOL vmlinux 0xd1157735 release_and_free_resource +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd13a92bd md_check_recovery +EXPORT_SYMBOL vmlinux 0xd151d026 unlock_rename +EXPORT_SYMBOL vmlinux 0xd1639627 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xd163a1f5 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xd17879ed pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0xd17b9042 register_md_personality +EXPORT_SYMBOL vmlinux 0xd1816f32 frontswap_writethrough +EXPORT_SYMBOL vmlinux 0xd18d3e7c km_new_mapping +EXPORT_SYMBOL vmlinux 0xd190ba4c pci_assign_resource +EXPORT_SYMBOL vmlinux 0xd196c9be kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xd1b36d7d pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xd1d22d65 snd_pcm_mmap_data +EXPORT_SYMBOL vmlinux 0xd1f7aa29 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xd220cf8a jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0xd22901b3 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xd23a2b5c netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd26292a3 devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd292b594 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0xd2a941d4 sg_init_table +EXPORT_SYMBOL vmlinux 0xd2af138b reservation_ww_class +EXPORT_SYMBOL vmlinux 0xd2d07a79 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xd2d88621 gen10g_config_advert +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2e69bac netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xd2fe9afa __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0xd30ae804 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd329956f soft_cursor +EXPORT_SYMBOL vmlinux 0xd34c65f6 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xd357537f iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xd3584ad5 PDE_DATA +EXPORT_SYMBOL vmlinux 0xd36a02d6 tty_check_change +EXPORT_SYMBOL vmlinux 0xd3989df9 snd_timer_continue +EXPORT_SYMBOL vmlinux 0xd3c32ffa nf_afinfo +EXPORT_SYMBOL vmlinux 0xd3cc0f49 touch_atime +EXPORT_SYMBOL vmlinux 0xd3d3ffe6 vlan_uses_dev +EXPORT_SYMBOL vmlinux 0xd3dbfbc4 _find_first_zero_bit_le +EXPORT_SYMBOL vmlinux 0xd3dcab0b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xd3e6f60d cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xd3e8f908 __get_page_tail +EXPORT_SYMBOL vmlinux 0xd3f75b07 netlink_set_err +EXPORT_SYMBOL vmlinux 0xd4054732 mpage_writepage +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd41c5386 __inode_permission +EXPORT_SYMBOL vmlinux 0xd43f8f36 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0xd441549d mpage_readpage +EXPORT_SYMBOL vmlinux 0xd4669fad complete +EXPORT_SYMBOL vmlinux 0xd4b43f77 snd_pcm_notify +EXPORT_SYMBOL vmlinux 0xd4b542de mmc_erase +EXPORT_SYMBOL vmlinux 0xd4db643f snd_seq_root +EXPORT_SYMBOL vmlinux 0xd501e2cf start_tty +EXPORT_SYMBOL vmlinux 0xd50c91af iget_failed +EXPORT_SYMBOL vmlinux 0xd567e3ae neigh_update +EXPORT_SYMBOL vmlinux 0xd56e9485 omap_set_dma_dest_index +EXPORT_SYMBOL vmlinux 0xd58428c1 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xd58ee5b1 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xd59c691a dquot_free_inode +EXPORT_SYMBOL vmlinux 0xd5a8d92a padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xd5c45b8f ip6_expire_frag_queue +EXPORT_SYMBOL vmlinux 0xd5c5f9ee blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0xd5c5ff75 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd6083e63 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xd6102bc3 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xd61347c6 register_sysctl +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd635c3cc register_framebuffer +EXPORT_SYMBOL vmlinux 0xd648e564 fb_match_mode +EXPORT_SYMBOL vmlinux 0xd663f237 pci_release_regions +EXPORT_SYMBOL vmlinux 0xd666a931 bio_integrity_free +EXPORT_SYMBOL vmlinux 0xd66bb2a4 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0xd66e8129 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xd67b5156 tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd6d03fda write_dirty_buffer +EXPORT_SYMBOL vmlinux 0xd6de013c simple_open +EXPORT_SYMBOL vmlinux 0xd6e216eb kunmap +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd705e612 tty_set_operations +EXPORT_SYMBOL vmlinux 0xd7290597 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xd73ef3a0 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xd74274a0 ndo_dflt_bridge_getlink +EXPORT_SYMBOL vmlinux 0xd74289f9 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd75db372 devm_gpio_request +EXPORT_SYMBOL vmlinux 0xd774e6ea set_groups +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd78025ae gen_pool_create +EXPORT_SYMBOL vmlinux 0xd78d4c1d rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a1c173 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xd7ae2361 vexpress_config_bridge_unregister +EXPORT_SYMBOL vmlinux 0xd7b4599b __idr_get_new_above +EXPORT_SYMBOL vmlinux 0xd7d26e82 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xd7d27e1d dev_crit +EXPORT_SYMBOL vmlinux 0xd7dc8a64 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7e5e80d sock_update_memcg +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd823a4c5 skb_append +EXPORT_SYMBOL vmlinux 0xd85cd67e __wake_up +EXPORT_SYMBOL vmlinux 0xd862c91a blk_start_request +EXPORT_SYMBOL vmlinux 0xd867734e scsi_scan_host +EXPORT_SYMBOL vmlinux 0xd88bdcf8 pci_enable_ido +EXPORT_SYMBOL vmlinux 0xd8a4b14c pci_release_region +EXPORT_SYMBOL vmlinux 0xd8aa8524 mmc_of_parse +EXPORT_SYMBOL vmlinux 0xd8bc7e4e sock_i_uid +EXPORT_SYMBOL vmlinux 0xd8c5f357 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xd8c72cf0 ifla_policy +EXPORT_SYMBOL vmlinux 0xd8ded085 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd91243c4 devm_gpiod_get_index +EXPORT_SYMBOL vmlinux 0xd91502ef filemap_flush +EXPORT_SYMBOL vmlinux 0xd91d9a25 __blk_end_request +EXPORT_SYMBOL vmlinux 0xd924c0e2 __lru_cache_add +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd94f687c ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xd9516992 blk_bio_map_sg +EXPORT_SYMBOL vmlinux 0xd955d2b7 omap_set_dma_dest_data_pack +EXPORT_SYMBOL vmlinux 0xd9752c11 padata_do_parallel +EXPORT_SYMBOL vmlinux 0xd97ba73c make_kprojid +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9a9bb30 getname +EXPORT_SYMBOL vmlinux 0xd9be2cea elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xd9c3afe4 blk_mq_insert_request +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9f20866 bdgrab +EXPORT_SYMBOL vmlinux 0xd9fb472c skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xda0350d3 mmc_gpio_request_cd +EXPORT_SYMBOL vmlinux 0xda223381 inet_ioctl +EXPORT_SYMBOL vmlinux 0xda2478d0 param_ops_short +EXPORT_SYMBOL vmlinux 0xda2a44da input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0xda32361b bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xda3a3c8e blk_free_tags +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda3f52dd security_path_link +EXPORT_SYMBOL vmlinux 0xda59837e write_inode_now +EXPORT_SYMBOL vmlinux 0xda69947c blk_rq_init +EXPORT_SYMBOL vmlinux 0xda784cfd pci_request_regions +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda9fc770 key_put +EXPORT_SYMBOL vmlinux 0xdaa16b82 of_clk_get +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdaacc32e audit_log +EXPORT_SYMBOL vmlinux 0xdaafc807 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0xdababe35 dquot_release +EXPORT_SYMBOL vmlinux 0xdabbf0ca pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xdac2d1fa udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xdad0cebd tcf_em_register +EXPORT_SYMBOL vmlinux 0xdad69a87 elv_rb_find +EXPORT_SYMBOL vmlinux 0xdae721da md_finish_reshape +EXPORT_SYMBOL vmlinux 0xdaf14a4c blk_integrity_register +EXPORT_SYMBOL vmlinux 0xdb1b2edd pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0xdb2b198e tty_lock +EXPORT_SYMBOL vmlinux 0xdb4292e4 omap_set_dma_params +EXPORT_SYMBOL vmlinux 0xdb57d9c1 thaw_bdev +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb6d9cf9 bio_map_user +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb7a8b60 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xdb9294bb nf_log_register +EXPORT_SYMBOL vmlinux 0xdb93b838 dispc_free_irq +EXPORT_SYMBOL vmlinux 0xdba47e2e __scm_destroy +EXPORT_SYMBOL vmlinux 0xdbad8bca backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbd66975 dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0xdbd84d74 kobject_put +EXPORT_SYMBOL vmlinux 0xdbfe72c4 alloc_fcdev +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc27963a of_mdiobus_register +EXPORT_SYMBOL vmlinux 0xdc2c130b inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc46c019 generic_file_remap_pages +EXPORT_SYMBOL vmlinux 0xdc49c8c4 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0xdc4be3fb n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xdc5661da tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0xdc5c0f33 d_find_alias +EXPORT_SYMBOL vmlinux 0xdc61e9f4 blk_start_queue +EXPORT_SYMBOL vmlinux 0xdc942659 pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0xdca5105b ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xdca989b2 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xdcad71de __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xdcade9c5 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xdcb988c0 cfb_copyarea +EXPORT_SYMBOL vmlinux 0xdcc40c03 devm_request_and_ioremap +EXPORT_SYMBOL vmlinux 0xdccda70a snd_pcm_release_substream +EXPORT_SYMBOL vmlinux 0xdccf3ba2 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xdcdee71b kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd1f2b84 pci_remove_bus +EXPORT_SYMBOL vmlinux 0xdd260141 net_dma_find_channel +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd3916ac _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xdd452174 __breadahead +EXPORT_SYMBOL vmlinux 0xdd453da0 __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xdd4b038e dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0xdd888285 ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0xdda9c48e blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xddac9eb4 ip_route_input_noref +EXPORT_SYMBOL vmlinux 0xddd029c9 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xdddc6c66 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xddfc4af6 dma_find_channel +EXPORT_SYMBOL vmlinux 0xde0d11de kobject_add +EXPORT_SYMBOL vmlinux 0xde10eb10 param_set_invbool +EXPORT_SYMBOL vmlinux 0xde15c042 omap_set_dma_src_index +EXPORT_SYMBOL vmlinux 0xde25119d kset_register +EXPORT_SYMBOL vmlinux 0xde339786 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xde501a9d consume_skb +EXPORT_SYMBOL vmlinux 0xde692d94 omap_get_dma_chain_src_pos +EXPORT_SYMBOL vmlinux 0xde8c763d cpu_v7_set_pte_ext +EXPORT_SYMBOL vmlinux 0xde90dc1c inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde99d0d0 ilookup5 +EXPORT_SYMBOL vmlinux 0xde9b7796 pcim_iounmap +EXPORT_SYMBOL vmlinux 0xde9cd3fb blk_peek_request +EXPORT_SYMBOL vmlinux 0xdec84b41 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xdef438b4 udp_proc_register +EXPORT_SYMBOL vmlinux 0xdf0616c1 of_dev_put +EXPORT_SYMBOL vmlinux 0xdf2569de qdisc_destroy +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf401846 idr_remove +EXPORT_SYMBOL vmlinux 0xdf41e62c cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xdf48a0eb flex_array_put +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf626574 snd_cards +EXPORT_SYMBOL vmlinux 0xdf64cd6f may_umount_tree +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf92dd2b mmc_can_reset +EXPORT_SYMBOL vmlinux 0xdfb01a80 cpu_v7_dcache_clean_area +EXPORT_SYMBOL vmlinux 0xdfb805f4 get_phy_device +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfd91ce9 omap_type +EXPORT_SYMBOL vmlinux 0xe0054147 security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0xe014c134 sk_filter +EXPORT_SYMBOL vmlinux 0xe017adf7 of_phy_connect +EXPORT_SYMBOL vmlinux 0xe01b0bac inet_stream_connect +EXPORT_SYMBOL vmlinux 0xe034f921 dev_mc_sync +EXPORT_SYMBOL vmlinux 0xe03d7b5e block_read_full_page +EXPORT_SYMBOL vmlinux 0xe047c02b padata_alloc_possible +EXPORT_SYMBOL vmlinux 0xe04f19f1 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe04fa4c7 vfs_statfs +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe06c8e22 vmap +EXPORT_SYMBOL vmlinux 0xe0734f7f pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0846fc7 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xe0875018 zerocopy_sg_from_iovec +EXPORT_SYMBOL vmlinux 0xe08b83be ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xe08bb061 mem_cgroup_subsys +EXPORT_SYMBOL vmlinux 0xe094ef39 sg_next +EXPORT_SYMBOL vmlinux 0xe0a5d74e skb_copy_expand +EXPORT_SYMBOL vmlinux 0xe0af4a28 uart_register_driver +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0beafbe generic_fillattr +EXPORT_SYMBOL vmlinux 0xe0bef318 icst_hz_to_vco +EXPORT_SYMBOL vmlinux 0xe0f99a2f ida_pre_get +EXPORT_SYMBOL vmlinux 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe119a0fb blk_mq_alloc_reserved_request +EXPORT_SYMBOL vmlinux 0xe11c682a loop_backing_file +EXPORT_SYMBOL vmlinux 0xe127fb18 down_killable +EXPORT_SYMBOL vmlinux 0xe1356296 inet_frag_kill +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1829f82 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xe188a61b i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xe1aa5d74 input_register_handle +EXPORT_SYMBOL vmlinux 0xe1bbf283 input_unregister_device +EXPORT_SYMBOL vmlinux 0xe1e4be66 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xe1f044b5 input_unregister_handler +EXPORT_SYMBOL vmlinux 0xe1f0ab3a _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe215f783 generic_write_end +EXPORT_SYMBOL vmlinux 0xe2254775 frontswap_register_ops +EXPORT_SYMBOL vmlinux 0xe2354753 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xe2399b50 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe245b800 empty_zero_page +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe250937f inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0xe25649df max8998_update_reg +EXPORT_SYMBOL vmlinux 0xe258100e key_validate +EXPORT_SYMBOL vmlinux 0xe2855402 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xe292fb9f gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0xe29e1d0e out_of_line_wait_on_atomic_t +EXPORT_SYMBOL vmlinux 0xe2c0bbf4 unregister_nls +EXPORT_SYMBOL vmlinux 0xe2d43c73 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2dd5afa ppp_dev_name +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2effe14 nf_reinject +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe3032952 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0xe3035084 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0xe356d4c7 napi_gro_frags +EXPORT_SYMBOL vmlinux 0xe35c5285 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xe37d10ae omap_dispc_unregister_isr +EXPORT_SYMBOL vmlinux 0xe37e40a1 bdi_register +EXPORT_SYMBOL vmlinux 0xe39cda7c pci_select_bars +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3e586cf proto_unregister +EXPORT_SYMBOL vmlinux 0xe3eaa98f kernel_read +EXPORT_SYMBOL vmlinux 0xe3fc4a57 vga_tryget +EXPORT_SYMBOL vmlinux 0xe4120a82 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xe4151049 arp_find +EXPORT_SYMBOL vmlinux 0xe43274bc proc_dointvec +EXPORT_SYMBOL vmlinux 0xe4351d7a buffer_migrate_page +EXPORT_SYMBOL vmlinux 0xe47d9aaf pci_disable_msi +EXPORT_SYMBOL vmlinux 0xe4870407 blk_put_request +EXPORT_SYMBOL vmlinux 0xe49a4425 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xe4b0ae76 dev_get_phys_port_id +EXPORT_SYMBOL vmlinux 0xe4c80097 cacheid +EXPORT_SYMBOL vmlinux 0xe4cf051b fb_set_var +EXPORT_SYMBOL vmlinux 0xe4d39a53 block_truncate_page +EXPORT_SYMBOL vmlinux 0xe4edc248 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe5148e5a i2c_clients_command +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe53d1faa of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xe5445af6 omap_get_dma_dst_pos +EXPORT_SYMBOL vmlinux 0xe54bb15d dev_deactivate +EXPORT_SYMBOL vmlinux 0xe558c29f ip_getsockopt +EXPORT_SYMBOL vmlinux 0xe55f9432 phy_connect_direct +EXPORT_SYMBOL vmlinux 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL vmlinux 0xe56ac94e blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe57bbdcd unregister_md_personality +EXPORT_SYMBOL vmlinux 0xe582f13f get_mem_type +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe598aa59 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xe59a5dd1 contig_page_data +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5cc1b96 serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5f0f04a seq_bitmap +EXPORT_SYMBOL vmlinux 0xe604c753 eth_mac_addr +EXPORT_SYMBOL vmlinux 0xe639e428 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0xe64ac574 mmc_free_host +EXPORT_SYMBOL vmlinux 0xe65a791d pagecache_write_end +EXPORT_SYMBOL vmlinux 0xe66452ab dql_init +EXPORT_SYMBOL vmlinux 0xe6744a89 omap_clear_dma +EXPORT_SYMBOL vmlinux 0xe6791ea5 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL vmlinux 0xe6af853b dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0xe6c3ebb0 __raw_writesw +EXPORT_SYMBOL vmlinux 0xe6dc96c5 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe707d823 __aeabi_uidiv +EXPORT_SYMBOL vmlinux 0xe7113f9d jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0xe72d26fc end_page_writeback +EXPORT_SYMBOL vmlinux 0xe746dda7 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xe755555d register_nls +EXPORT_SYMBOL vmlinux 0xe76009ee netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0xe7722171 flex_array_free +EXPORT_SYMBOL vmlinux 0xe7769141 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xe77fb02f dss_mgr_unregister_framedone_handler +EXPORT_SYMBOL vmlinux 0xe78d0383 file_ns_capable +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7b6b801 ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0xe7c7e31e jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xe7d2266f pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7e15910 dispc_clear_irqstatus +EXPORT_SYMBOL vmlinux 0xe7fa80e7 input_grab_device +EXPORT_SYMBOL vmlinux 0xe8288374 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0xe838942b inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xe839ed02 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xe84cab05 phy_find_first +EXPORT_SYMBOL vmlinux 0xe851bb05 queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xe85e8cd6 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0xe8612fa8 tcp_ioctl +EXPORT_SYMBOL vmlinux 0xe873f884 tty_mutex +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe898bfba crc32_le_combine +EXPORT_SYMBOL vmlinux 0xe8b29a95 sync_blockdev +EXPORT_SYMBOL vmlinux 0xe8b53ecc down_write_trylock +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8bd9bff lock_may_write +EXPORT_SYMBOL vmlinux 0xe8bea3bc qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xe8c11581 omap_dss_get_output +EXPORT_SYMBOL vmlinux 0xe8c242e0 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xe8cfce09 tegra114_clock_deassert_dfll_dvco_reset +EXPORT_SYMBOL vmlinux 0xe8d5193a simple_release_fs +EXPORT_SYMBOL vmlinux 0xe8d69620 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xe8fa7e92 pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0xe912da6b unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe918abef genlmsg_put +EXPORT_SYMBOL vmlinux 0xe92dbecd dev_uc_flush +EXPORT_SYMBOL vmlinux 0xe946a5f3 ata_dev_printk +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe966fe88 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL vmlinux 0xe96bb29d bio_add_page +EXPORT_SYMBOL vmlinux 0xe9876019 inode_init_once +EXPORT_SYMBOL vmlinux 0xe9a6dcfe __ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xe9cd1681 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xe9e59be0 omap_dss_get_device +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea16dd4c tcp_destroy_cgroup +EXPORT_SYMBOL vmlinux 0xea472e2f cont_write_begin +EXPORT_SYMBOL vmlinux 0xea4e1334 dquot_drop +EXPORT_SYMBOL vmlinux 0xea6e3003 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xeaad6c7b tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xeaaef3d4 __devm_release_region +EXPORT_SYMBOL vmlinux 0xeadb1ad3 generic_make_request +EXPORT_SYMBOL vmlinux 0xeaf0be8b dev_open +EXPORT_SYMBOL vmlinux 0xeaf1b1b5 page_readlink +EXPORT_SYMBOL vmlinux 0xeaf6a3d3 tty_free_termios +EXPORT_SYMBOL vmlinux 0xeb03188b blk_put_queue +EXPORT_SYMBOL vmlinux 0xeb1b120e omap_set_dma_write_mode +EXPORT_SYMBOL vmlinux 0xeb328585 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb42428b replace_mount_options +EXPORT_SYMBOL vmlinux 0xeb55a931 __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xeb791817 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xeb7c7675 pid_task +EXPORT_SYMBOL vmlinux 0xeb91868e devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0xeb995991 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xeb9b4bc9 dss_mgr_register_framedone_handler +EXPORT_SYMBOL vmlinux 0xeb9dea36 vm_event_states +EXPORT_SYMBOL vmlinux 0xeb9e7cdd ida_destroy +EXPORT_SYMBOL vmlinux 0xebb91309 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0xebcb7d70 truncate_setsize +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebdcbeab sock_no_poll +EXPORT_SYMBOL vmlinux 0xebe51cbd dss_mgr_set_timings +EXPORT_SYMBOL vmlinux 0xebfc0965 seq_release_private +EXPORT_SYMBOL vmlinux 0xebfdcbdf system_serial_high +EXPORT_SYMBOL vmlinux 0xec17ebb0 of_match_node +EXPORT_SYMBOL vmlinux 0xec1aa6ef memzero_explicit +EXPORT_SYMBOL vmlinux 0xec41fb48 netlink_unicast +EXPORT_SYMBOL vmlinux 0xec46c055 from_kgid_munged +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec4e5f9a d_genocide +EXPORT_SYMBOL vmlinux 0xec57ef8e uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xec5e06f2 lease_modify +EXPORT_SYMBOL vmlinux 0xec665aad tcp_prequeue +EXPORT_SYMBOL vmlinux 0xec78fc6e mmc_gpio_request_ro +EXPORT_SYMBOL vmlinux 0xec7c71ce mmc_add_host +EXPORT_SYMBOL vmlinux 0xec84f428 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xeccb1925 sock_wfree +EXPORT_SYMBOL vmlinux 0xecdc9f7c follow_down +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xecfc6e06 rtmsg_ifinfo +EXPORT_SYMBOL vmlinux 0xed2a10e3 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xed2a3094 snd_add_device_sysfs_file +EXPORT_SYMBOL vmlinux 0xed44858d kernel_getsockname +EXPORT_SYMBOL vmlinux 0xed597524 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xed5ab9dd dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0xed854dac omap_stop_dma_chain_transfers +EXPORT_SYMBOL vmlinux 0xed8c70e5 __secpath_destroy +EXPORT_SYMBOL vmlinux 0xed9372d1 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xed9c0a74 truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0xed9f9a20 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xedaf3e19 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedbfa7da get_gendisk +EXPORT_SYMBOL vmlinux 0xedc7f4ec dq_data_lock +EXPORT_SYMBOL vmlinux 0xedd8dc9c pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xedd9106d __ashrdi3 +EXPORT_SYMBOL vmlinux 0xede832c5 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xedf834b4 __break_lease +EXPORT_SYMBOL vmlinux 0xee129d5a mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xee149920 netdev_crit +EXPORT_SYMBOL vmlinux 0xee2bc2d0 omapdss_is_initialized +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee3496c3 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xee3b6257 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xee715ef8 lg_global_unlock +EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder +EXPORT_SYMBOL vmlinux 0xee9ad5ed posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeae3013 __pci_register_driver +EXPORT_SYMBOL vmlinux 0xeed3635b proc_dostring +EXPORT_SYMBOL vmlinux 0xeee333db key_invalidate +EXPORT_SYMBOL vmlinux 0xeeeb8336 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0xeef161aa groups_free +EXPORT_SYMBOL vmlinux 0xeeffa0e5 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xef03e8ef xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xef129064 ppp_channel_index +EXPORT_SYMBOL vmlinux 0xef744dcd simple_transaction_set +EXPORT_SYMBOL vmlinux 0xef7bdcef directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xef9b21a5 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xefa5bf8e padata_do_serial +EXPORT_SYMBOL vmlinux 0xefb66a95 omap_request_dma_chain +EXPORT_SYMBOL vmlinux 0xefbd25a8 phy_driver_register +EXPORT_SYMBOL vmlinux 0xefc21f2d __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xefcc452d omap_dss_find_device +EXPORT_SYMBOL vmlinux 0xefcc6a73 netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0xefcf3143 wait_for_completion_io +EXPORT_SYMBOL vmlinux 0xefd6cf06 __aeabi_unwind_cpp_pr0 +EXPORT_SYMBOL vmlinux 0xefdc01a4 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe7bbab revalidate_disk +EXPORT_SYMBOL vmlinux 0xefe7d8cf qdisc_list_del +EXPORT_SYMBOL vmlinux 0xefec312f omap_get_dma_active_status +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf000fccc kmem_cache_free +EXPORT_SYMBOL vmlinux 0xf01e86bc alloc_file +EXPORT_SYMBOL vmlinux 0xf03ce33e tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xf05ffa15 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xf0619801 timekeeping_clocktai +EXPORT_SYMBOL vmlinux 0xf087137d __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0xf0951407 icmpv6_send +EXPORT_SYMBOL vmlinux 0xf09de776 get_random_int +EXPORT_SYMBOL vmlinux 0xf0c516fc generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xf0d4dd54 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xf0d68ed6 clk_register_clkdevs +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf1030d8e jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xf108431a tc_classify +EXPORT_SYMBOL vmlinux 0xf119ac98 bio_reset +EXPORT_SYMBOL vmlinux 0xf13feb57 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0xf142519e __destroy_inode +EXPORT_SYMBOL vmlinux 0xf147b582 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xf147dcb2 hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0xf154eb7e uart_get_divisor +EXPORT_SYMBOL vmlinux 0xf1580bae inode_needs_sync +EXPORT_SYMBOL vmlinux 0xf17aab80 kdb_current_task +EXPORT_SYMBOL vmlinux 0xf1806da9 idr_find_slowpath +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19e9355 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xf1a7e160 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0xf1d7fc34 __kfree_skb +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e0b260 edma_set_transfer_params +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1eab1ab scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf203a469 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xf208356e scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf234ff3f thermal_cdev_update +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL vmlinux 0xf273c6e0 blk_requeue_request +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf29c866f inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xf2a0af8f backlight_device_registered +EXPORT_SYMBOL vmlinux 0xf2b1ac8e __getnstimeofday +EXPORT_SYMBOL vmlinux 0xf2bbb380 unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0xf2cd01ab phy_connect +EXPORT_SYMBOL vmlinux 0xf2cde557 input_event +EXPORT_SYMBOL vmlinux 0xf2d41bc0 mmc_gpio_free_ro +EXPORT_SYMBOL vmlinux 0xf2e68aa7 free_task +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf370b2ee tc_classify_compat +EXPORT_SYMBOL vmlinux 0xf376aeca tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL vmlinux 0xf383962f locks_remove_posix +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf3a0f269 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xf3a4cd1e devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0xf3b3c64c mmc_put_card +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3bf94ef starget_for_each_device +EXPORT_SYMBOL vmlinux 0xf40019c0 tegra114_clock_tune_cpu_trimmers_init +EXPORT_SYMBOL vmlinux 0xf40b2297 __crypto_memneq +EXPORT_SYMBOL vmlinux 0xf4125410 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xf4311a30 tty_lock_pair +EXPORT_SYMBOL vmlinux 0xf46a44ad blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xf4737dea input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0xf473ffaf down +EXPORT_SYMBOL vmlinux 0xf478bd0e led_blink_set_oneshot +EXPORT_SYMBOL vmlinux 0xf491ffb3 netdev_alert +EXPORT_SYMBOL vmlinux 0xf49445d8 tty_vhangup +EXPORT_SYMBOL vmlinux 0xf497c305 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xf4a7fc6d omapdss_compat_init +EXPORT_SYMBOL vmlinux 0xf4bdbeb9 __frontswap_invalidate_area +EXPORT_SYMBOL vmlinux 0xf4bf5048 dev_warn +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f2d392 inet_recvmsg +EXPORT_SYMBOL vmlinux 0xf4f71fc3 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xf5199876 sock_create +EXPORT_SYMBOL vmlinux 0xf5324eae neigh_destroy +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf54c51a2 dma_pool_free +EXPORT_SYMBOL vmlinux 0xf54da398 mfd_add_devices +EXPORT_SYMBOL vmlinux 0xf564412a __aeabi_ulcmp +EXPORT_SYMBOL vmlinux 0xf56f70d4 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xf57c2be4 bio_copy_data +EXPORT_SYMBOL vmlinux 0xf599d58a dev_set_group +EXPORT_SYMBOL vmlinux 0xf5a4ac7b __bforget +EXPORT_SYMBOL vmlinux 0xf5ba8f4e ata_print_version +EXPORT_SYMBOL vmlinux 0xf5bb01dd dquot_scan_active +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5f17988 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0xf60dd1c0 dev_uc_sync +EXPORT_SYMBOL vmlinux 0xf61c310d snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL vmlinux 0xf62b9ab6 dentry_unhash +EXPORT_SYMBOL vmlinux 0xf6309ae5 seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf6528fcf bprm_change_interp +EXPORT_SYMBOL vmlinux 0xf66ea2c2 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xf671f4ee sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf682a598 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xf6851d5f register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xf6b5073c netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6cb07a4 amba_find_device +EXPORT_SYMBOL vmlinux 0xf6d689b4 omapdss_default_get_resolution +EXPORT_SYMBOL vmlinux 0xf6e69ed4 inet_add_offload +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6efe165 blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0xf6f3cef6 omap_vrfb_setup +EXPORT_SYMBOL vmlinux 0xf6f6a9fd vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0xf7271948 edma_set_src_index +EXPORT_SYMBOL vmlinux 0xf72b28fb mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0xf7340757 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf75a131a ftrace_raw_output_prep +EXPORT_SYMBOL vmlinux 0xf7802486 __aeabi_uidivmod +EXPORT_SYMBOL vmlinux 0xf7b12aee __next_cpu +EXPORT_SYMBOL vmlinux 0xf7c80f24 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0xf7e48303 snd_pcm_hw_rule_add +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf80dbc31 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xf80e3d52 skb_push +EXPORT_SYMBOL vmlinux 0xf80fdd17 mnt_unpin +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf81db056 xfrm_garbage_collect +EXPORT_SYMBOL vmlinux 0xf820c28a do_map_probe +EXPORT_SYMBOL vmlinux 0xf825a244 scm_detach_fds +EXPORT_SYMBOL vmlinux 0xf827cb83 free_reserved_area +EXPORT_SYMBOL vmlinux 0xf829c1b8 skb_split +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82df9ea bio_map_kern +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf84a7917 ipmi_smi_add_proc_entry +EXPORT_SYMBOL vmlinux 0xf853bbca omap_vrfb_map_angle +EXPORT_SYMBOL vmlinux 0xf864b61c snd_timer_close +EXPORT_SYMBOL vmlinux 0xf87f2862 dev_uc_add +EXPORT_SYMBOL vmlinux 0xf896a946 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xf8a52f05 skb_free_datagram +EXPORT_SYMBOL vmlinux 0xf8b4e69b pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xf8c43fa7 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xf8d589af security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xf8faf7ed bio_copy_user +EXPORT_SYMBOL vmlinux 0xf8fbb4f0 __bad_xchg +EXPORT_SYMBOL vmlinux 0xf90f7cc6 pci_dev_put +EXPORT_SYMBOL vmlinux 0xf92d1d91 netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf935049b omapdss_unregister_display +EXPORT_SYMBOL vmlinux 0xf9427374 dispc_request_irq +EXPORT_SYMBOL vmlinux 0xf9783768 __netif_schedule +EXPORT_SYMBOL vmlinux 0xf99117db dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xf99ed4ee sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9b9f377 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xf9c367e0 iov_pages +EXPORT_SYMBOL vmlinux 0xf9e73082 scnprintf +EXPORT_SYMBOL vmlinux 0xf9f94202 kill_anon_super +EXPORT_SYMBOL vmlinux 0xf9ffe33e simple_pin_fs +EXPORT_SYMBOL vmlinux 0xfa16bc8b sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xfa200d55 skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0xfa5884b9 dm_unregister_target +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa72ee3c input_register_device +EXPORT_SYMBOL vmlinux 0xfa7f3156 wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0xfa815249 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0xfa97dc2f clocksource_register +EXPORT_SYMBOL vmlinux 0xfa9d68b5 vga_get +EXPORT_SYMBOL vmlinux 0xfaa877ce napi_complete +EXPORT_SYMBOL vmlinux 0xfac33ce6 __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0xfac4c4b0 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xfac68eba arm_elf_read_implies_exec +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfacd2e14 pgprot_user +EXPORT_SYMBOL vmlinux 0xfad9c6ad skb_queue_purge +EXPORT_SYMBOL vmlinux 0xfae67b1f cap_mmap_addr +EXPORT_SYMBOL vmlinux 0xfaeb66c0 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfaf9995e sleep_on +EXPORT_SYMBOL vmlinux 0xfb0814a8 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xfb2ec074 simple_lookup +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb745f50 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0xfb74e2ab skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xfb7d9c45 __udivsi3 +EXPORT_SYMBOL vmlinux 0xfb7f33fd d_set_d_op +EXPORT_SYMBOL vmlinux 0xfb94103e __clzdi2 +EXPORT_SYMBOL vmlinux 0xfb961d14 __arm_ioremap +EXPORT_SYMBOL vmlinux 0xfb9681a1 omapdss_default_get_recommended_bpp +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc0d348e request_firmware +EXPORT_SYMBOL vmlinux 0xfc2ff66d account_page_dirtied +EXPORT_SYMBOL vmlinux 0xfc3449ba __frontswap_store +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3da730 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xfc65459a kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xfca1bda4 set_device_ro +EXPORT_SYMBOL vmlinux 0xfca33f90 netpoll_rx_enable +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfccdb1e2 of_device_register +EXPORT_SYMBOL vmlinux 0xfcce0095 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xfce77393 max8998_read_reg +EXPORT_SYMBOL vmlinux 0xfce7d0d8 input_free_device +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd305341 walk_stackframe +EXPORT_SYMBOL vmlinux 0xfd5683b9 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd7b0d76 scsi_init_io +EXPORT_SYMBOL vmlinux 0xfd8b85c9 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xfd94c783 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xfd99623a ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfdba8375 alloc_anon_inode +EXPORT_SYMBOL vmlinux 0xfdd4dc3f dquot_quota_off +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe055d3a remap_pfn_range +EXPORT_SYMBOL vmlinux 0xfe0ad9df abort_creds +EXPORT_SYMBOL vmlinux 0xfe141c97 seq_open_private +EXPORT_SYMBOL vmlinux 0xfe3b986c fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xfe40bf95 dss_feat_get_num_ovls +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe82e608 mdiobus_write +EXPORT_SYMBOL vmlinux 0xfea051f7 phy_device_create +EXPORT_SYMBOL vmlinux 0xfea7ed0e seq_lseek +EXPORT_SYMBOL vmlinux 0xfebee5a8 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xfecacfc0 xfrm_state_update +EXPORT_SYMBOL vmlinux 0xfed8e890 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfee52765 inet_sendpage +EXPORT_SYMBOL vmlinux 0xfeec25e1 dev_uc_init +EXPORT_SYMBOL vmlinux 0xfeee3c8f get_fs_type +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xfefb6077 edma_alloc_channel +EXPORT_SYMBOL vmlinux 0xff064fee gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0xff06853a dma_pool_create +EXPORT_SYMBOL vmlinux 0xff18ec31 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0xff1aa56e napi_gro_flush +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff1fb9c3 dump_emit +EXPORT_SYMBOL vmlinux 0xff254af1 netif_rx_ni +EXPORT_SYMBOL vmlinux 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL vmlinux 0xff67b37f __lshrdi3 +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff74a05b skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0xff8aee33 sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffb94ef0 _test_and_change_bit +EXPORT_SYMBOL vmlinux 0xffcc2b22 scsi_register_driver +EXPORT_SYMBOL vmlinux 0xffd2cf99 omap_dss_get_num_overlay_managers +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffdb82bc sg_free_table +EXPORT_SYMBOL vmlinux 0xffde2fda pcim_iomap_regions_request_all +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x3620bfd3 ablk_exit +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x403ff9a5 ablk_set_key +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x64f5f837 ablk_init_common +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x8e90b6f6 ablk_encrypt +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x91143d78 ablk_init +EXPORT_SYMBOL_GPL crypto/ablk_helper 0xbe129502 __ablk_encrypt +EXPORT_SYMBOL_GPL crypto/ablk_helper 0xe95ededf ablk_decrypt +EXPORT_SYMBOL_GPL crypto/af_alg 0x451ee67d af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x73e3fec1 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x8c6b93ff af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x93957c0c af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xb276b782 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xbdfc6f68 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xd954ef95 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0xe4de80b1 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0xedf7ff90 af_alg_release +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xd73c2cbf async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x133e334c async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x691ac726 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xbabe5997 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xcccd9811 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x12c1a7e6 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xabb60e75 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xc4bd0316 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xdc79533f async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x0d31aeda async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xe2a76b4d async_xor_val +EXPORT_SYMBOL_GPL crypto/authenc 0x587ef278 crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x11769065 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x27278ca9 __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x394b4554 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x4a2a3ca6 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x08b47b70 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1291971c __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1e2c961f __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x8f04034a __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast_common 0x08aa6fb7 cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x0c5fbf8a cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xe39dd4b4 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0xee83a4f3 cast_s4 +EXPORT_SYMBOL_GPL crypto/cryptd 0x053ee6a5 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x0e6e0449 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x887b1cd3 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x9ce4cce8 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xa440e6f1 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xca939e6d cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xd49993e6 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xe0e7ce89 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xec67e28a cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xfe61e4d5 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/lrw 0x3864eb66 lrw_free_table +EXPORT_SYMBOL_GPL crypto/lrw 0x3ffb8e70 lrw_crypt +EXPORT_SYMBOL_GPL crypto/lrw 0xcd074900 lrw_init_table +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x328dee01 serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x5ddb33e9 __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x77b39cb4 __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x8a1a99ad __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/twofish_common 0x5dfa7c67 twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x6c3229bb __twofish_setkey +EXPORT_SYMBOL_GPL crypto/xts 0x7f6d86a7 xts_crypt +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x6b3f8180 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x0087f692 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x0811e933 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x16506981 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1a1fcf4d bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1da1e606 bcma_find_core +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1ee6d970 bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x279bf5f9 bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x2b16c784 bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x372b42af bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x42f6e5d1 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x43f9ef97 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6c5f00c8 bcma_core_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x98aa2914 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa74aa944 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb1eae548 bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb5959f31 bcma_core_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb65d8ee4 bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xcf767d9d bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xdfba24ba bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf10e2c5f bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf2023e32 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf2a76b44 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf6e20506 bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x1a462a6d btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3685cb65 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x63258884 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x727a6355 btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8fd0cbd5 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x956573d3 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9d643ee5 btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa27dd5bc btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe303c4e1 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xed5f1fdd btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/cpufreq/arm_big_little 0x46a614b0 bL_cpufreq_unregister +EXPORT_SYMBOL_GPL drivers/cpufreq/arm_big_little 0x9e2f3ac7 bL_cpufreq_register +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x84497a85 dw_dma_suspend +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x886300ea dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x8aede8f6 dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xad000200 dw_dma_shutdown +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xe9d88ccf dw_dma_resume +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x23209286 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3397b50c edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x55d154d8 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x66043d6b edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8ea944eb find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x94476c7f edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x991b8bf9 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9a509af8 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9fbdf9dc edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa8debc85 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb0433572 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb0ef761f edac_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb7614b7d edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbef151eb edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbf492a17 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc3432ce7 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc921198d edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcea8b6cc edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd1d2e03f edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xdb51fa7a edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe4323f31 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xef6f1592 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf1b4ba1d edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xf4ade51f fw_card_release +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x0d933f40 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xb0b613a3 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x011ec0c4 drm_vm_open_locked +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x028390eb drm_gem_cma_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x0cc98c76 drm_gem_cma_dumb_map_offset +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x15b15e74 drm_gem_cma_prime_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x49cc2efd drm_gem_cma_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x86da5f8e of_get_drm_display_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x86f01dfa drm_gem_cma_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x9335da71 drm_gem_cma_prime_vunmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x9d175c01 drm_display_mode_from_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xa062ee6b drm_gem_cma_free_object +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xafb6fbb6 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xb7e0dc39 drm_gem_cma_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xe5247b78 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xefd19ccb drm_gem_cma_prime_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xf74298fb drm_gem_cma_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xfa621a74 drm_gem_cma_describe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xff9a24af drm_gem_cma_prime_vmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x1148b623 drm_fbdev_cma_fini +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x254237e2 drm_fbdev_cma_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x4266963c drm_fb_cma_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x5cbf53d6 drm_fb_cma_debugfs_show +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x819b68e2 drm_fb_cma_get_gem_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xb2c912af drm_fbdev_cma_hotplug_event +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xcc337fd5 drm_fbdev_cma_restore_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x2d448d96 ttm_dma_unpopulate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x2f95db7d ttm_dma_populate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x6adf436b ttm_prime_fd_to_handle +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xc52f7f13 ttm_dma_page_alloc_debugfs +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xce36343e ttm_prime_handle_to_fd +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x10e1cfc9 hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1f29e1c2 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x23db8601 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x266aebf6 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x27e7917d hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x42e895f7 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x43d137a7 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4906a967 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x502c91ed hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5128c5cb hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5ce9ebb2 hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5cea483f hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7db00986 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8036ed58 hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0x930be7d3 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x946ec7bc hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9555f135 hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9761d119 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x97993f75 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9a6fae6e hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa182afeb hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xab9da691 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb8c3c084 hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb8dd934a hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc09bf71c hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc6348f18 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcc73023e hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd1af4af0 hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd5d416ed hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd72f8212 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd8e99825 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xddb3395c hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe3fdbd64 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xeabb1bf6 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf62195b4 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xa45715fd roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x1aeb434c roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x612e31b9 roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x8e872113 roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xa3b5b0b5 roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xcc5dfa18 roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xd432e0fe roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x0ac594c1 sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x114b8d79 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x23e4db38 sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x304b6465 sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x62a06268 sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x82f89234 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x95bfc1bf sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xee799ff5 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xa9662f50 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x0a6795a2 hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x39785655 hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x3c01ed96 hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x476ceb77 hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x59280281 hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x6ac4d87b hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x6f9c7d3f hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x799114b3 hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7f2541f8 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x8284f9e3 hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xaf51401b hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xb0f0e7dc hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xbf02ba55 hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x22e0489a adt7x10_remove +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x86db1519 adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0xf1559a28 adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x12797f9f pmbus_get_driver_info +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x39dbfc65 pmbus_read_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x4ba5c522 pmbus_clear_cache +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x4ce0c5c7 pmbus_set_page +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x5ddbf37f pmbus_do_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x62892921 pmbus_check_byte_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x833271be pmbus_clear_faults +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x996df7c0 pmbus_check_word_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xafe08d0d pmbus_read_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xdf674f4d pmbus_do_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xe7e92d57 pmbus_write_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xff7c937f pmbus_write_byte +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x118a7051 i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x462b582a i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x62bb8881 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x6b6d5325 i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x6e6a0f78 i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xb9f6f6bf i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xda2d75bd i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xdea9d9c0 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xf9a15dbb i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x5e94365a i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x64873498 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x0b2c5d7a i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x2ee4100a i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x2860a5b2 ad_sd_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x2ae4ed8b ad_sd_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x2e671570 ad_sd_validate_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x787aa829 ad_sd_init +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x8f283644 ad_sd_read_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x9435de04 ad_sd_set_comm +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xa12ca8c7 ad_sd_write_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xa8e349b8 ad_sd_calibrate_all +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xaa57cd1b ad_sigma_delta_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x045c40d5 adis_reset +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x071abfa3 adis_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x27a97371 adis_read_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x30e69fe9 adis_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x68d251da adis_initial_startup +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x699aad92 adis_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x70b10237 adis_update_scan_mode +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x89bcef66 adis_write_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xa9a75e50 adis_probe_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xaaf13ebe adis_remove_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xbf26fe1a adis_check_status +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xc661d4be adis_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0133b49f iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x050db85e iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x18d70085 devm_iio_device_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1e76d0f3 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x267c0508 iio_channel_release_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x281ebe07 iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a1fab3c iio_channel_stop_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2afcb228 iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3315dfd6 iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3a59ca63 iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3c6a75cb iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x51cefabe iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x589200c4 iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x68056c53 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x68f844fc devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6dcdcacb iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x768bc223 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7a711aef iio_channel_start_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x87d93bc8 devm_iio_trigger_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x949da1df iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xac85a1b1 iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xaeb7f150 iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xbd9cc630 iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc0ed2689 iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc48c0e55 devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc9bb71b1 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd22977a0 iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd3b87caf iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd8871df1 iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xdabb8f0e iio_update_demux +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe276483d iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe2bb97f3 iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf78d360d iio_enum_read +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x82638c0e input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0x89a2ec2b matrix_keypad_parse_of_params +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x2c18d650 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x3dd39aef cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xb6751faf cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xc1d4ba17 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x115f4dec cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x2cbf890c cyttsp_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xf5b1ae44 cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x1d5220da cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x20764cf0 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2196d30b wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x26547768 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x61688749 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9ad936b7 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa0152e74 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa37857b4 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa3bf6fe0 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xabba37a1 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xdad7ef2c wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xeafe77f6 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xeedd8ac2 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf7406aac wm9705_codec +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x28e687df ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x5c574a94 ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x720d0e9f ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xaf957529 ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xb2ff1eb6 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xba9068e0 ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xc6987735 ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xf2e3e89c ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xf3e4ee60 ipack_driver_register +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x23359aff unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xce1414b2 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1a14d83c gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2b7852bf gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x32cda48c gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x39b2c2c4 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3e939996 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x464fd616 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4b49e209 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x557e63d3 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x71a5afbc gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7c548fdd gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8ce6a045 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x90e7192a gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa9a19b2a gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd759182d gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdfd0f863 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xec304ca5 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf0620057 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x09511e44 lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x33078de6 lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x534777ca lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x6f224ba1 lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x91d01dbc lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xb9c5c709 lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xcc8e1874 lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xd51a7ecb lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xda3462be lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xdc5dec15 lp55xx_unregister_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xe0ac6dad lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x749e05f2 ledtrig_flash_ctrl +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x7903e46e ledtrig_torch_ctrl +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x10e06e97 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x155ea9c7 __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1822fd23 __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1f2ba9ac __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x260d47cf __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x27831e89 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2dec45e0 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x347aebe1 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x41c861f0 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x49856e5a __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x50e8c39f __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x574ba881 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x628eb712 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6770a402 __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x785cfc9f __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7b488fb1 __tracepoint_bcache_alloc_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x91f2af34 __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa09069a3 __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa591c5d6 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa6890b59 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xaf60c34b __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb950d2ae __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbd4b89b6 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce0e6218 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd40fba32 __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdc5ea5a5 __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf58ce244 __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf5bcbdc7 __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfc1d5275 __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfcdf28c9 __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xffc308e4 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x11469f2c dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x195269ee dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6e6dd506 dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x8b7c6a8c dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb6d5c65d dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb70b342a dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb76b3b15 dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xbadad1de dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xcea53f22 dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xebd06eaf dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x22163b69 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x25028864 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x3909d3a8 dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x594952bd dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x62a23587 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x74dcd98c dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7c381a76 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9b2b253a dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xdc69e37a dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe004ee92 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe6024e59 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xebcc64a4 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xeca7949e dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x46d72017 dm_cache_policy_get_name +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x64b9ac3a dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xa423c476 dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xacfbc702 dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xba177e66 dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xc4114d46 dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xe81103d5 dm_cache_policy_get_version +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x04fd76d1 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x8ee620c1 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x01d2f9ac dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x09472122 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x214cae11 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3902eab3 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x5a686c06 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fc8992e dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x8cc08bc1 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa8813ad6 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb6287762 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc66ce277 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcab63c3d dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf37a3cfe dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x01445176 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11eab9fe dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x150c85ce dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1cac81ac dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2025e954 dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2e730a21 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f40da68 dm_bm_set_read_write +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f74609d dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x32b5f546 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x33c03da6 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x38c75c44 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5e6aea80 dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x619701dc dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x62c1b9ee dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x688d422d dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x68fae9d2 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7ade1071 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7b047bd9 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x832bf228 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x858c8d94 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x89f1e1cc dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x966a8838 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9b4b5b29 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9e798e22 dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa0bbbb49 dm_bitset_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa0f1f32e dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa13861b4 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa2507774 dm_tm_shadow_block +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa87c5b4d dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xaee02382 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbcfdc290 dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbd50ebbb dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbe0497aa dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca40abd5 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd041d62b dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe44b4b9b dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xead1e727 dm_bm_write_lock_zero +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xed1e1f96 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf475af48 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/raid1 0x38bfd028 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid10 0x2b874a9e md_raid10_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0xf1514c91 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x0863826a saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x0a2b1d75 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x1a918631 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x272f2163 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x3469748c saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x460c299c saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x5e2f25e2 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xca9c6314 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xd0f6581b saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xd7a041c3 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x01b70aee saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x1b796795 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x2d782573 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x7a72ecbe saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x80b7b34a saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xe00e20b5 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xe8534e15 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x0d19e07d smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x1702dc01 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x1fb5a543 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x230e28a0 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x27a5b342 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x32ac8a7b smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x53a79107 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x54068d67 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x57f8f84d sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x63222b29 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x72086b67 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x91cb6af7 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x97ce66f2 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x983e8e9c sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9c2225ed smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xcbaa0c13 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xce164f8f smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xd00e3792 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xe47fa855 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0x41429160 cx24117_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0x21ebe7c9 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0xb6608905 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x0edd989b mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x1609252a mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x2152bcc2 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x2a30373a mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x34e49bef mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x8a0f6065 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xbbb48a98 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xbe7fd37c mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xbeb01606 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xbf358ab2 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xc828da30 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xcca9da1a mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xcd2c46ae mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xdf4baeff mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xec1a4f65 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xed6c4ac1 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xf372b7d7 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x110e1c94 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x5b57b9c8 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x8f2527ab saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x9cdcce87 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xd6804c8c saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x01edc6c0 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x3cb9b55f ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x5c96d2f9 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x84ce24fd ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xb60887b8 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xc9291c9a ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xe6968ff3 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/platform/omap/omap-vout 0x090b7ab2 omap_vout_default_crop +EXPORT_SYMBOL_GPL drivers/media/platform/omap/omap-vout 0x3f08714d omap_vout_try_window +EXPORT_SYMBOL_GPL drivers/media/platform/omap/omap-vout 0x87006df4 omap_vout_new_window +EXPORT_SYMBOL_GPL drivers/media/platform/omap/omap-vout 0xd5aa61c6 omap_vout_new_format +EXPORT_SYMBOL_GPL drivers/media/platform/omap/omap-vout 0xe168e379 omap_vout_new_crop +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x029947f6 radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xf46cd21a radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0c109bb0 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x234b970f rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x413bc863 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4cf5cf67 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4f6471c9 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x5af15436 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x88c29ad4 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x8e041d5a rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x97f82da5 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9d376238 rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb0519fcf rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb0bcefaf rc_close +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb14dd6a3 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbeac26d9 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc27b141d rc_open +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc3dd4285 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc8694d1a ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xcb58c9a3 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfba78c5f rc_free_device +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0xfe5ba0d8 mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0xae1afd09 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0x6b0a11a7 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0xa193535c r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0xe20ba08c tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0x2b754b19 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x2af785c0 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x4ae525e3 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0xdf7af9dc tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x08e0d878 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0xd15a5206 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x5562edf6 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0xb94c51bd tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x0f56bf87 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x29f115dc cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x4a3c8985 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x4b38b6a1 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x53a1fed1 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5715eae2 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x6700c6d8 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x78988308 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x8d034e3e cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x90982868 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x95da3cc6 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x9f3ae372 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xa452cddb cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xae9c5ec2 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xc0267115 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xcbaa8f31 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xcbbc6388 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xccf590f3 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xf372a385 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xfb42524d cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x4679f530 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0xd51257fe mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x1eb464da em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x214abb03 em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x2fe270ff em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x501163b7 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7d303ec5 em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x80a23b42 em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x9f1d6952 em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xa62f0e83 em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xa707fbfe em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xbb837eb5 em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xbe9166ff em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xdacd25b5 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xe453bae5 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xe490e5b2 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x0179d683 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x1152a59d tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x33ebdbe7 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x5522594f tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x01c483a9 v4l2_get_timestamp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x0af8e73c v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x4dcda05a v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x9465628d v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x9dbc8b4a v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xb55f248c v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xbe479ecc v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x08982d59 v4l2_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x221d2fbc v4l2_enum_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x36e8756a v4l2_find_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x4103badb v4l2_print_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x53105839 v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6976cfe0 v4l2_valid_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6f344bb9 v4l2_calc_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7eaf8e7a v4l2_detect_gtf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0xb0891da2 v4l2_dv_timings_presets +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x9dbfd652 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xcef46e1e v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xd7a34bcf v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xda7a9e3b v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x03f5f688 v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x17eb0eee v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x20258411 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x34d58961 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x36d6c7a4 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x4fd8d55f v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x578bf3c3 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x5ff26a65 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x639740f7 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7419e099 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb1022860 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xcd9e261e v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xd6d5209b v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe8f81f24 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe9ca048a v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x0f931f26 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x11d7b3e6 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x36fbf979 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x3e52c49c videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x3ed72438 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7afc2cd7 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x862b3f53 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x86751f55 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x8a2657dc videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x8f59e833 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x916daa7c videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x9a34ab03 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x9ac5cef6 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xad8008d9 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xadd4b2b2 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xaeddde0b videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xb107ef36 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xb78137f5 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xb8153cd9 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xb96f7cb1 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc40bdc56 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd04cd493 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xec1a876a videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf684c6c5 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x820d8689 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x9da11fdd videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xf3b7ab27 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x1846f567 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x229a4514 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x299fd803 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x4c3915b7 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x895a1e66 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x93c6a811 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x9ae5068a videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xb991e168 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xe60451b5 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x673ae78d videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xc1dc55a7 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xf8e34c2b videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x0072a939 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x0ae7b2e0 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x160964c4 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1b64b551 vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1b761450 vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x21b2bd97 vb2_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2d2372f8 vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x3b8d8655 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4dd2a74d vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x63bd98cd vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x6aa0751c vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7332ea52 vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7a7c1705 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x93fbd691 vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa6b673f7 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xaa5e3308 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xad4f7d4c vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xaeb7793e vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb4f969a8 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb8ea7995 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xbe11ed76 vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xc28cd0a5 vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xc42e81ad vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xca8270ba vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xcb2b9cce vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xcb3bb0f4 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd285a1a3 vb2_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd3e0085b vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd8d49b36 vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe4055e95 vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe679a2c9 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe69e266d vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xeb671f17 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf1d853d8 vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x18c8ffc2 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x786b24b3 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-sg 0x9ed15ce3 vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x2b2e7350 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x3d113a16 vb2_get_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x581098b2 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xe2a533e5 vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-vmalloc 0x404018a3 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00c24ae3 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x11c00eb1 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x218a48be v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3254ed55 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3b4099c7 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3df99e7e v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x47813794 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x50e7bddd v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x696950a8 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6f3546de v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7ea48a72 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8088da7b v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x83d63a32 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x86ec8526 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x945bba48 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa1031743 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa230a7c9 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb65e6fc4 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xbc997849 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc7df7cec v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe881b987 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf7200436 v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xfac26dc0 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x062b6b9e i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x19772b74 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x402c9d82 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x62464e40 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x83cbb1ac i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x850a8365 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa523b6a1 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xdcb8ed96 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x2ba55114 pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xb8b31052 pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xc0d05a65 pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x147d3ffd kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x15b94ce0 kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x176e2ab0 kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x9ab3476f kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x9b3847a6 kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xcdafc7d4 kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xf205562f kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xfbc9fb1d kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x78a22db9 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xc45de78d lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xdf463f7a lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x0aa51173 lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x0fc2cda0 lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x63c1296e lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x8dd737f0 lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xaa21a1f9 lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xce2ce011 lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xe815a3ad lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x04302249 mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x163fd721 mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x448a6969 mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x90f07e45 mc13xxx_common_cleanup +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xa7002b5c mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xca72b91e mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x40d3c934 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x5ed679c3 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x77a0bedd pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7865ff54 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa016b040 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa30604b4 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xac541340 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc30fa61d pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf54c9826 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf5ab88d5 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xfa3d561d pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x86ed571e pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xab99cec4 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x4b5bbaa1 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x868ea63a pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xa4275ad6 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xba963c6a pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xe421b468 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x01a33234 retu_write +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x4fca3918 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x07d0faab rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x0e3ced10 rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x0faa28e4 rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x1ee8ee97 rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x3a5ab7ba rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x40c0b55b rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x4ae3b51f rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x52e715f2 rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x66b8ec68 rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x677aef88 rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x7a8fb6e6 rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x831e1613 rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x89579f84 rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x94155dca rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x948ae298 rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xa6cc3274 rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xb0390bbd rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xc0b199ce rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xd470a321 rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xf994258c rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xfc76d2a0 rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x01022ad1 si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0d935a37 si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1012542a si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2d08963b si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3266e6af si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x33e1e38b devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3422aa7d si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3b9b02cb si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4170caa5 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4ad93356 si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4c20311e si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7cdb3dea si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7da08308 si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8dead6de si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9163980a si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9cd1f115 si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9e0f4f54 si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa3c9a6ca si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa5f634cb si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xac68e6bc si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb7c2e9ba si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb9417528 si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xbd4b469c si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xbe2c4c23 si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xbef1c920 si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc0a33a02 si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xcbd80a6d si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd25f72c3 si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xdc852e3c si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xea5f5679 si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xecd58045 si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xed4436fb si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf078099a si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf119f25f si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x34a9239e sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x56b3ddb8 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xc236a83b sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xcca45e5d sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf665a335 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x196ecf5a am335x_tsc_se_update +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0xa9e044f7 am335x_tsc_se_set +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0xafd5b149 am335x_tsc_se_clr +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x31eeb774 tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xd1f82936 tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xea985544 tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xf93bf30a tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x4362dc66 twl4030_get_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x9effbf1a twl4030_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x0f406f90 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x3bcd0590 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x3e6d4888 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x5f5d23f9 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xbdeaa78f cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x27cb133b eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63 eeprom_93cx6_wren +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x822222db eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x98bb5a22 eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x08f73a52 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x4d228309 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x55db3c27 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x67b4fec8 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x754f034d enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xc21e674d enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xf7f18769 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x1e331506 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x3797cf90 lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x379beb4f lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x4117bea2 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xbccd7b38 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xbda9c978 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xfa53752d lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xfae7e54e lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xacaabdcd st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xc486babd st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0xd8eb8b7c dw_mci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0xe978deb0 dw_mci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0xf93c7801 dw_mci_pltfm_remove +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x6b04b401 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x961a9197 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xa933b47f cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x41f37ab1 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xb20ab537 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xcc58fee7 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x184965e4 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x4f884981 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x805d4e99 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xcd952b09 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xd8a4c01a sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xa653ab8a onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xbe5cf9b4 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x03c500dd ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0cbef515 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2d482f1f ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x697307e2 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7a2b0669 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7e0f4823 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa7c2cf5f ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa880c6c7 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb456b9b4 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb8cfc0e5 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xcd464c36 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd76afffd ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xddd2f357 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x0ae2562a c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x5dca4c16 c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x7c029896 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x95788dc2 alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xa40560b1 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xd53ec906 register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x131d6d73 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x222c295a can_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x23a0d84f can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x316b8e6b can_led_event +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x32b45ea5 devm_can_led_init +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5c714266 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6221733c alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x791cfbad open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7eb366f8 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x82b3ef1c unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8bd609a8 safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9fb35909 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa602d935 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xab48ce89 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb076f6d5 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb346573b can_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xdc4b1b55 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x47dc58dc alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x639ccb7d register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xe3630891 free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xe9b0f539 unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x4a66b354 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x7933e4c3 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xbac01c41 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xefb401c7 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x01be4fad macb_mii_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x32e4ab69 macb_ethtool_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x68501afa macb_get_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x7e4466f9 macb_set_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xa2ae8ffd macb_ioctl +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xd499c8d0 macb_get_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xf33a183a macb_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x02ccd972 mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0638562b mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0668dc95 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0b8af6f8 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f220bf6 mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x10011bbd mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x120f0493 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13ea293c mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x141c6bf6 mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x14515f91 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x15ed2ffd mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x16bb9dab mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x19991b1b mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1df20d32 mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f57259f mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1fbc38f5 mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2132d478 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x27dab2e7 mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2880931a __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2896088a mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b328e97 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2dc57677 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2e2568f6 mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3093a75d mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x323ece8e mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x32704b20 mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3408cbfd mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x34973f14 mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3783e0ad mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a9fb8f2 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3b8a5d3b mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3c83d07a mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3cc02798 mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3fb19fff mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3fcda61f mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x43d7b852 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x44551ead mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x45c5db51 mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b0960e6 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4dbc0d4e mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x514887d4 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5445d1c8 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5568ed40 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x59822a8b mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f4c68f6 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x61c742d1 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x67e1d51e mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6ba66281 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6eaaf6a9 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x71243ffa mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x74280b3e mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78c8d91e mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7a4f0390 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7ab7acc4 mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e9035e6 __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8eac7cec mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x961ccfa5 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9786f00a mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x988e2ee6 mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9891b61f mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa08c0205 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa224e34b mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa332ef2f mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa339e846 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa4f20442 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa760c08c mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaf84b78b mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaf8c19f5 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb0361333 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb042ae0c mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb7382cb2 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb773664f mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb97e8e1d mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba3bafb1 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd8c6293 mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc47c12aa mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4ef305f mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc70782f6 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc812d576 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc886aa3d mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcbd94d2f mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce534d64 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce5f8dda mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcf37c63a mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd048720d mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd1992c81 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd7c97a59 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xde26342a __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe4310f85 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe647ee6e mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6917a00 mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe8495b4c mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xebd7a6de mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xecbd4ffc mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeda50897 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee0d069c mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf0e0253e mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf4082414 mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf43b3b6c mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd453b1c mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfe51d2ce mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfed230f3 mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x20056e74 mlx5_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2b46ce19 mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x30469935 mlx5_core_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53b3bdff mlx5_core_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6fb84b27 mlx5_destroy_unmap_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7c577b13 mlx5_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87134bdf mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8ecd5f8b mlx5_core_create_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9711d70f mlx5_core_xrcd_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d9bda94 mlx5_fill_page_array +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc3ce177b mlx5_core_destroy_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe492b25e mlx5_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf2c5b070 mlx5_core_mad_ifc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf717f73b mlx5_core_eq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf94e748a mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf9c94ef1 mlx5_create_map_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff3396ad mlx5_core_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x20cfc373 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x6f98012c macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xa985d8ba macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xda28e356 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xde2c8f67 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvtap 0xc7a846ab macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x46df12b0 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xc11e182c usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xe6818852 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xf90fcd67 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x4a58b6ad cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x8ed0a487 cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xb384df72 cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xc979e1e9 cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xcc65da15 cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xda92cfc2 cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xe452ce29 cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xeb012ddb cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x4288651b rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5a074c67 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xaeae456c rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb7e6cd52 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xdc216de1 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xfc726be7 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0429969c usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x067a6027 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x09cbb8ae usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x132d2076 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1702b678 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1f622706 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2743d71a usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2da45255 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3ca8ec40 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3ebf77af usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x58365b0e usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6132ff53 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6721498f usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x733c120a usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x742a2091 usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x94a598aa usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaa78090d usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb6230b6e usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc24b0238 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc8aa09b8 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc94edfe4 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcb091169 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd2694389 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd45b1265 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd48cb010 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdcd8b7ba usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdeb16895 usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe7725b2a usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe7b19f2e usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe946ea3b usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xecd5d1f5 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xeeba0f14 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x67e71e97 vxlan_xmit_skb +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x7de84487 vxlan_sock_add +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xaea10565 vxlan_src_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xd058c469 vxlan_sock_release +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xe26a3f39 vxlan_get_rx_port +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x29cedcea i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4b592e44 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5db76f2d i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6e64811f i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x79a51adc i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x82098976 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x891a3cb5 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa9d8806d i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb37b8720 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc8936a88 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd2eeee10 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdc5c3003 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe0dbf3ef i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfb675eb3 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfc01beb7 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xff17cb58 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x4d6a6fb1 cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x8af64b29 cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xb4670b89 cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xb92b3d0b cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x57dc495b libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x37795922 il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x473f46e2 il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x619d5ef4 il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xdbb7b60f _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xe0f0e02c il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x0b3422ba iwl_opmode_register +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x194202ee iwl_notification_wait_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x35033c81 iwl_phy_db_free +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x39e3ff08 iwl_parse_nvm_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3f0b9a6d iwl_remove_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x403464ab iwl_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5a10d898 iwl_abort_notification_waits +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5b949126 iwl_clear_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5c52e109 iwl_opmode_deregister +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5d0a212e iwlwifi_mod_params +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x63a17c5e iwl_poll_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x776221bf iwl_send_phy_db_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8c5d5ab3 iwl_phy_db_set_section +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x92e64568 iwl_wait_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa1d6e2d7 __iwl_info +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa351469c iwl_write_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa4347b34 iwl_parse_eeprom_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa7117177 iwl_set_bits_mask_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xad1070f5 __iwl_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xb0028ae9 iwl_write_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xc76f059d iwl_set_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xc8494372 iwl_nvm_check_version +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xc9102f92 __iwl_crit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xcc4b31ec __iwl_warn +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xcde2e4fc iwl_poll_direct_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xd5b353ae iwl_read_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xd78a8ded iwl_read_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xe037c7cf iwl_phy_db_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xe11f9eaa iwl_notification_wait_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xe16f5497 __iwl_err +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xf5032a20 iwl_init_notification_wait +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x27007942 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2e02f332 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3db0d272 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x41b6e185 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x71c58d26 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7ad31b59 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x81c6aa31 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8a038774 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x95889f94 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb4db465d lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbcf0cfe9 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xcd7cbf6a lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd189db9f lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd7cb9700 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xee396d76 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf47785b7 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0f5e373e lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x12145203 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x54d5a951 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x556b9b6e lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x8d8aa8b9 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x93806060 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb94b6575 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xe3d2b3d7 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x638c129f if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xd6d5b0b2 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x153811d3 mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x1a0b8c95 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x2a26f8f9 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x31a792dc mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x3c5c0f78 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x45f2ad21 mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x478e5474 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x479a1d09 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x54075e15 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x7d9d2f83 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x7fa2a080 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x9453b2cb mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xbd327c9f mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xebc2adde mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x18258d5e p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x34eaa0ad p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3efa3c10 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x506b38a0 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x56a3004e p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa957142a p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb37ecaa9 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xbcaa7b99 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc02221fa p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0132370e rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1e77222d rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x22df283c rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x26f31623 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x274a8898 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2f4c4702 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x32da2b25 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3333216a rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3f9bc581 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x49e70e52 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4f2dbdce rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x53ecf06f rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x593d521e rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x63eb5ec8 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6805adda rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6d913619 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x75062583 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7d47329a rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x827cd01e rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x854bebaa rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x893f56fe rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9b00f41d rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa2d7b33e rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaee30cb0 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbc84d2d2 rt2800_rt2x00debug +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbf4934a1 rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbf7696a3 rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc2082a69 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc86a6dbd rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc990beed rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcfa09090 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcfc7adc9 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd32bfa76 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdd2fc166 rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe05fa28e rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xecb917c4 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf2b6da8b rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfa510c10 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfbc2e8a0 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x0e3eacf1 rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x0e4c7dce rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x0fad1430 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x183da6c3 rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x2505789d rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x33f7cc1d rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x4abad505 rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5819c71d rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x713b5f81 rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x790412cb rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x92c0bcd1 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x947870ff rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xa2758d93 rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xbb736a5e rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc6a1455e rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xdb032970 rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xe28f94c7 rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xf591c2de rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0035afaa rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0283c5b8 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x051f6e90 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1072e9be rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x14853b99 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x21a37653 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2cc9dcae rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3019b93e rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3631831b rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x39fa8431 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3a217870 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3d8ec93e rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3f63fc12 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x416d983b rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4677fbde rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x570572c8 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x576ca508 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5c1999f4 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5d17ede2 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6f7dbeb0 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7433e68c rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x787e61ce rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7eefec32 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x86a304ab rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x874cb24e rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8f73775e rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x92d87ed0 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x94e844f4 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9a5ef1e3 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9dce18cc rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9e1d1309 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa06247d4 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa0861453 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa568277f rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb3e0a752 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb788b466 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb99af9bd rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc281e766 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc51d1d91 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc5293fcd rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcaefade0 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd7fc342d rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd9f9ff7d rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe407e22d rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe89aa39a rt2x00debug_dump_frame +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xefaa4d6d rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf79bd660 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x2c8518c2 rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x2f66507c rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x5a73853c rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x7732912e rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x85136f86 rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x0eecd6fc rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3c4a919a rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x71e8bf55 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x90b0dd52 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0ba728eb rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0c134198 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x21ef7ef3 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2569f7b8 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2fee3d1d rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x50b4e39b rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x75ce86ba rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x767183c5 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8722e1b3 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa50544c0 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb7135af0 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xca0626cc rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd3f68f36 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xda856a9f rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf59b404b rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfea5f220 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0551b091 dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6439cad3 rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x95ff2639 dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe0f832ad dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x07945b99 rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x1758781e rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x19a8879f rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x320a822d rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x35f83e7c rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x3d7f1c66 rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x3f498206 rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x429f2d34 rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x4d8a8030 rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x4f5e105c rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x5ab1aa4e rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x643a2607 rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6b8d27ad rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6e24a4b8 rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6fee3a6c rtl8723_phy_set_sw_chnl_cmdarray +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x72f7b9d6 rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x8d03f98a rtl8723_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x996f4c0d rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xaeffbd26 rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xaf4d6d94 rtl8723_phy_calculate_bit_shift +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xb34e6ded rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xc659ff17 rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd213c3c0 rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd7fb5be2 rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xda6e4665 rtl8723_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xe931c9a0 rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xead8b554 rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xeafc5307 rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xee307e80 rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x039c7711 read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x1208a425 rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x19dd98ac rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x241dedc1 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x2a62133e rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x2d882d91 rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x3a6c9b23 rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x410136be rtl_attribute_group +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x4651a496 rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x487a2f34 rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x5f1c439f rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x714abd76 rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x756ac4c1 rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x8f4ca306 rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x9be7f181 rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xc7b14ff2 rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xcb79298f rtl_dbgp_flag_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xe39b26f4 rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf2e971ff rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf8ff6add rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x43f2abf8 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x76b6cc48 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xdf810b6c wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0017d156 wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x05294fba wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x09dec25a wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1d885cba wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1fef256d wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x200bac74 wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x27a90582 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x296bbf46 wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x30cc384c wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x33273c4a wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x475dc8c9 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x48477193 wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x520d91c6 wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5608c37e wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5ac11a58 wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5bfe8578 wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5cd38405 wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5d50cbf3 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x67affaef wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x71b5b627 wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x741e3db5 wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7e3f9cef wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x80c01b6f wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8a9696d2 wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8b34c746 wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8dda87e7 wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x98d59086 wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa0657316 wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa6b343f6 wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xaf42ce02 wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb4dee30a wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xba22f17f wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xbac4b04e wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc6fc22a9 wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc7688334 wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xcafb682a wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe0260c1a wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe214d417 wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xec5d219a wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf075b529 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf16a84f0 wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf7840599 wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x59fb8eb0 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x805bcee9 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xcdddce39 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x0c3af14d mc13xxx_parse_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x4072e3c7 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x8c0f939a mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xe4f1a8d3 mc13xxx_get_num_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xe7603120 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x44fb0cf5 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x54776a7a wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x57ea1ec2 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x697e7dfb wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8f1a5a15 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xd6ea83cb wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x01a89a4f wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x08c72383 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x14a1fc23 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x15bd8b1c cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1d236ac2 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2263e1da cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x271fa747 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2dc78f57 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3044d3e0 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x373055e8 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x40759ce3 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x42bab840 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4de8e10f cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x530bc6dd cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x64b3699d cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x665a72ed cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x708894d9 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x720d9dfa cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x73b3e4d0 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x79590b29 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x79f4c605 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7faa2787 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9b7b32d6 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa1398d67 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa2feb337 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa353b74f cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa937fd0f cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb487b71c cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbe6a54c4 cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc381a020 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc49fec93 cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc6c8464f cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc8fbe65b cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc9f7d3c5 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcc20f5f5 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd0305969 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd894c3a5 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xde4f0697 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe2a91f16 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe78aeb72 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe7a8277d cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe9c52e02 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xee627fe9 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xefd42b75 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfe853e76 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x04161e9f scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x34164579 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x7349c394 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x83aa723a scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xaf96bf01 scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xc06f8228 scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xc234ae17 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x030d0528 fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0d7187be fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x236576f9 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7ec5bfb3 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x829212e3 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa1652d98 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xb5a09677 fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc0f8b3b3 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc60c82b6 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc9443d8d fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xcafd6a9f fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd7553321 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xdcb921ca fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xdce4ad63 fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf5551045 fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xffac7b82 fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x1f12a175 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x2bc63241 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x69dd7d05 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa345a89c iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xb9c01250 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xf094c22e iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x032ac894 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1020479f iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x10856738 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x10d3ff6a iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1385d037 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x19e61b5a iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x20357157 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2172100b iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x26361298 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x28660ac9 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x307a0916 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e58ca7e iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x40710574 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x472739ed iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4e894200 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x56724fe6 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x59d3331a iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5a37220b iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x62508286 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6309e21a iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x66908b8b iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x723cbbc3 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7359f226 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x758c1764 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x79850eb4 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7bc620df iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x85a79e88 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8f5e9728 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8f644563 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x96023bfd iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x99c32a52 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x99ce19b8 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9b36e4b5 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa9d287eb iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb23e6eed iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb3b42208 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb7fd1d17 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc41b9cdc iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdbce1a9c iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe35fa3f1 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe9065358 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeef8fb06 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf29dd5c8 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfedd004e iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x04233ee8 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x09b5e82f iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x10502412 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x405444b3 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x459ea084 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4f5048eb iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5506d0f6 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5be37b78 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6153d3a3 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x62ed82e7 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x69e0070f iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6ace8a3c iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x91c585f5 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x94782f81 iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbe187ab7 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfd14f19e iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xff705e81 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x07a8cf55 sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x136eb0fd sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x208aa77b sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2a177d0a sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x37517224 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4066b1bd sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4d8413f8 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5525bdbc sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x69a8a4b2 sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6b89efb6 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8397f0ef sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8c7ab1a0 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8fb80383 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x914ef481 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa4255e07 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa9a06d0e sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb1ec7221 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb30d78b8 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc0de5b4c sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc2b832ae sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcad22079 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcec4af27 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd553117c sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf03658ae sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfbc7fac0 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x35236988 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x5ff85ccc srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x6a551af7 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x95abc3ed srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa34ad6ca srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf153db96 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1c333741 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3ac847f0 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x42a973f0 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4311b74a scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x94826c91 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb7861ce3 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xcb108e91 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd797bf50 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf9b10c5f scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00763eef iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0eed9232 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1c48dba6 iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x22b942ae iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x27c6f221 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x331c0c2c iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x33f3b5a2 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3e872b89 iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4229a7d0 iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4e24fefe iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5538bef7 iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x59aae5c4 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5a0f069a iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5cc03f23 iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x634ca784 iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x700579f6 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x78d17ae5 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x84538908 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8bf9b64e iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8d08df87 iscsi_is_flashnode_conn_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa8d269e2 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa97c9b85 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaa18d136 iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb7af3a91 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb8882497 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb9b874de iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbd290af7 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbdfb7874 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc03b18a3 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc97c676b iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xccce5d10 iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd9b2148a iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xddf8c2fc iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe3189ff9 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe67541c8 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf72a2e6c iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf7aaafc7 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfbebe421 iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfd11b854 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xff20660f iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x09aaae5b sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x19d7c422 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x1b59978f sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x6aedfb22 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x273c2ce4 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x2be2decf srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x68e8b55b srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x7a17cfb4 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xe0e7409a srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xee891cc0 srp_tmo_valid +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x55db9377 ufshcd_init +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x73305afb ufshcd_remove +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x88c6885d ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xcd88ec78 ufshcd_resume +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xcfa4ca04 ufshcd_suspend +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xdecb097f ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x22892955 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x381c5f7a spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xc1ff3538 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xc7000457 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xcf27810a spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x1676ce65 dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x2c1a6ab6 dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x4f47b162 dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xb1cec4eb dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xf16b337d dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0xd5c1c4aa ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x00d8a42e comedi_buf_get +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x07546212 comedi_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x07db7dc2 comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x07ff7309 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x125d2ff7 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1a2ca332 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1d631b17 comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1fb20fb3 comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x20cd2736 comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2994fa2f comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2c7f3588 comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x31c562fb comedi_event +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x33f52564 comedi_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x36e9cc4f comedi_error +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3e66af8d comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x49325b68 comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x57054cad comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5766e590 comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x585fee88 comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5d5b7dbb comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x62da4343 comedi_buf_memcpy_to +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6f31cfca comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6ff30193 comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x75e8da8d comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x825a1c18 comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8754ed92 comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x88204ca0 comedi_dev_from_minor +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa3d8fc97 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xad4ec7eb __comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb330e94b comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb79fcc2c comedi_buf_memcpy_from +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb8249449 comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc6a44092 comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc8da0b27 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd7ec48db comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xde0116c0 comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdf2e5453 comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe21ff6e9 comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe6c399c0 comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xebe0e748 comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xee6c9a37 comedi_buf_put +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x6499e4d4 subdev_8255_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0xb262e86c subdev_8255_init_irq +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0xf1459a2c subdev_8255_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x5c5afdba addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x31fd69e3 amplc_dio200_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x65638dd8 amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xfab53528 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x172e3fb0 cfc_read_array_from_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x87bbaf86 cfc_handle_events +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0xc2a40c06 cfc_write_array_to_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xc9eb0018 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x0b250e7c mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x0b25dd15 mite_get_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x1695997a mite_done +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x1a0ff7af mite_bytes_read_from_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x1b89e7d3 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x507f273b mite_setup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x5e362227 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x5fb0325b mite_bytes_read_from_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x674672d0 mite_free_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x6bf43bf5 mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x745d4ce4 mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x7c3111ed mite_prep_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x89f264de mite_release_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x902700c2 mite_unsetup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x92a874bc mite_dma_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc2136536 mite_sync_input_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc65af136 mite_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xcad95889 mite_dma_tcr +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xe1d77c7a mite_buf_change +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xe612dd58 mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xf212e143 mite_setup2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xf52a6d25 mite_sync_output_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xdd4f26f7 labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x055d16e9 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x5e8899c9 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x6698245d ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xa91a8d05 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xac63e3b3 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xd42db4a5 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xfcb65bbe ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xfd9b5293 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x30c101d1 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x5b3c557a ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x6dd5cef9 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x93c8fb4f ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x9e34f8a7 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xe609a3d2 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x33b72707 comedi_open +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x3efb31ec comedi_dio_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x552c34f5 comedi_close +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x829e4fe1 comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x9fdc3735 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xd4b6dcfd comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xed66dc63 comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x05280bd1 dwc2_hcd_remove +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x2206b003 dwc2_handle_common_intr +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x5d23547d dwc2_hcd_init +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xb05a818c dwc2_set_all_params +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x1a1b5249 oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2feda75b oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x3227a28e oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x7dc9dddd oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xb2c66001 oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xc8b5a524 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xd370f679 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x97dff4a1 adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/nvec/nvec 0x0b00aaad nvec_register_notifier +EXPORT_SYMBOL_GPL drivers/staging/nvec/nvec 0x15f25915 nvec_unregister_notifier +EXPORT_SYMBOL_GPL drivers/staging/nvec/nvec 0x83d2a4b3 nvec_msg_free +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0xbd5a0e51 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14611dd1 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x1b76a677 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x86442336 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8dc4f19d spk_serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8fdbe255 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x988cdc38 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x99b3468a spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xad0962f3 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb14e51c2 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb2978dbc speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbd4bd8eb synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd1b551a2 spk_get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd8db2bad spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x1824c958 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x41773bd1 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x514c081b dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x634c1e8e usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x714674dc usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x7356d96b usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8cc129b4 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x96666137 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x9bbafcb6 usbip_recv +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xc61f4b65 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd418d298 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe5b867fb usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xf2a2769e usbip_event_happened +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/uio/uio 0x36a7ac9d uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x75498d9d __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xde9bc388 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x1cdeb2e4 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xdfc9a5d2 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0140c4cd config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x063d3f48 usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0b2d0c7f usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x11ac56fa usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1e51f489 usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1e74d91e usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1ef7b403 usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x21cc1e72 usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2604e8b3 usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x474b2173 usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x492cb21a usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x638b238b usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x639c11ae usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x6a9304c8 usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x714dae45 usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x76c7f8c4 usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x94d7075a usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xae081b88 usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xae293189 usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb212b47f usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd66ae62c usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd790a2eb usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd82970ef usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xdd3999d7 usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xdf8ac18d usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe8c9009b usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf00b5897 usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf759a567 usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x450e1fb7 gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xa064fc2f gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xc475f5cc gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xcb91c331 gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x0a5230df fsg_common_set_nluns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x141fce2a fsg_common_remove_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x1ccb58f7 fsg_common_set_num_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x2d10b6a7 fsg_common_create_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x4f5453d1 fsg_common_remove_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x51707c29 fsg_common_run_thread +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x6acb4179 fsg_common_set_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x7e26d4a5 fsg_common_set_sysfs +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x808b3c96 fsg_common_set_cdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x99023bfc fsg_common_put +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9a0221c7 fsg_common_free_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9dc025a5 fsg_common_free_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xa46e6443 fsg_common_get +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd3ae3b65 fsg_common_create_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd468f882 fsg_common_set_ops +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xe4d1591e fsg_config_from_params +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0xcc8609db ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0xcf63f893 ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x02f30750 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x1011ae45 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5ddcbf03 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x93cfedd9 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb4e38729 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb73a1d71 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xcce96ed2 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd407275f usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xdbba3eee usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/musb/omap2430 0x6fb55e1f omap_musb_mailbox +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-am335x-control 0xf1ca06a0 am335x_get_phy_control +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0x8bc7c344 isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x52c51d4f samsung_usbphy_cfg_sel +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x6f88076d samsung_usbphy_parse_dt +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x7ff803d5 samsung_usbphy_rate_to_clksel_64xx +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x871a4fc0 samsung_usbphy_set_isolation_4210 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xc1eb9ef8 samsung_usbphy_set_type +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xcf919356 samsung_usbphy_get_refclk_freq +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xe25ccf12 samsung_usbphy_rate_to_clksel_4x12 +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0x7519a785 usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1afb1a51 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x25b9e97f usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x25c0f7c7 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x490143e6 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5a343f7a usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x600a75eb usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7a9d9e26 usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x84bfc7b7 usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8f67fbda usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x96b3d917 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa5cf99af usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa64f57ff usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbd74987c usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc2abd825 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc431dc49 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc4472b06 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcc056a37 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd9c33dfc usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdd3dc7f9 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe287fc03 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xebe0c5f1 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x253eb127 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x281be4e4 rpipe_clear_feature_stalled +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x6916487e wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc543b60e wa_process_errored_transfers_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xe2335823 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf244870f wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf9393d47 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x348d382a wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x44ff3ddc wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4ec9ee1f wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x566f68b5 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5a6b8fb7 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5b9e5b24 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5e898ec0 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x883872d6 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9a098154 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xaff8a032 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb012b47d wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc80dc0fe wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf5dc5637 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfef284e2 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x3dfbdfba i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x5d379306 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xd7514056 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x07195f87 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x436f3be9 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x5b2d6894 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x5ecd14e0 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x70cea65e umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x752fbd1c __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe1902eac umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xf5420d0f umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x01b15384 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0860a6c3 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1494095e uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1b97ee93 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1f72eaa4 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x240ab436 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2c81a7fe uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x398c9b1b uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x39a23738 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4079cd7c uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4f7a630f uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x58180ffa uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5b21340f uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5cbd02b0 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5eb68d07 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x664c2b5f uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x70c2b075 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x730bd02b uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7af3532e uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7bdd04cc uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7c2c9f4a uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7fe9d907 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x83923d5b uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x876b4470 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x87e8b88f uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8be1b313 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9a3cd733 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9d853116 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa23f1dc2 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa67a9b1b uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb3389b76 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb6970c3b uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc5ce235f uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xce2ce61d uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdab56eb4 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdf25a540 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf9b06986 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x8d24eee2 whci_wait_for +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x3567743b vfio_external_user_iommu_id +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x52d11d25 vfio_add_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x53607669 vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x5b910267 vfio_del_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x6634fbb1 vfio_register_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x70de6cac vfio_group_get_external_user +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x95258207 vfio_device_data +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x969c73d9 vfio_device_put +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xc4913442 vfio_group_put_external_user +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xe139c7fc vfio_device_get_from_dev +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x01a16dc6 vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x02a27ad5 vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x03b97282 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x03df97f4 vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x07ece0b7 vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1b4e2d5e vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x269f7a09 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x32bcc5e8 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x40754f1f vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4e7c5c09 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x52935515 vhost_work_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x56423164 vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x569757cc vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5be74a64 vhost_poll_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5d8dca58 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x67e024c6 vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x75bd28fc vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7738426e vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7c0ab7ad vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9026907e vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa2bbdd52 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa4a1db3f vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa4ebc877 vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb061f9a0 vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbaeab35a vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbbe09aad vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd52e98d8 vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe61232dc vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe99402cb vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfb97dd66 vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfbdbddb3 vhost_init_used +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x19d44ab5 auok190x_common_probe +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x1f6eadb7 auok190x_send_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x2cfc1dc2 auok190x_send_cmdargs_pixels_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x3459424b auok190x_send_cmdargs_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x3da26e5b auok190x_send_command_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x3dc7159c auok190x_pm +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x4661bd5e auok190x_send_command +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x659d16f3 auok190x_send_cmdargs_pixels +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xa2a519c5 auok190x_common_remove +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xc6a787a7 auok190x_read_cmdargs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x2e461fa3 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x5890c3d3 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7e38ce43 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x92d8b099 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xc8b9cc37 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xe5765b51 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xf47f0dba ili9320_write +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0xf51a1852 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x6330ba29 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xadaba19b fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x04d210eb sis_free_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x50ca3ed3 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/w1/wire 0x20b3703d w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2cfd5512 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x3bd188ae w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x45bf8b49 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x5223b451 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x78380850 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x9ca5c8ab w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb5e4a85a w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb76c60ec w1_next_pullup +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x1e1c90dc dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x53a28046 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc6dc8c2f dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xe06b2080 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x0a4e3a3c nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x20af7f0a lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7c195ab2 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8fcfa5af nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x95dafc25 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xdf83a441 lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xee102ab6 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf452347b nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xff1705c9 locks_in_grace +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00d18b69 nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x021864c4 nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0227eacc nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x02c1c71f nfs_writedata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x08b3513c nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x08ecf2ce nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x09a50833 nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0b6297f2 nfs_fs_mount_common +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0d09cf57 nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0e07817d nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0f7fe340 nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x119a0ec4 nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x18b998f8 nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1c033900 nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1c1f3502 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1d0de293 nfs_file_splice_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1d507698 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1df4d411 nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x21b934b7 nfs_set_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x250f7d86 nfs_file_splice_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2559c5f1 nfs_pageio_add_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x25e1dd95 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x27b728f8 put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x288a7ec7 nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x28b76e92 nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x28f37e13 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x29bedd36 nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2d8d9875 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2e0c165b nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2fb6aa5c nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x30bee79e nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x30ea934d nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x32b8998b nfs_pageio_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x35e8d167 nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36225983 nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x378a504c nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39cb8816 nfs_readhdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ca31f35 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f12ce3d nfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f9eb00 nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x44d39a0f nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x45204404 nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x45a2954a nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x45d3f8ea nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4640cea9 nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x46802248 nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x46e81d2a nfs_fill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x48d77620 nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4b4112b7 nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4bd0f92a nfs_probe_fsinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51c24e86 nfs_writehdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51ea2913 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x52316931 nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x58df697c nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x59e21d57 nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e1d863a nfs_sockaddr_match_ipaddr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5f670905 nfs_generic_pagein +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x60158249 nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6331736e nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x65d4c01f nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x65fd4475 nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x69723910 nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6a80d196 nfs_readdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x70a75f61 nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x70b9bb5f nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x71330649 nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x72d5d7a8 nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73569cc2 nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7e1c50f8 nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fa34b4d get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x822b2546 nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x848c3c6c nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89bc5a64 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8bcf8609 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8d3002c7 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9632d47b nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x96b70658 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x99b97847 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9fda67e7 nfs_fs_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa2049a2e nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa457a58f nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa6c8c627 nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa6d4c1db nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa7154aba nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8d2d1ce nfs_callback_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaaa14361 nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaacc0423 nfs_pageio_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xab4ce843 nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xac2e2796 nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xac9c76a5 nfs_try_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb027ea57 nfs_destroy_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb2d10dfc unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb4af8b5d nfs_generic_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb50225f6 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb5337eb4 nfs_put_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb592248e nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb606e716 nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb8d93b8f nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb9188040 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbcb086ed nfs_file_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc23b24eb register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4ff1e9f nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5ef47d5 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc902aafd alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcaab5ecf nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcd95cbf8 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcdce574f nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcdf95d1c nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcf02b3d6 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd0d188f4 nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2513081 _nfs_display_fhandle_hash +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd27ab957 nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd53dbd49 nfs_setlease +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd7b4c3ea nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd82fab43 nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd8fc16ee nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd975175f nfs_remount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdf7e6f08 nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe0bc31bf nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe2ab67c1 nfs_clone_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe2b1c094 nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe5417b74 nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe7b04e06 nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe82b9b82 nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xea06d6d3 nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeaf36188 nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xef79a902 nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xefb2342b nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf065588b nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf27300b7 nfs_file_fsync_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf4819c52 nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf913fda7 nfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf9268167 nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfa2770b4 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfb3c18d0 nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfb7ee006 nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfb8b7fd6 nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc619abd _nfs_display_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x078d6620 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x11bda27c __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x170f3ed6 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x217c58a7 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2e970307 pnfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4433da9b nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4940763e pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x515084a7 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5903e602 _pnfs_return_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5f8cdb08 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5f937222 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x665fa50e __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x68be5377 nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x71a7aaf5 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x731a35bf nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x795f3851 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7c07701b nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x81bc7852 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x81e52301 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x85ead235 nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8aa7d7a8 pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9a81ac3e pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa3d3648c pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa6739634 nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb9a55040 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc16b3195 nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc27f34f2 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc3347bf9 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc36c5f58 pnfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc40ba0ae nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc9118813 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcb3ef94a nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd0233efa nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd607c11f nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd96daec2 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdb813e84 __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe5527c11 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xee5fc0fe pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xeed24129 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf2e4fdf9 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf6b21aa8 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfe25a37a nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xff9f0e00 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xddba6c1a nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xf0afb7dd nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x0b43d8c2 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x3f1db18f o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x42291043 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x71a5c92c o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x8a957b40 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9ef4b007 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf26ed8c0 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0d2a6eb2 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x24b238be dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xaf47b91d dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xb82b6927 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xecc4435b dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xef34fd18 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x2c79315d ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdf0c95b9 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xf9602fdb ocfs2_plock +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x7b067004 notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0xa274a8ca notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x021957e1 raid6_datap_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0f8a2742 raid6_2data_recov +EXPORT_SYMBOL_GPL net/802/garp 0x29877267 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x2e32fdf5 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x601a871e garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x93baa22f garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xb6e6a1a6 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xd3490bcf garp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0x1f2cd41e mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0x25bfbcac mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0x584704da mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x7c2c871c mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0xbec37be6 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xdb741bd1 mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/stp 0x1c3dfeca stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0x37ada466 stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x562c8c9f p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0xc31ac2c9 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/atm/atm 0xb09faf79 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xcfb6a3da unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x45e27c02 ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xb7cf9a4e bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0307ac92 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x07c8863d dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x09a123b7 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0fba7f8f inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x160ef31b dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x19845fe0 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1f636fc4 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x238a3c0e dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x24407da5 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x30b11980 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b2f8a8b dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x40d88d2c dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x53e7a89c dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x554b35b7 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x582ef9c0 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x592ebcbd dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5cc438ab dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6239592d dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x67c96dc3 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6ada2a20 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6f1e45cc dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x70c43f7f dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x730a03e9 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x81dab5cf dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9396910b dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9f9c25d3 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa7872db3 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xae654535 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc1b693ee dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc4079ceb dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc5b3aa1c dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcb2c3756 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd834a179 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdd3ca8a9 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe9b6e5d2 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1b3fbeee dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1d1b0bef dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6bf7a2c7 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd400c93c dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xe1b679cf dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xf7e14131 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7b9e4f5d unregister_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7dabb72e register_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x32c5466c gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x5ef0b791 gre_cisco_unregister +EXPORT_SYMBOL_GPL net/ipv4/gre 0x6b6a4d27 gre_build_header +EXPORT_SYMBOL_GPL net/ipv4/gre 0x9dcfffe0 gre_cisco_register +EXPORT_SYMBOL_GPL net/ipv4/gre 0xcf97b1f5 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x0db726ac inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x5f329d83 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x60ec1cf3 inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x79fed1a7 inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xc7f30eab inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xf41a44ce inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x0946ab09 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x11fbe8f7 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x14d30044 ip_tunnel_get_stats64 +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x17c5d6bc ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x3bdccc49 ip_tunnel_delete_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7013d8e7 ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x73493597 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x84830718 ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xb23758fa ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xb90a725f ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xba900c38 ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xbc745308 ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xe0bab2fb ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xf302e41e ip_tunnel_ioctl +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xc44ca915 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x327b2243 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_ipv4 0xc5c895f4 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x57dfa2b1 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x5e5cf5a5 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa2a68c58 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf0de806f tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xfc726d45 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0xaacf79f2 xfrm4_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0xf55c954c xfrm4_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x242fce7a ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x25b26a6b ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x3b12718b ip6_tnl_dst_store +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xc1e75358 ip6_tnl_dst_check +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xe044b919 ip6_tnl_dst_reset +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x2e881f68 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_nat_ipv6 0xbc6acf23 nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0x69c115a9 xfrm6_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0xe817ffae xfrm6_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x125cbb7b l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x13b4b0cc l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1578e894 l2tp_session_queue_purge +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1a8c9c53 __l2tp_session_unhash +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x23560887 l2tp_tunnel_sock_put +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x524a5d16 l2tp_tunnel_sock_lookup +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x53a0d601 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6870155a l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x695a68b3 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6a4204f2 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x80fc6066 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x82201587 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x93bd8219 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb82c03cc l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcff07823 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd4b30823 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf5e951f2 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0xf0c1926b l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x01afb847 ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1569eb9e ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x17826c8b ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x249728c2 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x2e773b99 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3663a36d ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4bf42798 ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5d38f601 ieee80211_set_key_tx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x8b571cb5 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x8c8af18a ieee80211_iterate_active_interfaces_rtnl +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x94d85e5b ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb6f1c12a ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb8c31700 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd676dd77 ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xde219723 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x042c1b00 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x09392577 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x14d5d6a4 ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x400a7fc9 ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x40f07d25 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4bcbc048 ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x55ae8197 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6344eaf6 ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x70e50176 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x89705778 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8df8a256 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9f08ca25 ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa5c2972f ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xaa81a7ed ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xbf94a0bd ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc8aab0b8 ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xd430256a ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xef13ebbe ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x2913c8fe ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x57245cfa register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xa314b277 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xbde315ad unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00330020 nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01a89358 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01e9e536 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01f84db5 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x02c5f0d1 nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x05c5b51b nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0eb3d0d9 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1223b908 nf_ct_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1513cfaf nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a042898 nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22160ccf __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22adcef7 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x23c2a786 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25df6a8e nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x269c5245 nf_ct_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x277d5468 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34243156 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x35f1e524 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x368bb6d1 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37386cac nf_conntrack_hash_rnd +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37b388ea __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x38cd44a7 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3d9112da nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3dec8c43 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x45e2a9b6 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x478097c0 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x49190cdd nf_ct_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ba26e8d __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d80e511 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ddffe06 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4f0dc73d nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x54b1c916 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x577cda79 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5aecec19 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6010fe62 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x66076d7a nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6687ab94 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x66f4b8c2 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6ba9cb06 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6dfd9027 nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73eb5aa3 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7611d451 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7909542b nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a1df505 nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7b3f0584 nf_ct_l4proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c148a37 nf_ct_timeout_put_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c9a08c3 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e82444c nf_ct_l3proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f69b64a nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x85a0c00a nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x87c1aa66 nf_ct_l4proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8977ae23 nf_ct_l3proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e926458 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x91001da6 nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x91204ba9 nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x956860c1 nf_connlabel_match +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa638e652 nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa7d4f138 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb23f3373 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb8c1f246 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc0251f3 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc5f6a8a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbf52e67b nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc108b881 nf_connlabel_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc6d8cd70 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcabc978f nf_ct_timeout_find_get_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbffda7d nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcd7e813e nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xce505c1f nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xce62819d nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd1782f80 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd31b7c4a nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd593e70e nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd5fc110e nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd880ba29 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe12d1ec8 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe36c1b10 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf2bcbdee nf_ct_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfdb14c87 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe08cd4f seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x72522135 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x5ab07f4e nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xd9d14dda nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0bdeb9e2 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1145b076 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4478c4b2 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x46c40862 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x49659f66 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x560d62ff set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6faa13d4 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6fe7b266 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xaa9ee715 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xad0c6932 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x02e26d66 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x640a9a2d nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x973649f0 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xcd754b06 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xd456bd54 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x1a1b2fa5 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xc1a9fc5d nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x10e280c0 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x16d0a1c7 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7887a843 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9066ba27 nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa3631cc1 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa9b6ab31 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfe4e9d64 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x1a216350 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x4057c930 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0d9bae4b nf_nat_l4proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x131f636c nf_nat_l4proto_in_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x3f569fbf nf_nat_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x42a476e9 nf_nat_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x56b7f938 nf_nat_l4proto_unique_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x79613cab nf_nat_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x986953ac nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xa2687e23 nf_nat_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xa7b41d2f __nf_nat_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xd9ba78df nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x11a006b5 synproxy_check_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x2e91ab81 synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x8841d39b synproxy_build_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x90298227 synproxy_init_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xb42e336a synproxy_options_size +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xbc25839a synproxy_tstamp_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xef7db50c synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0787d1f5 nft_register_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0cf55b9f nft_validate_data_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0fda3c99 nft_validate_output_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x34a17cf1 nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3d49dab7 nft_validate_input_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x4bb54c9f nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x57aacff7 nft_data_uninit +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7294cc64 nft_do_chain_pktinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7f40ac8e nft_unregister_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8eaf6258 nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x90b48614 nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xb02ecee5 nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xb6f3614c nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xc0448e4c nft_register_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf487f956 nft_unregister_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0fee3300 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x21ea70eb nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5e8c4ea8 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x713031e9 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8c481adb nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8f0cfd96 nfnetlink_alloc_skb +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xba07fe69 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x21f6bba6 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x55a910b1 nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xf92e46aa nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x124824f5 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2b72f9b3 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x41af276c xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x49b829e8 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7c5cb813 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8bb01034 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa9cdba18 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbbfa5d6c xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd2225ec5 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd904079c xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe06c1996 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe1a22371 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf5ed9c59 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x57909dc1 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xd0f26ea3 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x033f9333 nci_spi_read +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x2a6cd6f1 nci_spi_send +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xb8298854 nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x045c03e7 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x0a2c767b rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x0be8b06e rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x0c3889b7 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x15872362 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x29ceef2a rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3500d969 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x44f7e7bd rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x4622b59b rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x4b451861 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x4b5fecf1 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x4c4160e0 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x5d6d3448 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x61b4e69e rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x780d4e48 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x8045e42a rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x83e9b8ad rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x88a285c0 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x9a99c3b2 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x9fad6e28 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xa2628d92 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc642cc2c rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0xd14d7ece rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xd90f0ea5 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x507de21c rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xa49efcc8 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x26f52b7c svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xeb1be3f5 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xec08e7de gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00bf7ced svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x028d6ab1 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03faaa1e xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0410a3cc rpc_protocol +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045834e9 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06464c9e xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0816008c rpc_rmdir +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08bde513 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c61dd5d rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0cca56db svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d451274 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d62e8d1 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e30063c svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e861eb9 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1127e8fd rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12c586c5 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1719eab6 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17383f67 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1824b8de svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19bcb73f xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ac2cc8c rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1cb447f3 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1cccdbd9 rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ea4653c sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f893db6 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20bd9d84 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24752c65 rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24a9bdac svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2582630a rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2750ed01 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x295c72e2 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29f45322 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d8966c7 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f0f2c68 rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x300fd05d xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3109b44b rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x334d31e5 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3490c2ad rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x358371cb xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36abce0b xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c5d1d4c xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ec0382a svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43d49fe3 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45060c81 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4700e6ab svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4898281c cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4980f5ed sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a00dd21 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4af7dfc9 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d04cee9 rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f94ab84 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51cdab2d rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51d6f9ef svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51d8842c rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x527541f1 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53ddc736 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54e34248 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56451170 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58b546ff cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5aa0acf8 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c58e2b4 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c842a50 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5cc156c1 rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d0038f8 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6027355e _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60ecfc14 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x619d0d17 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62507504 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62d29041 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6358f6f7 rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63faf23a auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64ff7feb xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6822cef1 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6950e3df svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69f81e0a cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ef91ff4 xs_swapper +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73b719bf xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73ed948f svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x755c9ef8 rpc_get_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77eb26fc xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x785ea978 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7abf22a5 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ac60b8f svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b96e817 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e5a30ea xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80951b28 rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80a8fb9a rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80f274bf cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82e80068 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x831b9773 cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x833e0919 gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85098d7a rpcauth_key_timeout_notify +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85344f6c svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x859455c5 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85c69e3a xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86374e32 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x883efed0 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89dad5ce sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a181df0 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b3bc73f rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d035b01 rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e8d3e05 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f42fd7d rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92f849e2 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93296b37 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x935d6949 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94a03c86 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94a70564 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95211269 xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x956d63ce svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9635908f xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98755d16 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b75d64 rpcauth_list_flavors +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99a82305 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9fd51f6f rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3719d61 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3c3a9b4 sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4e82c5e rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5476009 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9fde84f rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaaba921d rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab4a9d7c xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad4f415f rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb109548a svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb311c711 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4153839 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb501f300 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb583b77e rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8beed49 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8e84a55 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8fef034 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb914750e csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb98e1ae3 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbaa1d0cd auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbadb7111 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbaf8b4e7 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe7ff049 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbec9e87f svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf309061 rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc17a97ba xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc290416d xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2bd39e1 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2eaf09d svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3878904 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3abb9e1 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5b4ac39 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc60d93f7 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc687c198 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc97c0f32 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc295cca rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd36459d rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce02010a svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce4527c2 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf5980d2 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf858b9f rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0f4a973 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd110cc08 svc_shutdown_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3410441 rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd34f704e rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5da98a3 rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd867673b svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd88502a0 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8972815 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd93fc229 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc83860d xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd86c9c6 rpcauth_cred_key_to_expire +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdfd9a9a2 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe12e4ffa svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ac2bb8 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe226289b rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe29796ca svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2d17dab __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe42107a0 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe46f3410 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe51dbbc5 rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe92d453c rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9626d6a rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb28a22e rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xed076a2e xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xed255035 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef420c5e rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf278edce xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf78d98f9 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9940dfb rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb47bdbc xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfbebabaf cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe8e12bf rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfeecba8e svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff68303e rpc_killall_tasks +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0b6d798b vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0c79d5ef vm_sockets_get_local_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x15c0c57c vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x18386d72 __vsock_create +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2663cb64 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3ec5cf4d vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x507c2470 vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x74e91915 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x751ff010 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x78e7a8cb vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7a5207f5 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7f730c80 vsock_core_exit +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xb20b688e vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xb995dd95 vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd0f699d vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbff578fa vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd10866ce vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd3bc4dee vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd95ac116 vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xdb6fb43c vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf593c40a vsock_pending_work +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf8d8c4bd __vsock_core_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x059336f6 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0c71e3c7 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x13208e1e wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1d1a5c18 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2d803595 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x55170af9 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x84408f3e wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x99f967ac wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xc9a9b01b wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xcbf594ad wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd80d0038 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xed4b664a wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf114b14d wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x135e8a73 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x26f0ff79 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3820dc3d cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3aed65ff cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x544ce89c cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6ceb6ec9 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x935c4dba cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9cf769ac cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa5377249 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe33cf787 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xeb471aae cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00778770 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x056bb269 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0a575945 xfrm_count_pfkey_auth_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0b9e5852 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x74e1a843 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7a8ca627 xfrm_count_pfkey_enc_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7c30b8c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x92dbc6c1 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xbc8b0f41 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xce7a55c1 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe122af95 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x341b316f ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x4223368d ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xa6f09a26 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xe0e23bef ipcomp_input +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x0fedb6c7 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x9f1515dc snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xb00a152d snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xc6a27200 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd4b58f31 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd78ed7d0 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0402581d snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x08648169 snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x09bf9718 snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0a98959c snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ee7cb47 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1227df6e snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x129c3923 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x131b1bf7 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1339a7ab snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x143a921d snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1470b3bd snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14ff6d50 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x178ecc28 snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x181ea866 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1b541861 snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1f8bba18 snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x20c5a2df snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x22726c55 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x22e98376 snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x23eee31d snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x273d1f39 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x283c81fb snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2a44acc6 _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2dfcbc9a snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x315c6a0e snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33d207ce snd_hda_parse_generic_codec +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34cf4e80 snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38646696 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38d2a99b snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3b6b7c21 snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3be2ae70 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c1413cf snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3d756c90 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ed36886 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x42afaa09 snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x44eb4e0b snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x464fe497 snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48c7c8f7 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4afac341 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c57d1ca snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ed28914 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5016231f snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x52ce3ad7 snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x57811d92 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58645b2e snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c4225fb snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5d5b5cbe snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f284bc9 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x62ab3813 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x646615aa snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x66de788d snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x67667c72 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x683065ea snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6cdeb88c snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f76c87c snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6fa6f54a snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x719eee5d snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74a17834 snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74c40926 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76dc6871 hda_main_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7768be8f snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x77d47eb3 snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x79b721c1 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7ae71df1 snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7b91c554 snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7bc2f551 snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7df0f586 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f97e3de snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x80048cd3 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x83f26865 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84633ccf snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86f01900 snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x871a6e44 hda_extra_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x93fec6be snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x961eb1f7 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x96a022ff snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x96f72459 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x98b3a2af snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a086aae __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d670cf1 __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9da33c6e snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9eaf9d17 snd_hda_jack_detect_state +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9f8d2f6d snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa0af83f4 snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa1ec8951 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa3d38305 snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa3f07d15 snd_hda_codec_flush_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5e6ca80 snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa1e889a snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa5e8b17 snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaaaf3759 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaabe3a36 snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xab54022a snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xac2d2924 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xae3842c1 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb09aa1f3 snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0e867e9 is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb775bd41 snd_hda_parse_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb91dd50f snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb9f671cc snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xba9674dc snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb285f16 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbc9195f8 snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbcdacb85 snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd9e23fe snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd9ef98f snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbeab14de snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc05fbac2 snd_hda_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc09f3699 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc2c6c755 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5651232 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5ad6f1f snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6b8d467 snd_hda_jack_detect_enable_callback +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6d6e99e snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6f9627d snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc962b8c4 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc97cc58a snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca8cce64 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce9dd94 snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd5a0bce query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd9a9d3b snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcf6978a1 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd0126cc4 snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd1259673 snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd3158f89 snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd5305f40 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd5b4929a snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd788e615 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd81fbab2 snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9906647 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9968d01 snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc070b54 snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe118de5d snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe3ce84f1 snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe495031b snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe660d43f snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe92e38c0 snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xea71c681 snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeb8b4cf7 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed1fe833 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xede3e1cb snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef86812f snd_hda_get_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef953e78 snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf02ea883 snd_hda_gen_spec_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf341f2e8 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf763e45b snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa0f7637 snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfccdd23f snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfcfea107 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfdefe654 snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfe86a46d snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xff49b889 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xffc83f26 snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x5805fae1 atmel_pcm_new +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0xc8ae5377 atmel_pcm_free +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0xe4982b5a atmel_pcm_mmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x2cfe0842 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0xf2a895ad wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/davinci/snd-soc-davinci 0x0ebaefcb davinci_soc_platform_unregister +EXPORT_SYMBOL_GPL sound/soc/davinci/snd-soc-davinci 0x55b22eb3 davinci_soc_platform_register +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x121e59da tegra_pcm_platform_unregister +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x773f0459 tegra_pcm_platform_register +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-utils 0x2646aafd tegra_asoc_utils_fini +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-utils 0x6ca07d27 tegra_asoc_utils_set_rate +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-utils 0x7a958fd3 tegra_asoc_utils_init +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-utils 0x877e7fdc tegra_asoc_utils_set_ac97_rate +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra20-das 0x0d54c9b9 tegra20_das_connect_dap_to_dac +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra20-das 0xb52cfca4 tegra20_das_connect_dac_to_dap +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra20-das 0xbced7431 tegra20_das_connect_dap_to_dap +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x33e6f259 tegra30_ahub_allocate_tx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x55a40206 tegra30_ahub_disable_rx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x5cf6f91f tegra30_ahub_allocate_rx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x5d7237ff tegra30_ahub_set_cif +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x6fe20143 tegra30_ahub_set_rx_cif_source +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0xb419329b tegra30_ahub_disable_tx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0xb4a9367d tegra30_ahub_enable_tx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0xb81bca9d tegra30_ahub_free_rx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0xc78c7125 tegra30_ahub_free_tx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0xccb67e55 tegra124_ahub_set_cif +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0xccc98372 tegra30_ahub_enable_rx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0xe549513a tegra30_ahub_unset_rx_cif_source +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_file_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x000c438f sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x003416eb crypto_lookup_aead +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0070fd38 dev_pm_opp_find_freq_exact +EXPORT_SYMBOL_GPL vmlinux 0x007e8ce8 dev_pm_opp_free_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x008f20bc device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0x009304b6 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x009c09b3 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x00a3cc3f snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0x00bb9268 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00d48f33 omap_usb2_set_comparator +EXPORT_SYMBOL_GPL vmlinux 0x00d8cf92 ping_seq_fops +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x0100543b ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x0148adb6 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x014a4594 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x016a1f69 omap_dm_timer_set_load_start +EXPORT_SYMBOL_GPL vmlinux 0x0179f9e8 snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL vmlinux 0x018edcce cpdma_ctlr_dump +EXPORT_SYMBOL_GPL vmlinux 0x0190d09e kobj_completion_del_and_wait +EXPORT_SYMBOL_GPL vmlinux 0x0196a35b ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x0196a5bb phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0x019d4f13 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0x01b53946 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0x01b6b4ec snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x01c6cb0c cpu_cluster_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x020a6bdc register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x02102024 ahci_check_ready +EXPORT_SYMBOL_GPL vmlinux 0x02148b7c __class_create +EXPORT_SYMBOL_GPL vmlinux 0x0228035e mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x022ce7af sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x0244fb7c __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x026bbdca __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x0274ab34 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x02af93b3 ahci_platform_resume +EXPORT_SYMBOL_GPL vmlinux 0x02c0a35f iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x03155840 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03525264 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x035b9f87 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x037dc3f1 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x038c1475 ahci_stop_engine +EXPORT_SYMBOL_GPL vmlinux 0x0398a4f0 da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x03ab14f9 pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0x03b5e796 tegra_usb_phy_postresume +EXPORT_SYMBOL_GPL vmlinux 0x03bf1d5e gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x03c31a01 snd_compress_register +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x0402b504 __percpu_ida_init +EXPORT_SYMBOL_GPL vmlinux 0x043c9806 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044c829c cgroup_add_cftypes +EXPORT_SYMBOL_GPL vmlinux 0x045b452f of_clk_get_parent_count +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x046c7ea9 subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0x0472caae of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x049d951c cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x04aaf928 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04e1b99f snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL vmlinux 0x04f03950 thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0x050f4248 ping_proc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x050f7504 regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0x053d12e1 ping_err +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x056879cd sk_unattached_filter_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0573661e snd_soc_jack_get_type +EXPORT_SYMBOL_GPL vmlinux 0x0574068b cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0x0578f46e pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x05863b89 phy_put +EXPORT_SYMBOL_GPL vmlinux 0x058b582a vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x0593d0de pinctrl_dev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x05b47e4a pwm_free +EXPORT_SYMBOL_GPL vmlinux 0x05c0b1ac usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x05cd497d pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x05d629b3 reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x06057466 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x06305a4a platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x06423666 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x06438115 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0656eb10 snd_soc_unregister_component +EXPORT_SYMBOL_GPL vmlinux 0x069460c8 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x06d549e6 pinctrl_free_gpio +EXPORT_SYMBOL_GPL vmlinux 0x06dceffb snd_soc_of_parse_daifmt +EXPORT_SYMBOL_GPL vmlinux 0x06eef5cc ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x06f0f493 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x071400cb usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL vmlinux 0x0733244f pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x07441eb1 gov_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x07455fa9 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x0762403c edac_put_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x077b79ec tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07ba035c pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x07ba89d0 ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0x07ce5c0b usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x07e032b0 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x07ed48c3 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x07fbbc16 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x0816caed sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0x083d472b md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x083d7c2f irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x08624adf pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x088c7f7d dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x0899f091 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x08bd8fc3 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x08f945b3 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x09187941 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x09437748 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x09469482 kfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x0952af60 fb_videomode_from_videomode +EXPORT_SYMBOL_GPL vmlinux 0x0972ba48 pinctrl_select_state +EXPORT_SYMBOL_GPL vmlinux 0x0989774e key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0x09949469 devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0x09d0d105 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0x09e913c1 snd_pcm_alt_chmaps +EXPORT_SYMBOL_GPL vmlinux 0x09f00b0f musb_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x0a01d77b devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0a60e301 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x0a8169b9 iommu_domain_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x0a9fd3c5 gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x0aafc0da vtime_common_account_irq_enter +EXPORT_SYMBOL_GPL vmlinux 0x0ad7afe4 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x0ae464cb rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x0ae8b88f sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0x0afd4610 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b0a3c6e rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x0b1eb969 ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x0b401306 dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x0b47d8af tcp_fetch_timewait_stamp +EXPORT_SYMBOL_GPL vmlinux 0x0b5105b3 dma_buf_unmap_attachment +EXPORT_SYMBOL_GPL vmlinux 0x0b59390b __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0b5ba348 ci_hdrc_add_device +EXPORT_SYMBOL_GPL vmlinux 0x0b5df4ca usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL vmlinux 0x0b85ed03 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x0ba8374b __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x0bae62b1 ktime_get_monotonic_offset +EXPORT_SYMBOL_GPL vmlinux 0x0bbae511 return_address +EXPORT_SYMBOL_GPL vmlinux 0x0bd1683f regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x0bd32839 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x0bd91c23 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x0bdfbd79 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c0fe16c usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x0c2996ed mtd_get_user_prot_info +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c321049 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0x0c464f34 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x0c5334f7 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x0c55f928 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x0cbb3da3 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0cce0227 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x0d2260e3 md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x0d2d91a0 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x0d320b9a spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x0d414b68 nand_release +EXPORT_SYMBOL_GPL vmlinux 0x0d47a1d3 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x0d5974be kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x0d59e47c root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0d614a56 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0x0d767115 dma_buf_attach +EXPORT_SYMBOL_GPL vmlinux 0x0d79afcd __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x0d9d852e subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x0dbd0e20 of_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x0dd18796 usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x0dd1e628 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0def3437 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x0e10b567 snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL vmlinux 0x0e49e009 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x0e93f145 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0ed36b2f call_srcu +EXPORT_SYMBOL_GPL vmlinux 0x0ed9302e percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x0eff0ab3 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x0f15681d led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0x0f751aea input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x0f759d52 sysfs_get_dirent_ns +EXPORT_SYMBOL_GPL vmlinux 0x0f76b2e8 palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0x0f822798 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x0fbe38a2 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x0fc01e9f static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x0fc3bd35 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x0fcd4b1a usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x0fd82b28 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x0fdcf746 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x0fe112dc of_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x0fe65e8c synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x0feb0d93 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x0ff53ab2 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x0ff9af09 cpdma_ctlr_int_ctrl +EXPORT_SYMBOL_GPL vmlinux 0x0ffcfbe2 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x1015c8b7 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x1026c1d9 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x1031e977 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x103572d9 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x1047a84b snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL vmlinux 0x105334f3 mtd_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1058edae ahci_platform_disable_clks +EXPORT_SYMBOL_GPL vmlinux 0x1064405f tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0x1077e821 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x10855ca5 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x1087516b snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL vmlinux 0x10b3e494 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x10b4828d free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x10c939b2 debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x1100a22f vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x116bcb22 of_pci_msi_chip_add +EXPORT_SYMBOL_GPL vmlinux 0x117143c2 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x11760945 sec_reg_update +EXPORT_SYMBOL_GPL vmlinux 0x117e3e2b usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL vmlinux 0x11ae239e bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x11b2a080 ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x11c0c7ac scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x11f50d8c ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x11fa7f71 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x1200fee7 thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0x12032817 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x121cd964 of_pci_range_parser_one +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x122a3634 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x12380b4b pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x12531d02 mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL vmlinux 0x125d89cb usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x12608d32 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x128f410f pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x132ee0ff ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0x13354608 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x1337c067 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x136ff1c3 pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0x13921363 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x13973d7c ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x13a1834b mtd_block_markbad +EXPORT_SYMBOL_GPL vmlinux 0x13b89dee pinctrl_request_gpio +EXPORT_SYMBOL_GPL vmlinux 0x13cc784f max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x13d53801 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x13f04678 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x142a8be4 of_clk_get_parent_name +EXPORT_SYMBOL_GPL vmlinux 0x143bfc82 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x14a4db73 usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x14d024d9 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x14ef1d0a blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x14f875ce devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x15079548 pinconf_generic_dt_subnode_to_map +EXPORT_SYMBOL_GPL vmlinux 0x1525f36d __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x152674a2 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x1546583f pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x155f1512 dev_pm_opp_init_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x15673333 dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x15971774 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL vmlinux 0x15ac07ca virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x15b44ee1 pinconf_generic_dt_node_to_map +EXPORT_SYMBOL_GPL vmlinux 0x15ef0738 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x15fabc92 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x161da5fa of_irq_parse_pci +EXPORT_SYMBOL_GPL vmlinux 0x1620359c deregister_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x1688f092 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x16a53da6 snd_soc_put_strobe +EXPORT_SYMBOL_GPL vmlinux 0x16acff9f usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x16b42d56 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x16cec4f8 devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x16dfca35 ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x16e428b5 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x16f07ca5 bmp085_detect +EXPORT_SYMBOL_GPL vmlinux 0x170e9bea imx_usbmisc_init +EXPORT_SYMBOL_GPL vmlinux 0x1730e6d5 omap_mcpdm_configure_dn_offsets +EXPORT_SYMBOL_GPL vmlinux 0x17398a54 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x1753a32f hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0x175643b6 extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x17e5e459 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x17f80573 reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x1853653c btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1866cec2 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18a27f34 jump_label_rate_limit +EXPORT_SYMBOL_GPL vmlinux 0x18a70969 wm8400_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x18e6ebb8 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0x191848e5 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x1928efed driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x194dd5f5 pkey_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x1973af1f regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0x19745cd0 ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x19802477 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x1989c2db posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19b384a5 hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x19b8ccb7 xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0x19e50b50 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x19e8aebf snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL vmlinux 0x19ef10cd vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x1a082d69 max77693_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x1a0b1b47 pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1a18da2b register_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0x1a309bec usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a38030c da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x1a424fb3 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x1a5d2169 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x1a65920b omap_iommu_arch_version +EXPORT_SYMBOL_GPL vmlinux 0x1a9b3fe9 pinctrl_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x1acef7d2 pm_freezing +EXPORT_SYMBOL_GPL vmlinux 0x1acf5ce6 vchan_init +EXPORT_SYMBOL_GPL vmlinux 0x1ad83009 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1af4ba46 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x1b1ccb80 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x1b3193ff gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x1b3261e0 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x1b3312c8 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x1b39c8f4 omap_dm_timer_set_pwm +EXPORT_SYMBOL_GPL vmlinux 0x1b52db1c probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1b778597 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x1b7a1d9b devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x1b8202cc ahci_platform_disable_resources +EXPORT_SYMBOL_GPL vmlinux 0x1b8822d8 pinctrl_gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1ba04826 ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x1bb5fc26 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x1bb99a3c devm_phy_put +EXPORT_SYMBOL_GPL vmlinux 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL vmlinux 0x1bc5eebe pinctrl_gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x1bcb3356 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x1bd06aab cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x1bd8a0de xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x1be0d948 omap_install_iommu_arch +EXPORT_SYMBOL_GPL vmlinux 0x1bf777c7 dma_buf_mmap +EXPORT_SYMBOL_GPL vmlinux 0x1bfe0ced user_describe +EXPORT_SYMBOL_GPL vmlinux 0x1c1aeda7 pci_bus_sem +EXPORT_SYMBOL_GPL vmlinux 0x1c1b4756 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x1c45233f sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c6068c4 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x1c6894e2 irq_create_strict_mappings +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c83d25a crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cfc0293 class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x1cfe7efd spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x1d1cd92e ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x1d397bf4 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x1d417258 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x1d58ae14 lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x1d6675e8 extcon_register_interest +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d96a598 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1d97d969 snd_soc_dapm_free +EXPORT_SYMBOL_GPL vmlinux 0x1de054d5 of_clk_del_provider +EXPORT_SYMBOL_GPL vmlinux 0x1dfb64f8 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x1dfff358 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x1e01f81c relay_open +EXPORT_SYMBOL_GPL vmlinux 0x1e06b0e8 snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL vmlinux 0x1e10b2fa list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1e1e0971 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x1e5b03dc pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e6fae2e tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e96ea20 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x1e96ecbc device_attach +EXPORT_SYMBOL_GPL vmlinux 0x1ea5de2e netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x1eb1594f gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ecec474 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x1edcd9e6 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x1eed7deb pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x1ef7cc86 snd_soc_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x1efc17e2 snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL vmlinux 0x1f37286e register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x1f4eb13e extcon_set_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x1f55d604 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x1f5cc07f hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1fb3f5e8 tegra_usb_phy_preresume +EXPORT_SYMBOL_GPL vmlinux 0x1fb6ea35 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x1fb753bd hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x1fc45f23 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fcefaf0 __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x1fffb536 snd_soc_cache_read +EXPORT_SYMBOL_GPL vmlinux 0x20011ef0 devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x201d8ea3 encode_rs8 +EXPORT_SYMBOL_GPL vmlinux 0x20735a42 dma_buf_export_named +EXPORT_SYMBOL_GPL vmlinux 0x2080f255 usb_add_gadget_udc +EXPORT_SYMBOL_GPL vmlinux 0x2097064f crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x209bb0c0 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x20a43e5e tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x20aefe4d crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x20b7d294 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20c45285 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x20c8c4b6 snd_soc_jack_new +EXPORT_SYMBOL_GPL vmlinux 0x20c9a693 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x20e7d89f devres_find +EXPORT_SYMBOL_GPL vmlinux 0x20ea836f iommu_domain_window_enable +EXPORT_SYMBOL_GPL vmlinux 0x20fb7ce3 snd_dmaengine_pcm_set_config_from_dai_data +EXPORT_SYMBOL_GPL vmlinux 0x20fd4e7e ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x2138c677 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x2158cd30 pinconf_generic_dump_config +EXPORT_SYMBOL_GPL vmlinux 0x21ac8b77 iommu_group_get_by_id +EXPORT_SYMBOL_GPL vmlinux 0x21e914a0 ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0x2206ba3c usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL vmlinux 0x220d1fa5 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x22164957 ima_file_check +EXPORT_SYMBOL_GPL vmlinux 0x22209652 get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0x2231e2ef attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x223237b6 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0x22332a7e rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2242f2c4 snd_dmaengine_pcm_open_request_chan +EXPORT_SYMBOL_GPL vmlinux 0x225ad082 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x226a674d atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x227c2adb rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x228e2855 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22ad24b8 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x22c16ecb dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL vmlinux 0x23257577 omap_iopgtable_store_entry +EXPORT_SYMBOL_GPL vmlinux 0x2355333e netlink_alloc_skb +EXPORT_SYMBOL_GPL vmlinux 0x235d4bbc snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x236904e2 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0x2384ffd5 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x2392bc6e pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x23bfb039 bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0x23e2b13d snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0x23eccdd5 usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x240ad447 cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0x242137dc snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL vmlinux 0x242d1e07 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x2451d519 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x245ba3ca spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x247fafd6 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24c119e0 __tracepoint_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0x24c24246 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x24cdb434 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x24e5551d dma_buf_vunmap +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x2520b0a4 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x253b5d6a snd_soc_dpcm_be_get_state +EXPORT_SYMBOL_GPL vmlinux 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x2548bc87 dma_buf_kunmap +EXPORT_SYMBOL_GPL vmlinux 0x254e37dd omap_dm_timer_set_int_disable +EXPORT_SYMBOL_GPL vmlinux 0x25a1a859 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x25a9115c pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x25b35c8b snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x25d35938 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x25dc39f7 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x25e4fa8c btree_remove +EXPORT_SYMBOL_GPL vmlinux 0x25e5ebe8 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x25fc3156 da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0x261e0073 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x2656af04 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2674f5a9 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x268e3947 ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x26adb815 thread_notify_head +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26badcaa devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x26c547c0 bL_switcher_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26fed0ef of_pci_find_msi_chip_by_node +EXPORT_SYMBOL_GPL vmlinux 0x26ff9d2d context_tracking_enabled +EXPORT_SYMBOL_GPL vmlinux 0x2710c26c simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x2726bd03 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x273ca5a9 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x27654700 mtd_erase_callback +EXPORT_SYMBOL_GPL vmlinux 0x2768ae55 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x277b448a zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x278a398b get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x279ea72e rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x27a202e2 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27eaec1f class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x27ec073d tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x28131791 extcon_get_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x282fbeaa bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x28398255 clk_register +EXPORT_SYMBOL_GPL vmlinux 0x284c9252 snd_soc_dapm_kcontrol_codec +EXPORT_SYMBOL_GPL vmlinux 0x285e98c0 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x28719be7 fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x28821e0c fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0x288d01cf ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x289d572d aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28a903c8 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x28aa11d5 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x28bce775 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x28ec2f8c ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x28f4114e sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x28f45844 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x29047f1a __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x294a818a snd_soc_jack_report +EXPORT_SYMBOL_GPL vmlinux 0x296df4d4 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x2972691f snd_soc_platform_trigger +EXPORT_SYMBOL_GPL vmlinux 0x29759185 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x2976c703 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x298b4103 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0x29958bdb tpm_read +EXPORT_SYMBOL_GPL vmlinux 0x29ada89e balloon_devinfo_alloc +EXPORT_SYMBOL_GPL vmlinux 0x29c8a062 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x29e8365a gpiochip_add_pin_range +EXPORT_SYMBOL_GPL vmlinux 0x29fa419f decode_rs8 +EXPORT_SYMBOL_GPL vmlinux 0x2a13962c snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x2a2265b5 ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0x2a42678f ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x2a504ad2 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a892e5a xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x2a97b684 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2aa5c731 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0x2ad1ece4 zs_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2ad42c94 ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0x2ad6974b __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x2ad9d326 md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x2ae2dc3b key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x2b16f80c tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x2b3c716a imx_pcm_dma_exit +EXPORT_SYMBOL_GPL vmlinux 0x2b552d05 __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2b602c7c __mtd_next_device +EXPORT_SYMBOL_GPL vmlinux 0x2b620768 put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x2b7a6de8 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x2b84520f usb_stor_resume +EXPORT_SYMBOL_GPL vmlinux 0x2b8a7710 snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL vmlinux 0x2b8af311 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x2b9c6a79 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2ba964ca spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x2babe81f __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x2bcb5ae7 snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL vmlinux 0x2bee179a regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x2bfaef4e clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c2d30b1 regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0x2c475a78 powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c91c8d3 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x2cb5d087 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x2cd4f292 usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2cea754c fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x2cef413f ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x2cf281af snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL vmlinux 0x2d17a0e1 cgroup_taskset_size +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d375404 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x2d393b79 vchan_dma_desc_free_list +EXPORT_SYMBOL_GPL vmlinux 0x2d3a81c9 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d4ffcec blk_queue_bypass_end +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d8afa61 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x2d8b1b3d crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x2d9b8380 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x2daa5cd6 usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x2dfedb68 mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x2e278f88 btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e329f1d blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x2e33981f snd_soc_cache_sync +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e71b46e register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x2e942c41 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x2e9670c0 pl320_ipc_transmit +EXPORT_SYMBOL_GPL vmlinux 0x2e968480 pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2eeacddd usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x2ef6b5bf smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x2f071293 usb_stor_post_reset +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f23deec spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f48145c device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x2f626966 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x2f827e99 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x2f84d25a omap_dm_timer_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x2fbb65e1 tps80031_ext_power_req_config +EXPORT_SYMBOL_GPL vmlinux 0x2fd8cba9 freeze_wake +EXPORT_SYMBOL_GPL vmlinux 0x2fdcef60 vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x3006b6f5 of_pci_get_devfn +EXPORT_SYMBOL_GPL vmlinux 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL vmlinux 0x30436b49 snd_soc_register_card +EXPORT_SYMBOL_GPL vmlinux 0x3045ebaa usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x30693bb7 imx_audmux_v1_configure_port +EXPORT_SYMBOL_GPL vmlinux 0x3069bbb2 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x30733c0f __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x308822ad devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x308b733a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x308d8773 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x30950a3f irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30cc98e9 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x30d2db79 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30d70659 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x30e8021f regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0x30eb0980 tegra_pinctrl_remove +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31118c99 pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x311ad8e8 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x31222864 proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0x312555b5 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x31311e77 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x314b754b bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31517dc1 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x31a820ed register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x31ab2a57 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x31be35d5 of_get_named_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x32035bd6 sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0x3225cf47 arizona_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x322f3511 __tracepoint_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x32442848 device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x324b5979 spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0x3256ca45 gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x3279dd34 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x328995b5 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x329bbbde timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x32a193b2 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32c496f1 pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x32f01ba9 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x32f23353 dev_get_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x32fd447a monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0x33107cef usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL vmlinux 0x331b27ed devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x33232127 devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x3350fa1c omap_iommu_save_ctx +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x3380215d tpm_release +EXPORT_SYMBOL_GPL vmlinux 0x33d76a60 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x33e51366 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x340450ad crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x341643ba omap_dm_timer_modify_idlect_mask +EXPORT_SYMBOL_GPL vmlinux 0x341fd4ff wait_for_tpm_stat +EXPORT_SYMBOL_GPL vmlinux 0x344397da xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x3450259e of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0x3466f199 pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x348cf464 unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0x34ac50a4 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x34afbd9d virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0x34b12a88 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x34c57110 arizona_clk32k_enable +EXPORT_SYMBOL_GPL vmlinux 0x34cd8212 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x34d566cd task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x34ded5c5 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x34ff85a4 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x353edd9a phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL vmlinux 0x354b52b8 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x357c331d evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x358ff60f twl_get_hfclk_rate +EXPORT_SYMBOL_GPL vmlinux 0x35b71e59 crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x35bd784c blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x35f10f43 nfq_ct_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x35f165f1 devm_reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x35f4fb21 pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0x35fb50ed power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x36075bb5 iommu_group_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x361b090c lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x3633601a uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0x3635d6c0 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x366a701c sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x366dfd63 irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x3684d192 sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x3689fcf6 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x3694eaa4 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36cd6b67 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x36d0fd95 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x370a7041 usb_stor_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x370de02c elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x37283c85 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL vmlinux 0x376b3653 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x37763651 od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x37b234a8 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x37b2f880 user_update +EXPORT_SYMBOL_GPL vmlinux 0x37bcdf38 phy_pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0x37c3aad7 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x37d40d77 pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0x37ed999e ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x37edcd8b regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x37f3cfb9 snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL vmlinux 0x380afacb of_get_regulator_init_data +EXPORT_SYMBOL_GPL vmlinux 0x383f243e pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x3847644a usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x38592112 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x386048aa add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38d773f7 pinctrl_force_sleep +EXPORT_SYMBOL_GPL vmlinux 0x3946e6fa snd_soc_register_codec +EXPORT_SYMBOL_GPL vmlinux 0x394adcf6 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL vmlinux 0x397424d7 sdhci_pci_o2_fujin2_pci_init +EXPORT_SYMBOL_GPL vmlinux 0x39864018 subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x39c4dff0 twl6040_get_clk_id +EXPORT_SYMBOL_GPL vmlinux 0x39dc6710 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x39ef6c51 pinctrl_lookup_state +EXPORT_SYMBOL_GPL vmlinux 0x3a0daba7 snd_soc_cnew +EXPORT_SYMBOL_GPL vmlinux 0x3a148b9e sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x3a158970 cm_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a4c6000 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a5f7cd5 mtd_device_parse_register +EXPORT_SYMBOL_GPL vmlinux 0x3a632523 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x3a866896 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x3aa0154f scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3ad82802 of_property_read_u32_index +EXPORT_SYMBOL_GPL vmlinux 0x3af43c51 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x3b180c8c led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3b19ee01 irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x3b5d6570 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x3bc89603 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x3c0cc3f8 tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0x3c40577e page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x3c48e8c5 snd_soc_add_card_controls +EXPORT_SYMBOL_GPL vmlinux 0x3c493904 ping_proc_register +EXPORT_SYMBOL_GPL vmlinux 0x3c591f35 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3c63f0f9 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x3c831441 arm_check_condition +EXPORT_SYMBOL_GPL vmlinux 0x3c8424a0 clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c8d28cc of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x3c8f2a9e bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x3c9289fe ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x3c93135c tpm_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3ca17104 __snd_printk +EXPORT_SYMBOL_GPL vmlinux 0x3cac5d2a bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0x3cacd821 blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0x3ccffec8 of_irq_parse_one +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd74e15 snd_soc_info_volsw +EXPORT_SYMBOL_GPL vmlinux 0x3cdc8dde securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x3d1eee83 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x3d286e4e usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x3d29bb9d dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d3fe192 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x3d65147b task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0x3d7fec5e find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x3dc526a9 arizona_of_match +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3e03fc20 devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x3e09fb7d snd_soc_info_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x3e0b1a3b ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x3e2fa31f wm8997_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3e452a00 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e8265e3 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x3e84a23f __mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x3e971b8d regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x3eafc068 ahci_platform_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x3ec3ede9 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x3ed8371b crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f0ee307 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x3f23c59c sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x3f35b9b6 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x3f61c2f3 regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3f620a84 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x3f69c73a unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x3f779c98 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x3f978c2e usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x3fa24511 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x3faf0e37 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x3fcabd10 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x3ffe01d5 device_add +EXPORT_SYMBOL_GPL vmlinux 0x40085ff3 snd_hwparams_to_dma_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x402b1076 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x4032fffa srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x40440fce amba_device_put +EXPORT_SYMBOL_GPL vmlinux 0x4045c494 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x4047321e fuse_get_req_for_background +EXPORT_SYMBOL_GPL vmlinux 0x4065d168 pm_print_active_wakeup_sources +EXPORT_SYMBOL_GPL vmlinux 0x407d6770 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x409d9ab9 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40b0cd30 snd_dmaengine_pcm_trigger +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40d9902e tcp_peer_is_proven +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x41003430 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x412d6466 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x416d98a6 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x416faf66 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x41741dcd fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x4179565d platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x417f2ce5 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x4184de3e regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x41d800ad da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x41e089dc sec_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x420ca256 subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x4219ff58 omap_dm_timer_request_specific +EXPORT_SYMBOL_GPL vmlinux 0x4249cdc7 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x42541aa8 regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x427f33bf ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x428c6dbc cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x428d951d relay_close +EXPORT_SYMBOL_GPL vmlinux 0x42b364ef scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x42c9d405 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x42cf9fdc snd_soc_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0x430e5257 of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0x431289dd digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0x4315b7ec blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x43166e83 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x432c8235 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x433a1e7b scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x4396aa4f rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x43a53735 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x43eeaced tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x440e1ac3 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x444f1735 cpu_pm_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4475e427 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x44811061 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44abedc0 perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0x44e0ede7 ahci_platform_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4544438b sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x454c15ae __smp_call_function_single +EXPORT_SYMBOL_GPL vmlinux 0x45658c5f srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x457b77ca of_fixed_factor_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0x4594dec3 __get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x45ba1367 btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45d3a0ef usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x45df9cc5 regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x45e571fd regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x46066e5b perf_pmu_name +EXPORT_SYMBOL_GPL vmlinux 0x460f7531 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x461de5e8 sdhci_pci_o2_probe_slot +EXPORT_SYMBOL_GPL vmlinux 0x463e7228 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL vmlinux 0x4646dfa1 snd_soc_limit_volume +EXPORT_SYMBOL_GPL vmlinux 0x464b1748 irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x4658f925 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x467cf33a ahci_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x46d95a8c ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x470fa426 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x472543c9 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x47263185 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x472ce3b1 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x475351f3 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x475f6736 blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x477a6ec6 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x47a190ae unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47af7658 task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x481d6ac6 virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0x482467c0 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x4873adf0 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x48903f44 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x4891b842 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x48b07de3 ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x48ba2763 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x48ca8947 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x492caf77 of_regulator_match +EXPORT_SYMBOL_GPL vmlinux 0x49417412 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x4946da71 omap_iotlb_cr_to_e +EXPORT_SYMBOL_GPL vmlinux 0x497c3f61 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x4982a57f probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x498d293a trace_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x4995b9d5 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x499b8891 serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x49cf2a6a class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x49d1f720 tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0x49ed4c50 arizona_of_get_type +EXPORT_SYMBOL_GPL vmlinux 0x49fe4b5b bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x4a494fac dma_buf_put +EXPORT_SYMBOL_GPL vmlinux 0x4a59a61b seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x4a5a80d8 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4ab1a16b usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x4ac3bf76 usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x4ac57cab ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x4ae62f87 ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0x4ae84ada crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x4afb3def ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x4b0209c4 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x4b120a88 snd_ctl_activate_id +EXPORT_SYMBOL_GPL vmlinux 0x4b17b645 of_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x4b225288 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x4b3bedbc inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x4b3c9c00 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x4b417e16 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x4b466d80 snd_soc_bytes_info +EXPORT_SYMBOL_GPL vmlinux 0x4b62ef8a dma_buf_fd +EXPORT_SYMBOL_GPL vmlinux 0x4b6f7a74 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x4b70b561 devm_usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x4b98c6db tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x4ba04bd8 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x4bafcdd8 btree_update +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bca72dc usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x4bed6d5e spi_master_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4bfbafa1 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x4bff4b40 regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x4c2996f5 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x4c2e1f24 clk_disable +EXPORT_SYMBOL_GPL vmlinux 0x4c44cd11 wm5110_patch +EXPORT_SYMBOL_GPL vmlinux 0x4c47ec15 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x4c595ce9 mtd_erase +EXPORT_SYMBOL_GPL vmlinux 0x4c602bf1 __blkg_release_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4c72b6a4 thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c7d811f snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL vmlinux 0x4c97af5c ahci_platform_ops +EXPORT_SYMBOL_GPL vmlinux 0x4ca4c9df clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x4cac3623 devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4cb8ea6d of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x4d094f8c inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0x4d0efd00 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x4d273394 spi_master_resume +EXPORT_SYMBOL_GPL vmlinux 0x4d38f1e0 bL_switcher_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4d475d82 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x4d650147 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x4d66da34 omap_dm_timer_read_counter +EXPORT_SYMBOL_GPL vmlinux 0x4d67b028 ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4d6ea4cd usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x4da28675 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x4dac8a4e add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x4dc1541c ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4de6e0b7 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e1d373f pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x4e1e7ae1 pci_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x4e242f5f pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x4e494483 ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0x4e923a48 sdhci_alloc_host +EXPORT_SYMBOL_GPL vmlinux 0x4e99dcda usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x4eaeb6e9 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x4ec62093 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x4ecdd8c4 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x4ee55953 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x4eea221c blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x4ef29549 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x4ef58f43 sdhci_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4ef6e1d8 pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x4efb4aea fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x4f020dee public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x4f06c642 iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0x4f07a9bc sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x4f4dafba device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x4f524926 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x4f6172ff crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x4f7b1446 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x4f8e3413 usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0x4f98d766 cpu_pm_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4fa09a3d alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0x4fc52e8d __tracepoint_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x4fd03be3 usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4ff126f5 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0x5002c03b pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x5053e2a6 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x50601122 of_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x506691f1 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x506cc085 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x50890af1 pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50ba9a99 amba_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x50bcd52f ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50c8a4e8 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x50df07d9 omap_dm_timer_start +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x51239579 arizona_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x512cf16c wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x513ca69b mdio_mux_init +EXPORT_SYMBOL_GPL vmlinux 0x5151d227 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x516f7537 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x5189bc98 devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0x51c6d174 bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x51c84859 ahci_platform_enable_clks +EXPORT_SYMBOL_GPL vmlinux 0x51d17cb4 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x51e2e20c sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x51e4e101 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x51e507f6 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x51ecc50f rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x5200c3b4 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x5207e810 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL vmlinux 0x52120583 of_get_display_timings +EXPORT_SYMBOL_GPL vmlinux 0x52152d8c sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x52212010 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x52297007 dapm_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0x5250915a ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x526e00c2 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x5272d8bc __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0x52a41251 __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x52b1001f driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x52c0d5d8 scatterwalk_bytes_sglen +EXPORT_SYMBOL_GPL vmlinux 0x52d4e50d securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x53043983 extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53691bbb cgroup_taskset_next +EXPORT_SYMBOL_GPL vmlinux 0x538ce873 pinctrl_find_and_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x538f9bcd serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0x5390ea8b platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x53a5c1f5 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x53a5fd21 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x53b315e7 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x53bb6bbd cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x5414f0ac get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x542a6feb regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x5436d488 usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x544aab61 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x5450b248 pinctrl_force_default +EXPORT_SYMBOL_GPL vmlinux 0x54536677 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL vmlinux 0x545fec86 percpu_ida_for_each_free +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x5461c46f ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x5469c583 regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x5473833c iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0x54740eb7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x54741f0c snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x54903cea snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54a18478 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x54a71779 sdhci_pci_o2_probe +EXPORT_SYMBOL_GPL vmlinux 0x54ebda6b bgpio_remove +EXPORT_SYMBOL_GPL vmlinux 0x54f75c51 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x55226c68 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x552548ae debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x552b6e8d usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x553b3547 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5558f8ab debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x55777e01 list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x55899daa netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0x559d365b snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL vmlinux 0x55f04c21 trace_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x5607bd0d snd_soc_register_platform +EXPORT_SYMBOL_GPL vmlinux 0x561e4b77 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x5652a29f class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x5692386f gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x5692fc35 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0x569460e6 sdhci_get_of_property +EXPORT_SYMBOL_GPL vmlinux 0x56ad5c63 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56c84bbd unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x56cc2c50 devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x56d199c6 arizona_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x56d697ce cpu_up +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56e9103b cpu_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x56eaf6fe __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x56fea306 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x57231f45 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x5725b4ef proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0x5732f04e platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x57552937 omap_dm_timer_request_by_node +EXPORT_SYMBOL_GPL vmlinux 0x57875a22 usb_stor_reset_resume +EXPORT_SYMBOL_GPL vmlinux 0x578b44a1 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57c23caa sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x57d54a61 pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x57ea7c01 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x57ea8952 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x57fee84d crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x582be91b wm8997_patch +EXPORT_SYMBOL_GPL vmlinux 0x582d17e6 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x58413099 ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x58631dab imx_audmux_v2_configure_port +EXPORT_SYMBOL_GPL vmlinux 0x5870d47b extcon_set_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x58743c07 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x587ad1ba sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x589e4569 syscon_regmap_lookup_by_pdevname +EXPORT_SYMBOL_GPL vmlinux 0x589e73d3 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x58aa646d platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x58b03521 iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0x5901fde8 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x59033aa1 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x590a57c5 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x590df49a fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x59294a3b sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x59303854 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL vmlinux 0x5947abbe max77693_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x595a8917 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x599516b4 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x59959d0a cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x59a01a17 snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL vmlinux 0x59a6e91d clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x59bb211c ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x59e2743e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x59f132ca snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL vmlinux 0x59f7522d snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL vmlinux 0x5a0b1cd0 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x5a4de4b3 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x5a562786 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x5a60bb29 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a8f213c cpdma_ctlr_eoi +EXPORT_SYMBOL_GPL vmlinux 0x5a8f3b69 of_irq_parse_raw +EXPORT_SYMBOL_GPL vmlinux 0x5ab40b93 edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x5acf6567 btree_init +EXPORT_SYMBOL_GPL vmlinux 0x5ad71e85 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5afb47fc of_irq_to_resource_table +EXPORT_SYMBOL_GPL vmlinux 0x5b0432fd ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x5b0f7744 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x5b14b3c0 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x5b1cfbcd of_get_fb_videomode +EXPORT_SYMBOL_GPL vmlinux 0x5b4bf06d mtd_del_partition +EXPORT_SYMBOL_GPL vmlinux 0x5b4e379c of_prop_next_u32 +EXPORT_SYMBOL_GPL vmlinux 0x5b5ddd20 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x5b7364d2 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x5b8a432b power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x5b9763e4 sdhci_pltfm_register +EXPORT_SYMBOL_GPL vmlinux 0x5bc9a612 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x5be4f2a6 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x5bf35d29 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL vmlinux 0x5c06fb6b wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x5c2fe4a5 cpdma_chan_stop +EXPORT_SYMBOL_GPL vmlinux 0x5c34dd61 ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x5c3a570c sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x5c481566 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x5c693641 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5c9cfb0f hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x5c9dc392 ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5ca2a841 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x5cabdced dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5cc7485c pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x5d03bf75 device_reset +EXPORT_SYMBOL_GPL vmlinux 0x5d12e48f input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x5d1c1bac blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x5d2877b6 virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0x5d4cef2e irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x5d519de8 of_init_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x5d51bcf7 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x5d624ac8 snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL vmlinux 0x5d8746f6 omap_dm_timer_set_load +EXPORT_SYMBOL_GPL vmlinux 0x5d9c964a perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x5d9f551a snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL vmlinux 0x5da1c056 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x5dae2cc6 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x5dc39071 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5dfd6205 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x5e231cd4 pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x5e3ad14d mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x5e51cd74 swiotlb_nr_tbl +EXPORT_SYMBOL_GPL vmlinux 0x5e5e1e32 usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x5e671ca9 serial8250_tx_dma +EXPORT_SYMBOL_GPL vmlinux 0x5e8d7eb7 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x5e93514d relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x5e9380d2 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5ed3c678 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x5ee09491 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x5ee67f20 fill_inquiry_response +EXPORT_SYMBOL_GPL vmlinux 0x5ee82c13 regmap_update_bits_async +EXPORT_SYMBOL_GPL vmlinux 0x5eec51ea devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x5f01f727 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x5f16aa22 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f419491 gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x5f463c19 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x5f5cfac1 pinctrl_utils_reserve_map +EXPORT_SYMBOL_GPL vmlinux 0x5f74b737 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x5fd186fb tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x5fe621fb snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL vmlinux 0x6017c65b debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x605f0ef9 omap_dm_timer_free +EXPORT_SYMBOL_GPL vmlinux 0x6062878d tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x60654de1 input_class +EXPORT_SYMBOL_GPL vmlinux 0x6075d0c7 omap_tll_init +EXPORT_SYMBOL_GPL vmlinux 0x6079dc18 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x607ecdcd of_irq_parse_and_map_pci +EXPORT_SYMBOL_GPL vmlinux 0x6094685f wm8997_irq +EXPORT_SYMBOL_GPL vmlinux 0x609b155b dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60b9bef1 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x60d1d2df driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x60fef0e2 snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL vmlinux 0x610399e8 dapm_mark_io_dirty +EXPORT_SYMBOL_GPL vmlinux 0x610a967a crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x610edff5 dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0x611654b4 snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL vmlinux 0x61287270 arm_iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x613b7b68 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x61480a76 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x61502186 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x61b99b9c lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0x61bf689d bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x625eb9f8 pwm_can_sleep +EXPORT_SYMBOL_GPL vmlinux 0x627f928b wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x628333f8 usb_gadget_unmap_request +EXPORT_SYMBOL_GPL vmlinux 0x62a1612c pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x62bebaa6 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL vmlinux 0x62c25e07 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x62ca956a transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x630d1ef6 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x6313750c tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x6318757f mdio_mux_uninit +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x63330ffd ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x633f8186 amba_apb_device_add +EXPORT_SYMBOL_GPL vmlinux 0x63786f34 pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0x6386aea3 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x6390efda of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x6393f075 vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x63ada971 watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x63b8edbf mount_mtd +EXPORT_SYMBOL_GPL vmlinux 0x63d41452 bmp085_probe +EXPORT_SYMBOL_GPL vmlinux 0x63e433e0 ahci_start_fis_rx +EXPORT_SYMBOL_GPL vmlinux 0x64256424 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0x644e303b usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x645b3127 blkg_stat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x646ce2f0 of_get_display_timing +EXPORT_SYMBOL_GPL vmlinux 0x647537f3 pl320_ipc_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6477f03a swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x64a2cf52 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x64ac011a skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x64b71737 regmap_update_bits_check +EXPORT_SYMBOL_GPL vmlinux 0x64d4ea4f rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x64dc0682 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x653a7ca7 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x6564d807 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x6590407c con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x65b81784 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x66263ca9 mtd_panic_write +EXPORT_SYMBOL_GPL vmlinux 0x662a0c3f x509_get_sig_params +EXPORT_SYMBOL_GPL vmlinux 0x6636d98b ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x663cbda1 snd_dmaengine_pcm_open +EXPORT_SYMBOL_GPL vmlinux 0x66400106 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0x665211ce cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x66603130 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x66791703 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66860d99 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x66ae0985 amba_device_add +EXPORT_SYMBOL_GPL vmlinux 0x66bc9324 snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL vmlinux 0x66c7f6cd ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x66d38ebe usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e01c39 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x67087da5 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x670ee745 regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0x67128609 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x67193dee exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x672bbed8 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x6736b6bc get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x674e13e1 public_key_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6751a492 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x67643d26 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x6789c396 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67a39841 arm_iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x67b5bb3b ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x67e0b60c regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x67f6e43e pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x6812cf8d __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x681a979b pin_is_valid +EXPORT_SYMBOL_GPL vmlinux 0x682bdc5a snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL vmlinux 0x683b0154 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x6851c986 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x687934e9 gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x687c3065 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL vmlinux 0x68956406 static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x68b2f1e7 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x68c37981 ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0x68c7f7a1 devm_snd_soc_register_card +EXPORT_SYMBOL_GPL vmlinux 0x68e47b2c cpdma_ctlr_destroy +EXPORT_SYMBOL_GPL vmlinux 0x68e7dc51 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x6902af8e ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x6902f2e3 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x6942a383 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x6945725e mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0x694be42a usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0x694da7a4 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x694f923e ahci_thread_fn +EXPORT_SYMBOL_GPL vmlinux 0x6964947b pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x69855640 iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0x6986781b sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x69af2f5d serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x69cb87c6 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x69cf6278 gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0x69d4f8eb sdhci_pci_o2_resume +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a0968d1 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x6a1733eb iommu_group_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6a19e1e8 omap_dm_timer_set_int_enable +EXPORT_SYMBOL_GPL vmlinux 0x6a1a64dd phy_pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0x6a28760c ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x6a4a9f8e ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0x6a580ce0 regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0x6a5ac6bc crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a8d057c imx_pcm_dma_init +EXPORT_SYMBOL_GPL vmlinux 0x6a8e2ec9 pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x6aaac9b4 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x6ab6d14b pinctrl_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0x6acce91a snd_soc_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6aee7163 of_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x6afaff98 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x6b01f3cf pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x6b15c3c7 unregister_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b395892 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL vmlinux 0x6b83b6ba arizona_clk32k_disable +EXPORT_SYMBOL_GPL vmlinux 0x6b9371f0 snd_dmaengine_pcm_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6b94728b mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x6b9e7ad7 of_clk_src_simple_get +EXPORT_SYMBOL_GPL vmlinux 0x6ba04a96 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x6ba3de4c scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x6bb66eaf i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x6bc52cb1 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x6c1b09ab gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x6c2b79d7 devm_spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c749afe __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6ca9e04f ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x6cc78c5c set_irq_flags +EXPORT_SYMBOL_GPL vmlinux 0x6cd21997 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x6cd4ea62 wm5110_irq +EXPORT_SYMBOL_GPL vmlinux 0x6cf6c4c1 led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d31e93b tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x6d339861 __tracepoint_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x6d6bdf15 omap_iommu_restore_ctx +EXPORT_SYMBOL_GPL vmlinux 0x6d91a17a vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x6d95a14f sec_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x6d98e849 ahci_shost_attrs +EXPORT_SYMBOL_GPL vmlinux 0x6dc8318e sdhci_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x6de9d950 iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x6dfdd58b regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x6e04a077 usb_bind_phy +EXPORT_SYMBOL_GPL vmlinux 0x6e05c4e7 ahci_hw_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x6e4721b3 iommu_domain_set_attr +EXPORT_SYMBOL_GPL vmlinux 0x6e65c57d omap_dm_timer_request +EXPORT_SYMBOL_GPL vmlinux 0x6e751bd6 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x6e7943ec iommu_group_id +EXPORT_SYMBOL_GPL vmlinux 0x6e839265 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6ea88f5b blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x6ea91a88 arm_iommu_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x6eb956c1 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x6eeb76af snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f214546 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x6f45db5b regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x6f5308be md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x6f5c79c1 blkg_lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x6f648e05 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x6fa62807 pinctrl_dev_get_devname +EXPORT_SYMBOL_GPL vmlinux 0x6fad558a thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL vmlinux 0x6fcfeaf5 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x700af4e0 snd_soc_test_bits +EXPORT_SYMBOL_GPL vmlinux 0x703d216e device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x703f16bc ahci_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70b52144 cgroup_taskset_first +EXPORT_SYMBOL_GPL vmlinux 0x70bb651d __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x70c3ca7a stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70d85f89 alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x70e5ef52 pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0x71008581 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x710428c7 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7127e664 dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x713a6027 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71540ffa regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x715c58ef omap_dm_timer_stop +EXPORT_SYMBOL_GPL vmlinux 0x715ec57e blk_queue_bypass_start +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x718fd5d6 ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0x71930ed3 of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x71949e51 otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0x71a3f960 devm_snd_soc_register_component +EXPORT_SYMBOL_GPL vmlinux 0x71a79ff9 devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x71aac82b tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x71ae6f83 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x71c45e9c regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x71e36225 public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x7216d2e7 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL vmlinux 0x72249582 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x722d3b62 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x7244706e pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x724ec262 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x72501bb7 iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0x7262fcbc snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x726a1ba8 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x727a5269 nand_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x7291019b __cci_control_port_by_index +EXPORT_SYMBOL_GPL vmlinux 0x72a31493 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x72ce099a regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x72d0a229 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x72deb3a2 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x72f62686 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x730bd0c7 asic3_write_register +EXPORT_SYMBOL_GPL vmlinux 0x73178128 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x73196976 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x7323a879 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL vmlinux 0x734a6788 extcon_unregister_interest +EXPORT_SYMBOL_GPL vmlinux 0x737bd7e6 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x73946dc7 bgpio_init +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73c832f2 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73efb468 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x73f5f197 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x740684b0 snd_kctl_jack_new +EXPORT_SYMBOL_GPL vmlinux 0x741e9d95 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7422c95e gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x74284826 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x744491b1 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x7448762a snd_soc_resume +EXPORT_SYMBOL_GPL vmlinux 0x74628570 context_tracking +EXPORT_SYMBOL_GPL vmlinux 0x7464ea38 dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x74750d38 imx_usbmisc_init_post +EXPORT_SYMBOL_GPL vmlinux 0x74802702 pinctrl_find_gpio_range_from_pin +EXPORT_SYMBOL_GPL vmlinux 0x7482027d pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x7485ee6d __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x748fe31b user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x749e709f cgroup_taskset_cur_css +EXPORT_SYMBOL_GPL vmlinux 0x74a18ee2 snd_soc_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x74b2d04d iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74e58818 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x74f1b16d xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x754447ad iommu_domain_window_disable +EXPORT_SYMBOL_GPL vmlinux 0x758a782e blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x75953e6d init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x759cd4d1 dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x75afe527 ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0x75b825f9 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x75c2b9f1 memalloc_socks +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x761e0aca btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x7629af6e relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x764928a2 cpdma_chan_create +EXPORT_SYMBOL_GPL vmlinux 0x764e5025 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7688fd31 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x768c72ff debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x76ba2880 omap_dm_timer_set_match +EXPORT_SYMBOL_GPL vmlinux 0x76bce3a5 ahci_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x76d07d6e gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x770b9911 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x771190b9 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL vmlinux 0x771fca68 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x772070c4 pwm_disable +EXPORT_SYMBOL_GPL vmlinux 0x77214cea sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x7726bb42 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x7729cbdd task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x776af16b tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x7775737f subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x7776bdee spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x777da1aa inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x778c695f mtd_write +EXPORT_SYMBOL_GPL vmlinux 0x77931e2a snd_soc_cache_write +EXPORT_SYMBOL_GPL vmlinux 0x77d63df6 serial8250_rx_dma +EXPORT_SYMBOL_GPL vmlinux 0x77e2709d cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0x77f309bd snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL vmlinux 0x782671b5 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x78368c02 dev_pm_opp_get_freq +EXPORT_SYMBOL_GPL vmlinux 0x7840b42c hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x785fa8cd pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x78bcb9e7 pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x78eb49bc irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x78f7436b ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x790d3dd4 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x79225e04 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x79416233 debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x796694fa irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x797f67da ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x79891433 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x79a0029f ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x79a759d5 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x79ad1970 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x79cba1f2 smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x79d2a570 pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0x7a06007b da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x7a146614 pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0x7a1e1c92 tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x7a2eace3 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7a319404 clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x7a431bb2 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x7a858e96 udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0x7a8f96fc platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7ab3ca18 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x7ac5cb52 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7afce49c gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x7b039914 snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b1d0771 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b1da4e0 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x7b1f6bce ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x7b2fcea4 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x7b4f67bc spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x7b4f9a70 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7b53962a clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x7b6413a3 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x7bea9a61 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x7bfdffe9 md_run +EXPORT_SYMBOL_GPL vmlinux 0x7c1091d4 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0x7c1d4b66 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x7c227088 clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x7c23d81c inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7c260d37 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x7c346357 pkey_algo +EXPORT_SYMBOL_GPL vmlinux 0x7c53de2a regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x7c6a49ce unix_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x7c72ebc3 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x7c83a6fa usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x7c8b6e77 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x7cc1b7fd max77693_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7cc5d627 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7cc7de1c x509_check_signature +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ce5b92a gpiod_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x7ce77107 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cf80453 irq_create_direct_mapping +EXPORT_SYMBOL_GPL vmlinux 0x7d092068 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x7d397cc7 gpiod_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d4516df fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d773f60 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x7d98ff32 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc019d8 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x7dfefda1 dev_pm_opp_enable +EXPORT_SYMBOL_GPL vmlinux 0x7e10e761 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0x7e16f8fa ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x7e399a57 mtd_block_isbad +EXPORT_SYMBOL_GPL vmlinux 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e6a44a1 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x7e9c6f10 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x7eb7b3f8 of_get_dma_window +EXPORT_SYMBOL_GPL vmlinux 0x7ec30a3c sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x7ed0c60a phy_get +EXPORT_SYMBOL_GPL vmlinux 0x7ed68941 asic3_read_register +EXPORT_SYMBOL_GPL vmlinux 0x7eeafeab pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x7f033556 regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0x7f0d0954 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x7f19f22d blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x7f60e837 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x7f89fdd4 usb_stor_CB_reset +EXPORT_SYMBOL_GPL vmlinux 0x7f9d4757 uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x7fab5350 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fb61b14 uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0x7fb67ba1 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x7ffff202 mtd_add_partition +EXPORT_SYMBOL_GPL vmlinux 0x8010d2c6 percpu_ida_free +EXPORT_SYMBOL_GPL vmlinux 0x80397ae7 netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x8056dc5d ping_close +EXPORT_SYMBOL_GPL vmlinux 0x806f3611 mtd_lock +EXPORT_SYMBOL_GPL vmlinux 0x80709111 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x80733a92 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80a0123d rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x80a3cb51 sock_update_netprioidx +EXPORT_SYMBOL_GPL vmlinux 0x80a65392 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x80c52b33 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80e68a09 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x81113308 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x81390d1e ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x8140842a gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x8173e628 dev_pm_opp_find_freq_floor +EXPORT_SYMBOL_GPL vmlinux 0x81955680 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x81dc5ad1 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x81dc6695 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x81f45c82 of_usb_get_maximum_speed +EXPORT_SYMBOL_GPL vmlinux 0x81fb176a mmc_send_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x82199985 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x8224c7d2 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0x825c63dc fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x8265a7b0 ahci_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x8283a925 dapm_regulator_event +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x8296a8b3 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x82a4f330 __clk_register +EXPORT_SYMBOL_GPL vmlinux 0x82cb40ed omap_uninstall_iommu_arch +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82fff37e sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x8318eb66 clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8326f327 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x833d9d5b i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x834616bb sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x83500260 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x837892f7 dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x8386a31e phy_create +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x83a58ab0 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x83a5ae2e __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x83ef0f7b phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x83ef567e ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x84277541 dev_pm_opp_get_opp_count +EXPORT_SYMBOL_GPL vmlinux 0x848bbe35 balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x84a86324 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x84b2a08a ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x850ff320 devm_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x8527cc83 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x852e568d of_get_nand_ecc_mode +EXPORT_SYMBOL_GPL vmlinux 0x85469eb0 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x8552436c pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x856444cc tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0x856629e7 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x8574ca6c gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x85820288 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x8598d5a7 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x85b14d33 clk_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x85b4b736 usb_del_gadget_udc +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c52135 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85cd6fbd crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x85e5c32c omap_dm_timer_disable +EXPORT_SYMBOL_GPL vmlinux 0x860239b7 regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x862b9816 cpu_topology +EXPORT_SYMBOL_GPL vmlinux 0x862f4fb9 regmap_field_write +EXPORT_SYMBOL_GPL vmlinux 0x86361afb sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x866b9687 wm8997_aod +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86951a66 udc_attach_driver +EXPORT_SYMBOL_GPL vmlinux 0x86a3dad8 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x86af39a3 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x86cd9e9e irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x86db36b7 key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86ffbf0b hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x870a0ac6 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x87418b91 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x87519171 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8763e5d2 css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x8764ca46 pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x876d3cee irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x877ba1dd pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x87984b16 __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x87adf99f tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0x87b91678 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x87ba8758 __cci_control_port_by_device +EXPORT_SYMBOL_GPL vmlinux 0x87bb4e32 of_usb_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x87d4f053 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x87e518e9 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x880c97b9 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x883c2740 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x8890ce86 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8897f91b xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b5647c trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x88cb5dd4 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89409837 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x89485687 iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x896e9002 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x89b9ce7a __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89dbdcc1 __tracepoint_map +EXPORT_SYMBOL_GPL vmlinux 0x89de95ef usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x8a04b9fe tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x8a27046a omap_dm_timer_write_status +EXPORT_SYMBOL_GPL vmlinux 0x8a2b14ba wm5110_aod +EXPORT_SYMBOL_GPL vmlinux 0x8a6b30fb fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8a93218c crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x8a9f3937 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x8aa92d8d pinctrl_pm_select_sleep_state +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ae152b5 of_get_nand_bus_width +EXPORT_SYMBOL_GPL vmlinux 0x8aea4d44 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0x8af64477 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x8b172426 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8b22a45a anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8b41042b devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x8b775d3a __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x8b9286d8 kobj_completion_release +EXPORT_SYMBOL_GPL vmlinux 0x8b948c0a sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x8b9680b5 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0x8b9b1071 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8ba854ac ahci_em_messages +EXPORT_SYMBOL_GPL vmlinux 0x8bd1d559 regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x8bd6e81e wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x8bf093c4 devm_rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8bf93c7a da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c1f1a20 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x8c2666ea snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x8c2f6941 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x8c40f2ff tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x8c60b340 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x8c766966 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8cb0763e balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x8ce06c71 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x8ce2e2e6 devres_release +EXPORT_SYMBOL_GPL vmlinux 0x8d22bb58 iommu_group_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8d582a13 snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL vmlinux 0x8da17b42 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x8dcb40b0 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x8dcc48ea fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x8e019752 ci_hdrc_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x8e2b25c2 videomode_from_timings +EXPORT_SYMBOL_GPL vmlinux 0x8e344d09 snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL vmlinux 0x8e4b0571 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x8e7894bd __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8e9c7933 gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x8eb55553 snd_soc_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x8ebed6a8 key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x8ec4e5e1 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x8eca12f8 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x8eefa550 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8ef113d0 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x8effebd3 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x8f01fda1 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x8f047409 tegra_pinctrl_probe +EXPORT_SYMBOL_GPL vmlinux 0x8f27f7c4 sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL vmlinux 0x8f2fa801 amba_apb_device_add_res +EXPORT_SYMBOL_GPL vmlinux 0x8f4715ca pwm_set_polarity +EXPORT_SYMBOL_GPL vmlinux 0x8f4b4f87 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x8f52a102 ahci_platform_enable_resources +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f8128ce regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0x8f83f819 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x8f902a2c gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x8fbe84bb mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x8fce3eed ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x8fd8b04f get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x8ff038eb iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0x8ff152ac bmp085_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x90197759 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x90228869 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x9055fd5c usb_gadget_set_state +EXPORT_SYMBOL_GPL vmlinux 0x90574050 cci_ace_get_port +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x9065a313 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL vmlinux 0x90705b7f syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x9082d068 kprobe_decode_arm_table +EXPORT_SYMBOL_GPL vmlinux 0x90844388 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x9094b098 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90b15485 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x90e66d47 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x90eecb51 blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9106c5df verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x911c693e snd_soc_read +EXPORT_SYMBOL_GPL vmlinux 0x912306c3 __netpoll_free_async +EXPORT_SYMBOL_GPL vmlinux 0x91286982 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x912e4a44 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x91448092 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x914c5d34 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x915ee7cc snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL vmlinux 0x916ec2e6 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x918f3394 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0x919b4d7d iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x919c7911 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x91c9e961 watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0x91d87533 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x91dad723 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x91dc9392 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x924417c9 ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x925afd87 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x92671251 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x928d0e62 device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92cd8ea1 ahci_save_initial_config +EXPORT_SYMBOL_GPL vmlinux 0x92cde9f5 css_next_descendant_post +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92d59233 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x92db8f68 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x92dd0eae wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x930ed9b9 of_usb_get_dr_mode +EXPORT_SYMBOL_GPL vmlinux 0x9314617e device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x931fef1c rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x932a8094 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x932e787a rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x933ccf04 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x93443d21 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x94070249 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x943ff9bf usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL vmlinux 0x948cfced snd_dmaengine_pcm_close +EXPORT_SYMBOL_GPL vmlinux 0x949334db cpdma_ctlr_start +EXPORT_SYMBOL_GPL vmlinux 0x949f9fe4 __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0x94a5d5de ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94abb745 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0x94b76161 usb_stor_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x94d4ca51 tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0x94dee368 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x94e1823c hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x9527b6e1 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x9527deb0 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x95349b53 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x95376c7d sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x955cb9ff usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0x956520eb pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0x95701075 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x9586a6ed cpdma_chan_get_stats +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x95971215 skb_gso_transport_seglen +EXPORT_SYMBOL_GPL vmlinux 0x95ae3aee device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x95c09801 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x95c19432 of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x95c578a0 ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x95c86ab7 regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x95d087d5 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x95d4e17f regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x95eceb06 device_store_int +EXPORT_SYMBOL_GPL vmlinux 0x95f6ee15 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x95fd98c1 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x961845a7 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x9623d4e6 dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0x9634bb6c clk_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x969d7722 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x96a203a7 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x96a21e2e usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x96a22790 vmcore_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x96ad5aa2 devm_pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x96d7cb05 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x96db6f61 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x96e3ab6b __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x96e7e64b gpiochip_remove_pin_ranges +EXPORT_SYMBOL_GPL vmlinux 0x97069bc1 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x9730c462 gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x973c1eb3 tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x974126a2 subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x9745c52a of_fixed_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0x97704c40 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x97a3ec56 ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x97a9e78b wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x97ae1771 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x97be20fb crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x97ecc226 pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x97ee5058 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x980348f2 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x98124e81 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x984da0ed simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x984fc0d7 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9861c94a wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x98935fb5 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x98bcb813 dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL vmlinux 0x98c9f584 klist_init +EXPORT_SYMBOL_GPL vmlinux 0x98fa1e20 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x9911c430 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x9920e6a1 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x9932ded2 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x9944e470 sk_unattached_filter_create +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x99689468 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x99693b15 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x9973add9 __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x99872726 arizona_dev_init +EXPORT_SYMBOL_GPL vmlinux 0x99878ce4 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x999aaa5b blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0x99ab7b70 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x99b59aac perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x99c21b8b usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x99cc0aed pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x99dfcd06 virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0x99e2f41f ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x99e60d56 omap_dm_timer_trigger +EXPORT_SYMBOL_GPL vmlinux 0x99f67c05 css_next_child +EXPORT_SYMBOL_GPL vmlinux 0x99f9a914 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x9a0cf70c map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a181b50 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x9a3e328d pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0x9a5f9fe4 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x9a89dbf7 lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9aca444b get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9b126ce0 ahci_do_softreset +EXPORT_SYMBOL_GPL vmlinux 0x9b28208b scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x9b391822 dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x9b519ea7 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x9b5879c4 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x9b5ebc98 sdhci_add_host +EXPORT_SYMBOL_GPL vmlinux 0x9b60d73c pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x9b6c8479 __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x9b6ee40f usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x9b766126 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x9b89f709 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x9ba3361d tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x9baaa4d3 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x9bae91f3 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x9bd22c19 md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x9bea7a40 wm5102_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9bf7afd9 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x9bfb14ac devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x9c052aa4 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9c3a0926 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x9c3e5b59 percpu_ida_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9c570aa8 ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x9c7d0c54 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x9ca47a85 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x9cc4f70a register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9cdc9867 cpdma_ctlr_stop +EXPORT_SYMBOL_GPL vmlinux 0x9cfc9253 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x9d06f9f0 snd_compress_new +EXPORT_SYMBOL_GPL vmlinux 0x9d0dbc0e unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x9d138533 percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x9d47bd1f snd_soc_get_strobe +EXPORT_SYMBOL_GPL vmlinux 0x9d8167f5 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x9d82b602 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x9d8331c0 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x9d920d60 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x9dcfa570 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x9dd2c202 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x9dd7ac12 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x9df6bbc2 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x9dfdf722 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x9e02cdaf powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0x9e458cf1 omap_dm_timer_set_source +EXPORT_SYMBOL_GPL vmlinux 0x9e79f250 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x9ea556f8 btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9eb92dd3 dma_buf_kmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x9ebfe06e list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9eee094d amba_ahb_device_add +EXPORT_SYMBOL_GPL vmlinux 0x9f0664bf dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x9f21f27b ata_sas_port_async_suspend +EXPORT_SYMBOL_GPL vmlinux 0x9f3f98e1 of_get_nand_on_flash_bbt +EXPORT_SYMBOL_GPL vmlinux 0x9f64084e single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x9f6e4f7f gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x9f7649d1 tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x9f8a5240 sdhci_pltfm_init +EXPORT_SYMBOL_GPL vmlinux 0x9fa6c424 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x9fab78d6 vchan_tx_submit +EXPORT_SYMBOL_GPL vmlinux 0x9faf15e2 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x9fb36380 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fdea465 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x9fecde47 kobj_completion_init +EXPORT_SYMBOL_GPL vmlinux 0x9ff6302b tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0x9ffef560 device_move +EXPORT_SYMBOL_GPL vmlinux 0xa0061f95 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xa007fbca mtd_unlock +EXPORT_SYMBOL_GPL vmlinux 0xa00908c8 irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0xa017aaf8 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xa02e0e35 snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL vmlinux 0xa02f104f __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xa0316846 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xa033df40 clk_register_divider +EXPORT_SYMBOL_GPL vmlinux 0xa064f393 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xa07c573e blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0xa0868d8a gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xa0986315 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xa09a42fa inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xa0b73045 sec_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xa0c8c95b dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0xa1131062 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xa12d929d desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0xa147884c crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0xa14932ff device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xa14b8283 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa157b83d dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xa1719d50 devm_phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa188e9ab blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xa1ad7cf9 snd_compress_deregister +EXPORT_SYMBOL_GPL vmlinux 0xa1b34cc1 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xa1bd7822 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa1ce98ea sdhci_resume_host +EXPORT_SYMBOL_GPL vmlinux 0xa1d67b83 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0xa2019583 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xa20685d8 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa23d6853 pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0xa248d9c9 of_extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa283d9ee nfq_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL vmlinux 0xa2b9c993 clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0xa2be05db irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0xa2e3b5e4 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xa2e4a04c __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0xa2ffe98d rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa32fed62 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xa3839679 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa389a49a profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3b3e0b3 irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0xa3b6fe65 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0xa3d3c4ab mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa41a3970 snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL vmlinux 0xa4257227 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0xa44c3e51 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa4671ac0 snd_dmaengine_pcm_pointer +EXPORT_SYMBOL_GPL vmlinux 0xa46b8818 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa497455d regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xa4ab0dac uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xa4b37c17 register_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0xa4c17236 md_stop +EXPORT_SYMBOL_GPL vmlinux 0xa4da8435 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xa4ea04ee of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0xa4ece59b omap_dm_timer_enable +EXPORT_SYMBOL_GPL vmlinux 0xa53563ae mtd_table_mutex +EXPORT_SYMBOL_GPL vmlinux 0xa5395cb2 ahci_platform_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0xa5432574 pinctrl_remove_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0xa56036e1 mtd_unpoint +EXPORT_SYMBOL_GPL vmlinux 0xa56d20ac adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa589ec4c regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5f8854a usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xa61b1477 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xa625110d kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0xa63a6a0b usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xa63aea6b sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0xa6465799 cpufreq_governor_dbs +EXPORT_SYMBOL_GPL vmlinux 0xa657daea unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xa6624de3 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0xa6687664 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xa66fd924 snd_soc_platform_read +EXPORT_SYMBOL_GPL vmlinux 0xa67517a0 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xa6a0a273 max77693_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa6b21ef2 dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0xa6d66008 mtd_get_device_size +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa710d1b2 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xa724257f init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xa728626c unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xa75312bc call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0xa7567778 devm_pwm_put +EXPORT_SYMBOL_GPL vmlinux 0xa7744ebb arizona_set_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0xa791a985 unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0xa7aed12e devm_regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xa7f09cea regmap_fields_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xa7f6c674 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa84f769b irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0xa850a11b sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa854e99b thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa8b389db get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0xa8b84f58 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xa8bc717e percpu_ida_free_tags +EXPORT_SYMBOL_GPL vmlinux 0xa8c865e9 pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0xa8cf6b99 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xa8e98132 btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0xa912a9d1 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0xa91eb94d device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0xa92877fb tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xa980af16 RSA_public_key_algorithm +EXPORT_SYMBOL_GPL vmlinux 0xa98175a7 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0xa987e5a6 fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0xa9a93535 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xa9bfc20a sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0xa9c1cac4 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0xa9c4d4b5 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xa9c7aa2f usb_stor_probe1 +EXPORT_SYMBOL_GPL vmlinux 0xa9e18049 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9ea9395 usb_gadget_probe_driver +EXPORT_SYMBOL_GPL vmlinux 0xa9fb74a2 of_device_is_stdout_path +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa3a17b1 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0xaa3be3ae usb_stor_bulk_srb +EXPORT_SYMBOL_GPL vmlinux 0xaa44acff omap_tll_disable +EXPORT_SYMBOL_GPL vmlinux 0xaa70f199 devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xaa7ab889 snd_soc_add_platform +EXPORT_SYMBOL_GPL vmlinux 0xaa84071d device_del +EXPORT_SYMBOL_GPL vmlinux 0xaa8d85ea ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaab45034 alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0xaab6df4d ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0xaac44284 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xaad1d0b8 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xaae54b69 cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0xaae605aa wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xab1a3062 blkg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xab46f4b4 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0xab5cf6ed ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xab615e32 snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab789b41 vtime_guest_enter +EXPORT_SYMBOL_GPL vmlinux 0xabc7ea0b __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL vmlinux 0xabdfbd1c __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0xabe19662 virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0xabf9c459 twl6040_hs_jack_detect +EXPORT_SYMBOL_GPL vmlinux 0xac1b09ad ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0xac26b3ca blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0xac636ffd usb_gen_phy_init +EXPORT_SYMBOL_GPL vmlinux 0xacb0a607 swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xaccfa410 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0xacdc6a09 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xad0eeaa2 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xad276b87 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xad336fb0 get_kernel_page +EXPORT_SYMBOL_GPL vmlinux 0xad376749 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0xad4da5c9 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL vmlinux 0xad863016 usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0xad89b07f snd_dmaengine_pcm_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadc7bfbe phy_power_on +EXPORT_SYMBOL_GPL vmlinux 0xadcbf88d pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0xadf4b092 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xadf4caa2 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xadf7e01f sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xae12b21c usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0xae2554c4 of_clk_src_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0xae3acc58 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xae44f463 __mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xae48ce81 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL vmlinux 0xae4c2d0c raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae74bd9a thermal_notify_framework +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae86e388 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0xae8aa931 dev_pm_opp_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xae912128 pwm_enable +EXPORT_SYMBOL_GPL vmlinux 0xae9f9d59 nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0xaea1f936 virtqueue_is_broken +EXPORT_SYMBOL_GPL vmlinux 0xaecb5e73 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xaecc78b2 snd_soc_lookup_platform +EXPORT_SYMBOL_GPL vmlinux 0xaed8f1ea snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL vmlinux 0xaefe0991 register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xaf26427c blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xaf348da7 cpu_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0xaf391328 pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0xaf8e62df tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xafa68342 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0xafe548b6 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xafea0889 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0xaff43211 omap_dm_timer_get_fclk +EXPORT_SYMBOL_GPL vmlinux 0xaff454d8 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xb0211386 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xb0302971 vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0xb033f3ff srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xb03da8b1 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0xb045a635 snd_dmaengine_pcm_close_release_chan +EXPORT_SYMBOL_GPL vmlinux 0xb050f329 init_rs +EXPORT_SYMBOL_GPL vmlinux 0xb05e5040 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0xb0656008 snd_soc_debugfs_root +EXPORT_SYMBOL_GPL vmlinux 0xb09b680b phy_power_off +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0c2f2ee wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xb0df537c ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0xb0ed75f8 devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0xb0eee63a posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb1109865 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xb125ceb2 cpdma_control_set +EXPORT_SYMBOL_GPL vmlinux 0xb13249a2 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb14fb949 snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb18b1abf adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb19ec95c ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0xb1a4e9a6 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xb1a7e3f6 clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1bed25d dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0xb1c0c1c2 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xb1c79131 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xb1cd59cd pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xb1cdd5d2 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb1f49e2f task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb22367ef regulator_can_change_voltage +EXPORT_SYMBOL_GPL vmlinux 0xb247b2b0 snd_soc_register_component +EXPORT_SYMBOL_GPL vmlinux 0xb27c4d6b tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0xb28098fc exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0xb28d7320 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xb29cc4ff driver_find +EXPORT_SYMBOL_GPL vmlinux 0xb2b60c62 regmap_fields_write +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb31155ac mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0xb32a8bbb screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xb335ec8a crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xb33efab7 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb3661ddb tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xb36a3dd4 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xb383c4e3 clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0xb392f27a cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xb3f5cc9a key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0xb4138a98 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0xb42598e4 sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0xb42fbb07 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xb448e74c pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xb4657d49 omap_dm_timer_read_status +EXPORT_SYMBOL_GPL vmlinux 0xb4685560 snd_dmaengine_pcm_pointer_no_residue +EXPORT_SYMBOL_GPL vmlinux 0xb4823260 dev_hard_start_xmit +EXPORT_SYMBOL_GPL vmlinux 0xb48aa714 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4c3b094 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xb4cf0322 btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb4e5e2d4 snd_kctl_jack_report +EXPORT_SYMBOL_GPL vmlinux 0xb4e5fc05 alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb4e8e5b3 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb5144633 virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb53a69e7 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xb55f2ac3 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xb56d7c3c mtd_is_locked +EXPORT_SYMBOL_GPL vmlinux 0xb58d107f disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb59fb7ff crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xb5a0e11e lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0xb5cb8145 hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xb5e896fb tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0xb5e9d53d snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL vmlinux 0xb5ef1e44 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb5f8d89f pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0xb6004d4f iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xb61e7fbc kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb6319f69 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xb64b8e8c usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0xb64e14ea usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0xb65243ab sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0xb65d5542 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xb663bbca dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xb667418b gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0xb675f8e7 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xb67b2219 cm_suspend_again +EXPORT_SYMBOL_GPL vmlinux 0xb67c64fd __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xb6adea3a dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6c635af wm5110_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb6d96944 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xb6f2c578 __tracepoint_unmap +EXPORT_SYMBOL_GPL vmlinux 0xb70e47aa device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xb725af64 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xb7491885 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xb75ae014 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xb75e2716 sdhci_disable_irq_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xb76226f9 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xb762de6b blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0xb771e6b7 bL_switch_request_cb +EXPORT_SYMBOL_GPL vmlinux 0xb77cb0a8 cpdma_chan_submit +EXPORT_SYMBOL_GPL vmlinux 0xb78c9c1c crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0xb7a58231 __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0xb7cdab5c cgroup_is_descendant +EXPORT_SYMBOL_GPL vmlinux 0xb7d0956a usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL vmlinux 0xb7dd4fa2 ahci_init_controller +EXPORT_SYMBOL_GPL vmlinux 0xb7ea2a5f crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb821ffc9 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0xb82566eb omap_tll_enable +EXPORT_SYMBOL_GPL vmlinux 0xb8346aeb percpu_ida_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb83aa4d3 nf_queue_entry_release_refs +EXPORT_SYMBOL_GPL vmlinux 0xb844e0a6 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0xb858ef1d virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0xb85f016f pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0xb8b2691e dapm_reg_event +EXPORT_SYMBOL_GPL vmlinux 0xb8dcc97c regmap_read +EXPORT_SYMBOL_GPL vmlinux 0xb8e2a8ac gpio_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xb90e7754 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xb90e89fa regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xb914255a inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xb9176155 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0xb9382c01 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0xb95f6292 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xb95fda5e pinctrl_utils_dt_free_map +EXPORT_SYMBOL_GPL vmlinux 0xb9804c48 da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0xb98aeeac usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0xb98c7184 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9d361a8 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9e027bb use_mm +EXPORT_SYMBOL_GPL vmlinux 0xb9e87b94 bL_switcher_trace_trigger +EXPORT_SYMBOL_GPL vmlinux 0xb9eb73ed input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xb9f7b3cd ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0xba0496ab pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xba1c6ea5 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xba24340f napi_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xba43edd2 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xba76ae79 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xba83944e devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xba8b0c6a da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0xba95c3a1 dev_pm_opp_add +EXPORT_SYMBOL_GPL vmlinux 0xba9e1fcd usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0xbad43309 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0a52e1 snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb11cfba klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xbb192e71 snd_dmaengine_pcm_register +EXPORT_SYMBOL_GPL vmlinux 0xbb1f5ee6 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0xbb22e935 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xbb6a9305 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xbb7b2958 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xbb8b2901 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0xbbb0392d crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0xbbc5ca88 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xbbdaf4f3 __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xbbdf95a5 ahci_restart_engine +EXPORT_SYMBOL_GPL vmlinux 0xbbf320c3 devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xbc21f8d8 da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xbc2c16b7 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0xbc42854d ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0xbc5e4591 put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0xbc785b3d ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xbc7dd5ec regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xbc7ef95f register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xbc7f157a xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xbca7b001 powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0xbcac6160 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbcaf3971 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0xbcbaa80a __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0xbcbc4659 user_read +EXPORT_SYMBOL_GPL vmlinux 0xbcca691c xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbcdbd094 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xbcdc0431 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0xbcdd5b99 iommu_group_set_name +EXPORT_SYMBOL_GPL vmlinux 0xbce72596 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xbcf6db8e snd_soc_dapm_sync +EXPORT_SYMBOL_GPL vmlinux 0xbcf89ab6 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xbd0073ce __netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0xbd025db5 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xbd216374 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xbd27934a nl_table +EXPORT_SYMBOL_GPL vmlinux 0xbd4c7d8b pci_ioremap_io +EXPORT_SYMBOL_GPL vmlinux 0xbd5cb8b9 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbd5fa6a5 snd_dmaengine_pcm_get_chan +EXPORT_SYMBOL_GPL vmlinux 0xbd74a3b0 need_load_eval +EXPORT_SYMBOL_GPL vmlinux 0xbd91b44e blkg_prfill_stat +EXPORT_SYMBOL_GPL vmlinux 0xbdd11158 sdhci_free_host +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbde1d60e scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xbdf512de free_bch +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe6a5f7a usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xbe9e26af fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xbea5ff1e static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0xbeb19134 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xbeb6b710 regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0xbeeaf8de pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf08c97a platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbf264fcc arizona_dev_exit +EXPORT_SYMBOL_GPL vmlinux 0xbf3cd7f5 dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xbf6f716f regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xbf70cf07 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0xbf817793 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xbfacec59 pci_intx_mask_supported +EXPORT_SYMBOL_GPL vmlinux 0xbfb170a6 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xc0008edf fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xc00131cf visitor64 +EXPORT_SYMBOL_GPL vmlinux 0xc0149293 call_filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xc055a2f5 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0xc05cd21f devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc07ec594 ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0xc081c246 bL_switcher_put_enabled +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc08f029c ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc0a3cd60 ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xc0a51ff4 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0d01bc0 percpu_ref_cancel_init +EXPORT_SYMBOL_GPL vmlinux 0xc0d26387 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc0dbf44c mmput +EXPORT_SYMBOL_GPL vmlinux 0xc0e75cec visitor128 +EXPORT_SYMBOL_GPL vmlinux 0xc0f7ae59 debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0xc11b45c6 gpiod_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc122ac9f napi_hash_del +EXPORT_SYMBOL_GPL vmlinux 0xc1621a06 edac_subsys +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1790e3f devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xc1791589 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0xc17af0dc snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL vmlinux 0xc1806668 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xc18578ed process_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc1a54f63 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0xc1bfe4aa blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xc1cd51b7 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xc1df2428 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xc1ec78f5 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xc20ccaa5 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc23ef7d4 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xc27aa339 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc28db2aa sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0xc2a6e0d5 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xc2cfd216 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL vmlinux 0xc2d300a4 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0xc2d56b9a vchan_find_desc +EXPORT_SYMBOL_GPL vmlinux 0xc2f99857 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xc307bfcc clk_register_mux_table +EXPORT_SYMBOL_GPL vmlinux 0xc30b3a36 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xc30db611 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc3130dab usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xc32c7dfb ahci_reset_controller +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc371f949 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc385ca3e phy_pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xc385cb58 perf_num_counters +EXPORT_SYMBOL_GPL vmlinux 0xc390b809 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0xc3b93bba klist_next +EXPORT_SYMBOL_GPL vmlinux 0xc3e486a3 clockevents_unbind +EXPORT_SYMBOL_GPL vmlinux 0xc3ec92f3 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0xc407a1d4 gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0xc4134515 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xc41e0178 btree_last +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc448f22b kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xc44970d4 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0xc44daa04 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0xc454fc7b twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc457ef2d tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xc459c643 dma_buf_get +EXPORT_SYMBOL_GPL vmlinux 0xc45ce66e spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0xc471c67a twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc4864199 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4b10170 dev_pm_opp_find_freq_ceil +EXPORT_SYMBOL_GPL vmlinux 0xc4d1c357 filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xc4ed2e7c gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0xc4ee7bfe shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xc51e8188 virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0xc52c2045 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc53d120e uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xc53d841d da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc58bf25d usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xc5bbddcd spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc5d37180 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0xc5d5513e cpdma_chan_process +EXPORT_SYMBOL_GPL vmlinux 0xc5eeec02 snd_soc_bytes_get +EXPORT_SYMBOL_GPL vmlinux 0xc5fae13d do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0xc5fed74c irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc639b112 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0xc63a1109 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xc649229a clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc66181e5 __put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0xc66b77b1 iommu_group_set_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xc685c037 cpdma_check_free_tx_desc +EXPORT_SYMBOL_GPL vmlinux 0xc68aa090 mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xc690866c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xc6961c29 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc698089f blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6a0de41 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xc6a33432 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xc6a787dc fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0xc6b58090 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xc6c57579 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc6ed4307 __module_address +EXPORT_SYMBOL_GPL vmlinux 0xc705d5a3 subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc75ad9d3 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xc77ad056 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xc791ad6d usb_stor_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc7982e21 trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7ad9cd9 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xc7b71940 ata_sas_port_async_resume +EXPORT_SYMBOL_GPL vmlinux 0xc7c6391c mpi_set_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc7e39bca ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL vmlinux 0xc85616a2 mtd_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0xc8592525 regmap_update_bits_check_async +EXPORT_SYMBOL_GPL vmlinux 0xc863e83e vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xc873b05a scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc8963a69 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL vmlinux 0xc89f6f3b ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8af422f yield_to +EXPORT_SYMBOL_GPL vmlinux 0xc8af73bb sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xc8b96a93 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc8f5e3da regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc9000344 dma_buf_begin_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc913fd1e pci_reset_bridge_secondary_bus +EXPORT_SYMBOL_GPL vmlinux 0xc917f8ec usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xc929eebc of_pci_msi_chip_remove +EXPORT_SYMBOL_GPL vmlinux 0xc92da788 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xc93bc2a6 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0xc93f496b inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xc955750e cpsw_phy_sel +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc97b92b8 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xc97d1140 cpufreq_cooling_get_level +EXPORT_SYMBOL_GPL vmlinux 0xc97d47aa security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0xc98b5385 ahci_print_info +EXPORT_SYMBOL_GPL vmlinux 0xc9cfa97f of_pci_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0xc9db7a2b debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca1d0ec7 ahci_set_em_messages +EXPORT_SYMBOL_GPL vmlinux 0xca53a3d1 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca832fcb find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca946187 of_clk_add_provider +EXPORT_SYMBOL_GPL vmlinux 0xcac973f0 each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0xcafa769f debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0xcafbd985 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL vmlinux 0xcb03171b ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xcb0b5e8e of_display_timings_exist +EXPORT_SYMBOL_GPL vmlinux 0xcb11a771 phy_exit +EXPORT_SYMBOL_GPL vmlinux 0xcb15eee9 sdhci_pci_get_data +EXPORT_SYMBOL_GPL vmlinux 0xcb469d2b ddebug_add_module +EXPORT_SYMBOL_GPL vmlinux 0xcb4e79ce usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xcb604f28 pinctrl_utils_add_map_configs +EXPORT_SYMBOL_GPL vmlinux 0xcb788dcb dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0xcb9b162e clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0xcbac6536 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xcbb9675b __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc04ba64 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xcc0f15ee crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc29132d dma_buf_detach +EXPORT_SYMBOL_GPL vmlinux 0xcc626c7b spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0xcc6c9e58 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xcc7bfbcf pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0xcc85fcb6 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0xcc8fad49 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xcca37dd2 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xccab9778 cpufreq_table_validate_and_show +EXPORT_SYMBOL_GPL vmlinux 0xccb170b7 twl6040_get_dl1_gain +EXPORT_SYMBOL_GPL vmlinux 0xccbfe1a2 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xccc4c925 usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xcccbf853 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd58ea6 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0xccdb4d6b regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xcce9ed88 split_page +EXPORT_SYMBOL_GPL vmlinux 0xccf32bcc sdhci_send_command +EXPORT_SYMBOL_GPL vmlinux 0xcd3b5a61 tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0xcd888d00 crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0xcd8bd00a pinctrl_pm_select_idle_state +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcd995e65 phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL vmlinux 0xcda2b728 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0xcdc8e773 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdf4be14 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0xce0b9b59 max77693_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xce22e3d4 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xce3019ba rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xce37dfb5 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xce3853a7 lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0xce46e140 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xce48359c dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xce4bd6cf regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0xce801e74 spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0xce9b9bd1 regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xcf031b17 smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0xcf0757f4 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcf2c04ae omap_dma_filter_fn +EXPORT_SYMBOL_GPL vmlinux 0xcf2c3bef led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xcf45e96a regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xcf54ea93 async_unregister_domain +EXPORT_SYMBOL_GPL vmlinux 0xcf69f9f6 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0xcf7e399a crypto_lookup_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xcf827a7a irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0xcf8905b5 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0xcf8aac0a __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xcf8cc238 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfefeded pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd00fa05e ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xd02614ac usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xd0334525 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd0352080 _submit_bh +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd06aa9ad snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0da2d17 regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0xd0e1a150 alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0xd0e46365 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xd14bc4d9 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xd1562938 of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd157cc1e mtd_read +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1822f0b cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd19e44fc snd_soc_add_codec_controls +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1c07eed iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd1c3f416 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xd1c509d1 list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0xd1f0a011 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xd200f6ee rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd232b972 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xd244a511 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xd246b6de ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xd2534497 irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0xd258217d clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0xd25dab4f debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd27a5033 pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0xd297d95e iommu_present +EXPORT_SYMBOL_GPL vmlinux 0xd2a26b1b __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xd2aaeb4e kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0xd2b095c6 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0xd2b6c933 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd2c45ea4 of_pci_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0xd2e94528 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0xd3029519 regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33ada8b cci_probed +EXPORT_SYMBOL_GPL vmlinux 0xd34768e3 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xd354e456 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xd357afdc crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xd3871461 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xd3c35511 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xd3ffea12 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd401632f serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd403c413 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd44c2f38 cci_disable_port_by_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd45eca72 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xd46d29f2 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xd482eecd posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4c1adf2 gpiochip_add_pingroup_range +EXPORT_SYMBOL_GPL vmlinux 0xd4c64724 sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd4cad45e clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xd4cdb5ac inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xd53da4e3 omap_dm_timers_active +EXPORT_SYMBOL_GPL vmlinux 0xd53e23cd da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xd54e29e3 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xd55ad93b iommu_group_get_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xd575b08b crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0xd5826436 get_mtd_device_nm +EXPORT_SYMBOL_GPL vmlinux 0xd5a488da musb_dma_completion +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5be119e dma_buf_kmap +EXPORT_SYMBOL_GPL vmlinux 0xd5be7279 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd5db845c driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xd5fb8481 omap_dm_timer_request_by_cap +EXPORT_SYMBOL_GPL vmlinux 0xd5fe771d pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0xd60a84ff __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xd60f5a16 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xd619aaf1 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xd62385c0 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xd6270633 pci_restore_ats_state +EXPORT_SYMBOL_GPL vmlinux 0xd62a2f6b pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xd63392c7 irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0xd6505d86 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xd65810bf ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0xd663d1d1 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd686eca4 of_reset_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0xd68d07af omap_mcbsp_st_add_controls +EXPORT_SYMBOL_GPL vmlinux 0xd6950e75 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xd6c2e04b __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd7146f69 devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xd72203f0 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL vmlinux 0xd72a68dc snd_soc_remove_platform +EXPORT_SYMBOL_GPL vmlinux 0xd73c4339 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xd7414332 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd76b9906 pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0xd76f3e0d inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xd7769834 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xd7790f3a pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd787b9c2 devm_regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xd788742d perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xd7a5213f lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xd7b87a62 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xd7be4449 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xd7be6955 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xd7cb6c7c fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7e33f88 pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0xd80e1503 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0xd810490a ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xd81790e8 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0xd818b6aa register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd81ffcd3 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd8218dd7 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0xd84487c4 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd85d2029 regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0xd8686460 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd87fc0a0 usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0xd898cd9c enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xd899b293 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xd8b20826 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xd8d2bb0c wm5102_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xd8f89aee input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd9006947 __of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0xd90e9603 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0xd91b4b64 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xd9225220 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0xd924d724 __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd928e986 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xd92d9fe1 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xd930ef18 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xd93ea00e pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0xd942d353 ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0xd94aa457 display_timings_release +EXPORT_SYMBOL_GPL vmlinux 0xd953d551 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0xd989938f ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL vmlinux 0xd990d842 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xd99e5aa2 of_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xd9a34035 __clk_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xd9b6cb57 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xd9c6e4db snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xda30bd26 ref_module +EXPORT_SYMBOL_GPL vmlinux 0xda32abc6 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xda441a54 extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0xda44cb37 setup_charger_manager +EXPORT_SYMBOL_GPL vmlinux 0xda46f987 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xda5b8ec3 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xda87c038 of_phy_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0xdaaf20b7 extcon_get_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0xdab44ed9 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0xdabbcf52 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xdac11bae of_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xdad0ea53 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xdae715e0 videomode_from_timing +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb098cf1 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0xdb1369bc ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0xdb1f710a tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xdb2502b6 regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0xdb43cfba tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0xdb5d8f03 usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0xdb5ea6ae scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdba4ad93 static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0xdba5d593 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xdba80fc1 of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0xdbbefaed bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xdbe10af9 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc0a295b tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xdc1900ff pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0xdc1e15f1 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xdc299d84 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xdc3f45b9 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xdc4087ad debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xdc42ddde __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xdc461430 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xdc571a16 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xdc62000d fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc82917f tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdccbc5cd max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0xdced3d33 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xdceeff87 wm8400_block_read +EXPORT_SYMBOL_GPL vmlinux 0xdcfa5592 wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0xdd0935f4 devm_phy_get +EXPORT_SYMBOL_GPL vmlinux 0xdd16ee93 usb_string +EXPORT_SYMBOL_GPL vmlinux 0xdd1e9410 debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd391eff profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd3e35e8 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xdd60dc8c power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0xdd669a15 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xdde4e832 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xde19706c usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xde2248ef raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xde224e42 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xde26b33d pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xde295631 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xde2c5a6e alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0xde2c608b cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xde2de8fa __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xde3a8875 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xde3ddd60 tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xde4d63f2 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xde6092a7 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xde695e65 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0xde89cc71 snd_dmaengine_pcm_prepare_slave_config +EXPORT_SYMBOL_GPL vmlinux 0xde8b8cf5 tegra_ehci_phy_restore_start +EXPORT_SYMBOL_GPL vmlinux 0xde9bde89 pinctrl_dev_get_name +EXPORT_SYMBOL_GPL vmlinux 0xde9cfb0c regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0xdeb53a4d ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xdec4dc30 put_device +EXPORT_SYMBOL_GPL vmlinux 0xdedd7eb1 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xdf001a82 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xdf070d5e ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf241f22 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xdf25272d cpdma_ctlr_create +EXPORT_SYMBOL_GPL vmlinux 0xdf2e0d82 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xdf43be2f __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xdf45c6b0 pinctrl_add_gpio_ranges +EXPORT_SYMBOL_GPL vmlinux 0xdf4c3076 usb_stor_probe2 +EXPORT_SYMBOL_GPL vmlinux 0xdf568f9c pinctrl_pm_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0xdf633c3c dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xdf8d5ad1 thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0xdf94cb9c regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xdfa7942c snd_soc_write +EXPORT_SYMBOL_GPL vmlinux 0xdff7c9ce blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdfff82a2 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xe003e044 __tracepoint_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe00d3845 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe01c8ed2 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xe027a2d3 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe03c8956 regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xe05381eb snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL vmlinux 0xe06347fe power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xe07ca631 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xe0831965 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe09f1ba1 pwm_config +EXPORT_SYMBOL_GPL vmlinux 0xe0ac34ee sec_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xe121042b led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xe1414bf5 iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0xe1494673 usb_stor_pre_reset +EXPORT_SYMBOL_GPL vmlinux 0xe16591ab stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xe16d86cc inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xe1775ee7 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0xe17b3610 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe18c6fb7 ahci_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xe19cdfb5 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xe1b1c207 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0xe1c32794 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0xe1e7b004 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xe20c3b92 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xe214d3f6 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0xe221f30d usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0xe22d4e3e snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0xe22f2b6f __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xe23643a6 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0xe24761ce sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xe24f8aae get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xe26825df list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0xe27355f5 devm_phy_create +EXPORT_SYMBOL_GPL vmlinux 0xe279d781 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0xe2e7840d regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0xe2fab5a2 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe3155e35 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xe337d0a8 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xe36e802b ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe379061f usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe389b210 regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0xe3b28bef dma_buf_end_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0xe3baa2a9 arm_iommu_release_mapping +EXPORT_SYMBOL_GPL vmlinux 0xe4046911 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xe406e054 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0xe42b0f72 tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0xe42e1f70 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe430c4e4 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0xe4312105 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xe43d1d85 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe4803c91 of_get_videomode +EXPORT_SYMBOL_GPL vmlinux 0xe484edbe pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xe4c22565 cpdma_chan_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe4c2ec60 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0xe4c4b28f gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xe4ca424e sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xe4f88718 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xe4fe5197 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xe50e65bf blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xe513f5cd snd_soc_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xe52ae762 __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0xe52da594 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0xe535bf46 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe54edadb blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0xe5524eab of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xe569a207 dapm_clock_event +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58ebc5e usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe5c8b3b3 fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0xe5e217d3 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0xe5ef9ea8 mtd_writev +EXPORT_SYMBOL_GPL vmlinux 0xe5fdccbf key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0xe64af9dc pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe64e8746 extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe64ed90e iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xe64f8fac rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe685a63d snd_soc_platform_write +EXPORT_SYMBOL_GPL vmlinux 0xe69a0b17 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe69d8330 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xe6b426e1 ahci_platform_get_resources +EXPORT_SYMBOL_GPL vmlinux 0xe6c68334 ddebug_remove_module +EXPORT_SYMBOL_GPL vmlinux 0xe6cc2ff2 extcon_find_cable_index +EXPORT_SYMBOL_GPL vmlinux 0xe6d47fa5 pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0xe6d67d57 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xe6d7444f blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6f8a111 mtd_read_oob +EXPORT_SYMBOL_GPL vmlinux 0xe706b5cb da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0xe712f73f dbs_check_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe73ded0a pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xe749c687 snd_soc_unregister_card +EXPORT_SYMBOL_GPL vmlinux 0xe764488a alarm_start +EXPORT_SYMBOL_GPL vmlinux 0xe7662d2b fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe7964cce register_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0xe79be313 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xe7b5907a iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0xe7bc77be usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xe7ca4f20 kill_mtd_super +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe823f85e unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xe82e0e43 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xe832e56f tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe85a9fd3 cpu_cluster_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe87ab1db virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0xe8917915 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xe89d55c8 pinctrl_utils_add_config +EXPORT_SYMBOL_GPL vmlinux 0xe8ca6fed crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xe8e1106c usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xe9041e0f unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xe906962f regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xe915b734 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xe92bb4b2 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe956a75c pl320_ipc_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe993b859 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xe997a768 btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0xe9e566ff ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xe9ec146c tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xe9f35f6a device_create +EXPORT_SYMBOL_GPL vmlinux 0xea0ff07f debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0xea101684 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea1bb291 bL_switcher_get_enabled +EXPORT_SYMBOL_GPL vmlinux 0xea325af7 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea43355b gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0xea460a2a scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL vmlinux 0xea5aac89 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xea72407a debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xea7ca242 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0xea8636fd platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xeaa80d16 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xeaa92b15 dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0xeae3a975 snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL vmlinux 0xeaee7b18 bio_trim +EXPORT_SYMBOL_GPL vmlinux 0xeb1c3628 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xeb3ef01d arm_pm_restart +EXPORT_SYMBOL_GPL vmlinux 0xeb41c7d1 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xeb4a2187 pinctrl_utils_add_map_mux +EXPORT_SYMBOL_GPL vmlinux 0xeb53f784 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xeb58067a disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xeb5b3533 omap_dm_timer_set_prescaler +EXPORT_SYMBOL_GPL vmlinux 0xeb664b59 pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL vmlinux 0xeb7228dc ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xeb9abbee ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xebcd75c6 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xebcf2101 skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0xebdbae04 usb_stor_CB_transport +EXPORT_SYMBOL_GPL vmlinux 0xebec57c4 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xebf253c3 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xec045f70 dma_buf_kunmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xec12e10b serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec24f9d0 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xec250fba mtd_is_partition +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec2be1fb add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0xec3b44f7 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xec542d88 device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xec5de635 css_rightmost_descendant +EXPORT_SYMBOL_GPL vmlinux 0xec74477a tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xec969536 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xeca766b2 amba_ahb_device_add_res +EXPORT_SYMBOL_GPL vmlinux 0xecae250c reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xecb7dea0 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0xecb9aa86 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0xecbdc59e pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xecc2d9d0 skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0xecc7974d iommu_attach_group +EXPORT_SYMBOL_GPL vmlinux 0xece6adc4 thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xecea522d __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xecfd8761 usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xed06b916 wakeup_source_drop +EXPORT_SYMBOL_GPL vmlinux 0xed35e30d crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xed4c84c7 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xed4de181 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0xed695a2d unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xed87ce81 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xedd49930 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xeddb891b spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xeddf78b2 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xedeac0c4 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xedfccd9d nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0xee0b33e3 irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0xee124bb7 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xee1b61c7 powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0xee37592f swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0xee488264 ahci_reset_em +EXPORT_SYMBOL_GPL vmlinux 0xee4f3181 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0xee6b71c4 syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0xee8534fe regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xee89cf60 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xee8d7539 cpdma_chan_start +EXPORT_SYMBOL_GPL vmlinux 0xeec6f2b8 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xef2f4412 soc_ac97_ops +EXPORT_SYMBOL_GPL vmlinux 0xef370e35 twl6040_get_trim_value +EXPORT_SYMBOL_GPL vmlinux 0xef38b476 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xef40619d vtime_guest_exit +EXPORT_SYMBOL_GPL vmlinux 0xef409b74 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0xef586eab snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL vmlinux 0xef66075c usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef72c67b show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xef750677 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xef79d12b ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xef9ee232 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0xefad2c2a mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xefdf2ec3 user_match +EXPORT_SYMBOL_GPL vmlinux 0xf00d58f7 alarm_init +EXPORT_SYMBOL_GPL vmlinux 0xf0509a41 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xf06916e6 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xf08cef3a driver_register +EXPORT_SYMBOL_GPL vmlinux 0xf0970ea2 regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0xf0c343ab single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xf0d19eb4 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xf0edf93e snd_soc_dpcm_be_set_state +EXPORT_SYMBOL_GPL vmlinux 0xf0f4ee86 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xf0f5dbc2 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xf1036a2b pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0xf1063e64 device_register +EXPORT_SYMBOL_GPL vmlinux 0xf1254b67 regmap_field_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xf128feb3 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0xf12caf22 clk_register_divider_table +EXPORT_SYMBOL_GPL vmlinux 0xf12ce404 snd_soc_get_dai_substream +EXPORT_SYMBOL_GPL vmlinux 0xf12f256b hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf13fcae0 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xf1431f18 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xf1584a2e pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1a35558 ulpi_viewport_access_ops +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1b5dc70 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xf1dcc3e1 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL vmlinux 0xf1ea0da1 tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0xf2012eef snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf22ffbe2 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xf27977e2 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xf2a2a767 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xf2f077cc pkey_id_type_name +EXPORT_SYMBOL_GPL vmlinux 0xf2fc7f6e __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf3020b6c usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf32aef17 usb_stor_disconnect +EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0xf3568407 mtd_point +EXPORT_SYMBOL_GPL vmlinux 0xf35bb90b sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0xf36b0af5 fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0xf3704854 devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b4b5a5 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0xf3baf914 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xf3c3b9cc generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xf4082277 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xf40908a6 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xf41679b7 phy_init +EXPORT_SYMBOL_GPL vmlinux 0xf41c1110 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0xf45338c8 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0xf4578e50 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xf467ec23 usb_anchor_suspend_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xf47687f6 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL_GPL vmlinux 0xf498b326 get_device +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf49b0b7f bmp085_remove +EXPORT_SYMBOL_GPL vmlinux 0xf4cbfb73 crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0xf4d0a731 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xf4d4abfc bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf53ae2e1 pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0xf543bd34 omap_dm_timer_write_counter +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf55fb4c4 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xf564fbd1 devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf56c9874 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0xf57288c8 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL vmlinux 0xf5737196 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xf59ae0ba ahci_platform_init_host +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5c2a78c perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0xf5c8baee ahci_ops +EXPORT_SYMBOL_GPL vmlinux 0xf5e18b72 snd_soc_bytes_put +EXPORT_SYMBOL_GPL vmlinux 0xf5fd2754 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xf5fef4e3 wm5110_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf62c03c8 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xf688b2e8 regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0xf695597e bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xf6a02ebe regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xf6ac98c9 sdhci_pltfm_free +EXPORT_SYMBOL_GPL vmlinux 0xf6b0e169 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf70451ec register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xf7186883 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf7258f71 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xf74dae0f idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf76b0a59 read_current_timer +EXPORT_SYMBOL_GPL vmlinux 0xf7714159 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xf777d7c2 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xf789f676 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xf79704c3 ahci_start_engine +EXPORT_SYMBOL_GPL vmlinux 0xf798ef39 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xf79d8569 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xf7be33e5 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xf7bfecfd system_trusted_keyring +EXPORT_SYMBOL_GPL vmlinux 0xf7c49324 of_pci_parse_bus_range +EXPORT_SYMBOL_GPL vmlinux 0xf7e19dbc register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xf816c866 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0xf8189473 usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf845c450 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xf846506f irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf88a9dcf devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xf8900f7d usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0xf89a72f2 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xf8aeca3b ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0xf8b99888 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xf8d1206c tpm_write +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8fe3d0b kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf9311d87 devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0xf932015f __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf935a32c of_property_read_string_helper +EXPORT_SYMBOL_GPL vmlinux 0xf93d115d dma_buf_map_attachment +EXPORT_SYMBOL_GPL vmlinux 0xf98c51fb aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xf9961f38 cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0xf99c2310 twl6040_get_hs_step_size +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9b071c4 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xf9c67fbd usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xf9c96c0f ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9cb7e04 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xf9d1e39d replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa0e5fa0 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0xfa1bc97f dev_pm_opp_disable +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa37a5f4 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xfa4bb300 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xfa4fa0e0 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xfa8f760d ahci_kick_engine +EXPORT_SYMBOL_GPL vmlinux 0xfa97c3b0 find_module +EXPORT_SYMBOL_GPL vmlinux 0xfa999b95 thermal_generate_netlink_event +EXPORT_SYMBOL_GPL vmlinux 0xfad11846 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0xfaddff41 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xfade750d napi_by_id +EXPORT_SYMBOL_GPL vmlinux 0xfadf1d0a __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xfb238a6d regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0xfb23b462 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb94f014 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0xfb956886 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0xfba3acf9 usb_gadget_map_request +EXPORT_SYMBOL_GPL vmlinux 0xfbbedefd of_prop_next_string +EXPORT_SYMBOL_GPL vmlinux 0xfbcb158a devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc4a82c5 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xfc6ad7a3 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0xfc8612c5 tegra_ehci_phy_restore_end +EXPORT_SYMBOL_GPL vmlinux 0xfc8f5cda device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xfca1d062 omap_control_usb_phy_power +EXPORT_SYMBOL_GPL vmlinux 0xfcbaa5cc debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfcdb4034 wakeup_source_prepare +EXPORT_SYMBOL_GPL vmlinux 0xfd018a00 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0xfd02ac12 pwm_put +EXPORT_SYMBOL_GPL vmlinux 0xfd13f379 irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xfd384238 get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0xfd41c7ce btree_merge +EXPORT_SYMBOL_GPL vmlinux 0xfd4d28de dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xfd68474d sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0xfd7af710 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xfd7b594c sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0xfd993d9b crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xfd9e96f1 sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0xfdc9506e crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xfddc29a1 ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0xfe13368c extcon_update_state +EXPORT_SYMBOL_GPL vmlinux 0xfe1ae317 omap_control_usb_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xfe26dc18 tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0xfe34dd26 fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0xfe4984e1 gpio_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xfe824b7e ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0xfe8d5486 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xfe95e170 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfeb03951 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xfebe130a sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xfec0e8d6 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfed9a7f7 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xfeda4e1c look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0xfee50f28 devres_get +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff18570e tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0xff3f1ae2 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0xff421f4b da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0xff4c4186 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5c7210 devm_regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xff5cda7c wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0xff9b901e ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xffa598e4 list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0xfff31a22 dma_buf_vmap --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/armhf/generic-lpae +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/armhf/generic-lpae @@ -0,0 +1,14085 @@ +EXPORT_SYMBOL arch/arm/crypto/aes-arm 0x276b2f72 private_AES_set_encrypt_key +EXPORT_SYMBOL arch/arm/crypto/aes-arm 0x6c62e582 AES_decrypt +EXPORT_SYMBOL arch/arm/crypto/aes-arm 0xc30fcbed AES_encrypt +EXPORT_SYMBOL arch/arm/crypto/aes-arm 0xcf024ae9 private_AES_set_decrypt_key +EXPORT_SYMBOL arch/arm/lib/xor-neon 0x0f051164 xor_block_neon_inner +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/bcma/bcma 0x59342597 bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x127a5901 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/paride/paride 0x01d0009e pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x0744efd0 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x0a9a9c94 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x2cbac21f pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x417364d9 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x45df56a0 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x785003fa pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x8821939e pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x91153a62 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xca3f1b84 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xdcef7d3c pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xf382d036 pi_write_regr +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x43eab348 dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x80eea289 dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xd8f78b68 dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xe306d79d dw_dma_cyclic_free +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xeef55fdf dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xf4a8e26a dw_dma_get_src_addr +EXPORT_SYMBOL drivers/dma/pl330 0x06f22541 pl330_filter +EXPORT_SYMBOL drivers/edac/edac_core 0xbb718d5f edac_mc_find +EXPORT_SYMBOL drivers/fmc/fmc 0x18f7dee8 fmc_scan_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x20324689 fmc_device_register +EXPORT_SYMBOL drivers/fmc/fmc 0x324e8141 fmc_show_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x35f6a51e fmc_device_register_n +EXPORT_SYMBOL drivers/fmc/fmc 0x7ed41dd6 fmc_device_unregister_n +EXPORT_SYMBOL drivers/fmc/fmc 0x8a22b9b4 fmc_device_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x955431d3 fmc_driver_register +EXPORT_SYMBOL drivers/fmc/fmc 0x99367f10 fmc_free_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xbe837fc4 fmc_driver_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0xc6b204c8 fmc_reprogram +EXPORT_SYMBOL drivers/fmc/fmc 0xd4dc060c fmc_find_sdb_device +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00025916 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00667d8a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02178537 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x026c0d6b drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02c79b2b drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03a86a4b drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x057f240e drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07964473 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08330b88 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x095ccaca drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0bf29886 drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ec527fc drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x103addcc drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x107742a9 drm_get_subpixel_order_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x117935d8 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12202848 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1340d5ac drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13cdaadb drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a9a178 drm_get_format_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x175a4531 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1821ebc9 drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x189f6401 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19e44324 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a770ac3 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b04cce9 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c0bf63a drm_dev_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1df9351e drm_crtc_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20a5ed65 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2290c420 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x241da36c drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a942ab2 drm_mm_insert_node_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2aa84662 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2bd78da4 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c5e465b drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2cd3dd38 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d80be4d drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e7a4300 drm_rgb_quant_range_selectable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ef30e56 drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33605155 drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34726b5b drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34a06f6b drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36f91ef3 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36ffd813 drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x380705d7 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x383fd691 drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a4f7ae drm_format_num_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a98f8ed drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ac1fef9 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3acc5920 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ae7b2d0 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b9d009a drm_format_plane_cpp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d4b8108 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e1552a8 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43d21ece drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44572821 drm_mode_group_init_legacy_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4724fc10 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x473570d3 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49b0c9b2 drm_framebuffer_unreference +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49fabf0d drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a0896c3 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b7fa589 drm_vma_offset_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bb86c9c drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bc81ff5 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c511235 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c99f207 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ee4abb3 drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4fa0debf drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50a56665 drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e28c07 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x511c8463 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5141d677 drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0x526f6f71 drm_rect_calc_hscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x533b9c13 drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5346bea8 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x534c39ed drm_framebuffer_reference +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53d4402f drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56e23432 drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x575bd924 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ad28c54 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ae6347e drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c0c43a3 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d0a4051 drm_prime_init_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6090be61 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60e7062f drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62992fa3 drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x629c05e1 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x635a215b drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6374a403 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x64e1adab drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66803841 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x668cbf67 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68587316 drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6900d335 drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69c88a70 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ad963ef drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b4ec148 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ba602ba drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6bd85d85 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cee2e42 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc6ba5e drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7034a858 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x707f8fd1 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x70bc2e7c drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x718eae46 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72618ed4 drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75da0870 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78dcae6e drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4e7297 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b709585 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ba69bae drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d867c4c drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81ba930c drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x824d19ab drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84aa9ffd drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8746dfce drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x890b62ec drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89c67110 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8aaab4ef drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8bb0e057 drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dabdf5d drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de13715 drm_format_vert_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eaed13f drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f024225 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7df3a7 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9198c31a drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94434bf3 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x946d1723 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x952aa947 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95a47182 drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95fcdccd drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96b97216 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9972db48 drm_rect_calc_vscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b619ed5 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d70fc2a drm_rnodes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9dbb8b7c drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9eccfe56 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9efc26a3 drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f75bd94 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa017f2de drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0fc4635 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1f4e9e6 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa28078b2 drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa2a4e6aa drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa40f52d1 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4fe2e0b drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5dbd572 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7868d13 drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa84e211a drm_bridge_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa96acfcb drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9e89e06 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa1a6e72 drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa4178ad drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab0a5194 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaede17e0 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafb0cb6f drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb07db168 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2cb2c9a drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb572a9f0 drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95beb55 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba815729 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb19f900 drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbb56d5f drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc6eff05 drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbdc25fa9 drm_bridge_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe001c53 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe3282ab drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe99ee78 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf113b9d drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbfa22ff6 drm_gem_dumb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1f995bf drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4000f9f drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4e8897b drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5ff1900 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8be1d8f drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9a3042d drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca45efbc drm_format_horz_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc8b2a6b drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0d5ce7 drm_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdb56aaf drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcee91665 drm_unplug_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xceff7e9c drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd077ec1b drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1332d30 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd140ea4e drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2335101 drm_fb_get_bpp_depth +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4f0b1e4 drm_prime_sg_to_page_addr_arrays +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd533b082 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd68fd725 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd825d321 drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8689e47 drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd890b485 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda6efe97 drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdadcbb07 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb5a5852 drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdcf14af3 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde247102 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde639d2c drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe203a8c4 drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2ef97e4 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f46e6e drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7616f7a drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea9f0a55 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeac8b9e0 drm_prime_destroy_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb50fa4a drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb85c67a drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecf1c363 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed7cd1d8 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefcdeb50 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefdf9b69 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf08d712a drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0d6d736 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2b7940b drm_connector_unplug_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf358712f drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3ad28e7 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf446a0e2 drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf89d192f drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf97c9353 drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9be1ca4 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb497216 drm_mm_insert_node_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd063935 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe4a68c7 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff1902d4 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc6c87a drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00b4c1d3 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x048a419f drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x098e47d2 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0a5f1282 drm_dp_link_power_up +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0aa96765 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f96ec70 drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x109ed997 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x163251c8 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1ab5e809 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1f6c3823 drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x26119711 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3004068b drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34871adf drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3f853001 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5682375e drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x57e07845 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5ba2030d drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5ceb278b drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6017fbae drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6c5eb274 drm_pick_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x711a004a drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7161a696 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7b16d2a4 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7c1fef62 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7db875f7 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84e924ba drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8686c401 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8891b31c drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8a7e4750 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8b2e8acd drm_dp_aux_unregister_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8bc9619b drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x916251d2 drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x98f3e538 drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9b69009a drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9baf57a1 drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa47cd92f drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa77858bb drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8d6809d drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb19f4252 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb1ea9848 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb65f8767 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb747d018 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb827c3e3 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbf42ffa9 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcf274c1f drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd90c8f18 drm_dp_link_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdc0aacd3 drm_dp_aux_register_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe323432b drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe34be172 drm_dp_link_configure +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfc074e30 drm_has_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x2b9e4f5f drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0xccb99a5d drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0xe734ea79 drm_usb_init +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x1cdfa374 host1x_client_unregister +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x574ddc8b host1x_driver_register +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x58e34cad host1x_client_register +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7d76c217 host1x_syncpt_wait +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xc9f8bc60 host1x_driver_unregister +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0e2a6864 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0f5877d4 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x34257f35 sch56xx_watchdog_unregister +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x50ace98f sch56xx_watchdog_register +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xe5022f95 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xed1d2a08 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x87984dd0 i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x97358cc0 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xc76e5e43 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x6c65b6f8 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x7ced5983 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x9251fdde st_accel_common_remove +EXPORT_SYMBOL drivers/iio/accel/st_accel 0xcd62bfb8 st_accel_common_probe +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x01f4f577 hid_sensor_read_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x5857c187 hid_sensor_write_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x8dfa69b6 hid_sensor_read_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xa6c6c940 hid_sensor_write_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xc1de4f7b hid_sensor_parse_common_attributes +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x799422b0 hid_sensor_setup_trigger +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0xad76e19f hid_sensor_remove_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x074d7047 st_sensors_trigger_handler +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x19a1f5c7 st_sensors_allocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x1e5f235d st_sensors_init_sensor +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x26154287 st_sensors_deallocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x35da70c6 st_sensors_check_device_support +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x37df9e70 st_sensors_set_odr +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x4bb4e14b st_sensors_sysfs_sampling_frequency_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x6b5b3b64 st_sensors_set_dataready_irq +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x756d0088 st_sensors_read_info_raw +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x786665c7 st_sensors_sysfs_get_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x95d69d19 st_sensors_set_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x9dd89361 st_sensors_sysfs_set_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xe6a57e84 st_sensors_set_axis_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xec5b8f6a st_sensors_set_fullscale_by_gain +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xeca02e93 st_sensors_get_buffer_element +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xfbd61654 st_sensors_sysfs_scale_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0xd8538729 st_sensors_i2c_configure +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0x87768696 st_sensors_spi_configure +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x20ba95ab st_gyro_common_probe +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0xa09cf96e st_gyro_common_remove +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x6685f45a adis_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0xdbd116a6 adis_enable_irq +EXPORT_SYMBOL drivers/iio/industrialio 0x15eeae9e iio_buffer_show_enable +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x32ea1cf6 iio_buffer_write_length +EXPORT_SYMBOL drivers/iio/industrialio 0x34c08fad iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/iio/industrialio 0x3f38a8b8 iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/iio/industrialio 0x40521ad2 iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x4098986f iio_buffer_register +EXPORT_SYMBOL drivers/iio/industrialio 0x475b7030 iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0x6bbee988 iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x7069e990 iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x71da2fae iio_buffer_read_length +EXPORT_SYMBOL drivers/iio/industrialio 0x74a5f65f iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0x8789c377 iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0xa10d3793 iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0xb19bb2aa iio_buffer_store_enable +EXPORT_SYMBOL drivers/iio/industrialio 0xb5b6d512 iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xbb9964dd iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0xc4182091 iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0xd046ee32 iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xd1fcfc03 iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0xd3741c01 iio_buffer_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xdaf17509 iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xe44c2381 iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0xfb71a946 iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0xc85cb1b3 iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0xf7247f82 iio_triggered_buffer_setup +EXPORT_SYMBOL drivers/iio/kfifo_buf 0x14df1c41 iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/kfifo_buf 0xa8104241 iio_kfifo_free +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0xe9761f54 st_magn_common_remove +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0xeab8d2eb st_magn_common_probe +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x8c3f815b st_press_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0xa343d7fa st_press_common_probe +EXPORT_SYMBOL drivers/input/gameport/gameport 0x325c6866 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x452c6010 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4980f20e __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4dbeaa95 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x55ab94b6 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x878d72d9 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x8d623d19 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd4755af4 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf945b943 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/input-polldev 0x6da78ed9 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x9034ddea input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xbf6d6d97 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xc4d34656 input_free_polled_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0xe51f282b matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x09a08d22 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x7cc8006d ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xd37e5f6f ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xf1df0be6 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xa3eebdb4 cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/sparse-keymap 0x11cab48a sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x145ca3b0 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x925d95c8 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x9d4dde86 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe47045f0 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xff1132a4 sparse_keymap_free +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x0b05c3a0 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xa4c7c956 ad7879_pm_ops +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x05f26161 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x08a75322 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x39360766 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x676345f2 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7971d2c8 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9b2d2d62 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7163dc7 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb1105388 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc43122d7 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xcfeb2efc capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x90f978b5 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x2e0cd949 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x80e037d2 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xe82908aa isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0e854c32 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1850318e dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x19ecbaa9 mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1ba46eb6 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3c2b9cd0 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ccaa2ae bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x41bfecf4 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x483f8dba recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4ec614e6 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5309d230 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5901f623 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5d8cbc92 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x74655d40 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x88cd7b47 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a4e99fb mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8c089d4e mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9e957256 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb01e1a3a bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb7e5dbc1 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc572f5cf recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xce170e4a mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd3c70ef9 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdad68994 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfb46f2a7 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/bcache/bcache 0x358a29e7 __closure_lock +EXPORT_SYMBOL drivers/md/bcache/bcache 0x410a86f8 closure_put +EXPORT_SYMBOL drivers/md/bcache/bcache 0x6a0b510d closure_sub +EXPORT_SYMBOL drivers/md/bcache/bcache 0x7824e893 closure_trylock +EXPORT_SYMBOL drivers/md/bcache/bcache 0x9fbcd0b6 closure_sync +EXPORT_SYMBOL drivers/md/bcache/bcache 0xe15a1cce closure_wait +EXPORT_SYMBOL drivers/md/bcache/bcache 0xe3c17af1 __closure_wake_up +EXPORT_SYMBOL drivers/md/dm-log 0x42633ed7 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0x8c29448b dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0xebcdd4f2 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xffa3963e dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x3c10fd7e dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x7d9930a6 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x8a61f6b2 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x98afc073 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0xe97855df dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xfc4b0212 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/raid456 0xcb7171c9 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x2055af5a flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x39f6a3f1 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x3d37c297 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x46e4b589 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x4bc350e3 flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x69057875 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7bc4ff39 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xb79c3dae flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xbbbfab21 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xc7789257 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xccbd2e85 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xe8fb8ac1 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xf4b60028 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/cx2341x 0x0257bc9a cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0x1b651127 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0x3db8be82 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x536cfcc9 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x6d4e62c6 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0xe5cf7bb7 cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/tveeprom 0x3e5403ee tveeprom_read +EXPORT_SYMBOL drivers/media/common/tveeprom 0x9c8b9107 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x01f5cb4f dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0445750d dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x17523ce7 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x18767111 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x20be7191 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x24a054ea dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x344908d4 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3656cb10 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x431cbd6d dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x45717fe5 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5311aaec dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5cc84793 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5faf6503 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x629f9d31 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x689b5120 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x69041ba3 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x69f82842 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x72180695 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7b3d5015 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7eb48df4 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8269ab31 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x826f0e5f dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8633f37b dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8cb7380d dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9c19040b dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9c6a0170 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9d099fa8 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9ece405b dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa516866e dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xba4e4a34 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xbf24be4d dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc0ab6ced dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc7ceb265 dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcc622f21 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd68a099e timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdb1a8bd4 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdc094c39 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf48116c6 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xff834396 dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-frontends/a8293 0xa7aeaeef a8293_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9013 0x52e09050 af9013_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9033 0x21768995 af9033_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0xa31b5f17 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x06fa8cf6 au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x0d3bdbde au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x2a678b93 au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x4ff650bb au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x7f844871 au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x9735bf14 au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xac5ae544 au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xd8ebd72d au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xfba20671 au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0x0b59ef0f au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0xa02c3848 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0x486e0287 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x2c1915ab cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xde54150d cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0xb6a5fd6b cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x2bb8c16a cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xc7349ad2 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0xc2d3e7ca cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xa13c9f33 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xaa929fcc dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xdbc533fa dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xe1324aad dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xf8b6ea74 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x025addea dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x12d4c446 dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x1858f535 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x333273b4 dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x477b8955 dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x57f5ba27 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x62c9398c dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x75186902 dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7e027e21 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x83a9fa74 dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x8760e8de dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x96970547 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x9c82e868 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xed3d6ed2 dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xf7f3f8ee dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0xd7215cf4 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x04715fac dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x6b18fe88 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x9b9ee147 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xd6154058 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xf3033698 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xf8c4c185 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x0941a7d1 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x12ea1798 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xac3288d9 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xade023ab dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x2223e8b6 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x2ca90e69 dib7000p_get_agc_values +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x48eba3dd dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x4fe30aa9 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x508630bd dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x604df443 dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x72887f8e dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x801ef1b5 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x8ccc1c90 dib7000p_set_agc1_min +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x9acbc2f4 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x9bf4bcb8 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xa469f22d dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xa9e2847a dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xc204ed12 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xd616cd8b dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xeafbde57 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x0060c3f1 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x040b1345 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x0561c0de dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x1512c4a5 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x1d91bdb6 dib8000_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x50cc2771 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x5f92d455 dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x6909d9b9 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x7ea4a9ce dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x7f88a8c1 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x979d0b29 dib8090p_get_dc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x9a9b8bd0 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x9cf944f7 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xaac78936 dib8000_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb4e2d7a3 dib8096p_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb6f67b8d dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xbd46065a dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xc8a04c37 dib8096p_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xd8290ef7 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x10120c3a dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x2453aed6 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xa16eccbf dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xb97ae5cd dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xe549d291 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x227dea33 drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x406750da drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0xc339f7f9 drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0x3dd41ba8 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0x2bab65bf dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x076e9f58 ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0xac31ee49 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0xd69f3e73 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/it913x-fe 0x51eb6a38 it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0x10bbed3a itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0x34c1258c ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0x5d644c34 lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0xfa6f781a lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x60320bae lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x6febdea9 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x7dd70069 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xbdd9592d lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x8880d53a lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0xc76f0284 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0xea40385f mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x26d6d97f mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x56499f6e mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0xded5b3da nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x2c254df5 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x7628ff4d rtl2830_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0xaba76b48 rtl2830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2832 0x397b5833 rtl2832_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x507d5020 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0xf2cac11b s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x54829350 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0xd3098815 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0xa75e8481 s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x2d049069 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0x2b4384d7 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0x2e9f66eb stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0x17ba0575 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x807e6366 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0xa217409a stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0x6c6ae784 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0x65377e1a stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x3e5c0636 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0xd267966c stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0x09c64047 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0x2419f08e stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0x667025f3 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x9accb0f2 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x47630b7c tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x970f9868 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10071 0x58be54b6 tda10071_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x2cf0b7ec tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0x3e986eb5 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0xf1cf3e7d ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0x7a7e066f zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x125353ce zl10353_attach +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0x31f0af69 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x0177148e soc_camera_power_on +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x13db96f8 soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x194d7a23 soc_camera_host_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x2b5b7bbe soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x35244709 soc_camera_power_init +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x3b8f02bd soc_camera_lock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x64674f14 soc_camera_unlock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x8ae8f45a soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xfc3e1cb8 soc_camera_power_off +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x25c52d97 soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x2863728e soc_mbus_image_size +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x5f3e3558 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xa9546115 soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xfe2c3a07 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x2bae936e soc_camera_calc_client_output +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x4b4c8a09 soc_camera_client_g_rect +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x633fc30a soc_camera_client_scale +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xed32f96a soc_camera_client_s_crop +EXPORT_SYMBOL drivers/media/radio/tea575x 0x2c9be163 snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0x5649fba0 snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x9abe99d9 snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/radio/tea575x 0xe5d797d6 snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x360ae7a6 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x3937f66f lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x534b9876 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x5717ff14 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x79bea9a3 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x8c1868ec lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xb5d83c11 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xfefe7620 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/rc-core 0x94bfc347 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0xb0ff8596 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/tuners/e4000 0xa22b1ee1 e4000_attach +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x8f1f1c85 fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x3b9c24ae fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x336b5dc0 fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x7c67a29f fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xab999918 fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc2580 0x11368524 fc2580_attach +EXPORT_SYMBOL drivers/media/tuners/max2165 0xaaea3e41 max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0xb7e74e2d mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0x422f907f mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x6a21c86c mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0xfb2dc5e2 mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0x87ceebfa qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18212 0x3b6ed2a5 tda18212_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0xafd8615b tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tua9001 0x7e139dc0 tua9001_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0xb883b820 xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/tuner_it913x 0x0773aad6 it913x_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x08cd8685 xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0xcf13bed5 xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x686fb149 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x84ad5081 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x3f6baa2e dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x72d4163a dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x763f5e92 dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7ba3eca1 dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7d0fba44 dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x8921d308 dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xae904c6c dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xe460c6e2 dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xfab967c0 dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x0e6b9683 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x3e3a4bb2 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x5db0d9cd dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x9cfe7137 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xc269536a dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xed3a6f8e dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xfbc01834 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x9cd10624 af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x1283c8ec dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x266bb428 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x3a5b70d4 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x434148dd dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5015ae23 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5deaa0fe dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xa24ae3f3 dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xa84937f5 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb10d2434 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xccef223f dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd57280d3 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x4a8bd6e8 em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xe02b7c09 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x4a9125d9 gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x56f22f7b gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x60267689 gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x64966f93 gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x67ced814 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x922941fe gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xac46e35b gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xaed45b77 gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x78505942 tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x7aacb4b5 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xce99a584 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x4adaf0f3 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x53c9394f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x5f96a661 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0xabe27502 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x134a8255 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x3983e382 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xb4fb03c0 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x27666784 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x4302cd56 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x4fca2a28 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xb611f96d videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xc61b9bbd videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xebd89e7f videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf2-core 0x4dcd2093 vb2_querybuf +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x02a28a4b v4l2_async_notifier_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0a1e0552 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x12c8261a v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x12d809fd video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x140e371b v4l2_of_get_remote_port_parent +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x15bf130f v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1900d480 v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2625f471 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x26840021 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2e13960d v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x31e6f94f v4l2_async_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x32b32e56 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x32b7df14 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x35cd6680 v4l2_clk_set_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x36847d11 v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x37315a0b v4l2_clk_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3c5bad20 v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3db7f213 v4l2_of_get_remote_port +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3dea4699 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x40b08fae __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x459fc1a0 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4c01ea6a v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4d4668cf v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4de9fabb video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x591ba81f v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x59872bed video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x59b92e26 v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5b28018d v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5e602b4f v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5ea54a0e v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x601f52d2 v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x604cdd36 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x60f462ed v4l2_clk_put +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x66d01153 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x74441820 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x78a1bcb2 v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7d851315 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7f923f2a v4l2_of_parse_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x810ffdfe v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8589f165 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x86eb5765 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8744abdd v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x88a9e405 v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x940262da v4l2_clk_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x97753732 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9abb5229 v4l2_clk_get_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9aff5a2f v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9b8a302c v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa37424d5 v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa5adbd65 v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa6566d2b v4l2_clk_get +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa8abc986 video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xab8c7663 v4l2_clk_unregister_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xafeaec9d v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb63282f4 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb7d9eaf5 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb8a6f769 v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb90cbedf v4l2_of_get_next_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb91c2a9d v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbac4a225 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbf814cf8 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbf852567 __v4l2_clk_register_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc020ece0 video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc0410c8d video_usercopy +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc12cf8f8 v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc224aaac v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc2b9ae25 v4l2_clk_disable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc432a758 v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe4fef8ff video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6fce6f2 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xede39345 v4l2_clk_enable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xee6baeff v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xef867f0e v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xeffdbf88 v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/memstick/core/memstick 0x37d8e41d memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x3a563581 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x50febd59 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5fc2bc4c memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7782adac memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8706d1c3 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x97e5b574 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa5987a36 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xad5f98c9 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb93dfdda memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xdcd9fbb8 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe98f2532 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfecb1a93 memstick_register_driver +EXPORT_SYMBOL drivers/mfd/cros_ec 0x4227ebba cros_ec_suspend +EXPORT_SYMBOL drivers/mfd/cros_ec 0x44d9df9e cros_ec_register +EXPORT_SYMBOL drivers/mfd/cros_ec 0x89dcf139 cros_ec_resume +EXPORT_SYMBOL drivers/mfd/cros_ec 0xf85edaf3 cros_ec_remove +EXPORT_SYMBOL drivers/mfd/cros_ec 0xfae0414c cros_ec_prepare_tx +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x79a04faa pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xc93e2e6e pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x02c368f9 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x19eee3cc mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x23e1f3af mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x320a16d3 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x3c7e7b55 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x45871415 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7d213b81 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7e6e95a9 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb7562c1f mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb9c3bf92 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xbfbfab0d mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xcbada10b mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xe326dac2 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/tps6105x 0x042373a3 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x24e99e1c tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x348ebd8b tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x5faacc20 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x6cd0ad90 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x8a05ed90 altera_init +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x307d1b37 ssc_request +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x4511ca1a ssc_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x0e9755b9 pwm_channel_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5a8b82f9 pwm_channel_handler +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5d5c2951 pwm_clk_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x6a5e1f70 pwm_channel_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x73330c97 pwm_clk_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0xeb7f2c6f __pwm_channel_onoff +EXPORT_SYMBOL drivers/misc/c2port/core 0x29e2517e c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0xd33f1090 c2port_device_register +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x4787f910 dw_mci_suspend +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x92e001b1 dw_mci_probe +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x93423e0f dw_mci_resume +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x977198d9 dw_mci_remove +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x27cfd4b2 tmio_mmc_host_remove +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x3188aee9 tmio_mmc_host_probe +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x33d19097 tmio_mmc_host_runtime_resume +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x378f2335 tmio_mmc_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x63bdb169 tmio_mmc_host_suspend +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x6d3deee9 tmio_mmc_sdcard_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x7a6fd700 tmio_mmc_sdio_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x930816ac tmio_mmc_host_resume +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xd21681cb tmio_mmc_host_runtime_suspend +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xf02062dd tmio_mmc_card_detect_irq +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x28940352 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x41a9820a cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x8d4469a4 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x9ac9a126 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xa5cbc551 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/nand/denali 0x4f8d3c37 denali_remove +EXPORT_SYMBOL drivers/mtd/nand/denali 0xbf896988 denali_init +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x3d96a74b onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xa8026a2d onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xb65202d4 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xc96b30d6 flexonenand_region +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x3e1c462c hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x57f67fa6 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x708b0741 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xc0f338ad hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xcf4ef506 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3385e121 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x44a0c9ae irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5f03eb48 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x76be907e sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xaa73f66f irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xabf9bcf3 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb29acd1e sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xcb26802b sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf1c189ce sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xffeb6765 sirdev_get_instance +EXPORT_SYMBOL drivers/net/mii 0x1aa9001a mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x3bedacb3 mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x7946c2ef generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x891e143a mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x9624cb5d mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0xbfa613e6 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xd2fbf1a5 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xfecdf79b mii_check_media +EXPORT_SYMBOL drivers/net/ppp/pppox 0x3554020c pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0x85ca5789 register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xee2894d2 pppox_ioctl +EXPORT_SYMBOL drivers/net/team/team 0x07ca8785 team_options_register +EXPORT_SYMBOL drivers/net/team/team 0x0fbe8641 team_options_unregister +EXPORT_SYMBOL drivers/net/team/team 0x11c0be2b team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0x6e8078d8 team_option_inst_set_change +EXPORT_SYMBOL drivers/net/team/team 0x7a34ac58 team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0x8f74ed28 team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0xb0d37823 team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0xb4944d8a team_mode_register +EXPORT_SYMBOL drivers/net/usb/usbnet 0x3af26407 usbnet_manage_power +EXPORT_SYMBOL drivers/net/usb/usbnet 0x5318d20d usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0x8d7aa9e6 usbnet_link_change +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1bb468c6 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x24533993 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x273b6a2b hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2884f4fa unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x570c2c9a register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5ad2d0fa hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x64699463 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8d8255d3 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x939158e1 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa3a5b5ee alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0xbc5feb6f detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x76a4f3a5 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x05e2a271 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0c0d6c8b ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x50b1fab3 dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x53358ce3 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x62e6ac26 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7415bd5d ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x8a32a847 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb0902d57 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xcffcfd69 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xd5794608 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xed7495ef ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xef139d79 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x1fcb445d ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x307c1177 ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x32c351d7 ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x376ee8ab ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8246be6c ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x895f9dc2 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa5ce7763 ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf096710 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf7f3ef9 ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0199ec46 ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1c589c8b ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x2402a7be ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x27cf1694 ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4c6ddcb4 ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4e1380ee ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x5c4bfc94 ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x652fd6f6 ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x69726e15 ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x76543edf ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x8b56a7ff ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x8cf02bd4 ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xcccac29a ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xefac86dc ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x34b9da6b ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x91fc76f5 ath9k_hw_wow_event_to_string +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x9a60f204 ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0xc5b63e67 ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x0028f1c4 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x046dca25 ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3ec6497a ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa074b02c ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x02710889 ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x035833ba ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x07b3f4d2 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b70eef9 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0cb99065 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0dd03476 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f49d989 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13388ccb ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x143ace45 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17a58b73 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1c04a44e ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f42d398 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f93bb50 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26ba4184 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a136a7c ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2bb38eac ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d89bf0e ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2dc5dcfa ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2f8d3bf8 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x306aeb6a ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x341a4aa2 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x384828c4 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38677c76 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x41a65b1d ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x422818df ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x424c5f9f ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x44f322b0 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x45d5f19e ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x483a5399 ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a333d68 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f9aeb33 ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5893f223 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x639e82b5 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x707f30f0 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x729d5839 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x72b9c439 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x74670866 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7587629c ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x770ee46b ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x792d4202 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a179ec2 ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f0ed296 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f29d397 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x815e9742 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x81b23749 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x85586636 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x879d3a2c ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8db0959f ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8db1a989 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8dde24cc ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8ff70392 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x90474257 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x921b7087 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x950650c8 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x971e05f2 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x98a944bd ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9bb37b67 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9e4e0e50 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f2cd256 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f6aea0e ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa4239af8 ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa7d3f64f ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8fdf463 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa92a55f7 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab466a59 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab4da44c ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xafb0a27d ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb09540fd ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb21d8740 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb3d8290d ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb3db2151 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbc812ca8 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc100e48c ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc19337df ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc25808c0 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc668d88d ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc73eaed6 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcc6f205b ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xceef14f2 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcfaa676b ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd0cb9ed4 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd4bbaff7 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdbc95a7e ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc471a91 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdcf07e26 ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe0cb9486 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe26f7442 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5cc8bba ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe6a99ad4 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8a3e357 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe9d2f27a ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xec2db912 ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xec7605e1 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xef81c05d ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf44e4613 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf6c9a46c ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf86069be ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xffbf0273 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x12f9b8d4 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x4d60ce28 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x00880002 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x0d6bd2eb brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x0eff9b12 brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x1055a048 brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2223b2a5 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2dc227f8 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x5f341247 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x72903e4d brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x9a7c1433 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xac707b00 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc6615ca3 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc7e367bc brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc90870dd brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xf3820341 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x03c37c10 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0d8880c9 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0e59a52f hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2685c2f4 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x27dbbf14 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3dc93ff6 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x463304ef hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5568d980 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x589442e2 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5f6bf41e hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x66603d58 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7009f8eb hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8a0ce9ad hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x92a5c59e hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x93728b52 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa9e16a59 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc174b715 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xca89c448 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xce120869 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd504d976 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd6acce70 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd734879e hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xeb6ced93 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf01af745 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf813aac8 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x00fee492 rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0a7e855b rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0b24bb74 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0b440dbb rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0cc28623 _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x17c0aacf _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x18506c60 _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1c64c14b rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x224e94bd _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2550c970 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x289a2e73 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2974fce9 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x33d80ab5 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3ac359f1 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x41b87397 rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x53add138 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5a61593e _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x73892ad1 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x748dbb4a rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x840cf654 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8f52e25c rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9af268c0 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa92030b5 _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xadad3466 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb4c2a080 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb7ff7277 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xba518455 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbe122c11 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbfa7c4df _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc2946cda rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc76a7430 rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc7d43cb3 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcf456fdc _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe333a7d0 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe452cc51 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe5a9844e rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe63f309f _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf17da92c rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf4fd1d60 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfb7cfedc rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfd155f97 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x32a22be9 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x8c64ca34 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xcfacc281 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xfec458f0 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1c75d14e rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x207fbb70 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x28734e8b efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2a28b12c rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x54477794 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x56e392e5 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x56f07c6c rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6250762d rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6b5bb90f rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6cb13f40 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6e7dc580 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x71cf908a rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79188a02 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x791d6e83 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa0e1cd5b rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xbcec6008 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xbf387e80 rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc9a8831a rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xca6e0e08 rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xcd5deb39 rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xdb59c815 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf310fac5 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x1b8d8921 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x455ba7fc wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x48ba80ab wlcore_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xcf294803 wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/nfc/microread/microread 0x1a734ad2 microread_remove +EXPORT_SYMBOL drivers/nfc/microread/microread 0xb20ee8c7 microread_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x6c70eb4b pn544_hci_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x793843f9 pn544_hci_probe +EXPORT_SYMBOL drivers/parport/parport 0x00bf181e parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x04ded69c parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x0a564873 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x1fb7bf5b parport_release +EXPORT_SYMBOL drivers/parport/parport 0x274b24cc parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x2a61bcde parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x459cd2f7 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x4879d4b5 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x48f27df2 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4f7c55e2 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x573773f5 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x5eeab249 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x6c3c1f85 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x71b72dbc parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x81c0bd73 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xa26f3edc parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xb88b6673 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xbf59d729 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xc0257854 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0xc2adb9fe parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xc60e328c parport_read +EXPORT_SYMBOL drivers/parport/parport 0xd0a74780 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xd238c649 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xd3c56e62 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xd4c57eb5 parport_write +EXPORT_SYMBOL drivers/parport/parport 0xdb2d70ec parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xe1a19bc5 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xe7ee9129 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xfb57d045 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xfbb9e5f6 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport_pc 0x6494baaf parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xa2933712 parport_pc_unregister_port +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x06b7ced7 rproc_da_to_va +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x1a9f5866 rproc_vq_interrupt +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x5376df3f rproc_shutdown +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x8250874d rproc_alloc +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x95546fc1 rproc_boot +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xc64d1df2 rproc_del +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xd18f2d4d rproc_put +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xd5e4a6f4 rproc_add +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xde9d58d7 rproc_report_crash +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x03867ff5 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1cd2e8ad fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1d42e1e4 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1e146008 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x4b89628c fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x786452b9 fcoe_ctlr_destroy_store +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9dd4bd1f fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9e9264b2 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xae88adcb fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc66f963c fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xcf5e9349 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe46e61c3 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x023c60c4 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x03e96140 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x049edd1d fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0570ec29 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22011400 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x25446a0e fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3337c373 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x33b1a1ae _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3545ddab fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x37b4488f fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x405247e0 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4218a1e3 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x445a3b5b fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x45f58a69 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x47e39b5c fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4e4d9957 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x52b168fc fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x54927f1d fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x54b69b1a fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5c73acf6 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x62b7b84d fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x63d06a57 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x676b3adf fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x79f4fa5c fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7a39a80e fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7bc64878 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7ca8eec0 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7d998a3a fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x80084318 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x83f08a3b fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x876e96c5 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x89490e1d fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x89c7718c fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8bf27b36 fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9a1afae6 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9ac846f5 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9c2467ca fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9e9b9877 fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaa989051 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xac6d426b fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xae74a245 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb545fbbe fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbdfa2902 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc5741d92 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcbb124a2 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdc3d523b fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe06fac11 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe119943e fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe290d700 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf853b914 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf8609d3e fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc920a68 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x0a9d5399 sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x1971c49f sas_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x85b28f7b sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xe4a6bb94 sas_wait_eh +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x054353b6 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x10c1eab8 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1c20e4a3 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1e78f07a osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x228f35d1 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x22ca0a3f osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x24a4aad7 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x325d77c7 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x34156272 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x367ed432 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x43381ff6 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x48184701 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x579f5ff1 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x728a7eb6 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x76e79aab osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x76f86be3 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7befaa1f osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7cc28942 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7e6b38a0 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x958f31af osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9655b53f osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x98598915 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa014558e osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa6aa84f8 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa96ea108 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xaba537d1 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xafa95736 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb9cddca4 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcce59738 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcd8a1c72 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcee26862 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf0d0dc9e osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfc5994b4 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfd8f541b osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfe71d9fc osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xff0f1840 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/osd 0x46807365 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xb472fad2 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xb98579f1 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xca556603 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0xe7014745 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xfe058bdd osduld_put_device +EXPORT_SYMBOL drivers/scsi/raid_class 0x49a86396 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x52a475b6 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x8d5b9bab raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1b74edc8 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x482a329c fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4df3236b fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x86d60751 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa513ffb5 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb2ca4151 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc2c6f127 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc98a9e77 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xce6a6eda fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd45f35ae fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd5ead6f3 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdac2d0e3 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf6061a1e fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x025dd0ef sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x02ddad60 sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x29e50665 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x402c13d0 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x457ffbf4 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x467fe0b3 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x475ab99e sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x51462e05 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5970ed9f sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5a29dc9a sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5c41a493 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5e13ef49 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x62b4ced1 sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6d1ed667 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x707c0166 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7c63f766 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x80694b59 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8684fa7e scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x86c8bcf4 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x89e7c6f5 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa374296b sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb0117ffd scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb4463ada sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbfb83659 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc8d2a01e sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd10ec3b3 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd38cacf9 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf0c8b90d sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x06fed6b8 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x0aa370cb spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x20bd7ac1 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xcc65e8f6 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xd8f848ad spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x03d6e423 srp_rport_get +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x7a8ed77c srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xc9afc9e4 srp_reconnect_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xe4546507 srp_rport_put +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x61089e6f ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x9819c4ac ufshcd_runtime_idle +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0xdb57f675 ufshcd_runtime_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x0ce1607a ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x1c78120f ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x38879a0c ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x3a1ce5b1 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x63addff1 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x6e37a228 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x737eaf1d ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x83c8866a ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x879648f4 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x9d1da3f1 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x9f3c745b __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xb125eddf ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xb6823d1e ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xbeb4e4cf ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd5edc85c ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xd600e720 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xd7203482 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xf543796f ssb_bus_suspend +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x44b14cf8 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xb5e7c7f1 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x38d0e29b ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xf8f870ff ade7854_probe +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0bce7eef lnet_counters_get +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0d03978a lnet_unregister_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1366b7ac LNetSetLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x14a09e45 lnet_connect +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x19670622 LNetNIInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1b191752 lnet_msgtyp2str +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1fe16fd5 LNetGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x204b8151 lnet_counters_reset +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2096fe37 lnet_register_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2aa9953d lnet_cpt_of_nid +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2ac93e90 lnet_connect_console_error +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x313ba9db lnet_notify +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x329f5785 lnet_copy_kiov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x33202a6c LNetGetId +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3558e584 lnet_iov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x36fc7abc lnet_copy_iov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x39b468c9 lnet_net2ni +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3c779ee0 LNetPut +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3f4f5b46 LNetNIFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x473ad33b LNetDist +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4bb00492 lnet_copy_iov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4f9cb871 lnet_extract_iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5811a721 LNetInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x58a1ca89 LNetMDUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5fee352c lnet_acceptor_timeout +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x6129ac5a lnet_set_ip_niaddr +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x61578430 lnet_finalize +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x61f784b2 LNetClearLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x64cdea3a LNetCtl +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x6f7be171 LNetEQGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x722c76e5 LNetMDAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x7d59a7fe LNetMEInsert +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x854ab844 LNetEQWait +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8a3064f2 LNetSetAsync +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x90e726d1 the_lnet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x9de986d3 LNetEQAlloc +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x9f2f9e04 lnet_create_reply_msg +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa8c2760b LNetFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa414970 LNetMEUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa9b477e LNetMDBind +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xab780444 lnet_parse +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb75f7953 LNetEQFree +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xba5566d2 lnet_acceptor_port +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xbf0760a2 LNetMEAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xd819156a lnet_copy_kiov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xe1b62b54 lnet_kiov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xf1b316bf LNetSnprintHandle +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xf93d1335 lnet_extract_kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xfb562871 lnet_set_reply_msg_len +EXPORT_SYMBOL drivers/staging/lustre/lnet/selftest/lnet_selftest 0x078db139 lstcon_ioctl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x0405d321 client_fid_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x1c4bb5f9 LU_OBF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x341c525f seq_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x375e6f8d LUSTRE_BFL_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x421ca142 client_fid_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x510bb1e6 seq_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x6b1f0574 seq_client_alloc_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x77bfbf03 seq_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xa4a8f879 seq_client_get_seq +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xae61cff5 LU_DOT_LUSTRE_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xc997a02f LUSTRE_SEQ_SPACE_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xecee2727 LUSTRE_SEQ_ZERO_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x017dd39b fld_client_proc_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x045b3eef fld_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x0d02aa36 fld_client_add_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x14c01383 fld_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x8f31a0b6 fld_client_del_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xcf7fdd98 fld_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xe83b8fd9 fld_client_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x000c507f libcfs_debug_dumplog +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x00c881f6 cfs_cpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x01db5172 cfs_percpt_atomic_summary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x03387ca6 cfs_curproc_groups_nr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0389f857 cfs_cpt_spread_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x04d3ce6a lbug_with_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x069f9bb2 cfs_wi_schedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x08ada613 libcfs_console_backoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0b4b1546 libcfs_lnd2modname +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0c68bc45 cfs_cpt_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0de6c369 cfs_cap_lower +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0e311d38 cfs_percpt_atomic_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0f10432d upcall_cache_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0f5eff79 cfs_percpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x10b7e9c3 cfs_cpt_unset_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x10fd50ae cfs_hash_for_each_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12426266 libcfs_run_lbug_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x151e7546 cfs_cpt_table_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x17ac7833 libcfs_deregister_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1a60d439 cfs_parse_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1c7ec980 cfs_hash_for_each_safe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1d5a3928 cfs_timer_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x22319718 cfs_percpt_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x23f6f445 cfs_restore_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x24e0f4da cfs_crypto_hash_update_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2637a660 cfs_hash_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2663147a __cfs_fail_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x27b6d3ba cfs_ip_addr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2b1e0458 cfs_get_environ +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2dab39e1 libcfs_sock_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2dbe54b2 cfs_trimwhite +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2e5044c7 cfs_cpt_set_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2efcc0e6 cfs_block_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2f85ad89 cfs_hash_dual_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3058f51b libcfs_sock_listen +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x30986343 cfs_range_expr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x31fc5082 cfs_crypto_hash_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x339b461a cfs_hash_dual_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x37077b5e libcfs_sock_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x377f93fb cfs_srand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3834f243 proc_call_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x389ca502 libcfs_debug_mb +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x38fde09c cfs_hash_hlist_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x39fdcd2b libcfs_debug_set_level +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3c1285bd libcfs_subsystem_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3d5e6098 cfs_race_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ea730c0 cfs_gettok +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ef0d90c libcfs_kkuc_group_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x411db754 cfs_crypto_hash_final +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x41ab33a1 libcfs_ipif_free_enumeration +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44688a0a cfs_block_allsigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44728d76 cfs_cpt_bind +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44839bbb cfs_rand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44f07cfc cfs_pause +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x47fdb4d1 cfs_timer_is_armed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x48193550 cfs_hash_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x482deff7 cfs_cpt_unset_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x48f163c6 libcfs_str2anynid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4a99af72 cfs_clear_sigpending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4b123f3a cfs_hash_cond_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4d89e988 cfs_block_sigsinv +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4f1f2fa5 cfs_crypto_hash_digest +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x50345570 libcfs_str2net +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5051b6d2 portal_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x509d38b0 libcfs_net2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x54fd9a71 cfs_percpt_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x55d18175 cfs_hash_size_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x58a7ee00 libcfs_catastrophe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5946ec2b cfs_percpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5a785762 cfs_cpt_online +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5c013b81 cfs_expr_list_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5ca50414 upcall_cache_flush_idle +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d3be65a cfs_crypto_adler32_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d73c3e3 cfs_expr_list_free_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5dce9e80 libcfs_lnd2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5dd2e495 cfs_hash_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5df8c623 cfs_cpt_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62289d65 cfs_array_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x63be5b7f cfs_race_waitq +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x64685fef libcfs_console_min_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x647a7b6d upcall_cache_get_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6564c55b libcfs_console_max_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x65dd9f0c libcfs_run_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x66136d2d cfs_timer_arm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x67398404 cfs_wi_sched_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6aecc4bc libcfs_sock_abort_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c905b5f libcfs_watchdog_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c9b4713 cfs_hash_bd_del_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6dfa9ea1 cfs_crypto_adler32_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6e6af71c current_is_32bit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6f613cbb cfs_hash_debug_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6f928e1b libcfs_debug_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x71f662a3 libcfs_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x75600a04 cfs_hash_bd_move_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x790dbd66 cfs_hash_rehash_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7a3d49ae cfs_expr_list_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7b0b748a cfs_ip_addr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c7986cf waitq_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7e6a5b3c cfs_hash_findadd_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7e6f6485 cfs_ip_addr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7fda989d cfs_fail_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8151c3aa cfs_cap_raised +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x81bef0ce add_wait_queue_exclusive_head +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x828d16a2 cfs_cpt_table +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x83d795e4 cfs_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x83e75430 cfs_hash_getref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x857aaea7 libcfs_register_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x89b2ddc3 cfs_hash_rehash_cancel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x89dcbafa cfs_hash_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8bc2bb38 libcfs_sock_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c1eaa62 libcfs_sock_getaddr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c85e4e6 cfs_crypto_hash_speed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8d3622c1 cfs_hash_bd_add_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8dda96cb cfs_hash_dual_bd_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f12bb52 libcfs_log_goto +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f45f10d cfs_init_timer +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x91504e8b libcfs_kmemory +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x92f54077 cfs_hash_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x93611067 upcall_cache_flush_all +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x940ed192 libcfs_stack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x95620e8c cfs_wi_deschedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x96727837 cfs_hash_dual_bd_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x97b0b9bc cfs_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9879b229 cfs_get_random_bytes +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9939d929 libcfs_kkuc_group_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9f82f712 cfs_trace_copyout_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa256e060 cfs_hash_bd_peek_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa28a6757 cfs_percpt_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa2b68b2a cfs_array_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa6b9dee6 libcfs_kkuc_group_rem +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9088531 cfs_expr_list_values +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9a5cf4e cfs_hash_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9dc74e2 cfs_trace_copyin_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9eae690 cfs_str2mask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xaaae127e libcfs_sock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xab887583 init_waitqueue_entry_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xabc53bf1 cfs_hash_is_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xac0f67e3 cfs_cpt_unset_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xad019238 cfs_str2num_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xafdb46d6 cfs_hash_dual_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb2ae1633 cfs_hash_rehash_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb336ee38 cfs_hash_for_each_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb473e79e cfs_wi_sched_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb61e7c98 libcfs_sock_getbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb96c7e44 cfs_hash_debug_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb9cb508 cfs_curproc_cap_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbc275420 cfs_cpt_unset_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbd5d492e cfs_timer_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbf7a37f1 cfs_signal_pending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc0ea7fc0 cfs_expr_list_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2911d96 cfs_expr_list_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2dfd791 libcfs_console_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc39fd2f9 libcfs_panic_on_lbug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc3eb614e libcfs_ipif_query +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc47433a6 cfs_capable +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc49b1c62 cfs_percpt_atomic_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc514e721 cfs_hash_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xca24b2dc cfs_hash_for_each_nolock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcafda950 upcall_cache_downcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcb2160d3 cfs_cpt_of_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcb385db9 libcfs_debug_binary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcbab8493 schedule_timeout_and_set_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcc20e694 libcfs_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcc7e1d13 cfs_percpt_lock_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xccc45639 cfs_free_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcd38904c cfs_wi_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xce1a88f2 libcfs_arch_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xced1fed2 cfs_hash_rehash +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf61bacb __cfs_fail_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf90528c cfs_cpt_table_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd1319447 cfs_cpt_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd13befa9 cfs_percpt_lock_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd3965252 cfs_hash_del_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd5396536 cfs_cpt_set_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd66d427e cfs_hash_dual_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd6a52be3 libcfs_printk +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd9541990 cfs_strncasecmp +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd96f406d cfs_cap_raise +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xda09d370 upcall_cache_flush_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xda47d20a libcfs_sock_setbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdce448d0 cfs_cpt_set_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xde17bb8d libcfs_isknown_lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xde8bd0b1 libcfs_kkuc_msg_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdf2789c0 cfs_curproc_cap_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdf675bc7 cfs_hash_add_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdfcd8209 upcall_cache_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdffc951d cfs_timer_disarm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe3bf6897 cfs_percpt_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe45b62ff cfs_cpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe6555032 libcfs_ipif_enumerate +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe6d83cf8 cfs_hash_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe7b54314 libcfs_arch_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xec1f56d5 libcfs_str2nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeceac781 cfs_fail_val +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xedf3a25a cfs_timer_deadline +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xee92bb75 cfs_percpt_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf0246bf2 cfs_cpt_table_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf372d1c2 cfs_firststr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf440bb38 libcfs_kkuc_group_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf782fbe6 cfs_cpt_weight +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8a8644b libcfs_id2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8efb8c5 waitq_timedwait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf94025d1 libcfs_str2lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfa0d98ca cfs_cpt_set_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfbd3438b cfs_hash_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfbfbdc46 upcall_cache_put_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfc84f076 libcfs_sock_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfde479b0 cfs_hash_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfe565fa9 cfs_crypto_hash_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xff0f98a6 libcfs_debug_vmsg2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x17b2f116 ll_iocontrol_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x5af74e5f ll_direct_rw_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xa7a6df9f ll_stats_ops_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xcd3cde92 ll_iocontrol_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xd2c64e74 ll_osscapa_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x0934fb0d lov_lsm_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x0be2e9fe lov_device_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x35580ad2 lov_read_and_clear_async_rc +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x37815018 lov_stripe_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xc15ad0a8 lov_lsm_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xd7578204 lov_stripe_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x5de01627 lprocfs_counter_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x65912152 l_dentry_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x8512b2a5 pop_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x85d40144 obd_memory +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb4f8ee63 lprocfs_read_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xc206f0c6 fsfilt_get_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xcc981535 fsfilt_unregister_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xd67a03e4 push_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xd94212be lprocfs_counter_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xdf623799 lprocfs_stats_alloc_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xfbf90efb fsfilt_put_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xfc58552d fsfilt_register_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xfda4757a lustre_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x14a47f31 it_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x9c22b84f it_open_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xb57d8447 it_set_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xf46a886f it_clear_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mgc/mgc 0xdc287f95 mgc_fsname2resid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x01665e34 class_parse_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x035852d0 lustre_swab_llog_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x038e4889 lu_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x057f6d4b class_find_old_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0587c11b llog_cat_cancel_records +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05af1920 dt_quota_glb_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05f84e88 LU_BUF_NULL +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x06b7a0ea lu_object_anon +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0743a831 cl_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07538c47 lu_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07aa68bb lustre_swab_lustre_cfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x083942ff class_del_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0845e03b lprocfs_obd_rd_max_pages_per_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0a254786 llog_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b0bd276 lu_context_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b2b298a cl_page_find_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b669da4 obdo_to_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0bb26566 lu_env_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0bb6ab46 class_handle_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0c3b640a llog_declare_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0c5be932 lu_kmem_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0cac742c class_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0cf99bff dt_acct_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d4d5bcd cl_object_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d72c500 dt_index_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d763d9a cl_env_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0dd9b684 llog_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0e19a3e0 lu_device_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0e5126b0 lu_context_key_degister +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0eb33400 cl_2queue_init_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0eb4022d llog_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0ee7e707 cl_page_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fe91547 obdo_to_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0feb0925 class_exp2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x10013eb5 cl_page_list_move +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x10177138 cl_page_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x111997c9 llog_cat_init_and_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11495519 lprocfs_write_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11e896b0 cl_queue_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x12b1308a llog_cat_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x12b1b31f lu_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x144de34e cl_page_is_under_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1476b8c4 lu_ucred_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1491dc30 lu_context_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x15972013 cl_enqueue_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x165ba599 cl_lock_nr_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17260880 obdo_cpy_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x173cd982 lprocfs_rd_timeouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17c654dc class_put_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1840c3a6 cl_page_cache_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x187dced8 lu_env_refill_by_tags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x18c5871d cl_lock_discard_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x19b19e93 lustre_idmap_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x19dfe24e cl_object_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1b15f164 cl_lock_mutex_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1bbb62b7 class_uuid2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1c840155 cl_lock_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1cc487c7 capa_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1d7a5b18 obdo_refresh_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1da4cd43 cl_lock_extransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1f3dfb0d lprocfs_stats_collect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21307495 lu_buf_check_and_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21d1afd2 cl_io_prepare_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x221826f1 class_parse_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x221a98ec capa_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x228167e3 lustre_in_group_p +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x23c1e6b2 cl_locks_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x23f8b849 lprocfs_register_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x24044d59 lprocfs_exp_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x24b8f78f dt_txn_callback_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x24efb496 obd_export_evict_by_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2547efae lustre_uuid_to_peer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x259ebac6 obd_alloc_fail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x25ba9c55 cl_pages_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x26876b01 lu_context_key_quiesce +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x269fa27c cl_offset +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2746eadb dt_txn_hook_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x275cdc7a cl_env_reexit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x28222d63 lu_site_init_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2838c463 lu_env_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2883246e obd_devs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x28b5a614 obd_llog_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x28f6e0a6 cl_object_kill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x294e3850 cl_page_list_splice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x297cf5e0 class_handle2object +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2a2d5341 cl_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ae1cd79 kuc_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2b0a47dd llog_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2b4c48e9 server_name2svname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2b7610f9 lu_kmem_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2b822eda class_exp2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2b93d21a cl_page_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2bffac32 obdo_from_iattr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2c3ad070 cl_lock_user_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2dae5642 cl_page_make_ready +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2e51b430 lu_object_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2e6e3383 dt_txn_hook_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ed72dd8 lu_site_purge +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2fd0b10c dt_index_walk +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2fd0b388 llog_osd_get_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x31669383 llog_cat_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x31e4815d cl_lock_weigh +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x327593f9 cl_page_list_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x331f5b8c cl_lock_descr_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x33674bd4 cl_lock_unhold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3398dcc3 cl_io_sub_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x33bf656f lprocfs_free_per_client_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x34caf674 lustre_idmap_lookup_gid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x36695653 cl_page_list_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37542b09 cl_lock_get_trust +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37ed6e4b at_early_margin +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x388c2ed7 dt_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38cd9ba9 cl_page_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38d9bce4 class_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38f9c22a cl_req_page_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38fb0c90 class_match_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x39009133 dt_declare_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3a005065 dt_otable_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3a393510 cl_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3ac7cdf2 lu_object_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3b50f881 lprocfs_rd_connect_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3b6859dd capa_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3b8b796f lu_context_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3c01ae05 cl_io_rw_advance +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3dfb94e8 lu_device_type_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3dfc65c3 lu_object_invariant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f40d68f cl_page_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3fcfa87f lu_site_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3fda78b1 class_register_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x40398802 lu_device_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x41301692 lprocfs_free_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x41ac45b0 lprocfs_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4202ac3c cl_io_submit_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x43b9a073 cl_lock_signal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4442e1f7 cl_wait_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x448526a0 lu_context_key_revive +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44e41abb lustre_posix_acl_xattr_filter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4515e57a lu_context_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4524096f class_disconnect_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4529278a cl_object_attr_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4559b48e cat_cancel_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x467053f8 cl_lock_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4683a0d9 lu_context_key_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x46b50f4b local_file_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x473afa1d llog_osd_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x474d1193 local_index_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x474ed5bd lustre_swab_ll_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47b35f7d statfs_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47c52708 lprocfs_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47de3d6c cl_vmpage_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x48fb0974 cl_page_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x494cfb52 lustre_acl_xattr_merge2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a0f6ea lustre_posix_acl_xattr_2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a29223 lprocfs_find_named_value +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49f6b95a lprocfs_seq_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4a9b61b4 lprocfs_rd_conn_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ac58713 obd_connect_flags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ad0539e llog_cat_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4bb3792a cl_page_clip +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d13458b kuc_len +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d2e074c lprocfs_init_ops_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4e1cc9ea cl_page_is_vmlocked +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4e1f416e obd_llog_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ef9af72 cl_lock_ext_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4f3dde55 cl_page_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4fba4346 dt_directory_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x503f63a0 cl_lock_hold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50c7fc36 ptlrpc_put_connection_superhack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50cfceea local_index_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x51dc4693 cl_env_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x51ef05fe llog_cat_declare_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x521cda30 class_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x52ef2253 cl_io_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x53edc71a local_oid_storage_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5415e163 class_conn2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54885f87 ldlm_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x558bec27 obd_ioctl_getdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x55e15699 lprocfs_rd_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x55e2a16d lu_env_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5616efd0 lu_object_put_nocache +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5627cce8 lprocfs_oh_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x562aeb74 lprocfs_wr_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x564e9d44 init_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x56a41515 lprocfs_alloc_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x56b1b8af cl_io_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x56e08762 lprocfs_rd_num_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x570d09ae lustre_swab_lu_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5720eb19 cl_lock_closure_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x595cc772 class_disconnect_stale_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x59f519e4 lprocfs_exp_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a20d896 obd_memory_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a64d92d lprocfs_counter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5b1f7b86 dt_try_as_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5b72e40b class_conn2export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5b8860f0 lprocfs_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5bc022c5 lprocfs_dt_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5c3dbaf5 lustre_register_client_fill_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d1935ac cl_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d34ae0d cl_lock_mode_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d6d0f47 class_new_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e4278bb class_fail_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e5d9a3e cl_lock_mutex_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e6d6bdd cl_io_commit_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e9d3d9c dt_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ed188a9 lprocfs_add_symlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5f7c6cb0 class_config_parse_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5fe97b73 block_debug_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x60ce1059 cl_2queue_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x60de4333 cl_lock_descr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631a518d mea_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631fd7b9 lustre_ext_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x637239ac lustre_idmap_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x63728cd5 lprocfs_rd_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6383bf9b iattr_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x63d440b1 lustre_idmap_lookup_uid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x64fa2921 cl_io_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x65b689ad cl_req_page_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6723f5b6 cl_lock_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6734adbd lprocfs_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x677fd7f9 proc_lustre_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67977b42 lprocfs_remove_proc_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67a90622 la_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67dc223a lprocfs_remove +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6890d175 lustre_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x699bd270 lprocfs_alloc_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69b44649 dt_store_resolve +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69c42114 at_min +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a628b78 cl_use_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a65fea1 cl_req_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6ae41ff5 llog_init_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6aef1ea7 cl_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6b3ab50e md_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6b688f78 lu_object_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6b6a802d cl_io_iter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6bb6d421 lu_buf_realloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6c17eca0 cl_env_unplant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6d133e8d cl_page_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6d194980 class_conn2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6dc11514 lu_dev_del_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f3e6225 dt_quota_slv_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6fa646d7 cl_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6fc6c4ab lprocfs_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x70f7d340 cl_env_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x724da5e7 dt_record_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72ddee4c obdo_le_to_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72f1b64e lu_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x73e0b916 cl_io_iter_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x73fc84fc llog_obd_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x742559b1 class_unregister_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x74414d6a llog_copy_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x74aa95cf lprocfs_init_ldlm_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x74aba9e9 llog_cat_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x752f71a8 class_get_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x755ec5be lprocfs_rd_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x756a77f3 class_parse_nid_quiet +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x75c73b42 obdo_from_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x75f8c4f8 lu_object_find_slice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7635d118 lustre_register_kill_super_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x764a2e90 cl_lock_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x764fd34e lprocfs_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x76f9d2e7 class_export_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x775ba815 cl_lock_closure_build +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77d2089a class_name2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7802fcd7 lustre_swab_llogd_conn_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7840f670 lustre_idmap_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x785c0d7e lprocfs_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x789796a1 obd_zombie_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7961a85d cl_page_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7a65a2e2 cl_page_list_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7a7b2a0e cl_lock_mutex_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b2f25f8 cl_io_loop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b460b99 cl_req_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b4fc57b at_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b9b0ac8 cl_page_list_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7e1b662f lu_context_key_quiesce_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7edcafa0 cl_env_reenter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f0fc75d llog_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f9237e5 class_handle_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7faa1d0f cl_page_is_owned +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fad7291 raw_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fe5561a obd_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x80038fef class_detach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8031efb8 lprocfs_dt_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x806cc497 class_add_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x80cc2fcb local_file_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81742d89 obd_ioctl_popdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81b83ebe cl_page_list_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8267e4d9 cl_io_rw_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x82cfcd48 llog_thread_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x831397ec lprocfs_rd_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x831f656c class_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8339493c cl_page_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x83595b06 cl_sync_io_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8383c465 dt_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8463be34 cl_lock_hold_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8489f086 obd_alloc_fail_rate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x849e5385 obd_update_maxusage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x85076730 class_incref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x856cf7cd class_manual_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8576090c lprocfs_free_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x89a7e1cc cl_page_list_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8aa2c358 lprocfs_dt_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b5f4057 lu_context_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ba6e479 lustre_swab_lu_seq_range +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8dd053cb lu_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f67314c obd_dump_on_eviction +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9032783f llog_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x905933d2 lprocfs_obd_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x90c8d327 lprocfs_init_mps_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92e58479 obd_dump_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93ae182c class_devices_in_group +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93b46468 lu_session_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93f967fe cl_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x94069c32 llog_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x94677235 lprocfs_clear_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9512d507 lustre_acl_xattr_merge2posix +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x955f5220 ldlm_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95735c6c at_extra +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95b90f88 dt_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95ec998a lustre_groups_sort +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95f3bf21 dt_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95fdd7c8 lprocfs_nid_stats_clear_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9741ba68 class_new_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9767adce class_uuid2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x978e632e lprocfs_rd_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97a371da class_import_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97d03783 at_history +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x98302c54 cl_req_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x98b0e032 cl_2queue_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9976d1f0 dt_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x999400f7 lu_context_key_revive_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9a0e8c7a lu_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b1ed9d8 obd_jobid_var +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b928613 dt_store_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9c36bbbc class_find_client_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9ca5e2bf class_process_proc_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9ced5371 cl_page_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9d2cc3f3 capa_cpy +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9d6cf6d9 class_config_llog_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9d863555 cl_page_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9da77882 cl_lock_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9dbb17b6 lprocfs_dt_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa21c5ea1 obdo_from_la +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa3139f38 lu_object_find_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa4335379 cl_sync_io_note +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa513f7e4 lustre_groups_from_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5fb234f lprocfs_write_frac_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa65a5c94 cl_page_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa674c241 kuc_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa6ea4828 capa_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa72a3510 cl_lock_is_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa862d221 lprocfs_oh_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa8994ee6 obd_export_evict_by_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa90a5f06 cl_io_submit_rw +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa912bc2f obd_exports_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa934661d dt_version_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa98435a0 lu_context_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa9d94fb0 lu_dev_add_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa02cfe3 cl_lock_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa21b7a0 lustre_register_quota_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa5d6b32 cl_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaacd6d2f lprocfs_wr_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xab455eeb llog_open_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabf45922 capa_decrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac32950b lprocfs_add_vars +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac7f1596 kuc_ptr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xacec9950 cl_conf_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xad124c11 llog_cancel_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xad5e79c8 cl_io_is_going +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xae61ce0a llog_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaf10ea51 lprocfs_add_simple +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb01963a6 class_uuid_unparse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0789249 cl_lock_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0cfe3ec lprocfs_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0fb9886 cl_lvb2attr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb150e72b lu_device_type_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1a7c45c class_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1b89b6d class_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1e5882c llog_declare_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb281cecf cl_lock_is_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb319db6d class_handle_hash_back +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb3e23888 lu_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb4126b30 llog_exist +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb41998cd lustre_cfg_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb47e6a67 class_export_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb4e05c12 cl_env_nested_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb57e115b class_disconnect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb58d2d0f cl_object_glimpse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6ba5dd5 kuc_ispayload +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb7112ac6 llog_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb743ec6a dt_mode_to_dft +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb848e9c6 cl_object_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb8aeecc9 lustre_common_put_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb91e00cb cl_lock_modify +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb98f1147 llog_cat_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba3ae875 cl_object_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba985283 lustre_register_client_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbacac922 lprocfs_write_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbb56b195 cl_lock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbbf1a650 lu_object_locate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc27f450 cl_lock_state_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc653381 cl_object_attr_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc95a79a cl_page_list_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbce6c81a cl_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe46e476 cl_page_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe85f22a lu_object_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbf34d7bd cl_lock_at_pgoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbf9e695e lprocfs_oh_tally_log2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbfdf958c obdo_from_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0001ad4 llog_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0bf7ef2 obd_debug_peer_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc1130afd cl_io_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc1b9a319 lprocfs_oh_sum +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc3478f33 cl_page_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc3fd6e40 cl_io_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc49c42ea cl_page_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc4d043e2 cl_page_list_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc5c2a272 lprocfs_rd_u64 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc6d40a2c lu_context_key_degister_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc6df6b30 lu_context_key_register_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc7d8ed8b llog_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc80e9870 llog_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8daf251 cl_io_read_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8dbaa87 lustre_swab_cfg_marker +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc9b3c667 dt_lfsck_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb0ab67f obd_max_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcc516dc7 cl_io_lock_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccf7a8de obdo_cpu_to_le +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd2a5760 dt_locate_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd47bd89 dt_txn_callback_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd679f2c dump_lsm +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd7537ee get_devices_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd8a604e lu_buf_check_and_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcdbdaba4 cl_page_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcdfb4677 cl_unuse_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcdfc4910 class_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcedb140a obdo_cmp_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd0103eae cl_sync_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd08827c0 server_name2fsname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd0b6995d lu_buf_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd10aa042 lustre_swab_llog_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1459911 class_connected_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd14a1075 dump_lniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1b1478b cl_attr2lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1f58645 lustre_swab_llog_hdr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd21333bf cl_type_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd2e51d94 cl_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd31f8440 cl_env_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd3468de6 cl_req_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd44da683 cl_req_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd49d241c local_oid_storage_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd5263dd6 cl_lock_enqueue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd5918124 cl_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd5cac7f1 dt_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd6b22192 lprocfs_rd_server_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd70fe669 lustre_swab_llogd_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7a5af82 cl_lock_user_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bc8654 obd_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bfbc9c lprocfs_dt_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7f7b340 cl_lock_mode_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd844d743 dt_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd87bc7bf cl_2queue_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd90017d7 class_num2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd9090da0 lu_context_enter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd9cd60d4 llog_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda06a45a lu_object_assign_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda5b1ced class_find_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda74761c lu_ucred +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdac644c8 lustre_posix_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdad367cc dt_lookup_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdad93b14 lu_object_add_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb13dce1 capa_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb3d2104 cl_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb705c33 cl_page_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdc58b48a lu_cdebug_printer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdc747966 llog_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdc8599a8 obdo_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcb92808 cl_page_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcc40af0 class_check_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd04e9ba cl_object_attr_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd19722b cl_lock_closure_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd51df4d lprocfs_nid_stats_clear_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd69b367 lprocfs_rd_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd78c0c7 lu_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde290d53 lu_ucred_assert +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde7d985b obd_dirty_transit_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde8f6ae6 lprocfs_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdef3da89 llog_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdfb42605 dump_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe00a5947 cl_io_lock_alloc_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe028cf84 capa_encrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe0de782b local_object_unlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe16edf66 llog_cat_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe1cfad5b cl_lock_enclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe21019e7 cl_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe255b8df lprocfs_seq_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe25be755 class_search_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2eb4470 class_get_next_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3323f5d class_handle_free_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe46430e0 cl_env_nested_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe5a3816d cl_io_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe5ca2f77 class_name2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe684d9e0 llog_osd_put_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7420ed8 lustre_process_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe75e0749 cl_page_own_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7707ca4 lu_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7d83236 cleanup_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8e84c32 class_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe92e7df1 obd_export_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb3f388a _debug_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xebd09385 cl_io_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec76b94b lu_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec7d6b85 obd_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xed2d23a1 cl_lock_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xedcab580 class_config_dump_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee68bc29 lu_session_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee74ee22 cl_page_list_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee84ec69 __llog_ctxt_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeeeb79fa do_lcfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef01a686 cl_2queue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef76f858 block_debug_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf01e2527 server_name2index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf03cc299 class_unlink_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf130ae76 class_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf165ecac cl_lock_disclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf1ac7895 cl_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf1b1491a cl_page_vmpage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf1bf4272 cl_page_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf225b51c lu_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf22bea32 cl_io_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf2fd6695 statfs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf31ea38c class_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3253e15 cl_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3716db9 lprocfs_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf38b996b cl_lock_hold_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3ae98c8 cl_lock_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3c514b5 llog_declare_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf44be94b dt_record_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf490d5f9 class_del_profiles +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf4bdc32c cl_unuse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf4f4f6dd class_import_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf569cdfa lprocfs_rd_numrefs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf5f01f48 cl_page_unassume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf60d4659 capa_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf6529c0e lustre_idmap_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf6b733ca cl_page_gang_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7020831 lprocfs_dt_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7599474 lustre_end_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf782dfec lprocfs_at_hist_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7dee431 llog_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7f42641 lprocfs_free_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8c2df92 obdo_set_parent_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8cebfab cl_object_has_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf915453c cl_2queue_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf94fdc10 cl_env_implant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa11940e lprocfs_alloc_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa4cc345 lprocfs_single_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa813d06 capa_hmac +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbae3306 dt_txn_hook_commit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbea0098 lu_types_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc1ee9f1 lprocfs_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc7f18d0 obd_pages_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfce4103b lu_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd140ad9 cl_2queue_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd68d17a class_notify_sptlrpc_conf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd8f5cf4 lu_buf_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfdbe1557 lprocfs_write_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfdedfbea cl_page_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff52d4fe lu_context_key_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff57e92d class_match_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfffc1f11 lustre_swab_ost_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/osc/osc 0x5c4940c2 osc_update_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00544abe req_capsule_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00d95039 ptlrpcd_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00e98666 ldlm_destroy_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x01d6ef7f ldlm_pools_recalc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0240cd3f ptlrpc_free_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x035a75b3 sptlrpc_cli_unwrap_bulk_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x048b59d5 lustre_msg_set_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0515f93b RQF_FLD_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x06b3942b lustre_swab_lov_user_md_objects +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x071fc74a RQF_LDLM_ENQUEUE_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x07605c7d interval_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08bb2d27 lustre_swab_obd_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08d2d7af ptlrpc_nrs_policy_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x095587d0 lustre_msg_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x09e9b426 lock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0a3130b0 RMF_MDT_EPOCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac252b2 lustre_msg_set_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac54708 lustre_errno_hton +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0b3065b2 req_capsule_server_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0bcacb5d RMF_MDS_HSM_USER_ITEM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0c2d9c43 lustre_swab_lip_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0cf343dd RQF_LDLM_INTENT_BASIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0d923fb6 ldlm_extent_shift_kms +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0d9a401a ldlm_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0e97a5f2 sptlrpc_enc_pool_get_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0f54df74 ptlrpcd_alloc_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x10f18f20 interval_iterate_reverse +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x115017f6 req_layout_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1171c36c ldlm_pool_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12b08be0 sptlrpc_sec_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12b6f5a3 ptlrpc_connection_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x143a248a ldlm_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1483eca4 ldlm_lock_addref_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x14d192db lustre_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x15a3e4db RMF_GETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x16f1a0b7 ptlrpc_request_bufs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x172b3a96 ldlm_enqueue_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x172fb86d lustre_msg_hdr_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1747d8b3 ldlm_lockname +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17950f60 RQF_SEC_CTX +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x179ac4f1 sptlrpc_cli_wrap_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17e0d21b lustre_free_reply_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x18293cc7 llog_origin_handle_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19108a0f RQF_OST_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19bba026 sec2target_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19c08934 RQF_LDLM_INTENT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19e8af63 sptlrpc_import_sec_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19f2f571 ptlrpc_save_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a6a3ce9 RQF_OST_GET_INFO_LAST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a9b76aa RMF_OBD_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1abd3258 RMF_SETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ace4b5f RQF_LDLM_BL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1b1b4580 ptlrpc_obd_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1b837641 ptlrpc_resend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1bae0270 interval_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1be21715 lustre_msg_size_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c300d8e lustre_msg_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1d043548 lustre_msg_set_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1dc2051d RMF_SEQ_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1de9c288 lustre_swab_layout_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1e3d5634 ptlrpc_stop_all_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1e50873f ldlm_namespace_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1e8e48a4 sptlrpc_flavor_has_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1e980cb7 lprocfs_wr_evict_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1eb2a65f RQF_OST_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee46b51 lustre_init_msg_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee9eb3c RQF_MDS_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1f15e22c sptlrpc_conf_target_get_rules +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1f2ace0f target_print_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1f4c08b1 ptl_send_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1f5a15ed ldlm_blocking_ast_nocheck +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x20268419 lustre_pack_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2066cee9 llog_origin_handle_next_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2077d6f1 req_capsule_server_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2081c604 ptlrpc_mark_interrupted +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2096f5b5 RQF_OST_SET_GRANT_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x20d6b82c RQF_LDLM_INTENT_QUOTA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x218a36ce ldlm_cli_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x21affade ptlrpc_request_alloc_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x22762711 req_capsule_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x233790b5 RMF_OST_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x23d61fcb ptlrpc_wake_delayed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x244e5558 lustre_msg_get_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x24aafdba RMF_MGS_TARGET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x24e23efe ldlm_namespace_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2585a629 RMF_SEQ_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2587513c RQF_LDLM_CP_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x269554ce RQF_LDLM_INTENT_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x26f99d16 RQF_MGS_CONFIG_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2720a296 req_capsule_client_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x285e5b99 lustre_msg_set_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x287682c3 ptlrpc_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x288cf6aa ptlrpc_set_add_new_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x28db3458 ptlrpc_request_alloc_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x29d973bb sptlrpc_conf_client_adapt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x29e0869a sptlrpc_get_hash_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2a63a472 lustre_swab_ptlrpc_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2af24b4c ptlrpc_req_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2b6f6900 ldlm_cli_cancel_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ba2c623 ptlrpc_set_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2c00c60d ptlrpc_sample_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ca92fa8 ldlm_lock_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ccd5b87 ldlm_cli_cancel_list_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d56f168 ptlrpc_pinger_ir_up +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d64feb6 ldlm_lock_fail_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d798316 RMF_MGS_CONFIG_RES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4562fe RQF_LLOG_ORIGIN_HANDLE_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4ca396 RQF_LDLM_INTENT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ecd7515 lustre_msg_check_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2f0e4f87 RQF_OST_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2fd2f737 lustre_msg_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x301d4fcd RQF_MDS_READPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x302937e0 RQF_MDS_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x30442ef2 req_capsule_init_area +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3060b9c6 sptlrpc_rule_set_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x306a2453 ldlm_pool_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x30ce9573 ldlm_prep_elc_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x31838cb4 RMF_IDX_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x31ac9637 ldlm_prep_enqueue_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3261b862 RQF_OST_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x32ad74fa __ptlrpc_free_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x33bb7761 ldlm_typename +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3460d0a3 ldlm_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x34e0c7fa llog_initiator_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35939a3d lustre_swab_fiemap +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38003d62 ptlrpc_prep_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3835ab4b RQF_LLOG_ORIGIN_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3858fb94 RMF_OBD_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38c01799 RQF_LDLM_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38fce533 lustre_msg_set_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x39f60a5f RMF_OST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3a1e4bcb __lustre_unpack_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3aa694cd ptlrpc_prep_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ab90f6e lustre_msg_bufcount +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ac00716 lustre_swab_hsm_user_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b6b7cba dump_ioo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3bedb0c7 RMF_LLOGD_CONN_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3bf19773 ptlrpc_deactivate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c63e62b RQF_MDS_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ca50f33 RQF_MDS_HSM_CT_REGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3d7dc5f9 ldlm_pools_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dc47695 lustre_msg_get_magic +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dddb3e2 dump_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f034caf lustre_msg_get_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f752e78 RQF_MDS_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x40904439 ptlrpc_lprocfs_brw +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41008cef RQF_LDLM_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43705ee4 RQF_LOG_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43d7efc8 lustre_msg_set_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x44036eda RQF_MDS_GET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x44065e23 sptlrpc_import_flush_all_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x440c2a71 RMF_FIEMAP_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4481591d RQF_OST_SET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x456e52a7 sptlrpc_cli_ctx_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45cfd7f3 ptlrpc_cleanup_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45d05893 lustre_swab_lustre_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45d58ede sptlrpc_lprocfs_cliobd_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45e30cea lustre_swab_ldlm_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45ee391f client_import_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4698a558 ldlm_lock_allow_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4710e5d0 ptlrpc_service_health_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47f5e903 RMF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x48814c9f lustre_swab_ost_lvb_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x49780d98 ptlrpcd_add_rqset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x498c03c5 lustre_msg_set_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4a5a2416 RMF_DLM_REQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4b09ce4b lustre_swab_mdt_rec_reint +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4ced3418 ptlrpc_request_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4d7580d0 lustre_swab_hsm_user_item +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4dec6441 sptlrpc_get_bulk_checksum +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e1706e5 lustre_msg_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e1827e1 ptlrpc_unpack_req_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e315683 llog_client_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e696b96 ptlrpcd_queue_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e79faeb sptlrpc_unregister_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4eb03a6f ptlrpcd_destroy_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4f766c3b lustre_swab_generic_32s +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4f76971e lustre_pack_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50443f6a ptlrpc_init_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5059128f ldlm_pool_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50dd74f8 RMF_STRING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x51db8efa client_import_del_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x52a7f22d ldlm_glimpse_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x52c62150 RMF_RCS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53411557 RMF_DLM_REP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53a4a004 bulk_sec_desc_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x549e0ac4 req_capsule_field_present +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x54ae5021 ldlm_lock_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x555eb7fe RQF_MDS_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5806bba6 req_capsule_set_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x585f8d2e ldlm_cli_enqueue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x588035b4 RMF_UPDATE_REPLY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x58a2f012 req_capsule_client_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x595ab175 lustre_swab_obd_quotactl +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x596582bf RMF_GETINFO_VALLEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59ca398b ptlrpc_add_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59e4ce74 req_capsule_server_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5a057439 interval_search +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5af0d02a ldlm_lock_dump_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b6ba895 lustre_packed_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5bc11e21 req_capsule_client_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5c6a3a83 RQF_SEQ_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5caae213 ptlrpc_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5d26c4de ptlrpc_unpack_rep_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5d7f178f ldlm_pool_set_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5d8d3a73 req_capsule_server_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5de30c56 sptlrpc_gc_add_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e0b19b1 RMF_CLUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e2b7558 lustre_msghdr_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e6f435d RQF_OST_BRW_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e80f899 RQF_LLOG_ORIGIN_HANDLE_READ_HEADER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ec3284d RQF_MDS_HSM_CT_UNREGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ef831ee lustre_msg_get_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5f78ada0 ldlm_cli_enqueue_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5f96ccdd ptlrpc_connection_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5fbc7971 ptlrpc_activate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5fe71402 ptlrpc_set_import_active +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ff7b554 do_set_info_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60027cf6 client_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x601ee608 ptlrpc_pinger_add_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6042bc15 RQF_MDS_REINT_RENAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x604e2505 RMF_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x607ec932 lustre_msg_set_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60a3f147 ptlrpc_req_finished +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60cd26ad RQF_MDS_REINT_CREATE_SYM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x61646e1b RQF_MDS_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x618ad203 RQF_OST_GET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x618eadc1 sptlrpc_svc_ctx_invalidate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62192cf8 dump_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62541a22 ptlrpc_init_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62aaae3f RQF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6315dd4c RMF_LLOGD_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x633791ce sptlrpc_sec_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6352a62d ldlm_get_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x63541fe6 ptlrpc_fail_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x63dc741b sptlrpc_cli_ctx_wakeup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x647b6e48 lustre_swab_ldlm_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x64f25661 client_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x653723dc RMF_LOGCOOKIES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x65505430 ptlrpc_lprocfs_register_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x657ddf2d __ptlrpc_prep_bulk_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6774422f __ldlm_handle2lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x67e1f394 ptlrpc_request_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68566dca ptlrpc_unregister_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x685eeaba RMF_DLM_GL_DESC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68cb2541 interval_is_overlapped +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68f49e5e ptlrpc_expired_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6912990a RQF_OST_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x696ba811 lustre_msg_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69c9f04d RQF_MDS_REINT_LINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6a3785c9 RMF_EADATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6a4b7de5 ldlm_lock_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d3d3141 ldlm_get_enq_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d72828c sptlrpc_conf_log_update_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d7931cc RQF_UPDATE_OBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6e4f5587 ptlrpc_set_add_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6ed20499 ldlm_revalidate_lock_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6efa82b0 RQF_MGS_TARGET_REG +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6efba3a0 ptlrpc_disconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f6dc736 lustre_swab_mdt_remote_perm +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6fb92092 sptlrpc_flavor2name_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x703538e4 lustre_swab_hsm_current_action +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x70b8b755 ptlrpc_request_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x70e0b559 sptlrpc_enc_pool_put_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7108b5b8 ldlm_resource_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x71c0b6ed ptlrpc_buf_need_swab +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x721f6220 req_capsule_other_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x723d43b6 sptlrpc_rule_set_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x725a892c RQF_MDS_REINT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x74840056 lustre_msg_set_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x74b2f04a ptlrpc_unregister_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75a2c40d ldlm_put_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x76b728e5 lustre_swab_update_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77571cc6 lustre_swab_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77840c82 sptlrpc_rule_set_choose +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7787ec8a ptlrpc_start_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77beabe8 sptlrpc_target_sec_part +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x78bf9136 lustre_swab_ldlm_lock_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7a832f10 RMF_CONN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7b158da4 lustre_swab_ldlm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7b7d09eb ptlrpcd_wake +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7bbf8001 RMF_MDT_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7bc6a0b8 ptlrpc_schedule_difficult_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7c4c6107 RQF_LDLM_CONVERT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d1ecd7f RQF_LDLM_INTENT_LAYOUT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d41a8b9 RQF_QUOTA_DQACQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dc0e7cd RMF_QUOTA_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dfb3c18 lustre_msg_clear_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f3a18e1 ptlrpc_prep_bulk_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4925d8 interval_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4c99b1 ldlm_expired_completion_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f5a1cc7 lustre_msg_set_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f6d2357 lustre_msg_is_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f8eb368 lprocfs_wr_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80a9e8c3 lustre_msg_get_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80ecb4e3 RMF_MDS_HSM_CURRENT_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x817d7f1f lustre_msg_add_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x826d3c4f RQF_LDLM_GL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x82ceddf8 ptlrpc_req_finished_with_imp_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x837efb00 RMF_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x84e8cb95 req_capsule_extend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85135801 RMF_DLM_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85a9e0d8 RMF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85eecf67 sptlrpc_get_hash_alg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x863db6eb RMF_HSM_USER_STATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x86fa8c3b ldlm_cli_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8760beaf lustre_swab_ldlm_policy_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x876c2551 RMF_GETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87966b7d ldlm_cli_cancel_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87bf7b3c sptlrpc_get_next_secid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x880d8409 unlock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8872f3d2 RMF_SETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x88fff52d RMF_CAPA2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x89ec9a94 ptlrpc_prep_fcset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x89f9edf7 RQF_MDS_REINT_SETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a1ea476 lustre_swab_hsm_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a257736 RQF_MDS_HSM_STATE_GET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a380865 llog_origin_handle_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ac440fa ptlrpc_uuid_to_connection +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8b854254 lustre_swab_mgs_config_res +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8c130733 ldlm_flock_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8cb71d4b RQF_MDS_REINT_CREATE_SLAVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8cc4e94e ldlm_pool_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8cc89d85 sptlrpc_register_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8cc928ee lprocfs_rd_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d77ea75 lustre_msg_set_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d78f606 ptlrpc_req_set_repsize +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8da3fca7 lustre_msg_add_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8dfaecd5 ldlm_resource_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8e9abe4d RMF_GENERIC_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ef37a10 ldlm_pool_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8f0aceac RQF_MDS_HSM_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8fec0451 lustre_msg_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x90826152 target_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x919c4ce3 RMF_OBD_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91cf58d3 RQF_MDS_PIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9257921c ptlrpc_register_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x935c3344 ptlrpc_restart_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x937b1ee0 lustre_swab_mdt_ioepoch +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x93f7f19d client_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9553c633 RQF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95b7fc7b ptlrpc_retain_replayable_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95d08f0c lustre_swab_mgs_target_info +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9660ace0 RMF_FLD_MDFLD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x967bfd52 RQF_OBD_PING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x96ddec28 ptlrpc_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9798f2f1 RQF_MDS_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x980fcfdc ptlrpc_connection_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x98fcb5e8 req_capsule_server_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a258886 RQF_MDS_GETSTATUS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a6f2f6d lustre_msg_set_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a8e384d ldlm_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9aaef0da ldlm_namespace_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9b88f6ce RMF_NIOBUF_REMOTE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9bb5198b RQF_MDS_CLOSE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d7ea314 sptlrpc_pack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9e34176e ldlm_init_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9e376e1f ldlm_register_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9ea7c961 ptlrpc_recover_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9f8ae80a req_capsule_server_sized_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9fb088f1 lustre_swab_lov_mds_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa10f0d3d RMF_UPDATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa163f4c3 dump_rniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2244636 RQF_MDS_GETATTR_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa22c0086 ldlm_error2errno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa28cf639 client_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa3157d48 ldlm_reprocess_all_ns +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa35797ce ptlrpc_replay_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa3705127 ptlrpc_request_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa3d2a6ee RMF_CAPA1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa427c55c llog_origin_handle_prev_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa47787ef RMF_PTLRPC_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4a2d089 RQF_OST_PUNCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4b6375b ldlm_replay_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4bea5ef lustre_swab_lmv_user_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5458dad ldlm_lock_decref_and_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa575b85d ldlm_cli_cancel_unused +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5880075 ldlm_errno2error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa62e63ff ptlrpc_pinger_sending_on_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa633e8bb sptlrpc_cli_enlarge_reqbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa6c436ca RQF_MDS_WRITEPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa6d07f68 sptlrpc_cli_unwrap_bulk_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7cfdd31 ldlm_lock_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7d55cc3 RQF_MDS_REINT_CREATE_RMT_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7e360b1 RMF_OBD_IOOBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7ec567d RMF_CONNECT_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa837a261 sptlrpc_gc_del_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9704f80 lustre_msg_get_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9c4658e lustre_swab_lov_user_md_v3 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9edf09d RQF_OBD_IDX_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaac8c9bd ldlm_pool_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xabfd3019 ptlrpc_nrs_policy_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xac369e99 ldlm_cancel_resource_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaddc3979 lustre_swab_lustre_capa_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xadf02f2e ldlm_completion_ast_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf4e9658 RQF_MDS_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf50a0d6 RMF_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0751fa4 RQF_LLOG_ORIGIN_HANDLE_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb09cb7b7 ptlrpc_abort_inflight +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1b43d8a dump_rcs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb2263de4 llog_origin_handle_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb27c2374 lustre_msg_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb291473d lustre_msg_early_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb2b1817d lustre_swab_ost_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb3be7092 ldlm_pool_get_lvf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4a7ecf3 lustre_msg_add_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb512ebc2 sptlrpc_parse_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb5601c5c ptlrpc_commit_replies +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb61cb95a RQF_MDS_GETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb64afb36 ldlm_namespace_new +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb652c325 ldlm_resource_unlink_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb68476df interval_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb69a9fe7 ptlrpc_prep_req_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb6aafd03 RQF_MDS_DONE_WRITING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb76ecd4d ptlrpc_invalidate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7a5fe59 lprocfs_wr_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7b38189 RMF_MDT_MD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7fa3cc8 RMF_LLOG_LOG_HDR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb8d34833 ptlrpc_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb8ddbf43 ptlrpc_request_set_replen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb903634e RQF_OST_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb9290f53 req_capsule_has_field +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb9b631cf lustre_swab_mgs_config_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb9f85eb0 ptlrpc_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbaa76097 lustre_msg_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbadf4241 ldlm_resource_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc1370dc lustre_shrink_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbd83bc44 RQF_OBD_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbe47bc7e ping_evictor_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbeb7e023 ptlrpc_set_next_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbf98b86f RQF_MDS_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbfcb40a8 ldlm_lock_change_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbffd4313 RQF_OST_BRW_WRITE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc06c4670 lustre_msg_get_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0867da7 RMF_REC_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0cdf55e RMF_MGS_SEND_PARAM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc145876b ptlrpc_set_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2986d28 lustre_swab_ldlm_res_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2b1af57 RQF_MGS_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2be922a RMF_SYMTGT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc332328b req_capsule_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc4c0031f target_pack_pool_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc4f5a90f ptlrpcd_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc559a634 RMF_LAYOUT_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc60a60e1 RQF_OST_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc694be4b RQF_LLOG_ORIGIN_HANDLE_PREV_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc762f1fc ldlm_namespace_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc763fabc sptlrpc_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc79b9c67 ldlm_pools_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7ca8257 RQF_MDS_REINT_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7e47564 ptlrpc_interrupted_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc8f586a9 ptlrpc_connection_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc93f1276 sptlrpc_cli_ctx_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca0cf7b2 ldlm_cli_update_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca5a81ec ptlrpc_pinger_ir_down +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca8e4e2a req_capsule_server_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2cc0cf lustre_swab_lquota_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2ceaff sptlrpc_secflags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcbcc4a18 ptlrpc_resend_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce1a689b sptlrpc_enc_pool_add_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce86066d lustre_msg_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcebf9823 req_capsule_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcec513c9 RQF_MDS_UNPIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xced015be sptlrpc_rule_set_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9963db lustre_msg_get_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9aab6a RQF_MDS_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2983334 lustre_swab_swap_layouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd29fd8d0 req_capsule_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2e0d4eb lustre_msg_get_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd31c0cad ptlrpc_cleanup_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd3dae408 ldlm_it2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd42a4572 lprocfs_wr_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd512d96f llog_origin_handle_read_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd537ded2 lustre_swab_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd5821d5b ldlm_pool_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6465217 ptlrpc_register_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd67a5d7b lustre_swab_update_reply_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd690f6f5 ldlm_namespace_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd69e0a27 RQF_MDS_IS_SUBDIR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6c3ebfb RMF_FIEMAP_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd76454ea ldlm_lock2desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd7910326 lustre_swab_obd_statfs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd86cc5fd _ldlm_lock_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8b91b3e lustre_swab_lov_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8f06300 RQF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd906f545 ldlm_destroy_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd9561861 RQF_LDLM_INTENT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xda16253f ptlrpc_unregister_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xda2ac111 sptlrpc_proc_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xda46a5ff _debug_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xda8bf49f ptlrpc_send_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdac512ba client_disconnect_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb1fb0a2 RQF_MDS_REINT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb9d5a6a lustre_swab_niobuf_remote +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdcdc235d ldlm_lock_downgrade +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdcf910b9 lustre_swab_ost_last_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd0ffb04 sptlrpc_flavor2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd30d7bf RMF_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd4723d1 sptlrpc_import_flush_my_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xddc40a85 lustre_msg_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde12d36b RMF_MDS_HSM_ARCHIVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde4581a7 req_capsule_client_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde555d70 sptlrpc_enc_pool_del_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde6bc3b5 sptlrpc_gc_add_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdee87192 sptlrpc_conf_log_update_begin +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf303157 ptlrpc_hpreq_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf701ae7 lustre_swab_fid2path +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0631d37 ldlm_lock_fail_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0832736 ptlrpc_init_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0cc694c RQF_LLOG_ORIGIN_HANDLE_NEXT_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe40427c3 sptlrpc_req_replace_dead_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe40e0a50 lustre_msg_get_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe4282267 sptlrpc_target_update_exp_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe4ba30f8 ldlm_pool_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe57bd972 sptlrpc_current_user_desc_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe59dbce8 ldlm_lock2handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe5c1d63f ldlm_cli_cancel_unused_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe5e8169b lustre_errno_ntoh +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe60bc74e ldlm_pool_get_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe643998e RQF_OST_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6f0dc96 RQF_OST_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7062b5f RMF_U32 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7512278 ptlrpcd_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe84c6c5b ptlrpc_lprocfs_unregister_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe922f441 sptlrpc_cli_ctx_expire +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe92770a6 lustre_pack_reply_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xea60806c ldlm_namespace_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabaa0b1 lustre_swab_mdt_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabac4fc sptlrpc_rule_set_merge +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeb8b249c ldlm_pool_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xebb64e68 req_layout_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec226f66 ping_evictor_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec520865 lustre_pack_reply_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec939a00 RQF_MDS_REINT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xecace5c1 RQF_OST_GET_INFO_GENERIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xecd52b1f client_import_find_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed1c10d6 ptlrpc_connection_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xedcb740d sptlrpc_name2flavor_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeeaba2d3 sptlrpc_sec_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef1aeca9 RMF_FLD_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xefbda845 llog_origin_handle_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0009242 ptlrpc_pinger_del_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0241d6e lustre_swab_hsm_progress_kernel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0d52b5f ptlrpc_pinger_suppress_pings +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf1300275 _sptlrpc_enlarge_msg_inplace +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf1e77437 ldlm_lock_allow_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf277c125 RQF_OST_GET_INFO_FIEMAP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf27d49dc sptlrpc_target_choose_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf2c7f793 ptlrpc_set_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf35f132b lustre_swab_ldlm_resource_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf3d44370 RQF_OST_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf3f588dd ptlrpc_queue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf43540b9 lustre_swab_mgs_nidtbl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf45085e1 sptlrpc_conf_log_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf4901518 ptlrpc_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf55c033b RMF_MGS_CONFIG_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf584a16b sptlrpc_part2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf58d265c sptlrpc_target_export_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf596e9ae sptlrpc_conf_log_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf607fc23 sptlrpc_flavor2name_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf617ab8a lustre_msg_get_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf697b756 ldlm_dump_all_namespaces +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7408f84 lustre_swab_hsm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7ba40c0 RMF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf85cb27e sptlrpc_parse_rule +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf870fed9 RQF_LDLM_GL_DESC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9051bd6 RQF_QC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf94e41e0 deuuidify +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf973aa93 lustre_swab_lov_user_md_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9ee11e2 lustre_msg_set_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9f72dfc RMF_TGTUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa51688d interval_insert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa808d36 ldlm_init_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfadffd10 req_capsule_filled_sizes +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfc01f63f ldlm_cli_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfc186744 ptlrpc_add_rqs_to_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfc2fa83f ptlrpc_del_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfc575cf5 ldlm_pool_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfcc9bbf8 ldlm_blocking_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd148bf8 RMF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfe555693 ptlrpc_at_set_req_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff02a0e9 ldlm_lock_set_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff390c8c ptlrpc_reconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff537ef3 ptlrpc_buf_set_swabbed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffc807e8 sptlrpc_unpack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffd4882c ldlm_resource_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffe29c3f RQF_LDLM_ENQUEUE +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x063e35aa go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x4ef5fe85 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x5570d0b5 go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x8c754e58 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x8cdcb24c go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x9c62c630 go7007_update_board +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xf1c11fa2 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xf961cf72 go7007_snd_init +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xf9e6c3e1 go7007_snd_remove +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x0ea4405b xillybus_endpoint_remove +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x15ab9b93 xillybus_do_cleanup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x19ce15cf xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x25978d50 xillybus_isr +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0xa2bbcd89 xillybus_init_endpoint +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0d1d91d6 iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0ef56334 iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x205e95f9 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x20d8ab34 iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x22332ae7 iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3e7b6e60 iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4517784a iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5ab78ccc iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5b654562 iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5c1b7cfb iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5c7a8950 iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x6574b664 iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x6fc848de iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x75716964 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8510485a iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x86b77feb iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x991743f4 iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9fbf2112 iscsit_set_unsoliticed_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa7304b83 iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa7e05989 iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xafa521f2 iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb8410ea4 iscsit_handle_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xce2e6557 iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd63d2b11 iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe51cad22 iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xef29414e iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf0fc77b9 iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xff711b04 iscsit_release_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x020b8da7 sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x02e1ad28 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x04aa5eb2 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x0f03f984 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x123ebc7c target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x1794fdf0 target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0x1c196de6 target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x1debd44a iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x1edc3824 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x25b426d3 spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0x28e052ec iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x291a4b22 target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x2ac90b14 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x2ef26812 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x3291173a transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x33f43389 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x34745bba target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x3e0896f4 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x3ebc63bf iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x40817443 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0x4f269c81 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x5baca143 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x5bef420d target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x5c40e0a8 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x6761589f target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x698f37c5 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x69b74703 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x6aa26f94 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x6abad06f fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x6ad736db transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x6bd0645f core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x6c4ea7b4 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x6d394000 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x6db5d3cb core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x7725e63f core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x78eb596f target_sess_cmd_list_set_waiting +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x817e60b4 target_submit_cmd_map_sgls +EXPORT_SYMBOL drivers/target/target_core_mod 0x8241d0fa core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x8245cc98 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x878165ac transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x8958f96a transport_init_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x8e956389 target_get_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x94a47383 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x98a2912c fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x9a6d1c4e transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x9ed50347 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xa00e33ed transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xa4fe6b2e iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xa62c476e target_setup_cmd_from_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xa7f2750b sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xae59da99 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xaedb7b4d spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xb05fcdb6 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0xb087a93b transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xb64d0538 transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0xbc61943f sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0xc32c6ba7 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0xc67e57a6 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xc687e900 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xca63daa3 target_put_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xcc61c7f1 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0xcd05aa30 target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xd64e30be sbc_execute_unmap +EXPORT_SYMBOL drivers/target/target_core_mod 0xd877c68b transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xdd2dfe03 spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0xe1103285 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xe87c7497 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf13048aa transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xf4b5bbcb transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xf9c5e80b spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0xfb9fca9d transport_generic_request_failure +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0xe59512c4 usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0xed793040 unregister_gadget_item +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x004a7758 gether_get_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x0329f160 gether_get_host_addr_cdc +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x0bdcf32c gether_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x2216ee7c gether_setup_name_default +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x3e220428 gether_get_host_addr_u8 +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x50ed422c gether_register_netdev +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x561ca9ac gether_set_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x5bae5f12 gether_set_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x6e2361e1 gether_set_gadget +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x7f8881cc gether_set_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x824d640b gether_get_ifname +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8878cfa6 gether_cleanup +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x910a7ecb gether_get_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xab8d2e36 gether_get_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xce947373 gether_connect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xd598d96a gether_setup_name +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x03ebac9a rndis_rm_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3a6d4f22 rndis_free_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3ca38e3a rndis_signal_connect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x4ca90996 rndis_signal_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x5d22b406 rndis_register +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x785d494b rndis_msg_parser +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x840dd143 rndis_deregister +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x984af3c2 rndis_set_param_dev +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x988ad2a2 rndis_set_param_vendor +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x9acf72e4 rndis_set_param_medium +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xa29b388d rndis_add_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xa90054ee rndis_uninit +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xb971ebca rndis_get_next_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xd2fe47b1 rndis_set_host_mac +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1710b539 fsg_fs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1b1cc3af store_cdrom_address +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x2933ee1d fsg_ss_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x384a1b69 fsg_store_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x398778e1 fsg_ss_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x423845e4 fsg_ss_bulk_in_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x56344daf fsg_hs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x641696c6 fsg_store_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x72b7a556 fsg_lun_fsync_sub +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x73e28503 fsg_store_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x857b6dc2 fsg_hs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x92413b2d fsg_show_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x95cffb3e fsg_hs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5cae92f fsg_ss_bulk_out_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5f99b69 fsg_fs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa80572e0 fsg_lun_close +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb1002397 fsg_show_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb52ba28a fsg_intf_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb54d0d95 fsg_fs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb96101e8 fsg_lun_open +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xc60bf7cc fsg_show_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xdedb6ab7 fsg_store_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xeb7b33a7 fsg_show_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf27d7a00 fsg_show_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf4efc0c8 fsg_ss_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xfa77ecd1 fsg_store_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_rndis 0x24d78ffa rndis_borrow_net +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x9491417c sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1f9d0f93 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x255a6bc7 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x389d5ab1 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3df6e0a3 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x57330a76 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5b6f9e01 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x61d4aa06 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6ff12dcc usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xae8f3e5a usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb925f75f usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xca276e45 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd59b115b usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdef41003 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x4dae9bd4 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x812e4f38 usb_serial_resume +EXPORT_SYMBOL drivers/vhost/vringh 0x0dda8c5a vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1f063017 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x2e91ca97 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x367ce26a vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x36dfce73 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3eaf442a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3fa42e4f vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5dafbd4e vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x66af098b vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x6d0e7948 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7bda5e6d vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x821e9390 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0xaf8e4a0e vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xafb47dae vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc884d704 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc8bee0a4 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xd11d2709 vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xda4ea4cc vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xfc7dcad2 vringh_getdesc_user +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x001c0104 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x04c0eca2 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xf05b58c7 devm_lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xff8c194a devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/output 0x69e60bf2 video_output_register +EXPORT_SYMBOL drivers/video/output 0x9fdc5a09 video_output_unregister +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x622b883d w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x89e57116 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x8ef7f946 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xc6b8e9ad w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xc136cfcf w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xd32ae889 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x23aa7d63 w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0xeaccfc4d w1_ds2781_io +EXPORT_SYMBOL drivers/w1/wire 0x4f748a85 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xa6e1654d w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xbbb03227 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xe31e41d6 w1_unregister_family +EXPORT_SYMBOL fs/btrfs/btrfs 0x27476846 ulist_reinit +EXPORT_SYMBOL fs/btrfs/btrfs 0x41e6a9d2 ulist_init +EXPORT_SYMBOL fs/btrfs/btrfs 0x7e2ee765 ulist_free +EXPORT_SYMBOL fs/btrfs/btrfs 0xa2eec2e8 ulist_fini +EXPORT_SYMBOL fs/btrfs/btrfs 0xb1320bc8 ulist_add +EXPORT_SYMBOL fs/btrfs/btrfs 0xb42289d2 ulist_alloc +EXPORT_SYMBOL fs/btrfs/btrfs 0xc2c745db ulist_next +EXPORT_SYMBOL fs/configfs/configfs 0x4b00a430 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x61312aa5 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x6a3544ae config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x70f90bf7 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x87a4fbca config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x8c3822ae configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x972f79b0 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xa34d8996 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xa7482f89 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xb5aa91af config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xe0018a88 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xfd49c23e config_item_get +EXPORT_SYMBOL fs/exofs/libore 0x06f49556 ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0x09b64246 ore_create +EXPORT_SYMBOL fs/exofs/libore 0x1aef5386 ore_read +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x32e0c324 extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0x38ce151e ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0x400551bd ore_remove +EXPORT_SYMBOL fs/exofs/libore 0x4527e170 ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x52cb031d ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0x713601f4 ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xbb89bf70 ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0xc6ea7fca ore_write +EXPORT_SYMBOL fs/fscache/fscache 0x02c535c4 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x0d0fc77f fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x0dfd2b37 fscache_op_complete +EXPORT_SYMBOL fs/fscache/fscache 0x1686033c __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x25631afd fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x2bcc40bb __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x2c074aff fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x2fd59772 __fscache_check_consistency +EXPORT_SYMBOL fs/fscache/fscache 0x30e09fa7 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x495d7283 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x496ebe51 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x533e35bd __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x53c2ff57 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x691bcf84 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x69bca5d9 fscache_object_destroy +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x75a25023 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x7741c3fc __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x7a6d9c9e __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x7e41ea10 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x7e9b887b fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x80cad4ee fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x84abfcd0 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x8ac240c1 fscache_object_init +EXPORT_SYMBOL fs/fscache/fscache 0x95dde13f fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xa1b1a7d1 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xa375fdf0 __fscache_enable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xb3d1f104 fscache_mark_page_cached +EXPORT_SYMBOL fs/fscache/fscache 0xbad4338a fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xbef87bc0 __fscache_wait_on_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0xca142a44 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0xcbb93cd8 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xcfa407bf __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0xd2bc7c5f fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xd53bd328 __fscache_readpages_cancel +EXPORT_SYMBOL fs/fscache/fscache 0xd6dbd5fb __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xefde47c9 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xf0349554 __fscache_disable_cookie +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xa0f4b528 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0xb25b2957 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0xe13337f0 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x1f1af63a qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x43cf16db qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xd70fc00c qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xe04e724f qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xfcce6ac4 qtree_read_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0x41248eaf crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x08b05f73 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x2686c90f lc_get_cumulative +EXPORT_SYMBOL lib/lru_cache 0x46fbdfab lc_find +EXPORT_SYMBOL lib/lru_cache 0x5817613d lc_del +EXPORT_SYMBOL lib/lru_cache 0x79fae9f7 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x85cb3257 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x906dc1af lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x9da3f346 lc_set +EXPORT_SYMBOL lib/lru_cache 0xaf36660e lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0xbb720813 lc_try_lock +EXPORT_SYMBOL lib/lru_cache 0xc418dc0b lc_is_used +EXPORT_SYMBOL lib/lru_cache 0xc63c4ce8 lc_committed +EXPORT_SYMBOL lib/lru_cache 0xd91d1d0a lc_create +EXPORT_SYMBOL lib/lru_cache 0xda2a1a5f lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0xe4fd51f2 lc_put +EXPORT_SYMBOL lib/lru_cache 0xe56bf09b lc_get +EXPORT_SYMBOL lib/lru_cache 0xf1edcc81 lc_destroy +EXPORT_SYMBOL lib/lz4/lz4_compress 0xcbc5d521 lz4_compress +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x26c3aa22 lz4hc_compress +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/raid6/raid6_pq 0xd9e91f83 raid6_vgfmul +EXPORT_SYMBOL net/802/p8022 0x6d9a2c81 register_8022_client +EXPORT_SYMBOL net/802/p8022 0x7f714990 unregister_8022_client +EXPORT_SYMBOL net/802/p8023 0x89e34a25 destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0xeb8baff0 make_8023_client +EXPORT_SYMBOL net/802/psnap 0x88ad0d9c register_snap_client +EXPORT_SYMBOL net/802/psnap 0xfc08a7d7 unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x1150bb27 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x1286d5bc p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x18a3ae1d p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x26dd3091 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x272670d2 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x28099e68 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x30f05e22 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x35aa7749 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x40c29578 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x44d2c2c0 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x48b64b18 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x4b6efc9b p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x4cb6f66a p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x4f25d9f1 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x4f331379 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x50fa2d4d p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x58683cf8 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x6072bf96 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x6f2c821e v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x72136c9b p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x723061b4 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x7498aa6e v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x74a2850e p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x7dd27400 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x82a07738 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x99ebc99d p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x9b29249d v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xa5b3b702 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xa71818e4 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xaafd0809 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0xb51bd54a v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0xb73f606b p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xcbd7573f p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0xcc6b14c9 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xd37803ca p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0xd410f120 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0xdeb51def p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0xdf11441a p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe92e8ae1 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xeb7fe567 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xeea2e1fe p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xf0120b4f p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xf427dbf1 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x2f66b629 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x4c37eb1f atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x7bbb4fc2 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0xc9b666d0 alloc_ltalkdev +EXPORT_SYMBOL net/atm/atm 0x01422545 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x05c2e007 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x2ed36a6b atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x39e00267 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x45f52715 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x4fd58912 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x62d297c9 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x7c704575 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x992bf2e1 vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xac205670 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0xd67504c9 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xe1b2d486 atm_charge +EXPORT_SYMBOL net/atm/atm 0xe36e5676 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xf1774b53 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x0978c80d ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x1a8be788 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x3afee63e ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x7b613df4 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x891398fb ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xa52efedd ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0xbeda31f6 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc762f5b7 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xf6c1285a ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xf89c5f77 ax25_listen_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x03d5b016 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x050d51e0 l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0x124c0fa9 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1663300a bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1b8c139c hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1e618dfd hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x22f0ef44 bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0x35555587 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x35fda623 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b4cc6a6 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3cfc8258 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3f2b8d8a bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4acab9e9 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x53b00648 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5a116668 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x69b7d340 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7313929a l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x779b63dc bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7a6862ec bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c640527 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9240a742 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x96c0f63f l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x96df050e hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x982a2dd9 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9b70c095 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9de042e1 l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaaaa272b bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb0e0760a hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb138f265 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb61a0c3b bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb84338b9 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc0967348 bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2c2d113 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc464a80f hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdd5db839 __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf14d4386 __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf4f4c6ae hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf62035de hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfac7162e bt_sock_recvmsg +EXPORT_SYMBOL net/bridge/bridge 0x3fa5208f br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x08fc3a7d ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x1beec879 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xb6672c2a ebt_register_table +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x38701a7c cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x4cfd1d75 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x651245d5 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x6a44fc70 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x966d7de2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0x9fd91dd5 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/caif/caif 0xebdbf81d caif_enroll_dev +EXPORT_SYMBOL net/caif/caif 0xf5613a86 caif_connect_client +EXPORT_SYMBOL net/can/can 0x5e56517f can_proto_unregister +EXPORT_SYMBOL net/can/can 0x8f0b5299 can_proto_register +EXPORT_SYMBOL net/can/can 0xa767cc1c can_ioctl +EXPORT_SYMBOL net/can/can 0xcb7e6ff0 can_rx_register +EXPORT_SYMBOL net/can/can 0xde82784b can_rx_unregister +EXPORT_SYMBOL net/can/can 0xe3333cde can_send +EXPORT_SYMBOL net/ceph/libceph 0x02269ec6 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x03197ef9 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x055c49df ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x08588811 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x1475bf0d ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x1919a18f osd_req_op_watch_init +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1a440733 ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x1c15b6cc ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x20d151cb ceph_osdc_setup +EXPORT_SYMBOL net/ceph/libceph 0x21aaee95 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x224f530d ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x2273880b ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0x272ce55c ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x2b3ff6d8 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x2ec00ad8 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x2ed3ed7e ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x2fbca230 osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0x2fc5bd60 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x3013776e ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x342242f2 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0x38d368b0 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0x38fc5b9f ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3df0ec7c ceph_calc_ceph_pg +EXPORT_SYMBOL net/ceph/libceph 0x3f688151 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x4205ffd7 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x43efd647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x452bddf1 osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x4575e721 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x47645db0 osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x4e6a48c6 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5972711a osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x6124a3d2 osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0x61f225b3 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x625e17f0 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x6b2e3bcd ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x6c5d5ac1 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x6d090329 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6d5174fd ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x6fe5917f ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x7564c3dd ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0x76570abc ceph_auth_create_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x7677a631 ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x79ade56e ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x7f90eec2 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x86e71dbc ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x870ab2bd ceph_auth_update_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x8867356a ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x8912ce0b ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0x8affa794 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x8fa19f25 ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x94525f23 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x99e36571 ceph_osdc_cleanup +EXPORT_SYMBOL net/ceph/libceph 0x9bec30dc osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa20a410c ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xa7f0b4f4 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0xa864b3c2 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0xabcd4ac8 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0xadfb3040 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0xae3515ba ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb5a19496 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb60d0d4f ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0xb6a2d035 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xb89a82d2 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0xbf113645 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0xc3af0217 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc55de604 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcc257f61 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xcfbc0fa6 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd4041591 osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xd54a2cab osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0xd76dd162 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0xd945dab3 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0xe06471db ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xe0921086 osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xe58df854 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xe82c9c32 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0xea36ec67 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0xf6200aa0 osd_req_op_cls_response_data +EXPORT_SYMBOL net/ceph/libceph 0xfc70e30f ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0xff678124 ceph_messenger_init +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x031d8dc5 dccp_syn_ack_timeout +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1e95bbf0 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x284c6995 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x460549b3 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5098effc ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x68fded42 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6cc13a69 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9edbcfaa ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbd40fead wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xce7ca789 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0xdb191bf6 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xdb3a23cb wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe7590a5e wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xfcf25303 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x69683f77 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x997a9ef0 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xc196940b arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x07d8b3ef ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x79974354 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xaed91d1a ipt_do_table +EXPORT_SYMBOL net/ipv4/tunnel4 0xd5b15d17 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xe068ef10 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x145f2e67 ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x2cacd3aa ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x0e72202e ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x299282ea ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x8ed72331 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x790d5f86 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x933840c4 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x7ccd9013 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xb17de0be xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x31cb9e20 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6a5065f3 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7d75ba98 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x855d04f8 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x8ed4eec5 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x955e4274 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa3524736 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe8c805dc ircomm_connect_request +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x17a491c5 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x1df1548c irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x22694156 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x33cbe2c6 proc_irda +EXPORT_SYMBOL net/irda/irda 0x36cad55b hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x37791344 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x4ca7fd78 iriap_close +EXPORT_SYMBOL net/irda/irda 0x4f631bab irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x5484daf5 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x6492e28c hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6b76aa70 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x72afa2ee irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x731cec71 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7679b610 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7a9be3df irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x7e67ca6e irias_new_object +EXPORT_SYMBOL net/irda/irda 0x8036a2d7 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x86d303fb irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x8982c8d9 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x8a44dd5e hashbin_new +EXPORT_SYMBOL net/irda/irda 0x8f981a9d irlap_open +EXPORT_SYMBOL net/irda/irda 0x90ddb6bd hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x93732c74 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9d6adff6 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x9fc5bd13 iriap_open +EXPORT_SYMBOL net/irda/irda 0x9ffda243 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xa086303b irlap_close +EXPORT_SYMBOL net/irda/irda 0xb3c13d7f irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbdd95525 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xbf7dd554 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xbfa7c08d hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xc477368d irias_find_object +EXPORT_SYMBOL net/irda/irda 0xccbcdef9 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xd7364277 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xdd53fb6d async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xde77b7d4 irttp_dup +EXPORT_SYMBOL net/irda/irda 0xe9a6a5f9 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xebc0957b irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xee3f9bb8 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xf199cba4 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0xf6fd17b8 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xfb20b079 irlmp_connect_response +EXPORT_SYMBOL net/l2tp/l2tp_core 0x0901a374 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x173132bf lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x2ed484a5 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x3e41dedb lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x5892d8e8 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x5bc85d86 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x98d4c413 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xabde620b lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xcbbc3531 lapb_register +EXPORT_SYMBOL net/llc/llc 0x1e9e99fd llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0x2a91cbcc llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x5cd5e8f4 llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0x7277aec3 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x8786f617 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0xc2a396a0 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0xee80552b llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0xfdf6b95d llc_sap_find +EXPORT_SYMBOL net/mac80211/mac80211 0x009376f2 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x00c8b715 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x06e7243b ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x09d3cc26 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x0c13cd35 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x0c82b47a ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x0fce0211 ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x14e3df97 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x164e0e31 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x177acee2 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x1cdc220c ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x1e1ead98 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x206b6c1f ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x21a2ae71 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x22efc40b ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x27609f91 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x27fb1d95 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x311ec9bf ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0x3729ae22 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0x3a261d30 ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0x3b3c9b8c ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x409f299f __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x40c091cb ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x430ce7ec ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x449d0693 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x490fa919 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x4a2bd09c ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x4bd75aad ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x545951cd ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x5833dcae ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x5cf25076 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x61b560d4 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x6d3167b8 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x720d8918 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x75b91d33 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x7cec26e0 ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0x82912298 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x8483167c ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x8dd6dd93 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x8ede6e5a ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x9268883f ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x9c5e6334 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0x9d03df9f ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x9d4640b2 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xa1b03462 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xa1b2216e wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa1fc36c4 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa377d9d7 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xae10a0f8 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xb0cc3670 ieee80211_csa_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0xbb742a7c ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xc267d3b0 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xc8c25e23 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xc9018cb7 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0xcccafe99 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xcce01238 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xceb2e7a0 ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xd142563b ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xd78fd322 rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0xd7a85b23 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd96ff4a8 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xdab37e4d ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe09c4161 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xe2f1ef13 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0xecf55413 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xed0fe766 ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0xf395de03 ieee80211_aes_cmac_calculate_k1_k2 +EXPORT_SYMBOL net/mac80211/mac80211 0xf616a2fd ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xf671be84 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac802154/mac802154 0x07ed20df ieee802154_alloc_device +EXPORT_SYMBOL net/mac802154/mac802154 0xb3498abc ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0xbff9328b ieee802154_unregister_device +EXPORT_SYMBOL net/mac802154/mac802154 0xd7eaf115 ieee802154_free_device +EXPORT_SYMBOL net/mac802154/mac802154 0xd9d81af8 ieee802154_register_device +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0c760fb5 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1e457bf4 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2753a45a ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3d099607 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5f1021ca ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x97cd8b44 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9aa01d42 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa98082fe register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xbeff50ff ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xce0d12d4 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd1064e1d register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd4515234 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe17c3d5d ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe1bc3705 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x626ea9ad nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xe86c4774 __nf_ct_ext_add_length +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xf4dd2a61 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x827cc6a1 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xbf775bf3 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/nf_nat 0x01680158 nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0x0c8f1aa3 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x108b6ed0 nf_xfrm_me_harder +EXPORT_SYMBOL net/netfilter/nf_nat 0x7a763aa7 nf_nat_used_tuple +EXPORT_SYMBOL net/netfilter/nf_nat 0x9a35943c nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0xf89eb45a nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x1219ca1b xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x43d16118 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x4f7d125b xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x4f9c8e84 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x7fa07f68 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x8454dba3 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x92fd3e5e xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xc324bf86 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xeffa8563 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xf4fab227 xt_unregister_target +EXPORT_SYMBOL net/nfc/hci/hci 0x00696beb nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0x0794bfb5 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x33d289a6 nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0x3596d47e nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0x38c7ee94 nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0x3ba119f1 nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x408f031c nfc_hci_send_response +EXPORT_SYMBOL net/nfc/hci/hci 0x41c177a1 nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0x43028a27 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x47ab3b36 nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x5493f7f3 nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0x6ace355e nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x9468b416 nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x9aa3efe3 nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0xa81069ec nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0xb136f6b8 nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0xb58d3f5a nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xbca0b4fd nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xc7f2e487 nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0xffa2970e nfc_hci_get_param +EXPORT_SYMBOL net/nfc/nci/nci 0x2cee1848 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0x522a874e nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0xaa8d02c3 nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xc5fafde8 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xdc7df02d nci_free_device +EXPORT_SYMBOL net/nfc/nfc 0x05955ea0 nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0x119a3f86 nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x1ef335fd nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0x23505c12 nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x28a5d89c nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0x2fbd65af nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0x3aca86b8 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x4c144ca5 nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0x6ce3ff9c nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0x6ea062d6 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0x73b649c3 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x8ee47a71 nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0x9ac76955 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0xb192d1b7 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0xc0f2cf97 nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0xc8746f3a nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0xd1b1379a nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0xf0349c68 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0xf406e551 nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0xfd18dbb9 nfc_add_se +EXPORT_SYMBOL net/nfc/nfc_digital 0x0d80c977 nfc_digital_free_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x22dcaae5 nfc_digital_register_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x604f34ad nfc_digital_unregister_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x8caaeb6a nfc_digital_allocate_device +EXPORT_SYMBOL net/phonet/phonet 0x65370166 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x67edff06 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x7d3ba7d7 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x9c8ac6dc phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xa60c082f phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xa70272b1 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xb27b6a6a pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xcaaba554 phonet_proto_register +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0bdbec2d rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0d951714 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2b34b57a rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x451e0005 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x487a0cf7 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x48ab8b1f rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6442b976 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7c7dadec rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8206a662 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8adc3b5d rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa962df91 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc91af299 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe9203c2a rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf36b1dd5 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfb34fa76 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/sctp/sctp 0x83501070 sctp_do_peeloff +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x11767ec9 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x2f245747 gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xef6d8942 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7c678c19 svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0x2ebaf5ac wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0x6c6e4ab0 wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x0078cb0d cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x03e7f34a cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x05ac952e cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0x0694d619 cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0x0959ed68 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0dbdaa61 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0x116e1601 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x11772f33 cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x125b3703 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x144b8825 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x157c5eb4 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x18fb9d23 cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x19e03378 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x21d08a02 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x2c753ab9 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x2f09cbd6 cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0x312c61b1 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x332c73d9 cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x33800009 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x35ea9404 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x3867c199 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x3a1f89c0 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x3b986d4c ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x406a8302 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x493443f0 cfg80211_inform_bss_width_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x4c3b5878 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x4c40b2fb ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x4c7cdf9c cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x4ff6fc93 cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x50d7006d wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x523e8aad cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x52578041 cfg80211_roamed_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x54377c4a cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x549ae50f ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x59a2cecf cfg80211_report_obss_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x5ceb8d62 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x5f91afed wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x635cf381 cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x64b5007d wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x69d26be8 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x6d6cb9ad ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x72f1a43e ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x76c5b994 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x78c142e6 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7f3e6af0 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x7f969a23 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x84cecbed __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x85eb9bb0 cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0x896ec913 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x94c9bc82 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x953f2b4b cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0xa096d4e3 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xa1425906 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xad0fc168 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0xadf1b2dd cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xb5cf3d8c cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0xbb240ab0 cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0xbb62d5cc cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xc15c8611 cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0xc18857d5 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xc3fd2ff0 cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0xc5bf1b35 cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc7b77235 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xc7bdbdf4 cfg80211_inform_bss_width +EXPORT_SYMBOL net/wireless/cfg80211 0xcf618a57 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0xdba126c1 reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0xdd3dcb2a cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xe2cde9cf cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0xe452ccff cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xe9362099 cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xe9fcd0ce wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xed1dc6e6 cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xee42db3c cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xf706a2d9 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0xf91938dc cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xfaeb95da cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xfe725e7d cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x4684a27c lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xbbc230a3 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xd34c92b3 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xd6a20b1e lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe1a893c3 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0xf1bc306e lib80211_crypt_info_init +EXPORT_SYMBOL sound/ac97_bus 0xf1c40b4d ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x42c5ada4 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x57282d95 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x78a1dc53 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xda314b1f snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x1006a3cf snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x64c227c1 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x127b30fb snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x1cdc0812 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x59eb74ae snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x8102ed2f snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb11ba32d snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb2c7f684 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xea0e5748 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xed42580b snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xd7958634 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd-hwdep 0x5109d153 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0759bbf9 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x27f95c86 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x308231f6 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x41150f7d snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x545da0e5 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x563fc966 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x60054583 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x66c76828 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8dc3d5c9 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x933db13e snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x984ed769 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x99f2b705 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd639d08a snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdf023d60 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe68ede07 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xec589eac snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf5470434 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4c48191b snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x11033041 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2257a481 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5541f2a7 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x868b43c2 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8c1e0de6 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x90bbf1bd snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x93a11e17 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x955f0da9 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9f930996 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa84ca0e8 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa9b206c2 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc47c2ab1 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd05472ea snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe76f95d7 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xeb297316 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf81a9d46 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfb27a567 snd_ac97_read +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd42c91d7 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 __symbol_put +EXPORT_SYMBOL vmlinux 0x00000000 current_fs_time +EXPORT_SYMBOL vmlinux 0x00000000 d_tmpfile +EXPORT_SYMBOL vmlinux 0x00000000 do_sync_read +EXPORT_SYMBOL vmlinux 0x00000000 filp_close +EXPORT_SYMBOL vmlinux 0x00000000 finish_open +EXPORT_SYMBOL vmlinux 0x00000000 generic_getxattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_write_sync +EXPORT_SYMBOL vmlinux 0x00000000 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x00000000 in_group_p +EXPORT_SYMBOL vmlinux 0x00000000 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x00000000 iov_shorten +EXPORT_SYMBOL vmlinux 0x00000000 iterate_fd +EXPORT_SYMBOL vmlinux 0x00000000 ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 path_is_under +EXPORT_SYMBOL vmlinux 0x00000000 register_exec_domain +EXPORT_SYMBOL vmlinux 0x00000000 sock_register +EXPORT_SYMBOL vmlinux 0x00000000 sys_close +EXPORT_SYMBOL vmlinux 0x00000000 task_nice +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x00000000 vm_brk +EXPORT_SYMBOL vmlinux 0x0008b0a3 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x000e92ae snd_pcm_lib_ioctl +EXPORT_SYMBOL vmlinux 0x0012687f kill_pid +EXPORT_SYMBOL vmlinux 0x001aa908 nf_log_packet +EXPORT_SYMBOL vmlinux 0x001d7069 nf_log_register +EXPORT_SYMBOL vmlinux 0x00299ca3 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0x003b5137 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00ac9ff6 bio_copy_data +EXPORT_SYMBOL vmlinux 0x00c8cafe snd_device_new +EXPORT_SYMBOL vmlinux 0x00cf4a7f of_get_parent +EXPORT_SYMBOL vmlinux 0x00d0c9b9 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0101d5b1 ip_idents_reserve +EXPORT_SYMBOL vmlinux 0x010234ec arp_create +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x014f3485 blk_init_queue +EXPORT_SYMBOL vmlinux 0x01558da1 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x01573818 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0x015cbafa get_thermal_instance +EXPORT_SYMBOL vmlinux 0x017658da snd_timer_close +EXPORT_SYMBOL vmlinux 0x0176d707 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x017e3cc0 fb_show_logo +EXPORT_SYMBOL vmlinux 0x0184f47b blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0x0186e2de smp_call_function_many +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x0201b8b3 jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x02196324 __aeabi_idiv +EXPORT_SYMBOL vmlinux 0x02383352 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x0244170e ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x024e82d6 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x02794e50 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a1f309 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02a77125 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x02ac3081 search_binary_handler +EXPORT_SYMBOL vmlinux 0x02b8abfd in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02ef742b percpu_counter_set +EXPORT_SYMBOL vmlinux 0x02ef9fa1 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x03026722 mempool_alloc +EXPORT_SYMBOL vmlinux 0x0315bdf5 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x032156dc inet6_protos +EXPORT_SYMBOL vmlinux 0x0334795d icst307_s2div +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0336b7f9 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x0363892e bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x03642ddf inet_put_port +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x037246ee vfs_writev +EXPORT_SYMBOL vmlinux 0x03782eae simple_write_begin +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03ad26ba bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x03ad5b08 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x03ba39b0 v7_flush_user_cache_all +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03d49f36 eth_header_cache +EXPORT_SYMBOL vmlinux 0x03d7a5f3 mmc_request_done +EXPORT_SYMBOL vmlinux 0x03f26a53 blk_mq_run_queues +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x0448ce5d scsi_get_command +EXPORT_SYMBOL vmlinux 0x04669dfd mutex_unlock +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04cda566 snd_interval_refine +EXPORT_SYMBOL vmlinux 0x04e62388 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x051b234b netdev_features_change +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x052a0be2 secpath_dup +EXPORT_SYMBOL vmlinux 0x053b959b kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x0544abb7 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x055395a0 skb_trim +EXPORT_SYMBOL vmlinux 0x0553d22a ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x055b2167 seq_open +EXPORT_SYMBOL vmlinux 0x055ef445 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x05606f14 d_instantiate_no_diralias +EXPORT_SYMBOL vmlinux 0x05795f1d get_fs_type +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x0593a99b init_timer_key +EXPORT_SYMBOL vmlinux 0x05ae3cd7 irq_set_chip +EXPORT_SYMBOL vmlinux 0x05d4ffac commit_creds +EXPORT_SYMBOL vmlinux 0x05f9833b pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x0607a1f6 __brelse +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061e410a snd_pcm_period_elapsed +EXPORT_SYMBOL vmlinux 0x0625b206 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x064f6e49 kern_path_create +EXPORT_SYMBOL vmlinux 0x065aedd9 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x065edb38 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06828d13 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x0695176d ip_ct_attach +EXPORT_SYMBOL vmlinux 0x069a8002 netpoll_setup +EXPORT_SYMBOL vmlinux 0x069bcbbf fs_bio_set +EXPORT_SYMBOL vmlinux 0x06bad447 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x06d58c84 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x06f9eaf0 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0740dfa2 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a04922 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07acb11f security_file_permission +EXPORT_SYMBOL vmlinux 0x07c0e742 tcp_poll +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07cf9099 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x07d37b51 bio_pair_release +EXPORT_SYMBOL vmlinux 0x07fa87c8 kernel_bind +EXPORT_SYMBOL vmlinux 0x081f3afb complete_all +EXPORT_SYMBOL vmlinux 0x08234a13 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x0829e031 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x083c2cbe of_get_next_parent +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x084a0555 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x0875f7fe mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x088764c6 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x08a15250 __cleancache_invalidate_inode +EXPORT_SYMBOL vmlinux 0x08a5521d i2c_verify_client +EXPORT_SYMBOL vmlinux 0x08b1de4e get_phy_device +EXPORT_SYMBOL vmlinux 0x08b40c0e dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x08d4e68f locks_remove_posix +EXPORT_SYMBOL vmlinux 0x090133a8 generic_permission +EXPORT_SYMBOL vmlinux 0x093c0461 dump_skip +EXPORT_SYMBOL vmlinux 0x0959fa5b snd_pcm_set_ops +EXPORT_SYMBOL vmlinux 0x09658984 neigh_app_ns +EXPORT_SYMBOL vmlinux 0x0977bd28 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0x097b08d0 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x097ec1ff _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x097f0823 xfrm_garbage_collect +EXPORT_SYMBOL vmlinux 0x09892f13 blk_get_request +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09bfddc7 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09cf1b46 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09f73835 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x0a057d0b xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x0a0786de udplite_table +EXPORT_SYMBOL vmlinux 0x0a18e600 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x0a232c3b __blk_end_request +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a469d23 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0x0a84c777 file_update_time +EXPORT_SYMBOL vmlinux 0x0a8b31b7 security_path_chown +EXPORT_SYMBOL vmlinux 0x0a958ed4 down_write +EXPORT_SYMBOL vmlinux 0x0aa13d05 __raw_readsw +EXPORT_SYMBOL vmlinux 0x0ab07ef8 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x0abcc6de thaw_bdev +EXPORT_SYMBOL vmlinux 0x0ac6377e dma_pool_create +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acbd695 simple_link +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0add8a9b security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x0adfab73 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x0aeaaac9 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x0af11564 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL vmlinux 0x0af2a604 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b23a2c5 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x0b352a0c sg_miter_start +EXPORT_SYMBOL vmlinux 0x0b3b1112 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b56117f of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b936060 elevator_change +EXPORT_SYMBOL vmlinux 0x0b94ca6d bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x0baca27a xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x0bbc5908 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0be34742 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x0be97915 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x0bf11365 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x0c21e06b skb_push +EXPORT_SYMBOL vmlinux 0x0c3b8e1a ps2_end_command +EXPORT_SYMBOL vmlinux 0x0c459f81 fsync_bdev +EXPORT_SYMBOL vmlinux 0x0c45fc96 vfs_lstat +EXPORT_SYMBOL vmlinux 0x0c48d84c con_is_bound +EXPORT_SYMBOL vmlinux 0x0c4b5d74 request_key +EXPORT_SYMBOL vmlinux 0x0c5674ad tcp_gso_segment +EXPORT_SYMBOL vmlinux 0x0c58a8cd netdev_increment_features +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca54fee _test_and_set_bit +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cc87884 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x0cd3b131 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x0cd60706 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x0ce6a6ca nla_append +EXPORT_SYMBOL vmlinux 0x0ce900af blk_finish_plug +EXPORT_SYMBOL vmlinux 0x0ceb006d set_security_override +EXPORT_SYMBOL vmlinux 0x0cf2bc91 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x0cfac7df inet_stream_ops +EXPORT_SYMBOL vmlinux 0x0cfefe1e percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x0d0b9aaa check_disk_change +EXPORT_SYMBOL vmlinux 0x0d3f57a2 _find_next_bit_le +EXPORT_SYMBOL vmlinux 0x0d456d8d tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x0d46be97 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x0d4d7a32 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d6cc150 fb_find_mode +EXPORT_SYMBOL vmlinux 0x0d6cef7e blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x0d8ad6d0 vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0x0d9fe3ad __register_chrdev +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dafc3af locks_free_lock +EXPORT_SYMBOL vmlinux 0x0db92f56 free_netdev +EXPORT_SYMBOL vmlinux 0x0dc728c1 __pskb_copy +EXPORT_SYMBOL vmlinux 0x0dcd40a2 ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x0dd5f327 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x0de7b40f remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x0de7c92b udp_add_offload +EXPORT_SYMBOL vmlinux 0x0df4b192 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x0dfe3727 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x0e12e6aa file_ns_capable +EXPORT_SYMBOL vmlinux 0x0e29864c snd_timer_new +EXPORT_SYMBOL vmlinux 0x0e328d93 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x0e401cf1 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x0e420236 snd_timer_global_register +EXPORT_SYMBOL vmlinux 0x0e5326d0 block_commit_write +EXPORT_SYMBOL vmlinux 0x0e5ddac6 gen10g_restart_aneg +EXPORT_SYMBOL vmlinux 0x0e603b32 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x0e6da44a set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x0e9181d8 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x0e950e8c of_get_ddr_timings +EXPORT_SYMBOL vmlinux 0x0ea1d249 genphy_update_link +EXPORT_SYMBOL vmlinux 0x0eaf451e hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x0eefcebe gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x0ef45b39 skb_pad +EXPORT_SYMBOL vmlinux 0x0ef873b5 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x0efcbb1b set_current_groups +EXPORT_SYMBOL vmlinux 0x0f075bc6 cdrom_release +EXPORT_SYMBOL vmlinux 0x0f09d530 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x0f157947 cpu_v7_set_pte_ext +EXPORT_SYMBOL vmlinux 0x0f4c91ed ns_to_timespec +EXPORT_SYMBOL vmlinux 0x0f56754a serio_close +EXPORT_SYMBOL vmlinux 0x0f63f1ec __invalidate_device +EXPORT_SYMBOL vmlinux 0x0f914397 mmc_erase +EXPORT_SYMBOL vmlinux 0x0fa2a45e __memzero +EXPORT_SYMBOL vmlinux 0x0fa2f6da override_creds +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb75f2b end_page_writeback +EXPORT_SYMBOL vmlinux 0x0fca7440 jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0x0ff178f6 __aeabi_idivmod +EXPORT_SYMBOL vmlinux 0x0ff2850e inet_shutdown +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x100281d3 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x106f13ab crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x107457f8 generic_listxattr +EXPORT_SYMBOL vmlinux 0x107690f0 __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0x107ec014 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x107f6ee5 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x10a3846a ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x10ac5d0f dev_driver_string +EXPORT_SYMBOL vmlinux 0x10b30089 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x10d18eb3 __scm_destroy +EXPORT_SYMBOL vmlinux 0x10dbb2e2 simple_unlink +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10fe70b8 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11104d74 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x1113b968 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x1118787c scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x11226e13 check_submounts_and_drop +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x114bf81b input_open_device +EXPORT_SYMBOL vmlinux 0x114c2215 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x1155d548 console_start +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x1170c3a4 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x117c4edd xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x1180e2f0 single_open_size +EXPORT_SYMBOL vmlinux 0x119b50e7 elf_check_arch +EXPORT_SYMBOL vmlinux 0x11c9185c of_iomap +EXPORT_SYMBOL vmlinux 0x11e2ec12 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x11fafff7 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x122043a8 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x1231fe5d xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x1235c3a3 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x123dea17 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x1246f33c of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x12511dc2 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x12527bd0 __break_lease +EXPORT_SYMBOL vmlinux 0x1271387d xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x1285e11b skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12ca917c i2c_register_driver +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e57d7b arm_coherent_dma_ops +EXPORT_SYMBOL vmlinux 0x12e85c78 mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x12ff1894 netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x130a3905 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x132c6dea simple_empty +EXPORT_SYMBOL vmlinux 0x13307fde vsscanf +EXPORT_SYMBOL vmlinux 0x1348760d ipmi_request_settime +EXPORT_SYMBOL vmlinux 0x13860c0c sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x13a2c63e brioctl_set +EXPORT_SYMBOL vmlinux 0x13c04726 __free_pages +EXPORT_SYMBOL vmlinux 0x13c16558 blk_init_tags +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d95e3c register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x13e7dfe8 snd_pcm_lib_writev +EXPORT_SYMBOL vmlinux 0x13f87cf5 phy_driver_register +EXPORT_SYMBOL vmlinux 0x141408d7 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x1420b379 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x1421b42d tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x143acb71 input_register_device +EXPORT_SYMBOL vmlinux 0x14569240 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x14575a48 neigh_table_init +EXPORT_SYMBOL vmlinux 0x14680747 simple_rename +EXPORT_SYMBOL vmlinux 0x14b70521 snd_ctl_replace +EXPORT_SYMBOL vmlinux 0x14d4a9c5 _change_bit +EXPORT_SYMBOL vmlinux 0x14dc7ca8 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x14f1cf65 bio_init +EXPORT_SYMBOL vmlinux 0x14f1dc9d eth_type_trans +EXPORT_SYMBOL vmlinux 0x15005ddd alloc_anon_inode +EXPORT_SYMBOL vmlinux 0x15177db4 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x151be33a kunmap +EXPORT_SYMBOL vmlinux 0x152d65ed ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0x15349cee cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x1535a2fc snd_info_register +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x154e5f91 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x1550b72b tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x158cc596 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x15916f5a twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0x15f571ec blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x162b43f2 dev_queue_xmit_accel +EXPORT_SYMBOL vmlinux 0x162ccc0c lg_local_lock +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x1631dd1d rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x1636267b ppp_input +EXPORT_SYMBOL vmlinux 0x166aaddf sock_create +EXPORT_SYMBOL vmlinux 0x16766435 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x16846da5 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x16849ab4 skb_append +EXPORT_SYMBOL vmlinux 0x16ad1305 register_key_type +EXPORT_SYMBOL vmlinux 0x16b6809a create_syslog_header +EXPORT_SYMBOL vmlinux 0x16b8bd43 gen10g_read_status +EXPORT_SYMBOL vmlinux 0x16c0cc44 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x16d38754 __napi_schedule +EXPORT_SYMBOL vmlinux 0x16dbe45c security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL vmlinux 0x16e71cb3 input_unregister_device +EXPORT_SYMBOL vmlinux 0x17053e47 netdev_master_upper_dev_link_private +EXPORT_SYMBOL vmlinux 0x17078064 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x1720e637 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x175c7a50 dev_add_pack +EXPORT_SYMBOL vmlinux 0x176aadad pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x176f7b40 register_qdisc +EXPORT_SYMBOL vmlinux 0x1787451c vfs_getattr +EXPORT_SYMBOL vmlinux 0x179d3954 sk_wait_data +EXPORT_SYMBOL vmlinux 0x17a142df __copy_from_user +EXPORT_SYMBOL vmlinux 0x17b1125d gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x17b30bc9 ip_fragment +EXPORT_SYMBOL vmlinux 0x17e02149 seq_write +EXPORT_SYMBOL vmlinux 0x180a4b95 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x181e01b2 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x18240757 contig_page_data +EXPORT_SYMBOL vmlinux 0x1826f089 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x1837e8ce remap_pfn_range +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x185362a3 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x18829fa7 dcache_readdir +EXPORT_SYMBOL vmlinux 0x188a3dfb timespec_trunc +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18b04bed bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x18bd76a4 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x18c2227f cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x18d319c3 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x18db9003 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x18e1fd53 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x190b085c dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x192c6526 fd_install +EXPORT_SYMBOL vmlinux 0x192d9287 thaw_super +EXPORT_SYMBOL vmlinux 0x195edb43 netdev_alert +EXPORT_SYMBOL vmlinux 0x19610e1f cpu_all_bits +EXPORT_SYMBOL vmlinux 0x1967230e add_disk +EXPORT_SYMBOL vmlinux 0x197fcb5b gen10g_resume +EXPORT_SYMBOL vmlinux 0x198e81d1 writeback_in_progress +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19c99f86 devm_gpiod_put +EXPORT_SYMBOL vmlinux 0x19cbe86d bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x19e4285a address_space_init_once +EXPORT_SYMBOL vmlinux 0x19f111b4 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x19f5809b dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL vmlinux 0x1a65f4ad __arm_ioremap_pfn +EXPORT_SYMBOL vmlinux 0x1a6657b0 input_flush_device +EXPORT_SYMBOL vmlinux 0x1a6c53a8 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x1a9420a1 dev_alert +EXPORT_SYMBOL vmlinux 0x1a9c47bf __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL vmlinux 0x1abf70db sk_stop_timer +EXPORT_SYMBOL vmlinux 0x1ac3015a ps2_begin_command +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad1f2e7 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0x1ae6a3d4 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x1af12525 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b0ac272 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x1b1e1088 sg_nents +EXPORT_SYMBOL vmlinux 0x1b22a30a inet_del_protocol +EXPORT_SYMBOL vmlinux 0x1b2cf953 inet6_release +EXPORT_SYMBOL vmlinux 0x1b44b595 netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0x1b5c9348 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b672192 kmap +EXPORT_SYMBOL vmlinux 0x1b82fefa md_unplug +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bab6f44 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x1bb30216 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x1bb6b7b9 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x1bc18039 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x1bc32724 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x1bc627a5 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x1be43d71 proc_symlink +EXPORT_SYMBOL vmlinux 0x1bfe3a35 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x1c03543f i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x1c155050 __seq_open_private +EXPORT_SYMBOL vmlinux 0x1c22de5f swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x1c32b064 udp_ioctl +EXPORT_SYMBOL vmlinux 0x1c484905 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x1c4cdc0d kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x1c50e016 __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x1c5e3878 icst525_idx2s +EXPORT_SYMBOL vmlinux 0x1c83b045 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x1c8bb5ad nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x1cabd9a1 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x1cad4029 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x1cb7cfa1 bio_reset +EXPORT_SYMBOL vmlinux 0x1cc681f5 skb_store_bits +EXPORT_SYMBOL vmlinux 0x1cfb04fa finish_wait +EXPORT_SYMBOL vmlinux 0x1cfb8bbd get_user_pages +EXPORT_SYMBOL vmlinux 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL vmlinux 0x1d2cc17a freeze_bdev +EXPORT_SYMBOL vmlinux 0x1d373734 of_device_alloc +EXPORT_SYMBOL vmlinux 0x1d37ab84 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x1d46030d ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x1d5a18bf __i2c_transfer +EXPORT_SYMBOL vmlinux 0x1d8b766e max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x1da7e7f3 fb_get_mode +EXPORT_SYMBOL vmlinux 0x1daa7d12 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dd7cbcd tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x1de98fca cdev_add +EXPORT_SYMBOL vmlinux 0x1df45458 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x1e047854 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x1e07f995 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x1e268ec0 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e31b77f nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e771b44 try_to_writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x1e98f4be dcache_dir_close +EXPORT_SYMBOL vmlinux 0x1e9be55b security_mmap_file +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ec3bed9 hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x1ec4eb34 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x1eeb848e __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x1ef6c643 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x1f018b05 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x1f078721 vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0x1f1ddaf4 simple_readpage +EXPORT_SYMBOL vmlinux 0x1f2316a9 nand_bch_calculate_ecc +EXPORT_SYMBOL vmlinux 0x1f3c4c80 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x1f4fc9f2 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x1f545205 ps2_init +EXPORT_SYMBOL vmlinux 0x1f658f7d d_validate +EXPORT_SYMBOL vmlinux 0x1f6e0545 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x1f785c72 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x1f7d1779 vfs_rename +EXPORT_SYMBOL vmlinux 0x1f7e807f kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x1fab5905 wait_for_completion +EXPORT_SYMBOL vmlinux 0x1fab7641 account_page_redirty +EXPORT_SYMBOL vmlinux 0x1fba9944 write_one_page +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fbeb714 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x1fc96d3e scsi_print_result +EXPORT_SYMBOL vmlinux 0x1fccdce3 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fde6323 blkdev_issue_write_same +EXPORT_SYMBOL vmlinux 0x1fe912f1 netdev_alloc_frag +EXPORT_SYMBOL vmlinux 0x1fe9f800 unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x20260eed snd_pcm_stop +EXPORT_SYMBOL vmlinux 0x20341857 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x20372c12 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x20421305 on_each_cpu_mask +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x206d588a snd_card_file_add +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20b2bb2d param_array_ops +EXPORT_SYMBOL vmlinux 0x20b6e8d2 __pv_phys_offset +EXPORT_SYMBOL vmlinux 0x20c55ae0 sscanf +EXPORT_SYMBOL vmlinux 0x20ddc285 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x20df2681 ida_simple_remove +EXPORT_SYMBOL vmlinux 0x20f432dd skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x21010d1c wireless_send_event +EXPORT_SYMBOL vmlinux 0x211331fa __divsi3 +EXPORT_SYMBOL vmlinux 0x213e7c78 kern_path_mountpoint +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x216e3e8e __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x217dda13 flex_array_get +EXPORT_SYMBOL vmlinux 0x21b015ce xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x21b2ea63 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x21e2d71a vfs_mkdir +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x222fa684 lg_global_lock +EXPORT_SYMBOL vmlinux 0x2232a8a5 mempool_free +EXPORT_SYMBOL vmlinux 0x2256fafa div64_u64_rem +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x228386b4 snd_ctl_rename_id +EXPORT_SYMBOL vmlinux 0x2297bad7 phy_device_register +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22e1ae6f up_read +EXPORT_SYMBOL vmlinux 0x230bb77b devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0x2312f17e jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x235994e8 nand_lock +EXPORT_SYMBOL vmlinux 0x236a74bd skb_pull +EXPORT_SYMBOL vmlinux 0x236f1a54 simple_dentry_operations +EXPORT_SYMBOL vmlinux 0x237ce179 inet6_unregister_icmp_sender +EXPORT_SYMBOL vmlinux 0x2386b193 genlmsg_put +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23aa49d3 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24010a58 nf_afinfo +EXPORT_SYMBOL vmlinux 0x24212d86 __frontswap_invalidate_page +EXPORT_SYMBOL vmlinux 0x242d3554 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x242e260c filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0x243a732e inet6_ioctl +EXPORT_SYMBOL vmlinux 0x243ee05c scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x246b71e7 of_find_backlight_by_node +EXPORT_SYMBOL vmlinux 0x2476cfe6 tcp_prot +EXPORT_SYMBOL vmlinux 0x2477d9f3 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x2496cee2 snd_ctl_add +EXPORT_SYMBOL vmlinux 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL vmlinux 0x24b0f90c of_clk_get_by_name +EXPORT_SYMBOL vmlinux 0x24b97fe4 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x24d7b4eb cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x24dddb17 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x2527693c i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x253ef6a3 bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0x2542cc0c dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x25535d92 vfs_open +EXPORT_SYMBOL vmlinux 0x25540332 inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0x25736ea4 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x2584983b dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x258965c2 padata_stop +EXPORT_SYMBOL vmlinux 0x258b2b74 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x25908d5e mount_bdev +EXPORT_SYMBOL vmlinux 0x2595483c blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x25a570be __sk_dst_check +EXPORT_SYMBOL vmlinux 0x25abc8ff neigh_lookup +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25c8805e bdget +EXPORT_SYMBOL vmlinux 0x25c9448a sys_copyarea +EXPORT_SYMBOL vmlinux 0x25d139de tty_check_change +EXPORT_SYMBOL vmlinux 0x25f673fc gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x260cf8f8 of_get_property +EXPORT_SYMBOL vmlinux 0x262316ff kmalloc_caches +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x2650d835 sysctl_ip_early_demux +EXPORT_SYMBOL vmlinux 0x2656c2c7 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x265e08d6 nand_calculate_ecc +EXPORT_SYMBOL vmlinux 0x26695728 lockref_mark_dead +EXPORT_SYMBOL vmlinux 0x266dff00 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x26743b46 do_splice_to +EXPORT_SYMBOL vmlinux 0x2684f257 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x268683af tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0x268a5048 snd_power_wait +EXPORT_SYMBOL vmlinux 0x26996f84 ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x26b0ac6e blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26bceb11 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x26c6c917 sget +EXPORT_SYMBOL vmlinux 0x26d0bc18 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f0453a blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x26fc88e8 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x270eef07 udp_disconnect +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x2755cc28 __pagevec_release +EXPORT_SYMBOL vmlinux 0x275ef902 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x277334d5 d_make_root +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x279fe9e1 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x28056ccd find_vma +EXPORT_SYMBOL vmlinux 0x280a54cb dev_remove_pack +EXPORT_SYMBOL vmlinux 0x28118cb6 __get_user_1 +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x285185eb snd_card_proc_new +EXPORT_SYMBOL vmlinux 0x28670e09 sock_edemux +EXPORT_SYMBOL vmlinux 0x286c3464 cap_mmap_file +EXPORT_SYMBOL vmlinux 0x2883d073 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x2886a5ab inet6_bind +EXPORT_SYMBOL vmlinux 0x28a261a5 snd_ctl_remove_id +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28aa4926 snd_jack_report +EXPORT_SYMBOL vmlinux 0x28d63c34 crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x28dd88a7 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x28f0cfe0 from_kuid_munged +EXPORT_SYMBOL vmlinux 0x290589bd dquot_transfer +EXPORT_SYMBOL vmlinux 0x291e9086 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x291ed85a kfree_skb_list +EXPORT_SYMBOL vmlinux 0x2947dc95 blk_rq_init +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x296434b3 md_integrity_register +EXPORT_SYMBOL vmlinux 0x297854d7 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x297ca51f __neigh_create +EXPORT_SYMBOL vmlinux 0x299366f1 __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x29baff70 ida_remove +EXPORT_SYMBOL vmlinux 0x29fdda53 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x29fe5738 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x2a0b6665 set_bh_page +EXPORT_SYMBOL vmlinux 0x2a21d65c tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x2a2a3ed4 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a3aa678 _test_and_clear_bit +EXPORT_SYMBOL vmlinux 0x2a608c2a single_open +EXPORT_SYMBOL vmlinux 0x2a678228 inode_init_once +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2a7eca4c simple_transaction_get +EXPORT_SYMBOL vmlinux 0x2a85f746 snd_card_disconnect +EXPORT_SYMBOL vmlinux 0x2a8a53e4 security_path_chmod +EXPORT_SYMBOL vmlinux 0x2a922fcf xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa6bc7b mdiobus_register +EXPORT_SYMBOL vmlinux 0x2ab33383 snd_timer_interrupt +EXPORT_SYMBOL vmlinux 0x2acf0feb vfs_fstat +EXPORT_SYMBOL vmlinux 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL vmlinux 0x2ae769ec mount_subtree +EXPORT_SYMBOL vmlinux 0x2b0134d3 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b12925d cpumask_next_and +EXPORT_SYMBOL vmlinux 0x2b167640 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b38f6cf make_bad_inode +EXPORT_SYMBOL vmlinux 0x2b4e956e mempool_create +EXPORT_SYMBOL vmlinux 0x2b760ecb md_finish_reshape +EXPORT_SYMBOL vmlinux 0x2b798b1d scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x2b866a70 kernel_listen +EXPORT_SYMBOL vmlinux 0x2b8b86df posix_test_lock +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2b9f2eb6 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x2ba11160 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2be0f12d dql_completed +EXPORT_SYMBOL vmlinux 0x2c0d9fea filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x2c14323a kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c2f6839 poll_freewait +EXPORT_SYMBOL vmlinux 0x2c35d3c4 PDE_DATA +EXPORT_SYMBOL vmlinux 0x2c453aff __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0x2c5bf49f generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x2c6118da iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x2c62329f mmc_gpio_free_ro +EXPORT_SYMBOL vmlinux 0x2c81ec75 __irq_regs +EXPORT_SYMBOL vmlinux 0x2c900d91 cpufreq_put_global_kobject +EXPORT_SYMBOL vmlinux 0x2c9732f8 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x2c988955 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x2ca72ed2 __lock_page +EXPORT_SYMBOL vmlinux 0x2cabec8e tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x2cb2ecd8 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x2cb4baec mfd_add_devices +EXPORT_SYMBOL vmlinux 0x2cd1be7d devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x2cd4cbca __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x2d03c10d posix_acl_create +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d272993 key_reject_and_link +EXPORT_SYMBOL vmlinux 0x2d2f1a4d generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d32881b abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d3409ee skb_split +EXPORT_SYMBOL vmlinux 0x2d6344e2 mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0x2d6507b5 _find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0x2d77080c mmc_can_trim +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d9af578 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x2d9cc53c serio_reconnect +EXPORT_SYMBOL vmlinux 0x2daaaba9 param_get_byte +EXPORT_SYMBOL vmlinux 0x2dac5896 nand_correct_data +EXPORT_SYMBOL vmlinux 0x2deda4a1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x2df5d0ca __inet6_hash +EXPORT_SYMBOL vmlinux 0x2df691e0 xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0x2e0c1c16 fail_migrate_page +EXPORT_SYMBOL vmlinux 0x2e14514e skb_checksum +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e1e25c0 blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0x2e23e35a init_task +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e31cdd8 map_destroy +EXPORT_SYMBOL vmlinux 0x2e4e20d9 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x2e5810c6 __aeabi_unwind_cpp_pr1 +EXPORT_SYMBOL vmlinux 0x2e898a40 max8998_read_reg +EXPORT_SYMBOL vmlinux 0x2e8c9c85 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x2eb0e384 mddev_congested +EXPORT_SYMBOL vmlinux 0x2ec052fa inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ed111da softnet_data +EXPORT_SYMBOL vmlinux 0x2edb8639 bdgrab +EXPORT_SYMBOL vmlinux 0x2eebd109 __page_symlink +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef01fbe __sock_create +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f5b9cb8 dm_put_device +EXPORT_SYMBOL vmlinux 0x2f79ed6d of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x2f89dc70 nand_scan_bbt +EXPORT_SYMBOL vmlinux 0x2f8d2428 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x2f98964f twl6040_power +EXPORT_SYMBOL vmlinux 0x2fab5024 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x2facce38 tty_kref_put +EXPORT_SYMBOL vmlinux 0x2fb56354 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fcdcb1b dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x2fd3e04f scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x2fdd4cea I_BDEV +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2fe51717 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x2fec0a1f pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x301a1e78 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x305596c0 find_or_create_page +EXPORT_SYMBOL vmlinux 0x3079d423 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x308f76c1 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x3099b1e7 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x309d6d34 __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30dbfd74 snd_device_free +EXPORT_SYMBOL vmlinux 0x30ddc0aa jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x30dde4ca km_state_notify +EXPORT_SYMBOL vmlinux 0x30e6d4aa i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x3101ac37 inet_getname +EXPORT_SYMBOL vmlinux 0x3102d70b frontswap_curr_pages +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x312824e0 hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x31302017 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x314a3484 iterate_dir +EXPORT_SYMBOL vmlinux 0x314ae7ee from_kgid +EXPORT_SYMBOL vmlinux 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x316771e5 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x31738e35 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x318cadb1 reciprocal_value +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x3198a057 seq_printf +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31df6b59 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x31e1e660 km_new_mapping +EXPORT_SYMBOL vmlinux 0x31f0bb78 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x31f68bc6 bio_map_kern +EXPORT_SYMBOL vmlinux 0x31fd60e7 uart_resume_port +EXPORT_SYMBOL vmlinux 0x3206fc5a devm_gpio_free +EXPORT_SYMBOL vmlinux 0x3210c03c sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x32255b73 serio_interrupt +EXPORT_SYMBOL vmlinux 0x322f48d4 abx500_dump_all_banks +EXPORT_SYMBOL vmlinux 0x32303126 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x323f3037 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x3266d6e9 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x327bf883 of_can_translate_address +EXPORT_SYMBOL vmlinux 0x32824a40 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x32846afc jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x3285f320 nobh_writepage +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x3295899e tcf_em_register +EXPORT_SYMBOL vmlinux 0x32b7ccfe get_mem_type +EXPORT_SYMBOL vmlinux 0x32b995f7 netdev_err +EXPORT_SYMBOL vmlinux 0x32bfd6de pipe_unlock +EXPORT_SYMBOL vmlinux 0x3301657b dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x330a4411 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x33174521 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x332b9e9f udp_poll +EXPORT_SYMBOL vmlinux 0x3330a47d gen_pool_free +EXPORT_SYMBOL vmlinux 0x333b2388 inc_nlink +EXPORT_SYMBOL vmlinux 0x3341c35f blk_mq_free_single_hw_queue +EXPORT_SYMBOL vmlinux 0x3342a8be sock_no_getname +EXPORT_SYMBOL vmlinux 0x334f085a gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x33621e7a find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x3375e166 snd_pcm_new_stream +EXPORT_SYMBOL vmlinux 0x337cce46 put_cmsg +EXPORT_SYMBOL vmlinux 0x338476e7 tty_unlock_pair +EXPORT_SYMBOL vmlinux 0x33855011 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x339b6a99 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x339e58a5 unregister_key_type +EXPORT_SYMBOL vmlinux 0x33b7a13a xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x33ba5cd4 param_ops_bool +EXPORT_SYMBOL vmlinux 0x33c7435c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x34184afe current_kernel_time +EXPORT_SYMBOL vmlinux 0x341dbfa3 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x34253b85 kfree_put_link +EXPORT_SYMBOL vmlinux 0x342a0b19 init_net +EXPORT_SYMBOL vmlinux 0x343d9c43 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x343f21d4 module_layout +EXPORT_SYMBOL vmlinux 0x3447916e snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL vmlinux 0x344931c8 textsearch_register +EXPORT_SYMBOL vmlinux 0x344b7739 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x3456a23c gen10g_suspend +EXPORT_SYMBOL vmlinux 0x3468e26f dquot_release +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x347eb9bd param_set_bool +EXPORT_SYMBOL vmlinux 0x3481a514 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x348af373 snd_seq_root +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a16142 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x34a1bda8 pipe_to_file +EXPORT_SYMBOL vmlinux 0x34a2a4df scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x34aca7d7 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x34af2674 md_done_sync +EXPORT_SYMBOL vmlinux 0x34c145f1 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x34e897df do_sync_write +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x34fa13c2 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x3507a132 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x35212840 ftrace_raw_output_prep +EXPORT_SYMBOL vmlinux 0x353175e3 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x35345700 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x353e3fa5 __get_user_4 +EXPORT_SYMBOL vmlinux 0x3570c77c mmc_detect_change +EXPORT_SYMBOL vmlinux 0x359655b7 elevator_exit +EXPORT_SYMBOL vmlinux 0x35b66528 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x35d9d5b0 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x35fc2e8d xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3612c10f tmio_core_mmc_enable +EXPORT_SYMBOL vmlinux 0x364c76de security_path_rmdir +EXPORT_SYMBOL vmlinux 0x368382e2 of_get_named_gpiod_flags +EXPORT_SYMBOL vmlinux 0x36990d1a key_type_keyring +EXPORT_SYMBOL vmlinux 0x36bd681b groups_alloc +EXPORT_SYMBOL vmlinux 0x36d7b11a of_find_matching_node_and_match +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36f41673 udp_prot +EXPORT_SYMBOL vmlinux 0x373390a9 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x3746279a pipe_lock +EXPORT_SYMBOL vmlinux 0x37568f32 input_free_device +EXPORT_SYMBOL vmlinux 0x3777b328 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x378f9a24 qdisc_reset +EXPORT_SYMBOL vmlinux 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL vmlinux 0x37a5e1fe serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x37a7f6f7 backlight_device_register +EXPORT_SYMBOL vmlinux 0x37b453c6 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x37beee70 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c11674 d_find_alias +EXPORT_SYMBOL vmlinux 0x37d683d3 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x37db1c44 key_validate +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37f2047e fget_raw +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x37f64a25 security_inode_permission +EXPORT_SYMBOL vmlinux 0x3800637c put_tty_driver +EXPORT_SYMBOL vmlinux 0x38030ecc sock_wmalloc +EXPORT_SYMBOL vmlinux 0x38102799 netdev_emerg +EXPORT_SYMBOL vmlinux 0x381144a9 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x38136f12 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x381ad03e skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x381ccc13 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x381ffa4d sk_reset_timer +EXPORT_SYMBOL vmlinux 0x3846ba7c request_firmware +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38aff441 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x38b5ad9f arp_tbl +EXPORT_SYMBOL vmlinux 0x38c1f132 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x38c581df unregister_md_personality +EXPORT_SYMBOL vmlinux 0x38c97d50 idr_get_next +EXPORT_SYMBOL vmlinux 0x38cce81e jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x38d6b434 is_bad_inode +EXPORT_SYMBOL vmlinux 0x38da6a3e tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x38e4ca98 misc_register +EXPORT_SYMBOL vmlinux 0x3924dd56 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3925af23 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x3957be6f pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL vmlinux 0x3987ec77 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x39abed60 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x39ad553d dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL vmlinux 0x39ccd25b __cleancache_get_page +EXPORT_SYMBOL vmlinux 0x39ed210e skb_insert +EXPORT_SYMBOL vmlinux 0x3a11970a scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x3a16a2ab ll_rw_block +EXPORT_SYMBOL vmlinux 0x3a2dfd93 flush_dcache_page +EXPORT_SYMBOL vmlinux 0x3a42ae74 uart_match_port +EXPORT_SYMBOL vmlinux 0x3a6ae1ca ndo_dflt_bridge_getlink +EXPORT_SYMBOL vmlinux 0x3a6fd1f8 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x3a849895 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x3a8b47c9 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x3a984467 netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa73bb6 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x3abc8c2a ipmi_smi_add_proc_entry +EXPORT_SYMBOL vmlinux 0x3afe7b3d inode_init_owner +EXPORT_SYMBOL vmlinux 0x3b06b4f3 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x3b0b3734 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x3b7cf463 lock_may_write +EXPORT_SYMBOL vmlinux 0x3b91f3af snd_free_pages +EXPORT_SYMBOL vmlinux 0x3ba498db neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x3bad4776 sys_fillrect +EXPORT_SYMBOL vmlinux 0x3bb37c1b pps_event +EXPORT_SYMBOL vmlinux 0x3bbbc4d0 security_path_rename +EXPORT_SYMBOL vmlinux 0x3bbf46ea vga_base +EXPORT_SYMBOL vmlinux 0x3bc45eff blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bef03b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x3bf44388 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x3c0c1f98 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x3c1991ea md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x3c33dfe1 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x3c4f3b64 proc_remove +EXPORT_SYMBOL vmlinux 0x3c66407e tcp_init_cgroup +EXPORT_SYMBOL vmlinux 0x3c6bc91c bdi_unregister +EXPORT_SYMBOL vmlinux 0x3c71fe1b sk_run_filter +EXPORT_SYMBOL vmlinux 0x3c793d36 cdrom_open +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c85fb34 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x3c8e5267 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x3c90d789 pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3ca01826 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x3cb3931b sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x3cd91990 scsi_add_device +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cebbcb6 snd_pcm_lib_free_pages +EXPORT_SYMBOL vmlinux 0x3d1e9dc0 __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x3d329285 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x3d37077a padata_alloc +EXPORT_SYMBOL vmlinux 0x3d3c540f elf_hwcap +EXPORT_SYMBOL vmlinux 0x3d41904f of_get_next_child +EXPORT_SYMBOL vmlinux 0x3d4445c0 i2c_transfer +EXPORT_SYMBOL vmlinux 0x3d4dc7eb blk_delay_queue +EXPORT_SYMBOL vmlinux 0x3d57aa08 __frontswap_store +EXPORT_SYMBOL vmlinux 0x3d5fd05c netpoll_rx_disable +EXPORT_SYMBOL vmlinux 0x3d826076 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x3da15ef0 blk_mq_end_io +EXPORT_SYMBOL vmlinux 0x3db2f89a ipmi_smi_watcher_register +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dd8f186 __arm_ioremap +EXPORT_SYMBOL vmlinux 0x3de29f69 dma_common_mmap +EXPORT_SYMBOL vmlinux 0x3df5725d __skb_checksum +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e25ef4e __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x3e34b5a3 htc_egpio_get_wakeup_irq +EXPORT_SYMBOL vmlinux 0x3e4f3bae cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x3e704cd2 dqput +EXPORT_SYMBOL vmlinux 0x3e78e521 tty_set_operations +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ec49ace snd_dma_get_reserved_buf +EXPORT_SYMBOL vmlinux 0x3ed07807 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ed7dd09 dst_discard +EXPORT_SYMBOL vmlinux 0x3f0ba7b0 blk_put_request +EXPORT_SYMBOL vmlinux 0x3f0e92cd vfs_llseek +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f4b8754 save_mount_options +EXPORT_SYMBOL vmlinux 0x3f5b67d5 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x3f89d675 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x3fab3ca9 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x3fb320c0 user_path_at +EXPORT_SYMBOL vmlinux 0x3fb9963a blk_mq_alloc_reserved_request +EXPORT_SYMBOL vmlinux 0x3fd55724 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff1a543 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3fffa086 sock_create_lite +EXPORT_SYMBOL vmlinux 0x400cb558 padata_do_serial +EXPORT_SYMBOL vmlinux 0x4026f6fa dput +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x4048600f neigh_parms_release +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x406fcb8d make_kprojid +EXPORT_SYMBOL vmlinux 0x407136b1 __put_user_8 +EXPORT_SYMBOL vmlinux 0x40826941 tty_write_room +EXPORT_SYMBOL vmlinux 0x40968981 generic_readlink +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x409aa5c5 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a2d1dd dm_table_get_size +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40c01859 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x40c638d6 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40ce485b mempool_resize +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40ed524a _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x40f07981 __ashldi3 +EXPORT_SYMBOL vmlinux 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL vmlinux 0x411d144b mmc_add_host +EXPORT_SYMBOL vmlinux 0x411e0956 xfrm_input +EXPORT_SYMBOL vmlinux 0x4120c06c sock_wake_async +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4150859f ilookup5 +EXPORT_SYMBOL vmlinux 0x4181c221 snd_timer_pause +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41b1827c fbcon_set_rotate +EXPORT_SYMBOL vmlinux 0x41db187d snd_pcm_open_substream +EXPORT_SYMBOL vmlinux 0x420a24a8 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x421b1a38 netdev_update_features +EXPORT_SYMBOL vmlinux 0x423b776a ipmi_create_user +EXPORT_SYMBOL vmlinux 0x423f569e mmc_put_card +EXPORT_SYMBOL vmlinux 0x425d781d __devm_request_region +EXPORT_SYMBOL vmlinux 0x42681e10 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x4277cc35 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x4298b775 v7_flush_kern_cache_all +EXPORT_SYMBOL vmlinux 0x429f6ec7 seq_puts +EXPORT_SYMBOL vmlinux 0x42a1b208 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x42a7aad2 scsi_free_command +EXPORT_SYMBOL vmlinux 0x42b948b0 no_llseek +EXPORT_SYMBOL vmlinux 0x42c1366f padata_add_cpu +EXPORT_SYMBOL vmlinux 0x42cd4cc0 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x42d37b91 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x42e1079f sock_no_mmap +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x430b8643 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x43233f2a mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x432e39de tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x434dcdc0 bdi_register +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x435cb64d uart_update_timeout +EXPORT_SYMBOL vmlinux 0x43632d7d of_find_property +EXPORT_SYMBOL vmlinux 0x43677fdf lookup_one_len +EXPORT_SYMBOL vmlinux 0x4373de2d unregister_cdrom +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x438913a0 kill_block_super +EXPORT_SYMBOL vmlinux 0x439eaadf phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x43bde7b6 genphy_suspend +EXPORT_SYMBOL vmlinux 0x43c19ba7 dev_activate +EXPORT_SYMBOL vmlinux 0x43e4dec5 dev_close +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x4411c503 prandom_seed +EXPORT_SYMBOL vmlinux 0x4415e004 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x442495c9 tmio_core_mmc_resume +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x44438b96 hex2bin +EXPORT_SYMBOL vmlinux 0x444c664b security_inode_init_security +EXPORT_SYMBOL vmlinux 0x445c7402 blk_free_tags +EXPORT_SYMBOL vmlinux 0x446194dd netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0x44643b93 __aeabi_lmul +EXPORT_SYMBOL vmlinux 0x4467ccaf vfs_write +EXPORT_SYMBOL vmlinux 0x44962e2b unregister_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x44be633c mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x44c8a80a amba_request_regions +EXPORT_SYMBOL vmlinux 0x44da5d0f __csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x44dc03f4 sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0x44dd3d8d completion_done +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f12171 mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x44f5e8b5 of_allnodes +EXPORT_SYMBOL vmlinux 0x4501f670 inet_listen +EXPORT_SYMBOL vmlinux 0x453704f3 vfs_symlink +EXPORT_SYMBOL vmlinux 0x453897fb framebuffer_release +EXPORT_SYMBOL vmlinux 0x45442722 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x455293f6 down_read +EXPORT_SYMBOL vmlinux 0x455d56e8 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x45749e09 snd_pcm_hw_constraint_list +EXPORT_SYMBOL vmlinux 0x457713f9 input_grab_device +EXPORT_SYMBOL vmlinux 0x45782963 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x4588741b inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x45a57267 __sb_start_write +EXPORT_SYMBOL vmlinux 0x45a6be13 cpufreq_sysfs_remove_file +EXPORT_SYMBOL vmlinux 0x45bda0d5 system_serial_low +EXPORT_SYMBOL vmlinux 0x45d0fba1 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x45d896cb eth_header +EXPORT_SYMBOL vmlinux 0x45eac0dd gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0x4600a5fd snd_card_free_when_closed +EXPORT_SYMBOL vmlinux 0x4611c97f input_close_device +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x463a895a fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x465757c3 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x4659aa3f tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x465cab34 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x465d5515 start_tty +EXPORT_SYMBOL vmlinux 0x46608fa0 getnstimeofday +EXPORT_SYMBOL vmlinux 0x467450f9 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x4679d3d1 inode_change_ok +EXPORT_SYMBOL vmlinux 0x467bb2f3 kset_unregister +EXPORT_SYMBOL vmlinux 0x4693fdde jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x4696a715 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x469eeac3 mpage_readpages +EXPORT_SYMBOL vmlinux 0x46b84100 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x46d3b28c __div0 +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x470a261c bio_integrity_split +EXPORT_SYMBOL vmlinux 0x4714f0a8 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x47416e14 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x4756bf4d ata_print_version +EXPORT_SYMBOL vmlinux 0x476d5d8d blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x47724c07 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47bcf84c param_set_ulong +EXPORT_SYMBOL vmlinux 0x47c526a5 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x47c8baf4 param_ops_uint +EXPORT_SYMBOL vmlinux 0x47e285a8 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x47e482cb crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x47e70229 v7_flush_user_cache_range +EXPORT_SYMBOL vmlinux 0x47f757de elf_platform +EXPORT_SYMBOL vmlinux 0x48034724 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x481ce6ce cpu_active_mask +EXPORT_SYMBOL vmlinux 0x482a2a49 param_set_charp +EXPORT_SYMBOL vmlinux 0x4842be6c bitmap_unplug +EXPORT_SYMBOL vmlinux 0x4845f7ba filemap_fault +EXPORT_SYMBOL vmlinux 0x484caddd __skb_get_hash +EXPORT_SYMBOL vmlinux 0x4853b1da ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x485a3d3c udp_proc_register +EXPORT_SYMBOL vmlinux 0x48743808 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x487a4460 cpumask_set_cpu_local_first +EXPORT_SYMBOL vmlinux 0x488095c5 register_console +EXPORT_SYMBOL vmlinux 0x4881d505 idr_for_each +EXPORT_SYMBOL vmlinux 0x488882e7 downgrade_write +EXPORT_SYMBOL vmlinux 0x48a5b067 __machine_arch_type +EXPORT_SYMBOL vmlinux 0x48c6db53 of_get_child_by_name +EXPORT_SYMBOL vmlinux 0x48e28bd5 proc_set_user +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x491229ec vfs_mknod +EXPORT_SYMBOL vmlinux 0x494ed3a8 vmap +EXPORT_SYMBOL vmlinux 0x4959ca5c dev_change_flags +EXPORT_SYMBOL vmlinux 0x495c96f8 posix_acl_init +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x4989af5a sock_no_bind +EXPORT_SYMBOL vmlinux 0x499cb58c prepare_to_wait +EXPORT_SYMBOL vmlinux 0x49ab74df dump_align +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b3cd18 find_lock_page +EXPORT_SYMBOL vmlinux 0x49d1750f blk_requeue_request +EXPORT_SYMBOL vmlinux 0x49ebacbd _clear_bit +EXPORT_SYMBOL vmlinux 0x49f96c08 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x4a024f61 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x4a107353 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x4a20d8c3 kmap_atomic +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL vmlinux 0x4a57b339 wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x4a77fc2e init_special_inode +EXPORT_SYMBOL vmlinux 0x4a7fb243 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x4a82884e blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x4aabc9d4 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x4ab7bfef ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x4ac26532 blk_make_request +EXPORT_SYMBOL vmlinux 0x4ac6abb7 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x4ac8f53e ip6_frag_match +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ad3ba84 netlink_net_capable +EXPORT_SYMBOL vmlinux 0x4ad3be5d blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x4ad5715e inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x4adaedb5 tty_register_driver +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b015768 snd_iprintf +EXPORT_SYMBOL vmlinux 0x4b01bb81 tty_mutex +EXPORT_SYMBOL vmlinux 0x4b1ec3e2 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x4b26d717 devm_clk_get +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b430dfb jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b7e4e0b iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x4b86140d nand_unlock +EXPORT_SYMBOL vmlinux 0x4b8bdcd7 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x4b9742b1 nand_bch_init +EXPORT_SYMBOL vmlinux 0x4ba3db3e eth_header_parse +EXPORT_SYMBOL vmlinux 0x4bbfe3d5 devm_ioremap +EXPORT_SYMBOL vmlinux 0x4bcd9b1f __test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x4be7fb63 up +EXPORT_SYMBOL vmlinux 0x4be85a03 memweight +EXPORT_SYMBOL vmlinux 0x4bf9d60a d_prune_aliases +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c233a44 _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x4c298ee5 iunique +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c5016eb xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x4c53b61c bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x4c5fc58c _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x4c7bb6ef blk_queue_max_write_same_sectors +EXPORT_SYMBOL vmlinux 0x4c85d369 scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x4c86184b remove_wait_queue +EXPORT_SYMBOL vmlinux 0x4c964d61 vc_resize +EXPORT_SYMBOL vmlinux 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cbc39c6 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x4cc401d8 __memcg_kmem_get_cache +EXPORT_SYMBOL vmlinux 0x4cd037cb scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0x4cdb3178 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x4ce4a3e4 tty_port_close +EXPORT_SYMBOL vmlinux 0x4ce8b87f misc_deregister +EXPORT_SYMBOL vmlinux 0x4ce95438 input_get_keycode +EXPORT_SYMBOL vmlinux 0x4cf07eb0 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x4d06f092 netif_skb_dev_features +EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page +EXPORT_SYMBOL vmlinux 0x4d123ad7 mutex_lock +EXPORT_SYMBOL vmlinux 0x4d32c36e padata_do_parallel +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d40d26b dev_get_nest_level +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d485720 set_nlink +EXPORT_SYMBOL vmlinux 0x4d497015 seq_path +EXPORT_SYMBOL vmlinux 0x4d549003 blk_get_queue +EXPORT_SYMBOL vmlinux 0x4d67cb4f snd_ctl_new1 +EXPORT_SYMBOL vmlinux 0x4d8ae6dd mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL vmlinux 0x4da8afc6 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x4dd72ddd phy_disconnect +EXPORT_SYMBOL vmlinux 0x4de34a07 cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e0fc760 phy_stop +EXPORT_SYMBOL vmlinux 0x4e14bb37 blk_peek_request +EXPORT_SYMBOL vmlinux 0x4e2bb118 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e3e9da5 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x4e6089d0 cpu_tlb +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6a7aeb lockref_get_not_zero +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4ed53d55 qdisc_watchdog_schedule_ns +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f248523 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f4aaa0f flush_signals +EXPORT_SYMBOL vmlinux 0x4f68e5c9 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x4f7935ed tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL vmlinux 0x4f816fde nf_log_unregister +EXPORT_SYMBOL vmlinux 0x4f8768a1 amba_release_regions +EXPORT_SYMBOL vmlinux 0x4f9d852a seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0x4ff20a64 from_kprojid +EXPORT_SYMBOL vmlinux 0x4ff38050 mmc_start_req +EXPORT_SYMBOL vmlinux 0x4ff83d64 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x5028c33e __frontswap_test +EXPORT_SYMBOL vmlinux 0x50326590 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x50825927 kern_unmount +EXPORT_SYMBOL vmlinux 0x508bcd9f __vexpress_config_func_get +EXPORT_SYMBOL vmlinux 0x509817cf vprintk_emit +EXPORT_SYMBOL vmlinux 0x50a0c300 udp_seq_open +EXPORT_SYMBOL vmlinux 0x50cfca36 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x50d4be63 dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x50e043e0 inet6_register_icmp_sender +EXPORT_SYMBOL vmlinux 0x50e6e34f bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x511746c1 dump_fpu +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x51218bb6 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x517523c3 security_dentry_init_security +EXPORT_SYMBOL vmlinux 0x51908eb8 __raw_writesl +EXPORT_SYMBOL vmlinux 0x51b11d1f of_mdio_find_bus +EXPORT_SYMBOL vmlinux 0x51c125e3 sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0x51d559d1 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x51d9620b jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e77c97 pfn_valid +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x51f469f3 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52091ece napi_get_frags +EXPORT_SYMBOL vmlinux 0x52137563 page_address +EXPORT_SYMBOL vmlinux 0x521b36b5 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x52428cc8 parent_mem_cgroup +EXPORT_SYMBOL vmlinux 0x5248ec18 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL vmlinux 0x524fdcfe scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x525c1986 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x52803da1 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x52873622 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52a213c8 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x52a6c856 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x52da641f ihold +EXPORT_SYMBOL vmlinux 0x52db8816 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL vmlinux 0x52ea5689 kernel_connect +EXPORT_SYMBOL vmlinux 0x52efc074 snd_component_add +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x536539f7 phy_device_free +EXPORT_SYMBOL vmlinux 0x53723139 ip_defrag +EXPORT_SYMBOL vmlinux 0x537c9008 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x537f54f2 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL vmlinux 0x5389c3b4 migrate_page +EXPORT_SYMBOL vmlinux 0x539a8ddb ps2_command +EXPORT_SYMBOL vmlinux 0x539e713c xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x53aa9578 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x53bb01e2 vm_stat +EXPORT_SYMBOL vmlinux 0x53f4e28e padata_free +EXPORT_SYMBOL vmlinux 0x5409775b free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5458867d devfreq_resume_device +EXPORT_SYMBOL vmlinux 0x545eaf62 nand_scan_tail +EXPORT_SYMBOL vmlinux 0x547077ec __wake_up_bit +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54bc04d8 devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x54e3cc3b param_get_int +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x550b9a0b twl6040_set_bits +EXPORT_SYMBOL vmlinux 0x55178dd1 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x552fc2d4 call_netdevice_notifiers_info +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x5567c227 kernel_cpustat +EXPORT_SYMBOL vmlinux 0x556c2740 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55abfe14 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x55c4716c __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x560391ef inet_frags_init +EXPORT_SYMBOL vmlinux 0x5609fe90 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x561c4765 __ps2_command +EXPORT_SYMBOL vmlinux 0x561f0d96 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563a9b1e elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x56425d13 of_phy_connect +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x5642a577 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x5648bf18 phy_start +EXPORT_SYMBOL vmlinux 0x565c9620 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x566ec024 km_query +EXPORT_SYMBOL vmlinux 0x567bf2d3 __bforget +EXPORT_SYMBOL vmlinux 0x56a83a32 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56f20e3c dst_alloc +EXPORT_SYMBOL vmlinux 0x56f8e34a sock_no_listen +EXPORT_SYMBOL vmlinux 0x5709ce59 nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0x571032a9 devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x578573fe read_dev_sector +EXPORT_SYMBOL vmlinux 0x57a31e57 nand_flash_ids +EXPORT_SYMBOL vmlinux 0x57b0e763 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x57bf113c rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x57d953c6 devfreq_add_device +EXPORT_SYMBOL vmlinux 0x57ee50bd generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x5801d39f iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x580822c3 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x580ec341 d_invalidate +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x5842dec9 register_md_personality +EXPORT_SYMBOL vmlinux 0x584e87fc __find_get_block +EXPORT_SYMBOL vmlinux 0x5857b7cd pgprot_kernel +EXPORT_SYMBOL vmlinux 0x58635de5 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x587616f1 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x58789608 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x587b3a83 mmc_gpio_request_ro +EXPORT_SYMBOL vmlinux 0x58841229 arm_dma_ops +EXPORT_SYMBOL vmlinux 0x588c130c vexpress_config_func_put +EXPORT_SYMBOL vmlinux 0x58ab846e blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x58d1070a of_get_address +EXPORT_SYMBOL vmlinux 0x58d43b5a ip6_route_output +EXPORT_SYMBOL vmlinux 0x58d9841a filemap_flush +EXPORT_SYMBOL vmlinux 0x58e9a5f5 bio_put +EXPORT_SYMBOL vmlinux 0x59126228 kthread_bind +EXPORT_SYMBOL vmlinux 0x59458349 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594e1317 __modsi3 +EXPORT_SYMBOL vmlinux 0x596f8f0f skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0x598542b2 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x598905bd snd_device_register +EXPORT_SYMBOL vmlinux 0x598cd828 udp_table +EXPORT_SYMBOL vmlinux 0x59b43c33 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x59ba809c snd_timer_notify +EXPORT_SYMBOL vmlinux 0x59bdcac6 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x59d29dab v7_flush_kern_dcache_area +EXPORT_SYMBOL vmlinux 0x59d632f3 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x59dd0c84 blk_bio_map_sg +EXPORT_SYMBOL vmlinux 0x59e5070d __do_div64 +EXPORT_SYMBOL vmlinux 0x5a10cd14 inet_release +EXPORT_SYMBOL vmlinux 0x5a22946a simple_statfs +EXPORT_SYMBOL vmlinux 0x5a3fa1cc jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x5a4546d6 vlan_vid_add +EXPORT_SYMBOL vmlinux 0x5a52a5a9 blk_complete_request +EXPORT_SYMBOL vmlinux 0x5a5536c2 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x5a6d3376 d_alloc +EXPORT_SYMBOL vmlinux 0x5a7dfe66 snd_pcm_notify +EXPORT_SYMBOL vmlinux 0x5a93c883 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x5abe22a4 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x5ac1ccb6 blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0x5ae0b714 tty_hangup +EXPORT_SYMBOL vmlinux 0x5ae5be44 lg_lock_init +EXPORT_SYMBOL vmlinux 0x5af1e698 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x5b03a245 __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b298622 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x5b453826 bdput +EXPORT_SYMBOL vmlinux 0x5b629480 __get_page_tail +EXPORT_SYMBOL vmlinux 0x5b72009f ida_simple_get +EXPORT_SYMBOL vmlinux 0x5bc318d2 d_splice_alias +EXPORT_SYMBOL vmlinux 0x5bcf1679 scsi_host_put +EXPORT_SYMBOL vmlinux 0x5bd6833e account_page_dirtied +EXPORT_SYMBOL vmlinux 0x5bdddef5 devm_request_and_ioremap +EXPORT_SYMBOL vmlinux 0x5c0102d9 of_find_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0x5c09f3ef sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x5c1db162 do_map_probe +EXPORT_SYMBOL vmlinux 0x5c1f8897 default_llseek +EXPORT_SYMBOL vmlinux 0x5c27e5ea udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x5c5f9a92 send_sig_info +EXPORT_SYMBOL vmlinux 0x5c628602 update_region +EXPORT_SYMBOL vmlinux 0x5c8230e5 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x5c826bda skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x5c9284a0 processor_id +EXPORT_SYMBOL vmlinux 0x5c94f2ef phy_attach +EXPORT_SYMBOL vmlinux 0x5cacdf69 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x5cb76ebe km_policy_notify +EXPORT_SYMBOL vmlinux 0x5cc688b7 module_put +EXPORT_SYMBOL vmlinux 0x5cd3fab4 sock_wfree +EXPORT_SYMBOL vmlinux 0x5ce21468 snd_timer_start +EXPORT_SYMBOL vmlinux 0x5ce99d97 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5d113e9b tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x5d41c87c param_ops_charp +EXPORT_SYMBOL vmlinux 0x5d4c6cff i2c_use_client +EXPORT_SYMBOL vmlinux 0x5d550c4d scsi_sd_probe_domain +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d69eafd napi_gro_receive +EXPORT_SYMBOL vmlinux 0x5d6fd8b5 __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0x5d891a64 idr_destroy +EXPORT_SYMBOL vmlinux 0x5da210e1 kobject_init +EXPORT_SYMBOL vmlinux 0x5dd918d0 ip_route_input_noref +EXPORT_SYMBOL vmlinux 0x5ddb79a1 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0x5de2a980 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x5debde4d dev_get_by_name +EXPORT_SYMBOL vmlinux 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL vmlinux 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e99ffe6 d_delete +EXPORT_SYMBOL vmlinux 0x5eb1915b nf_reinject +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ec02652 poll_initwait +EXPORT_SYMBOL vmlinux 0x5ecf4b98 seq_lseek +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed05b05 netlink_unicast +EXPORT_SYMBOL vmlinux 0x5eda5ff4 key_put +EXPORT_SYMBOL vmlinux 0x5eda676d scsi_host_get +EXPORT_SYMBOL vmlinux 0x5ef08c32 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x5efe0927 ipmi_get_smi_info +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f189f80 unlock_buffer +EXPORT_SYMBOL vmlinux 0x5f203687 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x5f27323c _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x5f323b6e cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x5f3c8f5c mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x5f512c3a generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x5f58f676 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f7dcc2a mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x5f8fec13 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL vmlinux 0x5f91ec0d __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x5f997e4b devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0x5fa7e5e2 input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL vmlinux 0x5fda0227 vfs_stat +EXPORT_SYMBOL vmlinux 0x5feaa0a6 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x5ff00c74 rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0x600193e8 dqget +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL vmlinux 0x60311600 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x60384165 dm_kobject_release +EXPORT_SYMBOL vmlinux 0x604dedd0 init_buffer +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x6083331d udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x608a8a2d loop_backing_file +EXPORT_SYMBOL vmlinux 0x6094538d netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x6099b90d netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0x6099e7bb ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b86f61 sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x60cf6271 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x60d9f16b xfrm_register_km +EXPORT_SYMBOL vmlinux 0x60df1e3b posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x60df9c63 scsi_execute +EXPORT_SYMBOL vmlinux 0x60f500df dma_find_channel +EXPORT_SYMBOL vmlinux 0x60fd4b76 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x61138270 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x613b7732 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x61538ad0 param_get_charp +EXPORT_SYMBOL vmlinux 0x61736d2b snd_pcm_set_sync +EXPORT_SYMBOL vmlinux 0x617a218d __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x6183e6b1 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x6193f943 input_set_abs_params +EXPORT_SYMBOL vmlinux 0x61a382e7 devm_gpiod_get +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x6206fe98 seq_release_private +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x621d1e3e get_gendisk +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x624227d9 of_match_device +EXPORT_SYMBOL vmlinux 0x62559e35 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x625d384e jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x6263e0c1 lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0x62670eb8 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x6269de14 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x627a5af0 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x62822d05 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x6284f9d1 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0x6287b4f1 bio_clone_bioset +EXPORT_SYMBOL vmlinux 0x628b84ca lock_fb_info +EXPORT_SYMBOL vmlinux 0x62a8601e input_register_handler +EXPORT_SYMBOL vmlinux 0x62da6ca7 setattr_copy +EXPORT_SYMBOL vmlinux 0x62feb12f vlan_untag +EXPORT_SYMBOL vmlinux 0x6310a340 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x6316b8fd devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x632e5e34 mtd_concat_create +EXPORT_SYMBOL vmlinux 0x63524cd1 km_policy_expired +EXPORT_SYMBOL vmlinux 0x635df531 setup_new_exec +EXPORT_SYMBOL vmlinux 0x6377a7f0 blkdev_get +EXPORT_SYMBOL vmlinux 0x63e0f0ed find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63f4a817 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64426133 security_path_symlink +EXPORT_SYMBOL vmlinux 0x645e1535 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x6461e5f2 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x647fa134 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x64891bfa phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64b54cf8 blk_run_queue +EXPORT_SYMBOL vmlinux 0x6502d7cd vfs_statfs +EXPORT_SYMBOL vmlinux 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65228a4a wait_iff_congested +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65412c57 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x65466939 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x656359c8 scsi_init_io +EXPORT_SYMBOL vmlinux 0x6565d33f scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x6567bbfb md_write_start +EXPORT_SYMBOL vmlinux 0x657f4b61 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x6582869d sk_receive_skb +EXPORT_SYMBOL vmlinux 0x6585e310 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x65bfa9c7 register_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x65c35531 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x65ce91bc cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x65d35902 single_release +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65dcb913 nand_scan_ident +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65e7c8e0 ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x65f3ad9a fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x65ff287e dma_async_device_register +EXPORT_SYMBOL vmlinux 0x6602e781 page_put_link +EXPORT_SYMBOL vmlinux 0x6605f97f flex_array_clear +EXPORT_SYMBOL vmlinux 0x6610148b snd_pcm_mmap_data +EXPORT_SYMBOL vmlinux 0x66497228 get_super +EXPORT_SYMBOL vmlinux 0x66507263 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x666ea55a dev_uc_sync +EXPORT_SYMBOL vmlinux 0x667ae50b __sb_end_write +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a67dab flex_array_shrink +EXPORT_SYMBOL vmlinux 0x66ce5b8c snd_ctl_register_ioctl +EXPORT_SYMBOL vmlinux 0x66db5e04 dev_emerg +EXPORT_SYMBOL vmlinux 0x66e012b9 set_device_ro +EXPORT_SYMBOL vmlinux 0x66e12de9 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x66f80d4c lookup_bdev +EXPORT_SYMBOL vmlinux 0x6749346f update_time +EXPORT_SYMBOL vmlinux 0x675b8f61 param_get_string +EXPORT_SYMBOL vmlinux 0x675e9c37 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x676bbc0f _set_bit +EXPORT_SYMBOL vmlinux 0x67880ce1 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL vmlinux 0x67e57fd2 rt6_lookup +EXPORT_SYMBOL vmlinux 0x680b6a9f bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x68242ed5 block_write_begin +EXPORT_SYMBOL vmlinux 0x682f0876 dev_addr_init +EXPORT_SYMBOL vmlinux 0x683b4d6f from_kgid_munged +EXPORT_SYMBOL vmlinux 0x683c05c0 frontswap_register_ops +EXPORT_SYMBOL vmlinux 0x683fab6e jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x68699128 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x6884d4b4 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x68869bae panic_notifier_list +EXPORT_SYMBOL vmlinux 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL vmlinux 0x68b83ac6 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x68dbcd8f tty_name +EXPORT_SYMBOL vmlinux 0x68e05d57 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x68fb581a icst307_idx2s +EXPORT_SYMBOL vmlinux 0x690d3fa8 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x6915eb38 down_interruptible +EXPORT_SYMBOL vmlinux 0x6921ea14 mount_nodev +EXPORT_SYMBOL vmlinux 0x69299adb file_open_root +EXPORT_SYMBOL vmlinux 0x693c5bd3 km_state_expired +EXPORT_SYMBOL vmlinux 0x6956a087 redraw_screen +EXPORT_SYMBOL vmlinux 0x6963a4c7 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x69a2d86c amba_driver_register +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69f916a4 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x69fcd095 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a1f60a7 sock_no_accept +EXPORT_SYMBOL vmlinux 0x6a211367 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x6a2ea96c truncate_setsize +EXPORT_SYMBOL vmlinux 0x6a3710e7 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x6a3a3feb simple_rmdir +EXPORT_SYMBOL vmlinux 0x6a3ca72c prepare_creds +EXPORT_SYMBOL vmlinux 0x6a3f4119 mmc_of_parse_voltage +EXPORT_SYMBOL vmlinux 0x6a47e3f6 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a662a5d __scm_send +EXPORT_SYMBOL vmlinux 0x6a6dfcf7 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x6a6e27c9 rtmsg_ifinfo +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6ad2f18f tcp_close +EXPORT_SYMBOL vmlinux 0x6ae3df7d i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x6ae712f8 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x6b06fdce delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x6b114560 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2b22b1 __skb_gso_segment +EXPORT_SYMBOL vmlinux 0x6b2d6304 clk_get +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b330b70 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x6b3be89b inode_dio_wait +EXPORT_SYMBOL vmlinux 0x6b418d50 sk_net_capable +EXPORT_SYMBOL vmlinux 0x6b456703 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0x6b6bd66d follow_down +EXPORT_SYMBOL vmlinux 0x6ba2a4c2 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x6ba829a0 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x6bb3854e bio_phys_segments +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bd082ab mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x6bd32a44 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x6bdc048d tc6393xb_lcd_mode +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6beb2078 param_set_copystring +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c203adb mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x6c2746fa d_rehash +EXPORT_SYMBOL vmlinux 0x6c2f0620 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x6c38adf0 mount_ns +EXPORT_SYMBOL vmlinux 0x6c51a836 sysctl_tcp_notsent_lowat +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c6650cb scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x6c6cdd4d wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c84d6fc xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x6c90be7b kill_anon_super +EXPORT_SYMBOL vmlinux 0x6ca5b0f8 __net_get_random_once +EXPORT_SYMBOL vmlinux 0x6cabdde0 mutex_trylock +EXPORT_SYMBOL vmlinux 0x6cb3f5f3 netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cdcf3ad vm_insert_page +EXPORT_SYMBOL vmlinux 0x6cde0149 devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d11ce0d unregister_netdev +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d291771 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2ea905 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d45ba75 dst_destroy +EXPORT_SYMBOL vmlinux 0x6d528760 __alloc_skb +EXPORT_SYMBOL vmlinux 0x6d5b46a4 follow_up +EXPORT_SYMBOL vmlinux 0x6d630748 inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0x6d662533 _find_first_bit_le +EXPORT_SYMBOL vmlinux 0x6d72f6aa nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x6d8a10b0 key_revoke +EXPORT_SYMBOL vmlinux 0x6d98a110 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x6dd6a46b xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x6de9b6db blk_put_queue +EXPORT_SYMBOL vmlinux 0x6deb4e2b blk_end_request +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6df1b5d4 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x6dfa8ebb inode_needs_sync +EXPORT_SYMBOL vmlinux 0x6e024b32 vfs_readv +EXPORT_SYMBOL vmlinux 0x6e193fdb ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x6e28de93 mpage_writepage +EXPORT_SYMBOL vmlinux 0x6e2a31de pagecache_write_end +EXPORT_SYMBOL vmlinux 0x6e4ca0fa bdget_disk +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e9081ac touch_atime +EXPORT_SYMBOL vmlinux 0x6ea46d8b block_write_full_page +EXPORT_SYMBOL vmlinux 0x6ea8dec5 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x6ebc5149 param_ops_long +EXPORT_SYMBOL vmlinux 0x6ebfcc1c netdev_info +EXPORT_SYMBOL vmlinux 0x6ec1b19c jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x6ec9ccdb _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL vmlinux 0x6f098776 __nlmsg_put +EXPORT_SYMBOL vmlinux 0x6f20960a full_name_hash +EXPORT_SYMBOL vmlinux 0x6f2fd1d6 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x6f48dcbd submit_bio_wait +EXPORT_SYMBOL vmlinux 0x6f52aa80 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x6f58266d dev_trans_start +EXPORT_SYMBOL vmlinux 0x6f5f8ff9 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x6f74ae0f free_buffer_head +EXPORT_SYMBOL vmlinux 0x6f86415f do_splice_from +EXPORT_SYMBOL vmlinux 0x6f9089d1 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x6f92fa07 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x6fa6e55e dev_alloc_name +EXPORT_SYMBOL vmlinux 0x6fab75f4 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x6fb2857f xfrm_lookup +EXPORT_SYMBOL vmlinux 0x6fb84e13 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd24ecf tcp_ioctl +EXPORT_SYMBOL vmlinux 0x6fdc63f1 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x70097aa0 nand_bch_free +EXPORT_SYMBOL vmlinux 0x701c40f5 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x70566caf eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0x7061a8a2 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x707f43f6 __ctzdi2 +EXPORT_SYMBOL vmlinux 0x7089a8b6 ps2_drain +EXPORT_SYMBOL vmlinux 0x709513dd tcp_connect +EXPORT_SYMBOL vmlinux 0x70a3eb08 __napi_complete +EXPORT_SYMBOL vmlinux 0x70b287bf splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70bc2ba9 dev_notice +EXPORT_SYMBOL vmlinux 0x70c07766 fb_blank +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70dffc49 security_path_truncate +EXPORT_SYMBOL vmlinux 0x70e475ea block_invalidatepage +EXPORT_SYMBOL vmlinux 0x70e68daa __inet_stream_connect +EXPORT_SYMBOL vmlinux 0x70eb4e97 d_path +EXPORT_SYMBOL vmlinux 0x70ebdff2 skb_put +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7162a465 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71721830 fbcon_rotate_cw +EXPORT_SYMBOL vmlinux 0x717220de tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x717f58a8 phy_drivers_register +EXPORT_SYMBOL vmlinux 0x717f96d0 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x71828cde bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x7199d029 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71c1936d sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x71c674a2 snd_pcm_new_internal +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71dd406a get_io_context +EXPORT_SYMBOL vmlinux 0x71ef4deb skb_flow_dissect +EXPORT_SYMBOL vmlinux 0x71f65175 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0x71fafa47 dst_release +EXPORT_SYMBOL vmlinux 0x721178bd simple_dir_operations +EXPORT_SYMBOL vmlinux 0x723140d6 generic_write_end +EXPORT_SYMBOL vmlinux 0x72350130 ___ratelimit +EXPORT_SYMBOL vmlinux 0x7235f242 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x7239a82b inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0x7247190f tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x72609669 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x72717779 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x72b5b2b7 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x72c35d77 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x72d58de9 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x731b81f1 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x73251e67 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x7346880a gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x73931e45 twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x73c67daf __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x73cebd20 pid_task +EXPORT_SYMBOL vmlinux 0x73de28fd thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73e3d59d dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x73ead6a0 iput +EXPORT_SYMBOL vmlinux 0x74245b5d bio_advance +EXPORT_SYMBOL vmlinux 0x74376ade inet_addr_type +EXPORT_SYMBOL vmlinux 0x7439f11f dev_err +EXPORT_SYMBOL vmlinux 0x745a5130 snd_dma_alloc_pages +EXPORT_SYMBOL vmlinux 0x745ed33e netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x747195f0 hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x747ef2c2 f_setown +EXPORT_SYMBOL vmlinux 0x7481c4e5 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74b6a7ef inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74ce05b8 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x7505bdef memchr_inv +EXPORT_SYMBOL vmlinux 0x751814f1 account_page_writeback +EXPORT_SYMBOL vmlinux 0x753eadc6 __quota_error +EXPORT_SYMBOL vmlinux 0x754dac78 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x75501cfd snd_jack_set_parent +EXPORT_SYMBOL vmlinux 0x756ffc80 md_check_recovery +EXPORT_SYMBOL vmlinux 0x75850d01 __vmalloc +EXPORT_SYMBOL vmlinux 0x758ef03b generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x758fc6a7 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x75914be4 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75f25a21 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x75fad72e keyring_clear +EXPORT_SYMBOL vmlinux 0x75fb3307 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x75fee7fd __raw_writesb +EXPORT_SYMBOL vmlinux 0x76093cfe nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x76372859 devm_gpio_request_one +EXPORT_SYMBOL vmlinux 0x763b328e ptp_clock_index +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x7662a086 seq_bitmap +EXPORT_SYMBOL vmlinux 0x7667a8fa snd_pcm_release_substream +EXPORT_SYMBOL vmlinux 0x76885c18 snd_timer_global_new +EXPORT_SYMBOL vmlinux 0x769c2a3d mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76cb6b0f genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x76cf47f6 __aeabi_llsl +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d451c4 add_taint +EXPORT_SYMBOL vmlinux 0x76f61d7b swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x770b3a10 register_quota_format +EXPORT_SYMBOL vmlinux 0x770ca28e __netlink_dump_start +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x776c34bb __dev_remove_offload +EXPORT_SYMBOL vmlinux 0x77785b62 snd_pcm_lib_write +EXPORT_SYMBOL vmlinux 0x777fca26 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x77836bad from_kuid +EXPORT_SYMBOL vmlinux 0x7791193f icst525_s2div +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x779e76f6 mount_single +EXPORT_SYMBOL vmlinux 0x77bb4991 d_find_any_alias +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77d5b6b6 kobject_set_name +EXPORT_SYMBOL vmlinux 0x77d935b6 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77fe4cb2 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x78121bf8 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL vmlinux 0x782567ec memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0x78257496 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x7833deb2 pgprot_user +EXPORT_SYMBOL vmlinux 0x783b3563 wake_up_atomic_t +EXPORT_SYMBOL vmlinux 0x783eec13 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x784bd10b sock_i_ino +EXPORT_SYMBOL vmlinux 0x78520f97 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x7865c074 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x786ba37a remove_proc_entry +EXPORT_SYMBOL vmlinux 0x7879cce6 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x789affb1 frontswap_tmem_exclusive_gets +EXPORT_SYMBOL vmlinux 0x789b5f5f devm_clk_put +EXPORT_SYMBOL vmlinux 0x78aad41f qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x78c1e47b snd_card_create +EXPORT_SYMBOL vmlinux 0x78c7b0d5 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x78cdbf16 set_disk_ro +EXPORT_SYMBOL vmlinux 0x78dc63b7 tcp_seq_open +EXPORT_SYMBOL vmlinux 0x78debd3f writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x78fba60c cdrom_check_events +EXPORT_SYMBOL vmlinux 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL vmlinux 0x7902e3b0 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x7912e151 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x7913c2a4 nf_log_unset +EXPORT_SYMBOL vmlinux 0x79270ad2 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x7930d225 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x793792b1 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x79395b18 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x794b9770 dev_remove_offload +EXPORT_SYMBOL vmlinux 0x795be46e tty_register_device +EXPORT_SYMBOL vmlinux 0x7966d2e8 tty_port_init +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x798ac64e fsnotify_get_group +EXPORT_SYMBOL vmlinux 0x799c1f22 blk_register_region +EXPORT_SYMBOL vmlinux 0x79a2e83c snd_pcm_hw_rule_noresample +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79aa2ecf simple_pin_fs +EXPORT_SYMBOL vmlinux 0x79ea9da1 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x79ec0f1d cfb_copyarea +EXPORT_SYMBOL vmlinux 0x7a0d018a proto_register +EXPORT_SYMBOL vmlinux 0x7a188791 prandom_bytes +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a300d82 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x7a36e563 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a5fef80 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x7a660849 dquot_file_open +EXPORT_SYMBOL vmlinux 0x7a7ed1cd xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x7a8184f9 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x7a84148b __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7a925833 cpufreq_get_global_kobject +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7ab021a6 __module_get +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7ad5b297 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x7add44b5 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7aeb3fb0 inet_accept +EXPORT_SYMBOL vmlinux 0x7aeb9786 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x7af1ed21 inode_init_always +EXPORT_SYMBOL vmlinux 0x7afa89fc vsnprintf +EXPORT_SYMBOL vmlinux 0x7b08d2cc kern_path +EXPORT_SYMBOL vmlinux 0x7b1ade38 lz4_decompress +EXPORT_SYMBOL vmlinux 0x7b5c8440 vm_munmap +EXPORT_SYMBOL vmlinux 0x7c02c7e7 file_remove_suid +EXPORT_SYMBOL vmlinux 0x7c092447 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x7c1372e8 panic +EXPORT_SYMBOL vmlinux 0x7c383cf7 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c4785b9 snd_timer_open +EXPORT_SYMBOL vmlinux 0x7c531153 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x7c57cf13 skb_dequeue +EXPORT_SYMBOL vmlinux 0x7c58ffaa mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c682878 dev_uc_init +EXPORT_SYMBOL vmlinux 0x7c84032e tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x7c97d663 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7c995f1a ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x7c9c10ab __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x7cae66b5 submit_bio +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cb23bf6 kobject_del +EXPORT_SYMBOL vmlinux 0x7cc035a7 __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x7cc578da param_get_long +EXPORT_SYMBOL vmlinux 0x7cd75371 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7d0bd288 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d0e3e72 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d3cbdce blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x7d3f4199 nand_bch_correct_data +EXPORT_SYMBOL vmlinux 0x7d4e2276 __init_rwsem +EXPORT_SYMBOL vmlinux 0x7d557729 vfs_setpos +EXPORT_SYMBOL vmlinux 0x7d95b2d5 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x7d975714 module_refcount +EXPORT_SYMBOL vmlinux 0x7dc77e83 mmc_of_parse +EXPORT_SYMBOL vmlinux 0x7dccc294 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x7dcfdce9 inet6_getname +EXPORT_SYMBOL vmlinux 0x7de454cf set_user_nice +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7df5aaa7 kill_bdev +EXPORT_SYMBOL vmlinux 0x7df86983 elevator_init +EXPORT_SYMBOL vmlinux 0x7e125cb9 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e4bfb3a kobject_get +EXPORT_SYMBOL vmlinux 0x7e58bbb4 set_page_dirty +EXPORT_SYMBOL vmlinux 0x7e883a18 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x7e9272d6 console_stop +EXPORT_SYMBOL vmlinux 0x7e98d318 vexpress_config_read +EXPORT_SYMBOL vmlinux 0x7e9efe8e complete_and_exit +EXPORT_SYMBOL vmlinux 0x7ead817c __idr_pre_get +EXPORT_SYMBOL vmlinux 0x7eae322f netif_device_attach +EXPORT_SYMBOL vmlinux 0x7ebd14df scsi_execute_req_flags +EXPORT_SYMBOL vmlinux 0x7edddf6e proto_unregister +EXPORT_SYMBOL vmlinux 0x7ee73c0c memcg_socket_limit_enabled +EXPORT_SYMBOL vmlinux 0x7ee74aa5 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x7f10694a noop_llseek +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f2cb54f icmpv6_send +EXPORT_SYMBOL vmlinux 0x7f3dab3d security_inode_readlink +EXPORT_SYMBOL vmlinux 0x7f63b31e _memcpy_toio +EXPORT_SYMBOL vmlinux 0x7f7bb94c kernel_getpeername +EXPORT_SYMBOL vmlinux 0x7fa54e2f load_nls +EXPORT_SYMBOL vmlinux 0x7fdec79f ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7ff10545 simple_fill_super +EXPORT_SYMBOL vmlinux 0x7ffe3058 datagram_poll +EXPORT_SYMBOL vmlinux 0x8001fc0e neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x8003b668 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x80071e53 sock_from_file +EXPORT_SYMBOL vmlinux 0x800ca35c kill_litter_super +EXPORT_SYMBOL vmlinux 0x800e4ffa __muldi3 +EXPORT_SYMBOL vmlinux 0x801357e5 invalidate_partition +EXPORT_SYMBOL vmlinux 0x804cf6c3 generic_removexattr +EXPORT_SYMBOL vmlinux 0x804f922a ipmi_addr_length +EXPORT_SYMBOL vmlinux 0x80c0bf9d create_empty_buffers +EXPORT_SYMBOL vmlinux 0x80c1c54e mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80f5e44d tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x80fa5987 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x812023b9 register_netdevice +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x8166b437 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x816d7ced bioset_create +EXPORT_SYMBOL vmlinux 0x817d6850 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x81a9412a simple_transaction_release +EXPORT_SYMBOL vmlinux 0x81ae9da9 read_code +EXPORT_SYMBOL vmlinux 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81fee640 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x820dd78a zerocopy_sg_from_iovec +EXPORT_SYMBOL vmlinux 0x820e88d4 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x8222a547 kmalloc_dma_caches +EXPORT_SYMBOL vmlinux 0x824a4367 tmio_core_mmc_pwr +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x827ce428 snd_pcm_limit_hw_rates +EXPORT_SYMBOL vmlinux 0x828062b1 __frontswap_init +EXPORT_SYMBOL vmlinux 0x8282d1a8 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x8284f6eb would_dump +EXPORT_SYMBOL vmlinux 0x828eca99 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x82a80c37 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x82aa9fae blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82bb6361 unlock_rename +EXPORT_SYMBOL vmlinux 0x82e1a034 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x82f710e3 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0x8320bea8 __umodsi3 +EXPORT_SYMBOL vmlinux 0x83211609 up_write +EXPORT_SYMBOL vmlinux 0x8338eea0 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x83975ba8 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83c8db9e snd_timer_continue +EXPORT_SYMBOL vmlinux 0x83cb77bd should_remove_suid +EXPORT_SYMBOL vmlinux 0x83d85d5a arp_invalidate +EXPORT_SYMBOL vmlinux 0x83e88498 from_kprojid_munged +EXPORT_SYMBOL vmlinux 0x83e8932e ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0x83eb9043 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x84012932 dget_parent +EXPORT_SYMBOL vmlinux 0x84107ac2 nf_nat_decode_session_hook +EXPORT_SYMBOL vmlinux 0x841962f8 param_get_ushort +EXPORT_SYMBOL vmlinux 0x842395b6 seq_vprintf +EXPORT_SYMBOL vmlinux 0x8457cd19 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x845aade3 phy_device_create +EXPORT_SYMBOL vmlinux 0x845ae3d5 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x84835fc9 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x849c285b devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x84af8c9e xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84eca2da ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0x84fd35b4 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x84ffea8b idr_preload +EXPORT_SYMBOL vmlinux 0x850058b4 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x8504ef0e scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x8509c540 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0x8513073c sound_class +EXPORT_SYMBOL vmlinux 0x8518eca9 param_get_short +EXPORT_SYMBOL vmlinux 0x851a9851 blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0x852c1d58 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x853bf7c1 param_set_int +EXPORT_SYMBOL vmlinux 0x853c04c7 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x853f7989 read_cache_page +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856cc5ed mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x8574913f generic_show_options +EXPORT_SYMBOL vmlinux 0x857f3b51 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85de5179 snd_pcm_hw_param_first +EXPORT_SYMBOL vmlinux 0x85df2824 dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e194b9 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85fcc14b ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0x85feb6ad dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x860ecc49 inode_permission +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866ac31d nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86a98f0c snd_ctl_boolean_mono_info +EXPORT_SYMBOL vmlinux 0x86aaf0c8 of_device_unregister +EXPORT_SYMBOL vmlinux 0x86de110f abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x86f89bf0 inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x873a3189 dma_mmap_from_coherent +EXPORT_SYMBOL vmlinux 0x8764c7b1 amba_device_unregister +EXPORT_SYMBOL vmlinux 0x87661b97 tc_classify +EXPORT_SYMBOL vmlinux 0x8779a34f param_ops_byte +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87939c18 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x8796435b phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x8798e453 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x87e1d472 aio_complete +EXPORT_SYMBOL vmlinux 0x87efb1d3 ipv4_specific +EXPORT_SYMBOL vmlinux 0x87efb979 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x87fa2db2 fget +EXPORT_SYMBOL vmlinux 0x880ae374 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8819b56e icmp_send +EXPORT_SYMBOL vmlinux 0x8827a2ce scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x882dab9d sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x8838ffcc security_path_unlink +EXPORT_SYMBOL vmlinux 0x88410f40 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x8842963c have_submounts +EXPORT_SYMBOL vmlinux 0x88459905 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x884ac41a of_phy_attach +EXPORT_SYMBOL vmlinux 0x88513970 param_set_byte +EXPORT_SYMBOL vmlinux 0x88615cc4 noop_qdisc +EXPORT_SYMBOL vmlinux 0x88720f6d __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x88beea4c neigh_ifdown +EXPORT_SYMBOL vmlinux 0x88c90a90 skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0x88d26f45 inode_dio_done +EXPORT_SYMBOL vmlinux 0x88d9b3f0 inet_add_offload +EXPORT_SYMBOL vmlinux 0x88f10a39 twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x8900cd12 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x890dc2ed idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x8918328e scsi_remove_host +EXPORT_SYMBOL vmlinux 0x89374c52 dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0x894802d7 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x8953f8ff __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x896965c9 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x8978dc86 blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0x8982a90c md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0x898fb954 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x89947b91 tc6393xb_lcd_set_power +EXPORT_SYMBOL vmlinux 0x89a64706 sk_filter +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89bb5826 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89de875e get_task_io_context +EXPORT_SYMBOL vmlinux 0x89e56569 bioset_free +EXPORT_SYMBOL vmlinux 0x89ee47db dev_printk_emit +EXPORT_SYMBOL vmlinux 0x89fb425b of_platform_device_create +EXPORT_SYMBOL vmlinux 0x89ffc936 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x8a0f4230 rename_lock +EXPORT_SYMBOL vmlinux 0x8a12949d phy_find_first +EXPORT_SYMBOL vmlinux 0x8a1ab4ee timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8a21ce1f ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x8a292120 sock_no_connect +EXPORT_SYMBOL vmlinux 0x8a3b85fe udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x8a424f95 free_user_ns +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a4fa83b __aeabi_llsr +EXPORT_SYMBOL vmlinux 0x8a51d565 quota_send_warning +EXPORT_SYMBOL vmlinux 0x8a569d8c snd_jack_set_key +EXPORT_SYMBOL vmlinux 0x8a723910 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a83a6bd mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8a9a73a4 notify_change +EXPORT_SYMBOL vmlinux 0x8a9da404 phy_connect +EXPORT_SYMBOL vmlinux 0x8abf0f65 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x8b0abaaa splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b43159b register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x8b547e83 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b6bb7fd generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x8b6ceecb neigh_destroy +EXPORT_SYMBOL vmlinux 0x8b923be7 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x8b98eef1 udp_del_offload +EXPORT_SYMBOL vmlinux 0x8ba472c2 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x8ba47f75 input_set_keycode +EXPORT_SYMBOL vmlinux 0x8c10ba9f sock_rfree +EXPORT_SYMBOL vmlinux 0x8c2b60f9 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x8c3e33bd netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x8c470693 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x8c637d43 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x8c7f77c3 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x8c8091b5 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL vmlinux 0x8c8f34bd mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x8caa8b2f cdev_init +EXPORT_SYMBOL vmlinux 0x8ce99f8d truncate_pagecache +EXPORT_SYMBOL vmlinux 0x8d1b52f9 input_inject_event +EXPORT_SYMBOL vmlinux 0x8d29d4d0 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x8d2e268b param_ops_ulong +EXPORT_SYMBOL vmlinux 0x8d4621ea open_exec +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d6b7efd proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper +EXPORT_SYMBOL vmlinux 0x8d8b6353 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x8d96817e free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x8dcff6e2 __pv_offset +EXPORT_SYMBOL vmlinux 0x8dea7276 balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0x8df249d3 netlink_capable +EXPORT_SYMBOL vmlinux 0x8e0d66f4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x8e1e703d generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x8e395ab9 generic_fillattr +EXPORT_SYMBOL vmlinux 0x8e3eaeeb __devm_release_region +EXPORT_SYMBOL vmlinux 0x8e541cc0 netdev_printk +EXPORT_SYMBOL vmlinux 0x8e5c580a ida_init +EXPORT_SYMBOL vmlinux 0x8e5d02b5 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x8e5d987c scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x8e6b27d8 elv_add_request +EXPORT_SYMBOL vmlinux 0x8e8513f5 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x8e864a86 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x8e865d3c arm_delay_ops +EXPORT_SYMBOL vmlinux 0x8e877cfa end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x8e884f7e delete_from_page_cache +EXPORT_SYMBOL vmlinux 0x8e966884 input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x8eb0c09e mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x8ebd6d6d tcp_prequeue +EXPORT_SYMBOL vmlinux 0x8ed63ec5 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x8f045d1c cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x8f2c7e80 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x8f595b11 snd_major +EXPORT_SYMBOL vmlinux 0x8f678b07 __stack_chk_guard +EXPORT_SYMBOL vmlinux 0x8fa02246 amba_find_device +EXPORT_SYMBOL vmlinux 0x8faa4598 of_translate_address +EXPORT_SYMBOL vmlinux 0x8faef182 dev_change_carrier +EXPORT_SYMBOL vmlinux 0x8fbdf9cb load_nls_default +EXPORT_SYMBOL vmlinux 0x8fc68e0f bdi_destroy +EXPORT_SYMBOL vmlinux 0x8fcc1378 simple_getattr +EXPORT_SYMBOL vmlinux 0x8fd180e7 kernel_neon_begin +EXPORT_SYMBOL vmlinux 0x8fdc71c8 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x8fe32ec6 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x903233d4 set_create_files_as +EXPORT_SYMBOL vmlinux 0x90338949 vfs_readlink +EXPORT_SYMBOL vmlinux 0x9036e004 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x9047a97c call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x907141aa sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x908b53ed param_set_short +EXPORT_SYMBOL vmlinux 0x9096e0c0 __elv_add_request +EXPORT_SYMBOL vmlinux 0x9096fc02 stop_tty +EXPORT_SYMBOL vmlinux 0x90bb3202 inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x90c2daa3 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x90c5e819 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x90ca8d03 lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x912b3a41 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x9164fac7 write_inode_now +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x919029aa __readwrite_bug +EXPORT_SYMBOL vmlinux 0x91917627 dcb_getapp +EXPORT_SYMBOL vmlinux 0x91aec064 down_read_trylock +EXPORT_SYMBOL vmlinux 0x91c0980e icst_hz +EXPORT_SYMBOL vmlinux 0x91d51793 tty_port_put +EXPORT_SYMBOL vmlinux 0x91e66a8f genphy_read_status +EXPORT_SYMBOL vmlinux 0x91f8578a skb_unlink +EXPORT_SYMBOL vmlinux 0x91fd52b4 tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0x920880db snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL vmlinux 0x920eb90c interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x9227247d phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0x923a95c2 __netif_schedule +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x924741c7 bdev_read_only +EXPORT_SYMBOL vmlinux 0x925520d2 blk_start_plug +EXPORT_SYMBOL vmlinux 0x925a6b47 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x926f7b91 fget_light +EXPORT_SYMBOL vmlinux 0x9272dff0 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x92743ca9 simple_write_end +EXPORT_SYMBOL vmlinux 0x929d8289 kthread_stop +EXPORT_SYMBOL vmlinux 0x92a9c60c time_to_tm +EXPORT_SYMBOL vmlinux 0x92b1ef34 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x92bbd0ed eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x92c93f0f do_truncate +EXPORT_SYMBOL vmlinux 0x92fb197a __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x92ff7c90 skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x930f48a9 nobh_write_end +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x933474ac dev_set_group +EXPORT_SYMBOL vmlinux 0x934eceac sys_imageblit +EXPORT_SYMBOL vmlinux 0x936170a5 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid +EXPORT_SYMBOL vmlinux 0x9378343e dev_uc_add +EXPORT_SYMBOL vmlinux 0x937e0d4b devm_iounmap +EXPORT_SYMBOL vmlinux 0x93946c9c tty_port_hangup +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93b8805b dev_uc_flush +EXPORT_SYMBOL vmlinux 0x93cca2ae d_move +EXPORT_SYMBOL vmlinux 0x93ccc648 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x93dd151c lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0x93f1e569 elv_register_queue +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x94041994 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x94098ff8 snd_interval_list +EXPORT_SYMBOL vmlinux 0x941122dc seq_release +EXPORT_SYMBOL vmlinux 0x94153303 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x941b0d2b inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x943072f4 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x94397002 snd_card_set_id +EXPORT_SYMBOL vmlinux 0x944bfa52 snd_pcm_new +EXPORT_SYMBOL vmlinux 0x944ef5a0 genphy_setup_forced +EXPORT_SYMBOL vmlinux 0x9460dddf phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x946abb55 __inode_permission +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94bbb990 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x94d3da68 rtc_lock +EXPORT_SYMBOL vmlinux 0x9508f166 param_ops_bint +EXPORT_SYMBOL vmlinux 0x9516e9a0 inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x952c3d66 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954d5102 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0x9553539b dev_crit +EXPORT_SYMBOL vmlinux 0x9556b329 snd_unregister_device +EXPORT_SYMBOL vmlinux 0x95615753 mmc_get_card +EXPORT_SYMBOL vmlinux 0x9561ad1a mpage_writepages +EXPORT_SYMBOL vmlinux 0x95622f41 down_timeout +EXPORT_SYMBOL vmlinux 0x9565f46b tcp_parse_options +EXPORT_SYMBOL vmlinux 0x95902165 clear_nlink +EXPORT_SYMBOL vmlinux 0x959395d1 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x959b709e netif_rx +EXPORT_SYMBOL vmlinux 0x959c80af sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x959f9f72 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x95cb929c of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x95dbe078 __get_user_2 +EXPORT_SYMBOL vmlinux 0x95e6e500 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x96033fa5 generic_setxattr +EXPORT_SYMBOL vmlinux 0x961299fd gen_pool_dma_alloc +EXPORT_SYMBOL vmlinux 0x9613509a idr_replace +EXPORT_SYMBOL vmlinux 0x961c7bfc led_set_brightness +EXPORT_SYMBOL vmlinux 0x9646da79 udp6_csum_init +EXPORT_SYMBOL vmlinux 0x965690f6 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x965e7068 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x967be944 vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0x96878098 dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x96c26c5d splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d8bf25 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x96e11a81 d_add_ci +EXPORT_SYMBOL vmlinux 0x96f57859 ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x97038f90 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x97238b9c sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x9761c8cd tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0x976c1ec7 snd_pcm_hw_refine +EXPORT_SYMBOL vmlinux 0x976e700f down_trylock +EXPORT_SYMBOL vmlinux 0x977397f0 devfreq_interval_update +EXPORT_SYMBOL vmlinux 0x97759076 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x97a60e3d param_get_bool +EXPORT_SYMBOL vmlinux 0x97b4500c __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x97c1e6d9 lockref_get_or_lock +EXPORT_SYMBOL vmlinux 0x97c6905d xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x97d15b49 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x97e957a7 build_skb +EXPORT_SYMBOL vmlinux 0x98082893 __copy_to_user +EXPORT_SYMBOL vmlinux 0x981302d3 tty_lock +EXPORT_SYMBOL vmlinux 0x981b30d8 sync_inode +EXPORT_SYMBOL vmlinux 0x9820b644 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x9850c351 dev_uc_del +EXPORT_SYMBOL vmlinux 0x986d7b06 __kfree_skb +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98825ef6 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x988b2951 netpoll_rx_enable +EXPORT_SYMBOL vmlinux 0x98ae14ca tty_throttle +EXPORT_SYMBOL vmlinux 0x98b2932f xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x98c01422 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x98c33ac6 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0x98c85d87 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x98d5e206 bio_split +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x9905aea3 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x9915fb34 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x993503ee __block_write_begin +EXPORT_SYMBOL vmlinux 0x99512745 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x99591a7a ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x996a53bd gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x996c4d30 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x997250d2 uart_register_driver +EXPORT_SYMBOL vmlinux 0x9984b229 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x9984e5c9 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999c3148 __raw_readsb +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a63f65 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99cc9a83 arp_find +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99f58330 lg_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x9a13827d snd_jack_new +EXPORT_SYMBOL vmlinux 0x9a1ce8f2 snd_pcm_hw_rule_add +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1fc4b4 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9a351186 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x9a59a546 vfs_link +EXPORT_SYMBOL vmlinux 0x9a5e59cf snd_timer_global_free +EXPORT_SYMBOL vmlinux 0x9a6e183a __idr_remove_all +EXPORT_SYMBOL vmlinux 0x9a8171ec kernel_getsockname +EXPORT_SYMBOL vmlinux 0x9a8318ef v7_coherent_kern_range +EXPORT_SYMBOL vmlinux 0x9a8b139d do_SAK +EXPORT_SYMBOL vmlinux 0x9a97caff eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x9abdce1e disk_stack_limits +EXPORT_SYMBOL vmlinux 0x9ad222f7 sock_alloc_file +EXPORT_SYMBOL vmlinux 0x9ad52562 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x9ad956ad padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x9aedb0f9 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x9b040309 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x9b0cd46e vm_insert_mixed +EXPORT_SYMBOL vmlinux 0x9b3097b0 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b4652f1 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b9e05f9 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bb4f5a2 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x9bbe4f85 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x9be7bde4 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x9bef401a scsi_remove_device +EXPORT_SYMBOL vmlinux 0x9c05e145 ip6_expire_frag_queue +EXPORT_SYMBOL vmlinux 0x9c080a8a genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x9c0bd51f _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x9c250836 kill_pgrp +EXPORT_SYMBOL vmlinux 0x9c361de4 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x9c368550 release_pages +EXPORT_SYMBOL vmlinux 0x9c3737fc __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c865180 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x9c9ec2a0 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9cad38bd snd_ctl_notify +EXPORT_SYMBOL vmlinux 0x9cb9f9ba pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0x9cba3c37 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x9cd0016a fput +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cee35b7 vlan_vid_del +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d05f6c4 ktime_get_clocktai +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d17fde7 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x9d29da60 skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d90f95f __crc32c_le_combine +EXPORT_SYMBOL vmlinux 0x9da4e374 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x9da669d7 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x9da8b451 mdiobus_free +EXPORT_SYMBOL vmlinux 0x9daf0db9 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x9dd695c9 nla_put +EXPORT_SYMBOL vmlinux 0x9dfe4dae vlan_uses_dev +EXPORT_SYMBOL vmlinux 0x9dfe7307 lz4_decompress_unknownoutputsize +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e0e8baf of_dev_put +EXPORT_SYMBOL vmlinux 0x9e1242f9 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x9e18c612 backlight_force_update +EXPORT_SYMBOL vmlinux 0x9e1f0a2a mmc_stop_bkops +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e44b9b7 of_get_next_available_child +EXPORT_SYMBOL vmlinux 0x9e493053 ip_check_defrag +EXPORT_SYMBOL vmlinux 0x9e4b3747 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL vmlinux 0x9e90d1b2 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ebb28e7 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ecc6a7a interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x9ed2eec7 param_set_ushort +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f491e5d ftrace_print_symbols_seq_u64 +EXPORT_SYMBOL vmlinux 0x9f519584 tty_vhangup +EXPORT_SYMBOL vmlinux 0x9f5477e7 netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0x9f55a24f dma_common_get_sgtable +EXPORT_SYMBOL vmlinux 0x9f6c4c8c eth_validate_addr +EXPORT_SYMBOL vmlinux 0x9f74e71a devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0x9f820ecb xfrm_register_type +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fbc2f59 pps_lookup_dev +EXPORT_SYMBOL vmlinux 0x9fbf47c5 snd_dma_free_pages +EXPORT_SYMBOL vmlinux 0x9fc8fe78 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x9fc90305 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fec98a7 sk_alloc +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0xa00709fe key_task_permission +EXPORT_SYMBOL vmlinux 0xa01d900e mmc_gpio_free_cd +EXPORT_SYMBOL vmlinux 0xa038dd2a dev_get_stats +EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa051fd9b vfs_read +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa08c5a01 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xa0966e4b unregister_shrinker +EXPORT_SYMBOL vmlinux 0xa0a03437 always_delete_dentry +EXPORT_SYMBOL vmlinux 0xa0a83d4d mem_map +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0dad88e netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa11d4227 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa155e106 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xa1654101 generic_read_dir +EXPORT_SYMBOL vmlinux 0xa1940086 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1d55e90 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xa1ea2abb skb_free_datagram +EXPORT_SYMBOL vmlinux 0xa1f0ebea bit_waitqueue +EXPORT_SYMBOL vmlinux 0xa20c3909 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa250b051 pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0xa2559227 bprm_change_interp +EXPORT_SYMBOL vmlinux 0xa25c2864 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xa2769b7c __cleancache_invalidate_page +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL vmlinux 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL vmlinux 0xa2b14739 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xa2cb662a scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa30bcd89 netlink_ack +EXPORT_SYMBOL vmlinux 0xa332464a of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL vmlinux 0xa34163e9 serio_rescan +EXPORT_SYMBOL vmlinux 0xa342ffc1 scsi_register +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa37264bc ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0xa37a8d9a jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xa381944f dql_reset +EXPORT_SYMBOL vmlinux 0xa39f82a3 mtd_concat_destroy +EXPORT_SYMBOL vmlinux 0xa3b645b1 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xa3c5700d block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xa3e9e795 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xa3f35bf5 rwsem_is_locked +EXPORT_SYMBOL vmlinux 0xa4013d81 seq_escape +EXPORT_SYMBOL vmlinux 0xa40f3b5c lock_rename +EXPORT_SYMBOL vmlinux 0xa41350aa __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xa414882d add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xa43b1297 vscnprintf +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa4701e9e timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0xa48124d4 gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0xa4879557 snd_timer_stop +EXPORT_SYMBOL vmlinux 0xa4af5f2c mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xa4c33d83 uart_get_divisor +EXPORT_SYMBOL vmlinux 0xa4d01fae __nla_reserve +EXPORT_SYMBOL vmlinux 0xa5083877 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xa546089c inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0xa55118ca swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa58fea9d mempool_destroy +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5aad720 kmap_high +EXPORT_SYMBOL vmlinux 0xa5e232aa phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xa6059bf0 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xa614666e __destroy_inode +EXPORT_SYMBOL vmlinux 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL vmlinux 0xa63a2f9b param_get_ulong +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa63dd009 blk_mq_insert_request +EXPORT_SYMBOL vmlinux 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL vmlinux 0xa6715115 do_settimeofday +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6965a65 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa6bab23d dqstats +EXPORT_SYMBOL vmlinux 0xa6bbd663 scsi_register_interface +EXPORT_SYMBOL vmlinux 0xa6bf16c2 sk_common_release +EXPORT_SYMBOL vmlinux 0xa6cbf95d phy_get_eee_err +EXPORT_SYMBOL vmlinux 0xa6db3597 page_readlink +EXPORT_SYMBOL vmlinux 0xa6eccace max8925_set_bits +EXPORT_SYMBOL vmlinux 0xa70c2e08 scsi_unregister +EXPORT_SYMBOL vmlinux 0xa72b772d seq_pad +EXPORT_SYMBOL vmlinux 0xa72c4709 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xa734a3e9 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xa7352687 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0xa735db59 prandom_u32 +EXPORT_SYMBOL vmlinux 0xa73fc98f of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xa77a369d idr_init +EXPORT_SYMBOL vmlinux 0xa7a48c09 cpu_user +EXPORT_SYMBOL vmlinux 0xa7bb35e0 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xa7dccae9 snd_card_unref +EXPORT_SYMBOL vmlinux 0xa7f1dfaf snd_ctl_find_numid +EXPORT_SYMBOL vmlinux 0xa808bcb8 vexpress_config_wait +EXPORT_SYMBOL vmlinux 0xa818234e d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa82fefd8 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xa8301919 dev_deactivate +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa8475f25 noop_fsync +EXPORT_SYMBOL vmlinux 0xa8721b97 system_state +EXPORT_SYMBOL vmlinux 0xa87edab1 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xa889e8bc __breadahead +EXPORT_SYMBOL vmlinux 0xa8a285d0 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xa8a6f265 send_sig +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8a8110c kernel_neon_end +EXPORT_SYMBOL vmlinux 0xa8b47897 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xa8ef6b8f udplite_prot +EXPORT_SYMBOL vmlinux 0xa8f67b77 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa959a35d kill_fasync +EXPORT_SYMBOL vmlinux 0xa9985b39 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xa9aadc7b sock_create_kern +EXPORT_SYMBOL vmlinux 0xa9b63345 of_parse_phandle_with_fixed_args +EXPORT_SYMBOL vmlinux 0xa9e3f79e udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0xa9effda5 __first_cpu +EXPORT_SYMBOL vmlinux 0xaa134ba5 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xaa1bfb7e kmem_cache_create +EXPORT_SYMBOL vmlinux 0xaa3db647 jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0xaa4693c0 read_cache_page_async +EXPORT_SYMBOL vmlinux 0xaa4b167a netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0xaa68a37d vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa6bf4cb tty_port_open +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa83e70c netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0xaa9087c0 param_ops_string +EXPORT_SYMBOL vmlinux 0xaaade5e9 netlink_set_err +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaae01c94 pskb_expand_head +EXPORT_SYMBOL vmlinux 0xaaebd426 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab0a7600 truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0xab3b0340 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xab47ed69 new_inode +EXPORT_SYMBOL vmlinux 0xab5494a8 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xab581c16 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab62866f mmc_read_bkops_status +EXPORT_SYMBOL vmlinux 0xab694444 bsearch +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xab79d4ff lock_sock_nested +EXPORT_SYMBOL vmlinux 0xab86d4dd netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0xab9a612e __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0xaba7c86a inet_ioctl +EXPORT_SYMBOL vmlinux 0xabb030c5 fb_class +EXPORT_SYMBOL vmlinux 0xabb27bab alloc_disk +EXPORT_SYMBOL vmlinux 0xabbf2ad9 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xabc6dd63 cpufreq_sysfs_create_file +EXPORT_SYMBOL vmlinux 0xabcaa1fb tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac1ca507 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xac2379b1 generic_file_open +EXPORT_SYMBOL vmlinux 0xac389d46 snd_add_device_sysfs_file +EXPORT_SYMBOL vmlinux 0xac390091 dev_base_lock +EXPORT_SYMBOL vmlinux 0xac3d2bec cdev_alloc +EXPORT_SYMBOL vmlinux 0xac3d514c input_allocate_device +EXPORT_SYMBOL vmlinux 0xac5c0497 __getblk +EXPORT_SYMBOL vmlinux 0xac617ec1 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xac7abac8 input_register_handle +EXPORT_SYMBOL vmlinux 0xac8f37b2 outer_cache +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacb29ed1 simple_release_fs +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacea6a86 vm_map_ram +EXPORT_SYMBOL vmlinux 0xaceb5d3a dquot_acquire +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad46dec2 of_count_phandle_with_args +EXPORT_SYMBOL vmlinux 0xad4768aa may_umount +EXPORT_SYMBOL vmlinux 0xad6977f6 get_super_thawed +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xadb2d119 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0xadbee642 ppp_register_channel +EXPORT_SYMBOL vmlinux 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL vmlinux 0xadf06e60 textsearch_prepare +EXPORT_SYMBOL vmlinux 0xae08378f _dev_info +EXPORT_SYMBOL vmlinux 0xae1456ba __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xae16ec88 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0xae1c5518 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xae1e636e dev_load +EXPORT_SYMBOL vmlinux 0xae22219d request_key_async +EXPORT_SYMBOL vmlinux 0xae299d37 rtnl_notify +EXPORT_SYMBOL vmlinux 0xae34aa69 nf_log_set +EXPORT_SYMBOL vmlinux 0xae3a55e8 nand_scan +EXPORT_SYMBOL vmlinux 0xae3a9175 check_disk_size_change +EXPORT_SYMBOL vmlinux 0xae58c9e0 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xae5ec2db led_blink_set +EXPORT_SYMBOL vmlinux 0xae729e59 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0xae86c2b1 input_release_device +EXPORT_SYMBOL vmlinux 0xae8dfe96 kernel_sendpage +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaef74a28 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xaef79796 input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0xaeffd1d4 pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0xaf05b91b of_device_is_available +EXPORT_SYMBOL vmlinux 0xaf0c0826 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0xaf3180c5 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf50e76d elf_set_personality +EXPORT_SYMBOL vmlinux 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL vmlinux 0xaf6f49dc tcp_init_sock +EXPORT_SYMBOL vmlinux 0xaf7f72f4 netdev_change_features +EXPORT_SYMBOL vmlinux 0xaf88e748 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xaf8aa518 system_rev +EXPORT_SYMBOL vmlinux 0xaf901d63 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf9a7920 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xafad493b param_ops_ushort +EXPORT_SYMBOL vmlinux 0xafbb5d71 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xafc50c6d dm_unregister_target +EXPORT_SYMBOL vmlinux 0xafec7b82 drop_super +EXPORT_SYMBOL vmlinux 0xafeebd2e register_filesystem +EXPORT_SYMBOL vmlinux 0xb0009204 irq_to_desc +EXPORT_SYMBOL vmlinux 0xb00a17ed i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xb01fe1aa snd_ctl_boolean_stereo_info +EXPORT_SYMBOL vmlinux 0xb04cf0fe lg_local_unlock +EXPORT_SYMBOL vmlinux 0xb05f3075 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb07510be mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0ab8c43 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e2dce6 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xb0e64703 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xb0ffda2f blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xb1130fb3 tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb1304bfe of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb1746a70 skb_find_text +EXPORT_SYMBOL vmlinux 0xb178158b get_disk +EXPORT_SYMBOL vmlinux 0xb184a89e rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1badffc nlmsg_notify +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cf44df fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xb1d9aabd lg_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xb1db9e4e param_get_invbool +EXPORT_SYMBOL vmlinux 0xb1dc2cc8 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xb21f58fc netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0xb2434d75 tcf_hash_release +EXPORT_SYMBOL vmlinux 0xb244653b gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xb250b9f7 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb29ad94d snd_dma_alloc_pages_fallback +EXPORT_SYMBOL vmlinux 0xb2a316aa ata_std_end_eh +EXPORT_SYMBOL vmlinux 0xb2a4b923 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0xb2a7e8b8 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xb2a84f64 netif_carrier_on +EXPORT_SYMBOL vmlinux 0xb2b94674 __crc32c_le +EXPORT_SYMBOL vmlinux 0xb2bc6271 netdev_crit +EXPORT_SYMBOL vmlinux 0xb2be6e92 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xb2cf7660 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xb2d48a2e queue_work_on +EXPORT_SYMBOL vmlinux 0xb2d4b1a8 arm_dma_zone_size +EXPORT_SYMBOL vmlinux 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL vmlinux 0xb2e72cc1 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xb2ec7d12 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xb2fb526e ilookup +EXPORT_SYMBOL vmlinux 0xb33413dc inet6_del_offload +EXPORT_SYMBOL vmlinux 0xb3403486 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xb36b1445 serio_open +EXPORT_SYMBOL vmlinux 0xb3bfa2e3 __skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb430d8b5 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xb462316e pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb47c5fe1 fasync_helper +EXPORT_SYMBOL vmlinux 0xb4945504 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0xb497a40e __put_cred +EXPORT_SYMBOL vmlinux 0xb4a5b29f blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0xb4a8cba1 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL vmlinux 0xb517d02f skb_copy_bits +EXPORT_SYMBOL vmlinux 0xb5198b77 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xb5250ab2 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xb52d8917 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xb538ac05 skb_orphan_partial +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb55816bd seq_read +EXPORT_SYMBOL vmlinux 0xb57343c2 frontswap_shrink +EXPORT_SYMBOL vmlinux 0xb58facb2 gen10g_config_advert +EXPORT_SYMBOL vmlinux 0xb592e07b generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xb597d9ec mmc_can_reset +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5aad170 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xb5c00014 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0xb5c8d416 iget_locked +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5cd1691 vexpress_config_complete +EXPORT_SYMBOL vmlinux 0xb5d0abc6 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0xb5d9454c printk_emit +EXPORT_SYMBOL vmlinux 0xb5db3fb2 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xb619e722 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb6394d4b param_set_bint +EXPORT_SYMBOL vmlinux 0xb65facdd _snd_ctl_add_slave +EXPORT_SYMBOL vmlinux 0xb664cabf tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xb669937d n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xb66bf4c2 dm_io +EXPORT_SYMBOL vmlinux 0xb66f1d06 blk_start_queue +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb688d843 tcp_release_cb +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6a7a7f4 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xb6a93378 deactivate_super +EXPORT_SYMBOL vmlinux 0xb6b46a7c param_ops_int +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6e475ba handle_edge_irq +EXPORT_SYMBOL vmlinux 0xb70da583 block_read_full_page +EXPORT_SYMBOL vmlinux 0xb7471d45 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xb77131b1 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xb77505de dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0xb780305b bio_copy_user +EXPORT_SYMBOL vmlinux 0xb78bd231 __mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0xb7ad7e8b __nla_put +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7b9b0b7 tty_port_close_end +EXPORT_SYMBOL vmlinux 0xb7ba76c7 __aeabi_unwind_cpp_pr2 +EXPORT_SYMBOL vmlinux 0xb7f06e76 dev_addr_del +EXPORT_SYMBOL vmlinux 0xb81960ca snprintf +EXPORT_SYMBOL vmlinux 0xb819db12 skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb874b87a __clzsi2 +EXPORT_SYMBOL vmlinux 0xb8820e29 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xb88214ad tcp_disconnect +EXPORT_SYMBOL vmlinux 0xb8a0fc4a kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xb8a1d241 tty_do_resize +EXPORT_SYMBOL vmlinux 0xb8aadb4d tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xb8b8e412 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xb8c7e84f tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0xb8cc6f07 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xb8d73e97 param_set_uint +EXPORT_SYMBOL vmlinux 0xb8e877e7 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xb8f7183c md_flush_request +EXPORT_SYMBOL vmlinux 0xb8fb6081 mdio_bus_type +EXPORT_SYMBOL vmlinux 0xb93ece67 input_set_capability +EXPORT_SYMBOL vmlinux 0xb9550827 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xb95f98d6 _memset_io +EXPORT_SYMBOL vmlinux 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL vmlinux 0xb974038b kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0xb980a42b phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0xb987152f ip_options_compile +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb99dd2bb pm860x_set_bits +EXPORT_SYMBOL vmlinux 0xb9acd3d9 __put_user_2 +EXPORT_SYMBOL vmlinux 0xb9b2f006 sock_release +EXPORT_SYMBOL vmlinux 0xb9e2174a proc_set_size +EXPORT_SYMBOL vmlinux 0xb9e6b614 kmap_to_page +EXPORT_SYMBOL vmlinux 0xb9e8e2cc in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0xb9eb0c7a ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xba0987ab swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xba182923 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0xba456c87 ptp_clock_register +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba5c2678 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0xba86036a i2c_release_client +EXPORT_SYMBOL vmlinux 0xbaaa49c7 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0xbb069ac0 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xbb1372e2 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb3c1bd1 vfs_create +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb713e6d sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0xbb72d4fe __put_user_1 +EXPORT_SYMBOL vmlinux 0xbb75fbe6 cfb_imageblit +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbdfb6e0 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xbc030eca dentry_unhash +EXPORT_SYMBOL vmlinux 0xbc032a20 bdevname +EXPORT_SYMBOL vmlinux 0xbc10dd97 __put_user_4 +EXPORT_SYMBOL vmlinux 0xbc27a91e adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0xbc2c6068 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xbc3501d1 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0xbc555fe9 __d_drop +EXPORT_SYMBOL vmlinux 0xbc965e1a generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xbcac998d ip_getsockopt +EXPORT_SYMBOL vmlinux 0xbcc106db uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcd58494 mntget +EXPORT_SYMBOL vmlinux 0xbcdb640e iget5_locked +EXPORT_SYMBOL vmlinux 0xbcdcdcfa textsearch_unregister +EXPORT_SYMBOL vmlinux 0xbcdedba7 of_get_mac_address +EXPORT_SYMBOL vmlinux 0xbce3b18d put_io_context +EXPORT_SYMBOL vmlinux 0xbce8a632 tcp_proto_cgroup +EXPORT_SYMBOL vmlinux 0xbced1ed5 pps_unregister_source +EXPORT_SYMBOL vmlinux 0xbd024119 kdb_current_task +EXPORT_SYMBOL vmlinux 0xbd26969c inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0xbd36dee2 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0xbd43733e __genl_register_family +EXPORT_SYMBOL vmlinux 0xbd43e6f3 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xbd4a22df flush_old_exec +EXPORT_SYMBOL vmlinux 0xbd6955f5 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xbd84ba0e d_drop +EXPORT_SYMBOL vmlinux 0xbd954070 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0xbd95558f rtnl_create_link +EXPORT_SYMBOL vmlinux 0xbd96c85a vexpress_config_write +EXPORT_SYMBOL vmlinux 0xbd9dfa0c dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0xbda26885 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xbdac1eb7 lockref_get +EXPORT_SYMBOL vmlinux 0xbdba9828 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0xbdc071e6 __lock_buffer +EXPORT_SYMBOL vmlinux 0xbdd44d91 names_cachep +EXPORT_SYMBOL vmlinux 0xbdedb6b2 irq_stat +EXPORT_SYMBOL vmlinux 0xbdf2580d __raw_readsl +EXPORT_SYMBOL vmlinux 0xbdfb6466 sk_ns_capable +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe1922fe devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0xbe22acf6 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xbe28eb2f empty_aops +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbea07ea3 simple_lookup +EXPORT_SYMBOL vmlinux 0xbeaff17a simple_setattr +EXPORT_SYMBOL vmlinux 0xbeb3ae91 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xbeb9e83e elevator_alloc +EXPORT_SYMBOL vmlinux 0xbec1bbbf fb_set_cmap +EXPORT_SYMBOL vmlinux 0xbec25473 of_parse_phandle +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf023159 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xbf07b6e6 dev_open +EXPORT_SYMBOL vmlinux 0xbf1a51b3 devm_free_irq +EXPORT_SYMBOL vmlinux 0xbf1f58c0 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xbf451627 tcf_register_action +EXPORT_SYMBOL vmlinux 0xbf6e58cd sock_update_memcg +EXPORT_SYMBOL vmlinux 0xbf7036a0 page_symlink +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfb384c7 __f_setown +EXPORT_SYMBOL vmlinux 0xbfb58916 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0xbfd0ae59 dm_get_device +EXPORT_SYMBOL vmlinux 0xbfe5c7ba seq_putc +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff264cd blk_recount_segments +EXPORT_SYMBOL vmlinux 0xc001c827 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xc0056be5 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xc01691c9 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xc01f2e95 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc040606b __skb_tx_hash +EXPORT_SYMBOL vmlinux 0xc05347ea elv_rb_find +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc072f5d8 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc07dcb78 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc09abe1d wireless_spy_update +EXPORT_SYMBOL vmlinux 0xc0a1afd0 path_put +EXPORT_SYMBOL vmlinux 0xc0a64494 dev_mc_del +EXPORT_SYMBOL vmlinux 0xc0a98385 profile_pc +EXPORT_SYMBOL vmlinux 0xc0bbe2db revert_creds +EXPORT_SYMBOL vmlinux 0xc0ce25d3 d_lookup +EXPORT_SYMBOL vmlinux 0xc119f228 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xc1268585 netdev_state_change +EXPORT_SYMBOL vmlinux 0xc12e0270 mdiobus_read +EXPORT_SYMBOL vmlinux 0xc12ec3a6 dns_query +EXPORT_SYMBOL vmlinux 0xc133a6cb dquot_resume +EXPORT_SYMBOL vmlinux 0xc13d9f8a snd_pcm_kernel_ioctl +EXPORT_SYMBOL vmlinux 0xc1841477 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xc18d48e5 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xc1945c8c cont_write_begin +EXPORT_SYMBOL vmlinux 0xc19a19ed __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xc1a8310c arp_xmit +EXPORT_SYMBOL vmlinux 0xc1a85c04 audit_log +EXPORT_SYMBOL vmlinux 0xc1b82d22 register_shrinker +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1c4d560 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xc205523e input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0xc214e3e7 skb_clone +EXPORT_SYMBOL vmlinux 0xc2165d85 __arm_iounmap +EXPORT_SYMBOL vmlinux 0xc233a943 clk_add_alias +EXPORT_SYMBOL vmlinux 0xc23d728c da903x_query_status +EXPORT_SYMBOL vmlinux 0xc244dcfc xfrm_init_state +EXPORT_SYMBOL vmlinux 0xc2464085 amba_driver_unregister +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc268a491 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xc286c081 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xc2950736 snd_ctl_remove +EXPORT_SYMBOL vmlinux 0xc2960a36 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xc2c59dca scsi_device_put +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2db82e6 freezing_slow_path +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f9c045 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xc311166d snd_card_register +EXPORT_SYMBOL vmlinux 0xc340afe8 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xc34e2db8 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xc3512361 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xc359eb78 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xc359fb65 abort +EXPORT_SYMBOL vmlinux 0xc36a2d1d filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xc36d158a block_write_end +EXPORT_SYMBOL vmlinux 0xc3836ab1 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xc38b8c82 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xc3a8c2ad nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xc3cac7e5 bdi_init +EXPORT_SYMBOL vmlinux 0xc3f2f0d5 audit_log_start +EXPORT_SYMBOL vmlinux 0xc4124ba9 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xc41f0516 node_states +EXPORT_SYMBOL vmlinux 0xc4588fef register_gifconf +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4b615e3 inet_del_offload +EXPORT_SYMBOL vmlinux 0xc4cd99bc posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xc4f47770 igrab +EXPORT_SYMBOL vmlinux 0xc5243422 dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0xc527e44a netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0xc532c69a unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0xc53ee9d9 complete_request_key +EXPORT_SYMBOL vmlinux 0xc54a6f24 i2c_master_send +EXPORT_SYMBOL vmlinux 0xc55f6fb4 empty_zero_page +EXPORT_SYMBOL vmlinux 0xc579d874 get_tz_trend +EXPORT_SYMBOL vmlinux 0xc589e044 param_set_long +EXPORT_SYMBOL vmlinux 0xc5a09a43 arp_send +EXPORT_SYMBOL vmlinux 0xc5a0b7ce netdev_warn +EXPORT_SYMBOL vmlinux 0xc5dd15d9 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xc5dd2410 twl6040_set_pll +EXPORT_SYMBOL vmlinux 0xc5fdef94 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xc61bc012 snd_info_create_module_entry +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc664c937 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xc665d6d7 of_parse_phandle_with_args +EXPORT_SYMBOL vmlinux 0xc69ed3f8 napi_complete +EXPORT_SYMBOL vmlinux 0xc6b691b9 neigh_connected_output +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6dd2a58 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xc6e4f87e __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc725555b of_get_min_tck +EXPORT_SYMBOL vmlinux 0xc74370fa kunmap_high +EXPORT_SYMBOL vmlinux 0xc745b922 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xc76ef8cf __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0xc76f295c fb_set_var +EXPORT_SYMBOL vmlinux 0xc77b64de skb_queue_head +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7bcbc8d add_wait_queue +EXPORT_SYMBOL vmlinux 0xc7cbd30f sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0xc7d262ec mmc_gpio_request_cd +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc810e78d key_alloc +EXPORT_SYMBOL vmlinux 0xc818ae53 seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0xc8276a79 nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xc8339e24 string_unescape +EXPORT_SYMBOL vmlinux 0xc83b4d5b posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc84b9bc4 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xc868c75e km_report +EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0xc885d3ac vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xc88db544 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8b6c9c8 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xc8bb6ed8 done_path_create +EXPORT_SYMBOL vmlinux 0xc8cdfc8a vfs_fsync +EXPORT_SYMBOL vmlinux 0xc8d9811c bio_alloc_pages +EXPORT_SYMBOL vmlinux 0xc8fea527 finish_no_open +EXPORT_SYMBOL vmlinux 0xc90d7f81 inet_frag_find +EXPORT_SYMBOL vmlinux 0xc9195ddd blkdev_fsync +EXPORT_SYMBOL vmlinux 0xc9263356 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xc927777f elv_rb_add +EXPORT_SYMBOL vmlinux 0xc962f06d snd_register_device_for_dev +EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0xc965a50a scsi_finish_command +EXPORT_SYMBOL vmlinux 0xc9944983 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9bbb713 vexpress_config_bridge_register +EXPORT_SYMBOL vmlinux 0xc9c40151 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0xc9cf3dbd fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xc9f83604 dev_get_flags +EXPORT_SYMBOL vmlinux 0xca2b17be ether_setup +EXPORT_SYMBOL vmlinux 0xca3cc1c3 snd_pcm_debug_name +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca60cd02 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xca75788b dev_addr_add +EXPORT_SYMBOL vmlinux 0xca84287a user_path_create +EXPORT_SYMBOL vmlinux 0xca86936a skb_queue_purge +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xcaa419f2 __register_binfmt +EXPORT_SYMBOL vmlinux 0xcaab6837 tcp_child_process +EXPORT_SYMBOL vmlinux 0xcaee7b97 netdev_notice +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb0c5d50 param_get_uint +EXPORT_SYMBOL vmlinux 0xcb2e1dee __dst_free +EXPORT_SYMBOL vmlinux 0xcb3bc256 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xcb3c6576 snd_dma_reserve_buf +EXPORT_SYMBOL vmlinux 0xcb466063 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xcb6cf3c5 blk_mq_free_queue +EXPORT_SYMBOL vmlinux 0xcb716c63 sock_init_data +EXPORT_SYMBOL vmlinux 0xcb73bfea phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xcb8eb3fb dev_mc_add +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcc06f8c0 key_invalidate +EXPORT_SYMBOL vmlinux 0xcc1ced88 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc37f55c blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xcc4b84da of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc77386a mmc_remove_host +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc87e3be tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xcc8d0cd0 clear_inode +EXPORT_SYMBOL vmlinux 0xcc8df5a8 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0xcc8f4f0b capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0xcc948d5c snd_pcm_suspend_all +EXPORT_SYMBOL vmlinux 0xcca8e0ea bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xccc21f5e input_get_new_minor +EXPORT_SYMBOL vmlinux 0xccc460aa bio_endio +EXPORT_SYMBOL vmlinux 0xccfad66a blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xcd1801bc netpoll_print_options +EXPORT_SYMBOL vmlinux 0xcd25324c inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd2ac1dc mdiobus_scan +EXPORT_SYMBOL vmlinux 0xcd30b95a tmio_core_mmc_clk_div +EXPORT_SYMBOL vmlinux 0xcd36d6eb ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0xcd3eec33 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xcd3f2114 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0xcd63c845 __aeabi_lasr +EXPORT_SYMBOL vmlinux 0xcd8bb484 blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0xcda7c527 register_framebuffer +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcdfaceed make_kuid +EXPORT_SYMBOL vmlinux 0xce0938ad xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xce17cc49 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce2a5f60 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL vmlinux 0xce4a6053 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xce575e21 release_sock +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce5c127b bio_sector_offset +EXPORT_SYMBOL vmlinux 0xce856eea tcf_hash_create +EXPORT_SYMBOL vmlinux 0xcea1a690 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xcea6cca5 seq_open_private +EXPORT_SYMBOL vmlinux 0xceac628c input_reset_device +EXPORT_SYMBOL vmlinux 0xcecf7962 phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0xced41dd6 snd_pcm_link_rwlock +EXPORT_SYMBOL vmlinux 0xcee717fd __scsi_add_device +EXPORT_SYMBOL vmlinux 0xceead70a scsi_ioctl +EXPORT_SYMBOL vmlinux 0xceed7f85 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefc9c7f kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf085317 mmc_can_discard +EXPORT_SYMBOL vmlinux 0xcf29dbd5 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xcf4252bb path_get +EXPORT_SYMBOL vmlinux 0xcf44e04f snd_ctl_unregister_ioctl +EXPORT_SYMBOL vmlinux 0xcf4d6d4a mmc_free_host +EXPORT_SYMBOL vmlinux 0xcf655bcf pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xcf68f9c9 dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0xcf87b1d9 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0xcf88625f mempool_create_node +EXPORT_SYMBOL vmlinux 0xcf8cc8ac drop_nlink +EXPORT_SYMBOL vmlinux 0xcf9b1f2c blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xcfaaf4e8 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xcface13a skb_copy_expand +EXPORT_SYMBOL vmlinux 0xcfb7f65a dm_register_target +EXPORT_SYMBOL vmlinux 0xcfd5e1a9 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xcfdc990c mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0xcff6b676 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd00cb81f unload_nls +EXPORT_SYMBOL vmlinux 0xd00cd055 bio_integrity_free +EXPORT_SYMBOL vmlinux 0xd0167805 phy_init_eee +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd046c7e3 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xd0720a17 on_each_cpu_cond +EXPORT_SYMBOL vmlinux 0xd0755c6c release_firmware +EXPORT_SYMBOL vmlinux 0xd0a68ee2 register_netdev +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0b38806 skb_copy +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd100acbd _raw_write_lock +EXPORT_SYMBOL vmlinux 0xd1154249 snd_pcm_lib_readv +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd12c9bc2 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0xd15bd76b tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xd1816f32 frontswap_writethrough +EXPORT_SYMBOL vmlinux 0xd196c9be kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xd19f7686 ata_port_printk +EXPORT_SYMBOL vmlinux 0xd1b1f03b simple_map_init +EXPORT_SYMBOL vmlinux 0xd1b20411 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xd1bc68de snd_card_file_remove +EXPORT_SYMBOL vmlinux 0xd1c6c0ce poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xd1e132a1 ata_dev_printk +EXPORT_SYMBOL vmlinux 0xd1f68e17 lro_flush_all +EXPORT_SYMBOL vmlinux 0xd20d9876 tcp_check_req +EXPORT_SYMBOL vmlinux 0xd20ff741 d_genocide +EXPORT_SYMBOL vmlinux 0xd220cf8a jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0xd23cb377 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0xd24dda3c dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25cebf6 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd2770272 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd299fb12 sg_miter_next +EXPORT_SYMBOL vmlinux 0xd29d49c4 set_bdi_congested +EXPORT_SYMBOL vmlinux 0xd2ae0a44 keyring_alloc +EXPORT_SYMBOL vmlinux 0xd2af138b reservation_ww_class +EXPORT_SYMBOL vmlinux 0xd2d229ec mb_cache_create +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2ea5d8d ip6_frag_init +EXPORT_SYMBOL vmlinux 0xd2fb4a9d i2c_master_recv +EXPORT_SYMBOL vmlinux 0xd2fd92e4 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xd30e1fdb scsi_print_sense +EXPORT_SYMBOL vmlinux 0xd318fb25 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd332b295 d_instantiate +EXPORT_SYMBOL vmlinux 0xd3486d9d bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xd3586a71 __cleancache_invalidate_fs +EXPORT_SYMBOL vmlinux 0xd35bb9cf gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0xd3658590 mmc_can_erase +EXPORT_SYMBOL vmlinux 0xd37865bb swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xd3b101bf swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xd3dbfbc4 _find_first_zero_bit_le +EXPORT_SYMBOL vmlinux 0xd3dcab0b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xd3e5c765 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xd3e6f60d cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xd3f3d73b blk_mq_alloc_single_hw_queue +EXPORT_SYMBOL vmlinux 0xd4018344 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xd41d0630 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xd4387e23 dcb_setapp +EXPORT_SYMBOL vmlinux 0xd44fe1eb neigh_for_each +EXPORT_SYMBOL vmlinux 0xd451116c snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL vmlinux 0xd4669fad complete +EXPORT_SYMBOL vmlinux 0xd468c3cd bio_map_user +EXPORT_SYMBOL vmlinux 0xd4d696f9 serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0xd50c91af iget_failed +EXPORT_SYMBOL vmlinux 0xd52b0825 sk_dst_check +EXPORT_SYMBOL vmlinux 0xd52d8c21 dev_add_offload +EXPORT_SYMBOL vmlinux 0xd54ac985 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xd5719801 find_get_page +EXPORT_SYMBOL vmlinux 0xd575d660 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xd5976aa9 submit_bh +EXPORT_SYMBOL vmlinux 0xd5c5ff75 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd6009622 blk_stop_queue +EXPORT_SYMBOL vmlinux 0xd61347c6 register_sysctl +EXPORT_SYMBOL vmlinux 0xd614f9bb generic_write_checks +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd648e564 fb_match_mode +EXPORT_SYMBOL vmlinux 0xd66cb446 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd6a6d266 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xd6b5151d tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xd6b848c6 netlink_ns_capable +EXPORT_SYMBOL vmlinux 0xd6db1af0 dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7090a68 d_alloc_name +EXPORT_SYMBOL vmlinux 0xd7321c6a gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0xd732dc8a free_task +EXPORT_SYMBOL vmlinux 0xd7344802 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xd74289f9 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd75db372 devm_gpio_request +EXPORT_SYMBOL vmlinux 0xd764091e scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xd774e6ea set_groups +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd78025ae gen_pool_create +EXPORT_SYMBOL vmlinux 0xd79b1608 proc_create_data +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a6e925 __ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xd7ae2361 vexpress_config_bridge_unregister +EXPORT_SYMBOL vmlinux 0xd7af383f dquot_destroy +EXPORT_SYMBOL vmlinux 0xd7af659f prepare_binprm +EXPORT_SYMBOL vmlinux 0xd7b4599b __idr_get_new_above +EXPORT_SYMBOL vmlinux 0xd7d4449e mapping_tagged +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd7ffffd1 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xd80673d3 __bio_clone +EXPORT_SYMBOL vmlinux 0xd81cb8cf netif_carrier_off +EXPORT_SYMBOL vmlinux 0xd82545ae soft_cursor +EXPORT_SYMBOL vmlinux 0xd83d3643 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xd85833cb __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0xd85cd67e __wake_up +EXPORT_SYMBOL vmlinux 0xd87fa45a lease_modify +EXPORT_SYMBOL vmlinux 0xd880a8ee dquot_alloc +EXPORT_SYMBOL vmlinux 0xd89607ab dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0xd89de29c nf_getsockopt +EXPORT_SYMBOL vmlinux 0xd8c72cf0 ifla_policy +EXPORT_SYMBOL vmlinux 0xd8ded085 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8e59915 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0xd91243c4 devm_gpiod_get_index +EXPORT_SYMBOL vmlinux 0xd9282907 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd92d55f7 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xd96bf6a1 mdiobus_write +EXPORT_SYMBOL vmlinux 0xd975a7e2 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd98fb458 blk_integrity_register +EXPORT_SYMBOL vmlinux 0xd9a9bb30 getname +EXPORT_SYMBOL vmlinux 0xd9af4d27 generic_make_request +EXPORT_SYMBOL vmlinux 0xd9bbb503 neigh_direct_output +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9f224fb end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xd9f23299 dquot_operations +EXPORT_SYMBOL vmlinux 0xda2478d0 param_ops_short +EXPORT_SYMBOL vmlinux 0xda3514fc tcf_hash_search +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda47fc14 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xdaa16b82 of_clk_get +EXPORT_SYMBOL vmlinux 0xdaa21de0 key_unlink +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdaa6b5f5 padata_start +EXPORT_SYMBOL vmlinux 0xdaafc807 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0xdae9f0f1 fb_set_suspend +EXPORT_SYMBOL vmlinux 0xdaed1b99 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0xdb1ad020 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xdb3cb24c inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xdb3dcb2a __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xdb48cfb2 generic_setlease +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb9f0f07 i2c_del_driver +EXPORT_SYMBOL vmlinux 0xdba405bb sock_no_poll +EXPORT_SYMBOL vmlinux 0xdbba66c3 phy_print_status +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbd84d74 kobject_put +EXPORT_SYMBOL vmlinux 0xdbef9410 d_set_d_op +EXPORT_SYMBOL vmlinux 0xdbf9eb77 mmc_set_blockcount +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc0e12e6 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xdc12f510 pps_register_source +EXPORT_SYMBOL vmlinux 0xdc2b2ad7 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0xdc2e3190 sync_blockdev +EXPORT_SYMBOL vmlinux 0xdc31a209 replace_mount_options +EXPORT_SYMBOL vmlinux 0xdc3ad2ce kernel_write +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc65f293 nf_register_hook +EXPORT_SYMBOL vmlinux 0xdc6a9f5d phy_attach_direct +EXPORT_SYMBOL vmlinux 0xdcbb35b1 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xdcd52cad __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xdce306fe neigh_table_clear +EXPORT_SYMBOL vmlinux 0xdcf0a384 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xdd04f919 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd1c8ed1 ptp_clock_unregister +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd3916ac _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xdd56c6a1 mmc_start_bkops +EXPORT_SYMBOL vmlinux 0xdd82f35c put_disk +EXPORT_SYMBOL vmlinux 0xdddbc4b3 netdev_all_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0xdde95207 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xde0d11de kobject_add +EXPORT_SYMBOL vmlinux 0xde10eb10 param_set_invbool +EXPORT_SYMBOL vmlinux 0xde25119d kset_register +EXPORT_SYMBOL vmlinux 0xde38479d padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xde3ad426 bmap +EXPORT_SYMBOL vmlinux 0xde4eb417 scsi_device_get +EXPORT_SYMBOL vmlinux 0xde529a70 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xde651ed8 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xde90dd38 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xdea7837d flush_kernel_dcache_page +EXPORT_SYMBOL vmlinux 0xdedd510a touch_buffer +EXPORT_SYMBOL vmlinux 0xdeeae647 __get_user_pages +EXPORT_SYMBOL vmlinux 0xdf1f3ee4 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0xdf2a5fd4 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf3c6c3c __scsi_put_command +EXPORT_SYMBOL vmlinux 0xdf401846 idr_remove +EXPORT_SYMBOL vmlinux 0xdf430ba5 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xdf48a0eb flex_array_put +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf57e05a vm_iomap_memory +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf7ec60a __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfa16129 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xdfa29978 snd_ctl_free_one +EXPORT_SYMBOL vmlinux 0xdfb01a80 cpu_v7_dcache_clean_area +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfc685ab cdev_del +EXPORT_SYMBOL vmlinux 0xdfe000c5 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xe0034681 skb_seq_read +EXPORT_SYMBOL vmlinux 0xe012c76e neigh_seq_start +EXPORT_SYMBOL vmlinux 0xe0132109 mntput +EXPORT_SYMBOL vmlinux 0xe02ae13d kvm_read_guest_atomic +EXPORT_SYMBOL vmlinux 0xe02b0b7c mmc_release_host +EXPORT_SYMBOL vmlinux 0xe04243a5 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe05d98f8 update_devfreq +EXPORT_SYMBOL vmlinux 0xe05f984a mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe069ec56 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe079e806 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xe08cbc65 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bef318 icst_hz_to_vco +EXPORT_SYMBOL vmlinux 0xe0c94026 set_anon_super +EXPORT_SYMBOL vmlinux 0xe0f40fa6 sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0xe0f99a2f ida_pre_get +EXPORT_SYMBOL vmlinux 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe11581c9 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xe127fb18 down_killable +EXPORT_SYMBOL vmlinux 0xe12c2417 __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xe15c960d mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0xe1603961 kfree_skb +EXPORT_SYMBOL vmlinux 0xe16eeaef snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL vmlinux 0xe172318b blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe18db4fe lock_may_read +EXPORT_SYMBOL vmlinux 0xe19b92c9 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xe1bc6a71 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xe1c4dbb5 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0xe1cca678 nf_hook_slow +EXPORT_SYMBOL vmlinux 0xe1e2c52b mmc_cleanup_queue +EXPORT_SYMBOL vmlinux 0xe1f0ab3a _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe22420e2 mpage_readpage +EXPORT_SYMBOL vmlinux 0xe226c2f8 set_binfmt +EXPORT_SYMBOL vmlinux 0xe22ab9c7 snd_ctl_make_virtual_master +EXPORT_SYMBOL vmlinux 0xe231adc8 ata_link_printk +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe250937f inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0xe267200d blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xe29e1d0e out_of_line_wait_on_atomic_t +EXPORT_SYMBOL vmlinux 0xe2b7e333 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xe2c0bbf4 unregister_nls +EXPORT_SYMBOL vmlinux 0xe2cf14f6 ip6_xmit +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe3005bd0 phy_detach +EXPORT_SYMBOL vmlinux 0xe30a42fa end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xe314986f mount_pseudo +EXPORT_SYMBOL vmlinux 0xe31553dd blk_mq_init_commands +EXPORT_SYMBOL vmlinux 0xe3392024 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xe33b6995 blk_mq_map_queue +EXPORT_SYMBOL vmlinux 0xe35328ae put_page +EXPORT_SYMBOL vmlinux 0xe35c5285 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xe39532b6 filp_open +EXPORT_SYMBOL vmlinux 0xe39ea0f6 vc_cons +EXPORT_SYMBOL vmlinux 0xe3c1ae4b eth_change_mtu +EXPORT_SYMBOL vmlinux 0xe3c30aee follow_pfn +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3d7e4a6 keyring_search +EXPORT_SYMBOL vmlinux 0xe43274bc proc_dointvec +EXPORT_SYMBOL vmlinux 0xe4637ab0 nla_reserve +EXPORT_SYMBOL vmlinux 0xe49afdc7 md_register_thread +EXPORT_SYMBOL vmlinux 0xe4a2d272 of_device_register +EXPORT_SYMBOL vmlinux 0xe4a6c20f inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xe4aaa0d3 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xe4ab0887 dev_mc_init +EXPORT_SYMBOL vmlinux 0xe4b6799b tc_classify_compat +EXPORT_SYMBOL vmlinux 0xe4c80097 cacheid +EXPORT_SYMBOL vmlinux 0xe4d40c68 tty_devnum +EXPORT_SYMBOL vmlinux 0xe4da0740 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xe4f1b6ee of_dev_get +EXPORT_SYMBOL vmlinux 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL vmlinux 0xe500e032 dev_disable_lro +EXPORT_SYMBOL vmlinux 0xe507bfd2 generic_file_remap_pages +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe5147352 get_write_access +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52f1b57 tty_lock_pair +EXPORT_SYMBOL vmlinux 0xe53d1faa of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL vmlinux 0xe5713d3d mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe591ac1e __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xe59c4dec insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xe59cc023 dev_get_phys_port_id +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5d514a6 ptp_clock_event +EXPORT_SYMBOL vmlinux 0xe5e25d64 neigh_seq_next +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5f6637a remove_proc_subtree +EXPORT_SYMBOL vmlinux 0xe604ed7d install_exec_creds +EXPORT_SYMBOL vmlinux 0xe61ea638 tty_free_termios +EXPORT_SYMBOL vmlinux 0xe61fb7a8 remap_vmalloc_range_partial +EXPORT_SYMBOL vmlinux 0xe6290425 dev_printk +EXPORT_SYMBOL vmlinux 0xe63bc453 bio_add_page +EXPORT_SYMBOL vmlinux 0xe64f555f amba_device_register +EXPORT_SYMBOL vmlinux 0xe66452ab dql_init +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6a3af80 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL vmlinux 0xe6af954d bh_submit_read +EXPORT_SYMBOL vmlinux 0xe6c3ebb0 __raw_writesw +EXPORT_SYMBOL vmlinux 0xe6d764f8 bd_set_size +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6ec62fe bdi_register_dev +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe707d823 __aeabi_uidiv +EXPORT_SYMBOL vmlinux 0xe71bedaf mnt_unpin +EXPORT_SYMBOL vmlinux 0xe71fd33d ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xe721eb62 netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0xe735e9a7 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xe755555d register_nls +EXPORT_SYMBOL vmlinux 0xe75c2d61 pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0xe7722171 flex_array_free +EXPORT_SYMBOL vmlinux 0xe7769141 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xe785ac20 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0xe79e37c7 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7f843ea netif_napi_del +EXPORT_SYMBOL vmlinux 0xe8288374 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0xe84a2162 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0xe84ff541 dquot_quota_off +EXPORT_SYMBOL vmlinux 0xe851bb05 queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xe85fa39c input_event +EXPORT_SYMBOL vmlinux 0xe86e6469 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe879e058 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0xe8895099 qdisc_list_del +EXPORT_SYMBOL vmlinux 0xe898bfba crc32_le_combine +EXPORT_SYMBOL vmlinux 0xe89b874f inet_bind +EXPORT_SYMBOL vmlinux 0xe89fecb6 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xe8ab2105 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xe8acb052 skb_make_writable +EXPORT_SYMBOL vmlinux 0xe8b16b11 wake_up_process +EXPORT_SYMBOL vmlinux 0xe8b53ecc down_write_trylock +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8bea3bc qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xe8d46ba9 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xe90c5779 snd_pcm_lib_read +EXPORT_SYMBOL vmlinux 0xe912da6b unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91d750f may_umount_tree +EXPORT_SYMBOL vmlinux 0xe91db881 genl_notify +EXPORT_SYMBOL vmlinux 0xe94b0207 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe959392e set_blocksize +EXPORT_SYMBOL vmlinux 0xe962c6c2 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xe966094a ping_prot +EXPORT_SYMBOL vmlinux 0xe97d0701 consume_skb +EXPORT_SYMBOL vmlinux 0xe987d3df elv_rb_del +EXPORT_SYMBOL vmlinux 0xe9ba59ae elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xe9d2b3a9 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xe9d3a8c6 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL vmlinux 0xe9e0cb72 sk_capable +EXPORT_SYMBOL vmlinux 0xe9f4b14c freeze_super +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xe9ff5ad6 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea16dd4c tcp_destroy_cgroup +EXPORT_SYMBOL vmlinux 0xea320fc8 pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0xea36fd7c inode_set_bytes +EXPORT_SYMBOL vmlinux 0xea446756 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xea6e3003 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea7a90bb follow_down_one +EXPORT_SYMBOL vmlinux 0xea80394d snd_ctl_find_id +EXPORT_SYMBOL vmlinux 0xea811f5e posix_lock_file +EXPORT_SYMBOL vmlinux 0xeab07a30 snd_card_free +EXPORT_SYMBOL vmlinux 0xeac652af kernel_accept +EXPORT_SYMBOL vmlinux 0xeb019bbb ipmi_register_smi +EXPORT_SYMBOL vmlinux 0xeb30b6a0 __serio_register_port +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb55a931 __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xeb8653ce d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xeb869124 default_qdisc_ops +EXPORT_SYMBOL vmlinux 0xeb9e7cdd ida_destroy +EXPORT_SYMBOL vmlinux 0xebb91309 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebf03f97 snd_pcm_suspend +EXPORT_SYMBOL vmlinux 0xebfdcbdf system_serial_high +EXPORT_SYMBOL vmlinux 0xec17ebb0 of_match_node +EXPORT_SYMBOL vmlinux 0xec1aa6ef memzero_explicit +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec59105b netif_device_detach +EXPORT_SYMBOL vmlinux 0xec5a2b8d dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xec5c72cc phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xec81bfa7 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xec9148dd __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0xeca945ad security_path_mknod +EXPORT_SYMBOL vmlinux 0xecb40d09 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0xecb611b1 fbcon_rotate_ud +EXPORT_SYMBOL vmlinux 0xecd3e19f snd_pcm_hw_param_last +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xece907f4 generic_writepages +EXPORT_SYMBOL vmlinux 0xecea5fb5 blk_mq_can_queue +EXPORT_SYMBOL vmlinux 0xecedc9a1 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xed0b67c6 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xed227b5e mem_cgroup_subsys +EXPORT_SYMBOL vmlinux 0xed263d70 fbcon_rotate_ccw +EXPORT_SYMBOL vmlinux 0xed40b425 __bread +EXPORT_SYMBOL vmlinux 0xed597524 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xed5a1087 netif_napi_add +EXPORT_SYMBOL vmlinux 0xed763186 locks_init_lock +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xed9f9a20 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc56ef7 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xedc7f4ec dq_data_lock +EXPORT_SYMBOL vmlinux 0xedcc9286 revalidate_disk +EXPORT_SYMBOL vmlinux 0xedd5b37a sock_i_uid +EXPORT_SYMBOL vmlinux 0xedd9106d __ashrdi3 +EXPORT_SYMBOL vmlinux 0xedf154b4 pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0xee0586c3 snd_pcm_hw_constraint_step +EXPORT_SYMBOL vmlinux 0xee29b218 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee2dcacb vfs_unlink +EXPORT_SYMBOL vmlinux 0xee329f1b filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xee52d6db dquot_disable +EXPORT_SYMBOL vmlinux 0xee715ef8 lg_global_unlock +EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder +EXPORT_SYMBOL vmlinux 0xee97c54c net_dma_find_channel +EXPORT_SYMBOL vmlinux 0xeea7cd4a inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeec44f8f tcp_shutdown +EXPORT_SYMBOL vmlinux 0xeed3635b proc_dostring +EXPORT_SYMBOL vmlinux 0xeeddc097 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xeeedae77 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xeef161aa groups_free +EXPORT_SYMBOL vmlinux 0xeef6f8aa nonseekable_open +EXPORT_SYMBOL vmlinux 0xef0f32ee jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xef107774 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xef14c21e __dquot_transfer +EXPORT_SYMBOL vmlinux 0xef2b9953 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xef401414 snd_info_create_card_entry +EXPORT_SYMBOL vmlinux 0xef4aa104 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0xef52d685 scsi_target_resume +EXPORT_SYMBOL vmlinux 0xef9ed72a write_dirty_buffer +EXPORT_SYMBOL vmlinux 0xefa47032 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xefbd21a1 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xefcbf496 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xefcf3143 wait_for_completion_io +EXPORT_SYMBOL vmlinux 0xefd6cf06 __aeabi_unwind_cpp_pr0 +EXPORT_SYMBOL vmlinux 0xefd79a54 lro_receive_frags +EXPORT_SYMBOL vmlinux 0xefd90cc6 ipmi_smi_watcher_unregister +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf00cf4dd read_cache_pages +EXPORT_SYMBOL vmlinux 0xf0187927 __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0xf019ec65 blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0xf03e584f tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xf04a9633 devfreq_add_governor +EXPORT_SYMBOL vmlinux 0xf05729c0 inode_reclaim_rsv_space +EXPORT_SYMBOL vmlinux 0xf05cca66 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xf05ffa15 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xf0619801 timekeeping_clocktai +EXPORT_SYMBOL vmlinux 0xf06ae110 inet_sendpage +EXPORT_SYMBOL vmlinux 0xf087137d __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0xf092fb91 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xf099bf71 try_module_get +EXPORT_SYMBOL vmlinux 0xf09de776 get_random_int +EXPORT_SYMBOL vmlinux 0xf0a58f9e key_link +EXPORT_SYMBOL vmlinux 0xf0d68ed6 clk_register_clkdevs +EXPORT_SYMBOL vmlinux 0xf0e3ab00 md_error +EXPORT_SYMBOL vmlinux 0xf0e80752 blk_start_request +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0f76cd1 give_up_console +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf13feb57 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0xf147dcb2 hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0xf14dc155 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xf153e2df i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xf17dad45 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xf1806da9 idr_find_slowpath +EXPORT_SYMBOL vmlinux 0xf195bcc3 gen10g_config_aneg +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19e9355 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xf1a03611 scsi_print_command +EXPORT_SYMBOL vmlinux 0xf1a7e160 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0xf1ad5241 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1ea4cc5 security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0xf1f13368 tcp_sendpage +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf2131277 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf250ec32 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL vmlinux 0xf275365d fb_pan_display +EXPORT_SYMBOL vmlinux 0xf275af79 blk_run_queue_async +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a0af8f backlight_device_registered +EXPORT_SYMBOL vmlinux 0xf2b1ac8e __getnstimeofday +EXPORT_SYMBOL vmlinux 0xf2dade71 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf327fff2 ppp_input_error +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf334be2c cad_pid +EXPORT_SYMBOL vmlinux 0xf336cf2a dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf35b2d7a xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xf35c9a58 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xf363003d neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL vmlinux 0xf37ad401 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3c4dd61 neigh_update +EXPORT_SYMBOL vmlinux 0xf405a5fa do_splice_direct +EXPORT_SYMBOL vmlinux 0xf40b2297 __crypto_memneq +EXPORT_SYMBOL vmlinux 0xf41ea82f i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0xf4617bf8 make_kgid +EXPORT_SYMBOL vmlinux 0xf4672972 netdev_lower_dev_get_private_rcu +EXPORT_SYMBOL vmlinux 0xf4737dea input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0xf473ffaf down +EXPORT_SYMBOL vmlinux 0xf478bd0e led_blink_set_oneshot +EXPORT_SYMBOL vmlinux 0xf48e7114 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xf4b8a70f mark_page_accessed +EXPORT_SYMBOL vmlinux 0xf4bdbeb9 __frontswap_invalidate_area +EXPORT_SYMBOL vmlinux 0xf4c247b0 inode_get_bytes +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f2ac82 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0xf4f71fc3 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xf4fbd512 phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0xf4fc220f snd_timer_resolution +EXPORT_SYMBOL vmlinux 0xf503cf84 sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0xf50478c4 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xf50ad75a genphy_resume +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf541b574 snd_cards +EXPORT_SYMBOL vmlinux 0xf5464a68 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xf54fac0c dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xf5514ce0 ioremap_page +EXPORT_SYMBOL vmlinux 0xf5628a4b kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0xf564412a __aeabi_ulcmp +EXPORT_SYMBOL vmlinux 0xf589a0b3 block_truncate_page +EXPORT_SYMBOL vmlinux 0xf5951465 simple_open +EXPORT_SYMBOL vmlinux 0xf5b11912 alloc_file +EXPORT_SYMBOL vmlinux 0xf5bc63bf del_gendisk +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5e7a9b7 dquot_initialize +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5eed93f tty_unlock +EXPORT_SYMBOL vmlinux 0xf6259881 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xf62d17c5 try_to_release_page +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf6536877 unlock_page +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf6851d5f register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xf68687be __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6bbda72 lro_receive_skb +EXPORT_SYMBOL vmlinux 0xf6cbd033 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf707c873 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xf716d64b dquot_commit +EXPORT_SYMBOL vmlinux 0xf7273042 sock_kmalloc +EXPORT_SYMBOL vmlinux 0xf73a0f2a blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xf74b3431 skb_tx_error +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7802486 __aeabi_uidivmod +EXPORT_SYMBOL vmlinux 0xf7868efa audit_log_task_info +EXPORT_SYMBOL vmlinux 0xf786da99 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xf7aa0377 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xf7b12aee __next_cpu +EXPORT_SYMBOL vmlinux 0xf7c6acbf force_sig +EXPORT_SYMBOL vmlinux 0xf7c96b5d sk_free +EXPORT_SYMBOL vmlinux 0xf7dc4d31 __ww_mutex_lock +EXPORT_SYMBOL vmlinux 0xf7e0ec40 dentry_open +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf827cb83 free_reserved_area +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf838ec1a kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xf839836d __ip_dev_find +EXPORT_SYMBOL vmlinux 0xf83b5522 dump_emit +EXPORT_SYMBOL vmlinux 0xf843927e mnt_pin +EXPORT_SYMBOL vmlinux 0xf84b9d5d unregister_qdisc +EXPORT_SYMBOL vmlinux 0xf854dec9 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xf85bf051 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xf8734161 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xf873d829 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0xf8a264a0 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xf8a57167 dev_mc_sync +EXPORT_SYMBOL vmlinux 0xf8ce1716 dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0xf8e525ef invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xf8fbb4f0 __bad_xchg +EXPORT_SYMBOL vmlinux 0xf900da71 sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0xf9210dda kernel_read +EXPORT_SYMBOL vmlinux 0xf9263e5f unregister_quota_format +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf941dfe0 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xf94cdf64 inet_register_protosw +EXPORT_SYMBOL vmlinux 0xf9740f9a iterate_mounts +EXPORT_SYMBOL vmlinux 0xf98296d8 user_revoke +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9a861a7 dev_warn +EXPORT_SYMBOL vmlinux 0xf9c367e0 iov_pages +EXPORT_SYMBOL vmlinux 0xf9da5ae8 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xf9e73082 scnprintf +EXPORT_SYMBOL vmlinux 0xf9f39417 vm_mmap +EXPORT_SYMBOL vmlinux 0xf9fbf9de blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0xfa25f825 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xfa2aed9f request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xfa3dba01 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xfa58be88 __lru_cache_add +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa5fcd1e write_cache_pages +EXPORT_SYMBOL vmlinux 0xfa6e51d0 iterate_supers_type +EXPORT_SYMBOL vmlinux 0xfa7f3156 wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0xfa885370 jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0xfa97dc2f clocksource_register +EXPORT_SYMBOL vmlinux 0xfa98d512 dquot_enable +EXPORT_SYMBOL vmlinux 0xfac68eba arm_elf_read_implies_exec +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfacce091 scsi_put_command +EXPORT_SYMBOL vmlinux 0xfae47355 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xfae67b1f cap_mmap_addr +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfaf9995e sleep_on +EXPORT_SYMBOL vmlinux 0xfafeabbc sk_stream_error +EXPORT_SYMBOL vmlinux 0xfb0cecfd vm_event_states +EXPORT_SYMBOL vmlinux 0xfb0dd9fa unlock_new_inode +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb745f50 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0xfb7a45c9 register_cdrom +EXPORT_SYMBOL vmlinux 0xfb7d9c45 __udivsi3 +EXPORT_SYMBOL vmlinux 0xfb8ab6b5 md_write_end +EXPORT_SYMBOL vmlinux 0xfb94103e __clzdi2 +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc07d594 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xfc0db0ad tty_port_destroy +EXPORT_SYMBOL vmlinux 0xfc2dee97 __mutex_init +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc4ed6a0 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xfc65459a kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xfc77df42 proc_mkdir +EXPORT_SYMBOL vmlinux 0xfc8850e8 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xfc998393 registered_fb +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcc5da7b bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xfcd232f1 dquot_drop +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd305341 walk_stackframe +EXPORT_SYMBOL vmlinux 0xfd352585 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xfd4e7f68 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0xfd5683b9 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd99623a ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xfd999e64 input_unregister_handler +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfdad23dc generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xfdb7802a blkdev_put +EXPORT_SYMBOL vmlinux 0xfdc17f47 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0xfddffd70 snd_info_free_entry +EXPORT_SYMBOL vmlinux 0xfdf1bf61 __frontswap_load +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe09913c inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xfe0ad9df abort_creds +EXPORT_SYMBOL vmlinux 0xfe1f5050 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe6830c3 lock_sock_fast +EXPORT_SYMBOL vmlinux 0xfe6c865a security_path_link +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfea18a9e scsi_register_driver +EXPORT_SYMBOL vmlinux 0xfea8a7a0 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0xfed07b8f request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff064fee gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff1ec179 unregister_console +EXPORT_SYMBOL vmlinux 0xff2d19d0 dma_supported +EXPORT_SYMBOL vmlinux 0xff32fd92 inet_select_addr +EXPORT_SYMBOL vmlinux 0xff386904 of_phy_find_device +EXPORT_SYMBOL vmlinux 0xff426b14 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xff5bb5cf inet6_add_offload +EXPORT_SYMBOL vmlinux 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL vmlinux 0xff67b37f __lshrdi3 +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xff9f7d2d devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0xffa5f45b __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xffb28ae7 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xffb67513 sock_update_classid +EXPORT_SYMBOL vmlinux 0xffb94ef0 _test_and_change_bit +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffd83760 abx500_register_ops +EXPORT_SYMBOL vmlinux 0xffebdb04 of_phy_connect_fixed_link +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x3fb4cbc2 ablk_encrypt +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x3fc130d2 ablk_exit +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x81fd1c83 ablk_decrypt +EXPORT_SYMBOL_GPL crypto/ablk_helper 0xace1a3d8 ablk_init +EXPORT_SYMBOL_GPL crypto/ablk_helper 0xb3a3c98a ablk_init_common +EXPORT_SYMBOL_GPL crypto/ablk_helper 0xdf881a60 ablk_set_key +EXPORT_SYMBOL_GPL crypto/ablk_helper 0xfcaf4fd9 __ablk_encrypt +EXPORT_SYMBOL_GPL crypto/af_alg 0x09963c17 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x1d35d58f af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x69586318 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x6bc5d165 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x93957c0c af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xa6b08473 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xd954ef95 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0xea964fab af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0xff7ecefa af_alg_register_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xe1ee167d async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x609255d9 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xf01a3b25 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x296da010 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x41e89e83 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x1e962af6 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x57360f58 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x5c96bd21 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xa1b0ad1b async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x2a491853 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xe516b32c async_xor_val +EXPORT_SYMBOL_GPL crypto/authenc 0x587ef278 crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x11769065 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x27278ca9 __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x394b4554 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x4a2a3ca6 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x08b47b70 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1291971c __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1e2c961f __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x8f04034a __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast_common 0x08aa6fb7 cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x0c5fbf8a cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xe39dd4b4 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0xee83a4f3 cast_s4 +EXPORT_SYMBOL_GPL crypto/cryptd 0x0a40f256 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x1640e8e8 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x54a6c226 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x654ed68a cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x84670ea2 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x978e5d6c cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xbeeec082 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xf0964105 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xf2e0fda5 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xf8d37b33 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/lrw 0x33de5582 lrw_crypt +EXPORT_SYMBOL_GPL crypto/lrw 0x3864eb66 lrw_free_table +EXPORT_SYMBOL_GPL crypto/lrw 0xcd074900 lrw_init_table +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x328dee01 serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x5ddb33e9 __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x77b39cb4 __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x8a1a99ad __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/twofish_common 0x5dfa7c67 twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x6c3229bb __twofish_setkey +EXPORT_SYMBOL_GPL crypto/xts 0x9997f27e xts_crypt +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x123e8845 ahci_platform_suspend_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x1694cd32 ahci_platform_resume +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x22f7d735 ahci_platform_suspend +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x42a38847 ahci_platform_ops +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x46637105 ahci_platform_disable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x4783b43a ahci_platform_enable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x62aae499 ahci_platform_enable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x6e016520 ahci_platform_resume_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x92e6cd19 ahci_platform_disable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x9a482393 ahci_platform_get_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xe2bb1e27 ahci_platform_init_host +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xdf1b0414 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x12f03d6a bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x2877eaa8 bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x33665cd2 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x35474b0c bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x42946d87 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x4bd472f9 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6845d79d bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7ecb60d4 bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x8717bf05 bcma_core_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x8c392f78 bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9ac1c424 bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9e77501f bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xaae362cd bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc0fb2b56 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xcf879846 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd212da8c bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd8ce24dd bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd97e70fe __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xdd216c32 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xddb50065 bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xea4fc1ab bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf1bee9e3 bcma_core_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xfe509bcb bcma_find_core +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0a71f076 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x290c70fc btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x322a14cd btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3caebb25 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x41ee1033 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6d9c0da8 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x76d596ef btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd42acd06 btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf1190c1a btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf3321e5b btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/cpufreq/arm_big_little 0x46a614b0 bL_cpufreq_unregister +EXPORT_SYMBOL_GPL drivers/cpufreq/arm_big_little 0x9e2f3ac7 bL_cpufreq_register +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x3d2587b2 dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x57407171 dw_dma_shutdown +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x63dfc298 dw_dma_resume +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x6ad6ace5 dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xd75884b3 dw_dma_suspend +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x028d8b16 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x12b08474 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x275041d6 edac_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x56a15a61 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5d9797f8 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6716ec1c edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7e05d423 edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x86e72e39 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x937b0555 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9486f6eb edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb57665da edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc2679bf0 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe4f3c825 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe77058af edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x54ebda6b bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x73946dc7 bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x0d933f40 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xb0b613a3 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x02a44bc8 drm_gem_cma_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x03767af6 drm_gem_cma_prime_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1b999e07 drm_gem_cma_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x20a35644 drm_gem_cma_prime_vunmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x373268aa drm_gem_cma_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x575a4dc0 drm_gem_cma_describe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x90e20107 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xa5e9e54e drm_gem_cma_dumb_map_offset +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xb47d12ee drm_gem_cma_free_object +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xbd8bfaf2 drm_gem_cma_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd346148d drm_vm_open_locked +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd62d69f5 drm_gem_cma_prime_vmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd77855cf drm_gem_cma_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xdd4e5c9e drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xe8a443ef drm_gem_cma_prime_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x1148b623 drm_fbdev_cma_fini +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x1c3a048c drm_fb_cma_debugfs_show +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x61a3b685 drm_fb_cma_get_gem_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x6dc54616 drm_fbdev_cma_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x7c9ee045 drm_fb_cma_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xb2c912af drm_fbdev_cma_hotplug_event +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xcc337fd5 drm_fbdev_cma_restore_mode +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x099c0ff9 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1b4e9b8c hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2065b318 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x36325a1f hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x36352b33 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x39ff9c73 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4906a967 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5b2dc023 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5dae9937 hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0x65fdac37 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6808609e hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x946ec7bc hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9555f135 hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9a19e959 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa182afeb hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xab69ba86 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaf7a4b5f hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb44075a4 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb8c3c084 hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb8dd934a hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbf8c67cc hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd1af4af0 hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd34d16f1 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd56e379d hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd5942ea5 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd6239fd8 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd9cdb624 hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdd187b5f hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdf12b8bb hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe0549d99 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf372f99d hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf62195b4 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf66ab274 hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfcac3a7f hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfdf6ca5c hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2cb92ffb roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x6cab8df3 roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x80fed0bc roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xc829b18d roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xde538262 roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xf8cf07a1 roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xfcdb36e6 roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x0ac594c1 sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x114b8d79 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x21fc3d56 sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x23e4db38 sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x304b6465 sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x62a06268 sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x82f89234 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xee799ff5 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xb6b65c42 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x09a4221a hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x1628fd29 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x2b3e3698 hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x4958f255 hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x52567940 hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x66bd7ec5 hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x80d698d8 hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x88eac932 hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xa5d67387 hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xb11c6a43 hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xd989f08d hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xec733549 hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xf84715bd hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x22e0489a adt7x10_remove +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x86db1519 adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0xf1559a28 adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x37632460 pmbus_read_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x46c8af75 pmbus_set_page +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x475f0351 pmbus_do_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x50b95366 pmbus_check_byte_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x55737a6e pmbus_check_word_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x56d646fc pmbus_clear_cache +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x7d5a3a5a pmbus_do_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x8ad7fd64 pmbus_write_byte +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xa10e0605 pmbus_get_driver_info +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xc50355dd pmbus_write_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xd9617262 pmbus_read_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xdefd5f81 pmbus_clear_faults +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x178c2f16 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x22ff83eb i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x3246f5f0 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x40852b9b i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x46b9d623 i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x6a11ff3a i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xac51b7fa i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xbbe54731 i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xf1a9fbc1 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xae11705e i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xaf7af4a5 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x87549849 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xa94129cf i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x122bf1bc ad_sd_write_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x2aeb8896 ad_sd_init +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x35c053ae ad_sd_calibrate_all +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x3ec2e96f ad_sd_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x6f8c39c4 ad_sd_validate_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x77083ce3 ad_sigma_delta_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x7b15d5ab ad_sd_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x9707ed8a ad_sd_set_comm +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xce17e3ca ad_sd_read_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x0217b601 adis_probe_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x0ea8580c adis_remove_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x30366515 adis_write_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x31c8da50 adis_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x3f25fbae adis_update_scan_mode +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x4265c519 adis_initial_startup +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x43190b18 adis_check_status +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x5f45b442 adis_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x6913b78e adis_reset +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xc7100b33 adis_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xcc1b3ea1 adis_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xeb992b28 adis_read_reg +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0133b49f iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x050db85e iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1e76d0f3 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x267c0508 iio_channel_release_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x281ebe07 iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a1fab3c iio_channel_stop_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2d45a0d8 iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x304ee49d iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3315dfd6 iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x339b5229 iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3a59ca63 iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x51cefabe iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x564fd7c2 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x589200c4 iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x68056c53 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x68f844fc devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6a6b28c9 devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6dcdcacb iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x73686a5b iio_update_demux +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x768bc223 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7a711aef iio_channel_start_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7bb22bc8 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x87d93bc8 devm_iio_trigger_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x939d718f iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd22977a0 iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd3b87caf iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xddcc2c05 iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe276483d iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe2bb97f3 iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe3aba4ce devm_iio_device_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe8897f64 iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xea2bf952 iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xeece66bd iio_update_buffers +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x82638c0e input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0x89a2ec2b matrix_keypad_parse_of_params +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x2c18d650 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x0817065a cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x1543cfb9 cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xa84e3b52 cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x115f4dec cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x2cbf890c cyttsp_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xf5b1ae44 cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x65239e24 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0xd4c3a34e cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x165ddb21 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x314f0c53 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x37514364 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5c62048c wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x68d7e21a wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x92b4406b wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xab03a775 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xab8ce3bf wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb3da5fbb wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc44d2aeb wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe05b1197 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfde50ccd wm9712_codec +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x04590541 ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x19b77d1f ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x29e087e1 ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x5eb28c01 ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x6213f1a8 ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x7e29fccb ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x962fea7e ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xde5c6a02 ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xea27f5ab ipack_device_add +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x23359aff unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xce1414b2 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1ca65b31 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2cc1b794 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x360ba0cf gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5d72e554 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5e7b78eb gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x630b5b41 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x749fb4e1 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x874e84d1 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x95d31072 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x96a45237 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xaff1f1c3 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb08f1ad5 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb5540569 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcdee1111 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf063e0e8 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf56b16bb gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xffa85096 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x1889b52a lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x3ca177ba lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x7c30bb17 lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x91c8d702 lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xa4068729 lp55xx_unregister_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xb5a1dce4 lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xcb47d0db lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xd5c00950 lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xd8dd05f1 lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xeecadbdd lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xffef47d4 lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x749e05f2 ledtrig_flash_ctrl +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x7903e46e ledtrig_torch_ctrl +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x10e06e97 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x155ea9c7 __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1822fd23 __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1f2ba9ac __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x260d47cf __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x27831e89 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2dec45e0 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x347aebe1 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x41c861f0 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x49856e5a __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x50e8c39f __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x574ba881 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x628eb712 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6770a402 __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x785cfc9f __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7b488fb1 __tracepoint_bcache_alloc_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x91f2af34 __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa09069a3 __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa591c5d6 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa6890b59 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xaf60c34b __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb950d2ae __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbd4b89b6 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce0e6218 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd40fba32 __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdc5ea5a5 __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf58ce244 __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf5bcbdc7 __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfc1d5275 __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfcdf28c9 __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xffc308e4 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x1863fcde dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2874b597 dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x4216c7d8 dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x9619778d dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb6d5c65d dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb70b342a dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xbb750631 dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xe4c1311d dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xebd06eaf dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xef785121 dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x22163b69 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x3909d3a8 dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x594952bd dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x62a23587 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6839f8b1 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x74dcd98c dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7c381a76 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9b2b253a dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xdc69e37a dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe004ee92 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe6024e59 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xebcc64a4 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xeca7949e dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x50b4124b dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x65816c29 dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x96ff6761 dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xbef7dd9e dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xd1d9e21d dm_cache_policy_get_name +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xf153120c dm_cache_policy_get_version +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xfc0c0928 dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x05923c22 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x74098d27 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x01d2f9ac dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x09472122 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x19f9cbb9 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x77b22176 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x90b55639 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x96bebcd2 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa8813ad6 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc66ce277 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcab63c3d dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xef2e55bc dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf37a3cfe dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf5cc7466 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x01445176 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11eab9fe dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x150c85ce dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1cac81ac dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2025e954 dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2e730a21 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f40da68 dm_bm_set_read_write +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f74609d dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x32b5f546 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x33c03da6 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x38c75c44 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5e6aea80 dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x619701dc dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x62c1b9ee dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x688d422d dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x68fae9d2 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7ade1071 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7b047bd9 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x832bf228 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x858c8d94 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x89f1e1cc dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x966a8838 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9b4b5b29 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9e798e22 dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa0bbbb49 dm_bitset_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa13861b4 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa2507774 dm_tm_shadow_block +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa87c5b4d dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xaee02382 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbcfdc290 dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbd50ebbb dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbe0497aa dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca40abd5 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd041d62b dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd35673d5 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe44b4b9b dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xead1e727 dm_bm_write_lock_zero +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xed1e1f96 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf475af48 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/raid1 0x319d3c79 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid10 0xa76de5c0 md_raid10_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x46025241 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x3acfac9a smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x3ec07a4f smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x63222b29 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x63e4768c smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x6f1d2bd9 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x79e1542d smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7f11b22c smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x80d6ab02 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x84fa67b2 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9450a804 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x984086df sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9a493c02 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9c2225ed smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xabc23c09 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb5910fce smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb90fbc33 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc0d8ad06 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xd86323fa smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xd8f059b2 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0x77a3ffdf tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x3143ff76 radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xa2e2d42c radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x15212c3e rc_close +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1c05b2ea rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4f6471c9 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x50976a82 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x5a3074e4 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x63bb90d4 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x66555b01 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x67f0d7fe rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7282a775 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x800abade rc_open +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x88c29ad4 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9d376238 rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb0a4b2b0 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xba072c82 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xca062e65 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xcb654a7b ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd76abcb1 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe2f7f4fc ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe8588b4c rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0xc9b1a9dc mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0xba778f44 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0xb05e6b45 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0x417c5e1b r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0xe17269e4 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0x87907330 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0xd6aac0b2 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0xdec531c2 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x4c285984 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x2077292c tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x800f48ec tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x1188639a tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x7df51ca2 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x949b82a8 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x19043379 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x1b2ce992 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x1ff25606 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x3c766625 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x3f53b517 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x4616504d cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x4728f2de cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x55c6a162 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x91e1cff4 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x96195262 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x98976919 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xa1998853 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xa41966d2 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xa8897df4 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xc409cce7 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xec36efcb cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xf0e8cd15 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xf3e87fd4 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xf95c984b cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0xa1f46e9e mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x67d1dd06 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x1cbca86c em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x2451a0ae em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x3740c92f em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x4117a672 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x50396bf0 em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x592bdd1d em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x67c3dbf9 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xa8428958 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xc3311a4b em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xcad71b86 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xcf04228e em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xdb1d7a87 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xe9ff884c em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xefbe8048 em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x73073bf6 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x79cb5550 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x97beb2c6 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xfb78436f tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x01c483a9 v4l2_get_timestamp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x1e797d5a v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x6d026cc1 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x825582db v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x82592efc v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x8e796149 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xe5ecdcf1 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x08982d59 v4l2_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x221d2fbc v4l2_enum_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x36e8756a v4l2_find_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x4103badb v4l2_print_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x53105839 v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6976cfe0 v4l2_valid_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6f344bb9 v4l2_calc_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7eaf8e7a v4l2_detect_gtf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0xb0891da2 v4l2_dv_timings_presets +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x9dbfd652 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xcef46e1e v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xd7a34bcf v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xda7a9e3b v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0046cb54 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0cdbfe88 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0f2e88b9 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x17eb0eee v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2c3aac14 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2d34874b v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x535c4c96 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x5773d328 v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9bcf11e4 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa31fe28c v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc15f1881 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc343c521 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xca82fd11 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xcbad7c5e v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xfe36d543 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x02c58b27 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x09d5c8de videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x0c350526 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x1b0156da videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x2f5b5104 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x34762bff videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x3c729032 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x41e66172 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4c3ad1d3 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x57f33c85 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x67866598 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x70b1ecaf videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7945a8e7 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x8f9a7bde videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x969520a5 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xb0f2abfb videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xb4ca08e0 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbbfbdcf1 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc14c0b10 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd47a12b7 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xdcd9bd5f videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xdec755dd videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xeddb4c0f videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf1248316 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x301480f6 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x5c75a047 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x6a9dd343 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x4c1d558e videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x72593832 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xa310dff3 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x050a1ef5 vb2_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x05406df6 vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x23df8b60 vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x251e6f77 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x29935dca vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2c9da4d3 vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2f1a0e7d vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2ff4654c vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x37762f94 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x464cf2c4 vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4e3ccc07 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x63a23abf vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x737d3ed6 vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7c6f535d vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7f050edc vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x905d606b vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x97b3dc69 vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x9fcbc171 vb2_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xab648e04 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb232462d vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xc753c42d vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xcbfb0949 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd62a13cb vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd709c207 vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe0a3111a vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe1137a80 vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe7f5e1ea vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xeb52d91a vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xee83d807 vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xefe40d37 vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf0d2cedc vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf25ebf1a vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf7f79c1f vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xfce6ffe2 vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x58a62968 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xf1f21740 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x5b34d498 vb2_get_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x68a9903f vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x8d024712 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xef48976d vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-vmalloc 0xb32dcb03 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x14447e8c v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x201c31fe v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x218a48be v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x27fe613c v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3df99e7e v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x47813794 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6213c38b v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x696950a8 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6f3546de v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x82c1f4ed v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x83d63a32 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x89462d23 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8c12c07e v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8c1a7e29 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa8740c3f v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xaa3b093b v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xafd1b5ae v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb5b97485 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb65e6fc4 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xbc6a5cc6 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc8618177 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd69c11a3 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe402f588 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x20678761 pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x68ec268a pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x86bfbb56 pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x147d3ffd kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x15b94ce0 kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x176e2ab0 kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x9ab3476f kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x9b3847a6 kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xcdafc7d4 kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xf205562f kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xfbc9fb1d kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x63e05421 lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x7dc6a5f1 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xdc35333e lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x0aa51173 lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x0fc2cda0 lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x63c1296e lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x8dd737f0 lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xaa21a1f9 lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xce2ce011 lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xe815a3ad lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x04302249 mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x163fd721 mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x448a6969 mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x90f07e45 mc13xxx_common_cleanup +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xa7002b5c mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xca72b91e mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x09843a71 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x28af636a pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2df87ff8 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x359933e4 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6627b832 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x778d0a81 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7a08a70e pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc7dad69d pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc9fd992b pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd79bc7e8 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd95adb47 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x42e89186 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x8f71de68 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x32e04dec pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x52283f1e pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x78e56cc4 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xbcccd751 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xfd6ae799 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x01a33234 retu_write +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x4fca3918 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x00abcb42 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0a92b453 si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0b0ed3ab si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0c5ba73a si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1994f47c si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1c53dcc4 si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x23a46f1a si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x24438fcf si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2c1e4165 si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x38854063 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3aec223e si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3c249222 si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x43e28ba4 si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4972e9e3 si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x65244f04 si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6c8b34d7 si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6f950033 si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x766bd736 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x79377e08 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8d4bc964 si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9d9e0846 si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa64ac915 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa7da2ace si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xad9dca1f si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb0f03432 si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb5143843 si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc3fd98e6 si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xcaca50c4 si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd14f6f2e si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xddb2bb0e si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe467b5eb si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xebd57b52 si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf56c0418 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xfff688be si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x2ff65aed sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x5595a900 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x6ea64d03 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa1c60737 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xe16264f1 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x341ebac6 tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x5239f8a8 tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x98798819 tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xfba17ef6 tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x4362dc66 twl4030_get_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x9effbf1a twl4030_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xf7fbdba4 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x27cb133b eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63 eeprom_93cx6_wren +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x822222db eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x98bb5a22 eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x08f73a52 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x4d228309 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x55db3c27 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x67b4fec8 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x754f034d enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xc21e674d enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xf7f18769 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x00894694 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x547ced8b lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x5f5195b9 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x9ec89294 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xaac2f983 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xb0c7b9b6 lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xc2d0cbda lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xf22f436e lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xacaabdcd st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xc486babd st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0x01eb7446 dw_mci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0x545e22e9 dw_mci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0xad0f63ca dw_mci_pltfm_remove +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x7c2742bc cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x8139672a cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xbe1042c2 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x27aae780 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x59f8ac50 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xd4532806 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x0f6a9359 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x38866044 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x5e5c6dbc cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xe992dafa cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x62a832bd onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xc91e744b onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0481c9e7 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x05cd385d ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1437cdae ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3278e5ca ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x58a8826f ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6b982c2e ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x81480e65 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x82e2a4ff ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x98e1a468 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdf65d5b0 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe8491cbb ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xeeadb1f0 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xef5ce01d ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x2876c071 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x2b6022e1 c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x5b727b29 alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x5dcdc3ed free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xc8eb5adb register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xe168ef48 c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x088673d8 devm_can_led_init +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x09e1b2e3 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x18102a27 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1c244127 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x222c295a can_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x246bafe7 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x290e36e3 can_led_event +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x302cd9bc unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x415d90f9 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x623e41e6 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x63fcccfb alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x833be62c alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa98cd180 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb346573b can_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xcd038df9 safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xcd26b4ee can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd84f6517 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x1385591c unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x3ef9db8c alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x5bf6ed16 register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xc22559de free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x40a9c2c4 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x764a15a8 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x8f8671c4 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xb7391228 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x0a1f2ddb macb_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x30708a07 macb_ioctl +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x407c7ee3 macb_mii_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x4a985213 macb_get_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xad9be2b8 macb_ethtool_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xbf3c0e5e macb_set_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xd83da307 macb_get_hwaddr +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x5f23c6a9 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x7565108f macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x8fddd1fc macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xcc5240f6 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xfe9fac8f macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x46a72279 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x26b88592 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x87fa5d06 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x88fa1009 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x9c1e3193 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x016e5786 cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x1d08645d cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x34f479c2 cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x3c5f4b31 cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x5d967f4c cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x8c0660fd cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x8c1f830f cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xb2014cdf cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x058cba06 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x12f533fe rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x30df5e88 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5317edef rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x987ad874 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf29985d9 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x19900549 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1b56da47 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1bf93975 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2594ba82 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x312ed7da usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x38c44ea2 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3eda05f2 usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x40d0868e usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x45123f57 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x49200baf usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x564931d7 usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x57e217bc usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x58546e06 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5c5899c8 usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x637aa912 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x65117529 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x75d5de5f usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x77890991 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x78a149d8 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7a7455bd usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7a88119b usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x80f2de50 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8b63d0bf usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8c9857f7 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x956a3d57 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9882e2f0 usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9b6dee68 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc54e8826 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xca34b5e4 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd6840071 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe2edc4a2 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfae639f1 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x812b2289 vxlan_src_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x9b7ffd56 vxlan_get_rx_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xade1d1f3 vxlan_xmit_skb +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xda247c38 vxlan_sock_add +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xf49f46f6 vxlan_sock_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x032e33d5 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x17676c2e i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1b90d335 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1c3223ec i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2fc3fa11 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x388475a9 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3a14e379 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x62e19d32 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6d06e974 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa0384153 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbf6fdfe8 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc9b50eaf i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe5a8d036 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf06ab1d1 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf17cd78b i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfaf2c9f7 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x5a274046 cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xb212ec04 cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xf35e5989 cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xfec25651 cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x05e2f948 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2d2fbba0 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4531cd35 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x47e897d3 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4b473b8d lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x546228b5 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x54c924c3 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x69c6ed71 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x72897fd2 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x860655cb lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x865237e2 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa32d1f69 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa47ebc95 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb4896560 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc84a9bd3 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd8af70ca lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x10f903b2 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x3a37a67c lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x66727b46 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x84b520ac lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x8d1b30b6 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x98fe96d0 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc9b5d720 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xcecd93a9 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x26b29578 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xca8f5659 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x0bddf087 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x366ac921 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x3c8c7646 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x4b02b20a mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x4f06c196 mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x5f669255 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x80a85d59 mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xa4e047f8 mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xa6b0be8e mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xaa68ddc1 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xb822a1ac mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xcdefc747 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xf1268005 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xf4957d72 mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x30598f2c p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x309506d0 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3618bb78 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3a84d3de p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3b654069 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x417e86f8 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x59ed1be3 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa06a2dac p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xaca616a4 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x04fa43ad rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x127ba7ac rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1bcc330d rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1c1ca01e rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1e43b550 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2c59ad1b rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2d9a5ba3 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3c159d0f rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3effa3f5 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x42e13530 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x49524c13 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4b45c84b rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x79e1f9a8 rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7a4182ac rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8314c356 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8504494d rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8602164b rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8669d1c1 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x94f390c9 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x97261792 rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa0fd39fa rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa66adb3f rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xab7a8809 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaf2cca25 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb0f63c7e rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbcc2f4dc rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc7c1381d rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc9191e63 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcc64ec51 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcd0b538e rt2800_rt2x00debug +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd689b5b3 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd8ddec4d rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd9aff15e rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdca1d479 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe760cbfb rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xef3be8f1 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf42415b8 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfae05655 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfbead343 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0c167f66 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x232168e7 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2580120a rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x27577c86 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x278f9659 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x280f4ee4 rt2x00debug_dump_frame +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x293bcacd rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2a7ea633 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2ac38fa6 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x315a28e9 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x36b2234f rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3c9c6ecc rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3cb3e1a6 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4af2a03b rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x56b8ab53 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5a5ad5cd rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5b6c639d rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5d18fa8e rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x681a4068 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6c7e8979 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6f53699b rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x73771908 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x821106ff rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x846c2420 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x86db1ddc rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8c5b09c8 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8eea4ca2 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9595a8d3 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x98fabfa3 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9af5c6ff rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9c7af427 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa035a941 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaf3356eb rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaff51129 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb37ca4d3 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb7155c6a rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb87d889a rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb92867f4 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbdcc3a01 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc141b146 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc623c6e6 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd6bafc96 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xecf65b38 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xed0f888f rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xee9b1a72 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfd9bf1ee rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xff3d56d6 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1b32339d rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x386d5e5d rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x46af68b8 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4b93a46b rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5ace1df3 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x81e44cfd rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8de746c1 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8fb08845 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9a32cf1a rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb0876c1b rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb9909def rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc44cf52c rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcfeb8e9a rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe4ab9878 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xebbb566b rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf47047e3 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x116c341b dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4bd8a3dc dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x68019b24 rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x87ade830 dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x069aa06d rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x0c80b45d rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x0e8a21c3 rtl_dbgp_flag_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x15d209d1 rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x16b2c242 rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x17cb9ec0 rtl_attribute_group +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x241dedc1 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x2abf656e rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x2d882d91 rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x30ab8ec3 rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x332aaa4d rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x3618e519 rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x3dd203d5 rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x6da0226e rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x9208473a read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x9df4d752 rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xb61bab60 rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xd17366c5 rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xd65bb6ae rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf8ff6add rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x4e66169b wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x5efe8ebd wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xd1ef54f9 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x05294fba wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0928ba92 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0d09fb8a wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x11e655b1 wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x20fa6c65 wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2e0a2e81 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2fad3d5f wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3227d580 wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x37f61fa3 wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x40546a43 wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x429ce6d3 wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x47970d81 wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4ab3c444 wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x58d494ad wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5b87326a wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5cde7699 wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6053eb18 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7c8871dd wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7d4a7145 wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x801e65b8 wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x82bc2200 wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x852efd0a wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x876db02d wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x887eeabf wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8b65205e wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8fbb39bd wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x93ed20e7 wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x96cf1a76 wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x97a2d3e4 wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9b7ba656 wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa0b720e8 wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb0c9bf9e wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb96b9525 wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xbbf74700 wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc4ddcec0 wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xcd7bfc94 wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd2c98603 wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd8b5e49a wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe2d9bbe9 wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe7eb860a wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf6dd1542 wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfa07ebbe wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x0196a5bb phy_destroy +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x05863b89 phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x09949469 devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x1bb99a3c devm_phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x353edd9a phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x37bcdf38 phy_pm_runtime_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x6a1a64dd phy_pm_runtime_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x7ed0c60a phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x8386a31e phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x83ef0f7b phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x949f9fe4 __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xa1719d50 devm_phy_destroy +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xadc7bfbe phy_power_on +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xb09b680b phy_power_off +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xc385ca3e phy_pm_runtime_allow +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xcb11a771 phy_exit +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xcd995e65 phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xd1562938 of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xd9006947 __of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xda87c038 of_phy_simple_xlate +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xdd0935f4 devm_phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xe27355f5 devm_phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xf41679b7 phy_init +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x6b3411d0 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xc1369a98 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xc8f373ba pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x025d2eb9 mc13xxx_parse_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x18cb8c81 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x965f30be mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xa70557d4 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xc6a9b503 mc13xxx_get_num_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x31c79573 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x47860cb6 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa7b5392b wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc116981e wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc660ee21 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xcd228eb5 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x974a8806 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x01e05217 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x3d0c774e scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x42f0b9d2 scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x72b1ae70 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x72b4c322 scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x8cbfe370 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xd144a4b4 scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x102f6ee0 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x28cd197a fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x2ddfa5d9 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x3210a29d fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x36b15bc8 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x3a4fd89a fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4b82df7e __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4f61cc24 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x54c48713 fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x666428ea fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8433951f fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x936921e3 fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9d17c100 fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa31f6b65 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd15dac3e fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe8cc0ba9 fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x1f12a175 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x2bc63241 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x69dd7d05 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa345a89c iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xb9c01250 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xf094c22e iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x02991047 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1920c311 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1b1811cb iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1e4da9ae iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2306958e iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x23a7b03f iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x23aa68c0 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x37fef43d iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e58ca7e iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e8cc84d iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3fdb4aca iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4cc58d14 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x50e1dccf iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5a0d32a7 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5a1b57db iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5a843601 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5b613dfb iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5df5ff61 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x66e664e3 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x80781944 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x830c2a84 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x833ccd49 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x871baa75 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a3b0f48 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa59d54a5 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaaae4f99 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb35b9ecf iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb89f2af8 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbd457e80 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc1508be3 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc8f0baf0 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcc4f513d iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd6ab69ef iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdc621462 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe3056942 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe3e06459 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xec7b62cc iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xefcd6c9e iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf442fb14 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf4d62d70 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf695b021 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf7f14da2 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfab1b413 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xffaeffcc iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x25177495 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3aa437ba iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x443ffb12 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4763fe56 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x48eab096 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x52b01e03 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x54e4b769 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5ffeb1fd iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x67c8dea6 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6b7173ce iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7ac3172f iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7e15aca8 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7e9f4116 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x80c44af0 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd5f4937a iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe391569a iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf17fc54c iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0b02be09 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0ba20830 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x16f5a19c sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x312b52b4 sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x340f5a36 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3629270f sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x38166490 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4ddf4906 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x52e504fd sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7cf94bd9 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x871df34d sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x93eab572 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x96ff94cd sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9934a96e sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa5fb4e07 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaabfcfb8 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xacc0be5a sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaf64c4e9 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb0ed36c0 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb13c8330 sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc06533c3 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcfdd33ff sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd201efe3 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd840bc9b sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xec065a8a sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1b64630f scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4004f748 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4325246f scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7bf41167 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x83805f73 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x87b7851f scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9d26da01 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc8c3d122 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd2ce16ad scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0692aa3d iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x143de74c iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x151d5b02 iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x248b73f9 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x27513339 iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x30f58c65 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3856b97e iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x394cce29 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4f4b24a3 iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x594b1a47 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x67acf7f2 iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6f791e13 iscsi_is_flashnode_conn_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7c03b201 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7d1021fc iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7e94079f iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fb4eaa4 iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8fef9415 iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9b78ea54 iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9f55c8b3 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa2b5db4e iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa3454db2 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa699fdd9 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaa069323 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xac07a72f iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xac6b26db iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb6922822 iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb9543f67 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc6ef4269 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd2f8f75a iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd3214af3 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd83cd84f iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdbb20821 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xddd1d04b iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe98c1615 iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf01f8a22 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf3304637 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf9500519 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfb16714a iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfc844f6d iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfe62f29d iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x12dcfc04 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x78fea2a1 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x919e821b sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xbc5c89f6 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x13af8376 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x32c85ba7 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8b973f82 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x9ce4f958 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc91d8ddb srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xee891cc0 srp_tmo_valid +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x0b890159 ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x258c8fc9 ufshcd_init +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x37cccc66 ufshcd_suspend +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x5083d1bd ufshcd_remove +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xccefa4b5 ufshcd_resume +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xf465e75c ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x29e806dd spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x2c5db6c2 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x35b4afbb spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x95e07ef7 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xdbf4534c spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x00dea590 dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x0485c51b dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x38aefec0 dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xf26fc488 dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xfeaf3fed dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0x4385af6f ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x016eb934 comedi_error +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x031a046e comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x097b8ff6 comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x15c11df2 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x16777b7b comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x226327e3 comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x25a15f8f __comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x304066ee comedi_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x462a3287 comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x487ce4ca comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4b715109 comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4bbb6d3d comedi_buf_memcpy_to +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4e0f5b0b comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x55525227 comedi_event +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5b45b412 comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x62a17569 comedi_dev_from_minor +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x62b6c9f7 comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6ca2dd7d comedi_buf_memcpy_from +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6ead39e4 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7502c8e7 comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x765e2256 comedi_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7f480925 comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x80e3ae5b comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x889291db comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8b6580f1 comedi_buf_put +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa7f3a896 comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa88544b8 comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xafe883d4 comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc3a230a1 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc70cb4ea comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd026d378 comedi_buf_get +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdc178081 comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe2002929 comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xeccfaf37 comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x52f00bb6 subdev_8255_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x813045d8 subdev_8255_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0xe63ff970 subdev_8255_init_irq +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x95314d0d amplc_dio200_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xafcd2adb amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xc44c709e amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x37fb9169 cfc_write_array_to_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x6de5b5b0 cfc_read_array_from_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0xa04f7e63 cfc_handle_events +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x15a09431 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xd382ee4a labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x281070fd ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x4c89e27a ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x4cd4833c ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x589fab94 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x66a9e1e9 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x8c1abcec ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xbf790d4b ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xffda0dd8 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x21e6567e comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x2b54af5f comedi_dio_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x4b67ca78 comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x90ec1462 comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xafa7755d comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xb928e329 comedi_close +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xcf66735e comedi_open +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x2206b003 dwc2_handle_common_intr +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x27739550 dwc2_hcd_remove +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x5c5eb0b2 dwc2_hcd_init +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xb05a818c dwc2_set_all_params +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x1a1b5249 oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2feda75b oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x3227a28e oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x7dc9dddd oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xb2c66001 oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xc8b5a524 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xd370f679 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x3e66aa00 adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0xbd5a0e51 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x00b72cf1 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0170addd spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x413f3fa5 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x42972ac4 spk_serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x42f9fbeb spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x54dfe80c synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x6c490f59 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x86442336 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9f409172 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xad0962f3 spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb14e51c2 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb2978dbc speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd1b551a2 spk_get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x325c5cdd usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x4dbd6cdf usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x5332b710 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x5f91e987 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x70cc425b usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x722923b8 usbip_recv +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x9865edcd sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa5a61109 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xb12add23 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xcb4b457e usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xf39655a0 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xf51e9ee9 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xf905b112 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/uio/uio 0x49c2128f uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x95bf1daf uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xb0b24223 __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x785e1bf4 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x9eac1557 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x060e225b usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0c872b27 usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1fae58c3 usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2c19d062 usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3958db8f usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3a69b1af usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x432a915f usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4ac7cfbe usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x558faeaf usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x593ae2f3 usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5b3675ac usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x73bdd508 usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x743a9559 usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x76e8f7d5 usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x8085c5c2 usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x872e963a usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x94d7075a usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x9bfa4845 usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb2609312 usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb30dfad4 usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb985ace8 config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xbbc12235 usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc125c8cb usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc3fd7748 usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xcea59788 usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd4264f0b usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe8f8ff98 usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xebbb429d usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x0abe8583 gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x8e27d6de gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xa83bc3be gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xf1981607 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x0a5230df fsg_common_set_nluns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x141fce2a fsg_common_remove_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x1ccb58f7 fsg_common_set_num_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x2d10b6a7 fsg_common_create_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x51707c29 fsg_common_run_thread +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x6acb4179 fsg_common_set_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x7e26d4a5 fsg_common_set_sysfs +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x95d12bfa fsg_common_remove_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x99023bfc fsg_common_put +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9a0221c7 fsg_common_free_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9dc025a5 fsg_common_free_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xa46e6443 fsg_common_get +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd3ae3b65 fsg_common_create_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd468f882 fsg_common_set_ops +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xe4d1591e fsg_config_from_params +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xe7234190 fsg_common_set_cdev +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x6961e270 ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0xe018b3ee ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x06d6fa29 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x291ad9ed usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3541ef22 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x38b1ff31 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7409adbf usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x83f6abf5 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x8f04e009 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xca84e06c usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xdc259add usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-am335x-control 0xf1ca06a0 am335x_get_phy_control +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0x1de4d7a2 isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x4d35c53f samsung_usbphy_cfg_sel +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x7d54581a samsung_usbphy_set_isolation_4210 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x7f4bb3a5 samsung_usbphy_rate_to_clksel_4x12 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x841a30b7 samsung_usbphy_set_type +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xa8415697 samsung_usbphy_get_refclk_freq +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xaa032af8 samsung_usbphy_rate_to_clksel_64xx +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xc4035a5f samsung_usbphy_parse_dt +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0x2663f340 usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x001daf85 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x02fba63d usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0d0d0be6 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1b8be5ec usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x30b235cd usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3a3d2a3b usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x406274e2 usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x450c62fe usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x55ca0f5a usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x610523b6 usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x662896c0 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7b68f664 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x88769bc3 usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x88a45286 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9c751fcc usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbcb32a4c usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc1b36eda usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcab8d675 usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdab2d928 usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdb5c40a4 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe948b588 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x04029b52 vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x132a69b3 vfio_device_get_from_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x34afc50c vfio_add_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x3567743b vfio_external_user_iommu_id +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x70bab403 vfio_group_get_external_user +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x8e3c70fb vfio_register_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x95258207 vfio_device_data +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x969c73d9 vfio_device_put +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xb626b0c9 vfio_del_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xc4913442 vfio_group_put_external_user +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x01f7f575 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0371073c vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0e0a6d47 vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0ece7f65 vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1120568c vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x17675b0d vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1eaac30c vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x269f7a09 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x27f3c083 vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2882d5fc vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2ddeb4fa vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3041f0ba vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x32bcc5e8 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3a1cd28c vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3aaed603 vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3c3a1841 vhost_work_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x556ce271 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x56be9e68 vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7c03c491 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x80f38fbc vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x966d773d vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa5593e5d vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb2f1e787 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb3e673a6 vhost_init_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc2052cff vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xcdd6700b vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd24e0f1d vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd7b63850 vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe76f435c vhost_poll_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfe0ea09d vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfe355a7a vhost_dev_init +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x1ed3b5b0 auok190x_send_cmdargs_pixels_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x6782c0eb auok190x_send_cmdargs_pixels +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x7235436e auok190x_read_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xa1f9f25e auok190x_common_remove +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xb1a1b36e auok190x_pm +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xbd1849b3 auok190x_send_cmdargs_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xbd5eda0e auok190x_send_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xd8054387 auok190x_common_probe +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xe81deb8e auok190x_send_command_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xec2b307a auok190x_send_command +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x01f2d5b9 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x5429dd91 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x9c3923f1 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xbf8556ef ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xc5ab17b7 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd64d0921 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xdd8cfa82 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xbb48856d fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xc13599d9 fb_sys_write +EXPORT_SYMBOL_GPL drivers/w1/wire 0x20b3703d w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2cfd5512 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x3bd188ae w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x45bf8b49 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x5223b451 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x78380850 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x9ca5c8ab w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb5e4a85a w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb76c60ec w1_next_pullup +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x4874016a dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x8e64bb11 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x90d2c35d dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc6dc8c2f dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x18fd6676 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x47a1db24 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x497533c7 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6ceea220 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7be0806e lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x936ae7cf nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9930a035 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xbbc0cecb nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xfc0ee075 nlmclnt_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x03accfa4 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x046c879b nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x06043c66 alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x070f97ca nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0853c090 nfs_try_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0bfe90aa nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0c72be12 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0cbc6ffd nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0e0ba471 nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0ea62670 nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x10b23056 nfs_pageio_add_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x128c9f79 nfs_setlease +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x13be8028 nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x166fdc9d nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1a1d0e4b nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1a2267fc get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1a354130 nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1c344481 nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1c5ed092 nfs_fs_mount_common +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1f279d91 nfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x208e2811 nfs_clone_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2628f4c7 nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x275d06a1 nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2a0b35b8 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2a6dc5e5 nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2ac9106b nfs_probe_fsinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2f460ab4 nfs_file_splice_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2fd40ec2 unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x37b638ab nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x38439a78 nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ca31f35 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x40502f42 nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x413e1451 nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x41648577 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42bac26f nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x43d6231c nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x48b99e04 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x48e7b5f4 nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x49782c34 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4f032bdf nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51a459e3 nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x52979f70 nfs_generic_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x53349ee2 nfs_writehdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5420964f nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x570c4765 nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x579b6104 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x58d4caae nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5983d133 nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5c0eb904 nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5dd52128 put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e1d863a nfs_sockaddr_match_ipaddr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x61b152cb nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x63057c62 nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x66cdb47b nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x66fe281e nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6cd37306 nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6d32f07b nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6e09a940 nfs_pageio_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6f39bb81 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x72e41aa0 nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73b28d3d nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x75a64c5d nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x78e874d3 nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x79bbc310 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7a161eec nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7afcad03 nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7b7e20e6 nfs_readdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7e766731 nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7f57cb17 nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x81b4edee nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x84ae3dfa nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x87491ba4 nfs_file_splice_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89bc5a64 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8b206943 nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8e8e3565 nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x900ac208 nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x93465407 nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9df96e2a nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9e6e1d81 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9f345893 nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa358af31 nfs_set_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa4b44ee4 nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa4cfffea nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa5f88670 nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa6a2daa6 nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8d2d1ce nfs_callback_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa95ddc02 nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaaa14361 nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xab61bea1 nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xabc512cf nfs_file_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xac26031d register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb0140963 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb36e03a5 nfs_generic_pagein +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb606e716 nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbaa463ab nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbf51ca90 nfs_remount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc2388a38 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc3f28354 nfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc40e8a5c nfs_put_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4ff1e9f nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5ef47d5 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc61afb8a nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc7256179 nfs_fill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc8b7db41 nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcdcf5a9d nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd092640a nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd1570e97 nfs_pageio_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2513081 _nfs_display_fhandle_hash +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd402b0fb nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd65d257e nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd7f327fd nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd8a97f53 nfs_fs_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd93364d9 nfs_file_fsync_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd9671511 nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdce07890 nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe0f9b1f6 nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe355edf3 nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe3f4bca1 nfs_destroy_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe4517a5e nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe4a7bd1a nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe75d6fb9 nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe777ba2b nfs_readhdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe8489b9f nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xea0afd65 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xea4075b3 nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeaa83dc5 nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xed7c248a nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xef9c708a nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf1d4f43b nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf4b0468f nfs_writedata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a6d8ea nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf900b0d0 nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf91ac46b nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf94e74e5 nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf970fe43 nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfb7ee006 nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc619abd _nfs_display_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfd7d18ce nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0cd8f75c nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0e9947f7 nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x11bda27c __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x170f3ed6 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x17dc99c6 pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1f56137f nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x206398f5 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x28ff4744 nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2ae494ed pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x337d926a pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x39c6d203 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4ed7157d nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x511ba4ce pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x52c05f47 pnfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x54cc3879 nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5bf4266f pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x605481ce nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x665fa50e __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6aae8660 _pnfs_return_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6ee7d61b pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7a7bba07 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7c5bbf1e nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7e52ff18 pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x852ce6a7 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x856f9fdb pnfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x85a9dcdf nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8a5892ba nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x99f21422 nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9a75bd19 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa62d2408 nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbd5969cc pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbd96df11 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcacb5753 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xccf5c524 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd2805a93 nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd66c2aa6 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd69058a4 nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdb813e84 __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe1327a09 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xeba0a2ad nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf5deeefd pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf83258b6 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfdc942c2 pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x2f1f0eaa nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xf0574f47 nfsacl_encode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x0a920a11 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x257c2d16 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x80e506b2 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc0fd8b7a o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xcadf4341 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xdbd739a9 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf577eda2 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3341efa3 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3c74e726 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x9be97e01 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xb5e5196d dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc3d230ac dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc867925b dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x2c79315d ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdf0c95b9 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xf9602fdb ocfs2_plock +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x7b067004 notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0xa274a8ca notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x021957e1 raid6_datap_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0f8a2742 raid6_2data_recov +EXPORT_SYMBOL_GPL net/802/garp 0xa3fd7ecd garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xbe7a63db garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xc4cb354e garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xcf434b97 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xe25dfe7a garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xfdecd803 garp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x2b4f4706 mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x88e07e6f mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x9b79e05f mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x9bc705a8 mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0xbfd85c8c mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0xf12979c5 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/stp 0xd08f5918 stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0xeebf811a stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x60ae4014 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0xb4f04ec3 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0xb09faf79 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xcfb6a3da unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x70dc47ca ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xbd2e39ae bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x06ce8ce2 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x09a123b7 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0f4af88e dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x12ab90ee dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x187f2cda dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1e536803 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1fe0f696 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2316f028 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x235fd940 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2564df0d dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x52649398 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x60baf51b dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x669b772a dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x68b3f833 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x69a77072 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x76ed9588 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7c4267e7 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fa77756 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x868b7350 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8cdbf2df dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8d4369ea dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x91566431 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x946efff4 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9ed2836a dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa78fa51d dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xad2f1642 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb3c9d59c dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbafc1f08 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbdc74095 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc0b5a187 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xccfb5dd6 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd8714016 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfc4c931f dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfe455c6c dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xff7c573e dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x11be1876 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x28f72f83 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x38d09b4f dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x557c91e5 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9984b27d dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xbfb7eda2 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x94d71441 register_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xfb6f2045 unregister_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x3c940449 gre_cisco_unregister +EXPORT_SYMBOL_GPL net/ipv4/gre 0x4ba1d03f gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x6f45aded gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xa1a5b351 gre_build_header +EXPORT_SYMBOL_GPL net/ipv4/gre 0xa62f7616 gre_cisco_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x10e4c0c5 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x481c1fa4 inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xd1eb6fa0 inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xd70f98e7 inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xe7f93cca inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xff05b357 inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x2effa3f2 ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x3b8e52a2 ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x413e21f5 ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x545b6287 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x57bc3a3a ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x6c3ecd41 ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x79ba35a9 ip_tunnel_get_stats64 +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x910c4458 ip_tunnel_delete_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x92a9da9f ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x9b5f5f1b ip_tunnel_ioctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xaddf2bda ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xb2b1c71e ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xe1ec263d ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xf38cca21 ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x374a9dd7 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x48dd90e6 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_ipv4 0x5774880f nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x2ad428c3 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x41ebfdeb tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x4856c027 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xbe05d7bb tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xc3abab80 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0xc54afb11 xfrm4_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0xcfc0ae66 xfrm4_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x27437344 ip6_tnl_dst_store +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x5fa1ff3f ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x7357227e ip6_tnl_dst_check +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x783e19e4 ip6_tnl_dst_reset +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xf9b00c06 ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x71f92a68 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_nat_ipv6 0x8b7949b7 nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0x0275321f xfrm6_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0x82bdd14d xfrm6_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0068f77a l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x09de60e6 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4dec077b l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x540be2f3 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x695273e0 l2tp_session_queue_purge +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x76969469 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x777215c9 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x83ce661e l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8e677981 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa88a8170 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc72d0236 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xca302385 l2tp_tunnel_sock_lookup +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xca88bfa3 __l2tp_session_unhash +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe3b0717a l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xee786a8a l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xefbbfcdc l2tp_tunnel_sock_put +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf992a16b l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0xaecd7d13 l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x16671118 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x34204491 ieee80211_iterate_active_interfaces_rtnl +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3663a36d ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4a0f8dc5 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4bf42798 ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5d38f601 ieee80211_set_key_tx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7779c7b2 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x8690e6c1 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x8d035fbc ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9a5584c8 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb45c54a3 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xbb1d7cc1 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebc2ce0d ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf25e1c65 ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfa8f8b8a ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0bca196e ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0c4fd805 ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x25aeb52e ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x2afa050b ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x335c7e28 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4d198b8b ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6344eaf6 ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6731d252 ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6e1c73bf ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x73e453e0 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x87b11322 ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x952d6346 ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xaafd7431 ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xacabe9b0 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xd1bb9011 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xd483d619 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xd6875df5 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xef13ebbe ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x415590aa ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x6904c626 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x7d01330c register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xd19327b5 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00e7fed2 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01f84db5 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x09d2093a nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a8ea2d0 nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25416454 nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x27a3eaf4 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ef3c8dc nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3462dd83 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34a6b50f nf_ct_l4proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x35f11b3c nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37386cac nf_conntrack_hash_rnd +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37d6b03d nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x38b3be89 nf_ct_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3947f143 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3a7d0b17 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3ac9adac nf_ct_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3d0a33b1 nf_ct_l4proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3dc6da60 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3def7197 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3fbe63e1 nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4310f58b __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x449f35aa nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x481cbda7 nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x48b8bf3c nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b069afa nf_ct_timeout_put_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c8ab866 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4e5fe3c2 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5184fabe nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x52e083d9 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x547a8f49 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x56156f8e nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x589d4db6 nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x58f64e52 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5c649e1c nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x61b4cb23 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a363784 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6b4f8adc nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6c35d00a nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7456dfda __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x75301ee9 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c698140 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x84e8ab83 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8be35b7c nf_ct_l3proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c865ada nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e3e1793 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f7c20fc nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f7ee53e nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x95e6164c nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9c7f8ae0 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9cb772f5 nf_ct_timeout_find_get_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa179b9cb nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa82e53e5 nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad686b06 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xada94f3f nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xae7739fd nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb23f3373 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb3851da4 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb4bf43f3 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb7020a1e nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb7d1d091 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb7dc73ef nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb8a85e23 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xba8d83b6 nf_ct_l3proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbfeb8bb7 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcad15b59 nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcce9e5a0 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd32a24ef nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4c49c99 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd5d171c6 nf_ct_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6b831b3 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe11c466d nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe5c2383b nf_connlabel_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeb9c6887 nf_ct_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xebe8f307 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xee2464e4 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf1626fd1 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf59326be nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf812d1aa nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf8423a01 nf_connlabel_match +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfb1aa2c1 nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x4fe5c897 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x38b54823 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x830e4f5e nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x014686e3 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x33aa6f50 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x48f46ae4 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7cac7d38 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8eabdb27 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc33ff21c set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc5db4cf3 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd34ca970 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xdf85a795 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xfbd94ace nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xd82a7caa nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x08cfbb2c nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x6544690b nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x68cb6cb5 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x79ad4376 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x2a73a864 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x7b60fecf nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x08d0f00c ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x980e224e ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb0dbcf79 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc0900097 nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd7545e92 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xed042445 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf1d03b64 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xc891d0b9 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x0caf2d13 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0d9bae4b nf_nat_l4proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0f92b2a3 nf_nat_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x131f636c nf_nat_l4proto_in_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x487062ef nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x531d57d9 nf_nat_l4proto_unique_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xc7f15ce4 nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xe6c9165d nf_nat_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xe772032d nf_nat_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xecd29a47 nf_nat_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xf0e2bb49 __nf_nat_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x11a006b5 synproxy_check_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x66be42f7 synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x8841d39b synproxy_build_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x90298227 synproxy_init_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xa885b7aa synproxy_tstamp_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xb42e336a synproxy_options_size +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xef7db50c synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0fda3c99 nft_validate_output_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x1ea0df40 nft_register_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x23fa7b90 nft_do_chain_pktinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x27c1ae8a nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x352d23a6 nft_validate_data_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3699bb21 nft_unregister_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3c6d5976 nft_data_uninit +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3d49dab7 nft_validate_input_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x471b7838 nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5a126175 nft_unregister_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5e0e01d1 nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8f70aedd nft_register_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x96a6ed83 nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xbd04fc0e nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe414ee1f nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x122be203 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3c7d1254 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x95e467e5 nfnetlink_alloc_skb +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xaa088876 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xab21e392 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xce8cd75e nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xfa6f8b14 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x21f6bba6 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x5756700f nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xcbfaebba nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x145c924b xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x268b48c3 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x48361431 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x494500f1 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4a869dbb xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7005cf81 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x94867484 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9635dc93 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa44c5f94 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb627ad48 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd461d4a4 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf117c084 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf748a3d7 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x57909dc1 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xd0f26ea3 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x08638ea4 nci_spi_send +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x85e668d9 nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xf941eaa5 nci_spi_read +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x07884aab rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x1355a146 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x27066224 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x2ded6779 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x44de02ae rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x452346f1 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x4d78c011 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x55408d1f rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x569fcaae rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x618442a9 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x69dc8aa0 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x6e5340c6 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7443fddb rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xaf23ce7c rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xaff324ac rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xb5c59ac5 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0xb6b536af rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xc0a904ec rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc642cc2c rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0xc97783ca rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0xe246b3cb rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xead11f56 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0xfad81e26 rds_connect_complete +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x32250b73 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x90f6759f rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x9a762242 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf13b7223 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf71074f7 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x001bf473 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01105e3b xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0367a568 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x038aa23c cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0400b5c2 rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045834e9 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x052f11de xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06a7afc5 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06b0658a xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x091a2144 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a4b3866 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ca79a41 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0db32307 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0db6a22d xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10a78541 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11cd4d54 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11e7df21 svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12c586c5 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13d0a0e4 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16e6f8d5 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x179bb295 svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17db3e72 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x194359cf rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ba4c48e svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c6e097f rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1cb447f3 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x219579b0 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2246d87d rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2306c20f svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23d5659d svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24dd6d86 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26088b86 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2750ed01 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28750990 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b535400 rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x308a8875 xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3150589f rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3203733d svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x337093e0 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x341110d3 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35827e51 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3596d2b1 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3700189a rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a0446af xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b5d373a rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3be1cbd8 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c3c3838 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d0d037e rpcauth_key_timeout_notify +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d94c824 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3edc681d rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f3f1051 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f90d007 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42582ffd xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4335f335 xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4373ff7b svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46698b72 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x499077db rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4aad6e0a rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b58232c rpc_rmdir +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ba8f760 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e99a6f9 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f65f2b9 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52e8e9a5 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53bdf73d rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56961199 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57e64661 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x587debdc auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x591d6d95 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a4b283c rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a60c40c svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a850ca2 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a9d5f56 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b4e649c svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d270dfb rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d570c83 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5df2888f svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5eba280a sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f0bced1 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fb043b0 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61909d88 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61e2a103 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6523e660 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x699ddebe rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a6e534d xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6adf107d svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f9aa799 rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x713bb41b svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x716fc20b rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73486207 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76cae22c xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76d58c2f rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x772db343 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78f78ffa xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79b01c6f svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d891041 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e177345 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f30df47 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f8421e4 cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80951b28 rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80a8fb9a rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x820e0c6d svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83d503e4 rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x855b97bf svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x858a9fa8 rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8af33a28 rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b3bc73f rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f465816 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9014339c rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90507b05 rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949574bc svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x965058ee xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9668ff46 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x988ceb4b svc_shutdown_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b75d64 rpcauth_list_flavors +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99c4c420 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c763776 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c79c724 cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cd6233e xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9eebd8c7 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f14f4e7 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f3f6382 xs_swapper +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9fc4e3de gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa226a75f rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa30a3a61 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa46a4ef1 rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4959db4 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4d3faa7 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa546980b xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9023a12 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9808dc9 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa99bc200 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa0ca0e8 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa7b7d87 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaaf5e872 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab1bb7eb xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad81524e svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1500ba6 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4cc6c2e svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc6282df rpc_protocol +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbec07cce rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf43da3e xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf921d6e rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc14ef80f _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1781316 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1bf7af7 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc32948a2 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4b4f93f svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4c24684 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc542f258 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc84f5c67 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9b0d933 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb14acdc rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb7859ce xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccb52d1b svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd408edb rpcauth_cred_key_to_expire +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce5250d7 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd01eaeb6 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd034792c rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd08dfacf rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4017470 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd436576f sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd49ba99c xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4ba3309 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd505f14a rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6a6c328 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6d59ad8 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd891076b rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8a806e0 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdcde20d8 rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf090dd3 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf22c468 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0860038 rpc_get_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1700d60 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ac2bb8 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3362e2d rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3efc0b3 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe465f8c9 rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe81b5102 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9b7e8ba xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec720f39 rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xed171dd9 cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xed19751b rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xed9d58e9 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeecfea28 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef35c85f xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3da404f xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc401847 sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xffc4e640 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfff8e1e3 cache_unregister_net +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x022f6e10 vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0c79d5ef vm_sockets_get_local_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0f4b5453 vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x15c0c57c vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x16b409c0 __vsock_core_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2663cb64 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2d7df42b vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x4e2119d1 vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x6167f437 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x74e91915 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x751ff010 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7f730c80 vsock_core_exit +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x821c8b43 __vsock_create +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x85630b59 vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xaa47c67a vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbbbb1d6f vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd0f699d vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xce242236 vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd95ac116 vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf017ea15 vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf510720b vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf593c40a vsock_pending_work +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0a4c960e wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x14d8068b wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1a7ad87e wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1c50ca20 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1d943b8c wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2b821274 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3bc9174b wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4a9cc15e wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x50631269 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x5f3c9e74 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x754dcd6f wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xce4e4fee wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe0f84b9b wimax_state_get +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3315ee5b cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x49354278 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5b96887d cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5c2bc6f2 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6d974b7d cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8b24f651 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9a0376fa cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xce9d999a cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd4e3efe0 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe45d3ee2 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe9254a58 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00778770 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x056bb269 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0a575945 xfrm_count_pfkey_auth_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0b9e5852 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x74e1a843 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7a8ca627 xfrm_count_pfkey_enc_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7c30b8c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x92dbc6c1 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xbc8b0f41 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xce7a55c1 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe122af95 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x33074fb6 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x3f5192de ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x8452459f ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xdaf7b4fb ipcomp_destroy +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0xacb658ff atmel_pcm_free +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0xc9318fc1 atmel_pcm_new +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0xe096652e atmel_pcm_mmap +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_file_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x002a34a3 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL vmlinux 0x0050510e ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x00634a1a driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x00684dc3 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x0068e876 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x0070fd38 dev_pm_opp_find_freq_exact +EXPORT_SYMBOL_GPL vmlinux 0x0078343d netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x007e8ce8 dev_pm_opp_free_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x009304b6 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00a26169 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00d4d3e9 evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x00d88d91 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x00e8f740 arizona_dev_exit +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00f2ceec device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x00fb054b device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x01022df6 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x0143d328 iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x01485d4e ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0148adb6 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x016ec52c srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x017b8f58 snd_soc_jack_new +EXPORT_SYMBOL_GPL vmlinux 0x0190d09e kobj_completion_del_and_wait +EXPORT_SYMBOL_GPL vmlinux 0x01c6cb0c cpu_cluster_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01f401a7 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x01f98def blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x02148b7c __class_create +EXPORT_SYMBOL_GPL vmlinux 0x024b7094 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x028bd13f crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x02960185 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x02c1b956 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0x02d51e7a handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x02da7dca sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL vmlinux 0x02dc50e6 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x02e027f0 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL vmlinux 0x030daca8 snd_soc_bytes_put +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0345555a ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x035b8230 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x0398a4f0 da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x03ab14f9 pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0x03bf1d5e gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x03e06e7c usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x0402b504 __percpu_ida_init +EXPORT_SYMBOL_GPL vmlinux 0x04107efd srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0414d6ac get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x043c9806 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x045b452f of_clk_get_parent_count +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x046c7ea9 subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0x0488ddd7 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x049d951c cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x04be1041 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04cc936e input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x04dc35c8 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x04e1b99f snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL vmlinux 0x053fa09b snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x055e49cb ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x0574068b cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0x0586ad2d elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x058b582a vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x05908bc8 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL vmlinux 0x0593d0de pinctrl_dev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x05976981 arizona_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x05b1056d rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x05b47e4a pwm_free +EXPORT_SYMBOL_GPL vmlinux 0x05bbf629 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x05d629b3 reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x05ee5e7c ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x0605a7bb iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x062f4df1 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x06438115 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x064a0671 mmput +EXPORT_SYMBOL_GPL vmlinux 0x064cba76 lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x065e06b0 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x0675d7cc regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x0691ac6e sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x069bfaeb usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL vmlinux 0x06ca9deb sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x06cbbc91 debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0x06d4fc5c blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x06d549e6 pinctrl_free_gpio +EXPORT_SYMBOL_GPL vmlinux 0x06dceffb snd_soc_of_parse_daifmt +EXPORT_SYMBOL_GPL vmlinux 0x0742743f tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0x07455fa9 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x0746a3d9 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0762403c edac_put_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x07ac4867 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07d8e9f2 dma_buf_begin_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x07ed48c3 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x07f3eb15 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x07f941f4 iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0x08093b62 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x080bbd2d udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0x0816caed sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0x083bed6e wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x085ac8ee tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0x088595e9 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x0889bbe0 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x08997178 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL vmlinux 0x0899f091 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x089a5c7c dma_buf_put +EXPORT_SYMBOL_GPL vmlinux 0x08a585e8 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x08d46a96 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x092d4842 regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x09437748 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0943d7d0 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x09469482 kfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x095165d7 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x0972ba48 pinctrl_select_state +EXPORT_SYMBOL_GPL vmlinux 0x0990a4ad sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0x09c1186a iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x09d0d105 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0x09df5ff5 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x09e913c1 snd_pcm_alt_chmaps +EXPORT_SYMBOL_GPL vmlinux 0x09efbe93 regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x0a003286 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x0a06d3e2 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x0a230d65 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0a2468f1 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x0a35cc6f kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x0a845a96 sec_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x0a9fd3c5 gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x0aa105ae sdhci_pltfm_register +EXPORT_SYMBOL_GPL vmlinux 0x0ac9f40b snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL vmlinux 0x0adf3fa2 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x0ae8b88f sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0x0afd4610 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b096caa ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x0b401306 dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x0b59390b __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0b6ad7e8 clk_register +EXPORT_SYMBOL_GPL vmlinux 0x0b85ed03 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x0ba0cf38 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x0ba52037 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x0ba8374b __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x0bae62b1 ktime_get_monotonic_offset +EXPORT_SYMBOL_GPL vmlinux 0x0bbae511 return_address +EXPORT_SYMBOL_GPL vmlinux 0x0bd1683f regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x0bd1ace8 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c09ebe5 md_run +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c5334f7 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x0c92a262 snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL vmlinux 0x0c9c0fbf ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x0ca3f261 palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0cce0227 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x0cd358af virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x0cdb387c ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0cf9fcea mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0d2260e3 md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x0d240c39 virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0x0d2d91a0 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x0d328d33 gpiochip_add_pin_range +EXPORT_SYMBOL_GPL vmlinux 0x0d57986f snd_soc_add_platform +EXPORT_SYMBOL_GPL vmlinux 0x0d9d852e subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x0dbd0e20 of_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0ddc6a23 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x0dfffb0a tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x0e045fc3 ping_proc_register +EXPORT_SYMBOL_GPL vmlinux 0x0e0e89dc kvm_flush_remote_tlbs +EXPORT_SYMBOL_GPL vmlinux 0x0e0e96c3 regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x0e12b004 fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0x0e235cc0 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x0e8e319d usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x0e93f145 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0ed36b2f call_srcu +EXPORT_SYMBOL_GPL vmlinux 0x0ed9302e percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x0edd9361 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x0ef0fc8a ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x0f15681d led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0x0f2ac727 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0f303192 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x0f720720 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x0f7417e4 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x0f751aea input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x0f759d52 sysfs_get_dirent_ns +EXPORT_SYMBOL_GPL vmlinux 0x0f9c143b usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0x0fc01e9f static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x0fc3bd35 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x0fe112dc of_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x0fe65e8c synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x0fe8b6ac usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x1026c1d9 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x102ee98a bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0x1047a84b snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL vmlinux 0x105f84c3 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x106d65c0 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x10965877 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x10c85f47 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x10e2c4d4 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x110bff0f usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL vmlinux 0x111b3d2a netlink_alloc_skb +EXPORT_SYMBOL_GPL vmlinux 0x113051e7 get_kernel_page +EXPORT_SYMBOL_GPL vmlinux 0x1131abaf set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x1135d4f6 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x113b7d60 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x113b9b5f ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x117b94b2 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x118d9c18 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x11ae4559 __clk_register +EXPORT_SYMBOL_GPL vmlinux 0x11d54fd5 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x11dbc89d __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x11e7da34 tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x12113f23 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x122a3634 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x125d89cb usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x125f76c5 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x127362c7 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x1288793e usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x128f410f pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x12a508ec ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x12b0e66f usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x12e890d7 debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0x1307b70c get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x130fca80 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x1314691b regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x13180949 unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x13348296 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0x1337c067 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x136ff1c3 pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0x1376a6ac i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x138c10c0 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x13921363 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x13ad647f scatterwalk_bytes_sglen +EXPORT_SYMBOL_GPL vmlinux 0x13b89dee pinctrl_request_gpio +EXPORT_SYMBOL_GPL vmlinux 0x13d97f21 tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0x141a01f7 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL vmlinux 0x142a8be4 of_clk_get_parent_name +EXPORT_SYMBOL_GPL vmlinux 0x147afb31 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x14b570c0 mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x14d024d9 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x14dc7e14 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x14f49922 snd_soc_cache_read +EXPORT_SYMBOL_GPL vmlinux 0x14f875ce devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x14f90da6 snd_soc_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x15079548 pinconf_generic_dt_subnode_to_map +EXPORT_SYMBOL_GPL vmlinux 0x151878d7 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x1525f36d __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x155f1512 dev_pm_opp_init_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x1586437d ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x15b44ee1 pinconf_generic_dt_node_to_map +EXPORT_SYMBOL_GPL vmlinux 0x15d89e00 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x15f33409 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15fd8025 split_page +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x16101a7e __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x16676c72 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x16cec4f8 devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x16f07ca5 bmp085_detect +EXPORT_SYMBOL_GPL vmlinux 0x17002092 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x170e9bea imx_usbmisc_init +EXPORT_SYMBOL_GPL vmlinux 0x172b45ad cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x174d5cb4 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x1753a32f hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0x175643b6 extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x175815f5 vchan_find_desc +EXPORT_SYMBOL_GPL vmlinux 0x17734076 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x1773cc4a platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x17831aa2 usb_gadget_set_state +EXPORT_SYMBOL_GPL vmlinux 0x17f80573 reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x1829cb9e __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x184fd00d regmap_fields_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x1866cec2 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x1881f618 ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x18869bd5 snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0x1891c4ff dma_buf_unmap_attachment +EXPORT_SYMBOL_GPL vmlinux 0x1893bfb8 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0x18a27f34 jump_label_rate_limit +EXPORT_SYMBOL_GPL vmlinux 0x18bc2df4 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x18be1e57 serial8250_rx_dma +EXPORT_SYMBOL_GPL vmlinux 0x18df715e inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x18e3691d max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x18e59bac sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x18f55b1a ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x19152eb0 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x194dd5f5 pkey_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x194f7214 ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x19619bbc ahci_check_ready +EXPORT_SYMBOL_GPL vmlinux 0x1967d546 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x197ef2a6 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x198e8703 ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19b384a5 hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x19cc2002 ima_file_check +EXPORT_SYMBOL_GPL vmlinux 0x19ce2fa7 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x19fe43b8 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x1a082d69 max77693_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x1a0b1b47 pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a81d0a1 gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x1a9a67cf sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x1a9b3fe9 pinctrl_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x1ac61a18 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x1acef7d2 pm_freezing +EXPORT_SYMBOL_GPL vmlinux 0x1ad83009 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1ae58319 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x1af06be8 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x1af65251 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x1b19e41f security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x1b25f05c cgroup_taskset_cur_css +EXPORT_SYMBOL_GPL vmlinux 0x1b3193ff gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x1b3261e0 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x1b4ec991 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x1b52db1c probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1b7a1d9b devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x1b7d3de3 usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x1b8822d8 pinctrl_gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x1b9a6929 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1b9da212 spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0x1bb5d430 arm_iommu_release_mapping +EXPORT_SYMBOL_GPL vmlinux 0x1bb5fc26 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL vmlinux 0x1bc5eebe pinctrl_gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x1bd06aab cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x1c1b4756 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x1c2f51b1 ahci_restart_engine +EXPORT_SYMBOL_GPL vmlinux 0x1c40905d snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL vmlinux 0x1c532fb1 snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c6894e2 irq_create_strict_mappings +EXPORT_SYMBOL_GPL vmlinux 0x1c6b67af iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1ce2d00f xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x1cfc0293 class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL vmlinux 0x1d1eccc7 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x1d4a3e86 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x1d4eef71 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x1d58ae14 lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x1d5f0ec3 irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x1d6675e8 extcon_register_interest +EXPORT_SYMBOL_GPL vmlinux 0x1d7750bb __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1db77d33 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x1db94aa1 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x1de054d5 of_clk_del_provider +EXPORT_SYMBOL_GPL vmlinux 0x1df7a9fa crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0x1e10b2fa list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1e13dd4a find_module +EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x1e46e368 vchan_dma_desc_free_list +EXPORT_SYMBOL_GPL vmlinux 0x1e4d6b48 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x1e576cae snd_soc_register_codec +EXPORT_SYMBOL_GPL vmlinux 0x1e5b03dc pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e6c7a11 mtd_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e95e52c fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x1eaf1766 balloon_devinfo_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1eb1594f gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1eca2ba6 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x1ed849f8 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x1edcd9e6 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x1eeeb280 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x1f041cae crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x1f37286e register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x1f3a4802 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x1f4eb13e extcon_set_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1f8f1d5d irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x1f9a016c spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x1fb4a621 sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fe81ea4 snd_soc_platform_read +EXPORT_SYMBOL_GPL vmlinux 0x20011ef0 devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x201477d3 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0x201d8ea3 encode_rs8 +EXPORT_SYMBOL_GPL vmlinux 0x203e899b sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x206bad26 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x208fcb7b posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x209bb0c0 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x209c2fa5 snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL vmlinux 0x209fa04b ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20c82131 crypto_lookup_aead +EXPORT_SYMBOL_GPL vmlinux 0x20c9a693 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL vmlinux 0x20e7d89f devres_find +EXPORT_SYMBOL_GPL vmlinux 0x20e8df01 kvm_set_memory_region +EXPORT_SYMBOL_GPL vmlinux 0x21298792 usb_del_gadget_udc +EXPORT_SYMBOL_GPL vmlinux 0x212ab498 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x213c7b44 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x21445013 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x215459dd ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x2158cd30 pinconf_generic_dump_config +EXPORT_SYMBOL_GPL vmlinux 0x2177fadf br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x2191c193 snd_ctl_activate_id +EXPORT_SYMBOL_GPL vmlinux 0x219d78a5 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x21ac36d8 kvm_read_guest +EXPORT_SYMBOL_GPL vmlinux 0x21ac8b77 iommu_group_get_by_id +EXPORT_SYMBOL_GPL vmlinux 0x21b1be8a sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL vmlinux 0x21c93c4f blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x21f6b8dd alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x22186b30 swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x2231e2ef attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x22332a7e rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x22457ba7 tpm_write +EXPORT_SYMBOL_GPL vmlinux 0x22468402 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x226a674d atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x228e1dab snd_soc_debugfs_root +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22b73c27 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x22c16ecb dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x22c880d9 put_device +EXPORT_SYMBOL_GPL vmlinux 0x22d54055 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL vmlinux 0x23458281 kvm_write_guest_cached +EXPORT_SYMBOL_GPL vmlinux 0x235afa18 thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2366c877 cgroup_add_cftypes +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x236904e2 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0x23697840 of_regulator_match +EXPORT_SYMBOL_GPL vmlinux 0x236cdf1b ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x2392bc6e pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x23c589e0 of_get_regulator_init_data +EXPORT_SYMBOL_GPL vmlinux 0x23d628e3 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x23dab957 devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x242ceca0 kvm_clear_guest +EXPORT_SYMBOL_GPL vmlinux 0x243ece2b thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x24619e0d sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24a4d8c8 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24b9f313 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x24c119e0 __tracepoint_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x25623e70 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x258abab3 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x259dd403 inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x25cc15b5 sdhci_alloc_host +EXPORT_SYMBOL_GPL vmlinux 0x25fc3156 da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0x2614d518 mtd_lock +EXPORT_SYMBOL_GPL vmlinux 0x26169f52 uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0x261a45fd devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x26adb815 thread_notify_head +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26badcaa devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x26c547c0 bL_switcher_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26d0a327 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x26f5892c __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x26ff9d2d context_tracking_enabled +EXPORT_SYMBOL_GPL vmlinux 0x270288bf mtd_block_markbad +EXPORT_SYMBOL_GPL vmlinux 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL vmlinux 0x271230a3 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x2725f423 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x2741c282 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x27454ced tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x275c84fb crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x2775ec2f ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x27a797fe platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x27c98ed1 kvm_vcpu_kick +EXPORT_SYMBOL_GPL vmlinux 0x27d74423 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x27de8a74 kvm_vcpu_init +EXPORT_SYMBOL_GPL vmlinux 0x27e194c5 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL vmlinux 0x27eaec1f class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x27f7fc76 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x28131791 extcon_get_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x2827820d rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x283d84ab tps80031_ext_power_req_config +EXPORT_SYMBOL_GPL vmlinux 0x2844a18b ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x284dd912 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28a903c8 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x28cb5d2d device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x28cc87dd serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x28e9ff18 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x29047f1a __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x291c55c9 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x2922d7aa rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x293d2e50 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x295d7880 thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x296040e7 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x2961aaf0 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x2966748d raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x29759185 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x298bee83 iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0x298d5fa7 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x29b3b92b mark_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x29cf89fc fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x29dd4082 iommu_present +EXPORT_SYMBOL_GPL vmlinux 0x29f06c30 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x29fa419f decode_rs8 +EXPORT_SYMBOL_GPL vmlinux 0x2a09a7d4 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x2a0f9047 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x2a4e64f9 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x2a504ad2 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x2a604c39 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a76671f ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x2a83fd6a debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x2a97b684 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2aa5c731 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0x2abef2fc snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x2ad1ece4 zs_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2ad9d326 md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x2ae754a8 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x2b068113 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x2b246dab snd_soc_add_card_controls +EXPORT_SYMBOL_GPL vmlinux 0x2b6db0e9 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x2b71062c tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0x2b7a6de8 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x2b984af4 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x2b9c6a79 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2babe81f __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x2bcb827c ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x2bfaef4e clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0x2c02e9ba snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c475a78 powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0x2c4d6e29 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2c5ad5d0 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x2c736143 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2ca4a17c ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x2cad9dd3 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x2caf4c67 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x2cbda76f shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x2ce3f50c tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2d17a0e1 cgroup_taskset_size +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d29a165 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d624c4a ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x2dd6fe11 dma_buf_vmap +EXPORT_SYMBOL_GPL vmlinux 0x2de48f3c blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x2e28c621 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e5465d7 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2e5de1ff sk_unattached_filter_create +EXPORT_SYMBOL_GPL vmlinux 0x2e71fb5a debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x2e73fe84 sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x2e849d1d virtqueue_is_broken +EXPORT_SYMBOL_GPL vmlinux 0x2e905324 ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x2e92037b netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x2e9670c0 pl320_ipc_transmit +EXPORT_SYMBOL_GPL vmlinux 0x2ebac687 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x2ebd1c12 snd_soc_dpcm_be_set_state +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2eeced95 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x2ef13151 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x2ef6b5bf smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f33bad2 regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x2f3656e8 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x2f39e305 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x2f3feafb regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f613f1b sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x2f88930d mtd_block_isbad +EXPORT_SYMBOL_GPL vmlinux 0x2fa00e0b tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0x2fd8cba9 freeze_wake +EXPORT_SYMBOL_GPL vmlinux 0x3001fa61 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL vmlinux 0x301b9787 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x302e1b99 regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0x30418ae2 mtd_read_oob +EXPORT_SYMBOL_GPL vmlinux 0x306776db bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x3070f170 netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0x308822ad devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x308b733a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x30950a3f irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x30958eda get_device +EXPORT_SYMBOL_GPL vmlinux 0x30981329 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x30993c65 gpiochip_add_pingroup_range +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30c63772 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x30d2db79 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30d77db2 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31118c99 pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x31130ff4 sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x3116c41c fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x3130a0cf spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x3145b4be i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x314b754b bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x31859993 of_irq_to_resource_table +EXPORT_SYMBOL_GPL vmlinux 0x31a820ed register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x31ab2a57 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x31be35d5 of_get_named_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31f8a05b wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x3225cf47 arizona_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x322f3511 __tracepoint_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x3256ca45 gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x32583ee9 usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x325e6820 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x3279dd34 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x328995b5 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x32924a4d scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x329bbbde timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x329cb26e md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x32aa5b8e skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32c496f1 pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x32d34732 ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x32d366cf crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x32f23353 dev_get_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x32f98f17 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x32fd447a monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0x3341e16b devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x334614ee da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x3360b321 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x3361535d i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x33717a46 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0x33a94a45 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x33b45e6a usb_stor_reset_resume +EXPORT_SYMBOL_GPL vmlinux 0x33ffae73 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x3423b734 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x34612903 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x3466f199 pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x349a82b6 snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL vmlinux 0x34b12a88 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x34b97e2f usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x34cd8212 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x34d09987 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x34eb322a snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x34ff85a4 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x353f9931 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x354b52b8 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x358ff60f twl_get_hfclk_rate +EXPORT_SYMBOL_GPL vmlinux 0x35cc14e9 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x35ee3d8c usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x35f10f43 nfq_ct_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x35f165f1 devm_reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x35fb50ed power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x36075bb5 iommu_group_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362a9a9f usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x362df82c dev_hard_start_xmit +EXPORT_SYMBOL_GPL vmlinux 0x363a0626 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0x3651b6fd set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x3655f0fb usb_stor_disconnect +EXPORT_SYMBOL_GPL vmlinux 0x36886883 tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36a81a41 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x36caf8a3 blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x36e209ca tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x370f41a2 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x374b4eb0 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x37763651 od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x37843c20 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x37c8c98a crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x381565a9 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x383bd1ec n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x3868cc54 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x386a12bf tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3890f1c6 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x389f4207 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38bb69d7 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x38c8de6f max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x38d773f7 pinctrl_force_sleep +EXPORT_SYMBOL_GPL vmlinux 0x38dba523 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x396fa656 thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x3984bfce uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0x39864018 subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x39876b01 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x39b6b034 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x39c05c4a tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x39cfde34 snd_soc_register_component +EXPORT_SYMBOL_GPL vmlinux 0x39dc6710 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x39ef6c51 pinctrl_lookup_state +EXPORT_SYMBOL_GPL vmlinux 0x3a002a28 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x3a158970 cm_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a37a2c8 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x3a4a1b01 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3acef6cd tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x3ad82802 of_property_read_u32_index +EXPORT_SYMBOL_GPL vmlinux 0x3ae8e03a bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x3b180c8c led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3b19ee01 irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x3b388383 blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x3b519645 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3b6a6583 ahci_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x3ba91cc3 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL vmlinux 0x3bacb8cd mtd_del_partition +EXPORT_SYMBOL_GPL vmlinux 0x3bb18414 skb_gso_transport_seglen +EXPORT_SYMBOL_GPL vmlinux 0x3bcd9e8b device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x3bdc572d fuse_get_req_for_background +EXPORT_SYMBOL_GPL vmlinux 0x3bec1919 snd_soc_jack_get_type +EXPORT_SYMBOL_GPL vmlinux 0x3bf9ad66 mtd_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c16947c regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x3c3bbe6a crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x3c831441 arm_check_condition +EXPORT_SYMBOL_GPL vmlinux 0x3c8424a0 clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c8d28cc of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x3ca17104 __snd_printk +EXPORT_SYMBOL_GPL vmlinux 0x3ccffec8 of_irq_parse_one +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cdea9a6 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0x3ceb5cbe securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x3d0654d0 soc_ac97_ops +EXPORT_SYMBOL_GPL vmlinux 0x3d0eaa39 udc_attach_driver +EXPORT_SYMBOL_GPL vmlinux 0x3d29bb9d dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d313fec musb_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d392c6e sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x3d99360f perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x3dbbc725 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x3dc526a9 arizona_of_match +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dcc1e4f ahci_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3dd623d2 tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3e0e7747 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x3e238621 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x3e2e543d cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x3e2fa31f wm8997_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3e3e9a99 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x3e452a00 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e971b8d regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x3eb79de3 kvm_init +EXPORT_SYMBOL_GPL vmlinux 0x3ec5f73d dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x3ed0c1d3 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x3ed40b6c ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x3ef35f8c usb_stor_probe1 +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f244ca6 thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x3f474227 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL vmlinux 0x3f4e7c27 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0x3f61c2f3 regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3f620a84 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x3f68b983 snd_compress_new +EXPORT_SYMBOL_GPL vmlinux 0x3f69c73a unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x3f86050c sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x3f9e43f9 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x3fafa3c4 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0x3fe0a130 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x400938d6 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x4012461a spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0x40139a43 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x401d43a2 ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4045c494 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x405dd16e dapm_regulator_event +EXPORT_SYMBOL_GPL vmlinux 0x4065d168 pm_print_active_wakeup_sources +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x40f40bc6 usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x40f5c2db thermal_notify_framework +EXPORT_SYMBOL_GPL vmlinux 0x412a1bb0 snd_soc_register_card +EXPORT_SYMBOL_GPL vmlinux 0x416a57d0 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x416faf66 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x41712b5f tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x41d02d42 dma_buf_kmap +EXPORT_SYMBOL_GPL vmlinux 0x41d17d4b ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0x41d496e1 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x41d800ad da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x41fac5f7 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x41fb4236 dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x4209e369 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x420ca256 subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x42102144 regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x422a183e sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x422aa765 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x4271fe63 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x428c6dbc cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x42bc0fc2 thermal_generate_netlink_event +EXPORT_SYMBOL_GPL vmlinux 0x42c9d405 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x430e5257 of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0x431289dd digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0x43166e83 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x4349dde7 arizona_clk32k_enable +EXPORT_SYMBOL_GPL vmlinux 0x434fc86e sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x436255ff task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x43667d9a crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x43737daa __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x437856d4 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x43a53735 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x43b466b0 gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL vmlinux 0x43d6e8a5 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x43e27ac5 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x43f097af ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x43fe99c3 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x4408de49 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x44256969 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x444f1735 cpu_pm_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x445dddeb ata_sas_port_async_resume +EXPORT_SYMBOL_GPL vmlinux 0x4475e427 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44c7f503 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x44f0c5f4 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x453317e8 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x454c15ae __smp_call_function_single +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x457b77ca of_fixed_factor_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0x45838796 vtime_guest_exit +EXPORT_SYMBOL_GPL vmlinux 0x4585bcc5 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x4589a127 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x45ba8b79 tcp_fetch_timewait_stamp +EXPORT_SYMBOL_GPL vmlinux 0x45bb21a3 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x46066e5b perf_pmu_name +EXPORT_SYMBOL_GPL vmlinux 0x460f7531 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x461ded92 snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL vmlinux 0x462a2643 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x4646fd01 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x464807ff usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x464b1748 irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x467bc270 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4700eb8f ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x470d39d9 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x470d809e dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x470fa426 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x472bede4 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x474199e6 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x474351d4 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x476285c9 debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0x476b481b usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL vmlinux 0x477a6ec6 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x477d9bfe ahci_reset_em +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x47978168 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x47a85c5c irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47dd9f76 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x47eab58e trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x47eff330 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x47f24d49 snd_soc_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0x482dc760 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x4833fc89 vchan_tx_submit +EXPORT_SYMBOL_GPL vmlinux 0x484bbb6e dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL vmlinux 0x486ddf59 kvm_release_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x4873adf0 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x48ba2763 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x48c2a2f2 ping_close +EXPORT_SYMBOL_GPL vmlinux 0x48ca8947 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x48e22073 snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL vmlinux 0x48eeee21 regmap_update_bits_check +EXPORT_SYMBOL_GPL vmlinux 0x49022553 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x49170512 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x49417412 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x4975195d gpio_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x4982a57f probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x498d293a trace_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49ae2984 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x49b69db6 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x49cf2a6a class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x4a6d9482 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4ab1a16b usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x4ab22b3f each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x4aee3e63 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x4b17b645 of_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x4b17e14e max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x4b188d33 dma_buf_kunmap +EXPORT_SYMBOL_GPL vmlinux 0x4b25d68a debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x4b59d0d8 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x4b633cdf relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x4b6f7a74 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x4b706824 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x4b9f09df shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x4ba14058 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x4baca8ed fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bff4b40 regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x4c164ad2 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x4c1d35e3 snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL vmlinux 0x4c2e1f24 clk_disable +EXPORT_SYMBOL_GPL vmlinux 0x4c44cd11 wm5110_patch +EXPORT_SYMBOL_GPL vmlinux 0x4c47ec15 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x4c602bf1 __blkg_release_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4c75707c inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4ca4c9df clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x4cb8ea6d of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x4cf515cc tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x4d094f8c inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0x4d38f1e0 bL_switcher_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4d909ce8 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x4da5b4d1 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x4db40627 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x4db5b770 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4def2bab inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x4df69a6b usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x4e0f2632 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e242f5f pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x4e2ca07f sec_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x4e42ae7a input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x4e8550cb snd_soc_bytes_get +EXPORT_SYMBOL_GPL vmlinux 0x4eb67851 usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x4ed53d80 snd_soc_get_strobe +EXPORT_SYMBOL_GPL vmlinux 0x4eee3972 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x4ef29549 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f020dee public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x4f0d97fb scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x4f101acb debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x4f2987f1 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x4f2db81f device_move +EXPORT_SYMBOL_GPL vmlinux 0x4f306803 ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0x4f3b8a41 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x4f4d2249 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x4f524926 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x4f6172ff crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x4f64491f vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x4f8435a5 iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0x4f98d766 cpu_pm_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4fa09a3d alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0x4fa3bb65 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x4fb98d60 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x4fc52e8d __tracepoint_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4ff126f5 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0x5008990c tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0x5018c400 css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x5053e2a6 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x50601122 of_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x5061f550 usb_gadget_probe_driver +EXPORT_SYMBOL_GPL vmlinux 0x506691f1 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x506cc085 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50ee4c35 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x50f68510 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x5112d274 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x51209d32 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x51239579 arizona_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x512cf16c wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5148bfd9 ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0x514ba0cd crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x516f7537 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x51762421 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x51786d69 ping_proc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5189bc98 devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0x51ec1f2c snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL vmlinux 0x51f8bca3 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x5200c3b4 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL vmlinux 0x52212010 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x5242b68f cpufreq_governor_dbs +EXPORT_SYMBOL_GPL vmlinux 0x5245b123 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x52532fea ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x5272d8bc __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0x5278e733 vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x52795da3 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x5293f2fc regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x52a41251 __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x52a9a34b kvm_get_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0x52b1001f driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x52d7c262 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x53043983 extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5309d321 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x5347de55 napi_by_id +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x538ce873 pinctrl_find_and_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x53a37cfc ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x53b3e891 md_stop +EXPORT_SYMBOL_GPL vmlinux 0x53bb6bbd cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x53ca6c1f dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x540459e4 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x540997f3 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x5414f0ac get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x5430fbd4 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5434488f blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x5442b7e3 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x54466ad4 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x544aab61 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x5450b248 pinctrl_force_default +EXPORT_SYMBOL_GPL vmlinux 0x545fec86 percpu_ida_for_each_free +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x54697985 irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x5469c583 regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x54740eb7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x54742e2f rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x547d4672 smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x548538f3 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0x5490fa5c cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54c7ab65 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x54f640e1 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x54f75c51 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x554dbbc3 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x5558ad44 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x55777e01 list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x558af54a mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x55b14695 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL vmlinux 0x55f04c21 trace_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x560149a6 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x56042ad9 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x561e4b77 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x5644160b crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x5652a29f class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56886b19 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x568c77ad arizona_clk32k_disable +EXPORT_SYMBOL_GPL vmlinux 0x568d4708 mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x5691aa02 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x5692386f gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56cc2c50 devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x56d697ce cpu_up +EXPORT_SYMBOL_GPL vmlinux 0x56e71122 regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56e9103b cpu_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x56eaf6fe __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x570802fb mtd_writev +EXPORT_SYMBOL_GPL vmlinux 0x57231f45 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x5745eddc filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x574cdc54 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x577ba436 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x579bddf9 get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x579ff8b8 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x57b5fc8a device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x57d169a0 bio_trim +EXPORT_SYMBOL_GPL vmlinux 0x57e4c057 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x57ea8952 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x580024b2 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x5828622f regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0x582be91b wm8997_patch +EXPORT_SYMBOL_GPL vmlinux 0x582d17e6 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x5836d397 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x583ddd8d scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x58413099 ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x58497ea2 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x5858327d ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x585d59b7 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x585f8482 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x5863d5a4 snd_soc_platform_trigger +EXPORT_SYMBOL_GPL vmlinux 0x5870d47b extcon_set_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x58743c07 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x58920f73 call_filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x589e4569 syscon_regmap_lookup_by_pdevname +EXPORT_SYMBOL_GPL vmlinux 0x58c128e6 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x58d3bf8b blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x58e725df ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5947abbe max77693_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x59959d0a cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x59a6e91d clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x59c83427 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x59df54bf usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x59e2574c uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x59e2743e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x59e5d07d device_create +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x5a122835 regulator_can_change_voltage +EXPORT_SYMBOL_GPL vmlinux 0x5a13322e usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x5a31625b usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x5a3a0fba usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x5a509c15 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x5a680af5 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x5a73a0fa register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a7d31c5 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x5a8f3b69 of_irq_parse_raw +EXPORT_SYMBOL_GPL vmlinux 0x5a93abbd crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5aaf05db regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5ab40b93 edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x5ac848b2 snd_soc_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x5add998f netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5b4e379c of_prop_next_u32 +EXPORT_SYMBOL_GPL vmlinux 0x5b8a432b power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x5bb37166 usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x5bbc85ed kvm_write_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x5bc36ea6 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x5bc9a612 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x5bd54853 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x5bf23d3a regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x5c2ae501 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x5c3a06e0 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x5c54f8b4 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x5cabdced dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5d03bf75 device_reset +EXPORT_SYMBOL_GPL vmlinux 0x5d12e48f input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x5d1c1bac blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x5d3c1045 kvm_set_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x5d4e7c99 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x5d519de8 of_init_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x5dc39071 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5de07330 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x5de4994c hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x5e03640b relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x5e094a25 mtd_erase_callback +EXPORT_SYMBOL_GPL vmlinux 0x5e231cd4 pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x5e3ad14d mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x5e3beb6c da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5e51cd74 swiotlb_nr_tbl +EXPORT_SYMBOL_GPL vmlinux 0x5e5dcb60 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x5e7af724 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x5e9aa807 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5ec39e37 snd_soc_cache_write +EXPORT_SYMBOL_GPL vmlinux 0x5ee14829 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x5ee374c8 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x5eec736c virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x5ef47ccc usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x5f16aa22 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f419491 gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x5f4891ef regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x5f5cfac1 pinctrl_utils_reserve_map +EXPORT_SYMBOL_GPL vmlinux 0x5f6624db ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x5f6a21a6 yield_to +EXPORT_SYMBOL_GPL vmlinux 0x5f80b7a2 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0x5f952d6b inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x5fa460f3 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x5fb581c0 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x5fbc2743 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x5fc254f6 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x5fc6d55e ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x5fe0763c adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x5ffac41b snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x5ffec29c crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x60098ca6 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x600b4ee1 devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x60509fd5 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x6074c3fc con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x6094685f wm8997_irq +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60cdbc13 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x60d1d2df driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x60fcdc86 regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x611c275c mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x6130ffae snd_soc_remove_platform +EXPORT_SYMBOL_GPL vmlinux 0x6131a3d6 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0x61323a2d rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x61480a76 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x614b047b ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0x61527fe3 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x61568283 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x61757fb4 regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x61a277f9 vtime_guest_enter +EXPORT_SYMBOL_GPL vmlinux 0x61b9aad9 __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x61bf689d bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x61ccc086 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x61e4098b __module_address +EXPORT_SYMBOL_GPL vmlinux 0x6224a4e3 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x624e5fe2 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0x6255ffde xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x625eb9f8 pwm_can_sleep +EXPORT_SYMBOL_GPL vmlinux 0x6262d3f4 regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0x626fd045 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x6285ef03 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x628fd26b sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x62a22c0a usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x62ca956a transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x62d0dc89 dma_buf_fd +EXPORT_SYMBOL_GPL vmlinux 0x63085512 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6318757f mdio_mux_uninit +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x6390efda of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x63ada971 watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x63d41452 bmp085_probe +EXPORT_SYMBOL_GPL vmlinux 0x63f1841a PageHeadHuge +EXPORT_SYMBOL_GPL vmlinux 0x63ffc697 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL vmlinux 0x640916fa ahci_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x641a548d __put_net +EXPORT_SYMBOL_GPL vmlinux 0x645ac6c1 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x64714226 thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0x647537f3 pl320_ipc_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x648da620 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x64b26f9f crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0x64cd5bc6 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x64d274fa snd_soc_dpcm_be_get_state +EXPORT_SYMBOL_GPL vmlinux 0x64dd7002 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL vmlinux 0x64f7e69d nand_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x6521dcc8 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x6547f685 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x654db193 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x656287b9 kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL vmlinux 0x65645b4b snd_soc_test_bits +EXPORT_SYMBOL_GPL vmlinux 0x6566746c sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65c422b9 unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662a0c3f x509_get_sig_params +EXPORT_SYMBOL_GPL vmlinux 0x6632a0b9 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x664d3505 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x665211ce cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x66555068 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x665da26c dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL vmlinux 0x66811e36 ahci_ops +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL vmlinux 0x66cbb80e nand_release +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x6703f82c ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x670ee745 regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0x67128609 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x674e13e1 public_key_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6751a492 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x67643d26 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x678a1ee8 device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67b2ea93 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x67be5e0c snd_soc_bytes_info +EXPORT_SYMBOL_GPL vmlinux 0x67d0bca0 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x67d85a29 snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL vmlinux 0x67daa651 bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0x67eaa3c8 fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x6812cf8d __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x6816e667 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x681a979b pin_is_valid +EXPORT_SYMBOL_GPL vmlinux 0x68324350 _submit_bh +EXPORT_SYMBOL_GPL vmlinux 0x687934e9 gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x6885824d disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x68956406 static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x68ad3fe0 fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0x68bb2231 tcp_peer_is_proven +EXPORT_SYMBOL_GPL vmlinux 0x6910efe0 snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x6945725e mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0x694be42a usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0x694f923e ahci_thread_fn +EXPORT_SYMBOL_GPL vmlinux 0x6966b78f ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x699fe808 usb_stor_post_reset +EXPORT_SYMBOL_GPL vmlinux 0x69ba3f54 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x69d396b2 virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0x69e03f72 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a09c64a skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x6a0a731b ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0x6a1733eb iommu_group_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6a4f9b14 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a65e7d5 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x6ab6d14b pinctrl_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0x6af1fe82 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6b0c69b2 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b46357c gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0x6b5f37ba hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x6b67dc71 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x6b73a063 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL vmlinux 0x6b77d229 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x6b9e7ad7 of_clk_src_simple_get +EXPORT_SYMBOL_GPL vmlinux 0x6b9f05e4 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x6bcbbb82 tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0x6bd363bb __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x6c1b09ab gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x6c25ce36 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c749afe __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cc0faf4 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x6cc78c5c set_irq_flags +EXPORT_SYMBOL_GPL vmlinux 0x6cd21997 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x6cd4ea62 wm5110_irq +EXPORT_SYMBOL_GPL vmlinux 0x6ce389bf vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x6cf6c4c1 led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x6d2b3d67 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d31e93b tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x6d339861 __tracepoint_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x6d39f6d6 __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6d59a3ce snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL vmlinux 0x6d9e5425 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x6dc61556 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x6de862c3 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x6dfdd58b regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x6e04a077 usb_bind_phy +EXPORT_SYMBOL_GPL vmlinux 0x6e05c4e7 ahci_hw_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x6e1c6020 register_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x6e658db9 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x6e7943ec iommu_group_id +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6ec2247a xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x6ecd433c wm8400_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x6f163cf4 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x6f1dcd7e spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f794691 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x6f89209c regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x6f89ce98 dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x6fa62807 pinctrl_dev_get_devname +EXPORT_SYMBOL_GPL vmlinux 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL vmlinux 0x6fdd33a9 proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x700980f4 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x7014e2a8 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x707c08f4 cgroup_taskset_first +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70bb651d __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70d85f89 alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x70e5ef52 pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0x70efe5b8 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x71008581 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x710ba19d __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7127e664 dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x712c26e3 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL vmlinux 0x713cea1e spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x715d253c ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x717d8613 mtd_erase +EXPORT_SYMBOL_GPL vmlinux 0x71913b77 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x71930ed3 of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x719472ce page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x71a79ff9 devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x71b6e4d6 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL vmlinux 0x71c45e9c regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x71d25272 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL vmlinux 0x71d6ec49 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x71e36225 public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x71eb947b user_update +EXPORT_SYMBOL_GPL vmlinux 0x71ec8b72 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x72209668 amba_apb_device_add +EXPORT_SYMBOL_GPL vmlinux 0x7244706e pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x72635a1e pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7280740f wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x7291019b __cci_control_port_by_index +EXPORT_SYMBOL_GPL vmlinux 0x7295cda5 usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x72a5fcbf blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x72bf686b sk_unattached_filter_destroy +EXPORT_SYMBOL_GPL vmlinux 0x72d0a229 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x72dacaff snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL vmlinux 0x730bd0c7 asic3_write_register +EXPORT_SYMBOL_GPL vmlinux 0x732c2d3b mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x734a6788 extcon_unregister_interest +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73ad6da3 tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x73c11b10 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x73c832f2 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73ee341d snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL vmlinux 0x740a2a8c blk_queue_bypass_start +EXPORT_SYMBOL_GPL vmlinux 0x7412f82b arm_iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x7422c95e gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x744491b1 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x74628570 context_tracking +EXPORT_SYMBOL_GPL vmlinux 0x7464ea38 dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x74750d38 imx_usbmisc_init_post +EXPORT_SYMBOL_GPL vmlinux 0x7479169e raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x74802702 pinctrl_find_gpio_range_from_pin +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74a8de96 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL vmlinux 0x74b1eee7 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74e80746 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x74efb883 dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x75092a51 mount_mtd +EXPORT_SYMBOL_GPL vmlinux 0x750e3584 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x7515c901 dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x755fbed0 blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x75620e9e anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x758a782e blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x758eace0 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x759c1108 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x75a2b3f7 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x75b5a880 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x75c2b9f1 memalloc_socks +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75e99486 kvm_read_guest_cached +EXPORT_SYMBOL_GPL vmlinux 0x75f7dda4 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x760aab0e snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL vmlinux 0x7648287e skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x76747717 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x76938791 gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL vmlinux 0x76bc9c0c blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x76d07d6e gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x771aa405 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x772070c4 pwm_disable +EXPORT_SYMBOL_GPL vmlinux 0x77214cea sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x7726bb42 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x7729cbdd task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x772bf1b0 uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x774d0ed9 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x776b9c4d fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x7775737f subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x7783bbf0 regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0x77c8b484 snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL vmlinux 0x77e2709d cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0x78368c02 dev_pm_opp_get_freq +EXPORT_SYMBOL_GPL vmlinux 0x7840b42c hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x78415acf relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x784ad247 gfn_to_hva +EXPORT_SYMBOL_GPL vmlinux 0x784af678 put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x785864b1 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x786ffd73 posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0x787a6b37 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x78899e03 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x78962f68 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x78c76022 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x78db17eb debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x7939b560 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x793e78da blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x796694fa irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x796c163b sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x7980df29 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x798a46f8 crypto_lookup_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x79a7c982 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x79e1bc8b ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x7a13d81d platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x7a2eace3 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7a319404 clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x7a4011fb iommu_domain_window_enable +EXPORT_SYMBOL_GPL vmlinux 0x7a431bb2 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x7a4b4214 snd_soc_get_dai_substream +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7aa445f3 of_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL vmlinux 0x7aa8c9a8 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x7ab3ca18 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x7aca4998 snd_soc_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x7acf31bb find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7af6f985 cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0x7b0a4a80 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b1e41e2 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x7b2821c6 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x7b28fbcf ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x7b2fcea4 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x7b53962a clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x7b7f6503 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x7bb9fc23 dma_buf_get +EXPORT_SYMBOL_GPL vmlinux 0x7bbcf9a5 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL vmlinux 0x7be41c9d snd_soc_unregister_codec +EXPORT_SYMBOL_GPL vmlinux 0x7c01284a root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7c227088 clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x7c2f8c1d gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x7c346357 pkey_algo +EXPORT_SYMBOL_GPL vmlinux 0x7c3fc931 sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x7c45d494 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x7c53de2a regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x7c6a49ce unix_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x7c7bee4f iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0x7c89a16f stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x7c8e0467 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x7ca0a2ad mtd_add_partition +EXPORT_SYMBOL_GPL vmlinux 0x7cb6f6c1 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x7cc1b7fd max77693_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7cc7de1c x509_check_signature +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ce5b92a gpiod_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cf80453 irq_create_direct_mapping +EXPORT_SYMBOL_GPL vmlinux 0x7d36e534 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7d397cc7 gpiod_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d9eec1b devm_snd_soc_register_component +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc7c1fe snd_compress_deregister +EXPORT_SYMBOL_GPL vmlinux 0x7dfefda1 dev_pm_opp_enable +EXPORT_SYMBOL_GPL vmlinux 0x7dfff705 __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7e0c72eb ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x7e1fbd6d regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x7e30483b crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x7e33c929 snd_soc_put_strobe +EXPORT_SYMBOL_GPL vmlinux 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e92e846 dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x7ead21c3 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x7ed0faed usb_stor_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x7ed68941 asic3_read_register +EXPORT_SYMBOL_GPL vmlinux 0x7f150703 dapm_mark_io_dirty +EXPORT_SYMBOL_GPL vmlinux 0x7f60e837 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x7f6c870d snd_soc_write +EXPORT_SYMBOL_GPL vmlinux 0x7f818f55 netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x7f823498 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x7f984eaa dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x7fa9ceff sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x7fab5350 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fb50015 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x7fdfce85 iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0x7feae0d6 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x8000b3f6 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x800e99e8 thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0x8010d2c6 percpu_ida_free +EXPORT_SYMBOL_GPL vmlinux 0x80341e31 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x805d858f mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL vmlinux 0x805eca7b kick_process +EXPORT_SYMBOL_GPL vmlinux 0x8083b9fd crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80a65392 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x80f4a716 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x80f5f488 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x8140842a gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x8160d0c7 sdhci_add_host +EXPORT_SYMBOL_GPL vmlinux 0x8173e628 dev_pm_opp_find_freq_floor +EXPORT_SYMBOL_GPL vmlinux 0x81aa0838 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x81d1b8d6 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x81d1fc6b regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x81e05227 mtd_is_partition +EXPORT_SYMBOL_GPL vmlinux 0x81f45c82 of_usb_get_maximum_speed +EXPORT_SYMBOL_GPL vmlinux 0x8210ea6b tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x825da433 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x8268cbee blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x8297079e ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x82caa49e fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82eb37d6 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x82f8ee18 snd_soc_lookup_platform +EXPORT_SYMBOL_GPL vmlinux 0x82fff37e sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x8318258b cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x8318eb66 clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x834616bb sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x834a9e7c __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x83630aad ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x837892f7 dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x837fc75b fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x8392aafe vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x839633d4 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x83986878 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0x83a5ae2e __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x8402515a vchan_init +EXPORT_SYMBOL_GPL vmlinux 0x8420bccd cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x84277541 dev_pm_opp_get_opp_count +EXPORT_SYMBOL_GPL vmlinux 0x844bc643 snd_soc_dapm_free +EXPORT_SYMBOL_GPL vmlinux 0x8490ee30 gfn_to_pfn_prot +EXPORT_SYMBOL_GPL vmlinux 0x8493aa7d securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x8497f1c9 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x84eb7a23 iommu_attach_group +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x850ff320 devm_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x852e568d of_get_nand_ecc_mode +EXPORT_SYMBOL_GPL vmlinux 0x85469eb0 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x856629e7 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x8574ca6c gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x85897c8b crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0x8598d5a7 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x85b14d33 clk_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c71031 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85fdd8e3 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x860bae13 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x862b9816 cpu_topology +EXPORT_SYMBOL_GPL vmlinux 0x8632417c module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x863b84d4 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x8641f999 regmap_update_bits_async +EXPORT_SYMBOL_GPL vmlinux 0x866b9687 wm8997_aod +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x868fb467 ata_sas_port_async_suspend +EXPORT_SYMBOL_GPL vmlinux 0x86982d32 ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x86cd9e9e irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x86db36b7 key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86ffbf0b hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x87519171 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x875cbf71 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x8763d3f3 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x8768f7b3 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x876d3cee irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x878e7ec1 dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x87984b16 __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x879d2feb regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x87b9aaf4 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x87ba8758 __cci_control_port_by_device +EXPORT_SYMBOL_GPL vmlinux 0x87bb4e32 of_usb_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x87c54668 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x87cf1053 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x87e049b2 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x87eef02c rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x881a1cd3 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x8822a662 devm_snd_soc_register_card +EXPORT_SYMBOL_GPL vmlinux 0x883c2740 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x8859c7c9 regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x88890438 cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8890ce86 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x88924103 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b5647c trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x88e4347c raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x890834a0 snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89261cef kvm_resched +EXPORT_SYMBOL_GPL vmlinux 0x89485687 iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x8990be86 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x8991effe ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89dbdcc1 __tracepoint_map +EXPORT_SYMBOL_GPL vmlinux 0x89e57cbb gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x8a04b9fe tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x8a2b14ba wm5110_aod +EXPORT_SYMBOL_GPL vmlinux 0x8a79b9f8 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x8a7b74de skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x8aa92d8d pinctrl_pm_select_sleep_state +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ae152b5 of_get_nand_bus_width +EXPORT_SYMBOL_GPL vmlinux 0x8ae1cf71 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x8aea4d44 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0x8aff9c24 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x8b030a35 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x8b22a45a anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8b25144e device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x8b25d96c crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x8b775d3a __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x8b85463f sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x8b9286d8 kobj_completion_release +EXPORT_SYMBOL_GPL vmlinux 0x8ba854ac ahci_em_messages +EXPORT_SYMBOL_GPL vmlinux 0x8bd1d559 regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x8bd6e81e wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x8bda66e8 kvm_read_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x8be1b9cf snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL vmlinux 0x8bf093c4 devm_rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8bf4fdd9 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c2a73e4 iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x8ca08204 amba_device_put +EXPORT_SYMBOL_GPL vmlinux 0x8ca39621 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x8cb36c2b spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x8ccc434b napi_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x8ce2e2e6 devres_release +EXPORT_SYMBOL_GPL vmlinux 0x8ce50910 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x8ce8b708 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL vmlinux 0x8d22bb58 iommu_group_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8d29c804 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x8d52eab0 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x8d8b4ff2 blkg_prfill_stat +EXPORT_SYMBOL_GPL vmlinux 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL vmlinux 0x8da713a9 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x8de499b1 ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x8de7309a pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8df31799 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL vmlinux 0x8e59025c tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x8e7894bd __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8e90cba6 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x8e99f324 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL vmlinux 0x8e9a8a86 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL vmlinux 0x8e9c7933 gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x8eed796e scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x8effebd3 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x8f00ed5e iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x8f01fda1 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x8f4715ca pwm_set_polarity +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f74d16a get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x8f7c5d90 input_class +EXPORT_SYMBOL_GPL vmlinux 0x8f8128ce regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0x8f902a2c gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x8fa45308 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x8fbe438e regmap_field_write +EXPORT_SYMBOL_GPL vmlinux 0x8ff11ea3 amba_ahb_device_add +EXPORT_SYMBOL_GPL vmlinux 0x8ff152ac bmp085_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x9014b711 usb_stor_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x901770a4 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x90228869 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x9040dcee sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x9044d676 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x90574050 cci_ace_get_port +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90705b7f syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x9082d068 kprobe_decode_arm_table +EXPORT_SYMBOL_GPL vmlinux 0x90844388 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x90866ecb thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x90984529 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90d45eaa sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x90d9418d usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x90e47407 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x90e66d47 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x90ecc9d0 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x9105b26d inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x9106c5df verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x91286982 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x913d1a39 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x914f618c wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x91874493 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91947526 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL vmlinux 0x91c0d379 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x91c9e961 watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0x91dad723 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x921436a4 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x9235f514 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x9244ddc6 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x925c2924 ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0x92737ba1 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x927b89b9 mmc_send_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x92abb170 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92c3a383 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x92c43da1 put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92db8f68 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x930ed9b9 of_usb_get_dr_mode +EXPORT_SYMBOL_GPL vmlinux 0x931fef1c rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9332b52d bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x933e3b6f devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x934dfc18 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x9355bd84 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x93713288 mtd_unpoint +EXPORT_SYMBOL_GPL vmlinux 0x93aef61e bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x93b65863 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x93e83761 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x940335ef pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x94070249 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x941effc9 tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x94249d75 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x944af26b sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL vmlinux 0x94677a9c rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x94838851 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x94a54b68 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94abb745 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0x94e1823c hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x94f348c6 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x9531dbf1 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x95347d09 regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x95814ac7 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x959139ca crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x95b8c47b skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x95ba840e snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL vmlinux 0x95c19432 of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x95c86ab7 regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x95d087d5 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x95d4e17f regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x95f6ee15 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x9619908b virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x9623d4e6 dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0x9630fe43 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x9634bb6c clk_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x964af882 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x96535148 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x965e5e88 ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0x966cf390 devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x966eb302 ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0x969d7722 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x96a22790 vmcore_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x96ad5aa2 devm_pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x96c21dc9 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x96f24655 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x9727d4da ahci_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x9730c462 gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x974126a2 subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x97445290 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x9745c52a of_fixed_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0x97689349 __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x9768bbd6 kill_mtd_super +EXPORT_SYMBOL_GPL vmlinux 0x97704c40 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x97a3ec56 ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x97a9e78b wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x97b34982 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x97c89262 dapm_reg_event +EXPORT_SYMBOL_GPL vmlinux 0x97d4b669 arizona_of_get_type +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x97dfe229 irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x97eba049 ping_err +EXPORT_SYMBOL_GPL vmlinux 0x980daa2c irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9837187c tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9852ddc1 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x98c9f584 klist_init +EXPORT_SYMBOL_GPL vmlinux 0x98fa1e20 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x99179a03 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x995da720 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x995e8a5e tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x996499e9 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x99693b15 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x996fcf66 snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL vmlinux 0x9973add9 __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x997b5675 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x99f9a914 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a181b50 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x9a199ecf usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x9a40abbb cgroup_taskset_next +EXPORT_SYMBOL_GPL vmlinux 0x9a4d7f1c usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x9a89dbf7 lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x9ab06488 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9aca444b get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9b14967d kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL vmlinux 0x9b1f3ce2 sdhci_get_of_property +EXPORT_SYMBOL_GPL vmlinux 0x9b2fec13 vtime_common_account_irq_enter +EXPORT_SYMBOL_GPL vmlinux 0x9b391822 dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x9b397c52 irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x9b9344b2 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x9b9b31f9 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x9ba3af77 ping_seq_fops +EXPORT_SYMBOL_GPL vmlinux 0x9bc5e309 lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0x9bd7c896 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9bea7a40 wm5102_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9bf7afd9 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x9c052aa4 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9c1ae11c sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x9c340266 css_next_child +EXPORT_SYMBOL_GPL vmlinux 0x9c3bce57 __netpoll_free_async +EXPORT_SYMBOL_GPL vmlinux 0x9c3e5b59 percpu_ida_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9c56c1ed unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x9c5c1748 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0x9c728f86 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x9c74eecd devm_spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x9c78b95c rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x9c8f161a pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x9c98051c sdhci_pltfm_free +EXPORT_SYMBOL_GPL vmlinux 0x9ca47a85 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x9cc4f70a register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9d0dbc0e unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x9d138533 percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x9d292bfc balloon_mapping_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9d34ea26 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x9d4ac3c2 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x9d62ff5b ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x9d8167f5 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x9d8331c0 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x9dad5ef7 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9db664b5 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x9dcb3b32 usb_add_gadget_udc +EXPORT_SYMBOL_GPL vmlinux 0x9de82629 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x9dfdf722 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x9e02cdaf powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0x9e0c16eb da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x9e0d02c1 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x9e260006 snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL vmlinux 0x9e4881cf blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0x9e5d0a63 kvm_vcpu_block +EXPORT_SYMBOL_GPL vmlinux 0x9e65832b tpm_read +EXPORT_SYMBOL_GPL vmlinux 0x9e9225cd regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x9ebfe06e list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9f018420 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0x9f0664bf dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x9f3f98e1 of_get_nand_on_flash_bbt +EXPORT_SYMBOL_GPL vmlinux 0x9f462ef7 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x9f72710b sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9f7ed8e5 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x9fb424e0 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x9fb9ffe6 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fd55607 ahci_init_controller +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x9fecde47 kobj_completion_init +EXPORT_SYMBOL_GPL vmlinux 0xa0316846 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xa033df40 clk_register_divider +EXPORT_SYMBOL_GPL vmlinux 0xa038d410 mtd_table_mutex +EXPORT_SYMBOL_GPL vmlinux 0xa048d125 sdhci_pltfm_init +EXPORT_SYMBOL_GPL vmlinux 0xa05a1d63 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0xa064f393 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xa07439aa stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0xa0776a7b elv_register +EXPORT_SYMBOL_GPL vmlinux 0xa0aa23ff device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0xa0aa669e spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xa0d22ef4 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0xa0e39446 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xa0fc980f ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL vmlinux 0xa0ffd21a regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0xa112f26c platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xa129002f sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xa12d929d desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0xa13059fc ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xa142a305 nf_queue_entry_release_refs +EXPORT_SYMBOL_GPL vmlinux 0xa159a929 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xa17e8990 devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xa1bd7822 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa1c1e388 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xa1d32263 devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0xa1ef7039 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0xa237907e ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xa23d6853 pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0xa248d9c9 of_extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0xa253d01b serial8250_tx_dma +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa271d102 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xa2740e9a shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL vmlinux 0xa287173b dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xa294100e dma_buf_attach +EXPORT_SYMBOL_GPL vmlinux 0xa2b44c7f devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa2b9c993 clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0xa2e20e4a crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0xa2e4a04c __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0xa31dece8 need_load_eval +EXPORT_SYMBOL_GPL vmlinux 0xa31f4fb6 snd_soc_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa32fed62 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xa3300a46 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xa3409edd iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0xa3444aa8 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xa353c53e inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xa36a3e24 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xa3782ef7 regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0xa3837bca ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa389a49a profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0xa3b3e0b3 irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0xa3bc0937 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xa3c64e51 dma_buf_mmap +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa3eab51f usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0xa4019088 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0xa4066f1b skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0xa46efae7 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa49d2980 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xa4b172ac amba_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa4b31a07 iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0xa4cc08ee put_pid +EXPORT_SYMBOL_GPL vmlinux 0xa4cd49a4 usb_stor_CB_reset +EXPORT_SYMBOL_GPL vmlinux 0xa4d0ad13 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xa4e8bf69 blkg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa4ea04ee of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0xa50c2303 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xa512f96e sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa5432574 pinctrl_remove_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0xa555ebce gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xa5675a51 arizona_dev_init +EXPORT_SYMBOL_GPL vmlinux 0xa58534c8 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xa589ec4c regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0xa5ba98d0 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xa5cea817 usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5f8854a usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xa61b1477 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xa625110d kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0xa64f27c2 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xa67517a0 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xa6a0a273 max77693_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa6b21ef2 dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0xa6beb84d snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa6f47e03 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xa70fb35d __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xa724257f init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xa728626c unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xa75312bc call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0xa7567778 devm_pwm_put +EXPORT_SYMBOL_GPL vmlinux 0xa75811d0 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xa7744ebb arizona_set_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0xa774c540 blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0xa782b363 __netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0xa784d614 usb_gadget_map_request +EXPORT_SYMBOL_GPL vmlinux 0xa7aed12e devm_regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xa7f6c674 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa80e5f2f snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL vmlinux 0xa84f769b irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa8561a25 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xa875fe10 snd_soc_limit_volume +EXPORT_SYMBOL_GPL vmlinux 0xa8870b41 fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0xa8bc717e percpu_ida_free_tags +EXPORT_SYMBOL_GPL vmlinux 0xa8ccb52c skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0xa8e8153c __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa8ec9403 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xa908c3b4 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0xa90f729b ahci_start_fis_rx +EXPORT_SYMBOL_GPL vmlinux 0xa9364e33 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xa9738a4e __get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0xa980af16 RSA_public_key_algorithm +EXPORT_SYMBOL_GPL vmlinux 0xa9aef2e1 gfn_to_hva_memslot +EXPORT_SYMBOL_GPL vmlinux 0xa9b2e397 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xa9e18049 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9fb74a2 of_device_is_stdout_path +EXPORT_SYMBOL_GPL vmlinux 0xa9fe73ee register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xaa0025eb usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0xaa06f81b usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa417a86 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xaa5fc5e4 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xaa66a5f4 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xaa70f199 devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xaa8271fd blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaab45034 alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0xaae54b69 cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0xaae605aa wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xaaf09589 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xaaf5402b ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xab1812b3 sdhci_remove_host +EXPORT_SYMBOL_GPL vmlinux 0xab2b8f63 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xab2e0f70 ci_hdrc_add_device +EXPORT_SYMBOL_GPL vmlinux 0xab60c1aa dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab867902 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xabaaa5df pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xabafc6a6 mtd_unlock +EXPORT_SYMBOL_GPL vmlinux 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL vmlinux 0xac35f901 ahci_start_engine +EXPORT_SYMBOL_GPL vmlinux 0xacaaf816 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xacb31a00 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xacc5bdac usb_gadget_unmap_request +EXPORT_SYMBOL_GPL vmlinux 0xacd9165e spi_master_resume +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacf0c5a2 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0xacfd91c9 sec_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xad2522a2 ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0xad255c94 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xad25ad6f __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0xad376749 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0xad518af2 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xad647d3e usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xad957fc3 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xada1346e device_store_int +EXPORT_SYMBOL_GPL vmlinux 0xadb14cc2 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadcbf88d pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0xade167ae usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xadecfc2b snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae142b1e snd_soc_jack_report +EXPORT_SYMBOL_GPL vmlinux 0xae2554c4 of_clk_src_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0xae33a927 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xae34d86e ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0xae34eadb amba_apb_device_add_res +EXPORT_SYMBOL_GPL vmlinux 0xae43c244 ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0xae4639d6 sock_update_netprioidx +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae8aa931 dev_pm_opp_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xae8d39c2 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xae912128 pwm_enable +EXPORT_SYMBOL_GPL vmlinux 0xae95d303 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0xae9f9d59 nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0xaeb97ed2 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xaec12eb8 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xaecb5e73 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xaed372f9 __mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0xaefe0991 register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xaf348da7 cpu_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0xaf5d7aac snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL vmlinux 0xaf65482d init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xaf671c3d sec_reg_update +EXPORT_SYMBOL_GPL vmlinux 0xaf7476ce wait_for_tpm_stat +EXPORT_SYMBOL_GPL vmlinux 0xaf86b830 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xaff2ed7e user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xb0022a3d sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xb0135446 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xb0149c4f key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0xb050f329 init_rs +EXPORT_SYMBOL_GPL vmlinux 0xb07f9560 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xb082a1b8 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xb0adf00b tpm_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0cd4f20 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xb0ed75f8 devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0xb0f0327f ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb1159bbe sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xb1187d13 snd_soc_read +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb16b4a44 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xb176a16d shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1a7e3f6 clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1bed25d dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0xb1c0c1c2 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xb1c79131 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xb1cd59cd pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xb1cd99b3 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb1e72fc3 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0xb1f3c1b5 usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0xb208fd0e perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0xb20af6be dma_buf_end_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0xb21fc2ec key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb2338383 ahci_stop_engine +EXPORT_SYMBOL_GPL vmlinux 0xb2628307 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xb27e3794 dbs_check_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb29cc4ff driver_find +EXPORT_SYMBOL_GPL vmlinux 0xb2b4b318 register_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0xb2c3e5e4 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xb2c809c6 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xb2dbac51 perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb310ed0f sdhci_disable_irq_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xb33416f7 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xb33efab7 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb34ca64c device_del +EXPORT_SYMBOL_GPL vmlinux 0xb3661ddb tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xb36a3dd4 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xb383c4e3 clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0xb38f56d6 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xb392f27a cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xb3c02542 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0xb3f5cc9a key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0xb4138a98 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0xb42598e4 sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0xb425ea51 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xb42a418e xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xb4430149 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0xb4609599 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xb48d74e8 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xb492533d regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4e5fc05 alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb5049968 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xb506ce4b tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb52bb020 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xb56067b6 gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5a0e11e lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0xb5bdf9aa get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xb5cb8145 hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xb5d9d3d8 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xb5e896fb tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb5f8d89f pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0xb6180fe2 snd_soc_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xb61e7fbc kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb6680d47 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb67b2219 cm_suspend_again +EXPORT_SYMBOL_GPL vmlinux 0xb67b2ac6 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0xb67c64fd __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6baf287 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xb6c635af wm5110_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb6cdd369 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0xb6d24996 of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0xb6f2c578 __tracepoint_unmap +EXPORT_SYMBOL_GPL vmlinux 0xb6f9db49 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL vmlinux 0xb705a72f device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xb708e75b snd_soc_add_codec_controls +EXPORT_SYMBOL_GPL vmlinux 0xb74114fa __mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xb747e1da crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb75ae014 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xb771e6b7 bL_switch_request_cb +EXPORT_SYMBOL_GPL vmlinux 0xb7ac633c snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL vmlinux 0xb7b912f9 regmap_fields_write +EXPORT_SYMBOL_GPL vmlinux 0xb7c743b6 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xb7ca406d spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb8346aeb percpu_ida_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb84984a0 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0xb858c8a6 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0xb85df69d tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0xb860bd72 user_read +EXPORT_SYMBOL_GPL vmlinux 0xb8987c86 ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0xb8a71202 snd_soc_dapm_kcontrol_codec +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb9083465 kvm_put_kvm +EXPORT_SYMBOL_GPL vmlinux 0xb90e7754 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xb9176155 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0xb928877d tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xb9319785 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0xb9439756 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0xb95fda5e pinctrl_utils_dt_free_map +EXPORT_SYMBOL_GPL vmlinux 0xb961003b crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb9804c48 da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0xb98e2c9d stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xb99fc8d7 sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9dc7e68 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xb9e87b94 bL_switcher_trace_trigger +EXPORT_SYMBOL_GPL vmlinux 0xba00bdb3 ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0xba1c6ea5 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xba43edd2 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xba7fcb1e usb_gen_phy_init +EXPORT_SYMBOL_GPL vmlinux 0xba8b0c6a da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0xba95c3a1 dev_pm_opp_add +EXPORT_SYMBOL_GPL vmlinux 0xbab018b0 irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0xbabb26a7 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb11cfba klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xbb20dd6f fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbb4b4bb2 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xbb4c8ec1 serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0xbb513948 devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0xbb68e78f tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xbb6a1578 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xbbb5812d bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0xbbc5ca88 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xbbf320c3 devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xbbface73 get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0xbc008dc3 of_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xbc21f8d8 da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xbc64cc64 snd_soc_unregister_component +EXPORT_SYMBOL_GPL vmlinux 0xbca7b001 powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0xbcac6160 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbcad1c0d cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xbcaf3971 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0xbcbaa80a __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0xbcc5a636 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbcd20740 snd_soc_cache_sync +EXPORT_SYMBOL_GPL vmlinux 0xbcdd5b99 iommu_group_set_name +EXPORT_SYMBOL_GPL vmlinux 0xbce93151 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xbcf89ab6 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xbcf8f617 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xbd0a8960 blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0xbd117425 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xbd25d6f0 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xbd5cb8b9 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbd721a61 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xbdc4994e ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xbdd1e708 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd52921 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xbdf512de free_bch +EXPORT_SYMBOL_GPL vmlinux 0xbdfaabc7 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe650d12 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0xbe987b78 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0xbe9d0d52 fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0xbea5ff1e static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0xbec5fbb6 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xbec9b8d9 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL vmlinux 0xbeeaf8de pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0xbefe47f8 trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf256de2 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xbf3cc4eb ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xbf41d518 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xbf9f9cbf vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xbfc23fa5 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xbffb14d6 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0xc0008edf fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xc01fa711 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xc025cfd6 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xc02a27f3 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xc0504abe device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xc081c246 bL_switcher_put_enabled +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0cdb175 napi_hash_del +EXPORT_SYMBOL_GPL vmlinux 0xc0d01bc0 percpu_ref_cancel_init +EXPORT_SYMBOL_GPL vmlinux 0xc0d26387 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc11b45c6 gpiod_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc11d9576 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xc12066a5 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc15c8d47 mtd_is_locked +EXPORT_SYMBOL_GPL vmlinux 0xc1621a06 edac_subsys +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1790e3f devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xc1791589 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0xc18578ed process_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc1a23d42 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xc1a559da smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0xc1ea2941 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xc20d35f7 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc23302e4 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xc242bdd4 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xc2518814 blkg_stat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0xc2622243 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0xc26cd7fc iommu_domain_get_attr +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2a6e0d5 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xc2c807c3 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc2ccda2e ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xc2cf5874 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xc2fc6e67 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0xc307bfcc clk_register_mux_table +EXPORT_SYMBOL_GPL vmlinux 0xc31270e0 pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0xc312e0a7 gfn_to_memslot +EXPORT_SYMBOL_GPL vmlinux 0xc32f0235 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xc334db1c virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc385cb58 perf_num_counters +EXPORT_SYMBOL_GPL vmlinux 0xc397a1ed map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xc3b93bba klist_next +EXPORT_SYMBOL_GPL vmlinux 0xc3e486a3 clockevents_unbind +EXPORT_SYMBOL_GPL vmlinux 0xc407a1d4 gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc42c93de __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0xc43d3089 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xc448f22b kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xc454fc7b twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc46e05e7 task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0xc47074cf ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xc471c67a twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc47765f3 devm_usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4b10170 dev_pm_opp_find_freq_ceil +EXPORT_SYMBOL_GPL vmlinux 0xc4c3fbb5 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0xc4d0d6f1 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xc4d3dad5 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0xc516a1c7 device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xc52c2045 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc55fca04 regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc5ae0dd6 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xc5be6022 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xc5c9da4b scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xc5ccabdf fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xc5d0f490 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL vmlinux 0xc5d37180 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0xc5f93564 regmap_update_bits_check_async +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc639b112 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0xc63a1109 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xc649229a clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc66b77b1 iommu_group_set_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xc68aa090 mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xc68e8078 ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0xc690866c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6a25b94 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0xc6a33432 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xc6a6d33e __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0xc6bca2ac dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0xc6da6018 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xc6e0a344 ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xc6fe1f10 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0xc705d5a3 subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc706132b usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc71a1131 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc73bd931 dma_buf_map_attachment +EXPORT_SYMBOL_GPL vmlinux 0xc748eb9e pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xc77e9505 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xc782bc66 iommu_domain_set_attr +EXPORT_SYMBOL_GPL vmlinux 0xc7937c6c serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0xc79b276e kvm_vcpu_uninit +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7a8d1cf ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc7b1bfb6 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xc7c6391c mpi_set_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc7e39bca ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc7e5d32f usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0xc8036bdf inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xc808fb0c regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xc8131e63 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL vmlinux 0xc8579893 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc8aa3d1e ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8b96a93 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc8f179b3 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xc90964dd tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc97c3847 usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0xc97d1140 cpufreq_cooling_get_level +EXPORT_SYMBOL_GPL vmlinux 0xc9837212 arm_iommu_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0xc9cdff19 nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0xc9d547fc rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca023ee7 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xca11d63b sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xca55fc6b usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xca78c8e9 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca946187 of_clk_add_provider +EXPORT_SYMBOL_GPL vmlinux 0xcaae3b21 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0xcab37377 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcad176a7 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xcb133d95 mtd_get_device_size +EXPORT_SYMBOL_GPL vmlinux 0xcb1dc534 ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcb2a336b scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xcb469d2b ddebug_add_module +EXPORT_SYMBOL_GPL vmlinux 0xcb536ca6 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xcb604f28 pinctrl_utils_add_map_configs +EXPORT_SYMBOL_GPL vmlinux 0xcb6de777 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xcb788dcb dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0xcb8944a9 ahci_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xcb8fe0fb __mmu_notifier_invalidate_range_end +EXPORT_SYMBOL_GPL vmlinux 0xcb9b162e clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0xcba0a5cd virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0xcbadb3cf inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xcbb9675b __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0xcbbd2964 __kvm_set_memory_region +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc0e4005 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc5a31cf single_open_net +EXPORT_SYMBOL_GPL vmlinux 0xcc6b408a fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0xcc85fcb6 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0xcca938e8 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xcca98a07 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0xcca99581 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xccab9778 cpufreq_table_validate_and_show +EXPORT_SYMBOL_GPL vmlinux 0xccbdfac1 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xccbfe1a2 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xccc9d131 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0xcccbf853 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd0e3b4 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xccd712b7 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xccf801cd usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL vmlinux 0xccfe60ca usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xcd703020 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xcd728c68 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xcd8bd00a pinctrl_pm_select_idle_state +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcd960f8d ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xcda2b728 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0xcdb8faf6 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xcdbc2468 amba_ahb_device_add_res +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcde63159 gpio_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xcded5af4 pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0xce07b225 fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0xce0b9b59 max77693_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xce46e140 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xce5ac822 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0xcebb83a6 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xcebfa3b1 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0xcec5b0bf usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xcec633a3 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xcee8627a register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xcef40ca2 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0xcf0eb3c8 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xcf192a15 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xcf1db551 snd_soc_unregister_card +EXPORT_SYMBOL_GPL vmlinux 0xcf2c3bef led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xcf40f616 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL vmlinux 0xcf4fcc8c crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xcf54ea93 async_unregister_domain +EXPORT_SYMBOL_GPL vmlinux 0xcf827a7a irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0xcf8905b5 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfe64e05 sdhci_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0xcfef1f6e mtd_point +EXPORT_SYMBOL_GPL vmlinux 0xcff4c2c7 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xd014d914 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xd0334525 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd04e280d snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd06b4705 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xd0a97d82 snd_soc_resume +EXPORT_SYMBOL_GPL vmlinux 0xd0acdc7b device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0d47196 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xd0e1a150 alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0xd0ecb773 ahci_set_em_messages +EXPORT_SYMBOL_GPL vmlinux 0xd0f78578 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xd119ed2c dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xd11ad3b2 blk_queue_bypass_end +EXPORT_SYMBOL_GPL vmlinux 0xd12e01a2 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xd12ea0ea crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xd14bc4d9 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xd1607eb8 dma_buf_vunmap +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd17fe985 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0xd1822f0b cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd182f9ae snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1c509d1 list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0xd1ddd44d key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xd1ef31ce ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0xd1f0a011 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xd1fc793f ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd210e841 device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd2534497 irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0xd258217d clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0xd2640c94 balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd27a5033 pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0xd28c273b regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xd290552f virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0xd2aaeb4e kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0xd2bae54e rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd2fd3e42 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xd2ff391f regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0xd31499ed da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd333da51 dma_buf_detach +EXPORT_SYMBOL_GPL vmlinux 0xd33ada8b cci_probed +EXPORT_SYMBOL_GPL vmlinux 0xd388f100 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xd3983b99 fill_inquiry_response +EXPORT_SYMBOL_GPL vmlinux 0xd3e24102 mtd_read +EXPORT_SYMBOL_GPL vmlinux 0xd3f739cc aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xd3ffea12 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd40ebee3 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xd420aabf add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd44c2f38 cci_disable_port_by_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd45109b1 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0xd452645c gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL vmlinux 0xd46d29f2 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xd49f8e37 lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0xd4a697c6 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xd4ae4afb usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xd4b15f28 md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4cad45e clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xd4fb02e6 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xd5248b6d ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0xd55ad93b iommu_group_get_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xd5684dbd generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xd576e823 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xd59cc53e adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd5a64f5a iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xd5a96975 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0xd5adedf6 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5db845c driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xd5dddb43 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xd5f4eccf evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0xd60537f2 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xd62183d5 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0xd64568f6 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0xd6501b46 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xd6505d86 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xd66348a7 dma_buf_kmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xd66b17c4 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd682fa19 __mmu_notifier_invalidate_range_start +EXPORT_SYMBOL_GPL vmlinux 0xd686eca4 of_reset_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0xd6c2e04b __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xd6d03c55 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd7268fd8 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xd727b409 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xd761655f mdio_mux_init +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd7790f3a pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd785a01e ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xd787b9c2 devm_regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xd788742d perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xd7be6955 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7edd328 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd81ffcd3 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd8218dd7 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0xd843f433 regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd85603be gov_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xd85b32f5 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xd8632ee6 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xd8686460 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd897301a sec_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xd898cd9c enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xd8d2bb0c wm5102_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xd8e5633c ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xd8eaf920 snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL vmlinux 0xd90e9603 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0xd91b4b64 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xd942d353 ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0xd9499799 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0xd95b7b1b pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xd9715e41 devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd9a34035 __clk_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xd9ab30e7 ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0xd9b65310 kvm_get_kvm +EXPORT_SYMBOL_GPL vmlinux 0xd9c25758 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xda0651f6 regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0xda369d42 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0xda441a54 extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0xda44cb37 setup_charger_manager +EXPORT_SYMBOL_GPL vmlinux 0xda5fc49f balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0xda6713c5 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xdaab76f5 regmap_field_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xdaaf20b7 extcon_get_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0xdab44ed9 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0xdac11bae of_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xdad545d7 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb1a1b44 unregister_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0xdb1bcc67 ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0xdb2502b6 regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0xdb6a7f85 regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdba24c28 wm8400_block_read +EXPORT_SYMBOL_GPL vmlinux 0xdba30f52 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xdba4ad93 static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0xdba80fc1 of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0xdbc6a98b ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xdbe10af9 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc02b6ff task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xdc1900ff pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0xdc1e15f1 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xdc2a8280 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xdc461430 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xdc73b867 inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xdc8f29ab deregister_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdccd4bdb ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0xdd2ba575 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xdd2eb304 device_register +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd391eff profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd3d55f9 ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0xdd42e073 dapm_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0xdd476079 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xdd60dc8c power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0xdd669a15 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xdd76464f snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdd8dd9e2 sdhci_free_host +EXPORT_SYMBOL_GPL vmlinux 0xdda3a206 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xddaabb86 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xde224e42 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xde2870c1 snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL vmlinux 0xde2c5a6e alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0xde3ddd60 tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xde404e82 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xde581b12 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xde6171d9 xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0xde6f0ada posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xde7380ca tpm_open +EXPORT_SYMBOL_GPL vmlinux 0xde78b0b1 perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0xde9bde89 pinctrl_dev_get_name +EXPORT_SYMBOL_GPL vmlinux 0xde9cfb0c regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0xdec82dcf spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf241f22 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xdf45c6b0 pinctrl_add_gpio_ranges +EXPORT_SYMBOL_GPL vmlinux 0xdf568f9c pinctrl_pm_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0xdf633c3c dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xdf94cb9c regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xdfa2b1aa spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0xdfb77fcc ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0xdfd53e1c get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0xdff7c9ce blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe003e044 __tracepoint_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe012c026 ahci_reset_controller +EXPORT_SYMBOL_GPL vmlinux 0xe02308b9 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xe029ee3d fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe06347fe power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xe07ca631 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xe07e3c64 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xe083f643 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xe09bbe1b usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xe09f1ba1 pwm_config +EXPORT_SYMBOL_GPL vmlinux 0xe0cb8027 ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0xe0e84713 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xe11b2302 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe121042b led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xe121f4e4 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0xe134e8d1 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0xe1489b75 regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0xe1583e49 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL vmlinux 0xe160f650 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xe16591ab stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xe1775ee7 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0xe17b3610 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe19cdfb5 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xe1c32794 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0xe1cc820a regmap_write +EXPORT_SYMBOL_GPL vmlinux 0xe1e06f1f usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xe1e1f7ff snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL vmlinux 0xe1f31acb usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xe21a2875 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xe23643a6 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0xe253cc20 serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0xe26825df list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0xe2734a57 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe294cee9 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL vmlinux 0xe2970373 spi_master_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe2bcd4dc usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xe2ca9a6a tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0xe2e7840d regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0xe302d8c1 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe337d0a8 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe3895390 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xe3b15aa8 proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0xe3b489b5 device_add +EXPORT_SYMBOL_GPL vmlinux 0xe3bf1232 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xe3c94e38 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xe3f4fe31 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xe418a53f gfn_to_pfn_async +EXPORT_SYMBOL_GPL vmlinux 0xe42e1f70 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe430c4e4 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0xe4488aa3 dma_buf_kunmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xe4962ed5 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xe4c4b28f gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xe4fe5197 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xe50e65bf blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xe52ae762 __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0xe52da594 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe5b8e924 usb_stor_resume +EXPORT_SYMBOL_GPL vmlinux 0xe5f42c6f device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe5fdccbf key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0xe61b0cb6 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xe62acf6f usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xe63e2d9c tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xe6434f34 usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0xe64d5de5 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xe64e8746 extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe656acc3 snd_soc_cnew +EXPORT_SYMBOL_GPL vmlinux 0xe6c68334 ddebug_remove_module +EXPORT_SYMBOL_GPL vmlinux 0xe6cc2ff2 extcon_find_cable_index +EXPORT_SYMBOL_GPL vmlinux 0xe6d47fa5 pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0xe6d67d57 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe706b5cb da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0xe7086f59 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xe713f4eb add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0xe72a3dbe snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL vmlinux 0xe7382ba9 snd_soc_platform_write +EXPORT_SYMBOL_GPL vmlinux 0xe762b11a regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0xe764488a alarm_start +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe7796c2c usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xe79b808f ahci_do_softreset +EXPORT_SYMBOL_GPL vmlinux 0xe7d0b953 mtd_write +EXPORT_SYMBOL_GPL vmlinux 0xe7f236d6 gpiochip_remove_pin_ranges +EXPORT_SYMBOL_GPL vmlinux 0xe7f4f7ae dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe824bb99 nl_table +EXPORT_SYMBOL_GPL vmlinux 0xe82a985d blkg_lookup_create +EXPORT_SYMBOL_GPL vmlinux 0xe85a9fd3 cpu_cluster_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8993e46 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xe89d55c8 pinctrl_utils_add_config +EXPORT_SYMBOL_GPL vmlinux 0xe8c792bd usb_stor_bulk_srb +EXPORT_SYMBOL_GPL vmlinux 0xe8e454eb flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xe906962f regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xe90cd3dd __put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9506269 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xe956a75c pl320_ipc_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe9ab5e8a usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0xea03f04f max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xea074a31 virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea158b77 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xea1bb291 bL_switcher_get_enabled +EXPORT_SYMBOL_GPL vmlinux 0xea3ebba9 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea41f2ae xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0xea43355b gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0xea4beae3 kvm_release_page_clean +EXPORT_SYMBOL_GPL vmlinux 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL vmlinux 0xea607a64 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0xea8b9515 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xea987223 snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL vmlinux 0xeaa1bdb0 user_match +EXPORT_SYMBOL_GPL vmlinux 0xeaa92b15 dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0xeaec54e8 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0xeb1c3628 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xeb34782d ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xeb3ef01d arm_pm_restart +EXPORT_SYMBOL_GPL vmlinux 0xeb4268e4 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xeb4a2187 pinctrl_utils_add_map_mux +EXPORT_SYMBOL_GPL vmlinux 0xeb50abc6 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL vmlinux 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL vmlinux 0xeb751e28 usb_stor_probe2 +EXPORT_SYMBOL_GPL vmlinux 0xeb9abbee ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xebbc14dc usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0xebbe6404 __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xebec57c4 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xec0e246a ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xec142a0a unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec26b9ef usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xec29f0dd ahci_save_initial_config +EXPORT_SYMBOL_GPL vmlinux 0xec34608e ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0xec5c1d5a device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xec66fd45 snd_soc_register_platform +EXPORT_SYMBOL_GPL vmlinux 0xec84ecd9 usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0xec861132 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xec97e802 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0xecae250c reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xecb0cffe __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xecbdc59e pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xecdb87e9 usb_stor_pre_reset +EXPORT_SYMBOL_GPL vmlinux 0xecfd8761 usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xed06b916 wakeup_source_drop +EXPORT_SYMBOL_GPL vmlinux 0xed12b9f7 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xed695a2d unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xeda04f8e ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0xedb1a8eb tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xedbf3cbb of_get_dma_window +EXPORT_SYMBOL_GPL vmlinux 0xedbf8ab3 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0xedd49930 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xedd81c3c get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0xeddf78b2 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xee05a9e4 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0xee0b33e3 irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0xee123913 sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xee1b61c7 powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0xee28d74e crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0xee4f3181 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0xee524057 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xee5f6b5f lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0xee5fcebf css_rightmost_descendant +EXPORT_SYMBOL_GPL vmlinux 0xee6b71c4 syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0xee986335 iommu_domain_window_disable +EXPORT_SYMBOL_GPL vmlinux 0xee9d3e98 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xeeb3170b single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xeeba2c2b ahci_print_info +EXPORT_SYMBOL_GPL vmlinux 0xeec1c2dc usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xeedba4d3 gfn_to_pfn +EXPORT_SYMBOL_GPL vmlinux 0xef2b3b7a dma_buf_export_named +EXPORT_SYMBOL_GPL vmlinux 0xef38b476 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xef409b74 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0xef66075c usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef72c67b show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xef750677 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xef7d1f9f da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xef93c078 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0xefb2ec35 snd_soc_info_volsw +EXPORT_SYMBOL_GPL vmlinux 0xefd98ab1 kvm_clear_guest_page +EXPORT_SYMBOL_GPL vmlinux 0xeff2750d __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xeff3cf78 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf00d58f7 alarm_init +EXPORT_SYMBOL_GPL vmlinux 0xf039312b virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0xf040c873 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL vmlinux 0xf05da5e1 snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL vmlinux 0xf08a4752 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0xf08cef3a driver_register +EXPORT_SYMBOL_GPL vmlinux 0xf0970ea2 regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0xf09ca911 cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0xf0c1d71e inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf0d19eb4 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xf0f5dbc2 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xf110b17f eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xf1218ded tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0xf12caf22 clk_register_divider_table +EXPORT_SYMBOL_GPL vmlinux 0xf131d2d7 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xf142f8cc regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1bb548b sdhci_resume_host +EXPORT_SYMBOL_GPL vmlinux 0xf1da0f9a ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xf1ff1cb6 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xf20542c5 ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0xf20bc81e snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL vmlinux 0xf2155a52 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf2333aec ahci_shost_attrs +EXPORT_SYMBOL_GPL vmlinux 0xf23bf8e1 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0xf2523e74 amba_device_add +EXPORT_SYMBOL_GPL vmlinux 0xf2777198 blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0xf27977e2 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xf28f19e4 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xf290e90e platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xf2b73ed2 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf2e2dc32 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xf2f077cc pkey_id_type_name +EXPORT_SYMBOL_GPL vmlinux 0xf2fc7f6e __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf309a06b usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf31f3994 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0xf32330a1 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xf3271403 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xf3277e27 vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0xf3704854 devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b4b5a5 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0xf3f275bb relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xf408b48c add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xf41f3ffb cgroup_is_descendant +EXPORT_SYMBOL_GPL vmlinux 0xf444f502 ci_hdrc_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xf454aac8 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xf467ec23 usb_anchor_suspend_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf49b0b7f bmp085_remove +EXPORT_SYMBOL_GPL vmlinux 0xf4dac2d7 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xf4f2a5e2 regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf5144214 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf54c1b04 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5572d6d skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xf55fd636 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xf564fbd1 devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf588cdd9 hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xf592bea3 kvm_vcpu_cache +EXPORT_SYMBOL_GPL vmlinux 0xf595edd0 sdhci_send_command +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5ad54bd do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xf5c4a59c tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xf5e5815e xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xf5fef4e3 wm5110_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf617699e blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xf695597e bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xf69954d1 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xf6a02ebe regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xf6b3e2e3 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xf6bd397d snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6ec57db usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf70f8d65 __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xf7186883 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf71e0848 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0xf733c472 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xf745e6dd get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0xf74658ff ref_module +EXPORT_SYMBOL_GPL vmlinux 0xf74dae0f idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf7609823 crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0xf76b0a59 read_current_timer +EXPORT_SYMBOL_GPL vmlinux 0xf7714159 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xf782db09 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xf7a5ac14 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL vmlinux 0xf7bfecfd system_trusted_keyring +EXPORT_SYMBOL_GPL vmlinux 0xf7e19dbc register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xf7e473ab gfn_to_page +EXPORT_SYMBOL_GPL vmlinux 0xf7f031c9 ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0xf807c705 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xf81548e1 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf816c866 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf845c450 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xf846506f irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf8560ec0 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xf8747830 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8864437 __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0xf88a9dcf devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xf89112cb device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xf8f23af6 mtd_device_parse_register +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8fe3d0b kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf932015f __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf935a32c of_property_read_string_helper +EXPORT_SYMBOL_GPL vmlinux 0xf9613b14 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xf97ab30f ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xf9815b17 nfq_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0xf9961f38 cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9a3176f otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9ee61fd usb_stor_CB_transport +EXPORT_SYMBOL_GPL vmlinux 0xf9f35503 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa0e5fa0 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0xfa1bc97f dev_pm_opp_disable +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa27dd12 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0xfa3d179d snd_compress_register +EXPORT_SYMBOL_GPL vmlinux 0xfa5bdb38 ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0xfaa1a513 register_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0xfaa6d1ce usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xfac7212c css_next_descendant_post +EXPORT_SYMBOL_GPL vmlinux 0xfacf04bf inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xfad11846 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0xfb310876 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb5143d3 __mtd_next_device +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb7a6781 ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0xfb7e29d5 get_mtd_device_nm +EXPORT_SYMBOL_GPL vmlinux 0xfb94f014 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0xfba22e83 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xfbb22824 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0xfbbedefd of_prop_next_string +EXPORT_SYMBOL_GPL vmlinux 0xfbcb158a devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xfbfb5127 snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc243f09 devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfc82413b crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0xfc96a417 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xfc9b978a sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfcdb4034 wakeup_source_prepare +EXPORT_SYMBOL_GPL vmlinux 0xfcf892cb sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0xfd02ac12 pwm_put +EXPORT_SYMBOL_GPL vmlinux 0xfd059501 regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xfd4a8922 arm_iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0xfd78dcae dapm_clock_event +EXPORT_SYMBOL_GPL vmlinux 0xfd983931 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xfd98be20 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0xfd9e96f1 sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0xfdbbea58 usb_stor_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfe12d7ed snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0xfe13368c extcon_update_state +EXPORT_SYMBOL_GPL vmlinux 0xfe300f9c mtd_panic_write +EXPORT_SYMBOL_GPL vmlinux 0xfe6ef7ab ahci_kick_engine +EXPORT_SYMBOL_GPL vmlinux 0xfe95e170 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfebdc6fc regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0xfebe130a sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xfec0e8d6 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xfecc060f mtd_get_user_prot_info +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfeda4e1c look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0xfee50f28 devres_get +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff421f4b da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0xff51dd48 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5c7210 devm_regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xff5cda7c wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0xff93ee06 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xffa598e4 list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0xffd6d1ed crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xffe66be8 aead_geniv_exit --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/armhf/generic-lpae.compiler +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/armhf/generic-lpae.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.8.2-19ubuntu1) 4.8.2 --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/armhf/generic-lpae.modules +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/armhf/generic-lpae.modules @@ -0,0 +1,2808 @@ +6lowpan +6pack +8021q +8250_dw +8255 +88pm800 +88pm805 +88pm80x +88pm80x_onkey +88pm860x_battery +88pm860x_bl +88pm860x_charger +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_virtio +a3d +a8293 +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +ablk_helper +ac97_bus +acecad +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5380 +ad5398 +ad5421 +ad5446 +ad5449 +ad5504 +ad5624r_spi +ad5686 +ad5755 +ad5764 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7266 +ad7280a +ad7291 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7791 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad7923 +ad799x +ad8366 +ad9523 +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adf4350 +adfs +adi +adis16060 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adis16480 +adis_lib +adjd_s311 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1275 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +adq12b +ads1015 +ads7828 +ads7846 +ads7871 +ad_sigma_delta +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adv7180 +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +aes-arm +aes-arm-bs +af_802154 +af9013 +af9033 +af_alg +affs +af_key +af_packet_diag +af-rxrpc +afs +ah4 +ah6 +ahci_platform +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +ak8975 +algif_hash +algif_skcipher +alphatrack +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +ambakmi +amba-pl010 +amc6821 +amplc_dio200 +amplc_dio200_common +amplc_pc236 +amplc_pc263 +ams369fg06 +analog +anatop-regulator +ansi_cprng +anubis +aoe +apbps2 +apds9300 +apds9802als +apds990x +appledisplay +appletalk +appletouch +ar5523 +ar7part +arc4 +arc_emac +arc_ps2 +arc_uart +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +armada +arm_big_little +arm_big_little_dt +arptable_filter +arp_tables +arpt_mangle +as3711_bl +as3711-regulator +as3722-regulator +as5011 +asc7621 +asix +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at86rf230 +at91_can +at91_ether +atbm8830 +aten +ath +ath10k_core +ath3k +ath6kl_core +ath6kl_sdio +ath6kl_usb +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atm +atmel_mxt_ts +atmel_pwm +atmel-pwm-bl +atmel-ssc +atmtcp +atxp1 +au0828 +au8522_common +au8522_decoder +au8522_dig +aufs +auo_k1900fb +auo_k1901fb +auo_k190x +auo-pixcir-ts +authenc +authencesn +auth_rpcgss +autofs4 +ax25 +ax88179_178a +ax88796 +b2c2-flexcop +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bcm203x +bcm3510 +bcm5974 +bcma +bcm_wimax +bd6107 +befs +belkin_sa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bL_switcher_dummy_if +bluetooth +bma150 +bma180 +bmp085-i2c +bmp085-spi +bnep +bonding +bpa10x +bpck +bpck6 +bpqether +bq2415x_charger +bq24190_charger +bq24735-charger +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +btmrvl +btmrvl_sdio +btmtk_usb +btrfs +btsdio +btusb +btwilink +bu21013_ts +bw-qcam +c67x00 +c6xdigio +cachefiles +caif +caif_hsi +caif_serial +caif_socket +caif_usb +caif_virtio +camellia_generic +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +carl9170 +cast5_generic +cast6_generic +cast_common +catc +cc770 +cc770_isa +cc770_platform +c_can +c_can_platform +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +cedusb +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chnl_net +cifs +clearpad_tm1217 +clip +clk-max77686 +clk-s2mps11 +clk-si5351 +clk-twl6040 +clk-wm831x +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm36651 +cma3000_d0x +cma3000_d0x_i2c +cmac +cmtp +cobra +coda +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +configfs +cordic +core +cp210x +cpia2 +cpu-notifier-error-inject +c-qcam +cramfs +crc32 +crc7 +crc8 +crc-ccitt +crc-itu-t +cros_ec +cros_ec_i2c +cros_ec_keyb +cros_ec_spi +cryptd +cryptoloop +crypto_null +crypto_user +cs53l32a +cs89x0 +ctr +cts +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx24113 +cx24116 +cx24123 +cx25840 +cx82310_eth +cxacru +cxd2820r +cy8ctmg110_ts +cyapa +cyberjack +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da9030_battery +da9034-ts +da903x +da903x_bl +da9052-battery +da9052_bl +da9052-hwmon +da9052_onkey +da9052-regulator +da9052_tsi +da9052_wdt +da9055-hwmon +da9055_onkey +da9055-regulator +da9055_wdt +da9063-regulator +da9210-regulator +das08 +das08_isa +das16m1 +das6402 +das800 +db9 +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +decnet +deflate +denali +denali_dt +des_generic +designware_i2s +dgap +dgrp +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +dlci +dlm +dm9000 +dm9601 +dm-bio-prison +dm-bufio +dm-cache +dm-cache-cleaner +dm-cache-mq +dm-crypt +dm-delay +dme1737 +dm-flakey +dm-log +dm-log-userspace +dmm32at +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-switch +dm-thin-pool +dm-verity +dm-zero +dnet +dn_rtmsg +docg3 +docg4 +drbd +drm +drm_kms_helper +drm_usb +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2781_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dss1_divert +dstr +dt2801 +dt2811 +dt2814 +dt2815 +dt2817 +dt9812 +dummy +dummy-irq +dvb-as102 +dvb-core +dvb-pll +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-af9035 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6007 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-rtl28xxu +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb_usb_v2 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc2 +dwc2_platform +dwc3 +dw_dmac +dw_dmac_core +dw_mmc +dw_mmc-exynos +dw_mmc-pltfm +dw_mmc-socfpga +dw_wdt +dynapro +e4000 +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_vlan +ec100 +echo +edac_core +edt-ft5x06 +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efs +egalax_ts +ehset +elo +em28xx +em28xx-alsa +em28xx-dvb +em28xx-rc +emc1403 +emc2103 +emc6w201 +em_canid +em_cmp +emi26 +emi62 +em_ipset +em_meta +em_nbyte +empeg +ems_usb +em_text +em_u32 +enc28j60 +enclosure +epat +epia +eql +esd_usb2 +esi-sir +esp4 +esp6 +ethoc +evbug +exofs +extcon-adc-jack +extcon-arizona +extcon-gpio +extcon-max77693 +extcon-max8997 +extcon-palmas +ezusb +f2fs +f71805f +f71882fg +f75375s +f81232 +fakelb +fan53555 +faulty +fb_sys_fops +fc0011 +fc0012 +fc0013 +fc2580 +fcrypt +ff-memless +fid +fit2 +fit3 +fl512 +fld +flexcan +fmc +fmc-chardev +fmc-fakedev +fmc-trivial +fmc-write-eeprom +fm_drv +fotg210-hcd +fotg210-udc +freevxfs +friq +frpw +fsa9480 +fscache +ft1000 +ftdi-elan +ftdi_sio +ftgmac100 +ftl +ftmac100 +fujitsu_ts +fusbh200-hcd +g760a +g762 +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdmtty +gdmulte +gdmwm +generic +generic-adc-battery +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_multi +g_ncm +g_nokia +go7007 +go7007-loader +go7007-usb +goldfishfb +gp2ap002a00f +gp2ap020a00f +gpio +gpio-74x164 +gpio-addr-flash +gpio-adnp +gpio-adp5520 +gpio-adp5588 +gpio-arizona +gpio_backlight +gpio-charger +gpio-da9052 +gpio-da9055 +gpio-dwapb +gpio-fan +gpio-generic +gpio-grgpio +gpio-ir-recv +gpio-kempld +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-rcar +gpio-regulator +gpio_tilt_polled +gpio-tps65912 +gpio-ts5500 +gpio-twl6040 +gpio-ucb1400 +gpio-viperboard +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +grcan +gre +grip +grip_mp +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_jl2005bcd +gspca_kinect +gspca_konica +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_nw80x +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_se401 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stk1135 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +g_zero +hampshire +hanwang +hci +hci_uart +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +hfc4s8s_l1 +hfcsusb +hfc_usb +hfs +hfsplus +hid +hid-a4tech +hid-apple +hid-appleir +hid-aureal +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-elo +hid-emsff +hid-ezkey +hid-gaff +hid-generic +hid-gyration +hid-holtekff +hid-holtek-kbd +hid-holtek-mouse +hid-huion +hid-icade +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-lenovo-tpkbd +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-rmi +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-isku +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-konepure +hid-roccat-kovaplus +hid-roccat-lua +hid-roccat-pyra +hid-roccat-ryos +hid-roccat-savu +hid-saitek +hid-samsung +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-gyro-3d +hid-sensor-hub +hid-sensor-iio-common +hid-sensor-magn-3d +hid-sensor-trigger +hid-sjoy +hid-sony +hid-speedlink +hid-steelseries +hid-sunplus +hid-thingm +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-xinmo +hid-zpff +hid-zydacron +highbank_l2_edac +highbank_mc_edac +hih6130 +hisax +hisax_st5481 +hmc5843 +hmc6352 +host1x +hostap +hpfs +hsi +hsi_char +hso +hsr +htc-pasic3 +htu21 +huawei_cdc_ncm +hwmon-vid +hx8357 +i2400m +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-arb-gpio-challenge +i2c-cbus-gpio +i2c-designware-core +i2c-designware-platform +i2c-dev +i2c-diolan-u2c +i2c-gpio +i2c-hid +i2c-kempld +i2c-mux +i2c-mux-gpio +i2c-mux-pca9541 +i2c-mux-pca954x +i2c-mux-pinctrl +i2c-nomadik +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-rcar +i2c-sh_mobile +i2c-simtec +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-versatile +i2c-viperboard +i2c-xiic +ibmaem +ibmpex +ics932s401 +idmouse +ieee802154 +ifb +iforce +iguanair +iio_dummy +iio_hwmon +iio-trig-interrupt +iio-trig-periodic-rtc +iio-trig-sysfs +ii_pci20kc +ili210x +ili922x +ili9320 +imm +imon +impa7 +ims-pcu +imx074 +imx_thermal +ina209 +ina2xx +industrialio +industrialio-triggered-buffer +inet_diag +inexio +inftl +input-polldev +int51x1 +interact +interval_tree_test +inv-mpu6050 +io_edgeport +io_ti +iowarrior +ip6_gre +ip6table_filter +ip6table_mangle +ip6table_nat +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_MASQUERADE +ip6t_mh +ip6t_NPT +ip6t_REJECT +ip6t_rpfilter +ip6t_rt +ip6t_SYNPROXY +ip6_tunnel +ip6_vti +ipack +ipaq +ipcomp +ipcomp6 +ipddp +ip_gre +ipheth +ipip +ipmi_devintf +ipmi_poweroff +ipmi_si +ipmi_watchdog +ipoctal +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netnet +ip_set_hash_netport +ip_set_hash_netportnet +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_MASQUERADE +ipt_REJECT +ipt_rpfilter +ipt_SYNPROXY +ipt_ULOG +ip_tunnel +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ip_vti +ipw +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sanyo-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl6271a-regulator +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it87 +it913x-fe +itd1000 +itg3200 +iuu_phoenix +ix2505v +jc42 +jedec_probe +jffs2 +jfs +joydev +joydump +kafs +kalmia +kaweth +kbic +kbtab +kcomedilib +kempld-core +kempld_wdt +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +kobil_sct +ks0108 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksocklnd +ktti +kvaser_usb +kxsd9 +kxtj9 +l1oip +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +l2tp_ppp +l4f00242t03 +lapb +lapbether +latch-addr-flash +lattice-ecp3-config +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-atmel-pwm +leds-bd2802 +leds-blinkm +leds-da903x +leds-da9052 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lm3533 +leds-lm355x +leds-lm3642 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lp5562 +leds-lp55xx-common +leds-lp8501 +leds-lp8788 +leds-lt3593 +leds-max8997 +leds-mc13783 +leds-ot200 +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pca9685 +leds-pwm +leds-regulator +leds-tca6507 +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-camera +ledtrig-default-on +ledtrig-gpio +ledtrig-oneshot +ledtrig-timer +ledtrig-transient +legousbtower +lg2160 +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libceph +libcfs +libcomposite +libcrc32c +libertas +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libiscsi +libiscsi_tcp +libore +libosd +libsas +lightning +line6usb +lineage-pem +linear +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_zilog +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc +llc2 +llog_test +lm25066 +lm3533-als +lm3533_bl +lm3533-core +lm3533-ctrlbank +lm3630a_bl +lm3639_bl +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm8333 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95234 +lm95241 +lm95245 +lms283gf05 +lms501kf03 +lmv +lnbp21 +lnbp22 +lnet +lnet_selftest +lockd +lov +lp +lp3971 +lp3972 +lp855x_bl +lp8727_charger +lp8755 +lp8788_bl +lp8788-charger +lpddr_cmds +lru_cache +lrw +ltc2978 +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lustre +lv5207lp +lvfs +lz4 +lz4_compress +lz4hc +lz4hc_compress +m25p80 +m2m-deinterlace +m88rs2000 +ma600-sir +mac80211 +mac80211_hwsim +mac802154 +macb +mac-celtic +mac-centeuro +mac-croatian +mac-cyrillic +mac-gaelic +mac-greek +mac-iceland +mac-inuit +mac-roman +mac-romanian +mac-turkish +macvlan +macvtap +mag3110 +magellan +map_absent +map_ram +map_rom +matrix-keymap +matrix_keypad +max1111 +max11801_ts +max1363 +max1586 +max16064 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max197 +max2165 +max3100 +max34440 +max517 +max63xx_wdt +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77686 +max77693 +max8649 +max8660 +max8688 +max8903_charger +max8907 +max8907-regulator +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8973-regulator +max8997 +max8997_charger +max8998 +max8998_charger +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-i2c +mc13xxx-regulator-core +mc13xxx-spi +mc44s803 +mceusb +mcp2120-sir +mcp251x +mcp3021 +mcp320x +mcp3422 +mcp4725 +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc +mdc800 +mem2mem_testdev +memstick +mena21_wdt +metronomefb +metro-usb +mgc +mg_disk +michael_mic +microread +microread_i2c +microtek +mii +minix +mip6 +mISDN_core +mISDN_dsp +mk712 +mkiss +mma8450 +mms114 +mos7720 +mos7840 +mpc624 +mpoa +mpr121_touchkey +mpu3050 +mrf24j40 +mrp +ms_block +msdos +msp3400 +mspro_block +mt2060 +mt2063 +mt20xx +mt2266 +mt29f_spinand +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd_dataflash +mtdoops +mtdram +mtdswap +mtouch +multipath +multiq3 +mv88e6060 +mv88e6xxx_drv +mvmdio +mv_u3d_core +mv_udc +mwifiex +mwifiex_sdio +mwifiex_usb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +nandsim +nau7802 +navman +nbd +nci +ncpfs +nct6775 +net1080 +net2272 +netconsole +netlink_diag +netprio_cgroup +netrom +newtonkbd +nfc +nfc_digital +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcsim +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_ipv4 +nf_nat_ipv6 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nfsv2 +nfsv3 +nfsv4 +nf_synproxy_core +nf_tables +nf_tables_arp +nf_tables_bridge +nf_tables_ipv4 +nf_tables_ipv6 +nft_chain_nat_ipv4 +nft_chain_nat_ipv6 +nft_chain_route_ipv4 +nft_chain_route_ipv6 +nft_compat +nft_counter +nft_ct +nft_exthdr +nft_hash +nftl +nft_limit +nft_log +nft_meta +nft_nat +nft_rbtree +nft_reject_ipv4 +n_hdlc +ni_at_ao +ni_atmio +ni_atmio16d +ni_labpc +nilfs2 +ni_tio +nlmon +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +notifier-error-inject +n_r3964 +ns558 +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +null_blk +nvram +nxt200x +nxt6000 +obdclass +obdecho +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +old_belkin-sir +olpc_apsp +omfs +omninet +on20 +on26 +onenand +opencores-kbd +openvswitch +oprofile +opticon +option +osc +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7640 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +ozwpan +p54common +p54spi +p54usb +p8022 +p8023 +palmas-regulator +pandora_bl +panel +paride +parkbd +parport +parport_ax88796 +parport_pc +pata_arasan_cf +pata_of_platform +pata_platform +pc87360 +pc87427 +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pcl711 +pcl724 +pcl726 +pcl730 +pcm3724 +pcmad +pcmda12 +pcmmio +pcmuio +pcrypt +pcwd_usb +pd +pda_power +peak_usb +pegasus +penmount +percpu_test +pf +pfuze100-regulator +pg +phonet +phram +phy-am335x +phy-am335x-control +phy-core +phy-exynos-dp-video +phy-gpio-vbus-usb +phy-isp1301 +phy-rcar-usb +phy-samsung-usb +phy-samsung-usb2 +phy-samsung-usb3 +physmap +physmap_of +pixcir_i2c_ts +pktcdvd +pktgen +pl2303 +pl330 +platform_lcd +plat_nand +plat-ram +plip +plusb +pmbus +pmbus_core +pm-notifier-error-inject +pn533 +pn544 +pn544_i2c +pn_pep +poc +port100 +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +psmouse +psnap +pt +ptlrpc +pvrusb2 +pwc +pwm_bl +pwm-pca9685 +pwm-twl +pwm-twl-led +pxa27x_udc +qcaux +qcserial +qinfo_probe +qmi_wwan +qnx4 +qnx6 +qt1010 +qt1070 +qt2160 +quatech2 +quota_tree +quota_v1 +quota_v2 +r8152 +r815x +r8188eu +r820t +r8712u +r8a66597-hcd +r8a66597-udc +radio-i2c-si470x +radio-keene +radio-ma901 +radio-mr800 +radio-shark +radio-si4713 +radio-si476x +radio-tea5764 +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +raw +rbd +rbtree_test +rc5t583-regulator +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rcar-du-drm +rcar_vin +rc-asus-pc39 +rc-asus-ps3-100 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-delock-61959 +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-it913x-v1 +rc-it913x-v2 +rc-kaiomy +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-msi-digivox-ii +rc-msi-digivox-iii +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-reddo +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-total-media-in-hand-02 +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rds +rds_tcp +redboot +redrat3 +reiserfs +remoteproc +renesas_usbhs +retu-mfd +retu-pwrbutton +retu_wdt +rfcomm +rfd_ftl +rfkill-gpio +rfkill-regulator +rio500 +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rt2500usb +rt2800lib +rt2800usb +rt2x00lib +rt2x00usb +rt73usb +rtc-88pm80x +rtc-88pm860x +rtc-ab3100 +rtc-as3722 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc-da9052 +rtc-da9055 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds2404 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-hid-sensor-time +rtc-isl12022 +rtc-isl1208 +rtc-lp8788 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max77686 +rtc-max8907 +rtc-max8925 +rtc-max8997 +rtc-max8998 +rtc-mc13xxx +rtc-moxart +rtc-msm6242 +rtc-palmas +rtc-pcf2123 +rtc-pcf2127 +rtc-pcf50633 +rtc-pcf8523 +rtc-pcf8563 +rtc-pcf8583 +rtc-pl030 +rtc-r9701 +rtc-rc5t583 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx4581 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-s5m +rtc-snvs +rtc-stk17ta8 +rtc-tps6586x +rtc-tps65910 +rtc-tps80031 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rti800 +rti802 +rtl2830 +rtl2832 +rtl8150 +rtl8187 +rtl8192c-common +rtl8192cu +rtl_usb +rtlwifi +rts5139 +rx51_battery +rxkad +s1d13xxxfb +s2250 +s2255drv +s526 +s5h1409 +s5h1411 +s5h1420 +s5m8767 +s6e63m0 +s921 +saa7115 +saa7706h +safe_serial +salsa20_generic +samsung-keypad +sata_mv +sata_rcar +sbs-battery +sca3000 +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_fq +sch_fq_codel +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_plug +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +sctp +sctp_probe +sdhci-pxav2 +sdhci-pxav3 +sdio_uart +sdr-msi3101 +seed +seqiv +ser_gigaset +serial2002 +serio_raw +sermouse +serpent_generic +serport +serqt_usb2 +ses +sha1-arm +shark2 +sh_eth +sh_keysc +shmob-drm +sh_mobile_ceu_camera +sh_mobile_csi2 +sh-sci +sht15 +sht21 +sh_veu +si21xx +si4713-i2c +si476x-core +sidewinder +sierra +sierra_net +sil164 +sir-dev +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_of_platform +sja1000_platform +skel +sl811-hcd +slcan +slip +slram +sm501 +sm501fb +smb347-charger +smc911x +smc91x +sm_ftl +smm665 +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc95xx +smscufx +smsdvb +smsmdtv +smssdio +smsusb +snd-aaci +snd-ac97-codec +snd-aloop +snd-at73c213 +snd-dummy +snd-hrtimer +snd-hwdep +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-portman2x4 +snd-rawmidi +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-atmel-pcm +snd-soc-si476x +snd-soc-simple-card +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usb-hiface +snd-usbmidi-lib +snd-virmidi +soc_camera +soc_camera_platform +soc_mediabus +soc_scale_crop +softdog +softing +sony-btf-mpx +sp805_wdt +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_dectlk +speakup_dummy +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw +spi-dw-mmio +spi-gpio +spi_ks8995 +spi-lm70llp +spi-oc-tiny +spi-pl022 +spi-sc18is602 +spi-tle62x0 +spi-xcomm +squashfs +sr9700 +ssb +ssd1307fb +ssfdc +sst25l +ssu100 +st +st1232 +st_accel +st_accel_i2c +st_accel_spi +st-asc +stb0899 +stb6000 +stb6100 +st_drv +ste_modem_rproc +st_gyro +st_gyro_i2c +st_gyro_spi +stinger +stir4200 +stk1160 +stkwebcam +st_magn +st_magn_i2c +st_magn_spi +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +st_pressure +st_pressure_i2c +st_pressure_spi +streamzap +st_sensors +st_sensors_i2c +st_sensors_spi +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +sunkbd +sunrpc +sur40 +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synaptics_usb +sysv +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tca8418_keypad +tcm_fc +tcm_loop +tcm_usb_gadget +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tcs3472 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda826x +tda827x +tda8290 +tda9887 +tda998x +tdo24m +tea +tea575x +tea5761 +tea5767 +team +team_mode_activebackup +team_mode_broadcast +team_mode_loadbalance +team_mode_random +team_mode_roundrobin +tef6862 +tekram-sir +test-kprobes +test-kstrtox +test_power +test-string_helpers +tgr192 +thmc50 +ti-adc081c +ti_dac7512 +timb_dma +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmio_mmc +tmio_mmc_core +tmio_nand +tmp006 +tmp102 +tmp401 +tmp421 +toim3232-sir +touchit213 +touchright +touchwin +tpm_i2c_atmel +tpm_i2c_infineon +tpm_i2c_nuvoton +tpm_i2c_stm_st33 +tpm-rng +tps51632-regulator +tps6105x +tps6105x-regulator +tps62360-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps65090-charger +tps65090-regulator +tps65217 +tps65217_bl +tps65217-regulator +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +tps80031-regulator +trancevibrator +tranzport +ts2020 +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +tsl2x7x_core +tsl4531 +ttpci-eeprom +ttusbir +tua9001 +tuner +tuner_it913x +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tveeprom +tvp5150 +tw2804 +tw9903 +tw9906 +tw9910 +twidjoy +twl4030_charger +twl4030_keypad +twl4030-madc +twl4030_madc_battery +twl4030-madc-hwmon +twl4030-pwrbutton +twl4030-vibra +twl4030_wdt +twl6030-gpadc +twl6040-vibra +twofish_common +twofish_generic +u132-hcd +ubi +ubifs +ucb1400_core +ucb1400_ts +ucd9000 +ucd9200 +uda1342 +udf +udl +udlfb +udp_diag +ueagle-atm +u_ether +ufs +ufshcd +ufshcd-pltfrm +uhid +uio +uio_dmem_genirq +uio_pdrv_genirq +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unioxx5 +unix_diag +u_rndis +usb3503 +usb_8dev +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_f_acm +usb_f_ecm +usb_f_ecm_subset +usb_f_eem +usb_f_mass_storage +usb_f_ncm +usb_f_obex +usb_f_phonet +usb_f_rndis +usb_f_serial +usb_f_ss_lb +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usb-serial-simple +usbsevseg +usbtest +usbtmc +usbtouchscreen +usbtv +usbvision +usb_wwan +u_serial +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +ux500 +v4l2-common +v4l2-dv-timings +v4l2-int-device +v4l2-mem2mem +vcan +vcnl4000 +veth +vexpress +vexpress-spc-cpufreq +vfio +vgg2432a4 +vhci-hcd +vhost +vhost_net +vhost_scsi +via-velocity +videobuf2-core +videobuf2-dma-contig +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dvb +videobuf-vmalloc +videodev +viperboard +viperboard_adc +virtio-rng +virtio_scsi +virtual +visor +vivi +vmac +vmk80xx +vringh +vsock +vsxxxaa +vt1211 +vt6656_stage +vub300 +vxlan +w1_bq27000 +w1_ds2408 +w1_ds2413 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1_ds2781 +w1_ds28e04 +w1-gpio +w1_smem +w1_therm +w35und +w5100 +w5300 +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83795 +w83l785ts +w83l786ng +w90p910_ts +w9966 +wacom +wacom_i2c +wacom_w8001 +walkera0701 +warrior +wcn36xx +whiteheat +wimax +wire +wishbone-serial +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl18xx +wlcore +wlcore_sdio +wlcore_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-regulator +wm8775 +wm8994-regulator +wm97xx-ts +wp512 +x25 +x25_asy +xc4000 +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_algo +xfrm_ipcomp +xfrm_user +xfs +xgene-enet +xgmac +xilinx_uartps +xillybus_core +xillybus_of +xor +xor-neon +xpad +xsens_mt +x_tables +xt_addrtype +xt_AUDIT +xt_bpf +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlabel +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_ecn +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_HMARK +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_LOG +xt_mac +xt_mark +xt_multiport +xt_nat +xt_NETMAP +xt_nfacct +xt_NFLOG +xt_NFQUEUE +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xt_REDIRECT +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yurex +zaurus +zd1201 +zd1211rw +zforce_ts +zhenhua +zl10039 +zl10353 +zl6100 +zlib +zr364xx +zram +zte_ev --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/armhf/generic.compiler +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/armhf/generic.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.8.2-19ubuntu1) 4.8.2 --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/armhf/generic.modules +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/armhf/generic.modules @@ -0,0 +1,3673 @@ +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250_dw +8255 +8255_pci +8390 +88pm800 +88pm805 +88pm80x +88pm80x_onkey +88pm860x_battery +88pm860x_bl +88pm860x_charger +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +ablk_helper +acard-ahci +acecad +acenic +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5380 +ad5398 +ad5421 +ad5446 +ad5449 +ad5504 +ad5624r_spi +ad5686 +ad5755 +ad5764 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7266 +ad7280a +ad7291 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7791 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad7923 +ad799x +ad8366 +ad9523 +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2032 +addi_apci_2200 +addi_apci_3501 +addi_apci_3xxx +addi_watchdog +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adf4350 +adfs +adi +adis16060 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1275 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +adq12b +ads1015 +ads7828 +ads7846 +ads7871 +ad_sigma_delta +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adv7180 +adv_pci1710 +adv_pci1723 +adv_pci1724 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +aes-arm +aes-arm-bs +af_802154 +af9013 +af9033 +af_alg +affs +af_key +af_packet_diag +af-rxrpc +afs +ah4 +ah6 +ahci +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +ak8975 +algif_hash +algif_skcipher +alim7101_wdt +alphatrack +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +alx +ambakmi +amba-pl010 +amc6821 +amd5536udc +amd8111e +amplc_dio200 +amplc_dio200_common +amplc_dio200_pci +amplc_pc236 +amplc_pc263 +amplc_pci224 +amplc_pci230 +amplc_pci263 +ams369fg06 +analog +anatop-regulator +ansi_cprng +anubis +aoe +apbps2 +apds9300 +apds9802als +apds990x +appledisplay +appletalk +appletouch +applicom +ar5523 +ar7part +arc4 +arc_emac +arcmsr +arcnet +arc_ps2 +arc-rawmode +arc-rimi +arc_uart +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arkfb +armada +arm_big_little +arm_big_little_dt +arptable_filter +arp_tables +arpt_mangle +as3711_bl +as3711-regulator +as3722-regulator +as5011 +asc7621 +asix +ast +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at86rf230 +at91_can +at91_ether +atbm8830 +aten +ath +ath10k_core +ath10k_pci +ath3k +ath5k +ath6kl_core +ath6kl_sdio +ath6kl_usb +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atm +atmel +atmel_mxt_ts +atmel_pci +atmel_pwm +atmel-pwm-bl +atmel-ssc +atmtcp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522_common +au8522_decoder +au8522_dig +aufs +auo_k1900fb +auo_k1901fb +auo_k190x +auo-pixcir-ts +authenc +authencesn +auth_rpcgss +autofs4 +avmfritz +ax25 +ax88179_178a +ax88796 +b1 +b1dma +b1pci +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bcm203x +bcm3510 +bcm5974 +bcma +bcm_wimax +bd6107 +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bL_switcher_dummy_if +bluetooth +bma150 +bma180 +bmp085-i2c +bmp085-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpa10x +bpck +bpck6 +bpctl_mod +bpqether +bq2415x_charger +bq24190_charger +bq24735-charger +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt878 +btcoexist +btcx-risc +btmrvl +btmrvl_sdio +btmtk_usb +btrfs +btsdio +bttv +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +bw-qcam +bypass +c4 +c67x00 +c6xdigio +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +caif_usb +caif_virtio +camellia_generic +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5_generic +cast6_generic +cast_common +catc +cb710 +cb710-mmc +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcimdas +cb_pcimdda +cc770 +cc770_isa +cc770_platform +c_can +c_can_pci +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +cedusb +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chnl_net +cifs +cirrus +cirrusfb +clearpad_tm1217 +clip +clk-max77686 +clk-s2mps11 +clk-si5351 +clk-twl6040 +clk-wm831x +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm36651 +cma3000_d0x +cma3000_d0x_i2c +cmac +cmtp +cnic +cobra +coda +com20020 +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +configfs +connector-analog-tv +connector-dvi +contec_pci_dio +cordic +core +cp210x +cpia2 +cppi41 +cpu-notifier-error-inject +c-qcam +cramfs +crc32 +crc7 +crc8 +crc-ccitt +crc-itu-t +cros_ec +cros_ec_i2c +cros_ec_keyb +cros_ec_spi +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +cs89x0 +csiostor +ctr +cts +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24117 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyapa +cyber2000fb +cyberjack +cyclades +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da9030_battery +da9034-ts +da903x +da903x_bl +da9052-battery +da9052_bl +da9052-hwmon +da9052_onkey +da9052-regulator +da9052_tsi +da9052_wdt +da9055-hwmon +da9055_onkey +da9055-regulator +da9055_wdt +da9063-regulator +da9210-regulator +DAC960 +daqboard2000 +das08 +das08_isa +das08_pci +das16m1 +das6402 +das800 +davinci_emac +db9 +dc395x +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +ddbridge +de2104x +decnet +deflate +defxx +denali +denali_dt +denali_pci +des_generic +designware_i2s +dgap +dgnc +dgrp +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm644x_ccdc +dm9000 +dm9601 +dm-bio-prison +dm-bufio +dm-cache +dm-cache-cleaner +dm-cache-mq +dm-crypt +dm-delay +dme1737 +dmfe +dm-flakey +dm-log +dm-log-userspace +dmm32at +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-switch +dm-thin-pool +dm-verity +dmx3191d +dm-zero +dnet +dn_rtmsg +docg3 +docg4 +drbd +drm +drm_kms_helper +drm_usb +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2781_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt2801 +dt2811 +dt2814 +dt2815 +dt2817 +dt3000 +dt3155v4l +dt9812 +dummy +dummy-irq +dvb-as102 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-af9035 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6007 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-rtl28xxu +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb_usb_v2 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc2 +dwc2_pci +dwc2_platform +dwc3 +dwc3-omap +dwc3-pci +dw_dmac +dw_dmac_core +dw_dmac_pci +dw_mmc +dw_mmc-exynos +dw_mmc-pci +dw_mmc-pltfm +dw_mmc-socfpga +dw_wdt +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e4000 +earth-pt1 +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_vlan +ec100 +echo +edac_core +edt-ft5x06 +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efs +egalax_ts +ehset +elo +em28xx +em28xx-alsa +em28xx-dvb +em28xx-rc +emc1403 +emc2103 +emc6w201 +em_canid +em_cmp +emi26 +emi62 +emif +em_ipset +em_meta +em_nbyte +empeg +ems_pci +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +encoder-tfp410 +eni +enic +epat +epia +epic100 +eql +esas2r +esd_usb2 +esi-sir +esp4 +esp6 +et131x +ethoc +evbug +exofs +extcon-adc-jack +extcon-arizona +extcon-gpio +extcon-max77693 +extcon-max8997 +extcon-palmas +ezusb +f2fs +f71805f +f71882fg +f75375s +f81232 +fakelb +fan53555 +farsync +faulty +fb_ddc +fb_sys_fops +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fealnx +ff-memless +fid +firedtv +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +firewire-serial +fit2 +fit3 +fl512 +fld +flexcan +fm801-gp +fmc +fmc-chardev +fmc-fakedev +fmc-trivial +fmc-write-eeprom +fm_drv +forcedeth +fore_200e +fotg210-hcd +fotg210-udc +freevxfs +friq +frpw +fsa9480 +fscache +fsl_lpuart +ft1000 +ftdi-elan +ftdi_sio +ftgmac100 +ftl +ftmac100 +fujitsu_ts +fusb300_udc +fusbh200-hcd +g450_pll +g760a +g762 +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdmtty +gdmulte +gdmwm +generic +generic-adc-battery +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_multi +g_ncm +g_nokia +go7007 +go7007-loader +go7007-usb +goku_udc +goldfishfb +gp2ap002a00f +gp2ap020a00f +gpio +gpio-74x164 +gpio-addr-flash +gpio-adnp +gpio-adp5520 +gpio-adp5588 +gpio-amd8111 +gpio-arizona +gpio_backlight +gpio-charger +gpio-da9052 +gpio-da9055 +gpio-dwapb +gpio-fan +gpio-grgpio +gpio-ir-recv +gpio-janz-ttl +gpio-kempld +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-rcar +gpio-rdc321x +gpio-regulator +gpio_tilt_polled +gpio-tps65912 +gpio-ts5500 +gpio-ucb1400 +gpio-viperboard +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +grcan +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_jl2005bcd +gspca_kinect +gspca_konica +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_nw80x +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_se401 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stk1135 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +g_zero +hamachi +hampshire +hanwang +hci +hci_uart +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hid +hid-a4tech +hid-apple +hid-appleir +hid-aureal +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-elo +hid-emsff +hid-ezkey +hid-gaff +hid-generic +hid-gyration +hid-holtekff +hid-holtek-kbd +hid-holtek-mouse +hid-huion +hid-icade +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-lenovo-tpkbd +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-rmi +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-isku +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-konepure +hid-roccat-kovaplus +hid-roccat-lua +hid-roccat-pyra +hid-roccat-ryos +hid-roccat-savu +hid-saitek +hid-samsung +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-gyro-3d +hid-sensor-hub +hid-sensor-iio-common +hid-sensor-magn-3d +hid-sensor-trigger +hid-sjoy +hid-sony +hid-speedlink +hid-steelseries +hid-sunplus +hid-thingm +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-xinmo +hid-zpff +hid-zydacron +hifn_795x +highbank_l2_edac +highbank_mc_edac +hih6130 +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +host1x +hostap +hostap_pci +hostap_plx +hp100 +hpfs +hpilo +hpsa +hptiop +hsi +hsi_char +hso +hsr +htc-pasic3 +htu21 +huawei_cdc_ncm +hwa-hc +hwa-rc +hwmon-vid +hx8357 +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-arb-gpio-challenge +i2c-cbus-gpio +i2c-designware-core +i2c-designware-pci +i2c-designware-platform +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-hid +i2c-i801 +i2c-isch +i2c-kempld +i2c-matroxfb +i2c-mux +i2c-mux-gpio +i2c-mux-pca9541 +i2c-mux-pca954x +i2c-mux-pinctrl +i2c-nforce2 +i2c-nomadik +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-piix4 +i2c-rcar +i2c-sh_mobile +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tegra +i2c-tiny-usb +i2c-versatile +i2c-via +i2c-viapro +i2c-viperboard +i2c-xiic +i2o_block +i2o_bus +i2o_core +i2o_proc +i2o_scsi +i40e +i40evf +i5k_amb +i6300esb +i740fb +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_isert +ib_mad +ibmaem +ibmpex +ib_mthca +ib_sa +ib_srp +ib_srpt +ib_ucm +ib_umad +ib_uverbs +icp_multi +ics932s401 +idmouse +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iguanair +iio_dummy +iio_hwmon +iio-trig-interrupt +iio-trig-periodic-rtc +iio-trig-sysfs +ii_pci20kc +ili210x +ili922x +ili9320 +imm +imon +impa7 +ims-pcu +imx074 +imx6q-cpufreq +imx_thermal +ina209 +ina2xx +industrialio +industrialio-triggered-buffer +inet_diag +inexio +inftl +initio +input-polldev +int51x1 +intel_vr_nor +interact +interval_tree_test +inv-mpu6050 +ioc4 +io_edgeport +io_ti +iowarrior +ip6_gre +ip6table_filter +ip6table_mangle +ip6table_nat +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_MASQUERADE +ip6t_mh +ip6t_NPT +ip6t_REJECT +ip6t_rpfilter +ip6t_rt +ip6t_SYNPROXY +ip6_tunnel +ip6_vti +ipack +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_poweroff +ipmi_si +ipmi_watchdog +ipoctal +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netnet +ip_set_hash_netport +ip_set_hash_netportnet +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_MASQUERADE +ipt_REJECT +ipt_rpfilter +ipt_SYNPROXY +ipt_ULOG +ip_tunnel +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ip_vti +ipw +ipw2100 +ipw2200 +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sanyo-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it87 +it913x-fe +itd1000 +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwldvm +iwlegacy +iwlmvm +iwlwifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +kafs +kalmia +kaweth +kbic +kbtab +kcomedilib +ke_counter +kempld-core +kempld_wdt +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +ko2iblnd +kobil_sct +ks0108 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksocklnd +ksz884x +ktti +kvaser_pci +kvaser_usb +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +l2tp_ppp +l4f00242t03 +l64781 +lanai +lapb +lapbether +latch-addr-flash +lattice-ecp3-config +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-atmel-pwm +leds-bd2802 +leds-blinkm +leds-da903x +leds-da9052 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lm3533 +leds-lm355x +leds-lm3642 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lp5562 +leds-lp55xx-common +leds-lp8501 +leds-lp8788 +leds-lt3593 +leds-max8997 +leds-mc13783 +leds-ot200 +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pca9685 +leds-pwm +leds-regulator +leds-tca6507 +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-camera +ledtrig-default-on +ledtrig-gpio +ledtrig-oneshot +ledtrig-timer +ledtrig-transient +legousbtower +lg2160 +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libceph +libcfs +libcomposite +libcrc32c +libcxgbi +libertas +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_zilog +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc +llc2 +llog_test +lm25066 +lm3533-als +lm3533_bl +lm3533-core +lm3533-ctrlbank +lm3630a_bl +lm3639_bl +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm8333 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95234 +lm95241 +lm95245 +lms283gf05 +lms501kf03 +lmv +lnbp21 +lnbp22 +lnet +lnet_selftest +lockd +lov +lp +lp3971 +lp3972 +lp855x_bl +lp8727_charger +lp8755 +lp8788_bl +lp8788-charger +lpc_ich +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc2978 +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lustre +lv5207lp +lvfs +lz4 +lz4_compress +lz4hc +lz4hc_compress +m25p80 +m2m-deinterlace +m52790 +m88rs2000 +ma600-sir +mac80211 +mac80211_hwsim +mac802154 +macb +mac-celtic +mac-centeuro +mac-croatian +mac-cyrillic +mac-gaelic +mac-greek +mac-iceland +mac-inuit +macmodes +mac-roman +mac-romanian +mac-turkish +macvlan +macvtap +mag3110 +magellan +mailbox_omap2 +mantis +mantis_core +map_absent +map_ram +map_rom +matrix-keymap +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16064 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max197 +max2165 +max3100 +max34440 +max517 +max63xx_wdt +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77686 +max77693 +max8649 +max8660 +max8688 +max8903_charger +max8907 +max8907-regulator +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8973-regulator +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-i2c +mc13xxx-regulator-core +mc13xxx-spi +mc44s803 +mceusb +mcp2120-sir +mcp251x +mcp3021 +mcp320x +mcp3422 +mcp4725 +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memstick +mena21_wdt +metronomefb +metro-usb +mfd +mga +mgc +mg_disk +michael_mic +microread +microread_i2c +microtek +mii +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mlx5_core +mlx5_ib +mma8450 +mms114 +mos7720 +mos7840 +moxa +mpc624 +mpoa +mpr121_touchkey +mpt2sas +mpt3sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrf24j40 +mrp +mrst_max3110 +ms_block +msdos +msp3400 +mspro_block +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt29f_spinand +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +multiq3 +mv88e6060 +mv88e6xxx_drv +mvmdio +mvsas +mv_u3d_core +mv_udc +mvumi +mwifiex +mwifiex_pcie +mwifiex_sdio +mwifiex_usb +mwl8k +mxb +mxc_w1 +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxser +myri10ge +nandsim +natsemi +nau7802 +navman +nbd +nci +ncpfs +nct6775 +ne2k-pci +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netlink_diag +netprio_cgroup +netrom +netxen_nic +newtonkbd +nfc +nfc_digital +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcsim +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_ipv4 +nf_nat_ipv6 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nfsv2 +nfsv3 +nfsv4 +nf_synproxy_core +nf_tables +nf_tables_arp +nf_tables_bridge +nf_tables_ipv4 +nf_tables_ipv6 +nft_chain_nat_ipv4 +nft_chain_nat_ipv6 +nft_chain_route_ipv4 +nft_chain_route_ipv6 +nft_compat +nft_counter +nft_ct +nft_exthdr +nft_hash +nftl +nft_limit +nft_log +nft_meta +nft_nat +nft_rbtree +nft_reject_ipv4 +ngene +n_hdlc +ni_6527 +ni_65xx +ni_660x +ni_670x +ni_at_ao +ni_atmio +ni_atmio16d +nicstar +ni_labpc +ni_labpc_pci +nilfs2 +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nlmon +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nosy +notifier-error-inject +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsp32 +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +null_blk +nvec +nvec_kbd +nvec_paz00 +nvec_power +nvec_ps2 +nvidiafb +nvme +nvram +nxt200x +nxt6000 +obdclass +obdecho +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ocrdma +old_belkin-sir +olpc_apsp +omap +omap2 +omap2430 +omap3-rom-rng +omap4-keypad +omap-aes +omapdrm +omap_hdq +omap-mailbox +omap-ocp2scp +omap_remoteproc +omap-rng +omap-sham +omap-vout +omap_wdt +omfs +omninet +on20 +on26 +onenand +opencores-kbd +openvswitch +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osc +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7640 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +ozwpan +p54common +p54pci +p54spi +p54usb +p8022 +p8023 +palmas-regulator +pandora_bl +panel +panel-dpi +panel-dsi-cm +panel-lgphilips-lb035q02 +panel-nec-nl8048hl11 +panel-sharp-ls037v7dw01 +panel-sony-acx565akm +panel-tpo-td028ttec1 +panel-tpo-td043mtea1 +paride +parkbd +parport +parport_ax88796 +parport_pc +parport_serial +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87410 +pata_ns87415 +pata_of_platform +pata_oldpiix +pata_opti +pata_optidma +pata_pdc2027x +pata_pdc202xx_old +pata_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pc300too +pc87360 +pc87427 +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci-stub +pcl711 +pcl724 +pcl726 +pcl730 +pcm3724 +pcmad +pcmda12 +pcmmio +pcmuio +pcnet32 +pcrypt +pcwd_pci +pcwd_usb +pd +pda_power +pdc_adma +peak_pci +peak_usb +pegasus +penmount +percpu_test +pf +pfuze100-regulator +pg +phantom +phison +phonet +phram +phy-am335x +phy-am335x-control +phy-exynos-dp-video +phy-gpio-vbus-usb +phy-isp1301 +phy-omap-usb3 +phy-rcar-usb +phy-samsung-usb +phy-samsung-usb2 +phy-samsung-usb3 +physmap +physmap_of +phy-twl4030-usb +phy-twl6030-usb +pixcir_i2c_ts +pktcdvd +pktgen +pl2303 +pl330 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm80xx +pmbus +pmbus_core +pmc551 +pmcraid +pm-notifier-error-inject +pn533 +pn544 +pn544_i2c +pn_pep +poc +port100 +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +psmouse +psnap +pt +ptlrpc +pvrusb2 +pwc +pwm_bl +pwm-pca9685 +pwm-tegra +pwm-twl +pwm-twl-led +pxa27x_udc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qmi_wwan +qnx4 +qnx6 +qt1010 +qt1070 +qt2160 +quatech2 +quota_tree +quota_v1 +quota_v2 +qxl +r128 +r592 +r6040 +r8152 +r815x +r8169 +r8187se +r8188eu +r8192e_pci +r8192u_usb +r820t +r852 +r8712u +r8a66597-hcd +r8a66597-udc +radeon +radeonfb +radio-i2c-si470x +radio-keene +radio-ma901 +radio-maxiradio +radio-mr800 +radio-shark +radio-si4713 +radio-si476x +radio-tea5764 +radio-timb +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +raw +rbd +rbtree_test +rc5t583-regulator +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rcar-du-drm +rcar_vin +rc-asus-pc39 +rc-asus-ps3-100 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-delock-61959 +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-it913x-v1 +rc-it913x-v2 +rc-kaiomy +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-msi-digivox-ii +rc-msi-digivox-iii +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-reddo +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-total-media-in-hand-02 +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reiserfs +remoteproc +renesas_usbhs +retu-mfd +retu-pwrbutton +retu_wdt +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-gpio +rfkill-regulator +rio500 +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rp2 +rpcsec_gss_krb5 +rsxx +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800mmio +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm80x +rtc-88pm860x +rtc-ab3100 +rtc-as3722 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc-da9052 +rtc-da9055 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds2404 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-hid-sensor-time +rtc-isl12022 +rtc-isl1208 +rtc-lp8788 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max77686 +rtc-max8907 +rtc-max8925 +rtc-max8997 +rtc-max8998 +rtc-mc13xxx +rtc-moxart +rtc-msm6242 +rtc-palmas +rtc-pcf2123 +rtc-pcf2127 +rtc-pcf50633 +rtc-pcf8523 +rtc-pcf8563 +rtc-pcf8583 +rtc-pl030 +rtc-r9701 +rtc-rc5t583 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx4581 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-s5m +rtc-snvs +rtc-stk17ta8 +rtc-tegra +rtc-tps6586x +rtc-tps65910 +rtc-tps80031 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rti800 +rti802 +rtl2830 +rtl2832 +rtl8150 +rtl8180 +rtl8187 +rtl8188ee +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtl8723ae +rtl8723be +rtl8723-common +rtl8821ae +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtl_pci +rtl_usb +rtlwifi +rts5139 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rx51_battery +rxkad +s1d13xxxfb +s2250 +s2255drv +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s5m8767 +s626 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7706h +safe_serial +sahara +salsa20_generic +samsung-keypad +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_rcar +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sbe-2t3e3 +sbp_target +sbs-battery +sc92031 +sca3000 +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_fq +sch_fq_codel +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_plug +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +sctp +sctp_probe +sdhci-pci +sdhci-pxav2 +sdhci-pxav3 +sdhci-tegra +sdio_uart +sdr-msi3101 +seed +sep_driver +seqiv +ser_gigaset +serial2002 +serial-tegra +serio_raw +sermouse +serpent_generic +serport +serqt_usb2 +ses +sfc +sha1-arm +shark2 +sh_eth +sh_keysc +shmob-drm +sh_mobile_ceu_camera +sh_mobile_csi2 +sh-sci +sht15 +sht21 +sh_veu +si21xx +si4713-i2c +si476x-core +sidewinder +sierra +sierra_net +sil164 +sir-dev +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_of_platform +sja1000_platform +skel +skfp +skge +sky2 +sl811-hcd +slcan +slip +slram +sm501 +sm501fb +sm7xxfb +smb347-charger +smc911x +smc91x +sm_common +sm_ftl +smm665 +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smscufx +smsdvb +smsmdtv +smssdio +smsusb +snd-aaci +snd-ac97-codec +snd-ad1889 +snd-ak4113 +snd-ak4114 +snd-ak4xxx-adda +snd-ali5451 +snd-aloop +snd-als300 +snd-at73c213 +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-cs4281 +snd-cs46xx +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dice +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-firewire-lib +snd-firewire-speakers +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-ca0110 +snd-hda-codec-ca0132 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-isight +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lola +snd-maestro3 +snd-mia +snd-mixart +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-oxygen +snd-oxygen-lib +snd-pcxhr +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-scs1x +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-alc5632 +snd-soc-atmel-pcm +snd-soc-davinci +snd-soc-davinci-mcasp +snd-soc-evm +snd-soc-fsl-spdif +snd-soc-imx-mc13783 +snd-soc-imx-spdif +snd-soc-imx-ssi +snd-soc-imx-wm8962 +snd-soc-mc13783 +snd-soc-omap3pandora +snd-soc-rt5640 +snd-soc-si476x +snd-soc-simple-card +snd-soc-spdif-rx +snd-soc-spdif-tx +snd-soc-tegra20-ac97 +snd-soc-tegra20-das +snd-soc-tegra20-i2s +snd-soc-tegra20-spdif +snd-soc-tegra30-ahub +snd-soc-tegra30-i2s +snd-soc-tegra-alc5632 +snd-soc-tegra-pcm +snd-soc-tegra-rt5640 +snd-soc-tegra-trimslice +snd-soc-tegra-utils +snd-soc-tegra-wm8753 +snd-soc-tegra-wm8903 +snd-soc-tegra-wm9712 +snd-soc-tlv320aic23 +snd-soc-tlv320aic3x +snd-soc-wm8753 +snd-soc-wm8903 +snd-soc-wm8962 +snd-soc-wm9712 +snd-sonicvibes +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usb-hiface +snd-usbmidi-lib +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +soc_scale_crop +softdog +softing +solo6x10 +solos-pci +sony-btf-mpx +sp805_wdt +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_dectlk +speakup_dummy +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +speedfax +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw +spi-dw-midpci +spi-dw-mmio +spi-fsl-dspi +spi-gpio +spi-imx +spi_ks8995 +spi-lm70llp +spi-oc-tiny +spi-pl022 +spi-pxa2xx-pci +spi-pxa2xx-platform +spi-sc18is602 +spi-tegra114 +spi-tegra20-sflash +spi-tegra20-slink +spi-ti-qspi +spi-tle62x0 +spi-topcliff-pch +spi-xcomm +squashfs +sr9700 +ssb +ssd1307fb +ssfdc +sst25l +sstfb +ssu100 +st +st1232 +st_accel +st_accel_i2c +st_accel_spi +starfire +st-asc +stb0899 +stb6000 +stb6100 +st_drv +ste_modem_rproc +stex +st_gyro +st_gyro_i2c +st_gyro_spi +stinger +stir4200 +stk1160 +stkwebcam +st_magn +st_magn_i2c +st_magn_spi +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +st_pressure +st_pressure_i2c +st_pressure_spi +streamzap +st_sensors +st_sensors_i2c +st_sensors_spi +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +sur40 +svcrdma +svgalib +sx8 +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synaptics_usb +synclink_gt +synclinkmp +sysv +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tca8418_keypad +tcm_fc +tcm_loop +tcm_qla2xxx +tcm_usb_gadget +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tcs3472 +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tda998x +tdfx +tdfxfb +tdo24m +tea +tea575x +tea5761 +tea5767 +tea6415c +tea6420 +team +team_mode_activebackup +team_mode_broadcast +team_mode_loadbalance +team_mode_random +team_mode_roundrobin +tef6862 +tegra-aes +tegra-kbc +tehuti +tekram-sir +test-kprobes +test-kstrtox +test_power +test-string_helpers +tg3 +tgr192 +thmc50 +ti-adc081c +ti_am335x_adc +ti_am335x_tsc +ti_am335x_tscadc +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +ti_hecc +tilcdc +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti-soc-thermal +ti_usb_3410_5052 +ti-vpe +tlan +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmio_mmc +tmio_mmc_core +tmio_nand +tmp006 +tmp102 +tmp401 +tmp421 +tmscsim +toim3232-sir +touchit213 +touchright +touchwin +tpci200 +tpm_i2c_atmel +tpm_i2c_infineon +tpm_i2c_nuvoton +tpm_i2c_stm_st33 +tpm-rng +tps51632-regulator +tps6105x +tps6105x-regulator +tps62360-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps65090-charger +tps65090-regulator +tps65217 +tps65217_bl +tps65217-regulator +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +tps80031-regulator +trancevibrator +tranzport +tridentfb +ts2020 +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +tsl2x7x_core +tsl4531 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +tua6100 +tua9001 +tulip +tuner +tuner_it913x +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +tw2804 +tw9903 +tw9906 +tw9910 +twidjoy +twl4030_charger +twl4030_keypad +twl4030-madc +twl4030_madc_battery +twl4030-madc-hwmon +twl4030-pwrbutton +twl4030-vibra +twl4030_wdt +twl6030-gpadc +twl6040-vibra +twofish_common +twofish_generic +typhoon +u132-hcd +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +ucd9000 +ucd9200 +uda1342 +udf +udl +udlfb +udp_diag +ueagle-atm +u_ether +ufs +ufshcd +ufshcd-pci +ufshcd-pltfrm +uhid +uio +uio_aec +uio_cif +uio_dmem_genirq +uio_mf624 +uio_netx +uio_pci_generic +uio_pdrv_genirq +uio_sercos3 +uli526x +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unioxx5 +unix_diag +upd64031a +upd64083 +u_rndis +usb3503 +usb_8dev +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_f_acm +usb_f_ecm +usb_f_ecm_subset +usb_f_eem +usb_f_mass_storage +usb_f_ncm +usb_f_obex +usb_f_phonet +usb_f_rndis +usb_f_serial +usb_f_ss_lb +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usb-serial-simple +usbsevseg +usbtest +usbtmc +usbtouchscreen +usbtv +usbvision +usb_wwan +u_serial +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +ux500 +v4l2-common +v4l2-dv-timings +v4l2-int-device +v4l2-mem2mem +vcan +vcnl4000 +ves1820 +ves1x93 +veth +vexpress +vexpress-spc-cpufreq +vfio +vfio-pci +vgastate +vgg2432a4 +vhci-hcd +vhost +vhost_net +vhost_scsi +via +via686a +via-rhine +via-sdmmc +via-velocity +videobuf2-core +videobuf2-dma-contig +videobuf2-dma-sg +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videodev +viperboard +viperboard_adc +virtio-rng +virtio_rpmsg_bus +virtio_scsi +virtual +visor +vivi +vlsi_ir +vmac +vme +vme_pio2 +vme_user +vme_vmivme7805 +vmk80xx +vmwgfx +vmxnet3 +vp27smpx +vpfe_capture +vpss +vringh +vsock +vsxxxaa +vt1211 +vt6655_stage +vt6656_stage +vt8231 +vt8623fb +vub300 +vx855 +vxge +vxlan +w1_bq27000 +w1_ds2408 +w1_ds2413 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1_ds2781 +w1_ds28e04 +w1-gpio +w1_smem +w1_therm +w35und +w5100 +w5300 +w6692 +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83795 +w83l785ts +w83l786ng +w90p910_ts +w9966 +wacom +wacom_i2c +wacom_w8001 +walkera0701 +wanxl +warrior +wcn36xx +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wimax +winbond-840 +wire +wishbone-serial +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl18xx +wlcore +wlcore_sdio +wlcore_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +xc4000 +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_algo +xfrm_ipcomp +xfrm_user +xfs +xgene-enet +xgifb +xgmac +xilinx_uartps +xillybus_core +xillybus_of +xillybus_pcie +xor +xor-neon +xpad +xprtrdma +xsens_mt +x_tables +xt_addrtype +xt_AUDIT +xt_bpf +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlabel +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_ecn +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_HMARK +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_LOG +xt_mac +xt_mark +xt_multiport +xt_nat +xt_NETMAP +xt_nfacct +xt_NFLOG +xt_NFQUEUE +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xt_REDIRECT +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yellowfin +yurex +zaurus +zd1201 +zd1211rw +zforce_ts +zhenhua +zl10036 +zl10039 +zl10353 +zl6100 +zlib +zr364xx +zram +zte_ev --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/fwinfo +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/fwinfo @@ -0,0 +1,765 @@ +firmware: 3826.arm +firmware: 3com/typhoon.bin +firmware: 6fire/dmx6fireap.ihx +firmware: 6fire/dmx6firecf.bin +firmware: 6fire/dmx6firel2.ihx +firmware: acenic/tg1.bin +firmware: acenic/tg2.bin +firmware: adaptec/starfire_rx.bin +firmware: adaptec/starfire_tx.bin +firmware: advansys/3550.bin +firmware: advansys/38C0800.bin +firmware: advansys/38C1600.bin +firmware: advansys/mcode.bin +firmware: agere_ap_fw.bin +firmware: agere_sta_fw.bin +firmware: aic94xx-seq.fw +firmware: ar5523.bin +firmware: asihpi/dsp5000.bin +firmware: asihpi/dsp6200.bin +firmware: asihpi/dsp6205.bin +firmware: asihpi/dsp6400.bin +firmware: asihpi/dsp6600.bin +firmware: asihpi/dsp8700.bin +firmware: asihpi/dsp8900.bin +firmware: ath10k/QCA988X/hw2.0/board.bin +firmware: ath10k/QCA988X/hw2.0/firmware.bin +firmware: ath10k/QCA988X/hw2.0/otp.bin +firmware: ath3k-1.fw +firmware: ath6k/AR6003/hw2.0/athwlan.bin.z77 +firmware: ath6k/AR6003/hw2.0/bdata.bin +firmware: ath6k/AR6003/hw2.0/bdata.SD31.bin +firmware: ath6k/AR6003/hw2.0/data.patch.bin +firmware: ath6k/AR6003/hw2.0/otp.bin.z77 +firmware: ath6k/AR6003/hw2.1.1/athwlan.bin +firmware: ath6k/AR6003/hw2.1.1/bdata.bin +firmware: ath6k/AR6003/hw2.1.1/bdata.SD31.bin +firmware: ath6k/AR6003/hw2.1.1/data.patch.bin +firmware: ath6k/AR6003/hw2.1.1/otp.bin +firmware: ath6k/AR6004/hw1.0/bdata.bin +firmware: ath6k/AR6004/hw1.0/bdata.DB132.bin +firmware: ath6k/AR6004/hw1.0/fw.ram.bin +firmware: ath6k/AR6004/hw1.1/bdata.bin +firmware: ath6k/AR6004/hw1.1/bdata.DB132.bin +firmware: ath6k/AR6004/hw1.1/fw.ram.bin +firmware: ath6k/AR6004/hw1.2/bdata.bin +firmware: ath6k/AR6004/hw1.2/fw.ram.bin +firmware: ath6k/AR6004/hw1.3/bdata.bin +firmware: ath6k/AR6004/hw1.3/fw.ram.bin +firmware: atmel_at76c502_3com.bin +firmware: atmel_at76c502_3com-wpa.bin +firmware: atmel_at76c502.bin +firmware: atmel_at76c502d.bin +firmware: atmel_at76c502d-wpa.bin +firmware: atmel_at76c502e.bin +firmware: atmel_at76c502e-wpa.bin +firmware: atmel_at76c502-wpa.bin +firmware: atmel_at76c503-i3861.bin +firmware: atmel_at76c503-i3863.bin +firmware: atmel_at76c503-rfmd-acc.bin +firmware: atmel_at76c503-rfmd.bin +firmware: atmel_at76c504_2958.bin +firmware: atmel_at76c504_2958-wpa.bin +firmware: atmel_at76c504a_2958.bin +firmware: atmel_at76c504a_2958-wpa.bin +firmware: atmel_at76c504.bin +firmware: atmel_at76c504-wpa.bin +firmware: atmel_at76c505amx-rfmd.bin +firmware: atmel_at76c505a-rfmd2958.bin +firmware: atmel_at76c505-rfmd2958.bin +firmware: atmel_at76c505-rfmd.bin +firmware: atmel_at76c506.bin +firmware: atmel_at76c506-wpa.bin +firmware: atmsar11.fw +firmware: atsc_denver.inp +firmware: av7110/bootcode.bin +firmware: b43legacy/ucode2.fw +firmware: b43legacy/ucode4.fw +firmware: b43/ucode11.fw +firmware: b43/ucode13.fw +firmware: b43/ucode14.fw +firmware: b43/ucode15.fw +firmware: b43/ucode16_mimo.fw +firmware: b43/ucode5.fw +firmware: b43/ucode9.fw +firmware: BCM2033-FW.bin +firmware: BCM2033-MD.hex +firmware: bfubase.frm +firmware: bnx2/bnx2-mips-06-6.2.3.fw +firmware: bnx2/bnx2-mips-09-6.2.1b.fw +firmware: bnx2/bnx2-rv2p-06-6.0.15.fw +firmware: bnx2/bnx2-rv2p-09-6.0.17.fw +firmware: bnx2/bnx2-rv2p-09ax-6.0.17.fw +firmware: bnx2x/bnx2x-e1-7.8.17.0.fw +firmware: bnx2x/bnx2x-e1h-7.8.17.0.fw +firmware: bnx2x/bnx2x-e2-7.8.17.0.fw +firmware: brcm/bcm43xx-0.fw +firmware: brcm/bcm43xx_hdr-0.fw +firmware: brcm/brcmfmac43143.bin +firmware: brcm/brcmfmac43143-sdio.bin +firmware: brcm/brcmfmac43143-sdio.txt +firmware: brcm/brcmfmac43236b.bin +firmware: brcm/brcmfmac43241b0-sdio.bin +firmware: brcm/brcmfmac43241b0-sdio.txt +firmware: brcm/brcmfmac43241b4-sdio.bin +firmware: brcm/brcmfmac43241b4-sdio.txt +firmware: brcm/brcmfmac43242a.bin +firmware: brcm/brcmfmac4329-sdio.bin +firmware: brcm/brcmfmac4329-sdio.txt +firmware: brcm/brcmfmac4330-sdio.bin +firmware: brcm/brcmfmac4330-sdio.txt +firmware: brcm/brcmfmac4334-sdio.bin +firmware: brcm/brcmfmac4334-sdio.txt +firmware: brcm/brcmfmac4335-sdio.bin +firmware: brcm/brcmfmac4335-sdio.txt +firmware: BT3CPCC.bin +firmware: c218tunx.cod +firmware: c320tunx.cod +firmware: carl9170-1.fw +firmware: cbfw-3.2.1.1.bin +firmware: cis/3CCFEM556.cis +firmware: cis/3CXEM556.cis +firmware: cis/COMpad2.cis +firmware: cis/COMpad4.cis +firmware: cis/DP83903.cis +firmware: cis/LA-PCM.cis +firmware: cis/MT5634ZLX.cis +firmware: cis/NE2K.cis +firmware: cis/PCMLM28.cis +firmware: cis/PE-200.cis +firmware: cis/PE520.cis +firmware: cis/RS-COM-2P.cis +firmware: cis/SW_555_SER.cis +firmware: cis/SW_7xx_SER.cis +firmware: cis/SW_8xx_SER.cis +firmware: cis/tamarack.cis +firmware: cmmb_ming_app.inp +firmware: cmmb_vega_12mhz.inp +firmware: cmmb_venice_12mhz.inp +firmware: comedi/jr3pci.idm +firmware: cp204unx.cod +firmware: cpia2/stv0672_vp4.bin +firmware: ct2fw-3.2.1.1.bin +firmware: ctefx.bin +firmware: ctfw-3.2.1.1.bin +firmware: cxgb3/ael2005_opt_edc.bin +firmware: cxgb3/ael2005_twx_edc.bin +firmware: cxgb3/ael2020_twx_edc.bin +firmware: cxgb3/t3b_psram-1.1.0.bin +firmware: cxgb3/t3c_psram-1.1.0.bin +firmware: cxgb3/t3fw-7.12.0.bin +firmware: cxgb4/t4fw.bin +firmware: cxgb4/t5fw.bin +firmware: cyzfirm.bin +firmware: daqboard2000_firmware.bin +firmware: digiface_firmware.bin +firmware: digiface_firmware_rev11.bin +firmware: dvb-cx18-mpc718-mt352.fw +firmware: dvb-fe-af9013.fw +firmware: dvb-fe-cx24117.fw +firmware: dvb-fe-ds3000.fw +firmware: dvb-fe-tda10071.fw +firmware: dvb-fe-xc5000-1.6.114.fw +firmware: dvb-fe-xc5000c-4.1.30.7.fw +firmware: dvbh_rio.inp +firmware: dvb_nova_12mhz_b0.inp +firmware: dvb_nova_12mhz.inp +firmware: dvb_rio.inp +firmware: dvb-usb-af9015.fw +firmware: dvb-usb-af9035-02.fw +firmware: dvb-usb-dib0700-1.20.fw +firmware: dvb-usb-dw2101.fw +firmware: dvb-usb-dw2102.fw +firmware: dvb-usb-dw2104.fw +firmware: dvb-usb-dw3101.fw +firmware: dvb-usb-ec168.fw +firmware: dvb-usb-it9135-01.fw +firmware: dvb-usb-it9135-02.fw +firmware: dvb-usb-it9137-01.fw +firmware: dvb-usb-lme2510c-lg.fw +firmware: dvb-usb-lme2510c-rs2000.fw +firmware: dvb-usb-lme2510c-s0194.fw +firmware: dvb-usb-lme2510c-s7395.fw +firmware: dvb-usb-lme2510-lg.fw +firmware: dvb-usb-lme2510-s0194.fw +firmware: dvb-usb-p1100.fw +firmware: dvb-usb-p7500.fw +firmware: dvb-usb-s630.fw +firmware: dvb-usb-s660.fw +firmware: dvb-usb-terratec-h7-az6007.fw +firmware: e100/d101m_ucode.bin +firmware: e100/d101s_ucode.bin +firmware: e100/d102e_ucode.bin +firmware: ea/3g_asic.fw +firmware: ea/darla20_dsp.fw +firmware: ea/darla24_dsp.fw +firmware: ea/echo3g_dsp.fw +firmware: ea/gina20_dsp.fw +firmware: ea/gina24_301_asic.fw +firmware: ea/gina24_301_dsp.fw +firmware: ea/gina24_361_asic.fw +firmware: ea/gina24_361_dsp.fw +firmware: ea/indigo_dj_dsp.fw +firmware: ea/indigo_djx_dsp.fw +firmware: ea/indigo_dsp.fw +firmware: ea/indigo_io_dsp.fw +firmware: ea/indigo_iox_dsp.fw +firmware: ea/layla20_asic.fw +firmware: ea/layla20_dsp.fw +firmware: ea/layla24_1_asic.fw +firmware: ea/layla24_2A_asic.fw +firmware: ea/layla24_2S_asic.fw +firmware: ea/layla24_dsp.fw +firmware: ea/loader_dsp.fw +firmware: ea/mia_dsp.fw +firmware: ea/mona_2_asic.fw +firmware: ea/mona_301_1_asic_48.fw +firmware: ea/mona_301_1_asic_96.fw +firmware: ea/mona_301_dsp.fw +firmware: ea/mona_361_1_asic_48.fw +firmware: ea/mona_361_1_asic_96.fw +firmware: ea/mona_361_dsp.fw +firmware: edgeport/boot2.fw +firmware: edgeport/boot.fw +firmware: edgeport/down2.fw +firmware: edgeport/down3.bin +firmware: edgeport/down.fw +firmware: emi26/bitstream.fw +firmware: emi26/firmware.fw +firmware: emi26/loader.fw +firmware: emi62/bitstream.fw +firmware: emi62/loader.fw +firmware: emi62/spdif.fw +firmware: emu/audio_dock.fw +firmware: emu/emu0404.fw +firmware: emu/emu1010b.fw +firmware: emu/emu1010_notebook.fw +firmware: emu/hana.fw +firmware: emu/micro_dock.fw +firmware: ene-ub6250/ms_init.bin +firmware: ene-ub6250/msp_rdwr.bin +firmware: ene-ub6250/ms_rdwr.bin +firmware: ene-ub6250/sd_init1.bin +firmware: ene-ub6250/sd_init2.bin +firmware: ene-ub6250/sd_rdwr.bin +firmware: ess/maestro3_assp_kernel.fw +firmware: ess/maestro3_assp_minisrc.fw +firmware: f2255usb.bin +firmware: fm_radio.inp +firmware: fm_radio_rio.inp +firmware: fw.ram.bin +firmware: go7007/go7007fw.bin +firmware: go7007/go7007tv.bin +firmware: go7007/lr192.fw +firmware: go7007/px-m402u.fw +firmware: go7007/px-tv402u.fw +firmware: go7007/s2250-1.fw +firmware: go7007/s2250-2.fw +firmware: go7007/wis-startrek.fw +firmware: htc_7010.fw +firmware: htc_9271.fw +firmware: i1480-phy-0.0.bin +firmware: i1480-pre-phy-0.0.bin +firmware: i1480-usb-0.0.bin +firmware: i2400m-fw-usb-1.5.sbcf +firmware: i6050-fw-usb-1.5.sbcf +firmware: icom_asc.bin +firmware: icom_call_setup.bin +firmware: icom_res_dce.bin +firmware: ipw2100-1.3.fw +firmware: ipw2100-1.3-i.fw +firmware: ipw2100-1.3-p.fw +firmware: ipw2200-bss.fw +firmware: ipw2200-ibss.fw +firmware: ipw2200-sniffer.fw +firmware: isci/isci_firmware.bin +firmware: isdbt_nova_12mhz_b0.inp +firmware: isdbt_nova_12mhz.inp +firmware: isdbt_pele.inp +firmware: isdbt_rio.inp +firmware: isdn/ISAR.BIN +firmware: isi4608.bin +firmware: isi4616.bin +firmware: isi608.bin +firmware: isi608em.bin +firmware: isi616em.bin +firmware: isight.fw +firmware: isl3886pci +firmware: isl3886usb +firmware: isl3887usb +firmware: iwlwifi-1000-5.ucode +firmware: iwlwifi-100-5.ucode +firmware: iwlwifi-105-6.ucode +firmware: iwlwifi-135-6.ucode +firmware: iwlwifi-2000-6.ucode +firmware: iwlwifi-2030-6.ucode +firmware: iwlwifi-3160-7.ucode +firmware: iwlwifi-3945-2.ucode +firmware: iwlwifi-4965-2.ucode +firmware: iwlwifi-5000-5.ucode +firmware: iwlwifi-5150-2.ucode +firmware: iwlwifi-6000-4.ucode +firmware: iwlwifi-6000g2a-5.ucode +firmware: iwlwifi-6000g2b-6.ucode +firmware: iwlwifi-6050-5.ucode +firmware: iwlwifi-7260-7.ucode +firmware: iwlwifi-7265-7.ucode +firmware: kaweth/new_code.bin +firmware: kaweth/new_code_fix.bin +firmware: kaweth/trigger_code.bin +firmware: kaweth/trigger_code_fix.bin +firmware: keyspan/mpr.fw +firmware: keyspan_pda/keyspan_pda.fw +firmware: keyspan_pda/xircom_pgs.fw +firmware: keyspan/usa18x.fw +firmware: keyspan/usa19.fw +firmware: keyspan/usa19qi.fw +firmware: keyspan/usa19qw.fw +firmware: keyspan/usa19w.fw +firmware: keyspan/usa28.fw +firmware: keyspan/usa28xa.fw +firmware: keyspan/usa28xb.fw +firmware: keyspan/usa28x.fw +firmware: keyspan/usa49w.fw +firmware: keyspan/usa49wlc.fw +firmware: korg/k1212.dsp +firmware: lbtf_usb.bin +firmware: lgs8g75.fw +firmware: libertas/cf8305.bin +firmware: libertas/cf8381.bin +firmware: libertas/cf8381_helper.bin +firmware: libertas/cf8385.bin +firmware: libertas/cf8385_helper.bin +firmware: libertas_cs.fw +firmware: libertas_cs_helper.fw +firmware: libertas/gspi8385.bin +firmware: libertas/gspi8385_helper.bin +firmware: libertas/gspi8385_hlp.bin +firmware: libertas/gspi8686.bin +firmware: libertas/gspi8686_hlp.bin +firmware: libertas/gspi8686_v9.bin +firmware: libertas/gspi8686_v9_helper.bin +firmware: libertas/gspi8688.bin +firmware: libertas/gspi8688_helper.bin +firmware: libertas/sd8385.bin +firmware: libertas/sd8385_helper.bin +firmware: libertas/sd8686_v8.bin +firmware: libertas/sd8686_v8_helper.bin +firmware: libertas/sd8686_v9.bin +firmware: libertas/sd8686_v9_helper.bin +firmware: libertas/sd8688.bin +firmware: libertas/sd8688_helper.bin +firmware: libertas/usb8388.bin +firmware: libertas/usb8388_v5.bin +firmware: libertas/usb8388_v9.bin +firmware: libertas/usb8682.bin +firmware: matrox/g200_warp.fw +firmware: matrox/g400_warp.fw +firmware: me2600_firmware.bin +firmware: mixart/miXart8AES.xlx +firmware: mixart/miXart8.elf +firmware: mixart/miXart8.xlx +firmware: mrvl/pcie8766_uapsta.bin +firmware: mrvl/pcie8897_uapsta.bin +firmware: mrvl/sd8688.bin +firmware: mrvl/sd8688_helper.bin +firmware: mrvl/sd8786_uapsta.bin +firmware: mrvl/sd8787_uapsta.bin +firmware: mrvl/sd8797_caldata.conf +firmware: mrvl/sd8797_uapsta.bin +firmware: mrvl/sd8897_uapsta.bin +firmware: mrvl/usb8797_uapsta.bin +firmware: mt7650.bin +firmware: mt7662.bin +firmware: mts_cdma.fw +firmware: mts_edge.fw +firmware: mts_gsm.fw +firmware: mts_mt9234mu.fw +firmware: mts_mt9234zba.fw +firmware: multiface_firmware.bin +firmware: multiface_firmware_rev11.bin +firmware: mwl8k/fmimage_8363.fw +firmware: mwl8k/fmimage_8366_ap-3.fw +firmware: mwl8k/fmimage_8366.fw +firmware: mwl8k/fmimage_8687.fw +firmware: mwl8k/helper_8363.fw +firmware: mwl8k/helper_8366.fw +firmware: mwl8k/helper_8687.fw +firmware: myri10ge_ethp_z8e.dat +firmware: myri10ge_eth_z8e.dat +firmware: myri10ge_rss_ethp_z8e.dat +firmware: myri10ge_rss_eth_z8e.dat +firmware: ni6534a.bin +firmware: niscrb01.bin +firmware: niscrb02.bin +firmware: orinoco_ezusb_fw +firmware: ositech/Xilinx7OD.bin +firmware: pca200e.bin +firmware: pca200e_ecd.bin2 +firmware: pcxhr/dspb1222e.b56 +firmware: pcxhr/dspb1222hr.b56 +firmware: pcxhr/dspb882e.b56 +firmware: pcxhr/dspb882hr.b56 +firmware: pcxhr/dspb924.b56 +firmware: pcxhr/dspd1222.d56 +firmware: pcxhr/dspd222.d56 +firmware: pcxhr/dspd882.d56 +firmware: pcxhr/dspe882.e56 +firmware: pcxhr/dspe924.e56 +firmware: pcxhr/xlxc1222e.dat +firmware: pcxhr/xlxc1222hr.dat +firmware: pcxhr/xlxc222.dat +firmware: pcxhr/xlxc882e.dat +firmware: pcxhr/xlxc882hr.dat +firmware: pcxhr/xlxc924.dat +firmware: pcxhr/xlxint.dat +firmware: phanfw.bin +firmware: prism2_ru.fw +firmware: prism_ap_fw.bin +firmware: prism_sta_fw.bin +firmware: ql2100_fw.bin +firmware: ql2200_fw.bin +firmware: ql2300_fw.bin +firmware: ql2322_fw.bin +firmware: ql2400_fw.bin +firmware: ql2500_fw.bin +firmware: qlogic/1040.bin +firmware: qlogic/12160.bin +firmware: qlogic/1280.bin +firmware: qlogic/sd7220.fw +firmware: r128/r128_cce.bin +firmware: radeon/ARUBA_me.bin +firmware: radeon/ARUBA_pfp.bin +firmware: radeon/ARUBA_rlc.bin +firmware: radeon/BARTS_mc.bin +firmware: radeon/BARTS_me.bin +firmware: radeon/BARTS_pfp.bin +firmware: radeon/BARTS_smc.bin +firmware: radeon/BONAIRE_ce.bin +firmware: radeon/BONAIRE_mc2.bin +firmware: radeon/BONAIRE_mc.bin +firmware: radeon/BONAIRE_me.bin +firmware: radeon/BONAIRE_mec.bin +firmware: radeon/BONAIRE_pfp.bin +firmware: radeon/BONAIRE_rlc.bin +firmware: radeon/BONAIRE_sdma.bin +firmware: radeon/BONAIRE_smc.bin +firmware: radeon/BONAIRE_uvd.bin +firmware: radeon/BTC_rlc.bin +firmware: radeon/CAICOS_mc.bin +firmware: radeon/CAICOS_me.bin +firmware: radeon/CAICOS_pfp.bin +firmware: radeon/CAICOS_smc.bin +firmware: radeon/CAYMAN_mc.bin +firmware: radeon/CAYMAN_me.bin +firmware: radeon/CAYMAN_pfp.bin +firmware: radeon/CAYMAN_rlc.bin +firmware: radeon/CAYMAN_smc.bin +firmware: radeon/CEDAR_me.bin +firmware: radeon/CEDAR_pfp.bin +firmware: radeon/CEDAR_rlc.bin +firmware: radeon/CEDAR_smc.bin +firmware: radeon/CYPRESS_me.bin +firmware: radeon/CYPRESS_pfp.bin +firmware: radeon/CYPRESS_rlc.bin +firmware: radeon/CYPRESS_smc.bin +firmware: radeon/CYPRESS_uvd.bin +firmware: radeon/HAINAN_ce.bin +firmware: radeon/HAINAN_mc2.bin +firmware: radeon/HAINAN_mc.bin +firmware: radeon/HAINAN_me.bin +firmware: radeon/HAINAN_pfp.bin +firmware: radeon/HAINAN_rlc.bin +firmware: radeon/HAINAN_smc.bin +firmware: radeon/HAWAII_ce.bin +firmware: radeon/HAWAII_mc2.bin +firmware: radeon/HAWAII_mc.bin +firmware: radeon/HAWAII_me.bin +firmware: radeon/HAWAII_mec.bin +firmware: radeon/HAWAII_pfp.bin +firmware: radeon/HAWAII_rlc.bin +firmware: radeon/HAWAII_sdma.bin +firmware: radeon/HAWAII_smc.bin +firmware: radeon/JUNIPER_me.bin +firmware: radeon/JUNIPER_pfp.bin +firmware: radeon/JUNIPER_rlc.bin +firmware: radeon/JUNIPER_smc.bin +firmware: radeon/KABINI_ce.bin +firmware: radeon/KABINI_me.bin +firmware: radeon/KABINI_mec.bin +firmware: radeon/KABINI_pfp.bin +firmware: radeon/KABINI_rlc.bin +firmware: radeon/KABINI_sdma.bin +firmware: radeon/KAVERI_ce.bin +firmware: radeon/KAVERI_me.bin +firmware: radeon/KAVERI_mec.bin +firmware: radeon/KAVERI_pfp.bin +firmware: radeon/KAVERI_rlc.bin +firmware: radeon/KAVERI_sdma.bin +firmware: radeon/OLAND_ce.bin +firmware: radeon/OLAND_mc2.bin +firmware: radeon/OLAND_mc.bin +firmware: radeon/OLAND_me.bin +firmware: radeon/OLAND_pfp.bin +firmware: radeon/OLAND_rlc.bin +firmware: radeon/OLAND_smc.bin +firmware: radeon/PALM_me.bin +firmware: radeon/PALM_pfp.bin +firmware: radeon/PITCAIRN_ce.bin +firmware: radeon/PITCAIRN_mc2.bin +firmware: radeon/PITCAIRN_mc.bin +firmware: radeon/PITCAIRN_me.bin +firmware: radeon/PITCAIRN_pfp.bin +firmware: radeon/PITCAIRN_rlc.bin +firmware: radeon/PITCAIRN_smc.bin +firmware: radeon/R100_cp.bin +firmware: radeon/R200_cp.bin +firmware: radeon/R300_cp.bin +firmware: radeon/R420_cp.bin +firmware: radeon/R520_cp.bin +firmware: radeon/R600_me.bin +firmware: radeon/R600_pfp.bin +firmware: radeon/R600_rlc.bin +firmware: radeon/R700_rlc.bin +firmware: radeon/REDWOOD_me.bin +firmware: radeon/REDWOOD_pfp.bin +firmware: radeon/REDWOOD_rlc.bin +firmware: radeon/REDWOOD_smc.bin +firmware: radeon/RS600_cp.bin +firmware: radeon/RS690_cp.bin +firmware: radeon/RS780_me.bin +firmware: radeon/RS780_pfp.bin +firmware: radeon/RV610_me.bin +firmware: radeon/RV610_pfp.bin +firmware: radeon/RV620_me.bin +firmware: radeon/RV620_pfp.bin +firmware: radeon/RV630_me.bin +firmware: radeon/RV630_pfp.bin +firmware: radeon/RV635_me.bin +firmware: radeon/RV635_pfp.bin +firmware: radeon/RV670_me.bin +firmware: radeon/RV670_pfp.bin +firmware: radeon/RV710_me.bin +firmware: radeon/RV710_pfp.bin +firmware: radeon/RV710_smc.bin +firmware: radeon/RV710_uvd.bin +firmware: radeon/RV730_me.bin +firmware: radeon/RV730_pfp.bin +firmware: radeon/RV730_smc.bin +firmware: radeon/RV740_smc.bin +firmware: radeon/RV770_me.bin +firmware: radeon/RV770_pfp.bin +firmware: radeon/RV770_smc.bin +firmware: radeon/SUMO2_me.bin +firmware: radeon/SUMO2_pfp.bin +firmware: radeon/SUMO_me.bin +firmware: radeon/SUMO_pfp.bin +firmware: radeon/SUMO_rlc.bin +firmware: radeon/SUMO_uvd.bin +firmware: radeon/TAHITI_ce.bin +firmware: radeon/TAHITI_mc2.bin +firmware: radeon/TAHITI_mc.bin +firmware: radeon/TAHITI_me.bin +firmware: radeon/TAHITI_pfp.bin +firmware: radeon/TAHITI_rlc.bin +firmware: radeon/TAHITI_smc.bin +firmware: radeon/TAHITI_uvd.bin +firmware: radeon/TURKS_mc.bin +firmware: radeon/TURKS_me.bin +firmware: radeon/TURKS_pfp.bin +firmware: radeon/TURKS_smc.bin +firmware: radeon/VERDE_ce.bin +firmware: radeon/VERDE_mc2.bin +firmware: radeon/VERDE_mc.bin +firmware: radeon/VERDE_me.bin +firmware: radeon/VERDE_pfp.bin +firmware: radeon/VERDE_rlc.bin +firmware: radeon/VERDE_smc.bin +firmware: riptide.hex +firmware: rp2.fw +firmware: rpm_firmware.bin +firmware: rt2561.bin +firmware: rt2561s.bin +firmware: rt2661.bin +firmware: rt2860.bin +firmware: rt2870.bin +firmware: rt73.bin +firmware: RTL8192E/boot.img +firmware: RTL8192E/data.img +firmware: RTL8192E/main.img +firmware: RTL8192U/boot.img +firmware: RTL8192U/data.img +firmware: RTL8192U/main.img +firmware: rtl_nic/rtl8105e-1.fw +firmware: rtl_nic/rtl8106e-1.fw +firmware: rtl_nic/rtl8106e-2.fw +firmware: rtl_nic/rtl8168d-1.fw +firmware: rtl_nic/rtl8168d-2.fw +firmware: rtl_nic/rtl8168e-1.fw +firmware: rtl_nic/rtl8168e-2.fw +firmware: rtl_nic/rtl8168e-3.fw +firmware: rtl_nic/rtl8168f-1.fw +firmware: rtl_nic/rtl8168f-2.fw +firmware: rtl_nic/rtl8168g-2.fw +firmware: rtl_nic/rtl8168g-3.fw +firmware: rtl_nic/rtl8402-1.fw +firmware: rtl_nic/rtl8411-1.fw +firmware: rtl_nic/rtl8411-2.fw +firmware: rtlwifi/rtl8188efw.bin +firmware: rtlwifi/rtl8192cfw.bin +firmware: rtlwifi/rtl8192cfwU_B.bin +firmware: rtlwifi/rtl8192cfwU.bin +firmware: rtlwifi/rtl8192cufw_A.bin +firmware: rtlwifi/rtl8192cufw_B.bin +firmware: rtlwifi/rtl8192cufw.bin +firmware: rtlwifi/rtl8192cufw_TMSC.bin +firmware: rtlwifi/rtl8192defw.bin +firmware: rtlwifi/rtl8192sefw.bin +firmware: rtlwifi/rtl8712u.bin +firmware: rtlwifi/rtl8723befw.bin +firmware: rtlwifi/rtl8723fw_B.bin +firmware: rtlwifi/rtl8723fw.bin +firmware: rtlwifi/rtl8821aefw.bin +firmware: sb16/alaw_main.csp +firmware: sb16/ima_adpcm_capture.csp +firmware: sb16/ima_adpcm_init.csp +firmware: sb16/ima_adpcm_playback.csp +firmware: sb16/mulaw_main.csp +firmware: scope.cod +firmware: sd8385.bin +firmware: sd8385_helper.bin +firmware: sd8686.bin +firmware: sd8686_helper.bin +firmware: sd8688.bin +firmware: sd8688_helper.bin +firmware: slicoss/gbdownload.sys +firmware: slicoss/gbrcvucode.sys +firmware: slicoss/oasisdownload.sys +firmware: slicoss/oasisrcvucode.sys +firmware: sms1xxx-hcw-55xxx-dvbt-02.fw +firmware: sms1xxx-hcw-55xxx-isdbt-02.fw +firmware: sms1xxx-nova-a-dvbt-01.fw +firmware: sms1xxx-nova-b-dvbt-01.fw +firmware: sms1xxx-stellar-dvbt-01.fw +firmware: sndscape.co0 +firmware: sndscape.co1 +firmware: sndscape.co2 +firmware: sndscape.co3 +firmware: sndscape.co4 +firmware: softing-4.6/bcard2.bin +firmware: softing-4.6/bcard.bin +firmware: softing-4.6/cancard.bin +firmware: softing-4.6/cancrd2.bin +firmware: softing-4.6/cansja.bin +firmware: softing-4.6/ldcard2.bin +firmware: softing-4.6/ldcard.bin +firmware: solos-db-FPGA.bin +firmware: solos-Firmware.bin +firmware: solos-FPGA.bin +firmware: sun/cassini.bin +firmware: symbol_sp24t_prim_fw +firmware: symbol_sp24t_sec_fw +firmware: tdmb_denver.inp +firmware: tdmb_nova_12mhz_b0.inp +firmware: tdmb_nova_12mhz.inp +firmware: tehuti/bdx.bin +firmware: ti_3410.fw +firmware: ti_5052.fw +firmware: ti-connectivity/wl1251-fw.bin +firmware: ti-connectivity/wl1271-nvs.bin +firmware: ti-connectivity/wl127x-fw-5-mr.bin +firmware: ti-connectivity/wl127x-fw-5-plt.bin +firmware: ti-connectivity/wl127x-fw-5-sr.bin +firmware: ti-connectivity/wl128x-fw-5-mr.bin +firmware: ti-connectivity/wl128x-fw-5-plt.bin +firmware: ti-connectivity/wl128x-fw-5-sr.bin +firmware: ti-connectivity/wl18xx-fw-2.bin +firmware: tigon/tg3.bin +firmware: tigon/tg3_tso5.bin +firmware: tigon/tg3_tso.bin +firmware: tlg2300_firmware.bin +firmware: ttusb-budget/dspbootcode.bin +firmware: turtlebeach/msndinit.bin +firmware: turtlebeach/msndperm.bin +firmware: turtlebeach/pndsperm.bin +firmware: turtlebeach/pndspini.bin +firmware: ueagle-atm/930-fpga.bin +firmware: ueagle-atm/adi930.fw +firmware: ueagle-atm/CMV4i.bin +firmware: ueagle-atm/CMV4i.bin.v2 +firmware: ueagle-atm/CMV4p.bin +firmware: ueagle-atm/CMV4p.bin.v2 +firmware: ueagle-atm/CMV9i.bin +firmware: ueagle-atm/CMV9i.bin.v2 +firmware: ueagle-atm/CMV9p.bin +firmware: ueagle-atm/CMV9p.bin.v2 +firmware: ueagle-atm/CMVei.bin +firmware: ueagle-atm/CMVei.bin.v2 +firmware: ueagle-atm/CMVep.bin +firmware: ueagle-atm/CMVep.bin.v2 +firmware: ueagle-atm/DSP4i.bin +firmware: ueagle-atm/DSP4p.bin +firmware: ueagle-atm/DSP9i.bin +firmware: ueagle-atm/DSP9p.bin +firmware: ueagle-atm/DSPei.bin +firmware: ueagle-atm/DSPep.bin +firmware: ueagle-atm/eagle.fw +firmware: ueagle-atm/eagleI.fw +firmware: ueagle-atm/eagleII.fw +firmware: ueagle-atm/eagleIII.fw +firmware: ueagle-atm/eagleIV.fw +firmware: usb8388.bin +firmware: usbduxfast_firmware.bin +firmware: usbdux_firmware.bin +firmware: usbduxsigma_firmware.bin +firmware: v4l-cx231xx-avcore-01.fw +firmware: v4l-cx23418-apu.fw +firmware: v4l-cx23418-cpu.fw +firmware: v4l-cx23418-dig.fw +firmware: v4l-cx2341x-dec.fw +firmware: v4l-cx2341x-enc.fw +firmware: v4l-cx2341x-init.mpg +firmware: v4l-cx23885-avcore-01.fw +firmware: v4l-cx23885-enc.fw +firmware: v4l-cx25840.fw +firmware: v4l-pvrusb2-24xxx-01.fw +firmware: v4l-pvrusb2-29xxx-01.fw +firmware: v4l-pvrusb2-73xxx-01.fw +firmware: vicam/firmware.fw +firmware: vntwusb.fw +firmware: vpdma-1b8.bin +firmware: vx/bd56002.boot +firmware: vx/bd563s3.boot +firmware: vx/bd563v2.boot +firmware: vx/bx_1_vp4.b56 +firmware: vx/bx_1_vxp.b56 +firmware: vxge/X3fw.ncf +firmware: vxge/X3fw-pxe.ncf +firmware: vx/l_1_v22.d56 +firmware: vx/l_1_vp4.d56 +firmware: vx/l_1_vx2.d56 +firmware: vx/l_1_vxp.d56 +firmware: vx/x1_1_vp4.xlx +firmware: vx/x1_1_vx2.xlx +firmware: vx/x1_1_vxp.xlx +firmware: vx/x1_2_v22.xlx +firmware: wavefront.os +firmware: whiteheat.fw +firmware: whiteheat_loader.fw +firmware: wlan/prima/WCNSS_qcom_wlan_nv.bin +firmware: xc3028L-v36.fw +firmware: xc3028-v27.fw +firmware: yam/1200.bin +firmware: yam/9600.bin +firmware: yamaha/ds1_ctrl.fw +firmware: yamaha/ds1_dsp.fw +firmware: yamaha/ds1e_ctrl.fw +firmware: yamaha/yss225_registers.bin +firmware: zd1201-ap.fw +firmware: zd1201.fw +firmware: zd1211/zd1211b_ub +firmware: zd1211/zd1211b_uphr +firmware: zd1211/zd1211b_ur +firmware: zd1211/zd1211_ub +firmware: zd1211/zd1211_uphr +firmware: zd1211/zd1211_ur --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/i386/generic +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/i386/generic @@ -0,0 +1,17538 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x8d0b2494 kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/kvm/kvm 0xffe1fdda kvm_cpu_has_pending_timer +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x254e5667 scx200_gpio_base +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x35a3c008 scx200_gpio_configure +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x8cfa375c scx200_gpio_shadow +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x907665bd scx200_cb_base +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister +EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register +EXPORT_SYMBOL drivers/acpi/video 0xe76588ef acpi_video_get_edid +EXPORT_SYMBOL drivers/atm/suni 0xd3a73d71 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xd03db79f uPD98402_init +EXPORT_SYMBOL drivers/bcma/bcma 0xe08ab176 bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x127a5901 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/paride/paride 0x0696679e pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x207024aa pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x2e3501b8 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x3960a2dc pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x61971c7b pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x76f14824 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x8eec5b04 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x9b2ae687 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xa0d7b4c9 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xc8f63c37 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xed872f92 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xfd602024 paride_unregister +EXPORT_SYMBOL drivers/char/nsc_gpio 0x6e083846 nsc_gpio_read +EXPORT_SYMBOL drivers/char/nsc_gpio 0xed1287b0 nsc_gpio_write +EXPORT_SYMBOL drivers/char/nsc_gpio 0xed4e741c nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x33921ac6 dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x4f356e3e dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x62fefe0c dw_dma_get_src_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x82d70429 dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xecafaa3a dw_dma_cyclic_free +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xf68dc1c9 dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/ioat/ioatdma 0x16ebed8d ioat_dma_setup_interrupts +EXPORT_SYMBOL drivers/edac/edac_core 0x0b808ed4 edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x01c75a1f fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04ca47f0 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1179033b fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1a70c23b fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x35c8b8fd fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3dc8d5ac fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x427c8cef fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5686e976 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5c43160a fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x81507fa3 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8a2584a4 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8b68b2bc fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa2c2eb35 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb3acd659 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc605f455 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc7b3767f fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xca81a961 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0xcad413fe fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd97ddc07 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe5d96ea6 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe76c2037 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xefd8f93b fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf8d21d1d fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf9687ef8 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfd079b04 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfe301921 fw_core_remove_card +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/fmc/fmc 0x010cb8cb fmc_find_sdb_device +EXPORT_SYMBOL drivers/fmc/fmc 0x11dd3e20 fmc_device_register +EXPORT_SYMBOL drivers/fmc/fmc 0x2baab5f1 fmc_device_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x456db5e8 fmc_driver_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x4cb76ff4 fmc_device_register_n +EXPORT_SYMBOL drivers/fmc/fmc 0x609a7c12 fmc_scan_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x80931cfc fmc_free_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x9aaec048 fmc_driver_register +EXPORT_SYMBOL drivers/fmc/fmc 0xaeb1d3a2 fmc_reprogram +EXPORT_SYMBOL drivers/fmc/fmc 0xb2e27784 fmc_device_unregister_n +EXPORT_SYMBOL drivers/fmc/fmc 0xbaa9b976 fmc_show_sdb_tree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00025916 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00309b0d drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00667d8a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x026c0d6b drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02f6f65f drm_prime_init_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x031fa0f7 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03456152 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04584f4f drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04b906af drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06d89669 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08276416 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x091c3a0e drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ec527fc drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x107742a9 drm_get_subpixel_order_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12b7d56a drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c34965 drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13cdaadb drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x148076d6 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a9a178 drm_get_format_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14d30027 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14eda6ab drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x159e1cdb drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x169b64e9 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x175f4ce0 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1821428f drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x189f6401 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19e44324 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a770ac3 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x203953e4 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x214a2717 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23b6d95a drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x243fc91c drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24bc1847 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24d0b3d6 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24f1882f drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x275c6685 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28a8ad79 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a942ab2 drm_mm_insert_node_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b28d617 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b5ca949 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2bed9d6b drm_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c666eca drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c8c261d drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ca7e5ca drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2cd642b5 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ceb1930 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d80be4d drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2db99831 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e7a4300 drm_rgb_quant_range_selectable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f1a64ed drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30c8e121 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x339d89b1 drm_dev_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33a1350d drm_pcie_get_speed_cap_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3624fab7 drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36890458 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36f91ef3 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x379fda3e drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37b948eb drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a4f7ae drm_format_num_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ac1fef9 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ae7b2d0 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b9d009a drm_format_plane_cpp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3bdc3fcb drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3bfcf6ea drm_gem_dumb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d4b8108 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3db3ed5d drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41bc4092 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x426372d9 drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42cc4c89 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4364fc71 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x445c8142 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45a77f69 drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46a3cbc3 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47bd760d drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48ca60af drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4920528f drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49fabf0d drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bc4514e drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c260883 drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c511235 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d388f07 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d91de7d drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f0bffa0 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4fe59627 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50d0e908 drm_mode_group_init_legacy_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e28c07 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51546497 drm_framebuffer_reference +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5189970c drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x526f6f71 drm_rect_calc_hscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x52eb9a5d drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53110c37 drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x544e93c1 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54fc701e drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f68f40 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x567aae6c drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57877ea4 drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5aa3d40f drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ad71acf drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c71273e drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ea3c819 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6090be61 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x61068a37 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x629c05e1 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x653c1852 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65c5fb02 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65c67638 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66803841 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68bfa6b6 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6900d335 drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cee2e42 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e1d2a89 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ea67227 drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f08acc3 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fdc3024 drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x746a6426 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4e7297 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ac41d57 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c01044d drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7dba9869 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e577ee4 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7eb8ef76 drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81ba930c drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8239fa3e drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82cf82ac drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84873169 drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84ab2384 drm_bridge_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x869108f2 drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a39b908 drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8bcec825 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ccba465 drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ccde88d drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ce98393 drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d6b1c4a drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de13715 drm_format_vert_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f2f05be drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7df3a7 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x903f78fa drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91c71fb3 drm_bridge_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x936848f9 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x93e88a9b drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x954de7a9 drm_connector_unplug_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x968338be drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x970ceb72 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9972db48 drm_rect_calc_vscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d70fc2a drm_rnodes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9df3220d drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9eccfe56 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9efc26a3 drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa10baf22 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1f4e9e6 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa28078b2 drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa441e109 drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5dbd572 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5ddc453 drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa64e2583 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6902f65 drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa96acfcb drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa44df35 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab3c4594 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf081f47 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafb0cb6f drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafd51394 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb14c5dc0 drm_unplug_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb352d2b7 drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb37429c6 drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3d2c165 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb572a9f0 drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6c06726 drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8384b4c drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb84aa08d drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb866d1e6 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95beb55 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb974e8f5 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb84ac39 drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc38d9fc drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc905aff drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbdfb165d drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe001c53 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0c74bb7 drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc20d29e8 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc384264e drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4000f9f drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc42d1855 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca43918b drm_prime_destroy_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca45efbc drm_format_horz_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca93ede3 drm_vma_offset_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb96b3c7 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xccc159fd drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcceb9ca5 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf66a80 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf708bdc drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0252857 drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0c6ea4a drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd10f8203 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1846578 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd219b5bc drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2335101 drm_fb_get_bpp_depth +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3170366 drm_framebuffer_unreference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3d370b4 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd489b4ff drm_crtc_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd53de5d6 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd55aea8d drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8820226 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8dfaa79 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda069638 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda14cc21 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda77739e drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda883fbd drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb5a5852 drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbae0039 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd3048bc drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe10b7798 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe25300fa drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2be1e2f drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2ced133 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2ef97e4 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3cf0cdc drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe51550f2 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5c6be85 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f46e6e drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb6f3607 drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefdf9b69 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf08d712a drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf242f6b5 drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf246ce35 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf446a0e2 drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf525c3ed drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9056fd1 drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfae27f9a drm_prime_sg_to_page_addr_arrays +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfae89db4 drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb497216 drm_mm_insert_node_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc7bd674 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd063935 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe4a68c7 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffb5c73b drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc6c87a drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffe197f3 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x02317e1f drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x02c7e0aa drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x062d08e4 drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x098e47d2 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0b913e28 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f96ec70 drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x163251c8 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x25ad2ef6 drm_dp_link_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2b7167fc drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34871adf drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x45506cca drm_dp_link_power_up +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x50e93ea6 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x54a80f28 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x66b3076c drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x68a9071e drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x692a5892 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6f244034 drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x711a004a drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7ad415df drm_dp_aux_register_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7c9362d9 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7d93b744 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7ef684e5 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x80f00f08 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x821ea80b drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84e924ba drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84f8b760 drm_dp_aux_unregister_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8e00a7d4 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x93f93ad2 drm_has_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x99aa12d0 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa0015fe6 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa057a75d drm_dp_link_configure +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa5c5be92 drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa77858bb drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8d6809d drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa9ed46c4 drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xae3d45b5 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb38d1470 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb4867888 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb59efaed drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb7e000be drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc64b2c02 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd48abd07 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd6e542b6 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe758ee7b drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xec5d956d drm_pick_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xee15e4eb drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf15577dc drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf53920a2 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfde7c3b4 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfee94ebd i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x6fea34a7 drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0xb402f2fc drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0xc733a6bc drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x01592928 ttm_bo_add_to_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0ac16e5c ttm_agp_tt_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0c7ef62b ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x163dd866 ttm_bo_dma_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x18b8943e ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ba4e68a ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1bef31e1 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ece375d ttm_pool_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x23770abd ttm_mem_io_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x23e6a3df ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x266d8a60 ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b364c07 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x356e1a21 ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x35b90b42 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x379015a0 ttm_prime_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3acaef02 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3ba3475b ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c8fd883 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x485a5bc0 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x48ee33d1 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4c70a64d ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4c982bc6 ttm_bo_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x532306fe ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x55bd7d55 ttm_mem_io_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x55c240af ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x57489bb3 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x58aed99d ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5bacd549 ttm_mem_io_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cf59609 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5f0d7622 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5f3e9b91 ttm_dma_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5f469ba8 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6019c13c ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6684db64 ttm_pool_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x669c263f ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b1d568 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x696b238d ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6dd6d4c5 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x748bb60e ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7ad130d0 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7aeaeba2 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x83db0f06 ttm_agp_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x880a15ad ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x880caadf ttm_bo_del_sub_from_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x89193d87 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8a600509 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8cad3cc2 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x914909ce ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x94894449 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9825de01 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9cf84c8e ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9f27104a ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb19807c8 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb25e55ef ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb6b9218d ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb7cfe6b2 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbbec2818 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbd3e6b65 ttm_agp_tt_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbf8b0ee9 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xca4be53d ttm_mem_io_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcdae0852 ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce6e43a8 ttm_base_object_lookup_for_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd2bce8f5 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd44a83fc ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7a41a37 ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd8edb115 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdad4eb7d ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd1884dc ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xddd91773 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xde5dde1e ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc9d6685 ttm_dma_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xffcb8d9b ttm_read_lock +EXPORT_SYMBOL drivers/hv/hv_vmbus 0x01c0d1f8 vmbus_recvpacket +EXPORT_SYMBOL drivers/hv/hv_vmbus 0xa1038e5e vmbus_sendpacket +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0e2a6864 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0f5877d4 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x34257f35 sch56xx_watchdog_unregister +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xa16ae55f sch56xx_watchdog_register +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xe5022f95 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xed1d2a08 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x94e52551 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xa7db97c9 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xe77ac0db i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x49b02195 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xea949735 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xfa6a37dc amd756_smbus +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x7dafd19e st_accel_common_remove +EXPORT_SYMBOL drivers/iio/accel/st_accel 0xa63548a6 st_accel_common_probe +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x5c61882e hid_sensor_read_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x677a513c hid_sensor_write_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xaac09f58 hid_sensor_parse_common_attributes +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xceb3530b hid_sensor_read_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xee27586e hid_sensor_write_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x84119318 hid_sensor_remove_trigger +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0xb0817b29 hid_sensor_setup_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x074d7047 st_sensors_trigger_handler +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x0a5138cd st_sensors_set_odr +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x2b722bb8 st_sensors_check_device_support +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x3b16a0f1 st_sensors_set_axis_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x5dcd1535 st_sensors_set_fullscale_by_gain +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x60ec4da5 st_sensors_get_buffer_element +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x6c8410e6 st_sensors_sysfs_set_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x71b283c1 st_sensors_init_sensor +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x76424488 st_sensors_sysfs_scale_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x76e29dc8 st_sensors_deallocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xa030b5c4 st_sensors_set_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xa0f445d2 st_sensors_allocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xc5544203 st_sensors_read_info_raw +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xc726c702 st_sensors_set_dataready_irq +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xcc671600 st_sensors_sysfs_sampling_frequency_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xe5de5996 st_sensors_sysfs_get_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0xc615bc9e st_sensors_i2c_configure +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0x2d17aaec st_sensors_spi_configure +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x16cc48c9 st_gyro_common_remove +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x28a628fb st_gyro_common_probe +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x13eed2f1 adis_enable_irq +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0xbe217b41 adis_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/industrialio 0x05342be3 iio_buffer_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x067064ee iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0x10b54d10 iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x1b975c70 iio_buffer_write_length +EXPORT_SYMBOL drivers/iio/industrialio 0x28a50371 iio_buffer_read_length +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x4596fd8e iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/iio/industrialio 0x4c2ec8cf iio_buffer_show_enable +EXPORT_SYMBOL drivers/iio/industrialio 0x54e4b87b iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/iio/industrialio 0x5a3cbf3e iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0x75ddc5c2 iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0x86c383c1 iio_buffer_register +EXPORT_SYMBOL drivers/iio/industrialio 0x8f3d78ef iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x8fc5024b iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x90d37d56 iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0x9ac26c35 iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x9fbe7bd3 iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0xc2d09d4a iio_buffer_store_enable +EXPORT_SYMBOL drivers/iio/industrialio 0xc9d6bea5 iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xcf9214b5 iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0xd4a07a68 iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0xd9b2a2e4 iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xe3240c01 iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0xf5dbff66 iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x28851b86 iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x97b67295 iio_triggered_buffer_setup +EXPORT_SYMBOL drivers/iio/kfifo_buf 0x85f45a88 iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/kfifo_buf 0x8fefe25b iio_kfifo_free +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x1fb862a4 st_magn_common_probe +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x2f4abfc7 st_magn_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x165c1bcd st_press_common_probe +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x2f863db0 st_press_common_remove +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x049ace30 rdma_addr_find_smac_by_sgid +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x04b8b6d7 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1c3c0ad3 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x273f4cca rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x446fd7c9 rdma_addr_find_dmac_by_grh +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x71f3076f rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x8ed679ff rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xbbd18219 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc0bf4edc rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x18074e3d ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2064267b ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x25a9ea5f ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x36befe98 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x36ee2983 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3cacccfb ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x42f12dbb ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x518f04ae ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x67a17c52 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6d56d0f0 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x869a5346 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8ccc178c ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa26bd1c0 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xca895743 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xcab198b5 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdf7a0a0a ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfb4299a2 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0290fa04 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0348b2e4 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x120f0758 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1f6ff970 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x20afa3b5 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22c5cd2c ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x29d05f47 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2a8fff5d ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x302932f4 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x30426631 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x31310e19 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33251e30 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x388d7eea ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a589063 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b1d48ec ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3dfdbc20 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3e095e54 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x43b31982 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x43c53972 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x44540b04 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45a8d9d8 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x49f9ab54 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4db20006 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5aa6dd19 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5bc7473d ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5d400359 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x63199a5b ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x63f0510d ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x658a18bf ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x67bd36eb ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6974065e ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e030e26 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ee2eeda ib_destroy_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x711b46db ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73119f1f ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x74148ba7 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x790c51b4 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7ca99e45 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7ef08280 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7faf5de6 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x84882da3 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x85e08117 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x863d15a1 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87e5484d ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x898c5b52 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x89ba95e5 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8a092d9d ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e80ec9a ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f1b0353 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x92edc9e8 ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9bda6ad5 ib_resolve_eth_l2_attrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9e07473e ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9e5e9552 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa2509b25 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa89c025f ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaa38ecae ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac217df9 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1b16742 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb37f4911 ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc37b9087 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc3a2c10f rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xce8799d9 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd05424e0 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xddf2900e ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xde5d4ad3 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdf357091 ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdf388265 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe71a2e9b ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xedb0e938 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf1cd4d78 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6960800 ib_create_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf7455d37 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf8de9d97 ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf9466b1a ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfbe1a882 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff3da079 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff937fdb ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xffd42804 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x01ade173 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0b7a828c ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4968a171 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5b8ce425 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x71fdd7df ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x768bc31c ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b46cd66 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7ee13851 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8f0698bc ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9a532c8b ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9bf9a6ed ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xaa50888e ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x22f07253 ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x30586288 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x3434dffd ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x60a41917 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6e44fd9f ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8001438f ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9611a7c9 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa8715a61 ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc5ad20b5 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xddc330e7 ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf3e0ab49 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x2569d757 ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x52a6ce77 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7971c00e ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe350f2aa ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4a345d91 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4ffe17bd iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x52c0d90e iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x6b7a6079 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x6e09ce2d iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x94984f6d iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x9a2261ca iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xfc922156 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x03ef59fe rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0910b28a rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x155bedbd rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x293ac464 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3eab0d4f rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4160243f rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x58a6dd1d rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5db7a8bf rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5e2d1146 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8e83ce9a rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9294f9ff rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x94baa8b7 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x95a828d9 rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9788ea56 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9eddcb27 rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc0fb34f4 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc36cf50d rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd2e6726c rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe683849f rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf73715ac rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf9150251 rdma_set_service_type +EXPORT_SYMBOL drivers/input/gameport/gameport 0x03d48ada gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0f035aaf gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0f03e9a0 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x79d603a9 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x87e82d30 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x8dee6d75 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9263a610 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xaf0bdcf8 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc0fa9275 __gameport_register_port +EXPORT_SYMBOL drivers/input/input-polldev 0x0305f361 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x4cbfe83c input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x9153d898 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xb2f8c893 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0x9011ab07 matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x32c27009 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0x4d9017b4 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x8cc450eb ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xf5fd7a5f ad714x_remove +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x9281375a cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/sparse-keymap 0x3613781e sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x479d5f8a sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x57746887 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xb326dbfb sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe125a52d sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe27caedc sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x09a833f4 ad7879_pm_ops +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xc76558e6 ad7879_probe +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x01f62233 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1545e5df capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2552f941 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x29b0c1e5 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x36a187c2 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x3b32e2a2 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x79c0b1e6 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8814d1db capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc53d3db5 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf740b251 capi20_register +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x054437db b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x08507c7e b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1aa1a7af b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1cdf7cb4 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x3048eda3 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x360c72dc b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4f77d8f7 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x83928cc1 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x872d066f b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9ddc5898 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9eaea35d b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa341e529 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb34cb116 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xbc64adac b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xed63270e b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1a6a5b27 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1aa86bbe b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x676e6603 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6913706f t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x79ef7a79 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x976d2ce4 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa5b6b3cb b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xecdc669d b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf24f71bc b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x7ab59853 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x0c87eaa5 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x6e153ea9 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x6e3c5a37 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x89a3bd53 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x21a96760 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x447e0d5f mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb26d0b6a hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x0db9bd2e isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x65879a6a isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x7b16deb4 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x8ca11e3c isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xc9b1ff92 isac_init +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x0078f0b6 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x3627c8e0 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x7939bd82 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0b855907 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x123de6b7 bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x22217dae recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x344ee16d get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x38033a85 mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3aa0ee69 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4e9666cf mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x519eabd0 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x65e57b18 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x67dc546b mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x684c7050 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6e8a45d1 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a4e99fb mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8fdf3d42 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x94206e82 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9cfa68f9 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9e4a1a26 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa8ca2874 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb2a24860 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbab1a0ba recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbd49b97c bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcf70340d mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd080e993 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdca37fa2 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/bcache/bcache 0x337789b5 __closure_lock +EXPORT_SYMBOL drivers/md/bcache/bcache 0x6102b367 closure_sub +EXPORT_SYMBOL drivers/md/bcache/bcache 0x81867811 closure_put +EXPORT_SYMBOL drivers/md/bcache/bcache 0x9247797c closure_trylock +EXPORT_SYMBOL drivers/md/bcache/bcache 0xe3c17af1 __closure_wake_up +EXPORT_SYMBOL drivers/md/bcache/bcache 0xec96b671 closure_wait +EXPORT_SYMBOL drivers/md/bcache/bcache 0xf2d0280c closure_sync +EXPORT_SYMBOL drivers/md/dm-log 0x004d5a7c dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0x13d718a3 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0xe628227e dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0xea7d4dbc dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x09e62bb3 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x14225115 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x2508c4cc dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x3f751276 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x44e55221 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xcae69044 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/raid456 0xbe8ac59f raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x2cc87597 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x404c3598 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x425a8079 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x4449aa07 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x45d78681 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x6a247d08 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7203bdf8 flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x72f14c34 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x73f05ca5 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x87214364 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xc5267443 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xd16e4d3f flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xe8bce883 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xb998ff25 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xe750a52c btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/common/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0x3db8be82 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x476dce13 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x66afabf5 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0xdddbb5c1 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0xde12c9f2 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0x41bb1eaf cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/tveeprom 0x5b2e5e30 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0x6ac1c671 tveeprom_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x000c8132 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x037353af dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x06634ae6 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x08f46a94 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x101a29b8 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1189a794 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x17523ce7 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x19605f67 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x196f1ac1 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x237f7910 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x300f2abb dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3a8424e5 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4653a83e dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4c70c35a dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x51e104c8 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x564ae8af dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5a782c2e dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x66f7f1a7 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7ac5494c dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x84385724 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8734ee0f dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x88258f85 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x89b2e28a dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x89e19540 dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x977bc4c8 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x987dcfde dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb72b5fa0 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb7a00991 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc110c5ec dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc7132586 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcddb905f dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd16a3125 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd3ee7530 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd65c4772 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd68a099e timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdace1533 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xed2b6fcc dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf76e0505 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xfcc0ed9c dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-frontends/a8293 0x39a12497 a8293_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9013 0x5eb644cb af9013_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9033 0xbd87a7f4 af9033_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x51feae19 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x1cfeda4e au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x4783ddc4 au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x4ac6a7fb au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x4d4f0be6 au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x61a5a2fb au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x679cfe0b au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x84a1adf5 au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xc8a52947 au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xecde522c au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0xf681af21 au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0x844fc205 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0xcda5c30f cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0xa2e50548 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0x89dd7ee1 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x412c8d64 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xbd429c02 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x4ca1f11b cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x385e7f58 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x80e6fa8e cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0xcb6c68bb cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x00d8e19d dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x2b87f025 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x2e06ffc8 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x4f4cabc7 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xd4768342 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x0514dd2e dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x201350a0 dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x2d057725 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x34d15df0 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x51e8597f dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x57a8bddc dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7a2ac4a6 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x8b4bf86b dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x9180eb8e dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xc201bf04 dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xc5d71de3 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xcd9e887e dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xdb3cff93 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xf6010065 dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xf753113b dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0xfdfc75d2 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xb48d8be0 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xcf62807c dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xd91fc345 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xe5c39a91 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xe642e288 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xf9ae80f5 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x16a346c9 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x3b4a83ba dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x5b0d0172 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xdfff4819 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x21f34e1a dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x251a2a37 dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x2e8e3b2e dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x3c52e219 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x6cb3b172 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x74d04287 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x753f2964 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x8370b8cd dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x8d6dcd92 dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xa9be6597 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xbce3bdd2 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xd7b904c7 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xd9367d06 dib7000p_get_agc_values +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xda9d6dfc dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xdccfa5a8 dib7000p_set_agc1_min +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xff47ea28 dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x0147be4e dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x0668289e dib8096p_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x1cae7c4c dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x3fda3e5a dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x51b49aae dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x5b35b5d5 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x61cf5580 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x6c70cde0 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x77cd7c28 dib8090p_get_dc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x9da2c247 dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xa95522ce dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xacc224f6 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xaed86453 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb006eccf dib8000_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xc41bbc23 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xc75fac11 dib8096p_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xe3137b3c dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xe6d99df0 dib8000_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xee7b34fe dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x0c165a86 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x12175aff dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x2e88d670 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x4d319e23 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xce76467b dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x826e3715 drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0xab4ecc29 drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x80166817 drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0xa6e891e5 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0x145bf324 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x87d81f62 ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x11653ff0 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0xcbd35413 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x8fd2f3f0 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/it913x-fe 0x09a397f8 it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0x4efb1bbe itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0x8aaba083 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x1f8172a2 l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0xa1a44518 lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0xb672241c lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x15291151 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0xc36605e2 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x3cacdd39 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xe0320e57 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0xfafde73c lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0x8c690260 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0x5bd18a38 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0xd04f9f3a mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x76ee4ad9 mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0xaba33da9 mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0xabc394d6 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x5c171d85 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0x2ab97831 or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0xefca30f4 or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x230f0165 rtl2830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x31fa9f11 rtl2830_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2832 0x0499c243 rtl2832_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x5c2b84bb s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0xa12d3dc3 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x1350f30c s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x94815517 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x965beae6 s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0xc78f97a6 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp8870 0xf71a36fe sp8870_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x6f86cf25 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0x4b33a1b8 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0xc489b91e stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0xf26f7b29 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x82aac043 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0xde93d058 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0xec8eec7e stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x7ee7e36c stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0xa624c351 stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0x297c280b stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x76224e77 stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x9a3e463e stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0x51b93589 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0x0ceacfac stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0x3670fb32 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0x2d762517 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x197e6f31 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x18116827 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0xc87dfb33 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10071 0x6c04fc2e tda10071_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x929a32e3 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0xcc245d4c tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0xccbff432 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0x21738aa2 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0xa16553a2 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0xf80c6471 ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0x5e983253 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x45ee8df2 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0xfaa8fb7d ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0x9ca20482 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0xb9e6caeb zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0xe878275e zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x1a3c3938 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x296803ea flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x34eb8c7b flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x9b79aff3 flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xa40a9b0a flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xa89d2bb0 flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xb8a491d6 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x0df9e665 bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x4a1e209b bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x5cd4acdf bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd477505a bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x36214415 bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x380ab6fa bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x6682cd29 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x11473819 dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x950bf6a8 dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x968005fc read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x998c5b82 rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xd74f8c0a dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xd98b7324 dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xda7c7890 dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe39236fb write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xee4431ec dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0x60a50c04 dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x22a03a25 cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x47ce3619 cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x4d428180 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x69df6604 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xa9392a34 cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x45dd680f altera_hw_filt_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x5346d847 altera_ci_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x5968f3fb altera_pid_feed_control +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x1b2c83de cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x38d82cf4 cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x631e1416 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x650dd7ee cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xc5d38741 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xd35475c2 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xef69ac9c cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x3d3d9c1a vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0xa53dd95a vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x440ae2a7 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x79641f35 cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x7a0e7677 cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xf4a55c48 cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x3d0bbbdf cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x498d4271 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xa4ce0df2 cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xbbefd9c8 cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xcef644d0 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xe6be27a0 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x01e2bb11 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x108c2426 cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x21cecf04 cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4216fc84 cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x59e70524 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x5d465e3b cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x5d87e452 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x69f97ff2 cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6afccbca cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7181ec8a cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x72357081 cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x83549a35 cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x9d87028d cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x9e87c555 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xa1b04216 cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xb9e44a38 cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xbb870237 cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xbd9f375c cx88_free_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc09ae4dd cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xdb31b236 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xec68f244 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xfb86ef82 cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xffb21cee cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x1dbdc63d ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x2f012370 ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x38b67546 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x43984487 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x53edbd59 ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x54d62245 ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x57e6f501 ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x696785ff ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x9c7a67b8 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xa9332478 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xb85cb9f2 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xbf0e1db7 ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xdc87e515 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xe24eca27 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xf24472cf ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xfeaad87b ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xffbc54f9 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x03ee7db6 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x05da2537 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1fc10519 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x20d0df5a saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x33579a2f saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x3695b23c saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x5a42379f saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x73039031 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x76cefbb4 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x7d2e5dae saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xb2e0f458 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xe5b812ef saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xf356610c saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xe02b3ee6 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x3a1c6fea videocodec_unregister +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x484c91d1 videocodec_register +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0xc527f854 videocodec_attach +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0xd028a184 videocodec_detach +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x25ff69f5 soc_camera_unlock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x418a2ecf soc_camera_power_off +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x427ae5b9 soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x75579f38 soc_camera_host_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x83ad5724 soc_camera_power_on +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x944c99e1 soc_camera_power_init +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x9c0d2cd6 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xbe58f0f5 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xfac8679c soc_camera_lock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x25c52d97 soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x2863728e soc_mbus_image_size +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x5f3e3558 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xa9546115 soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xfe2c3a07 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xdb195858 soc_camera_client_s_crop +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xe0cf9045 soc_camera_client_g_rect +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xe2b05c8c soc_camera_client_scale +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xf54cb850 soc_camera_calc_client_output +EXPORT_SYMBOL drivers/media/radio/tea575x 0x007200d8 snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x83bd2fba snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/radio/tea575x 0xeeaca275 snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0xf6337683 snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x7a5c798d lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x966e47aa lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xa0e01750 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xa2a19226 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xb1119b86 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xb1e59653 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xc9fe3d7e lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xed869299 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/rc-core 0xe1e7d7ab ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0xf905c4e4 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/tuners/e4000 0xe67f46d1 e4000_attach +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x20c7017d fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x33d57a79 fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x3ad4d2b1 fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x742b68b3 fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xffa09083 fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc2580 0xabc02e45 fc2580_attach +EXPORT_SYMBOL drivers/media/tuners/max2165 0x101c9520 max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x8a05d45d mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0xedb4d0ba mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0xc6f7b8fe mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x013e136b mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0xcad6013c mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0xecd130fd qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18212 0xf3aa659b tda18212_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0xf7a71495 tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tua9001 0x0a996e90 tua9001_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0xa217965f xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/tuner_it913x 0x46087786 it913x_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x5b2a7a5d xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0xa0ac8036 xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0xa1cc3bf3 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0xb7884e48 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x07c2c421 dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x3056cafe dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x376ca635 dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x6c6803d1 dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x88a1ac7e dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc093238d dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xcc1abb48 dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xcc7434a5 dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xd8edbd91 dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x200ebc79 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x49c4880c dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x981958c4 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xb31fb4c2 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xb68d5833 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xe693d26b usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xeb43fc67 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x55ac33d3 af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x1252bec0 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x22da9a6f dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x33eebc31 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x3b405b0c dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x409552b0 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x934f7426 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x960a170e dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb407e759 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xbf91ede0 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xc92d6b8c dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xf25cd5d3 dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x78e4ba4f em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xf01ea080 em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7e82c504 gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x8ee87079 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xa7a83bb5 gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xd5f38b96 gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xd73eace1 gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xe57f13a2 gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xe7894015 gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xec800156 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x5b084aa1 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x7dfab3af tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xbcdcb201 tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x487a23e0 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x63bd222a ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x4adaf0f3 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x53c9394f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x5f96a661 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0xabe27502 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x101bd88e v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x37f5701e v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xb2f45c1d v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x1060a20e videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x2800d6b9 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x9619df61 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xa2607617 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xad35c959 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xd3b02dc0 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf2-core 0x728f220c vb2_querybuf +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x03d1bf5a v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x054ab911 __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x06c75b34 v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x090a1deb v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0db5436a v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0f1b8d60 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0f742364 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1a65e471 video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1ba405c2 v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1e124796 v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x288ad887 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x28be58bd v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2a5b5979 v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3205d0f4 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x36847d11 v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x36a2dbc8 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3ba1198f v4l2_clk_set_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x41be2c52 video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x486df363 v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4f68840a video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x55567e3a v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x576d933a v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x58bd3379 video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x63574312 v4l2_clk_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6425d3e7 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x64ba3635 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x65cfc4f5 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6ba27298 video_usercopy +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x720e0363 v4l2_clk_unregister_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x738cf22a v4l2_clk_get_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x75e1ba1c v4l2_clk_enable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7740198d v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x796e49c5 v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7af2d91b v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7b47fee4 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7e3a08af v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x825156c3 v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8401ce0e video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x87ec263d v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8efb3773 v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x93a3d0b9 __v4l2_clk_register_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x94b92a01 v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x992d5f27 video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9edac89b v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xae3fdb95 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb14a8a31 v4l2_clk_disable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb8bcf478 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbac4a225 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc0b0f820 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc12cf8f8 v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc193b539 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc2e7f4d5 v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc44e2b35 v4l2_async_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc566196c v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc6a3a5b2 v4l2_clk_put +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc6bbb475 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc8dc71c8 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc8e27430 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd171f571 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd5f1ed52 v4l2_async_notifier_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd9a8b335 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6fce6f2 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xec3c00b0 v4l2_clk_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xedc7ebf2 v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf204f615 v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf227d1a5 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf2a8d311 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf95c39cf v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfebab954 v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfee14729 v4l2_clk_get +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0e4235dd memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1f83cb56 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x49fa2c1a memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x70ed8b39 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7922ee3b memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7cc135b6 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8ea26bea memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8fea7569 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa4742e1a memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa5987a36 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc06be091 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe0120cb2 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf9e18dac memstick_next_req +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0285ae3d mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x11ac8724 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x183927d7 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x22a69c61 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2a157f33 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2c9ddc33 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x31b24e12 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x37162162 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x389a7053 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3a69239b mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3ac027db mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3be21436 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x45a94f57 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x56cc464d mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x648acca9 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x65ea1cec mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6adf5c91 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7f18adfa mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x94458f0a mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x94c1176c mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x956abf6d mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa3b139f2 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb858bf3e mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdb120bcc mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd8fabc4 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdf793c46 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xebb6a0e4 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xec069abf mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xeed0a262 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x069ebc7a mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1ef6b849 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2678804d mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2866ec2f mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2a661a33 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2dde030e mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x32623d1b mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3f1ee05c mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4060a01f mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4466d507 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x63af669c mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6e2060d6 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x73e6012f mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x768121d8 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x784ba94b mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x80ed0097 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9042d14f mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x930801c0 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x976e6782 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa251eaf5 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbc687675 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbfc1c03a mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd86d4b7c mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd9acdf4f mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdc7f78b1 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xecc9b843 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfce0232d mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x009ebc36 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0515c7ad i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1769eefe i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x24cc73a7 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x43ee5b64 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x496c7c91 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5a7ec4c1 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5cd6a91e i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7a227820 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7cbd3876 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x83aee575 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x92fdd8f6 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9b4c663d i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xac9b7f1f i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb0180c14 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb102ff3d i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xecec7b56 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf03fbb54 i2o_parm_table_get +EXPORT_SYMBOL drivers/mfd/cros_ec 0x86da6c0e cros_ec_prepare_tx +EXPORT_SYMBOL drivers/mfd/cros_ec 0x895a901a cros_ec_register +EXPORT_SYMBOL drivers/mfd/cros_ec 0x97ee5fe0 cros_ec_remove +EXPORT_SYMBOL drivers/mfd/cros_ec 0x9dfa7ca4 cros_ec_suspend +EXPORT_SYMBOL drivers/mfd/cros_ec 0xb557dd3d cros_ec_resume +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x305ac995 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x7c1c798b pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0dedc23d mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0e1bc4d7 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x236ebd32 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x3e5333ab mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x5ac92eb5 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x85ef25be mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8aaecfde mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9538b8e5 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x984dd7f7 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9a84b573 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa807d477 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xe647dd2a mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xefa2ed24 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/tps6105x 0xa365a7d8 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0xd2871cbf tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps6105x 0xef267a11 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x3089f00c ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xd56b287b ad_dpot_remove +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x8a05ed90 altera_init +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x41fdac9a ssc_free +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x5cd5df8e ssc_request +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x0e9755b9 pwm_channel_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5a8b82f9 pwm_channel_handler +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5d5c2951 pwm_clk_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x6a5e1f70 pwm_channel_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x73330c97 pwm_clk_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0xeb7f2c6f __pwm_channel_onoff +EXPORT_SYMBOL drivers/misc/c2port/core 0x2880ccfd c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0x88152360 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/ioc4 0x5e732984 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xeb8402c1 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x0f371aa5 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x113d16d3 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x16af3829 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x57a72c9b tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x69114abb tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x79c17e39 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x809506ef tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x93c8788f tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x9a03ea37 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xbb694e9b tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0xde52eca8 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xe388b767 tifm_remove_adapter +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xa751110e mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x0454e36f cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x5c0968c3 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xb22fab41 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x0dd43908 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x6c7c01bd unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x74f18ea9 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x76902409 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x8fc2c59e mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x9633a0e5 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x43139453 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x80b6027f mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtd 0xdcf125aa mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/denali 0x9d4ad018 denali_remove +EXPORT_SYMBOL drivers/mtd/nand/denali 0xd0be40ee denali_init +EXPORT_SYMBOL drivers/mtd/nand/nand 0x5ad9821e nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x79fbf2c0 nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x939be08c nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0x9e056b1c nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xbc276eb4 nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0xc80e369f nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x34c17120 nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xd1d67635 nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xe3eb3e8e nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x82b2f3e2 nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xad962d36 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x57a31e57 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x26ee4fcb onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x3d8703da onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xdfd84e68 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xf9ef0693 flexonenand_region +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x0520758a arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x08b4fa05 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x34990f51 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x64690d45 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x92841471 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9c45d986 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa0f101b9 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd45594dc arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd61ee2f4 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xea1ca0ec arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x82f64fc0 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xbbb597f6 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xe739d404 com20020_check +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x08a26178 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x08e27cf5 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1d2d54ef __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x23ebb8f5 ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x297de91c ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x3042785a ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x3f486eab ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xc5d977f0 NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xcc3c72bb ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xe1739636 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x1cc5ab25 eip_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x5bc1fc21 eip_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x6b01c2d0 eip_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x7170b7d4 NS8390p_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x8aac7148 eip_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x8f7a5abc eip_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x99c03fd7 eip_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xc0466e1c eip_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xc9e2a57c eip_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xcb47a305 eip_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xf3e7239e __alloc_eip_netdev +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0xe6c21a1c cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0de2ed00 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x1b8af03e cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x31689a54 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3a3e085d dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6f17cf97 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7978198a t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7dfe99e6 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x8552fbac cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x92ffb4b2 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xaa8f771e t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb758aec5 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd76239ca cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xdc2f223d cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe4f816cc cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xee7da4ba cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xffb7657b t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x09008520 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x12a7348d cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x14b2c395 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x27cb26cd cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2dfa75bc cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3fc554d7 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4024077b cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4b937cb6 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4ca456ec cxgb4_disable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4ea82447 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x65ca3deb cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x66dc1327 cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7234ead0 cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7a4e2b2c cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7cb14074 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x889b843f cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x919dcf33 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9cb89280 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa12720a0 cxgb4_enable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbe4a99b0 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcd848c58 cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd4c4fd1f cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdad50798 cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdd5de7fb cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdde30c04 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe57b489b cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf27b01e9 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfafaa079 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x0e712340 vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x266946fd enic_api_devcmd_proxy_by_index +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x4f650da7 vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x75ee90be vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x9196d804 vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xb391a203 vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x6ba0b20a be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x73296b78 be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xbab62e22 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x141a76dc mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1d878ae4 mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1d9cda5c mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1e82096a set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x20566f71 mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x26f4ede5 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a4a6ac0 mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x347783e5 mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x36c4ebb5 mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x45d20ac1 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x47ce6278 mlx4_set_stats_bitmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49a1d670 mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x507da65a mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x52362847 mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x55957216 mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6031b300 mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x77bfff0a mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7afc7a5b mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa101a6b8 mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa648b1fd mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb0d91ed6 mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcd63ff48 mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcfd7e261 mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe9c21dfc mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf38ff1f3 mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf9393745 mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x16a4fc53 mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a1965e4 mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x293987a8 mlx5_cmd_comp_handler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x30e70e37 mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3ed947dd mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4233f421 mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d89e670 mlx5_dev_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x57aa0df9 mlx5_cmd_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x59fcf2f5 mlx5_core_create_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ea6736f mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6b9d4cb4 mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x73198917 mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7345f748 mlx5_cmd_free_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7c7e5f20 mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8448d0d6 mlx5_core_get_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8bac647c mlx5_cmd_alloc_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8c72eb45 mlx5_dev_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x97795e3b mlx5_core_query_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa92f5a23 mlx5_core_arm_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xad2e5ccb mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaf423324 mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbbe68586 mlx5_core_dump_fill_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc01f8a13 mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcd544896 mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd7ffc484 mlx5_core_destroy_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdcd19aa5 mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe0d93ee5 mlx5_cmd_cleanup +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x14f799e3 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x2b08a752 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x58f1331c hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa31e3e09 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd7e8774a hdlcdrv_register +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x43fa00e6 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4a0d05c2 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4aa7f7c2 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4ef7dec7 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5a8cd166 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb64ece1b irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd6c01811 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdba4b48c sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe97669fb sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf1044d73 sirdev_raw_write +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mdio 0xddc98749 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mii 0x14335e65 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x1abf8d8d mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x3055c97c mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x404952b9 mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x46f20b05 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x64279d5f generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0xbb8bb8dd mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xf010fd04 mii_check_link +EXPORT_SYMBOL drivers/net/ppp/pppox 0x89f30484 register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0x9319aa8c pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xc9ea54cf pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0xa0e9dc9b sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x7e33f12a team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0x848b9bc5 team_mode_register +EXPORT_SYMBOL drivers/net/team/team 0x8a7b21e9 team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0x92448001 team_options_register +EXPORT_SYMBOL drivers/net/team/team 0xa249003d team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0xe8f3bdb1 team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0xf63ce72c team_options_unregister +EXPORT_SYMBOL drivers/net/team/team 0xfe2a2ea1 team_option_inst_set_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0x4148c29c usbnet_link_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0xca54d789 usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0xdb9d27dc usbnet_manage_power +EXPORT_SYMBOL drivers/net/wan/hdlc 0x0e8c222f hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x0ffbbaa9 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1308feec register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x27f99131 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8d607887 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x9eff12c6 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb14b8090 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb940b6e2 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc5a0e794 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd72626b6 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xfe2a366f attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988 z8530_dead_port +EXPORT_SYMBOL drivers/net/wan/z85230 0x1256eb64 z8530_sync_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x1a03dc55 z8530_sync_dma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x1b856c78 z8530_shutdown +EXPORT_SYMBOL drivers/net/wan/z85230 0x39636ed4 z8530_sync_txdma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x47ee1352 z8530_sync_txdma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream +EXPORT_SYMBOL drivers/net/wan/z85230 0x7ba9cdbf z8530_null_rx +EXPORT_SYMBOL drivers/net/wan/z85230 0x84bd7763 z8530_sync_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x9782ec64 z8530_init +EXPORT_SYMBOL drivers/net/wan/z85230 0x97ec79e3 z8530_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0xac4aafc8 z8530_describe +EXPORT_SYMBOL drivers/net/wan/z85230 0xb0866478 z8530_nop +EXPORT_SYMBOL drivers/net/wan/z85230 0xbcb76b2e z8530_sync_dma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0xd0d5116b z8530_channel_load +EXPORT_SYMBOL drivers/net/wan/z85230 0xd4ffebf0 z8530_interrupt +EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230 +EXPORT_SYMBOL drivers/net/wan/z85230 0xe6a8d19c z8530_queue_xmit +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xc68f1631 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x25a2b615 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xb6a40d39 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xe8765909 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0f2df2a7 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x29afd237 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x53358ce3 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6cd2ef7e ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x708cc6ca ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x75eed758 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x76db441c ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x89f23b6d ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xafaf2f23 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf44222d9 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf785979d dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xfd545d91 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x0b72aaf7 ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x0e05693a ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x3d03de8f ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x75d0062e ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8246be6c ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x895f9dc2 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf096710 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xb4d15d77 ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xcee7624f ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0199ec46 ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x071af694 ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0ed8e270 ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x25c97920 ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x27cf1694 ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x2ea83569 ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4c6ddcb4 ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4d5b67ab ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4e1380ee ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7729f52a ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xaa90558c ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xe0e72fa7 ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xee13e1c6 ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xf9833f35 ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x568e60e5 ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x91fc76f5 ath9k_hw_wow_event_to_string +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0xa7b4ee77 ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0xfb229561 ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x38ca7ddb ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x6e80a3c4 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc3e20cc3 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xfc24e69c ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00c81c55 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x056e69eb ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x07b8351e ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09c0e695 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ba6e3a8 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e5b04f6 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f03ec2a ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x10456d82 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x125ff023 ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15f6d2af ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17aacb4f ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17b54e15 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1bf941ce ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1ca984c7 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x20337a75 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x21e38d37 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x287fb4b9 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x28bebdcb ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2abf0542 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ba3e4a6 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d9800c8 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ffc357c ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3102e601 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x33ceb742 ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x35346800 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3597d4a4 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3855b395 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b1fdd81 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b20e310 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c9e42bb ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3ccaba33 ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d8ff5b4 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3dfe880e ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e1d4bb9 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e5448ce ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x419cef4e ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x422a758b ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x45b5dc22 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4953c060 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4aa5b765 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4cd5066b ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4e5de3ec ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x52fa80bf ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x53a577ce ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x55c022aa ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x57046ae9 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x583bb3f1 ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x58d8a955 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x63747ee3 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x644b3bd8 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x681cdf17 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x68b4a6bf ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6dc64bc6 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x70ec67e2 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73e28446 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x740b731c ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7429454c ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x79fec904 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a76a8d0 ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e381f99 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x88a06745 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9712a814 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x976ece97 ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x99b79f1d ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9a515e88 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9e70ddb7 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa38c764a ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa638984e ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa6b44c1f ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad4cda98 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xadf96bbc ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb3665fd3 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb97e89e1 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbdecf692 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc55f8527 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc81df514 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc86a5e5f ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcc56b12a ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd35220e8 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd4ae7a6d ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd56d40fb ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd8f6ebc1 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda89bff0 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe137367d ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2f1f059 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe4369d19 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe54c0bdc ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5fd6d9c ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe69399a9 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7142d6f ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeace425a ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xecb228cf ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xed19eca7 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xee3259ca ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xee61954c ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf30a2b23 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf4cb86a7 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfd2f0251 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/atmel 0x3bacd93c stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xa0d97bc4 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xc054f4ff atmel_open +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x6b829e61 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0xd53568e9 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x024c9b99 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x02eba899 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x114755e3 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x1e979732 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x24983c5e brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2dc227f8 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x35bf8d2f brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4704ac3b brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x5adf1a19 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x987591be brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb7766ddb brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc46002c6 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xdda8da57 brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xe8ac1ae6 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x07c58d55 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x12a1bff6 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x24de5202 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x261dc9e4 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x479d1e6d hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4c5723df hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5439684d hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x558bef64 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5de54284 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x61aa1553 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6c3752ed hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7c826bee hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x984cc45a hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa9a13d72 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb09cc298 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2f45c58 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb33b875c hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb56952a4 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xde0461f7 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe24ba518 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe5b9704f hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xeb8a059b hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf105b227 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf1af9cd8 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfd861438 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x07dcecfe libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x16de07d3 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x181bdf2f libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x25daddd1 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3959821b libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x45987ad2 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x53eadb05 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x56775001 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7e0381dd libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x88f1055e libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8b1776d1 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8e782ccd libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8ee2fd0c alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xaf7db690 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb2c52ac9 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbc0992a5 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xcd485b39 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd3ee4229 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd3f5a0ab libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe4881139 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf96df5cd libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0150b25a il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x028ad096 il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0b678a4b il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0c15a4bd il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0cde491a il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0f6c9af0 il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1f6ecc64 il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x254c12cb il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x257ae64d il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x25e02647 il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2b822574 il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2bab35ea il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2d8bf11d il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x31e3729a il_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x32257eb2 il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3362f401 il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x343387f0 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x34cd5fa9 il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3b4f6ac8 il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3f3e913f il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x40693bed il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x40dc73b8 il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x45d06885 il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4aa39103 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4b0bb0e0 il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4c12672b il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4e14a3ca il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x525d4290 il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5264eec4 il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x53097371 il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x53c38b02 il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x564c6740 il_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x58619aef il_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5ba0bbad il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5bcd8f46 il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5bcd990a il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x600217bb il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x610e1cad il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x64f77df0 il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6c0bdba4 il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x733a9def il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x73af86be il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x777cf25d il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x785160f7 il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x798b4623 il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7997c3ad il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7c043ef4 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x80b576de il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8270b6a2 il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x839c332c il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8521e05c il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x855dfa07 il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x88ea36aa il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8acafcad _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x910b87b4 il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9151e64b il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9473fab4 il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x95930547 il_set_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9789b257 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9ae17116 il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9aeab3bd il_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9d6523db il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa3f1c0d5 il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa5b76c17 il_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa7373967 il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa8ba41d4 il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa998a181 il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xada538f5 _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb1980d04 il_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb1bab1a4 il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb2a2b1fc il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb3853cdb il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb50586f0 il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb5cec0c3 il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb5f4492e il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb69b7c09 il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb6cc9397 il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb7bd33ff il_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb7f41dc5 il_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc2c7a218 il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc39cf12c il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc4249dd4 il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc42c76ef il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc7a74413 il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc86302a5 il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc927b742 il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc95f7df0 il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd04d015d il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd056433e il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd13b44e4 il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd474174e il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd6363300 il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd8de6c4e il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdf8d38c1 il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe1429b11 il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe435493a il_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xee092073 il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xee42af40 il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf501278b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf55c4965 il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf7fd151f il_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf988b1f2 il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfcca88ac il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfee3878e il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x08ee1e7d __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0d9eb5ff __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0e7bc05f __tracepoint_iwlwifi_warn +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x201337b4 __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x249e4b06 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x36dcef55 __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x4919d1a5 __tracepoint_iwlwifi_dbg +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x67381a2a __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x79e9bf26 __tracepoint_iwlwifi_crit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x7edec07d __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x8bfcc307 __tracepoint_iwlwifi_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x9a12c9c5 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xc0827b2f __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xda36f3a4 __tracepoint_iwlwifi_err +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x07632dd0 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0ad28526 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1551b8e0 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1be0873b orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x22c33aa7 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x320a3a2c alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x32c37eaa orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x51981e3d __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5377bd87 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x58659261 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x75b2ae11 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9d0b87b4 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb1ee6574 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb7f25542 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb8c3227e orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdf9a11cd orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf836e984 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/btcoexist/btcoexist 0xb54f42dd rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x08e58388 rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0fc2db66 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x10ceef16 _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1a28b6cc rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1f85afbf _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x238d5e2a rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x23ca25ac _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x23e8186d _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2f096f19 rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x31142d05 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x33b98153 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3f7330bd rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x43377a02 rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5220c775 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x56fde0a7 rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x58876e91 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5e858f56 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5eee8c0a rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6411b642 _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x71f00d0b rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x78ca6d26 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8b68c784 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x99034117 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9e88c011 _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xaa0aa4a7 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb128409c _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb56484b6 _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb8688e23 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbe156f60 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc1b1bd21 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc7871c08 rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd6222e5c _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd708af5d rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd90dc026 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdf7f47cf rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe00ede94 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe77d91d0 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe902a332 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf78acff2 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf81d0a28 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf9ba2c39 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x03167e85 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x3309d845 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x576b5ad9 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0xcf6c2a02 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x40627519 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xa0826c2a rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xa6cac5f1 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xce920e8b rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x04e39d10 rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x179c2b4a rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x182399ac rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x207fbb70 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x21551a9a rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2b116d93 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2b27dd9f efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3a5eb95e rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4e33db7e rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x57ceb9bc rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5b59dbfb rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x73b7e683 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79188a02 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x8bf36979 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x904b1112 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xcc2433b9 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd8fb275e rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xdbb287a0 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe57b03fa rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf184e672 rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf50fe9db rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf8fdd30d rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x4a684693 wlcore_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x5151bf82 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x6f413211 wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xe2e601b9 wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/nfc/microread/microread 0xbaf7b44e microread_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0xc1e724a7 microread_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x0d60ea3b pn544_hci_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x71fb906c pn544_hci_probe +EXPORT_SYMBOL drivers/parport/parport 0x00147d4c parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x0bcc496a parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x0e90b490 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x1069f395 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x24564172 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x2a8622f0 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x2c6279f4 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x3a472710 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4fa40bec parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x62602e8f parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x6545a01b parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x6df63b10 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x7b096b77 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x7d5755bb parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x81bfcc21 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x91c3fcb6 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x9b5977a7 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xa0367a37 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xa47f9fef parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xacff8391 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xb23e468d parport_write +EXPORT_SYMBOL drivers/parport/parport 0xb8bf62c0 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xbcca273f parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xc098569b parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xd3cfb131 parport_read +EXPORT_SYMBOL drivers/parport/parport 0xe3c8a034 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xe823d9aa parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xee236be1 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xefae5eb2 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xf116d756 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x0d96bca0 parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xff10a1d1 parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0344c315 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x158e670b pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1d803a24 __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x32752f0c pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x32df3cd1 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x421c81a6 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x42d62903 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x434cd44e pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x63c65e6c pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x78b1fa02 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7ae7a989 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x809da421 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x923b91e5 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x98c249ac pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9f8561e4 pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xadf9dea0 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbb31b92f pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd21dbedb pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xdbb94f72 pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x186ae402 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1aa4811d pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9cfa1fb0 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xaa2a8638 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xad1b3b34 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb3227263 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb838d69c pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xbebbff9c pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc04662d0 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe7a63365 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf723842c pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xa441ed82 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xd1772915 pccard_static_ops +EXPORT_SYMBOL drivers/platform/x86/intel_ips 0xd32b0b5b i915_bdw_enabled +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x07037848 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0x2dfa8ff5 pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0x684bf4a1 pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0x950bee70 pps_lookup_dev +EXPORT_SYMBOL drivers/ptp/ptp 0x80334676 ptp_clock_event +EXPORT_SYMBOL drivers/ptp/ptp 0x8d09fabc ptp_clock_index +EXPORT_SYMBOL drivers/ptp/ptp 0xded6fbef ptp_clock_register +EXPORT_SYMBOL drivers/ptp/ptp 0xe04f7301 ptp_clock_unregister +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x880031d1 pch_ch_event_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x8a470b30 pch_rx_snap_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x941ab676 pch_set_station_address +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xa4d37090 pch_src_uuid_hi_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xae952178 pch_ch_event_write +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xbaa14499 pch_tx_snap_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xcf4cefc6 pch_ch_control_write +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xe8c96b04 pch_src_uuid_lo_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xeefbfa99 pch_ch_control_read +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x44493f96 rproc_add +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x49785b3d rproc_da_to_va +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xabd1b119 rproc_boot +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xac92c935 rproc_alloc +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xad598895 rproc_del +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xbf00b77c rproc_shutdown +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xc30d6ce2 rproc_vq_interrupt +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xca5db829 rproc_report_crash +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xfc35b04b rproc_put +EXPORT_SYMBOL drivers/scsi/53c700 0x3d9cece0 NCR_700_intr +EXPORT_SYMBOL drivers/scsi/53c700 0x6c1ac14a NCR_700_release +EXPORT_SYMBOL drivers/scsi/53c700 0xdda88f40 NCR_700_detect +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x37ea907d fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x3e882b04 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5d617888 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6406185e fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6f874d97 fcoe_ctlr_destroy_store +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7d0d42c1 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x876647be fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x925527df fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9796e908 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xae06145c fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf1abf963 fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf4f5704c fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x14bbded3 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x19a7d758 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1d52a565 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22011400 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x23e7f822 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2d2a1c41 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x322bc4d8 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x33b1a1ae _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3545ddab fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x39861dc7 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3be2fee3 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4a08d926 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x524fbb9b fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x54927f1d fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x54b69b1a fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x596a2c97 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5c496d20 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5fa38625 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x66bd8017 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x69bb005b fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6ba330f7 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6f49f4ee fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x795426e5 fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7a39a80e fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7f7b95a5 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8150f6b2 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x83167e45 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x853d990a fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x89490e1d fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x95853799 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x999604db fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x99cc6937 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9b61bb07 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa190a2ea fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa95bcf46 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb23f0c95 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb4001ebc fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb462b2d3 fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb5726a64 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb5b166a7 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbd093a9f fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc97dc882 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd3e9213c fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd4487a66 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd51c6f9b fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd8396543 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe3ae5841 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe6d2b79c fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe7221e1e fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe7537015 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf27eff17 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf9a7d07a libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x35bd8c8c sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x7cab052f sas_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xb8882de6 sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xc5f18373 sas_wait_eh +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x67a6c964 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x01543f8c osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c1c1f1a osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c350e42 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c99ec9a osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0d0e0ced osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x13486222 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x32b8bf64 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x32b96c9f osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3c11b7c1 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3e1188f0 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4286a4c6 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4d5629f1 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x504a9a9c osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x543329e6 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x57fcad88 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5b9a5200 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5dc5f195 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5fa1db82 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6edc6240 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7a377d55 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x83dac5e7 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8f014245 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x91f2a4f2 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x97172c07 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb60b4fc2 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbb60e87e osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd5714586 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdf495923 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe0f1df8c osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe21128d4 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe7ceba0c osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe8e4571a osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf83ee6e4 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfb1b441f osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfdad235b osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xffa792fb osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/osd 0x0650f3fd osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x2eeab56d osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5d667613 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x90c4a62b osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x90e83e4b osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xe14668dc osduld_device_same +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x0e801c13 qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x4b6871ce qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x66a95b97 qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xaba65935 qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xc6bb3dc3 qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xd021fe3c qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xe18448cf qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xe215c565 qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xef1b893d qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xf0e38430 qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xfc2965fc qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3af0a310 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x63bf77e3 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x71b54df1 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x78d99657 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x81043a5b qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc00e7daf qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x6f04dd80 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xa1d07013 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xf8692484 raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x289b015e fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2f08fb74 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3d5111b6 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3e2fe15b fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x53bf6629 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x56ae874c fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x68960417 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6beb54c2 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6e1c0a3c scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7daa8620 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x93789c14 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa1d7a381 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc2ce656d fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x105b05a2 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x270394b6 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x347bf1d5 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x374172dd sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3edd789a sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3f296172 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5563f4c9 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x55cb5821 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x58daa140 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x59562622 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6dd51622 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fa38726 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x83403f8a sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x83c00cdd sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8c9172a9 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x900f9671 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa6858796 sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xacc240e5 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb3b8931b sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb4790562 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc06253e9 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc75eff0a sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc9bd4693 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcf4b4aee sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe73f1235 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe97eb49c sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfc89800f sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfe28593f sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x0f7b7556 srp_rport_get +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x5ebeb4cc srp_reconnect_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x69983f41 srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xba396bc8 srp_rport_put +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x5ad7d470 ufshcd_runtime_idle +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x7e11e03c ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0xd610cce1 ufshcd_runtime_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x01a6ba02 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x2a5b2900 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x51596afb ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x61e10f2e ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x63d98178 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x7229fe32 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x743404eb ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x79b2f27a ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x7f80cc07 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x8995919e ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x9abfff15 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xa0b955ae ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xbe4a5ecb ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc0e288fe ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xc15668d6 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc5b01dfc ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xcbaf384d ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xd221bc31 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xd2cfbe75 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xdf36ef5d ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xefd3eb3b __ssb_driver_register +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0x4d0564bf fwtty_port_put +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0xce6ef660 fwtty_port_get +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xaa624790 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xbc1d64a1 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x893c23ee ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xe49825f3 ade7854_remove +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0bce7eef lnet_counters_get +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1020fd9a lnet_unregister_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1366b7ac LNetSetLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x182f9f3e lnet_finalize +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x19670622 LNetNIInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1b191752 lnet_msgtyp2str +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1fe16fd5 LNetGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x204b8151 lnet_counters_reset +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x25583fa0 lnet_register_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x277dcbd9 lnet_parse +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2aa9953d lnet_cpt_of_nid +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2ac93e90 lnet_connect_console_error +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2d474e86 lnet_copy_kiov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2e88f5dc lnet_extract_kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x33202a6c LNetGetId +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3558e584 lnet_iov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3c779ee0 LNetPut +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3ee0bfe8 lnet_set_ip_niaddr +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3f4f5b46 LNetNIFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x473ad33b LNetDist +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4bb00492 lnet_copy_iov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4c4a1eb0 lnet_create_reply_msg +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4f9cb871 lnet_extract_iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5811a721 LNetInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x58a1ca89 LNetMDUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5c02b9ab lnet_copy_iov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5fee352c lnet_acceptor_timeout +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x61f784b2 LNetClearLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x646c6424 lnet_connect +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x64cdea3a LNetCtl +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x67c464ec lnet_copy_kiov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x6f7be171 LNetEQGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x722c76e5 LNetMDAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x7d59a7fe LNetMEInsert +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8272f150 lnet_notify +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x854ab844 LNetEQWait +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8a3064f2 LNetSetAsync +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x9de986d3 LNetEQAlloc +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa8c2760b LNetFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa414970 LNetMEUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa9b477e LNetMDBind +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb75f7953 LNetEQFree +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xba5566d2 lnet_acceptor_port +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xbf0760a2 LNetMEAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xc0e892f2 the_lnet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xc504da03 lnet_net2ni +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xc85299b9 lnet_kiov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xe310339b lnet_set_reply_msg_len +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xf1b316bf LNetSnprintHandle +EXPORT_SYMBOL drivers/staging/lustre/lnet/selftest/lnet_selftest 0x078db139 lstcon_ioctl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x172f3c5c client_fid_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x1c4bb5f9 LU_OBF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x375e6f8d LUSTRE_BFL_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x3b4e444c seq_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x3f238f53 client_fid_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x88de9677 seq_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xae61cff5 LU_DOT_LUSTRE_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xb9a51022 seq_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xc997a02f LUSTRE_SEQ_SPACE_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xcdc234c8 seq_client_get_seq +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xe20e08e8 seq_client_alloc_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xecee2727 LUSTRE_SEQ_ZERO_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x2af44438 fld_client_add_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x2b270e1d fld_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x419090e4 fld_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xa3696c3a fld_client_proc_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xad9e4800 fld_client_del_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xc62c2c60 fld_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xfc965a1c fld_client_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x000c507f libcfs_debug_dumplog +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x01db5172 cfs_percpt_atomic_summary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x03387ca6 cfs_curproc_groups_nr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x041282f5 upcall_cache_flush_all +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x04d3ce6a lbug_with_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x069f9bb2 cfs_wi_schedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x08ada613 libcfs_console_backoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0b4b1546 libcfs_lnd2modname +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0de6c369 cfs_cap_lower +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0e4820ab cfs_percpt_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0f5eff79 cfs_percpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x108d2e2b cfs_percpt_lock_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x117c8a95 cfs_cpt_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12426266 libcfs_run_lbug_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x15565c7f cfs_cpt_set_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x17ac7833 libcfs_deregister_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x190d0d14 libcfs_sock_abort_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x19b06de7 cfs_hash_size_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1a60d439 cfs_parse_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1c6509e0 libcfs_sock_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1d5a3928 cfs_timer_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x23f6f445 cfs_restore_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2557589f cfs_hash_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2589f0af cfs_hash_rehash_cancel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2663147a __cfs_fail_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x27420830 libcfs_sock_setbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x27a9c495 libcfs_sock_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x27b6d3ba cfs_ip_addr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2b1e0458 cfs_get_environ +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2d799692 cfs_hash_debug_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2dbe54b2 cfs_trimwhite +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2efcc0e6 cfs_block_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x30986343 cfs_range_expr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x31fc5082 cfs_crypto_hash_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x377f93fb cfs_srand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3791e0c9 cfs_hash_bd_add_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3834f243 proc_call_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x38828b92 cfs_cpt_unset_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x389ca502 libcfs_debug_mb +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3962e3ee cfs_race_waitq +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x39fdcd2b libcfs_debug_set_level +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3a62a183 cfs_cpt_set_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3c1285bd libcfs_subsystem_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3d5e6098 cfs_race_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ea730c0 cfs_gettok +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ef0d90c libcfs_kkuc_group_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3f0d9281 cfs_wi_sched_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4087f890 cfs_hash_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x411db754 cfs_crypto_hash_final +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x413056d8 cfs_cpt_weight +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x41ab33a1 libcfs_ipif_free_enumeration +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x42e22feb cfs_cpt_table +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44688a0a cfs_block_allsigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44839bbb cfs_rand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44f07cfc cfs_pause +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x47fdb4d1 cfs_timer_is_armed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x48f163c6 libcfs_str2anynid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x48fc6da8 libcfs_sock_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x493a5cb4 upcall_cache_put_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4947bd6b cfs_hash_dual_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x496b3c4f upcall_cache_get_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4a99af72 cfs_clear_sigpending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4d89e988 cfs_block_sigsinv +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4f1f2fa5 cfs_crypto_hash_digest +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x50345570 libcfs_str2net +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5051b6d2 portal_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x509d38b0 libcfs_net2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x52e9cfc1 cfs_cpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x53b383e4 cfs_cpt_unset_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x54fd9a71 cfs_percpt_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x58a7ee00 libcfs_catastrophe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5946ec2b cfs_percpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5c013b81 cfs_expr_list_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5ce62c0e cfs_cpt_table_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d3be65a cfs_crypto_adler32_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d73c3e3 cfs_expr_list_free_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5dce9e80 libcfs_lnd2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5fbb6ffd libcfs_kkuc_group_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62289d65 cfs_array_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x64685fef libcfs_console_min_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6564c55b libcfs_console_max_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x65dd9f0c libcfs_run_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x65e2b9d3 cfs_hash_rehash_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x66136d2d cfs_timer_arm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x67398404 cfs_wi_sched_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6756a801 cfs_hash_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x68497dbf cfs_cpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x687788c4 cfs_percpt_lock_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6b07fa7b cfs_crypto_hash_update_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c605eaa cfs_cpt_unset_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c905b5f libcfs_watchdog_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6cf325d6 upcall_cache_flush_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6dfa9ea1 cfs_crypto_adler32_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6e6af71c current_is_32bit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6f928e1b libcfs_debug_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6ff4020b cfs_hash_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x71d7b2fa cfs_hash_cond_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x71f662a3 libcfs_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x74dde658 cfs_hash_dual_bd_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x752858fb cfs_cpt_table_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7997818d libcfs_kkuc_msg_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7a3d49ae cfs_expr_list_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7b0b748a cfs_ip_addr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c7986cf waitq_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7d93cded cfs_cpt_of_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7e6f6485 cfs_ip_addr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7fda989d cfs_fail_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8151c3aa cfs_cap_raised +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x816276c0 libcfs_sock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x83ca71c8 libcfs_sock_getbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x83d795e4 cfs_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x842864cd cfs_hash_dual_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x857aaea7 libcfs_register_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x89e0937b cfs_hash_for_each_safe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c85e4e6 cfs_crypto_hash_speed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8e61d47b cfs_cpt_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8eef69ba cfs_hash_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f12bb52 libcfs_log_goto +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f45f10d cfs_init_timer +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x904c4251 cfs_hash_getref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x91504e8b libcfs_kmemory +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x92b66af6 libcfs_sock_getaddr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x93a1aaad libcfs_sock_listen +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x940ed192 libcfs_stack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9548a4f1 upcall_cache_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x95620e8c cfs_wi_deschedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x978b5836 cfs_hash_rehash_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x97ab5498 cfs_hash_bd_peek_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x97b0b9bc cfs_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9879b229 cfs_get_random_bytes +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9f82f712 cfs_trace_copyout_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa0ddfce7 cfs_hash_bd_move_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa2b68b2a cfs_array_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa4522d96 cfs_hash_is_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa4d43b13 cfs_hash_del_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa6b9dee6 libcfs_kkuc_group_rem +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa711aec5 cfs_cpt_table_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9088531 cfs_expr_list_values +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9dc74e2 cfs_trace_copyin_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9eae690 cfs_str2mask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xaaf59b75 cfs_cpt_set_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xab887583 init_waitqueue_entry_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xad019238 cfs_str2num_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb43456f1 cfs_percpt_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb53b5569 cfs_cpt_spread_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb883b006 cfs_percpt_atomic_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb8897bad cfs_percpt_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb9c87f94 cfs_hash_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbada117b cfs_cpt_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb59ad6e cfs_hash_findadd_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb9cb508 cfs_curproc_cap_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbd5d492e cfs_timer_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbefb6c3c cfs_hash_dual_bd_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbf013175 cfs_hash_rehash +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbf7a37f1 cfs_signal_pending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc0ea7fc0 cfs_expr_list_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2911d96 cfs_expr_list_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2dfd791 libcfs_console_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc39fd2f9 libcfs_panic_on_lbug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc3eb614e libcfs_ipif_query +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc47433a6 cfs_capable +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc49b1c62 cfs_percpt_atomic_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc53890de add_wait_queue_exclusive_head +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc77a24c3 cfs_cpt_set_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc9bc245e libcfs_sock_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcb385db9 libcfs_debug_binary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcbab8493 schedule_timeout_and_set_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcc195787 cfs_hash_dual_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcc20e694 libcfs_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xccc45639 cfs_free_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcd38904c cfs_wi_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xce1a88f2 libcfs_arch_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf61bacb __cfs_fail_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd0d8d08a cfs_cpt_unset_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd2037eb5 cfs_hash_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd217e869 upcall_cache_downcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd2db9312 upcall_cache_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd6a52be3 libcfs_printk +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd9541990 cfs_strncasecmp +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd96f406d cfs_cap_raise +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdb92f14c cfs_hash_add_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xde17bb8d libcfs_isknown_lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdf2789c0 cfs_curproc_cap_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdffc951d cfs_timer_disarm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe1224965 cfs_hash_for_each_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe2da56ad cfs_hash_hlist_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe35b676b cfs_hash_debug_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe3bf6897 cfs_percpt_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe6555032 libcfs_ipif_enumerate +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe7202360 cfs_hash_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe7b54314 libcfs_arch_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xea8b46c8 cfs_hash_dual_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xec1f56d5 libcfs_str2nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeca4d884 cfs_hash_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeccafa5c cfs_cpt_online +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeceac781 cfs_fail_val +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xedf3a25a cfs_timer_deadline +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xee28e153 cfs_hash_for_each_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf2c02048 cfs_cpt_bind +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf372d1c2 cfs_firststr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf38927af cfs_hash_bd_del_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf40279f5 upcall_cache_flush_idle +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf440bb38 libcfs_kkuc_group_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf79d9217 cfs_hash_for_each_nolock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8a8644b libcfs_id2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8efb8c5 waitq_timedwait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf94025d1 libcfs_str2lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfe565fa9 cfs_crypto_hash_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfe5c8c6b cfs_hash_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xff0f98a6 libcfs_debug_vmsg2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x34cc78d2 ll_iocontrol_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x951f7380 ll_stats_ops_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xb5313cae ll_direct_rw_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xc3a64996 ll_osscapa_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xcd3cde92 ll_iocontrol_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x06465a20 lov_stripe_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x37864f1f lov_stripe_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x4041e494 lov_lsm_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x4ccd0772 lov_device_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xbc12d8ec lov_read_and_clear_async_rc +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xe9c0d0b1 lov_lsm_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x0dde34f2 push_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x281d2735 fsfilt_put_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x388b3263 lprocfs_counter_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x500f351a lustre_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x5940ff69 fsfilt_register_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x71247ca8 l_dentry_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x8dd15f52 fsfilt_get_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x91edfb23 lprocfs_counter_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xa5992178 obd_memory +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb3d4d0cf lprocfs_stats_alloc_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb4f8ee63 lprocfs_read_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xbbb07989 pop_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xf4b614f9 fsfilt_unregister_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x14a47f31 it_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x9c22b84f it_open_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xb57d8447 it_set_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xf46a886f it_clear_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mgc/mgc 0xdc287f95 mgc_fsname2resid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x01665e34 class_parse_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x016bf227 cl_lock_mutex_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x026d1624 cl_page_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x02a7b35e obd_export_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x035852d0 lustre_swab_llog_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x03a6fc0e dt_record_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x03ed894b lustre_process_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x04159d03 cat_cancel_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x04618df1 cl_io_rw_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0466e6c6 llog_cat_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x050a0358 class_config_dump_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0556abea cl_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x057a275e local_index_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x057f6d4b class_find_old_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05af1920 dt_quota_glb_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05e74d4b cl_page_find_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05f84e88 LU_BUF_NULL +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0619c41c obd_export_evict_by_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x065573e8 cl_env_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x066e9442 lprocfs_rd_num_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x079c6522 cl_sync_io_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07a48131 cl_io_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07aa68bb lustre_swab_lustre_cfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x083942ff class_del_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x08c01a15 class_exp2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x091f0f3d lu_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x092191e5 lprocfs_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0963788d lprocfs_rd_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x09ad5885 cl_env_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0a8aa293 lustre_end_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0ac9824a lprocfs_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b48ba68 cl_page_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b4a4e93 llog_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0bb87288 cl_req_page_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0c6fd2cc obdo_to_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0cf99bff dt_acct_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d3957d2 cl_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d6210ac llog_cat_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d940f8f obd_llog_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0da8222c cl_page_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0dcc33ec lu_ucred +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0eae3d5d lu_context_key_quiesce_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0f5fe66c cl_lock_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0f7ab72d cl_page_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fe91547 obdo_to_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fee2938 lprocfs_rd_connect_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x10620e45 cl_object_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x10b30c9d lprocfs_init_ldlm_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11315a12 llog_cat_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11495519 lprocfs_write_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x125847b5 class_conn2export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1350d7c3 cl_page_list_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x13d45658 cl_wait_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1491dc30 lu_context_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x14d7aefd md_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x14d85b14 lprocfs_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x14f75394 cl_2queue_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x16885d1e cl_page_list_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17110ac3 cl_page_list_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17260880 obdo_cpy_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17f6183f lustre_idmap_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x191f99b0 class_find_client_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1ad8f7b8 llog_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1c6d2826 cl_pages_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1d2077b7 lprocfs_add_simple +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1d5e9489 cl_page_unassume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1e461d28 cl_io_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1e801a43 lprocfs_obd_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1ee74166 cl_object_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1f141a28 cl_object_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x201f5340 lprocfs_free_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x20903108 cl_object_attr_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x20c8de31 obdo_refresh_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21307495 lu_buf_check_and_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x221826f1 class_parse_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x23bc152c llog_exist +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x249b259b cl_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x24d664f1 local_oid_storage_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x253cb988 capa_cpy +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2547efae lustre_uuid_to_peer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x259ebac6 obd_alloc_fail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x25b06ae3 llog_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2634a24b class_connected_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x26ac9a8a cl_page_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x275cdc7a cl_env_reexit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x282a261c llog_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x289af20d lu_object_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x28bdfd92 dt_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x28fff718 lu_context_key_quiesce +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x297cf5e0 class_handle2object +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2a25bc1e dt_version_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2a48fb88 cl_lock_hold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2a7e2ea3 cl_object_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2a98f5b0 dt_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ae1cd79 kuc_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2b4c48e9 server_name2svname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2d3895fe dump_lsm +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2dda3963 lu_site_purge +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2eabf2c8 cl_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2fe56c1f class_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2fec7042 llog_cat_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3013cc6e lu_context_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x30cf2742 class_num2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x318945c7 lu_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x340baa54 cl_io_submit_rw +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x35526d19 lprocfs_oh_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37986211 class_config_llog_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37ab61ca llog_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37ed6e4b at_early_margin +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38fb0c90 class_match_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x39041e34 cl_page_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x395e90b3 cl_env_unplant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3994d5d5 cl_lock_get_trust +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3a005065 dt_otable_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3a14b340 lu_site_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3aa9ed47 cl_lock_mutex_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3abbe1b6 cl_lock_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3bc36aad dt_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3c1ff56e dt_txn_hook_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3c790e52 dt_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3da8f0b3 cl_io_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3ed4c26c cl_page_cache_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3edae289 lu_device_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f530503 cl_page_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f85c108 cl_page_is_under_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x40bd0115 lu_context_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x419b00fb lu_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x436e0080 llog_open_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4402d1b3 cl_lock_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x443109f7 cl_env_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x449fd4ae lprocfs_rd_timeouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44e41abb lustre_posix_acl_xattr_filter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44e5bbfd llog_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x45315596 lu_object_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4567a883 dt_txn_hook_commit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x467dc635 lu_object_assign_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x467ee114 lu_device_type_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47391b44 dt_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x474bae9d llog_declare_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x474ed5bd lustre_swab_ll_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4760779c lustre_idmap_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4768da60 dt_txn_callback_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47b35f7d statfs_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x484d326f cl_sync_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x487f2464 cl_io_loop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4895df8c cl_page_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x494cfb52 lustre_acl_xattr_merge2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a0f6ea lustre_posix_acl_xattr_2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a29223 lprocfs_find_named_value +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49e5e827 cl_lock_unhold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4a268c96 lu_context_key_revive_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4a316e45 cl_io_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4a47a3a4 cl_lock_enclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4aad2dd5 cl_io_commit_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ac58713 obd_connect_flags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4b3d5622 lu_site_init_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4b703169 lu_object_find_slice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c38e155 cl_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c674e4b dt_index_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c7c3cdb cl_lock_ext_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d13458b kuc_len +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4dcb688c cl_lock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4efaaf3d cl_lock_disclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4f82efce dt_record_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4fba4346 dt_directory_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5054a93d llog_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50571503 cl_page_list_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50c7fc36 ptlrpc_put_connection_superhack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50ccaa2e dt_lookup_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5105d4f5 cl_lock_descr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x517b5240 dt_try_as_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5239e057 cl_object_glimpse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x524a6c21 class_conn2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x538e8599 lu_object_invariant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5394c88a class_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54885f87 ldlm_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5526689b cl_lock_extransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x558bec27 obd_ioctl_getdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x559571cf lu_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x55fd22ed class_incref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5628c91e class_import_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x564e9d44 init_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x56858586 cl_lock_hold_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x570d09ae lustre_swab_lu_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x576a2b46 dump_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x57c57508 cl_page_gang_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x58c2a17e cl_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x59146bf6 capa_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x59bbf36a llog_init_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a20d896 obd_memory_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a461c77 class_new_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5bc022c5 lprocfs_dt_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ca835c1 lprocfs_alloc_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d34ae0d cl_lock_mode_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d3f5aa2 lprocfs_stats_collect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e50b445 cl_lock_state_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ed188a9 lprocfs_add_symlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5fe97b73 block_debug_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x603ca78e cl_lock_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x608927db obdo_from_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x61506769 cl_page_list_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x625049e4 cl_page_is_vmlocked +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6283a523 cl_page_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x62d215b9 cl_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631a518d mea_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631fd7b9 lustre_ext_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x638bc516 cl_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x63fa8a87 class_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x64096272 cl_lock_modify +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x64eb4a03 lprocfs_exp_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6557adf4 llog_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x65d2b993 class_handle_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6656c88f lu_object_add_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x66a4af8c class_uuid2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6734adbd lprocfs_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67428fce lprocfs_oh_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x677fd7f9 proc_lustre_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67977b42 lprocfs_remove_proc_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67a90622 la_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67dc223a lprocfs_remove +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6890d175 lustre_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69c42114 at_min +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6b869d8b lu_kmem_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6bb6d421 lu_buf_realloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6c4b74c6 cl_io_lock_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6d8635c5 cl_req_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6da2d59f lustre_in_group_p +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6e7d717b class_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f3e6225 dt_quota_slv_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f457d47 cl_page_make_ready +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f490007 llog_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f7316fa cl_vmpage_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6fae3b7e lprocfs_rd_u64 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6fca4b88 llog_declare_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x713b4cd2 llog_cat_init_and_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x71803f8a cl_lock_closure_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x71f17789 class_manual_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x726e5e7e class_register_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7289818d dt_locate_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72ddee4c obdo_le_to_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72de3efd class_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x734beb11 cl_lock_is_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7376bea7 class_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x73952079 lprocfs_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x74154d86 lu_dev_del_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x742559b1 class_unregister_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x745d4d04 lu_context_key_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7523820f cl_io_prepare_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x752f71a8 class_get_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x756a77f3 class_parse_nid_quiet +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x76476f40 llog_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x76b86884 class_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x76e07a62 cl_offset +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77d2089a class_name2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77fe23b7 lprocfs_seq_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7802fcd7 lustre_swab_llogd_conn_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x789796a1 obd_zombie_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x78ca2c35 cl_page_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x79cb5357 llog_cat_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7a55030b lprocfs_free_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b33173b llog_declare_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b4fc57b at_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b6b0bed cl_2queue_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7c51a3f2 cl_2queue_init_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ccfbf49 cl_io_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7cdc0227 dt_declare_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7d94bb63 cl_io_is_going +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ddc7b9f cl_io_read_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ea23273 lprocfs_rd_conn_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7eb1482e llog_osd_get_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ebcb2e9 lu_context_key_revive +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7edcafa0 cl_env_reenter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ef66ea0 lu_ucred_assert +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f59fac9 llog_cancel_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f65be04 cl_lock_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fad7291 raw_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fd1138b local_index_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fe5561a obd_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8031efb8 lprocfs_dt_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x806cc497 class_add_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x80805366 lprocfs_obd_rd_max_pages_per_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x808750eb lustre_common_put_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x809c3769 lustre_register_kill_super_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8171522e llog_cat_cancel_records +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81742d89 obd_ioctl_popdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81a6a4cf cl_io_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81b5f06f cl_io_sub_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81b80b56 __llog_ctxt_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x820a253e class_export_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8231afe2 lprocfs_init_mps_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8315f877 class_handle_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x831f656c class_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x833a9f53 lu_env_refill_by_tags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x83c8ab5c cl_req_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8489f086 obd_alloc_fail_rate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x849e5385 obd_update_maxusage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x85361bf0 cl_lock_closure_build +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x854854b5 lprocfs_wr_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x85a8795f lu_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8919b0f4 cl_lock_nr_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x89e40e44 lprocfs_single_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8aa2c358 lprocfs_dt_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b455c93 cl_env_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b5f4057 lu_context_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ba6e479 lustre_swab_lu_seq_range +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d29a76e cl_req_page_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8dd38291 cl_page_is_owned +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8de11bd8 class_devices_in_group +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8e3f26bf cl_lock_is_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8e4ae224 lprocfs_free_per_client_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8e96c6a9 lu_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f2d79f2 class_detach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f67314c obd_dump_on_eviction +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x90411bc4 lu_context_key_degister +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x908862ea class_import_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x90a902ba cl_type_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x90aab28f cl_io_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x90ddaf08 dt_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92741681 llog_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92e58479 obd_dump_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93b46468 lu_session_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x946f7e7f lprocfs_rd_server_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9512d507 lustre_acl_xattr_merge2posix +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x955f5220 ldlm_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95735c6c at_extra +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95ec998a lustre_groups_sort +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x96bf593c lprocfs_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x973c889f cl_unuse_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9767adce class_uuid2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97d03783 at_history +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9932d8a8 lu_device_type_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9951ca94 cl_env_implant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x996086b7 lprocfs_free_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x997d47de lprocfs_add_vars +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x99c1c696 obd_llog_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9a7d1eb4 lu_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9af4d833 class_exp2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9af7b6b7 llog_thread_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b1ed9d8 obd_jobid_var +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9d06f288 cl_page_list_move +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9dbb17b6 lprocfs_dt_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9e69f433 cl_lock_enqueue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9ec58dfd lprocfs_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa06137fe llog_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa141690a cl_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa209607a lprocfs_counter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa21c5ea1 obdo_from_la +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa23a6bc5 cl_env_nested_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa28d30e0 cl_sync_io_note +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa3807cc3 lu_context_key_degister_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa410531a lprocfs_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa4480822 class_disconnect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa45598c1 cl_use_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa46bb1a0 obdo_from_iattr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa50544b0 lprocfs_nid_stats_clear_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa513f7e4 lustre_groups_from_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa52503d6 obdo_from_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5c15a20 cl_enqueue_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5fb234f lprocfs_write_frac_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa674c241 kuc_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa6801e99 cl_queue_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa704bf9a lustre_idmap_lookup_uid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa90f1623 cl_lock_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa930be47 llog_copy_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa9cc2b9a cl_2queue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa21b7a0 lustre_register_quota_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa311002 lu_context_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaaf85f59 cl_page_clip +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xab2b5441 lprocfs_init_ops_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabb6483b lprocfs_rd_numrefs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabf45922 capa_decrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabfeecb6 cl_page_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac2ced2d cl_lock_signal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac3861cb cl_req_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac7f1596 kuc_ptr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xada9fbca local_oid_storage_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xadc26f09 class_disconnect_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xadc29b6b lu_cdebug_printer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xadca221a cl_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaeaed64f lprocfs_rd_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xafa1b160 obd_exports_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xafb72384 obdo_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xafbd862f cl_lock_discard_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaffa6c8e lprocfs_rd_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb01963a6 class_uuid_unparse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb082cd34 lu_dev_add_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0c318b9 lu_object_put_nocache +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0fb9886 cl_lvb2attr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1b89b6d class_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb224153a class_conn2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb39988ce cl_unuse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb41998cd lustre_cfg_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb4b45585 cl_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb4e4eb3a class_process_proc_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb5b3202b dump_lniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb5f0bc94 lprocfs_wr_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb614569e lprocfs_register_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6ba5dd5 kuc_ispayload +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb743ec6a dt_mode_to_dft +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb7470f8f llog_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb7473437 obd_devs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb88fbc9b cl_2queue_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb902f141 cl_page_vmpage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba985283 lustre_register_client_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbacac922 lprocfs_write_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbada254e lu_context_key_register_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbb6dc873 lu_object_find_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc23da57 dt_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc3cdf3a cl_lock_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc6c1a0d dt_txn_callback_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbcb73382 cl_lock_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbda16e11 lprocfs_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe065981 cl_page_list_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe0a37c8 cl_lock_descr_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe16d43e lprocfs_alloc_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbeb609fa cl_lock_mutex_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0bf7ef2 obd_debug_peer_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0de7e16 class_export_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc1f73324 lu_ucred_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc22e3744 cl_object_attr_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc2b55948 cl_io_lock_alloc_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc2d8a54e llog_cat_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc313b3c4 lprocfs_nid_stats_clear_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc38e5499 cl_lock_at_pgoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc3da779f cl_page_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc43c459c cl_locks_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc4c2967e lprocfs_oh_tally_log2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc4dd96b9 cl_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc4df0cc7 lu_kmem_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc542cf72 dt_index_walk +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc63ce236 obd_export_evict_by_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc69320ab cl_page_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc69cb4fd cl_page_list_splice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc6f1e666 llog_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc70298e6 cl_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc78d9c55 llog_cat_declare_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8d90852 cl_io_rw_advance +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8dbaa87 lustre_swab_cfg_marker +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc93ab7d8 lprocfs_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc9604a4c cl_lock_user_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc9a25182 lu_env_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc9b3c667 dt_lfsck_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xca0738f1 cl_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xca0f0a61 cl_lock_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xca93beb7 lu_object_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcae1c070 cl_page_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb0ab67f obd_max_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb69163c cl_object_attr_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb946b5b lprocfs_rd_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcc214762 lprocfs_rd_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcc913b64 lustre_idmap_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccf7a8de obdo_cpu_to_le +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd7537ee get_devices_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd8a604e lu_buf_check_and_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd918ada cl_req_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcedb140a obdo_cmp_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd032467a capa_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd08827c0 server_name2fsname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd0b6995d lu_buf_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd0da5abb cl_page_own_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd10aa042 lustre_swab_llog_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1b1478b cl_attr2lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1f58645 lustre_swab_llog_hdr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd210ee16 lu_object_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd32727f9 lu_context_key_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd480b9b4 cl_2queue_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd48f4880 lprocfs_seq_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd539445b lustre_idmap_lookup_gid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd5c7270a cl_page_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd5d8f204 capa_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd6017635 cl_io_iter_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd70fe669 lustre_swab_llogd_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd78dec2b dt_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bc8654 obd_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bfbc9c lprocfs_dt_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7f7b340 cl_lock_mode_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd97e720c lu_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd9c71a57 class_name2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda5b1ced class_find_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda8d0fb3 class_search_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdac3d7cb lu_context_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdac644c8 lustre_posix_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb13dce1 capa_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdc77e8eb class_disconnect_stale_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcc40af0 class_check_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd78c0c7 lu_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xddcb5f10 cl_page_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde7c2787 cl_req_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde7d985b obd_dirty_transit_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdeae273c cl_lock_weigh +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe028cf84 capa_encrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe162344a lu_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe1930ed9 cl_object_kill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe25ffcba cl_lock_closure_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2eb4470 class_get_next_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3323f5d class_handle_free_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3812729 iattr_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe5b0f280 cl_page_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe5e80489 local_file_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe6710af2 class_put_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe6a0ebdb cl_object_has_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7193c94 lu_object_locate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe782e2e0 cl_lock_hold_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7cd953e llog_osd_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7d83236 cleanup_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8056387 lprocfs_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8527988 class_new_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8771743 dt_store_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8e84c32 class_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe93824e7 cl_io_submit_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xea08de62 local_file_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeaa4e53e llog_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeaa90fb9 lprocfs_at_hist_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb3f388a _debug_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec7d6b85 obd_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xecdb2236 cl_page_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xedff2284 dt_store_resolve +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee68bc29 lu_session_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeeeb79fa do_lcfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef76f858 block_debug_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xefed6058 class_config_parse_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf01e2527 server_name2index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf0321e8c cl_2queue_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf063211f lustre_register_client_fill_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf0750313 cl_page_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf16776e2 lu_device_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf1b94633 cl_page_list_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf1f41841 lprocfs_clear_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf2aa7cf3 lu_object_anon +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf2dec224 class_fail_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf2fd6695 statfs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf32f69d7 lprocfs_alloc_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3b256a9 lprocfs_exp_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3f08504 lustre_idmap_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf441c77a lprocfs_oh_sum +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf490d5f9 class_del_profiles +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf4c216e4 cl_page_list_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf59c1006 cl_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf60d4659 capa_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf6834dd1 capa_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7020831 lprocfs_dt_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7f124e4 cl_page_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8bf9fac cl_lock_user_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8c2df92 obdo_set_parent_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf97eae4d dt_txn_hook_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf9ae7f6d lu_env_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf9deec99 cl_env_nested_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa3029bf llog_obd_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa50dbd7 cl_io_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa813d06 capa_hmac +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa9fb8f9 lu_context_enter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfab0551e llog_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfad8e32d class_unlink_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfb2e6b3b class_handle_hash_back +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbc5d1eb local_object_unlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbe7f9b5 cl_page_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbea0098 lu_types_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc23118d cl_io_iter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc7f18d0 obd_pages_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc87930b lprocfs_rd_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc979730 cl_page_list_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfcd41956 llog_osd_put_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfce4103b lu_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd68d17a class_notify_sptlrpc_conf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd8f5cf4 lu_buf_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfdbe1557 lprocfs_write_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfde0429a lu_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe4b6e67 cl_conf_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfecce6d6 lu_env_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff57e92d class_match_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfffc1f11 lustre_swab_ost_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/osc/osc 0x5c4940c2 osc_update_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00d95039 ptlrpcd_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x014f4f24 sptlrpc_import_flush_my_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x01d6ef7f ldlm_pools_recalc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0204fac8 ptlrpc_prep_req_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0328a256 _ldlm_lock_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0328c6c7 ldlm_init_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0471f42a ptlrpc_pinger_del_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x048b59d5 lustre_msg_set_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0515f93b RQF_FLD_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0551183c unlock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x065ba576 req_capsule_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x06b3942b lustre_swab_lov_user_md_objects +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x071fc74a RQF_LDLM_ENQUEUE_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x07605c7d interval_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x07674d4a sptlrpc_svc_ctx_invalidate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08bb2d27 lustre_swab_obd_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x092cff3f ptlrpc_set_import_active +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x095587d0 lustre_msg_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0a3130b0 RMF_MDT_EPOCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac252b2 lustre_msg_set_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0afed134 ldlm_pool_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0b22ad78 sptlrpc_cli_enlarge_reqbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0bcacb5d RMF_MDS_HSM_USER_ITEM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0c2d9c43 lustre_swab_lip_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ce77069 lprocfs_wr_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0cf343dd RQF_LDLM_INTENT_BASIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0e253023 ptlrpc_commit_replies +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0e862820 ptlrpc_request_bufs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x100fc63e ptlrpc_fail_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x10f18f20 interval_iterate_reverse +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x115017f6 req_layout_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x122491b6 ptlrpcd_alloc_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12b6f5a3 ptlrpc_connection_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1483eca4 ldlm_lock_addref_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x14d192db lustre_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x14e391e8 ptlrpc_cleanup_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x157a4320 ldlm_resource_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x15a3e4db RMF_GETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x15fb7a96 req_capsule_server_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x172fb86d lustre_msg_hdr_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1747d8b3 ldlm_lockname +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17950f60 RQF_SEC_CTX +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19108a0f RQF_OST_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1981bf9a llog_origin_handle_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19c08934 RQF_LDLM_INTENT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a6a3ce9 RQF_OST_GET_INFO_LAST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a9b76aa RMF_OBD_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1abd3258 RMF_SETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ace4b5f RQF_LDLM_BL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1b80da77 ldlm_prep_elc_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1bae0270 interval_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1be21715 lustre_msg_size_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c300d8e lustre_msg_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c63a477 ptlrpc_stop_all_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1d043548 lustre_msg_set_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1dc2051d RMF_SEQ_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1de9c288 lustre_swab_layout_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1e623574 sptlrpc_sec_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1e8e48a4 sptlrpc_flavor_has_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1eb2a65f RQF_OST_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee46b51 lustre_init_msg_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee9eb3c RQF_MDS_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1f535202 req_capsule_client_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2096f5b5 RQF_OST_SET_GRANT_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x20d6b82c RQF_LDLM_INTENT_QUOTA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x21162c63 ldlm_destroy_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x218a36ce ldlm_cli_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2318c067 ptlrpc_request_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x233790b5 RMF_OST_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x23605c1c req_capsule_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x244e5558 lustre_msg_get_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x24633297 ptlrpc_request_set_replen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x24aafdba RMF_MGS_TARGET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x24e65d57 ldlm_resource_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2585a629 RMF_SEQ_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2587513c RQF_LDLM_CP_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x259ba464 ptlrpc_set_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x25ac107c ptlrpc_schedule_difficult_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x269554ce RQF_LDLM_INTENT_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x26f99d16 RQF_MGS_CONFIG_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x275afebb ptlrpc_unregister_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x275f306f target_pack_pool_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x285e5b99 lustre_msg_set_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2861496c sptlrpc_enc_pool_get_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x288e22f2 __ptlrpc_free_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x291186ca ldlm_enqueue_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x29e0869a sptlrpc_get_hash_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2a63a472 lustre_swab_ptlrpc_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2b4547c0 sptlrpc_target_sec_part +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2c00c60d ptlrpc_sample_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ca92fa8 ldlm_lock_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ccd5b87 ldlm_cli_cancel_list_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2cee74f1 ldlm_pool_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d56f168 ptlrpc_pinger_ir_up +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d798316 RMF_MGS_CONFIG_RES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4562fe RQF_LLOG_ORIGIN_HANDLE_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4ca396 RQF_LDLM_INTENT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ecd7515 lustre_msg_check_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2f0e4f87 RQF_OST_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2f27908a req_capsule_client_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2fd2f737 lustre_msg_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x301d4fcd RQF_MDS_READPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x302937e0 RQF_MDS_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3060b9c6 sptlrpc_rule_set_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x31838cb4 RMF_IDX_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3186e7f2 ptlrpc_buf_set_swabbed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x31e6f179 sptlrpc_enc_pool_put_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3261b862 RQF_OST_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x32a95f57 lock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x32dc4b20 ldlm_namespace_new +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x33bb7761 ldlm_typename +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x34866a68 lustre_pack_reply_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35606b68 ldlm_namespace_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35939a3d lustre_swab_fiemap +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35fc965b lprocfs_wr_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x360a3876 ldlm_cli_cancel_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3759ba5b ptlrpc_request_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3835ab4b RQF_LLOG_ORIGIN_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3858fb94 RMF_OBD_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38c01799 RQF_LDLM_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38fce533 lustre_msg_set_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x39f60a5f RMF_OST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3a1e4bcb __lustre_unpack_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ab90f6e lustre_msg_bufcount +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ac00716 lustre_swab_hsm_user_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b6b7cba dump_ioo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b9f9561 ptlrpc_start_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3bedb0c7 RMF_LLOGD_CONN_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c457d8e sptlrpc_lprocfs_cliobd_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c4758fa ptlrpc_abort_inflight +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c63e62b RQF_MDS_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ca50f33 RQF_MDS_HSM_CT_REGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3d7dc5f9 ldlm_pools_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dc47695 lustre_msg_get_magic +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dddb3e2 dump_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3eaed993 ptlrpc_add_rqs_to_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f034caf lustre_msg_get_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f752e78 RQF_MDS_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x40de0c6a ptlrpc_resend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41008cef RQF_LDLM_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x414d03ef lustre_pack_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41d5cd0d ptlrpc_nrs_policy_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x421ea8d3 ptlrpc_request_alloc_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x436cd51f ptlrpc_lprocfs_register_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43705ee4 RQF_LOG_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43aa9af4 req_capsule_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43d7efc8 lustre_msg_set_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43ef2d8b ldlm_namespace_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x44036eda RQF_MDS_GET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x440c2a71 RMF_FIEMAP_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x442778e9 ldlm_pool_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x443df313 ptlrpc_buf_need_swab +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4481591d RQF_OST_SET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45d05893 lustre_swab_lustre_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45e30cea lustre_swab_ldlm_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47f284d5 sptlrpc_gc_add_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47f5e903 RMF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x48814c9f lustre_swab_ost_lvb_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x494a2acc ptlrpc_activate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x498c03c5 lustre_msg_set_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4a464855 target_print_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4a5a2416 RMF_DLM_REQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4a8e641f lprocfs_wr_evict_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4b09ce4b lustre_swab_mdt_rec_reint +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4b3df336 ldlm_namespace_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4b8d5840 ptlrpc_nrs_policy_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4c0b3f2c ptlrpcd_add_rqset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4c68d3e2 sptlrpc_import_sec_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4c99006f ptlrpc_prep_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4d7580d0 lustre_swab_hsm_user_item +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4d7a3e39 ptl_send_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e1706e5 lustre_msg_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e696b96 ptlrpcd_queue_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4eb03a6f ptlrpcd_destroy_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4ebaed08 ldlm_lock_downgrade +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4f766c3b lustre_swab_generic_32s +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50443f6a ptlrpc_init_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50dd74f8 RMF_STRING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x514f482a target_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x52125b09 ptlrpc_recover_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x52c62150 RMF_RCS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53325ff6 req_capsule_client_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53411557 RMF_DLM_REP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5381107c ldlm_pool_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x539a0117 sptlrpc_cli_unwrap_bulk_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53a4a004 bulk_sec_desc_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x548653e2 sptlrpc_conf_target_get_rules +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x54ae5021 ldlm_lock_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x555eb7fe RQF_MDS_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x568a2a67 ldlm_cli_enqueue_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x571625fb req_capsule_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x588035b4 RMF_UPDATE_REPLY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x595ab175 lustre_swab_obd_quotactl +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x596582bf RMF_GETINFO_VALLEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59ca398b ptlrpc_add_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5a057439 interval_search +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5af0d02a ldlm_lock_dump_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b3e50bc ptlrpc_init_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b6ba895 lustre_packed_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5bbce522 ldlm_flock_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5c4c6ac1 ptlrpc_resend_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5c6a3a83 RQF_SEQ_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5caae213 ptlrpc_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5cf5ef31 ldlm_cli_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5cfed5d0 llog_origin_handle_prev_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5dc55703 llog_origin_handle_read_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e0b19b1 RMF_CLUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e2b7558 lustre_msghdr_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e6f435d RQF_OST_BRW_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e80f899 RQF_LLOG_ORIGIN_HANDLE_READ_HEADER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ec3284d RQF_MDS_HSM_CT_UNREGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ef831ee lustre_msg_get_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5f414646 lprocfs_rd_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5f463532 ptlrpc_register_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5f647e76 ptlrpc_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5f96ccdd ptlrpc_connection_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6042bc15 RQF_MDS_REINT_RENAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x604e2505 RMF_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x607ec932 lustre_msg_set_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60cd26ad RQF_MDS_REINT_CREATE_SYM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x61646e1b RQF_MDS_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x618ad203 RQF_OST_GET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x61912364 ldlm_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62192cf8 dump_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62aaae3f RQF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6315dd4c RMF_LLOGD_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6352a62d ldlm_get_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x647b6e48 lustre_swab_ldlm_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x652052d2 ptlrpc_free_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x653723dc RMF_LOGCOOKIES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x655f385c ptlrpc_disconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x66eca49e ldlm_pool_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x685eeaba RMF_DLM_GL_DESC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6884d4e8 ldlm_pool_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68b07c3f sptlrpc_sec_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68cb2541 interval_is_overlapped +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68d87d90 ptlrpc_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68f49e5e ptlrpc_expired_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6912990a RQF_OST_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69427ffe sptlrpc_sec_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x696ba811 lustre_msg_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69c9f04d RQF_MDS_REINT_LINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6a3785c9 RMF_EADATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6aaf7277 ptlrpc_restart_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6c567ae2 ldlm_lock_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d715e78 lustre_pack_reply_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d72828c sptlrpc_conf_log_update_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d7931cc RQF_UPDATE_OBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6dbfefac client_disconnect_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6ed20499 ldlm_revalidate_lock_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6efa82b0 RQF_MGS_TARGET_REG +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f284215 req_capsule_field_present +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f6dc736 lustre_swab_mdt_remote_perm +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6fa362c2 ldlm_cli_cancel_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6fb92092 sptlrpc_flavor2name_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x70062dc5 ldlm_completion_ast_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x703538e4 lustre_swab_hsm_current_action +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x723d43b6 sptlrpc_rule_set_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x725a892c RQF_MDS_REINT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x72e52a07 __ptlrpc_prep_bulk_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7328f485 ldlm_prep_enqueue_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7332d7d4 client_import_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x74840056 lustre_msg_set_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75266c2a ptlrpc_lprocfs_unregister_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75a2c40d ldlm_put_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75c33b8b client_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7697eb5b ldlm_pool_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x76b728e5 lustre_swab_update_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77571cc6 lustre_swab_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77840c82 sptlrpc_rule_set_choose +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x78bf9136 lustre_swab_ldlm_lock_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x78ea8cb3 do_set_info_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7a2b9490 ldlm_pool_get_lvf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7a832f10 RMF_CONN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7b158da4 lustre_swab_ldlm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7b9602ee ptlrpc_prep_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7bbf8001 RMF_MDT_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7c4c354c ldlm_resource_unlink_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7c4c6107 RQF_LDLM_CONVERT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d076c24 ptlrpc_unpack_req_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d1ecd7f RQF_LDLM_INTENT_LAYOUT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d242204 ptlrpc_set_next_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d41a8b9 RQF_QUOTA_DQACQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7da16283 req_capsule_server_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dc0e7cd RMF_QUOTA_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dfb3c18 lustre_msg_clear_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7e14db5e ptlrpc_queue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7e77df51 ptlrpc_pinger_sending_on_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f09cc6a ptlrpc_pinger_add_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4925d8 interval_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4c99b1 ldlm_expired_completion_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f5a1cc7 lustre_msg_set_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f6d2357 lustre_msg_is_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80a9e8c3 lustre_msg_get_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80ecb4e3 RMF_MDS_HSM_CURRENT_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80f8426c ldlm_resource_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80fab210 sec2target_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x817c3b4c ldlm_lock_allow_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x817d7f1f lustre_msg_add_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x81c505d7 ldlm_extent_shift_kms +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x826d3c4f RQF_LDLM_GL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x837efb00 RMF_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85135801 RMF_DLM_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85a9e0d8 RMF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85cdd96a req_capsule_server_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85eecf67 sptlrpc_get_hash_alg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x863db6eb RMF_HSM_USER_STATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x86fa8c3b ldlm_cli_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8708b041 ldlm_lock_fail_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8760beaf lustre_swab_ldlm_policy_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x876c2551 RMF_GETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87bf7b3c sptlrpc_get_next_secid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8802d2cc ptlrpc_mark_interrupted +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8872f3d2 RMF_SETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x88fff52d RMF_CAPA2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x89f9edf7 RQF_MDS_REINT_SETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a1ea476 lustre_swab_hsm_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a257736 RQF_MDS_HSM_STATE_GET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ac026da ptlrpc_reconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ac440fa ptlrpc_uuid_to_connection +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8b854254 lustre_swab_mgs_config_res +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8bedb8f5 llog_origin_handle_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8cb71d4b RQF_MDS_REINT_CREATE_SLAVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d64c860 ldlm_pool_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d73db70 req_capsule_init_area +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d77ea75 lustre_msg_set_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8da08649 ldlm_resource_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8da3fca7 lustre_msg_add_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8e4d6d86 req_capsule_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8e9abe4d RMF_GENERIC_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8f0aceac RQF_MDS_HSM_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8f2fe17e ldlm_pool_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8feba88c ldlm_destroy_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8fec0451 lustre_msg_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x919c4ce3 RMF_OBD_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91cf58d3 RQF_MDS_PIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9273a804 ptlrpc_init_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x93046077 sptlrpc_cli_unwrap_bulk_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9356edbc ldlm_lock_change_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x937b1ee0 lustre_swab_mdt_ioepoch +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9553c633 RQF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95c3e2d1 sptlrpc_cli_ctx_expire +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95d08f0c lustre_swab_mgs_target_info +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9636d945 ptlrpcd_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9660ace0 RMF_FLD_MDFLD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x967bfd52 RQF_OBD_PING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9798f2f1 RQF_MDS_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x97e1cc12 ptlrpc_at_set_req_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x980fcfdc ptlrpc_connection_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x98561086 req_capsule_set_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x999af11c ldlm_namespace_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a258886 RQF_MDS_GETSTATUS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a6f2f6d lustre_msg_set_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a774a1e ptlrpc_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9ae7828c ldlm_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9b88f6ce RMF_NIOBUF_REMOTE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9bb5198b RQF_MDS_CLOSE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9c4a98f4 ptlrpc_cleanup_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d7ea314 sptlrpc_pack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9dc256f1 ldlm_replay_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9e91e841 req_capsule_filled_sizes +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9edd0d6d ptlrpc_unregister_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9fac60da sptlrpc_register_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9fb088f1 lustre_swab_lov_mds_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9ff03e05 sptlrpc_target_export_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa10f0d3d RMF_UPDATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa163f4c3 dump_rniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2244636 RQF_MDS_GETATTR_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa22c0086 ldlm_error2errno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa252656a ldlm_blocking_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa331fa5d sptlrpc_cli_wrap_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa3d2a6ee RMF_CAPA1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa47787ef RMF_PTLRPC_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4a2d089 RQF_OST_PUNCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4bea5ef lustre_swab_lmv_user_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4e329bf client_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa539a11c ptlrpcd_wake +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5458dad ldlm_lock_decref_and_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5880075 ldlm_errno2error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa628f76b ptlrpc_unpack_rep_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa6366eef ptlrpc_request_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa6c436ca RQF_MDS_WRITEPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7270ac4 ptlrpc_retain_replayable_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa72fdb31 ptlrpc_set_add_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7d55cc3 RQF_MDS_REINT_CREATE_RMT_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7e360b1 RMF_OBD_IOOBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7ec567d RMF_CONNECT_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa867ec60 ptlrpc_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9704f80 lustre_msg_get_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa973ad2e ptlrpc_set_add_new_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9add2fe client_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9c4658e lustre_swab_lov_user_md_v3 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9edf09d RQF_OBD_IDX_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaa092553 req_capsule_server_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaa253d7c llog_client_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaa7489cf ldlm_lock_fail_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xac9ef2ad sptlrpc_gc_add_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaddc3979 lustre_swab_lustre_capa_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xae670758 sptlrpc_cli_ctx_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf0f46dd ptlrpc_set_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf4e9658 RQF_MDS_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf50a0d6 RMF_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb019a902 sptlrpc_req_replace_dead_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0751fa4 RQF_LLOG_ORIGIN_HANDLE_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0a4a1b1 ptlrpc_obd_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0eefba0 ptlrpc_deactivate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1b43d8a dump_rcs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb216013b ldlm_namespace_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb27c2374 lustre_msg_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb291473d lustre_msg_early_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb2b1817d lustre_swab_ost_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb3382051 ptlrpc_request_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb3f9b82e client_import_del_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4a7ecf3 lustre_msg_add_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb512ebc2 sptlrpc_parse_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb61cb95a RQF_MDS_GETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb68476df interval_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb6aafd03 RQF_MDS_DONE_WRITING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7b38189 RMF_MDT_MD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7fa3cc8 RMF_LLOG_LOG_HDR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb8393ad4 ptlrpc_invalidate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb851ef7e sptlrpc_gc_del_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb903634e RQF_OST_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb94b38d9 ldlm_cli_enqueue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb9b631cf lustre_swab_mgs_config_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbaa76097 lustre_msg_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc1370dc lustre_shrink_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc5b63bf ldlm_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc799a02 ptlrpc_register_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbd0a7b5a sptlrpc_get_bulk_checksum +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbd83bc44 RQF_OBD_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbe47bc7e ping_evictor_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbf98b86f RQF_MDS_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbffd4313 RQF_OST_BRW_WRITE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc04288f6 llog_initiator_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc06c4670 lustre_msg_get_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0867da7 RMF_REC_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0cdf55e RMF_MGS_SEND_PARAM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc143dfa2 ldlm_glimpse_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc1f0b1a9 ptlrpc_replay_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc23739ec sptlrpc_target_update_exp_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2594542 ldlm_pool_get_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2986d28 lustre_swab_ldlm_res_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2b1af57 RQF_MGS_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2be922a RMF_SYMTGT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc3ccd09f sptlrpc_import_flush_all_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc3e47e1f llog_origin_handle_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc559a634 RMF_LAYOUT_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc593388e ptlrpc_prep_fcset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc60a60e1 RQF_OST_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc64360a8 ptlrpc_save_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc68954c4 ptlrpc_hpreq_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc694be4b RQF_LLOG_ORIGIN_HANDLE_PREV_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc763fabc sptlrpc_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc79b9c67 ldlm_pools_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7ca8257 RQF_MDS_REINT_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7e47564 ptlrpc_interrupted_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc8e160e1 sptlrpc_conf_client_adapt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc8f586a9 ptlrpc_connection_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc95ecba0 ldlm_cli_cancel_unused_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca5a81ec ptlrpc_pinger_ir_down +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb0b8d00 req_capsule_has_field +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2cc0cf lustre_swab_lquota_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2ceaff sptlrpc_secflags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcc977d50 ldlm_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcd64eac0 req_capsule_server_sized_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcd6869d8 ptlrpc_req_finished +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcda9d3cb ptlrpc_send_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcddf89f5 ptlrpc_req_set_repsize +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcdf0ab16 ldlm_cli_cancel_unused +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce12d6ff lprocfs_wr_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce1a689b sptlrpc_enc_pool_add_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce2f14e0 req_capsule_server_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce86066d lustre_msg_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcec513c9 RQF_MDS_UNPIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xced015be sptlrpc_rule_set_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9963db lustre_msg_get_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9aab6a RQF_MDS_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd0a3728f ldlm_cli_update_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd1cb4132 ptlrpc_wake_delayed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2239b8e lustre_pack_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2983334 lustre_swab_swap_layouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2e0d4eb lustre_msg_get_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd3dae408 ldlm_it2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd537ded2 lustre_swab_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6665980 ldlm_get_enq_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd67a5d7b lustre_swab_update_reply_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd69e0a27 RQF_MDS_IS_SUBDIR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6c3ebfb RMF_FIEMAP_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6d2e334 ptlrpc_prep_bulk_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd7910326 lustre_swab_obd_statfs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8b91b3e lustre_swab_lov_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8f06300 RQF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd9561861 RQF_LDLM_INTENT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd99c80f1 req_capsule_server_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xda2ac111 sptlrpc_proc_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb1fb0a2 RQF_MDS_REINT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb317a89 ptlrpc_request_alloc_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb9d5a6a lustre_swab_niobuf_remote +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdcb2c6a4 client_import_find_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdcf910b9 lustre_swab_ost_last_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd0ffb04 sptlrpc_flavor2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd30d7bf RMF_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd68bd9c ldlm_lock_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xddc40a85 lustre_msg_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde12d36b RMF_MDS_HSM_ARCHIVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde555d70 sptlrpc_enc_pool_del_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdecb3b95 ldlm_cancel_resource_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdee87192 sptlrpc_conf_log_update_begin +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf6d93da ptlrpc_req_finished_with_imp_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf701ae7 lustre_swab_fid2path +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0cc694c RQF_LLOG_ORIGIN_HANDLE_NEXT_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0f0309a ldlm_reprocess_all_ns +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe15ffecc ptlrpc_lprocfs_brw +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe1bef497 ptlrpc_unregister_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe23c3e0c llog_origin_handle_next_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe315f891 llog_origin_handle_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe31fd9ac ldlm_lock_allow_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe3656fb9 ptlrpc_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe3660503 ldlm_namespace_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe38771e5 lustre_free_reply_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe40e0a50 lustre_msg_get_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe48f6755 sptlrpc_cli_ctx_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe57bd972 sptlrpc_current_user_desc_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe643998e RQF_OST_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe67bbb69 sptlrpc_cli_ctx_wakeup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6ad1f4d sptlrpc_unregister_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6f0dc96 RQF_OST_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7062b5f RMF_U32 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7512278 ptlrpcd_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe9e9db9b __ldlm_handle2lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabaa0b1 lustre_swab_mdt_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabac4fc sptlrpc_rule_set_merge +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeafd2aa8 ldlm_pool_set_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeb45b7da req_capsule_other_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeba464fa ldlm_pool_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xebb64e68 req_layout_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec226f66 ping_evictor_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec939a00 RQF_MDS_REINT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xecace5c1 RQF_OST_GET_INFO_GENERIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed1c10d6 ptlrpc_connection_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed537693 ptlrpc_service_health_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xedcb740d sptlrpc_name2flavor_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xee5cbcec ldlm_init_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeec5727c ldlm_blocking_ast_nocheck +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef0c27c9 req_capsule_extend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef1aeca9 RMF_FLD_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0241d6e lustre_swab_hsm_progress_kernel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0d52b5f ptlrpc_pinger_suppress_pings +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf1300275 _sptlrpc_enlarge_msg_inplace +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf277c125 RQF_OST_GET_INFO_FIEMAP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf27d49dc sptlrpc_target_choose_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf32e9e37 ldlm_register_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf35f132b lustre_swab_ldlm_resource_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf3d44370 RQF_OST_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf43540b9 lustre_swab_mgs_nidtbl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf45085e1 sptlrpc_conf_log_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf4782ec4 ptlrpc_req_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf55c033b RMF_MGS_CONFIG_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf584a16b sptlrpc_part2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf596e9ae sptlrpc_conf_log_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf607fc23 sptlrpc_flavor2name_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf617ab8a lustre_msg_get_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf6746b95 req_capsule_client_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf697b756 ldlm_dump_all_namespaces +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf69f4a77 ptlrpc_set_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf6f4e3f6 client_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7408f84 lustre_swab_hsm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7ba40c0 RMF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf85cb27e sptlrpc_parse_rule +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf870fed9 RQF_LDLM_GL_DESC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9051bd6 RQF_QC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf94e41e0 deuuidify +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf973aa93 lustre_swab_lov_user_md_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9c37dae ldlm_lock2desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9ee11e2 lustre_msg_set_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9f72dfc RMF_TGTUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa51688d interval_insert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfb4f11c9 _debug_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfc2fa83f ptlrpc_del_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd148bf8 RMF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfe4d3416 ldlm_lock2handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff02a0e9 ldlm_lock_set_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffc807e8 sptlrpc_unpack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffe29c3f RQF_LDLM_ENQUEUE +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0x47a9dfa2 cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x006ba23b go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x02137acc go7007_snd_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x0d225d5b go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x38595822 go7007_update_board +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x40aba818 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x8d74354b go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x8e816e08 go7007_snd_init +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xbc23806a go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xe67abea4 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x015e1ca8 rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x039007c9 rtllib_wpa_supplicant_ioctl +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x041e1dbc rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x086b03d4 rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0b435a2a rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0e6ebb50 Dot11d_Channelmap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x13308f59 rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x13748f58 rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x146e8a7b rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x15d8d467 dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x16e8a3eb rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x19d102a3 rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2549f7f3 rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x27a5738d rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x29cfbcc3 rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x34a5cb1c rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3b0b0db7 rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3df74485 rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3f39471e rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3fb894be rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x402f2c13 rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4d9c47cf rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5cae1bcd rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6e9654c8 rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x71a439bb rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7278b589 rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7601a0af free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7800009e rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x850d4cd5 rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8f0a4045 rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x948070fc rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9727df25 rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x97819be2 rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9b663a89 HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa58f5fb6 rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa670df37 notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa9408493 rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xac2712e0 rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb173694e RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb1c7055c rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb1dcb000 rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb5fc4b54 rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb924d260 rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbcf80463 rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe1420f2 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xcd6c6ca4 rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf78f620 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe3e6fc5c rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe8a1c633 rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xed1f9920 alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf5be3cd7 rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfcc9f157 rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0ab65aa8 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x109540c1 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x18ff22c4 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1aef05b0 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1bd0f15d ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1dab50cd notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3432648e ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cbb989d ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3d718a5d ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x419a7626 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4782c9cc ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x48803a96 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x51d32f0b ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x52c3fb91 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x579b0de6 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5ac942fa ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5c22a02c ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x601ad50f Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6afc2eb1 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c32c8b5 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6ceafddc ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x75eb62ff ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x850492f5 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x86803478 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8da73164 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8dfa7e8f DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x91dd7b48 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x93062165 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x94d7367d DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9e238eb1 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa7f510fd SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xadcd827b ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb057e463 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb60f6838 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbaf83d0a ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbbd22f1c ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc0d41c29 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc2b7860c ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc3793937 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc4af39e6 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc9220c6e ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc93ded03 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcd2e8b7d ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd586c44e ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd6bb1704 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd6c9a65b ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd6de3f8a ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd78f07a7 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xddb980a2 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde16b53b ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe209f499 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe233fb67 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe2bcad84 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe670706a ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfe610fa6 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xff6dfc85 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0017f35f set_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x00ea0cde set_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x06d6f244 get_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x09df8f3e set_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0a8d32c3 get_bypass_slave_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1936264c set_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1d2eb8ca get_tap_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x203af1f7 reset_bypass_wd_timer_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2070f14a set_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x27b990ef get_bypass_info_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2ba7cd35 get_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2c3f1c17 get_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2f59e636 get_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2fdb893a get_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x361cf40a get_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x45ca99c3 set_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x550a188c set_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x5cb59e92 get_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x66b60122 set_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x675208c0 set_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x692623f2 get_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x75131ec6 set_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x76c0b7d0 set_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e872825 get_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e8d701e get_wd_expire_time_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x86388b07 get_bp_disc_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x93ae4648 get_wd_set_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x95e42b0d is_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9df5f807 set_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9e21f42e set_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xa689a214 get_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xae117788 get_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xc368d30d get_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xccab5de0 get_bypass_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd3e034b3 get_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9c1ccfc get_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9d38d97 set_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xe640f06e set_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xecdaa456 set_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xedcd3c1b get_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf06d67bf set_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf57c1671 get_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf693c3a1 bp_if_scan_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf8237882 get_bypass_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xfa59240d get_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05af3c4c set_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05b08a42 set_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0b0d5ce0 get_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0fc2e83c reset_bypass_wd_timer +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x123a8133 get_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x157ec89c get_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2440f05a get_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2b01d1d4 set_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2c27a2f0 set_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2da97f4b is_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2e86c67b get_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37416370 get_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37bdab27 get_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x3da96a18 get_bypass_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4025805e get_bypass_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4940a0cc get_bypass_info +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4d21ff51 get_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5147360c get_bp_disc_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x515d4df1 get_bypass_slave +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5560267e set_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5be44d44 set_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6653590c get_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6bda14ec get_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x72c618ae set_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x76d47e6f set_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x794e3815 set_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x7c6cbc16 get_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x84a263dc set_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x8a16f22c set_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x946ff795 get_wd_set_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x94f6aff2 get_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x9d1ecf73 set_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xb1385629 set_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xbff68c45 set_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xc871c561 get_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xcee528df set_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd202dd85 get_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd787f151 get_wd_expire_time +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xdb6a39d2 get_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xebd25ae5 get_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf1e9f8c1 set_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf224abd9 get_tap_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf5a591b2 set_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf643fd4c get_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x040c041d xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x25978d50 xillybus_isr +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x944b86c3 xillybus_do_cleanup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x99d619d5 xillybus_endpoint_remove +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x9bd5018b xillybus_init_endpoint +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0bad49e0 iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0d99557f iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x171a4703 iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x23141030 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3a07cd80 iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3eb742c9 iscsit_set_unsoliticed_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x401f9130 iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x45f8dc2a iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x47139663 iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x494d888c iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x49feb37c iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x63621633 iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7113a006 iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7a4f75a8 iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7dcd2a42 iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x84aa084a iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x862fee28 iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9901db68 iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa5f12343 iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xac3110d5 iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb3660078 iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb49af207 iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbcddfb3e iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbcfbeebb iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc9255e3f iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe2f1de8c iscsit_handle_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf71742d2 iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xfe8dc25c iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x0313060a core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x05766f9b target_get_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x097dcc60 sbc_execute_unmap +EXPORT_SYMBOL drivers/target/target_core_mod 0x0a12e159 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x0b3e0bc2 target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x0dfe664c __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x0f34b58d transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x10722763 spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0x11d5bbdc transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0x1222a24b target_put_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x14683451 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x18f0e157 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x19736ffa core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x198b31c6 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x1aa893a9 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x280995a1 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x29e955aa target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x2c228d7a transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x32eda3fb target_submit_cmd_map_sgls +EXPORT_SYMBOL drivers/target/target_core_mod 0x37740700 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x3e7c7a6c sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x4284821a sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x4a18b340 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x4bd0ff0b core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x4cd41b98 target_sess_cmd_list_set_waiting +EXPORT_SYMBOL drivers/target/target_core_mod 0x4cef2181 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x4d1a532f iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x4e140f1a spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x50fc64dd fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x5834dc03 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0x6cce6319 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7915ee7b iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7eb98e77 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x8710b51b sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x87ae7d6a spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x88273d2a target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x8947b6d1 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x8bf3867b transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x8e600646 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x91afb794 target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x91ecbb5a target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0x91f978a9 target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x9d459f2c core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x9e693046 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x9ef41885 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x9f80c23c target_setup_cmd_from_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xa770f2f2 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xabc4214a target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0xb229859f sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xb8aa6a11 transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0xb9a5314d transport_init_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0xbfbc65e2 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xc109d88b sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0xc598d08a core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xcaaccf24 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xcb3fb664 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0xd10600d8 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xd15fca35 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xd59b75be target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0xd7ec407d transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xd9f141ab transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xdadf2e33 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0xdb62fec2 spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xe38e41af transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xe9550627 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xea96fdb2 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xed696b4b core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf1c9b5f9 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf4701261 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xf4d58869 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xf932ea02 core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0xfacf5f33 usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0x7f2df931 unregister_gadget_item +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x0d533021 gether_setup_name_default +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x1f871776 gether_set_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x1fbb66d1 gether_get_host_addr_cdc +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x29dbb14b gether_get_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x3cbb501a gether_register_netdev +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x4e729d0b gether_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x50d1d0e0 gether_setup_name +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x53d2d82b gether_get_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x680a8638 gether_get_ifname +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x6986c029 gether_set_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8878cfa6 gether_cleanup +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8ff2aabf gether_connect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x94887eae gether_set_gadget +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xcada243c gether_get_host_addr_u8 +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xf148bce9 gether_set_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xf1be3c3a gether_get_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3a6d4f22 rndis_free_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3ca38e3a rndis_signal_connect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x4ca90996 rndis_signal_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x5266a2d5 rndis_rm_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x5d22b406 rndis_register +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x785d494b rndis_msg_parser +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x840dd143 rndis_deregister +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x988ad2a2 rndis_set_param_vendor +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x9acf72e4 rndis_set_param_medium +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xa90054ee rndis_uninit +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xb971ebca rndis_get_next_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xc02229af rndis_set_param_dev +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xcf6808d1 rndis_add_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xd2fe47b1 rndis_set_host_mac +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1710b539 fsg_fs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1b1cc3af store_cdrom_address +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x2933ee1d fsg_ss_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x2c278a40 fsg_store_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x359191f9 fsg_show_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x398778e1 fsg_ss_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x3f5c3023 fsg_show_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x423845e4 fsg_ss_bulk_in_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x56344daf fsg_hs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x614d546c fsg_lun_close +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x857b6dc2 fsg_hs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x8ca27c5d fsg_lun_open +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x95cffb3e fsg_hs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa30877bb fsg_show_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5cae92f fsg_ss_bulk_out_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5f99b69 fsg_fs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb32ddf3a fsg_store_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb52ba28a fsg_intf_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb54d0d95 fsg_fs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xbfa1be60 fsg_show_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xc727c654 fsg_store_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xd0817672 fsg_store_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xd9e884f9 fsg_store_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf2ba0724 fsg_lun_fsync_sub +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf4efc0c8 fsg_ss_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xfbafa5b4 fsg_show_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_rndis 0x600a3d09 rndis_borrow_net +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x8c4b5a91 sl811h_driver +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x17822969 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3475d8e6 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x65fa4f3a usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7b832ff9 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x81497825 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xafdb5679 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb075c583 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb492f992 usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd1c95d49 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd6d3e091 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf04f8707 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf2004c47 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf401941f usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xa1c8abf6 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xc107e294 usb_serial_resume +EXPORT_SYMBOL drivers/vhost/vringh 0x0dda8c5a vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1f063017 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x2e91ca97 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x367ce26a vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x36dfce73 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3eaf442a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3fa42e4f vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5dafbd4e vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x66af098b vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x6d0e7948 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7bda5e6d vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x821e9390 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0xaf8e4a0e vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xafb47dae vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc884d704 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc8bee0a4 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xd11d2709 vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xda4ea4cc vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xfc7dcad2 vringh_getdesc_user +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x10f06036 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x5317fb12 devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x64d3bfc1 devm_lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x88535f57 lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x9d348acc cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/macmodes 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x591d1626 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x76d3644c g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xab09b5d8 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xb45ec714 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x2f489e93 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x7b50b785 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xfd4e2846 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xffa03d24 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0xfa5c7c56 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x4c52df4f matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x598453b0 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x6f2a6d38 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x9508f2ff matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xa78ad6d2 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x218150a4 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x30af6669 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x1b4da259 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x1f9052cb matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x335ee1c8 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x9b406542 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xe916e202 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0x9013ec98 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x3c4683e4 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xa70ec602 video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x097189b7 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x0c121166 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x38e5bdda svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x6e4adb1e svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x8de63fb4 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0xb19c0d95 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xbc5d331d svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe200039e svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf2db5956 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xfea78cc2 svga_tileblit +EXPORT_SYMBOL drivers/video/syscopyarea 0x15efe92b sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x24125456 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x2694dd7b sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/vme/vme 0x05949ec9 vme_irq_handler +EXPORT_SYMBOL drivers/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/vme/vme 0x0f104ff0 vme_dma_list_add +EXPORT_SYMBOL drivers/vme/vme 0x1bc59533 vme_lm_request +EXPORT_SYMBOL drivers/vme/vme 0x1dc93bc0 vme_irq_generate +EXPORT_SYMBOL drivers/vme/vme 0x20df5a3d vme_dma_pci_attribute +EXPORT_SYMBOL drivers/vme/vme 0x2d6cb9e9 vme_irq_free +EXPORT_SYMBOL drivers/vme/vme 0x3e95083c vme_slave_get +EXPORT_SYMBOL drivers/vme/vme 0x41862ad4 vme_alloc_consistent +EXPORT_SYMBOL drivers/vme/vme 0x43ee6f82 vme_register_bridge +EXPORT_SYMBOL drivers/vme/vme 0x46649cd1 vme_lm_set +EXPORT_SYMBOL drivers/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/vme/vme 0x4baf35a7 vme_master_get +EXPORT_SYMBOL drivers/vme/vme 0x4c843279 vme_master_request +EXPORT_SYMBOL drivers/vme/vme 0x535c8308 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/vme/vme 0x55d32957 vme_slot_get +EXPORT_SYMBOL drivers/vme/vme 0x5aff4177 vme_lm_get +EXPORT_SYMBOL drivers/vme/vme 0x6470d665 vme_bus_type +EXPORT_SYMBOL drivers/vme/vme 0x69cbc3f9 vme_register_driver +EXPORT_SYMBOL drivers/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/vme/vme 0x7fde2edb vme_master_read +EXPORT_SYMBOL drivers/vme/vme 0x802c5002 vme_unregister_driver +EXPORT_SYMBOL drivers/vme/vme 0x89f1177f vme_dma_request +EXPORT_SYMBOL drivers/vme/vme 0x8a0a97b6 vme_dma_list_free +EXPORT_SYMBOL drivers/vme/vme 0x90695906 vme_free_consistent +EXPORT_SYMBOL drivers/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/vme/vme 0xa31bdf07 vme_master_set +EXPORT_SYMBOL drivers/vme/vme 0xb082c9fe vme_unregister_bridge +EXPORT_SYMBOL drivers/vme/vme 0xb98c513d vme_irq_request +EXPORT_SYMBOL drivers/vme/vme 0xd797b9a5 vme_master_write +EXPORT_SYMBOL drivers/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/vme/vme 0xe693a6ce vme_get_size +EXPORT_SYMBOL drivers/vme/vme 0xee061098 vme_dma_list_exec +EXPORT_SYMBOL drivers/vme/vme 0xefd1624a vme_dma_free_attribute +EXPORT_SYMBOL drivers/vme/vme 0xf32a87b6 vme_new_dma_list +EXPORT_SYMBOL drivers/vme/vme 0xf5a10e25 vme_slave_set +EXPORT_SYMBOL drivers/vme/vme 0xf5b9155b vme_slave_request +EXPORT_SYMBOL drivers/vme/vme 0xfacd8e72 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x0e3e12c3 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x2c11afbd w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xaa0cea1f w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xdf33d956 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x0ec97810 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x55ef1a2b w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x6eccd76b w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0xa30d6bf8 w1_ds2781_io +EXPORT_SYMBOL drivers/w1/wire 0x071f83c3 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x47750195 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x96d5b3d9 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xad9f758c w1_unregister_family +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xb5f20875 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xc4f657bf iTCO_vendor_pre_stop +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xdc6effc9 iTCO_vendor_pre_start +EXPORT_SYMBOL fs/btrfs/btrfs 0x27476846 ulist_reinit +EXPORT_SYMBOL fs/btrfs/btrfs 0x41e6a9d2 ulist_init +EXPORT_SYMBOL fs/btrfs/btrfs 0x7e2ee765 ulist_free +EXPORT_SYMBOL fs/btrfs/btrfs 0xa2eec2e8 ulist_fini +EXPORT_SYMBOL fs/btrfs/btrfs 0xb1320bc8 ulist_add +EXPORT_SYMBOL fs/btrfs/btrfs 0xb42289d2 ulist_alloc +EXPORT_SYMBOL fs/btrfs/btrfs 0xc2c745db ulist_next +EXPORT_SYMBOL fs/configfs/configfs 0x16347ad5 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x1b90fe8e configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x1d03025e configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x26078fef config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x317861bf configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x3c0c9875 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x54d27089 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x68c9744d config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x7893f263 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x9bd677b5 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xfa4f6701 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xfa50cd70 config_group_find_item +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x36fae6cc ore_create +EXPORT_SYMBOL fs/exofs/libore 0x4527e170 ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x4adb7252 ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0x4c620ed0 ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0x5240803f ore_read +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xa528830f ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0xb3dfec06 ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0xb9bafcd0 extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0xca94e8bf ore_write +EXPORT_SYMBOL fs/exofs/libore 0xf6deedf2 ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0xf7803bbd ore_remove +EXPORT_SYMBOL fs/fscache/fscache 0x041b912a __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x161686ce fscache_object_destroy +EXPORT_SYMBOL fs/fscache/fscache 0x18410a60 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x1d3bf4c5 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x1e606af9 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x20c278f8 __fscache_enable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x2355d3d1 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x2929248b fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x2cf2d6bf __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x2ea14e05 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x31df3f05 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x36ab58eb fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x3f431957 __fscache_disable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x41ea0f6f __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x42fc0164 fscache_mark_page_cached +EXPORT_SYMBOL fs/fscache/fscache 0x45ebab0b __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x46d11d37 __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x4b88b308 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x5e7a71fb __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x68a8b222 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x6add2239 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x78d9555b __fscache_readpages_cancel +EXPORT_SYMBOL fs/fscache/fscache 0x89108aff fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x9067e116 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x9854f4c4 fscache_op_complete +EXPORT_SYMBOL fs/fscache/fscache 0x990a5217 __fscache_check_consistency +EXPORT_SYMBOL fs/fscache/fscache 0x9aab5bc6 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x9c7cc84d fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xa8b365f0 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0xaf6e704f fscache_object_init +EXPORT_SYMBOL fs/fscache/fscache 0xbe14fe9f fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0xbfab8407 __fscache_wait_on_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0xc0f75aea __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xd34594d9 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0xd80cf569 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0xe3145bb9 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xf470f04d __fscache_register_netfs +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xa0f4b528 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0xb25b2957 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0xe13337f0 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x342f3ff9 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x77bed501 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x8e4cc481 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xb2f71e6a qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xe059ea05 qtree_release_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0x41248eaf crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x1097f090 lc_try_lock +EXPORT_SYMBOL lib/lru_cache 0x1611f01c lc_get_cumulative +EXPORT_SYMBOL lib/lru_cache 0x1ae95c1a lc_get +EXPORT_SYMBOL lib/lru_cache 0x22bdae4d lc_committed +EXPORT_SYMBOL lib/lru_cache 0x2324a210 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x245f4bed lc_is_used +EXPORT_SYMBOL lib/lru_cache 0x72f8100b lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x741d6b5d lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x94933238 lc_put +EXPORT_SYMBOL lib/lru_cache 0x9c797a6a lc_destroy +EXPORT_SYMBOL lib/lru_cache 0xa35c2d4d lc_create +EXPORT_SYMBOL lib/lru_cache 0xa8226c6b lc_set +EXPORT_SYMBOL lib/lru_cache 0xc011064b lc_reset +EXPORT_SYMBOL lib/lru_cache 0xcee796cb lc_find +EXPORT_SYMBOL lib/lru_cache 0xd0afa00c lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0xd37ef4a2 lc_del +EXPORT_SYMBOL lib/lru_cache 0xfabb5c85 lc_element_by_index +EXPORT_SYMBOL lib/lz4/lz4_compress 0xcbc5d521 lz4_compress +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x26c3aa22 lz4hc_compress +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/raid6/raid6_pq 0xd9e91f83 raid6_vgfmul +EXPORT_SYMBOL net/802/p8022 0xcef58b9c unregister_8022_client +EXPORT_SYMBOL net/802/p8022 0xe21fc784 register_8022_client +EXPORT_SYMBOL net/802/p8023 0x6b9d76bb destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0xea5b03ea make_8023_client +EXPORT_SYMBOL net/802/psnap 0x1c9cdf49 unregister_snap_client +EXPORT_SYMBOL net/802/psnap 0xbc21533d register_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x0942b7ea p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x109fce3a p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x1f3a472c p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x2956865c p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x2d2d2ce1 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x32258a05 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x326c4bb7 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3a3ad364 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x3c627f24 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x3efadf2b p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x44d2c2c0 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x4685d00b p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x4aa683bc p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x52edbe53 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x5a55b55c p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x5d50e85e p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x5fbe810e p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x60c82ec1 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x656c1d83 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x6d6d014b p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x6e453821 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x72824db9 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x78c82ebe p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x7931334c p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x7f07fc7e p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x8190f0dc v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x87859458 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x8e419484 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x90d660d5 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x94def42c p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0xa2760f55 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0xa74166ba p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xa7af158b p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xa9a0854e p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xb544611e p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xba783856 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xc6b07816 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0xcc8ca77a p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xe41c7153 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xeb1b9e2b v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xf009b03e p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xfbe1310a p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0xfe4857d1 p9_client_mknod_dotl +EXPORT_SYMBOL net/appletalk/appletalk 0x023ff575 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x6a05dbb0 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x900c45f1 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xbb4b71a8 alloc_ltalkdev +EXPORT_SYMBOL net/atm/atm 0x03371ba9 atm_charge +EXPORT_SYMBOL net/atm/atm 0x04a3c202 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x39313b3d vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x62f5b9b0 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x69a3d4b3 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x77cb803a vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x7abd2e4c atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x879e5561 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x91d1f6b1 vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0x93136f41 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0x9655b404 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xb6a9d5df atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xe2cda2a4 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf8d078bd deregister_atm_ioctl +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x2cb0a95c ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x2e8768b0 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x3afee63e ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x4062d324 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x7ab55d29 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x8ae6ad2e ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd3b610b0 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xe8bbc3a9 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xef96f4de ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0xf55897fb ax25_linkfail_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x059a42f7 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x05b84fee hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x073c7d64 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x07d28ce4 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1b131c76 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x21644ac8 bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2a0552f5 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2d2d67e9 bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2ffb9c1b bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x39a20fc7 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3cbb3954 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3d1dc6ff hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x452b6913 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f075ad2 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x515251d2 bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5855cf1f hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x63c09569 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x644bbcfc l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7694c9af bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c640527 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x988434b6 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa4488c02 __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa623469b hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa8e0ba67 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xadb22d3b hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb61a0c3b bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb6cd3dfb bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcdab8707 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd18eedd9 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd21f9c7a __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdfd638b4 l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe156f5ce hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe850e062 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf7e4e316 l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf84ccb39 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfa2d5913 l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfd58adfe hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfde6f72d bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfe3ba173 bt_sock_link +EXPORT_SYMBOL net/bridge/bridge 0xea9926f4 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x1c36a9e3 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x5f85b217 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xea98b536 ebt_register_table +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x33f5ee21 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x38701a7c cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x4ce47465 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0x6a44fc70 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x920b4e15 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x966d7de2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xa3a03c32 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/caif/caif 0xf1fad163 caif_enroll_dev +EXPORT_SYMBOL net/can/can 0x64e12b55 can_proto_register +EXPORT_SYMBOL net/can/can 0x6868f4c5 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x8ecc4810 can_ioctl +EXPORT_SYMBOL net/can/can 0x9ac263b8 can_rx_register +EXPORT_SYMBOL net/can/can 0xae77b027 can_proto_unregister +EXPORT_SYMBOL net/can/can 0xdcf50b19 can_send +EXPORT_SYMBOL net/ceph/libceph 0x00b20eaa osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0b28ff5a ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x0cdc3328 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x0d6f3406 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x0de6c70c ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x13908ef7 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x1475bf0d ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x161364de ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x1796b28f ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1c61cd4b osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x20d151cb ceph_osdc_setup +EXPORT_SYMBOL net/ceph/libceph 0x2435c83a ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x2706aa7f osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x2eeb2a0a ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x2f83aa2d ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x30afc26d osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x33296aad ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0x34a64292 ceph_messenger_init +EXPORT_SYMBOL net/ceph/libceph 0x353dcd9f osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3becac5c ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x3df0ec7c ceph_calc_ceph_pg +EXPORT_SYMBOL net/ceph/libceph 0x3e9125f9 osd_req_op_cls_response_data +EXPORT_SYMBOL net/ceph/libceph 0x3eae5013 ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x3f688151 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x40769f49 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0x41f05608 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0x4205ffd7 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x43efd647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x527c3658 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x59351286 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x5ac54cae ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x68159c64 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x69421c08 osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x6b2e3bcd ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x6c5d5ac1 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x6ef01820 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0x719b4f62 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x722ad255 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x733a18d7 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7a9c9537 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x7ce7a525 ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0x7d1a38bf ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x88cbd0c4 osd_req_op_watch_init +EXPORT_SYMBOL net/ceph/libceph 0x8b16b94f osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0x8c4b2255 ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0x8cbaede0 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0x9379bbdc ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x945a4a04 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x95082558 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x99e36571 ceph_osdc_cleanup +EXPORT_SYMBOL net/ceph/libceph 0x9aa76407 ceph_auth_create_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x9e3bd2da osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0x9ff0208a ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xa13351c4 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xac10bf58 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xae3515ba ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb0934204 ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0xb219ad6c ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb72e863b ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc55de604 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xc6634392 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcee32701 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xd17d2948 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd6716ef4 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0xda1fd150 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xdd3cb4a4 ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0xe178087a ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0xe30ec806 osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0xe69d0e47 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xe758f301 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0xe82c9c32 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0xec4ddb79 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xeccd9336 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xee71c7d1 ceph_auth_update_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xf0a34947 osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xf236e785 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xf8fad98e ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0xfb9b4dc3 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0xfd16c67a ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0xfdc519f1 ceph_osdc_alloc_request +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x1916c429 dccp_syn_ack_timeout +EXPORT_SYMBOL net/ieee802154/ieee802154 0x09231169 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x27b0dc08 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4552d44b wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x52a4d148 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5dd4276f ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x784e34d6 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8acc5a09 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa13aa3cd wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa72ac911 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc1b9e8c1 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc460c776 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd030b8f2 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xeccbbf4c wpan_phy_unregister +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x501287b7 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xc2dc21cd arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xdc26d27e arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x598967ad ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xb588e599 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xe93d9fd7 ipt_do_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x4957e68e xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xbbf5c860 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xbaa331d0 ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xcff77d20 ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x074ad5f9 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x63586079 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xbd955ada ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x3cf9bddf xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0xe861cd15 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x8de59c25 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe06a715e xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x09bdb0df ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x3dcb00e6 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x42aa41ea ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x627b280c ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa586efb7 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xc9c0dfba ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xea109025 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf1a5d828 ircomm_flow_request +EXPORT_SYMBOL net/irda/irda 0x01dbeb0e irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x04e58271 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0ad91b3c irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x0bab6037 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x0d6f1304 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x0f071e57 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x141f91b3 irlap_close +EXPORT_SYMBOL net/irda/irda 0x1b595efc irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x23a2eee7 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x33cbe2c6 proc_irda +EXPORT_SYMBOL net/irda/irda 0x359de411 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x3b0a2ab6 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x3b9bdefe irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x3e838188 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x42237c41 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x428321fa hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x48d17824 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x62acf28c irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x648c7478 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x67fb3c6e irlap_open +EXPORT_SYMBOL net/irda/irda 0x697ee4e7 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x6a466739 iriap_close +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6c6be159 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7d54adaf irias_new_object +EXPORT_SYMBOL net/irda/irda 0x7ff509a2 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0x8c15b4b5 iriap_open +EXPORT_SYMBOL net/irda/irda 0x8cd99be0 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9a81fb0b irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x9e326eb3 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xa370c681 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xab657f18 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0xaf16e6c0 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0xb5d676c9 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc0bee29c hashbin_new +EXPORT_SYMBOL net/irda/irda 0xc1b76524 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd811d194 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xd8d5d5a1 irttp_dup +EXPORT_SYMBOL net/irda/irda 0xd9724fc0 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0xddb9429c iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe20cde9c irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf6d927c3 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xfb1eb302 irlmp_connect_request +EXPORT_SYMBOL net/l2tp/l2tp_core 0x36ff9c94 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x0942567a lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x3c24e408 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x90c73b2c lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xa1319cc4 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xa3ffa26c lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xac508bb5 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xb4531a5d lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xd5139411 lapb_register +EXPORT_SYMBOL net/llc/llc 0x1dfaf629 llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0x36c3855b llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x3eca81d5 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0x50bcf9e6 llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x6ef20ae1 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x775911b9 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0xd629316a llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0xf8280f40 llc_mac_hdr_init +EXPORT_SYMBOL net/mac80211/mac80211 0x003636f2 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x009376f2 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x0293d608 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x04569e6b ieee80211_csa_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x0c738868 ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x0f838b62 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x1388d4a0 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0x151193e6 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x1565701d ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0x197f4482 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x1a2dcbf4 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x21a2ae71 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x29b0abac rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x2ce99040 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x35301c93 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x3d5a9f15 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x3d6fa654 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x3ec30b42 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x4929ef06 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x4d0fa60d ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x51878ef0 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x5208570e ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x545951cd ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x5514fbd1 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x60c02074 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x61a16f5b ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x62552d40 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x700e7dbc ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x77abe7de ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x7dcc06ea ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x81b8bbb3 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x8259ddc6 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x834a70f0 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x8c20355f ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x8ddc5ae5 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x9054aee3 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x92b90a77 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x94d3ef33 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x9c1da027 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x9c5e6334 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0x9efafb58 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xa1fc36c4 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa25456e4 ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0xa4b1301a __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xa5d484e1 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xaa1eb9e6 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xaa2f22fe ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xacf6d90d ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xb0bac4f6 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0xb2be7d03 ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0xb87ff867 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xbbeef891 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xbdede5eb __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xc24a8be3 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xc44b0f2c ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xcccafe99 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xd2449ee1 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xd8d0269e ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe026cb17 ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0xe18fdaaa ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xe23c2789 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xe4e62829 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xe51cc300 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0xe9085aed ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xec9af221 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xee13e290 ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0xf395de03 ieee80211_aes_cmac_calculate_k1_k2 +EXPORT_SYMBOL net/mac80211/mac80211 0xf85abe25 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0xfcb1f6d1 ieee80211_find_sta +EXPORT_SYMBOL net/mac802154/mac802154 0x754728d8 ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0xa463d55e ieee802154_free_device +EXPORT_SYMBOL net/mac802154/mac802154 0xbf944348 ieee802154_alloc_device +EXPORT_SYMBOL net/mac802154/mac802154 0xc2ce63c4 ieee802154_register_device +EXPORT_SYMBOL net/mac802154/mac802154 0xf87b901f ieee802154_unregister_device +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1659b132 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2b22a801 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2c27146e ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x49913d1b unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x78a4a8fd unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7d9cb9a6 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8cbd0708 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9b1d248b register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa7ada796 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb05fafe9 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb2bd4db1 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd074214c ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf5597fa6 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfc370eaa ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x2ba33314 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xc36456b9 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xd1c790bb __nf_ct_ext_add_length +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x827cc6a1 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x42177508 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/nf_nat 0x2cf99320 nf_xfrm_me_harder +EXPORT_SYMBOL net/netfilter/nf_nat 0x5bffd43f nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x8ac07d58 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0xb46b3862 nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0xd7b5e96a nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0xdac12992 nf_nat_used_tuple +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x1bcaf20f xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x2977bb99 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x5b6c384d xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x63660ca7 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x8240b1d1 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x959c11c0 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xa26c9c5f xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xb651cdf9 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xc5cc8bc1 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xec9de776 xt_register_match +EXPORT_SYMBOL net/nfc/hci/hci 0x0ab6ced4 nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x3028a31c nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0x33530c1b nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0x43028a27 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x5a6dfae5 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x6397ea3c nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x75910d70 nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0x77472a92 nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x7cd4fd7d nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0x82897ca7 nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x898fc7bc nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0x8d85b23b nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0xb867af6f nfc_hci_send_response +EXPORT_SYMBOL net/nfc/hci/hci 0xbca0b4fd nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xc3469cd7 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0xc6d96e63 nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0xdf2f5144 nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0xe01db7cf nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0xe73efa55 nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0xf93adf73 nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/nci/nci 0x17dba511 nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x1ec94ea6 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0x8020a80b nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xd304d0da nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0xec0fda5c nci_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x02ea7f6b nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0x230e065f nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0x2be24e79 nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0x2f5976d7 nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0x3cd3c17d nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0x41957366 nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x44f4b5e8 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x5e2b7732 nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0x64659814 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x67007865 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x6bc5e9f2 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0x75839457 nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x782a0517 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x7a588567 nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0x8e56f3bc nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x90f87426 nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0xa1922fe8 nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0xbf626a02 nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0xdb40b76f nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0xe3d7a153 nfc_add_se +EXPORT_SYMBOL net/nfc/nfc_digital 0x2b6cc3b4 nfc_digital_unregister_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xa501a593 nfc_digital_free_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xd7c76143 nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xde222e6d nfc_digital_register_device +EXPORT_SYMBOL net/phonet/phonet 0x3b743a58 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x726815c5 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x7f7f248b pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x8deda9e0 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x9c34c6f8 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xb3ff155d pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xb91e7fe2 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xf2fe90e0 pn_skb_send +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1d2d3d5d rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x213357c8 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2d597874 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4081e87a rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x46558e36 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5a9fb761 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x73050ec2 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8a3e1f1e rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x94470db7 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa68ad881 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb1bf547f rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xca470f76 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd8c353d8 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd9c7172b rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe44e343f rxrpc_get_server_data_key +EXPORT_SYMBOL net/sctp/sctp 0x8572c40c sctp_do_peeloff +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x8f901e7d gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf8be5a07 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xfe92717e gss_mech_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0x23cbeb04 svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0x3b9ae8d1 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0x66e9d602 wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x000e7276 cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x05c95c0a wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0ccca7e9 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x0e2c41b4 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x13ce7d19 cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x197a2570 cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x19e03378 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x1b0882ac wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x1b87b529 cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x1cc3d9f0 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x26e280a7 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x2935d73f cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x29777800 cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x2c5ba70e cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x3247052f cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x368ee6d2 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x406a8302 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x430e2327 cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x49163c17 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x4c3b5878 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x4c40b2fb ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x52583fa3 cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0x52c2c699 cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0x549ae50f ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x5574eef0 cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x5a9987dd cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0x5d2305d0 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x5e2e3cf9 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x61a3c780 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x642a0b0f cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x65043935 cfg80211_inform_bss_width +EXPORT_SYMBOL net/wireless/cfg80211 0x692aa46a cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6af5cc5a cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x6d6cb9ad ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x6dd2836a ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x7c4d07c6 cfg80211_report_obss_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x806e555b cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x8374b745 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x85d51538 cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x86c4b1cc cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x923556c1 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x929266ee __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x98ea38bd cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x9a81ed1e cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x9c020379 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xa074ca7c cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xa1425906 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa1f2827d cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xa5e29300 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xa7a8f0b0 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xbcebed0b wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xc01c591b cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xc15c8611 cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xcb96aa39 cfg80211_roamed_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xcc8a753b cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xccc31182 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xcceaa4d9 cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xcf34b2ab wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0xcf618a57 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0xd61791da cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xd9de955c cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0xdba126c1 reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0xddd96195 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0xdfdb7712 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xe09c5533 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xe0ee295f cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xe100d23c cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0xe70f89b1 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xe96567df cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0xece0704a cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xee42db3c cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xf08d1c25 cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0xf4349c7c cfg80211_inform_bss_width_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xf58d0755 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xf8d1016a cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0xfbddb90a cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xfd546080 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x425878f0 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x4b51688f lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x5842e9e8 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x647c4377 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xa571c484 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe69ad87b lib80211_crypt_info_init +EXPORT_SYMBOL sound/ac97_bus 0x635dfe2f ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3a1d2eb8 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6c48be3a snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x96eb8d97 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x972572c1 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x0b71ceae snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x72df8f7f snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2b51b084 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x350963b4 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7f62d029 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x83914b9a snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x92ee6bb0 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x9e7d3f0f snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbc141dfc snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf2bf1549 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x1424130d snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x0f566493 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x1006a6c7 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x10369402 snd_cards +EXPORT_SYMBOL sound/core/snd 0x134182a0 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x13f0f6b8 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x237d8014 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x292263a6 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x29f11199 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x2a49f7d2 snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x30caf3e0 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4b015768 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x4ec9d502 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x4f2cf343 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x57c3d7e9 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x68aa3cc2 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x6ae1a460 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x6bcaac13 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x6d19e114 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x7634bb12 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x7bbd8209 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x7c171285 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x7dfe2855 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x7e1d1b84 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x810f921d snd_card_create +EXPORT_SYMBOL sound/core/snd 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x82554a2a snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x881df3d9 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x88410ef8 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x90bf56be snd_card_register +EXPORT_SYMBOL sound/core/snd 0x94fc6ea4 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa7e7c3f6 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xa83518db snd_info_register +EXPORT_SYMBOL sound/core/snd 0xafa6c091 snd_card_free +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xbaa1bb13 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0xbcfaf4b1 snd_card_unref +EXPORT_SYMBOL sound/core/snd 0xbfb4d092 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0xc4dff3e6 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xd7c54f49 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0xd8b76557 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xda1976ae snd_jack_new +EXPORT_SYMBOL sound/core/snd 0xdaa4b577 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0xdfc4ddba snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0xe6918956 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0xf1ecb151 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xf1ee8977 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0xf4cbd778 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0xf65b8df4 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd-hwdep 0xfd917743 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x1b65dee5 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x1c799edd snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x20424e2a snd_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x41c3ae74 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xb12a7a4b snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xf7f8888b snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x03086b8e snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x139b63c3 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x197cb91d snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1f4da097 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x2059d91b snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x24ab9bc6 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x2d3a6039 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x2fcb985b snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x33c43c8b snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x5b76a0c8 snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x5bfbbaf3 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6970c5a6 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x6fbdcfa0 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x7408d030 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x7b70694f snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x7fd2d510 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x823647ac snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x8a88a0fb snd_pcm_new_internal +EXPORT_SYMBOL sound/core/snd-pcm 0x8bbbaf3a snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x91a410ec snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x94098ff8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0x97e0e823 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xa2391831 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa9adc229 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xaa3b3ed2 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0xac3cf399 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xada9c5b5 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xadb3633f snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0xade01ccf snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xaf38c247 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xb1df5c87 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xb5634e51 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0xb6fff6b6 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc3b774f7 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xc8c4b2ba snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xcba98db8 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xcbb69b0a snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0xd4d185df snd_pcm_debug_name +EXPORT_SYMBOL sound/core/snd-pcm 0xd4ed82a1 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0xe4d2c83f snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe5819672 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0xe8b547e1 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xeab42e77 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf47c4d7f snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0xf686d56c snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xf71c9069 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL sound/core/snd-rawmidi 0x157a4029 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1893e057 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2a097dc5 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x33b5cc40 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x427d181f snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x472c6a38 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5f64b295 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6437458b snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x765b206c snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x78355fd4 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa0f83b7a snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xaaf8c159 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0xba6058d3 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xbd4b0af1 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdc831e6c snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdc9d85c1 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdd8b7557 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-timer 0x03b33af1 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x0961d3e9 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x3369bfff snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x38a6123e snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x47e2fbdd snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x4bbb7a95 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x4c80f276 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x4fd84025 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x51b49304 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x8325cd39 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x90a5422f snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x9689f934 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0xfea628d1 snd_timer_continue +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x21f315c8 snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x31a2782b snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x3fe113f9 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x50e09ae9 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x6d0c302e snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x753c4fdb snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x92f1999b snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x954d18ac snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb7b98590 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf7a1b954 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x652192c4 snd_opl4_write_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x65b8d5a0 snd_opl4_read +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x69f5634c snd_opl4_read_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0xadd3b185 snd_opl4_write +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0xc400a415 snd_opl4_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0bc8baa8 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1cb2eb45 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x56c1477c snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x73388682 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7b23aea1 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x88f8fa86 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xa485ea67 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe4a1d12b snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xec861db1 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x01856c33 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1724d550 amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1c13055a fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x20254e45 amdtp_syt_intervals +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x211b2bff iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2a5ace5f snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x33629a8d fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x38617169 amdtp_out_stream_set_parameters +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3ce82737 iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x52a8c9c4 amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5b98359d cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5e065ff2 cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x687ccd28 amdtp_out_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6a7851b0 cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x71eeaf94 amdtp_out_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x725a9aba fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7376b045 amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fc11fcd amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x8a37626c fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x8c767796 cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa01cf02a amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xbb1e9842 amdtp_out_stream_pcm_pointer +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd0400cb2 amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd65f8549 amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe415f20b cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xecede13b fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xfd9623ab fw_iso_resources_destroy +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x08b2fc7d snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x49063d57 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x49a219c5 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x86a955e0 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xb05ccbc6 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xe6401079 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x17b5452b snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x3fccffcb snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x441a1aa5 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x836abf02 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x84a83bee snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xcb64f184 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x3cf9eca1 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x3d312e3a snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x51289718 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x6bb9462a snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x2db04365 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xfd84f333 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x21b40512 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xf0d424e0 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xf460c847 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xfae19218 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xfd086700 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x020f360f snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x19d2e0dd snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x43ed7cca snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x92f40702 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xa5c314dc snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0xf759ddcb snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xa2b83acb snd_tea6330t_detect +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xa663c481 snd_tea6330t_update_mixer +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x3b23e917 snd_es1688_mixer +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x78872033 snd_es1688_reset +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x908e048a snd_es1688_create +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x91d0faad snd_es1688_pcm +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xc319373d snd_es1688_mixer_write +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x072a53f8 snd_gf1_i_write8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x0f9d2408 snd_gf1_write_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x10006a6f snd_gf1_translate_freq +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x15b3446f snd_gf1_i_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1c1ce117 snd_gus_interrupt +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x259fe633 snd_gf1_delay +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x274457ea snd_gus_use_dec +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x283dd46d snd_gf1_ctrl_stop +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x2b14dfb8 snd_gf1_dram_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x32b4f909 snd_gf1_write8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x46db8d67 snd_gf1_lvol_to_gvol_raw +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x46e4fa32 snd_gus_use_inc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x4de7c674 snd_gf1_pcm_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x77ea7ff2 snd_gus_dram_read +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x78b0142f snd_gf1_new_mixer +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x7f9380a9 snd_gf1_poke +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x87965fea snd_gf1_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x8c4ca44a snd_gf1_write16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x94e01aed snd_gus_dram_write +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x9c00beca snd_gf1_alloc_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x9c1eb57c snd_gf1_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x9fda9c6c snd_gf1_stop_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xa3ba05a6 snd_gf1_mem_lock +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xab9b7859 snd_gf1_mem_xfree +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xb0bfcf93 snd_gf1_rawmidi_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xba58a70b snd_gf1_i_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc34ce01c snd_gus_create +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc40aedb5 snd_gf1_peek +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc43a5527 snd_gf1_atten_table +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc8cc68f8 snd_gf1_mem_alloc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe69b3165 snd_gf1_free_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xeed8bc49 snd_gus_initialize +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xefae4cca snd_gf1_mem_free +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x07ae6119 snd_msnd_DARQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0e096be3 snd_msnd_init_queue +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x106edb40 snd_msndmix_force_recsrc +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x3a46ffac snd_msnd_send_dsp_cmd +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x54dd106e snd_msndmix_new +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x6d05d1ff snd_msnd_upload_host +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x71e86127 snd_msnd_send_word +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x7473b039 snd_msnd_disable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x75026b24 snd_msndmidi_input_read +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x76efc13d snd_msnd_DAPQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x77fc6ff2 snd_msnd_pcm +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x829bffe4 snd_msnd_dsp_halt +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xc22f280c snd_msndmix_setup +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xfcf07bec snd_msnd_enable_irq +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0x287a3c5d snd_aci_cmd +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0xff803bf7 snd_aci_get_aci +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x0bd9c4b5 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x1a708161 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x242e2217 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4d9081eb snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x67d24836 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x95efce71 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xb497bdec snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xc1084bc6 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xc506d1b1 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe5f9a8c8 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb16-csp 0xd4eaa242 snd_sb_csp_new +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xb986effe snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xbfb976bb snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe0b3f690 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xfb2dd7c7 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x3ae8ce04 snd_sb8dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x71cad0b3 snd_sb8dsp_midi +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0xe3f60dad snd_sb8dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0xfd6f3ba8 snd_sb8dsp_midi_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x19d62d6f snd_emu8000_dma_chan +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x39bf7aa8 snd_emu8000_peek_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x3c113354 snd_emu8000_poke_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x42d3572a snd_emu8000_update_chorus_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x46802f82 snd_emu8000_update_equalizer +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x5652f4ba snd_emu8000_load_reverb_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x93d1d877 snd_emu8000_init_fm +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xbc0aa335 snd_emu8000_update_reverb_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xd3f5c9f8 snd_emu8000_load_chorus_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xe10c9927 snd_emu8000_poke +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xe13bedad snd_emu8000_peek +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x0cae06e3 snd_wss_put_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x171d9199 snd_wss_chip_id +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x252c443e snd_wss_overrange +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x3fc7e7e2 snd_wss_info_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x4de83425 snd_wss_pcm +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x50447254 snd_wss_mce_up +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x70735562 snd_cs4236_ext_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x75bfbfe2 snd_wss_put_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x75dff6c0 snd_wss_mixer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x7b202637 snd_wss_interrupt +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x8ed256c0 snd_wss_mce_down +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x9ea5948a snd_cs4236_ext_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xa73b0fd0 snd_wss_timer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xae663428 snd_wss_get_pcm_ops +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xb4251104 snd_wss_get_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xc1f9518d snd_wss_create +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xc3ed076f snd_wss_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xcd34a805 snd_wss_get_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xe923302c snd_wss_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xf2c642eb snd_wss_info_single +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x285cd8ed snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3c3a456e snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3d83da8f snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x458551e7 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x45b13cd3 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x45cc79b3 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4bbfc7cf snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x56ca8e83 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x74a6211c snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb7632098 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xcb6ea409 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd0bf0f1b snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd1094586 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd8990f13 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe632c0e9 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf4577f6a snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfc69d4a1 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xc53c2999 hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1af6aac5 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x6c013e19 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x866b790f snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x9e3091e9 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb325c2ba snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd01606b3 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd2aa3d50 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe1f8afd2 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe7385ba8 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x148938f9 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xb50871f5 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xb9a67d7d snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x04db4211 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x05b8631b oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x34ceef0f oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4842a441 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5e4ae8ed oxygen_pci_pm +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6dea8c25 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7ce3022f oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x896b6656 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8f05ee98 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa15ce2f4 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc92cc727 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcb469f13 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd15da575 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd1e3ea0e oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd3295327 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xda054c5d oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe8cb9d3a oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xef0de13c oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf7cb9cc1 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xfa3340c7 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x1cd8407c snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x3afb4e8d snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x45763ca7 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x464db840 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xffa79fa4 snd_trident_stop_voice +EXPORT_SYMBOL sound/soundcore 0xe47a52f3 sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x00cb55d3 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x6ba89fcf snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x78f4558c snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x7f82aa5d snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x855c8c9c snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x948119d6 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x0e5213b7 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x12dbc118 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x315db154 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x43c5d929 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x76c7fcf5 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x834537ce __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xd345b661 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf791cd59 snd_util_mem_alloc +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x226eb1fa snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 __symbol_put +EXPORT_SYMBOL vmlinux 0x00000000 current_fs_time +EXPORT_SYMBOL vmlinux 0x00000000 d_tmpfile +EXPORT_SYMBOL vmlinux 0x00000000 do_sync_read +EXPORT_SYMBOL vmlinux 0x00000000 filp_close +EXPORT_SYMBOL vmlinux 0x00000000 finish_open +EXPORT_SYMBOL vmlinux 0x00000000 generic_getxattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_write_sync +EXPORT_SYMBOL vmlinux 0x00000000 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x00000000 in_group_p +EXPORT_SYMBOL vmlinux 0x00000000 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x00000000 iov_shorten +EXPORT_SYMBOL vmlinux 0x00000000 iterate_fd +EXPORT_SYMBOL vmlinux 0x00000000 ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 path_is_under +EXPORT_SYMBOL vmlinux 0x00000000 register_exec_domain +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout +EXPORT_SYMBOL vmlinux 0x00000000 sock_register +EXPORT_SYMBOL vmlinux 0x00000000 sys_close +EXPORT_SYMBOL vmlinux 0x00000000 task_nice +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x00000000 vm_brk +EXPORT_SYMBOL vmlinux 0x0019a4e8 tty_port_open +EXPORT_SYMBOL vmlinux 0x002133e1 __neigh_create +EXPORT_SYMBOL vmlinux 0x002370fe i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x002b6446 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x003558a9 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x0045247c cdev_add +EXPORT_SYMBOL vmlinux 0x004a5a0d scsi_host_put +EXPORT_SYMBOL vmlinux 0x006ee561 vga_switcheroo_get_client_state +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00b32ecd ip_route_input_noref +EXPORT_SYMBOL vmlinux 0x00b6eb56 blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0x00bf9f91 efi +EXPORT_SYMBOL vmlinux 0x00c52430 ida_simple_get +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x0101d5b1 ip_idents_reserve +EXPORT_SYMBOL vmlinux 0x01096836 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01444cd1 idr_replace +EXPORT_SYMBOL vmlinux 0x014d4fa4 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x014e751a dget_parent +EXPORT_SYMBOL vmlinux 0x014f4fea skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x0157887e input_set_keycode +EXPORT_SYMBOL vmlinux 0x016b7ae6 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x01706784 netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0x018ab8f1 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01c9f10b input_release_device +EXPORT_SYMBOL vmlinux 0x02108192 __free_pages +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x021579ab vga_put +EXPORT_SYMBOL vmlinux 0x021b164e blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x025eaa62 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x028080a4 kobject_add +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02972a47 prepare_binprm +EXPORT_SYMBOL vmlinux 0x029f8a20 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02c2b0e1 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x02d82920 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x02ed046a cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02f1cc2f tty_hangup +EXPORT_SYMBOL vmlinux 0x02f1d3ff sock_no_mmap +EXPORT_SYMBOL vmlinux 0x02f22de2 kmalloc_dma_caches +EXPORT_SYMBOL vmlinux 0x0301e981 open_exec +EXPORT_SYMBOL vmlinux 0x0331e8fc sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x033d2c31 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x033dfc61 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x036249de sk_free +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x0385e7f8 proc_mkdir +EXPORT_SYMBOL vmlinux 0x039a6e72 da903x_query_status +EXPORT_SYMBOL vmlinux 0x039c9eda locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x03a4b9a8 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x03b580eb wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03ef23bd skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04022b13 nobh_write_end +EXPORT_SYMBOL vmlinux 0x041cb3cc block_write_begin +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x0429497b from_kgid_munged +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x0457ab18 inet_listen +EXPORT_SYMBOL vmlinux 0x04695e4c seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04d343a4 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04fa8919 softnet_data +EXPORT_SYMBOL vmlinux 0x04fd48fe dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x050877b9 dmi_first_match +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x052cf188 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x05304383 __inode_permission +EXPORT_SYMBOL vmlinux 0x05329feb dquot_enable +EXPORT_SYMBOL vmlinux 0x0537edfd kmap +EXPORT_SYMBOL vmlinux 0x053cde80 dqget +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x05833626 padata_start +EXPORT_SYMBOL vmlinux 0x0593a99b init_timer_key +EXPORT_SYMBOL vmlinux 0x05b4d7d8 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x05b64702 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x05b912f7 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x05c06c79 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x05d1c3b5 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x05d38884 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x05d394b2 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x05d5b723 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x05f6a272 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x0601eb38 seq_vprintf +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x063e3426 km_state_notify +EXPORT_SYMBOL vmlinux 0x066d7681 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x06b07fe5 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x06c0dae5 __kernel_fpu_end +EXPORT_SYMBOL vmlinux 0x06d2f086 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x06e458e0 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x06eaed88 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x0727d85d netif_receive_skb +EXPORT_SYMBOL vmlinux 0x0732ad36 skb_queue_head +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x0740f0f6 send_sig +EXPORT_SYMBOL vmlinux 0x07608604 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a66cf2 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07aa3290 acpi_walk_resource_buffer +EXPORT_SYMBOL vmlinux 0x07abbacd ida_destroy +EXPORT_SYMBOL vmlinux 0x07b0f241 eth_type_trans +EXPORT_SYMBOL vmlinux 0x07bf5e3c kernel_getpeername +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d50a24 csum_partial +EXPORT_SYMBOL vmlinux 0x07d7e769 request_key +EXPORT_SYMBOL vmlinux 0x07db2adb seq_write +EXPORT_SYMBOL vmlinux 0x07de9c42 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x07f7cd1b max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x080024b3 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x081620a4 __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x081bdb42 ata_dev_printk +EXPORT_SYMBOL vmlinux 0x0829ad48 sock_wfree +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083172ab seq_path +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x084ddd35 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x08576a70 register_console +EXPORT_SYMBOL vmlinux 0x0897287b acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x089c85e6 __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x08be047f blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x08bf826c _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x0908fd59 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x091a052a i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x09356dc9 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x096320b6 __bforget +EXPORT_SYMBOL vmlinux 0x096ef0af fget_raw +EXPORT_SYMBOL vmlinux 0x0971b017 ps2_drain +EXPORT_SYMBOL vmlinux 0x097e5ad8 ping_prot +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0992780d efi_enabled +EXPORT_SYMBOL vmlinux 0x0999a8e7 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x09a0578b from_kprojid_munged +EXPORT_SYMBOL vmlinux 0x09a114de pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09d65192 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x09e36ec4 bdi_register +EXPORT_SYMBOL vmlinux 0x09f2a5ed scsi_init_io +EXPORT_SYMBOL vmlinux 0x0a1c9b0f pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a40022f __ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x0a44e45b blk_run_queue_async +EXPORT_SYMBOL vmlinux 0x0a469d23 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0x0a56d356 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x0a9a82d6 key_link +EXPORT_SYMBOL vmlinux 0x0aba8ed6 flush_old_exec +EXPORT_SYMBOL vmlinux 0x0ac525e6 register_sysctl +EXPORT_SYMBOL vmlinux 0x0ac56e11 tty_devnum +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0accf4b7 input_unregister_device +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0adb9ac4 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x0ade8dfd dev_mc_init +EXPORT_SYMBOL vmlinux 0x0aeb8342 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b394213 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x0b4283e2 pci_set_ltr +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b48c680 pnp_is_active +EXPORT_SYMBOL vmlinux 0x0b6972c5 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b803795 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x0b90b49a fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x0b984d71 audit_log +EXPORT_SYMBOL vmlinux 0x0bbc5908 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0beafcde gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x0bf7ca15 ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x0bfe3e41 dev_change_flags +EXPORT_SYMBOL vmlinux 0x0c2b7727 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x0c359119 blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0x0c45fc96 vfs_lstat +EXPORT_SYMBOL vmlinux 0x0c4bf069 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x0c50e510 follow_down +EXPORT_SYMBOL vmlinux 0x0c58a8cd netdev_increment_features +EXPORT_SYMBOL vmlinux 0x0c606dcb pci_map_rom +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c71d020 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c9a2834 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cb40286 dev_trans_start +EXPORT_SYMBOL vmlinux 0x0cc923e7 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x0cd3b3d9 gen10g_config_advert +EXPORT_SYMBOL vmlinux 0x0cd61e05 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x0cdb7d12 __kernel_fpu_begin +EXPORT_SYMBOL vmlinux 0x0ce900af blk_finish_plug +EXPORT_SYMBOL vmlinux 0x0d1fc487 d_make_root +EXPORT_SYMBOL vmlinux 0x0d26e8ee pagecache_write_end +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d4654cf security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x0d53175e napi_get_frags +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d66fb9d dev_get_by_name +EXPORT_SYMBOL vmlinux 0x0d6e1516 revert_creds +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dbf215e inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x0dc1c7e1 km_policy_notify +EXPORT_SYMBOL vmlinux 0x0dd2e701 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x0ddc1d45 blk_mq_insert_request +EXPORT_SYMBOL vmlinux 0x0de22d82 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x0dee6b52 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x0df686ee __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x0df76400 ipmi_smi_watcher_unregister +EXPORT_SYMBOL vmlinux 0x0e1ae725 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x0e3a5c83 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x0e453ad5 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x0e6da44a set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x0e90eb5e tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x0eaf451e hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x0ebdbda0 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x0ecdb1ea acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x0eddabf3 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x0efcbb1b set_current_groups +EXPORT_SYMBOL vmlinux 0x0f362da1 seq_putc +EXPORT_SYMBOL vmlinux 0x0f4c91ed ns_to_timespec +EXPORT_SYMBOL vmlinux 0x0f6f384c pci_get_subsys +EXPORT_SYMBOL vmlinux 0x0f7a1c2b kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0x0f912d18 blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0x0f944807 pci_bus_put +EXPORT_SYMBOL vmlinux 0x0fa32e2f agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x0fa4aa05 netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fd9e3d6 pnp_get_resource +EXPORT_SYMBOL vmlinux 0x0fea2598 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ffe2151 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x102c56de irq_regs +EXPORT_SYMBOL vmlinux 0x103245be mntput +EXPORT_SYMBOL vmlinux 0x106f13ab crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x10a76f08 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x10ab7e05 devm_gpiod_put +EXPORT_SYMBOL vmlinux 0x10ab7e68 down_killable +EXPORT_SYMBOL vmlinux 0x10c0d559 xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0x10c33069 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x10c5f04f dma_supported +EXPORT_SYMBOL vmlinux 0x10e15674 mmc_request_done +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f571b6 tty_kref_put +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11127930 pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x11272774 setattr_copy +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x11b490cf dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x11bf59d3 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0x11c5921c xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x11dd01ad intel_scu_ipc_command +EXPORT_SYMBOL vmlinux 0x11e2ec12 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x11e8137b elevator_exit +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x1218da79 kernel_accept +EXPORT_SYMBOL vmlinux 0x122011fe mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x12264bc1 clear_inode +EXPORT_SYMBOL vmlinux 0x12358ef4 gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0x12358fda ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x123f7054 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x1244e74c drop_nlink +EXPORT_SYMBOL vmlinux 0x12504136 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x128150ee dev_get_nest_level +EXPORT_SYMBOL vmlinux 0x128a5cf9 complete_all +EXPORT_SYMBOL vmlinux 0x129c6d99 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x12a063d7 dquot_resume +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12cb136a gen10g_suspend +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12db5eac agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x12e16e62 d_alloc +EXPORT_SYMBOL vmlinux 0x12e46abd vfs_statfs +EXPORT_SYMBOL vmlinux 0x12f6d0ad blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x12f82644 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x130b54a6 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x13154aaf __f_setown +EXPORT_SYMBOL vmlinux 0x13161f73 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x13307fde vsscanf +EXPORT_SYMBOL vmlinux 0x1348760d ipmi_request_settime +EXPORT_SYMBOL vmlinux 0x1353cf79 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x1362dc0a ppp_register_channel +EXPORT_SYMBOL vmlinux 0x137002ea netdev_lower_dev_get_private_rcu +EXPORT_SYMBOL vmlinux 0x13728150 key_put +EXPORT_SYMBOL vmlinux 0x138e4b26 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x13960a39 __devm_release_region +EXPORT_SYMBOL vmlinux 0x1399232b request_key_async +EXPORT_SYMBOL vmlinux 0x13a62752 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x13b18076 account_page_redirty +EXPORT_SYMBOL vmlinux 0x13d006e6 dquot_transfer +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13e89b16 pci_pme_active +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13f90da8 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x1406facb find_vma +EXPORT_SYMBOL vmlinux 0x1420b379 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x142931d8 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x142bdc13 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x14398c15 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x146e386b mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0x14732094 set_groups +EXPORT_SYMBOL vmlinux 0x14a78365 x86_hyper +EXPORT_SYMBOL vmlinux 0x14dad657 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x14e075df cdrom_open +EXPORT_SYMBOL vmlinux 0x14e2625f blk_mq_alloc_single_hw_queue +EXPORT_SYMBOL vmlinux 0x14f743d0 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x150389d6 acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0x1506e080 fsnotify_get_group +EXPORT_SYMBOL vmlinux 0x150eafc7 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x1512f49a lro_receive_frags +EXPORT_SYMBOL vmlinux 0x1520ff97 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x15371e8b jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x15396d83 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x153fa7d0 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x15425034 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x1548fe52 noop_qdisc +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x155379d9 dev_mc_add +EXPORT_SYMBOL vmlinux 0x156054e8 tcp_init_sock +EXPORT_SYMBOL vmlinux 0x156762e7 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x156ca3b9 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x156e4a25 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x157368af block_commit_write +EXPORT_SYMBOL vmlinux 0x1573814a gen_new_estimator +EXPORT_SYMBOL vmlinux 0x15a9b5ca sock_rfree +EXPORT_SYMBOL vmlinux 0x15af48cc release_sock +EXPORT_SYMBOL vmlinux 0x15d586bd netlink_ack +EXPORT_SYMBOL vmlinux 0x15dd4fc4 agp_free_memory +EXPORT_SYMBOL vmlinux 0x15e9136e cdev_alloc +EXPORT_SYMBOL vmlinux 0x15ee522f mnt_unpin +EXPORT_SYMBOL vmlinux 0x15f571ec blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x163f51cb unregister_qdisc +EXPORT_SYMBOL vmlinux 0x164cbc7a lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0x1651097e textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x165e9320 ata_link_printk +EXPORT_SYMBOL vmlinux 0x166e4217 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x168f1082 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x16ad132a vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0x16c7fa68 from_kgid +EXPORT_SYMBOL vmlinux 0x16d9f5c5 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL vmlinux 0x16ea5d9f lockref_get +EXPORT_SYMBOL vmlinux 0x17014564 __scm_send +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x17112bc2 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x175b7b30 tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0x177479e2 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x17771cc7 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x1787210c jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x1790d76b _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x1791ebde get_task_io_context +EXPORT_SYMBOL vmlinux 0x17b1125d gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x17b39e32 nonseekable_open +EXPORT_SYMBOL vmlinux 0x17b51e01 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x17b9c34a get_disk +EXPORT_SYMBOL vmlinux 0x17d489e6 default_qdisc_ops +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x17f3f5b7 lockref_get_not_zero +EXPORT_SYMBOL vmlinux 0x17f5c28e i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x17fa81cd __idr_get_new_above +EXPORT_SYMBOL vmlinux 0x17fde8d3 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x181b0411 sg_miter_stop +EXPORT_SYMBOL vmlinux 0x1826f089 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x1829838f i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x1847e97e init_special_inode +EXPORT_SYMBOL vmlinux 0x18484a26 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x185e209b mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x186a4f1c padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x186ad1ae sock_wmalloc +EXPORT_SYMBOL vmlinux 0x1885547c input_register_device +EXPORT_SYMBOL vmlinux 0x188a3dfb timespec_trunc +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x189eb825 cdev_del +EXPORT_SYMBOL vmlinux 0x18a4714b sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x18c4e404 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x18d96501 atomic64_dec_if_positive_cx8 +EXPORT_SYMBOL vmlinux 0x18e1b8d3 blk_init_tags +EXPORT_SYMBOL vmlinux 0x18f4362a tcp_prot +EXPORT_SYMBOL vmlinux 0x1937d8a8 free_buffer_head +EXPORT_SYMBOL vmlinux 0x193b338d i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x1946fbeb unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x194eef5d dev_add_offload +EXPORT_SYMBOL vmlinux 0x1961342a twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x19708071 devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0x19787cd6 framebuffer_release +EXPORT_SYMBOL vmlinux 0x1996c1ab security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19a9e62b complete +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19cab94d i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a4fea3f lockref_mark_dead +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a65619b abort_creds +EXPORT_SYMBOL vmlinux 0x1a9c5fea blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x1a9efa52 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL vmlinux 0x1acc9e3c n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae14ef5 _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x1ae5ce9c end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b0ac272 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x1b1e1088 sg_nents +EXPORT_SYMBOL vmlinux 0x1b54119e pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0x1b570d23 acpi_warning +EXPORT_SYMBOL vmlinux 0x1b5e96e5 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6e6822 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x1b82fefa md_unplug +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9a3e28 set_pages_nx +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb288d4 elevator_alloc +EXPORT_SYMBOL vmlinux 0x1beda9cb blk_rq_init +EXPORT_SYMBOL vmlinux 0x1bf78677 blkdev_put +EXPORT_SYMBOL vmlinux 0x1c42f3eb dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x1c7f62f5 blk_get_request +EXPORT_SYMBOL vmlinux 0x1c805b44 fasync_helper +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1cabba72 nla_append +EXPORT_SYMBOL vmlinux 0x1cc2884d __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x1cc57c1c is_bad_inode +EXPORT_SYMBOL vmlinux 0x1cd478a2 input_register_handle +EXPORT_SYMBOL vmlinux 0x1d461432 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x1d612cbf kill_pid +EXPORT_SYMBOL vmlinux 0x1d73bbd7 __bio_clone +EXPORT_SYMBOL vmlinux 0x1d9a686d vfs_link +EXPORT_SYMBOL vmlinux 0x1db02637 tty_port_put +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de74f72 acpi_execute_simple_method +EXPORT_SYMBOL vmlinux 0x1e047854 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e272b8f revalidate_disk +EXPORT_SYMBOL vmlinux 0x1e4389df __napi_complete +EXPORT_SYMBOL vmlinux 0x1e4a400d arp_create +EXPORT_SYMBOL vmlinux 0x1e514989 icmpv6_send +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e73f472 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x1e917523 phy_device_register +EXPORT_SYMBOL vmlinux 0x1e945e7a blk_end_request +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea617af mount_pseudo +EXPORT_SYMBOL vmlinux 0x1ebcbbc8 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x1ec1fe18 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x1ec3bed9 hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x1ec4eb34 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x1ee0c135 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x1f1df270 eisa_driver_register +EXPORT_SYMBOL vmlinux 0x1f4c0630 mmc_start_req +EXPORT_SYMBOL vmlinux 0x1f5af2e8 devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x1f70922b devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x1f753169 skb_pad +EXPORT_SYMBOL vmlinux 0x1f7e807f kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x1fb71caa __i2c_transfer +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fc0230f uart_get_divisor +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fe912f1 netdev_alloc_frag +EXPORT_SYMBOL vmlinux 0x1fe9f800 unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x1ff80881 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20072a5a ip6_xmit +EXPORT_SYMBOL vmlinux 0x20092385 acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x20157023 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x20213520 inode_change_ok +EXPORT_SYMBOL vmlinux 0x202944cc input_unregister_handle +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x204f4138 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x2054c947 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x205a9959 page_put_link +EXPORT_SYMBOL vmlinux 0x20627bdf cap_mmap_file +EXPORT_SYMBOL vmlinux 0x206dfe8c ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x2079572d kernel_write +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20b2bb2d param_array_ops +EXPORT_SYMBOL vmlinux 0x20b56cf0 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x20bb0da7 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x20c55ae0 sscanf +EXPORT_SYMBOL vmlinux 0x20c6192f intel_scu_ipc_ioread32 +EXPORT_SYMBOL vmlinux 0x20df30fe irq_to_desc +EXPORT_SYMBOL vmlinux 0x20ed5eda xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x2110d78e netif_carrier_on +EXPORT_SYMBOL vmlinux 0x212a4df0 serio_rescan +EXPORT_SYMBOL vmlinux 0x21407201 dma_ops +EXPORT_SYMBOL vmlinux 0x215e3623 vga_client_register +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x21618b9d kernel_bind +EXPORT_SYMBOL vmlinux 0x21631267 twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0x217dda13 flex_array_get +EXPORT_SYMBOL vmlinux 0x218555ba blk_fetch_request +EXPORT_SYMBOL vmlinux 0x2199337a down_timeout +EXPORT_SYMBOL vmlinux 0x219bbf8b unregister_filesystem +EXPORT_SYMBOL vmlinux 0x219f13e7 set_page_dirty +EXPORT_SYMBOL vmlinux 0x21b8a6c0 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x21bc435d dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x21c160e2 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x21d468a3 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0x21d485de simple_link +EXPORT_SYMBOL vmlinux 0x21d5e9fb tty_port_init +EXPORT_SYMBOL vmlinux 0x21dd7fc5 thaw_super +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21fb443e _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x21fc424d pci_request_regions +EXPORT_SYMBOL vmlinux 0x22079e57 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x222736bf pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x22308efe elv_register_queue +EXPORT_SYMBOL vmlinux 0x22386423 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x224bb977 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x225277f4 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x2256fafa div64_u64_rem +EXPORT_SYMBOL vmlinux 0x226324de scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x227a7304 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x22849cdb tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x22900b95 vfs_getattr +EXPORT_SYMBOL vmlinux 0x22956eee tty_port_close_start +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22b34a18 key_invalidate +EXPORT_SYMBOL vmlinux 0x22bd2cc2 mntget +EXPORT_SYMBOL vmlinux 0x22da2773 intel_gmch_probe +EXPORT_SYMBOL vmlinux 0x22eb6696 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x231f8e93 thaw_bdev +EXPORT_SYMBOL vmlinux 0x23245ed8 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x232d0bbe register_nls +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x238bb31e netdev_all_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0x2390e5fb kfree_put_link +EXPORT_SYMBOL vmlinux 0x23a28c0f tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23b0003e do_sync_write +EXPORT_SYMBOL vmlinux 0x23b8933c abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23fb76d6 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x2414bd43 padata_stop +EXPORT_SYMBOL vmlinux 0x24212d86 __frontswap_invalidate_page +EXPORT_SYMBOL vmlinux 0x24253472 sock_wake_async +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x244c8fa3 netif_napi_add +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x24617f79 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x2474cef9 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x2476a0de sk_net_capable +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x2490a4cc ida_remove +EXPORT_SYMBOL vmlinux 0x24980bc3 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0x24a0656b mount_bdev +EXPORT_SYMBOL vmlinux 0x24a6f294 jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0x24bbd976 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x24c07211 clear_nlink +EXPORT_SYMBOL vmlinux 0x24c45ee3 read_code +EXPORT_SYMBOL vmlinux 0x24cbd310 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x24d7b4eb cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x24f169fc down_read_trylock +EXPORT_SYMBOL vmlinux 0x24f200a9 dev_get_flags +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x2518dd8c tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x251acd88 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x25245c51 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x252dc848 sock_no_connect +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x25974ce3 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x25b75170 neigh_lookup +EXPORT_SYMBOL vmlinux 0x25bd2c58 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25cd8bf7 generic_read_dir +EXPORT_SYMBOL vmlinux 0x25d6f3e0 input_register_handler +EXPORT_SYMBOL vmlinux 0x25df065b cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x26071417 mdiobus_register +EXPORT_SYMBOL vmlinux 0x261c05d7 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x2642039f netdev_features_change +EXPORT_SYMBOL vmlinux 0x26454844 mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x264f6b3c simple_empty +EXPORT_SYMBOL vmlinux 0x2650d835 sysctl_ip_early_demux +EXPORT_SYMBOL vmlinux 0x2657642c tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x2667f13f tcp_read_sock +EXPORT_SYMBOL vmlinux 0x2680b143 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x2683e4bd __cleancache_invalidate_page +EXPORT_SYMBOL vmlinux 0x26852f8e ida_simple_remove +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x2695f96e phy_drivers_register +EXPORT_SYMBOL vmlinux 0x26a41e99 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x26af32e7 first_ec +EXPORT_SYMBOL vmlinux 0x26b69bde netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26e1ea85 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f0453a blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x27504ad1 input_set_capability +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27abef4b secpath_dup +EXPORT_SYMBOL vmlinux 0x27ae7d0c ec_transaction +EXPORT_SYMBOL vmlinux 0x27b7c2b8 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x27ba25a8 inet_put_port +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27ed5f7d fb_get_mode +EXPORT_SYMBOL vmlinux 0x27fa3480 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x2808db4d inet_recvmsg +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x282a03a4 from_kuid_munged +EXPORT_SYMBOL vmlinux 0x2867edef sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x286a58c8 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x28860c25 arp_find +EXPORT_SYMBOL vmlinux 0x2892a887 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28a784ed genphy_resume +EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end +EXPORT_SYMBOL vmlinux 0x29210716 pcie_get_mps +EXPORT_SYMBOL vmlinux 0x29268592 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x295561f0 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x29ba8158 generic_write_end +EXPORT_SYMBOL vmlinux 0x29e0788f ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x29e276a2 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x29fdb687 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x29fdda53 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x2a013c22 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x2a0dbcbb clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x2a163588 md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a5def2f intel_scu_ipc_iowrite32 +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2a875b62 module_put +EXPORT_SYMBOL vmlinux 0x2a8d5fb9 __pagevec_release +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aad4c19 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x2ab328a5 gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0x2acf0feb vfs_fstat +EXPORT_SYMBOL vmlinux 0x2acf9c4b skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x2ae5fbe0 pci_save_state +EXPORT_SYMBOL vmlinux 0x2aef5437 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b1d20f8 __cleancache_invalidate_fs +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b43188a elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x2b458f9e remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x2b86482d pipe_to_file +EXPORT_SYMBOL vmlinux 0x2b8e2df1 phy_find_first +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bc79825 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset +EXPORT_SYMBOL vmlinux 0x2bdbf95b mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x2bf8d577 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c14323a kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x2c1457a2 d_instantiate_no_diralias +EXPORT_SYMBOL vmlinux 0x2c1bc079 nf_reinject +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c68e0e4 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x2c7d6d1d dm_put_device +EXPORT_SYMBOL vmlinux 0x2c900d91 cpufreq_put_global_kobject +EXPORT_SYMBOL vmlinux 0x2ca319a6 wrmsrl_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x2cc2dc76 scsi_host_get +EXPORT_SYMBOL vmlinux 0x2cf69882 inet_bind +EXPORT_SYMBOL vmlinux 0x2cf9152c eth_header +EXPORT_SYMBOL vmlinux 0x2d03c10d posix_acl_create +EXPORT_SYMBOL vmlinux 0x2d054f05 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d144e21 rdmsrl_on_cpu +EXPORT_SYMBOL vmlinux 0x2d17eab4 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x2d1a811b pci_clear_master +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d3236f3 ps2_init +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask +EXPORT_SYMBOL vmlinux 0x2d3ce7e2 netdev_notice +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2daaaba9 param_get_byte +EXPORT_SYMBOL vmlinux 0x2dbdeaf4 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2ddbc74f netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x2deda4a1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2df49647 irq_set_chip +EXPORT_SYMBOL vmlinux 0x2dfb2d63 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x2e0a22da __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e6c3a68 free_netdev +EXPORT_SYMBOL vmlinux 0x2e713b1a idr_init +EXPORT_SYMBOL vmlinux 0x2ea6bf37 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x2eaca73f jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x2ec3fcfb put_disk +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ed0254f dev_emerg +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2efe7dbb iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f0e7278 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x2f160232 __nlmsg_put +EXPORT_SYMBOL vmlinux 0x2f2957ae netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0x2f384db3 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x2f48a405 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x2f521048 amd_northbridges +EXPORT_SYMBOL vmlinux 0x2f53da89 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x2f54a77c blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x2f803310 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fd618d9 loop_backing_file +EXPORT_SYMBOL vmlinux 0x2fda78fc inet_add_protocol +EXPORT_SYMBOL vmlinux 0x2fdbf31c xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x2fdf3a00 security_inode_readlink +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2fec0d4c kobject_get +EXPORT_SYMBOL vmlinux 0x2ff35ae8 xfrm_input +EXPORT_SYMBOL vmlinux 0x30076d15 netif_rx +EXPORT_SYMBOL vmlinux 0x3007c9db udp_sendmsg +EXPORT_SYMBOL vmlinux 0x300890e9 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x300c46ce neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x3043a73d blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x306192fa scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x308a7f57 mmc_free_host +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30af0b6b scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x30b8ed58 led_set_brightness +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30cfd654 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x30e16027 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x30e54664 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30ff9214 sock_update_classid +EXPORT_SYMBOL vmlinux 0x3102d70b frontswap_curr_pages +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31113b44 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x312824e0 hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x3140637a fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x31780ff4 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x31886c0e sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x318cadb1 reciprocal_value +EXPORT_SYMBOL vmlinux 0x318dd497 dev_change_carrier +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x319be88b keyring_alloc +EXPORT_SYMBOL vmlinux 0x31b5eea5 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x31bffa50 inet6_protos +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31f0bb78 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x31f54630 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x3202435a wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x322f48d4 abx500_dump_all_banks +EXPORT_SYMBOL vmlinux 0x32375e89 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x323c3799 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x32556605 pci_request_region +EXPORT_SYMBOL vmlinux 0x326425ca pci_unmap_biosrom +EXPORT_SYMBOL vmlinux 0x327ab67a scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x32a3b167 always_delete_dentry +EXPORT_SYMBOL vmlinux 0x32b75ef9 __lock_buffer +EXPORT_SYMBOL vmlinux 0x32baaf11 dev_uc_init +EXPORT_SYMBOL vmlinux 0x32cea339 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x32d016c0 pci_scan_bus +EXPORT_SYMBOL vmlinux 0x32e70890 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x32eeaded _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x330320d4 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0x3343585d xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x3350a9b6 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x335338d2 serio_close +EXPORT_SYMBOL vmlinux 0x3355ba63 pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0x335ad869 generic_setxattr +EXPORT_SYMBOL vmlinux 0x337cce46 put_cmsg +EXPORT_SYMBOL vmlinux 0x3387c274 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x3390b628 input_event +EXPORT_SYMBOL vmlinux 0x33a08349 inet6_release +EXPORT_SYMBOL vmlinux 0x33ad1452 eisa_driver_unregister +EXPORT_SYMBOL vmlinux 0x33ba5cd4 param_ops_bool +EXPORT_SYMBOL vmlinux 0x33bf7a8a generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x33c7435c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33e8f07e pagevec_lookup +EXPORT_SYMBOL vmlinux 0x33ebcd94 genphy_read_status +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x34184afe current_kernel_time +EXPORT_SYMBOL vmlinux 0x341f631e load_nls_default +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x3437d4a9 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x344d3a23 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x344e03eb blk_start_queue +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x347eb9bd param_set_bool +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34bc9174 __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x34bca80f zerocopy_sg_from_iovec +EXPORT_SYMBOL vmlinux 0x34c5bf0f xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x34d100cd cont_write_begin +EXPORT_SYMBOL vmlinux 0x34e54e30 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x35064385 udp6_csum_init +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x351e0e18 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0x353e21e3 acpi_bios_warning +EXPORT_SYMBOL vmlinux 0x358c3877 blk_mq_init_commands +EXPORT_SYMBOL vmlinux 0x35a0c1f2 pci_disable_ltr +EXPORT_SYMBOL vmlinux 0x35d19777 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0x35d640df __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x35ed7513 pci_iounmap +EXPORT_SYMBOL vmlinux 0x3608b512 dm_io +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x360b8d16 x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x3670beb3 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x367c5531 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x368f7f0a devm_gpio_request_one +EXPORT_SYMBOL vmlinux 0x369c1021 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x36aad357 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x36b7e5c5 ipv4_specific +EXPORT_SYMBOL vmlinux 0x36bd681b groups_alloc +EXPORT_SYMBOL vmlinux 0x36c6af51 intel_scu_ipc_iowrite8 +EXPORT_SYMBOL vmlinux 0x36cadd20 fs_bio_set +EXPORT_SYMBOL vmlinux 0x36d45d84 pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0x36df6e9a md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36e5079f skb_trim +EXPORT_SYMBOL vmlinux 0x36ecd6e1 idr_remove +EXPORT_SYMBOL vmlinux 0x36f83be2 pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0x371b426c vfs_mkdir +EXPORT_SYMBOL vmlinux 0x371d8644 cdev_init +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x37581449 dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0x377b9a18 ata_print_version +EXPORT_SYMBOL vmlinux 0x37805853 inet_sendpage +EXPORT_SYMBOL vmlinux 0x3794c320 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37d81ac1 clk_add_alias +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x38099e13 wrmsrl_on_cpu +EXPORT_SYMBOL vmlinux 0x380d56fe netpoll_setup +EXPORT_SYMBOL vmlinux 0x381144a9 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x381ccc13 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x38440389 blk_get_queue +EXPORT_SYMBOL vmlinux 0x3846e6e8 get_tz_trend +EXPORT_SYMBOL vmlinux 0x384d9443 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x387b5955 register_quota_format +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x388799f6 unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a91e9c set_anon_super +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38bccb1d padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x38ff95a4 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x39005fe4 mmc_get_card +EXPORT_SYMBOL vmlinux 0x390cfda2 phy_device_create +EXPORT_SYMBOL vmlinux 0x39192e0a ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x392813cd security_mmap_file +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x393a6e5f kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x3981beae get_user_pages +EXPORT_SYMBOL vmlinux 0x39908f4d scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x39a055f3 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x39a6cd31 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x39b8945e blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x39bb6300 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x39dc7a62 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x39df0a24 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x39f50bc6 padata_do_parallel +EXPORT_SYMBOL vmlinux 0x3a013b7d remove_wait_queue +EXPORT_SYMBOL vmlinux 0x3a0583ba __skb_gso_segment +EXPORT_SYMBOL vmlinux 0x3a0700d2 blk_run_queue +EXPORT_SYMBOL vmlinux 0x3a08475f platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x3a12a6cf __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x3a2c94a2 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x3a32839e intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x3a33058f pci_select_bars +EXPORT_SYMBOL vmlinux 0x3a3ce935 deactivate_super +EXPORT_SYMBOL vmlinux 0x3a6cfa11 dquot_release +EXPORT_SYMBOL vmlinux 0x3a6dabfe vfs_read +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3a9fba3d ppp_channel_index +EXPORT_SYMBOL vmlinux 0x3aaa4e9b spi_attach_transport +EXPORT_SYMBOL vmlinux 0x3ad5d146 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x3b0a8a5c blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x3b192859 inode_reclaim_rsv_space +EXPORT_SYMBOL vmlinux 0x3b1a2e3a textsearch_prepare +EXPORT_SYMBOL vmlinux 0x3b201620 machine_real_restart +EXPORT_SYMBOL vmlinux 0x3b3f1243 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x3b4b9f54 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x3b5cd199 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x3b61d86d mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x3b778c02 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x3b7b44ab __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x3b868125 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3be2a7df pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x3bef03b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x3bfa52d5 frontswap_register_ops +EXPORT_SYMBOL vmlinux 0x3c0c343f __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x3c0e28ef vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x3c0ef929 ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0x3c27427b nf_hook_slow +EXPORT_SYMBOL vmlinux 0x3c49d9a6 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0x3c6c8738 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb3931b sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x3cb538c5 pnp_device_attach +EXPORT_SYMBOL vmlinux 0x3cc3bdc2 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0x3cc563f5 sock_no_bind +EXPORT_SYMBOL vmlinux 0x3cd3875e mdiobus_write +EXPORT_SYMBOL vmlinux 0x3cd5216e phy_device_free +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3ced5f70 netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0x3cef1d5e set_nlink +EXPORT_SYMBOL vmlinux 0x3cfbf19a dma_set_mask +EXPORT_SYMBOL vmlinux 0x3cfcab45 ip6_expire_frag_queue +EXPORT_SYMBOL vmlinux 0x3d00d2a8 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0x3d1ad6a3 check_disk_change +EXPORT_SYMBOL vmlinux 0x3d262089 scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x3d2ba378 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x3d36fd5b gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x3d465f99 dqput +EXPORT_SYMBOL vmlinux 0x3d5d619e inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d8b23d0 bio_copy_user +EXPORT_SYMBOL vmlinux 0x3d9ca125 blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3db06f14 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x3dbe911b kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x3dc72bca read_cache_pages +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3ded4200 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3dfdfdd6 dev_printk +EXPORT_SYMBOL vmlinux 0x3dff3966 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x3e0d3f3f dev_queue_xmit_accel +EXPORT_SYMBOL vmlinux 0x3e19ca71 d_drop +EXPORT_SYMBOL vmlinux 0x3e25964d elv_rb_del +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e397320 __nla_put +EXPORT_SYMBOL vmlinux 0x3e3fa615 fb_set_var +EXPORT_SYMBOL vmlinux 0x3e5183df security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x3e62990e i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x3e6bf207 dma_common_mmap +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3eab5327 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x3ec41d04 bio_init +EXPORT_SYMBOL vmlinux 0x3ed104dc serio_interrupt +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee3580e blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0x3ef78d80 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x3efcb4d7 vga_switcheroo_fini_domain_pm_ops +EXPORT_SYMBOL vmlinux 0x3eff3835 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x3eff5ac2 intel_scu_ipc_writev +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f29ef20 follow_down_one +EXPORT_SYMBOL vmlinux 0x3f340da7 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f4cd56a register_netdev +EXPORT_SYMBOL vmlinux 0x3f6ee37d scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x3f982ae9 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x3f9f868f __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x3f9f8ff4 genphy_setup_forced +EXPORT_SYMBOL vmlinux 0x3fa58ef8 wait_for_completion +EXPORT_SYMBOL vmlinux 0x3fc77aed ida_pre_get +EXPORT_SYMBOL vmlinux 0x3fd28096 idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x400a233d ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x4046aead i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x406c6ede __serio_register_port +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a2d1dd dm_table_get_size +EXPORT_SYMBOL vmlinux 0x40a90810 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40c01859 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x40c1a3e2 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40df8e61 cpu_info +EXPORT_SYMBOL vmlinux 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL vmlinux 0x411f1968 gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0x4128797a skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x4136ef77 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x413a36f9 register_filesystem +EXPORT_SYMBOL vmlinux 0x413e0b80 inet_del_offload +EXPORT_SYMBOL vmlinux 0x41420235 pnp_find_dev +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x41513eed filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x415df2a3 dquot_operations +EXPORT_SYMBOL vmlinux 0x417cf566 unlock_buffer +EXPORT_SYMBOL vmlinux 0x417fc54c input_grab_device +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41b15f76 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x41b5ae38 fbcon_rotate_ccw +EXPORT_SYMBOL vmlinux 0x41d6cb07 wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x41e3c43b gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x41eba4b7 blk_queue_max_write_same_sectors +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42339709 follow_pfn +EXPORT_SYMBOL vmlinux 0x42350e8d ucs2_strlen +EXPORT_SYMBOL vmlinux 0x423b776a ipmi_create_user +EXPORT_SYMBOL vmlinux 0x4244e322 phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x42475fb4 iget_failed +EXPORT_SYMBOL vmlinux 0x424e997c done_path_create +EXPORT_SYMBOL vmlinux 0x4256d2f0 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x426b5ec4 km_new_mapping +EXPORT_SYMBOL vmlinux 0x427ccffb udp_disconnect +EXPORT_SYMBOL vmlinux 0x4284e3e6 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x42865cf3 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a1b208 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x42a42131 drop_super +EXPORT_SYMBOL vmlinux 0x42aaf291 __memcg_kmem_get_cache +EXPORT_SYMBOL vmlinux 0x42b31f78 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x4301fd38 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x431d4001 __seq_open_private +EXPORT_SYMBOL vmlinux 0x4329c81a eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0x433a7b11 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x4367e360 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x438f28e2 inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0x439cb751 pv_lock_ops +EXPORT_SYMBOL vmlinux 0x43a6375e vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x43ca39b7 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x440af04d pci_enable_ltr +EXPORT_SYMBOL vmlinux 0x4411c503 prandom_seed +EXPORT_SYMBOL vmlinux 0x442305f1 dquot_alloc +EXPORT_SYMBOL vmlinux 0x44254c6c init_task +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x44438b96 hex2bin +EXPORT_SYMBOL vmlinux 0x4447a222 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x4457059b mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x44639d10 update_time +EXPORT_SYMBOL vmlinux 0x4464f08a inet6_bind +EXPORT_SYMBOL vmlinux 0x448cecf0 finish_no_open +EXPORT_SYMBOL vmlinux 0x4491f4f8 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x4495ed1c skb_checksum +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44c87669 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x44cfa797 bio_alloc_pages +EXPORT_SYMBOL vmlinux 0x44e0359a thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f1606d down_trylock +EXPORT_SYMBOL vmlinux 0x44fc76a5 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x45081703 ec_get_handle +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4576af00 account_page_writeback +EXPORT_SYMBOL vmlinux 0x4578661a _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x45a6be13 cpufreq_sysfs_remove_file +EXPORT_SYMBOL vmlinux 0x45a765cf pci_add_resource +EXPORT_SYMBOL vmlinux 0x45b6eea6 single_open +EXPORT_SYMBOL vmlinux 0x45b6fa24 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x45c9e9e9 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x45da8570 simple_release_fs +EXPORT_SYMBOL vmlinux 0x45e0ec51 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x4606fade pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0x460a3e66 devm_request_and_ioremap +EXPORT_SYMBOL vmlinux 0x46188860 generic_file_remap_pages +EXPORT_SYMBOL vmlinux 0x4629334c __preempt_count +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x46433f8d tty_port_close_end +EXPORT_SYMBOL vmlinux 0x464dcd06 inode_init_always +EXPORT_SYMBOL vmlinux 0x4651095b alloc_disk_node +EXPORT_SYMBOL vmlinux 0x4656670a vlan_vid_del +EXPORT_SYMBOL vmlinux 0x465cab34 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x46608fa0 getnstimeofday +EXPORT_SYMBOL vmlinux 0x4668309a dev_uc_del +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x4670f71e generic_block_bmap +EXPORT_SYMBOL vmlinux 0x467e1a58 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x468bcda6 cpumask_set_cpu_local_first +EXPORT_SYMBOL vmlinux 0x46a6bec2 led_blink_set +EXPORT_SYMBOL vmlinux 0x46a877fb scsi_free_command +EXPORT_SYMBOL vmlinux 0x46af25d0 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x46bd3349 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x46cecd3d vfs_open +EXPORT_SYMBOL vmlinux 0x46d70197 skb_flow_dissect +EXPORT_SYMBOL vmlinux 0x46f66260 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x46f6d647 __frontswap_load +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x47416e14 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x4753685f scsi_remove_target +EXPORT_SYMBOL vmlinux 0x47541725 mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x475949cb elv_rb_add +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x478ae293 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x4792c572 down_interruptible +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479783b4 dev_crit +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47a82f19 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x47ae8982 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47bcf84c param_set_ulong +EXPORT_SYMBOL vmlinux 0x47c8baf4 param_ops_uint +EXPORT_SYMBOL vmlinux 0x47cd3958 posix_test_lock +EXPORT_SYMBOL vmlinux 0x47d9c6e4 genl_notify +EXPORT_SYMBOL vmlinux 0x47e25446 gen10g_read_status +EXPORT_SYMBOL vmlinux 0x47f202f4 __frontswap_store +EXPORT_SYMBOL vmlinux 0x47f6b757 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x4800ed07 vga_switcheroo_set_dynamic_switch +EXPORT_SYMBOL vmlinux 0x4801ad1b scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x48034724 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x480b47ae freeze_super +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x482a2a49 param_set_charp +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x486d2f29 dqstats +EXPORT_SYMBOL vmlinux 0x48743571 check_submounts_and_drop +EXPORT_SYMBOL vmlinux 0x487d7c9e acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x488ac817 locks_init_lock +EXPORT_SYMBOL vmlinux 0x48e6bd9e acpi_pm_device_run_wake +EXPORT_SYMBOL vmlinux 0x48f43e26 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x490abea2 skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0x490fe887 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x49173abd tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x491e2a33 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x49213358 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x492457b9 genlmsg_put +EXPORT_SYMBOL vmlinux 0x492620b2 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x49333d00 md_write_end +EXPORT_SYMBOL vmlinux 0x49549dc3 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x495c96f8 posix_acl_init +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x498cd886 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x499bd073 mmc_of_parse +EXPORT_SYMBOL vmlinux 0x499f721d devm_gpiod_get +EXPORT_SYMBOL vmlinux 0x49b0156e __lock_page +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b081e9 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x49b163b8 acpi_bus_scan +EXPORT_SYMBOL vmlinux 0x49bb55e7 sget +EXPORT_SYMBOL vmlinux 0x49f6aade __sock_create +EXPORT_SYMBOL vmlinux 0x49fd7070 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x4a00b549 sock_create_lite +EXPORT_SYMBOL vmlinux 0x4a16fbdc dev_uc_flush +EXPORT_SYMBOL vmlinux 0x4a1d097f pci_enable_device +EXPORT_SYMBOL vmlinux 0x4a27bfac freeze_bdev +EXPORT_SYMBOL vmlinux 0x4a30e26d __destroy_inode +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a42ccb9 devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0x4a4629ae __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x4a4b3079 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x4a641d66 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x4a8ecaf4 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x4a937d8e mnt_pin +EXPORT_SYMBOL vmlinux 0x4ab56775 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4afa0b16 bdi_register_dev +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b01acd0 bdevname +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b162c47 contig_page_data +EXPORT_SYMBOL vmlinux 0x4b1baf68 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x4b1ec3e2 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x4b260470 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b83e0b6 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x4b85f0e2 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x4bb76d1b tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x4bb7b79a __ps2_command +EXPORT_SYMBOL vmlinux 0x4bbc5fed ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x4bc4d5a5 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x4be85a03 memweight +EXPORT_SYMBOL vmlinux 0x4bef67b1 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x4bf7b27d inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0x4c0f1b32 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c146397 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x4c29eb70 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c4cea2a jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x4c62c1e3 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x4c75516b ata_std_end_eh +EXPORT_SYMBOL vmlinux 0x4c75607b iget5_locked +EXPORT_SYMBOL vmlinux 0x4c7dc861 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x4c8e0f8c scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL vmlinux 0x4cadb9ed prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cdb3178 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x4ce320c6 mmc_gpio_free_cd +EXPORT_SYMBOL vmlinux 0x4ce5fb76 blk_put_queue +EXPORT_SYMBOL vmlinux 0x4d0b3e6c blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x4d272372 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x4d32da0e seq_puts +EXPORT_SYMBOL vmlinux 0x4d36c3f8 acpi_pm_device_sleep_state +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d52c990 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x4d547039 bio_reset +EXPORT_SYMBOL vmlinux 0x4d6bb4fb jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x4d83f9a7 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x4d933620 lock_may_read +EXPORT_SYMBOL vmlinux 0x4d934238 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9b1358 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4daa360a acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0x4db3de6a md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x4dbb46ca agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x4dc514c7 kobject_put +EXPORT_SYMBOL vmlinux 0x4dd192ab netpoll_rx_disable +EXPORT_SYMBOL vmlinux 0x4dd21313 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x4ddb75b6 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x4dde39cd dev_open +EXPORT_SYMBOL vmlinux 0x4ddf5109 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x4de34a07 cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4df650ce freezing_slow_path +EXPORT_SYMBOL vmlinux 0x4dfa6b07 ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e5deb8a md_write_start +EXPORT_SYMBOL vmlinux 0x4e64cbe5 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6ac17e pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e7d1c6d writeback_in_progress +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4ea25709 dql_reset +EXPORT_SYMBOL vmlinux 0x4eaafd1c nf_register_hook +EXPORT_SYMBOL vmlinux 0x4eb4008e block_write_end +EXPORT_SYMBOL vmlinux 0x4ecddce2 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x4ed1db22 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x4eed1335 dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0x4f0af684 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f68e5c9 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x4f6b400b _copy_from_user +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f7d1555 __put_cred +EXPORT_SYMBOL vmlinux 0x4f878f87 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user +EXPORT_SYMBOL vmlinux 0x4fa098cb scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x4fb7384d dquot_file_open +EXPORT_SYMBOL vmlinux 0x4fb9b07a skb_make_writable +EXPORT_SYMBOL vmlinux 0x4fcc1d16 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x4fde9d93 rtnl_notify +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4ff960c4 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x50116c66 registered_fb +EXPORT_SYMBOL vmlinux 0x5034ebe1 skb_find_text +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x5062dc20 simple_rmdir +EXPORT_SYMBOL vmlinux 0x5064350d bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x507a0881 pci_platform_rom +EXPORT_SYMBOL vmlinux 0x50842343 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x509b64ea acpi_has_method +EXPORT_SYMBOL vmlinux 0x50a613c3 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x50b4a11c dst_destroy +EXPORT_SYMBOL vmlinux 0x50c4acc9 arp_xmit +EXPORT_SYMBOL vmlinux 0x50d68377 arch_phys_wc_del +EXPORT_SYMBOL vmlinux 0x50eedeb8 printk +EXPORT_SYMBOL vmlinux 0x50efff70 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x511424b7 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0x51146082 skb_tx_error +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5134a864 elv_rb_find +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x5174e737 dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0x51793e7b blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x5186518f profile_pc +EXPORT_SYMBOL vmlinux 0x51938ad2 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x51ba1c36 kmap_atomic +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e6a985 find_or_create_page +EXPORT_SYMBOL vmlinux 0x51ece149 input_open_device +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x51f033fe dev_err +EXPORT_SYMBOL vmlinux 0x51fddd58 commit_creds +EXPORT_SYMBOL vmlinux 0x52006d56 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x5206459c proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x521a5a6d skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x521b36b5 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x52428cc8 parent_mem_cgroup +EXPORT_SYMBOL vmlinux 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL vmlinux 0x525730a8 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x525e026f acpi_os_unmap_generic_address +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5299688f bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x529c23b4 input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0x52a106c4 kill_bdev +EXPORT_SYMBOL vmlinux 0x52d82170 handle_edge_irq +EXPORT_SYMBOL vmlinux 0x530152f0 blk_make_request +EXPORT_SYMBOL vmlinux 0x530b1e4c rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x530d9e3e dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x532b940f skb_dequeue +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x53355396 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x537ef058 register_qdisc +EXPORT_SYMBOL vmlinux 0x5380de5e md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x5383f34b _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x538a86ee vlan_untag +EXPORT_SYMBOL vmlinux 0x53bb01e2 vm_stat +EXPORT_SYMBOL vmlinux 0x53dc2e41 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x53deb79b tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x53e47762 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x53e8e6fc single_open_size +EXPORT_SYMBOL vmlinux 0x53ec3de9 inet_select_addr +EXPORT_SYMBOL vmlinux 0x53f2ef10 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x53f96117 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x53ff73cf pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x5409775b free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x54108844 netif_skb_dev_features +EXPORT_SYMBOL vmlinux 0x5412ab0c nf_getsockopt +EXPORT_SYMBOL vmlinux 0x54152e04 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x5436295a unlink_framebuffer +EXPORT_SYMBOL vmlinux 0x54391164 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x54443f90 ihold +EXPORT_SYMBOL vmlinux 0x544514e2 bdput +EXPORT_SYMBOL vmlinux 0x544b0c11 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x5464538f __idr_remove_all +EXPORT_SYMBOL vmlinux 0x54800b68 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54c1c165 textsearch_register +EXPORT_SYMBOL vmlinux 0x54c94420 blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0x54db39ff bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x54e3cc3b param_get_int +EXPORT_SYMBOL vmlinux 0x54e5ba9f set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54e92b23 kernel_connect +EXPORT_SYMBOL vmlinux 0x54efb5d6 cpu_number +EXPORT_SYMBOL vmlinux 0x5503d3a8 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x552103d8 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x5529d560 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x5539d2de sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x554f321e dev_get_stats +EXPORT_SYMBOL vmlinux 0x5567c227 kernel_cpustat +EXPORT_SYMBOL vmlinux 0x556c2740 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55d54a63 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x55dd3d10 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x55de2e5e sk_filter +EXPORT_SYMBOL vmlinux 0x5608a277 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x561d7c36 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x56258b75 mpage_writepages +EXPORT_SYMBOL vmlinux 0x562878b3 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x5632fa50 mmc_set_blockcount +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x564b8cb6 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x56675a32 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x5676a3e5 intel_scu_ipc_ioread8 +EXPORT_SYMBOL vmlinux 0x568971ff netdev_alert +EXPORT_SYMBOL vmlinux 0x569baf9d tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x569d9930 pci_find_capability +EXPORT_SYMBOL vmlinux 0x569e2cd9 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x56b65abe vfs_mknod +EXPORT_SYMBOL vmlinux 0x56b87d42 mutex_trylock +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56d634c8 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x56d74fa9 blk_complete_request +EXPORT_SYMBOL vmlinux 0x56dbf654 elevator_change +EXPORT_SYMBOL vmlinux 0x56f0231e ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x5705088a __vmalloc +EXPORT_SYMBOL vmlinux 0x570b9a11 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x5728a3e7 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x572c5fd9 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x572df3e6 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57449b25 skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x575af70c on_each_cpu_mask +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x57c8b01b blk_mq_can_queue +EXPORT_SYMBOL vmlinux 0x57dcd1de dquot_initialize +EXPORT_SYMBOL vmlinux 0x581ff04a dump_trace +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x585c43cc __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x586103be acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x586abf97 fbcon_rotate_ud +EXPORT_SYMBOL vmlinux 0x587616f1 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x58925559 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x5892d54c acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x5893aac7 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x58c6990c pci_write_vpd +EXPORT_SYMBOL vmlinux 0x58d35909 vm_mmap +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x592b59af acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x596eddae blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x597bde01 rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0x59a70f5d ip_defrag +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59bda35f gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x59c8a5bd xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x59d8d2c0 jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0x59e8bf55 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x5a00151a skb_pull +EXPORT_SYMBOL vmlinux 0x5a071255 __breadahead +EXPORT_SYMBOL vmlinux 0x5a16a5e4 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x5a2aa62e __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a5536c2 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x5a6e7caf udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x5a7a5ac1 x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0x5a7c3bbd kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0x5a8a8ad0 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x5ab800d3 replace_mount_options +EXPORT_SYMBOL vmlinux 0x5ac21822 irq_stat +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5ad7a70c netlink_broadcast +EXPORT_SYMBOL vmlinux 0x5b07aa6e scsi_add_device +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b271d86 acpi_video_dmi_promote_vendor +EXPORT_SYMBOL vmlinux 0x5b378606 blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0x5b4c6656 __invalidate_device +EXPORT_SYMBOL vmlinux 0x5b8df4e5 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x5bb9acd5 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x5bc3fa4d sock_alloc_file +EXPORT_SYMBOL vmlinux 0x5bc8d583 copy_from_user_overflow +EXPORT_SYMBOL vmlinux 0x5bd032c8 security_path_unlink +EXPORT_SYMBOL vmlinux 0x5bdb88fb kobject_del +EXPORT_SYMBOL vmlinux 0x5be05c7a inode_dio_done +EXPORT_SYMBOL vmlinux 0x5be627ae pipe_lock +EXPORT_SYMBOL vmlinux 0x5be9593c set_pages_uc +EXPORT_SYMBOL vmlinux 0x5bf6b5e2 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0x5c18a681 set_bh_page +EXPORT_SYMBOL vmlinux 0x5c1f1c39 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x5c2109be dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x5c3497ee neigh_update +EXPORT_SYMBOL vmlinux 0x5c3edd59 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x5c4da7e2 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x5c545234 ucs2_strncmp +EXPORT_SYMBOL vmlinux 0x5c586df1 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x5c717a2a nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x5c88c827 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x5c88ef0c phy_register_fixup +EXPORT_SYMBOL vmlinux 0x5c9c86d5 proto_unregister +EXPORT_SYMBOL vmlinux 0x5ca9f6c8 blk_free_tags +EXPORT_SYMBOL vmlinux 0x5cdd93fa blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x5ce1df3b pid_task +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5d000bdf dev_warn +EXPORT_SYMBOL vmlinux 0x5d41c87c param_ops_charp +EXPORT_SYMBOL vmlinux 0x5d550c4d scsi_sd_probe_domain +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5d879960 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x5d915b5a bio_pair_release +EXPORT_SYMBOL vmlinux 0x5d95d9e8 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x5d9b1a7c dcache_readdir +EXPORT_SYMBOL vmlinux 0x5dc38189 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x5dce6b75 complete_and_exit +EXPORT_SYMBOL vmlinux 0x5df6e5d3 qdisc_reset +EXPORT_SYMBOL vmlinux 0x5e0a4543 napi_complete +EXPORT_SYMBOL vmlinux 0x5e116406 pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0x5e32eaf1 tty_check_change +EXPORT_SYMBOL vmlinux 0x5e7135c4 bdget_disk +EXPORT_SYMBOL vmlinux 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ebc6431 d_set_d_op +EXPORT_SYMBOL vmlinux 0x5ecfa248 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5eeed385 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x5ef3a989 kdb_current_task +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f1a4ccf intel_scu_ipc_update_register +EXPORT_SYMBOL vmlinux 0x5f27544a mempool_destroy +EXPORT_SYMBOL vmlinux 0x5f3c8f5c mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x5f4ef32a tty_throttle +EXPORT_SYMBOL vmlinux 0x5f58f676 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x5f658824 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x5f69db85 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x5f77b5ae pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0x5f80ac7a bdi_destroy +EXPORT_SYMBOL vmlinux 0x5f91d470 kill_block_super +EXPORT_SYMBOL vmlinux 0x5faa85a2 tcp_close +EXPORT_SYMBOL vmlinux 0x5fb5407c seq_read +EXPORT_SYMBOL vmlinux 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL vmlinux 0x5fd089f5 kmap_high +EXPORT_SYMBOL vmlinux 0x5fda0227 vfs_stat +EXPORT_SYMBOL vmlinux 0x5fe41fb6 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x60015d0e tcp_poll +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x6022204c blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x6032dbe7 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x603fc9e6 kill_pgrp +EXPORT_SYMBOL vmlinux 0x605dbb89 phy_stop +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x606e435c ipmi_register_smi +EXPORT_SYMBOL vmlinux 0x608903da fsync_bdev +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b2e38a rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x60b7aa42 d_splice_alias +EXPORT_SYMBOL vmlinux 0x60b86f61 sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x60df1e3b posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x61128482 nf_afinfo +EXPORT_SYMBOL vmlinux 0x611597b9 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x614383c0 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0x6148245e d_invalidate +EXPORT_SYMBOL vmlinux 0x614cfefe __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x61538ad0 param_get_charp +EXPORT_SYMBOL vmlinux 0x6153cda2 sock_i_uid +EXPORT_SYMBOL vmlinux 0x61904c2a audit_log_task_info +EXPORT_SYMBOL vmlinux 0x619b187b add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x61b5ade0 down_write +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61e0e72d blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x61e71892 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x621d77a0 sleep_on +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6226b9fa machine_to_phys_mapping +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x622fa02a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x6241a2ab __copy_from_user_ll_nocache +EXPORT_SYMBOL vmlinux 0x624529ba create_syslog_header +EXPORT_SYMBOL vmlinux 0x624ea007 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x626e94fb vfs_llseek +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62822d05 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x62cb4cee interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x62e3306d __bread +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x632d81f0 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x633ef5bd blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x633f413a abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x6344e7b0 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x63582edd pcie_get_minimum_link +EXPORT_SYMBOL vmlinux 0x6367f01c phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x63769a9a dquot_quota_off +EXPORT_SYMBOL vmlinux 0x63908b14 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x6393b630 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x63952cb5 elv_add_request +EXPORT_SYMBOL vmlinux 0x63a01291 acpi_leave_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x63a6bcc9 acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0x63a70f2a pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0x63acecad fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x63ae0138 intel_gtt_get +EXPORT_SYMBOL vmlinux 0x63d9b442 dev_printk_emit +EXPORT_SYMBOL vmlinux 0x63e3cef9 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ed7bae pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x63ffb9aa xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x6428f2b0 scsi_execute_req_flags +EXPORT_SYMBOL vmlinux 0x6439d28d dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x644526b9 pci_choose_state +EXPORT_SYMBOL vmlinux 0x6447996d input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x644a83ca filp_open +EXPORT_SYMBOL vmlinux 0x6459610f ps2_end_command +EXPORT_SYMBOL vmlinux 0x6467a539 redraw_screen +EXPORT_SYMBOL vmlinux 0x6469327a __elv_add_request +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x6478494c iunique +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64a4b84d cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x64c7cc53 netif_device_attach +EXPORT_SYMBOL vmlinux 0x64e59c6e register_cdrom +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x6503c2ab bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x65125138 acpi_check_address_range +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x6517f523 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651f91d7 alloc_disk +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65409013 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x65466ca5 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x65596e86 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x6561f848 backlight_device_register +EXPORT_SYMBOL vmlinux 0x6565d33f scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x657879ce __init_rwsem +EXPORT_SYMBOL vmlinux 0x657a0765 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x6585e310 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x659704a6 nf_log_unset +EXPORT_SYMBOL vmlinux 0x659743e5 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x659ac328 I_BDEV +EXPORT_SYMBOL vmlinux 0x65a295bb atomic64_xchg_cx8 +EXPORT_SYMBOL vmlinux 0x65a5ac0b set_disk_ro +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65eb3e87 jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x65f3ad9a fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x6605f97f flex_array_clear +EXPORT_SYMBOL vmlinux 0x661510fc netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0x661ae6fb genphy_update_link +EXPORT_SYMBOL vmlinux 0x6627cbd9 wake_up_process +EXPORT_SYMBOL vmlinux 0x66355efc vprintk +EXPORT_SYMBOL vmlinux 0x663f7cd0 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0x66551f49 input_close_device +EXPORT_SYMBOL vmlinux 0x6662dafa pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x6678b19a pcibios_set_irq_routing +EXPORT_SYMBOL vmlinux 0x667dddf8 inet6_del_offload +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a67dab flex_array_shrink +EXPORT_SYMBOL vmlinux 0x66c8b825 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x66e7b57a netif_napi_del +EXPORT_SYMBOL vmlinux 0x66e8fd61 ilookup +EXPORT_SYMBOL vmlinux 0x66f0232a scsi_target_resume +EXPORT_SYMBOL vmlinux 0x66f0afe5 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x66f0ef9c genphy_suspend +EXPORT_SYMBOL vmlinux 0x66f11f7d ll_rw_block +EXPORT_SYMBOL vmlinux 0x67273f02 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x675b8f61 param_get_string +EXPORT_SYMBOL vmlinux 0x675e13b7 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x675e537d clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x677b105a tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x67b0c588 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b62c01 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c501d9 set_user_nice +EXPORT_SYMBOL vmlinux 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL vmlinux 0x67dcffb7 lg_lock_init +EXPORT_SYMBOL vmlinux 0x67f0a39f __neigh_event_send +EXPORT_SYMBOL vmlinux 0x67f7403e _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x68260f23 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x6837a104 blk_mq_free_queue +EXPORT_SYMBOL vmlinux 0x68433215 generic_setlease +EXPORT_SYMBOL vmlinux 0x68454389 padata_free +EXPORT_SYMBOL vmlinux 0x68595afb wireless_spy_update +EXPORT_SYMBOL vmlinux 0x685da511 key_validate +EXPORT_SYMBOL vmlinux 0x6867dd65 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x687baa6b inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x688f1a97 netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x689b1b26 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x689fa7da jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x68a3c64f user_path_create +EXPORT_SYMBOL vmlinux 0x68b83ac6 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x68c74a3e acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x68dfc59f __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x68e05d57 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x68e2f221 _raw_spin_unlock +EXPORT_SYMBOL vmlinux 0x68efe63e bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x68f75dd9 crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x691105db __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x691d7137 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x69394394 devm_gpio_request +EXPORT_SYMBOL vmlinux 0x693b0495 phy_get_eee_err +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x69824334 tty_register_driver +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69ac0d12 serio_reconnect +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69c22ed7 sk_common_release +EXPORT_SYMBOL vmlinux 0x69ced7b3 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69d572c1 fget_light +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69ec0297 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a38c00b buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0x6a3cd89a init_net +EXPORT_SYMBOL vmlinux 0x6a48e16b percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x6a54c6ac dma_pool_create +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a5f1552 mpage_writepage +EXPORT_SYMBOL vmlinux 0x6a614912 pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0x6a756c03 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a7892b1 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad85887 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6afde61d do_splice_to +EXPORT_SYMBOL vmlinux 0x6b06fdce delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2d8e81 pci_find_bus +EXPORT_SYMBOL vmlinux 0x6b389424 proc_remove +EXPORT_SYMBOL vmlinux 0x6b835a9e inet_release +EXPORT_SYMBOL vmlinux 0x6b88a69d complete_request_key +EXPORT_SYMBOL vmlinux 0x6ba008a3 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bcae33d xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6beb2078 param_set_copystring +EXPORT_SYMBOL vmlinux 0x6c006802 do_SAK +EXPORT_SYMBOL vmlinux 0x6c159c47 netdev_state_change +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c26b342 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c51a836 sysctl_tcp_notsent_lowat +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c66f9c9 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x6c6fae98 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c934c33 vfs_write +EXPORT_SYMBOL vmlinux 0x6ca4f9f5 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x6ca5b0f8 __net_get_random_once +EXPORT_SYMBOL vmlinux 0x6cd6a682 ftrace_raw_output_prep +EXPORT_SYMBOL vmlinux 0x6cd80ba2 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cf6c342 serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0x6d054dd6 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d1ff08d module_refcount +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d30a898 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8 +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d768a00 call_netdevice_notifiers_info +EXPORT_SYMBOL vmlinux 0x6d8ce55d jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x6d977334 fget +EXPORT_SYMBOL vmlinux 0x6d993131 xfrm_garbage_collect +EXPORT_SYMBOL vmlinux 0x6da8384a pci_enable_msi_range +EXPORT_SYMBOL vmlinux 0x6dafa357 inc_nlink +EXPORT_SYMBOL vmlinux 0x6db53818 ipmi_smi_add_proc_entry +EXPORT_SYMBOL vmlinux 0x6dbd64d3 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x6dd3fd48 sg_miter_start +EXPORT_SYMBOL vmlinux 0x6de3be66 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6def6a70 dm_get_device +EXPORT_SYMBOL vmlinux 0x6e09c25e __sb_start_write +EXPORT_SYMBOL vmlinux 0x6e0d4f94 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x6e10990b block_truncate_page +EXPORT_SYMBOL vmlinux 0x6e3f43d7 tcp_gso_segment +EXPORT_SYMBOL vmlinux 0x6e51ac2e _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x6e65f2dc rtc_lock +EXPORT_SYMBOL vmlinux 0x6e691c0e jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e75e36b pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x6e8c3519 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x6e8f182d netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0x6eb934a8 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x6ebc5149 param_ops_long +EXPORT_SYMBOL vmlinux 0x6ecc5ef2 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x6ed97e11 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x6ef1760f pci_bus_get +EXPORT_SYMBOL vmlinux 0x6f06d9c7 dev_set_group +EXPORT_SYMBOL vmlinux 0x6f11cf1c vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x6f20960a full_name_hash +EXPORT_SYMBOL vmlinux 0x6f4c6b71 lg_local_unlock +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f748292 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x6f7d8c96 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x6fa4be0b kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x6fa778df inet6_register_icmp_sender +EXPORT_SYMBOL vmlinux 0x6fcac05a pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd374c0 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x6fd5119a dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6feff9be invalidate_partition +EXPORT_SYMBOL vmlinux 0x701ce84a blk_integrity_register +EXPORT_SYMBOL vmlinux 0x7023bea8 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x7034cf66 unregister_console +EXPORT_SYMBOL vmlinux 0x703b4352 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x7069c3f1 kthread_stop +EXPORT_SYMBOL vmlinux 0x706c2406 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x707912a7 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x707f43f6 __ctzdi2 +EXPORT_SYMBOL vmlinux 0x709b8d8a filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x70b31cea phy_connect +EXPORT_SYMBOL vmlinux 0x70b72b6c mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x70b99084 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70bff7b2 pnpbios_protocol +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70fd85bb alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x710078de unload_nls +EXPORT_SYMBOL vmlinux 0x7114a71f bit_waitqueue +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x71352608 ip6_route_output +EXPORT_SYMBOL vmlinux 0x716d9f90 md_register_thread +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x7174a7a9 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x71804d8a make_bad_inode +EXPORT_SYMBOL vmlinux 0x71851368 pci_release_region +EXPORT_SYMBOL vmlinux 0x7189380a neigh_for_each +EXPORT_SYMBOL vmlinux 0x719e4eef fput +EXPORT_SYMBOL vmlinux 0x71a29717 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71da28aa abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x71db7a1b ip_setsockopt +EXPORT_SYMBOL vmlinux 0x71deb9c0 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x71e20d2f posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x71eb58b3 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x71f65175 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0x71f74bbf generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x71fa9a20 register_xen_selfballooning +EXPORT_SYMBOL vmlinux 0x721ea65b tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x72250c0b xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x7225bb0a bio_sector_offset +EXPORT_SYMBOL vmlinux 0x722891ea __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x722dca3d _dev_info +EXPORT_SYMBOL vmlinux 0x724108fc directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x72483326 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x725c93f7 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x728161e0 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x728592f2 netdev_crit +EXPORT_SYMBOL vmlinux 0x7286e28c udp_prot +EXPORT_SYMBOL vmlinux 0x728c12cc blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x72ade092 inode_permission +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b46133 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x72b5b2b7 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72ce37d1 sock_update_memcg +EXPORT_SYMBOL vmlinux 0x72d58de9 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x72df2f2a up_read +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72ec1f55 generic_permission +EXPORT_SYMBOL vmlinux 0x72f3aa32 acpi_get_physical_device_location +EXPORT_SYMBOL vmlinux 0x72f78cd0 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x73024162 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x7307645f uart_add_one_port +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x737f169a pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x738803e6 strnlen +EXPORT_SYMBOL vmlinux 0x738ababa vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0x73a4c3e9 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x73d0c23d __find_get_block +EXPORT_SYMBOL vmlinux 0x73dd54eb irq_fpu_usable +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73e8ff58 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x73f07079 sock_i_ino +EXPORT_SYMBOL vmlinux 0x73fa8c90 console_stop +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x7411bf4b dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x742e773c scsi_remove_device +EXPORT_SYMBOL vmlinux 0x743b4ae3 atomic64_inc_not_zero_cx8 +EXPORT_SYMBOL vmlinux 0x7441fd67 pci_disable_device +EXPORT_SYMBOL vmlinux 0x744cc839 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x7465ca6c inet_addr_type +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x74708ed7 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x747195f0 hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74881d07 acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0x74898636 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0x74975bd6 misc_deregister +EXPORT_SYMBOL vmlinux 0x74a83685 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x74bb2181 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c97390 seq_open_private +EXPORT_SYMBOL vmlinux 0x74ce05b8 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x74e5c98f ucs2_strnlen +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x74efbe18 input_flush_device +EXPORT_SYMBOL vmlinux 0x75031630 unregister_key_type +EXPORT_SYMBOL vmlinux 0x7505bdef memchr_inv +EXPORT_SYMBOL vmlinux 0x75115765 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x7531e3dc acpi_get_event_resources +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x754dac78 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x7554e051 padata_do_serial +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x75a37bc3 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x75bb675a finish_wait +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75c3b24d xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x75d08c36 led_blink_set_oneshot +EXPORT_SYMBOL vmlinux 0x75d21809 vprintk_emit +EXPORT_SYMBOL vmlinux 0x75dadaae nla_reserve +EXPORT_SYMBOL vmlinux 0x75ee0b6e jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x76041d4c seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x76195443 blkdev_get +EXPORT_SYMBOL vmlinux 0x7628438b dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x762add85 atomic64_inc_return_cx8 +EXPORT_SYMBOL vmlinux 0x76319466 netdev_update_features +EXPORT_SYMBOL vmlinux 0x7634fdb2 agp_backend_release +EXPORT_SYMBOL vmlinux 0x7641ed47 clk_get +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x76694509 migrate_page +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x769e06d7 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x76bd6c0e swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d451c4 add_taint +EXPORT_SYMBOL vmlinux 0x76ee1648 __cleancache_invalidate_inode +EXPORT_SYMBOL vmlinux 0x76f21f7b no_llseek +EXPORT_SYMBOL vmlinux 0x770a0036 isapnp_cfg_begin +EXPORT_SYMBOL vmlinux 0x770f445f wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x772f9eec __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x77340a38 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x7743c9af release_pages +EXPORT_SYMBOL vmlinux 0x77456e0a acpi_root_dir +EXPORT_SYMBOL vmlinux 0x777d295c sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77aadec9 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x77af883c bio_advance +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77bfa383 iput +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e9cabd fifo_set_limit +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x780fdfd1 intel_enable_gtt +EXPORT_SYMBOL vmlinux 0x782567ec memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0x782fb83d dev_addr_add +EXPORT_SYMBOL vmlinux 0x783b3563 wake_up_atomic_t +EXPORT_SYMBOL vmlinux 0x783c3c17 scsi_register +EXPORT_SYMBOL vmlinux 0x7849f6c7 mapping_tagged +EXPORT_SYMBOL vmlinux 0x7862f87d skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x7869a3dd bmap +EXPORT_SYMBOL vmlinux 0x786a3ccd dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x78715a8f __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x7874cf6d __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0x7879a5c1 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x789affb1 frontswap_tmem_exclusive_gets +EXPORT_SYMBOL vmlinux 0x789ba96d __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x78bb2011 dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0x78bde5bc blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x78d47f41 from_kprojid +EXPORT_SYMBOL vmlinux 0x78db38d3 proc_dointvec +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78dff28c blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x79181b3f single_release +EXPORT_SYMBOL vmlinux 0x794e7687 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x7975060e generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x799e0428 pci_restore_state +EXPORT_SYMBOL vmlinux 0x799e316f dump_align +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79b77b0f __blk_end_request +EXPORT_SYMBOL vmlinux 0x79bd4839 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x7a188791 prandom_bytes +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a2d995c dcb_getapp +EXPORT_SYMBOL vmlinux 0x7a34a277 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x7a43b829 set_blocksize +EXPORT_SYMBOL vmlinux 0x7a44714f sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a467e01 free_task +EXPORT_SYMBOL vmlinux 0x7a50a2e1 nf_log_set +EXPORT_SYMBOL vmlinux 0x7a51e313 devm_clk_put +EXPORT_SYMBOL vmlinux 0x7a63ab14 sock_no_getname +EXPORT_SYMBOL vmlinux 0x7a82cb47 rdmsrl_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7a925833 cpufreq_get_global_kobject +EXPORT_SYMBOL vmlinux 0x7a9467b7 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x7a9bf88d udplite_table +EXPORT_SYMBOL vmlinux 0x7aa1684c con_is_bound +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7aaae8c1 dentry_unhash +EXPORT_SYMBOL vmlinux 0x7ab00a51 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7abb2189 vga_switcheroo_register_audio_client +EXPORT_SYMBOL vmlinux 0x7abedd9e nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7ad41088 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x7add44b5 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7ae56530 vfs_rename +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7afa89fc vsnprintf +EXPORT_SYMBOL vmlinux 0x7afd3abc scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0x7b03bc35 cad_pid +EXPORT_SYMBOL vmlinux 0x7b0afbdf serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x7b1089f7 pnp_find_card +EXPORT_SYMBOL vmlinux 0x7b134ddf acpi_get_name +EXPORT_SYMBOL vmlinux 0x7b1ade38 lz4_decompress +EXPORT_SYMBOL vmlinux 0x7b4a2e24 truncate_setsize +EXPORT_SYMBOL vmlinux 0x7b4b855f tty_port_hangup +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b5c8440 vm_munmap +EXPORT_SYMBOL vmlinux 0x7b62ae37 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x7b66abaf touch_buffer +EXPORT_SYMBOL vmlinux 0x7b75c31f f_setown +EXPORT_SYMBOL vmlinux 0x7b821d8f mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL vmlinux 0x7bca53cb locks_copy_lock +EXPORT_SYMBOL vmlinux 0x7c1372e8 panic +EXPORT_SYMBOL vmlinux 0x7c1daeee uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c5e4765 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c62b1fd try_module_get +EXPORT_SYMBOL vmlinux 0x7c855ec5 udp_del_offload +EXPORT_SYMBOL vmlinux 0x7c8e6dc5 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cc578da param_get_long +EXPORT_SYMBOL vmlinux 0x7cc6be3d get_super +EXPORT_SYMBOL vmlinux 0x7cc72f4f dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0x7cc881c4 sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0x7cdb586b kobject_set_name +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7ce83365 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7d00aa12 locks_free_lock +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d28bbeb eth_change_mtu +EXPORT_SYMBOL vmlinux 0x7d4d9232 km_report +EXPORT_SYMBOL vmlinux 0x7d56817a md_error +EXPORT_SYMBOL vmlinux 0x7d71db48 kset_register +EXPORT_SYMBOL vmlinux 0x7db59b60 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x7dbc2e57 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x7dbf5921 generic_readlink +EXPORT_SYMBOL vmlinux 0x7dc9c622 seq_lseek +EXPORT_SYMBOL vmlinux 0x7de2c355 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7e0ffe19 put_page +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e706c6d qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x7e90e1c9 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x7e92aa3a sk_run_filter +EXPORT_SYMBOL vmlinux 0x7e992442 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x7e9fb45c bprm_change_interp +EXPORT_SYMBOL vmlinux 0x7eae7614 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x7ebf4efa inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7ed77359 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x7ee73c0c memcg_socket_limit_enabled +EXPORT_SYMBOL vmlinux 0x7eebe7e7 get_write_access +EXPORT_SYMBOL vmlinux 0x7f0c5bf9 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x7f0de54c inet_frag_find +EXPORT_SYMBOL vmlinux 0x7f1f20e0 dev_load +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f3622ca mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x7f476dd6 netdev_info +EXPORT_SYMBOL vmlinux 0x7f48a8b1 __inet6_hash +EXPORT_SYMBOL vmlinux 0x7f6205d1 vga_tryget +EXPORT_SYMBOL vmlinux 0x7f658e80 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x7f9570ef i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x7f9a77c9 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x7f9ed6ff kernel_sendpage +EXPORT_SYMBOL vmlinux 0x7fa057be iterate_supers_type +EXPORT_SYMBOL vmlinux 0x7fbed03e blk_init_queue +EXPORT_SYMBOL vmlinux 0x7fc7cc17 tty_port_destroy +EXPORT_SYMBOL vmlinux 0x7fce044d phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x7fceae36 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x80057cde inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x800ea48e unregister_netdev +EXPORT_SYMBOL vmlinux 0x8035b6b2 mpage_readpage +EXPORT_SYMBOL vmlinux 0x804745d9 __idr_pre_get +EXPORT_SYMBOL vmlinux 0x804f922a ipmi_addr_length +EXPORT_SYMBOL vmlinux 0x805d98e8 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x80791cff dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x80c11ebb agp_put_bridge +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80ce3473 simple_write_end +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80d9ca85 paravirt_ticketlocks_enabled +EXPORT_SYMBOL vmlinux 0x80da3672 aio_complete +EXPORT_SYMBOL vmlinux 0x8113e06b scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x811f2bdd tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0x8122056e current_task +EXPORT_SYMBOL vmlinux 0x8123d0e4 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x812abef1 unlazy_fpu +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x8150c0ba mempool_resize +EXPORT_SYMBOL vmlinux 0x8153125a sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815c56d0 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x8163296f bio_add_page +EXPORT_SYMBOL vmlinux 0x816459ed fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x8179d475 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x817da2e0 end_page_writeback +EXPORT_SYMBOL vmlinux 0x819a8509 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x819e1c25 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81e1a87b del_gendisk +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81e80d1c jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x82097b2f __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x82123425 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x8217313a tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x82376847 jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0x823a58ff mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x8248905a pnp_start_dev +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x825b99a2 file_remove_suid +EXPORT_SYMBOL vmlinux 0x825d4e59 rt6_lookup +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8268fe56 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x826eb5f7 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x8276c457 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x828062b1 __frontswap_init +EXPORT_SYMBOL vmlinux 0x828ce794 phy_print_status +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82af68d8 vfs_readlink +EXPORT_SYMBOL vmlinux 0x82c14312 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x82ca6ca2 pci_disable_ido +EXPORT_SYMBOL vmlinux 0x83082f69 input_inject_event +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x83271fda load_nls +EXPORT_SYMBOL vmlinux 0x83378a12 submit_bio_wait +EXPORT_SYMBOL vmlinux 0x833c03aa acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x8368cf04 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x83887396 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83ce54de release_firmware +EXPORT_SYMBOL vmlinux 0x83d32591 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x83d3ce35 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x83e140db __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x83f42f4b pci_enable_ido +EXPORT_SYMBOL vmlinux 0x84060081 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x8406ede2 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x8417f512 acpi_update_all_gpes +EXPORT_SYMBOL vmlinux 0x841962f8 param_get_ushort +EXPORT_SYMBOL vmlinux 0x842189a7 give_up_console +EXPORT_SYMBOL vmlinux 0x8424f312 neigh_app_ns +EXPORT_SYMBOL vmlinux 0x842f0a27 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x84402602 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x844177cd vm_map_ram +EXPORT_SYMBOL vmlinux 0x84722d06 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0x847f1b62 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x849344d8 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x84acdb0f jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x84b70d94 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x84b8285f zero_fill_bio +EXPORT_SYMBOL vmlinux 0x84be886f completion_done +EXPORT_SYMBOL vmlinux 0x84c20fe5 blk_start_request +EXPORT_SYMBOL vmlinux 0x84c59296 bdgrab +EXPORT_SYMBOL vmlinux 0x84c649cb set_create_files_as +EXPORT_SYMBOL vmlinux 0x84ef35c9 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x84ffea8b idr_preload +EXPORT_SYMBOL vmlinux 0x8509c540 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0x8518eca9 param_get_short +EXPORT_SYMBOL vmlinux 0x851d2c7a __break_lease +EXPORT_SYMBOL vmlinux 0x851fffe3 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x853bf7c1 param_set_int +EXPORT_SYMBOL vmlinux 0x855246d2 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x855e40a3 try_to_writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x85757968 spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x858ec6cf dev_addr_del +EXPORT_SYMBOL vmlinux 0x858efe87 security_inode_permission +EXPORT_SYMBOL vmlinux 0x859bbb50 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x85ac2e59 sock_release +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85df6b10 pcim_iomap +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85f05af2 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x86145c3d pci_enable_msi_block_auto +EXPORT_SYMBOL vmlinux 0x861fba98 wait_for_completion_io +EXPORT_SYMBOL vmlinux 0x86341410 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x86458240 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x864c1596 bioset_free +EXPORT_SYMBOL vmlinux 0x864fa77d xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x865e0487 adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0x865e3495 __get_page_tail +EXPORT_SYMBOL vmlinux 0x8664c192 dma_find_channel +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x866647c6 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x8675280d lease_get_mtime +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x869edff3 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86acb440 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x86b1724f vfs_fsync +EXPORT_SYMBOL vmlinux 0x86d5255f _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x8702910c file_update_time +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x8713e821 km_query +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x8732d691 poll_freewait +EXPORT_SYMBOL vmlinux 0x873c6758 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x874504a0 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x8746c2ef icmp_send +EXPORT_SYMBOL vmlinux 0x8766d92c pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x8779a34f param_ops_byte +EXPORT_SYMBOL vmlinux 0x87809a43 netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x8798e453 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87d32319 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x87f25057 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x8809a6a7 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881212e9 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x882dab9d sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0x883350ea mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x883863a3 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x88474e6f sock_edemux +EXPORT_SYMBOL vmlinux 0x88513970 param_set_byte +EXPORT_SYMBOL vmlinux 0x88517b70 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x88994ebf rename_lock +EXPORT_SYMBOL vmlinux 0x88f392d6 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x8913c864 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x894127ad dev_deactivate +EXPORT_SYMBOL vmlinux 0x8953f8ff __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x895a8820 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x895e76fb phy_driver_register +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x898266e5 tcp_proto_cgroup +EXPORT_SYMBOL vmlinux 0x898f9e63 do_truncate +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89b52f73 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89fa8317 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x8a02597d pskb_expand_head +EXPORT_SYMBOL vmlinux 0x8a1ab4ee timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8a1b704b bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a51d565 quota_send_warning +EXPORT_SYMBOL vmlinux 0x8a63aaab redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x8a6611e4 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x8a686dcb generic_show_options +EXPORT_SYMBOL vmlinux 0x8a6af5e7 mpage_readpages +EXPORT_SYMBOL vmlinux 0x8a71a667 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a80d7a5 acpi_error +EXPORT_SYMBOL vmlinux 0x8a861e5e netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aa02c8d devm_iounmap +EXPORT_SYMBOL vmlinux 0x8aa3791e generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x8abc65c5 misc_register +EXPORT_SYMBOL vmlinux 0x8afb1330 phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0x8afb4ef4 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x8b111218 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x8b135b8e mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b226a81 acpi_video_dmi_demote_vendor +EXPORT_SYMBOL vmlinux 0x8b2e1d13 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b43159b register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x8b515104 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x8b5af2e7 truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b7466c0 nobh_writepage +EXPORT_SYMBOL vmlinux 0x8b794579 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x8b795010 ipmi_get_smi_info +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8bb15da9 unlock_rename +EXPORT_SYMBOL vmlinux 0x8bc0dea4 d_validate +EXPORT_SYMBOL vmlinux 0x8bc8c0a0 bio_split +EXPORT_SYMBOL vmlinux 0x8be15cad ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x8be42325 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x8c08e864 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x8c17690e i2c_clients_command +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c1f1376 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x8c1f7ad9 blk_mq_map_queue +EXPORT_SYMBOL vmlinux 0x8c24e897 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x8c5263d2 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x8c637d43 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x8c84acde genl_unregister_family +EXPORT_SYMBOL vmlinux 0x8c8dd28a nf_log_packet +EXPORT_SYMBOL vmlinux 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL vmlinux 0x8c9473e0 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x8cacdabb __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x8cad928e scsi_print_sense +EXPORT_SYMBOL vmlinux 0x8cbef97d nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cc9e903 input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x8cd6559a scm_fp_dup +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8ce88087 sg_miter_next +EXPORT_SYMBOL vmlinux 0x8d05512c blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x8d14f297 filemap_flush +EXPORT_SYMBOL vmlinux 0x8d25c336 dev_activate +EXPORT_SYMBOL vmlinux 0x8d2e268b param_ops_ulong +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d5a9e28 idr_get_next +EXPORT_SYMBOL vmlinux 0x8d5ab136 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper +EXPORT_SYMBOL vmlinux 0x8d7778bc ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x8d7fd7ca tcp_disconnect +EXPORT_SYMBOL vmlinux 0x8d826363 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8d92aad0 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x8d98f29e pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x8d998a14 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x8da1a3cb acpi_remove_interface +EXPORT_SYMBOL vmlinux 0x8daf8c42 dql_init +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8dca2fb5 dev_notice +EXPORT_SYMBOL vmlinux 0x8dcd015e tty_unregister_device +EXPORT_SYMBOL vmlinux 0x8dd0d517 seq_open +EXPORT_SYMBOL vmlinux 0x8dda0202 get_thermal_instance +EXPORT_SYMBOL vmlinux 0x8df06cbc pci_iomap +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e095250 mdiobus_free +EXPORT_SYMBOL vmlinux 0x8e0a97de input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x8e0d66f4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x8e11413d input_reset_device +EXPORT_SYMBOL vmlinux 0x8e5101dc generic_removexattr +EXPORT_SYMBOL vmlinux 0x8e864a86 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x8e87aed4 idr_for_each +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8e9f2fcc skb_queue_tail +EXPORT_SYMBOL vmlinux 0x8ea33b3c noop_llseek +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8ed089c4 simple_setattr +EXPORT_SYMBOL vmlinux 0x8ed1f6b1 page_readlink +EXPORT_SYMBOL vmlinux 0x8edd28f3 key_reject_and_link +EXPORT_SYMBOL vmlinux 0x8f045d1c cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x8f0b29d5 kill_anon_super +EXPORT_SYMBOL vmlinux 0x8f0f9edf twl6040_power +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f390fcb skb_put +EXPORT_SYMBOL vmlinux 0x8f4a376b netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x8f5ac4e4 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x8f6fb77c pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x8f7208ae sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fc6cda6 tty_lock_pair +EXPORT_SYMBOL vmlinux 0x8fe69979 net_dma_find_channel +EXPORT_SYMBOL vmlinux 0x8ff4079b pv_irq_ops +EXPORT_SYMBOL vmlinux 0x8ffbb8c6 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x904d1eca dquot_commit +EXPORT_SYMBOL vmlinux 0x9060f234 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x9078596a lock_fb_info +EXPORT_SYMBOL vmlinux 0x908b53ed param_set_short +EXPORT_SYMBOL vmlinux 0x90a511c2 __kfree_skb +EXPORT_SYMBOL vmlinux 0x90c5e819 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x90e3ae94 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x90f5e616 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x910a276d __test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x9125b7df dev_get_phys_port_id +EXPORT_SYMBOL vmlinux 0x91277f93 netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x912fc785 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x9137194d ppp_input +EXPORT_SYMBOL vmlinux 0x9141ec9e proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x9159aafa i2c_del_driver +EXPORT_SYMBOL vmlinux 0x915b1eb9 __ip_dev_find +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x9182b4fd dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x91958ee9 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x91967e8e xen_selfballoon_init +EXPORT_SYMBOL vmlinux 0x91a6eef2 pci_bus_type +EXPORT_SYMBOL vmlinux 0x91c1b6e6 proc_set_size +EXPORT_SYMBOL vmlinux 0x91c2855d swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x91c873b5 nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0x91cb8e21 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x91d77a12 touch_atime +EXPORT_SYMBOL vmlinux 0x91ddd8b8 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x920d1d82 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x9212a632 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x924d7b88 __pskb_copy +EXPORT_SYMBOL vmlinux 0x925520d2 blk_start_plug +EXPORT_SYMBOL vmlinux 0x925c9ffd fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x926db62e xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x9272dff0 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x92a9c60c time_to_tm +EXPORT_SYMBOL vmlinux 0x92b3a041 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x92d00c44 kmap_to_page +EXPORT_SYMBOL vmlinux 0x92e611b0 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x92f178df neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x93057a5f tty_do_resize +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x9323915e agp_generic_enable +EXPORT_SYMBOL vmlinux 0x9330057b bio_copy_kern +EXPORT_SYMBOL vmlinux 0x93350a14 idr_find_slowpath +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x934bcb85 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x9375bc49 devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid +EXPORT_SYMBOL vmlinux 0x937c0a7d napi_gro_frags +EXPORT_SYMBOL vmlinux 0x93a24afa bio_integrity_free +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93c6f3ff kern_path_mountpoint +EXPORT_SYMBOL vmlinux 0x93e6515f serio_open +EXPORT_SYMBOL vmlinux 0x93ebbafb km_policy_expired +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x942ebdaf key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x945c527a sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x94654c5c i2c_release_client +EXPORT_SYMBOL vmlinux 0x949162b7 put_io_context +EXPORT_SYMBOL vmlinux 0x949488ab dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94e3e910 sk_ns_capable +EXPORT_SYMBOL vmlinux 0x94e81cb6 bio_endio +EXPORT_SYMBOL vmlinux 0x94fd5012 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x9508f166 param_ops_bint +EXPORT_SYMBOL vmlinux 0x95395301 acpi_exception +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x95488a7b nf_register_hooks +EXPORT_SYMBOL vmlinux 0x9553c29b xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x9559bc8b scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x95642c4a md_flush_request +EXPORT_SYMBOL vmlinux 0x957ff5b1 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x95990aff ___pskb_trim +EXPORT_SYMBOL vmlinux 0x95beae5b __d_drop +EXPORT_SYMBOL vmlinux 0x95d32fa8 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x95e6e500 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x95f89a33 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x9625a7b3 make_kprojid +EXPORT_SYMBOL vmlinux 0x963857e8 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x964b9875 pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0x964f4462 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x96648365 tty_unlock_pair +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x96aa3c0d tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x96b2658b pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x96c514e4 sk_capable +EXPORT_SYMBOL vmlinux 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d99f43 set_trace_device +EXPORT_SYMBOL vmlinux 0x96fc9ba5 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x971247fb dquot_disable +EXPORT_SYMBOL vmlinux 0x9719162d inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x971e870d generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x9728a816 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x972ce593 __quota_error +EXPORT_SYMBOL vmlinux 0x973fa82e register_acpi_notifier +EXPORT_SYMBOL vmlinux 0x97543be9 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x97a60e3d param_get_bool +EXPORT_SYMBOL vmlinux 0x97b4500c __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x97b59586 lg_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x97c5bd0a acpi_unload_parent_table +EXPORT_SYMBOL vmlinux 0x97d0e3f3 cdrom_check_events +EXPORT_SYMBOL vmlinux 0x97dcef29 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97f56dc6 bdev_read_only +EXPORT_SYMBOL vmlinux 0x97f7ae49 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x980a18e7 brioctl_set +EXPORT_SYMBOL vmlinux 0x980b94d0 alloc_xenballooned_pages +EXPORT_SYMBOL vmlinux 0x9820b644 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x9825cbf4 neigh_destroy +EXPORT_SYMBOL vmlinux 0x98409b63 inet_shutdown +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x9897ba43 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x989c98f6 __mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x989f7a9c tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x98a344ef devm_free_irq +EXPORT_SYMBOL vmlinux 0x98c400a4 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x98c44d53 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x98de9687 write_inode_now +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x9903188c security_path_link +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x990a225d devm_gpio_free +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x99591a7a ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x9985efcc grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999b3e05 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x999ea4e1 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x99c7ecfa bio_copy_data +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99e8732f poll_initwait +EXPORT_SYMBOL vmlinux 0x99eecf1f __netif_schedule +EXPORT_SYMBOL vmlinux 0x9a0dff49 sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1f585a __lru_cache_add +EXPORT_SYMBOL vmlinux 0x9a1fc4b4 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9a301383 sock_no_accept +EXPORT_SYMBOL vmlinux 0x9a45dbe2 ata_port_printk +EXPORT_SYMBOL vmlinux 0x9a54d296 ip_options_compile +EXPORT_SYMBOL vmlinux 0x9a5c8a1b max8998_write_reg +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9a73e4fb agp_enable +EXPORT_SYMBOL vmlinux 0x9a745980 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x9a7fdaec pnp_device_detach +EXPORT_SYMBOL vmlinux 0x9a8601a0 simple_write_begin +EXPORT_SYMBOL vmlinux 0x9ab74b5f pci_alloc_dev +EXPORT_SYMBOL vmlinux 0x9abd68c4 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x9ac5f600 fb_find_mode +EXPORT_SYMBOL vmlinux 0x9b181b59 pci_map_biosrom +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b4bcdc0 dev_alert +EXPORT_SYMBOL vmlinux 0x9b51191e eth_header_cache +EXPORT_SYMBOL vmlinux 0x9b660481 security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b75cb81 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x9b8ddd1a free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x9b935a48 kfree_skb_list +EXPORT_SYMBOL vmlinux 0x9b9e05f9 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x9b9e61c3 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x9ba5c068 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bb92862 mmc_release_host +EXPORT_SYMBOL vmlinux 0x9bcaf347 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x9be0a92d blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x9be7bde4 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x9bfe7e61 skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0x9c2c944a __copy_from_user_ll_nocache_nozero +EXPORT_SYMBOL vmlinux 0x9c2dfaf1 fb_show_logo +EXPORT_SYMBOL vmlinux 0x9c3a5026 gen_pool_free +EXPORT_SYMBOL vmlinux 0x9c46670e scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c7b0a25 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x9c8ecd26 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9caea38e xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x9cb81826 keyring_search +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9ceb6675 keyring_clear +EXPORT_SYMBOL vmlinux 0x9cfaf706 crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d05f6c4 ktime_get_clocktai +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d0f6b3e blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x9d1ed093 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x9d2874b0 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x9d28be40 vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d344530 input_free_device +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d608bc7 blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0x9d6c7c07 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x9d72fcb9 register_framebuffer +EXPORT_SYMBOL vmlinux 0x9d90f95f __crc32c_le_combine +EXPORT_SYMBOL vmlinux 0x9da83df1 d_find_any_alias +EXPORT_SYMBOL vmlinux 0x9db32727 proto_register +EXPORT_SYMBOL vmlinux 0x9db5cf24 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x9dbe8c71 filemap_fault +EXPORT_SYMBOL vmlinux 0x9de301cc dcb_setapp +EXPORT_SYMBOL vmlinux 0x9dfe7307 lz4_decompress_unknownoutputsize +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e33968a tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x9e363b6b acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x9e367be2 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x9e3dbe51 skb_store_bits +EXPORT_SYMBOL vmlinux 0x9e4b3747 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e835b9a phy_attach_direct +EXPORT_SYMBOL vmlinux 0x9e839331 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x9e8fbcc3 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x9e93bc72 ether_setup +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9eaada3a dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x9ebb6e8d pci_pme_capable +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ebf7732 vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x9ed2eec7 param_set_ushort +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eddb535 __register_chrdev +EXPORT_SYMBOL vmlinux 0x9ef0aa8e key_revoke +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f348cf3 blk_mq_run_queues +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f491e5d ftrace_print_symbols_seq_u64 +EXPORT_SYMBOL vmlinux 0x9f6363fb agp_create_memory +EXPORT_SYMBOL vmlinux 0x9f7095c9 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9faa4489 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x9faa71a8 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fc8628a inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x9fcd1b0f twl6040_set_bits +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9feb95ef free_user_ns +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0xa00aca2a dql_completed +EXPORT_SYMBOL vmlinux 0xa01561f3 posix_lock_file +EXPORT_SYMBOL vmlinux 0xa01bf86f pcie_set_mps +EXPORT_SYMBOL vmlinux 0xa02ae5d6 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa04c4946 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xa051445e xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xa0530284 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xa0595b4c bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa060fb6e __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa0701f9f lookup_bdev +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa08427b0 soft_cursor +EXPORT_SYMBOL vmlinux 0xa08ded33 scsi_device_put +EXPORT_SYMBOL vmlinux 0xa0939ab4 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xa0966e4b unregister_shrinker +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d0884e __skb_tx_hash +EXPORT_SYMBOL vmlinux 0xa0d7b5d6 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xa0dad88e netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0f0dc93 mutex_unlock +EXPORT_SYMBOL vmlinux 0xa0fa984b ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa12363a8 sock_create_kern +EXPORT_SYMBOL vmlinux 0xa1477f24 netdev_emerg +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa158d4aa xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xa1ac20ef scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba7e11 tty_lock +EXPORT_SYMBOL vmlinux 0xa1c640c0 xfrm_register_km +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1e615e0 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0xa1f392bf i8042_install_filter +EXPORT_SYMBOL vmlinux 0xa2039b72 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa20fe439 scsi_ioctl +EXPORT_SYMBOL vmlinux 0xa21a7f40 mmc_can_reset +EXPORT_SYMBOL vmlinux 0xa243e4ba netif_rx_ni +EXPORT_SYMBOL vmlinux 0xa248d828 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa289e86e gen10g_resume +EXPORT_SYMBOL vmlinux 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL vmlinux 0xa297ace9 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL vmlinux 0xa2d60d70 __nla_reserve +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa30e8899 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xa337a62f pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xa33d9a48 acpi_decode_pld_buffer +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa3504378 rwsem_wake +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa363dab4 udp_table +EXPORT_SYMBOL vmlinux 0xa3bc5c57 ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0xa3e3bf1c write_cache_pages +EXPORT_SYMBOL vmlinux 0xa3e56fea posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xa3f576a2 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xa4167adf __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xa4177ec5 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xa42f89e6 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xa43b1297 vscnprintf +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa468807c kern_path_create +EXPORT_SYMBOL vmlinux 0xa4701e9e timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0xa478c298 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xa495edb5 get_agp_version +EXPORT_SYMBOL vmlinux 0xa49dd838 tcp_check_req +EXPORT_SYMBOL vmlinux 0xa4ab41b2 key_unlink +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4ea5fdc locks_remove_posix +EXPORT_SYMBOL vmlinux 0xa4eb4eff _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xa502e50f pm860x_reg_write +EXPORT_SYMBOL vmlinux 0xa50498f3 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa5292c78 ab3100_event_register +EXPORT_SYMBOL vmlinux 0xa537afef inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa56c3441 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xa570ddce dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xa581105d md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xa585eaf2 __sb_end_write +EXPORT_SYMBOL vmlinux 0xa5908e83 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5cf4370 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xa5f604a5 sk_alloc +EXPORT_SYMBOL vmlinux 0xa60bfb50 get_io_context +EXPORT_SYMBOL vmlinux 0xa60ca8e5 fd_install +EXPORT_SYMBOL vmlinux 0xa62017d6 md_done_sync +EXPORT_SYMBOL vmlinux 0xa62e6e4f acpi_get_table_with_size +EXPORT_SYMBOL vmlinux 0xa6319aa9 simple_getattr +EXPORT_SYMBOL vmlinux 0xa63a2f9b param_get_ulong +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa640173a con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xa642fd91 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xa66184f1 mmc_start_bkops +EXPORT_SYMBOL vmlinux 0xa661c489 file_open_root +EXPORT_SYMBOL vmlinux 0xa6715115 do_settimeofday +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa67da660 mempool_alloc +EXPORT_SYMBOL vmlinux 0xa67e2845 dq_data_lock +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa68c385f unregister_binfmt +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa6988b3f twl6040_reg_write +EXPORT_SYMBOL vmlinux 0xa69a81c6 blk_mq_end_io +EXPORT_SYMBOL vmlinux 0xa6a5834e bio_map_kern +EXPORT_SYMBOL vmlinux 0xa6aa7ce6 __netlink_dump_start +EXPORT_SYMBOL vmlinux 0xa6b13658 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xa6bd63ca acpi_bios_error +EXPORT_SYMBOL vmlinux 0xa6d31cde module_layout +EXPORT_SYMBOL vmlinux 0xa6d7c448 fbcon_rotate_cw +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71060d8 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa735db59 prandom_u32 +EXPORT_SYMBOL vmlinux 0xa73c75cd mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0xa7ce1994 inet_ioctl +EXPORT_SYMBOL vmlinux 0xa7cf6c2f atomic64_dec_return_cx8 +EXPORT_SYMBOL vmlinux 0xa7d55b29 __ww_mutex_lock +EXPORT_SYMBOL vmlinux 0xa7e2c52f mmc_put_card +EXPORT_SYMBOL vmlinux 0xa81423b1 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xa8217ca4 mddev_congested +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa83e7e66 generic_make_request +EXPORT_SYMBOL vmlinux 0xa8437188 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa85b5cec nlmsg_notify +EXPORT_SYMBOL vmlinux 0xa8721b97 system_state +EXPORT_SYMBOL vmlinux 0xa8a28172 netdev_change_features +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8a8ad10 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xa8de0a35 pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0xa8df3363 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa908d260 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa95353dc inet_sendmsg +EXPORT_SYMBOL vmlinux 0xa9682526 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xa99367e8 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xa9a8e17f arch_phys_wc_add +EXPORT_SYMBOL vmlinux 0xa9b91b80 disk_stack_limits +EXPORT_SYMBOL vmlinux 0xa9deb1ed put_tty_driver +EXPORT_SYMBOL vmlinux 0xa9e187b2 security_path_mknod +EXPORT_SYMBOL vmlinux 0xa9f3a6e9 dev_uc_add +EXPORT_SYMBOL vmlinux 0xaa4d4d38 update_devfreq +EXPORT_SYMBOL vmlinux 0xaa5ca2cc page_symlink +EXPORT_SYMBOL vmlinux 0xaa67fcb8 inode_dio_wait +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa805fbc acpi_device_hid +EXPORT_SYMBOL vmlinux 0xaa8fea18 acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0xaa9087c0 param_ops_string +EXPORT_SYMBOL vmlinux 0xaa9ebbf9 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0xaab0c7c0 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xaab4b256 pci_remove_bus +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab28271c i8253_lock +EXPORT_SYMBOL vmlinux 0xab3284fb padata_remove_cpu +EXPORT_SYMBOL vmlinux 0xab42d734 input_set_abs_params +EXPORT_SYMBOL vmlinux 0xab4d86f4 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xab513822 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab62cb40 arp_tbl +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab694444 bsearch +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab6c4a35 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xab73ec0a security_file_permission +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xabc6dd63 cpufreq_sysfs_create_file +EXPORT_SYMBOL vmlinux 0xabc744f6 kernel_getsockname +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabdf2e7c generic_file_llseek +EXPORT_SYMBOL vmlinux 0xabdfd6a1 mmc_can_trim +EXPORT_SYMBOL vmlinux 0xabe48a15 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xabe93873 pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac2d2fb8 gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0xac3a629b blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xac45a654 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac7a64ea i2c_master_recv +EXPORT_SYMBOL vmlinux 0xac8da4a0 kern_unmount +EXPORT_SYMBOL vmlinux 0xac911526 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xaca58ef8 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xaca7d08c pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacdee073 netdev_master_upper_dev_link_private +EXPORT_SYMBOL vmlinux 0xace0ea69 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad1744e4 netpoll_rx_enable +EXPORT_SYMBOL vmlinux 0xad1a9d4c PDE_DATA +EXPORT_SYMBOL vmlinux 0xad1ac1f0 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xad2860f6 dput +EXPORT_SYMBOL vmlinux 0xad2a8bd2 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0xad2e4746 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xad3c3114 save_mount_options +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xadbbf8c6 __dev_remove_offload +EXPORT_SYMBOL vmlinux 0xaddb8d8f serio_unregister_port +EXPORT_SYMBOL vmlinux 0xaddba765 con_copy_unimap +EXPORT_SYMBOL vmlinux 0xade03014 phy_start_aneg +EXPORT_SYMBOL vmlinux 0xae01e1d9 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xae108e0e gen10g_restart_aneg +EXPORT_SYMBOL vmlinux 0xae2fd573 dev_addr_init +EXPORT_SYMBOL vmlinux 0xae37ac5a vga_switcheroo_init_domain_pm_optimus_hdmi_audio +EXPORT_SYMBOL vmlinux 0xae4879ac clocksource_register +EXPORT_SYMBOL vmlinux 0xae5289ff dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xae6d5352 scsi_device_get +EXPORT_SYMBOL vmlinux 0xae729e59 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0xae72d41e inet_accept +EXPORT_SYMBOL vmlinux 0xae74c78f neigh_direct_output +EXPORT_SYMBOL vmlinux 0xae848bae mmc_gpio_request_cd +EXPORT_SYMBOL vmlinux 0xae9c35f1 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaefd33f2 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xaf16812a vm_insert_page +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf44ab82 dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0xaf4b1540 acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xaf611eac amd_nb_misc_ids +EXPORT_SYMBOL vmlinux 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL vmlinux 0xaf80db3e scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf9d9ecc __register_nmi_handler +EXPORT_SYMBOL vmlinux 0xafad493b param_ops_ushort +EXPORT_SYMBOL vmlinux 0xafc893c6 find_lock_page +EXPORT_SYMBOL vmlinux 0xafce5eec scsi_execute +EXPORT_SYMBOL vmlinux 0xafd737bb dentry_update_name_case +EXPORT_SYMBOL vmlinux 0xafe9b05f tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xaff9c3cf xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xb00666ed blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xb00a120e posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xb00f6558 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xb01b1db8 intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0xb0207ecf ___ratelimit +EXPORT_SYMBOL vmlinux 0xb037be9d agp_bridge +EXPORT_SYMBOL vmlinux 0xb04d069c swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xb04d2522 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xb05f927e bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb07a58e0 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0xb0877136 pci_get_class +EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0b63fea tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0b88fbe iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xb0d8b400 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f75186 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xb0ffda2f blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xb10c0de8 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xb10d56bf dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xb1120010 scsi_scan_target +EXPORT_SYMBOL vmlinux 0xb11ba1fe mount_single +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb15d8995 padata_alloc +EXPORT_SYMBOL vmlinux 0xb161d15e blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb1677c4f dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xb17b1797 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xb17e3575 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xb1869ee0 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb198459e isapnp_protocol +EXPORT_SYMBOL vmlinux 0xb1aa7286 free_xenballooned_pages +EXPORT_SYMBOL vmlinux 0xb1af282a pci_release_regions +EXPORT_SYMBOL vmlinux 0xb1b50099 vga_get +EXPORT_SYMBOL vmlinux 0xb1c31769 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cf44df fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1d62ed4 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xb1d9523e wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1db9e4e param_get_invbool +EXPORT_SYMBOL vmlinux 0xb2135e96 __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb21a7ae1 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2744b36 down_write_trylock +EXPORT_SYMBOL vmlinux 0xb279cfa0 ip_fragment +EXPORT_SYMBOL vmlinux 0xb27e03ec dev_add_pack +EXPORT_SYMBOL vmlinux 0xb28e4a5c d_find_alias +EXPORT_SYMBOL vmlinux 0xb28fd0a2 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xb2947494 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xb2ae6368 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xb2b2303c dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0xb2b94674 __crc32c_le +EXPORT_SYMBOL vmlinux 0xb2be6e92 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xb2cc4dc2 submit_bio +EXPORT_SYMBOL vmlinux 0xb2d48a2e queue_work_on +EXPORT_SYMBOL vmlinux 0xb2d72398 km_state_expired +EXPORT_SYMBOL vmlinux 0xb2dbb1c6 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xb2e79d27 __dst_free +EXPORT_SYMBOL vmlinux 0xb2f74fb6 intel_gmch_remove +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb3382495 udp_add_offload +EXPORT_SYMBOL vmlinux 0xb34ef535 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0xb3513dc8 make_kgid +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb37bc59c pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xb3a08a96 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0xb3a614b1 d_add_ci +EXPORT_SYMBOL vmlinux 0xb3c6cdfb cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xb3e0590d acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0xb3f6ffc6 skb_unlink +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42d30bc blk_mq_alloc_reserved_request +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb4403c91 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb455a627 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4795660 register_md_personality +EXPORT_SYMBOL vmlinux 0xb47f814c max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xb4816ff6 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xb483ab28 dma_common_get_sgtable +EXPORT_SYMBOL vmlinux 0xb4a3be53 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xb4a98658 ip_check_defrag +EXPORT_SYMBOL vmlinux 0xb4a9ad4e security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xb4bb0eb0 inode_init_owner +EXPORT_SYMBOL vmlinux 0xb4c07a20 path_get +EXPORT_SYMBOL vmlinux 0xb4dd007a __skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0xb4ec8ea3 dquot_drop +EXPORT_SYMBOL vmlinux 0xb4f44750 devfreq_interval_update +EXPORT_SYMBOL vmlinux 0xb52773e2 mem_cgroup_subsys +EXPORT_SYMBOL vmlinux 0xb52ee8be intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5528103 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xb570c217 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xb57343c2 frontswap_shrink +EXPORT_SYMBOL vmlinux 0xb580e314 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5a54458 inet_getname +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d9d147 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xb618b1a3 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb6391ca5 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xb6394d4b param_set_bint +EXPORT_SYMBOL vmlinux 0xb64b6406 tty_port_close +EXPORT_SYMBOL vmlinux 0xb64fce23 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xb6522434 d_delete +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb6966d66 should_remove_suid +EXPORT_SYMBOL vmlinux 0xb6a089c1 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6aa4aa5 security_path_chown +EXPORT_SYMBOL vmlinux 0xb6b46a7c param_ops_int +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6e9cbd6 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb73b2490 __block_write_begin +EXPORT_SYMBOL vmlinux 0xb74028fb new_inode +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb758cadb vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0xb764aff0 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0xb76c5533 bh_submit_read +EXPORT_SYMBOL vmlinux 0xb76c9bab dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xb77131b1 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xb79b98e8 processors +EXPORT_SYMBOL vmlinux 0xb7aa5656 netlink_net_capable +EXPORT_SYMBOL vmlinux 0xb7b0b7b1 set_pages_x +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7d97ef3 alloc_file +EXPORT_SYMBOL vmlinux 0xb7d9a9a6 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xb7f55ecc atomic64_add_return_cx8 +EXPORT_SYMBOL vmlinux 0xb81960ca snprintf +EXPORT_SYMBOL vmlinux 0xb81a87e6 seq_pad +EXPORT_SYMBOL vmlinux 0xb823d745 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xb82dc437 mmc_gpio_request_ro +EXPORT_SYMBOL vmlinux 0xb8341b3d uart_register_driver +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb859a71c tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xb8709619 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0xb874b87a __clzsi2 +EXPORT_SYMBOL vmlinux 0xb87748cb rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0xb87b5064 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0xb8d3ced8 dquot_scan_active +EXPORT_SYMBOL vmlinux 0xb8d73e97 param_set_uint +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8e877e7 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb909daf1 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xb92500ec devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0xb94e5f95 lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0xb959400e truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xb972a172 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9b53d22 ht_create_irq +EXPORT_SYMBOL vmlinux 0xb9e8e2cc in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0xb9f0d3a2 key_task_permission +EXPORT_SYMBOL vmlinux 0xb9f29412 simple_fill_super +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba07865d spi_dv_device +EXPORT_SYMBOL vmlinux 0xba09dec4 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba33a89d udp_seq_open +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba4c35fd kernel_listen +EXPORT_SYMBOL vmlinux 0xba6ba8d1 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0xba8ea6ad rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xba901c37 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xba9550ba pci_match_id +EXPORT_SYMBOL vmlinux 0xbab83a80 seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0xbad5a0a8 __devm_request_region +EXPORT_SYMBOL vmlinux 0xbae264d4 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xbae3a059 mmc_stop_bkops +EXPORT_SYMBOL vmlinux 0xbaf27e34 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0xbb0c8c9a inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xbb117b34 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb1c532d bdi_init +EXPORT_SYMBOL vmlinux 0xbb2338f9 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xbb33973c tty_register_device +EXPORT_SYMBOL vmlinux 0xbb4634ec tcp_ioctl +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb61229e bio_phys_segments +EXPORT_SYMBOL vmlinux 0xbb64e2a6 netlink_set_err +EXPORT_SYMBOL vmlinux 0xbb713e6d sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbb9935b4 bio_put +EXPORT_SYMBOL vmlinux 0xbbc6acb7 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xbc1095be proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0xbc1afedf up_write +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc2839ec security_path_rename +EXPORT_SYMBOL vmlinux 0xbc320546 tcp_release_cb +EXPORT_SYMBOL vmlinux 0xbc3477c0 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xbc435770 dump_stack +EXPORT_SYMBOL vmlinux 0xbc4f7752 ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0xbc7f746d cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xbcc1e942 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcf4a7e1 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0xbd0209a0 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xbd096b78 tty_mutex +EXPORT_SYMBOL vmlinux 0xbd3f2d3a netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xbdaa0058 max8925_set_bits +EXPORT_SYMBOL vmlinux 0xbdba9828 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0xbdcd6b21 kthread_bind +EXPORT_SYMBOL vmlinux 0xbdd51a4c vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xbdf13554 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xbdf7cd02 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe2a0dd3 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe359036 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xbe4af0e7 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xbe5abe86 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xbe6c4a01 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xbe8bece8 __alloc_skb +EXPORT_SYMBOL vmlinux 0xbe8c37d9 intel_scu_ipc_simple_command +EXPORT_SYMBOL vmlinux 0xbe9a2e0c sock_setsockopt +EXPORT_SYMBOL vmlinux 0xbebf12b9 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xbec30d05 x86_match_cpu +EXPORT_SYMBOL vmlinux 0xbedfcac5 dev_remove_offload +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf10d03a xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xbf126f59 skb_push +EXPORT_SYMBOL vmlinux 0xbf1621e8 security_dentry_init_security +EXPORT_SYMBOL vmlinux 0xbf21309f tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xbf297d27 make_kuid +EXPORT_SYMBOL vmlinux 0xbf2d4847 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xbf4d6597 i2c_use_client +EXPORT_SYMBOL vmlinux 0xbf5b6389 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfcb9ccf lease_modify +EXPORT_SYMBOL vmlinux 0xbfdfc895 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff70a54 vfs_create +EXPORT_SYMBOL vmlinux 0xbffbea30 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xc0059340 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xc008b10a spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0xc011b710 vlan_uses_dev +EXPORT_SYMBOL vmlinux 0xc01cf848 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero +EXPORT_SYMBOL vmlinux 0xc029775a netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc038dbe0 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0xc0643e1c __serio_register_driver +EXPORT_SYMBOL vmlinux 0xc066b9db jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc09e5adc jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xc0a0ea17 __skb_get_hash +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0a86c94 seq_escape +EXPORT_SYMBOL vmlinux 0xc0a8ff16 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xc0cba271 ipmi_smi_watcher_register +EXPORT_SYMBOL vmlinux 0xc0dd3123 kill_litter_super +EXPORT_SYMBOL vmlinux 0xc0e31712 scsi_print_result +EXPORT_SYMBOL vmlinux 0xc0f48ced tcf_em_register +EXPORT_SYMBOL vmlinux 0xc114f4d4 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xc12c67b8 sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0xc12ec3a6 dns_query +EXPORT_SYMBOL vmlinux 0xc13939e5 simple_statfs +EXPORT_SYMBOL vmlinux 0xc13ef358 tcf_register_action +EXPORT_SYMBOL vmlinux 0xc149c181 read_cache_page +EXPORT_SYMBOL vmlinux 0xc1602ea3 sock_kmalloc +EXPORT_SYMBOL vmlinux 0xc1623cf7 read_dev_sector +EXPORT_SYMBOL vmlinux 0xc1b82d22 register_shrinker +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1cfa252 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xc1e4b6d2 phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0xc21aa3f6 loop_register_transfer +EXPORT_SYMBOL vmlinux 0xc23ffce4 swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc26c2175 scsi_put_command +EXPORT_SYMBOL vmlinux 0xc26e8441 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xc274a415 dev_close +EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll +EXPORT_SYMBOL vmlinux 0xc293a804 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xc29c2a70 kfree_skb +EXPORT_SYMBOL vmlinux 0xc2a70aea unregister_cdrom +EXPORT_SYMBOL vmlinux 0xc2c168e8 bio_clone_bioset +EXPORT_SYMBOL vmlinux 0xc2c4257b blk_queue_io_min +EXPORT_SYMBOL vmlinux 0xc2c9b53a tcp_connect +EXPORT_SYMBOL vmlinux 0xc2cb0a07 md_finish_reshape +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2dbf4b9 blk_stop_queue +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2e9853e scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xc2f70bd7 netdev_warn +EXPORT_SYMBOL vmlinux 0xc2f9c045 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xc323239b would_dump +EXPORT_SYMBOL vmlinux 0xc327e564 kset_unregister +EXPORT_SYMBOL vmlinux 0xc32a416e notify_change +EXPORT_SYMBOL vmlinux 0xc334ebc8 pipe_unlock +EXPORT_SYMBOL vmlinux 0xc36e6b34 mount_ns +EXPORT_SYMBOL vmlinux 0xc37d7b52 elevator_init +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3b6dd13 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xc3f2965c acpi_gpiochip_free_interrupts +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc41c9a32 sync_inode +EXPORT_SYMBOL vmlinux 0xc41e8f7a wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xc41f0516 node_states +EXPORT_SYMBOL vmlinux 0xc426dc42 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xc42b716d scm_detach_fds +EXPORT_SYMBOL vmlinux 0xc44eea0d filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xc451da66 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xc4554217 up +EXPORT_SYMBOL vmlinux 0xc45a2876 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0xc460bc8f d_path +EXPORT_SYMBOL vmlinux 0xc4695ac6 prepare_creds +EXPORT_SYMBOL vmlinux 0xc4782e67 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xc48703c3 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49be86d pci_dev_get +EXPORT_SYMBOL vmlinux 0xc4a37991 register_gifconf +EXPORT_SYMBOL vmlinux 0xc4bfad2b pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xc4c19c0f blk_delay_queue +EXPORT_SYMBOL vmlinux 0xc4cc926d vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0xc4e6858c input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0xc5064601 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xc527d6c3 simple_unlink +EXPORT_SYMBOL vmlinux 0xc53b9618 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xc53e8d0f security_path_chmod +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc55e500e sock_create +EXPORT_SYMBOL vmlinux 0xc57ab7bc proc_dostring +EXPORT_SYMBOL vmlinux 0xc589e044 param_set_long +EXPORT_SYMBOL vmlinux 0xc59ba7e0 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xc5a9c260 tcp_prequeue +EXPORT_SYMBOL vmlinux 0xc5beaf4c fb_set_suspend +EXPORT_SYMBOL vmlinux 0xc5c23f3d lock_may_write +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5e2f612 skb_insert +EXPORT_SYMBOL vmlinux 0xc5fa2bd2 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xc5fdef94 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xc601a91c do_splice_from +EXPORT_SYMBOL vmlinux 0xc60d0bc8 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xc623a6a2 tcp_seq_open +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc63cc125 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xc6418a47 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc65e6280 pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0xc6610a61 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xc6645b42 mempool_create_node +EXPORT_SYMBOL vmlinux 0xc68993dd scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xc69b9f4d balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0xc6a362b8 i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0xc6a576d0 do_splice_direct +EXPORT_SYMBOL vmlinux 0xc6b23120 intel_scu_ipc_iowrite16 +EXPORT_SYMBOL vmlinux 0xc6b368d3 acpi_gpe_count +EXPORT_SYMBOL vmlinux 0xc6b9346f genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6d015b4 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xc6e07f19 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xc702cecc nf_log_register +EXPORT_SYMBOL vmlinux 0xc70552b8 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0xc705cc93 pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc74f5c2b scsi_scan_host +EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7ce9bd1 flush_signals +EXPORT_SYMBOL vmlinux 0xc7d2d7e8 x86_hyper_xen_hvm +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7f0e315 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xc8001b27 skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0xc8276a79 nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xc8339e24 string_unescape +EXPORT_SYMBOL vmlinux 0xc83442d6 mmc_add_host +EXPORT_SYMBOL vmlinux 0xc83816b9 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xc83b4d5b posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc8572b2c generic_listxattr +EXPORT_SYMBOL vmlinux 0xc85d8188 d_rehash +EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0xc88cc30f tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8a7358c tcp_sendpage +EXPORT_SYMBOL vmlinux 0xc8b24a8f mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8c23e0b __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0xc8f4f598 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xc93de930 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xc95c984e seq_bitmap +EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0xc9683975 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xc96dfc93 phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0xc979771e gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xc9964218 vc_resize +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc9a2c433 spi_release_transport +EXPORT_SYMBOL vmlinux 0xc9ab40ac iterate_mounts +EXPORT_SYMBOL vmlinux 0xc9c09134 inet_stream_ops +EXPORT_SYMBOL vmlinux 0xc9c89002 empty_aops +EXPORT_SYMBOL vmlinux 0xc9ed41a3 dquot_destroy +EXPORT_SYMBOL vmlinux 0xc9f9ab66 d_lookup +EXPORT_SYMBOL vmlinux 0xca1751c8 dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xca28c54c simple_transaction_set +EXPORT_SYMBOL vmlinux 0xca3a94d1 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0xca464051 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xca589746 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca653ef9 filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca8e24be force_sig +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xcaa7adc4 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xcab17a5c tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xcab68b6b gen10g_config_aneg +EXPORT_SYMBOL vmlinux 0xcad47aea page_address +EXPORT_SYMBOL vmlinux 0xcae9b392 mmc_register_driver +EXPORT_SYMBOL vmlinux 0xcaf933dd jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xcafec2fe netpoll_print_options +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb07f41d unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xcb0c5d50 param_get_uint +EXPORT_SYMBOL vmlinux 0xcb11af31 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xcb1c0d6f xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xcb5b7fcb dma_async_device_register +EXPORT_SYMBOL vmlinux 0xcb6138a1 rtmsg_ifinfo +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb77a2b5 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xcb7c1caa tty_free_termios +EXPORT_SYMBOL vmlinux 0xcb9a3014 vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0xcbae6c7a acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xcbb663a4 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbd45a69 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xcbdcb81f udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xcc139c02 d_prune_aliases +EXPORT_SYMBOL vmlinux 0xcc22730c get_gendisk +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc284ebb dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0xcc284fb0 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xcc2ed859 pci_disable_obff +EXPORT_SYMBOL vmlinux 0xcc37f55c blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xcc4491f6 eth_mac_addr +EXPORT_SYMBOL vmlinux 0xcc4d1bfb atomic64_read_cx8 +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5a4ff8 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xcc5b27b5 acpi_extract_package +EXPORT_SYMBOL vmlinux 0xcc6036af sk_wait_data +EXPORT_SYMBOL vmlinux 0xcc6e5538 dump_skip +EXPORT_SYMBOL vmlinux 0xcc707d2f vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xcc7c7d13 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xcc7e880a max8925_reg_read +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xccaf0df6 devfreq_add_device +EXPORT_SYMBOL vmlinux 0xccc21f5e input_get_new_minor +EXPORT_SYMBOL vmlinux 0xccec1639 skb_append +EXPORT_SYMBOL vmlinux 0xccf1ca19 phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0xccf84655 tty_vhangup +EXPORT_SYMBOL vmlinux 0xcd18c1b0 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0xcd1b08e3 __ht_create_irq +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd73474e find_get_page +EXPORT_SYMBOL vmlinux 0xcd74913a __scm_destroy +EXPORT_SYMBOL vmlinux 0xcd7c2232 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xcd89490a block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xcd9982a8 tcf_hash_search +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcdc40fae panic_notifier_list +EXPORT_SYMBOL vmlinux 0xcdc79d9a uart_match_port +EXPORT_SYMBOL vmlinux 0xcdd4ccd6 lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcdfc7507 phy_connect_direct +EXPORT_SYMBOL vmlinux 0xce248418 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce4c5b30 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce85521a rfkill_alloc +EXPORT_SYMBOL vmlinux 0xce88efb4 boot_cpu_data +EXPORT_SYMBOL vmlinux 0xcea3836e netdev_printk +EXPORT_SYMBOL vmlinux 0xcebd1816 dquot_acquire +EXPORT_SYMBOL vmlinux 0xcec25c1f kunmap +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf077873 tcp_proc_register +EXPORT_SYMBOL vmlinux 0xcf2c8580 sock_no_listen +EXPORT_SYMBOL vmlinux 0xcf39b666 netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0xcf447281 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xcf45ec47 generic_writepages +EXPORT_SYMBOL vmlinux 0xcf5ee3e2 inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf749d96 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0xcf74a2c6 md_check_recovery +EXPORT_SYMBOL vmlinux 0xcf8c7b94 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0xcfa2a7cf block_read_full_page +EXPORT_SYMBOL vmlinux 0xcfa66841 unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0xcfccdf08 seq_release_private +EXPORT_SYMBOL vmlinux 0xcfe05d4d register_kmmio_probe +EXPORT_SYMBOL vmlinux 0xcff6df27 file_ns_capable +EXPORT_SYMBOL vmlinux 0xd009d46e arp_send +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0216784 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0xd0422342 devm_ioremap +EXPORT_SYMBOL vmlinux 0xd06d2d3b sock_sendmsg +EXPORT_SYMBOL vmlinux 0xd0720a17 on_each_cpu_cond +EXPORT_SYMBOL vmlinux 0xd087b2a5 path_put +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0ad5cc8 __genl_register_family +EXPORT_SYMBOL vmlinux 0xd0bb156d eth_header_parse +EXPORT_SYMBOL vmlinux 0xd0c095f5 napi_gro_receive +EXPORT_SYMBOL vmlinux 0xd0c09b5f __register_binfmt +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0d6e3d2 add_disk +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +EXPORT_SYMBOL vmlinux 0xd0df7035 default_llseek +EXPORT_SYMBOL vmlinux 0xd0e53603 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0ef3fb7 inet6_unregister_icmp_sender +EXPORT_SYMBOL vmlinux 0xd0f0d945 down_read +EXPORT_SYMBOL vmlinux 0xd0f1ef60 scsi_finish_command +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd0ff0859 pci_get_slot +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd12f91a2 tty_name +EXPORT_SYMBOL vmlinux 0xd14c149e ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xd153733d mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xd165254e tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0xd1652a93 acpi_info +EXPORT_SYMBOL vmlinux 0xd17313a8 kern_path +EXPORT_SYMBOL vmlinux 0xd17bdc6b have_submounts +EXPORT_SYMBOL vmlinux 0xd1816f32 frontswap_writethrough +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd194ed8e __frontswap_test +EXPORT_SYMBOL vmlinux 0xd19662f0 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0xd1968202 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xd196c9be kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xd1ae7856 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xd1c36e64 console_start +EXPORT_SYMBOL vmlinux 0xd1f001e5 pnp_possible_config +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd1fbc2a7 dump_emit +EXPORT_SYMBOL vmlinux 0xd220cf8a jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0xd221768f d_alloc_name +EXPORT_SYMBOL vmlinux 0xd231b1d5 fb_pan_display +EXPORT_SYMBOL vmlinux 0xd2329de3 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd25fc819 audit_log_start +EXPORT_SYMBOL vmlinux 0xd266efe7 mempool_create +EXPORT_SYMBOL vmlinux 0xd26b26b7 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd282c63e pci_disable_msix +EXPORT_SYMBOL vmlinux 0xd2894e95 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0xd2af138b reservation_ww_class +EXPORT_SYMBOL vmlinux 0xd2bf79c1 noop_fsync +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2e6a582 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd2ffb0a1 simple_readpage +EXPORT_SYMBOL vmlinux 0xd31f8920 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0xd3273eb0 bio_map_user +EXPORT_SYMBOL vmlinux 0xd341a183 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xd34f3951 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0xd352a693 account_page_dirtied +EXPORT_SYMBOL vmlinux 0xd35e249a _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0xd37d7cb3 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xd3991b9d netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0xd3d0757e generic_file_fsync +EXPORT_SYMBOL vmlinux 0xd3dcab0b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xd3ea7760 inet_add_offload +EXPORT_SYMBOL vmlinux 0xd40b6e55 dentry_open +EXPORT_SYMBOL vmlinux 0xd40ca7fb consume_skb +EXPORT_SYMBOL vmlinux 0xd44dbf46 ip6_frag_match +EXPORT_SYMBOL vmlinux 0xd47dd8ba sync_blockdev +EXPORT_SYMBOL vmlinux 0xd4829130 udplite_prot +EXPORT_SYMBOL vmlinux 0xd4835ef8 dmi_check_system +EXPORT_SYMBOL vmlinux 0xd48a90e2 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xd48e3c05 dev_disable_lro +EXPORT_SYMBOL vmlinux 0xd4949370 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xd4a070a3 set_binfmt +EXPORT_SYMBOL vmlinux 0xd4a37e28 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xd4a65e20 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xd4ac4247 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xd4c3b174 printk_emit +EXPORT_SYMBOL vmlinux 0xd4d46eb1 __getblk +EXPORT_SYMBOL vmlinux 0xd4f0948f set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xd50471fd __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xd507007e pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd53cd06d seq_release +EXPORT_SYMBOL vmlinux 0xd53cf6d5 devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0xd53efc2f rtnl_create_link +EXPORT_SYMBOL vmlinux 0xd54a6372 blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0xd5589f9f dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xd55f62dd posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xd57f2fe7 register_netdevice +EXPORT_SYMBOL vmlinux 0xd5a98b6d unlock_new_inode +EXPORT_SYMBOL vmlinux 0xd5b32e19 __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0xd5b9dfd4 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xd5dd83c6 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0xd5e975c6 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd5fe6fac ppp_dev_name +EXPORT_SYMBOL vmlinux 0xd602cdda stop_tty +EXPORT_SYMBOL vmlinux 0xd60ecbd3 netlink_capable +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd62bc38b wireless_send_event +EXPORT_SYMBOL vmlinux 0xd63a368e install_exec_creds +EXPORT_SYMBOL vmlinux 0xd63ac3f3 skb_clone +EXPORT_SYMBOL vmlinux 0xd648e564 fb_match_mode +EXPORT_SYMBOL vmlinux 0xd6717ebf dev_driver_string +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd6941e11 inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6c30bd9 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xd6e3d4d8 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xd6e9b532 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f816dc devm_gpiod_get_index +EXPORT_SYMBOL vmlinux 0xd717bf42 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xd719ce1f xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xd75a4760 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xd75c64a0 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd7889e86 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xd78dc5a7 qdisc_watchdog_schedule_ns +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd79f9bca sock_from_file +EXPORT_SYMBOL vmlinux 0xd7a43212 override_creds +EXPORT_SYMBOL vmlinux 0xd7a6b498 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xd7b13406 acpi_device_set_power +EXPORT_SYMBOL vmlinux 0xd7bd3af2 add_wait_queue +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd7f32256 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xd84cb79d mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xd85833cb __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0xd8805741 cfb_imageblit +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8abecb0 igrab +EXPORT_SYMBOL vmlinux 0xd8b61804 bdi_unregister +EXPORT_SYMBOL vmlinux 0xd8ba8613 vlan_vid_add +EXPORT_SYMBOL vmlinux 0xd8c72cf0 ifla_policy +EXPORT_SYMBOL vmlinux 0xd8d44707 inet_confirm_addr +EXPORT_SYMBOL vmlinux 0xd8da6f5b devm_ioport_map +EXPORT_SYMBOL vmlinux 0xd8ded085 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8eae436 __brelse +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd91c17cf neigh_table_init +EXPORT_SYMBOL vmlinux 0xd9201310 set_bdi_congested +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd9354bc8 vfs_readv +EXPORT_SYMBOL vmlinux 0xd966d9f7 user_path_at +EXPORT_SYMBOL vmlinux 0xd969b2c7 amd_e400_c1e_detected +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd990546c lg_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xd9a084bf pv_cpu_ops +EXPORT_SYMBOL vmlinux 0xd9a9bb30 getname +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda0c3849 idr_destroy +EXPORT_SYMBOL vmlinux 0xda17486b ps2_command +EXPORT_SYMBOL vmlinux 0xda2478d0 param_ops_short +EXPORT_SYMBOL vmlinux 0xda35bbfa __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda6ca0d7 generic_fillattr +EXPORT_SYMBOL vmlinux 0xda7018b6 dev_addr_flush +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8fd495 isapnp_write_byte +EXPORT_SYMBOL vmlinux 0xdaa0668d tc_classify +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdb5223b6 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xdb5d632c generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb6b75bc ndo_dflt_bridge_getlink +EXPORT_SYMBOL vmlinux 0xdb753ff0 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb77ec8f blkdev_issue_write_same +EXPORT_SYMBOL vmlinux 0xdb7eaf05 mem_map +EXPORT_SYMBOL vmlinux 0xdb92087e key_type_keyring +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbe35d7c sk_dst_check +EXPORT_SYMBOL vmlinux 0xdbf91dc1 ida_init +EXPORT_SYMBOL vmlinux 0xdc02ce57 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc19faf4 inet_frag_kill +EXPORT_SYMBOL vmlinux 0xdc351d63 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc570f62 lg_global_unlock +EXPORT_SYMBOL vmlinux 0xdc57f532 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0xdc59cdc4 __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0xdc625a9d simple_open +EXPORT_SYMBOL vmlinux 0xdc64ffe9 may_umount +EXPORT_SYMBOL vmlinux 0xdc7bc719 inet_frags_init +EXPORT_SYMBOL vmlinux 0xdc8277c3 pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0xdc9c0012 inode_init_once +EXPORT_SYMBOL vmlinux 0xdcbc2f72 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xdcea3dbf build_skb +EXPORT_SYMBOL vmlinux 0xdcef5868 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xdcf95f32 try_to_release_page +EXPORT_SYMBOL vmlinux 0xdd070bc6 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd1a2871 down +EXPORT_SYMBOL vmlinux 0xdd49a377 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0xdd562e11 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xddba1054 tc_classify_compat +EXPORT_SYMBOL vmlinux 0xddbc640e udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xddc5e25f from_kuid +EXPORT_SYMBOL vmlinux 0xddd0a0e0 kobject_init +EXPORT_SYMBOL vmlinux 0xde078f70 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xde0983dc tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xde10eb10 param_set_invbool +EXPORT_SYMBOL vmlinux 0xde16dc16 tboot +EXPORT_SYMBOL vmlinux 0xde19be3a mdiobus_read +EXPORT_SYMBOL vmlinux 0xde2c3a72 key_alloc +EXPORT_SYMBOL vmlinux 0xde52e94a phy_start +EXPORT_SYMBOL vmlinux 0xde5a4e6b tcp_init_cgroup +EXPORT_SYMBOL vmlinux 0xde7d0aa1 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdea5ba56 uart_update_timeout +EXPORT_SYMBOL vmlinux 0xdebe94e3 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0xdeca3bc1 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xdee54078 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xdeef02fe scsi_print_command +EXPORT_SYMBOL vmlinux 0xdef9ecd7 mount_subtree +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf48a0eb flex_array_put +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf5830fd fb_blank +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf656f14 __cleancache_get_page +EXPORT_SYMBOL vmlinux 0xdf68cdda vfs_symlink +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfbebaa7 vc_cons +EXPORT_SYMBOL vmlinux 0xdfc3f40d dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfd80e3b phy_attach +EXPORT_SYMBOL vmlinux 0xdfd91a89 pci_dev_put +EXPORT_SYMBOL vmlinux 0xdfde8942 iget_locked +EXPORT_SYMBOL vmlinux 0xe0197ca3 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xe028dce2 get_phy_device +EXPORT_SYMBOL vmlinux 0xe02f502e mount_nodev +EXPORT_SYMBOL vmlinux 0xe03087ee names_cachep +EXPORT_SYMBOL vmlinux 0xe03c686f scsi_unregister +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe08012b4 user_revoke +EXPORT_SYMBOL vmlinux 0xe088a5dd cleancache_register_ops +EXPORT_SYMBOL vmlinux 0xe08d9afc mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xe08e2f05 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xe0a16a20 intel_scu_ipc_i2c_cntrl +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b8f946 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xe0b963da fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xe0c7cf9a mmc_remove_host +EXPORT_SYMBOL vmlinux 0xe0f88f92 blk_put_request +EXPORT_SYMBOL vmlinux 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL vmlinux 0xe11c1ce4 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xe12c616b start_tty +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe1557299 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xe15a061f dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0xe16c346a set_device_ro +EXPORT_SYMBOL vmlinux 0xe174796d proc_create_data +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1799692 tty_write_room +EXPORT_SYMBOL vmlinux 0xe193cab5 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xe19f8ccb submit_bh +EXPORT_SYMBOL vmlinux 0xe1aef8dc __page_symlink +EXPORT_SYMBOL vmlinux 0xe1b5330c mmc_gpio_free_ro +EXPORT_SYMBOL vmlinux 0xe1b6421d skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xe1c560cd input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0xe1cae912 pnp_register_driver +EXPORT_SYMBOL vmlinux 0xe1cb52f7 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xe1d3c08b remove_proc_entry +EXPORT_SYMBOL vmlinux 0xe1d6fd8b qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xe1e7a0fa tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe2034151 kernel_read +EXPORT_SYMBOL vmlinux 0xe2034333 acpi_evaluate_hotplug_ost +EXPORT_SYMBOL vmlinux 0xe2183e94 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe23f2f91 mmc_can_erase +EXPORT_SYMBOL vmlinux 0xe24ad960 __skb_checksum +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe250937f inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0xe2974701 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0xe29a2f89 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xe29e1d0e out_of_line_wait_on_atomic_t +EXPORT_SYMBOL vmlinux 0xe2c93d5f dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e2d4f0 udp_ioctl +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe30eb51d generic_file_open +EXPORT_SYMBOL vmlinux 0xe3113b8e jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xe319eb24 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xe348fbd1 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xe34e8794 pci_get_device +EXPORT_SYMBOL vmlinux 0xe362b0cf udp_proc_register +EXPORT_SYMBOL vmlinux 0xe3658139 skb_orphan_partial +EXPORT_SYMBOL vmlinux 0xe381968f phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xe39231ad dev_mc_flush +EXPORT_SYMBOL vmlinux 0xe3c8da97 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3dddfdd vfs_writev +EXPORT_SYMBOL vmlinux 0xe3eb01b8 __napi_schedule +EXPORT_SYMBOL vmlinux 0xe41e4c35 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xe42d5b5d agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0xe45f60d8 __wake_up +EXPORT_SYMBOL vmlinux 0xe45f7a43 mmc_read_bkops_status +EXPORT_SYMBOL vmlinux 0xe4609980 may_umount_tree +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe499f538 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xe4a6b82e request_firmware +EXPORT_SYMBOL vmlinux 0xe4bac66f bd_set_size +EXPORT_SYMBOL vmlinux 0xe4d65fa9 __get_user_pages +EXPORT_SYMBOL vmlinux 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL vmlinux 0xe50f904f intel_scu_ipc_ioread16 +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe51dd4c9 mdio_bus_type +EXPORT_SYMBOL vmlinux 0xe5208918 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe5339036 inet6_getname +EXPORT_SYMBOL vmlinux 0xe55b3783 udp_poll +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe57ff7d4 sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0xe5861292 d_move +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe59144c6 skb_seq_read +EXPORT_SYMBOL vmlinux 0xe59a0119 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xe59cc99a dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xe5acb712 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xe5adb934 blk_bio_map_sg +EXPORT_SYMBOL vmlinux 0xe5afa07e tty_unthrottle +EXPORT_SYMBOL vmlinux 0xe5afd3b9 vga_switcheroo_init_domain_pm_ops +EXPORT_SYMBOL vmlinux 0xe5b5c384 dma_mmap_from_coherent +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5d51a2b arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0xe5db2c67 unregister_md_personality +EXPORT_SYMBOL vmlinux 0xe5e760d1 key_payload_reserve +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5f42f9b eisa_bus_type +EXPORT_SYMBOL vmlinux 0xe61076dc agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0xe6149ba1 vfs_setpos +EXPORT_SYMBOL vmlinux 0xe62faf45 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xe64722b9 i2c_master_send +EXPORT_SYMBOL vmlinux 0xe64d98fe rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xe64dfa24 padata_add_cpu +EXPORT_SYMBOL vmlinux 0xe65f9767 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xe6896948 neigh_connected_output +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe697dae0 blk_register_region +EXPORT_SYMBOL vmlinux 0xe69f3967 tty_unlock +EXPORT_SYMBOL vmlinux 0xe6a9c026 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL vmlinux 0xe6aceb10 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xe6b3fe21 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xe6bcbda7 pci_enable_obff +EXPORT_SYMBOL vmlinux 0xe6be4950 netlink_unicast +EXPORT_SYMBOL vmlinux 0xe6c203e2 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0xe6d134a1 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xe6d32a24 mb_cache_create +EXPORT_SYMBOL vmlinux 0xe6d4dbef blk_requeue_request +EXPORT_SYMBOL vmlinux 0xe6dcb17c blk_recount_segments +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe754e93d twl6040_get_pll +EXPORT_SYMBOL vmlinux 0xe76046ea tcp_child_process +EXPORT_SYMBOL vmlinux 0xe7722171 flex_array_free +EXPORT_SYMBOL vmlinux 0xe78133e9 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xe781b5f6 intel_scu_ipc_readv +EXPORT_SYMBOL vmlinux 0xe798d71c cpu_core_map +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7f9d9dc pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0xe80669c4 dm_register_target +EXPORT_SYMBOL vmlinux 0xe824f9c9 ppp_input_error +EXPORT_SYMBOL vmlinux 0xe851bb05 queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xe85f1cc3 xen_biovec_phys_mergeable +EXPORT_SYMBOL vmlinux 0xe863f792 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xe86b2af5 ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe879cb35 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xe88e7a93 lg_global_lock +EXPORT_SYMBOL vmlinux 0xe8925cdc lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xe898bfba crc32_le_combine +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8b68849 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0xe8bea3bc qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xe8dd2892 lro_flush_all +EXPORT_SYMBOL vmlinux 0xe909e699 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe918b454 max8998_read_reg +EXPORT_SYMBOL vmlinux 0xe91eb325 inet6_ioctl +EXPORT_SYMBOL vmlinux 0xe9214cd7 sk_release_kernel +EXPORT_SYMBOL vmlinux 0xe93bf59d twl6040_set_pll +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe956e172 register_key_type +EXPORT_SYMBOL vmlinux 0xe987fa6c d_instantiate +EXPORT_SYMBOL vmlinux 0xe989a4ab neigh_ifdown +EXPORT_SYMBOL vmlinux 0xe995bf72 fbcon_set_rotate +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xea053c94 lookup_one_len +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea16dd4c tcp_destroy_cgroup +EXPORT_SYMBOL vmlinux 0xea180437 blk_mq_free_single_hw_queue +EXPORT_SYMBOL vmlinux 0xea1a8855 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xea2c55ce send_sig_info +EXPORT_SYMBOL vmlinux 0xea2dc673 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xea36afd2 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0xea43fa00 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xea45e77c fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xea4fc709 get_fs_type +EXPORT_SYMBOL vmlinux 0xea7636d7 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea7ac1ed input_get_keycode +EXPORT_SYMBOL vmlinux 0xea7b8a44 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xea880c71 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xea904301 write_one_page +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea970d81 i2c_transfer +EXPORT_SYMBOL vmlinux 0xeaa86571 fddi_type_trans +EXPORT_SYMBOL vmlinux 0xeabb042d pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb106edd iterate_dir +EXPORT_SYMBOL vmlinux 0xeb127e21 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xeb21c8d1 phy_init_eee +EXPORT_SYMBOL vmlinux 0xeb29dfdc __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb55a931 __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xeb5a6dd9 sock_no_poll +EXPORT_SYMBOL vmlinux 0xeb6eef53 __pci_register_driver +EXPORT_SYMBOL vmlinux 0xebb1e2c3 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xebb4d659 netdev_notify_peers +EXPORT_SYMBOL vmlinux 0xebbe4c9b xfrm_register_type +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xec1aa6ef memzero_explicit +EXPORT_SYMBOL vmlinux 0xec21c476 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xec34a1a3 devfreq_resume_device +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec7d3f5a netif_device_detach +EXPORT_SYMBOL vmlinux 0xecaeddc9 pci_biosrom_size +EXPORT_SYMBOL vmlinux 0xecb721f1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xecc364ba arp_invalidate +EXPORT_SYMBOL vmlinux 0xeccd3e0c acpi_handle_printk +EXPORT_SYMBOL vmlinux 0xecd0aa20 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xecf5221a phy_disconnect +EXPORT_SYMBOL vmlinux 0xed2aa022 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0xed4ed525 capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0xed597524 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xed730d9f ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0xed77361e skb_free_datagram +EXPORT_SYMBOL vmlinux 0xed7e1295 gen_pool_create +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xed9f9a20 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedd035fd simple_rename +EXPORT_SYMBOL vmlinux 0xede170f3 lockref_get_or_lock +EXPORT_SYMBOL vmlinux 0xedfc67ec security_path_symlink +EXPORT_SYMBOL vmlinux 0xee28b19b dm_unregister_target +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee38981f netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0xee3b608c __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xee401d62 set_pages_wb +EXPORT_SYMBOL vmlinux 0xee728e0a jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee8ca7b6 simple_dentry_operations +EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeccb899 security_path_truncate +EXPORT_SYMBOL vmlinux 0xeef161aa groups_free +EXPORT_SYMBOL vmlinux 0xeef3436c datagram_poll +EXPORT_SYMBOL vmlinux 0xef0127f1 md_unregister_thread +EXPORT_SYMBOL vmlinux 0xef1b3968 devm_clk_get +EXPORT_SYMBOL vmlinux 0xef1d35b7 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xef1dde0e setup_new_exec +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xef9fd657 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xefbb5c69 mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0xefc88099 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xefdb0c32 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefdefc1e __mutex_init +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xeff4bb5d vfs_unlink +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0040079 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xf0187927 __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0xf01a9cfd invalidate_bdev +EXPORT_SYMBOL vmlinux 0xf024859a remap_vmalloc_range_partial +EXPORT_SYMBOL vmlinux 0xf0399535 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xf05987fc simple_lookup +EXPORT_SYMBOL vmlinux 0xf05ffa15 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xf0619801 timekeeping_clocktai +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf07882d3 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xf07c3ef3 devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0xf087137d __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0xf09de776 get_random_int +EXPORT_SYMBOL vmlinux 0xf0bb9ab3 kunmap_high +EXPORT_SYMBOL vmlinux 0xf0ce7d50 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xf0cf74a1 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xf0d68ed6 clk_register_clkdevs +EXPORT_SYMBOL vmlinux 0xf0ee8c2e bio_integrity_split +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fa05fe dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xf0fd3863 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf1002188 set_security_override +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf1241a06 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xf12d331c lg_local_lock +EXPORT_SYMBOL vmlinux 0xf13feb57 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0xf147dcb2 hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0xf1491342 blk_peek_request +EXPORT_SYMBOL vmlinux 0xf14d73c6 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xf15001ee fail_migrate_page +EXPORT_SYMBOL vmlinux 0xf15e5be0 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0xf17ea5eb uart_resume_port +EXPORT_SYMBOL vmlinux 0xf18242e1 atomic64_set_cx8 +EXPORT_SYMBOL vmlinux 0xf18fa2cc unregister_nls +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1a3bff7 eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0xf1c7f5b3 input_unregister_handler +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1dfc72d md_integrity_register +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1faac3a _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf2137907 bdget +EXPORT_SYMBOL vmlinux 0xf2357254 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL vmlinux 0xf266c8c6 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xf267e775 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xf27d01a4 bioset_create +EXPORT_SYMBOL vmlinux 0xf28bce32 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0xf28ed6e2 machine_to_phys_nr +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a0af8f backlight_device_registered +EXPORT_SYMBOL vmlinux 0xf2afa65c scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xf2b1ac8e __getnstimeofday +EXPORT_SYMBOL vmlinux 0xf2b78ae8 get_super_thawed +EXPORT_SYMBOL vmlinux 0xf2d54a7f phy_detach +EXPORT_SYMBOL vmlinux 0xf2dc0d07 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0xf2f06d4f dquot_commit_info +EXPORT_SYMBOL vmlinux 0xf2f22879 agp_copy_info +EXPORT_SYMBOL vmlinux 0xf3049b81 follow_up +EXPORT_SYMBOL vmlinux 0xf312cb9d ucs2_strsize +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf32055e7 dev_base_lock +EXPORT_SYMBOL vmlinux 0xf3216fb5 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xf3337d51 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xf333ba0b dm_kobject_release +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf37260ab _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xf383530b nf_nat_decode_session_hook +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39195b9 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf3986b06 acpi_os_map_generic_address +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3d53894 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xf40565b8 phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0xf40b2297 __crypto_memneq +EXPORT_SYMBOL vmlinux 0xf432cb1b pci_target_state +EXPORT_SYMBOL vmlinux 0xf43695c3 proc_set_user +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf44a78bf devfreq_remove_device +EXPORT_SYMBOL vmlinux 0xf46601ab wait_iff_congested +EXPORT_SYMBOL vmlinux 0xf4996f36 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xf49f1237 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4a9a118 inet6_add_offload +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4bb7be7 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xf4bdbeb9 __frontswap_invalidate_area +EXPORT_SYMBOL vmlinux 0xf4d5c2bf netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xf4d7ca69 gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f19e51 downgrade_write +EXPORT_SYMBOL vmlinux 0xf4f8dc66 dst_alloc +EXPORT_SYMBOL vmlinux 0xf502d273 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf536d22e acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf59666bf inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xf59d001c backlight_force_update +EXPORT_SYMBOL vmlinux 0xf5b10e67 acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0xf5befd51 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5ee5aa7 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0xf5fd4caa __starget_for_each_device +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf63b6662 fb_class +EXPORT_SYMBOL vmlinux 0xf63cad07 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xf65a3c46 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xf65ca051 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xf66e7c0e generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf68687be __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0xf6977e47 mutex_lock +EXPORT_SYMBOL vmlinux 0xf6ae8aec pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xf6b7a9cf mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf726d02f atomic64_add_unless_cx8 +EXPORT_SYMBOL vmlinux 0xf73ff360 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xf7406a92 agp_free_page_array +EXPORT_SYMBOL vmlinux 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xf745cb16 atomic64_sub_return_cx8 +EXPORT_SYMBOL vmlinux 0xf74f76fa unlock_page +EXPORT_SYMBOL vmlinux 0xf75440ba simple_transaction_read +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf766d7f4 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0xf7682b3c proc_symlink +EXPORT_SYMBOL vmlinux 0xf7693a9a devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0xf7925915 kill_fasync +EXPORT_SYMBOL vmlinux 0xf797b605 address_space_init_once +EXPORT_SYMBOL vmlinux 0xf7cdfc2a inet_del_protocol +EXPORT_SYMBOL vmlinux 0xf7e37635 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf82319ee uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xf827cb83 free_reserved_area +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf88bc740 alloc_fcdev +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf8c1a3f3 nla_put +EXPORT_SYMBOL vmlinux 0xf8c56097 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0xf8c8e503 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xf8ec713b pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf9370618 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf9461e5e gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xf96cc24d vmap +EXPORT_SYMBOL vmlinux 0xf97456ea _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xf974d58b kmem_cache_create +EXPORT_SYMBOL vmlinux 0xf99caac5 skb_copy +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9b6c380 update_region +EXPORT_SYMBOL vmlinux 0xf9b89d1f pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xf9be2f76 ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0xf9c367e0 iov_pages +EXPORT_SYMBOL vmlinux 0xf9c660c5 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xf9ce25b4 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xf9da04da blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xf9df4b27 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0xf9e73082 scnprintf +EXPORT_SYMBOL vmlinux 0xf9f38e4f pci_set_master +EXPORT_SYMBOL vmlinux 0xf9f69e6b sock_init_data +EXPORT_SYMBOL vmlinux 0xfa22058c tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xfa2f6b8e inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xfa30957c mempool_free +EXPORT_SYMBOL vmlinux 0xfa32d87b ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0xfa36eb3f max8998_update_reg +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa7f3156 wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0xfa7fe905 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xfa8b67a2 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0xfaa4d8fa pnp_activate_dev +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfac8efaa dev_mc_del +EXPORT_SYMBOL vmlinux 0xfac92fb7 netdev_err +EXPORT_SYMBOL vmlinux 0xfae67b1f cap_mmap_addr +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb054be7 acpi_gpiochip_request_interrupts +EXPORT_SYMBOL vmlinux 0xfb0cecfd vm_event_states +EXPORT_SYMBOL vmlinux 0xfb2681df cdrom_release +EXPORT_SYMBOL vmlinux 0xfb2c2ec7 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xfb3bb618 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xfb581683 alloc_anon_inode +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb88c55b dst_discard +EXPORT_SYMBOL vmlinux 0xfb8fcd13 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xfb918ee0 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xfb94103e __clzdi2 +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbb17ce2 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xfbedbb12 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xfc019fd2 block_write_full_page +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc1187d2 skb_split +EXPORT_SYMBOL vmlinux 0xfc364080 d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc42421c generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xfc562165 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xfc65459a kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xfc8466af ilookup5 +EXPORT_SYMBOL vmlinux 0xfc872fd1 get_ibs_caps +EXPORT_SYMBOL vmlinux 0xfc8b1d24 input_allocate_device +EXPORT_SYMBOL vmlinux 0xfca11a8b dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcac0d40 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL vmlinux 0xfcbe3454 lock_rename +EXPORT_SYMBOL vmlinux 0xfcbf21c2 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xfcc1a607 dst_release +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfcfb0a2d blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0xfd0192da gen_pool_dma_alloc +EXPORT_SYMBOL vmlinux 0xfd2788ee d_genocide +EXPORT_SYMBOL vmlinux 0xfd350402 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0xfd3b8fe6 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xfd464d52 sk_stream_error +EXPORT_SYMBOL vmlinux 0xfd485ec8 seq_printf +EXPORT_SYMBOL vmlinux 0xfd512321 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd79ba1b tty_set_operations +EXPORT_SYMBOL vmlinux 0xfd980b03 scsi_get_command +EXPORT_SYMBOL vmlinux 0xfd9947a4 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xfd99623a ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdbb2ae8 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xfdbe0288 pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0xfdc552ce mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xfddba7e1 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xfdee7d42 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xfdf31322 __inet_stream_connect +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xfe04b0ad netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0xfe4e5958 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe716360 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe91404c pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xfe9ebbbb acpi_osi_is_win8 +EXPORT_SYMBOL vmlinux 0xfeb7570d dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xfed872dd __module_get +EXPORT_SYMBOL vmlinux 0xfeda18a6 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff08403c scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xff1213ac sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0xff1932a2 search_binary_handler +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff3c7dbc scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xff455fea mmc_erase +EXPORT_SYMBOL vmlinux 0xff480992 dump_fpu +EXPORT_SYMBOL vmlinux 0xff5e3336 agp_find_bridge +EXPORT_SYMBOL vmlinux 0xff5f29d5 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff733bd1 pcim_pin_device +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff821229 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xff985353 init_buffer +EXPORT_SYMBOL vmlinux 0xff98a75e dquot_free_inode +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffcdf884 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0xffd3cc02 generic_write_checks +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffe70f4f create_empty_buffers +EXPORT_SYMBOL vmlinux 0xffee2b98 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xffee49cc inetdev_by_index +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0x7060bf0a crypto_aes_encrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0xe409b491 crypto_aes_decrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x33f3c4ab glue_ctr_crypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x4156a087 glue_xts_crypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x77c25140 glue_cbc_decrypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x8f02ac4d glue_xts_crypt_128bit_one +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0xc7ebbeba glue_ctr_crypt_final_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0xdbfb9fd5 glue_cbc_encrypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0xfca8dc5a glue_ecb_crypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-i586 0x28afd262 twofish_enc_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-i586 0x6f068d90 twofish_dec_blk +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x07415e79 kvm_read_guest_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0c772234 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x10afde5b kvm_apic_set_eoi_accelerated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x110e32c5 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1184d78a kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x11d1dbbc kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12e3a1fc kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x14402199 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x16859f00 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x17ed8e79 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x18e257ab __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1a4342a5 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1d5de7ce gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1d5f510f kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x205c032a kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x21fbad1f gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2433d6fd __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2743262c kvm_arch_unregister_noncoherent_dma +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2784425e kvm_vcpu_kick +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27a2dd18 kvm_rdpmc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27b30d90 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e8c9ca4 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f0e0303 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f636c31 kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x35f43190 gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x368da324 kvm_mmu_flush_tlb +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x375ad363 gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3a1ffcad kvm_mmu_unload +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3da00346 mark_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3ee59a92 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3f20aead kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3fb36215 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x44909433 x86_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x449e4759 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x45ab1940 kvm_read_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x45c68b79 kvm_init_shadow_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x47f6c863 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4dd14e5b kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x54c15b20 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x54cbeed1 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b6500 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x55ef5ef7 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x562a7f2d kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56bc4504 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x57e68ff4 kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5a0bca18 kvm_set_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5aa6a788 kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5bc839f4 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5e49fdf1 kvm_vcpu_block +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6026d274 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x62ec03cd kvm_init_shadow_ept_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x63ec3bf2 kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x64020e10 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x65f18c88 handle_mmio_page_fault_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x68841d32 kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x68adb9f8 kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x76070cba kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x77a5a858 kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c0168e1 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7cb26760 kvm_complete_insn_gp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x801ea149 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x80e87412 kvm_mmu_unprotect_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x82cd0568 gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x82dba7bf kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x831327da kvm_max_guest_tsc_khz +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x84ceb28c __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8617ecac kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8645d09b kvm_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8698c8e6 kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8bb03e6e __tracepoint_kvm_write_tsc_offset +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e66fd0b kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e9810e4 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x92cfef51 kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x97a53d3c kvm_apic_write_nodecode +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x97b9f970 kvm_mmu_sync_roots +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a824d7d kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9b9b1ed5 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9d017e68 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa03e588c kvm_write_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa0ec3a0a gfn_to_hva_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa5d7f297 kvm_set_xcr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa69daf3d kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaac7c868 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaaeb51f3 kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xac8cdc7c kvm_get_dirty_log +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xacf7f97c gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xad5c7b16 kvm_read_guest_page_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb10aed0e kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb19f9c8b kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb284eed4 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb2a65cca __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb3c54371 kvm_irq_has_notifier +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb3ce61cc kvm_arch_register_noncoherent_dma +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb3ffe15a kvm_inject_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb9b448be kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba9ed435 kvm_mmu_set_mmio_spte_mask +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbbc58aeb kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbbf6613c kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc2b538e __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbf05ab76 __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbf402d42 kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc345650a kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc3a6fe3a kvm_write_guest_virt_system +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc57eb7cc __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc5f45fea kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc723ac6d kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc7b0dea8 kvm_arch_has_noncoherent_dma +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcb67ce10 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0459e67 kvm_has_tsc_control +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd25da80d kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xda9cc46a kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe150aa46 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe16d3eb9 kvm_valid_efer +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe2123114 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe27fcaf1 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe8f83f90 gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe9790e86 __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xea813214 kvm_apic_update_irr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xec35f541 kvm_flush_remote_tlbs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xed737401 kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xef1f27fa kvm_lapic_set_eoi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeff5e46e kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf3256d76 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf831b5f8 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfb21437d gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfcff5933 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfd0d0ada fx_init +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x06b8c780 ablk_encrypt +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x22cd2e0a __ablk_encrypt +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x33c0aa3e ablk_exit +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x430b7d14 ablk_decrypt +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x587423aa ablk_set_key +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x5a5b1093 ablk_init +EXPORT_SYMBOL_GPL crypto/ablk_helper 0xa113f1af ablk_init_common +EXPORT_SYMBOL_GPL crypto/af_alg 0x00e57f2a af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x2377119d af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x7e7cde9c af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x8f335244 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x93957c0c af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xa8f8777e af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xc987b7df af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xdc514140 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xe2daecd0 af_alg_release +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x9763ef4d async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x68cdf3dd async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xe552d695 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x6995c9d0 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x768ca9fe async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x1c953e4e async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x1fba523e async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x587b5ca9 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xc540f95c async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x271dc323 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xa8e00e12 async_xor +EXPORT_SYMBOL_GPL crypto/authenc 0x587ef278 crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0xb2adfe89 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x27278ca9 __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x4a2a3ca6 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0xb543ae09 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1291971c __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1758daa9 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1e2c961f __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x8f04034a __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast_common 0x08aa6fb7 cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x0c5fbf8a cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xe39dd4b4 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0xee83a4f3 cast_s4 +EXPORT_SYMBOL_GPL crypto/cryptd 0x09d00ea0 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x31c90b14 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x61736b86 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x6992c7e8 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x7ad31918 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x805322af cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x9301acaa cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xb88f8ec2 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xc954e034 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xf321c5c1 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/lrw 0x3864eb66 lrw_free_table +EXPORT_SYMBOL_GPL crypto/lrw 0xb6a1e385 lrw_crypt +EXPORT_SYMBOL_GPL crypto/lrw 0xcd074900 lrw_init_table +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x5ddb33e9 __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x77b39cb4 __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x8a1a99ad __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xbf6690b9 serpent_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x6c3229bb __twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xd35146c7 twofish_setkey +EXPORT_SYMBOL_GPL crypto/xts 0x08e9ebce xts_crypt +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x1c8984c7 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x87bd07bd acpi_smbus_register_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xb9a141b0 acpi_smbus_read +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xe1372311 acpi_smbus_write +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x03ffcb7c ahci_platform_suspend +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x261d48bc ahci_platform_disable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x3b52584a ahci_platform_get_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x484656ab ahci_platform_init_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x505568ac ahci_platform_resume +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x545d1205 ahci_platform_enable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x7bbc781a ahci_platform_resume_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xa87dba6f ahci_platform_ops +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xd565868d ahci_platform_disable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xd83a4df0 ahci_platform_enable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xe8ee6789 ahci_platform_suspend_host +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0c909f92 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x169f8540 ahci_qc_issue +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1dc49eb1 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1eea727b ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2124ec33 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x39d76e60 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3e594541 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x45588d06 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4be5f57c ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4efd7db4 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6264bdb1 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x627d1e40 ahci_start_fis_rx +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x694f923e ahci_thread_fn +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6e05c4e7 ahci_hw_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x88576cfd ahci_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8b2a9c02 ahci_restart_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8ba854ac ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x99209103 ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa5df4245 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa646c9f9 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcccd544b ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xdbe39e48 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe4c8c8e9 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xeb359313 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xfb5d1d8d ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x364d01de __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x0ff9fea7 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x18c9e9a0 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1a5d2176 bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x4d452694 bcma_find_core +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5e44da7d __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x66755943 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6730f118 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6a5e0bc9 bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x768812e8 bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa54aff79 bcma_core_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa63b5440 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xade6ba7b bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb0290703 bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb94b5ed5 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xcf9cb60b bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd00f0b7e bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd919cf20 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xde2a3085 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe0de42f2 bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe37fedd2 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe5f725a0 bcma_core_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe9793eee bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf4333323 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x100bac12 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x29b29898 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3320806b btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x502c1853 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x51b6ab74 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x75c7fcfa btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd0f9053a btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe23107f5 btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe427a7b2 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf0295d41 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/char/scx200_gpio 0x10a8c16a scx200_gpio_ops +EXPORT_SYMBOL_GPL drivers/dca/dca 0x01a33ab9 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x104acb74 unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x15af4e83 alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x5d9d940c register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x83871643 free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xa00b8187 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xac34ecec dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0xca9c74c1 dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0xcc2be3a7 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x1e1df7f4 dw_dma_resume +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x4b140424 dw_dma_suspend +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x5135feb3 dw_dma_shutdown +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x8f4c118a dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xbc45a629 dw_dma_remove +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0552c3fe edac_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0955f00d find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x409c07bc edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x445401e3 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4d529ead edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x517a9f04 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x57d20607 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6d652a3f edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6fd84cc5 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x76fb978a edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7e69c8dd edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa6bb3338 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa812f24f edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xaa117386 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xaa56a9bc edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb13a99ef edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xba173220 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc07e4db9 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc353a115 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd18da94b edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xecd8cfac edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xef9d55d7 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfb96d23f edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1d34e996 pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x21626132 amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x737912b3 amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb30b7e56 amd_decode_mce +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xf4ade51f fw_card_release +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x93f8fe67 cs5535_gpio_set_irq +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xc0bb404a cs5535_gpio_setup_event +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x71cda701 bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0xc9057f2e bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x0a82c103 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x5ebd2c65 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x77ce5b0e drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xc7a4ac40 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xe597f3d1 drm_vm_open_locked +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x05876c69 i915_gpu_busy +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x08a7896d i915_gpu_raise +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x2b2c59ae i915_release_power_well +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x402468e9 i915_gpu_lower +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x500858b9 i915_read_mch_val +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x96108893 i915_request_power_well +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xb76bf2ac i915_get_cdclk_freq +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xe7237b0b i915_gpu_turbo_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x25344c22 ttm_dma_unpopulate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x6adf436b ttm_prime_fd_to_handle +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xce36343e ttm_prime_handle_to_fd +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xed7669af ttm_dma_page_alloc_debugfs +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xf79c14b3 ttm_dma_populate +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0da3d4a0 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x14a49ebd hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1570c5e7 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x17bd7e6a hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0x23ceff9c hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2b5d7c0c hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2ddb1785 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x30101994 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x42f3c992 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4563f73a hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4906a967 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4c0a359f __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5a1b1b08 hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5c044b11 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5dabe926 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5f7dcf95 hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6a449b31 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x734cbc8e hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x73f0b9a3 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7a750aff hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7b0b232c hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7e0ee36c hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8b8ccb99 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8c620437 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x911ada8a hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc1493a74 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc20d5a4a hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcf350d75 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd61412dd hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd68b788e hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xec300078 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xec8b8511 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xed6f00f7 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfeb4c08f hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfeee92e5 hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xbe11ca7c roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x0fd1085a roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x1a20c10c roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x230beac9 roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x43e2716b roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x9eaf710e roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xecc2c645 roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x110fde50 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x35d680c9 sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x8fbdb253 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x96c1c73f sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x988006e6 sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xae385ade sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xcb238859 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xdb7823d7 sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x1741315a hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x0032c6da hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x1509559d hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x24da3de7 hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x2f6a9b4d hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x3c74bbc4 hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x71141971 hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7b5ce0a7 hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x809c82d7 hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x8ab890d8 hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x933969a7 hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x9cffd2f0 hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xaa11b625 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xfa3699c1 hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x1f3c321b __vmbus_driver_register +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x204d28c6 vmbus_close +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x24853a1a vmbus_open +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x358fafa5 vmbus_prep_negotiate_resp +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x46a417ca vmbus_proto_version +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x489a447a vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x52bb6143 vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x9955dbe9 vmbus_get_outgoing_channel +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xa3c48d27 vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xcf3100d7 vmbus_set_sc_create_callback +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xd1f27ce4 vmbus_are_subchannels_present +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xd8e081c1 vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xe59c7020 vmbus_sendpacket_multipagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xf45dd651 hyperv_mmio +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xf6969072 vmbus_driver_unregister +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x6fc0d5c3 adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0xd432e877 adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0xda5bfa52 adt7x10_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x05364a94 pmbus_read_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x13e5cc37 pmbus_check_word_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x1513931e pmbus_check_byte_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x382a2791 pmbus_read_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x62cd5945 pmbus_do_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x700c3da5 pmbus_write_byte +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x8bb7d0d8 pmbus_clear_faults +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x9b6c8c1d pmbus_do_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xa1166034 pmbus_write_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xbd736d85 pmbus_get_driver_info +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xd7ce2a4e pmbus_clear_cache +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xe123a30e pmbus_set_page +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x05f2664d i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x071b6040 i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x145c7d5c i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x2eb0201d i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x4ae0b716 i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x88ea4e08 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x891f3f10 i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x917773ed i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xcda9d4d3 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x0f61832c nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x42fcc444 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x81ebd4f8 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x6b97198d i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xf11396b6 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x219c8cfe ad_sigma_delta_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x21f3986e ad_sd_calibrate_all +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x223652b4 ad_sd_init +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x299aefc0 ad_sd_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x3f1c98c6 ad_sd_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x90a444a1 ad_sd_set_comm +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xacecada1 ad_sd_read_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xcd748379 ad_sd_validate_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xde4f39c0 ad_sd_write_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x30967b53 adis_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x33580719 adis_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x5aaa7178 adis_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x6764bdb5 adis_write_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x6e2ee71d adis_initial_startup +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x8db5e5e3 adis_read_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xabde64a5 adis_reset +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xac7d6e20 adis_remove_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xbe4bc9cd adis_check_status +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xc013ed35 adis_update_scan_mode +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xf748d6e2 adis_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xfc391578 adis_probe_trigger +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x06b46d14 iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1426c898 devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x23674e54 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x267c0508 iio_channel_release_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x278b5c17 iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a1fab3c iio_channel_stop_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2ea3995d iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x30309920 iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x46420b32 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4dbe0aa0 iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5323e500 devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x557f6a98 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5ac23ca8 iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5b946ec0 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x60767e57 iio_update_demux +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x668e05d4 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6e3ce133 iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7a711aef iio_channel_start_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x81458317 iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8e2fe224 iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9778575f iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9f9a0c60 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xae042d16 iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb19b89be iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xca1899d3 devm_iio_trigger_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xce6498b9 iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xcfa20d24 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd3d4c05c iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xdc12d7fe iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xefc9c9ef devm_iio_device_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf880a5b7 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf8f96a7d iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xfb3490ef iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x2de6b40a input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xb9246552 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x097a88bb cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x903b966c cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xbaf2b37e cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x50a69553 cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x67b96a2b cyttsp_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x6a4e638d cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x8e6f2aca cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0xcf4d9e68 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1ba23cfd wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3680444c wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x406ed06a wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6089fbe1 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x67699cc6 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7b2c5adc wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8cc4d0f4 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x917acdae wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa9c1f965 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xcdca93d4 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd14bbc24 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xee2ed4bc wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x0fd4b20f ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x1b12ca64 ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x35ee9721 ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x58d5688d ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x58d6209b ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x76809916 ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x8d3d5ff5 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xca497e25 ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xe11a83ef ipack_device_add +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x23359aff unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xce1414b2 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x01eae61c gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x157369c4 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x22d05dd3 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2b206d5d gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x505eef1a gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x534a95e6 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x621ec9c1 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6fa623dd gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x74d82739 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x761c5689 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x788e21b3 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7c8a8f0e gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x93de396e gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa822527b gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdb6bfd45 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe941fb25 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfe08d901 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/leds/dell-led 0x86fd1ffb dell_app_wmi_led_set +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x2c5a4b10 lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x5cfb7b03 lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x7017b46f lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x74766a3d lp55xx_unregister_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x861b868d lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xbbcb3f1f lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xbdc9b525 lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xd472366a lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xf9057948 lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xfa3eb320 lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xfc369474 lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x749e05f2 ledtrig_flash_ctrl +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x7903e46e ledtrig_torch_ctrl +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x10e06e97 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x155ea9c7 __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1822fd23 __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1f2ba9ac __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x260d47cf __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x27831e89 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2dec45e0 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x347aebe1 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x41c861f0 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x49856e5a __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x50e8c39f __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x574ba881 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x628eb712 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6770a402 __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x785cfc9f __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7b488fb1 __tracepoint_bcache_alloc_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x91f2af34 __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa09069a3 __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa591c5d6 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa6890b59 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xaf60c34b __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb950d2ae __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbd4b89b6 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce0e6218 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd40fba32 __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdc5ea5a5 __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf58ce244 __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf5bcbdc7 __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfc1d5275 __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfcdf28c9 __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xffc308e4 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2cf73a75 dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x632c6734 dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x86af187c dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb6d5c65d dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb70b342a dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xc0a5a352 dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xc315dd07 dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xcb985e1d dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xe5744416 dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xebd06eaf dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0f4b03a3 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x22163b69 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x3909d3a8 dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x594952bd dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x62a23587 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x74dcd98c dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7c381a76 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9b2b253a dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xdc69e37a dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe004ee92 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe6024e59 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xebcc64a4 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xeca7949e dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x08395f30 dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x0f08fb51 dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x4b93c2a9 dm_cache_policy_get_name +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x657d2c8c dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x9d58f1ac dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xbacc317f dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xd1e331c7 dm_cache_policy_get_version +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x7a2b137f dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xcd00eea5 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x01d2f9ac dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x09472122 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x1372b8fe dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x33064c76 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa4fde1f6 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa8813ad6 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xaf9e32cd dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbbd6e93b dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc66ce277 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcab63c3d dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xee83d6e5 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf37a3cfe dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x01445176 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11eab9fe dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x150c85ce dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1cac81ac dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2025e954 dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2e730a21 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f40da68 dm_bm_set_read_write +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f74609d dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x32b5f546 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x33c03da6 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x38c75c44 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x412049fb dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5e6aea80 dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x619701dc dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x62c1b9ee dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x688d422d dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x68fae9d2 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7ade1071 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7b047bd9 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x832bf228 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x858c8d94 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x89f1e1cc dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x966a8838 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9b4b5b29 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9e798e22 dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa0bbbb49 dm_bitset_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa13861b4 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa2507774 dm_tm_shadow_block +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa87c5b4d dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xaee02382 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbcfdc290 dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbd50ebbb dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbe0497aa dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca40abd5 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd041d62b dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe44b4b9b dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xead1e727 dm_bm_write_lock_zero +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xed1e1f96 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf475af48 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/raid1 0x8c969166 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid10 0x8759aece md_raid10_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0xb1f03b1e md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x0f338c3f saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x18193a2a saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x4e7d93c7 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x954b0f4e saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x99021040 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xbbc48af8 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xd39ce5ce saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xea155a3b saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xf6c4c5f9 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xf8c59a18 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x076451cc saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x4dce6644 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x4ffd0ef1 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xcdbc0c43 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xd0bd6b78 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xe35b52c4 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xec09223c saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x081cebd8 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x11905762 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x3201d9d0 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x363f5865 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x549368d9 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x5b67b540 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x5f1560ab smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x601542e0 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x63222b29 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x65d80f75 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x82d51a7a smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x8eaad568 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9c2225ed smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9da7444f sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xa212e559 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb8ec38a6 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xdb2c9877 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xef898f37 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xf1c950b0 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0x7ef913d6 cx24117_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0x1c89d5f6 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0x549b3264 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x1c3c7953 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x46623107 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x47b0e129 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x4d7b8cd5 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x52590d35 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x5fb5bdd3 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x6c424ca0 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x6d6ad1ab mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x85eeb68c mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x87ba66f9 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x8aff64f1 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xae0f0e7e mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd3978353 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xdfb0fed8 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xf10d0769 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xf451462a mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xf8d79fa9 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x1b9dd864 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x4820a18c saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x58312acf saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7c4168ff saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xfcd09870 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x053a9294 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x072b8f92 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x282531fa ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x76d6d911 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xc60dd096 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xd0101b9e ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xd6d87a21 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/radio/radio-isa 0x43403b74 radio_isa_probe +EXPORT_SYMBOL_GPL drivers/media/radio/radio-isa 0x8af0eb20 radio_isa_pnp_probe +EXPORT_SYMBOL_GPL drivers/media/radio/radio-isa 0xafcd3ae2 radio_isa_match +EXPORT_SYMBOL_GPL drivers/media/radio/radio-isa 0xe8125703 radio_isa_remove +EXPORT_SYMBOL_GPL drivers/media/radio/radio-isa 0xfb9762dd radio_isa_pnp_remove +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x62feea61 radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x7be894cf radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x051cd812 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1b522c0b ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1c8c845d rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x45827056 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x45b80357 rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x768d9453 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x918d7eec rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x94441602 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa1b8d00e ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa2dcff9c rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa85ca439 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xadf4a764 rc_open +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbc575cd3 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc176c793 rc_close +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xcdca5917 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd65406e3 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xdf630696 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe4b9f938 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf2a445d5 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0xf45333ac mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x774a9f08 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0x9619f247 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0xb1a4a578 r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0xaaf25325 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0xd834ae2a tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x76297f67 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x7cf4ca30 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x96ca34d3 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0xe3efe5a8 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0xf0eeb158 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x1fd3e11b tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0xbe6dd026 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x72858861 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x00d7323f is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0406c9cb cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x1a480d77 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x22a6af87 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x2777bf5b cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x2d76cfa9 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x2ec38d88 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x438fd8a9 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x501c1d5b cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x51ee8467 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x66218733 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x90818c2c cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xb4a646f3 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xb5404797 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xba760b5c cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xe329d567 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xe6374a52 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xefe848ec cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xfe809396 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0xee02fbe7 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x54917a17 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x0b21b7a3 em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x5d1c0036 em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x66310c25 em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x6dd7c878 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x6fd2bb31 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x75a9e44b em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x804dc53b em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x9691cb48 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xa3a49f23 em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xacaa3d5c em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xb4384879 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xcb452591 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xcb6f4ea8 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xe5aa3796 em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x1032e1ad tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x5e7b82cd tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x7d2b9349 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xcf5f8c8e tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x01c483a9 v4l2_get_timestamp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x66705d32 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x71b0fd3b v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x90d2bd5a v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xcace7d81 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xe4ef7a98 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xfea18a81 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x08982d59 v4l2_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x221d2fbc v4l2_enum_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x36e8756a v4l2_find_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x4103badb v4l2_print_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x53105839 v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6976cfe0 v4l2_valid_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6f344bb9 v4l2_calc_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7eaf8e7a v4l2_detect_gtf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0xb0891da2 v4l2_dv_timings_presets +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x33b7cc99 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x908df381 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xdbfda013 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xf06b4662 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x17eb0eee v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2a29042e v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2baccee0 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x340047b3 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x457dda0a v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x4eb2c013 v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x526875f9 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x5ef84e99 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x68839e8c v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x6c06d85e v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x80ed8c56 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa6534afe v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xab8c1f18 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xd2948d1e v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xfe3414ee v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x013e5c58 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x08e9c7c1 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x0d67e712 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x2969a411 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x2a92fa22 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x2bdb3125 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x312c0926 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x3434a599 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4d3503da videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4e8591b8 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x58b17efe videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x5b90ae06 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x637a0b63 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7425face videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x99a6ace4 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa5cadd1d videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xaea70e61 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xb6fc1fe9 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xba7cc38c videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc3064896 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xcea3af67 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd5a5d321 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe1ed7aeb videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf34d744a videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x25b07d82 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x6ed6aafb videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x8923dd31 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x03a526ce videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x0b8948ea videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x34e98c18 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x471f5556 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x6ce223b7 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x6d7453f4 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x73122e89 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xb901561c videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xefbb5ded videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x35f0c0f3 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x9963f0f8 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xe1564e0e videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x0efbab52 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x157d3b6a vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1687d430 vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1c173822 vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1d6687bc vb2_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1e20ad4e vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x21528747 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x296a36cc vb2_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x386fdd23 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x3b129768 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x46aef4c0 vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4a6b878e vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4ec274c7 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x53593b91 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5588fad7 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7330f41b vb2_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8b0b4a02 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8f919aaa vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa1a54c0d vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xaff009ac vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb2f3cdab vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb6f2ff69 vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd63ff528 vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xdaf66d81 vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xdc8e5687 vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe0263d5b vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe1964cd4 vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe3a9f756 vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe48c6c40 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe9991889 vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf1cda11f vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf1e38324 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf700bf1d vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xfc0cf350 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x3ca1161f vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xf6158b99 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-sg 0x8c895e3f vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x1209e691 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x1e69beac vb2_get_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x53c0b19f vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xd5930d4c vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-vmalloc 0xcf37de5e vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x05f9a535 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x07e3a581 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x093c72f1 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1f7097d5 v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2deb3ce7 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x38b2d962 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4ca12d06 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4d916c01 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x537fbd63 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5685a6d6 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5af1a87c v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5e4610b6 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6d5803c3 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6e29f9d0 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7681fc0f v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x79b3364a v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7f924736 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8b184eeb v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x95f2b1a7 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xae613965 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xced957a1 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe5605649 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf9467f6e v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x153e0389 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x64d7bed4 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x7313768d i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x7c89ffc8 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa0f8bb87 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf08b9b10 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf7d826fe i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf9f7247f i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x2b67bffd pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xb1d0a126 pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xdca1982a pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x08395a84 kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x0e47a1d6 kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x14e53f0f kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x24dca629 kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x2ed45cd9 kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x2f4f0299 kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x4fc15898 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x51af4e2a kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x26127e85 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x3fd39b80 lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xb1588d02 lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x0bc14d44 lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x2ca1c350 lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x46574663 lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xabcf4d60 lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xbafc1486 lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xea7e750a lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xfae5c98e lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x1bf5a6ee mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x3ddb2b60 mc13xxx_common_cleanup +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x494018a6 mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x5b4fedce mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x60832a0c mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xeed802cf mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x028efd6a pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x07e7611b pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x246d5cf5 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8c33a097 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x955ee810 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9c309791 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xb6fee40a pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc8e1ad71 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd846983e pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe2448c8c pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xeb480026 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x41841fb7 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x702d4d48 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x5b448678 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x74047be3 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x7a1c1d06 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x8584e5f1 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x9c0fc86a pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x01a33234 retu_write +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x4fca3918 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x39f2023c rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x3dd587c3 rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x61c5e3ea rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x79324771 rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x7b3412b1 rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x7c6834c3 rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x885589ee rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x9201e01c rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x9cfb2feb rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xaa33baa4 rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xb5d740f2 rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xd5d01454 rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xe03b7aea rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xe4c12dfc rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xe6046320 rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xea59d80c rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xeccc0c63 rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xf034ddf6 rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xf93c0da2 rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xfaee0d4b rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xfc320ac9 rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x039066ab si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0e498aa4 si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0fb3eaa4 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x147e1ee0 si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1671c6fa si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x19a0ac51 si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1c445139 si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x282562c1 si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3023f8ca si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3374aac3 si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x348f8fe4 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x55e95e58 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x56260275 si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x5bbf0cfd si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6191d5c9 si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x69c1d695 si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x73f01ed6 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x78735c93 si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7ea84bc0 si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8cc91ac2 si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8febc005 si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9775a8ab si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x97f42c40 si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x98f3fbb0 si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x99514862 si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xae9f39c0 si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb4076ba6 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb5bab6f4 si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc7f6a4b8 si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd2c9d4cb si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe80313a2 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xeff79514 si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf2b46c1b si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xfbcb9bc5 si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x1ced29fd sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x518ac6b8 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x5208c751 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x837c67b9 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xb10cc6e9 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x1d4506d6 tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xb1067a19 tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xe879a22e tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xfbdbb098 tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x4d4e5c78 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x8a361233 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xd47e6179 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xfbfb7811 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xfd79369c cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x27cb133b eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63 eeprom_93cx6_wren +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x822222db eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x98bb5a22 eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x2917584d enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x853ed012 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x860b874e enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb1360208 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xbb1581d9 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xfc0ba27d enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xfc1141ff enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x385f2434 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x38843169 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x43d8dd6c lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x6000701a lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x842cc95c lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xb87b7b5c lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xcc990aed lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xf01af692 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x058ed3d3 mei_register +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x1dbfc4bd mei_cl_add_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x27ef5ee7 mei_cl_set_drvdata +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x3014e078 mei_deregister +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x33a286bf __mei_cl_driver_register +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x3b430d31 mei_cl_disable_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x3c51555d mei_cl_register_event_cb +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x3cf5a342 mei_restart +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x470510f4 mei_start +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x51082039 mei_device_init +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x6d95da8d mei_cl_get_drvdata +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x88ce7337 mei_irq_read_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xa4695dcb mei_cl_recv +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xa61a2937 mei_cl_remove_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xa7ab4a30 mei_reset +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xb58e9139 mei_irq_compl_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xcaa9b9dd mei_cancel_work +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xcb3886c6 mei_cl_enable_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xcd93c3d0 mei_stop +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xe5d6c91e mei_cl_send +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xfb273ec9 mei_cl_driver_unregister +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xfbe5f505 mei_irq_write_handler +EXPORT_SYMBOL_GPL drivers/misc/pti 0x19f09b98 pti_release_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x23bde487 pti_request_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x52a78e81 pti_writedata +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xacaabdcd st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xc486babd st_register +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x0f6680ea vmci_qpair_produce_buf_ready +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x1152e318 vmci_qpair_get_produce_indexes +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x13aa5a5d vmci_datagram_create_handle +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x1872c7af vmci_qpair_produce_free_space +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x1a195863 vmci_context_get_priv_flags +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x2e30d970 vmci_qpair_dequeue +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x3ef56cd5 vmci_qpair_alloc +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x4b630dac vmci_get_context_id +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x4c498e60 vmci_qpair_peekv +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x4ea2ccbc vmci_qpair_peek +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x50a255c9 vmci_doorbell_create +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x612df9ae vmci_qpair_detach +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x677c36d0 vmci_is_context_owner +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x69ef87ff vmci_datagram_destroy_handle +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x6bfa603a vmci_qpair_dequev +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x6cc1a5f7 vmci_datagram_create_handle_priv +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x722d488a vmci_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x7d540b50 vmci_qpair_consume_free_space +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x8b8ad67a vmci_qpair_enqueue +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x9624c58c vmci_datagram_send +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x9973b9b2 vmci_qpair_consume_buf_ready +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x9d16164a vmci_send_datagram +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xbbcb4c48 vmci_qpair_enquev +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xccbb53d1 vmci_doorbell_notify +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xcf5ed7ef vmci_event_subscribe +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xdac94780 vmci_qpair_get_consume_indexes +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xe7e7c107 vmci_doorbell_destroy +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x0c2a6e98 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x291b3a91 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x510eddb8 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5d5d0618 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x68a70747 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x696f7388 sdhci_disable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6b86ae71 sdhci_send_command +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xaa8bd028 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe20d699e sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe51e4d1c sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf4052bb2 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x094c389b sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x267a5a4f sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x55a983f0 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x60a06173 sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x8f291203 sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xd850beb8 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xdf206191 sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x24db7c4f cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xd9c559d9 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xe6ec7c31 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x078099e5 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x79d2d235 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xf4795663 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x5796adaa cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x1e5a8aaf cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x656a03c5 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x802d9a25 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x042cdafe kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0dee6a27 mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x117a44fc put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x18f6a812 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2102bc41 mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2183ab7f mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2b78da79 mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3d979574 mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3d9d1137 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4f4a01d8 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5129e698 mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5e5951e7 mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6aaca617 mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6dfcd820 mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x76d1fdbc mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x77bdefd1 mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7e461f32 mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8a7e2f1b register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9bf5520b __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9feeddaa mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa00552d9 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xad685d41 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb02cd79c mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb1dcefe2 mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb3cd112a mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb8cfbef3 mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbf8c87dc __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc2bb7f9d get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd0c19ab0 mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd3d46ad7 mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd427ee84 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xda532778 mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdcc65770 mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xde12b515 mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe7106c66 mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe9334da2 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xec939e56 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xeeeb2455 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf44088d1 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf4d28431 mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfd037ef1 mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x17794bd5 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x3e125749 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x5bb6e07a mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x7dc76e08 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xb638c15e register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x0a08ba00 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x4c21045d nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x3e49fb1a sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x6ef1306d onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xf3c0df9b onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5d2b0b53 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5e796641 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x77d433e3 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x77f77679 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x82ca641f ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9c45e759 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa1e5736c ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc8a9300 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd6829ed8 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xde3af9b2 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe8b414e6 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xeb960162 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf630ed49 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x13e94e10 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x3f477fed alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x665f7ea5 c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x78cc705c c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xe97545a2 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xf52a6dd8 register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x222c295a can_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2bfb7019 devm_can_led_init +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x46357f53 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x48566af7 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5617324a close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6ce9e2bc alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7629cd1b unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8b2a1492 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9d8f7d14 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa7e2cdfa can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb346573b can_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc0f5c9fd can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc6c1a09a safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd2d96534 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd9a82098 can_led_event +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xdf736f0a alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xea458941 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x496cfa24 register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x4c04ccf4 alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x7a25e275 unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xe913336b free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x47e88347 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x627dcdec free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xd30c16ec alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xf724444d register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x05228a42 macb_get_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x365aec29 macb_ioctl +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x7869c196 macb_ethtool_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x7f7b94c3 macb_mii_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x8ddc17ab macb_set_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x97355da7 macb_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xcd7752bc macb_get_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0528c4ac mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x05c5c42c mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x06fc3c59 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x08a8c34c mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x08f0dd12 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0afd413b mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0b9b611d mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x10edc8a6 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x116eed5e mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x11a8571e mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1205deb0 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13ba2157 mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18a0904d mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c6c2ae4 mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1d9a8cab mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1fc2a2c9 mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1fe976e5 mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2013ab2e mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x269d5340 mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x283e64b6 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c76b0a6 mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ce7bc42 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3228ce7f mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3c292fda mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3cca0c17 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x40167860 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4054d7f9 mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x40c9697a mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x40db99a3 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4240eb80 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4510d47f mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x473e6f6e mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4a7ae319 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4fea8e98 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x580c3f8f mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x583f7c93 mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5ab28e07 mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5d0e8f75 mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5dc1861e mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5fbe4326 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60100651 mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60d95159 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x621209fb __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x63b4b43f mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x63be904d mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6823b5fc mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e2e3455 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6efe2b0b mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6fc20a9a mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7867f043 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x788ebc16 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7a9a7182 mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x80e316e7 mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x831ea311 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x86dedef1 mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x875f024d mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x89fa89df mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e12b121 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92424d8c mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x928ee19a __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x97bd1cfc mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa4fd9b3b mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa5351339 mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa7446f15 mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaa988ef6 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaaabceff __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb1152d1a mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb2f912c4 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4c965c4 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb8583ca4 mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbb714203 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbbfafd66 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc0d96db7 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc1a51a51 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc1f40b72 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc67ad352 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcb9ed727 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcd8da7c1 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd032c647 mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd51abd7a mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd6874f4f mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd93281d6 mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd9c273b0 __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd9da9dce mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdaffa25b mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xded97350 mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0e360f7 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe295bff3 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe30dc95c mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe4a09aac mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe54adf62 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe55db690 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe8c27407 mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe9334b46 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xed7f51ee mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf5acbcbc mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf78e3711 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf96dccf2 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfa28fce5 mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfb61b664 mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd8d54b1 mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfe03bfcc mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x10c28f7b mlx5_create_map_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x11bffbf5 mlx5_core_mad_ifc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x175a5e06 mlx5_core_create_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a8777ba mlx5_core_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x26ddbedc mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3162161b mlx5_core_destroy_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x44032d2d mlx5_destroy_unmap_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5030d8fb mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5d6b0d45 mlx5_core_xrcd_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8d94fd85 mlx5_core_eq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9cc4e779 mlx5_core_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa13cf995 mlx5_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb723bbeb mlx5_core_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc04f2ed3 mlx5_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6c4ef56 mlx5_fill_page_array +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd75f4b6b mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xed12b26e mlx5_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x425e31af macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x678cd894 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x7670b7bd macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xdd05b15d macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xe57735a4 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x96fe63a0 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x32ec8ee6 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x49f62b0d usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4e240383 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xb8038173 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x4adf9f3e cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x5df19937 cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x6ab463f7 cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x938b4fe8 cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xbb2f9eb7 cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xeb3313d5 cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xf3765482 cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xf84fabdb cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x3a784ab7 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x74dc73f5 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xaed136b1 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xe3c12c08 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf1fe523a rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf5e8aac6 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x02cda4e7 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x055d59b8 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1f5a34bd usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2192da83 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x26191c5c usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2d98ecee usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3e53d3f3 usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3f90510e usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x542e64ba usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x60792fef usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x67ac4c3b usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x72edc21e usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7656308a usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x798e7406 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7addf7cc usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8cbd6df0 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x941c1b5c usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa7fd9705 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa80edc27 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xad4816ed usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xae8f1abc usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaf4c0459 usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb022a7d2 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcaa041f0 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcae3822a usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcf0dd74a usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe390b69a usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe5906eff usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf13d8bc3 usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf64a89f7 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf8b97c00 usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xff05d00e usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x3e2b519a vxlan_get_rx_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x4d0ddeb1 vxlan_sock_release +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xa1ad3d89 vxlan_sock_add +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xd52e37e9 vxlan_xmit_skb +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xfc74b6b8 vxlan_src_port +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x30f80bf7 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3a093aa6 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4345c044 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x47c098e8 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x55ab49c1 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x643a41a1 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x66369f5b i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6c646182 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8262e6f4 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9e7cc8dd i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc1dd0d2c i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd3999869 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd6acefd6 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd752e3ae i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe6584697 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfadfa00e i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x0aede898 cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xe48e90e5 cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xf23a6e33 cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xf4cf9f6a cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xbd4f1ba5 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x1a9d5f9f il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x2c65bd05 il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x5dbe419f il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xd0518cb8 il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xfe0d0e70 _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x215daec5 iwl_abort_notification_waits +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x21eaa0cf iwl_set_bits_mask_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x2b01ae14 iwl_read_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x2f02c732 iwl_parse_eeprom_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x35033c81 iwl_phy_db_free +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x393259ff iwl_set_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3e0dc6e3 iwl_notification_wait_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x48da6f41 iwl_opmode_register +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x4b62a4ee iwl_write_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5c52e109 iwl_opmode_deregister +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5d0a212e iwlwifi_mod_params +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x6101306b iwl_init_notification_wait +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x764a633b iwl_parse_nvm_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x776221bf iwl_send_phy_db_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x7b10ebd7 iwl_notification_wait_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x7b7850ff iwl_phy_db_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x80682551 __iwl_crit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x895cad5b iwl_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8c353396 __iwl_warn +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8c5d5ab3 iwl_phy_db_set_section +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8caceb62 iwl_wait_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x90eb2ff2 __iwl_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x9c88d32e iwl_clear_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa24e920f iwl_poll_direct_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xb1e028ee iwl_poll_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xb2877770 iwl_nvm_check_version +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xc29aad2d __iwl_err +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xcea0b361 iwl_remove_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xd0789272 iwl_write_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xdfd7ce17 iwl_read_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xe07f6393 __iwl_info +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1c657a3d lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1df0e3bd lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x395b659c lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3a8e0bd6 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4a4e4055 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8373dfd1 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x96691d7c lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9fd5a278 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb404b951 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc16af86e lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc6da03b3 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe0a552d9 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe8cf6de1 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xed6cf223 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf8720bdf lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xff591574 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x1b3c74a7 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x573f3aae lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x6b93cab1 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x87d21cdd lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x8fd99b07 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xde89fde0 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xe8bd2ea9 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf822a546 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x288f5ae5 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x7e7e50d4 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x09da6fbb mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x0f1b0885 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x109deb14 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x26ad18d0 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x2d518751 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x42726055 mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x5db18a19 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x5e210981 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x79620b57 mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x89ae81c8 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x9d3e4a53 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xa8cf4c83 mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xee9a4c03 mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xfbabc385 mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x14066494 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x23faa4a4 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3c85bc90 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x51f99804 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x97f49798 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x97fde84c p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9fa41a1b p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa203b9ca p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xaef08012 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0801eff1 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x164f1d48 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1b62a70e rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1c835009 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1f3972b8 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2ccf32f9 rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2cdac7cf rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x30451c15 rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x35b4a16c rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x40a0d023 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x45343d85 rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x50892343 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5234c4a9 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x65fe020b rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x69327be6 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x80b56357 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8f08fa8f rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x903d199f rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb3682de7 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb3711c42 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb3ddec64 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb8d9a346 rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbc226b4b rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc2a923a2 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc791016b rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcf68760b rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd52762ce rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd5944a44 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd6083442 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd8df8c12 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdc089bf2 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe05ccd54 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe0a5bb54 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe1c4870a rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe496e0d5 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe7e1b9e5 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe82385a4 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf98e918f rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x0fad1430 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x13768d03 rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x2505789d rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x470b7d19 rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x4cf889cb rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x53a485cc rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x63581395 rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x75d78a1f rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x827a8a18 rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x92c0bcd1 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x9d1518b5 rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xa6420987 rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xaa3f3a71 rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc6a1455e rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc733929a rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc805f52e rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc8614471 rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xe28f94c7 rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x16713d54 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1bf1c5a3 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1dc9fe2a rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x22c49428 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x351e7d98 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3b982b2d rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3d774eb6 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x44b0f2f8 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x46c0aef6 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4ff55984 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x505ea15c rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5411dbdd rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x757c1db2 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7ab862b4 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8391e92d rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x83ef36c8 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8d72a23e rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8f3dc85b rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8f7955e7 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x925a9111 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa2418c37 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa4d915e8 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa5c05252 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa7d6a522 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xabb919f3 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xac3bb228 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xae1eb1f7 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbd000aad rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc407c343 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xca86ac4f rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcf554dda rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd3c053bf rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xde7cce1e rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdf27b70c rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe02000d3 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xecdf5057 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xed988a0a rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf01678ff rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf52494f6 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf68516ca rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf999a236 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfba50e61 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfbc9a805 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfc0e0013 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfca391e0 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xff1878b5 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x20c44758 rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x2e23ab2f rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x6bccb2b5 rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xb2652f98 rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xb42902f6 rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7367fa67 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xeece3c68 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf47492e0 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xfc24f2a9 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0d7ea642 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x17f8bce3 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x22713c6b rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2ca7e0f6 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4d5a0bfc rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6f6da036 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x736eba63 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8b652fe1 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa4f766eb rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa506cb34 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa7fa1c0d rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xac9061da rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc819ae13 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcbc7940d rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd0c61119 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfd8564c6 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x47307c59 dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x551f4285 rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7486d85a dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x955224da dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x005cd6e8 rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x03663cf8 rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x04e18867 rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x065779ac rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x132c1a0e rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x20c27500 rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x2697c9f3 rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x39e8afe1 rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x3b370240 rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x43213213 rtl8723_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x48c06c35 rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x4a7de09d rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x4dea71fa rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x60daa2b4 rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6fee3a6c rtl8723_phy_set_sw_chnl_cmdarray +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x80dc96ac rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x9ac98095 rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xa7594840 rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xaf4d6d94 rtl8723_phy_calculate_bit_shift +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xc3482815 rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xcbb9e873 rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xcbd74f75 rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd357033e rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd54817e8 rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd836b8fe rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xe270cd0d rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xf89f8d85 rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xfb5c8b61 rtl8723_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xfb6bffbf rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x21a1340f rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x241dedc1 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x284bb89d rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x2daf6323 rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x314731ad rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x3ff0b427 rtl_dbgp_flag_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x42c89a56 rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x55723ffd rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x613e9f2b rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x6e50664f rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x75236872 read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x8df024af rtl_attribute_group +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x8e45f0e3 rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xa25b04ef rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xca106622 rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xde6cda0a rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xe694579b rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xec8c601f rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf1eba5e1 rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf8ff6add rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x3e1f77e0 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xe23ffdff wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xfcee7f99 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x05294fba wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0c703292 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1640ca1a wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x18028c49 wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x21d266f8 wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2252de49 wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x23d6fcb5 wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x23d9130a wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2461d677 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2adc0086 wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3fd7c6a6 wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4289292a wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x52f1680c wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5d46831d wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5f1a716c wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x632a6bd9 wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x661862eb wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x67c6e421 wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6bd580e7 wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x743481de wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x77a69cdd wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7f557f56 wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x835e1b98 wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x852187ad wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x895d2bda wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x97a116d1 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9ba08a3c wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa12ca5f0 wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb21b606a wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb9d9a80e wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xba936672 wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xbe595f5b wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xce145d8b wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd677842a wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd73ae82d wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xdcfe247c wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xdd0e2add wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xdd3403a8 wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe3652636 wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xed01f7b8 wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf196c26e wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfd9a3e98 wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x3b577068 nfc_mei_phy_disable +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x419eccb5 mei_phy_ops +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x8b4e7b3b nfc_mei_event_cb +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0xa28b2b29 nfc_mei_phy_free +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0xe82e19a5 nfc_mei_phy_enable +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0xfc99aef2 nfc_mei_phy_alloc +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x30934216 ntb_transport_max_size +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x32537aca ntb_transport_link_query +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x3d54dbfc ntb_transport_tx_enqueue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x436098aa ntb_transport_link_down +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x77ae9ef1 ntb_register_client_dev +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x82e6c13d ntb_transport_qp_num +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x9a8bb373 ntb_register_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x9c992c8f ntb_transport_link_up +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xa5cef033 ntb_unregister_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xc270dc24 ntb_transport_free_queue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xc37d9036 ntb_transport_rx_remove +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xc3832d89 ntb_transport_create_queue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xd40e7a02 ntb_transport_rx_enqueue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xfe897ddd ntb_unregister_client_dev +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x08f361a6 phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x08fdf187 phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x09f1a9d3 phy_init +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x170c4802 phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x43b7029d phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x54f2f297 devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x7402e1e5 __of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x77a00b22 devm_phy_destroy +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x902f4667 phy_power_on +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x94cddb96 devm_phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x9add069e phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xab5a445d phy_pm_runtime_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xacd6f002 phy_pm_runtime_allow +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xaeb8db0c __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xbd08ff99 devm_phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xbecd0976 phy_destroy +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xc1c9e72c of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xc75a2264 phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xcc9b9bb1 devm_phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xdb5a2835 phy_exit +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xe1ba45a1 phy_power_off +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xe2dc35e8 phy_pm_runtime_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xea04955f of_phy_simple_xlate +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x2d04e969 asus_wmi_unregister_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0xd4e04009 asus_wmi_register_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_ips 0x46809fa9 ips_link_to_i915_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0x232b5238 mxm_wmi_supported +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0x61cdf799 mxm_wmi_call_mxds +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0xe26032eb mxm_wmi_call_mxmx +EXPORT_SYMBOL_GPL drivers/platform/x86/thinkpad_acpi 0x706cdcef tpacpi_led_set +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x64ebe677 wmi_query_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xa9b7afd8 wmi_set_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xc5e3dddf wmi_get_event_data +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xe2426710 wmi_evaluate_method +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x6d3eb05a pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x7b6a92e6 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xe5a5dd0c pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x51899f58 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x7e33458a mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xf1c12fe7 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x21412e6f wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x61575d52 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x7f5ac690 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8a5b4a70 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc9edd475 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xdc3e920f wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x15a70dff wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x03e9fccc cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x169b2c44 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1710b0f0 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x234750fe cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x296b518a cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2b9c8944 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2e2d1514 cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3059f896 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x38e3d0d2 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4b1ddfbb cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4b51ecb0 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5317f359 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x593c21cb cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5dd02e1e cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5e356276 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5fcbe2b2 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6406b363 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x65c42a87 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x66d8d983 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6cb1ac71 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7599d483 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7659a708 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8432ca62 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x85e5aa3f cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x93a37126 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9ef14109 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa031b0cc cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa68199eb cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa9a6b1e2 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb3b8f95e cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb5da77ec cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb7ff3a5d cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbb0f7c51 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbe4d8891 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbfe3764c cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc245cc82 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc4db1703 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd7fbf58b cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd9144d5e cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdc5978ee cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdcc02d0d cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe380e5ff cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef587854 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf442d879 cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x0a6ce191 scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x0c2b4c8b scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x19a79216 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x5894220d scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x6d278b09 scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x89cab50e scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xec6eba65 scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0a5f6b9b fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x16fa5c39 fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x24b05b8f __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x40e9f9a5 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x44df31de fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4c34732b fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x57078868 fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x64209e7b fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x74f27772 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa8c8335d fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xb1eeb71c fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd501d962 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd6673e8a fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe1b67e8a fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf7aca037 fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xfa09b89d fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x15d10a41 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x1d7688be iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x8a902369 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xc451771b iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xdec1bca6 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xdfdaff7b iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0603a605 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1febd5c3 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x23b46286 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x23c83f73 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x26aa78be iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2f2f1960 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x31f79f7e iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x35450df3 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x37086b64 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3aef568a iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bbf83d5 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e58ca7e iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4486954e iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5798d7bf iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5805a349 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5a2f7ab3 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5e2dc5d4 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5e83d41f iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6af4c1a1 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x73b5a16a iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7596e08c iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8bbc02ee iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8f94918b iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9bc74eac iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9ecfc791 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa51dac09 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa5a14ae4 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaf2901e2 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb03093f0 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb40ede63 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xba470ee3 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xba6b097d iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbcd4a2e3 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbe7b922b iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbecfdd7d iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc37891d7 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc48c9b68 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc9afba92 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd2f67c5a iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd7faeee9 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe4ad792a iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xea13ef3c iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfa00b2e9 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xffcbe137 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x029af30f iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x12885d5d iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x36bdbfc6 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x37c09f6a iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x40c93ad8 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x59719fc2 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x59fee599 iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x864ba4c9 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x867971cf iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x86c93bbf iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x90bd1b64 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa1cdc8e8 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa48f5544 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbbea8485 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd5d45430 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe2263586 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe29a6e0a iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x08725a97 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x093e5eed sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0a4ca88d sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0aa02b10 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0b47680b sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x282f67cf sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x373494d2 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3ee20d7e sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x41d07517 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x457a45b5 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x46923f56 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x49a9ab06 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x49bf986e sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x532d532c sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5d4c4e03 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5f957be9 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x726b9c3b sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7c5a197c sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7eb80011 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x89bf990b sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb38ebc5f sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbf4b111c sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc291c4b8 sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdb044e2a sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf2b44711 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x36cc7399 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x8f725e56 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x9760ea42 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd169bae9 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xee426060 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf945c956 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x06bc7cc8 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x32167b24 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3d1376d9 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7f52c112 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x914b2205 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb07dffef scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xdf7225b3 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe86ac800 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xfb879fa4 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x05d53bfa iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0d20ef78 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1b90c5b6 iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1ce55e32 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2155e536 iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x232f5c27 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x287e3305 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x29266d7f iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2d2562dc iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2dd7daa1 iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x317a0580 iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x462e3a2d iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x49adbba8 iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4c431da7 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x55714c09 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x55ba5ada iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x589ea7e2 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x65d28226 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6a7ffefb iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6bcad49a iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x89816030 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x91f0930f iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x927d6599 iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x92b36488 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9838ac87 iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9a92940d iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa001184f iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa06aa1a5 iscsi_is_flashnode_conn_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa18b4bf6 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa347ab47 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa50d1cd1 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa52492cf iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa7cd471f iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb51dd26b iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb90b4a75 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbbca0cc2 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc48cd696 iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcb3ede02 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdc7f48c6 iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xea670fb5 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x6cb45c7b sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x7cff5d85 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xb35add0d sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xd51b7365 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1105d848 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xa10e3ed2 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xa1afe21c srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xccb4a126 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xdb676fe5 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xee891cc0 srp_tmo_valid +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x14321d2e ufshcd_resume +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x5fa2442a ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x88aef086 ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x96eb2fcf ufshcd_suspend +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xaabe0d5d ufshcd_remove +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xd1b2fac3 ufshcd_init +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x0801c59a spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x96f3ea44 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xc3530297 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xceecb71e spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xfffd8236 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x2506f4fa dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x75b9a5aa dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xaa2ca87c dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xdc26b7d3 dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xf4b481db dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0xd305c202 ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0368e67f comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0662748f comedi_buf_get +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0e3a3cd8 comedi_to_pcmcia_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x125fbb14 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1265010d comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1561f3ca comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x168d939a comedi_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1d66e138 comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1dec0228 comedi_pcmcia_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x27da3c70 comedi_dev_from_minor +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2a47a4f0 comedi_pcmcia_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2a65db12 comedi_buf_put +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2be1aaef comedi_pcmcia_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2c1d496b comedi_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2cee608b comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x318b883b comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3201e22b comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x352235b0 comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3822cede comedi_pcmcia_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x38fc6163 comedi_buf_memcpy_from +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x395c683c comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x442dedc8 comedi_pcmcia_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x458e5642 comedi_pcmcia_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x48fcb6ee comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4b4f8612 comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4cba1471 comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4e4933ad comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x611ecdcc comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6340a71d comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6a8d1d53 comedi_event +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x89d4b41e comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8c88109c comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8cddb6fa comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x90fa6bed comedi_error +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa0ac5725 comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa6879a39 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa7f35c1e comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa8c1893f comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa8f9d0ae __comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xae8086c0 comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb1d28c3b comedi_buf_memcpy_to +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb4b98c55 comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc7cd01aa comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xcee71554 comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd637aca3 comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd8bba5be comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd924544a comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xff2f5134 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x4cdc16bf subdev_8255_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0xb0b147d8 subdev_8255_init_irq +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0xe94dc3be subdev_8255_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x6774316b addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xb37e8f49 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xed08bde4 amplc_dio200_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xf5e97a44 amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x0f1a9b45 cfc_write_array_to_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x2bec9967 cfc_handle_events +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x7719498b cfc_read_array_from_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x5aab21bb das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x136f18ec mite_get_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x237dedd8 mite_dma_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x23f9ef5e mite_done +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x257ed77f mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x32bea199 mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x452874a3 mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x73df0522 mite_dma_tcr +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x77c3b578 mite_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x8903d4d3 mite_bytes_read_from_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x95394eb8 mite_setup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x9cd99986 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xa260d0fa mite_buf_change +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xb8fa99e9 mite_sync_output_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xbdbe75c8 mite_unsetup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xbdc1b5e9 mite_sync_input_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc7c222b7 mite_free_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc91efebd mite_release_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xce7f2add mite_bytes_written_to_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xdba56788 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xee784852 mite_prep_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xf1c81e51 mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xfe69d809 mite_setup2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8d2b8bb5 labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x057ae94a labpc_setup_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x39edb305 labpc_handle_dma_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x61442f86 labpc_init_dma_chan +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x6c5b71f6 labpc_drain_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x6efabc8f labpc_free_dma_chan +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x2dab63ce ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x37749421 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x487608f3 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x8bc28bf5 ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xd3386c22 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xd53ed8d5 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xf06f2b63 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xf6886db1 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x02247c66 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xa3656a0f ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xc04d21ec ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xd6cbfe42 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xe425f29c ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xe7374d61 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x66c1360e comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x6c048b5c comedi_open +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x99bd11b7 comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xbcdce90f comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xbf1e001f comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xe06b7ae1 comedi_dio_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xeb0fe2cf comedi_close +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x2206b003 dwc2_handle_common_intr +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x632aea58 dwc2_hcd_remove +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x8d301a63 dwc2_hcd_init +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xb05a818c dwc2_set_all_params +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x1a1b5249 oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2feda75b oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x3227a28e oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x7dc9dddd oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xb2c66001 oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xc8b5a524 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xd370f679 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0xff37471b adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0xbd5a0e51 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x1afae8a6 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x201450cd spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x353cea36 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x5098fca1 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x5f23a9c8 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x7854b7a2 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9dc093e3 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9e5a462b spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xaf65c3eb spk_serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xce56e8c5 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd1b551a2 spk_get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xdc6fcfb2 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe9ad7cbe spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x05885196 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x38cbaf19 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x66bbef8b usbip_recv +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x6f1323c2 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x6fb4a8d8 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x73a1599b usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x9c734b3d usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa30e261d dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xbdff6673 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd32fb4b0 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd3bb7253 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe5f4b957 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xf9545267 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/uio/uio 0x2f6838cc uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xccf747cd __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xefb430f4 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x8cecd8fe usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xa37e4f0e usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x02294886 ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0xe8114de7 ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x14bbebb3 usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1fbb608f usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2f84b374 usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x42cf5803 usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x47f93a74 usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x49055505 usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4c9326fc usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4edeaee1 usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4ee67dfa usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4f9cd85b usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5f31fd15 usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x61f15185 usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x6697d1e4 usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x77ce8f4c usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x78a8607c usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x8add3c3e usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x8d83b142 usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x94d7075a usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x967e31f2 usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa5d3e0f4 usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb967f9fb usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc53b0abc usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc70f35f8 config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xcdef5a32 usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xcf520f0e usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd894d3f9 usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd8cc8bd9 usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xed1f5564 usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x0e40a429 gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x2bbbc355 gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x8e27d6de gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xf1981607 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x1dcf4e47 usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x3eab3725 usb_gadget_unmap_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x75ddab7c udc_attach_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x9a7da32f usb_gadget_set_state +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x9a8f5743 usb_gadget_map_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xe4cf0d0a usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xe578e017 usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xf19c8d1c usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xf9e6e88a usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x0a5230df fsg_common_set_nluns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x141fce2a fsg_common_remove_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x1ccb58f7 fsg_common_set_num_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x2d10b6a7 fsg_common_create_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x51707c29 fsg_common_run_thread +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x6acb4179 fsg_common_set_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x7e26d4a5 fsg_common_set_sysfs +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x850cb099 fsg_common_set_cdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x99023bfc fsg_common_put +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9a0221c7 fsg_common_free_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9dc025a5 fsg_common_free_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xa46e6443 fsg_common_get +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xcaaffc5a fsg_common_remove_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd3ae3b65 fsg_common_create_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd468f882 fsg_common_set_ops +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xe4d1591e fsg_config_from_params +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x426053d1 ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0xcf611d9a ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0c1a0805 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x1132fa9b usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3b31634f usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x516dd329 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5a968cb7 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7a43f236 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x8099e3b3 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x89013c10 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x898289ee usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x2f598fd7 musb_interrupt +EXPORT_SYMBOL_GPL drivers/usb/musb/tusb6010 0xf032094c tusb_get_revision +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x1ddc2198 usb_gen_phy_init +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xb6f81643 usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xbd5dc329 usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0xc369156b isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x20107900 samsung_usbphy_set_isolation_4210 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x49e85cb9 samsung_usbphy_parse_dt +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x90e01e97 samsung_usbphy_set_type +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xba33655b samsung_usbphy_get_refclk_freq +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xbf4e15f8 samsung_usbphy_rate_to_clksel_64xx +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xc672d23a samsung_usbphy_rate_to_clksel_4x12 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xd972e3d7 samsung_usbphy_cfg_sel +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0xa00010b8 usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x026d00b2 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x02c36763 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0979dde8 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0d6f2a02 usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x119049c2 usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1d63c917 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2de5b766 usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x311a6a17 usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x334567f3 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x368f672c usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4731fa97 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4a4d9b00 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4ebe362d usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x63f2b028 usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7c9e1e84 usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8eb59f09 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9b901bcc usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9e373360 usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xae5dc37b usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe98d972b usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf0e86be8 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x01db86c3 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0ce70da9 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x19577b2b usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x21713d3c usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x35c6ceae usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x50098004 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x50eb4cf8 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x554025a2 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x594df612 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x705bbd74 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x79247641 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x85751e41 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8a1e983b usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9369a76f usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x99271208 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9b6036a5 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa0a0a16f usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xaa0316c3 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb2eef4fb usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb8fe0bae usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd260c5e8 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfeb9f444 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x9f5a4b8a rpipe_clear_feature_stalled +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xa6967a06 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xa8ecedc7 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xb86e8746 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc00899d7 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc543b60e wa_process_errored_transfers_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xdef6750d rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x026332ed wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1a2bde1b wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1e432baa wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x20476880 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3bd8785d wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4bd89728 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x69d134cf wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6f96efb4 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x76b02ae3 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x831cef9e wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x944e99d7 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb5052d2b wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf63aecd5 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfaf6915f __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x5519bd18 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x7bccb69a i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xc6efa945 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x0841b70f umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x0d8bf3b2 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x303e22a7 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x6a50f2fd __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xaf72a760 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc447f776 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfa4fd13a umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfada76c2 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0132850d __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0242b231 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x07922197 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x07a56011 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x22a36893 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x24321972 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2c397492 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5053a102 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5a5a7b3c uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5b4bfe5d uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5d8564c7 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6a50fc23 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6c46d321 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6d1a4390 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7f024bdb uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x80e7ddcd uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8453853a uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x845cff0f uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x85b02189 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8934a50d uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x898055ba uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9430d0d4 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x99ac3956 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9b71159f uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9c6ebeb4 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa309f020 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa5ba4ee1 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa7a017d4 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb46e2c2f uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbde995f4 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc02b5fd4 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcfca14e1 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdc3b0890 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe5cbf76c uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe8377a57 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe8d5adf1 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfa95a5d8 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x1f5eb9dc whci_wait_for +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x3567743b vfio_external_user_iommu_id +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x49b9a9e1 vfio_group_get_external_user +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x5662f74f vfio_device_get_from_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x95258207 vfio_device_data +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x969c73d9 vfio_device_put +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x9b311bf5 vfio_add_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xbe2e325e vfio_del_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xc27252a2 vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xc4913442 vfio_group_put_external_user +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xd638be95 vfio_register_iommu_driver +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x024cf761 vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0792317f vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x094e0792 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0a926e4a vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1a15d32e vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1c54c74f vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x20bfbed5 vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x269f7a09 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2c456ded vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2d3a4b02 vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x45c2b736 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x49c3409d vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5cc50176 vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x63bba309 vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x67f043b1 vhost_work_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6fbed31f vhost_init_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x73ee87d9 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x74d7d8f7 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7f0fefbc vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x828b2016 vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x86fa5bb9 vhost_poll_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x98515b1e vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9ade7bd3 vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9d81cffa vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9de76d00 vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa07e6bf6 vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa6da3688 vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb6db8159 vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xcee9bdc1 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xedb68b1a vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfa470a6f vhost_work_queue +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x2d942562 auok190x_send_command_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x40700b19 auok190x_send_cmdargs_pixels_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x516513c5 auok190x_send_cmdargs_pixels +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x75fe8821 auok190x_send_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x84518368 auok190x_send_command +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x8dbc55ab auok190x_send_cmdargs_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xaa797bc2 auok190x_pm +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xbb0d8239 auok190x_common_probe +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xe6c62e7a auok190x_common_remove +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xfe0e57d7 auok190x_read_cmdargs +EXPORT_SYMBOL_GPL drivers/video/backlight/apple_bl 0x2c63e051 apple_bl_register +EXPORT_SYMBOL_GPL drivers/video/backlight/apple_bl 0xdab0f892 apple_bl_unregister +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x2c260c31 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x44b54c21 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x549632b6 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x644cb91f ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x68e15aaf ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xa385521d ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xa63e7955 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x487b03c3 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xd5f63d8e fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xf5196b2c fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x7bb9de38 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x97420e38 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x31469540 viafb_pm_unregister +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x751fcbb5 viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xb4f863e6 viafb_pm_register +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x1b9c7f83 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x45d374de w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x71a0fea3 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x969c4441 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb75688b1 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xd6dba624 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe00a7e90 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf091e0dc w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf88a5934 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0xdac72505 xen_privcmd_fops +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x2601c5c8 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9ce6d1c7 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc6dc8c2f dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xe92cbffd dlm_posix_get +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x184a23c4 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x4d180e75 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x65ac7436 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9186323f nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x92f0c506 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa0dd77aa lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa5445d24 lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb1bb3b3b nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb2d5d929 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00407112 nfs_fill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x04c62b61 nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x04fe3673 nfs_try_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0758749d nfs_writedata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0d4451ee nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0d47d1ad nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x10457084 nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x125f4981 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x12e9a651 nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x170233a9 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x17fc4bab nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1ee16e9d nfs_put_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x213cddef nfs_pageio_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x280ed042 nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2d9d9520 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36b4213f nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3886a3d5 nfs_clone_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39947fc4 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39a535e0 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3aff8ffb nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ca31f35 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3cb05ae3 nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3dbdc3dc nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f0a17df nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f9fb96d unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3fbd3a89 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x426c8d92 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42fe9c4a nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x44401eaf nfs_destroy_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x45ee5a10 nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4703e480 nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x49885140 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4a6b4dde nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4f4b5765 nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5321be22 nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x54e2786d nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x56a99a0a nfs_remount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5a6baa93 nfs_set_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5c668c46 nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e1d863a nfs_sockaddr_match_ipaddr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x600bf602 nfs_fs_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x60d09b1f nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x62019513 register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x62d216ae nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6598d7ef nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6c3700ee nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6e2ea12d nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6e38cbbe nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6fe95a9c nfs_fs_mount_common +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x726126d5 nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x72c19355 nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x778f693b nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7aafafb7 nfs_file_splice_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c48c996 nfs_probe_fsinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c8e9bff nfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7cfb4b5c nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7ea75bda nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x82657f14 nfs_writehdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x83af6c8b nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x83f9c016 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89bc5a64 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8ad8dae9 nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9081d93b nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9112d734 nfs_pageio_add_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9155309c nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x958234ad nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x96982da2 nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9afe3684 nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9bc76bf4 nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9e542f0b nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9f986a7e nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa040f486 nfs_file_splice_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa13b9583 nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa1e451d1 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa2ab4e67 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa3b190f8 nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa5d02b07 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8d2d1ce nfs_callback_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa9c4811f nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaaa14361 nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xabd1e686 nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xad0e1f32 nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xad51970d nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaf6136bd nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xafdaf9b6 nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb1a22729 nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb29eb19c nfs_file_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb30dd552 nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb606e716 nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb69a4ac7 alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb7ee9dfe nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb8aeae2f nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xba6d10b3 nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbd5eebc4 nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbdaa2c93 nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc180671f nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc23da65c nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc28ecf8a put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc337f809 nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc3a29714 nfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4ff1e9f nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5ef47d5 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc647d288 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc9cb3d2d nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcc797284 nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xccdfe0e1 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd0bb6302 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd0cdb2b7 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2513081 _nfs_display_fhandle_hash +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd644ed09 nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd88b60c7 nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdb020da5 nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdd1e7682 nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xde13c00d nfs_setlease +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xde4638e9 nfs_readhdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdf8ae8ed nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdfe4e9eb nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe05e3fed nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe0dfb815 nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe14fc204 nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe27d69a4 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe37a7c65 nfs_generic_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe3c6486a nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe585e315 nfs_pageio_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe605c792 nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe78aabce nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeb5e0537 nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xee46bf47 nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xef68321b nfs_readdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf022491e get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf09a5467 nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf0b312a1 nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf7ce3aef nfs_file_fsync_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfa3bb4c0 nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfb7ee006 nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc3a115e nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc619abd _nfs_display_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfe977f9d nfs_generic_pagein +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x02a18ef2 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0c357e07 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x11433159 pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x11bda27c __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x170f3ed6 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1c747028 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x25b5f7e0 nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2dd928a1 nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2eb9255c pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2edbf1d0 nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x309d5937 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4620e3e5 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4ca1cd14 pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x508aa31c nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x572e6d20 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5d799d45 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x623128c0 nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x639b35ae nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x665fa50e __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x68ffbdcb nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7153ffa7 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x78886b9c pnfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fba42d2 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x83ad062a pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x870f9d98 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x88aa8721 nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8ccaf722 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8eb39522 nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x979db91f nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa8186782 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb4e8d3c9 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbebc6018 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc0fc2f18 _pnfs_return_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xce9028f8 nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd0128f3b nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd99ad43f pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdb813e84 __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf043c4f5 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf0d1aeaf pnfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf52ee4b0 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf7391ecf pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfb66ee0a nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfb6f0403 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x82bbfa95 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xa5bc1c24 nfsacl_encode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x32935988 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x345d227c o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x505959bd o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5a0bdffe o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x70d09583 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x80082300 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe1546804 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x40aec137 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x53fb292c dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7491720f dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa312c08c dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa4b32638 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa95ee923 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7d173672 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x9497fbed ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe9a2f6a0 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x2d532698 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x4bce893d notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x021957e1 raid6_datap_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0f8a2742 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x201d8ea3 encode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x29fa419f decode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x0149e9e3 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x074b7b85 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x1eaf548e garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x38cd7609 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x4c7b0694 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xfd868277 garp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0x22b1be63 mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x366d5c45 mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x5ec2b9f0 mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0x883e6726 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xa8f393bf mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0xb107bf26 mrp_request_join +EXPORT_SYMBOL_GPL net/802/stp 0xd8f41d90 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0xe9775f30 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x54a2cefb p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0xf4dea42a p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0xb09faf79 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xcfb6a3da unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x2fb3c36b ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xf608b821 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x021be081 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0586d5f1 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0599275e dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x10f0bb61 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1b4ef050 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b140a92 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3e452aaf dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4091a6e4 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x464a12d5 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4f15e1ca dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x57d7da92 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5baf002a dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5c783c2a dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5e5c5702 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x650ea64c dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6d3df4dc dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x74c4f77f dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x78ab0251 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7acdffe6 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7afbe061 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x83aad0ef dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8d1d7017 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8eb68a86 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9a03c437 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9e857546 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa28747c7 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa49f7962 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa97a58cd dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb5f06f94 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc7317637 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd70cdff9 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe517f4da dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf180fd6b dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf512aa4b dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xff35a989 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x32d9989d dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x33a85684 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3b2a6132 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x497869dc dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5e676fcd dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xce83a5d5 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x054b762b register_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xfb72a68d unregister_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x2f7e7233 gre_cisco_unregister +EXPORT_SYMBOL_GPL net/ipv4/gre 0x30267072 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x4f106803 gre_build_header +EXPORT_SYMBOL_GPL net/ipv4/gre 0x58d4b418 gre_cisco_register +EXPORT_SYMBOL_GPL net/ipv4/gre 0xd4b1665f gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x894b03e9 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x8e836b00 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x99b309d9 inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xe71c6e94 inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xe7ab6bde inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xfd022e3d inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x177f6e75 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x262f410f ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x2dd242ba ip_tunnel_ioctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x3838da20 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x3987f719 ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x43e5ebb1 ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x84b5bcf4 ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x8b88da55 ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x8d3cb15b ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x93de2261 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x9fb4436d ip_tunnel_get_stats64 +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xa7e70fd2 ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xd178c8d9 ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xd82dd773 ip_tunnel_delete_net +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x58342cd0 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x8d501687 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_ipv4 0x340f04ce nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x5b1d3f1d tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6276f39c tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6b3977a1 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x8d0fa44e tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe21c0b6c tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0xa4e3acc3 xfrm4_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0xca405953 xfrm4_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x365164dc ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xc1fef4bb ip6_tnl_dst_check +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xc832b0c6 ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xe8a2a495 ip6_tnl_dst_store +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xfaafc445 ip6_tnl_dst_reset +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x52b124de ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_nat_ipv6 0xa4bf8e79 nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0x4b3c8320 xfrm6_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0xf5273ddd xfrm6_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1782cf28 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1d828e7e l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2b5a013f l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x33776ace l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4a095e2e l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4c10168d l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5679b402 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5f9a874c l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x63adf72d l2tp_session_queue_purge +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x823b10e4 __l2tp_session_unhash +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9cae1696 l2tp_tunnel_sock_put +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb073ecec l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc04a4b13 l2tp_tunnel_sock_lookup +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc935aa40 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdaa2ed58 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdf35830f l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf757b626 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x4fdfa325 l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x126ce20a ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3663a36d ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4480535d ieee80211_iterate_active_interfaces_rtnl +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4bf42798 ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x53ba543c ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5d38f601 ieee80211_set_key_tx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x74bde070 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x8403d824 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xabb57768 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc7294107 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc836a09c ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xdb75ee1a ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xdd0fa020 ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xee84a3e3 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf6fb2213 ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x1cb91836 ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x1dac4ddb ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x25744864 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3b28ab5e ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x44d9331a ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x453d355d ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x48196d3c ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x57343707 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6344eaf6 ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6e86e3ca ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7bdbde36 ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8a7ef0d2 ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9aa3f682 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e4e402a ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xcd89e6c4 ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xeb0c35ef ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xef13ebbe ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf12e4cb3 ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x2ad6610d register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xdfe6315e ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xe6329245 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xefcb49a2 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01f84db5 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0463d88b __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x07552294 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0d9516f9 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0ed0b5f7 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x13389f10 nf_ct_timeout_put_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x144fbd61 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x156c5c44 nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x17cdaf2d nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x192c4c29 nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1d8976ed nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1ec6cb8a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x219dfa40 nf_ct_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2bd4f2f1 nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2c65c7f7 nf_ct_l4proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2fbf146f nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30daf074 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34c73ed5 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x366582e3 nf_connlabel_match +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37386cac nf_conntrack_hash_rnd +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3876d3bc nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3a5062b2 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3b33b3dc nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3c897c28 nf_ct_l4proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3d71689a nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x42641cc4 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x434425a7 nf_ct_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x436fb860 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x497d54a0 nf_ct_l3proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9fa296 nf_ct_timeout_find_get_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x52c8d572 nf_connlabel_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x58942ac9 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x589a5a3d nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5a47760d nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5a4b3e77 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d03ef19 nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d4e8d14 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5ed2dc9c nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x627dbb23 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x64b195c0 nf_ct_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x65db9e5c nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6840c8ee __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x687d5cf5 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6c297f94 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x713b0349 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x736bf529 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x74e8cd4a nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x785f75e6 nf_ct_l3proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a889be4 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c909825 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x865879ed nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x885ec696 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8dad8e7e nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x93cd61c4 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9f2f497a __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa40bdeb0 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa43cf5c3 nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa74aa125 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaca5d0c7 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xae88a019 nf_ct_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb390a91a __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb580a1d5 nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc275d2b7 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc3b55876 nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc5796a2e nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc5865487 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc726462f nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc91ac80c nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc9926e39 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc9ea03f1 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcab20e54 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf3d64bc nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd1a11b87 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd2d64bd6 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd52c2eaa nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdbb6a8f5 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdd8b1555 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe8b0f880 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf4d7876f nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfc936823 nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x1384fcc2 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0xd48739cf nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x2a3a6a5e nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x066d16fc set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x087cb934 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1bfc154b set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x25693fba get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x31577f2e nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x44f1dc94 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5c4531ec nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8729aee4 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbe184430 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf402f2d5 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x208209e9 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x03961749 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x68e35c0f nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x7b87ab61 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xa9721d11 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x7193c2d7 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x7d08a915 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x362e7b74 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x45b3ebde nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x477a434d ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6d632943 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x91908b87 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9b156a09 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfc571357 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x58b16d08 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x97ab8e63 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0d9bae4b nf_nat_l4proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x131f636c nf_nat_l4proto_in_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x52b0a6c2 __nf_nat_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x5aeb0e25 nf_nat_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x6ebcfb62 nf_nat_l4proto_unique_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x739869b2 nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x907a775f nf_nat_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x9e4ea524 nf_nat_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x9e71c82b nf_nat_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xcd1c6b52 nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x11a006b5 synproxy_check_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x6267e589 synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x8841d39b synproxy_build_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x90298227 synproxy_init_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xb42e336a synproxy_options_size +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xcf253114 synproxy_tstamp_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xef7db50c synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0a3e54e5 nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0fda3c99 nft_validate_output_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x19e09e02 nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x254b0128 nft_validate_data_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x37ceeda4 nft_unregister_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3d49dab7 nft_validate_input_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3f457f98 nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8398d9a8 nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9e183a73 nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xa8f16664 nft_data_uninit +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xbce54efd nft_register_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xdb626a41 nft_register_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xdced8229 nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf5412db8 nft_do_chain_pktinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xff9ca777 nft_unregister_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x102432f0 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x33767a59 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7c319718 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8f5c34fc nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xb5aa6237 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdffcbabd nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xfd6371c7 nfnetlink_alloc_skb +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x169929be nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x21f6bba6 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x10d450de nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0b189108 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1e0a1f7a xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x23ccce4d xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x28bfe196 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x63c4ac68 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x86eb72cd xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x890aa34b xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8b8d4b14 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb3f2c71c xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc938fbce xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xefbc48c9 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfb8a6d9a xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfbf69d3d xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x3a099777 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xf4e9cb5d xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x43b8c8f3 nci_spi_send +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x86fbcb2a nci_spi_read +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xd2179381 nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x1c37f11f rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x299d9749 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x2c46fb60 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x2f09775f rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x361f7a5a rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x3da61c5d rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x4e25ec35 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x5e4ee87d rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7f904a8f rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x838f48fa rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x92da9068 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x97deb61e rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0xb3ace570 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc61c3676 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xcd1199e5 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xcf3cfea2 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xdaeea6ce rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xdcb49f05 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0xdff7be76 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xe577a68d rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xe70e190e rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xfb1d8c5a rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0xfcacd131 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x62037700 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x6308a1e6 rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x09dc797e gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6d02b0e5 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xfd28e7b0 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0052f196 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00729368 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x027d5b58 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02aed3e0 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045834e9 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x070fe82a rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08910247 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0960361a xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x096259a7 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bf47565 cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bf4e1fe rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x122a2462 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x131f3df7 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15cbdfc8 sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17f483c7 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19cffd85 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ac22d2f rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b12704d _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d4409e6 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e85eaab svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x207f884d rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20ba8d46 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x213d078b unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23bd55d7 rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23cc8d6b xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26011c1f rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29790d61 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b6277ff svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b82cdd4 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d5833f5 rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e9e73c3 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31c45ab0 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x325a9f97 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32c221db sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33eef655 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34a8f740 svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x365ef0c7 svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36ae25e2 rpc_protocol +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37559c94 rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b477b9f svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b8ce24b xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cab9ba3 cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ff94c96 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41557580 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42fb053a auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4541ba90 rpcauth_cred_key_to_expire +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x456b8b8e rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45a00817 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4744f69a rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4767ef4e xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47cc3405 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4bae26b2 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4da4eeec sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e9649ba xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50c0f72c svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52403272 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5493a9be rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56baf2d7 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57b71988 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58ee9451 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b102559 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b74cdd1 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bbe176d svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c5c7bc0 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f8cfd61 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60011008 rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60545d48 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61734bdd svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6202916c rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63c6d3f5 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x640c1f55 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65c71639 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65f62188 rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x673ded23 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c17b4cd rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6cd9c6b6 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d71d61e xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d9fd34f rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f029a88 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f464def rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6fb32b43 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x745038ce svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x757638ee rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75b08ac4 rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77cd80a2 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a54111c xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b4b4fa5 rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b634f45 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c1401e5 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7df20f60 svc_shutdown_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7eb0cdf1 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x801e98da xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80673970 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80951b28 rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82d2512b cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x832f7b8e rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84643c04 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86e2d536 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x88aa2a34 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89215d9f rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ac65c95 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d78eea8 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8eacacd1 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90e549a0 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90ebf847 rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x926d9db1 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93af060a xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95166238 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x956a9695 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9717561d rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x974e3faf xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x977e00d7 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97e7aa97 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9884c353 svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b75d64 rpcauth_list_flavors +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ace0f6f rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9af8cf4e read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b3eef6b xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c884b59 rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9dd950b2 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa05d001c rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0ae4ac2 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2a000e9 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa61d4f29 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6db6149 rpc_get_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7fc0d77 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa97bbad1 rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa15b66b rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa1ac7ae xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaaf9a4e2 cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac8d7541 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf726357 rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0116611 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4178bac rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb417d0d7 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5f77b69 rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb66f6376 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb7835979 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba623a74 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbcb0bd46 rpcauth_key_timeout_notify +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc093a095 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1399167 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc36f7f3d xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc54455f0 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc95fe347 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb78ec0a svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccfe14cf svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce093b91 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0f1c87b rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd15b9f84 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd16a23ec rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd351ad0c svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd353f90a svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5504347 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd55c3273 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6ee7001 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdad4afa3 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdafb9269 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdbc9fcfe rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc1cc069 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde1e67ae xs_swapper +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde2ce8a1 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf51d026 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf9b78c5 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ac2bb8 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe300d669 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe31448dd xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4c46d95 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe768998c __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7cf7cc2 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe809dda4 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe89892cb svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8dccb7e xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea5a8dca rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea8cfa98 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeaf093b9 rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec7c5397 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1c7ef74 rpc_rmdir +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf26863e0 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2ed1b07 gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3b08db4 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf539f8f4 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5e0377d svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf72c4464 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8041e63 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf913ea8f xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfbb737cf rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfcb00f50 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xffd020a8 cache_register_net +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x03dc4db8 __vsock_core_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0c79d5ef vm_sockets_get_local_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x15c0c57c vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2663cb64 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2becb817 vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3b9270bd vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x5e7ae752 __vsock_create +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x74e91915 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x751ff010 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7f730c80 vsock_core_exit +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x97bf15ec vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xa10abd32 vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xa53f32fe vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xac978a7f vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd0f699d vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc46d4902 vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc524145f vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd8e6ddc6 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd95ac116 vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xde0f28a1 vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf593c40a vsock_pending_work +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xfc24981e vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/wimax/wimax 0x11c2c82c wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x16ac2e84 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2319bd3b wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2dafffc3 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x592216bf wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x5fa8a395 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x73921edf wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7737ee30 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x9935301c wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x9a4e4fd3 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa8b92ac1 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd12bd8d6 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd6d0d334 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0dd27107 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1b01672a cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x32efad4b cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x38e6b4e8 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x506d13cc cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5b3fcab8 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7093b1a2 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd1e7348f cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd227bb08 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe587774d cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf62214ee cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00778770 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x056bb269 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0a575945 xfrm_count_pfkey_auth_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0b9e5852 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x74e1a843 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7a8ca627 xfrm_count_pfkey_enc_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7c30b8c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x92dbc6c1 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xbc8b0f41 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xce7a55c1 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe122af95 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x1dcf1213 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x57def9a3 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xa6cb2740 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xa9689367 ipcomp_init_state +EXPORT_SYMBOL_GPL sound/core/snd 0x14e965a3 snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0x3ca17104 __snd_printk +EXPORT_SYMBOL_GPL sound/core/snd 0x76a4d3c9 snd_kctl_jack_new +EXPORT_SYMBOL_GPL sound/core/snd 0x8c770e47 snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL sound/core/snd 0x91916adb snd_kctl_jack_report +EXPORT_SYMBOL_GPL sound/core/snd 0xb6de32e3 snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x0b3ee70d snd_compress_deregister +EXPORT_SYMBOL_GPL sound/core/snd-compress 0xcec26602 snd_compress_register +EXPORT_SYMBOL_GPL sound/core/snd-compress 0xe5147a89 snd_compress_new +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x04e1b99f snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x09e913c1 snd_pcm_alt_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x417655cb snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xfcce6c16 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x0bc52f81 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x154e75e1 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x2f86d5ad snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xc7c5a8bc snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xc987d08f snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xe43c3693 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x01a7c7d0 snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05e817ed snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0788d69a snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x09613d11 __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0c67b407 snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12236766 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x125929eb snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x130411e5 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x13670e40 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x172215c7 snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1a117685 snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1fcf546b snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x209ba52c snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x253db01e snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x26439917 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2664d506 snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2887d68f snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x29111b8c snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2cfe0fcb snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2d3cda36 snd_hda_jack_detect_enable_callback +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x30534c76 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3530f8c3 snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x358fc2e9 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38f0b561 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38f99ec5 is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x396b4f7d snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ad1beb4 snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x41adc43d snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x442b3540 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4439fb7a snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x44d4392e snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x45393754 snd_hda_parse_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4603047a snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4b88da36 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c770aea snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ce76da2 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d326fa8 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5078a666 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x54f62151 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x591e0618 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a8cfd22 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5addcda1 snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c1c1833 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5d93a319 snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5eddad6a snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f1dbb96 snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x67a8dd00 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6cd176c8 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f065ad1 snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x744341a2 snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74f94447 snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x760a48de snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7696b946 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76dc6871 hda_main_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x782a2a48 snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x787a9cd9 snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7b632c56 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7cbaeaab snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7e982cb6 snd_hda_parse_generic_codec +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x83dde99a snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8568b809 snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8573a5ee snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8710d1b9 snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x871a6e44 hda_extra_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x876a6fa1 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x87f5d73f snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x88a8367f snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a99562c query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8bde95dc snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c1029fd snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e95721d snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9138e1e0 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9174c27c snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x91f72404 snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x93605db0 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x936394ec snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x94440643 snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9772e887 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x97922ca6 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x99ae1317 snd_hda_gen_spec_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ada8229 snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9cc19a1f snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9db20ac1 _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9e91dde2 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ed7f4f0 snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9f79c4d7 snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9f98c328 snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa31abdb3 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa3688bc5 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa4045fcd snd_hda_codec_flush_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa545887e snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaba586e3 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad54a3d0 snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad99a3d9 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xadc7910c snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaeeceb99 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf8888b1 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xafb01bc4 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb122a447 snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb1e7d253 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb9f9cc50 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb54e404 snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbc277a69 snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbc7d65b0 snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe09e521 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe53ec0f snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf76409c snd_hda_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbfc03093 snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbfdc57c5 snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc141bdf4 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc2b79123 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc4a18557 snd_hda_get_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc606acf7 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7cb6067 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc83231fe snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc85f94a2 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc8eb0843 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb318834 snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb6ca9d3 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xccf5e258 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcde02b5d snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xce271db9 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcf121ed1 snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd1fdee46 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd2843e88 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd2b74da8 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd3dcddcb snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd40824a7 snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd871cdcc snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdbc81463 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdcffd53e snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdefd5cdb snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdf05445b snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdfaab940 snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe118de5d snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2ee5fdd snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe65f3b0f snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8eb523b snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8fcd2d1 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xebd9cb8c snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee03ac94 snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee9241ff snd_hda_jack_detect_state +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf0f8316d snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf268b5c1 snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf28f450f snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf2f2d5a8 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4768c83 snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf550379a snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf9a6b746 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf9b279f0 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa29991a snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfe483e84 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfeb2eb4a snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x94de84b7 atmel_pcm_free +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0xbe19374b atmel_pcm_mmap +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0xe36d0ce4 atmel_pcm_new +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sn95031 0xf8291560 sn95031_jack_detection +EXPORT_SYMBOL_GPL sound/soc/mid-x86/snd-soc-sst-platform 0x72cac078 sst_unregister_dsp +EXPORT_SYMBOL_GPL sound/soc/mid-x86/snd-soc-sst-platform 0xbf221496 sst_register_dsp +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x046b9bfa snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06d52c82 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06dceffb snd_soc_of_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06e3fbf2 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x07a73b69 snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b41d10e snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b458f11 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d3c1314 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0e0b2c01 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0e60791c snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1047a84b snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x10b6d267 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x173af05f snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1974c0af snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x19deb1c3 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ed349b6 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x203d66a6 snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2127d37e snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x22a77226 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x22e93d60 dapm_clock_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2612d4e7 snd_soc_dapm_kcontrol_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x26d8e206 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x298ef64e snd_soc_dpcm_be_get_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a4bc654 snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a5173d6 snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2cc62ba8 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2d77a6f3 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f3d7180 snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f57a454 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f9e6d63 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x320c9df3 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x323de04a snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x330695f5 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3580e99d snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3706d0d0 snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3a876e2f snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3aa27931 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c5664ee snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3dcca6f8 snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x41cf85fa dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x429aca64 snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x451fd9ec snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x46270623 snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x490434e4 snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4a4ae031 snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x555e98b8 snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x59e030d8 dapm_regulator_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a9cff58 snd_soc_get_dai_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e7127eb snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ebf73f5 snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5f737167 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x60b86b82 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x60e8ba4d snd_soc_add_card_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x62b4412e soc_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x63707a58 snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x698330cc snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x698bf6f7 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x699b2cd7 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a7c9b81 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ac77c64 snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6b321469 snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6bc18e24 snd_soc_add_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c1ea99c snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x726488d5 snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x73d31d44 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x74f6902d snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x75a6aec0 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78849a90 snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7d63c2ec snd_soc_remove_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7f2c07af snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8015fb60 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x811ec3a8 snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x81a6fbfe snd_soc_bytes_get +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8427b900 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x852fa087 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x85eee373 snd_soc_bytes_info +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x883e7530 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8952bdfa dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8c8bf92e snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8c9dae17 snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ffd85bb snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x91cb6128 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9671c09d snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9bc4cf41 snd_soc_get_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9bd5a206 snd_soc_lookup_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9c8e271f snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa0368e6a snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa0f35f64 dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa104e5ca snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa60d7c07 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa94233eb snd_soc_bytes_put +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaec4bdf7 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaf13ddd5 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb13e34c2 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb13e7e63 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb253a358 snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb5119114 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6b91bf4 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb8d45b31 snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb91d3cd6 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb9231710 snd_soc_unregister_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd32ddbb snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbf1e0b51 snd_soc_dpcm_be_set_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbfda25e7 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc025a510 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc0db9336 snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc4bccd69 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc50097a3 snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc5f4f82e snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc79fd07b dapm_mark_io_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc9b96904 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xccae801b snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd37ddbc1 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd6f8fbef snd_soc_add_codec_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd94966dd snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdcef21f6 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdd413bc7 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe0181257 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe0a42943 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe2e29641 snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5641951 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5d5a771 snd_soc_platform_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5e2e49b snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe86c5df1 snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe9b40d8b devm_snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xea196235 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb4b063f snd_soc_put_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xee9f5f68 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf163425e snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf1ec828b snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf27c34fe snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5b824a1 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf7ddddc6 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf84c7e22 snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfdb9ef98 devm_snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xffc31534 snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x118a3f6e i915_bdw_gpu_busy +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x34af3be3 i915_bdw_release_power_well +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x7381c75a i915_bdw_read_mch_val +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x8993eade i915_bdw_request_power_well +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x8b28f943 i915_bdw_get_cdclk_freq +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x96d7119d i915_bdw_gpu_raise +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0xa17bc3aa i915_bdw_gpu_turbo_disable +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0xde54f019 i915_bdw_gpu_lower +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_file_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x000517b3 pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x00172652 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x00254b79 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x003328eb dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x0034f3b6 xen_has_pv_nic_devices +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x008b02e5 tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0x009304b6 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x009386b8 cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00b7d599 device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x012b9c88 iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0x013e6458 get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0x0167de08 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x0170cb6c efivar_work +EXPORT_SYMBOL_GPL vmlinux 0x01724778 skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x019f97c3 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x01a70063 ping_proc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x01ac5ab5 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x01c47a4f fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x01cd687a shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x01d11a05 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x01da2bac crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x01dc6abe rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01eaa3e4 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x01f1fa55 list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0x025eec5b dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x026211e2 memory_failure_queue +EXPORT_SYMBOL_GPL vmlinux 0x02743100 xen_remap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x0297a226 da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x02ac69dd ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0x02b24324 devm_regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x02bdd647 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x02c10062 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x02c5c195 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x02c97e4f pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x02d092b7 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x031eed7d __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x035bd094 usb_acpi_power_manageable +EXPORT_SYMBOL_GPL vmlinux 0x03647eb4 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x03710d94 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x03747a83 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x03791553 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x038ff03b input_class +EXPORT_SYMBOL_GPL vmlinux 0x03983a36 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x03a91ff3 fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x03bf1d5e gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x0404cd90 ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x0406db08 devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x0444e4e2 pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x0445210b percpu_ida_free +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x04652071 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x047de008 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x047df5ca pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x04bef573 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x04bf0e88 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x04bf26af ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04c8cabd blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0x04d83260 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x04eb3561 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x04efa836 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x04f95206 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x052f0ef0 subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x053eb102 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x054c5a4d crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0569dbfc ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x058b582a vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x059d07b6 of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x05b4bead xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x05bb3808 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x05d1b442 __efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x05fa1211 acpi_match_device +EXPORT_SYMBOL_GPL vmlinux 0x0600f5ab perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x062fc169 xen_hvm_resume_frames +EXPORT_SYMBOL_GPL vmlinux 0x064382dc dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0663bd06 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x0663da82 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x0672b021 regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x0694f889 balloon_mapping_alloc +EXPORT_SYMBOL_GPL vmlinux 0x06963c36 intel_msic_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x06b948c4 rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0x06d549e6 pinctrl_free_gpio +EXPORT_SYMBOL_GPL vmlinux 0x06e0f22b ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x06f80d14 pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x071e45b4 efivar_entry_set +EXPORT_SYMBOL_GPL vmlinux 0x07405f33 acpi_register_gsi +EXPORT_SYMBOL_GPL vmlinux 0x074fd780 of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x0762403c edac_put_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x077b2367 xen_swiotlb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x07852eee rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0x078c0137 btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0x079cebb7 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x07afd1f8 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07d28ece sk_unattached_filter_create +EXPORT_SYMBOL_GPL vmlinux 0x07f300c3 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x07fc478e acpi_dev_resource_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x089d506a usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x089dddb8 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x08caf035 pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0x08ccce64 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x08cdc2f9 balloon_devinfo_alloc +EXPORT_SYMBOL_GPL vmlinux 0x08d3827d ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x08d87775 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x09054e54 xen_unmap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x09437748 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x09469482 kfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x0962d0e8 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x09aac82e ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x09c6b058 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x09d13b9d fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x09df70c5 serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x0a0694ce pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x0a1a716e ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x0a2f6fd6 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x0a42cec2 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x0a8c916e reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x0a9fd3c5 gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x0aab1b2c xen_register_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x0ad51703 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0ad821ef crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x0af183a5 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x0afd4610 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x0b04a3ac ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b10c6c8 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x0b1ea5a6 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x0b2d93fc unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x0b410678 uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0x0b4ce7cc devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0x0b52e502 apei_resources_add +EXPORT_SYMBOL_GPL vmlinux 0x0b59390b __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0b6c5b25 usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0x0b6d5bb6 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x0b843d1d thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b93dc00 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0b9c231d sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x0bae62b1 ktime_get_monotonic_offset +EXPORT_SYMBOL_GPL vmlinux 0x0bdd9725 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c00c651 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c2464e6 acpi_dev_pm_attach +EXPORT_SYMBOL_GPL vmlinux 0x0c255c01 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c3e8f21 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0c3ed7ab dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c80e3fe efivar_init +EXPORT_SYMBOL_GPL vmlinux 0x0c8703f5 dma_buf_unmap_attachment +EXPORT_SYMBOL_GPL vmlinux 0x0c9dd709 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x0caa9c60 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x0cb8840f ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0cce0227 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x0cdd7fed relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x0d142e6f crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x0d281d53 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x0d283a8c sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0d2b4560 percpu_ida_for_each_free +EXPORT_SYMBOL_GPL vmlinux 0x0d36dd80 ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x0d3eabab sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x0d5a78ab ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0x0d7d42d8 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x0d9377f8 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x0dab8a0e unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x0daea03b device_add +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0df9529f inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x0e0df24d usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e449742 extcon_register_interest +EXPORT_SYMBOL_GPL vmlinux 0x0e501ecc sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x0ea08d04 subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x0ed9302e percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x0ee5ce05 pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0f0d9035 nf_queue_entry_release_refs +EXPORT_SYMBOL_GPL vmlinux 0x0f2d7d87 mce_unregister_decode_chain +EXPORT_SYMBOL_GPL vmlinux 0x0f3954ce wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x0f751aea input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x0f95c68d sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x0fa138de xen_hvm_need_lapic +EXPORT_SYMBOL_GPL vmlinux 0x0fc01e9f static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x0fcc1969 copy_from_user_nmi +EXPORT_SYMBOL_GPL vmlinux 0x0fdfd63e btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x0ffa1a72 usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x101dce60 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x102d18e8 gpiochip_add_pin_range +EXPORT_SYMBOL_GPL vmlinux 0x10692cb3 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x10bf7b05 devm_rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x110106c1 cper_severity_to_aer +EXPORT_SYMBOL_GPL vmlinux 0x11055c8c ping_err +EXPORT_SYMBOL_GPL vmlinux 0x11300976 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0x1156144d dma_buf_map_attachment +EXPORT_SYMBOL_GPL vmlinux 0x1163abcb xen_swiotlb_set_dma_mask +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x117c7305 hwpoison_filter_dev_major +EXPORT_SYMBOL_GPL vmlinux 0x1192d0a4 irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0x11bc20dc balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x11d10379 smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x11e000f5 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x11ee7e67 m2p_remove_override +EXPORT_SYMBOL_GPL vmlinux 0x11f21c69 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x11f59b39 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x12030fa6 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x1208bd4b debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x120f61c0 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x1230ea05 efivars_kobject +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12fb24bf iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0x130bd388 check_tsc_disabled +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x132fc939 cper_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0x135ae416 tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x136d12e0 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x137652e0 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x138c95e9 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x13921363 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x13972c2a unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x13ad647f scatterwalk_bytes_sglen +EXPORT_SYMBOL_GPL vmlinux 0x13b89dee pinctrl_request_gpio +EXPORT_SYMBOL_GPL vmlinux 0x13b8abcb save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x13bfee20 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x13c8a7fc regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x13cf6e7b power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x13d77394 tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x13f3e3fb klist_init +EXPORT_SYMBOL_GPL vmlinux 0x143dfe89 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x14502a73 usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x1454fb67 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x145784d1 gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x146a77d8 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x14aa2bf0 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0x14aa7827 ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0x14b08432 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x14c2249c regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x14e4b32b ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x14f875ce devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x14fc0c63 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x15010e1f arbitrary_virt_to_machine +EXPORT_SYMBOL_GPL vmlinux 0x15106e76 mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x154cb445 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x15568631 lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x156b462d transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x15924ed2 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x15a1fda9 da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x15cceb92 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x15effed7 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x16085d5c xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0x1636d3a5 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x164cfabf bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x166bee54 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x16bd19bd unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x16e7ff14 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x16f194bf regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0x17062dc9 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled +EXPORT_SYMBOL_GPL vmlinux 0x1730ba13 crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0x17341389 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x1746f98e __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x1753a32f hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0x175606a4 tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x1756f2cf led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x177dad59 ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0x178bb0c4 class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x17923692 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x17a486d7 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x17e78158 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x17f3e125 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x17f68ae2 tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0x18109738 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x181851fd vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x1829b9ed hwpoison_filter_memcg +EXPORT_SYMBOL_GPL vmlinux 0x182f5ce3 arizona_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x1840a168 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x1853653c btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x18582826 amd_pmu_disable_virt +EXPORT_SYMBOL_GPL vmlinux 0x1866cec2 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x186b8459 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x1877c38c dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x1883972b regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x188963f4 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x1892808f da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x189523fb perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0x18a27f34 jump_label_rate_limit +EXPORT_SYMBOL_GPL vmlinux 0x18b266a4 uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0x18ca8c5e wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x18dd1a89 cpufreq_governor_dbs +EXPORT_SYMBOL_GPL vmlinux 0x18f7139e usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x1921fdeb fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x19496284 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x194dd5f5 pkey_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x195714c1 iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x19776125 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x1987e8d7 balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x19903b52 wm8400_block_read +EXPORT_SYMBOL_GPL vmlinux 0x1992900d usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19b384a5 hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x19e9dd5c uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x19f49249 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x1a082d69 max77693_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a33ce74 efivar_entry_find +EXPORT_SYMBOL_GPL vmlinux 0x1a349b14 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x1a7411a0 sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x1a8eab7c rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x1aa30e64 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x1aa3e700 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x1aa60555 acpi_preset_companion +EXPORT_SYMBOL_GPL vmlinux 0x1abf63f9 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1ac43b90 extcon_get_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x1acef7d2 pm_freezing +EXPORT_SYMBOL_GPL vmlinux 0x1ad83009 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1ae76ccc acpi_kobj +EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL vmlinux 0x1b24e391 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x1b371bad init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x1b52db1c probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1b5ab8f3 pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x1b64b63d da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x1b670076 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x1b680457 arizona_clk32k_enable +EXPORT_SYMBOL_GPL vmlinux 0x1b69fc94 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1b7e5dc3 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x1b8822d8 pinctrl_gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x1b93661f pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1b9e9808 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x1ba0d156 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x1bb759d0 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x1bc2aa3f xen_find_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x1bc5eebe pinctrl_gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x1bca75d6 xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0x1bccd1eb ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0x1bd06aab cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x1bea9e09 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x1c1c8e5d blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x1c2b0588 dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c5fc3b3 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x1c7d3349 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c87e28a virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0x1ca19692 __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x1cbbabb0 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x1cbf885c con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x1ce98df1 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x1d302a14 sdhci_pci_o2_resume +EXPORT_SYMBOL_GPL vmlinux 0x1d459685 xstate_size +EXPORT_SYMBOL_GPL vmlinux 0x1d58ae14 lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x1d5d79e8 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x1d63f570 acpi_subsys_prepare +EXPORT_SYMBOL_GPL vmlinux 0x1d739e1c xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x1d747670 pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d8fb3bb acpi_dev_resource_address_space +EXPORT_SYMBOL_GPL vmlinux 0x1ddd6cad inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x1df02337 wm8400_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x1e000879 hwpoison_filter_enable +EXPORT_SYMBOL_GPL vmlinux 0x1e263c7e device_del +EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x1e47caa7 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x1e4d6ed1 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x1e5b03dc pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e779a2c device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e862807 devm_pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x1ea85ec8 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1eb1594f gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ed99276 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x1edc21cb hwpoison_filter_flags_mask +EXPORT_SYMBOL_GPL vmlinux 0x1efb2447 spi_master_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1efb7c04 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x1f197315 acpiphp_register_attention +EXPORT_SYMBOL_GPL vmlinux 0x1f1988f7 hwpoison_filter_flags_value +EXPORT_SYMBOL_GPL vmlinux 0x1f3eb895 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x1f446a81 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x1f501e73 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x1f50a743 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x1f7f6fac register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x1f7ff69a sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1f9359a3 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x1f99fe89 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x1facd162 system_trusted_keyring +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x201d1b02 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x201da24c pwm_can_sleep +EXPORT_SYMBOL_GPL vmlinux 0x202a099e inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x20670503 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0x20671650 call_srcu +EXPORT_SYMBOL_GPL vmlinux 0x206fcf44 swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x209b9f87 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x209ec764 xen_event_channel_op_compat +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20d4a18d __percpu_ida_init +EXPORT_SYMBOL_GPL vmlinux 0x20e0cb99 tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x20f4c3fa fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x21258ab4 cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0x212fb160 regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x2130315f sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x2138a319 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x2154834f ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x21574900 devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x215cd345 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x21825fc7 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x21ac8b77 iommu_group_get_by_id +EXPORT_SYMBOL_GPL vmlinux 0x21c8f9c5 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x21d0423b serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x21e21efd sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x21ec968b usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x21fe87fd crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x220f82a0 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0x222b732d regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x2235593f xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0x223b4708 blk_queue_bypass_start +EXPORT_SYMBOL_GPL vmlinux 0x22472d9e ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x2262ba9c blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x2279fc70 regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x228be100 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22b10dc3 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x22d27c34 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x23106e02 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x233514ab xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x2348c7d4 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x2366a2c0 errata +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x2379e46c xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x238058ba palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x2392bc6e pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x23a65cb3 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x23d3745c crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0x23dbde3a subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x240580a9 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0x242f1404 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x243fa353 netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x24517ffd devm_acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24c119e0 __tracepoint_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24d9722b crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x24ea5aed device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x24f4e0d6 virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x250a8022 regmap_fields_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x2516ec6a get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x254d5fea sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x254f7a6a rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x257e5af9 dma_buf_kmap +EXPORT_SYMBOL_GPL vmlinux 0x25db194c mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x25e8fca1 __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x25ecff73 rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x263fa9dd acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x26571095 regmap_update_bits_check_async +EXPORT_SYMBOL_GPL vmlinux 0x26779552 md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x269521b9 pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0x26965721 slow_virt_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x26b0745c md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x26b6e4de ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26cb3406 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x26ced80e __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x26eb0688 list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0x26f26dfb regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x26f9b8b4 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x272ee926 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x276dd9aa seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x2779e54e relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x27941f5a device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27bccc8a stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27c58235 tcp_peer_is_proven +EXPORT_SYMBOL_GPL vmlinux 0x27ddb33d acpi_dev_resource_io +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x28223121 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x282a3a78 usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2885a64c find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x28a62b01 skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28a903c8 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x28ac7793 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0x28d8117e subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x28e64c64 xen_has_pv_and_legacy_disk_devices +EXPORT_SYMBOL_GPL vmlinux 0x28f7490b platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x29059b53 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x290c789b regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x292101fe tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0x293cd25f aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x293f073e vrtc_cmos_write +EXPORT_SYMBOL_GPL vmlinux 0x29594214 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x295e9fc6 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x2986790e rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x298dc7f0 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x2990138a usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x29a24387 unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x29b5ba16 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x29bae663 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x29cedc2a blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0x2a08ea6e wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x2a16b08c pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x2a1ea737 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2aa1ceb2 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x2ac36de7 btree_last +EXPORT_SYMBOL_GPL vmlinux 0x2ac39e74 iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x2ad1ece4 zs_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2ad4dc3d hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2aeda999 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x2af0907b device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x2b0c7469 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x2b211ec5 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0x2b3b4a87 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x2b46b42f tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL vmlinux 0x2b6a953c crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x2b7a6de8 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x2bfaef4e clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0x2c0246e3 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x2c153630 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x2c1ff0a9 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c2e81e0 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x2c3ce65e sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x2c6a0410 xen_set_domain_pte +EXPORT_SYMBOL_GPL vmlinux 0x2c6b60a4 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c9c347d ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x2cb79fba spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x2cd5e88a inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2d0d11aa reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2d17a0e1 cgroup_taskset_size +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d22e0cd sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x2d2859e1 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2d3069c3 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d461d66 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x2d4bf30c vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d718286 dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2dab6df3 pwm_disable +EXPORT_SYMBOL_GPL vmlinux 0x2dc6afeb xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x2dd3da81 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x2e0e95b2 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e38792e acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e8b6c8c __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2e951d65 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x2ea23d19 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ee05faf cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x2f04d8b8 rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f19aba7 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f444612 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2f64415f unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2f78af52 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2f887359 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x2fa119eb fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x2faffa0d tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0x2fd8cba9 freeze_wake +EXPORT_SYMBOL_GPL vmlinux 0x2fdecdce tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x2fe572cf noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x3002d4f0 rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x3026dad5 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x30364f15 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x3056298d raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x308b733a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30c408fb sk_unattached_filter_destroy +EXPORT_SYMBOL_GPL vmlinux 0x30ce8334 regmap_field_write +EXPORT_SYMBOL_GPL vmlinux 0x30f12599 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x30ff932b extcon_unregister_interest +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x31541065 extcon_set_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x315bb54e __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x31689784 wm5110_patch +EXPORT_SYMBOL_GPL vmlinux 0x317d59a6 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x318d6633 tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x319bc209 apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x31d577ca bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x32035ff5 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x32056c39 inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0x320cc706 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x3221de43 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x322bd70c fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x322f3511 __tracepoint_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x32385d47 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x3256ca45 gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x328995b5 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x32924a4d scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x3294e73e sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x329bbbde timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x32a486c7 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32b9923a intel_scu_notifier +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32dc89fd mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x32fc25de pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x32fd447a monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0x32fd4b62 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x333228ec intel_msic_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x33520d72 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x33655159 xen_pcpu_hotplug_sync +EXPORT_SYMBOL_GPL vmlinux 0x33781925 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x338edbc5 pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0x33b5a2e7 pinctrl_lookup_state +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33d87afe inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x33de71a8 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x341bb0ec regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x3424556a xen_swiotlb_unmap_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x342a81bc acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x343e8b7a console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x34ac50a4 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x34cf62b7 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x34fa8c37 arizona_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x352650ee gnttab_batch_map +EXPORT_SYMBOL_GPL vmlinux 0x355de629 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x3581f995 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x35a0d141 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x35ab93d9 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x35bdc2bf usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x35df06bc power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x35f10f43 nfq_ct_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x35f165f1 devm_reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x35f3ae51 unix_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x36075bb5 iommu_group_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x3622ff76 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x3623a365 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x363b7483 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36a1fef6 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x36afd5ab blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0x36b5497e intel_iommu_enabled +EXPORT_SYMBOL_GPL vmlinux 0x36ba2551 intel_scu_devices_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3703acac acpi_dev_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x370d501c pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x371083e1 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x3710c46a crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x37204aeb usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x37f3fec4 isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x38066ce8 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x3827facd clk_register +EXPORT_SYMBOL_GPL vmlinux 0x38620e38 gnttab_grant_foreign_access_trans_ref +EXPORT_SYMBOL_GPL vmlinux 0x388b2ecf hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x38976a48 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38ba5264 subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x38f83c61 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x391eb977 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x39270d14 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x39470404 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x3958b27c ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x3962dbc2 rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x3973c145 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x397eabf2 ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0x39810f5e tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0x399f1bd0 regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x39bc1010 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x3a1cb323 unregister_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a38dc65 memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a58b643 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x3a59799c wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x3a8b9778 gpio_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x3a9a3247 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x3aa4897b wm5102_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3aa62b86 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x3ab3bb97 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x3ac733cf __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x3acf2a88 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x3ad6f3e1 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x3af1d9fb clockevents_unbind +EXPORT_SYMBOL_GPL vmlinux 0x3af4e8a7 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x3b062d26 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0x3b2d66c5 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x3b38f2da tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x3b48e94a usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x3b4e4c94 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x3b55911d cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3b7a0fb2 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x3b9354d7 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x3bc29613 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x3bdea7ae regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x3be8e450 cgroup_taskset_cur_css +EXPORT_SYMBOL_GPL vmlinux 0x3c0bf938 hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x3c4a6dbd tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x3c50948f spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x3c7f7d38 blk_queue_bypass_end +EXPORT_SYMBOL_GPL vmlinux 0x3c8424a0 clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c8f4428 clk_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cf04db4 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x3d2c42b9 da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d56b013 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d7f4f76 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3de77634 __netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3e15aabb virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x3e1f1e08 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x3e2e543d cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x3e2fa31f wm8997_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3e474bc6 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x3e7721e8 get_device +EXPORT_SYMBOL_GPL vmlinux 0x3e7f0dfc __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x3e971b8d regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x3ea5196d apei_osc_setup +EXPORT_SYMBOL_GPL vmlinux 0x3eaadb68 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x3eb81ba9 regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x3eed2586 pinctrl_find_gpio_range_from_pin +EXPORT_SYMBOL_GPL vmlinux 0x3eefba1f blkg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f1a440f pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0x3f229c4c oops_begin +EXPORT_SYMBOL_GPL vmlinux 0x3f31cc8f regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0x3f7a4dea extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3f85412f pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x3f882190 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x3f9056c0 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x3fdfe44f xen_swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x3fe659c8 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x3ff3e2ad iommu_attach_group +EXPORT_SYMBOL_GPL vmlinux 0x3ff72246 __netpoll_free_async +EXPORT_SYMBOL_GPL vmlinux 0x40099453 regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0x400a024b acpi_scan_lock_release +EXPORT_SYMBOL_GPL vmlinux 0x403735c5 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4045c494 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x4047cd1e pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x4065d168 pm_print_active_wakeup_sources +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40af2c6d devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40d8a78a xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x40dafcd4 extcon_get_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x40e152db __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x41120da8 extcon_find_cable_index +EXPORT_SYMBOL_GPL vmlinux 0x41299916 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x412c7fcc fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0x414b23da tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x414b82d9 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x41713624 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x4178cd14 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x419e62b6 xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0x41a304f6 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x41a64989 blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0x41a9e992 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x41d433ad rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x421017d5 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x4213a51a efivar_entry_set_safe +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x42444217 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x42501f31 xen_swiotlb_sync_single_for_device +EXPORT_SYMBOL_GPL vmlinux 0x427c27e7 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42c989ff iomap_atomic_prot_pfn +EXPORT_SYMBOL_GPL vmlinux 0x42caab04 yield_to +EXPORT_SYMBOL_GPL vmlinux 0x42e8d168 debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x430b40dd class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x431fc15a device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x4322ac36 regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x435e6c6e crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x43a53735 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x43e7d085 thermal_generate_netlink_event +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x441aaed5 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x44246126 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x44373963 rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4456b09f rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44abb7b8 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x44ad5421 iommu_domain_window_enable +EXPORT_SYMBOL_GPL vmlinux 0x44cc9c55 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x44f78a9f sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x450e8127 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x4512b086 intel_scu_devices_create +EXPORT_SYMBOL_GPL vmlinux 0x451876f0 proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0x451ab371 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x451bdeeb fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x4523cab9 cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x454c15ae __smp_call_function_single +EXPORT_SYMBOL_GPL vmlinux 0x4557f0d7 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x457221ad fuse_get_req_for_background +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45825372 devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x459068b8 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x459e1ce8 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x45a31751 pinctrl_find_and_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x45a49f26 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45cf7320 ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45d9fbc5 pinctrl_utils_add_config +EXPORT_SYMBOL_GPL vmlinux 0x45e020ae ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x45f4dba4 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x460f7531 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x4623c436 regmap_fields_write +EXPORT_SYMBOL_GPL vmlinux 0x46282497 iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0x4633280f ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x46649969 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x46717e89 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x46c75c32 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x46f13326 watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0x470fa426 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x472dafde clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x47349e68 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x474e9bdf iommu_domain_set_attr +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x477a6ec6 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x4781602d tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x4828e77b acpi_scan_lock_acquire +EXPORT_SYMBOL_GPL vmlinux 0x4831c65d trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x484d2535 ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x4861b141 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x48682db9 perf_guest_get_msrs +EXPORT_SYMBOL_GPL vmlinux 0x489cfbb7 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x48ca8947 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x48d587b8 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x48fd0960 ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0x490a8df6 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x49339f55 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x4952b642 sdhci_pci_o2_probe_slot +EXPORT_SYMBOL_GPL vmlinux 0x49626a3c ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x4973379b put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x4978ba8f irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x4982a57f probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x498d293a trace_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49a5c02e skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x49ef29b6 rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0x49f830fa split_page +EXPORT_SYMBOL_GPL vmlinux 0x4a043589 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x4a136499 dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x4a33ce4a bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x4a3c3cf9 microcode_sanity_check +EXPORT_SYMBOL_GPL vmlinux 0x4a57c5e8 tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x4a902c01 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x4aa886b5 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4ab24c01 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x4adb8ae1 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x4aec6d0f __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x4afb573b vrtc_cmos_read +EXPORT_SYMBOL_GPL vmlinux 0x4b0150d4 dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x4b10c6bc rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x4b1ff31a register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x4b2e143c ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x4b45dfeb ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x4b5f02e6 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x4b9bac70 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x4bba0f9c sdhci_pci_o2_fujin2_pci_init +EXPORT_SYMBOL_GPL vmlinux 0x4bbee7f8 netlink_alloc_skb +EXPORT_SYMBOL_GPL vmlinux 0x4bc5e87a disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bd5bdd8 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x4be40972 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x4be5767b pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x4c10d14d __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x4c16f764 btree_remove +EXPORT_SYMBOL_GPL vmlinux 0x4c234d47 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0x4c2381fd rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0x4c23b759 regulator_can_change_voltage +EXPORT_SYMBOL_GPL vmlinux 0x4c2a472b __static_cpu_has_safe +EXPORT_SYMBOL_GPL vmlinux 0x4c2e1f24 clk_disable +EXPORT_SYMBOL_GPL vmlinux 0x4c4b6294 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x4c602bf1 __blkg_release_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4c6aca64 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4ca4c9df clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x4cd7eeee debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x4ced43e1 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x4d09640e xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x4d1729e7 xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x4d2d790c bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x4d2f2144 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x4d87beed srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x4d8931e9 xenbus_dev_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x4d903e18 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x4d92b653 pinctrl_utils_add_map_configs +EXPORT_SYMBOL_GPL vmlinux 0x4d9ad6ab power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x4da43fc2 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x4dbf90aa setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x4dd95365 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4dead0d3 irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x4def3419 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x4df8fd18 pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x4dfa06f5 regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x4e0b33da fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e242f5f pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x4e4d9399 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x4e57723d apei_read +EXPORT_SYMBOL_GPL vmlinux 0x4e69ccb3 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x4e74e625 gnttab_batch_copy +EXPORT_SYMBOL_GPL vmlinux 0x4e918d66 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x4eabb919 of_reset_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x4eb9bed5 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f020dee public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x4f0aaa2d acpi_dma_request_slave_chan_by_name +EXPORT_SYMBOL_GPL vmlinux 0x4f337d27 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x4f44b193 xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0x4f4b699c acpi_get_gpiod_by_index +EXPORT_SYMBOL_GPL vmlinux 0x4f67e7e5 vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x4f6b0baa efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0x4f7c5119 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x4f8c225b edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x4f8ef009 __efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0x4fc03fa0 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x4fc52e8d __tracepoint_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4feef5a0 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x501dd1dc regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x5026585c xen_irq_from_gsi +EXPORT_SYMBOL_GPL vmlinux 0x502a32b7 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0x5043b86c dma_buf_begin_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x505f1361 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x506691f1 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x506b0164 efivar_entry_add +EXPORT_SYMBOL_GPL vmlinux 0x506cc085 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50ae11fa swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x50b44d2e usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x50c7f987 iommu_present +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50cb12ef pinctrl_dev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x5108b3fc acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x51379196 __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x513ac72e pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x5188807d usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x51a48c70 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x51c42c0a da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x51ebdb5a inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x51ec7307 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x520a180f wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x520adb00 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL vmlinux 0x521f36de inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x52212010 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x522e2d60 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x52486dd8 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x5255ded8 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x5259cbdd relay_close +EXPORT_SYMBOL_GPL vmlinux 0x525cbf07 alarm_start +EXPORT_SYMBOL_GPL vmlinux 0x5272d8bc __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0x5299d90d usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x52a41251 __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x52ca30c6 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x52f441b7 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x52f7554e platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x5310d8dc __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x53239a74 cm_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x53304718 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x535e3534 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x5391b3b0 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x539e2457 hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x539f157b pci_xen_swiotlb_init_late +EXPORT_SYMBOL_GPL vmlinux 0x53a1ee7b irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x53b9aacc ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x53bb54ad devm_usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x53c886f6 shake_page +EXPORT_SYMBOL_GPL vmlinux 0x53d5e50c fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x53ea8103 xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0x53ec9066 regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x54740eb7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x54844068 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54a0bbdb n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x54a2326c efivar_entry_size +EXPORT_SYMBOL_GPL vmlinux 0x54b8ac68 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0x54dad3df tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0x5504931f inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x55117d20 pinctrl_dev_get_devname +EXPORT_SYMBOL_GPL vmlinux 0x553215eb pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x55edd53d unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x56185cf6 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x562aa3fe fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x5646cfce fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x5650c0c1 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x56530e50 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x5654f836 erst_get_record_id_next +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x565bd33b crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x56603eb2 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x56653288 rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x56694a69 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x566eeb50 regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x56787651 regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0x56886b19 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x568f85b7 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x5692386f gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56d697ce cpu_up +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x57231f45 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x57520d16 cper_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x5782312f blkg_lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57ac4481 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x57f3ddde device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x58277718 pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0x5839fc62 gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x58413099 ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x584c5acb led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x585704ab aer_recover_queue +EXPORT_SYMBOL_GPL vmlinux 0x587eee58 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x589e4569 syscon_regmap_lookup_by_pdevname +EXPORT_SYMBOL_GPL vmlinux 0x58a1a37f scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x58a1a544 rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x5902e253 rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0x5940c1b9 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5944b486 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x5947abbe max77693_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x59a6e91d clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x59e00ab4 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x59e2743e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x59e47d9f mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x59f84049 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x5a15bacb __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a441ebd efi_query_variable_store +EXPORT_SYMBOL_GPL vmlinux 0x5a48ecbe security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x5a56e128 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a84d09c platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x5aac6e52 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x5abaec3a transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x5ae65f3d usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5af5b9f5 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x5b03460b spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x5b073d03 rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0x5b29d0cb ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0x5b44bf17 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x5b6b7002 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x5b766c6a regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x5b7b1868 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0x5b9d2742 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x5babf842 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x5be2cfeb usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x5bf0b1f0 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x5bf91c2b usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x5c235af0 dma_buf_export_named +EXPORT_SYMBOL_GPL vmlinux 0x5c34b7b5 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x5c443e23 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x5c4f163f crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x5c66e90c efivar_run_worker +EXPORT_SYMBOL_GPL vmlinux 0x5ca703b4 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x5cabdced dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5d12e48f input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x5d2f2d76 pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d4877f6 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x5d48a650 m2p_find_override_pfn +EXPORT_SYMBOL_GPL vmlinux 0x5d4e6902 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x5d5e9e3d kobj_completion_del_and_wait +EXPORT_SYMBOL_GPL vmlinux 0x5d6c4116 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x5d737f30 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x5d851732 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x5d8bdb17 regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x5da4f084 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x5da8af86 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x5da9a90d regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x5db8a09b serial8250_rx_dma +EXPORT_SYMBOL_GPL vmlinux 0x5dbcfa4f boot_cpu_physical_apicid +EXPORT_SYMBOL_GPL vmlinux 0x5dc7fc60 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x5dcf35f6 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x5dd07844 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x5e0922e1 bio_trim +EXPORT_SYMBOL_GPL vmlinux 0x5e2634d2 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x5e2f76fe thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0x5e35f28d sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x5e51cd74 swiotlb_nr_tbl +EXPORT_SYMBOL_GPL vmlinux 0x5e53a437 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x5ea5c3b5 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x5eb687be lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0x5ec7e87a device_reset +EXPORT_SYMBOL_GPL vmlinux 0x5ecb7d9f da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x5ed6c5a7 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5ee23ec4 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5ef3fbf9 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x5f18bea4 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f419491 gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x5fb49dbb tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x5fba2e49 pinctrl_remove_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x5fc27be9 acpi_dev_irq_flags +EXPORT_SYMBOL_GPL vmlinux 0x5fc3fa69 pinctrl_pm_select_idle_state +EXPORT_SYMBOL_GPL vmlinux 0x5fdfa2c1 amd_pmu_enable_virt +EXPORT_SYMBOL_GPL vmlinux 0x60112480 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x60175f9f crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x603d9cb2 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x606611a7 xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0x608b98c0 usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0x60930d37 save_mc_for_early +EXPORT_SYMBOL_GPL vmlinux 0x6094685f wm8997_irq +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a14235 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x60a7bcf7 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x60ac7b9f dev_get_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x60b6b78f crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x60da2f5e udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0x6100f5ea crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x610e6aa2 evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x611006d5 apic +EXPORT_SYMBOL_GPL vmlinux 0x611104b7 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x6120b664 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x612b9913 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0x614c54c4 pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0x6155b46c acpi_subsys_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x616ba3eb pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x6195c39f ima_file_check +EXPORT_SYMBOL_GPL vmlinux 0x61b4ab0b inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x61caa7d5 pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x61e0c8c7 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x623803c8 hest_disable +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x624fc8f8 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x625d1618 thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x625f4273 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x628e0cb6 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x6296113e blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x629adfe7 xen_pci_frontend +EXPORT_SYMBOL_GPL vmlinux 0x62aefd63 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x62d1d3d5 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x62e3556d thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0x62ea5835 tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x63164898 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x63302e9d ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x633e5fc9 irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x6367e536 rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0x63690c5e led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x638b663e gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x63a5de00 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0x63bb8b64 pinctrl_utils_reserve_map +EXPORT_SYMBOL_GPL vmlinux 0x63bd6ec9 alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x63bdf36d __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x63eaef55 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x63f18e94 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x63f5f90b ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x64135a58 pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x64256424 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0x642b5a1f __module_address +EXPORT_SYMBOL_GPL vmlinux 0x6445797c xenbus_dev_groups +EXPORT_SYMBOL_GPL vmlinux 0x6469aa8d bmp085_probe +EXPORT_SYMBOL_GPL vmlinux 0x646ab9c2 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x64758d68 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x647a680e devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x649bfe8e device_store_int +EXPORT_SYMBOL_GPL vmlinux 0x64b7069e apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0x64c33cf4 md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x65124726 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6527a231 dbgp_external_startup +EXPORT_SYMBOL_GPL vmlinux 0x653cb02d intel_msic_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x658c8186 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x6595710b class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x65a1610f sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x65a86ab9 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x65ab11a3 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x65abf636 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0x65b19477 ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x65b51ca2 regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d4e4a9 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x65ff2579 get_matching_microcode +EXPORT_SYMBOL_GPL vmlinux 0x6612db10 usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6627eec6 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x662a0c3f x509_get_sig_params +EXPORT_SYMBOL_GPL vmlinux 0x663c16d6 gnttab_grant_foreign_access_subpage_ref +EXPORT_SYMBOL_GPL vmlinux 0x66497142 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x667df809 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x66834a62 pci_bus_sem +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x668ecdee rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x66a8316e dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x67306efd pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x6731553f attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x67338de2 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0x6739a503 balloon_set_new_target +EXPORT_SYMBOL_GPL vmlinux 0x674e13e1 public_key_destroy +EXPORT_SYMBOL_GPL vmlinux 0x67643d26 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x677d6526 regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67957b81 uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0x67a4131c ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0x67b5133e pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x6812cf8d __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x682b58d5 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x682f9ff9 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x6843a16f ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x6866b6f1 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x687934e9 gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x68844428 acpi_subsys_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x68931698 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x689486d4 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0x68956406 static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x68b6ec73 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x68cd3c8a serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0x68dfc1d4 devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0x6917fd8d dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x6945725e mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0x695f5e9a blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x6979743a pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x69c7cf74 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x69d56380 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x69e831d6 regmap_update_bits_async +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69f767da skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x6a010052 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x6a14bcb4 pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0x6a1733eb iommu_group_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6a2a6a19 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x6a4a5700 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x6a5abe18 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x6a5d05a3 generic_access_phys +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a64e651 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x6a65367b max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6a9deed0 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x6aa592ab get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6b0adb32 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x6b289ccf pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b3d04af __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6b41e88b rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6b5b478e anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6b719b70 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x6b888292 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x6ba0e769 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x6bc045df sec_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x6be85b65 ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6bf1b90d dmi_memdev_name +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c1b09ab gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x6c2b9f7f usb_acpi_set_power_state +EXPORT_SYMBOL_GPL vmlinux 0x6c455ba1 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x6c49863f dma_buf_get +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c60ac27 devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x6c655913 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6c713e00 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x6c749afe __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x6c772044 user_update +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cae7a20 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x6cb6747c iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x6cb7ee05 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x6cb8b425 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6cd21997 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x6cd4ea62 wm5110_irq +EXPORT_SYMBOL_GPL vmlinux 0x6cd53cb7 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x6d1934f5 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x6d1e6bd8 devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x6d2a4982 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d31e93b tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x6d339861 __tracepoint_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x6d6c8a5c i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x6d9a4eba led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x6da25b3e regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x6da7d637 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0x6dc2b611 pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0x6ddec30a fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x6defd0d9 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x6e026c04 gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0x6e04a077 usb_bind_phy +EXPORT_SYMBOL_GPL vmlinux 0x6e097db9 regmap_field_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x6e195e2c blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x6e46ba56 devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x6e4f2328 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e782c23 iomap_create_wc +EXPORT_SYMBOL_GPL vmlinux 0x6e7943ec iommu_group_id +EXPORT_SYMBOL_GPL vmlinux 0x6e7cb007 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6e85b00b local_touch_nmi +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6e98d588 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x6ee0234d pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x6ef42245 acpi_subsys_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x6f0a17b0 irq_create_strict_mappings +EXPORT_SYMBOL_GPL vmlinux 0x6f0b6bd4 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f29df42 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x6f4c2e09 xen_swiotlb_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0x6f5da9b9 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x6f745ea7 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x6fabcc87 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x6fd3ee1e ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6fee2f86 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6ffce916 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x700b9a8d pci_intx_mask_supported +EXPORT_SYMBOL_GPL vmlinux 0x701ada2a irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x70201233 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x7030280e ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x704080d7 acpi_subsys_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x704c736b usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x7052044b rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x706403a7 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x7067074e sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x7076dedb pwm_set_polarity +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70825112 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x7093177b mmput +EXPORT_SYMBOL_GPL vmlinux 0x70944271 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x70a8a7ec sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x70bb651d __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x71010b13 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x710c6929 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x71481ce4 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x7149b87b fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71639d2d bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x717028c5 pinctrl_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0x7197427c virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0x7198df01 percpu_ida_destroy +EXPORT_SYMBOL_GPL vmlinux 0x71ad92f3 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x71e5a71d irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x71efdf27 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x7204c5e2 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x72093ac9 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x721ec69c usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x723b5424 irq_create_direct_mapping +EXPORT_SYMBOL_GPL vmlinux 0x723eef02 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x7254f359 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x725c5984 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x72785c2d shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72bb0c71 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x72c40d53 call_filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x72d248ec fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x72ecf5ec pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0x73013896 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0x73016d15 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x731e7780 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x733690ed remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x7348a4d2 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x735b1cd6 btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0x7360ae31 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x7362834f inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x7379fb34 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x738e55da irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x738fd248 intel_msic_reg_update +EXPORT_SYMBOL_GPL vmlinux 0x7392517d wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73c832f2 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73f0d5ab kobj_completion_release +EXPORT_SYMBOL_GPL vmlinux 0x7413743e cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x7422c95e gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x742560d2 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x74392115 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x744374a0 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x74592a37 register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x74622567 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x74636259 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x7464ea38 dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x74891cda device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74b35515 blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c08941 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x74c6719b page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x74d8ad72 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x74ec51dc fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x74fb0020 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x74fe2929 xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x7506d83a debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x75183217 each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x7529558c simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x753f26f8 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x755bd351 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x756e0685 usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x758a782e blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x75ab2233 regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0x75c2b9f1 memalloc_socks +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x7611a9c1 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x762e6586 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x7633690c ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x76919144 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x76980545 device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x76a38e4c platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x76af90fd devres_release +EXPORT_SYMBOL_GPL vmlinux 0x76d07d6e gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x76d1aad8 gpio_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x76def94b acpi_dev_get_resources +EXPORT_SYMBOL_GPL vmlinux 0x76f05b49 init_fpu +EXPORT_SYMBOL_GPL vmlinux 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x77214cea sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x7729cbdd task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x77316585 proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0x775a6ef5 kvm_read_and_reset_pf_reason +EXPORT_SYMBOL_GPL vmlinux 0x776c1060 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x777a9c26 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x777c8acf pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x778386f5 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x7790adc0 aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x7799001b __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x77da21cc crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x781bd59b efivar_entry_set_get_size +EXPORT_SYMBOL_GPL vmlinux 0x781c6eca hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x782adb74 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x784069d8 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x784beae8 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x78994b2c dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x78a071da crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x78be4970 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x78c25381 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x78ea227b acpi_bus_no_hotplug +EXPORT_SYMBOL_GPL vmlinux 0x7938a83c scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x7948bbc0 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x795fbbc0 __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x796bfa93 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x79763252 trace_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x7988e898 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0x7989dce2 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x7991fd8d crash_vmclear_loaded_vmcss +EXPORT_SYMBOL_GPL vmlinux 0x799c4837 wm5102_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0x79a71c48 kernel_stack_pointer +EXPORT_SYMBOL_GPL vmlinux 0x79b627af crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x79e140cd srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x79e69460 intel_iommu_gfx_mapped +EXPORT_SYMBOL_GPL vmlinux 0x79f37607 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x7a0f2567 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x7a2f052f __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x7a319404 clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a635a32 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x7a79d0b4 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x7a840313 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x7a8bb766 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x7a8d2321 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7ab3ca18 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x7ac8e5b0 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7adc1172 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7ae425aa regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x7af3297b blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x7af7bdc6 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b232f5d fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x7b304cd4 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7b42f53a regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x7b5d729f perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0x7b5e446f tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x7b684bfa disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x7b87cf9a device_move +EXPORT_SYMBOL_GPL vmlinux 0x7b89f50b tcp_fetch_timewait_stamp +EXPORT_SYMBOL_GPL vmlinux 0x7b90d1a9 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7b9199ab crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x7bfd8075 devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x7bff4171 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x7c1e3cbe inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x7c227088 clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x7c346357 pkey_algo +EXPORT_SYMBOL_GPL vmlinux 0x7cc1b7fd max77693_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7cc7de1c x509_check_signature +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ce5b92a gpiod_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cef22fe wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x7cf5ed49 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x7d06f1ce cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x7d0d2250 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7d26426b ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x7d2fe936 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x7d311b4f pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x7d36e534 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7d372f01 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x7d38a632 extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x7d397cc7 gpiod_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d7456e2 xen_swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc9c49a pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x7ddd55c5 virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0x7e100eed map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x7e31c97b sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0x7e448a82 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x7e4fbc6c ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x7e5045b0 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e94493f crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x7eb0e62c unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x7eb85f8e mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x7f08c9a8 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x7f4f6ce7 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x7f5d1e8f dma_buf_kunmap +EXPORT_SYMBOL_GPL vmlinux 0x7f7aee70 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x7f86d4b1 fpu_finit +EXPORT_SYMBOL_GPL vmlinux 0x7f9b6a0c gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x7f9ed9bb pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7fa56a99 od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x7feb86e0 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x7ffe64d1 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x802abb4b ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x803fd924 usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x804ae5e2 task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x805444f4 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x8080852d usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x8086851d crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x8093be04 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80dd9207 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x80fe9924 regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x8140842a gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x815c2cda regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x8186561a dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x81b3f299 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x81dd49b9 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x81e4d30c hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x81e55698 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x81e9935a usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x81faa7fd mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x821098cb need_load_eval +EXPORT_SYMBOL_GPL vmlinux 0x821f4e52 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x82343a71 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8237aa42 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x82398317 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x8239ef41 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8257af21 smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x827b4d19 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x829021ce __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x829e75cb ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82f89884 wakeup_source_prepare +EXPORT_SYMBOL_GPL vmlinux 0x83027d55 m2p_add_override +EXPORT_SYMBOL_GPL vmlinux 0x8318eb66 clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x831a9e37 put_device +EXPORT_SYMBOL_GPL vmlinux 0x8337e0e7 pci_restore_ats_state +EXPORT_SYMBOL_GPL vmlinux 0x833ccbae hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x834616bb sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x836ea0d4 nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0x8370f5fc __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x83869f83 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x838a8221 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x83a5ae2e __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x83a6223b sec_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x83e2c617 sec_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x83f63c4a ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x83fbfb6a inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x8412d37f tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x8420bccd cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x842dc23c unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x84361068 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x843666d3 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x844861fc raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x84531f52 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x846b399a sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x849e7136 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x84ab9f70 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x84cf6b23 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x84ecfefe pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x84f7a641 cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x850785a3 print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x8536029e relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x854a337e rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x85526eef usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0x856629e7 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x8570d628 devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8574ca6c gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x85765674 powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0x8576dfda hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x8580c449 acpi_dev_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x858c5582 uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x85b14d33 clk_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x85c03465 blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85cb2c45 xen_has_pv_devices +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x85eb074d platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x861ae0aa dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0x861e26df rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0x861fda30 crypto_lookup_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x86366113 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x866b9687 wm8997_aod +EXPORT_SYMBOL_GPL vmlinux 0x8675ad3b devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x868e4592 sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x86a09b70 cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86aa16e6 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x86e94c8b cgroup_taskset_first +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86feee00 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x87054492 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x870cf952 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x870e16b7 xen_test_irq_shared +EXPORT_SYMBOL_GPL vmlinux 0x8714db85 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x87705f6a skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x87786f0e __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x878cbc44 get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x87984b16 __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x87c2e6e5 sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0x87c344fa pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x87ecd955 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8831f8b1 kmap_atomic_pfn +EXPORT_SYMBOL_GPL vmlinux 0x883c2740 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x8870f84f usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x8889f7a7 rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x888d8730 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x889f1962 xenbus_dev_cancel +EXPORT_SYMBOL_GPL vmlinux 0x88a0896a rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b0844e btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0x88b5647c trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x88bbb515 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x88c4772c tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x88c9e7fb bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x88f709ac ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x89002375 netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x892056e0 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89485687 iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x8948b7ad pci_reset_bridge_secondary_bus +EXPORT_SYMBOL_GPL vmlinux 0x89502f0c gnttab_subpage_grants_available +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x895c18ad d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x896c7c57 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x898507ed device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x89a22d71 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89dbdcc1 __tracepoint_map +EXPORT_SYMBOL_GPL vmlinux 0x8a04b9fe tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x8a0b108e regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x8a0ce338 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0x8a2b14ba wm5110_aod +EXPORT_SYMBOL_GPL vmlinux 0x8a3a66fc fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0x8a400797 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x8a4a0036 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a4a6f82 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x8a69f242 thermal_notify_framework +EXPORT_SYMBOL_GPL vmlinux 0x8a75c225 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a7cb9c4 platform_thermal_package_rate_control +EXPORT_SYMBOL_GPL vmlinux 0x8a8b6c5e crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x8a99a8d2 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8b04668e bind_interdomain_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x8b0f5015 fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0x8b10084e fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0x8b3624ba regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x8b66f9e0 xen_platform_pci_unplug +EXPORT_SYMBOL_GPL vmlinux 0x8b6b49b2 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x8b978794 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x8b9da352 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x8bca6291 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c213e27 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x8c482989 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x8c6be016 key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x8c91e403 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x8c9ead08 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x8cc38fc1 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0x8ce68666 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x8cf70df0 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x8d050da2 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x8d22bb58 iommu_group_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8d3bac7a print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0x8d3d2fac devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x8d4f8d12 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x8d574d03 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x8d58a71d acpi_dev_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x8d732b06 regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0x8d7dfeac pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x8d8f14e8 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x8da5851b vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x8ddef165 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x8de40630 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x8e050d6b wm8997_patch +EXPORT_SYMBOL_GPL vmlinux 0x8e223dbf clk_register_divider_table +EXPORT_SYMBOL_GPL vmlinux 0x8e22c674 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x8e544048 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x8e6482b9 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x8e6fe831 cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x8e93d886 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x8e9bfdcc ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x8e9c7933 gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x8ea960cb blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8eb0cb9a shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x8ebd900b dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x8edfb574 injectm +EXPORT_SYMBOL_GPL vmlinux 0x8effebd3 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x8f1a84f3 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x8f37ea60 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x8f492971 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f734616 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x8f79c5b9 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x8f902a2c gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x8f9a277c sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x8f9ed508 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x8fa6281a skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x8faae5e1 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x8fc4a591 dma_buf_vmap +EXPORT_SYMBOL_GPL vmlinux 0x8fdcd457 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x8fe9325b acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x90228869 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x905c6820 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90705b7f syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x90714c6b tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x90753a3e scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x907fb4b1 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x90927414 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90dc65af _submit_bh +EXPORT_SYMBOL_GPL vmlinux 0x90de0452 platform_thermal_package_notify +EXPORT_SYMBOL_GPL vmlinux 0x90f5c9a3 inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x9103d74d pwm_free +EXPORT_SYMBOL_GPL vmlinux 0x910847c2 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x910f57a6 iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0x9115be83 rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x9120c271 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x91286982 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x916750cc sec_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x916d854b __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x917e5f79 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91d22709 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x91db642c public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x91e5e10d regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x91eebbfd regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x922367a7 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x922a99c5 md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x922e1d5b max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x92727e01 efivars_unregister +EXPORT_SYMBOL_GPL vmlinux 0x929c467f btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92db8f68 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x9312d80e evtchn_put +EXPORT_SYMBOL_GPL vmlinux 0x931f943f dma_buf_mmap +EXPORT_SYMBOL_GPL vmlinux 0x9324e78e acpi_dev_resource_memory +EXPORT_SYMBOL_GPL vmlinux 0x9337247d exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x933c524b efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x93698152 da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x9384f341 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x93877673 regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0x938d5770 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x93bd5e7c da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x93e42d16 isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x93e61509 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x940d54fa inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x941f04db acpi_dma_request_slave_chan_by_index +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x94321c26 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x943b659e usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x945b28fd sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x946ca9dc list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0x946e0ac0 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x94773e68 device_register +EXPORT_SYMBOL_GPL vmlinux 0x9478cb5c dma_buf_attach +EXPORT_SYMBOL_GPL vmlinux 0x94846083 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x9492d856 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94abb745 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0x94c19106 regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x9521b067 regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x95d0b55b tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x95d0f8ea inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x961a062f devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x962b1402 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0x964add15 xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9659c657 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x965f5b39 pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0x967b11fc cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x96828b26 regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0x969216a6 key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x969f59ac thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x96a22790 vmcore_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x96bd50e4 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x96df88d7 pwm_config +EXPORT_SYMBOL_GPL vmlinux 0x96f7e4b9 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x970ed5a4 devm_regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9730c462 gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x975c595a ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x9764c842 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x97a3ec56 ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x97b093dd btree_update +EXPORT_SYMBOL_GPL vmlinux 0x97c44469 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x97edc141 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x97ef4b23 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x98028bf4 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x9802aed8 xen_swiotlb_map_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x984d1b1a __mmu_notifier_invalidate_range_start +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x985b96f3 reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9882ee2e get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x98b2e3b8 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x98bb3285 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x98ea48b2 acpi_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x98fa1e20 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x993cab07 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9973add9 __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x99784ef4 sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0x9978af5a register_mce_write_callback +EXPORT_SYMBOL_GPL vmlinux 0x998857e2 irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0x999c7855 pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x99c87be9 pinctrl_utils_add_map_mux +EXPORT_SYMBOL_GPL vmlinux 0x99e7059f acpi_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x99fea9e5 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x9a06e25c ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a2f22e8 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x9a3878ce rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x9a3fbb41 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x9a57ecdf ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x9a5ebfa0 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x9a64648d tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x9a77f2d6 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x9a7f66e0 irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x9a89dbf7 lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x9a8d0bd3 ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x9a9824ef btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9aa48247 pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x9aaa1208 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x9ab63b16 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9ac7ea07 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x9aca444b get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x9acf1b97 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9afde51d tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x9b0e316f napi_hash_del +EXPORT_SYMBOL_GPL vmlinux 0x9b3466db acpi_dev_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x9b5c2385 percpu_ida_free_tags +EXPORT_SYMBOL_GPL vmlinux 0x9b80e64d attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9b8d9503 hv_register_vmbus_handler +EXPORT_SYMBOL_GPL vmlinux 0x9b8eef99 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9babf390 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x9bcfb936 rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x9bd72b78 apei_write +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9bfc7c2d ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x9bffeade __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x9c21f41f uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x9c2b0943 devm_regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x9c2e4b66 acpi_unregister_gsi +EXPORT_SYMBOL_GPL vmlinux 0x9c3abdf8 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9c9b9cd4 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x9caa6bdf __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x9cc4f70a register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9cd0184d init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d0c2d32 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0x9d0ca2a4 btree_merge +EXPORT_SYMBOL_GPL vmlinux 0x9d138533 percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d4abd8c mmc_send_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x9d4f6c2f sock_update_netprioidx +EXPORT_SYMBOL_GPL vmlinux 0x9d57dc4b blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x9d5c3d24 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x9d62c898 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x9d8331c0 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x9d838fe6 pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0x9db18c42 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x9dc8a0ca scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9de17df9 __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x9de2882c iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x9dfdf722 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x9e09aa41 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x9e7f0377 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x9ea4fef1 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x9ea51210 rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0x9eab3c98 extcon_set_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x9eb45cae sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x9ebff902 start_thread +EXPORT_SYMBOL_GPL vmlinux 0x9ec26efb led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ef41997 devm_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x9f0664bf dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x9f0e1e84 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x9f212dc4 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x9f2a0897 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x9f33c1e4 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x9f72a86b inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x9f92588e driver_register +EXPORT_SYMBOL_GPL vmlinux 0x9fad1a0e tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x9fc8f12f dev_hard_start_xmit +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fd5f084 pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0xa018742f virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa0699624 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xa072bc0d tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0xa07c215b mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0xa08f53df ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xa09aa058 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xa0a3a9c1 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0xa0b3fc71 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa0be2a28 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0ffc306 user_match +EXPORT_SYMBOL_GPL vmlinux 0xa11216be xen_store_domain_type +EXPORT_SYMBOL_GPL vmlinux 0xa128785c ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0xa12d929d desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0xa156a1f2 erst_get_record_id_end +EXPORT_SYMBOL_GPL vmlinux 0xa15d3c0b clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0xa1a31828 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xa1a6a420 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xa1b2650e fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0xa1b4e4ec class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa1b89147 devm_spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xa1b9800c serial8250_tx_dma +EXPORT_SYMBOL_GPL vmlinux 0xa1bd7822 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa1e3d117 regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xa1e970a5 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0xa1f79553 xen_create_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xa1fd72fb get_kernel_page +EXPORT_SYMBOL_GPL vmlinux 0xa2183d17 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xa2289f2e devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xa2516cb5 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0xa26d130d raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa27cb33b kobj_completion_init +EXPORT_SYMBOL_GPL vmlinux 0xa2a207fb ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xa2a4b5ec spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xa2b2817b devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xa2b9c993 clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0xa2c95ae5 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xa2ce2807 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xa2fa4506 regmap_update_bits_check +EXPORT_SYMBOL_GPL vmlinux 0xa2fdbd4e ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0xa30ece30 cgroup_is_descendant +EXPORT_SYMBOL_GPL vmlinux 0xa3317729 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0xa33285ea da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa3575614 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0xa360062e pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xa36a7868 iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0xa36cc444 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa387adbc vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xa389a49a profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0xa3bc524b irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0xa3e6c73b xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa3e8dcc3 pinctrl_dev_get_name +EXPORT_SYMBOL_GPL vmlinux 0xa3f06f08 bmp085_remove +EXPORT_SYMBOL_GPL vmlinux 0xa3fa2c25 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0xa421c0ae dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xa422c011 dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0xa44ec9ff pin_is_valid +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa452f2a4 xen_pirq_from_irq +EXPORT_SYMBOL_GPL vmlinux 0xa460ef9c pci_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0xa466de38 acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0xa4737b41 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4bf3db1 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xa4c4b894 ping_close +EXPORT_SYMBOL_GPL vmlinux 0xa4cf2cde pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xa5360c0f queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xa5b15112 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xa5bceb0a devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xa5c9706a crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5f37319 acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0xa5fb80a2 xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0xa61b1477 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xa61f03e4 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa625110d kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0xa62892c6 efivar_sysfs_list +EXPORT_SYMBOL_GPL vmlinux 0xa62b0f8b ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0xa6526244 rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0xa6704116 irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0xa682d0ec bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xa6a0a273 max77693_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa6a8a577 sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xa6b21ef2 dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0xa6cf3d3f efivar_entry_remove +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa724257f init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xa72de07e scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xa74769ec i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xa7510d89 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xa75312bc call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0xa75811d0 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xa792aa3f sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0xa799cbf6 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xa7bda958 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xa7c8e470 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xa7ea9a8f usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa801b359 efivar_entry_iter_begin +EXPORT_SYMBOL_GPL vmlinux 0xa80dafb3 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xa810035a scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xa810062e agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xa8151a9d __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa85a074a fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xa8743468 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa8754166 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xa87efbda platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xa8c3b6a3 subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa9286c13 xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0xa936f5de unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0xa9600472 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xa980af16 RSA_public_key_algorithm +EXPORT_SYMBOL_GPL vmlinux 0xa98312ec rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xa9a82042 gnttab_trans_grants_available +EXPORT_SYMBOL_GPL vmlinux 0xa9ab3c3a dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xa9e18049 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9fc3f54 gnttab_grant_foreign_access_trans +EXPORT_SYMBOL_GPL vmlinux 0xaa0e0f60 css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa41fdb0 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xaa447167 pinctrl_force_default +EXPORT_SYMBOL_GPL vmlinux 0xaa53f4f8 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0xaa604579 devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0xaa6ba500 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xaa91dfae spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0xaaa26475 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaab8f603 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xaac4c3c9 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xaac54606 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xaadfbc83 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xaae08d5b __mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab0dc00f tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xab15123c scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xab1c81be trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab82a438 gpiochip_add_pingroup_range +EXPORT_SYMBOL_GPL vmlinux 0xab886f0a da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xab8d02d1 virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0xabb4c38e wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0xabb62202 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xabbf3e32 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0xabd14ee0 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xabdac24e blkg_stat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0xabf26332 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xabf462b1 user_read +EXPORT_SYMBOL_GPL vmlinux 0xac002e3f regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0xac1dbc92 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xac382151 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0xac3a5519 rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xac73f87d dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xac9ce195 kvm_async_pf_task_wait +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacbb26e1 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacf76b3e usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xacffc03e dma_buf_end_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0xad0ee3fa __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xad13481e virtqueue_is_broken +EXPORT_SYMBOL_GPL vmlinux 0xad1911bd serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0xad1c1ac1 dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0xad376749 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0xad4afd73 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0xad55c409 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0xad602d2f pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0xad664ae9 ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0xad78f5e1 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0xad7cf4c1 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0xad8d8ab0 xen_physdev_op_compat +EXPORT_SYMBOL_GPL vmlinux 0xadba2086 ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadf5bebb wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae10ce14 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xae5673ad thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae6eaf93 hwpoison_filter_dev_minor +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae7c5411 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0xae819952 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xae92ff19 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0xae93a717 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xaea68a11 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xaeb003b4 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xaeb62545 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0xaee4d820 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xaeee8fff __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xaeef7dae regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0xaef1b1a9 pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0xaefd55d6 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xaf027445 tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0xaf3647a1 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0xaf4b2c6d ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0xaf5d9e7c thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0xaf734cc5 acpi_bind_one +EXPORT_SYMBOL_GPL vmlinux 0xaf7c763a firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0xaf81e2fa crypto_lookup_aead +EXPORT_SYMBOL_GPL vmlinux 0xaf87a3ce set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xafa2b7b9 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xaff4bc03 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xb00ba70e set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xb01cdbca crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xb02ac411 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb02e4c77 pinctrl_pm_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0xb080df7b ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xb0ac1349 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xb0b53367 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0f2c229 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb11ea4b8 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0xb139c5f9 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xb13f0486 verify_signature +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb15449cb xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb15a3513 ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xb172ffac efivars_sysfs_init +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb19efccd lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0xb1a7e3f6 clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1bed25d dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0xb1c0c1c2 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xb1c6de8a gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb20bd21e dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xb21a7f8c sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb22c1832 powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0xb25739f2 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xb26bf974 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xb2ca2a60 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0xb2cd6ce6 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xb2d49fb0 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb2f3d6de invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xb2f4f5a0 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0xb2f62add virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0xb30bdd1b ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0xb30d3761 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb33151ea napi_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xb354bb20 serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0xb383c4e3 clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0xb399cab2 spi_async +EXPORT_SYMBOL_GPL vmlinux 0xb39b3f69 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xb3eb548c nfq_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0xb42d4fcb irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0xb4463586 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xb4532b78 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb49931f3 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xb4a5d79b class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4c15be4 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4e702cf pinctrl_add_gpio_ranges +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb5001de8 napi_by_id +EXPORT_SYMBOL_GPL vmlinux 0xb50f4fd4 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb520e3d0 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb53a2f6a regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xb54e185f rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0xb579b7c4 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb599a77c usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xb5a0e11e lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0xb5a3352b ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0xb5ab3099 dma_buf_detach +EXPORT_SYMBOL_GPL vmlinux 0xb5ac6af5 spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0xb5cb8145 hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xb5d125d6 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0xb5e896fb tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0xb5ecee41 filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb6212caa alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb6228f6e cgroup_taskset_next +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb62e239a pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0xb66421b2 acpi_str_to_uuid +EXPORT_SYMBOL_GPL vmlinux 0xb67b2219 cm_suspend_again +EXPORT_SYMBOL_GPL vmlinux 0xb67c64fd __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xb6884496 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0xb68a1643 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb68e0b41 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6bc49a9 __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xb6c635af wm5110_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb6c9fe29 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xb6d8564b ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xb6e2c2a0 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0xb6f2c578 __tracepoint_unmap +EXPORT_SYMBOL_GPL vmlinux 0xb709e339 efivar_validate +EXPORT_SYMBOL_GPL vmlinux 0xb718a7dd pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb7331369 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb73c6426 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0xb76cb20e rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0xb7779e73 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb78f56bf css_next_descendant_post +EXPORT_SYMBOL_GPL vmlinux 0xb7bfc7a9 rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0xb7c98011 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7e13e0e regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xb7f1f373 ata_sas_port_async_resume +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb86bcceb klist_next +EXPORT_SYMBOL_GPL vmlinux 0xb877bd1e xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0xb87ce5d1 usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0xb8a2f531 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xb8b2b1f7 mce_register_decode_chain +EXPORT_SYMBOL_GPL vmlinux 0xb8c3cc26 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb9176155 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0xb92c534c br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xb92d6b13 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0xb93e3215 devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xb95481c2 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xb95ae833 fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0xb97ec1dd pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0xb999f00c alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9d9d2fe rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9e73e2e ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xb9fa4763 __efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0xba0d66a3 posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0xba4f6a0e debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xba98c993 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xba9efcab pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xba9f6fc8 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xbab49687 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xbab5d87d regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0xbab82db7 regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0xbadc344b ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0xbafa5c8b xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0xbafdce8e usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb071816 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb225b1b devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0xbb2e47df scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xbb467fc8 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0xbb58b814 iomap_free +EXPORT_SYMBOL_GPL vmlinux 0xbb6d6452 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xbb7362b0 clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0xbbac4572 irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0xbbacaaa9 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbd4f657 xen_pcpu_id +EXPORT_SYMBOL_GPL vmlinux 0xbbfd6c1a rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xbc64d555 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0xbc85f750 usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0xbc947c44 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0xbc9d078f spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xbca0201a sfi_mrtc_array +EXPORT_SYMBOL_GPL vmlinux 0xbca8ccc1 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xbcac6160 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbcd53b13 find_module +EXPORT_SYMBOL_GPL vmlinux 0xbcdd5b99 iommu_group_set_name +EXPORT_SYMBOL_GPL vmlinux 0xbcf66ac7 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0xbd2cac0e pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xbd31cd10 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd5cb8b9 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbd65b971 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xbda1e0b2 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xbdac2c6c device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0xbdaf33f7 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xbdb257ba hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd3958c usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse +EXPORT_SYMBOL_GPL vmlinux 0xbdfc81a6 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xbe08b48e sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe41b783 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xbe7e551b ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0xbe953d07 rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xbea4e046 pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0xbea52ca5 devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xbea5ff1e static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0xbea92374 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0xbeb56af6 debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0xbf031dbf simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf1125a0 gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0xbf2d2025 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xbfac2793 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xbfbf4d0e pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0xbffcb3b7 acpi_os_get_iomem +EXPORT_SYMBOL_GPL vmlinux 0xc00131cf visitor64 +EXPORT_SYMBOL_GPL vmlinux 0xc01310f4 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0xc0340147 extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc0551bc6 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xc07690e6 ata_sas_port_async_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc078f3aa PageHeadHuge +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc09e6eca sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c324d2 gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0xc0d01bc0 percpu_ref_cancel_init +EXPORT_SYMBOL_GPL vmlinux 0xc0d26387 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc0e75cec visitor128 +EXPORT_SYMBOL_GPL vmlinux 0xc0e9b742 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xc1007652 __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xc1123d0a alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0xc115a73c relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xc11b4470 balloon_stats +EXPORT_SYMBOL_GPL vmlinux 0xc11b45c6 gpiod_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc13dd18a devm_pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0xc144a4f3 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xc14993d5 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xc15999db ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc15d3573 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xc164642e xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc176ec4e ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xc18578ed process_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc1bfbcf6 xen_swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xc1dc0d5d acpi_find_child +EXPORT_SYMBOL_GPL vmlinux 0xc1dcb81b tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xc1e06ad1 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xc205fa4e synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc2289e50 ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc2455dc2 blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0xc25a2ab4 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2953778 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xc2ce24f5 pinctrl_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0xc2d64960 usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0xc2fa376f devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xc31d6ab0 dma_buf_kmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xc33c9b94 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc342b544 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc362d32e input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc38aa138 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xc3bef09f watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xc3d787f6 xen_swiotlb_sync_single_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc3d936a0 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xc407a1d4 gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0xc425171a crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc42d6322 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xc4625dd5 da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0xc4641afe powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc490e173 unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0xc4c6527d pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xc4d9d220 ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0xc4e2136e ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xc4fa0663 bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0xc50697a8 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0xc51f4d99 irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc553c568 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc5941eba sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xc5a581da cpufreq_table_validate_and_show +EXPORT_SYMBOL_GPL vmlinux 0xc5aebc27 cgroup_add_cftypes +EXPORT_SYMBOL_GPL vmlinux 0xc5b0a1db rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0xc5b91e25 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xc5bab3fe btree_init +EXPORT_SYMBOL_GPL vmlinux 0xc5d37180 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0xc5e0f5e3 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xc5ee2994 xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc6132523 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc63a1109 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc66b77b1 iommu_group_set_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xc6711f44 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xc68aa090 mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xc690866c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6a8bf1e pinctrl_pm_select_sleep_state +EXPORT_SYMBOL_GPL vmlinux 0xc6ba813d blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc6cd2e4c stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0xc6d09b0d tpm_read +EXPORT_SYMBOL_GPL vmlinux 0xc6d13e91 list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0xc6d76ff8 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xc6d7e798 bmp085_detect +EXPORT_SYMBOL_GPL vmlinux 0xc7002ac4 evtchn_make_refcounted +EXPORT_SYMBOL_GPL vmlinux 0xc70d6a1a inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc73096a1 wait_for_tpm_stat +EXPORT_SYMBOL_GPL vmlinux 0xc732767e list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0xc73f3868 tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0xc7569d00 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xc761a21e ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xc7a15772 device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7ae2140 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xc7c6391c mpi_set_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc7e2351d usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0xc7e39bca ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc8024340 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0xc80a3428 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xc82a7cbf uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0xc843343d net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0xc85b8025 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xc86d86e3 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc87fb89e device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8e3f950 usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xc900d397 regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9140e5a pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9656208 register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xc97c87ee pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xc97d1140 cpufreq_cooling_get_level +EXPORT_SYMBOL_GPL vmlinux 0xc99dacfe sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xc9a34176 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xc9c3f176 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xc9e66f34 inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca2bc6ca usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xca2e25f6 dma_buf_kunmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xca3d2be8 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xca4135da __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xca705f1c register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xca71fdae __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0xca7657c0 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca7ff9be sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca9fff6e rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0xcabc06ee devres_add +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcabee75a rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xcaecaf7d usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xcb15eee9 sdhci_pci_get_data +EXPORT_SYMBOL_GPL vmlinux 0xcb1dfa8f sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0xcb469d2b ddebug_add_module +EXPORT_SYMBOL_GPL vmlinux 0xcb808fd0 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xcb9b162e clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0xcba9aa14 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xcbe473af xen_swiotlb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbf098af key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0xcc149e0b skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xcc1bbda3 virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc2b4c57 sysfs_get_dirent_ns +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc85fcb6 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0xcc8a4394 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcce12372 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xccea4e34 perf_get_x86_pmu_capability +EXPORT_SYMBOL_GPL vmlinux 0xcd1501ad ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xcd1516df register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xcd2347e1 pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0xcd33276e ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0xcd4e25c9 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0xcd701b7b vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xcd87dccd bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcda10c9a sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdfaf6ca usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xce06c538 dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xce09d02d register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xce0b9b59 max77693_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xce3aea44 ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xce46e140 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0xce721a18 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xce919abe usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xceb13b60 efivars_register +EXPORT_SYMBOL_GPL vmlinux 0xcebb6199 dbs_check_cpu +EXPORT_SYMBOL_GPL vmlinux 0xcebf6e10 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xcef1dd0e perf_check_microcode +EXPORT_SYMBOL_GPL vmlinux 0xcf386fc8 rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xcf3887ff regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xcf4c44e2 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xcf54ea93 async_unregister_domain +EXPORT_SYMBOL_GPL vmlinux 0xcf9a6dc0 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xcf9fca2b iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0xcfa591ab usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0xcfc62f27 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfd0243a register_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd00ddb00 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xd023ce85 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd06740a8 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd08adc69 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xd0a3d426 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xd0be5f7b pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0dd448a led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0xd0df73d6 pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xd0f7613d dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xd1064929 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xd10c9ba3 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xd1236061 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xd1270bf2 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xd14bc4d9 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xd14f5bcf percpu_ida_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1d52a41 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xd1f337d8 usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0xd1fffcf0 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xd2032baf crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xd2074a2b ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd21161a3 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd217ce9f wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd21ab856 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xd25747dd inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xd258217d clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0xd26f2e95 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd284ac49 pinctrl_select_state +EXPORT_SYMBOL_GPL vmlinux 0xd2aaeb4e kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0xd2ae5b75 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2d4dac8 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xd2f90ac5 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd2f9239d crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0xd30b6206 dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0xd312b06a pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xd313ac43 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd3566f49 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xd357f8f7 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0xd3911595 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0xd3969364 tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0xd3a05e6e pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xd3a65475 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4038c54 regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xd411709a spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0xd41e6c66 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xd423f0f9 edac_subsys +EXPORT_SYMBOL_GPL vmlinux 0xd4383fe7 __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd496d8c8 irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0xd4bcf9ce crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4cad45e clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xd4d0fe4e da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0xd5053936 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xd51d4c78 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0xd51f84c0 arizona_free_irq +EXPORT_SYMBOL_GPL vmlinux 0xd544e902 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0xd5479dcf usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xd550560f __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xd55ad93b iommu_group_get_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xd55d29ba arizona_dev_exit +EXPORT_SYMBOL_GPL vmlinux 0xd5840e07 irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5e9d963 tpm_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0xd637460c __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xd64eba11 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xd65218c0 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0xd662055a iommu_domain_window_disable +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd67eb8f1 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xd67f5217 btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd68a32ef regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd69df484 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xd6ba1076 pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0xd6bc9c84 task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0xd6c2e04b __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd70d1b87 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd7399d2a efivar_entry_iter_end +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd78b164d sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xd78e29c6 sec_reg_update +EXPORT_SYMBOL_GPL vmlinux 0xd7a46a89 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xd7a88aa7 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xd7ab2c0c speedstep_detect_processor +EXPORT_SYMBOL_GPL vmlinux 0xd7acef79 pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xd7b491ee bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xd7c5adb8 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xd7d20709 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7f87967 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xd8130e8e crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0xd81dbf1c bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd8250a5c iounmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xd82d33b2 rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd85dc6d7 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd87fc0a0 usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0xd88527b1 usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xd8a5ce7c pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xd8ec5ad0 tpm_write +EXPORT_SYMBOL_GPL vmlinux 0xd919806a amd_cache_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xd91dcec5 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xd942d353 ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0xd94b737e erst_read +EXPORT_SYMBOL_GPL vmlinux 0xd951628b posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0xd9838d79 rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xd9a34035 __clk_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xd9a81c0e blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd9b35e4f xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0xd9b548cb iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xd9eacf75 __clk_register +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xd9ffd2bd sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0xda1a4edf swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0xda1ac61e ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xda27678e find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xda44cb37 setup_charger_manager +EXPORT_SYMBOL_GPL vmlinux 0xda59bd4b ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xda7edb75 max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xda84d810 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xdaaee745 blkg_prfill_stat +EXPORT_SYMBOL_GPL vmlinux 0xdabafe0f iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0xdabe5612 nl_table +EXPORT_SYMBOL_GPL vmlinux 0xdad287d5 sdhci_pci_o2_probe +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb42df0b key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0xdb580386 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xdb656026 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdb6962a8 fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0xdb79de07 devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdb8ab65a pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xdb8ff66c usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xdba4ad93 static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0xdbb20ec6 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xdbefcd64 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc1347e6 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc1e15f1 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xdc4791a9 powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0xdc56a798 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xdc59a32f wakeup_source_drop +EXPORT_SYMBOL_GPL vmlinux 0xdc6699cb acpi_dev_free_resource_list +EXPORT_SYMBOL_GPL vmlinux 0xdc67bb8a wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xdc71b991 ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xdc7319f5 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdcc055b2 alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xdcc684e8 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0xdcdf32c1 devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xdce4e789 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0xdcf721fb usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xdcfb3915 rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0xdcfc2a4e pinctrl_utils_dt_free_map +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd33d79a cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0xdd391eff profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd7320d3 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xdd794d33 phys_wc_to_mtrr_index +EXPORT_SYMBOL_GPL vmlinux 0xdd7e705d sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xdd8f75cd __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0xddb5de2b list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0xddbdb12f dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xddcfd523 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xdde9e565 rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xddfa53d6 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xde063cc0 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xde241669 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0xde379bfa aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xde501e28 register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xde6134f9 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xde747356 intel_msic_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xde7a1800 regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0xdea22245 regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0xdea4c108 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xdeb23b42 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0xdeb8b14f subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xdeb91182 md_stop +EXPORT_SYMBOL_GPL vmlinux 0xdefe0a75 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf17218f watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0xdf1882af dbgp_reset_prep +EXPORT_SYMBOL_GPL vmlinux 0xdf2af64c alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0xdf66ca81 ucode_cpu_info +EXPORT_SYMBOL_GPL vmlinux 0xdfa1fd06 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xdfb1c790 class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xdfb747e8 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xdfc233a7 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0xdfcb4ba6 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xdfd8bd2b skb_gso_transport_seglen +EXPORT_SYMBOL_GPL vmlinux 0xdfdc5280 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0xe003e044 __tracepoint_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe01ee5f2 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe03e41af acpiphp_unregister_attention +EXPORT_SYMBOL_GPL vmlinux 0xe050f3fd tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xe0867ca2 spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe092c707 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xe0c4c876 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0dcdcf7 iommu_domain_get_attr +EXPORT_SYMBOL_GPL vmlinux 0xe0f85c87 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xe0fc2945 md_run +EXPORT_SYMBOL_GPL vmlinux 0xe10cd6ad erst_get_record_id_begin +EXPORT_SYMBOL_GPL vmlinux 0xe122df3b elv_register +EXPORT_SYMBOL_GPL vmlinux 0xe142daea arizona_set_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0xe165e5ff driver_find +EXPORT_SYMBOL_GPL vmlinux 0xe1775ee7 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0xe1923c28 efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0xe19fec0f power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe1b88a32 tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0xe1bd6c99 rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0xe1c32794 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0xe1f1713c tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xe22287e3 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0xe25666bd ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xe26e46f0 acpi_dev_resource_ext_address_space +EXPORT_SYMBOL_GPL vmlinux 0xe2766794 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xe292afda sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2ca9ced blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xe2e7840d regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0xe2ea0c60 regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe31a7c99 regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0xe326bb70 rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xe32b08f6 tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0xe369f373 gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe388b4b6 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe3a5a360 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xe3a6421b dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe3adf5ed regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xe3bc7fd4 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xe3bf5b7d fat_detach +EXPORT_SYMBOL_GPL vmlinux 0xe3c0861a ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xe3ddc49b ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0xe3fefc5b adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xe41534ce bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xe419175d input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe43839c9 __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0xe439815c erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xe452f16a ping_proc_register +EXPORT_SYMBOL_GPL vmlinux 0xe482516c da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0xe4bd3971 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xe4c331b6 acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0xe4c4b28f gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xe4e68bc8 apei_map_generic_address +EXPORT_SYMBOL_GPL vmlinux 0xe513ac22 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xe52ae762 __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0xe5324dd6 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xe53ac38f alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0xe58647cf tps80031_ext_power_req_config +EXPORT_SYMBOL_GPL vmlinux 0xe587d615 pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe5886e14 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe598647a usb_anchor_suspend_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xe598da72 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0xe5bf88c2 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xe5d3d396 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0xe60de651 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xe611ad58 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0xe622294b dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xe623a9fd nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xe64ad8ea unregister_nmi_handler +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6587ba7 regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xe65c10ae thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0xe65f3f06 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xe68a9e12 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xe6b67f13 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xe6ba40b1 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xe6c68334 ddebug_remove_module +EXPORT_SYMBOL_GPL vmlinux 0xe6d8d9ce ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xe6dd9604 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6fae008 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0xe706a861 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xe70fa804 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0xe714f467 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xe72184a3 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe748a6ca cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe7c94f80 css_rightmost_descendant +EXPORT_SYMBOL_GPL vmlinux 0xe7f78c6d debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xe7fb1863 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe8590349 xen_swiotlb_sync_sg_for_device +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe86f159f adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe88d8604 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xe89a5ca1 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xe8b4adeb blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xe8bdbc7e sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0xe8f5c886 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0xe8f9d282 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xe923bb4d relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xe93b7d1d usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe953a287 xen_unregister_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0xe953b1d7 __intel_mid_cpu_chip +EXPORT_SYMBOL_GPL vmlinux 0xe95797d3 ping_seq_fops +EXPORT_SYMBOL_GPL vmlinux 0xe97dfd43 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe9bc4c65 __mmu_notifier_invalidate_range_end +EXPORT_SYMBOL_GPL vmlinux 0xe9c0b5ee pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xe9ce931a kvm_para_available +EXPORT_SYMBOL_GPL vmlinux 0xe9da9cca input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xe9ed063e sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xea03d087 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea15b269 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xea31ed0f dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0xea3d5797 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea48d218 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xea4f9b06 irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0xea614b96 acpi_processor_get_performance_info +EXPORT_SYMBOL_GPL vmlinux 0xea6b1564 lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0xeaa369b1 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xeaaf1b1c ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xeac28e30 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xeadb9e9f get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xeae48a00 sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0xeaeed6f9 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xeaf04e7e ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xeb1c3628 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xeb21c9da adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xeb2798f7 xen_destroy_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xeb2f1ce4 gov_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xeb3544f7 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xeb370805 __apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xeb72d198 usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0xeb833c22 xen_has_pv_disk_devices +EXPORT_SYMBOL_GPL vmlinux 0xeb9abbee ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xeb9af341 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0xeb9c40dd init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xeba7d8ac usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xebd46e81 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xebd6335f regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0xebec57c4 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xec04b1f0 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec523fbf regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0xec947719 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xec9763ce stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0xec9cc51b device_show_int +EXPORT_SYMBOL_GPL vmlinux 0xeca368b7 pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0xecd3e7bb xen_swiotlb_dma_mapping_error +EXPORT_SYMBOL_GPL vmlinux 0xed63f275 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xed741cd4 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedc247fb generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xedc9d82a __mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xedcb1d13 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xedd49930 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xeddb6f45 clk_register_divider +EXPORT_SYMBOL_GPL vmlinux 0xedf3f1f1 do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0xedf4adf3 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0xee1731b2 css_next_child +EXPORT_SYMBOL_GPL vmlinux 0xee2e83d2 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xee6b71c4 syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0xeea5b3b7 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xeef25cae debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0xef14426e tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef23d470 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xef302842 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0xef409b74 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0xef602b3e usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef782b88 gnttab_grant_foreign_access_subpage +EXPORT_SYMBOL_GPL vmlinux 0xef7a9da9 iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0xefa5839d crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xefbd8e5a ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xeff3732b ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf02212de ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xf03bbed8 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf0528d2d extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf054ac97 intel_msic_irq_read +EXPORT_SYMBOL_GPL vmlinux 0xf0674dfd usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf06af030 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xf06c796e skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xf0d5f52b arizona_dev_init +EXPORT_SYMBOL_GPL vmlinux 0xf0f5dbc2 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xf0f6ffde platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xf13572bd attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xf163c5d5 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf186c82f nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0xf1aa5773 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xf1c1d40e tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xf1cf5268 pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0xf1f966c8 regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xf200601c usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0xf20b5e3e rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0xf21bff7a ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xf21c201e pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf23148a4 cper_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0xf2595637 devm_acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xf27977e2 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xf27d2664 vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0xf2a1b590 lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xf2b87f9b bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xf2c85436 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xf2cc6ffb tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf2d01dcb ref_module +EXPORT_SYMBOL_GPL vmlinux 0xf2d12de4 xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0xf2f048b0 fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0xf2f077cc pkey_id_type_name +EXPORT_SYMBOL_GPL vmlinux 0xf2f2b182 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf32bdc5d unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0xf34ed925 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xf36976f9 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xf37af9e8 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0xf3928437 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0xf3b30360 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3bd06a6 devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xf3e1c863 digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0xf419dc93 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf442f199 ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0xf469c8f5 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xf46c391d x86_hyper_kvm +EXPORT_SYMBOL_GPL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4e10b8f power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xf4e88ed6 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xf4ea5ad6 regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0xf4eaa3e4 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xf4f5f48d ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf50363ce __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xf5198f4c ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xf528b5f2 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf52fd39f regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xf532f8b5 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf56f509d crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xf5785b42 evtchn_get +EXPORT_SYMBOL_GPL vmlinux 0xf580e2e7 bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf59d2697 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5a7caaf gpiochip_remove_pin_ranges +EXPORT_SYMBOL_GPL vmlinux 0xf5bebe67 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xf5bef8e1 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf5fef4e3 wm5110_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf62783c6 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xf672c51c __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf68bd157 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0xf68be30b sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xf6912763 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0xf69f6d45 extcon_update_state +EXPORT_SYMBOL_GPL vmlinux 0xf6b8fbf9 xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xf6c5699a device_create +EXPORT_SYMBOL_GPL vmlinux 0xf6c56a6f regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6e976bf dma_buf_vunmap +EXPORT_SYMBOL_GPL vmlinux 0xf6e9b5b7 xen_xenbus_fops +EXPORT_SYMBOL_GPL vmlinux 0xf6ecd717 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xf6ecdb02 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf713db2b single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xf7181c16 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xf7322bc8 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0xf7637e49 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0xf7705ffb usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xf7b298d6 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xf7ce48a6 usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0xf7daadc3 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xf7dd224d transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xf80e1eaa user_describe +EXPORT_SYMBOL_GPL vmlinux 0xf816c866 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf85d4a96 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8a0ef23 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0xf8c697e6 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xf8f1c9d4 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8fe3d0b kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0xf9124c5f gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0xf91bd923 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0xf9265425 acpi_dev_pm_detach +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf932015f __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf956fdde pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9a43952 bmp085_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xf9be1b2b fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0xf9beb671 ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d9264e xen_have_vector_callback +EXPORT_SYMBOL_GPL vmlinux 0xf9ec789e __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf9ecb8f6 ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa0f64e6 pwm_enable +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa3cb5d0 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xfa67b5cf tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0xfa6a4b4d blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xfa78430b sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xfaae1df9 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xfabfef6c virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0xfaea3059 dma_buf_put +EXPORT_SYMBOL_GPL vmlinux 0xfaf3dd00 ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0xfb187d09 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb402b3a pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xfb5741b0 clk_register_mux_table +EXPORT_SYMBOL_GPL vmlinux 0xfb5fa22a inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xfb64b230 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb77d300 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xfb83db03 cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0xfb87e314 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xfb8db580 tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0xfbc79027 ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0xfbe2f2e7 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0xfbec21ce modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc067847 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xfc22b109 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc4ef333 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0xfc4f4953 alarm_init +EXPORT_SYMBOL_GPL vmlinux 0xfc5f2bfb crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0xfc7273fb virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xfc84cb2d hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfcd0e345 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfcfd3c62 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xfd05464b klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xfd07ee2a pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0xfd09f2a3 task_xstate_cachep +EXPORT_SYMBOL_GPL vmlinux 0xfd0ad83b sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xfd0b6052 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xfd4e0658 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd673e7a devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfd881bb3 rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xfda7f6d3 pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0xfdcbc91e acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0xfdd3e0b7 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xfddd5061 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfe204901 debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0xfe35e622 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xfe514d07 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfeb9e7e3 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xfebfdd5f fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0xfed0974f netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfed3c957 arizona_clk32k_disable +EXPORT_SYMBOL_GPL vmlinux 0xfeda4e1c look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff0188eb crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff0a8c90 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xff15774e usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5e7368 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xff5f2b0e __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xff6036de bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xff74d080 pinctrl_force_sleep +EXPORT_SYMBOL_GPL vmlinux 0xff8e72cc pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0xffb24e24 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xffb9b186 dma_buf_fd +EXPORT_SYMBOL_GPL vmlinux 0xffc0773d spi_master_resume +EXPORT_SYMBOL_GPL vmlinux 0xffc28beb __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xffc3b49b blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0xffc733d7 acpi_unbind_one +EXPORT_SYMBOL_GPL vmlinux 0xffe66b76 rio_unlock_device --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/i386/generic.compiler +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/i386/generic.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2 --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/i386/generic.modules +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/i386/generic.modules @@ -0,0 +1,4090 @@ +3c509 +3c515 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +53c700 +6lowpan +6pack +8021q +8139cp +8139too +8250_accent +8250_boca +8250_dw +8250_exar_st16c554 +8250_fourport +8250_hub6 +8255 +8255_pci +8390 +8390p +88pm800 +88pm805 +88pm80x +88pm80x_onkey +88pm860x_battery +88pm860x_bl +88pm860x_charger +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +abituguru +abituguru3 +ablk_helper +ac97_bus +acard-ahci +acecad +acenic +acerhdf +acer-wmi +acpi_extlog +acpi_ipmi +acpi_pad +acpiphp_ibm +acpi_power_meter +acquirewdt +act2000 +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5380 +ad5398 +ad5421 +ad5446 +ad5449 +ad5504 +ad5624r_spi +ad5686 +ad5755 +ad5764 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7266 +ad7280a +ad7291 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7791 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad7923 +ad799x +ad8366 +ad9523 +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2032 +addi_apci_2200 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +addi_watchdog +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adf4350 +adfs +adi +adis16060 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1275 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +adq12b +ads1015 +ads7828 +ads7846 +ads7871 +ad_sigma_delta +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adv7170 +adv7175 +adv7180 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci1724 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +aes-i586 +aesni-intel +af_802154 +af9013 +af9033 +af_alg +affs +af_key +af_packet_diag +af-rxrpc +ah4 +ah6 +aha152x +aha152x_cs +aha1542 +aha1740 +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +airo +airo_cs +ak8975 +algif_hash +algif_skcipher +ali-agp +ali-ircc +alim1535_wdt +alim7101_wdt +alphatrack +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +alx +ambassador +amc6821 +amd5536udc +amd76x_edac +amd76xrom +amd8111e +amd_freq_sensitivity +amd-rng +amilo-rfkill +amplc_dio200 +amplc_dio200_common +amplc_dio200_pci +amplc_pc236 +amplc_pc263 +amplc_pci224 +amplc_pci230 +amplc_pci263 +ams369fg06 +analog +anatop-regulator +ansi_cprng +anubis +aoe +apanel +apds9300 +apds9802als +apds990x +apm +apple_bl +appledisplay +apple-gmux +applesmc +appletalk +appletouch +applicom +ar5523 +ar7part +arc4 +arcfb +arcmsr +arcnet +arc_ps2 +arc-rawmode +arc-rimi +arc_uart +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as3711_bl +as3711-regulator +as5011 +asb100 +asc7621 +asix +ast +asus_atk0110 +asus-laptop +asus-nb-wmi +asus-wmi +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at86rf230 +at91_ether +atbm8830 +aten +ath +ath10k_core +ath10k_pci +ath3k +ath5k +ath6kl_core +ath6kl_sdio +ath6kl_usb +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati-agp +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atlas_btns +atm +atmel +atmel_cs +atmel_mxt_ts +atmel_pci +atmel_pwm +atmel-pwm-bl +atmel-ssc +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522_common +au8522_decoder +au8522_dig +aufs +auo_k1900fb +auo_k1901fb +auo_k190x +auo-pixcir-ts +authenc +authencesn +auth_rpcgss +autofs4 +avma1_cs +avm_cs +avmfritz +ax25 +ax88179_178a +axnet_cs +b1 +b1dma +b1isa +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcma-hcd +bcm_wimax +bd6107 +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_aout +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluecard_cs +bluetooth +bma150 +bma180 +bmp085-i2c +bmp085-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpa10x +bpck +bpck6 +bpctl_mod +bpqether +bq2415x_charger +bq24190_charger +bq24735-charger +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcoexist +btcx-risc +btmrvl +btmrvl_sdio +btmtk_usb +btrfs +btsdio +bttv +btuart_cs +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +bypass +c101 +c2port-duramar2150 +c4 +c67x00 +c6xdigio +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +caif_usb +caif_virtio +camellia_generic +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5_generic +cast6_generic +cast_common +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcimdas +cb_pcimdda +cc770 +cc770_isa +cc770_platform +c_can +c_can_pci +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +cedusb +ceph +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +chromeos_laptop +cifs +ci_hdrc +ci_hdrc_msm +ci_hdrc_pci +cirrus +cirrusfb +ck804xrom +classmate-laptop +clearpad_tm1217 +clip +clk-max77686 +clk-s2mps11 +clk-si5351 +clk-twl6040 +clk-wm831x +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm36651 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmac +cmdlinepart +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-isa +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +compal-laptop +configfs +contec_pci_dio +cops +cordic +core +coretemp +cosa +cp210x +cpcihp_generic +cpcihp_zt5550 +cpia2 +cpqphp +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc32 +crc32-pclmul +crc7 +crc8 +crc-ccitt +crc-itu-t +cros_ec +cros_ec_i2c +cros_ec_keyb +cros_ec_spi +crvml +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +cs5535-mfd +cs553x_nand +cs89x0 +csiostor +ct82c710 +ctr +cts +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24117 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyapa +cyber2000fb +cyberjack +cyclades +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da9030_battery +da9034-ts +da903x +da903x_bl +da9052-battery +da9052_bl +da9052-hwmon +da9052_onkey +da9052-regulator +da9052_tsi +da9052_wdt +da9055-hwmon +da9055_onkey +da9055-regulator +da9055_wdt +da9063-regulator +da9210-regulator +DAC960 +daqboard2000 +das08 +das08_cs +das08_isa +das08_pci +das16 +das16m1 +das1800 +das6402 +das800 +db9 +dc395x +dca +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dcdbas +ddbridge +de2104x +de4x5 +decnet +deflate +defxx +dell-laptop +dell-led +dell_rbu +dell-wmi +dell-wmi-aio +denali +denali_dt +denali_pci +des_generic +designware_i2s +dgap +dgnc +dgrp +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bio-prison +dm-bufio +dm-cache +dm-cache-cleaner +dm-cache-mq +dm-crypt +dm-delay +dme1737 +dmfe +dm-flakey +dmi-sysfs +dm-log +dm-log-userspace +dmm32at +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-switch +dm-thin-pool +dm-verity +dmx3191d +dm-zero +dnet +dn_rtmsg +docg3 +docg4 +donauboe +dpt_i2o +drbd +drm +drm_kms_helper +drm_usb +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2781_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt2801 +dt2811 +dt2814 +dt2815 +dt2817 +dt282x +dt3000 +dt3155v4l +dt9812 +dtc +dtl1_cs +dtlk +dummy +dummy-irq +dvb-as102 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-af9035 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6007 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-rtl28xxu +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb_usb_v2 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc2 +dwc2_pci +dwc2_platform +dwc3 +dwc3-pci +dw_dmac +dw_dmac_core +dw_dmac_pci +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e4000 +e752x_edac +e7xxx_edac +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_vlan +ec100 +echo +ec_sys +edac_core +edac_mce_amd +edt-ft5x06 +eeepc-laptop +eeepc-wmi +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efficeon-agp +efi-pstore +efs +ehset +einj +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +em28xx-rc +emc1403 +emc2103 +emc6w201 +em_canid +em_cmp +emi26 +emi62 +em_ipset +em_meta +em_nbyte +empeg +ems_pci +ems_pcmcia +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +ene_ir +eni +enic +epat +epia +epic100 +eql +esas2r +esb2rom +esd_usb2 +esi-sir +esp4 +esp6 +et131x +ethoc +eurotechwdt +evbug +exofs +extcon-adc-jack +extcon-arizona +extcon-gpio +extcon-max77693 +extcon-max8997 +extcon-palmas +ezusb +f2fs +f71805f +f71808e_wdt +f71882fg +f75375s +f81232 +fakelb +fam15h_power +fan53555 +farsync +faulty +fb_ddc +fb_sys_fops +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +fid +fintek-cir +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +firewire-serial +fit2 +fit3 +fixed +fl512 +fld +floppy +fm801-gp +fmc +fmc-chardev +fmc-fakedev +fmc-trivial +fmc-write-eeprom +fm_drv +fmvj18x_cs +fnic +forcedeth +fore_200e +fotg210-hcd +fotg210-udc +freevxfs +friq +frpw +fsa9480 +fscache +fschmd +ft1000 +ft1000_pcmcia +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu-tablet +fujitsu_ts +fusbh200-hcd +g450_pll +g760a +g762 +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdmtty +gdmulte +gdmwm +gdth +generic +generic-adc-battery +generic_bl +gen_probe +geode-aes +geode-rng +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +glue_helper +gma500_gfx +g_mass_storage +g_midi +g_ncm +g_NCR5380 +g_NCR5380_mmio +g_nokia +go7007 +go7007-loader +go7007-usb +goku_udc +goldfishfb +gp2ap002a00f +gp2ap020a00f +gpio +gpio-74x164 +gpio-addr-flash +gpio-adp5520 +gpio-adp5588 +gpio-amd8111 +gpio-arizona +gpio_backlight +gpio-charger +gpio-cs5535 +gpio-da9052 +gpio-da9055 +gpio-f7188x +gpio-fan +gpio-generic +gpio-ich +gpio-ir-recv +gpio-it8761e +gpio-janz-ttl +gpio-kempld +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-pch +gpio-rdc321x +gpio-regulator +gpio-sch +gpio_tilt_polled +gpio-tps65912 +gpio-ts5500 +gpio-twl6040 +gpio-ucb1400 +gpio-viperboard +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_jl2005bcd +gspca_kinect +gspca_konica +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_nw80x +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_se401 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stk1135 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gx1fb +gxfb +gx-suspmod +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +hci +hci_uart +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hecubafb +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hgafb +hid +hid-a4tech +hid-apple +hid-appleir +hid-aureal +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-elo +hid-emsff +hid-ezkey +hid-gaff +hid-generic +hid-gyration +hid-holtekff +hid-holtek-kbd +hid-holtek-mouse +hid-huion +hid-hyperv +hid-icade +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-lenovo-tpkbd +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-rmi +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-isku +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-konepure +hid-roccat-kovaplus +hid-roccat-lua +hid-roccat-pyra +hid-roccat-ryos +hid-roccat-savu +hid-saitek +hid-samsung +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-gyro-3d +hid-sensor-hub +hid-sensor-iio-common +hid-sensor-magn-3d +hid-sensor-trigger +hid-sjoy +hid-sony +hid-speedlink +hid-steelseries +hid-sunplus +hid-thingm +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-xinmo +hid-zpff +hid-zydacron +hih6130 +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hostess_sv11 +hp100 +hp_accel +hpfs +hpilo +hpsa +hptiop +hpwdt +hp-wireless +hp-wmi +hsi +hsi_char +hso +hsr +htc-pasic3 +htcpen +htu21 +huawei_cdc_ncm +hv_balloon +hv_netvsc +hv_storvsc +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hwpoison-inject +hx8357 +hyperv_fb +hyperv-keyboard +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-cbus-gpio +i2c-designware-core +i2c-designware-pci +i2c-designware-platform +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-hid +i2c-i801 +i2c-isch +i2c-ismt +i2c-kempld +i2c-matroxfb +i2c-mux +i2c-mux-gpio +i2c-mux-pca9541 +i2c-mux-pca954x +i2c-mux-pinctrl +i2c-nforce2 +i2c-nforce2-s4985 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-isa +i2c-pca-platform +i2c-piix4 +i2c-scmi +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-viperboard +i2c-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i3000_edac +i3200_edac +i40e +i40evf +i5000_edac +i5100_edac +i5400_edac +i5k_amb +i6300esb +i7300_edac +i740fb +i7core_edac +i810 +i810fb +i82092 +i82365 +i82860_edac +i82875p_edac +i82975x_edac +i8k +i915 +i915_bdw +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_isert +ib_mad +ibmaem +ibmasm +ibmasr +ibmpex +ibmphp +ibm_rtl +ib_mthca +ib_sa +ib_srp +ib_srpt +ib_ucm +ib_umad +ib_uverbs +ichxrom +icn +icp_multi +ics932s401 +ideapad-laptop +ideapad_slidebar +idmouse +idt77252 +idtcps +idt_gen2 +ie6xx_wdt +ieee802154 +ifb +iforce +igb +igbvf +iguanair +iio_dummy +iio_hwmon +iio-trig-interrupt +iio-trig-periodic-rtc +iio-trig-sysfs +ii_pci20kc +ili210x +ili922x +ili9320 +imm +imon +ims-pcu +imx074 +in2000 +ina209 +ina2xx +industrialio +industrialio-triggered-buffer +inet_diag +inexio +inftl +initio +input-polldev +int51x1 +intelfb +intel_ips +intel_menlow +intel_mid_battery +intel_mid_dma +intel_mid_powerbtn +intel_mid_thermal +intel-mid-touch +intel_oaktrail +intel_powerclamp +intel_rapl +intel-rng +intel-rst +intel_scu_ipcutil +intel-smartconnect +intel_vr_nor +interact +interval_tree_test +inv-mpu6050 +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip6_gre +ip6table_filter +ip6table_mangle +ip6table_nat +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_MASQUERADE +ip6t_mh +ip6t_NPT +ip6t_REJECT +ip6t_rpfilter +ip6t_rt +ip6t_SYNPROXY +ip6_tunnel +ip6_vti +ipack +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_poweroff +ipmi_si +ipmi_watchdog +ipoctal +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netnet +ip_set_hash_netport +ip_set_hash_netportnet +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_MASQUERADE +ipt_REJECT +ipt_rpfilter +ipt_SYNPROXY +ipt_ULOG +ip_tunnel +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ip_vti +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +iris +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sanyo-decoder +ir-sony-decoder +irtty-sir +ir-usb +isci +iscsi_boot_sysfs +iscsi_ibft +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it87 +it8712f_wdt +it87_wdt +it913x-fe +iTCO_vendor_support +iTCO_wdt +itd1000 +ite-cir +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwldvm +iwlegacy +iwlmvm +iwlwifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kalmia +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kempld-core +kempld_wdt +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +ko2iblnd +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksocklnd +ksz884x +ktti +kvaser_pci +kvaser_usb +kvm +kvm-amd +kvm-intel +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +l2tp_ppp +l440gx +l4f00242t03 +l64781 +lanai +lance +lapb +lapbether +latch-addr-flash +lattice-ecp3-config +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-atmel-pwm +leds-bd2802 +leds-blinkm +leds-clevo-mail +leds-da903x +leds-da9052 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lm3533 +leds-lm355x +leds-lm3642 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lp5562 +leds-lp55xx-common +leds-lp8501 +leds-lp8788 +leds-lt3593 +leds-max8997 +leds-mc13783 +leds-net48xx +leds-ot200 +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pca9685 +leds-pwm +leds-regulator +leds-ss4200 +leds-tca6507 +leds-wm831x-status +leds-wm8350 +leds-wrap +ledtrig-backlight +ledtrig-camera +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-oneshot +ledtrig-timer +ledtrig-transient +legousbtower +lg2160 +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libceph +libcfs +libcomposite +libcrc32c +libcxgbi +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +litelink-sir +lkkbd +llc +llc2 +llog_test +lm25066 +lm3533-als +lm3533_bl +lm3533-core +lm3533-ctrlbank +lm3630a_bl +lm3639_bl +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm8333 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95234 +lm95241 +lm95245 +lmc +lms283gf05 +lms501kf03 +lmv +lnbp21 +lnbp22 +lnet +lnet_selftest +lockd +logibm +longhaul +longrun +lov +lp +lp3971 +lp3972 +lp855x_bl +lp8727_charger +lp8755 +lp8788_bl +lp8788-charger +lpc_ich +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc2978 +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltpc +ltv350qv +lustre +lv5207lp +lvfs +lxfb +lz4 +lz4_compress +lz4hc +lz4hc_compress +m25p80 +m2m-deinterlace +m52790 +m88rs2000 +ma600-sir +mac80211 +mac80211_hwsim +mac802154 +macb +mac-celtic +mac-centeuro +mac-croatian +mac-cyrillic +mac-gaelic +mac-greek +mac_hid +machzwd +mac-iceland +mac-inuit +macmodes +mac-roman +mac-romanian +mac-turkish +macvlan +macvtap +mag3110 +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix-keymap +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16064 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max197 +max2165 +max3100 +max34440 +max517 +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77686 +max77693 +max8649 +max8660 +max8688 +max8903_charger +max8907 +max8907-regulator +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8973-regulator +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-i2c +mc13xxx-regulator-core +mc13xxx-spi +mc44s803 +mce_amd_inj +mce-inject +mceusb +mcp2120-sir +mcp251x +mcp3021 +mcp320x +mcp3422 +mcp4725 +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdacon +mdc +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mei +mei-me +mei_phy +mem2mem_testdev +memstick +mena21_wdt +metronomefb +metro-usb +meye +mfd +mga +mgc +michael_mic +microread +microread_i2c +microread_mei +microtek +mii +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mixcomwd +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mlx5_core +mlx5_ib +mma8450 +mmc_block +mms114 +mos7720 +mos7840 +moxa +mpc624 +mpoa +mpr121_touchkey +mpt2sas +mpt3sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrf24j40 +mrp +mrst_max3110 +ms_block +msdos +msi-laptop +msi-wmi +msp3400 +mspro_block +msr +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt29f_spinand +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +multiq3 +musb_hdrc +mv88e6060 +mv88e6xxx_drv +mvmdio +mvsas +mv_u3d_core +mv_udc +mvumi +mwave +mwifiex +mwifiex_pcie +mwifiex_sdio +mwifiex_usb +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxm-wmi +mxser +myri10ge +n2 +n411 +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +nau7802 +navman +nbd +nci +ncpfs +NCR53c406a +nct6775 +ne +ne2k-pci +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netlink_diag +netprio_cgroup +netrom +netsc520 +nettel +netxen_nic +newtonkbd +nfc +nfc_digital +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcsim +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_ipv4 +nf_nat_ipv6 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nfsv2 +nfsv3 +nfsv4 +nf_synproxy_core +nf_tables +nf_tables_arp +nf_tables_bridge +nf_tables_ipv4 +nf_tables_ipv6 +nft_chain_nat_ipv4 +nft_chain_nat_ipv6 +nft_chain_route_ipv4 +nft_chain_route_ipv6 +nft_compat +nft_counter +nft_ct +nft_exthdr +nft_hash +nftl +nft_limit +nft_log +nft_meta +nft_nat +nft_rbtree +nft_reject_ipv4 +ngene +n_hdlc +ni65 +ni_6527 +ni_65xx +ni_660x +ni_670x +ni_at_a2150 +ni_at_ao +ni_atmio +ni_atmio16d +nicstar +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_cs +ni_labpc_isadma +ni_labpc_pci +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nlmon +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +nosy +notifier-error-inject +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc_gpio +nsc-ircc +nsp32 +nsp_cs +ntb +ntb_netdev +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +null_blk +nuvoton-cir +nvidiafb +nvme +nvram +nv_tco +nxt200x +nxt6000 +obdclass +obdecho +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ocrdma +old_belkin-sir +omfs +omninet +on20 +on26 +onenand +opencores-kbd +openvswitch +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osc +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7640 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +ozwpan +p4-clockmod +p54common +p54pci +p54spi +p54usb +p8022 +p8023 +padlock-aes +padlock-sha +palmas-regulator +panasonic-laptop +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pas16 +pata_acpi +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5535 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_isapnp +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87410 +pata_ns87415 +pata_oldpiix +pata_opti +pata_optidma +pata_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pc110pad +pc300too +pc87360 +pc8736x_gpio +pc87413_wdt +pc87427 +pcbc +pcbit +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_dma +pch_gbe +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci-stub +pcl711 +pcl724 +pcl726 +pcl730 +pcl812 +pcl816 +pcl818 +pcm3724 +pcmad +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcmda12 +pcmmio +pcmuio +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc_adma +peak_pci +peak_pcmcia +peak_usb +pegasus +penmount +percpu_test +pf +pfuze100-regulator +pg +phantom +phison +phonet +phram +phy-core +phy-generic +phy-gpio-vbus-usb +phy-isp1301 +phy-rcar-usb +phy-samsung-usb +phy-samsung-usb2 +phy-samsung-usb3 +physmap +pixcir_i2c_ts +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm80xx +pmbus +pmbus_core +pmc551 +pmcraid +pm-notifier-error-inject +pms +pn533 +pn544 +pn544_i2c +pn544_mei +pn_pep +poc +port100 +poseidon +powermate +powernow-k6 +powernow-k7 +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +psmouse +psnap +pt +pti +ptlrpc +ptp +ptp_pch +pvpanic +pvrusb2 +pwc +pwm_bl +pxa27x_udc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas +qlogicfas408 +qmi_wwan +qnx4 +qnx6 +qt1010 +qt1070 +qt2160 +quatech2 +quatech_daqp_cs +quickstart +quota_tree +quota_v1 +quota_v2 +qxl +r128 +r592 +r6040 +r8152 +r815x +r8169 +r8187se +r8188eu +r8192e_pci +r8192u_usb +r820t +r82600_edac +r852 +r8712u +r8a66597-hcd +r8a66597-udc +radeon +radeonfb +radio-aimslab +radio-aztech +radio-cadet +radio-gemtek +radio-i2c-si470x +radio-isa +radio-keene +radio-ma901 +radio-maxiradio +radio-miropcm20 +radio-mr800 +radio-rtrack2 +radio-sf16fmi +radio-sf16fmr2 +radio-shark +radio-si4713 +radio-si476x +radio-tea5764 +radio-terratec +radio-timb +radio-trust +radio-typhoon +radio-usb-si470x +radio-wl1273 +radio-zoltrix +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +ray_cs +rbd +rbtree_test +rc5t583-regulator +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rcar_vin +rc-asus-pc39 +rc-asus-ps3-100 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-delock-61959 +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-it913x-v1 +rc-it913x-v2 +rc-kaiomy +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-msi-digivox-ii +rc-msi-digivox-iii +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-reddo +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-total-media-in-hand-02 +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +remoteproc +renesas_usbhs +retu-mfd +retu-pwrbutton +retu_wdt +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-gpio +rfkill-regulator +rio500 +rionet +rio-scan +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rp2 +rpcsec_gss_krb5 +rsxx +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800mmio +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm80x +rtc-88pm860x +rtc-ab3100 +rtc-bq32k +rtc-bq4802 +rtc-da9052 +rtc-da9055 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds2404 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-hid-sensor-time +rtc-isl12022 +rtc-isl1208 +rtc-lp8788 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max77686 +rtc-max8907 +rtc-max8925 +rtc-max8997 +rtc-max8998 +rtc-mc13xxx +rtc-moxart +rtc-mrst +rtc-msm6242 +rtc-palmas +rtc-pcf2123 +rtc-pcf2127 +rtc-pcf50633 +rtc-pcf8523 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rc5t583 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx4581 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-s5m +rtc-stk17ta8 +rtc-tps6586x +rtc-tps65910 +rtc-tps80031 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rti800 +rti802 +rtl2830 +rtl2832 +rtl8150 +rtl8180 +rtl8187 +rtl8188ee +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtl8723ae +rtl8723be +rtl8723-common +rtl8821ae +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtl_pci +rtl_usb +rtlwifi +rts5139 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rxkad +s1d13xxxfb +s2250 +s2255drv +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s5m8767 +s626 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +salsa20_generic +salsa20-i586 +samsung-keypad +samsung-laptop +samsung-q10 +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_rcar +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sb1000 +sbc60xxwdt +sbc7240_wdt +sbc8360 +sbc_epx_c3 +sbc_fitpc2_wdt +sbc_gxx +sbe-2t3e3 +sbni +sbp_target +sbs +sbs-battery +sbshc +sc +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +sca3000 +scb2_flash +scc +sch311x_wdt +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_fq +sch_fq_codel +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_plug +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_srp +sctp +sctp_probe +scx200 +scx200_acb +scx200_docflash +scx200_gpio +scx200_hrt +scx200_wdt +sdhci +sdhci-acpi +sdhci-pci +sdhci-pltfm +sdhci-pxav2 +sdhci-pxav3 +sdio_uart +sdla +sdricoh_cs +sdr-msi3101 +sealevel +sedlbauer_cs +seed +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent_generic +serpent-sse2-i586 +serport +serqt_usb2 +ses +sfc +shark2 +sh_eth +sh_mobile_ceu_camera +sh_mobile_csi2 +shpchp +sht15 +sht21 +sh_veu +si21xx +si4713-i2c +si476x-core +sidewinder +sierra +sierra_net +sil164 +sim710 +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_platform +skel +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slicoss +slip +slram +sm501 +sm501fb +sm7xxfb +smb347-charger +smc9194 +smc91c92_cs +sm_common +smc-ultra +sm_ftl +smm665 +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +snd +snd-ac97-codec +snd-ad1816a +snd-ad1848 +snd-ad1889 +snd-adlib +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-aloop +snd-als100 +snd-als300 +snd-als4000 +snd-asihpi +snd-at73c213 +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt1605 +snd-azt2316 +snd-azt2320 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmi8328 +snd-cmi8330 +snd-cmipci +snd-compress +snd-cs4231 +snd-cs4236 +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dice +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emu8000-synth +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1688 +snd-es1688-lib +snd-es18xx +snd-es1938 +snd-es1968 +snd-firewire-lib +snd-firewire-speakers +snd-fm801 +snd-gina20 +snd-gina24 +snd-gusclassic +snd-gusextreme +snd-gus-lib +snd-gusmax +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-ca0110 +snd-hda-codec-ca0132 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-interwave +snd-interwave-stb +snd-isight +snd-jazz16 +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lola +snd-lx6464es +snd-maestro3 +snd-mia +snd-miro +snd-mixart +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-msnd-classic +snd-msnd-lib +snd-msnd-pinnacle +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3sa2 +snd-opl3-synth +snd-opl4-lib +snd-opl4-synth +snd-opti92x-ad1848 +snd-opti92x-cs4231 +snd-opti93x +snd-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcsp +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16 +snd-sb16-csp +snd-sb16-dsp +snd-sb8 +snd-sb8-dsp +snd-sbawe +snd-sb-common +snd-sc6000 +snd-scs1x +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-sis7019 +snd-soc-atmel-pcm +snd-soc-core +snd-soc-mfld-machine +snd-soc-si476x +snd-soc-simple-card +snd-soc-sn95031 +snd-soc-sst-platform +snd-sonicvibes +snd-sscape +snd-tea6330t +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usb-hiface +snd-usbmidi-lib +snd-usb-us122l +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-wavefront +snd-wss-lib +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +soc_scale_crop +softdog +softing +softing_cs +solo6x10 +solos-pci +sony-btf-mpx +sony-laptop +sonypi +soundcore +sp5100_tco +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +spectrum_cs +speedfax +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw +spi-dw-midpci +spi-dw-mmio +spi-gpio +spi_ks8995 +spi-lm70llp +spi-oc-tiny +spi-pxa2xx-pci +spi-pxa2xx-platform +spi-sc18is602 +spi-tle62x0 +spi-topcliff-pch +spi-xcomm +squashfs +sr9700 +ssb +ssb-hcd +ssfdc +sst25l +sstfb +ssu100 +ssv_dnp +st +st1232 +st_accel +st_accel_i2c +st_accel_spi +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste_modem_rproc +stex +st_gyro +st_gyro_i2c +st_gyro_spi +stinger +stir4200 +stk1160 +stkwebcam +st_magn +st_magn_i2c +st_magn_spi +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +st_pressure +st_pressure_i2c +st_pressure_spi +streamzap +st_sensors +st_sensors_i2c +st_sensors_spi +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +sur40 +svcrdma +svgalib +sworks-agp +sx8 +sym53c416 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synaptics_usb +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t128 +t1isa +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc1100-wmi +tc3589x-keypad +tca6416-keypad +tca8418_keypad +tcic +tcm_fc +tcm_loop +tcm_qla2xxx +tcm_usb_gadget +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tcs3472 +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tda998x +tdfx +tdfxfb +tdo24m +tea +tea575x +tea5761 +tea5767 +tea6415c +tea6420 +team +team_mode_activebackup +team_mode_broadcast +team_mode_loadbalance +team_mode_random +team_mode_roundrobin +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +test-string_helpers +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti-adc081c +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmem +tmiofb +tmp006 +tmp102 +tmp401 +tmp421 +tmscsim +toim3232-sir +topstar-laptop +toshiba_acpi +toshiba_bluetooth +touchit213 +touchright +touchwin +tpci200 +tpm_atmel +tpm_i2c_atmel +tpm_i2c_infineon +tpm_i2c_nuvoton +tpm_i2c_stm_st33 +tpm_infineon +tpm_nsc +tpm-rng +tps51632-regulator +tps6105x +tps6105x-regulator +tps62360-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps65090-charger +tps65090-regulator +tps65217 +tps65217_bl +tps65217-regulator +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +tps80031-regulator +trancevibrator +tranzport +tridentfb +ts2020 +ts5500_flash +ts_bm +tsc2005 +tsc2007 +tsc40 +tscan1 +ts_fsm +tsi568 +tsi57x +tsi721_mport +ts_kmp +tsl2550 +tsl2563 +tsl2583 +tsl2x7x_core +tsl4531 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +tua6100 +tua9001 +tulip +tuner +tuner_it913x +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tusb6010 +tvaudio +tveeprom +tvp5150 +tw2804 +tw9903 +tw9906 +tw9910 +twidjoy +twl6040-vibra +twofish_common +twofish_generic +twofish-i586 +typhoon +u132-hcd +u14-34f +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +ucd9000 +ucd9200 +uda1342 +udc-core +udf +udl +udlfb +udp_diag +ueagle-atm +u_ether +ufs +ufshcd +ufshcd-pci +ufshcd-pltfrm +uhid +uio +uio_aec +uio_cif +uio_dmem_genirq +uio_mf624 +uio_netx +uio_pci_generic +uio_pdrv_genirq +uio_sercos3 +uli526x +ultrastor +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unioxx5 +unix_diag +upd64031a +upd64083 +uPD98402 +u_rndis +usb3503 +usb_8dev +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_f_acm +usb_f_ecm +usb_f_ecm_subset +usb_f_eem +usb_f_mass_storage +usb_f_ncm +usb_f_obex +usb_f_phonet +usb_f_rndis +usb_f_serial +usb_f_ss_lb +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usb-serial-simple +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbtv +usbvision +usb_wwan +u_serial +userspace-consumer +ushc +usnic_verbs +uss720 +uvcvideo +uvesafb +uwb +ux500 +v4l2-common +v4l2-dv-timings +v4l2-int-device +v4l2-mem2mem +vcan +vcnl4000 +ves1820 +ves1x93 +veth +vfio +vfio_iommu_type1 +vfio-pci +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost +vhost_net +vhost_scsi +via +via686a +via-camera +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +via_wdt +video +videobuf2-core +videobuf2-dma-contig +videobuf2-dma-sg +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +viperboard +viperboard_adc +virtio-rng +virtio_scsi +virtual +visor +vivi +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_pio2 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmw_balloon +vmwgfx +vmw_pvscsi +vmw_vmci +vmw_vsock_vmci_transport +vmxnet3 +vp27smpx +vpx3220 +vringh +vsock +vsxxxaa +vt1211 +vt6655_stage +vt6656_stage +vt8231 +vt8623fb +vub300 +vx855 +vxge +vxlan +w1_bq27000 +w1_ds2408 +w1_ds2413 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1_ds2781 +w1_ds28e04 +w1-gpio +w1_smem +w1_therm +w35und +w5100 +w5300 +w6692 +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83697ug_wdt +w83781d +w83791d +w83792d +w83793 +w83795 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w90p910_ts +w9966 +wacom +wacom_i2c +wacom_w8001 +wafer5823wdt +walkera0701 +wanxl +warrior +wbsd +wcn36xx +wd +wd7000 +wdt +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wil6210 +wimax +winbond-840 +winbond-cir +wire +wishbone-serial +wistron_btns +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl18xx +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wlcore +wlcore_sdio +wlcore_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wmi +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +x38_edac +x86_pkg_temp_thermal +xc4000 +xc5000 +xcbc +xen-blkback +xen-evtchn +xen-fbfront +xenfs +xen-gntalloc +xen-gntdev +xen-kbdfront +xen-netback +xen-pciback +xen-pcifront +xen-privcmd +xen-tpmfront +xen_wdt +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_algo +xfrm_ipcomp +xfrm_user +xfs +xgene-enet +xgifb +xgmac +xillybus_core +xillybus_pcie +xirc2ps_cs +xircom_cb +xo15-ebook +xor +xpad +xprtrdma +xsens_mt +x_tables +xt_addrtype +xt_AUDIT +xt_bpf +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlabel +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_ecn +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_HMARK +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_LOG +xt_mac +xt_mark +xt_multiport +xt_nat +xt_NETMAP +xt_nfacct +xt_NFLOG +xt_NFQUEUE +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xt_REDIRECT +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +z85230 +zatm +zaurus +zd1201 +zd1211rw +zforce_ts +zhenhua +zl10036 +zl10039 +zl10353 +zl6100 +zlib +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram +zte_ev --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/i386/lowlatency +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/i386/lowlatency @@ -0,0 +1,17550 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x235d0468 kvm_cpu_has_pending_timer +EXPORT_SYMBOL arch/x86/kvm/kvm 0x556e3535 kvm_read_guest_atomic +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x254e5667 scx200_gpio_base +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x35a3c008 scx200_gpio_configure +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x8cfa375c scx200_gpio_shadow +EXPORT_SYMBOL arch/x86/platform/scx200/scx200 0x907665bd scx200_cb_base +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister +EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register +EXPORT_SYMBOL drivers/acpi/video 0xd8889888 acpi_video_get_edid +EXPORT_SYMBOL drivers/atm/suni 0xfb131cc5 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x53fca93d uPD98402_init +EXPORT_SYMBOL drivers/bcma/bcma 0xe08ab176 bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x127a5901 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/paride/paride 0x0696679e pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x207024aa pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x2e3501b8 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x3960a2dc pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x61971c7b pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x76f14824 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x8eec5b04 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x9b2ae687 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xa0d7b4c9 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xc8f63c37 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xed872f92 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xfd602024 paride_unregister +EXPORT_SYMBOL drivers/char/nsc_gpio 0x6e083846 nsc_gpio_read +EXPORT_SYMBOL drivers/char/nsc_gpio 0xed1287b0 nsc_gpio_write +EXPORT_SYMBOL drivers/char/nsc_gpio 0xed4e741c nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x33921ac6 dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x4f356e3e dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x62fefe0c dw_dma_get_src_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x82d70429 dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xecafaa3a dw_dma_cyclic_free +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xf68dc1c9 dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/ioat/ioatdma 0xc3ce2b25 ioat_dma_setup_interrupts +EXPORT_SYMBOL drivers/edac/edac_core 0x36f07d93 edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x01c75a1f fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04ca47f0 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1179033b fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1a70c23b fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x35c8b8fd fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3dc8d5ac fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x427c8cef fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5686e976 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5c43160a fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x81507fa3 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8a2584a4 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8b68b2bc fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa2c2eb35 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb3acd659 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc605f455 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc7b3767f fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xca81a961 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0xcad413fe fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd97ddc07 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe5d96ea6 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe76c2037 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xefd8f93b fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf8d21d1d fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf9687ef8 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfd079b04 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfe301921 fw_core_remove_card +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/fmc/fmc 0x010cb8cb fmc_find_sdb_device +EXPORT_SYMBOL drivers/fmc/fmc 0x11dd3e20 fmc_device_register +EXPORT_SYMBOL drivers/fmc/fmc 0x2baab5f1 fmc_device_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x456db5e8 fmc_driver_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x4cb76ff4 fmc_device_register_n +EXPORT_SYMBOL drivers/fmc/fmc 0x609a7c12 fmc_scan_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x80931cfc fmc_free_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x9aaec048 fmc_driver_register +EXPORT_SYMBOL drivers/fmc/fmc 0xaeb1d3a2 fmc_reprogram +EXPORT_SYMBOL drivers/fmc/fmc 0xb2e27784 fmc_device_unregister_n +EXPORT_SYMBOL drivers/fmc/fmc 0xbaa9b976 fmc_show_sdb_tree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00025916 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00667d8a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x026c0d6b drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02bccfcd drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03326e65 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03e639f8 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05c8316c drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07e083e8 drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x098d4f07 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a32e947 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b6dffbf drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c892156 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ec527fc drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x107742a9 drm_get_subpixel_order_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c64282 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13c20d0c drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13cdaadb drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14843b5f drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a9a178 drm_get_format_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x189f6401 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19e44324 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a770ac3 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b2542e7 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b70d1ab drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c74377e drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c9628de drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f7e4401 drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2058510e drm_dev_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x214826fe drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27f4d23a drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28dbe979 drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a942ab2 drm_mm_insert_node_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c3315f4 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d80be4d drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e7a4300 drm_rgb_quant_range_selectable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e8269e9 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ec3d727 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f158bef drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3038d18c drm_prime_sg_to_page_addr_arrays +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31a82067 drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x35484342 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x35bb688e drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x35d160e0 drm_bridge_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36846ac3 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36f91ef3 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x380b1b1a drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0x383bceb5 drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a4f7ae drm_format_num_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39190511 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a3c6697 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ac1fef9 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ae7b2d0 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3af2db3e drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b9d009a drm_format_plane_cpp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3bc81616 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d389216 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d4b8108 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f6251c3 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x426372d9 drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42d3ea34 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43d8a6f1 drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44c73b74 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44e4b9ca drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47fa28ee drm_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x490bd844 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49fabf0d drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b2edd32 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4be70c33 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bf5b075 drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c511235 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d2e279d drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d672fdb drm_mode_group_init_legacy_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e6951ca drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e28c07 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51f5a47f drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x526f6f71 drm_rect_calc_hscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x52ea1a67 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5389a387 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5408ff18 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54bd7d97 drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56775ec8 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57249d06 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57b900f5 drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a21d021 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a626e9a drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c0dbbed drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5cb31ee3 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5eb66d89 drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6036eabd drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x606d274e drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6090be61 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x629c05e1 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6304e77a drm_gem_dumb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6423ad0e drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66803841 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67abb5a6 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6872d662 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6900d335 drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm 0x695b46ea drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69fb16b4 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a2525f5 drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6bb7ef01 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c894f29 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cee2e42 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6dbf35ae drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e36e84a drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e3d50a2 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f08acc3 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x709dc319 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x710249a1 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7584daaf drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76f2d922 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x779c2c35 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78ccdfe9 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79bfb56b drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4e7297 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bc8e091 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7df7e491 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e2dadaa drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7eea06eb drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ef2c9ff drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fa98070 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x812a0af1 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81ba930c drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8515dd34 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x87ca3f9e drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88c7b548 drm_pcie_get_speed_cap_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8938c5f7 drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a3bf984 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de13715 drm_format_vert_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7df3a7 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x90c2fa51 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9150c0e8 drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x915bba51 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x921d21b3 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96aaea56 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96fc171d drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x97031246 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x982c58d7 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9972db48 drm_rect_calc_vscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a01c47a drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ae4ac8d drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ba64980 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d70fc2a drm_rnodes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9eccfe56 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9efc26a3 drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa018258b drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0ff07a3 drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1f4e9e6 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa28078b2 drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa340f3fe drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa45d8cac drm_framebuffer_unreference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa59a4028 drm_framebuffer_reference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5dbd572 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5ffc54b drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6902f65 drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa908a4d2 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa96acfcb drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa98b89c4 drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa4f01e1 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae5afe3d drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafb0cb6f drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafd51394 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb118aebb drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb21acb77 drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb572a9f0 drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5b57a81 drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5cdfec1 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5d9ae33 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb64ab8a1 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb868318c drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8938e7c drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb893a2fc drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8bf1521 drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8ea82c8 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95beb55 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9f1ba32 drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba06831d drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd2462ff drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd640d00 drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe001c53 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe89b36b drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf45590d drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf662a54 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0666736 drm_unplug_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3563077 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4000f9f drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc460ab2c drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6ab4f71 drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6cc7814 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8ae273f drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca45efbc drm_format_horz_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca93ede3 drm_vma_offset_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcbed601d drm_prime_destroy_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc251137 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xccaf0d6f drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0ed52b7 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd208fb57 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2335101 drm_fb_get_bpp_depth +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4adf399 drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd55aea8d drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5e2d733 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5e70ebf drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd76bd452 drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda56a3b5 drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb5a5852 drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb888915 drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc5f9a32 drm_bridge_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0999ad4 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1b71c65 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2ef97e4 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3a78384 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3d66519 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe538ab1f drm_connector_unplug_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5afa716 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe62d6344 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f46e6e drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe80bf538 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed6d7b25 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xedc2589f drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xedd1d2e0 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefdf9b69 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf08d712a drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf446a0e2 drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf56d60b4 drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7ea935e drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf815d0d1 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb497216 drm_mm_insert_node_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd063935 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe1b2230 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe4a68c7 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe69bcf3 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfed672f5 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff69bd29 drm_prime_init_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff9a3be1 drm_crtc_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc6c87a drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffd1696a drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x098e47d2 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x09fbf375 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0a4fb073 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0cf135ed drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0e6fcc26 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f96ec70 drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0fdcaaac drm_dp_link_power_up +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x154dd4fe drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x163251c8 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x19b88455 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1eb50395 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x22af0542 drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2f39ad7f drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2f4e610a drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34871adf drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3487b5fe i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3c155f76 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x469eacb5 drm_pick_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x46e5aef0 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x53a368c1 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x57842220 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x711a004a drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x771d6e02 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7b9c034b drm_dp_link_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7ee1d157 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84e924ba drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x85a3830b drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8caba65d drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa19de390 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa2b96db2 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa77858bb drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8d6809d drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb9a96e06 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xba057ff8 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbdcf9ef3 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc4c001fb drm_dp_link_configure +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc7c4d6fb drm_dp_aux_register_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcc103393 drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xce444e6f drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd6ee262a drm_has_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xda6f23d0 drm_dp_aux_unregister_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdc689697 drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe2de30b8 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe47aaf96 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe9cf0e18 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xece28935 drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xef85f486 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf1284a9e drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf692d91f drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf9415d85 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x3ce54f9a drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x5cd11d39 drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0xee813417 drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x010be64d ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0245f8d5 ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0988a92a ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0ac16e5c ttm_agp_tt_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0e2671a7 ttm_bo_del_sub_from_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1241dddf ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1316e62e ttm_bo_add_to_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x19888cf1 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ba4e68a ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x23b99ecd ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x23e6a3df ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x244b11dd ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x266d8a60 ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2ab24fd8 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2bd9dac9 ttm_pool_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34eb75fa ttm_mem_io_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x35b90b42 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x363e3aa8 ttm_dma_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x379015a0 ttm_prime_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c8fd883 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3df63f2c ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x41aa3103 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x470152d3 ttm_mem_io_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x485a5bc0 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x532306fe ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x57489bb3 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x58aed99d ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cf59609 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5f0d7622 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6019c13c ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61c0b407 ttm_pool_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x64e33746 ttm_bo_dma_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x669c263f ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b1d568 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67f9812e ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6942dfe0 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6962bab0 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7076f68c ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x71d350b9 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x72401d21 ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x764e35e2 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7aeaeba2 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x83db0f06 ttm_agp_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x87cd96bd ttm_mem_io_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x880a15ad ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8cad3cc2 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x94894449 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x96b71f35 ttm_mem_io_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x97319530 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9f27104a ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa1b235e1 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2a99737 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa47de1d0 ttm_bo_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa882b133 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xab94a843 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xae29c53f ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb25e55ef ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb6b9218d ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb78ef99f ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbbc047e7 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbd3e6b65 ttm_agp_tt_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc0f0516a ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc49c3b2b ttm_dma_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc68d2503 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce6e43a8 ttm_base_object_lookup_for_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7a41a37 ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7de23b5 ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd8edb115 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe9b7944a ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf0482f51 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfe2ce3dd ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xffcb8d9b ttm_read_lock +EXPORT_SYMBOL drivers/hv/hv_vmbus 0x1fba4605 vmbus_recvpacket +EXPORT_SYMBOL drivers/hv/hv_vmbus 0xab10fcd7 vmbus_sendpacket +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0e2a6864 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0f5877d4 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x34257f35 sch56xx_watchdog_unregister +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xe5022f95 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xeb8e7666 sch56xx_watchdog_register +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xed1d2a08 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x123e3778 i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x50c0398f i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x876898ab i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x9e2297a0 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xf39faa4a i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xa702d0aa amd756_smbus +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x39b5522d st_accel_common_probe +EXPORT_SYMBOL drivers/iio/accel/st_accel 0xabb544f2 st_accel_common_remove +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x5c61882e hid_sensor_read_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x677a513c hid_sensor_write_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xaac09f58 hid_sensor_parse_common_attributes +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xceb3530b hid_sensor_read_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xee27586e hid_sensor_write_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x84119318 hid_sensor_remove_trigger +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0xb0817b29 hid_sensor_setup_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x074d7047 st_sensors_trigger_handler +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x081662a6 st_sensors_sysfs_get_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x086cce5c st_sensors_sysfs_set_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x106cdb6b st_sensors_set_fullscale_by_gain +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x196c85c1 st_sensors_set_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x1cfff8b0 st_sensors_allocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x21528788 st_sensors_set_dataready_irq +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x3f43da4e st_sensors_sysfs_sampling_frequency_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x4160bad1 st_sensors_get_buffer_element +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x66c76e58 st_sensors_set_axis_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x7a7de717 st_sensors_set_odr +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x8ddd61db st_sensors_check_device_support +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x9c7ad6c8 st_sensors_read_info_raw +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xa3fe276e st_sensors_sysfs_scale_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xb7b95c73 st_sensors_init_sensor +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xc3557739 st_sensors_deallocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0x7f1043e9 st_sensors_i2c_configure +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0x39d0298f st_sensors_spi_configure +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0xbb723402 st_gyro_common_probe +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0xfd18ea0b st_gyro_common_remove +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x1de6e24a adis_enable_irq +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0xad84bf5c adis_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/industrialio 0x06ec61ef iio_buffer_write_length +EXPORT_SYMBOL drivers/iio/industrialio 0x0956ff78 iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0x0fd3bb54 iio_buffer_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x10b54d10 iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x127365e3 iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x4596fd8e iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/iio/industrialio 0x54e4b87b iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/iio/industrialio 0x5a3cbf3e iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0x5b286fe8 iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0x5dc4e109 iio_buffer_store_enable +EXPORT_SYMBOL drivers/iio/industrialio 0x6eeb9ad3 iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0x71a293c4 iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x8b80ebe5 iio_buffer_register +EXPORT_SYMBOL drivers/iio/industrialio 0x8f3d78ef iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x8fc5024b iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x90d37d56 iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0x97c6339c iio_buffer_read_length +EXPORT_SYMBOL drivers/iio/industrialio 0x9fbe7bd3 iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0xaf4844d6 iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0xb18b3ead iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0xbb4b0606 iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0xd4a07a68 iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xeb25bb5a iio_buffer_show_enable +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x28851b86 iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x97b67295 iio_triggered_buffer_setup +EXPORT_SYMBOL drivers/iio/kfifo_buf 0x8ede48b1 iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/kfifo_buf 0xda016d86 iio_kfifo_free +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x70e755cf st_magn_common_probe +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x717e0b8c st_magn_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x6a7133d9 st_press_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0xf7b9c3f1 st_press_common_probe +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x049ace30 rdma_addr_find_smac_by_sgid +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x04b8b6d7 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1c3c0ad3 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x273f4cca rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x2d72e5ff rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x446fd7c9 rdma_addr_find_dmac_by_grh +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x71f3076f rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x8ed679ff rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc0bf4edc rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x016c0100 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0773570e ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2270132b ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2abd0eaf ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x31da34db ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3778371b ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3822449a ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x384f8436 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3ca30a77 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x80e4e254 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x86c5bc6b ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8d67f458 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x93888d35 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x963dc42e ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x99363c09 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc05063a7 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfdb00856 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x000d215d ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x009b7819 ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x025d4c29 ib_create_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x03d78cf3 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x080904f6 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0af1c962 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x13e127eb ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b40ed32 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1d407622 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e00d76b ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1f3a53b2 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1f4b66f0 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x20216008 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x26c2e9fc ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x291ba224 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2a4e360f ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33320b5a ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x35c80a06 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3aa4aadf ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3be28863 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x407571ed ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4398ce12 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x43b23ea0 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45a8d9d8 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4b2e8424 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4c5f32c5 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4fc4bc36 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53f02bc2 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5d166f6a ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5de66b97 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5fe4369a ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x60197d96 ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x667fc6f5 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x691d7066 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x696a49d3 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ad8bb2f ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e030e26 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6efdb718 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7436eb2a ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7a83048f ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x80be5c35 rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x83c3348e ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x84641ad0 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x85d112d6 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x881db5dc ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8dd71f5a ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x964bea60 ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9686d791 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9fbfa4fe ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa04108c2 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa3ae2681 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa5aa43d1 ib_resolve_eth_l2_attrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa8608b16 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaa38ecae ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xab6506c0 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac0f2118 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac217df9 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xad3799e7 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaff6a719 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbf393010 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc0455597 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc11d03fa ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc61b92d2 ib_destroy_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc9a9e069 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd15bff8f ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd2320b84 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd27562ce ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdf357091 ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe27092c9 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7438a37 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xebfe89c2 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xedb0e938 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf1cd4d78 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf44741c9 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5bac434 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf837fe3e ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc9c490b ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xffd42804 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x01ade173 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0b7a828c ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4968a171 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5b8ce425 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x71fdd7df ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x768bc31c ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b46cd66 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7ee13851 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8f0698bc ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9a532c8b ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9bf9a6ed ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xaa50888e ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x22f07253 ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x30586288 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x3434dffd ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x60a41917 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6e44fd9f ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8001438f ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9611a7c9 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa8715a61 ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc5ad20b5 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xddc330e7 ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf3e0ab49 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x2569d757 ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x52a6ce77 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7971c00e ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe350f2aa ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x078571d5 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2cb1e9af iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x9ea129b0 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa546d33c iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xaec61e81 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xcf80b146 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf3514708 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xff6b7e8a iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x115fa03c rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x135e5af6 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x18cc260f rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1b9b8997 rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3ad4220a rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5f77c2e3 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x632549f6 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x72d74321 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x80bb3882 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9cb16136 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa9c9a8bb rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb48265e3 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb70a3dfe rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc477ea1c rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd8000d84 rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd986bfa8 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe02832df rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe958e94c rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf5f38e4b rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfc4a6cdb rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xffa7431c rdma_init_qp_attr +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0eed8843 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2917c7b4 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2e208eec gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x325ca8fa __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x39ff0336 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4675cf15 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x54c1f722 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9c069785 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf9104fa7 gameport_open +EXPORT_SYMBOL drivers/input/input-polldev 0x0305f361 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x4cbfe83c input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x9153d898 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xb2f8c893 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0x9011ab07 matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x32c27009 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0x4d9017b4 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x8cc450eb ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xf5fd7a5f ad714x_remove +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x9281375a cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/sparse-keymap 0x3613781e sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x479d5f8a sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x57746887 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xb326dbfb sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe125a52d sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe27caedc sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x3c1a5606 ad7879_pm_ops +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x55e244a1 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2dff23e3 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2f52938e attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x35ef4943 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4dc280f0 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x65c00c0b capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x743decbe capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xcda9f886 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd2a89347 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd88d2445 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe02439db capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x028bd43d b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0ce9b57a b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2f10ce8b b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4026020a b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4a83fb40 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4cebffb7 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x55bd872c avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x808ccfd6 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x944d202b b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x967cd0cb b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x987079e5 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9b7adef3 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xad603567 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc4dbfb34 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf3661cc2 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1a591499 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x3d0dba6e b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x498b0d7d b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x75e11c0b b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xb57115b3 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xce1517f7 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd2e2c46f b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xdce7a94e b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf3325a02 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x7ab59853 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x0b3ad470 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x0baee4e2 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x350de2bb mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xb1d9cc19 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x3b034a13 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xc7cce53a mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x1a07f69e hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x10b1e5b7 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x25a54ad2 isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x70fb6fbb isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xef8ab440 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf60dff96 isac_init +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x349a50cf isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xcf4f4f3a register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xdef46b02 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x089cd371 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x08aed535 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0e05793b recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1d99a438 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4f91bf9a bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5708fa6d mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x628e6f3e mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a4e99fb mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x934dec7d mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x950c73b7 mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9b799446 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xad22072e get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb4d7ffe3 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb82a147c get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbca6acd7 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc0d04ff6 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcda7825d mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcf08eeda mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd8946613 bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe0a610fd mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe94da0d9 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf097bc68 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf0e1ee06 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf7b350c7 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/bcache/bcache 0x08666ad6 closure_sub +EXPORT_SYMBOL drivers/md/bcache/bcache 0x4389a1b7 closure_trylock +EXPORT_SYMBOL drivers/md/bcache/bcache 0x634913f8 closure_put +EXPORT_SYMBOL drivers/md/bcache/bcache 0x64099256 __closure_lock +EXPORT_SYMBOL drivers/md/bcache/bcache 0x66e7a688 closure_sync +EXPORT_SYMBOL drivers/md/bcache/bcache 0xcd74bec7 closure_wait +EXPORT_SYMBOL drivers/md/bcache/bcache 0xe3c17af1 __closure_wake_up +EXPORT_SYMBOL drivers/md/dm-log 0x248edd42 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0x2e4c5e19 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0x84a99cb0 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0xcddc499b dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x14225115 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x2be6e29f dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x3d1508b3 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x44e55221 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xcae69044 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0xd26fe3cb dm_snap_origin +EXPORT_SYMBOL drivers/md/raid456 0x2cbb78ab raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x544a9205 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x548b588a flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7cb1c7bd flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x8d23af47 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x9b38a67b flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xacd9e37e flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xc86d56b1 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xcc02a2a3 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xd937724a flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xda7fc6f3 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xe710c01f flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xe7e84797 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xe9260816 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xb998ff25 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xe750a52c btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/common/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0x3db8be82 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x4ac0357c cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0xb0f03c8e cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc5c88166 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcd8bb2bd cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0xcdc1ea7c cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/tveeprom 0x35be61ac tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0x8225b653 tveeprom_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x045328c9 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x06634ae6 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x07d814a2 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x08f46a94 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x097eb62f dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x101a29b8 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1189a794 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x17523ce7 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x18b21064 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x196f1ac1 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x237f7910 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x300f2abb dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3a8424e5 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4375e8d4 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4653a83e dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4c70c35a dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4e0d454f dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x62870e92 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6556ad44 dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x68131058 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7ac5494c dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7f40e00a dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8734ee0f dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x88258f85 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x977bc4c8 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x987dcfde dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb5939470 dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb72b5fa0 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc039ab20 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc3fd4e62 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcddb905f dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd3ee7530 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd68a099e timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd73ce204 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdace1533 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdc561a90 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe3dfabe9 dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf57370ca dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xfcc0ed9c dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-frontends/a8293 0xb341fecd a8293_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9013 0x2435cf24 af9013_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9033 0x3aae6994 af9033_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x7993282c atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x080975a9 au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x1fb4f782 au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x239fce0b au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x291b4700 au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x49d3d815 au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x899e6486 au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x89f578a0 au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xc5bc1a77 au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xdc75b3a3 au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0x3636f9de au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0x43e410b4 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0x362f824a cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0x84b701bc cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0x72573fa4 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xa4574054 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xd7fa941c cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x0d743b8e cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x5aff3a53 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xba72a0f9 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0xd3cb9d8d cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x098a7a03 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x0dae3ff0 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x399e402a dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x8003c0b4 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x92ee4b12 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x036c5239 dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x102d07bf dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x16b2bc9f dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x1fc9e1d0 dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x2dfba040 dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x358f471d dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x3b8ddb5b dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x4a0564f9 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x555210da dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x70ca5560 dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x968af93f dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xa60cc4b3 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xb957e8db dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xc01412cc dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xff09bd3f dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0xb6e52760 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x30875043 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x752c1aaa dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x8659fc47 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xc31e1881 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xd7594846 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xdaef1136 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x29e1d90a dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x9bb79577 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xb2ca91e1 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xe4d8a833 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x0088d943 dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x2eadaa13 dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x30bd22e1 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x34e12fcd dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x4c43d035 dib7000p_get_agc_values +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x762c4e1e dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x80364b18 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x813022bf dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x82ff0196 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xbea25b17 dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xcb019449 dib7000p_set_agc1_min +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xd013df68 dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xd14670ba dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xd8fc8113 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xe26a9dcb dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xf0c5dda8 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x17738511 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x1cc06417 dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x1e301d72 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x20c3ef25 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x26848a9d dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x30c23307 dib8096p_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x36dff68f dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x4c07cb5a dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x4c5c128e dib8000_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x5e292377 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x5e8293f6 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x7febabe4 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x8d0ef115 dib8096p_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x8d2e2321 dib8090p_get_dc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x96794730 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xa8c75e74 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb2917ffd dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xd641462d dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xfb6a1625 dib8000_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x2d1a82ec dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xabcc9127 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xc6951d13 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xe1ad4ec4 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xe9e94552 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0xb232828e drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0xca266310 drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x645b94bd drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0xbc113840 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0xb3aaed30 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x22a24c2b ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x688e8711 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0xd1ae7170 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x9b20abb9 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/it913x-fe 0x2ade4fec it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0xc5cf438e itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0x3a0d11ba ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0xcc5823da l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0xe5ab11f9 lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0xa2c2cf41 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x5bf09586 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x0de10fc0 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x2691a962 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xd7324b5e lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x7df54134 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0xcaeed75b m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0xdcf84458 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0x6bff8032 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x333f7694 mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x924eebd1 mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0xc3f8194c nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0xdcbe507e nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0x4282f5ab or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0xcd7ed9c9 or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x7c13a86e rtl2830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0xebe35fcc rtl2830_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2832 0x0af9fa6e rtl2832_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x26a80f54 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0xcaf6f2c1 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x332c78f9 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0xc94933d1 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x1a8d42e3 s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0xe1dd9352 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp8870 0x51f0fa30 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0xc96c03eb sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0xe392d0ab stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0x78ddc0c9 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0xbc5456a0 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x6cc182ec stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0x38adb28a stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0xc6b2515d stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x21fb4a67 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0xf9386a5a stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0xd44aa889 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x333794f6 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x4db6cb03 stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0x0c87e6c6 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0x8ddfc335 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0x41cd3dc0 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0x6bf1f02c tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x0e0a651f tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x5f0d2177 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x8f61b263 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10071 0x392aeb79 tda10071_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x223c83da tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0x84be38bf tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0x3735b577 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0x80203503 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0xd2b7620a tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0xe8be25a6 ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0xe2cc4b84 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x2e8e5a19 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0x4118e475 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0xc162754d zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0x8b1c075a zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x2018331b zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x001642eb flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x05d5b320 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x1d916a58 flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x72a9e717 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x79bd96a8 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x7d5d1636 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x8a6e32d9 flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x81ebf53e bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x9a4f638c bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xbea75016 bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xfcc5a466 bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x24dc849e bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x6c17f97e bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x90534779 bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x03fd3758 dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x2fdb2966 dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x6bacb3d8 write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x77b9c49d dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x8bed4eca dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xc55104f4 rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xd8e6aa16 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xecb93cfd dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xef76312c read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0xa0edaa6b dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x1cd2c2e6 cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x281de9ad cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x5d6b4d92 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xb5933a72 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xcb0edb71 cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x183acc4f altera_ci_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x3a622795 altera_pid_feed_control +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x45e8064f altera_hw_filt_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x0aced063 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x1a6933e7 cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x7b26055d cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xc5d38741 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xe7c2d039 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xebd7d946 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xf9d6ebc6 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x857f62bc vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x8f8f481a vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x2fbe84c4 cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x705ad946 cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xab4cbc85 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xc5eaeff4 cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x0cf8da68 cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x16be0a35 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x18fa2496 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xdc908e59 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xe628ed59 cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xe8031142 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0bc2f1e8 cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x1155cae1 cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x1eea977e cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4216fc84 cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4889c4fa cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4f59a24d cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6202d592 cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6204fb46 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6892acb4 cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6e04be26 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7a514c4f cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x85aedee4 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x9655821c cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x9b861314 cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x9fbf94ff cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xa0f7988d cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xa70948d3 cx88_free_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xcdc823bb cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xd7c695b8 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xe318f69c cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xed5f9815 cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xf38d2526 cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xf6e2e4a7 cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x183a5c77 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x1dd17ba4 ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x23292bb4 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x33d7ce65 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x35368f11 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x3b486bf2 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x3c54b279 ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x3d00d518 ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x3f2b9cbe ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x605b17a0 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6f64a13c ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6f82a3db ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x9d5b0503 ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xb39790b8 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xd69295bb ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xe8452698 ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xe9114a78 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x3f4b6e23 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x4c96fc13 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x4f198aad saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x57378f05 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x676fbb91 saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x6f1f6a01 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x73039031 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x7660d3b0 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x9b76ed6b saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x9db212b4 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xa599f735 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xd711faee saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xec7d9b51 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0x885a693c ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x3a1c6fea videocodec_unregister +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x484c91d1 videocodec_register +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0xc527f854 videocodec_attach +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0xd028a184 videocodec_detach +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x00f6621d soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x0d5d1e3c soc_camera_power_on +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x1324cb4d soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x6bcfe197 soc_camera_power_off +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x6d4bf403 soc_camera_unlock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xb2c1a3ba soc_camera_power_init +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xc4a71d29 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xc6c75970 soc_camera_host_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xef0382a3 soc_camera_lock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x25c52d97 soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x2863728e soc_mbus_image_size +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x5f3e3558 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xa9546115 soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xfe2c3a07 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x0e1487be soc_camera_calc_client_output +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x6fd03be5 soc_camera_client_scale +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x7e158209 soc_camera_client_s_crop +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xfc507419 soc_camera_client_g_rect +EXPORT_SYMBOL drivers/media/radio/tea575x 0x1e856b5c snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/radio/tea575x 0x27a0a445 snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x2f2f89ae snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0x32596851 snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x2d4d437c lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x45b38bd8 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x525adfdb lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x8408cbc2 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xbc2f6dbc lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xc7b1de15 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xe3ae52c6 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xe4e10e7a lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/rc-core 0x9e096848 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0xc55a5b01 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/tuners/e4000 0x195ac323 e4000_attach +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x73032f8b fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x8f7452b1 fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x22732787 fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xccef259b fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xfebfe880 fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/fc2580 0x109825f0 fc2580_attach +EXPORT_SYMBOL drivers/media/tuners/max2165 0xab449e95 max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x8465ec70 mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0x17d155d1 mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0x3c923d95 mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x842da570 mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x72353ec1 mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0x69c286e6 qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18212 0x52f9da3a tda18212_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0xaa99c7da tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tua9001 0x7c1fadc2 tua9001_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0xc18ec10d xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/tuner_it913x 0x5c3503dd it913x_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x30f1b55f xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0xaac6f19d xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x6abcfeb6 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0xf7b70753 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x02e0af43 dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x1ac78575 dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x8c4604f1 dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xd4ce173f dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xd739b1fe dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xe152eba5 dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xe9717303 dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xf481baa5 dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xf81611bb dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x37f47842 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x392e5570 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x4db93c37 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xacd65443 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xe775e400 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xf486c45b dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xfabb8e0c dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x5c42b0c7 af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x2fc1df5a dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x336b8212 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x393a1f2e dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x634ea304 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x6d7bdf8e dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x6dbd68a8 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x73836257 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7d1c5559 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x83de16a8 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xcaaca3cd dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xf4332aff dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xcc063059 em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xf1c93b76 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x0f44e404 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x1e10961d gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x31d9b342 gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7194fe6a gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x72b913b5 gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7985e396 gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x839825c8 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xac51fe7b gspca_resume +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x2d5335e2 tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x44070ee4 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xcbba7613 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0xc684e705 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0xed43e6cf ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x4adaf0f3 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x53c9394f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x5f96a661 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0xabe27502 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x11711740 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x1a8245f6 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xebc442b3 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x18ee30c8 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x4f1fead8 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x788e0237 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xa31d92f4 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xbf5d3328 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xdfa89326 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf2-core 0x4893fedf vb2_querybuf +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x04a9d67a v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x07485ab9 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x08394eab v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x08dd48e6 v4l2_clk_put +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x09b3d9ec v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0a984dfd v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0a9fef0b v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x10d92f24 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x120ee0ca v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x12b396b6 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x153e17e2 v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1b825013 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1dcaf481 v4l2_clk_disable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x25a72389 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x26daacca v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x26e00d2c v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x27c1b0c4 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x27f42075 v4l2_clk_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x298db142 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x312ff372 video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x36847d11 v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3c9d32a3 v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3fe8e314 v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x436faa69 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x521278f3 v4l2_clk_enable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5955bf44 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5c85e3fb v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6376dde8 video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6679e8de v4l2_async_notifier_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x66cec3fd v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6aa29270 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6c73856c v4l2_clk_get_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6d92a954 v4l2_clk_unregister_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x71f893ec v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x74df20d4 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7d7ae915 v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x80fdf890 v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x85dfcf10 __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8a7f253b v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8be36e9a video_usercopy +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9470b574 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x951151c8 video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x956992ee v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x95c8f917 v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x99a11031 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa077cd2f v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xaa990d33 video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb30dbdcd v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbac4a225 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbe31c8c1 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbf03e630 v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc12cf8f8 v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc2ee475d v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc5e75b64 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc973e8f8 v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xce3303bb v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd4f84120 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd554e049 v4l2_async_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd7efdab6 v4l2_clk_set_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd8c0733c v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd9d9ea7a video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdf34c76e __v4l2_clk_register_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe0987d28 v4l2_clk_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe59b95e5 v4l2_clk_get +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe647518d video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe67caa26 v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6fce6f2 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf0f9260f v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf1fbbfda v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfb7ce455 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0e4235dd memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1f83cb56 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x49fa2c1a memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x70ed8b39 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7922ee3b memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7cc135b6 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8ea26bea memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8fea7569 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa4742e1a memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa5987a36 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc06be091 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe0120cb2 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf9e18dac memstick_next_req +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x06a46032 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0fe8d0ce mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2792c24b mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x349ee689 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x38f7d132 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x55bdb80e mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x596a2dcd mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5fab671d mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x666f0ad7 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6b1ad921 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7255babd mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x73886432 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7e8638f5 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x853d1913 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x862bfab5 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8da219d3 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8e21776d mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x94f3a822 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9500d28d mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x96eeafdb mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa15ccd00 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa36df538 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa48424bf mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xaa1fb968 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb4d72dc5 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd2efdf02 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd31d2c1b mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd7bf18e8 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe4aa5e4d mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x07de77ed mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0aa33717 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x15b2f2bc mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x19aad082 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1ec8806f mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2a07b674 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x34987444 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x37aea768 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4b95ff41 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5312708a mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x564ca1c5 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x58a518f2 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5a830b41 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x62485f23 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x732e898c mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7ad970ae mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9bc07105 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9bd09825 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa046fcc8 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb762ee92 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc917b2d0 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd0965f7c mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe2e09688 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe83b0cb5 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe990889e mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf293152c mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf4ccf3a2 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x009ebc36 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x22d246f9 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x24cc73a7 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x30f533a7 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x321653d7 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x43ee5b64 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x496c7c91 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5a7ec4c1 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5cd6a91e i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x781b40ab i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7c9bc18a i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7cbd3876 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x83aee575 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x92fdd8f6 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xab2a209b i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb102ff3d i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd5206de0 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf03fbb54 i2o_parm_table_get +EXPORT_SYMBOL drivers/mfd/cros_ec 0x86da6c0e cros_ec_prepare_tx +EXPORT_SYMBOL drivers/mfd/cros_ec 0x895a901a cros_ec_register +EXPORT_SYMBOL drivers/mfd/cros_ec 0x97ee5fe0 cros_ec_remove +EXPORT_SYMBOL drivers/mfd/cros_ec 0x9dfa7ca4 cros_ec_suspend +EXPORT_SYMBOL drivers/mfd/cros_ec 0xb557dd3d cros_ec_resume +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x305ac995 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x7c1c798b pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0dedc23d mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0e1bc4d7 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x236ebd32 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x3e5333ab mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x5ac92eb5 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x85ef25be mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8aaecfde mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9538b8e5 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x984dd7f7 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9a84b573 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa807d477 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xe647dd2a mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xefa2ed24 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/tps6105x 0x6a934cc5 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x74c780c1 tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps6105x 0xd684f327 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x3089f00c ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xd56b287b ad_dpot_remove +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x8a05ed90 altera_init +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x41fdac9a ssc_free +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x5cd5df8e ssc_request +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x0e9755b9 pwm_channel_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5a8b82f9 pwm_channel_handler +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5d5c2951 pwm_clk_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x6a5e1f70 pwm_channel_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x73330c97 pwm_clk_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0xeb7f2c6f __pwm_channel_onoff +EXPORT_SYMBOL drivers/misc/c2port/core 0x33d52d91 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0x50de584f c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x5e732984 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xeb8402c1 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x0f371aa5 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x113d16d3 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x16af3829 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x57a72c9b tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x69114abb tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x79c17e39 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x809506ef tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x93c8788f tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x9a03ea37 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xbb694e9b tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0xde52eca8 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xe388b767 tifm_remove_adapter +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x6e01a299 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xa3b47914 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xbbb55ea8 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xdc23108a cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x0dd43908 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x6c7c01bd unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x74f18ea9 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x76902409 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x9cf9b190 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xb74de62f lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x43139453 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x2a61ee9a mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtd 0x68aa1d60 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/denali 0xa9ed2fca denali_init +EXPORT_SYMBOL drivers/mtd/nand/denali 0xb2c3dc4f denali_remove +EXPORT_SYMBOL drivers/mtd/nand/nand 0x04d2e313 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x0750e5d0 nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0x3c05db3c nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x44ce682b nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0xd6530be9 nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0xec3bce1f nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x3fa1332f nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xb545cd6a nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xcf1cc003 nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x5286f705 nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xdbf21552 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x57a31e57 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x246ec78f onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x4df81f09 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xa2128239 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xa383a52d flexonenand_region +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x03eef6df arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3010b278 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x342fa19e arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4af80cf4 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x74512898 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7c0f1510 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x922f0b61 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa1a92766 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xedf3c403 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xee13c72f arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x271f5efd com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x5665fd0d com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xd281ff29 com20020_check +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x193a74c6 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1c922491 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x8791f419 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x8e590a99 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x945bd21e NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x95461c3a ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xb33f33b0 ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xc9d98a8d ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xd4f233c6 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xd6b80f42 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x110f1df6 eip_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x258c12d5 eip_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x47c9c44e eip_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x98fad826 eip_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x99c03fd7 eip_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xa7a3c817 __alloc_eip_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xb1082473 NS8390p_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xb1d3280d eip_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xbfb62d5b eip_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xe8f73e7f eip_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xf7114723 eip_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0xf6888bff cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0dd4b090 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0ec64311 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x10bc14f7 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x1237ad88 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x16b6c776 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x219c52f5 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x699587ac t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9cb6f6f9 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa2368246 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa35ca7df cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xad2a38cc cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xadf8eaba cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xbdaac079 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xec77c764 dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xed1c8913 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf51f2075 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0252d7d0 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x042aa149 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x07cb3943 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0f37d52b cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x153706a5 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2ccbd201 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3fc554d7 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4736ef42 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4b884aa8 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4b937cb6 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x53784e99 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6c1a0700 cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6cfe729c cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x825c345b cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x829660c2 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x90f58698 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x919dcf33 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa45913c6 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb04cedd5 cxgb4_disable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcd848c58 cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd4c4fd1f cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xda724228 cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdfbc9837 cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe7bd2585 cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe817016f cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf27b01e9 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfcb8b6fe cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfe564763 cxgb4_enable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x0e712340 vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x4f650da7 vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x75ee90be vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x80f140b2 enic_api_devcmd_proxy_by_index +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x9196d804 vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xb391a203 vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x2f4cdf8b be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x36ea8c93 be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xbab62e22 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13f5f10e mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x15230730 mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x19dcdf84 mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a3dc961 mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f8a10b4 mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x30a907cf mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x32521f44 mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x45c07cf4 mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x526d18c3 mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x71d0efd1 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x71fdfb45 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7e138336 mlx4_set_stats_bitmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x81250582 mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x81de427c mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x854a6455 mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8fcdb240 mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb26d7cff mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb89ff47f mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc06088b8 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc6a46ec6 mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcaea7313 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc27cbdb mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2c41bea mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe61c0df1 mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeb0ca3a4 set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee095997 mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x100c6c98 mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x20bb6e7d mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x23c7d526 mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e0f2450 mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3ab315ed mlx5_cmd_free_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3bcbfe4a mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x46636944 mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4694c501 mlx5_core_arm_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53556192 mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x65ccd484 mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6c3c349d mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7ad995f5 mlx5_cmd_comp_handler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7bba8b2f mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7cd6179b mlx5_core_get_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84b77180 mlx5_core_create_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84f40be4 mlx5_cmd_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x885c9d3f mlx5_core_dump_fill_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d8284f8 mlx5_core_destroy_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa0e18e06 mlx5_dev_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa80a47c2 mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa9b0266b mlx5_cmd_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xade53a68 mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb74b84cb mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc31f139b mlx5_core_query_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf8af7a3b mlx5_dev_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfbbdf0a1 mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfc7a8634 mlx5_cmd_alloc_uar +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x18fa7778 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x5ab539dd hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x885bb51b hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9d4ee7c2 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe045e51d hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1b85cca4 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x34e6d049 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5b7d3a73 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x78c4eb19 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8426cab5 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x94099d07 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x946fc112 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x972e6969 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb183f7a4 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf2c852a1 sirdev_raw_read +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mdio 0xddc98749 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mii 0x620bd38d mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x837f9b6a mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x97a4e471 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0xd28da703 mii_check_media +EXPORT_SYMBOL drivers/net/mii 0xd572868f mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xdb40e5bb mii_check_link +EXPORT_SYMBOL drivers/net/mii 0xe64a218d generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0xf8351b23 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/ppp/pppox 0x4378a70d pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0x735e50ec register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xf24419f8 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/sungem_phy 0x60f7b52a sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x00839cd3 team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0x3f4c7ed7 team_mode_register +EXPORT_SYMBOL drivers/net/team/team 0x80b1e53c team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0x8f8eedbd team_options_unregister +EXPORT_SYMBOL drivers/net/team/team 0x966ebeb5 team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0xae137966 team_option_inst_set_change +EXPORT_SYMBOL drivers/net/team/team 0xaeaded8d team_options_register +EXPORT_SYMBOL drivers/net/team/team 0xbbd61316 team_mode_unregister +EXPORT_SYMBOL drivers/net/usb/usbnet 0x4fadfacf usbnet_link_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0x6f00b6e8 usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0xff6d76fb usbnet_manage_power +EXPORT_SYMBOL drivers/net/wan/hdlc 0x05be0b17 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1c9c99e0 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x4ff7868c hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x563a4c95 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x609250a6 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x6eecc2b7 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x6fe11ce3 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x9c4f7f28 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb6598c01 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xbf81e905 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf9b166d4 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988 z8530_dead_port +EXPORT_SYMBOL drivers/net/wan/z85230 0x20225e96 z8530_sync_dma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x23a29902 z8530_null_rx +EXPORT_SYMBOL drivers/net/wan/z85230 0x311f1056 z8530_sync_txdma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x3436b264 z8530_sync_dma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x343e11e0 z8530_channel_load +EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream +EXPORT_SYMBOL drivers/net/wan/z85230 0x65e0a73e z8530_describe +EXPORT_SYMBOL drivers/net/wan/z85230 0x75fcecb3 z8530_init +EXPORT_SYMBOL drivers/net/wan/z85230 0x8b3f626b z8530_sync_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x91152709 z8530_queue_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0xa9e8fb55 z8530_nop +EXPORT_SYMBOL drivers/net/wan/z85230 0xaf434d9a z8530_sync_txdma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0xd22a4b09 z8530_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0xd4ffebf0 z8530_interrupt +EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230 +EXPORT_SYMBOL drivers/net/wan/z85230 0xf99347a5 z8530_sync_open +EXPORT_SYMBOL drivers/net/wan/z85230 0xfcf3a9df z8530_shutdown +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x93c4f773 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x1a866d71 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xafdb60bb stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xd8682e03 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x00102921 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x106c82da dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x10af4050 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x203ced15 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x252a6327 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e401f86 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x53358ce3 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6407966f ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x68a47fb3 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7ea599b0 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x83323fde ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9db46d5a ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x0b4f85d0 ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x345d0f66 ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4ab79e4e ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x55dd644e ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7c17f91f ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8246be6c ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x895f9dc2 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8ff506e2 ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf096710 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0199ec46 ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x02cea7d9 ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x27cf1694 ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x304fa6f9 ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x382938ab ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4a1e0537 ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4c6ddcb4 ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4e1380ee ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x64ff2159 ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7d01488d ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7f0ce2d8 ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xba035472 ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xbd5177bf ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xe76361e9 ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x3ef015a4 ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x491bd347 ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x91fc76f5 ath9k_hw_wow_event_to_string +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0xabadd085 ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7a3d8628 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x81d61f00 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xabe68458 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf00006f4 ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00249ab1 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x01697553 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0217dc07 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x02c3179a ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x051235db ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0548a03f ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x07b8c3e6 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x08a214eb ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x093e7063 ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b5657f3 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ca3455d ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x11ae6fe2 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13d68b71 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x14db4a20 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15d13780 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x165cfd47 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1a346897 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1aed580b ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b1d3080 ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1d0ed798 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x25d4f262 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26f9f8ef ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x273225c9 ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b51ea0b ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d483236 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2fd8c598 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3863329d ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38c12790 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3ab4d842 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b436e14 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e7b746a ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3eb9206f ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3eea21fe ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4cba132d ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x511a1b06 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x522e71bf ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5779799b ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x59407f5e ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5afb2ffd ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e068622 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6aca68b0 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6c224759 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6f2f2666 ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x700673e2 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73af7442 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7585c311 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x78e413cf ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x795207ff ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7b16e328 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c26f128 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f21d723 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f4212e6 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x825c3708 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83f3d61e ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x861c1f4e ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c722f27 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d2c3a29 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d664e1e ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8efc0f28 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8fa6ca20 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x92d24a36 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x968ba9fc ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x98eb92a0 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9b0bf293 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9fb1687b ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa17d4752 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa248953c ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa3b6f4d7 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa6d4ecce ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa7dfc073 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaca4a3f8 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xacf68b73 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb38ce6c3 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb3d76d97 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb7473910 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb78e0abf ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8a875c5 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9c93a91 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbaff44f ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3621a6b ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7dfb120 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcd8353ad ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd105052a ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd291980c ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd47a06a7 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd52fe782 ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd548d790 ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd945e2d5 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdddadd9d ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdf388767 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdff0d661 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5d80ccd ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1a4ff74 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf4b18516 ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf645d502 ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf94d5337 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfedf284d ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff6812c4 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/atmel 0x2ccf299a init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x5c73f541 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0xf0ee89a1 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0xbe6814cb brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0xcc7184bf brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2dc227f8 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2f9b57a1 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4d9623ff brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x54c62725 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x60831113 brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x69885835 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x88c99795 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x8f9bff22 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x9d44f014 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb2edd9c8 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb3143fd1 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xbfb4e410 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xcc7d8177 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xff2bdef8 brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0aaa6bfb hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x12ef4c5c hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1c4c3657 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1cc6049f hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x21c7718b prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x22b8c058 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2931d59b hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5745c0ec hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6de3d8fd hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x726a36a1 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7b892ea8 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x82df0351 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8d035fd9 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa691dd9b hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xae3ecb4c hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xae4527dc hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc4104ef9 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcc56e1a0 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd7b8ceb2 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe2ef19c1 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf154ee33 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf37dadad hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf3818005 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf41c1cb1 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xff251a60 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x03035e87 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0bca5818 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0c189a4d libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x104495d2 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x30c3c31c libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3ca43dc2 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x495042cd libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5d51de75 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6df562cf libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x726c9212 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7392bcd7 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x890254aa libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x961a7262 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb5ef2b90 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb6d0f82a libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbc5fcf47 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc9fa5a51 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd3fc3b4e free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe07e5af2 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf452a162 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfa2c1c3b libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x002aa05c il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x00a2ab3f il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x061d22c2 il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0638b9ef il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x09e137d0 il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0db3aab0 il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x10edec97 il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1192f811 il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x12b37f8f il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x143b82bc il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x149aa1d3 il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1903f5b1 il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1a19e6bd il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1c0baea1 il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1d3853e2 il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1faeb5a0 il_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x22e07263 il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x274188a7 il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x28b7427b il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2a59b447 il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2c35c5dd il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2cc32603 il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2fb3c6a7 il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x331e1f4e il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x33f3032d il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x352246b8 il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x37d5b721 _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3b53fa3e il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3c3b706b il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3f877bba il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3fb3cb9e il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x40828e77 il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x441f2cd4 il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x446e26da il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4740376b il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x476c67f2 il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x47ffb19d il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x48340e97 il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4aa39103 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4c69288d il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4dcd0b97 il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4defa6b5 il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4f9e30c9 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x52569495 il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x530a1e8a il_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x538d12d9 il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x53c5951d il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x564c6740 il_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x57852001 il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5985e3df il_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5c4ab9c7 il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5d2620e9 il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5f538f17 il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x60c5f9d7 il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x679eb065 il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x68787f56 il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x71a1a899 il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x782f0ac0 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x79a773fe il_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7d815d6b il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x85654d99 il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8966f2aa il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x92ebac21 il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9555e7af il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x96532d40 il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x967d7453 il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9e9242ac il_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa3f9a1de il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa47e8b20 il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa69fabc1 il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa7d61f5f il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xaeddad05 il_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xaef5dad3 il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb114a948 il_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb5ea5d39 il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb7bd33ff il_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xba37eda4 _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbbbc75e8 il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbef8526e il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc1216042 il_set_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc1bc1fc0 il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc3913904 il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc39cf12c il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcc8c8b73 il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcc9125a9 il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcf20a7b0 il_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd09f045c il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd10dfd79 il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd6ee221d il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd83fcb5a il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdbbf9a97 il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe3191289 il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe435493a il_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe4bf2179 il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe8112285 il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf28125bc il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf2beb0df il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf501278b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf56cb838 il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf727d63b il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf95c8d42 il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfcbcfadb il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfe9b8592 il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xff7919cb il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x08ee1e7d __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0d9eb5ff __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0e7bc05f __tracepoint_iwlwifi_warn +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x201337b4 __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x249e4b06 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x36dcef55 __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x4919d1a5 __tracepoint_iwlwifi_dbg +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x67381a2a __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x79e9bf26 __tracepoint_iwlwifi_crit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x7edec07d __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x8bfcc307 __tracepoint_iwlwifi_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x9a12c9c5 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xc0827b2f __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xda36f3a4 __tracepoint_iwlwifi_err +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0057f1e0 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0ce8de22 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x19cbd710 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4c5009f1 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x539ae19e orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5c959bdc __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5f64322c orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x74e2bb31 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8e70e2c8 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9d0b87b4 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa168b1b6 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb78dcdbf orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbc09c134 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc5c2fdbe __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe33aebc1 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf9a6d6ba orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfd5a8858 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/btcoexist/btcoexist 0x5bf14cca rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x00cb16d3 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0936cd1c rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0f073200 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0fa56380 rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0fa9e068 _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x114ca2b8 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x120cc814 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1321e8b6 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x17a5feca rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x18cf0228 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x22ef9ee8 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x265cf878 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x33947efe rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x400cbd3b rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x42730bae _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x43d5a8a0 _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x54dc8782 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5fa0e38a _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6636460d _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6933e02f rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x727df3e6 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x83a6d876 rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8ad8a70a _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9d16c33e rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9d6a837a rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa4e77f42 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xaae59a11 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xad326b63 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbbdef5c8 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbdfa8edd rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc0f8b7dc rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc50459ad rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcc94e84a _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdb8d66d7 _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe288b592 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe2dcf9e3 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xebafdb86 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xec57784a rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xecf115d8 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xee7755b9 rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfc99d122 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x016bcd86 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x49343de4 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x58345bee rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x67e8f4c4 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x25a7fe8a rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x5637b799 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x657ca02d rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x7115b4a5 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x06476294 rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x207fbb70 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2949e6d2 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x30e67e4b rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3881b32f rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3e5ce771 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4d6cb00c rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x578863a2 rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5a7de15c rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5d0a02be rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6ffc33d1 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7778ec0f rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79188a02 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7a07a7a6 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x855939a2 rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa2f22ee7 rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc6a1eed6 rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xda0a7bc1 rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe0d408fc rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe79ea0b1 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfe097624 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfe791252 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x2ea29630 wlcore_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x7e8ae2ab wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x8081d56b wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xf3d92af1 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/nfc/microread/microread 0xbaf7b44e microread_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0xc1e724a7 microread_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x0d60ea3b pn544_hci_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x71fb906c pn544_hci_probe +EXPORT_SYMBOL drivers/parport/parport 0x00147d4c parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x0bcc496a parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x0e90b490 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x1069f395 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x24564172 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x2a8622f0 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x2c6279f4 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x3a472710 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4fa40bec parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x62602e8f parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x6545a01b parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x6df63b10 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x7b096b77 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x7d5755bb parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x81bfcc21 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x91c3fcb6 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x9b5977a7 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xa0367a37 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xa47f9fef parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xacff8391 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xb23e468d parport_write +EXPORT_SYMBOL drivers/parport/parport 0xb8bf62c0 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xbcca273f parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xc098569b parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xd3cfb131 parport_read +EXPORT_SYMBOL drivers/parport/parport 0xe3c8a034 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xe823d9aa parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xee236be1 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xefae5eb2 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xf116d756 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xcde86bad parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xd0d9e9d1 parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x046d9ae7 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x06ef3f2d pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x09a62f22 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1d56a459 __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x279a59f3 pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3d0ac07d pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4ed352e5 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x610de120 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6bd1e2f3 pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x77393dc2 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7dd081bc pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb04cb5a3 pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc05c74b3 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc2ace4b5 pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcc8a20fe pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xced0aa6c pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd87340e6 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xeed2b54d pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf7e2661c pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x29614dd9 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4608ac35 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5102ec00 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x633b8996 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x6af88e56 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x71199fa7 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8043c246 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xaa2a8638 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb1079cbe pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc9255ab9 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd5d7e213 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xebc08cbb pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xf1d2f351 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/platform/x86/intel_ips 0xd32b0b5b i915_bdw_enabled +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x3a3d3a6a pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0x428bbc07 pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0x43f97922 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0x79e8e92a pps_lookup_dev +EXPORT_SYMBOL drivers/ptp/ptp 0x2784904b ptp_clock_register +EXPORT_SYMBOL drivers/ptp/ptp 0x43c11b77 ptp_clock_unregister +EXPORT_SYMBOL drivers/ptp/ptp 0xb7c14bf0 ptp_clock_event +EXPORT_SYMBOL drivers/ptp/ptp 0xe4628733 ptp_clock_index +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x880031d1 pch_ch_event_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x8a470b30 pch_rx_snap_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x941ab676 pch_set_station_address +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xa4d37090 pch_src_uuid_hi_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xae952178 pch_ch_event_write +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xbaa14499 pch_tx_snap_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xcf4cefc6 pch_ch_control_write +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xe8c96b04 pch_src_uuid_lo_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xeefbfa99 pch_ch_control_read +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x44493f96 rproc_add +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x49785b3d rproc_da_to_va +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xabd1b119 rproc_boot +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xac92c935 rproc_alloc +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xad598895 rproc_del +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xbf00b77c rproc_shutdown +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xc30d6ce2 rproc_vq_interrupt +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xca5db829 rproc_report_crash +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xfc35b04b rproc_put +EXPORT_SYMBOL drivers/scsi/53c700 0x060e78c2 NCR_700_detect +EXPORT_SYMBOL drivers/scsi/53c700 0x3d9cece0 NCR_700_intr +EXPORT_SYMBOL drivers/scsi/53c700 0x9d4332b1 NCR_700_release +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0608d712 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x20c003a1 fcoe_ctlr_destroy_store +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x255163fa fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x519ae324 fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x52c2f046 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5b24fea0 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x73068e96 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x799045d5 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9397ba65 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xaf87e042 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc6da357a fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf08ff98c fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x07662a59 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x103a1ed5 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x183d77a1 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x201c8a35 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22011400 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2712941e libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2a8ee27d fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2e1f8c2c fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2effda1a fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x32f96121 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3338c77f fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x33b1a1ae _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3545ddab fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3606c726 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4222ed45 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x490b8dc2 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x54927f1d fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x54b69b1a fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5536569f fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5b88dd6e fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64cfb019 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x731ccd9d fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7a39a80e fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7aaf33ac fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7ae19508 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7f4d9522 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7f7b95a5 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8268bb53 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x89490e1d fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8aca34ff fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x91c55e99 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x98b859b2 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9db539d7 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa0116159 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa25843cd fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa58c0010 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xac561a86 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaf69453f fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb570ad72 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc10b6aa0 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc2cc0ac4 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd354410e fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd3c69d41 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd83b3df3 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd867f496 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdaa6e282 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xebb9c4a9 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf2cc8713 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf39692da fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfa3cf117 fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfab545f0 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfdff3d92 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x040488f0 sas_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x2ba6559b sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x411b182b sas_wait_eh +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x96b6aa7f sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x85c72597 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0287041c osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x070929f0 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0ba16214 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x127be17e osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x13bb991a osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1c41f1f8 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3bcf63d4 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x44cd06f6 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x515abde7 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x588f074c osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5df1685f osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x61a7d974 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x696c2ddc osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6ac30b5e osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x76c6c957 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x78a4df72 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8a4d47ea osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8b2faa23 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8b717614 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x901b27d3 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x96ad7884 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x97a66091 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9a407284 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9e120853 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xae9eb335 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb352601f osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb4722e6c osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb49c6fa4 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbf39c877 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbfe6946f osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc66eee32 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe187874b osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xec6fd931 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf3d2357c osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfea9bee8 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfeb9ef43 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/osd 0x59a42a44 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x61b99176 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x6fe16c6c osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x9f0f74a9 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0xa50fbccd osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0xa5de4cfb osduld_device_same +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x1413b3fd qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x2ee536a3 qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x5b285528 qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x5b4d87bb qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x9b182ec1 qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xb37dd89d qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xcb5d441b qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xcf3de9e6 qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xe0a16cc4 qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xe61c56a3 qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xf968d60b qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x04d9af2e qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x17d8c200 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3c198ab9 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x830b4490 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x871f20b6 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe4a13a54 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x14c86d16 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x5942cbe9 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x65c59817 raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x02758516 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x32aab53a fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x49d9c543 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x818416b5 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x819642e1 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8d6cbc98 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9b9d9a7c fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb960ba5b fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbc110ddd fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xcdf9638b scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd680b563 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe5b58058 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xec770e5f fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0b76bb12 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x19a5e17f sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2e2e965a sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4a88ed03 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x50eb77c5 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x61bf854f sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x63017cbf sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6dc1c369 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x762c5993 sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7836464c sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7b6265dd sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7cc21291 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x825ca85c sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8e0d0a29 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9100650d scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x98e81cf7 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9c39d18d sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9cd0e0c8 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaa9284c4 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaba42750 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb5c73508 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcfaa5fab sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe27083c1 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xeabfb605 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xeb926fa0 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xef28366e sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf44a1348 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfb496c8f scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x061dbd72 srp_rport_put +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x1528dc2d srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x348e2cb4 srp_rport_get +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x64302375 srp_reconnect_rport +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x240ee0d9 ufshcd_runtime_resume +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x96e0ff0f ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0xf29f0aa0 ufshcd_runtime_idle +EXPORT_SYMBOL drivers/ssb/ssb 0x144f59a9 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x512abff0 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x5e8a9420 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x61e10f2e ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x648bd3c0 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x71d31a50 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x743404eb ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x7a3e4add ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x804ac2e9 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x87fb6bf7 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x8995919e ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x8a9ce8d3 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x9abfff15 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xb088c1c9 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xb1a6a433 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0xb39c9aa4 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0xbe483da1 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc5b01dfc ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xe484f55c ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xe9998628 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xf2609e12 __ssb_driver_register +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0x189e72e3 fwtty_port_put +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0x58c392d0 fwtty_port_get +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x23f2880b adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xbf4d5e84 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x893c23ee ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xe49825f3 ade7854_remove +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x041bc337 lnet_register_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0bce7eef lnet_counters_get +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0e1a4f0b lnet_copy_iov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0eef0fd5 lnet_create_reply_msg +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1366b7ac LNetSetLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x19670622 LNetNIInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1b191752 lnet_msgtyp2str +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1fe16fd5 LNetGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x204b8151 lnet_counters_reset +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2aa9953d lnet_cpt_of_nid +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2ac93e90 lnet_connect_console_error +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x33202a6c LNetGetId +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3558e584 lnet_iov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3c779ee0 LNetPut +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3f4f5b46 LNetNIFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x473ad33b LNetDist +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4bb00492 lnet_copy_iov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4f9cb871 lnet_extract_iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5811a721 LNetInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x58a1ca89 LNetMDUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5987eadb lnet_set_reply_msg_len +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5ee51ad7 lnet_net2ni +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5fee352c lnet_acceptor_timeout +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x61f784b2 LNetClearLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x64cdea3a LNetCtl +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x6879b418 lnet_finalize +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x6f7be171 LNetEQGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x722c76e5 LNetMDAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x72ad5e0c lnet_kiov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x7d59a7fe LNetMEInsert +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8091cf69 lnet_unregister_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x854ab844 LNetEQWait +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x86ff51d6 lnet_parse +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8a3064f2 LNetSetAsync +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x9de986d3 LNetEQAlloc +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa36af452 the_lnet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa8c2760b LNetFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa414970 LNetMEUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa9b477e LNetMDBind +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb75f7953 LNetEQFree +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb93e2f1a lnet_set_ip_niaddr +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xba5566d2 lnet_acceptor_port +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xbf0760a2 LNetMEAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xc17e2028 lnet_copy_kiov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xdb1690ea lnet_copy_kiov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xf1b316bf LNetSnprintHandle +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xf34c6818 lnet_notify +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xf56cf68b lnet_connect +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xf9f42b7a lnet_extract_kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/selftest/lnet_selftest 0x078db139 lstcon_ioctl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x1c4bb5f9 LU_OBF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x375e6f8d LUSTRE_BFL_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x48bd3985 seq_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x4c601679 seq_client_get_seq +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x565b0608 client_fid_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x9748dfb9 client_fid_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xa40c79a1 seq_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xae61cff5 LU_DOT_LUSTRE_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xc997a02f LUSTRE_SEQ_SPACE_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xecee2727 LUSTRE_SEQ_ZERO_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xf43ae63a seq_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xfe14cec6 seq_client_alloc_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x1739c21c fld_client_proc_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x40b28bf3 fld_client_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x4c9cdea9 fld_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x676e0a19 fld_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x70932dcf fld_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x9886f188 fld_client_add_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xcfa39707 fld_client_del_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x000c507f libcfs_debug_dumplog +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x01db5172 cfs_percpt_atomic_summary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x03387ca6 cfs_curproc_groups_nr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x041282f5 upcall_cache_flush_all +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x04d3ce6a lbug_with_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x069f9bb2 cfs_wi_schedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x08ada613 libcfs_console_backoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x08e41c56 cfs_crypto_hash_update_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0b4b1546 libcfs_lnd2modname +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0de6c369 cfs_cap_lower +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0e4820ab cfs_percpt_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0f5eff79 cfs_percpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x108d2e2b cfs_percpt_lock_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x117c8a95 cfs_cpt_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12426266 libcfs_run_lbug_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x15565c7f cfs_cpt_set_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x17ac7833 libcfs_deregister_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x19b06de7 cfs_hash_size_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1a60d439 cfs_parse_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1d5a3928 cfs_timer_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x23f6f445 cfs_restore_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2557589f cfs_hash_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2589f0af cfs_hash_rehash_cancel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2663147a __cfs_fail_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x27b6d3ba cfs_ip_addr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2b1e0458 cfs_get_environ +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2dbe54b2 cfs_trimwhite +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2efcc0e6 cfs_block_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x30986343 cfs_range_expr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x31fc5082 cfs_crypto_hash_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x377f93fb cfs_srand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3791e0c9 cfs_hash_bd_add_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3834f243 proc_call_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x38828b92 cfs_cpt_unset_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x389ca502 libcfs_debug_mb +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3962e3ee cfs_race_waitq +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x39fdcd2b libcfs_debug_set_level +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3a62a183 cfs_cpt_set_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3c1285bd libcfs_subsystem_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3d5e6098 cfs_race_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ea730c0 cfs_gettok +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ef0d90c libcfs_kkuc_group_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3f0d9281 cfs_wi_sched_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4087f890 cfs_hash_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x411db754 cfs_crypto_hash_final +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x413056d8 cfs_cpt_weight +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x41ab33a1 libcfs_ipif_free_enumeration +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x42e22feb cfs_cpt_table +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x42fd2ecb libcfs_sock_getbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44688a0a cfs_block_allsigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44839bbb cfs_rand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44f07cfc cfs_pause +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x47fdb4d1 cfs_timer_is_armed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x48f163c6 libcfs_str2anynid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x493a5cb4 upcall_cache_put_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4947bd6b cfs_hash_dual_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x496b3c4f upcall_cache_get_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4a99af72 cfs_clear_sigpending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4d89e988 cfs_block_sigsinv +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4f1f2fa5 cfs_crypto_hash_digest +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x50345570 libcfs_str2net +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5051b6d2 portal_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x509d38b0 libcfs_net2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x52e9cfc1 cfs_cpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x53b383e4 cfs_cpt_unset_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x54fd9a71 cfs_percpt_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x58a7ee00 libcfs_catastrophe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5946ec2b cfs_percpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5c013b81 cfs_expr_list_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5ce62c0e cfs_cpt_table_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d3be65a cfs_crypto_adler32_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d73c3e3 cfs_expr_list_free_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5dce9e80 libcfs_lnd2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62289d65 cfs_array_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x64685fef libcfs_console_min_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6564c55b libcfs_console_max_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x65dd9f0c libcfs_run_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x65e2b9d3 cfs_hash_rehash_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x66136d2d cfs_timer_arm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x67398404 cfs_wi_sched_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6756a801 cfs_hash_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x68497dbf cfs_cpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x687788c4 cfs_percpt_lock_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c605eaa cfs_cpt_unset_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c905b5f libcfs_watchdog_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6cf325d6 upcall_cache_flush_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6dfa9ea1 cfs_crypto_adler32_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6e6af71c current_is_32bit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6f928e1b libcfs_debug_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6ff4020b cfs_hash_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x71d7b2fa cfs_hash_cond_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x71f662a3 libcfs_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x74dde658 cfs_hash_dual_bd_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x752858fb cfs_cpt_table_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x763d1a12 libcfs_sock_getaddr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7a3d49ae cfs_expr_list_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7b0b748a cfs_ip_addr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c7986cf waitq_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7d93cded cfs_cpt_of_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7e6f6485 cfs_ip_addr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7fda989d cfs_fail_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8151c3aa cfs_cap_raised +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x83d795e4 cfs_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x842864cd cfs_hash_dual_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x857aaea7 libcfs_register_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x89e0937b cfs_hash_for_each_safe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c85e4e6 cfs_crypto_hash_speed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8db98837 libcfs_sock_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8e61d47b cfs_cpt_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8eef69ba cfs_hash_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f12bb52 libcfs_log_goto +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f45f10d cfs_init_timer +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x904c4251 cfs_hash_getref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x907865a6 libcfs_sock_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x91504e8b libcfs_kmemory +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x940ed192 libcfs_stack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9548a4f1 upcall_cache_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x95620e8c cfs_wi_deschedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x95fc092e libcfs_kkuc_group_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x978b5836 cfs_hash_rehash_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x97ab5498 cfs_hash_bd_peek_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x97b0b9bc cfs_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9879b229 cfs_get_random_bytes +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9e2f78ca libcfs_kkuc_msg_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9f82f712 cfs_trace_copyout_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa0ddfce7 cfs_hash_bd_move_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa2b68b2a cfs_array_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa4522d96 cfs_hash_is_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa482c7fd libcfs_sock_setbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa4d43b13 cfs_hash_del_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa6b9dee6 libcfs_kkuc_group_rem +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa711aec5 cfs_cpt_table_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9088531 cfs_expr_list_values +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9dc74e2 cfs_trace_copyin_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9eae690 cfs_str2mask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xaaf59b75 cfs_cpt_set_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xab887583 init_waitqueue_entry_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xad019238 cfs_str2num_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb43456f1 cfs_percpt_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb53b5569 cfs_cpt_spread_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb883b006 cfs_percpt_atomic_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb8897bad cfs_percpt_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb9c87f94 cfs_hash_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbada117b cfs_cpt_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb59ad6e cfs_hash_findadd_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb9cb508 cfs_curproc_cap_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbd5d492e cfs_timer_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbefb6c3c cfs_hash_dual_bd_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbf013175 cfs_hash_rehash +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbf7a37f1 cfs_signal_pending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc0ea7fc0 cfs_expr_list_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2911d96 cfs_expr_list_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2dfd791 libcfs_console_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc39fd2f9 libcfs_panic_on_lbug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc3eb614e libcfs_ipif_query +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc47433a6 cfs_capable +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc49b1c62 cfs_percpt_atomic_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc53890de add_wait_queue_exclusive_head +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc77a24c3 cfs_cpt_set_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcb385db9 libcfs_debug_binary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcbab8493 schedule_timeout_and_set_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcc195787 cfs_hash_dual_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcc20e694 libcfs_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xccc45639 cfs_free_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcd38904c cfs_wi_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xce1a88f2 libcfs_arch_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf61bacb __cfs_fail_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd0d8d08a cfs_cpt_unset_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd2037eb5 cfs_hash_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd217e869 upcall_cache_downcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd29aeeaa cfs_hash_debug_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd2db9312 upcall_cache_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd6a52be3 libcfs_printk +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd9541990 cfs_strncasecmp +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd96f406d cfs_cap_raise +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdac1c0e1 cfs_hash_debug_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdb92f14c cfs_hash_add_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xde17bb8d libcfs_isknown_lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdf2789c0 cfs_curproc_cap_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdffc951d cfs_timer_disarm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe031e0f4 libcfs_sock_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe1224965 cfs_hash_for_each_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe2da56ad cfs_hash_hlist_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe3bf6897 cfs_percpt_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe55e471d libcfs_sock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe6555032 libcfs_ipif_enumerate +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe7202360 cfs_hash_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe7b54314 libcfs_arch_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xea8b46c8 cfs_hash_dual_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xec1f56d5 libcfs_str2nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeca4d884 cfs_hash_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeccafa5c cfs_cpt_online +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeceac781 cfs_fail_val +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xedf3a25a cfs_timer_deadline +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xee28e153 cfs_hash_for_each_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf0e4b4ae libcfs_sock_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf20c7e8c libcfs_sock_listen +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf2c02048 cfs_cpt_bind +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf372d1c2 cfs_firststr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf38927af cfs_hash_bd_del_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf40279f5 upcall_cache_flush_idle +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf440bb38 libcfs_kkuc_group_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf784c295 libcfs_sock_abort_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf79d9217 cfs_hash_for_each_nolock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8a8644b libcfs_id2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8efb8c5 waitq_timedwait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf94025d1 libcfs_str2lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfe565fa9 cfs_crypto_hash_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfe5c8c6b cfs_hash_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xff0f98a6 libcfs_debug_vmsg2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x00b3ff6b ll_stats_ops_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x5dcfd8ab ll_osscapa_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xa98533bf ll_iocontrol_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xcd3cde92 ll_iocontrol_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xd3f4ce52 ll_direct_rw_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x06465a20 lov_stripe_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x30cf3022 lov_device_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x37864f1f lov_stripe_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xa40219f9 lov_lsm_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xd570cd99 lov_lsm_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xf2ed135b lov_read_and_clear_async_rc +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x0b202cd5 fsfilt_get_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x12f5fd9b pop_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x1861e60a fsfilt_unregister_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x19c7fc03 fsfilt_put_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x388b3263 lprocfs_counter_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x5c297a9a fsfilt_register_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x6d358c96 push_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x91edfb23 lprocfs_counter_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xa5992178 obd_memory +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb3d4d0cf lprocfs_stats_alloc_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb4f8ee63 lprocfs_read_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb71f9a22 lustre_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xd306a2a3 l_dentry_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x14a47f31 it_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x9c22b84f it_open_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xb57d8447 it_set_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xf46a886f it_clear_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mgc/mgc 0xdc287f95 mgc_fsname2resid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x009fb4da lprocfs_nid_stats_clear_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x00a4599a cl_lock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x01665e34 class_parse_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x01f9479d lu_context_key_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x029dab14 cat_cancel_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x02dd62cd lustre_process_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0346d120 llog_cat_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x035852d0 lustre_swab_llog_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0401c932 cl_object_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x042e9c8b cl_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x044c8961 lu_object_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x04b42b8e cl_object_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x057f6d4b class_find_old_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05814b1f cl_req_page_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05af1920 dt_quota_glb_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05bf7da1 cl_2queue_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05ce9fe3 cl_page_unassume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05f84e88 LU_BUF_NULL +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0613f813 cl_unuse_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x06cca1ec cl_page_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07aa68bb lustre_swab_lustre_cfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0817b9cb cl_io_iter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x083942ff class_del_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x085c1aeb cl_page_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x08ba406a dt_txn_hook_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0af60f2b dt_txn_callback_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0bdc818b cl_page_vmpage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0c32ec1c local_oid_storage_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0cf99bff dt_acct_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d41fc7b local_oid_storage_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d6a22e2 lu_site_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0dcc33ec lu_ucred +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fe91547 obdo_to_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fee3411 dt_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1008df32 cl_lock_extransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x103aac2f lprocfs_alloc_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x10b30c9d lprocfs_init_ldlm_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1114e76d lprocfs_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11495519 lprocfs_write_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1173edb2 obd_exports_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x120637e5 cl_env_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x12d8b570 lprocfs_exp_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x138f3208 cl_env_nested_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1491dc30 lu_context_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x14aa4146 cl_object_glimpse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17260880 obdo_cpy_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17f6183f lustre_idmap_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x18d5abe5 class_disconnect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x194846a1 lprocfs_rd_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x19a20e4f lprocfs_nid_stats_clear_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1a7f39c7 class_search_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1a9751bf cl_lock_signal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1c70b8f5 llog_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1d154a85 dt_txn_hook_commit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1dcb93fe dt_store_resolve +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1dceafbd capa_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1e27a6f3 cl_page_list_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1e63fb31 lu_env_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1e7fc04a lu_object_anon +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1ec45d27 dt_locate_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1fa6a343 cl_page_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x207798bf cl_lock_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21307495 lu_buf_check_and_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2163beaa cl_lock_descr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x217a766d cl_page_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x218f47c6 cl_env_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x221826f1 class_parse_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x225f98c2 cl_lock_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x22829ed1 cl_lock_ext_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x232a2e05 lu_object_find_slice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x23d08873 cl_io_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2418b999 cl_lock_mutex_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x24264d96 dt_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x252e0377 cl_req_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x253eaaba class_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2547efae lustre_uuid_to_peer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x259ebac6 obd_alloc_fail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x26685213 cl_page_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x26e02934 lprocfs_wr_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x275cdc7a cl_env_reexit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2763b61a cl_lock_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x27cce3b6 lprocfs_alloc_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x28210bd1 llog_cat_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x28b78424 cl_lock_descr_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x28bfb565 cl_page_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x28cfb186 cl_page_is_under_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x28ef0519 lprocfs_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x297cf5e0 class_handle2object +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x299cac74 cl_enqueue_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2a590227 llog_cat_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2a8f30fa cl_page_make_ready +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2a93aa71 lu_device_type_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ae1cd79 kuc_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2b4c48e9 server_name2svname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2b4d1917 class_devices_in_group +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2b6d6df6 class_manual_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2bf45140 obdo_from_iattr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2c4f4fe8 lu_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2d3895fe dump_lsm +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2e219f7c cl_page_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2e5c0b8f class_num2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2e9243a5 lprocfs_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2f1f6bc0 obdo_from_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2f86015f class_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x308c38bc lu_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3146de41 llog_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x31b6230b capa_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x31e37a51 lustre_register_kill_super_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3200d082 class_unlink_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x323f02d1 cl_lock_user_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32c7f3b0 lu_context_key_degister_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3341f4ac cl_lock_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3349c8d7 llog_open_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3395517c llog_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3431f452 cl_env_implant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3456e948 lprocfs_obd_rd_max_pages_per_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x35526d19 lprocfs_oh_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x35a4f05a obd_llog_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x35daec16 lprocfs_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x360972a9 cl_lock_hold_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3747cbfe llog_cat_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x374ee2da cl_type_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37c4945e llog_cat_init_and_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37d10019 lu_object_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37ed6e4b at_early_margin +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x384533a5 cl_locks_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38ea6a58 cl_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38fb0c90 class_match_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3918821d cl_page_list_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3a005065 dt_otable_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3b25f007 cl_io_lock_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3b5177aa cl_page_clip +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3b5424a1 cl_lock_hold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3c0c86a4 llog_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3d1a33ba dump_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3d338477 class_exp2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3d39008c cl_page_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3ddbf955 lu_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3e8ceb32 cl_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f5d3c29 lu_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3ffd14a9 lu_object_add_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4377baf3 llog_cat_cancel_records +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4430acc3 cl_lock_nr_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44b53aba lprocfs_exp_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44e41abb lustre_posix_acl_xattr_filter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x45455e04 cl_lock_discard_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x461a4db4 local_index_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x472d649d cl_lock_mutex_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x474ed5bd lustre_swab_ll_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4760779c lustre_idmap_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47b35f7d statfs_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47d3d1b6 cl_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x484d326f cl_sync_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x48e4e77b class_put_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x490abefc llog_cat_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x494cfb52 lustre_acl_xattr_merge2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a0f6ea lustre_posix_acl_xattr_2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a29223 lprocfs_find_named_value +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49b06a08 cl_page_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ac58713 obd_connect_flags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ae2e29e cl_io_lock_alloc_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4b2139f4 llog_osd_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4bb325af cl_page_gang_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4bd9f28b obdo_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4cc01869 llog_init_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d0a4591 cl_lock_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d13458b kuc_len +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4dbf874a cl_io_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4dca3149 cl_io_commit_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ecc5d95 cl_object_has_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4f1cf833 cl_req_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4fa6c94d lu_dev_add_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4fba4346 dt_directory_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4fc75a1f obd_devs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4fe13e4d dt_store_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ff1d23b cl_lock_weigh +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50c7fc36 ptlrpc_put_connection_superhack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x523443d1 cl_object_attr_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x52a1d2b6 dt_lookup_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x53ab2586 lu_context_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54885f87 ldlm_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x558bec27 obd_ioctl_getdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x55b16f87 class_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x564e9d44 init_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x56599434 cl_object_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x565a2590 lprocfs_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x570d09ae lustre_swab_lu_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x588ed64f class_register_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5990b19a cl_lock_get_trust +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x59ab68e0 cl_page_list_move +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a20d896 obd_memory_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a6f1fff dt_version_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5bc022c5 lprocfs_dt_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5c3c303c lprocfs_rd_numrefs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5c468383 lprocfs_rd_u64 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d07f4d5 cl_lock_state_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d34ae0d cl_lock_mode_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d3f5aa2 lprocfs_stats_collect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d92dbd7 obdo_from_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5da93415 lu_object_find_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5dcab00e class_conn2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e5f9903 class_process_proc_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ed188a9 lprocfs_add_symlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5fe97b73 block_debug_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x602f26fd llog_thread_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x60a6cba8 lprocfs_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x617bcdf3 cl_io_rw_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x624361d6 cl_lock_user_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x62a37e31 lu_device_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x62bae166 lu_env_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631a518d mea_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631fd7b9 lustre_ext_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x63d2f899 dt_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x63fe4575 lu_device_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x64990d6d cl_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x65d2b993 class_handle_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x666d5e76 llog_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6734adbd lprocfs_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67428fce lprocfs_oh_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x677fd7f9 proc_lustre_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67977b42 lprocfs_remove_proc_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67a90622 la_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67dc223a lprocfs_remove +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67fd922f cl_io_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6890d175 lustre_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69c42114 at_min +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69d760e1 cl_env_nested_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6af6aced local_object_unlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6b6612e1 lu_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6bb6d421 lu_buf_realloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6bc80abf cl_lock_at_pgoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6bf5bdd2 llog_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6c100f7c lprocfs_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6c3debab lu_object_put_nocache +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6da2d59f lustre_in_group_p +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6dd2e4f3 md_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f12d4f8 lprocfs_rd_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f2c5f95 dt_record_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f3e6225 dt_quota_slv_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6fb58215 class_new_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7119b1ea cl_2queue_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7129b84f cl_page_list_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x71881cf0 cl_lock_enclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72298613 cl_io_iter_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72959a14 local_file_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72aef410 cl_page_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72ddee4c obdo_le_to_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7301bf41 lprocfs_free_per_client_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x742559b1 class_unregister_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x74968435 dt_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x752f71a8 class_get_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7554e2cb cl_2queue_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x755f8cf7 cl_page_list_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x756a77f3 class_parse_nid_quiet +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x764f577c dt_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77761628 cl_lock_is_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77d2089a class_name2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7802fcd7 lustre_swab_llogd_conn_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x789796a1 obd_zombie_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x78a7581c cl_page_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7934832f cl_object_attr_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7a0927bd cl_object_kill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b2d9976 lu_kmem_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b4fc57b at_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b6cbc1a lprocfs_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7be9c4a2 capa_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7c39780a llog_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7c5486cf lu_kmem_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ce885f4 lprocfs_seq_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7e3ce845 class_config_parse_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7e53a320 class_find_client_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7edcafa0 cl_env_reenter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ef66ea0 lu_ucred_assert +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f1c1497 llog_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f403597 cl_env_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f889745 class_config_llog_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fad7291 raw_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fe5561a obd_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8027063b dt_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8031efb8 lprocfs_dt_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x806cc497 class_add_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81742d89 obd_ioctl_popdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8231afe2 lprocfs_init_mps_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x825bf5c2 lu_env_refill_by_tags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8315f877 class_handle_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x831f656c class_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x83231023 cl_vmpage_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x83971b20 dt_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x841b4d26 cl_unuse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8489f086 obd_alloc_fail_rate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x849e5385 obd_update_maxusage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8583c9df cl_io_rw_advance +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x86a5afc0 cl_lock_closure_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x883037da cl_io_loop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8aa2c358 lprocfs_dt_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b5f4057 lu_context_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ba6e479 lustre_swab_lu_seq_range +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8c5eb7f8 llog_cancel_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8cdc5b00 dt_try_as_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d26cc33 __llog_ctxt_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d6f4a74 lu_context_key_degister +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8edfd5f1 class_import_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8eeb6ce9 cl_io_is_going +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f2e5284 lu_context_enter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f67314c obd_dump_on_eviction +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f91b1d6 llog_osd_put_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8fe4934d cl_io_submit_rw +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x90254005 llog_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x90a38947 cl_lock_closure_build +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9176c46b cl_env_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92ade9b6 cl_page_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92e58479 obd_dump_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92f256cb lprocfs_seq_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9316676b llog_exist +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93af9388 llog_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93b46468 lu_session_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93e31a9c cl_page_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93f93c0d cl_io_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x94465a53 cl_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x94a7dba2 cl_page_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x94f8905f dt_txn_hook_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9512d507 lustre_acl_xattr_merge2posix +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x955806b8 lu_cdebug_printer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x955f5220 ldlm_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95735c6c at_extra +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95ec998a lustre_groups_sort +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x973e98e5 class_disconnect_stale_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9767adce class_uuid2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97d03783 at_history +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x985137a2 cl_lock_mutex_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x987334d5 dt_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9959550e lustre_register_client_fill_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x996086b7 lprocfs_free_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x997e9c37 class_incref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9a6f3add cl_req_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9aa9a069 lprocfs_rd_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b1ed9d8 obd_jobid_var +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9c1413b6 lprocfs_add_vars +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9c9e0aad class_new_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9cc58400 cl_lock_enqueue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9dbb17b6 lprocfs_dt_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9e62171f class_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9f263346 llog_copy_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9f634264 cl_wait_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa00a93ce class_conn2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa203f24d lprocfs_obd_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa209607a lprocfs_counter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa21c5ea1 obdo_from_la +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa28d30e0 cl_sync_io_note +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa30991e6 lu_context_key_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa392860d class_export_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa4ae41a1 lu_env_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa513f7e4 lustre_groups_from_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5217e86 cl_io_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa57bfc88 class_import_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5fb234f lprocfs_write_frac_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa674c241 kuc_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa6adba70 class_name2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa704bf9a lustre_idmap_lookup_uid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa77efeb0 cl_page_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa794c0b5 cl_object_attr_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa83e2e6a lu_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa927eabe cl_lock_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa21b7a0 lustre_register_quota_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xab2b5441 lprocfs_init_ops_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabf45922 capa_decrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac7f1596 kuc_ptr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xad33d40a cl_object_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xada3992e cl_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xadca0c5f lprocfs_at_hist_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xadca221a cl_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xafe11590 lprocfs_rd_timeouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb01963a6 class_uuid_unparse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb039cadd cl_env_unplant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0fb9886 cl_lvb2attr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb14039cc cl_page_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb16b41a4 cl_page_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1931131 cl_use_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1b89b6d class_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb22d23be cl_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb40a48fc cl_io_prepare_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb41998cd lustre_cfg_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb50d3eb0 lustre_common_put_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb542c835 lprocfs_single_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb575d9e6 lu_context_key_revive +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb5c96e52 class_uuid2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb5e18413 dt_declare_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb614569e lprocfs_register_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6195b68 obdo_refresh_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb62977d5 lu_device_type_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6ba5dd5 kuc_ispayload +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb743ec6a dt_mode_to_dft +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb8302278 cl_page_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb84d6818 llog_osd_get_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb85881c2 cl_page_list_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb8619a6b lu_dev_del_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba951efa lu_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba985283 lustre_register_client_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbacac922 lprocfs_write_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbb53c0fb cl_lock_hold_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbb661c0e cl_lock_closure_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc00ee8c cl_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc1a8c26 cl_2queue_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbd1918cb cl_io_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbd23568f lu_context_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbdc7bc53 cl_req_page_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe16d43e lprocfs_alloc_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe208125 lu_context_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe53b99a cl_page_list_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbfd42a4f llog_cat_declare_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0bf7ef2 obd_debug_peer_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc13763c0 lustre_end_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc1f73324 lu_ucred_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc29af833 cl_sync_io_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc384f22f lprocfs_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc3c487aa lprocfs_rd_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc3e02cb4 cl_io_submit_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc4a3582b lprocfs_rd_num_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc4c2967e lprocfs_oh_tally_log2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc4ff5a83 obdo_to_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc610265e obd_export_evict_by_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc782ad06 class_detach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8dbaa87 lustre_swab_cfg_marker +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc95873a5 llog_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc9b3c667 dt_lfsck_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb0ab67f obd_max_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcba7c4b9 cl_page_is_owned +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcbdead84 lprocfs_add_simple +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcc34e65e class_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcc388a60 lu_object_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcc913b64 lustre_idmap_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccf7a8de obdo_cpu_to_le +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd5a07d6 class_config_dump_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd7537ee get_devices_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd7d4ffc lu_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd8a604e lu_buf_check_and_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcdf749ee cl_page_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xce9e165d dt_index_walk +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcedb140a obdo_cmp_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcf00f793 lprocfs_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcf361f33 llog_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd007eec4 lprocfs_free_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd014438a cl_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd032467a capa_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd08827c0 server_name2fsname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd0a73dde lu_context_key_quiesce +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd0b6995d lu_buf_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd10aa042 lustre_swab_llog_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1b1478b cl_attr2lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1d3781b lu_site_init_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1e9c163 cl_lock_unhold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1f58645 lustre_swab_llog_hdr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd29bfd91 lu_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd2e3c248 cl_lock_is_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd346c66c cl_req_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd3e0067a lprocfs_rd_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd4ac7f6e llog_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd539445b lustre_idmap_lookup_gid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd5a2ba9c class_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd6e99787 capa_cpy +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd70fe669 lustre_swab_llogd_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7a7ecb7 llog_cat_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bc8654 obd_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bfbc9c lprocfs_dt_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7c847d1 lu_context_key_register_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7e6741b cl_page_is_vmlocked +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7f7b340 cl_lock_mode_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd8aff838 cl_page_list_splice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd9b1ae88 lprocfs_rd_conn_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd9b2b688 cl_page_list_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd9fc4e1b iattr_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda5b1ced class_find_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda969657 lprocfs_rd_server_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdac644c8 lustre_posix_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb13d548 cl_lock_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb13dce1 capa_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdba5f562 cl_lock_disclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdc0f14fc local_index_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdc68d1c8 llog_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcc40af0 class_check_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcebe7a1 cl_lock_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd78c0c7 lu_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde058d04 cl_lock_modify +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde09e38f class_conn2export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde3510a4 obd_export_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde7d985b obd_dirty_transit_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdf3adf72 cl_page_list_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdfef1627 cl_lock_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe028cf84 capa_encrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe03bf788 dt_record_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe0db826a cl_io_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe1450724 cl_2queue_init_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe152cc2b cl_io_sub_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe1551796 lu_site_purge +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2eb4470 class_get_next_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3323f5d class_handle_free_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3cbdfa2 lu_context_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3d2bdc3 dt_txn_callback_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe5851b84 class_connected_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe5adaf76 class_fail_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe680006f cl_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe71d1383 cl_offset +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe74b67e7 dump_lniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe77decff cl_page_find_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7d83236 cleanup_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8a6288f cl_page_list_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8e84c32 class_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8eb9677 llog_declare_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe9744f12 llog_declare_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeadc69a3 lu_object_assign_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb06c05a cl_page_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb3f388a _debug_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xebae3b3e llog_obd_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec7d6b85 obd_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec874e83 cl_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xed274ac3 cl_io_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xed96b68a obd_llog_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee0fe072 cl_pages_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee68bc29 lu_session_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeed345bb class_export_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeee36b38 cl_2queue_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeeeb79fa do_lcfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef30c8e3 lprocfs_rd_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef76f858 block_debug_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xefa30505 cl_page_own_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf01e2527 server_name2index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf0bbe70a lprocfs_free_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf142e776 dt_index_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf1f41841 lprocfs_clear_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf2262539 lprocfs_rd_connect_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf2fd6695 statfs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3b4167e cl_page_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3f08504 lustre_idmap_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf441c77a lprocfs_oh_sum +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf490d5f9 class_del_profiles +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf59c1006 cl_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf5c9cdba local_file_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf60d4659 capa_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf6e608e8 lu_context_key_revive_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7020831 lprocfs_dt_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7c1ccd2 llog_declare_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8390218 lu_object_invariant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8bcc8da lu_context_key_quiesce_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8c2df92 obdo_set_parent_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf96c0935 lu_object_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf9a0b173 class_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa222ecc cl_io_read_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa5d3532 cl_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa813d06 capa_hmac +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa9b47ce cl_2queue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfb1b5ad9 obd_export_evict_by_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfb2e6b3b class_handle_hash_back +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfb4c4a21 class_exp2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfb570363 cl_req_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbea0098 lu_types_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbf76f0d lu_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc0b8b5c llog_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc7f18d0 obd_pages_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfce4103b lu_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfcf6cb92 cl_conf_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd31244d lu_object_locate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd68d17a class_notify_sptlrpc_conf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd8f5cf4 lu_buf_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfdbe1557 lprocfs_write_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfde9643f lprocfs_wr_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe028bef class_disconnect_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe3f8e05 cl_queue_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe687f17 llog_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff262259 cl_page_cache_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff57e92d class_match_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfffc1f11 lustre_swab_ost_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/osc/osc 0x5c4940c2 osc_update_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x006e68a6 ldlm_prep_enqueue_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00d95039 ptlrpcd_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x01d6ef7f ldlm_pools_recalc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x020da4e8 ptlrpc_reconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x026483d8 sptlrpc_cli_unwrap_bulk_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0407df8c ptlrpc_request_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x048b59d5 lustre_msg_set_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x04aafc81 ptlrpc_req_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0515f93b RQF_FLD_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x06b3942b lustre_swab_lov_user_md_objects +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x071fc74a RQF_LDLM_ENQUEUE_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x07605c7d interval_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x080e592c ptlrpc_send_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x087fa48d ptlrpc_pinger_sending_on_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08bb2d27 lustre_swab_obd_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x095587d0 lustre_msg_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0a3130b0 RMF_MDT_EPOCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac252b2 lustre_msg_set_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0afed134 ldlm_pool_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0bcacb5d RMF_MDS_HSM_USER_ITEM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0c2d9c43 lustre_swab_lip_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0cf343dd RQF_LDLM_INTENT_BASIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0d56f0a3 llog_origin_handle_read_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0e19737b client_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0e99552e ptlrpc_unregister_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x109b6da4 ptlrpc_service_health_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x10f18f20 interval_iterate_reverse +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x115017f6 req_layout_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x11aa0382 ldlm_cli_cancel_unused_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x11bcf28a ptlrpc_buf_set_swabbed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x11d99f46 lprocfs_wr_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x127670de ptlrpc_queue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x127c002d client_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12b6f5a3 ptlrpc_connection_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1483eca4 ldlm_lock_addref_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x14d192db lustre_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1529c7e8 llog_initiator_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x15a3e4db RMF_GETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x16e47d4a lprocfs_wr_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x16fd2885 ptl_send_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x172fb86d lustre_msg_hdr_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1747d8b3 ldlm_lockname +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17950f60 RQF_SEC_CTX +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19108a0f RQF_OST_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19c08934 RQF_LDLM_INTENT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19c904c7 ptlrpc_wake_delayed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19f8b2f0 llog_origin_handle_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a6a3ce9 RQF_OST_GET_INFO_LAST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a9b76aa RMF_OBD_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1abd3258 RMF_SETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ace4b5f RQF_LDLM_BL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1b990f2d ptlrpc_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1bae0270 interval_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1bda2562 ldlm_lock2handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1be21715 lustre_msg_size_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c300d8e lustre_msg_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1d043548 lustre_msg_set_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1dc2051d RMF_SEQ_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1de9c288 lustre_swab_layout_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1e8e48a4 sptlrpc_flavor_has_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1eb2a65f RQF_OST_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee46b51 lustre_init_msg_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee9eb3c RQF_MDS_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1fc2214f req_capsule_client_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2096f5b5 RQF_OST_SET_GRANT_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x20d6b82c RQF_LDLM_INTENT_QUOTA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x20f58d9b ldlm_reprocess_all_ns +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x218a36ce ldlm_cli_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x21db3771 sptlrpc_cli_ctx_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x22730454 ldlm_pool_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x233790b5 RMF_OST_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x23472544 ldlm_resource_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2390c1e9 client_import_find_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x239aa8e9 ptlrpc_unpack_req_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x244e5558 lustre_msg_get_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x24aafdba RMF_MGS_TARGET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2585a629 RMF_SEQ_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2587513c RQF_LDLM_CP_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x259ba464 ptlrpc_set_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x25bf9214 lock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2608a8e0 ptlrpc_pinger_add_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x265d80e2 ptlrpc_stop_all_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x269554ce RQF_LDLM_INTENT_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x26e9834b ptlrpc_buf_need_swab +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x26f99d16 RQF_MGS_CONFIG_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2754983c ptlrpc_replay_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x27bb273e lprocfs_rd_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x285e5b99 lustre_msg_set_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x29e0869a sptlrpc_get_hash_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2a63a472 lustre_swab_ptlrpc_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2c00c60d ptlrpc_sample_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ca92fa8 ldlm_lock_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ccd5b87 ldlm_cli_cancel_list_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2cd41a5c ldlm_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2cee74f1 ldlm_pool_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d56f168 ptlrpc_pinger_ir_up +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d798316 RMF_MGS_CONFIG_RES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4562fe RQF_LLOG_ORIGIN_HANDLE_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4ca396 RQF_LDLM_INTENT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ecd7515 lustre_msg_check_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2f0e4f87 RQF_OST_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2f12c6ee ptlrpc_resend_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2f365063 req_capsule_server_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2fd2f737 lustre_msg_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x301d4fcd RQF_MDS_READPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x302937e0 RQF_MDS_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3060b9c6 sptlrpc_rule_set_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x31838cb4 RMF_IDX_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3261b862 RQF_OST_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x32b1c162 ldlm_cli_enqueue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x32e1a0ba ptlrpc_register_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x33bb7761 ldlm_typename +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x342cf22b ldlm_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3463d047 llog_origin_handle_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x34c5daba llog_origin_handle_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35939a3d lustre_swab_fiemap +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35ea1a17 sptlrpc_target_update_exp_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35ff3fad ptlrpc_req_set_repsize +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3771d528 ldlm_resource_unlink_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3835ab4b RQF_LLOG_ORIGIN_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3858fb94 RMF_OBD_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38c01799 RQF_LDLM_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38fce533 lustre_msg_set_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x39f60a5f RMF_OST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3a1e4bcb __lustre_unpack_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3aada09c sptlrpc_sec_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ab90f6e lustre_msg_bufcount +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ac00716 lustre_swab_hsm_user_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b6b7cba dump_ioo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3bedb0c7 RMF_LLOGD_CONN_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c63e62b RQF_MDS_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c7ba682 ptlrpc_cleanup_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ca50f33 RQF_MDS_HSM_CT_REGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3cb91570 ldlm_lock_change_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3d7dc5f9 ldlm_pools_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3d860bc5 ptlrpc_pinger_del_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dc47695 lustre_msg_get_magic +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dddb3e2 dump_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3e0c0ac8 ldlm_prep_elc_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3e5190b4 ptlrpc_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3eaed993 ptlrpc_add_rqs_to_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f034caf lustre_msg_get_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f752e78 RQF_MDS_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x40b05380 ldlm_blocking_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41008cef RQF_LDLM_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41fd51de ptlrpc_set_add_new_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x42523594 req_capsule_client_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x435aa3ef ptlrpc_lprocfs_unregister_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43705ee4 RQF_LOG_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x437f0719 ldlm_namespace_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43b2a11c ptlrpcd_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43d7efc8 lustre_msg_set_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x44036eda RQF_MDS_GET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x440c2a71 RMF_FIEMAP_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x442778e9 ldlm_pool_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4481591d RQF_OST_SET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x449ca9bc ptlrpc_unpack_rep_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45d05893 lustre_swab_lustre_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45e30cea lustre_swab_ldlm_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x460acd4c sptlrpc_cli_unwrap_bulk_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x46b29b7b ptlrpc_cleanup_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x476d2f00 client_import_del_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47b319f2 sptlrpc_import_sec_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47db92b3 sptlrpc_gc_add_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47ea482c req_capsule_server_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47f5e903 RMF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x48814c9f lustre_swab_ost_lvb_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x48ff5ff4 ptlrpc_req_finished_with_imp_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x498c03c5 lustre_msg_set_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4a465dfa llog_origin_handle_next_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4a5a2416 RMF_DLM_REQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4a5dab59 ldlm_namespace_new +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4b09ce4b lustre_swab_mdt_rec_reint +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4c0b3f2c ptlrpcd_add_rqset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4c99006f ptlrpc_prep_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4d7580d0 lustre_swab_hsm_user_item +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e1706e5 lustre_msg_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e42b0d8 sptlrpc_cli_wrap_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e696b96 ptlrpcd_queue_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4eb03a6f ptlrpcd_destroy_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4f766c3b lustre_swab_generic_32s +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50443f6a ptlrpc_init_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50921a35 ptlrpc_activate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50dd74f8 RMF_STRING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x51429901 sptlrpc_import_flush_my_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x526952a5 sptlrpc_sec_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x52c62150 RMF_RCS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53411557 RMF_DLM_REP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53a4a004 bulk_sec_desc_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x544bea08 ptlrpc_request_bufs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x548c3cb4 ldlm_resource_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x54ae5021 ldlm_lock_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x54c951c9 sptlrpc_register_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x54dd5cce client_import_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x555eb7fe RQF_MDS_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x588035b4 RMF_UPDATE_REPLY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x595ab175 lustre_swab_obd_quotactl +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x596582bf RMF_GETINFO_VALLEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59ca398b ptlrpc_add_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5a057439 interval_search +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5af0d02a ldlm_lock_dump_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b15a7f5 req_capsule_client_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b3e50bc ptlrpc_init_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b6ba895 lustre_packed_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5c6a3a83 RQF_SEQ_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5caae213 ptlrpc_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5cc3cde5 sptlrpc_req_replace_dead_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5d21d15b lustre_pack_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5da87a62 sptlrpc_sec_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5db98179 req_capsule_client_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e0b19b1 RMF_CLUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e2b7558 lustre_msghdr_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e6f435d RQF_OST_BRW_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e80f899 RQF_LLOG_ORIGIN_HANDLE_READ_HEADER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ec3284d RQF_MDS_HSM_CT_UNREGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ef831ee lustre_msg_get_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5f96ccdd ptlrpc_connection_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6042bc15 RQF_MDS_REINT_RENAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x604e2505 RMF_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x607ec932 lustre_msg_set_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60983a97 _debug_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60cd26ad RQF_MDS_REINT_CREATE_SYM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x61646e1b RQF_MDS_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x618ad203 RQF_OST_GET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x61fc8cb7 req_capsule_server_sized_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62192cf8 dump_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6233aab8 ldlm_cli_update_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62aaae3f RQF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6315dd4c RMF_LLOGD_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6352a62d ldlm_get_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x647b6e48 lustre_swab_ldlm_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x64d807f3 ldlm_pool_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x64fca0e4 ptlrpc_commit_replies +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x652052d2 ptlrpc_free_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x653723dc RMF_LOGCOOKIES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x66015e50 client_disconnect_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x66eca49e ldlm_pool_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x685eeaba RMF_DLM_GL_DESC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68cb2541 interval_is_overlapped +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68f49e5e ptlrpc_expired_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6912990a RQF_OST_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69695922 _ldlm_lock_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x696ba811 lustre_msg_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69c9f04d RQF_MDS_REINT_LINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69ce499d req_capsule_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6a3785c9 RMF_EADATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d72828c sptlrpc_conf_log_update_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d7931cc RQF_UPDATE_OBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6da589f9 sptlrpc_target_export_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6df2999d ptlrpc_resend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6ed20499 ldlm_revalidate_lock_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6efa82b0 RQF_MGS_TARGET_REG +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f4b9a93 ldlm_cli_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f5bda12 ldlm_lock_fail_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f6dc736 lustre_swab_mdt_remote_perm +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6fb92092 sptlrpc_flavor2name_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x703538e4 lustre_swab_hsm_current_action +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7164ab0b ldlm_cli_cancel_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x723d43b6 sptlrpc_rule_set_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x725a892c RQF_MDS_REINT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7333583d ldlm_init_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x74840056 lustre_msg_set_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x74b6fabc __ptlrpc_prep_bulk_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7568d1d9 ldlm_get_enq_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75a2c40d ldlm_put_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x76454100 ldlm_cli_cancel_unused +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x76460765 ptlrpc_init_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7646bee1 ptlrpc_req_finished +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7697eb5b ldlm_pool_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x76b728e5 lustre_swab_update_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x770382d2 ptlrpc_lprocfs_brw +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77571cc6 lustre_swab_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x776c11e0 ldlm_lock_downgrade +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77840c82 sptlrpc_rule_set_choose +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77b01da2 ptlrpc_schedule_difficult_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x78bf9136 lustre_swab_ldlm_lock_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7993fedc ldlm_pool_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7a2b9490 ldlm_pool_get_lvf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7a832f10 RMF_CONN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7b158da4 lustre_swab_ldlm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7bbf8001 RMF_MDT_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7c4c6107 RQF_LDLM_CONVERT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d1ecd7f RQF_LDLM_INTENT_LAYOUT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d242204 ptlrpc_set_next_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d41a8b9 RQF_QUOTA_DQACQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d86d359 lustre_pack_reply_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d9d1010 ptlrpc_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dc0e7cd RMF_QUOTA_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dfb3c18 lustre_msg_clear_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7e355fac ptlrpc_start_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7ec5b578 ptlrpc_prep_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4925d8 interval_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4c99b1 ldlm_expired_completion_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f5a1cc7 lustre_msg_set_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f6d2357 lustre_msg_is_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7fa20667 ldlm_extent_shift_kms +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80a9e8c3 lustre_msg_get_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80ecb4e3 RMF_MDS_HSM_CURRENT_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x811d97ae sptlrpc_gc_del_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x815c9035 ldlm_enqueue_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x817d7f1f lustre_msg_add_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x81c1f26a sptlrpc_conf_client_adapt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x826d3c4f RQF_LDLM_GL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8347e8a2 sptlrpc_unregister_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x837efb00 RMF_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85135801 RMF_DLM_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8586a209 ptlrpc_request_alloc_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85a9e0d8 RMF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85eecf67 sptlrpc_get_hash_alg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x863db6eb RMF_HSM_USER_STATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x86fa8c3b ldlm_cli_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x870f66d5 ldlm_lock_allow_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8760beaf lustre_swab_ldlm_policy_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x876c2551 RMF_GETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87bf7b3c sptlrpc_get_next_secid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x885f147b ptlrpc_unregister_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8872f3d2 RMF_SETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x88fff52d RMF_CAPA2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x89f9edf7 RQF_MDS_REINT_SETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a1ea476 lustre_swab_hsm_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a257736 RQF_MDS_HSM_STATE_GET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ac440fa ptlrpc_uuid_to_connection +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8b854254 lustre_swab_mgs_config_res +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8b855bb4 sptlrpc_cli_ctx_wakeup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8bbf8e2e ldlm_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8cb71d4b RQF_MDS_REINT_CREATE_SLAVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d184d6a ptlrpc_register_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d77ea75 lustre_msg_set_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8da3fca7 lustre_msg_add_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8e9abe4d RMF_GENERIC_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8f0aceac RQF_MDS_HSM_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8f2fe17e ldlm_pool_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8fec0451 lustre_msg_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91626dc9 ptlrpc_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9174ed0e ptlrpc_save_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x919c4ce3 RMF_OBD_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91cf58d3 RQF_MDS_PIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91f0713a ldlm_destroy_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9223d43c lustre_pack_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x92ab6640 ptlrpc_at_set_req_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x92ff3b0f sptlrpc_gc_add_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x937b1ee0 lustre_swab_mdt_ioepoch +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x93b08553 ldlm_lock_allow_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9472eac1 sec2target_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9553c633 RQF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95d08f0c lustre_swab_mgs_target_info +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9660ace0 RMF_FLD_MDFLD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x967bfd52 RQF_OBD_PING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9774fee3 ptlrpc_restart_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9798f2f1 RQF_MDS_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x980fcfdc ptlrpc_connection_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x99c19182 sptlrpc_cli_ctx_expire +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x99cd4439 lprocfs_wr_evict_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x99dd330f req_capsule_has_field +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x99e70f9f sptlrpc_enc_pool_put_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a258886 RQF_MDS_GETSTATUS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a6f2f6d lustre_msg_set_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9ae28488 req_capsule_init_area +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9b88f6ce RMF_NIOBUF_REMOTE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9bb5198b RQF_MDS_CLOSE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9c52d193 ldlm_lock_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9c54ae5e req_capsule_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9c83aa3d ldlm_namespace_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9cd53e3e sptlrpc_cli_ctx_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d4d8ff2 ptlrpc_unregister_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d7ea314 sptlrpc_pack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9e2e9d63 ptlrpc_retain_replayable_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9f616388 ptlrpc_nrs_policy_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9fb088f1 lustre_swab_lov_mds_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa063926b ldlm_lock2desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa0c9fde0 ldlm_resource_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa10dce4c req_capsule_set_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa10f0d3d RMF_UPDATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa163f4c3 dump_rniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2244636 RQF_MDS_GETATTR_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa22c0086 ldlm_error2errno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa3b94091 client_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa3c25e65 req_capsule_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa3d2a6ee RMF_CAPA1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa47787ef RMF_PTLRPC_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4a2d089 RQF_OST_PUNCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4bea5ef lustre_swab_lmv_user_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5458dad ldlm_lock_decref_and_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5880075 ldlm_errno2error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa600634c req_capsule_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa6c436ca RQF_MDS_WRITEPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa72fdb31 ptlrpc_set_add_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7967704 lustre_pack_reply_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7d55cc3 RQF_MDS_REINT_CREATE_RMT_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7e360b1 RMF_OBD_IOOBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7ec567d RMF_CONNECT_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9704f80 lustre_msg_get_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9c4658e lustre_swab_lov_user_md_v3 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9edf09d RQF_OBD_IDX_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaaeb5ee3 req_capsule_server_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xabc6b056 ptlrpc_invalidate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xad58a933 ptlrpc_set_import_active +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xad96e826 unlock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaddc3979 lustre_swab_lustre_capa_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf0f46dd ptlrpc_set_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf38afdf ldlm_lock_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf40dc24 ldlm_init_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf4e9658 RQF_MDS_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf50a0d6 RMF_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf538bc8 lprocfs_wr_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0751fa4 RQF_LLOG_ORIGIN_HANDLE_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1068917 sptlrpc_conf_target_get_rules +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1b43d8a dump_rcs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb27c2374 lustre_msg_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb291473d lustre_msg_early_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb2b1817d lustre_swab_ost_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4321132 req_capsule_server_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4586d6f ldlm_glimpse_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4a7ecf3 lustre_msg_add_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb512ebc2 sptlrpc_parse_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb54402c8 target_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb555ea5f ldlm_namespace_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb61cb95a RQF_MDS_GETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb68476df interval_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb6aafd03 RQF_MDS_DONE_WRITING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb777a2d9 req_capsule_filled_sizes +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7b38189 RMF_MDT_MD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7b98f54 ldlm_cli_cancel_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7fa3cc8 RMF_LLOG_LOG_HDR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb903634e RQF_OST_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb9b631cf lustre_swab_mgs_config_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xba228287 sptlrpc_svc_ctx_invalidate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbaa76097 lustre_msg_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbbcc4433 ptlrpc_hpreq_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc1370dc lustre_shrink_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbd83bc44 RQF_OBD_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbddd64a6 ldlm_lock_fail_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbe47bc7e ping_evictor_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbf98b86f RQF_MDS_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbf9cb23b ptlrpc_prep_req_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbffd4313 RQF_OST_BRW_WRITE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc06c4670 lustre_msg_get_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0867da7 RMF_REC_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0cdf55e RMF_MGS_SEND_PARAM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2594542 ldlm_pool_get_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2986d28 lustre_swab_ldlm_res_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2b1af57 RQF_MGS_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2bad91a req_capsule_server_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2be922a RMF_SYMTGT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc4e6c6fd req_capsule_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc51ebc4e client_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc556f72a ldlm_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc559a634 RMF_LAYOUT_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc593388e ptlrpc_prep_fcset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc60a60e1 RQF_OST_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc694be4b RQF_LLOG_ORIGIN_HANDLE_PREV_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc763fabc sptlrpc_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc79b9c67 ldlm_pools_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7ca8257 RQF_MDS_REINT_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7e47564 ptlrpc_interrupted_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc88657b0 ldlm_namespace_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc8f586a9 ptlrpc_connection_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc91b30f5 lustre_free_reply_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc9227889 sptlrpc_cli_enlarge_reqbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca5a81ec ptlrpc_pinger_ir_down +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca7bff0f ldlm_namespace_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcab7494e req_capsule_server_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcae6cc67 sptlrpc_import_flush_all_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2cc0cf lustre_swab_lquota_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2ceaff sptlrpc_secflags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xccc2c988 target_pack_pool_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcd25029d ldlm_completion_ast_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce1a689b sptlrpc_enc_pool_add_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce57d623 ptlrpc_mark_interrupted +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce86066d lustre_msg_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcec513c9 RQF_MDS_UNPIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xced015be sptlrpc_rule_set_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9963db lustre_msg_get_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9aab6a RQF_MDS_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd14b104c ptlrpc_request_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd21d1205 ptlrpcd_wake +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2983334 lustre_swab_swap_layouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2e0ce58 ldlm_blocking_ast_nocheck +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2e0d4eb lustre_msg_get_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd3dae408 ldlm_it2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd4919663 ldlm_namespace_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd4c8c03f ptlrpc_request_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd537ded2 lustre_swab_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd573859d ptlrpc_deactivate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd585d05f ldlm_resource_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd5d1aa85 req_capsule_field_present +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd67a5d7b lustre_swab_update_reply_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd69e0a27 RQF_MDS_IS_SUBDIR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6c3ebfb RMF_FIEMAP_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd7910326 lustre_swab_obd_statfs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8b91b3e lustre_swab_lov_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8f06300 RQF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd9561861 RQF_LDLM_INTENT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xda2ac111 sptlrpc_proc_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdad3d28f ptlrpc_nrs_policy_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb1fb0a2 RQF_MDS_REINT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb892fe5 sptlrpc_target_sec_part +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb9d5a6a lustre_swab_niobuf_remote +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdc1b12b3 sptlrpc_lprocfs_cliobd_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdcf910b9 lustre_swab_ost_last_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd0ffb04 sptlrpc_flavor2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd30d7bf RMF_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xddc40a85 lustre_msg_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde12d36b RMF_MDS_HSM_ARCHIVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde555d70 sptlrpc_enc_pool_del_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdee87192 sptlrpc_conf_log_update_begin +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf602282 ptlrpcd_alloc_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf701ae7 lustre_swab_fid2path +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf9708e4 __ldlm_handle2lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe01e8853 ptlrpc_obd_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0cc694c RQF_LLOG_ORIGIN_HANDLE_NEXT_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe20eb819 ptlrpc_lprocfs_register_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe35dc9e7 ptlrpc_request_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe40e0a50 lustre_msg_get_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe43e6210 ldlm_cancel_resource_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe4455240 ptlrpc_disconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe4b816a4 llog_origin_handle_prev_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe57bd972 sptlrpc_current_user_desc_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe643998e RQF_OST_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe67df974 ptlrpc_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6f0dc96 RQF_OST_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7062b5f RMF_U32 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7512278 ptlrpcd_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe8727a31 ldlm_replay_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe89b85dc ptlrpc_recover_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xea941989 ptlrpc_request_alloc_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabaa0b1 lustre_swab_mdt_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabac4fc sptlrpc_rule_set_merge +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeafd2aa8 ldlm_pool_set_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeba464fa ldlm_pool_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xebb64e68 req_layout_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec226f66 ping_evictor_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec939a00 RQF_MDS_REINT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xecace5c1 RQF_OST_GET_INFO_GENERIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed1c10d6 ptlrpc_connection_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xedcb740d sptlrpc_name2flavor_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xee038324 ldlm_flock_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xee8976f4 req_capsule_extend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef1aeca9 RMF_FLD_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef1cc0c0 ptlrpc_set_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef46ebbb __ptlrpc_free_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef632065 req_capsule_other_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef7f7218 ptlrpc_prep_bulk_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0241d6e lustre_swab_hsm_progress_kernel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0d52b5f ptlrpc_pinger_suppress_pings +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf11b88bb llog_origin_handle_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf1300275 _sptlrpc_enlarge_msg_inplace +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf1dfe6f1 ldlm_destroy_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf277c125 RQF_OST_GET_INFO_FIEMAP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf27d49dc sptlrpc_target_choose_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf307628c ptlrpc_abort_inflight +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf35f132b lustre_swab_ldlm_resource_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf3d44370 RQF_OST_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf400c90b ptlrpc_request_set_replen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf43540b9 lustre_swab_mgs_nidtbl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf45085e1 sptlrpc_conf_log_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf55c033b RMF_MGS_CONFIG_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf584a16b sptlrpc_part2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf596e9ae sptlrpc_conf_log_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf607fc23 sptlrpc_flavor2name_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf617ab8a lustre_msg_get_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf697b756 ldlm_dump_all_namespaces +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7408f84 lustre_swab_hsm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7ba40c0 RMF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7e3bdd5 ldlm_cli_enqueue_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf85cb27e sptlrpc_parse_rule +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf870fed9 RQF_LDLM_GL_DESC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9051bd6 RQF_QC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf93e4f4d sptlrpc_get_bulk_checksum +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf94e41e0 deuuidify +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf973aa93 lustre_swab_lov_user_md_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9ee11e2 lustre_msg_set_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9f72dfc RMF_TGTUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa51688d interval_insert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfae68d4a llog_client_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfbc6c57d do_set_info_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfc2fa83f ptlrpc_del_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfccc70ab ptlrpc_fail_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd148bf8 RMF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfe174152 target_print_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfe25d399 sptlrpc_enc_pool_get_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfed2c2dc ldlm_register_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff02a0e9 ldlm_lock_set_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffc807e8 sptlrpc_unpack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffe29c3f RQF_LDLM_ENQUEUE +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0x635e8c36 cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x12f7fe23 go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x2e5221d1 go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x419802dc go7007_snd_init +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x7b2411c9 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x9702787c go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xbe581c2e go7007_update_board +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xc3a3e0cf go7007_snd_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xe1773301 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xf9b96ab7 go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0a41b645 rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0bd69a17 rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0fa8c034 alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x11ce1f29 rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x13e9134c rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x19c0365c rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1a6c5d6d rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1bfbe3ac rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1e26d06d rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x268cb0a2 rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x27855092 rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2ffb18f8 rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x30c564e7 rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x32f27aa1 RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x337cfad8 rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3b23a725 rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3c7cc741 rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x42eed91a notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4373e760 rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4494f648 HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x47061c00 rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x492b27ac rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x56ea8d7e rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6b1454c2 rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7bfe541f rtllib_wpa_supplicant_ioctl +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x80000c8f rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8cb9af29 rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9756486b rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9f3e7090 rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa0666998 free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa4e3a587 rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa720ca9d rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa9c2b4a1 rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xab3e8bc4 rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb20fe9b2 rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb802ddd9 rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xba740861 rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbb98ad74 rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbbabbaef rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe1420f2 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc835338d rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd8b4650f dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf78f620 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe8d893a9 Dot11d_Channelmap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xea1b98a3 rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xed3c92a9 rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xefe608ac rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf5d1f161 rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf9ad2463 rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfac5ec6b rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfb42c3dd rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xff83a729 rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0106ace4 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x040035c3 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x04cf31ea ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x068817b9 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x07959c41 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x07a59b74 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0ab24d8c ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x11da70a1 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1677ec1b ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x182ea7cc ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2b22e85d ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2ed71376 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x32f2def6 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3468e4d5 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3a6b00ad ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cbb989d ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x42cdb613 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4da61eb6 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4fb43323 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5476281d ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x61e44273 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x63b33396 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6b7c3580 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c32c8b5 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7279d449 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x74cefa3e ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7e7e7639 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x88683e43 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8a371612 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8b8aa6f1 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8f115723 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x92baf9e3 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x95e3ccae Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9738d102 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9c9a2431 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9f3e41d7 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa42e7d5a ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa8b27af7 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa947e87a ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xad1970d5 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb9ca0381 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbb6c2243 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbd067672 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc415d06a ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc8275455 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcf1e64cb ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd2e3d851 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd47f4f15 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd58a43bb IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdaccb8cc SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xed406898 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfa718815 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfac3a880 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfe9b9384 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfecd6c85 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xffa55596 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0017f35f set_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x00ea0cde set_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x06d6f244 get_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x09df8f3e set_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0a8d32c3 get_bypass_slave_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1936264c set_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1d2eb8ca get_tap_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x203af1f7 reset_bypass_wd_timer_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2070f14a set_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x27b990ef get_bypass_info_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2ba7cd35 get_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2c3f1c17 get_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2f59e636 get_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2fdb893a get_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x361cf40a get_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x45ca99c3 set_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x550a188c set_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x5cb59e92 get_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x66b60122 set_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x675208c0 set_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x692623f2 get_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x75131ec6 set_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x76c0b7d0 set_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e872825 get_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e8d701e get_wd_expire_time_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x86388b07 get_bp_disc_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x93ae4648 get_wd_set_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x95e42b0d is_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9df5f807 set_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9e21f42e set_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xa689a214 get_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xae117788 get_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xc368d30d get_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xccab5de0 get_bypass_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd3e034b3 get_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9c1ccfc get_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9d38d97 set_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xe640f06e set_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xecdaa456 set_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xedcd3c1b get_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf06d67bf set_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf57c1671 get_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf693c3a1 bp_if_scan_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf8237882 get_bypass_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xfa59240d get_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05af3c4c set_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05b08a42 set_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0b0d5ce0 get_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0fc2e83c reset_bypass_wd_timer +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x123a8133 get_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x157ec89c get_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2440f05a get_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2b01d1d4 set_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2c27a2f0 set_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2da97f4b is_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2e86c67b get_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37416370 get_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37bdab27 get_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x3da96a18 get_bypass_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4025805e get_bypass_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4940a0cc get_bypass_info +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4d21ff51 get_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5147360c get_bp_disc_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x515d4df1 get_bypass_slave +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5560267e set_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5be44d44 set_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6653590c get_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6bda14ec get_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x72c618ae set_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x76d47e6f set_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x794e3815 set_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x7c6cbc16 get_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x84a263dc set_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x8a16f22c set_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x946ff795 get_wd_set_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x94f6aff2 get_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x9d1ecf73 set_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xb1385629 set_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xbff68c45 set_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xc871c561 get_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xcee528df set_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd202dd85 get_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd787f151 get_wd_expire_time +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xdb6a39d2 get_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xebd25ae5 get_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf1e9f8c1 set_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf224abd9 get_tap_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf5a591b2 set_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf643fd4c get_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x25978d50 xillybus_isr +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x36131cb2 xillybus_init_endpoint +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x9c95aa32 xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0xa25b8537 xillybus_do_cleanup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0xd77bea8d xillybus_endpoint_remove +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0905fb65 iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x32fb2ea5 iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3bf012d2 iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3e491186 iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4b3e8ca4 iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x56ca9e70 iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5e1ddc3b iscsit_set_unsoliticed_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x71aaaad8 iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7272c319 iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x746ad840 iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7c64fa7f iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7d6eae17 iscsit_handle_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x84623131 iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8b456560 iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x94498c1a iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x94b463b0 iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9bce9442 iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa8a2a5f9 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb8e19514 iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc21a5752 iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc272e527 iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc43d9c34 iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xcfd1eb71 iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd8bf4a20 iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xdb686cf6 iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xdcd315d5 iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xdee5298f iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe7099819 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x087a50d7 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x0a79bd17 spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x10382d73 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x10936d90 sbc_execute_unmap +EXPORT_SYMBOL drivers/target/target_core_mod 0x14320bb5 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x1d17bd46 fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x1d666b71 target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x21b02257 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x220c6f85 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x3488550e target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x39d13034 target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x3a5f6cb4 target_get_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x3cef678e spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x40310fe7 spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0x404998f1 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x44570a20 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x4c6282c0 target_setup_cmd_from_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x4f2cb52d target_sess_cmd_list_set_waiting +EXPORT_SYMBOL drivers/target/target_core_mod 0x55eee021 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x58291074 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x5b468a96 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x6e8f7fd1 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x6eb567bf iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x706c5890 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x71b83bec transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x72d51394 target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x74301cae sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x760c8450 core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7e05b369 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x7e0e0a4d transport_init_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x83df8a87 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x861b4d93 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x872450f3 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x8ba7cc56 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x9085b448 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x930c91d9 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x93905e6f spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x9693b9e8 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x9c0df202 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x9d4fde47 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xa01a7a12 target_put_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xa89c2665 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0xb057a26a transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xb07b34bb core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xb469c37a transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0xb4779e56 sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xbd8b2bdc transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xc1d18bb5 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xc503f284 target_submit_cmd_map_sgls +EXPORT_SYMBOL drivers/target/target_core_mod 0xcbd8b2f3 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0xcf72655f sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0xcfee97fc core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xd21cccf2 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xd47c5434 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xd732e5ab transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0xd992edc6 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0xda2298c7 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xdcc3b0db __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xddbdf098 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xdde82d88 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xdf6a4582 target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0xe06e832b target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xe3955d5b core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xe468b45d target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0xe7beb5ca transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0xeafc3d14 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf21ff50f sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0xf8ace2a5 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xf9371aca transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xfafa857b iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xfbc4be22 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0x7212a309 usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0x7f2df931 unregister_gadget_item +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x05bd172b gether_set_gadget +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x16136308 gether_connect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x2c7f0d7a gether_get_host_addr_cdc +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x32dd64c1 gether_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x4bd96c33 gether_setup_name +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x54b14169 gether_set_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x57d7ed0e gether_get_host_addr_u8 +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x7f2bd89d gether_set_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8878cfa6 gether_cleanup +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xb59667d5 gether_register_netdev +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xc35b65ef gether_get_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xcfbee5a0 gether_setup_name_default +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xd80aa44a gether_set_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xdaffc7ff gether_get_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xf5fcdcc9 gether_get_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xffc4baf0 gether_get_ifname +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x135c3e8b rndis_add_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3a6d4f22 rndis_free_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3ca38e3a rndis_signal_connect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x4ca90996 rndis_signal_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x5d22b406 rndis_register +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x785d494b rndis_msg_parser +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x81d1b0c9 rndis_set_param_dev +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x840dd143 rndis_deregister +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x988ad2a2 rndis_set_param_vendor +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x9acf72e4 rndis_set_param_medium +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xa90054ee rndis_uninit +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xb971ebca rndis_get_next_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xccce10ec rndis_rm_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xd2fe47b1 rndis_set_host_mac +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x06c9c284 fsg_store_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x119d0e10 fsg_show_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x15d1eed5 fsg_show_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1710b539 fsg_fs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1b1cc3af store_cdrom_address +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x2933ee1d fsg_ss_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x398778e1 fsg_ss_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x3d75a1f4 fsg_store_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x423845e4 fsg_ss_bulk_in_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x4826731b fsg_store_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x49b09e67 fsg_show_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x5371c294 fsg_lun_fsync_sub +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x56344daf fsg_hs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x857b6dc2 fsg_hs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x95cffb3e fsg_hs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5cae92f fsg_ss_bulk_out_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5f99b69 fsg_fs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa7e14994 fsg_store_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb52ba28a fsg_intf_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb54d0d95 fsg_fs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xcbf8b5ac fsg_store_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xcc5bfde5 fsg_show_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xce491422 fsg_lun_close +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xe99a3db2 fsg_show_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf36ee627 fsg_lun_open +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf4efc0c8 fsg_ss_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_rndis 0xcb3a1397 rndis_borrow_net +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x3e905933 sl811h_driver +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x075eaa12 usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x07c7361b usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1fe1c64d usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2223decf usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2d355c86 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x470f6f62 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x532d05e2 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x61ac0119 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x93b7113b usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x971c73fc usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xbbf9ca67 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcd1c9c80 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xfb877db5 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x686a2d57 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xe1e543ca usb_serial_suspend +EXPORT_SYMBOL drivers/vhost/vringh 0x0dda8c5a vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1f063017 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x2e91ca97 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x367ce26a vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x36dfce73 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3eaf442a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3fa42e4f vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5dafbd4e vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x66af098b vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x6d0e7948 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7bda5e6d vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x821e9390 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0xaf8e4a0e vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xafb47dae vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc884d704 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc8bee0a4 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xd11d2709 vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xda4ea4cc vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xfc7dcad2 vringh_getdesc_user +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x351c8846 devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x8afeb813 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x8c46b3c4 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xcec4894d devm_lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xe8921ab9 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/macmodes 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x340b78fa mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x38904892 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xd00c19a8 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xe2353b21 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x4d4f697c matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x903be86a DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xc31440db matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xc59f7ff7 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x47ccb011 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x2bfeed54 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x022f7740 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x8a9831c3 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x963cf59a matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xa84ec20d matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x36775ed8 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x395b861d matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x3a21c38c matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x69f5158b matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xa55dda77 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xef883bbb matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xfe7eccdf matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0x04e2bfad mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x3c4683e4 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xa70ec602 video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1f1cc294 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x4fec2ed0 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x61be45a3 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x6e4adb1e svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x838abbf8 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x8de63fb4 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x9e6a6729 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xc4270970 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xc7350b73 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf2db5956 svga_match_format +EXPORT_SYMBOL drivers/video/syscopyarea 0x208c53ca sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0xc9d69f2e sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x524f628b sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/vme/vme 0x02d64893 vme_dma_list_exec +EXPORT_SYMBOL drivers/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/vme/vme 0x20df5a3d vme_dma_pci_attribute +EXPORT_SYMBOL drivers/vme/vme 0x2e29b5b2 vme_master_request +EXPORT_SYMBOL drivers/vme/vme 0x2eb72181 vme_dma_list_add +EXPORT_SYMBOL drivers/vme/vme 0x35e0ab3a vme_unregister_driver +EXPORT_SYMBOL drivers/vme/vme 0x3e95083c vme_slave_get +EXPORT_SYMBOL drivers/vme/vme 0x41862ad4 vme_alloc_consistent +EXPORT_SYMBOL drivers/vme/vme 0x426a4994 vme_dma_request +EXPORT_SYMBOL drivers/vme/vme 0x46649cd1 vme_lm_set +EXPORT_SYMBOL drivers/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/vme/vme 0x4baf35a7 vme_master_get +EXPORT_SYMBOL drivers/vme/vme 0x521cfeaa vme_slot_get +EXPORT_SYMBOL drivers/vme/vme 0x535c8308 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/vme/vme 0x5805a091 vme_register_driver +EXPORT_SYMBOL drivers/vme/vme 0x59444155 vme_register_bridge +EXPORT_SYMBOL drivers/vme/vme 0x5aff4177 vme_lm_get +EXPORT_SYMBOL drivers/vme/vme 0x68b4d794 vme_slave_request +EXPORT_SYMBOL drivers/vme/vme 0x69beecf0 vme_bus_type +EXPORT_SYMBOL drivers/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/vme/vme 0x7fde2edb vme_master_read +EXPORT_SYMBOL drivers/vme/vme 0x84701df0 vme_irq_generate +EXPORT_SYMBOL drivers/vme/vme 0x90695906 vme_free_consistent +EXPORT_SYMBOL drivers/vme/vme 0x90fcd331 vme_lm_request +EXPORT_SYMBOL drivers/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/vme/vme 0xa31bdf07 vme_master_set +EXPORT_SYMBOL drivers/vme/vme 0xcb0124c8 vme_irq_request +EXPORT_SYMBOL drivers/vme/vme 0xd490071b vme_irq_free +EXPORT_SYMBOL drivers/vme/vme 0xd797b9a5 vme_master_write +EXPORT_SYMBOL drivers/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/vme/vme 0xe693a6ce vme_get_size +EXPORT_SYMBOL drivers/vme/vme 0xec665567 vme_irq_handler +EXPORT_SYMBOL drivers/vme/vme 0xefd1624a vme_dma_free_attribute +EXPORT_SYMBOL drivers/vme/vme 0xf315a032 vme_new_dma_list +EXPORT_SYMBOL drivers/vme/vme 0xf5a10e25 vme_slave_set +EXPORT_SYMBOL drivers/vme/vme 0xfacd8e72 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/vme/vme 0xfd8c7eec vme_dma_list_free +EXPORT_SYMBOL drivers/vme/vme 0xfd93dbce vme_unregister_bridge +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x0e3e12c3 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x2c11afbd w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xaa0cea1f w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xdf33d956 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x0ec97810 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x55ef1a2b w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x6eccd76b w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0xa30d6bf8 w1_ds2781_io +EXPORT_SYMBOL drivers/w1/wire 0x341ed567 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x555d9625 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xc0dcb0fa w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xc9d68d39 w1_remove_master_device +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xb5f20875 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xc4f657bf iTCO_vendor_pre_stop +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xdc6effc9 iTCO_vendor_pre_start +EXPORT_SYMBOL fs/btrfs/btrfs 0x27476846 ulist_reinit +EXPORT_SYMBOL fs/btrfs/btrfs 0x41e6a9d2 ulist_init +EXPORT_SYMBOL fs/btrfs/btrfs 0x7e2ee765 ulist_free +EXPORT_SYMBOL fs/btrfs/btrfs 0xa2eec2e8 ulist_fini +EXPORT_SYMBOL fs/btrfs/btrfs 0xb1320bc8 ulist_add +EXPORT_SYMBOL fs/btrfs/btrfs 0xb42289d2 ulist_alloc +EXPORT_SYMBOL fs/btrfs/btrfs 0xc2c745db ulist_next +EXPORT_SYMBOL fs/configfs/configfs 0x16347ad5 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x1b90fe8e configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x1d03025e configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x26078fef config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x317861bf configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x3c0c9875 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x54d27089 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x68c9744d config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x7893f263 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x9bd677b5 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xfa4f6701 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xfa50cd70 config_group_find_item +EXPORT_SYMBOL fs/exofs/libore 0x1f8c1a2f ore_write +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x29e4b8b1 ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0x33c55b18 ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0x4527e170 ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x7d0bbc54 ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0x81a13aa1 ore_create +EXPORT_SYMBOL fs/exofs/libore 0x92a6e87f ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0x9dfeb205 ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xaf665f71 extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0xded38830 ore_read +EXPORT_SYMBOL fs/exofs/libore 0xf219f9d6 ore_remove +EXPORT_SYMBOL fs/fscache/fscache 0x1507ec8b __fscache_check_consistency +EXPORT_SYMBOL fs/fscache/fscache 0x19569dbc fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x2cb6619b __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x2ea14e05 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x3235f94e __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x4650e872 __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x468b4ff2 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x48baf1ba __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x496a6a2f fscache_op_complete +EXPORT_SYMBOL fs/fscache/fscache 0x540e2c95 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x57a2d555 fscache_object_destroy +EXPORT_SYMBOL fs/fscache/fscache 0x57cb4bbc __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x67e526e4 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x700f38f0 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x72789e6e __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x80a21a6e __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x934ac809 fscache_object_init +EXPORT_SYMBOL fs/fscache/fscache 0x9650b707 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x9abc925e __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x9f4ae472 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0xa044457f __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xa600e23a __fscache_disable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xa62621e7 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xa886e649 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0xabcd8e77 __fscache_enable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xb1b6d19c __fscache_readpages_cancel +EXPORT_SYMBOL fs/fscache/fscache 0xb66126a3 __fscache_wait_on_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0xba222c18 fscache_mark_page_cached +EXPORT_SYMBOL fs/fscache/fscache 0xbed64197 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xbfd6a9cb __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0xc8282ace __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xd0f77bd5 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xd395fa37 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0xdf6f5327 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xe33ce596 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xe89aee85 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xf0a518de __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xa0f4b528 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0xb25b2957 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0xe13337f0 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x342f3ff9 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x77bed501 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x8e4cc481 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xb2f71e6a qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xe059ea05 qtree_release_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0x41248eaf crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x1097f090 lc_try_lock +EXPORT_SYMBOL lib/lru_cache 0x1611f01c lc_get_cumulative +EXPORT_SYMBOL lib/lru_cache 0x1ae95c1a lc_get +EXPORT_SYMBOL lib/lru_cache 0x22bdae4d lc_committed +EXPORT_SYMBOL lib/lru_cache 0x2324a210 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x245f4bed lc_is_used +EXPORT_SYMBOL lib/lru_cache 0x72f8100b lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x741d6b5d lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x94933238 lc_put +EXPORT_SYMBOL lib/lru_cache 0x9c797a6a lc_destroy +EXPORT_SYMBOL lib/lru_cache 0xa35c2d4d lc_create +EXPORT_SYMBOL lib/lru_cache 0xa8226c6b lc_set +EXPORT_SYMBOL lib/lru_cache 0xc011064b lc_reset +EXPORT_SYMBOL lib/lru_cache 0xcee796cb lc_find +EXPORT_SYMBOL lib/lru_cache 0xd0afa00c lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0xd37ef4a2 lc_del +EXPORT_SYMBOL lib/lru_cache 0xfabb5c85 lc_element_by_index +EXPORT_SYMBOL lib/lz4/lz4_compress 0xcbc5d521 lz4_compress +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x26c3aa22 lz4hc_compress +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xb0d904b7 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/raid6/raid6_pq 0xd9e91f83 raid6_vgfmul +EXPORT_SYMBOL net/802/p8022 0x594341f9 register_8022_client +EXPORT_SYMBOL net/802/p8022 0xf61a2161 unregister_8022_client +EXPORT_SYMBOL net/802/p8023 0xaacb9d70 make_8023_client +EXPORT_SYMBOL net/802/p8023 0xbbad2b00 destroy_8023_client +EXPORT_SYMBOL net/802/psnap 0x7ce9f93d register_snap_client +EXPORT_SYMBOL net/802/psnap 0xb2f0a712 unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x030b508e p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x0855fe3f p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x0cb65afc p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x171b6cd3 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x1c662e8e p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x219eb869 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x2260b843 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x2956865c p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x2d2d2ce1 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x326c4bb7 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3d69c4f9 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x40def802 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x44d2c2c0 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x4cdc04bf p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x5145cb39 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x52edbe53 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x585bb763 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x59212da3 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x617df323 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x625a9065 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x636b52c1 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x66eb3f84 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x6bce1e79 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x70caa2c6 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x754bbe9f p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x7a515cef p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x7d3d5061 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x8190f0dc v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x8d24ada7 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x8d7b8ba3 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0xa17d1087 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xb03e6345 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xb070c6ca p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0xb1adf342 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xc3a2afd2 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xc418b52e p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xcb75f50e p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xcf5bcbfe p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0xdf5db371 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xeb1b9e2b v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xf2ab2cea p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xf86e0540 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0xfabea793 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x1373988f alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x6857b51c aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x7e03eaed atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0xc71460b5 atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x23c9f991 atm_charge +EXPORT_SYMBOL net/atm/atm 0x24443dc5 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x2e6f5b8b atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x4a4fb75b atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x7b134d13 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x7fb99b93 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x8b0d410f vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x93136f41 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0x93a8c6b3 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xbe96d74d atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xbedeed59 vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0xceda61f0 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xd3de33ff atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0xd86a58ad register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x3afee63e ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x3f9bdc27 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x4dedcfda ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x532553f2 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x6c30637e ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xa54306f7 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0xbbbcbfd1 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xcb64dbcb ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xe9bc4a0e ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xf6947b25 ax25_listen_release +EXPORT_SYMBOL net/bluetooth/bluetooth 0x03378f7e l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0x073a4e4a hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0e4613d8 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0f101a46 __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x14fa3776 __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x20c5f049 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x33891631 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x33ff96dd bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3ddf3e3d bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3f52c78c bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x46ca1744 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f62f7c6 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5a24c81a hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6507ca41 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x697a964d hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6e89d91c bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c640527 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x94fcc9ee hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x962aebc1 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa021acdc hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa03292e5 bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa5cf00ce l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa7f6e805 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaa7b51a4 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xac05e993 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb512f5cf bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb61a0c3b bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0xba1f9e4b bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc1c4b6ff l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xceae5d3f l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd6c72f9f hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd93713e5 l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0xda87b3b7 bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe0b89c61 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe84c6730 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe85f908c hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xeb79160e bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0xedd0de31 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf176667e bt_sock_reclassify_lock +EXPORT_SYMBOL net/bridge/bridge 0xc69cb506 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x31c8097a ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x6692415b ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xdf5af6f6 ebt_register_table +EXPORT_SYMBOL net/caif/caif 0x12dd5f00 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x38701a7c cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x6a44fc70 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x745948e0 caif_enroll_dev +EXPORT_SYMBOL net/caif/caif 0x81c223dd caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x8d7b8fd7 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x966d7de2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xa8ed1068 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/can/can 0x0bb42f1c can_proto_register +EXPORT_SYMBOL net/can/can 0x250d2659 can_ioctl +EXPORT_SYMBOL net/can/can 0x5856f8e2 can_proto_unregister +EXPORT_SYMBOL net/can/can 0x6de1d092 can_send +EXPORT_SYMBOL net/can/can 0x9d7bdc14 can_rx_register +EXPORT_SYMBOL net/can/can 0xd982ef64 can_rx_unregister +EXPORT_SYMBOL net/ceph/libceph 0x00ad1d5e ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0df66a88 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x0fadf687 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x10a992ad ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x11517821 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0x122753d7 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x1475bf0d ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1bcaf421 osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x20083a7e ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x20d151cb ceph_osdc_setup +EXPORT_SYMBOL net/ceph/libceph 0x253e5cb2 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x2b5085e8 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x3267823b ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x3353e4da osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x339760dd __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x34a64292 ceph_messenger_init +EXPORT_SYMBOL net/ceph/libceph 0x381e393d ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x38618344 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3af12cfd ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x3df0ec7c ceph_calc_ceph_pg +EXPORT_SYMBOL net/ceph/libceph 0x3f688151 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x3fa9b6aa ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x4205ffd7 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x43efd647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x47d50f70 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x51824526 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x5266d9cd ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x538bfab9 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x55d081a6 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5a876f1a osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0x5ae9070f ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x5c96bad7 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x61ecb315 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x62c87446 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x69a55630 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x6b2e3bcd ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x6c5d5ac1 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x77267895 osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x8777fe0b ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x8f14d504 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x9054f766 osd_req_op_cls_response_data +EXPORT_SYMBOL net/ceph/libceph 0x981c3a2b ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x99e2f39e osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x99e36571 ceph_osdc_cleanup +EXPORT_SYMBOL net/ceph/libceph 0x9c542e14 ceph_auth_update_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa08458e5 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xa276377c ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xa8678f93 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0xaac1862d ceph_auth_create_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xae3515ba ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb0071416 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0xb0a75b49 ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xb16b0d6f osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xb201171b ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb8d0a353 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0xbe1b8c3b osd_req_op_watch_init +EXPORT_SYMBOL net/ceph/libceph 0xbe7e1348 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0xbf1e9933 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0xc2835669 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc55de604 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xc74ce646 osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xccb92c05 ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0xcef524b1 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd3535517 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0xd8523345 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0xd9078bc2 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xda762093 ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0xdcd0b452 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xde227246 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0xe47280df ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xe5e034b6 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0xe7bbff4e ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0xe82c9c32 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0xe9805959 ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0xeabbc8fc osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0xed617a82 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0xede47c30 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0xf0b91ddc ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xf174c633 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0xf942d196 osd_req_op_cls_init +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x8691d14f dccp_syn_ack_timeout +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1607813f ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2872569d ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x35ea2bc1 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4a391689 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5274b33b ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x65ee37db wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x75636b24 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7d1f636a ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x991f9340 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbf55c0ae wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc941de82 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd99a8f57 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xfcedbba8 wpan_phy_free +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x40f367d6 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x6ad12527 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xbc98c4b7 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x25a6fa3b ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x4a49f6cd ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x77330ba2 ipt_do_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x2f0c63fe xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0x9d65bdd9 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x4bd78057 ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x84a34047 ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x2ab65cbe ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x810a27c3 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xd614ddf6 ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x3e708ab7 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x869d9d4a xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x06e3f7f7 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x60ec50a0 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x08fa39d2 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x10550030 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2cf05c56 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x650f7d30 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6d511ed0 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9ddb7493 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb9b7b6e7 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe5858ab0 ircomm_close +EXPORT_SYMBOL net/irda/irda 0x01dbeb0e irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x09bec26f irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x0bab6037 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x1448e588 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x15a0e31a irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x1fc703f0 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x1ffd549b iriap_close +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x22ce033a async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x23a2eee7 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x242ba473 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x2f892d0f irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x33cbe2c6 proc_irda +EXPORT_SYMBOL net/irda/irda 0x359de411 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x392aaec0 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x3b0a2ab6 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x3b9bdefe irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x3c0be9cb irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x407daf14 iriap_open +EXPORT_SYMBOL net/irda/irda 0x428321fa hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x48d17824 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x4ac314a8 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x4c1cb488 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x5221a19a irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x62acf28c irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x648c7478 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x68589013 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7d54adaf irias_new_object +EXPORT_SYMBOL net/irda/irda 0x7ff509a2 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0x80fcae32 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x841604c3 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x85aff745 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x8cd99be0 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9e326eb3 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xa370c681 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xb23efbea irlap_open +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc0bee29c hashbin_new +EXPORT_SYMBOL net/irda/irda 0xcca30c30 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd7ea2418 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0xda786983 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xdd2dec85 irlap_close +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xecfe0216 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf13fe111 irlmp_close_lsap +EXPORT_SYMBOL net/l2tp/l2tp_core 0xec74f049 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x0b4f3f34 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x1d8c01e6 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x53375cc4 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x5e7bf318 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x77544ef6 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x874a4803 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x9096d01c lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xcc56a4bc lapb_connect_request +EXPORT_SYMBOL net/llc/llc 0x1a80eea4 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x8d0029a1 llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0x95c2f3bd llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x999b778d llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0xc01aa145 llc_sap_find +EXPORT_SYMBOL net/llc/llc 0xd629316a llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0xde31ca66 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0xed4b0a13 llc_sap_open +EXPORT_SYMBOL net/mac80211/mac80211 0x009376f2 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x072c376f ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x0a69dddb wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x0b48d6e2 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x0e52ee65 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x0e6f329f ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x1b2e788b ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0x21a2ae71 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x23ec2f52 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x2cc82b90 ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x2e04d062 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x32d48fba ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x343cc644 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x368f3917 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x418b0de2 ieee80211_csa_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x4d53d266 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x4ff0bbc9 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x5357b507 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x545951cd ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x570e7050 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x5802cf0c ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x5964a079 ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x619c9f9f ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x64e04036 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x66eb47fc rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x671045a3 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x6730cb0b ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0x6a77325e ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x6ae4e333 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x6f3a7038 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x70429ad1 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x784802f9 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0x7b43bce6 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x8269a279 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x85ecfb01 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x865297c3 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x869027fa ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x86b7b6a9 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x8a5d25dd ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x8f8520c3 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x98ae4a51 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x9966a0d3 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x99f1c50f ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x9c5e6334 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0x9f5619b7 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xa1fc36c4 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xad89f413 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xb36c4623 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xb40fa7c4 ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0xb4bcd3ce ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xb761082f ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xbe963eb6 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xc0ea8f7a ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xcb95786f ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xcbd677ef ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xcccafe99 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xd0774970 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0xd21f5995 rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0xd7646135 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xdc19dca2 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xdf9520ab ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xe2c17ba8 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0xe92b14d2 ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0xf239a03c ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xf2bc641c ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0xf3884574 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xf395de03 ieee80211_aes_cmac_calculate_k1_k2 +EXPORT_SYMBOL net/mac80211/mac80211 0xf439783b __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xfc0d2e93 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac802154/mac802154 0x10166419 ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0x5df1c0e2 ieee802154_register_device +EXPORT_SYMBOL net/mac802154/mac802154 0x6ad054b6 ieee802154_alloc_device +EXPORT_SYMBOL net/mac802154/mac802154 0x74125886 ieee802154_unregister_device +EXPORT_SYMBOL net/mac802154/mac802154 0xb315963e ieee802154_free_device +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x08fcd942 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0b9e8fab register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x444745b9 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x67e58612 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x72d036f1 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9b8470f4 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa2baead9 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb6803b96 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc7090097 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xcfa5e971 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd3785804 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd7680425 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe1d59051 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfdf5a1d2 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x0798a346 __nf_ct_ext_add_length +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x9eeb025b nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xcfbf8cad __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x827cc6a1 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xdf6a0c20 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/nf_nat 0x305f486a __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x3838a8a7 nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0x4a733dc4 nf_xfrm_me_harder +EXPORT_SYMBOL net/netfilter/nf_nat 0x85cd4fb1 nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0x8bd7d0a7 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x9ec4c3b8 nf_nat_used_tuple +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x0fcd3509 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x1d819070 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x1e20b609 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x281fcd90 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x35d6aca7 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x3ff5fbdc xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x4b39b160 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x7a6d2416 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x9c2f42e4 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xb8a38479 xt_register_target +EXPORT_SYMBOL net/nfc/hci/hci 0x0291eda7 nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x19a5d476 nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0x43028a27 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x55d917e2 nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x5d05dcc0 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x631bfe90 nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0x6397ea3c nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x75910d70 nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0x77472a92 nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x7cd4fd7d nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0x894a0547 nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0x8d85b23b nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0xbbc46f2a nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0xbca0b4fd nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xc3469cd7 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0xc6d06be8 nfc_hci_send_response +EXPORT_SYMBOL net/nfc/hci/hci 0xc6d96e63 nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0xdb163e45 nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0xe01db7cf nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0xf93adf73 nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/nci/nci 0x2b3a5244 nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x5d0a2a65 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0x989d4304 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xc4a64f12 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0xd82bba2c nci_free_device +EXPORT_SYMBOL net/nfc/nfc 0x0e8de7b9 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x12d3c2f3 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x1b908094 nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0x2cbd9b93 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x307b5abf nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x334983cc nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x34a02e50 nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x36336bf1 nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0x3f36c7a0 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0x4cd9ef20 nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0x4d65b195 nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0x5027cefb nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x5af23150 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x629d5d25 nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0x73f6dca9 nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0x7472d0ca nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0xa30f085c nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0xb39c5b1b nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0xddf82b55 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0xf9dabaad nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc_digital 0x2b6cc3b4 nfc_digital_unregister_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xa501a593 nfc_digital_free_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xd7c76143 nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xde222e6d nfc_digital_register_device +EXPORT_SYMBOL net/phonet/phonet 0x11acbcd8 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x14f822c2 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x4d8213b3 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x6d29e63e pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x889bbb2a pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x8b4861b2 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x8d0f1482 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xd2722b17 phonet_stream_ops +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x02ec4e01 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x091c7763 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0e87ef4c rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x419caad0 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5dc740a6 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x673bcece rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6d304351 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x70b7ed45 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x73a6f1c2 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8cd28efb rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa189ae1c key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa64dd19d rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf04e1ef8 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf160fbde rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfbd73ee8 rxrpc_get_server_data_key +EXPORT_SYMBOL net/sctp/sctp 0xb4929fd0 sctp_do_peeloff +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x213afd04 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x70396040 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xadd0d851 gss_mech_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0xca3f6b05 svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0x0debc5f6 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0x765d0556 wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x08036f66 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x1531c5a2 cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x160be3bb cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x176c2ec0 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19e03378 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x1d7fd1ed cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x229e80bc wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x239c1f7f __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x271bc83a wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x2897edf7 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x2dbf6aa9 cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x307fc716 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x406a8302 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x42ceec42 cfg80211_inform_bss_width_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x46377292 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x49082c8c cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x499d202a cfg80211_report_obss_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x49e4f5ca cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x4b640087 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x4c3b5878 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x4c40b2fb ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x4f10dc0c cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0x52b7c670 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x549ae50f ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x5a15abf0 cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0x5d3901e6 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x65fda77f cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x67877f65 cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x69083e5d cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6d6cb9ad ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x6ea26155 cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x6ed51fa8 cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x70e54e44 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x74a40388 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x78fee6a9 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x7944e760 cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0x798d9e07 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x7b36377f cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x84c50fcb cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x871bf28f cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x87e4e9a5 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x8ea67e2a cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x91c03099 cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9a36f525 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x9b205e69 cfg80211_inform_bss_width +EXPORT_SYMBOL net/wireless/cfg80211 0xa1425906 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa19e7452 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xa482701c cfg80211_roamed_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xa92ec333 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xb41f36ef cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0xb539662d cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xc15c8611 cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0xc208dec6 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xc546a43f ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc7369bf9 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xc9423c4d ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0xcc0972d9 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xcc0cba57 cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0xcc83e1fb cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xcf618a57 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0xd2eaf9ac cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0xd89a6a5e cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0xdaa6d0dd cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xdb64c3a7 cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xdba126c1 reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0xe27ba1e1 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xe2a21f65 cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xe40f9d87 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xe92e3287 cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0xeb8383f8 cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0xee42db3c cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xee696eda cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xef0a2186 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xf0c5605f freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xf40f1ac0 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xf935021e cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/cfg80211 0xffea434f cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x425878f0 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x4b51688f lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x5842e9e8 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x647c4377 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xa571c484 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe69ad87b lib80211_crypt_info_init +EXPORT_SYMBOL sound/ac97_bus 0x635dfe2f ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6c48be3a snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x8940197e snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xbf4e564d snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xd0360b17 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xd1907c3c snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xfe6db1d0 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2b51b084 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x350963b4 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7f62d029 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x83914b9a snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x92ee6bb0 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x9e7d3f0f snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbc141dfc snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf2bf1549 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x9c6bb3f6 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x08d1b69e snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x10cd9e10 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x18015d76 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x1827096a snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x19a32061 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x27a91f23 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x2aaea2ea snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x2e95e969 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x34300c91 snd_cards +EXPORT_SYMBOL sound/core/snd 0x35d90441 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x39cb71f2 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x3e2282dc snd_card_unref +EXPORT_SYMBOL sound/core/snd 0x41684046 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4a8864f4 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x4b015768 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x4ccfe47a snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x4d0058d2 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x52a7bf38 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x54271689 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x5bfb4555 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x650d9ea5 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x6a6dcf97 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x7081cd4f snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x7182a246 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x7fc54cbd snd_device_new +EXPORT_SYMBOL sound/core/snd 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x86a6907c snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x892c58f0 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x89e76c8d snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x8b5602a1 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x91ce3464 snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0x93943cef snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x96da1381 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0x9fa06a6a snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa8469100 snd_card_register +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb90b9ad7 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0xbc1f331c snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0xbf98f67a snd_card_free +EXPORT_SYMBOL sound/core/snd 0xc2d6b614 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xc41ba63d snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xc822b8d4 snd_info_register +EXPORT_SYMBOL sound/core/snd 0xc9927f6e snd_card_create +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xd156f172 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0xdaa5f570 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0xeb8d6212 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xf3dc4fbd snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0xf85228fa snd_device_register +EXPORT_SYMBOL sound/core/snd-hwdep 0xef98f140 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x1b65dee5 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x1c799edd snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x20424e2a snd_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x41c3ae74 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xb12a7a4b snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xf7f8888b snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x0b81193f snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x0c11ba21 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x0c3848c4 snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x0dd1b107 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x1034bcdc snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x1600c2d1 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x1816bcb0 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x1b5601c4 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1f9f41ac snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x20726528 snd_pcm_new_internal +EXPORT_SYMBOL sound/core/snd-pcm 0x2de82353 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x344bd7cd snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x44880aeb snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x450fe960 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x454f2b43 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x47a1acfb snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x5190b16e snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x58c83994 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x59f5c098 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x60b7ae86 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x628d38a1 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x63e1393f snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x69bdd1cb snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x6d162547 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x6d1ba5d6 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x6e5d7b0a snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x6eafbc72 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x73ed9b63 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x8201dffa snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x83486018 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x83811e7d snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0x89010a5c snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x89f0a1d1 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x94098ff8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0x94973ee4 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa6fdce2e snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0xa7e2769a snd_pcm_debug_name +EXPORT_SYMBOL sound/core/snd-pcm 0xa9adc229 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xb4b63ba0 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0xb6a7a003 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc598bbd7 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xcd721dd9 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0xce865afb snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0xe365d682 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xed176794 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL sound/core/snd-pcm 0xff76dd28 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-rawmidi 0x011e2b4d snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0760696e snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1b971c61 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x28868f52 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2e4ef523 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x434561dd snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5e7659d2 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x611c8959 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x88a25f67 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9fb27bc6 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa3bee25d snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb082fae1 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb10bebea snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb742c624 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb7be05b9 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc0e8b610 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xcc5459a7 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-timer 0x097e53fd snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x1b19a9b3 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x6070a13b snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x6b89fb1b snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x72fdae39 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x8261ef76 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x8f41ded9 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x9b5d0a89 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0xc0129ca4 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xc1587d3e snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0xd6acb41e snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xec91894d snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0xedfc8887 snd_timer_notify +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x33f232c4 snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x01ffc108 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x247aab21 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x32003d35 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x33019d3d snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x78a12334 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8b2eed7b snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa00501a7 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xdbf26211 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe0a83719 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x10e6fa20 snd_opl4_write_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x1ef0ce08 snd_opl4_read_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x80456cd9 snd_opl4_create +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0xf93a0793 snd_opl4_read +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0xfbbaee1c snd_opl4_write +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x07d973e2 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x14f04c27 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x53bf8ea6 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6ec22ba6 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7f43ca5e snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x901f33f0 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xac26bf24 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xacff24ae snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb9903a00 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x04dcc4a8 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0e3b6494 cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1724d550 amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x20254e45 amdtp_syt_intervals +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x211b2bff iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2a5ace5f snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2dc6524b fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x32d8d2eb cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x38617169 amdtp_out_stream_set_parameters +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3aae7bfe fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3ce82737 iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x468f0edc cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x52903fba cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x52a8c9c4 amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5ddc2a46 fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x687ccd28 amdtp_out_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6b385716 cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x71eeaf94 amdtp_out_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7376b045 amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fc11fcd amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x80fef802 fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa01cf02a amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xbb1e9842 amdtp_out_stream_pcm_pointer +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd0400cb2 amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd65f8549 amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xea7de6c2 fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf5e21d13 fcp_avc_transaction +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x0023d263 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x3b9a1fc1 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x82e1cf3b snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x9ed22885 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xac3acae0 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xdfb0b9fa snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x3dfaf191 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x4355e793 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6a792771 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x85fdcb50 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x8b1877a2 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xf6115ddf snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x0abcb3d3 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x226a3a50 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x686c8d7a snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xc1eb16f6 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x164931fd snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xd053f2ba snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x1a05fa72 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x95c63660 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xb68daf38 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xc7a4dfb3 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xd4b7405a snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-i2c 0x19400b7a snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x54327d72 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x6d10d242 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xa625545a snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xb0778730 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0xec67497c snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0x0cd135bb snd_tea6330t_detect +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xfab0e8a8 snd_tea6330t_update_mixer +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x20b3a75c snd_es1688_create +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x4eb78e2e snd_es1688_reset +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xacebcdfd snd_es1688_mixer_write +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xb0934cbf snd_es1688_mixer +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xc0a35fc7 snd_es1688_pcm +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x05043a2a snd_gf1_stop_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1405530d snd_gf1_delay +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1a0f189d snd_gf1_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1c1ce117 snd_gus_interrupt +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x24976865 snd_gf1_i_write8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x2e8794dc snd_gf1_free_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x3138dd49 snd_gf1_mem_lock +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x44b7f230 snd_gus_initialize +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x45a4ec9f snd_gf1_i_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x46db8d67 snd_gf1_lvol_to_gvol_raw +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x4d938230 snd_gf1_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x514f5c0e snd_gus_dram_write +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x5dcc54f5 snd_gus_create +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x601ae581 snd_gf1_i_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x7725d306 snd_gf1_write_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x7e4f18d3 snd_gf1_new_mixer +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x8ea81df8 snd_gus_dram_read +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x8fb38e7d snd_gf1_pcm_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x98a2741a snd_gf1_ctrl_stop +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xb14f006c snd_gf1_peek +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc43a5527 snd_gf1_atten_table +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc6509462 snd_gf1_rawmidi_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc8025b54 snd_gf1_translate_freq +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xd4e12544 snd_gf1_mem_alloc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xd99e6b72 snd_gus_use_dec +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xdb4154cb snd_gf1_poke +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xdd13d2b0 snd_gus_use_inc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xdd2a1916 snd_gf1_mem_free +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xdd459efc snd_gf1_alloc_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe487d406 snd_gf1_write16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe78ec347 snd_gf1_dram_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe8c4fcaf snd_gf1_mem_xfree +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xfd68db0d snd_gf1_write8 +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0e096be3 snd_msnd_init_queue +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x1a8c6c22 snd_msnd_disable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x3eacbf83 snd_msnd_DAPQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x40508255 snd_msndmix_force_recsrc +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x5057593c snd_msnd_dsp_halt +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x53bc6be4 snd_msnd_pcm +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x62594ded snd_msnd_upload_host +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x75026b24 snd_msndmidi_input_read +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x9982bdcb snd_msnd_send_dsp_cmd +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xa3a2c65f snd_msndmix_setup +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xe024e081 snd_msnd_enable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xe5422ca1 snd_msnd_send_word +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xefa4a492 snd_msndmix_new +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xfab308c7 snd_msnd_DARQ +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0xc0f04fb0 snd_aci_cmd +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0xc895fd11 snd_aci_get_aci +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2ae4bf8f snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2d2c03ab snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x33f94394 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3ef63ce6 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x55193d6c snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x93b4aeda snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x98124d54 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa68f5861 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe248f834 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xefbc83e9 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb16-csp 0x9648a2c3 snd_sb_csp_new +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x245fa0a9 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x4e551a38 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x60eb6669 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe0b3f690 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x14036f5d snd_sb8dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x1d7017b4 snd_sb8dsp_midi_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x80a41714 snd_sb8dsp_midi +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0xb1484e95 snd_sb8dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x00d20443 snd_emu8000_update_reverb_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x1779c3a9 snd_emu8000_poke +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x4142b8d4 snd_emu8000_update_chorus_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x433d0ded snd_emu8000_load_reverb_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x5da71d4a snd_emu8000_load_chorus_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x648bbb2b snd_emu8000_peek_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x66bbc0dd snd_emu8000_init_fm +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x9b8fa15c snd_emu8000_update_equalizer +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xafcc0d82 snd_emu8000_dma_chan +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xc6a60ede snd_emu8000_peek +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xeac840de snd_emu8000_poke_dw +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x00e4d335 snd_wss_chip_id +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x0a52023e snd_wss_mce_up +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x3df32e7c snd_wss_overrange +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x48a564a1 snd_wss_info_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x5d8a7a8f snd_wss_mixer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x600404f2 snd_cs4236_ext_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x68d92157 snd_wss_timer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x71a0240e snd_wss_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x7b202637 snd_wss_interrupt +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x84bf794d snd_wss_get_pcm_ops +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x89ed6632 snd_cs4236_ext_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x9394ef8e snd_wss_get_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x9433c603 snd_wss_mce_down +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x965075b2 snd_wss_create +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xa2dcee64 snd_wss_put_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xbe7c629a snd_wss_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xdb97a69f snd_wss_get_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xe1f48703 snd_wss_pcm +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xeadfa775 snd_wss_put_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xf9da3e06 snd_wss_info_single +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0d41a90f snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x22b55858 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x315cba9a snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4a9ae790 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6569b852 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7c4db9cb snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x840fc0b1 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x96bdaed8 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa5f7d48c snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa74840d2 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xab23c2e9 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xacbf58e6 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xcaa1b8b8 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd9db3d02 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe7787017 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf7b8e541 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfeed863a snd_ac97_suspend +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xc53c2999 hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1ddb9fd8 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x43bf468b snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4773ca93 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4fe45d01 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x53f99109 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x54abaf89 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x781838c9 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x7f755c89 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xcb63203b snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x3866b139 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x657269d2 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x939411c7 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0d163c72 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x150474b2 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x328dd7aa oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x33bb52d9 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3f3438a2 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x416a0465 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x530081a1 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7c02728f oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7c877ef6 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x88365de5 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9a5ad724 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9ad5c89c oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa7e57386 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb5a4ce88 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbc8bc027 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc8978c3d oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd849eb1a oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xddf5401c oxygen_pci_pm +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe316666d oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf7b561a2 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x0af1b307 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x77481fcc snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xd3287288 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xeb0dd76e snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xff4ac2a7 snd_trident_start_voice +EXPORT_SYMBOL sound/soundcore 0x934705f9 sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x07609ece snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x087e5e82 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x430be3ac snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x4403c2ab snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xb5297960 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xc61a3d86 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x3c02fea5 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x509da72d snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x6204493d snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x715f2d9b snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7f902904 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x85447530 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xa827c39d snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xe8e5c632 snd_util_mem_avail +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xea0d797d snd_usbmidi_create +EXPORT_SYMBOL vmlinux 0x00000000 __symbol_put +EXPORT_SYMBOL vmlinux 0x00000000 current_fs_time +EXPORT_SYMBOL vmlinux 0x00000000 d_tmpfile +EXPORT_SYMBOL vmlinux 0x00000000 do_sync_read +EXPORT_SYMBOL vmlinux 0x00000000 filp_close +EXPORT_SYMBOL vmlinux 0x00000000 finish_open +EXPORT_SYMBOL vmlinux 0x00000000 generic_getxattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_write_sync +EXPORT_SYMBOL vmlinux 0x00000000 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x00000000 in_group_p +EXPORT_SYMBOL vmlinux 0x00000000 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x00000000 iov_shorten +EXPORT_SYMBOL vmlinux 0x00000000 iterate_fd +EXPORT_SYMBOL vmlinux 0x00000000 ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 path_is_under +EXPORT_SYMBOL vmlinux 0x00000000 register_exec_domain +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout +EXPORT_SYMBOL vmlinux 0x00000000 sock_register +EXPORT_SYMBOL vmlinux 0x00000000 sys_close +EXPORT_SYMBOL vmlinux 0x00000000 task_nice +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x00000000 vm_brk +EXPORT_SYMBOL vmlinux 0x000a4055 tcp_close +EXPORT_SYMBOL vmlinux 0x00108dea d_make_root +EXPORT_SYMBOL vmlinux 0x001b5437 d_path +EXPORT_SYMBOL vmlinux 0x002acfac proto_register +EXPORT_SYMBOL vmlinux 0x0052ef8a dqput +EXPORT_SYMBOL vmlinux 0x006c6537 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00a5a701 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x00a82682 blk_mq_insert_request +EXPORT_SYMBOL vmlinux 0x00bf9f91 efi +EXPORT_SYMBOL vmlinux 0x00c00701 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0x00c52430 ida_simple_get +EXPORT_SYMBOL vmlinux 0x00cd8ca9 sock_release +EXPORT_SYMBOL vmlinux 0x00dc60d1 skb_make_writable +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00e8c11e bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x0101d5b1 ip_idents_reserve +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x012f0ea6 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x01444cd1 idr_replace +EXPORT_SYMBOL vmlinux 0x015aa315 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x01622439 netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0x016bfd5d release_firmware +EXPORT_SYMBOL vmlinux 0x016e511d mmc_erase +EXPORT_SYMBOL vmlinux 0x0174bd3a tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a1de89 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x01b0c69e bio_advance +EXPORT_SYMBOL vmlinux 0x01c7e8f3 generic_file_open +EXPORT_SYMBOL vmlinux 0x01d8ac52 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x01f947ac sock_create_kern +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x022b06ef dev_emerg +EXPORT_SYMBOL vmlinux 0x02316fb0 vfs_unlink +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x0252a542 mmc_read_bkops_status +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x0279fe23 nf_register_hook +EXPORT_SYMBOL vmlinux 0x028080a4 kobject_add +EXPORT_SYMBOL vmlinux 0x028c1d37 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x02906673 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x0299d3cb generic_write_end +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02ba8fd0 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x030c6f17 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x03240d92 write_inode_now +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x0375f862 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x037fa1fe submit_bio_wait +EXPORT_SYMBOL vmlinux 0x038acfde pci_pme_capable +EXPORT_SYMBOL vmlinux 0x0395c211 dput +EXPORT_SYMBOL vmlinux 0x03acb06e dm_register_target +EXPORT_SYMBOL vmlinux 0x03ad6d64 netdev_master_upper_dev_link_private +EXPORT_SYMBOL vmlinux 0x03b33f8a udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x03b580eb wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x03b5c161 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x03b647d1 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x0405eac8 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x041bded8 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x04218c66 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x0424b6bc dev_get_stats +EXPORT_SYMBOL vmlinux 0x042fba6c flush_signals +EXPORT_SYMBOL vmlinux 0x043e688c scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x043efa2c wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x04546596 __register_binfmt +EXPORT_SYMBOL vmlinux 0x0457ea96 agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x04695e4c seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x047f4b52 gen10g_restart_aneg +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048bd396 udplite_prot +EXPORT_SYMBOL vmlinux 0x04c92a92 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04f477b1 mount_nodev +EXPORT_SYMBOL vmlinux 0x04fa9b28 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x04fd48fe dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x04fdc7b3 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x04fe5c6c scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x04ffc787 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x050877b9 dmi_first_match +EXPORT_SYMBOL vmlinux 0x050ea728 bio_split +EXPORT_SYMBOL vmlinux 0x05174faa sk_common_release +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x0536f5bb bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x055f96c1 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x0593a99b init_timer_key +EXPORT_SYMBOL vmlinux 0x05b310e2 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x05b912f7 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x05cdb623 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0x05db1b1a tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x05e24475 fget_light +EXPORT_SYMBOL vmlinux 0x0601eb38 seq_vprintf +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x064bf2d0 netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0x0653228b alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x0662fab1 key_alloc +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x0680b6fb blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x06ad8dcd filp_open +EXPORT_SYMBOL vmlinux 0x06be133e net_dma_find_channel +EXPORT_SYMBOL vmlinux 0x06c0315d security_path_truncate +EXPORT_SYMBOL vmlinux 0x06c0dae5 __kernel_fpu_end +EXPORT_SYMBOL vmlinux 0x06c2f534 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x06d2f086 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x06e458e0 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x06f1760f kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x06f3026a input_set_capability +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x0732faaf bio_reset +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x07534421 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x075c262c generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x07608604 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x07612605 d_instantiate_no_diralias +EXPORT_SYMBOL vmlinux 0x0768181a acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x076e57e8 elv_add_request +EXPORT_SYMBOL vmlinux 0x078be620 lookup_bdev +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a04d52 ps2_end_command +EXPORT_SYMBOL vmlinux 0x07a53613 input_close_device +EXPORT_SYMBOL vmlinux 0x07a66cf2 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07aa3290 acpi_walk_resource_buffer +EXPORT_SYMBOL vmlinux 0x07abbacd ida_destroy +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07cfff05 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x07d50a24 csum_partial +EXPORT_SYMBOL vmlinux 0x07db2adb seq_write +EXPORT_SYMBOL vmlinux 0x07dc8db5 mmc_gpio_request_ro +EXPORT_SYMBOL vmlinux 0x07e87d39 blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0x07ea2173 bio_endio +EXPORT_SYMBOL vmlinux 0x07fdea50 iget_locked +EXPORT_SYMBOL vmlinux 0x08194361 block_read_full_page +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083172ab seq_path +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x084c779d scsi_free_command +EXPORT_SYMBOL vmlinux 0x086c79ad vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0x08748fb1 vfs_symlink +EXPORT_SYMBOL vmlinux 0x0893f7bc ipmi_register_smi +EXPORT_SYMBOL vmlinux 0x0897287b acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x08aaa94f md_check_recovery +EXPORT_SYMBOL vmlinux 0x08b956e9 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x08bf826c _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x08c65880 security_path_symlink +EXPORT_SYMBOL vmlinux 0x08cdd4da __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x08d49925 fsnotify_get_group +EXPORT_SYMBOL vmlinux 0x091777ad sync_blockdev +EXPORT_SYMBOL vmlinux 0x0929957c md_finish_reshape +EXPORT_SYMBOL vmlinux 0x094b0b92 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x09647233 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x09716a5e sock_create_lite +EXPORT_SYMBOL vmlinux 0x097caf75 md_flush_request +EXPORT_SYMBOL vmlinux 0x097cee97 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x0985a7ec datagram_poll +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0992780d efi_enabled +EXPORT_SYMBOL vmlinux 0x09b03807 unregister_netdev +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x0a1c9b0f pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a27995e pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a469d23 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0x0a56d356 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x0a5d2296 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x0a6d198d netdev_change_features +EXPORT_SYMBOL vmlinux 0x0a86e25b _raw_read_unlock_irq +EXPORT_SYMBOL vmlinux 0x0a93a7f6 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x0a98545f iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x0a9d7ab6 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x0aa67279 acpi_device_set_power +EXPORT_SYMBOL vmlinux 0x0ab3e389 __ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x0ac525e6 register_sysctl +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad7afc4 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b20880c uart_register_driver +EXPORT_SYMBOL vmlinux 0x0b2decf3 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b48c680 pnp_is_active +EXPORT_SYMBOL vmlinux 0x0b5358d7 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x0b55e5ba dev_printk +EXPORT_SYMBOL vmlinux 0x0b6972c5 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x0b6d8e53 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b7969cf nobh_writepage +EXPORT_SYMBOL vmlinux 0x0b9ca3c6 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x0ba474e3 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x0bbc5908 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bc6e9fc input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x0bc96fd9 blk_delay_queue +EXPORT_SYMBOL vmlinux 0x0bcbbd29 rt6_lookup +EXPORT_SYMBOL vmlinux 0x0bcfe7e2 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x0bd793bf genl_unregister_family +EXPORT_SYMBOL vmlinux 0x0beafcde gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x0bed6e00 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x0bf4b564 remap_vmalloc_range_partial +EXPORT_SYMBOL vmlinux 0x0c24395a nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x0c45fc96 vfs_lstat +EXPORT_SYMBOL vmlinux 0x0c541a33 set_pages_nx +EXPORT_SYMBOL vmlinux 0x0c58a8cd netdev_increment_features +EXPORT_SYMBOL vmlinux 0x0c606dcb pci_map_rom +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c8326c6 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x0c86d759 sock_i_ino +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cb18ad3 d_validate +EXPORT_SYMBOL vmlinux 0x0cdb7d12 __kernel_fpu_begin +EXPORT_SYMBOL vmlinux 0x0ce900af blk_finish_plug +EXPORT_SYMBOL vmlinux 0x0cf314d5 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x0d0ff706 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x0d1e603f dump_skip +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d6e1516 revert_creds +EXPORT_SYMBOL vmlinux 0x0d785496 bdput +EXPORT_SYMBOL vmlinux 0x0d8fea19 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x0d99503a iterate_mounts +EXPORT_SYMBOL vmlinux 0x0d9dc201 max8998_read_reg +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da47cd1 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x0dd0e333 vfs_statfs +EXPORT_SYMBOL vmlinux 0x0e17eb9b netif_receive_skb +EXPORT_SYMBOL vmlinux 0x0e1bbd12 key_unlink +EXPORT_SYMBOL vmlinux 0x0e3e713b skb_queue_tail +EXPORT_SYMBOL vmlinux 0x0e51f960 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x0e6da44a set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x0e83e548 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x0eaa0099 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x0eaf451e hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x0ec7b407 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x0ed47f2f kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x0ed889e1 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0x0efcbb1b set_current_groups +EXPORT_SYMBOL vmlinux 0x0f011435 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x0f362da1 seq_putc +EXPORT_SYMBOL vmlinux 0x0f3f25c0 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x0f4c91ed ns_to_timespec +EXPORT_SYMBOL vmlinux 0x0f6f384c pci_get_subsys +EXPORT_SYMBOL vmlinux 0x0f944807 pci_bus_put +EXPORT_SYMBOL vmlinux 0x0f959b05 __get_user_pages +EXPORT_SYMBOL vmlinux 0x0fa58232 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fc62691 md_register_thread +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fd9e3d6 pnp_get_resource +EXPORT_SYMBOL vmlinux 0x0fdf2d1e blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x0ff2abac qdisc_reset +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x1015dbe8 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x102c56de irq_regs +EXPORT_SYMBOL vmlinux 0x10627220 serio_open +EXPORT_SYMBOL vmlinux 0x106f13ab crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x107a21b1 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x1081e660 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x108982fb tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x1090494a bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x10ab7e05 devm_gpiod_put +EXPORT_SYMBOL vmlinux 0x10ab7e68 down_killable +EXPORT_SYMBOL vmlinux 0x10c20b07 vfs_readlink +EXPORT_SYMBOL vmlinux 0x10d4874f ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0x10e2562f tcf_exts_change +EXPORT_SYMBOL vmlinux 0x10e84e14 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f21927 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11127930 pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x1141ef3b inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x114c351e filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x11951860 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x11b065e8 fasync_helper +EXPORT_SYMBOL vmlinux 0x11c2536c neigh_lookup +EXPORT_SYMBOL vmlinux 0x11c56f05 poll_freewait +EXPORT_SYMBOL vmlinux 0x11dd01ad intel_scu_ipc_command +EXPORT_SYMBOL vmlinux 0x11df7823 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x11e2ec12 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x11e3cbd8 inet_frags_init +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x1221c3d0 lookup_one_len +EXPORT_SYMBOL vmlinux 0x122ec4db inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x12358ef4 gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0x123fa781 ipmi_smi_watcher_unregister +EXPORT_SYMBOL vmlinux 0x12436c67 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x1269673d skb_queue_head +EXPORT_SYMBOL vmlinux 0x128a5cf9 complete_all +EXPORT_SYMBOL vmlinux 0x128e8c7c mdiobus_free +EXPORT_SYMBOL vmlinux 0x12a316ef sockfd_lookup +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12d7e3a2 drop_nlink +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12dc26a3 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x12e94309 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x133076f4 pci_map_biosrom +EXPORT_SYMBOL vmlinux 0x13307fde vsscanf +EXPORT_SYMBOL vmlinux 0x1340ee23 sock_no_connect +EXPORT_SYMBOL vmlinux 0x1348760d ipmi_request_settime +EXPORT_SYMBOL vmlinux 0x136704e6 loop_backing_file +EXPORT_SYMBOL vmlinux 0x13709f2b have_submounts +EXPORT_SYMBOL vmlinux 0x13720ffb dev_uc_add +EXPORT_SYMBOL vmlinux 0x138c2962 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x13cff085 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x140efe61 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0x1420b379 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x14732094 set_groups +EXPORT_SYMBOL vmlinux 0x148122a0 drop_super +EXPORT_SYMBOL vmlinux 0x1483d83b blk_peek_request +EXPORT_SYMBOL vmlinux 0x14925a0d tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x14a78365 x86_hyper +EXPORT_SYMBOL vmlinux 0x14bc6355 fb_set_var +EXPORT_SYMBOL vmlinux 0x14ca2a60 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x14ff0e0f __register_chrdev +EXPORT_SYMBOL vmlinux 0x14ffb1a3 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x150389d6 acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0x152dee39 __nla_put +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1558cf2c release_pages +EXPORT_SYMBOL vmlinux 0x1573814a gen_new_estimator +EXPORT_SYMBOL vmlinux 0x15db63a3 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x15ed123d default_qdisc_ops +EXPORT_SYMBOL vmlinux 0x15ef5619 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x15f0795a scsi_scan_host +EXPORT_SYMBOL vmlinux 0x15f571ec blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x160abf2e truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x16261bca kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x164cbc7a lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0x1651097e textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x16544ab9 con_is_bound +EXPORT_SYMBOL vmlinux 0x1657e5ec ihold +EXPORT_SYMBOL vmlinux 0x165a9af8 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x1661503d ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x166686c6 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x16717f82 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x16773766 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x167b208d acpi_device_hid +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x168f1082 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x16921559 fd_install +EXPORT_SYMBOL vmlinux 0x169806c4 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x16c1eb83 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x16d9f5c5 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL vmlinux 0x16ea5d9f lockref_get +EXPORT_SYMBOL vmlinux 0x16f3840a check_submounts_and_drop +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x1730a986 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x17429d5b abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x1743fbfa lock_fb_info +EXPORT_SYMBOL vmlinux 0x1778528d tcp_init_sock +EXPORT_SYMBOL vmlinux 0x177fa8b5 fbcon_set_rotate +EXPORT_SYMBOL vmlinux 0x178860e9 secpath_dup +EXPORT_SYMBOL vmlinux 0x1790d76b _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x17b1125d gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x17d65378 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x17e018bb tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x17f3f5b7 lockref_get_not_zero +EXPORT_SYMBOL vmlinux 0x17fa81cd __idr_get_new_above +EXPORT_SYMBOL vmlinux 0x1826f089 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x1828ed5d swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x185471a2 security_inode_readlink +EXPORT_SYMBOL vmlinux 0x18555099 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x18637c72 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x18747fa6 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x188a3dfb timespec_trunc +EXPORT_SYMBOL vmlinux 0x18916d94 dquot_operations +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18987af6 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x18b487c5 __lock_buffer +EXPORT_SYMBOL vmlinux 0x18bc039d file_remove_suid +EXPORT_SYMBOL vmlinux 0x18bf0f8d tty_devnum +EXPORT_SYMBOL vmlinux 0x18c931d0 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x18d8ed5e mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x18d96501 atomic64_dec_if_positive_cx8 +EXPORT_SYMBOL vmlinux 0x18e9ce37 inet6_add_offload +EXPORT_SYMBOL vmlinux 0x18f564e5 security_path_link +EXPORT_SYMBOL vmlinux 0x18f968c7 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x19124518 bd_set_size +EXPORT_SYMBOL vmlinux 0x1938644b init_special_inode +EXPORT_SYMBOL vmlinux 0x1941554b __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x195cd50f mmc_register_driver +EXPORT_SYMBOL vmlinux 0x1964015d scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x1986e4bc agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x19942100 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x199f419d unregister_console +EXPORT_SYMBOL vmlinux 0x19a9e62b complete +EXPORT_SYMBOL vmlinux 0x19bac20b pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19ceeb88 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x1a02f897 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL vmlinux 0x1a349ae5 security_mmap_file +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a487e0f sk_ns_capable +EXPORT_SYMBOL vmlinux 0x1a4fea3f lockref_mark_dead +EXPORT_SYMBOL vmlinux 0x1a626387 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a65619b abort_creds +EXPORT_SYMBOL vmlinux 0x1a7a8b3e jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x1a7bb36c skb_orphan_partial +EXPORT_SYMBOL vmlinux 0x1aaca523 vga_switcheroo_init_domain_pm_ops +EXPORT_SYMBOL vmlinux 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL vmlinux 0x1ac22ed9 pci_read_vpd +EXPORT_SYMBOL vmlinux 0x1ace0e22 add_disk +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad2a9cf put_disk +EXPORT_SYMBOL vmlinux 0x1ad81e11 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x1aded8f0 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x1ae14ef5 _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x1afbd649 agp_bridge +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b040033 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x1b0611af ilookup +EXPORT_SYMBOL vmlinux 0x1b0ac272 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x1b1e1088 sg_nents +EXPORT_SYMBOL vmlinux 0x1b305839 module_put +EXPORT_SYMBOL vmlinux 0x1b30c851 bdi_register +EXPORT_SYMBOL vmlinux 0x1b570d23 acpi_warning +EXPORT_SYMBOL vmlinux 0x1b5be41c __skb_get_hash +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b82fefa md_unplug +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb62cc4 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x1bc087eb vc_cons +EXPORT_SYMBOL vmlinux 0x1be7e5f7 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x1bff684d pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x1c23bfaa agp_free_page_array +EXPORT_SYMBOL vmlinux 0x1c3ad392 dquot_alloc +EXPORT_SYMBOL vmlinux 0x1c555be8 mem_map +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1cb08251 jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0x1cbee011 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x1cc57c1c is_bad_inode +EXPORT_SYMBOL vmlinux 0x1cc78e6d scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x1ccde678 do_splice_direct +EXPORT_SYMBOL vmlinux 0x1cd293f4 bio_map_kern +EXPORT_SYMBOL vmlinux 0x1cf065d1 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x1d147b24 acpi_gpiochip_free_interrupts +EXPORT_SYMBOL vmlinux 0x1d1c5b77 kill_pgrp +EXPORT_SYMBOL vmlinux 0x1d2fbdde iunique +EXPORT_SYMBOL vmlinux 0x1d3dd961 input_flush_device +EXPORT_SYMBOL vmlinux 0x1d604120 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x1d813616 km_policy_expired +EXPORT_SYMBOL vmlinux 0x1d9ee739 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x1da25c39 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x1da413f7 ip_options_compile +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1ddd4727 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0x1de74f72 acpi_execute_simple_method +EXPORT_SYMBOL vmlinux 0x1def4884 pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x1e047854 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e3a93ed invalidate_partition +EXPORT_SYMBOL vmlinux 0x1e3ed23a bio_sector_offset +EXPORT_SYMBOL vmlinux 0x1e5cafec mount_ns +EXPORT_SYMBOL vmlinux 0x1e5fbfda kernel_sendpage +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e79852c acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x1e895ecf scsi_block_requests +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1eb8324b sk_release_kernel +EXPORT_SYMBOL vmlinux 0x1ec3bed9 hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x1ec4eb34 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x1ed5b192 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x1ef1debb skb_checksum_help +EXPORT_SYMBOL vmlinux 0x1f0d6142 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x1f1df270 eisa_driver_register +EXPORT_SYMBOL vmlinux 0x1f411113 dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x1f47f2d9 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x1f76a493 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x1f7e807f kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x1f9655f8 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x1f9c047a keyring_alloc +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fce4860 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fde630c security_path_chown +EXPORT_SYMBOL vmlinux 0x1fe912f1 netdev_alloc_frag +EXPORT_SYMBOL vmlinux 0x1fe9f800 unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2002b659 md_done_sync +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20092385 acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x2010ca82 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x20291f75 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x203d5009 qdisc_watchdog_schedule_ns +EXPORT_SYMBOL vmlinux 0x204c0f34 skb_dequeue +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x204f4138 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x20696d2a tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x209ee32b dma_ops +EXPORT_SYMBOL vmlinux 0x209fc917 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20b2bb2d param_array_ops +EXPORT_SYMBOL vmlinux 0x20c47fde agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x20c55ae0 sscanf +EXPORT_SYMBOL vmlinux 0x20c6192f intel_scu_ipc_ioread32 +EXPORT_SYMBOL vmlinux 0x20d0f40a register_key_type +EXPORT_SYMBOL vmlinux 0x20d4bce6 from_kuid +EXPORT_SYMBOL vmlinux 0x20e0a68b fs_bio_set +EXPORT_SYMBOL vmlinux 0x2109065c scsi_device_get +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x217dda13 flex_array_get +EXPORT_SYMBOL vmlinux 0x218270af irq_to_desc +EXPORT_SYMBOL vmlinux 0x2185e995 dump_emit +EXPORT_SYMBOL vmlinux 0x2199337a down_timeout +EXPORT_SYMBOL vmlinux 0x21bd09c9 dev_uc_init +EXPORT_SYMBOL vmlinux 0x21bf0115 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21fb443e _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x2208fd7f __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x220c68a9 __scm_send +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2231d262 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x2256fafa div64_u64_rem +EXPORT_SYMBOL vmlinux 0x225a32ca register_filesystem +EXPORT_SYMBOL vmlinux 0x22646f65 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x22690127 swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x22822bc2 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x22ae5fe7 neigh_app_ns +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22c5b70b intel_gmch_probe +EXPORT_SYMBOL vmlinux 0x22db9262 netdev_lower_dev_get_private_rcu +EXPORT_SYMBOL vmlinux 0x22e757c5 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x23020da1 bio_put +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x23295988 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x232d0bbe register_nls +EXPORT_SYMBOL vmlinux 0x2332f625 do_splice_to +EXPORT_SYMBOL vmlinux 0x2340c68e skb_seq_read +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x236ae409 dev_addr_init +EXPORT_SYMBOL vmlinux 0x2397a34a phy_init_eee +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23a74028 simple_unlink +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23d3d678 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x23d624f8 ipmi_smi_watcher_register +EXPORT_SYMBOL vmlinux 0x23da7463 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x23f8d8f5 pci_pme_active +EXPORT_SYMBOL vmlinux 0x23f982d3 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24212d86 __frontswap_invalidate_page +EXPORT_SYMBOL vmlinux 0x2422c5ad bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x243401b9 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x243c4c8e ip6_xmit +EXPORT_SYMBOL vmlinux 0x243fd8fb jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245cc91c dqget +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x2484c4c9 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x2490a4cc ida_remove +EXPORT_SYMBOL vmlinux 0x24a55e02 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x24b48c8d clear_inode +EXPORT_SYMBOL vmlinux 0x24d22cea kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0x24d7b4eb cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x24e8b6a7 vga_switcheroo_init_domain_pm_optimus_hdmi_audio +EXPORT_SYMBOL vmlinux 0x24f169fc down_read_trylock +EXPORT_SYMBOL vmlinux 0x24f3e24d mpage_readpages +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x25245c51 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x254847c8 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x25633875 account_page_dirtied +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258b7932 scsi_device_put +EXPORT_SYMBOL vmlinux 0x25926cde in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x25b0cafa inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x25bf36d9 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x25c28073 neigh_direct_output +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25dd8aab names_cachep +EXPORT_SYMBOL vmlinux 0x25f64be5 put_tty_driver +EXPORT_SYMBOL vmlinux 0x25ffdd64 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x26075fdc pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x2613960e genlmsg_put +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x2650d835 sysctl_ip_early_demux +EXPORT_SYMBOL vmlinux 0x2682ef86 devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x2683e4bd __cleancache_invalidate_page +EXPORT_SYMBOL vmlinux 0x26852f8e ida_simple_remove +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x26a88f47 agp_free_memory +EXPORT_SYMBOL vmlinux 0x26baf958 netdev_state_change +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26ea8989 user_path_create +EXPORT_SYMBOL vmlinux 0x26ec2b31 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x26f0453a blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x270cc379 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x270d4797 kmap_to_page +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x272533de md_write_start +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x278a35b5 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x278bb975 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x279536d2 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x27ae7d0c ec_transaction +EXPORT_SYMBOL vmlinux 0x27b6f78f jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c5effb xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x27f355e0 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x27f65dce tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2821a78d __free_pages +EXPORT_SYMBOL vmlinux 0x28545b45 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x2864ab2e scsi_host_put +EXPORT_SYMBOL vmlinux 0x288f91d3 phy_connect +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end +EXPORT_SYMBOL vmlinux 0x28bf1ac8 mpage_writepage +EXPORT_SYMBOL vmlinux 0x28dc71a5 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x2906288e rtnl_unicast +EXPORT_SYMBOL vmlinux 0x291f8d4d xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x29268592 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x2938e0ef gen10g_config_aneg +EXPORT_SYMBOL vmlinux 0x293a6cdd netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x293b0f29 soft_cursor +EXPORT_SYMBOL vmlinux 0x294b3fce __neigh_create +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x298fa51e neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x29b59b8a fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x29c50dda create_syslog_header +EXPORT_SYMBOL vmlinux 0x29cd0982 phy_driver_register +EXPORT_SYMBOL vmlinux 0x29d28c5a scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x29e9c35d alloc_anon_inode +EXPORT_SYMBOL vmlinux 0x29fdda53 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x2a0b601d i2c_del_driver +EXPORT_SYMBOL vmlinux 0x2a0dbcbb clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a5def2f intel_scu_ipc_iowrite32 +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2a7c4414 fbcon_rotate_ud +EXPORT_SYMBOL vmlinux 0x2a8a1b6a jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x2a9ffdab rtnl_notify +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aaa54fa blk_end_request_all +EXPORT_SYMBOL vmlinux 0x2ab6e0d0 d_move +EXPORT_SYMBOL vmlinux 0x2ab78522 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x2ab82ea5 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x2acf0feb vfs_fstat +EXPORT_SYMBOL vmlinux 0x2af86917 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b1d20f8 __cleancache_invalidate_fs +EXPORT_SYMBOL vmlinux 0x2b29d5cb dst_discard +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b56357e security_dentry_init_security +EXPORT_SYMBOL vmlinux 0x2b75721e eth_header_parse +EXPORT_SYMBOL vmlinux 0x2b94cb4a sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bc27c40 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset +EXPORT_SYMBOL vmlinux 0x2bf8d577 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c14323a kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c2f9999 try_module_get +EXPORT_SYMBOL vmlinux 0x2c5c974b kunmap +EXPORT_SYMBOL vmlinux 0x2c5fa16d tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x2c6b8aa8 inet_ioctl +EXPORT_SYMBOL vmlinux 0x2c760511 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x2c78037d bio_pair_release +EXPORT_SYMBOL vmlinux 0x2c900d91 cpufreq_put_global_kobject +EXPORT_SYMBOL vmlinux 0x2ca07475 dump_trace +EXPORT_SYMBOL vmlinux 0x2ca319a6 wrmsrl_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x2cb4cfdf free_netdev +EXPORT_SYMBOL vmlinux 0x2cb6af6a bio_map_user +EXPORT_SYMBOL vmlinux 0x2cce6b8f complete_request_key +EXPORT_SYMBOL vmlinux 0x2ccf42dd __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0x2d03c10d posix_acl_create +EXPORT_SYMBOL vmlinux 0x2d063f88 nf_log_register +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d144e21 rdmsrl_on_cpu +EXPORT_SYMBOL vmlinux 0x2d181f77 dev_trans_start +EXPORT_SYMBOL vmlinux 0x2d1a3ca3 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x2d1f12d5 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask +EXPORT_SYMBOL vmlinux 0x2d3d11cb blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x2d54c6b3 neigh_update +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d975c96 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0x2daaaba9 param_get_byte +EXPORT_SYMBOL vmlinux 0x2dc4e2d3 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dde852f bio_copy_kern +EXPORT_SYMBOL vmlinux 0x2de535e2 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x2de88a01 generic_listxattr +EXPORT_SYMBOL vmlinux 0x2deda4a1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2dee19d1 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x2dee6981 key_validate +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2df49647 irq_set_chip +EXPORT_SYMBOL vmlinux 0x2df5b27f mmc_release_host +EXPORT_SYMBOL vmlinux 0x2dfb116e skb_split +EXPORT_SYMBOL vmlinux 0x2dfb2d63 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x2e03c2a8 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x2e044af6 input_inject_event +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e3b1dcf ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x2e4cff01 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e61e082 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x2e713b1a idr_init +EXPORT_SYMBOL vmlinux 0x2e7cfff7 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x2eb4c59f tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x2ebc787a kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ecb1725 blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0x2ed88484 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0x2ee61470 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef25804 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x2ef5c125 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f21a389 __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x2f384db3 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x2f521048 amd_northbridges +EXPORT_SYMBOL vmlinux 0x2f7d1981 kthread_bind +EXPORT_SYMBOL vmlinux 0x2f8a3951 tty_check_change +EXPORT_SYMBOL vmlinux 0x2f8dbc16 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x2fb11353 phy_disconnect +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fe15d27 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2fec0d4c kobject_get +EXPORT_SYMBOL vmlinux 0x300825f1 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x303eb976 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x3041a2f9 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x30588a02 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x3066fb73 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30b8ed58 led_set_brightness +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30f302d5 skb_pad +EXPORT_SYMBOL vmlinux 0x3102d70b frontswap_curr_pages +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x3110d36e unlazy_fpu +EXPORT_SYMBOL vmlinux 0x31140c42 redraw_screen +EXPORT_SYMBOL vmlinux 0x31148071 follow_down +EXPORT_SYMBOL vmlinux 0x312824e0 hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x3141e3d4 dcb_getapp +EXPORT_SYMBOL vmlinux 0x3141fd68 pcie_get_minimum_link +EXPORT_SYMBOL vmlinux 0x3144e598 kern_path +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x31694160 iterate_supers_type +EXPORT_SYMBOL vmlinux 0x31820e93 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x318cadb1 reciprocal_value +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31c269a5 bio_clone_bioset +EXPORT_SYMBOL vmlinux 0x31c2efa5 dev_open +EXPORT_SYMBOL vmlinux 0x31d57a48 vga_get +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31f0bb78 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x3202435a wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x321405aa pcim_enable_device +EXPORT_SYMBOL vmlinux 0x32156647 vfs_write +EXPORT_SYMBOL vmlinux 0x322bb6c0 pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0x322f48d4 abx500_dump_all_banks +EXPORT_SYMBOL vmlinux 0x324067b6 dget_parent +EXPORT_SYMBOL vmlinux 0x325ef244 phy_device_register +EXPORT_SYMBOL vmlinux 0x326425ca pci_unmap_biosrom +EXPORT_SYMBOL vmlinux 0x3269e02e da903x_query_status +EXPORT_SYMBOL vmlinux 0x327d6300 blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0x32883c39 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x329420d7 serio_reconnect +EXPORT_SYMBOL vmlinux 0x32b45c07 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x32b8038e mdiobus_register +EXPORT_SYMBOL vmlinux 0x32b88f8b inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x32c02670 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x32cea339 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x32d016c0 pci_scan_bus +EXPORT_SYMBOL vmlinux 0x32d7bec6 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x32eeaded _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x3320de58 bdi_unregister +EXPORT_SYMBOL vmlinux 0x3322e6f1 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x332c9276 file_open_root +EXPORT_SYMBOL vmlinux 0x333bfa08 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x33414d34 devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x3341abae elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x3342d015 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x337cce46 put_cmsg +EXPORT_SYMBOL vmlinux 0x33a1bbf8 mmc_get_card +EXPORT_SYMBOL vmlinux 0x33a35672 ps2_init +EXPORT_SYMBOL vmlinux 0x33ad1452 eisa_driver_unregister +EXPORT_SYMBOL vmlinux 0x33ba5cd4 param_ops_bool +EXPORT_SYMBOL vmlinux 0x33bf79a5 inc_nlink +EXPORT_SYMBOL vmlinux 0x33c7435c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x33d99367 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33e15f81 force_sig +EXPORT_SYMBOL vmlinux 0x33e671ae security_path_unlink +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33f4cd14 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x340f45fd bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x34184afe current_kernel_time +EXPORT_SYMBOL vmlinux 0x341f631e load_nls_default +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x3437d4a9 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x345256e2 vmap +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x347eb9bd param_set_bool +EXPORT_SYMBOL vmlinux 0x34808b90 blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0x3486c8d0 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x349c4a76 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34e24e10 cdev_init +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x35012d76 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x350ec179 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x353e21e3 acpi_bios_warning +EXPORT_SYMBOL vmlinux 0x356213f2 ata_link_printk +EXPORT_SYMBOL vmlinux 0x3564b371 tcp_prot +EXPORT_SYMBOL vmlinux 0x3568029c invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x357d5f5e neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x35a41b3c generic_setxattr +EXPORT_SYMBOL vmlinux 0x35a75ed7 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x35b08a26 xen_biovec_phys_mergeable +EXPORT_SYMBOL vmlinux 0x35b710ca ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x35de84fa tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x35e24d9c noop_fsync +EXPORT_SYMBOL vmlinux 0x35e9f43f mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x35ed7513 pci_iounmap +EXPORT_SYMBOL vmlinux 0x36029058 netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0x3608aaf7 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x360b8d16 x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x3618c690 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x3626c4d9 inode_init_always +EXPORT_SYMBOL vmlinux 0x364cf36d simple_release_fs +EXPORT_SYMBOL vmlinux 0x364d5d96 save_mount_options +EXPORT_SYMBOL vmlinux 0x367c5531 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x367d2799 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x368e51d5 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x368f7f0a devm_gpio_request_one +EXPORT_SYMBOL vmlinux 0x36aad357 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x36ac0bad nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x36bd681b groups_alloc +EXPORT_SYMBOL vmlinux 0x36c6af51 intel_scu_ipc_iowrite8 +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36ecd6e1 idr_remove +EXPORT_SYMBOL vmlinux 0x36f58038 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x3703ba98 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x3708b5ab lro_flush_all +EXPORT_SYMBOL vmlinux 0x370ea027 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x37535358 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x375cf837 uart_match_port +EXPORT_SYMBOL vmlinux 0x37815920 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x379a1daf alloc_disk +EXPORT_SYMBOL vmlinux 0x37a7cdac __netif_schedule +EXPORT_SYMBOL vmlinux 0x37b938dc mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x37b9ff44 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x37baa951 request_key_async +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37d81ac1 clk_add_alias +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37e027e7 nf_log_unset +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x37f882a5 inet_add_offload +EXPORT_SYMBOL vmlinux 0x38099e13 wrmsrl_on_cpu +EXPORT_SYMBOL vmlinux 0x381144a9 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x381ccc13 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x381dc31c __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x384b38f2 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x3853483e inode_dio_done +EXPORT_SYMBOL vmlinux 0x385ab108 sock_no_listen +EXPORT_SYMBOL vmlinux 0x385cf414 tcp_child_process +EXPORT_SYMBOL vmlinux 0x386b055b arp_create +EXPORT_SYMBOL vmlinux 0x387eb912 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x388799f6 unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x389ccca5 kill_bdev +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38dcb7cd try_to_writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x38f93bf3 security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0x390b9fdc mntget +EXPORT_SYMBOL vmlinux 0x3914f94e blk_recount_segments +EXPORT_SYMBOL vmlinux 0x391ea8ff xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x39213e8a writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x3952636e blk_mq_alloc_reserved_request +EXPORT_SYMBOL vmlinux 0x397d996b scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x3987353e udp_disconnect +EXPORT_SYMBOL vmlinux 0x39a055f3 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x39b24253 pci_bus_type +EXPORT_SYMBOL vmlinux 0x39b705b5 fput +EXPORT_SYMBOL vmlinux 0x39b7acb5 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x39e15cb5 submit_bh +EXPORT_SYMBOL vmlinux 0x39e3f7c0 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x3a013b7d remove_wait_queue +EXPORT_SYMBOL vmlinux 0x3a025a5f make_kprojid +EXPORT_SYMBOL vmlinux 0x3a08475f platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x3a1ee206 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x3a32839e intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x3a61eed9 fbcon_rotate_cw +EXPORT_SYMBOL vmlinux 0x3a679b0d netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x3a71fd13 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ac61ae4 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x3ac66ad6 brioctl_set +EXPORT_SYMBOL vmlinux 0x3ad35699 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x3ae9705b tty_port_put +EXPORT_SYMBOL vmlinux 0x3b1113cd sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x3b1a2e3a textsearch_prepare +EXPORT_SYMBOL vmlinux 0x3b1dcecb dquot_release +EXPORT_SYMBOL vmlinux 0x3b201620 machine_real_restart +EXPORT_SYMBOL vmlinux 0x3b45a858 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x3b5b12f1 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x3b86d8a6 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x3b8d5e3d unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x3b9aff49 vga_put +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bdff5bc block_write_begin +EXPORT_SYMBOL vmlinux 0x3be2a7df pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x3bef03b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x3bf8dfa6 devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0x3c0303bc ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0x3c3fbbd2 elv_rb_find +EXPORT_SYMBOL vmlinux 0x3c42440c xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x3c57cc19 tcp_release_cb +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c899b33 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb3931b sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x3cb538c5 pnp_device_attach +EXPORT_SYMBOL vmlinux 0x3cc3bdc2 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0x3cd354f3 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d0e63b6 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x3d36fd5b gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x3d4ade16 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x3d599fc1 bio_init +EXPORT_SYMBOL vmlinux 0x3d624bb9 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3dc88a13 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dcfbc31 __d_drop +EXPORT_SYMBOL vmlinux 0x3dd0ff66 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x3dde6bd6 mmc_start_bkops +EXPORT_SYMBOL vmlinux 0x3de400df kern_path_mountpoint +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e2022b8 audit_log_task_info +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e3bd1c6 arp_invalidate +EXPORT_SYMBOL vmlinux 0x3e6bf207 dma_common_mmap +EXPORT_SYMBOL vmlinux 0x3e7611cd blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ebaa4a7 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x3ec4637b vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ef78d80 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x3eff5ac2 intel_scu_ipc_writev +EXPORT_SYMBOL vmlinux 0x3f023869 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f1aafb0 __brelse +EXPORT_SYMBOL vmlinux 0x3f3373f6 mdiobus_read +EXPORT_SYMBOL vmlinux 0x3f373dbe mmc_request_done +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f5031f5 from_kuid_munged +EXPORT_SYMBOL vmlinux 0x3f7b9936 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x3f9f868f __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x3fa1b320 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x3fa58ef8 wait_for_completion +EXPORT_SYMBOL vmlinux 0x3fa6a1b1 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x3fc77aed ida_pre_get +EXPORT_SYMBOL vmlinux 0x3fd28096 idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x3fd74ff6 truncate_setsize +EXPORT_SYMBOL vmlinux 0x3fddab4b scsi_scan_target +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x4003d43b dev_alert +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x4046aead i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x407ad92a jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x407e13a9 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a2d1dd dm_table_get_size +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40c01859 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x40c4a6bf i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d91cf7 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x40df8e61 cpu_info +EXPORT_SYMBOL vmlinux 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL vmlinux 0x40fc3e14 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x41044f50 dev_get_phys_port_id +EXPORT_SYMBOL vmlinux 0x4106d94c keyring_search +EXPORT_SYMBOL vmlinux 0x411f1968 gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0x412273a2 simple_empty +EXPORT_SYMBOL vmlinux 0x41376b8a dma_find_channel +EXPORT_SYMBOL vmlinux 0x41420235 pnp_find_dev +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x416297d0 nobh_write_end +EXPORT_SYMBOL vmlinux 0x4165030a __sock_create +EXPORT_SYMBOL vmlinux 0x41730320 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x417a9765 filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0x417d5b26 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x418f9402 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x419e9c2d dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x41a4e2ea md_error +EXPORT_SYMBOL vmlinux 0x41b140a9 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x41d6cb07 wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x41dfde40 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x41e814a9 generic_file_remap_pages +EXPORT_SYMBOL vmlinux 0x420eaaae pci_enable_device +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x422f82cd netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x42350e8d ucs2_strlen +EXPORT_SYMBOL vmlinux 0x423b776a ipmi_create_user +EXPORT_SYMBOL vmlinux 0x42475fb4 iget_failed +EXPORT_SYMBOL vmlinux 0x424de595 d_genocide +EXPORT_SYMBOL vmlinux 0x42517147 dev_uc_del +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x42602ca3 posix_lock_file +EXPORT_SYMBOL vmlinux 0x426f3a7e starget_for_each_device +EXPORT_SYMBOL vmlinux 0x42787617 d_drop +EXPORT_SYMBOL vmlinux 0x427b533f send_sig_info +EXPORT_SYMBOL vmlinux 0x427b7f7f eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x427ba51f deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x42830a76 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x4286ad5c abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a1b208 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x42b248ba posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x42b2ea96 module_refcount +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42caea69 page_symlink +EXPORT_SYMBOL vmlinux 0x42deed91 noop_llseek +EXPORT_SYMBOL vmlinux 0x42f2a88f dev_uc_sync +EXPORT_SYMBOL vmlinux 0x4301fd38 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x430fc249 vlan_vid_add +EXPORT_SYMBOL vmlinux 0x4316380e set_blocksize +EXPORT_SYMBOL vmlinux 0x431d4001 __seq_open_private +EXPORT_SYMBOL vmlinux 0x434d73b5 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x4350d838 dev_notice +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x436d94e3 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x437bc32c dev_remove_pack +EXPORT_SYMBOL vmlinux 0x43834bc4 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x439cb751 pv_lock_ops +EXPORT_SYMBOL vmlinux 0x43a1dbd2 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x43af8f37 file_update_time +EXPORT_SYMBOL vmlinux 0x43c3443b rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x43e675c0 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x440c9280 dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0x4411c503 prandom_seed +EXPORT_SYMBOL vmlinux 0x441237f5 pci_request_region +EXPORT_SYMBOL vmlinux 0x4426d2bf skb_free_datagram +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x4436eca9 elevator_alloc +EXPORT_SYMBOL vmlinux 0x44438b96 hex2bin +EXPORT_SYMBOL vmlinux 0x444eb20f tty_vhangup +EXPORT_SYMBOL vmlinux 0x44700922 path_get +EXPORT_SYMBOL vmlinux 0x4479041c fb_get_mode +EXPORT_SYMBOL vmlinux 0x448bcf80 tty_throttle +EXPORT_SYMBOL vmlinux 0x448f043e skb_push +EXPORT_SYMBOL vmlinux 0x449e8aa6 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44d334c1 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x44e4322a neigh_table_init +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44eb17e5 address_space_init_once +EXPORT_SYMBOL vmlinux 0x44f1606d down_trylock +EXPORT_SYMBOL vmlinux 0x44f6faf5 dev_addr_add +EXPORT_SYMBOL vmlinux 0x45081703 ec_get_handle +EXPORT_SYMBOL vmlinux 0x4517b70b noop_qdisc +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x45404a5f kernel_bind +EXPORT_SYMBOL vmlinux 0x45422273 mount_subtree +EXPORT_SYMBOL vmlinux 0x45564b84 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x4578661a _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x459a4d5b dquot_quota_off +EXPORT_SYMBOL vmlinux 0x45a6be13 cpufreq_sysfs_remove_file +EXPORT_SYMBOL vmlinux 0x45a765cf pci_add_resource +EXPORT_SYMBOL vmlinux 0x45a840fb ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x45b6eea6 single_open +EXPORT_SYMBOL vmlinux 0x45c2c29d generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x45d2337f __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x45eaf5a6 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x4602b757 phy_detach +EXPORT_SYMBOL vmlinux 0x460a3e66 devm_request_and_ioremap +EXPORT_SYMBOL vmlinux 0x46188c6b simple_readpage +EXPORT_SYMBOL vmlinux 0x462308a7 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x4629334c __preempt_count +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x4655fcc0 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x4658ce45 bdget_disk +EXPORT_SYMBOL vmlinux 0x465b6251 pci_request_regions +EXPORT_SYMBOL vmlinux 0x465cab34 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x46608fa0 getnstimeofday +EXPORT_SYMBOL vmlinux 0x46617956 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x467657f1 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x467e1a58 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x4686ffde locks_free_lock +EXPORT_SYMBOL vmlinux 0x468bcda6 cpumask_set_cpu_local_first +EXPORT_SYMBOL vmlinux 0x468ff2f6 km_report +EXPORT_SYMBOL vmlinux 0x46997870 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x46a6bec2 led_blink_set +EXPORT_SYMBOL vmlinux 0x46ae84ad netif_device_attach +EXPORT_SYMBOL vmlinux 0x46f0a06d nf_ct_attach +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x47416e14 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x4741b292 find_vma +EXPORT_SYMBOL vmlinux 0x47541725 mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x476abbf1 dev_close +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x4792c572 down_interruptible +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b6733b pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47bcf84c param_set_ulong +EXPORT_SYMBOL vmlinux 0x47bfbbe7 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x47c8baf4 param_ops_uint +EXPORT_SYMBOL vmlinux 0x47c94462 set_disk_ro +EXPORT_SYMBOL vmlinux 0x48034724 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x481f9126 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x4823afee eth_header_cache +EXPORT_SYMBOL vmlinux 0x482a2a49 param_set_charp +EXPORT_SYMBOL vmlinux 0x48384df2 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x4852ed70 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x4856a78e dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x486d2f29 dqstats +EXPORT_SYMBOL vmlinux 0x487d7c9e acpi_lock_ac_dir +EXPORT_SYMBOL vmlinux 0x48977464 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x490419eb i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x49117cf0 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x4913b8b6 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x495c96f8 posix_acl_init +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x4970ccf2 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x497d1466 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x499f721d devm_gpiod_get +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b163b8 acpi_bus_scan +EXPORT_SYMBOL vmlinux 0x4a087801 module_layout +EXPORT_SYMBOL vmlinux 0x4a1ea5d0 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a4b3079 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x4a4ef1f0 vga_switcheroo_fini_domain_pm_ops +EXPORT_SYMBOL vmlinux 0x4a5255ab file_ns_capable +EXPORT_SYMBOL vmlinux 0x4a5d0a8d pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0x4a69c762 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x4aa14d1e i2c_master_recv +EXPORT_SYMBOL vmlinux 0x4aa921f9 __page_symlink +EXPORT_SYMBOL vmlinux 0x4abcfc87 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ad8617d ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b028873 netdev_emerg +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b147c3e nf_log_set +EXPORT_SYMBOL vmlinux 0x4b160904 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x4b162c47 contig_page_data +EXPORT_SYMBOL vmlinux 0x4b1baf68 acpi_unlock_ac_dir +EXPORT_SYMBOL vmlinux 0x4b1ec3e2 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x4b208ecc __ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b836256 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x4bb12a6f pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x4bc097ad i2c_verify_client +EXPORT_SYMBOL vmlinux 0x4bc4d5a5 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x4bccd607 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x4bdcfe45 nla_put +EXPORT_SYMBOL vmlinux 0x4be85a03 memweight +EXPORT_SYMBOL vmlinux 0x4bf316f2 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x4bf3cb20 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x4bf4519f sk_free +EXPORT_SYMBOL vmlinux 0x4bf7b27d inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0x4c07a161 __blk_end_request +EXPORT_SYMBOL vmlinux 0x4c0c57fb __serio_register_driver +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c137ecb sk_alloc +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c2d5b9a scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x4c35cf76 sk_net_capable +EXPORT_SYMBOL vmlinux 0x4c4e600f cont_write_begin +EXPORT_SYMBOL vmlinux 0x4c51e176 xfrm_input +EXPORT_SYMBOL vmlinux 0x4c60282d mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x4c6ee06e scsi_host_get +EXPORT_SYMBOL vmlinux 0x4c76286b sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x4c811cc4 elevator_exit +EXPORT_SYMBOL vmlinux 0x4c88eb80 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL vmlinux 0x4c9720af fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x4cb24efa tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4ccde1eb netdev_all_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0x4cdb3178 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x4ce385f4 unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x4d32da0e seq_puts +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d46d8ad udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x4d6c25a0 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x4d72c349 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x4d7efae4 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x4d88fbe3 bdi_init +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4d9ee383 should_remove_suid +EXPORT_SYMBOL vmlinux 0x4da565b6 key_reject_and_link +EXPORT_SYMBOL vmlinux 0x4daa360a acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0x4dc0bfa8 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x4dc50790 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x4dc514c7 kobject_put +EXPORT_SYMBOL vmlinux 0x4dd05bd6 kmap_high +EXPORT_SYMBOL vmlinux 0x4ddb75b6 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x4de0f3f8 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x4de34a07 cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e037961 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e4715f9 devfreq_add_device +EXPORT_SYMBOL vmlinux 0x4e54f1d3 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x4e5cad30 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x4e64cbe5 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6baf4f devfreq_resume_device +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e72ad6d inet6_getname +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e98de45 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x4ea25709 dql_reset +EXPORT_SYMBOL vmlinux 0x4ea351e6 sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0x4ecb5d29 sync_inode +EXPORT_SYMBOL vmlinux 0x4ed6d33f sock_rfree +EXPORT_SYMBOL vmlinux 0x4f11b2d5 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x4f18d1f9 generic_write_checks +EXPORT_SYMBOL vmlinux 0x4f19a5ae phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f3b988e get_gendisk +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f620c0e vfs_setpos +EXPORT_SYMBOL vmlinux 0x4f68e5c9 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x4f6b400b _copy_from_user +EXPORT_SYMBOL vmlinux 0x4f75e05d get_thermal_instance +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f7d1555 __put_cred +EXPORT_SYMBOL vmlinux 0x4f878f87 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user +EXPORT_SYMBOL vmlinux 0x4fd021f7 gen10g_read_status +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe3b4af buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x5008c21a arp_xmit +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x5031eb0c xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x505fc444 km_query +EXPORT_SYMBOL vmlinux 0x506b150b blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x5078fae9 d_lookup +EXPORT_SYMBOL vmlinux 0x507a0881 pci_platform_rom +EXPORT_SYMBOL vmlinux 0x507d1809 vlan_uses_dev +EXPORT_SYMBOL vmlinux 0x5084faed abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x509b64ea acpi_has_method +EXPORT_SYMBOL vmlinux 0x50ca3b99 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x50d06e4e arp_tbl +EXPORT_SYMBOL vmlinux 0x50d68377 arch_phys_wc_del +EXPORT_SYMBOL vmlinux 0x50df4b1f scsi_unregister +EXPORT_SYMBOL vmlinux 0x50e4b04d put_page +EXPORT_SYMBOL vmlinux 0x50ea30c8 set_create_files_as +EXPORT_SYMBOL vmlinux 0x50eedeb8 printk +EXPORT_SYMBOL vmlinux 0x50f62980 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x51218fa7 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x512c8f53 ll_rw_block +EXPORT_SYMBOL vmlinux 0x513823d4 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x513d69af tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x51402a58 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x516b862b sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x5174e737 dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0x517ef440 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x5186518f profile_pc +EXPORT_SYMBOL vmlinux 0x51899db5 netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0x51a74a6d inetdev_by_index +EXPORT_SYMBOL vmlinux 0x51b285df ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x51b33068 simple_fill_super +EXPORT_SYMBOL vmlinux 0x51b4cd0b tcp_sendpage +EXPORT_SYMBOL vmlinux 0x51bbef4d swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51d5541f __pci_register_driver +EXPORT_SYMBOL vmlinux 0x51dcb33a block_write_full_page +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e95419 blk_put_queue +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x51fddd58 commit_creds +EXPORT_SYMBOL vmlinux 0x52006d56 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x5206459c proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x520fa6c5 balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0x521b36b5 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x521b9af9 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x52428cc8 parent_mem_cgroup +EXPORT_SYMBOL vmlinux 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL vmlinux 0x525e026f acpi_os_unmap_generic_address +EXPORT_SYMBOL vmlinux 0x525fe16e fget +EXPORT_SYMBOL vmlinux 0x527f702f __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x529c23b4 input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0x52b36115 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x530b1e4c rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x5319bbbb check_disk_size_change +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x5383f34b _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x53a20e10 thaw_bdev +EXPORT_SYMBOL vmlinux 0x53abb574 blk_init_tags +EXPORT_SYMBOL vmlinux 0x53bb01e2 vm_stat +EXPORT_SYMBOL vmlinux 0x53da6dcd scsi_get_command +EXPORT_SYMBOL vmlinux 0x53e8e6fc single_open_size +EXPORT_SYMBOL vmlinux 0x53f2ef10 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x5409775b free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x54152e04 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x544b0c11 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x5464538f __idr_remove_all +EXPORT_SYMBOL vmlinux 0x5470e015 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x548c63c6 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54c1c165 textsearch_register +EXPORT_SYMBOL vmlinux 0x54c80c4c __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x54d3ac92 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x54d4fdb6 dev_driver_string +EXPORT_SYMBOL vmlinux 0x54e3cc3b param_get_int +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54efb5d6 cpu_number +EXPORT_SYMBOL vmlinux 0x5517cda3 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x551de102 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x553e8d20 default_llseek +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x5567c227 kernel_cpustat +EXPORT_SYMBOL vmlinux 0x556c2740 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x557c1bee fb_blank +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55b0adae pci_find_capability +EXPORT_SYMBOL vmlinux 0x55b416f9 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x55c0420b sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x55d54a63 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x55d8bef0 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x55dcfc8f nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x55ecd3a4 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x55f72815 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x560bd9ee input_grab_device +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563be56f netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x563fa961 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x5656077e iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x5676a3e5 intel_scu_ipc_ioread8 +EXPORT_SYMBOL vmlinux 0x568e7c73 __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0x56a0bcde i2c_clients_command +EXPORT_SYMBOL vmlinux 0x56a505ca vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x56a6640f genphy_suspend +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56d41d20 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x5705088a __vmalloc +EXPORT_SYMBOL vmlinux 0x570ecdbc proto_unregister +EXPORT_SYMBOL vmlinux 0x5711ce1f inet_sendpage +EXPORT_SYMBOL vmlinux 0x57120d5c mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x575af70c on_each_cpu_mask +EXPORT_SYMBOL vmlinux 0x575d89cf skb_flow_dissect +EXPORT_SYMBOL vmlinux 0x57646928 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x577885d2 pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0x5780a55a udp_proc_register +EXPORT_SYMBOL vmlinux 0x57829458 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x578c8011 dquot_disable +EXPORT_SYMBOL vmlinux 0x578e80f4 dev_add_pack +EXPORT_SYMBOL vmlinux 0x57974d54 thaw_super +EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x57a1ef2b blkdev_put +EXPORT_SYMBOL vmlinux 0x57a9ec68 gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x584a2e51 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x586103be acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x587616f1 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x588d13ad init_net +EXPORT_SYMBOL vmlinux 0x5892d54c acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x58b4e6a5 PDE_DATA +EXPORT_SYMBOL vmlinux 0x58f0bc24 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x58f1f7e2 blk_free_tags +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x592b59af acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5989544e pci_save_state +EXPORT_SYMBOL vmlinux 0x5990aaab scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x599a3dd6 _raw_write_unlock_irq +EXPORT_SYMBOL vmlinux 0x59b627ad __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59dda4af tty_port_hangup +EXPORT_SYMBOL vmlinux 0x59e5bb51 dquot_enable +EXPORT_SYMBOL vmlinux 0x59eb54be vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0x59f81fa4 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x5a15b90a build_skb +EXPORT_SYMBOL vmlinux 0x5a2aa62e __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x5a33fd00 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x5a41cc83 netif_skb_dev_features +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a5536c2 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x5a66cc6e processors +EXPORT_SYMBOL vmlinux 0x5a7a5ac1 x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0x5a9a0976 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x5ac21822 irq_stat +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5afd232a generic_ro_fops +EXPORT_SYMBOL vmlinux 0x5b119af0 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b266029 write_cache_pages +EXPORT_SYMBOL vmlinux 0x5b271d86 acpi_video_dmi_promote_vendor +EXPORT_SYMBOL vmlinux 0x5b3efc39 skb_store_bits +EXPORT_SYMBOL vmlinux 0x5b58d349 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0x5b86a145 ipv4_specific +EXPORT_SYMBOL vmlinux 0x5bbe5f22 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x5bc8d583 copy_from_user_overflow +EXPORT_SYMBOL vmlinux 0x5bdb88fb kobject_del +EXPORT_SYMBOL vmlinux 0x5be1b1aa gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x5be8ae5c tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x5bf68e32 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x5c154bce submit_bio +EXPORT_SYMBOL vmlinux 0x5c3edd59 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x5c545234 ucs2_strncmp +EXPORT_SYMBOL vmlinux 0x5c582e89 get_agp_version +EXPORT_SYMBOL vmlinux 0x5c67da3b serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0x5c6ef3bc __sb_end_write +EXPORT_SYMBOL vmlinux 0x5ca1706f kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x5cb5e1c7 block_write_end +EXPORT_SYMBOL vmlinux 0x5cc5fda0 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x5cf29c0a xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x5cf470b5 stop_tty +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5d13ee9f qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x5d29dacd __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x5d3d507f nla_reserve +EXPORT_SYMBOL vmlinux 0x5d41c87c param_ops_charp +EXPORT_SYMBOL vmlinux 0x5d550c4d scsi_sd_probe_domain +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5d866540 writeback_in_progress +EXPORT_SYMBOL vmlinux 0x5d879960 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x5dbf1ff4 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x5dce6b75 complete_and_exit +EXPORT_SYMBOL vmlinux 0x5e02ba6b sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x5e3429a7 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x5e6abff9 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x5e77ace0 dquot_commit +EXPORT_SYMBOL vmlinux 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e974058 tty_hangup +EXPORT_SYMBOL vmlinux 0x5ea1c392 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ebb98d9 dm_put_device +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5efde423 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f0739df vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f1786ed tty_register_driver +EXPORT_SYMBOL vmlinux 0x5f19364e generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x5f1a4ccf intel_scu_ipc_update_register +EXPORT_SYMBOL vmlinux 0x5f1a751b netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0x5f216c70 __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x5f27544a mempool_destroy +EXPORT_SYMBOL vmlinux 0x5f289c24 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x5f32f0a2 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x5f3c8f5c mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x5f58f676 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x5f807e93 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x5f81c740 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x5fb5407c seq_read +EXPORT_SYMBOL vmlinux 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL vmlinux 0x5fd2e308 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x5fda0227 vfs_stat +EXPORT_SYMBOL vmlinux 0x5fdfdcc9 __mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x5fe41fb6 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x6010528f blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x60379279 mem_cgroup_subsys +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x606fcc8b vga_switcheroo_set_dynamic_switch +EXPORT_SYMBOL vmlinux 0x6077c9f0 ip_check_defrag +EXPORT_SYMBOL vmlinux 0x60963381 phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b2e38a rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x60b86f61 sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x60c0dc0f neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x60df1e3b posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x60e039c9 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x60f710e4 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x61090203 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x612a0fb7 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x61374f94 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x614383c0 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0x61538ad0 param_get_charp +EXPORT_SYMBOL vmlinux 0x6169e565 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x6175a9dc bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x617e9876 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x6183b601 migrate_page +EXPORT_SYMBOL vmlinux 0x6186a2ba __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x619b187b add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x61b3217d __devm_release_region +EXPORT_SYMBOL vmlinux 0x61b5ade0 down_write +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61bd7990 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x61c231c0 mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x61c97106 kill_block_super +EXPORT_SYMBOL vmlinux 0x61cb2967 ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x61d747d5 release_sock +EXPORT_SYMBOL vmlinux 0x61d7ffb3 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x61ddaa50 sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0x61e1fa6c kern_unmount +EXPORT_SYMBOL vmlinux 0x61ea5d4c simple_dentry_operations +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x621d77a0 sleep_on +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6226b9fa machine_to_phys_mapping +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x622fa02a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x6241a2ab __copy_from_user_ll_nocache +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62746c7c netif_rx +EXPORT_SYMBOL vmlinux 0x62795344 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0x62822d05 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x628ba2c7 fb_show_logo +EXPORT_SYMBOL vmlinux 0x6298aef6 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x62cb4cee interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x62d4922b tty_lock_pair +EXPORT_SYMBOL vmlinux 0x62e56e6e clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x62f08124 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x630c62d2 devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0x631011a4 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x63153fc5 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x63443390 set_device_ro +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x63727d5a mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x63747984 dev_set_group +EXPORT_SYMBOL vmlinux 0x63a01291 acpi_leave_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x63a6bcc9 acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0x63ae0138 intel_gtt_get +EXPORT_SYMBOL vmlinux 0x63cb76c5 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x63dfeb8a vc_resize +EXPORT_SYMBOL vmlinux 0x63e64de5 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x63eb022e scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63fb66dc pid_task +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x64039714 arp_send +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x643c5fd3 md_write_end +EXPORT_SYMBOL vmlinux 0x645bbd2a dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x647b7942 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x648a82f1 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x64925bb3 __test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x649b6192 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x64a2d77f cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x64a4b84d cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x64b7e132 input_reset_device +EXPORT_SYMBOL vmlinux 0x64bdbc21 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x64d42a25 acpi_pm_device_run_wake +EXPORT_SYMBOL vmlinux 0x64dbe8de xfrm_register_km +EXPORT_SYMBOL vmlinux 0x64df8905 bio_add_page +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x6505c953 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x6510b9f5 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x65125138 acpi_check_address_range +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65205150 ata_std_end_eh +EXPORT_SYMBOL vmlinux 0x65319420 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x6539ad78 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65434a27 mmc_of_parse +EXPORT_SYMBOL vmlinux 0x654d96ef pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x6565d33f scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x65721125 genphy_setup_forced +EXPORT_SYMBOL vmlinux 0x6574af6d nonseekable_open +EXPORT_SYMBOL vmlinux 0x657879ce __init_rwsem +EXPORT_SYMBOL vmlinux 0x657d2acb tcf_hash_search +EXPORT_SYMBOL vmlinux 0x6585e310 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x658984ff sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x659e3ac7 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x65a267cb jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x65a295bb atomic64_xchg_cx8 +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65f3ad9a fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x6605f97f flex_array_clear +EXPORT_SYMBOL vmlinux 0x662d1416 agp_copy_info +EXPORT_SYMBOL vmlinux 0x66355efc vprintk +EXPORT_SYMBOL vmlinux 0x663f7cd0 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0x6653a51a __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x665542ad pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x6662dafa pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x6678b19a pcibios_set_irq_routing +EXPORT_SYMBOL vmlinux 0x667c59ce dquot_resume +EXPORT_SYMBOL vmlinux 0x6687aa86 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a67dab flex_array_shrink +EXPORT_SYMBOL vmlinux 0x66b4850c dquot_file_open +EXPORT_SYMBOL vmlinux 0x66c4e0e3 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x66c8b825 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x66d4a0cd ip_defrag +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6740b766 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x67424d4c skb_clone +EXPORT_SYMBOL vmlinux 0x674bf7f1 tcp_prequeue +EXPORT_SYMBOL vmlinux 0x675b8f61 param_get_string +EXPORT_SYMBOL vmlinux 0x67644e8d scsi_remove_target +EXPORT_SYMBOL vmlinux 0x677423b4 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x67b16e0f netlink_net_capable +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b4183f mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c93d5f __netlink_dump_start +EXPORT_SYMBOL vmlinux 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL vmlinux 0x67dcffb7 lg_lock_init +EXPORT_SYMBOL vmlinux 0x67eb4717 dquot_destroy +EXPORT_SYMBOL vmlinux 0x67f7403e _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x67f7a0f6 vlan_untag +EXPORT_SYMBOL vmlinux 0x6803a163 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x6808d703 unlock_rename +EXPORT_SYMBOL vmlinux 0x680ba43a __pagevec_release +EXPORT_SYMBOL vmlinux 0x682db35e remove_arg_zero +EXPORT_SYMBOL vmlinux 0x682fe8f0 alloc_file +EXPORT_SYMBOL vmlinux 0x684e0953 pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x6850f9e5 tty_mutex +EXPORT_SYMBOL vmlinux 0x6854551c blk_mq_can_queue +EXPORT_SYMBOL vmlinux 0x687835e5 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x687baa6b inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x687df4ec ilookup5 +EXPORT_SYMBOL vmlinux 0x68b83ac6 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x68bdd563 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x68d5bc63 f_setown +EXPORT_SYMBOL vmlinux 0x68dfc59f __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x68e05d57 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x68e2f221 _raw_spin_unlock +EXPORT_SYMBOL vmlinux 0x68f75dd9 crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x69386373 touch_atime +EXPORT_SYMBOL vmlinux 0x69394394 devm_gpio_request +EXPORT_SYMBOL vmlinux 0x693c4ec9 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x6948d6bb bioset_create +EXPORT_SYMBOL vmlinux 0x694c63f7 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x6994029a acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a1404e udp_del_offload +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69ca5a11 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69ec88aa pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a3ed259 inet6_bind +EXPORT_SYMBOL vmlinux 0x6a48e16b percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a614912 pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0x6a651226 input_unregister_device +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a78bb50 may_umount_tree +EXPORT_SYMBOL vmlinux 0x6aa73898 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad85887 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6ae09fad register_console +EXPORT_SYMBOL vmlinux 0x6aed2349 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x6b06fdce delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2d8e81 pci_find_bus +EXPORT_SYMBOL vmlinux 0x6b382082 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0x6b3e1673 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x6b74ef88 I_BDEV +EXPORT_SYMBOL vmlinux 0x6b8633eb pci_release_regions +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6be7c02c directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x6beafb27 mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x6beb2078 param_set_copystring +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp +EXPORT_SYMBOL vmlinux 0x6c386e3f blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c51a836 sysctl_tcp_notsent_lowat +EXPORT_SYMBOL vmlinux 0x6c55f640 spi_dv_device +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c66f9c9 acpi_lock_battery_dir +EXPORT_SYMBOL vmlinux 0x6c6f8a0f _raw_write_unlock +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c71c872 path_put +EXPORT_SYMBOL vmlinux 0x6c793fca mmc_gpio_free_ro +EXPORT_SYMBOL vmlinux 0x6c7b4577 setup_new_exec +EXPORT_SYMBOL vmlinux 0x6c8a115b inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x6ca4f9f5 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x6ca5b0f8 __net_get_random_once +EXPORT_SYMBOL vmlinux 0x6ca723de flush_old_exec +EXPORT_SYMBOL vmlinux 0x6cb0fdbf backlight_device_register +EXPORT_SYMBOL vmlinux 0x6cd80ba2 dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cde073f xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x6d054dd6 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d289c42 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8 +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d438b82 __elv_add_request +EXPORT_SYMBOL vmlinux 0x6d641250 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x6d7f8c43 nf_afinfo +EXPORT_SYMBOL vmlinux 0x6da340c7 key_type_keyring +EXPORT_SYMBOL vmlinux 0x6da8384a pci_enable_msi_range +EXPORT_SYMBOL vmlinux 0x6dada72d dev_addr_flush +EXPORT_SYMBOL vmlinux 0x6dcfd589 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x6dd49166 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x6de7e2b0 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x6def1164 do_SAK +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6df2776c sock_no_accept +EXPORT_SYMBOL vmlinux 0x6dfc72e0 d_instantiate +EXPORT_SYMBOL vmlinux 0x6e305938 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x6e3ae55a always_delete_dentry +EXPORT_SYMBOL vmlinux 0x6e45d479 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x6e51ac2e _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x6e525d99 generic_readlink +EXPORT_SYMBOL vmlinux 0x6e5e5ea0 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x6e65f2dc rtc_lock +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e74d605 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x6e7a2076 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x6e7e51ec jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x6eb87331 vfs_llseek +EXPORT_SYMBOL vmlinux 0x6eb8fbc3 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x6ebc5149 param_ops_long +EXPORT_SYMBOL vmlinux 0x6ed85aa0 mutex_lock +EXPORT_SYMBOL vmlinux 0x6ef1760f pci_bus_get +EXPORT_SYMBOL vmlinux 0x6f03aa89 nf_log_packet +EXPORT_SYMBOL vmlinux 0x6f09052a xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x6f20960a full_name_hash +EXPORT_SYMBOL vmlinux 0x6f4c6b71 lg_local_unlock +EXPORT_SYMBOL vmlinux 0x6f4e3c93 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f6ab766 do_splice_from +EXPORT_SYMBOL vmlinux 0x6f7dc0e1 dst_release +EXPORT_SYMBOL vmlinux 0x6f8c2d52 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x6f9d5c98 sg_miter_stop +EXPORT_SYMBOL vmlinux 0x6f9ec831 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x6fcac05a pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6fedeb04 mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0x6ffbab8d dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x70226e78 dev_load +EXPORT_SYMBOL vmlinux 0x7023bea8 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x702c0f72 twl6040_power +EXPORT_SYMBOL vmlinux 0x70321302 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x703b4352 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x703e3c61 current_task +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x7069bed5 tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0x707109ba devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0x707f43f6 __ctzdi2 +EXPORT_SYMBOL vmlinux 0x707f93dd preempt_schedule +EXPORT_SYMBOL vmlinux 0x7087230f phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x70888f8e mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x70bafe31 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70dbcbc0 set_page_dirty +EXPORT_SYMBOL vmlinux 0x70dd809b cdev_alloc +EXPORT_SYMBOL vmlinux 0x70e72c30 pci_biosrom_size +EXPORT_SYMBOL vmlinux 0x70f2c911 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x70fd85bb alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x710078de unload_nls +EXPORT_SYMBOL vmlinux 0x7110c47c __ip_dev_find +EXPORT_SYMBOL vmlinux 0x7114a71f bit_waitqueue +EXPORT_SYMBOL vmlinux 0x711667ea blk_start_request +EXPORT_SYMBOL vmlinux 0x712379fd generic_read_dir +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x712a0103 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x713f3442 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x71447dc6 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x7167b3d4 __dev_remove_offload +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71804d8a make_bad_inode +EXPORT_SYMBOL vmlinux 0x71863b8a xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x71a29717 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71b11c5e dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x71b597c8 call_netdevice_notifiers_info +EXPORT_SYMBOL vmlinux 0x71b935af phy_drivers_register +EXPORT_SYMBOL vmlinux 0x71e20d2f posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x71f65175 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0x72616d15 sock_wfree +EXPORT_SYMBOL vmlinux 0x72718f6f phy_device_free +EXPORT_SYMBOL vmlinux 0x729b6f44 netlink_set_err +EXPORT_SYMBOL vmlinux 0x72a989d4 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x72ad1135 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b46133 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x72b5b2b7 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72ca1b5a iget5_locked +EXPORT_SYMBOL vmlinux 0x72cd58d9 netdev_err +EXPORT_SYMBOL vmlinux 0x72cd6a5b get_io_context +EXPORT_SYMBOL vmlinux 0x72d58de9 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x72d671d1 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x72dcf86d replace_mount_options +EXPORT_SYMBOL vmlinux 0x72df2f2a up_read +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72ec6f16 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x72f3aa32 acpi_get_physical_device_location +EXPORT_SYMBOL vmlinux 0x72f87180 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7366303a scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x737f169a pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x738803e6 strnlen +EXPORT_SYMBOL vmlinux 0x739be0c8 sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0x73a4c3e9 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x73b47045 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0x73dd54eb irq_fpu_usable +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73e6654d blk_queue_max_write_same_sectors +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x741cae12 tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x74309ffc phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x743b4ae3 atomic64_inc_not_zero_cx8 +EXPORT_SYMBOL vmlinux 0x744782b0 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x744c75e5 do_sync_write +EXPORT_SYMBOL vmlinux 0x74530f1e abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x747195f0 hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x7475c95f twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74881d07 acpi_unlock_battery_dir +EXPORT_SYMBOL vmlinux 0x74898636 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0x74975bd6 misc_deregister +EXPORT_SYMBOL vmlinux 0x74b92741 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x74bb2181 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c97390 seq_open_private +EXPORT_SYMBOL vmlinux 0x74ce05b8 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x74e5c98f ucs2_strnlen +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x74e969b5 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x7505bdef memchr_inv +EXPORT_SYMBOL vmlinux 0x7505c797 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x75093b28 dma_pool_create +EXPORT_SYMBOL vmlinux 0x751e4a1d padata_do_serial +EXPORT_SYMBOL vmlinux 0x7526d0ad jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x7531e3dc acpi_get_event_resources +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x754dac78 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x756ec4ff agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x7570d246 dev_add_offload +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x7598f57b d_obtain_alias +EXPORT_SYMBOL vmlinux 0x759c7704 __module_get +EXPORT_SYMBOL vmlinux 0x75a4311e skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0x75bb675a finish_wait +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75d08c36 led_blink_set_oneshot +EXPORT_SYMBOL vmlinux 0x75d21809 vprintk_emit +EXPORT_SYMBOL vmlinux 0x75e3187d __breadahead +EXPORT_SYMBOL vmlinux 0x75ec13df phy_device_create +EXPORT_SYMBOL vmlinux 0x76041d4c seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x762add85 atomic64_inc_return_cx8 +EXPORT_SYMBOL vmlinux 0x762fed07 inode_reclaim_rsv_space +EXPORT_SYMBOL vmlinux 0x7641ed47 clk_get +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x7678c54e make_kgid +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x769e06d7 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x76a0e79e alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76cb0aed udp_ioctl +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d451c4 add_taint +EXPORT_SYMBOL vmlinux 0x76d78b02 tty_lock +EXPORT_SYMBOL vmlinux 0x76e90b4a dev_warn +EXPORT_SYMBOL vmlinux 0x76ee1648 __cleancache_invalidate_inode +EXPORT_SYMBOL vmlinux 0x76f64fe1 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x77011b5a sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x770a0036 isapnp_cfg_begin +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x772f9eec __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x77456e0a acpi_root_dir +EXPORT_SYMBOL vmlinux 0x775c96b0 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x7767d981 __mutex_init +EXPORT_SYMBOL vmlinux 0x778b0bcb __destroy_inode +EXPORT_SYMBOL vmlinux 0x778f145f __i2c_transfer +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77ab291e kernel_connect +EXPORT_SYMBOL vmlinux 0x77bb723b __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77cdd9e1 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x77dd2efd jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f4b7b1 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x7802f121 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x780fdfd1 intel_enable_gtt +EXPORT_SYMBOL vmlinux 0x7820fc55 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x782567ec memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0x78312b5d scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x783a1d75 blkdev_get +EXPORT_SYMBOL vmlinux 0x783b3563 wake_up_atomic_t +EXPORT_SYMBOL vmlinux 0x783e4fde xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x78711f05 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x789affb1 frontswap_tmem_exclusive_gets +EXPORT_SYMBOL vmlinux 0x789e3f30 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x789f4111 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x78a16987 bh_submit_read +EXPORT_SYMBOL vmlinux 0x78a65142 inet6_release +EXPORT_SYMBOL vmlinux 0x78bb2011 dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0x78d17fe2 vfs_mknod +EXPORT_SYMBOL vmlinux 0x78d32607 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x78db38d3 proc_dointvec +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78ed15c6 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL vmlinux 0x790592bc __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x790cae4c kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x79181b3f single_release +EXPORT_SYMBOL vmlinux 0x791a3c64 dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0x791a9360 tty_unlock +EXPORT_SYMBOL vmlinux 0x79427919 sk_capable +EXPORT_SYMBOL vmlinux 0x794659e4 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x79601c4c tcf_em_register +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x7985aea0 input_register_device +EXPORT_SYMBOL vmlinux 0x7996faab generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x79a528a1 get_user_pages +EXPORT_SYMBOL vmlinux 0x79a56968 filemap_flush +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79b1983d ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x7a188791 prandom_bytes +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a51e313 devm_clk_put +EXPORT_SYMBOL vmlinux 0x7a75952d i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x7a7873b0 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x7a82cb47 rdmsrl_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7a925833 cpufreq_get_global_kobject +EXPORT_SYMBOL vmlinux 0x7a9bf88d udplite_table +EXPORT_SYMBOL vmlinux 0x7a9cd6d2 inet_getname +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7acf97fa __bread +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7ad3f2bc nf_register_hooks +EXPORT_SYMBOL vmlinux 0x7add44b5 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7ae49367 tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7afa89fc vsnprintf +EXPORT_SYMBOL vmlinux 0x7b1089f7 pnp_find_card +EXPORT_SYMBOL vmlinux 0x7b134ddf acpi_get_name +EXPORT_SYMBOL vmlinux 0x7b1ade38 lz4_decompress +EXPORT_SYMBOL vmlinux 0x7b3adf3f vfs_readv +EXPORT_SYMBOL vmlinux 0x7b3c8fd0 pipe_to_file +EXPORT_SYMBOL vmlinux 0x7b426a3a ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x7b4342b2 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b5c8440 vm_munmap +EXPORT_SYMBOL vmlinux 0x7b5d5255 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x7b5d9d7c page_put_link +EXPORT_SYMBOL vmlinux 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL vmlinux 0x7bb0167b tty_do_resize +EXPORT_SYMBOL vmlinux 0x7bc41ff9 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x7bce1cf7 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x7bde80fa kernel_accept +EXPORT_SYMBOL vmlinux 0x7c1372e8 panic +EXPORT_SYMBOL vmlinux 0x7c24eff8 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x7c426cd9 get_fs_type +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c5a6339 d_delete +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7ca6ecc5 lock_may_write +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cc578da param_get_long +EXPORT_SYMBOL vmlinux 0x7cc72f4f dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0x7cdb586b kobject_set_name +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7ce83365 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7d03dad0 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d71430b unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x7d71db48 kset_register +EXPORT_SYMBOL vmlinux 0x7d95d16f neigh_connected_output +EXPORT_SYMBOL vmlinux 0x7d9f8b0c ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x7dba48f7 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x7dbc2e57 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x7dc377ee simple_rmdir +EXPORT_SYMBOL vmlinux 0x7dc9c622 seq_lseek +EXPORT_SYMBOL vmlinux 0x7dc9e844 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x7dcab4f4 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x7dcebd70 __napi_schedule +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7e04a149 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x7e38513c kernel_read +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e51f431 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x7e640c5a elevator_change +EXPORT_SYMBOL vmlinux 0x7e86e46c dev_queue_xmit_accel +EXPORT_SYMBOL vmlinux 0x7e8bbd6a genphy_read_status +EXPORT_SYMBOL vmlinux 0x7e8e969f ndo_dflt_bridge_getlink +EXPORT_SYMBOL vmlinux 0x7e9f76b8 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x7ebf4efa inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7edd30ce ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x7ee73c0c memcg_socket_limit_enabled +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f45ff86 dev_get_nest_level +EXPORT_SYMBOL vmlinux 0x7f56c167 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x7f5e311f xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0x7f658e80 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x7f6f6c15 get_disk +EXPORT_SYMBOL vmlinux 0x7f835c7f eth_mac_addr +EXPORT_SYMBOL vmlinux 0x7f8389f5 netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x7fbc191e update_region +EXPORT_SYMBOL vmlinux 0x7fd6a46e simple_write_begin +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7ff5b520 console_start +EXPORT_SYMBOL vmlinux 0x7ffcb803 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x8009a0c5 mutex_unlock +EXPORT_SYMBOL vmlinux 0x80309b22 genl_notify +EXPORT_SYMBOL vmlinux 0x803ac2cf rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x804745d9 __idr_pre_get +EXPORT_SYMBOL vmlinux 0x804f922a ipmi_addr_length +EXPORT_SYMBOL vmlinux 0x807955c0 simple_link +EXPORT_SYMBOL vmlinux 0x8084b54c from_kgid_munged +EXPORT_SYMBOL vmlinux 0x809e5f16 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x80b14be9 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x80c1495f xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x80c21623 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x80c2705e __napi_complete +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80d9ca85 paravirt_ticketlocks_enabled +EXPORT_SYMBOL vmlinux 0x80e0773f generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x811c7716 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x812c3074 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x8150c0ba mempool_resize +EXPORT_SYMBOL vmlinux 0x8152f4d6 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815c56d0 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x815f2795 inet_listen +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x818058f0 d_find_alias +EXPORT_SYMBOL vmlinux 0x819e1c25 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x81d04813 phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81e8572d lro_receive_frags +EXPORT_SYMBOL vmlinux 0x81e886ff bio_copy_data +EXPORT_SYMBOL vmlinux 0x81e89a52 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x81eb7563 spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x82486a89 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x8248905a pnp_start_dev +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x8269e12a try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x828062b1 __frontswap_init +EXPORT_SYMBOL vmlinux 0x828f5582 wake_up_process +EXPORT_SYMBOL vmlinux 0x829bd68c __bforget +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82c287ae inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x83207c53 dma_set_mask +EXPORT_SYMBOL vmlinux 0x832224fc tty_port_close +EXPORT_SYMBOL vmlinux 0x83271fda load_nls +EXPORT_SYMBOL vmlinux 0x833c03aa acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x833cd8c7 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x833d4dc6 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x83477010 set_bh_page +EXPORT_SYMBOL vmlinux 0x838c569e __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x839c38ef gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83a6a31f deactivate_super +EXPORT_SYMBOL vmlinux 0x83a74a5d __nla_reserve +EXPORT_SYMBOL vmlinux 0x83a9bbe6 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x83b0cae5 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x83bfe5ab pcie_set_mps +EXPORT_SYMBOL vmlinux 0x83c12c60 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x83c7f6a3 phy_find_first +EXPORT_SYMBOL vmlinux 0x83db69fe scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x83ddb07d xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x84060081 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x8406ede2 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x840f7dec page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x8415da51 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x8417f512 acpi_update_all_gpes +EXPORT_SYMBOL vmlinux 0x841962f8 param_get_ushort +EXPORT_SYMBOL vmlinux 0x84478b94 skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x84638bf6 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x8468a496 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x847c4b23 security_inode_permission +EXPORT_SYMBOL vmlinux 0x84ba3853 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x84be886f completion_done +EXPORT_SYMBOL vmlinux 0x84d939d0 mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x84e968d4 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x84ffea8b idr_preload +EXPORT_SYMBOL vmlinux 0x8509c540 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0x8518eca9 param_get_short +EXPORT_SYMBOL vmlinux 0x8535d45d spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0x853bf7c1 param_set_int +EXPORT_SYMBOL vmlinux 0x8550c5c2 bioset_free +EXPORT_SYMBOL vmlinux 0x85517d1d jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x8563d59d register_xen_selfballooning +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856e7040 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x85915e56 inode_change_ok +EXPORT_SYMBOL vmlinux 0x85ad1326 pci_target_state +EXPORT_SYMBOL vmlinux 0x85af3b96 unlock_page +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85bc3bf5 frontswap_register_ops +EXPORT_SYMBOL vmlinux 0x85df6b10 pcim_iomap +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85f37044 netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0x86044f87 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x86145c3d pci_enable_msi_block_auto +EXPORT_SYMBOL vmlinux 0x861fba98 wait_for_completion_io +EXPORT_SYMBOL vmlinux 0x86341410 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x86540fbd padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x8672294f simple_rename +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x8698dca9 __ps2_command +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86abf9ef account_page_redirty +EXPORT_SYMBOL vmlinux 0x86b6e8d3 netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x86d51b9e rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0x86d5255f _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x86f71901 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x87173c18 dev_get_flags +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x871f39c2 read_cache_page +EXPORT_SYMBOL vmlinux 0x8724b263 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x873882d6 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x8766d92c pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x876b325b alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x876f2d5f rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x8779a34f param_ops_byte +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87926978 freeze_bdev +EXPORT_SYMBOL vmlinux 0x8798e453 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87b0d94b mmc_can_reset +EXPORT_SYMBOL vmlinux 0x87b6eb56 vga_switcheroo_get_client_state +EXPORT_SYMBOL vmlinux 0x87c2039d phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x87e1532b vm_mmap +EXPORT_SYMBOL vmlinux 0x87f2cbe1 fbcon_rotate_ccw +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x882dab9d sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x88513970 param_set_byte +EXPORT_SYMBOL vmlinux 0x885231c1 consume_skb +EXPORT_SYMBOL vmlinux 0x886a8d1f __genl_register_family +EXPORT_SYMBOL vmlinux 0x88994ebf rename_lock +EXPORT_SYMBOL vmlinux 0x88a89b5d __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x88ab2703 vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0x88e56b87 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x88f28273 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x891e99df from_kprojid +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x894a2350 icmpv6_send +EXPORT_SYMBOL vmlinux 0x8953f8ff __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x8956a88c register_netdev +EXPORT_SYMBOL vmlinux 0x8962f512 read_code +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x898266e5 tcp_proto_cgroup +EXPORT_SYMBOL vmlinux 0x89964ba4 page_address +EXPORT_SYMBOL vmlinux 0x89a2d81d kill_fasync +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89c6523a pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0x89d40ee9 read_cache_pages +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x8a04d838 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x8a1ab4ee timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8a1d63be account_page_writeback +EXPORT_SYMBOL vmlinux 0x8a2212f4 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a4c0e69 netlink_capable +EXPORT_SYMBOL vmlinux 0x8a51d565 quota_send_warning +EXPORT_SYMBOL vmlinux 0x8a54abf4 finish_no_open +EXPORT_SYMBOL vmlinux 0x8a5dfc25 dentry_unhash +EXPORT_SYMBOL vmlinux 0x8a6611e4 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a80d7a5 acpi_error +EXPORT_SYMBOL vmlinux 0x8a886181 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aa02c8d devm_iounmap +EXPORT_SYMBOL vmlinux 0x8aa94534 key_invalidate +EXPORT_SYMBOL vmlinux 0x8abaadf0 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x8abbb0ec dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0x8abc65c5 misc_register +EXPORT_SYMBOL vmlinux 0x8af0ff37 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b1ee31c blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x8b226a81 acpi_video_dmi_demote_vendor +EXPORT_SYMBOL vmlinux 0x8b2f0914 scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b43159b register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x8b56616e __frontswap_test +EXPORT_SYMBOL vmlinux 0x8b5aa42c open_exec +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b6a76b5 padata_stop +EXPORT_SYMBOL vmlinux 0x8b6b1fa4 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x8b8c2562 lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8b9db8f7 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x8baa45a4 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x8bc8363a __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x8bcc3a2a vm_map_ram +EXPORT_SYMBOL vmlinux 0x8bd464be blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x8be28318 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x8bea0d01 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x8bece640 mntput +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c44de2c uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x8c637d43 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x8c6a730c wait_iff_congested +EXPORT_SYMBOL vmlinux 0x8c744642 key_put +EXPORT_SYMBOL vmlinux 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL vmlinux 0x8c931640 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x8c9473e0 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x8cad773c end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cc9e903 input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x8cce409d neigh_for_each +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8d0a5cca truncate_pagecache +EXPORT_SYMBOL vmlinux 0x8d2e268b param_ops_ulong +EXPORT_SYMBOL vmlinux 0x8d3ddde8 rtmsg_ifinfo +EXPORT_SYMBOL vmlinux 0x8d410702 inet6_del_offload +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d553bc0 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d5a9e28 idr_get_next +EXPORT_SYMBOL vmlinux 0x8d698bb2 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8da1a3cb acpi_remove_interface +EXPORT_SYMBOL vmlinux 0x8dac34ff kill_anon_super +EXPORT_SYMBOL vmlinux 0x8daf8c42 dql_init +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8dd0d517 seq_open +EXPORT_SYMBOL vmlinux 0x8dd8c1c4 start_tty +EXPORT_SYMBOL vmlinux 0x8ddf4e89 blk_start_queue +EXPORT_SYMBOL vmlinux 0x8def8d30 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x8df06cbc pci_iomap +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0a97de input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x8e0d66f4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x8e1e1ff2 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x8e20dd09 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x8e2c8ac6 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x8e2cf963 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x8e864a86 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x8e87aed4 idr_for_each +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8eb5668c kernel_listen +EXPORT_SYMBOL vmlinux 0x8ec81d05 security_path_chmod +EXPORT_SYMBOL vmlinux 0x8ee35d30 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x8f045d1c cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x8f17483a tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f35196a netif_device_detach +EXPORT_SYMBOL vmlinux 0x8f648024 __pskb_copy +EXPORT_SYMBOL vmlinux 0x8f67af0a vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x8f6fb77c pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fc941fa qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x8fd9e5f1 audit_log_start +EXPORT_SYMBOL vmlinux 0x8ff4079b pv_irq_ops +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x9004aa20 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x9012e82a simple_transaction_get +EXPORT_SYMBOL vmlinux 0x902cd80f kmalloc_dma_caches +EXPORT_SYMBOL vmlinux 0x9034faf2 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x9077b732 acpi_gpiochip_request_interrupts +EXPORT_SYMBOL vmlinux 0x908b53ed param_set_short +EXPORT_SYMBOL vmlinux 0x908c2e95 ipmi_get_smi_info +EXPORT_SYMBOL vmlinux 0x90b8a05b jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x90c5e819 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x90c9ccfa xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x90cf8ffb genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x9106c468 tty_free_termios +EXPORT_SYMBOL vmlinux 0x912360d0 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x91243a14 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x91319c54 input_register_handler +EXPORT_SYMBOL vmlinux 0x913980f4 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x913e86c7 mmc_add_host +EXPORT_SYMBOL vmlinux 0x9141ec9e proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x9142e1e0 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x91504b1b tcp_disconnect +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x9170091f locks_copy_lock +EXPORT_SYMBOL vmlinux 0x917011a2 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x917187d7 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x9188d947 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x91967e8e xen_selfballoon_init +EXPORT_SYMBOL vmlinux 0x91bf57eb pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0x91d6d6e9 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x91dc6f10 dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x91e46bc5 netdev_alert +EXPORT_SYMBOL vmlinux 0x91fdad84 kdb_current_task +EXPORT_SYMBOL vmlinux 0x92205991 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x92308b2e d_prune_aliases +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x925520d2 blk_start_plug +EXPORT_SYMBOL vmlinux 0x9262f9de scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x9272dff0 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x929e9c0f ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x92a9c60c time_to_tm +EXPORT_SYMBOL vmlinux 0x92e5da46 blk_get_request +EXPORT_SYMBOL vmlinux 0x92f5cad4 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x930ad0ba mutex_trylock +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x93350a14 idr_find_slowpath +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x934d8f99 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0x935f9a34 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid +EXPORT_SYMBOL vmlinux 0x93965c32 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93b6f8a4 init_task +EXPORT_SYMBOL vmlinux 0x93fab7bd pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x94015837 fb_find_mode +EXPORT_SYMBOL vmlinux 0x9457729c mmc_detect_change +EXPORT_SYMBOL vmlinux 0x948248ad proc_set_size +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x9499b9e4 registered_fb +EXPORT_SYMBOL vmlinux 0x94a8bb44 kthread_stop +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94bab9fa freeze_super +EXPORT_SYMBOL vmlinux 0x94baff93 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x94c01434 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x94c5005d ps2_command +EXPORT_SYMBOL vmlinux 0x94ce9be7 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x94df2970 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x94e91854 sg_miter_next +EXPORT_SYMBOL vmlinux 0x94f0603b vfs_open +EXPORT_SYMBOL vmlinux 0x9508f166 param_ops_bint +EXPORT_SYMBOL vmlinux 0x950f7bba skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x951957a1 input_open_device +EXPORT_SYMBOL vmlinux 0x951d1cf6 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x95395301 acpi_exception +EXPORT_SYMBOL vmlinux 0x9543f09f tcf_register_action +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x955673f0 pci_enable_obff +EXPORT_SYMBOL vmlinux 0x955cb74a twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x95701fd6 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x959c62ba udp_prot +EXPORT_SYMBOL vmlinux 0x95a3ed20 mmc_free_host +EXPORT_SYMBOL vmlinux 0x95c411d9 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x95dba8b4 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0x95dd354d inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x95df5ce2 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x95e1bc51 free_xenballooned_pages +EXPORT_SYMBOL vmlinux 0x95e6e500 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x95f0bf9b inet_addr_type +EXPORT_SYMBOL vmlinux 0x95f89a33 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x96013210 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x961cb1a9 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x96247492 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x962ffa3d inet_shutdown +EXPORT_SYMBOL vmlinux 0x9634c9e3 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x963a1434 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x9651da2f inet_put_port +EXPORT_SYMBOL vmlinux 0x965629b0 __alloc_skb +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x966ebab6 i2c_use_client +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x96a078da tcp_init_cgroup +EXPORT_SYMBOL vmlinux 0x96a9c879 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x96ac993e get_tz_trend +EXPORT_SYMBOL vmlinux 0x96b97a82 serio_rescan +EXPORT_SYMBOL vmlinux 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d99f43 set_trace_device +EXPORT_SYMBOL vmlinux 0x9734dc8d bdev_read_only +EXPORT_SYMBOL vmlinux 0x973fa82e register_acpi_notifier +EXPORT_SYMBOL vmlinux 0x974538f9 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x97792c7e put_io_context +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x97a60e3d param_get_bool +EXPORT_SYMBOL vmlinux 0x97b4500c __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x97b47faa pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0x97b59586 lg_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x97b7e8d7 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x97bbd407 __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0x97c5bd0a acpi_unload_parent_table +EXPORT_SYMBOL vmlinux 0x97dcef29 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97fe6848 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x98008724 skb_unlink +EXPORT_SYMBOL vmlinux 0x9820b644 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x9834f617 proc_set_user +EXPORT_SYMBOL vmlinux 0x98503a08 _raw_spin_unlock_irq +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x9881f1ca xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x98a344ef devm_free_irq +EXPORT_SYMBOL vmlinux 0x98c400a4 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x98cec8f1 dev_err +EXPORT_SYMBOL vmlinux 0x98d180c2 inode_init_once +EXPORT_SYMBOL vmlinux 0x98d70c73 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x98e03aa1 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x98e5099b jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x990a225d devm_gpio_free +EXPORT_SYMBOL vmlinux 0x991097f7 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x991a6348 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x991b5dcc sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x991d9cff gen10g_suspend +EXPORT_SYMBOL vmlinux 0x99246efe phy_start +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x99591a7a ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x995952af twl6040_set_bits +EXPORT_SYMBOL vmlinux 0x996f7809 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x9986bd82 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x9987f32e sk_stream_error +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a6c653 get_super_thawed +EXPORT_SYMBOL vmlinux 0x99c584cf inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99da9954 arp_find +EXPORT_SYMBOL vmlinux 0x99e03d12 adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0x99e31d86 sock_no_getname +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1e47cd dev_get_by_index +EXPORT_SYMBOL vmlinux 0x9a1fc4b4 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9a2b7693 follow_down_one +EXPORT_SYMBOL vmlinux 0x9a34d041 __find_get_block +EXPORT_SYMBOL vmlinux 0x9a4956fd pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9a7fdaec pnp_device_detach +EXPORT_SYMBOL vmlinux 0x9a8919fe md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0x9ab187d5 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x9ab74b5f pci_alloc_dev +EXPORT_SYMBOL vmlinux 0x9acb3dd3 set_anon_super +EXPORT_SYMBOL vmlinux 0x9aedc1ee inet_release +EXPORT_SYMBOL vmlinux 0x9af04e2a dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x9b23bd11 dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x9b288095 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b34b6c5 inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b58a7b4 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x9b597d72 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x9b6b4f0b user_path_at +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b75cb81 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x9b75d798 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x9b8757f2 netdev_notice +EXPORT_SYMBOL vmlinux 0x9b8bc72c pci_clear_master +EXPORT_SYMBOL vmlinux 0x9b8ddd1a free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x9b9015eb blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x9b9e05f9 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x9b9e61c3 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bb98309 block_commit_write +EXPORT_SYMBOL vmlinux 0x9be7bde4 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x9c03e258 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x9c1820ef dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x9c2c944a __copy_from_user_ll_nocache_nozero +EXPORT_SYMBOL vmlinux 0x9c3a44dd i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x9c3a5026 gen_pool_free +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c58503c ip_fragment +EXPORT_SYMBOL vmlinux 0x9c8ecd26 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9cc68c18 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x9cea51ad input_allocate_device +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfaf706 crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d04b048 dst_destroy +EXPORT_SYMBOL vmlinux 0x9d05f6c4 ktime_get_clocktai +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d17c846 __memcg_kmem_get_cache +EXPORT_SYMBOL vmlinux 0x9d1b5cf3 dev_change_carrier +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d47523b swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x9d82bc5d inet_stream_connect +EXPORT_SYMBOL vmlinux 0x9d8dfe06 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x9d90f95f __crc32c_le_combine +EXPORT_SYMBOL vmlinux 0x9da50752 nf_nat_decode_session_hook +EXPORT_SYMBOL vmlinux 0x9db122d3 sock_wake_async +EXPORT_SYMBOL vmlinux 0x9de81d8e register_netdevice +EXPORT_SYMBOL vmlinux 0x9de9c2c9 phy_attach +EXPORT_SYMBOL vmlinux 0x9dfe7307 lz4_decompress_unknownoutputsize +EXPORT_SYMBOL vmlinux 0x9e062226 generic_fillattr +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e0cb471 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x9e0f1779 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x9e11ddcc free_task +EXPORT_SYMBOL vmlinux 0x9e1f1594 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e2539af iput +EXPORT_SYMBOL vmlinux 0x9e29bf8c skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x9e34de36 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x9e363b6b acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x9e4b3747 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e5d4d21 user_revoke +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e74fb62 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e83197a generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x9e8c665e skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ea7fce2 devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x9eb838cf page_readlink +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ed26d76 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x9ed2eec7 param_set_ushort +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9ee159dc ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0x9ee52da8 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x9f0400ed tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x9f139c48 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x9f26f5ce register_qdisc +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2ca664 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x9f2d2415 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x9f33f288 igrab +EXPORT_SYMBOL vmlinux 0x9f45e644 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x9f46617f __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f491e5d ftrace_print_symbols_seq_u64 +EXPORT_SYMBOL vmlinux 0x9f54e394 set_pages_wb +EXPORT_SYMBOL vmlinux 0x9f6646ae __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fbcbfbd sock_from_file +EXPORT_SYMBOL vmlinux 0x9fd50979 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0xa000bb0f netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xa00aca2a dql_completed +EXPORT_SYMBOL vmlinux 0xa01bccfa mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0xa032e8df twl6040_get_pll +EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa08a165c km_policy_notify +EXPORT_SYMBOL vmlinux 0xa0963f93 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xa0966e4b unregister_shrinker +EXPORT_SYMBOL vmlinux 0xa0a3d7b6 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0da1b02 key_revoke +EXPORT_SYMBOL vmlinux 0xa0dad88e netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0f78ac1 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0fbb37a ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa115c471 register_md_personality +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa12993c5 touch_buffer +EXPORT_SYMBOL vmlinux 0xa1409c37 mmc_put_card +EXPORT_SYMBOL vmlinux 0xa1476117 pci_disable_ido +EXPORT_SYMBOL vmlinux 0xa14ac75a tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa150a874 blk_mq_alloc_single_hw_queue +EXPORT_SYMBOL vmlinux 0xa163f925 dev_mc_add +EXPORT_SYMBOL vmlinux 0xa16fe2d3 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xa172d210 bio_integrity_split +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1ca1abc __skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0xa1f207b5 skb_insert +EXPORT_SYMBOL vmlinux 0xa1f31591 skb_tx_error +EXPORT_SYMBOL vmlinux 0xa1f392bf i8042_install_filter +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa233e75f pci_write_vpd +EXPORT_SYMBOL vmlinux 0xa2458ed0 bdi_destroy +EXPORT_SYMBOL vmlinux 0xa2504b90 inet_del_offload +EXPORT_SYMBOL vmlinux 0xa252652b qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xa2567a2a xfrm_garbage_collect +EXPORT_SYMBOL vmlinux 0xa2611330 capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0xa268005e ppp_register_channel +EXPORT_SYMBOL vmlinux 0xa26e8395 kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL vmlinux 0xa28c2865 pci_select_bars +EXPORT_SYMBOL vmlinux 0xa2985699 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL vmlinux 0xa2b58c58 netif_napi_add +EXPORT_SYMBOL vmlinux 0xa2bf4a5b security_path_mkdir +EXPORT_SYMBOL vmlinux 0xa2c43787 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xa2df56a0 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa307e527 inet_stream_ops +EXPORT_SYMBOL vmlinux 0xa30dc971 d_alloc_name +EXPORT_SYMBOL vmlinux 0xa31539d9 blk_make_request +EXPORT_SYMBOL vmlinux 0xa339e0cb netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0xa33d9a48 acpi_decode_pld_buffer +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa3504378 rwsem_wake +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa363dab4 udp_table +EXPORT_SYMBOL vmlinux 0xa3bb2683 zerocopy_sg_from_iovec +EXPORT_SYMBOL vmlinux 0xa3d64b23 phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0xa41f7323 scsi_print_result +EXPORT_SYMBOL vmlinux 0xa43a073a security_inode_init_security +EXPORT_SYMBOL vmlinux 0xa43b1297 vscnprintf +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa4402c7d xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xa45904cb pipe_lock +EXPORT_SYMBOL vmlinux 0xa4701e9e timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0xa4b2c766 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4cb3e12 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0xa4d0caf7 md_unregister_thread +EXPORT_SYMBOL vmlinux 0xa4d1d6e0 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4e4a0ca d_find_any_alias +EXPORT_SYMBOL vmlinux 0xa4eb4eff _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xa50498f3 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa53befe3 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xa54b41e8 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa559c128 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xa55b00ce kmem_cache_create +EXPORT_SYMBOL vmlinux 0xa55b6346 ether_setup +EXPORT_SYMBOL vmlinux 0xa569ad50 netdev_features_change +EXPORT_SYMBOL vmlinux 0xa570ddce dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5adcf7c bio_copy_user +EXPORT_SYMBOL vmlinux 0xa5cf4370 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xa5f4389f tty_write_room +EXPORT_SYMBOL vmlinux 0xa62487ff vfs_create +EXPORT_SYMBOL vmlinux 0xa62e6e4f acpi_get_table_with_size +EXPORT_SYMBOL vmlinux 0xa63a2f9b param_get_ulong +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa640173a con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xa642f6c7 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xa6465f24 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xa6715115 do_settimeofday +EXPORT_SYMBOL vmlinux 0xa6737187 __inode_permission +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa67da660 mempool_alloc +EXPORT_SYMBOL vmlinux 0xa67e2845 dq_data_lock +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa6a0e3d5 simple_dir_operations +EXPORT_SYMBOL vmlinux 0xa6a640ae blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xa6b13658 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xa6bd63ca acpi_bios_error +EXPORT_SYMBOL vmlinux 0xa6bec6a3 gen10g_config_advert +EXPORT_SYMBOL vmlinux 0xa6c7a6d8 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xa6c93053 pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa7275765 sock_create +EXPORT_SYMBOL vmlinux 0xa7343def sk_wait_data +EXPORT_SYMBOL vmlinux 0xa735db59 prandom_u32 +EXPORT_SYMBOL vmlinux 0xa73fb341 dquot_initialize +EXPORT_SYMBOL vmlinux 0xa741254c _dev_info +EXPORT_SYMBOL vmlinux 0xa7457b60 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xa7470005 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xa7710f17 kmalloc_caches +EXPORT_SYMBOL vmlinux 0xa7791c6e skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xa782fa34 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xa786bed8 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xa7cf6c2f atomic64_dec_return_cx8 +EXPORT_SYMBOL vmlinux 0xa7d6348c napi_get_frags +EXPORT_SYMBOL vmlinux 0xa7e59645 input_event +EXPORT_SYMBOL vmlinux 0xa7fc66e7 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xa814dcdd elv_rb_add +EXPORT_SYMBOL vmlinux 0xa81a1c4a dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa834d973 vga_client_register +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa84b2b4f padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0xa84c366a filemap_fault +EXPORT_SYMBOL vmlinux 0xa85a71e5 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0xa870234a mddev_congested +EXPORT_SYMBOL vmlinux 0xa8721b97 system_state +EXPORT_SYMBOL vmlinux 0xa875af80 ppp_input_error +EXPORT_SYMBOL vmlinux 0xa8850aaf unregister_binfmt +EXPORT_SYMBOL vmlinux 0xa8869e5b kfree_skb_partial +EXPORT_SYMBOL vmlinux 0xa89986c9 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8bf1c2c tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xa8c6947f security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xa8d0f945 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xa8e2187f poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xa8e27940 acpi_pm_device_sleep_state +EXPORT_SYMBOL vmlinux 0xa8f708b4 pci_dev_put +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa92d2a2b security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xa93458b2 ata_dev_printk +EXPORT_SYMBOL vmlinux 0xa9a8e17f arch_phys_wc_add +EXPORT_SYMBOL vmlinux 0xaa2aa72d proc_remove +EXPORT_SYMBOL vmlinux 0xaa494ff2 nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa8fea18 acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0xaa9087c0 param_ops_string +EXPORT_SYMBOL vmlinux 0xaa984798 free_user_ns +EXPORT_SYMBOL vmlinux 0xaaa3df7d netdev_notify_peers +EXPORT_SYMBOL vmlinux 0xaab4b256 pci_remove_bus +EXPORT_SYMBOL vmlinux 0xaabddffd lease_modify +EXPORT_SYMBOL vmlinux 0xaad5282f netdev_printk +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaae017bf dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaec9f21 unlock_buffer +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab28271c i8253_lock +EXPORT_SYMBOL vmlinux 0xab346e4f ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab694444 bsearch +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xabb3e1c1 ata_port_printk +EXPORT_SYMBOL vmlinux 0xabc6dd63 cpufreq_sysfs_create_file +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabcbdea8 input_free_device +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd21f31 blk_run_queue +EXPORT_SYMBOL vmlinux 0xabe2bbbc scsi_prep_return +EXPORT_SYMBOL vmlinux 0xabe8760b skb_trim +EXPORT_SYMBOL vmlinux 0xabe93873 pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0xabf282b0 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac18117a generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac2d2fb8 gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0xac302aa7 mmc_set_blockcount +EXPORT_SYMBOL vmlinux 0xac56fc03 __block_write_begin +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac690ca1 lock_may_read +EXPORT_SYMBOL vmlinux 0xac6c0701 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xaca04f52 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xaca44012 kunmap_high +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacb36aac set_bdi_congested +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xaccd6a54 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad235260 spi_release_transport +EXPORT_SYMBOL vmlinux 0xad2a8bd2 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0xad430222 __inet6_hash +EXPORT_SYMBOL vmlinux 0xad57e526 eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0xad6ec039 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0xad7fa8e9 mapping_tagged +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad99ac32 __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xadcac151 vfs_rename +EXPORT_SYMBOL vmlinux 0xadd32ad2 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0xaddba765 con_copy_unimap +EXPORT_SYMBOL vmlinux 0xaded5135 i2c_master_send +EXPORT_SYMBOL vmlinux 0xae15a59b fb_is_primary_device +EXPORT_SYMBOL vmlinux 0xae42373a skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0xae4879ac clocksource_register +EXPORT_SYMBOL vmlinux 0xae68e858 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xae729e59 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0xae7b6861 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0xae7e3e09 pci_disable_device +EXPORT_SYMBOL vmlinux 0xae9bfdc3 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaeab7eba qdisc_destroy +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaefb45a8 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xaf16bfce phy_connect_direct +EXPORT_SYMBOL vmlinux 0xaf2b0da5 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf4b1540 acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xaf611eac amd_nb_misc_ids +EXPORT_SYMBOL vmlinux 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL vmlinux 0xaf6bde5c follow_up +EXPORT_SYMBOL vmlinux 0xaf848630 del_gendisk +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf9d9ecc __register_nmi_handler +EXPORT_SYMBOL vmlinux 0xafa7680f would_dump +EXPORT_SYMBOL vmlinux 0xafad493b param_ops_ushort +EXPORT_SYMBOL vmlinux 0xafb6f855 elv_rb_del +EXPORT_SYMBOL vmlinux 0xafcccf09 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xafd736a9 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xafe8be4d pci_disable_obff +EXPORT_SYMBOL vmlinux 0xafe98247 netdev_info +EXPORT_SYMBOL vmlinux 0xafeb28af proc_symlink +EXPORT_SYMBOL vmlinux 0xaff6bab9 dev_get_by_name +EXPORT_SYMBOL vmlinux 0xb01b1db8 intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0xb0207ecf ___ratelimit +EXPORT_SYMBOL vmlinux 0xb028e9bd jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xb02a7389 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0xb054e8c1 find_get_page +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb077fcea __frontswap_load +EXPORT_SYMBOL vmlinux 0xb0877136 pci_get_class +EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0a9fa36 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0d20682 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0ea6460 security_path_rmdir +EXPORT_SYMBOL vmlinux 0xb0ea6a48 handle_edge_irq +EXPORT_SYMBOL vmlinux 0xb0fd5452 napi_gro_flush +EXPORT_SYMBOL vmlinux 0xb0ffda2f blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12a4a69 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb1306755 unregister_key_type +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb1677c4f dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb198459e isapnp_protocol +EXPORT_SYMBOL vmlinux 0xb1a3999f ip6_route_output +EXPORT_SYMBOL vmlinux 0xb1c0837b register_framebuffer +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cf44df fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1d9523e wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1db9e4e param_get_invbool +EXPORT_SYMBOL vmlinux 0xb1e527e2 input_register_handle +EXPORT_SYMBOL vmlinux 0xb1e5f1ed neigh_parms_release +EXPORT_SYMBOL vmlinux 0xb1eef70e nf_setsockopt +EXPORT_SYMBOL vmlinux 0xb20cdfa7 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xb214ed87 end_page_writeback +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb231c6f7 udp_add_offload +EXPORT_SYMBOL vmlinux 0xb23ce3ae linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xb25b1558 netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb26ee1f3 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xb273626b neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xb2744b36 down_write_trylock +EXPORT_SYMBOL vmlinux 0xb2947494 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xb2977b06 framebuffer_release +EXPORT_SYMBOL vmlinux 0xb29c6dd3 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xb2b2303c dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0xb2b94674 __crc32c_le +EXPORT_SYMBOL vmlinux 0xb2ba00f6 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xb2be6e92 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xb2c19e5f xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xb2d48a2e queue_work_on +EXPORT_SYMBOL vmlinux 0xb2dbb1c6 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xb2e998c4 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xb2f74fb6 intel_gmch_remove +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb321b99b clear_nlink +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb34ef535 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb35aa275 get_phy_device +EXPORT_SYMBOL vmlinux 0xb36290e4 sock_init_data +EXPORT_SYMBOL vmlinux 0xb36cb47b neigh_table_clear +EXPORT_SYMBOL vmlinux 0xb3820ad3 revalidate_disk +EXPORT_SYMBOL vmlinux 0xb3a6ccb1 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xb3d51bd1 d_add_ci +EXPORT_SYMBOL vmlinux 0xb3e0590d acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0xb3e66a0a nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xb3f06f6c ppp_input +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb406e574 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xb41a01b8 netlink_unicast +EXPORT_SYMBOL vmlinux 0xb42280d7 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb44c1c34 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb455c4bb from_kgid +EXPORT_SYMBOL vmlinux 0xb45b707c simple_setattr +EXPORT_SYMBOL vmlinux 0xb46f9877 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb483ab28 dma_common_get_sgtable +EXPORT_SYMBOL vmlinux 0xb4bfff76 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xb4c4de51 dm_io +EXPORT_SYMBOL vmlinux 0xb4ce0205 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0xb4ee3630 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xb527db89 notify_change +EXPORT_SYMBOL vmlinux 0xb52ee8be intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0xb5313c6f napi_gro_receive +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54bf1e4 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xb54cf103 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xb55b02b9 fifo_set_limit +EXPORT_SYMBOL vmlinux 0xb56f0de0 register_gifconf +EXPORT_SYMBOL vmlinux 0xb57343c2 frontswap_shrink +EXPORT_SYMBOL vmlinux 0xb5880ed2 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5d8fe01 input_set_keycode +EXPORT_SYMBOL vmlinux 0xb5f8823c may_umount +EXPORT_SYMBOL vmlinux 0xb5fe133a abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0xb620d515 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb6394d4b param_set_bint +EXPORT_SYMBOL vmlinux 0xb655c108 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0xb667c4aa dquot_acquire +EXPORT_SYMBOL vmlinux 0xb668946d ps2_drain +EXPORT_SYMBOL vmlinux 0xb6754d99 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb683b72b bdi_register_dev +EXPORT_SYMBOL vmlinux 0xb686745f pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6b46a7c param_ops_int +EXPORT_SYMBOL vmlinux 0xb6badb76 console_stop +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6c78935 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xb6e9cbd6 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb70cc579 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb77131b1 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xb7983b12 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7f55ecc atomic64_add_return_cx8 +EXPORT_SYMBOL vmlinux 0xb81960ca snprintf +EXPORT_SYMBOL vmlinux 0xb81a87e6 seq_pad +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb863f597 pnpbios_protocol +EXPORT_SYMBOL vmlinux 0xb874b87a __clzsi2 +EXPORT_SYMBOL vmlinux 0xb8782426 eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0xb87b5064 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0xb891126c scsi_register_driver +EXPORT_SYMBOL vmlinux 0xb895ff3a __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xb8ad883f generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xb8af3ca5 dquot_transfer +EXPORT_SYMBOL vmlinux 0xb8c4c94f tcp_make_synack +EXPORT_SYMBOL vmlinux 0xb8c928c2 phy_attach_direct +EXPORT_SYMBOL vmlinux 0xb8d73e97 param_set_uint +EXPORT_SYMBOL vmlinux 0xb8ddf859 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8e877e7 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb94e5f95 lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0xb9500857 mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0xb96411c4 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xb9688262 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xb96a880c splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb98a7d7d km_state_expired +EXPORT_SYMBOL vmlinux 0xb9b09fe3 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xb9b53d22 ht_create_irq +EXPORT_SYMBOL vmlinux 0xb9cbbcab bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xb9dee41e xfrm_state_update +EXPORT_SYMBOL vmlinux 0xb9e8e2cc in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xb9ffcd0b __nlmsg_put +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba3f5e59 sk_stop_timer +EXPORT_SYMBOL vmlinux 0xba40e5f4 blk_bio_map_sg +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba532082 blk_run_queue_async +EXPORT_SYMBOL vmlinux 0xba6ba8d1 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0xba8ea6ad rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xbaa744f1 __getblk +EXPORT_SYMBOL vmlinux 0xbab83a80 seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0xbab90006 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xbad730b6 inode_permission +EXPORT_SYMBOL vmlinux 0xbafadd0e tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb3542bb scsi_execute +EXPORT_SYMBOL vmlinux 0xbb4a586c __devm_request_region +EXPORT_SYMBOL vmlinux 0xbb5728df nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb713e6d sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0xbb78c3cb skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xbb8a0f4e sock_recvmsg +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba1078b iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xbbaa16f9 tcp_read_sock +EXPORT_SYMBOL vmlinux 0xbbc2ad3d prepare_binprm +EXPORT_SYMBOL vmlinux 0xbbcd0bbe tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xbbe3b3fc devfreq_add_governor +EXPORT_SYMBOL vmlinux 0xbbe9c271 tty_name +EXPORT_SYMBOL vmlinux 0xbc1afedf up_write +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc27430f input_unregister_handle +EXPORT_SYMBOL vmlinux 0xbc435770 dump_stack +EXPORT_SYMBOL vmlinux 0xbc4a0f84 tty_register_device +EXPORT_SYMBOL vmlinux 0xbc5ede62 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xbc65ad64 napi_gro_frags +EXPORT_SYMBOL vmlinux 0xbc7f746d cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xbca2db35 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xbcb4d18b cap_mmap_file +EXPORT_SYMBOL vmlinux 0xbcba2cd3 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcd16abd cad_pid +EXPORT_SYMBOL vmlinux 0xbcecd25d dst_alloc +EXPORT_SYMBOL vmlinux 0xbcef10ea pci_release_region +EXPORT_SYMBOL vmlinux 0xbcf87d0f dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xbcfccf85 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0xbcfcf27c agp_bind_memory +EXPORT_SYMBOL vmlinux 0xbd0611d7 i2c_transfer +EXPORT_SYMBOL vmlinux 0xbd332b2f skb_pull +EXPORT_SYMBOL vmlinux 0xbd45f585 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xbd78ae64 udp_poll +EXPORT_SYMBOL vmlinux 0xbd8b3de7 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0xbd9435d2 dquot_drop +EXPORT_SYMBOL vmlinux 0xbda19801 ab3100_event_register +EXPORT_SYMBOL vmlinux 0xbdaa0465 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xbdba9828 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0xbe00578f neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xbe079e9c simple_open +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe1d7d09 udp_seq_open +EXPORT_SYMBOL vmlinux 0xbe2a0dd3 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe2d86b7 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xbe4af0e7 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xbe507758 rfkill_alloc +EXPORT_SYMBOL vmlinux 0xbe683335 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xbe8c37d9 intel_scu_ipc_simple_command +EXPORT_SYMBOL vmlinux 0xbe9c4098 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xbe9f8244 ip6_frag_match +EXPORT_SYMBOL vmlinux 0xbea0ce61 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xbea91e9a serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xbea9e5b1 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xbeb7ec90 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xbec30d05 x86_match_cpu +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbee933b8 tty_unthrottle +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbefe5be1 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xbf2d4847 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xbf3c480b tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xbf7a69c0 skb_append +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present +EXPORT_SYMBOL vmlinux 0xbf99492a ata_print_version +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfed193e mdiobus_scan +EXPORT_SYMBOL vmlinux 0xbfed309b bdevname +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc007f004 dev_addr_del +EXPORT_SYMBOL vmlinux 0xc00a3c36 phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0xc015ea68 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xc01c0adb inet_select_addr +EXPORT_SYMBOL vmlinux 0xc01cf848 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc06e77c7 agp_find_bridge +EXPORT_SYMBOL vmlinux 0xc0744438 generic_removexattr +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc09204f4 simple_transaction_release +EXPORT_SYMBOL vmlinux 0xc0a29ee4 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0a86c94 seq_escape +EXPORT_SYMBOL vmlinux 0xc0a8ff16 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xc0b5cdc4 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xc0d8c743 alloc_xenballooned_pages +EXPORT_SYMBOL vmlinux 0xc0f14ce1 i2c_release_client +EXPORT_SYMBOL vmlinux 0xc12ec3a6 dns_query +EXPORT_SYMBOL vmlinux 0xc14f5f6b input_set_abs_params +EXPORT_SYMBOL vmlinux 0xc153a016 audit_log +EXPORT_SYMBOL vmlinux 0xc17650f1 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0xc1b15219 skb_copy +EXPORT_SYMBOL vmlinux 0xc1b82d22 register_shrinker +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1c70bf9 install_exec_creds +EXPORT_SYMBOL vmlinux 0xc1cfe197 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xc1e30543 dma_supported +EXPORT_SYMBOL vmlinux 0xc1ff2037 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xc21b54e5 genphy_update_link +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc2484a8b blk_mq_map_queue +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll +EXPORT_SYMBOL vmlinux 0xc293a804 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xc298129b agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0xc2a8abd6 pci_set_ltr +EXPORT_SYMBOL vmlinux 0xc2b13860 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0xc2bc9700 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0xc2c1792b blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2dffe45 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xc2e38a2e remove_proc_entry +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f9c045 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xc3007d60 d_alloc +EXPORT_SYMBOL vmlinux 0xc327e564 kset_unregister +EXPORT_SYMBOL vmlinux 0xc32a5d75 vfs_read +EXPORT_SYMBOL vmlinux 0xc349d3d2 scsi_target_resume +EXPORT_SYMBOL vmlinux 0xc37642c5 sg_miter_start +EXPORT_SYMBOL vmlinux 0xc379cb12 netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc3fdd790 kfree_skb_list +EXPORT_SYMBOL vmlinux 0xc4052099 inet_bind +EXPORT_SYMBOL vmlinux 0xc40a328c pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0xc40eac07 pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0xc41b00dd xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xc41e8f7a wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xc41f0516 node_states +EXPORT_SYMBOL vmlinux 0xc43b8a38 bdgrab +EXPORT_SYMBOL vmlinux 0xc4554217 up +EXPORT_SYMBOL vmlinux 0xc4695ac6 prepare_creds +EXPORT_SYMBOL vmlinux 0xc47035bb mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0xc47038dc __invalidate_device +EXPORT_SYMBOL vmlinux 0xc480b8f0 km_state_notify +EXPORT_SYMBOL vmlinux 0xc483c8ac simple_pin_fs +EXPORT_SYMBOL vmlinux 0xc48efcb3 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xc4974f95 devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49f7889 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xc4cdc869 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xc4deb00f tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xc4df9e31 netif_carrier_off +EXPORT_SYMBOL vmlinux 0xc4e6858c input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0xc4e84245 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xc4ed1910 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0xc505c18e kfree_put_link +EXPORT_SYMBOL vmlinux 0xc507f4c1 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xc51e68b6 tcp_seq_open +EXPORT_SYMBOL vmlinux 0xc52a68a6 mb_cache_create +EXPORT_SYMBOL vmlinux 0xc53572e0 ftrace_raw_output_prep +EXPORT_SYMBOL vmlinux 0xc54621ce blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xc548e2d9 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc55d71e4 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xc572d543 tty_set_operations +EXPORT_SYMBOL vmlinux 0xc57ab7bc proc_dostring +EXPORT_SYMBOL vmlinux 0xc587c1b4 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xc589e044 param_set_long +EXPORT_SYMBOL vmlinux 0xc59bc69c blk_rq_init +EXPORT_SYMBOL vmlinux 0xc5a9d7f8 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xc5d7f836 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5e10e57 simple_statfs +EXPORT_SYMBOL vmlinux 0xc5fdef94 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc6341f95 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xc63cc125 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xc643557d blk_stop_queue +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc65c907c skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0xc65e6280 pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0xc6645b42 mempool_create_node +EXPORT_SYMBOL vmlinux 0xc67608e4 scsi_init_io +EXPORT_SYMBOL vmlinux 0xc6a6513b blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xc6b23120 intel_scu_ipc_iowrite16 +EXPORT_SYMBOL vmlinux 0xc6b368d3 acpi_gpe_count +EXPORT_SYMBOL vmlinux 0xc6bea941 padata_alloc +EXPORT_SYMBOL vmlinux 0xc6c643e3 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6ef756a inet6_protos +EXPORT_SYMBOL vmlinux 0xc705cc93 pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc721a28b pneigh_lookup +EXPORT_SYMBOL vmlinux 0xc729f502 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xc7396f99 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xc73be8e6 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0xc7448a94 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xc7616784 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc78699cf blk_mq_free_single_hw_queue +EXPORT_SYMBOL vmlinux 0xc78d0c46 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7ab0587 sk_filter +EXPORT_SYMBOL vmlinux 0xc7d2d7e8 x86_hyper_xen_hvm +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc80214b9 cdev_del +EXPORT_SYMBOL vmlinux 0xc807f371 sock_update_classid +EXPORT_SYMBOL vmlinux 0xc8276a79 nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xc8339e24 string_unescape +EXPORT_SYMBOL vmlinux 0xc83b4d5b posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xc83ca05f __kfree_skb +EXPORT_SYMBOL vmlinux 0xc83e49d3 key_payload_reserve +EXPORT_SYMBOL vmlinux 0xc8403b6e __scsi_add_device +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc84ee841 scsi_ioctl +EXPORT_SYMBOL vmlinux 0xc86d6799 ___preempt_schedule +EXPORT_SYMBOL vmlinux 0xc870e503 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc89a6ce5 blk_mq_free_queue +EXPORT_SYMBOL vmlinux 0xc8ad892c write_dirty_buffer +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8c23e0b __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0xc8d9d0e3 blk_mq_run_queues +EXPORT_SYMBOL vmlinux 0xc8e90ce6 vga_switcheroo_register_audio_client +EXPORT_SYMBOL vmlinux 0xc91536b0 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xc92811d1 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xc936600a dmam_pool_create +EXPORT_SYMBOL vmlinux 0xc94afdd6 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0xc95c984e seq_bitmap +EXPORT_SYMBOL vmlinux 0xc960dbed padata_do_parallel +EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0xc978628c agp_create_memory +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc9a03792 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0xc9a9642b tcp_check_req +EXPORT_SYMBOL vmlinux 0xc9abcae0 vlan_vid_del +EXPORT_SYMBOL vmlinux 0xc9bd40ed inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xc9cb3bb1 mmc_gpio_free_cd +EXPORT_SYMBOL vmlinux 0xc9ddb6c2 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0xca1751c8 dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xca303e9c cdrom_release +EXPORT_SYMBOL vmlinux 0xca3cf41b __dquot_free_space +EXPORT_SYMBOL vmlinux 0xca46afe7 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xca538d75 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xca589746 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca860953 key_task_permission +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xca938d4c jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xca975d12 sock_no_bind +EXPORT_SYMBOL vmlinux 0xcacb0ac8 bdget +EXPORT_SYMBOL vmlinux 0xcacce61f devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0xcace8020 generic_make_request +EXPORT_SYMBOL vmlinux 0xcaef27c6 loop_register_transfer +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb07f41d unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xcb0a030c mmc_gpio_request_cd +EXPORT_SYMBOL vmlinux 0xcb0c5d50 param_get_uint +EXPORT_SYMBOL vmlinux 0xcb0e4abb skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0xcb1ae50d security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xcb25982b agp_unbind_memory +EXPORT_SYMBOL vmlinux 0xcb3d1878 wireless_send_event +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb8e2af4 update_time +EXPORT_SYMBOL vmlinux 0xcb9a3014 vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0xcb9ad186 phy_start_aneg +EXPORT_SYMBOL vmlinux 0xcbae31c9 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xcbae6c7a acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbd45a69 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xcbf3d0da ip6_expire_frag_queue +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc37f55c blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xcc4d1bfb atomic64_read_cx8 +EXPORT_SYMBOL vmlinux 0xcc4efb1c bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5b27b5 acpi_extract_package +EXPORT_SYMBOL vmlinux 0xcc67669c xfrm_init_state +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xccc21f5e input_get_new_minor +EXPORT_SYMBOL vmlinux 0xccd6ed7e request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xcce7ba8e phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xcd1b08e3 __ht_create_irq +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd2abcfb dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xcd53bb2e ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcdc40fae panic_notifier_list +EXPORT_SYMBOL vmlinux 0xcdd55639 sock_wmalloc +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcde36b55 block_truncate_page +EXPORT_SYMBOL vmlinux 0xce1e9dd1 blk_end_request +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce32e435 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xce36aed2 free_buffer_head +EXPORT_SYMBOL vmlinux 0xce3e1578 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce4ee5e2 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce732703 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xce87498d scsi_add_device +EXPORT_SYMBOL vmlinux 0xce88efb4 boot_cpu_data +EXPORT_SYMBOL vmlinux 0xcea99904 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xcee127d5 mmc_start_req +EXPORT_SYMBOL vmlinux 0xcee29c27 __bio_clone +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xceff14d0 mpage_writepages +EXPORT_SYMBOL vmlinux 0xcf01f3ee blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xcf1fd00e __inet_stream_connect +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf8f301d cdrom_check_events +EXPORT_SYMBOL vmlinux 0xcfa38f6a pagecache_write_end +EXPORT_SYMBOL vmlinux 0xcfccdf08 seq_release_private +EXPORT_SYMBOL vmlinux 0xcfe05d4d register_kmmio_probe +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd0216784 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0xd0379c7f vm_insert_page +EXPORT_SYMBOL vmlinux 0xd0422342 devm_ioremap +EXPORT_SYMBOL vmlinux 0xd05dcdbd agp_put_bridge +EXPORT_SYMBOL vmlinux 0xd0720a17 on_each_cpu_cond +EXPORT_SYMBOL vmlinux 0xd0a18de0 simple_lookup +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0d1f1a5 get_write_access +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f0d945 down_read +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd0ff0859 pci_get_slot +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd12415bc blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xd13252e3 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xd140854c padata_free +EXPORT_SYMBOL vmlinux 0xd140fd4a mdiobus_write +EXPORT_SYMBOL vmlinux 0xd145f453 simple_getattr +EXPORT_SYMBOL vmlinux 0xd14ff40c mount_single +EXPORT_SYMBOL vmlinux 0xd157a35c blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xd1652a93 acpi_info +EXPORT_SYMBOL vmlinux 0xd1816f32 frontswap_writethrough +EXPORT_SYMBOL vmlinux 0xd1891db4 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd196c9be kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xd1acbf87 phy_stop +EXPORT_SYMBOL vmlinux 0xd1f001e5 pnp_possible_config +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd204ba88 get_task_io_context +EXPORT_SYMBOL vmlinux 0xd20755c6 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xd220cf8a jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0xd2329de3 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd255d199 netpoll_setup +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd266efe7 mempool_create +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd282c63e pci_disable_msix +EXPORT_SYMBOL vmlinux 0xd2af138b reservation_ww_class +EXPORT_SYMBOL vmlinux 0xd2b22ad8 find_lock_page +EXPORT_SYMBOL vmlinux 0xd2cf9973 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2dc93b8 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xd2e6a582 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd2e9dc9f kmap_atomic +EXPORT_SYMBOL vmlinux 0xd3080157 scsi_register +EXPORT_SYMBOL vmlinux 0xd31fd5cc skb_checksum +EXPORT_SYMBOL vmlinux 0xd330f070 pci_set_master +EXPORT_SYMBOL vmlinux 0xd333b98c elevator_init +EXPORT_SYMBOL vmlinux 0xd34f3951 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0xd35818c7 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0xd35e249a _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0xd37d3c77 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xd3ce090d blk_requeue_request +EXPORT_SYMBOL vmlinux 0xd3dcab0b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xd3e03ce4 dev_change_flags +EXPORT_SYMBOL vmlinux 0xd3eb7d9f get_super +EXPORT_SYMBOL vmlinux 0xd403bacf rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0xd41a10a3 set_nlink +EXPORT_SYMBOL vmlinux 0xd4398b5e dev_mc_init +EXPORT_SYMBOL vmlinux 0xd43c3616 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xd448315a inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xd45f31e9 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0xd46fe350 blk_get_queue +EXPORT_SYMBOL vmlinux 0xd4835ef8 dmi_check_system +EXPORT_SYMBOL vmlinux 0xd49b8caa jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xd4c3b174 printk_emit +EXPORT_SYMBOL vmlinux 0xd4e9c4fe key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xd4f8d0b3 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd5111458 netdev_update_features +EXPORT_SYMBOL vmlinux 0xd52f2ead blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0xd53a42d5 serio_unregister_port +EXPORT_SYMBOL vmlinux 0xd53cd06d seq_release +EXPORT_SYMBOL vmlinux 0xd5440834 blk_put_request +EXPORT_SYMBOL vmlinux 0xd55f62dd posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xd560d53e ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xd58d1442 spi_attach_transport +EXPORT_SYMBOL vmlinux 0xd5af9767 new_inode +EXPORT_SYMBOL vmlinux 0xd5b32e19 __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0xd5bccba3 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xd5ccecdb gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd5f30865 mark_page_accessed +EXPORT_SYMBOL vmlinux 0xd5fe478a do_truncate +EXPORT_SYMBOL vmlinux 0xd611e941 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd62abc39 _raw_read_unlock +EXPORT_SYMBOL vmlinux 0xd63f58ff d_splice_alias +EXPORT_SYMBOL vmlinux 0xd648e564 fb_match_mode +EXPORT_SYMBOL vmlinux 0xd6761ca4 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xd67c36fa abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xd67f369f wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xd6855f88 __quota_error +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6b7e36b inode_dio_wait +EXPORT_SYMBOL vmlinux 0xd6c21dc8 bio_alloc_pages +EXPORT_SYMBOL vmlinux 0xd6cdaf2c setattr_copy +EXPORT_SYMBOL vmlinux 0xd6d979ad udp_sendmsg +EXPORT_SYMBOL vmlinux 0xd6dd2a9e tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f0c15e ppp_dev_name +EXPORT_SYMBOL vmlinux 0xd6f816dc devm_gpiod_get_index +EXPORT_SYMBOL vmlinux 0xd7046bca generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0xd7056423 __skb_gso_segment +EXPORT_SYMBOL vmlinux 0xd7113ad4 pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0xd738d6cb netdev_crit +EXPORT_SYMBOL vmlinux 0xd73ab553 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xd751bcae read_dev_sector +EXPORT_SYMBOL vmlinux 0xd753f905 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xd75c64a0 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd760eea3 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0xd76ba2e8 padata_add_cpu +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd79c8203 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xd7a43212 override_creds +EXPORT_SYMBOL vmlinux 0xd7a72f45 dquot_commit_info +EXPORT_SYMBOL vmlinux 0xd7bd3af2 add_wait_queue +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7dfb640 inet_frag_kill +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd7ec174d eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xd802d974 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xd8235d28 tty_port_open +EXPORT_SYMBOL vmlinux 0xd83ec32e napi_complete +EXPORT_SYMBOL vmlinux 0xd847d952 unregister_md_personality +EXPORT_SYMBOL vmlinux 0xd85833cb __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0xd8879d1d unregister_qdisc +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8c2efe6 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xd8c724a2 security_path_rename +EXPORT_SYMBOL vmlinux 0xd8c72cf0 ifla_policy +EXPORT_SYMBOL vmlinux 0xd8da6f5b devm_ioport_map +EXPORT_SYMBOL vmlinux 0xd8dcd73a nf_reinject +EXPORT_SYMBOL vmlinux 0xd8ded085 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd91bae2c keyring_clear +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd959b708 lock_rename +EXPORT_SYMBOL vmlinux 0xd969b2c7 amd_e400_c1e_detected +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd988fb4a scsi_print_command +EXPORT_SYMBOL vmlinux 0xd990546c lg_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xd9a9bb30 getname +EXPORT_SYMBOL vmlinux 0xd9d2c713 tty_unlock_pair +EXPORT_SYMBOL vmlinux 0xd9e1511c input_release_device +EXPORT_SYMBOL vmlinux 0xd9f4d0e8 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xd9f96bbd posix_test_lock +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda0c3849 idr_destroy +EXPORT_SYMBOL vmlinux 0xda1dbd7f search_binary_handler +EXPORT_SYMBOL vmlinux 0xda2478d0 param_ops_short +EXPORT_SYMBOL vmlinux 0xda3a4fdc generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda5ba4d3 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xda641ac1 pci_match_id +EXPORT_SYMBOL vmlinux 0xda6bcdb2 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda83653f blkdev_fsync +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8f0920 tcp_gso_segment +EXPORT_SYMBOL vmlinux 0xda8fd495 isapnp_write_byte +EXPORT_SYMBOL vmlinux 0xdaa4a503 poll_initwait +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdaed6486 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xdaf0b99f dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xdb018ded mnt_pin +EXPORT_SYMBOL vmlinux 0xdb49c66d sock_update_memcg +EXPORT_SYMBOL vmlinux 0xdb58eb0b agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0xdb5aef9d qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb80d788 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xdbabb195 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xdbb0e193 __neigh_event_send +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbddcd70 generic_setlease +EXPORT_SYMBOL vmlinux 0xdbe822e0 sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0xdbf91dc1 ida_init +EXPORT_SYMBOL vmlinux 0xdbffe7cb blk_mq_end_io +EXPORT_SYMBOL vmlinux 0xdc01bab7 inode_init_owner +EXPORT_SYMBOL vmlinux 0xdc02ce57 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc19e63f cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xdc20b69f backlight_force_update +EXPORT_SYMBOL vmlinux 0xdc235fa0 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xdc3740fe phy_get_eee_err +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc470e25 netif_carrier_on +EXPORT_SYMBOL vmlinux 0xdc570f62 lg_global_unlock +EXPORT_SYMBOL vmlinux 0xdc57f532 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0xdc8ce51e sget +EXPORT_SYMBOL vmlinux 0xdc971356 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0xdcbbdb5d vfs_link +EXPORT_SYMBOL vmlinux 0xdcd41a57 dquot_scan_active +EXPORT_SYMBOL vmlinux 0xdce227af dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xdd0a0873 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd111d3d tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xdd1a2871 down +EXPORT_SYMBOL vmlinux 0xdd1d04a0 kill_litter_super +EXPORT_SYMBOL vmlinux 0xdd249399 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xdd24f6d1 netdev_warn +EXPORT_SYMBOL vmlinux 0xdd26a6fb swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0xdd2dc207 check_disk_change +EXPORT_SYMBOL vmlinux 0xdd5d92c3 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xdd7ec69e tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xddba93e0 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xddd0a0e0 kobject_init +EXPORT_SYMBOL vmlinux 0xdde16f6b scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xdde4f7bf task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xde10eb10 param_set_invbool +EXPORT_SYMBOL vmlinux 0xde15c1ee max8998_bulk_read +EXPORT_SYMBOL vmlinux 0xde16dc16 tboot +EXPORT_SYMBOL vmlinux 0xde1d5d35 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0xde274ecb d_invalidate +EXPORT_SYMBOL vmlinux 0xde2820f3 mmc_stop_bkops +EXPORT_SYMBOL vmlinux 0xde325fd4 register_cdrom +EXPORT_SYMBOL vmlinux 0xde3729c5 uart_resume_port +EXPORT_SYMBOL vmlinux 0xde4ac16f blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xde53ab7b vfs_getattr +EXPORT_SYMBOL vmlinux 0xde8d64da xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdeb55231 __frontswap_store +EXPORT_SYMBOL vmlinux 0xdeec0df2 tty_kref_put +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf1653be mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf48a0eb flex_array_put +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf656f14 __cleancache_get_page +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf8fac13 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xdf91f5f5 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf969810 dev_deactivate +EXPORT_SYMBOL vmlinux 0xdfad4215 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfde8513 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0xe02efd9d mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe052ddb9 pci_dev_get +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe088a5dd cleancache_register_ops +EXPORT_SYMBOL vmlinux 0xe098607e inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xe0a16a20 intel_scu_ipc_i2c_cntrl +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b376d3 dcb_setapp +EXPORT_SYMBOL vmlinux 0xe0b918e5 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xe0d56d72 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xe0de7a46 __dst_free +EXPORT_SYMBOL vmlinux 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL vmlinux 0xe1037bd5 iterate_dir +EXPORT_SYMBOL vmlinux 0xe1206d98 devfreq_interval_update +EXPORT_SYMBOL vmlinux 0xe12a4013 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xe12fc4b5 sock_alloc_file +EXPORT_SYMBOL vmlinux 0xe1375e57 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe143bded pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xe15c8968 try_to_release_page +EXPORT_SYMBOL vmlinux 0xe16f6113 sk_dst_check +EXPORT_SYMBOL vmlinux 0xe172815c dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0xe1754731 dev_disable_lro +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe17e37b5 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xe184747a dev_activate +EXPORT_SYMBOL vmlinux 0xe1c560cd input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0xe1c79f26 kfree_skb +EXPORT_SYMBOL vmlinux 0xe1cae912 pnp_register_driver +EXPORT_SYMBOL vmlinux 0xe1ccb734 simple_write_end +EXPORT_SYMBOL vmlinux 0xe1f9487a unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xe1fd14d8 vfs_fsync +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe202921d jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xe2034333 acpi_evaluate_hotplug_ost +EXPORT_SYMBOL vmlinux 0xe22139fa pci_disable_ltr +EXPORT_SYMBOL vmlinux 0xe2244bb7 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xe2364ffa pci_reenable_device +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe250937f inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0xe2662cab jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0xe26874ed md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xe26bfbfe pci_choose_state +EXPORT_SYMBOL vmlinux 0xe2914cfa tcp_splice_read +EXPORT_SYMBOL vmlinux 0xe2974701 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0xe29e1d0e out_of_line_wait_on_atomic_t +EXPORT_SYMBOL vmlinux 0xe2b02565 scsi_register_interface +EXPORT_SYMBOL vmlinux 0xe2b603aa init_buffer +EXPORT_SYMBOL vmlinux 0xe2d0c3bd netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe3091da0 fail_migrate_page +EXPORT_SYMBOL vmlinux 0xe319eb24 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xe3273bd9 __serio_register_port +EXPORT_SYMBOL vmlinux 0xe33415dd scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xe33a0e79 mount_bdev +EXPORT_SYMBOL vmlinux 0xe34e8794 pci_get_device +EXPORT_SYMBOL vmlinux 0xe3b42631 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0xe3bc6180 blk_complete_request +EXPORT_SYMBOL vmlinux 0xe3d4e42f xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe40386b5 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xe40b7aab set_binfmt +EXPORT_SYMBOL vmlinux 0xe45f60d8 __wake_up +EXPORT_SYMBOL vmlinux 0xe471a630 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xe47247f8 empty_aops +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe48a454c set_user_nice +EXPORT_SYMBOL vmlinux 0xe4be20da proc_create_data +EXPORT_SYMBOL vmlinux 0xe4eefbfd padata_start +EXPORT_SYMBOL vmlinux 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL vmlinux 0xe50f904f intel_scu_ipc_ioread16 +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe5208918 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe531f621 register_quota_format +EXPORT_SYMBOL vmlinux 0xe55182e4 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe57f69e3 set_pages_uc +EXPORT_SYMBOL vmlinux 0xe5810a9a generic_show_options +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe591f714 tty_port_init +EXPORT_SYMBOL vmlinux 0xe59a0119 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xe5ab424b ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xe5b5c384 dma_mmap_from_coherent +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ce4393 udp6_csum_init +EXPORT_SYMBOL vmlinux 0xe5d47265 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xe5d51a2b arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0xe5d56467 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5f42f9b eisa_bus_type +EXPORT_SYMBOL vmlinux 0xe5fb42c4 netlink_broadcast +EXPORT_SYMBOL vmlinux 0xe60c038c fget_raw +EXPORT_SYMBOL vmlinux 0xe627a2b8 vfs_writev +EXPORT_SYMBOL vmlinux 0xe62faf45 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xe636bf29 blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0xe64a3fb7 fb_pan_display +EXPORT_SYMBOL vmlinux 0xe64d98fe rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xe67ec92b kill_pid +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe697dae0 blk_register_region +EXPORT_SYMBOL vmlinux 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL vmlinux 0xe6ab9008 blkdev_issue_write_same +EXPORT_SYMBOL vmlinux 0xe6b3fe21 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe71e4c96 neigh_destroy +EXPORT_SYMBOL vmlinux 0xe735e743 first_ec +EXPORT_SYMBOL vmlinux 0xe7409461 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xe74535e1 tc_classify_compat +EXPORT_SYMBOL vmlinux 0xe7634a30 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xe76e9811 nla_append +EXPORT_SYMBOL vmlinux 0xe7722171 flex_array_free +EXPORT_SYMBOL vmlinux 0xe77bc94f aio_complete +EXPORT_SYMBOL vmlinux 0xe781b5f6 intel_scu_ipc_readv +EXPORT_SYMBOL vmlinux 0xe78f4126 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xe798d71c cpu_core_map +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7aaacc7 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xe7b3e2b8 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xe7b8696b __break_lease +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7fc7a81 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xe8064418 mnt_unpin +EXPORT_SYMBOL vmlinux 0xe83619ee pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xe851bb05 queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xe852fa26 freezing_slow_path +EXPORT_SYMBOL vmlinux 0xe866918f mmc_alloc_host +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe88e7a93 lg_global_lock +EXPORT_SYMBOL vmlinux 0xe8955dc7 gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0xe898bfba crc32_le_combine +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8b68849 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0xe8b90ee2 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xe8bd1afa scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xe8bea3bc qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xe8d2e045 agp_backend_release +EXPORT_SYMBOL vmlinux 0xe8d51f59 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xe8d73da6 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0xe8da03fb tcp_ioctl +EXPORT_SYMBOL vmlinux 0xe8db0058 key_link +EXPORT_SYMBOL vmlinux 0xe900c9c8 make_kuid +EXPORT_SYMBOL vmlinux 0xe902c060 pcie_get_mps +EXPORT_SYMBOL vmlinux 0xe90d07fb agp_enable +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91d1846 fsync_bdev +EXPORT_SYMBOL vmlinux 0xe91eecb6 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xe93b3f13 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xe93bee11 thermal_cdev_update +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe976d06f __sb_start_write +EXPORT_SYMBOL vmlinux 0xe97a64c5 find_or_create_page +EXPORT_SYMBOL vmlinux 0xe98d9def kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0xe98e45ab dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9efd671 skb_find_text +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea08ba6f ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea16dd4c tcp_destroy_cgroup +EXPORT_SYMBOL vmlinux 0xea1db042 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0xea21cfba kern_path_create +EXPORT_SYMBOL vmlinux 0xea2944ad i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea7b8a44 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xea8d9a49 generic_writepages +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea9d39ee __lru_cache_add +EXPORT_SYMBOL vmlinux 0xea9d6f54 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xea9f89bd security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0xeaaa08d3 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0xeacaf05c tc_classify +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeb2043e9 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xeb2807d9 ip_route_input_noref +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb55a931 __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xeb83c0da netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0xeb8f3231 d_set_d_op +EXPORT_SYMBOL vmlinux 0xebb1e2c3 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xebca6825 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebe11ad6 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xebf8aff2 pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0xec1aa6ef memzero_explicit +EXPORT_SYMBOL vmlinux 0xec21c476 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec611913 skb_put +EXPORT_SYMBOL vmlinux 0xec7239f4 pipe_unlock +EXPORT_SYMBOL vmlinux 0xec95ad0f __lock_page +EXPORT_SYMBOL vmlinux 0xeca44dac xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xecb721f1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xecc2c1e2 generic_permission +EXPORT_SYMBOL vmlinux 0xeccd3e0c acpi_handle_printk +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xece8a4e3 netpoll_rx_disable +EXPORT_SYMBOL vmlinux 0xecedb9fe sock_no_mmap +EXPORT_SYMBOL vmlinux 0xecf15cb7 tcp_poll +EXPORT_SYMBOL vmlinux 0xed05be15 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xed255756 simple_transaction_read +EXPORT_SYMBOL vmlinux 0xed264711 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xed597524 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xed7e1295 gen_pool_create +EXPORT_SYMBOL vmlinux 0xed86173f security_file_permission +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xed9ef43d sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xed9f9a20 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xedb1e16e vga_tryget +EXPORT_SYMBOL vmlinux 0xedb4609c elv_register_queue +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xede170f3 lockref_get_or_lock +EXPORT_SYMBOL vmlinux 0xee0f5e36 dev_mc_sync +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee552ffc inet_frag_find +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee86cd0f generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder +EXPORT_SYMBOL vmlinux 0xee98ce28 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xeea1dcbe cdrom_open +EXPORT_SYMBOL vmlinux 0xeea2cc7f grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb4132c pci_restore_state +EXPORT_SYMBOL vmlinux 0xeeb6eb60 abx500_register_ops +EXPORT_SYMBOL vmlinux 0xeec0e363 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xeed36ca7 kmap +EXPORT_SYMBOL vmlinux 0xeee65402 inet_register_protosw +EXPORT_SYMBOL vmlinux 0xeef161aa groups_free +EXPORT_SYMBOL vmlinux 0xef1b3968 devm_clk_get +EXPORT_SYMBOL vmlinux 0xef1d35b7 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xef1fcbe8 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xef324580 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xef427841 security_path_mknod +EXPORT_SYMBOL vmlinux 0xef456a41 netlink_ack +EXPORT_SYMBOL vmlinux 0xef610633 inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0xef66ed80 qdisc_list_del +EXPORT_SYMBOL vmlinux 0xef7018c7 generic_file_llseek +EXPORT_SYMBOL vmlinux 0xef98879a tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefc88099 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xefd126f1 eth_header +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefe150b1 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0040079 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xf0051f4b inet6_register_icmp_sender +EXPORT_SYMBOL vmlinux 0xf0187927 __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0xf0408799 dev_mc_del +EXPORT_SYMBOL vmlinux 0xf04203ac request_firmware +EXPORT_SYMBOL vmlinux 0xf044be9b generic_delete_inode +EXPORT_SYMBOL vmlinux 0xf0522f3d netpoll_print_options +EXPORT_SYMBOL vmlinux 0xf05ffa15 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xf0619801 timekeeping_clocktai +EXPORT_SYMBOL vmlinux 0xf06265e5 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf07c3ef3 devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0xf087137d __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0xf09de776 get_random_int +EXPORT_SYMBOL vmlinux 0xf0ce7d50 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xf0d68ed6 clk_register_clkdevs +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf1002188 set_security_override +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf12d331c lg_local_lock +EXPORT_SYMBOL vmlinux 0xf1347b11 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xf13feb57 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0xf147dcb2 hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0xf16a4ca5 cdev_add +EXPORT_SYMBOL vmlinux 0xf18242e1 atomic64_set_cx8 +EXPORT_SYMBOL vmlinux 0xf18fa2cc unregister_nls +EXPORT_SYMBOL vmlinux 0xf190106b dev_remove_offload +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1caff24 write_one_page +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e7b4fa xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1faac3a _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf2357254 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xf23ef76e blk_init_queue +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf24eb131 give_up_console +EXPORT_SYMBOL vmlinux 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL vmlinux 0xf2588325 tcp_parse_options +EXPORT_SYMBOL vmlinux 0xf2676d83 set_pages_x +EXPORT_SYMBOL vmlinux 0xf287ff6b ping_prot +EXPORT_SYMBOL vmlinux 0xf28ed6e2 machine_to_phys_nr +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a0af8f backlight_device_registered +EXPORT_SYMBOL vmlinux 0xf2a7ec60 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xf2b1ac8e __getnstimeofday +EXPORT_SYMBOL vmlinux 0xf2c353df dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xf301def9 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0xf312cb9d ucs2_strsize +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf32055e7 dev_base_lock +EXPORT_SYMBOL vmlinux 0xf333ba0b dm_kobject_release +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf33fad93 uart_suspend_port +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf3580306 mount_pseudo +EXPORT_SYMBOL vmlinux 0xf37260ab _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xf37e8a84 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf3949d4e pv_mmu_ops +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf3986b06 acpi_os_map_generic_address +EXPORT_SYMBOL vmlinux 0xf3ac0f09 pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3de301b scsi_execute_req_flags +EXPORT_SYMBOL vmlinux 0xf3eda21c pci_dev_driver +EXPORT_SYMBOL vmlinux 0xf3f5ef60 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xf4091c4b xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xf40b2297 __crypto_memneq +EXPORT_SYMBOL vmlinux 0xf40dd324 request_key +EXPORT_SYMBOL vmlinux 0xf40fabf6 input_get_keycode +EXPORT_SYMBOL vmlinux 0xf423ff68 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xf4384443 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xf43b2209 genphy_resume +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4533142 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0xf4540eae done_path_create +EXPORT_SYMBOL vmlinux 0xf4562711 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xf466df3f inet_accept +EXPORT_SYMBOL vmlinux 0xf4796d91 eth_type_trans +EXPORT_SYMBOL vmlinux 0xf499779a sock_edemux +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4bda446 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xf4bdbeb9 __frontswap_invalidate_area +EXPORT_SYMBOL vmlinux 0xf4c10fce tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xf4dad281 proc_mkdir +EXPORT_SYMBOL vmlinux 0xf4dc45ed pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f19e51 downgrade_write +EXPORT_SYMBOL vmlinux 0xf502d273 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0xf503a271 from_kprojid_munged +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf521dc7b ipmi_smi_add_proc_entry +EXPORT_SYMBOL vmlinux 0xf53122ef fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xf533b720 softnet_data +EXPORT_SYMBOL vmlinux 0xf536d22e acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0xf5383b79 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5564b3f gen10g_resume +EXPORT_SYMBOL vmlinux 0xf55f140f splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xf571866e vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0xf57f53a6 d_rehash +EXPORT_SYMBOL vmlinux 0xf58043fe pci_enable_ido +EXPORT_SYMBOL vmlinux 0xf5b10e67 acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5e599aa kernel_write +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf61181fc netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xf6188fc5 inet6_unregister_icmp_sender +EXPORT_SYMBOL vmlinux 0xf61e5c0d __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xf624f3cf twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0xf62b1359 netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0xf62fc177 unregister_cdrom +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf64b526b locks_init_lock +EXPORT_SYMBOL vmlinux 0xf64ce5ee icmp_send +EXPORT_SYMBOL vmlinux 0xf6532899 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xf66a0a00 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf68687be __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0xf6ae8aec pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d53b1f skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xf6dca5b1 __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0xf6ddf092 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf726d02f atomic64_add_unless_cx8 +EXPORT_SYMBOL vmlinux 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xf745cb16 atomic64_sub_return_cx8 +EXPORT_SYMBOL vmlinux 0xf74696fc end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7638ecf wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xf7a0c799 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xf7a801db rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xf7ca1001 __scm_destroy +EXPORT_SYMBOL vmlinux 0xf7cc730d tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xf7d2f0f1 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xf7e37635 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf827cb83 free_reserved_area +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82ce506 send_sig +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf8300a19 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xf873a58d max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xf8794975 blk_mq_init_commands +EXPORT_SYMBOL vmlinux 0xf88d0aef bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf8a7d59b serio_close +EXPORT_SYMBOL vmlinux 0xf8bdd854 dev_printk_emit +EXPORT_SYMBOL vmlinux 0xf8be49e0 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xf8cd98a6 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf9461e5e gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xf9478d8a __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xf9551df4 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xf96a55d0 netif_napi_del +EXPORT_SYMBOL vmlinux 0xf97456ea _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xf99de6f4 ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9c367e0 iov_pages +EXPORT_SYMBOL vmlinux 0xf9db384e netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0xf9e73082 scnprintf +EXPORT_SYMBOL vmlinux 0xfa05163d scsi_put_command +EXPORT_SYMBOL vmlinux 0xfa12f313 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xfa132475 dm_get_device +EXPORT_SYMBOL vmlinux 0xfa1f63db pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xfa2ae382 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xfa30957c mempool_free +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa5b1710 md_integrity_register +EXPORT_SYMBOL vmlinux 0xfa7f3156 wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0xfaa4d8fa pnp_activate_dev +EXPORT_SYMBOL vmlinux 0xfab3d5a3 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfad43af4 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xfae3d463 phy_print_status +EXPORT_SYMBOL vmlinux 0xfae67b1f cap_mmap_addr +EXPORT_SYMBOL vmlinux 0xfaf77bfa scsi_device_resume +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0cecfd vm_event_states +EXPORT_SYMBOL vmlinux 0xfb180674 pci_enable_ltr +EXPORT_SYMBOL vmlinux 0xfb271e71 dump_align +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb70dd5a vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb94103e __clzdi2 +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbb3b2f0 dev_crit +EXPORT_SYMBOL vmlinux 0xfbd5a0e7 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xfbd9fe0d blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc06dce3 __skb_checksum +EXPORT_SYMBOL vmlinux 0xfc284cdb sock_setsockopt +EXPORT_SYMBOL vmlinux 0xfc2d6a4e add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc562165 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xfc57fa24 fb_class +EXPORT_SYMBOL vmlinux 0xfc65459a kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xfc7745f5 __get_page_tail +EXPORT_SYMBOL vmlinux 0xfc872fd1 get_ibs_caps +EXPORT_SYMBOL vmlinux 0xfca11a8b dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcac0d40 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL vmlinux 0xfcbef5fd __f_setown +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcc7e1f3 netpoll_rx_enable +EXPORT_SYMBOL vmlinux 0xfccb20f9 km_new_mapping +EXPORT_SYMBOL vmlinux 0xfccb47c9 update_devfreq +EXPORT_SYMBOL vmlinux 0xfce8101b tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcec622c dcache_readdir +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd0192da gen_pool_dma_alloc +EXPORT_SYMBOL vmlinux 0xfd1088e8 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xfd221c55 scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0xfd485ec8 seq_printf +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd6ebf48 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xfd8134d8 blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0xfd865f2e padata_alloc_possible +EXPORT_SYMBOL vmlinux 0xfd99623a ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda4977b proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0xfda8c99e dentry_open +EXPORT_SYMBOL vmlinux 0xfdb287d6 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xfdb4d458 follow_pfn +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdbe0288 pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0xfdc1ceca dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xfdca3dd9 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xfde59a66 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xfdee7d42 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xfe0fd751 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xfe2c18a8 blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0xfe3b4c00 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe61586b tcp_connect +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe8b574e inode_needs_sync +EXPORT_SYMBOL vmlinux 0xfe91404c pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xfe9ebbbb acpi_osi_is_win8 +EXPORT_SYMBOL vmlinux 0xfea3df25 serio_interrupt +EXPORT_SYMBOL vmlinux 0xfec0e7ff dcache_dir_close +EXPORT_SYMBOL vmlinux 0xfed236a5 sk_run_filter +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfeecb7bf dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xfeeeb5cd d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xfefbb140 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff37925a sock_no_poll +EXPORT_SYMBOL vmlinux 0xff379b14 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0xff480992 dump_fpu +EXPORT_SYMBOL vmlinux 0xff51be8e sock_i_uid +EXPORT_SYMBOL vmlinux 0xff624909 mpage_readpage +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff70c36b fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff90b147 bmap +EXPORT_SYMBOL vmlinux 0xff97efaa no_llseek +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffcaab2e tty_port_destroy +EXPORT_SYMBOL vmlinux 0xffcdf884 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffe40633 inet_proto_csum_replace16 +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0x7060bf0a crypto_aes_encrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0xe409b491 crypto_aes_decrypt_x86 +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x04c73c3d glue_cbc_encrypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x2d20bc74 glue_ecb_crypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x57d30b5b glue_xts_crypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x83d9f414 glue_ctr_crypt_final_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x8f02ac4d glue_xts_crypt_128bit_one +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0xab2e0d50 glue_ctr_crypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0xcd70becb glue_cbc_decrypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-i586 0x28afd262 twofish_enc_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-i586 0x6f068d90 twofish_dec_blk +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x049535b8 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x064f5b7f kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x07415e79 kvm_read_guest_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x079a0b6f kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0964115e kvm_read_guest_page_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1258f97e kvm_set_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x14029475 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x15beb1da gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x18e257ab __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1a4342a5 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1b464eb3 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x21304343 gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x22892145 gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2433d6fd __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x25e3fb93 kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x266141d2 kvm_mmu_unprotect_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2a5a16b1 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c450805 kvm_inject_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2dda9fb8 gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2efe9230 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f636c31 kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x32ad63ec kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x33b15b13 kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x34055445 kvm_init_shadow_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x347d2dfe kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3832a6c0 kvm_lapic_set_eoi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3a11be7b kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e599598 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3ee59a92 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x43113c7e mark_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4328da18 kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x47274e91 kvm_init_shadow_ept_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4784a74a fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x48c0eefc kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x498d8368 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4bb19278 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4c021e60 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4c4f84f7 kvm_arch_unregister_noncoherent_dma +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4ecb71a2 kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4f07b7c2 kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x532b9d2d kvm_rdpmc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53a42213 kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x55a30398 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56d273ea kvm_valid_efer +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5fbb4c0d kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x60fc5624 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x63a8fd66 kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x64020e10 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6690ae82 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x67b2a623 kvm_get_dirty_log +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x68426564 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x701fb76a gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x715b72dd kvm_apic_write_nodecode +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74645b54 kvm_complete_insn_gp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7749f42b kvm_apic_set_eoi_accelerated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x785d1ac7 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7b53665f kvm_set_xcr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7e8b22a6 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x807b12a8 kvm_read_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8226d601 kvm_vcpu_kick +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x831327da kvm_max_guest_tsc_khz +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x84ceb28c __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x858d9655 kvm_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x859aef66 kvm_mmu_unload +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x87ca8285 kvm_mmu_flush_tlb +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8a44fe8d kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8aaafdfd kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8b28fea0 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8bb03e6e __tracepoint_kvm_write_tsc_offset +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1a7631 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e934ab8 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8fc1c86e kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x90976f29 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x92aadc95 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x95313c6f kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x95da4f72 kvm_vcpu_block +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x97617895 gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x97dbf1b9 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x98aea3d3 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x992935bc kvm_mmu_sync_roots +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9b438465 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9bd14a88 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa02ba977 kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa0cbe200 kvm_irq_has_notifier +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa0ec3a0a gfn_to_hva_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa178fb60 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa6ab1bba kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaa5aa0d4 kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaac7c868 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xac71ead3 kvm_apic_update_irr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xacf7f97c gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb131d021 kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb1391db4 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb1bbbdf1 kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb25e579f kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb284eed4 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb2a65cca __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb36b5b73 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba9ed435 kvm_mmu_set_mmio_spte_mask +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc2b538e __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbebdfae9 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbf05ab76 __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc34fc0bb kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc3a6fe3a kvm_write_guest_virt_system +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc8ba0398 x86_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcb67ce10 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcd56c643 kvm_flush_remote_tlbs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcdee88f4 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0459e67 kvm_has_tsc_control +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd75f64e1 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd77e9e63 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd9123a0f kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdd7a90b1 kvm_write_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdf5190ed kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe0ccb9cc kvm_arch_register_noncoherent_dma +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe120b80b kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe2a04070 handle_mmio_page_fault_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe2dd6281 kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe3033fcc kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe66e392f kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe7442b53 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe9790e86 __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xecb1fd1b kvm_arch_has_noncoherent_dma +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeffc59c8 kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf244d08e kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfc691cb8 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfcf40753 kvm_read_guest +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x09ce1801 ablk_decrypt +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x2262ceab ablk_exit +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x30cf2bb0 ablk_init_common +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x471c1d96 ablk_set_key +EXPORT_SYMBOL_GPL crypto/ablk_helper 0x772f30f4 ablk_encrypt +EXPORT_SYMBOL_GPL crypto/ablk_helper 0xdb88add7 ablk_init +EXPORT_SYMBOL_GPL crypto/ablk_helper 0xffb08890 __ablk_encrypt +EXPORT_SYMBOL_GPL crypto/af_alg 0x17c950c7 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x24479107 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x70f39551 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x7e7cde9c af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x93957c0c af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0x9d04696c af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x9da49b1f af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0xcef9d4cd af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xde72fc8c af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x46845a3d async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x880f2d52 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x97470616 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x35c583bd async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xffe8a299 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x1c953e4e async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x1fba523e async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x587b5ca9 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xc540f95c async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x271dc323 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xa8e00e12 async_xor +EXPORT_SYMBOL_GPL crypto/authenc 0x587ef278 crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0xb2adfe89 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x27278ca9 __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x4a2a3ca6 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0xb543ae09 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1291971c __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1758daa9 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1e2c961f __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x8f04034a __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast_common 0x08aa6fb7 cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x0c5fbf8a cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xe39dd4b4 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0xee83a4f3 cast_s4 +EXPORT_SYMBOL_GPL crypto/cryptd 0x182e6e80 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x259ace5d cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x42f6aa5c cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x627ca88d cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x70c8e11e cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x9060eca4 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x938e012a cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xa832b1bc cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xb193b94c cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xe4d1c4d3 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/lrw 0x3864eb66 lrw_free_table +EXPORT_SYMBOL_GPL crypto/lrw 0xb6a1e385 lrw_crypt +EXPORT_SYMBOL_GPL crypto/lrw 0xcd074900 lrw_init_table +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x5ddb33e9 __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x77b39cb4 __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x8a1a99ad __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xbf6690b9 serpent_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x6c3229bb __twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xd35146c7 twofish_setkey +EXPORT_SYMBOL_GPL crypto/xts 0x08e9ebce xts_crypt +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x1c8984c7 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x87bd07bd acpi_smbus_register_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xb9a141b0 acpi_smbus_read +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xe1372311 acpi_smbus_write +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x0a876bd3 ahci_platform_suspend_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x0f91cd9b ahci_platform_resume_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x10bfcaf6 ahci_platform_enable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x25da9dc3 ahci_platform_disable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x3c100d00 ahci_platform_init_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x41d61773 ahci_platform_resume +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x4bba6bc8 ahci_platform_enable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x77cb3f95 ahci_platform_disable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x862c11b7 ahci_platform_suspend +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x8728f1dd ahci_platform_get_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x97ffacd7 ahci_platform_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x014743cf ahci_start_fis_rx +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x015a678f ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x01a8c748 ahci_restart_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x07f8d282 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0dcd3eba ahci_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1a225c46 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x22b58bdf ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2d8121e2 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2dee842d ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3dd63538 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4e9d4bfe ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x58c298e4 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x694f923e ahci_thread_fn +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6e05c4e7 ahci_hw_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x81393da9 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8ba854ac ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9ddbcc70 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb2ef554e ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb5ae4bd4 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xbf70878e ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd813b671 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf608fd52 ahci_qc_issue +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6fc0bfb ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xfd1a1894 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xffa78208 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xbf4eee8d __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate +EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x0ff9fea7 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x18c9e9a0 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1a5d2176 bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x4d452694 bcma_find_core +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5e44da7d __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x66755943 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6730f118 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6a5e0bc9 bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x768812e8 bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa54aff79 bcma_core_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa63b5440 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xade6ba7b bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb0290703 bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb94b5ed5 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xcf9cb60b bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd00f0b7e bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd919cf20 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xde2a3085 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe0de42f2 bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe37fedd2 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe5f725a0 bcma_core_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe9793eee bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf4333323 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x095cab47 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0e8e0053 btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x520ed7ff btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6195cf49 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6ee3fb2d btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x920610de btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa86b8e4a btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xda2a205e btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe02d5465 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf0f4ffd7 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/char/scx200_gpio 0x10a8c16a scx200_gpio_ops +EXPORT_SYMBOL_GPL drivers/dca/dca 0x01a33ab9 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x104acb74 unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x15af4e83 alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x5d9d940c register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x83871643 free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xa00b8187 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xac34ecec dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0xca9c74c1 dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0xcc2be3a7 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x1e1df7f4 dw_dma_resume +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x4b140424 dw_dma_suspend +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x5135feb3 dw_dma_shutdown +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x8f4c118a dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xbc45a629 dw_dma_remove +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x00c0ee60 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x205e39da edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x20f15c2b edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x228ded09 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x272c6e8f edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2b4c2483 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2f353ac6 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x32d5ab1a edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x44c96374 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x546033e1 edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6806d41b edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6867ca37 edac_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x71781a56 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x77397c9e edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7da0b678 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7f9c5777 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8a43e53e edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x925b57e3 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa9ef58a7 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd2dff4f9 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd4f0c3e0 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xdef5e23e edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf0aa0d26 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1d34e996 pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x21626132 amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x737912b3 amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb30b7e56 amd_decode_mce +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xf4ade51f fw_card_release +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x93f8fe67 cs5535_gpio_set_irq +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xc0bb404a cs5535_gpio_setup_event +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x71cda701 bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0xc9057f2e bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x0a82c103 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x5ebd2c65 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x43186c08 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xbd78ce16 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd9024874 drm_vm_open_locked +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x05876c69 i915_gpu_busy +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x08a7896d i915_gpu_raise +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x2b2c59ae i915_release_power_well +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x402468e9 i915_gpu_lower +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x500858b9 i915_read_mch_val +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x96108893 i915_request_power_well +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xb76bf2ac i915_get_cdclk_freq +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xe7237b0b i915_gpu_turbo_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x2aed64af ttm_dma_populate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x6adf436b ttm_prime_fd_to_handle +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x9e8a03a5 ttm_dma_page_alloc_debugfs +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xce36343e ttm_prime_handle_to_fd +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xfc7c8a4c ttm_dma_unpopulate +EXPORT_SYMBOL_GPL drivers/hid/hid 0x04278822 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0a080912 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0f4f72f0 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x12207280 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x235817cc hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2ead1d63 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x37f25402 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x41ff9ec7 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x47d46528 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4906a967 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x55838b0e hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x562c00a0 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5a1b1b08 hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5dabe926 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5f7dcf95 hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0x69090001 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x713ca400 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x88b6f280 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8b8ccb99 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8e484e2b hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9bcf38e4 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb1cebb03 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbfbab5a7 hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc1d8f07c hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc20d5a4a hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc6b43b39 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcf350d75 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd12b60a2 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd68b788e hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd99ad3ee hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe2908cd7 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe2f8f00f hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf7987bf3 hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf86e9264 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf971a06f hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x0897a195 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x1efdc456 roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x6513a03e roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x683d096f roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x84d2414e roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x8be40bb5 roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xab12991b roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x110fde50 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x35d680c9 sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x8fbdb253 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x96c1c73f sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x988006e6 sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xae385ade sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xcb238859 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xdb7823d7 sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xa5e99ad8 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x0032c6da hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x1509559d hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x24da3de7 hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x2f6a9b4d hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x3c74bbc4 hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x71141971 hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7b5ce0a7 hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x809c82d7 hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x8ab890d8 hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x933969a7 hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x9cffd2f0 hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xaa11b625 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xfa3699c1 hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x181cfe8d vmbus_get_outgoing_channel +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x358fafa5 vmbus_prep_negotiate_resp +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x46a417ca vmbus_proto_version +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x73c6fbd0 vmbus_close +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x77f39a9b vmbus_are_subchannels_present +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x8ade607f vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x969ec503 vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x97436c9a vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xac75e326 __vmbus_driver_register +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xb067f12a vmbus_driver_unregister +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xc83bb4c1 vmbus_set_sc_create_callback +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xd52cdaba vmbus_sendpacket_multipagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xda8e0a34 vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xe6e55b84 vmbus_open +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xf45dd651 hyperv_mmio +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x6fc0d5c3 adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0xd432e877 adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0xda5bfa52 adt7x10_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x212b75ae pmbus_write_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x26d915c7 pmbus_clear_cache +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x3c1c4c77 pmbus_read_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x5f4bd1fc pmbus_get_driver_info +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x7521a590 pmbus_clear_faults +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x9b194695 pmbus_set_page +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xa3b0ecbd pmbus_do_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xad8d8b3e pmbus_check_byte_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xc2fedaee pmbus_write_byte +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xcb266391 pmbus_check_word_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xcfd11ae4 pmbus_read_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xe82072d6 pmbus_do_probe +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x1e040a41 i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x409d9194 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x46cfbadf i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x48c0ca62 i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x6ab3eba6 i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x83f0ac67 i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x872ee409 i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xbe798330 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xebb180ab i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x0d4b1bd2 nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x3958e4a6 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x400e1a6a i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x2545aa29 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x707d44a0 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x2293aa53 ad_sd_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x2e2b3080 ad_sd_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x3fef1d6b ad_sd_calibrate_all +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x41f6a8b5 ad_sigma_delta_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x48a83cdf ad_sd_validate_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x7344d7a6 ad_sd_write_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xb29db9eb ad_sd_set_comm +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xd48fc7f0 ad_sd_init +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xf584e430 ad_sd_read_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x20cefe54 adis_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x43e31795 adis_initial_startup +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x51e2971b adis_remove_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x5652e5c9 adis_read_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x5ec6f5fd adis_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x6bc97c7c adis_update_scan_mode +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x6ea74fdf adis_reset +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x748bded8 adis_check_status +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x878894b6 adis_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xb0755c8f adis_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xca55518f adis_probe_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xd0874325 adis_write_reg +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0474d56d iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x06b46d14 iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2179a504 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x267c0508 iio_channel_release_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a1fab3c iio_channel_stop_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2ea3995d iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x46420b32 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4dbe0aa0 iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4e178565 iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5323e500 devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x557f6a98 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5ac23ca8 iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5b946ec0 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x64240af3 iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x668e05d4 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x693cbc46 iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x75b4db2d iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7a711aef iio_channel_start_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7d91dc37 devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x852f9d79 iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8e2fe224 iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9778575f iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9f9a0c60 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc335371a iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc41d3552 devm_iio_device_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc694019a iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xca1899d3 devm_iio_trigger_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd84a852e iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xdc12d7fe iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf04f5e64 iio_update_demux +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf880a5b7 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf8f96a7d iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xfb3490ef iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x2de6b40a input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xb9246552 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x8c84a9eb cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x8cb5abe1 cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xc3bdb739 cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x50a69553 cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x67b96a2b cyttsp_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x6a4e638d cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x242147c7 cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x3898d163 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00e37056 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2caf3fbc wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x357638bf wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x36f875b1 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3c08da9a wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6eac4b14 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7312564e wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa2d1ed5c wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbfb856d0 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc66ac872 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc6a64f18 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xccdd982c wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x0fd4b20f ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x1b12ca64 ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x35ee9721 ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x58d5688d ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x58d6209b ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x76809916 ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x8d3d5ff5 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xca497e25 ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xe11a83ef ipack_device_add +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x23359aff unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xce1414b2 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x091c6b87 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1803001f gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x27641d14 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x456e4057 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x56c8b66f gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5f66e24c gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7988d745 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7f00ec7e gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9309a522 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x98d3e722 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa01a21b4 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb643cc17 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc27f3489 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc33f5f64 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe154bfa5 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe8257e84 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe8d25bca gigaset_add_event +EXPORT_SYMBOL_GPL drivers/leds/dell-led 0x86fd1ffb dell_app_wmi_led_set +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x325c3db5 lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x3c82c76d lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x3eb9a363 lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x45709442 lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x4e0924c0 lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x68953d91 lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xcb2fcc26 lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xd80bb31d lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xde41ac20 lp55xx_unregister_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xe68f8dfe lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xe6bff356 lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x749e05f2 ledtrig_flash_ctrl +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x7903e46e ledtrig_torch_ctrl +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x10e06e97 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x155ea9c7 __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1822fd23 __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1f2ba9ac __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x260d47cf __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x27831e89 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2dec45e0 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x347aebe1 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x41c861f0 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x49856e5a __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x50e8c39f __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x574ba881 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x628eb712 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6770a402 __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x785cfc9f __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7b488fb1 __tracepoint_bcache_alloc_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x91f2af34 __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa09069a3 __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa591c5d6 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa6890b59 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xaf60c34b __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb950d2ae __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbd4b89b6 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce0e6218 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd40fba32 __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdc5ea5a5 __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf58ce244 __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf5bcbdc7 __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfc1d5275 __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfcdf28c9 __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xffc308e4 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x05632efb dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x55f5d8fe dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x601f972a dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x829ce7e4 dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb6d5c65d dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb70b342a dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xcb189f6c dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xd2c89926 dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xebd06eaf dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xf72e8eac dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x22163b69 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x3909d3a8 dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x3bcba5c9 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x594952bd dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x62a23587 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x74dcd98c dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7c381a76 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9b2b253a dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xdc69e37a dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe004ee92 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe6024e59 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xebcc64a4 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xeca7949e dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x28efb8e9 dm_cache_policy_get_version +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x2e709d8b dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x72979ec0 dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x90ca2ad1 dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x9fd3cdc4 dm_cache_policy_get_name +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xa04c849a dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xdda95fbb dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x6997aec3 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xa4fb58e7 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x01d2f9ac dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x09472122 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x6b926aa3 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa253747f dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa8813ad6 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbee2502b dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc348e251 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc66ce277 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcab63c3d dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe2735fef dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf37a3cfe dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf9feb35d dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x01445176 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11eab9fe dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x150c85ce dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1cac81ac dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2025e954 dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2e730a21 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f40da68 dm_bm_set_read_write +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f74609d dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x32b5f546 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x33c03da6 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x38c75c44 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5e6aea80 dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x619701dc dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x62c1b9ee dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x688d422d dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x68fae9d2 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7ade1071 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7b047bd9 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x832bf228 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x858c8d94 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x89f1e1cc dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x966a8838 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9b4b5b29 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9e798e22 dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa0bbbb49 dm_bitset_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa13861b4 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa2507774 dm_tm_shadow_block +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa744e0a3 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa87c5b4d dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xaee02382 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbcfdc290 dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbd50ebbb dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbe0497aa dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca40abd5 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd041d62b dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe44b4b9b dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xead1e727 dm_bm_write_lock_zero +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xed1e1f96 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf475af48 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/raid1 0x16ca8587 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid10 0x36fc3075 md_raid10_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x75a1beb8 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x077530b1 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x0f822849 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x13d21059 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x35b6d7aa saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x489043bf saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x52488a4a saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x6f6b5208 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x727b8516 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xb26aa131 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xde2ec707 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x1ba3ac29 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x2663ca19 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x5b22dc86 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xbd47afcf saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xcd4cd71f saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xe9d77121 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xf3fc3cd9 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x005ce346 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x09a178b3 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x144bfd4f smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x4f24c904 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x546420d0 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x5fde8783 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x63222b29 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x6aff577d smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7319915e smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x8c48352e smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9c2225ed smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xa0a68d23 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xa2cc2003 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc5c3b0d9 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc9b16676 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xca04a840 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xdae58b0e smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xdcf13118 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xe1b9d338 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0x85735293 cx24117_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0xe02a60fe tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0x924234f8 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x079fd8c5 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x505cf75c mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x5dc2a08b mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x6807146e mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x6b3f44b9 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x70fdabc6 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x82ee971a mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x8b373c2f mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x9595f33e mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x9a660d02 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xbf360b44 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xc256dca7 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xcb60fd90 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd35fb13b mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xe2f7803d mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xf61351ec mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xfe3fadcb mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x923a3588 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xa7d72972 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xbc3b4b22 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xca166303 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xd2bb8364 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x18cdb81f ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x35351249 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x5a1acbb2 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x5fdb6aa5 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x74c6bdec ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xb6256b44 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xcfb821db ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/radio/radio-isa 0x0d4269ac radio_isa_remove +EXPORT_SYMBOL_GPL drivers/media/radio/radio-isa 0x2852cca0 radio_isa_pnp_remove +EXPORT_SYMBOL_GPL drivers/media/radio/radio-isa 0x8538e749 radio_isa_probe +EXPORT_SYMBOL_GPL drivers/media/radio/radio-isa 0xae101010 radio_isa_pnp_probe +EXPORT_SYMBOL_GPL drivers/media/radio/radio-isa 0xda13a901 radio_isa_match +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xd1e34f69 radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xd5889229 radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x051cd812 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x12028e87 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1c8c845d rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x45b80357 rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x550c0cfa ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x918d7eec rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x94441602 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa2dcff9c rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa85ca439 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xadf4a764 rc_open +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbc575cd3 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc176c793 rc_close +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xcda00dda ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xcdca5917 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd65406e3 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xdb60bea8 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe4b9f938 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe7068aec ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf2a445d5 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0xfa330b81 mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x6f418c06 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0x6eb13c48 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0x635f0f5b r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0x98aa6e22 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0x89b49478 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x940910ee tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0xe7e60464 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x7f1b7358 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0xa4aedf71 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0xd1152819 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x28525b12 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x8c971d97 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x51f85075 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x1315de31 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x2195a74a cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x25b8c8e7 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x2cd74c4e cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x3c9375b6 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x3cfd4a1e cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x41d5f702 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x422a9e4c cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x43f1184f cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x4e6bcfbf cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x552c7003 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5635ca13 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x56e00fe8 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x580ba410 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x91b6ad2a cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xc0cc9574 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xe8f403b4 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xe9eaec08 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xff5bcbdd cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0xb1704623 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x38ec48a3 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x0495adc9 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x1927f246 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x216284a4 em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x21b2a580 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x380e1fbd em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x3f417d18 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x51270bd2 em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x573cff25 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x5c8c524d em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x675a966d em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7d2c3790 em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x84eb8375 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x908237a0 em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xd286fb96 em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x196590f6 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x3ebe6d49 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x90833f10 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xcd1b9415 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x01c483a9 v4l2_get_timestamp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x05288604 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x21481314 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x4c1e49ee v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x76fe0f56 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xb6ad1d7d v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xe78a9dc5 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x08982d59 v4l2_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x221d2fbc v4l2_enum_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x36e8756a v4l2_find_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x4103badb v4l2_print_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x53105839 v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6976cfe0 v4l2_valid_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6f344bb9 v4l2_calc_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7eaf8e7a v4l2_detect_gtf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0xb0891da2 v4l2_dv_timings_presets +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x33b7cc99 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x908df381 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xdbfda013 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xf06b4662 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0304592d v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0715584f v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x17eb0eee v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x1e2db127 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x20ca92ef v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2e99ba11 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x446042b6 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x857a4096 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x86d356aa v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9d6e701d v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc3352817 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc88eef72 v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xd36bcf46 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xdcb4592b v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xea1a715e v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x066ed5c5 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x0ac30e23 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x3dfb1e3f videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x66f93184 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x776ab92e videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7ff881b0 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x81d60a3d videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x825c2369 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa6e90c78 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa884bece videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xabf8df58 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xb5a15446 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbe97f38e videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc4d6b381 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xcf48065b videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xdbc01513 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xdf84d738 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xdfa42e99 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe386e86e videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe902dbb6 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xea8ff937 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xeaeb4d39 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf4bdf303 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xfb559c4a videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x311a4eac videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x88757b6d videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x973348d0 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x09d7d548 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x0e6f506c videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x1cf25f80 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x38da7197 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x5b56e318 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x94364575 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xbccc70f8 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xc43f3f76 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xd86a31fc videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x1a3a34b7 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xe19f0257 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xf3b2949a videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x007945cc vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x02a5ba40 vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x075a169d vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x0c2d5c0e vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x0e516efc vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x108e6a8b vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x14e28716 vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1e66fedc vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x322eef02 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x3b91af98 vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x3f84b6ee vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4aa2aeae vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4af5a1d4 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4cb268b4 vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x51e92d34 vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x56d760a7 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5fdfb412 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x634746be vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x6aab09a8 vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x78d2d7ec vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8d7008ed vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x935ca75e vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x94911484 vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x9602762d vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x98b9d763 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa3d0b0ec vb2_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb276dfa6 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb4fb73b3 vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xbe71886d vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xce2b8293 vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xed5bdb4f vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf284a736 vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf8bf2e60 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xfe48861d vb2_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x347a544a vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x40af7682 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-sg 0xfef3d7bd vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x11e44c7e vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x66f71341 vb2_get_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xcd880abc vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xe040f252 vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-vmalloc 0xccf346db vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x093c72f1 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x275bf3a2 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2deb3ce7 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4ac557ee v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4ca12d06 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5e4610b6 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5e882dee v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6e8113fe v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7681fc0f v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7f4396b8 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x80f62987 v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x82113ff6 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x83964a1d v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8b184eeb v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8d9cf812 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa097ec02 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa73d38e2 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xac7d80ee v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xbac1edf4 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xbcc42da0 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc50b582c v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd0074a3c v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf9467f6e v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x153e0389 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x64d7bed4 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x7313768d i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x7c89ffc8 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa0f8bb87 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf08b9b10 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf7d826fe i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf9f7247f i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x920da6a3 pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xaaa608ad pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xb29ddac5 pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x08395a84 kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x0e47a1d6 kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x14e53f0f kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x24dca629 kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x2ed45cd9 kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x2f4f0299 kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x4fc15898 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x51af4e2a kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x2c720e30 lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xb5c76990 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xb9b9488b lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x0bc14d44 lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x2ca1c350 lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x46574663 lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xabcf4d60 lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xbafc1486 lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xea7e750a lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xfae5c98e lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x1bf5a6ee mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x3ddb2b60 mc13xxx_common_cleanup +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x494018a6 mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x5b4fedce mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x60832a0c mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xeed802cf mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x03bcfb53 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0ef9d36e pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3461f2fd pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4a6ee857 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x59cc57b4 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x678e98f6 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x87e5bfef pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8e4333e5 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa7b20f20 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xafe1aa98 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe6ff9df9 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x0c3f5a68 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x6715d1b5 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x2ab40446 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x2ddc1ab5 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x5a3f8620 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x8f4eaa24 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xec1216f2 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x01a33234 retu_write +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x4fca3918 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x1e1e8dae rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x264d41a0 rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x2cb2d9dc rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x3579baa3 rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x3c2ff617 rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x6002c3b8 rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x633634b8 rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x7ac2ca4b rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x7eecdd8f rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x830c554b rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x857bd406 rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x90b52877 rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x94bb75d5 rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xa7be3ba9 rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xad1e6a11 rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xb5559f83 rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xeacdfdff rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xf1425d12 rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xf9e51e16 rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xfad8c4cd rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xfc0c7e07 rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x07ddc4e4 si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0b163881 si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0e0fca93 si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x166924a8 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1c9d8073 si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x48788489 si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x5094ea14 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x53a28a47 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x5936facb si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6260872e si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6277f360 si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7a4016d8 si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7d129d27 si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7e7ef743 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x84fae4b8 si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8612f588 si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x925fa488 si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x96658393 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9c34c305 si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9dcda691 si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa23285fd si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xad2e68c7 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb34ed8a8 si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb449d130 si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb755e30e si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xbad8a632 si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc49dcfb1 si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc80e916c si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd2472171 si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xdcc1a39a si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xec18bf74 si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xeec1b8b7 si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xef4ace2f si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf39ac0c2 si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa9dbd252 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa9f224e5 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd13c33a3 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd741568f sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xda233791 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x036787b5 tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x702ffe42 tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xaf6996fa tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xd444dc51 tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x87e136dd ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x14ad994c cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x7ec709fa cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x93237002 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xa5e9e9ba cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x27cb133b eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63 eeprom_93cx6_wren +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x822222db eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x98bb5a22 eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x2917584d enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x853ed012 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x860b874e enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb1360208 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xbb1581d9 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xfc0ba27d enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xfc1141ff enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x5c06f403 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x5ea6c3ed lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x616c7efc lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x6e5f577d lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7e8d183e lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xa7663f43 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xee9c5a25 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xfb4147c3 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x0b71affc mei_cl_register_event_cb +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x12702e06 mei_restart +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x1f0cfa5e mei_irq_read_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x2742ae3b mei_irq_write_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x2fc6f4df mei_stop +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x310a163e mei_cl_send +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x38968d0b mei_cl_add_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x48d15b3b mei_start +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x4acfbff6 mei_cl_recv +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x4b0a2f19 mei_register +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x508312af mei_device_init +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x52a96d5b mei_cl_set_drvdata +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x71db859c mei_reset +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x7fd12cbc mei_cl_get_drvdata +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x8221fcbe mei_deregister +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x95f71c33 mei_cancel_work +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xabc97407 mei_cl_disable_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xabf61c9c mei_cl_remove_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xb7902a6a mei_irq_compl_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xb804e5ee __mei_cl_driver_register +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xf258b811 mei_cl_enable_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xf7d1bd1b mei_cl_driver_unregister +EXPORT_SYMBOL_GPL drivers/misc/pti 0x19f09b98 pti_release_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x23bde487 pti_request_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x52a78e81 pti_writedata +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xacaabdcd st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xc486babd st_register +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x0f6680ea vmci_qpair_produce_buf_ready +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x1152e318 vmci_qpair_get_produce_indexes +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x13aa5a5d vmci_datagram_create_handle +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x1872c7af vmci_qpair_produce_free_space +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x1a195863 vmci_context_get_priv_flags +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x2e30d970 vmci_qpair_dequeue +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x3ef56cd5 vmci_qpair_alloc +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x4b630dac vmci_get_context_id +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x4c498e60 vmci_qpair_peekv +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x4ea2ccbc vmci_qpair_peek +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x50a255c9 vmci_doorbell_create +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x612df9ae vmci_qpair_detach +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x677c36d0 vmci_is_context_owner +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x69ef87ff vmci_datagram_destroy_handle +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x6bfa603a vmci_qpair_dequev +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x6cc1a5f7 vmci_datagram_create_handle_priv +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x722d488a vmci_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x7d540b50 vmci_qpair_consume_free_space +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x8b8ad67a vmci_qpair_enqueue +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x9624c58c vmci_datagram_send +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x9973b9b2 vmci_qpair_consume_buf_ready +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x9d16164a vmci_send_datagram +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xbbcb4c48 vmci_qpair_enquev +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xccbb53d1 vmci_doorbell_notify +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xcf5ed7ef vmci_event_subscribe +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xdac94780 vmci_qpair_get_consume_indexes +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xe7e7c107 vmci_doorbell_destroy +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1b384e6b sdhci_disable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x540154dd sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x569991b8 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5a3eaeeb sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5b699287 sdhci_send_command +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x976e2c55 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa2afddf2 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb3ca0130 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbf59b151 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xcb710f32 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xcd6dad5e sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x2fdd9822 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x45010c1a sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xa081a78c sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xbec4a57e sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xc4ce3c2c sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xd34abf5a sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xda60a1f2 sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x54504368 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x6b796680 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x96674316 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x386fc590 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x463d8e40 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xb5c441c6 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xe52a92f3 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x6a2cf93a cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xb643f119 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xdf98eb6f cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x042cdafe kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x066320e8 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x18c0a653 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1ff5f3ee get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2c617043 mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x37c8277f mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3c690df0 mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x43463929 mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x47f79c8e __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5129e698 mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x565d71b6 mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x58eaa5bc mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x63cdc4c3 mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6dfcd820 mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7532f5eb mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7cb4a22f __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x87e65cfc mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9981e07d mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9aa18e87 mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa00552d9 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa270f014 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa309b1a8 mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa39cb7bb mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xaae196e5 mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xad685d41 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc28fc9fe mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc5ecc655 mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xccfaa316 mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcfe384ef mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd2d3668c mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd427ee84 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd701bdc5 mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd90e1a19 mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdcc65770 mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe3672f6b register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe3fb8840 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe9334da2 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xee2dde1e get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xeeeb2455 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf12f8b81 mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfad1ecd6 mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x5f5be644 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x7fbd6cfb register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x7fcb48d3 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xc19e3447 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xdec8396f mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x89959907 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xf3005dd3 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x17bc2565 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xc693b59b onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xff33cce1 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x32326370 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42ebb91c ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4539ee8e ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x482c2fd1 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x568ae6a1 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x690f6abe ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa9bf5de4 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbd4690c9 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc0112448 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xcc030656 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdc269046 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe16260b0 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf014b049 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x32e5f559 c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x3c543f6c alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x45bf1e5d register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x5757ead3 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x88cd1ac7 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xd8122b86 c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x222c295a can_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3ede8149 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x42dc1d20 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4bfccd11 devm_can_led_init +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4cf5e204 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x67429f7f can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x992ca8f3 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa1e42617 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa4d66a8d can_led_event +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb0ee4e6c alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb346573b can_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb445def7 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb57e9f92 safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xcb9ab7d1 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xcf104f73 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd64ee2af can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe62b6fd8 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x449a5eb7 free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xbe85891b unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xe1985742 register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xe43c25d3 alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xa0aaaefd unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xaab8e82e register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xbaafe070 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xd01f566d alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x12ea43eb macb_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x30916ac1 macb_get_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x4407e3dd macb_set_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x601b30ef macb_ethtool_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x6d4dde92 macb_mii_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x87664b49 macb_get_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xfff32bc1 macb_ioctl +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00afff72 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x052c0125 mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x07709a50 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0ab03263 mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0da0d553 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0dd1399d mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f43f5a1 __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x122c0e09 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x130f7342 mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13c7885c mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18360605 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18ddb5bb mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18e45b1c mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2420e4be mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x28e557ef mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b361f64 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2cdc64c3 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ec6e8d2 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x317b62b5 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3569c8ec mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x37bdaa8f mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x38fe2494 mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3aab091d mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3ca12e81 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3e62a4e4 mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3e6fc833 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x432a0ae9 mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4847eeae mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4953c62a mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4d96a055 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x51e5c98f mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5843d119 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5a55e15a mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5c311074 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x621f37cc mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6259acba mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6840f10e mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6dd43b02 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x709f22cb mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7418b7c7 mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x75e62cea mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x760b1a5c mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x76db30fe mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x77133124 mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7762c2b3 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79ef0126 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7a384494 mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7d2b1cc4 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x85643455 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a7221a3 mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a849886 mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8d5c55f5 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x969f4023 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x979c33c1 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x97c83eff mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x99911c17 mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x999553bf mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9f3f6ad1 mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa1420cc3 mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa1ba3bd9 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa2cf83c0 mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa380ef86 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa3ddb3d1 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa3f5e49b mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa58e95b1 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa60634bc mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaab12cc1 __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaacce15f mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xad7b71c4 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb3d4e724 mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb605cffa mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb676d1e1 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbbb6836b mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbe28e20d mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbf0b3914 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc3856d3b __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc44c04a2 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc75611f7 mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc757cc87 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc7c57520 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc9068d8f mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc9488e85 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce91a116 mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd1dbde15 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd520db8a mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdc01bdbe mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdc370c7b mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdf01dad1 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe088933f mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe156c280 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe4bc8efb mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe539139d mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe62acf72 mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe7be41bf mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe89c21af mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe8a08dba mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf28877e5 mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf4d6e84f mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf84aea60 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfea9655c mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfed8a5c5 mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xffcddd49 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x005a3017 mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x06301efc mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0a302241 mlx5_core_create_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0fd1e9bf mlx5_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x305c7dde mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37cee356 mlx5_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x441842c5 mlx5_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ac549ac mlx5_core_destroy_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x557776c5 mlx5_destroy_unmap_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7bac76b1 mlx5_core_eq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x82e3e077 mlx5_core_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa58184bb mlx5_core_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd5928ce1 mlx5_core_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6c4ef56 mlx5_fill_page_array +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdd8893e2 mlx5_core_mad_ifc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf58f76c6 mlx5_create_map_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfed15d2c mlx5_core_xrcd_dealloc +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x260901e6 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x4e191cb1 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x867c9d6f macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xe6f7af83 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xfc800640 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x6274205d macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x0165983a usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xdee857f5 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xf833c089 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xff52a5f5 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x19e44813 cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x2b701897 cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x3284350a cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x3383e524 cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x71892af8 cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x8abe4217 cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x918e8b9a cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xd6521126 cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x1ccd1f40 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x1e1192fb rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x9d3a872f generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xae6f358c rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xbc9c487f rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xbf180e4c rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00a28112 usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x01ea5425 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0c3696d0 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x153fb74f usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1a93089a usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x22909f2c usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x28955460 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2bf1a8e5 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x39202af3 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x445917d3 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4cea959d usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5541f8be usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5839daae usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x72f5d480 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x76e69725 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x802b7528 usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x918962a6 usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x93c4fb19 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x987b1e0d usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9db1a043 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9dcdc510 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9de97d47 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb7e3d6e8 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbbbb2630 usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc8efd9fc usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc9767306 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd0032ae4 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe0c806fe usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe277158d usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe2c03128 usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfb85f73d usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfef72668 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x01a7aef1 vxlan_sock_add +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x8019b6af vxlan_sock_release +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xd7281c6e vxlan_src_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xe4f7f0c5 vxlan_get_rx_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xf0646205 vxlan_xmit_skb +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2c794ea5 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2d2ea0cc i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x32bacf02 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6f4dc139 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x756e5921 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7a5308df i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8a59d96c i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9a0cd1e6 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa0f14ef1 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb364541c i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb79183c1 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb7b5be62 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb848093c i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe17c648e i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf7660a16 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfae249b4 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x044127a4 cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x843e7b20 cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xac92e5fa cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xb45f13ce cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x64b36fa9 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x4a22660d _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x647ecf58 il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xcb9745f9 il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xe2a2874d il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xf5b27b74 il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x0a5772ba iwl_poll_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x0b27f9af iwl_nvm_check_version +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x12a965c9 __iwl_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x13c6237d iwl_phy_db_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x14c3abcb iwl_write_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x215daec5 iwl_abort_notification_waits +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x23799e52 __iwl_err +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x32e83406 iwl_set_bits_mask_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x35033c81 iwl_phy_db_free +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x387582c2 iwl_set_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x38a83a63 iwl_parse_eeprom_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3ae6bf9e iwl_poll_direct_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3e0dc6e3 iwl_notification_wait_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x50d936bd iwl_opmode_register +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5c52e109 iwl_opmode_deregister +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5cf9550b iwl_clear_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5d0a212e iwlwifi_mod_params +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x6101306b iwl_init_notification_wait +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x628f7428 iwl_write_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x776221bf iwl_send_phy_db_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x7b10ebd7 iwl_notification_wait_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x83507f90 __iwl_warn +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8c5d5ab3 iwl_phy_db_set_section +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8caceb62 iwl_wait_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x995d5405 __iwl_info +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x9ee517a7 iwl_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xc57aad9b iwl_read_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xcea0b361 iwl_remove_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xdb5a62eb __iwl_crit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xe83e3f64 iwl_parse_nvm_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xe9b7044c iwl_read_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x16e08c23 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x208352b9 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x37baf8bd lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3b44af8d lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4d6468d3 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5c64056a lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x763c96ad lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x80494f8a lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8057b3c6 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x81b69332 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xda7e7d5a lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdd6a26ff lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xecd41e31 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf63a0be5 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf9fa5de4 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xff67bf54 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x067b06b4 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x3f88edb2 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x651e85a4 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb57ef030 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xbe7cd1f3 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc8e329bc lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd08e3e3a __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf66af33f lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x6531278e if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xa3e88d7b if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x14be28e7 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x3efeff5f mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x41e65544 mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x47e5e922 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x49d04938 mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x5f55ebcc mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x773f0801 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x7f9692fd mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x8de3e2fe mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x970ecaa9 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd1a69633 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd33c0dea mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd8a98fcf mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xe343030c mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x17d58c92 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x75fd4dd1 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x99288479 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9f47baa3 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa5ef2338 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc0236c05 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xd3f067d3 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf72b54f2 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xfb0d89ca p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0aca48fb rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0fb5e12f rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1e166e5f rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x22301b5a rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x26b44318 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2e07f0d4 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x348f527e rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3e1a1465 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4870693f rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4d667ec0 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4e1f97b0 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4f40ef51 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x61795d86 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x63b2b0ad rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x827b3e10 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8ba3bd99 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8c4b39a4 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x95e4e2c8 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa229f6dd rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa9dacf7b rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb27e3e07 rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbd39c09d rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbdfb36e0 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc4e4ca7f rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc5cf5969 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcb9eab2a rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd1c53003 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd354b904 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd6f33c63 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdafd010e rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdd81c4d5 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe053fe67 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe48e657a rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe58eb0a6 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe8d689f6 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf3001519 rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf77c7af4 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf8664ce7 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x0fad1430 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x208fee7b rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x2505789d rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x28cf5986 rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x38da40c7 rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x614fa645 rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x689a4df4 rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x92c0bcd1 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x97356824 rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xa2e80b48 rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xb7e3d1eb rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xbee21547 rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc132807c rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc6a1455e rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xcc084e56 rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xe28f94c7 rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xe7c8ec3c rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xeed87e56 rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x03dae3d1 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x13870d1e rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x15cb7796 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x16e843d2 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x175c2acf rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x17ad520b rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2542e235 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x280146c2 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2bdb8d38 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2fd78cfd rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2fecd622 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x30b64faa rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x39bb143a rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3fb5e419 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3fdc055e rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x46b64df8 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x517a66bb rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x530d12e5 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x549f7770 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x56da3e72 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6014a791 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x69e27642 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6c307cae rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x708a1717 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x78ae151a rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7ece8f5b rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x80c705a9 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x81f416c3 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8d179949 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x94dbd0e1 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x96193728 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9b556de7 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9e13dd09 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb00e63fd rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb33c51b6 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb803476b rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbbdc5d81 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc14f367c rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc41b4ea6 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc4797103 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd0cfa5e7 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd12f1cb4 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd67763d9 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd8ac1a4f rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe168ac88 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfb76457e rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x137c0d5f rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x52c4424f rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x84abbc58 rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x8dd5d315 rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x97edebc5 rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x0fb53c36 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2e69631a rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x60b041c8 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x691a13af rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1e27bf22 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x24607ee9 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x53b9e647 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x58033cd8 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5d282b9a rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x61f9339c rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7334e2ba rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x73f07378 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7d5e08bb rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x81ee8e88 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9b18dc13 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9cc47bd6 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9fa2fdd8 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb2165fbf rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xed1d6517 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfd62b232 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1f65357c rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5e9e6da8 dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9c1fd022 dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc574b215 dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x0c8ad6c1 rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x16f648b7 rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x1b817ba2 rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x28a24ab2 rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x29d0e17d rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x2fb89bea rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x35aa89be rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x444a76ab rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x50e2215d rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x5b6a9210 rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x62e9750d rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6e7e2406 rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6fee3a6c rtl8723_phy_set_sw_chnl_cmdarray +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x72cfa697 rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x8114f09c rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x8c92ffc6 rtl8723_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xa30f56c8 rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xa9a68366 rtl8723_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xaf4d6d94 rtl8723_phy_calculate_bit_shift +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xc2b055f6 rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xcd30ae2e rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd14facf3 rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd2a87d8b rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xdbca25c0 rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xe851ffc1 rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xed63c0ce rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xf228c9f4 rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xfd70ed91 rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xfdadc171 rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x08b2cf99 rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x0cd7b595 rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x0d363eeb read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x19b34b1f rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x241dedc1 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x2ae30741 rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x3c5f23ee rtl_attribute_group +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x5c440c31 rtl_dbgp_flag_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x613e9f2b rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x68c992c3 rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x6afcfc82 rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x76403381 rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x85ab52e2 rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x8b40aeff rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x8fce8cbc rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x99fed3d2 rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xde65ff54 rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xed524116 rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf8ff6add rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf9f0b421 rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x0fdb546e wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x3c649e03 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x5766f774 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x02107b8e wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x05294fba wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x188673d2 wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1d92990f wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1efbae5c wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x224efd07 wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x25cc5da3 wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2ba316ea wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2f1a1d0c wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x31da9d9a wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x34a2cbcb wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3c60ff89 wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3fbd0e9e wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x400cfcff wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4a6fcbaf wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4c10988a wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4c48a8b0 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x551e69e5 wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x568114c2 wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x580dc6bd wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5c74d695 wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x62031e27 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x73a4a207 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7ea1f86a wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8e1fcec0 wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x92ce45d7 wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x92dd96e9 wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa188eb6d wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa3fd4d7f wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa51e1e1f wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb1305f79 wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb9845557 wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xbfbce778 wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc2830ae7 wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc2f05131 wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc36cb967 wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc8b24e9e wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xda1d8fc8 wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe3949625 wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf191cf28 wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf1dcfd1c wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfbcdf66a wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x3b577068 nfc_mei_phy_disable +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x419eccb5 mei_phy_ops +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x8b4e7b3b nfc_mei_event_cb +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0xa28b2b29 nfc_mei_phy_free +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0xe82e19a5 nfc_mei_phy_enable +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0xfc99aef2 nfc_mei_phy_alloc +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x30934216 ntb_transport_max_size +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x32537aca ntb_transport_link_query +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x3d54dbfc ntb_transport_tx_enqueue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x436098aa ntb_transport_link_down +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x77ae9ef1 ntb_register_client_dev +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x82e6c13d ntb_transport_qp_num +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x9a8bb373 ntb_register_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x9c992c8f ntb_transport_link_up +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xa5cef033 ntb_unregister_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xc270dc24 ntb_transport_free_queue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xc37d9036 ntb_transport_rx_remove +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xc3832d89 ntb_transport_create_queue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xd40e7a02 ntb_transport_rx_enqueue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xfe897ddd ntb_unregister_client_dev +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x08f361a6 phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x08fdf187 phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x09f1a9d3 phy_init +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x170c4802 phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x43b7029d phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x54f2f297 devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x7402e1e5 __of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x77a00b22 devm_phy_destroy +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x902f4667 phy_power_on +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x94cddb96 devm_phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x9add069e phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xab5a445d phy_pm_runtime_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xacd6f002 phy_pm_runtime_allow +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xaeb8db0c __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xbd08ff99 devm_phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xbecd0976 phy_destroy +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xc1c9e72c of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xc75a2264 phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xcc9b9bb1 devm_phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xdb5a2835 phy_exit +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xe1ba45a1 phy_power_off +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xe2dc35e8 phy_pm_runtime_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xea04955f of_phy_simple_xlate +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x0e71af2c asus_wmi_register_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x934b6aaf asus_wmi_unregister_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_ips 0x46809fa9 ips_link_to_i915_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0x232b5238 mxm_wmi_supported +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0x61cdf799 mxm_wmi_call_mxds +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0xe26032eb mxm_wmi_call_mxmx +EXPORT_SYMBOL_GPL drivers/platform/x86/thinkpad_acpi 0x706cdcef tpacpi_led_set +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x64ebe677 wmi_query_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xa9b7afd8 wmi_set_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xc5e3dddf wmi_get_event_data +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xe2426710 wmi_evaluate_method +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x16151459 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x5bfec702 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x99f20062 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x458b2f70 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x462f2d46 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x48ae8de4 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x229ba3c3 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x30188376 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x36714cfc wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x50d5d854 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x9b9ab6fb wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xd5ed034e wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xb2ae7010 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x021c8249 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x093c290a cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0d9e9622 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x109fdcfe cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1685dd60 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1a5f43c0 cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1adef4c6 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x219317d2 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x287fa706 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x28a5dada cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2e0c1e07 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2e43cba4 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3781ca61 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3ca617d3 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3e693f70 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3fbe8486 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x414e205d cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4fe1bf0f cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x54b2b699 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6b97faa4 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6e27e542 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6f3ffdbf cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x75689ddc cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x76141dfa cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8036f4c1 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x80968db6 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x84f59555 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8b9f74b6 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9f28b7d7 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa33253d8 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa90ce1dc cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xaa1c8997 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbdf4e5f5 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc3f5786d cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc6a62cf2 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcf7d07da cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd3b0d1ca cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe2dd5bbc cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe588ff1f cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf0918f39 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf910d907 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf940cb69 cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf9b4dea3 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xff0e9417 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x4c95d777 scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x71e969e5 scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x790ad7da scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x866ed7f4 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xc17967b4 scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xcdeaec37 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xd31c7ca9 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00dc767d fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x1198c6b3 fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x14ba0784 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x34223979 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x53a5169e fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5554c039 fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x58cb7f84 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x59abe4ad fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x926dd6d1 fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x983aae95 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9908c69e fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa89fff7a fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc4dbfa57 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xcf5c8db8 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xec8925d3 fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xecad98dc fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x15d10a41 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x1d7688be iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x8a902369 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xc451771b iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xdec1bca6 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xdfdaff7b iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0058e600 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0069cfee iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x02ec5a45 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x04b14db5 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0b3fb3d8 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0d1e753a iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x10fc2301 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x22ae22f1 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2483e260 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2a2f73f4 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2ab39854 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2e39c1b9 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x36279708 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3d62930a iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e58ca7e iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x489b7afc iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4ba72a37 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4f6b9cf5 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x61e29b22 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x638df1b0 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6ff8b05b iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x756bcbae iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x75c2b03b __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x802697e4 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8dc41b2e iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x978827aa iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9b1871c7 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa249bfd1 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa2a647d5 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa6177713 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb2dee519 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb362a23a iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xba99b159 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbdc18bc7 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbf4bbde7 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc4f57f07 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd0733fb6 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdb36ca26 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe1137704 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe6f16e7f iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe7534b03 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf805230a iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfae48c01 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfe085f0b iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0189c7fb iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0afd709e iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x195196e5 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x38580a9a iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x57f2eaac iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x74375d53 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x752f2027 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x76d0cf5e iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x785121e8 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8b88ec43 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb1055430 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xba4e17ea iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbf856063 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc68a1f1c iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd574e14e iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdd37098a iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe18d92e6 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00866503 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0889e9c4 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x16c13ad3 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1750e834 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3f0870e8 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4158f452 sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4af78533 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5769ffe9 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5e622809 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x65627b40 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x68df3b0b sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x738ef9b0 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x783f438d sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x85316c96 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x87892dc3 sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8e62e249 sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb6d30380 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbaacdbdf sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbfe1248a sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc57d6810 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc91bdd39 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe5fd35f7 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe8dd7abc sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf213f7d6 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfe7cd0e0 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x4f40ff39 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x91f2fca1 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xbde2ef39 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe17eea73 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xed678a2c srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfb213227 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x27995f8a scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2f765ee5 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3a35abf8 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5ccb0e03 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8196987b scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb2cf4e5b scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb582e8ae scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf94a5905 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf9a8c601 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x035487a5 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0524c8e4 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x077ca988 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x07d86710 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x11d379e3 iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x19d9bbe6 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1b2f345b iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x202823c0 iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2b68e202 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3ad5accb iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x40d3b029 iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x483ebc53 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x49965a32 iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4ba659e5 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x532d9b31 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5f11d1d0 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x70f5aac3 iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7901072d iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x843fb6d1 iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x86e6112f iscsi_is_flashnode_conn_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8f460156 iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9404f6be iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9b37c515 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9c05d287 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9d3926ea iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb348ce3f iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbf708657 iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc122ab32 iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc1e0d266 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc72390a5 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc7d6140c iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc83474a1 iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcad1bb52 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd0d8ea26 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd3f2faf6 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xde714439 iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xeaed9696 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xeb8b1f91 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xed77a26c iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf014ac06 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x3954be0d sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xb1e04c2b sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xe4ffe600 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xf49581db sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x210c1807 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3340e056 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x85eb206f srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8835cbd6 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xa02ff02d srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xee891cc0 srp_tmo_valid +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x10035254 ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x4f7fa846 ufshcd_resume +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x53fce7e9 ufshcd_init +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x89a3a34e ufshcd_suspend +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xe2062a92 ufshcd_remove +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xe9c817d8 ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x2580c62d spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x4656f6dc spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xa9bec5d7 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xba7548ef spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xdc34f1e8 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x14c862be dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x78f97b13 dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x9b12b84f dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xcbc54a8c dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xf6b082cd dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0xd305c202 ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0662748f comedi_buf_get +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1265010d comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1561f3ca comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x189900e9 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1f4b9277 comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x24f31b39 comedi_pcmcia_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x26892811 comedi_error +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2a65db12 comedi_buf_put +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x35fb20ee comedi_pcmcia_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x38fc6163 comedi_buf_memcpy_from +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3982e3bc comedi_pcmcia_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3c411ce6 comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x40814d5c comedi_pcmcia_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x44a2a65c comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4e4933ad comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5696b668 comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5c58351f comedi_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5e48fb40 comedi_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x625223af comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6340a71d comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6b36e795 comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6beab9e4 comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6c54aff7 comedi_pcmcia_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8b7be7e0 comedi_to_pcmcia_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8c88109c comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8cddb6fa comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x96aa7beb comedi_pcmcia_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x97de7663 comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x9f4224b7 comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa3952345 comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa7f35c1e comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa8c1893f comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xabafdaa8 comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xae8086c0 comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xaf40544d comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb1215e77 comedi_event +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb1d28c3b comedi_buf_memcpy_to +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb381f3f5 comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb4b98c55 comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc5ff0b1c __comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc7cd01aa comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd924544a comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe85a8cb2 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe921a9dd comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf605b4fe comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf7669413 comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xff2e35da comedi_dev_from_minor +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xff2f5134 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x4cdc16bf subdev_8255_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0xb0b147d8 subdev_8255_init_irq +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0xe94dc3be subdev_8255_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x6774316b addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xb37e8f49 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xed08bde4 amplc_dio200_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xf5e97a44 amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x0f1a9b45 cfc_write_array_to_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x2bec9967 cfc_handle_events +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x7719498b cfc_read_array_from_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x5aab21bb das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x136f18ec mite_get_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x237dedd8 mite_dma_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x23f9ef5e mite_done +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x257ed77f mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x32bea199 mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x452874a3 mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x73df0522 mite_dma_tcr +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x77c3b578 mite_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x8903d4d3 mite_bytes_read_from_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x95394eb8 mite_setup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x9cd99986 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xa260d0fa mite_buf_change +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xb8fa99e9 mite_sync_output_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xbdbe75c8 mite_unsetup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xbdc1b5e9 mite_sync_input_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc7c222b7 mite_free_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc91efebd mite_release_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xce7f2add mite_bytes_written_to_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xdba56788 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xee784852 mite_prep_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xf1c81e51 mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xfe69d809 mite_setup2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8d2b8bb5 labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x057ae94a labpc_setup_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x39edb305 labpc_handle_dma_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x61442f86 labpc_init_dma_chan +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x6c5b71f6 labpc_drain_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc_isadma 0x6efabc8f labpc_free_dma_chan +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x2dab63ce ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x37749421 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x487608f3 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x8bc28bf5 ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xd3386c22 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xd53ed8d5 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xf06f2b63 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xf6886db1 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x02247c66 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xa3656a0f ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xc04d21ec ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xd6cbfe42 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xe425f29c ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xe7374d61 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x4bb707e0 comedi_open +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x69fa88ec comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x8afff4b3 comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x9bbe4951 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xb8a84e99 comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xb95558e4 comedi_close +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xbaf0c24d comedi_dio_config +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x2206b003 dwc2_handle_common_intr +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x89e6e9bb dwc2_hcd_remove +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xb05a818c dwc2_set_all_params +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xc5e3d63e dwc2_hcd_init +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x1a1b5249 oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2feda75b oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x3227a28e oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x7dc9dddd oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xb2c66001 oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xc8b5a524 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xd370f679 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x6671428d adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0xbd5a0e51 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x18fb632d synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x2515035c spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x2ed72310 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x353cea36 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x43d85b62 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x5f23a9c8 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x96a13f94 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9e5a462b spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xa4c0cfef spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb5acef62 spk_serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xce56e8c5 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd1b551a2 spk_get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe4979264 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x0a3f25c5 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x258d194e usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x49691898 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x5daa3941 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x5decbf3c usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x7e515306 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x94fcf650 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x95bcb6fc usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa1cfe71b usbip_recv +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa1d25126 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xc912286a usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xed67dfba usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xfdca3581 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/uio/uio 0x54811429 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x711ebb4f __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xe11eaee8 uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xaa8a7a73 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xbc616c51 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x06eb0aad ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0xd2950df2 ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0829fe6b usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x14bbebb3 usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x19c8525d usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1e2c4a4f usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2f84b374 usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3a590f9c usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x47f93a74 usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x49055505 usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4c9326fc usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4edeaee1 usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5823d11c usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x61cdb56a usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x61f15185 usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x6697d1e4 usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x8a0eb522 usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x94d7075a usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x967e31f2 usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xbffed0bc usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc3a23485 usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc53b0abc usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc53fc310 usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc634d948 usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd38bdc4f usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd3ad590c config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd8cc8bd9 usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe4ae1137 usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf4d11fd8 usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xfe0f6bcc usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x5a390e09 gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x71ebb87e gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x8e27d6de gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xf1981607 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x1dcf4e47 usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x3eab3725 usb_gadget_unmap_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x75ddab7c udc_attach_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x9a7da32f usb_gadget_set_state +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x9a8f5743 usb_gadget_map_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xe4cf0d0a usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xe578e017 usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xf19c8d1c usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xf9e6e88a usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x0a5230df fsg_common_set_nluns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x141fce2a fsg_common_remove_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x1ccb58f7 fsg_common_set_num_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x2d10b6a7 fsg_common_create_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x2d4ae658 fsg_common_set_cdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x51707c29 fsg_common_run_thread +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x6199ba93 fsg_common_remove_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x6acb4179 fsg_common_set_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x7e26d4a5 fsg_common_set_sysfs +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x99023bfc fsg_common_put +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9a0221c7 fsg_common_free_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9dc025a5 fsg_common_free_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xa46e6443 fsg_common_get +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd3ae3b65 fsg_common_create_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd468f882 fsg_common_set_ops +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xe4d1591e fsg_config_from_params +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x06231d33 ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x6f01ee5d ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0c4613c7 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x16e88270 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x257884c8 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5732a06d usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x677124c9 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x76e4fc1a usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7f6fb36e ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x89b84127 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xcd18b80a usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x3e794fef musb_interrupt +EXPORT_SYMBOL_GPL drivers/usb/musb/tusb6010 0x3d2ef758 tusb_get_revision +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x30339e20 usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x5e867ef3 usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x95e8f054 usb_gen_phy_init +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0xbd55c09f isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x2b45ddad samsung_usbphy_get_refclk_freq +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x3f873681 samsung_usbphy_set_type +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x63b1607d samsung_usbphy_rate_to_clksel_64xx +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xbe589214 samsung_usbphy_cfg_sel +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xc94264cd samsung_usbphy_rate_to_clksel_4x12 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xd0a24d86 samsung_usbphy_parse_dt +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xd1309569 samsung_usbphy_set_isolation_4210 +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0x74de9709 usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x00fdac73 usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x100c153b usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x220adcdf usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2ec59db9 usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3b22394f usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3ebe1820 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x41f7eb23 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x539ca583 usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5cd35c35 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x63a622e8 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x704703d4 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x87ec1d7b usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8db4cae6 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x92be0cca usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x95e8e1b0 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xae676895 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb57ef644 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc78087ce usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xce105f67 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd2617a56 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf2ad2bff usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0a780e60 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x263c97ca usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2b6314c2 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2c2081f7 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3cae6c0c usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4a203b63 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5adc3b91 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x63fcea66 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6b451a5f usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x75d4e299 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x920b01a5 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x93e7422f usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa400faa6 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa8e24c31 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb7c01016 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc470ebf2 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd97c571f usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdfc50cad usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xee3657e6 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfbeee77e usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfed9f0a3 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xff908b0c usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x21bcff72 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x2b82390c wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x301d2912 rpipe_clear_feature_stalled +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x9722e635 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc543b60e wa_process_errored_transfers_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcd80cfd3 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xda6a7cfa wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x01789168 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x17bb5a98 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1b04f78a wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1bcb9332 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3a008ff8 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6b49aa02 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x717b063c wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x82adda23 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x872a6dc8 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb3bf2243 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xbb8f6306 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc860f8dd wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe80da415 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe8e554e4 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x5519bd18 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x7bccb69a i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xc6efa945 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x0841b70f umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x0d8bf3b2 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x303e22a7 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x6a50f2fd __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xaf72a760 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc447f776 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfa4fd13a umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfada76c2 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x07922197 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x07a56011 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x22a36893 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x24321972 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2c397492 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5053a102 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5b4bfe5d uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5d8564c7 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6c46d321 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6d1a4390 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x706bd83c uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7527037d uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x759c2906 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7f024bdb uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8453853a uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x845cff0f uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x85b02189 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8934a50d uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cc3fb56 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9b71159f uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9c6ebeb4 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa309f020 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa5ba4ee1 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa7a017d4 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xad2f406c uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb3c8e9d4 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb46e2c2f uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbde995f4 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc02b5fd4 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc5ec1779 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcdda5291 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe42c516d __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe5cbf76c uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe8377a57 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe8d5adf1 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe9cb1695 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfa95a5d8 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x1f5eb9dc whci_wait_for +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x24b1e7e3 vfio_add_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x2a552917 vfio_group_get_external_user +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x3567743b vfio_external_user_iommu_id +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x5fe4c376 vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x82bcd996 vfio_device_get_from_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x95258207 vfio_device_data +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x969c73d9 vfio_device_put +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xc092f14a vfio_del_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xc4913442 vfio_group_put_external_user +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xc92b75ad vfio_register_iommu_driver +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x09a52a8b vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x11115257 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x151f1231 vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1c392a7b vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1c4dedf7 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1d86699d vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1edefead vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x212f34f6 vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x24ada9ad vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x269f7a09 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x45c2b736 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4c727055 vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x52f107a6 vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x57455c2a vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6d73e19f vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x89ef9203 vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x8dcf2517 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x91a83263 vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9347d7fa vhost_poll_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x93b9c070 vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x953dbd4d vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa5db29c2 vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xac1448a5 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb0cedfbe vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbd487fa9 vhost_init_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xce3d3398 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xdcdccfb0 vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xdd837950 vhost_work_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe33cbf33 vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe410823b vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe7305a23 vhost_add_used +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x0ab54ac6 auok190x_pm +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x116669ed auok190x_common_remove +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x17717336 auok190x_send_cmdargs_pixels_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x2b2dcb81 auok190x_send_cmdargs_pixels +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x42607d8b auok190x_send_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x7a5d65de auok190x_common_probe +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x7d2d6b9a auok190x_read_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x7ec32638 auok190x_send_cmdargs_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x96641ee7 auok190x_send_command_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xf97327cb auok190x_send_command +EXPORT_SYMBOL_GPL drivers/video/backlight/apple_bl 0x2c63e051 apple_bl_register +EXPORT_SYMBOL_GPL drivers/video/backlight/apple_bl 0xdab0f892 apple_bl_unregister +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x0a3eecd6 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x144949b1 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3756db2e ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x9b461284 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xc01fbbee ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xc65cc179 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd6f00562 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x0e300abc fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x41b100dd fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x654c3ce2 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x9d0c24f7 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xd7be0b44 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys +EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x0a7d40e6 viafb_find_i2c_adapter +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x31469540 viafb_pm_unregister +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xb4f863e6 viafb_pm_register +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x1b9c7f83 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x45d374de w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x71a0fea3 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x969c4441 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb75688b1 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xd6dba624 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe00a7e90 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf091e0dc w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf88a5934 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0x3f874eff xen_privcmd_fops +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xbe3f0160 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc6dc8c2f dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xe8dd3e86 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xfee7b95f dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x0be9283b lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x2923e43a lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x4d180e75 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x65ac7436 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8deaf35b nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa55c6288 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xe3979c0b nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xe8696148 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf795426c nlmclnt_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x02b90630 nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x07cbac5a nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x08b54c5e nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x09515fc5 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0aa9e5ab nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0bb210db nfs_file_fsync_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0eab5396 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x12cfeaa5 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x14847bf0 nfs_pageio_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1733101d nfs_fill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x193b2330 nfs_readhdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1a177fa5 nfs_setlease +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1aff2b47 nfs_fs_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1cb5942e nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1de9e45f nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1fbc564e nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x203ecfc8 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2103b392 nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2124b9c0 nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2268dcd1 nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x22eca203 nfs_put_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x23c82345 nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x23ef1c27 unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x243a1c41 nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2778dfc1 nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x294a0a6f nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2dcfab9d nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2ee79a63 nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x30bf0ff6 nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x31777510 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x33b1d895 nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3486dfb6 nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x34e35b9e nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36a68dcc nfs_pageio_add_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3b068aa8 nfs_file_splice_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ca31f35 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3e9ddf36 nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x40ad300b nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x40e1e769 nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x429c76d8 nfs_probe_fsinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x46d737a9 nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x479cff1e nfs_set_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x49d30ad6 nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4e26d23f nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x54987a54 nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x54b1c0de nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x54c7b634 nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x559461ad nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x584bedfe nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5bf21a0f nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e1d863a nfs_sockaddr_match_ipaddr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x62241a46 nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x65db7050 nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x663e7add nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x69fbb9f5 nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6de2c5cd nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6e2f5683 nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6f365a9b nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7378e13a nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x78fa1331 nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x798032aa nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7982b8e0 nfs_generic_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x79a3fd1e nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x79f6f4dd put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7a7b1a14 nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7b9bb419 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x81744af2 nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89bc5a64 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8d0ccb7c nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8f421946 nfs_file_splice_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x915dd161 nfs_readdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d49771 nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x92d445d7 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x97da018f nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x98ccc8cd nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9922534c nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9b16d6ab nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9b814d7a nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9bd3d40f nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9c65e973 get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9cd2b204 nfs_try_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9d927925 nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9f9eedf6 nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa17659b2 nfs_writedata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa2810ea8 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa819cbf2 nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8d2d1ce nfs_callback_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaaa14361 nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xab10767f nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xace81714 register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xad8d4c6a nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb01f9082 alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb452b864 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb606e716 nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb67d13f1 nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb76506d8 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb82070c8 nfs_clone_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbb1a1271 nfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbc243392 nfs_remount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbc252280 nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbcfd50b8 nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbea7390e nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbfc8e7ca nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc1523c9c nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc1bc1024 nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc46b3f82 nfs_writehdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4ba630b nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4ff1e9f nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5ef47d5 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc906f753 nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc95f3183 nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xca04aea4 nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xca628398 nfs_generic_pagein +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcba436d3 nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd1388d66 nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd1bc9547 nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2513081 _nfs_display_fhandle_hash +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd895410f nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd90b20e8 nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdc09b1ed nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdc1de8df nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdf2c45c3 nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe17a1e16 nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe65bdfdc nfs_file_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe834748b nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeabb5a39 nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xec2eaddf nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xedff3ad5 nfs_pageio_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf05e6834 nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf07508e1 nfs_destroy_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf0800f3c nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf7dfad01 nfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfb7ee006 nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc031014 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc619abd _nfs_display_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfd562968 nfs_fs_mount_common +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfd5a831d nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfe5545bd nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0300a38e pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x09a38982 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0ac2020f pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x11bda27c __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x170f3ed6 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1d3644e6 nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1e272a4e nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x23648d7c nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2fe888b1 nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x311fd59e nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3a989720 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x42b72283 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4bb9249c pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5c70f5d2 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5fbf9189 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x63af790c pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x665fa50e __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6def173a nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x789dc6a7 _pnfs_return_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7df11726 nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x81d0366a nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8b181d23 nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x925e6aa0 nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x935fff73 nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9762c5e2 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x97a435b0 pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9a34be47 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9adc3055 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9e6e2898 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa1fbef2d pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb0a9ced3 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbd552fe3 pnfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbe927de0 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd0058d22 nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd1f80ec9 pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd695e3e1 pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd787fff7 pnfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdb159703 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdb813e84 __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe13df9cb pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf10aa769 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf304abb4 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfd9e51fd nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x82bbfa95 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xa5bc1c24 nfsacl_encode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x00aa8d31 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4416fb4b o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5036a9d6 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x97c1b059 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xaa186acb o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb1b9bacd o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc33e8740 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x05934b6e dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x1d38a40a dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x333841d3 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x49b2ca07 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x957124d5 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd1fa4d8f dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7d173672 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x9497fbed ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe9a2f6a0 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x2d532698 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x4bce893d notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x021957e1 raid6_datap_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0f8a2742 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x201d8ea3 encode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x29fa419f decode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x68ac11d8 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xa5beca46 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xaaeac651 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xab83189c garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xb06f387b garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xc3ab8441 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x0aef63fe mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x27e3b246 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x5ce2e8b2 mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0x78e097e1 mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xa3d5f66e mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0xc922a7d9 mrp_register_application +EXPORT_SYMBOL_GPL net/802/stp 0x29d09c2d stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0x52eef4d2 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x1f57cd93 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0x88401246 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0xb09faf79 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xcfb6a3da unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x2987b7d4 ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x28f54bd2 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x074a7194 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x093d311e dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0fd8f13a dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1035e44c dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x119bfdee dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x18e44a23 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1ad75bd9 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x254367d7 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x270dd6ba dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2bd1e4ba dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2f4602e5 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x32a0a06d dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3c425505 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3dc70500 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x47673650 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x486a106a dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x49abf011 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5a73b01f dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x71bc4c10 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7885dc10 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x87a71f06 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8adb4fca dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8eb68a86 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x924282d5 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x95f8a908 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x983fe261 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9a195879 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa1cb7ea8 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb6c04d22 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc285a1bc dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcd74a19f dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd030aef9 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe3f1dc88 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe8581423 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfce19be8 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0f52a412 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3353d3de dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x33c80a1f dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7f25ab27 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9bdc9027 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xdb96a830 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xde598b91 unregister_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xde87279d register_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x51ff66c0 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x75609557 gre_build_header +EXPORT_SYMBOL_GPL net/ipv4/gre 0x8edcd968 gre_cisco_unregister +EXPORT_SYMBOL_GPL net/ipv4/gre 0xef57c637 gre_cisco_register +EXPORT_SYMBOL_GPL net/ipv4/gre 0xf344e7aa gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x0d24355c inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x29f43e73 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x43f059f7 inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x5c19c3f9 inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x89b3f619 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xbe54b7f9 inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x033a9e33 ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x05c1d961 ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x1d6d25fc ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x26e43999 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x270b965f ip_tunnel_get_stats64 +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x3d2dbfca ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x6b57a733 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x724bff72 ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x80e9e10d ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xa3ed6937 ip_tunnel_ioctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xa4d7a2f8 ip_tunnel_delete_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xbdcb9040 ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xc43244e1 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xd51e270d ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x9511e73d arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x20e207db ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_ipv4 0x58ce4ca9 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x0d5c0746 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x23114706 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6cfbc679 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xda1fba45 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xdc6ed823 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0x922516c9 xfrm4_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0xf53d6f4e xfrm4_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x083ff37d ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x1731d239 ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x36d7ec64 ip6_tnl_dst_reset +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xc054670c ip6_tnl_dst_check +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xf2943aa0 ip6_tnl_dst_store +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xfc3134ab ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_nat_ipv6 0xf745ec5e nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0xacc8890e xfrm6_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0xcea44f59 xfrm6_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1d3c1c3c l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x27ab6f36 l2tp_session_queue_purge +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x38e516ff l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x442028d4 __l2tp_session_unhash +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6af3ac8f l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7e55a41f l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x858bb21e l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x908a96fa l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x92bfdc39 l2tp_tunnel_sock_lookup +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x98f544f8 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x999f9650 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb5a83b89 l2tp_tunnel_sock_put +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb981af62 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcc6c994b l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd45caa2f l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe6004732 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xec14af61 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x56ed0025 l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x0d9fa94e ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x28f643e8 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3663a36d ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4350814b ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4bf42798 ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x56ff411a ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5d38f601 ieee80211_set_key_tx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x71e3f482 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9e026285 ieee80211_iterate_active_interfaces_rtnl +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb2be9e75 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb96c71ed ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc9649c60 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xda078914 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe71c459c ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf09008de ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x03e1f383 ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x040556aa ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0637316d ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x09dca2ac ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x57f472d8 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6344eaf6 ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x65ae9fb3 ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x69283a86 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x851fe64e ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e523520 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa3c4c8ca ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xaaa969fe ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb25648e0 ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xba8260b8 ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc9a5620b ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xd2df5fd1 ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xef13ebbe ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf3826105 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x29695593 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x8efe9378 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x9630bb78 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xf00b3ffd register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00301e4a nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01f84db5 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x055c4513 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x06d15d6b __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a244740 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0de37f91 nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e9b4f6b nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0eca15c6 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x11395772 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x12821f97 nf_ct_timeout_put_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x12c831ef nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x139ea3d7 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15170821 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1cd0183d nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1eb419bc nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x200e1f65 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x214e54b2 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22a911c1 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x24f22ae6 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37386cac nf_conntrack_hash_rnd +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3798a9e3 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3c582ab9 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3cfc7744 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3d06074a nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f6ac189 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4463533d nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x455a2a8a nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x49383b45 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d631864 nf_ct_timeout_find_get_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5dccf364 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x60b7335c nf_connlabel_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x619c2b0d __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x69732a3b nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x76fc0bd0 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a889be4 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7cc9467f nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x812542dd nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8d30f413 nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e3b0b76 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f44a8da nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x910cb14d nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96741eff nf_ct_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96e63399 nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9c4b024b nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9d878aff nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa1ca7ab1 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa8d479b7 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xabb50509 nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xae3dcdfa nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb1509dfe nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb5d58cce nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb7943a98 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb96a1708 nf_ct_l4proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc0d69f4 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbff64f32 nf_ct_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0569300 nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca80d166 nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcad91fe1 nf_ct_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcd025d1e nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcef5026b __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd19094ad nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd34f9ca5 nf_connlabel_match +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd874fcba nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdabc6774 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdd384bc5 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdf09f8d1 nf_ct_l3proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdf709a02 nf_ct_l4proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe04c19d7 nf_ct_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4f26782 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe576bb96 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe7159511 nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe958cca5 nf_ct_l3proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf134b14e nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf154f8a9 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf4a99b78 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf6ed8a48 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf800938d nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfb25163b nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfc52da4c nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe4a20c4 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xae6137c1 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x0d2f988f nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xa6d5f224 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1cdbe8cf set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x37cd17ba nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x486b5993 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5b0fbdfb nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7efde08b nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa037c0b9 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa6081645 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc609a196 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe754b790 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf05d1541 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xa8c92a17 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x090bcaca nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xbbeacf33 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc817271b nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc91b8a6a nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x0c5138cd nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x52cd294c nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x02c3ce1b ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x52b0cca4 nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6832443f ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7b5b7ad9 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x930621be ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd49e450b ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd9300427 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xa8e44377 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xfca52fc3 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0d9bae4b nf_nat_l4proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x131f636c nf_nat_l4proto_in_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x15c6d35b nf_nat_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x64633ac4 nf_nat_l4proto_unique_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x74e93694 nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x8f89c6d0 nf_nat_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xb949ee0f nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xbe415366 __nf_nat_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xe5920803 nf_nat_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xe8ef2980 nf_nat_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x11a006b5 synproxy_check_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x49d73e79 synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x882da5b6 synproxy_tstamp_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x8841d39b synproxy_build_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x90298227 synproxy_init_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xb42e336a synproxy_options_size +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xef7db50c synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00e6dd93 nft_do_chain_pktinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x04358a1f nft_unregister_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0fda3c99 nft_validate_output_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x1be0a9fa nft_data_uninit +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3454b30e nft_register_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3d49dab7 nft_validate_input_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x6985b5d6 nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x6fcc5804 nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9224886e nft_validate_data_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9ea5f2c0 nft_unregister_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xc08b7fc0 nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe46ad992 nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xec725d07 nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf7a11844 nft_register_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf93e4e9a nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x106fedb6 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x215bf58a nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x80fc9782 nfnetlink_alloc_skb +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x890ad6c1 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x9783b609 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xb8c22bcc nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdea11e09 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x21f6bba6 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x90b602bd nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x78fe6702 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x14d2c58d xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x52c23ddb xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5ee7bdd0 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x681dabc6 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x689e6adf xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x883465f3 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8fd58442 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9ecd9706 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb0257255 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xca3091bc xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcefe1c71 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd7982338 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xffcef719 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x3a099777 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xf4e9cb5d xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x50d2d7f6 nci_spi_send +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x72071444 nci_spi_read +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x89107d6b nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/rds/rds 0x001b8887 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x0b5578c4 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x127a5834 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x1d9f510c rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x204e5275 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x4427d296 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x4cce021e rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x50c0c3b8 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x5223c9df rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x56b9df25 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x5a989290 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x6eb61c7a rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x8077f92a rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x833abe57 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x8f94e868 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x93e998ea rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x97deb61e rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xcaa917d7 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xd8820db6 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0xd8a3c086 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0xe7e18c2f rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0xf49b3ed6 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xfd9bbbaa rds_conn_destroy +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x48d43c28 rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x95b28bfe rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x31ea1da3 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xcaeea1e4 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xddf40bd5 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02843d11 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x033a2d4f sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0424372a rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045834e9 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04b15ac5 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x075aa5d9 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0768f4f3 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08366225 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a83be55 rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ce52f44 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0dd89a5c sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e01def6 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1126faef rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x117a6b28 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13e6a575 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16aff5f9 xs_swapper +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19b22163 rpc_protocol +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a4cda67 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a5860bc csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a5f2a6b xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c0012f6 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f331cf7 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23f0c5e8 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2522facf svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25e2e50b svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2651ab13 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26f9fec0 cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x279ce137 xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2af382d5 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2bda651b rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d430830 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2defe5ff xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30d49bd0 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31c137d0 rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x337347e4 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x354a44a2 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36c85ff7 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36f6a806 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3881488f rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38f2967a rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3936794f rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a8806fc xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ad8c472 rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b744c0a xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b7f8e76 cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b866d46 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d59fe2b rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f0bd9fd rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ffd4797 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42fb053a auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4405cc47 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45f3bb6a svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x470c0294 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47fa46f1 svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d255d43 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d2a8c76 rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e04b3e0 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5017ed50 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x504ca646 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50e22a7f svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51bb59d5 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x551f18d4 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b824551 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c110bfa svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d659927 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fdb717a rpcauth_cred_key_to_expire +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60545d48 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60b79e86 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x650b340a svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65c71639 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6617ac89 cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x671e2a41 rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x673ded23 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69120853 rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x692e1e8c rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69c9bdbf svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a18027b rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a7a4a70 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d29925b rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e3cbca9 xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f029a88 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x724a82f2 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73401489 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7552e684 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x767a4ef9 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a47515f cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a4e0c8e xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c349ff5 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f139be7 rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80951b28 rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81945bf7 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83012fb3 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x841a985e rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x844e704d xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84a0a845 rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85c9eccf xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x860b8073 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x877ec562 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x885051cb rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89f1daf4 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a0194d8 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ac6cc6e rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c100f2b xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8dcba159 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f249f6b xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f62259a rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9325114a xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9343ea6b rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x934ff79b xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93bb6c84 rpc_get_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95565aa3 svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96b2d941 svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x976747ac xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x977e00d7 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97d13182 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b75d64 rpcauth_list_flavors +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c10a35d xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c33e098 rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c5d4fdd xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9da2aa11 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa08f270a rpcauth_key_timeout_notify +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1f52ddf svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa230bddb rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3a1c19f svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5129f8f rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa72f8c4a bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa841acfb cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa959ca8a xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaaad9b52 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab6b2270 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac04aeeb rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae95f7a8 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0116611 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1966fd5 rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2b2c823 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3861d22 rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3eedbb4 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5c0129d xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb7835979 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb811d961 rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb810323 gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb83b47a rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbe0ba8f sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd02a27d svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbdc6f618 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0e427db xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc320f99a rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4863d8c xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc91fb67b xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc952c2e3 svc_shutdown_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca32bf69 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcae46dd3 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb998346 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcbe57573 rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcda2a63a rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcffa8033 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd14162eb xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd192ad61 rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd24113e3 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2c47ec2 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3eb6d69 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4bdb376 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4d88039 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5504347 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd90f95a3 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda8363fe xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd7f25f1 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0f915da xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ac2bb8 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3dcee5b rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6518c68 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeade933e rpc_rmdir +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xebca73e2 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeda1d6c8 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee0c8bad rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef755284 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf11f2c6c svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1cf7e0b rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf22fdc0f svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4adcc12 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4c70693 rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf53ad5c7 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf72c4464 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf79111ed rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf842e18e rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa08473f svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa335e3b rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb3ab7d6 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfbb737cf rpc_wake_up +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0c79d5ef vm_sockets_get_local_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0ff884bf vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x157b1efa vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x15c0c57c vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2663cb64 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x50f95e55 vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x6ec04296 vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x70aabad0 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x74e91915 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x751ff010 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7f730c80 vsock_core_exit +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x99973150 vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd0f699d vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbeffaa03 __vsock_core_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd90cdee6 vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd95ac116 vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xe0648134 vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xe3849484 vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xe57f9669 vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf593c40a vsock_pending_work +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf9c2ede9 vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xfa8fbbff __vsock_create +EXPORT_SYMBOL_GPL net/wimax/wimax 0x15a9b360 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2b7a1424 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2d73b6ac wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x30ea7ac2 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x5b389d62 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x5bddd5d4 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x5d0dd22d wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8005ce51 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x83121c31 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8601ed9a wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8e476af6 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0xc83e0931 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd47fd522 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x23db8cb4 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x31d74739 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x32ae7215 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6c679d2a cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x707f5866 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7b7a1f9d cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x86cb86d9 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x91840444 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9d2c46f9 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb9e62792 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf86c00aa cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00778770 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x056bb269 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0a575945 xfrm_count_pfkey_auth_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0b9e5852 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x74e1a843 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7a8ca627 xfrm_count_pfkey_enc_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7c30b8c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x92dbc6c1 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xbc8b0f41 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xce7a55c1 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe122af95 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x258bffce ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x9920bb6a ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xbe78338e ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xdd73b520 ipcomp_output +EXPORT_SYMBOL_GPL sound/core/snd 0x3ca17104 __snd_printk +EXPORT_SYMBOL_GPL sound/core/snd 0x8642e79e snd_kctl_jack_report +EXPORT_SYMBOL_GPL sound/core/snd 0x8ecaf9bd snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/core/snd 0xb208afb1 snd_kctl_jack_new +EXPORT_SYMBOL_GPL sound/core/snd 0xc018dcf4 snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL sound/core/snd 0xff55b3d5 snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x20cb0e48 snd_compress_new +EXPORT_SYMBOL_GPL sound/core/snd-compress 0xc0540815 snd_compress_register +EXPORT_SYMBOL_GPL sound/core/snd-compress 0xf5cecbde snd_compress_deregister +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x04e1b99f snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x09e913c1 snd_pcm_alt_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x5fc91106 snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xd2dffcb2 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x09aa550d snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x09f4c964 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x0feadbef snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xacfade6e snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xc5bd739e snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xc5edfa7d snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x01840ed0 snd_hda_parse_generic_codec +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x03123d7a snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x03bd6406 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x041ceb0f snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x046f1b2c snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x050458d7 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x06cb14c5 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ac19aae snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0bf686e5 snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0c39ef5a snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0f4ddeb6 snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x118d2203 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14a7823f snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15b4dfc6 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x16ef9a9a snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1859fa46 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1aa35b2d snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1e20eb7d snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ead7a0d snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1f325b30 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1fae2e59 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1fca2c1c snd_hda_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x21c57ad6 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x22d460a0 snd_hda_gen_spec_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x24ab982a snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x25236d91 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x26394709 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2765ecaa snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27e00c40 snd_hda_jack_detect_state +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2ac07468 snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2ac6e978 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x31a8dc21 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x31c91316 snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x321d58b1 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x36e7722a snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x373a5fb2 snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38cc512e snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c68d8a2 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ef8e730 snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3f151021 snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4175bd64 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4181cbdc snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x41c18ed0 snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x43b68dd1 snd_hda_parse_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4480cfcf snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x44e92cc0 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x46f1a102 snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x47d6f588 snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dbd1e8a snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4de96a67 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x50854c0e snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x519c85d8 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x54cd5cc5 is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58f03e04 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x593f6e48 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x598219c3 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c911518 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ca14ce5 snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5db62f4c snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x60a5e5e1 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x62f45d58 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x633aefda snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x695e053f snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x699010a7 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x69d4ce0b snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b680f7c snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e1fe055 snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6ff38d09 snd_hda_get_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x72d9e597 snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76dc6871 hda_main_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x777a6ebf snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x777ece11 snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x785483c4 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7cc8c5c6 snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f4687af snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f7969b8 snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x832321d0 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8642cdb3 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x871a6e44 hda_extra_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x878d7196 snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c92a5cf snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8d615797 snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e2f2162 snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8ed07093 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9202acd2 snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9bca62e6 snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9c82960f snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9c8e5994 snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa04465c9 snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa119f2c7 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa465eb8e snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5478616 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa67f76e1 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa68cccc7 snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa81cfe9f snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa983881e snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa60f6d1 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xab9a3092 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xae1c4eaf __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0aeb378 _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0db2fa3 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb1171ec7 snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb303e138 snd_hda_jack_detect_enable_callback +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb3adf7b8 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb50943d8 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb57fcb75 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb65fa217 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb87d618c snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbce7537c snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbfbf4a5d snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc23ae966 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc965ddc7 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca46bb06 snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd53a7c3 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd54df18f snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd857d4b3 snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9c687b0 snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdbd0fec1 snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdcbe362b snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdccb7df4 snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdce56d90 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde2274c0 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde9293ae snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe118de5d snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe21ac70b snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2902883 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe49be3db snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe609169c snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe6afad40 snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe77e2f9e snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe86f343c snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeacd7502 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeaeaab5d snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xec90604a snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xecfb9b79 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee1ef4b5 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf08019a0 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf23f6fe7 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf2c64177 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf309851f snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4c9b3df snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4e2aac9 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf558ade5 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf5b92db0 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf5d6c275 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf6ecee50 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf7b50857 snd_hda_codec_flush_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf9bbd321 snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfb688668 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd438dff snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfddd4bb5 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfde220f6 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xff828e09 snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x52c863f2 atmel_pcm_mmap +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x7c344088 atmel_pcm_new +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0xafd14246 atmel_pcm_free +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sn95031 0xf3b61712 sn95031_jack_detection +EXPORT_SYMBOL_GPL sound/soc/mid-x86/snd-soc-sst-platform 0x48fcff92 sst_unregister_dsp +EXPORT_SYMBOL_GPL sound/soc/mid-x86/snd-soc-sst-platform 0x9f9b38d6 sst_register_dsp +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00832af3 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x02e5e23d snd_soc_add_codec_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x02e63568 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0403f2e5 snd_soc_bytes_get +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06dceffb snd_soc_of_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x082d9b37 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x09375ab8 snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a36810c snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a71eea2 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b55df79 snd_soc_platform_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0f7bee6c snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0fd03d9c snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1047a84b snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x121bb01b snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x16475b56 snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1a3593c8 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1c6ddb5d snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ef29374 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f0def48 dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f61d200 snd_soc_get_dai_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23a081ca snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23bbc04a snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x248ec279 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x25466338 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x259973f5 dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2b06df6d snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2cef7757 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2d80c7bd snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f3883ad snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f6c10fb snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x337b8e54 snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3626669f snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x36cf87bb snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3aed36f9 snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3d80e0ac snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3e2fe92e snd_soc_bytes_put +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x40482a51 dapm_clock_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x406f0726 snd_soc_dpcm_be_get_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4302edb5 snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4323c561 snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x44ead93a snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x47c0d1f9 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x47dc3b72 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x495c0bec snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4996e678 snd_soc_add_card_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4b67ac77 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52da725b snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5351deee snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x53a18c1b snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x576bc344 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x58a9c9f6 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x59f4f261 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5b551a15 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5c349beb snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5f3bbb82 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x62eb405d snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x650095ff snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65e17a57 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x661154fa snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x67b8ce4f snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a28a4a2 snd_soc_dpcm_be_set_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6bb2ef7c snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x70cecb2d snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7511749e snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x77f327a7 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7890d420 snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7f9c5c26 soc_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x89d7390f snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8a1386fe snd_soc_dapm_kcontrol_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8b3a44e1 snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x92d28fbe dapm_regulator_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x933f546f snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x934cab1b snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x948a7eaa snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94d59135 dapm_mark_io_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x968236c9 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9913efea snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa02f1939 snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa0f89c9d snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa107627c snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa26655d3 snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa415b282 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa8378bbe snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa88f5b36 snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac426abd snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xae7599d8 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaee49aeb snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaf5ecc83 devm_snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaf8412d7 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb45495b4 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb47970aa snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb495d49a snd_soc_add_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb601589d snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb85adb0a snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb96aa84f snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbb02b792 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbb5555ff snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd4f3ba8 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc0f76be5 snd_soc_unregister_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc313b781 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc5c31698 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc851f154 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcac50c28 snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcfec2ec4 snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd2a7b680 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd450df2b snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd4b89f2c snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd597eeb5 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd7a4400e snd_soc_get_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdb2ed58c snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdb395b32 snd_soc_remove_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdb64e656 snd_soc_lookup_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdd297516 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xddf43417 snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdfc05994 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe2a2fc7f snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe34fbcf8 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe45c935e snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6b256bc snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xea892a00 devm_snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeaf77e21 snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb08a3e7 snd_soc_put_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xef8c0871 snd_soc_bytes_info +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf163fcb9 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf29771a3 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf533ddde snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf891e97d snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf8d7d031 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf92c0d70 snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfb744f68 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfc5dc79a snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfddd4a7f snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xff449ba6 snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xff99248d snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xffa02017 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xffd0ad2b snd_soc_get_enum_double +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x118a3f6e i915_bdw_gpu_busy +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x34af3be3 i915_bdw_release_power_well +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x7381c75a i915_bdw_read_mch_val +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x8993eade i915_bdw_request_power_well +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x8b28f943 i915_bdw_get_cdclk_freq +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0x96d7119d i915_bdw_gpu_raise +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0xa17bc3aa i915_bdw_gpu_turbo_disable +EXPORT_SYMBOL_GPL ubuntu/i915/i915_bdw 0xde54f019 i915_bdw_gpu_lower +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_file_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x000517b3 pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x00191d28 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x0034f3b6 xen_has_pv_nic_devices +EXPORT_SYMBOL_GPL vmlinux 0x004d62b4 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0071fc5c ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x009304b6 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x009386b8 cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0096e5d4 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x00b348ac xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0x00bce860 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00c90bcf ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00f8373d swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x012b9c88 iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0x0130f7f3 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x01326f85 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x013e6458 get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0x0170cb6c efivar_work +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x01d11a05 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x01d567cc device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x01e0d56f tpm_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01ea626b ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x01f1fa55 list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0x01f96dad dev_hard_start_xmit +EXPORT_SYMBOL_GPL vmlinux 0x025e8398 napi_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x025eec5b dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x026211e2 memory_failure_queue +EXPORT_SYMBOL_GPL vmlinux 0x027a733b platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0297a226 da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x02aa9ef3 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x02b24324 devm_regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x02c10062 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x031eed7d __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x03221d67 xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x032c3213 regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0343fa24 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x03983a36 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x03b02625 cgroup_taskset_first +EXPORT_SYMBOL_GPL vmlinux 0x03b5bb41 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x03bf1d5e gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x03ca5835 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x03cdb896 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04011a1d sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x0406db08 devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x041ac8d9 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x04302528 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x0444e4e2 pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x0445210b percpu_ida_free +EXPORT_SYMBOL_GPL vmlinux 0x04453c42 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044cc3b0 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x04646dab preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x047df5ca pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x04bf26af ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x04c191b9 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04c712b4 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x04eb3561 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x04eee6bf vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x04efa836 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x051c8f19 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x05248e7b crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x052f0ef0 subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0555d391 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x058b582a vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x059d07b6 of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x05b4bead xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x05d1b442 __efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x05f58148 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x062fc169 xen_hvm_resume_frames +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x065135b0 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0x06893f3d max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x06917f82 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x06963c36 intel_msic_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x06aa366c debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0x06b948c4 rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0x06d549e6 pinctrl_free_gpio +EXPORT_SYMBOL_GPL vmlinux 0x06e59b32 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x070cdd9d md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x071e45b4 efivar_entry_set +EXPORT_SYMBOL_GPL vmlinux 0x074fd780 of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x075c7d33 pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x0762403c edac_put_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x07695fad udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0x077b2367 xen_swiotlb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x07852eee rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0x078c0137 btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0x0794f8d4 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x079cebb7 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07c24553 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x07d9f96b regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x07f300c3 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x07f9d6f9 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0x07fc478e acpi_dev_resource_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x086e3e8b usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x088fe566 ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x08d87775 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x08f4c1dc blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x08faccd0 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x0902c608 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x093b2a24 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x09437748 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x09469482 kfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x09608eb5 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x0962d0e8 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x09861ebd dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x09d13b9d fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x09dd99ff ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x0a0694ce pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x0a1f02cf rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x0a334fd4 xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0a428ac2 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x0a8c21bf blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0a8c916e reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x0a8fea26 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0x0a9fd3c5 gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x0ab39cf9 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x0afd4610 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x0b048285 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b0e91f0 netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0x0b10c6c8 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x0b1ea5a6 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x0b4ce7cc devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0x0b52e502 apei_resources_add +EXPORT_SYMBOL_GPL vmlinux 0x0b54a1b1 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x0b59390b __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0b7a9b03 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x0b7ac6f7 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x0b7fcfe2 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x0bae62b1 ktime_get_monotonic_offset +EXPORT_SYMBOL_GPL vmlinux 0x0bdd9725 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x0bf5a9b8 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c17dc3e anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x0c255c01 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c743ea4 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c80e3fe efivar_init +EXPORT_SYMBOL_GPL vmlinux 0x0c8703f5 dma_buf_unmap_attachment +EXPORT_SYMBOL_GPL vmlinux 0x0c9b0d5b raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x0cb4d776 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0cce0227 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x0cfe8b85 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x0d190c04 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x0d281d53 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x0d2b4560 percpu_ida_for_each_free +EXPORT_SYMBOL_GPL vmlinux 0x0d3e7747 serial8250_rx_dma +EXPORT_SYMBOL_GPL vmlinux 0x0d607fcf device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x0d7be992 regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x0d9377f8 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x0da41787 unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0x0dab8a0e unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e162750 fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0e21fdb6 crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0x0e304b1d tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x0e449742 extcon_register_interest +EXPORT_SYMBOL_GPL vmlinux 0x0e60b9e5 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x0e727e7b __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x0ea08d04 subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x0eac97ce ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x0eb38975 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x0ec2e252 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x0ed8a2b5 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x0ed9302e percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0f2d7d87 mce_unregister_decode_chain +EXPORT_SYMBOL_GPL vmlinux 0x0f3954ce wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x0f4b6ed9 gpio_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x0f61093d gpiochip_add_pin_range +EXPORT_SYMBOL_GPL vmlinux 0x0f6dabac irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x0f751aea input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x0f8c04d0 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0f93cd4a fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0x0fa138de xen_hvm_need_lapic +EXPORT_SYMBOL_GPL vmlinux 0x0fc01e9f static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x0fcc1969 copy_from_user_nmi +EXPORT_SYMBOL_GPL vmlinux 0x0fdfd63e btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x0fff6a56 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x1013efbd __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x1041c827 acpi_dev_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x1094d5f0 acpi_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x10bf7b05 devm_rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x10dc7f8c i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x10ff73a2 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x110106c1 cper_severity_to_aer +EXPORT_SYMBOL_GPL vmlinux 0x11300976 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0x1156144d dma_buf_map_attachment +EXPORT_SYMBOL_GPL vmlinux 0x11564a02 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x1163abcb xen_swiotlb_set_dma_mask +EXPORT_SYMBOL_GPL vmlinux 0x116f3083 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x117c3d2a sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x117c7305 hwpoison_filter_dev_major +EXPORT_SYMBOL_GPL vmlinux 0x118048a3 ping_seq_fops +EXPORT_SYMBOL_GPL vmlinux 0x11978027 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x11b40076 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x11dd03c3 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x11e000f5 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x11f21c69 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x11f59b39 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x12030fa6 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x1230ea05 efivars_kobject +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x125009c4 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12852706 xen_unmap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x12c81298 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x12dd2010 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x130bd388 check_tsc_disabled +EXPORT_SYMBOL_GPL vmlinux 0x1316164a regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x132fc939 cper_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0x133dea43 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x136e59b7 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x13921363 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x13ad647f scatterwalk_bytes_sglen +EXPORT_SYMBOL_GPL vmlinux 0x13b89dee pinctrl_request_gpio +EXPORT_SYMBOL_GPL vmlinux 0x13bfee20 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x13cf6e7b power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x13d77394 tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x13eb49d8 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x13ebd08e acpi_dev_get_resources +EXPORT_SYMBOL_GPL vmlinux 0x13f3e3fb klist_init +EXPORT_SYMBOL_GPL vmlinux 0x14021fca inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x145784d1 gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x149eb495 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x14ad5f79 xenbus_dev_groups +EXPORT_SYMBOL_GPL vmlinux 0x14afa1d1 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x14e3ebff gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0x14f875ce devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x14fc0c63 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x15010e1f arbitrary_virt_to_machine +EXPORT_SYMBOL_GPL vmlinux 0x1545c728 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x154cb445 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x1554c86c security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x15568631 lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x156b462d transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x15a1fda9 da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0x15a9ea0e ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x15cacda2 init_fpu +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x16511579 trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x166bee54 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x166cb793 ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x168962ad regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x16a753a7 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x16c1a013 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x16c50eb9 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0x16cfe2a8 ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x16dc41f9 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x16f33ec6 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x170171b3 blkg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x171ecbcb regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled +EXPORT_SYMBOL_GPL vmlinux 0x1746f98e __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x1753a32f hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0x1753b67e regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x1756f2cf led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x175cfb6a fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x17801e67 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x178bb0c4 class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x17f62bba regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0x181851fd vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x1829b9ed hwpoison_filter_memcg +EXPORT_SYMBOL_GPL vmlinux 0x183cf293 devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x184e7cb5 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x18507a55 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x1853653c btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x18582826 amd_pmu_disable_virt +EXPORT_SYMBOL_GPL vmlinux 0x1866cec2 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x189130b8 usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x18a27f34 jump_label_rate_limit +EXPORT_SYMBOL_GPL vmlinux 0x18ca8c5e wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x18fb6bad inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x19496284 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x194dd5f5 pkey_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x195714c1 iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0x1961e026 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x196e681b regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0x1994b2e7 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19a39e99 acpi_bind_one +EXPORT_SYMBOL_GPL vmlinux 0x19b384a5 hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x19cc9050 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x19f49249 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x1a082d69 max77693_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x1a1583ca __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x1a28f70c ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a33ce74 efivar_entry_find +EXPORT_SYMBOL_GPL vmlinux 0x1a3fa3c5 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x1a674455 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x1aaca78b uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1ab3de98 pci_reset_bridge_secondary_bus +EXPORT_SYMBOL_GPL vmlinux 0x1ac43b90 extcon_get_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x1acef7d2 pm_freezing +EXPORT_SYMBOL_GPL vmlinux 0x1ad588b1 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x1ad83009 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1ae76ccc acpi_kobj +EXPORT_SYMBOL_GPL vmlinux 0x1b1953ff inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL vmlinux 0x1b52db1c probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1b670076 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x1b8822d8 pinctrl_gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1ba0d156 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x1bac61c7 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x1bc5eebe pinctrl_gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x1bca840c xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x1bd06aab cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x1bea9e09 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x1c093bb5 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x1c09f551 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x1c1ec0b8 acpi_register_gsi +EXPORT_SYMBOL_GPL vmlinux 0x1c334159 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c5fc3b3 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x1c647967 uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0x1c7d3349 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c87e28a virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0x1ca19692 __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x1ca7c4b1 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1cbbabb0 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x1ce98df1 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x1d03afc3 sdhci_pci_o2_probe +EXPORT_SYMBOL_GPL vmlinux 0x1d1b7cf8 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x1d26c38b regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x1d452efe usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x1d459685 xstate_size +EXPORT_SYMBOL_GPL vmlinux 0x1d58ae14 lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x1d5e3681 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x1d673c75 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x1d739e1c xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d7ebed2 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x1d813151 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x1d8fb3bb acpi_dev_resource_address_space +EXPORT_SYMBOL_GPL vmlinux 0x1d94b281 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x1dc7cac9 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x1ddd1df5 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x1ddea147 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x1de94418 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x1e000879 hwpoison_filter_enable +EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x1e4184e9 balloon_mapping_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1e5b03dc pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e862807 devm_pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x1eb1594f gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1edc21cb hwpoison_filter_flags_mask +EXPORT_SYMBOL_GPL vmlinux 0x1ede28ea crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x1f150802 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x1f1988f7 hwpoison_filter_flags_value +EXPORT_SYMBOL_GPL vmlinux 0x1f4410b8 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x1f4aec74 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x1f50a743 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x1f7d9ea6 pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x1f7f6fac register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1facd162 system_trusted_keyring +EXPORT_SYMBOL_GPL vmlinux 0x1fb02097 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x1fcc4f68 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fd1d26b dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x201da24c pwm_can_sleep +EXPORT_SYMBOL_GPL vmlinux 0x202a099e inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x204101a6 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x20572621 tcp_fetch_timewait_stamp +EXPORT_SYMBOL_GPL vmlinux 0x20671650 call_srcu +EXPORT_SYMBOL_GPL vmlinux 0x20812981 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x20849c00 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x2092db20 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x209ec764 xen_event_channel_op_compat +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20c73af9 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x20d4a18d __percpu_ida_init +EXPORT_SYMBOL_GPL vmlinux 0x20eb7c42 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x2130315f sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x2138a319 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x21434b45 __netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x21574900 devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x21825fc7 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x21ac8b77 iommu_group_get_by_id +EXPORT_SYMBOL_GPL vmlinux 0x21c64d1e ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0x2223a963 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x2235593f xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0x22448dc5 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x2256b93a usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x2279fc70 regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x2284f2c4 acpi_dev_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x229bbac5 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x22ae1d33 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x233514ab xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x2351f999 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x2366a2c0 errata +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x2392bc6e pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x23dbde3a subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x23fbf06e debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0x240580a9 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x2469810f __rcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x249ef40d fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24ab9e6f usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x24c119e0 __tracepoint_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x24f4e0d6 virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x252fb7db skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x254f7a6a rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x256eead6 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x257e5af9 dma_buf_kmap +EXPORT_SYMBOL_GPL vmlinux 0x2599e6ee fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x259d4a64 lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0x25a1df00 acpi_unbind_one +EXPORT_SYMBOL_GPL vmlinux 0x25a57409 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x25e8fca1 __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x25ecff73 rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0x25fd0103 spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0x261b0f0e usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x26830067 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x26965721 slow_virt_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26eb0688 list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0x270f7772 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x270fb5cd acpi_match_device +EXPORT_SYMBOL_GPL vmlinux 0x2724f97a tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x272b3858 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x274cbccd tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0x275f3fa9 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x2797641d uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27bccc8a stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x27bf900d handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27ddb33d acpi_dev_resource_io +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x282a3a78 usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2850ae30 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x2858706c usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x28931933 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28a903c8 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x28ac7793 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0x28afe6ab crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x28d5f446 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x28d6afac perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x28d8117e subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x28e64c64 xen_has_pv_and_legacy_disk_devices +EXPORT_SYMBOL_GPL vmlinux 0x28f2c6da dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x29059b53 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x29399fd4 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x293f073e vrtc_cmos_write +EXPORT_SYMBOL_GPL vmlinux 0x295a1d63 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x297749a6 arizona_dev_init +EXPORT_SYMBOL_GPL vmlinux 0x297ada65 blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0x2986790e rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x29994716 serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0x29d334ac page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x29e412b8 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x29ed3947 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x29f8d8ab tpm_write +EXPORT_SYMBOL_GPL vmlinux 0x29fbaa77 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x2a1208b5 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x2a16b08c pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x2a2ed53a part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x2a4f5c91 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2ac36de7 btree_last +EXPORT_SYMBOL_GPL vmlinux 0x2ac37f88 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x2ac39e74 iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x2ad1ece4 zs_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2ad4dc3d hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2b211ec5 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0x2b35b43a unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x2b3b4a87 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x2b3dc28c aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x2b540aac acpiphp_register_attention +EXPORT_SYMBOL_GPL vmlinux 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL vmlinux 0x2b7a6de8 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x2bb696b0 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x2bb6b43e devm_acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x2bfaef4e clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0x2c153630 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c4466eb hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x2c6a0410 xen_set_domain_pte +EXPORT_SYMBOL_GPL vmlinux 0x2c6b60a4 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c876909 ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2d0d11aa reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2d17a0e1 cgroup_taskset_size +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d1b24aa i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x2d3f9f00 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d718286 dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2dab5b49 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x2dab6df3 pwm_disable +EXPORT_SYMBOL_GPL vmlinux 0x2dc6afeb xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x2dd3da81 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x2de05c75 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x2dffa6cd spi_master_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e25fbe3 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e3ed428 gpiochip_remove_pin_ranges +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e4b9998 input_class +EXPORT_SYMBOL_GPL vmlinux 0x2e8217c7 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x2e8b6c8c __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2e962a84 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x2eb5cadd thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ee05faf cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x2eeb0035 irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x2ef3aa7c __netpoll_free_async +EXPORT_SYMBOL_GPL vmlinux 0x2f04d8b8 rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f18ceba dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f64415f unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2f6a4f04 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2f8ed260 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x2fd8cba9 freeze_wake +EXPORT_SYMBOL_GPL vmlinux 0x2ffe06a4 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x3002d4f0 rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x3006262e serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x302e596d xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0x3062da8e usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x30775f5b ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x308b733a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30e9e321 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x30f12599 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x30ff932b extcon_unregister_interest +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x311b1a12 crypto_lookup_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x3122e41a ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x312da4f0 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x3147e564 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x31541065 extcon_set_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x315bb54e __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x31689784 wm5110_patch +EXPORT_SYMBOL_GPL vmlinux 0x316cbc29 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x317d59a6 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3195d628 usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x31c9b67a spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x31d577ca bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x31dce582 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x31dfe02f acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x31fb31fd tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x32056c39 inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0x322f3511 __tracepoint_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x32385d47 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x3256ca45 gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x326f6202 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0x3281cbe5 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x328995b5 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x32924a4d scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x329bbbde timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x32a486c7 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x32a835e9 css_next_descendant_post +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32b445e5 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x32b9923a intel_scu_notifier +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32d66388 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x32dc227e inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x32ddd5b6 call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x32e617c7 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x32fc25de pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x32fd447a monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0x32fd4b62 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x32fd8979 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x330135e0 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x333228ec intel_msic_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x3341a5ce crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0x33520d72 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x33655159 xen_pcpu_hotplug_sync +EXPORT_SYMBOL_GPL vmlinux 0x338edbc5 pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0x33a0e527 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x33ad2322 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x33b5a2e7 pinctrl_lookup_state +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33cabf04 regulator_can_change_voltage +EXPORT_SYMBOL_GPL vmlinux 0x33cb9285 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x33e855da vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x3406986a spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x3408f500 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x3424556a xen_swiotlb_unmap_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x34251be3 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x345552b8 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x34ac50a4 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x34b4c66a regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x34db5932 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x34f659a2 xen_pci_frontend +EXPORT_SYMBOL_GPL vmlinux 0x34fa8c37 arizona_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x34fc1a6a ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x35129fd4 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x35184d7a tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x352650ee gnttab_batch_map +EXPORT_SYMBOL_GPL vmlinux 0x355d76c5 devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x355de629 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x3581f995 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x35ab93d9 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x35cd0746 ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0x35de364c pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x35df06bc power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x35f10f43 nfq_ct_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x35f165f1 devm_reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x35f3ae51 unix_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x36075bb5 iommu_group_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362c5464 palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0x36745453 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x36865979 acpi_subsys_prepare +EXPORT_SYMBOL_GPL vmlinux 0x36894637 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x3691780c task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36a1fef6 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x36b5497e intel_iommu_enabled +EXPORT_SYMBOL_GPL vmlinux 0x36ba2551 intel_scu_devices_destroy +EXPORT_SYMBOL_GPL vmlinux 0x36ebdc82 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x37308794 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x37c87af8 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x37ecbb71 regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0x37edf87b ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x37f3fec4 isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3842d7c0 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x38620e38 gnttab_grant_foreign_access_trans_ref +EXPORT_SYMBOL_GPL vmlinux 0x3869fcbb spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x3871c492 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x3884a931 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38ba5264 subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x38f83c61 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x39058e22 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x39270d14 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x39303884 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x39470404 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x3962dbc2 rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x3965ce8c regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x3967af74 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x3973db6e tps80031_ext_power_req_config +EXPORT_SYMBOL_GPL vmlinux 0x3975245e __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x397ba7a4 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x398a733e usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x399f1bd0 regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x39a1588e use_mm +EXPORT_SYMBOL_GPL vmlinux 0x39d2efe5 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x39dbce30 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x39dfd053 tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a2df8b8 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x3a38dc65 memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x3a40c85f setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a77dc19 ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x3aa4897b wm5102_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3aad3112 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x3ac3cd66 print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x3af1d9fb clockevents_unbind +EXPORT_SYMBOL_GPL vmlinux 0x3af24d90 regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x3b062d26 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0x3b1f1904 filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x3b334c6a platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x3b343435 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x3b49b931 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x3b55911d cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3ba476ee sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x3bb6d98f __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x3bba51aa rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x3bc29613 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x3bf4c918 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x3c03222b rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x3c0bf938 hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x3c0e6499 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x3c1d1334 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x3c38cfa7 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x3c51f71d pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x3c778360 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x3c8424a0 clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c8f4428 clk_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3ca2c01d usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x3cc0d65b bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x3cc2dbc8 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x3ccfba5a devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cf04db4 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x3d2c42b9 da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d56b013 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d81b826 ping_err +EXPORT_SYMBOL_GPL vmlinux 0x3d8f6129 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x3da43062 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x3db610b2 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x3db672dc PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3ddc798c blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x3ddca044 ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3e15aabb virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x3e1f1e08 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x3e229d57 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x3e2d42c6 evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x3e2e543d cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x3e2ea3cc adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3e2fa31f wm8997_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3e43dff4 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x3e767677 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x3e7f0dfc __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x3e96f263 mmput +EXPORT_SYMBOL_GPL vmlinux 0x3e971b8d regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x3e9da0c4 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x3ea27f04 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x3ea5196d apei_osc_setup +EXPORT_SYMBOL_GPL vmlinux 0x3ec26e35 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x3ec54a4d platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x3ec6385e usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x3eed2586 pinctrl_find_gpio_range_from_pin +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f1a440f pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0x3f229c4c oops_begin +EXPORT_SYMBOL_GPL vmlinux 0x3f31cc8f regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0x3f7a4dea extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3f85412f pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x3f85f4c3 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x3fbb9ba6 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x3fdfe44f xen_swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x3ff3e2ad iommu_attach_group +EXPORT_SYMBOL_GPL vmlinux 0x400a024b acpi_scan_lock_release +EXPORT_SYMBOL_GPL vmlinux 0x402d527b platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4034e251 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4045c494 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x4048cfa0 ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x405ad576 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x4065d168 pm_print_active_wakeup_sources +EXPORT_SYMBOL_GPL vmlinux 0x4073cb13 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x407b1fc4 device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40af2c6d devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x40b93322 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40d5189f device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x40dafcd4 extcon_get_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x40f5c120 smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x410ade51 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x4110a744 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x41120da8 extcon_find_cable_index +EXPORT_SYMBOL_GPL vmlinux 0x41299916 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x41956e5b debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x41a304f6 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x41becdee da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x41d433ad rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x4213a51a efivar_entry_set_safe +EXPORT_SYMBOL_GPL vmlinux 0x42140d18 proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x424296d5 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x4242b96d sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x42501f31 xen_swiotlb_sync_single_for_device +EXPORT_SYMBOL_GPL vmlinux 0x427f404f tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42c989ff iomap_atomic_prot_pfn +EXPORT_SYMBOL_GPL vmlinux 0x42f2b9fe aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x430b40dd class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x4310bbd9 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x435e6c6e crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x438b23d5 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x43a53735 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x43fbd3b4 fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0x44373963 rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4456b09f rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x445cd0a3 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x4474d6df pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0x44785b95 acpi_processor_get_performance_info +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44ad5421 iommu_domain_window_enable +EXPORT_SYMBOL_GPL vmlinux 0x44bfa4cb usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x44cc9c55 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x44dab5b6 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x4512b086 intel_scu_devices_create +EXPORT_SYMBOL_GPL vmlinux 0x4523cab9 cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x454c15ae __smp_call_function_single +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45825372 devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x45872d6b eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x459e1ce8 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x45a31751 pinctrl_find_and_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x45aef36e usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45d347f1 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x45d9fbc5 pinctrl_utils_add_config +EXPORT_SYMBOL_GPL vmlinux 0x45f8f2b4 dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x460f7531 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x46282497 iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0x46319413 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x465622b3 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x46649969 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46802ae3 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x46926630 device_store_int +EXPORT_SYMBOL_GPL vmlinux 0x46a422ec dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x46da3465 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x46df61f0 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x46f13326 watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0x46ff1de8 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x470fa426 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x472b6c82 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x472dafde clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x474e9bdf iommu_domain_set_attr +EXPORT_SYMBOL_GPL vmlinux 0x475f7057 regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x476fdc90 tcp_peer_is_proven +EXPORT_SYMBOL_GPL vmlinux 0x4772df0e ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x477a6ec6 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x4784c472 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47b4fe32 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0x47d15825 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x47fc7765 inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x481fdd72 ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x4828e77b acpi_scan_lock_acquire +EXPORT_SYMBOL_GPL vmlinux 0x483e087f regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x48682db9 perf_guest_get_msrs +EXPORT_SYMBOL_GPL vmlinux 0x48bea441 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x48c58a0c nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0x48ca8947 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x48d587b8 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x490a8df6 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x49339f55 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x494ef1c8 ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0x4976fbe0 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x4977ce9b ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0x49784f7d usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x4978ba8f irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x4982a57f probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x498bc52b hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x498d293a trace_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49af587c inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x49b57ea4 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x49c6352c fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x49ef29b6 rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0x49fd3653 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x4a33ce4a bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x4a3c3cf9 microcode_sanity_check +EXPORT_SYMBOL_GPL vmlinux 0x4a4f038d skb_gso_transport_seglen +EXPORT_SYMBOL_GPL vmlinux 0x4a57c5e8 tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x4a717213 dbs_check_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4a8b491c usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4afb573b vrtc_cmos_read +EXPORT_SYMBOL_GPL vmlinux 0x4b0150d4 dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x4b13658d __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x4bb74f8f ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bd3ad84 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x4bdf2f1d usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x4bfa0770 ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x4c01f27e mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x4c10d14d __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x4c16f764 btree_remove +EXPORT_SYMBOL_GPL vmlinux 0x4c210439 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x4c2381fd rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0x4c2a472b __static_cpu_has_safe +EXPORT_SYMBOL_GPL vmlinux 0x4c2e1f24 clk_disable +EXPORT_SYMBOL_GPL vmlinux 0x4c602bf1 __blkg_release_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4c6b0d25 PageHeadHuge +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c7d462a usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x4c8c287c security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x4ca4c9df clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x4cba3ca7 pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0x4d1edc17 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x4d2d790c bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x4d846776 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x4d87bdf2 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x4d92b653 pinctrl_utils_add_map_configs +EXPORT_SYMBOL_GPL vmlinux 0x4d9ad6ab power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x4db48f1e tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4de1cfee crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x4de94a5c ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x4df50d1a bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x4df65695 regmap_fields_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x4df8fd18 pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e22fef0 sec_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x4e231df4 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x4e242f5f pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x4e2c01ed debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x4e4b036a device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x4e4d9399 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x4e57723d apei_read +EXPORT_SYMBOL_GPL vmlinux 0x4e74e625 gnttab_batch_copy +EXPORT_SYMBOL_GPL vmlinux 0x4eabb919 of_reset_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x4eb52164 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x4eb9bed5 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x4ec569f2 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4efbe3bb ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x4f020dee public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x4f094fad ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x4f41ba5f ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0x4f6b0baa efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0x4f805b99 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x4f8c225b edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x4f8ef009 __efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0x4fa7026f usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x4fbd20f5 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x4fc03fa0 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x4fc52e8d __tracepoint_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x4fd197c7 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4ffd923e i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x500c374d dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x5026585c xen_irq_from_gsi +EXPORT_SYMBOL_GPL vmlinux 0x5043b86c dma_buf_begin_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x5052b92f pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x505d5168 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x506691f1 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x506b0164 efivar_entry_add +EXPORT_SYMBOL_GPL vmlinux 0x506cc085 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x508ce869 arizona_clk32k_disable +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x509629da tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x50a6cd2a inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x50b8a617 sdhci_pci_o2_probe_slot +EXPORT_SYMBOL_GPL vmlinux 0x50c7f987 iommu_present +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50cb12ef pinctrl_dev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x50cf9f12 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x50e455a6 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x51035ecd ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x5108b3fc acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x51112ee6 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x51379196 __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x513ac72e pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x51431bb8 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518c1648 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x51a48c70 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x51a5a52d usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x51a93607 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x51e82c26 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL vmlinux 0x521a7e4a pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x52212010 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x5255ded8 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x525cbf07 alarm_start +EXPORT_SYMBOL_GPL vmlinux 0x525ec539 device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x5272d8bc __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0x5276241a ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x52784411 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x528ed014 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x52a41251 __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x52ca30c6 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x52e26c14 skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x530fef59 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x531952ff ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0x53239a74 cm_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x533a0d39 m2p_remove_override +EXPORT_SYMBOL_GPL vmlinux 0x5344dca9 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53725c71 css_rightmost_descendant +EXPORT_SYMBOL_GPL vmlinux 0x5391b3b0 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x539f157b pci_xen_swiotlb_init_late +EXPORT_SYMBOL_GPL vmlinux 0x53a863e7 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x544c92d5 __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x54570689 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x5467152c device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x54740eb7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x54902cb5 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54a2326c efivar_entry_size +EXPORT_SYMBOL_GPL vmlinux 0x54a4fc8d ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x54a7f89b pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x54b8ac68 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0x54b8e501 register_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x54ce22af perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0x54dc713c fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x54df4a45 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x54e680e8 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x54f37622 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x5508010e securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x55117d20 pinctrl_dev_get_devname +EXPORT_SYMBOL_GPL vmlinux 0x5513a18a flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x55247f66 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x553215eb pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x5578218d inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x55b87b05 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x55c0fa41 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x55c19f8c ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x55edd53d unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x55f93302 xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0x5601d950 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x56185cf6 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x56243b6e vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x5628350a usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x5637d5fc find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x56437521 regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x5654f836 erst_get_record_id_next +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x5661b8a9 sdhci_pci_o2_fujin2_pci_init +EXPORT_SYMBOL_GPL vmlinux 0x56653288 rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x56694a69 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x566cd269 usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x56886b19 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x568f85b7 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x5692386f gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x569aaa46 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0x56b0e8c6 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56b6ae32 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x56bcedae register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x56ced930 acpi_dev_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x56d697ce cpu_up +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56f14fa4 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x56f4ef39 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x57231f45 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x572bae9b regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x574c25db pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x57520d16 cper_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x575641e4 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x575d050c add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x5789b1fc dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x582b5007 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x5839fc62 gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x58413099 ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x584c5acb led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x585704ab aer_recover_queue +EXPORT_SYMBOL_GPL vmlinux 0x585ee59c ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x58685435 ping_proc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x587364fb ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x589e4569 syscon_regmap_lookup_by_pdevname +EXPORT_SYMBOL_GPL vmlinux 0x58a1a544 rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x58c257fd lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x5902e253 rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0x591a602e platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x5923791f relay_open +EXPORT_SYMBOL_GPL vmlinux 0x5940c1b9 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5944b486 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x5947abbe max77693_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x59568234 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x59638e88 bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0x59682480 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x596b650d usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x59a6e91d clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x59a8a789 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x59e2743e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a30f1ed srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5a441ebd efi_query_variable_store +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a7de800 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x5abaec3a transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x5ac64475 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x5ad46b06 wm8400_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5af964c0 put_device +EXPORT_SYMBOL_GPL vmlinux 0x5b073d03 rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0x5b158553 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x5b2101e9 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5b399b1c wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x5b5d34e7 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x5b7b1868 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0x5b7c7991 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x5b915bee dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x5babf842 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x5bd8f44b regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x5c08c9e9 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5c235af0 dma_buf_export_named +EXPORT_SYMBOL_GPL vmlinux 0x5c27c93e need_load_eval +EXPORT_SYMBOL_GPL vmlinux 0x5c34b7b5 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x5c66e90c efivar_run_worker +EXPORT_SYMBOL_GPL vmlinux 0x5c7e5fd3 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5c8ca84e ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x5ca52e2e sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0x5cabdced dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5cc38020 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x5cc96c9d pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x5cd2a3f0 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x5d02ca4e adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x5d0f8c4c device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x5d11d3e8 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x5d12e48f input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x5d19737d spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x5d1b28c3 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0x5d2f2d76 pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d48a650 m2p_find_override_pfn +EXPORT_SYMBOL_GPL vmlinux 0x5d5e9e3d kobj_completion_del_and_wait +EXPORT_SYMBOL_GPL vmlinux 0x5d9daf52 sec_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x5daed382 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x5dbcfa4f boot_cpu_physical_apicid +EXPORT_SYMBOL_GPL vmlinux 0x5de4cc87 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x5e35f28d sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x5e51cd74 swiotlb_nr_tbl +EXPORT_SYMBOL_GPL vmlinux 0x5e5e16f3 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x5e652a66 ima_file_check +EXPORT_SYMBOL_GPL vmlinux 0x5e83a6f4 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x5ea3edd9 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x5ec7e87a device_reset +EXPORT_SYMBOL_GPL vmlinux 0x5ecb7d9f da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x5ef3fbf9 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x5f06a300 tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x5f131b0c sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x5f18bea4 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x5f1c74a9 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f2728cb lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f419491 gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x5f62d670 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x5f7a48d3 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x5fb01b14 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x5fb3e667 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x5fb49dbb tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x5fb62d7b tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x5fba2e49 pinctrl_remove_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x5fc27be9 acpi_dev_irq_flags +EXPORT_SYMBOL_GPL vmlinux 0x5fc3fa69 pinctrl_pm_select_idle_state +EXPORT_SYMBOL_GPL vmlinux 0x5fdfa2c1 amd_pmu_enable_virt +EXPORT_SYMBOL_GPL vmlinux 0x60112480 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x60180bc1 usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0x603d9cb2 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x6053b655 regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x60665391 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x6068009e crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x6078853f ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x60881d0e fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x60930d37 save_mc_for_early +EXPORT_SYMBOL_GPL vmlinux 0x6094685f wm8997_irq +EXPORT_SYMBOL_GPL vmlinux 0x6096b9ea raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60ac7b9f dev_get_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x60e451ee ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x611006d5 apic +EXPORT_SYMBOL_GPL vmlinux 0x612b9913 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0x613a5bd2 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x614c54c4 pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0x617f9735 xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0x61caa7d5 pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x6219a69b inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x623803c8 hest_disable +EXPORT_SYMBOL_GPL vmlinux 0x6238df4d ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x628229f9 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x62b7f918 device_register +EXPORT_SYMBOL_GPL vmlinux 0x62bca7bd do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x63666446 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x6367e536 rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0x63690c5e led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x637d00fe wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x63a5bfe0 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x63aa3905 devm_usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x63bb8b64 pinctrl_utils_reserve_map +EXPORT_SYMBOL_GPL vmlinux 0x63bd6ec9 alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x63bdf36d __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x63c8a1cb inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x63d93423 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x64135a58 pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x641c846d fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x64256424 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0x6469aa8d bmp085_probe +EXPORT_SYMBOL_GPL vmlinux 0x647a680e devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x648c28c0 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x64b7069e apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0x64c33cf4 md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x64fdd50f debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x6527a231 dbgp_external_startup +EXPORT_SYMBOL_GPL vmlinux 0x653cb02d intel_msic_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x656ad84a device_create +EXPORT_SYMBOL_GPL vmlinux 0x658c8186 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x6595710b class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x6598443a spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x65b51ca2 regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65cf0ae2 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x65d81abb sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x65ff2579 get_matching_microcode +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6627eec6 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x662a0c3f x509_get_sig_params +EXPORT_SYMBOL_GPL vmlinux 0x66386d34 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x663c16d6 gnttab_grant_foreign_access_subpage_ref +EXPORT_SYMBOL_GPL vmlinux 0x663c983c tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x66497142 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x66686549 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x66834a62 pci_bus_sem +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x668ea748 xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0x668ecdee rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x66aa0b93 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x66ba4600 blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x66bd9c45 __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66ea78cd key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x67306efd pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x6731553f attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x67338de2 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0x67375994 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x6739a503 balloon_set_new_target +EXPORT_SYMBOL_GPL vmlinux 0x674e13e1 public_key_destroy +EXPORT_SYMBOL_GPL vmlinux 0x675bdd57 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x67643d26 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x6770d0eb register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x6778bf3b pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x677d6526 regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x6784301b input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67afdd68 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x67b5133e pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x67d737c1 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x67f825ab skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x6812cf8d __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x682e7ac6 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x68608499 user_read +EXPORT_SYMBOL_GPL vmlinux 0x6865a5d6 arizona_clk32k_enable +EXPORT_SYMBOL_GPL vmlinux 0x68685899 usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x6874e2fc relay_close +EXPORT_SYMBOL_GPL vmlinux 0x687934e9 gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x6890dfe6 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x68934309 smp_ops +EXPORT_SYMBOL_GPL vmlinux 0x689486d4 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0x68956406 static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x68bbc82c ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x68cb312e xen_register_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x68dfc1d4 devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0x68e9b5b5 blk_queue_bypass_start +EXPORT_SYMBOL_GPL vmlinux 0x6900bdf6 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x693743b0 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x693ad15e pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x693dc0c8 md_stop +EXPORT_SYMBOL_GPL vmlinux 0x69432325 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x6945725e mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0x6979743a pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0x697abb2c agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x697ca7e7 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x69c7cf74 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x69cc6ba4 devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69f83863 regmap_field_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x6a00456f ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x6a010052 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x6a0d2779 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x6a1733eb iommu_group_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6a2a6a19 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x6a3b8795 pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a745339 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6abaa7e7 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x6ac5c3b6 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6adc2ebd regmap_update_bits_check_async +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b3a8d6c get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0x6b5b478e anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6b608da1 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0x6b6b3c2a ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x6b83f0e1 sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x6bf1b90d dmi_memdev_name +EXPORT_SYMBOL_GPL vmlinux 0x6bf772a0 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x6c10cd73 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c1b09ab gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x6c289831 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x6c455ba1 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x6c49863f dma_buf_get +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c60ac27 devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x6c655913 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6c749afe __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x6c7d7920 bio_trim +EXPORT_SYMBOL_GPL vmlinux 0x6c97a8bb skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cb8b425 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6cc5f57f ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x6cd21997 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x6cd4ea62 wm5110_irq +EXPORT_SYMBOL_GPL vmlinux 0x6cf3b916 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x6d16c7ae thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6d27b6f9 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x6d2f29ca thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d31e93b tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x6d339861 __tracepoint_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x6d6b9462 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x6d720e9c ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x6d7dbda3 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x6d853bbc debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x6d9a4eba led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x6da25b3e regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x6dc2b611 pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0x6dd7abfa fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x6de31cc4 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x6df88bb9 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x6dfca417 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x6e04a077 usb_bind_phy +EXPORT_SYMBOL_GPL vmlinux 0x6e280aed gov_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x6e46ba56 devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e68bccb ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x6e782c23 iomap_create_wc +EXPORT_SYMBOL_GPL vmlinux 0x6e78b7ab ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x6e7943ec iommu_group_id +EXPORT_SYMBOL_GPL vmlinux 0x6e7ead59 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x6e85b00b local_touch_nmi +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6ea48aa9 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x6f0a17b0 irq_create_strict_mappings +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f396524 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x6f3d8380 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x6f4c2e09 xen_swiotlb_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0x6f9f3890 acpi_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x6fb45f07 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x6fb49166 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x6fc5c0d7 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6ffce916 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x7007fbeb exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x701ada2a irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x70201233 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x7021d666 clk_register +EXPORT_SYMBOL_GPL vmlinux 0x702ea9a0 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x7076dedb pwm_set_polarity +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70825112 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x708d3f50 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x70bb651d __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x71446b0d usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0x71481ce4 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x715756f5 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71639d2d bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x717028c5 pinctrl_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0x719088a8 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x7197427c virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0x7198df01 percpu_ida_destroy +EXPORT_SYMBOL_GPL vmlinux 0x71c4b898 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x71ff1695 acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x72093ac9 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x720ebbf7 __mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x7235bc5a tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x723b5424 irq_create_direct_mapping +EXPORT_SYMBOL_GPL vmlinux 0x7252ae09 smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x7260a1bb blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72ecf5ec pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0x73013896 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0x730f71f3 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x735b1cd6 btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0x7362c107 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x737ffb17 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x73816947 register_mce_write_callback +EXPORT_SYMBOL_GPL vmlinux 0x738fd248 intel_msic_reg_update +EXPORT_SYMBOL_GPL vmlinux 0x7392517d wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x739adf76 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73c5a097 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x73c832f2 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73f0d5ab kobj_completion_release +EXPORT_SYMBOL_GPL vmlinux 0x73f895c2 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7413743e cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x7422c95e gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x742ceb33 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x74636259 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x74639520 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7464ea38 dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7465257b ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x7467b052 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74b07153 thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c08941 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x74d29ce7 serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x74f2e566 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x74fe2929 xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x7512b9d2 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x7552c744 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x755bd351 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x758a782e blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x75ab2233 regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0x75bc0ec7 ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x75c2b9f1 memalloc_socks +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x76219721 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x765e8f15 ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7686daa0 get_kernel_page +EXPORT_SYMBOL_GPL vmlinux 0x769a8812 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x76af90fd devres_release +EXPORT_SYMBOL_GPL vmlinux 0x76bf6fa5 xen_remap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x76caa1c9 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x76d07d6e gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7713b1ba regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x77214cea sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x7727055e rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7729cbdd task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x7731b4d2 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x775a6ef5 kvm_read_and_reset_pf_reason +EXPORT_SYMBOL_GPL vmlinux 0x776cff1f scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x776e650b ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x777c8acf pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x7790adc0 aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x77c5060f xen_find_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x77c6b760 sdhci_pci_o2_resume +EXPORT_SYMBOL_GPL vmlinux 0x77ebbe71 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x77f61a40 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x781bd59b efivar_entry_set_get_size +EXPORT_SYMBOL_GPL vmlinux 0x781c6eca hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x7820ec76 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0x782adb74 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x784beae8 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x78624eda ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x7875d036 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x788f4a53 thermal_notify_framework +EXPORT_SYMBOL_GPL vmlinux 0x789b0fe9 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x78c1a596 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x78c4ae30 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x78ea227b acpi_bus_no_hotplug +EXPORT_SYMBOL_GPL vmlinux 0x78f81673 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x7919cd0f swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x7955c0bc da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x79763252 trace_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x7991fd8d crash_vmclear_loaded_vmcss +EXPORT_SYMBOL_GPL vmlinux 0x799c4837 wm5102_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0x79a71c48 kernel_stack_pointer +EXPORT_SYMBOL_GPL vmlinux 0x79e69460 intel_iommu_gfx_mapped +EXPORT_SYMBOL_GPL vmlinux 0x7a2c55e1 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x7a2f052f __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x7a319404 clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x7a3baf13 thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a8496a9 pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0x7a85b9bb ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x7a8bb766 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7a9539f5 device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x7ab3ca18 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x7ac8e5b0 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b304cd4 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7b4dff6e ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x7b5c1631 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x7b90d1a9 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7be881e9 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x7bef2fb7 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x7bff4171 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x7c079fb0 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7c0ccfa4 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x7c227088 clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x7c346357 pkey_algo +EXPORT_SYMBOL_GPL vmlinux 0x7c7e6ac0 gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x7c8631fa regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x7ca32626 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x7cad5f6f blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x7cb6f1ed sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x7cbd00dc da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x7cc1b7fd max77693_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7cc7de1c x509_check_signature +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7cd7fbeb blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0x7cde3939 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x7ce23828 arizona_dev_exit +EXPORT_SYMBOL_GPL vmlinux 0x7ce5b92a gpiod_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cef22fe wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x7cf9068d devm_acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x7d008a4f usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x7d06f1ce cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x7d18317c blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0x7d2fe936 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x7d311b4f pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x7d36e534 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7d371d94 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x7d38a632 extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x7d397cc7 gpiod_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d422a94 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d7456e2 xen_swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7d8283df cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0x7d840926 xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0x7d8b050f each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7db0e0df page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x7dba4a7f regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x7dc9c49a pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x7ddbff3d regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7ddd55c5 virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0x7deb6d5a cpufreq_governor_dbs +EXPORT_SYMBOL_GPL vmlinux 0x7e2df8ae ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x7e402456 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7eb0e62c unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x7ee5239c tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x7ef6e92f add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x7f0c79e5 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x7f46b6c7 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x7f5d1e8f dma_buf_kunmap +EXPORT_SYMBOL_GPL vmlinux 0x7f5e826d sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x7f86d4b1 fpu_finit +EXPORT_SYMBOL_GPL vmlinux 0x7f9ed9bb pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7fa56a99 od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fde1189 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x7ff76d97 pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x7ffe64d1 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x80254b4d vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x805f0b3e xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0x807e3ff8 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80ac0cdc ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x80cfa3a7 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x80d3c119 ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80e759aa rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x80f63402 usb_acpi_set_power_state +EXPORT_SYMBOL_GPL vmlinux 0x80f76c3e __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x8140842a gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x815b71a2 irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x8186561a dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x81c3aee6 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x81cf7950 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x81d5eec9 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x81dd49b9 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x81e4d30c hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x8237aa42 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x82489a63 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x824e936c wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x82508feb acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x825fd087 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x82706ef1 usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x828f5921 acpi_subsys_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82f89884 wakeup_source_prepare +EXPORT_SYMBOL_GPL vmlinux 0x8318eb66 clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8325bb9a tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x832ce7d3 find_module +EXPORT_SYMBOL_GPL vmlinux 0x8337e0e7 pci_restore_ats_state +EXPORT_SYMBOL_GPL vmlinux 0x833ccbae hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x834616bb sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8380287d xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0x8380dd64 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x83a5ae2e __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x83bdeda9 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x83db6330 devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x83ee5cec tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x83fec767 __mmu_notifier_invalidate_range_end +EXPORT_SYMBOL_GPL vmlinux 0x8409b5c9 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x8420bccd cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x846fae3e regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x849e7136 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x84a7e23c ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x84bc5ef1 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x84d1996f arizona_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x84df35b2 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x84ecfefe pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x84f7a641 cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x8514f471 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x8526cd6d sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x853247b5 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x85526eef usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0x856573e7 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x856629e7 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x8574ca6c gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x85765674 powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0x8576dfda hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x85a2d06f blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0x85b14d33 clk_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x85b4afc7 pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x85bb68b9 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x85bfea8d sec_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c27447 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85cb2c45 xen_has_pv_devices +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x85f2f608 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x86054122 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x861ae0aa dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0x861e26df rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0x862b644b crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x862c1c0f usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x866aca5a tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x866b9687 wm8997_aod +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a09b70 cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86aa16e6 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x870cf952 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x870e16b7 xen_test_irq_shared +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x87552ea1 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x8769be63 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x8787b27f fuse_get_req_for_background +EXPORT_SYMBOL_GPL vmlinux 0x87984b16 __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x87c2c363 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x87c2e6e5 sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0x87d5996e rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x87d7e3e1 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8812ae53 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0x88206126 unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x8831f8b1 kmap_atomic_pfn +EXPORT_SYMBOL_GPL vmlinux 0x883c2740 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x88583ad8 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x8889f7a7 rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x889599ea usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x88a0896a rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b0844e btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0x88b21919 posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0x88b5647c trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x88bbb515 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x88c689a6 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x88c9e318 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x88ed62c4 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x88ef2c6b find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89393b59 crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0x89485687 iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x89502f0c gnttab_subpage_grants_available +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x89adf0b0 usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89c23949 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x89c3f742 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0x89dbdcc1 __tracepoint_map +EXPORT_SYMBOL_GPL vmlinux 0x8a04b9fe tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x8a0b108e regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x8a2b14ba wm5110_aod +EXPORT_SYMBOL_GPL vmlinux 0x8a370ea0 regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0x8a4a0036 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a4eaed1 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x8a75c225 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a78f93c cgroup_taskset_next +EXPORT_SYMBOL_GPL vmlinux 0x8a7cb9c4 platform_thermal_package_rate_control +EXPORT_SYMBOL_GPL vmlinux 0x8a99a8d2 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ae0fdc9 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x8affa7c6 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x8b00d99b usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x8b04668e bind_interdomain_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x8b119a40 ping_close +EXPORT_SYMBOL_GPL vmlinux 0x8b1c7bd1 ata_sas_port_async_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8b303164 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x8b4522ac cgroup_taskset_cur_css +EXPORT_SYMBOL_GPL vmlinux 0x8b650a02 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x8b66f9e0 xen_platform_pci_unplug +EXPORT_SYMBOL_GPL vmlinux 0x8b74d4a7 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x8b978794 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x8be015f4 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8cb4d847 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0x8ce68666 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x8d04a4cc thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0x8d22bb58 iommu_group_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8d3d2fac devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x8d44745b ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x8d4f8d12 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x8d522714 __rcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x8d5738c8 pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0x8d6fe903 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x8d7dfeac pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x8d8bef38 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x8d8f14e8 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x8da5851b vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x8e050d6b wm8997_patch +EXPORT_SYMBOL_GPL vmlinux 0x8e0ae28e cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x8e107bfe sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x8e16a321 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0x8e1baae0 get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x8e223dbf clk_register_divider_table +EXPORT_SYMBOL_GPL vmlinux 0x8e22c674 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x8e333217 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x8e67d883 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x8e6989d8 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x8e6fe831 cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x8e93d886 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x8e9c7933 gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x8ea960cb blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8edfb574 injectm +EXPORT_SYMBOL_GPL vmlinux 0x8eed291a regmap_fields_write +EXPORT_SYMBOL_GPL vmlinux 0x8effebd3 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x8f0067ef nl_table +EXPORT_SYMBOL_GPL vmlinux 0x8f2c4649 crypto_lookup_aead +EXPORT_SYMBOL_GPL vmlinux 0x8f2ef531 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x8f37ea60 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x8f5c0515 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f902a2c gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x8f9ed508 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x8faae5e1 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x8fc4a591 dma_buf_vmap +EXPORT_SYMBOL_GPL vmlinux 0x90041ded acpi_dev_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x901ab07c spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0x90228869 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x903fad99 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x903ff25e ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90705b7f syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x907fb4b1 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x9082b15a wm8400_block_read +EXPORT_SYMBOL_GPL vmlinux 0x90895a03 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90b33524 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x90d09af7 ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0x90de0452 platform_thermal_package_notify +EXPORT_SYMBOL_GPL vmlinux 0x90e694d0 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x9103d74d pwm_free +EXPORT_SYMBOL_GPL vmlinux 0x910f57a6 iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0x9115be83 rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x911cb975 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x91248492 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x91286982 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x91449a70 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x91631d2c net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91d3b777 key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x91db642c public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x91e5e10d regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x91ef82f8 usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x92042816 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x920b9636 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x922a99c5 md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x923aabe8 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x92727e01 efivars_unregister +EXPORT_SYMBOL_GPL vmlinux 0x929c467f btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x92b2d44c thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92d55870 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x92db8f68 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x92dd1856 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x930fa5a1 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x9312d80e evtchn_put +EXPORT_SYMBOL_GPL vmlinux 0x93159699 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x931f943f dma_buf_mmap +EXPORT_SYMBOL_GPL vmlinux 0x9324e78e acpi_dev_resource_memory +EXPORT_SYMBOL_GPL vmlinux 0x933c524b efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x935a1cfd xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0x93698152 da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x93877673 regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0x93ae7515 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x93e42d16 isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x94321c26 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x9452a368 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x946ca9dc list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0x9478cb5c dma_buf_attach +EXPORT_SYMBOL_GPL vmlinux 0x94846083 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x94937972 ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0x94a1a97d task_xstate_cachep +EXPORT_SYMBOL_GPL vmlinux 0x94a30261 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94aa2e94 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x94abb745 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94cd7489 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x94f242e2 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x94f72c25 ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x94fdbe11 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x9552db4d sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x955bfede sk_unattached_filter_create +EXPORT_SYMBOL_GPL vmlinux 0x955e8504 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x958b3b8f unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x958c5735 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x958e822c tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x95b0bddb tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x961a062f devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x964add15 xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x965f5b39 pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0x96654da4 ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0x967b11fc cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x969216a6 key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x96a22790 vmcore_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x96a73e58 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x96b8dbd3 get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x96c68644 devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x96ce4781 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x96df88d7 pwm_config +EXPORT_SYMBOL_GPL vmlinux 0x970ed5a4 devm_regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9730c462 gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9764c842 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x976eb4d3 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x97a3ec56 ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x97b093dd btree_update +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x9802aed8 xen_swiotlb_map_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x981034da kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x9826ea71 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x985b96f3 reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x98734b98 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x98b2e3b8 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x98e8995a relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x98ef5c15 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x98f22bf0 pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0x98fa1e20 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x993bd825 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0x99587c43 spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x996d8503 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x9973add9 __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x997af44a evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x9982faa2 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x998857e2 irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0x99a89d20 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x99a94247 __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x99c87be9 pinctrl_utils_add_map_mux +EXPORT_SYMBOL_GPL vmlinux 0x99d3d347 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a2f22e8 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x9a3fbb41 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x9a415cbd da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x9a796fce ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x9a7f66e0 irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x9a89dbf7 lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x9a8ed5fa netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x9a9824ef btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9aa48247 pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x9aaa1208 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x9aafea72 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x9ab63b16 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9ac3e9f2 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x9ac7ea07 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x9aca444b get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9b1cb223 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x9b58ac00 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x9b5c2385 percpu_ida_free_tags +EXPORT_SYMBOL_GPL vmlinux 0x9b80e64d attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9b8d9503 hv_register_vmbus_handler +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9babf390 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x9bcfb936 rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x9bd72b78 apei_write +EXPORT_SYMBOL_GPL vmlinux 0x9bdd8c44 pci_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9bede68c ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x9c01b835 ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0x9c2b0943 devm_regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x9c2e4b66 acpi_unregister_gsi +EXPORT_SYMBOL_GPL vmlinux 0x9c717266 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x9c73d4ed usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x9cc4f70a register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9cd0184d init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d0c2d32 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0x9d0ca2a4 btree_merge +EXPORT_SYMBOL_GPL vmlinux 0x9d138533 percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d42d46c __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x9d4af2da acpi_subsys_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x9d62c898 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x9d8331c0 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x9dac9379 blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x9dc6c711 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9dd05d02 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9dd3c322 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x9dd6f2a1 __mmu_notifier_invalidate_range_start +EXPORT_SYMBOL_GPL vmlinux 0x9de2882c iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x9de64910 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x9deedce4 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x9dfbcffc dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0x9dfdf722 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x9e09aa41 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x9e456273 pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0x9e615998 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x9e726af0 blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x9e9df474 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x9e9e012b crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x9ea51210 rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0x9eab3c98 extcon_set_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x9ebff902 start_thread +EXPORT_SYMBOL_GPL vmlinux 0x9ec26efb led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ee520bc security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x9ee818c9 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x9eeb580c debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x9eec3eee vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x9ef41997 devm_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x9ef99fea mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x9f0664bf dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x9f19841e inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x9f212dc4 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x9f27ecec __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x9f30fb5f serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x9f41c5d0 m2p_add_override +EXPORT_SYMBOL_GPL vmlinux 0x9f5225bd ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x9f52329a tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x9f53cc4f regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x9f82a1e1 regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0x9f92588e driver_register +EXPORT_SYMBOL_GPL vmlinux 0x9fbd497a disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fdfd501 __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0xa001755b __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xa018742f virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0xa01a509b device_move +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa026e1c1 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0xa0699624 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xa0af8095 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0dc7ad1 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xa11216be xen_store_domain_type +EXPORT_SYMBOL_GPL vmlinux 0xa12d929d desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0xa1312ba1 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xa156a1f2 erst_get_record_id_end +EXPORT_SYMBOL_GPL vmlinux 0xa15d3c0b clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0xa1b4e4ec class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa1bd7822 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa1bde827 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xa1e970a5 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0xa1f239ba device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xa1f79553 xen_create_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xa2084ba1 irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0xa2233e6c usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xa2252cc2 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0xa26af77c acpiphp_unregister_attention +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa275cade xenbus_dev_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xa27cb33b kobj_completion_init +EXPORT_SYMBOL_GPL vmlinux 0xa2a50b04 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0xa2b2715e ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xa2b2817b devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xa2b9c993 clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0xa2d3a5f4 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xa2fe512b device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa3040ff8 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xa30b5e3e set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xa30c56f7 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xa33285ea da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xa3329c63 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xa337982e get_device +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa36a7868 iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0xa36cc444 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa389a49a profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0xa3bc524b irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa3e8dcc3 pinctrl_dev_get_name +EXPORT_SYMBOL_GPL vmlinux 0xa3ef6c02 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xa3f06f08 bmp085_remove +EXPORT_SYMBOL_GPL vmlinux 0xa41c4922 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0xa422c011 dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0xa42a805f tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0xa43d3a22 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xa44ec9ff pin_is_valid +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa452f2a4 xen_pirq_from_irq +EXPORT_SYMBOL_GPL vmlinux 0xa456c090 xenbus_dev_cancel +EXPORT_SYMBOL_GPL vmlinux 0xa466de38 acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4b81f4e fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0xa4bf3db1 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xa4ccaffe simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xa53daffa md_run +EXPORT_SYMBOL_GPL vmlinux 0xa5434db5 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa5936bbc regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xa598b5b3 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0xa5a4c15c crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xa5bceb0a devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xa5da80a9 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa61b1477 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xa61ccabe blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xa625110d kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0xa62892c6 efivar_sysfs_list +EXPORT_SYMBOL_GPL vmlinux 0xa63dd046 device_add +EXPORT_SYMBOL_GPL vmlinux 0xa6456a32 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xa6526244 rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0xa67451c9 mmc_send_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0xa682d0ec bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xa6a0a273 max77693_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa6a79c8d blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xa6ae37ba rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xa6b21ef2 dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0xa6cf3d3f efivar_entry_remove +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa6f9e48a disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xa71c6ee2 ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xa724257f init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xa7510d89 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xa75312bc call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0xa75811d0 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xa761c7d7 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa801b359 efivar_entry_iter_begin +EXPORT_SYMBOL_GPL vmlinux 0xa8146a5b usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0xa820cc36 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0xa822d81b perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0xa82ce06c usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa89bd584 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xa8aa4b13 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xa8abef21 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xa8beda3a tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0xa8c3b6a3 subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0xa8e8e656 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa91f4342 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0xa9286c13 xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0xa965ad0d thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0xa980af16 RSA_public_key_algorithm +EXPORT_SYMBOL_GPL vmlinux 0xa9956892 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xa99caece inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xa9a82042 gnttab_trans_grants_available +EXPORT_SYMBOL_GPL vmlinux 0xa9a90023 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xa9bb9915 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xa9e18049 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9fc3f54 gnttab_grant_foreign_access_trans +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa447167 pinctrl_force_default +EXPORT_SYMBOL_GPL vmlinux 0xaa6aee5c ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0xaa7f8c0f fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0xaa982920 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xaaa2e0f5 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaac4c3c9 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xaae218da sock_update_netprioidx +EXPORT_SYMBOL_GPL vmlinux 0xaaf8fb77 dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab074240 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0xab34bf74 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xab4226ad ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0xab499d31 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab796f64 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0xab8aae1f wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xab8d02d1 virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0xab8fc729 thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0xab9b1638 debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xaba6e32c platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xabb62202 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xabfdc748 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0xac002e3f regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0xac0fb6d9 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xac11cf89 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xac3a5519 rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xac3cf007 regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xac4fba63 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xac534b3d tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xac7b8c02 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xac98e61c thermal_generate_netlink_event +EXPORT_SYMBOL_GPL vmlinux 0xac9ce195 kvm_async_pf_task_wait +EXPORT_SYMBOL_GPL vmlinux 0xac9e20f0 yield_to +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacffc03e dma_buf_end_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0xad0b10d0 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0xad13481e virtqueue_is_broken +EXPORT_SYMBOL_GPL vmlinux 0xad1c1ac1 dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0xad2777db udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xad376749 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0xad3768dc sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xad602d2f pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0xad621b0a sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xad6e6f2d __mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xad78f5e1 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0xad7f8a15 fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0xad8d8ab0 xen_physdev_op_compat +EXPORT_SYMBOL_GPL vmlinux 0xadb06792 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadcf77d9 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xadd980cd __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae6eaf93 hwpoison_filter_dev_minor +EXPORT_SYMBOL_GPL vmlinux 0xae7b51b1 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae7c5411 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0xaea68a11 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xaea728b6 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xaef1b1a9 pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0xaf7c763a firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0xaf7e8a34 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0xaf8fc839 acpi_subsys_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0xaf9a5e4e iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0xafa2b7b9 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xb000037d tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xb0170543 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb02ac411 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb02e4c77 pinctrl_pm_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0xb03069c8 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xb06972c0 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0xb08395e4 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xb0952084 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0cc8911 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xb0ec5cb0 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xb103cbbe sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb112422b ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0xb11ea4b8 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0xb124b3dc pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xb13f0486 verify_signature +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb154f621 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xb16e4c02 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xb172ffac efivars_sysfs_init +EXPORT_SYMBOL_GPL vmlinux 0xb17f6f5d serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1a7e3f6 clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1bed25d dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0xb1c0c1c2 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xb1d45ea2 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb20bd21e dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xb21a7f8c sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb22c1832 powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0xb2310ba8 _submit_bh +EXPORT_SYMBOL_GPL vmlinux 0xb2955df4 acpi_dev_pm_detach +EXPORT_SYMBOL_GPL vmlinux 0xb2bbe825 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xb2ca2a60 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0xb2d49fb0 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0xb2e51224 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb2f4f5a0 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0xb2f62add virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb339853d crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0xb3594698 xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0xb37e8b00 ata_sas_port_async_resume +EXPORT_SYMBOL_GPL vmlinux 0xb383c4e3 clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0xb3876c9d regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xb3a52014 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xb3ebfcb7 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xb40aeb57 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xb40cb916 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xb419fca2 regmap_field_write +EXPORT_SYMBOL_GPL vmlinux 0xb4545cdf ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xb476bba6 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xb4a5d79b class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4bd7ba4 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4e702cf pinctrl_add_gpio_ranges +EXPORT_SYMBOL_GPL vmlinux 0xb4ea0085 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb50e2f73 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb529014b cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb54e185f rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb59f146d trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0xb5a0e11e lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0xb5ab3099 dma_buf_detach +EXPORT_SYMBOL_GPL vmlinux 0xb5c295a4 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xb5c82def usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0xb5ca17fa crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb5cb8145 hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xb5e896fb tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0xb5ec765a ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0xb5f0a025 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb5f2839d platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb6066f08 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xb6212caa alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb62342fb regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb62e239a pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0xb656b121 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xb66421b2 acpi_str_to_uuid +EXPORT_SYMBOL_GPL vmlinux 0xb679e873 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xb67b2219 cm_suspend_again +EXPORT_SYMBOL_GPL vmlinux 0xb67c64fd __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xb68748ff put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xb6a75ae4 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb6aad9e8 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6bc49a9 __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xb6c635af wm5110_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb6c9fe29 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xb6f2c578 __tracepoint_unmap +EXPORT_SYMBOL_GPL vmlinux 0xb709e339 efivar_validate +EXPORT_SYMBOL_GPL vmlinux 0xb718a7dd pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb73c6426 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0xb76cb20e rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0xb76ecdd6 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xb7779e73 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb7bfc7a9 rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0xb7d2109c usb_string +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb8200cc6 user_describe +EXPORT_SYMBOL_GPL vmlinux 0xb83b6ab9 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xb869d150 nfq_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0xb86bcceb klist_next +EXPORT_SYMBOL_GPL vmlinux 0xb877bd1e xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0xb8984a01 regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xb8b2b1f7 mce_register_decode_chain +EXPORT_SYMBOL_GPL vmlinux 0xb8c7ca93 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb9176155 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0xb92d6b13 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0xb968680b adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xb96d9693 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0xb97216cf dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xb976176f aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb999f00c alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9bad6ea ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9ec199d tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0xb9fa4763 __efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0xba1a01fa usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0xba40ee50 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xba4f0056 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xba8d40ea blkg_prfill_stat +EXPORT_SYMBOL_GPL vmlinux 0xba9917c1 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbab82db7 regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0xbad74e27 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xbae563f6 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb071816 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb467fc8 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0xbb52c813 tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0xbb58b814 iomap_free +EXPORT_SYMBOL_GPL vmlinux 0xbb7362b0 clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0xbbac4572 irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbd4f657 xen_pcpu_id +EXPORT_SYMBOL_GPL vmlinux 0xbc64d555 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0xbca0201a sfi_mrtc_array +EXPORT_SYMBOL_GPL vmlinux 0xbcac6160 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbcb7c0c4 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbccff19f usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xbcdd5b99 iommu_group_set_name +EXPORT_SYMBOL_GPL vmlinux 0xbcef2469 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xbd2cac0e pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xbd316b8b hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xbd38fbe1 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd5cb8b9 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbd62819a fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0xbd62c488 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xbd838427 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0xbd9fa178 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xbdb257ba hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xbdb9853c crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0xbdc9a3e7 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse +EXPORT_SYMBOL_GPL vmlinux 0xbddb498f usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xbdfc6a60 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0xbe0ac9d3 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe417fab alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xbe823e96 irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0xbe953d07 rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xbea5ff1e static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0xbed00b14 tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf312a87 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0xbf34fbce cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xbf7a396e ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xbf8adcb2 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xbfd6d6d4 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xbffcb3b7 acpi_os_get_iomem +EXPORT_SYMBOL_GPL vmlinux 0xbfff4e57 gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0xc00131cf visitor64 +EXPORT_SYMBOL_GPL vmlinux 0xc0340147 extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc03c6fb2 acpi_dma_request_slave_chan_by_index +EXPORT_SYMBOL_GPL vmlinux 0xc0690d00 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xc073ead9 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc0a3087a usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xc0aaefce usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0cd5c44 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xc0d01bc0 percpu_ref_cancel_init +EXPORT_SYMBOL_GPL vmlinux 0xc0d26387 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc0e622db perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xc0e75cec visitor128 +EXPORT_SYMBOL_GPL vmlinux 0xc0fa275b xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xc1123d0a alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0xc11b4470 balloon_stats +EXPORT_SYMBOL_GPL vmlinux 0xc11b45c6 gpiod_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc13dd18a devm_pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0xc164642e xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc18578ed process_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc1899d37 __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0xc18c809a register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xc19772db spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xc1bfbcf6 xen_swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xc1dc0d5d acpi_find_child +EXPORT_SYMBOL_GPL vmlinux 0xc1e06ad1 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xc205fa4e synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc25f77b4 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc270820f tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xc27f22c2 usb_acpi_power_manageable +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc28edfc5 pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0xc2c1bfec ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0xc2c6ebac ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0xc2ce24f5 pinctrl_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0xc2f17efb dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0xc2f4d217 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xc2fa376f devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xc302b684 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xc31d6ab0 dma_buf_kmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xc32aa0b0 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc3bef09f watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xc3d3ed53 gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0xc3d787f6 xen_swiotlb_sync_single_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc3db54d8 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xc407a1d4 gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc42beb4f cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xc449752e split_page +EXPORT_SYMBOL_GPL vmlinux 0xc4596a77 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xc45d3b81 gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0xc45f5738 ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc4625dd5 da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0xc4641afe powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc48dcba2 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xc4a1ab31 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xc4a253bd tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0xc4a89099 irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0xc4aad52f perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0xc4ac074a __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xc4c9961b device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xc4d3f4d1 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xc4d7f4ac sk_unattached_filter_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc50697a8 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc540f6b2 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc590c5f4 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xc59c7bd5 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xc5a581da cpufreq_table_validate_and_show +EXPORT_SYMBOL_GPL vmlinux 0xc5b0a1db rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0xc5bab3fe btree_init +EXPORT_SYMBOL_GPL vmlinux 0xc5c6c2f8 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xc5d37180 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0xc60b3474 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc622bdfb tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xc63a1109 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xc63b36f7 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xc6476886 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0xc64f68cb iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc665eda5 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xc66b77b1 iommu_group_set_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xc670a2ec scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xc6711f44 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xc68aa090 mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xc690866c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6a8bf1e pinctrl_pm_select_sleep_state +EXPORT_SYMBOL_GPL vmlinux 0xc6cd2e4c stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0xc6d13e91 list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0xc6d20127 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0xc6d7e798 bmp085_detect +EXPORT_SYMBOL_GPL vmlinux 0xc6ffd74f adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xc7002ac4 evtchn_make_refcounted +EXPORT_SYMBOL_GPL vmlinux 0xc7072b3c blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xc729ae9f crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc732767e list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0xc75ad201 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xc784c462 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xc790953c regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7bd6793 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc7c6391c mpi_set_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc7cce911 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0xc7e39bca ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc7ebef2e usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc7f79665 ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0xc849e5dc ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xc855aa11 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc883e899 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xc89027bd netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc900d397 regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9140e5a pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0xc91dab1d pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0xc936a487 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xc9411dd3 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9656208 register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xc97641ab srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xc97c87ee pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xc97d1140 cpufreq_cooling_get_level +EXPORT_SYMBOL_GPL vmlinux 0xc9a39371 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0xc9c3f176 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xc9c99290 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xc9cec050 devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca26f8d2 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xca2a4186 devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xca2e25f6 dma_buf_kunmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xca36ae8c debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0xca382827 generic_access_phys +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca9fff6e rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0xcaad33b6 regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0xcabc06ee devres_add +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcabee75a rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xcac40931 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xcad84d78 gpiochip_add_pingroup_range +EXPORT_SYMBOL_GPL vmlinux 0xcb15eee9 sdhci_pci_get_data +EXPORT_SYMBOL_GPL vmlinux 0xcb36d456 pci_intx_mask_supported +EXPORT_SYMBOL_GPL vmlinux 0xcb469d2b ddebug_add_module +EXPORT_SYMBOL_GPL vmlinux 0xcb808fd0 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xcb9b162e clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0xcba66ca4 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0xcbe473af xen_swiotlb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xcbe98292 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbee67b6 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xcbf098af key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0xcbfe8885 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xcc13e2a1 gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0xcc1bbda3 virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc2b4c57 sysfs_get_dirent_ns +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc76b54a generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xcc83a207 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xcc85fcb6 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0xcc921327 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xccab62d6 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xccb3eabf unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xccbd0fcb sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcce25322 bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0xccea4e34 perf_get_x86_pmu_capability +EXPORT_SYMBOL_GPL vmlinux 0xcd0129d4 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xcd1516df register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xcd440661 regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcd9ea204 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xcdbf2ee6 irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdfaf8b1 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xce06c538 dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xce0b9b59 max77693_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xce3b0051 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xce46e140 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0xce77130e devm_spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xceb13b60 efivars_register +EXPORT_SYMBOL_GPL vmlinux 0xcebf6e10 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0xcec2c5b9 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xcef1dd0e perf_check_microcode +EXPORT_SYMBOL_GPL vmlinux 0xcef6e7ff ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0xcf386fc8 rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xcf4977bc usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xcf54ea93 async_unregister_domain +EXPORT_SYMBOL_GPL vmlinux 0xcf63372a crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0xcf8a0a74 tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xcf8a3a75 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xcf9fca2b iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0xcfc62f27 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfebd790 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd00ddb00 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xd015adfa fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd0a3d426 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xd0be404c mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0dd448a led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0xd0df73d6 pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xd0f7613d dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xd10c39ce regmap_update_bits_async +EXPORT_SYMBOL_GPL vmlinux 0xd1113e85 device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0xd1270bf2 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xd14bc4d9 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xd14e8d21 regmap_update_bits_check +EXPORT_SYMBOL_GPL vmlinux 0xd14f5bcf percpu_ida_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd1509bd7 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xd1542e18 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0xd163d685 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1d9cf40 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd21161a3 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd21642e8 register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0xd217ce9f wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd226d784 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xd249219c ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xd258217d clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd284ac49 pinctrl_select_state +EXPORT_SYMBOL_GPL vmlinux 0xd2aaeb4e kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0xd2af836d debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2d23368 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xd2d4dac8 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd343a69c __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xd357f8f7 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0xd3843014 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd388fc3b tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0xd38b0492 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xd3a05e6e pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xd3c348ee ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0xd3c61377 netlink_alloc_skb +EXPORT_SYMBOL_GPL vmlinux 0xd3d3affa acpi_dma_request_slave_chan_by_name +EXPORT_SYMBOL_GPL vmlinux 0xd3ebb8a5 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xd3f382ec fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4038c54 regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xd41506d3 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd422dee8 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xd423f0f9 edac_subsys +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd4823234 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xd48444ea ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xd496d8c8 irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4c8f306 blkg_stat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0xd4cad45e clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xd4cf296f relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xd4d0fe4e da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0xd50aa331 tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0xd51f84c0 arizona_free_irq +EXPORT_SYMBOL_GPL vmlinux 0xd52a7220 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xd544e902 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0xd550560f __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xd559c6da usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0xd55aa2f2 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xd55ad93b iommu_group_get_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xd5728cb3 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xd5840e07 irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0xd58dfbcf crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xd5936cc6 acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xd5ac6be9 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5f10c41 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xd616a475 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0xd65218c0 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0xd662055a iommu_domain_window_disable +EXPORT_SYMBOL_GPL vmlinux 0xd6728aa9 sec_reg_update +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd67f5217 btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd69df484 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xd6ba1076 pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0xd6c2e04b __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xd6c83b7f max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd710425d __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd719a3bb regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd7399d2a efivar_entry_iter_end +EXPORT_SYMBOL_GPL vmlinux 0xd749bd6c __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77a9685 proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd792f79b ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xd7a46a89 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xd7ab2c0c speedstep_detect_processor +EXPORT_SYMBOL_GPL vmlinux 0xd7acef79 pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd802afbf cgroup_is_descendant +EXPORT_SYMBOL_GPL vmlinux 0xd81dbf1c bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd8250a5c iounmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xd82a22ae napi_hash_del +EXPORT_SYMBOL_GPL vmlinux 0xd82d33b2 rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0xd8342aa9 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xd84632e8 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd853bfc1 pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xd85bcf9e sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xd85bf1ac dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xd85dc6d7 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xd86a5994 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd87fc0a0 usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0xd891c85d device_attach +EXPORT_SYMBOL_GPL vmlinux 0xd8c170c0 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xd919806a amd_cache_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xd91dcec5 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xd942d353 ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0xd94b737e erst_read +EXPORT_SYMBOL_GPL vmlinux 0xd95f8bca tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xd9649fd4 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xd9838d79 rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xd9a34035 __clk_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xd9b35e4f xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0xd9b548cb iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xda056f1f tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xda44cb37 setup_charger_manager +EXPORT_SYMBOL_GPL vmlinux 0xda4e31eb regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0xda701ebf tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0xdad8d5ea inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xdaef84ce pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb42df0b key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0xdb577f15 ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xdb580386 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xdb5d34e0 rcu_batches_completed_preempt +EXPORT_SYMBOL_GPL vmlinux 0xdb772d33 uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0xdb79de07 devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdb8ab65a pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xdba4ad93 static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0xdbc182b1 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xdbc5d9e9 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0xdbdf7d00 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xdbe084d9 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0xdbefcd64 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc1adc7f serial8250_tx_dma +EXPORT_SYMBOL_GPL vmlinux 0xdc1e15f1 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xdc2ae9ed device_del +EXPORT_SYMBOL_GPL vmlinux 0xdc4791a9 powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0xdc59a32f wakeup_source_drop +EXPORT_SYMBOL_GPL vmlinux 0xdc6699cb acpi_dev_free_resource_list +EXPORT_SYMBOL_GPL vmlinux 0xdc67bb8a wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdcc055b2 alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xdcc684e8 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0xdcd9648c devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdcfb3915 rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0xdcfc2a4e pinctrl_utils_dt_free_map +EXPORT_SYMBOL_GPL vmlinux 0xdd2bf9cd acpi_preset_companion +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd33d79a cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0xdd391eff profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd43f67e disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xdd794d33 phys_wc_to_mtrr_index +EXPORT_SYMBOL_GPL vmlinux 0xdd8aed42 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xddb5de2b list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0xddbdb12f dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xddcfd523 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xddd42f79 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xdde9e565 rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xddeef9f1 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0xddfa53d6 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xddfd1bde relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xde086ac2 iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0xde4d174d ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0xde501e28 register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xde747356 intel_msic_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xde7a1800 regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0xdea4c108 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xdeb34a6d ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xdeb8b14f subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xdeeeaefd gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xdeef56f5 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xdef55245 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xdf096c67 ref_module +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf17218f watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0xdf1882af dbgp_reset_prep +EXPORT_SYMBOL_GPL vmlinux 0xdf2af64c alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0xdf301bf9 pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0xdf61f0f1 acpi_dev_pm_attach +EXPORT_SYMBOL_GPL vmlinux 0xdf66ca81 ucode_cpu_info +EXPORT_SYMBOL_GPL vmlinux 0xdfa1fd06 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xdfa95ae9 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0xdfb1c790 class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xdfc5f363 nf_queue_entry_release_refs +EXPORT_SYMBOL_GPL vmlinux 0xdfe2fd7a usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xdfe58109 usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0xe003e044 __tracepoint_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0xe0040c26 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe01ee5f2 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe0428ee2 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xe04c8037 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xe07e928d ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0xe0865670 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe0c4c876 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0dcdcf7 iommu_domain_get_attr +EXPORT_SYMBOL_GPL vmlinux 0xe10cd6ad erst_get_record_id_begin +EXPORT_SYMBOL_GPL vmlinux 0xe1341e89 unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0xe142daea arizona_set_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0xe147c42f ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xe15057ab lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xe165e5ff driver_find +EXPORT_SYMBOL_GPL vmlinux 0xe1738c28 irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0xe1775ee7 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0xe1777c65 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xe1923c28 efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0xe19fec0f power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe1ae8d1d shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xe1afd66d blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xe1bd6c99 rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0xe1c32794 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0xe214ec29 shake_page +EXPORT_SYMBOL_GPL vmlinux 0xe223bc4b blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0xe2381b3d usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xe2464aa7 ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0xe26e46f0 acpi_dev_resource_ext_address_space +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2a1deec usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xe2a23fb1 balloon_devinfo_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe2c093a0 cgroup_add_cftypes +EXPORT_SYMBOL_GPL vmlinux 0xe2c2f0b6 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xe2ce3307 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xe2e7840d regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0xe2ea0c60 regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xe2ee635e sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe31a7c99 regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0xe326bb70 rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xe32a5b64 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xe3504703 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe37bf912 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xe380d30e pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe397c95a usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xe3a27f02 ping_proc_register +EXPORT_SYMBOL_GPL vmlinux 0xe3a6421b dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe3bc7fd4 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xe3e0f712 tpm_read +EXPORT_SYMBOL_GPL vmlinux 0xe3e3eaae devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0xe4092c79 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xe40feb70 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xe41534ce bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe439815c erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xe47e14b3 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe4852970 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0xe48dcb90 gpio_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xe4c331b6 acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0xe4c4b28f gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xe4e68bc8 apei_map_generic_address +EXPORT_SYMBOL_GPL vmlinux 0xe4f90cea ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0xe5092a48 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xe523dc26 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xe5292abd pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xe52ae762 __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0xe5324dd6 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xe53ac38f alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0xe54cd798 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0xe567e8e6 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xe576b966 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe58340d2 dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe597fe4b usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xe598647a usb_anchor_suspend_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xe598da72 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0xe59dff74 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xe5d9e53c rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xe602948d blk_queue_bypass_end +EXPORT_SYMBOL_GPL vmlinux 0xe6242a77 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xe6333da0 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xe64ad8ea unregister_nmi_handler +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6545e3d crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xe6587ba7 regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xe65f3f06 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xe678ff48 blkg_lookup_create +EXPORT_SYMBOL_GPL vmlinux 0xe68a9e12 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xe6a3d8e5 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe6ba40b1 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xe6c68334 ddebug_remove_module +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe707e32c get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xe70cef6a regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0xe7204e88 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xe72184a3 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe7450db1 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0xe748a6ca cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xe75ad6ce screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xe7623306 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe77ba409 pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0xe7d8ddfc __clk_register +EXPORT_SYMBOL_GPL vmlinux 0xe7de204e regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe8590349 xen_swiotlb_sync_sg_for_device +EXPORT_SYMBOL_GPL vmlinux 0xe85d8132 css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0xe862292c fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe894a1bf do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xe89eddd8 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xe8bb12dd ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0xe8c53c46 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xe8e872ef __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe9160f44 pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0xe91767df sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xe93b7d1d usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe94c3f7f pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0xe953b1d7 __intel_mid_cpu_chip +EXPORT_SYMBOL_GPL vmlinux 0xe9668c28 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe97dfd43 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe9bf2f50 wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0xe9c0b5ee pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xe9ce931a kvm_para_available +EXPORT_SYMBOL_GPL vmlinux 0xe9f30527 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xe9f7b461 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xea03d087 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea2fb43c ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea4eee69 sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xea4f9b06 irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0xea8de633 __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0xeabb07e4 apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xeabb7a8f fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xeabe53d4 call_filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xeac28e30 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xeac8df10 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xeacf622a bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0xead26aa3 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xeae48a00 sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0xeaeeb826 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xeaeed6f9 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xeb04de69 xen_xenbus_fops +EXPORT_SYMBOL_GPL vmlinux 0xeb1c3628 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xeb22825b rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xeb24751a xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xeb2798f7 xen_destroy_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xeb2a3527 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0xeb370805 __apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xeb4e7a66 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xeb5f0144 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xeb700b0a regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0xeb833c22 xen_has_pv_disk_devices +EXPORT_SYMBOL_GPL vmlinux 0xeb8c78ce regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0xeb93715e user_update +EXPORT_SYMBOL_GPL vmlinux 0xeb9abbee ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xeb9c40dd init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xeb9cbd45 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0xeba4d14b register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xebec57c4 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xebef95ba pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0xebfb5b74 tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0xec01f646 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec215c16 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec58e803 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0xec7393b5 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xec9763ce stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0xecab35cb acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0xecb337e4 device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xecc89a4d sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xecd1a30d hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xecd3e7bb xen_swiotlb_dma_mapping_error +EXPORT_SYMBOL_GPL vmlinux 0xece42459 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xed63f275 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xed741cd4 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xed9f2d73 __module_address +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedd49930 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xeddb6f45 clk_register_divider +EXPORT_SYMBOL_GPL vmlinux 0xeddf69ad sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xedf3f1f1 do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0xedf4adf3 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0xedf8f782 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0xedfda869 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xee04f3b5 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xee15bf48 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xee1c6cf5 ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0xee6ad00a blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xee6b71c4 syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0xee8729a9 tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0xeea33415 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0xeed32ed7 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef23d470 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xef409b74 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0xef50e2c3 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0xef6bec4c uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef782b88 gnttab_grant_foreign_access_subpage +EXPORT_SYMBOL_GPL vmlinux 0xef7a9da9 iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0xeff3732b ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf01a1d43 sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0xf021d0f9 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0xf02661b3 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xf03af05d skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xf03bbed8 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf0528d2d extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf054ac97 intel_msic_irq_read +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf0944a0e mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0xf099c891 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xf0c43262 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xf0cd167d acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0xf0f5dbc2 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xf0fe2782 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xf11c4469 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xf13572bd attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xf17b0939 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf186c82f nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0xf1aa5773 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xf1bdfb09 ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xf1f966c8 regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xf20b5e3e rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf23148a4 cper_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0xf27977e2 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xf2b1a545 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xf2c85436 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xf2d12de4 xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0xf2ea013a sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0xf2f077cc pkey_id_type_name +EXPORT_SYMBOL_GPL vmlinux 0xf2f10c07 spi_master_resume +EXPORT_SYMBOL_GPL vmlinux 0xf2f2b182 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0xf2f63224 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf32bdc5d unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0xf34b23a5 sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf38645fa skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3bd06a6 devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xf3e1c863 digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0xf3f8aff9 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0xf4147857 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xf46c391d x86_hyper_kvm +EXPORT_SYMBOL_GPL vmlinux 0xf479339e ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xf488f141 task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4c2074d d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xf4e10b8f power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xf4e88ed6 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xf4ec1121 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xf4f1421d usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf51e002c platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xf5285f10 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf557d880 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xf55d9b33 unregister_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf56d8685 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xf5785b42 evtchn_get +EXPORT_SYMBOL_GPL vmlinux 0xf580e2e7 bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0xf59096a1 balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5bebe67 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xf5fef4e3 wm5110_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf60cffd3 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0xf6802026 hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0xf68be30b sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xf68e0508 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xf69d4f44 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xf69f6d45 extcon_update_state +EXPORT_SYMBOL_GPL vmlinux 0xf6b8fbf9 xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xf6dd9120 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6e976bf dma_buf_vunmap +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf7322bc8 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0xf74377e3 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xf770e2e0 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xf7ae5953 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xf7af2ce8 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0xf7c538a5 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0xf7da6868 css_next_child +EXPORT_SYMBOL_GPL vmlinux 0xf7daadc3 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xf7dd224d transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xf7f6f0ac crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xf8018aa9 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xf816c866 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf85c4f61 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0xf865a2d2 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8c50064 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0xf8cc97eb unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xf8e75d7b pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8fe0da3 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xf8fe3d0b kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0xf90064d7 pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0xf90a8f74 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xf912fbd6 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf932015f __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf956fdde pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf99f7325 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9a43952 bmp085_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xf9b391f7 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9cd5a87 napi_by_id +EXPORT_SYMBOL_GPL vmlinux 0xf9d9264e xen_have_vector_callback +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa0abd66 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xfa0f64e6 pwm_enable +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa26a122 user_match +EXPORT_SYMBOL_GPL vmlinux 0xfa32ecf0 sec_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xfa607c9f acpi_subsys_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfa61948d xen_unregister_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0xfa77415d spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xfa78430b sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xfaae1df9 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xfab4b23d tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xfabfef6c virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0xfac4c1ee tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xfad4272a blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xfaea3059 dma_buf_put +EXPORT_SYMBOL_GPL vmlinux 0xfaec0ccc device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xfaecbfc9 device_show_int +EXPORT_SYMBOL_GPL vmlinux 0xfb101d42 ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0xfb18cb55 wait_for_tpm_stat +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb33fa30 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0xfb402b3a pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xfb47f7ca xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0xfb5741b0 clk_register_mux_table +EXPORT_SYMBOL_GPL vmlinux 0xfb64b230 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb83db03 cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0xfb9866b6 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xfbd2b917 acpi_get_gpiod_by_index +EXPORT_SYMBOL_GPL vmlinux 0xfbe2b1d8 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc3173a1 print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc4e9672 tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0xfc4ef333 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0xfc4f4953 alarm_init +EXPORT_SYMBOL_GPL vmlinux 0xfc6adbb1 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xfc7273fb virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xfc84cb2d hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfcbb5a7f md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xfcd0e345 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfd005058 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xfd008999 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xfd05464b klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xfd1124cf pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xfd204fdc sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xfd307203 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd5235d2 device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0xfd5b68bd pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0xfd5be22b register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xfd673e7a devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xfd688a8b sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfd824a50 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0xfd881bb3 rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xfd940904 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0xfda7f6d3 pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0xfdab5eaa balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0xfddf178a mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0xfde8132b blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0xfdf47ee8 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xfe218998 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0xfe44a753 sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe84c027 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xfe958145 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfeb03e53 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0xfeb9e7e3 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfeda4e1c look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5f2b0e __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xff6036de bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xff74d080 pinctrl_force_sleep +EXPORT_SYMBOL_GPL vmlinux 0xff8ab99d debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xff8b4aaf fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xff8dae5b ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xffb9b186 dma_buf_fd +EXPORT_SYMBOL_GPL vmlinux 0xffc3020d ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0xffe66b76 rio_unlock_device --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/i386/lowlatency.compiler +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/i386/lowlatency.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2 --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/i386/lowlatency.modules +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/i386/lowlatency.modules @@ -0,0 +1,4089 @@ +3c509 +3c515 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +53c700 +6lowpan +6pack +8021q +8139cp +8139too +8250_accent +8250_boca +8250_dw +8250_exar_st16c554 +8250_fourport +8250_hub6 +8255 +8255_pci +8390 +8390p +88pm800 +88pm805 +88pm80x +88pm80x_onkey +88pm860x_battery +88pm860x_bl +88pm860x_charger +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +abituguru +abituguru3 +ablk_helper +ac97_bus +acard-ahci +acecad +acenic +acerhdf +acer-wmi +acpi_extlog +acpi_ipmi +acpi_pad +acpiphp_ibm +acpi_power_meter +acquirewdt +act2000 +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5380 +ad5398 +ad5421 +ad5446 +ad5449 +ad5504 +ad5624r_spi +ad5686 +ad5755 +ad5764 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7266 +ad7280a +ad7291 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7791 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad7923 +ad799x +ad8366 +ad9523 +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2032 +addi_apci_2200 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +addi_watchdog +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adf4350 +adfs +adi +adis16060 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1275 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +adq12b +ads1015 +ads7828 +ads7846 +ads7871 +ad_sigma_delta +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adv7170 +adv7175 +adv7180 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci1724 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +aes-i586 +aesni-intel +af_802154 +af9013 +af9033 +af_alg +affs +af_key +af_packet_diag +af-rxrpc +ah4 +ah6 +aha152x +aha152x_cs +aha1542 +aha1740 +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +airo +airo_cs +ak8975 +algif_hash +algif_skcipher +ali-agp +ali-ircc +alim1535_wdt +alim7101_wdt +alphatrack +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +alx +ambassador +amc6821 +amd5536udc +amd76x_edac +amd76xrom +amd8111e +amd_freq_sensitivity +amd-rng +amilo-rfkill +amplc_dio200 +amplc_dio200_common +amplc_dio200_pci +amplc_pc236 +amplc_pc263 +amplc_pci224 +amplc_pci230 +amplc_pci263 +ams369fg06 +analog +anatop-regulator +ansi_cprng +anubis +aoe +apanel +apds9300 +apds9802als +apds990x +apm +apple_bl +appledisplay +apple-gmux +applesmc +appletalk +appletouch +applicom +ar5523 +ar7part +arc4 +arcfb +arcmsr +arcnet +arc_ps2 +arc-rawmode +arc-rimi +arc_uart +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as3711_bl +as3711-regulator +as5011 +asb100 +asc7621 +asix +ast +asus_atk0110 +asus-laptop +asus-nb-wmi +asus-wmi +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at86rf230 +at91_ether +atbm8830 +aten +ath +ath10k_core +ath10k_pci +ath3k +ath5k +ath6kl_core +ath6kl_sdio +ath6kl_usb +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati-agp +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atlas_btns +atm +atmel +atmel_cs +atmel_mxt_ts +atmel_pci +atmel_pwm +atmel-pwm-bl +atmel-ssc +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522_common +au8522_decoder +au8522_dig +aufs +auo_k1900fb +auo_k1901fb +auo_k190x +auo-pixcir-ts +authenc +authencesn +auth_rpcgss +autofs4 +avma1_cs +avm_cs +avmfritz +ax25 +ax88179_178a +axnet_cs +b1 +b1dma +b1isa +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcma-hcd +bcm_wimax +bd6107 +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_aout +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluecard_cs +bluetooth +bma150 +bma180 +bmp085-i2c +bmp085-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpa10x +bpck +bpck6 +bpctl_mod +bpqether +bq2415x_charger +bq24190_charger +bq24735-charger +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcoexist +btcx-risc +btmrvl +btmrvl_sdio +btmtk_usb +btrfs +btsdio +bttv +btuart_cs +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +bypass +c101 +c2port-duramar2150 +c4 +c67x00 +c6xdigio +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +caif_usb +caif_virtio +camellia_generic +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5_generic +cast6_generic +cast_common +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcimdas +cb_pcimdda +cc770 +cc770_isa +cc770_platform +c_can +c_can_pci +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +cedusb +ceph +cfag12864b +cfag12864bfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +chromeos_laptop +cifs +ci_hdrc +ci_hdrc_msm +ci_hdrc_pci +cirrus +cirrusfb +ck804xrom +classmate-laptop +clearpad_tm1217 +clip +clk-max77686 +clk-s2mps11 +clk-si5351 +clk-twl6040 +clk-wm831x +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm36651 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmac +cmdlinepart +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-isa +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +compal-laptop +configfs +contec_pci_dio +cops +cordic +core +coretemp +cosa +cp210x +cpcihp_generic +cpcihp_zt5550 +cpia2 +cpqphp +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc32 +crc32-pclmul +crc7 +crc8 +crc-ccitt +crc-itu-t +cros_ec +cros_ec_i2c +cros_ec_keyb +cros_ec_spi +crvml +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +cs5535-mfd +cs553x_nand +cs89x0 +csiostor +ct82c710 +ctr +cts +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24117 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyapa +cyber2000fb +cyberjack +cyclades +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da9030_battery +da9034-ts +da903x +da903x_bl +da9052-battery +da9052_bl +da9052-hwmon +da9052_onkey +da9052-regulator +da9052_tsi +da9052_wdt +da9055-hwmon +da9055_onkey +da9055-regulator +da9055_wdt +da9063-regulator +da9210-regulator +DAC960 +daqboard2000 +das08 +das08_cs +das08_isa +das08_pci +das16 +das16m1 +das1800 +das6402 +das800 +db9 +dc395x +dca +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dcdbas +ddbridge +de2104x +de4x5 +decnet +deflate +defxx +dell-laptop +dell-led +dell_rbu +dell-wmi +dell-wmi-aio +denali +denali_dt +denali_pci +des_generic +designware_i2s +dgap +dgnc +dgrp +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bio-prison +dm-bufio +dm-cache +dm-cache-cleaner +dm-cache-mq +dm-crypt +dm-delay +dme1737 +dmfe +dm-flakey +dmi-sysfs +dm-log +dm-log-userspace +dmm32at +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-switch +dm-thin-pool +dm-verity +dmx3191d +dm-zero +dnet +dn_rtmsg +docg3 +docg4 +donauboe +dpt_i2o +drbd +drm +drm_kms_helper +drm_usb +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2781_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt2801 +dt2811 +dt2814 +dt2815 +dt2817 +dt282x +dt3000 +dt3155v4l +dt9812 +dtc +dtl1_cs +dtlk +dummy +dummy-irq +dvb-as102 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-af9035 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6007 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-rtl28xxu +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb_usb_v2 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc2 +dwc2_pci +dwc2_platform +dwc3 +dwc3-pci +dw_dmac +dw_dmac_core +dw_dmac_pci +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e4000 +e752x_edac +e7xxx_edac +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_vlan +ec100 +echo +ec_sys +edac_core +edac_mce_amd +edt-ft5x06 +eeepc-laptop +eeepc-wmi +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efficeon-agp +efi-pstore +efs +ehset +einj +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +em28xx-rc +emc1403 +emc2103 +emc6w201 +em_canid +em_cmp +emi26 +emi62 +em_ipset +em_meta +em_nbyte +empeg +ems_pci +ems_pcmcia +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +ene_ir +eni +enic +epat +epia +epic100 +eql +esas2r +esb2rom +esd_usb2 +esi-sir +esp4 +esp6 +et131x +ethoc +eurotechwdt +evbug +exofs +extcon-adc-jack +extcon-arizona +extcon-gpio +extcon-max77693 +extcon-max8997 +extcon-palmas +ezusb +f2fs +f71805f +f71808e_wdt +f71882fg +f75375s +f81232 +fakelb +fam15h_power +fan53555 +farsync +faulty +fb_ddc +fb_sys_fops +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +fid +fintek-cir +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +firewire-serial +fit2 +fit3 +fixed +fl512 +fld +floppy +fm801-gp +fmc +fmc-chardev +fmc-fakedev +fmc-trivial +fmc-write-eeprom +fm_drv +fmvj18x_cs +fnic +forcedeth +fore_200e +fotg210-hcd +fotg210-udc +freevxfs +friq +frpw +fsa9480 +fscache +fschmd +ft1000 +ft1000_pcmcia +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu-tablet +fujitsu_ts +fusbh200-hcd +g450_pll +g760a +g762 +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdmtty +gdmulte +gdmwm +gdth +generic +generic-adc-battery +generic_bl +gen_probe +geode-aes +geode-rng +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +glue_helper +gma500_gfx +g_mass_storage +g_midi +g_ncm +g_NCR5380 +g_NCR5380_mmio +g_nokia +go7007 +go7007-loader +go7007-usb +goku_udc +goldfishfb +gp2ap002a00f +gp2ap020a00f +gpio +gpio-74x164 +gpio-addr-flash +gpio-adp5520 +gpio-adp5588 +gpio-amd8111 +gpio-arizona +gpio_backlight +gpio-charger +gpio-cs5535 +gpio-da9052 +gpio-da9055 +gpio-f7188x +gpio-fan +gpio-generic +gpio-ich +gpio-ir-recv +gpio-it8761e +gpio-janz-ttl +gpio-kempld +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-pch +gpio-rdc321x +gpio-regulator +gpio-sch +gpio_tilt_polled +gpio-tps65912 +gpio-ts5500 +gpio-twl6040 +gpio-ucb1400 +gpio-viperboard +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_jl2005bcd +gspca_kinect +gspca_konica +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_nw80x +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_se401 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stk1135 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gx1fb +gxfb +gx-suspmod +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +hci +hci_uart +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hecubafb +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hgafb +hid +hid-a4tech +hid-apple +hid-appleir +hid-aureal +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-elo +hid-emsff +hid-ezkey +hid-gaff +hid-generic +hid-gyration +hid-holtekff +hid-holtek-kbd +hid-holtek-mouse +hid-huion +hid-hyperv +hid-icade +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-lenovo-tpkbd +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-rmi +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-isku +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-konepure +hid-roccat-kovaplus +hid-roccat-lua +hid-roccat-pyra +hid-roccat-ryos +hid-roccat-savu +hid-saitek +hid-samsung +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-gyro-3d +hid-sensor-hub +hid-sensor-iio-common +hid-sensor-magn-3d +hid-sensor-trigger +hid-sjoy +hid-sony +hid-speedlink +hid-steelseries +hid-sunplus +hid-thingm +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-xinmo +hid-zpff +hid-zydacron +hih6130 +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hostess_sv11 +hp100 +hp_accel +hpfs +hpilo +hpsa +hptiop +hpwdt +hp-wireless +hp-wmi +hsi +hsi_char +hso +hsr +htc-pasic3 +htcpen +htu21 +huawei_cdc_ncm +hv_balloon +hv_netvsc +hv_storvsc +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hwpoison-inject +hx8357 +hyperv_fb +hyperv-keyboard +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-cbus-gpio +i2c-designware-core +i2c-designware-pci +i2c-designware-platform +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-hid +i2c-i801 +i2c-isch +i2c-ismt +i2c-kempld +i2c-matroxfb +i2c-mux +i2c-mux-gpio +i2c-mux-pca9541 +i2c-mux-pca954x +i2c-mux-pinctrl +i2c-nforce2 +i2c-nforce2-s4985 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-isa +i2c-pca-platform +i2c-piix4 +i2c-scmi +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-viperboard +i2c-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i3000_edac +i3200_edac +i40e +i40evf +i5000_edac +i5100_edac +i5400_edac +i5k_amb +i6300esb +i7300_edac +i740fb +i7core_edac +i810fb +i82092 +i82365 +i82860_edac +i82875p_edac +i82975x_edac +i8k +i915 +i915_bdw +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_isert +ib_mad +ibmaem +ibmasm +ibmasr +ibmpex +ibmphp +ibm_rtl +ib_mthca +ib_sa +ib_srp +ib_srpt +ib_ucm +ib_umad +ib_uverbs +ichxrom +icn +icp_multi +ics932s401 +ideapad-laptop +ideapad_slidebar +idmouse +idt77252 +idtcps +idt_gen2 +ie6xx_wdt +ieee802154 +ifb +iforce +igb +igbvf +iguanair +iio_dummy +iio_hwmon +iio-trig-interrupt +iio-trig-periodic-rtc +iio-trig-sysfs +ii_pci20kc +ili210x +ili922x +ili9320 +imm +imon +ims-pcu +imx074 +in2000 +ina209 +ina2xx +industrialio +industrialio-triggered-buffer +inet_diag +inexio +inftl +initio +input-polldev +int51x1 +intelfb +intel_ips +intel_menlow +intel_mid_battery +intel_mid_dma +intel_mid_powerbtn +intel_mid_thermal +intel-mid-touch +intel_oaktrail +intel_powerclamp +intel_rapl +intel-rng +intel-rst +intel_scu_ipcutil +intel-smartconnect +intel_vr_nor +interact +interval_tree_test +inv-mpu6050 +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip6_gre +ip6table_filter +ip6table_mangle +ip6table_nat +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_MASQUERADE +ip6t_mh +ip6t_NPT +ip6t_REJECT +ip6t_rpfilter +ip6t_rt +ip6t_SYNPROXY +ip6_tunnel +ip6_vti +ipack +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_poweroff +ipmi_si +ipmi_watchdog +ipoctal +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netnet +ip_set_hash_netport +ip_set_hash_netportnet +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_MASQUERADE +ipt_REJECT +ipt_rpfilter +ipt_SYNPROXY +ipt_ULOG +ip_tunnel +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ip_vti +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +iris +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sanyo-decoder +ir-sony-decoder +irtty-sir +ir-usb +isci +iscsi_boot_sysfs +iscsi_ibft +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it87 +it8712f_wdt +it87_wdt +it913x-fe +iTCO_vendor_support +iTCO_wdt +itd1000 +ite-cir +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwldvm +iwlegacy +iwlmvm +iwlwifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kalmia +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kempld-core +kempld_wdt +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +ko2iblnd +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksocklnd +ksz884x +ktti +kvaser_pci +kvaser_usb +kvm +kvm-amd +kvm-intel +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +l2tp_ppp +l440gx +l4f00242t03 +l64781 +lanai +lance +lapb +lapbether +latch-addr-flash +lattice-ecp3-config +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-atmel-pwm +leds-bd2802 +leds-blinkm +leds-clevo-mail +leds-da903x +leds-da9052 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lm3533 +leds-lm355x +leds-lm3642 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lp5562 +leds-lp55xx-common +leds-lp8501 +leds-lp8788 +leds-lt3593 +leds-max8997 +leds-mc13783 +leds-net48xx +leds-ot200 +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pca9685 +leds-pwm +leds-regulator +leds-ss4200 +leds-tca6507 +leds-wm831x-status +leds-wm8350 +leds-wrap +ledtrig-backlight +ledtrig-camera +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-oneshot +ledtrig-timer +ledtrig-transient +legousbtower +lg2160 +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libceph +libcfs +libcomposite +libcrc32c +libcxgbi +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +litelink-sir +lkkbd +llc +llc2 +llog_test +lm25066 +lm3533-als +lm3533_bl +lm3533-core +lm3533-ctrlbank +lm3630a_bl +lm3639_bl +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm8333 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95234 +lm95241 +lm95245 +lmc +lms283gf05 +lms501kf03 +lmv +lnbp21 +lnbp22 +lnet +lnet_selftest +lockd +logibm +longhaul +longrun +lov +lp +lp3971 +lp3972 +lp855x_bl +lp8727_charger +lp8755 +lp8788_bl +lp8788-charger +lpc_ich +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc2978 +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltpc +ltv350qv +lustre +lv5207lp +lvfs +lxfb +lz4 +lz4_compress +lz4hc +lz4hc_compress +m25p80 +m2m-deinterlace +m52790 +m88rs2000 +ma600-sir +mac80211 +mac80211_hwsim +mac802154 +macb +mac-celtic +mac-centeuro +mac-croatian +mac-cyrillic +mac-gaelic +mac-greek +mac_hid +machzwd +mac-iceland +mac-inuit +macmodes +mac-roman +mac-romanian +mac-turkish +macvlan +macvtap +mag3110 +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix-keymap +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16064 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max197 +max2165 +max3100 +max34440 +max517 +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77686 +max77693 +max8649 +max8660 +max8688 +max8903_charger +max8907 +max8907-regulator +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8973-regulator +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-i2c +mc13xxx-regulator-core +mc13xxx-spi +mc44s803 +mce_amd_inj +mce-inject +mceusb +mcp2120-sir +mcp251x +mcp3021 +mcp320x +mcp3422 +mcp4725 +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdacon +mdc +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mei +mei-me +mei_phy +mem2mem_testdev +memstick +mena21_wdt +metronomefb +metro-usb +meye +mfd +mga +mgc +michael_mic +microread +microread_i2c +microread_mei +microtek +mii +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mixcomwd +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mlx5_core +mlx5_ib +mma8450 +mmc_block +mms114 +mos7720 +mos7840 +moxa +mpc624 +mpoa +mpr121_touchkey +mpt2sas +mpt3sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrf24j40 +mrp +mrst_max3110 +ms_block +msdos +msi-laptop +msi-wmi +msp3400 +mspro_block +msr +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt29f_spinand +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +multiq3 +musb_hdrc +mv88e6060 +mv88e6xxx_drv +mvmdio +mvsas +mv_u3d_core +mv_udc +mvumi +mwave +mwifiex +mwifiex_pcie +mwifiex_sdio +mwifiex_usb +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxm-wmi +mxser +myri10ge +n2 +n411 +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +nau7802 +navman +nbd +nci +ncpfs +NCR53c406a +nct6775 +ne +ne2k-pci +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netlink_diag +netprio_cgroup +netrom +netsc520 +nettel +netxen_nic +newtonkbd +nfc +nfc_digital +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcsim +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_ipv4 +nf_nat_ipv6 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nfsv2 +nfsv3 +nfsv4 +nf_synproxy_core +nf_tables +nf_tables_arp +nf_tables_bridge +nf_tables_ipv4 +nf_tables_ipv6 +nft_chain_nat_ipv4 +nft_chain_nat_ipv6 +nft_chain_route_ipv4 +nft_chain_route_ipv6 +nft_compat +nft_counter +nft_ct +nft_exthdr +nft_hash +nftl +nft_limit +nft_log +nft_meta +nft_nat +nft_rbtree +nft_reject_ipv4 +ngene +n_hdlc +ni65 +ni_6527 +ni_65xx +ni_660x +ni_670x +ni_at_a2150 +ni_at_ao +ni_atmio +ni_atmio16d +nicstar +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_cs +ni_labpc_isadma +ni_labpc_pci +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nlmon +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +nosy +notifier-error-inject +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc_gpio +nsc-ircc +nsp32 +nsp_cs +ntb +ntb_netdev +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +null_blk +nuvoton-cir +nvidiafb +nvme +nvram +nv_tco +nxt200x +nxt6000 +obdclass +obdecho +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ocrdma +old_belkin-sir +omfs +omninet +on20 +on26 +onenand +opencores-kbd +openvswitch +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osc +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7640 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +ozwpan +p4-clockmod +p54common +p54pci +p54spi +p54usb +p8022 +p8023 +padlock-aes +padlock-sha +palmas-regulator +panasonic-laptop +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pas16 +pata_acpi +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5535 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_isapnp +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87410 +pata_ns87415 +pata_oldpiix +pata_opti +pata_optidma +pata_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pc110pad +pc300too +pc87360 +pc8736x_gpio +pc87413_wdt +pc87427 +pcbc +pcbit +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_dma +pch_gbe +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci-stub +pcl711 +pcl724 +pcl726 +pcl730 +pcl812 +pcl816 +pcl818 +pcm3724 +pcmad +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcmda12 +pcmmio +pcmuio +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc_adma +peak_pci +peak_pcmcia +peak_usb +pegasus +penmount +percpu_test +pf +pfuze100-regulator +pg +phantom +phison +phonet +phram +phy-core +phy-generic +phy-gpio-vbus-usb +phy-isp1301 +phy-rcar-usb +phy-samsung-usb +phy-samsung-usb2 +phy-samsung-usb3 +physmap +pixcir_i2c_ts +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm80xx +pmbus +pmbus_core +pmc551 +pmcraid +pm-notifier-error-inject +pms +pn533 +pn544 +pn544_i2c +pn544_mei +pn_pep +poc +port100 +poseidon +powermate +powernow-k6 +powernow-k7 +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +psmouse +psnap +pt +pti +ptlrpc +ptp +ptp_pch +pvpanic +pvrusb2 +pwc +pwm_bl +pxa27x_udc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas +qlogicfas408 +qmi_wwan +qnx4 +qnx6 +qt1010 +qt1070 +qt2160 +quatech2 +quatech_daqp_cs +quickstart +quota_tree +quota_v1 +quota_v2 +qxl +r128 +r592 +r6040 +r8152 +r815x +r8169 +r8187se +r8188eu +r8192e_pci +r8192u_usb +r820t +r82600_edac +r852 +r8712u +r8a66597-hcd +r8a66597-udc +radeon +radeonfb +radio-aimslab +radio-aztech +radio-cadet +radio-gemtek +radio-i2c-si470x +radio-isa +radio-keene +radio-ma901 +radio-maxiradio +radio-miropcm20 +radio-mr800 +radio-rtrack2 +radio-sf16fmi +radio-sf16fmr2 +radio-shark +radio-si4713 +radio-si476x +radio-tea5764 +radio-terratec +radio-timb +radio-trust +radio-typhoon +radio-usb-si470x +radio-wl1273 +radio-zoltrix +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +ray_cs +rbd +rbtree_test +rc5t583-regulator +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rcar_vin +rc-asus-pc39 +rc-asus-ps3-100 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-delock-61959 +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-it913x-v1 +rc-it913x-v2 +rc-kaiomy +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-msi-digivox-ii +rc-msi-digivox-iii +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-reddo +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-total-media-in-hand-02 +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +remoteproc +renesas_usbhs +retu-mfd +retu-pwrbutton +retu_wdt +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-gpio +rfkill-regulator +rio500 +rionet +rio-scan +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rp2 +rpcsec_gss_krb5 +rsxx +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800mmio +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm80x +rtc-88pm860x +rtc-ab3100 +rtc-bq32k +rtc-bq4802 +rtc-da9052 +rtc-da9055 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds2404 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-hid-sensor-time +rtc-isl12022 +rtc-isl1208 +rtc-lp8788 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max77686 +rtc-max8907 +rtc-max8925 +rtc-max8997 +rtc-max8998 +rtc-mc13xxx +rtc-moxart +rtc-mrst +rtc-msm6242 +rtc-palmas +rtc-pcf2123 +rtc-pcf2127 +rtc-pcf50633 +rtc-pcf8523 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rc5t583 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx4581 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-s5m +rtc-stk17ta8 +rtc-tps6586x +rtc-tps65910 +rtc-tps80031 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rti800 +rti802 +rtl2830 +rtl2832 +rtl8150 +rtl8180 +rtl8187 +rtl8188ee +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtl8723ae +rtl8723be +rtl8723-common +rtl8821ae +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtl_pci +rtl_usb +rtlwifi +rts5139 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rxkad +s1d13xxxfb +s2250 +s2255drv +s2io +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s5m8767 +s626 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +salsa20_generic +salsa20-i586 +samsung-keypad +samsung-laptop +samsung-q10 +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_rcar +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sb1000 +sbc60xxwdt +sbc7240_wdt +sbc8360 +sbc_epx_c3 +sbc_fitpc2_wdt +sbc_gxx +sbe-2t3e3 +sbni +sbp_target +sbs +sbs-battery +sbshc +sc +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +sca3000 +scb2_flash +scc +sch311x_wdt +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_fq +sch_fq_codel +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_plug +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_srp +sctp +sctp_probe +scx200 +scx200_acb +scx200_docflash +scx200_gpio +scx200_hrt +scx200_wdt +sdhci +sdhci-acpi +sdhci-pci +sdhci-pltfm +sdhci-pxav2 +sdhci-pxav3 +sdio_uart +sdla +sdricoh_cs +sdr-msi3101 +sealevel +sedlbauer_cs +seed +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent_generic +serpent-sse2-i586 +serport +serqt_usb2 +ses +sfc +shark2 +sh_eth +sh_mobile_ceu_camera +sh_mobile_csi2 +shpchp +sht15 +sht21 +sh_veu +si21xx +si4713-i2c +si476x-core +sidewinder +sierra +sierra_net +sil164 +sim710 +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_platform +skel +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slicoss +slip +slram +sm501 +sm501fb +sm7xxfb +smb347-charger +smc9194 +smc91c92_cs +sm_common +smc-ultra +sm_ftl +smm665 +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +snd +snd-ac97-codec +snd-ad1816a +snd-ad1848 +snd-ad1889 +snd-adlib +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-aloop +snd-als100 +snd-als300 +snd-als4000 +snd-asihpi +snd-at73c213 +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt1605 +snd-azt2316 +snd-azt2320 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmi8328 +snd-cmi8330 +snd-cmipci +snd-compress +snd-cs4231 +snd-cs4236 +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dice +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emu8000-synth +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1688 +snd-es1688-lib +snd-es18xx +snd-es1938 +snd-es1968 +snd-firewire-lib +snd-firewire-speakers +snd-fm801 +snd-gina20 +snd-gina24 +snd-gusclassic +snd-gusextreme +snd-gus-lib +snd-gusmax +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-ca0110 +snd-hda-codec-ca0132 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-interwave +snd-interwave-stb +snd-isight +snd-jazz16 +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lola +snd-lx6464es +snd-maestro3 +snd-mia +snd-miro +snd-mixart +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-msnd-classic +snd-msnd-lib +snd-msnd-pinnacle +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3sa2 +snd-opl3-synth +snd-opl4-lib +snd-opl4-synth +snd-opti92x-ad1848 +snd-opti92x-cs4231 +snd-opti93x +snd-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcsp +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16 +snd-sb16-csp +snd-sb16-dsp +snd-sb8 +snd-sb8-dsp +snd-sbawe +snd-sb-common +snd-sc6000 +snd-scs1x +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-sis7019 +snd-soc-atmel-pcm +snd-soc-core +snd-soc-mfld-machine +snd-soc-si476x +snd-soc-simple-card +snd-soc-sn95031 +snd-soc-sst-platform +snd-sonicvibes +snd-sscape +snd-tea6330t +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usb-hiface +snd-usbmidi-lib +snd-usb-us122l +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-wavefront +snd-wss-lib +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +soc_scale_crop +softdog +softing +softing_cs +solo6x10 +solos-pci +sony-btf-mpx +sony-laptop +sonypi +soundcore +sp5100_tco +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_dummy +speakup_keypc +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +spectrum_cs +speedfax +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw +spi-dw-midpci +spi-dw-mmio +spi-gpio +spi_ks8995 +spi-lm70llp +spi-oc-tiny +spi-pxa2xx-pci +spi-pxa2xx-platform +spi-sc18is602 +spi-tle62x0 +spi-topcliff-pch +spi-xcomm +squashfs +sr9700 +ssb +ssb-hcd +ssfdc +sst25l +sstfb +ssu100 +ssv_dnp +st +st1232 +st_accel +st_accel_i2c +st_accel_spi +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste_modem_rproc +stex +st_gyro +st_gyro_i2c +st_gyro_spi +stinger +stir4200 +stk1160 +stkwebcam +st_magn +st_magn_i2c +st_magn_spi +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +st_pressure +st_pressure_i2c +st_pressure_spi +streamzap +st_sensors +st_sensors_i2c +st_sensors_spi +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +sur40 +svcrdma +svgalib +sworks-agp +sx8 +sym53c416 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synaptics_usb +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t128 +t1isa +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc1100-wmi +tc3589x-keypad +tca6416-keypad +tca8418_keypad +tcic +tcm_fc +tcm_loop +tcm_qla2xxx +tcm_usb_gadget +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tcs3472 +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tda998x +tdfx +tdfxfb +tdo24m +tea +tea575x +tea5761 +tea5767 +tea6415c +tea6420 +team +team_mode_activebackup +team_mode_broadcast +team_mode_loadbalance +team_mode_random +team_mode_roundrobin +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +test-string_helpers +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti-adc081c +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmem +tmiofb +tmp006 +tmp102 +tmp401 +tmp421 +tmscsim +toim3232-sir +topstar-laptop +toshiba_acpi +toshiba_bluetooth +touchit213 +touchright +touchwin +tpci200 +tpm_atmel +tpm_i2c_atmel +tpm_i2c_infineon +tpm_i2c_nuvoton +tpm_i2c_stm_st33 +tpm_infineon +tpm_nsc +tpm-rng +tps51632-regulator +tps6105x +tps6105x-regulator +tps62360-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps65090-charger +tps65090-regulator +tps65217 +tps65217_bl +tps65217-regulator +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +tps80031-regulator +trancevibrator +tranzport +tridentfb +ts2020 +ts5500_flash +ts_bm +tsc2005 +tsc2007 +tsc40 +tscan1 +ts_fsm +tsi568 +tsi57x +tsi721_mport +ts_kmp +tsl2550 +tsl2563 +tsl2583 +tsl2x7x_core +tsl4531 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +tua6100 +tua9001 +tulip +tuner +tuner_it913x +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tusb6010 +tvaudio +tveeprom +tvp5150 +tw2804 +tw9903 +tw9906 +tw9910 +twidjoy +twl6040-vibra +twofish_common +twofish_generic +twofish-i586 +typhoon +u132-hcd +u14-34f +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +ucd9000 +ucd9200 +uda1342 +udc-core +udf +udl +udlfb +udp_diag +ueagle-atm +u_ether +ufs +ufshcd +ufshcd-pci +ufshcd-pltfrm +uhid +uio +uio_aec +uio_cif +uio_dmem_genirq +uio_mf624 +uio_netx +uio_pci_generic +uio_pdrv_genirq +uio_sercos3 +uli526x +ultrastor +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unioxx5 +unix_diag +upd64031a +upd64083 +uPD98402 +u_rndis +usb3503 +usb_8dev +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_f_acm +usb_f_ecm +usb_f_ecm_subset +usb_f_eem +usb_f_mass_storage +usb_f_ncm +usb_f_obex +usb_f_phonet +usb_f_rndis +usb_f_serial +usb_f_ss_lb +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usb-serial-simple +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbtv +usbvision +usb_wwan +u_serial +userspace-consumer +ushc +usnic_verbs +uss720 +uvcvideo +uvesafb +uwb +ux500 +v4l2-common +v4l2-dv-timings +v4l2-int-device +v4l2-mem2mem +vcan +vcnl4000 +ves1820 +ves1x93 +veth +vfio +vfio_iommu_type1 +vfio-pci +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost +vhost_net +vhost_scsi +via +via686a +via-camera +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +via_wdt +video +videobuf2-core +videobuf2-dma-contig +videobuf2-dma-sg +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +viperboard +viperboard_adc +virtio-rng +virtio_scsi +virtual +visor +vivi +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_pio2 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmw_balloon +vmwgfx +vmw_pvscsi +vmw_vmci +vmw_vsock_vmci_transport +vmxnet3 +vp27smpx +vpx3220 +vringh +vsock +vsxxxaa +vt1211 +vt6655_stage +vt6656_stage +vt8231 +vt8623fb +vub300 +vx855 +vxge +vxlan +w1_bq27000 +w1_ds2408 +w1_ds2413 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1_ds2781 +w1_ds28e04 +w1-gpio +w1_smem +w1_therm +w35und +w5100 +w5300 +w6692 +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83697ug_wdt +w83781d +w83791d +w83792d +w83793 +w83795 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w90p910_ts +w9966 +wacom +wacom_i2c +wacom_w8001 +wafer5823wdt +walkera0701 +wanxl +warrior +wbsd +wcn36xx +wd +wd7000 +wdt +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wil6210 +wimax +winbond-840 +winbond-cir +wire +wishbone-serial +wistron_btns +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl18xx +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wlcore +wlcore_sdio +wlcore_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wmi +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +x38_edac +x86_pkg_temp_thermal +xc4000 +xc5000 +xcbc +xen-blkback +xen-evtchn +xen-fbfront +xenfs +xen-gntalloc +xen-gntdev +xen-kbdfront +xen-netback +xen-pciback +xen-pcifront +xen-privcmd +xen-tpmfront +xen_wdt +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_algo +xfrm_ipcomp +xfrm_user +xfs +xgene-enet +xgifb +xgmac +xillybus_core +xillybus_pcie +xirc2ps_cs +xircom_cb +xo15-ebook +xor +xpad +xprtrdma +xsens_mt +x_tables +xt_addrtype +xt_AUDIT +xt_bpf +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlabel +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_ecn +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_HMARK +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_LOG +xt_mac +xt_mark +xt_multiport +xt_nat +xt_NETMAP +xt_nfacct +xt_NFLOG +xt_NFQUEUE +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xt_REDIRECT +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +z85230 +zatm +zaurus +zd1201 +zd1211rw +zforce_ts +zhenhua +zl10036 +zl10039 +zl10353 +zl6100 +zlib +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram +zte_ev --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/powerpc/powerpc-e500 +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/powerpc/powerpc-e500 @@ -0,0 +1,16602 @@ +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0x05177ace suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x4aa22c02 uPD98402_init +EXPORT_SYMBOL drivers/bcma/bcma 0x2d8a8f0d bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x127a5901 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/paride/paride 0x0300a23f pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x10a51b15 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x3502da60 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x3a526428 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x4aeb7bf2 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x5142fc25 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x89af5313 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xa1c12ae8 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xab1a82d1 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xd1221a65 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xe61ee8bb pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xf5521a1f pi_write_block +EXPORT_SYMBOL drivers/crypto/caam/caam 0xfd2b02dc caam_get_era +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x35c2d7ab caam_jr_free +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x86513be1 split_key_done +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0xbb030d6e caam_jr_strstatus +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0xdc26f56f caam_jr_enqueue +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0xe414833d caam_jr_alloc +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0xf62fa60d gen_split_key +EXPORT_SYMBOL drivers/crypto/talitos 0x7276cd34 talitos_submit +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x06464fe4 dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x3d8a508a dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x4ece49b3 dw_dma_cyclic_free +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x5b1ce08e dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x79a71bdb dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xd6a99ff6 dw_dma_get_src_addr +EXPORT_SYMBOL drivers/edac/edac_core 0xe09e8f6a edac_mc_find +EXPORT_SYMBOL drivers/edac/mpc85xx_edac 0x53d6daff mpc85xx_pci_err_probe +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x10bad99e fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x19a2d77a fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1c680187 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x25fd5014 fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x30021d81 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x320453c6 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x423c4d80 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4511687f fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4e68143e fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x53adcbdd fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6745dbc5 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x788911aa fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x790ef581 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7eda8a1d fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x81a42d51 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9ee74633 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa0179af0 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa67336da fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xae2a1ad5 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd1dc02d8 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xdbe177cf fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe216298b fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0xec5983d1 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf7dab797 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfc192fb1 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfc4a5c1f fw_send_request +EXPORT_SYMBOL drivers/fmc/fmc 0x37560102 fmc_device_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x4202ebe8 fmc_scan_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x4fd9a633 fmc_reprogram +EXPORT_SYMBOL drivers/fmc/fmc 0x54d76987 fmc_free_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x553c3f92 fmc_device_register +EXPORT_SYMBOL drivers/fmc/fmc 0x82bb8b36 fmc_find_sdb_device +EXPORT_SYMBOL drivers/fmc/fmc 0x8a946e80 fmc_device_unregister_n +EXPORT_SYMBOL drivers/fmc/fmc 0x92e9af89 fmc_show_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xd664d47a fmc_driver_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0xf0ce1c96 fmc_device_register_n +EXPORT_SYMBOL drivers/fmc/fmc 0xf47c0757 fmc_driver_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00025916 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00254444 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00667d8a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01fa65f6 drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x026c0d6b drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x027f9c77 drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x049b4dc8 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07bd0c48 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x093dceca drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0965a562 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0addb657 drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c38eed6 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ec527fc drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x107742a9 drm_get_subpixel_order_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x10a002d7 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1210de0d drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x129b7528 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x130b6537 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13c2b083 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13cdaadb drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a9a178 drm_get_format_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1540ff32 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1663b2b7 drm_dev_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x168d1ab6 drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17a0b792 drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x189f6401 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19e44324 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a770ac3 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c53872e drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ce7cdef drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e0ddb77 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e45489c drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2058aa78 drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22a5cb51 drm_gem_dumb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22a652e2 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22e45c3f drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24f0b492 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x250eb212 drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0x261b24f9 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x265efb8a drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27cf46f0 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29ad006c drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a942ab2 drm_mm_insert_node_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c01d8b6 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d80be4d drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e7a4300 drm_rgb_quant_range_selectable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f0b064f drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f44b1d3 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31233c3d drm_pcie_get_speed_cap_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31616132 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31b82a47 drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31d93482 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3620bf1d drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36c6ef9c drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36f91ef3 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37004474 drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0x383e0b70 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a4f7ae drm_format_num_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38e1b0a4 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a962c3a drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ac1fef9 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ae7b2d0 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b9d009a drm_format_plane_cpp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d2429c7 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d4b8108 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d74d5be drm_unplug_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e4a6c43 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e5ae6b2 drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40414c82 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x405d66ac drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x429fd446 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42fe9d8b drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x453fc792 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47081aab drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49fabf0d drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c45e771 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c511235 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4fece724 drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5005c9b4 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50502ab1 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e28c07 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x526f6f71 drm_rect_calc_hscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x549ccc79 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55ff429f drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58e0c84e drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5937ec95 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a67e614 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5aa9643a drm_connector_unplug_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ab6d961 drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c0dd4f5 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c77c9b0 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5da95b2d drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e547570 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f68626b drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f8a661e drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6090be61 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60f6daf2 drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62572344 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x629c05e1 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63f6c367 drm_bridge_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6427cf14 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65acec04 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65d901d9 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66803841 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6900d335 drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c14001d drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c2591b6 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cee2e42 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d035fba drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6da57ac2 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e78cf2a drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7092593c drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x70cf1863 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x730af8ee drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7462f6d2 drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79f31c15 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4e7297 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b68c1fa drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c855ea1 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7eea7231 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f267d6a drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fd52c87 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x808fcf71 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81ba930c drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82919f69 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8525a2b3 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85cadff6 drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x862b322e drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a585953 drm_bridge_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a6ee46a drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ae3e8ef drm_prime_destroy_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b2651ff drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c873726 drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de13715 drm_format_vert_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e51713f drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eb92d71 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f290f12 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7df3a7 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8fefc7ca drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ff1d172 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92c0b363 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92cc94b2 drm_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9321c0f7 drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95d7268a drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x960ac354 drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98130ebb drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9942177b drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9972db48 drm_rect_calc_vscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b3adbcb drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d70fc2a drm_rnodes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9deffa03 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9eafe797 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9eccfe56 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9efc26a3 drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f55e5ab drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f68123e drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0542918 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0e2ecb7 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1f4e9e6 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa28078b2 drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5dbd572 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa96acfcb drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab39cf7c drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad9792aa drm_prime_init_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaeac2be3 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafb0cb6f drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1607910 drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb465b130 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb572a9f0 drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb65150ef drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb707623b drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb70af87a drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb71bbb49 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb7a9cb9f drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95beb55 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba9bb697 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc461249 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd13c7cf drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd6f213f drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe001c53 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf830697 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbfada5a6 drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0a744e4 drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0ad2527 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1ac8aea drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1b66ab0 drm_framebuffer_unreference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc354285f drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4000f9f drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc448ff6f drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc507c1b1 drm_crtc_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7f7cc11 drm_vma_offset_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8f5e87c drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca05d29d drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca45efbc drm_format_horz_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca7b9515 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc4eaf05 drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcec158f0 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf814c82 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2335101 drm_fb_get_bpp_depth +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2b31f73 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd80bf83f drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd96e4815 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda991c36 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdab94c23 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb5a5852 drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc5f49d6 drm_prime_sg_to_page_addr_arrays +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdeff64ab drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2ef97e4 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3841e19 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe56076d9 drm_framebuffer_reference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f46e6e drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe939bc04 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecd60f03 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee708c87 drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef172bb6 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefdf9b69 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf08d712a drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf219f21d drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf239f22d drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3002c6d drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf43996ea drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf446a0e2 drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf450f526 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4c20cdd drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5672d14 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf626d4fe drm_mode_group_init_legacy_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6614cb5 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6d3a423 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf78ae275 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb2b8bfb drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb497216 drm_mm_insert_node_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc8acba2 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfcc9fc97 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd063935 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdce53f2 drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe4a68c7 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc6c87a drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x098e47d2 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0af801d0 drm_dp_link_power_up +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0ddd9e62 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0e6e86b3 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f96ec70 drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1036c9bb drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1413176b drm_dp_aux_unregister_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x148b994f drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x163251c8 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2cfb7a4e drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34871adf drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34b8fa3c drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3b3f134d drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x43d43e0e drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x45ba37ff drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x54ef01cc drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x666cd789 drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6ab4b85f i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6ae58391 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x711a004a drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x731a4272 drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x77b8d791 drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x78da4aee drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fbac015 drm_dp_link_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x812c069c drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x81e0fe78 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84e924ba drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x85f22148 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9a0196c7 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa77858bb drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa7b8526f drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8d6809d drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa928e772 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaef2b38c drm_has_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb30b9dac drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb95be885 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc5cedf93 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc9d6009a drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcf44d80d drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd775cf4e drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd9c32d23 drm_dp_link_configure +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdc7224c0 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdf3e170a drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe1a5bd71 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe557136a drm_pick_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe6ad9de6 drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xed2fa4fd drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xedcb0d0a drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf5dc9875 drm_dp_aux_register_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfd54cb53 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x3c7c2bea drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x79a0bdd1 drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0xa86e65ff drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00205b06 ttm_agp_tt_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x12e5346a ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x16ea1210 ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x17102412 ttm_mem_io_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1aec0fa7 ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ba8d68c ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x23dd4e0b ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x246fdb17 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2720f8b6 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2d501681 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x307633f4 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x35584ce7 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38afa448 ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x485a5bc0 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4f9dcb33 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x505f5c22 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x522fe00d ttm_mem_io_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x573cc6ec ttm_bo_del_sub_from_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x59e60bca ttm_pool_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5a8fdfea ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cf59609 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x663c8c9a ttm_prime_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x672ac632 ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b1d568 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b89f66 ttm_dma_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6939c4ea ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6c68a6be ttm_mem_io_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6fdfa020 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x73f862fa ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d55da85 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x825f64b8 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x83daa720 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x84a13931 ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x871c2441 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x880a15ad ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x88b1b102 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x89a443de ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8b3c0c10 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d14adbf ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x94894449 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa11d86b6 ttm_bo_add_to_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2a129fd ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa73de2a9 ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa8a85559 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaa50ef3a ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xacdceda4 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb07c878e ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb35702a4 ttm_dma_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb59d15a3 ttm_agp_tt_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb83c6470 ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbebf9682 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbf498735 ttm_mem_io_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc19018ee ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc22e9ad0 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc5f0c2da ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc6b76418 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc8861fd8 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce6e43a8 ttm_base_object_lookup_for_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7f51742 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd8edb115 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe198bd1c ttm_agp_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe2711445 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe48596a3 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xeb2fec28 ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xec1cef1c ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xecc65d6a ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf76838c5 ttm_pool_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf958abea ttm_bo_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc38feee ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfdf1b73b ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfe79c12f ttm_bo_dma_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfe9f7620 ttm_bo_device_init +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x19fa7ee7 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xb62ae991 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x401ef583 amd756_smbus +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x13317be6 st_accel_common_probe +EXPORT_SYMBOL drivers/iio/accel/st_accel 0xf88020fd st_accel_common_remove +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x071ac027 hid_sensor_read_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x0e9302a6 hid_sensor_write_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x1cc19503 hid_sensor_parse_common_attributes +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x4e2203b7 hid_sensor_write_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x8f86a3da hid_sensor_read_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x4a75a442 hid_sensor_setup_trigger +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x821a1f4b hid_sensor_remove_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x074d7047 st_sensors_trigger_handler +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x14b7f5b9 st_sensors_set_axis_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x209574dc st_sensors_sysfs_set_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x394b781c st_sensors_set_fullscale_by_gain +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x480675e0 st_sensors_read_info_raw +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x4dd80e2e st_sensors_init_sensor +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x549a816e st_sensors_allocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x56f92441 st_sensors_sysfs_get_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x635e4aaf st_sensors_set_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x6cf167d8 st_sensors_get_buffer_element +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x75235304 st_sensors_deallocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x836ebdc5 st_sensors_sysfs_sampling_frequency_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x95c81584 st_sensors_sysfs_scale_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x9ece1037 st_sensors_set_odr +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xc12444a6 st_sensors_check_device_support +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xe287d246 st_sensors_set_dataready_irq +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0x71ff60c3 st_sensors_i2c_configure +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0xf5513daf st_sensors_spi_configure +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x6231af2e st_gyro_common_probe +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0xc311b0b0 st_gyro_common_remove +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x41a76f6d adis_enable_irq +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0xdff7ac47 adis_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/industrialio 0x030bbeee iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0x19055a16 iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/iio/industrialio 0x1e3b3a05 iio_buffer_read_length +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x4afe9c79 iio_buffer_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x4ed3eb9c iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0x4fbe3b0d iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0x56e409eb iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x57ec647c iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0x5f1fd9ea iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0x6195514b iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0x650accae iio_buffer_register +EXPORT_SYMBOL drivers/iio/industrialio 0x68c65d4b iio_buffer_show_enable +EXPORT_SYMBOL drivers/iio/industrialio 0x6c37a820 iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x83131d5c iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x8933b874 iio_buffer_write_length +EXPORT_SYMBOL drivers/iio/industrialio 0x947c408e iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0xbac7f4b7 iio_buffer_store_enable +EXPORT_SYMBOL drivers/iio/industrialio 0xbb07a123 iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xeea82540 iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xf231b471 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/iio/industrialio 0xf2cd3d87 iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0xfbf9d94a iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xfcd89fe2 iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x6750f045 iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0xee9901fa iio_triggered_buffer_setup +EXPORT_SYMBOL drivers/iio/kfifo_buf 0x0637ca99 iio_kfifo_free +EXPORT_SYMBOL drivers/iio/kfifo_buf 0xeffb3e17 iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0xee66e855 st_magn_common_probe +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0xfc51fbf1 st_magn_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x28edb6ed st_press_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0xaab68316 st_press_common_probe +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x049ace30 rdma_addr_find_smac_by_sgid +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x04b8b6d7 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1c3c0ad3 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1ea5767b rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x273f4cca rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x32a8402c rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x36a7951b rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x446fd7c9 rdma_addr_find_dmac_by_grh +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x59252c9d rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x001b4ed7 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0b7b243a ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1c43d56b cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x299b60ce ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2efd9cdb ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x59a8a343 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8147146b ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x84abe044 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8e66a4d4 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xaa55a6b9 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc17bce1d ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd3e7f5ff ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe26aeb5e ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf378cf95 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf61a761d ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfcae143f ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfd5f5e18 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x036b0e2d ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06f54e25 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0705b55e ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x07075b3e ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0cd20ef2 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0fd7aeb6 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x11327238 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1202b694 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1436206f ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1720cbff ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17b9a35c ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x194f32cd ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e346e59 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x20cd566f ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x23fca51e ib_resolve_eth_l2_attrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x24e8b6a6 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x25f72256 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2bb106be ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2cb9e66d ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f782bb3 ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x31bfa67a ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x34e185f1 ib_create_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x379867ae ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x40888b9e ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4254a015 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x522492e8 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x52b64ec7 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55f132d5 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x591a3109 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x603cf59d ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x607549a5 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x61da20ec ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x63731181 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x66352582 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x671eb138 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e030e26 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x749f174f ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x76844775 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7cd6e635 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8001bb86 ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x835ca57f ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8475c108 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87bc480d rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8b8b76b6 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9254655a ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x931117a3 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9575c849 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9a78b3b8 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d6151ea ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa840f7cd ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa9cf0116 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac217df9 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xad6f5d74 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf885e11 ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb12840b9 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbd5d29c8 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe241efb ib_destroy_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc3389448 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc3d3af60 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd2c034f ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xced38879 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xceef120a ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd1fbb571 ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd41b3b7b ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd7026895 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd84d3343 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd9792a2f ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda150996 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe11cd2b4 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe2bcf7f8 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe41b2efd ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6581913 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe705fa37 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xef26294b ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf99d8b12 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfd7b34b5 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfdc98366 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff9869cc ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x227e5659 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2665dcb8 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x32dc9311 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3c5a9efd ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4806b1f6 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x63bc14f5 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x66b83c59 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7bc54ae4 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7eda92c6 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa6594232 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa87dae64 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xec6d8bbe ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x22f07253 ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x4ca45f0d ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5328d7a6 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9a1cd50d ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9ace240c ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9fc0d8fc ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa4e7311e ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xad74bd0a ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb885830f ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xddc330e7 ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf9d03513 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x2569d757 ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x52a6ce77 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7971c00e ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe350f2aa ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2298eace iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x420b6c91 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa8f2d591 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xaed534b0 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb68c9f69 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xd3a8f8a8 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe7f6a913 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf825aa1e iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x01301662 rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2b2f1dfb rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4622afcf rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5176504e rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5d01dd4c rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5e74ea19 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x764f5514 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7785061d rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8760e77d rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8dd411fe rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8f1436ff rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9b3b549e rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa0c6d6ee rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa5142b05 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb4871e71 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb591c517 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb5d10b42 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb855d014 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbfa10ad5 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc2ba274c rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xebef02f7 rdma_leave_multicast +EXPORT_SYMBOL drivers/input/gameport/gameport 0x19e02985 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x45a71ead gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4edebd08 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x58357a0c gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x766d9781 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb32a9245 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc229915a gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd3c9bbae gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd75dbf61 __gameport_register_port +EXPORT_SYMBOL drivers/input/input-polldev 0x0c80b548 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x24ef5951 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x262d454a input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x8faacbee input_allocate_polled_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0xc0177920 matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x4e51f86a ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x674bd2a8 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xebe8a044 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xf8ba3d62 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x02801897 cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/sparse-keymap 0x0f23bc0e sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x1d717b92 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x39950651 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x3d43f5e1 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x46499dae sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xdc0ba19c sparse_keymap_free +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x19ea9198 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x88322310 ad7879_pm_ops +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4ba66ca3 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4cc61f1f capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4e9a6b9d attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x54e1f3ff capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5b72d9b6 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6826b5bf capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6a79b123 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xbee15afd detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xef861f2e capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf7c591d2 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x234b2e96 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x24b7d8ac b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x3bfb7c0b avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x40ad0057 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x49c3be45 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4e40752b b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x571eb853 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6a840cbd b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x916a470e b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9d1d5d19 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa0b5f1e6 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xccd4c58a b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xcd170f05 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe21d3aa4 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf2d604b2 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x0882696b b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x52b7d2ba b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x5578d68d b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6894dd5d b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6c08c79a b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x71e50ce5 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x7d8c61ba b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x95500bc0 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xe5dcf3db b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x7ab59853 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x2165b52e mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x7ca58ab2 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x90343ce0 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xbbc64718 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x0563cdcd mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xae66a679 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x94a247d7 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x48401557 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x7dc4e3bf isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xa9c01c58 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xea3eecd7 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf55a99e4 isac_irq +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x06eca55c isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x84d83e96 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xa09c3bd3 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1c53ec8d mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2c82df2b mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x44694121 bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x48106f58 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x51698aee mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5483cad7 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x67868966 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6ced6fa2 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x712d4299 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x74f9afbb bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x848b74a9 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a09bac0 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a4e99fb mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x98b5da86 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9ef9aadc mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa5b6b7c1 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb898aab9 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc931c9e0 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd4c6c6be create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdbb73e05 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdd2a255c mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe73db9fb mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf8492355 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf86d3313 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/bcache/bcache 0x1bd88ab0 closure_trylock +EXPORT_SYMBOL drivers/md/bcache/bcache 0x2f38193d closure_wait +EXPORT_SYMBOL drivers/md/bcache/bcache 0x6f6d1e09 closure_put +EXPORT_SYMBOL drivers/md/bcache/bcache 0x84b42b6c closure_sub +EXPORT_SYMBOL drivers/md/bcache/bcache 0x9a42c7cb __closure_lock +EXPORT_SYMBOL drivers/md/bcache/bcache 0xe3c17af1 __closure_wake_up +EXPORT_SYMBOL drivers/md/bcache/bcache 0xfe8581fc closure_sync +EXPORT_SYMBOL drivers/md/dm-log 0x1fd6f71f dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0x3c3f1719 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x6d36811d dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xc269eae8 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x17e976cd dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x38c54ba6 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x6ebb32af dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xce93ab3c dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0xe5ece18f dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0xfcc87ac1 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/raid456 0x5ccb59c9 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x07ee48c6 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x18b27d83 flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x214fc54d flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x3445d91c flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x4e31ff8e flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x709bab9f flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x849da54d flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x96ca4e0c flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xb888ed98 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xd21e12be flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xe97ef6eb flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xe9d89c61 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xee804715 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x28cc7392 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xcf7a7b1e btcx_riscmem_free +EXPORT_SYMBOL drivers/media/common/cx2341x 0x092311c5 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0x3db8be82 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x4f75baf1 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0xa784eac4 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0xd4274a95 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0x6284d715 cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/tveeprom 0x6a1bef1f tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0xcc103d3f tveeprom_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x005166d6 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x17523ce7 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x19591134 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1b2dda8e dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1da70b67 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1f1dd47d dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x22d6ce4a dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x28ee2ae8 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x361a7512 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3f7224d5 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4d3b9a9c dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4e6fc629 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4ecefaee dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5f176f50 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x65e07a5c dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x78d62338 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7ba5d8bd dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x81711731 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8450b7b2 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x847a1292 dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8e47dce5 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9794e6ed dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9b1f6f40 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xaa73e4f3 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac7573a0 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xaf86a09e dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xafc4482c dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb46019a6 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb7f950b6 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xbe0a00ae dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc469204a dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd62413dd dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd68a099e timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdb576668 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe26202b6 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe2ad75a0 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe33a38b4 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf0ba4819 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf42251cc dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb-frontends/a8293 0x64dcd12e a8293_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9013 0x216637df af9013_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9033 0x3680ac70 af9033_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x0d7bfda2 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x21c9bde3 au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x5205c3eb au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x5d608454 au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x68acafb8 au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x9bbfc072 au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xc6a8d403 au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xc82a20e2 au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xe5df41e6 au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xe929630b au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0xc51f4a74 au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0x04efeaa6 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0xdb49ef95 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0x5a354b57 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0x9f31527b cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xcaca7989 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xf83660e3 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x44db4132 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xb13f67a8 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xebd88786 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0x4cb17cd7 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x7147a348 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x7198f0d0 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xb26034d8 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xbc6e5d92 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xd5229dd6 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x02267160 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x146903c9 dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x21936fba dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x37703003 dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x46373c4c dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x58b9343b dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x646f0d7e dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xa90ae65d dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xafc5781c dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xd0bc77da dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xdb490438 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xecd9b94b dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xee572fa4 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xeec5ef09 dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xf57848fc dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0x8cb7e3ae dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x0e850bab dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x5eb4f467 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x8d4bb5bb dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x9ee61b43 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xcae61e37 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xd90c38f8 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x5c14a347 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x6d105f6a dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x88b30800 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xc5fb288a dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x042b1584 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x0d9aaba9 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x12c1eac1 dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x1e6c7cb7 dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x2f16f6ab dib7000p_set_agc1_min +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x382798a2 dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x4155c7b8 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x6be03def dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x6e0f0520 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x9944b7a4 dib7000p_get_agc_values +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xa2fd0922 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xc099c297 dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xcee0456a dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xe2820f67 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xe6e6eef4 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xfef24f6b dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x067aff08 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x161ac623 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x33fa7d1f dib8096p_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x47718db8 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x5fc19245 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x6419b4f3 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x69aa30b3 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x8e3848ce dib8090p_get_dc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x8f2a563a dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xa3c6182b dib8000_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb4bf8248 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb78237b1 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb982c417 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xc0f7c60a dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xc196804f dib8000_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xc8935911 dib8096p_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xca974f5f dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xced4ea68 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xf58a4d39 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x3b2e7aa3 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x64eb80e6 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x6d20cf7e dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xb4c1b615 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xd0b45708 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x5775ca0e drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x8edbd8f7 drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x4e140f31 drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0x4b28c159 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0x00c1bfdc dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x2ac83b32 ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x13306601 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0x78a1b471 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x343868d5 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/it913x-fe 0x71700b78 it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0xfc1b6d63 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0x1b230324 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x99396637 l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0x9a248749 lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0xec2a9d8c lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x311db3fb lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x644a9f77 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x5a4adaee lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xd8f8f594 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0xc4812f77 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0xd70c3b38 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0xd0d681bc mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0x96aeaced mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x07473ef6 mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x6fb62126 mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0x7c3ce1f4 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x87c23795 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0xfd460d13 or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0x10b4abe5 or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x00230237 rtl2830_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0xb8a3feda rtl2830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2832 0x1c686407 rtl2832_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x23fbf7af s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0x46c85e40 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x22896e2a s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0xc5723229 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x3d7d16e7 s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x3f5fd9b9 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp8870 0x02491d46 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x9ad5e49d sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0x831b1424 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0x53e88618 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0xf59d4795 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x393d85fc stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0x2c341cb9 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0x7770c8bf stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x3d883cee stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0xe54b1cd3 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0x97f88fb8 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x11a3f60b stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x94e4936e stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0x94759ada stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0xa39fbc12 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0x6a4e61eb tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0x76131c4f tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x98005d18 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x3a4ab7bd tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0xea2624a9 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10071 0x12957d05 tda10071_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x03129144 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0x51950ad4 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0xda53d8a8 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0x40cbf389 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0x2f8ba1fb tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0x2dbbdae0 ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0xc9f90d55 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x410ee53e ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0xbc49c8aa ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0xbc5b4aa2 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0x0a0044e0 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x8a5e6c89 zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x2ec9ee4f flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x64beaa82 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x6d115dfe flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xa1cf22ff flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xc34ebe1a flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xe2d3656f flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xf633ca60 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x4b08ef6c bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xeecdae6a bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xf0e742ee bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xfb4e9cb1 bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x54ff9fd8 bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xd0aaa72a bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xe4f19fd6 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x0d894784 rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x53132509 dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x640386de write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x851f2145 dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x95e77eb8 dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x9b7c7630 read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x9cfa7b55 dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xc0a0fc2f dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xc6aae87c dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0xa6b76593 dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x253f93fe cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x3e957029 cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x78908720 cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x929ab1ca cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xca9981d7 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x591953d7 altera_pid_feed_control +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x84a2a200 altera_hw_filt_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x8d100bd5 altera_ci_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x1c0ad3ca cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x349f44b1 cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x5e8193d6 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x6d938f1c cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x9d243905 cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xabf94c13 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xc5d38741 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x6eb7a01e vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x8b5a6966 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x37575834 cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x88c53581 cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xe88f4d49 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xf8b6b54e cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x07676690 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x0f184e8c cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x751186dc cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x763d1b54 cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xe04c3174 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xe59a42a0 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x04775dd9 cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0c5225d8 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x1dbe85d2 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x234c25a0 cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x29019631 cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4216fc84 cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4bcd78a3 cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4d0cf939 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4fa189db cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x57dad43e cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x64ce11dd cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6920e3d5 cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6e2f1b61 cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x76c342f4 cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x80a63ad0 cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x8c231018 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x964ee0ab cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xbcfd5742 cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xd6acdf34 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xdf250543 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xe57f5cd1 cx88_free_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xf53f6939 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xfb685825 cx88_newstation +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x048cab58 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x17dfd57d ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x2b5c5c39 ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x36e910ef ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x38816466 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x63dfc97d ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x72205cdd ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7d9fbd6c ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7f905e8d ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x8b238ec9 ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x92261599 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x9678abf4 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xa99ce403 ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xba82770b ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xc8e6b781 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xcaae3231 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xe50a2cc1 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x0b02c896 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x11cb4cb4 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x172b66de saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x329399a0 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x73039031 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x79c0622a saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x8a381578 saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x8de989cb saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xa6e1c117 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xd5e1e246 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xeebd7239 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xefecdd26 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xf6313bb3 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xeb899d99 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x011a5ac6 videocodec_detach +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x629fc1bb videocodec_attach +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x8a5c8743 videocodec_unregister +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0xdbcc60d1 videocodec_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x006ceac2 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x34cd0086 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x35f1754b soc_camera_lock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x688aad56 soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x8bec3503 soc_camera_power_init +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x9b80bf51 soc_camera_host_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xa250044d soc_camera_power_off +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xc17ae8cf soc_camera_unlock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xe2d76d84 soc_camera_power_on +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x25c52d97 soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x2863728e soc_mbus_image_size +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x5f3e3558 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xa9546115 soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xfe2c3a07 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x071866f0 soc_camera_calc_client_output +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x5a10c707 soc_camera_client_s_crop +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x714ce50f soc_camera_client_scale +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xd37fe0db soc_camera_client_g_rect +EXPORT_SYMBOL drivers/media/radio/tea575x 0x6878bf18 snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0x8a832694 snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/radio/tea575x 0xeb556858 snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0xf4ca4832 snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x295a0863 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x5dde2cb4 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x66b97e8a lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xb14cef8c lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xc71fe957 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xd1e0ec1b lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xdcae87c2 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xeb80f27e lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/rc-core 0x02f997ae ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0xb379ff95 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/tuners/e4000 0x77064683 e4000_attach +EXPORT_SYMBOL drivers/media/tuners/fc0011 0xdf945597 fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x7c8a2803 fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x58521c21 fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x821de616 fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xbd09c6dd fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc2580 0x234d80ea fc2580_attach +EXPORT_SYMBOL drivers/media/tuners/max2165 0x98913b8f max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x92f47219 mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0x3afc76a8 mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0x11bf1eec mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x14d0a891 mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x545e7843 mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0xf93f8b07 qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18212 0x92121cb0 tda18212_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0x326bbbc6 tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tua9001 0x3e0fddcd tua9001_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0x6685775e xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/tuner_it913x 0x20ee7051 it913x_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0xbccf19de xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0x4dc30081 xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x00938096 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x17f342c7 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x24bbd309 dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x6ef5caaf dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7978093c dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7a841d86 dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x8ff9e8d6 dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xbf3bddd4 dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc55999ac dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xd0d4c6fc dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xe14f3d29 dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x3c427913 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x7d8a941a dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xa0aaa06b dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xb86afd49 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xbdf80e23 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xd2b823f6 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xee302a29 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x53c14306 af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x06992d86 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x1cdb7e37 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x33fb55bd dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x35b834d0 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x53711cb9 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x770244d2 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x77a02b0f dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x9413ebb2 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xae5a33ce dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd553785c dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xda6faed4 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x2103d0cf em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x4790ae06 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x146f6dd8 gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x1e714287 gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x327c1ff0 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x4767c3d5 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x67ae909d gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x6c927e0f gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x72cbffd5 gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x78bae435 gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xbf59bf27 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xc80cdf76 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xd881e7d5 tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0xdbde3331 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0xf01932fb ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x4adaf0f3 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x53c9394f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x5f96a661 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0xabe27502 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x0d4e594c v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x4679e3b1 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xd66b5fb1 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x0e9a0a9f videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x68022963 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x71e93b08 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xaf6f0ae9 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xb0e0ad25 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xea5905ef videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf2-core 0x04a7d771 vb2_querybuf +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x04b1cc8d v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x05f47816 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x06d1c25b v4l2_clk_put +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x07bcfb82 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0d46d10e v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0e1c9eb5 v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1071feb0 v4l2_clk_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x134c2785 v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x13d331e7 v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x140e371b v4l2_of_get_remote_port_parent +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x158d754f video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1734af7f v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2c421a60 v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2d77d9d9 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3047e2cf v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x30ac2502 v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x31e149b8 v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x34ef5c4c video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3541c613 v4l2_clk_unregister_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x36847d11 v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3b7216da v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3db7f213 v4l2_of_get_remote_port +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3e9e3a4c video_usercopy +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4615b5ff v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4725d6fd v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x47cd20b2 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4a4f6390 video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4f6b43e2 v4l2_clk_enable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x65e1e0c2 v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x65ff4080 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x683bc144 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x683e3dad v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6b8085c4 v4l2_clk_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6e3a1d9b v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x76526c18 v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x76abeb73 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a167aea v4l2_clk_get +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7f923f2a v4l2_of_parse_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x835c05d1 v4l2_clk_disable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8b8834c5 v4l2_clk_set_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8e474596 video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8ef1d41e v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x901c5c0b v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x90d00c5d v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x94507ce9 v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9707c970 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9732b1a7 v4l2_async_notifier_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9fb0ae8c __v4l2_clk_register_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa09c02f1 v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa9ff55b7 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xaa4ee207 video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xaffd501c v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb90cbedf v4l2_of_get_next_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb99a029b v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbac4a225 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbdf9231d v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbf7d61d4 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc12cf8f8 v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc18485bd v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcf37770c v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd056c447 v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd24ccb9e v4l2_clk_get_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd3d862b7 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xde319bde v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xde67f6c4 v4l2_async_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdf0d26c5 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdf0ef75b v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdf311bc1 video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe0027705 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6fce6f2 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe986f629 __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xeabbebb8 v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xeb384bf4 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf41d3aa8 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1cf150fd memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x29835d96 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x49ff13e5 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5a3c23ce memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x6bf9eaf7 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7478b203 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x76052e51 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa5987a36 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa9a3b99c memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xac88b5af memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xbdd643b9 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfb5a94af memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfde2e317 memstick_new_req +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1297b6f0 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x132016ad mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1349db9e mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x18a47642 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1bc1d78a mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1e99a744 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x23c855e1 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x33b503c8 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3a07f347 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3b4911dc mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3c2b6720 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4b43ea11 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4bc5c2bf mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x66ad0d64 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x67895a66 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x69b2d7f0 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7d190fb0 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x84504e2c mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x857c4a9c mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x86ea2ddf mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb5648fde mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc796a96f mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc948979f mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd0cc414f mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd0e6f00c mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe02a99ea mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe78cb065 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf3223e18 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf3988e27 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x05b136ee mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x067b0215 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0866eed3 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0db56f8c mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1fde3869 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x28020abe mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2aeaef9b mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3ce2a9c3 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3e2dda67 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6671d41b mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6987e687 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6cb03426 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6df5a285 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7bbfe24c mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7e25b868 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x833b22aa mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x83d3970a mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8a2078c4 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x948f10bf mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9598b4ac mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb941ac30 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdb244906 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe393e95c mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xefc1047f mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf75eecbe mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf8c8699c mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfda9b7a4 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x01442f05 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x31d102e8 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3c84a655 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5e077d4f i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6ec28f6e i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x73b1a634 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7d9355c8 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8f61f256 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8f6490b4 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9bbf3cbc i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa430578f i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4467bc2 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb8307ed8 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbf1676a8 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd11ff59f i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe177e160 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf8088e52 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf9927b0a i2o_exec_lct_get +EXPORT_SYMBOL drivers/mfd/cros_ec 0x1cc82468 cros_ec_remove +EXPORT_SYMBOL drivers/mfd/cros_ec 0x9fec8e55 cros_ec_register +EXPORT_SYMBOL drivers/mfd/cros_ec 0xd2260d5e cros_ec_prepare_tx +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x6a5dc0db pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x85f371e9 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x04b846dc mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x05d5b34c mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x28a5749d mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x49d50e17 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7748e5a3 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x80f4a51d mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8aba2955 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb39efe4a mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xbd16f6be mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc25e0083 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xdc7a9df1 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xe6941ded mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xeb5069cc mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/tps6105x 0x20881a75 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x51127e61 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0xe356351e tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x21f0057a ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xf02e2867 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x58765536 altera_init +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x89228e3e ssc_free +EXPORT_SYMBOL drivers/misc/atmel-ssc 0xe5e6d703 ssc_request +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x0e9755b9 pwm_channel_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5a8b82f9 pwm_channel_handler +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5d5c2951 pwm_clk_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x6a5e1f70 pwm_channel_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x73330c97 pwm_clk_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0xeb7f2c6f __pwm_channel_onoff +EXPORT_SYMBOL drivers/misc/c2port/core 0x493e3564 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0xba948b4c c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x395f3d12 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x97dcf6ba ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x05a51bc9 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x31dbd687 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x5ebd83ce tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x6a01875e tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xb61747ca tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xc08b11ba tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xc26e6ec0 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xc88669d1 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xdcb53aee tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xdf8dafbf tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xe69df786 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xf9e86dd6 tifm_unmap_sg +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xd911e478 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x1790930d cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xc048b760 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd6711a1d cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x37a9d874 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x507bedf6 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x8045ef6e unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xf8e45110 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xee764c76 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x1af240be lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x21b8831d simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x675d581a mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtd 0x6cf780e0 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/denali 0x07f2bee1 denali_init +EXPORT_SYMBOL drivers/mtd/nand/denali 0x832dd540 denali_remove +EXPORT_SYMBOL drivers/mtd/nand/nand 0x16150fd1 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x2b2a547c nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x492446fd nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0x8794737e nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xc3b00cfe nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0xe1b09438 nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x87bdf58f nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x8c63112d nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x9450dcdf nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x71f40bf5 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xa57c863d nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x57a31e57 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x867b06ca onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x9bc50aaf onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xe9dd6fa4 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xeb73f4c1 onenand_default_bbt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x02a8af79 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x18e36cf2 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x305a54e2 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6855fa6e arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x697021a0 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9a0bfaa7 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd4700558 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xebdadc43 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xee175d4d arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf5ecbe20 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x1952edc2 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x50ccfa7e com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xc1d87165 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/dpa/dpaa_1588 0x893dc3eb dpa_ptp_init +EXPORT_SYMBOL drivers/net/dpa/dpaa_1588 0xfe2b5769 dpa_ptp_cleanup +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x0ee4f2f1 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x30353773 NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x30b4caff ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x68b556d8 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x78582474 ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x89c717e5 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x8b9788b3 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa8564494 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xc44220d0 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xe36f1c4b ei_poll +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x5d7f32dc cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3fbbca51 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x903f094f cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9ae8861f cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9d3b484b cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa2bceb13 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa38f11dd dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xaf5e80b3 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xba05dc31 t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc8a200e4 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xccb774f1 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xcd7b5d9e cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe4b33c8f cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe66bae15 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xebd5de58 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf626af96 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xffe1f692 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0b0e7969 cxgb4_disable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2144fc34 cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2e32188a cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2f358e54 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3602adc3 cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x36b6cd6f cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x407eaa04 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x434b9989 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x435c762f cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4c2e3573 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5322bcce cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x55b6ec90 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x626a0c88 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x63e0bd2c cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6e2f6ec6 cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x856b6d86 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb7abd76f cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xba082afc cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbfd59e4c cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc4f4c775 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc5e6bec3 cxgb4_enable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd70d1b42 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd9df05bc cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe854a160 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xea8544e7 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf55dff29 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf7cff5ca cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xff58abcc cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x0e712340 vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x4f650da7 vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x9196d804 vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xb241ebdb vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xc6d39538 enic_api_devcmd_proxy_by_index +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xd42bcc41 vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x05c424a5 be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x68e08edf be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xbab62e22 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/freescale/gianfar_driver 0x79f28897 gfar_phc_index +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0193da1a mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x023bf679 mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x04bffac0 mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a4d9170 mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0aca3cf9 mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x11bda241 mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31c82000 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x582e225b mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5c6fc367 mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x617036f9 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x62de4975 set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x64178eb8 mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x87b09422 mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x930eb685 mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x95c03144 mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa2bd5a1b mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa547576c mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4f93371 mlx4_set_stats_bitmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbbab5abe mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd644dca mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbf24c68e mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc1eff8dc mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc34e5a33 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdf82ded2 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe16e5863 mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf59440a4 mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0159d89b mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x02d7fc43 mlx5_cmd_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0ce8d9d8 mlx5_core_query_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x19ed59ac mlx5_core_dump_fill_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x30d65568 mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x376c5c9e mlx5_core_destroy_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e314820 mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x489859ba mlx5_core_arm_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x582b048e mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x62bacc28 mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6eb8c38d mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x75a65bce mlx5_cmd_free_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7c5de7f1 mlx5_dev_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81df9aa9 mlx5_cmd_comp_handler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81f48342 mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x824807c3 mlx5_cmd_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x895b2448 mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8b61a510 mlx5_core_create_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9216dab9 mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9776f700 mlx5_core_get_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa5ae1250 mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xabbc56c2 mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc42580bf mlx5_cmd_alloc_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcad7a3f1 mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xea306b3d mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfa12809e mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe289560 mlx5_dev_cleanup +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x2865fc55 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x3b40df7d hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x687f177a hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa977007c hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd592fa8a hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x02950c86 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1fa3e7ad sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x57cab8d2 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x77185bf8 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x81feaa7a sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x928599bd irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa25e620f sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb0373fb6 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd027b7c1 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xedc70002 sirdev_raw_write +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mdio 0xddc98749 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mii 0x1fd684a7 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x6140075a mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x864aa952 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x9602451d mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x9d185168 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x9d4e6216 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xabd8d5ee mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0xe5c6fba4 mii_check_media +EXPORT_SYMBOL drivers/net/ppp/pppox 0x3c03556b pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0x8a17602e register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xca0adeb9 pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x422ef1bf sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x10952310 team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0x17709078 team_options_unregister +EXPORT_SYMBOL drivers/net/team/team 0x9e6445ce team_option_inst_set_change +EXPORT_SYMBOL drivers/net/team/team 0xa5709341 team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0xc4d73852 team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0xc6afd151 team_options_register +EXPORT_SYMBOL drivers/net/team/team 0xd57f5765 team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0xf0a40360 team_mode_register +EXPORT_SYMBOL drivers/net/usb/usbnet 0x395c6e70 usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0x58775509 usbnet_manage_power +EXPORT_SYMBOL drivers/net/usb/usbnet 0x5895d8cd usbnet_link_change +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1108a751 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x4d5274d1 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x51c5ee5e unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x53cf8888 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x58214680 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x76f9bdcd unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x978fa1ad attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb24c5847 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xbe1d08bd hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd2b769aa hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf4bb1ba4 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x0c805f56 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x18b9095e stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x595fe395 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x5d2d16d5 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0b5e60a0 dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x13e3982b ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x152a8624 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x3ca991ac ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4b7852e8 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x53358ce3 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x748a3645 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x89a1ed5e ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9245a9d3 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9fce9505 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb3636442 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf03a6c93 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x05bd7ea0 ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x1b5ac32d ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x2fb4b2c2 ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x5e697463 ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7d54891d ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8246be6c ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x895f9dc2 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf096710 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xfd59464a ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0199ec46 ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x17505ceb ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x2407833c ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x27cf1694 ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4c6ddcb4 ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4cf4fd95 ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4e1380ee ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x9ea146b4 ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xa52d3383 ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb6f6d23f ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xc1e41675 ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xc78c1deb ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xce447c7b ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xeaa328d4 ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3635bc76 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa55ad080 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xb6189796 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf2d17b4d ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0320f1ce ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x06a873e6 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x06c018d3 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x06f27505 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x07859cb9 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x11d07fc0 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x12c6a126 ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x12db1d37 ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x159f55c2 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15c510dd ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17173b32 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x19d7ddc7 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x271d734e ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a4d2260 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b4a91d1 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x32d27892 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3713c446 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x375f8d23 ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x37d7a38b ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38247091 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3827bd79 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x39e538c6 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a002fba ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a21b4a2 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x400b621a ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x418068ea ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48cd0ee7 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b08d4d8 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c0d1015 ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c316665 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x50fc25bf ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x55d664fa ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56b97668 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x600b8018 ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x625b4fc2 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6489c3ee ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x65e47034 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x662ebc75 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a9c3581 ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ad527f0 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6f938ab6 ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7525fd3e ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75a945ea ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ad4fc4e ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80495113 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83c60355 ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x85cf237b ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x89a84385 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8aed1126 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8af439fb ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8dc8de2d ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8e88dc1c ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x92396e09 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9322285c ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x936da040 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x93e77014 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9497f970 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97a2dac5 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f8ca310 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa3e057fe ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa83597cf ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaa67a4d1 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad0cf7c3 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad724627 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0436b27 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb101fd9f ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8513baa ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb3ba0b2 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbbfa93b ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbeabb56d ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf99af5f ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbfc8ecbd ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0332448 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0981ceb ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0ae8877 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2700836 ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc6f63dfb ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7934cfe ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca032e8b ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2337d74 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd4f7911f ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd7fa02ea ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda1b251a ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdae7ea00 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdda4d624 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe0551826 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe23f4fb0 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe996cc39 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb3f952f ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xec329663 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xed79f323 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xee0384ee ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeedefb27 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf6bfd25f ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf866173e ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf886d2ce ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc3e9972 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfcc4e184 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/atmel 0x10f5011d stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x6afde9d8 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0xb86ca8b2 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x1b3ee016 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0xcba40f8d brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x008df5c4 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x28970679 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2dc227f8 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x532ce354 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x5db64ecf brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x6b3a211a brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x71a9f2e7 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x95fc6650 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xaa2958e7 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xaefde3bc brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb653147f brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xd02317e7 brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xf271d7bd brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xfb044021 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x05236b46 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0f5ac832 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1fd59b08 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x25f41c0f hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x393790ef hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x43227a08 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5049555a hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x59ac9d8e prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x73f9f40d hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x851be114 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8523af92 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x86017573 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8effbda2 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x93b7ca4c hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x99d28fb5 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xaa3d23bb hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb6986d7f hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb7bda996 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb8ee32b9 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc7f102b8 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc8874e9c hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd33bf91e hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd34204bd hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe03377b1 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf69bd265 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0db5760a libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1eeb742c alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2062b155 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2ff34b48 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x39184146 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x43073382 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x44513410 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4aebe4a1 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x61804dbd libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x66166d2c libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x71f8b8f8 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7627a72b free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa4b4b5ee libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb7827a07 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xce3a6596 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd45356cb libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdd9e5ac1 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xea13e6be libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfa15b1ec libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfd13115f libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfe101a59 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0007dcb8 il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x037c3dc6 il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x05a88c46 il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0830657e il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x094378a6 il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x09d1769b il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0c115937 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0cecc90f il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0d496e0c il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0e9ecef7 il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x12c489be il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x14f3a01b il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1a53da57 il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1c99a79e il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2299b47c il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x22c505a5 il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x290084e9 il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x293af3c7 il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2f09f1e0 il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3214d417 il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x386e34ad il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3c0ee385 il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3e1e307b il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x40226590 il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x419f8ff5 il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x44f2d61d il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x45c2f169 il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x483d3bbf il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x48dc1f54 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4aa39103 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4ef9c46d il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x50955035 il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x50c35545 il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x511491d1 il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x56306096 il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x564c6740 il_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x57ae3bc8 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x61d454d6 il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6235f70f il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6451c7da il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x64d9220e il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x662be57a il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x67ff02d5 il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6a002d33 il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x705fd01c il_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x726450c4 il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7338c6ce il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x734d9136 il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x74cd6446 il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7990c1bd il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7b6c271f il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7d7b3ae5 il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x84b31286 il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x88faa988 il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x89c3c8aa il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8d85fdad il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8e4d3bb8 il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x937c0542 il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x985a8174 il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x98892baa il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa24cb05b _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa262f064 il_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa63a7b08 il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa701b508 il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa7858eff il_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa8cee925 il_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xab558c9e il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb3ec73e5 il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb7bd33ff il_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbaf45df1 il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbca669ff il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc39cf12c il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc400adbe il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc4050719 il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc46057ff il_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc54359a5 il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc88db4f9 il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcf1d87cd il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcf6fb110 il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd14d709b il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd157759d il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd3521305 il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd5069e22 il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd87b69c1 il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd9558caa il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd9772646 il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd9d69fad il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdc3534d2 il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdf925564 il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe1ecb090 il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe435493a il_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe647f7bc il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe6b6a556 il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xedb8a720 il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xee6b9309 il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xefcf7f7b il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf1f7e9b8 il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf4d6bf40 il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf501278b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf73bdebc il_set_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfac96613 _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfd8741e6 il_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfe1b09d3 il_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x08ee1e7d __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0d9eb5ff __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0e7bc05f __tracepoint_iwlwifi_warn +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x201337b4 __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x249e4b06 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x36dcef55 __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x4919d1a5 __tracepoint_iwlwifi_dbg +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x67381a2a __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x79e9bf26 __tracepoint_iwlwifi_crit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x7edec07d __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x8bfcc307 __tracepoint_iwlwifi_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x9a12c9c5 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xc0827b2f __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xda36f3a4 __tracepoint_iwlwifi_err +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x21fa9dce orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x27e6baaf orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2acbbf0c orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4ec3ab9e orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5bb43b6a orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5dea5bf1 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x893dce10 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x915c1bea orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa0c7c378 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa2bb24aa orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc3ce73ff orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc42b0029 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc5a02622 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc6ca6bbd __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe10d2437 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe3f311dc orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf1efdf76 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/btcoexist/btcoexist 0xf53086da rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x051b8c82 rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0c4a8fd8 _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x140560ea _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x14f73a33 _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1c39a6a0 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2743842a _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2aee645a rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2cb994ab rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3813ed9c rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3c49b1ac rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3dab5c73 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x473fdc75 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4a4d1433 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4c72976b rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x52249a92 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x562985a6 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x593118b4 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x61ddd25b rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x63f3d924 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x647abc37 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6568d9b9 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x70116912 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8f41093f rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x93096c26 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x94154106 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x96a203e8 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x972146bc rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x973a2070 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x98abf680 _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa63fcefa rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa846bec4 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xae5a80cf _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb03dd8f2 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbad510e1 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbbf25009 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc4781905 _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc8433f65 rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcc8b6d3a rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd55cf6b8 rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd5a42529 _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf7d47b35 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x147ab0c5 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x7b4a4925 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x14d1f8c0 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x3fc87d97 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x70f92c3e rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x9bd6c524 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x023aeeaf rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0e8241b1 rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x119c34c5 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x207fbb70 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2735a71c rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2ba0a2bd rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x353e78ba rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x35e5f95d rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3661f388 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x41828b77 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6514fdd0 rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6ae7edd0 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79188a02 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7b1e9f5c rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7d46975e rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x9637f6b3 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb7a3339d rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb7b4f55f rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc60a295d rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe0485caa rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe3730d62 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfa8be1ac rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x4da27ffc wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x903ec973 wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xc821426b wlcore_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xd8cc2b05 wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/nfc/microread/microread 0x948dca03 microread_remove +EXPORT_SYMBOL drivers/nfc/microread/microread 0xe910ad5a microread_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x99300cae pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xc3c9be18 pn544_hci_remove +EXPORT_SYMBOL drivers/parport/parport 0x11e844b2 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x12095124 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x136eaf5a parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x1438e717 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x226019c5 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x2e8bf2a8 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x30ec28d0 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x330d1025 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x37dc101b parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x3d63f8af parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x49137eae parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4e6073b5 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x5de134fe parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x6a47782a parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x6b414d00 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x7bd6dcce parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x7e93fe04 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x82e7ff0f parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x83f2c223 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x859b3db2 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x93d7a41d parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x9d26c0a3 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xac3e54fe parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xba1660bb parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xbf7fa00c parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xc0e8b2f5 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xc12f5db9 parport_release +EXPORT_SYMBOL drivers/parport/parport 0xded6c608 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xe0bfd659 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xf9608b0b parport_write +EXPORT_SYMBOL drivers/parport/parport_pc 0x1fa0d094 parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xba48224d parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0385c248 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1ab93a06 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x20787686 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3874a2bc pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x38ebdfe8 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x481feb75 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x85b8b166 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x87f334d3 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa3f0c406 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa716c23f pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb6a7b1b4 pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc3e1629f pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc4b75508 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc5931204 __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcbb67596 pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf643e14d pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf7745717 pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xfde33f7c pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xfee79edd pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x08ced9d8 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x119eab6f pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1223a972 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x21596d46 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4b2bc65f pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7909be34 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa2f75c81 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb6f20459 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xbf81c95c pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcdccc5ff pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf2969f3d pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x8780f669 pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xdcd3c28f pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pps/pps_core 0x27b62edf pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0x5bc15647 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0x7276ef50 pps_lookup_dev +EXPORT_SYMBOL drivers/pps/pps_core 0xd73fa27c pps_register_source +EXPORT_SYMBOL drivers/ptp/ptp 0x0ce2457c ptp_clock_unregister +EXPORT_SYMBOL drivers/ptp/ptp 0x572e9096 ptp_clock_index +EXPORT_SYMBOL drivers/ptp/ptp 0xd471ce29 ptp_clock_register +EXPORT_SYMBOL drivers/ptp/ptp 0xf41169a4 ptp_clock_event +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x0286a82d rproc_shutdown +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x06fc9ae4 rproc_da_to_va +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x3ad869ff rproc_report_crash +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x7589465c rproc_add +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x8031579d rproc_vq_interrupt +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xc471601d rproc_del +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xc49e99ec rproc_boot +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xeeac76c3 rproc_alloc +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xfb977f25 rproc_put +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0011e459 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x01d9677d fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x132dabf9 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x21ef4b64 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x378c824e fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5da1215a fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5dd61249 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x700a0e97 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8e5759c0 fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa18ff4a1 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa6ca5922 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd7491806 fcoe_ctlr_destroy_store +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0008e9db fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x029d2dc9 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x05ff4e5a fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x07f01cad fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0aed8fb6 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0c690200 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x13a78660 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1df62b1b fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x24b3e88c fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2a0c7da5 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2b4f1724 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x30e04eaa fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x367b1ed5 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x437ffe7f fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4523c990 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5032b75f fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x518f8715 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5cb8a139 fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5cef5b92 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6012ad02 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x62581efd fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x673721db fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x68e053b3 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6ec9f894 fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x71238127 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x712a93d6 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x715baed6 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x786045fc fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x79779ce3 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7e0764b9 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7e66a531 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9ff68e8c fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa48db927 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa5f0828c fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb010aeee fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb19441fa fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb231832f fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb9c17e84 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbaa8e1ee fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbe82480c fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc1d75e3f fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc2275e67 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc6863603 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc6e0f574 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd0c8e288 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd1357091 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd2a8ef6a fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd95f28af fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdd809321 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe127d92c fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe23b2beb fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe34c7f9e fc_linkdown +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x16432eb6 sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x2beac99c sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xa1504fb2 sas_wait_eh +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xaed118ed sas_resume_ha +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x37584231 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x07461a51 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x07b8c9d3 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1e2095df osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x217bb4cf osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x36baf6a6 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x422b7920 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x50e74389 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5802ddce osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x600a0e41 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x61b410e1 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x66bf0f16 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x68c9a29e osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6b2cb02f osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x758defb8 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7604bd22 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7c8c3e08 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7f5d636d osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x811a14a1 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x87e87d34 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x886529d1 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x97abff03 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x98d5a9d4 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9eac9bda osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa49203a6 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa6e7b16e osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa7f34de8 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa9cbdcdc osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb4ffdc93 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb754fd9e osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc476a014 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc821313b osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd3159e12 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd53b9134 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf0767b8c osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf50a2508 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf563e581 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/osd 0x16b193d1 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x1e0bd35f osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x86f0837c osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xbef7c982 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0xf3ee8524 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xf8e9dfc2 osduld_device_same +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x015ab50e qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x247cda2a qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x29c36180 qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x3ad67c82 qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x58e0144c qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x850c7c24 qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x9e6b585c qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xb7341534 qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xb7900fe1 qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xc2f2bea6 qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xf8a03367 qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x0e35dcd8 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1a3eac19 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x48e3b032 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x887451e7 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc2bb423e qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xee40e006 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x01d055a6 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x355843c9 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xabc5b24a raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x088ee9c3 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x18a8eec7 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x194adeaf fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x21406dcd fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x46703c27 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x719b32ff fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x768e73df fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa7490421 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xad420681 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb71f5178 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbb55f9f9 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd3afb6c8 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf49166f5 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x04fa6106 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0ac33724 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x19500a98 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x23166095 sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x27804002 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x30686aab sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3a059f55 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x46148050 sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x558cdff0 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5ad9902f sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5c621d76 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x623fa615 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7e8f3508 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9ea31d5d scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa43af1b7 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa5bc12d4 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaabc6f49 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xab730cee sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaec428f5 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb6a8a5c1 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbcac16c9 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc806642c sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdd4c3aa7 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xebb7f05f scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xefc00212 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xefe8b076 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf8a25f8c sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfed5a673 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x5e9ef5a3 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x79eb5f00 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7e977d20 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x99127d3f spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xabde18d2 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xaf06179b srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xed756f28 srp_rport_put +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xfa23e58c srp_reconnect_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xfc7172a7 srp_rport_get +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x705d3893 ufshcd_runtime_resume +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0xdf2fc2b7 ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0xf938c1ca ufshcd_runtime_idle +EXPORT_SYMBOL drivers/ssb/ssb 0x02519cd7 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x25a1b996 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x32f6d84d ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x33ac42e1 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x3b9181b5 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x52738041 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x5c2c795c __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x6120f03f ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x6aad3cd9 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x774a2e23 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x7bbc2dd1 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x9b607a28 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xaf391e11 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0xb01d8583 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xbbbff27f ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xcb559497 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xcc497941 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xd2361441 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xdddf9854 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xe2952065 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xecac8aea ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0x2d3ec11d fwtty_port_get +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0xdfebfb5e fwtty_port_put +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x4d1f941f adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xb295c23f adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x34278222 ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xd80ef121 ade7854_remove +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0bce7eef lnet_counters_get +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x126c4291 lnet_create_reply_msg +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1366b7ac LNetSetLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x19670622 LNetNIInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1b191752 lnet_msgtyp2str +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1e1d257c lnet_copy_iov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1fe16fd5 LNetGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x204b8151 lnet_counters_reset +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2aa9953d lnet_cpt_of_nid +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2ac93e90 lnet_connect_console_error +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x33202a6c LNetGetId +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x33441555 lnet_finalize +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3558e584 lnet_iov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x37b265bf lnet_copy_kiov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3c779ee0 LNetPut +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3c90f53b lnet_set_reply_msg_len +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3f4f5b46 LNetNIFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x41db9c06 lnet_connect +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x473ad33b LNetDist +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4a40927a lnet_set_ip_niaddr +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4b8b388d lnet_extract_kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4bb00492 lnet_copy_iov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4f9cb871 lnet_extract_iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5811a721 LNetInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x58a1ca89 LNetMDUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5fee352c lnet_acceptor_timeout +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x61f784b2 LNetClearLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x64cdea3a LNetCtl +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x65a291f9 lnet_register_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x6f7be171 LNetEQGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x722c76e5 LNetMDAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x7d59a7fe LNetMEInsert +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x854ab844 LNetEQWait +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8a3064f2 LNetSetAsync +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x9de986d3 LNetEQAlloc +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa8c2760b LNetFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa414970 LNetMEUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa9b477e LNetMDBind +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb0926bc4 lnet_notify +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb75f7953 LNetEQFree +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb82c686c lnet_net2ni +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xba4d280e lnet_parse +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xba5566d2 lnet_acceptor_port +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xbf0760a2 LNetMEAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xce6dc146 lnet_copy_kiov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xd1111e09 lnet_kiov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xdc043e7b the_lnet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xf1b316bf LNetSnprintHandle +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xfc6eedd9 lnet_unregister_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/selftest/lnet_selftest 0x078db139 lstcon_ioctl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x04ab3d2e seq_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x09889de8 client_fid_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x1c4bb5f9 LU_OBF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x2b81563a client_fid_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x375e6f8d LUSTRE_BFL_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x8accfd33 seq_client_alloc_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xae61cff5 LU_DOT_LUSTRE_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xc729e26e seq_client_get_seq +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xc997a02f LUSTRE_SEQ_SPACE_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xd4fc6a03 seq_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xd7d3c37c seq_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xecee2727 LUSTRE_SEQ_ZERO_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x24e4cf6d fld_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x2b62c01b fld_client_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x80e27036 fld_client_del_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x888f5f49 fld_client_proc_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xc02f0d26 fld_client_add_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xdc564352 fld_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xf34daffa fld_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0009586d libcfs_sock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x000c507f libcfs_debug_dumplog +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x01db5172 cfs_percpt_atomic_summary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x02ed7f45 libcfs_sock_getaddr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x03387ca6 cfs_curproc_groups_nr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x04d3ce6a lbug_with_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x06401e01 cfs_hash_is_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x069f9bb2 cfs_wi_schedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x08917712 cfs_hash_for_each_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x08ada613 libcfs_console_backoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0b4b1546 libcfs_lnd2modname +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0d1b8a30 cfs_percpt_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0de6c369 cfs_cap_lower +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0e4820ab cfs_percpt_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0f5eff79 cfs_percpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x117c8a95 cfs_cpt_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x123b6908 cfs_hash_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12426266 libcfs_run_lbug_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12c54b77 cfs_hash_findadd_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x15565c7f cfs_cpt_set_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x17ac7833 libcfs_deregister_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x18c503cd cfs_percpt_lock_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1a60d439 cfs_parse_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1d41c4c0 cfs_hash_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1d5a3928 cfs_timer_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1e8cdb47 cfs_race_waitq +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x23f6f445 cfs_restore_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2663147a __cfs_fail_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x277e62bd cfs_hash_for_each_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x27b6d3ba cfs_ip_addr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x29aafd0c cfs_hash_hlist_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2a641ef9 cfs_hash_dual_bd_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2b1e0458 cfs_get_environ +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2dbe54b2 cfs_trimwhite +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2efcc0e6 cfs_block_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2fb7eae8 cfs_hash_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x30986343 cfs_range_expr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x31fc5082 cfs_crypto_hash_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x35998edb libcfs_sock_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x377f93fb cfs_srand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3834f243 proc_call_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x38828b92 cfs_cpt_unset_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x389ca502 libcfs_debug_mb +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x39fdcd2b libcfs_debug_set_level +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3a62a183 cfs_cpt_set_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3c1285bd libcfs_subsystem_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3c8c2510 libcfs_sock_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3d5e6098 cfs_race_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3e5e7727 cfs_hash_rehash_cancel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ea730c0 cfs_gettok +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ef0d90c libcfs_kkuc_group_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3f0d9281 cfs_wi_sched_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4087e2b4 cfs_hash_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x411db754 cfs_crypto_hash_final +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x413056d8 cfs_cpt_weight +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x41ab33a1 libcfs_ipif_free_enumeration +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x42e22feb cfs_cpt_table +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44688a0a cfs_block_allsigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44839bbb cfs_rand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44f07cfc cfs_pause +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x468bace1 cfs_hash_rehash_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x47fdb4d1 cfs_timer_is_armed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x48f163c6 libcfs_str2anynid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4a99af72 cfs_clear_sigpending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4b982291 cfs_hash_bd_peek_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4d89e988 cfs_block_sigsinv +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4f1f2fa5 cfs_crypto_hash_digest +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x50345570 libcfs_str2net +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5051b6d2 portal_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x509d38b0 libcfs_net2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x52e9cfc1 cfs_cpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x53b383e4 cfs_cpt_unset_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x54fd9a71 cfs_percpt_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x58a7ee00 libcfs_catastrophe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5946ec2b cfs_percpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5b20921a cfs_hash_for_each_nolock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5c013b81 cfs_expr_list_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5ce62c0e cfs_cpt_table_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d3be65a cfs_crypto_adler32_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d73c3e3 cfs_expr_list_free_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5dce9e80 libcfs_lnd2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62289d65 cfs_array_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62f56738 upcall_cache_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x63b4967a cfs_hash_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x64685fef libcfs_console_min_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6564c55b libcfs_console_max_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x65dd9f0c libcfs_run_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x66136d2d cfs_timer_arm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x67398404 cfs_wi_sched_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x68497dbf cfs_cpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6930c10d cfs_crypto_hash_update_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c4cadc8 cfs_hash_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c605eaa cfs_cpt_unset_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c905b5f libcfs_watchdog_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6dfa9ea1 cfs_crypto_adler32_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6e6af71c current_is_32bit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6f928e1b libcfs_debug_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7190502f upcall_cache_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x71f662a3 libcfs_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x72f4e5f9 cfs_hash_bd_move_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x75161168 upcall_cache_flush_idle +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x752858fb cfs_cpt_table_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7562cd14 cfs_hash_del_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x771695b1 cfs_hash_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x785b7372 cfs_hash_dual_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x79009be4 libcfs_sock_listen +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7a3d49ae cfs_expr_list_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7a47b94d cfs_hash_size_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7b0b748a cfs_ip_addr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7bf6c936 libcfs_sock_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c078c80 libcfs_sock_abort_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c73bc4b cfs_hash_rehash +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c7986cf waitq_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7d93cded cfs_cpt_of_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7e6f6485 cfs_ip_addr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7f40de0f cfs_hash_debug_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7fda989d cfs_fail_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8151c3aa cfs_cap_raised +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x83d795e4 cfs_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x841679dd upcall_cache_get_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x856f6ba0 libcfs_kkuc_msg_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x857aaea7 libcfs_register_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x87f3bb87 cfs_hash_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c6be9ab cfs_percpt_lock_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c85e4e6 cfs_crypto_hash_speed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8e61d47b cfs_cpt_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f12bb52 libcfs_log_goto +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f45f10d cfs_init_timer +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x91504e8b libcfs_kmemory +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x940ed192 libcfs_stack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x949221dc cfs_hash_cond_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x95620e8c cfs_wi_deschedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x97b0b9bc cfs_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9879b229 cfs_get_random_bytes +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9f82f712 cfs_trace_copyout_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa1cbf250 upcall_cache_flush_all +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa2b68b2a cfs_array_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa3a0a4ec libcfs_sock_getbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa6b9dee6 libcfs_kkuc_group_rem +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa711aec5 cfs_cpt_table_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9088531 cfs_expr_list_values +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9dc74e2 cfs_trace_copyin_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9eae690 cfs_str2mask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xaaf59b75 cfs_cpt_set_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xab887583 init_waitqueue_entry_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xad019238 cfs_str2num_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb00dfd91 cfs_hash_dual_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb53b5569 cfs_cpt_spread_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb5811937 libcfs_sock_setbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb883b006 cfs_percpt_atomic_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbab577e8 cfs_hash_for_each_safe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbada117b cfs_cpt_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb9cb508 cfs_curproc_cap_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbd5d492e cfs_timer_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbf7a37f1 cfs_signal_pending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc0ea7fc0 cfs_expr_list_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc1708189 cfs_hash_dual_bd_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc1b20836 cfs_hash_add_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2551d32 libcfs_kkuc_group_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2911d96 cfs_expr_list_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2dfd791 libcfs_console_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc39fd2f9 libcfs_panic_on_lbug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc3eb614e libcfs_ipif_query +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc47433a6 cfs_capable +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc49b1c62 cfs_percpt_atomic_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc77a24c3 cfs_cpt_set_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc9b78bb4 upcall_cache_downcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcb385db9 libcfs_debug_binary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcbab8493 schedule_timeout_and_set_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcc20e694 libcfs_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xccc45639 cfs_free_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcd38904c cfs_wi_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xce1a88f2 libcfs_arch_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf61bacb __cfs_fail_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf678304 cfs_hash_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd0aa642a cfs_hash_rehash_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd0d8d08a cfs_cpt_unset_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd2965f33 cfs_hash_bd_del_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd46225d8 cfs_percpt_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd48d8f72 cfs_hash_dual_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd6a52be3 libcfs_printk +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd7bbf963 cfs_hash_dual_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd7c4f765 add_wait_queue_exclusive_head +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd9541990 cfs_strncasecmp +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd96f406d cfs_cap_raise +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xde17bb8d libcfs_isknown_lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdf2789c0 cfs_curproc_cap_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdffc951d cfs_timer_disarm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe3bf6897 cfs_percpt_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe6555032 libcfs_ipif_enumerate +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe7b54314 libcfs_arch_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe94553b9 upcall_cache_flush_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe9b11552 cfs_hash_debug_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xea4988bf libcfs_sock_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xec1f56d5 libcfs_str2nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeccafa5c cfs_cpt_online +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeceac781 cfs_fail_val +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xedf3a25a cfs_timer_deadline +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeed48ba7 cfs_hash_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xefbf6d86 upcall_cache_put_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf2c02048 cfs_cpt_bind +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf372d1c2 cfs_firststr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf440bb38 libcfs_kkuc_group_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf5e4a175 cfs_hash_bd_add_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8a8644b libcfs_id2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8efb8c5 waitq_timedwait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf94025d1 libcfs_str2lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfacb8667 cfs_hash_getref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfe565fa9 cfs_crypto_hash_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xff0f98a6 libcfs_debug_vmsg2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x3d7035a7 ll_iocontrol_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x482287fc ll_direct_rw_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x960273ca ll_stats_ops_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xa0ef35e0 ll_osscapa_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xcd3cde92 ll_iocontrol_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x26952c77 lov_read_and_clear_async_rc +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x27095531 lov_stripe_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x2aa1dac1 lov_device_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xa288d560 lov_stripe_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xf311ef64 lov_lsm_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xfd12bd74 lov_lsm_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x24e1671d lprocfs_counter_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x3bcbdc4b lprocfs_stats_alloc_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x497daa88 push_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x4d8d6dfa lprocfs_counter_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x509db3c6 fsfilt_register_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x8553b369 obd_memory +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb3d30815 fsfilt_put_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb4f8ee63 lprocfs_read_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xbbb9a514 fsfilt_get_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xc85f4c13 fsfilt_unregister_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xd210d270 lustre_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xdee28fbe l_dentry_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xeb9705e1 pop_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x14a47f31 it_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x9c22b84f it_open_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xb57d8447 it_set_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xf46a886f it_clear_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mgc/mgc 0xdc287f95 mgc_fsname2resid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x00638090 cl_locks_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x00f2c980 llog_copy_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x01665e34 class_parse_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x017a9190 llog_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0341e82e cl_page_list_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x035852d0 lustre_swab_llog_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x03d64375 cl_page_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x03f03e3b cl_pages_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x04044ed6 llog_obd_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x04cfb69d class_uuid2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0530c7b8 lu_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x057f6d4b class_find_old_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05af1920 dt_quota_glb_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05f84e88 LU_BUF_NULL +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x06a21a40 llog_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07258613 class_find_client_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x072e0407 lustre_in_group_p +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07500ad0 cl_page_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x078fc252 cl_lock_hold_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07aa68bb lustre_swab_lustre_cfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0836daca lprocfs_register_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x083942ff class_del_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x09918a53 cl_req_page_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0a2a9c30 cl_lock_user_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0a8d6513 llog_cat_cancel_records +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0ace33e1 cl_page_list_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b2420ed lu_object_invariant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b4abbb8 llog_open_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b73793c cl_page_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b989ace lprocfs_rd_num_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0c7b4d13 class_exp2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0c9bcaab cl_enqueue_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0ccf4be4 class_export_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0cf99bff dt_acct_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d0061d3 cl_page_list_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d5daa37 cl_page_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0e64c045 lprocfs_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0f6c0c24 class_put_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fe91547 obdo_to_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11495519 lprocfs_write_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x116ba7ec lprocfs_exp_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x117f74a8 cl_sync_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x122b2d91 cl_io_lock_alloc_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x12c45708 cl_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x139ca1e5 cl_object_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x142215ef cl_page_is_under_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1491dc30 lu_context_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x14a3835e llog_cat_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x14e430a3 obd_llog_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x15409141 lprocfs_alloc_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x154dfb80 dt_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x15f927cd cl_object_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1678a59f cl_lock_hold_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x16e96a81 lu_context_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17260880 obdo_cpy_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x179a5867 dt_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x188fea3f cl_page_vmpage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x18c1cda7 cl_lock_closure_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1a7b617f lu_cdebug_printer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1ac829b5 cl_lock_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1bf029bf cl_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1c0d8c4d dt_index_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1cb1e4aa lprocfs_exp_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1e4914f8 cl_lock_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1e491736 lu_env_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1e8eb8a2 class_conn2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x20054fa4 cl_page_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21179068 cl_lock_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x211e36b3 lustre_idmap_lookup_uid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21307495 lu_buf_check_and_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21820e0a lu_dev_del_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21e26ee5 cl_page_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x221826f1 class_parse_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x22a1599c lprocfs_seq_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x244790aa cl_page_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x24f33fd2 cl_lock_nr_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2547efae lustre_uuid_to_peer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x259ebac6 obd_alloc_fail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x268725c8 llog_cat_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x275cdc7a cl_env_reexit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x27f75ba1 cl_page_list_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x284077ea cl_page_make_ready +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x28eff37a cl_io_is_going +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2944d1b5 llog_osd_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x297cf5e0 class_handle2object +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2acb6b92 lprocfs_rd_connect_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ae1cd79 kuc_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2b4c48e9 server_name2svname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2c89dce6 dt_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2f6c253f cl_lock_user_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2f8dd778 lu_context_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x308578b5 cl_io_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x31781ba1 llog_thread_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x31d78c1f llog_init_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x321fdc97 lu_context_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32817862 cl_req_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3312e442 cl_page_list_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x331d7f0b cl_page_clip +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3328ae44 cl_lock_descr_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x34591677 class_detach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x35885862 lprocfs_nid_stats_clear_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x35ccf7df cl_lock_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x35ed87dc cl_req_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x367c0055 lu_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37050e39 cl_io_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37ed6e4b at_early_margin +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38318eec cl_page_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3851f7d2 llog_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38fb0c90 class_match_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x393aa07e cl_page_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3940d603 local_file_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x39c8580f class_handle_hash_back +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x39e6fcd0 cl_2queue_init_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3a005065 dt_otable_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3af00eb4 cl_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3c3dcd61 cl_io_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3c52de8d lprocfs_rd_server_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3da2aa39 lprocfs_alloc_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3e8ae5f6 class_num2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f2d6b77 cl_page_is_vmlocked +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f429589 obdo_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f78ccef llog_exist +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f9c83c1 capa_cpy +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4010cad0 cl_object_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4047d29b lu_object_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x404bd7a7 class_handle_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x408421cf dump_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x40bc90af cl_env_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x41c9a482 cl_io_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x420f436d obdo_refresh_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x421d4abc cl_page_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4385e1c7 md_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44b295f7 llog_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44e41abb lustre_posix_acl_xattr_filter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x450942b5 cl_io_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x452d4409 capa_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x45d723d0 cl_page_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x462bfab9 lu_object_put_nocache +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x46f5239d dt_txn_hook_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4739ac5e class_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x474ed5bd lustre_swab_ll_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47b35f7d statfs_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x494cfb52 lustre_acl_xattr_merge2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x496ca992 cl_page_cache_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a0f6ea lustre_posix_acl_xattr_2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a29223 lprocfs_find_named_value +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ac58713 obd_connect_flags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4bc95506 lu_context_key_register_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4bf356ca lustre_idmap_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c7c475b llog_declare_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4cc94998 lu_object_anon +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d13458b kuc_len +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4de36f3c lustre_idmap_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4dfe9ffb class_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4e813131 cl_object_has_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4f7e83d7 lprocfs_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4fba4346 dt_directory_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4fe386d4 lprocfs_add_simple +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x507e9e05 cl_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50c7fc36 ptlrpc_put_connection_superhack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5137eb89 cl_env_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x51d88cc8 cl_io_rw_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x521d9f20 lprocfs_free_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x528cd216 cl_page_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x52a1f483 cl_page_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5363c831 obd_llog_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x53718179 llog_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x538a7490 __llog_ctxt_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5418e3b6 cl_conf_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54407233 cl_type_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54885f87 ldlm_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x558bec27 obd_ioctl_getdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x55e1f988 local_index_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x564e9d44 init_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x568b5195 cl_io_lock_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x570d09ae lustre_swab_lu_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x57359b1b cl_lock_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5792f2b6 llog_cat_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x592439da llog_declare_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5925bba3 cl_object_attr_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5953bbeb cl_sync_io_note +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x596cfd6d cl_lock_ext_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5981d113 lu_object_locate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x599ca205 cl_vmpage_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a20d896 obd_memory_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5abe1f85 cl_page_is_owned +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5af4e726 class_devices_in_group +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5bc022c5 lprocfs_dt_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d0a0d7d cl_2queue_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d34ae0d cl_lock_mode_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e491fdc cl_io_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e6b14b5 cl_io_submit_rw +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e93341f lprocfs_oh_sum +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ea38da2 class_disconnect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ebd3a6a cl_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ed188a9 lprocfs_add_symlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5efd4b71 class_new_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5f0ee412 cl_lock_discard_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5fd360f6 lu_context_key_degister_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5fe97b73 block_debug_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x608de22a cl_page_list_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x61360a92 cl_page_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x624ffe24 lprocfs_counter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x62999cc7 class_process_proc_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x629c792b lprocfs_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631a518d mea_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631fd7b9 lustre_ext_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x64710e5e llog_cancel_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x648a7f66 lprocfs_free_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x661073b4 lu_context_key_revive_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x668a59e4 lprocfs_rd_numrefs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6734adbd lprocfs_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x677fd7f9 proc_lustre_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6788bd49 cl_env_nested_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67977b42 lprocfs_remove_proc_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67a90622 la_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67c583ca lprocfs_rd_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67dc223a lprocfs_remove +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6890d175 lustre_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x694171a5 dt_record_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69af7f0e cl_lock_closure_build +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69c42114 at_min +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69ee14c8 lprocfs_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a47807e cl_req_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a5c63c7 lprocfs_rd_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a9362a8 lprocfs_init_mps_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6b509d64 cl_lock_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6bb6d421 lu_buf_realloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6cfd47c3 class_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6d38b521 class_manual_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6d516800 dt_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6e57d839 lustre_register_client_fill_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6ef1a491 dt_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f14daad cl_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f19d299 llog_cat_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f3e6225 dt_quota_slv_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6fe9f2c2 cl_lock_modify +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6feb93a5 cl_page_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6fffd4b0 lu_site_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x70686041 cl_lock_get_trust +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x70c4d459 lprocfs_at_hist_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7146958f cl_lock_descr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x71a1edf6 lu_device_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x71b8a833 lu_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7223bee3 capa_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7281511d dt_index_walk +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72acc29a cl_unuse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72ddee4c obdo_le_to_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x742559b1 class_unregister_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x742852ad cl_use_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x74bac490 obd_devs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x750932dd lu_site_init_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7519f618 lprocfs_init_ldlm_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x751c4718 cl_page_list_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x752f71a8 class_get_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7531ec57 cl_2queue_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x756a77f3 class_parse_nid_quiet +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x757b8d1d cl_lock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x75c8fdc7 cl_io_prepare_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x75dc2f85 cl_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x76adbcdf obd_exports_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77009db5 cl_page_find_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77326f09 class_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77657ba5 lu_context_key_degister +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77bb476b local_oid_storage_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77c1c895 cl_page_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77d2089a class_name2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7802fcd7 lustre_swab_llogd_conn_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x78430a8e cl_env_unplant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x789796a1 obd_zombie_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x78eb6eef cl_page_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7aa1c227 llog_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7af2b18d cl_io_loop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b4fc57b at_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7bc12d2a lprocfs_init_ops_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ded8ebc cl_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ed58014 class_register_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7edcafa0 cl_env_reenter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fa15c04 lprocfs_free_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fad7291 raw_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fd20f93 cl_env_implant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fe5561a obd_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x80171528 cl_lock_disclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8031efb8 lprocfs_dt_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x806cc497 class_add_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81742d89 obd_ioctl_popdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x82621ac2 cl_lock_mutex_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x827c6621 obd_export_evict_by_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x831f656c class_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x83ca6df5 lu_context_key_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x83e5ff76 cl_lock_enclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x842e3751 llog_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x84749773 lprocfs_seq_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x847af844 class_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8489f086 obd_alloc_fail_rate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x849e5385 obd_update_maxusage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x84aa6219 cl_lock_extransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x84b5d838 lu_kmem_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8573579c cl_page_list_move +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x85e2373a cl_page_list_splice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8690a19b cl_sync_io_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x877add1c cl_2queue_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x88092c9e cl_io_commit_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8874c5ae cl_lock_mutex_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x88b87068 lprocfs_stats_collect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x891054f1 lprocfs_clear_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x894e165c lu_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x89bd6e0b llog_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8aa2c358 lprocfs_dt_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b376fd4 lprocfs_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b3c97f9 llog_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b5f4057 lu_context_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b77a894 dt_txn_callback_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ba6e479 lustre_swab_lu_seq_range +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8c4b3f65 cl_page_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d658ed0 capa_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d95f16a llog_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8dafd1b1 class_config_dump_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8dc41fd5 class_disconnect_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8e45e544 cl_io_rw_advance +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f67314c obd_dump_on_eviction +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9124c372 llog_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92519d91 lu_env_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92e58479 obd_dump_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x934cdf49 cl_unuse_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x936154e2 dt_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93859814 lprocfs_oh_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93b46468 lu_session_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x940e91cb cl_offset +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x943335ec class_import_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9505c895 lustre_idmap_lookup_gid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9512d507 lustre_acl_xattr_merge2posix +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x953a2158 dt_store_resolve +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x955f5220 ldlm_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95735c6c at_extra +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9573dea4 llog_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95ec998a lustre_groups_sort +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x961944a0 cl_object_attr_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x96e6844f llog_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9767adce class_uuid2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97d03783 at_history +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97dd5bf2 lu_env_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x993f1989 lprocfs_nid_stats_clear_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x99bbe5d0 cl_lock_signal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x99f20d69 llog_cat_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9a54dc4a dt_locate_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9a9474d0 lu_context_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b1ed9d8 obd_jobid_var +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b2b5b11 class_unlink_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b3dbb7d cl_lock_closure_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9be2d645 local_index_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9cb8a163 cl_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9db721ec local_object_unlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9dbb17b6 lprocfs_dt_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9ed4b9c6 class_incref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9f4b9e6a lu_object_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa09c0d05 capa_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa1ea44c7 cl_wait_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa21c5ea1 obdo_from_la +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa264e9fe cat_cancel_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa3457cdc cl_req_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa37681bf lprocfs_rd_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa48c4a30 lustre_idmap_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa513f7e4 lustre_groups_from_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa55352b4 cl_io_sub_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5fb234f lprocfs_write_frac_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa674c241 kuc_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa6a5f063 cl_req_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa7fe0b15 lprocfs_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa8255cfd dt_declare_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa8a72b46 class_conn2export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa8cb0a40 lu_context_key_quiesce_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa8e274fa class_search_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa9495608 lu_context_key_quiesce +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa9b0bd13 cl_lock_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa21b7a0 lustre_register_quota_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa43453d obdo_from_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa4a18a0 cl_lock_at_pgoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xab5f2aaa cl_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabb42125 cl_page_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabf45922 capa_decrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac7f1596 kuc_ptr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xace56cb0 lu_object_find_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xad30bdce lu_device_type_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xad469b2a dt_txn_callback_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xad520331 obdo_from_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xad538888 cl_env_nested_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xae05026a llog_cat_init_and_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xae0c0972 llog_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xae409f2f dt_version_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaeaa2461 cl_page_gang_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaee500d1 lprocfs_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaf1690cd lu_context_key_revive +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaf8ca8f8 lu_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb01963a6 class_uuid_unparse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0fb9886 cl_lvb2attr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1b89b6d class_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1c06dc0 cl_page_list_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1e5af75 lu_ucred +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb274dd6f dt_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb3b79c91 lu_dev_add_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb41998cd lustre_cfg_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb4589cc8 cl_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6a5ebc5 llog_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6b12d7b llog_cat_declare_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6b635aa dt_record_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6ba5dd5 kuc_ispayload +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb743ec6a dt_mode_to_dft +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb8062f0d cl_lock_is_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb882d996 cl_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb9e19827 cl_lock_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba5e2661 cl_queue_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba985283 lustre_register_client_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbacac922 lprocfs_write_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc497f86 cl_io_submit_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc98a8bb cl_io_iter_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbcabd279 cl_2queue_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbcee1990 cl_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe4de1f5 cl_req_page_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe4e3a0e lprocfs_add_vars +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe780401 cl_lock_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbeb6b97b obdo_to_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0049eaa lu_site_purge +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc012de64 lustre_end_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0954007 lprocfs_oh_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0bf7ef2 obd_debug_peer_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc14ee580 cl_io_read_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc5a2157a lu_object_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc5e2bc82 lprocfs_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc6612d17 lustre_process_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc753ddbe class_import_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc7835365 class_fail_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc7e52931 lu_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8dbaa87 lustre_swab_cfg_marker +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc908109f obd_export_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc968bc1e dt_try_as_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc9b3c667 dt_lfsck_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc9dd21ba cl_object_glimpse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xca56e22b lu_kmem_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcaa2ea9c lprocfs_rd_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb0ab67f obd_max_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb21e790 obdo_from_iattr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb3a41d8 lu_object_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb9e4a97 cl_page_own_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcc1b13e7 cl_lock_enqueue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcc46f5f8 class_disconnect_stale_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccf7a8de obdo_cpu_to_le +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd7537ee get_devices_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd7d5c8b lprocfs_rd_u64 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd8a604e lu_buf_check_and_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcdbf3f29 llog_declare_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcdffc073 lprocfs_rd_timeouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xce1b5a55 cl_lock_mutex_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcedb140a obdo_cmp_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd08827c0 server_name2fsname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd0b6995d lu_buf_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd10aa042 lustre_swab_llog_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd16ac483 cl_io_iter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd176aa0e dt_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1b1478b cl_attr2lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1f58645 lustre_swab_llog_hdr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1fc9ef9 class_conn2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd2d093ff cl_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd33ae4d0 cl_object_attr_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd378bc7b lprocfs_obd_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd38dc732 lu_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd395c567 llog_osd_put_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd3deb770 cl_lock_is_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd628b7ec lu_device_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd70fe669 lustre_swab_llogd_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bb2ce4 iattr_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bc8654 obd_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bfbc9c lprocfs_dt_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7e6e04b lprocfs_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7f7b340 cl_lock_mode_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd897c3a8 lu_env_refill_by_tags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd97555df lu_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd9797c29 lprocfs_rd_conn_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda3e7a17 lu_device_type_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda5b1ced class_find_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdaab22ee local_file_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdac644c8 lustre_posix_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb13dce1 capa_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdc6fbc58 cl_page_list_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcc40af0 class_check_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcc91845 dt_txn_hook_commit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcf50631 llog_cat_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd78c0c7 lu_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdda3d949 class_handle_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xddae2248 lu_object_assign_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde5ba2f0 lu_context_enter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde7d985b obd_dirty_transit_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdec8bc0f class_config_parse_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xded64804 cl_page_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdf5b4170 llog_osd_get_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdf9e961d lustre_register_kill_super_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe028cf84 capa_encrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe05f2f47 dt_lookup_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe0c7641d cl_env_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe0cf37a0 lprocfs_free_per_client_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe11730ad lprocfs_wr_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe1bf366c lprocfs_alloc_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2eb4470 class_get_next_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3323f5d class_handle_free_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3c1df4b cl_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3d92e1e lu_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe4ae191d lprocfs_obd_rd_max_pages_per_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe70e39df class_new_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7d83236 cleanup_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7f4bf56 cl_page_unassume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8e84c32 class_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xea0ba68e cl_page_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xea393a19 cl_2queue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xea99e83c cl_lock_state_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeacec47c lprocfs_oh_tally_log2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xead6091a obd_export_evict_by_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb3f388a _debug_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec76847f lustre_idmap_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec7d6b85 obd_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeccad098 class_export_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee68bc29 lu_session_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeeeb79fa do_lcfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeef80b46 class_connected_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef42be5a lprocfs_rd_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef76f858 block_debug_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf01e2527 server_name2index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf02693d8 class_exp2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf0be8ff1 lu_object_add_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf0f35c6b local_oid_storage_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf1916b98 lu_object_find_slice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf1b07816 cl_2queue_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf2fd6695 statfs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3ca3b75 cl_env_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf490d5f9 class_del_profiles +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf4a20c6c lu_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf5773720 lu_ucred_assert +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf5cd9d63 lprocfs_wr_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf60d4659 capa_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7020831 lprocfs_dt_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf714efa2 lprocfs_rd_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7458749 lprocfs_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf80923e8 cl_lock_unhold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf85b047f cl_io_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf874c950 dump_lsm +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8787073 llog_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8c2df92 obdo_set_parent_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf9a9ad0e class_name2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf9c81d8c cl_object_kill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa813d06 capa_hmac +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfabc04ad cl_io_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfb0eacfd cl_object_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfb4c1bb0 class_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbea0098 lu_types_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc48487c cl_lock_weigh +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc5b2cc5 lprocfs_single_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc7f18d0 obd_pages_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfcb15c88 class_config_llog_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfce4103b lu_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd68d17a class_notify_sptlrpc_conf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd8f5cf4 lu_buf_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfda2fdf6 lu_context_key_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfdb7d94c lustre_common_put_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfdbe1557 lprocfs_write_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfdcead07 dt_store_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe0ee511 cl_lock_hold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe16597e lu_ucred_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe317787 class_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe5d12a9 dump_lniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff57e92d class_match_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff640331 dt_txn_hook_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfffc1f11 lustre_swab_ost_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/osc/osc 0x5c4940c2 osc_update_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00034afa ldlm_cli_cancel_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00a04a80 ldlm_completion_ast_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00d95039 ptlrpcd_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x01d6ef7f ldlm_pools_recalc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x01f8665c ptlrpc_prep_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x02460c5b lustre_pack_reply_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x02db52bd ldlm_pool_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x03d2d9c7 ptlrpc_set_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x048b59d5 lustre_msg_set_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0515f93b RQF_FLD_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x06b3942b lustre_swab_lov_user_md_objects +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x071fc74a RQF_LDLM_ENQUEUE_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0727aed6 ptlrpc_prep_req_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x07605c7d interval_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x07e158dd ptlrpc_request_alloc_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x07e795d5 req_capsule_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08bb2d27 lustre_swab_obd_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x092088e9 ptlrpc_request_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x095587d0 lustre_msg_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x09967b59 sptlrpc_cli_enlarge_reqbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0a3130b0 RMF_MDT_EPOCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac252b2 lustre_msg_set_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac54708 lustre_errno_hton +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0bcacb5d RMF_MDS_HSM_USER_ITEM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0c2d9c43 lustre_swab_lip_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ca19a3f ptlrpc_save_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0cb3110f req_capsule_filled_sizes +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0cf343dd RQF_LDLM_INTENT_BASIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0d8d4073 req_capsule_server_sized_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0dd9b7ed ptlrpc_buf_set_swabbed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0f79302d req_capsule_client_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x10f18f20 interval_iterate_reverse +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x115017f6 req_layout_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x11a577e7 ldlm_lock_fail_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x11b9eb45 ptlrpc_unregister_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12b6f5a3 ptlrpc_connection_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12e0fb51 req_capsule_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12fc0d0e sptlrpc_target_export_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1474440e ldlm_pool_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1483eca4 ldlm_lock_addref_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x14d192db lustre_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x150784c3 sptlrpc_cli_ctx_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x15a3e4db RMF_GETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x172fb86d lustre_msg_hdr_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1747d8b3 ldlm_lockname +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17950f60 RQF_SEC_CTX +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17ee1482 ptlrpc_obd_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1834bc44 __ptlrpc_prep_bulk_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1863cd00 ldlm_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19108a0f RQF_OST_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19c08934 RQF_LDLM_INTENT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a597e26 ptlrpc_prep_bulk_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a6a3ce9 RQF_OST_GET_INFO_LAST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a9b76aa RMF_OBD_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1abd3258 RMF_SETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ace4b5f RQF_LDLM_BL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1b2974f1 client_import_find_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1bae0270 interval_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1be21715 lustre_msg_size_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c300d8e lustre_msg_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c323dbc ldlm_replay_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1cbabfcd lprocfs_wr_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ce6149e ptlrpc_req_finished +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1d043548 lustre_msg_set_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1dc2051d RMF_SEQ_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1de9c288 lustre_swab_layout_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1e8e48a4 sptlrpc_flavor_has_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ea8dc2c ptlrpc_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1eb2a65f RQF_OST_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee46b51 lustre_init_msg_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee9eb3c RQF_MDS_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x202f3410 do_set_info_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2096f5b5 RQF_OST_SET_GRANT_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x20d6b82c RQF_LDLM_INTENT_QUOTA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x218a36ce ldlm_cli_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x21b51280 ptlrpc_request_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x233790b5 RMF_OST_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2426f6a3 ptl_send_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x244e5558 lustre_msg_get_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x24aafdba RMF_MGS_TARGET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x254dc2c5 sptlrpc_get_bulk_checksum +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2585a629 RMF_SEQ_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2587513c RQF_LDLM_CP_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x269554ce RQF_LDLM_INTENT_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x26f99d16 RQF_MGS_CONFIG_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x285e5b99 lustre_msg_set_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x287dad19 ptlrpc_queue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x28e636f6 target_pack_pool_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x29e0869a sptlrpc_get_hash_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2a63a472 lustre_swab_ptlrpc_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2a92540a ldlm_cli_update_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2b62f316 req_capsule_extend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2c00c60d ptlrpc_sample_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ca92fa8 ldlm_lock_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ccd5b87 ldlm_cli_cancel_list_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d2b61a8 ldlm_register_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d56f168 ptlrpc_pinger_ir_up +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d798316 RMF_MGS_CONFIG_RES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2df2fdfe ptlrpc_register_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4562fe RQF_LLOG_ORIGIN_HANDLE_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4ca396 RQF_LDLM_INTENT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e80a033 ldlm_enqueue_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ecd7515 lustre_msg_check_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2f0e4f87 RQF_OST_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2fc829d3 ldlm_namespace_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2fd2f737 lustre_msg_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2fdc8821 ldlm_namespace_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x301d4fcd RQF_MDS_READPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x302937e0 RQF_MDS_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3060b9c6 sptlrpc_rule_set_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x31832fdb req_capsule_server_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x31838cb4 RMF_IDX_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x318a4c57 ldlm_pool_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x322f0724 ptlrpc_pinger_sending_on_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3261b862 RQF_OST_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x334905f5 ptlrpc_fail_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x33bb7761 ldlm_typename +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35939a3d lustre_swab_fiemap +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x37323b07 req_capsule_server_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3835ab4b RQF_LLOG_ORIGIN_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3858fb94 RMF_OBD_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3896ba40 ldlm_pool_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38c01799 RQF_LDLM_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38fce533 lustre_msg_set_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x39f60a5f RMF_OST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3a1e4bcb __lustre_unpack_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ab90f6e lustre_msg_bufcount +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ac00716 lustre_swab_hsm_user_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b6b7cba dump_ioo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b9fadaf ldlm_prep_elc_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3bd73580 sptlrpc_cli_ctx_expire +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3bedb0c7 RMF_LLOGD_CONN_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c63e62b RQF_MDS_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c8e617f llog_origin_handle_prev_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ca50f33 RQF_MDS_HSM_CT_REGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3d7dc5f9 ldlm_pools_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dc47695 lustre_msg_get_magic +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dddb3e2 dump_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3df08c68 ldlm_get_enq_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ee4579b ldlm_pool_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f034caf lustre_msg_get_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f0ae93a ptlrpcd_alloc_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f752e78 RQF_MDS_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41008cef RQF_LDLM_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41ddc655 ldlm_namespace_new +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43705ee4 RQF_LOG_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43d7efc8 lustre_msg_set_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x44036eda RQF_MDS_GET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x440c2a71 RMF_FIEMAP_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4481591d RQF_OST_SET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45d05893 lustre_swab_lustre_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45e30cea lustre_swab_ldlm_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47660cc4 ptlrpc_start_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47d6c333 client_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47f5e903 RMF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x48814c9f lustre_swab_ost_lvb_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x498c03c5 lustre_msg_set_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4a5a2416 RMF_DLM_REQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4b09ce4b lustre_swab_mdt_rec_reint +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4b1b9bdf ldlm_pool_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4c7e175e req_capsule_other_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4d7580d0 lustre_swab_hsm_user_item +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4d9ad62f ptlrpc_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e1706e5 lustre_msg_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e696b96 ptlrpcd_queue_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4eb03a6f ptlrpcd_destroy_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4f766c3b lustre_swab_generic_32s +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4f78b1cf ldlm_namespace_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4fafd40e ptlrpc_unpack_rep_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50443f6a ptlrpc_init_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x506fbbd3 sptlrpc_cli_unwrap_bulk_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50dd74f8 RMF_STRING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x52184ca0 sptlrpc_enc_pool_put_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x522074d7 sptlrpc_sec_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x52c62150 RMF_RCS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53411557 RMF_DLM_REP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53a4a004 bulk_sec_desc_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x54ae5021 ldlm_lock_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5559afdb ldlm_resource_unlink_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x555eb7fe RQF_MDS_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5569f237 req_capsule_init_area +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5692cb5d ldlm_cancel_resource_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x577ff230 ptlrpc_replay_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x57fb5b25 ptlrpc_resend_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x582e7970 lprocfs_wr_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5840e5d1 sptlrpc_sec_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x588035b4 RMF_UPDATE_REPLY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x592c8d0f ptlrpc_retain_replayable_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x595ab175 lustre_swab_obd_quotactl +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x596582bf RMF_GETINFO_VALLEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59943967 ptlrpc_request_bufs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59ca398b ptlrpc_add_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5a057439 interval_search +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ab0fbfe req_capsule_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5af0d02a ldlm_lock_dump_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b6ba895 lustre_packed_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b99a546 __ptlrpc_free_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5bedfebc client_import_del_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5c6a3a83 RQF_SEQ_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ca83d78 ldlm_cli_cancel_unused +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5caae213 ptlrpc_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ce81ff5 llog_origin_handle_read_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5d14d217 __ldlm_handle2lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e0b19b1 RMF_CLUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e2b7558 lustre_msghdr_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e6f435d RQF_OST_BRW_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e80f899 RQF_LLOG_ORIGIN_HANDLE_READ_HEADER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ec3284d RQF_MDS_HSM_CT_UNREGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ef831ee lustre_msg_get_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5f96ccdd ptlrpc_connection_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60387592 sptlrpc_register_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6042bc15 RQF_MDS_REINT_RENAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x604e2505 RMF_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x607ec932 lustre_msg_set_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60cd26ad RQF_MDS_REINT_CREATE_SYM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x61646e1b RQF_MDS_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x618ad203 RQF_OST_GET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62192cf8 dump_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6288cc4b req_capsule_client_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62a73a85 llog_origin_handle_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62aaae3f RQF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6315dd4c RMF_LLOGD_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6352a62d ldlm_get_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x639de676 ptlrpc_request_set_replen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x640ed295 lprocfs_rd_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x645791c4 ldlm_extent_shift_kms +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6461e504 ldlm_cli_enqueue_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x647b6e48 lustre_swab_ldlm_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x653723dc RMF_LOGCOOKIES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x657b00b7 ptlrpc_init_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x65af7517 sptlrpc_unregister_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x66a981ee ldlm_lock2desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x683243bf ptlrpc_set_next_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x685eeaba RMF_DLM_GL_DESC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68cb2541 interval_is_overlapped +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68f49e5e ptlrpc_expired_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6912990a RQF_OST_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69146454 sptlrpc_cli_wrap_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x696ba811 lustre_msg_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69c9f04d RQF_MDS_REINT_LINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6a3785c9 RMF_EADATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6a9f0db9 ldlm_namespace_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6b9474ad ldlm_lock_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6c6a22e8 lustre_pack_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6c6b07c5 ldlm_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6c6df547 sptlrpc_svc_ctx_invalidate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d55b63c llog_origin_handle_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d72828c sptlrpc_conf_log_update_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d7931cc RQF_UPDATE_OBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6dbfb55b ptlrpc_commit_replies +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6e351017 client_disconnect_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6e36214f ldlm_resource_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6ed20499 ldlm_revalidate_lock_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6efa82b0 RQF_MGS_TARGET_REG +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f6dc736 lustre_swab_mdt_remote_perm +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6fb92092 sptlrpc_flavor2name_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x703538e4 lustre_swab_hsm_current_action +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x71251b36 ldlm_destroy_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x716fbbe4 ptlrpc_deactivate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x723d43b6 sptlrpc_rule_set_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x725a892c RQF_MDS_REINT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x727460d6 lprocfs_wr_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7287b6c0 ldlm_pool_get_lvf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x73e4e5c9 ptlrpc_add_rqs_to_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x74840056 lustre_msg_set_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x74be701c ldlm_blocking_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75a2c40d ldlm_put_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x76b728e5 lustre_swab_update_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77571cc6 lustre_swab_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77840c82 sptlrpc_rule_set_choose +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x781c9954 unlock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x78bf9136 lustre_swab_ldlm_lock_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x792426f0 llog_origin_handle_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x79c9d020 ldlm_reprocess_all_ns +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7a57f3e2 ptlrpc_cleanup_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7a832f10 RMF_CONN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7b09c498 ldlm_lock_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7b158da4 lustre_swab_ldlm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7bbf8001 RMF_MDT_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7c4c6107 RQF_LDLM_CONVERT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d1ecd7f RQF_LDLM_INTENT_LAYOUT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d41a8b9 RQF_QUOTA_DQACQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7da06d1a sptlrpc_gc_add_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dc0e7cd RMF_QUOTA_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dfb3c18 lustre_msg_clear_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7e94658e lustre_pack_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4925d8 interval_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4c99b1 ldlm_expired_completion_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f5a1cc7 lustre_msg_set_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f6d2357 lustre_msg_is_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f9eb165 client_import_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80a9e8c3 lustre_msg_get_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80cafc3c ptlrpc_cleanup_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80ecb4e3 RMF_MDS_HSM_CURRENT_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x810ae2b2 ptlrpc_at_set_req_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8167a29d req_capsule_client_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x817d7f1f lustre_msg_add_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x81bfa0c8 sptlrpc_cli_unwrap_bulk_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x81ebed1b req_capsule_has_field +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x826d3c4f RQF_LDLM_GL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x82ccb1ff llog_client_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x837efb00 RMF_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8493ebd3 lprocfs_wr_evict_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8512c649 ptlrpc_resend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85135801 RMF_DLM_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x854677c5 ldlm_lock_allow_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85594d83 lustre_pack_reply_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85a9e0d8 RMF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85eecf67 sptlrpc_get_hash_alg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x863db6eb RMF_HSM_USER_STATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x867004e7 ptlrpcd_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x86fa8c3b ldlm_cli_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8760beaf lustre_swab_ldlm_policy_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x876c2551 RMF_GETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87bf7b3c sptlrpc_get_next_secid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87ff2afb ldlm_pool_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x885b1bde ptlrpc_set_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8872f3d2 RMF_SETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x88fff52d RMF_CAPA2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x89f9edf7 RQF_MDS_REINT_SETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a1ea476 lustre_swab_hsm_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a257736 RQF_MDS_HSM_STATE_GET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a4345b1 ptlrpc_set_add_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a5251f1 ldlm_cli_cancel_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ac440fa ptlrpc_uuid_to_connection +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8b854254 lustre_swab_mgs_config_res +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8cb71d4b RQF_MDS_REINT_CREATE_SLAVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8cf543ca sptlrpc_gc_del_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d3d3f2c ptlrpc_recover_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d77ea75 lustre_msg_set_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d97bd5b ptlrpc_nrs_policy_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8da3fca7 lustre_msg_add_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8e9abe4d RMF_GENERIC_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8f0aceac RQF_MDS_HSM_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8fec0451 lustre_msg_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9110511b ldlm_pool_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x911307db req_capsule_server_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x919c4ce3 RMF_OBD_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91ad9b05 sptlrpc_enc_pool_get_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91cf58d3 RQF_MDS_PIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9205d55b ptlrpc_invalidate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x937b1ee0 lustre_swab_mdt_ioepoch +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x944db260 sptlrpc_lprocfs_cliobd_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x94b36c9a ldlm_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9553c633 RQF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95d08f0c lustre_swab_mgs_target_info +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9660ace0 RMF_FLD_MDFLD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x967bfd52 RQF_OBD_PING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x96ce1d77 ldlm_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x970f2ba9 sptlrpc_cli_ctx_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9798f2f1 RQF_MDS_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x980fcfdc ptlrpc_connection_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x986ddb9a ptlrpc_disconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a258886 RQF_MDS_GETSTATUS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a6f2f6d lustre_msg_set_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9ad1f871 ldlm_cli_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9af55cf5 target_print_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9b88f6ce RMF_NIOBUF_REMOTE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9bb5198b RQF_MDS_CLOSE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9bc1c34e client_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d58e22a ptlrpc_service_health_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d7ea314 sptlrpc_pack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9dcb11f9 ptlrpc_restart_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9fb088f1 lustre_swab_lov_mds_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa0a98562 ldlm_prep_enqueue_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa0b34218 ptlrpc_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa0f30e37 lustre_free_reply_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa10f0d3d RMF_UPDATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa163f4c3 dump_rniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa1986dea sec2target_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2244636 RQF_MDS_GETATTR_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa22c0086 ldlm_error2errno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2f37dff ptlrpc_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa3d2a6ee RMF_CAPA1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa44bf8c9 ptlrpc_request_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa47787ef RMF_PTLRPC_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4a2d089 RQF_OST_PUNCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4bea5ef lustre_swab_lmv_user_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa506baa6 ptlrpc_set_add_new_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa514a623 ptlrpc_set_import_active +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5458dad ldlm_lock_decref_and_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa58169e8 ldlm_lock_change_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5880075 ldlm_errno2error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa62d690e ptlrpc_buf_need_swab +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa66888dd ptlrpcd_add_rqset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa6c436ca RQF_MDS_WRITEPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa724d2ae ptlrpc_mark_interrupted +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7d55cc3 RQF_MDS_REINT_CREATE_RMT_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7e360b1 RMF_OBD_IOOBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7ec567d RMF_CONNECT_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa818df7b ptlrpc_reconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa850c1af ptlrpc_schedule_difficult_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9704f80 lustre_msg_get_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9c4658e lustre_swab_lov_user_md_v3 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9edf09d RQF_OBD_IDX_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaa0e0d47 req_capsule_server_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xabbcce4d req_capsule_set_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xabfb1f90 ldlm_namespace_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaddc3979 lustre_swab_lustre_capa_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xadebceaf ptlrpc_request_alloc_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf4e9658 RQF_MDS_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf50a0d6 RMF_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf9ca4eb ldlm_pool_set_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0751fa4 RQF_LLOG_ORIGIN_HANDLE_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0bd4a5f ldlm_pool_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1334819 ldlm_lock_fail_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1b43d8a dump_rcs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb27c2374 lustre_msg_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb291473d lustre_msg_early_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb2b1817d lustre_swab_ost_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb47bf494 ptlrpc_unregister_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4a7ecf3 lustre_msg_add_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb512ebc2 sptlrpc_parse_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb587ede6 sptlrpc_import_flush_all_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb61cb95a RQF_MDS_GETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb6317f41 ptlrpc_lprocfs_unregister_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb68476df interval_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb68c52f0 ldlm_destroy_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb6aafd03 RQF_MDS_DONE_WRITING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7b38189 RMF_MDT_MD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7fa3cc8 RMF_LLOG_LOG_HDR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb81c8c01 ldlm_init_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb85204e3 sptlrpc_import_sec_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb8fe9ee7 ptlrpc_init_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb903634e RQF_OST_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb9b631cf lustre_swab_mgs_config_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbaa76097 lustre_msg_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbb025b15 ptlrpc_nrs_policy_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbba4040a client_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc1370dc lustre_shrink_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbd83bc44 RQF_OBD_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbe47bc7e ping_evictor_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbe73f20f ptlrpc_req_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbf98b86f RQF_MDS_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbffd4313 RQF_OST_BRW_WRITE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc06c4670 lustre_msg_get_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0867da7 RMF_REC_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0b86226 ptlrpc_hpreq_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0cdf55e RMF_MGS_SEND_PARAM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc1ed015f ldlm_pool_get_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2986d28 lustre_swab_ldlm_res_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2b1af57 RQF_MGS_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2be922a RMF_SYMTGT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc559a634 RMF_LAYOUT_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc5d387af ptlrpc_abort_inflight +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc5f21261 ptlrpc_lprocfs_register_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc60a60e1 RQF_OST_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc62e103e ldlm_blocking_ast_nocheck +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc691abe7 ldlm_lock_allow_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc694be4b RQF_LLOG_ORIGIN_HANDLE_PREV_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc6ca6cab target_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc763fabc sptlrpc_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc78a5464 ptlrpc_free_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc79b9c67 ldlm_pools_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7ca8257 RQF_MDS_REINT_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7e47564 ptlrpc_interrupted_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc8967ccf ldlm_resource_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc8f586a9 ptlrpc_connection_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca31764d ptlrpc_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca477de5 sptlrpc_cli_ctx_wakeup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca5a81ec ptlrpc_pinger_ir_down +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb16107d ptlrpc_set_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2cc0cf lustre_swab_lquota_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2ceaff sptlrpc_secflags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb77c0e5 ptlrpc_wake_delayed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcd281bb5 sptlrpc_import_flush_my_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcd4104b4 ptlrpc_stop_all_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce1a689b sptlrpc_enc_pool_add_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce86066d lustre_msg_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcec513c9 RQF_MDS_UNPIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xced015be sptlrpc_rule_set_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xced1d54a ldlm_flock_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcee4261e sptlrpc_conf_client_adapt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9963db lustre_msg_get_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9aab6a RQF_MDS_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd0dea4a0 req_capsule_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd245f1b5 ldlm_namespace_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd261f700 sptlrpc_target_update_exp_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2983334 lustre_swab_swap_layouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2e0d4eb lustre_msg_get_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd3dae408 ldlm_it2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd3f6e925 ldlm_lock2handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd4c50939 client_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd537ded2 lustre_swab_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd53ec6a0 ldlm_cli_cancel_unused_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd55fdde4 req_capsule_field_present +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd67a5d7b lustre_swab_update_reply_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd69e0a27 RQF_MDS_IS_SUBDIR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6aaf0e3 sptlrpc_req_replace_dead_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6c3ebfb RMF_FIEMAP_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd7910326 lustre_swab_obd_statfs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd7a81387 llog_origin_handle_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8b91b3e lustre_swab_lov_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8caeb51 ptlrpc_req_set_repsize +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8f06300 RQF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd9561861 RQF_LDLM_INTENT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xda2ac111 sptlrpc_proc_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb1fb0a2 RQF_MDS_REINT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb878aff req_capsule_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb9d5a6a lustre_swab_niobuf_remote +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdcf910b9 lustre_swab_ost_last_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd0ffb04 sptlrpc_flavor2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd30d7bf RMF_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xddc40a85 lustre_msg_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xddfde645 ldlm_init_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde12d36b RMF_MDS_HSM_ARCHIVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde555d70 sptlrpc_enc_pool_del_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde9c0da6 sptlrpc_conf_target_get_rules +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdea65901 ptlrpc_unregister_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdee87192 sptlrpc_conf_log_update_begin +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf701ae7 lustre_swab_fid2path +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf7c104f ldlm_resource_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe036cca1 ldlm_pool_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0cc694c RQF_LLOG_ORIGIN_HANDLE_NEXT_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe17b4ce2 ptlrpcd_wake +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe2ceaa78 req_capsule_server_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe3a19037 ptlrpc_pinger_del_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe40e0a50 lustre_msg_get_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe505e9fc req_capsule_client_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe57bd972 sptlrpc_current_user_desc_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe5e8169b lustre_errno_ntoh +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe643998e RQF_OST_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6c5fe26 llog_initiator_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6f0dc96 RQF_OST_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7062b5f RMF_U32 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7512278 ptlrpcd_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7b99704 _debug_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe9138a75 req_capsule_server_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabaa0b1 lustre_swab_mdt_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabac4fc sptlrpc_rule_set_merge +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeafb7b0c sptlrpc_sec_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xebb64e68 req_layout_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec226f66 ping_evictor_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec939a00 RQF_MDS_REINT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xecace5c1 RQF_OST_GET_INFO_GENERIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed1c10d6 ptlrpc_connection_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed2d986a ldlm_cli_enqueue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xedc68a84 ptlrpc_activate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xedcb740d sptlrpc_name2flavor_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xee2a52bd ldlm_glimpse_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xee7c741f ptlrpc_req_finished_with_imp_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeeed0598 ldlm_resource_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef1aeca9 RMF_FLD_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef35fc4a sptlrpc_gc_add_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeff14190 ptlrpc_send_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0241d6e lustre_swab_hsm_progress_kernel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0d52b5f ptlrpc_pinger_suppress_pings +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf1300275 _sptlrpc_enlarge_msg_inplace +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf277c125 RQF_OST_GET_INFO_FIEMAP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf27d49dc sptlrpc_target_choose_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf2deea4f ldlm_lock_downgrade +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf35f132b lustre_swab_ldlm_resource_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf3d44370 RQF_OST_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf413429a _ldlm_lock_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf43540b9 lustre_swab_mgs_nidtbl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf45085e1 sptlrpc_conf_log_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf55c033b RMF_MGS_CONFIG_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf584a16b sptlrpc_part2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf596e9ae sptlrpc_conf_log_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf607fc23 sptlrpc_flavor2name_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf617ab8a lustre_msg_get_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf665d696 llog_origin_handle_next_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf697b756 ldlm_dump_all_namespaces +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7408f84 lustre_swab_hsm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7ba40c0 RMF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf85cb27e sptlrpc_parse_rule +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf870fed9 RQF_LDLM_GL_DESC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf8d7b49f ptlrpc_lprocfs_brw +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9051bd6 RQF_QC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf94e41e0 deuuidify +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf95b9eed ptlrpc_register_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf973aa93 lustre_swab_lov_user_md_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9ee11e2 lustre_msg_set_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9f72dfc RMF_TGTUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa40b688 ptlrpc_request_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa51688d interval_insert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa8f390f ptlrpc_unpack_req_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfaadfb13 ptlrpc_pinger_add_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfb444a98 ptlrpc_prep_fcset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfc2fa83f ptlrpc_del_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd148bf8 RMF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd2ad3e0 sptlrpc_target_sec_part +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfeda3f72 lock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff02a0e9 ldlm_lock_set_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff2b5341 ptlrpc_prep_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffc807e8 sptlrpc_unpack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffe29c3f RQF_LDLM_ENQUEUE +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0xa5a702eb cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x5e7a3323 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x660919ce go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x6d622d87 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xa9d12008 go7007_update_board +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xb1903f01 go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xc3683654 go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xd3261b8c go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xe8303a5b go7007_snd_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xe8f553c7 go7007_snd_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x04266c08 rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x10660e10 rtllib_wpa_supplicant_ioctl +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x152177b3 rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2d307138 rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2daf14e1 rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x31069b89 rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x37f013c0 rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3cac67a5 rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3fcbeb27 rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x405ba7c1 free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x40ef4de3 rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4f922876 rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x594465ef rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x595238ea rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5ab04ac2 rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x69d8e12c rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6bf84ee8 rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x71a749c9 rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x74d4dbf8 rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x76f9deac HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7db1dfec rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x81f5301c rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8b627b8d alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8fc42ab9 rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8ff13418 rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x94659610 Dot11d_Channelmap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x959b2d98 rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x96032d7e dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x969b455a rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9ca1c315 rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa10eb9dd notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa329cf20 rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa41b151a rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa5eb294f rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb2bb8d21 rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbbb7395e rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe1420f2 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe2ed5e5 rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc36bc5d2 rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xcd547891 rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd1a89408 rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd3e55908 rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdae80a03 rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdc858ed5 rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf78f620 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe93187a6 rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xea72746b RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xec76c735 rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf7613dc0 rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf86283f8 rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf95264e7 rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfebffa60 rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x05dbfe04 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x06ebd3a6 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x072ba89d ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x08877d2f ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x09665594 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x16c24371 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x19313046 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x19634c9a ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1b599dbe DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x214eed50 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x26fdfa02 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3681e842 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x39bb2987 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cbb989d ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3eee7993 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x47de142f ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4ce0c031 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4e96170e ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4fd4ee48 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x51ac10a3 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x59019aa4 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5b119e84 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5e48c534 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5f43a33a ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x60de2cf5 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6477d91a ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x69000b33 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c32c8b5 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6f332d1c ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7108a196 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x746cae0c ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7f74d852 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x825ecd3d ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8b80eafb ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8c379c12 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x98407eb4 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa09a28cb ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa7a4b229 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaf138462 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb1144031 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb2168009 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb4fa767b ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbaf4feea notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbf41dc38 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc5f68679 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc6f4cfd9 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcc28a1bf ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcd0f653a ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcdf1397b IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd6af778b HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd76ea28b ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe1c4f99c ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe1ed4f21 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe83368e7 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf57179ea ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfa034072 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0017f35f set_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x00ea0cde set_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x06d6f244 get_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x09df8f3e set_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0a8d32c3 get_bypass_slave_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1936264c set_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1d2eb8ca get_tap_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x203af1f7 reset_bypass_wd_timer_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2070f14a set_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x27b990ef get_bypass_info_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2ba7cd35 get_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2c3f1c17 get_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2f59e636 get_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2fdb893a get_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x361cf40a get_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x45ca99c3 set_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x550a188c set_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x5cb59e92 get_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x66b60122 set_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x675208c0 set_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x692623f2 get_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x75131ec6 set_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x76c0b7d0 set_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e872825 get_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e8d701e get_wd_expire_time_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x86388b07 get_bp_disc_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x93ae4648 get_wd_set_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x95e42b0d is_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9df5f807 set_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9e21f42e set_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xa689a214 get_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xae117788 get_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xc368d30d get_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xccab5de0 get_bypass_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd3e034b3 get_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9c1ccfc get_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9d38d97 set_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xe640f06e set_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xecdaa456 set_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xedcd3c1b get_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf06d67bf set_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf57c1671 get_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf693c3a1 bp_if_scan_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf8237882 get_bypass_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xfa59240d get_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05af3c4c set_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05b08a42 set_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0b0d5ce0 get_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0fc2e83c reset_bypass_wd_timer +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x123a8133 get_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x157ec89c get_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2440f05a get_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2b01d1d4 set_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2c27a2f0 set_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2da97f4b is_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2e86c67b get_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37416370 get_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37bdab27 get_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x3da96a18 get_bypass_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4025805e get_bypass_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4940a0cc get_bypass_info +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4d21ff51 get_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5147360c get_bp_disc_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x515d4df1 get_bypass_slave +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5560267e set_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5be44d44 set_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6653590c get_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6bda14ec get_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x72c618ae set_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x76d47e6f set_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x794e3815 set_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x7c6cbc16 get_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x84a263dc set_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x8a16f22c set_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x946ff795 get_wd_set_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x94f6aff2 get_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x9d1ecf73 set_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xb1385629 set_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xbff68c45 set_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xc871c561 get_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xcee528df set_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd202dd85 get_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd787f151 get_wd_expire_time +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xdb6a39d2 get_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xebd25ae5 get_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf1e9f8c1 set_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf224abd9 get_tap_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf5a591b2 set_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf643fd4c get_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x226d2408 xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x25978d50 xillybus_isr +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x7684546b xillybus_endpoint_remove +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x8276126e xillybus_do_cleanup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x9d97f2a0 xillybus_init_endpoint +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0730e170 iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x33388424 iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3ec384a1 iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5e02c474 iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x60a7af89 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x66bc41e3 iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x66f3b58a iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x68fe184f iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x69757963 iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x69b88fbc iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x6b08ffeb iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x6be105da iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x74ed565a iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x90ecaa94 iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9dfdf2e3 iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa7652584 iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xafe40600 iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbf484b4f iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc6496058 iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd286780d iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd33521dc iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd5c63b35 iscsit_handle_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd7551087 iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xdf6bf56c iscsit_set_unsoliticed_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe078d85a iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe5991f4a iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf0b034fc iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf8793be5 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00315c27 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x06bc0f71 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x0d0dcf8e core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x0e489715 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x13251567 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x1353c39b iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x1902ce42 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x19a4b600 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x1c2637cf transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x20d556bd target_setup_cmd_from_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x263d253f target_sess_cmd_list_set_waiting +EXPORT_SYMBOL drivers/target/target_core_mod 0x2720bff5 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x286660a0 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x2d784057 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x2ebcbd92 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x2f478fb8 target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x2f5cf01b spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x315b9c74 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x31f9a4b5 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x322a1c2d sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x3455f020 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x3b88c876 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x43a60124 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x44dfdc7a core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x4a39a8f5 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x4aee35a3 spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x50727138 spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0x55dcc2d1 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x5b95b0fb __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x5c20b3ce target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x5d63e03e fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x5e301c25 transport_init_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x60244eb5 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x6a701a66 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x6e298a97 spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x6e845132 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x74fbcd9a transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x76d00648 target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7adfc477 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x87f26483 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x89e0fe1c transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x8d236c48 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x92c58fe5 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x9575f13c target_get_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x96d88dc7 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x9ac3f932 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x9f018d54 transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0xa2761f5a target_submit_cmd_map_sgls +EXPORT_SYMBOL drivers/target/target_core_mod 0xa987bada iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xb3967430 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xb52e022f core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xb73a7871 sbc_execute_unmap +EXPORT_SYMBOL drivers/target/target_core_mod 0xbcc58953 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0xc3b6a8d7 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xc81abcda core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xca91b87c transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0xcb95328f transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xcc3cf71e transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xcf09e720 sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0xd067747a core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xd2387246 target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xddcf9264 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xdfa7cf05 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xe054ab7e target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0xe4172fd5 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xec741354 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xecba90b8 target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xed6e1362 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xf002c671 target_put_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf437d531 target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0xfbfe9456 fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0xcecf5779 usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0x04db691a unregister_gadget_item +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x008d8162 gether_get_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x1453d21c gether_connect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x21a194b3 gether_setup_name +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x2aa442d8 gether_get_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x328b7794 gether_get_ifname +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x3833bcd5 gether_setup_name_default +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x3e0281ae gether_set_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x464e847b gether_set_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x82c1d5f0 gether_register_netdev +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8878cfa6 gether_cleanup +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8d4a5994 gether_get_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xa3c9d94f gether_get_host_addr_cdc +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xb744776c gether_get_host_addr_u8 +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xc06222d7 gether_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xc0ad08cb gether_set_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xdce48209 gether_set_gadget +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3691457e rndis_add_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3a6d4f22 rndis_free_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3ca38e3a rndis_signal_connect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x4ca90996 rndis_signal_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x53b4b4a4 rndis_rm_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x5d22b406 rndis_register +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x785d494b rndis_msg_parser +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x82c2568a rndis_set_param_dev +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x840dd143 rndis_deregister +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x988ad2a2 rndis_set_param_vendor +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x9acf72e4 rndis_set_param_medium +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xa90054ee rndis_uninit +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xb971ebca rndis_get_next_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xd2fe47b1 rndis_set_host_mac +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x005e7e53 fsg_lun_fsync_sub +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x06540468 fsg_lun_open +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x0e5b8600 fsg_show_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1710b539 fsg_fs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1b1cc3af store_cdrom_address +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x27bd838c fsg_show_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x2933ee1d fsg_ss_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x2b16fa43 fsg_show_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x398778e1 fsg_ss_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x423845e4 fsg_ss_bulk_in_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x4d9af621 fsg_lun_close +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x56344daf fsg_hs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x7ee6deee fsg_store_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x857b6dc2 fsg_hs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x93b6cb9f fsg_store_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x95cffb3e fsg_hs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5cae92f fsg_ss_bulk_out_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5f99b69 fsg_fs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb52ba28a fsg_intf_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb54d0d95 fsg_fs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb6b0fb57 fsg_show_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xd9644584 fsg_store_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xec8b765d fsg_store_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf4efc0c8 fsg_ss_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xfdb5327b fsg_store_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xff967eba fsg_show_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_rndis 0x0c66c4bd rndis_borrow_net +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x0033af3c sl811h_driver +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0f265444 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x10dfecae usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2c48a56a usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3eb55724 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x44a32b6b usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7d431e22 usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x87a6d054 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa1381902 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xafbc8461 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb2d36365 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc5457151 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc9d4803b usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xec746092 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xdc942698 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xecf7cff1 usb_serial_resume +EXPORT_SYMBOL drivers/vhost/vringh 0x0dda8c5a vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1f063017 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x2e91ca97 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x367ce26a vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x36dfce73 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3eaf442a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3fa42e4f vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5dafbd4e vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x66af098b vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x6d0e7948 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7bda5e6d vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x821e9390 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0xaf8e4a0e vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xafb47dae vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc884d704 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc8bee0a4 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xd11d2709 vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xda4ea4cc vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xfc7dcad2 vringh_getdesc_user +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x056f1900 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x32dd67f5 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x42bf57a2 devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x98eabd2c devm_lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb23ef6e8 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x82801f13 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xe9a1fcdd matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xfb8b87cf g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6a3edba6 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xa34279a8 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xc09e270f DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xdf09ce84 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x70ef43b0 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xf4cc1749 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x3c8defc3 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x7e9c243e matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xa0c285b6 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xc55237e0 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x73b36843 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x81304618 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x09320e4b matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x2d68fee2 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x8a3f2495 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x8f7568b1 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xdd8d4678 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0x16797649 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x2725fd94 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0x3c528ff1 video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1d3d0178 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x42165f41 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x448a8137 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x540bebe6 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x59205fdf svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x6e4adb1e svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x8de63fb4 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0xb716a01b svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xde6fadc4 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf2db5956 svga_match_format +EXPORT_SYMBOL drivers/video/syscopyarea 0x1609cbf5 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0xd35dcdb2 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x421b0912 sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/virt/fsl_hypervisor 0x45fd1882 fsl_hv_failover_unregister +EXPORT_SYMBOL drivers/virt/fsl_hypervisor 0x77c9b191 fsl_hv_failover_register +EXPORT_SYMBOL drivers/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/vme/vme 0x1ea447a2 vme_irq_generate +EXPORT_SYMBOL drivers/vme/vme 0x20df5a3d vme_dma_pci_attribute +EXPORT_SYMBOL drivers/vme/vme 0x24e4f2e2 vme_unregister_bridge +EXPORT_SYMBOL drivers/vme/vme 0x331636d0 vme_irq_request +EXPORT_SYMBOL drivers/vme/vme 0x3c5e0e7b vme_register_driver +EXPORT_SYMBOL drivers/vme/vme 0x3e95083c vme_slave_get +EXPORT_SYMBOL drivers/vme/vme 0x41862ad4 vme_alloc_consistent +EXPORT_SYMBOL drivers/vme/vme 0x41a0fd65 vme_bus_type +EXPORT_SYMBOL drivers/vme/vme 0x423bd502 vme_register_bridge +EXPORT_SYMBOL drivers/vme/vme 0x45f63bed vme_slot_get +EXPORT_SYMBOL drivers/vme/vme 0x46649cd1 vme_lm_set +EXPORT_SYMBOL drivers/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/vme/vme 0x4baf35a7 vme_master_get +EXPORT_SYMBOL drivers/vme/vme 0x535c8308 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/vme/vme 0x5aff4177 vme_lm_get +EXPORT_SYMBOL drivers/vme/vme 0x60225dba vme_irq_handler +EXPORT_SYMBOL drivers/vme/vme 0x6a6d1b6d vme_unregister_driver +EXPORT_SYMBOL drivers/vme/vme 0x7264aee9 vme_dma_list_exec +EXPORT_SYMBOL drivers/vme/vme 0x79d24249 vme_irq_free +EXPORT_SYMBOL drivers/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/vme/vme 0x7fde2edb vme_master_read +EXPORT_SYMBOL drivers/vme/vme 0x84e64dda vme_slave_request +EXPORT_SYMBOL drivers/vme/vme 0x90695906 vme_free_consistent +EXPORT_SYMBOL drivers/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/vme/vme 0xa31bdf07 vme_master_set +EXPORT_SYMBOL drivers/vme/vme 0xb19d5115 vme_new_dma_list +EXPORT_SYMBOL drivers/vme/vme 0xbf156a86 vme_master_request +EXPORT_SYMBOL drivers/vme/vme 0xbf4e449a vme_dma_list_free +EXPORT_SYMBOL drivers/vme/vme 0xca59dd44 vme_dma_list_add +EXPORT_SYMBOL drivers/vme/vme 0xd2c01abc vme_lm_request +EXPORT_SYMBOL drivers/vme/vme 0xd797b9a5 vme_master_write +EXPORT_SYMBOL drivers/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/vme/vme 0xe693a6ce vme_get_size +EXPORT_SYMBOL drivers/vme/vme 0xec8e7c7a vme_dma_request +EXPORT_SYMBOL drivers/vme/vme 0xefd1624a vme_dma_free_attribute +EXPORT_SYMBOL drivers/vme/vme 0xf5a10e25 vme_slave_set +EXPORT_SYMBOL drivers/vme/vme 0xfacd8e72 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x4905241a w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x501dea7d w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x5bdec10e w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xe9d3c2a8 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x1581c422 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xcdf87ad4 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x4f14ceeb w1_ds2781_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x9d09675b w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/wire 0x0b96e7c7 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x2611e7b5 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x5c7e4326 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xd1e4d3f4 w1_add_master_device +EXPORT_SYMBOL fs/btrfs/btrfs 0x27476846 ulist_reinit +EXPORT_SYMBOL fs/btrfs/btrfs 0x41e6a9d2 ulist_init +EXPORT_SYMBOL fs/btrfs/btrfs 0x7e2ee765 ulist_free +EXPORT_SYMBOL fs/btrfs/btrfs 0xa2eec2e8 ulist_fini +EXPORT_SYMBOL fs/btrfs/btrfs 0xb1320bc8 ulist_add +EXPORT_SYMBOL fs/btrfs/btrfs 0xb42289d2 ulist_alloc +EXPORT_SYMBOL fs/btrfs/btrfs 0xc2c745db ulist_next +EXPORT_SYMBOL fs/configfs/configfs 0x0b8734f7 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x12c1ef51 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x1c167c25 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x54508269 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x6e7e9871 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x7f4ce456 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0xa771c5d1 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xa90cb2d1 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xb5ac1834 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xcad90947 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xf0f33b04 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xf5ec6e85 config_item_put +EXPORT_SYMBOL fs/exofs/libore 0x0978e69e ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0x17a1dda3 ore_create +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x4527e170 ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x4ba7ff20 ore_remove +EXPORT_SYMBOL fs/exofs/libore 0x5f7f6514 ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0x7462c4f7 ore_write +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xae9d0881 ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0xc1492f43 ore_read +EXPORT_SYMBOL fs/exofs/libore 0xd1da0b69 ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0xd37e399c extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0xf2923917 ore_get_io_state +EXPORT_SYMBOL fs/fscache/fscache 0x00701b01 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x0facc372 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x12dcbcfb fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x18c36a39 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x2b07fcf6 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x2b884f41 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x32a3a322 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x34ded431 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x38cec0b2 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x3a3a239a __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x411b6edc fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x4722247d __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x4a6a1fc3 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x4b48ee64 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x5538b4d0 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x67b878ce fscache_op_complete +EXPORT_SYMBOL fs/fscache/fscache 0x6b8b3a0e __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x6ca9f8e2 __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x72453d95 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x8758d19b __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x88153118 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x8eb97838 __fscache_wait_on_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0xa47c148f __fscache_enable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xa6d521cf __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xa7b4a3b5 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xa9545326 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0xa9bea072 __fscache_check_consistency +EXPORT_SYMBOL fs/fscache/fscache 0xbe7f5490 fscache_mark_page_cached +EXPORT_SYMBOL fs/fscache/fscache 0xc066197a __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xd0dea5b4 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0xdbbe76ba __fscache_disable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xdca908e5 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0xdfb32b96 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xe312923d __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xe6729f25 fscache_object_destroy +EXPORT_SYMBOL fs/fscache/fscache 0xf458ed0a __fscache_readpages_cancel +EXPORT_SYMBOL fs/fscache/fscache 0xf6f3ca10 fscache_object_init +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xa0f4b528 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0xb25b2957 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0xe13337f0 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x381153ba qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x809d0d70 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x85eab892 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xa3a32323 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xb3a72761 qtree_entry_unused +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0x41248eaf crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x066c8306 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x0c9ff2c3 lc_find +EXPORT_SYMBOL lib/lru_cache 0x0d2dc6b3 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x2bca6ccb lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x3691748f lc_set +EXPORT_SYMBOL lib/lru_cache 0x43e46a2d lc_committed +EXPORT_SYMBOL lib/lru_cache 0x452c8b46 lc_del +EXPORT_SYMBOL lib/lru_cache 0x60fd5d64 lc_is_used +EXPORT_SYMBOL lib/lru_cache 0x75a91db9 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x8af6181d lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0xa2873827 lc_try_lock +EXPORT_SYMBOL lib/lru_cache 0xb74693bf lc_try_get +EXPORT_SYMBOL lib/lru_cache 0xbb6d3769 lc_create +EXPORT_SYMBOL lib/lru_cache 0xbd032277 lc_put +EXPORT_SYMBOL lib/lru_cache 0xef129f5b lc_get +EXPORT_SYMBOL lib/lru_cache 0xf88f7076 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0xf9b6ff79 lc_get_cumulative +EXPORT_SYMBOL lib/lz4/lz4_compress 0xcbc5d521 lz4_compress +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x26c3aa22 lz4hc_compress +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0x7456cc61 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/raid6/raid6_pq 0xd9e91f83 raid6_vgfmul +EXPORT_SYMBOL net/802/p8022 0x48c1e24b unregister_8022_client +EXPORT_SYMBOL net/802/p8022 0xb8c6d098 register_8022_client +EXPORT_SYMBOL net/802/p8023 0x1d6615f3 make_8023_client +EXPORT_SYMBOL net/802/p8023 0x9d299673 destroy_8023_client +EXPORT_SYMBOL net/802/psnap 0x154de297 unregister_snap_client +EXPORT_SYMBOL net/802/psnap 0x72de4f94 register_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x0b66153d p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x142f7ff2 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x27f80e0f p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x2a76f4f1 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x2af1990d p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x2afd8134 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x320e84e0 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x33806714 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x33f68831 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x34203b2f p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x37ce6d37 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x4130dee3 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x44d2c2c0 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x458687ce v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x4c630cd8 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x4ca10ffd p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x59a82099 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x5b26b18d p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x5e069381 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x6368727e p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x646f9e4e p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x6a5d2ef5 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x70f1f51f v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x7b487954 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x7d3a9d49 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0x7e37b82c p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x87675956 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x8e186c24 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x8f7ae304 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0xa48d7782 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xa7f931ce p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xa8e52984 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xaf1e6223 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0xafa568de p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xafd1ef6f p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xb4aa6525 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xba1607a7 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0xbea5eecf p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xdf7a5500 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xe151603e p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xe1a77db1 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0xe3003ec8 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf7672e29 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x19b46f7a atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x1c498355 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xccbbac7c aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xf453aa98 atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x023430bc atm_charge +EXPORT_SYMBOL net/atm/atm 0x0b8c703f register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x2347eb95 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x25c56a1c atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x2d0f8a36 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x3548e443 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x58308e20 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x682b4a81 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x8c05de92 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa397b126 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0xa8f90612 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xca87b453 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xd5009db3 vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0xe18f1ae0 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x26bb3720 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x30672177 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x38b75010 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x3afee63e ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x93fc2ff2 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0xbc235b0a ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xcc737922 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd4933fe9 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xf42a710a ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xf8331010 ax25_hard_header +EXPORT_SYMBOL net/bluetooth/bluetooth 0x04ae9ab1 l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1781fe18 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1eb6b874 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x264d24c0 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x27c7d719 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3575c316 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x48e47ac7 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4a2de33a hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b1e68d0 bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4ce74aa6 l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5d1121c0 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x600577f7 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6214d4d8 l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6ae256b1 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x77e42322 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c640527 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x822b7f44 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x85c7a68b hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8c8922ce bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x90ee6709 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9403fe14 bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0x94e22297 __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x96244434 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9814cfe7 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9e6e377c l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0xae3c9c0d bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb61a0c3b bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbb4d04d2 __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc0e92925 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc48888ce hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc82e02e4 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcbb71734 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdea905a0 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe6242afa bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xeb992111 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xeee02f9a hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xefde5d33 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf08589bd bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfd0da9af bt_sock_wait_state +EXPORT_SYMBOL net/bridge/bridge 0x5548b64d br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x8abe69e4 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xaf1a0bde ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc4b1571f ebt_unregister_table +EXPORT_SYMBOL net/caif/caif 0x0070f1b2 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x38701a7c cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x6a44fc70 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x70451f1e caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x966d7de2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xb1a7fca3 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0xb7148a26 caif_enroll_dev +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/caif/caif 0xf61740c8 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/can/can 0x3f2e99da can_rx_register +EXPORT_SYMBOL net/can/can 0x75375248 can_proto_register +EXPORT_SYMBOL net/can/can 0x84eebb3a can_proto_unregister +EXPORT_SYMBOL net/can/can 0xc945c356 can_ioctl +EXPORT_SYMBOL net/can/can 0xd3969fc4 can_rx_unregister +EXPORT_SYMBOL net/can/can 0xe190b9fd can_send +EXPORT_SYMBOL net/ceph/libceph 0x08c87da6 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x1475bf0d ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x14c379d3 osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0x15686ed7 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x17505c9a osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1db0579d ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x20d151cb ceph_osdc_setup +EXPORT_SYMBOL net/ceph/libceph 0x2496e1fc ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0x2aa7f514 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x2e76a68a osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x2f0f53f9 osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x3375e600 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x3733d001 ceph_auth_create_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x37420c46 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x378e1fd0 ceph_auth_update_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x39a55443 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3c1bafce ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x3df0ec7c ceph_calc_ceph_pg +EXPORT_SYMBOL net/ceph/libceph 0x3ea35124 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x3f039834 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0x3f688151 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x4205ffd7 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x43efd647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x4786525d ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x47e686ec ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x4894b13d ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0x48e60cbe ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x49a0c416 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x4b44c180 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x4d2abcb8 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x4fa782e3 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x56dffafc ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x57c3900d ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x653b9e49 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x678bb47b ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x6b2e3bcd ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x6c5d5ac1 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6dec570b ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x6eef044f ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x70140739 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x7507cd66 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7b0ff7b7 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x7eb86074 osd_req_op_cls_response_data +EXPORT_SYMBOL net/ceph/libceph 0x8153a9af osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0x8b482a18 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0x8df03363 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x8e1cc96c ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x944e9653 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x977a73c1 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x97b5fc07 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x99de4738 ceph_messenger_init +EXPORT_SYMBOL net/ceph/libceph 0x99e36571 ceph_osdc_cleanup +EXPORT_SYMBOL net/ceph/libceph 0x9f504960 osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xa87c66bc osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xa87ce2a3 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xae3515ba ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xaff6729c ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0xb0dbd93c ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xbb1e7d4d ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0xbc8e99c7 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0xbf1ae9a8 osd_req_op_watch_init +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc55de604 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xc6f2e77c osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0xc81c5bba ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0xc9556cb3 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb4368a8 ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcc38215e ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0xd1248667 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd5618f55 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0xd60fe89b osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0xd829a978 ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0xdb42d469 osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xdf7296d1 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0xe30c9e0f ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0xe82c9c32 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0xebb48f19 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0xec358a1a ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xee03c061 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0xf12c2434 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xf5a08f9d ceph_osdc_writepages +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x93e91c04 dccp_syn_ack_timeout +EXPORT_SYMBOL net/ieee802154/ieee802154 0x0dee7dca ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x136de028 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2041f94d ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x21c8fd91 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x27cc08ff ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2a19eafd wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2a910626 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x64d194e5 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa72aac23 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xab6439ca wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb8cd20e6 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe435b9c8 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xfb2f5cdd wpan_phy_unregister +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x23233c0e arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x56334982 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x5bff3ca8 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xab650323 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xce7279d9 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xec5610c7 ipt_do_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x063b46d2 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xcfb0d2ee xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x450bf8d2 ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xf1de8b8e ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x165f0752 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x49c03cbb ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa8bb6249 ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x678ce5c9 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xf561a8c7 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x3364ad3e xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x6cea334c xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x1d85c05f ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x356cf622 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x54a80f78 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x635e1fe1 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa527a990 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd0e3af66 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd6c001bf ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf2b25043 ircomm_connect_response +EXPORT_SYMBOL net/irda/irda 0x0064e0ea hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0c62bbfb async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x135d3d43 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x1e6cade0 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x26ced8b6 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x33cbe2c6 proc_irda +EXPORT_SYMBOL net/irda/irda 0x352fffc5 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x36646f1e alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x3e56064f hashbin_new +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x44d1ce3d async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x505fb0cc irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x511af464 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x56f6e006 irlap_close +EXPORT_SYMBOL net/irda/irda 0x589e9ca1 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x59f5c701 iriap_open +EXPORT_SYMBOL net/irda/irda 0x601bda46 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6b5fbcef hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x6e0ab3c7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7dc3a422 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x7ddad8be irttp_dup +EXPORT_SYMBOL net/irda/irda 0x7e17d8b3 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x85d88217 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x8ac1bfe5 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x9450e9fb irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x97c3af2a irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9c6ef3ac irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x9e4659e7 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xa1d41e58 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xaa557515 irias_new_object +EXPORT_SYMBOL net/irda/irda 0xb6aa6915 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc3cc6176 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xc68e43be irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0xcead7dbb hashbin_find +EXPORT_SYMBOL net/irda/irda 0xd2108314 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd726f42a irlap_open +EXPORT_SYMBOL net/irda/irda 0xd918d078 iriap_close +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe3463529 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xe3bde43e irias_insert_object +EXPORT_SYMBOL net/irda/irda 0xea218621 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xecad7f92 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf0a694a1 irias_find_object +EXPORT_SYMBOL net/irda/irda 0xf5876b95 hashbin_remove_this +EXPORT_SYMBOL net/l2tp/l2tp_core 0x30451cdb l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x213d47bd lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x2347515c lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x3a5b4a94 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x5710bc52 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x70f3318b lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x71f18e9d lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x7460b38e lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xba7a35e0 lapb_data_request +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x49eab12d llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x7a71c0cd llc_add_pack +EXPORT_SYMBOL net/llc/llc 0xa7e4b775 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0xc35e28f7 llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0xcb9d8cf2 llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0xd0b9fba6 llc_sap_find +EXPORT_SYMBOL net/llc/llc 0xee381832 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0xfa894cdf llc_sap_open +EXPORT_SYMBOL net/mac80211/mac80211 0x009376f2 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x0526bf47 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x06f940fd ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x087f5ae7 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x0d4dd761 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x12b51a5f ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x16496979 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x1aa7f01c ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x1d891384 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x21a2ae71 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x2c12db0e ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x2d6d3b36 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x317abe4b __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x32d6d178 ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0x3563c5bd ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x3630f122 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x36eaee5c wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x3f6f1f96 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x4dd85d04 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x4df8100b ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x53f26ea1 ieee80211_csa_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x545951cd ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x5556aebc __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x59ae9a20 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x5b8613a3 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x65ff3207 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x67dddd1c ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0x6abccff3 ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x6b9180e1 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x769b2056 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x7a1938c2 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x7b37e2cb ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x7b3d833f ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x7d2ef5f2 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x80eefbdc ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x825c7002 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x85d288c4 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x8c1aeeb9 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x9125abea ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x953a7cb2 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x9b892e01 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x9c5e6334 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0xa1fc36c4 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa5edd59a ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xa9a0b15f ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xac3e5856 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xb0a3162f ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0xb3276ea9 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xb6cdbcc6 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0xb700e018 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xbaf67cfd ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0xbebe51ba rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0xc0b98a21 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0xc0c17fbd ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xc0d46b84 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xc94a1099 ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0xcbb41111 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xcccafe99 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xd1deed9f ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0xd6643fc1 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0xda4ec823 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xde3aacf8 ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xe02fb91a ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xe0ba23fa rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xe1394e2f ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0xf2bbe981 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xf342332d ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xf395de03 ieee80211_aes_cmac_calculate_k1_k2 +EXPORT_SYMBOL net/mac80211/mac80211 0xf4e334f7 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac802154/mac802154 0x02be4fbc ieee802154_alloc_device +EXPORT_SYMBOL net/mac802154/mac802154 0x205255d3 ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0x53c129e6 ieee802154_unregister_device +EXPORT_SYMBOL net/mac802154/mac802154 0x77809739 ieee802154_register_device +EXPORT_SYMBOL net/mac802154/mac802154 0xf154dd70 ieee802154_free_device +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0739c919 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x142a5f08 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x197de9c5 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1d640e59 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x252f0de1 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x32df9742 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3eaf2c44 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x48486e7d ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5b9c3ac4 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x82a6aff7 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8b805c2c unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb5b35fd8 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd896cde3 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe7f6096e ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x50672cde __nf_ct_ext_add_length +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x683f0103 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xbbb2e352 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x827cc6a1 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x09a6863c nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/nf_nat 0x11392507 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x4c902815 nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0x75d93159 nf_xfrm_me_harder +EXPORT_SYMBOL net/netfilter/nf_nat 0x82fa9394 nf_nat_used_tuple +EXPORT_SYMBOL net/netfilter/nf_nat 0x87896d7a nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0x9d5d7aae nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x0fc1ee6d xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x2065d490 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x3e9061e5 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x45705d14 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x5a68ff5f xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x8e9ea784 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x9b4f7524 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xa2c24086 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xe18e17b2 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xe1e3d3a6 xt_unregister_targets +EXPORT_SYMBOL net/nfc/hci/hci 0x07923518 nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0x10db0da8 nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0x34f71d92 nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0x3704beff nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x43028a27 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x526c90c3 nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x54a93c8a nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0x6e46318a nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0x75f4d701 nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x91b337e9 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0x98bd2510 nfc_hci_send_response +EXPORT_SYMBOL net/nfc/hci/hci 0xa1c8414e nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0xbca0b4fd nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xd2044066 nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0xd350e930 nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xe2d05b31 nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0xe33b12b4 nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0xe825fca7 nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0xeedce6fa nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0xf07192b3 nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0x72a8ccb3 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xb46b8be6 nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xca060221 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0xf0b7baf5 nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0xf0e6abf3 nci_register_device +EXPORT_SYMBOL net/nfc/nfc 0x00cdfa86 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x04adde81 nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0x09b5ddf5 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x0cd97f60 nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0x1984950a nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0x2a8607ee nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x31f74255 nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0x3a0cab7b nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0x4e13be68 nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x4f550f5a nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0x5aa12ff9 nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0x872d883c nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0xb24711bd nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0xb369d0ee nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0xbd29f791 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0xc4f668b2 nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0xc9eb1ecd nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0xcfa67c8a nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0xda5707d5 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0xf0fb2823 nfc_register_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x0b731786 nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x2eebf002 nfc_digital_register_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x3d42e1b0 nfc_digital_free_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x72822f2e nfc_digital_unregister_device +EXPORT_SYMBOL net/phonet/phonet 0x0e1589e1 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x1b3be647 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x269390e0 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x58a3f0ab phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x61336252 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x7703b51e pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x9757a040 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xfd9084b3 pn_skb_send +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x09af93af rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x107a5ee3 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x36a5c918 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4ab81a63 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5830edb6 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x657f4cc6 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x82ce3a80 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8a03c69a rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8e9efdb2 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8fa05cfb rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x98ff2cf0 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa4424f52 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd284119a rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdb56c71a rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf0d7d5a2 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/sctp/sctp 0xf811a71d sctp_do_peeloff +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x020920f2 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x1733e15f gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x7d909a2e gss_mech_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0x41127525 svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0x0ad2bff7 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0x2593dfc6 wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x09710d03 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0af901f2 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x1324ce86 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x14204de0 cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x14371b16 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x1861b831 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x197b4af3 cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0x19e03378 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x1ab42a78 cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0x1fbc0343 cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x1fe402e7 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x24bcc2f2 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x25258dca wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x258bafdc cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x268c8e77 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x271be8da cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x2b0cac08 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x3816a6fc wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x3b4f218c cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x406a8302 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x42c0597a cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x43d0915c cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x4c3b5878 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x4c40b2fb ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x4dfd8158 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x549ae50f ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x59c93080 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x610cc7be cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6b7ee396 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x6b947770 cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x6c60d1d3 cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x6d6cb9ad ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x6f2ce946 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0x70815759 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x8113814f cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x813432d6 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x82afee4d wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x8944a5c5 cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x89acf248 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x90a4f686 cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x90f62db4 cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0x91020cb3 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x93723f9b cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9f5e80cb wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xa1425906 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa5088ed0 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xa9b99d16 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xad0d8707 cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xaee33b61 cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xb2fef930 cfg80211_report_obss_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0xb3acc054 cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0xb8b9567f wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xbcd7bf9f cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0xbeaa9508 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xbfde1af7 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xc15c8611 cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc6cd20ba __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xcdb572ce cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xcf618a57 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0xd0bc194b cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0xd384ee0d cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0xdba126c1 reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0xdf843e90 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xdfb4a4dd cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xe1cc91d9 cfg80211_roamed_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xe4ecd0e6 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xe769a0b5 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xec82ba08 cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xee42db3c cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xf761c908 cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xf9b1cdce cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xfa8dd9fa cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xfaf1b62e cfg80211_inform_bss_width +EXPORT_SYMBOL net/wireless/cfg80211 0xfc90be4b cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0xfcbce915 cfg80211_inform_bss_width_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xfd6d1245 cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/cfg80211 0xfff80d63 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/lib80211 0x0da39c29 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x11001cd1 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x4ddf7dd0 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x594eea63 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x85642608 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0xfa143bb2 lib80211_unregister_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x63445d89 ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6c1f1cf8 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6d093d58 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7316afc1 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x84924d44 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x409ea522 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x52744631 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x072d978b snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x13a17752 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2eed26bf snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x4d5ca523 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x592f6e9b snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd7c7afcc snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe60fb228 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xecbde43c snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x0af37270 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x000d4dea snd_card_create +EXPORT_SYMBOL sound/core/snd 0x0085aabc snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x09c7ff57 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x0b0b4ffb snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0x0decd307 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x12a62a11 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x1bcb3c2a snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x1f4e30c8 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x27a67689 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x3112caa9 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x36e732ec snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x38aa1ed6 snd_card_unref +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x41315a71 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x46ceb92c snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x47429f69 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x4754a8b3 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4b015768 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x5099aa53 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x5853a905 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x653ceef9 snd_card_register +EXPORT_SYMBOL sound/core/snd 0x6bb99915 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x75b0a1c3 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x771adb02 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x7f88e8d1 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x808404c8 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x832e306f snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x858141b8 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x88f097fb snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x8bfbcf67 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x99dfee81 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa98ba5cc snd_device_register +EXPORT_SYMBOL sound/core/snd 0xb1adb71e snd_component_add +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xba9aec58 snd_info_register +EXPORT_SYMBOL sound/core/snd 0xc22774a3 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xc65eb5d5 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xccad2f82 snd_cards +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xd738744a snd_device_new +EXPORT_SYMBOL sound/core/snd 0xd740b6f3 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xdc789f5e snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xe05c8cbe snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xe49a3efe snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0xf0414951 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xf2d9dc51 snd_card_free +EXPORT_SYMBOL sound/core/snd 0xf5234b58 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xfc17f3a7 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0xfe6a28f6 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd-hwdep 0x58ddd096 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x180f474a snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x2bb1b446 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x8e7af17d snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xd89ce024 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xd9705492 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x069b5d4f snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x0976083d snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x0edb0766 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x125b485b snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x132f39bd snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x18787334 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x1b22cd4d snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x35510cc8 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x35cb0aa6 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3a813e66 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x3b7d9ea2 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x3f129437 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x3f73a9ae snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x413319ef snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x44856e43 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x45255df3 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x533c4ad2 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6957897c snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x6cf7a01e _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x6d6b8752 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x6fb19a79 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x74bffea1 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x782ea62f snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x78ca05a0 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0x7a30e5e0 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x7d2133be snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x94098ff8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0x95154cbb snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x9a5ce418 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x9a696050 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xa3f75163 snd_pcm_debug_name +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xaff6d7ac snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbb8a4325 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xbcc0e999 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xc0b3fcee snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0xc54a9904 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xcd0d4038 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0xd5fb21a2 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xdd8c7fcd snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe6e80e9a snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xede1432c snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xee8b27de snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf6a39d2f snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xf7173f9c snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xfdfdb034 snd_pcm_new_internal +EXPORT_SYMBOL sound/core/snd-pcm 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0d5a7ff2 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2d640ba7 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3a83e404 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x41561a98 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4b73a2bb snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x712cbdc5 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7f334523 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x80ea653d snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x88f78686 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9f782613 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa421c9b1 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xaff1553f snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb5ac4e30 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xda7af726 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdce9381c snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf31907c3 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf6a00175 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-timer 0x0d642339 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x33cbdbd0 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x43e95d1a snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x481f111d snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x492c3c31 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x6207dfd9 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x6ff3528f snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x729ebfa1 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xc584e785 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xc5cd6e13 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0xd68cc14d snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0xe1e5e503 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xfedd4fd3 snd_timer_interrupt +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x5d9659fe snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x235e1e9f snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x3692bae2 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4bf04294 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa8c7eb48 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xc9d4b0f3 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xcf6ac7c4 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd2a4ad97 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe05f886f snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf2d811b2 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x223f196d snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x61eabfaf snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6d8c78f0 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x89ae5ff6 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8ac1648f snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8f1137ef snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x92ad57fa snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb760cda6 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xbd7ab805 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0227aa4c amdtp_out_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0719b5a7 cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0c2bcfcb cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x159048a0 fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1d6cccb5 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x20254e45 amdtp_syt_intervals +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2796f9bf cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2d39daa2 amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x408b54ca iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x45730339 amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4750d7ef fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x49ac6f58 amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x631d0f2f amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6a91b55f amdtp_out_stream_set_parameters +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6e54f088 amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7c330e89 iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x8a6c0d9e amdtp_out_stream_pcm_pointer +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa76876fa fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb6068b7e amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd15a09db amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xdce5e7ed snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe3eba96d fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf3a937f2 cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf62fa28b amdtp_out_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf736e4ed fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf8589a3c fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xfe5569f1 cmp_connection_establish +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x5008c512 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x50e5a127 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x814e7fd8 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xac34e73b snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xb50bffd4 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xdf94a4a2 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x53afccca snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x97485254 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd4266036 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd8ba5f8d snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xdd551622 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xec8efd09 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x0596d524 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x10edebf5 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x359142ea snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x467204ad snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x7ce65de4 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xd2366f71 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x407a147c snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x46603f5d snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x6e298894 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xb36c0be6 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xef0fbc6c snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-i2c 0x0a8b1030 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x1f94242f snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x35fe74ae snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x4b0a1046 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xcfbbfd36 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0xdbb35463 snd_i2c_sendbytes +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x03957144 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2e4b4950 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x306a3074 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x46f08ecd snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x77f24260 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8e806669 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x98c609a9 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa695c19a snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xece321bb snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xfa0474e1 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xb937af45 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe0b3f690 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xfc21d7fb snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xfce85d3e snd_sb16dsp_pcm +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0bb20e98 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x16ca4e35 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x57c5fb85 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x64c70c69 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x74c4821f snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x786ca513 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7aa99f46 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8169fcaf snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9a35bff8 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xad33590b snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb503da0a snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xba4f0557 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbd7d7d4c snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbf144ea9 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xcca98d73 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xec0b9798 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xec26ffb4 snd_ac97_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x08d90240 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x25f87acf snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x3dcac7b4 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4e40fbde snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x587d4b39 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x5b1e17e0 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x921759ea snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb7ca808a snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf3dee6ad snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x07ce1adf snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x56d9b293 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x6719fdf5 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0728eb20 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1a321ff1 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2ce3e39a oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x37804a16 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3c9bd386 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4c0a1ff2 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x537b4d5e oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6e4afcfc oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x88c30038 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8953c6f4 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x945304d8 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa8abfe51 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xaef37072 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xaf3dd223 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb75200a5 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb960763f oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcae1a4b7 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd4dfa86f oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xfd515860 oxygen_write16 +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x0fc521ad snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x158c5b49 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x501cd373 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x502d42f4 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xae835728 snd_trident_alloc_voice +EXPORT_SYMBOL sound/soc/fsl/snd-soc-fsl-utils 0xf65d2d6a fsl_asoc_get_dma_channel +EXPORT_SYMBOL sound/soundcore 0x1ce655cf sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x0ffd72d4 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x1c40a7e9 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x2c607504 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x94cf855e snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x9a69b7f4 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe3eff69f snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/snd-util-mem 0x17778fbc snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x2bbf454e snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x3ee1ce2a snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x8f3202e7 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xbcb3cad8 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xd3c86014 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xdc40f345 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf6aeaba9 snd_util_mem_avail +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x9e64ecc3 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 __symbol_put +EXPORT_SYMBOL vmlinux 0x00000000 current_fs_time +EXPORT_SYMBOL vmlinux 0x00000000 d_tmpfile +EXPORT_SYMBOL vmlinux 0x00000000 do_sync_read +EXPORT_SYMBOL vmlinux 0x00000000 filp_close +EXPORT_SYMBOL vmlinux 0x00000000 finish_open +EXPORT_SYMBOL vmlinux 0x00000000 generic_getxattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_write_sync +EXPORT_SYMBOL vmlinux 0x00000000 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x00000000 in_group_p +EXPORT_SYMBOL vmlinux 0x00000000 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x00000000 iov_shorten +EXPORT_SYMBOL vmlinux 0x00000000 iterate_fd +EXPORT_SYMBOL vmlinux 0x00000000 ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 path_is_under +EXPORT_SYMBOL vmlinux 0x00000000 register_exec_domain +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout +EXPORT_SYMBOL vmlinux 0x00000000 sock_register +EXPORT_SYMBOL vmlinux 0x00000000 sys_close +EXPORT_SYMBOL vmlinux 0x00000000 task_nice +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x00000000 vm_brk +EXPORT_SYMBOL vmlinux 0x000a7cfb elv_register_queue +EXPORT_SYMBOL vmlinux 0x00136362 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x002203ff qman_volatile_dequeue +EXPORT_SYMBOL vmlinux 0x004e4b58 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x004f88e0 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x005bef26 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x00786aab flush_dcache_page +EXPORT_SYMBOL vmlinux 0x007ff5a2 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00975109 pme_ctx_is_dead +EXPORT_SYMBOL vmlinux 0x00cf4a7f of_get_parent +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00f3d72a inet6_register_icmp_sender +EXPORT_SYMBOL vmlinux 0x00f40751 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0101d5b1 ip_idents_reserve +EXPORT_SYMBOL vmlinux 0x010c026c mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01271dba neigh_lookup +EXPORT_SYMBOL vmlinux 0x012e141f fbcon_set_rotate +EXPORT_SYMBOL vmlinux 0x012fc382 check_disk_change +EXPORT_SYMBOL vmlinux 0x013a8ea9 crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x013b9227 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x018b8b60 igrab +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x0194501d __alloc_skb +EXPORT_SYMBOL vmlinux 0x019e7765 __init_rwsem +EXPORT_SYMBOL vmlinux 0x01a456b2 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x01c8e84d ida_simple_get +EXPORT_SYMBOL vmlinux 0x01ff57b6 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x02044d67 dquot_disable +EXPORT_SYMBOL vmlinux 0x020bfc35 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x02154b64 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x021586fc shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x02403b56 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x027b2b81 handle_edge_irq +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02b71cb1 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0x02b8966e i2c_master_send +EXPORT_SYMBOL vmlinux 0x02cf9ba6 follow_up +EXPORT_SYMBOL vmlinux 0x02da032b nobh_write_end +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x030c91c2 napi_get_frags +EXPORT_SYMBOL vmlinux 0x0312c64f wireless_send_event +EXPORT_SYMBOL vmlinux 0x03207bf9 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x03542b19 inet_bind +EXPORT_SYMBOL vmlinux 0x035591e0 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x0363a030 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x036dc400 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03b19bc8 tty_unlock_pair +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03e23fe6 vfs_getattr +EXPORT_SYMBOL vmlinux 0x03edb77d inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x03fdb8f8 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x03fea916 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x040209ab netif_skb_dev_features +EXPORT_SYMBOL vmlinux 0x04074f48 ioremap +EXPORT_SYMBOL vmlinux 0x041493fc bio_integrity_free +EXPORT_SYMBOL vmlinux 0x0414dd92 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x0420682e jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x0433cba5 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x04365631 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x045096ad tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x04524138 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x04600499 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x04796bea lookup_bdev +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x0489fb3b __bforget +EXPORT_SYMBOL vmlinux 0x04a15786 ata_std_end_eh +EXPORT_SYMBOL vmlinux 0x04c73cd0 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x04df67c0 cdrom_check_events +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04eec807 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x04f6da30 update_region +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x052b0ffe tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0x0530dede _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x054e9943 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x0565b60b __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x058b2336 submit_bh +EXPORT_SYMBOL vmlinux 0x0593a99b init_timer_key +EXPORT_SYMBOL vmlinux 0x05958010 consume_skb +EXPORT_SYMBOL vmlinux 0x05977d7b mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05a6b025 netlink_ack +EXPORT_SYMBOL vmlinux 0x05b3c574 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x05b77d1e mach_xes_mpc8548 +EXPORT_SYMBOL vmlinux 0x05bdc0a3 request_firmware +EXPORT_SYMBOL vmlinux 0x05c7c35e qman_get_null_cb +EXPORT_SYMBOL vmlinux 0x05d9d031 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x0613f57c read_cache_pages +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x0645932f textsearch_register +EXPORT_SYMBOL vmlinux 0x06489d52 bman_rcr_is_empty +EXPORT_SYMBOL vmlinux 0x0652189c vc_cons +EXPORT_SYMBOL vmlinux 0x0675c7eb atomic64_cmpxchg +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06913bc9 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x06aa40a6 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x06bbb24a mempool_resize +EXPORT_SYMBOL vmlinux 0x06e1eeac of_create_pci_dev +EXPORT_SYMBOL vmlinux 0x06f47b91 d_find_any_alias +EXPORT_SYMBOL vmlinux 0x06f84056 dev_queue_xmit_accel +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x070b73a0 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x07148af9 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x07180d90 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x0738453d pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x074e9213 down_killable +EXPORT_SYMBOL vmlinux 0x075bcda6 get_super_thawed +EXPORT_SYMBOL vmlinux 0x0778d7a0 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x077b1c5a dump_skip +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07f0e07f tcp_ioctl +EXPORT_SYMBOL vmlinux 0x080f912a freeze_bdev +EXPORT_SYMBOL vmlinux 0x08176d28 scsi_host_put +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x082daf91 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x083c2cbe of_get_next_parent +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x08815f5a give_up_console +EXPORT_SYMBOL vmlinux 0x08c58221 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x08cc84e7 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x08de5c3b mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x08fd1fa5 mach_mpc8568_mds +EXPORT_SYMBOL vmlinux 0x093989a1 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x093a0da6 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x094e4520 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x0952c006 skb_queue_head +EXPORT_SYMBOL vmlinux 0x09530bc9 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x09551b60 nf_log_register +EXPORT_SYMBOL vmlinux 0x09595ee5 nf_register_hook +EXPORT_SYMBOL vmlinux 0x09790e91 i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0x097e51e4 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x097f5510 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09b1dc2e phy_detach +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09e0ea83 netdev_master_upper_dev_link_private +EXPORT_SYMBOL vmlinux 0x09ee6793 flush_tlb_page +EXPORT_SYMBOL vmlinux 0x09fd14a2 generic_write_end +EXPORT_SYMBOL vmlinux 0x09fd93b4 qman_create_fq +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a268e6a nf_reinject +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a31b0f5 vm_insert_page +EXPORT_SYMBOL vmlinux 0x0a469d23 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0x0a49d3c4 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x0a7edf6f md_register_thread +EXPORT_SYMBOL vmlinux 0x0a880226 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x0a9f6d59 pme_attr_set +EXPORT_SYMBOL vmlinux 0x0aa25b04 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x0aa3f6eb inode_init_once +EXPORT_SYMBOL vmlinux 0x0ab04e75 tty_throttle +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0af454fb d_invalidate +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1bd883 is_bad_inode +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b2bb148 make_kprojid +EXPORT_SYMBOL vmlinux 0x0b2ce1c6 tty_port_close +EXPORT_SYMBOL vmlinux 0x0b3fa368 ping_prot +EXPORT_SYMBOL vmlinux 0x0b415ae6 sock_create_lite +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b4b6d88 netdev_err +EXPORT_SYMBOL vmlinux 0x0b559a2d dma_direct_ops +EXPORT_SYMBOL vmlinux 0x0b56117f of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0bbc5908 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bc61a18 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x0bfa77b9 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x0bfb1175 tty_hangup +EXPORT_SYMBOL vmlinux 0x0bfd98a7 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x0c12e626 __debugger_bpt +EXPORT_SYMBOL vmlinux 0x0c19494e get_fs_type +EXPORT_SYMBOL vmlinux 0x0c1d3c36 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x0c29fa1c tc_classify +EXPORT_SYMBOL vmlinux 0x0c3dbb56 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x0c438aaa pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x0c45fc96 vfs_lstat +EXPORT_SYMBOL vmlinux 0x0c4cc02c dump_emit +EXPORT_SYMBOL vmlinux 0x0c58a8cd netdev_increment_features +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c9b6089 nvram_get_size +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca2734d xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cb34866 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x0ce900af blk_finish_plug +EXPORT_SYMBOL vmlinux 0x0cf7b8cc xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x0cfa2b35 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x0d1f4cd3 seq_puts +EXPORT_SYMBOL vmlinux 0x0d449491 build_skb +EXPORT_SYMBOL vmlinux 0x0d44ddf2 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d7535fa blk_run_queue +EXPORT_SYMBOL vmlinux 0x0d95398f lease_modify +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da16610 __destroy_inode +EXPORT_SYMBOL vmlinux 0x0dac962c seq_release +EXPORT_SYMBOL vmlinux 0x0db21ad8 bio_add_page +EXPORT_SYMBOL vmlinux 0x0dbb8ffd d_find_alias +EXPORT_SYMBOL vmlinux 0x0dbe720a alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x0de90241 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x0dfb898a pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x0e00ff52 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x0e10602c ps2_drain +EXPORT_SYMBOL vmlinux 0x0e4f6acd make_kuid +EXPORT_SYMBOL vmlinux 0x0e4f845c agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x0e508540 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x0e6bf9a3 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x0e6da44a set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x0e8f30f6 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x0eaf451e hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x0eb11920 unregister_nls +EXPORT_SYMBOL vmlinux 0x0eb6baba ip6_expire_frag_queue +EXPORT_SYMBOL vmlinux 0x0ecb1549 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x0ed057e0 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0x0ef69857 pme_ctx_pmtcc +EXPORT_SYMBOL vmlinux 0x0efab3f9 padata_do_parallel +EXPORT_SYMBOL vmlinux 0x0efcbb1b set_current_groups +EXPORT_SYMBOL vmlinux 0x0f0f3aa1 ftrace_raw_output_prep +EXPORT_SYMBOL vmlinux 0x0f1a4e10 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL vmlinux 0x0f2d5f1f pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x0f31bf12 ipmi_smi_watcher_unregister +EXPORT_SYMBOL vmlinux 0x0f3f679d nf_setsockopt +EXPORT_SYMBOL vmlinux 0x0f43b282 mntget +EXPORT_SYMBOL vmlinux 0x0f4c91ed ns_to_timespec +EXPORT_SYMBOL vmlinux 0x0f5faa7e wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x0f609ab3 flush_tlb_range +EXPORT_SYMBOL vmlinux 0x0f6b2d50 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x0f8adb1b __dev_remove_offload +EXPORT_SYMBOL vmlinux 0x0f8c0149 pme2_have_control +EXPORT_SYMBOL vmlinux 0x0f9316c8 fm_mutex_unlock +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fbda9cd scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x0fc27b71 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x0fc748b5 fsl_ifc_ctrl_dev +EXPORT_SYMBOL vmlinux 0x0fd6a834 dcache_readdir +EXPORT_SYMBOL vmlinux 0x100b6c3f input_free_device +EXPORT_SYMBOL vmlinux 0x100c2f98 noop_llseek +EXPORT_SYMBOL vmlinux 0x102139dc set_disk_ro +EXPORT_SYMBOL vmlinux 0x1038ec89 cap_mmap_file +EXPORT_SYMBOL vmlinux 0x104324aa wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x10675a28 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x106f13ab crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x107e19e7 dev_trans_start +EXPORT_SYMBOL vmlinux 0x108dc322 serio_open +EXPORT_SYMBOL vmlinux 0x10af1051 tcp_child_process +EXPORT_SYMBOL vmlinux 0x10c04c23 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11056f89 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x110668f3 seq_read +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11097384 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x1149579e md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x1167d3a5 of_match_device +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x1182d83a cpuidle_disable +EXPORT_SYMBOL vmlinux 0x119b9717 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x11a8120a xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x11bca760 nobh_writepage +EXPORT_SYMBOL vmlinux 0x11c9185c of_iomap +EXPORT_SYMBOL vmlinux 0x11cba85a iget_failed +EXPORT_SYMBOL vmlinux 0x11d1b07c read_cache_page +EXPORT_SYMBOL vmlinux 0x11d4fb04 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x11e15743 sync_inode +EXPORT_SYMBOL vmlinux 0x11f1aa84 input_set_capability +EXPORT_SYMBOL vmlinux 0x11f2c9b0 get_write_access +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x120853de of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x120a5db0 mach_p1020_rdb +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x12110822 skb_append +EXPORT_SYMBOL vmlinux 0x122043a8 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x1235d53b find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x12605204 pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12bde32e inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12fa1798 __seq_open_private +EXPORT_SYMBOL vmlinux 0x13307fde vsscanf +EXPORT_SYMBOL vmlinux 0x133bacf3 mach_corenet_generic +EXPORT_SYMBOL vmlinux 0x1348760d ipmi_request_settime +EXPORT_SYMBOL vmlinux 0x134ec235 cad_pid +EXPORT_SYMBOL vmlinux 0x13690bc8 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x13767956 qman_enqueue +EXPORT_SYMBOL vmlinux 0x139394d5 misc_deregister +EXPORT_SYMBOL vmlinux 0x139b1c4a vga_put +EXPORT_SYMBOL vmlinux 0x13ac6b0e swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13e036b2 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x13e38f5c up_read +EXPORT_SYMBOL vmlinux 0x13fec4b8 devm_gpiod_get +EXPORT_SYMBOL vmlinux 0x1407c6e7 kmap_prot +EXPORT_SYMBOL vmlinux 0x1420b379 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x1423510f bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0x14475585 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x1454f533 pci_enable_device +EXPORT_SYMBOL vmlinux 0x148af52e dm_register_target +EXPORT_SYMBOL vmlinux 0x149843f1 pci_bus_put +EXPORT_SYMBOL vmlinux 0x14a49d3d key_revoke +EXPORT_SYMBOL vmlinux 0x14f45fcc bman_free_pool +EXPORT_SYMBOL vmlinux 0x1511b9ec prepare_binprm +EXPORT_SYMBOL vmlinux 0x1528658e skb_pull +EXPORT_SYMBOL vmlinux 0x15477b72 clocksource_register +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x156f6913 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x1585f63c input_inject_event +EXPORT_SYMBOL vmlinux 0x15864b03 flex_array_get +EXPORT_SYMBOL vmlinux 0x1586ef48 user_revoke +EXPORT_SYMBOL vmlinux 0x158f2f5c splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x159d7b21 kmap_to_page +EXPORT_SYMBOL vmlinux 0x15a29817 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x15a53ff3 md_integrity_register +EXPORT_SYMBOL vmlinux 0x15a7f942 file_open_root +EXPORT_SYMBOL vmlinux 0x15ca1076 key_reject_and_link +EXPORT_SYMBOL vmlinux 0x15d3fd60 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x15e192cb __cleancache_put_page +EXPORT_SYMBOL vmlinux 0x15e52f6c filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x15ee0ac5 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x15f571ec blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x160f658e bio_sector_offset +EXPORT_SYMBOL vmlinux 0x161d0033 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x1626ae49 end_page_writeback +EXPORT_SYMBOL vmlinux 0x162b22db security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x164451ef pme_ctx_reconfigure_rx +EXPORT_SYMBOL vmlinux 0x16487e97 security_path_unlink +EXPORT_SYMBOL vmlinux 0x1653c6ec __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x16540bbc __cmpdi2 +EXPORT_SYMBOL vmlinux 0x166b0df1 inet6_add_offload +EXPORT_SYMBOL vmlinux 0x168f02f9 fm_get_handle +EXPORT_SYMBOL vmlinux 0x1692e826 skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0x16a054c8 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x16a22899 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x16a89ef8 blk_mq_end_io +EXPORT_SYMBOL vmlinux 0x16b28d02 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x16c600f5 scsi_device_put +EXPORT_SYMBOL vmlinux 0x16c895a2 dst_release +EXPORT_SYMBOL vmlinux 0x16cc74e4 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x16cd100f bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x16cd2185 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL vmlinux 0x16f29f8d swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x17296b7b kill_fasync +EXPORT_SYMBOL vmlinux 0x1733b4c0 cont_write_begin +EXPORT_SYMBOL vmlinux 0x174198d5 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x17480aa7 seq_escape +EXPORT_SYMBOL vmlinux 0x17499ffb sock_no_mmap +EXPORT_SYMBOL vmlinux 0x17648396 dev_base_lock +EXPORT_SYMBOL vmlinux 0x17649976 inet6_getname +EXPORT_SYMBOL vmlinux 0x177e6f1f new_inode +EXPORT_SYMBOL vmlinux 0x177f0be0 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x179169c0 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x17a51217 dquot_release +EXPORT_SYMBOL vmlinux 0x17aa156a __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x17ae5e83 __inet_stream_connect +EXPORT_SYMBOL vmlinux 0x17b1125d gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x17b42c4f skb_checksum +EXPORT_SYMBOL vmlinux 0x17ba5a8b insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x17cf8672 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x17d519a3 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x17e28473 fsl_upm_run_pattern +EXPORT_SYMBOL vmlinux 0x17e7920d vfs_read +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x180345a8 elevator_init +EXPORT_SYMBOL vmlinux 0x18105b4d free_netdev +EXPORT_SYMBOL vmlinux 0x1826f089 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x1828ce6b sock_alloc_file +EXPORT_SYMBOL vmlinux 0x183721ed dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x18514b68 have_submounts +EXPORT_SYMBOL vmlinux 0x18580ba0 kobject_put +EXPORT_SYMBOL vmlinux 0x1870f8c1 qman_fqid_pool_alloc +EXPORT_SYMBOL vmlinux 0x188a3dfb timespec_trunc +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18c3a33f pci_remove_bus +EXPORT_SYMBOL vmlinux 0x18eefdbb tty_check_change +EXPORT_SYMBOL vmlinux 0x1901e060 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x190f79aa gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0x19111a40 lockref_get_not_zero +EXPORT_SYMBOL vmlinux 0x1923ff08 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x1924388c pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x1943a772 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x195ab262 proc_create_data +EXPORT_SYMBOL vmlinux 0x1992b308 ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b2d9ab blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19db2dc6 __kfree_skb +EXPORT_SYMBOL vmlinux 0x19e06210 d_rehash +EXPORT_SYMBOL vmlinux 0x19f8163d phy_attach +EXPORT_SYMBOL vmlinux 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL vmlinux 0x1a111a41 ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x1a20ee32 kobject_add +EXPORT_SYMBOL vmlinux 0x1a2b499c pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x1a2d98b4 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x1a2ebeed i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x1a4580a8 ipmi_smi_watcher_register +EXPORT_SYMBOL vmlinux 0x1a592a89 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x1a6a6e29 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x1a77c039 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL vmlinux 0x1ac78328 dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae9b9c6 phy_drivers_register +EXPORT_SYMBOL vmlinux 0x1af62a99 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b0ac272 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x1b132009 rename_lock +EXPORT_SYMBOL vmlinux 0x1b1e1088 sg_nents +EXPORT_SYMBOL vmlinux 0x1b2be339 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x1b2c0e26 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x1b55039d netdev_change_features +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b82fefa md_unplug +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1b9f0cd0 dev_deactivate +EXPORT_SYMBOL vmlinux 0x1ba54c1f pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x1bb79e80 devfreq_add_device +EXPORT_SYMBOL vmlinux 0x1bbc5e88 padata_free +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1bca2b59 load_fp_state +EXPORT_SYMBOL vmlinux 0x1bf31446 eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0x1c0515db request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x1c09aba3 qman_static_dequeue_get +EXPORT_SYMBOL vmlinux 0x1c1256a0 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x1c3c97b3 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x1c57edb8 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x1c657040 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1c8b01ff mach_ge_imp3a +EXPORT_SYMBOL vmlinux 0x1c9e13df padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x1c9fcf27 inet_frag_find +EXPORT_SYMBOL vmlinux 0x1cb09ebb stop_tty +EXPORT_SYMBOL vmlinux 0x1cb11a64 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x1cc05aa3 neigh_destroy +EXPORT_SYMBOL vmlinux 0x1d192af5 __mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x1d340e7f flush_old_exec +EXPORT_SYMBOL vmlinux 0x1d38b849 inet_del_offload +EXPORT_SYMBOL vmlinux 0x1d4e5cb9 blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x1d764c8e agp_free_page_array +EXPORT_SYMBOL vmlinux 0x1d8442cc d_move +EXPORT_SYMBOL vmlinux 0x1d9bcb4c pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x1dc1131e skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de7fe98 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x1e243fc6 dquot_file_open +EXPORT_SYMBOL vmlinux 0x1e260ea4 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e4963aa mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e7dc554 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x1e85f069 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x1e8f86cc scsi_register_driver +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea630dd netif_rx +EXPORT_SYMBOL vmlinux 0x1eb4b93e remove_proc_subtree +EXPORT_SYMBOL vmlinux 0x1ebaf855 __cleancache_get_page +EXPORT_SYMBOL vmlinux 0x1ec3bed9 hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x1f09393a input_event +EXPORT_SYMBOL vmlinux 0x1f5ad908 pme_attr_get +EXPORT_SYMBOL vmlinux 0x1f7e807f kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x1f817653 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x1f97d3af dma_async_device_register +EXPORT_SYMBOL vmlinux 0x1fa92c8d from_kuid +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fc92bfc pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x1fc985fe sk_free +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd9f0b2 inode_dio_done +EXPORT_SYMBOL vmlinux 0x1fe2c2b1 file_ns_capable +EXPORT_SYMBOL vmlinux 0x1fe912f1 netdev_alloc_frag +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x1ff0987e vga_get +EXPORT_SYMBOL vmlinux 0x1ff87ec1 __nla_put +EXPORT_SYMBOL vmlinux 0x1ff87f5e pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x1ff96273 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x200f5c89 __neigh_create +EXPORT_SYMBOL vmlinux 0x201243a6 locks_init_lock +EXPORT_SYMBOL vmlinux 0x20291d73 ll_rw_block +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x2057edb9 of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0x20640d37 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x206687ad cpm_muram_alloc_fixed +EXPORT_SYMBOL vmlinux 0x206cd2de inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x20826769 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x2083a7e3 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x20a35858 key_validate +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20a86b3f of_get_pci_address +EXPORT_SYMBOL vmlinux 0x20b2bb2d param_array_ops +EXPORT_SYMBOL vmlinux 0x20c1360c md_unregister_thread +EXPORT_SYMBOL vmlinux 0x20c55ae0 sscanf +EXPORT_SYMBOL vmlinux 0x20e26bb3 mach_socrates +EXPORT_SYMBOL vmlinux 0x20e274b2 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x20e52aa0 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x211053e6 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x212148f9 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x2122e19c flush_signals +EXPORT_SYMBOL vmlinux 0x2143a426 dev_remove_offload +EXPORT_SYMBOL vmlinux 0x2159c117 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x215f5a42 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0x21936e1f dev_get_phys_port_id +EXPORT_SYMBOL vmlinux 0x219d6c4f ppp_register_channel +EXPORT_SYMBOL vmlinux 0x21a6a1a5 mach_p1023_rdb +EXPORT_SYMBOL vmlinux 0x21d92958 simple_readpage +EXPORT_SYMBOL vmlinux 0x21e07f81 scsi_execute_req_flags +EXPORT_SYMBOL vmlinux 0x21e623aa mmc_put_card +EXPORT_SYMBOL vmlinux 0x21eaeb67 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x21f3dc15 cpm_command +EXPORT_SYMBOL vmlinux 0x21f77a0c ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x22142511 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x222c1fd3 keyring_clear +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2241f9ea xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x2253e7db scsi_put_command +EXPORT_SYMBOL vmlinux 0x2256fafa div64_u64_rem +EXPORT_SYMBOL vmlinux 0x2265b514 qman_get_portal_config +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2278e94b slhc_remember +EXPORT_SYMBOL vmlinux 0x227f5510 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x2289e32e xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x228a54cb __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x22a1e28e pci_assign_resource +EXPORT_SYMBOL vmlinux 0x22a21bad block_invalidatepage +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22cb94d3 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x22d627ad __sb_end_write +EXPORT_SYMBOL vmlinux 0x22d73c62 bman_get_params +EXPORT_SYMBOL vmlinux 0x22ee22de done_path_create +EXPORT_SYMBOL vmlinux 0x22f48f72 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x22f6da6b insert_inode_locked +EXPORT_SYMBOL vmlinux 0x2314750a unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x2337df07 freezing_slow_path +EXPORT_SYMBOL vmlinux 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x235b2664 sock_wake_async +EXPORT_SYMBOL vmlinux 0x235dce16 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x235e90f3 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x2370a6f6 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x238f9eae __sk_dst_check +EXPORT_SYMBOL vmlinux 0x23901472 phy_disconnect +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23d32b75 netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0x23e2472d mach_p1010_rdb +EXPORT_SYMBOL vmlinux 0x23f2243d mempool_free +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24212d86 __frontswap_invalidate_page +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x245535c0 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245a5a94 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x24b0f90c of_clk_get_by_name +EXPORT_SYMBOL vmlinux 0x24c6b45b page_readlink +EXPORT_SYMBOL vmlinux 0x24cdd8ed dm_kobject_release +EXPORT_SYMBOL vmlinux 0x24d7b4eb cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x24de0ace __scsi_add_device +EXPORT_SYMBOL vmlinux 0x24facda7 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x2505db9b set_nlink +EXPORT_SYMBOL vmlinux 0x2505e8e2 devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x2527843a pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x25284a25 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x2533dda1 bman_query_pools +EXPORT_SYMBOL vmlinux 0x256a8d9f agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x2574ca5e kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x25821943 dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x2582b133 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x259f2dbc mmc_start_bkops +EXPORT_SYMBOL vmlinux 0x25a804a9 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x25b66642 sock_no_accept +EXPORT_SYMBOL vmlinux 0x25c0d8dc sk_ns_capable +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25cbd8e7 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x25e96666 devm_gpio_request +EXPORT_SYMBOL vmlinux 0x25ea7f74 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x25f3bd2e atomic64_xchg +EXPORT_SYMBOL vmlinux 0x260cf8f8 of_get_property +EXPORT_SYMBOL vmlinux 0x2624e758 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x2650d835 sysctl_ip_early_demux +EXPORT_SYMBOL vmlinux 0x265f7093 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x269b5f68 local_flush_tlb_page +EXPORT_SYMBOL vmlinux 0x26a910c1 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x26ad2304 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x26af5039 devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0x26b760c4 slhc_init +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f0453a blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x270ff550 dev_addr_add +EXPORT_SYMBOL vmlinux 0x2719f3b3 dst_discard +EXPORT_SYMBOL vmlinux 0x27449624 blk_mq_alloc_reserved_request +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x2759b194 km_new_mapping +EXPORT_SYMBOL vmlinux 0x27721ad5 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x2797c371 find_lock_page +EXPORT_SYMBOL vmlinux 0x27a72909 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x27b53139 pme_fd_cmd_pmtcc +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27ca0952 netif_device_attach +EXPORT_SYMBOL vmlinux 0x27d2f65a key_task_permission +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27f2313e idr_replace +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2825b5ef devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x28742e2a from_kuid_munged +EXPORT_SYMBOL vmlinux 0x288f3f4d pci_device_from_OF_node +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28a7a927 mmc_request_done +EXPORT_SYMBOL vmlinux 0x28f479ff dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x28f784f5 __debugger_break_match +EXPORT_SYMBOL vmlinux 0x291205a2 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x2918cc8f posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x292e48e4 mmc_set_blockcount +EXPORT_SYMBOL vmlinux 0x294f2952 empty_aops +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x296400e6 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x299e8661 address_space_init_once +EXPORT_SYMBOL vmlinux 0x29a38deb udp_seq_open +EXPORT_SYMBOL vmlinux 0x29a67db1 bman_recovery_cleanup_bpid +EXPORT_SYMBOL vmlinux 0x29c1c998 pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0x29d31a43 blk_get_request +EXPORT_SYMBOL vmlinux 0x29fdda53 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x2a0a7892 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x2a1e8005 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x2a2cd018 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a3cb269 pci_clear_master +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2a881eb1 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aab8373 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x2aac32a1 noop_fsync +EXPORT_SYMBOL vmlinux 0x2ac1ac84 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x2ac5c00b dev_open +EXPORT_SYMBOL vmlinux 0x2ac6fc5e bdevname +EXPORT_SYMBOL vmlinux 0x2ac84eac bio_advance +EXPORT_SYMBOL vmlinux 0x2ace61f8 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x2acf0feb vfs_fstat +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b0c0e63 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b39aee0 bman_release +EXPORT_SYMBOL vmlinux 0x2b433118 abort_creds +EXPORT_SYMBOL vmlinux 0x2b4d57b2 adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0x2b560790 get_phy_device +EXPORT_SYMBOL vmlinux 0x2b5f50c8 elv_rb_add +EXPORT_SYMBOL vmlinux 0x2b64f9c6 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x2b790cfb inet6_protos +EXPORT_SYMBOL vmlinux 0x2b876175 mach_p2020_rdb +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba10c68 __mutex_init +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb06a85 gen10g_restart_aneg +EXPORT_SYMBOL vmlinux 0x2bb5be19 key_invalidate +EXPORT_SYMBOL vmlinux 0x2bc61da1 program_check_exception +EXPORT_SYMBOL vmlinux 0x2bcc0a7f pci_enable_obff +EXPORT_SYMBOL vmlinux 0x2bd702c4 key_unlink +EXPORT_SYMBOL vmlinux 0x2be0f12d dql_completed +EXPORT_SYMBOL vmlinux 0x2bfde907 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x2c0615e7 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x2c0f49af __skb_gso_segment +EXPORT_SYMBOL vmlinux 0x2c12c639 gen10g_read_status +EXPORT_SYMBOL vmlinux 0x2c14323a kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c36b945 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x2c403952 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x2c411422 ipmi_smi_add_proc_entry +EXPORT_SYMBOL vmlinux 0x2c454bb0 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x2c64f81d scsi_scan_host +EXPORT_SYMBOL vmlinux 0x2c7b1fca down_timeout +EXPORT_SYMBOL vmlinux 0x2c8ea3bb netdev_notice +EXPORT_SYMBOL vmlinux 0x2c900d91 cpufreq_put_global_kobject +EXPORT_SYMBOL vmlinux 0x2c95c1c3 vc_resize +EXPORT_SYMBOL vmlinux 0x2ca042b0 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x2cdd5746 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x2ce431ae blk_mq_map_queue +EXPORT_SYMBOL vmlinux 0x2cf79d5b kern_unmount +EXPORT_SYMBOL vmlinux 0x2cfb8378 qman_stop_dequeues +EXPORT_SYMBOL vmlinux 0x2d03c10d posix_acl_create +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask +EXPORT_SYMBOL vmlinux 0x2d6a6e1c account_page_redirty +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d9f2aa3 pci_enable_ltr +EXPORT_SYMBOL vmlinux 0x2d9f2da9 fasync_helper +EXPORT_SYMBOL vmlinux 0x2daaaba9 param_get_byte +EXPORT_SYMBOL vmlinux 0x2dcb6fc3 twl6040_power +EXPORT_SYMBOL vmlinux 0x2deda4a1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x2dfded3d vfs_rename +EXPORT_SYMBOL vmlinux 0x2e096d58 tcp_release_cb +EXPORT_SYMBOL vmlinux 0x2e0d2c5a blk_bio_map_sg +EXPORT_SYMBOL vmlinux 0x2e140ab4 eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e3e03f8 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x2e48bdcf qman_poll_dqrr +EXPORT_SYMBOL vmlinux 0x2e81df1a pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0x2e97bf98 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x2e9d9e81 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x2eac10c5 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ecb95d6 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0x2ecf8c9e fb_pan_display +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f2c5ad7 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x2f3e42ec irq_stat +EXPORT_SYMBOL vmlinux 0x2f4c8724 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x2f66730e d_alloc_name +EXPORT_SYMBOL vmlinux 0x2fa253e1 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x2fa54b06 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x2fae0f18 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fd19793 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x3018a188 dev_emerg +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x30327acc __skb_checksum +EXPORT_SYMBOL vmlinux 0x3036d5d8 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x30455fd1 unlock_rename +EXPORT_SYMBOL vmlinux 0x3071624a __quota_error +EXPORT_SYMBOL vmlinux 0x30758e19 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x30868cb1 alloc_disk +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30b65443 netpoll_rx_disable +EXPORT_SYMBOL vmlinux 0x30b8b35c cpu_to_chip_id +EXPORT_SYMBOL vmlinux 0x30bb3eb1 __ip_dev_find +EXPORT_SYMBOL vmlinux 0x30c12e52 dentry_unhash +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30d8c418 set_bh_page +EXPORT_SYMBOL vmlinux 0x3102d70b frontswap_curr_pages +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x310adc20 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x311e4b1a blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0x312824e0 hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x314218bf elv_add_request +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x3170c040 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0x31839336 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x318cadb1 reciprocal_value +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x319d533b pci_dev_put +EXPORT_SYMBOL vmlinux 0x31a91030 cdev_add +EXPORT_SYMBOL vmlinux 0x31abb8df jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x31c4be12 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x31f0bb78 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x31f7d40a pme_fd_cmd_fcw +EXPORT_SYMBOL vmlinux 0x31f8cbaf kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x3200d693 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x321f41aa kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x322661a7 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x322f48d4 abx500_dump_all_banks +EXPORT_SYMBOL vmlinux 0x32424b34 qman_query_wq +EXPORT_SYMBOL vmlinux 0x3245be5f pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x3261df07 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x3274f77c block_read_full_page +EXPORT_SYMBOL vmlinux 0x327bf883 of_can_translate_address +EXPORT_SYMBOL vmlinux 0x3284c88d tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x32860d7e qman_fqid_pool_free +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x32e04020 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x32e667b3 eth_header_parse +EXPORT_SYMBOL vmlinux 0x3308d85b scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x33097d33 d_set_d_op +EXPORT_SYMBOL vmlinux 0x337cce46 put_cmsg +EXPORT_SYMBOL vmlinux 0x338658c8 led_set_brightness +EXPORT_SYMBOL vmlinux 0x338788f4 skb_insert +EXPORT_SYMBOL vmlinux 0x33a56ffe mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x33a6bc50 powerpc_debugfs_root +EXPORT_SYMBOL vmlinux 0x33aa48f2 qman_static_dequeue_del +EXPORT_SYMBOL vmlinux 0x33acf057 lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33ba5cd4 param_ops_bool +EXPORT_SYMBOL vmlinux 0x33c7435c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x33cdf9dd arp_send +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x34184afe current_kernel_time +EXPORT_SYMBOL vmlinux 0x342f0912 sk_run_filter +EXPORT_SYMBOL vmlinux 0x343bb4c4 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x3442fac7 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x34473bab skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x34561905 pme_ctx_enable +EXPORT_SYMBOL vmlinux 0x346c4ded rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x347eb9bd param_set_bool +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34b0dc9c mpage_writepages +EXPORT_SYMBOL vmlinux 0x34b5217f dma_common_mmap +EXPORT_SYMBOL vmlinux 0x34c1e79c simple_transaction_get +EXPORT_SYMBOL vmlinux 0x34d3a369 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x350424b2 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x3508d346 of_phy_attach +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x352594de d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x35426906 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x35607b46 mmc_release_host +EXPORT_SYMBOL vmlinux 0x356b0408 mnt_unpin +EXPORT_SYMBOL vmlinux 0x3586a53a dump_align +EXPORT_SYMBOL vmlinux 0x35b1954a pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0x35b27fa9 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x35d7941c mmc_can_discard +EXPORT_SYMBOL vmlinux 0x35e4250b filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x3633c05a generic_file_llseek +EXPORT_SYMBOL vmlinux 0x36368279 dev_uc_del +EXPORT_SYMBOL vmlinux 0x364a52d2 d_validate +EXPORT_SYMBOL vmlinux 0x366b94c1 block_write_full_page +EXPORT_SYMBOL vmlinux 0x36780be7 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x36815df7 gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0x368382e2 of_get_named_gpiod_flags +EXPORT_SYMBOL vmlinux 0x36859146 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x368a8b5b nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x3695484b elevator_change +EXPORT_SYMBOL vmlinux 0x369feab4 alloc_file +EXPORT_SYMBOL vmlinux 0x36b0e732 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x36bd681b groups_alloc +EXPORT_SYMBOL vmlinux 0x36d7b11a of_find_matching_node_and_match +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x371e77ec sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x372e062f put_disk +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x3764434f key_link +EXPORT_SYMBOL vmlinux 0x3779f5ef mach_mpc85xx_cds +EXPORT_SYMBOL vmlinux 0x37953800 input_get_keycode +EXPORT_SYMBOL vmlinux 0x37b28c01 mutex_trylock +EXPORT_SYMBOL vmlinux 0x37b47535 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x381144a9 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x381ccc13 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x381dcad3 proc_remove +EXPORT_SYMBOL vmlinux 0x38245657 __find_get_block +EXPORT_SYMBOL vmlinux 0x383c577f tcf_hash_release +EXPORT_SYMBOL vmlinux 0x383f3855 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x386026ad get_super +EXPORT_SYMBOL vmlinux 0x3866fe21 kern_path_create +EXPORT_SYMBOL vmlinux 0x3876720f dst_destroy +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x388e39ce qman_oos_fq +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38926739 mach_sbc8548 +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a82a68 scsi_unregister +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38b5de6c nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x38f4e547 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x390b2741 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x39440af9 backlight_device_register +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x3968bbdf __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x398f58ab ppc_md +EXPORT_SYMBOL vmlinux 0x39999f5a kill_litter_super +EXPORT_SYMBOL vmlinux 0x39ac3603 sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0x39bef581 dev_change_carrier +EXPORT_SYMBOL vmlinux 0x39cdf63c wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x39fb24fb ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x3a09dfbb init_net +EXPORT_SYMBOL vmlinux 0x3a13bfab scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x3a438684 dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x3a8afcb7 km_query +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3b31a483 of_get_min_tck +EXPORT_SYMBOL vmlinux 0x3b36fe3d pme_hw_residue_new +EXPORT_SYMBOL vmlinux 0x3b3e214e sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x3b477adc input_register_device +EXPORT_SYMBOL vmlinux 0x3b615a21 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x3b69eae6 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x3b8251ee cdrom_release +EXPORT_SYMBOL vmlinux 0x3bc6474a ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd548b4 d_genocide +EXPORT_SYMBOL vmlinux 0x3bdc380f bio_split +EXPORT_SYMBOL vmlinux 0x3bdd751d i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x3be136b0 unload_nls +EXPORT_SYMBOL vmlinux 0x3bef03b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x3bf07237 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x3c222795 registered_fb +EXPORT_SYMBOL vmlinux 0x3c344583 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x3c395d9b pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x3c3acac5 simple_write_begin +EXPORT_SYMBOL vmlinux 0x3c652b24 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c99db7e sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x3c9ad5e0 block_commit_write +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3ca3a7dd mach_ksi8560 +EXPORT_SYMBOL vmlinux 0x3ca54b8c sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x3cb3931b sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x3cb7b802 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x3cc4b0dc lg_lock_init +EXPORT_SYMBOL vmlinux 0x3cd8996f scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cfcb895 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x3cffd163 cur_cpu_spec +EXPORT_SYMBOL vmlinux 0x3d41904f of_get_next_child +EXPORT_SYMBOL vmlinux 0x3d7f91d8 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x3d8a40d7 seq_vprintf +EXPORT_SYMBOL vmlinux 0x3d991de6 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x3da042a3 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x3db0f721 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x3dc30c90 agp_copy_info +EXPORT_SYMBOL vmlinux 0x3dc371bb starget_for_each_device +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dcc99ea fb_set_cmap +EXPORT_SYMBOL vmlinux 0x3de0db82 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x3dee64c0 devm_gpiod_put +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e0f6d6b jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x3e1a21c2 complete_request_key +EXPORT_SYMBOL vmlinux 0x3e23fedc dev_add_offload +EXPORT_SYMBOL vmlinux 0x3e4d223c pme_ctx_init +EXPORT_SYMBOL vmlinux 0x3e75df5c scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x3e8097c5 audit_log +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e9b2fc9 mmc_can_reset +EXPORT_SYMBOL vmlinux 0x3ebcaf05 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee43abd __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x3eebe86e xfrm_register_km +EXPORT_SYMBOL vmlinux 0x3eec852c kfree_put_link +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f24adb4 kernel_accept +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f6d01d5 get_agp_version +EXPORT_SYMBOL vmlinux 0x3fa30be4 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x3fb1cf71 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x3fd04ac3 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x3fd55724 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ff8069b tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x3ff8e495 lg_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x3ffb9d51 __dst_free +EXPORT_SYMBOL vmlinux 0x3fff70bf ata_port_printk +EXPORT_SYMBOL vmlinux 0x400d3b5f eth_change_mtu +EXPORT_SYMBOL vmlinux 0x4012773b pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x4013cea0 d_alloc +EXPORT_SYMBOL vmlinux 0x401ef6de jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x404066c5 idr_for_each +EXPORT_SYMBOL vmlinux 0x40435c21 netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x40479b44 mnt_pin +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405a7d4b pci_enable_msi_block_auto +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x407b2064 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x40833b91 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x40944ee5 devm_gpio_request_one +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a2d1dd dm_table_get_size +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40aeb342 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x40b112f4 mdiobus_free +EXPORT_SYMBOL vmlinux 0x40b57158 pme_initfq +EXPORT_SYMBOL vmlinux 0x40beb95b gen_pool_free +EXPORT_SYMBOL vmlinux 0x40bf7460 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x40c01859 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40e68677 kobject_get +EXPORT_SYMBOL vmlinux 0x40ebc934 tty_devnum +EXPORT_SYMBOL vmlinux 0x40ee014b request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x40f1ad10 tb_ticks_per_jiffy +EXPORT_SYMBOL vmlinux 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL vmlinux 0x40fe326f __neigh_event_send +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414ab1ff phy_start_aneg +EXPORT_SYMBOL vmlinux 0x4159c38f ioremap_wc +EXPORT_SYMBOL vmlinux 0x4168619e bman_pool_max +EXPORT_SYMBOL vmlinux 0x41786a8e fb_validate_mode +EXPORT_SYMBOL vmlinux 0x417e405c scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x418d426d scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x41d3f881 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x41e42c04 __bio_clone +EXPORT_SYMBOL vmlinux 0x41e4f928 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x41f2f88e dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42150e65 vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0x422768d8 con_is_bound +EXPORT_SYMBOL vmlinux 0x423904cf wake_up_process +EXPORT_SYMBOL vmlinux 0x423b776a ipmi_create_user +EXPORT_SYMBOL vmlinux 0x42445e3c eth_type_trans +EXPORT_SYMBOL vmlinux 0x425158c6 mdiobus_register +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x425ab261 dm_io +EXPORT_SYMBOL vmlinux 0x4270f5c5 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a1b208 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x42b5e523 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x42c65986 qman_alloc_fqid_range +EXPORT_SYMBOL vmlinux 0x42c7cc03 mach_p1025_rdb +EXPORT_SYMBOL vmlinux 0x430154ae bman_irqsource_remove +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x430d5992 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x43372293 generic_file_remap_pages +EXPORT_SYMBOL vmlinux 0x43381f9c mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x433ae924 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x43632d7d of_find_property +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x43781ece unlock_buffer +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x43a01f90 complete_all +EXPORT_SYMBOL vmlinux 0x43d301d7 arp_create +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x43fbd184 set_binfmt +EXPORT_SYMBOL vmlinux 0x4411c503 prandom_seed +EXPORT_SYMBOL vmlinux 0x442c7839 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x443c3117 of_find_backlight_by_node +EXPORT_SYMBOL vmlinux 0x44438b96 hex2bin +EXPORT_SYMBOL vmlinux 0x444c481d xfrm_garbage_collect +EXPORT_SYMBOL vmlinux 0x44589cea dev_set_group +EXPORT_SYMBOL vmlinux 0x445d8a9b __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x446780f6 truncate_setsize +EXPORT_SYMBOL vmlinux 0x4484c9f6 fm_mutex_lock +EXPORT_SYMBOL vmlinux 0x449995b9 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x4499f5bf input_register_handle +EXPORT_SYMBOL vmlinux 0x449fc0fc nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x44ac71c9 skb_orphan_partial +EXPORT_SYMBOL vmlinux 0x44c2dcd0 mem_map +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44eb192e wait_for_completion +EXPORT_SYMBOL vmlinux 0x44ef52d5 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x44f06d7b thaw_super +EXPORT_SYMBOL vmlinux 0x44f5e8b5 of_allnodes +EXPORT_SYMBOL vmlinux 0x44f7929b qm_fq_new +EXPORT_SYMBOL vmlinux 0x44fe2a36 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x454d804d pci_dev_driver +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x457af02f pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x45841260 sk_net_capable +EXPORT_SYMBOL vmlinux 0x4596db6a sys_sigreturn +EXPORT_SYMBOL vmlinux 0x45a6be13 cpufreq_sysfs_remove_file +EXPORT_SYMBOL vmlinux 0x45a765cf pci_add_resource +EXPORT_SYMBOL vmlinux 0x45ac7c94 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x45c6a01d setup_new_exec +EXPORT_SYMBOL vmlinux 0x45dd202d vfs_fsync +EXPORT_SYMBOL vmlinux 0x45e0ff4a md_write_start +EXPORT_SYMBOL vmlinux 0x45e90151 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x45ed9355 skb_trim +EXPORT_SYMBOL vmlinux 0x45f31bab __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x4610a74d abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x4612c59d down_trylock +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x46212a52 dput +EXPORT_SYMBOL vmlinux 0x4623ed8b nf_log_unregister +EXPORT_SYMBOL vmlinux 0x46244beb vlan_untag +EXPORT_SYMBOL vmlinux 0x46266967 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x465cab34 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x46608fa0 getnstimeofday +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x4679e8ad xfrm_register_type +EXPORT_SYMBOL vmlinux 0x467b6dc9 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x468bcda6 cpumask_set_cpu_local_first +EXPORT_SYMBOL vmlinux 0x46972bca of_find_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0x46c1147d qman_poll_slow +EXPORT_SYMBOL vmlinux 0x46d12956 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x46d76014 from_kgid +EXPORT_SYMBOL vmlinux 0x46e4e41c tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x46ed75e4 vm_map_ram +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x47167837 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x471e8cd7 irq_set_chip +EXPORT_SYMBOL vmlinux 0x472b161a pci_save_state +EXPORT_SYMBOL vmlinux 0x47416e14 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x4754bd20 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x4756cb58 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x477591ae bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47bcf84c param_set_ulong +EXPORT_SYMBOL vmlinux 0x47c8baf4 param_ops_uint +EXPORT_SYMBOL vmlinux 0x47ece0ed pme_ctx_ctrl_read_flow +EXPORT_SYMBOL vmlinux 0x47f465fd fb_set_suspend +EXPORT_SYMBOL vmlinux 0x48034724 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x480ec06d xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x482a2a49 param_set_charp +EXPORT_SYMBOL vmlinux 0x4835f9fb dev_change_flags +EXPORT_SYMBOL vmlinux 0x48404b9a remove_wait_queue +EXPORT_SYMBOL vmlinux 0x48503e78 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x48a771c5 cpu_core_map +EXPORT_SYMBOL vmlinux 0x48a91a22 generic_file_open +EXPORT_SYMBOL vmlinux 0x48c6db53 of_get_child_by_name +EXPORT_SYMBOL vmlinux 0x48da08f4 register_netdevice +EXPORT_SYMBOL vmlinux 0x48dc6a4f pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x48e3ad6b mach_p1020_mbg_pc +EXPORT_SYMBOL vmlinux 0x48e8dbd6 inet_frags_init +EXPORT_SYMBOL vmlinux 0x48f16837 local_flush_tlb_mm +EXPORT_SYMBOL vmlinux 0x48fabfbf gen_new_estimator +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x490ad7da fm_port_pcd_bind +EXPORT_SYMBOL vmlinux 0x4912d4f4 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x493ea803 sock_create_kern +EXPORT_SYMBOL vmlinux 0x4955bd69 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x495c96f8 posix_acl_init +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x4966d6dc jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x496e9a85 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x498e120b unregister_netdev +EXPORT_SYMBOL vmlinux 0x499145ed cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x499ffa3d fsl_lbc_ctrl_dev +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b0b288 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x49b14ada blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x49def66d bio_copy_data +EXPORT_SYMBOL vmlinux 0x49e5ca96 inc_nlink +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a502e84 mdiobus_read +EXPORT_SYMBOL vmlinux 0x4a6501b4 __nlmsg_put +EXPORT_SYMBOL vmlinux 0x4a83cb25 gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0x4ab1dd4e may_umount_tree +EXPORT_SYMBOL vmlinux 0x4abcc9cb agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b1ec3e2 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x4b2edbe9 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b481a6b mount_ns +EXPORT_SYMBOL vmlinux 0x4b5b958a prepare_creds +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b61e4bb __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x4b7ed27b sleep_on +EXPORT_SYMBOL vmlinux 0x4b8a7016 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x4b8f8c18 __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x4b97e5b0 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x4bbc6ad8 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x4bc45ca6 skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0x4bccfc44 ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x4be85a03 memweight +EXPORT_SYMBOL vmlinux 0x4bed5fe7 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x4c11435a _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c1aa60e dquot_commit_info +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c30070a uart_get_divisor +EXPORT_SYMBOL vmlinux 0x4c3c7d01 posix_lock_file +EXPORT_SYMBOL vmlinux 0x4c6e5563 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL vmlinux 0x4ca7f4b9 sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cdb3178 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x4cdecf59 gen10g_resume +EXPORT_SYMBOL vmlinux 0x4ce57dc6 __free_pages +EXPORT_SYMBOL vmlinux 0x4cf264da invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x4cfffcbf genphy_resume +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d67d484 single_open +EXPORT_SYMBOL vmlinux 0x4d71004a __cpm2_setbrg +EXPORT_SYMBOL vmlinux 0x4d89db51 pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4d9dcda5 qman_fqid_pool_destroy +EXPORT_SYMBOL vmlinux 0x4da34f18 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x4da7c931 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x4dc7d3b6 mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0x4dc8e2f4 get_thermal_instance +EXPORT_SYMBOL vmlinux 0x4dce3d86 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x4de34a07 cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x4de4b8d7 mach_p1022_ds +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4dfed71c flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x4e0699db dev_addr_init +EXPORT_SYMBOL vmlinux 0x4e0d27fb phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e41e01f sock_wfree +EXPORT_SYMBOL vmlinux 0x4e480b9c blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x4e4ab48d sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x4e63f3e1 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x4e649140 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x4e65d64e block_write_end +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6a76b7 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e786d13 idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e8519c9 netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x4e8be6a2 inet_ioctl +EXPORT_SYMBOL vmlinux 0x4e9d7f43 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ea47f21 force_sig +EXPORT_SYMBOL vmlinux 0x4eb063eb swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x4ec26182 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x4ecab61e filp_open +EXPORT_SYMBOL vmlinux 0x4ed98f9e blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x4edc06bf dquot_enable +EXPORT_SYMBOL vmlinux 0x4ef22e82 genphy_setup_forced +EXPORT_SYMBOL vmlinux 0x4effef2d tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x4f1b0974 devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f248523 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x4f26268e dentry_open +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f4eca99 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x4f68e5c9 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x4f6d78c6 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x4f9c9905 bh_submit_read +EXPORT_SYMBOL vmlinux 0x4fad8747 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x4fadee94 d_splice_alias +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe99583 atomic64_dec_if_positive +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x500d59d5 mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x5016895e migrate_page +EXPORT_SYMBOL vmlinux 0x5016ecb1 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x502c8615 generic_make_request +EXPORT_SYMBOL vmlinux 0x50384baf vgacon_remap_base +EXPORT_SYMBOL vmlinux 0x503ad4db vga_tryget +EXPORT_SYMBOL vmlinux 0x5041bcad sock_i_uid +EXPORT_SYMBOL vmlinux 0x50598323 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x50978fde genphy_read_status +EXPORT_SYMBOL vmlinux 0x509817cf vprintk_emit +EXPORT_SYMBOL vmlinux 0x50ae7d80 __idr_pre_get +EXPORT_SYMBOL vmlinux 0x50b9d2fe pci_enable_msi_range +EXPORT_SYMBOL vmlinux 0x50d06a6b skb_copy +EXPORT_SYMBOL vmlinux 0x50d80ff7 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x50e6231e nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x50f1be39 make_bad_inode +EXPORT_SYMBOL vmlinux 0x5109e308 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x512e0e02 tty_set_operations +EXPORT_SYMBOL vmlinux 0x5134d833 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x51496f20 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x515c611e __block_write_begin +EXPORT_SYMBOL vmlinux 0x515e24a7 flush_instruction_cache +EXPORT_SYMBOL vmlinux 0x5179fd71 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x517c2a2c agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x51854e1b udp_prot +EXPORT_SYMBOL vmlinux 0x5193f2cf blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x519b0da3 finish_wait +EXPORT_SYMBOL vmlinux 0x51a54e82 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x51af526f nf_nat_decode_session_hook +EXPORT_SYMBOL vmlinux 0x51b52539 simple_open +EXPORT_SYMBOL vmlinux 0x51bf8262 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x51c93ad0 fm_get_rtc_handle +EXPORT_SYMBOL vmlinux 0x51d1ecb4 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52090c56 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x521b36b5 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x521dfb59 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x521e8852 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x5229a275 __test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x52428cc8 parent_mem_cgroup +EXPORT_SYMBOL vmlinux 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL vmlinux 0x52647b69 try_to_writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x52710981 free_buffer_head +EXPORT_SYMBOL vmlinux 0x527d854d inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x529fecc7 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x52b5d67a dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x52b60b8d neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x52ca0161 phy_init_eee +EXPORT_SYMBOL vmlinux 0x52da8e3e tty_mutex +EXPORT_SYMBOL vmlinux 0x52dbb7e9 devm_ioremap +EXPORT_SYMBOL vmlinux 0x52e3c71c __frontswap_load +EXPORT_SYMBOL vmlinux 0x530f0357 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x532af8fb scm_fp_dup +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533c0343 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x534d6a4d inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x534e2661 vfs_readv +EXPORT_SYMBOL vmlinux 0x535654a7 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x5395f594 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x53bb01e2 vm_stat +EXPORT_SYMBOL vmlinux 0x53c2bd9a mount_subtree +EXPORT_SYMBOL vmlinux 0x53d38627 dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0x53d40105 dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0x53dd2b8f tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x53fc05d5 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x5409775b free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x5412c7c7 up +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x544c6031 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x544f46a7 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x546c1b78 _dev_info +EXPORT_SYMBOL vmlinux 0x546d362c pid_task +EXPORT_SYMBOL vmlinux 0x548cb517 bman_poll +EXPORT_SYMBOL vmlinux 0x548ff601 pcie_set_mps +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54c9dc8e qman_fq_fqid +EXPORT_SYMBOL vmlinux 0x54cad33d block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x54e3cc3b param_get_int +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x5508c77d vfs_readlink +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x552d9c56 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x55392b05 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x5549253a tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x5560c7d3 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x5567c227 kernel_cpustat +EXPORT_SYMBOL vmlinux 0x5568c553 complete +EXPORT_SYMBOL vmlinux 0x556c2740 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x5577ef9e udp_table +EXPORT_SYMBOL vmlinux 0x557dd8e1 bdget +EXPORT_SYMBOL vmlinux 0x5590d7b0 xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55bf250b tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x55ff9599 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x5612d0ec xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x565a8733 kernel_listen +EXPORT_SYMBOL vmlinux 0x5670b5ea dma_pool_create +EXPORT_SYMBOL vmlinux 0x5671572e inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x567904ff ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x5692a425 inet_select_addr +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56b98672 __elv_add_request +EXPORT_SYMBOL vmlinux 0x56bff8a1 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x5728ddb7 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x573f537e seq_pad +EXPORT_SYMBOL vmlinux 0x573fd0d1 __f_setown +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x5758433d dma_sync_wait +EXPORT_SYMBOL vmlinux 0x575af70c on_each_cpu_mask +EXPORT_SYMBOL vmlinux 0x575be711 search_binary_handler +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x57718c97 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x5785384a flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x578a1c9c __dquot_free_space +EXPORT_SYMBOL vmlinux 0x579056bf alloc_disk_node +EXPORT_SYMBOL vmlinux 0x579d6800 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x579f65c8 pme_fd_cmd_fcr +EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x57a22449 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x57a8933c sock_no_getname +EXPORT_SYMBOL vmlinux 0x57b0e3c9 generic_removexattr +EXPORT_SYMBOL vmlinux 0x57f60ac0 devm_gpiod_get_index +EXPORT_SYMBOL vmlinux 0x57fb345b mount_single +EXPORT_SYMBOL vmlinux 0x58119be2 i2c_transfer +EXPORT_SYMBOL vmlinux 0x5814e055 bm_pool_free +EXPORT_SYMBOL vmlinux 0x581f5a31 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x582a4747 cacheable_memcpy +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x585806d5 agp_put_bridge +EXPORT_SYMBOL vmlinux 0x585d1b87 jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0x58623807 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x586dffa9 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x587616f1 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x5877d8ef qman_static_dequeue_add +EXPORT_SYMBOL vmlinux 0x587fe960 ipmi_register_smi +EXPORT_SYMBOL vmlinux 0x588001f2 filemap_flush +EXPORT_SYMBOL vmlinux 0x589fc896 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x58ca63f4 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x58d0049f neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x58d1070a of_get_address +EXPORT_SYMBOL vmlinux 0x58d7dda0 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x58dfc592 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x5905438d bio_copy_user +EXPORT_SYMBOL vmlinux 0x5907f270 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x591241d0 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x5916b22e agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x591a621f xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x5945d448 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page +EXPORT_SYMBOL vmlinux 0x59638b99 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x59b3378a completion_done +EXPORT_SYMBOL vmlinux 0x59d79ab4 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x59da9bf2 dcb_getapp +EXPORT_SYMBOL vmlinux 0x59defab0 seq_printf +EXPORT_SYMBOL vmlinux 0x59e13315 ipmi_get_smi_info +EXPORT_SYMBOL vmlinux 0x59f55150 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x5a0ba22a inode_reclaim_rsv_space +EXPORT_SYMBOL vmlinux 0x5a36523e pme_ctx_ctrl_nop +EXPORT_SYMBOL vmlinux 0x5a5536c2 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x5a70390c i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0x5a86208c gen10g_config_advert +EXPORT_SYMBOL vmlinux 0x5a9e9db3 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x5aab2a88 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x5ab67931 do_IRQ +EXPORT_SYMBOL vmlinux 0x5ad96349 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x5ae5888a d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0x5af6232a bdi_unregister +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b29fce9 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x5b2fc16c tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x5b39988e ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x5b7cb93f pci_get_device +EXPORT_SYMBOL vmlinux 0x5b9828c5 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x5bcb871f unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x5bdc3e18 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x5bdeed5b freeze_super +EXPORT_SYMBOL vmlinux 0x5bf06b53 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x5bf282b3 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x5bf63794 lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0x5c022810 dst_alloc +EXPORT_SYMBOL vmlinux 0x5c0adb46 bdi_init +EXPORT_SYMBOL vmlinux 0x5c1cb06b __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0x5c1f254e default_llseek +EXPORT_SYMBOL vmlinux 0x5c37f319 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x5c8a44b6 register_console +EXPORT_SYMBOL vmlinux 0x5cd4e0e2 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x5ce5af8c nla_append +EXPORT_SYMBOL vmlinux 0x5ceed39d ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5cf8bdd1 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x5d17700b pci_bus_type +EXPORT_SYMBOL vmlinux 0x5d1859a1 phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x5d21ebf2 seq_path +EXPORT_SYMBOL vmlinux 0x5d2d5663 kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0x5d2d7b9a sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0x5d41c87c param_ops_charp +EXPORT_SYMBOL vmlinux 0x5d4a97ca agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x5d550c4d scsi_sd_probe_domain +EXPORT_SYMBOL vmlinux 0x5d58efa0 convert_ifc_address +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d6bdce1 flex_array_alloc +EXPORT_SYMBOL vmlinux 0x5d8f819d page_put_link +EXPORT_SYMBOL vmlinux 0x5d9493d4 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x5d9948db of_device_unregister +EXPORT_SYMBOL vmlinux 0x5dbb892b security_mmap_file +EXPORT_SYMBOL vmlinux 0x5e12cd2e bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x5e15425b tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x5e205e4c vm_mmap +EXPORT_SYMBOL vmlinux 0x5e2389e3 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x5e27321b register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x5e3763e3 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x5e3a8a9c __wake_up +EXPORT_SYMBOL vmlinux 0x5e5d4f36 do_splice_direct +EXPORT_SYMBOL vmlinux 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL vmlinux 0x5e8f08f2 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9e17ba simple_fill_super +EXPORT_SYMBOL vmlinux 0x5eb0401e proc_dostring +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ecb5640 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edddee4 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f049471 kunmap_high +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f28c2dc idr_remove +EXPORT_SYMBOL vmlinux 0x5f37d8b4 tty_port_destroy +EXPORT_SYMBOL vmlinux 0x5f3c8f5c mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x5f6195c2 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5f8d58d4 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x5f928f58 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x5fa56b4c ata_link_printk +EXPORT_SYMBOL vmlinux 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL vmlinux 0x5fd12a50 mmc_stop_bkops +EXPORT_SYMBOL vmlinux 0x5fd5347a fb_show_logo +EXPORT_SYMBOL vmlinux 0x5fda0227 vfs_stat +EXPORT_SYMBOL vmlinux 0x5ffec546 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x600733b8 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x604e613a always_delete_dentry +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x607f1fc7 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x6086fae9 rwsem_wake +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60ad5be1 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x60b86f61 sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x60df1e3b posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x6110df14 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x611754b7 dev_crit +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x61344d93 locks_free_lock +EXPORT_SYMBOL vmlinux 0x6149629d inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x61538ad0 param_get_charp +EXPORT_SYMBOL vmlinux 0x61548c0f dev_get_nest_level +EXPORT_SYMBOL vmlinux 0x615c129f mach_ppa8548 +EXPORT_SYMBOL vmlinux 0x6168c403 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x6176afb8 lock_may_write +EXPORT_SYMBOL vmlinux 0x618671c3 netpoll_rx_enable +EXPORT_SYMBOL vmlinux 0x618826e2 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x619150ca skb_checksum_help +EXPORT_SYMBOL vmlinux 0x61a72cdb km_state_notify +EXPORT_SYMBOL vmlinux 0x61aeacd7 blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0x61b1b7d9 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x61b4c268 bman_poll_slow +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61d9d13f pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x61e7f1e3 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x621b7ae2 scsi_init_io +EXPORT_SYMBOL vmlinux 0x622520a6 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x623fdf13 phy_device_free +EXPORT_SYMBOL vmlinux 0x62481004 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x62538167 slhc_toss +EXPORT_SYMBOL vmlinux 0x625c72df nf_afinfo +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62822d05 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x62d9bc16 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x62fbc321 vga_client_register +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x63231951 gen_pool_create +EXPORT_SYMBOL vmlinux 0x6336e8fb truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x634b871e dev_mc_add +EXPORT_SYMBOL vmlinux 0x634d8020 qman_enqueue_orp +EXPORT_SYMBOL vmlinux 0x635fae06 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x6362538a fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x636a42cc netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x636f6dde devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0x6388d7ff kill_block_super +EXPORT_SYMBOL vmlinux 0x63908391 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x63a473b0 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x63c2c882 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x63cc6c52 pme_map_error +EXPORT_SYMBOL vmlinux 0x63e6f461 mount_nodev +EXPORT_SYMBOL vmlinux 0x63eb0657 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64067556 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x642a6905 sock_rfree +EXPORT_SYMBOL vmlinux 0x64409640 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x647b255a tcp_seq_open +EXPORT_SYMBOL vmlinux 0x648d31f3 md_finish_reshape +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64a4b84d cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x64b32e01 __brelse +EXPORT_SYMBOL vmlinux 0x64cb07d3 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x64d12db6 blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0x64e92094 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x64e9262d agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x6513b5e9 skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65220188 kthread_bind +EXPORT_SYMBOL vmlinux 0x65400222 __irq_offset_value +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x6542cbac vfs_mkdir +EXPORT_SYMBOL vmlinux 0x655ae747 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x6565d33f scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x6585e310 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x65acfddb jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x65bb58a2 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x65d7b22f napi_gro_frags +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65f3ad9a fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x66061f0b pipe_to_file +EXPORT_SYMBOL vmlinux 0x6620651e scm_detach_fds +EXPORT_SYMBOL vmlinux 0x6648d97e tcp_gso_segment +EXPORT_SYMBOL vmlinux 0x66856110 security_inode_readlink +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x6694a5a0 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x66b0a035 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x6720dc78 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x67426eb3 fm_get_mem_region +EXPORT_SYMBOL vmlinux 0x675b1fc2 bman_get_portal_config +EXPORT_SYMBOL vmlinux 0x675b8f61 param_get_string +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c8147c input_register_handler +EXPORT_SYMBOL vmlinux 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL vmlinux 0x67d71a44 vm_event_states +EXPORT_SYMBOL vmlinux 0x67f2548b seq_open_private +EXPORT_SYMBOL vmlinux 0x67f8a8dd nf_hook_slow +EXPORT_SYMBOL vmlinux 0x6804d7d8 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x681bca43 devfreq_resume_device +EXPORT_SYMBOL vmlinux 0x683fabd7 kernel_write +EXPORT_SYMBOL vmlinux 0x6849a15f flex_array_clear +EXPORT_SYMBOL vmlinux 0x685e302a dev_addr_del +EXPORT_SYMBOL vmlinux 0x68609857 complete_and_exit +EXPORT_SYMBOL vmlinux 0x686b6332 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x6882422f pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x68a545c3 padata_alloc +EXPORT_SYMBOL vmlinux 0x68b83ac6 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x68c95edd bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x68deb728 __frontswap_test +EXPORT_SYMBOL vmlinux 0x68e05d57 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x68e81b70 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x68ebacbc phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x691909f7 bio_clone_bioset +EXPORT_SYMBOL vmlinux 0x69386c8e sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x694e0015 i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6975dfed tcp_init_sock +EXPORT_SYMBOL vmlinux 0x699cfbeb neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a2638c mmc_of_parse +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69bd5cdf filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69d7e5b8 __debugger_ipi +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69ecac04 pcie_get_mps +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a3f4119 mmc_of_parse_voltage +EXPORT_SYMBOL vmlinux 0x6a5e959a serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x6a5e9753 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a740c54 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a80a3f5 cpm_muram_free +EXPORT_SYMBOL vmlinux 0x6a94dd11 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x6a9b0a80 account_page_writeback +EXPORT_SYMBOL vmlinux 0x6a9bbf9e blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x6aa75b6f find_vma +EXPORT_SYMBOL vmlinux 0x6aad6008 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x6ab022df redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x6ac7a0b8 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x6ac9f266 rt6_lookup +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6acbb36a pcim_iounmap +EXPORT_SYMBOL vmlinux 0x6ad2609a jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x6ae3b1b3 blk_rq_init +EXPORT_SYMBOL vmlinux 0x6b06fdce delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x6b17d897 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b23321d fddi_type_trans +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b5aac7c elv_rb_del +EXPORT_SYMBOL vmlinux 0x6b7f1917 idr_find_slowpath +EXPORT_SYMBOL vmlinux 0x6bacdd32 cdev_del +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc7973f blk_queue_max_write_same_sectors +EXPORT_SYMBOL vmlinux 0x6bceaebc gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6be94133 free_user_ns +EXPORT_SYMBOL vmlinux 0x6beaad97 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x6beb2078 param_set_copystring +EXPORT_SYMBOL vmlinux 0x6bf0d9c0 scsi_device_get +EXPORT_SYMBOL vmlinux 0x6c0561a4 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x6c08ca5c seq_putc +EXPORT_SYMBOL vmlinux 0x6c1a4039 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2a20a3 skb_push +EXPORT_SYMBOL vmlinux 0x6c2faee3 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x6c2fb553 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x6c3a9287 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x6c3c047e pme_ctx_exclusive_inc +EXPORT_SYMBOL vmlinux 0x6c51a836 sysctl_tcp_notsent_lowat +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c665691 flex_array_shrink +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c8962ff unregister_filesystem +EXPORT_SYMBOL vmlinux 0x6c8aaea8 generic_fillattr +EXPORT_SYMBOL vmlinux 0x6ca1d1a4 atomic64_read +EXPORT_SYMBOL vmlinux 0x6ca5b0f8 __net_get_random_once +EXPORT_SYMBOL vmlinux 0x6cbdfa8e vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x6cc7f4d8 bio_put +EXPORT_SYMBOL vmlinux 0x6cc96aa2 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x6cd5cad4 mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cf1d18c free_task +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d1d2980 sock_no_bind +EXPORT_SYMBOL vmlinux 0x6d1edef0 gen10g_config_aneg +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d54c188 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x6d7e59b5 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x6d81da15 of_dev_put +EXPORT_SYMBOL vmlinux 0x6d8965d9 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x6da21c1b soft_cursor +EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns +EXPORT_SYMBOL vmlinux 0x6dafff09 twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x6dc48e10 led_blink_set +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6dfba229 tty_write_room +EXPORT_SYMBOL vmlinux 0x6e0ec914 poll_initwait +EXPORT_SYMBOL vmlinux 0x6e11527e dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x6e286680 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x6e379526 kernstart_addr +EXPORT_SYMBOL vmlinux 0x6e42ecb3 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x6e4ea324 unregister_key_type +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e764332 idr_destroy +EXPORT_SYMBOL vmlinux 0x6eb5e24f fbcon_rotate_cw +EXPORT_SYMBOL vmlinux 0x6eb74dff proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x6ebc5149 param_ops_long +EXPORT_SYMBOL vmlinux 0x6ec44e85 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x6ec7f32e inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x6ecbd9d6 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x6ecfe528 single_release +EXPORT_SYMBOL vmlinux 0x6f042d6f dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x6f0e7006 of_phy_connect +EXPORT_SYMBOL vmlinux 0x6f20960a full_name_hash +EXPORT_SYMBOL vmlinux 0x6f268538 bman_acquire +EXPORT_SYMBOL vmlinux 0x6f2d8508 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x6f6e5a0b pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x6f85b211 ida_remove +EXPORT_SYMBOL vmlinux 0x6f973d48 pci_iounmap +EXPORT_SYMBOL vmlinux 0x6fbcbc69 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x6fc69547 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x6fc82d1c truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6feaad38 simple_empty +EXPORT_SYMBOL vmlinux 0x6ff6e5fb generic_block_bmap +EXPORT_SYMBOL vmlinux 0x6ffde91b mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x7005fcfb blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x700a3667 __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0x701813cd sock_from_file +EXPORT_SYMBOL vmlinux 0x703cb570 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x7045dea9 qman_modify_cgr +EXPORT_SYMBOL vmlinux 0x704c45a0 kdb_current_task +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x706567d5 set_create_files_as +EXPORT_SYMBOL vmlinux 0x707f43f6 __ctzdi2 +EXPORT_SYMBOL vmlinux 0x7080b28d arp_find +EXPORT_SYMBOL vmlinux 0x709fa80d vfs_write +EXPORT_SYMBOL vmlinux 0x70b0c2d0 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70c62b8e netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70d888b7 __debugger_fault_handler +EXPORT_SYMBOL vmlinux 0x70e5218d max8998_read_reg +EXPORT_SYMBOL vmlinux 0x70f6b065 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0x71005ea4 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x7113370f mdiobus_scan +EXPORT_SYMBOL vmlinux 0x711e5a43 kill_pgrp +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x713b4441 dev_load +EXPORT_SYMBOL vmlinux 0x71474dbd xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71713004 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x7180b2c0 qman_delete_cgr +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71a6ae9e elevator_alloc +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71d3ec2f pci_find_capability +EXPORT_SYMBOL vmlinux 0x71f65175 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0x72020016 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x72083088 pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0x721f0c4c generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x72535468 __ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x726a4756 sock_no_listen +EXPORT_SYMBOL vmlinux 0x7271fd30 blk_put_request +EXPORT_SYMBOL vmlinux 0x7273e1c2 netdev_all_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0x727f82b5 mach_p1023_rds +EXPORT_SYMBOL vmlinux 0x728ce230 qm_fq_free_flags +EXPORT_SYMBOL vmlinux 0x72a70b7f pme_ctx_scan_orp +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b5b2b7 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x72b7a9a5 netpoll_setup +EXPORT_SYMBOL vmlinux 0x72c1f109 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x72cea1ca fb_get_mode +EXPORT_SYMBOL vmlinux 0x72d2956a devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0x72d4c23c fsl_get_sys_freq +EXPORT_SYMBOL vmlinux 0x72d58de9 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x72e97fd8 bio_map_user +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x7312c4a6 keyring_search +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x733b2383 next_tlbcam_idx +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x735d8503 add_wait_queue +EXPORT_SYMBOL vmlinux 0x736d2561 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x73939605 sock_no_connect +EXPORT_SYMBOL vmlinux 0x739704e8 open_exec +EXPORT_SYMBOL vmlinux 0x73c2daee skb_flow_dissect +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x747195f0 hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x748cffcc tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x74a96e48 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x74ae7f33 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74ce05b8 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x74de9286 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x7505bdef memchr_inv +EXPORT_SYMBOL vmlinux 0x7518044d mmc_can_erase +EXPORT_SYMBOL vmlinux 0x751c2917 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x753759f1 dev_printk_emit +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x75393668 netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0x754dac78 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x75597008 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x755c1147 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x7563297c inode_change_ok +EXPORT_SYMBOL vmlinux 0x7569ba0f phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x756dd160 start_thread +EXPORT_SYMBOL vmlinux 0x757f088f cpm_muram_offset +EXPORT_SYMBOL vmlinux 0x7581651c kernel_getsockname +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x75994700 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x75a7ba19 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x75b3390e input_allocate_device +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75d878b5 sget +EXPORT_SYMBOL vmlinux 0x75e0932c fd_install +EXPORT_SYMBOL vmlinux 0x75eb02aa mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0x76046a9b phy_connect +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x763eb045 pci_alloc_dev +EXPORT_SYMBOL vmlinux 0x764679a2 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x765c18ca simple_rename +EXPORT_SYMBOL vmlinux 0x766c8c84 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x767a9aa2 __getblk +EXPORT_SYMBOL vmlinux 0x76843c58 fm_port_enable +EXPORT_SYMBOL vmlinux 0x7697f8e6 dquot_acquire +EXPORT_SYMBOL vmlinux 0x769e06d7 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d06912 sock_no_poll +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d451c4 add_taint +EXPORT_SYMBOL vmlinux 0x76e4058b ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x76f234b1 ktime_get_clocktai +EXPORT_SYMBOL vmlinux 0x76f8df3b xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x7705a344 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x772234f9 pci_map_rom +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x7799463b tty_register_driver +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77b82105 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0x77b851c4 cacheable_memzero +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77c40635 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x77cde193 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x780dd2ce netdev_alert +EXPORT_SYMBOL vmlinux 0x78113e32 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x7815c7e3 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x782092dc dmam_pool_create +EXPORT_SYMBOL vmlinux 0x782567ec memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0x78294185 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x782e2fe7 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x7839c789 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x783b3563 wake_up_atomic_t +EXPORT_SYMBOL vmlinux 0x7853aafa __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x7887a915 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x789affb1 frontswap_tmem_exclusive_gets +EXPORT_SYMBOL vmlinux 0x78aafccc __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78dfdd9f pme_hw_residue_free +EXPORT_SYMBOL vmlinux 0x78f18614 __module_get +EXPORT_SYMBOL vmlinux 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL vmlinux 0x79049cbe netlink_capable +EXPORT_SYMBOL vmlinux 0x790df6ca __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x7930d225 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x7938d865 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x793d2a8d gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x7947a53e vfs_link +EXPORT_SYMBOL vmlinux 0x79584e64 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x798e3164 fm_port_get_handle +EXPORT_SYMBOL vmlinux 0x79a2623c update_time +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79b58bbb keyring_alloc +EXPORT_SYMBOL vmlinux 0x79b81dcf inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x79db706e proc_mkdir +EXPORT_SYMBOL vmlinux 0x7a0f1e76 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x7a122761 tcp_init_cgroup +EXPORT_SYMBOL vmlinux 0x7a130ec3 would_dump +EXPORT_SYMBOL vmlinux 0x7a16f123 fput +EXPORT_SYMBOL vmlinux 0x7a188791 prandom_bytes +EXPORT_SYMBOL vmlinux 0x7a231eb7 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a34ab35 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a61c03b net_dma_find_channel +EXPORT_SYMBOL vmlinux 0x7a8733f8 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x7a8e6ebe kobject_init +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7a925833 cpufreq_get_global_kobject +EXPORT_SYMBOL vmlinux 0x7a9c9502 bmap +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7aa49d56 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7aced815 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7add44b5 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7af09a3c tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0x7af23c80 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x7afa89fc vsnprintf +EXPORT_SYMBOL vmlinux 0x7b1ade38 lz4_decompress +EXPORT_SYMBOL vmlinux 0x7b24cf57 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x7b5c8440 vm_munmap +EXPORT_SYMBOL vmlinux 0x7b62b85a alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x7b703621 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x7b7a440d request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x7b9e3df4 __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0x7bbc3cfe mfd_add_devices +EXPORT_SYMBOL vmlinux 0x7bc81974 padata_add_cpu +EXPORT_SYMBOL vmlinux 0x7be4827c pci_dram_offset +EXPORT_SYMBOL vmlinux 0x7bee251d phy_connect_direct +EXPORT_SYMBOL vmlinux 0x7bf6eb92 dma_common_get_sgtable +EXPORT_SYMBOL vmlinux 0x7c003aef _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x7c1372e8 panic +EXPORT_SYMBOL vmlinux 0x7c36c340 touch_buffer +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c50ee29 skb_find_text +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c69a196 init_task +EXPORT_SYMBOL vmlinux 0x7c7b030e dev_activate +EXPORT_SYMBOL vmlinux 0x7c8d37cc tty_port_init +EXPORT_SYMBOL vmlinux 0x7c9291d1 csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7c9ac32e __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x7cbc4f92 serio_interrupt +EXPORT_SYMBOL vmlinux 0x7cc578da param_get_long +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7cf8feb5 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d2c9e14 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x7d404bac set_device_ro +EXPORT_SYMBOL vmlinux 0x7d5cf80b scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x7d6455c3 phy_start +EXPORT_SYMBOL vmlinux 0x7d64d804 netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0x7d6afb9e switch_mmu_context +EXPORT_SYMBOL vmlinux 0x7d725726 dma_find_channel +EXPORT_SYMBOL vmlinux 0x7d7f5fc6 ftrace_print_symbols_seq_u64 +EXPORT_SYMBOL vmlinux 0x7d7f9fd8 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x7d9ae8ce dcb_setapp +EXPORT_SYMBOL vmlinux 0x7d9f2c24 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x7da1108c uart_add_one_port +EXPORT_SYMBOL vmlinux 0x7db54d43 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x7db8fc74 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x7dc0e109 idr_get_next +EXPORT_SYMBOL vmlinux 0x7dc1da66 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7e101566 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x7e169ff6 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x7e21291c generic_setxattr +EXPORT_SYMBOL vmlinux 0x7e2af7b1 save_mount_options +EXPORT_SYMBOL vmlinux 0x7e2bbb79 sk_filter +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e47b5c1 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x7e49f281 lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0x7e4abbaf bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x7e6074a3 unregister_console +EXPORT_SYMBOL vmlinux 0x7e87227e slhc_compress +EXPORT_SYMBOL vmlinux 0x7e89cb03 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x7e8ba899 input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x7e9f1b2d phy_register_fixup +EXPORT_SYMBOL vmlinux 0x7eb62558 udp_ioctl +EXPORT_SYMBOL vmlinux 0x7eba5034 loop_backing_file +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7edcaaee task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x7ee73c0c memcg_socket_limit_enabled +EXPORT_SYMBOL vmlinux 0x7f0b2960 qman_fqid_pool_create +EXPORT_SYMBOL vmlinux 0x7f0dd702 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x7f1b9dd3 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f2f1007 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x7f4a5847 inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0x7f4dd1ca mark_page_accessed +EXPORT_SYMBOL vmlinux 0x7f83bb56 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x7f83f668 __frontswap_store +EXPORT_SYMBOL vmlinux 0x7fa131ce sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x7fae0d89 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x7fe2a1ea blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7feb0076 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x8043511f devfreq_interval_update +EXPORT_SYMBOL vmlinux 0x804f922a ipmi_addr_length +EXPORT_SYMBOL vmlinux 0x8057d691 cdev_alloc +EXPORT_SYMBOL vmlinux 0x80612a49 led_blink_set_oneshot +EXPORT_SYMBOL vmlinux 0x80671a4b __inet6_hash +EXPORT_SYMBOL vmlinux 0x807cd141 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x808434d8 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x80afeaf3 unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x80b778c0 devm_ioremap_prot +EXPORT_SYMBOL vmlinux 0x80bc0ead iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80e08702 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x80e444b1 __lock_buffer +EXPORT_SYMBOL vmlinux 0x80e4e4a4 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x80e5b3a3 __sb_start_write +EXPORT_SYMBOL vmlinux 0x80ee20c6 dquot_alloc +EXPORT_SYMBOL vmlinux 0x80ee805f bio_reset +EXPORT_SYMBOL vmlinux 0x80f69d8e pci_disable_ltr +EXPORT_SYMBOL vmlinux 0x810b6f2f bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x811ed9b7 mdiobus_write +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x8153909d skb_unlink +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815c56d0 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x817eef1b dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x81958593 balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0x81a07f4e _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x81a51fcc read_code +EXPORT_SYMBOL vmlinux 0x81ab195a devm_clk_put +EXPORT_SYMBOL vmlinux 0x81b0980e eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x81b92f92 block_truncate_page +EXPORT_SYMBOL vmlinux 0x81bbac60 agp_backend_release +EXPORT_SYMBOL vmlinux 0x81c71720 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x81ce0239 udp_add_offload +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x820962e1 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x821986b9 dquot_drop +EXPORT_SYMBOL vmlinux 0x8222952f start_tty +EXPORT_SYMBOL vmlinux 0x8238fd1a rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x824f3201 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x82535c4d tc_classify_compat +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x826c84b2 from_kprojid_munged +EXPORT_SYMBOL vmlinux 0x828062b1 __frontswap_init +EXPORT_SYMBOL vmlinux 0x829339c1 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b4629f __netlink_dump_start +EXPORT_SYMBOL vmlinux 0x82bf38c5 proc_set_size +EXPORT_SYMBOL vmlinux 0x82c02cde iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x835e0a0d __skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x837f4b62 register_netdev +EXPORT_SYMBOL vmlinux 0x83844b4a vmap +EXPORT_SYMBOL vmlinux 0x839d043b pci_pme_active +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83b108c3 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x83c8ab4e fm_set_tx_port_params +EXPORT_SYMBOL vmlinux 0x83d8a937 qman_fqid_pool_used +EXPORT_SYMBOL vmlinux 0x83dea972 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x83e3521c ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x83ec9997 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x83ed86e5 mach_p1020_utm_pc +EXPORT_SYMBOL vmlinux 0x84116d0f fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x8411ec26 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x841962f8 param_get_ushort +EXPORT_SYMBOL vmlinux 0x84220e3f __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x8443bfb5 lock_rename +EXPORT_SYMBOL vmlinux 0x844404cf ISA_DMA_THRESHOLD +EXPORT_SYMBOL vmlinux 0x8462d269 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x847b5b10 ppp_input_error +EXPORT_SYMBOL vmlinux 0x8492522d blk_sync_queue +EXPORT_SYMBOL vmlinux 0x84930ac5 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x849557be sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0x8498f649 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x84a3a2af devm_request_and_ioremap +EXPORT_SYMBOL vmlinux 0x84b036cf __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84bd69bf dq_data_lock +EXPORT_SYMBOL vmlinux 0x84c21220 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x84f86439 make_kgid +EXPORT_SYMBOL vmlinux 0x84fb0728 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x84ffea8b idr_preload +EXPORT_SYMBOL vmlinux 0x8509c540 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0x8518eca9 param_get_short +EXPORT_SYMBOL vmlinux 0x853bf7c1 param_set_int +EXPORT_SYMBOL vmlinux 0x854917ab ata_dev_printk +EXPORT_SYMBOL vmlinux 0x855103e3 cdrom_open +EXPORT_SYMBOL vmlinux 0x855bc540 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x8564b0ff tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x8573afb2 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x85b37c4a dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85c3347e sk_wait_data +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85ed893e skb_seq_read +EXPORT_SYMBOL vmlinux 0x85f1ebe2 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x860160c3 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x862a86fc blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x863cc179 module_put +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x86629a28 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x86653aaf path_get +EXPORT_SYMBOL vmlinux 0x86692b45 set_anon_super +EXPORT_SYMBOL vmlinux 0x868a2e1c vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86b9001d arp_invalidate +EXPORT_SYMBOL vmlinux 0x86ec2b73 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870957d3 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x8722e4e1 sk_dst_check +EXPORT_SYMBOL vmlinux 0x8725d34b xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x872caf08 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x87688da3 inet_addr_type +EXPORT_SYMBOL vmlinux 0x876eff23 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x8779a34f param_ops_byte +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x8798e453 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x8799ac73 tty_lock +EXPORT_SYMBOL vmlinux 0x879ad06c decrementer_clockevent +EXPORT_SYMBOL vmlinux 0x87dcb16a sock_wmalloc +EXPORT_SYMBOL vmlinux 0x87eb891e scsi_print_result +EXPORT_SYMBOL vmlinux 0x87f5bc48 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88279f25 cpm_muram_alloc +EXPORT_SYMBOL vmlinux 0x882dab9d sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x88513970 param_set_byte +EXPORT_SYMBOL vmlinux 0x8867e330 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x888dbbe6 mach_p1020_rdb_pd +EXPORT_SYMBOL vmlinux 0x8892dbb6 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x889da5f2 scsi_register +EXPORT_SYMBOL vmlinux 0x88a2c8a3 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x88cbd7b3 lock_may_read +EXPORT_SYMBOL vmlinux 0x88e178ac from_kgid_munged +EXPORT_SYMBOL vmlinux 0x8902daeb blk_start_queue +EXPORT_SYMBOL vmlinux 0x89039435 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x891fbb10 mempool_destroy +EXPORT_SYMBOL vmlinux 0x89298f82 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x8944b308 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x8953f8ff __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x8957403c agp_generic_enable +EXPORT_SYMBOL vmlinux 0x8965130d gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89797060 _raw_read_lock +EXPORT_SYMBOL vmlinux 0x897f061d downgrade_write +EXPORT_SYMBOL vmlinux 0x89806c2c scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x899b1fa6 mach_p1024_rdb +EXPORT_SYMBOL vmlinux 0x89aa26d1 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x89ad4928 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x89ad58b2 ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89b8bf47 ip_options_compile +EXPORT_SYMBOL vmlinux 0x89cb5ccd nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89f45d2e dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x8a06b48e set_security_override +EXPORT_SYMBOL vmlinux 0x8a1a0cae __sock_create +EXPORT_SYMBOL vmlinux 0x8a1ab4ee timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8a1fe147 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a4dfcb0 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x8a51d565 quota_send_warning +EXPORT_SYMBOL vmlinux 0x8a5493bb qman_recovery_cleanup_fq +EXPORT_SYMBOL vmlinux 0x8a5947e3 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x8a6360d5 devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x8a69f9e2 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x8a7527e1 bm_pool_new +EXPORT_SYMBOL vmlinux 0x8a756fac tcp_prot +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a8669ef __pci_register_driver +EXPORT_SYMBOL vmlinux 0x8a876f54 ida_init +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ab4079e atomic64_add +EXPORT_SYMBOL vmlinux 0x8ab4aadd dev_printk +EXPORT_SYMBOL vmlinux 0x8ac622f8 dev_close +EXPORT_SYMBOL vmlinux 0x8ad86c3e qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x8ade853c abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x8ae4c3c1 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x8ae54fb6 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x8b0d2c39 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x8b166ed3 pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b248d40 padata_start +EXPORT_SYMBOL vmlinux 0x8b2a5aa4 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b48d176 scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b7367f4 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0x8ba5de0c bdgrab +EXPORT_SYMBOL vmlinux 0x8baf3116 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x8bbd5f29 kmap_high +EXPORT_SYMBOL vmlinux 0x8bdc2cb7 qman_query_cgr +EXPORT_SYMBOL vmlinux 0x8be23716 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x8bf2ae1f fsl_lbc_addr +EXPORT_SYMBOL vmlinux 0x8bf43fde console_stop +EXPORT_SYMBOL vmlinux 0x8bf59662 __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x8bfcac36 mach_stx_gp3 +EXPORT_SYMBOL vmlinux 0x8c0d8cca agp_bridge +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c494c8f scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x8c637d43 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL vmlinux 0x8cb27ea5 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x8cb943c2 flush_dcache_icache_page +EXPORT_SYMBOL vmlinux 0x8cc2c530 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cd00781 sock_init_data +EXPORT_SYMBOL vmlinux 0x8cd19246 follow_pfn +EXPORT_SYMBOL vmlinux 0x8cdbcfd9 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x8cdee37f audit_log_start +EXPORT_SYMBOL vmlinux 0x8ce23a43 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x8cf89443 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x8d015dd4 __bswapdi2 +EXPORT_SYMBOL vmlinux 0x8d137331 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x8d2e268b param_ops_ulong +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper +EXPORT_SYMBOL vmlinux 0x8da6e890 pci_enable_ido +EXPORT_SYMBOL vmlinux 0x8daca4e4 bdev_read_only +EXPORT_SYMBOL vmlinux 0x8dd1e6a9 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x8de0b5ac mempool_create +EXPORT_SYMBOL vmlinux 0x8de2cd6f bman_irqsource_get +EXPORT_SYMBOL vmlinux 0x8e0047f2 mach_p1022_rdk +EXPORT_SYMBOL vmlinux 0x8e068503 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0x8e0a8b85 blk_init_tags +EXPORT_SYMBOL vmlinux 0x8e0d66f4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x8e19f0eb elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x8e21a187 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x8e531451 simple_getattr +EXPORT_SYMBOL vmlinux 0x8e55f9fe netpoll_print_options +EXPORT_SYMBOL vmlinux 0x8e56b8b3 icmpv6_send +EXPORT_SYMBOL vmlinux 0x8e633dde security_file_permission +EXPORT_SYMBOL vmlinux 0x8e73da0f PDE_DATA +EXPORT_SYMBOL vmlinux 0x8e74870d wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x8e864a86 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8e8d58da diu_ops +EXPORT_SYMBOL vmlinux 0x8e8f51cd nonseekable_open +EXPORT_SYMBOL vmlinux 0x8eb8abab kernel_bind +EXPORT_SYMBOL vmlinux 0x8ec04552 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x8ef11d9e __scm_send +EXPORT_SYMBOL vmlinux 0x8f045d1c cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x8f32ddc5 request_key_async +EXPORT_SYMBOL vmlinux 0x8f649c18 tcp_poll +EXPORT_SYMBOL vmlinux 0x8f7c593b scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x8f85f835 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x8faa4598 of_translate_address +EXPORT_SYMBOL vmlinux 0x8faf1804 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x8fbce6ae truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x8fbf37e0 profile_pc +EXPORT_SYMBOL vmlinux 0x8fcb9820 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x8fd3b908 ip_check_defrag +EXPORT_SYMBOL vmlinux 0x8feb6b98 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90415bf0 vfs_llseek +EXPORT_SYMBOL vmlinux 0x9048ca27 iget5_locked +EXPORT_SYMBOL vmlinux 0x904f8dff ps2_command +EXPORT_SYMBOL vmlinux 0x90501868 transfer_to_handler +EXPORT_SYMBOL vmlinux 0x908b53ed param_set_short +EXPORT_SYMBOL vmlinux 0x909ec333 bdi_register +EXPORT_SYMBOL vmlinux 0x90a25ff5 unlock_page +EXPORT_SYMBOL vmlinux 0x90c5e819 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x90dd8e69 vfs_create +EXPORT_SYMBOL vmlinux 0x90def640 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc +EXPORT_SYMBOL vmlinux 0x91206467 generic_read_dir +EXPORT_SYMBOL vmlinux 0x9124578b blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0x91402b74 blk_get_queue +EXPORT_SYMBOL vmlinux 0x91406a92 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x91a21d6c phy_driver_register +EXPORT_SYMBOL vmlinux 0x91b23b60 dev_get_flags +EXPORT_SYMBOL vmlinux 0x91c47171 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x91cda32b netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x91cfb5d9 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x91e3a957 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x9219c977 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x922c3760 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x925520d2 blk_start_plug +EXPORT_SYMBOL vmlinux 0x925e8189 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x92661f37 __inode_permission +EXPORT_SYMBOL vmlinux 0x92a7e6c5 bman_new_pool +EXPORT_SYMBOL vmlinux 0x92a95992 rtmsg_ifinfo +EXPORT_SYMBOL vmlinux 0x92a9c60c time_to_tm +EXPORT_SYMBOL vmlinux 0x92bc220b lockref_get +EXPORT_SYMBOL vmlinux 0x92df1be5 blkdev_put +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x932d98c1 cpm_muram_dma +EXPORT_SYMBOL vmlinux 0x933e10ec qman_ip_rev +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x93565612 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x93720319 blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93a90e3b mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x93b2f1da bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93d3fe3e __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x93e370d3 scsi_print_command +EXPORT_SYMBOL vmlinux 0x93ed24fd md_done_sync +EXPORT_SYMBOL vmlinux 0x93fc542e of_platform_device_create +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9401a56b bdi_destroy +EXPORT_SYMBOL vmlinux 0x941839d8 pci_platform_rom +EXPORT_SYMBOL vmlinux 0x943ad77c kfree_skb +EXPORT_SYMBOL vmlinux 0x943b7d8d dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x944a3927 pci_release_region +EXPORT_SYMBOL vmlinux 0x94631b98 qman_irqsource_get +EXPORT_SYMBOL vmlinux 0x947cb101 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x9494ceda input_close_device +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x949636fd mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x949dd929 elevator_exit +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94d78b7c qman_create_cgr +EXPORT_SYMBOL vmlinux 0x94e62412 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x9508f166 param_ops_bint +EXPORT_SYMBOL vmlinux 0x95132e27 iput +EXPORT_SYMBOL vmlinux 0x9514151a _mcount +EXPORT_SYMBOL vmlinux 0x95235104 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x952485b1 pme_fd_cmd_nop +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954fb377 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x955d2f03 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x9564bb6d padata_stop +EXPORT_SYMBOL vmlinux 0x95822155 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x9583ed72 update_devfreq +EXPORT_SYMBOL vmlinux 0x959c2ed7 qman_query_fq_np +EXPORT_SYMBOL vmlinux 0x95bf9c74 skb_store_bits +EXPORT_SYMBOL vmlinux 0x95cb929c of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x95e6e500 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x95e8ccf8 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x95f3e247 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x95f62f26 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x9600db96 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x9628fddd mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x9651d8f2 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x966c6c54 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x96819597 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x96b0859d udp_del_offload +EXPORT_SYMBOL vmlinux 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96e35c8f cfb_imageblit +EXPORT_SYMBOL vmlinux 0x9708c0e0 agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x972a8e13 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x972dd2c8 datagram_poll +EXPORT_SYMBOL vmlinux 0x97312f7c bdget_disk +EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns +EXPORT_SYMBOL vmlinux 0x974d71b1 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x97828850 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x97a60e3d param_get_bool +EXPORT_SYMBOL vmlinux 0x97a87c16 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x97b4500c __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x97c3fe58 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x97cb989c thaw_bdev +EXPORT_SYMBOL vmlinux 0x97dabfef ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x9800c9f3 tcp_close +EXPORT_SYMBOL vmlinux 0x98031cda __put_cred +EXPORT_SYMBOL vmlinux 0x980867e1 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x980b8dfa nla_reserve +EXPORT_SYMBOL vmlinux 0x981661a0 __idr_get_new_above +EXPORT_SYMBOL vmlinux 0x982be925 mmc_free_host +EXPORT_SYMBOL vmlinux 0x983e57d8 mem_cgroup_subsys +EXPORT_SYMBOL vmlinux 0x984d9b81 giveup_fpu +EXPORT_SYMBOL vmlinux 0x985d7456 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x98668903 pme_sw_flow_init +EXPORT_SYMBOL vmlinux 0x986c946b put_page +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x986f1afb devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0x987b9654 kobject_del +EXPORT_SYMBOL vmlinux 0x98cba87e skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x98e64506 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x98fe7882 DMA_MODE_READ +EXPORT_SYMBOL vmlinux 0x9917fec1 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x99275e19 mach_qemu_e500 +EXPORT_SYMBOL vmlinux 0x993223f4 register_quota_format +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x99591a7a ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x995e8e80 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x996bf05a fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x996d5f64 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x99762e83 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a86ae8 mpage_readpage +EXPORT_SYMBOL vmlinux 0x99aecde2 ip6_route_output +EXPORT_SYMBOL vmlinux 0x99afe916 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x99b7b329 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99c4dd89 blk_put_queue +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d64774 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x99df685a tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x99e0ab94 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x9a197feb mach_bsc9131_rdb +EXPORT_SYMBOL vmlinux 0x9a1af451 devm_free_irq +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1fc4b4 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9a58d339 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x9a59a253 __get_page_tail +EXPORT_SYMBOL vmlinux 0x9a626734 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x9a692a5d jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x9a740c73 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x9a750e98 bio_endio +EXPORT_SYMBOL vmlinux 0x9a791696 find_get_page +EXPORT_SYMBOL vmlinux 0x9a80eb1e key_type_keyring +EXPORT_SYMBOL vmlinux 0x9a85b0e6 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x9a910573 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x9abbb7d2 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x9ac06ede scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x9ae7dd03 write_cache_pages +EXPORT_SYMBOL vmlinux 0x9aeb0a15 udp6_csum_init +EXPORT_SYMBOL vmlinux 0x9aeeae6d __cleancache_invalidate_page +EXPORT_SYMBOL vmlinux 0x9b03755a __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x9b065bb0 netdev_update_features +EXPORT_SYMBOL vmlinux 0x9b0ead8e try_to_release_page +EXPORT_SYMBOL vmlinux 0x9b1f3889 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b55f502 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x9b59c74a tcp_check_req +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b859149 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x9b93463b vfs_statfs +EXPORT_SYMBOL vmlinux 0x9b9e05f9 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x9b9e226a dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bc6ce05 blk_end_request +EXPORT_SYMBOL vmlinux 0x9bd98bf5 input_flush_device +EXPORT_SYMBOL vmlinux 0x9be0ab76 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x9be7bde4 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x9be9e8c1 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x9c06502f mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x9c06b2d0 bio_pair_release +EXPORT_SYMBOL vmlinux 0x9c28adc1 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x9c2bb075 blk_make_request +EXPORT_SYMBOL vmlinux 0x9c3de1f0 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c4def48 pme_fd_cmd_scan +EXPORT_SYMBOL vmlinux 0x9c662104 thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x9c66a7ac sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x9ca4b223 tcp_proto_cgroup +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9cc354d9 pcim_iomap +EXPORT_SYMBOL vmlinux 0x9cc6390e jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0x9cc99288 fm_unbind +EXPORT_SYMBOL vmlinux 0x9cd56a69 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x9cd7c67c __ps2_command +EXPORT_SYMBOL vmlinux 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL vmlinux 0x9ce70b1d kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cef3cc5 __idr_remove_all +EXPORT_SYMBOL vmlinux 0x9ceff691 dquot_destroy +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d13276f phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs +EXPORT_SYMBOL vmlinux 0x9d16e718 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x9d28a222 arp_tbl +EXPORT_SYMBOL vmlinux 0x9d3475f4 ppp_input +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d503789 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d703d64 mach_mpc85xx_ads +EXPORT_SYMBOL vmlinux 0x9d72229b fsl_ifc_find +EXPORT_SYMBOL vmlinux 0x9d7ce8dd _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x9d90f95f __crc32c_le_combine +EXPORT_SYMBOL vmlinux 0x9dc7e4da simple_rmdir +EXPORT_SYMBOL vmlinux 0x9de2dfd0 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x9dee9a84 cpm2_immr +EXPORT_SYMBOL vmlinux 0x9deed102 phy_attach_direct +EXPORT_SYMBOL vmlinux 0x9dfa23db pci_write_vpd +EXPORT_SYMBOL vmlinux 0x9dfc1edd bman_irqsource_add +EXPORT_SYMBOL vmlinux 0x9dfe7307 lz4_decompress_unknownoutputsize +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e0eb0be nf_log_packet +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e2625f4 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x9e44b9b7 of_get_next_available_child +EXPORT_SYMBOL vmlinux 0x9e4b3747 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e69e542 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x9e8833cb pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9eae3170 drop_nlink +EXPORT_SYMBOL vmlinux 0x9eb05a33 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x9eb1958a xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x9ebad140 inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ebf6c72 blk_mq_insert_request +EXPORT_SYMBOL vmlinux 0x9ec16032 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x9ec45fa9 phy_device_register +EXPORT_SYMBOL vmlinux 0x9ed2eec7 param_set_ushort +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eedfe27 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x9f0b4086 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x9f0c5ecf fm_set_rx_port_params +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f3e98c2 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x9f4193fb blk_peek_request +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f55130c tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x9f76db61 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x9f7fc5c4 mmc_add_host +EXPORT_SYMBOL vmlinux 0x9f8d00dd security_dentry_init_security +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa29669 clk_add_alias +EXPORT_SYMBOL vmlinux 0x9fa4f8f4 sock_release +EXPORT_SYMBOL vmlinux 0x9fae5a4c i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fb8cb60 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x9fcbaecf i8042_install_filter +EXPORT_SYMBOL vmlinux 0x9fdbc969 netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe7141e inet6_bind +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0x9fffbdda vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0xa039ab33 __skb_get_hash +EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0xa044ba6e netdev_features_change +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06b9b92 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa0966e4b unregister_shrinker +EXPORT_SYMBOL vmlinux 0xa09710a5 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xa09f8be2 qman_affine_cpus +EXPORT_SYMBOL vmlinux 0xa0acb8bb sock_i_ino +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0cca981 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d8deea udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xa0dad88e netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0xa0e30390 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0f18d6f pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xa0f3b1e9 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa106793d tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xa1070746 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa10a9351 get_pci_dma_ops +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa12175fa splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xa134134a dev_disable_lro +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa143625d xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa16a9605 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xa180758c nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0xa1882563 register_gifconf +EXPORT_SYMBOL vmlinux 0xa1a6de58 no_llseek +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1bdafba devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1c99385 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xa1caa424 qdisc_watchdog_schedule_ns +EXPORT_SYMBOL vmlinux 0xa1f8fe75 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2103cf8 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xa23ac193 sock_update_classid +EXPORT_SYMBOL vmlinux 0xa25db465 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xa25eeabc path_put +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL vmlinux 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL vmlinux 0xa2ba00f2 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register +EXPORT_SYMBOL vmlinux 0xa2cfec87 udp_poll +EXPORT_SYMBOL vmlinux 0xa2d82dca blk_run_queue_async +EXPORT_SYMBOL vmlinux 0xa2ecfaea scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa303d1ff dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0xa30e51fa eth_header +EXPORT_SYMBOL vmlinux 0xa332464a of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35b863e sock_update_memcg +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa3604895 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xa3674337 do_sync_write +EXPORT_SYMBOL vmlinux 0xa36a3b79 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0xa3747cab inet6_register_protosw +EXPORT_SYMBOL vmlinux 0xa37a1a65 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0xa381944f dql_reset +EXPORT_SYMBOL vmlinux 0xa38e691a ioremap_bot +EXPORT_SYMBOL vmlinux 0xa3989f61 sync_blockdev +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3abc422 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xa3cc9181 softnet_data +EXPORT_SYMBOL vmlinux 0xa3d31e17 agp_find_bridge +EXPORT_SYMBOL vmlinux 0xa3d4f359 get_tz_trend +EXPORT_SYMBOL vmlinux 0xa3dcc997 mmc_gpio_request_cd +EXPORT_SYMBOL vmlinux 0xa3e75545 flush_tlb_kernel_range +EXPORT_SYMBOL vmlinux 0xa3ed73ae pci_restore_state +EXPORT_SYMBOL vmlinux 0xa3f2a65f devm_iounmap +EXPORT_SYMBOL vmlinux 0xa3fd4f15 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xa40de380 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xa431459e security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xa43b1297 vscnprintf +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa441f628 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xa467599f sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xa4701e9e timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0xa473f1b2 seq_open +EXPORT_SYMBOL vmlinux 0xa47f39a3 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0xa4826b4a sg_miter_next +EXPORT_SYMBOL vmlinux 0xa489a684 blk_init_queue +EXPORT_SYMBOL vmlinux 0xa48d7543 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xa49e7d78 key_put +EXPORT_SYMBOL vmlinux 0xa4a94d26 find_next_bit_le +EXPORT_SYMBOL vmlinux 0xa4ad8538 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xa4b50c07 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa500eefd i2c_master_recv +EXPORT_SYMBOL vmlinux 0xa50c7161 seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0xa50deb24 __serio_register_port +EXPORT_SYMBOL vmlinux 0xa521229e nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa5690a18 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xa57deade neigh_seq_next +EXPORT_SYMBOL vmlinux 0xa589ec3f tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xa58b7951 inet_add_offload +EXPORT_SYMBOL vmlinux 0xa59656e8 ilookup5 +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a3857d register_key_type +EXPORT_SYMBOL vmlinux 0xa5adb5ac input_set_keycode +EXPORT_SYMBOL vmlinux 0xa5c71d37 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xa5cb619e deactivate_super +EXPORT_SYMBOL vmlinux 0xa5d0813c xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xa5e5e695 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0xa5e728cd inet_accept +EXPORT_SYMBOL vmlinux 0xa5e728f7 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xa61671dc ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xa619c181 pme_ctx_reconfigure_tx +EXPORT_SYMBOL vmlinux 0xa633f8d2 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0xa63a2f9b param_get_ulong +EXPORT_SYMBOL vmlinux 0xa65775a4 page_address +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa6662d98 ip_route_input_noref +EXPORT_SYMBOL vmlinux 0xa670647b mmc_can_trim +EXPORT_SYMBOL vmlinux 0xa6715115 do_settimeofday +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa699b348 vfs_mknod +EXPORT_SYMBOL vmlinux 0xa69ecfa3 sk_common_release +EXPORT_SYMBOL vmlinux 0xa69f30fb pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0xa6a04d38 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xa6af1a94 pme2_exclusive_unset +EXPORT_SYMBOL vmlinux 0xa6c8bcc8 tty_port_put +EXPORT_SYMBOL vmlinux 0xa6ca00a0 register_framebuffer +EXPORT_SYMBOL vmlinux 0xa6d41fc0 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xa6d79388 pci_bus_get +EXPORT_SYMBOL vmlinux 0xa6de89ab invalidate_partition +EXPORT_SYMBOL vmlinux 0xa70a29d8 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa720678c lg_global_lock +EXPORT_SYMBOL vmlinux 0xa725addd d_instantiate +EXPORT_SYMBOL vmlinux 0xa72d44f9 scsi_block_requests +EXPORT_SYMBOL vmlinux 0xa735db59 prandom_u32 +EXPORT_SYMBOL vmlinux 0xa73fc98f of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xa7437afd names_cachep +EXPORT_SYMBOL vmlinux 0xa74cba42 padata_do_serial +EXPORT_SYMBOL vmlinux 0xa75af2bd simple_transaction_read +EXPORT_SYMBOL vmlinux 0xa76bc3d8 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xa778ba23 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0xa77b7d4f flush_tlb_mm +EXPORT_SYMBOL vmlinux 0xa78a7557 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL vmlinux 0xa78ebbd4 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xa7cf5c2e scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xa7d2a224 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xa7e0cf72 dm_unregister_target +EXPORT_SYMBOL vmlinux 0xa7e94902 kmap_pte +EXPORT_SYMBOL vmlinux 0xa7edd5af elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xa7fe424c vfs_symlink +EXPORT_SYMBOL vmlinux 0xa80de5a6 override_creds +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa8721b97 system_state +EXPORT_SYMBOL vmlinux 0xa8803f64 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xa89464b7 __ashldi3 +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8cc0bda inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xa8ccf264 register_nls +EXPORT_SYMBOL vmlinux 0xa8cdbd4a blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xa8edc83d mount_pseudo +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa90df1f3 mmc_get_card +EXPORT_SYMBOL vmlinux 0xa91770c6 dquot_initialize +EXPORT_SYMBOL vmlinux 0xa925098a scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xa9273e1a epapr_hypercall_start +EXPORT_SYMBOL vmlinux 0xa93ee6e7 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xa94f39f3 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0xa9526e18 set_page_dirty +EXPORT_SYMBOL vmlinux 0xa9571d6d DMA_MODE_WRITE +EXPORT_SYMBOL vmlinux 0xa95d740c mddev_congested +EXPORT_SYMBOL vmlinux 0xa9695dfe find_or_create_page +EXPORT_SYMBOL vmlinux 0xa96d9cac blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0xa9b63345 of_parse_phandle_with_fixed_args +EXPORT_SYMBOL vmlinux 0xa9b6d22b mmc_erase +EXPORT_SYMBOL vmlinux 0xa9c092c2 blk_delay_queue +EXPORT_SYMBOL vmlinux 0xa9ed41dc genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xa9f0a0cc simple_dentry_operations +EXPORT_SYMBOL vmlinux 0xa9f201b3 kernel_connect +EXPORT_SYMBOL vmlinux 0xa9f5f189 call_netdevice_notifiers_info +EXPORT_SYMBOL vmlinux 0xa9fb0354 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xaa0bf116 tty_do_resize +EXPORT_SYMBOL vmlinux 0xaa0efeb3 dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0xaa422187 skb_clone +EXPORT_SYMBOL vmlinux 0xaa46e87e lg_local_unlock +EXPORT_SYMBOL vmlinux 0xaa506581 __get_user_pages +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa6e4df5 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa9087c0 param_ops_string +EXPORT_SYMBOL vmlinux 0xaa93a2ad neigh_for_each +EXPORT_SYMBOL vmlinux 0xaaab8067 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xaaadeccf bio_init +EXPORT_SYMBOL vmlinux 0xaac610e0 blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0xaad69e23 qman_fq_state +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xaafddf28 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xab0c4f0b fbcon_rotate_ccw +EXPORT_SYMBOL vmlinux 0xab2c4056 iunique +EXPORT_SYMBOL vmlinux 0xab38da0e phy_print_status +EXPORT_SYMBOL vmlinux 0xab39797f inet_frags_fini +EXPORT_SYMBOL vmlinux 0xab3a8a83 blkdev_get +EXPORT_SYMBOL vmlinux 0xab49b086 clocksource_unregister +EXPORT_SYMBOL vmlinux 0xab66514e __bread +EXPORT_SYMBOL vmlinux 0xab694444 bsearch +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xab90d3b3 inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0xaba825d1 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xabc6dd63 cpufreq_sysfs_create_file +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabfcf3fb bitmap_unplug +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac159041 phy_get_eee_err +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac26b820 _raw_write_lock +EXPORT_SYMBOL vmlinux 0xac27d051 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xac303160 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xac32fd03 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xac3ae650 generic_listxattr +EXPORT_SYMBOL vmlinux 0xac446d4a find_get_pages_tag +EXPORT_SYMBOL vmlinux 0xac6cd098 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xac869b72 pci_match_id +EXPORT_SYMBOL vmlinux 0xac940ee2 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xaca633fc ab3100_event_register +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacc23191 mmc_start_req +EXPORT_SYMBOL vmlinux 0xacc5b5d2 csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xaccd2ddf sockfd_lookup +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0a6e0a flex_array_prealloc +EXPORT_SYMBOL vmlinux 0xad207c1c qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xad46dec2 of_count_phandle_with_args +EXPORT_SYMBOL vmlinux 0xad4c3513 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad860d4d tcp_shutdown +EXPORT_SYMBOL vmlinux 0xad90f33a fm_port_get_base_addr +EXPORT_SYMBOL vmlinux 0xadaaec6d seq_write +EXPORT_SYMBOL vmlinux 0xadd1e971 alignment_exception +EXPORT_SYMBOL vmlinux 0xaddd4770 __debugger_iabr_match +EXPORT_SYMBOL vmlinux 0xadf0811d get_baudrate +EXPORT_SYMBOL vmlinux 0xadf3e88e rtnl_notify +EXPORT_SYMBOL vmlinux 0xadf64877 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xae2d8e00 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xae315ab1 tty_port_open +EXPORT_SYMBOL vmlinux 0xae4d2c0a rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xae545f06 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xae729e59 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0xae78fb65 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xae85ab4e pci_target_state +EXPORT_SYMBOL vmlinux 0xae8acf75 mpage_readpages +EXPORT_SYMBOL vmlinux 0xaec526f1 pme_ctx_scan +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaed8cce9 inet6_del_offload +EXPORT_SYMBOL vmlinux 0xaeeab852 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xaf05b91b of_device_is_available +EXPORT_SYMBOL vmlinux 0xaf063510 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xaf178f16 __pagevec_release +EXPORT_SYMBOL vmlinux 0xaf1d47e3 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0xaf2d872c prepare_to_wait +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf3fb741 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xaf508831 zerocopy_sg_from_iovec +EXPORT_SYMBOL vmlinux 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf95b25a pci_release_regions +EXPORT_SYMBOL vmlinux 0xaf9c4b5c simple_unlink +EXPORT_SYMBOL vmlinux 0xafad493b param_ops_ushort +EXPORT_SYMBOL vmlinux 0xafd01e14 qman_retire_fq +EXPORT_SYMBOL vmlinux 0xafd68c33 flex_array_free +EXPORT_SYMBOL vmlinux 0xafd70bf2 qman_dca +EXPORT_SYMBOL vmlinux 0xaff3b60d jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xafff3d1d mempool_alloc +EXPORT_SYMBOL vmlinux 0xb01d841e vfs_open +EXPORT_SYMBOL vmlinux 0xb04705e1 mach_mpc8572_ds +EXPORT_SYMBOL vmlinux 0xb052ffd1 mach_p2020_rdb_pc +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb06e4028 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xb083b36c validate_sp +EXPORT_SYMBOL vmlinux 0xb08df632 kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0baa7fa udp_disconnect +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0eea892 pci_set_ltr +EXPORT_SYMBOL vmlinux 0xb0ffda2f blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xb115be68 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xb12770bd fm_port_bind +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb12da7d6 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb18f02e9 tty_vhangup +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1a7c17e fb_class +EXPORT_SYMBOL vmlinux 0xb1b75a62 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c6e787 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1cd5375 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xb1cf44df fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xb1d3c94a input_release_device +EXPORT_SYMBOL vmlinux 0xb1d909a5 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xb1db9e4e param_get_invbool +EXPORT_SYMBOL vmlinux 0xb1fbcabb do_truncate +EXPORT_SYMBOL vmlinux 0xb205ea04 pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0xb2125099 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xb233762c atomic64_set +EXPORT_SYMBOL vmlinux 0xb258825a ps2_init +EXPORT_SYMBOL vmlinux 0xb25d0f11 may_umount +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2a41bf5 pskb_expand_head +EXPORT_SYMBOL vmlinux 0xb2acf19d pme_ctx_finish +EXPORT_SYMBOL vmlinux 0xb2b43f87 __cleancache_invalidate_fs +EXPORT_SYMBOL vmlinux 0xb2b94674 __crc32c_le +EXPORT_SYMBOL vmlinux 0xb2be6e92 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xb2d48a2e queue_work_on +EXPORT_SYMBOL vmlinux 0xb2dde43e agp_collect_device_status +EXPORT_SYMBOL vmlinux 0xb2eebaf9 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xb3001a51 get_user_pages +EXPORT_SYMBOL vmlinux 0xb304acff ida_get_new_above +EXPORT_SYMBOL vmlinux 0xb314e622 dev_mc_init +EXPORT_SYMBOL vmlinux 0xb31b1e5b __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xb323f2dc init_special_inode +EXPORT_SYMBOL vmlinux 0xb326ee86 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xb335f5fa setattr_copy +EXPORT_SYMBOL vmlinux 0xb357eb41 md_check_recovery +EXPORT_SYMBOL vmlinux 0xb359c920 devm_gpio_free +EXPORT_SYMBOL vmlinux 0xb36c8e7e blk_mq_free_single_hw_queue +EXPORT_SYMBOL vmlinux 0xb37bbe24 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xb38847c8 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0xb3976959 sk_capable +EXPORT_SYMBOL vmlinux 0xb3b11a01 sk_stream_error +EXPORT_SYMBOL vmlinux 0xb3b386f6 dquot_transfer +EXPORT_SYMBOL vmlinux 0xb3c138a3 netdev_crit +EXPORT_SYMBOL vmlinux 0xb3d040b0 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xb3d123d6 fm_get_tx_port_channel +EXPORT_SYMBOL vmlinux 0xb3d894d7 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xb3e35192 commit_creds +EXPORT_SYMBOL vmlinux 0xb3eb293e generic_show_options +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb4013321 init_buffer +EXPORT_SYMBOL vmlinux 0xb422e959 poll_freewait +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb431758e icmp_send +EXPORT_SYMBOL vmlinux 0xb436c37b f_setown +EXPORT_SYMBOL vmlinux 0xb44f0d2f inode_init_owner +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb481f551 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xb48e1e5e netlink_set_err +EXPORT_SYMBOL vmlinux 0xb49e6109 fm_bind +EXPORT_SYMBOL vmlinux 0xb4bbc62a elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xb4cb754e module_layout +EXPORT_SYMBOL vmlinux 0xb4e82bc1 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xb4eb7de0 tcf_register_action +EXPORT_SYMBOL vmlinux 0xb5062d29 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xb50cd7d3 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xb5143496 tcp_splice_read +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb559df78 seq_release_private +EXPORT_SYMBOL vmlinux 0xb5727be2 brioctl_set +EXPORT_SYMBOL vmlinux 0xb57343c2 frontswap_shrink +EXPORT_SYMBOL vmlinux 0xb5a1b860 inet_sendpage +EXPORT_SYMBOL vmlinux 0xb5a21a58 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5adc341 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xb5b1a713 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xb5b5642f jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xb5d8a759 mntput +EXPORT_SYMBOL vmlinux 0xb5d9454c printk_emit +EXPORT_SYMBOL vmlinux 0xb5f15a8c simple_setattr +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb625d7c6 set_groups +EXPORT_SYMBOL vmlinux 0xb627c593 fifo_set_limit +EXPORT_SYMBOL vmlinux 0xb6394d4b param_set_bint +EXPORT_SYMBOL vmlinux 0xb64d268f qman_schedule_fq +EXPORT_SYMBOL vmlinux 0xb6599b9a machine_check_exception +EXPORT_SYMBOL vmlinux 0xb659dd22 d_add_ci +EXPORT_SYMBOL vmlinux 0xb677a9ba dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb690774a replace_mount_options +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb69b13f4 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xb69b816a sock_edemux +EXPORT_SYMBOL vmlinux 0xb69fa884 fsnotify_get_group +EXPORT_SYMBOL vmlinux 0xb6a3ab21 alloc_anon_inode +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6a77adb bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xb6b46a7c param_ops_int +EXPORT_SYMBOL vmlinux 0xb6b65590 neigh_connected_output +EXPORT_SYMBOL vmlinux 0xb6be7043 load_nls +EXPORT_SYMBOL vmlinux 0xb6c3020c of_phy_find_device +EXPORT_SYMBOL vmlinux 0xb6c3eb36 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6d0a9ef __breadahead +EXPORT_SYMBOL vmlinux 0xb6d2eafb qman_irqsource_add +EXPORT_SYMBOL vmlinux 0xb6e9c269 tcp_connect +EXPORT_SYMBOL vmlinux 0xb6f6bdf6 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xb70faa3b sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xb7276ca1 tcp_read_sock +EXPORT_SYMBOL vmlinux 0xb753bcc8 __ashrdi3 +EXPORT_SYMBOL vmlinux 0xb75c473b clear_nlink +EXPORT_SYMBOL vmlinux 0xb75f7010 neigh_direct_output +EXPORT_SYMBOL vmlinux 0xb765acb9 mmc_gpio_free_ro +EXPORT_SYMBOL vmlinux 0xb77042b9 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xb770be3e __percpu_counter_add +EXPORT_SYMBOL vmlinux 0xb77131b1 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xb79a4e1a store_fp_state +EXPORT_SYMBOL vmlinux 0xb79eff43 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xb7a99781 __irq_regs +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7c057ba pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xb7dace3c scsi_finish_command +EXPORT_SYMBOL vmlinux 0xb7f9a8c5 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0xb7fde971 pme_map +EXPORT_SYMBOL vmlinux 0xb80280aa irq_to_desc +EXPORT_SYMBOL vmlinux 0xb806a553 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xb81960ca snprintf +EXPORT_SYMBOL vmlinux 0xb819de3c scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xb82a6601 __blk_end_request +EXPORT_SYMBOL vmlinux 0xb833602b flush_icache_user_range +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb83877b7 tty_name +EXPORT_SYMBOL vmlinux 0xb83f6aae mach_c293_pcie +EXPORT_SYMBOL vmlinux 0xb8615719 netif_device_detach +EXPORT_SYMBOL vmlinux 0xb874b87a __clzsi2 +EXPORT_SYMBOL vmlinux 0xb8792233 da903x_query_status +EXPORT_SYMBOL vmlinux 0xb87efde1 serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0xb8aed467 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xb8b50ef3 register_cdrom +EXPORT_SYMBOL vmlinux 0xb8cd71ee devm_clk_get +EXPORT_SYMBOL vmlinux 0xb8d73e97 param_set_uint +EXPORT_SYMBOL vmlinux 0xb8e877e7 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xb8fda847 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0xb9304913 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0xb94973ab blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xb949b49a tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xb94b4047 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xb953f47f add_disk +EXPORT_SYMBOL vmlinux 0xb9836b5a neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb99382ef mach_mpc8544_ds +EXPORT_SYMBOL vmlinux 0xb9abec54 mach_p2020_ds +EXPORT_SYMBOL vmlinux 0xb9d5e027 qman_eqcr_is_empty +EXPORT_SYMBOL vmlinux 0xb9e8e2cc in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0xba027a6f fixed_size_llseek +EXPORT_SYMBOL vmlinux 0xba0405a3 input_grab_device +EXPORT_SYMBOL vmlinux 0xba136d78 neigh_update +EXPORT_SYMBOL vmlinux 0xba18f92a vlan_uses_dev +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba74e7dc phy_device_create +EXPORT_SYMBOL vmlinux 0xba77280b tcf_hash_create +EXPORT_SYMBOL vmlinux 0xba897b5f genphy_suspend +EXPORT_SYMBOL vmlinux 0xba8ac6b8 put_io_context +EXPORT_SYMBOL vmlinux 0xba93e28f agp_create_memory +EXPORT_SYMBOL vmlinux 0xbaa5787c jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0xbab323d7 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xbabce31c dev_remove_pack +EXPORT_SYMBOL vmlinux 0xbb0cfeca kset_unregister +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb286315 follow_down +EXPORT_SYMBOL vmlinux 0xbb2bc1ae pci_disable_device +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb713e6d sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba309d0 bio_alloc_pages +EXPORT_SYMBOL vmlinux 0xbba42e02 rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0xbc2db5a3 devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0xbc2ed2af module_refcount +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc3d0893 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xbc3f6afa down_read +EXPORT_SYMBOL vmlinux 0xbc5d2770 machine_id +EXPORT_SYMBOL vmlinux 0xbc71da10 ilookup +EXPORT_SYMBOL vmlinux 0xbcb7433d inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xbcbc6ddf vlan_vid_add +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcc3707d udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0xbccdc2f6 flex_array_put +EXPORT_SYMBOL vmlinux 0xbcd7f26e xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xbcd979ed pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0xbcdedba7 of_get_mac_address +EXPORT_SYMBOL vmlinux 0xbce2ce96 of_get_ddr_timings +EXPORT_SYMBOL vmlinux 0xbcea6bc5 release_pages +EXPORT_SYMBOL vmlinux 0xbd083404 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xbd096443 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xbd0e4ea2 __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xbd1734e7 __netif_schedule +EXPORT_SYMBOL vmlinux 0xbd1d8143 mmc_read_bkops_status +EXPORT_SYMBOL vmlinux 0xbd2ad373 inet6_ioctl +EXPORT_SYMBOL vmlinux 0xbd51610d blk_mq_alloc_single_hw_queue +EXPORT_SYMBOL vmlinux 0xbd5c98d1 genlmsg_put +EXPORT_SYMBOL vmlinux 0xbd69c6e9 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0xbd754872 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0xbd803510 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xbd9e5d49 __lshrdi3 +EXPORT_SYMBOL vmlinux 0xbdba9828 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0xbdc5447e devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xbde58bde blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xbdf8b7fd skb_pad +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe173014 __memcg_kmem_get_cache +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe2ff528 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xbe42deab __page_symlink +EXPORT_SYMBOL vmlinux 0xbe5f4dc2 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xbe602751 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0xbe75917f lro_flush_all +EXPORT_SYMBOL vmlinux 0xbe77aebe down_write_trylock +EXPORT_SYMBOL vmlinux 0xbe7bb0bb dget_parent +EXPORT_SYMBOL vmlinux 0xbeb051f9 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xbeb99989 do_SAK +EXPORT_SYMBOL vmlinux 0xbeb9c2f8 pipe_lock +EXPORT_SYMBOL vmlinux 0xbec25473 of_parse_phandle +EXPORT_SYMBOL vmlinux 0xbee78b75 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbef12c73 posix_test_lock +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef80a08 input_open_device +EXPORT_SYMBOL vmlinux 0xbf296b9a abx500_register_ops +EXPORT_SYMBOL vmlinux 0xbf2b65d7 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xbf6d52ec dev_uc_add +EXPORT_SYMBOL vmlinux 0xbf78d6a1 tty_kref_put +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9825cc blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfb8b0b7 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfc8b128 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xbfdb0054 lro_receive_skb +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff2281d unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xc00c1a64 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xc02a1098 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc043285e __napi_complete +EXPORT_SYMBOL vmlinux 0xc04369bd swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0xc0441a4e generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xc05b1812 filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0xc063baed netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0aca92d fs_bio_set +EXPORT_SYMBOL vmlinux 0xc0e0537d rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0xc0e55b77 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xc11c9fd3 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xc12e9f63 request_key +EXPORT_SYMBOL vmlinux 0xc12ec3a6 dns_query +EXPORT_SYMBOL vmlinux 0xc137e2a4 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xc140212a netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xc1754cad bdi_register_dev +EXPORT_SYMBOL vmlinux 0xc1ae563e uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xc1b82d22 register_shrinker +EXPORT_SYMBOL vmlinux 0xc1bcce89 release_firmware +EXPORT_SYMBOL vmlinux 0xc1c115ab seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1db4666 pci_find_bus +EXPORT_SYMBOL vmlinux 0xc1ecf273 crypto_sha256_update +EXPORT_SYMBOL vmlinux 0xc1f3b2c8 account_page_dirtied +EXPORT_SYMBOL vmlinux 0xc212ddf2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0xc222d7af blk_integrity_register +EXPORT_SYMBOL vmlinux 0xc23d87f6 vfs_setpos +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc24c3e74 mutex_lock +EXPORT_SYMBOL vmlinux 0xc2538aa2 skb_split +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc25dba24 blk_mq_init_commands +EXPORT_SYMBOL vmlinux 0xc2d3252f get_disk +EXPORT_SYMBOL vmlinux 0xc2d40921 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xc2d696f3 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2d9e023 kernel_read +EXPORT_SYMBOL vmlinux 0xc2ddaebc remap_vmalloc_range_partial +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f9c045 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xc2fd64cf bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xc2fd81f3 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xc31b7ac2 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xc3286a8f tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xc32e9307 mount_bdev +EXPORT_SYMBOL vmlinux 0xc3430c21 max8925_set_bits +EXPORT_SYMBOL vmlinux 0xc3469d9b iterate_dir +EXPORT_SYMBOL vmlinux 0xc34ee4f0 netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0xc368849f nvram_sync +EXPORT_SYMBOL vmlinux 0xc3a1cc00 mach_mpc8569_mds +EXPORT_SYMBOL vmlinux 0xc3b167ea generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xc40568b2 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xc40cf1a1 cdev_init +EXPORT_SYMBOL vmlinux 0xc41f0516 node_states +EXPORT_SYMBOL vmlinux 0xc422c56f dm_put_device +EXPORT_SYMBOL vmlinux 0xc4375d98 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xc45755de find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0xc458d632 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xc4708199 cpm_muram_addr +EXPORT_SYMBOL vmlinux 0xc47cdf9c _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0xc491c586 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49eee90 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xc4baa620 mpage_writepage +EXPORT_SYMBOL vmlinux 0xc4f2f31b scsi_report_opcode +EXPORT_SYMBOL vmlinux 0xc4f59917 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xc514ccd7 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc55c2a9d inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0xc5602713 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xc589e044 param_set_long +EXPORT_SYMBOL vmlinux 0xc58b1bc0 nf_log_unset +EXPORT_SYMBOL vmlinux 0xc5b83073 netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0xc5bb7bc4 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0xc5c08eab dpa_uio_bman +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5d9de25 security_path_chown +EXPORT_SYMBOL vmlinux 0xc5dbb1f3 skb_make_writable +EXPORT_SYMBOL vmlinux 0xc5ddaff8 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xc5f17444 arp_xmit +EXPORT_SYMBOL vmlinux 0xc5fdef94 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xc61d639f user_path_at +EXPORT_SYMBOL vmlinux 0xc625dfcb __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xc62e5028 dqput +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc637d662 single_open_size +EXPORT_SYMBOL vmlinux 0xc6526a13 agp_free_memory +EXPORT_SYMBOL vmlinux 0xc653c084 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc663b075 __ioremap +EXPORT_SYMBOL vmlinux 0xc665d6d7 of_parse_phandle_with_args +EXPORT_SYMBOL vmlinux 0xc67476f8 tcp_prequeue +EXPORT_SYMBOL vmlinux 0xc6be3b9e blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0xc6be4a28 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6e78d8b jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xc6ec06fa dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xc7155303 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xc7201f1a scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc74f3725 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xc762c18f try_module_get +EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc76c6afe ether_setup +EXPORT_SYMBOL vmlinux 0xc775305b generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc789905e eth_header_cache +EXPORT_SYMBOL vmlinux 0xc79b8e07 capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7a6b7e7 read_cache_page_async +EXPORT_SYMBOL vmlinux 0xc7b18718 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xc7cc2d21 mach_p1020_rdb_pc +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc81e5dc6 qman_query_fq +EXPORT_SYMBOL vmlinux 0xc8276a79 nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xc827c396 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xc82b63b8 bio_integrity_split +EXPORT_SYMBOL vmlinux 0xc82fcd2a netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0xc8339e24 string_unescape +EXPORT_SYMBOL vmlinux 0xc83b4d5b posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc86fea0f scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xc8707d6a file_remove_suid +EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0xc8746c7c xfrm_init_replay +EXPORT_SYMBOL vmlinux 0xc87c088c audit_log_task_info +EXPORT_SYMBOL vmlinux 0xc88021eb cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xc8866a5d clear_user_page +EXPORT_SYMBOL vmlinux 0xc88f30bb neigh_compat_output +EXPORT_SYMBOL vmlinux 0xc89510cc tcp_disconnect +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8a4d736 uart_match_port +EXPORT_SYMBOL vmlinux 0xc8a51cf9 writeback_in_progress +EXPORT_SYMBOL vmlinux 0xc8abe793 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xc8b0d2b2 sock_kfree_s +EXPORT_SYMBOL vmlinux 0xc8b1af49 pci_set_master +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8b9a76b bman_recovery_exit +EXPORT_SYMBOL vmlinux 0xc8c5b056 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xc9182131 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xc91ff664 down_read_trylock +EXPORT_SYMBOL vmlinux 0xc927b688 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xc93fbc54 wait_for_completion_io +EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0xc96fb6d0 qman_start_dequeues +EXPORT_SYMBOL vmlinux 0xc974c03f frontswap_register_ops +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9a24355 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xc9cd441e md_error +EXPORT_SYMBOL vmlinux 0xc9e74e21 cfb_copyarea +EXPORT_SYMBOL vmlinux 0xca07ac4e inet6_unregister_icmp_sender +EXPORT_SYMBOL vmlinux 0xca279f0b revert_creds +EXPORT_SYMBOL vmlinux 0xca32376a kmalloc_caches +EXPORT_SYMBOL vmlinux 0xca37821e blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xca5672e3 bioset_free +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca80e434 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xca947a4a blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xcaa0e040 generic_setlease +EXPORT_SYMBOL vmlinux 0xcaa1423f seq_bitmap +EXPORT_SYMBOL vmlinux 0xcaaa5361 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0xcabb2887 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xcacd272d atomic64_sub_return +EXPORT_SYMBOL vmlinux 0xcadcf5e2 scsi_execute +EXPORT_SYMBOL vmlinux 0xcae620da security_inode_permission +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb032a1a i2c_bit_algo +EXPORT_SYMBOL vmlinux 0xcb0c5d50 param_get_uint +EXPORT_SYMBOL vmlinux 0xcb296e9c skb_queue_tail +EXPORT_SYMBOL vmlinux 0xcb3a84d5 file_update_time +EXPORT_SYMBOL vmlinux 0xcb431641 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0xcb53087e blkdev_issue_write_same +EXPORT_SYMBOL vmlinux 0xcb561545 kmalloc_dma_caches +EXPORT_SYMBOL vmlinux 0xcbaaa5b1 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xcbac6dad nf_getsockopt +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbd3d6ee dquot_free_inode +EXPORT_SYMBOL vmlinux 0xcc17504d _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc26fa81 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xcc2b8256 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xcc2f7d76 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xcc35af9b textsearch_prepare +EXPORT_SYMBOL vmlinux 0xcc37f55c blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xcc4b84da of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc731e40 iterate_mounts +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc8fae35 __lock_page +EXPORT_SYMBOL vmlinux 0xcc92750d do_splice_to +EXPORT_SYMBOL vmlinux 0xcc9f4fe9 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xccb09949 proc_set_user +EXPORT_SYMBOL vmlinux 0xccc21f5e input_get_new_minor +EXPORT_SYMBOL vmlinux 0xccf9e002 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0xcd051c81 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0xcd0529c7 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xcd06a3aa tty_register_device +EXPORT_SYMBOL vmlinux 0xcd0c94d9 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd391564 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xcd39b610 pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0xcd549413 send_sig +EXPORT_SYMBOL vmlinux 0xcd6ef716 mach_xes_mpc8540 +EXPORT_SYMBOL vmlinux 0xcd85f22f jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xcd86c87f __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcdc5b406 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcdf4722d netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce58b8b0 md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce61705b sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0xce721c0a inode_needs_sync +EXPORT_SYMBOL vmlinux 0xce755c3b mutex_unlock +EXPORT_SYMBOL vmlinux 0xce98ca8d scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xceb278c4 kill_bdev +EXPORT_SYMBOL vmlinux 0xcee2c87a fb_set_var +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf04eede mapping_tagged +EXPORT_SYMBOL vmlinux 0xcf1a7990 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xcf1d7646 isa_mem_base +EXPORT_SYMBOL vmlinux 0xcf3025cb inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0xcf4f88c9 inet_listen +EXPORT_SYMBOL vmlinux 0xcf50d03e cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xcf640db9 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xcf64b916 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xcfa75543 generic_writepages +EXPORT_SYMBOL vmlinux 0xcfb01674 pci_iomap +EXPORT_SYMBOL vmlinux 0xcfe5ce9d input_unregister_handle +EXPORT_SYMBOL vmlinux 0xcfe9c119 pipe_unlock +EXPORT_SYMBOL vmlinux 0xcfec6b0e fget_raw +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd01c54ba km_state_expired +EXPORT_SYMBOL vmlinux 0xd02f6ab3 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xd042d323 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xd04630a9 pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0xd0720a17 on_each_cpu_cond +EXPORT_SYMBOL vmlinux 0xd089aec4 serio_reconnect +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0b73962 mach_p1021_rdb_pc +EXPORT_SYMBOL vmlinux 0xd0c73f74 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xd0cdaa1b security_path_symlink +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0e726ed inode_permission +EXPORT_SYMBOL vmlinux 0xd0e739f6 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xd0edc63e eth_mac_addr +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd10c3452 idr_init +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd1231736 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xd12f33b6 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xd138719c qman_recovery_exit +EXPORT_SYMBOL vmlinux 0xd1532628 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xd1816f32 frontswap_writethrough +EXPORT_SYMBOL vmlinux 0xd1859ca6 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0xd194106a fail_migrate_page +EXPORT_SYMBOL vmlinux 0xd1946b87 napi_complete +EXPORT_SYMBOL vmlinux 0xd196c9be kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xd1b5ed47 inet_getname +EXPORT_SYMBOL vmlinux 0xd1cc0681 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0xd1de5574 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xd1e3f3c4 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xd218707a pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0xd220cf8a jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0xd224c09e serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xd234a491 of_dev_get +EXPORT_SYMBOL vmlinux 0xd24c4b78 netif_napi_del +EXPORT_SYMBOL vmlinux 0xd24c8d3c __ww_mutex_lock +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd25d9ee4 uart_register_driver +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd28eca72 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xd28ff3a0 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xd2982928 blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0xd2a9a1b8 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xd2abbb03 tty_unlock +EXPORT_SYMBOL vmlinux 0xd2af138b reservation_ww_class +EXPORT_SYMBOL vmlinux 0xd2b7f9e3 fm_port_unbind +EXPORT_SYMBOL vmlinux 0xd2cd5568 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2edef2a input_unregister_device +EXPORT_SYMBOL vmlinux 0xd2fc19bd proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd31ffd95 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xd33241e4 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xd33655d0 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xd36e3a56 mmc_gpio_free_cd +EXPORT_SYMBOL vmlinux 0xd374c4c4 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xd37e68b0 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xd382a9e0 submit_bio +EXPORT_SYMBOL vmlinux 0xd3a9c729 scsi_target_resume +EXPORT_SYMBOL vmlinux 0xd3ab523a console_start +EXPORT_SYMBOL vmlinux 0xd3c747a1 qman_irqsource_remove +EXPORT_SYMBOL vmlinux 0xd3f3c53f md_write_end +EXPORT_SYMBOL vmlinux 0xd3fddb06 pci_pme_capable +EXPORT_SYMBOL vmlinux 0xd41fa3e5 ipv4_specific +EXPORT_SYMBOL vmlinux 0xd421b529 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xd42ba630 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xd43497c2 register_md_personality +EXPORT_SYMBOL vmlinux 0xd43e1f7e netdev_emerg +EXPORT_SYMBOL vmlinux 0xd4436c20 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xd4a56261 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xd4b4ad76 send_sig_info +EXPORT_SYMBOL vmlinux 0xd4d5722f ata_print_version +EXPORT_SYMBOL vmlinux 0xd4dd8e9c tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0xd5021dc8 pci_disable_obff +EXPORT_SYMBOL vmlinux 0xd51d4466 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xd52239ad qman_set_null_cb +EXPORT_SYMBOL vmlinux 0xd549a057 pci_choose_state +EXPORT_SYMBOL vmlinux 0xd54f2dae sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xd56d19df of_mdio_find_bus +EXPORT_SYMBOL vmlinux 0xd570a05a scsi_free_command +EXPORT_SYMBOL vmlinux 0xd57944d0 udplite_prot +EXPORT_SYMBOL vmlinux 0xd57c3fb1 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xd57e273f pci_set_mwi +EXPORT_SYMBOL vmlinux 0xd5b2e52a single_step_exception +EXPORT_SYMBOL vmlinux 0xd5db48e6 of_device_register +EXPORT_SYMBOL vmlinux 0xd5e8444a __div64_32 +EXPORT_SYMBOL vmlinux 0xd5f17ecf set_blocksize +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd5ff6a1d ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xd606503d register_sysctl +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd648e564 fb_match_mode +EXPORT_SYMBOL vmlinux 0xd64cc1ea xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xd66019d1 fsync_bdev +EXPORT_SYMBOL vmlinux 0xd66be24d bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xd67734db netif_carrier_off +EXPORT_SYMBOL vmlinux 0xd67b81f6 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xd683c599 pci_disable_ido +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd69b30e0 atomic64_add_unless +EXPORT_SYMBOL vmlinux 0xd6b48ded tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xd6c343f1 pme_ctx_disable +EXPORT_SYMBOL vmlinux 0xd6c6f51a lock_fb_info +EXPORT_SYMBOL vmlinux 0xd6d63e9d lg_local_lock_cpu +EXPORT_SYMBOL vmlinux 0xd6e4bb38 __scsi_put_command +EXPORT_SYMBOL vmlinux 0xd6ea6e2b security_path_rename +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7022890 bprm_change_interp +EXPORT_SYMBOL vmlinux 0xd71c413d pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xd7398ef1 alloc_fddidev +EXPORT_SYMBOL vmlinux 0xd73a95e7 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd761a383 ioremap_prot +EXPORT_SYMBOL vmlinux 0xd77a2f5c pme_stat_get +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd792b2a2 mach_tqm85xx +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7ad27e0 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0xd7ad6473 create_syslog_header +EXPORT_SYMBOL vmlinux 0xd7ae4568 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0xd7c49c0f xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xd7c79e99 phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd7eca562 secpath_dup +EXPORT_SYMBOL vmlinux 0xd804d386 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xd8114783 write_one_page +EXPORT_SYMBOL vmlinux 0xd8388472 netdev_printk +EXPORT_SYMBOL vmlinux 0xd83e95d9 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xd8475d8c blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xd8528ebb __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xd85833cb __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0xd881407a d_obtain_alias +EXPORT_SYMBOL vmlinux 0xd88fa86e kobject_set_name +EXPORT_SYMBOL vmlinux 0xd897f03e d_lookup +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8af0d5b agp_bind_memory +EXPORT_SYMBOL vmlinux 0xd8c72cf0 ifla_policy +EXPORT_SYMBOL vmlinux 0xd8ce642a generic_readlink +EXPORT_SYMBOL vmlinux 0xd8db2dea kthread_stop +EXPORT_SYMBOL vmlinux 0xd8ded085 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8facd00 d_delete +EXPORT_SYMBOL vmlinux 0xd8fdcfcd from_kprojid +EXPORT_SYMBOL vmlinux 0xd908c21b __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xd90fdbea __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd9498b22 proc_dointvec +EXPORT_SYMBOL vmlinux 0xd94cda80 dev_uc_flush +EXPORT_SYMBOL vmlinux 0xd95ce7db fget_light +EXPORT_SYMBOL vmlinux 0xd974f8d4 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xd97dfabf xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9989a57 inet_release +EXPORT_SYMBOL vmlinux 0xd99b4014 netlink_unicast +EXPORT_SYMBOL vmlinux 0xd9a9bb30 getname +EXPORT_SYMBOL vmlinux 0xd9b1d2cb inet_put_port +EXPORT_SYMBOL vmlinux 0xd9b37d82 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xd9b618e5 udp_proc_register +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9c5420e ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9e7ab47 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0xda2478d0 param_ops_short +EXPORT_SYMBOL vmlinux 0xda2d0397 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xda37c2d7 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda806a46 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xdaa16b82 of_clk_get +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdab7e7d1 d_instantiate_no_diralias +EXPORT_SYMBOL vmlinux 0xdab87aff neigh_event_ns +EXPORT_SYMBOL vmlinux 0xdabc1ea8 fsl_lbc_find +EXPORT_SYMBOL vmlinux 0xdacb14d3 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xdad7adff dqstats +EXPORT_SYMBOL vmlinux 0xdae5900d finish_no_open +EXPORT_SYMBOL vmlinux 0xdaf73294 filemap_fault +EXPORT_SYMBOL vmlinux 0xdb01198e fsl_upm_find +EXPORT_SYMBOL vmlinux 0xdb076820 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xdb3bb586 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb6dfdbd input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb91b380 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xdbae4eae pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0xdbb24fc2 down_write +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbd7c2f1 block_write_begin +EXPORT_SYMBOL vmlinux 0xdbdecce5 security_path_truncate +EXPORT_SYMBOL vmlinux 0xdbf9a66c d_path +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc200477 put_tty_driver +EXPORT_SYMBOL vmlinux 0xdc28e320 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xdc293d7e __genl_register_family +EXPORT_SYMBOL vmlinux 0xdc3083ea __register_chrdev +EXPORT_SYMBOL vmlinux 0xdc37952f __scm_destroy +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc415905 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xdc8b4460 simple_write_end +EXPORT_SYMBOL vmlinux 0xdc9498dd down +EXPORT_SYMBOL vmlinux 0xdca03da4 of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0xdcbe1d83 proto_register +EXPORT_SYMBOL vmlinux 0xdcc06781 redraw_screen +EXPORT_SYMBOL vmlinux 0xdcecb757 __napi_schedule +EXPORT_SYMBOL vmlinux 0xdd096859 netdev_lower_dev_get_private_rcu +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd26e94e ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd47c232 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xdd80be0e blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0xdd9f7393 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xddb40050 pci_request_region +EXPORT_SYMBOL vmlinux 0xddcfbf7d tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xdde32ce8 get_gendisk +EXPORT_SYMBOL vmlinux 0xde07cda5 dev_uc_init +EXPORT_SYMBOL vmlinux 0xde10eb10 param_set_invbool +EXPORT_SYMBOL vmlinux 0xde3f6e3e dqget +EXPORT_SYMBOL vmlinux 0xde463e0a posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0xde48e9ca _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xde56e137 mach_mpc8536_ds +EXPORT_SYMBOL vmlinux 0xde6949b7 tty_free_termios +EXPORT_SYMBOL vmlinux 0xde6c3416 wait_iff_congested +EXPORT_SYMBOL vmlinux 0xde84604c kvm_read_guest_atomic +EXPORT_SYMBOL vmlinux 0xde8e2966 inet_stream_connect +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdea6daa6 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xdea85c2d pci_scan_bus +EXPORT_SYMBOL vmlinux 0xdeefc94d gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xdefa0ad8 qman_testwrite_cgr +EXPORT_SYMBOL vmlinux 0xdefacc9e __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xdf07a093 netdev_state_change +EXPORT_SYMBOL vmlinux 0xdf13971c dpa_uio_qman +EXPORT_SYMBOL vmlinux 0xdf13f28e scsi_get_command +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf375184 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf95c4c5 mac_find_mode +EXPORT_SYMBOL vmlinux 0xdfc582a2 lookup_one_len +EXPORT_SYMBOL vmlinux 0xdfc6ce36 ip6_xmit +EXPORT_SYMBOL vmlinux 0xdfe10db4 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xdff43ed4 __debugger +EXPORT_SYMBOL vmlinux 0xdff833d4 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xe01c6e53 phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0xe043fb22 input_reset_device +EXPORT_SYMBOL vmlinux 0xe04f1d86 km_policy_notify +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe0659a0c clear_inode +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe07666bf neigh_table_init +EXPORT_SYMBOL vmlinux 0xe07c06fb vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0c8c7fb blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xe0d60591 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xe0ef10c7 ida_simple_remove +EXPORT_SYMBOL vmlinux 0xe0f171f2 inode_dio_wait +EXPORT_SYMBOL vmlinux 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL vmlinux 0xe1055326 vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0xe1107027 proc_symlink +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe12cf9d3 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xe147ab42 blk_mq_can_queue +EXPORT_SYMBOL vmlinux 0xe157f40e scsi_host_get +EXPORT_SYMBOL vmlinux 0xe1643956 phy_find_first +EXPORT_SYMBOL vmlinux 0xe170db15 genl_unregister_family +EXPORT_SYMBOL vmlinux 0xe17462c8 netdev_info +EXPORT_SYMBOL vmlinux 0xe17483ca key_alloc +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe18b9c99 __i2c_transfer +EXPORT_SYMBOL vmlinux 0xe19aadef pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xe19da4e0 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xe19f33b7 dev_alert +EXPORT_SYMBOL vmlinux 0xe1aa5d98 netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0xe1bbbd2e inet6_release +EXPORT_SYMBOL vmlinux 0xe1c827a8 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe2118e7d padata_alloc_possible +EXPORT_SYMBOL vmlinux 0xe217fabb blk_free_tags +EXPORT_SYMBOL vmlinux 0xe2180053 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0xe227bcc2 input_set_abs_params +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe250937f inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0xe25d5c9d sg_miter_start +EXPORT_SYMBOL vmlinux 0xe25e39a4 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xe2654c1f remove_arg_zero +EXPORT_SYMBOL vmlinux 0xe29e1d0e out_of_line_wait_on_atomic_t +EXPORT_SYMBOL vmlinux 0xe2af6910 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xe2b830f9 mach_p1021_mds +EXPORT_SYMBOL vmlinux 0xe2be5498 lg_global_unlock +EXPORT_SYMBOL vmlinux 0xe2caece4 follow_down_one +EXPORT_SYMBOL vmlinux 0xe2cb26f9 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xe2cdc8c0 inet_frag_kill +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe301b2ae blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xe357126f tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xe35c5285 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xe38b2f29 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0xe3c9792f elv_abort_queue +EXPORT_SYMBOL vmlinux 0xe3d26ea3 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3da4846 neigh_app_ns +EXPORT_SYMBOL vmlinux 0xe3de50bd qman_destroy_fq +EXPORT_SYMBOL vmlinux 0xe3e1c55c mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xe3f1e6d2 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xe3fa7c6a inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xe3fb6cf3 contig_page_data +EXPORT_SYMBOL vmlinux 0xe3fd8c3d write_inode_now +EXPORT_SYMBOL vmlinux 0xe41469a9 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xe41531c6 twl6040_set_bits +EXPORT_SYMBOL vmlinux 0xe4482371 set_user_nice +EXPORT_SYMBOL vmlinux 0xe45c103c dev_add_pack +EXPORT_SYMBOL vmlinux 0xe46bb447 dev_err +EXPORT_SYMBOL vmlinux 0xe47867df xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xe47b71b6 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4960290 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xe49808b4 qman_poll +EXPORT_SYMBOL vmlinux 0xe4a895fa up_write +EXPORT_SYMBOL vmlinux 0xe4ad377d netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xe4cd5860 netif_napi_add +EXPORT_SYMBOL vmlinux 0xe4d98ce6 vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0xe4e807c6 ps2_end_command +EXPORT_SYMBOL vmlinux 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL vmlinux 0xe4fe8ca1 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xe5030340 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe5181c5f dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52994b7 kern_path_mountpoint +EXPORT_SYMBOL vmlinux 0xe53bf49d udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xe53d1faa of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xe55c2645 aio_complete +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe58ef300 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xe5988725 twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0xe5a0c12c __d_drop +EXPORT_SYMBOL vmlinux 0xe5a6eeb2 ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5e3d8f9 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe60308b9 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xe62dcd10 tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0xe6304650 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xe64e5f1c unregister_binfmt +EXPORT_SYMBOL vmlinux 0xe655fbc7 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xe66452ab dql_init +EXPORT_SYMBOL vmlinux 0xe664d87c vfs_unlink +EXPORT_SYMBOL vmlinux 0xe668ac7a sock_create +EXPORT_SYMBOL vmlinux 0xe68b0982 km_policy_expired +EXPORT_SYMBOL vmlinux 0xe69157af pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL vmlinux 0xe6ae7989 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xe6dd236d clear_pages +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6f7199a agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0xe6f9e605 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe6fe6932 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xe70bff0a install_exec_creds +EXPORT_SYMBOL vmlinux 0xe7110c14 netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0xe7239964 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xe72bd64e pci_domain_nr +EXPORT_SYMBOL vmlinux 0xe72c2503 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xe7388232 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0xe7575cc0 pme_ctx_exclusive_dec +EXPORT_SYMBOL vmlinux 0xe76129e7 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xe76902da md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xe77953e7 serio_rescan +EXPORT_SYMBOL vmlinux 0xe77aeba0 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xe77b941f pme2_exclusive_set +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7b0d337 should_remove_suid +EXPORT_SYMBOL vmlinux 0xe7c84014 lockref_mark_dead +EXPORT_SYMBOL vmlinux 0xe7cc37c1 genl_notify +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7da3edb simple_statfs +EXPORT_SYMBOL vmlinux 0xe7e442a3 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xe7f30941 pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0xe7f708d2 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xe82caf05 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xe831ac9b skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xe833fa77 gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0xe8354ff3 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xe83900d6 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xe851bb05 queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xe8618ad6 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xe86379ec pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xe86cea95 kill_anon_super +EXPORT_SYMBOL vmlinux 0xe882b37a dev_warn +EXPORT_SYMBOL vmlinux 0xe88b7918 iterate_supers_type +EXPORT_SYMBOL vmlinux 0xe898bfba crc32_le_combine +EXPORT_SYMBOL vmlinux 0xe8a53177 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8b82fe0 bman_ip_rev +EXPORT_SYMBOL vmlinux 0xe8bb73b4 d_make_root +EXPORT_SYMBOL vmlinux 0xe8bea3bc qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xe8d48a9f dma_set_mask +EXPORT_SYMBOL vmlinux 0xe903bd64 get_task_io_context +EXPORT_SYMBOL vmlinux 0xe9098473 simple_link +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe9210493 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0xe92a27b3 drop_super +EXPORT_SYMBOL vmlinux 0xe930370d blk_start_request +EXPORT_SYMBOL vmlinux 0xe945b95b mb_cache_create +EXPORT_SYMBOL vmlinux 0xe950499d qman_release_fqid_range +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe9585d5e vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0xe963e39a invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xe96ef063 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xe97363d0 submit_bio_wait +EXPORT_SYMBOL vmlinux 0xe978b78d pme_hw_flow_new +EXPORT_SYMBOL vmlinux 0xe9a93039 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xe9b31456 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xe9b79e09 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0xe9e45d73 blk_register_region +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea0b9e36 simple_release_fs +EXPORT_SYMBOL vmlinux 0xea0cdcbb read_dev_sector +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10578b dev_mc_del +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea1540e4 __nla_reserve +EXPORT_SYMBOL vmlinux 0xea16dd4c tcp_destroy_cgroup +EXPORT_SYMBOL vmlinux 0xea432b2b skb_put +EXPORT_SYMBOL vmlinux 0xea4761e7 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xea4f3d96 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0xea5f6d4a sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0xea6607f3 pcie_get_minimum_link +EXPORT_SYMBOL vmlinux 0xea6e3003 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea8de58f security_path_chmod +EXPORT_SYMBOL vmlinux 0xea968c96 ___ratelimit +EXPORT_SYMBOL vmlinux 0xeab0819b pme_ctx_is_disabled +EXPORT_SYMBOL vmlinux 0xeada8a54 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xeb0d1770 sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0xeb2226a9 kern_path +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb3be5d7 bioset_create +EXPORT_SYMBOL vmlinux 0xeb55a931 __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xeb5b3a1f xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xeb5c881f netdev_warn +EXPORT_SYMBOL vmlinux 0xeb64f9fc bdput +EXPORT_SYMBOL vmlinux 0xeb6ab22e nla_put +EXPORT_SYMBOL vmlinux 0xeb777488 backlight_force_update +EXPORT_SYMBOL vmlinux 0xebb4e095 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0xebd450c6 input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0xebd477d8 I_BDEV +EXPORT_SYMBOL vmlinux 0xebd90b28 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebe480f2 genphy_update_link +EXPORT_SYMBOL vmlinux 0xec17ebb0 of_match_node +EXPORT_SYMBOL vmlinux 0xec1aa6ef memzero_explicit +EXPORT_SYMBOL vmlinux 0xec222963 kset_register +EXPORT_SYMBOL vmlinux 0xec3ad886 dev_notice +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec4df324 vfs_writev +EXPORT_SYMBOL vmlinux 0xec5a0246 security_path_mknod +EXPORT_SYMBOL vmlinux 0xec83fd21 security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0xec8ad421 gen_pool_dma_alloc +EXPORT_SYMBOL vmlinux 0xecc131af pci_read_vpd +EXPORT_SYMBOL vmlinux 0xecc1449e bm_pool_set +EXPORT_SYMBOL vmlinux 0xecddfe91 nf_log_set +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xecfe862a netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0xecfea528 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xed4fb3d3 dev_get_stats +EXPORT_SYMBOL vmlinux 0xed597524 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xed5b774c generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xed9f9a20 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xedb47a5a unregister_qdisc +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc410d0 udplite_table +EXPORT_SYMBOL vmlinux 0xedd22ae2 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xedf5bfa5 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xee246dff ida_destroy +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee4bbf11 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0xee542ebb bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xee70e040 dquot_commit +EXPORT_SYMBOL vmlinux 0xee7d18b8 pci_request_regions +EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb46e76 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xeebf72a1 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0xeed87379 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xeee63a33 agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0xeef161aa groups_free +EXPORT_SYMBOL vmlinux 0xeefb9e09 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xef01287a fbcon_rotate_ud +EXPORT_SYMBOL vmlinux 0xef109449 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xef37dbaf seq_lseek +EXPORT_SYMBOL vmlinux 0xef5b515f agp_enable +EXPORT_SYMBOL vmlinux 0xef682c7d km_report +EXPORT_SYMBOL vmlinux 0xefb03443 lro_receive_frags +EXPORT_SYMBOL vmlinux 0xefcbe29b framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xefd79e02 mmc_remove_host +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0187927 __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0xf04cadbf pci_dev_get +EXPORT_SYMBOL vmlinux 0xf05ffa15 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xf0619801 timekeeping_clocktai +EXPORT_SYMBOL vmlinux 0xf0638bd5 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf06caff4 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xf0738b3d pci_get_class +EXPORT_SYMBOL vmlinux 0xf087137d __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0xf0909894 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xf09de776 get_random_int +EXPORT_SYMBOL vmlinux 0xf0bab3a3 xfrm_lookup +EXPORT_SYMBOL vmlinux 0xf0cb9945 simple_lookup +EXPORT_SYMBOL vmlinux 0xf0d68ed6 clk_register_clkdevs +EXPORT_SYMBOL vmlinux 0xf0e57a9f bman_flush_stockpile +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fd4e8f rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10b33b9 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xf10ca3e7 lockref_get_or_lock +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11cd6ce down_interruptible +EXPORT_SYMBOL vmlinux 0xf12c9f10 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xf13feb57 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0xf147dcb2 hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0xf179c74d notify_change +EXPORT_SYMBOL vmlinux 0xf19388de poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1b98d40 qdisc_reset +EXPORT_SYMBOL vmlinux 0xf1ce77ac bdev_stack_limits +EXPORT_SYMBOL vmlinux 0xf1dabe28 xfrm_state_update +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e06df1 gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1ff631c serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf212c4e4 __register_binfmt +EXPORT_SYMBOL vmlinux 0xf2229d10 tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0xf222defb __ip_select_ident +EXPORT_SYMBOL vmlinux 0xf22881e8 lg_local_lock +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf2438c2e __devm_request_region +EXPORT_SYMBOL vmlinux 0xf24b979e serio_close +EXPORT_SYMBOL vmlinux 0xf253c890 scsi_register_interface +EXPORT_SYMBOL vmlinux 0xf25483ca devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL vmlinux 0xf25fbe7f agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0xf27b8a61 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xf289a225 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xf28cb5d8 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0xf2a0af8f backlight_device_registered +EXPORT_SYMBOL vmlinux 0xf2a3a1a3 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xf2b1ac8e __getnstimeofday +EXPORT_SYMBOL vmlinux 0xf2b92608 twl6040_set_pll +EXPORT_SYMBOL vmlinux 0xf2f8f120 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xf3023879 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf322a206 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf33c30b5 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34f8c99 pci_select_bars +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf364f822 pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0xf3712909 qman_query_congestion +EXPORT_SYMBOL vmlinux 0xf37afc3e ip_defrag +EXPORT_SYMBOL vmlinux 0xf381de51 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf3abf90a swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3c2da27 get_io_context +EXPORT_SYMBOL vmlinux 0xf3ca87d9 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xf3cac2b7 blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0xf3e01d21 gen10g_suspend +EXPORT_SYMBOL vmlinux 0xf403cf1e jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xf40b2297 __crypto_memneq +EXPORT_SYMBOL vmlinux 0xf415dc4f read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xf41b3e62 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xf42f968c phy_driver_unregister +EXPORT_SYMBOL vmlinux 0xf4411e51 fb_find_mode +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4449388 timer_interrupt +EXPORT_SYMBOL vmlinux 0xf4466b23 kernel_sendpage +EXPORT_SYMBOL vmlinux 0xf4adb812 user_path_create +EXPORT_SYMBOL vmlinux 0xf4b1ed60 __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xf4b7f551 uart_resume_port +EXPORT_SYMBOL vmlinux 0xf4b8444a qman_init_fq +EXPORT_SYMBOL vmlinux 0xf4bdbeb9 __frontswap_invalidate_area +EXPORT_SYMBOL vmlinux 0xf4cc90f8 __break_lease +EXPORT_SYMBOL vmlinux 0xf4de84da twl6040_get_pll +EXPORT_SYMBOL vmlinux 0xf4e5ad48 ip_fragment +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf501ed1f dev_mc_sync +EXPORT_SYMBOL vmlinux 0xf5177a3d __devm_release_region +EXPORT_SYMBOL vmlinux 0xf5222143 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xf52321e0 atomic64_sub +EXPORT_SYMBOL vmlinux 0xf5297e15 dquot_operations +EXPORT_SYMBOL vmlinux 0xf5324f87 blk_mq_run_queues +EXPORT_SYMBOL vmlinux 0xf533c91e security_path_link +EXPORT_SYMBOL vmlinux 0xf5355d1e do_splice_from +EXPORT_SYMBOL vmlinux 0xf53bd1be __pskb_copy +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf53e65a3 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xf5795c91 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0xf57f8401 fb_blank +EXPORT_SYMBOL vmlinux 0xf5984ee7 misc_register +EXPORT_SYMBOL vmlinux 0xf5a085c4 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5dfcfd2 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister +EXPORT_SYMBOL vmlinux 0xf5e762d0 d_drop +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5f06890 i2c_use_client +EXPORT_SYMBOL vmlinux 0xf6024859 blk_complete_request +EXPORT_SYMBOL vmlinux 0xf607c245 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf6587745 udp_sendmsg +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf68687be __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0xf688f930 noop_qdisc +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d8529e register_qdisc +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf70384d7 __debugger_sstep +EXPORT_SYMBOL vmlinux 0xf70f73a0 phy_stop +EXPORT_SYMBOL vmlinux 0xf7130a21 __invalidate_device +EXPORT_SYMBOL vmlinux 0xf71521ba atomic64_add_return +EXPORT_SYMBOL vmlinux 0xf72657c1 skb_dequeue +EXPORT_SYMBOL vmlinux 0xf739096e ihold +EXPORT_SYMBOL vmlinux 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf76c5673 skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0xf77a5f53 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xf781cd9e scsi_add_device +EXPORT_SYMBOL vmlinux 0xf797c6cb tcf_em_register +EXPORT_SYMBOL vmlinux 0xf7da1447 iget_locked +EXPORT_SYMBOL vmlinux 0xf7ed3e89 revalidate_disk +EXPORT_SYMBOL vmlinux 0xf7f15d84 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xf7fa7eaa bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xf7fc4d5c load_nls_default +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf806c26e inet_shutdown +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf827cb83 free_reserved_area +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82bcd77 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf83241b3 kfree_skb_list +EXPORT_SYMBOL vmlinux 0xf85f5787 ppp_channel_index +EXPORT_SYMBOL vmlinux 0xf86bf8a1 blk_mq_free_queue +EXPORT_SYMBOL vmlinux 0xf881ef9c __cleancache_invalidate_inode +EXPORT_SYMBOL vmlinux 0xf89a3d62 bman_affine_cpus +EXPORT_SYMBOL vmlinux 0xf89c8e07 ida_pre_get +EXPORT_SYMBOL vmlinux 0xf8d1489e inode_init_always +EXPORT_SYMBOL vmlinux 0xf8d5dc63 tty_lock_pair +EXPORT_SYMBOL vmlinux 0xf8dcc6e9 framebuffer_release +EXPORT_SYMBOL vmlinux 0xf8e398fc memstart_addr +EXPORT_SYMBOL vmlinux 0xf8ef46cf dev_driver_string +EXPORT_SYMBOL vmlinux 0xf9228003 get_immrbase +EXPORT_SYMBOL vmlinux 0xf926fde3 generic_write_checks +EXPORT_SYMBOL vmlinux 0xf92a5d19 fget +EXPORT_SYMBOL vmlinux 0xf933b664 swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf9407c3e dentry_path_raw +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf941bd0a jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xf9491705 pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0xf96374b4 devfreq_remove_device +EXPORT_SYMBOL vmlinux 0xf97bb97a kill_pid +EXPORT_SYMBOL vmlinux 0xf980ddcc i2c_release_client +EXPORT_SYMBOL vmlinux 0xf9878d10 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xf9899197 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0xf9943d8a xfrm_input +EXPORT_SYMBOL vmlinux 0xf9997464 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9c367e0 iov_pages +EXPORT_SYMBOL vmlinux 0xf9e682e0 vlan_vid_del +EXPORT_SYMBOL vmlinux 0xf9e73082 scnprintf +EXPORT_SYMBOL vmlinux 0xf9f2f193 sk_alloc +EXPORT_SYMBOL vmlinux 0xfa19bcf6 ndo_dflt_bridge_getlink +EXPORT_SYMBOL vmlinux 0xfa252197 netlink_net_capable +EXPORT_SYMBOL vmlinux 0xfa4191b8 register_filesystem +EXPORT_SYMBOL vmlinux 0xfa4826a4 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xfa51feb3 dquot_resume +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa6c8623 pme_ctx_ctrl_update_flow +EXPORT_SYMBOL vmlinux 0xfa7c713a ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xfa7f2b64 fm_port_disable +EXPORT_SYMBOL vmlinux 0xfa7f3156 wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0xfaa25f68 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xfaa468fb clk_get +EXPORT_SYMBOL vmlinux 0xfaa62f75 tty_unthrottle +EXPORT_SYMBOL vmlinux 0xfabce2f2 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xfac696cd pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfad4df12 page_symlink +EXPORT_SYMBOL vmlinux 0xfae67b1f cap_mmap_addr +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0e65b3 pci_get_slot +EXPORT_SYMBOL vmlinux 0xfb251f3a __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0xfb587170 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xfb596a97 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xfb646fc3 netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7c65c3 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xfb94103e __clzdi2 +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbe4bd25 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xfbf96c29 netlink_broadcast +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc083693 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xfc0f1760 release_sock +EXPORT_SYMBOL vmlinux 0xfc37c061 tcp_proc_register +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3b160f mempool_create_node +EXPORT_SYMBOL vmlinux 0xfc65459a kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xfc6ce7ce touch_atime +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL vmlinux 0xfcbc52e8 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcc752e5 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0xfcc91111 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xfcd02f80 ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf2515e security_path_rmdir +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd1e2bcd mach_xes_mpc8572 +EXPORT_SYMBOL vmlinux 0xfd1e7cf6 generic_permission +EXPORT_SYMBOL vmlinux 0xfd20ea48 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xfd324014 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xfd346897 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xfd3ae04b i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xfd55f734 default_qdisc_ops +EXPORT_SYMBOL vmlinux 0xfd5deedd del_gendisk +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd76c4f6 bio_map_kern +EXPORT_SYMBOL vmlinux 0xfd89bab7 mmc_gpio_request_ro +EXPORT_SYMBOL vmlinux 0xfd8acd02 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xfd8d64e3 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xfd8f8504 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xfd99623a ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xfd9a857d ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xfdb6cedc _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdbe0288 pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0xfdc01aaf inetdev_by_index +EXPORT_SYMBOL vmlinux 0xfdc2d843 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xfdcb496e pme_hw_flow_free +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe35aa4a percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe822d55 get_brgfreq +EXPORT_SYMBOL vmlinux 0xfe8cdb0e of_device_alloc +EXPORT_SYMBOL vmlinux 0xfed21d44 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfef00935 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xfefa5775 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xff11dd9f pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xff158320 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff285942 dm_get_device +EXPORT_SYMBOL vmlinux 0xff4ca1f2 bd_set_size +EXPORT_SYMBOL vmlinux 0xff5b1f8f md_flush_request +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff6dea25 smp_hw_index +EXPORT_SYMBOL vmlinux 0xff6e5e03 check_submounts_and_drop +EXPORT_SYMBOL vmlinux 0xff6f0c2e uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff86dcb2 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xff98a896 skb_tx_error +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffa4f792 proto_unregister +EXPORT_SYMBOL vmlinux 0xffa51df3 tty_port_close_start +EXPORT_SYMBOL vmlinux 0xffb0c167 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xffb94aa3 elv_rb_find +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffff18c5 tty_chars_in_buffer +EXPORT_SYMBOL_GPL crypto/af_alg 0x153fc9b7 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x16a594c5 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x4c3eba88 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x58716898 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x677d8d92 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x6f9dbf07 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x93957c0c af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xa20f5e87 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xb71ad6a0 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xa0389ef8 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x8144cadc async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x9ec43986 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x38cf0c3d async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xc0dcd76e async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x5d548196 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x7c81f01d async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x826ccc01 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xf9e58d10 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x20ae14b5 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x20f6ad9a async_xor_val +EXPORT_SYMBOL_GPL crypto/authenc 0x587ef278 crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x3147c17d blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x27278ca9 __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x4a2a3ca6 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0xcb4847d3 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1291971c __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1e2c961f __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x63f4a041 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x8f04034a __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast_common 0x08aa6fb7 cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x0c5fbf8a cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xe39dd4b4 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0xee83a4f3 cast_s4 +EXPORT_SYMBOL_GPL crypto/cryptd 0x0263d860 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x02882899 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x0d353367 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x4318d8a2 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x5a624249 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x689df0d4 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xa00625a0 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xab2e107a cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xc06c8b1d cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xe7d114ef cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/lrw 0x3864eb66 lrw_free_table +EXPORT_SYMBOL_GPL crypto/lrw 0xcd074900 lrw_init_table +EXPORT_SYMBOL_GPL crypto/lrw 0xd4cb7df4 lrw_crypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x5ddb33e9 __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x77b39cb4 __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x7b6c3de8 serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x8a1a99ad __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/twofish_common 0x0f62991e twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x6c3229bb __twofish_setkey +EXPORT_SYMBOL_GPL crypto/xts 0x9e06f380 xts_crypt +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x16f5381c ahci_platform_enable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x21e88f6c ahci_platform_disable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x226ac93d ahci_platform_enable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x2dca2738 ahci_platform_ops +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x817cf502 ahci_platform_init_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x8aa7dc2c ahci_platform_get_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x8f5a223a ahci_platform_disable_clks +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x05b9f348 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0769784c ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0c3e6926 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0d62063f ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x15859835 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1a093421 ahci_start_fis_rx +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x26f64285 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x318fe1ad ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x36cc9f38 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x39af5130 ahci_restart_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x445e4361 ahci_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x628f0602 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x670fc2df ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x694f923e ahci_thread_fn +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6e05c4e7 ahci_hw_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8b176c9a ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8ba854ac ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x97083760 ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb37a96f8 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb5d45595 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb5f99656 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xbe96ebf9 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc30d0add ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xdeb38349 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xfafb327b ahci_qc_issue +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xccb9bf45 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xbb4af18e sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00c10e93 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x058425d7 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x0b8c870c bcma_core_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x10810a71 bcma_core_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x18f8295c bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x2b47415d bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x413808b1 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x4a5c3f0a bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6948c2ca bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x71e3b191 bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x72b807fd bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x738cee3f bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x76eed1d0 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x8ada9a07 bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc1871c0d bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc31b2add bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xdc462e67 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xdcf8a291 bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe3ab7af9 bcma_find_core +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xeacb7d92 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xee36970a __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf2c2ccfe bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xfa682ba0 bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0c17ef90 btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x1b9fcab4 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x23d41a53 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x49126fb9 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6ff52856 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa9be7b70 btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xabfe7b5e btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xce4075c1 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xec22dea0 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf8550e7a btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x43c7c49b dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x719a1d0d dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x73d5d1e6 dw_dma_shutdown +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x082e8591 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x102746b4 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x125af2c5 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1706643c edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x293fdb53 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2d450ef2 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2d7274cc edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x51cf1b78 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5ad59417 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6c542a31 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8cef55e8 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x95df3b54 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9bc13cb1 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb83f15d0 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xba6fc5cc edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc09cf025 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc8073309 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcaac8c35 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xda028073 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe1e5c0da edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe53a8d24 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf49a4a73 edac_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf6ada778 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xf4ade51f fw_card_release +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x2517418e bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0xcb69946a bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x788e27b2 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xa64eef04 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x757c11ec drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x9f52ae37 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xf2434e42 drm_vm_open_locked +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x6adf436b ttm_prime_fd_to_handle +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xad12d428 ttm_dma_unpopulate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xb5f76007 ttm_dma_populate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xce36343e ttm_prime_handle_to_fd +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xd98c84cc ttm_dma_page_alloc_debugfs +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x09168a4c hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3092a184 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x347e72b7 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x34db6118 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3df0a2e9 hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3e717cd6 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4392bbd0 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4906a967 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4a278492 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5b74ff1e hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x65f73854 hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6ade32d9 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6b867dda hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6f8664d4 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7209434c hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7f568091 hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x87fb3504 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x88753e1b hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9199ba60 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x96163229 hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9dd693e1 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa33bc957 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa6ff02b3 hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa968ddd3 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa9d9fb96 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaa26dcd4 hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xab4fc1a4 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcbc7dacd hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xccd39900 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xccd70535 hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdc29dd46 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdf7c6246 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe1d3d410 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe30ea76a hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf51afad3 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xb9c030f9 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x451f718d roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x59e34caa roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x5bb2c670 roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x81cc51b4 roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xbbfaef5b roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xe748a64f roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x373c1a63 sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x63dceac1 sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x717b1830 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x7409f680 sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x98c1bc3d sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xa4b4e83d sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xd70b0abf sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xf2d72153 sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x44f93abc hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x08f819b2 hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x1f91429f hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x317f5e30 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x53717922 hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x6bb2c013 hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7dc0c557 hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x8302d100 hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x88cf5565 hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xb4221d2d hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xc4e64543 hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xcc845cad hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xf2673388 hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xf6d604c5 hsi_release_port +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x612a88ff adt7x10_remove +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0xe6f5f391 adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x2d5051d2 pmbus_get_driver_info +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x3cc3f138 pmbus_do_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x3f5a1ca2 pmbus_write_byte +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x4e28e74d pmbus_do_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x586e5797 pmbus_write_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x6a9d3831 pmbus_set_page +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x8f91597f pmbus_read_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xbc14fa88 pmbus_clear_faults +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xdef085a9 pmbus_read_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xdff7607e pmbus_check_word_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xe6459590 pmbus_check_byte_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xe8a57be9 pmbus_clear_cache +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x3d391c4c i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x8c4a85d4 i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x940e1806 i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x9fb7a98d i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xa4091b31 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xbcbfa0e5 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xc1d4c9f2 i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xc217bc10 i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xf0d75b57 i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x686baf81 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xbe683a52 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x59878e1c i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x7127fa24 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x2f1e7ec5 ad_sd_calibrate_all +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x3075d452 ad_sd_read_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x45f1cc15 ad_sd_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x6c151576 ad_sd_write_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xa0c9fe56 ad_sd_set_comm +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xc299b9a9 ad_sigma_delta_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xd8a11abb ad_sd_init +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xd9d61517 ad_sd_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xeefe8c19 ad_sd_validate_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x130288b0 adis_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x3bde087e adis_read_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x6ab2b84d adis_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x9578c62e adis_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x9cfd4fbc adis_reset +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xaaa46bfe adis_check_status +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xaf4ad13d adis_update_scan_mode +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xb8271b61 adis_initial_startup +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xd3ddf008 adis_probe_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xd4c228a0 adis_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xdff85777 adis_write_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xf89eb9b5 adis_remove_trigger +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x010f47f8 iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0d86f493 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0ead1559 iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x139ea979 iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x266746bc iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x267c0508 iio_channel_release_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x285ff322 iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a1fab3c iio_channel_stop_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3eb6e477 iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x44cb2cb8 iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4bc8c076 iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4d26e6d2 iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4ff5b858 iio_update_demux +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6a01fda8 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7146f7fa iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x756d9767 iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7a711aef iio_channel_start_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7be80702 devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fd263d7 iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x811e8602 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x95183d6f devm_iio_device_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x964c5d89 iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9dbb6bee iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9f6c6217 devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa5e7a212 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xac544edf devm_iio_trigger_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xafa28c73 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd7672530 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xdfded8e4 iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe0d001e4 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe14a9dc5 iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe4b3a520 iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe7b4622f iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x1727ceff input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0x4fec5049 matrix_keypad_parse_of_params +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x5b1c7670 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x37dd2a1d cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xcbe96fd3 cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xf0d0a613 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x4a8617db cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xc93307e5 cyttsp_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xe4b8ddb7 cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x1d637b7a cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x437e5784 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x166dd619 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1f37cfeb wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x23957060 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x305335dd wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x609c3e57 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x76a58945 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7b4512ed wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7d22230d wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb1882393 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xcd45fc43 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf452c6d8 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf5c060fc wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x3307ac50 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x34efaed3 ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x37edd2cf ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x52d030f6 ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x660b6a2c ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xa8f7cbd2 ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xb56ee5fb ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xd51080a6 ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xe185ff3e ipack_device_del +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x23359aff unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xce1414b2 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0224b1d1 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0a7a0c21 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x290b4aa5 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2b671854 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x316b8da9 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x47e28508 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x52f7302f gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5e81d9a5 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6237fbe5 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6d4e88c7 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x750a15d6 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x78160693 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8e031b72 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd053b0df gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd28a540c gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf1c24e33 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfe775778 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x07b5e69b lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x3fe44970 lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x83c5ae02 lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x89e38daa lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xaaa83df1 lp55xx_unregister_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xb2372031 lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xc4d37fce lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xc965ce6e lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xd6816feb lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xdf232b7a lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xdf2479d0 lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x749e05f2 ledtrig_flash_ctrl +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x7903e46e ledtrig_torch_ctrl +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x05147ec9 wf_unregister_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x0a0527be wf_register_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x0b6d727c wf_put_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x329fecbd wf_get_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x34a550c3 wf_register_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x425bd0f4 wf_get_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x54c16e43 wf_find_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x79c10d33 wf_put_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x94765fac wf_critical_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa2f19a49 wf_is_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xbcace2a5 wf_unregister_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xca44c143 wf_unregister_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xdf02a03d wf_register_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed82a14f wf_clear_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xf2b18b18 wf_find_sensor +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x10e06e97 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x155ea9c7 __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1822fd23 __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1f2ba9ac __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x260d47cf __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x27831e89 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2dec45e0 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x347aebe1 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x41c861f0 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x49856e5a __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x50e8c39f __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x574ba881 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x628eb712 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6770a402 __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x785cfc9f __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7b488fb1 __tracepoint_bcache_alloc_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x91f2af34 __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa09069a3 __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa591c5d6 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa6890b59 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xaf60c34b __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb950d2ae __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbd4b89b6 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce0e6218 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd40fba32 __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdc5ea5a5 __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf58ce244 __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf5bcbdc7 __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfc1d5275 __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfcdf28c9 __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xffc308e4 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x0c1c97b2 dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x3f88d6b6 dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x650ae17f dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x776ef988 dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xa41d4e43 dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb6d5c65d dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb70b342a dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb7e6b9f0 dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xd1b2063c dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xebd06eaf dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x22163b69 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x3909d3a8 dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x594952bd dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x62a23587 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x74dcd98c dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7c381a76 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9b2b253a dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xdc69e37a dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe004ee92 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe6024e59 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xebcc64a4 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xeca7949e dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xf2620f4b dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x4e74b44c dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x56eb79fb dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xaaa6f715 dm_cache_policy_get_name +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xabe58d42 dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xb58a52a0 dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xc3fea110 dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xfdffb9f4 dm_cache_policy_get_version +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x34943ffa dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x5994288d dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x01d2f9ac dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x09472122 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x161ca5b8 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x8dd9c1a6 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x97ab588a dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa8813ad6 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb136a56e dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc66ce277 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcab63c3d dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcfb41713 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd5ac9b8d dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf37a3cfe dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x01445176 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11eab9fe dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x150c85ce dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1cac81ac dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2025e954 dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2e730a21 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f40da68 dm_bm_set_read_write +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f74609d dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x32b5f546 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x33c03da6 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x38c75c44 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x4af5c9fb dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5e6aea80 dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x619701dc dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x62c1b9ee dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x688d422d dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x68fae9d2 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7ade1071 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7b047bd9 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x832bf228 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x858c8d94 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x89f1e1cc dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x966a8838 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9b4b5b29 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9e798e22 dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa0bbbb49 dm_bitset_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa13861b4 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa2507774 dm_tm_shadow_block +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa87c5b4d dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xaee02382 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbcfdc290 dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbd50ebbb dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbe0497aa dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca40abd5 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd041d62b dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe44b4b9b dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xead1e727 dm_bm_write_lock_zero +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xed1e1f96 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf475af48 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/raid1 0x571df510 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid10 0x4e4f0305 md_raid10_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0xf0f6e777 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x0024b798 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x40615929 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x425f0295 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x4b045b21 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7e930642 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x9c46ecc1 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xb797e8f4 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xc2ed04d6 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xd6143106 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xff475112 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x128142ba saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x351de496 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x45dc1fe7 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x56035fcb saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x593821c5 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x6143f751 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x684f00db saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x062c9d3d sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x228dd9f1 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x2c7ca398 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x2e44f6de smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x35aec6c9 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x399d1441 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x5abe91cf smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x5fac4d3b smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x63222b29 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x70e3622b smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x86968515 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9c2225ed smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xab0139b9 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb0b6ee4b sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbae06ce5 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbcd867e2 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbe7ae355 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc695e0fe smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xff4e00ca smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0x68153f4c cx24117_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0x04587486 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0x498e35b0 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x016f4f21 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x0940ded1 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x2da20273 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x2ef0cd96 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x376b9df1 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x3b6e35aa mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x3d9a0ee9 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x4a6dd3c7 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x6693e73f mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x94b9e780 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x98f4c4c5 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xcff4a011 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd33d9321 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xdad97949 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xe9bfa9b6 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xf024f9d1 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xf4c1099e mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x31b50ce2 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x42ed5052 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x51fd46b0 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x6c6f31d7 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xdbce7f87 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x0d1b7ab9 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x1360215e ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x3b81cc33 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x638fa547 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x70ca4a6d ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xbc5f061b ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xfb08ba52 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x5e1f9b90 radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xa8e2593a radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0697eddf rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x09818bff rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0c16c584 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1a148a94 rc_open +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x23b2668a rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x24ebb959 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x62c97704 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6343ed7c rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7a5feff6 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x827f2919 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x84c8449a ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x89b759b0 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9ec69fe8 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa9b2f9e4 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbf5ad69a rc_close +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc98e1f11 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xcf0b493b rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd405fd87 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xffe85f57 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0xeca295e8 mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x9ebe5b02 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0x7d294727 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0x4054d8a7 r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0x7c434455 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0xde10e0b3 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x56952584 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0xc3878ddb tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x5f044103 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x3d48351e tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x50096ba3 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x0d8b5e2d tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0xc300b89d tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x01b9415b simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x264ad281 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x2d58efdf cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5422262b cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x57a867b8 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5a523659 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5a610ea0 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5dbf966a is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x6082ce63 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x64ed30bd cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7876505f cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x983dfff1 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xaf7accd5 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xba0e01e6 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xbc331eb5 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xc386a55c cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xcf4bd8b0 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xdc796a4e cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xdcdb09aa cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xfffb9b5e cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x6723c184 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x2fb89896 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x034edcc6 em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x0a122a94 em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x17ed931c em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x1935cbd7 em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x2df01d82 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x3b16e286 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x3e474367 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x473c7b92 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x5dad5c4c em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x68c510b1 em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x8cf619f6 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x90c75255 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x9b6b43ba em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xb73103f4 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x1bd37d45 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x56e97b9c tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x5a0fe923 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xa442b73d tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x01c483a9 v4l2_get_timestamp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x4389ce92 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x976678ca v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xbf5597fd v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xd9ff5426 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xe142d89d v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xfde641b1 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x08982d59 v4l2_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x221d2fbc v4l2_enum_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x36e8756a v4l2_find_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x4103badb v4l2_print_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x53105839 v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6976cfe0 v4l2_valid_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6f344bb9 v4l2_calc_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7eaf8e7a v4l2_detect_gtf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0xb0891da2 v4l2_dv_timings_presets +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x31ae7626 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x4631cff2 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xaafaf1c7 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xf9895b18 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x17eb0eee v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x263a7474 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2ed6ffc4 v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x38472390 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x3937b65b v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x397a59ca v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x51b75ffe v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9279c5b3 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa6bd710a v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xad59cc6e v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb7784d63 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xbb34a6d4 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc589f26f v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe3ebaed6 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe6003592 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x11aa264c videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x22be64cc videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x26dbb6d5 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x29336313 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x43db1f0c videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x441474ef videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4545b4ab videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x64227d55 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x9a08d22e videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa1eafcdf videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa8a25b56 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xab9bb941 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xb2c3e727 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xca241c3a __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xcdab4f82 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd0ccd408 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd71c0e3f videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe0bde6e9 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe0cfc41a videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe22b10ef videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe574ffe4 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xef7c4c62 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf35b15ea videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xfe5f9a2d videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x70ddc2c7 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xa44afee6 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xe880438c videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x6881be62 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x78662fa7 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x960c8c53 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xafda8b3c videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xb85fcc7b videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xc80149d8 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xd5e7cd63 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xee53512c videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xf052eeed videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x235300c7 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x6e3ff0c5 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xf6ca56b1 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x03a52fb1 vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x08967718 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x0abbb3c6 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x139f2b82 vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x13d6d60b vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1c4906dd vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2786887d vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2f2a0dfb vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x540c65ba vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5444e521 vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x54e339f4 vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5e21058b vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x67e0cc54 vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x755289d1 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x82720370 vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x878e9e02 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8a78c84f vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8f8e5ff2 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x9865e259 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa3cc4c01 vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xab4e365c vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xad5d4591 vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb1c90b55 vb2_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb5469a8e vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xbe5a4867 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xcf46b8ea vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd436f757 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xdf161cdf vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe7f5c3da vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xeb148a08 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf0f287a4 vb2_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf553ab79 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf8efc4cc vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xfff9a2f0 vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x7eaf9244 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xd391420a vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-sg 0x6989cdb3 vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x09c0ae27 vb2_get_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x44b70be7 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x935d856c vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xa2debeff vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-vmalloc 0x2bdc11c6 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x09e5e931 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0b2e00dc v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x17585d1d v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3a4b17d1 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x49b356fc v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x526ba037 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x53b0b0c6 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6dcd1781 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7a4c5e33 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7b6e6248 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9180eaa7 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xae2eaf80 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb136602f v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb18d3802 v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb6eb42eb v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc2b2cf6a v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc48a9f11 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd36a1589 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd631e9d3 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe0205eeb v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe0870b05 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xedb65a26 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf4540901 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x06978e8f i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x0e64ed63 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3af849e9 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x472f37bb i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x4a47fc13 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x8a7ac1ae i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xfaf437ba i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xfb4bc1fe i2o_dma_free +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x0837f508 pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x8f776dc1 pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xca1de0d2 pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x1b5b1288 kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x3b1f6d17 kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x42c6906d kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x45fa2b77 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x4a510cc0 kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x4a8ed32b kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xb119ffc2 kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xeb1306f3 kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x00811afb lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x86845415 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xf6faf9dc lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x300b9c4a lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x4ee0f667 lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x619fb8ae lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xab111bf3 lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xd4306adf lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xe4ec1049 lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xf0ba6056 lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x1aa31f93 mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x5b477bca mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x9c6bcb9b mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xcede75d3 mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xd6e813b7 mc13xxx_common_cleanup +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xdcd180bb mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2d3a1ff0 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x37cf270b pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x38b99728 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x512be31b pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x58a7919e pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7f46b927 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x959df1a3 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa0bbf6bf pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc9465f4a pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcd648682 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf86ce9e5 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x0aac3009 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xf5634eef pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x848c814e pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xc63c5733 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xd6c25699 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xef6f3c82 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xfe9f5a6b pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x01a33234 retu_write +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x4fca3918 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x15283771 rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x329c066f rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x38dd4b83 rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x43197e52 rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x439641f4 rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x44dd415c rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x4c87538c rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x51ed772b rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x554f53c0 rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x7bbff25e rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x7d809528 rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x8489a54f rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x8efe9eda rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x9f49948f rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xac277732 rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xb1fc3ab9 rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xb7b955d0 rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xbea1112f rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xc77de655 rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xca20e9d7 rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xe6213a41 rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x036c15bf si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x068e73b9 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0ea5fb03 si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x165226cc si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1b63361d si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x233e6f63 si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x252993d9 si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2ed41037 si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x33b906ae si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3e196710 si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x41c676d4 si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x424754fd si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4abf505d si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6fd56c7c si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x72124258 si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7b2b7a6f si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7d2cb2c1 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x823e9494 si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x82f258d6 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x83d117a6 si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8a5d0a20 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x95bd8d7c si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9c2be412 si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa4583f3a si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb92b41a9 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xbc57c488 si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc137b212 si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd1e0f695 si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd8ac4bdb si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe2b470d3 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf7777667 si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf8d16a11 si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf9eb76f2 si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xfe0d3f06 si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x334e3dd4 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x55f4aad8 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x576ffe6f sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x738c0d1e sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf00aaae3 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x21c0322b tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x662ecfb1 tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x95ceec97 tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xb3c795b2 tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x4362dc66 twl4030_get_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x9effbf1a twl4030_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x111468b9 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x2e859295 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x39ccde5e cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xadf4f5cc cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xc111fafb cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x27cb133b eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63 eeprom_93cx6_wren +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x822222db eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x98bb5a22 eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x13e48bb9 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3eed52a0 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7ab84941 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7d16ec6d enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x9128a98b enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xd0a66c11 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xf5af8146 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x08e36262 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x18041598 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x1fd707bb lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x2b4fbe5e lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x5787dd9e lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x58203a3e lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xdaab8b93 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xe257b1f3 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xb517bfde st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xe67d0a2e st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x157d352e sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1f822608 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x23ac57c7 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2cb06a98 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x3d450620 sdhci_disable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x4fe2b204 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5319b861 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5a262eba sdhci_send_command +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x7daaf5d0 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa8c57ffe sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd30d6b16 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x0723d23f sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x0bd77fb3 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x2b417cd8 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x48d861c4 sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x4e11c78c sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x79661c33 sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xefc9eca3 sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x5414c619 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x9623c667 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xa90ae38f cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x74fdcd32 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x870402b4 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xf9564964 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x275917fc cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x04a2b4ef cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x340454c9 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x98b751b0 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0436ca3e mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0cd3ce13 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1533de43 mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1d343721 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1d69b92d deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x281e214a register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2be10417 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2c1b2667 mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2c3cf3e6 mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2e0b7e85 mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x31593e64 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3306a826 mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3b41e774 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4f150f59 mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x58f1ccbc mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5d069014 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6e76f0f8 mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7346a4c0 mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x75cdabd1 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7c0f40ef mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8a765169 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x972e27ec __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9db57fc3 mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xae3f5926 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xaf71cd01 mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb1abf096 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb8622632 mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb90b93c9 mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbb603163 mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbd918ce9 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc2682298 mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc643fa8f mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd62adf5a mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdaf06a0e mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdea33208 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdf31904d kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe4e0ea2d __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xecc137df mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf881a191 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfa4a02b6 mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfc367e8e mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x127d3f42 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x42759ee3 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x6f8f659f add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xbb7204e4 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd3833eea deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x0b3b8b7c nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x71031e5c nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x642b819e sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x854b69fb onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x944378cf onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00f00fef ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x22543e2a ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2e191ae9 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3f99971a ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x50abd303 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x64d33548 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x690467c3 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x76ac6fb3 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8668762b ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x98187c97 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbf0f633e ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc330e011 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xef5b292b ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x23d78580 c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x65ecf10f unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x8f590d20 register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x9e47fbdd free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xcde6d42f alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xea2a087d c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x116fe142 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x222c295a can_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x303f8704 can_led_event +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3d73fb30 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x61d312ff alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8879cc39 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x931b9d8c safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb346573b can_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd29803b3 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd6d04005 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe59bf2ee free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe5b35841 devm_can_led_init +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe849103d can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xee40eab6 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf06d9814 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfd4edc31 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xff1c5ef7 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x9c5da6eb unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xe31b11b4 free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xeb063e09 alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xfce6b06f register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x21adbd2e alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x2272f26c unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x4a54ea9e free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x89497ac9 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x2cbcf551 macb_ioctl +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x425ebdc0 macb_get_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x7e2d2dff macb_ethtool_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x7f55f2b8 macb_mii_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xaedb6826 macb_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xca0fc524 macb_set_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xeafc473a macb_get_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x036e1500 __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x03e698dd mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x03f68833 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x063e6af3 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0be93c2f mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x11143f98 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13d8d877 mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1659416d mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x17111231 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x17f7ac12 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x183bbc13 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18d2d6f1 mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x19a10a49 __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1bd0822b mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f37cfe7 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x232e8606 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x246722e6 mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x257a612d mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2df21e3e mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f6237b7 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x35f45c4e mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3d161298 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x41cf9d7a mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x43695b0d mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x462e5283 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49a53c5e mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4e8bdefc __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f3c5e08 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x509963c5 mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x50a4d5a0 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5291d26a mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x52b26751 __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5527153e mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x59e505bd mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5a4e18b7 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5da2b031 mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f5e85e8 mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x68d77d1d mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x69f7ecfa mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6a937cf5 mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6ef1ad03 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6fa9a14a mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7214dd54 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x74a48d8b mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x76b9da41 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78f27122 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79f30f68 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79f86070 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7bb05d29 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7cb9e8cd mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7d3d58ae mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7dd70f4e mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7ec1342a mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8506c4f5 mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a6be87a mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8ac99bb9 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x91d759a2 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9228bb36 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92398537 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92ffbbf8 mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x93621f8e mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x952acd6f mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa1313a50 mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa5150396 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa71d910f mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa72a1255 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaaa87759 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaac1d063 mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xac785a7d mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xafd17770 mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb339469a mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbe091ac7 mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbeb373af mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc43eb5e1 mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc5b6e999 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc61e9b7e mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcbc85150 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc92dac1 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcd43d9e7 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcfb80e66 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd19814cf mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3be5da6 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd49931e4 mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd50b9dc2 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd7559f72 mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdadbda4c mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdbbc1aad mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe1279a6e mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2f7b5c2 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe647a33d mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xebaaaeb1 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xec4b582c mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeca1cfbb mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xed6ef789 mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeded1c0d mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee05af3c mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee107ba8 mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xef29a6c3 mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf1167f45 mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf89938e5 mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf9f1c3c1 mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfa429b9a mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x07288be3 mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x20ca723b mlx5_create_map_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2d7e8643 mlx5_core_xrcd_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e1c9e7b mlx5_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x34f2c8b6 mlx5_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4871c7ce mlx5_core_eq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x59356502 mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5b9a8479 mlx5_core_mad_ifc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c0fae91 mlx5_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ee0bdf5 mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x791f89be mlx5_core_create_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a468078 mlx5_destroy_unmap_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84e91b4e mlx5_core_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcedbad59 mlx5_core_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd4912480 mlx5_core_destroy_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6c4ef56 mlx5_fill_page_array +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xea8bc19a mlx5_core_qp_query +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x1f9cd366 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x22489a8e macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x28f62bf5 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x3a6adcfa macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xe34f0590 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvtap 0xd54ea244 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x20bec34d usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x2d21018d usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x776b709e usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xfdda5825 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x19603b54 cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x1bc6f625 cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x3f1a7dbb cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x46c3c91e cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x66c29f92 cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7a5c90f4 cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x9e86e9b5 cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xc0a9132e cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5b177dd6 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x7f5f301f rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x95eb60f9 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x9dcd16e3 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xa57ad514 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xdc2f6c6c generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0ae1b485 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x15bdc5d3 usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2bb6e271 usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2e3f6fc2 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2fee864d usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3aed5c75 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x43b0205c usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4fbd01f0 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5329366f usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x580ee20a usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x586c4cf6 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5b276e70 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6a752d21 usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6af3b27d usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7404cbdf usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x765919e7 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x799ccb27 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x85b422fc usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa31d600d usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xad0e046f usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xad33b59b usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb14ef463 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc2d940e7 usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc444ba9a usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc5e363de usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd7feda09 usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdd16273f usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xde2d538e usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe2dbd60d usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe338a079 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf46188a8 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf49c82b9 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x6e308365 vxlan_get_rx_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x8cca7c24 vxlan_sock_add +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xaa6321b5 vxlan_src_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xadfccf95 vxlan_xmit_skb +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xb5f139d0 vxlan_sock_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x18675ed0 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x36931ffc i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4a9fd96b i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4ebb6f9d i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x595d125f i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x60cc3188 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7bc5eadc i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x934be7df i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa73f9037 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa94165f8 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb46b5ded i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcd5e4ba9 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcf1fe8a2 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe2e02122 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe4869783 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfe8f81f6 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x1e8aa06e cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x229888de cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xa2b36ab3 cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xbe86cd36 cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xdf9eb02d libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x308ba9bb il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x3103d021 il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xbfeda698 il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xce1ca5ee il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xd1cb9883 _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x0d556623 iwl_abort_notification_waits +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x1291ef1b iwl_init_notification_wait +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x1ac36ff0 iwl_notification_wait_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x28cb66d9 iwl_phy_db_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x35033c81 iwl_phy_db_free +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x35483fff __iwl_crit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3d548dab iwl_remove_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x430dff93 iwl_opmode_register +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x4d417894 __iwl_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x582ee919 iwl_poll_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5c52e109 iwl_opmode_deregister +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5d0a212e iwlwifi_mod_params +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x62c1d71b __iwl_err +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x6a653b34 iwl_set_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x6e0122d4 iwl_clear_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x776221bf iwl_send_phy_db_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x7b3801a6 iwl_parse_nvm_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x89b1529d iwl_nvm_check_version +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8b42e06e __iwl_info +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8c5d5ab3 iwl_phy_db_set_section +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x9177e8a0 iwl_poll_direct_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x98b24bad __iwl_warn +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa06deaa9 iwl_set_bits_mask_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa316189d iwl_write_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa5e4b2ce iwl_read_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa66c41b3 iwl_write_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xaa6d08eb iwl_wait_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xbcc98167 iwl_read_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xc18bd543 iwl_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xc67c31ed iwl_notification_wait_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xe740d092 iwl_parse_eeprom_data +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x329f90c4 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x35e16486 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x460d4061 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x59b7c9c3 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x610d6a29 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6b2dba12 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x712bb74c lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x97507fea lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x998fbaba lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbdd21718 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc0f397ae lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xce690f00 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xedc089c5 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf23e99e7 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf95d3ad0 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xfd4fd3a7 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x40a74afb lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x41d6c4fa lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x8c9b9a68 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9fe5db62 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xace0ba62 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb01ed4ed lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd7520010 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xeda6a975 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x589615b3 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x948af5dc if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x034870c2 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x0a24817c mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x1170461f mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x15f84baf mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x15ffbf1a mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x253770bd mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x2a42aa29 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x3120a642 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x534e3c8f mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x66d1afe3 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x800360de mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x9447c6d1 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x9cf54795 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xaa6c7e4b mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0b7025ff p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x21ab3ed3 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x25747fc8 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3fe12023 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x6fa75e6c p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7b3b7d1a p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x83c59bba p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x8f6532e1 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xcda4aa90 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x013492a7 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x06856edc rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x09ac50ee rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0a18dcbe rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x17633d7e rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x22d2281b rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2377d380 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x31e319dd rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x375f8620 rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3f5f7a67 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x40a2e59a rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5ccab56e rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6334e3ca rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6533c23c rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x71c09ff0 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x80c0937c rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x81fe62dc rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8699a770 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8c3bdeea rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8d02e724 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8f62f6dc rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x945b5fc2 rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9d59b277 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa26436bd rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xae618704 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc256e284 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc907aee3 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xca18fc5f rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcb2593c7 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcfcdd854 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe0eedcab rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe560e0e6 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe6301b17 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe7726107 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf36616c9 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf382af7c rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf611da7f rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf9602787 rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x096d8205 rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x0fad1430 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x2505789d rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x46f22b9b rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5da0e508 rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x613b5c7e rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x6cc85678 rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x8185fd6e rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x83e0a950 rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x92c0bcd1 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xb19a0212 rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xb579f7b3 rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xbde625d7 rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc375d6c0 rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc3ac5901 rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc6a1455e rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xe28f94c7 rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xf707bc18 rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x00c3e4b7 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0153b44b rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x018c1967 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0b658718 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0f3180e0 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x13bc8859 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1b04331a rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1caf63e0 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x214de5f3 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x23ed3ba1 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2464d02d rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x274888bc rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x28f510d6 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x35acb39c rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3a3c86ab rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3a6f75c3 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3ad39534 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x43738d37 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x450bc01d rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4fb274ce rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x54f89f1d rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x554422be rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x56884020 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x585c83e6 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6078ca2f rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x63e0d71b rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6574c4c3 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x65cf3ff1 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6a1f6640 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x82f380b4 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x96b31e57 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x97c3aeb1 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9d0e0ae4 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaca2a122 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xae2d0bd8 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb3979147 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb9befaf3 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbbe2777c rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd26aca9f rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe40c53df rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe537a41e rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe5ec1c14 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe789754e rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xed7e06b4 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xee5d32bc rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf41cd8dd rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x06b2e3d3 rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x261b508e rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x4a3d6300 rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x6b8cfebc rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x939931eb rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x57093021 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x6e8f74b6 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa6cf8b20 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb60f0756 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x39588c84 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x469bfa7a rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4b504628 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4ba8fc20 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4cc6dad9 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5f75aeec rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x75d376d6 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x76823ddf rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x830ed190 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x86c0ad63 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x905ec9de rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x949cc8e3 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9839375e rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xad415168 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xae369451 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xeac80fa7 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2856427f dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb1e3bc2f rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb87ad0e6 dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd4ef7196 dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x02afa8ae rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x0e9470ef rtl8723_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x1ff8e334 rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x25dc4c24 rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x270e6d8c rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x42358f83 rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x446d1b08 rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x447f1773 rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x44efbfc4 rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x4fb17016 rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x66640888 rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6fee3a6c rtl8723_phy_set_sw_chnl_cmdarray +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x81dd6215 rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x851b02d6 rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x859613cd rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x898f8ee8 rtl8723_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x89dae319 rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x9edf8f96 rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xa0f31703 rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xaf4d6d94 rtl8723_phy_calculate_bit_shift +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xcd632810 rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd0b50d91 rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd831eb84 rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xde69c06b rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xe0a1aa2e rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xe43e2fde rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xf149da17 rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xfa195327 rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xfbeac252 rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x023cc09b rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x05b9935e rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x0d0b6636 rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x16e06eda read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x1f32de96 rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x227c4ac6 rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x241dedc1 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x3a4c8f1c rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x40da8a74 rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x53487746 rtl_attribute_group +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x72146960 rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x72cfe0a7 rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x904d013c rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x966bca4b rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xa02e0260 rtl_dbgp_flag_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xa2e2c087 rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xcf057e97 rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xef9e15ea rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf8ff6add rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xfd8c3018 rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x57bfb482 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x823cdcd0 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xc7d004a9 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0519fdf3 wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x05294fba wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x07810311 wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0ea9ad92 wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x24a820f4 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x294526bd wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x29709ae6 wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x44049d48 wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4dabe157 wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4fddb8a7 wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53ff27ad wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x575994ee wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x589646c4 wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5eb4d8db wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x63f5a9e7 wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x64259a7b wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x79e8631e wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8809d76a wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8876e776 wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x91154b5e wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x94d8f2b8 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x967d2f82 wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x96b94803 wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x97e55fb8 wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9bc4e7db wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa7c6fcb4 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xaa1a934b wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb004861d wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb0c871bb wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb5e9cc42 wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb85fc4e6 wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc2230351 wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc50c0e54 wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc6005883 wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc7e95e1a wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd5b58648 wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd7ff401a wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd9cbb7fb wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe511eb48 wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe8b980cb wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xeed98366 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfa7900ea wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x11d4b5b7 phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x1f8595a2 phy_pm_runtime_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x3e97acb0 phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x3ea2ca3d of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x4b43fc76 phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x4c187f60 devm_phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x533d797b devm_phy_destroy +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x58a8be9d devm_phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x5eac3439 __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x60b2642c phy_pm_runtime_allow +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x68391d05 phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x6e203b28 devm_phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x718b38cf phy_pm_runtime_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x9641f0a0 phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x9c32685a phy_power_off +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xa47dca42 of_phy_simple_xlate +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xa610a0c1 phy_exit +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xabb32fb2 phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xb53e12df devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xccaddc1a phy_power_on +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xd876f287 __of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xdfe8c6be phy_init +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xe1e91572 phy_destroy +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x74e75dcf pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x752b87a8 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xbf1809f4 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x1319e6a6 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x17b48351 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x39b12e04 mc13xxx_parse_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x9e273af2 mc13xxx_get_num_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xb26367ae mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x172467ea wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x43878029 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x4bc5996e wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa1be3a00 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xad0eee5e wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xe8c07f90 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x31deb9a6 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x02287c3d cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x048a62a8 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0e313a42 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1ab13cd6 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1cc21949 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x218d6b99 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2bed47ea cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2ebf163d cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2f3b622b cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x309646f6 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x41f0d8b8 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x428039fd cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x448ea5ff cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x45647142 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x45ce05b4 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x47bead14 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4b2dd8e7 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4b96232e cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5056010d cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x55e9155f cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x62efa8e8 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x667fe2e5 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6d562321 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6f1be39d cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x72bcefbf cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x77264164 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7d932da1 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8481e1d1 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8998f8ba cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x96a86eeb cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa390a72e cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb60433e1 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbef43e78 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc75ba80f cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd30784b1 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd6b1e634 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdafb0811 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe224b551 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe7abcfc9 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xeaaa3fb6 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xeef832e8 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf3bc6eb7 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf8c9be01 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfd4732d1 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x138ff535 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x1c902830 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x3fc6d77a scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x9446c017 scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xa3de68b6 scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xa81a7817 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xbe5ce31b scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x24b1b083 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x2a86c19d fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x32f4baa2 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x68849019 fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8f4fad9f fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x955c9918 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xbb3cdc16 fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xce3f25a5 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xce4dcfda fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xcfcc43e0 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd1d99f3f fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe1e64e85 fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe302b0a2 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xeb5fcfac fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf028e63b fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xfaf22e35 fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x043f0157 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x235b4feb iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x440f4909 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x698e578f iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa3be482e iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa9a15a53 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x01ac7727 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0680a34c __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x09988f20 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x13580559 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x13724b56 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x16b3df53 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x183d59fa iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1d95b744 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2a47dd6d iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2ff48c2d iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x35960fcc iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x36bc8539 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e58ca7e iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x462fb5a6 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x49656902 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x66485b7d iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x686f8b6d iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6acea9e0 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6b0d45db iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6bc099b9 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6d7e2870 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7543ed02 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7800461f __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7ef01422 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7f4bfae8 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9f1d3f7b iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa2c9508b iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa37e9ea8 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa8682907 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb4fd162a iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb518d93d __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbd05d10b iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc180414d iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc5e562c0 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcae8dd92 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xddf61ad7 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe19e442a iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe3ff1e11 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xed641b39 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xee4707fb iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xefaaf27e iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf0763b12 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf8423006 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfde928fd iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x10689ca1 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1cbf1621 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1ec3e1d0 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2081499e iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2258d3ba iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x28e43dd5 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x341932dc iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5e6ab091 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5f1e3b28 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x692f6314 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6dbd84d4 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x91b5f76c iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa0ca2e77 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa694d726 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xadfe654d iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xaf558b18 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe0f84c0d iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0e8a29e8 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x12845d4b sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1b692aa6 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x276f6f71 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2c233193 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4168b6d9 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5a8887d2 sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5cdff25d sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6411e4d6 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6bf79d38 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x70f27927 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7239a2f0 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7604def6 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7d00377b sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x804a5153 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8d7af851 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9b12b184 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa0f8e8b4 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xafd63cfb sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc60b0160 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcaaf80e7 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcfe878de sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd2845485 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdabb9152 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf1965402 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x1e2403e2 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x72d3b699 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x8e61cec4 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe40b545d srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xebb2961f srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf1e2907f srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2eb4adb7 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x32e2e40a scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x49aeb294 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x49dabef5 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x71a76d85 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7edd52d6 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb26866c0 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xbef1abe2 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xfaa29e7a scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x07ac67c2 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x07b91c7e iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0eb0c8c8 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x210057ec iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x26382c8c iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x32ad269a iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x392cf2d1 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x408eec69 iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x41d5ad3b iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x42cce1cc iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x48df8c86 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4f0c3099 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x51cdfcce iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5ae7bd33 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5e6ea8fa iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x64d7bbfc iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x68ba632d iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x69d4c4a2 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x718eccdf iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x720ef1b4 iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x736edb26 iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8c74f35b iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8cc42407 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8d982185 iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8ea83986 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x97cb992f iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x98ea6026 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9f212c10 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa05a3f7d iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa62df512 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb9ce7353 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbc35948d iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc39cd69e iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc7670a01 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcd8427e1 iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd6ae5375 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xee1865c2 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf6414cbe iscsi_is_flashnode_conn_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfe05e029 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfeeb3ba5 iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x05e7973e sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x7508add3 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x7bfd640e sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xc59ca019 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x25b60cb9 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3ea912d2 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x5c41fdf7 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8c302805 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc75c28fe srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xee891cc0 srp_tmo_valid +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x2c519d8b ufshcd_resume +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x2e76a4f8 ufshcd_remove +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x39571c18 ufshcd_suspend +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x5bd898a8 ufshcd_init +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x9e3d392f ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xf2050740 ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x2608b70b spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x5c68514f spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xb76b0c63 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xc60c1af9 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xe9eaa283 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x0969fe37 dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x2afbeaed dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xcf4d3e3e dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xd980b34c dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xed0cdcf3 dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0xd2a762f0 ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x07dd693c comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0f4e0b2f comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x15af8070 comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x161b2300 comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1718ba69 comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1a7411fc comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1bde556e comedi_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x281d0dd8 comedi_buf_memcpy_from +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3f152506 comedi_error +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x43e2ee8b comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x44e242b3 comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4b8e33b9 comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4ea90957 comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x508fb519 comedi_pcmcia_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x57798d43 comedi_pcmcia_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x589ffe07 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5965f1b3 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5ac3940f comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x73cd23a6 comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x74ebc4c9 comedi_buf_put +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x75087fe9 comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x779c1f48 comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8397742a comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x86e5eb09 comedi_to_pcmcia_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x88cd1741 comedi_event +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8a0d0f09 comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8aa84c9a comedi_buf_memcpy_to +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8bd04209 comedi_pcmcia_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x94c2ddca comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa1836735 comedi_pcmcia_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa1efc21e comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa380b641 comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa548a286 comedi_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa6c1a25e comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xaa5b7eda comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xac33a7b5 comedi_pcmcia_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xad35b5b3 comedi_pcmcia_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb4985871 __comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb7639fce comedi_buf_get +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbc48e4f5 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd1c1515c comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd348161f comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd429c903 comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf1df5052 comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf64ce33d comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf7985977 comedi_dev_from_minor +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfb5ec04a comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfe034956 comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x16af7e22 subdev_8255_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x79a81abc subdev_8255_init_irq +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0xd57d1a1c subdev_8255_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x6deb4f56 addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x291a44b4 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xa8436fee amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xd7c41793 amplc_dio200_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x2006c942 cfc_handle_events +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x29c57a28 cfc_write_array_to_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0xe3b36bba cfc_read_array_from_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xcb87dc51 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x107cf35f mite_get_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x16fcec8a mite_sync_output_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x34f8a292 mite_dma_tcr +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x413af1fc mite_done +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x4e7b4483 mite_buf_change +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x4eabc058 mite_bytes_read_from_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x566bcda5 mite_release_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x6499ea2e mite_bytes_written_to_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x64bb5a68 mite_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x69fe44f3 mite_prep_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x85b01918 mite_unsetup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x93329ca2 mite_free_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xbaba4eae mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc19c0800 mite_dma_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc9e37dc4 mite_setup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xdd26c2be mite_bytes_written_to_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xe40cdc5f mite_setup2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xe77fb085 mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xe89d0af5 mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xf44e0d3f mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xf5984270 mite_sync_input_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xf714e8c8 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x144019d8 labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x085ab4ab ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x3c2267df ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x440713af ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x48e39b61 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x80955ed6 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xabfcff96 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xc57597e2 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xd1ce3f17 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x1efd1c25 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x2d479287 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x507b2661 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x85a6e0bb ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x9488d4de ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xfc9117d9 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x372f8d98 comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x7d783887 comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x7fed5c97 comedi_open +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xec55f983 comedi_close +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xf1cfe42d comedi_dio_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xf2580dc6 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xfaaade66 comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x2206b003 dwc2_handle_common_intr +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x34adda78 dwc2_hcd_remove +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xb05a818c dwc2_set_all_params +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xe4926146 dwc2_hcd_init +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x1a1b5249 oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2feda75b oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x3227a28e oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x7dc9dddd oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xb2c66001 oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xc8b5a524 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xd370f679 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0xbd5a0e51 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x05e49583 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0ef1d765 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x20e5ba06 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x3f8674da spk_serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4d427f2f spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x5c70aa6b spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x62806207 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x647c502f spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e047868 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xac9db0f0 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb35aaab9 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbdc53b78 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd1b551a2 spk_get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x43a0f43f usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x5173be54 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x560e856a usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x6c4d578d usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x6ffaf845 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x7d7fcb64 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8e18597a usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x90a1af04 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x92b7cfe4 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa3608af7 usbip_recv +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd71ea22d usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xdb091b6e usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xf9c1c87b usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0xe198bdbe pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/uio/uio 0x5fbac65b __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x751eaa15 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xa1008ab5 uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x6f87a617 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xacff2ea5 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x528a5b25 ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0xfaf2fa4f ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x170e9bea imx_usbmisc_init +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x74750d38 imx_usbmisc_init_post +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x030de2a5 usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0570b280 usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0c08ae76 usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0c3aa978 usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0f5d2fb9 usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x159dfb28 usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1e223d1e usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x25527979 usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x36d7ceb0 usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3a196851 usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x48c0404e usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x53bcfcd9 usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5423e2b6 usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x59854cc0 usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5f3ea3e2 usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x608601e0 usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x674a5f98 usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x67b44b3f config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x78f5b171 usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x94d7075a usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa24d7102 usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xbd5610f7 usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc0d7115a usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xdb3a0741 usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xdb7805aa usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe223169a usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf232661f usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf7cf6d25 usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x1ef97162 gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x1f61d87a gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x8e27d6de gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xf1981607 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x06272d31 usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x1e2ac37c udc_attach_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x5afe022a usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x6ca66567 usb_gadget_set_state +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x970de445 usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x9e1cd937 usb_gadget_map_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xba33b99c usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xcfd20db7 usb_gadget_unmap_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xd97064ff usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x0a5230df fsg_common_set_nluns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x141fce2a fsg_common_remove_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x1ccb58f7 fsg_common_set_num_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x2d10b6a7 fsg_common_create_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x51707c29 fsg_common_run_thread +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x69c28eac fsg_common_set_cdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x6acb4179 fsg_common_set_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x7e26d4a5 fsg_common_set_sysfs +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x99023bfc fsg_common_put +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9a0221c7 fsg_common_free_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9dc025a5 fsg_common_free_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xa46e6443 fsg_common_get +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd2d2c26e fsg_common_remove_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd3ae3b65 fsg_common_create_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd468f882 fsg_common_set_ops +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xe4d1591e fsg_config_from_params +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x44304ed1 ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x5e0cf9a6 ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0509e549 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x1b120ba7 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x33875c98 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x33b8f7ad usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4ab9fb32 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x695c0522 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xa73174c9 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe6253ba7 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfe91a5f4 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x528e3954 musb_interrupt +EXPORT_SYMBOL_GPL drivers/usb/musb/tusb6010 0x00fe5039 tusb_get_revision +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x10dc888f usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xce5f39d4 usb_gen_phy_init +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xda6019af usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0xe2a7d162 isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x294eeed6 samsung_usbphy_rate_to_clksel_64xx +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x6c17ec51 samsung_usbphy_get_refclk_freq +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x8fb4a816 samsung_usbphy_parse_dt +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x975960c1 samsung_usbphy_set_isolation_4210 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xd7d6d853 samsung_usbphy_rate_to_clksel_4x12 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xdf2c4fa5 samsung_usbphy_cfg_sel +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xf8885697 samsung_usbphy_set_type +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0xaf1c65cc usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x174ed124 usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x178661b8 usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3c839142 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x479a2e1c usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x630d4942 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x710037b4 usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7125d16f usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7447801b usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7a342c96 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7d547be5 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7e89b47b usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9575c5e1 usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9aa830b8 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9db71bf3 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa79b83e9 usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xab969826 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc68a1d7f usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe0026bb1 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf44febf5 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfc3d6ffd usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfe7d837c usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0832290e usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0d266dd3 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2ec509bd usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2f7f74ed fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x33f850c6 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x342ca741 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3864443b usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4df2dedd usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8b633b84 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8dbcc1da usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9582e5d6 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xaef19f2d usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb12c684f usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbd3d1928 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd040854f usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd35f2737 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd74f4447 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe6bba045 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe7acfec2 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xeeb26c63 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xef40ea24 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfb42884e usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0148403e wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x68a0298c __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x8376f553 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x87276130 rpipe_clear_feature_stalled +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xb2e8e84a wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc543b60e wa_process_errored_transfers_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xfb6797df wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x11d3ed43 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3a3767fb wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3c320d58 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5083f99d wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5f66e7aa wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x624a3f3b wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x65f91865 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9907ffc4 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9d76ecfa wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb10448eb wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xbe6353a1 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc01b4e02 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe547f49f wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xea0b05b3 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x6c3b1d9d i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x7c0855e1 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xff0f027c i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x0032b92b umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x416ed86d umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x54e086bf umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x6cce6600 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x866cad7a __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x891c5ed1 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8c24ee6e umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe79f32d8 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x01a2de5d uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x04e69396 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0ada51f3 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0af56811 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0db6917e uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x143d7f2e uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2376701f uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x24bebe12 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2fe868b3 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3503efb3 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3e7e1e25 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x51485077 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5807ff56 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x62c1e188 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6631b4e8 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7cb1ccf3 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x80d3ae08 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x82a65a84 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x83dd6ac2 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x866ca6cb uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x86e430ee uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa026588d uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa1afb940 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa3219ab6 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa4e6bb96 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xada917b8 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb1180d3c uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd5ee2d18 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd6657ac7 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd8ebd7df uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xda0182c4 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdab73267 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xde11bf31 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe296e72e uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe9e8416e uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xecffe57f uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf9f85c4c uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x80c0bbcc whci_wait_for +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x02ea98ee vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0ec5ff9d vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x16033763 vhost_work_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1d168a55 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x269f7a09 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x28048de6 vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2966e074 vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3729aba4 vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4308b147 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x581092f4 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x58953459 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6f0bdfc0 vhost_init_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7412750a vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7513f0c9 vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x78a6577b vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x85d94bf6 vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x8809aa6f vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x95925b19 vhost_poll_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x96d552f1 vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9d5f75de vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa7b5201c vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb0f81e37 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb482fe44 vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbad7829b vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbf51b242 vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc6e33f7c vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc7bdd803 vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd60001db vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf0099ad2 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf29ef20c vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfa8b3d0a vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x0c0390de auok190x_send_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x15aaa431 auok190x_send_cmdargs_pixels +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x2fe4bf5b auok190x_read_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x77456f7f auok190x_send_command_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x8524eca5 auok190x_send_command +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x8a6c162e auok190x_common_remove +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x99952795 auok190x_pm +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xbe2d5a43 auok190x_common_probe +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xc900e75e auok190x_send_cmdargs_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xde76a610 auok190x_send_cmdargs_pixels_nowait +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x6bc90567 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x74328654 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x84ac093e ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x93e70fd2 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xbf35d25a ili9320_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x7f05a393 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xe7fec038 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x8c3d8920 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xe1f579af sis_malloc_new +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x89044677 unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x89a2d2bc register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xd36334ae unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xe358cb82 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xf028ae74 register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x2b698bd3 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x31ce6644 vring_transport_features +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x5674e1eb virtqueue_disable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x56d8aa37 virtqueue_get_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x5e94e837 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x5f4282eb virtqueue_kick +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x69c5c190 virtqueue_notify +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x75d9148d virtqueue_enable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x8403bf9c virtqueue_add_sgs +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x91c626ad virtqueue_add_outbuf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xa7b9e02e vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xbd8efeb5 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xc24b2be4 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xd6416ca8 virtqueue_is_broken +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xd7fba972 virtqueue_add_inbuf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xed2cbc1d vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xedefa5b6 virtqueue_kick_prepare +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xf9893870 virtqueue_poll +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2c131160 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x5716f2ac w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x586d398e w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x62a03e22 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x6f8bdeaf w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa7fbe761 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0xcb05b2ff w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdcdb282a w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdcf5c1ed w1_write_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x631a3871 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xa23e0bdf dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xb4314e22 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc6dc8c2f dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1166a599 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1d493d65 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x23c6c371 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x522267bf lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x628f310d nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7893f61c locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7eb30ad8 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x94919885 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf924b327 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x02108235 nfs_file_splice_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0322d8dd nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x050a5a4a nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0675cde9 nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x080eefd1 nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x097d1ece nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x09d36045 nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0a957f83 nfs_pageio_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0d2d1926 nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x10fac19f nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1162a499 nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1340c2db nfs_try_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x15d4f0c8 nfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x16418318 nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x17ff1dad nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1da618f4 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2021d276 nfs_file_fsync_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2368f96b nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2832b27f nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x284f094e nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3360a496 nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36db3dab nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36deb6c4 nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ca31f35 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3cf70a98 nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ec84d45 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4078a254 nfs_pageio_add_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x40b35d3b nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x41602e69 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x421bb9cc nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x43048b44 nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x44efdff1 nfs_writehdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x461e7b44 nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x48d36a8d nfs_set_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4a335a0d nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4aa0b110 nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4ab347c5 nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51292811 nfs_put_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51d47321 nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x540d0061 register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x540ff922 nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x549f03d4 nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x57b0c217 nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x580dd394 nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x585294c6 nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5d332a5f nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5d9ea801 nfs_file_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e1d863a nfs_sockaddr_match_ipaddr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x622ea794 nfs_generic_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x628272e0 nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x646a6603 nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x66d7e1f5 nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6881620a nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x695eeede nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6ec0e195 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7230b044 nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x76dd0ab3 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7709f25d nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x79529e62 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x79e847ca nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c8b103c nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7dba3897 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7e7a3959 nfs_readhdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7f84f5dc nfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x80d52878 nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x835f2156 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8553ffe5 nfs_probe_fsinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x865c9fc9 nfs_fill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x86e65af6 nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89bc5a64 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8bbf7b7a nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8c3d9dec nfs_pageio_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9009939c nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x92e65092 nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x940dd15c nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x964a8791 nfs_setlease +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x96eecb99 nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x98b17122 nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9e9a6643 nfs_readdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa24d4ddf nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa2de6ce7 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa4bdb9c4 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa525c09b nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8d2d1ce nfs_callback_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaa96dc3e nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaaa14361 nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb04e511d nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb1b270f1 nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb1f4425d nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb21dc1f7 nfs_destroy_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb4d4366a nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb606e716 nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb6a5d403 nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbabcfa95 nfs_fs_mount_common +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbb850565 alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbca090cc nfs_generic_pagein +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbfb42d79 nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbff9dacb nfs_file_splice_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc15b29ee nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc3d35451 nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4545dfc nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4686b28 nfs_clone_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4c4f3e6 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4ff1e9f nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5ef47d5 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc7590297 nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcd12ef30 nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcfaf6985 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcfb7f979 nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcfb9a05c nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd236b689 nfs_fs_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd23ab0ed nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2457ac0 nfs_remount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2c1169f nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2d946d8 get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd4e88b39 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd52bd6f6 put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd533eacc nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd7533b27 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd79dac48 nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd85a3e5c nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdb9a17e6 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdd4b7664 nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe3af0945 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe6fdd5c4 nfs_writedata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xea01b63f nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xec6d4138 nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xed2f2105 unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xede3707f nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeedf2192 nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf00e9d46 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf283ccfc nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf43b5752 nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5fb54d0 nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf6cffed6 nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfb7ee006 nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x05553ac2 nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x09135109 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0afcf972 pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0c4e750c pnfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x11bda27c __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1624172b nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x170f3ed6 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x17579fe5 pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1deeb193 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2187dac1 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x246a009a pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3406feb1 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x373d642a nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x374bd486 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x453de607 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5067280b nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5090c091 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x566d7874 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x56d14c87 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5941a4d4 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6038593a pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x65e4babc pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x665fa50e __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x678ca959 nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6d3cec28 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x75cb716d nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7ba0ac08 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7dacf780 pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8afe2ce9 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9c5b338b pnfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa4a14489 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xae210a7f nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb8903227 nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc18c1826 nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc311e331 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc49b5e0e nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd04aa13a nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdb620719 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdb813e84 __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xeb30a8f6 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xebfd6990 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf0cd6eb1 _pnfs_return_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf24e9380 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x18a7d14c nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x1d31a617 nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1284bb21 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1fd34cc2 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4224a79e o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x644764b4 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa3bc4d1e o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xac01c0b3 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xcbccb6ad o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x14d292fd dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3dd12711 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6938eb8c dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6c3334a7 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xad900c25 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xe8a92246 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x386f08ec ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x66b3bcab ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xc845fce0 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x69f4d508 notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x86897308 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x021957e1 raid6_datap_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0f8a2742 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x201d8ea3 encode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x29fa419f decode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x0867c15e garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x0e7d5f33 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x1e3e113f garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x2607aa74 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xaaecdae8 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xb2860aba garp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x228d2f63 mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x375ebc32 mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x63d3651f mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xe23f239c mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0xef063f47 mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0xfb2794e6 mrp_register_application +EXPORT_SYMBOL_GPL net/802/stp 0x3caeb6ba stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0xe5e6c1bf stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x9d1b7df5 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0xab121623 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/atm/atm 0xb09faf79 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xcfb6a3da unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x37598deb ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xb99cc42e bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0ee67b0b dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0f1a248a dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1b6ef3a4 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1bf3a492 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2476fbfa dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x29d8a05c dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x361ef431 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x39ede3f6 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3c89a34b dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3dea24b8 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x55eb00f4 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x574d5deb dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x576e1405 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5fc6337d dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x645143d6 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x71db8a27 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x82caa8aa dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8502c3b6 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x914a11d5 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9193ab65 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x91da1922 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0xab150a72 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb675e2d8 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc2c372ae dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc40104ba dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcb9916bb dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdc6dd7f6 dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdfebddf0 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe231ccf2 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe836a59b dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xecaa0670 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf15ccca5 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf71e6e30 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfba9c5bd dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xffd8809e dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x61a370bf dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9033faa8 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x96cc1a29 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa2f8d787 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xbbe0c381 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xc0b4efbc dccp_v4_connect +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x746c0027 unregister_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xbeb21697 register_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x1525bea7 gre_cisco_register +EXPORT_SYMBOL_GPL net/ipv4/gre 0x394c1ea3 gre_build_header +EXPORT_SYMBOL_GPL net/ipv4/gre 0x65a896cb gre_cisco_unregister +EXPORT_SYMBOL_GPL net/ipv4/gre 0xa2d7f170 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xe1fa90fb gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x275117e9 inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x50484664 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x9fb93db4 inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xa08aea2c inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xb828c0ef inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xbff426b3 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x0465976d ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x09b0226d ip_tunnel_get_stats64 +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x38ccd6a8 ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x3ec17a83 ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x4716d224 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x5de338ce ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7d81ba2e ip_tunnel_delete_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x93f76179 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xb513d3d8 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xb6a92f20 ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xb9826faa ip_tunnel_ioctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xe440b460 ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xeaec93a5 ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xef220e9e ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xcbcfc778 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xf527ca48 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_ipv4 0x60431600 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x612eb5d1 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x696a01ab tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa83af8ad tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd731631a tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe280d394 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0x78b24a88 xfrm4_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0xd5f1d2dc xfrm4_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x1b8b1776 ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x6de19815 ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x97db9d0d ip6_tnl_dst_reset +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xa883344d ip6_tnl_dst_check +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xfd2824e6 ip6_tnl_dst_store +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xf8e5ab3d ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_nat_ipv6 0xcec994ae nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0x17205b32 xfrm6_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0xa16bdb8e xfrm6_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x02e6181a l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x163c098a l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x29206ea5 l2tp_session_queue_purge +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x30abf594 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x39ead710 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4685ba8e l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5c943ba9 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x71b30cd4 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9d965a58 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa0340bd3 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa7bf6cb4 l2tp_tunnel_sock_lookup +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xaab7457c l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xaba53e3c l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc564871e l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd3bd76ef __l2tp_session_unhash +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe613f9b0 l2tp_tunnel_sock_put +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xea18883a l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0xf980c169 l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1d8b14d5 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x238af617 ieee80211_iterate_active_interfaces_rtnl +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3663a36d ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x44959d17 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4bf42798 ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x588dd582 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5a8116a5 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5d38f601 ieee80211_set_key_tx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xae75d5b8 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb13a8985 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xba5ec02a ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc5da105b ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xcf2ede6a ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd691526e ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf5ae3fc7 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x059b0092 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x12986b2c ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x1f3063a3 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x479c01e2 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4bdee581 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x508cf3a3 ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x51fd2178 ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6344eaf6 ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x72d0c7a6 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x91f50a09 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9455a327 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa1479b88 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa3916832 ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb03f6dd4 ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb059229c ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe63fb87a ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe6c780d2 ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xef13ebbe ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x3ed98594 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x87146726 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xceee9e52 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xe66f1979 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00358982 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01b1dee8 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01f84db5 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x04df60a8 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0acd73ca nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0aeda686 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e69735e nf_ct_l3proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0f055c9b nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x10a8f16a nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x14d66dee nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1c8d4775 nf_ct_l4proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1f699897 nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x230288d0 nf_connlabel_match +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x232d91f5 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2600f495 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x26da598f __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a113197 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2c512485 nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x320bc83b __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3225ba4e nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37386cac nf_conntrack_hash_rnd +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37f2f0e8 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3d44dfca nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x42acb063 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x42c8bdd7 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44443deb nf_ct_l3proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4cbe9f24 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d27a237 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x52a99ed8 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5bc9b10c __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5cab0df9 nf_ct_timeout_find_get_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x60a78ed6 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x678c1a70 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6bd49b69 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6ee15516 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fff8279 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x709ad2e1 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7183da63 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73edda49 nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7929ebd9 nf_ct_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a97f60f nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c864141 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d9d7a76 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fa422b1 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8076ec9d nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x843f053d nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x925b9cd3 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x988ecc85 nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9aeab327 nf_ct_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9ff66ed3 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa06863ac nf_ct_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3e23bd2 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa7b2944d nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xadc00c51 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xafa339a5 nf_ct_l4proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb26a5534 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb3d6ba58 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb42d323b nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb6eef960 nf_connlabel_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbddead55 nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc2bc2d27 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc2cbae89 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc31ac4bf nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc7009b36 nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc96ec85b nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf9fd2ac nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd0df1c04 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4978694 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6a6f137 nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6cf853b nf_ct_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd8501c5d nf_ct_timeout_put_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdaba6a9c nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xddd2c6a4 nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdff5ebac nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf7328126 nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf79c442c nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfeefd7df nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xff31f9b8 nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xffa2014f nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xffbc6f04 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x7e685b37 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0xe3739c15 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xbc072d18 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x04278b5a get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0c8dbbea nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x35c35404 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x37d038ad set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x706507a8 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x73210c2f nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9036a85a nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa609a35b nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xdbf7ca7e set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe4d35b57 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xc8b9d92a nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x2b41c840 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x74362363 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xe3ece128 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xfaf5d366 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xdbfa55f4 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xf3220282 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x294fa651 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x544e69a9 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7cac6849 nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc118cf33 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd2b3211c ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdd756619 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe2505a74 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xc1bdc79c nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xc30157db nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0d9bae4b nf_nat_l4proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x1250876c nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x131f636c nf_nat_l4proto_in_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x23ad73f0 nf_nat_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x4accf683 nf_nat_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x5e7a36c0 nf_nat_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7dc6ee27 nf_nat_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7e6254b9 nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fac7406 __nf_nat_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xcd2c744a nf_nat_l4proto_unique_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x11a006b5 synproxy_check_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x5b95b19d synproxy_tstamp_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x5f339439 synproxy_build_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x90298227 synproxy_init_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xb42e336a synproxy_options_size +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xcae406d2 synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xef7db50c synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x059c1a10 nft_register_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0fda3c99 nft_validate_output_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x2498815f nft_data_uninit +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3d49dab7 nft_validate_input_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5025035e nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x518ce61a nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x53b1aba4 nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x54f507d8 nft_unregister_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x6ee55c58 nft_do_chain_pktinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x903ec43b nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xb808691f nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xc9c8ca96 nft_validate_data_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xcfec4f32 nft_unregister_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe4543c5a nft_register_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf9d05b4c nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00f9219a nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0a0feeb9 nfnetlink_alloc_skb +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x258d7867 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7fa8259d nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8023751d nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8634d990 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc9564cc5 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x14a1e76b nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x21f6bba6 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x894bc636 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1dff29b7 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x68c849dc xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6c01e61c xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6f64b186 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x764c04f0 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa5ed948a xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb2534aaa xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb51f4d89 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb6ba2d33 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb96a1d63 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdde13857 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xecea4b0d xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfd9bb3b4 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x00204983 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x482b6a12 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xa8b3b6ec nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xdd3eb814 nci_spi_read +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xefae0f0e nci_spi_send +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x20ba1f4e rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x39737b1c rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x3d3fa302 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x3f134130 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x46b9f7c2 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x4f9eae1b rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x6700a1bd rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x6ac3863a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x6ad5588f rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x6b36be13 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7d3d36c0 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x7f07cade rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x80232457 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x83be55d8 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x94486b75 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x95247dfc rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x9b81e6c9 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xb7b911a6 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xbd5d9c36 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xbd7ba532 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0xbe83f70b rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xdd1d7b1f rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xde4c02da rds_trans_register +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x4926164a rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xd59da03c rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3b81924b svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5e48d82a gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf6a8b74b gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0132253a xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0138e8ae xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045834e9 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04bc3f0e xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x063cc859 rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c947b51 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0cb5e683 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12523c4d rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12ce88b2 rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19a26600 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a1be796 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1affdc86 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b56f377 rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d43785f svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1dedb9d0 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1edd4329 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x206374ff rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2065530d rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20661b81 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2074b167 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x221c15c1 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23c3487d xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x255e4785 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2563b848 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25a84c31 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x272c018d rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27ac5511 rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x290a4422 rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a48d980 rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b35f553 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b81ff38 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d6487cd rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ed645bf svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x305ad86d rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33c9fbc8 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33ecfd04 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34511195 svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35448c65 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x361e692d xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3646fb52 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37c2921b svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x382a2ce4 cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x384f9228 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3862c024 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3977aff9 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a103213 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a40aa70 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40a1a044 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41b7e5f7 gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x441fa4f1 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x473ed044 rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a2459f4 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ad765df xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4bc6f10e svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c27072e svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c810f74 xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f966406 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50849680 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5092badf sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5122be91 svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x522ed0df rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53e40e04 rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56bdc086 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5881d323 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58a608c5 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b55fcaf rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bb8926a rpcauth_key_timeout_notify +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c02da54 rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c0769be svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d123cc9 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e05dff3 rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6006a07c rpc_protocol +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60520e06 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63cd4e31 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x652bdaf9 rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66cdf67d rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a0ac379 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6af1d49f rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b2ed48e rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c2d593b cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d59543e auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x713213ec unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x729f34aa __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x734daaed svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74fd451f svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76fed917 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7708ced9 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77458cc0 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78280939 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78f7b379 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a510a2b rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e53abba rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f2f5303 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f8c8be7 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80951b28 rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84443e46 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x848d8b4b rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x881aad1d cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x881ca497 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c3e3c29 rpc_get_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e7896b9 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9132fb0d cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x91c212f4 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x922d8d6d rpcauth_cred_key_to_expire +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x928ddafe rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92c095a9 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x939033b3 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94652491 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94caa205 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x961a7a39 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x961bed2f svc_shutdown_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b75d64 rpcauth_list_flavors +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9af80c8f svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e6e20f5 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0682333 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa256f5a2 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4c02650 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6ec6135 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9398d5c rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac49e136 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadaa1d0b xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaee7c941 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf9e64b7 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xafe25c36 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0151e3a xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb015f9f9 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb04ea22b svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1dc48c1 rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2536cdf svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb66ded2c xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb7327044 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb7ae424a xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb87cc508 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbbdb5c6 sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbf2d153 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbdf2149e xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbea9105a rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbec8846e xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1290dd5 rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc25b8506 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc43f318f svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc665d0ec rpc_rmdir +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc67044d7 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8d49acc rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca078993 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcab2b2ee rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc5924ed xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf13e01b rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd04b66ca rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1b471eb rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd25f511e rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3108302 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5d6d44d xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd683e5e3 xs_swapper +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7a08742 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7ac52ef xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8387da9 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdaac93ef xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb1f937f xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc412c6e xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd34666f xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xddc9692e rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ac2bb8 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe253e73e xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2bf6846 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2c80d43 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe33f539f xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe446a774 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe45bb893 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe51fc8fa svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6ce4bf4 svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe82cdaaf rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe98a674f xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea3e9e1c rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb2b8165 rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeca16cec xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee1967a9 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee55973d rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee9dd5d5 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeee51d2 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2063772 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2f3bdea rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3c94442 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6a5c264 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7d2692a xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7e30457 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa74a69a svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb5a54b3 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd88f97d xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe2cfc2a rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0c79d5ef vm_sockets_get_local_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x131f8abd vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x15c0c57c vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x1915d8e5 vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2663cb64 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x404b131e vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x43daa8e2 vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x722a8843 vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x74e91915 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x751ff010 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7f730c80 vsock_core_exit +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x82293d12 __vsock_create +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x92694e4c vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x95aaa75b vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xb7867b6f vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbc7d51c7 vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd0f699d vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc8179d4a vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd49ebffb vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd95ac116 vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf593c40a vsock_pending_work +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf637bf38 __vsock_core_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x05fcf99a wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x07b70323 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0fe9bea1 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2bdb3a64 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4adb6ab2 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x5258677e wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6ad28bdd wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x918d908e wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xaae47bd6 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb6a9c513 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd2abe561 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd79f4cb6 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xeaf7df6f wimax_state_get +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x04548cf2 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x263de0c5 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x29f6bb84 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4ef68e99 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x50568c71 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x511eae4a cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x626b041b cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x66f22c33 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6fc9fcf9 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9aa8d359 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa1800851 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00778770 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x056bb269 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0a575945 xfrm_count_pfkey_auth_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0b9e5852 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x74e1a843 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7a8ca627 xfrm_count_pfkey_enc_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7c30b8c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x92dbc6c1 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xbc8b0f41 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xce7a55c1 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe122af95 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x0807acfe ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x1c733492 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xd420243a ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xe96cc001 ipcomp_input +EXPORT_SYMBOL_GPL sound/core/snd 0x3ca17104 __snd_printk +EXPORT_SYMBOL_GPL sound/core/snd 0x4906d396 snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL sound/core/snd 0x66060576 snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/core/snd 0xb7f424eb snd_kctl_jack_report +EXPORT_SYMBOL_GPL sound/core/snd 0xcca2beea snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0xcf2b8e1e snd_kctl_jack_new +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x9b165832 snd_compress_deregister +EXPORT_SYMBOL_GPL sound/core/snd-compress 0xba93821b snd_compress_new +EXPORT_SYMBOL_GPL sound/core/snd-compress 0xd2c72b34 snd_compress_register +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x04e1b99f snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x09e913c1 snd_pcm_alt_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x3e27bf98 snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xbcb27e43 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x0056922c snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x753a271a snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x82b67019 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x8aad97c0 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xc84b9ab2 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf9044d0a snd_ak4113_build +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x06d506f4 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x079a9069 snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0bb52c8a _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e2464b2 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x11c17cad snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x13e81d88 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14572352 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15b13289 snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x17052d03 snd_hda_parse_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d17f46e snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2111ab02 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x23edb85f snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x24922e6f snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27614e8c snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x28f2b8b5 snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2b9c4a87 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2be5fbbe snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x303dc27d snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x32217d3b snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33929672 snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34387522 snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3447dedf snd_hda_jack_detect_enable_callback +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x35410518 snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a6fc206 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c1efe12 snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c38e8d1 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3d450141 snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4381c1e2 snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x44af4482 snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x47058aba snd_hda_gen_spec_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4a18701a snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4a4bc5f8 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4cd901b1 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4e03cc9c snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5091b877 snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x51ec9d74 snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x52c7a10a snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x537c68e3 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x55af53ff snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5651e98a snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x56b90682 snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5760a2ea snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x578540fb snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x57927e80 snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x57f70f46 snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5990393e snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x59cbce29 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b8a65c0 snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5bce2316 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5dfb01b0 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ee05f69 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x60ed067e snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x63569c44 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x63c08727 snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x654b4a72 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x685b2618 snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x692c4d47 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x694ec21b snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6a2326e9 __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71b630d3 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76dc6871 hda_main_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x77260b91 snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x780ba6cc snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78ea7e78 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x79d4a1b6 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7bec1049 snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7bf6dba6 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7e53daee snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f411f1a snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8070a963 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x819c3874 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8243ce23 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x82bfdd40 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x837067b0 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8473fcf1 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84ba6884 snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84e29bfa snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x865c6695 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86635f93 snd_hda_parse_generic_codec +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x87029e59 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x871a6e44 hda_extra_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8855e5d3 snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b581279 snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4d3225 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x919a6563 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9243dc2a snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x932135f1 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x958dda67 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x97511ca2 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x983ac1f0 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9defc1f8 snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9f91a9b6 snd_hda_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa0cd926e snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa0dda271 snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa3cd3a13 snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa7d1430f snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa861d322 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa9aa9a41 snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa7d2dc0 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xacd0853b snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaee54c04 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb1f5cfd6 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb28f231e snd_hda_codec_flush_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb2d5371b snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb5aa18c7 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb619693b snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7125a82 snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7a05977 snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7d8ea6e snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbcaa1d12 snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbec16b20 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf33db3e snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf478daa snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc00d2d34 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc13b5b22 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5b8e409 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7787f7b snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7dd30d5 snd_hda_jack_detect_state +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd79bc78 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xce773ea8 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd031006a snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd2d6502b snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd384d5d3 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd53138df snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6c4afca snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc368369 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdfd528e8 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe0408c96 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe118de5d snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe16f8a0e snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe27af463 snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe3450a1a snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe49b2725 snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8235c38 snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8cdb01d is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeb9d1bd1 snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xec38905b snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed250c3c snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf08d7299 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf0bb7f13 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3383a7b snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3982685 snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf39fefed snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3e687a0 snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4ad6839 snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4c27ef0 snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf97f598e snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa233d61 snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfc410a40 snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd211c56 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd4d4e6a snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfef76105 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfff9847d snd_hda_get_nid_path +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x2b837854 atmel_pcm_new +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x904e5064 atmel_pcm_mmap +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x965ae55c atmel_pcm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00211cd9 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x014066d7 snd_soc_get_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x02aa509f snd_soc_add_card_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x050c2e15 snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06dceffb snd_soc_of_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x08413c30 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a408bf3 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a60775e snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a924c0c snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0cf9a9e8 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0f0826e3 snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1047a84b snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x11689ed0 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x12e36bc4 snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x13e07c0f snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x193920f4 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x20ccab40 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x25028aaa snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x25794030 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2638a742 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x271774be snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2928a53a snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29cce125 snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a2a48d7 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2ab4138a snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2d02ae39 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x309fcf19 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3417ccff snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x37553c5a snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x37560005 snd_soc_get_dai_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c95f566 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3d0774e5 snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3eb53a1d snd_soc_bytes_info +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x41d17407 snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x44115592 snd_soc_remove_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x45a55af5 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x47ebde88 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4cd452c3 snd_soc_unregister_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4e45e646 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x526a3aae soc_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52fcca44 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54776a88 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x58ffe1a2 devm_snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x593cf7a7 snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a299ff6 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a5a1a80 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5c0b06a4 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5d13f78d snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5dd8f7cc snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ee6f734 dapm_regulator_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5f68f933 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5f8f7ce3 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x60ee4f43 snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6150089f snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x625ebbda snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x677f1c61 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x67b8bf77 snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x67c7c93d snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ba68f50 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78bb1c16 snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78d6b3cb snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7996e18d snd_soc_dpcm_be_set_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7b67d01d snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7bbc9391 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7bbec8f8 dapm_mark_io_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ee453ba snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7fc3a287 dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80b55601 devm_snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80ebaf9b snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8573a56d snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x872364cc snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87bc8651 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87cab789 snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87f24004 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8812d720 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8897f848 snd_soc_add_codec_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x88d3f8a1 snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x89a640e7 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8fd2e744 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9024719d snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x91047f7d snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x912d2d43 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9239121d snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x925b1eed snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x93900bd7 snd_soc_dpcm_be_get_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9551504a snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x979c0cf2 snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x97e68b4d snd_soc_bytes_get +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9bc1d8c7 snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9df54a05 snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9e001570 snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa2818e53 snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa4cb0fa0 snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa6c110ea snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa78f3a7b snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa944f7da snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa9e8c3c5 snd_soc_bytes_put +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xafae2ed2 snd_soc_lookup_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb4b788c8 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6092d1e snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6d9288c snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xba96cf3b snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbb636812 dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe147aac snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbf922e51 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc10fafae snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc1e6ef1e snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc2788ed1 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3378cc5 snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc38e3382 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc654c919 snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc7d7acc2 snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc86369b9 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb268e96 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcd3b1281 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcde1e0a0 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcf7dbea2 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd269d409 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5a01329 snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd7ed8c99 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe0103ed1 snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe19a4a08 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe331e943 snd_soc_add_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4239b24 dapm_clock_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4b9c30d snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe75dc8a2 snd_soc_platform_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xea5e4038 snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeba7dd10 snd_soc_dapm_kcontrol_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf085818e snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf2db74d5 snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf6767bb0 snd_soc_put_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfe31a694 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xff197933 snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xff634e03 snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_file_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x001839f3 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x002d005f tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x0040d407 debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x008647c7 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x009304b6 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00a3fefb stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x00a91f8d free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x00b31ebc sysfs_get_dirent_ns +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00f1de78 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x010dcb5e pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x0112b91d ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x0165d8ce pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x0195fba9 btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0x01a3c307 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x01ad30d5 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x02068f8e crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x020bfe97 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x021949bb ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x021ebfda btree_update +EXPORT_SYMBOL_GPL vmlinux 0x023b78ee sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x023b9aeb preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x026ab55c regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x029c0c11 dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x02cce240 fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0x02eced5f pci_reset_bridge_secondary_bus +EXPORT_SYMBOL_GPL vmlinux 0x02fc3fc2 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x03277bf0 unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03462c03 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0x036503c5 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x036a9113 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0x037ce0d3 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x0388e8b7 pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x03bf1d5e gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03e51f79 ata_sas_port_async_resume +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x045b452f of_clk_get_parent_count +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x0468bed0 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x047341a0 sdhci_pci_o2_resume +EXPORT_SYMBOL_GPL vmlinux 0x04897aeb usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x04920877 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x04961630 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x04b5549c __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x04b89e9c rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04cf646d kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x04fd0ce4 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x053deaa5 sec_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x05496f75 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0574d249 regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0x0574f68d usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x058b582a vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x05a2cc54 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x061dee59 btree_remove +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x062ee722 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x0633c893 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x063904c7 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x067881dc relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x06b1caa9 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x06c05665 kvm_read_guest +EXPORT_SYMBOL_GPL vmlinux 0x06e4519b extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x070064eb crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x074c6e16 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x075676af dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x0762403c edac_put_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x07661720 pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0x076f0ca3 regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x077f3435 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x079109eb single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x079b3f95 regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0x07a33d8b mark_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x07a34a31 kvm_write_guest_cached +EXPORT_SYMBOL_GPL vmlinux 0x07ad0171 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07c3ebcf irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x07df1128 rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x07f300c3 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x085329fd sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x087ae0c8 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x0887efb9 kvm_release_page_clean +EXPORT_SYMBOL_GPL vmlinux 0x08bcf9c2 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x08c47386 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x08d39542 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x08d8b5fd rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0x08df741e rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x08f36ba9 xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0x090526cb file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0925543f da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x0932a071 tcp_peer_is_proven +EXPORT_SYMBOL_GPL vmlinux 0x09437748 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x09469482 kfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x0957d1f0 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x0962d0e8 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x099e6e8a irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0x09cf9965 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x09d96251 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x09da6201 nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0x0a3c15a1 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0a757661 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x0a7b58b5 kvmppc_kvm_pv +EXPORT_SYMBOL_GPL vmlinux 0x0a9dd867 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0x0a9fd3c5 gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x0ac449e8 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x0ad2db31 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x0ad8c644 thermal_notify_framework +EXPORT_SYMBOL_GPL vmlinux 0x0ae1fdb6 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x0af916f6 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0afd4610 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b090ba2 iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x0b14dd90 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x0b15f77e pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x0b1921d3 iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0x0b26e8c9 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x0b59390b __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0ba50c8e platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x0bd4ebf8 subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c136a50 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0c1c3628 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c432085 device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x0c48f357 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x0c900ecb rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x0cac53d4 wait_for_tpm_stat +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0cce0227 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x0cd38807 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x0d5706da xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x0d6a6b46 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x0d706d2e rh_set_owner +EXPORT_SYMBOL_GPL vmlinux 0x0d70f7e4 irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x0da5a8c8 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x0dbd0e20 of_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x0dcbaf89 napi_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x0dce0a25 kvmppc_hv_ops +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0de06988 cpu_first_thread_of_core +EXPORT_SYMBOL_GPL vmlinux 0x0de56548 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x0de99629 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x0df82907 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x0e00d950 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x0e0af088 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x0e1cabd6 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x0e3606cd regmap_update_bits_check +EXPORT_SYMBOL_GPL vmlinux 0x0ea13946 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x0eae36a1 dma_buf_kunmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x0eaf4fbf sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x0ed7a55e regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0x0ed9302e percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x0ef02ac0 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x0ef1207a blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0f0a7676 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x0f1d0908 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x0f751aea input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x0f99482d usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x0fad44f3 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x0fb1ce1a ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0x0fb2b395 css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x0fb36b9a cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x0fc01e9f static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x0fe112dc of_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x0fe6da1c rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x0fedb0bf palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0x0fff6c12 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x1008575b ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x100d10b4 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x103d99e6 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x104f3b45 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x10821eae ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x1084bd2b devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0x109fb17a arizona_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x10b08c68 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x10b7fd8c i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x10c174ea scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x10e28355 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x10e9817d n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x10fa59fc list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0x11082182 dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x1114011d threads_shift +EXPORT_SYMBOL_GPL vmlinux 0x1114bb2c scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x11238ad1 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x11286b7c sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0x11a55489 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x11be4ad3 trace_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x11cc7bef ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x11e57fd7 netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x1214a72f __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x12161036 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x121cd964 of_pci_range_parser_one +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x1220f90c pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x125e4019 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x1261fd00 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x12771051 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x128964b3 pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x128c669f usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x129bb5bb xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x12af7854 regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x12ea64be device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x12f9f87d usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x13282b90 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x1366e063 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x136a4ee6 btree_init +EXPORT_SYMBOL_GPL vmlinux 0x137079c2 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x1370bf81 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x137908fa xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0x138b8558 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x13921363 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x13ad55fe tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x13ad647f scatterwalk_bytes_sglen +EXPORT_SYMBOL_GPL vmlinux 0x13e0328a pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x13e5ea13 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x13ed1f68 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x142a8be4 of_clk_get_parent_name +EXPORT_SYMBOL_GPL vmlinux 0x144d9402 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x145296b0 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL vmlinux 0x14610679 cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0x14a40eea kvm_resched +EXPORT_SYMBOL_GPL vmlinux 0x14a74b54 regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0x14f0b6c6 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x14faa9cf dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x15233337 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x1525514e regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x152cbab7 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x153fedc5 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x15464628 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x1561eaef fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x157b5411 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x15aab19c input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x15c21e5e nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x15ce05df inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x15cfc141 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x15d27a46 device_del +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x162574a3 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x1652ca3d devm_pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x16642514 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x1667ed79 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x1668b98a srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x166a68c1 blk_queue_bypass_end +EXPORT_SYMBOL_GPL vmlinux 0x1674fd9f gfn_to_page +EXPORT_SYMBOL_GPL vmlinux 0x1682d86f pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x16b70603 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x16c45574 regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x16dbcc6a dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x16e36f04 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x16f89cb1 kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL vmlinux 0x1753a32f hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x17c11d8b device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x17c592ed register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x17c6017e irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0x17e6a797 devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x17ea4b7b ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x1803ae23 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x182ed058 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x1853653c btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1866cec2 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x18708c66 balloon_mapping_alloc +EXPORT_SYMBOL_GPL vmlinux 0x187287b5 nf_queue_entry_release_refs +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x1891ebb1 gov_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x18a27f34 jump_label_rate_limit +EXPORT_SYMBOL_GPL vmlinux 0x18c55fb3 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x18d882f1 spi_master_resume +EXPORT_SYMBOL_GPL vmlinux 0x18f7c7ac irq_create_strict_mappings +EXPORT_SYMBOL_GPL vmlinux 0x1908a751 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x190e495d __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x19150a78 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x191b672a usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0x192fe5ac gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x194dd5f5 pkey_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x195c364d hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x19800cf5 hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x19970d17 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19a9d86b ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x19b384a5 hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x1a082d69 max77693_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x1a2e7b4e rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a6e7b01 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x1a89f09a crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x1a8c5907 btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x1a8ecb65 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x1a90022b watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x1a9deed4 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x1aa008af kvmppc_emulate_mmio +EXPORT_SYMBOL_GPL vmlinux 0x1abc5a8d tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x1acef7d2 pm_freezing +EXPORT_SYMBOL_GPL vmlinux 0x1ae326eb relay_open +EXPORT_SYMBOL_GPL vmlinux 0x1ae84a53 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x1af3e2fb show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x1af8b17f pcibios_finish_adding_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x1afa4118 alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0x1b028561 pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x1b03ef19 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x1b356922 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x1b363b45 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x1b430771 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x1b52db1c probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1b85afc8 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x1b871b9f watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x1b94e6ec blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1b9b9d50 extcon_get_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x1bab249b rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x1bbe60bf thermal_generate_netlink_event +EXPORT_SYMBOL_GPL vmlinux 0x1bd06aab cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x1c05cc3b rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x1c2d5b59 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x1c352798 gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x1c4633f1 each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c9ebba4 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x1cab9970 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x1cbfb956 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x1cecbec3 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL vmlinux 0x1d2b34ac tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x1d320908 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x1d430ba1 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x1d58ae14 lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x1d73cd23 sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d9abb14 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0x1dc95a6a ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x1dd26f65 da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x1de054d5 of_clk_del_provider +EXPORT_SYMBOL_GPL vmlinux 0x1dfbcf4c mpic_msgr_disable +EXPORT_SYMBOL_GPL vmlinux 0x1e145e09 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x1e229361 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1e588d01 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x1e5b03dc pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e76daa0 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1eb14eba tcp_fetch_timewait_stamp +EXPORT_SYMBOL_GPL vmlinux 0x1eb1594f gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ec95ade vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x1edf9507 gfn_to_hva +EXPORT_SYMBOL_GPL vmlinux 0x1f118997 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x1f502465 fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x1f63a23a sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x1f7159f0 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f86e2ca crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1fae704a ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x1fc186b8 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x20178173 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x2023aae1 pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0x2023b04f usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x2070182c platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x20763120 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x2079b2aa ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0x209c8bdf hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x20a7cf60 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x20aff8f4 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20bea674 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL vmlinux 0x21601120 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x216977c1 __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0x21816f23 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x2193ca21 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x21b8a3af regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x21d36a03 kvm_hypercall +EXPORT_SYMBOL_GPL vmlinux 0x223b140e pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x22483512 device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x22547773 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22c64f89 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x2301d29c scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x230f4793 of_irq_parse_and_map_pci +EXPORT_SYMBOL_GPL vmlinux 0x23240a8b inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x23357dcf vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x2361d08d mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23799e56 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x238920f9 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x2392bc6e pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x2395a089 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x239d5325 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x23b7019b cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0x23cd4407 sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0x240dbb51 of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x24353e42 isa_bridge_pcidev +EXPORT_SYMBOL_GPL vmlinux 0x2461ba01 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x249b1957 tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0x24a6203d xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x2536bf23 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x255dffd4 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x255f9003 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x2568b689 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x2571be9d sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x258b4458 udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0x258bf650 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x259060d0 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x25a988a4 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x25bd0cb7 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x26344be3 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x266232ed usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x268e64a6 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x268efd43 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x2691412e boot_cpuid_phys +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26bf919c usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26d5307d platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x26e0b52c devm_usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x26f4f9d1 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL vmlinux 0x2711fba7 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x272d880e device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x2748789a kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x27658732 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x2776affd blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x279e789b bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27ed7d9d wm8400_block_read +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27f98a45 wm5102_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x284d5a7c simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x284e1bd8 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x2859a3d2 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x285a5f9d percpu_ida_free +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28b5a4d7 da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x28fcd419 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x290f20e7 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x291115cf __kvm_set_memory_region +EXPORT_SYMBOL_GPL vmlinux 0x293ffea5 da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x294bc575 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x29a1353a irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x29c36363 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x29cfce8f power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x29d632db spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x2a174cdd locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x2a3448e1 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x2a3edc5d irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x2a5e81e1 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0x2ac6ab46 perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0x2aca5e58 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0x2ad1ece4 zs_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2adc78da pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2ae213a0 pwm_free +EXPORT_SYMBOL_GPL vmlinux 0x2aec76c0 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x2b4aa934 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x2b5c303b smp_send_reschedule +EXPORT_SYMBOL_GPL vmlinux 0x2b607170 ktime_sub_ns +EXPORT_SYMBOL_GPL vmlinux 0x2b7877e1 input_class +EXPORT_SYMBOL_GPL vmlinux 0x2b7a574f md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x2b7a6de8 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x2bb1f2ec pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x2bd13585 regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0x2bd8a299 cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0x2bfaef4e clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0x2bfd32ca sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c20b16d pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x2c575533 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x2c661df9 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c81198a arizona_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x2c97c085 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x2c9d8f45 nl_table +EXPORT_SYMBOL_GPL vmlinux 0x2cbf4159 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2ccafc33 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x2cd6ef3e css_next_child +EXPORT_SYMBOL_GPL vmlinux 0x2cd9d255 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cfb189f inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x2d028fc9 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x2d16905d pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0x2d17a0e1 cgroup_taskset_size +EXPORT_SYMBOL_GPL vmlinux 0x2d1a19c3 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d36c57b rh_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d55d5fb sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d6bba0d hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x2d6e9b75 tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x2d9a30e9 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x2dad331c blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x2dbdbdea rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2dc5a6d1 btree_last +EXPORT_SYMBOL_GPL vmlinux 0x2deb6288 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x2dfc1465 tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0x2e110c45 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x2e1782b7 ping_err +EXPORT_SYMBOL_GPL vmlinux 0x2e1e70a7 devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e4dc469 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x2eb18860 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ec02d49 of_pci_find_msi_chip_by_node +EXPORT_SYMBOL_GPL vmlinux 0x2eed8c6a ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x2f0ce5fe usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f4d641a extcon_update_state +EXPORT_SYMBOL_GPL vmlinux 0x2f570b47 blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x2f5b8fe1 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x2f6404b3 rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x2f6fef6d class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x2f807eeb get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x2f848d58 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x2fbdc955 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x2fe0f792 serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0x2fe7ecf0 devm_regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2ffb5ff7 btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x3006b6f5 of_pci_get_devfn +EXPORT_SYMBOL_GPL vmlinux 0x300a3979 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x300fd52e device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x3014a783 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x3035ff6d fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3050ec18 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x305c67cd regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x30718733 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x308446d8 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x308b733a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x309313c7 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x3094b51d perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x30a49790 reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30a9884a uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x30b20a5b key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x30ff0654 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x31087993 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x310ff02b tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x3143d694 da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0x31491208 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x314d0486 __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x3150ce90 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x315d5457 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x31859993 of_irq_to_resource_table +EXPORT_SYMBOL_GPL vmlinux 0x31913961 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x319e7d07 ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x31a60dd5 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x31b92a7a devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31d53664 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x31d98c7b __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x32101226 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x3256ca45 gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x32677af9 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x328995b5 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x32924a4d scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x329ab5a5 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x32afb6f5 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32ca8b35 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x32d7c992 unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0x32e405f1 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x32ed2778 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x32fd447a monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0x330ada5c bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x332492ae of_pci_msi_chip_add +EXPORT_SYMBOL_GPL vmlinux 0x332f3da2 sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x336c92e1 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x337786fa usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x33a772b7 user_update +EXPORT_SYMBOL_GPL vmlinux 0x33a94a45 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x33e3b85f usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x33ec5e2b smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x340c7f89 pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x342763fe pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x34854090 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x34ac50a4 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x34bf44c6 cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x34c8517c class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x34e90ba3 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x34ef40df usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x351528fa tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x351b51ce rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x3533eecf __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x3536c63d noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x353d2c55 dma_buf_vmap +EXPORT_SYMBOL_GPL vmlinux 0x35663933 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x357bbe60 task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0x3586bf45 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x358ff60f twl_get_hfclk_rate +EXPORT_SYMBOL_GPL vmlinux 0x35a2ced2 rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0x35a920b0 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x35e2e0eb dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x35f10f43 nfq_ct_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x35f165f1 devm_reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x360a6343 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x3633ea30 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x363a6829 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x369ec15f __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36a64e5c percpu_ida_free_tags +EXPORT_SYMBOL_GPL vmlinux 0x36b506b9 system_trusted_keyring +EXPORT_SYMBOL_GPL vmlinux 0x36e406df usb_string +EXPORT_SYMBOL_GPL vmlinux 0x36eec04f regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0x36eec60c inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x379ab8b4 ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x37af374b gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x37ba4d71 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x37d2c2c5 rh_dump_blk +EXPORT_SYMBOL_GPL vmlinux 0x37d2c762 spi_master_suspend +EXPORT_SYMBOL_GPL vmlinux 0x382aca22 ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x38618305 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x38a38224 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38bca65f da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x39293fe6 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x393d7a6e pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x3950aaf1 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x396111cb pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x397ef9ad crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x39a90c79 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x39acba26 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x39bba489 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0x39cf9889 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x39e381bf flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a345d81 dma_buf_kunmap +EXPORT_SYMBOL_GPL vmlinux 0x3a375d97 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a91e374 blkg_lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x3a95e9cb stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x3ab06f95 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3ad82802 of_property_read_u32_index +EXPORT_SYMBOL_GPL vmlinux 0x3aec261e blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3b43ebee tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0x3b4c3d02 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3b5b9c4f ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x3b671288 rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x3b9cb2c3 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x3baf6447 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x3bd04e76 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x3bdb5670 rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x3bfc7202 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x3c47b621 regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0x3c4e7308 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x3c7ddb3e dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x3c8424a0 clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c8a069c pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x3c8d28cc of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3ccffec8 of_irq_parse_one +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cf4b2c5 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x3d323110 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3d4c8d32 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x3d517104 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x3d6bef80 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3d7db53d kobj_completion_init +EXPORT_SYMBOL_GPL vmlinux 0x3daa8590 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x3dae1c3e uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x3db518fe rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0x3dc526a9 arizona_of_match +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3df59f19 alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0x3e255a58 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x3e2e543d cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x3e2fa31f wm8997_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3e4bc864 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e716271 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x3e971b8d regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x3ecbd363 regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x3ed63748 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x3edac39e led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x3ef9c72d con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x3f0db67a kvmppc_handle_store +EXPORT_SYMBOL_GPL vmlinux 0x3f19b587 clk_register +EXPORT_SYMBOL_GPL vmlinux 0x3f1f040a wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x3f31bd3f tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x3f55fee5 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x3f583614 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3f765df9 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x3f94d264 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x3fa2376c transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x400bb796 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x400fd453 tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4045c494 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x408f34ec wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40d529ae rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x40fa65f6 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x410c41e1 clk_register_divider +EXPORT_SYMBOL_GPL vmlinux 0x411ff09a fuse_get_req_for_background +EXPORT_SYMBOL_GPL vmlinux 0x41323daf __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x413cdb56 dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0x41491afc split_page +EXPORT_SYMBOL_GPL vmlinux 0x41761d3f inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x417e8afb tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x41ab32d7 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x41ad9df2 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x41c54658 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x42172e52 ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x424bebbd blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0x425c1c0b ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x426a4be4 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42a08dd7 subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x42b359a7 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x42bd503d pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x42c9cddf da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x42d5c520 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x42da0d58 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x42e93d42 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x42f75d9b skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x430e5257 of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0x431ccfb5 pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0x4367ed07 unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x43969dbe rh_alloc_fixed +EXPORT_SYMBOL_GPL vmlinux 0x439a4c0d regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x43a53735 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x43a5e39e ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x43b466b0 gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL vmlinux 0x43b80193 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x43bf36d0 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x43c7b817 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x43c94be3 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x4411564a max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x4434a513 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x44402331 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x44811e0c ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x448bac88 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x44b90f3d fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x44bcc034 usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x44d3f331 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x453d52cc debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x453fa9d8 lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0x4540e2c9 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x454c15ae __smp_call_function_single +EXPORT_SYMBOL_GPL vmlinux 0x456523fa inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4576c46c netlink_alloc_skb +EXPORT_SYMBOL_GPL vmlinux 0x457b77ca of_fixed_factor_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0x457e90f0 irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x45a29fd1 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x45af1d97 regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x45bdb81c debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45cef539 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x45d96120 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x45dc2d23 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x460f7531 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x4637ecf1 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x464163d0 dma_buf_mmap +EXPORT_SYMBOL_GPL vmlinux 0x46608ddc class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46732387 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x467333ca rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x4688c96a usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x46953b03 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x46bbd372 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x46ec3fe9 napi_by_id +EXPORT_SYMBOL_GPL vmlinux 0x46f43487 usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0x46fcb3f8 bio_trim +EXPORT_SYMBOL_GPL vmlinux 0x470fa426 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0x4710e190 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x4755ba77 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x476d8d7f i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x477a6ec6 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x477e4b71 ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0x47875589 kvm_write_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x4792f318 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x47994fa2 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47b21077 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x47c3e5e5 lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0x47ce9110 regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0x481a40fe fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x48388d8e rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x4843213a cpu_remove_dev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x484c9395 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x485996d5 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL vmlinux 0x4877df22 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x487a7348 devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x48a7b11f unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x48b0a108 kvm_init +EXPORT_SYMBOL_GPL vmlinux 0x48ca8947 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x490f599e pwm_disable +EXPORT_SYMBOL_GPL vmlinux 0x4982a57f probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4983f640 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0x49880299 pci_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x498d293a trace_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x499f83bb save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x49bccc91 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x49d7c78d crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x49e29f4c ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x49f83aa0 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x49ff0a48 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x4a375abb page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4b0d6ea6 pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x4b17b645 of_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x4b3bb262 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x4b3dee14 pwm_set_polarity +EXPORT_SYMBOL_GPL vmlinux 0x4b5ed307 perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0x4b98827c rh_init +EXPORT_SYMBOL_GPL vmlinux 0x4bb28d54 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4be5d5a8 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x4c2e1f24 clk_disable +EXPORT_SYMBOL_GPL vmlinux 0x4c37c22a __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x4c4774a1 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x4c47f540 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x4c4d72b8 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x4c602bf1 __blkg_release_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c892b41 crypto_lookup_aead +EXPORT_SYMBOL_GPL vmlinux 0x4ca4c9df clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x4ca9e25d ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x4cb114b2 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x4cbd9681 pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0x4cc010ea pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0x4cc6d9ef spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x4cc6f43d blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x4d106cc7 ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x4d10a964 pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x4d172ccb ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x4d23e35b key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x4d2d45f9 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x4d47ffd1 devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0x4d7ec5aa usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x4d8f5538 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x4dc22ed8 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4df3dc17 powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e242f5f pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x4e4c818d serial8250_rx_dma +EXPORT_SYMBOL_GPL vmlinux 0x4e650db5 alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x4e86c490 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x4e9218da regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x4ea11c69 dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x4eb55b2f fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x4ec324e0 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x4ed3eb8e serial8250_tx_dma +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f020dee public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x4f446155 devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x4f64d682 usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x4f6fec88 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x4f72173c alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0x4f764c15 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x4f881b16 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0x4f9cd872 regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0x4fcd6c7d gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL vmlinux 0x4fce52f0 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe03229 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4fe65760 regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x5019239b usb_bus_start_enum +EXPORT_SYMBOL_GPL vmlinux 0x503062fb skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x504fcc0c use_mm +EXPORT_SYMBOL_GPL vmlinux 0x50601122 of_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x506691f1 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x5068f518 debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0x506cc085 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50b8beb4 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x50bad538 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x50c7c933 regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50cb47be fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x511eb95c irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x51846493 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x51b65a26 rtc_lock +EXPORT_SYMBOL_GPL vmlinux 0x51cc211e vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL vmlinux 0x52212010 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x52220eeb srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x52396dd1 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x5255475b kvmppc_prepare_to_enter +EXPORT_SYMBOL_GPL vmlinux 0x5287117f do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x5299ce6a rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0x52a148ae bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x52c85811 thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x52f82a6c tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0x52f9f0d2 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x53111274 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x5332ecd0 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x5335dd11 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x535aeea7 ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53c6f866 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x53dcfba4 device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x53e3639c __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x5406ec8f posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x5469427c kvm_set_memory_region +EXPORT_SYMBOL_GPL vmlinux 0x546c5565 ppc_tb_freq +EXPORT_SYMBOL_GPL vmlinux 0x54740eb7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54b85b63 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x54e7da90 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x550303ea ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x552af79d device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x552cf1e1 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x555ee559 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x55921498 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x55ad7c48 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x55be0b28 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x55c159ed wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x55c77526 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x55d8133b ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x5613e8df devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x561e4b77 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x5622773a kvm_read_guest_cached +EXPORT_SYMBOL_GPL vmlinux 0x562c6b8c class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x562ec3df irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x56302e15 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x5648fb64 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x565e8f7f fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x567f4046 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x56886b19 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x5692386f gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56bf703c rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x56d697ce cpu_up +EXPORT_SYMBOL_GPL vmlinux 0x56e43771 edac_subsys +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x57231f45 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x572ce8b4 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x5742ed5b led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x5745c678 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x575338e1 dma_buf_export_named +EXPORT_SYMBOL_GPL vmlinux 0x576a7be8 pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0x57830ba1 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x578f2061 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57ab1370 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x57c2cdef usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x58221b84 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x583f246a regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x58413099 ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x58432f84 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x585284a0 regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x58785a25 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x587cdc28 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x588542cb devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0x588be8a6 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x589e4569 syscon_regmap_lookup_by_pdevname +EXPORT_SYMBOL_GPL vmlinux 0x58ba9be3 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x58d62507 task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x58ded0f7 mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x58e20036 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x59169f8c vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x593b6565 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x5947abbe max77693_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x594b4487 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x5960aff8 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x59a6e91d clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x59c1d1c8 key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0x59dcaae9 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x59e2743e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x59efb80c __netpoll_free_async +EXPORT_SYMBOL_GPL vmlinux 0x5a1cb493 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x5a3818a8 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x5a63edf3 sock_update_netprioidx +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a8f3b69 of_irq_parse_raw +EXPORT_SYMBOL_GPL vmlinux 0x5a9468b2 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x5a9d35ec skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x5ae63475 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x5af5967e pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x5afb5449 regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x5b0d97e2 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x5b181bb2 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x5b4e379c of_prop_next_u32 +EXPORT_SYMBOL_GPL vmlinux 0x5b505192 flush_fp_to_thread +EXPORT_SYMBOL_GPL vmlinux 0x5b6decfc usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x5ba03e23 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x5ba61da3 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x5be3a75a gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x5c14c1fa register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x5c203bcf tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x5c222ff5 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x5c6e4c26 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x5c88b42b fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x5cabdced dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5cd11627 gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x5ce80bc8 usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x5d003afc find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x5d12e48f input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x5d3a174f pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x5d7ab3a2 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x5d7ec900 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x5daddaea clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x5dd2836a irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x5e2f5cf9 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x5e374f69 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0x5e414a85 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x5e51cd74 swiotlb_nr_tbl +EXPORT_SYMBOL_GPL vmlinux 0x5e7b088f regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x5ec26a00 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f24a0f3 ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5f419491 gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x5f547868 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x5f671343 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x5f68d0ce usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x5fa7f080 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0x5fb61a98 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x5fe4d360 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x602680b9 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x6033fb2a wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x6062f759 irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x60785c63 rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0x6094685f wm8997_irq +EXPORT_SYMBOL_GPL vmlinux 0x60969051 blkg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x609e7bfb mdio_mux_init +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x60a46a48 pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x60b40ebd yield_to +EXPORT_SYMBOL_GPL vmlinux 0x60ba0eb6 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0x60ca36e3 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0x60f025fd __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x61302f12 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x613b7ab7 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x6148a31a driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x615fd917 dev_get_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x6163f9b9 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x616cc5b0 arizona_clk32k_enable +EXPORT_SYMBOL_GPL vmlinux 0x6181f422 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x619cea1f usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x61a90c54 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x61b74c7c tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0x61c3cbe6 ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0x61c80156 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x61f1d9f2 cgroup_is_descendant +EXPORT_SYMBOL_GPL vmlinux 0x61f64132 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x62341db8 sk_unattached_filter_create +EXPORT_SYMBOL_GPL vmlinux 0x62398e3d kvm_vcpu_kick +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x62657277 dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x626aab56 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x62826f08 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x62e7788e of_scan_bus +EXPORT_SYMBOL_GPL vmlinux 0x6318757f mdio_mux_uninit +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x633083cc crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x63813834 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x6390efda of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x6397813a crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x63984947 kvm_put_kvm +EXPORT_SYMBOL_GPL vmlinux 0x63a1304f kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x63a5e504 sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x63b60c33 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x63c3c463 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x63e6a0d6 rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0x63f27f7b kvm_release_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x64193a51 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x64253e42 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x64256424 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0x6428da4f rh_attach_region +EXPORT_SYMBOL_GPL vmlinux 0x646f398e sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x64a9d19b kvm_vcpu_cache +EXPORT_SYMBOL_GPL vmlinux 0x64b96ff5 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x64c14b09 wm5102_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x64eb3f19 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x64f0f38f ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x652b958e ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x652cb62e dma_buf_vunmap +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d0a04c securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x65f23885 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x65ff18dd transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x66190e3d fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0x662a0c3f x509_get_sig_params +EXPORT_SYMBOL_GPL vmlinux 0x663cdaa5 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x6644fad2 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x6679dcc7 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6694689d debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL vmlinux 0x66ad89f4 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x66afb53b unix_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x66b9fd9f usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x66d07a14 lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x66d15378 PageHeadHuge +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e114e4 class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x66e6b41f spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0x670f556d spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x671f389a fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0x6747ca7b i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x674ad14f uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0x674e13e1 public_key_destroy +EXPORT_SYMBOL_GPL vmlinux 0x67643d26 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x678782d4 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67dc5390 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x67dd69c7 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x67eca93d verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x6812cf8d __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x687934e9 gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x688b4903 sec_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x688bbad4 da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x68956406 static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x68c33765 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x68efe951 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x68f0c291 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x68faa117 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x6904e498 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL vmlinux 0x69216e52 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x6924b199 usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x6945725e mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0x694d8430 cpufreq_governor_dbs +EXPORT_SYMBOL_GPL vmlinux 0x69566ef1 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x697a420c timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x697cbbb4 threads_per_core +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x6998c13b md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x69baf8d7 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69f4e764 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x6a5a48a8 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a5ff6cf bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6a6553de serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6a9fed6d crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0x6ac477b5 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x6b09a392 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x6b263b95 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b48a910 switch_booke_debug_regs +EXPORT_SYMBOL_GPL vmlinux 0x6b5b21c5 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x6b66d721 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x6b6f6170 devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6b9a3912 fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0x6b9e7ad7 of_clk_src_simple_get +EXPORT_SYMBOL_GPL vmlinux 0x6baa4a9a ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x6bacb073 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x6bb725dd subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6bbc4012 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x6bd96b3c disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x6c1b09ab gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c749afe __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x6c7ebcae stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cbb7873 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x6cc59fd4 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x6ccbc322 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x6cd21997 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x6cd4ea62 wm5110_irq +EXPORT_SYMBOL_GPL vmlinux 0x6cf28397 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x6d183496 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d31e93b tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x6d7edf21 gpio_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x6d8ff4cf fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6d9e5425 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x6da7ef43 kvm_set_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x6de79062 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x6e04a077 usb_bind_phy +EXPORT_SYMBOL_GPL vmlinux 0x6e1fb8f7 extcon_unregister_interest +EXPORT_SYMBOL_GPL vmlinux 0x6e2fee67 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x6e43c7f9 pwm_can_sleep +EXPORT_SYMBOL_GPL vmlinux 0x6e595c60 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x6e6d80a2 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6eac9da5 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x6ed91dbb pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x6eeb0368 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f73496a skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6f981efd dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6f9971c1 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x6fa5680c fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0x6fdd4e23 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6ffe9c33 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x70049f4b sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x7006d72d dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x700ec5e9 blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0x701e6328 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0x70268dc4 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x70311792 device_store_int +EXPORT_SYMBOL_GPL vmlinux 0x70612875 cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x70727411 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x7072f983 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x707aae5d skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x709b1caa regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x70b5a87a disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x70bb651d __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70e605c3 pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x70efd5c2 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x70f11767 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x713ef9b7 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71621fe0 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7166789d fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x71930ed3 of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x71a182dc generic_access_phys +EXPORT_SYMBOL_GPL vmlinux 0x71bcf06c ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x71d59b4e pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x720dce05 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x721c40d2 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x723374f8 pci_bus_sem +EXPORT_SYMBOL_GPL vmlinux 0x72459936 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x726444f9 regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7268233f put_pid +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7279f255 rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0x727d4a41 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x72848b92 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7286a228 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x72a3ddcd ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x72ce2347 ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0x72ce341d dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x72d596c1 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x72eceab6 cpufreq_table_validate_and_show +EXPORT_SYMBOL_GPL vmlinux 0x72f2fe52 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x72fbb2f0 __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x73222c3a md_stop +EXPORT_SYMBOL_GPL vmlinux 0x733413dd ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x7377050f fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73bc75a5 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x73c832f2 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73f78029 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x741015cc sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x7422c95e gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x742cab4d rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74594005 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x745b059f crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x7464ea38 dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7474a5b3 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x748aee11 pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x7490f515 mmc_send_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74b5982d mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x7502254e __mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x750dae64 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x751d98e4 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x751f12cc do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x75382700 od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x755ffae8 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x758a782e blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x7591df8a br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x75af8193 fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x75be54f1 ping_seq_fops +EXPORT_SYMBOL_GPL vmlinux 0x75c2b9f1 memalloc_socks +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75ccdf84 regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x75f2a044 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x76149400 devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x765a6d02 kvm_flush_remote_tlbs +EXPORT_SYMBOL_GPL vmlinux 0x76845ad2 regmap_update_bits_async +EXPORT_SYMBOL_GPL vmlinux 0x76b0feb9 nfq_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x76bfa98e devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x76d07d6e gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x76e2472e dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x76ebc963 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x770c2a42 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x771a9f46 alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0x77214cea sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x7729cbdd task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x77470c1e usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x774c1315 __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x775df4ff ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x77827c44 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x77879290 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x7804f22d sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x7811c476 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0x782627fe usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x7865a08b class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x787e2215 pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x79154842 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x7992827d blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x799e4eec rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x79a39b5c fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x79c480da rh_dump +EXPORT_SYMBOL_GPL vmlinux 0x79d858d6 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x79f11f6a ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x79f5d325 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x7a0ed497 tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0x7a7a59b1 __netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7aa5640f crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL vmlinux 0x7ab3ca18 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x7acdf231 ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0x7adb4728 cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7ae63951 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x7afdec90 css_next_descendant_post +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b1c5e8e init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b78cac2 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x7b977c47 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x7b990ffd rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0x7bc93cfa __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x7bd5875d unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x7be265b0 usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x7be91669 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x7c10ecbf wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x7c226301 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x7c227088 clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x7c271f60 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x7c299029 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x7c346357 pkey_algo +EXPORT_SYMBOL_GPL vmlinux 0x7c3d94e3 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x7c858f9f replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x7c936fcd pwm_config +EXPORT_SYMBOL_GPL vmlinux 0x7cbdd693 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x7cbf250b ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x7cc1b7fd max77693_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7cc7de1c x509_check_signature +EXPORT_SYMBOL_GPL vmlinux 0x7cd603ac shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ce5b92a gpiod_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d172323 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x7d36e534 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7d397cc7 gpiod_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d6172fe unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x7d640b58 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x7d7c76b5 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7d852a37 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dd12fac register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7dea5370 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x7df7ec6e regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x7dfb9c08 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x7e06d275 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x7e17ba7b klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x7e2d1b90 extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7e402a48 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e766f52 cpu_add_dev_attr +EXPORT_SYMBOL_GPL vmlinux 0x7ec2aa0a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x7ec669a9 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x7f008202 btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7f033932 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x7f7bc710 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x7f9cbe05 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x7fa4b4a2 of_pci_parse_bus_range +EXPORT_SYMBOL_GPL vmlinux 0x7fae7604 __mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x7fbca519 irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x7fc012f5 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fc672f8 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x7fea112a mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x8023d823 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x804b900d extcon_register_interest +EXPORT_SYMBOL_GPL vmlinux 0x804d24aa pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x804f631f cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x80671309 cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x809fc1dc sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x80b75b7a vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x80d05f81 __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x8110255f device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x81144023 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x8140842a gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0x8148f2e1 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x814c9032 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x817a6f3b kvm_clear_guest +EXPORT_SYMBOL_GPL vmlinux 0x81b503b3 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x81c4f33e platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x81d5dba7 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x81e64fcb vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x81f45c82 of_usb_get_maximum_speed +EXPORT_SYMBOL_GPL vmlinux 0x8200bbd3 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x8201c6e4 cm_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x821ebdf4 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x8266407f kvm_vcpu_block +EXPORT_SYMBOL_GPL vmlinux 0x8275ffc6 rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x828ca338 dma_buf_unmap_attachment +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82be27b1 ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x82c2fb6e fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82eae763 devres_release +EXPORT_SYMBOL_GPL vmlinux 0x82f3f804 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x8318eb66 clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x831b67be power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x83372d46 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL vmlinux 0x834616bb sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x83564c24 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x836d61d0 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x83a5ae2e __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x83d48030 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x83f5a0e1 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x83f7243a pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x84065f70 dma_buf_kmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x841bc091 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x841da239 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x84203297 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x8420bccd cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x8430efa2 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x8438e0d7 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x843d19f0 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x844b724b exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x848c5ea3 regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0x84ad6556 balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x84d05ce1 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x84d22dfa mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x84e4ca15 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x84e65690 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x84fde72f inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x8510545a rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0x852e568d of_get_nand_ecc_mode +EXPORT_SYMBOL_GPL vmlinux 0x852e8480 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x853811bd zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x85563212 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x856629e7 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x8574ca6c gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x8575190b __class_create +EXPORT_SYMBOL_GPL vmlinux 0x8579f310 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x857e02fe ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x85b14d33 clk_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85ca346f i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x85cf1695 kobj_completion_del_and_wait +EXPORT_SYMBOL_GPL vmlinux 0x8607027a ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x862b832a bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x86311629 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x8641538a sdhci_pci_o2_probe_slot +EXPORT_SYMBOL_GPL vmlinux 0x865a20ea relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x866b9687 wm8997_aod +EXPORT_SYMBOL_GPL vmlinux 0x867a0792 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x868cf4fb public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x8694482c list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0x86d47e78 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x86d847f7 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x86dc070e ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x86e46687 ping_proc_register +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86f9baf1 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x873176e3 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x875c6e2c device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x876bbde1 ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x877ad796 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x87839590 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x87984b16 __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x87a49ec7 usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x87bb4e32 of_usb_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x87bebae2 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x87e8c60a device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x8804af3d usb_anchor_suspend_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x8808c53c dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x880a0be0 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x88390278 regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x88580910 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x8872cc5d device_attach +EXPORT_SYMBOL_GPL vmlinux 0x8873d04d mpic_subsys +EXPORT_SYMBOL_GPL vmlinux 0x888d821f devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x8892e6a4 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x88a55eb9 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88ab8310 device_create +EXPORT_SYMBOL_GPL vmlinux 0x88b5647c trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x88d16247 usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x890067cd relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89908a80 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89c138c1 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x89d250cd sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x89d3bde8 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x89e5c518 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x8a04b9fe tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x8a0690e9 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x8a0a74c8 kvm_clear_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x8a18f92f rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x8a2b14ba wm5110_aod +EXPORT_SYMBOL_GPL vmlinux 0x8a7fbd7e md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x8a849751 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8a94cff4 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x8a9d65d6 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ad81ef8 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x8ae152b5 of_get_nand_bus_width +EXPORT_SYMBOL_GPL vmlinux 0x8b5cf9e1 sdhci_pci_o2_fujin2_pci_init +EXPORT_SYMBOL_GPL vmlinux 0x8b70e8ea __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x8b93e2c5 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x8bf626a7 rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c3bdbbd usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x8c6ea363 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x8c946c9a sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x8c96ad5d balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c9a607a device_reset +EXPORT_SYMBOL_GPL vmlinux 0x8c9e18b0 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x8cb90483 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x8cbc007e hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8cffee1f tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x8d19e500 device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x8d85366d raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL vmlinux 0x8da80502 pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x8dedda54 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x8dfd5821 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x8e02496e crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL vmlinux 0x8e2389df device_add +EXPORT_SYMBOL_GPL vmlinux 0x8e2c4c8b scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x8e2e82ff da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0x8e3f5d1c ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x8e5eadf4 arizona_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x8e7705d4 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x8e79bcf9 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x8e864edd cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x8e86bc06 bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x8e955c8c dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x8e9c7933 gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x8ecda9b3 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x8effebd3 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x8f09e1d3 pci_restore_ats_state +EXPORT_SYMBOL_GPL vmlinux 0x8f0c7acb devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x8f1ff509 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x8f3b7b30 devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x8f652ac5 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f78056f led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x8f8e53b9 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8f902a2c gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x8fc0ba61 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x9009c500 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x90228869 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x902ecc84 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x903fb24d ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x904b0fce list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90640328 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x90705b7f syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x9077d5ea usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x908ab869 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x909c14ac fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x909e979e tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90d7039f netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x90e5fd2d usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x91286982 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9157d814 inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x916fadcf usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91a2c02e regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x91be14a3 sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x91d5345a wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x91eb612c usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x91ecdbcb __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x91f08350 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x923200ce devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x924749dd stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x928825f9 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x92b184d5 dma_buf_detach +EXPORT_SYMBOL_GPL vmlinux 0x92b36a84 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x92b4c119 dma_buf_map_attachment +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92c9f3d8 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x92cee48d thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92db8f68 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x92e47aed __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x92f444bd rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x92f586a2 of_get_named_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x92f624a8 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x92fea509 kvmppc_sanity_check +EXPORT_SYMBOL_GPL vmlinux 0x930ed9b9 of_usb_get_dr_mode +EXPORT_SYMBOL_GPL vmlinux 0x931add84 tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x935b9514 ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x9368a480 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x9370e680 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x93a2cb47 reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x93acefa4 devm_spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x93cc23f9 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x9406b1e8 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x940781f1 user_match +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x942028f0 regmap_fields_write +EXPORT_SYMBOL_GPL vmlinux 0x9435c0f7 wm8997_patch +EXPORT_SYMBOL_GPL vmlinux 0x943a14d8 __percpu_ida_init +EXPORT_SYMBOL_GPL vmlinux 0x947ef7f6 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x94962494 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94abb745 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0x94bcfa0c put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x951a6f28 devm_rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x951aee47 bmp085_detect +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x954291d9 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x95604675 thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0x956df466 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x960613c4 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x96144954 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x9644a7aa of_extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9655b911 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x96815ee3 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x9691058f fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x96a42195 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x96d8a503 rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0x96ec852f blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0x96ec9642 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x9730c462 gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9745c52a of_fixed_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0x974d96a4 need_load_eval +EXPORT_SYMBOL_GPL vmlinux 0x97a3ec56 ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x97acc209 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x97eb26e1 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x97f40d5f tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x981144a3 bmp085_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x9814194e md_run +EXPORT_SYMBOL_GPL vmlinux 0x982cd486 __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x983c7494 rh_detach_region +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x98a4d19a blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x98c6c838 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x98fa1e20 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x9910884a rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x997ce1be rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x9996065c usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x99a23e2e driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x99a61269 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0x99c4fee7 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x99d6a1e1 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x99f660ba sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a350339 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x9a49d937 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x9a715d6a usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x9a7421f7 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x9a7e3ab8 of_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x9a891e7f inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9a895931 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x9a89dbf7 lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x9aa72181 pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0x9aad6540 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x9aca444b get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x9acada8c regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x9acc5876 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x9ad0c5fc dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0x9adb1c1d wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9b30d882 regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x9b52c249 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x9b73854a sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x9b77c130 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x9b7dc432 user_read +EXPORT_SYMBOL_GPL vmlinux 0x9b86864a fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x9bd98da9 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x9be421f2 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9c138453 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x9c4f185c __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x9c622e5a posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x9c7709d1 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x9c812ec3 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x9cb550a5 ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0x9cc9bb47 serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x9cedfc8b led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x9d138533 percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x9d338ad5 pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0x9d422405 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x9d71f9b6 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x9d8331c0 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x9d9049f2 crypto_lookup_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x9db60b17 __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x9dbfceda regmap_field_write +EXPORT_SYMBOL_GPL vmlinux 0x9ddbb33e ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x9dfa99f2 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9dfdf722 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x9e196595 dma_buf_attach +EXPORT_SYMBOL_GPL vmlinux 0x9e3442c1 of_irq_parse_pci +EXPORT_SYMBOL_GPL vmlinux 0x9e552ffd perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x9e6fcac3 devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x9e7a3da2 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x9e9cd635 usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9f0664bf dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x9f3365f8 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x9f352507 cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9f3f98e1 of_get_nand_on_flash_bbt +EXPORT_SYMBOL_GPL vmlinux 0x9f598140 rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0x9f859933 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x9f85ec4f crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x9fbd3d0f crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x9fbef99c devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fd610c6 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x9fedb268 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa02ab094 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xa045809d pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xa04796d0 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0xa050d6ae balloon_devinfo_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa0813932 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xa090ab4b sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xa0a27fff pci_address_to_pio +EXPORT_SYMBOL_GPL vmlinux 0xa0a4ca98 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xa0b74747 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xa0e4a917 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xa12d929d desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0xa19d5ddf _submit_bh +EXPORT_SYMBOL_GPL vmlinux 0xa1ae3170 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xa1b5f7b5 get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0xa1bd7822 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa1c727ff platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xa23e3c94 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0xa252bcf8 usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0xa26ad019 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa28aaf29 rh_create +EXPORT_SYMBOL_GPL vmlinux 0xa2b3f39a serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0xa2b45210 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xa2c05e02 cgroup_taskset_next +EXPORT_SYMBOL_GPL vmlinux 0xa2c5f11c transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xa2fbbb2f ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xa30d9923 gfn_to_pfn_prot +EXPORT_SYMBOL_GPL vmlinux 0xa31acc68 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xa32a8ac9 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xa357d56e ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xa38569d3 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa389a49a profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0xa3934445 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3a2d9af walk_system_ram_range +EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa3e81a58 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0xa3f89864 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xa43b008b swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xa4782cc5 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa48e3bbf xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xa4b3a0eb regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xa4e31f5e of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xa4e93453 ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0xa4ea04ee of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0xa4f51fab ata_sas_port_async_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa54cc5e1 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xa55018d3 regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xa5502925 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xa56205a6 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa57d81d8 clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0xa580cbc0 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL_GPL vmlinux 0xa5e5dc68 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5efe460 usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xa5fbb83a usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0xa5fce093 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa608098d rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xa61b1477 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xa625110d kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0xa645f81f fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xa64fd637 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa67883e9 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xa680596a sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0xa6a0a273 max77693_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa6aa1f7f crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xa6b43ca9 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xa6b6d9d7 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa6e85481 devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xa70e7f10 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xa71f30b2 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xa724257f init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xa74708c7 pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0xa75312bc call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0xa75811d0 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xa762a9f5 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xa775da0d __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa787e62d cpu_add_dev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xa7d77fb1 devm_regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa80a95b5 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xa80d3ada sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0xa8113a34 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa8235e03 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa8578a28 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xa868c206 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0xa88b9ef1 __clk_register +EXPORT_SYMBOL_GPL vmlinux 0xa89f95b3 dma_buf_end_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0xa8b1a1c9 clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0xa8b497f7 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xa8bcf716 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xa8c17a76 of_reset_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0xa8de6cfd max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa8fd1734 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xa90d933d tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xa9331e70 device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0xa95a29ce get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0xa960224d tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa96381c8 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xa9672e2e ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xa9790478 kobj_completion_release +EXPORT_SYMBOL_GPL vmlinux 0xa97a19d0 usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xa980af16 RSA_public_key_algorithm +EXPORT_SYMBOL_GPL vmlinux 0xa985753b ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xa987e8d0 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0xa9adca71 rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xa9aef2e1 gfn_to_hva_memslot +EXPORT_SYMBOL_GPL vmlinux 0xa9d62568 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xa9e18049 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9ebbfaf usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xa9fb74a2 of_device_is_stdout_path +EXPORT_SYMBOL_GPL vmlinux 0xaa17a2e2 rh_alloc_align +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa4d0ba2 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xaa84bc1c sec_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xaa977862 kvm_read_guest_page +EXPORT_SYMBOL_GPL vmlinux 0xaa9fc111 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xaaa48bc4 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaab74bcf ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xaabdaea3 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xaad3a845 iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0xab2cf844 arizona_clk32k_disable +EXPORT_SYMBOL_GPL vmlinux 0xab3ad84e gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0xab3eba97 ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0xab4129e2 thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0xab455be0 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xab51e031 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xab59d373 kvmppc_free_lpid +EXPORT_SYMBOL_GPL vmlinux 0xab5d85e4 extcon_set_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab78dc79 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xab87b8b4 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xab9dda97 pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0xabbe824a skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xabc6f51b pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xac4d71c7 ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xac613c87 pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0xac93ee20 tps80031_ext_power_req_config +EXPORT_SYMBOL_GPL vmlinux 0xac9d14ac input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xacae6ac5 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xacbf5594 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xace8c93d kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xacf024e1 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0xad27ab80 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xad324fd6 fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0xad376749 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0xad58a00b led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xad7e3482 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0xad909b07 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xade488af ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae2554c4 of_clk_src_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae8016fa watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0xaece99b6 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0xaed8bf13 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xaf25d246 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xaf98a4c3 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xb0913148 btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0xb0a064d8 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0cf774a dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xb106d756 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb14f3cb1 rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0xb15530d8 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xb1a7e3f6 clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1c0c1c2 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb1e9276e ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xb1eb482f crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xb1f842e7 devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb221ceac usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xb2256567 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xb22c5283 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xb2315e81 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xb23944f1 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0xb23a8822 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0xb23ba869 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xb2422cb5 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb2801c4e arizona_dev_exit +EXPORT_SYMBOL_GPL vmlinux 0xb293c758 list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0xb2c5621c pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xb2ceee20 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xb2e39f5c regmap_field_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xb2f90a8f rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0xb30e056f devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0xb33abf5a power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb341c80a __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0xb383c4e3 clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0xb3edfd61 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xb3f38e1c clk_register_mux +EXPORT_SYMBOL_GPL vmlinux 0xb40ed058 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xb46da883 pci_intx_mask_supported +EXPORT_SYMBOL_GPL vmlinux 0xb4943a11 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xb497e773 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xb499bccd kvm_get_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0xb4b2463a ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4d53d7d __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb517588b powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0xb51baee5 pwm_enable +EXPORT_SYMBOL_GPL vmlinux 0xb51c6b8a swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb5282842 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb55510a7 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xb5565119 dma_buf_put +EXPORT_SYMBOL_GPL vmlinux 0xb5731266 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5a0e11e lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0xb5a11c75 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0xb5a40a5d ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xb5aa10af atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb5b9fa0e rio_unlock_device +EXPORT_SYMBOL_GPL vmlinux 0xb5bd9e3c regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xb5c8edf4 btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0xb5cb8145 hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xb5dc59c4 rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0xb5e896fb tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0xb5efd2af sk_unattached_filter_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb60b5707 of_i8042_aux_irq +EXPORT_SYMBOL_GPL vmlinux 0xb612792e led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb6355629 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0xb64e61eb regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0xb6588b72 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xb67b2219 cm_suspend_again +EXPORT_SYMBOL_GPL vmlinux 0xb67c64fd __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xb68dcbc7 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xb698be6e bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb69ca022 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6c635af wm5110_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb702dfa0 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xb71089b7 crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0xb71eaa1f subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0xb745abae ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xb76aa47f get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0xb786e77d percpu_ida_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb7879dd9 key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0xb79fb656 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb7aaa742 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xb7bf2278 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xb7d2185c rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xb7dd8555 alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb7f003ef ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0xb7f465e8 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0xb809b9ee md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xb82dd604 devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xb85048ed md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xb88a5779 ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0xb890e6bc bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb89be70d regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xb8c3050c fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb903f1df __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xb90982f0 devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb9176155 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0xb996aa32 tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb9b1a57f xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9bd8d5a ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0xb9bdb0d1 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9c8b584 regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9e00efa regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xb9f006dc cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xba04976c devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xba0f8d40 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0xba2da3dd device_rename +EXPORT_SYMBOL_GPL vmlinux 0xba482caf kvm_irq_has_notifier +EXPORT_SYMBOL_GPL vmlinux 0xba763ef8 irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0xba82e0b9 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xbae9cc46 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xbaeb88e9 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb65ef89 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xbb885753 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0xbb8d254a devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xbbac26dc subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0xbbe42076 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xbbfc018a da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xbc3ae946 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0xbc791811 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0xbc93f20a kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xbca21a07 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xbcac6160 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbcb07b65 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xbcb27eba usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xbcc32f2b udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbcf54c2f regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbd07c62f clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0xbd18a7ce sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xbd39abd9 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xbd4fb0c3 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0xbd5cb8b9 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe2b6fd0 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0xbe5a7919 extcon_set_cable_state +EXPORT_SYMBOL_GPL vmlinux 0xbe681d67 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xbea5ff1e static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0xbebaa0a6 of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xbef555d0 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0xbefbc553 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xbf010a9c subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf6d2602 devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0xbfa4b176 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbfb2e0aa ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xbff9f8d2 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xc00131cf visitor64 +EXPORT_SYMBOL_GPL vmlinux 0xc02bec3c usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc0484557 of_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xc05f5827 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xc061367e mpic_msgr_get +EXPORT_SYMBOL_GPL vmlinux 0xc0626288 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xc065a455 cpu_core_index_of_thread +EXPORT_SYMBOL_GPL vmlinux 0xc0692ba4 rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0xc06d88bd trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0xc07b0b59 powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0xc07f80d6 list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc087b6a4 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xc089d7e3 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xc0907a26 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc0bae748 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c6ad20 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xc0cc215e tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc0d01bc0 percpu_ref_cancel_init +EXPORT_SYMBOL_GPL vmlinux 0xc0d0f236 sec_reg_update +EXPORT_SYMBOL_GPL vmlinux 0xc0d26387 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc0e75cec visitor128 +EXPORT_SYMBOL_GPL vmlinux 0xc0ea8a9e usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xc0ee3810 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xc1031850 dma_buf_fd +EXPORT_SYMBOL_GPL vmlinux 0xc111b5a7 device_register +EXPORT_SYMBOL_GPL vmlinux 0xc1154815 devm_regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xc11b45c6 gpiod_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc1255549 dev_hard_start_xmit +EXPORT_SYMBOL_GPL vmlinux 0xc149a52b blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc177cacc inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xc17a475b regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0xc18578ed process_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc1ca914b call_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc1e347f0 wm8400_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xc1fcffb3 sec_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc236c9b6 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xc2639dc4 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0xc26e9a9a kvmppc_pr_ops +EXPORT_SYMBOL_GPL vmlinux 0xc275bce8 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc285b4e2 of_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xc2a6666a ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xc2ba7421 ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0xc2c25342 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc2f98329 cgroup_taskset_first +EXPORT_SYMBOL_GPL vmlinux 0xc33f8dc1 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc36f150a irq_create_direct_mapping +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc381489d driver_register +EXPORT_SYMBOL_GPL vmlinux 0xc38b1a0c uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc3beb4a1 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xc3d17628 crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0xc403d680 dma_buf_kmap +EXPORT_SYMBOL_GPL vmlinux 0xc407a1d4 gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc43e4c45 get_device +EXPORT_SYMBOL_GPL vmlinux 0xc454fc7b twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc46d877e schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xc471c67a twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4927394 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0xc4a1ad5d device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xc4b5f71f seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xc4b87443 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xc4c653f8 blk_queue_bypass_start +EXPORT_SYMBOL_GPL vmlinux 0xc4ea3b01 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xc4f9bdea kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xc50cf781 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xc52ca124 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xc5691db3 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xc5739b5f find_module +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc59672f4 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xc5d37180 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0xc606cd3c boot_cpuid +EXPORT_SYMBOL_GPL vmlinux 0xc609e051 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc6121589 get_kernel_page +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc63a1109 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xc6479abd ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc6747a4c ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xc67f2249 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xc68aa090 mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xc68aa252 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xc690866c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6a98c71 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xc6d71ee9 usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xc6d900af netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0xc6df4b00 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0xc70e4b59 kvmppc_claim_lpid +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc73d75be ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0xc7598133 fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc79bda0c ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7a6ee81 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xc7a7f120 ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xc7c6391c mpi_set_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc7da17be timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0xc7e39bca ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc7ed0cba crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xc7fec783 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0xc80e6684 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xc813bcc9 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc8304876 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0xc869704f smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0xc871f6c8 proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0xc88b04ee tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0xc88f253a regmap_update_bits_check_async +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8b38f44 tpm_write +EXPORT_SYMBOL_GPL vmlinux 0xc8b8d2c1 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xc8d5f8f4 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9163e8a percpu_ida_for_each_free +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc97d1140 cpufreq_cooling_get_level +EXPORT_SYMBOL_GPL vmlinux 0xc97e9bff register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0xc982d5cb rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xc9924572 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xc9a505c1 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xc9a6952c irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xc9b4632b tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xc9c9de23 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xc9cfa97f of_pci_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9fbcf8f subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xca0fd9d9 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0xca4777a8 bmp085_remove +EXPORT_SYMBOL_GPL vmlinux 0xca7262ce arizona_of_get_type +EXPORT_SYMBOL_GPL vmlinux 0xca732633 arizona_set_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca946187 of_clk_add_provider +EXPORT_SYMBOL_GPL vmlinux 0xcaac3229 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xcab1268f blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcac318d7 dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0xcb15eee9 sdhci_pci_get_data +EXPORT_SYMBOL_GPL vmlinux 0xcb23aabc spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0xcb2f2383 ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xcb323599 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xcb469d2b ddebug_add_module +EXPORT_SYMBOL_GPL vmlinux 0xcb5c3b01 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcb722728 ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0xcb964646 regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0xcb9b162e clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0xcb9b3e02 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xcbbd5cd3 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xcbbe4094 thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0xcbd54f16 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xcbe762d1 rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbf00645 ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc38fdee of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0xcc44961f kvmppc_alloc_lpid +EXPORT_SYMBOL_GPL vmlinux 0xcc59f145 skb_gso_transport_seglen +EXPORT_SYMBOL_GPL vmlinux 0xcc85fcb6 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0xcc8c4990 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xcc956659 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xcc9967f5 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcce4b6d6 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xcd13537f __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcd1cfba6 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcd1ef9c1 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0xcd28f26a crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xcd4fb465 call_filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xcd585f63 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0xcd7587d8 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcdb01877 ktime_add_ns +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcde406bd tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0xcde8ecb9 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0xcde9e898 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0xce0b9b59 max77693_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xce46e140 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xce5675e0 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xce57c075 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce6cbcb9 devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0xce72cd8f of_get_regulator_init_data +EXPORT_SYMBOL_GPL vmlinux 0xce833535 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xce9d6e39 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xcec574ff bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xcef91b98 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xcefc8e5a spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xcf0b76eb find_linux_pte_or_hugepte +EXPORT_SYMBOL_GPL vmlinux 0xcf4a9bfe dma_buf_begin_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0xcf54ea93 async_unregister_domain +EXPORT_SYMBOL_GPL vmlinux 0xcf7fa287 spi_async +EXPORT_SYMBOL_GPL vmlinux 0xcf82f502 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xcf88966e kvm_vcpu_init +EXPORT_SYMBOL_GPL vmlinux 0xcfa8e06e thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0xcfa9e828 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0xcfb97524 spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfd53a15 filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xcfd9a317 alarm_start +EXPORT_SYMBOL_GPL vmlinux 0xcfe71633 devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xcfff644c devres_get +EXPORT_SYMBOL_GPL vmlinux 0xd00a47e4 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xd032198a usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xd03b07ae reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xd03c5d95 irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd056c5e4 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd06c64a8 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xd06c7f3f disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xd0bce0fa blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xd0c0178f blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c703b4 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xd1132fd1 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xd118c216 edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0xd12837fe clk_register_mux_table +EXPORT_SYMBOL_GPL vmlinux 0xd144f7cb ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xd14bc4d9 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xd1530b85 gfn_to_pfn +EXPORT_SYMBOL_GPL vmlinux 0xd155169f ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1bca8b5 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xd1cda35e __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xd1e2654d wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd1e87199 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xd1e94f78 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd215ddb6 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd258217d clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0xd25b5668 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0xd265fc6a list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd27999c4 kvm_get_kvm +EXPORT_SYMBOL_GPL vmlinux 0xd2a5887a hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd2aaeb4e kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0xd2b1a7f9 sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0xd2c45ea4 of_pci_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0xd2da057e regmap_fields_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xd2f8d531 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0xd315f1f2 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd3373310 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xd33a4f2c usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xd383506b sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0xd38dce2b gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xd3ba86a7 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xd3ccd8db wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd3e1f744 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xd3fcc14c regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4056b03 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xd43e8ffa rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd482ad13 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xd4b659c2 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4cad45e clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xd4ebe784 extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0xd513ddbf timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xd5214ffa get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0xd5304be9 blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0xd560be86 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xd582227a leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xd594620d fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0xd599eaf5 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xd59a9f69 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xd59c1c75 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd612b290 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0xd616738b input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xd641723d inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd6c2e04b __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xd6e347fd digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd718024f crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xd722a1dc blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0xd731a5e9 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd771cfd1 napi_hash_del +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd7a20230 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xd7ece218 regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd863d989 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd87fc0a0 usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0xd884067d find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xd8b1aa61 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd8bc7705 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xd8dc7e66 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xd8f78f38 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xd8fd4201 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xd92ef294 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xd936b5f9 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xd93cfe1a regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0xd942d353 ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0xd944d8f9 ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0xd9a34035 __clk_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xd9c36049 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xd9e37d43 bmp085_probe +EXPORT_SYMBOL_GPL vmlinux 0xd9e98bd6 __put_net +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xda07a6c2 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xda07b4a3 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0xda0a4d22 mpic_msgr_enable +EXPORT_SYMBOL_GPL vmlinux 0xda1bfcdc mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xda2197ac tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xda44cb37 setup_charger_manager +EXPORT_SYMBOL_GPL vmlinux 0xda73edaf ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xda8cb2e5 threads_core_mask +EXPORT_SYMBOL_GPL vmlinux 0xda9231d7 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0xda9c0943 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0xdac11bae of_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xdac930ea unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0xdad522e6 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb243b36 __mmu_notifier_invalidate_range_end +EXPORT_SYMBOL_GPL vmlinux 0xdb342812 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xdb3610c5 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL vmlinux 0xdb50d096 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xdb847278 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdb8fe63b skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xdb9da97b inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xdba31816 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xdba4ad93 static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0xdba80fc1 of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0xdbc66592 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xdbc6c019 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xdbcf5270 rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0xdbd0659d rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc0cb288 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdc19981d pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xdc1c0d7c pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0xdc1ceb1a ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xdc1e15f1 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xdc29d33f usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xdc5208f9 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xdc646379 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xdc69beee wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc944621 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xdc956a24 uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0xdc9a60f1 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdcc1ebec pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0xdd178a50 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd348c12 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xdd391eff profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd5ec41d sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xdd729424 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0xdd8b45f4 sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xdd8e6075 ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xddd7df58 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0xddfdb0c6 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xde111fc0 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xde2f3fa5 cpu_remove_dev_attr +EXPORT_SYMBOL_GPL vmlinux 0xde3a337d devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xde425ad7 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0xde4984d2 tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xde50589d ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xde590f7f blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xde600e7f ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xde71b532 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xded3c931 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xdefe136b power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xdf0f5e34 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf1c24c8 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0xdf47c3c6 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xdf71b8a5 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xdf94affa regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xdfba9263 rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xdfe93bc9 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe01c1247 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe036b3e9 mpic_msgr_put +EXPORT_SYMBOL_GPL vmlinux 0xe0450649 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xe04b1e96 rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe0bc1ea1 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0xe0c01d60 dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0xe168a5f5 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0xe1775ee7 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0xe17dd001 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xe17f3c4b regulator_can_change_voltage +EXPORT_SYMBOL_GPL vmlinux 0xe19eb1c4 percpu_ida_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe1bd6c99 rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0xe1c32794 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0xe1ccddf1 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xe217e9d0 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xe22995a8 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xe23077da rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xe23eaca4 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xe26463c5 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0xe26a2a2c uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xe27b0094 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0xe28d6a98 regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0xe29e2cb3 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xe2c7d256 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0xe2f41a69 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe30c3f50 tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0xe30c555d bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xe30fac88 ktime_get_monotonic_offset +EXPORT_SYMBOL_GPL vmlinux 0xe312078d extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe316b343 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0xe34a8633 regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xe3607be8 rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0xe37cbced ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe38d32f9 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0xe3929bdc transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xe397f988 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0xe3d14374 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0xe3e0fa4d crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xe40040b5 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xe4053a68 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xe4114192 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xe47f5331 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0xe4a37b98 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xe4c031f8 btree_merge +EXPORT_SYMBOL_GPL vmlinux 0xe4c29286 thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe4c4b28f gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xe4c8181f sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xe508c4d0 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0xe52ae762 __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0xe535a828 ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0xe548edc1 sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0xe57d3b18 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58499d6 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe5a838c8 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xe5abe8f1 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xe5d86fc0 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xe5fd3968 ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe67a4b15 blkg_prfill_stat +EXPORT_SYMBOL_GPL vmlinux 0xe6888c80 __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xe6a3b048 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xe6b858f2 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0xe6c68334 ddebug_remove_module +EXPORT_SYMBOL_GPL vmlinux 0xe6c7a473 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xe6dbfe30 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6f4c1d6 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xe6fdf3da cgroup_taskset_cur_css +EXPORT_SYMBOL_GPL vmlinux 0xe701f95e user_describe +EXPORT_SYMBOL_GPL vmlinux 0xe7057896 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0xe7145917 usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0xe73dff47 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe7d1a8a8 wm5110_patch +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe85a3ee4 ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0xe85c55e7 btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe877ce48 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xe8e4acc4 tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0xe9108ead pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xe92de3ef gpio_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe956097d tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xe96249f3 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xe962e842 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xe9787f9e ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0xe98dc1dd set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xe98ef7ba fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0xe9aa83f3 extcon_get_cable_state +EXPORT_SYMBOL_GPL vmlinux 0xe9b52985 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xe9e62c33 thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea126c99 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0xea173e4e dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea462f33 __mmu_notifier_invalidate_range_start +EXPORT_SYMBOL_GPL vmlinux 0xea73537c dbs_check_cpu +EXPORT_SYMBOL_GPL vmlinux 0xea7930a9 css_rightmost_descendant +EXPORT_SYMBOL_GPL vmlinux 0xea875dad clockevents_unbind +EXPORT_SYMBOL_GPL vmlinux 0xeac5f3f6 tpm_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0xeae50a5b crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xeaee2856 tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xeb05004d pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0xeb085fd5 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xeb1c3628 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xeb4587aa usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xeb62b76e ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xeb6f604d alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xeb70c221 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0xeb8ae736 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xeb98215e cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xeb9abbee ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xeb9f3493 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xebac4df4 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0xebbb7d5b ping_close +EXPORT_SYMBOL_GPL vmlinux 0xebd3b1c6 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xebe7259f usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xebec57c4 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xebef78d1 kvmppc_handle_load +EXPORT_SYMBOL_GPL vmlinux 0xebfe4c82 __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xec049575 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec2ef575 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xec55538e usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xec6459fc bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xecc83561 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0xecee25ba ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xecfdaf30 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xed2740b7 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xed3dbf4b cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xed43e9c0 ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xed5964f8 serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0xed69cc8e proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0xeda00461 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xedbf3cbb of_get_dma_window +EXPORT_SYMBOL_GPL vmlinux 0xedc2994d ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0xedd49930 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xeddee3e0 pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xedf85310 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xee32c031 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xee52b267 powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0xee585afd ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xee64a4c2 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xee6b71c4 syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0xee747f31 rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xee79c5de usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xee8d995a regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xeead44ed page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xeebe7cd8 ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0xeebeb7c7 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0xeedc5a7f put_device +EXPORT_SYMBOL_GPL vmlinux 0xeef959d6 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xef00cc01 extcon_find_cable_index +EXPORT_SYMBOL_GPL vmlinux 0xef311da4 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0xef33d8b0 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xef36d4fb fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xef409b74 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0xef422dca alarm_init +EXPORT_SYMBOL_GPL vmlinux 0xef51f0f1 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xef674f34 reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef8298ea netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0xefcbb7cf crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xefd5c77e regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0xefebe823 tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0xf004c91d ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xf031ebaa adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xf0eb0a5c scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xf113f4b1 inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0xf133fa1d sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xf158f170 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xf15dd154 sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1919a29 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xf1a62b6f of_i8042_kbd_irq +EXPORT_SYMBOL_GPL vmlinux 0xf1b20bba kvm_vcpu_uninit +EXPORT_SYMBOL_GPL vmlinux 0xf1b2be9a spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1f4bf21 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xf1f9755d lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0xf21ace07 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf22b37bb sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xf23ae3c3 pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xf26da4ae ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0xf27977e2 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xf2e0fd73 ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xf2f077cc pkey_id_type_name +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf3012f6c rh_free +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf318b48c cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf3288cea ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xf32e52d3 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0xf36656d8 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xf37f28ed nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xf3a03e5f rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xf3aed9cc shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf40eceff usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xf431b65a ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xf44167b8 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0xf452a695 evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0xf472a3bd usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xf47b53c2 gfn_to_memslot +EXPORT_SYMBOL_GPL vmlinux 0xf48eba59 class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL_GPL vmlinux 0xf4954775 register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4bd1581 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0xf4c96778 usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0xf4da3546 kvmppc_init_lpid +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf52c41d2 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xf531ace1 regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf56f8bac mmput +EXPORT_SYMBOL_GPL vmlinux 0xf5809df5 clk_register_divider_table +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5acc7bb crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xf5ae8f28 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xf5bcf1b2 __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0xf5e7f053 rh_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf5fb0cd4 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xf5fef4e3 wm5110_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf64fbe2d ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xf676a9c0 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xf698f94c bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0xf69cef99 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xf6a46077 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0xf6ce313c irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf715c0ae debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0xf722bc1a blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xf7231578 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xf7504353 devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0xf7565415 dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0xf761333e ping_proc_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf76435b6 rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0xf77fc76a cgroup_add_cftypes +EXPORT_SYMBOL_GPL vmlinux 0xf796e0b2 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xf7b5f857 uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0xf7cdcb2b sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xf816c866 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0xf81abd58 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf8409386 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf89f566e rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf8b8ae24 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xf8d46acc dma_buf_get +EXPORT_SYMBOL_GPL vmlinux 0xf8e23058 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8fe3d0b kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0xf8ff76db sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xf90d12e0 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xf90d2fab simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xf9154bff inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0xf91b0530 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf921f1b6 usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf932015f __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf935a32c of_property_read_string_helper +EXPORT_SYMBOL_GPL vmlinux 0xf938c066 of_regulator_match +EXPORT_SYMBOL_GPL vmlinux 0xf939ae8d tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xf9623ee2 debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0xf98134b9 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf985212d __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9c5c7fd get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xf9c98f80 trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9f89fcf led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa17ea1d debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0xfa17f471 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa213362 pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0xfa5d008c hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xfa6a5a18 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xfa7abec4 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xfaad74f2 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xfab0ba10 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xfab60503 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xfaf50a3b power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xfb1fb2fc pwm_put +EXPORT_SYMBOL_GPL vmlinux 0xfb289ab7 tpm_read +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb52b77d __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0xfb5cc8c0 irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb7cd8df gfn_to_pfn_async +EXPORT_SYMBOL_GPL vmlinux 0xfb83db03 cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0xfb923337 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xfb95ba73 blkg_stat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0xfbbedefd of_prop_next_string +EXPORT_SYMBOL_GPL vmlinux 0xfbcdbc11 regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xfbf64d96 cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc1d2e02 devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xfc6818dc usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xfc785773 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xfcc88ce2 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfcea4faa pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfcf376fd register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xfd1fdb05 of_pci_msi_chip_remove +EXPORT_SYMBOL_GPL vmlinux 0xfd450f86 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0xfd4b75df pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xfd7d2e27 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xfd8976b0 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xfd9220e4 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0xfd96ccbd __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xfdb1750b crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xfdcb7ea0 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xfdcf3f3a rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xfdef7d6f arizona_dev_init +EXPORT_SYMBOL_GPL vmlinux 0xfdfb1837 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0xfe528469 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xfe5aeab7 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xfe638124 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0xfe65126c anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xfe85e632 regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfea59360 regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0xfeb4f464 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xfeb9dd09 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xfebec64c kvmppc_emulate_instruction +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfeda4e1c look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfef95b21 ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0xff0b8ece __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xff0fd0e5 sdhci_pci_o2_probe +EXPORT_SYMBOL_GPL vmlinux 0xff16d4c0 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xff420d22 md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff7a4868 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xff8862d7 rh_get_stats +EXPORT_SYMBOL_GPL vmlinux 0xff96c45a device_move +EXPORT_SYMBOL_GPL vmlinux 0xffaebf99 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0xffb505ef wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0xffeaa988 pci_check_and_mask_intx --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/powerpc/powerpc-e500.compiler +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/powerpc/powerpc-e500.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2 --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/powerpc/powerpc-e500.modules +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/powerpc/powerpc-e500.modules @@ -0,0 +1,3688 @@ +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250_dw +8250_pci +8255 +8255_pci +8390 +88pm800 +88pm805 +88pm80x +88pm80x_onkey +88pm860x_battery +88pm860x_bl +88pm860x_charger +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +ac97_bus +acard-ahci +acecad +acenic +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5380 +ad5398 +ad5421 +ad5446 +ad5449 +ad5504 +ad5624r_spi +ad5686 +ad5755 +ad5764 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7266 +ad7280a +ad7291 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7791 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad7923 +ad799x +ad8366 +ad9523 +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2032 +addi_apci_2200 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +addi_watchdog +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adf4350 +adfs +adi +adis16060 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1275 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +ads1015 +ads7828 +ads7846 +ads7871 +ad_sigma_delta +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adv7170 +adv7175 +adv7180 +advansys +adv_pci1710 +adv_pci1723 +adv_pci1724 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +af_802154 +af9013 +af9033 +af_alg +affs +af_key +af_packet_diag +af-rxrpc +ah4 +ah6 +aha152x_cs +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +ak8975 +algif_hash +algif_skcipher +ali-ircc +alim7101_wdt +alphatrack +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +alx +ambassador +amc6821 +amd5536udc +amd8111e +amplc_dio200_common +amplc_dio200_pci +amplc_pc236 +amplc_pci224 +amplc_pci230 +amplc_pci263 +ams369fg06 +analog +anatop-regulator +ansi_cprng +anubis +aoe +apbps2 +apds9300 +apds9802als +apds990x +appledisplay +appletalk +appletouch +applicom +ar5523 +ar7part +arc4 +arc_emac +arcmsr +arcnet +arc_ps2 +arc-rawmode +arc-rimi +arc_uart +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as3711_bl +as3711-regulator +as3722-regulator +as5011 +asc7621 +asix +ast +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at86rf230 +at91_ether +ata_piix +atbm8830 +aten +ath +ath10k_core +ath10k_pci +ath3k +ath5k +ath6kl_core +ath6kl_sdio +ath6kl_usb +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atm +atmel +atmel_cs +atmel_mxt_ts +atmel_pci +atmel_pwm +atmel-pwm-bl +atmel-rng +atmel-ssc +atmtcp +atp870u +atxp1 +atyfb +au0828 +au8522_common +au8522_decoder +au8522_dig +aufs +auo_k1900fb +auo_k1901fb +auo_k190x +auo-pixcir-ts +authenc +authencesn +auth_rpcgss +autofs4 +avma1_cs +avm_cs +avmfritz +ax25 +ax88179_178a +axnet_cs +b1 +b1dma +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcma-hcd +bcm_wimax +bd6107 +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluecard_cs +bluetooth +bma150 +bma180 +bman_debugfs_interface +bmp085-i2c +bmp085-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +booke_wdt +bpa10x +bpck +bpck6 +bpctl_mod +bpqether +bq2415x_charger +bq24190_charger +bq24735-charger +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcoexist +btcx-risc +btmrvl +btmrvl_sdio +btmtk_usb +btrfs +btsdio +bttv +btuart_cs +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +bypass +c4 +c67x00 +caam +caamalg +caamhash +caam_jr +caamrng +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +caif_usb +caif_virtio +camellia_generic +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5_generic +cast6_generic +cast_common +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcimdas +cb_pcimdda +cc770 +cc770_isa +cc770_platform +c_can +c_can_pci +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +cedusb +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +cifs +ci_hdrc +ci_hdrc_imx +ci_hdrc_msm +ci_hdrc_pci +cirrus +cirrusfb +clearpad_tm1217 +clip +clk-max77686 +clk-s2mps11 +clk-si5351 +clk-twl6040 +clk-wm831x +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm36651 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmac +cmdlinepart +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +configfs +contec_pci_dio +cordic +core +cp210x +cpia2 +cpm_uart +c-qcam +cramfs +crc32 +crc7 +crc8 +crc-ccitt +crc-itu-t +cros_ec +cros_ec_i2c +cros_ec_keyb +cros_ec_spi +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +csiostor +ctr +cts +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24117 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyapa +cyber2000fb +cyberjack +cyclades +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da9030_battery +da9034-ts +da903x +da903x_bl +da9052-battery +da9052_bl +da9052-hwmon +da9052_onkey +da9052-regulator +da9052_tsi +da9052_wdt +da9055-hwmon +da9055_onkey +da9055-regulator +da9055_wdt +da9063-regulator +da9210-regulator +DAC960 +daqboard2000 +das08 +das08_cs +das08_pci +db9 +dc395x +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +ddbridge +de2104x +de4x5 +decnet +deflate +defxx +denali +denali_dt +denali_pci +des_generic +designware_i2s +dgap +dgnc +dgrp +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bio-prison +dm-bufio +dm-cache +dm-cache-cleaner +dm-cache-mq +dm-crypt +dm-delay +dmfe +dm-flakey +dm-log +dm-log-userspace +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-switch +dm-thin-pool +dm-verity +dmx3191d +dm-zero +dnet +dn_rtmsg +docg3 +docg4 +donauboe +dpaa_1588 +dpa_uio +dpt_i2o +drbd +drm +drm_kms_helper +drm_usb +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2781_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt3000 +dt3155v4l +dt9812 +dtl1_cs +dummy +dummy-irq +dvb-as102 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-af9035 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6007 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-rtl28xxu +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb_usb_v2 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc2 +dwc2_pci +dwc2_platform +dwc3 +dwc3-pci +dw_dmac +dw_dmac_core +dw_dmac_pci +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e4000 +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_vlan +ec100 +echo +edac_core +edt-ft5x06 +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efs +egalax_ts +ehset +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +em28xx-rc +emc1403 +emc2103 +emc6w201 +em_canid +em_cmp +emi26 +emi62 +em_ipset +em_meta +em_nbyte +empeg +ems_pci +ems_pcmcia +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +eni +enic +epat +epia +epic100 +eql +esas2r +esd_usb2 +esi-sir +esp4 +esp6 +et131x +ethoc +evbug +exofs +extcon-adc-jack +extcon-arizona +extcon-gpio +extcon-max77693 +extcon-max8997 +extcon-palmas +ezusb +f2fs +f75375s +f81232 +fakelb +fan53555 +farsync +faulty +fb_sys_fops +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +fid +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +firewire-serial +fit2 +fit3 +fixed +fld +flexcan +floppy +fm801-gp +fmc +fmc-chardev +fmc-fakedev +fmc-trivial +fmc-write-eeprom +fm_drv +fmvj18x_cs +forcedeth +fore_200e +fotg210-hcd +fotg210-udc +freevxfs +friq +frpw +fsa9480 +fscache +fs_enet +fsl-diu-fb +fsldma +fsl_elbc_nand +fsl_hypervisor +fsl_ifc_nand +fsl_pq_mdio +fsl_qe_udc +fsl_upm +fsl_usb2_udc +ft1000 +ft1000_pcmcia +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +fusbh200-hcd +g450_pll +g760a +g762 +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdmtty +gdmulte +gdmwm +gdth +generic +generic-adc-battery +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gianfar_driver +gianfar_ptp +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_ncm +g_nokia +go7007 +go7007-loader +go7007-usb +goku_udc +goldfishfb +gp2ap002a00f +gp2ap020a00f +gpio +gpio-74x164 +gpio-addr-flash +gpio-adnp +gpio-adp5520 +gpio-adp5588 +gpio-amd8111 +gpio-arizona +gpio_backlight +gpio-charger +gpio-da9052 +gpio-da9055 +gpio-dwapb +gpio-fan +gpio-generic +gpio-grgpio +gpio-ir-recv +gpio-janz-ttl +gpio-kempld +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-rdc321x +gpio-regulator +gpio_tilt_polled +gpio-tps65912 +gpio-ts5500 +gpio-twl4030 +gpio-twl6040 +gpio-ucb1400 +gpio-viperboard +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +grcan +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_jl2005bcd +gspca_kinect +gspca_konica +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_nw80x +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_se401 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stk1135 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gxt4500 +g_zero +hamachi +hampshire +hanwang +hci +hci_uart +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hid +hid-a4tech +hid-apple +hid-appleir +hid-aureal +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-elo +hid-emsff +hid-ezkey +hid-gaff +hid-generic +hid-gyration +hid-holtekff +hid-holtek-kbd +hid-holtek-mouse +hid-huion +hid-icade +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-lenovo-tpkbd +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-rmi +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-isku +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-konepure +hid-roccat-kovaplus +hid-roccat-lua +hid-roccat-pyra +hid-roccat-ryos +hid-roccat-savu +hid-saitek +hid-samsung +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-gyro-3d +hid-sensor-hub +hid-sensor-iio-common +hid-sensor-magn-3d +hid-sensor-trigger +hid-sjoy +hid-sony +hid-speedlink +hid-steelseries +hid-sunplus +hid-thingm +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-xinmo +hid-zpff +hid-zydacron +hih6130 +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hpfs +hpilo +hpsa +hptiop +hsi +hsi_char +hso +hsr +htc-pasic3 +htu21 +huawei_cdc_ncm +hwa-hc +hwa-rc +hwmon-vid +hx8357 +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-usb +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-arb-gpio-challenge +i2c-cbus-gpio +i2c-cpm +i2c-designware-core +i2c-designware-pci +i2c-designware-platform +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-hid +i2c-i801 +i2c-isch +i2c-kempld +i2c-matroxfb +i2c-mpc +i2c-mux +i2c-mux-gpio +i2c-mux-pca9541 +i2c-mux-pca954x +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-piix4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-viperboard +i2c-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i40e +i40evf +i5k_amb +i6300esb +i740fb +i82092 +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_isert +ib_mad +ibmaem +ibmpex +ib_mthca +ib_sa +ib_srp +ib_srpt +ib_ucm +ib_umad +ib_uverbs +icp_multi +ics932s401 +idmouse +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iguanair +iio_dummy +iio_hwmon +iio-trig-interrupt +iio-trig-periodic-rtc +iio-trig-sysfs +ili210x +ili922x +ili9320 +imm +imon +ims-pcu +imx074 +imx_thermal +ina209 +ina2xx +industrialio +industrialio-triggered-buffer +inet_diag +inexio +inftl +initio +input-polldev +int51x1 +intel_vr_nor +interact +interval_tree_test +inv-mpu6050 +ioc4 +io_edgeport +io_ti +iowarrior +ip6_gre +ip6table_filter +ip6table_mangle +ip6table_nat +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_MASQUERADE +ip6t_mh +ip6t_NPT +ip6t_REJECT +ip6t_rpfilter +ip6t_rt +ip6t_SYNPROXY +ip6_tunnel +ip6_vti +ipack +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_poweroff +ipmi_si +ipmi_watchdog +ipoctal +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netnet +ip_set_hash_netport +ip_set_hash_netportnet +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_MASQUERADE +ipt_REJECT +ipt_rpfilter +ipt_SYNPROXY +ipt_ULOG +ip_tunnel +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ip_vti +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sanyo-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it913x-fe +itd1000 +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwldvm +iwlegacy +iwlmvm +iwlwifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +kafs +kalmia +kaweth +kbic +kbtab +kcomedilib +ke_counter +kempld-core +kempld_wdt +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +ko2iblnd +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksocklnd +ksz884x +ktti +kvaser_pci +kvaser_usb +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +l2tp_ppp +l4f00242t03 +l64781 +lanai +lapb +lapbether +latch-addr-flash +lattice-ecp3-config +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-atmel-pwm +leds-bd2802 +leds-blinkm +leds-da903x +leds-da9052 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lm3533 +leds-lm355x +leds-lm3642 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lp5562 +leds-lp55xx-common +leds-lp8501 +leds-lp8788 +leds-lt3593 +leds-max8997 +leds-mc13783 +leds-ot200 +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pca9685 +leds-pwm +leds-regulator +leds-tca6507 +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-camera +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-oneshot +ledtrig-timer +ledtrig-transient +legousbtower +lg2160 +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libceph +libcfs +libcomposite +libcrc32c +libcxgbi +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc +llc2 +llog_test +ll_temac +lm25066 +lm3533-als +lm3533_bl +lm3533-core +lm3533-ctrlbank +lm3630a_bl +lm3639_bl +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm8333 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95234 +lm95241 +lm95245 +lmc +lms283gf05 +lms501kf03 +lmv +lnbp21 +lnbp22 +lnet +lnet_selftest +lockd +lov +lp +lp3971 +lp3972 +lp855x_bl +lp8727_charger +lp8755 +lp8788_bl +lp8788-charger +lpc_ich +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc2978 +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lustre +lv5207lp +lvfs +lz4 +lz4_compress +lz4hc +lz4hc_compress +m25p80 +m2m-deinterlace +m52790 +m88rs2000 +ma600-sir +mac80211 +mac80211_hwsim +mac802154 +macb +mac-celtic +mac-centeuro +mac-croatian +mac-cyrillic +mac-gaelic +mac-greek +mac_hid +mac-iceland +mac-inuit +mac-roman +mac-romanian +mac-turkish +macvlan +macvtap +mag3110 +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix-keymap +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16064 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max197 +max2165 +max3100 +max34440 +max517 +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77686 +max77693 +max8649 +max8660 +max8688 +max8903_charger +max8907 +max8907-regulator +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8973-regulator +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-i2c +mc13xxx-regulator-core +mc13xxx-spi +mc44s803 +mceusb +mcp2120-sir +mcp251x +mcp3021 +mcp320x +mcp3422 +mcp4725 +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memstick +mena21_wdt +metronomefb +metro-usb +mfd +mga +mgc +michael_mic +microread +microread_i2c +microtek +mii +mii-bitbang +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mlx5_core +mlx5_ib +mma8450 +mmc_block +mms114 +mos7720 +mos7840 +moxa +mpc85xx_edac +mpoa +mpr121_touchkey +mpt2sas +mpt3sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrf24j40 +mrp +mrst_max3110 +ms_block +msdos +msp3400 +mspro_block +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt29f_spinand +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +musb_am335x +musb_dsps +musb_hdrc +mv643xx_eth +mv88e6060 +mv88e6xxx_drv +mvmdio +mvsas +mv_u3d_core +mv_udc +mvumi +mwifiex +mwifiex_pcie +mwifiex_sdio +mwifiex_usb +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxser +myri10ge +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +nau7802 +navman +nbd +nci +ncpfs +ne2k-pci +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netlink_diag +netprio_cgroup +netrom +netxen_nic +newtonkbd +nfc +nfc_digital +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcsim +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_ipv4 +nf_nat_ipv6 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nfsv2 +nfsv3 +nfsv4 +nf_synproxy_core +nf_tables +nf_tables_arp +nf_tables_bridge +nf_tables_ipv4 +nf_tables_ipv6 +nft_chain_nat_ipv4 +nft_chain_nat_ipv6 +nft_chain_route_ipv4 +nft_chain_route_ipv6 +nft_compat +nft_counter +nft_ct +nft_exthdr +nft_hash +nftl +nft_limit +nft_log +nft_meta +nft_nat +nft_rbtree +nft_reject_ipv4 +ngene +n_hdlc +ni_6527 +ni_65xx +ni_660x +ni_670x +nicstar +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_cs +ni_labpc_pci +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nlmon +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +nosy +notifier-error-inject +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc-ircc +nsp32 +nsp_cs +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +null_blk +nvidiafb +nvme +nxt200x +nxt6000 +obdclass +obdecho +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ocrdma +ofpart +of_serial +old_belkin-sir +olpc_apsp +omfs +omninet +on20 +on26 +onenand +opencores-kbd +openvswitch +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osc +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7640 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +ozwpan +p54common +p54pci +p54spi +p54usb +p8022 +p8023 +palmas-regulator +pandora_bl +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87410 +pata_ns87415 +pata_of_platform +pata_oldpiix +pata_opti +pata_optidma +pata_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc300too +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci-stub +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcnet32 +pcnet_cs +pcrypt +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc_adma +peak_pci +peak_pcmcia +peak_usb +pegasus +penmount +percpu_test +pf +pfuze100-regulator +pg +phantom +phison +phonet +phram +phy-core +phy-exynos-dp-video +phy-fsl-usb2 +phy-generic +phy-gpio-vbus-usb +phy-isp1301 +phy-rcar-usb +phy-samsung-usb +phy-samsung-usb2 +phy-samsung-usb3 +physmap +physmap_of +pixcir_i2c_ts +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm80xx +pmbus +pmbus_core +pmc551 +pmcraid +pm-notifier-error-inject +pn533 +pn544 +pn544_i2c +pn_pep +port100 +poseidon +powermate +ppa +ppc-corenet-cpufreq +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +psmouse +psnap +pt +ptlrpc +ptp +pvrusb2 +pwc +pwm_bl +pwm-pca9685 +pwm-twl +pwm-twl-led +pxa27x_udc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qman_debugfs_interface +qmi_wwan +qnx4 +qnx6 +qt1010 +qt1070 +qt2160 +quatech2 +quatech_daqp_cs +quota_tree +quota_v1 +quota_v2 +qxl +r128 +r592 +r6040 +r8152 +r815x +r8169 +r8187se +r8188eu +r8192e_pci +r8192u_usb +r820t +r852 +r8712u +r8a66597-hcd +r8a66597-udc +radeon +radio-i2c-si470x +radio-keene +radio-ma901 +radio-maxiradio +radio-mr800 +radio-shark +radio-si4713 +radio-si476x +radio-tea5764 +radio-timb +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +ray_cs +rbd +rbtree_test +rc5t583-regulator +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rcar_vin +rc-asus-pc39 +rc-asus-ps3-100 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-delock-61959 +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-it913x-v1 +rc-it913x-v2 +rc-kaiomy +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-msi-digivox-ii +rc-msi-digivox-iii +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-reddo +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-total-media-in-hand-02 +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +remoteproc +renesas_usbhs +retu-mfd +retu-pwrbutton +retu_wdt +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-gpio +rfkill-regulator +rio500 +rionet +rio-scan +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rp2 +rpcsec_gss_krb5 +rsxx +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800mmio +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm80x +rtc-88pm860x +rtc-ab3100 +rtc-as3722 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc_cmos_setup +rtc-da9052 +rtc-da9055 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds2404 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-generic +rtc-hid-sensor-time +rtc-isl12022 +rtc-isl1208 +rtc-lp8788 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max77686 +rtc-max8907 +rtc-max8925 +rtc-max8997 +rtc-max8998 +rtc-mc13xxx +rtc-moxart +rtc-msm6242 +rtc-palmas +rtc-pcf2123 +rtc-pcf2127 +rtc-pcf50633 +rtc-pcf8523 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rc5t583 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx4581 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-s5m +rtc-snvs +rtc-stk17ta8 +rtc-tps6586x +rtc-tps65910 +rtc-tps80031 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rtl2830 +rtl2832 +rtl8150 +rtl8180 +rtl8187 +rtl8188ee +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtl8723ae +rtl8723be +rtl8723-common +rtl8821ae +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtl_pci +rtl_usb +rtlwifi +rts5139 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rx51_battery +rxkad +s1d13xxxfb +s2250 +s2255drv +s2io +s2mps11 +s3fb +s5h1409 +s5h1411 +s5h1420 +s5m8767 +s626 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +salsa20_generic +samsung-keypad +sata_fsl +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_rcar +sata_sil +sata_sil24 +sata_sis +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sbe-2t3e3 +sbp_target +sbs-battery +sc92031 +sca3000 +sch_atm +sch_cbq +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_fq +sch_fq_codel +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_plug +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +sctp +sctp_probe +sdhci +sdhci-of-esdhc +sdhci-of-hlwd +sdhci-pci +sdhci-pltfm +sdhci-pxav2 +sdhci-pxav3 +sdio_uart +sdricoh_cs +sdr-msi3101 +sedlbauer_cs +seed +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent_generic +serport +serqt_usb2 +ses +sfc +sha1-powerpc +shark2 +sh_eth +sh_mobile_ceu_camera +sh_mobile_csi2 +shpchp +sht15 +sht21 +sh_veu +si21xx +si4713-i2c +si476x-core +sidewinder +sierra +sierra_net +sil164 +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_of_platform +sja1000_platform +skel +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slip +slram +sm501 +sm501fb +sm7xxfb +smb347-charger +smc91c92_cs +sm_common +sm_ftl +smm665 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +snd +snd-ac97-codec +snd-ad1889 +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-aloop +snd-als300 +snd-als4000 +snd-at73c213 +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-compress +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dice +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-firewire-lib +snd-firewire-speakers +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-ca0110 +snd-hda-codec-ca0132 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-isight +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lola +snd-lx6464es +snd-maestro3 +snd-mia +snd-mixart +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-scs1x +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-atmel-pcm +snd-soc-core +snd-soc-fsl-dma +snd-soc-fsl-ssi +snd-soc-fsl-utils +snd-soc-p1022-ds +snd-soc-p1022-rdk +snd-soc-si476x +snd-soc-simple-card +snd-soc-wm8776 +snd-soc-wm8960 +snd-sonicvibes +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usb-hiface +snd-usbmidi-lib +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +socrates_nand +soc_scale_crop +softdog +softing +softing_cs +solo6x10 +solos-pci +sony-btf-mpx +soundcore +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_dectlk +speakup_dummy +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +spectrum_cs +speedfax +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw +spi-dw-midpci +spi-dw-mmio +spi-gpio +spi_ks8995 +spi-lm70llp +spi-oc-tiny +spi-pxa2xx-pci +spi-pxa2xx-platform +spi-sc18is602 +spi-tle62x0 +spi-topcliff-pch +spi-xcomm +squashfs +sr9700 +ssb +ssb-hcd +ssd1307fb +ssfdc +sst25l +ssu100 +st +st1232 +st_accel +st_accel_i2c +st_accel_spi +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste_modem_rproc +stex +st_gyro +st_gyro_i2c +st_gyro_spi +stinger +stir4200 +stk1160 +stkwebcam +st_magn +st_magn_i2c +st_magn_spi +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +st_pressure +st_pressure_i2c +st_pressure_spi +streamzap +st_sensors +st_sensors_i2c +st_sensors_spi +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +sur40 +svcrdma +svgalib +sx8 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synaptics_usb +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t1pci +talitos +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tca8418_keypad +tcm_fc +tcm_loop +tcm_qla2xxx +tcm_usb_gadget +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tcs3472 +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tda998x +tdfx +tdfxfb +tdo24m +tea +tea575x +tea5761 +tea5767 +tea6415c +tea6420 +team +team_mode_activebackup +team_mode_broadcast +team_mode_loadbalance +team_mode_random +team_mode_roundrobin +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +test-string_helpers +tg3 +tgr192 +thmc50 +ti-adc081c +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmp006 +tmp102 +tmp401 +tmp421 +tmscsim +toim3232-sir +touchit213 +touchright +touchwin +tpci200 +tpm_atmel +tpm_i2c_atmel +tpm_i2c_infineon +tpm_i2c_nuvoton +tpm_i2c_stm_st33 +tpm-rng +tps51632-regulator +tps6105x +tps6105x-regulator +tps62360-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps65090-charger +tps65090-regulator +tps65217 +tps65217_bl +tps65217-regulator +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +tps80031-regulator +trancevibrator +tranzport +tridentfb +ts2020 +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +tsl2x7x_core +tsl4531 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +tua6100 +tua9001 +tulip +tuner +tuner_it913x +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tusb6010 +tvaudio +tveeprom +tvp5150 +tw2804 +tw9903 +tw9906 +tw9910 +twidjoy +twl4030_charger +twl4030_keypad +twl4030-madc +twl4030-madc-hwmon +twl4030-pwrbutton +twl4030-vibra +twl4030_wdt +twl6030-gpadc +twl6040-vibra +twofish_common +twofish_generic +typhoon +u132-hcd +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +ucd9000 +ucd9200 +uda1342 +udc-core +udf +udl +udlfb +udp_diag +ueagle-atm +u_ether +ufs +ufshcd +ufshcd-pci +ufshcd-pltfrm +uhid +uio +uio_aec +uio_cif +uio_dmem_genirq +uio_mf624 +uio_netx +uio_pci_generic +uio_pdrv_genirq +uio_sercos3 +uli526x +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unix_diag +upd64031a +upd64083 +uPD98402 +u_rndis +usb3503 +usb_8dev +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_f_acm +usb_f_ecm +usb_f_ecm_subset +usb_f_eem +usb_f_mass_storage +usb_f_ncm +usb_f_obex +usb_f_phonet +usb_f_rndis +usb_f_serial +usb_f_ss_lb +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmisc_imx +usbmon +usbmouse +usbnet +usbserial +usb-serial-simple +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbtv +usbvision +usb_wwan +u_serial +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +ux500 +v4l2-common +v4l2-dv-timings +v4l2-int-device +v4l2-mem2mem +vcan +vcnl4000 +ves1820 +ves1x93 +veth +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost +vhost_net +vhost_scsi +via +via686a +via-ircc +via-rhine +via-sdmmc +via-velocity +videobuf2-core +videobuf2-dma-contig +videobuf2-dma-sg +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +viperboard +viperboard_adc +virtio +virtio_balloon +virtio_blk +virtio_console +virtio_mmio +virtio_net +virtio_pci +virtio_ring +virtio-rng +virtio_scsi +virtual +visor +vivi +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_pio2 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmwgfx +vmxnet3 +vp27smpx +vpx3220 +vringh +vsock +vsxxxaa +vt6655_stage +vt6656_stage +vt8231 +vt8623fb +vub300 +vx855 +vxge +vxlan +w1_bq27000 +w1_ds2408 +w1_ds2413 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1_ds2781 +w1_ds28e04 +w1-gpio +w1_smem +w1_therm +w35und +w5100 +w5300 +w6692 +w83781d +w83791d +w83792d +w83793 +w83795 +w83977af_ir +w83l785ts +w83l786ng +w90p910_ts +w9966 +wacom +wacom_i2c +wacom_w8001 +walkera0701 +wanxl +warrior +wbsd +wcn36xx +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wil6210 +wimax +winbond-840 +windfarm_core +wire +wishbone-serial +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl18xx +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wlcore +wlcore_sdio +wlcore_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +xc4000 +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_algo +xfrm_ipcomp +xfrm_user +xfs +xgene-enet +xgifb +xgmac +xilinx_ps2 +xilinx_uartps +xillybus_core +xillybus_of +xillybus_pcie +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +xsens_mt +x_tables +xt_addrtype +xt_AUDIT +xt_bpf +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlabel +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_ecn +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_HMARK +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_LOG +xt_mac +xt_mark +xt_multiport +xt_nat +xt_NETMAP +xt_nfacct +xt_NFLOG +xt_NFQUEUE +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xt_REDIRECT +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +zatm +zaurus +zd1201 +zd1211rw +zforce_ts +zhenhua +zl10036 +zl10039 +zl10353 +zl6100 +zlib +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram +zte_ev --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/powerpc/powerpc-e500mc +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/powerpc/powerpc-e500mc @@ -0,0 +1,16568 @@ +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0x05177ace suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x4aa22c02 uPD98402_init +EXPORT_SYMBOL drivers/bcma/bcma 0x2d8a8f0d bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x127a5901 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/paride/paride 0x0300a23f pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x10a51b15 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x3502da60 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x3a526428 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x4aeb7bf2 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x5142fc25 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x89af5313 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xa1c12ae8 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xab1a82d1 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xd1221a65 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xe61ee8bb pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xf5521a1f pi_write_block +EXPORT_SYMBOL drivers/crypto/caam/caam 0xfd2b02dc caam_get_era +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x35c2d7ab caam_jr_free +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x86513be1 split_key_done +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0xbb030d6e caam_jr_strstatus +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0xdc26f56f caam_jr_enqueue +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0xe414833d caam_jr_alloc +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0xf62fa60d gen_split_key +EXPORT_SYMBOL drivers/crypto/talitos 0x7276cd34 talitos_submit +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x06464fe4 dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x3d8a508a dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x4ece49b3 dw_dma_cyclic_free +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x5b1ce08e dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x79a71bdb dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xd6a99ff6 dw_dma_get_src_addr +EXPORT_SYMBOL drivers/edac/edac_core 0xe09e8f6a edac_mc_find +EXPORT_SYMBOL drivers/edac/mpc85xx_edac 0x53d6daff mpc85xx_pci_err_probe +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x10bad99e fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x19a2d77a fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1c680187 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x25fd5014 fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x30021d81 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x320453c6 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x423c4d80 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4511687f fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4e68143e fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x53adcbdd fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6745dbc5 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x788911aa fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x790ef581 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7eda8a1d fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x81a42d51 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9ee74633 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa0179af0 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa67336da fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xae2a1ad5 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd1dc02d8 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xdbe177cf fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe216298b fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0xec5983d1 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf7dab797 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfc192fb1 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfc4a5c1f fw_send_request +EXPORT_SYMBOL drivers/fmc/fmc 0x37560102 fmc_device_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x4202ebe8 fmc_scan_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x4fd9a633 fmc_reprogram +EXPORT_SYMBOL drivers/fmc/fmc 0x54d76987 fmc_free_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x553c3f92 fmc_device_register +EXPORT_SYMBOL drivers/fmc/fmc 0x82bb8b36 fmc_find_sdb_device +EXPORT_SYMBOL drivers/fmc/fmc 0x8a946e80 fmc_device_unregister_n +EXPORT_SYMBOL drivers/fmc/fmc 0x92e9af89 fmc_show_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xd664d47a fmc_driver_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0xf0ce1c96 fmc_device_register_n +EXPORT_SYMBOL drivers/fmc/fmc 0xf47c0757 fmc_driver_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00025916 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00254444 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00667d8a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01fa65f6 drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x026c0d6b drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x027f9c77 drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x049b4dc8 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07bd0c48 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x093dceca drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0965a562 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0addb657 drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c38eed6 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ec527fc drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x107742a9 drm_get_subpixel_order_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x10a002d7 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1210de0d drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x129b7528 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x130b6537 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13c2b083 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13cdaadb drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a9a178 drm_get_format_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1540ff32 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1663b2b7 drm_dev_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x168d1ab6 drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17a0b792 drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x189f6401 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19e44324 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a770ac3 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c53872e drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ce7cdef drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e0ddb77 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e45489c drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2058aa78 drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22a5cb51 drm_gem_dumb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22a652e2 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22e45c3f drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24f0b492 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x250eb212 drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0x261b24f9 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x265efb8a drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27cf46f0 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29ad006c drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a942ab2 drm_mm_insert_node_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c01d8b6 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d80be4d drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e7a4300 drm_rgb_quant_range_selectable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f0b064f drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f44b1d3 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31233c3d drm_pcie_get_speed_cap_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31616132 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31b82a47 drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31d93482 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3620bf1d drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36c6ef9c drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36f91ef3 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37004474 drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0x383e0b70 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a4f7ae drm_format_num_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38e1b0a4 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a962c3a drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ac1fef9 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ae7b2d0 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b9d009a drm_format_plane_cpp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d2429c7 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d4b8108 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d74d5be drm_unplug_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e4a6c43 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e5ae6b2 drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40414c82 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x405d66ac drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x429fd446 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42fe9d8b drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x453fc792 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47081aab drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49fabf0d drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c45e771 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c511235 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4fece724 drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5005c9b4 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50502ab1 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e28c07 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x526f6f71 drm_rect_calc_hscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x549ccc79 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55ff429f drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58e0c84e drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5937ec95 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a67e614 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5aa9643a drm_connector_unplug_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ab6d961 drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c0dd4f5 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c77c9b0 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5da95b2d drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e547570 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f68626b drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f8a661e drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6090be61 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60f6daf2 drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62572344 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x629c05e1 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63f6c367 drm_bridge_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6427cf14 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65acec04 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65d901d9 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66803841 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6900d335 drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c14001d drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c2591b6 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cee2e42 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d035fba drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6da57ac2 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e78cf2a drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7092593c drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x70cf1863 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x730af8ee drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7462f6d2 drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79f31c15 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4e7297 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b68c1fa drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c855ea1 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7eea7231 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f267d6a drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fd52c87 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x808fcf71 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81ba930c drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82919f69 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8525a2b3 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85cadff6 drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x862b322e drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a585953 drm_bridge_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a6ee46a drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ae3e8ef drm_prime_destroy_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b2651ff drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c873726 drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de13715 drm_format_vert_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e51713f drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eb92d71 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f290f12 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7df3a7 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8fefc7ca drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ff1d172 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92c0b363 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92cc94b2 drm_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9321c0f7 drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95d7268a drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x960ac354 drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98130ebb drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9942177b drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9972db48 drm_rect_calc_vscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b3adbcb drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d70fc2a drm_rnodes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9deffa03 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9eafe797 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9eccfe56 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9efc26a3 drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f55e5ab drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f68123e drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0542918 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0e2ecb7 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1f4e9e6 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa28078b2 drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5dbd572 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa96acfcb drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab39cf7c drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad9792aa drm_prime_init_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaeac2be3 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafb0cb6f drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1607910 drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb465b130 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb572a9f0 drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb65150ef drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb707623b drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb70af87a drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb71bbb49 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb7a9cb9f drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95beb55 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba9bb697 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc461249 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd13c7cf drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd6f213f drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe001c53 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf830697 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbfada5a6 drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0a744e4 drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0ad2527 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1ac8aea drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1b66ab0 drm_framebuffer_unreference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc354285f drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4000f9f drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc448ff6f drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc507c1b1 drm_crtc_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7f7cc11 drm_vma_offset_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8f5e87c drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca05d29d drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca45efbc drm_format_horz_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca7b9515 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc4eaf05 drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcec158f0 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf814c82 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2335101 drm_fb_get_bpp_depth +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2b31f73 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd80bf83f drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd96e4815 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda991c36 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdab94c23 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb5a5852 drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc5f49d6 drm_prime_sg_to_page_addr_arrays +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdeff64ab drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2ef97e4 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3841e19 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe56076d9 drm_framebuffer_reference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f46e6e drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe939bc04 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecd60f03 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee708c87 drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef172bb6 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefdf9b69 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf08d712a drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf219f21d drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf239f22d drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3002c6d drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf43996ea drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf446a0e2 drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf450f526 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4c20cdd drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5672d14 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf626d4fe drm_mode_group_init_legacy_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6614cb5 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6d3a423 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf78ae275 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb2b8bfb drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb497216 drm_mm_insert_node_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc8acba2 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfcc9fc97 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd063935 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdce53f2 drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe4a68c7 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc6c87a drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x098e47d2 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0af801d0 drm_dp_link_power_up +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0ddd9e62 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0e6e86b3 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f96ec70 drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1036c9bb drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1413176b drm_dp_aux_unregister_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x148b994f drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x163251c8 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2cfb7a4e drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34871adf drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34b8fa3c drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3b3f134d drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x43d43e0e drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x45ba37ff drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x54ef01cc drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x666cd789 drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6ab4b85f i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6ae58391 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x711a004a drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x731a4272 drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x77b8d791 drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x78da4aee drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fbac015 drm_dp_link_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x812c069c drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x81e0fe78 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84e924ba drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x85f22148 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9a0196c7 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa77858bb drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa7b8526f drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8d6809d drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa928e772 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaef2b38c drm_has_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb30b9dac drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb95be885 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc5cedf93 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc9d6009a drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcf44d80d drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd775cf4e drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd9c32d23 drm_dp_link_configure +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdc7224c0 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdf3e170a drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe1a5bd71 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe557136a drm_pick_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe6ad9de6 drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xed2fa4fd drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xedcb0d0a drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf5dc9875 drm_dp_aux_register_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfd54cb53 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x3c7c2bea drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x79a0bdd1 drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0xa86e65ff drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00205b06 ttm_agp_tt_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x12e5346a ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x16ea1210 ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x17102412 ttm_mem_io_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1aec0fa7 ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ba8d68c ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x23dd4e0b ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x246fdb17 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2720f8b6 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2d501681 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x307633f4 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x35584ce7 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38afa448 ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x485a5bc0 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4f9dcb33 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x505f5c22 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x522fe00d ttm_mem_io_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x573cc6ec ttm_bo_del_sub_from_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x59e60bca ttm_pool_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5a8fdfea ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cf59609 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x663c8c9a ttm_prime_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x672ac632 ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b1d568 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b89f66 ttm_dma_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6939c4ea ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6c68a6be ttm_mem_io_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6fdfa020 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x73f862fa ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d55da85 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x825f64b8 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x83daa720 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x84a13931 ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x871c2441 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x880a15ad ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x88b1b102 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x89a443de ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8b3c0c10 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d14adbf ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x94894449 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa11d86b6 ttm_bo_add_to_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2a129fd ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa73de2a9 ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa8a85559 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaa50ef3a ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xacdceda4 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb07c878e ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb35702a4 ttm_dma_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb59d15a3 ttm_agp_tt_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb83c6470 ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbebf9682 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbf498735 ttm_mem_io_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc19018ee ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc22e9ad0 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc5f0c2da ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc6b76418 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc8861fd8 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce6e43a8 ttm_base_object_lookup_for_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7f51742 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd8edb115 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe198bd1c ttm_agp_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe2711445 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe48596a3 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xeb2fec28 ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xec1cef1c ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xecc65d6a ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf76838c5 ttm_pool_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf958abea ttm_bo_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc38feee ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfdf1b73b ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfe79c12f ttm_bo_dma_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfe9f7620 ttm_bo_device_init +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x19fa7ee7 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xb62ae991 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x401ef583 amd756_smbus +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x13317be6 st_accel_common_probe +EXPORT_SYMBOL drivers/iio/accel/st_accel 0xf88020fd st_accel_common_remove +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x071ac027 hid_sensor_read_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x0e9302a6 hid_sensor_write_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x1cc19503 hid_sensor_parse_common_attributes +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x4e2203b7 hid_sensor_write_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x8f86a3da hid_sensor_read_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x4a75a442 hid_sensor_setup_trigger +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x821a1f4b hid_sensor_remove_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x074d7047 st_sensors_trigger_handler +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x14b7f5b9 st_sensors_set_axis_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x209574dc st_sensors_sysfs_set_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x394b781c st_sensors_set_fullscale_by_gain +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x480675e0 st_sensors_read_info_raw +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x4dd80e2e st_sensors_init_sensor +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x549a816e st_sensors_allocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x56f92441 st_sensors_sysfs_get_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x635e4aaf st_sensors_set_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x6cf167d8 st_sensors_get_buffer_element +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x75235304 st_sensors_deallocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x836ebdc5 st_sensors_sysfs_sampling_frequency_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x95c81584 st_sensors_sysfs_scale_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x9ece1037 st_sensors_set_odr +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xc12444a6 st_sensors_check_device_support +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xe287d246 st_sensors_set_dataready_irq +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0x71ff60c3 st_sensors_i2c_configure +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0xf5513daf st_sensors_spi_configure +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x6231af2e st_gyro_common_probe +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0xc311b0b0 st_gyro_common_remove +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x41a76f6d adis_enable_irq +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0xdff7ac47 adis_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/industrialio 0x030bbeee iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0x19055a16 iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/iio/industrialio 0x1e3b3a05 iio_buffer_read_length +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x4afe9c79 iio_buffer_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x4ed3eb9c iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0x4fbe3b0d iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0x56e409eb iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x57ec647c iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0x5f1fd9ea iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0x6195514b iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0x650accae iio_buffer_register +EXPORT_SYMBOL drivers/iio/industrialio 0x68c65d4b iio_buffer_show_enable +EXPORT_SYMBOL drivers/iio/industrialio 0x6c37a820 iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x83131d5c iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x8933b874 iio_buffer_write_length +EXPORT_SYMBOL drivers/iio/industrialio 0x947c408e iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0xbac7f4b7 iio_buffer_store_enable +EXPORT_SYMBOL drivers/iio/industrialio 0xbb07a123 iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xeea82540 iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xf231b471 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/iio/industrialio 0xf2cd3d87 iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0xfbf9d94a iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xfcd89fe2 iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x6750f045 iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0xee9901fa iio_triggered_buffer_setup +EXPORT_SYMBOL drivers/iio/kfifo_buf 0x0637ca99 iio_kfifo_free +EXPORT_SYMBOL drivers/iio/kfifo_buf 0xeffb3e17 iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0xee66e855 st_magn_common_probe +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0xfc51fbf1 st_magn_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x28edb6ed st_press_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0xaab68316 st_press_common_probe +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x049ace30 rdma_addr_find_smac_by_sgid +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x04b8b6d7 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1c3c0ad3 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1ea5767b rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x273f4cca rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x32a8402c rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x36a7951b rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x446fd7c9 rdma_addr_find_dmac_by_grh +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x59252c9d rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x001b4ed7 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0b7b243a ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1c43d56b cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x299b60ce ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2efd9cdb ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x59a8a343 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8147146b ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x84abe044 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8e66a4d4 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xaa55a6b9 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc17bce1d ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd3e7f5ff ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe26aeb5e ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf378cf95 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf61a761d ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfcae143f ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfd5f5e18 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x036b0e2d ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06f54e25 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0705b55e ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x07075b3e ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0cd20ef2 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0fd7aeb6 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x11327238 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1202b694 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1436206f ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1720cbff ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17b9a35c ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x194f32cd ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e346e59 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x20cd566f ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x23fca51e ib_resolve_eth_l2_attrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x24e8b6a6 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x25f72256 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2bb106be ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2cb9e66d ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f782bb3 ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x31bfa67a ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x34e185f1 ib_create_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x379867ae ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x40888b9e ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4254a015 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x522492e8 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x52b64ec7 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55f132d5 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x591a3109 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x603cf59d ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x607549a5 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x61da20ec ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x63731181 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x66352582 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x671eb138 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e030e26 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x749f174f ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x76844775 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7cd6e635 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8001bb86 ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x835ca57f ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8475c108 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87bc480d rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8b8b76b6 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9254655a ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x931117a3 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9575c849 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9a78b3b8 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d6151ea ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa840f7cd ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa9cf0116 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac217df9 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xad6f5d74 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf885e11 ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb12840b9 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbd5d29c8 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe241efb ib_destroy_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc3389448 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc3d3af60 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd2c034f ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xced38879 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xceef120a ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd1fbb571 ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd41b3b7b ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd7026895 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd84d3343 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd9792a2f ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda150996 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe11cd2b4 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe2bcf7f8 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe41b2efd ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6581913 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe705fa37 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xef26294b ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf99d8b12 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfd7b34b5 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfdc98366 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff9869cc ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x227e5659 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2665dcb8 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x32dc9311 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3c5a9efd ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4806b1f6 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x63bc14f5 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x66b83c59 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7bc54ae4 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7eda92c6 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa6594232 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa87dae64 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xec6d8bbe ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x22f07253 ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x4ca45f0d ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5328d7a6 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9a1cd50d ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9ace240c ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9fc0d8fc ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa4e7311e ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xad74bd0a ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb885830f ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xddc330e7 ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf9d03513 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x2569d757 ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x52a6ce77 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7971c00e ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe350f2aa ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2298eace iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x420b6c91 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa8f2d591 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xaed534b0 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb68c9f69 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xd3a8f8a8 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe7f6a913 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf825aa1e iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x01301662 rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2b2f1dfb rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4622afcf rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5176504e rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5d01dd4c rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5e74ea19 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x764f5514 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7785061d rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8760e77d rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8dd411fe rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8f1436ff rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9b3b549e rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa0c6d6ee rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa5142b05 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb4871e71 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb591c517 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb5d10b42 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb855d014 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbfa10ad5 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc2ba274c rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xebef02f7 rdma_leave_multicast +EXPORT_SYMBOL drivers/input/gameport/gameport 0x19e02985 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x45a71ead gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4edebd08 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x58357a0c gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x766d9781 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb32a9245 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc229915a gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd3c9bbae gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd75dbf61 __gameport_register_port +EXPORT_SYMBOL drivers/input/input-polldev 0x0c80b548 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x24ef5951 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x262d454a input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x8faacbee input_allocate_polled_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0xc0177920 matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x4e51f86a ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x674bd2a8 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xebe8a044 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xf8ba3d62 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x02801897 cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/sparse-keymap 0x0f23bc0e sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x1d717b92 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x39950651 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x3d43f5e1 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x46499dae sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xdc0ba19c sparse_keymap_free +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x19ea9198 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x88322310 ad7879_pm_ops +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4ba66ca3 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4cc61f1f capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4e9a6b9d attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x54e1f3ff capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5b72d9b6 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6826b5bf capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6a79b123 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xbee15afd detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xef861f2e capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf7c591d2 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x234b2e96 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x24b7d8ac b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x3bfb7c0b avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x40ad0057 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x49c3be45 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4e40752b b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x571eb853 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6a840cbd b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x916a470e b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9d1d5d19 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa0b5f1e6 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xccd4c58a b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xcd170f05 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe21d3aa4 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf2d604b2 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x0882696b b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x52b7d2ba b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x5578d68d b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6894dd5d b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6c08c79a b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x71e50ce5 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x7d8c61ba b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x95500bc0 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xe5dcf3db b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x7ab59853 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x2165b52e mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x7ca58ab2 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x90343ce0 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xbbc64718 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x0563cdcd mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xae66a679 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x94a247d7 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x48401557 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x7dc4e3bf isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xa9c01c58 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xea3eecd7 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf55a99e4 isac_irq +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x06eca55c isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x84d83e96 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xa09c3bd3 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1c53ec8d mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2c82df2b mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x44694121 bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x48106f58 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x51698aee mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5483cad7 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x67868966 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6ced6fa2 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x712d4299 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x74f9afbb bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x848b74a9 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a09bac0 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a4e99fb mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x98b5da86 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9ef9aadc mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa5b6b7c1 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb898aab9 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc931c9e0 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd4c6c6be create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdbb73e05 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdd2a255c mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe73db9fb mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf8492355 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf86d3313 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/bcache/bcache 0x1bd88ab0 closure_trylock +EXPORT_SYMBOL drivers/md/bcache/bcache 0x2f38193d closure_wait +EXPORT_SYMBOL drivers/md/bcache/bcache 0x6f6d1e09 closure_put +EXPORT_SYMBOL drivers/md/bcache/bcache 0x84b42b6c closure_sub +EXPORT_SYMBOL drivers/md/bcache/bcache 0x9a42c7cb __closure_lock +EXPORT_SYMBOL drivers/md/bcache/bcache 0xe3c17af1 __closure_wake_up +EXPORT_SYMBOL drivers/md/bcache/bcache 0xfe8581fc closure_sync +EXPORT_SYMBOL drivers/md/dm-log 0x1fd6f71f dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0x3c3f1719 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x6d36811d dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xc269eae8 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x17e976cd dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x38c54ba6 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x6ebb32af dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xce93ab3c dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0xe5ece18f dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0xfcc87ac1 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/raid456 0x5ccb59c9 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x07ee48c6 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x18b27d83 flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x214fc54d flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x3445d91c flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x4e31ff8e flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x709bab9f flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x849da54d flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x96ca4e0c flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xb888ed98 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xd21e12be flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xe97ef6eb flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xe9d89c61 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xee804715 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x28cc7392 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xcf7a7b1e btcx_riscmem_free +EXPORT_SYMBOL drivers/media/common/cx2341x 0x092311c5 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0x3db8be82 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x4f75baf1 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0xa784eac4 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0xd4274a95 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0x6284d715 cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/tveeprom 0x6a1bef1f tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0xcc103d3f tveeprom_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x005166d6 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x17523ce7 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x19591134 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1b2dda8e dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1da70b67 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1f1dd47d dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x22d6ce4a dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x28ee2ae8 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x361a7512 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3f7224d5 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4d3b9a9c dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4e6fc629 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4ecefaee dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5f176f50 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x65e07a5c dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x78d62338 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7ba5d8bd dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x81711731 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8450b7b2 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x847a1292 dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8e47dce5 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9794e6ed dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9b1f6f40 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xaa73e4f3 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac7573a0 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xaf86a09e dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xafc4482c dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb46019a6 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb7f950b6 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xbe0a00ae dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc469204a dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd62413dd dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd68a099e timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdb576668 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe26202b6 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe2ad75a0 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe33a38b4 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf0ba4819 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf42251cc dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb-frontends/a8293 0x64dcd12e a8293_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9013 0x216637df af9013_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9033 0x3680ac70 af9033_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x0d7bfda2 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x21c9bde3 au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x5205c3eb au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x5d608454 au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x68acafb8 au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x9bbfc072 au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xc6a8d403 au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xc82a20e2 au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xe5df41e6 au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xe929630b au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0xc51f4a74 au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0x04efeaa6 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0xdb49ef95 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0x5a354b57 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0x9f31527b cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xcaca7989 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xf83660e3 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x44db4132 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xb13f67a8 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xebd88786 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0x4cb17cd7 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x7147a348 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x7198f0d0 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xb26034d8 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xbc6e5d92 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xd5229dd6 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x02267160 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x146903c9 dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x21936fba dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x37703003 dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x46373c4c dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x58b9343b dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x646f0d7e dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xa90ae65d dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xafc5781c dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xd0bc77da dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xdb490438 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xecd9b94b dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xee572fa4 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xeec5ef09 dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xf57848fc dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0x8cb7e3ae dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x0e850bab dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x5eb4f467 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x8d4bb5bb dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x9ee61b43 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xcae61e37 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xd90c38f8 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x5c14a347 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x6d105f6a dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x88b30800 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xc5fb288a dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x042b1584 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x0d9aaba9 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x12c1eac1 dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x1e6c7cb7 dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x2f16f6ab dib7000p_set_agc1_min +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x382798a2 dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x4155c7b8 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x6be03def dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x6e0f0520 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x9944b7a4 dib7000p_get_agc_values +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xa2fd0922 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xc099c297 dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xcee0456a dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xe2820f67 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xe6e6eef4 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xfef24f6b dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x067aff08 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x161ac623 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x33fa7d1f dib8096p_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x47718db8 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x5fc19245 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x6419b4f3 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x69aa30b3 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x8e3848ce dib8090p_get_dc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x8f2a563a dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xa3c6182b dib8000_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb4bf8248 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb78237b1 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb982c417 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xc0f7c60a dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xc196804f dib8000_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xc8935911 dib8096p_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xca974f5f dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xced4ea68 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xf58a4d39 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x3b2e7aa3 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x64eb80e6 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x6d20cf7e dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xb4c1b615 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xd0b45708 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x5775ca0e drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x8edbd8f7 drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x4e140f31 drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0x4b28c159 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0x00c1bfdc dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x2ac83b32 ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x13306601 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0x78a1b471 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x343868d5 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/it913x-fe 0x71700b78 it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0xfc1b6d63 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0x1b230324 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x99396637 l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0x9a248749 lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0xec2a9d8c lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x311db3fb lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x644a9f77 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x5a4adaee lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xd8f8f594 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0xc4812f77 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0xd70c3b38 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0xd0d681bc mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0x96aeaced mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x07473ef6 mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x6fb62126 mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0x7c3ce1f4 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x87c23795 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0xfd460d13 or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0x10b4abe5 or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x00230237 rtl2830_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0xb8a3feda rtl2830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2832 0x1c686407 rtl2832_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x23fbf7af s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0x46c85e40 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x22896e2a s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0xc5723229 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x3d7d16e7 s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x3f5fd9b9 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp8870 0x02491d46 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x9ad5e49d sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0x831b1424 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0x53e88618 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0xf59d4795 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x393d85fc stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0x2c341cb9 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0x7770c8bf stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x3d883cee stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0xe54b1cd3 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0x97f88fb8 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x11a3f60b stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x94e4936e stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0x94759ada stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0xa39fbc12 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0x6a4e61eb tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0x76131c4f tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x98005d18 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x3a4ab7bd tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0xea2624a9 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10071 0x12957d05 tda10071_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x03129144 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0x51950ad4 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0xda53d8a8 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0x40cbf389 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0x2f8ba1fb tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0x2dbbdae0 ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0xc9f90d55 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x410ee53e ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0xbc49c8aa ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0xbc5b4aa2 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0x0a0044e0 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x8a5e6c89 zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x2ec9ee4f flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x64beaa82 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x6d115dfe flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xa1cf22ff flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xc34ebe1a flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xe2d3656f flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xf633ca60 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x4b08ef6c bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xeecdae6a bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xf0e742ee bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xfb4e9cb1 bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x54ff9fd8 bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xd0aaa72a bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xe4f19fd6 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x0d894784 rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x53132509 dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x640386de write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x851f2145 dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x95e77eb8 dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x9b7c7630 read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x9cfa7b55 dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xc0a0fc2f dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xc6aae87c dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0xa6b76593 dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x253f93fe cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x3e957029 cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x78908720 cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x929ab1ca cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xca9981d7 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x591953d7 altera_pid_feed_control +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x84a2a200 altera_hw_filt_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x8d100bd5 altera_ci_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x1c0ad3ca cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x349f44b1 cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x5e8193d6 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x6d938f1c cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x9d243905 cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xabf94c13 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xc5d38741 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x6eb7a01e vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x8b5a6966 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x37575834 cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x88c53581 cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xe88f4d49 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xf8b6b54e cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x07676690 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x0f184e8c cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x751186dc cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x763d1b54 cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xe04c3174 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xe59a42a0 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x04775dd9 cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0c5225d8 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x1dbe85d2 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x234c25a0 cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x29019631 cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4216fc84 cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4bcd78a3 cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4d0cf939 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4fa189db cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x57dad43e cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x64ce11dd cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6920e3d5 cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6e2f1b61 cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x76c342f4 cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x80a63ad0 cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x8c231018 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x964ee0ab cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xbcfd5742 cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xd6acdf34 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xdf250543 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xe57f5cd1 cx88_free_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xf53f6939 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xfb685825 cx88_newstation +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x048cab58 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x17dfd57d ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x2b5c5c39 ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x36e910ef ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x38816466 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x63dfc97d ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x72205cdd ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7d9fbd6c ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7f905e8d ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x8b238ec9 ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x92261599 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x9678abf4 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xa99ce403 ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xba82770b ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xc8e6b781 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xcaae3231 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xe50a2cc1 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x0b02c896 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x11cb4cb4 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x172b66de saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x329399a0 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x73039031 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x79c0622a saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x8a381578 saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x8de989cb saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xa6e1c117 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xd5e1e246 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xeebd7239 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xefecdd26 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xf6313bb3 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xeb899d99 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x011a5ac6 videocodec_detach +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x629fc1bb videocodec_attach +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x8a5c8743 videocodec_unregister +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0xdbcc60d1 videocodec_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x006ceac2 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x34cd0086 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x35f1754b soc_camera_lock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x688aad56 soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x8bec3503 soc_camera_power_init +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x9b80bf51 soc_camera_host_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xa250044d soc_camera_power_off +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xc17ae8cf soc_camera_unlock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xe2d76d84 soc_camera_power_on +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x25c52d97 soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x2863728e soc_mbus_image_size +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x5f3e3558 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xa9546115 soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xfe2c3a07 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x071866f0 soc_camera_calc_client_output +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x5a10c707 soc_camera_client_s_crop +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x714ce50f soc_camera_client_scale +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xd37fe0db soc_camera_client_g_rect +EXPORT_SYMBOL drivers/media/radio/tea575x 0x6878bf18 snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0x8a832694 snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/radio/tea575x 0xeb556858 snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0xf4ca4832 snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x295a0863 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x5dde2cb4 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x66b97e8a lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xb14cef8c lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xc71fe957 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xd1e0ec1b lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xdcae87c2 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xeb80f27e lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/rc-core 0x02f997ae ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0xb379ff95 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/tuners/e4000 0x77064683 e4000_attach +EXPORT_SYMBOL drivers/media/tuners/fc0011 0xdf945597 fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x7c8a2803 fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x58521c21 fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x821de616 fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xbd09c6dd fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc2580 0x234d80ea fc2580_attach +EXPORT_SYMBOL drivers/media/tuners/max2165 0x98913b8f max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x92f47219 mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0x3afc76a8 mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0x11bf1eec mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x14d0a891 mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x545e7843 mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0xf93f8b07 qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18212 0x92121cb0 tda18212_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0x326bbbc6 tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tua9001 0x3e0fddcd tua9001_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0x6685775e xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/tuner_it913x 0x20ee7051 it913x_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0xbccf19de xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0x4dc30081 xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x00938096 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x17f342c7 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x24bbd309 dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x6ef5caaf dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7978093c dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7a841d86 dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x8ff9e8d6 dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xbf3bddd4 dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc55999ac dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xd0d4c6fc dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xe14f3d29 dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x3c427913 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x7d8a941a dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xa0aaa06b dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xb86afd49 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xbdf80e23 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xd2b823f6 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xee302a29 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x53c14306 af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x06992d86 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x1cdb7e37 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x33fb55bd dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x35b834d0 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x53711cb9 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x770244d2 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x77a02b0f dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x9413ebb2 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xae5a33ce dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd553785c dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xda6faed4 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x2103d0cf em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x4790ae06 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x146f6dd8 gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x1e714287 gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x327c1ff0 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x4767c3d5 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x67ae909d gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x6c927e0f gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x72cbffd5 gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x78bae435 gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xbf59bf27 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xc80cdf76 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xd881e7d5 tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0xdbde3331 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0xf01932fb ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x4adaf0f3 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x53c9394f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x5f96a661 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0xabe27502 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x0d4e594c v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x4679e3b1 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xd66b5fb1 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x0e9a0a9f videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x68022963 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x71e93b08 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xaf6f0ae9 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xb0e0ad25 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xea5905ef videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf2-core 0x04a7d771 vb2_querybuf +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x04b1cc8d v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x05f47816 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x06d1c25b v4l2_clk_put +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x07bcfb82 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0d46d10e v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0e1c9eb5 v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1071feb0 v4l2_clk_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x134c2785 v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x13d331e7 v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x140e371b v4l2_of_get_remote_port_parent +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x158d754f video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1734af7f v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2c421a60 v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2d77d9d9 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3047e2cf v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x30ac2502 v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x31e149b8 v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x34ef5c4c video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3541c613 v4l2_clk_unregister_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x36847d11 v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3b7216da v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3db7f213 v4l2_of_get_remote_port +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3e9e3a4c video_usercopy +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4615b5ff v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4725d6fd v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x47cd20b2 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4a4f6390 video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4f6b43e2 v4l2_clk_enable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x65e1e0c2 v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x65ff4080 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x683bc144 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x683e3dad v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6b8085c4 v4l2_clk_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6e3a1d9b v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x76526c18 v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x76abeb73 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a167aea v4l2_clk_get +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7f923f2a v4l2_of_parse_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x835c05d1 v4l2_clk_disable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8b8834c5 v4l2_clk_set_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8e474596 video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8ef1d41e v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x901c5c0b v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x90d00c5d v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x94507ce9 v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9707c970 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9732b1a7 v4l2_async_notifier_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9fb0ae8c __v4l2_clk_register_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa09c02f1 v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa9ff55b7 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xaa4ee207 video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xaffd501c v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb90cbedf v4l2_of_get_next_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb99a029b v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbac4a225 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbdf9231d v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbf7d61d4 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc12cf8f8 v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc18485bd v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcf37770c v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd056c447 v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd24ccb9e v4l2_clk_get_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd3d862b7 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xde319bde v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xde67f6c4 v4l2_async_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdf0d26c5 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdf0ef75b v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdf311bc1 video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe0027705 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6fce6f2 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe986f629 __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xeabbebb8 v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xeb384bf4 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf41d3aa8 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1cf150fd memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x29835d96 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x49ff13e5 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5a3c23ce memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x6bf9eaf7 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7478b203 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x76052e51 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa5987a36 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa9a3b99c memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xac88b5af memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xbdd643b9 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfb5a94af memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfde2e317 memstick_new_req +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1297b6f0 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x132016ad mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1349db9e mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x18a47642 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1bc1d78a mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1e99a744 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x23c855e1 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x33b503c8 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3a07f347 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3b4911dc mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3c2b6720 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4b43ea11 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4bc5c2bf mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x66ad0d64 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x67895a66 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x69b2d7f0 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7d190fb0 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x84504e2c mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x857c4a9c mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x86ea2ddf mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb5648fde mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc796a96f mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc948979f mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd0cc414f mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd0e6f00c mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe02a99ea mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe78cb065 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf3223e18 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf3988e27 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x05b136ee mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x067b0215 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0866eed3 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0db56f8c mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1fde3869 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x28020abe mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2aeaef9b mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3ce2a9c3 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3e2dda67 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6671d41b mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6987e687 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6cb03426 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6df5a285 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7bbfe24c mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7e25b868 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x833b22aa mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x83d3970a mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8a2078c4 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x948f10bf mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9598b4ac mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb941ac30 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdb244906 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe393e95c mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xefc1047f mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf75eecbe mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf8c8699c mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfda9b7a4 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x01442f05 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x31d102e8 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3c84a655 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5e077d4f i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6ec28f6e i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x73b1a634 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7d9355c8 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8f61f256 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8f6490b4 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9bbf3cbc i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa430578f i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4467bc2 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb8307ed8 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbf1676a8 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd11ff59f i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe177e160 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf8088e52 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf9927b0a i2o_exec_lct_get +EXPORT_SYMBOL drivers/mfd/cros_ec 0x1cc82468 cros_ec_remove +EXPORT_SYMBOL drivers/mfd/cros_ec 0x9fec8e55 cros_ec_register +EXPORT_SYMBOL drivers/mfd/cros_ec 0xd2260d5e cros_ec_prepare_tx +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x6a5dc0db pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x85f371e9 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x04b846dc mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x05d5b34c mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x28a5749d mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x49d50e17 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7748e5a3 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x80f4a51d mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8aba2955 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb39efe4a mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xbd16f6be mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc25e0083 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xdc7a9df1 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xe6941ded mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xeb5069cc mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/tps6105x 0x20881a75 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x51127e61 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0xe356351e tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x21f0057a ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xf02e2867 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x58765536 altera_init +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x89228e3e ssc_free +EXPORT_SYMBOL drivers/misc/atmel-ssc 0xe5e6d703 ssc_request +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x0e9755b9 pwm_channel_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5a8b82f9 pwm_channel_handler +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5d5c2951 pwm_clk_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x6a5e1f70 pwm_channel_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x73330c97 pwm_clk_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0xeb7f2c6f __pwm_channel_onoff +EXPORT_SYMBOL drivers/misc/c2port/core 0x493e3564 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0xba948b4c c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x395f3d12 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x97dcf6ba ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x05a51bc9 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x31dbd687 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x5ebd83ce tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x6a01875e tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xb61747ca tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xc08b11ba tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xc26e6ec0 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xc88669d1 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xdcb53aee tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xdf8dafbf tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xe69df786 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xf9e86dd6 tifm_unmap_sg +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xd911e478 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x1790930d cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xc048b760 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd6711a1d cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x37a9d874 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x507bedf6 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x8045ef6e unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xf8e45110 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xee764c76 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x1af240be lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x21b8831d simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x675d581a mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtd 0x6cf780e0 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/denali 0x07f2bee1 denali_init +EXPORT_SYMBOL drivers/mtd/nand/denali 0x832dd540 denali_remove +EXPORT_SYMBOL drivers/mtd/nand/nand 0x16150fd1 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x2b2a547c nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x492446fd nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0x8794737e nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xc3b00cfe nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0xe1b09438 nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x87bdf58f nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x8c63112d nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x9450dcdf nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x71f40bf5 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xa57c863d nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x57a31e57 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x867b06ca onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x9bc50aaf onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xe9dd6fa4 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xeb73f4c1 onenand_default_bbt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x02a8af79 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x18e36cf2 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x305a54e2 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6855fa6e arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x697021a0 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9a0bfaa7 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd4700558 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xebdadc43 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xee175d4d arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf5ecbe20 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x1952edc2 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x50ccfa7e com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xc1d87165 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/dpa/dpaa_1588 0x893dc3eb dpa_ptp_init +EXPORT_SYMBOL drivers/net/dpa/dpaa_1588 0xfe2b5769 dpa_ptp_cleanup +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x0ee4f2f1 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x30353773 NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x30b4caff ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x68b556d8 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x78582474 ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x89c717e5 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x8b9788b3 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa8564494 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xc44220d0 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xe36f1c4b ei_poll +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x5d7f32dc cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3fbbca51 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x903f094f cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9ae8861f cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9d3b484b cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa2bceb13 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa38f11dd dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xaf5e80b3 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xba05dc31 t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc8a200e4 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xccb774f1 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xcd7b5d9e cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe4b33c8f cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe66bae15 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xebd5de58 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf626af96 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xffe1f692 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0b0e7969 cxgb4_disable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2144fc34 cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2e32188a cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2f358e54 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3602adc3 cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x36b6cd6f cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x407eaa04 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x434b9989 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x435c762f cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4c2e3573 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5322bcce cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x55b6ec90 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x626a0c88 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x63e0bd2c cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6e2f6ec6 cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x856b6d86 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb7abd76f cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xba082afc cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbfd59e4c cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc4f4c775 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc5e6bec3 cxgb4_enable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd70d1b42 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd9df05bc cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe854a160 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xea8544e7 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf55dff29 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf7cff5ca cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xff58abcc cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x0e712340 vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x4f650da7 vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x9196d804 vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xb241ebdb vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xc6d39538 enic_api_devcmd_proxy_by_index +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xd42bcc41 vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x05c424a5 be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x68e08edf be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xbab62e22 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/freescale/gianfar_driver 0x79f28897 gfar_phc_index +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0193da1a mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x023bf679 mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x04bffac0 mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a4d9170 mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0aca3cf9 mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x11bda241 mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31c82000 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x582e225b mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5c6fc367 mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x617036f9 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x62de4975 set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x64178eb8 mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x87b09422 mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x930eb685 mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x95c03144 mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa2bd5a1b mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa547576c mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4f93371 mlx4_set_stats_bitmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbbab5abe mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd644dca mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbf24c68e mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc1eff8dc mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc34e5a33 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdf82ded2 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe16e5863 mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf59440a4 mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0159d89b mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x02d7fc43 mlx5_cmd_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0ce8d9d8 mlx5_core_query_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x19ed59ac mlx5_core_dump_fill_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x30d65568 mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x376c5c9e mlx5_core_destroy_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e314820 mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x489859ba mlx5_core_arm_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x582b048e mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x62bacc28 mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6eb8c38d mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x75a65bce mlx5_cmd_free_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7c5de7f1 mlx5_dev_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81df9aa9 mlx5_cmd_comp_handler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81f48342 mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x824807c3 mlx5_cmd_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x895b2448 mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8b61a510 mlx5_core_create_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9216dab9 mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9776f700 mlx5_core_get_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa5ae1250 mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xabbc56c2 mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc42580bf mlx5_cmd_alloc_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcad7a3f1 mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xea306b3d mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfa12809e mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe289560 mlx5_dev_cleanup +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x2865fc55 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x3b40df7d hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x687f177a hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa977007c hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd592fa8a hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x02950c86 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1fa3e7ad sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x57cab8d2 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x77185bf8 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x81feaa7a sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x928599bd irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa25e620f sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb0373fb6 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd027b7c1 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xedc70002 sirdev_raw_write +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mdio 0xddc98749 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mii 0x1fd684a7 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x6140075a mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x864aa952 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x9602451d mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x9d185168 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x9d4e6216 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xabd8d5ee mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0xe5c6fba4 mii_check_media +EXPORT_SYMBOL drivers/net/ppp/pppox 0x3c03556b pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0x8a17602e register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xca0adeb9 pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x422ef1bf sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x10952310 team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0x17709078 team_options_unregister +EXPORT_SYMBOL drivers/net/team/team 0x9e6445ce team_option_inst_set_change +EXPORT_SYMBOL drivers/net/team/team 0xa5709341 team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0xc4d73852 team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0xc6afd151 team_options_register +EXPORT_SYMBOL drivers/net/team/team 0xd57f5765 team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0xf0a40360 team_mode_register +EXPORT_SYMBOL drivers/net/usb/usbnet 0x395c6e70 usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0x58775509 usbnet_manage_power +EXPORT_SYMBOL drivers/net/usb/usbnet 0x5895d8cd usbnet_link_change +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1108a751 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x4d5274d1 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x51c5ee5e unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x53cf8888 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x58214680 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x76f9bdcd unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x978fa1ad attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb24c5847 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xbe1d08bd hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd2b769aa hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf4bb1ba4 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x0c805f56 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x18b9095e stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x595fe395 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x5d2d16d5 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0b5e60a0 dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x13e3982b ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x152a8624 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x3ca991ac ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4b7852e8 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x53358ce3 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x748a3645 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x89a1ed5e ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9245a9d3 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9fce9505 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb3636442 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf03a6c93 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x05bd7ea0 ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x1b5ac32d ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x2fb4b2c2 ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x5e697463 ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7d54891d ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8246be6c ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x895f9dc2 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf096710 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xfd59464a ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0199ec46 ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x17505ceb ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x2407833c ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x27cf1694 ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4c6ddcb4 ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4cf4fd95 ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4e1380ee ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x9ea146b4 ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xa52d3383 ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb6f6d23f ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xc1e41675 ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xc78c1deb ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xce447c7b ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xeaa328d4 ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3635bc76 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa55ad080 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xb6189796 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf2d17b4d ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0320f1ce ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x06a873e6 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x06c018d3 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x06f27505 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x07859cb9 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x11d07fc0 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x12c6a126 ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x12db1d37 ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x159f55c2 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15c510dd ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17173b32 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x19d7ddc7 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x271d734e ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a4d2260 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b4a91d1 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x32d27892 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3713c446 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x375f8d23 ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x37d7a38b ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38247091 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3827bd79 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x39e538c6 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a002fba ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a21b4a2 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x400b621a ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x418068ea ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48cd0ee7 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b08d4d8 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c0d1015 ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c316665 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x50fc25bf ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x55d664fa ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56b97668 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x600b8018 ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x625b4fc2 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6489c3ee ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x65e47034 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x662ebc75 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a9c3581 ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ad527f0 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6f938ab6 ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7525fd3e ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75a945ea ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ad4fc4e ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80495113 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83c60355 ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x85cf237b ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x89a84385 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8aed1126 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8af439fb ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8dc8de2d ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8e88dc1c ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x92396e09 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9322285c ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x936da040 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x93e77014 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9497f970 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97a2dac5 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f8ca310 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa3e057fe ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa83597cf ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaa67a4d1 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad0cf7c3 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad724627 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0436b27 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb101fd9f ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8513baa ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb3ba0b2 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbbfa93b ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbeabb56d ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf99af5f ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbfc8ecbd ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0332448 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0981ceb ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0ae8877 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2700836 ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc6f63dfb ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7934cfe ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca032e8b ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2337d74 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd4f7911f ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd7fa02ea ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda1b251a ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdae7ea00 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdda4d624 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe0551826 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe23f4fb0 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe996cc39 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb3f952f ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xec329663 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xed79f323 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xee0384ee ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeedefb27 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf6bfd25f ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf866173e ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf886d2ce ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc3e9972 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfcc4e184 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/atmel 0x10f5011d stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x6afde9d8 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0xb86ca8b2 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x1b3ee016 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0xcba40f8d brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x008df5c4 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x28970679 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2dc227f8 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x532ce354 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x5db64ecf brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x6b3a211a brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x71a9f2e7 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x95fc6650 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xaa2958e7 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xaefde3bc brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb653147f brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xd02317e7 brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xf271d7bd brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xfb044021 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x05236b46 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0f5ac832 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1fd59b08 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x25f41c0f hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x393790ef hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x43227a08 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5049555a hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x59ac9d8e prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x73f9f40d hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x851be114 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8523af92 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x86017573 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8effbda2 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x93b7ca4c hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x99d28fb5 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xaa3d23bb hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb6986d7f hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb7bda996 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb8ee32b9 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc7f102b8 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc8874e9c hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd33bf91e hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd34204bd hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe03377b1 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf69bd265 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0db5760a libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1eeb742c alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2062b155 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2ff34b48 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x39184146 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x43073382 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x44513410 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4aebe4a1 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x61804dbd libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x66166d2c libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x71f8b8f8 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7627a72b free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa4b4b5ee libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb7827a07 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xce3a6596 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd45356cb libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdd9e5ac1 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xea13e6be libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfa15b1ec libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfd13115f libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfe101a59 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0007dcb8 il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x037c3dc6 il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x05a88c46 il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0830657e il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x094378a6 il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x09d1769b il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0c115937 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0cecc90f il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0d496e0c il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0e9ecef7 il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x12c489be il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x14f3a01b il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1a53da57 il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1c99a79e il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2299b47c il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x22c505a5 il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x290084e9 il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x293af3c7 il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2f09f1e0 il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3214d417 il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x386e34ad il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3c0ee385 il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3e1e307b il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x40226590 il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x419f8ff5 il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x44f2d61d il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x45c2f169 il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x483d3bbf il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x48dc1f54 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4aa39103 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4ef9c46d il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x50955035 il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x50c35545 il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x511491d1 il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x56306096 il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x564c6740 il_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x57ae3bc8 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x61d454d6 il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6235f70f il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6451c7da il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x64d9220e il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x662be57a il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x67ff02d5 il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6a002d33 il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x705fd01c il_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x726450c4 il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7338c6ce il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x734d9136 il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x74cd6446 il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7990c1bd il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7b6c271f il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7d7b3ae5 il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x84b31286 il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x88faa988 il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x89c3c8aa il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8d85fdad il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8e4d3bb8 il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x937c0542 il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x985a8174 il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x98892baa il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa24cb05b _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa262f064 il_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa63a7b08 il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa701b508 il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa7858eff il_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa8cee925 il_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xab558c9e il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb3ec73e5 il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb7bd33ff il_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbaf45df1 il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbca669ff il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc39cf12c il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc400adbe il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc4050719 il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc46057ff il_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc54359a5 il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc88db4f9 il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcf1d87cd il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcf6fb110 il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd14d709b il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd157759d il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd3521305 il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd5069e22 il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd87b69c1 il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd9558caa il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd9772646 il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd9d69fad il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdc3534d2 il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdf925564 il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe1ecb090 il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe435493a il_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe647f7bc il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe6b6a556 il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xedb8a720 il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xee6b9309 il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xefcf7f7b il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf1f7e9b8 il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf4d6bf40 il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf501278b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf73bdebc il_set_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfac96613 _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfd8741e6 il_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfe1b09d3 il_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x08ee1e7d __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0d9eb5ff __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0e7bc05f __tracepoint_iwlwifi_warn +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x201337b4 __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x249e4b06 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x36dcef55 __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x4919d1a5 __tracepoint_iwlwifi_dbg +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x67381a2a __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x79e9bf26 __tracepoint_iwlwifi_crit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x7edec07d __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x8bfcc307 __tracepoint_iwlwifi_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x9a12c9c5 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xc0827b2f __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xda36f3a4 __tracepoint_iwlwifi_err +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x21fa9dce orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x27e6baaf orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2acbbf0c orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4ec3ab9e orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5bb43b6a orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5dea5bf1 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x893dce10 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x915c1bea orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa0c7c378 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa2bb24aa orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc3ce73ff orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc42b0029 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc5a02622 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc6ca6bbd __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe10d2437 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe3f311dc orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf1efdf76 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/btcoexist/btcoexist 0xf53086da rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x051b8c82 rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0c4a8fd8 _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x140560ea _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x14f73a33 _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1c39a6a0 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2743842a _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2aee645a rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2cb994ab rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3813ed9c rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3c49b1ac rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3dab5c73 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x473fdc75 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4a4d1433 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4c72976b rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x52249a92 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x562985a6 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x593118b4 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x61ddd25b rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x63f3d924 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x647abc37 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6568d9b9 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x70116912 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8f41093f rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x93096c26 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x94154106 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x96a203e8 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x972146bc rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x973a2070 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x98abf680 _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa63fcefa rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa846bec4 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xae5a80cf _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb03dd8f2 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbad510e1 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbbf25009 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc4781905 _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc8433f65 rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcc8b6d3a rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd55cf6b8 rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd5a42529 _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf7d47b35 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x147ab0c5 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x7b4a4925 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x14d1f8c0 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x3fc87d97 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x70f92c3e rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x9bd6c524 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x023aeeaf rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0e8241b1 rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x119c34c5 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x207fbb70 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2735a71c rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2ba0a2bd rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x353e78ba rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x35e5f95d rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3661f388 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x41828b77 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6514fdd0 rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6ae7edd0 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79188a02 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7b1e9f5c rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7d46975e rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x9637f6b3 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb7a3339d rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb7b4f55f rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc60a295d rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe0485caa rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe3730d62 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfa8be1ac rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x4da27ffc wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x903ec973 wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xc821426b wlcore_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xd8cc2b05 wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/nfc/microread/microread 0x948dca03 microread_remove +EXPORT_SYMBOL drivers/nfc/microread/microread 0xe910ad5a microread_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x99300cae pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xc3c9be18 pn544_hci_remove +EXPORT_SYMBOL drivers/parport/parport 0x11e844b2 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x12095124 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x136eaf5a parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x1438e717 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x226019c5 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x2e8bf2a8 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x30ec28d0 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x330d1025 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x37dc101b parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x3d63f8af parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x49137eae parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4e6073b5 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x5de134fe parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x6a47782a parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x6b414d00 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x7bd6dcce parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x7e93fe04 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x82e7ff0f parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x83f2c223 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x859b3db2 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x93d7a41d parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x9d26c0a3 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xac3e54fe parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xba1660bb parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xbf7fa00c parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xc0e8b2f5 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xc12f5db9 parport_release +EXPORT_SYMBOL drivers/parport/parport 0xded6c608 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xe0bfd659 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xf9608b0b parport_write +EXPORT_SYMBOL drivers/parport/parport_pc 0x1fa0d094 parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xba48224d parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0385c248 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1ab93a06 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x20787686 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3874a2bc pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x38ebdfe8 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x481feb75 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x85b8b166 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x87f334d3 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa3f0c406 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa716c23f pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb6a7b1b4 pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc3e1629f pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc4b75508 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc5931204 __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcbb67596 pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf643e14d pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf7745717 pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xfde33f7c pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xfee79edd pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x08ced9d8 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x119eab6f pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1223a972 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x21596d46 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4b2bc65f pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7909be34 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa2f75c81 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb6f20459 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xbf81c95c pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcdccc5ff pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf2969f3d pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x8780f669 pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xdcd3c28f pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pps/pps_core 0x27b62edf pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0x5bc15647 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0x7276ef50 pps_lookup_dev +EXPORT_SYMBOL drivers/pps/pps_core 0xd73fa27c pps_register_source +EXPORT_SYMBOL drivers/ptp/ptp 0x0ce2457c ptp_clock_unregister +EXPORT_SYMBOL drivers/ptp/ptp 0x572e9096 ptp_clock_index +EXPORT_SYMBOL drivers/ptp/ptp 0xd471ce29 ptp_clock_register +EXPORT_SYMBOL drivers/ptp/ptp 0xf41169a4 ptp_clock_event +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x0286a82d rproc_shutdown +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x06fc9ae4 rproc_da_to_va +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x3ad869ff rproc_report_crash +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x7589465c rproc_add +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x8031579d rproc_vq_interrupt +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xc471601d rproc_del +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xc49e99ec rproc_boot +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xeeac76c3 rproc_alloc +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xfb977f25 rproc_put +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0011e459 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x01d9677d fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x132dabf9 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x21ef4b64 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x378c824e fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5da1215a fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5dd61249 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x700a0e97 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8e5759c0 fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa18ff4a1 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa6ca5922 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd7491806 fcoe_ctlr_destroy_store +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0008e9db fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x029d2dc9 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x05ff4e5a fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x07f01cad fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0aed8fb6 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0c690200 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x13a78660 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1df62b1b fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x24b3e88c fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2a0c7da5 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2b4f1724 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x30e04eaa fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x367b1ed5 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x437ffe7f fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4523c990 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5032b75f fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x518f8715 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5cb8a139 fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5cef5b92 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6012ad02 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x62581efd fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x673721db fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x68e053b3 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6ec9f894 fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x71238127 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x712a93d6 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x715baed6 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x786045fc fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x79779ce3 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7e0764b9 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7e66a531 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9ff68e8c fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa48db927 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa5f0828c fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb010aeee fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb19441fa fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb231832f fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb9c17e84 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbaa8e1ee fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbe82480c fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc1d75e3f fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc2275e67 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc6863603 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc6e0f574 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd0c8e288 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd1357091 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd2a8ef6a fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd95f28af fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdd809321 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe127d92c fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe23b2beb fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe34c7f9e fc_linkdown +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x16432eb6 sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x2beac99c sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xa1504fb2 sas_wait_eh +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xaed118ed sas_resume_ha +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x37584231 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x07461a51 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x07b8c9d3 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1e2095df osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x217bb4cf osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x36baf6a6 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x422b7920 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x50e74389 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5802ddce osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x600a0e41 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x61b410e1 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x66bf0f16 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x68c9a29e osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6b2cb02f osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x758defb8 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7604bd22 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7c8c3e08 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7f5d636d osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x811a14a1 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x87e87d34 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x886529d1 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x97abff03 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x98d5a9d4 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9eac9bda osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa49203a6 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa6e7b16e osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa7f34de8 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa9cbdcdc osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb4ffdc93 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb754fd9e osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc476a014 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc821313b osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd3159e12 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd53b9134 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf0767b8c osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf50a2508 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf563e581 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/osd 0x16b193d1 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x1e0bd35f osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x86f0837c osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xbef7c982 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0xf3ee8524 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xf8e9dfc2 osduld_device_same +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x015ab50e qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x247cda2a qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x29c36180 qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x3ad67c82 qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x58e0144c qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x850c7c24 qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x9e6b585c qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xb7341534 qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xb7900fe1 qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xc2f2bea6 qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xf8a03367 qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x0e35dcd8 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1a3eac19 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x48e3b032 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x887451e7 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc2bb423e qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xee40e006 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x01d055a6 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x355843c9 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xabc5b24a raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x088ee9c3 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x18a8eec7 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x194adeaf fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x21406dcd fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x46703c27 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x719b32ff fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x768e73df fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa7490421 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xad420681 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb71f5178 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbb55f9f9 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd3afb6c8 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf49166f5 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x04fa6106 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0ac33724 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x19500a98 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x23166095 sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x27804002 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x30686aab sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3a059f55 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x46148050 sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x558cdff0 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5ad9902f sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5c621d76 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x623fa615 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7e8f3508 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9ea31d5d scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa43af1b7 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa5bc12d4 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaabc6f49 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xab730cee sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaec428f5 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb6a8a5c1 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbcac16c9 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc806642c sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdd4c3aa7 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xebb7f05f scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xefc00212 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xefe8b076 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf8a25f8c sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfed5a673 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x5e9ef5a3 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x79eb5f00 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7e977d20 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x99127d3f spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xabde18d2 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xaf06179b srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xed756f28 srp_rport_put +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xfa23e58c srp_reconnect_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xfc7172a7 srp_rport_get +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x705d3893 ufshcd_runtime_resume +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0xdf2fc2b7 ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0xf938c1ca ufshcd_runtime_idle +EXPORT_SYMBOL drivers/ssb/ssb 0x02519cd7 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x25a1b996 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x32f6d84d ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x33ac42e1 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x3b9181b5 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x52738041 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x5c2c795c __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x6120f03f ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x6aad3cd9 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x774a2e23 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x7bbc2dd1 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x9b607a28 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xaf391e11 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0xb01d8583 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xbbbff27f ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xcb559497 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xcc497941 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xd2361441 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xdddf9854 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xe2952065 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xecac8aea ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0x2d3ec11d fwtty_port_get +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0xdfebfb5e fwtty_port_put +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x4d1f941f adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xb295c23f adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x34278222 ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xd80ef121 ade7854_remove +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0bce7eef lnet_counters_get +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x126c4291 lnet_create_reply_msg +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1366b7ac LNetSetLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x19670622 LNetNIInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1b191752 lnet_msgtyp2str +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1e1d257c lnet_copy_iov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1fe16fd5 LNetGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x204b8151 lnet_counters_reset +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2aa9953d lnet_cpt_of_nid +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2ac93e90 lnet_connect_console_error +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x33202a6c LNetGetId +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x33441555 lnet_finalize +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3558e584 lnet_iov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x37b265bf lnet_copy_kiov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3c779ee0 LNetPut +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3c90f53b lnet_set_reply_msg_len +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3f4f5b46 LNetNIFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x41db9c06 lnet_connect +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x473ad33b LNetDist +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4a40927a lnet_set_ip_niaddr +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4b8b388d lnet_extract_kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4bb00492 lnet_copy_iov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4f9cb871 lnet_extract_iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5811a721 LNetInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x58a1ca89 LNetMDUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5fee352c lnet_acceptor_timeout +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x61f784b2 LNetClearLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x64cdea3a LNetCtl +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x65a291f9 lnet_register_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x6f7be171 LNetEQGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x722c76e5 LNetMDAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x7d59a7fe LNetMEInsert +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x854ab844 LNetEQWait +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8a3064f2 LNetSetAsync +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x9de986d3 LNetEQAlloc +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa8c2760b LNetFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa414970 LNetMEUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa9b477e LNetMDBind +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb0926bc4 lnet_notify +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb75f7953 LNetEQFree +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb82c686c lnet_net2ni +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xba4d280e lnet_parse +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xba5566d2 lnet_acceptor_port +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xbf0760a2 LNetMEAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xce6dc146 lnet_copy_kiov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xd1111e09 lnet_kiov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xdc043e7b the_lnet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xf1b316bf LNetSnprintHandle +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xfc6eedd9 lnet_unregister_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/selftest/lnet_selftest 0x078db139 lstcon_ioctl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x04ab3d2e seq_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x09889de8 client_fid_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x1c4bb5f9 LU_OBF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x2b81563a client_fid_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x375e6f8d LUSTRE_BFL_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x8accfd33 seq_client_alloc_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xae61cff5 LU_DOT_LUSTRE_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xc729e26e seq_client_get_seq +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xc997a02f LUSTRE_SEQ_SPACE_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xd4fc6a03 seq_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xd7d3c37c seq_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xecee2727 LUSTRE_SEQ_ZERO_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x24e4cf6d fld_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x2b62c01b fld_client_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x80e27036 fld_client_del_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x888f5f49 fld_client_proc_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xc02f0d26 fld_client_add_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xdc564352 fld_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xf34daffa fld_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0009586d libcfs_sock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x000c507f libcfs_debug_dumplog +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x01db5172 cfs_percpt_atomic_summary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x02ed7f45 libcfs_sock_getaddr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x03387ca6 cfs_curproc_groups_nr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x04d3ce6a lbug_with_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x06401e01 cfs_hash_is_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x069f9bb2 cfs_wi_schedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x08917712 cfs_hash_for_each_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x08ada613 libcfs_console_backoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0b4b1546 libcfs_lnd2modname +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0d1b8a30 cfs_percpt_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0de6c369 cfs_cap_lower +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0e4820ab cfs_percpt_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0f5eff79 cfs_percpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x117c8a95 cfs_cpt_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x123b6908 cfs_hash_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12426266 libcfs_run_lbug_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12c54b77 cfs_hash_findadd_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x15565c7f cfs_cpt_set_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x17ac7833 libcfs_deregister_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x18c503cd cfs_percpt_lock_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1a60d439 cfs_parse_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1d41c4c0 cfs_hash_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1d5a3928 cfs_timer_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1e8cdb47 cfs_race_waitq +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x23f6f445 cfs_restore_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2663147a __cfs_fail_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x277e62bd cfs_hash_for_each_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x27b6d3ba cfs_ip_addr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x29aafd0c cfs_hash_hlist_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2a641ef9 cfs_hash_dual_bd_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2b1e0458 cfs_get_environ +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2dbe54b2 cfs_trimwhite +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2efcc0e6 cfs_block_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2fb7eae8 cfs_hash_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x30986343 cfs_range_expr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x31fc5082 cfs_crypto_hash_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x35998edb libcfs_sock_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x377f93fb cfs_srand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3834f243 proc_call_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x38828b92 cfs_cpt_unset_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x389ca502 libcfs_debug_mb +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x39fdcd2b libcfs_debug_set_level +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3a62a183 cfs_cpt_set_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3c1285bd libcfs_subsystem_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3c8c2510 libcfs_sock_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3d5e6098 cfs_race_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3e5e7727 cfs_hash_rehash_cancel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ea730c0 cfs_gettok +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ef0d90c libcfs_kkuc_group_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3f0d9281 cfs_wi_sched_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4087e2b4 cfs_hash_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x411db754 cfs_crypto_hash_final +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x413056d8 cfs_cpt_weight +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x41ab33a1 libcfs_ipif_free_enumeration +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x42e22feb cfs_cpt_table +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44688a0a cfs_block_allsigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44839bbb cfs_rand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44f07cfc cfs_pause +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x468bace1 cfs_hash_rehash_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x47fdb4d1 cfs_timer_is_armed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x48f163c6 libcfs_str2anynid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4a99af72 cfs_clear_sigpending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4b982291 cfs_hash_bd_peek_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4d89e988 cfs_block_sigsinv +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4f1f2fa5 cfs_crypto_hash_digest +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x50345570 libcfs_str2net +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5051b6d2 portal_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x509d38b0 libcfs_net2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x52e9cfc1 cfs_cpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x53b383e4 cfs_cpt_unset_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x54fd9a71 cfs_percpt_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x58a7ee00 libcfs_catastrophe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5946ec2b cfs_percpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5b20921a cfs_hash_for_each_nolock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5c013b81 cfs_expr_list_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5ce62c0e cfs_cpt_table_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d3be65a cfs_crypto_adler32_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d73c3e3 cfs_expr_list_free_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5dce9e80 libcfs_lnd2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62289d65 cfs_array_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62f56738 upcall_cache_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x63b4967a cfs_hash_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x64685fef libcfs_console_min_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6564c55b libcfs_console_max_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x65dd9f0c libcfs_run_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x66136d2d cfs_timer_arm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x67398404 cfs_wi_sched_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x68497dbf cfs_cpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6930c10d cfs_crypto_hash_update_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c4cadc8 cfs_hash_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c605eaa cfs_cpt_unset_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c905b5f libcfs_watchdog_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6dfa9ea1 cfs_crypto_adler32_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6e6af71c current_is_32bit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6f928e1b libcfs_debug_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7190502f upcall_cache_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x71f662a3 libcfs_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x72f4e5f9 cfs_hash_bd_move_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x75161168 upcall_cache_flush_idle +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x752858fb cfs_cpt_table_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7562cd14 cfs_hash_del_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x771695b1 cfs_hash_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x785b7372 cfs_hash_dual_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x79009be4 libcfs_sock_listen +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7a3d49ae cfs_expr_list_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7a47b94d cfs_hash_size_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7b0b748a cfs_ip_addr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7bf6c936 libcfs_sock_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c078c80 libcfs_sock_abort_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c73bc4b cfs_hash_rehash +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c7986cf waitq_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7d93cded cfs_cpt_of_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7e6f6485 cfs_ip_addr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7f40de0f cfs_hash_debug_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7fda989d cfs_fail_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8151c3aa cfs_cap_raised +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x83d795e4 cfs_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x841679dd upcall_cache_get_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x856f6ba0 libcfs_kkuc_msg_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x857aaea7 libcfs_register_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x87f3bb87 cfs_hash_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c6be9ab cfs_percpt_lock_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c85e4e6 cfs_crypto_hash_speed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8e61d47b cfs_cpt_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f12bb52 libcfs_log_goto +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f45f10d cfs_init_timer +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x91504e8b libcfs_kmemory +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x940ed192 libcfs_stack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x949221dc cfs_hash_cond_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x95620e8c cfs_wi_deschedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x97b0b9bc cfs_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9879b229 cfs_get_random_bytes +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9f82f712 cfs_trace_copyout_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa1cbf250 upcall_cache_flush_all +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa2b68b2a cfs_array_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa3a0a4ec libcfs_sock_getbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa6b9dee6 libcfs_kkuc_group_rem +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa711aec5 cfs_cpt_table_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9088531 cfs_expr_list_values +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9dc74e2 cfs_trace_copyin_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9eae690 cfs_str2mask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xaaf59b75 cfs_cpt_set_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xab887583 init_waitqueue_entry_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xad019238 cfs_str2num_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb00dfd91 cfs_hash_dual_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb53b5569 cfs_cpt_spread_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb5811937 libcfs_sock_setbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb883b006 cfs_percpt_atomic_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbab577e8 cfs_hash_for_each_safe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbada117b cfs_cpt_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb9cb508 cfs_curproc_cap_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbd5d492e cfs_timer_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbf7a37f1 cfs_signal_pending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc0ea7fc0 cfs_expr_list_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc1708189 cfs_hash_dual_bd_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc1b20836 cfs_hash_add_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2551d32 libcfs_kkuc_group_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2911d96 cfs_expr_list_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2dfd791 libcfs_console_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc39fd2f9 libcfs_panic_on_lbug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc3eb614e libcfs_ipif_query +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc47433a6 cfs_capable +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc49b1c62 cfs_percpt_atomic_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc77a24c3 cfs_cpt_set_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc9b78bb4 upcall_cache_downcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcb385db9 libcfs_debug_binary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcbab8493 schedule_timeout_and_set_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcc20e694 libcfs_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xccc45639 cfs_free_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcd38904c cfs_wi_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xce1a88f2 libcfs_arch_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf61bacb __cfs_fail_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf678304 cfs_hash_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd0aa642a cfs_hash_rehash_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd0d8d08a cfs_cpt_unset_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd2965f33 cfs_hash_bd_del_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd46225d8 cfs_percpt_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd48d8f72 cfs_hash_dual_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd6a52be3 libcfs_printk +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd7bbf963 cfs_hash_dual_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd7c4f765 add_wait_queue_exclusive_head +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd9541990 cfs_strncasecmp +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd96f406d cfs_cap_raise +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xde17bb8d libcfs_isknown_lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdf2789c0 cfs_curproc_cap_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdffc951d cfs_timer_disarm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe3bf6897 cfs_percpt_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe6555032 libcfs_ipif_enumerate +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe7b54314 libcfs_arch_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe94553b9 upcall_cache_flush_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe9b11552 cfs_hash_debug_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xea4988bf libcfs_sock_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xec1f56d5 libcfs_str2nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeccafa5c cfs_cpt_online +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeceac781 cfs_fail_val +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xedf3a25a cfs_timer_deadline +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeed48ba7 cfs_hash_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xefbf6d86 upcall_cache_put_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf2c02048 cfs_cpt_bind +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf372d1c2 cfs_firststr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf440bb38 libcfs_kkuc_group_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf5e4a175 cfs_hash_bd_add_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8a8644b libcfs_id2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8efb8c5 waitq_timedwait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf94025d1 libcfs_str2lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfacb8667 cfs_hash_getref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfe565fa9 cfs_crypto_hash_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xff0f98a6 libcfs_debug_vmsg2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x3d7035a7 ll_iocontrol_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x482287fc ll_direct_rw_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x960273ca ll_stats_ops_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xa0ef35e0 ll_osscapa_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xcd3cde92 ll_iocontrol_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x26952c77 lov_read_and_clear_async_rc +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x27095531 lov_stripe_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x2aa1dac1 lov_device_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xa288d560 lov_stripe_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xf311ef64 lov_lsm_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xfd12bd74 lov_lsm_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x24e1671d lprocfs_counter_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x3bcbdc4b lprocfs_stats_alloc_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x497daa88 push_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x4d8d6dfa lprocfs_counter_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x509db3c6 fsfilt_register_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x8553b369 obd_memory +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb3d30815 fsfilt_put_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb4f8ee63 lprocfs_read_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xbbb9a514 fsfilt_get_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xc85f4c13 fsfilt_unregister_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xd210d270 lustre_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xdee28fbe l_dentry_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xeb9705e1 pop_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x14a47f31 it_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x9c22b84f it_open_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xb57d8447 it_set_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xf46a886f it_clear_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mgc/mgc 0xdc287f95 mgc_fsname2resid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x00638090 cl_locks_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x00f2c980 llog_copy_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x01665e34 class_parse_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x017a9190 llog_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0341e82e cl_page_list_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x035852d0 lustre_swab_llog_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x03d64375 cl_page_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x03f03e3b cl_pages_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x04044ed6 llog_obd_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x04cfb69d class_uuid2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0530c7b8 lu_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x057f6d4b class_find_old_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05af1920 dt_quota_glb_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05f84e88 LU_BUF_NULL +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x06a21a40 llog_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07258613 class_find_client_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x072e0407 lustre_in_group_p +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07500ad0 cl_page_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x078fc252 cl_lock_hold_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07aa68bb lustre_swab_lustre_cfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0836daca lprocfs_register_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x083942ff class_del_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x09918a53 cl_req_page_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0a2a9c30 cl_lock_user_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0a8d6513 llog_cat_cancel_records +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0ace33e1 cl_page_list_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b2420ed lu_object_invariant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b4abbb8 llog_open_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b73793c cl_page_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b989ace lprocfs_rd_num_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0c7b4d13 class_exp2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0c9bcaab cl_enqueue_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0ccf4be4 class_export_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0cf99bff dt_acct_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d0061d3 cl_page_list_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d5daa37 cl_page_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0e64c045 lprocfs_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0f6c0c24 class_put_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fe91547 obdo_to_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11495519 lprocfs_write_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x116ba7ec lprocfs_exp_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x117f74a8 cl_sync_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x122b2d91 cl_io_lock_alloc_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x12c45708 cl_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x139ca1e5 cl_object_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x142215ef cl_page_is_under_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1491dc30 lu_context_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x14a3835e llog_cat_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x14e430a3 obd_llog_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x15409141 lprocfs_alloc_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x154dfb80 dt_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x15f927cd cl_object_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1678a59f cl_lock_hold_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x16e96a81 lu_context_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17260880 obdo_cpy_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x179a5867 dt_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x188fea3f cl_page_vmpage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x18c1cda7 cl_lock_closure_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1a7b617f lu_cdebug_printer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1ac829b5 cl_lock_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1bf029bf cl_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1c0d8c4d dt_index_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1cb1e4aa lprocfs_exp_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1e4914f8 cl_lock_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1e491736 lu_env_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1e8eb8a2 class_conn2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x20054fa4 cl_page_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21179068 cl_lock_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x211e36b3 lustre_idmap_lookup_uid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21307495 lu_buf_check_and_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21820e0a lu_dev_del_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21e26ee5 cl_page_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x221826f1 class_parse_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x22a1599c lprocfs_seq_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x244790aa cl_page_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x24f33fd2 cl_lock_nr_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2547efae lustre_uuid_to_peer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x259ebac6 obd_alloc_fail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x268725c8 llog_cat_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x275cdc7a cl_env_reexit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x27f75ba1 cl_page_list_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x284077ea cl_page_make_ready +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x28eff37a cl_io_is_going +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2944d1b5 llog_osd_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x297cf5e0 class_handle2object +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2acb6b92 lprocfs_rd_connect_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ae1cd79 kuc_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2b4c48e9 server_name2svname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2c89dce6 dt_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2f6c253f cl_lock_user_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2f8dd778 lu_context_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x308578b5 cl_io_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x31781ba1 llog_thread_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x31d78c1f llog_init_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x321fdc97 lu_context_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32817862 cl_req_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3312e442 cl_page_list_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x331d7f0b cl_page_clip +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3328ae44 cl_lock_descr_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x34591677 class_detach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x35885862 lprocfs_nid_stats_clear_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x35ccf7df cl_lock_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x35ed87dc cl_req_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x367c0055 lu_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37050e39 cl_io_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37ed6e4b at_early_margin +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38318eec cl_page_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3851f7d2 llog_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38fb0c90 class_match_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x393aa07e cl_page_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3940d603 local_file_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x39c8580f class_handle_hash_back +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x39e6fcd0 cl_2queue_init_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3a005065 dt_otable_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3af00eb4 cl_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3c3dcd61 cl_io_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3c52de8d lprocfs_rd_server_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3da2aa39 lprocfs_alloc_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3e8ae5f6 class_num2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f2d6b77 cl_page_is_vmlocked +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f429589 obdo_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f78ccef llog_exist +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f9c83c1 capa_cpy +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4010cad0 cl_object_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4047d29b lu_object_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x404bd7a7 class_handle_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x408421cf dump_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x40bc90af cl_env_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x41c9a482 cl_io_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x420f436d obdo_refresh_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x421d4abc cl_page_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4385e1c7 md_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44b295f7 llog_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44e41abb lustre_posix_acl_xattr_filter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x450942b5 cl_io_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x452d4409 capa_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x45d723d0 cl_page_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x462bfab9 lu_object_put_nocache +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x46f5239d dt_txn_hook_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4739ac5e class_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x474ed5bd lustre_swab_ll_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47b35f7d statfs_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x494cfb52 lustre_acl_xattr_merge2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x496ca992 cl_page_cache_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a0f6ea lustre_posix_acl_xattr_2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a29223 lprocfs_find_named_value +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ac58713 obd_connect_flags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4bc95506 lu_context_key_register_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4bf356ca lustre_idmap_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c7c475b llog_declare_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4cc94998 lu_object_anon +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d13458b kuc_len +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4de36f3c lustre_idmap_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4dfe9ffb class_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4e813131 cl_object_has_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4f7e83d7 lprocfs_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4fba4346 dt_directory_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4fe386d4 lprocfs_add_simple +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x507e9e05 cl_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50c7fc36 ptlrpc_put_connection_superhack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5137eb89 cl_env_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x51d88cc8 cl_io_rw_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x521d9f20 lprocfs_free_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x528cd216 cl_page_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x52a1f483 cl_page_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5363c831 obd_llog_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x53718179 llog_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x538a7490 __llog_ctxt_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5418e3b6 cl_conf_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54407233 cl_type_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54885f87 ldlm_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x558bec27 obd_ioctl_getdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x55e1f988 local_index_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x564e9d44 init_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x568b5195 cl_io_lock_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x570d09ae lustre_swab_lu_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x57359b1b cl_lock_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5792f2b6 llog_cat_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x592439da llog_declare_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5925bba3 cl_object_attr_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5953bbeb cl_sync_io_note +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x596cfd6d cl_lock_ext_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5981d113 lu_object_locate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x599ca205 cl_vmpage_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a20d896 obd_memory_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5abe1f85 cl_page_is_owned +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5af4e726 class_devices_in_group +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5bc022c5 lprocfs_dt_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d0a0d7d cl_2queue_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d34ae0d cl_lock_mode_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e491fdc cl_io_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e6b14b5 cl_io_submit_rw +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e93341f lprocfs_oh_sum +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ea38da2 class_disconnect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ebd3a6a cl_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ed188a9 lprocfs_add_symlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5efd4b71 class_new_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5f0ee412 cl_lock_discard_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5fd360f6 lu_context_key_degister_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5fe97b73 block_debug_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x608de22a cl_page_list_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x61360a92 cl_page_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x624ffe24 lprocfs_counter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x62999cc7 class_process_proc_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x629c792b lprocfs_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631a518d mea_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631fd7b9 lustre_ext_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x64710e5e llog_cancel_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x648a7f66 lprocfs_free_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x661073b4 lu_context_key_revive_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x668a59e4 lprocfs_rd_numrefs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6734adbd lprocfs_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x677fd7f9 proc_lustre_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6788bd49 cl_env_nested_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67977b42 lprocfs_remove_proc_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67a90622 la_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67c583ca lprocfs_rd_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67dc223a lprocfs_remove +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6890d175 lustre_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x694171a5 dt_record_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69af7f0e cl_lock_closure_build +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69c42114 at_min +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69ee14c8 lprocfs_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a47807e cl_req_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a5c63c7 lprocfs_rd_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a9362a8 lprocfs_init_mps_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6b509d64 cl_lock_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6bb6d421 lu_buf_realloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6cfd47c3 class_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6d38b521 class_manual_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6d516800 dt_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6e57d839 lustre_register_client_fill_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6ef1a491 dt_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f14daad cl_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f19d299 llog_cat_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f3e6225 dt_quota_slv_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6fe9f2c2 cl_lock_modify +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6feb93a5 cl_page_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6fffd4b0 lu_site_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x70686041 cl_lock_get_trust +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x70c4d459 lprocfs_at_hist_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7146958f cl_lock_descr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x71a1edf6 lu_device_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x71b8a833 lu_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7223bee3 capa_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7281511d dt_index_walk +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72acc29a cl_unuse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72ddee4c obdo_le_to_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x742559b1 class_unregister_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x742852ad cl_use_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x74bac490 obd_devs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x750932dd lu_site_init_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7519f618 lprocfs_init_ldlm_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x751c4718 cl_page_list_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x752f71a8 class_get_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7531ec57 cl_2queue_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x756a77f3 class_parse_nid_quiet +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x757b8d1d cl_lock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x75c8fdc7 cl_io_prepare_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x75dc2f85 cl_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x76adbcdf obd_exports_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77009db5 cl_page_find_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77326f09 class_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77657ba5 lu_context_key_degister +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77bb476b local_oid_storage_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77c1c895 cl_page_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77d2089a class_name2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7802fcd7 lustre_swab_llogd_conn_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x78430a8e cl_env_unplant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x789796a1 obd_zombie_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x78eb6eef cl_page_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7aa1c227 llog_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7af2b18d cl_io_loop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b4fc57b at_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7bc12d2a lprocfs_init_ops_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ded8ebc cl_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ed58014 class_register_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7edcafa0 cl_env_reenter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fa15c04 lprocfs_free_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fad7291 raw_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fd20f93 cl_env_implant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fe5561a obd_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x80171528 cl_lock_disclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8031efb8 lprocfs_dt_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x806cc497 class_add_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81742d89 obd_ioctl_popdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x82621ac2 cl_lock_mutex_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x827c6621 obd_export_evict_by_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x831f656c class_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x83ca6df5 lu_context_key_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x83e5ff76 cl_lock_enclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x842e3751 llog_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x84749773 lprocfs_seq_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x847af844 class_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8489f086 obd_alloc_fail_rate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x849e5385 obd_update_maxusage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x84aa6219 cl_lock_extransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x84b5d838 lu_kmem_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8573579c cl_page_list_move +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x85e2373a cl_page_list_splice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8690a19b cl_sync_io_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x877add1c cl_2queue_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x88092c9e cl_io_commit_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8874c5ae cl_lock_mutex_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x88b87068 lprocfs_stats_collect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x891054f1 lprocfs_clear_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x894e165c lu_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x89bd6e0b llog_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8aa2c358 lprocfs_dt_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b376fd4 lprocfs_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b3c97f9 llog_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b5f4057 lu_context_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b77a894 dt_txn_callback_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ba6e479 lustre_swab_lu_seq_range +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8c4b3f65 cl_page_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d658ed0 capa_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d95f16a llog_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8dafd1b1 class_config_dump_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8dc41fd5 class_disconnect_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8e45e544 cl_io_rw_advance +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f67314c obd_dump_on_eviction +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9124c372 llog_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92519d91 lu_env_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92e58479 obd_dump_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x934cdf49 cl_unuse_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x936154e2 dt_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93859814 lprocfs_oh_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93b46468 lu_session_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x940e91cb cl_offset +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x943335ec class_import_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9505c895 lustre_idmap_lookup_gid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9512d507 lustre_acl_xattr_merge2posix +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x953a2158 dt_store_resolve +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x955f5220 ldlm_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95735c6c at_extra +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9573dea4 llog_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95ec998a lustre_groups_sort +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x961944a0 cl_object_attr_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x96e6844f llog_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9767adce class_uuid2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97d03783 at_history +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97dd5bf2 lu_env_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x993f1989 lprocfs_nid_stats_clear_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x99bbe5d0 cl_lock_signal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x99f20d69 llog_cat_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9a54dc4a dt_locate_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9a9474d0 lu_context_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b1ed9d8 obd_jobid_var +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b2b5b11 class_unlink_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b3dbb7d cl_lock_closure_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9be2d645 local_index_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9cb8a163 cl_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9db721ec local_object_unlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9dbb17b6 lprocfs_dt_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9ed4b9c6 class_incref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9f4b9e6a lu_object_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa09c0d05 capa_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa1ea44c7 cl_wait_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa21c5ea1 obdo_from_la +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa264e9fe cat_cancel_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa3457cdc cl_req_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa37681bf lprocfs_rd_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa48c4a30 lustre_idmap_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa513f7e4 lustre_groups_from_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa55352b4 cl_io_sub_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5fb234f lprocfs_write_frac_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa674c241 kuc_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa6a5f063 cl_req_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa7fe0b15 lprocfs_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa8255cfd dt_declare_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa8a72b46 class_conn2export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa8cb0a40 lu_context_key_quiesce_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa8e274fa class_search_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa9495608 lu_context_key_quiesce +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa9b0bd13 cl_lock_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa21b7a0 lustre_register_quota_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa43453d obdo_from_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa4a18a0 cl_lock_at_pgoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xab5f2aaa cl_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabb42125 cl_page_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabf45922 capa_decrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac7f1596 kuc_ptr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xace56cb0 lu_object_find_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xad30bdce lu_device_type_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xad469b2a dt_txn_callback_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xad520331 obdo_from_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xad538888 cl_env_nested_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xae05026a llog_cat_init_and_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xae0c0972 llog_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xae409f2f dt_version_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaeaa2461 cl_page_gang_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaee500d1 lprocfs_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaf1690cd lu_context_key_revive +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaf8ca8f8 lu_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb01963a6 class_uuid_unparse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0fb9886 cl_lvb2attr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1b89b6d class_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1c06dc0 cl_page_list_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1e5af75 lu_ucred +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb274dd6f dt_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb3b79c91 lu_dev_add_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb41998cd lustre_cfg_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb4589cc8 cl_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6a5ebc5 llog_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6b12d7b llog_cat_declare_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6b635aa dt_record_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6ba5dd5 kuc_ispayload +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb743ec6a dt_mode_to_dft +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb8062f0d cl_lock_is_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb882d996 cl_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb9e19827 cl_lock_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba5e2661 cl_queue_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba985283 lustre_register_client_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbacac922 lprocfs_write_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc497f86 cl_io_submit_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc98a8bb cl_io_iter_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbcabd279 cl_2queue_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbcee1990 cl_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe4de1f5 cl_req_page_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe4e3a0e lprocfs_add_vars +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe780401 cl_lock_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbeb6b97b obdo_to_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0049eaa lu_site_purge +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc012de64 lustre_end_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0954007 lprocfs_oh_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0bf7ef2 obd_debug_peer_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc14ee580 cl_io_read_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc5a2157a lu_object_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc5e2bc82 lprocfs_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc6612d17 lustre_process_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc753ddbe class_import_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc7835365 class_fail_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc7e52931 lu_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8dbaa87 lustre_swab_cfg_marker +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc908109f obd_export_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc968bc1e dt_try_as_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc9b3c667 dt_lfsck_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc9dd21ba cl_object_glimpse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xca56e22b lu_kmem_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcaa2ea9c lprocfs_rd_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb0ab67f obd_max_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb21e790 obdo_from_iattr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb3a41d8 lu_object_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb9e4a97 cl_page_own_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcc1b13e7 cl_lock_enqueue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcc46f5f8 class_disconnect_stale_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccf7a8de obdo_cpu_to_le +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd7537ee get_devices_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd7d5c8b lprocfs_rd_u64 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd8a604e lu_buf_check_and_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcdbf3f29 llog_declare_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcdffc073 lprocfs_rd_timeouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xce1b5a55 cl_lock_mutex_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcedb140a obdo_cmp_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd08827c0 server_name2fsname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd0b6995d lu_buf_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd10aa042 lustre_swab_llog_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd16ac483 cl_io_iter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd176aa0e dt_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1b1478b cl_attr2lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1f58645 lustre_swab_llog_hdr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1fc9ef9 class_conn2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd2d093ff cl_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd33ae4d0 cl_object_attr_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd378bc7b lprocfs_obd_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd38dc732 lu_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd395c567 llog_osd_put_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd3deb770 cl_lock_is_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd628b7ec lu_device_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd70fe669 lustre_swab_llogd_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bb2ce4 iattr_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bc8654 obd_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bfbc9c lprocfs_dt_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7e6e04b lprocfs_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7f7b340 cl_lock_mode_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd897c3a8 lu_env_refill_by_tags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd97555df lu_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd9797c29 lprocfs_rd_conn_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda3e7a17 lu_device_type_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda5b1ced class_find_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdaab22ee local_file_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdac644c8 lustre_posix_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb13dce1 capa_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdc6fbc58 cl_page_list_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcc40af0 class_check_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcc91845 dt_txn_hook_commit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcf50631 llog_cat_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd78c0c7 lu_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdda3d949 class_handle_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xddae2248 lu_object_assign_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde5ba2f0 lu_context_enter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde7d985b obd_dirty_transit_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdec8bc0f class_config_parse_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xded64804 cl_page_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdf5b4170 llog_osd_get_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdf9e961d lustre_register_kill_super_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe028cf84 capa_encrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe05f2f47 dt_lookup_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe0c7641d cl_env_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe0cf37a0 lprocfs_free_per_client_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe11730ad lprocfs_wr_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe1bf366c lprocfs_alloc_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2eb4470 class_get_next_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3323f5d class_handle_free_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3c1df4b cl_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3d92e1e lu_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe4ae191d lprocfs_obd_rd_max_pages_per_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe70e39df class_new_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7d83236 cleanup_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7f4bf56 cl_page_unassume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8e84c32 class_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xea0ba68e cl_page_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xea393a19 cl_2queue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xea99e83c cl_lock_state_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeacec47c lprocfs_oh_tally_log2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xead6091a obd_export_evict_by_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb3f388a _debug_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec76847f lustre_idmap_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec7d6b85 obd_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeccad098 class_export_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee68bc29 lu_session_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeeeb79fa do_lcfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeef80b46 class_connected_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef42be5a lprocfs_rd_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef76f858 block_debug_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf01e2527 server_name2index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf02693d8 class_exp2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf0be8ff1 lu_object_add_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf0f35c6b local_oid_storage_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf1916b98 lu_object_find_slice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf1b07816 cl_2queue_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf2fd6695 statfs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3ca3b75 cl_env_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf490d5f9 class_del_profiles +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf4a20c6c lu_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf5773720 lu_ucred_assert +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf5cd9d63 lprocfs_wr_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf60d4659 capa_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7020831 lprocfs_dt_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf714efa2 lprocfs_rd_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7458749 lprocfs_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf80923e8 cl_lock_unhold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf85b047f cl_io_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf874c950 dump_lsm +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8787073 llog_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8c2df92 obdo_set_parent_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf9a9ad0e class_name2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf9c81d8c cl_object_kill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa813d06 capa_hmac +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfabc04ad cl_io_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfb0eacfd cl_object_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfb4c1bb0 class_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbea0098 lu_types_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc48487c cl_lock_weigh +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc5b2cc5 lprocfs_single_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc7f18d0 obd_pages_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfcb15c88 class_config_llog_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfce4103b lu_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd68d17a class_notify_sptlrpc_conf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd8f5cf4 lu_buf_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfda2fdf6 lu_context_key_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfdb7d94c lustre_common_put_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfdbe1557 lprocfs_write_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfdcead07 dt_store_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe0ee511 cl_lock_hold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe16597e lu_ucred_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe317787 class_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe5d12a9 dump_lniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff57e92d class_match_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff640331 dt_txn_hook_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfffc1f11 lustre_swab_ost_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/osc/osc 0x5c4940c2 osc_update_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00034afa ldlm_cli_cancel_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00a04a80 ldlm_completion_ast_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00d95039 ptlrpcd_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x01d6ef7f ldlm_pools_recalc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x01f8665c ptlrpc_prep_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x02460c5b lustre_pack_reply_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x02db52bd ldlm_pool_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x03d2d9c7 ptlrpc_set_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x048b59d5 lustre_msg_set_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0515f93b RQF_FLD_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x06b3942b lustre_swab_lov_user_md_objects +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x071fc74a RQF_LDLM_ENQUEUE_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0727aed6 ptlrpc_prep_req_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x07605c7d interval_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x07e158dd ptlrpc_request_alloc_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x07e795d5 req_capsule_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08bb2d27 lustre_swab_obd_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x092088e9 ptlrpc_request_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x095587d0 lustre_msg_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x09967b59 sptlrpc_cli_enlarge_reqbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0a3130b0 RMF_MDT_EPOCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac252b2 lustre_msg_set_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac54708 lustre_errno_hton +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0bcacb5d RMF_MDS_HSM_USER_ITEM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0c2d9c43 lustre_swab_lip_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ca19a3f ptlrpc_save_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0cb3110f req_capsule_filled_sizes +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0cf343dd RQF_LDLM_INTENT_BASIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0d8d4073 req_capsule_server_sized_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0dd9b7ed ptlrpc_buf_set_swabbed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0f79302d req_capsule_client_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x10f18f20 interval_iterate_reverse +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x115017f6 req_layout_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x11a577e7 ldlm_lock_fail_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x11b9eb45 ptlrpc_unregister_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12b6f5a3 ptlrpc_connection_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12e0fb51 req_capsule_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12fc0d0e sptlrpc_target_export_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1474440e ldlm_pool_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1483eca4 ldlm_lock_addref_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x14d192db lustre_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x150784c3 sptlrpc_cli_ctx_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x15a3e4db RMF_GETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x172fb86d lustre_msg_hdr_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1747d8b3 ldlm_lockname +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17950f60 RQF_SEC_CTX +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17ee1482 ptlrpc_obd_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1834bc44 __ptlrpc_prep_bulk_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1863cd00 ldlm_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19108a0f RQF_OST_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19c08934 RQF_LDLM_INTENT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a597e26 ptlrpc_prep_bulk_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a6a3ce9 RQF_OST_GET_INFO_LAST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a9b76aa RMF_OBD_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1abd3258 RMF_SETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ace4b5f RQF_LDLM_BL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1b2974f1 client_import_find_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1bae0270 interval_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1be21715 lustre_msg_size_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c300d8e lustre_msg_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c323dbc ldlm_replay_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1cbabfcd lprocfs_wr_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ce6149e ptlrpc_req_finished +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1d043548 lustre_msg_set_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1dc2051d RMF_SEQ_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1de9c288 lustre_swab_layout_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1e8e48a4 sptlrpc_flavor_has_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ea8dc2c ptlrpc_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1eb2a65f RQF_OST_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee46b51 lustre_init_msg_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee9eb3c RQF_MDS_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x202f3410 do_set_info_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2096f5b5 RQF_OST_SET_GRANT_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x20d6b82c RQF_LDLM_INTENT_QUOTA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x218a36ce ldlm_cli_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x21b51280 ptlrpc_request_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x233790b5 RMF_OST_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2426f6a3 ptl_send_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x244e5558 lustre_msg_get_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x24aafdba RMF_MGS_TARGET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x254dc2c5 sptlrpc_get_bulk_checksum +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2585a629 RMF_SEQ_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2587513c RQF_LDLM_CP_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x269554ce RQF_LDLM_INTENT_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x26f99d16 RQF_MGS_CONFIG_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x285e5b99 lustre_msg_set_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x287dad19 ptlrpc_queue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x28e636f6 target_pack_pool_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x29e0869a sptlrpc_get_hash_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2a63a472 lustre_swab_ptlrpc_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2a92540a ldlm_cli_update_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2b62f316 req_capsule_extend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2c00c60d ptlrpc_sample_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ca92fa8 ldlm_lock_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ccd5b87 ldlm_cli_cancel_list_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d2b61a8 ldlm_register_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d56f168 ptlrpc_pinger_ir_up +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d798316 RMF_MGS_CONFIG_RES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2df2fdfe ptlrpc_register_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4562fe RQF_LLOG_ORIGIN_HANDLE_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4ca396 RQF_LDLM_INTENT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e80a033 ldlm_enqueue_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ecd7515 lustre_msg_check_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2f0e4f87 RQF_OST_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2fc829d3 ldlm_namespace_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2fd2f737 lustre_msg_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2fdc8821 ldlm_namespace_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x301d4fcd RQF_MDS_READPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x302937e0 RQF_MDS_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3060b9c6 sptlrpc_rule_set_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x31832fdb req_capsule_server_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x31838cb4 RMF_IDX_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x318a4c57 ldlm_pool_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x322f0724 ptlrpc_pinger_sending_on_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3261b862 RQF_OST_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x334905f5 ptlrpc_fail_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x33bb7761 ldlm_typename +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35939a3d lustre_swab_fiemap +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x37323b07 req_capsule_server_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3835ab4b RQF_LLOG_ORIGIN_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3858fb94 RMF_OBD_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3896ba40 ldlm_pool_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38c01799 RQF_LDLM_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38fce533 lustre_msg_set_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x39f60a5f RMF_OST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3a1e4bcb __lustre_unpack_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ab90f6e lustre_msg_bufcount +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ac00716 lustre_swab_hsm_user_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b6b7cba dump_ioo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b9fadaf ldlm_prep_elc_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3bd73580 sptlrpc_cli_ctx_expire +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3bedb0c7 RMF_LLOGD_CONN_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c63e62b RQF_MDS_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c8e617f llog_origin_handle_prev_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ca50f33 RQF_MDS_HSM_CT_REGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3d7dc5f9 ldlm_pools_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dc47695 lustre_msg_get_magic +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dddb3e2 dump_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3df08c68 ldlm_get_enq_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ee4579b ldlm_pool_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f034caf lustre_msg_get_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f0ae93a ptlrpcd_alloc_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f752e78 RQF_MDS_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41008cef RQF_LDLM_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41ddc655 ldlm_namespace_new +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43705ee4 RQF_LOG_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43d7efc8 lustre_msg_set_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x44036eda RQF_MDS_GET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x440c2a71 RMF_FIEMAP_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4481591d RQF_OST_SET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45d05893 lustre_swab_lustre_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45e30cea lustre_swab_ldlm_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47660cc4 ptlrpc_start_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47d6c333 client_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47f5e903 RMF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x48814c9f lustre_swab_ost_lvb_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x498c03c5 lustre_msg_set_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4a5a2416 RMF_DLM_REQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4b09ce4b lustre_swab_mdt_rec_reint +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4b1b9bdf ldlm_pool_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4c7e175e req_capsule_other_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4d7580d0 lustre_swab_hsm_user_item +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4d9ad62f ptlrpc_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e1706e5 lustre_msg_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e696b96 ptlrpcd_queue_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4eb03a6f ptlrpcd_destroy_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4f766c3b lustre_swab_generic_32s +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4f78b1cf ldlm_namespace_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4fafd40e ptlrpc_unpack_rep_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50443f6a ptlrpc_init_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x506fbbd3 sptlrpc_cli_unwrap_bulk_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50dd74f8 RMF_STRING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x52184ca0 sptlrpc_enc_pool_put_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x522074d7 sptlrpc_sec_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x52c62150 RMF_RCS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53411557 RMF_DLM_REP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53a4a004 bulk_sec_desc_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x54ae5021 ldlm_lock_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5559afdb ldlm_resource_unlink_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x555eb7fe RQF_MDS_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5569f237 req_capsule_init_area +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5692cb5d ldlm_cancel_resource_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x577ff230 ptlrpc_replay_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x57fb5b25 ptlrpc_resend_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x582e7970 lprocfs_wr_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5840e5d1 sptlrpc_sec_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x588035b4 RMF_UPDATE_REPLY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x592c8d0f ptlrpc_retain_replayable_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x595ab175 lustre_swab_obd_quotactl +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x596582bf RMF_GETINFO_VALLEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59943967 ptlrpc_request_bufs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59ca398b ptlrpc_add_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5a057439 interval_search +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ab0fbfe req_capsule_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5af0d02a ldlm_lock_dump_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b6ba895 lustre_packed_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b99a546 __ptlrpc_free_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5bedfebc client_import_del_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5c6a3a83 RQF_SEQ_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ca83d78 ldlm_cli_cancel_unused +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5caae213 ptlrpc_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ce81ff5 llog_origin_handle_read_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5d14d217 __ldlm_handle2lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e0b19b1 RMF_CLUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e2b7558 lustre_msghdr_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e6f435d RQF_OST_BRW_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e80f899 RQF_LLOG_ORIGIN_HANDLE_READ_HEADER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ec3284d RQF_MDS_HSM_CT_UNREGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ef831ee lustre_msg_get_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5f96ccdd ptlrpc_connection_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60387592 sptlrpc_register_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6042bc15 RQF_MDS_REINT_RENAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x604e2505 RMF_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x607ec932 lustre_msg_set_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60cd26ad RQF_MDS_REINT_CREATE_SYM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x61646e1b RQF_MDS_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x618ad203 RQF_OST_GET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62192cf8 dump_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6288cc4b req_capsule_client_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62a73a85 llog_origin_handle_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62aaae3f RQF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6315dd4c RMF_LLOGD_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6352a62d ldlm_get_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x639de676 ptlrpc_request_set_replen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x640ed295 lprocfs_rd_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x645791c4 ldlm_extent_shift_kms +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6461e504 ldlm_cli_enqueue_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x647b6e48 lustre_swab_ldlm_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x653723dc RMF_LOGCOOKIES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x657b00b7 ptlrpc_init_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x65af7517 sptlrpc_unregister_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x66a981ee ldlm_lock2desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x683243bf ptlrpc_set_next_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x685eeaba RMF_DLM_GL_DESC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68cb2541 interval_is_overlapped +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68f49e5e ptlrpc_expired_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6912990a RQF_OST_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69146454 sptlrpc_cli_wrap_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x696ba811 lustre_msg_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69c9f04d RQF_MDS_REINT_LINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6a3785c9 RMF_EADATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6a9f0db9 ldlm_namespace_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6b9474ad ldlm_lock_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6c6a22e8 lustre_pack_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6c6b07c5 ldlm_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6c6df547 sptlrpc_svc_ctx_invalidate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d55b63c llog_origin_handle_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d72828c sptlrpc_conf_log_update_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d7931cc RQF_UPDATE_OBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6dbfb55b ptlrpc_commit_replies +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6e351017 client_disconnect_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6e36214f ldlm_resource_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6ed20499 ldlm_revalidate_lock_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6efa82b0 RQF_MGS_TARGET_REG +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f6dc736 lustre_swab_mdt_remote_perm +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6fb92092 sptlrpc_flavor2name_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x703538e4 lustre_swab_hsm_current_action +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x71251b36 ldlm_destroy_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x716fbbe4 ptlrpc_deactivate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x723d43b6 sptlrpc_rule_set_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x725a892c RQF_MDS_REINT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x727460d6 lprocfs_wr_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7287b6c0 ldlm_pool_get_lvf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x73e4e5c9 ptlrpc_add_rqs_to_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x74840056 lustre_msg_set_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x74be701c ldlm_blocking_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75a2c40d ldlm_put_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x76b728e5 lustre_swab_update_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77571cc6 lustre_swab_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77840c82 sptlrpc_rule_set_choose +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x781c9954 unlock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x78bf9136 lustre_swab_ldlm_lock_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x792426f0 llog_origin_handle_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x79c9d020 ldlm_reprocess_all_ns +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7a57f3e2 ptlrpc_cleanup_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7a832f10 RMF_CONN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7b09c498 ldlm_lock_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7b158da4 lustre_swab_ldlm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7bbf8001 RMF_MDT_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7c4c6107 RQF_LDLM_CONVERT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d1ecd7f RQF_LDLM_INTENT_LAYOUT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d41a8b9 RQF_QUOTA_DQACQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7da06d1a sptlrpc_gc_add_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dc0e7cd RMF_QUOTA_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dfb3c18 lustre_msg_clear_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7e94658e lustre_pack_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4925d8 interval_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4c99b1 ldlm_expired_completion_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f5a1cc7 lustre_msg_set_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f6d2357 lustre_msg_is_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f9eb165 client_import_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80a9e8c3 lustre_msg_get_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80cafc3c ptlrpc_cleanup_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80ecb4e3 RMF_MDS_HSM_CURRENT_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x810ae2b2 ptlrpc_at_set_req_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8167a29d req_capsule_client_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x817d7f1f lustre_msg_add_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x81bfa0c8 sptlrpc_cli_unwrap_bulk_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x81ebed1b req_capsule_has_field +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x826d3c4f RQF_LDLM_GL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x82ccb1ff llog_client_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x837efb00 RMF_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8493ebd3 lprocfs_wr_evict_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8512c649 ptlrpc_resend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85135801 RMF_DLM_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x854677c5 ldlm_lock_allow_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85594d83 lustre_pack_reply_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85a9e0d8 RMF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85eecf67 sptlrpc_get_hash_alg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x863db6eb RMF_HSM_USER_STATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x867004e7 ptlrpcd_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x86fa8c3b ldlm_cli_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8760beaf lustre_swab_ldlm_policy_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x876c2551 RMF_GETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87bf7b3c sptlrpc_get_next_secid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87ff2afb ldlm_pool_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x885b1bde ptlrpc_set_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8872f3d2 RMF_SETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x88fff52d RMF_CAPA2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x89f9edf7 RQF_MDS_REINT_SETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a1ea476 lustre_swab_hsm_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a257736 RQF_MDS_HSM_STATE_GET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a4345b1 ptlrpc_set_add_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a5251f1 ldlm_cli_cancel_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ac440fa ptlrpc_uuid_to_connection +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8b854254 lustre_swab_mgs_config_res +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8cb71d4b RQF_MDS_REINT_CREATE_SLAVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8cf543ca sptlrpc_gc_del_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d3d3f2c ptlrpc_recover_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d77ea75 lustre_msg_set_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d97bd5b ptlrpc_nrs_policy_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8da3fca7 lustre_msg_add_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8e9abe4d RMF_GENERIC_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8f0aceac RQF_MDS_HSM_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8fec0451 lustre_msg_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9110511b ldlm_pool_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x911307db req_capsule_server_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x919c4ce3 RMF_OBD_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91ad9b05 sptlrpc_enc_pool_get_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91cf58d3 RQF_MDS_PIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9205d55b ptlrpc_invalidate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x937b1ee0 lustre_swab_mdt_ioepoch +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x944db260 sptlrpc_lprocfs_cliobd_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x94b36c9a ldlm_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9553c633 RQF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95d08f0c lustre_swab_mgs_target_info +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9660ace0 RMF_FLD_MDFLD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x967bfd52 RQF_OBD_PING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x96ce1d77 ldlm_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x970f2ba9 sptlrpc_cli_ctx_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9798f2f1 RQF_MDS_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x980fcfdc ptlrpc_connection_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x986ddb9a ptlrpc_disconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a258886 RQF_MDS_GETSTATUS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a6f2f6d lustre_msg_set_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9ad1f871 ldlm_cli_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9af55cf5 target_print_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9b88f6ce RMF_NIOBUF_REMOTE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9bb5198b RQF_MDS_CLOSE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9bc1c34e client_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d58e22a ptlrpc_service_health_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d7ea314 sptlrpc_pack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9dcb11f9 ptlrpc_restart_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9fb088f1 lustre_swab_lov_mds_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa0a98562 ldlm_prep_enqueue_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa0b34218 ptlrpc_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa0f30e37 lustre_free_reply_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa10f0d3d RMF_UPDATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa163f4c3 dump_rniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa1986dea sec2target_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2244636 RQF_MDS_GETATTR_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa22c0086 ldlm_error2errno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2f37dff ptlrpc_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa3d2a6ee RMF_CAPA1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa44bf8c9 ptlrpc_request_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa47787ef RMF_PTLRPC_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4a2d089 RQF_OST_PUNCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4bea5ef lustre_swab_lmv_user_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa506baa6 ptlrpc_set_add_new_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa514a623 ptlrpc_set_import_active +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5458dad ldlm_lock_decref_and_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa58169e8 ldlm_lock_change_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5880075 ldlm_errno2error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa62d690e ptlrpc_buf_need_swab +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa66888dd ptlrpcd_add_rqset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa6c436ca RQF_MDS_WRITEPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa724d2ae ptlrpc_mark_interrupted +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7d55cc3 RQF_MDS_REINT_CREATE_RMT_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7e360b1 RMF_OBD_IOOBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7ec567d RMF_CONNECT_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa818df7b ptlrpc_reconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa850c1af ptlrpc_schedule_difficult_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9704f80 lustre_msg_get_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9c4658e lustre_swab_lov_user_md_v3 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9edf09d RQF_OBD_IDX_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaa0e0d47 req_capsule_server_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xabbcce4d req_capsule_set_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xabfb1f90 ldlm_namespace_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaddc3979 lustre_swab_lustre_capa_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xadebceaf ptlrpc_request_alloc_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf4e9658 RQF_MDS_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf50a0d6 RMF_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf9ca4eb ldlm_pool_set_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0751fa4 RQF_LLOG_ORIGIN_HANDLE_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0bd4a5f ldlm_pool_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1334819 ldlm_lock_fail_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1b43d8a dump_rcs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb27c2374 lustre_msg_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb291473d lustre_msg_early_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb2b1817d lustre_swab_ost_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb47bf494 ptlrpc_unregister_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4a7ecf3 lustre_msg_add_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb512ebc2 sptlrpc_parse_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb587ede6 sptlrpc_import_flush_all_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb61cb95a RQF_MDS_GETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb6317f41 ptlrpc_lprocfs_unregister_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb68476df interval_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb68c52f0 ldlm_destroy_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb6aafd03 RQF_MDS_DONE_WRITING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7b38189 RMF_MDT_MD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7fa3cc8 RMF_LLOG_LOG_HDR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb81c8c01 ldlm_init_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb85204e3 sptlrpc_import_sec_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb8fe9ee7 ptlrpc_init_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb903634e RQF_OST_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb9b631cf lustre_swab_mgs_config_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbaa76097 lustre_msg_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbb025b15 ptlrpc_nrs_policy_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbba4040a client_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc1370dc lustre_shrink_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbd83bc44 RQF_OBD_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbe47bc7e ping_evictor_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbe73f20f ptlrpc_req_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbf98b86f RQF_MDS_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbffd4313 RQF_OST_BRW_WRITE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc06c4670 lustre_msg_get_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0867da7 RMF_REC_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0b86226 ptlrpc_hpreq_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0cdf55e RMF_MGS_SEND_PARAM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc1ed015f ldlm_pool_get_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2986d28 lustre_swab_ldlm_res_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2b1af57 RQF_MGS_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2be922a RMF_SYMTGT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc559a634 RMF_LAYOUT_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc5d387af ptlrpc_abort_inflight +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc5f21261 ptlrpc_lprocfs_register_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc60a60e1 RQF_OST_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc62e103e ldlm_blocking_ast_nocheck +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc691abe7 ldlm_lock_allow_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc694be4b RQF_LLOG_ORIGIN_HANDLE_PREV_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc6ca6cab target_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc763fabc sptlrpc_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc78a5464 ptlrpc_free_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc79b9c67 ldlm_pools_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7ca8257 RQF_MDS_REINT_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7e47564 ptlrpc_interrupted_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc8967ccf ldlm_resource_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc8f586a9 ptlrpc_connection_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca31764d ptlrpc_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca477de5 sptlrpc_cli_ctx_wakeup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca5a81ec ptlrpc_pinger_ir_down +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb16107d ptlrpc_set_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2cc0cf lustre_swab_lquota_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2ceaff sptlrpc_secflags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb77c0e5 ptlrpc_wake_delayed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcd281bb5 sptlrpc_import_flush_my_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcd4104b4 ptlrpc_stop_all_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce1a689b sptlrpc_enc_pool_add_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce86066d lustre_msg_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcec513c9 RQF_MDS_UNPIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xced015be sptlrpc_rule_set_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xced1d54a ldlm_flock_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcee4261e sptlrpc_conf_client_adapt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9963db lustre_msg_get_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9aab6a RQF_MDS_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd0dea4a0 req_capsule_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd245f1b5 ldlm_namespace_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd261f700 sptlrpc_target_update_exp_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2983334 lustre_swab_swap_layouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2e0d4eb lustre_msg_get_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd3dae408 ldlm_it2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd3f6e925 ldlm_lock2handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd4c50939 client_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd537ded2 lustre_swab_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd53ec6a0 ldlm_cli_cancel_unused_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd55fdde4 req_capsule_field_present +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd67a5d7b lustre_swab_update_reply_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd69e0a27 RQF_MDS_IS_SUBDIR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6aaf0e3 sptlrpc_req_replace_dead_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6c3ebfb RMF_FIEMAP_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd7910326 lustre_swab_obd_statfs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd7a81387 llog_origin_handle_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8b91b3e lustre_swab_lov_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8caeb51 ptlrpc_req_set_repsize +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8f06300 RQF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd9561861 RQF_LDLM_INTENT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xda2ac111 sptlrpc_proc_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb1fb0a2 RQF_MDS_REINT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb878aff req_capsule_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb9d5a6a lustre_swab_niobuf_remote +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdcf910b9 lustre_swab_ost_last_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd0ffb04 sptlrpc_flavor2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd30d7bf RMF_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xddc40a85 lustre_msg_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xddfde645 ldlm_init_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde12d36b RMF_MDS_HSM_ARCHIVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde555d70 sptlrpc_enc_pool_del_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde9c0da6 sptlrpc_conf_target_get_rules +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdea65901 ptlrpc_unregister_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdee87192 sptlrpc_conf_log_update_begin +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf701ae7 lustre_swab_fid2path +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf7c104f ldlm_resource_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe036cca1 ldlm_pool_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0cc694c RQF_LLOG_ORIGIN_HANDLE_NEXT_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe17b4ce2 ptlrpcd_wake +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe2ceaa78 req_capsule_server_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe3a19037 ptlrpc_pinger_del_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe40e0a50 lustre_msg_get_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe505e9fc req_capsule_client_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe57bd972 sptlrpc_current_user_desc_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe5e8169b lustre_errno_ntoh +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe643998e RQF_OST_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6c5fe26 llog_initiator_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6f0dc96 RQF_OST_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7062b5f RMF_U32 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7512278 ptlrpcd_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7b99704 _debug_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe9138a75 req_capsule_server_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabaa0b1 lustre_swab_mdt_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabac4fc sptlrpc_rule_set_merge +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeafb7b0c sptlrpc_sec_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xebb64e68 req_layout_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec226f66 ping_evictor_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec939a00 RQF_MDS_REINT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xecace5c1 RQF_OST_GET_INFO_GENERIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed1c10d6 ptlrpc_connection_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed2d986a ldlm_cli_enqueue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xedc68a84 ptlrpc_activate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xedcb740d sptlrpc_name2flavor_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xee2a52bd ldlm_glimpse_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xee7c741f ptlrpc_req_finished_with_imp_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeeed0598 ldlm_resource_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef1aeca9 RMF_FLD_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef35fc4a sptlrpc_gc_add_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeff14190 ptlrpc_send_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0241d6e lustre_swab_hsm_progress_kernel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0d52b5f ptlrpc_pinger_suppress_pings +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf1300275 _sptlrpc_enlarge_msg_inplace +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf277c125 RQF_OST_GET_INFO_FIEMAP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf27d49dc sptlrpc_target_choose_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf2deea4f ldlm_lock_downgrade +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf35f132b lustre_swab_ldlm_resource_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf3d44370 RQF_OST_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf413429a _ldlm_lock_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf43540b9 lustre_swab_mgs_nidtbl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf45085e1 sptlrpc_conf_log_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf55c033b RMF_MGS_CONFIG_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf584a16b sptlrpc_part2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf596e9ae sptlrpc_conf_log_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf607fc23 sptlrpc_flavor2name_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf617ab8a lustre_msg_get_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf665d696 llog_origin_handle_next_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf697b756 ldlm_dump_all_namespaces +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7408f84 lustre_swab_hsm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7ba40c0 RMF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf85cb27e sptlrpc_parse_rule +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf870fed9 RQF_LDLM_GL_DESC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf8d7b49f ptlrpc_lprocfs_brw +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9051bd6 RQF_QC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf94e41e0 deuuidify +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf95b9eed ptlrpc_register_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf973aa93 lustre_swab_lov_user_md_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9ee11e2 lustre_msg_set_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9f72dfc RMF_TGTUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa40b688 ptlrpc_request_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa51688d interval_insert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa8f390f ptlrpc_unpack_req_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfaadfb13 ptlrpc_pinger_add_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfb444a98 ptlrpc_prep_fcset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfc2fa83f ptlrpc_del_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd148bf8 RMF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd2ad3e0 sptlrpc_target_sec_part +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfeda3f72 lock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff02a0e9 ldlm_lock_set_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff2b5341 ptlrpc_prep_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffc807e8 sptlrpc_unpack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffe29c3f RQF_LDLM_ENQUEUE +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0xa5a702eb cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x5e7a3323 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x660919ce go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x6d622d87 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xa9d12008 go7007_update_board +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xb1903f01 go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xc3683654 go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xd3261b8c go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xe8303a5b go7007_snd_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xe8f553c7 go7007_snd_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x04266c08 rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x10660e10 rtllib_wpa_supplicant_ioctl +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x152177b3 rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2d307138 rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2daf14e1 rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x31069b89 rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x37f013c0 rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3cac67a5 rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3fcbeb27 rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x405ba7c1 free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x40ef4de3 rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4f922876 rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x594465ef rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x595238ea rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5ab04ac2 rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x69d8e12c rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6bf84ee8 rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x71a749c9 rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x74d4dbf8 rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x76f9deac HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7db1dfec rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x81f5301c rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8b627b8d alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8fc42ab9 rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8ff13418 rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x94659610 Dot11d_Channelmap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x959b2d98 rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x96032d7e dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x969b455a rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9ca1c315 rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa10eb9dd notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa329cf20 rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa41b151a rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa5eb294f rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb2bb8d21 rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbbb7395e rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe1420f2 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe2ed5e5 rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc36bc5d2 rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xcd547891 rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd1a89408 rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd3e55908 rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdae80a03 rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdc858ed5 rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf78f620 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe93187a6 rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xea72746b RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xec76c735 rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf7613dc0 rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf86283f8 rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf95264e7 rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfebffa60 rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x05dbfe04 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x06ebd3a6 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x072ba89d ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x08877d2f ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x09665594 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x16c24371 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x19313046 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x19634c9a ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1b599dbe DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x214eed50 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x26fdfa02 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3681e842 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x39bb2987 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cbb989d ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3eee7993 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x47de142f ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4ce0c031 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4e96170e ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4fd4ee48 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x51ac10a3 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x59019aa4 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5b119e84 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5e48c534 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5f43a33a ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x60de2cf5 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6477d91a ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x69000b33 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c32c8b5 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6f332d1c ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7108a196 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x746cae0c ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7f74d852 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x825ecd3d ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8b80eafb ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8c379c12 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x98407eb4 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa09a28cb ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa7a4b229 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaf138462 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb1144031 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb2168009 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb4fa767b ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbaf4feea notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbf41dc38 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc5f68679 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc6f4cfd9 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcc28a1bf ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcd0f653a ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcdf1397b IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd6af778b HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd76ea28b ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe1c4f99c ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe1ed4f21 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe83368e7 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf57179ea ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfa034072 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0017f35f set_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x00ea0cde set_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x06d6f244 get_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x09df8f3e set_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0a8d32c3 get_bypass_slave_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1936264c set_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1d2eb8ca get_tap_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x203af1f7 reset_bypass_wd_timer_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2070f14a set_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x27b990ef get_bypass_info_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2ba7cd35 get_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2c3f1c17 get_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2f59e636 get_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2fdb893a get_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x361cf40a get_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x45ca99c3 set_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x550a188c set_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x5cb59e92 get_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x66b60122 set_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x675208c0 set_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x692623f2 get_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x75131ec6 set_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x76c0b7d0 set_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e872825 get_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e8d701e get_wd_expire_time_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x86388b07 get_bp_disc_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x93ae4648 get_wd_set_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x95e42b0d is_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9df5f807 set_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9e21f42e set_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xa689a214 get_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xae117788 get_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xc368d30d get_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xccab5de0 get_bypass_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd3e034b3 get_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9c1ccfc get_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9d38d97 set_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xe640f06e set_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xecdaa456 set_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xedcd3c1b get_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf06d67bf set_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf57c1671 get_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf693c3a1 bp_if_scan_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf8237882 get_bypass_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xfa59240d get_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05af3c4c set_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05b08a42 set_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0b0d5ce0 get_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0fc2e83c reset_bypass_wd_timer +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x123a8133 get_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x157ec89c get_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2440f05a get_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2b01d1d4 set_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2c27a2f0 set_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2da97f4b is_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2e86c67b get_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37416370 get_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37bdab27 get_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x3da96a18 get_bypass_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4025805e get_bypass_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4940a0cc get_bypass_info +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4d21ff51 get_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5147360c get_bp_disc_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x515d4df1 get_bypass_slave +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5560267e set_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5be44d44 set_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6653590c get_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6bda14ec get_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x72c618ae set_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x76d47e6f set_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x794e3815 set_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x7c6cbc16 get_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x84a263dc set_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x8a16f22c set_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x946ff795 get_wd_set_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x94f6aff2 get_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x9d1ecf73 set_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xb1385629 set_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xbff68c45 set_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xc871c561 get_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xcee528df set_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd202dd85 get_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd787f151 get_wd_expire_time +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xdb6a39d2 get_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xebd25ae5 get_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf1e9f8c1 set_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf224abd9 get_tap_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf5a591b2 set_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf643fd4c get_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x226d2408 xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x25978d50 xillybus_isr +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x7684546b xillybus_endpoint_remove +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x8276126e xillybus_do_cleanup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x9d97f2a0 xillybus_init_endpoint +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0730e170 iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x33388424 iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3ec384a1 iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5e02c474 iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x60a7af89 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x66bc41e3 iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x66f3b58a iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x68fe184f iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x69757963 iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x69b88fbc iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x6b08ffeb iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x6be105da iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x74ed565a iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x90ecaa94 iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9dfdf2e3 iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa7652584 iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xafe40600 iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbf484b4f iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc6496058 iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd286780d iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd33521dc iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd5c63b35 iscsit_handle_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd7551087 iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xdf6bf56c iscsit_set_unsoliticed_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe078d85a iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe5991f4a iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf0b034fc iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf8793be5 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00315c27 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x06bc0f71 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x0d0dcf8e core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x0e489715 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x13251567 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x1353c39b iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x1902ce42 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x19a4b600 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x1c2637cf transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x20d556bd target_setup_cmd_from_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x263d253f target_sess_cmd_list_set_waiting +EXPORT_SYMBOL drivers/target/target_core_mod 0x2720bff5 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x286660a0 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x2d784057 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x2ebcbd92 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x2f478fb8 target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x2f5cf01b spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x315b9c74 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x31f9a4b5 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x322a1c2d sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x3455f020 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x3b88c876 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x43a60124 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x44dfdc7a core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x4a39a8f5 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x4aee35a3 spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x50727138 spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0x55dcc2d1 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x5b95b0fb __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x5c20b3ce target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x5d63e03e fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x5e301c25 transport_init_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x60244eb5 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x6a701a66 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x6e298a97 spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x6e845132 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x74fbcd9a transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x76d00648 target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7adfc477 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x87f26483 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x89e0fe1c transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x8d236c48 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x92c58fe5 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x9575f13c target_get_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x96d88dc7 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x9ac3f932 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x9f018d54 transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0xa2761f5a target_submit_cmd_map_sgls +EXPORT_SYMBOL drivers/target/target_core_mod 0xa987bada iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xb3967430 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xb52e022f core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xb73a7871 sbc_execute_unmap +EXPORT_SYMBOL drivers/target/target_core_mod 0xbcc58953 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0xc3b6a8d7 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xc81abcda core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xca91b87c transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0xcb95328f transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xcc3cf71e transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xcf09e720 sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0xd067747a core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xd2387246 target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xddcf9264 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xdfa7cf05 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xe054ab7e target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0xe4172fd5 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xec741354 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xecba90b8 target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xed6e1362 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xf002c671 target_put_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf437d531 target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0xfbfe9456 fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0xcecf5779 usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0x04db691a unregister_gadget_item +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x008d8162 gether_get_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x1453d21c gether_connect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x21a194b3 gether_setup_name +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x2aa442d8 gether_get_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x328b7794 gether_get_ifname +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x3833bcd5 gether_setup_name_default +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x3e0281ae gether_set_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x464e847b gether_set_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x82c1d5f0 gether_register_netdev +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8878cfa6 gether_cleanup +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8d4a5994 gether_get_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xa3c9d94f gether_get_host_addr_cdc +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xb744776c gether_get_host_addr_u8 +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xc06222d7 gether_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xc0ad08cb gether_set_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xdce48209 gether_set_gadget +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3691457e rndis_add_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3a6d4f22 rndis_free_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3ca38e3a rndis_signal_connect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x4ca90996 rndis_signal_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x53b4b4a4 rndis_rm_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x5d22b406 rndis_register +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x785d494b rndis_msg_parser +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x82c2568a rndis_set_param_dev +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x840dd143 rndis_deregister +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x988ad2a2 rndis_set_param_vendor +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x9acf72e4 rndis_set_param_medium +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xa90054ee rndis_uninit +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xb971ebca rndis_get_next_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xd2fe47b1 rndis_set_host_mac +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x005e7e53 fsg_lun_fsync_sub +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x06540468 fsg_lun_open +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x0e5b8600 fsg_show_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1710b539 fsg_fs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1b1cc3af store_cdrom_address +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x27bd838c fsg_show_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x2933ee1d fsg_ss_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x2b16fa43 fsg_show_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x398778e1 fsg_ss_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x423845e4 fsg_ss_bulk_in_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x4d9af621 fsg_lun_close +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x56344daf fsg_hs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x7ee6deee fsg_store_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x857b6dc2 fsg_hs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x93b6cb9f fsg_store_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x95cffb3e fsg_hs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5cae92f fsg_ss_bulk_out_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5f99b69 fsg_fs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb52ba28a fsg_intf_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb54d0d95 fsg_fs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb6b0fb57 fsg_show_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xd9644584 fsg_store_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xec8b765d fsg_store_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf4efc0c8 fsg_ss_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xfdb5327b fsg_store_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xff967eba fsg_show_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_rndis 0x0c66c4bd rndis_borrow_net +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x0033af3c sl811h_driver +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0f265444 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x10dfecae usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2c48a56a usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3eb55724 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x44a32b6b usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7d431e22 usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x87a6d054 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa1381902 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xafbc8461 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb2d36365 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc5457151 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc9d4803b usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xec746092 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xdc942698 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xecf7cff1 usb_serial_resume +EXPORT_SYMBOL drivers/vhost/vringh 0x0dda8c5a vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1f063017 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x2e91ca97 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x367ce26a vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x36dfce73 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3eaf442a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3fa42e4f vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5dafbd4e vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x66af098b vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x6d0e7948 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7bda5e6d vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x821e9390 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0xaf8e4a0e vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xafb47dae vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc884d704 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc8bee0a4 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xd11d2709 vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xda4ea4cc vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xfc7dcad2 vringh_getdesc_user +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x056f1900 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x32dd67f5 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x42bf57a2 devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x98eabd2c devm_lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb23ef6e8 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x82801f13 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xe9a1fcdd matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xfb8b87cf g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6a3edba6 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xa34279a8 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xc09e270f DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xdf09ce84 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x70ef43b0 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xf4cc1749 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x3c8defc3 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x7e9c243e matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xa0c285b6 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xc55237e0 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x73b36843 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x81304618 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x09320e4b matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x2d68fee2 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x8a3f2495 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x8f7568b1 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xdd8d4678 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0x16797649 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x2725fd94 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0x3c528ff1 video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1d3d0178 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x42165f41 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x448a8137 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x540bebe6 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x59205fdf svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x6e4adb1e svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x8de63fb4 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0xb716a01b svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xde6fadc4 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf2db5956 svga_match_format +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/virt/fsl_hypervisor 0x45fd1882 fsl_hv_failover_unregister +EXPORT_SYMBOL drivers/virt/fsl_hypervisor 0x77c9b191 fsl_hv_failover_register +EXPORT_SYMBOL drivers/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/vme/vme 0x1ea447a2 vme_irq_generate +EXPORT_SYMBOL drivers/vme/vme 0x20df5a3d vme_dma_pci_attribute +EXPORT_SYMBOL drivers/vme/vme 0x24e4f2e2 vme_unregister_bridge +EXPORT_SYMBOL drivers/vme/vme 0x331636d0 vme_irq_request +EXPORT_SYMBOL drivers/vme/vme 0x3c5e0e7b vme_register_driver +EXPORT_SYMBOL drivers/vme/vme 0x3e95083c vme_slave_get +EXPORT_SYMBOL drivers/vme/vme 0x41862ad4 vme_alloc_consistent +EXPORT_SYMBOL drivers/vme/vme 0x41a0fd65 vme_bus_type +EXPORT_SYMBOL drivers/vme/vme 0x423bd502 vme_register_bridge +EXPORT_SYMBOL drivers/vme/vme 0x45f63bed vme_slot_get +EXPORT_SYMBOL drivers/vme/vme 0x46649cd1 vme_lm_set +EXPORT_SYMBOL drivers/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/vme/vme 0x4baf35a7 vme_master_get +EXPORT_SYMBOL drivers/vme/vme 0x535c8308 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/vme/vme 0x5aff4177 vme_lm_get +EXPORT_SYMBOL drivers/vme/vme 0x60225dba vme_irq_handler +EXPORT_SYMBOL drivers/vme/vme 0x6a6d1b6d vme_unregister_driver +EXPORT_SYMBOL drivers/vme/vme 0x7264aee9 vme_dma_list_exec +EXPORT_SYMBOL drivers/vme/vme 0x79d24249 vme_irq_free +EXPORT_SYMBOL drivers/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/vme/vme 0x7fde2edb vme_master_read +EXPORT_SYMBOL drivers/vme/vme 0x84e64dda vme_slave_request +EXPORT_SYMBOL drivers/vme/vme 0x90695906 vme_free_consistent +EXPORT_SYMBOL drivers/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/vme/vme 0xa31bdf07 vme_master_set +EXPORT_SYMBOL drivers/vme/vme 0xb19d5115 vme_new_dma_list +EXPORT_SYMBOL drivers/vme/vme 0xbf156a86 vme_master_request +EXPORT_SYMBOL drivers/vme/vme 0xbf4e449a vme_dma_list_free +EXPORT_SYMBOL drivers/vme/vme 0xca59dd44 vme_dma_list_add +EXPORT_SYMBOL drivers/vme/vme 0xd2c01abc vme_lm_request +EXPORT_SYMBOL drivers/vme/vme 0xd797b9a5 vme_master_write +EXPORT_SYMBOL drivers/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/vme/vme 0xe693a6ce vme_get_size +EXPORT_SYMBOL drivers/vme/vme 0xec8e7c7a vme_dma_request +EXPORT_SYMBOL drivers/vme/vme 0xefd1624a vme_dma_free_attribute +EXPORT_SYMBOL drivers/vme/vme 0xf5a10e25 vme_slave_set +EXPORT_SYMBOL drivers/vme/vme 0xfacd8e72 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x4905241a w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x501dea7d w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x5bdec10e w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xe9d3c2a8 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x1581c422 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xcdf87ad4 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x4f14ceeb w1_ds2781_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x9d09675b w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/wire 0x0b96e7c7 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x2611e7b5 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x5c7e4326 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xd1e4d3f4 w1_add_master_device +EXPORT_SYMBOL fs/btrfs/btrfs 0x27476846 ulist_reinit +EXPORT_SYMBOL fs/btrfs/btrfs 0x41e6a9d2 ulist_init +EXPORT_SYMBOL fs/btrfs/btrfs 0x7e2ee765 ulist_free +EXPORT_SYMBOL fs/btrfs/btrfs 0xa2eec2e8 ulist_fini +EXPORT_SYMBOL fs/btrfs/btrfs 0xb1320bc8 ulist_add +EXPORT_SYMBOL fs/btrfs/btrfs 0xb42289d2 ulist_alloc +EXPORT_SYMBOL fs/btrfs/btrfs 0xc2c745db ulist_next +EXPORT_SYMBOL fs/configfs/configfs 0x0b8734f7 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x12c1ef51 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x1c167c25 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x54508269 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x6e7e9871 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x7f4ce456 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0xa771c5d1 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xa90cb2d1 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xb5ac1834 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xcad90947 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xf0f33b04 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xf5ec6e85 config_item_put +EXPORT_SYMBOL fs/exofs/libore 0x0978e69e ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0x17a1dda3 ore_create +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x4527e170 ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x4ba7ff20 ore_remove +EXPORT_SYMBOL fs/exofs/libore 0x5f7f6514 ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0x7462c4f7 ore_write +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xae9d0881 ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0xc1492f43 ore_read +EXPORT_SYMBOL fs/exofs/libore 0xd1da0b69 ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0xd37e399c extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0xf2923917 ore_get_io_state +EXPORT_SYMBOL fs/fscache/fscache 0x00701b01 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x0facc372 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x12dcbcfb fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x18c36a39 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x2b07fcf6 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x2b884f41 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x32a3a322 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x34ded431 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x38cec0b2 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x3a3a239a __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x411b6edc fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x4722247d __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x4a6a1fc3 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x4b48ee64 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x5538b4d0 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x67b878ce fscache_op_complete +EXPORT_SYMBOL fs/fscache/fscache 0x6b8b3a0e __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x6ca9f8e2 __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x72453d95 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x8758d19b __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x88153118 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x8eb97838 __fscache_wait_on_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0xa47c148f __fscache_enable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xa6d521cf __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xa7b4a3b5 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xa9545326 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0xa9bea072 __fscache_check_consistency +EXPORT_SYMBOL fs/fscache/fscache 0xbe7f5490 fscache_mark_page_cached +EXPORT_SYMBOL fs/fscache/fscache 0xc066197a __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xd0dea5b4 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0xdbbe76ba __fscache_disable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xdca908e5 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0xdfb32b96 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xe312923d __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xe6729f25 fscache_object_destroy +EXPORT_SYMBOL fs/fscache/fscache 0xf458ed0a __fscache_readpages_cancel +EXPORT_SYMBOL fs/fscache/fscache 0xf6f3ca10 fscache_object_init +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xa0f4b528 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0xb25b2957 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0xe13337f0 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x381153ba qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x809d0d70 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x85eab892 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xa3a32323 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xb3a72761 qtree_entry_unused +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0x41248eaf crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x066c8306 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x0c9ff2c3 lc_find +EXPORT_SYMBOL lib/lru_cache 0x0d2dc6b3 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x2bca6ccb lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x3691748f lc_set +EXPORT_SYMBOL lib/lru_cache 0x43e46a2d lc_committed +EXPORT_SYMBOL lib/lru_cache 0x452c8b46 lc_del +EXPORT_SYMBOL lib/lru_cache 0x60fd5d64 lc_is_used +EXPORT_SYMBOL lib/lru_cache 0x75a91db9 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x8af6181d lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0xa2873827 lc_try_lock +EXPORT_SYMBOL lib/lru_cache 0xb74693bf lc_try_get +EXPORT_SYMBOL lib/lru_cache 0xbb6d3769 lc_create +EXPORT_SYMBOL lib/lru_cache 0xbd032277 lc_put +EXPORT_SYMBOL lib/lru_cache 0xef129f5b lc_get +EXPORT_SYMBOL lib/lru_cache 0xf88f7076 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0xf9b6ff79 lc_get_cumulative +EXPORT_SYMBOL lib/lz4/lz4_compress 0xcbc5d521 lz4_compress +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x26c3aa22 lz4hc_compress +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0x7456cc61 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/raid6/raid6_pq 0xd9e91f83 raid6_vgfmul +EXPORT_SYMBOL net/802/p8022 0x48c1e24b unregister_8022_client +EXPORT_SYMBOL net/802/p8022 0xb8c6d098 register_8022_client +EXPORT_SYMBOL net/802/p8023 0x1d6615f3 make_8023_client +EXPORT_SYMBOL net/802/p8023 0x9d299673 destroy_8023_client +EXPORT_SYMBOL net/802/psnap 0x154de297 unregister_snap_client +EXPORT_SYMBOL net/802/psnap 0x72de4f94 register_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x0b66153d p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x142f7ff2 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x27f80e0f p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x2a76f4f1 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x2af1990d p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x2afd8134 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x320e84e0 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x33806714 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x33f68831 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x34203b2f p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x37ce6d37 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x4130dee3 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x44d2c2c0 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x458687ce v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x4c630cd8 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x4ca10ffd p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x59a82099 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x5b26b18d p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x5e069381 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x6368727e p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x646f9e4e p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x6a5d2ef5 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x70f1f51f v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x7b487954 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x7d3a9d49 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0x7e37b82c p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x87675956 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x8e186c24 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x8f7ae304 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0xa48d7782 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xa7f931ce p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xa8e52984 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xaf1e6223 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0xafa568de p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xafd1ef6f p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xb4aa6525 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xba1607a7 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0xbea5eecf p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xdf7a5500 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xe151603e p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xe1a77db1 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0xe3003ec8 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf7672e29 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x19b46f7a atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x1c498355 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xccbbac7c aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xf453aa98 atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x023430bc atm_charge +EXPORT_SYMBOL net/atm/atm 0x0b8c703f register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x2347eb95 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x25c56a1c atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x2d0f8a36 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x3548e443 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x58308e20 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x682b4a81 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x8c05de92 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa397b126 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0xa8f90612 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xca87b453 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xd5009db3 vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0xe18f1ae0 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x26bb3720 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x30672177 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x38b75010 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x3afee63e ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x93fc2ff2 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0xbc235b0a ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xcc737922 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd4933fe9 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xf42a710a ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xf8331010 ax25_hard_header +EXPORT_SYMBOL net/bluetooth/bluetooth 0x04ae9ab1 l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1781fe18 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1eb6b874 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x264d24c0 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x27c7d719 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3575c316 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x48e47ac7 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4a2de33a hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b1e68d0 bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4ce74aa6 l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5d1121c0 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x600577f7 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6214d4d8 l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6ae256b1 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x77e42322 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c640527 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x822b7f44 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x85c7a68b hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8c8922ce bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x90ee6709 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9403fe14 bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0x94e22297 __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x96244434 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9814cfe7 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9e6e377c l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0xae3c9c0d bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb61a0c3b bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbb4d04d2 __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc0e92925 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc48888ce hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc82e02e4 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcbb71734 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdea905a0 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe6242afa bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xeb992111 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xeee02f9a hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xefde5d33 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf08589bd bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfd0da9af bt_sock_wait_state +EXPORT_SYMBOL net/bridge/bridge 0x5548b64d br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x8abe69e4 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xaf1a0bde ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc4b1571f ebt_unregister_table +EXPORT_SYMBOL net/caif/caif 0x0070f1b2 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x38701a7c cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x6a44fc70 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x70451f1e caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x966d7de2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xb1a7fca3 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0xb7148a26 caif_enroll_dev +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/caif/caif 0xf61740c8 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/can/can 0x3f2e99da can_rx_register +EXPORT_SYMBOL net/can/can 0x75375248 can_proto_register +EXPORT_SYMBOL net/can/can 0x84eebb3a can_proto_unregister +EXPORT_SYMBOL net/can/can 0xc945c356 can_ioctl +EXPORT_SYMBOL net/can/can 0xd3969fc4 can_rx_unregister +EXPORT_SYMBOL net/can/can 0xe190b9fd can_send +EXPORT_SYMBOL net/ceph/libceph 0x08c87da6 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x1475bf0d ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x14c379d3 osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0x15686ed7 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x17505c9a osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1db0579d ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x20d151cb ceph_osdc_setup +EXPORT_SYMBOL net/ceph/libceph 0x2496e1fc ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0x2aa7f514 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x2e76a68a osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x2f0f53f9 osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x3375e600 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x3733d001 ceph_auth_create_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x37420c46 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x378e1fd0 ceph_auth_update_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x39a55443 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3c1bafce ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x3df0ec7c ceph_calc_ceph_pg +EXPORT_SYMBOL net/ceph/libceph 0x3ea35124 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x3f039834 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0x3f688151 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x4205ffd7 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x43efd647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x4786525d ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x47e686ec ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x4894b13d ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0x48e60cbe ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x49a0c416 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x4b44c180 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x4d2abcb8 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x4fa782e3 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x56dffafc ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x57c3900d ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x653b9e49 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x678bb47b ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x6b2e3bcd ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x6c5d5ac1 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6dec570b ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x6eef044f ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x70140739 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x7507cd66 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7b0ff7b7 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x7eb86074 osd_req_op_cls_response_data +EXPORT_SYMBOL net/ceph/libceph 0x8153a9af osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0x8b482a18 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0x8df03363 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x8e1cc96c ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x944e9653 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x977a73c1 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x97b5fc07 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x99de4738 ceph_messenger_init +EXPORT_SYMBOL net/ceph/libceph 0x99e36571 ceph_osdc_cleanup +EXPORT_SYMBOL net/ceph/libceph 0x9f504960 osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xa87c66bc osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xa87ce2a3 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xae3515ba ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xaff6729c ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0xb0dbd93c ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xbb1e7d4d ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0xbc8e99c7 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0xbf1ae9a8 osd_req_op_watch_init +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc55de604 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xc6f2e77c osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0xc81c5bba ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0xc9556cb3 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb4368a8 ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcc38215e ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0xd1248667 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd5618f55 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0xd60fe89b osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0xd829a978 ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0xdb42d469 osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xdf7296d1 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0xe30c9e0f ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0xe82c9c32 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0xebb48f19 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0xec358a1a ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xee03c061 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0xf12c2434 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xf5a08f9d ceph_osdc_writepages +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x93e91c04 dccp_syn_ack_timeout +EXPORT_SYMBOL net/ieee802154/ieee802154 0x0dee7dca ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x136de028 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2041f94d ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x21c8fd91 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x27cc08ff ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2a19eafd wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2a910626 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x64d194e5 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa72aac23 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xab6439ca wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb8cd20e6 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe435b9c8 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xfb2f5cdd wpan_phy_unregister +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x23233c0e arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x56334982 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x5bff3ca8 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xab650323 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xce7279d9 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xec5610c7 ipt_do_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x063b46d2 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xcfb0d2ee xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x450bf8d2 ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xf1de8b8e ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x165f0752 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x49c03cbb ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa8bb6249 ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x678ce5c9 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xf561a8c7 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x3364ad3e xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x6cea334c xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x1d85c05f ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x356cf622 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x54a80f78 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x635e1fe1 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa527a990 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd0e3af66 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd6c001bf ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf2b25043 ircomm_connect_response +EXPORT_SYMBOL net/irda/irda 0x0064e0ea hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0c62bbfb async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x135d3d43 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x1e6cade0 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x26ced8b6 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x33cbe2c6 proc_irda +EXPORT_SYMBOL net/irda/irda 0x352fffc5 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x36646f1e alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x3e56064f hashbin_new +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x44d1ce3d async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x505fb0cc irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x511af464 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x56f6e006 irlap_close +EXPORT_SYMBOL net/irda/irda 0x589e9ca1 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x59f5c701 iriap_open +EXPORT_SYMBOL net/irda/irda 0x601bda46 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6b5fbcef hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x6e0ab3c7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7dc3a422 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x7ddad8be irttp_dup +EXPORT_SYMBOL net/irda/irda 0x7e17d8b3 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x85d88217 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x8ac1bfe5 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x9450e9fb irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x97c3af2a irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9c6ef3ac irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x9e4659e7 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xa1d41e58 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xaa557515 irias_new_object +EXPORT_SYMBOL net/irda/irda 0xb6aa6915 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc3cc6176 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xc68e43be irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0xcead7dbb hashbin_find +EXPORT_SYMBOL net/irda/irda 0xd2108314 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd726f42a irlap_open +EXPORT_SYMBOL net/irda/irda 0xd918d078 iriap_close +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe3463529 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xe3bde43e irias_insert_object +EXPORT_SYMBOL net/irda/irda 0xea218621 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xecad7f92 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf0a694a1 irias_find_object +EXPORT_SYMBOL net/irda/irda 0xf5876b95 hashbin_remove_this +EXPORT_SYMBOL net/l2tp/l2tp_core 0x30451cdb l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x213d47bd lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x2347515c lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x3a5b4a94 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x5710bc52 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x70f3318b lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x71f18e9d lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x7460b38e lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xba7a35e0 lapb_data_request +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x49eab12d llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x7a71c0cd llc_add_pack +EXPORT_SYMBOL net/llc/llc 0xa7e4b775 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0xc35e28f7 llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0xcb9d8cf2 llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0xd0b9fba6 llc_sap_find +EXPORT_SYMBOL net/llc/llc 0xee381832 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0xfa894cdf llc_sap_open +EXPORT_SYMBOL net/mac80211/mac80211 0x009376f2 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x0526bf47 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x06f940fd ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x087f5ae7 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x0d4dd761 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x12b51a5f ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x16496979 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x1aa7f01c ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x1d891384 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x21a2ae71 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x2c12db0e ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x2d6d3b36 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x317abe4b __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x32d6d178 ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0x3563c5bd ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x3630f122 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x36eaee5c wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x3f6f1f96 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x4dd85d04 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x4df8100b ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x53f26ea1 ieee80211_csa_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x545951cd ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x5556aebc __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x59ae9a20 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x5b8613a3 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x65ff3207 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x67dddd1c ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0x6abccff3 ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x6b9180e1 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x769b2056 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x7a1938c2 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x7b37e2cb ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x7b3d833f ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x7d2ef5f2 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x80eefbdc ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x825c7002 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x85d288c4 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x8c1aeeb9 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x9125abea ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x953a7cb2 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x9b892e01 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x9c5e6334 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0xa1fc36c4 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa5edd59a ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xa9a0b15f ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xac3e5856 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xb0a3162f ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0xb3276ea9 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xb6cdbcc6 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0xb700e018 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xbaf67cfd ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0xbebe51ba rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0xc0b98a21 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0xc0c17fbd ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xc0d46b84 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xc94a1099 ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0xcbb41111 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xcccafe99 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xd1deed9f ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0xd6643fc1 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0xda4ec823 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xde3aacf8 ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xe02fb91a ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xe0ba23fa rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xe1394e2f ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0xf2bbe981 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xf342332d ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xf395de03 ieee80211_aes_cmac_calculate_k1_k2 +EXPORT_SYMBOL net/mac80211/mac80211 0xf4e334f7 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac802154/mac802154 0x02be4fbc ieee802154_alloc_device +EXPORT_SYMBOL net/mac802154/mac802154 0x205255d3 ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0x53c129e6 ieee802154_unregister_device +EXPORT_SYMBOL net/mac802154/mac802154 0x77809739 ieee802154_register_device +EXPORT_SYMBOL net/mac802154/mac802154 0xf154dd70 ieee802154_free_device +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0739c919 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x142a5f08 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x197de9c5 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1d640e59 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x252f0de1 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x32df9742 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3eaf2c44 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x48486e7d ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5b9c3ac4 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x82a6aff7 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8b805c2c unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb5b35fd8 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd896cde3 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe7f6096e ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x50672cde __nf_ct_ext_add_length +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x683f0103 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xbbb2e352 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x827cc6a1 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x09a6863c nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/nf_nat 0x11392507 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x4c902815 nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0x75d93159 nf_xfrm_me_harder +EXPORT_SYMBOL net/netfilter/nf_nat 0x82fa9394 nf_nat_used_tuple +EXPORT_SYMBOL net/netfilter/nf_nat 0x87896d7a nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0x9d5d7aae nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x0fc1ee6d xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x2065d490 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x3e9061e5 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x45705d14 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x5a68ff5f xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x8e9ea784 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x9b4f7524 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xa2c24086 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xe18e17b2 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xe1e3d3a6 xt_unregister_targets +EXPORT_SYMBOL net/nfc/hci/hci 0x07923518 nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0x10db0da8 nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0x34f71d92 nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0x3704beff nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x43028a27 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x526c90c3 nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x54a93c8a nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0x6e46318a nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0x75f4d701 nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x91b337e9 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0x98bd2510 nfc_hci_send_response +EXPORT_SYMBOL net/nfc/hci/hci 0xa1c8414e nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0xbca0b4fd nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xd2044066 nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0xd350e930 nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xe2d05b31 nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0xe33b12b4 nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0xe825fca7 nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0xeedce6fa nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0xf07192b3 nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0x72a8ccb3 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xb46b8be6 nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xca060221 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0xf0b7baf5 nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0xf0e6abf3 nci_register_device +EXPORT_SYMBOL net/nfc/nfc 0x00cdfa86 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x04adde81 nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0x09b5ddf5 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x0cd97f60 nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0x1984950a nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0x2a8607ee nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x31f74255 nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0x3a0cab7b nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0x4e13be68 nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x4f550f5a nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0x5aa12ff9 nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0x872d883c nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0xb24711bd nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0xb369d0ee nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0xbd29f791 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0xc4f668b2 nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0xc9eb1ecd nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0xcfa67c8a nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0xda5707d5 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0xf0fb2823 nfc_register_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x0b731786 nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x2eebf002 nfc_digital_register_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x3d42e1b0 nfc_digital_free_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x72822f2e nfc_digital_unregister_device +EXPORT_SYMBOL net/phonet/phonet 0x0e1589e1 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x1b3be647 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x269390e0 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x58a3f0ab phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x61336252 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x7703b51e pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x9757a040 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xfd9084b3 pn_skb_send +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x09af93af rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x107a5ee3 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x36a5c918 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4ab81a63 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5830edb6 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x657f4cc6 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x82ce3a80 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8a03c69a rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8e9efdb2 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8fa05cfb rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x98ff2cf0 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa4424f52 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd284119a rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdb56c71a rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf0d7d5a2 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/sctp/sctp 0xf811a71d sctp_do_peeloff +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x020920f2 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x1733e15f gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x7d909a2e gss_mech_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0x41127525 svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0x0ad2bff7 wimax_reset +EXPORT_SYMBOL net/wimax/wimax 0x2593dfc6 wimax_rfkill +EXPORT_SYMBOL net/wireless/cfg80211 0x09710d03 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0af901f2 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x1324ce86 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x14204de0 cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x14371b16 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x1861b831 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x197b4af3 cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0x19e03378 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x1ab42a78 cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0x1fbc0343 cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x1fe402e7 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x24bcc2f2 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x25258dca wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x258bafdc cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x268c8e77 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x271be8da cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x2b0cac08 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x3816a6fc wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x3b4f218c cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x406a8302 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x42c0597a cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x43d0915c cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x4c3b5878 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x4c40b2fb ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x4dfd8158 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x549ae50f ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x59c93080 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x610cc7be cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6b7ee396 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x6b947770 cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x6c60d1d3 cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x6d6cb9ad ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x6f2ce946 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0x70815759 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x8113814f cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x813432d6 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x82afee4d wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x8944a5c5 cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x89acf248 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x90a4f686 cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x90f62db4 cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0x91020cb3 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x93723f9b cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9f5e80cb wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xa1425906 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa5088ed0 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xa9b99d16 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xad0d8707 cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xaee33b61 cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xb2fef930 cfg80211_report_obss_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0xb3acc054 cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0xb8b9567f wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xbcd7bf9f cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0xbeaa9508 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xbfde1af7 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xc15c8611 cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc6cd20ba __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xcdb572ce cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xcf618a57 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0xd0bc194b cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0xd384ee0d cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0xdba126c1 reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0xdf843e90 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xdfb4a4dd cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xe1cc91d9 cfg80211_roamed_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xe4ecd0e6 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xe769a0b5 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xec82ba08 cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xee42db3c cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xf761c908 cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xf9b1cdce cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xfa8dd9fa cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xfaf1b62e cfg80211_inform_bss_width +EXPORT_SYMBOL net/wireless/cfg80211 0xfc90be4b cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0xfcbce915 cfg80211_inform_bss_width_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xfd6d1245 cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/cfg80211 0xfff80d63 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/lib80211 0x0da39c29 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x11001cd1 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x4ddf7dd0 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x594eea63 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x85642608 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0xfa143bb2 lib80211_unregister_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x63445d89 ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6c1f1cf8 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6d093d58 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7316afc1 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x84924d44 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x409ea522 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x52744631 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x072d978b snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x13a17752 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2eed26bf snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x4d5ca523 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x592f6e9b snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd7c7afcc snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe60fb228 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xecbde43c snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x0af37270 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x000d4dea snd_card_create +EXPORT_SYMBOL sound/core/snd 0x0085aabc snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x09c7ff57 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x0b0b4ffb snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0x0decd307 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x12a62a11 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x1bcb3c2a snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x1f4e30c8 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x27a67689 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x3112caa9 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x36e732ec snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x38aa1ed6 snd_card_unref +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x41315a71 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x46ceb92c snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x47429f69 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x4754a8b3 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4b015768 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x5099aa53 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x5853a905 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x653ceef9 snd_card_register +EXPORT_SYMBOL sound/core/snd 0x6bb99915 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x75b0a1c3 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x771adb02 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x7f88e8d1 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x808404c8 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x832e306f snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x858141b8 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x88f097fb snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x8bfbcf67 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x99dfee81 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa98ba5cc snd_device_register +EXPORT_SYMBOL sound/core/snd 0xb1adb71e snd_component_add +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xba9aec58 snd_info_register +EXPORT_SYMBOL sound/core/snd 0xc22774a3 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xc65eb5d5 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xccad2f82 snd_cards +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xd738744a snd_device_new +EXPORT_SYMBOL sound/core/snd 0xd740b6f3 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xdc789f5e snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xe05c8cbe snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xe49a3efe snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0xf0414951 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xf2d9dc51 snd_card_free +EXPORT_SYMBOL sound/core/snd 0xf5234b58 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xfc17f3a7 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0xfe6a28f6 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd-hwdep 0x58ddd096 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x180f474a snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x2bb1b446 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x8e7af17d snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xd89ce024 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xd9705492 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x069b5d4f snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x0976083d snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x0edb0766 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x125b485b snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x132f39bd snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x18787334 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x1b22cd4d snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x35510cc8 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x35cb0aa6 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3a813e66 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x3b7d9ea2 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x3f129437 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x3f73a9ae snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x413319ef snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x44856e43 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x45255df3 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x533c4ad2 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6957897c snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x6cf7a01e _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x6d6b8752 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x6fb19a79 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x74bffea1 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x782ea62f snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x78ca05a0 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0x7a30e5e0 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x7d2133be snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x94098ff8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0x95154cbb snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x9a5ce418 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x9a696050 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xa3f75163 snd_pcm_debug_name +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xaff6d7ac snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbb8a4325 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xbcc0e999 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xc0b3fcee snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0xc54a9904 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xcd0d4038 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0xd5fb21a2 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xdd8c7fcd snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe6e80e9a snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xede1432c snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xee8b27de snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf6a39d2f snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xf7173f9c snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xfdfdb034 snd_pcm_new_internal +EXPORT_SYMBOL sound/core/snd-pcm 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0d5a7ff2 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2d640ba7 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3a83e404 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x41561a98 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4b73a2bb snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x712cbdc5 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7f334523 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x80ea653d snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x88f78686 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9f782613 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa421c9b1 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xaff1553f snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb5ac4e30 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xda7af726 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdce9381c snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf31907c3 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf6a00175 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-timer 0x0d642339 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x33cbdbd0 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x43e95d1a snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x481f111d snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x492c3c31 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x6207dfd9 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x6ff3528f snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x729ebfa1 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xc584e785 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xc5cd6e13 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0xd68cc14d snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0xe1e5e503 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xfedd4fd3 snd_timer_interrupt +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x5d9659fe snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x235e1e9f snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x3692bae2 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4bf04294 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa8c7eb48 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xc9d4b0f3 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xcf6ac7c4 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd2a4ad97 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe05f886f snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf2d811b2 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x223f196d snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x61eabfaf snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6d8c78f0 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x89ae5ff6 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8ac1648f snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8f1137ef snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x92ad57fa snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb760cda6 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xbd7ab805 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0227aa4c amdtp_out_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0719b5a7 cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0c2bcfcb cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x159048a0 fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1d6cccb5 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x20254e45 amdtp_syt_intervals +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2796f9bf cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2d39daa2 amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x408b54ca iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x45730339 amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4750d7ef fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x49ac6f58 amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x631d0f2f amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6a91b55f amdtp_out_stream_set_parameters +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6e54f088 amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7c330e89 iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x8a6c0d9e amdtp_out_stream_pcm_pointer +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa76876fa fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb6068b7e amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd15a09db amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xdce5e7ed snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe3eba96d fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf3a937f2 cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf62fa28b amdtp_out_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf736e4ed fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf8589a3c fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xfe5569f1 cmp_connection_establish +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x5008c512 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x50e5a127 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x814e7fd8 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xac34e73b snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xb50bffd4 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xdf94a4a2 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x53afccca snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x97485254 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd4266036 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd8ba5f8d snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xdd551622 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xec8efd09 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x0596d524 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x10edebf5 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x359142ea snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x467204ad snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x7ce65de4 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xd2366f71 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x407a147c snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x46603f5d snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x6e298894 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xb36c0be6 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xef0fbc6c snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-i2c 0x0a8b1030 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x1f94242f snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x35fe74ae snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x4b0a1046 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xcfbbfd36 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0xdbb35463 snd_i2c_sendbytes +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x03957144 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x2e4b4950 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x306a3074 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x46f08ecd snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x77f24260 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8e806669 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x98c609a9 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa695c19a snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xece321bb snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xfa0474e1 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xb937af45 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe0b3f690 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xfc21d7fb snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xfce85d3e snd_sb16dsp_pcm +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0bb20e98 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x16ca4e35 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x57c5fb85 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x64c70c69 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x74c4821f snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x786ca513 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7aa99f46 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8169fcaf snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9a35bff8 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xad33590b snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb503da0a snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xba4f0557 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbd7d7d4c snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbf144ea9 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xcca98d73 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xec0b9798 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xec26ffb4 snd_ac97_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x08d90240 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x25f87acf snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x3dcac7b4 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4e40fbde snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x587d4b39 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x5b1e17e0 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x921759ea snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb7ca808a snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf3dee6ad snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x07ce1adf snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x56d9b293 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x6719fdf5 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0728eb20 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1a321ff1 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2ce3e39a oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x37804a16 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3c9bd386 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4c0a1ff2 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x537b4d5e oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6e4afcfc oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x88c30038 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8953c6f4 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x945304d8 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa8abfe51 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xaef37072 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xaf3dd223 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb75200a5 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb960763f oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcae1a4b7 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd4dfa86f oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xfd515860 oxygen_write16 +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x0fc521ad snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x158c5b49 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x501cd373 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x502d42f4 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xae835728 snd_trident_alloc_voice +EXPORT_SYMBOL sound/soundcore 0x1ce655cf sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x0ffd72d4 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x1c40a7e9 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x2c607504 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x94cf855e snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x9a69b7f4 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe3eff69f snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/snd-util-mem 0x17778fbc snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x2bbf454e snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x3ee1ce2a snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x8f3202e7 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xbcb3cad8 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xd3c86014 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xdc40f345 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf6aeaba9 snd_util_mem_avail +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x9e64ecc3 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 __symbol_put +EXPORT_SYMBOL vmlinux 0x00000000 current_fs_time +EXPORT_SYMBOL vmlinux 0x00000000 d_tmpfile +EXPORT_SYMBOL vmlinux 0x00000000 do_sync_read +EXPORT_SYMBOL vmlinux 0x00000000 filp_close +EXPORT_SYMBOL vmlinux 0x00000000 finish_open +EXPORT_SYMBOL vmlinux 0x00000000 generic_getxattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_write_sync +EXPORT_SYMBOL vmlinux 0x00000000 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x00000000 in_group_p +EXPORT_SYMBOL vmlinux 0x00000000 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x00000000 iov_shorten +EXPORT_SYMBOL vmlinux 0x00000000 iterate_fd +EXPORT_SYMBOL vmlinux 0x00000000 ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 path_is_under +EXPORT_SYMBOL vmlinux 0x00000000 register_exec_domain +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout +EXPORT_SYMBOL vmlinux 0x00000000 sock_register +EXPORT_SYMBOL vmlinux 0x00000000 sys_close +EXPORT_SYMBOL vmlinux 0x00000000 task_nice +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x00000000 vm_brk +EXPORT_SYMBOL vmlinux 0x000a7cfb elv_register_queue +EXPORT_SYMBOL vmlinux 0x00136362 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x002203ff qman_volatile_dequeue +EXPORT_SYMBOL vmlinux 0x004e4b58 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x004f88e0 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x005bef26 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x00786aab flush_dcache_page +EXPORT_SYMBOL vmlinux 0x007ff5a2 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00975109 pme_ctx_is_dead +EXPORT_SYMBOL vmlinux 0x00cf4a7f of_get_parent +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00f3d72a inet6_register_icmp_sender +EXPORT_SYMBOL vmlinux 0x00f40751 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0101d5b1 ip_idents_reserve +EXPORT_SYMBOL vmlinux 0x010c026c mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01271dba neigh_lookup +EXPORT_SYMBOL vmlinux 0x012e141f fbcon_set_rotate +EXPORT_SYMBOL vmlinux 0x012fc382 check_disk_change +EXPORT_SYMBOL vmlinux 0x013a8ea9 crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x013b9227 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x018b8b60 igrab +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x0194501d __alloc_skb +EXPORT_SYMBOL vmlinux 0x019e7765 __init_rwsem +EXPORT_SYMBOL vmlinux 0x01a456b2 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x01c8e84d ida_simple_get +EXPORT_SYMBOL vmlinux 0x01ff57b6 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x02044d67 dquot_disable +EXPORT_SYMBOL vmlinux 0x020bfc35 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x02154b64 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x021586fc shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x02403b56 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x027b2b81 handle_edge_irq +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02b71cb1 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0x02b8966e i2c_master_send +EXPORT_SYMBOL vmlinux 0x02cf9ba6 follow_up +EXPORT_SYMBOL vmlinux 0x02da032b nobh_write_end +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x030c91c2 napi_get_frags +EXPORT_SYMBOL vmlinux 0x0312c64f wireless_send_event +EXPORT_SYMBOL vmlinux 0x03207bf9 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x03542b19 inet_bind +EXPORT_SYMBOL vmlinux 0x035591e0 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x0363a030 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x036dc400 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03b19bc8 tty_unlock_pair +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03e23fe6 vfs_getattr +EXPORT_SYMBOL vmlinux 0x03edb77d inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x03fdb8f8 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x03fea916 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x040209ab netif_skb_dev_features +EXPORT_SYMBOL vmlinux 0x04074f48 ioremap +EXPORT_SYMBOL vmlinux 0x041493fc bio_integrity_free +EXPORT_SYMBOL vmlinux 0x0414dd92 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x0420682e jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x0433cba5 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x04365631 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x045096ad tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x04524138 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x04600499 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x04796bea lookup_bdev +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x0489fb3b __bforget +EXPORT_SYMBOL vmlinux 0x04a15786 ata_std_end_eh +EXPORT_SYMBOL vmlinux 0x04c73cd0 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x04df67c0 cdrom_check_events +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04eec807 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x04f6da30 update_region +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x052b0ffe tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0x0530dede _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x054e9943 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x0565b60b __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x058b2336 submit_bh +EXPORT_SYMBOL vmlinux 0x0593a99b init_timer_key +EXPORT_SYMBOL vmlinux 0x05958010 consume_skb +EXPORT_SYMBOL vmlinux 0x05977d7b mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05a6b025 netlink_ack +EXPORT_SYMBOL vmlinux 0x05b3c574 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x05bdc0a3 request_firmware +EXPORT_SYMBOL vmlinux 0x05c7c35e qman_get_null_cb +EXPORT_SYMBOL vmlinux 0x05d9d031 dev_uc_sync +EXPORT_SYMBOL vmlinux 0x0613f57c read_cache_pages +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x0645932f textsearch_register +EXPORT_SYMBOL vmlinux 0x06489d52 bman_rcr_is_empty +EXPORT_SYMBOL vmlinux 0x0652189c vc_cons +EXPORT_SYMBOL vmlinux 0x0675c7eb atomic64_cmpxchg +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06913bc9 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x06aa40a6 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x06bbb24a mempool_resize +EXPORT_SYMBOL vmlinux 0x06e1eeac of_create_pci_dev +EXPORT_SYMBOL vmlinux 0x06f47b91 d_find_any_alias +EXPORT_SYMBOL vmlinux 0x06f84056 dev_queue_xmit_accel +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x070b73a0 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x07148af9 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x07180d90 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x0738453d pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x074e9213 down_killable +EXPORT_SYMBOL vmlinux 0x075bcda6 get_super_thawed +EXPORT_SYMBOL vmlinux 0x0778d7a0 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x077b1c5a dump_skip +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07f0e07f tcp_ioctl +EXPORT_SYMBOL vmlinux 0x080f912a freeze_bdev +EXPORT_SYMBOL vmlinux 0x08176d28 scsi_host_put +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x082daf91 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x083c2cbe of_get_next_parent +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x08815f5a give_up_console +EXPORT_SYMBOL vmlinux 0x08c58221 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x08cc84e7 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x08de5c3b mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x093989a1 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x093a0da6 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x094e4520 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x0952c006 skb_queue_head +EXPORT_SYMBOL vmlinux 0x09530bc9 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x09551b60 nf_log_register +EXPORT_SYMBOL vmlinux 0x09595ee5 nf_register_hook +EXPORT_SYMBOL vmlinux 0x09790e91 i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0x097e51e4 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x097f5510 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09b1dc2e phy_detach +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09e0ea83 netdev_master_upper_dev_link_private +EXPORT_SYMBOL vmlinux 0x09ee6793 flush_tlb_page +EXPORT_SYMBOL vmlinux 0x09fd14a2 generic_write_end +EXPORT_SYMBOL vmlinux 0x09fd93b4 qman_create_fq +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a268e6a nf_reinject +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a31b0f5 vm_insert_page +EXPORT_SYMBOL vmlinux 0x0a469d23 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0x0a49d3c4 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x0a7edf6f md_register_thread +EXPORT_SYMBOL vmlinux 0x0a880226 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x0a9f6d59 pme_attr_set +EXPORT_SYMBOL vmlinux 0x0aa25b04 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x0aa3f6eb inode_init_once +EXPORT_SYMBOL vmlinux 0x0ab04e75 tty_throttle +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0af454fb d_invalidate +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1bd883 is_bad_inode +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b2bb148 make_kprojid +EXPORT_SYMBOL vmlinux 0x0b2ce1c6 tty_port_close +EXPORT_SYMBOL vmlinux 0x0b3fa368 ping_prot +EXPORT_SYMBOL vmlinux 0x0b415ae6 sock_create_lite +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b4b6d88 netdev_err +EXPORT_SYMBOL vmlinux 0x0b559a2d dma_direct_ops +EXPORT_SYMBOL vmlinux 0x0b56117f of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0bbc5908 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bc61a18 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x0bfa77b9 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x0bfb1175 tty_hangup +EXPORT_SYMBOL vmlinux 0x0bfd98a7 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x0c12e626 __debugger_bpt +EXPORT_SYMBOL vmlinux 0x0c19494e get_fs_type +EXPORT_SYMBOL vmlinux 0x0c1d3c36 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x0c29fa1c tc_classify +EXPORT_SYMBOL vmlinux 0x0c3dbb56 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x0c438aaa pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x0c45fc96 vfs_lstat +EXPORT_SYMBOL vmlinux 0x0c4cc02c dump_emit +EXPORT_SYMBOL vmlinux 0x0c58a8cd netdev_increment_features +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c9b6089 nvram_get_size +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca2734d xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cb34866 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x0ce900af blk_finish_plug +EXPORT_SYMBOL vmlinux 0x0cf7b8cc xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x0cfa2b35 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x0d1f4cd3 seq_puts +EXPORT_SYMBOL vmlinux 0x0d449491 build_skb +EXPORT_SYMBOL vmlinux 0x0d44ddf2 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d7535fa blk_run_queue +EXPORT_SYMBOL vmlinux 0x0d95398f lease_modify +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da16610 __destroy_inode +EXPORT_SYMBOL vmlinux 0x0dac962c seq_release +EXPORT_SYMBOL vmlinux 0x0db21ad8 bio_add_page +EXPORT_SYMBOL vmlinux 0x0dbb8ffd d_find_alias +EXPORT_SYMBOL vmlinux 0x0dbe720a alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x0de90241 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x0dfb898a pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x0e00ff52 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x0e10602c ps2_drain +EXPORT_SYMBOL vmlinux 0x0e4f6acd make_kuid +EXPORT_SYMBOL vmlinux 0x0e4f845c agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x0e508540 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x0e6bf9a3 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x0e6da44a set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x0e8f30f6 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x0eaf451e hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x0eb11920 unregister_nls +EXPORT_SYMBOL vmlinux 0x0eb6baba ip6_expire_frag_queue +EXPORT_SYMBOL vmlinux 0x0ecb1549 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x0ed057e0 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0x0ef69857 pme_ctx_pmtcc +EXPORT_SYMBOL vmlinux 0x0efab3f9 padata_do_parallel +EXPORT_SYMBOL vmlinux 0x0efcbb1b set_current_groups +EXPORT_SYMBOL vmlinux 0x0f0f3aa1 ftrace_raw_output_prep +EXPORT_SYMBOL vmlinux 0x0f1a4e10 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL vmlinux 0x0f2d5f1f pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x0f31bf12 ipmi_smi_watcher_unregister +EXPORT_SYMBOL vmlinux 0x0f3f679d nf_setsockopt +EXPORT_SYMBOL vmlinux 0x0f43b282 mntget +EXPORT_SYMBOL vmlinux 0x0f4c91ed ns_to_timespec +EXPORT_SYMBOL vmlinux 0x0f5faa7e wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x0f609ab3 flush_tlb_range +EXPORT_SYMBOL vmlinux 0x0f6b2d50 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x0f8adb1b __dev_remove_offload +EXPORT_SYMBOL vmlinux 0x0f8c0149 pme2_have_control +EXPORT_SYMBOL vmlinux 0x0f9316c8 fm_mutex_unlock +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fbda9cd scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x0fc27b71 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x0fc748b5 fsl_ifc_ctrl_dev +EXPORT_SYMBOL vmlinux 0x0fd6a834 dcache_readdir +EXPORT_SYMBOL vmlinux 0x100b6c3f input_free_device +EXPORT_SYMBOL vmlinux 0x100c2f98 noop_llseek +EXPORT_SYMBOL vmlinux 0x102139dc set_disk_ro +EXPORT_SYMBOL vmlinux 0x1038ec89 cap_mmap_file +EXPORT_SYMBOL vmlinux 0x104324aa wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x10675a28 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x106f13ab crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x107e19e7 dev_trans_start +EXPORT_SYMBOL vmlinux 0x108dc322 serio_open +EXPORT_SYMBOL vmlinux 0x10af1051 tcp_child_process +EXPORT_SYMBOL vmlinux 0x10c04c23 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11056f89 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x110668f3 seq_read +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11097384 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x1149579e md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x1167d3a5 of_match_device +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x1182d83a cpuidle_disable +EXPORT_SYMBOL vmlinux 0x119b9717 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x11a8120a xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x11bca760 nobh_writepage +EXPORT_SYMBOL vmlinux 0x11c9185c of_iomap +EXPORT_SYMBOL vmlinux 0x11cba85a iget_failed +EXPORT_SYMBOL vmlinux 0x11d1b07c read_cache_page +EXPORT_SYMBOL vmlinux 0x11d4fb04 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x11e15743 sync_inode +EXPORT_SYMBOL vmlinux 0x11f1aa84 input_set_capability +EXPORT_SYMBOL vmlinux 0x11f2c9b0 get_write_access +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x120853de of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x12110822 skb_append +EXPORT_SYMBOL vmlinux 0x122043a8 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x1235d53b find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x12605204 pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12bde32e inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12fa1798 __seq_open_private +EXPORT_SYMBOL vmlinux 0x13307fde vsscanf +EXPORT_SYMBOL vmlinux 0x133bacf3 mach_corenet_generic +EXPORT_SYMBOL vmlinux 0x1348760d ipmi_request_settime +EXPORT_SYMBOL vmlinux 0x134ec235 cad_pid +EXPORT_SYMBOL vmlinux 0x13690bc8 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x13767956 qman_enqueue +EXPORT_SYMBOL vmlinux 0x139394d5 misc_deregister +EXPORT_SYMBOL vmlinux 0x139b1c4a vga_put +EXPORT_SYMBOL vmlinux 0x13ac6b0e swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13e036b2 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x13e38f5c up_read +EXPORT_SYMBOL vmlinux 0x13fec4b8 devm_gpiod_get +EXPORT_SYMBOL vmlinux 0x1407c6e7 kmap_prot +EXPORT_SYMBOL vmlinux 0x1420b379 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x1423510f bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0x14475585 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x1454f533 pci_enable_device +EXPORT_SYMBOL vmlinux 0x148af52e dm_register_target +EXPORT_SYMBOL vmlinux 0x149843f1 pci_bus_put +EXPORT_SYMBOL vmlinux 0x14a49d3d key_revoke +EXPORT_SYMBOL vmlinux 0x14f45fcc bman_free_pool +EXPORT_SYMBOL vmlinux 0x1511b9ec prepare_binprm +EXPORT_SYMBOL vmlinux 0x1528658e skb_pull +EXPORT_SYMBOL vmlinux 0x15477b72 clocksource_register +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x156f6913 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x1585f63c input_inject_event +EXPORT_SYMBOL vmlinux 0x15864b03 flex_array_get +EXPORT_SYMBOL vmlinux 0x1586ef48 user_revoke +EXPORT_SYMBOL vmlinux 0x158f2f5c splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x159d7b21 kmap_to_page +EXPORT_SYMBOL vmlinux 0x15a29817 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x15a53ff3 md_integrity_register +EXPORT_SYMBOL vmlinux 0x15a7f942 file_open_root +EXPORT_SYMBOL vmlinux 0x15ca1076 key_reject_and_link +EXPORT_SYMBOL vmlinux 0x15d3fd60 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x15e192cb __cleancache_put_page +EXPORT_SYMBOL vmlinux 0x15e52f6c filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x15ee0ac5 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x15f571ec blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x1609cbf5 sys_copyarea +EXPORT_SYMBOL vmlinux 0x160f658e bio_sector_offset +EXPORT_SYMBOL vmlinux 0x161d0033 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x1626ae49 end_page_writeback +EXPORT_SYMBOL vmlinux 0x162b22db security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x164451ef pme_ctx_reconfigure_rx +EXPORT_SYMBOL vmlinux 0x16487e97 security_path_unlink +EXPORT_SYMBOL vmlinux 0x1653c6ec __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x16540bbc __cmpdi2 +EXPORT_SYMBOL vmlinux 0x166b0df1 inet6_add_offload +EXPORT_SYMBOL vmlinux 0x168f02f9 fm_get_handle +EXPORT_SYMBOL vmlinux 0x1692e826 skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0x16a054c8 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x16a22899 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x16a89ef8 blk_mq_end_io +EXPORT_SYMBOL vmlinux 0x16b28d02 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x16c600f5 scsi_device_put +EXPORT_SYMBOL vmlinux 0x16c895a2 dst_release +EXPORT_SYMBOL vmlinux 0x16cc74e4 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x16cd100f bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x16cd2185 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL vmlinux 0x16f29f8d swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x17296b7b kill_fasync +EXPORT_SYMBOL vmlinux 0x1733b4c0 cont_write_begin +EXPORT_SYMBOL vmlinux 0x174198d5 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x17480aa7 seq_escape +EXPORT_SYMBOL vmlinux 0x17499ffb sock_no_mmap +EXPORT_SYMBOL vmlinux 0x17648396 dev_base_lock +EXPORT_SYMBOL vmlinux 0x17649976 inet6_getname +EXPORT_SYMBOL vmlinux 0x177e6f1f new_inode +EXPORT_SYMBOL vmlinux 0x177f0be0 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x179169c0 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x17a51217 dquot_release +EXPORT_SYMBOL vmlinux 0x17aa156a __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x17ae5e83 __inet_stream_connect +EXPORT_SYMBOL vmlinux 0x17b1125d gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x17b42c4f skb_checksum +EXPORT_SYMBOL vmlinux 0x17ba5a8b insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x17cf8672 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x17d519a3 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x17e28473 fsl_upm_run_pattern +EXPORT_SYMBOL vmlinux 0x17e7920d vfs_read +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x180345a8 elevator_init +EXPORT_SYMBOL vmlinux 0x18105b4d free_netdev +EXPORT_SYMBOL vmlinux 0x1826f089 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x1828ce6b sock_alloc_file +EXPORT_SYMBOL vmlinux 0x183721ed dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x18514b68 have_submounts +EXPORT_SYMBOL vmlinux 0x18580ba0 kobject_put +EXPORT_SYMBOL vmlinux 0x1870f8c1 qman_fqid_pool_alloc +EXPORT_SYMBOL vmlinux 0x188a3dfb timespec_trunc +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18c3a33f pci_remove_bus +EXPORT_SYMBOL vmlinux 0x18eefdbb tty_check_change +EXPORT_SYMBOL vmlinux 0x1901e060 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x190f79aa gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0x19111a40 lockref_get_not_zero +EXPORT_SYMBOL vmlinux 0x1923ff08 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x1924388c pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x1943a772 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x195ab262 proc_create_data +EXPORT_SYMBOL vmlinux 0x1992b308 ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b2d9ab blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19db2dc6 __kfree_skb +EXPORT_SYMBOL vmlinux 0x19e06210 d_rehash +EXPORT_SYMBOL vmlinux 0x19f8163d phy_attach +EXPORT_SYMBOL vmlinux 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL vmlinux 0x1a111a41 ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x1a20ee32 kobject_add +EXPORT_SYMBOL vmlinux 0x1a2b499c pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x1a2d98b4 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x1a2ebeed i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x1a4580a8 ipmi_smi_watcher_register +EXPORT_SYMBOL vmlinux 0x1a592a89 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x1a6a6e29 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x1a77c039 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL vmlinux 0x1ac78328 dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae9b9c6 phy_drivers_register +EXPORT_SYMBOL vmlinux 0x1af62a99 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b0ac272 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x1b132009 rename_lock +EXPORT_SYMBOL vmlinux 0x1b1e1088 sg_nents +EXPORT_SYMBOL vmlinux 0x1b2be339 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x1b2c0e26 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x1b55039d netdev_change_features +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b82fefa md_unplug +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1b9f0cd0 dev_deactivate +EXPORT_SYMBOL vmlinux 0x1ba54c1f pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x1bb79e80 devfreq_add_device +EXPORT_SYMBOL vmlinux 0x1bbc5e88 padata_free +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1bca2b59 load_fp_state +EXPORT_SYMBOL vmlinux 0x1bf31446 eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0x1c0515db request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x1c09aba3 qman_static_dequeue_get +EXPORT_SYMBOL vmlinux 0x1c1256a0 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x1c3c97b3 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x1c57edb8 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x1c657040 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1c9e13df padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x1c9fcf27 inet_frag_find +EXPORT_SYMBOL vmlinux 0x1cb09ebb stop_tty +EXPORT_SYMBOL vmlinux 0x1cb11a64 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x1cc05aa3 neigh_destroy +EXPORT_SYMBOL vmlinux 0x1d192af5 __mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x1d340e7f flush_old_exec +EXPORT_SYMBOL vmlinux 0x1d38b849 inet_del_offload +EXPORT_SYMBOL vmlinux 0x1d4e5cb9 blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x1d764c8e agp_free_page_array +EXPORT_SYMBOL vmlinux 0x1d8442cc d_move +EXPORT_SYMBOL vmlinux 0x1d9bcb4c pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x1dc1131e skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de7fe98 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x1e243fc6 dquot_file_open +EXPORT_SYMBOL vmlinux 0x1e260ea4 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e4963aa mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e7dc554 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x1e85f069 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x1e8f86cc scsi_register_driver +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea630dd netif_rx +EXPORT_SYMBOL vmlinux 0x1eb4b93e remove_proc_subtree +EXPORT_SYMBOL vmlinux 0x1ebaf855 __cleancache_get_page +EXPORT_SYMBOL vmlinux 0x1ec3bed9 hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x1f09393a input_event +EXPORT_SYMBOL vmlinux 0x1f5ad908 pme_attr_get +EXPORT_SYMBOL vmlinux 0x1f7e807f kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x1f817653 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x1f97d3af dma_async_device_register +EXPORT_SYMBOL vmlinux 0x1fa92c8d from_kuid +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fc92bfc pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x1fc985fe sk_free +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd9f0b2 inode_dio_done +EXPORT_SYMBOL vmlinux 0x1fe2c2b1 file_ns_capable +EXPORT_SYMBOL vmlinux 0x1fe912f1 netdev_alloc_frag +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x1ff0987e vga_get +EXPORT_SYMBOL vmlinux 0x1ff87ec1 __nla_put +EXPORT_SYMBOL vmlinux 0x1ff87f5e pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x1ff96273 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x200f5c89 __neigh_create +EXPORT_SYMBOL vmlinux 0x201243a6 locks_init_lock +EXPORT_SYMBOL vmlinux 0x20291d73 ll_rw_block +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x2057edb9 of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0x20640d37 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x206687ad cpm_muram_alloc_fixed +EXPORT_SYMBOL vmlinux 0x206cd2de inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x20826769 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x2083a7e3 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x20a35858 key_validate +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20a86b3f of_get_pci_address +EXPORT_SYMBOL vmlinux 0x20b2bb2d param_array_ops +EXPORT_SYMBOL vmlinux 0x20c1360c md_unregister_thread +EXPORT_SYMBOL vmlinux 0x20c55ae0 sscanf +EXPORT_SYMBOL vmlinux 0x20e274b2 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x20e52aa0 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x211053e6 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x212148f9 nf_register_hooks +EXPORT_SYMBOL vmlinux 0x2122e19c flush_signals +EXPORT_SYMBOL vmlinux 0x2143a426 dev_remove_offload +EXPORT_SYMBOL vmlinux 0x2159c117 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x215f5a42 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0x21936e1f dev_get_phys_port_id +EXPORT_SYMBOL vmlinux 0x219d6c4f ppp_register_channel +EXPORT_SYMBOL vmlinux 0x21d92958 simple_readpage +EXPORT_SYMBOL vmlinux 0x21e07f81 scsi_execute_req_flags +EXPORT_SYMBOL vmlinux 0x21e623aa mmc_put_card +EXPORT_SYMBOL vmlinux 0x21eaeb67 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x21f3dc15 cpm_command +EXPORT_SYMBOL vmlinux 0x21f77a0c ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x22142511 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x222c1fd3 keyring_clear +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2241f9ea xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x2253e7db scsi_put_command +EXPORT_SYMBOL vmlinux 0x2256fafa div64_u64_rem +EXPORT_SYMBOL vmlinux 0x2265b514 qman_get_portal_config +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2278e94b slhc_remember +EXPORT_SYMBOL vmlinux 0x227f5510 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x2289e32e xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x228a54cb __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x22a1e28e pci_assign_resource +EXPORT_SYMBOL vmlinux 0x22a21bad block_invalidatepage +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22cb94d3 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x22d627ad __sb_end_write +EXPORT_SYMBOL vmlinux 0x22d73c62 bman_get_params +EXPORT_SYMBOL vmlinux 0x22ee22de done_path_create +EXPORT_SYMBOL vmlinux 0x22f48f72 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x22f6da6b insert_inode_locked +EXPORT_SYMBOL vmlinux 0x2314750a unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x2337df07 freezing_slow_path +EXPORT_SYMBOL vmlinux 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x235b2664 sock_wake_async +EXPORT_SYMBOL vmlinux 0x235dce16 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x235e90f3 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x2370a6f6 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x238f9eae __sk_dst_check +EXPORT_SYMBOL vmlinux 0x23901472 phy_disconnect +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23d32b75 netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0x23f2243d mempool_free +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24212d86 __frontswap_invalidate_page +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x245535c0 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245a5a94 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x24b0f90c of_clk_get_by_name +EXPORT_SYMBOL vmlinux 0x24c6b45b page_readlink +EXPORT_SYMBOL vmlinux 0x24cdd8ed dm_kobject_release +EXPORT_SYMBOL vmlinux 0x24d7b4eb cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x24de0ace __scsi_add_device +EXPORT_SYMBOL vmlinux 0x24facda7 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x2505db9b set_nlink +EXPORT_SYMBOL vmlinux 0x2505e8e2 devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x2527843a pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x25284a25 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x2533dda1 bman_query_pools +EXPORT_SYMBOL vmlinux 0x256a8d9f agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x2574ca5e kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x25821943 dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x2582b133 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x259f2dbc mmc_start_bkops +EXPORT_SYMBOL vmlinux 0x25a804a9 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x25b66642 sock_no_accept +EXPORT_SYMBOL vmlinux 0x25c0d8dc sk_ns_capable +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25cbd8e7 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x25e96666 devm_gpio_request +EXPORT_SYMBOL vmlinux 0x25ea7f74 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x25f3bd2e atomic64_xchg +EXPORT_SYMBOL vmlinux 0x260cf8f8 of_get_property +EXPORT_SYMBOL vmlinux 0x2624e758 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x2650d835 sysctl_ip_early_demux +EXPORT_SYMBOL vmlinux 0x265f7093 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x269b5f68 local_flush_tlb_page +EXPORT_SYMBOL vmlinux 0x26a910c1 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x26ad2304 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x26af5039 devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0x26b760c4 slhc_init +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f0453a blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x270ff550 dev_addr_add +EXPORT_SYMBOL vmlinux 0x2719f3b3 dst_discard +EXPORT_SYMBOL vmlinux 0x27449624 blk_mq_alloc_reserved_request +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x2759b194 km_new_mapping +EXPORT_SYMBOL vmlinux 0x27721ad5 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x2797c371 find_lock_page +EXPORT_SYMBOL vmlinux 0x27a72909 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x27b53139 pme_fd_cmd_pmtcc +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27ca0952 netif_device_attach +EXPORT_SYMBOL vmlinux 0x27d2f65a key_task_permission +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27f2313e idr_replace +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2825b5ef devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x28742e2a from_kuid_munged +EXPORT_SYMBOL vmlinux 0x288f3f4d pci_device_from_OF_node +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28a7a927 mmc_request_done +EXPORT_SYMBOL vmlinux 0x28f479ff dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x28f784f5 __debugger_break_match +EXPORT_SYMBOL vmlinux 0x291205a2 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x2918cc8f posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x292e48e4 mmc_set_blockcount +EXPORT_SYMBOL vmlinux 0x294f2952 empty_aops +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x296400e6 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x299e8661 address_space_init_once +EXPORT_SYMBOL vmlinux 0x29a38deb udp_seq_open +EXPORT_SYMBOL vmlinux 0x29a67db1 bman_recovery_cleanup_bpid +EXPORT_SYMBOL vmlinux 0x29c1c998 pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0x29d31a43 blk_get_request +EXPORT_SYMBOL vmlinux 0x29fdda53 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x2a0a7892 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x2a1e8005 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x2a2cd018 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a3cb269 pci_clear_master +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2a881eb1 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aab8373 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x2aac32a1 noop_fsync +EXPORT_SYMBOL vmlinux 0x2ac1ac84 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x2ac5c00b dev_open +EXPORT_SYMBOL vmlinux 0x2ac6fc5e bdevname +EXPORT_SYMBOL vmlinux 0x2ac84eac bio_advance +EXPORT_SYMBOL vmlinux 0x2ace61f8 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x2acf0feb vfs_fstat +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b0c0e63 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b39aee0 bman_release +EXPORT_SYMBOL vmlinux 0x2b433118 abort_creds +EXPORT_SYMBOL vmlinux 0x2b4d57b2 adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0x2b560790 get_phy_device +EXPORT_SYMBOL vmlinux 0x2b5f50c8 elv_rb_add +EXPORT_SYMBOL vmlinux 0x2b64f9c6 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x2b790cfb inet6_protos +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba10c68 __mutex_init +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb06a85 gen10g_restart_aneg +EXPORT_SYMBOL vmlinux 0x2bb5be19 key_invalidate +EXPORT_SYMBOL vmlinux 0x2bc61da1 program_check_exception +EXPORT_SYMBOL vmlinux 0x2bcc0a7f pci_enable_obff +EXPORT_SYMBOL vmlinux 0x2bd702c4 key_unlink +EXPORT_SYMBOL vmlinux 0x2be0f12d dql_completed +EXPORT_SYMBOL vmlinux 0x2bfde907 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x2c0615e7 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x2c0f49af __skb_gso_segment +EXPORT_SYMBOL vmlinux 0x2c12c639 gen10g_read_status +EXPORT_SYMBOL vmlinux 0x2c14323a kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c36b945 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x2c403952 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x2c411422 ipmi_smi_add_proc_entry +EXPORT_SYMBOL vmlinux 0x2c454bb0 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x2c64f81d scsi_scan_host +EXPORT_SYMBOL vmlinux 0x2c7b1fca down_timeout +EXPORT_SYMBOL vmlinux 0x2c8ea3bb netdev_notice +EXPORT_SYMBOL vmlinux 0x2c900d91 cpufreq_put_global_kobject +EXPORT_SYMBOL vmlinux 0x2c95c1c3 vc_resize +EXPORT_SYMBOL vmlinux 0x2ca042b0 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x2cdd5746 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x2ce431ae blk_mq_map_queue +EXPORT_SYMBOL vmlinux 0x2cf79d5b kern_unmount +EXPORT_SYMBOL vmlinux 0x2cfb8378 qman_stop_dequeues +EXPORT_SYMBOL vmlinux 0x2d03c10d posix_acl_create +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask +EXPORT_SYMBOL vmlinux 0x2d6a6e1c account_page_redirty +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d9f2aa3 pci_enable_ltr +EXPORT_SYMBOL vmlinux 0x2d9f2da9 fasync_helper +EXPORT_SYMBOL vmlinux 0x2daaaba9 param_get_byte +EXPORT_SYMBOL vmlinux 0x2dcb6fc3 twl6040_power +EXPORT_SYMBOL vmlinux 0x2deda4a1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x2dfded3d vfs_rename +EXPORT_SYMBOL vmlinux 0x2e096d58 tcp_release_cb +EXPORT_SYMBOL vmlinux 0x2e0d2c5a blk_bio_map_sg +EXPORT_SYMBOL vmlinux 0x2e140ab4 eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e3e03f8 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x2e48bdcf qman_poll_dqrr +EXPORT_SYMBOL vmlinux 0x2e81df1a pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0x2e97bf98 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x2e9d9e81 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x2eac10c5 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ecb95d6 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0x2ecf8c9e fb_pan_display +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f2c5ad7 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x2f3e42ec irq_stat +EXPORT_SYMBOL vmlinux 0x2f4c8724 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x2f66730e d_alloc_name +EXPORT_SYMBOL vmlinux 0x2fa253e1 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x2fa54b06 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x2fae0f18 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fd19793 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x3018a188 dev_emerg +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x30327acc __skb_checksum +EXPORT_SYMBOL vmlinux 0x3036d5d8 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x30455fd1 unlock_rename +EXPORT_SYMBOL vmlinux 0x3071624a __quota_error +EXPORT_SYMBOL vmlinux 0x30758e19 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x30868cb1 alloc_disk +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30b65443 netpoll_rx_disable +EXPORT_SYMBOL vmlinux 0x30b8b35c cpu_to_chip_id +EXPORT_SYMBOL vmlinux 0x30bb3eb1 __ip_dev_find +EXPORT_SYMBOL vmlinux 0x30c12e52 dentry_unhash +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30d8c418 set_bh_page +EXPORT_SYMBOL vmlinux 0x3102d70b frontswap_curr_pages +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x310adc20 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x311e4b1a blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0x312824e0 hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x314218bf elv_add_request +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x3170c040 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0x31839336 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x318cadb1 reciprocal_value +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x319d533b pci_dev_put +EXPORT_SYMBOL vmlinux 0x31a91030 cdev_add +EXPORT_SYMBOL vmlinux 0x31abb8df jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x31c4be12 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x31f0bb78 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x31f7d40a pme_fd_cmd_fcw +EXPORT_SYMBOL vmlinux 0x31f8cbaf kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x3200d693 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x321f41aa kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x322661a7 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x322f48d4 abx500_dump_all_banks +EXPORT_SYMBOL vmlinux 0x32424b34 qman_query_wq +EXPORT_SYMBOL vmlinux 0x3245be5f pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x3261df07 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x3274f77c block_read_full_page +EXPORT_SYMBOL vmlinux 0x327bf883 of_can_translate_address +EXPORT_SYMBOL vmlinux 0x3284c88d tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x32860d7e qman_fqid_pool_free +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x32e04020 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x32e667b3 eth_header_parse +EXPORT_SYMBOL vmlinux 0x3308d85b scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x33097d33 d_set_d_op +EXPORT_SYMBOL vmlinux 0x337cce46 put_cmsg +EXPORT_SYMBOL vmlinux 0x338658c8 led_set_brightness +EXPORT_SYMBOL vmlinux 0x338788f4 skb_insert +EXPORT_SYMBOL vmlinux 0x33a56ffe mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x33a6bc50 powerpc_debugfs_root +EXPORT_SYMBOL vmlinux 0x33aa48f2 qman_static_dequeue_del +EXPORT_SYMBOL vmlinux 0x33acf057 lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33ba5cd4 param_ops_bool +EXPORT_SYMBOL vmlinux 0x33c7435c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x33cdf9dd arp_send +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x34184afe current_kernel_time +EXPORT_SYMBOL vmlinux 0x342f0912 sk_run_filter +EXPORT_SYMBOL vmlinux 0x343bb4c4 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x3442fac7 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x34473bab skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x34561905 pme_ctx_enable +EXPORT_SYMBOL vmlinux 0x346c4ded rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x347eb9bd param_set_bool +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34b0dc9c mpage_writepages +EXPORT_SYMBOL vmlinux 0x34b5217f dma_common_mmap +EXPORT_SYMBOL vmlinux 0x34c1e79c simple_transaction_get +EXPORT_SYMBOL vmlinux 0x34d3a369 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x350424b2 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x3508d346 of_phy_attach +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x352594de d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x35426906 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x35607b46 mmc_release_host +EXPORT_SYMBOL vmlinux 0x356b0408 mnt_unpin +EXPORT_SYMBOL vmlinux 0x3586a53a dump_align +EXPORT_SYMBOL vmlinux 0x35b1954a pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0x35b27fa9 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x35d7941c mmc_can_discard +EXPORT_SYMBOL vmlinux 0x35e4250b filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x3633c05a generic_file_llseek +EXPORT_SYMBOL vmlinux 0x36368279 dev_uc_del +EXPORT_SYMBOL vmlinux 0x364a52d2 d_validate +EXPORT_SYMBOL vmlinux 0x366b94c1 block_write_full_page +EXPORT_SYMBOL vmlinux 0x36780be7 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x36815df7 gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0x368382e2 of_get_named_gpiod_flags +EXPORT_SYMBOL vmlinux 0x36859146 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x368a8b5b nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x3695484b elevator_change +EXPORT_SYMBOL vmlinux 0x369feab4 alloc_file +EXPORT_SYMBOL vmlinux 0x36b0e732 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x36bd681b groups_alloc +EXPORT_SYMBOL vmlinux 0x36d7b11a of_find_matching_node_and_match +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x371e77ec sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x372e062f put_disk +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x3764434f key_link +EXPORT_SYMBOL vmlinux 0x37953800 input_get_keycode +EXPORT_SYMBOL vmlinux 0x37b28c01 mutex_trylock +EXPORT_SYMBOL vmlinux 0x37b47535 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x381144a9 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x381ccc13 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x381dcad3 proc_remove +EXPORT_SYMBOL vmlinux 0x38245657 __find_get_block +EXPORT_SYMBOL vmlinux 0x383c577f tcf_hash_release +EXPORT_SYMBOL vmlinux 0x383f3855 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x386026ad get_super +EXPORT_SYMBOL vmlinux 0x3866fe21 kern_path_create +EXPORT_SYMBOL vmlinux 0x3876720f dst_destroy +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x388e39ce qman_oos_fq +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a82a68 scsi_unregister +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38b5de6c nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x38f4e547 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x390b2741 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x39440af9 backlight_device_register +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x3968bbdf __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x398f58ab ppc_md +EXPORT_SYMBOL vmlinux 0x39999f5a kill_litter_super +EXPORT_SYMBOL vmlinux 0x39ac3603 sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0x39bef581 dev_change_carrier +EXPORT_SYMBOL vmlinux 0x39cdf63c wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x39fb24fb ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x3a09dfbb init_net +EXPORT_SYMBOL vmlinux 0x3a13bfab scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x3a438684 dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x3a8afcb7 km_query +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3b31a483 of_get_min_tck +EXPORT_SYMBOL vmlinux 0x3b36fe3d pme_hw_residue_new +EXPORT_SYMBOL vmlinux 0x3b3e214e sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x3b477adc input_register_device +EXPORT_SYMBOL vmlinux 0x3b615a21 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x3b69eae6 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x3b8251ee cdrom_release +EXPORT_SYMBOL vmlinux 0x3bc6474a ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd548b4 d_genocide +EXPORT_SYMBOL vmlinux 0x3bdc380f bio_split +EXPORT_SYMBOL vmlinux 0x3bdd751d i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x3be136b0 unload_nls +EXPORT_SYMBOL vmlinux 0x3bef03b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x3bf07237 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x3c222795 registered_fb +EXPORT_SYMBOL vmlinux 0x3c344583 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x3c395d9b pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x3c3acac5 simple_write_begin +EXPORT_SYMBOL vmlinux 0x3c652b24 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c99db7e sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x3c9ad5e0 block_commit_write +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3ca54b8c sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x3cb3931b sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x3cb7b802 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x3cc4b0dc lg_lock_init +EXPORT_SYMBOL vmlinux 0x3cd8996f scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cfcb895 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x3cffd163 cur_cpu_spec +EXPORT_SYMBOL vmlinux 0x3d41904f of_get_next_child +EXPORT_SYMBOL vmlinux 0x3d7f91d8 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x3d8a40d7 seq_vprintf +EXPORT_SYMBOL vmlinux 0x3d991de6 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x3da042a3 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x3db0f721 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x3dc30c90 agp_copy_info +EXPORT_SYMBOL vmlinux 0x3dc371bb starget_for_each_device +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dcc99ea fb_set_cmap +EXPORT_SYMBOL vmlinux 0x3de0db82 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x3dee64c0 devm_gpiod_put +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e0f6d6b jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x3e1a21c2 complete_request_key +EXPORT_SYMBOL vmlinux 0x3e23fedc dev_add_offload +EXPORT_SYMBOL vmlinux 0x3e4d223c pme_ctx_init +EXPORT_SYMBOL vmlinux 0x3e75df5c scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x3e8097c5 audit_log +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e9b2fc9 mmc_can_reset +EXPORT_SYMBOL vmlinux 0x3ebcaf05 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ee43abd __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x3eebe86e xfrm_register_km +EXPORT_SYMBOL vmlinux 0x3eec852c kfree_put_link +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f24adb4 kernel_accept +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f6d01d5 get_agp_version +EXPORT_SYMBOL vmlinux 0x3fa30be4 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x3fb1cf71 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x3fd04ac3 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x3fd55724 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ff8069b tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x3ff8e495 lg_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x3ffb9d51 __dst_free +EXPORT_SYMBOL vmlinux 0x3fff70bf ata_port_printk +EXPORT_SYMBOL vmlinux 0x400d3b5f eth_change_mtu +EXPORT_SYMBOL vmlinux 0x4012773b pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x4013cea0 d_alloc +EXPORT_SYMBOL vmlinux 0x401ef6de jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x404066c5 idr_for_each +EXPORT_SYMBOL vmlinux 0x40435c21 netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x40479b44 mnt_pin +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405a7d4b pci_enable_msi_block_auto +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x407b2064 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x40833b91 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x40944ee5 devm_gpio_request_one +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a2d1dd dm_table_get_size +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40aeb342 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x40b112f4 mdiobus_free +EXPORT_SYMBOL vmlinux 0x40b57158 pme_initfq +EXPORT_SYMBOL vmlinux 0x40beb95b gen_pool_free +EXPORT_SYMBOL vmlinux 0x40bf7460 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x40c01859 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40e68677 kobject_get +EXPORT_SYMBOL vmlinux 0x40ebc934 tty_devnum +EXPORT_SYMBOL vmlinux 0x40ee014b request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x40f1ad10 tb_ticks_per_jiffy +EXPORT_SYMBOL vmlinux 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL vmlinux 0x40fe326f __neigh_event_send +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414ab1ff phy_start_aneg +EXPORT_SYMBOL vmlinux 0x4159c38f ioremap_wc +EXPORT_SYMBOL vmlinux 0x4168619e bman_pool_max +EXPORT_SYMBOL vmlinux 0x41786a8e fb_validate_mode +EXPORT_SYMBOL vmlinux 0x417e405c scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x418d426d scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x41d3f881 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x41e42c04 __bio_clone +EXPORT_SYMBOL vmlinux 0x41e4f928 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x41f2f88e dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42150e65 vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0x421b0912 sys_imageblit +EXPORT_SYMBOL vmlinux 0x422768d8 con_is_bound +EXPORT_SYMBOL vmlinux 0x423904cf wake_up_process +EXPORT_SYMBOL vmlinux 0x423b776a ipmi_create_user +EXPORT_SYMBOL vmlinux 0x42445e3c eth_type_trans +EXPORT_SYMBOL vmlinux 0x425158c6 mdiobus_register +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x425ab261 dm_io +EXPORT_SYMBOL vmlinux 0x4270f5c5 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a1b208 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x42b5e523 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x42c65986 qman_alloc_fqid_range +EXPORT_SYMBOL vmlinux 0x430154ae bman_irqsource_remove +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x430d5992 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x43372293 generic_file_remap_pages +EXPORT_SYMBOL vmlinux 0x43381f9c mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x433ae924 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x43632d7d of_find_property +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x43781ece unlock_buffer +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x43a01f90 complete_all +EXPORT_SYMBOL vmlinux 0x43d301d7 arp_create +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x43fbd184 set_binfmt +EXPORT_SYMBOL vmlinux 0x4411c503 prandom_seed +EXPORT_SYMBOL vmlinux 0x442c7839 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x443c3117 of_find_backlight_by_node +EXPORT_SYMBOL vmlinux 0x44438b96 hex2bin +EXPORT_SYMBOL vmlinux 0x444c481d xfrm_garbage_collect +EXPORT_SYMBOL vmlinux 0x44589cea dev_set_group +EXPORT_SYMBOL vmlinux 0x445d8a9b __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x446780f6 truncate_setsize +EXPORT_SYMBOL vmlinux 0x4484c9f6 fm_mutex_lock +EXPORT_SYMBOL vmlinux 0x449995b9 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x4499f5bf input_register_handle +EXPORT_SYMBOL vmlinux 0x449fc0fc nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x44ac71c9 skb_orphan_partial +EXPORT_SYMBOL vmlinux 0x44c2dcd0 mem_map +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44eb192e wait_for_completion +EXPORT_SYMBOL vmlinux 0x44ef52d5 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x44f06d7b thaw_super +EXPORT_SYMBOL vmlinux 0x44f5e8b5 of_allnodes +EXPORT_SYMBOL vmlinux 0x44f7929b qm_fq_new +EXPORT_SYMBOL vmlinux 0x44fe2a36 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x454d804d pci_dev_driver +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x457af02f pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x45841260 sk_net_capable +EXPORT_SYMBOL vmlinux 0x4596db6a sys_sigreturn +EXPORT_SYMBOL vmlinux 0x45a6be13 cpufreq_sysfs_remove_file +EXPORT_SYMBOL vmlinux 0x45a765cf pci_add_resource +EXPORT_SYMBOL vmlinux 0x45ac7c94 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x45c6a01d setup_new_exec +EXPORT_SYMBOL vmlinux 0x45dd202d vfs_fsync +EXPORT_SYMBOL vmlinux 0x45e0ff4a md_write_start +EXPORT_SYMBOL vmlinux 0x45e90151 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x45ed9355 skb_trim +EXPORT_SYMBOL vmlinux 0x45f31bab __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x4610a74d abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x4612c59d down_trylock +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x46212a52 dput +EXPORT_SYMBOL vmlinux 0x4623ed8b nf_log_unregister +EXPORT_SYMBOL vmlinux 0x46244beb vlan_untag +EXPORT_SYMBOL vmlinux 0x46266967 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x465cab34 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x46608fa0 getnstimeofday +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x4679e8ad xfrm_register_type +EXPORT_SYMBOL vmlinux 0x467b6dc9 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x468bcda6 cpumask_set_cpu_local_first +EXPORT_SYMBOL vmlinux 0x46972bca of_find_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0x46c1147d qman_poll_slow +EXPORT_SYMBOL vmlinux 0x46d12956 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x46d76014 from_kgid +EXPORT_SYMBOL vmlinux 0x46e4e41c tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x46ed75e4 vm_map_ram +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x47167837 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x471e8cd7 irq_set_chip +EXPORT_SYMBOL vmlinux 0x472b161a pci_save_state +EXPORT_SYMBOL vmlinux 0x47416e14 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x4754bd20 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x4756cb58 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x477591ae bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47bcf84c param_set_ulong +EXPORT_SYMBOL vmlinux 0x47c8baf4 param_ops_uint +EXPORT_SYMBOL vmlinux 0x47ece0ed pme_ctx_ctrl_read_flow +EXPORT_SYMBOL vmlinux 0x47f465fd fb_set_suspend +EXPORT_SYMBOL vmlinux 0x48034724 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x480ec06d xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x482a2a49 param_set_charp +EXPORT_SYMBOL vmlinux 0x4835f9fb dev_change_flags +EXPORT_SYMBOL vmlinux 0x48404b9a remove_wait_queue +EXPORT_SYMBOL vmlinux 0x48503e78 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x48a771c5 cpu_core_map +EXPORT_SYMBOL vmlinux 0x48a91a22 generic_file_open +EXPORT_SYMBOL vmlinux 0x48c6db53 of_get_child_by_name +EXPORT_SYMBOL vmlinux 0x48da08f4 register_netdevice +EXPORT_SYMBOL vmlinux 0x48dc6a4f pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x48e8dbd6 inet_frags_init +EXPORT_SYMBOL vmlinux 0x48f16837 local_flush_tlb_mm +EXPORT_SYMBOL vmlinux 0x48fabfbf gen_new_estimator +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x490ad7da fm_port_pcd_bind +EXPORT_SYMBOL vmlinux 0x4912d4f4 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x493ea803 sock_create_kern +EXPORT_SYMBOL vmlinux 0x4955bd69 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x495c96f8 posix_acl_init +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x4966d6dc jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x496e9a85 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x498e120b unregister_netdev +EXPORT_SYMBOL vmlinux 0x499145ed cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x499ffa3d fsl_lbc_ctrl_dev +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b0b288 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x49b14ada blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x49def66d bio_copy_data +EXPORT_SYMBOL vmlinux 0x49e5ca96 inc_nlink +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a502e84 mdiobus_read +EXPORT_SYMBOL vmlinux 0x4a6501b4 __nlmsg_put +EXPORT_SYMBOL vmlinux 0x4a83cb25 gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0x4ab1dd4e may_umount_tree +EXPORT_SYMBOL vmlinux 0x4abcc9cb agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b1ec3e2 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x4b2edbe9 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b481a6b mount_ns +EXPORT_SYMBOL vmlinux 0x4b5b958a prepare_creds +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b61e4bb __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x4b7ed27b sleep_on +EXPORT_SYMBOL vmlinux 0x4b8a7016 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x4b8f8c18 __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x4b97e5b0 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x4bbc6ad8 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x4bc45ca6 skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0x4bccfc44 ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x4be85a03 memweight +EXPORT_SYMBOL vmlinux 0x4bed5fe7 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x4c11435a _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c1aa60e dquot_commit_info +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c30070a uart_get_divisor +EXPORT_SYMBOL vmlinux 0x4c3c7d01 posix_lock_file +EXPORT_SYMBOL vmlinux 0x4c6e5563 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL vmlinux 0x4ca7f4b9 sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cdb3178 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x4cdecf59 gen10g_resume +EXPORT_SYMBOL vmlinux 0x4ce57dc6 __free_pages +EXPORT_SYMBOL vmlinux 0x4cf264da invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x4cfffcbf genphy_resume +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d67d484 single_open +EXPORT_SYMBOL vmlinux 0x4d71004a __cpm2_setbrg +EXPORT_SYMBOL vmlinux 0x4d89db51 pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4d9dcda5 qman_fqid_pool_destroy +EXPORT_SYMBOL vmlinux 0x4da34f18 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x4da7c931 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x4dc7d3b6 mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0x4dc8e2f4 get_thermal_instance +EXPORT_SYMBOL vmlinux 0x4dce3d86 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x4de34a07 cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4dfed71c flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x4e0699db dev_addr_init +EXPORT_SYMBOL vmlinux 0x4e0d27fb phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e41e01f sock_wfree +EXPORT_SYMBOL vmlinux 0x4e480b9c blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x4e4ab48d sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x4e63f3e1 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x4e649140 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x4e65d64e block_write_end +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6a76b7 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e786d13 idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e8519c9 netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x4e8be6a2 inet_ioctl +EXPORT_SYMBOL vmlinux 0x4e9d7f43 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ea47f21 force_sig +EXPORT_SYMBOL vmlinux 0x4eb063eb swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x4ec26182 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x4ecab61e filp_open +EXPORT_SYMBOL vmlinux 0x4ed98f9e blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x4edc06bf dquot_enable +EXPORT_SYMBOL vmlinux 0x4ef22e82 genphy_setup_forced +EXPORT_SYMBOL vmlinux 0x4effef2d tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x4f1b0974 devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f248523 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x4f26268e dentry_open +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f4eca99 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x4f68e5c9 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x4f6d78c6 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x4f9c9905 bh_submit_read +EXPORT_SYMBOL vmlinux 0x4fad8747 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x4fadee94 d_splice_alias +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe99583 atomic64_dec_if_positive +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x500d59d5 mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x5016895e migrate_page +EXPORT_SYMBOL vmlinux 0x5016ecb1 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x502c8615 generic_make_request +EXPORT_SYMBOL vmlinux 0x50384baf vgacon_remap_base +EXPORT_SYMBOL vmlinux 0x503ad4db vga_tryget +EXPORT_SYMBOL vmlinux 0x5041bcad sock_i_uid +EXPORT_SYMBOL vmlinux 0x50598323 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x50978fde genphy_read_status +EXPORT_SYMBOL vmlinux 0x509817cf vprintk_emit +EXPORT_SYMBOL vmlinux 0x50ae7d80 __idr_pre_get +EXPORT_SYMBOL vmlinux 0x50b9d2fe pci_enable_msi_range +EXPORT_SYMBOL vmlinux 0x50d06a6b skb_copy +EXPORT_SYMBOL vmlinux 0x50d80ff7 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x50e6231e nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x50f1be39 make_bad_inode +EXPORT_SYMBOL vmlinux 0x5109e308 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x512e0e02 tty_set_operations +EXPORT_SYMBOL vmlinux 0x5134d833 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x51496f20 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x515c611e __block_write_begin +EXPORT_SYMBOL vmlinux 0x515e24a7 flush_instruction_cache +EXPORT_SYMBOL vmlinux 0x5179fd71 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x517c2a2c agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x51854e1b udp_prot +EXPORT_SYMBOL vmlinux 0x5193f2cf blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x519b0da3 finish_wait +EXPORT_SYMBOL vmlinux 0x51a54e82 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x51af526f nf_nat_decode_session_hook +EXPORT_SYMBOL vmlinux 0x51b52539 simple_open +EXPORT_SYMBOL vmlinux 0x51bf8262 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x51c93ad0 fm_get_rtc_handle +EXPORT_SYMBOL vmlinux 0x51d1ecb4 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52090c56 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x521b36b5 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x521dfb59 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x521e8852 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x5229a275 __test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x52428cc8 parent_mem_cgroup +EXPORT_SYMBOL vmlinux 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL vmlinux 0x52647b69 try_to_writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x52710981 free_buffer_head +EXPORT_SYMBOL vmlinux 0x527d854d inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x529fecc7 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x52b5d67a dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x52b60b8d neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x52ca0161 phy_init_eee +EXPORT_SYMBOL vmlinux 0x52da8e3e tty_mutex +EXPORT_SYMBOL vmlinux 0x52dbb7e9 devm_ioremap +EXPORT_SYMBOL vmlinux 0x52e3c71c __frontswap_load +EXPORT_SYMBOL vmlinux 0x530f0357 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x532af8fb scm_fp_dup +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533c0343 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x534d6a4d inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x534e2661 vfs_readv +EXPORT_SYMBOL vmlinux 0x535654a7 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x5395f594 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x53bb01e2 vm_stat +EXPORT_SYMBOL vmlinux 0x53c2bd9a mount_subtree +EXPORT_SYMBOL vmlinux 0x53d38627 dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0x53d40105 dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0x53dd2b8f tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x53fc05d5 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x5409775b free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x5412c7c7 up +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x544c6031 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x544f46a7 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x546c1b78 _dev_info +EXPORT_SYMBOL vmlinux 0x546d362c pid_task +EXPORT_SYMBOL vmlinux 0x548cb517 bman_poll +EXPORT_SYMBOL vmlinux 0x548ff601 pcie_set_mps +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54c9dc8e qman_fq_fqid +EXPORT_SYMBOL vmlinux 0x54cad33d block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x54e3cc3b param_get_int +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x5508c77d vfs_readlink +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x552d9c56 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x55392b05 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x5549253a tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x5560c7d3 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x5567c227 kernel_cpustat +EXPORT_SYMBOL vmlinux 0x5568c553 complete +EXPORT_SYMBOL vmlinux 0x556c2740 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x5577ef9e udp_table +EXPORT_SYMBOL vmlinux 0x557dd8e1 bdget +EXPORT_SYMBOL vmlinux 0x5590d7b0 xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55bf250b tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x55ff9599 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x5612d0ec xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x565a8733 kernel_listen +EXPORT_SYMBOL vmlinux 0x5670b5ea dma_pool_create +EXPORT_SYMBOL vmlinux 0x5671572e inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x567904ff ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x5692a425 inet_select_addr +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56b98672 __elv_add_request +EXPORT_SYMBOL vmlinux 0x56bff8a1 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x5728ddb7 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x573f537e seq_pad +EXPORT_SYMBOL vmlinux 0x573fd0d1 __f_setown +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x5758433d dma_sync_wait +EXPORT_SYMBOL vmlinux 0x575af70c on_each_cpu_mask +EXPORT_SYMBOL vmlinux 0x575be711 search_binary_handler +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x57718c97 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x5785384a flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x578a1c9c __dquot_free_space +EXPORT_SYMBOL vmlinux 0x579056bf alloc_disk_node +EXPORT_SYMBOL vmlinux 0x579d6800 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x579f65c8 pme_fd_cmd_fcr +EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x57a22449 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x57a8933c sock_no_getname +EXPORT_SYMBOL vmlinux 0x57b0e3c9 generic_removexattr +EXPORT_SYMBOL vmlinux 0x57f60ac0 devm_gpiod_get_index +EXPORT_SYMBOL vmlinux 0x57fb345b mount_single +EXPORT_SYMBOL vmlinux 0x58119be2 i2c_transfer +EXPORT_SYMBOL vmlinux 0x5814e055 bm_pool_free +EXPORT_SYMBOL vmlinux 0x581f5a31 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x582a4747 cacheable_memcpy +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x585806d5 agp_put_bridge +EXPORT_SYMBOL vmlinux 0x585d1b87 jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0x58623807 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x586dffa9 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x587616f1 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x5877d8ef qman_static_dequeue_add +EXPORT_SYMBOL vmlinux 0x587fe960 ipmi_register_smi +EXPORT_SYMBOL vmlinux 0x588001f2 filemap_flush +EXPORT_SYMBOL vmlinux 0x589fc896 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x58ca63f4 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x58d0049f neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x58d1070a of_get_address +EXPORT_SYMBOL vmlinux 0x58d7dda0 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x58dfc592 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x5905438d bio_copy_user +EXPORT_SYMBOL vmlinux 0x5907f270 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x591241d0 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x5916b22e agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x591a621f xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x5945d448 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page +EXPORT_SYMBOL vmlinux 0x59638b99 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x59b3378a completion_done +EXPORT_SYMBOL vmlinux 0x59d79ab4 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x59da9bf2 dcb_getapp +EXPORT_SYMBOL vmlinux 0x59defab0 seq_printf +EXPORT_SYMBOL vmlinux 0x59e13315 ipmi_get_smi_info +EXPORT_SYMBOL vmlinux 0x59f55150 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x5a0ba22a inode_reclaim_rsv_space +EXPORT_SYMBOL vmlinux 0x5a36523e pme_ctx_ctrl_nop +EXPORT_SYMBOL vmlinux 0x5a5536c2 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x5a70390c i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0x5a86208c gen10g_config_advert +EXPORT_SYMBOL vmlinux 0x5a9e9db3 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x5aab2a88 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x5ab67931 do_IRQ +EXPORT_SYMBOL vmlinux 0x5ad96349 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x5ae5888a d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0x5af6232a bdi_unregister +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b29fce9 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x5b2fc16c tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x5b39988e ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x5b7cb93f pci_get_device +EXPORT_SYMBOL vmlinux 0x5b9828c5 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x5bcb871f unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x5bdc3e18 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x5bdeed5b freeze_super +EXPORT_SYMBOL vmlinux 0x5bf06b53 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x5bf282b3 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x5bf63794 lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0x5c022810 dst_alloc +EXPORT_SYMBOL vmlinux 0x5c0adb46 bdi_init +EXPORT_SYMBOL vmlinux 0x5c1cb06b __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0x5c1f254e default_llseek +EXPORT_SYMBOL vmlinux 0x5c37f319 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x5c8a44b6 register_console +EXPORT_SYMBOL vmlinux 0x5cd4e0e2 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x5ce5af8c nla_append +EXPORT_SYMBOL vmlinux 0x5ceed39d ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5cf8bdd1 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x5d17700b pci_bus_type +EXPORT_SYMBOL vmlinux 0x5d1859a1 phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x5d21ebf2 seq_path +EXPORT_SYMBOL vmlinux 0x5d2d5663 kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0x5d2d7b9a sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0x5d41c87c param_ops_charp +EXPORT_SYMBOL vmlinux 0x5d4a97ca agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x5d550c4d scsi_sd_probe_domain +EXPORT_SYMBOL vmlinux 0x5d58efa0 convert_ifc_address +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d6bdce1 flex_array_alloc +EXPORT_SYMBOL vmlinux 0x5d8f819d page_put_link +EXPORT_SYMBOL vmlinux 0x5d9493d4 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x5d9948db of_device_unregister +EXPORT_SYMBOL vmlinux 0x5dbb892b security_mmap_file +EXPORT_SYMBOL vmlinux 0x5e12cd2e bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x5e15425b tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x5e205e4c vm_mmap +EXPORT_SYMBOL vmlinux 0x5e2389e3 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x5e27321b register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x5e3763e3 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x5e3a8a9c __wake_up +EXPORT_SYMBOL vmlinux 0x5e5d4f36 do_splice_direct +EXPORT_SYMBOL vmlinux 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL vmlinux 0x5e8f08f2 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9e17ba simple_fill_super +EXPORT_SYMBOL vmlinux 0x5eb0401e proc_dostring +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ecb5640 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5edddee4 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f049471 kunmap_high +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f28c2dc idr_remove +EXPORT_SYMBOL vmlinux 0x5f37d8b4 tty_port_destroy +EXPORT_SYMBOL vmlinux 0x5f3c8f5c mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x5f6195c2 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5f8d58d4 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x5f928f58 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x5fa56b4c ata_link_printk +EXPORT_SYMBOL vmlinux 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL vmlinux 0x5fd12a50 mmc_stop_bkops +EXPORT_SYMBOL vmlinux 0x5fd5347a fb_show_logo +EXPORT_SYMBOL vmlinux 0x5fda0227 vfs_stat +EXPORT_SYMBOL vmlinux 0x5ffec546 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x600733b8 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x604e613a always_delete_dentry +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x607f1fc7 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x6086fae9 rwsem_wake +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60ad5be1 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x60b86f61 sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x60df1e3b posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x6110df14 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x611754b7 dev_crit +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x61344d93 locks_free_lock +EXPORT_SYMBOL vmlinux 0x6149629d inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x61538ad0 param_get_charp +EXPORT_SYMBOL vmlinux 0x61548c0f dev_get_nest_level +EXPORT_SYMBOL vmlinux 0x615c129f mach_ppa8548 +EXPORT_SYMBOL vmlinux 0x6168c403 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x6176afb8 lock_may_write +EXPORT_SYMBOL vmlinux 0x618671c3 netpoll_rx_enable +EXPORT_SYMBOL vmlinux 0x618826e2 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x619150ca skb_checksum_help +EXPORT_SYMBOL vmlinux 0x61a72cdb km_state_notify +EXPORT_SYMBOL vmlinux 0x61aeacd7 blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0x61b1b7d9 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x61b4c268 bman_poll_slow +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61d9d13f pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x61e7f1e3 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x621b7ae2 scsi_init_io +EXPORT_SYMBOL vmlinux 0x622520a6 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x623fdf13 phy_device_free +EXPORT_SYMBOL vmlinux 0x62481004 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x62538167 slhc_toss +EXPORT_SYMBOL vmlinux 0x625c72df nf_afinfo +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62822d05 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x62d9bc16 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x62fbc321 vga_client_register +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x63231951 gen_pool_create +EXPORT_SYMBOL vmlinux 0x6336e8fb truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x634b871e dev_mc_add +EXPORT_SYMBOL vmlinux 0x634d8020 qman_enqueue_orp +EXPORT_SYMBOL vmlinux 0x635fae06 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x6362538a fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x636a42cc netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x636f6dde devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0x6388d7ff kill_block_super +EXPORT_SYMBOL vmlinux 0x63908391 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x63a473b0 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x63c2c882 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x63cc6c52 pme_map_error +EXPORT_SYMBOL vmlinux 0x63e6f461 mount_nodev +EXPORT_SYMBOL vmlinux 0x63eb0657 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64067556 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x642a6905 sock_rfree +EXPORT_SYMBOL vmlinux 0x64409640 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x647b255a tcp_seq_open +EXPORT_SYMBOL vmlinux 0x648d31f3 md_finish_reshape +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64a4b84d cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x64b32e01 __brelse +EXPORT_SYMBOL vmlinux 0x64cb07d3 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x64d12db6 blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0x64e92094 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x64e9262d agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x6513b5e9 skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65220188 kthread_bind +EXPORT_SYMBOL vmlinux 0x65400222 __irq_offset_value +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x6542cbac vfs_mkdir +EXPORT_SYMBOL vmlinux 0x655ae747 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x6565d33f scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x6585e310 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x65acfddb jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x65bb58a2 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x65d7b22f napi_gro_frags +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65f3ad9a fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x66061f0b pipe_to_file +EXPORT_SYMBOL vmlinux 0x6620651e scm_detach_fds +EXPORT_SYMBOL vmlinux 0x6648d97e tcp_gso_segment +EXPORT_SYMBOL vmlinux 0x66856110 security_inode_readlink +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x6694a5a0 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x66b0a035 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x6720dc78 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x67426eb3 fm_get_mem_region +EXPORT_SYMBOL vmlinux 0x675b1fc2 bman_get_portal_config +EXPORT_SYMBOL vmlinux 0x675b8f61 param_get_string +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c8147c input_register_handler +EXPORT_SYMBOL vmlinux 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL vmlinux 0x67d71a44 vm_event_states +EXPORT_SYMBOL vmlinux 0x67f2548b seq_open_private +EXPORT_SYMBOL vmlinux 0x67f8a8dd nf_hook_slow +EXPORT_SYMBOL vmlinux 0x6804d7d8 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x681bca43 devfreq_resume_device +EXPORT_SYMBOL vmlinux 0x683fabd7 kernel_write +EXPORT_SYMBOL vmlinux 0x6849a15f flex_array_clear +EXPORT_SYMBOL vmlinux 0x685e302a dev_addr_del +EXPORT_SYMBOL vmlinux 0x68609857 complete_and_exit +EXPORT_SYMBOL vmlinux 0x686b6332 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x6882422f pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x68a545c3 padata_alloc +EXPORT_SYMBOL vmlinux 0x68b83ac6 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x68c95edd bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x68deb728 __frontswap_test +EXPORT_SYMBOL vmlinux 0x68e05d57 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x68e81b70 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x68ebacbc phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x691909f7 bio_clone_bioset +EXPORT_SYMBOL vmlinux 0x69386c8e sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x694e0015 i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6975dfed tcp_init_sock +EXPORT_SYMBOL vmlinux 0x699cfbeb neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a2638c mmc_of_parse +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69bd5cdf filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69d7e5b8 __debugger_ipi +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69ecac04 pcie_get_mps +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a3f4119 mmc_of_parse_voltage +EXPORT_SYMBOL vmlinux 0x6a5e959a serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x6a5e9753 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a740c54 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a80a3f5 cpm_muram_free +EXPORT_SYMBOL vmlinux 0x6a94dd11 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x6a9b0a80 account_page_writeback +EXPORT_SYMBOL vmlinux 0x6a9bbf9e blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x6aa75b6f find_vma +EXPORT_SYMBOL vmlinux 0x6aad6008 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x6ab022df redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x6ac7a0b8 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x6ac9f266 rt6_lookup +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6acbb36a pcim_iounmap +EXPORT_SYMBOL vmlinux 0x6ad2609a jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x6ae3b1b3 blk_rq_init +EXPORT_SYMBOL vmlinux 0x6b06fdce delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x6b17d897 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b23321d fddi_type_trans +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b5aac7c elv_rb_del +EXPORT_SYMBOL vmlinux 0x6b7f1917 idr_find_slowpath +EXPORT_SYMBOL vmlinux 0x6bacdd32 cdev_del +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc7973f blk_queue_max_write_same_sectors +EXPORT_SYMBOL vmlinux 0x6bceaebc gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6be94133 free_user_ns +EXPORT_SYMBOL vmlinux 0x6beaad97 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x6beb2078 param_set_copystring +EXPORT_SYMBOL vmlinux 0x6bf0d9c0 scsi_device_get +EXPORT_SYMBOL vmlinux 0x6c0561a4 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x6c08ca5c seq_putc +EXPORT_SYMBOL vmlinux 0x6c1a4039 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2a20a3 skb_push +EXPORT_SYMBOL vmlinux 0x6c2faee3 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x6c2fb553 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x6c3a9287 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x6c3c047e pme_ctx_exclusive_inc +EXPORT_SYMBOL vmlinux 0x6c51a836 sysctl_tcp_notsent_lowat +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c665691 flex_array_shrink +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c8962ff unregister_filesystem +EXPORT_SYMBOL vmlinux 0x6c8aaea8 generic_fillattr +EXPORT_SYMBOL vmlinux 0x6ca1d1a4 atomic64_read +EXPORT_SYMBOL vmlinux 0x6ca5b0f8 __net_get_random_once +EXPORT_SYMBOL vmlinux 0x6cbdfa8e vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x6cc7f4d8 bio_put +EXPORT_SYMBOL vmlinux 0x6cc96aa2 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x6cd5cad4 mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cf1d18c free_task +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d1d2980 sock_no_bind +EXPORT_SYMBOL vmlinux 0x6d1edef0 gen10g_config_aneg +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d54c188 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x6d7e59b5 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x6d81da15 of_dev_put +EXPORT_SYMBOL vmlinux 0x6d8965d9 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x6da21c1b soft_cursor +EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns +EXPORT_SYMBOL vmlinux 0x6dafff09 twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x6dc48e10 led_blink_set +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6dfba229 tty_write_room +EXPORT_SYMBOL vmlinux 0x6e0ec914 poll_initwait +EXPORT_SYMBOL vmlinux 0x6e11527e dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x6e286680 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x6e379526 kernstart_addr +EXPORT_SYMBOL vmlinux 0x6e42ecb3 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x6e4ea324 unregister_key_type +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e764332 idr_destroy +EXPORT_SYMBOL vmlinux 0x6eb5e24f fbcon_rotate_cw +EXPORT_SYMBOL vmlinux 0x6eb74dff proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x6ebc5149 param_ops_long +EXPORT_SYMBOL vmlinux 0x6ec44e85 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x6ec7f32e inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x6ecbd9d6 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x6ecfe528 single_release +EXPORT_SYMBOL vmlinux 0x6f042d6f dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x6f0e7006 of_phy_connect +EXPORT_SYMBOL vmlinux 0x6f20960a full_name_hash +EXPORT_SYMBOL vmlinux 0x6f268538 bman_acquire +EXPORT_SYMBOL vmlinux 0x6f2d8508 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x6f6e5a0b pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x6f85b211 ida_remove +EXPORT_SYMBOL vmlinux 0x6f973d48 pci_iounmap +EXPORT_SYMBOL vmlinux 0x6fbcbc69 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x6fc69547 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x6fc82d1c truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6feaad38 simple_empty +EXPORT_SYMBOL vmlinux 0x6ff6e5fb generic_block_bmap +EXPORT_SYMBOL vmlinux 0x6ffde91b mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x7005fcfb blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x700a3667 __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0x701813cd sock_from_file +EXPORT_SYMBOL vmlinux 0x703cb570 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x7045dea9 qman_modify_cgr +EXPORT_SYMBOL vmlinux 0x704c45a0 kdb_current_task +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x706567d5 set_create_files_as +EXPORT_SYMBOL vmlinux 0x707f43f6 __ctzdi2 +EXPORT_SYMBOL vmlinux 0x7080b28d arp_find +EXPORT_SYMBOL vmlinux 0x709fa80d vfs_write +EXPORT_SYMBOL vmlinux 0x70b0c2d0 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70c62b8e netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70d888b7 __debugger_fault_handler +EXPORT_SYMBOL vmlinux 0x70e5218d max8998_read_reg +EXPORT_SYMBOL vmlinux 0x70f6b065 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0x71005ea4 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x7113370f mdiobus_scan +EXPORT_SYMBOL vmlinux 0x711e5a43 kill_pgrp +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x713b4441 dev_load +EXPORT_SYMBOL vmlinux 0x71474dbd xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71713004 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x7180b2c0 qman_delete_cgr +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71a6ae9e elevator_alloc +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71d3ec2f pci_find_capability +EXPORT_SYMBOL vmlinux 0x71f65175 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0x72020016 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x72083088 pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0x721f0c4c generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x72535468 __ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x726a4756 sock_no_listen +EXPORT_SYMBOL vmlinux 0x7271fd30 blk_put_request +EXPORT_SYMBOL vmlinux 0x7273e1c2 netdev_all_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0x728ce230 qm_fq_free_flags +EXPORT_SYMBOL vmlinux 0x72a70b7f pme_ctx_scan_orp +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b5b2b7 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x72b7a9a5 netpoll_setup +EXPORT_SYMBOL vmlinux 0x72c1f109 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x72cea1ca fb_get_mode +EXPORT_SYMBOL vmlinux 0x72d2956a devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0x72d4c23c fsl_get_sys_freq +EXPORT_SYMBOL vmlinux 0x72d58de9 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x72e97fd8 bio_map_user +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x7312c4a6 keyring_search +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x733b2383 next_tlbcam_idx +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x735d8503 add_wait_queue +EXPORT_SYMBOL vmlinux 0x736d2561 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x73939605 sock_no_connect +EXPORT_SYMBOL vmlinux 0x739704e8 open_exec +EXPORT_SYMBOL vmlinux 0x73c2daee skb_flow_dissect +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x747195f0 hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x748cffcc tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x74a96e48 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x74ae7f33 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74ce05b8 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x74de9286 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x7505bdef memchr_inv +EXPORT_SYMBOL vmlinux 0x7518044d mmc_can_erase +EXPORT_SYMBOL vmlinux 0x751c2917 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x753759f1 dev_printk_emit +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x75393668 netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0x754dac78 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x75597008 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x755c1147 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x7563297c inode_change_ok +EXPORT_SYMBOL vmlinux 0x7569ba0f phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x756dd160 start_thread +EXPORT_SYMBOL vmlinux 0x757f088f cpm_muram_offset +EXPORT_SYMBOL vmlinux 0x7581651c kernel_getsockname +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x75994700 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x75a7ba19 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x75b3390e input_allocate_device +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75d878b5 sget +EXPORT_SYMBOL vmlinux 0x75e0932c fd_install +EXPORT_SYMBOL vmlinux 0x75eb02aa mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0x76046a9b phy_connect +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x763eb045 pci_alloc_dev +EXPORT_SYMBOL vmlinux 0x764679a2 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x765c18ca simple_rename +EXPORT_SYMBOL vmlinux 0x766c8c84 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x767a9aa2 __getblk +EXPORT_SYMBOL vmlinux 0x76843c58 fm_port_enable +EXPORT_SYMBOL vmlinux 0x7697f8e6 dquot_acquire +EXPORT_SYMBOL vmlinux 0x769e06d7 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d06912 sock_no_poll +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d451c4 add_taint +EXPORT_SYMBOL vmlinux 0x76e4058b ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x76f234b1 ktime_get_clocktai +EXPORT_SYMBOL vmlinux 0x76f8df3b xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x7705a344 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x772234f9 pci_map_rom +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x7799463b tty_register_driver +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77b82105 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0x77b851c4 cacheable_memzero +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77c40635 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x77cde193 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x780dd2ce netdev_alert +EXPORT_SYMBOL vmlinux 0x78113e32 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x7815c7e3 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x782092dc dmam_pool_create +EXPORT_SYMBOL vmlinux 0x782567ec memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0x78294185 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x782e2fe7 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x7839c789 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x783b3563 wake_up_atomic_t +EXPORT_SYMBOL vmlinux 0x7853aafa __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x7887a915 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x789affb1 frontswap_tmem_exclusive_gets +EXPORT_SYMBOL vmlinux 0x78aafccc __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78dfdd9f pme_hw_residue_free +EXPORT_SYMBOL vmlinux 0x78f18614 __module_get +EXPORT_SYMBOL vmlinux 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL vmlinux 0x79049cbe netlink_capable +EXPORT_SYMBOL vmlinux 0x790df6ca __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x7930d225 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x7938d865 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x793d2a8d gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x7947a53e vfs_link +EXPORT_SYMBOL vmlinux 0x79584e64 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x798e3164 fm_port_get_handle +EXPORT_SYMBOL vmlinux 0x79a2623c update_time +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79b58bbb keyring_alloc +EXPORT_SYMBOL vmlinux 0x79b81dcf inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x79db706e proc_mkdir +EXPORT_SYMBOL vmlinux 0x7a0f1e76 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x7a122761 tcp_init_cgroup +EXPORT_SYMBOL vmlinux 0x7a130ec3 would_dump +EXPORT_SYMBOL vmlinux 0x7a16f123 fput +EXPORT_SYMBOL vmlinux 0x7a188791 prandom_bytes +EXPORT_SYMBOL vmlinux 0x7a231eb7 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a34ab35 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a61c03b net_dma_find_channel +EXPORT_SYMBOL vmlinux 0x7a8733f8 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x7a8e6ebe kobject_init +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7a925833 cpufreq_get_global_kobject +EXPORT_SYMBOL vmlinux 0x7a9c9502 bmap +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7aa49d56 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7aced815 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7add44b5 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7af09a3c tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0x7af23c80 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x7afa89fc vsnprintf +EXPORT_SYMBOL vmlinux 0x7b1ade38 lz4_decompress +EXPORT_SYMBOL vmlinux 0x7b24cf57 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x7b5c8440 vm_munmap +EXPORT_SYMBOL vmlinux 0x7b62b85a alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x7b703621 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x7b7a440d request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x7b9e3df4 __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0x7bbc3cfe mfd_add_devices +EXPORT_SYMBOL vmlinux 0x7bc81974 padata_add_cpu +EXPORT_SYMBOL vmlinux 0x7be4827c pci_dram_offset +EXPORT_SYMBOL vmlinux 0x7bee251d phy_connect_direct +EXPORT_SYMBOL vmlinux 0x7bf6eb92 dma_common_get_sgtable +EXPORT_SYMBOL vmlinux 0x7c003aef _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x7c1372e8 panic +EXPORT_SYMBOL vmlinux 0x7c36c340 touch_buffer +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c50ee29 skb_find_text +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c69a196 init_task +EXPORT_SYMBOL vmlinux 0x7c7b030e dev_activate +EXPORT_SYMBOL vmlinux 0x7c8d37cc tty_port_init +EXPORT_SYMBOL vmlinux 0x7c9291d1 csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7c9ac32e __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x7cbc4f92 serio_interrupt +EXPORT_SYMBOL vmlinux 0x7cc578da param_get_long +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7cf8feb5 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d2c9e14 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x7d404bac set_device_ro +EXPORT_SYMBOL vmlinux 0x7d5cf80b scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x7d6455c3 phy_start +EXPORT_SYMBOL vmlinux 0x7d64d804 netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0x7d6afb9e switch_mmu_context +EXPORT_SYMBOL vmlinux 0x7d725726 dma_find_channel +EXPORT_SYMBOL vmlinux 0x7d7f5fc6 ftrace_print_symbols_seq_u64 +EXPORT_SYMBOL vmlinux 0x7d7f9fd8 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x7d9ae8ce dcb_setapp +EXPORT_SYMBOL vmlinux 0x7d9f2c24 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x7da1108c uart_add_one_port +EXPORT_SYMBOL vmlinux 0x7db54d43 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x7db8fc74 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x7dc0e109 idr_get_next +EXPORT_SYMBOL vmlinux 0x7dc1da66 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7e101566 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x7e169ff6 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x7e21291c generic_setxattr +EXPORT_SYMBOL vmlinux 0x7e2af7b1 save_mount_options +EXPORT_SYMBOL vmlinux 0x7e2bbb79 sk_filter +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e47b5c1 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x7e49f281 lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0x7e4abbaf bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x7e6074a3 unregister_console +EXPORT_SYMBOL vmlinux 0x7e87227e slhc_compress +EXPORT_SYMBOL vmlinux 0x7e89cb03 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x7e8ba899 input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x7e9f1b2d phy_register_fixup +EXPORT_SYMBOL vmlinux 0x7eb62558 udp_ioctl +EXPORT_SYMBOL vmlinux 0x7eba5034 loop_backing_file +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7edcaaee task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x7ee73c0c memcg_socket_limit_enabled +EXPORT_SYMBOL vmlinux 0x7f0b2960 qman_fqid_pool_create +EXPORT_SYMBOL vmlinux 0x7f0dd702 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x7f1b9dd3 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f2f1007 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x7f4a5847 inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0x7f4dd1ca mark_page_accessed +EXPORT_SYMBOL vmlinux 0x7f83bb56 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x7f83f668 __frontswap_store +EXPORT_SYMBOL vmlinux 0x7fa131ce sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x7fae0d89 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x7fe2a1ea blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7feb0076 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x8043511f devfreq_interval_update +EXPORT_SYMBOL vmlinux 0x804f922a ipmi_addr_length +EXPORT_SYMBOL vmlinux 0x8057d691 cdev_alloc +EXPORT_SYMBOL vmlinux 0x80612a49 led_blink_set_oneshot +EXPORT_SYMBOL vmlinux 0x80671a4b __inet6_hash +EXPORT_SYMBOL vmlinux 0x807cd141 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x808434d8 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x80afeaf3 unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x80b778c0 devm_ioremap_prot +EXPORT_SYMBOL vmlinux 0x80bc0ead iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80e08702 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x80e444b1 __lock_buffer +EXPORT_SYMBOL vmlinux 0x80e4e4a4 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x80e5b3a3 __sb_start_write +EXPORT_SYMBOL vmlinux 0x80ee20c6 dquot_alloc +EXPORT_SYMBOL vmlinux 0x80ee805f bio_reset +EXPORT_SYMBOL vmlinux 0x80f69d8e pci_disable_ltr +EXPORT_SYMBOL vmlinux 0x810b6f2f bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x811ed9b7 mdiobus_write +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x8153909d skb_unlink +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815c56d0 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x817eef1b dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x81958593 balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0x81a07f4e _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x81a51fcc read_code +EXPORT_SYMBOL vmlinux 0x81ab195a devm_clk_put +EXPORT_SYMBOL vmlinux 0x81b0980e eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x81b92f92 block_truncate_page +EXPORT_SYMBOL vmlinux 0x81bbac60 agp_backend_release +EXPORT_SYMBOL vmlinux 0x81c71720 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x81ce0239 udp_add_offload +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x820962e1 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x821986b9 dquot_drop +EXPORT_SYMBOL vmlinux 0x8222952f start_tty +EXPORT_SYMBOL vmlinux 0x8238fd1a rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x824f3201 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x82535c4d tc_classify_compat +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x826c84b2 from_kprojid_munged +EXPORT_SYMBOL vmlinux 0x828062b1 __frontswap_init +EXPORT_SYMBOL vmlinux 0x829339c1 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b4629f __netlink_dump_start +EXPORT_SYMBOL vmlinux 0x82bf38c5 proc_set_size +EXPORT_SYMBOL vmlinux 0x82c02cde iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x835e0a0d __skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x837f4b62 register_netdev +EXPORT_SYMBOL vmlinux 0x83844b4a vmap +EXPORT_SYMBOL vmlinux 0x839d043b pci_pme_active +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83b108c3 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x83c8ab4e fm_set_tx_port_params +EXPORT_SYMBOL vmlinux 0x83d8a937 qman_fqid_pool_used +EXPORT_SYMBOL vmlinux 0x83dea972 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x83e3521c ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x83ec9997 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x84116d0f fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x8411ec26 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x841962f8 param_get_ushort +EXPORT_SYMBOL vmlinux 0x84220e3f __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x8443bfb5 lock_rename +EXPORT_SYMBOL vmlinux 0x844404cf ISA_DMA_THRESHOLD +EXPORT_SYMBOL vmlinux 0x8462d269 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x847b5b10 ppp_input_error +EXPORT_SYMBOL vmlinux 0x8492522d blk_sync_queue +EXPORT_SYMBOL vmlinux 0x84930ac5 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x849557be sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0x8498f649 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x84a3a2af devm_request_and_ioremap +EXPORT_SYMBOL vmlinux 0x84b036cf __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84bd69bf dq_data_lock +EXPORT_SYMBOL vmlinux 0x84c21220 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x84f86439 make_kgid +EXPORT_SYMBOL vmlinux 0x84fb0728 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x84ffea8b idr_preload +EXPORT_SYMBOL vmlinux 0x8509c540 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0x8518eca9 param_get_short +EXPORT_SYMBOL vmlinux 0x853bf7c1 param_set_int +EXPORT_SYMBOL vmlinux 0x854917ab ata_dev_printk +EXPORT_SYMBOL vmlinux 0x855103e3 cdrom_open +EXPORT_SYMBOL vmlinux 0x855bc540 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x8564b0ff tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x8573afb2 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x85b37c4a dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85c3347e sk_wait_data +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85ed893e skb_seq_read +EXPORT_SYMBOL vmlinux 0x85f1ebe2 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x860160c3 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x862a86fc blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x863cc179 module_put +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x86629a28 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x86653aaf path_get +EXPORT_SYMBOL vmlinux 0x86692b45 set_anon_super +EXPORT_SYMBOL vmlinux 0x868a2e1c vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86b9001d arp_invalidate +EXPORT_SYMBOL vmlinux 0x86ec2b73 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870957d3 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x8722e4e1 sk_dst_check +EXPORT_SYMBOL vmlinux 0x8725d34b xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x872caf08 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x87688da3 inet_addr_type +EXPORT_SYMBOL vmlinux 0x876eff23 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x8779a34f param_ops_byte +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x8798e453 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x8799ac73 tty_lock +EXPORT_SYMBOL vmlinux 0x879ad06c decrementer_clockevent +EXPORT_SYMBOL vmlinux 0x87dcb16a sock_wmalloc +EXPORT_SYMBOL vmlinux 0x87eb891e scsi_print_result +EXPORT_SYMBOL vmlinux 0x87f5bc48 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88279f25 cpm_muram_alloc +EXPORT_SYMBOL vmlinux 0x882dab9d sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x88513970 param_set_byte +EXPORT_SYMBOL vmlinux 0x8867e330 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x8892dbb6 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x889da5f2 scsi_register +EXPORT_SYMBOL vmlinux 0x88a2c8a3 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x88cbd7b3 lock_may_read +EXPORT_SYMBOL vmlinux 0x88e178ac from_kgid_munged +EXPORT_SYMBOL vmlinux 0x8902daeb blk_start_queue +EXPORT_SYMBOL vmlinux 0x89039435 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x891fbb10 mempool_destroy +EXPORT_SYMBOL vmlinux 0x89298f82 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x8944b308 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x8953f8ff __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x8957403c agp_generic_enable +EXPORT_SYMBOL vmlinux 0x8965130d gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89797060 _raw_read_lock +EXPORT_SYMBOL vmlinux 0x897f061d downgrade_write +EXPORT_SYMBOL vmlinux 0x89806c2c scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x89aa26d1 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x89ad4928 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x89ad58b2 ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89b8bf47 ip_options_compile +EXPORT_SYMBOL vmlinux 0x89cb5ccd nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89f45d2e dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x8a06b48e set_security_override +EXPORT_SYMBOL vmlinux 0x8a1a0cae __sock_create +EXPORT_SYMBOL vmlinux 0x8a1ab4ee timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8a1fe147 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a4dfcb0 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x8a51d565 quota_send_warning +EXPORT_SYMBOL vmlinux 0x8a5493bb qman_recovery_cleanup_fq +EXPORT_SYMBOL vmlinux 0x8a5947e3 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x8a6360d5 devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x8a69f9e2 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x8a7527e1 bm_pool_new +EXPORT_SYMBOL vmlinux 0x8a756fac tcp_prot +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a8669ef __pci_register_driver +EXPORT_SYMBOL vmlinux 0x8a876f54 ida_init +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ab4079e atomic64_add +EXPORT_SYMBOL vmlinux 0x8ab4aadd dev_printk +EXPORT_SYMBOL vmlinux 0x8ac622f8 dev_close +EXPORT_SYMBOL vmlinux 0x8ad86c3e qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x8ade853c abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x8ae4c3c1 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x8ae54fb6 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x8b0d2c39 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x8b166ed3 pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b248d40 padata_start +EXPORT_SYMBOL vmlinux 0x8b2a5aa4 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b48d176 scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b7367f4 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0x8ba5de0c bdgrab +EXPORT_SYMBOL vmlinux 0x8baf3116 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x8bbd5f29 kmap_high +EXPORT_SYMBOL vmlinux 0x8bdc2cb7 qman_query_cgr +EXPORT_SYMBOL vmlinux 0x8be23716 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x8bf2ae1f fsl_lbc_addr +EXPORT_SYMBOL vmlinux 0x8bf43fde console_stop +EXPORT_SYMBOL vmlinux 0x8bf59662 __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x8c0d8cca agp_bridge +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c494c8f scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x8c637d43 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL vmlinux 0x8cb27ea5 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x8cb943c2 flush_dcache_icache_page +EXPORT_SYMBOL vmlinux 0x8cc2c530 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cd00781 sock_init_data +EXPORT_SYMBOL vmlinux 0x8cd19246 follow_pfn +EXPORT_SYMBOL vmlinux 0x8cdbcfd9 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x8cdee37f audit_log_start +EXPORT_SYMBOL vmlinux 0x8ce23a43 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x8cf89443 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x8d015dd4 __bswapdi2 +EXPORT_SYMBOL vmlinux 0x8d137331 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x8d2e268b param_ops_ulong +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper +EXPORT_SYMBOL vmlinux 0x8da6e890 pci_enable_ido +EXPORT_SYMBOL vmlinux 0x8daca4e4 bdev_read_only +EXPORT_SYMBOL vmlinux 0x8dd1e6a9 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x8de0b5ac mempool_create +EXPORT_SYMBOL vmlinux 0x8de2cd6f bman_irqsource_get +EXPORT_SYMBOL vmlinux 0x8e068503 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0x8e0a8b85 blk_init_tags +EXPORT_SYMBOL vmlinux 0x8e0d66f4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x8e19f0eb elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x8e21a187 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x8e531451 simple_getattr +EXPORT_SYMBOL vmlinux 0x8e55f9fe netpoll_print_options +EXPORT_SYMBOL vmlinux 0x8e56b8b3 icmpv6_send +EXPORT_SYMBOL vmlinux 0x8e633dde security_file_permission +EXPORT_SYMBOL vmlinux 0x8e73da0f PDE_DATA +EXPORT_SYMBOL vmlinux 0x8e74870d wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x8e864a86 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8e8d58da diu_ops +EXPORT_SYMBOL vmlinux 0x8e8f51cd nonseekable_open +EXPORT_SYMBOL vmlinux 0x8eb8abab kernel_bind +EXPORT_SYMBOL vmlinux 0x8ec04552 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x8ef11d9e __scm_send +EXPORT_SYMBOL vmlinux 0x8f045d1c cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x8f32ddc5 request_key_async +EXPORT_SYMBOL vmlinux 0x8f649c18 tcp_poll +EXPORT_SYMBOL vmlinux 0x8f7c593b scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x8f85f835 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x8faa4598 of_translate_address +EXPORT_SYMBOL vmlinux 0x8faf1804 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x8fbce6ae truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x8fbf37e0 profile_pc +EXPORT_SYMBOL vmlinux 0x8fcb9820 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x8fd3b908 ip_check_defrag +EXPORT_SYMBOL vmlinux 0x8feb6b98 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90415bf0 vfs_llseek +EXPORT_SYMBOL vmlinux 0x9048ca27 iget5_locked +EXPORT_SYMBOL vmlinux 0x904f8dff ps2_command +EXPORT_SYMBOL vmlinux 0x90501868 transfer_to_handler +EXPORT_SYMBOL vmlinux 0x908b53ed param_set_short +EXPORT_SYMBOL vmlinux 0x909ec333 bdi_register +EXPORT_SYMBOL vmlinux 0x90a25ff5 unlock_page +EXPORT_SYMBOL vmlinux 0x90c5e819 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x90dd8e69 vfs_create +EXPORT_SYMBOL vmlinux 0x90def640 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc +EXPORT_SYMBOL vmlinux 0x91206467 generic_read_dir +EXPORT_SYMBOL vmlinux 0x9124578b blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0x91402b74 blk_get_queue +EXPORT_SYMBOL vmlinux 0x91406a92 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x91a21d6c phy_driver_register +EXPORT_SYMBOL vmlinux 0x91b23b60 dev_get_flags +EXPORT_SYMBOL vmlinux 0x91c47171 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x91cda32b netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x91cfb5d9 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x91e3a957 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x9219c977 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x922c3760 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x925520d2 blk_start_plug +EXPORT_SYMBOL vmlinux 0x925e8189 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x92661f37 __inode_permission +EXPORT_SYMBOL vmlinux 0x92a7e6c5 bman_new_pool +EXPORT_SYMBOL vmlinux 0x92a95992 rtmsg_ifinfo +EXPORT_SYMBOL vmlinux 0x92a9c60c time_to_tm +EXPORT_SYMBOL vmlinux 0x92bc220b lockref_get +EXPORT_SYMBOL vmlinux 0x92df1be5 blkdev_put +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x932d98c1 cpm_muram_dma +EXPORT_SYMBOL vmlinux 0x933e10ec qman_ip_rev +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x93565612 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x93720319 blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93a90e3b mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x93b2f1da bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93d3fe3e __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x93e370d3 scsi_print_command +EXPORT_SYMBOL vmlinux 0x93ed24fd md_done_sync +EXPORT_SYMBOL vmlinux 0x93fc542e of_platform_device_create +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9401a56b bdi_destroy +EXPORT_SYMBOL vmlinux 0x941839d8 pci_platform_rom +EXPORT_SYMBOL vmlinux 0x943ad77c kfree_skb +EXPORT_SYMBOL vmlinux 0x943b7d8d dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x944a3927 pci_release_region +EXPORT_SYMBOL vmlinux 0x94631b98 qman_irqsource_get +EXPORT_SYMBOL vmlinux 0x947cb101 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x9494ceda input_close_device +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x949636fd mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x949dd929 elevator_exit +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94d78b7c qman_create_cgr +EXPORT_SYMBOL vmlinux 0x94e62412 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x9508f166 param_ops_bint +EXPORT_SYMBOL vmlinux 0x95132e27 iput +EXPORT_SYMBOL vmlinux 0x9514151a _mcount +EXPORT_SYMBOL vmlinux 0x95235104 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x952485b1 pme_fd_cmd_nop +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954fb377 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x955d2f03 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x9564bb6d padata_stop +EXPORT_SYMBOL vmlinux 0x95822155 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x9583ed72 update_devfreq +EXPORT_SYMBOL vmlinux 0x959c2ed7 qman_query_fq_np +EXPORT_SYMBOL vmlinux 0x95bf9c74 skb_store_bits +EXPORT_SYMBOL vmlinux 0x95cb929c of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x95e6e500 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x95e8ccf8 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x95f3e247 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x95f62f26 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x9600db96 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x9628fddd mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x9651d8f2 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x966c6c54 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x96819597 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x96b0859d udp_del_offload +EXPORT_SYMBOL vmlinux 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96e35c8f cfb_imageblit +EXPORT_SYMBOL vmlinux 0x9708c0e0 agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x972a8e13 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x972dd2c8 datagram_poll +EXPORT_SYMBOL vmlinux 0x97312f7c bdget_disk +EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns +EXPORT_SYMBOL vmlinux 0x974d71b1 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x97828850 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x97a60e3d param_get_bool +EXPORT_SYMBOL vmlinux 0x97a87c16 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x97b4500c __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x97c3fe58 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x97cb989c thaw_bdev +EXPORT_SYMBOL vmlinux 0x97dabfef ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x9800c9f3 tcp_close +EXPORT_SYMBOL vmlinux 0x98031cda __put_cred +EXPORT_SYMBOL vmlinux 0x980867e1 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x980b8dfa nla_reserve +EXPORT_SYMBOL vmlinux 0x981661a0 __idr_get_new_above +EXPORT_SYMBOL vmlinux 0x982be925 mmc_free_host +EXPORT_SYMBOL vmlinux 0x983e57d8 mem_cgroup_subsys +EXPORT_SYMBOL vmlinux 0x984d9b81 giveup_fpu +EXPORT_SYMBOL vmlinux 0x985d7456 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x98668903 pme_sw_flow_init +EXPORT_SYMBOL vmlinux 0x986c946b put_page +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x986f1afb devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0x987b9654 kobject_del +EXPORT_SYMBOL vmlinux 0x98cba87e skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x98e64506 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x98fe7882 DMA_MODE_READ +EXPORT_SYMBOL vmlinux 0x9917fec1 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x99275e19 mach_qemu_e500 +EXPORT_SYMBOL vmlinux 0x993223f4 register_quota_format +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x99591a7a ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x995e8e80 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x996bf05a fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x996d5f64 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x99762e83 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a86ae8 mpage_readpage +EXPORT_SYMBOL vmlinux 0x99aecde2 ip6_route_output +EXPORT_SYMBOL vmlinux 0x99afe916 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x99b7b329 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99c4dd89 blk_put_queue +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d64774 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x99df685a tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x99e0ab94 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x9a1af451 devm_free_irq +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1fc4b4 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9a58d339 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x9a59a253 __get_page_tail +EXPORT_SYMBOL vmlinux 0x9a626734 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x9a692a5d jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x9a740c73 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x9a750e98 bio_endio +EXPORT_SYMBOL vmlinux 0x9a791696 find_get_page +EXPORT_SYMBOL vmlinux 0x9a80eb1e key_type_keyring +EXPORT_SYMBOL vmlinux 0x9a85b0e6 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x9a910573 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x9abbb7d2 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x9ac06ede scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x9ae7dd03 write_cache_pages +EXPORT_SYMBOL vmlinux 0x9aeb0a15 udp6_csum_init +EXPORT_SYMBOL vmlinux 0x9aeeae6d __cleancache_invalidate_page +EXPORT_SYMBOL vmlinux 0x9b03755a __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x9b065bb0 netdev_update_features +EXPORT_SYMBOL vmlinux 0x9b0ead8e try_to_release_page +EXPORT_SYMBOL vmlinux 0x9b1f3889 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b55f502 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x9b59c74a tcp_check_req +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b859149 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x9b93463b vfs_statfs +EXPORT_SYMBOL vmlinux 0x9b9e05f9 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x9b9e226a dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bc6ce05 blk_end_request +EXPORT_SYMBOL vmlinux 0x9bd98bf5 input_flush_device +EXPORT_SYMBOL vmlinux 0x9be0ab76 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x9be7bde4 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x9be9e8c1 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x9c06502f mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x9c06b2d0 bio_pair_release +EXPORT_SYMBOL vmlinux 0x9c28adc1 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x9c2bb075 blk_make_request +EXPORT_SYMBOL vmlinux 0x9c3de1f0 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c4def48 pme_fd_cmd_scan +EXPORT_SYMBOL vmlinux 0x9c662104 thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x9c66a7ac sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x9ca4b223 tcp_proto_cgroup +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9cc354d9 pcim_iomap +EXPORT_SYMBOL vmlinux 0x9cc6390e jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0x9cc99288 fm_unbind +EXPORT_SYMBOL vmlinux 0x9cd56a69 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x9cd7c67c __ps2_command +EXPORT_SYMBOL vmlinux 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL vmlinux 0x9ce70b1d kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cef3cc5 __idr_remove_all +EXPORT_SYMBOL vmlinux 0x9ceff691 dquot_destroy +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d13276f phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs +EXPORT_SYMBOL vmlinux 0x9d16e718 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x9d28a222 arp_tbl +EXPORT_SYMBOL vmlinux 0x9d3475f4 ppp_input +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d503789 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d72229b fsl_ifc_find +EXPORT_SYMBOL vmlinux 0x9d7ce8dd _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x9d90f95f __crc32c_le_combine +EXPORT_SYMBOL vmlinux 0x9dc7e4da simple_rmdir +EXPORT_SYMBOL vmlinux 0x9de2dfd0 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x9dee9a84 cpm2_immr +EXPORT_SYMBOL vmlinux 0x9deed102 phy_attach_direct +EXPORT_SYMBOL vmlinux 0x9dfa23db pci_write_vpd +EXPORT_SYMBOL vmlinux 0x9dfc1edd bman_irqsource_add +EXPORT_SYMBOL vmlinux 0x9dfe7307 lz4_decompress_unknownoutputsize +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e0eb0be nf_log_packet +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e2625f4 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x9e44b9b7 of_get_next_available_child +EXPORT_SYMBOL vmlinux 0x9e4b3747 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e69e542 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x9e8833cb pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9eae3170 drop_nlink +EXPORT_SYMBOL vmlinux 0x9eb05a33 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x9eb1958a xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x9ebad140 inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ebf6c72 blk_mq_insert_request +EXPORT_SYMBOL vmlinux 0x9ec16032 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x9ec45fa9 phy_device_register +EXPORT_SYMBOL vmlinux 0x9ed2eec7 param_set_ushort +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eedfe27 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x9f0b4086 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f3e98c2 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x9f4193fb blk_peek_request +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f55130c tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x9f76db61 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x9f7fc5c4 mmc_add_host +EXPORT_SYMBOL vmlinux 0x9f8d00dd security_dentry_init_security +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa29669 clk_add_alias +EXPORT_SYMBOL vmlinux 0x9fa4f8f4 sock_release +EXPORT_SYMBOL vmlinux 0x9fae5a4c i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fb8cb60 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x9fcbaecf i8042_install_filter +EXPORT_SYMBOL vmlinux 0x9fdbc969 netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe7141e inet6_bind +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0x9fffbdda vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0xa039ab33 __skb_get_hash +EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0xa044ba6e netdev_features_change +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06b9b92 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa0966e4b unregister_shrinker +EXPORT_SYMBOL vmlinux 0xa09710a5 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xa09f8be2 qman_affine_cpus +EXPORT_SYMBOL vmlinux 0xa0acb8bb sock_i_ino +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0cca981 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d8deea udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xa0dad88e netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0xa0e30390 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0f18d6f pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xa0f3b1e9 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa106793d tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xa1070746 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa10a9351 get_pci_dma_ops +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa12175fa splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xa134134a dev_disable_lro +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa143625d xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa16a9605 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xa180758c nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0xa1882563 register_gifconf +EXPORT_SYMBOL vmlinux 0xa1a6de58 no_llseek +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1bdafba devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1c99385 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xa1caa424 qdisc_watchdog_schedule_ns +EXPORT_SYMBOL vmlinux 0xa1f8fe75 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2103cf8 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xa23ac193 sock_update_classid +EXPORT_SYMBOL vmlinux 0xa25db465 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xa25eeabc path_put +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL vmlinux 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL vmlinux 0xa2ba00f2 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register +EXPORT_SYMBOL vmlinux 0xa2cfec87 udp_poll +EXPORT_SYMBOL vmlinux 0xa2d82dca blk_run_queue_async +EXPORT_SYMBOL vmlinux 0xa2ecfaea scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa303d1ff dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0xa30e51fa eth_header +EXPORT_SYMBOL vmlinux 0xa332464a of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35b863e sock_update_memcg +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa3604895 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xa3674337 do_sync_write +EXPORT_SYMBOL vmlinux 0xa36a3b79 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0xa3747cab inet6_register_protosw +EXPORT_SYMBOL vmlinux 0xa37a1a65 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0xa381944f dql_reset +EXPORT_SYMBOL vmlinux 0xa38e691a ioremap_bot +EXPORT_SYMBOL vmlinux 0xa3989f61 sync_blockdev +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3abc422 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xa3cc9181 softnet_data +EXPORT_SYMBOL vmlinux 0xa3d31e17 agp_find_bridge +EXPORT_SYMBOL vmlinux 0xa3d4f359 get_tz_trend +EXPORT_SYMBOL vmlinux 0xa3dcc997 mmc_gpio_request_cd +EXPORT_SYMBOL vmlinux 0xa3e75545 flush_tlb_kernel_range +EXPORT_SYMBOL vmlinux 0xa3ed73ae pci_restore_state +EXPORT_SYMBOL vmlinux 0xa3f2a65f devm_iounmap +EXPORT_SYMBOL vmlinux 0xa3fd4f15 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xa40de380 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xa431459e security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xa43b1297 vscnprintf +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa441f628 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xa467599f sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xa4701e9e timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0xa473f1b2 seq_open +EXPORT_SYMBOL vmlinux 0xa47f39a3 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0xa4826b4a sg_miter_next +EXPORT_SYMBOL vmlinux 0xa489a684 blk_init_queue +EXPORT_SYMBOL vmlinux 0xa48d7543 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xa49e7d78 key_put +EXPORT_SYMBOL vmlinux 0xa4a94d26 find_next_bit_le +EXPORT_SYMBOL vmlinux 0xa4ad8538 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xa4b50c07 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa500eefd i2c_master_recv +EXPORT_SYMBOL vmlinux 0xa50c7161 seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0xa50deb24 __serio_register_port +EXPORT_SYMBOL vmlinux 0xa521229e nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa5690a18 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xa57deade neigh_seq_next +EXPORT_SYMBOL vmlinux 0xa589ec3f tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xa58b7951 inet_add_offload +EXPORT_SYMBOL vmlinux 0xa59656e8 ilookup5 +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a3857d register_key_type +EXPORT_SYMBOL vmlinux 0xa5adb5ac input_set_keycode +EXPORT_SYMBOL vmlinux 0xa5c71d37 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xa5cb619e deactivate_super +EXPORT_SYMBOL vmlinux 0xa5d0813c xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xa5e5e695 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0xa5e728cd inet_accept +EXPORT_SYMBOL vmlinux 0xa5e728f7 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xa61671dc ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xa619c181 pme_ctx_reconfigure_tx +EXPORT_SYMBOL vmlinux 0xa633f8d2 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0xa63a2f9b param_get_ulong +EXPORT_SYMBOL vmlinux 0xa65775a4 page_address +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa6662d98 ip_route_input_noref +EXPORT_SYMBOL vmlinux 0xa670647b mmc_can_trim +EXPORT_SYMBOL vmlinux 0xa6715115 do_settimeofday +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa699b348 vfs_mknod +EXPORT_SYMBOL vmlinux 0xa69ecfa3 sk_common_release +EXPORT_SYMBOL vmlinux 0xa69f30fb pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0xa6a04d38 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xa6af1a94 pme2_exclusive_unset +EXPORT_SYMBOL vmlinux 0xa6c8bcc8 tty_port_put +EXPORT_SYMBOL vmlinux 0xa6ca00a0 register_framebuffer +EXPORT_SYMBOL vmlinux 0xa6d41fc0 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xa6d79388 pci_bus_get +EXPORT_SYMBOL vmlinux 0xa6de89ab invalidate_partition +EXPORT_SYMBOL vmlinux 0xa70a29d8 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa720678c lg_global_lock +EXPORT_SYMBOL vmlinux 0xa725addd d_instantiate +EXPORT_SYMBOL vmlinux 0xa72d44f9 scsi_block_requests +EXPORT_SYMBOL vmlinux 0xa735db59 prandom_u32 +EXPORT_SYMBOL vmlinux 0xa73fc98f of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xa7437afd names_cachep +EXPORT_SYMBOL vmlinux 0xa74cba42 padata_do_serial +EXPORT_SYMBOL vmlinux 0xa75af2bd simple_transaction_read +EXPORT_SYMBOL vmlinux 0xa76bc3d8 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xa778ba23 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0xa77b7d4f flush_tlb_mm +EXPORT_SYMBOL vmlinux 0xa78a7557 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL vmlinux 0xa78ebbd4 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xa7cf5c2e scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xa7d2a224 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xa7e0cf72 dm_unregister_target +EXPORT_SYMBOL vmlinux 0xa7e94902 kmap_pte +EXPORT_SYMBOL vmlinux 0xa7edd5af elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xa7fe424c vfs_symlink +EXPORT_SYMBOL vmlinux 0xa80de5a6 override_creds +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa8721b97 system_state +EXPORT_SYMBOL vmlinux 0xa8803f64 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xa89464b7 __ashldi3 +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8cc0bda inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xa8ccf264 register_nls +EXPORT_SYMBOL vmlinux 0xa8cdbd4a blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xa8edc83d mount_pseudo +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa90df1f3 mmc_get_card +EXPORT_SYMBOL vmlinux 0xa91770c6 dquot_initialize +EXPORT_SYMBOL vmlinux 0xa925098a scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xa9273e1a epapr_hypercall_start +EXPORT_SYMBOL vmlinux 0xa93ee6e7 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xa94f39f3 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0xa9526e18 set_page_dirty +EXPORT_SYMBOL vmlinux 0xa9571d6d DMA_MODE_WRITE +EXPORT_SYMBOL vmlinux 0xa95d740c mddev_congested +EXPORT_SYMBOL vmlinux 0xa9695dfe find_or_create_page +EXPORT_SYMBOL vmlinux 0xa96d9cac blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0xa9b63345 of_parse_phandle_with_fixed_args +EXPORT_SYMBOL vmlinux 0xa9b6d22b mmc_erase +EXPORT_SYMBOL vmlinux 0xa9c092c2 blk_delay_queue +EXPORT_SYMBOL vmlinux 0xa9ed41dc genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xa9f0a0cc simple_dentry_operations +EXPORT_SYMBOL vmlinux 0xa9f201b3 kernel_connect +EXPORT_SYMBOL vmlinux 0xa9f5f189 call_netdevice_notifiers_info +EXPORT_SYMBOL vmlinux 0xa9fb0354 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xaa0bf116 tty_do_resize +EXPORT_SYMBOL vmlinux 0xaa0efeb3 dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0xaa422187 skb_clone +EXPORT_SYMBOL vmlinux 0xaa46e87e lg_local_unlock +EXPORT_SYMBOL vmlinux 0xaa506581 __get_user_pages +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa6e4df5 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa9087c0 param_ops_string +EXPORT_SYMBOL vmlinux 0xaa93a2ad neigh_for_each +EXPORT_SYMBOL vmlinux 0xaaab8067 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xaaadeccf bio_init +EXPORT_SYMBOL vmlinux 0xaac610e0 blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0xaad69e23 qman_fq_state +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xaafddf28 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xab0c4f0b fbcon_rotate_ccw +EXPORT_SYMBOL vmlinux 0xab2c4056 iunique +EXPORT_SYMBOL vmlinux 0xab38da0e phy_print_status +EXPORT_SYMBOL vmlinux 0xab39797f inet_frags_fini +EXPORT_SYMBOL vmlinux 0xab3a8a83 blkdev_get +EXPORT_SYMBOL vmlinux 0xab49b086 clocksource_unregister +EXPORT_SYMBOL vmlinux 0xab66514e __bread +EXPORT_SYMBOL vmlinux 0xab694444 bsearch +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xab90d3b3 inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0xaba825d1 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xabc6dd63 cpufreq_sysfs_create_file +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabfcf3fb bitmap_unplug +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac159041 phy_get_eee_err +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac26b820 _raw_write_lock +EXPORT_SYMBOL vmlinux 0xac27d051 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xac303160 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xac32fd03 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xac3ae650 generic_listxattr +EXPORT_SYMBOL vmlinux 0xac446d4a find_get_pages_tag +EXPORT_SYMBOL vmlinux 0xac6cd098 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xac869b72 pci_match_id +EXPORT_SYMBOL vmlinux 0xac940ee2 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xaca633fc ab3100_event_register +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacc23191 mmc_start_req +EXPORT_SYMBOL vmlinux 0xacc5b5d2 csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xaccd2ddf sockfd_lookup +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0a6e0a flex_array_prealloc +EXPORT_SYMBOL vmlinux 0xad207c1c qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xad46dec2 of_count_phandle_with_args +EXPORT_SYMBOL vmlinux 0xad4c3513 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad860d4d tcp_shutdown +EXPORT_SYMBOL vmlinux 0xad90f33a fm_port_get_base_addr +EXPORT_SYMBOL vmlinux 0xadaaec6d seq_write +EXPORT_SYMBOL vmlinux 0xadd1e971 alignment_exception +EXPORT_SYMBOL vmlinux 0xaddd4770 __debugger_iabr_match +EXPORT_SYMBOL vmlinux 0xadf0811d get_baudrate +EXPORT_SYMBOL vmlinux 0xadf3e88e rtnl_notify +EXPORT_SYMBOL vmlinux 0xadf64877 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xae2d8e00 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xae315ab1 tty_port_open +EXPORT_SYMBOL vmlinux 0xae4d2c0a rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xae545f06 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xae729e59 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0xae78fb65 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xae85ab4e pci_target_state +EXPORT_SYMBOL vmlinux 0xae8acf75 mpage_readpages +EXPORT_SYMBOL vmlinux 0xaec526f1 pme_ctx_scan +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaed8cce9 inet6_del_offload +EXPORT_SYMBOL vmlinux 0xaeeab852 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xaf05b91b of_device_is_available +EXPORT_SYMBOL vmlinux 0xaf063510 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xaf178f16 __pagevec_release +EXPORT_SYMBOL vmlinux 0xaf1d47e3 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0xaf2d872c prepare_to_wait +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf3fb741 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xaf508831 zerocopy_sg_from_iovec +EXPORT_SYMBOL vmlinux 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf95b25a pci_release_regions +EXPORT_SYMBOL vmlinux 0xaf9c4b5c simple_unlink +EXPORT_SYMBOL vmlinux 0xafad493b param_ops_ushort +EXPORT_SYMBOL vmlinux 0xafd01e14 qman_retire_fq +EXPORT_SYMBOL vmlinux 0xafd68c33 flex_array_free +EXPORT_SYMBOL vmlinux 0xafd70bf2 qman_dca +EXPORT_SYMBOL vmlinux 0xaff3b60d jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xafff3d1d mempool_alloc +EXPORT_SYMBOL vmlinux 0xb01d841e vfs_open +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb06e4028 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xb083b36c validate_sp +EXPORT_SYMBOL vmlinux 0xb08df632 kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0baa7fa udp_disconnect +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0eea892 pci_set_ltr +EXPORT_SYMBOL vmlinux 0xb0ffda2f blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xb115be68 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xb12770bd fm_port_bind +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb12da7d6 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb18f02e9 tty_vhangup +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1a7c17e fb_class +EXPORT_SYMBOL vmlinux 0xb1b75a62 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c6e787 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1cd5375 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xb1cf44df fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xb1d3c94a input_release_device +EXPORT_SYMBOL vmlinux 0xb1d909a5 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xb1db9e4e param_get_invbool +EXPORT_SYMBOL vmlinux 0xb1fbcabb do_truncate +EXPORT_SYMBOL vmlinux 0xb205ea04 pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0xb2125099 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xb233762c atomic64_set +EXPORT_SYMBOL vmlinux 0xb258825a ps2_init +EXPORT_SYMBOL vmlinux 0xb25d0f11 may_umount +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2a41bf5 pskb_expand_head +EXPORT_SYMBOL vmlinux 0xb2acf19d pme_ctx_finish +EXPORT_SYMBOL vmlinux 0xb2b43f87 __cleancache_invalidate_fs +EXPORT_SYMBOL vmlinux 0xb2b94674 __crc32c_le +EXPORT_SYMBOL vmlinux 0xb2be6e92 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xb2d48a2e queue_work_on +EXPORT_SYMBOL vmlinux 0xb2dde43e agp_collect_device_status +EXPORT_SYMBOL vmlinux 0xb2eebaf9 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xb3001a51 get_user_pages +EXPORT_SYMBOL vmlinux 0xb304acff ida_get_new_above +EXPORT_SYMBOL vmlinux 0xb314e622 dev_mc_init +EXPORT_SYMBOL vmlinux 0xb31b1e5b __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xb323f2dc init_special_inode +EXPORT_SYMBOL vmlinux 0xb326ee86 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xb335f5fa setattr_copy +EXPORT_SYMBOL vmlinux 0xb357eb41 md_check_recovery +EXPORT_SYMBOL vmlinux 0xb359c920 devm_gpio_free +EXPORT_SYMBOL vmlinux 0xb36c8e7e blk_mq_free_single_hw_queue +EXPORT_SYMBOL vmlinux 0xb37bbe24 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xb38847c8 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0xb3976959 sk_capable +EXPORT_SYMBOL vmlinux 0xb3b11a01 sk_stream_error +EXPORT_SYMBOL vmlinux 0xb3b386f6 dquot_transfer +EXPORT_SYMBOL vmlinux 0xb3c138a3 netdev_crit +EXPORT_SYMBOL vmlinux 0xb3d040b0 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xb3d123d6 fm_get_tx_port_channel +EXPORT_SYMBOL vmlinux 0xb3d894d7 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xb3e35192 commit_creds +EXPORT_SYMBOL vmlinux 0xb3eb293e generic_show_options +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb4013321 init_buffer +EXPORT_SYMBOL vmlinux 0xb422e959 poll_freewait +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb431758e icmp_send +EXPORT_SYMBOL vmlinux 0xb436c37b f_setown +EXPORT_SYMBOL vmlinux 0xb44f0d2f inode_init_owner +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb481f551 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xb48e1e5e netlink_set_err +EXPORT_SYMBOL vmlinux 0xb49e6109 fm_bind +EXPORT_SYMBOL vmlinux 0xb4bbc62a elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xb4cb754e module_layout +EXPORT_SYMBOL vmlinux 0xb4e82bc1 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xb4eb7de0 tcf_register_action +EXPORT_SYMBOL vmlinux 0xb5062d29 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xb50cd7d3 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xb5143496 tcp_splice_read +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb559df78 seq_release_private +EXPORT_SYMBOL vmlinux 0xb5727be2 brioctl_set +EXPORT_SYMBOL vmlinux 0xb57343c2 frontswap_shrink +EXPORT_SYMBOL vmlinux 0xb5a1b860 inet_sendpage +EXPORT_SYMBOL vmlinux 0xb5a21a58 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5adc341 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xb5b1a713 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xb5b5642f jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xb5d8a759 mntput +EXPORT_SYMBOL vmlinux 0xb5d9454c printk_emit +EXPORT_SYMBOL vmlinux 0xb5f15a8c simple_setattr +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb625d7c6 set_groups +EXPORT_SYMBOL vmlinux 0xb627c593 fifo_set_limit +EXPORT_SYMBOL vmlinux 0xb6394d4b param_set_bint +EXPORT_SYMBOL vmlinux 0xb64d268f qman_schedule_fq +EXPORT_SYMBOL vmlinux 0xb6599b9a machine_check_exception +EXPORT_SYMBOL vmlinux 0xb659dd22 d_add_ci +EXPORT_SYMBOL vmlinux 0xb677a9ba dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb690774a replace_mount_options +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb69b13f4 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xb69b816a sock_edemux +EXPORT_SYMBOL vmlinux 0xb69fa884 fsnotify_get_group +EXPORT_SYMBOL vmlinux 0xb6a3ab21 alloc_anon_inode +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6a77adb bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xb6b46a7c param_ops_int +EXPORT_SYMBOL vmlinux 0xb6b65590 neigh_connected_output +EXPORT_SYMBOL vmlinux 0xb6be7043 load_nls +EXPORT_SYMBOL vmlinux 0xb6c3020c of_phy_find_device +EXPORT_SYMBOL vmlinux 0xb6c3eb36 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6d0a9ef __breadahead +EXPORT_SYMBOL vmlinux 0xb6d2eafb qman_irqsource_add +EXPORT_SYMBOL vmlinux 0xb6e9c269 tcp_connect +EXPORT_SYMBOL vmlinux 0xb6f6bdf6 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xb70faa3b sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xb7276ca1 tcp_read_sock +EXPORT_SYMBOL vmlinux 0xb753bcc8 __ashrdi3 +EXPORT_SYMBOL vmlinux 0xb75c473b clear_nlink +EXPORT_SYMBOL vmlinux 0xb75f7010 neigh_direct_output +EXPORT_SYMBOL vmlinux 0xb765acb9 mmc_gpio_free_ro +EXPORT_SYMBOL vmlinux 0xb77042b9 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xb770be3e __percpu_counter_add +EXPORT_SYMBOL vmlinux 0xb77131b1 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xb79a4e1a store_fp_state +EXPORT_SYMBOL vmlinux 0xb79eff43 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xb7a99781 __irq_regs +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7c057ba pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xb7dace3c scsi_finish_command +EXPORT_SYMBOL vmlinux 0xb7f9a8c5 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0xb7fde971 pme_map +EXPORT_SYMBOL vmlinux 0xb80280aa irq_to_desc +EXPORT_SYMBOL vmlinux 0xb806a553 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xb81960ca snprintf +EXPORT_SYMBOL vmlinux 0xb819de3c scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xb82a6601 __blk_end_request +EXPORT_SYMBOL vmlinux 0xb833602b flush_icache_user_range +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb83877b7 tty_name +EXPORT_SYMBOL vmlinux 0xb83f6aae mach_c293_pcie +EXPORT_SYMBOL vmlinux 0xb8615719 netif_device_detach +EXPORT_SYMBOL vmlinux 0xb874b87a __clzsi2 +EXPORT_SYMBOL vmlinux 0xb8792233 da903x_query_status +EXPORT_SYMBOL vmlinux 0xb87efde1 serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0xb8aed467 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xb8b50ef3 register_cdrom +EXPORT_SYMBOL vmlinux 0xb8cd71ee devm_clk_get +EXPORT_SYMBOL vmlinux 0xb8d73e97 param_set_uint +EXPORT_SYMBOL vmlinux 0xb8e877e7 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xb8fda847 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0xb9304913 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0xb94973ab blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xb949b49a tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xb94b4047 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xb953f47f add_disk +EXPORT_SYMBOL vmlinux 0xb9836b5a neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9d5e027 qman_eqcr_is_empty +EXPORT_SYMBOL vmlinux 0xb9e8e2cc in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0xba027a6f fixed_size_llseek +EXPORT_SYMBOL vmlinux 0xba0405a3 input_grab_device +EXPORT_SYMBOL vmlinux 0xba136d78 neigh_update +EXPORT_SYMBOL vmlinux 0xba18f92a vlan_uses_dev +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba74e7dc phy_device_create +EXPORT_SYMBOL vmlinux 0xba77280b tcf_hash_create +EXPORT_SYMBOL vmlinux 0xba897b5f genphy_suspend +EXPORT_SYMBOL vmlinux 0xba8ac6b8 put_io_context +EXPORT_SYMBOL vmlinux 0xba93e28f agp_create_memory +EXPORT_SYMBOL vmlinux 0xbaa5787c jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0xbab323d7 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xbabce31c dev_remove_pack +EXPORT_SYMBOL vmlinux 0xbb0cfeca kset_unregister +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb286315 follow_down +EXPORT_SYMBOL vmlinux 0xbb2bc1ae pci_disable_device +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb713e6d sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba309d0 bio_alloc_pages +EXPORT_SYMBOL vmlinux 0xbba42e02 rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0xbc2db5a3 devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0xbc2ed2af module_refcount +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc3d0893 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xbc3f6afa down_read +EXPORT_SYMBOL vmlinux 0xbc5d2770 machine_id +EXPORT_SYMBOL vmlinux 0xbc71da10 ilookup +EXPORT_SYMBOL vmlinux 0xbcb7433d inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xbcbc6ddf vlan_vid_add +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcc3707d udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0xbccdc2f6 flex_array_put +EXPORT_SYMBOL vmlinux 0xbcd7f26e xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xbcd979ed pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0xbcdedba7 of_get_mac_address +EXPORT_SYMBOL vmlinux 0xbce2ce96 of_get_ddr_timings +EXPORT_SYMBOL vmlinux 0xbcea6bc5 release_pages +EXPORT_SYMBOL vmlinux 0xbd083404 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xbd096443 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xbd0e4ea2 __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xbd1734e7 __netif_schedule +EXPORT_SYMBOL vmlinux 0xbd1d8143 mmc_read_bkops_status +EXPORT_SYMBOL vmlinux 0xbd2ad373 inet6_ioctl +EXPORT_SYMBOL vmlinux 0xbd51610d blk_mq_alloc_single_hw_queue +EXPORT_SYMBOL vmlinux 0xbd5c98d1 genlmsg_put +EXPORT_SYMBOL vmlinux 0xbd69c6e9 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0xbd754872 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0xbd803510 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xbd9e5d49 __lshrdi3 +EXPORT_SYMBOL vmlinux 0xbdba9828 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0xbdc5447e devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xbde58bde blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xbdf8b7fd skb_pad +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe173014 __memcg_kmem_get_cache +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe2ff528 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xbe42deab __page_symlink +EXPORT_SYMBOL vmlinux 0xbe5f4dc2 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xbe602751 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0xbe75917f lro_flush_all +EXPORT_SYMBOL vmlinux 0xbe77aebe down_write_trylock +EXPORT_SYMBOL vmlinux 0xbe7bb0bb dget_parent +EXPORT_SYMBOL vmlinux 0xbeb051f9 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xbeb99989 do_SAK +EXPORT_SYMBOL vmlinux 0xbeb9c2f8 pipe_lock +EXPORT_SYMBOL vmlinux 0xbec25473 of_parse_phandle +EXPORT_SYMBOL vmlinux 0xbee78b75 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbef12c73 posix_test_lock +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef80a08 input_open_device +EXPORT_SYMBOL vmlinux 0xbf296b9a abx500_register_ops +EXPORT_SYMBOL vmlinux 0xbf2b65d7 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xbf6d52ec dev_uc_add +EXPORT_SYMBOL vmlinux 0xbf78d6a1 tty_kref_put +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9825cc blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfb8b0b7 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfc8b128 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xbfdb0054 lro_receive_skb +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff2281d unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xc00c1a64 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xc02a1098 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc043285e __napi_complete +EXPORT_SYMBOL vmlinux 0xc04369bd swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0xc0441a4e generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xc05b1812 filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0xc063baed netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0aca92d fs_bio_set +EXPORT_SYMBOL vmlinux 0xc0e0537d rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0xc0e55b77 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xc11c9fd3 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xc12e9f63 request_key +EXPORT_SYMBOL vmlinux 0xc12ec3a6 dns_query +EXPORT_SYMBOL vmlinux 0xc137e2a4 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xc140212a netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xc1754cad bdi_register_dev +EXPORT_SYMBOL vmlinux 0xc1ae563e uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xc1b82d22 register_shrinker +EXPORT_SYMBOL vmlinux 0xc1bcce89 release_firmware +EXPORT_SYMBOL vmlinux 0xc1c115ab seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1db4666 pci_find_bus +EXPORT_SYMBOL vmlinux 0xc1ecf273 crypto_sha256_update +EXPORT_SYMBOL vmlinux 0xc1f3b2c8 account_page_dirtied +EXPORT_SYMBOL vmlinux 0xc212ddf2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0xc222d7af blk_integrity_register +EXPORT_SYMBOL vmlinux 0xc23d87f6 vfs_setpos +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc24c3e74 mutex_lock +EXPORT_SYMBOL vmlinux 0xc2538aa2 skb_split +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc25dba24 blk_mq_init_commands +EXPORT_SYMBOL vmlinux 0xc2d3252f get_disk +EXPORT_SYMBOL vmlinux 0xc2d40921 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xc2d696f3 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2d9e023 kernel_read +EXPORT_SYMBOL vmlinux 0xc2ddaebc remap_vmalloc_range_partial +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f9c045 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xc2fd64cf bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xc2fd81f3 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xc31b7ac2 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xc3286a8f tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xc32e9307 mount_bdev +EXPORT_SYMBOL vmlinux 0xc3430c21 max8925_set_bits +EXPORT_SYMBOL vmlinux 0xc3469d9b iterate_dir +EXPORT_SYMBOL vmlinux 0xc34ee4f0 netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0xc368849f nvram_sync +EXPORT_SYMBOL vmlinux 0xc3b167ea generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xc40568b2 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xc40cf1a1 cdev_init +EXPORT_SYMBOL vmlinux 0xc41f0516 node_states +EXPORT_SYMBOL vmlinux 0xc422c56f dm_put_device +EXPORT_SYMBOL vmlinux 0xc4375d98 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xc45755de find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0xc458d632 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xc4708199 cpm_muram_addr +EXPORT_SYMBOL vmlinux 0xc47cdf9c _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0xc491c586 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49eee90 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xc4baa620 mpage_writepage +EXPORT_SYMBOL vmlinux 0xc4f2f31b scsi_report_opcode +EXPORT_SYMBOL vmlinux 0xc4f59917 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xc514ccd7 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc55c2a9d inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0xc5602713 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xc589e044 param_set_long +EXPORT_SYMBOL vmlinux 0xc58b1bc0 nf_log_unset +EXPORT_SYMBOL vmlinux 0xc5b83073 netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0xc5bb7bc4 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0xc5c08eab dpa_uio_bman +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5d9de25 security_path_chown +EXPORT_SYMBOL vmlinux 0xc5dbb1f3 skb_make_writable +EXPORT_SYMBOL vmlinux 0xc5ddaff8 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xc5f17444 arp_xmit +EXPORT_SYMBOL vmlinux 0xc5fdef94 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xc61d639f user_path_at +EXPORT_SYMBOL vmlinux 0xc625dfcb __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xc62e5028 dqput +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc637d662 single_open_size +EXPORT_SYMBOL vmlinux 0xc6526a13 agp_free_memory +EXPORT_SYMBOL vmlinux 0xc653c084 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc663b075 __ioremap +EXPORT_SYMBOL vmlinux 0xc665d6d7 of_parse_phandle_with_args +EXPORT_SYMBOL vmlinux 0xc67476f8 tcp_prequeue +EXPORT_SYMBOL vmlinux 0xc6b48642 fm_set_rx_port_params +EXPORT_SYMBOL vmlinux 0xc6be3b9e blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0xc6be4a28 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6e78d8b jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xc6ec06fa dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xc7155303 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xc7201f1a scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc74f3725 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xc762c18f try_module_get +EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc76c6afe ether_setup +EXPORT_SYMBOL vmlinux 0xc775305b generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc789905e eth_header_cache +EXPORT_SYMBOL vmlinux 0xc79b8e07 capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7a6b7e7 read_cache_page_async +EXPORT_SYMBOL vmlinux 0xc7b18718 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc81e5dc6 qman_query_fq +EXPORT_SYMBOL vmlinux 0xc8276a79 nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xc827c396 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xc82b63b8 bio_integrity_split +EXPORT_SYMBOL vmlinux 0xc82fcd2a netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0xc8339e24 string_unescape +EXPORT_SYMBOL vmlinux 0xc83b4d5b posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc86fea0f scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xc8707d6a file_remove_suid +EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0xc8746c7c xfrm_init_replay +EXPORT_SYMBOL vmlinux 0xc87c088c audit_log_task_info +EXPORT_SYMBOL vmlinux 0xc88021eb cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xc8866a5d clear_user_page +EXPORT_SYMBOL vmlinux 0xc88f30bb neigh_compat_output +EXPORT_SYMBOL vmlinux 0xc89510cc tcp_disconnect +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8a4d736 uart_match_port +EXPORT_SYMBOL vmlinux 0xc8a51cf9 writeback_in_progress +EXPORT_SYMBOL vmlinux 0xc8abe793 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xc8b0d2b2 sock_kfree_s +EXPORT_SYMBOL vmlinux 0xc8b1af49 pci_set_master +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8b9a76b bman_recovery_exit +EXPORT_SYMBOL vmlinux 0xc8c5b056 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xc9182131 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xc91ff664 down_read_trylock +EXPORT_SYMBOL vmlinux 0xc927b688 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xc93fbc54 wait_for_completion_io +EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0xc96fb6d0 qman_start_dequeues +EXPORT_SYMBOL vmlinux 0xc974c03f frontswap_register_ops +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9a24355 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xc9cd441e md_error +EXPORT_SYMBOL vmlinux 0xc9e74e21 cfb_copyarea +EXPORT_SYMBOL vmlinux 0xca07ac4e inet6_unregister_icmp_sender +EXPORT_SYMBOL vmlinux 0xca279f0b revert_creds +EXPORT_SYMBOL vmlinux 0xca32376a kmalloc_caches +EXPORT_SYMBOL vmlinux 0xca37821e blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xca5672e3 bioset_free +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca80e434 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xca947a4a blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xcaa0e040 generic_setlease +EXPORT_SYMBOL vmlinux 0xcaa1423f seq_bitmap +EXPORT_SYMBOL vmlinux 0xcaaa5361 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0xcabb2887 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xcacd272d atomic64_sub_return +EXPORT_SYMBOL vmlinux 0xcadcf5e2 scsi_execute +EXPORT_SYMBOL vmlinux 0xcae620da security_inode_permission +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb032a1a i2c_bit_algo +EXPORT_SYMBOL vmlinux 0xcb0c5d50 param_get_uint +EXPORT_SYMBOL vmlinux 0xcb296e9c skb_queue_tail +EXPORT_SYMBOL vmlinux 0xcb3a84d5 file_update_time +EXPORT_SYMBOL vmlinux 0xcb431641 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0xcb53087e blkdev_issue_write_same +EXPORT_SYMBOL vmlinux 0xcb561545 kmalloc_dma_caches +EXPORT_SYMBOL vmlinux 0xcbaaa5b1 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xcbac6dad nf_getsockopt +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbd3d6ee dquot_free_inode +EXPORT_SYMBOL vmlinux 0xcc17504d _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc26fa81 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xcc2b8256 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xcc2f7d76 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xcc35af9b textsearch_prepare +EXPORT_SYMBOL vmlinux 0xcc37f55c blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xcc4b84da of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc731e40 iterate_mounts +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc8fae35 __lock_page +EXPORT_SYMBOL vmlinux 0xcc92750d do_splice_to +EXPORT_SYMBOL vmlinux 0xcc9f4fe9 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xccb09949 proc_set_user +EXPORT_SYMBOL vmlinux 0xccc21f5e input_get_new_minor +EXPORT_SYMBOL vmlinux 0xccf9e002 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0xcd051c81 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0xcd0529c7 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xcd06a3aa tty_register_device +EXPORT_SYMBOL vmlinux 0xcd0c94d9 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd391564 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xcd39b610 pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0xcd549413 send_sig +EXPORT_SYMBOL vmlinux 0xcd85f22f jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xcd86c87f __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcdc5b406 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcdf4722d netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce58b8b0 md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce61705b sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0xce721c0a inode_needs_sync +EXPORT_SYMBOL vmlinux 0xce755c3b mutex_unlock +EXPORT_SYMBOL vmlinux 0xce98ca8d scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xceb278c4 kill_bdev +EXPORT_SYMBOL vmlinux 0xcee2c87a fb_set_var +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf04eede mapping_tagged +EXPORT_SYMBOL vmlinux 0xcf1a7990 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xcf1d7646 isa_mem_base +EXPORT_SYMBOL vmlinux 0xcf3025cb inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0xcf4f88c9 inet_listen +EXPORT_SYMBOL vmlinux 0xcf50d03e cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xcf640db9 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xcf64b916 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xcfa75543 generic_writepages +EXPORT_SYMBOL vmlinux 0xcfb01674 pci_iomap +EXPORT_SYMBOL vmlinux 0xcfe5ce9d input_unregister_handle +EXPORT_SYMBOL vmlinux 0xcfe9c119 pipe_unlock +EXPORT_SYMBOL vmlinux 0xcfec6b0e fget_raw +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd01c54ba km_state_expired +EXPORT_SYMBOL vmlinux 0xd02f6ab3 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xd042d323 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xd04630a9 pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0xd0720a17 on_each_cpu_cond +EXPORT_SYMBOL vmlinux 0xd089aec4 serio_reconnect +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0c73f74 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xd0cdaa1b security_path_symlink +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0e726ed inode_permission +EXPORT_SYMBOL vmlinux 0xd0e739f6 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xd0edc63e eth_mac_addr +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd10c3452 idr_init +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd1231736 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xd12f33b6 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xd138719c qman_recovery_exit +EXPORT_SYMBOL vmlinux 0xd1532628 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xd1816f32 frontswap_writethrough +EXPORT_SYMBOL vmlinux 0xd1859ca6 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0xd194106a fail_migrate_page +EXPORT_SYMBOL vmlinux 0xd1946b87 napi_complete +EXPORT_SYMBOL vmlinux 0xd196c9be kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xd1b5ed47 inet_getname +EXPORT_SYMBOL vmlinux 0xd1cc0681 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0xd1de5574 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xd1e3f3c4 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xd218707a pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0xd220cf8a jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0xd224c09e serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xd234a491 of_dev_get +EXPORT_SYMBOL vmlinux 0xd24c4b78 netif_napi_del +EXPORT_SYMBOL vmlinux 0xd24c8d3c __ww_mutex_lock +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd25d9ee4 uart_register_driver +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd28eca72 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xd28ff3a0 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xd2982928 blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0xd2a9a1b8 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xd2abbb03 tty_unlock +EXPORT_SYMBOL vmlinux 0xd2af138b reservation_ww_class +EXPORT_SYMBOL vmlinux 0xd2b7f9e3 fm_port_unbind +EXPORT_SYMBOL vmlinux 0xd2cd5568 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2edef2a input_unregister_device +EXPORT_SYMBOL vmlinux 0xd2fc19bd proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd31ffd95 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xd33241e4 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xd33655d0 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xd35dcdb2 sys_fillrect +EXPORT_SYMBOL vmlinux 0xd36e3a56 mmc_gpio_free_cd +EXPORT_SYMBOL vmlinux 0xd374c4c4 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xd37e68b0 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xd382a9e0 submit_bio +EXPORT_SYMBOL vmlinux 0xd3a9c729 scsi_target_resume +EXPORT_SYMBOL vmlinux 0xd3ab523a console_start +EXPORT_SYMBOL vmlinux 0xd3c747a1 qman_irqsource_remove +EXPORT_SYMBOL vmlinux 0xd3f3c53f md_write_end +EXPORT_SYMBOL vmlinux 0xd3fddb06 pci_pme_capable +EXPORT_SYMBOL vmlinux 0xd41fa3e5 ipv4_specific +EXPORT_SYMBOL vmlinux 0xd421b529 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xd42ba630 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xd43497c2 register_md_personality +EXPORT_SYMBOL vmlinux 0xd43e1f7e netdev_emerg +EXPORT_SYMBOL vmlinux 0xd4436c20 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xd4a56261 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xd4b4ad76 send_sig_info +EXPORT_SYMBOL vmlinux 0xd4d5722f ata_print_version +EXPORT_SYMBOL vmlinux 0xd4dd8e9c tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0xd5021dc8 pci_disable_obff +EXPORT_SYMBOL vmlinux 0xd51d4466 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xd52239ad qman_set_null_cb +EXPORT_SYMBOL vmlinux 0xd549a057 pci_choose_state +EXPORT_SYMBOL vmlinux 0xd54f2dae sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xd56d19df of_mdio_find_bus +EXPORT_SYMBOL vmlinux 0xd570a05a scsi_free_command +EXPORT_SYMBOL vmlinux 0xd57944d0 udplite_prot +EXPORT_SYMBOL vmlinux 0xd57c3fb1 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xd57e273f pci_set_mwi +EXPORT_SYMBOL vmlinux 0xd5b2e52a single_step_exception +EXPORT_SYMBOL vmlinux 0xd5db48e6 of_device_register +EXPORT_SYMBOL vmlinux 0xd5e8444a __div64_32 +EXPORT_SYMBOL vmlinux 0xd5f17ecf set_blocksize +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd5ff6a1d ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xd606503d register_sysctl +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd648e564 fb_match_mode +EXPORT_SYMBOL vmlinux 0xd64cc1ea xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xd66019d1 fsync_bdev +EXPORT_SYMBOL vmlinux 0xd66be24d bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xd67734db netif_carrier_off +EXPORT_SYMBOL vmlinux 0xd67b81f6 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xd683c599 pci_disable_ido +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd69b30e0 atomic64_add_unless +EXPORT_SYMBOL vmlinux 0xd6b48ded tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xd6c343f1 pme_ctx_disable +EXPORT_SYMBOL vmlinux 0xd6c6f51a lock_fb_info +EXPORT_SYMBOL vmlinux 0xd6d63e9d lg_local_lock_cpu +EXPORT_SYMBOL vmlinux 0xd6e4bb38 __scsi_put_command +EXPORT_SYMBOL vmlinux 0xd6ea6e2b security_path_rename +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7022890 bprm_change_interp +EXPORT_SYMBOL vmlinux 0xd71c413d pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xd7398ef1 alloc_fddidev +EXPORT_SYMBOL vmlinux 0xd73a95e7 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd761a383 ioremap_prot +EXPORT_SYMBOL vmlinux 0xd77a2f5c pme_stat_get +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7ad27e0 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0xd7ad6473 create_syslog_header +EXPORT_SYMBOL vmlinux 0xd7ae4568 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0xd7c49c0f xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xd7c79e99 phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd7eca562 secpath_dup +EXPORT_SYMBOL vmlinux 0xd804d386 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xd8114783 write_one_page +EXPORT_SYMBOL vmlinux 0xd8388472 netdev_printk +EXPORT_SYMBOL vmlinux 0xd83e95d9 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xd8475d8c blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xd8528ebb __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xd85833cb __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0xd881407a d_obtain_alias +EXPORT_SYMBOL vmlinux 0xd88fa86e kobject_set_name +EXPORT_SYMBOL vmlinux 0xd897f03e d_lookup +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8af0d5b agp_bind_memory +EXPORT_SYMBOL vmlinux 0xd8c72cf0 ifla_policy +EXPORT_SYMBOL vmlinux 0xd8ce642a generic_readlink +EXPORT_SYMBOL vmlinux 0xd8db2dea kthread_stop +EXPORT_SYMBOL vmlinux 0xd8ded085 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8facd00 d_delete +EXPORT_SYMBOL vmlinux 0xd8fdcfcd from_kprojid +EXPORT_SYMBOL vmlinux 0xd908c21b __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xd90fdbea __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd9498b22 proc_dointvec +EXPORT_SYMBOL vmlinux 0xd94cda80 dev_uc_flush +EXPORT_SYMBOL vmlinux 0xd95ce7db fget_light +EXPORT_SYMBOL vmlinux 0xd974f8d4 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xd97dfabf xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9989a57 inet_release +EXPORT_SYMBOL vmlinux 0xd99b4014 netlink_unicast +EXPORT_SYMBOL vmlinux 0xd9a9bb30 getname +EXPORT_SYMBOL vmlinux 0xd9b1d2cb inet_put_port +EXPORT_SYMBOL vmlinux 0xd9b37d82 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xd9b618e5 udp_proc_register +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9c5420e ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9e7ab47 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0xda2478d0 param_ops_short +EXPORT_SYMBOL vmlinux 0xda2d0397 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xda37c2d7 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda806a46 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xdaa16b82 of_clk_get +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdab7e7d1 d_instantiate_no_diralias +EXPORT_SYMBOL vmlinux 0xdab87aff neigh_event_ns +EXPORT_SYMBOL vmlinux 0xdabc1ea8 fsl_lbc_find +EXPORT_SYMBOL vmlinux 0xdacb14d3 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xdad7adff dqstats +EXPORT_SYMBOL vmlinux 0xdae5900d finish_no_open +EXPORT_SYMBOL vmlinux 0xdaf73294 filemap_fault +EXPORT_SYMBOL vmlinux 0xdb01198e fsl_upm_find +EXPORT_SYMBOL vmlinux 0xdb076820 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xdb3bb586 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb6dfdbd input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb91b380 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xdbae4eae pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0xdbb24fc2 down_write +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbd7c2f1 block_write_begin +EXPORT_SYMBOL vmlinux 0xdbdecce5 security_path_truncate +EXPORT_SYMBOL vmlinux 0xdbf9a66c d_path +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc200477 put_tty_driver +EXPORT_SYMBOL vmlinux 0xdc28e320 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xdc293d7e __genl_register_family +EXPORT_SYMBOL vmlinux 0xdc3083ea __register_chrdev +EXPORT_SYMBOL vmlinux 0xdc37952f __scm_destroy +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc415905 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xdc8b4460 simple_write_end +EXPORT_SYMBOL vmlinux 0xdc9498dd down +EXPORT_SYMBOL vmlinux 0xdca03da4 of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0xdcbe1d83 proto_register +EXPORT_SYMBOL vmlinux 0xdcc06781 redraw_screen +EXPORT_SYMBOL vmlinux 0xdcecb757 __napi_schedule +EXPORT_SYMBOL vmlinux 0xdd096859 netdev_lower_dev_get_private_rcu +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd26e94e ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd47c232 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xdd80be0e blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0xdd9f7393 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xddb40050 pci_request_region +EXPORT_SYMBOL vmlinux 0xddcfbf7d tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xdde32ce8 get_gendisk +EXPORT_SYMBOL vmlinux 0xde07cda5 dev_uc_init +EXPORT_SYMBOL vmlinux 0xde10eb10 param_set_invbool +EXPORT_SYMBOL vmlinux 0xde3f6e3e dqget +EXPORT_SYMBOL vmlinux 0xde463e0a posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0xde48e9ca _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xde6949b7 tty_free_termios +EXPORT_SYMBOL vmlinux 0xde6c3416 wait_iff_congested +EXPORT_SYMBOL vmlinux 0xde84604c kvm_read_guest_atomic +EXPORT_SYMBOL vmlinux 0xde8e2966 inet_stream_connect +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdea6daa6 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xdea85c2d pci_scan_bus +EXPORT_SYMBOL vmlinux 0xdeefc94d gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0xdefa0ad8 qman_testwrite_cgr +EXPORT_SYMBOL vmlinux 0xdefacc9e __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xdf07a093 netdev_state_change +EXPORT_SYMBOL vmlinux 0xdf13971c dpa_uio_qman +EXPORT_SYMBOL vmlinux 0xdf13f28e scsi_get_command +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf375184 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf95c4c5 mac_find_mode +EXPORT_SYMBOL vmlinux 0xdfc582a2 lookup_one_len +EXPORT_SYMBOL vmlinux 0xdfc6ce36 ip6_xmit +EXPORT_SYMBOL vmlinux 0xdfe10db4 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xdff43ed4 __debugger +EXPORT_SYMBOL vmlinux 0xdff833d4 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xe01c6e53 phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0xe043fb22 input_reset_device +EXPORT_SYMBOL vmlinux 0xe04f1d86 km_policy_notify +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe0659a0c clear_inode +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe07666bf neigh_table_init +EXPORT_SYMBOL vmlinux 0xe07c06fb vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0c8c7fb blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xe0d60591 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xe0ef10c7 ida_simple_remove +EXPORT_SYMBOL vmlinux 0xe0f171f2 inode_dio_wait +EXPORT_SYMBOL vmlinux 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL vmlinux 0xe1055326 vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0xe1107027 proc_symlink +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe12cf9d3 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xe147ab42 blk_mq_can_queue +EXPORT_SYMBOL vmlinux 0xe157f40e scsi_host_get +EXPORT_SYMBOL vmlinux 0xe1643956 phy_find_first +EXPORT_SYMBOL vmlinux 0xe170db15 genl_unregister_family +EXPORT_SYMBOL vmlinux 0xe17462c8 netdev_info +EXPORT_SYMBOL vmlinux 0xe17483ca key_alloc +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe18b9c99 __i2c_transfer +EXPORT_SYMBOL vmlinux 0xe19aadef pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xe19da4e0 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xe19f33b7 dev_alert +EXPORT_SYMBOL vmlinux 0xe1aa5d98 netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0xe1bbbd2e inet6_release +EXPORT_SYMBOL vmlinux 0xe1c827a8 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe2118e7d padata_alloc_possible +EXPORT_SYMBOL vmlinux 0xe217fabb blk_free_tags +EXPORT_SYMBOL vmlinux 0xe2180053 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0xe227bcc2 input_set_abs_params +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe250937f inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0xe25d5c9d sg_miter_start +EXPORT_SYMBOL vmlinux 0xe25e39a4 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xe2654c1f remove_arg_zero +EXPORT_SYMBOL vmlinux 0xe29e1d0e out_of_line_wait_on_atomic_t +EXPORT_SYMBOL vmlinux 0xe2af6910 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xe2be5498 lg_global_unlock +EXPORT_SYMBOL vmlinux 0xe2caece4 follow_down_one +EXPORT_SYMBOL vmlinux 0xe2cb26f9 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xe2cdc8c0 inet_frag_kill +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe301b2ae blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xe357126f tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xe35c5285 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xe38b2f29 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0xe3c9792f elv_abort_queue +EXPORT_SYMBOL vmlinux 0xe3d26ea3 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3da4846 neigh_app_ns +EXPORT_SYMBOL vmlinux 0xe3de50bd qman_destroy_fq +EXPORT_SYMBOL vmlinux 0xe3e1c55c mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xe3f1e6d2 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xe3fa7c6a inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xe3fb6cf3 contig_page_data +EXPORT_SYMBOL vmlinux 0xe3fd8c3d write_inode_now +EXPORT_SYMBOL vmlinux 0xe41469a9 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xe41531c6 twl6040_set_bits +EXPORT_SYMBOL vmlinux 0xe4482371 set_user_nice +EXPORT_SYMBOL vmlinux 0xe45c103c dev_add_pack +EXPORT_SYMBOL vmlinux 0xe46bb447 dev_err +EXPORT_SYMBOL vmlinux 0xe47867df xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xe47b71b6 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4960290 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xe49808b4 qman_poll +EXPORT_SYMBOL vmlinux 0xe4a895fa up_write +EXPORT_SYMBOL vmlinux 0xe4ad377d netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xe4cd5860 netif_napi_add +EXPORT_SYMBOL vmlinux 0xe4d98ce6 vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0xe4e807c6 ps2_end_command +EXPORT_SYMBOL vmlinux 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL vmlinux 0xe4fe8ca1 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xe5030340 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe5181c5f dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52994b7 kern_path_mountpoint +EXPORT_SYMBOL vmlinux 0xe53bf49d udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xe53d1faa of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xe55c2645 aio_complete +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe58ef300 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xe5988725 twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0xe5a0c12c __d_drop +EXPORT_SYMBOL vmlinux 0xe5a6eeb2 ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5e3d8f9 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe60308b9 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xe62dcd10 tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0xe6304650 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xe64e5f1c unregister_binfmt +EXPORT_SYMBOL vmlinux 0xe655fbc7 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xe66452ab dql_init +EXPORT_SYMBOL vmlinux 0xe664d87c vfs_unlink +EXPORT_SYMBOL vmlinux 0xe668ac7a sock_create +EXPORT_SYMBOL vmlinux 0xe68b0982 km_policy_expired +EXPORT_SYMBOL vmlinux 0xe69157af pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL vmlinux 0xe6ae7989 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xe6dd236d clear_pages +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6f7199a agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0xe6f9e605 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe6fe6932 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xe70bff0a install_exec_creds +EXPORT_SYMBOL vmlinux 0xe7110c14 netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0xe7239964 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xe72bd64e pci_domain_nr +EXPORT_SYMBOL vmlinux 0xe72c2503 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xe7388232 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0xe7575cc0 pme_ctx_exclusive_dec +EXPORT_SYMBOL vmlinux 0xe76129e7 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xe76902da md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xe77953e7 serio_rescan +EXPORT_SYMBOL vmlinux 0xe77aeba0 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xe77b941f pme2_exclusive_set +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7b0d337 should_remove_suid +EXPORT_SYMBOL vmlinux 0xe7c84014 lockref_mark_dead +EXPORT_SYMBOL vmlinux 0xe7cc37c1 genl_notify +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7da3edb simple_statfs +EXPORT_SYMBOL vmlinux 0xe7e442a3 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xe7f30941 pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0xe7f708d2 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xe82caf05 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xe831ac9b skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xe833fa77 gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0xe8354ff3 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xe83900d6 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xe851bb05 queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xe8618ad6 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xe86379ec pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xe86cea95 kill_anon_super +EXPORT_SYMBOL vmlinux 0xe882b37a dev_warn +EXPORT_SYMBOL vmlinux 0xe88b7918 iterate_supers_type +EXPORT_SYMBOL vmlinux 0xe898bfba crc32_le_combine +EXPORT_SYMBOL vmlinux 0xe8a53177 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8b82fe0 bman_ip_rev +EXPORT_SYMBOL vmlinux 0xe8bb73b4 d_make_root +EXPORT_SYMBOL vmlinux 0xe8bea3bc qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xe8d48a9f dma_set_mask +EXPORT_SYMBOL vmlinux 0xe903bd64 get_task_io_context +EXPORT_SYMBOL vmlinux 0xe9098473 simple_link +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe9210493 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0xe92a27b3 drop_super +EXPORT_SYMBOL vmlinux 0xe930370d blk_start_request +EXPORT_SYMBOL vmlinux 0xe945b95b mb_cache_create +EXPORT_SYMBOL vmlinux 0xe950499d qman_release_fqid_range +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe9585d5e vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0xe963e39a invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xe96ef063 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xe97363d0 submit_bio_wait +EXPORT_SYMBOL vmlinux 0xe978b78d pme_hw_flow_new +EXPORT_SYMBOL vmlinux 0xe9a93039 ip_ct_attach +EXPORT_SYMBOL vmlinux 0xe9b31456 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xe9b79e09 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0xe9e45d73 blk_register_region +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea0b9e36 simple_release_fs +EXPORT_SYMBOL vmlinux 0xea0cdcbb read_dev_sector +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10578b dev_mc_del +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea1540e4 __nla_reserve +EXPORT_SYMBOL vmlinux 0xea16dd4c tcp_destroy_cgroup +EXPORT_SYMBOL vmlinux 0xea432b2b skb_put +EXPORT_SYMBOL vmlinux 0xea4761e7 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xea4f3d96 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0xea5f6d4a sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0xea6607f3 pcie_get_minimum_link +EXPORT_SYMBOL vmlinux 0xea6e3003 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea8de58f security_path_chmod +EXPORT_SYMBOL vmlinux 0xea968c96 ___ratelimit +EXPORT_SYMBOL vmlinux 0xeab0819b pme_ctx_is_disabled +EXPORT_SYMBOL vmlinux 0xeada8a54 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xeb0d1770 sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0xeb2226a9 kern_path +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb3be5d7 bioset_create +EXPORT_SYMBOL vmlinux 0xeb55a931 __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xeb5b3a1f xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xeb5c881f netdev_warn +EXPORT_SYMBOL vmlinux 0xeb64f9fc bdput +EXPORT_SYMBOL vmlinux 0xeb6ab22e nla_put +EXPORT_SYMBOL vmlinux 0xeb777488 backlight_force_update +EXPORT_SYMBOL vmlinux 0xebb4e095 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0xebd450c6 input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0xebd477d8 I_BDEV +EXPORT_SYMBOL vmlinux 0xebd90b28 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebe480f2 genphy_update_link +EXPORT_SYMBOL vmlinux 0xec17ebb0 of_match_node +EXPORT_SYMBOL vmlinux 0xec1aa6ef memzero_explicit +EXPORT_SYMBOL vmlinux 0xec222963 kset_register +EXPORT_SYMBOL vmlinux 0xec3ad886 dev_notice +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec4df324 vfs_writev +EXPORT_SYMBOL vmlinux 0xec5a0246 security_path_mknod +EXPORT_SYMBOL vmlinux 0xec83fd21 security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0xec8ad421 gen_pool_dma_alloc +EXPORT_SYMBOL vmlinux 0xecc131af pci_read_vpd +EXPORT_SYMBOL vmlinux 0xecc1449e bm_pool_set +EXPORT_SYMBOL vmlinux 0xecddfe91 nf_log_set +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xecfe862a netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0xecfea528 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xed4fb3d3 dev_get_stats +EXPORT_SYMBOL vmlinux 0xed597524 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xed5b774c generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xed9f9a20 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xedb47a5a unregister_qdisc +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc410d0 udplite_table +EXPORT_SYMBOL vmlinux 0xedd22ae2 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xedf5bfa5 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xee246dff ida_destroy +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee4bbf11 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0xee542ebb bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xee70e040 dquot_commit +EXPORT_SYMBOL vmlinux 0xee7d18b8 pci_request_regions +EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb46e76 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xeebf72a1 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0xeed87379 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xeee63a33 agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0xeef161aa groups_free +EXPORT_SYMBOL vmlinux 0xeefb9e09 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xef01287a fbcon_rotate_ud +EXPORT_SYMBOL vmlinux 0xef109449 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xef37dbaf seq_lseek +EXPORT_SYMBOL vmlinux 0xef5b515f agp_enable +EXPORT_SYMBOL vmlinux 0xef682c7d km_report +EXPORT_SYMBOL vmlinux 0xefb03443 lro_receive_frags +EXPORT_SYMBOL vmlinux 0xefcbe29b framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xefd79e02 mmc_remove_host +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0187927 __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0xf04cadbf pci_dev_get +EXPORT_SYMBOL vmlinux 0xf05ffa15 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xf0619801 timekeeping_clocktai +EXPORT_SYMBOL vmlinux 0xf0638bd5 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf06caff4 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xf0738b3d pci_get_class +EXPORT_SYMBOL vmlinux 0xf087137d __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0xf0909894 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xf09de776 get_random_int +EXPORT_SYMBOL vmlinux 0xf0bab3a3 xfrm_lookup +EXPORT_SYMBOL vmlinux 0xf0cb9945 simple_lookup +EXPORT_SYMBOL vmlinux 0xf0d68ed6 clk_register_clkdevs +EXPORT_SYMBOL vmlinux 0xf0e57a9f bman_flush_stockpile +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fd4e8f rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10b33b9 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xf10ca3e7 lockref_get_or_lock +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11cd6ce down_interruptible +EXPORT_SYMBOL vmlinux 0xf12c9f10 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xf13feb57 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0xf147dcb2 hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0xf179c74d notify_change +EXPORT_SYMBOL vmlinux 0xf19388de poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1b98d40 qdisc_reset +EXPORT_SYMBOL vmlinux 0xf1ce77ac bdev_stack_limits +EXPORT_SYMBOL vmlinux 0xf1dabe28 xfrm_state_update +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e06df1 gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1ff631c serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf212c4e4 __register_binfmt +EXPORT_SYMBOL vmlinux 0xf2229d10 tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0xf222defb __ip_select_ident +EXPORT_SYMBOL vmlinux 0xf22881e8 lg_local_lock +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf2438c2e __devm_request_region +EXPORT_SYMBOL vmlinux 0xf24b979e serio_close +EXPORT_SYMBOL vmlinux 0xf253c890 scsi_register_interface +EXPORT_SYMBOL vmlinux 0xf25483ca devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL vmlinux 0xf25fbe7f agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0xf27b8a61 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xf289a225 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xf28cb5d8 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0xf2a0af8f backlight_device_registered +EXPORT_SYMBOL vmlinux 0xf2a3a1a3 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xf2b1ac8e __getnstimeofday +EXPORT_SYMBOL vmlinux 0xf2b92608 twl6040_set_pll +EXPORT_SYMBOL vmlinux 0xf2f8f120 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xf3023879 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf322a206 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf33c30b5 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34f8c99 pci_select_bars +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf364f822 pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0xf3712909 qman_query_congestion +EXPORT_SYMBOL vmlinux 0xf37afc3e ip_defrag +EXPORT_SYMBOL vmlinux 0xf381de51 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf3abf90a swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3c2da27 get_io_context +EXPORT_SYMBOL vmlinux 0xf3ca87d9 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xf3cac2b7 blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0xf3e01d21 gen10g_suspend +EXPORT_SYMBOL vmlinux 0xf403cf1e jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xf40b2297 __crypto_memneq +EXPORT_SYMBOL vmlinux 0xf415dc4f read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xf41b3e62 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xf42f968c phy_driver_unregister +EXPORT_SYMBOL vmlinux 0xf4411e51 fb_find_mode +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4449388 timer_interrupt +EXPORT_SYMBOL vmlinux 0xf4466b23 kernel_sendpage +EXPORT_SYMBOL vmlinux 0xf4adb812 user_path_create +EXPORT_SYMBOL vmlinux 0xf4b1ed60 __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xf4b7f551 uart_resume_port +EXPORT_SYMBOL vmlinux 0xf4b8444a qman_init_fq +EXPORT_SYMBOL vmlinux 0xf4bdbeb9 __frontswap_invalidate_area +EXPORT_SYMBOL vmlinux 0xf4cc90f8 __break_lease +EXPORT_SYMBOL vmlinux 0xf4de84da twl6040_get_pll +EXPORT_SYMBOL vmlinux 0xf4e5ad48 ip_fragment +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf501ed1f dev_mc_sync +EXPORT_SYMBOL vmlinux 0xf5177a3d __devm_release_region +EXPORT_SYMBOL vmlinux 0xf5222143 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xf52321e0 atomic64_sub +EXPORT_SYMBOL vmlinux 0xf5297e15 dquot_operations +EXPORT_SYMBOL vmlinux 0xf5324f87 blk_mq_run_queues +EXPORT_SYMBOL vmlinux 0xf533c91e security_path_link +EXPORT_SYMBOL vmlinux 0xf5355d1e do_splice_from +EXPORT_SYMBOL vmlinux 0xf53bd1be __pskb_copy +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf53e65a3 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xf5795c91 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0xf57f8401 fb_blank +EXPORT_SYMBOL vmlinux 0xf5984ee7 misc_register +EXPORT_SYMBOL vmlinux 0xf5a085c4 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5dfcfd2 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister +EXPORT_SYMBOL vmlinux 0xf5e762d0 d_drop +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5f06890 i2c_use_client +EXPORT_SYMBOL vmlinux 0xf6024859 blk_complete_request +EXPORT_SYMBOL vmlinux 0xf607c245 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf6587745 udp_sendmsg +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf68687be __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0xf688f930 noop_qdisc +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d8529e register_qdisc +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf70384d7 __debugger_sstep +EXPORT_SYMBOL vmlinux 0xf70f73a0 phy_stop +EXPORT_SYMBOL vmlinux 0xf7130a21 __invalidate_device +EXPORT_SYMBOL vmlinux 0xf71521ba atomic64_add_return +EXPORT_SYMBOL vmlinux 0xf72657c1 skb_dequeue +EXPORT_SYMBOL vmlinux 0xf739096e ihold +EXPORT_SYMBOL vmlinux 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf76c5673 skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0xf77a5f53 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xf781cd9e scsi_add_device +EXPORT_SYMBOL vmlinux 0xf797c6cb tcf_em_register +EXPORT_SYMBOL vmlinux 0xf7da1447 iget_locked +EXPORT_SYMBOL vmlinux 0xf7ed3e89 revalidate_disk +EXPORT_SYMBOL vmlinux 0xf7f15d84 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xf7fa7eaa bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xf7fc4d5c load_nls_default +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf806c26e inet_shutdown +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf827cb83 free_reserved_area +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82bcd77 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf83241b3 kfree_skb_list +EXPORT_SYMBOL vmlinux 0xf85f5787 ppp_channel_index +EXPORT_SYMBOL vmlinux 0xf86bf8a1 blk_mq_free_queue +EXPORT_SYMBOL vmlinux 0xf881ef9c __cleancache_invalidate_inode +EXPORT_SYMBOL vmlinux 0xf89a3d62 bman_affine_cpus +EXPORT_SYMBOL vmlinux 0xf89c8e07 ida_pre_get +EXPORT_SYMBOL vmlinux 0xf8d1489e inode_init_always +EXPORT_SYMBOL vmlinux 0xf8d5dc63 tty_lock_pair +EXPORT_SYMBOL vmlinux 0xf8dcc6e9 framebuffer_release +EXPORT_SYMBOL vmlinux 0xf8e398fc memstart_addr +EXPORT_SYMBOL vmlinux 0xf8ef46cf dev_driver_string +EXPORT_SYMBOL vmlinux 0xf9228003 get_immrbase +EXPORT_SYMBOL vmlinux 0xf926fde3 generic_write_checks +EXPORT_SYMBOL vmlinux 0xf92a5d19 fget +EXPORT_SYMBOL vmlinux 0xf933b664 swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf9407c3e dentry_path_raw +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf941bd0a jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xf9491705 pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0xf96374b4 devfreq_remove_device +EXPORT_SYMBOL vmlinux 0xf97bb97a kill_pid +EXPORT_SYMBOL vmlinux 0xf980ddcc i2c_release_client +EXPORT_SYMBOL vmlinux 0xf9878d10 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xf9899197 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0xf9943d8a xfrm_input +EXPORT_SYMBOL vmlinux 0xf9997464 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9c367e0 iov_pages +EXPORT_SYMBOL vmlinux 0xf9e682e0 vlan_vid_del +EXPORT_SYMBOL vmlinux 0xf9e73082 scnprintf +EXPORT_SYMBOL vmlinux 0xf9f2f193 sk_alloc +EXPORT_SYMBOL vmlinux 0xfa19bcf6 ndo_dflt_bridge_getlink +EXPORT_SYMBOL vmlinux 0xfa252197 netlink_net_capable +EXPORT_SYMBOL vmlinux 0xfa4191b8 register_filesystem +EXPORT_SYMBOL vmlinux 0xfa4826a4 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xfa51feb3 dquot_resume +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa6c8623 pme_ctx_ctrl_update_flow +EXPORT_SYMBOL vmlinux 0xfa7c713a ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xfa7f2b64 fm_port_disable +EXPORT_SYMBOL vmlinux 0xfa7f3156 wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0xfaa25f68 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xfaa468fb clk_get +EXPORT_SYMBOL vmlinux 0xfaa62f75 tty_unthrottle +EXPORT_SYMBOL vmlinux 0xfabce2f2 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xfac696cd pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfad4df12 page_symlink +EXPORT_SYMBOL vmlinux 0xfae67b1f cap_mmap_addr +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0e65b3 pci_get_slot +EXPORT_SYMBOL vmlinux 0xfb251f3a __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0xfb587170 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xfb596a97 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xfb646fc3 netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7c65c3 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xfb94103e __clzdi2 +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbe4bd25 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xfbf96c29 netlink_broadcast +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc083693 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xfc0f1760 release_sock +EXPORT_SYMBOL vmlinux 0xfc37c061 tcp_proc_register +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3b160f mempool_create_node +EXPORT_SYMBOL vmlinux 0xfc65459a kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xfc6ce7ce touch_atime +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL vmlinux 0xfcbc52e8 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcc752e5 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0xfcc91111 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xfcd02f80 ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf2515e security_path_rmdir +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd1e7cf6 generic_permission +EXPORT_SYMBOL vmlinux 0xfd20ea48 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xfd324014 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xfd346897 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xfd3ae04b i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xfd55f734 default_qdisc_ops +EXPORT_SYMBOL vmlinux 0xfd5deedd del_gendisk +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd76c4f6 bio_map_kern +EXPORT_SYMBOL vmlinux 0xfd89bab7 mmc_gpio_request_ro +EXPORT_SYMBOL vmlinux 0xfd8acd02 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xfd8d64e3 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xfd8f8504 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xfd99623a ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xfd9a857d ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xfdb6cedc _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdbe0288 pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0xfdc01aaf inetdev_by_index +EXPORT_SYMBOL vmlinux 0xfdc2d843 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xfdcb496e pme_hw_flow_free +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe35aa4a percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe822d55 get_brgfreq +EXPORT_SYMBOL vmlinux 0xfe8cdb0e of_device_alloc +EXPORT_SYMBOL vmlinux 0xfed21d44 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfef00935 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xfefa5775 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xff11dd9f pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xff158320 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff285942 dm_get_device +EXPORT_SYMBOL vmlinux 0xff4ca1f2 bd_set_size +EXPORT_SYMBOL vmlinux 0xff5b1f8f md_flush_request +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff6dea25 smp_hw_index +EXPORT_SYMBOL vmlinux 0xff6e5e03 check_submounts_and_drop +EXPORT_SYMBOL vmlinux 0xff6f0c2e uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff86dcb2 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xff98a896 skb_tx_error +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffa4f792 proto_unregister +EXPORT_SYMBOL vmlinux 0xffa51df3 tty_port_close_start +EXPORT_SYMBOL vmlinux 0xffb0c167 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xffb94aa3 elv_rb_find +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffff18c5 tty_chars_in_buffer +EXPORT_SYMBOL_GPL crypto/af_alg 0x153fc9b7 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x16a594c5 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x4c3eba88 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x58716898 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x677d8d92 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x6f9dbf07 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x93957c0c af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xa20f5e87 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xb71ad6a0 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xa0389ef8 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x8144cadc async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x9ec43986 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x38cf0c3d async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xc0dcd76e async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x5d548196 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x7c81f01d async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x826ccc01 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xf9e58d10 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x20ae14b5 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x20f6ad9a async_xor_val +EXPORT_SYMBOL_GPL crypto/authenc 0x587ef278 crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x3147c17d blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x27278ca9 __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x4a2a3ca6 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0xcb4847d3 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1291971c __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1e2c961f __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x63f4a041 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x8f04034a __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast_common 0x08aa6fb7 cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x0c5fbf8a cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xe39dd4b4 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0xee83a4f3 cast_s4 +EXPORT_SYMBOL_GPL crypto/cryptd 0x0263d860 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x02882899 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x0d353367 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x4318d8a2 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x5a624249 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x689df0d4 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xa00625a0 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xab2e107a cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xc06c8b1d cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xe7d114ef cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/lrw 0x3864eb66 lrw_free_table +EXPORT_SYMBOL_GPL crypto/lrw 0xcd074900 lrw_init_table +EXPORT_SYMBOL_GPL crypto/lrw 0xd4cb7df4 lrw_crypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x5ddb33e9 __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x77b39cb4 __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x7b6c3de8 serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x8a1a99ad __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/twofish_common 0x0f62991e twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x6c3229bb __twofish_setkey +EXPORT_SYMBOL_GPL crypto/xts 0x9e06f380 xts_crypt +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x16f5381c ahci_platform_enable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x21e88f6c ahci_platform_disable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x226ac93d ahci_platform_enable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x2dca2738 ahci_platform_ops +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x817cf502 ahci_platform_init_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x8aa7dc2c ahci_platform_get_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x8f5a223a ahci_platform_disable_clks +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x05b9f348 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0769784c ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0c3e6926 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0d62063f ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x15859835 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1a093421 ahci_start_fis_rx +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x26f64285 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x318fe1ad ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x36cc9f38 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x39af5130 ahci_restart_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x445e4361 ahci_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x628f0602 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x670fc2df ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x694f923e ahci_thread_fn +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6e05c4e7 ahci_hw_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8b176c9a ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8ba854ac ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x97083760 ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb37a96f8 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb5d45595 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb5f99656 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xbe96ebf9 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc30d0add ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xdeb38349 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xfafb327b ahci_qc_issue +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xccb9bf45 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xbb4af18e sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x00c10e93 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x058425d7 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x0b8c870c bcma_core_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x10810a71 bcma_core_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x18f8295c bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x2b47415d bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x413808b1 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x4a5c3f0a bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6948c2ca bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x71e3b191 bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x72b807fd bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x738cee3f bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x76eed1d0 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x8ada9a07 bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc1871c0d bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc31b2add bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xdc462e67 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xdcf8a291 bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe3ab7af9 bcma_find_core +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xeacb7d92 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xee36970a __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf2c2ccfe bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xfa682ba0 bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0c17ef90 btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x1b9fcab4 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x23d41a53 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x49126fb9 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6ff52856 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa9be7b70 btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xabfe7b5e btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xce4075c1 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xec22dea0 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf8550e7a btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x43c7c49b dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x719a1d0d dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x73d5d1e6 dw_dma_shutdown +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x082e8591 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x102746b4 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x125af2c5 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1706643c edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x293fdb53 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2d450ef2 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2d7274cc edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x51cf1b78 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5ad59417 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6c542a31 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8cef55e8 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x95df3b54 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9bc13cb1 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb83f15d0 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xba6fc5cc edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc09cf025 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc8073309 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcaac8c35 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xda028073 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe1e5c0da edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe53a8d24 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf49a4a73 edac_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf6ada778 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xf4ade51f fw_card_release +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x2517418e bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0xcb69946a bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x788e27b2 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xa64eef04 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x757c11ec drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x9f52ae37 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xf2434e42 drm_vm_open_locked +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x6adf436b ttm_prime_fd_to_handle +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xad12d428 ttm_dma_unpopulate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xb5f76007 ttm_dma_populate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xce36343e ttm_prime_handle_to_fd +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xd98c84cc ttm_dma_page_alloc_debugfs +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x09168a4c hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3092a184 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x347e72b7 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x34db6118 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3df0a2e9 hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3e717cd6 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4392bbd0 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4906a967 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4a278492 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5b74ff1e hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x65f73854 hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6ade32d9 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6b867dda hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6f8664d4 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7209434c hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7f568091 hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x87fb3504 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x88753e1b hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9199ba60 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x96163229 hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9dd693e1 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa33bc957 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa6ff02b3 hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa968ddd3 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa9d9fb96 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaa26dcd4 hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xab4fc1a4 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcbc7dacd hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xccd39900 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xccd70535 hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdc29dd46 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdf7c6246 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe1d3d410 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe30ea76a hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf51afad3 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xb9c030f9 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x451f718d roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x59e34caa roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x5bb2c670 roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x81cc51b4 roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xbbfaef5b roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xe748a64f roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x373c1a63 sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x63dceac1 sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x717b1830 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x7409f680 sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x98c1bc3d sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xa4b4e83d sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xd70b0abf sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xf2d72153 sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x44f93abc hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x08f819b2 hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x1f91429f hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x317f5e30 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x53717922 hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x6bb2c013 hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7dc0c557 hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x8302d100 hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x88cf5565 hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xb4221d2d hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xc4e64543 hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xcc845cad hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xf2673388 hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xf6d604c5 hsi_release_port +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x612a88ff adt7x10_remove +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0xe6f5f391 adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x2d5051d2 pmbus_get_driver_info +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x3cc3f138 pmbus_do_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x3f5a1ca2 pmbus_write_byte +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x4e28e74d pmbus_do_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x586e5797 pmbus_write_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x6a9d3831 pmbus_set_page +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x8f91597f pmbus_read_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xbc14fa88 pmbus_clear_faults +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xdef085a9 pmbus_read_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xdff7607e pmbus_check_word_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xe6459590 pmbus_check_byte_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xe8a57be9 pmbus_clear_cache +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x3d391c4c i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x8c4a85d4 i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x940e1806 i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x9fb7a98d i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xa4091b31 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xbcbfa0e5 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xc1d4c9f2 i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xc217bc10 i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xf0d75b57 i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x686baf81 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xbe683a52 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x59878e1c i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x7127fa24 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x2f1e7ec5 ad_sd_calibrate_all +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x3075d452 ad_sd_read_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x45f1cc15 ad_sd_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x6c151576 ad_sd_write_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xa0c9fe56 ad_sd_set_comm +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xc299b9a9 ad_sigma_delta_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xd8a11abb ad_sd_init +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xd9d61517 ad_sd_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xeefe8c19 ad_sd_validate_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x130288b0 adis_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x3bde087e adis_read_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x6ab2b84d adis_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x9578c62e adis_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x9cfd4fbc adis_reset +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xaaa46bfe adis_check_status +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xaf4ad13d adis_update_scan_mode +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xb8271b61 adis_initial_startup +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xd3ddf008 adis_probe_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xd4c228a0 adis_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xdff85777 adis_write_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xf89eb9b5 adis_remove_trigger +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x010f47f8 iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0d86f493 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0ead1559 iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x139ea979 iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x266746bc iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x267c0508 iio_channel_release_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x285ff322 iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a1fab3c iio_channel_stop_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3eb6e477 iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x44cb2cb8 iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4bc8c076 iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4d26e6d2 iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4ff5b858 iio_update_demux +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6a01fda8 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7146f7fa iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x756d9767 iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7a711aef iio_channel_start_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7be80702 devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fd263d7 iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x811e8602 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x95183d6f devm_iio_device_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x964c5d89 iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9dbb6bee iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9f6c6217 devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa5e7a212 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xac544edf devm_iio_trigger_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xafa28c73 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd7672530 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xdfded8e4 iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe0d001e4 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe14a9dc5 iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe4b3a520 iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe7b4622f iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x1727ceff input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0x4fec5049 matrix_keypad_parse_of_params +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x5b1c7670 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x37dd2a1d cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xcbe96fd3 cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xf0d0a613 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x4a8617db cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xc93307e5 cyttsp_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xe4b8ddb7 cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x1d637b7a cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x437e5784 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x166dd619 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1f37cfeb wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x23957060 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x305335dd wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x609c3e57 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x76a58945 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7b4512ed wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7d22230d wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb1882393 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xcd45fc43 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf452c6d8 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf5c060fc wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x3307ac50 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x34efaed3 ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x37edd2cf ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x52d030f6 ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x660b6a2c ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xa8f7cbd2 ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xb56ee5fb ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xd51080a6 ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xe185ff3e ipack_device_del +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x23359aff unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xce1414b2 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0224b1d1 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0a7a0c21 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x290b4aa5 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2b671854 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x316b8da9 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x47e28508 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x52f7302f gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5e81d9a5 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6237fbe5 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6d4e88c7 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x750a15d6 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x78160693 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8e031b72 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd053b0df gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd28a540c gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf1c24e33 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfe775778 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x07b5e69b lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x3fe44970 lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x83c5ae02 lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x89e38daa lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xaaa83df1 lp55xx_unregister_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xb2372031 lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xc4d37fce lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xc965ce6e lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xd6816feb lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xdf232b7a lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xdf2479d0 lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x749e05f2 ledtrig_flash_ctrl +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x7903e46e ledtrig_torch_ctrl +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x05147ec9 wf_unregister_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x0a0527be wf_register_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x0b6d727c wf_put_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x329fecbd wf_get_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x34a550c3 wf_register_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x425bd0f4 wf_get_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x54c16e43 wf_find_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x79c10d33 wf_put_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x94765fac wf_critical_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa2f19a49 wf_is_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xbcace2a5 wf_unregister_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xca44c143 wf_unregister_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xdf02a03d wf_register_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed82a14f wf_clear_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xf2b18b18 wf_find_sensor +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x10e06e97 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x155ea9c7 __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1822fd23 __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1f2ba9ac __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x260d47cf __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x27831e89 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2dec45e0 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x347aebe1 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x41c861f0 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x49856e5a __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x50e8c39f __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x574ba881 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x628eb712 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6770a402 __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x785cfc9f __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7b488fb1 __tracepoint_bcache_alloc_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x91f2af34 __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa09069a3 __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa591c5d6 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa6890b59 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xaf60c34b __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb950d2ae __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbd4b89b6 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce0e6218 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd40fba32 __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdc5ea5a5 __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf58ce244 __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf5bcbdc7 __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfc1d5275 __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfcdf28c9 __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xffc308e4 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x0c1c97b2 dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x3f88d6b6 dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x650ae17f dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x776ef988 dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xa41d4e43 dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb6d5c65d dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb70b342a dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb7e6b9f0 dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xd1b2063c dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xebd06eaf dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x22163b69 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x3909d3a8 dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x594952bd dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x62a23587 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x74dcd98c dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7c381a76 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9b2b253a dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xdc69e37a dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe004ee92 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe6024e59 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xebcc64a4 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xeca7949e dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xf2620f4b dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x4e74b44c dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x56eb79fb dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xaaa6f715 dm_cache_policy_get_name +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xabe58d42 dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xb58a52a0 dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xc3fea110 dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xfdffb9f4 dm_cache_policy_get_version +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x34943ffa dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x5994288d dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x01d2f9ac dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x09472122 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x161ca5b8 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x8dd9c1a6 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x97ab588a dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa8813ad6 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb136a56e dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc66ce277 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcab63c3d dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcfb41713 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd5ac9b8d dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf37a3cfe dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x01445176 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11eab9fe dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x150c85ce dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1cac81ac dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2025e954 dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2e730a21 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f40da68 dm_bm_set_read_write +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f74609d dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x32b5f546 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x33c03da6 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x38c75c44 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x4af5c9fb dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5e6aea80 dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x619701dc dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x62c1b9ee dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x688d422d dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x68fae9d2 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7ade1071 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7b047bd9 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x832bf228 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x858c8d94 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x89f1e1cc dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x966a8838 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9b4b5b29 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9e798e22 dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa0bbbb49 dm_bitset_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa13861b4 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa2507774 dm_tm_shadow_block +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa87c5b4d dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xaee02382 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbcfdc290 dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbd50ebbb dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbe0497aa dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca40abd5 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd041d62b dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe44b4b9b dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xead1e727 dm_bm_write_lock_zero +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xed1e1f96 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf475af48 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/raid1 0x571df510 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid10 0x4e4f0305 md_raid10_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0xf0f6e777 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x0024b798 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x40615929 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x425f0295 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x4b045b21 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7e930642 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x9c46ecc1 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xb797e8f4 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xc2ed04d6 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xd6143106 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xff475112 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x128142ba saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x351de496 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x45dc1fe7 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x56035fcb saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x593821c5 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x6143f751 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x684f00db saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x062c9d3d sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x228dd9f1 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x2c7ca398 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x2e44f6de smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x35aec6c9 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x399d1441 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x5abe91cf smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x5fac4d3b smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x63222b29 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x70e3622b smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x86968515 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9c2225ed smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xab0139b9 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb0b6ee4b sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbae06ce5 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbcd867e2 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbe7ae355 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc695e0fe smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xff4e00ca smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0x68153f4c cx24117_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0x04587486 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0x498e35b0 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x016f4f21 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x0940ded1 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x2da20273 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x2ef0cd96 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x376b9df1 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x3b6e35aa mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x3d9a0ee9 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x4a6dd3c7 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x6693e73f mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x94b9e780 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x98f4c4c5 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xcff4a011 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd33d9321 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xdad97949 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xe9bfa9b6 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xf024f9d1 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xf4c1099e mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x31b50ce2 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x42ed5052 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x51fd46b0 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x6c6f31d7 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xdbce7f87 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x0d1b7ab9 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x1360215e ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x3b81cc33 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x638fa547 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x70ca4a6d ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xbc5f061b ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xfb08ba52 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x5e1f9b90 radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xa8e2593a radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0697eddf rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x09818bff rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0c16c584 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1a148a94 rc_open +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x23b2668a rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x24ebb959 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x62c97704 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6343ed7c rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7a5feff6 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x827f2919 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x84c8449a ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x89b759b0 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9ec69fe8 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa9b2f9e4 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbf5ad69a rc_close +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc98e1f11 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xcf0b493b rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd405fd87 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xffe85f57 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0xeca295e8 mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x9ebe5b02 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0x7d294727 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0x4054d8a7 r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0x7c434455 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0xde10e0b3 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x56952584 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0xc3878ddb tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x5f044103 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x3d48351e tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x50096ba3 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x0d8b5e2d tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0xc300b89d tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x01b9415b simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x264ad281 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x2d58efdf cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5422262b cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x57a867b8 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5a523659 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5a610ea0 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5dbf966a is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x6082ce63 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x64ed30bd cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7876505f cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x983dfff1 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xaf7accd5 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xba0e01e6 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xbc331eb5 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xc386a55c cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xcf4bd8b0 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xdc796a4e cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xdcdb09aa cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xfffb9b5e cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x6723c184 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x2fb89896 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x034edcc6 em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x0a122a94 em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x17ed931c em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x1935cbd7 em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x2df01d82 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x3b16e286 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x3e474367 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x473c7b92 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x5dad5c4c em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x68c510b1 em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x8cf619f6 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x90c75255 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x9b6b43ba em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xb73103f4 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x1bd37d45 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x56e97b9c tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x5a0fe923 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xa442b73d tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x01c483a9 v4l2_get_timestamp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x4389ce92 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x976678ca v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xbf5597fd v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xd9ff5426 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xe142d89d v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xfde641b1 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x08982d59 v4l2_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x221d2fbc v4l2_enum_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x36e8756a v4l2_find_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x4103badb v4l2_print_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x53105839 v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6976cfe0 v4l2_valid_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6f344bb9 v4l2_calc_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7eaf8e7a v4l2_detect_gtf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0xb0891da2 v4l2_dv_timings_presets +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x31ae7626 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x4631cff2 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xaafaf1c7 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xf9895b18 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x17eb0eee v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x263a7474 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2ed6ffc4 v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x38472390 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x3937b65b v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x397a59ca v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x51b75ffe v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9279c5b3 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa6bd710a v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xad59cc6e v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb7784d63 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xbb34a6d4 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc589f26f v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe3ebaed6 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe6003592 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x11aa264c videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x22be64cc videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x26dbb6d5 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x29336313 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x43db1f0c videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x441474ef videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4545b4ab videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x64227d55 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x9a08d22e videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa1eafcdf videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa8a25b56 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xab9bb941 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xb2c3e727 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xca241c3a __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xcdab4f82 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd0ccd408 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd71c0e3f videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe0bde6e9 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe0cfc41a videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe22b10ef videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe574ffe4 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xef7c4c62 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf35b15ea videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xfe5f9a2d videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x70ddc2c7 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xa44afee6 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xe880438c videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x6881be62 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x78662fa7 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x960c8c53 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xafda8b3c videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xb85fcc7b videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xc80149d8 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xd5e7cd63 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xee53512c videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xf052eeed videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x235300c7 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x6e3ff0c5 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xf6ca56b1 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x03a52fb1 vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x08967718 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x0abbb3c6 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x139f2b82 vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x13d6d60b vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1c4906dd vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2786887d vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2f2a0dfb vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x540c65ba vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5444e521 vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x54e339f4 vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5e21058b vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x67e0cc54 vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x755289d1 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x82720370 vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x878e9e02 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8a78c84f vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8f8e5ff2 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x9865e259 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa3cc4c01 vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xab4e365c vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xad5d4591 vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb1c90b55 vb2_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb5469a8e vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xbe5a4867 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xcf46b8ea vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd436f757 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xdf161cdf vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe7f5c3da vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xeb148a08 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf0f287a4 vb2_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf553ab79 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf8efc4cc vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xfff9a2f0 vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x7eaf9244 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xd391420a vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-sg 0x6989cdb3 vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x09c0ae27 vb2_get_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x44b70be7 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x935d856c vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xa2debeff vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-vmalloc 0x2bdc11c6 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x09e5e931 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0b2e00dc v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x17585d1d v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3a4b17d1 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x49b356fc v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x526ba037 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x53b0b0c6 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6dcd1781 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7a4c5e33 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7b6e6248 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9180eaa7 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xae2eaf80 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb136602f v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb18d3802 v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb6eb42eb v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc2b2cf6a v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc48a9f11 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd36a1589 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd631e9d3 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe0205eeb v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe0870b05 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xedb65a26 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf4540901 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x06978e8f i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x0e64ed63 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3af849e9 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x472f37bb i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x4a47fc13 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x8a7ac1ae i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xfaf437ba i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xfb4bc1fe i2o_dma_free +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x0837f508 pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x8f776dc1 pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xca1de0d2 pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x1b5b1288 kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x3b1f6d17 kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x42c6906d kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x45fa2b77 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x4a510cc0 kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x4a8ed32b kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xb119ffc2 kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xeb1306f3 kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x00811afb lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x86845415 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xf6faf9dc lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x300b9c4a lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x4ee0f667 lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x619fb8ae lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xab111bf3 lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xd4306adf lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xe4ec1049 lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xf0ba6056 lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x1aa31f93 mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x5b477bca mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x9c6bcb9b mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xcede75d3 mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xd6e813b7 mc13xxx_common_cleanup +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xdcd180bb mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2d3a1ff0 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x37cf270b pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x38b99728 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x512be31b pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x58a7919e pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7f46b927 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x959df1a3 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa0bbf6bf pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc9465f4a pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcd648682 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf86ce9e5 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x0aac3009 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xf5634eef pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x848c814e pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xc63c5733 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xd6c25699 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xef6f3c82 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xfe9f5a6b pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x01a33234 retu_write +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x4fca3918 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x15283771 rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x329c066f rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x38dd4b83 rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x43197e52 rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x439641f4 rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x44dd415c rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x4c87538c rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x51ed772b rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x554f53c0 rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x7bbff25e rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x7d809528 rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x8489a54f rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x8efe9eda rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x9f49948f rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xac277732 rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xb1fc3ab9 rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xb7b955d0 rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xbea1112f rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xc77de655 rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xca20e9d7 rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xe6213a41 rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x036c15bf si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x068e73b9 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0ea5fb03 si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x165226cc si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1b63361d si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x233e6f63 si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x252993d9 si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2ed41037 si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x33b906ae si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3e196710 si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x41c676d4 si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x424754fd si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4abf505d si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6fd56c7c si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x72124258 si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7b2b7a6f si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7d2cb2c1 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x823e9494 si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x82f258d6 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x83d117a6 si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8a5d0a20 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x95bd8d7c si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9c2be412 si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa4583f3a si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb92b41a9 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xbc57c488 si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc137b212 si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd1e0f695 si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd8ac4bdb si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe2b470d3 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf7777667 si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf8d16a11 si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf9eb76f2 si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xfe0d3f06 si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x334e3dd4 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x55f4aad8 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x576ffe6f sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x738c0d1e sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf00aaae3 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x21c0322b tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x662ecfb1 tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x95ceec97 tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xb3c795b2 tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x4362dc66 twl4030_get_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x9effbf1a twl4030_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x111468b9 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x2e859295 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x39ccde5e cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xadf4f5cc cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xc111fafb cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x27cb133b eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63 eeprom_93cx6_wren +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x822222db eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x98bb5a22 eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x13e48bb9 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3eed52a0 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7ab84941 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7d16ec6d enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x9128a98b enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xd0a66c11 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xf5af8146 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x08e36262 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x18041598 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x1fd707bb lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x2b4fbe5e lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x5787dd9e lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x58203a3e lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xdaab8b93 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xe257b1f3 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xb517bfde st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xe67d0a2e st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x157d352e sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1f822608 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x23ac57c7 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2cb06a98 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x3d450620 sdhci_disable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x4fe2b204 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5319b861 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5a262eba sdhci_send_command +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x7daaf5d0 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa8c57ffe sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd30d6b16 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x0723d23f sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x0bd77fb3 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x2b417cd8 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x48d861c4 sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x4e11c78c sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x79661c33 sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xefc9eca3 sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x5414c619 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x9623c667 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xa90ae38f cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x74fdcd32 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x870402b4 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xf9564964 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x275917fc cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x04a2b4ef cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x340454c9 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x98b751b0 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0436ca3e mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0cd3ce13 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1533de43 mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1d343721 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1d69b92d deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x281e214a register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2be10417 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2c1b2667 mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2c3cf3e6 mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2e0b7e85 mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x31593e64 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3306a826 mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3b41e774 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4f150f59 mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x58f1ccbc mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5d069014 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6e76f0f8 mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7346a4c0 mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x75cdabd1 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7c0f40ef mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8a765169 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x972e27ec __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9db57fc3 mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xae3f5926 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xaf71cd01 mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb1abf096 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb8622632 mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb90b93c9 mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbb603163 mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbd918ce9 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc2682298 mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc643fa8f mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd62adf5a mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdaf06a0e mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdea33208 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdf31904d kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe4e0ea2d __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xecc137df mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf881a191 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfa4a02b6 mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfc367e8e mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x127d3f42 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x42759ee3 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x6f8f659f add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xbb7204e4 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd3833eea deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x0b3b8b7c nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x71031e5c nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x642b819e sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x854b69fb onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x944378cf onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00f00fef ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x22543e2a ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2e191ae9 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3f99971a ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x50abd303 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x64d33548 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x690467c3 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x76ac6fb3 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8668762b ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x98187c97 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbf0f633e ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc330e011 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xef5b292b ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x23d78580 c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x65ecf10f unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x8f590d20 register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x9e47fbdd free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xcde6d42f alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xea2a087d c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x116fe142 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x222c295a can_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x303f8704 can_led_event +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3d73fb30 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x61d312ff alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8879cc39 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x931b9d8c safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb346573b can_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd29803b3 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd6d04005 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe59bf2ee free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe5b35841 devm_can_led_init +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe849103d can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xee40eab6 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf06d9814 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfd4edc31 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xff1c5ef7 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x9c5da6eb unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xe31b11b4 free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xeb063e09 alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xfce6b06f register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x21adbd2e alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x2272f26c unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x4a54ea9e free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x89497ac9 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x2cbcf551 macb_ioctl +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x425ebdc0 macb_get_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x7e2d2dff macb_ethtool_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x7f55f2b8 macb_mii_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xaedb6826 macb_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xca0fc524 macb_set_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xeafc473a macb_get_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x036e1500 __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x03e698dd mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x03f68833 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x063e6af3 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0be93c2f mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x11143f98 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13d8d877 mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1659416d mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x17111231 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x17f7ac12 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x183bbc13 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18d2d6f1 mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x19a10a49 __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1bd0822b mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f37cfe7 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x232e8606 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x246722e6 mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x257a612d mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2df21e3e mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f6237b7 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x35f45c4e mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3d161298 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x41cf9d7a mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x43695b0d mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x462e5283 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49a53c5e mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4e8bdefc __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f3c5e08 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x509963c5 mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x50a4d5a0 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5291d26a mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x52b26751 __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5527153e mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x59e505bd mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5a4e18b7 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5da2b031 mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f5e85e8 mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x68d77d1d mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x69f7ecfa mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6a937cf5 mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6ef1ad03 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6fa9a14a mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7214dd54 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x74a48d8b mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x76b9da41 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78f27122 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79f30f68 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79f86070 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7bb05d29 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7cb9e8cd mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7d3d58ae mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7dd70f4e mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7ec1342a mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8506c4f5 mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a6be87a mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8ac99bb9 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x91d759a2 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9228bb36 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92398537 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92ffbbf8 mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x93621f8e mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x952acd6f mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa1313a50 mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa5150396 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa71d910f mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa72a1255 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaaa87759 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaac1d063 mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xac785a7d mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xafd17770 mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb339469a mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbe091ac7 mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbeb373af mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc43eb5e1 mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc5b6e999 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc61e9b7e mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcbc85150 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc92dac1 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcd43d9e7 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcfb80e66 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd19814cf mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3be5da6 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd49931e4 mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd50b9dc2 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd7559f72 mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdadbda4c mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdbbc1aad mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe1279a6e mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2f7b5c2 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe647a33d mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xebaaaeb1 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xec4b582c mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeca1cfbb mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xed6ef789 mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeded1c0d mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee05af3c mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee107ba8 mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xef29a6c3 mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf1167f45 mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf89938e5 mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf9f1c3c1 mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfa429b9a mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x07288be3 mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x20ca723b mlx5_create_map_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2d7e8643 mlx5_core_xrcd_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e1c9e7b mlx5_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x34f2c8b6 mlx5_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4871c7ce mlx5_core_eq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x59356502 mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5b9a8479 mlx5_core_mad_ifc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c0fae91 mlx5_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ee0bdf5 mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x791f89be mlx5_core_create_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a468078 mlx5_destroy_unmap_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84e91b4e mlx5_core_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcedbad59 mlx5_core_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd4912480 mlx5_core_destroy_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6c4ef56 mlx5_fill_page_array +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xea8bc19a mlx5_core_qp_query +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x1f9cd366 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x22489a8e macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x28f62bf5 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x3a6adcfa macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xe34f0590 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvtap 0xd54ea244 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x20bec34d usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x2d21018d usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x776b709e usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xfdda5825 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x19603b54 cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x1bc6f625 cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x3f1a7dbb cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x46c3c91e cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x66c29f92 cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7a5c90f4 cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x9e86e9b5 cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xc0a9132e cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5b177dd6 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x7f5f301f rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x95eb60f9 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x9dcd16e3 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xa57ad514 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xdc2f6c6c generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0ae1b485 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x15bdc5d3 usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2bb6e271 usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2e3f6fc2 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2fee864d usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3aed5c75 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x43b0205c usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4fbd01f0 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5329366f usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x580ee20a usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x586c4cf6 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5b276e70 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6a752d21 usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6af3b27d usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7404cbdf usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x765919e7 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x799ccb27 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x85b422fc usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa31d600d usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xad0e046f usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xad33b59b usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb14ef463 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc2d940e7 usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc444ba9a usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc5e363de usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd7feda09 usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdd16273f usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xde2d538e usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe2dbd60d usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe338a079 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf46188a8 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf49c82b9 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x6e308365 vxlan_get_rx_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x8cca7c24 vxlan_sock_add +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xaa6321b5 vxlan_src_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xadfccf95 vxlan_xmit_skb +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xb5f139d0 vxlan_sock_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x18675ed0 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x36931ffc i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4a9fd96b i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4ebb6f9d i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x595d125f i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x60cc3188 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7bc5eadc i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x934be7df i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa73f9037 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa94165f8 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb46b5ded i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcd5e4ba9 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcf1fe8a2 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe2e02122 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe4869783 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfe8f81f6 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x1e8aa06e cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x229888de cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xa2b36ab3 cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xbe86cd36 cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xdf9eb02d libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x308ba9bb il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x3103d021 il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xbfeda698 il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xce1ca5ee il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xd1cb9883 _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x0d556623 iwl_abort_notification_waits +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x1291ef1b iwl_init_notification_wait +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x1ac36ff0 iwl_notification_wait_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x28cb66d9 iwl_phy_db_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x35033c81 iwl_phy_db_free +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x35483fff __iwl_crit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3d548dab iwl_remove_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x430dff93 iwl_opmode_register +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x4d417894 __iwl_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x582ee919 iwl_poll_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5c52e109 iwl_opmode_deregister +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5d0a212e iwlwifi_mod_params +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x62c1d71b __iwl_err +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x6a653b34 iwl_set_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x6e0122d4 iwl_clear_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x776221bf iwl_send_phy_db_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x7b3801a6 iwl_parse_nvm_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x89b1529d iwl_nvm_check_version +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8b42e06e __iwl_info +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8c5d5ab3 iwl_phy_db_set_section +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x9177e8a0 iwl_poll_direct_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x98b24bad __iwl_warn +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa06deaa9 iwl_set_bits_mask_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa316189d iwl_write_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa5e4b2ce iwl_read_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa66c41b3 iwl_write_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xaa6d08eb iwl_wait_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xbcc98167 iwl_read_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xc18bd543 iwl_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xc67c31ed iwl_notification_wait_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xe740d092 iwl_parse_eeprom_data +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x329f90c4 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x35e16486 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x460d4061 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x59b7c9c3 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x610d6a29 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6b2dba12 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x712bb74c lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x97507fea lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x998fbaba lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbdd21718 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc0f397ae lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xce690f00 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xedc089c5 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf23e99e7 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf95d3ad0 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xfd4fd3a7 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x40a74afb lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x41d6c4fa lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x8c9b9a68 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9fe5db62 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xace0ba62 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb01ed4ed lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd7520010 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xeda6a975 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x589615b3 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x948af5dc if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x034870c2 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x0a24817c mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x1170461f mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x15f84baf mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x15ffbf1a mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x253770bd mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x2a42aa29 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x3120a642 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x534e3c8f mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x66d1afe3 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x800360de mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x9447c6d1 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x9cf54795 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xaa6c7e4b mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0b7025ff p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x21ab3ed3 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x25747fc8 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3fe12023 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x6fa75e6c p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7b3b7d1a p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x83c59bba p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x8f6532e1 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xcda4aa90 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x013492a7 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x06856edc rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x09ac50ee rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0a18dcbe rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x17633d7e rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x22d2281b rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2377d380 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x31e319dd rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x375f8620 rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3f5f7a67 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x40a2e59a rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5ccab56e rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6334e3ca rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6533c23c rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x71c09ff0 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x80c0937c rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x81fe62dc rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8699a770 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8c3bdeea rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8d02e724 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8f62f6dc rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x945b5fc2 rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9d59b277 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa26436bd rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xae618704 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc256e284 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc907aee3 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xca18fc5f rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcb2593c7 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcfcdd854 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe0eedcab rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe560e0e6 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe6301b17 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe7726107 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf36616c9 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf382af7c rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf611da7f rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf9602787 rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x096d8205 rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x0fad1430 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x2505789d rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x46f22b9b rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5da0e508 rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x613b5c7e rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x6cc85678 rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x8185fd6e rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x83e0a950 rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x92c0bcd1 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xb19a0212 rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xb579f7b3 rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xbde625d7 rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc375d6c0 rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc3ac5901 rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc6a1455e rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xe28f94c7 rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xf707bc18 rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x00c3e4b7 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0153b44b rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x018c1967 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0b658718 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0f3180e0 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x13bc8859 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1b04331a rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1caf63e0 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x214de5f3 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x23ed3ba1 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2464d02d rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x274888bc rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x28f510d6 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x35acb39c rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3a3c86ab rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3a6f75c3 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3ad39534 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x43738d37 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x450bc01d rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4fb274ce rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x54f89f1d rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x554422be rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x56884020 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x585c83e6 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6078ca2f rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x63e0d71b rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6574c4c3 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x65cf3ff1 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6a1f6640 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x82f380b4 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x96b31e57 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x97c3aeb1 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9d0e0ae4 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaca2a122 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xae2d0bd8 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb3979147 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb9befaf3 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbbe2777c rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd26aca9f rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe40c53df rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe537a41e rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe5ec1c14 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe789754e rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xed7e06b4 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xee5d32bc rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf41cd8dd rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x06b2e3d3 rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x261b508e rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x4a3d6300 rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x6b8cfebc rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x939931eb rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x57093021 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x6e8f74b6 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa6cf8b20 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb60f0756 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x39588c84 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x469bfa7a rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4b504628 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4ba8fc20 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4cc6dad9 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5f75aeec rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x75d376d6 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x76823ddf rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x830ed190 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x86c0ad63 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x905ec9de rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x949cc8e3 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9839375e rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xad415168 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xae369451 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xeac80fa7 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2856427f dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb1e3bc2f rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb87ad0e6 dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd4ef7196 dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x02afa8ae rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x0e9470ef rtl8723_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x1ff8e334 rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x25dc4c24 rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x270e6d8c rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x42358f83 rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x446d1b08 rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x447f1773 rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x44efbfc4 rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x4fb17016 rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x66640888 rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6fee3a6c rtl8723_phy_set_sw_chnl_cmdarray +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x81dd6215 rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x851b02d6 rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x859613cd rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x898f8ee8 rtl8723_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x89dae319 rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x9edf8f96 rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xa0f31703 rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xaf4d6d94 rtl8723_phy_calculate_bit_shift +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xcd632810 rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd0b50d91 rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd831eb84 rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xde69c06b rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xe0a1aa2e rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xe43e2fde rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xf149da17 rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xfa195327 rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xfbeac252 rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x023cc09b rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x05b9935e rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x0d0b6636 rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x16e06eda read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x1f32de96 rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x227c4ac6 rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x241dedc1 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x3a4c8f1c rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x40da8a74 rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x53487746 rtl_attribute_group +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x72146960 rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x72cfe0a7 rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x904d013c rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x966bca4b rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xa02e0260 rtl_dbgp_flag_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xa2e2c087 rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xcf057e97 rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xef9e15ea rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf8ff6add rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xfd8c3018 rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x57bfb482 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x823cdcd0 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xc7d004a9 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0519fdf3 wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x05294fba wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x07810311 wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0ea9ad92 wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x24a820f4 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x294526bd wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x29709ae6 wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x44049d48 wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4dabe157 wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4fddb8a7 wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53ff27ad wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x575994ee wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x589646c4 wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5eb4d8db wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x63f5a9e7 wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x64259a7b wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x79e8631e wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8809d76a wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8876e776 wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x91154b5e wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x94d8f2b8 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x967d2f82 wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x96b94803 wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x97e55fb8 wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9bc4e7db wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa7c6fcb4 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xaa1a934b wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb004861d wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb0c871bb wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb5e9cc42 wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb85fc4e6 wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc2230351 wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc50c0e54 wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc6005883 wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc7e95e1a wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd5b58648 wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd7ff401a wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd9cbb7fb wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe511eb48 wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe8b980cb wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xeed98366 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfa7900ea wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x11d4b5b7 phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x1f8595a2 phy_pm_runtime_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x3e97acb0 phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x3ea2ca3d of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x4b43fc76 phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x4c187f60 devm_phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x533d797b devm_phy_destroy +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x58a8be9d devm_phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x5eac3439 __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x60b2642c phy_pm_runtime_allow +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x68391d05 phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x6e203b28 devm_phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x718b38cf phy_pm_runtime_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x9641f0a0 phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x9c32685a phy_power_off +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xa47dca42 of_phy_simple_xlate +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xa610a0c1 phy_exit +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xabb32fb2 phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xb53e12df devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xccaddc1a phy_power_on +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xd876f287 __of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xdfe8c6be phy_init +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xe1e91572 phy_destroy +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x74e75dcf pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x752b87a8 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xbf1809f4 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x1319e6a6 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x17b48351 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x39b12e04 mc13xxx_parse_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x9e273af2 mc13xxx_get_num_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xb26367ae mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x172467ea wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x43878029 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x4bc5996e wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa1be3a00 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xad0eee5e wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xe8c07f90 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x31deb9a6 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x02287c3d cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x048a62a8 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0e313a42 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1ab13cd6 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1cc21949 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x218d6b99 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2bed47ea cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2ebf163d cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2f3b622b cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x309646f6 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x41f0d8b8 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x428039fd cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x448ea5ff cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x45647142 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x45ce05b4 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x47bead14 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4b2dd8e7 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4b96232e cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5056010d cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x55e9155f cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x62efa8e8 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x667fe2e5 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6d562321 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6f1be39d cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x72bcefbf cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x77264164 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7d932da1 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8481e1d1 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8998f8ba cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x96a86eeb cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa390a72e cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb60433e1 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbef43e78 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc75ba80f cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd30784b1 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd6b1e634 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdafb0811 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe224b551 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe7abcfc9 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xeaaa3fb6 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xeef832e8 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf3bc6eb7 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf8c9be01 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfd4732d1 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x138ff535 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x1c902830 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x3fc6d77a scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x9446c017 scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xa3de68b6 scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xa81a7817 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xbe5ce31b scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x24b1b083 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x2a86c19d fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x32f4baa2 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x68849019 fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8f4fad9f fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x955c9918 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xbb3cdc16 fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xce3f25a5 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xce4dcfda fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xcfcc43e0 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd1d99f3f fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe1e64e85 fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe302b0a2 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xeb5fcfac fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf028e63b fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xfaf22e35 fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x043f0157 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x235b4feb iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x440f4909 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x698e578f iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa3be482e iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa9a15a53 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x01ac7727 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0680a34c __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x09988f20 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x13580559 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x13724b56 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x16b3df53 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x183d59fa iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1d95b744 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2a47dd6d iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2ff48c2d iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x35960fcc iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x36bc8539 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e58ca7e iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x462fb5a6 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x49656902 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x66485b7d iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x686f8b6d iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6acea9e0 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6b0d45db iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6bc099b9 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6d7e2870 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7543ed02 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7800461f __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7ef01422 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7f4bfae8 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9f1d3f7b iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa2c9508b iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa37e9ea8 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa8682907 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb4fd162a iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb518d93d __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbd05d10b iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc180414d iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc5e562c0 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcae8dd92 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xddf61ad7 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe19e442a iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe3ff1e11 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xed641b39 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xee4707fb iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xefaaf27e iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf0763b12 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf8423006 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfde928fd iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x10689ca1 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1cbf1621 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1ec3e1d0 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2081499e iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2258d3ba iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x28e43dd5 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x341932dc iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5e6ab091 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5f1e3b28 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x692f6314 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6dbd84d4 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x91b5f76c iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa0ca2e77 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa694d726 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xadfe654d iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xaf558b18 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe0f84c0d iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0e8a29e8 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x12845d4b sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1b692aa6 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x276f6f71 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2c233193 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4168b6d9 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5a8887d2 sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5cdff25d sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6411e4d6 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6bf79d38 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x70f27927 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7239a2f0 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7604def6 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7d00377b sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x804a5153 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8d7af851 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9b12b184 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa0f8e8b4 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xafd63cfb sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc60b0160 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcaaf80e7 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcfe878de sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd2845485 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdabb9152 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf1965402 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x1e2403e2 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x72d3b699 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x8e61cec4 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe40b545d srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xebb2961f srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf1e2907f srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2eb4adb7 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x32e2e40a scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x49aeb294 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x49dabef5 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x71a76d85 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7edd52d6 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb26866c0 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xbef1abe2 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xfaa29e7a scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x07ac67c2 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x07b91c7e iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0eb0c8c8 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x210057ec iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x26382c8c iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x32ad269a iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x392cf2d1 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x408eec69 iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x41d5ad3b iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x42cce1cc iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x48df8c86 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4f0c3099 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x51cdfcce iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5ae7bd33 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5e6ea8fa iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x64d7bbfc iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x68ba632d iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x69d4c4a2 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x718eccdf iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x720ef1b4 iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x736edb26 iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8c74f35b iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8cc42407 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8d982185 iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8ea83986 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x97cb992f iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x98ea6026 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9f212c10 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa05a3f7d iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa62df512 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb9ce7353 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbc35948d iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc39cd69e iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc7670a01 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcd8427e1 iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd6ae5375 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xee1865c2 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf6414cbe iscsi_is_flashnode_conn_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfe05e029 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfeeb3ba5 iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x05e7973e sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x7508add3 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x7bfd640e sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xc59ca019 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x25b60cb9 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3ea912d2 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x5c41fdf7 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8c302805 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc75c28fe srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xee891cc0 srp_tmo_valid +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x2c519d8b ufshcd_resume +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x2e76a4f8 ufshcd_remove +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x39571c18 ufshcd_suspend +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x5bd898a8 ufshcd_init +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x9e3d392f ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xf2050740 ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x2608b70b spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x5c68514f spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xb76b0c63 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xc60c1af9 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xe9eaa283 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x0969fe37 dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x2afbeaed dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xcf4d3e3e dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xd980b34c dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xed0cdcf3 dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0xd2a762f0 ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x07dd693c comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0f4e0b2f comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x15af8070 comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x161b2300 comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1718ba69 comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1a7411fc comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1bde556e comedi_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x281d0dd8 comedi_buf_memcpy_from +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3f152506 comedi_error +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x43e2ee8b comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x44e242b3 comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4b8e33b9 comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4ea90957 comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x508fb519 comedi_pcmcia_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x57798d43 comedi_pcmcia_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x589ffe07 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5965f1b3 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5ac3940f comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x73cd23a6 comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x74ebc4c9 comedi_buf_put +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x75087fe9 comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x779c1f48 comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8397742a comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x86e5eb09 comedi_to_pcmcia_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x88cd1741 comedi_event +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8a0d0f09 comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8aa84c9a comedi_buf_memcpy_to +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8bd04209 comedi_pcmcia_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x94c2ddca comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa1836735 comedi_pcmcia_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa1efc21e comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa380b641 comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa548a286 comedi_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa6c1a25e comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xaa5b7eda comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xac33a7b5 comedi_pcmcia_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xad35b5b3 comedi_pcmcia_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb4985871 __comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb7639fce comedi_buf_get +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbc48e4f5 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd1c1515c comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd348161f comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd429c903 comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf1df5052 comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf64ce33d comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf7985977 comedi_dev_from_minor +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfb5ec04a comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfe034956 comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x16af7e22 subdev_8255_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x79a81abc subdev_8255_init_irq +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0xd57d1a1c subdev_8255_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x6deb4f56 addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x291a44b4 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xa8436fee amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xd7c41793 amplc_dio200_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x2006c942 cfc_handle_events +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x29c57a28 cfc_write_array_to_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0xe3b36bba cfc_read_array_from_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xcb87dc51 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x107cf35f mite_get_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x16fcec8a mite_sync_output_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x34f8a292 mite_dma_tcr +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x413af1fc mite_done +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x4e7b4483 mite_buf_change +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x4eabc058 mite_bytes_read_from_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x566bcda5 mite_release_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x6499ea2e mite_bytes_written_to_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x64bb5a68 mite_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x69fe44f3 mite_prep_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x85b01918 mite_unsetup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x93329ca2 mite_free_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xbaba4eae mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc19c0800 mite_dma_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc9e37dc4 mite_setup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xdd26c2be mite_bytes_written_to_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xe40cdc5f mite_setup2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xe77fb085 mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xe89d0af5 mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xf44e0d3f mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xf5984270 mite_sync_input_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xf714e8c8 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x144019d8 labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x085ab4ab ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x3c2267df ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x440713af ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x48e39b61 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x80955ed6 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xabfcff96 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xc57597e2 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xd1ce3f17 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x1efd1c25 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x2d479287 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x507b2661 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x85a6e0bb ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x9488d4de ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xfc9117d9 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x372f8d98 comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x7d783887 comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x7fed5c97 comedi_open +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xec55f983 comedi_close +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xf1cfe42d comedi_dio_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xf2580dc6 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xfaaade66 comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x2206b003 dwc2_handle_common_intr +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x34adda78 dwc2_hcd_remove +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xb05a818c dwc2_set_all_params +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xe4926146 dwc2_hcd_init +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x1a1b5249 oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2feda75b oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x3227a28e oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x7dc9dddd oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xb2c66001 oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xc8b5a524 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xd370f679 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0xbd5a0e51 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x05e49583 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0ef1d765 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x20e5ba06 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x3f8674da spk_serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4d427f2f spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x5c70aa6b spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x62806207 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x647c502f spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e047868 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xac9db0f0 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb35aaab9 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbdc53b78 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd1b551a2 spk_get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x43a0f43f usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x5173be54 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x560e856a usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x6c4d578d usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x6ffaf845 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x7d7fcb64 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8e18597a usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x90a1af04 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x92b7cfe4 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa3608af7 usbip_recv +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd71ea22d usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xdb091b6e usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xf9c1c87b usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0xe198bdbe pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/uio/uio 0x5fbac65b __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x751eaa15 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xa1008ab5 uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x6f87a617 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xacff2ea5 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x528a5b25 ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0xfaf2fa4f ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x170e9bea imx_usbmisc_init +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x74750d38 imx_usbmisc_init_post +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x030de2a5 usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0570b280 usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0c08ae76 usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0c3aa978 usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0f5d2fb9 usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x159dfb28 usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1e223d1e usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x25527979 usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x36d7ceb0 usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3a196851 usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x48c0404e usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x53bcfcd9 usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5423e2b6 usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x59854cc0 usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5f3ea3e2 usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x608601e0 usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x674a5f98 usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x67b44b3f config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x78f5b171 usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x94d7075a usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa24d7102 usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xbd5610f7 usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc0d7115a usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xdb3a0741 usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xdb7805aa usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe223169a usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf232661f usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf7cf6d25 usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x1ef97162 gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x1f61d87a gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x8e27d6de gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xf1981607 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x06272d31 usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x1e2ac37c udc_attach_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x5afe022a usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x6ca66567 usb_gadget_set_state +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x970de445 usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x9e1cd937 usb_gadget_map_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xba33b99c usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xcfd20db7 usb_gadget_unmap_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xd97064ff usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x0a5230df fsg_common_set_nluns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x141fce2a fsg_common_remove_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x1ccb58f7 fsg_common_set_num_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x2d10b6a7 fsg_common_create_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x51707c29 fsg_common_run_thread +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x69c28eac fsg_common_set_cdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x6acb4179 fsg_common_set_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x7e26d4a5 fsg_common_set_sysfs +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x99023bfc fsg_common_put +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9a0221c7 fsg_common_free_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9dc025a5 fsg_common_free_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xa46e6443 fsg_common_get +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd2d2c26e fsg_common_remove_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd3ae3b65 fsg_common_create_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd468f882 fsg_common_set_ops +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xe4d1591e fsg_config_from_params +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x44304ed1 ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x5e0cf9a6 ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0509e549 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x1b120ba7 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x33875c98 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x33b8f7ad usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4ab9fb32 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x695c0522 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xa73174c9 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe6253ba7 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfe91a5f4 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x528e3954 musb_interrupt +EXPORT_SYMBOL_GPL drivers/usb/musb/tusb6010 0x00fe5039 tusb_get_revision +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x10dc888f usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xce5f39d4 usb_gen_phy_init +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xda6019af usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0xe2a7d162 isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x294eeed6 samsung_usbphy_rate_to_clksel_64xx +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x6c17ec51 samsung_usbphy_get_refclk_freq +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x8fb4a816 samsung_usbphy_parse_dt +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x975960c1 samsung_usbphy_set_isolation_4210 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xd7d6d853 samsung_usbphy_rate_to_clksel_4x12 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xdf2c4fa5 samsung_usbphy_cfg_sel +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xf8885697 samsung_usbphy_set_type +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0xaf1c65cc usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x174ed124 usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x178661b8 usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3c839142 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x479a2e1c usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x630d4942 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x710037b4 usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7125d16f usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7447801b usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7a342c96 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7d547be5 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7e89b47b usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9575c5e1 usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9aa830b8 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9db71bf3 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa79b83e9 usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xab969826 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc68a1d7f usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe0026bb1 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf44febf5 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfc3d6ffd usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfe7d837c usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0832290e usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0d266dd3 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2ec509bd usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2f7f74ed fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x33f850c6 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x342ca741 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3864443b usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4df2dedd usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8b633b84 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8dbcc1da usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9582e5d6 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xaef19f2d usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb12c684f usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbd3d1928 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd040854f usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd35f2737 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd74f4447 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe6bba045 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe7acfec2 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xeeb26c63 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xef40ea24 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfb42884e usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0148403e wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x68a0298c __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x8376f553 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x87276130 rpipe_clear_feature_stalled +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xb2e8e84a wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc543b60e wa_process_errored_transfers_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xfb6797df wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x11d3ed43 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3a3767fb wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3c320d58 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5083f99d wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5f66e7aa wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x624a3f3b wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x65f91865 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9907ffc4 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9d76ecfa wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb10448eb wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xbe6353a1 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc01b4e02 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe547f49f wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xea0b05b3 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x6c3b1d9d i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x7c0855e1 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xff0f027c i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x0032b92b umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x416ed86d umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x54e086bf umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x6cce6600 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x866cad7a __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x891c5ed1 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8c24ee6e umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe79f32d8 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x01a2de5d uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x04e69396 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0ada51f3 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0af56811 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0db6917e uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x143d7f2e uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2376701f uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x24bebe12 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2fe868b3 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3503efb3 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3e7e1e25 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x51485077 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5807ff56 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x62c1e188 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6631b4e8 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7cb1ccf3 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x80d3ae08 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x82a65a84 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x83dd6ac2 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x866ca6cb uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x86e430ee uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa026588d uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa1afb940 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa3219ab6 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa4e6bb96 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xada917b8 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb1180d3c uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd5ee2d18 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd6657ac7 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd8ebd7df uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xda0182c4 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdab73267 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xde11bf31 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe296e72e uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe9e8416e uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xecffe57f uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf9f85c4c uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x80c0bbcc whci_wait_for +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x02ea98ee vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0ec5ff9d vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x16033763 vhost_work_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1d168a55 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x269f7a09 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x28048de6 vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2966e074 vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3729aba4 vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4308b147 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x581092f4 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x58953459 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6f0bdfc0 vhost_init_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7412750a vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7513f0c9 vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x78a6577b vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x85d94bf6 vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x8809aa6f vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x95925b19 vhost_poll_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x96d552f1 vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9d5f75de vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa7b5201c vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb0f81e37 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb482fe44 vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbad7829b vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbf51b242 vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc6e33f7c vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc7bdd803 vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd60001db vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf0099ad2 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf29ef20c vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfa8b3d0a vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x0c0390de auok190x_send_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x15aaa431 auok190x_send_cmdargs_pixels +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x2fe4bf5b auok190x_read_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x77456f7f auok190x_send_command_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x8524eca5 auok190x_send_command +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x8a6c162e auok190x_common_remove +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x99952795 auok190x_pm +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xbe2d5a43 auok190x_common_probe +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xc900e75e auok190x_send_cmdargs_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xde76a610 auok190x_send_cmdargs_pixels_nowait +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x6bc90567 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x74328654 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x84ac093e ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x93e70fd2 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xbf35d25a ili9320_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x8c3d8920 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xe1f579af sis_malloc_new +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x89044677 unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x89a2d2bc register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xd36334ae unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xe358cb82 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xf028ae74 register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x2b698bd3 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x31ce6644 vring_transport_features +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x5674e1eb virtqueue_disable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x56d8aa37 virtqueue_get_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x5e94e837 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x5f4282eb virtqueue_kick +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x69c5c190 virtqueue_notify +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x75d9148d virtqueue_enable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x8403bf9c virtqueue_add_sgs +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x91c626ad virtqueue_add_outbuf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xa7b9e02e vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xbd8efeb5 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xc24b2be4 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xd6416ca8 virtqueue_is_broken +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xd7fba972 virtqueue_add_inbuf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xed2cbc1d vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xedefa5b6 virtqueue_kick_prepare +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xf9893870 virtqueue_poll +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2c131160 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x5716f2ac w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x586d398e w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x62a03e22 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x6f8bdeaf w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa7fbe761 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0xcb05b2ff w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdcdb282a w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdcf5c1ed w1_write_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x631a3871 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xa23e0bdf dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xb4314e22 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc6dc8c2f dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1166a599 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1d493d65 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x23c6c371 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x522267bf lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x628f310d nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7893f61c locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7eb30ad8 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x94919885 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf924b327 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x02108235 nfs_file_splice_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0322d8dd nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x050a5a4a nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0675cde9 nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x080eefd1 nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x097d1ece nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x09d36045 nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0a957f83 nfs_pageio_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0d2d1926 nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x10fac19f nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1162a499 nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1340c2db nfs_try_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x15d4f0c8 nfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x16418318 nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x17ff1dad nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1da618f4 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2021d276 nfs_file_fsync_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2368f96b nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2832b27f nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x284f094e nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3360a496 nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36db3dab nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36deb6c4 nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ca31f35 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3cf70a98 nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ec84d45 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4078a254 nfs_pageio_add_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x40b35d3b nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x41602e69 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x421bb9cc nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x43048b44 nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x44efdff1 nfs_writehdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x461e7b44 nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x48d36a8d nfs_set_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4a335a0d nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4aa0b110 nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4ab347c5 nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51292811 nfs_put_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51d47321 nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x540d0061 register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x540ff922 nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x549f03d4 nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x57b0c217 nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x580dd394 nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x585294c6 nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5d332a5f nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5d9ea801 nfs_file_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e1d863a nfs_sockaddr_match_ipaddr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x622ea794 nfs_generic_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x628272e0 nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x646a6603 nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x66d7e1f5 nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6881620a nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x695eeede nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6ec0e195 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7230b044 nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x76dd0ab3 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7709f25d nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x79529e62 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x79e847ca nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c8b103c nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7dba3897 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7e7a3959 nfs_readhdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7f84f5dc nfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x80d52878 nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x835f2156 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8553ffe5 nfs_probe_fsinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x865c9fc9 nfs_fill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x86e65af6 nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89bc5a64 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8bbf7b7a nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8c3d9dec nfs_pageio_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9009939c nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x92e65092 nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x940dd15c nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x964a8791 nfs_setlease +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x96eecb99 nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x98b17122 nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9e9a6643 nfs_readdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa24d4ddf nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa2de6ce7 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa4bdb9c4 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa525c09b nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8d2d1ce nfs_callback_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaa96dc3e nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaaa14361 nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb04e511d nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb1b270f1 nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb1f4425d nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb21dc1f7 nfs_destroy_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb4d4366a nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb606e716 nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb6a5d403 nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbabcfa95 nfs_fs_mount_common +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbb850565 alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbca090cc nfs_generic_pagein +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbfb42d79 nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbff9dacb nfs_file_splice_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc15b29ee nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc3d35451 nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4545dfc nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4686b28 nfs_clone_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4c4f3e6 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4ff1e9f nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5ef47d5 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc7590297 nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcd12ef30 nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcfaf6985 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcfb7f979 nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcfb9a05c nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd236b689 nfs_fs_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd23ab0ed nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2457ac0 nfs_remount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2c1169f nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2d946d8 get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd4e88b39 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd52bd6f6 put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd533eacc nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd7533b27 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd79dac48 nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd85a3e5c nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdb9a17e6 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdd4b7664 nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe3af0945 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe6fdd5c4 nfs_writedata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xea01b63f nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xec6d4138 nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xed2f2105 unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xede3707f nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeedf2192 nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf00e9d46 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf283ccfc nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf43b5752 nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5fb54d0 nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf6cffed6 nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfb7ee006 nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x05553ac2 nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x09135109 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0afcf972 pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0c4e750c pnfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x11bda27c __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1624172b nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x170f3ed6 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x17579fe5 pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1deeb193 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2187dac1 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x246a009a pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3406feb1 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x373d642a nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x374bd486 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x453de607 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5067280b nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5090c091 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x566d7874 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x56d14c87 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5941a4d4 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6038593a pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x65e4babc pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x665fa50e __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x678ca959 nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6d3cec28 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x75cb716d nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7ba0ac08 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7dacf780 pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8afe2ce9 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9c5b338b pnfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa4a14489 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xae210a7f nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb8903227 nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc18c1826 nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc311e331 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc49b5e0e nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd04aa13a nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdb620719 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdb813e84 __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xeb30a8f6 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xebfd6990 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf0cd6eb1 _pnfs_return_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf24e9380 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x18a7d14c nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x1d31a617 nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1284bb21 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1fd34cc2 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4224a79e o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x644764b4 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa3bc4d1e o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xac01c0b3 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xcbccb6ad o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x14d292fd dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3dd12711 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6938eb8c dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6c3334a7 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xad900c25 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xe8a92246 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x386f08ec ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x66b3bcab ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xc845fce0 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x69f4d508 notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x86897308 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x021957e1 raid6_datap_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0f8a2742 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x201d8ea3 encode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x29fa419f decode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x0867c15e garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x0e7d5f33 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x1e3e113f garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x2607aa74 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xaaecdae8 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xb2860aba garp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x228d2f63 mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x375ebc32 mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x63d3651f mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xe23f239c mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0xef063f47 mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0xfb2794e6 mrp_register_application +EXPORT_SYMBOL_GPL net/802/stp 0x3caeb6ba stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0xe5e6c1bf stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x9d1b7df5 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0xab121623 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/atm/atm 0xb09faf79 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xcfb6a3da unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x37598deb ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xb99cc42e bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0ee67b0b dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0f1a248a dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1b6ef3a4 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1bf3a492 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2476fbfa dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x29d8a05c dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x361ef431 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x39ede3f6 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3c89a34b dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3dea24b8 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x55eb00f4 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x574d5deb dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x576e1405 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5fc6337d dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x645143d6 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x71db8a27 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x82caa8aa dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8502c3b6 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x914a11d5 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9193ab65 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x91da1922 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0xab150a72 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb675e2d8 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc2c372ae dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc40104ba dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcb9916bb dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdc6dd7f6 dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdfebddf0 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe231ccf2 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe836a59b dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xecaa0670 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf15ccca5 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf71e6e30 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfba9c5bd dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xffd8809e dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x61a370bf dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9033faa8 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x96cc1a29 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa2f8d787 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xbbe0c381 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xc0b4efbc dccp_v4_connect +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x746c0027 unregister_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xbeb21697 register_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x1525bea7 gre_cisco_register +EXPORT_SYMBOL_GPL net/ipv4/gre 0x394c1ea3 gre_build_header +EXPORT_SYMBOL_GPL net/ipv4/gre 0x65a896cb gre_cisco_unregister +EXPORT_SYMBOL_GPL net/ipv4/gre 0xa2d7f170 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xe1fa90fb gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x275117e9 inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x50484664 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x9fb93db4 inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xa08aea2c inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xb828c0ef inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xbff426b3 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x0465976d ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x09b0226d ip_tunnel_get_stats64 +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x38ccd6a8 ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x3ec17a83 ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x4716d224 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x5de338ce ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7d81ba2e ip_tunnel_delete_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x93f76179 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xb513d3d8 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xb6a92f20 ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xb9826faa ip_tunnel_ioctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xe440b460 ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xeaec93a5 ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xef220e9e ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xcbcfc778 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xf527ca48 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_ipv4 0x60431600 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x612eb5d1 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x696a01ab tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa83af8ad tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd731631a tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe280d394 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0x78b24a88 xfrm4_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0xd5f1d2dc xfrm4_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x1b8b1776 ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x6de19815 ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x97db9d0d ip6_tnl_dst_reset +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xa883344d ip6_tnl_dst_check +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xfd2824e6 ip6_tnl_dst_store +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xf8e5ab3d ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_nat_ipv6 0xcec994ae nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0x17205b32 xfrm6_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0xa16bdb8e xfrm6_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x02e6181a l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x163c098a l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x29206ea5 l2tp_session_queue_purge +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x30abf594 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x39ead710 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4685ba8e l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5c943ba9 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x71b30cd4 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9d965a58 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa0340bd3 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa7bf6cb4 l2tp_tunnel_sock_lookup +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xaab7457c l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xaba53e3c l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc564871e l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd3bd76ef __l2tp_session_unhash +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe613f9b0 l2tp_tunnel_sock_put +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xea18883a l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0xf980c169 l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1d8b14d5 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x238af617 ieee80211_iterate_active_interfaces_rtnl +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3663a36d ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x44959d17 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4bf42798 ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x588dd582 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5a8116a5 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5d38f601 ieee80211_set_key_tx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xae75d5b8 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb13a8985 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xba5ec02a ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc5da105b ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xcf2ede6a ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd691526e ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf5ae3fc7 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x059b0092 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x12986b2c ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x1f3063a3 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x479c01e2 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4bdee581 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x508cf3a3 ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x51fd2178 ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6344eaf6 ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x72d0c7a6 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x91f50a09 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9455a327 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa1479b88 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa3916832 ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb03f6dd4 ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb059229c ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe63fb87a ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe6c780d2 ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xef13ebbe ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x3ed98594 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x87146726 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xceee9e52 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xe66f1979 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x00358982 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01b1dee8 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01f84db5 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x04df60a8 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0acd73ca nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0aeda686 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e69735e nf_ct_l3proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0f055c9b nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x10a8f16a nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x14d66dee nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1c8d4775 nf_ct_l4proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1f699897 nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x230288d0 nf_connlabel_match +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x232d91f5 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2600f495 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x26da598f __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a113197 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2c512485 nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x320bc83b __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3225ba4e nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37386cac nf_conntrack_hash_rnd +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37f2f0e8 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3d44dfca nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x42acb063 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x42c8bdd7 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44443deb nf_ct_l3proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4cbe9f24 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d27a237 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x52a99ed8 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5bc9b10c __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5cab0df9 nf_ct_timeout_find_get_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x60a78ed6 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x678c1a70 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6bd49b69 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6ee15516 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fff8279 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x709ad2e1 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7183da63 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73edda49 nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7929ebd9 nf_ct_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a97f60f nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c864141 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d9d7a76 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fa422b1 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8076ec9d nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x843f053d nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x925b9cd3 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x988ecc85 nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9aeab327 nf_ct_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9ff66ed3 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa06863ac nf_ct_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3e23bd2 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa7b2944d nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xadc00c51 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xafa339a5 nf_ct_l4proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb26a5534 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb3d6ba58 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb42d323b nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb6eef960 nf_connlabel_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbddead55 nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc2bc2d27 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc2cbae89 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc31ac4bf nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc7009b36 nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc96ec85b nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf9fd2ac nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd0df1c04 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4978694 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6a6f137 nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6cf853b nf_ct_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd8501c5d nf_ct_timeout_put_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdaba6a9c nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xddd2c6a4 nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdff5ebac nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf7328126 nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf79c442c nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfeefd7df nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xff31f9b8 nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xffa2014f nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xffbc6f04 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x7e685b37 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0xe3739c15 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xbc072d18 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x04278b5a get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0c8dbbea nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x35c35404 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x37d038ad set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x706507a8 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x73210c2f nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9036a85a nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa609a35b nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xdbf7ca7e set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe4d35b57 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xc8b9d92a nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x2b41c840 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x74362363 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xe3ece128 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xfaf5d366 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xdbfa55f4 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xf3220282 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x294fa651 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x544e69a9 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7cac6849 nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc118cf33 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd2b3211c ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdd756619 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe2505a74 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xc1bdc79c nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xc30157db nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0d9bae4b nf_nat_l4proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x1250876c nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x131f636c nf_nat_l4proto_in_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x23ad73f0 nf_nat_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x4accf683 nf_nat_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x5e7a36c0 nf_nat_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7dc6ee27 nf_nat_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7e6254b9 nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fac7406 __nf_nat_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xcd2c744a nf_nat_l4proto_unique_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x11a006b5 synproxy_check_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x5b95b19d synproxy_tstamp_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x5f339439 synproxy_build_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x90298227 synproxy_init_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xb42e336a synproxy_options_size +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xcae406d2 synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xef7db50c synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x059c1a10 nft_register_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0fda3c99 nft_validate_output_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x2498815f nft_data_uninit +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3d49dab7 nft_validate_input_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5025035e nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x518ce61a nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x53b1aba4 nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x54f507d8 nft_unregister_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x6ee55c58 nft_do_chain_pktinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x903ec43b nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xb808691f nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xc9c8ca96 nft_validate_data_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xcfec4f32 nft_unregister_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe4543c5a nft_register_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf9d05b4c nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x00f9219a nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0a0feeb9 nfnetlink_alloc_skb +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x258d7867 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7fa8259d nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8023751d nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8634d990 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc9564cc5 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x14a1e76b nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x21f6bba6 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x894bc636 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1dff29b7 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x68c849dc xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6c01e61c xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6f64b186 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x764c04f0 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa5ed948a xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb2534aaa xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb51f4d89 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb6ba2d33 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb96a1d63 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdde13857 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xecea4b0d xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfd9bb3b4 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x00204983 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x482b6a12 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xa8b3b6ec nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xdd3eb814 nci_spi_read +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xefae0f0e nci_spi_send +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x20ba1f4e rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x39737b1c rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x3d3fa302 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x3f134130 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x46b9f7c2 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x4f9eae1b rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x6700a1bd rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x6ac3863a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x6ad5588f rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x6b36be13 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7d3d36c0 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x7f07cade rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x80232457 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x83be55d8 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x94486b75 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x95247dfc rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x9b81e6c9 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xb7b911a6 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xbd5d9c36 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xbd7ba532 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0xbe83f70b rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xdd1d7b1f rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xde4c02da rds_trans_register +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x4926164a rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xd59da03c rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3b81924b svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5e48d82a gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf6a8b74b gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0132253a xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0138e8ae xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045834e9 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04bc3f0e xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x063cc859 rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c947b51 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0cb5e683 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12523c4d rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12ce88b2 rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19a26600 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a1be796 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1affdc86 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b56f377 rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d43785f svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1dedb9d0 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1edd4329 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x206374ff rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2065530d rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20661b81 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2074b167 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x221c15c1 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23c3487d xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x255e4785 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2563b848 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25a84c31 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x272c018d rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27ac5511 rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x290a4422 rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a48d980 rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b35f553 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b81ff38 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d6487cd rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ed645bf svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x305ad86d rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33c9fbc8 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33ecfd04 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34511195 svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35448c65 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x361e692d xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3646fb52 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37c2921b svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x382a2ce4 cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x384f9228 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3862c024 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3977aff9 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a103213 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a40aa70 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40a1a044 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41b7e5f7 gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x441fa4f1 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x473ed044 rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a2459f4 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ad765df xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4bc6f10e svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c27072e svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c810f74 xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f966406 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50849680 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5092badf sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5122be91 svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x522ed0df rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53e40e04 rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56bdc086 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5881d323 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58a608c5 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b55fcaf rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bb8926a rpcauth_key_timeout_notify +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c02da54 rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c0769be svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d123cc9 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e05dff3 rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6006a07c rpc_protocol +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60520e06 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63cd4e31 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x652bdaf9 rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66cdf67d rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a0ac379 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6af1d49f rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b2ed48e rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c2d593b cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d59543e auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x713213ec unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x729f34aa __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x734daaed svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74fd451f svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76fed917 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7708ced9 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77458cc0 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78280939 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78f7b379 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a510a2b rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e53abba rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f2f5303 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f8c8be7 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80951b28 rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84443e46 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x848d8b4b rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x881aad1d cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x881ca497 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c3e3c29 rpc_get_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e7896b9 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9132fb0d cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x91c212f4 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x922d8d6d rpcauth_cred_key_to_expire +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x928ddafe rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92c095a9 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x939033b3 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94652491 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94caa205 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x961a7a39 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x961bed2f svc_shutdown_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b75d64 rpcauth_list_flavors +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9af80c8f svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e6e20f5 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0682333 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa256f5a2 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4c02650 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6ec6135 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9398d5c rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac49e136 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadaa1d0b xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaee7c941 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf9e64b7 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xafe25c36 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0151e3a xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb015f9f9 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb04ea22b svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1dc48c1 rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2536cdf svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb66ded2c xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb7327044 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb7ae424a xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb87cc508 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbbdb5c6 sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbf2d153 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbdf2149e xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbea9105a rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbec8846e xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1290dd5 rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc25b8506 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc43f318f svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc665d0ec rpc_rmdir +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc67044d7 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8d49acc rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca078993 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcab2b2ee rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc5924ed xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf13e01b rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd04b66ca rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1b471eb rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd25f511e rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3108302 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5d6d44d xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd683e5e3 xs_swapper +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7a08742 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7ac52ef xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8387da9 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdaac93ef xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb1f937f xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc412c6e xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd34666f xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xddc9692e rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ac2bb8 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe253e73e xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2bf6846 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2c80d43 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe33f539f xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe446a774 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe45bb893 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe51fc8fa svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6ce4bf4 svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe82cdaaf rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe98a674f xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea3e9e1c rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb2b8165 rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeca16cec xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee1967a9 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee55973d rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee9dd5d5 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeee51d2 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2063772 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2f3bdea rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3c94442 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6a5c264 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7d2692a xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7e30457 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa74a69a svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb5a54b3 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd88f97d xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe2cfc2a rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0c79d5ef vm_sockets_get_local_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x131f8abd vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x15c0c57c vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x1915d8e5 vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2663cb64 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x404b131e vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x43daa8e2 vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x722a8843 vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x74e91915 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x751ff010 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7f730c80 vsock_core_exit +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x82293d12 __vsock_create +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x92694e4c vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x95aaa75b vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xb7867b6f vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbc7d51c7 vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd0f699d vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc8179d4a vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd49ebffb vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd95ac116 vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf593c40a vsock_pending_work +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf637bf38 __vsock_core_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x05fcf99a wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x07b70323 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0fe9bea1 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2bdb3a64 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4adb6ab2 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x5258677e wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6ad28bdd wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x918d908e wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xaae47bd6 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb6a9c513 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd2abe561 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd79f4cb6 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xeaf7df6f wimax_state_get +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x04548cf2 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x263de0c5 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x29f6bb84 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4ef68e99 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x50568c71 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x511eae4a cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x626b041b cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x66f22c33 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6fc9fcf9 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9aa8d359 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa1800851 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00778770 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x056bb269 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0a575945 xfrm_count_pfkey_auth_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0b9e5852 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x74e1a843 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7a8ca627 xfrm_count_pfkey_enc_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7c30b8c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x92dbc6c1 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xbc8b0f41 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xce7a55c1 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe122af95 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x0807acfe ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x1c733492 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xd420243a ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xe96cc001 ipcomp_input +EXPORT_SYMBOL_GPL sound/core/snd 0x3ca17104 __snd_printk +EXPORT_SYMBOL_GPL sound/core/snd 0x4906d396 snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL sound/core/snd 0x66060576 snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/core/snd 0xb7f424eb snd_kctl_jack_report +EXPORT_SYMBOL_GPL sound/core/snd 0xcca2beea snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0xcf2b8e1e snd_kctl_jack_new +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x9b165832 snd_compress_deregister +EXPORT_SYMBOL_GPL sound/core/snd-compress 0xba93821b snd_compress_new +EXPORT_SYMBOL_GPL sound/core/snd-compress 0xd2c72b34 snd_compress_register +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x04e1b99f snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x09e913c1 snd_pcm_alt_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x3e27bf98 snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xbcb27e43 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x0056922c snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x753a271a snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x82b67019 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x8aad97c0 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xc84b9ab2 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf9044d0a snd_ak4113_build +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x06d506f4 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x079a9069 snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0bb52c8a _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e2464b2 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x11c17cad snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x13e81d88 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14572352 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15b13289 snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x17052d03 snd_hda_parse_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d17f46e snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2111ab02 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x23edb85f snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x24922e6f snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27614e8c snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x28f2b8b5 snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2b9c4a87 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2be5fbbe snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x303dc27d snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x32217d3b snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33929672 snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34387522 snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3447dedf snd_hda_jack_detect_enable_callback +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x35410518 snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a6fc206 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c1efe12 snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c38e8d1 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3d450141 snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4381c1e2 snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x44af4482 snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x47058aba snd_hda_gen_spec_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4a18701a snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4a4bc5f8 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4cd901b1 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4e03cc9c snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5091b877 snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x51ec9d74 snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x52c7a10a snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x537c68e3 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x55af53ff snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5651e98a snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x56b90682 snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5760a2ea snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x578540fb snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x57927e80 snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x57f70f46 snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5990393e snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x59cbce29 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b8a65c0 snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5bce2316 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5dfb01b0 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ee05f69 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x60ed067e snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x63569c44 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x63c08727 snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x654b4a72 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x685b2618 snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x692c4d47 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x694ec21b snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6a2326e9 __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71b630d3 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76dc6871 hda_main_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x77260b91 snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x780ba6cc snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78ea7e78 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x79d4a1b6 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7bec1049 snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7bf6dba6 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7e53daee snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f411f1a snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8070a963 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x819c3874 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8243ce23 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x82bfdd40 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x837067b0 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8473fcf1 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84ba6884 snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84e29bfa snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x865c6695 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86635f93 snd_hda_parse_generic_codec +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x87029e59 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x871a6e44 hda_extra_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8855e5d3 snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b581279 snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4d3225 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x919a6563 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9243dc2a snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x932135f1 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x958dda67 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x97511ca2 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x983ac1f0 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9defc1f8 snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9f91a9b6 snd_hda_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa0cd926e snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa0dda271 snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa3cd3a13 snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa7d1430f snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa861d322 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa9aa9a41 snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa7d2dc0 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xacd0853b snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaee54c04 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb1f5cfd6 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb28f231e snd_hda_codec_flush_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb2d5371b snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb5aa18c7 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb619693b snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7125a82 snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7a05977 snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7d8ea6e snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbcaa1d12 snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbec16b20 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf33db3e snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf478daa snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc00d2d34 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc13b5b22 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5b8e409 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7787f7b snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7dd30d5 snd_hda_jack_detect_state +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd79bc78 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xce773ea8 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd031006a snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd2d6502b snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd384d5d3 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd53138df snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6c4afca snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc368369 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdfd528e8 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe0408c96 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe118de5d snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe16f8a0e snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe27af463 snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe3450a1a snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe49b2725 snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8235c38 snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8cdb01d is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeb9d1bd1 snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xec38905b snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed250c3c snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf08d7299 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf0bb7f13 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3383a7b snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3982685 snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf39fefed snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3e687a0 snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4ad6839 snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4c27ef0 snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf97f598e snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa233d61 snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfc410a40 snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd211c56 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd4d4e6a snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfef76105 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfff9847d snd_hda_get_nid_path +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x2b837854 atmel_pcm_new +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x904e5064 atmel_pcm_mmap +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x965ae55c atmel_pcm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00211cd9 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x014066d7 snd_soc_get_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x02aa509f snd_soc_add_card_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x050c2e15 snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06dceffb snd_soc_of_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x08413c30 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a408bf3 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a60775e snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a924c0c snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0cf9a9e8 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0f0826e3 snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1047a84b snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x11689ed0 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x12e36bc4 snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x13e07c0f snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x193920f4 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x20ccab40 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x25028aaa snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x25794030 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2638a742 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x271774be snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2928a53a snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29cce125 snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a2a48d7 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2ab4138a snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2d02ae39 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x309fcf19 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3417ccff snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x37553c5a snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x37560005 snd_soc_get_dai_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c95f566 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3d0774e5 snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3eb53a1d snd_soc_bytes_info +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x41d17407 snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x44115592 snd_soc_remove_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x45a55af5 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x47ebde88 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4cd452c3 snd_soc_unregister_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4e45e646 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x526a3aae soc_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52fcca44 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54776a88 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x58ffe1a2 devm_snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x593cf7a7 snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a299ff6 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a5a1a80 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5c0b06a4 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5d13f78d snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5dd8f7cc snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ee6f734 dapm_regulator_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5f68f933 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5f8f7ce3 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x60ee4f43 snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6150089f snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x625ebbda snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x677f1c61 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x67b8bf77 snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x67c7c93d snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ba68f50 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78bb1c16 snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78d6b3cb snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7996e18d snd_soc_dpcm_be_set_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7b67d01d snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7bbc9391 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7bbec8f8 dapm_mark_io_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ee453ba snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7fc3a287 dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80b55601 devm_snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80ebaf9b snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8573a56d snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x872364cc snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87bc8651 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87cab789 snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87f24004 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8812d720 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8897f848 snd_soc_add_codec_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x88d3f8a1 snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x89a640e7 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8fd2e744 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9024719d snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x91047f7d snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x912d2d43 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9239121d snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x925b1eed snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x93900bd7 snd_soc_dpcm_be_get_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9551504a snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x979c0cf2 snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x97e68b4d snd_soc_bytes_get +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9bc1d8c7 snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9df54a05 snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9e001570 snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa2818e53 snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa4cb0fa0 snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa6c110ea snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa78f3a7b snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa944f7da snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa9e8c3c5 snd_soc_bytes_put +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xafae2ed2 snd_soc_lookup_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb4b788c8 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6092d1e snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6d9288c snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xba96cf3b snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbb636812 dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe147aac snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbf922e51 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc10fafae snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc1e6ef1e snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc2788ed1 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3378cc5 snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc38e3382 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc654c919 snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc7d7acc2 snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc86369b9 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb268e96 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcd3b1281 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcde1e0a0 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcf7dbea2 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd269d409 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5a01329 snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd7ed8c99 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe0103ed1 snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe19a4a08 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe331e943 snd_soc_add_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4239b24 dapm_clock_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4b9c30d snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe75dc8a2 snd_soc_platform_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xea5e4038 snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeba7dd10 snd_soc_dapm_kcontrol_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf085818e snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf2db74d5 snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf6767bb0 snd_soc_put_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfe31a694 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xff197933 snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xff634e03 snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_file_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x001839f3 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x002d005f tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x0040d407 debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x008647c7 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x009304b6 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00a3fefb stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x00a91f8d free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x00b31ebc sysfs_get_dirent_ns +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00f1de78 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x010dcb5e pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x0112b91d ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x0165d8ce pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x0195fba9 btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0x01a3c307 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x01ad30d5 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x02068f8e crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x020bfe97 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x021949bb ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x021ebfda btree_update +EXPORT_SYMBOL_GPL vmlinux 0x023b78ee sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x023b9aeb preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x026ab55c regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x029c0c11 dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x02cce240 fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0x02eced5f pci_reset_bridge_secondary_bus +EXPORT_SYMBOL_GPL vmlinux 0x02fc3fc2 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x03277bf0 unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03462c03 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0x036503c5 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x036a9113 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0x037ce0d3 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x0388e8b7 pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x03bf1d5e gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03e51f79 ata_sas_port_async_resume +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x045b452f of_clk_get_parent_count +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x0468bed0 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x047341a0 sdhci_pci_o2_resume +EXPORT_SYMBOL_GPL vmlinux 0x04897aeb usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x04920877 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x04961630 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x04b5549c __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x04b89e9c rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04cf646d kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x04fd0ce4 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x053deaa5 sec_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x05496f75 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0574d249 regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0x0574f68d usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x058b582a vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x05a2cc54 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x061dee59 btree_remove +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x062ee722 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x0633c893 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x063904c7 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x067881dc relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x06b1caa9 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x06c05665 kvm_read_guest +EXPORT_SYMBOL_GPL vmlinux 0x06e4519b extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x070064eb crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x074c6e16 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x075676af dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x0762403c edac_put_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x07661720 pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0x076f0ca3 regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x077f3435 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x079109eb single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x079b3f95 regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0x07a33d8b mark_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x07a34a31 kvm_write_guest_cached +EXPORT_SYMBOL_GPL vmlinux 0x07ad0171 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07c3ebcf irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x07df1128 rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x07f300c3 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x085329fd sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x087ae0c8 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x0887efb9 kvm_release_page_clean +EXPORT_SYMBOL_GPL vmlinux 0x08bcf9c2 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x08c47386 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x08d39542 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x08d8b5fd rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0x08df741e rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x08f36ba9 xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0x090526cb file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0925543f da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x0932a071 tcp_peer_is_proven +EXPORT_SYMBOL_GPL vmlinux 0x09437748 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x09469482 kfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x0957d1f0 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x0962d0e8 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x099e6e8a irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0x09cf9965 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x09d96251 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x09da6201 nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0x0a3c15a1 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0a757661 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x0a7b58b5 kvmppc_kvm_pv +EXPORT_SYMBOL_GPL vmlinux 0x0a9dd867 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0x0a9fd3c5 gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x0ac449e8 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x0ad2db31 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x0ad8c644 thermal_notify_framework +EXPORT_SYMBOL_GPL vmlinux 0x0ae1fdb6 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x0af916f6 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0afd4610 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b090ba2 iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x0b14dd90 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x0b15f77e pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x0b1921d3 iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0x0b26e8c9 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x0b59390b __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0ba50c8e platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x0bd4ebf8 subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c136a50 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0c1c3628 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c432085 device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x0c48f357 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x0c900ecb rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x0cac53d4 wait_for_tpm_stat +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0cce0227 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x0cd38807 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x0d5706da xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x0d6a6b46 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x0d706d2e rh_set_owner +EXPORT_SYMBOL_GPL vmlinux 0x0d70f7e4 irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x0da5a8c8 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x0dbd0e20 of_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x0dcbaf89 napi_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x0dce0a25 kvmppc_hv_ops +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0de06988 cpu_first_thread_of_core +EXPORT_SYMBOL_GPL vmlinux 0x0de56548 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x0de99629 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x0df82907 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x0e00d950 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x0e0af088 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x0e1cabd6 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x0e3606cd regmap_update_bits_check +EXPORT_SYMBOL_GPL vmlinux 0x0ea13946 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x0eae36a1 dma_buf_kunmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x0eaf4fbf sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x0ed7a55e regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0x0ed9302e percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x0ef02ac0 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x0ef1207a blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0f0a7676 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x0f1d0908 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x0f751aea input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x0f99482d usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x0fad44f3 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x0fb1ce1a ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0x0fb2b395 css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x0fb36b9a cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x0fc01e9f static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x0fe112dc of_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x0fe6da1c rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x0fedb0bf palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0x0fff6c12 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x1008575b ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x100d10b4 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x103d99e6 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x104f3b45 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x10821eae ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x1084bd2b devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0x109fb17a arizona_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x10b08c68 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x10b7fd8c i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x10c174ea scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x10e28355 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x10e9817d n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x10fa59fc list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0x11082182 dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x1114011d threads_shift +EXPORT_SYMBOL_GPL vmlinux 0x1114bb2c scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x11238ad1 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x11286b7c sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0x11a55489 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x11be4ad3 trace_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x11cc7bef ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x11e57fd7 netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x1214a72f __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x12161036 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x121cd964 of_pci_range_parser_one +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x1220f90c pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x125e4019 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x1261fd00 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x12771051 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x128964b3 pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x128c669f usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x129bb5bb xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x12af7854 regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x12ea64be device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x12f9f87d usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x13282b90 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x1366e063 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x136a4ee6 btree_init +EXPORT_SYMBOL_GPL vmlinux 0x137079c2 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x1370bf81 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x137908fa xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0x138b8558 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x13921363 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x13ad55fe tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x13ad647f scatterwalk_bytes_sglen +EXPORT_SYMBOL_GPL vmlinux 0x13e0328a pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x13e5ea13 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x13ed1f68 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x142a8be4 of_clk_get_parent_name +EXPORT_SYMBOL_GPL vmlinux 0x144d9402 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x145296b0 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL vmlinux 0x14610679 cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0x14a40eea kvm_resched +EXPORT_SYMBOL_GPL vmlinux 0x14a74b54 regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0x14f0b6c6 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x14faa9cf dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x15233337 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x1525514e regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x152cbab7 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x153fedc5 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x15464628 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x1561eaef fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x157b5411 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x15aab19c input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x15c21e5e nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x15ce05df inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x15cfc141 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x15d27a46 device_del +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x162574a3 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x1652ca3d devm_pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x16642514 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x1667ed79 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x1668b98a srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x166a68c1 blk_queue_bypass_end +EXPORT_SYMBOL_GPL vmlinux 0x1674fd9f gfn_to_page +EXPORT_SYMBOL_GPL vmlinux 0x1682d86f pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x16b70603 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x16c45574 regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x16dbcc6a dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x16e36f04 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x16f89cb1 kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL vmlinux 0x1753a32f hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x17c11d8b device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x17c592ed register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x17c6017e irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0x17e6a797 devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x17ea4b7b ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x1803ae23 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x182ed058 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x1853653c btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1866cec2 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x18708c66 balloon_mapping_alloc +EXPORT_SYMBOL_GPL vmlinux 0x187287b5 nf_queue_entry_release_refs +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x1891ebb1 gov_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x18a27f34 jump_label_rate_limit +EXPORT_SYMBOL_GPL vmlinux 0x18c55fb3 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x18d882f1 spi_master_resume +EXPORT_SYMBOL_GPL vmlinux 0x18f7c7ac irq_create_strict_mappings +EXPORT_SYMBOL_GPL vmlinux 0x1908a751 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x190e495d __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x19150a78 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x191b672a usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0x192fe5ac gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x194dd5f5 pkey_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x195c364d hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x19800cf5 hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x19970d17 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19a9d86b ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x19b384a5 hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x1a082d69 max77693_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x1a2e7b4e rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a6e7b01 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x1a89f09a crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x1a8c5907 btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x1a8ecb65 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x1a90022b watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x1a9deed4 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x1aa008af kvmppc_emulate_mmio +EXPORT_SYMBOL_GPL vmlinux 0x1abc5a8d tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x1acef7d2 pm_freezing +EXPORT_SYMBOL_GPL vmlinux 0x1ae326eb relay_open +EXPORT_SYMBOL_GPL vmlinux 0x1ae84a53 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x1af3e2fb show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x1af8b17f pcibios_finish_adding_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x1afa4118 alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0x1b028561 pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x1b03ef19 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x1b356922 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x1b363b45 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x1b430771 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x1b52db1c probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1b85afc8 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x1b871b9f watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x1b94e6ec blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1b9b9d50 extcon_get_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x1bab249b rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x1bbe60bf thermal_generate_netlink_event +EXPORT_SYMBOL_GPL vmlinux 0x1bd06aab cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x1c05cc3b rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x1c2d5b59 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x1c352798 gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x1c4633f1 each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c9ebba4 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x1cab9970 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x1cbfb956 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x1cecbec3 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL vmlinux 0x1d2b34ac tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x1d320908 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x1d430ba1 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x1d58ae14 lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x1d73cd23 sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d9abb14 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0x1dc95a6a ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x1dd26f65 da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x1de054d5 of_clk_del_provider +EXPORT_SYMBOL_GPL vmlinux 0x1dfbcf4c mpic_msgr_disable +EXPORT_SYMBOL_GPL vmlinux 0x1e145e09 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x1e229361 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1e588d01 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x1e5b03dc pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e76daa0 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1eb14eba tcp_fetch_timewait_stamp +EXPORT_SYMBOL_GPL vmlinux 0x1eb1594f gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ec95ade vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x1edf9507 gfn_to_hva +EXPORT_SYMBOL_GPL vmlinux 0x1f118997 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x1f502465 fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x1f63a23a sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x1f7159f0 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f86e2ca crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1fae704a ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x1fc186b8 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x20178173 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x2023aae1 pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0x2023b04f usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x2070182c platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x20763120 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x2079b2aa ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0x209c8bdf hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x20a7cf60 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x20aff8f4 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20bea674 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL vmlinux 0x21601120 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x216977c1 __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0x21816f23 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x2193ca21 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x21b8a3af regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x21d36a03 kvm_hypercall +EXPORT_SYMBOL_GPL vmlinux 0x223b140e pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x22483512 device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x22547773 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22c64f89 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x2301d29c scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x230f4793 of_irq_parse_and_map_pci +EXPORT_SYMBOL_GPL vmlinux 0x23240a8b inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x23357dcf vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x2361d08d mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23799e56 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x238920f9 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x2392bc6e pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x2395a089 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x239d5325 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x23b7019b cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0x23cd4407 sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0x240dbb51 of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x24353e42 isa_bridge_pcidev +EXPORT_SYMBOL_GPL vmlinux 0x2461ba01 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x249b1957 tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0x24a6203d xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x2536bf23 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x255dffd4 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x255f9003 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x2568b689 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x2571be9d sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x258b4458 udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0x258bf650 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x259060d0 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x25a988a4 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x25bd0cb7 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x26344be3 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x266232ed usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x268e64a6 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x268efd43 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x2691412e boot_cpuid_phys +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26bf919c usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26d5307d platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x26e0b52c devm_usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x26f4f9d1 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL vmlinux 0x2711fba7 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x272d880e device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x2748789a kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x27658732 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x2776affd blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x279e789b bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27ed7d9d wm8400_block_read +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27f98a45 wm5102_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x284d5a7c simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x284e1bd8 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x2859a3d2 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x285a5f9d percpu_ida_free +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28b5a4d7 da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x28fcd419 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x290f20e7 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x291115cf __kvm_set_memory_region +EXPORT_SYMBOL_GPL vmlinux 0x293ffea5 da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x294bc575 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x29a1353a irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x29c36363 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x29cfce8f power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x29d632db spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x2a174cdd locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x2a3448e1 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x2a3edc5d irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x2a5e81e1 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0x2ac6ab46 perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0x2aca5e58 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0x2ad1ece4 zs_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2adc78da pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2ae213a0 pwm_free +EXPORT_SYMBOL_GPL vmlinux 0x2aec76c0 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x2b4aa934 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x2b5c303b smp_send_reschedule +EXPORT_SYMBOL_GPL vmlinux 0x2b607170 ktime_sub_ns +EXPORT_SYMBOL_GPL vmlinux 0x2b7877e1 input_class +EXPORT_SYMBOL_GPL vmlinux 0x2b7a574f md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x2b7a6de8 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x2bb1f2ec pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x2bd13585 regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0x2bd8a299 cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0x2bfaef4e clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0x2bfd32ca sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c20b16d pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x2c575533 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x2c661df9 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c81198a arizona_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x2c97c085 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x2c9d8f45 nl_table +EXPORT_SYMBOL_GPL vmlinux 0x2cbf4159 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2ccafc33 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x2cd6ef3e css_next_child +EXPORT_SYMBOL_GPL vmlinux 0x2cd9d255 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cfb189f inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x2d028fc9 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x2d16905d pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0x2d17a0e1 cgroup_taskset_size +EXPORT_SYMBOL_GPL vmlinux 0x2d1a19c3 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d36c57b rh_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d55d5fb sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d6bba0d hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x2d6e9b75 tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x2d9a30e9 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x2dad331c blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x2dbdbdea rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2dc5a6d1 btree_last +EXPORT_SYMBOL_GPL vmlinux 0x2deb6288 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x2dfc1465 tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0x2e110c45 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x2e1782b7 ping_err +EXPORT_SYMBOL_GPL vmlinux 0x2e1e70a7 devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e4dc469 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x2eb18860 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ec02d49 of_pci_find_msi_chip_by_node +EXPORT_SYMBOL_GPL vmlinux 0x2eed8c6a ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x2f0ce5fe usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f4d641a extcon_update_state +EXPORT_SYMBOL_GPL vmlinux 0x2f570b47 blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x2f5b8fe1 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x2f6404b3 rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x2f6fef6d class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x2f807eeb get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x2f848d58 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x2fbdc955 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x2fe0f792 serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0x2fe7ecf0 devm_regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2ffb5ff7 btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x3006b6f5 of_pci_get_devfn +EXPORT_SYMBOL_GPL vmlinux 0x300a3979 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x300fd52e device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x3014a783 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x3035ff6d fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3050ec18 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x305c67cd regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x30718733 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x308446d8 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x308b733a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x309313c7 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x3094b51d perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x30a49790 reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30a9884a uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x30b20a5b key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x30ff0654 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x31087993 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x310ff02b tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x3143d694 da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0x31491208 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x314d0486 __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x3150ce90 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x315d5457 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x31859993 of_irq_to_resource_table +EXPORT_SYMBOL_GPL vmlinux 0x31913961 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x319e7d07 ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x31a60dd5 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x31b92a7a devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31d53664 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x31d98c7b __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x32101226 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x3256ca45 gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x32677af9 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x328995b5 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x32924a4d scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x329ab5a5 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x32afb6f5 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32ca8b35 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x32d7c992 unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0x32e405f1 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x32ed2778 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x32fd447a monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0x330ada5c bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x332492ae of_pci_msi_chip_add +EXPORT_SYMBOL_GPL vmlinux 0x332f3da2 sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x336c92e1 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x337786fa usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x33a772b7 user_update +EXPORT_SYMBOL_GPL vmlinux 0x33a94a45 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x33e3b85f usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x33ec5e2b smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x340c7f89 pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x342763fe pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x34854090 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x34ac50a4 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x34bf44c6 cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x34c8517c class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x34e90ba3 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x34ef40df usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x351528fa tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x351b51ce rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x3533eecf __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x3536c63d noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x353d2c55 dma_buf_vmap +EXPORT_SYMBOL_GPL vmlinux 0x35663933 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x357bbe60 task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0x3586bf45 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x358ff60f twl_get_hfclk_rate +EXPORT_SYMBOL_GPL vmlinux 0x35a2ced2 rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0x35a920b0 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x35e2e0eb dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x35f10f43 nfq_ct_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x35f165f1 devm_reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x360a6343 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x3633ea30 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x363a6829 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x369ec15f __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36a64e5c percpu_ida_free_tags +EXPORT_SYMBOL_GPL vmlinux 0x36b506b9 system_trusted_keyring +EXPORT_SYMBOL_GPL vmlinux 0x36e406df usb_string +EXPORT_SYMBOL_GPL vmlinux 0x36eec04f regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0x36eec60c inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x379ab8b4 ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x37af374b gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x37ba4d71 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x37d2c2c5 rh_dump_blk +EXPORT_SYMBOL_GPL vmlinux 0x37d2c762 spi_master_suspend +EXPORT_SYMBOL_GPL vmlinux 0x382aca22 ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x38618305 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x38a38224 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38bca65f da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x39293fe6 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x393d7a6e pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x3950aaf1 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x396111cb pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x397ef9ad crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x39a90c79 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x39acba26 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x39bba489 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0x39cf9889 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x39e381bf flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a345d81 dma_buf_kunmap +EXPORT_SYMBOL_GPL vmlinux 0x3a375d97 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a91e374 blkg_lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x3a95e9cb stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x3ab06f95 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3ad82802 of_property_read_u32_index +EXPORT_SYMBOL_GPL vmlinux 0x3aec261e blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3b43ebee tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0x3b4c3d02 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3b5b9c4f ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x3b671288 rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x3b9cb2c3 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x3baf6447 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x3bd04e76 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x3bdb5670 rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x3bfc7202 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x3c47b621 regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0x3c4e7308 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x3c7ddb3e dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x3c8424a0 clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c8a069c pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x3c8d28cc of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3ccffec8 of_irq_parse_one +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cf4b2c5 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x3d323110 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3d4c8d32 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x3d517104 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x3d6bef80 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3d7db53d kobj_completion_init +EXPORT_SYMBOL_GPL vmlinux 0x3daa8590 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x3dae1c3e uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x3db518fe rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0x3dc526a9 arizona_of_match +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3df59f19 alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0x3e255a58 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x3e2e543d cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x3e2fa31f wm8997_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3e4bc864 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e716271 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x3e971b8d regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x3ecbd363 regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x3ed63748 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x3edac39e led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x3ef9c72d con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x3f0db67a kvmppc_handle_store +EXPORT_SYMBOL_GPL vmlinux 0x3f19b587 clk_register +EXPORT_SYMBOL_GPL vmlinux 0x3f1f040a wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x3f31bd3f tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x3f55fee5 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x3f583614 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3f765df9 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x3f94d264 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x3fa2376c transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x400bb796 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x400fd453 tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4045c494 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x408f34ec wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40d529ae rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x40fa65f6 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x410c41e1 clk_register_divider +EXPORT_SYMBOL_GPL vmlinux 0x411ff09a fuse_get_req_for_background +EXPORT_SYMBOL_GPL vmlinux 0x41323daf __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x413cdb56 dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0x41491afc split_page +EXPORT_SYMBOL_GPL vmlinux 0x41761d3f inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x417e8afb tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x41ab32d7 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x41ad9df2 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x41c54658 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x42172e52 ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x424bebbd blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0x425c1c0b ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x426a4be4 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42a08dd7 subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x42b359a7 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x42bd503d pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x42c9cddf da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x42d5c520 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x42da0d58 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x42e93d42 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x42f75d9b skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x430e5257 of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0x431ccfb5 pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0x4367ed07 unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x43969dbe rh_alloc_fixed +EXPORT_SYMBOL_GPL vmlinux 0x439a4c0d regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x43a53735 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x43a5e39e ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x43b466b0 gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL vmlinux 0x43b80193 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x43bf36d0 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x43c7b817 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x43c94be3 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x4411564a max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x4434a513 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x44402331 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x44811e0c ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x448bac88 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x44b90f3d fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x44bcc034 usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x44d3f331 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x453d52cc debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x453fa9d8 lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0x4540e2c9 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x454c15ae __smp_call_function_single +EXPORT_SYMBOL_GPL vmlinux 0x456523fa inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4576c46c netlink_alloc_skb +EXPORT_SYMBOL_GPL vmlinux 0x457b77ca of_fixed_factor_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0x457e90f0 irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x45a29fd1 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x45af1d97 regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x45bdb81c debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45cef539 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x45d96120 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x45dc2d23 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x460f7531 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x4637ecf1 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x464163d0 dma_buf_mmap +EXPORT_SYMBOL_GPL vmlinux 0x46608ddc class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46732387 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x467333ca rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x4688c96a usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x46953b03 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x46bbd372 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x46ec3fe9 napi_by_id +EXPORT_SYMBOL_GPL vmlinux 0x46f43487 usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0x46fcb3f8 bio_trim +EXPORT_SYMBOL_GPL vmlinux 0x470fa426 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0x4710e190 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x4755ba77 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x476d8d7f i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x477a6ec6 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x477e4b71 ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0x47875589 kvm_write_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x4792f318 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x47994fa2 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47b21077 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x47c3e5e5 lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0x47ce9110 regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0x481a40fe fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x48388d8e rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x4843213a cpu_remove_dev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x484c9395 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x485996d5 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL vmlinux 0x4877df22 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x487a7348 devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x48a7b11f unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x48b0a108 kvm_init +EXPORT_SYMBOL_GPL vmlinux 0x48ca8947 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x490f599e pwm_disable +EXPORT_SYMBOL_GPL vmlinux 0x4982a57f probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4983f640 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0x49880299 pci_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x498d293a trace_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x499f83bb save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x49bccc91 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x49d7c78d crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x49e29f4c ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x49f83aa0 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x49ff0a48 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x4a375abb page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4b0d6ea6 pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x4b17b645 of_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x4b3bb262 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x4b3dee14 pwm_set_polarity +EXPORT_SYMBOL_GPL vmlinux 0x4b5ed307 perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0x4b98827c rh_init +EXPORT_SYMBOL_GPL vmlinux 0x4bb28d54 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4be5d5a8 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x4c2e1f24 clk_disable +EXPORT_SYMBOL_GPL vmlinux 0x4c37c22a __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x4c4774a1 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x4c47f540 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x4c4d72b8 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x4c602bf1 __blkg_release_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c892b41 crypto_lookup_aead +EXPORT_SYMBOL_GPL vmlinux 0x4ca4c9df clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x4ca9e25d ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x4cb114b2 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x4cbd9681 pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0x4cc010ea pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0x4cc6d9ef spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x4cc6f43d blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x4d106cc7 ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x4d10a964 pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x4d172ccb ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x4d23e35b key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x4d2d45f9 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x4d47ffd1 devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0x4d7ec5aa usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x4d8f5538 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x4dc22ed8 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4df3dc17 powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e242f5f pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x4e4c818d serial8250_rx_dma +EXPORT_SYMBOL_GPL vmlinux 0x4e650db5 alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x4e86c490 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x4e9218da regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x4ea11c69 dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x4eb55b2f fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x4ec324e0 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x4ed3eb8e serial8250_tx_dma +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f020dee public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x4f446155 devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x4f64d682 usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x4f6fec88 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x4f72173c alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0x4f764c15 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x4f881b16 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0x4f9cd872 regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0x4fcd6c7d gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL vmlinux 0x4fce52f0 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe03229 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4fe65760 regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x5019239b usb_bus_start_enum +EXPORT_SYMBOL_GPL vmlinux 0x503062fb skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x504fcc0c use_mm +EXPORT_SYMBOL_GPL vmlinux 0x50601122 of_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x506691f1 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x5068f518 debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0x506cc085 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50b8beb4 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x50bad538 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x50c7c933 regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50cb47be fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x511eb95c irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x51846493 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x51b65a26 rtc_lock +EXPORT_SYMBOL_GPL vmlinux 0x51cc211e vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL vmlinux 0x52212010 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x52220eeb srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x52396dd1 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x5255475b kvmppc_prepare_to_enter +EXPORT_SYMBOL_GPL vmlinux 0x5287117f do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x5299ce6a rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0x52a148ae bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x52c85811 thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x52f82a6c tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0x52f9f0d2 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x53111274 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x5332ecd0 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x5335dd11 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x535aeea7 ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53c6f866 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x53dcfba4 device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x53e3639c __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x5406ec8f posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x5469427c kvm_set_memory_region +EXPORT_SYMBOL_GPL vmlinux 0x546c5565 ppc_tb_freq +EXPORT_SYMBOL_GPL vmlinux 0x54740eb7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54b85b63 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x54e7da90 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x550303ea ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x552af79d device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x552cf1e1 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x555ee559 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x55921498 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x55ad7c48 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x55be0b28 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x55c159ed wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x55c77526 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x55d8133b ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x5613e8df devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x561e4b77 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x5622773a kvm_read_guest_cached +EXPORT_SYMBOL_GPL vmlinux 0x562c6b8c class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x562ec3df irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x56302e15 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x5648fb64 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x565e8f7f fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x567f4046 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x56886b19 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x5692386f gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56bf703c rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x56d697ce cpu_up +EXPORT_SYMBOL_GPL vmlinux 0x56e43771 edac_subsys +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x57231f45 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x572ce8b4 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x5742ed5b led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x5745c678 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x575338e1 dma_buf_export_named +EXPORT_SYMBOL_GPL vmlinux 0x576a7be8 pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0x57830ba1 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x578f2061 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57ab1370 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x57c2cdef usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x58221b84 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x583f246a regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x58413099 ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x58432f84 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x585284a0 regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x58785a25 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x587cdc28 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x588542cb devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0x588be8a6 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x589e4569 syscon_regmap_lookup_by_pdevname +EXPORT_SYMBOL_GPL vmlinux 0x58ba9be3 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x58d62507 task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x58ded0f7 mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x58e20036 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x59169f8c vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x593b6565 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x5947abbe max77693_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x594b4487 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x5960aff8 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x59a6e91d clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x59c1d1c8 key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0x59dcaae9 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x59e2743e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x59efb80c __netpoll_free_async +EXPORT_SYMBOL_GPL vmlinux 0x5a1cb493 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x5a3818a8 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x5a63edf3 sock_update_netprioidx +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a8f3b69 of_irq_parse_raw +EXPORT_SYMBOL_GPL vmlinux 0x5a9468b2 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x5a9d35ec skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x5ae63475 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x5af5967e pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x5afb5449 regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x5b0d97e2 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x5b181bb2 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x5b4e379c of_prop_next_u32 +EXPORT_SYMBOL_GPL vmlinux 0x5b505192 flush_fp_to_thread +EXPORT_SYMBOL_GPL vmlinux 0x5b6decfc usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x5ba03e23 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x5ba61da3 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x5be3a75a gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x5c14c1fa register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x5c203bcf tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x5c222ff5 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x5c6e4c26 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x5c88b42b fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x5cabdced dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5cd11627 gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x5ce80bc8 usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x5d003afc find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x5d12e48f input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x5d3a174f pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x5d7ab3a2 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x5d7ec900 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x5daddaea clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x5dd2836a irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x5e2f5cf9 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x5e374f69 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0x5e414a85 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x5e51cd74 swiotlb_nr_tbl +EXPORT_SYMBOL_GPL vmlinux 0x5e7b088f regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x5ec26a00 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f24a0f3 ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5f419491 gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x5f547868 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x5f671343 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x5f68d0ce usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x5fa7f080 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0x5fb61a98 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x5fe4d360 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x602680b9 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x6033fb2a wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x6062f759 irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x60785c63 rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0x6094685f wm8997_irq +EXPORT_SYMBOL_GPL vmlinux 0x60969051 blkg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x609e7bfb mdio_mux_init +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x60a46a48 pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x60b40ebd yield_to +EXPORT_SYMBOL_GPL vmlinux 0x60ba0eb6 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0x60ca36e3 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0x60f025fd __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x61302f12 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x613b7ab7 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x6148a31a driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x615fd917 dev_get_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x6163f9b9 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x616cc5b0 arizona_clk32k_enable +EXPORT_SYMBOL_GPL vmlinux 0x6181f422 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x619cea1f usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x61a90c54 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x61b74c7c tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0x61c3cbe6 ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0x61c80156 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x61f1d9f2 cgroup_is_descendant +EXPORT_SYMBOL_GPL vmlinux 0x61f64132 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x62341db8 sk_unattached_filter_create +EXPORT_SYMBOL_GPL vmlinux 0x62398e3d kvm_vcpu_kick +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x62657277 dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x626aab56 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x62826f08 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x62e7788e of_scan_bus +EXPORT_SYMBOL_GPL vmlinux 0x6318757f mdio_mux_uninit +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x633083cc crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x63813834 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x6390efda of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x6397813a crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x63984947 kvm_put_kvm +EXPORT_SYMBOL_GPL vmlinux 0x63a1304f kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x63a5e504 sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x63b60c33 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x63c3c463 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x63e6a0d6 rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0x63f27f7b kvm_release_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x64193a51 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x64253e42 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x64256424 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0x6428da4f rh_attach_region +EXPORT_SYMBOL_GPL vmlinux 0x646f398e sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x64a9d19b kvm_vcpu_cache +EXPORT_SYMBOL_GPL vmlinux 0x64b96ff5 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x64c14b09 wm5102_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x64eb3f19 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x64f0f38f ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x652b958e ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x652cb62e dma_buf_vunmap +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d0a04c securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x65f23885 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x65ff18dd transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x66190e3d fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0x662a0c3f x509_get_sig_params +EXPORT_SYMBOL_GPL vmlinux 0x663cdaa5 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x6644fad2 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x6679dcc7 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6694689d debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL vmlinux 0x66ad89f4 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x66afb53b unix_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x66b9fd9f usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x66d07a14 lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x66d15378 PageHeadHuge +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e114e4 class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x66e6b41f spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0x670f556d spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x671f389a fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0x6747ca7b i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x674ad14f uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0x674e13e1 public_key_destroy +EXPORT_SYMBOL_GPL vmlinux 0x67643d26 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x678782d4 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67dc5390 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x67dd69c7 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x67eca93d verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x6812cf8d __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x687934e9 gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x688b4903 sec_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x688bbad4 da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x68956406 static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x68c33765 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x68efe951 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x68f0c291 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x68faa117 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x6904e498 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL vmlinux 0x69216e52 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x6924b199 usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x6945725e mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0x694d8430 cpufreq_governor_dbs +EXPORT_SYMBOL_GPL vmlinux 0x69566ef1 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x697a420c timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x697cbbb4 threads_per_core +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x6998c13b md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x69baf8d7 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69f4e764 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x6a5a48a8 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a5ff6cf bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6a6553de serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6a9fed6d crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0x6ac477b5 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x6b09a392 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x6b263b95 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b48a910 switch_booke_debug_regs +EXPORT_SYMBOL_GPL vmlinux 0x6b5b21c5 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x6b66d721 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x6b6f6170 devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6b9a3912 fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0x6b9e7ad7 of_clk_src_simple_get +EXPORT_SYMBOL_GPL vmlinux 0x6baa4a9a ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x6bacb073 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x6bb725dd subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6bbc4012 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x6bd96b3c disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x6c1b09ab gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c749afe __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x6c7ebcae stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cbb7873 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x6cc59fd4 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x6ccbc322 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x6cd21997 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x6cd4ea62 wm5110_irq +EXPORT_SYMBOL_GPL vmlinux 0x6cf28397 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x6d183496 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d31e93b tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x6d7edf21 gpio_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x6d8ff4cf fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6d9e5425 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x6da7ef43 kvm_set_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x6de79062 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x6e04a077 usb_bind_phy +EXPORT_SYMBOL_GPL vmlinux 0x6e1fb8f7 extcon_unregister_interest +EXPORT_SYMBOL_GPL vmlinux 0x6e2fee67 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x6e43c7f9 pwm_can_sleep +EXPORT_SYMBOL_GPL vmlinux 0x6e595c60 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x6e6d80a2 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6eac9da5 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x6ed91dbb pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x6eeb0368 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f73496a skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6f981efd dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6f9971c1 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x6fa5680c fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0x6fdd4e23 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6ffe9c33 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x70049f4b sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x7006d72d dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x700ec5e9 blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0x701e6328 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0x70268dc4 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x70311792 device_store_int +EXPORT_SYMBOL_GPL vmlinux 0x70612875 cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x70727411 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x7072f983 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x707aae5d skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x709b1caa regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x70b5a87a disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x70bb651d __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70e605c3 pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x70efd5c2 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x70f11767 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x713ef9b7 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71621fe0 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7166789d fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x71930ed3 of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x71a182dc generic_access_phys +EXPORT_SYMBOL_GPL vmlinux 0x71bcf06c ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x71d59b4e pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x720dce05 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x721c40d2 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x723374f8 pci_bus_sem +EXPORT_SYMBOL_GPL vmlinux 0x72459936 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x726444f9 regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7268233f put_pid +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7279f255 rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0x727d4a41 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x72848b92 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7286a228 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x72a3ddcd ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x72ce2347 ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0x72ce341d dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x72d596c1 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x72eceab6 cpufreq_table_validate_and_show +EXPORT_SYMBOL_GPL vmlinux 0x72f2fe52 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x72fbb2f0 __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x73222c3a md_stop +EXPORT_SYMBOL_GPL vmlinux 0x733413dd ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x7377050f fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73bc75a5 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x73c832f2 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73f78029 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x741015cc sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x7422c95e gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x742cab4d rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74594005 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x745b059f crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x7464ea38 dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7474a5b3 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x748aee11 pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x7490f515 mmc_send_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74b5982d mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x7502254e __mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x750dae64 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x751d98e4 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x751f12cc do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x75382700 od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x755ffae8 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x758a782e blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x7591df8a br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x75af8193 fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x75be54f1 ping_seq_fops +EXPORT_SYMBOL_GPL vmlinux 0x75c2b9f1 memalloc_socks +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75ccdf84 regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x75f2a044 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x76149400 devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x765a6d02 kvm_flush_remote_tlbs +EXPORT_SYMBOL_GPL vmlinux 0x76845ad2 regmap_update_bits_async +EXPORT_SYMBOL_GPL vmlinux 0x76b0feb9 nfq_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x76bfa98e devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x76d07d6e gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x76e2472e dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x76ebc963 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x770c2a42 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x771a9f46 alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0x77214cea sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x7729cbdd task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x77470c1e usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x774c1315 __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x775df4ff ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x77827c44 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x77879290 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x7804f22d sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x7811c476 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0x782627fe usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x7865a08b class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x787e2215 pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x79154842 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x7992827d blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x799e4eec rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x79a39b5c fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x79c480da rh_dump +EXPORT_SYMBOL_GPL vmlinux 0x79d858d6 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x79f11f6a ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x79f5d325 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x7a0ed497 tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0x7a7a59b1 __netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7aa5640f crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL vmlinux 0x7ab3ca18 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x7acdf231 ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0x7adb4728 cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7ae63951 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x7afdec90 css_next_descendant_post +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b1c5e8e init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b78cac2 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x7b977c47 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x7b990ffd rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0x7bc93cfa __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x7bd5875d unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x7be265b0 usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x7be91669 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x7c10ecbf wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x7c226301 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x7c227088 clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x7c271f60 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x7c299029 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x7c346357 pkey_algo +EXPORT_SYMBOL_GPL vmlinux 0x7c3d94e3 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x7c858f9f replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x7c936fcd pwm_config +EXPORT_SYMBOL_GPL vmlinux 0x7cbdd693 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x7cbf250b ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x7cc1b7fd max77693_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7cc7de1c x509_check_signature +EXPORT_SYMBOL_GPL vmlinux 0x7cd603ac shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ce5b92a gpiod_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d172323 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x7d36e534 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7d397cc7 gpiod_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d6172fe unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x7d640b58 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x7d7c76b5 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7d852a37 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dd12fac register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7dea5370 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x7df7ec6e regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x7dfb9c08 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x7e06d275 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x7e17ba7b klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x7e2d1b90 extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7e402a48 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e766f52 cpu_add_dev_attr +EXPORT_SYMBOL_GPL vmlinux 0x7ec2aa0a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x7ec669a9 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x7f008202 btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7f033932 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x7f05a393 fb_sys_read +EXPORT_SYMBOL_GPL vmlinux 0x7f7bc710 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x7f9cbe05 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x7fa4b4a2 of_pci_parse_bus_range +EXPORT_SYMBOL_GPL vmlinux 0x7fae7604 __mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x7fbca519 irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x7fc012f5 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fc672f8 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x7fea112a mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x8023d823 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x804b900d extcon_register_interest +EXPORT_SYMBOL_GPL vmlinux 0x804d24aa pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x804f631f cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x80671309 cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x809fc1dc sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x80b75b7a vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x80d05f81 __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x8110255f device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x81144023 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x8140842a gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0x8148f2e1 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x814c9032 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x817a6f3b kvm_clear_guest +EXPORT_SYMBOL_GPL vmlinux 0x81b503b3 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x81c4f33e platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x81d5dba7 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x81e64fcb vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x81f45c82 of_usb_get_maximum_speed +EXPORT_SYMBOL_GPL vmlinux 0x8200bbd3 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x8201c6e4 cm_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x821ebdf4 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x8266407f kvm_vcpu_block +EXPORT_SYMBOL_GPL vmlinux 0x8275ffc6 rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x828ca338 dma_buf_unmap_attachment +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82be27b1 ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x82c2fb6e fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82eae763 devres_release +EXPORT_SYMBOL_GPL vmlinux 0x82f3f804 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x8318eb66 clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x831b67be power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x83372d46 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL vmlinux 0x834616bb sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x83564c24 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x836d61d0 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x83a5ae2e __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x83d48030 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x83f5a0e1 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x83f7243a pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x84065f70 dma_buf_kmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x841bc091 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x841da239 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x84203297 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x8420bccd cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x8430efa2 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x8438e0d7 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x843d19f0 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x844b724b exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x848c5ea3 regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0x84ad6556 balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x84d05ce1 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x84d22dfa mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x84e4ca15 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x84e65690 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x84fde72f inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x8510545a rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0x852e568d of_get_nand_ecc_mode +EXPORT_SYMBOL_GPL vmlinux 0x852e8480 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x853811bd zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x85563212 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x856629e7 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x8574ca6c gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x8575190b __class_create +EXPORT_SYMBOL_GPL vmlinux 0x8579f310 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x857e02fe ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x85b14d33 clk_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85ca346f i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x85cf1695 kobj_completion_del_and_wait +EXPORT_SYMBOL_GPL vmlinux 0x8607027a ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x862b832a bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x86311629 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x8641538a sdhci_pci_o2_probe_slot +EXPORT_SYMBOL_GPL vmlinux 0x865a20ea relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x866b9687 wm8997_aod +EXPORT_SYMBOL_GPL vmlinux 0x867a0792 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x868cf4fb public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x8694482c list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0x86d47e78 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x86d847f7 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x86dc070e ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x86e46687 ping_proc_register +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86f9baf1 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x873176e3 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x875c6e2c device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x876bbde1 ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x877ad796 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x87839590 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x87984b16 __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x87a49ec7 usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x87bb4e32 of_usb_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x87bebae2 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x87e8c60a device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x8804af3d usb_anchor_suspend_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x8808c53c dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x880a0be0 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x88390278 regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x88580910 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x8872cc5d device_attach +EXPORT_SYMBOL_GPL vmlinux 0x8873d04d mpic_subsys +EXPORT_SYMBOL_GPL vmlinux 0x888d821f devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x8892e6a4 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x88a55eb9 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88ab8310 device_create +EXPORT_SYMBOL_GPL vmlinux 0x88b5647c trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x88d16247 usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x890067cd relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89908a80 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89c138c1 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x89d250cd sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x89d3bde8 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x89e5c518 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x8a04b9fe tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x8a0690e9 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x8a0a74c8 kvm_clear_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x8a18f92f rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x8a2b14ba wm5110_aod +EXPORT_SYMBOL_GPL vmlinux 0x8a7fbd7e md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x8a849751 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8a94cff4 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x8a9d65d6 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ad81ef8 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x8ae152b5 of_get_nand_bus_width +EXPORT_SYMBOL_GPL vmlinux 0x8b5cf9e1 sdhci_pci_o2_fujin2_pci_init +EXPORT_SYMBOL_GPL vmlinux 0x8b70e8ea __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x8b93e2c5 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x8bf626a7 rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c3bdbbd usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x8c6ea363 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x8c946c9a sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x8c96ad5d balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c9a607a device_reset +EXPORT_SYMBOL_GPL vmlinux 0x8c9e18b0 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x8cb90483 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x8cbc007e hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8cffee1f tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x8d19e500 device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x8d85366d raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL vmlinux 0x8da80502 pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x8dedda54 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x8dfd5821 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x8e02496e crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL vmlinux 0x8e2389df device_add +EXPORT_SYMBOL_GPL vmlinux 0x8e2c4c8b scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x8e2e82ff da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0x8e3f5d1c ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x8e5eadf4 arizona_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x8e7705d4 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x8e79bcf9 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x8e864edd cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x8e86bc06 bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x8e955c8c dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x8e9c7933 gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x8ecda9b3 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x8effebd3 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x8f09e1d3 pci_restore_ats_state +EXPORT_SYMBOL_GPL vmlinux 0x8f0c7acb devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x8f1ff509 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x8f3b7b30 devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x8f652ac5 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f78056f led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x8f8e53b9 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8f902a2c gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x8fc0ba61 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x9009c500 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x90228869 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x902ecc84 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x903fb24d ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x904b0fce list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90640328 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x90705b7f syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x9077d5ea usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x908ab869 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x909c14ac fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x909e979e tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90d7039f netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x90e5fd2d usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x91286982 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9157d814 inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x916fadcf usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91a2c02e regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x91be14a3 sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x91d5345a wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x91eb612c usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x91ecdbcb __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x91f08350 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x923200ce devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x924749dd stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x928825f9 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x92b184d5 dma_buf_detach +EXPORT_SYMBOL_GPL vmlinux 0x92b36a84 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x92b4c119 dma_buf_map_attachment +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92c9f3d8 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x92cee48d thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92db8f68 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x92e47aed __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x92f444bd rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x92f586a2 of_get_named_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x92f624a8 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x92fea509 kvmppc_sanity_check +EXPORT_SYMBOL_GPL vmlinux 0x930ed9b9 of_usb_get_dr_mode +EXPORT_SYMBOL_GPL vmlinux 0x931add84 tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x935b9514 ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x9368a480 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x9370e680 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x93a2cb47 reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x93acefa4 devm_spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x93cc23f9 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x9406b1e8 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x940781f1 user_match +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x942028f0 regmap_fields_write +EXPORT_SYMBOL_GPL vmlinux 0x9435c0f7 wm8997_patch +EXPORT_SYMBOL_GPL vmlinux 0x943a14d8 __percpu_ida_init +EXPORT_SYMBOL_GPL vmlinux 0x947ef7f6 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x94962494 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94abb745 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0x94bcfa0c put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x951a6f28 devm_rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x951aee47 bmp085_detect +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x954291d9 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x95604675 thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0x956df466 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x960613c4 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x96144954 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x9644a7aa of_extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9655b911 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x96815ee3 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x9691058f fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x96a42195 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x96d8a503 rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0x96ec852f blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0x96ec9642 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x9730c462 gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9745c52a of_fixed_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0x974d96a4 need_load_eval +EXPORT_SYMBOL_GPL vmlinux 0x97a3ec56 ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x97acc209 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x97eb26e1 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x97f40d5f tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x981144a3 bmp085_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x9814194e md_run +EXPORT_SYMBOL_GPL vmlinux 0x982cd486 __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x983c7494 rh_detach_region +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x98a4d19a blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x98c6c838 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x98fa1e20 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x9910884a rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x997ce1be rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x9996065c usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x99a23e2e driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x99a61269 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0x99c4fee7 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x99d6a1e1 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x99f660ba sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a350339 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x9a49d937 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x9a715d6a usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x9a7421f7 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x9a7e3ab8 of_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x9a891e7f inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9a895931 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x9a89dbf7 lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x9aa72181 pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0x9aad6540 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x9aca444b get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x9acada8c regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x9acc5876 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x9ad0c5fc dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0x9adb1c1d wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9b30d882 regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x9b52c249 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x9b73854a sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x9b77c130 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x9b7dc432 user_read +EXPORT_SYMBOL_GPL vmlinux 0x9b86864a fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x9bd98da9 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x9be421f2 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9c138453 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x9c4f185c __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x9c622e5a posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x9c7709d1 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x9c812ec3 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x9cb550a5 ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0x9cc9bb47 serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x9cedfc8b led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x9d138533 percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x9d338ad5 pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0x9d422405 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x9d71f9b6 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x9d8331c0 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x9d9049f2 crypto_lookup_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x9db60b17 __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x9dbfceda regmap_field_write +EXPORT_SYMBOL_GPL vmlinux 0x9ddbb33e ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x9dfa99f2 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9dfdf722 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x9e196595 dma_buf_attach +EXPORT_SYMBOL_GPL vmlinux 0x9e3442c1 of_irq_parse_pci +EXPORT_SYMBOL_GPL vmlinux 0x9e552ffd perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x9e6fcac3 devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x9e7a3da2 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x9e9cd635 usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9f0664bf dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x9f07cbde fsl_rio_mcheck_exception +EXPORT_SYMBOL_GPL vmlinux 0x9f3365f8 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x9f352507 cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9f3f98e1 of_get_nand_on_flash_bbt +EXPORT_SYMBOL_GPL vmlinux 0x9f598140 rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0x9f859933 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x9f85ec4f crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x9fbd3d0f crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x9fbef99c devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fd610c6 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x9fedb268 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa02ab094 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xa045809d pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xa04796d0 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0xa050d6ae balloon_devinfo_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa0813932 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xa090ab4b sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xa0a27fff pci_address_to_pio +EXPORT_SYMBOL_GPL vmlinux 0xa0a4ca98 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xa0b74747 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xa0e4a917 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xa12d929d desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0xa19d5ddf _submit_bh +EXPORT_SYMBOL_GPL vmlinux 0xa1ae3170 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xa1b5f7b5 get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0xa1bd7822 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa1c727ff platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xa23e3c94 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0xa252bcf8 usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0xa26ad019 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa28aaf29 rh_create +EXPORT_SYMBOL_GPL vmlinux 0xa2b3f39a serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0xa2b45210 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xa2c05e02 cgroup_taskset_next +EXPORT_SYMBOL_GPL vmlinux 0xa2c5f11c transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xa2fbbb2f ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xa30d9923 gfn_to_pfn_prot +EXPORT_SYMBOL_GPL vmlinux 0xa31acc68 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xa32a8ac9 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xa357d56e ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xa38569d3 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa389a49a profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0xa3934445 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3a2d9af walk_system_ram_range +EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa3e81a58 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0xa3f89864 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xa43b008b swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xa4782cc5 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa48e3bbf xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xa4b3a0eb regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xa4e31f5e of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xa4e93453 ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0xa4ea04ee of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0xa4f51fab ata_sas_port_async_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa54cc5e1 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xa55018d3 regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xa5502925 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xa56205a6 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa57d81d8 clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0xa580cbc0 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL_GPL vmlinux 0xa5e5dc68 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5efe460 usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xa5fbb83a usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0xa5fce093 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa608098d rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xa61b1477 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xa625110d kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0xa645f81f fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xa64fd637 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa67883e9 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xa680596a sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0xa6a0a273 max77693_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa6aa1f7f crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xa6b43ca9 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xa6b6d9d7 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa6e85481 devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xa70e7f10 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xa71f30b2 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xa724257f init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xa74708c7 pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0xa75312bc call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0xa75811d0 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xa762a9f5 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xa775da0d __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa787e62d cpu_add_dev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xa7d77fb1 devm_regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa80a95b5 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xa80d3ada sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0xa8113a34 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa8235e03 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa8578a28 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xa868c206 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0xa88b9ef1 __clk_register +EXPORT_SYMBOL_GPL vmlinux 0xa89f95b3 dma_buf_end_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0xa8b1a1c9 clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0xa8b497f7 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xa8bcf716 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xa8c17a76 of_reset_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0xa8de6cfd max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa8fd1734 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xa90d933d tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xa9331e70 device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0xa95a29ce get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0xa960224d tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa96381c8 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xa9672e2e ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xa9790478 kobj_completion_release +EXPORT_SYMBOL_GPL vmlinux 0xa97a19d0 usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xa980af16 RSA_public_key_algorithm +EXPORT_SYMBOL_GPL vmlinux 0xa985753b ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xa987e8d0 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0xa9adca71 rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xa9aef2e1 gfn_to_hva_memslot +EXPORT_SYMBOL_GPL vmlinux 0xa9d62568 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xa9e18049 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9ebbfaf usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xa9fb74a2 of_device_is_stdout_path +EXPORT_SYMBOL_GPL vmlinux 0xaa17a2e2 rh_alloc_align +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa4d0ba2 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xaa84bc1c sec_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xaa977862 kvm_read_guest_page +EXPORT_SYMBOL_GPL vmlinux 0xaa9fc111 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xaaa48bc4 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaab74bcf ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xaabdaea3 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xaad3a845 iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0xab2cf844 arizona_clk32k_disable +EXPORT_SYMBOL_GPL vmlinux 0xab3ad84e gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0xab3eba97 ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0xab4129e2 thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0xab455be0 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xab51e031 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xab59d373 kvmppc_free_lpid +EXPORT_SYMBOL_GPL vmlinux 0xab5d85e4 extcon_set_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab78dc79 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xab87b8b4 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xab9dda97 pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0xabbe824a skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xabc6f51b pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xac4d71c7 ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xac613c87 pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0xac93ee20 tps80031_ext_power_req_config +EXPORT_SYMBOL_GPL vmlinux 0xac9d14ac input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xacae6ac5 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xacbf5594 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xace8c93d kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xacf024e1 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0xad27ab80 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xad324fd6 fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0xad376749 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0xad58a00b led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xad7e3482 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0xad909b07 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xade488af ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae2554c4 of_clk_src_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae8016fa watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0xaece99b6 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0xaed8bf13 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xaf25d246 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xaf98a4c3 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xb0913148 btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0xb0a064d8 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0cf774a dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xb106d756 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb14f3cb1 rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0xb15530d8 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xb1a7e3f6 clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1c0c1c2 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb1e9276e ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xb1eb482f crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xb1f842e7 devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb221ceac usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xb2256567 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xb22c5283 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xb2315e81 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xb23944f1 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0xb23a8822 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0xb23ba869 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xb2422cb5 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb2801c4e arizona_dev_exit +EXPORT_SYMBOL_GPL vmlinux 0xb293c758 list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0xb2c5621c pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xb2ceee20 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xb2e39f5c regmap_field_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xb2f90a8f rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0xb30e056f devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0xb33abf5a power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb341c80a __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0xb383c4e3 clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0xb3edfd61 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xb3f38e1c clk_register_mux +EXPORT_SYMBOL_GPL vmlinux 0xb40ed058 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xb46da883 pci_intx_mask_supported +EXPORT_SYMBOL_GPL vmlinux 0xb4943a11 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xb497e773 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xb499bccd kvm_get_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0xb4b2463a ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4d53d7d __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb517588b powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0xb51baee5 pwm_enable +EXPORT_SYMBOL_GPL vmlinux 0xb51c6b8a swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb5282842 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb55510a7 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xb5565119 dma_buf_put +EXPORT_SYMBOL_GPL vmlinux 0xb5731266 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5a0e11e lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0xb5a11c75 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0xb5a40a5d ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xb5aa10af atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb5b9fa0e rio_unlock_device +EXPORT_SYMBOL_GPL vmlinux 0xb5bd9e3c regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xb5c8edf4 btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0xb5cb8145 hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xb5dc59c4 rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0xb5e896fb tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0xb5efd2af sk_unattached_filter_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb60b5707 of_i8042_aux_irq +EXPORT_SYMBOL_GPL vmlinux 0xb612792e led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb6355629 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0xb64e61eb regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0xb6588b72 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xb67b2219 cm_suspend_again +EXPORT_SYMBOL_GPL vmlinux 0xb67c64fd __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xb68dcbc7 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xb698be6e bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb69ca022 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6c635af wm5110_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb702dfa0 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xb71089b7 crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0xb71eaa1f subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0xb745abae ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xb76aa47f get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0xb786e77d percpu_ida_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb7879dd9 key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0xb79fb656 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb7aaa742 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xb7bf2278 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xb7d2185c rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xb7dd8555 alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb7f003ef ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0xb7f465e8 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0xb809b9ee md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xb82dd604 devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xb85048ed md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xb88a5779 ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0xb890e6bc bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb89be70d regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xb8c3050c fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb903f1df __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xb90982f0 devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb9176155 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0xb996aa32 tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb9b1a57f xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9bd8d5a ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0xb9bdb0d1 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9c8b584 regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9e00efa regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xb9f006dc cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xba04976c devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xba0f8d40 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0xba2da3dd device_rename +EXPORT_SYMBOL_GPL vmlinux 0xba482caf kvm_irq_has_notifier +EXPORT_SYMBOL_GPL vmlinux 0xba763ef8 irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0xba82e0b9 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xbae9cc46 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xbaeb88e9 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb65ef89 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xbb885753 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0xbb8d254a devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xbbac26dc subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0xbbe42076 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xbbfc018a da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xbc3ae946 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0xbc791811 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0xbc93f20a kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xbca21a07 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xbcac6160 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbcb07b65 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xbcb27eba usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xbcc32f2b udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbcf54c2f regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbd07c62f clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0xbd18a7ce sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xbd39abd9 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xbd4fb0c3 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0xbd5cb8b9 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe2b6fd0 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0xbe5a7919 extcon_set_cable_state +EXPORT_SYMBOL_GPL vmlinux 0xbe681d67 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xbea5ff1e static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0xbebaa0a6 of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xbef555d0 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0xbefbc553 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xbf010a9c subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf6d2602 devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0xbfa4b176 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbfb2e0aa ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xbff9f8d2 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xc00131cf visitor64 +EXPORT_SYMBOL_GPL vmlinux 0xc02bec3c usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc0484557 of_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xc05f5827 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xc061367e mpic_msgr_get +EXPORT_SYMBOL_GPL vmlinux 0xc0626288 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xc065a455 cpu_core_index_of_thread +EXPORT_SYMBOL_GPL vmlinux 0xc0692ba4 rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0xc06d88bd trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0xc07b0b59 powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0xc07f80d6 list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc087b6a4 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xc089d7e3 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xc0907a26 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc0bae748 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c6ad20 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xc0cc215e tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc0d01bc0 percpu_ref_cancel_init +EXPORT_SYMBOL_GPL vmlinux 0xc0d0f236 sec_reg_update +EXPORT_SYMBOL_GPL vmlinux 0xc0d26387 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc0e75cec visitor128 +EXPORT_SYMBOL_GPL vmlinux 0xc0ea8a9e usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xc0ee3810 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xc1031850 dma_buf_fd +EXPORT_SYMBOL_GPL vmlinux 0xc111b5a7 device_register +EXPORT_SYMBOL_GPL vmlinux 0xc1154815 devm_regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xc11b45c6 gpiod_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc1255549 dev_hard_start_xmit +EXPORT_SYMBOL_GPL vmlinux 0xc149a52b blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc177cacc inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xc17a475b regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0xc18578ed process_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc1ca914b call_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc1e347f0 wm8400_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xc1fcffb3 sec_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc236c9b6 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xc2639dc4 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0xc26e9a9a kvmppc_pr_ops +EXPORT_SYMBOL_GPL vmlinux 0xc275bce8 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc285b4e2 of_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xc2a6666a ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xc2ba7421 ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0xc2c25342 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc2f98329 cgroup_taskset_first +EXPORT_SYMBOL_GPL vmlinux 0xc33f8dc1 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc36f150a irq_create_direct_mapping +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc381489d driver_register +EXPORT_SYMBOL_GPL vmlinux 0xc38b1a0c uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc3beb4a1 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xc3d17628 crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0xc403d680 dma_buf_kmap +EXPORT_SYMBOL_GPL vmlinux 0xc407a1d4 gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc43e4c45 get_device +EXPORT_SYMBOL_GPL vmlinux 0xc454fc7b twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc46d877e schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xc471c67a twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4927394 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0xc4a1ad5d device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xc4b5f71f seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xc4b87443 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xc4c653f8 blk_queue_bypass_start +EXPORT_SYMBOL_GPL vmlinux 0xc4ea3b01 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xc4f9bdea kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xc50cf781 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xc52ca124 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xc5691db3 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xc5739b5f find_module +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc59672f4 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xc5d37180 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0xc606cd3c boot_cpuid +EXPORT_SYMBOL_GPL vmlinux 0xc609e051 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc6121589 get_kernel_page +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc63a1109 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xc6479abd ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc6747a4c ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xc67f2249 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xc68aa090 mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xc68aa252 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xc690866c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6a98c71 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xc6d71ee9 usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xc6d900af netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0xc6df4b00 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0xc70e4b59 kvmppc_claim_lpid +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc73d75be ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0xc7598133 fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc79bda0c ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7a6ee81 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xc7a7f120 ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xc7c6391c mpi_set_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc7da17be timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0xc7e39bca ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc7ed0cba crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xc7fec783 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0xc80e6684 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xc813bcc9 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc8304876 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0xc869704f smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0xc871f6c8 proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0xc88b04ee tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0xc88f253a regmap_update_bits_check_async +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8b38f44 tpm_write +EXPORT_SYMBOL_GPL vmlinux 0xc8b8d2c1 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xc8d5f8f4 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9163e8a percpu_ida_for_each_free +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc97d1140 cpufreq_cooling_get_level +EXPORT_SYMBOL_GPL vmlinux 0xc97e9bff register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0xc982d5cb rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xc9924572 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xc9a505c1 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xc9a6952c irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xc9b4632b tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xc9c9de23 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xc9cfa97f of_pci_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9fbcf8f subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xca0fd9d9 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0xca4777a8 bmp085_remove +EXPORT_SYMBOL_GPL vmlinux 0xca7262ce arizona_of_get_type +EXPORT_SYMBOL_GPL vmlinux 0xca732633 arizona_set_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca946187 of_clk_add_provider +EXPORT_SYMBOL_GPL vmlinux 0xcaac3229 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xcab1268f blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcac318d7 dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0xcb15eee9 sdhci_pci_get_data +EXPORT_SYMBOL_GPL vmlinux 0xcb23aabc spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0xcb2f2383 ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xcb323599 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xcb469d2b ddebug_add_module +EXPORT_SYMBOL_GPL vmlinux 0xcb5c3b01 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcb722728 ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0xcb964646 regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0xcb9b162e clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0xcb9b3e02 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xcbbd5cd3 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xcbbe4094 thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0xcbd54f16 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xcbe762d1 rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbf00645 ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc38fdee of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0xcc44961f kvmppc_alloc_lpid +EXPORT_SYMBOL_GPL vmlinux 0xcc59f145 skb_gso_transport_seglen +EXPORT_SYMBOL_GPL vmlinux 0xcc85fcb6 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0xcc8c4990 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xcc956659 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xcc9967f5 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcce4b6d6 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xcd13537f __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcd1cfba6 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcd1ef9c1 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0xcd28f26a crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xcd4fb465 call_filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xcd585f63 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0xcd7587d8 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcdb01877 ktime_add_ns +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcde406bd tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0xcde8ecb9 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0xcde9e898 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0xce0b9b59 max77693_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xce46e140 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xce5675e0 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xce57c075 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce6cbcb9 devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0xce72cd8f of_get_regulator_init_data +EXPORT_SYMBOL_GPL vmlinux 0xce833535 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xce9d6e39 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xcec574ff bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xcef91b98 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xcefc8e5a spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xcf0b76eb find_linux_pte_or_hugepte +EXPORT_SYMBOL_GPL vmlinux 0xcf4a9bfe dma_buf_begin_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0xcf54ea93 async_unregister_domain +EXPORT_SYMBOL_GPL vmlinux 0xcf7fa287 spi_async +EXPORT_SYMBOL_GPL vmlinux 0xcf82f502 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xcf88966e kvm_vcpu_init +EXPORT_SYMBOL_GPL vmlinux 0xcfa8e06e thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0xcfa9e828 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0xcfb97524 spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfd53a15 filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xcfd9a317 alarm_start +EXPORT_SYMBOL_GPL vmlinux 0xcfe71633 devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xcfff644c devres_get +EXPORT_SYMBOL_GPL vmlinux 0xd00a47e4 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xd032198a usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xd03b07ae reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xd03c5d95 irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd056c5e4 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd06c64a8 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xd06c7f3f disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xd0bce0fa blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xd0c0178f blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c703b4 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xd1132fd1 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xd118c216 edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0xd12837fe clk_register_mux_table +EXPORT_SYMBOL_GPL vmlinux 0xd144f7cb ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xd14bc4d9 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xd1530b85 gfn_to_pfn +EXPORT_SYMBOL_GPL vmlinux 0xd155169f ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1bca8b5 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xd1cda35e __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xd1e2654d wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd1e87199 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xd1e94f78 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd215ddb6 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd258217d clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0xd25b5668 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0xd265fc6a list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd27999c4 kvm_get_kvm +EXPORT_SYMBOL_GPL vmlinux 0xd2a5887a hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd2aaeb4e kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0xd2b1a7f9 sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0xd2c45ea4 of_pci_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0xd2da057e regmap_fields_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xd2f8d531 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0xd315f1f2 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd3373310 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xd33a4f2c usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xd383506b sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0xd38dce2b gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xd3ba86a7 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xd3ccd8db wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd3e1f744 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xd3fcc14c regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4056b03 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xd43e8ffa rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd482ad13 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xd4b659c2 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4cad45e clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xd4ebe784 extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0xd513ddbf timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xd5214ffa get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0xd5304be9 blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0xd560be86 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xd582227a leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xd594620d fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0xd599eaf5 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xd59a9f69 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xd59c1c75 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd612b290 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0xd616738b input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xd641723d inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd6c2e04b __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xd6e347fd digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd718024f crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xd722a1dc blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0xd731a5e9 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd771cfd1 napi_hash_del +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd7a20230 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xd7ece218 regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd863d989 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd87fc0a0 usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0xd884067d find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xd8b1aa61 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd8bc7705 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xd8dc7e66 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xd8f78f38 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xd8fd4201 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xd92ef294 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xd936b5f9 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xd93cfe1a regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0xd942d353 ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0xd944d8f9 ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0xd9a34035 __clk_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xd9c36049 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xd9e37d43 bmp085_probe +EXPORT_SYMBOL_GPL vmlinux 0xd9e98bd6 __put_net +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xda07a6c2 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xda07b4a3 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0xda0a4d22 mpic_msgr_enable +EXPORT_SYMBOL_GPL vmlinux 0xda1bfcdc mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xda2197ac tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xda44cb37 setup_charger_manager +EXPORT_SYMBOL_GPL vmlinux 0xda73edaf ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xda8cb2e5 threads_core_mask +EXPORT_SYMBOL_GPL vmlinux 0xda9231d7 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0xda9c0943 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0xdac11bae of_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xdac930ea unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0xdad522e6 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb243b36 __mmu_notifier_invalidate_range_end +EXPORT_SYMBOL_GPL vmlinux 0xdb342812 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xdb3610c5 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL vmlinux 0xdb50d096 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xdb847278 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdb8fe63b skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xdb9da97b inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xdba31816 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xdba4ad93 static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0xdba80fc1 of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0xdbc66592 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xdbc6c019 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xdbcf5270 rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0xdbd0659d rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc0cb288 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdc19981d pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xdc1c0d7c pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0xdc1ceb1a ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xdc1e15f1 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xdc29d33f usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xdc5208f9 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xdc646379 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xdc69beee wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc944621 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xdc956a24 uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0xdc9a60f1 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdcc1ebec pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0xdd178a50 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd348c12 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xdd391eff profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd5ec41d sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xdd729424 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0xdd8b45f4 sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xdd8e6075 ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xddd7df58 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0xddfdb0c6 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xde111fc0 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xde2f3fa5 cpu_remove_dev_attr +EXPORT_SYMBOL_GPL vmlinux 0xde3a337d devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xde425ad7 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0xde4984d2 tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xde50589d ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xde590f7f blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xde600e7f ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xde71b532 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xded3c931 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xdefe136b power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xdf0f5e34 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf1c24c8 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0xdf47c3c6 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xdf71b8a5 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xdf94affa regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xdfba9263 rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xdfe93bc9 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe01c1247 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe036b3e9 mpic_msgr_put +EXPORT_SYMBOL_GPL vmlinux 0xe0450649 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xe04b1e96 rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe0bc1ea1 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0xe0c01d60 dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0xe168a5f5 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0xe1775ee7 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0xe17dd001 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xe17f3c4b regulator_can_change_voltage +EXPORT_SYMBOL_GPL vmlinux 0xe19eb1c4 percpu_ida_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe1bd6c99 rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0xe1c32794 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0xe1ccddf1 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xe217e9d0 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xe22995a8 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xe23077da rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xe23eaca4 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xe26463c5 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0xe26a2a2c uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xe27b0094 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0xe28d6a98 regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0xe29e2cb3 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xe2c7d256 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0xe2f41a69 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe30c3f50 tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0xe30c555d bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xe30fac88 ktime_get_monotonic_offset +EXPORT_SYMBOL_GPL vmlinux 0xe312078d extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe316b343 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0xe34a8633 regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xe3607be8 rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0xe37cbced ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe38d32f9 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0xe3929bdc transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xe397f988 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0xe3d14374 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0xe3e0fa4d crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xe40040b5 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xe4053a68 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xe4114192 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xe47f5331 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0xe4a37b98 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xe4c031f8 btree_merge +EXPORT_SYMBOL_GPL vmlinux 0xe4c29286 thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe4c4b28f gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xe4c8181f sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xe508c4d0 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0xe52ae762 __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0xe535a828 ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0xe548edc1 sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0xe57d3b18 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58499d6 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe5a838c8 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xe5abe8f1 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xe5d86fc0 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xe5fd3968 ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe67a4b15 blkg_prfill_stat +EXPORT_SYMBOL_GPL vmlinux 0xe6888c80 __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xe6a3b048 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xe6b858f2 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0xe6c68334 ddebug_remove_module +EXPORT_SYMBOL_GPL vmlinux 0xe6c7a473 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xe6dbfe30 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6f4c1d6 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xe6fdf3da cgroup_taskset_cur_css +EXPORT_SYMBOL_GPL vmlinux 0xe701f95e user_describe +EXPORT_SYMBOL_GPL vmlinux 0xe7057896 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0xe7145917 usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0xe73dff47 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe7d1a8a8 wm5110_patch +EXPORT_SYMBOL_GPL vmlinux 0xe7fec038 fb_sys_write +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe85a3ee4 ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0xe85c55e7 btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe877ce48 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xe8e4acc4 tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0xe9108ead pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xe92de3ef gpio_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe956097d tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xe96249f3 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xe962e842 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xe9787f9e ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0xe98dc1dd set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xe98ef7ba fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0xe9aa83f3 extcon_get_cable_state +EXPORT_SYMBOL_GPL vmlinux 0xe9b52985 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xe9e62c33 thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea126c99 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0xea173e4e dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea462f33 __mmu_notifier_invalidate_range_start +EXPORT_SYMBOL_GPL vmlinux 0xea73537c dbs_check_cpu +EXPORT_SYMBOL_GPL vmlinux 0xea7930a9 css_rightmost_descendant +EXPORT_SYMBOL_GPL vmlinux 0xea875dad clockevents_unbind +EXPORT_SYMBOL_GPL vmlinux 0xeac5f3f6 tpm_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0xeae50a5b crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xeaee2856 tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xeb05004d pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0xeb085fd5 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xeb1c3628 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xeb4587aa usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xeb62b76e ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xeb6f604d alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xeb70c221 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0xeb8ae736 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xeb98215e cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xeb9abbee ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xeb9f3493 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xebac4df4 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0xebbb7d5b ping_close +EXPORT_SYMBOL_GPL vmlinux 0xebd3b1c6 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xebe7259f usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xebec57c4 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xebef78d1 kvmppc_handle_load +EXPORT_SYMBOL_GPL vmlinux 0xebfe4c82 __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xec049575 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec2ef575 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xec55538e usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xec6459fc bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xecc83561 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0xecee25ba ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xecfdaf30 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xed2740b7 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xed3dbf4b cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xed43e9c0 ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xed5964f8 serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0xed69cc8e proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0xeda00461 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xedbf3cbb of_get_dma_window +EXPORT_SYMBOL_GPL vmlinux 0xedc2994d ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0xedd49930 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xeddee3e0 pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xedf85310 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xee32c031 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xee52b267 powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0xee585afd ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xee64a4c2 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xee6b71c4 syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0xee747f31 rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xee79c5de usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xee8d995a regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xeead44ed page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xeebe7cd8 ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0xeebeb7c7 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0xeedc5a7f put_device +EXPORT_SYMBOL_GPL vmlinux 0xeef959d6 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xef00cc01 extcon_find_cable_index +EXPORT_SYMBOL_GPL vmlinux 0xef311da4 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0xef33d8b0 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xef36d4fb fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xef409b74 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0xef422dca alarm_init +EXPORT_SYMBOL_GPL vmlinux 0xef51f0f1 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xef674f34 reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef8298ea netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0xefcbb7cf crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xefd5c77e regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0xefebe823 tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0xf004c91d ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xf031ebaa adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xf0eb0a5c scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xf113f4b1 inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0xf133fa1d sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xf158f170 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xf15dd154 sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1919a29 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xf1a62b6f of_i8042_kbd_irq +EXPORT_SYMBOL_GPL vmlinux 0xf1b20bba kvm_vcpu_uninit +EXPORT_SYMBOL_GPL vmlinux 0xf1b2be9a spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1f4bf21 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xf1f9755d lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0xf21ace07 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf22b37bb sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xf23ae3c3 pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xf26da4ae ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0xf27977e2 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xf2e0fd73 ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xf2f077cc pkey_id_type_name +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf3012f6c rh_free +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf318b48c cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf3288cea ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xf32e52d3 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0xf36656d8 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xf37f28ed nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xf3a03e5f rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xf3aed9cc shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf40eceff usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xf431b65a ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0xf44167b8 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0xf452a695 evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0xf472a3bd usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xf47b53c2 gfn_to_memslot +EXPORT_SYMBOL_GPL vmlinux 0xf48eba59 class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL_GPL vmlinux 0xf4954775 register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4bd1581 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0xf4c96778 usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0xf4da3546 kvmppc_init_lpid +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf52c41d2 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xf531ace1 regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf56f8bac mmput +EXPORT_SYMBOL_GPL vmlinux 0xf5809df5 clk_register_divider_table +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5acc7bb crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xf5ae8f28 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xf5bcf1b2 __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0xf5e7f053 rh_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf5fb0cd4 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xf5fef4e3 wm5110_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf64fbe2d ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xf676a9c0 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xf698f94c bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0xf69cef99 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xf6a46077 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0xf6ce313c irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf715c0ae debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0xf722bc1a blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xf7231578 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xf7504353 devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0xf7565415 dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0xf761333e ping_proc_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf76435b6 rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0xf77fc76a cgroup_add_cftypes +EXPORT_SYMBOL_GPL vmlinux 0xf796e0b2 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xf7b5f857 uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0xf7cdcb2b sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xf816c866 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0xf81abd58 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf8409386 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf89f566e rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf8b8ae24 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xf8d46acc dma_buf_get +EXPORT_SYMBOL_GPL vmlinux 0xf8e23058 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8fe3d0b kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0xf8ff76db sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xf90d12e0 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xf90d2fab simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xf9154bff inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0xf91b0530 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf921f1b6 usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf932015f __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf935a32c of_property_read_string_helper +EXPORT_SYMBOL_GPL vmlinux 0xf938c066 of_regulator_match +EXPORT_SYMBOL_GPL vmlinux 0xf939ae8d tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xf9623ee2 debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0xf98134b9 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf985212d __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9c5c7fd get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xf9c98f80 trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9f89fcf led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa17ea1d debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0xfa17f471 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa213362 pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0xfa5d008c hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xfa6a5a18 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xfa7abec4 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xfaad74f2 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xfab0ba10 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xfab60503 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xfaf50a3b power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xfb1fb2fc pwm_put +EXPORT_SYMBOL_GPL vmlinux 0xfb289ab7 tpm_read +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb52b77d __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0xfb5cc8c0 irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb7cd8df gfn_to_pfn_async +EXPORT_SYMBOL_GPL vmlinux 0xfb83db03 cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0xfb923337 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xfb95ba73 blkg_stat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0xfbbedefd of_prop_next_string +EXPORT_SYMBOL_GPL vmlinux 0xfbcdbc11 regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xfbf64d96 cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc1d2e02 devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xfc6818dc usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xfc785773 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xfcc88ce2 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfcea4faa pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfcf376fd register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xfd1fdb05 of_pci_msi_chip_remove +EXPORT_SYMBOL_GPL vmlinux 0xfd450f86 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0xfd4b75df pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xfd7d2e27 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xfd8976b0 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xfd9220e4 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0xfd96ccbd __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xfdb1750b crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xfdcb7ea0 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xfdcf3f3a rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xfdef7d6f arizona_dev_init +EXPORT_SYMBOL_GPL vmlinux 0xfdfb1837 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0xfe528469 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xfe5aeab7 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xfe638124 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0xfe65126c anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xfe85e632 regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfea59360 regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0xfeb4f464 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xfeb9dd09 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xfebec64c kvmppc_emulate_instruction +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfeda4e1c look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfef95b21 ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0xff0b8ece __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xff0fd0e5 sdhci_pci_o2_probe +EXPORT_SYMBOL_GPL vmlinux 0xff16d4c0 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xff420d22 md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff7a4868 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xff8862d7 rh_get_stats +EXPORT_SYMBOL_GPL vmlinux 0xff96c45a device_move +EXPORT_SYMBOL_GPL vmlinux 0xffaebf99 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0xffb505ef wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0xffeaa988 pci_check_and_mask_intx --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/powerpc/powerpc-e500mc.compiler +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/powerpc/powerpc-e500mc.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2 --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/powerpc/powerpc-e500mc.modules +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/powerpc/powerpc-e500mc.modules @@ -0,0 +1,3674 @@ +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250_dw +8250_pci +8255 +8255_pci +8390 +88pm800 +88pm805 +88pm80x +88pm80x_onkey +88pm860x_battery +88pm860x_bl +88pm860x_charger +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +ac97_bus +acard-ahci +acecad +acenic +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5380 +ad5398 +ad5421 +ad5446 +ad5449 +ad5504 +ad5624r_spi +ad5686 +ad5755 +ad5764 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7266 +ad7280a +ad7291 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7791 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad7923 +ad799x +ad8366 +ad9523 +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2032 +addi_apci_2200 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +addi_watchdog +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adf4350 +adfs +adi +adis16060 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1275 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +ads1015 +ads7828 +ads7846 +ads7871 +ad_sigma_delta +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adv7170 +adv7175 +adv7180 +advansys +adv_pci1710 +adv_pci1723 +adv_pci1724 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +af_802154 +af9013 +af9033 +af_alg +affs +af_key +af_packet_diag +af-rxrpc +ah4 +ah6 +aha152x_cs +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +ak8975 +algif_hash +algif_skcipher +ali-ircc +alim7101_wdt +alphatrack +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +alx +ambassador +amc6821 +amd5536udc +amd8111e +amplc_dio200_common +amplc_dio200_pci +amplc_pc236 +amplc_pci224 +amplc_pci230 +amplc_pci263 +ams369fg06 +analog +anatop-regulator +ansi_cprng +anubis +aoe +apbps2 +apds9300 +apds9802als +apds990x +appledisplay +appletalk +appletouch +applicom +ar5523 +ar7part +arc4 +arc_emac +arcmsr +arcnet +arc_ps2 +arc-rawmode +arc-rimi +arc_uart +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as3711_bl +as3711-regulator +as3722-regulator +as5011 +asc7621 +asix +ast +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at86rf230 +at91_ether +ata_piix +atbm8830 +aten +ath +ath10k_core +ath10k_pci +ath3k +ath5k +ath6kl_core +ath6kl_sdio +ath6kl_usb +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atm +atmel +atmel_cs +atmel_mxt_ts +atmel_pci +atmel_pwm +atmel-pwm-bl +atmel-rng +atmel-ssc +atmtcp +atp870u +atxp1 +atyfb +au0828 +au8522_common +au8522_decoder +au8522_dig +aufs +auo_k1900fb +auo_k1901fb +auo_k190x +auo-pixcir-ts +authenc +authencesn +auth_rpcgss +autofs4 +avma1_cs +avm_cs +avmfritz +ax25 +ax88179_178a +axnet_cs +b1 +b1dma +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcma-hcd +bcm_wimax +bd6107 +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluecard_cs +bluetooth +bma150 +bma180 +bman_debugfs_interface +bmp085-i2c +bmp085-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +booke_wdt +bpa10x +bpck +bpck6 +bpctl_mod +bpqether +bq2415x_charger +bq24190_charger +bq24735-charger +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcoexist +btcx-risc +btmrvl +btmrvl_sdio +btmtk_usb +btrfs +btsdio +bttv +btuart_cs +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +bypass +c4 +c67x00 +caam +caamalg +caamhash +caam_jr +caamrng +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +caif_usb +caif_virtio +camellia_generic +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5_generic +cast6_generic +cast_common +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcimdas +cb_pcimdda +cc770 +cc770_isa +cc770_platform +c_can +c_can_pci +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +cedusb +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +cifs +ci_hdrc +ci_hdrc_imx +ci_hdrc_msm +ci_hdrc_pci +cirrus +cirrusfb +clearpad_tm1217 +clip +clk-max77686 +clk-s2mps11 +clk-si5351 +clk-twl6040 +clk-wm831x +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm36651 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmac +cmdlinepart +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +configfs +contec_pci_dio +cordic +core +cp210x +cpia2 +cpm_uart +c-qcam +cramfs +crc32 +crc7 +crc8 +crc-ccitt +crc-itu-t +cros_ec +cros_ec_i2c +cros_ec_keyb +cros_ec_spi +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +csiostor +ctr +cts +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24117 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyapa +cyber2000fb +cyberjack +cyclades +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da9030_battery +da9034-ts +da903x +da903x_bl +da9052-battery +da9052_bl +da9052-hwmon +da9052_onkey +da9052-regulator +da9052_tsi +da9052_wdt +da9055-hwmon +da9055_onkey +da9055-regulator +da9055_wdt +da9063-regulator +da9210-regulator +DAC960 +daqboard2000 +das08 +das08_cs +das08_pci +db9 +dc395x +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +ddbridge +de2104x +de4x5 +decnet +deflate +defxx +denali +denali_dt +denali_pci +des_generic +designware_i2s +dgap +dgnc +dgrp +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bio-prison +dm-bufio +dm-cache +dm-cache-cleaner +dm-cache-mq +dm-crypt +dm-delay +dmfe +dm-flakey +dm-log +dm-log-userspace +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-switch +dm-thin-pool +dm-verity +dmx3191d +dm-zero +dnet +dn_rtmsg +docg3 +docg4 +donauboe +dpaa_1588 +dpa_uio +dpt_i2o +drbd +drm +drm_kms_helper +drm_usb +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2781_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt3000 +dt3155v4l +dt9812 +dtl1_cs +dummy +dummy-irq +dvb-as102 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-af9035 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6007 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-rtl28xxu +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb_usb_v2 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc2 +dwc2_pci +dwc2_platform +dwc3 +dwc3-pci +dw_dmac +dw_dmac_core +dw_dmac_pci +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e4000 +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_vlan +ec100 +echo +edac_core +edt-ft5x06 +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efs +egalax_ts +ehset +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +em28xx-rc +emc1403 +emc2103 +emc6w201 +em_canid +em_cmp +emi26 +emi62 +em_ipset +em_meta +em_nbyte +empeg +ems_pci +ems_pcmcia +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +eni +enic +epat +epia +epic100 +eql +esas2r +esd_usb2 +esi-sir +esp4 +esp6 +et131x +ethoc +evbug +exofs +extcon-adc-jack +extcon-arizona +extcon-gpio +extcon-max77693 +extcon-max8997 +extcon-palmas +ezusb +f2fs +f75375s +f81232 +fakelb +fan53555 +farsync +faulty +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +fid +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +firewire-serial +fit2 +fit3 +fixed +fld +flexcan +floppy +fm801-gp +fmc +fmc-chardev +fmc-fakedev +fmc-trivial +fmc-write-eeprom +fm_drv +fmvj18x_cs +forcedeth +fore_200e +fotg210-hcd +fotg210-udc +freevxfs +friq +frpw +fsa9480 +fscache +fs_enet +fsl-diu-fb +fsldma +fsl_elbc_nand +fsl_hypervisor +fsl_ifc_nand +fsl_pq_mdio +fsl_qe_udc +fsl_upm +fsl_usb2_udc +ft1000 +ft1000_pcmcia +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +fusbh200-hcd +g450_pll +g760a +g762 +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdmtty +gdmulte +gdmwm +gdth +generic +generic-adc-battery +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gianfar_driver +gianfar_ptp +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_ncm +g_nokia +go7007 +go7007-loader +go7007-usb +goku_udc +goldfishfb +gp2ap002a00f +gp2ap020a00f +gpio +gpio-74x164 +gpio-addr-flash +gpio-adnp +gpio-adp5520 +gpio-adp5588 +gpio-amd8111 +gpio-arizona +gpio_backlight +gpio-charger +gpio-da9052 +gpio-da9055 +gpio-dwapb +gpio-fan +gpio-generic +gpio-grgpio +gpio-ir-recv +gpio-janz-ttl +gpio-kempld +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-rdc321x +gpio-regulator +gpio_tilt_polled +gpio-tps65912 +gpio-ts5500 +gpio-twl4030 +gpio-twl6040 +gpio-ucb1400 +gpio-viperboard +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +grcan +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_jl2005bcd +gspca_kinect +gspca_konica +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_nw80x +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_se401 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stk1135 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gxt4500 +g_zero +hamachi +hampshire +hanwang +hci +hci_uart +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hid +hid-a4tech +hid-apple +hid-appleir +hid-aureal +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-elo +hid-emsff +hid-ezkey +hid-gaff +hid-generic +hid-gyration +hid-holtekff +hid-holtek-kbd +hid-holtek-mouse +hid-huion +hid-icade +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-lenovo-tpkbd +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-rmi +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-isku +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-konepure +hid-roccat-kovaplus +hid-roccat-lua +hid-roccat-pyra +hid-roccat-ryos +hid-roccat-savu +hid-saitek +hid-samsung +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-gyro-3d +hid-sensor-hub +hid-sensor-iio-common +hid-sensor-magn-3d +hid-sensor-trigger +hid-sjoy +hid-sony +hid-speedlink +hid-steelseries +hid-sunplus +hid-thingm +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-xinmo +hid-zpff +hid-zydacron +hih6130 +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hpfs +hpilo +hpsa +hptiop +hsi +hsi_char +hso +hsr +htc-pasic3 +htu21 +huawei_cdc_ncm +hwa-hc +hwa-rc +hwmon-vid +hx8357 +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-usb +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-arb-gpio-challenge +i2c-cbus-gpio +i2c-cpm +i2c-designware-core +i2c-designware-pci +i2c-designware-platform +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-hid +i2c-i801 +i2c-isch +i2c-kempld +i2c-matroxfb +i2c-mpc +i2c-mux +i2c-mux-gpio +i2c-mux-pca9541 +i2c-mux-pca954x +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-piix4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-viperboard +i2c-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i40e +i40evf +i5k_amb +i6300esb +i740fb +i82092 +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_isert +ib_mad +ibmaem +ibmpex +ib_mthca +ib_sa +ib_srp +ib_srpt +ib_ucm +ib_umad +ib_uverbs +icp_multi +ics932s401 +idmouse +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iguanair +iio_dummy +iio_hwmon +iio-trig-interrupt +iio-trig-periodic-rtc +iio-trig-sysfs +ili210x +ili922x +ili9320 +imm +imon +ims-pcu +imx074 +imx_thermal +ina209 +ina2xx +industrialio +industrialio-triggered-buffer +inet_diag +inexio +inftl +initio +input-polldev +int51x1 +intel_vr_nor +interact +interval_tree_test +inv-mpu6050 +ioc4 +io_edgeport +io_ti +iowarrior +ip6_gre +ip6table_filter +ip6table_mangle +ip6table_nat +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_MASQUERADE +ip6t_mh +ip6t_NPT +ip6t_REJECT +ip6t_rpfilter +ip6t_rt +ip6t_SYNPROXY +ip6_tunnel +ip6_vti +ipack +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_poweroff +ipmi_si +ipmi_watchdog +ipoctal +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netnet +ip_set_hash_netport +ip_set_hash_netportnet +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_MASQUERADE +ipt_REJECT +ipt_rpfilter +ipt_SYNPROXY +ipt_ULOG +ip_tunnel +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ip_vti +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sanyo-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it913x-fe +itd1000 +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwldvm +iwlegacy +iwlmvm +iwlwifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +kafs +kalmia +kaweth +kbic +kbtab +kcomedilib +ke_counter +kempld-core +kempld_wdt +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +ko2iblnd +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksocklnd +ksz884x +ktti +kvaser_pci +kvaser_usb +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +l2tp_ppp +l4f00242t03 +l64781 +lanai +lapb +lapbether +latch-addr-flash +lattice-ecp3-config +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-atmel-pwm +leds-bd2802 +leds-blinkm +leds-da903x +leds-da9052 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lm3533 +leds-lm355x +leds-lm3642 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lp5562 +leds-lp55xx-common +leds-lp8501 +leds-lp8788 +leds-lt3593 +leds-max8997 +leds-mc13783 +leds-ot200 +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pca9685 +leds-pwm +leds-regulator +leds-tca6507 +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-camera +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-oneshot +ledtrig-timer +ledtrig-transient +legousbtower +lg2160 +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libceph +libcfs +libcomposite +libcrc32c +libcxgbi +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc +llc2 +llog_test +ll_temac +lm25066 +lm3533-als +lm3533_bl +lm3533-core +lm3533-ctrlbank +lm3630a_bl +lm3639_bl +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm8333 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95234 +lm95241 +lm95245 +lmc +lms283gf05 +lms501kf03 +lmv +lnbp21 +lnbp22 +lnet +lnet_selftest +lockd +lov +lp +lp3971 +lp3972 +lp855x_bl +lp8727_charger +lp8755 +lp8788_bl +lp8788-charger +lpc_ich +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc2978 +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lustre +lv5207lp +lvfs +lz4 +lz4_compress +lz4hc +lz4hc_compress +m25p80 +m2m-deinterlace +m52790 +m88rs2000 +ma600-sir +mac80211 +mac80211_hwsim +mac802154 +macb +mac-celtic +mac-centeuro +mac-croatian +mac-cyrillic +mac-gaelic +mac-greek +mac_hid +mac-iceland +mac-inuit +mac-roman +mac-romanian +mac-turkish +macvlan +macvtap +mag3110 +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix-keymap +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16064 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max197 +max2165 +max3100 +max34440 +max517 +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77686 +max77693 +max8649 +max8660 +max8688 +max8903_charger +max8907 +max8907-regulator +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8973-regulator +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-i2c +mc13xxx-regulator-core +mc13xxx-spi +mc44s803 +mceusb +mcp2120-sir +mcp251x +mcp3021 +mcp320x +mcp3422 +mcp4725 +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memstick +mena21_wdt +metronomefb +metro-usb +mfd +mga +mgc +michael_mic +microread +microread_i2c +microtek +mii +mii-bitbang +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mlx5_core +mlx5_ib +mma8450 +mmc_block +mms114 +mos7720 +mos7840 +moxa +mpc85xx_edac +mpoa +mpr121_touchkey +mpt2sas +mpt3sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrf24j40 +mrp +mrst_max3110 +ms_block +msdos +msp3400 +mspro_block +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt29f_spinand +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +musb_am335x +musb_dsps +musb_hdrc +mv643xx_eth +mv88e6060 +mv88e6xxx_drv +mvmdio +mvsas +mv_u3d_core +mv_udc +mvumi +mwifiex +mwifiex_pcie +mwifiex_sdio +mwifiex_usb +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxser +myri10ge +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +nau7802 +navman +nbd +nci +ncpfs +ne2k-pci +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netlink_diag +netprio_cgroup +netrom +netxen_nic +newtonkbd +nfc +nfc_digital +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcsim +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_ipv4 +nf_nat_ipv6 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nfsv2 +nfsv3 +nfsv4 +nf_synproxy_core +nf_tables +nf_tables_arp +nf_tables_bridge +nf_tables_ipv4 +nf_tables_ipv6 +nft_chain_nat_ipv4 +nft_chain_nat_ipv6 +nft_chain_route_ipv4 +nft_chain_route_ipv6 +nft_compat +nft_counter +nft_ct +nft_exthdr +nft_hash +nftl +nft_limit +nft_log +nft_meta +nft_nat +nft_rbtree +nft_reject_ipv4 +ngene +n_hdlc +ni_6527 +ni_65xx +ni_660x +ni_670x +nicstar +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_cs +ni_labpc_pci +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nlmon +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +nosy +notifier-error-inject +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc-ircc +nsp32 +nsp_cs +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +null_blk +nvidiafb +nvme +nxt200x +nxt6000 +obdclass +obdecho +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ocrdma +ofpart +of_serial +old_belkin-sir +olpc_apsp +omfs +omninet +on20 +on26 +onenand +opencores-kbd +openvswitch +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osc +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7640 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +ozwpan +p54common +p54pci +p54spi +p54usb +p8022 +p8023 +palmas-regulator +pandora_bl +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87410 +pata_ns87415 +pata_of_platform +pata_oldpiix +pata_opti +pata_optidma +pata_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc300too +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci-stub +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcnet32 +pcnet_cs +pcrypt +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc_adma +peak_pci +peak_pcmcia +peak_usb +pegasus +penmount +percpu_test +pf +pfuze100-regulator +pg +phantom +phison +phonet +phram +phy-core +phy-exynos-dp-video +phy-fsl-usb2 +phy-generic +phy-gpio-vbus-usb +phy-isp1301 +phy-rcar-usb +phy-samsung-usb +phy-samsung-usb2 +phy-samsung-usb3 +physmap +physmap_of +pixcir_i2c_ts +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm80xx +pmbus +pmbus_core +pmc551 +pmcraid +pm-notifier-error-inject +pn533 +pn544 +pn544_i2c +pn_pep +port100 +poseidon +powermate +ppa +ppc-corenet-cpufreq +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +psmouse +psnap +pt +ptlrpc +ptp +pvrusb2 +pwc +pwm_bl +pwm-pca9685 +pwm-twl +pwm-twl-led +pxa27x_udc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qman_debugfs_interface +qmi_wwan +qnx4 +qnx6 +qt1010 +qt1070 +qt2160 +quatech2 +quatech_daqp_cs +quota_tree +quota_v1 +quota_v2 +qxl +r128 +r592 +r6040 +r8152 +r815x +r8169 +r8187se +r8188eu +r8192e_pci +r8192u_usb +r820t +r852 +r8712u +r8a66597-hcd +r8a66597-udc +radeon +radio-i2c-si470x +radio-keene +radio-ma901 +radio-maxiradio +radio-mr800 +radio-shark +radio-si4713 +radio-si476x +radio-tea5764 +radio-timb +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +ray_cs +rbd +rbtree_test +rc5t583-regulator +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rcar_vin +rc-asus-pc39 +rc-asus-ps3-100 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-delock-61959 +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-it913x-v1 +rc-it913x-v2 +rc-kaiomy +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-msi-digivox-ii +rc-msi-digivox-iii +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-reddo +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-total-media-in-hand-02 +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +remoteproc +renesas_usbhs +retu-mfd +retu-pwrbutton +retu_wdt +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-gpio +rfkill-regulator +rio500 +rionet +rio-scan +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rp2 +rpcsec_gss_krb5 +rsxx +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800mmio +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm80x +rtc-88pm860x +rtc-ab3100 +rtc-as3722 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc_cmos_setup +rtc-da9052 +rtc-da9055 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds2404 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-generic +rtc-hid-sensor-time +rtc-isl12022 +rtc-isl1208 +rtc-lp8788 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max77686 +rtc-max8907 +rtc-max8925 +rtc-max8997 +rtc-max8998 +rtc-mc13xxx +rtc-moxart +rtc-msm6242 +rtc-palmas +rtc-pcf2123 +rtc-pcf2127 +rtc-pcf50633 +rtc-pcf8523 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rc5t583 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx4581 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-s5m +rtc-snvs +rtc-stk17ta8 +rtc-tps6586x +rtc-tps65910 +rtc-tps80031 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rtl2830 +rtl2832 +rtl8150 +rtl8180 +rtl8187 +rtl8188ee +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtl8723ae +rtl8723be +rtl8723-common +rtl8821ae +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtl_pci +rtl_usb +rtlwifi +rts5139 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rx51_battery +rxkad +s1d13xxxfb +s2250 +s2255drv +s2io +s2mps11 +s3fb +s5h1409 +s5h1411 +s5h1420 +s5m8767 +s626 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +salsa20_generic +samsung-keypad +sata_fsl +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_rcar +sata_sil +sata_sil24 +sata_sis +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sbe-2t3e3 +sbp_target +sbs-battery +sc92031 +sca3000 +sch_atm +sch_cbq +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_fq +sch_fq_codel +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_plug +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +sctp +sctp_probe +sdhci +sdhci-of-esdhc +sdhci-of-hlwd +sdhci-pci +sdhci-pltfm +sdhci-pxav2 +sdhci-pxav3 +sdio_uart +sdricoh_cs +sdr-msi3101 +sedlbauer_cs +seed +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent_generic +serport +serqt_usb2 +ses +sfc +sha1-powerpc +shark2 +sh_eth +sh_mobile_ceu_camera +sh_mobile_csi2 +shpchp +sht15 +sht21 +sh_veu +si21xx +si4713-i2c +si476x-core +sidewinder +sierra +sierra_net +sil164 +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_of_platform +sja1000_platform +skel +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slip +slram +sm501 +sm501fb +sm7xxfb +smb347-charger +smc91c92_cs +sm_common +sm_ftl +smm665 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +snd +snd-ac97-codec +snd-ad1889 +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-aloop +snd-als300 +snd-als4000 +snd-at73c213 +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-compress +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dice +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-firewire-lib +snd-firewire-speakers +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-ca0110 +snd-hda-codec-ca0132 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-isight +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lola +snd-lx6464es +snd-maestro3 +snd-mia +snd-mixart +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-scs1x +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-atmel-pcm +snd-soc-core +snd-soc-si476x +snd-soc-simple-card +snd-sonicvibes +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usb-hiface +snd-usbmidi-lib +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +soc_scale_crop +softdog +softing +softing_cs +solo6x10 +solos-pci +sony-btf-mpx +soundcore +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_dectlk +speakup_dummy +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +spectrum_cs +speedfax +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw +spi-dw-midpci +spi-dw-mmio +spi-gpio +spi_ks8995 +spi-lm70llp +spi-oc-tiny +spi-pxa2xx-pci +spi-pxa2xx-platform +spi-sc18is602 +spi-tle62x0 +spi-topcliff-pch +spi-xcomm +squashfs +sr9700 +ssb +ssb-hcd +ssd1307fb +ssfdc +sst25l +ssu100 +st +st1232 +st_accel +st_accel_i2c +st_accel_spi +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste_modem_rproc +stex +st_gyro +st_gyro_i2c +st_gyro_spi +stinger +stir4200 +stk1160 +stkwebcam +st_magn +st_magn_i2c +st_magn_spi +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +st_pressure +st_pressure_i2c +st_pressure_spi +streamzap +st_sensors +st_sensors_i2c +st_sensors_spi +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +sur40 +svcrdma +svgalib +sx8 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synaptics_usb +synclink +synclink_cs +synclink_gt +synclinkmp +sysv +t1pci +talitos +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tca8418_keypad +tcm_fc +tcm_loop +tcm_qla2xxx +tcm_usb_gadget +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tcs3472 +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tda998x +tdfx +tdfxfb +tdo24m +tea +tea575x +tea5761 +tea5767 +tea6415c +tea6420 +team +team_mode_activebackup +team_mode_broadcast +team_mode_loadbalance +team_mode_random +team_mode_roundrobin +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +test-string_helpers +tg3 +tgr192 +thmc50 +ti-adc081c +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmp006 +tmp102 +tmp401 +tmp421 +tmscsim +toim3232-sir +touchit213 +touchright +touchwin +tpci200 +tpm_atmel +tpm_i2c_atmel +tpm_i2c_infineon +tpm_i2c_nuvoton +tpm_i2c_stm_st33 +tpm-rng +tps51632-regulator +tps6105x +tps6105x-regulator +tps62360-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps65090-charger +tps65090-regulator +tps65217 +tps65217_bl +tps65217-regulator +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +tps80031-regulator +trancevibrator +tranzport +tridentfb +ts2020 +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +tsl2x7x_core +tsl4531 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +tua6100 +tua9001 +tulip +tuner +tuner_it913x +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tusb6010 +tvaudio +tveeprom +tvp5150 +tw2804 +tw9903 +tw9906 +tw9910 +twidjoy +twl4030_charger +twl4030_keypad +twl4030-madc +twl4030-madc-hwmon +twl4030-pwrbutton +twl4030-vibra +twl4030_wdt +twl6030-gpadc +twl6040-vibra +twofish_common +twofish_generic +typhoon +u132-hcd +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +ucd9000 +ucd9200 +uda1342 +udc-core +udf +udl +udp_diag +ueagle-atm +u_ether +ufs +ufshcd +ufshcd-pci +ufshcd-pltfrm +uhid +uio +uio_aec +uio_cif +uio_dmem_genirq +uio_mf624 +uio_netx +uio_pci_generic +uio_pdrv_genirq +uio_sercos3 +uli526x +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unix_diag +upd64031a +upd64083 +uPD98402 +u_rndis +usb3503 +usb_8dev +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_f_acm +usb_f_ecm +usb_f_ecm_subset +usb_f_eem +usb_f_mass_storage +usb_f_ncm +usb_f_obex +usb_f_phonet +usb_f_rndis +usb_f_serial +usb_f_ss_lb +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmisc_imx +usbmon +usbmouse +usbnet +usbserial +usb-serial-simple +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbtv +usbvision +usb_wwan +u_serial +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +ux500 +v4l2-common +v4l2-dv-timings +v4l2-int-device +v4l2-mem2mem +vcan +vcnl4000 +ves1820 +ves1x93 +veth +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost +vhost_net +vhost_scsi +via +via686a +via-ircc +via-rhine +via-sdmmc +via-velocity +videobuf2-core +videobuf2-dma-contig +videobuf2-dma-sg +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +viperboard +viperboard_adc +virtio +virtio_balloon +virtio_blk +virtio_console +virtio_mmio +virtio_net +virtio_pci +virtio_ring +virtio-rng +virtio_scsi +virtual +visor +vivi +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_pio2 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmwgfx +vmxnet3 +vp27smpx +vpx3220 +vringh +vsock +vsxxxaa +vt6655_stage +vt6656_stage +vt8231 +vt8623fb +vub300 +vx855 +vxge +vxlan +w1_bq27000 +w1_ds2408 +w1_ds2413 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1_ds2781 +w1_ds28e04 +w1-gpio +w1_smem +w1_therm +w35und +w5100 +w5300 +w6692 +w83781d +w83791d +w83792d +w83793 +w83795 +w83977af_ir +w83l785ts +w83l786ng +w90p910_ts +w9966 +wacom +wacom_i2c +wacom_w8001 +walkera0701 +wanxl +warrior +wbsd +wcn36xx +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wil6210 +wimax +winbond-840 +windfarm_core +wire +wishbone-serial +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl18xx +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wlcore +wlcore_sdio +wlcore_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +xc4000 +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_algo +xfrm_ipcomp +xfrm_user +xfs +xgene-enet +xgifb +xgmac +xilinx_ps2 +xilinx_uartps +xillybus_core +xillybus_of +xillybus_pcie +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +xsens_mt +x_tables +xt_addrtype +xt_AUDIT +xt_bpf +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlabel +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_ecn +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_HMARK +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_LOG +xt_mac +xt_mark +xt_multiport +xt_nat +xt_NETMAP +xt_nfacct +xt_NFLOG +xt_NFQUEUE +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xt_REDIRECT +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +zatm +zaurus +zd1201 +zd1211rw +zforce_ts +zhenhua +zl10036 +zl10039 +zl10353 +zl6100 +zlib +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram +zte_ev --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/powerpc/powerpc-smp +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/powerpc/powerpc-smp @@ -0,0 +1,16475 @@ +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0x4c4d8381 suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xa4086827 uPD98402_init +EXPORT_SYMBOL drivers/bcma/bcma 0xb424e412 bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x127a5901 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/paride/paride 0x0300a23f pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x10a51b15 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x3502da60 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x3a526428 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x4aeb7bf2 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x5142fc25 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x89af5313 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xa1c12ae8 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xab1a82d1 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xd1221a65 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xe61ee8bb pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xf5521a1f pi_write_block +EXPORT_SYMBOL drivers/char/apm-emulation 0x129e74f2 apm_get_power_status +EXPORT_SYMBOL drivers/char/apm-emulation 0xdf3329b8 apm_queue_event +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x33f1df8b dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x401b2afa dw_dma_cyclic_free +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xc5c2b23a dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xd0f41d29 dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xdb2b61da dw_dma_get_src_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xffad96f5 dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/edac/edac_core 0x9dc65b47 edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x020dd906 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0244f13d fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04fa734a fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0b60cf59 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x17ab1a6d fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1f733726 fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0x26360f47 fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x44abdb36 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5570d406 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x66453fc4 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x66fb6413 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6e51e7ad fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fc955a2 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8346c477 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x871b5201 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8c9063d1 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8fa76bf8 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x97f08558 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xaad35d14 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xaf80bbf7 fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb7204a1d fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xba3bcfbc fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc89c7b55 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xccb62a05 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe6e9f132 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf102262d fw_fill_response +EXPORT_SYMBOL drivers/fmc/fmc 0x2e932570 fmc_device_unregister_n +EXPORT_SYMBOL drivers/fmc/fmc 0x36974b7d fmc_show_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x4020e731 fmc_driver_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x4e76b64a fmc_device_register +EXPORT_SYMBOL drivers/fmc/fmc 0x5d753c03 fmc_device_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x67fe027b fmc_device_register_n +EXPORT_SYMBOL drivers/fmc/fmc 0x9f972712 fmc_free_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xc0b58e9e fmc_scan_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xc46d3b05 fmc_driver_register +EXPORT_SYMBOL drivers/fmc/fmc 0xc96f55e8 fmc_reprogram +EXPORT_SYMBOL drivers/fmc/fmc 0xdaf1c7d7 fmc_find_sdb_device +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00025916 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00667d8a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01799cda drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x026c0d6b drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x032e76b3 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04817cf0 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04e27a39 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05eaf37b drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a0b3333 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a19ddbb drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0bf0d872 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0de36480 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ec527fc drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ed7e98b drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x107742a9 drm_get_subpixel_order_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x10b40f9b drm_gem_dumb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1224efa4 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12875fbd drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x132eaf62 drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13cdaadb drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a9a178 drm_get_format_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x169e363c drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16a920ad drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x188529c9 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1889885f drm_bridge_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x189f6401 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19e44324 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a770ac3 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1aa67152 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f9ea620 drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2020db27 drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2036e259 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2082f948 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25ac71f0 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x264b5e39 drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26d343a0 drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26e05227 drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0x288b97f4 drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29ad006c drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29d8d325 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a942ab2 drm_mm_insert_node_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d80be4d drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e7a4300 drm_rgb_quant_range_selectable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f0b064f drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30051cb6 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x345c16a3 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x354a2592 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3699bc12 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36f91ef3 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3796e283 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a4f7ae drm_format_num_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x394021cc drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ac1fef9 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ae7b2d0 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b9d009a drm_format_plane_cpp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3bc5553c drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d4b8108 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3de29f33 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f2c3e75 drm_bridge_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f306292 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40848005 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40a53038 drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41d2ae16 drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42ea2988 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4388fdb5 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x445fe894 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45f3823b drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46069ab9 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x462c367d drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46ce2724 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47ca91fd drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47e60040 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4964956d drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49e879b1 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49fabf0d drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a6c5e1a drm_dev_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4abaa01d drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4aec7965 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ba4ac1d drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c511235 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c9a9e71 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4cc97dce drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d919660 drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x500c8e4d drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50195ecc drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e28c07 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5214ce1a drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x524a7c74 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x526f6f71 drm_rect_calc_hscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x530a4874 drm_prime_destroy_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57135cda drm_prime_sg_to_page_addr_arrays +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a268d54 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c046e0c drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c650b36 drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c779a30 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f5e681b drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x600ee043 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6090be61 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63114b54 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6389b12d drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63f6763b drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x642d19ae drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x651b11cd drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66803841 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6686a429 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66b38c5e drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6823e650 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6900d335 drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a7e882c drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cee2e42 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7009d836 drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x708d42f1 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x724573f1 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72763916 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x768dce87 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77b558a1 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79ee8431 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4e7297 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bd3b29c drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bf9853e drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7dbd90a2 drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7eb5025b drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fce24dc drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x816c175f drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81ba930c drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82031c30 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86961988 drm_pcie_get_speed_cap_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a60841a drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de13715 drm_format_vert_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e04ce00 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7df3a7 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9250f053 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x965757a2 drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x967feb7e drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x97103763 drm_prime_init_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9972db48 drm_rect_calc_vscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9acd422e drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c737e81 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d70fc2a drm_rnodes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9eccfe56 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9efc26a3 drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0b017e5 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0eeebfc drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1f4e9e6 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa28078b2 drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa35c94d0 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5dbd572 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8d63209 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa96acfcb drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae92edf1 drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaecb1715 drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafb0cb6f drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0198cde drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb03334f6 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1981a6e drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1cbc07f drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb33ff25d drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb572a9f0 drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5ce8265 drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a60614 drm_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6f252df drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb7a7eced drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8c2129f drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb957cc6d drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95beb55 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9f5e351 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba66843d drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc5991bb drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd24e7a7 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd6a8b4c drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd911d4c drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe001c53 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe793aae drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbfd29a67 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0ea1f6e drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4000f9f drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc677a58a drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6bb06ec drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc70be546 drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7f7cc11 drm_vma_offset_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc86022e3 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca45efbc drm_format_horz_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc8a7fbd drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xccea27d4 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdb432d3 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcec158f0 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcfe4cae2 drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0207809 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0c0107e drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1d30b76 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1f6e9a8 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2335101 drm_fb_get_bpp_depth +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2f54aa8 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd37cfe00 drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd54c4ba8 drm_crtc_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6dfb77e drm_framebuffer_reference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd858fea4 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdafb341f drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb237a4a drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb5a5852 drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb7509be drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf9365b3 drm_unplug_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdfc75e4c drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe276d6b5 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2ef97e4 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe52bd1f7 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe542a620 drm_mode_group_init_legacy_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe593fe7f drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f46e6e drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8162bcd drm_framebuffer_unreference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9e1d500 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb7d463a drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec0c1203 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec1e3cc2 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed5a0949 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef7de791 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefdf9b69 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf00bcc9c drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf08d712a drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1334ca8 drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf18df92b drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf219f21d drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf446a0e2 drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4c56da0 drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf56c093c drm_connector_unplug_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf58b6feb drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf60d2cd3 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6d3a423 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6f27238 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7fa3ae5 drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9cc162f drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb497216 drm_mm_insert_node_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc4fe1f5 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfce5469b drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd063935 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe4a68c7 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc6c87a drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x07844dae drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x08611c98 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x098e47d2 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0ced7c92 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f96ec70 drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x15673657 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x163251c8 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1cab0672 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2110752a drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x299ff068 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2cdebb9e drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x316b6627 drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x32951d93 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34871adf drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3cf99bc7 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4859dfa9 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4c55adae drm_pick_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4e08c17d drm_dp_link_power_up +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5213c93f drm_dp_link_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x536b6515 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x56dc5813 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x59cd58f5 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5e606b22 drm_has_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x61233ccb drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6a3db82a drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6d715b10 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x711a004a drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x756dc9ac drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7ef2963a drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8274bbc1 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84e924ba drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x882f0be2 drm_dp_aux_unregister_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9da1d07e drm_dp_link_configure +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa77858bb drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa7b5c373 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa82b9157 drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa85e1618 drm_dp_aux_register_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8d6809d drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xab3b0edb drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xca6fa4fd drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xce3e37ab drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd858b8ed drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd9945bb7 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xde2d3b98 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdf77d0cd drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xecc259f6 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xefdc55ef drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf24ca3b9 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf2829281 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf87cfe7c drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x11d2baf4 drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x9cc76050 drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0xe78e2931 drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0f58c46f ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x101937f0 ttm_pool_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x12cb5c90 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x13e5ed99 ttm_bo_del_sub_from_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1db8ca7e ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x21b8dbf6 ttm_dma_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x23bb9c29 ttm_mem_io_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x25f39b76 ttm_agp_tt_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x284f6ce8 ttm_mem_io_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x31bf21bb ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x42fd91a1 ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x465c31dc ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x485a5bc0 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4c8094ec ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4e3e788f ttm_bo_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x55e31e4e ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x57817175 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x57a8e302 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5a8fdfea ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5c719562 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cf59609 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5fab84c8 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x612072b1 ttm_mem_io_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x644e2f3c ttm_bo_add_to_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b1d568 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x686f724a ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6a30a67c ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x761beefe ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x76556d8b ttm_bo_dma_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x782017bc ttm_dma_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78a63f8e ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d55da85 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d76e611 ttm_agp_tt_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x83190cbe ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x84a13931 ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x880a15ad ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x89a443de ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8a33a398 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d14adbf ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x91fdb39a ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x94894449 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x955de384 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa27b16d5 ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2a129fd ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa73de2a9 ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaaa14624 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xab815172 ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xada01bbb ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb2914dce ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb2cd116e ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb83c6470 ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbe8f8e46 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc22e9ad0 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc294153d ttm_agp_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc3a62b9d ttm_pool_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc5f0c2da ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc94c0677 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xca07bfe4 ttm_mem_io_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce6e43a8 ttm_base_object_lookup_for_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd3b021e6 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd4c3194a ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7358ff7 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7e8f9e9 ttm_prime_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7f51742 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd8edb115 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe33560a4 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe38e0d4e ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe48596a3 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xec1cef1c ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfdf1b73b ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xffbc7f5a ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xffe52456 ttm_bo_mem_put +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xbe039ec2 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xfce352df i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xdec5a1ee amd756_smbus +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x8395c05b st_accel_common_remove +EXPORT_SYMBOL drivers/iio/accel/st_accel 0xcd4ef4a0 st_accel_common_probe +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x07e53a06 hid_sensor_read_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x0bc6cfcb hid_sensor_write_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x0c8df13b hid_sensor_write_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x0e18e51d hid_sensor_parse_common_attributes +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xc5d1d591 hid_sensor_read_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x029a66e5 hid_sensor_setup_trigger +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0xcca8e70c hid_sensor_remove_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x074d7047 st_sensors_trigger_handler +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x1399b513 st_sensors_set_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x15ced456 st_sensors_sysfs_scale_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x26362089 st_sensors_set_dataready_irq +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x59ce2296 st_sensors_check_device_support +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x5d68ae51 st_sensors_set_odr +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x70535024 st_sensors_get_buffer_element +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x72a5fa1c st_sensors_sysfs_get_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x7c954334 st_sensors_allocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x7cf363ff st_sensors_init_sensor +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x85533634 st_sensors_sysfs_set_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xbdcaa703 st_sensors_set_fullscale_by_gain +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xc5fcc766 st_sensors_set_axis_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xd5d36b3a st_sensors_read_info_raw +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xe1848570 st_sensors_sysfs_sampling_frequency_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xfaae3ffa st_sensors_deallocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0x11555bf3 st_sensors_i2c_configure +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0xa1a26d6d st_sensors_spi_configure +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x37d94470 st_gyro_common_remove +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x96fc2061 st_gyro_common_probe +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x06fae43d adis_enable_irq +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0xb78ba06b adis_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/industrialio 0x0a415470 iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0x1522a50b iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x1d8ab777 iio_buffer_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x1f4fd707 iio_buffer_read_length +EXPORT_SYMBOL drivers/iio/industrialio 0x2106343d iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x3148cad7 iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0x3a5a7aa5 iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0x59216d2c iio_buffer_write_length +EXPORT_SYMBOL drivers/iio/industrialio 0x5bdfa21a iio_buffer_store_enable +EXPORT_SYMBOL drivers/iio/industrialio 0x60ef6a2f iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x6b292aa0 iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/iio/industrialio 0x7509f64b iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x79584661 iio_buffer_register +EXPORT_SYMBOL drivers/iio/industrialio 0x7b966129 iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0x92623e6f iio_buffer_show_enable +EXPORT_SYMBOL drivers/iio/industrialio 0xa7ce6477 iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0xa9ae8e47 iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0xb0cb2f54 iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0xb11f8963 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/iio/industrialio 0xc6086775 iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0xd20a4ed7 iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xdfd4cbd3 iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xfef7f19f iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x980b5230 iio_triggered_buffer_setup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x9c024a54 iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/kfifo_buf 0x1d8d2373 iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/kfifo_buf 0xd44d965a iio_kfifo_free +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0xb5ae5f69 st_magn_common_probe +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0xe274d3ef st_magn_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x2c1948b3 st_press_common_probe +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0xef4b8a1d st_press_common_remove +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x049ace30 rdma_addr_find_smac_by_sgid +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x04b8b6d7 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1c3c0ad3 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1ea5767b rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x273f4cca rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x32a8402c rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x446fd7c9 rdma_addr_find_dmac_by_grh +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x59252c9d rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc65ef7ab rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0bb670ee ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2dbe3501 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x420c3101 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x43e9a168 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4b5af11e ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5eb3e26e ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6296df02 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x685b1d93 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6d0ea326 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x71d5c901 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7532965d ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7935f920 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x919b3e54 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xaba090c5 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb2e4e904 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb40010ba ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc86a8661 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0235c469 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x03171ddd ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06244270 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x08a60747 ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0ab3a509 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0ef8eff1 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x10e1a3be ib_create_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x11d88be6 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x12c82d35 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14c92106 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x16cd358a ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1c0292a5 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1eba4ad5 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22ff8380 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2766bdfc ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x27f5c894 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c93a9b3 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2dfe9d1b ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ecdd8a8 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x302271c4 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x305388f5 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x32ef1bfc ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x374e3a6c ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3950dd8e ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45aa997c ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4880e67f ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x49ed3839 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4a53ff6d ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4be60c0f ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4dac7348 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4dfb3049 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4eed1006 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x513fabe2 ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53f8578c ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55a3af0f ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x595ee840 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5b453e87 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5b45989d ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5e7877e2 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x65df9e26 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x67f76dab ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6958d10e ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6c670a7a ib_destroy_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6db0c87b ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e030e26 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x71b270be ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x71c499a1 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x74890292 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x79ef07e3 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7bdec386 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7c6a41d6 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x81357224 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x863061c9 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9513d924 ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x99aad502 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d1d83a7 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac217df9 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf6e40a3 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb190a7cc ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb5851c5d ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb7514bc3 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbae38119 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbb9ad71e ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbf4d761d ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4d997db ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcc7f0358 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd0d0bfa3 ib_resolve_eth_l2_attrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd0dd9485 rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd6b26f9a ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd6efc918 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xebd56bc0 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xecdf0f78 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xee9d08f1 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeecf8ae0 ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf4c2dfba ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5e56a2e ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf98c1bca ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa4ec938 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0d576b1a ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x11c1b0cd ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x26f26b63 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2ba177de ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x419ab3bf ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4584759f ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6cbce06c ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x98842f16 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa1beb158 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb1ce3ccf ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xbb2186a2 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd1178f45 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x22f07253 ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x39ccb3b7 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x4303ea54 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5328d7a6 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9a1cd50d ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa0723b8f ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa9cf6ea8 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xd679cb3e ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xdd212acf ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xddc330e7 ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xfc774313 ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x2569d757 ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x52a6ce77 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7971c00e ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe350f2aa ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3089a053 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4e70834c iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4eac13be iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x896d3122 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x92e1ae54 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x9c68513b iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xbdb0a1c9 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xbed50525 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x08fb4076 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2562e286 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2d80f49e rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x356272f4 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x35e194db rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x39ec4419 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3d087e42 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4a370c95 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5743c44c rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x73b16aa3 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7898759e rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x95b70091 rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xac66cbce rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc9200ee5 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcbcd6383 rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xce1aabbd rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xda707d49 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe2145742 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe73dfc91 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfb506b99 rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfc85ae5d rdma_leave_multicast +EXPORT_SYMBOL drivers/input/gameport/gameport 0x058d3701 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x06a07cf0 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x41e5461d gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x4c363070 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x638ff9e4 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x94fc4f8e gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x9ba2876c gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa6763286 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf2a12684 gameport_start_polling +EXPORT_SYMBOL drivers/input/input-polldev 0x131315c0 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x71e43113 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x73b52a44 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x8111d620 input_free_polled_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0x854bd9ec matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x549ac4e5 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0x6a863fc1 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0x8fec0936 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xb138ba5e ad714x_disable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xd94f9529 cma3000_init +EXPORT_SYMBOL drivers/input/sparse-keymap 0x01efec61 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x3d693152 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x69e38f82 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7661ad91 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0x8f16efa0 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0xfe779d32 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xf68c2daf ad7879_pm_ops +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xf87cef85 ad7879_probe +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1fe1b77a capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2d610c17 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x3dea7e4e attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x568cc013 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x58106d7d capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5db6d4e0 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8a8bb235 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9d4b508e capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd98078d6 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed12d5ce detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x091300cb b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x30e144dd b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x3821e6c8 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x38c74bdf b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x45670a6c b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x54d70470 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6dadb31d b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x7629c24d b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x7d223602 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x7f04b108 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xab0d60b6 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xbb89a23c b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe8f903d4 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe9905def b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xea3bca11 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x29941791 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x3e07ba42 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x50957ec3 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6237be48 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6696203a b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x96fd0252 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x9d876533 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xbef3e806 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xbf8f41b3 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x7ab59853 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x3113d4ff mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x338f2482 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xaed13274 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xf03a3978 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x0d8c6435 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x57e44c51 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe4ec0494 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x46e78e4f isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x4c5a4a3e isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x5f444ca7 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x9f4f26e1 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xcbee8a5a isac_irq +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x6f72c79e isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xa66469e9 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xe86791d7 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x06f19b41 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0b0cd16e mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x15fac30d bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1fbb8ccb mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x28f0e8f7 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2ae935cc mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2f2e94e1 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x395a49a5 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x406be0cc recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4ede0a65 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x52b7f42c get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6f651283 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7527a9e5 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a4e99fb mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x975b6232 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa949b171 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3edc7d3 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcada32c3 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcbc8b3dd mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdab70db2 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdcf99161 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe906ed94 mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfd3a0429 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xff5c9897 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/bcache/bcache 0x0d55af9e closure_put +EXPORT_SYMBOL drivers/md/bcache/bcache 0x174f9104 closure_sub +EXPORT_SYMBOL drivers/md/bcache/bcache 0x30d44a31 closure_wait +EXPORT_SYMBOL drivers/md/bcache/bcache 0x8a7ddf2b __closure_lock +EXPORT_SYMBOL drivers/md/bcache/bcache 0x9da684aa closure_sync +EXPORT_SYMBOL drivers/md/bcache/bcache 0xe3c17af1 __closure_wake_up +EXPORT_SYMBOL drivers/md/bcache/bcache 0xef33d8af closure_trylock +EXPORT_SYMBOL drivers/md/dm-log 0x02f44f44 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0x07ebef3e dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x8047d6a4 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0xd5969fbf dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x58b4556b dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x6a62694b dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x6ebb32af dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xc63f0a1c dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0xce93ab3c dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0xfcc87ac1 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/raid456 0xcdf4a406 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x22ef1aab flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x2390b567 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x3554bf32 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x42f68e97 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x74d1cdac flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x88796dd3 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x9df9a869 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xa5384dca flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xa5e8e195 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xe92d459f flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xfb8ed157 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xff846aaa flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xff90f269 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x5ace3f11 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xc5506c15 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/common/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2aa45472 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0x3db8be82 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x44784ed3 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7473e741 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0xf96849f7 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0x89001dda cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/tveeprom 0x82c3a2a6 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0xdcc7d48f tveeprom_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0220e10d dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x10275aaa dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x163d562a dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x17523ce7 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x19591134 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1db3dcf1 dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x22d6ce4a dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x28ee2ae8 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2b5b8a5f dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x361a7512 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3f7224d5 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x48df41d9 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4d3b9a9c dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x523a242e dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5f176f50 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x686b0009 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6dd5900b dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x78d62338 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7ba5d8bd dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x81711731 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8d6517be dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8e47dce5 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x96a6508f dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9a778334 dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa130ce1e dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa2326603 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa4c85b19 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa8a08e7f dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xaf0cc9cf dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xbb009c06 dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc4cf0658 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc9ce9001 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd0ed5bdf dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd5ff910e dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd68a099e timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdb576668 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdc616307 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe2ad75a0 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xfafed0be dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-frontends/a8293 0x4c5d87af a8293_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9013 0xdab2b40a af9013_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9033 0xf9729c49 af9033_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0xdf59f066 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00a71aae au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x288d7036 au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x36d470d2 au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x3d6f42b0 au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x458ca019 au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x6866bcc5 au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x68c5b40f au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x7bd1d6ce au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x7dbcea7e au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0x6439e1c7 au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0x3a77f57c bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0x93f87df3 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0xfaa53e1d cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0xd780c01d cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x707faa1d cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x76914c8f cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0xe7f15acd cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x76be999c cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x78dc4840 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0x7b0bb8ec cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x08155ab2 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x6d3482ed dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x90af2d2c dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xce78b0f5 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xd222ed32 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x00ff322e dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x0976c0b9 dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x0b969cea dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x1ecb17f2 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x25eac81d dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x2a4cbfd2 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x31520b34 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x4284badd dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x50c09fc3 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x514988e1 dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xa75436a7 dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xad1e161d dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xdc7f6540 dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xeb4025f6 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xfe3d2fc8 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0xf6276e99 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xac0148bb dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xb66eced3 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xbce47e66 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xd07839b0 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xd351903a dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xff06cc0a dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x8387a0bd dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xa7220bf9 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xb0506925 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xb8838cfe dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x06d64ff8 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x0cf13cc9 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x2a776ad3 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x337165da dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x44829543 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x486186b9 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x55bfe09e dib7000p_set_agc1_min +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x56b7bc16 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x5dbb0cb2 dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x6a471ead dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x7a25bfff dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x7a86b0c9 dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xc6daadb8 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xda61b33a dib7000p_get_agc_values +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xe281a773 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xf31857ab dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x0f871fb0 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x2f2a2305 dib8000_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x2f4b5f20 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x4a7951e3 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x53431678 dib8096p_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x5c9b72d6 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x67e46e32 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x6a291a50 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x6c8799a6 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x8c7c537b dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x9f5c6e5c dib8090p_get_dc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xa3c7cdf0 dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xa9a9a177 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb0a0ac86 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb9c52bca dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xbf0e4349 dib8000_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xd898af5d dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xde913f34 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xf436bd5a dib8096p_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x27a552ee dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x741bad83 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x9d7364c1 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xbd0db459 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xe41e2a52 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x1058043c drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x9799f29f drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0xde4a4707 drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0xbd7508de ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0x00e2af1f dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x6fd3c07a ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x97832eb5 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0x7acc046b isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x8985a582 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/it913x-fe 0x959fd7ad it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0x668c5f83 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0xd11412aa ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x8bf6cdb5 l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0x2e0bc85d lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0x6528284b lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x03af096b lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x6faba34f lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x0c1b91b3 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xd5f19f87 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x1cc53216 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0x06d24544 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0x1f24b185 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0xddda5601 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0xa8e4d260 mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0xb2e97cfc mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0x5eead5a8 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0xec8e9fe9 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0xdf90394f or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0xaa5f7a57 or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x1fec85c9 rtl2830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0xc9c02ddf rtl2830_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2832 0xb59fbeae rtl2832_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0xd82f747a s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0x0f3907f3 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x484e0867 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0xeb6a41c2 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0xfb0a831e s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x9fcfacf3 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp8870 0xd36ea193 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x4bf25848 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0x784927eb stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0x8ff2bff3 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0x3a8c337f stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x5c240858 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0xf816f90f stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0x28764e92 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x420467c0 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x9ac747fd stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0xc2461a62 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x12785666 stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x94a4ae03 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0x0da0ceb9 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0x9f21c9c4 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0x40b7e347 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0xa7cd6233 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0xba90b239 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x25e36e44 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0xf58ffd50 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10071 0xa058b42f tda10071_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0xc92580ca tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0xb781493d tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0x92e24ace tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0xbd346ced tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0x440eebe2 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0x4f44110b ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0x15e334be tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0xe8f6869b ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0xf73d3246 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0x7580d5ce zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0xc63460ce zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x128e825b zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x5079387e flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x6776fa83 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xba9beb5f flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xbe0b955b flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xda086cf3 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xe1dccde0 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xeacb6a94 flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xa6a82cfb bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd08781d4 bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xe433e4cc bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xffdbf0c9 bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x1bf0a515 bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x3f7e7854 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xd86d197f bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x5c9943dc dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x7b545e61 dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x89ffca3a dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x8c4df0a0 dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x98e6c996 dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xb5748a5f read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xbac741ad write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xbf9e1067 rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xd84e5934 dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0x559654ae dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x0e01dc6a cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x31f0fbc3 cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x7af4fc59 cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xbcbebe99 cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xd618d5ff cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x1354985e altera_pid_feed_control +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x4585fc98 altera_hw_filt_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x683359e6 altera_ci_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x0c186e32 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x160b1f8f cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x5075a453 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x5775d89d cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xbca09844 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xc5d38741 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xe411143a cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x00b1aa4b vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x35924d50 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x0e9f75c0 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x0ffe835b cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x8945612c cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x9ecc9ed7 cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x4d212ce0 cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x5789a7dc cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x81ff8008 cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xac4f8f1c cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xda3db2df cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xf78e6325 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0a1e0ede cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0cc409e5 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0cd001ae cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2b077af6 cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x3e5deb6f cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4216fc84 cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x445ff3b0 cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x54b2271e cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x57b8e039 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x668c2dd1 cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x66b02176 cx88_free_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x73277687 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7c4f8046 cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x8d0a512a cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x9a0421e5 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x9bbea00d cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xdc7d30f4 cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xdf481d53 cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xe29b9a95 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xe84f7e5e cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xe93d35cc cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xebbefe44 cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xf41a355c cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x11834a79 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x12e692c0 ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x1856f185 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x21e4ba09 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x2ffdb1b7 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x38227a94 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x38f6aa9f ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x59bbafb7 ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6677229e ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x85e9f49f ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x95bbc05c ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xa5709ced ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xb0f43fe3 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xdfbef7aa ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xf2547440 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xf29c87fa ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xf4ba72a6 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x131154ed saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x3aa1b392 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x73039031 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x7604dc79 saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x8bb854fb saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xae4c8b81 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xb2ce8510 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xb81677c6 saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xbc461b86 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xc5bc9de0 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xda58f4b6 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xebf18624 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xf3c37433 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xd596d6cd ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x011a5ac6 videocodec_detach +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x629fc1bb videocodec_attach +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x8a5c8743 videocodec_unregister +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0xdbcc60d1 videocodec_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x083fef35 soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x2688a97d soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x3a9ae834 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x3b2c84b4 soc_camera_power_off +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x5f620d52 soc_camera_power_on +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xa6452933 soc_camera_unlock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xaada4054 soc_camera_lock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xbafe3879 soc_camera_power_init +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xcbf00eff soc_camera_host_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x25c52d97 soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x2863728e soc_mbus_image_size +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x5f3e3558 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xa9546115 soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xfe2c3a07 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x50dacb9b soc_camera_client_g_rect +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xd15d4ec4 soc_camera_client_scale +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xd2c6b90e soc_camera_client_s_crop +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xe3669e93 soc_camera_calc_client_output +EXPORT_SYMBOL drivers/media/radio/tea575x 0x4086a6fc snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0xb35dff00 snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/radio/tea575x 0xc485ae28 snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0xcf5b9151 snd_tea575x_exit +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x05f06734 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x1474cc3d lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x1518690d lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x2f71764b lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x4694e8c1 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x5b71c5db lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x713531cd lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xa8546553 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/rc-core 0x58284b2a ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0x9e334430 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/tuners/e4000 0x2c8130ef e4000_attach +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x00de43d6 fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x1ab28bd6 fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x8ab302e6 fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x96df828d fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xe22c27bb fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/fc2580 0x53632bcf fc2580_attach +EXPORT_SYMBOL drivers/media/tuners/max2165 0xe8bf90aa max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x3b03a8b0 mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0x7e76fcf7 mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0x553594b3 mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x973eb7a9 mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x7f48558f mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0x7ad1943f qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18212 0x6fed83d4 tda18212_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0xabbeefa5 tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tua9001 0x039522da tua9001_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0x8c1afdb8 xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/tuner_it913x 0x76bf3b0c it913x_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0xf53e406d xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0x700f95f4 xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0xbb389214 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0xeedcd545 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x34fce4c1 dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x6a52b2fb dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7038d2fc dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x8ce791fd dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xa4421d40 dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xa9eb9b20 dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xd34eba8e dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xeb54610d dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xf90d71a6 dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x0e11b12b usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x82b361d6 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x9074a45a dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xb02b81ad dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xc668a554 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xefc3c3b3 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xff108783 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xbeb300cc af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x12a7638f dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x1da64ea4 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x244a7540 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x38126256 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x6f069d24 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x897d1fd3 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x8b445d16 dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x8d84c157 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xa61d6ffc dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb0deff86 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xefc80ca3 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x979871ef em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xe14e9cf8 em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x069eec51 gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x1fc2181d gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x3de5c17b gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x73af4a54 gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xb20c36e8 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xbc89f5cd gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xec52c0c2 gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xf19a8879 gspca_resume +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x6eb2c9f1 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x7ee1662a tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xd3356f48 tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x878eebb9 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0xac49ea73 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x4adaf0f3 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x53c9394f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x5f96a661 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0xabe27502 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x1da3d877 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x9053993e v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xcfbb614c v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x0a6d49d6 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x144d31ec videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x37086085 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x4bb62c2a videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x51845562 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xcefb271d videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf2-core 0xfc59f129 vb2_querybuf +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0274995d v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x028355b4 v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x05e3a2ae v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x12fe7cec v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x140e371b v4l2_of_get_remote_port_parent +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x14c1a2f1 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x15a087f3 v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x19f902e6 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1fb38f5a v4l2_clk_get +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x21690b01 video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x29fdc016 v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2dafb666 v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x314c9049 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3167370e v4l2_clk_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x34d0e34e v4l2_clk_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x36847d11 v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x39dd80a8 video_usercopy +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3ce1ae2f v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3db7f213 v4l2_of_get_remote_port +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3eb6670b v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4166cac1 v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x441d3add v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4a36a233 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4f397b96 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x57866e80 v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5ab66c47 v4l2_async_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5cb049e1 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x601ca05e v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x67b8ef13 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x689db69f v4l2_clk_put +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6f7bea5c v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a873094 v4l2_clk_unregister_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7b43fc99 v4l2_clk_set_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7f923f2a v4l2_of_parse_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x86c85795 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8bf831f0 __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8d498bde v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8d4a0d11 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8f1fc666 v4l2_clk_disable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x93d9d9da v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x94136622 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9af982c5 video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9bbc8bb3 v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa21534c2 v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa79d402b video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xadf4facd v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xafab53d0 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb106d94a v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb129c5d3 v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb80e04d4 video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb86fc6d4 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb90cbedf v4l2_of_get_next_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbac4a225 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbb2e36c6 v4l2_async_notifier_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbf292fd1 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc12cf8f8 v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc2f8c752 video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc4fd294d v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc52b050c v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc732e65d v4l2_clk_get_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc79491aa v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcf62fdcb v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd1c74eac v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd42eeeaa video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd5361230 v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2bc4ea7 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6fce6f2 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xeb1506a1 __v4l2_clk_register_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xec24283e v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xeef1103e v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf1163a43 v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf69848fd v4l2_clk_enable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf8d1977d v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfa9db458 v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/memstick/core/memstick 0x05742471 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x127e54ff memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x317754c1 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x456aa73b memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x54eb8e3f memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5b5c17c8 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x89bb6911 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8c9b5da4 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x93a81d72 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa04a4d3c memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc9e44bac memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd08518f6 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe03c89c3 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf7e3d0da memstick_free_host +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00159f2a mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x03e19f61 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x18bc0fe8 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x18ccba90 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x24c081d0 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x382e8017 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3e40241f mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x452f3317 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x45698692 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4aa47341 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x53860d89 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5da351df mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x62e5d941 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x68bb5e3d mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x68e8d401 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x69342202 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8881d194 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x903b4e37 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb0ad62a6 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbaf235b1 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc54c8207 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc630b327 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc8091e96 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcff76b10 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdbd14dde mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe9c983d9 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xec5f10eb mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfa8a50d6 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xff3f671d mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x04afb99b mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2079759a mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x21a15d0b mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3db97dfc mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3fbc4bb3 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x46322b7a mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4b2fc5f1 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x52bfcdf5 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x54824a99 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x57c07f0b mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x57fd710d mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5aa0ab6c mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x748aeebc mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7c48f52e mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x82333032 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x94df5548 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa9c4f246 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xab56487f mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb5c30974 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb9b076bc mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc17002d9 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc60d8ce7 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd1e9802c mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd7b56e5f mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdc351e36 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdf58d592 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf28e4c21 mptscsih_resume +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x096a931a i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x128c90dd i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1ea6c764 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x20f3f059 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3c5f7ac0 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x41caab1f i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x442ea1a2 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4e222538 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x543a5856 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7541a5fc i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x843f4bd9 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xab722a9c i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xaefbac6a i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xaf3a98a2 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb8803d0c i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdcae0acc i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf0e10b6e i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf18e405d i2o_event_register +EXPORT_SYMBOL drivers/mfd/cros_ec 0x5b456b38 cros_ec_resume +EXPORT_SYMBOL drivers/mfd/cros_ec 0xb203a2c6 cros_ec_register +EXPORT_SYMBOL drivers/mfd/cros_ec 0xc646c52a cros_ec_remove +EXPORT_SYMBOL drivers/mfd/cros_ec 0xd5602fe8 cros_ec_suspend +EXPORT_SYMBOL drivers/mfd/cros_ec 0xebca63d5 cros_ec_prepare_tx +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x0f1026cb pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x918843a3 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x14244317 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x149810db mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x180b2568 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x41d22eb2 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x63215a05 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x6b5b4fcb mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xaf6023ea mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc46902c1 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc9c497bb mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xce5fc36d mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xd508417a mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xdd85115f mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xec3b8118 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/tps6105x 0x3135115f tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps6105x 0x55aa7218 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0xf84fc392 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xa0ef9983 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xf29fb93e ad_dpot_probe +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x58765536 altera_init +EXPORT_SYMBOL drivers/misc/atmel-ssc 0xa02b1178 ssc_free +EXPORT_SYMBOL drivers/misc/atmel-ssc 0xc9d82611 ssc_request +EXPORT_SYMBOL drivers/misc/c2port/core 0xebc1ff85 c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0xf0d4c4df c2port_device_unregister +EXPORT_SYMBOL drivers/misc/ioc4 0x711c7067 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xdeeec8f3 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x0a5b5cd7 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x4fcc1298 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x6b8b8710 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x72e3022a tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x75a2f587 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x986a4ecf tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xb19bfb39 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xb7cb29ce tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xbbba4424 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xcba7211e tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xd70866db tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0xeb02be87 tifm_unmap_sg +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x8505bf35 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x334bd56f cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x562df877 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xb0dafb42 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x4dc33cfd do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x67d97965 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x6bb35006 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xd105142b map_destroy +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xd704fc6a mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x2c5e4978 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x5d8eba2d simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x1ed50723 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtd 0xdc3f1193 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/denali 0x567cb9fc denali_init +EXPORT_SYMBOL drivers/mtd/nand/denali 0xf2e965cb denali_remove +EXPORT_SYMBOL drivers/mtd/nand/nand 0x79840eb2 nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0x8e205875 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x96d8e26d nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0x9888f0a6 nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0xab9896de nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xed144a76 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x2d757a4c nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xa31812a4 nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xb3bb6bd8 nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x0f8f49ac nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x61c8a5c9 nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x57a31e57 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x099f7415 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x40fe0592 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x745c2c4e onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x7ea1e90e onenand_addr +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x0a32358f arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4e50e524 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5f87ea33 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x95cc0ea8 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x98fcaaf8 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb67bee46 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb9e6e8b8 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xbafedc48 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xede3b46d arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf0c3e9a7 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x5e0693ec com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x97504fc0 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x9a016d2e com20020_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x108df726 ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x124aa9de ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x420d1464 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x53e57a98 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xb7349c4f ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xc79cbe25 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xcc8d4e0f ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xdad225c4 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xe974fceb NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xef40b134 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0xf42338fb cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0145b41d cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x09ac0267 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0faee8d9 t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x154864ae t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x18f3ddc2 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x1a8561af cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x228b732b cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x470e6ae2 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x68214e60 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6842a7fb cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x77496643 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x8c26bba1 dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9ccc8313 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd9e8da9e cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xdbb57157 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xdbf6ab46 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x17f87ad3 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1a76dbaf cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1abb1749 cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x52fb6fef cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x55eaeb9b cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x674b647e cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6cec7bef cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6cf09b66 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6f5863fc cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x73ef8a0e cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x755addc4 cxgb4_disable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7679300d cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x79dcb78e cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x82cbc2c8 cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x84ce48e1 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9f327a78 cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa9f4b4c2 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbc0f0641 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc0ba9321 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc2a3998f cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc48f8ea1 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc637d25c cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcda6c55b cxgb4_enable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd46a84a5 cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdcf4edd5 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xde515cb1 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe43689e9 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xec1c5959 cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x07eda30f vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x0e712340 vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x42bfe4ed vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x4f650da7 vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x9196d804 vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xff2d0669 enic_api_devcmd_proxy_by_index +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x8f0b34d4 be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xbab62e22 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xcf608e4f be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x02022f75 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0c43199e mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ee2991b set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3ce8b08f mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3d622017 mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3df782f6 mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3e938041 mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4670f5d4 mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x575e8b25 mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x71da38cd mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x752a238c mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7d0280c9 mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x887b4a93 mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x88f0935c mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x91d03b68 mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x93e5bedc mlx4_set_stats_bitmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a960473 mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa62959da mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb560db41 mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb9ca12f9 mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc8063a6c mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xccc5e1fe mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdb9be222 mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdebdd858 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe4559573 mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf8b7ff51 mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x01d996bd mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x05de78c3 mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0a767cd3 mlx5_cmd_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0e0a4cc1 mlx5_core_query_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x13ae0a9d mlx5_core_destroy_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1484ffb3 mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1f2a4908 mlx5_core_arm_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x379fa204 mlx5_core_create_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x42ea8664 mlx5_dev_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4aef8501 mlx5_cmd_alloc_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4e89ac5c mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x52ed8136 mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5da4df27 mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8c839404 mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8d49f53e mlx5_core_dump_fill_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8e32c94a mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c2b4efc mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa5c0e502 mlx5_dev_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab4ded99 mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc52498f0 mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb0cd4e9 mlx5_core_get_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd1f6c6ce mlx5_cmd_comp_handler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd7c0b4ea mlx5_cmd_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd8db883e mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdce26d12 mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe98ce5ce mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf8729da6 mlx5_cmd_free_uar +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x0f6fa259 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7e06fd32 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9b6b92f7 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9ce5f14f hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xec034f72 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x14b01913 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2745edef sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2ac8e652 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x31dc9eac sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x47d2a0f9 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x65ab9421 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x80b72581 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa70007d8 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd4ec8b40 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf1066fef sirdev_raw_read +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mdio 0xddc98749 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mii 0x1cb9f850 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x218d6d25 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x6d72d5b3 mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x90496de8 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0xa20a8f14 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xb0fc2edc mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xda5864d2 mii_check_link +EXPORT_SYMBOL drivers/net/mii 0xe49045a4 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/ppp/pppox 0x5f735f42 register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xd42ca4c6 pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xf50bdf6a pppox_unbind_sock +EXPORT_SYMBOL drivers/net/sungem_phy 0x4b467e40 sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x4fc9bdad team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0x52601ab3 team_options_register +EXPORT_SYMBOL drivers/net/team/team 0x61f737f7 team_options_unregister +EXPORT_SYMBOL drivers/net/team/team 0x751488cd team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0x9132ddb5 team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0xc89a84b0 team_mode_register +EXPORT_SYMBOL drivers/net/team/team 0xf2522faa team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0xfb2fcc2f team_option_inst_set_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0x0c69fc42 usbnet_link_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0x4ac14cf9 usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0xc4be03f4 usbnet_manage_power +EXPORT_SYMBOL drivers/net/wan/hdlc 0x0e5cc829 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1d76b1aa unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1f916a1f detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2db1189e attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2e1959a1 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x61cc8487 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7575ef44 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x90233186 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xabc1c574 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd7ac98cf unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe946b345 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x048d1190 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x196e02bf stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xb519e35e init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xd9acc85d reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x130ab877 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x2f3b394f ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x38acb5fc ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x423fe482 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x53358ce3 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x71505277 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7c8b1c5d ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa1d9a037 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xcf6a79a4 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xd6b5d623 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xd9a45e7c dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xfdebe502 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x038debb3 ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x2ff372ee ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4606dde4 ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8246be6c ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x895f9dc2 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf096710 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xc99e0a9a ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xcc6b243d ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xda58ec12 ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0199ec46 ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x24bb6db0 ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x27cf1694 ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x36cc880f ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3cd61b67 ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3f80c23a ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4c6ddcb4 ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4e1380ee ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x5b308ab1 ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x5c8d802a ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x65da95c6 ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x67745418 ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x93e12796 ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xfd786ab4 ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x0719f5c5 ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x3ab1667a ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x91fc76f5 ath9k_hw_wow_event_to_string +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x9e842ae1 ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x27708ebb ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x955cf5a2 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe892caed ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xee1cf845 ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x04599245 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0594dcda ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1045af15 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1359de5a ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13dcbf2f ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x182b4e32 ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x20022806 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x21d1a64b ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x229b453f ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x278939d5 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b186a96 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x306ad2fd ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x355488d3 ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x376d6c58 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a132400 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3bf3843b ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d0b7387 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e13c965 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e4847f8 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4540b174 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x46bffcb1 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x476c72c9 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x47ca1e44 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48f9d9f2 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d8d5741 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4ec5be9a ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4eec9418 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a3b5ea1 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b9d7c61 ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x646c8734 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66f4e88e ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6794d0e4 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6c02a54c ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6de1e178 ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x70838eaf ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x794f8512 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x796b2dd3 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7caf7c0b ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e7af19f ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ecdacfa ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x81e0c28f ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8268b7fa ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8328c3ba ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x864dc44b ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x86e2f51b ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c1bbcfc ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c58e4a8 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c8fe992 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8e79e22a ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x921eab70 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9303481c ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x95992fbb ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9688b8c9 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x992eb126 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9e4956e6 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa31b6cd0 ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa36cc4fc ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa431db39 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa58a7e91 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa6bb0b56 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa935e709 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0861523 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb34df5b1 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb48e7fd0 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb491f900 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4bebef1 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb7057a4d ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8d137f9 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb1ff87a ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbc0ca03e ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbc114ba7 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbdd76834 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3651c54 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3a88e7b ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc6132377 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc639a7da ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc6b5429f ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc79d4f85 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc87424b6 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcc18746a ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcdc40526 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd21403e5 ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd26dae54 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdbaa17a8 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd2b5e15 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd746034 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3753d81 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe68a674e ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe73eac92 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeca1c332 ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf218d5d8 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf44fd24e ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf49d5a77 ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf4c86eb8 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9835b6b ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfb7edbf3 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc29fb32 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xffd34d72 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/atmel 0x01a77ff1 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x83296814 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xd95b206d stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x0ae12be7 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x1cfba634 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x0490c543 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x0af329a9 brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x1235021b brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x1f3d917b brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x1f5c943b brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2dc227f8 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x38bc16ca brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x41fe2634 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x7a2f9a31 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x8ae8abf5 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x98f15333 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xbaf0d1e8 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xde108df7 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xebf3776c brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1c970258 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2819d5a5 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2a51e226 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2a681160 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x334aa2a3 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3663c9cf hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x41fe8614 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x57d60e1b hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x585d37fb hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5c596bf5 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x649633e5 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6680ad08 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6c63e5db hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7345f6ec hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7bc3a337 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x857ce17f hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x90e6e2b5 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x974ed767 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa2e74dee hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcf86cd18 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd0a707e5 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd9b32017 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xed14124b hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf8166653 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf977ed7f hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x085046ef libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x08e17cf1 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x10b456e0 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x10d20adb alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1455101f libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1f8ba7e6 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x32632424 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3fa5c3ee libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x44c25c03 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4bdd0b6b libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5c3d8001 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x80760c54 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xaf2060cb free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb0727951 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xcf0959f5 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xcf2eb449 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xcffd6528 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xda21ad38 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe8a5a1e0 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf19d03b7 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf1e1c701 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x01efaf36 il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x08edcce5 il_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0ad91ab8 il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0fd9919d il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x12151c4d il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x12c768d5 il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x149eedd5 il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x156dfedf il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1b30610a il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1f350257 il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x24159055 il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2556ab41 il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x25bb45a3 il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x26537283 il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x29c61810 il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2d12c6d3 il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2d3e5348 il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x30f74299 il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x32374520 il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3371aad3 _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x33e54f73 il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4112026a _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x48bbc053 il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x48de9dfb il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4a440fc1 il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4aa39103 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4c3ac897 il_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4e52163a il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4efec1b0 il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x526eee6a il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x53eb5f19 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x54e319a5 il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x564c6740 il_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x59af215a il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5a0550b1 il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5c672e9f il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5ffe42f6 il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x676fce76 il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x696ebb24 il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x69d63a90 il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6bdbe723 il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6be69684 il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6d2c6fb4 il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6ffe7aad il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x78cd742a il_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x79d4e072 il_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x828eccb2 il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x880f6b8a il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x88376aaf il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8eebac30 il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x92602748 il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x93011e92 il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x936208d3 il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x98254d17 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x98886337 il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x98959fc2 il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9c660efe il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9d53612e il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9d90d8ba il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa1755bc8 il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa1c0e123 il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa2013203 il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa208de14 il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa73d004e il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xab67c2e4 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xae212a6d il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xaeaf6ca2 il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb030af46 il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb1389c26 il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb4e7341a il_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb5347462 il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb7bd33ff il_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb881aab0 il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbb872a2e il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbdf29ad8 il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc09ed008 il_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc2d2d8e2 il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc39cf12c il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc7d97509 il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc9672722 il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcf568cec il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd11f32ef il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd226cfba il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd8554d20 il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd8970c2d il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd930f3d7 il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd9c6839f il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xda11b97d il_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdfd5bfee il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe64ca566 il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe82238cb il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe875924d il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe9a4eb87 il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xea6a056f il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xee6ffce1 il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xefa9698b il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xefae2caa il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf2466c4e il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf286897a il_set_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf501278b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf643fbd0 il_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf68ef971 il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf6c1bb9d il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfd5ce0c0 il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x08ee1e7d __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0d9eb5ff __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0e7bc05f __tracepoint_iwlwifi_warn +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x201337b4 __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x249e4b06 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x36dcef55 __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x4919d1a5 __tracepoint_iwlwifi_dbg +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x67381a2a __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x79e9bf26 __tracepoint_iwlwifi_crit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x7edec07d __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x8bfcc307 __tracepoint_iwlwifi_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x9a12c9c5 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xc0827b2f __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xda36f3a4 __tracepoint_iwlwifi_err +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0eaacb00 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1ad58c84 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1c8b1487 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x25282b62 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2cbcda27 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x317b0056 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x543b5e40 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x59d80e79 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5dea5bf1 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x643767c7 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6b8cb30c __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6c7e8d95 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x76d90084 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x98a057a9 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb60c80ec orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xcc7cb7c1 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe0647f92 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/btcoexist/btcoexist 0xa148986f rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0509bf66 rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x05b302c5 rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0d29e17e rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x15dac661 rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x167511bd rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x180d9b9e _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1e6ae690 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1ff4ebb5 _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x234ecabd _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x242e5c83 rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2b3f26de rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2ce73a04 _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2ee64b7e rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x31518792 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3b7fa384 _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x52b7ad15 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5ac64e24 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x61ed6048 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x63f04ca1 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x72cc47cb rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x776f508f _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7b6873b7 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7c599c90 _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x877f320f _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8a45a2e2 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8d4b0ffb rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8dd3f508 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9b7e9429 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa3aa244c rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xaa22c9fd _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xaaecea35 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb61cb0b9 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcfb1e1c8 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe303066f rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe8f4500e rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xec6d9ee4 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xed2752dd rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf17a1b1b rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf251e449 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf91d4c49 rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xff2e4a8f rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x104ac4a6 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x68d051f6 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0xf2b3b7b4 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0xf6fdd059 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x3df550c0 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x95142f19 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xc55b2b82 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xfd8255f5 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x04af5901 rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x11155d52 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x12097c66 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1bff9084 rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x207fbb70 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x27baf6b1 rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2d7d7604 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3ed2988e efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4378414e rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x526eb709 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x53a9f7df rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79188a02 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79d9f16e rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7b3aa27b rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x983c8a10 rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x9f1c51c6 rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa0c24452 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa3247305 rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa8373ea1 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb2d8cdea rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd133918e rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf201680c rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x6983a922 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xc37726d2 wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xe49dfc63 wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xf886026e wlcore_tx_complete +EXPORT_SYMBOL drivers/nfc/microread/microread 0x31c6e677 microread_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0x7ba11110 microread_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xd279f06d pn544_hci_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xe9c6f819 pn544_hci_probe +EXPORT_SYMBOL drivers/parport/parport 0x11e844b2 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x12095124 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x136eaf5a parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x1438e717 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x226019c5 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x2e8bf2a8 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x30ec28d0 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x330d1025 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x37dc101b parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x3d63f8af parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x49137eae parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4e6073b5 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x5de134fe parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x6a47782a parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x6b414d00 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x7bd6dcce parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x7e93fe04 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x82e7ff0f parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x83f2c223 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x859b3db2 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x93d7a41d parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x9d26c0a3 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xac3e54fe parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xba1660bb parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xbf7fa00c parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xc0e8b2f5 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xc12f5db9 parport_release +EXPORT_SYMBOL drivers/parport/parport 0xded6c608 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xe0bfd659 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xf9608b0b parport_write +EXPORT_SYMBOL drivers/parport/parport_pc 0x73b25ba9 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xa05a245d parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0736f254 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x083bc02d pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x08ad1378 pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1512529d pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2b812886 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x45ae9512 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x49bf4bf3 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x53f05c0d pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x58699cf0 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x64f15c14 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x69265ca6 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7749e56a pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x784da130 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa29e9106 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbac1d7d1 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbd1177b3 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcc5295e4 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xdd1a236c __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe1fd9ebe pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x08ced9d8 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x14dbd619 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2865a1c5 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x37396436 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3e30da28 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x671308d8 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x90eaae8b pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc29d8bfb pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf3ecda0 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe1cf2fbd pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf1a7e5ea pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x6dd92d26 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x76c17e06 pccard_static_ops +EXPORT_SYMBOL drivers/pps/pps_core 0x35ac0c4a pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0x47ed09d2 pps_lookup_dev +EXPORT_SYMBOL drivers/pps/pps_core 0xceaf0bb5 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xf6e1b60a pps_register_source +EXPORT_SYMBOL drivers/ptp/ptp 0x2f102bb8 ptp_clock_event +EXPORT_SYMBOL drivers/ptp/ptp 0x5b75718d ptp_clock_register +EXPORT_SYMBOL drivers/ptp/ptp 0x68e671f8 ptp_clock_index +EXPORT_SYMBOL drivers/ptp/ptp 0xca36962c ptp_clock_unregister +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x1c555942 rproc_boot +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x612e5dbd rproc_vq_interrupt +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x6f3e43b8 rproc_put +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x80910038 rproc_del +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x958b5186 rproc_alloc +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x9b07f3d7 rproc_da_to_va +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xc1ff9331 rproc_shutdown +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xdf401893 rproc_report_crash +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xefe958e5 rproc_add +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x03eae8dc fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x165a791a fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1c6f8509 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x22bdc584 fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2918be9d fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x32062ae1 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5df04f41 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6f9ad664 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x80f52b0a fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8addfea2 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa856e110 fcoe_ctlr_destroy_store +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb5376ac7 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0008e9db fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0321e39f fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0481aea2 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x07ef4894 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0917dd86 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x09bfba03 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0c690200 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x13a78660 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c6be6c0 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1ea55dec fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x24150425 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x25b09e51 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2a0c7da5 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2d3c730b fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x32b8fcc9 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3e36a32c fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4214cb7f fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4523c990 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x45ec7658 fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x48e484a6 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4d895451 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x57315c59 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x59f853b7 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5d128982 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6012ad02 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x62581efd fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7ab13ddc fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7f9911a2 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x82d02f42 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8bc773f8 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x954d5ac8 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9a331eed fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa3aa6d77 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa994624a fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb9c17e84 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbabb49ed fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbd92a945 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcefac6a6 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdfde04ac fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe0004e7f fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe85eb43c fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe9bb10c5 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe9d713b8 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xeb2920dd fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xecf4b2ca fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xede3743f fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf0418499 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf1ad3591 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf3644aa0 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfcb9a195 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfde5fd43 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xffe7ddd2 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x19fb739d sas_wait_eh +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x5b2c8ac9 sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xc292d9ad sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xc345b6bb sas_resume_ha +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x4379dd47 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x15339d3b osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1bfb4fca osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1c6ca062 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1e2eabd3 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x21052e8d osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x21ffdcce osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x31f4e5ad osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3786eb3a osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x378ad715 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3a76b0e8 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3e1d194a osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4c6a774d osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5cc9808d osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5d16a207 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x654b8b51 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6b902b7d osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7058cdba osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x71561343 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x71d6ba12 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x765400c3 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x862160bc osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x87129cd2 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9ba3fa0b osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9bee30f6 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa605e0cc osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb05c43a8 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb8568146 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbfc388d3 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc776306f osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd649fb2b osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdabea78c osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe5fbd8a8 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xed292149 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf5d7010b osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf8d645b7 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfaabe98b osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/osd 0x549408cc osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x8ea09a49 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x9ddedb3a osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xe415e864 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xefafe75e osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0xfa60a37c osduld_register_test +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x0a47c231 qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x0e8ef94b qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x353b5ac5 qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x44c7375f qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x48cc954e qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x54a4bd75 qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x94cf3ee3 qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x9da6f55c qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xe2b32674 qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xede596c0 qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xfeaf770a qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1791182c qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x86554edc qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb01fd28d qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb812da4b qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xba97a867 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xefbaaa05 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x461fae74 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xd2dbd4be raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xeb4dc395 raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1be32edf fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x51c55eaf fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x55a33f27 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5ff6a1f5 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6c6ff95f fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x78932ba9 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7d1603fb scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x933c988d fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa8c269ab scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb7b38db0 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbbe1b25d fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd02944a9 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfd6e894c fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x11dd1e57 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x203c6f8f sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x20dadbf3 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2ef1a77e sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3d56c4ea sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3ff450ef scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x58140add sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x59821e56 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x751bf022 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7cd2fcc9 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x88586305 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x910a844a sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x975c23e0 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9d35e066 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9eddd14a sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9f146f52 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa0ee2752 sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa4bfb89a sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaed1aebf sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb20a0e23 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb2f30403 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb9a3f8ad sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbfe7d010 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc5abc5b7 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xec9725aa sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf08f2d2d sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf6558166 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf757a053 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x0b30b8e6 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x4f059d6f spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x88cf29aa spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x8b9b188d spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xfbde2931 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x1a49391c srp_rport_put +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x3b98d41c srp_rport_get +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xa62ed84a srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xf8866673 srp_reconnect_rport +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x06348f2c ufshcd_runtime_resume +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x33659cb8 ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0xeaf043dc ufshcd_runtime_idle +EXPORT_SYMBOL drivers/ssb/ssb 0x086c9e79 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x28f94d68 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x40549938 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x4239f20b ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x53908161 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x6f70e276 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x71753b68 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x7c42d28a ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x7daae7db ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x7fa68490 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x88926445 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x9ff6135d ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xa24afdf6 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xb866f46a ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xcbfafe97 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd5b76e85 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0xd7283532 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xd73ebd6e ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xd8fbff36 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xeb76a1f8 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xf677a734 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0x2fcc94ea fwtty_port_get +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0xc699e1aa fwtty_port_put +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x760075aa adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xa152ba02 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xa0595944 ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xac5aa6f6 ade7854_probe +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x058c5493 lnet_copy_iov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x093a7bc9 lnet_set_reply_msg_len +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0bce7eef lnet_counters_get +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1366b7ac LNetSetLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x19670622 LNetNIInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1b191752 lnet_msgtyp2str +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1fe16fd5 LNetGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x204b8151 lnet_counters_reset +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x21d09ba1 lnet_connect +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2aa9953d lnet_cpt_of_nid +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2ac93e90 lnet_connect_console_error +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2b6641f7 lnet_create_reply_msg +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x33202a6c LNetGetId +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3558e584 lnet_iov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3c779ee0 LNetPut +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3f4f5b46 LNetNIFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4000e5ac lnet_extract_kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x473ad33b LNetDist +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4bb00492 lnet_copy_iov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4f9cb871 lnet_extract_iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5811a721 LNetInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x58a1ca89 LNetMDUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5fee352c lnet_acceptor_timeout +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x61f784b2 LNetClearLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x64452ab9 lnet_unregister_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x64cdea3a LNetCtl +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x6f7be171 LNetEQGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x722c76e5 LNetMDAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x7d59a7fe LNetMEInsert +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x854ab844 LNetEQWait +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8a3064f2 LNetSetAsync +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x9d743500 lnet_copy_kiov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x9de986d3 LNetEQAlloc +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa4c63fd7 lnet_kiov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa8c2760b LNetFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa414970 LNetMEUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa9b477e LNetMDBind +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaac6956d lnet_register_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb6bbcae9 lnet_notify +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb75f7953 LNetEQFree +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xba5566d2 lnet_acceptor_port +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xbf0760a2 LNetMEAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xcc8d6698 lnet_copy_kiov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xcca48a7d lnet_set_ip_niaddr +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xe23bd063 lnet_parse +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xe5f21d48 lnet_finalize +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xe9921546 lnet_net2ni +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xf1b316bf LNetSnprintHandle +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xf2623058 the_lnet +EXPORT_SYMBOL drivers/staging/lustre/lnet/selftest/lnet_selftest 0x078db139 lstcon_ioctl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x01af4483 seq_client_get_seq +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x1c4bb5f9 LU_OBF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x375e6f8d LUSTRE_BFL_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x62e952cc seq_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x819c2efb seq_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x8a13c9b8 seq_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x9bc4d72b seq_client_alloc_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xae61cff5 LU_DOT_LUSTRE_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xc997a02f LUSTRE_SEQ_SPACE_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xecee2727 LUSTRE_SEQ_ZERO_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xf8daae8f client_fid_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xfd47639c client_fid_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x268d8cc5 fld_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x5d9af62b fld_client_del_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xb6f99f7c fld_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xcda50ff5 fld_client_add_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xcfdd5aa9 fld_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xe418209e fld_client_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xf52d51d9 fld_client_proc_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x000c507f libcfs_debug_dumplog +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x00c881f6 cfs_cpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x01db5172 cfs_percpt_atomic_summary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x03387ca6 cfs_curproc_groups_nr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0389f857 cfs_cpt_spread_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x04d3ce6a lbug_with_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x06401e01 cfs_hash_is_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x06666610 libcfs_sock_abort_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x069f9bb2 cfs_wi_schedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x08917712 cfs_hash_for_each_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x08ada613 libcfs_console_backoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0a4cafa1 libcfs_sock_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0b4b1546 libcfs_lnd2modname +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0c68bc45 cfs_cpt_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0de6c369 cfs_cap_lower +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0e311d38 cfs_percpt_atomic_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0f5eff79 cfs_percpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x10b7e9c3 cfs_cpt_unset_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x123b6908 cfs_hash_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12426266 libcfs_run_lbug_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12c54b77 cfs_hash_findadd_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x151e7546 cfs_cpt_table_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x17ac7833 libcfs_deregister_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x19071833 libcfs_sock_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1a60d439 cfs_parse_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1d41c4c0 cfs_hash_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1d5a3928 cfs_timer_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1e8cdb47 cfs_race_waitq +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x20d3498c libcfs_kkuc_msg_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x23f6f445 cfs_restore_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2663147a __cfs_fail_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x277e62bd cfs_hash_for_each_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x27b6d3ba cfs_ip_addr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x29aafd0c cfs_hash_hlist_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2a641ef9 cfs_hash_dual_bd_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2b1e0458 cfs_get_environ +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2dbe54b2 cfs_trimwhite +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2e5044c7 cfs_cpt_set_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2efcc0e6 cfs_block_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2f439265 cfs_percpt_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2fb7eae8 cfs_hash_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x30986343 cfs_range_expr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x31fc5082 cfs_crypto_hash_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3415fc81 libcfs_sock_getbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x377f93fb cfs_srand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3834f243 proc_call_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x389ca502 libcfs_debug_mb +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x39fdcd2b libcfs_debug_set_level +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3c1285bd libcfs_subsystem_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3d5e6098 cfs_race_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3e5e7727 cfs_hash_rehash_cancel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ea730c0 cfs_gettok +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ef0d90c libcfs_kkuc_group_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4087e2b4 cfs_hash_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x411db754 cfs_crypto_hash_final +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x41ab33a1 libcfs_ipif_free_enumeration +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44688a0a cfs_block_allsigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44728d76 cfs_cpt_bind +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44839bbb cfs_rand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44f07cfc cfs_pause +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x468bace1 cfs_hash_rehash_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x47fdb4d1 cfs_timer_is_armed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x482deff7 cfs_cpt_unset_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x48f163c6 libcfs_str2anynid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4a99af72 cfs_clear_sigpending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4b982291 cfs_hash_bd_peek_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4d89e988 cfs_block_sigsinv +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4e2530ea libcfs_sock_getaddr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4eb89ecb libcfs_sock_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4f1f2fa5 cfs_crypto_hash_digest +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x50345570 libcfs_str2net +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5051b6d2 portal_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x509d38b0 libcfs_net2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x51b11c3c libcfs_sock_setbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x54fd9a71 cfs_percpt_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x58a7ee00 libcfs_catastrophe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5946ec2b cfs_percpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5a785762 cfs_cpt_online +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5b20921a cfs_hash_for_each_nolock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5c013b81 cfs_expr_list_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d3be65a cfs_crypto_adler32_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d73c3e3 cfs_expr_list_free_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5dce9e80 libcfs_lnd2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5df8c623 cfs_cpt_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62289d65 cfs_array_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62f56738 upcall_cache_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x63b4967a cfs_hash_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x64685fef libcfs_console_min_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6564c55b libcfs_console_max_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x65dd9f0c libcfs_run_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x66136d2d cfs_timer_arm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x67398404 cfs_wi_sched_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c2f096f cfs_hash_debug_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c4cadc8 cfs_hash_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c905b5f libcfs_watchdog_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6dfa9ea1 cfs_crypto_adler32_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6e6af71c current_is_32bit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6f928e1b libcfs_debug_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7190502f upcall_cache_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x71f662a3 libcfs_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x72f4e5f9 cfs_hash_bd_move_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x75161168 upcall_cache_flush_idle +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7562cd14 cfs_hash_del_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x771695b1 cfs_hash_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x785b7372 cfs_hash_dual_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7a3d49ae cfs_expr_list_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7a47b94d cfs_hash_size_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7b0b748a cfs_ip_addr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c73bc4b cfs_hash_rehash +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c7986cf waitq_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7e6f6485 cfs_ip_addr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7fda989d cfs_fail_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8151c3aa cfs_cap_raised +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x826af204 libcfs_sock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8286ffa5 cfs_percpt_lock_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x828d16a2 cfs_cpt_table +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x83d795e4 cfs_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x841679dd upcall_cache_get_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x857aaea7 libcfs_register_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x87f3bb87 cfs_hash_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c85e4e6 cfs_crypto_hash_speed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f12bb52 libcfs_log_goto +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f45f10d cfs_init_timer +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x91504e8b libcfs_kmemory +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x940ed192 libcfs_stack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x949221dc cfs_hash_cond_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x95620e8c cfs_wi_deschedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x97b0b9bc cfs_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9879b229 cfs_get_random_bytes +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9f82f712 cfs_trace_copyout_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa1cbf250 upcall_cache_flush_all +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa28a6757 cfs_percpt_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa2b68b2a cfs_array_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa6b36384 libcfs_sock_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa6b9dee6 libcfs_kkuc_group_rem +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa8d5c7f7 cfs_percpt_lock_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9088531 cfs_expr_list_values +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9dc74e2 cfs_trace_copyin_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9eae690 cfs_str2mask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xab887583 init_waitqueue_entry_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xac0f67e3 cfs_cpt_unset_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xad019238 cfs_str2num_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb00dfd91 cfs_hash_dual_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb473e79e cfs_wi_sched_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbab577e8 cfs_hash_for_each_safe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb9cb508 cfs_curproc_cap_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbc275420 cfs_cpt_unset_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbd5d492e cfs_timer_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbdbb8f0b cfs_hash_debug_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbf7a37f1 cfs_signal_pending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc0ea7fc0 cfs_expr_list_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc1708189 cfs_hash_dual_bd_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc1b20836 cfs_hash_add_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2911d96 cfs_expr_list_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2dfd791 libcfs_console_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc39fd2f9 libcfs_panic_on_lbug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc3eb614e libcfs_ipif_query +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc47433a6 cfs_capable +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc49b1c62 cfs_percpt_atomic_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc9b78bb4 upcall_cache_downcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcb2160d3 cfs_cpt_of_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcb385db9 libcfs_debug_binary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcbab8493 schedule_timeout_and_set_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcc20e694 libcfs_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xccc45639 cfs_free_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcd38904c cfs_wi_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xce1a88f2 libcfs_arch_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf61bacb __cfs_fail_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf678304 cfs_hash_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf90528c cfs_cpt_table_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd0aa642a cfs_hash_rehash_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd1319447 cfs_cpt_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd2965f33 cfs_hash_bd_del_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd48d8f72 cfs_hash_dual_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd5085e7d libcfs_sock_listen +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd5396536 cfs_cpt_set_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd6a52be3 libcfs_printk +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd7bbf963 cfs_hash_dual_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd7c4f765 add_wait_queue_exclusive_head +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd9541990 cfs_strncasecmp +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd96f406d cfs_cap_raise +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdce448d0 cfs_cpt_set_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xde17bb8d libcfs_isknown_lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdf2789c0 cfs_curproc_cap_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdffc951d cfs_timer_disarm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe05e871d cfs_crypto_hash_update_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe3bf6897 cfs_percpt_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe45b62ff cfs_cpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe6555032 libcfs_ipif_enumerate +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe7b54314 libcfs_arch_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe94553b9 upcall_cache_flush_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xec1f56d5 libcfs_str2nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeceac781 cfs_fail_val +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xedf3a25a cfs_timer_deadline +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeed48ba7 cfs_hash_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xefbf6d86 upcall_cache_put_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf0246bf2 cfs_cpt_table_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf2962a35 libcfs_kkuc_group_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf372d1c2 cfs_firststr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf440bb38 libcfs_kkuc_group_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf5e4a175 cfs_hash_bd_add_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf63a3d8d cfs_percpt_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf782fbe6 cfs_cpt_weight +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8a8644b libcfs_id2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8efb8c5 waitq_timedwait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf94025d1 libcfs_str2lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfa0d98ca cfs_cpt_set_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfacb8667 cfs_hash_getref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfe565fa9 cfs_crypto_hash_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xff0f98a6 libcfs_debug_vmsg2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x3a38efe4 ll_osscapa_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x3d9aaa41 ll_stats_ops_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x70d40f6b ll_iocontrol_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xcd3cde92 ll_iocontrol_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xeafa89f6 ll_direct_rw_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x18480eba lov_lsm_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x27095531 lov_stripe_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x3caae4d2 lov_read_and_clear_async_rc +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x9fe62796 lov_device_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xa288d560 lov_stripe_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xd8403156 lov_lsm_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x24e1671d lprocfs_counter_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x3bcbdc4b lprocfs_stats_alloc_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x4213e100 lustre_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x4d8d6dfa lprocfs_counter_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x76514673 fsfilt_get_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x8496447a fsfilt_put_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x8553b369 obd_memory +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x8a5a558d push_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb0a2be86 l_dentry_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb4f8ee63 lprocfs_read_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xc5cbf101 fsfilt_unregister_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xe0f3e8d5 fsfilt_register_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xed0b2f5d pop_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x14a47f31 it_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x9c22b84f it_open_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xb57d8447 it_set_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xf46a886f it_clear_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mgc/mgc 0xdc287f95 mgc_fsname2resid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x004da5ce lu_object_assign_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0064c6f4 cl_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x00ead21b lprocfs_alloc_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x01446c18 lprocfs_rd_connect_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x01665e34 class_parse_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x035852d0 lustre_swab_llog_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x03e1ff4f llog_declare_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x052b900f lprocfs_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x057f6d4b class_find_old_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05af1920 dt_quota_glb_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05f84e88 LU_BUF_NULL +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0627fb99 lprocfs_obd_rd_max_pages_per_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x06a315f9 cl_lock_closure_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x072e0407 lustre_in_group_p +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0750d15d cl_page_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x077e4c12 obdo_refresh_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x079fd6b5 cl_lock_disclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07aa68bb lustre_swab_lustre_cfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0836daca lprocfs_register_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x083942ff class_del_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x083e0660 cl_page_unassume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x09bf0428 lu_context_key_degister_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x09fa71cd lu_device_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0a26c47c llog_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0a5b5f9f llog_cancel_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0a918fcd lprocfs_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0b94137c class_exp2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0ca35161 cl_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0cf99bff dt_acct_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0cff56da llog_declare_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d3a1af5 cl_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0db294e5 cl_page_list_splice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0dbb72b4 cl_conf_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0e5cec85 class_conn2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0f1ae4d2 lu_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fe91547 obdo_to_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x10aafac0 llog_open_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x10f0ee3d cl_lock_hold_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11495519 lprocfs_write_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x117f74a8 cl_sync_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11dff06c cl_page_list_move +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1271f111 cl_object_attr_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x12be915f cl_req_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1482f20e lu_device_type_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1488c190 dt_store_resolve +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1491dc30 lu_context_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x151eb2fa cl_page_is_owned +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x15b6811c class_manual_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x15feeffc obdo_from_iattr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17260880 obdo_cpy_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17c36f4f obdo_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17eb77d6 class_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x193d457a cl_page_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1a61bd64 cl_lock_nr_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1a92c1f2 cl_page_list_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1b60301d lprocfs_exp_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1bf029bf cl_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1d3913d7 cl_page_list_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1d3a1d6d cl_lock_mutex_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1d43564a class_num2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1dc2ada4 cl_env_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1de13ec9 lu_context_key_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1e149df3 cl_io_lock_alloc_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1e386a36 class_export_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1e71a1ac obd_export_evict_by_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1eb76aeb cl_lock_discard_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1ee1d4c0 cl_2queue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1fb7ff97 lustre_end_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1ffffee7 llog_cat_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x20425a16 class_config_parse_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x211e36b3 lustre_idmap_lookup_uid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21307495 lu_buf_check_and_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x220ef54b class_incref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x221826f1 class_parse_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x22336874 lu_context_key_degister +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x22d21076 lu_device_type_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x23257682 cl_page_list_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x23d23944 cl_io_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2412db49 cl_2queue_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x243dc76d cl_page_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x24dfd5eb cl_lock_closure_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x24fe96b1 cl_lock_weigh +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2547efae lustre_uuid_to_peer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x259ebac6 obd_alloc_fail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x25c485c0 cl_lock_enqueue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x275cdc7a cl_env_reexit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x28815d39 cl_object_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x297cf5e0 class_handle2object +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x297d2ce4 cl_page_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2a2cfd4b cl_page_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ae1cd79 kuc_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ae4de3a lu_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2b4c48e9 server_name2svname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2c2c21c9 cl_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2e5e725a class_detach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2f648c94 class_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3063ef99 lprocfs_exp_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3149eb12 cl_page_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x31763ea3 cl_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3182c0a6 llog_cat_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32b44b2d cl_lock_user_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x34de4256 dt_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37148271 lu_context_key_revive +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x372e774c lu_env_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37ed6e4b at_early_margin +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3862ae9f lu_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38fb0c90 class_match_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x390d8cab lu_kmem_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x391383ed capa_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x393ec4c0 cl_lock_mutex_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x39c8580f class_handle_hash_back +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x39d16600 cl_page_own_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x39e8310f cl_lock_extransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3a005065 dt_otable_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3c1d777c lprocfs_rd_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3d1e401b local_index_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3da2aa39 lprocfs_alloc_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3db90f37 cl_page_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3e5dea63 cl_req_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f161850 lu_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f2577db cl_lock_is_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x400e05d1 llog_obd_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x404bd7a7 class_handle_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x40802641 lprocfs_free_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x413e5e74 lu_object_find_slice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x418cf50c lu_context_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4280aa05 cl_page_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x42d659cf cl_page_make_ready +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x449990c7 dt_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44e41abb lustre_posix_acl_xattr_filter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4607f793 class_import_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x46eeab4f cl_offset +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x474ed5bd lustre_swab_ll_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47b35f7d statfs_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x480862d4 cl_lock_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x48bc442e lprocfs_seq_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x48e2595a dt_txn_callback_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x490620e4 lprocfs_wr_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x494cfb52 lustre_acl_xattr_merge2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a0f6ea lustre_posix_acl_xattr_2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a29223 lprocfs_find_named_value +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4a25b813 cl_page_find_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4a6b0463 lu_context_enter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ac58713 obd_connect_flags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ad48cbd cl_object_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4b5beda0 llog_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4be37078 cl_object_glimpse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4bf356ca lustre_idmap_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ce43f1b llog_init_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d0d1d82 cl_io_submit_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d13458b kuc_len +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d373097 llog_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4de36f3c lustre_idmap_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4e647474 cl_page_list_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4f174c78 cl_page_list_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4fba4346 dt_directory_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5054c3f5 lu_object_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5098bbd6 cl_lock_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50c7fc36 ptlrpc_put_connection_superhack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50dce00a cl_page_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x51e94cb2 lprocfs_rd_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x51eff6e0 cl_page_cache_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x523c9a76 dt_record_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x52463af4 cl_wait_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5265ca30 obd_llog_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x52a09a1e obd_devs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x52bd888b cl_req_page_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x53ae8ffa class_config_llog_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x544e91d3 cl_2queue_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54885f87 ldlm_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5543c261 cl_io_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5562f1f4 local_oid_storage_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x558bec27 obd_ioctl_getdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x559a4eed cl_queue_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5606f99e cl_lock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x564e9d44 init_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x570d09ae lustre_swab_lu_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x57866d68 cl_page_vmpage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x58284ce4 cl_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5953bbeb cl_sync_io_note +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x59fab401 lprocfs_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a20d896 obd_memory_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5b27770b lprocfs_obd_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5bc022c5 lprocfs_dt_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d34ae0d cl_lock_mode_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5dee35d6 llog_osd_get_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e93341f lprocfs_oh_sum +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ed188a9 lprocfs_add_symlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5f85fcf1 dt_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5fdfe69d cl_page_list_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5fe97b73 block_debug_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ff08f14 obd_export_evict_by_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6161c93b cl_io_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x616d8c8c cl_io_rw_advance +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x620377c2 class_uuid2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x624ffe24 lprocfs_counter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x62d4e49b lu_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x62d8907b cl_io_iter_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631a518d mea_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631fd7b9 lustre_ext_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x648050be local_file_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x648a7f66 lprocfs_free_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x650ce168 lu_object_put_nocache +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x651f903e cl_page_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x66fb2537 lprocfs_free_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x670ec7c2 lprocfs_rd_num_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67115f89 cl_page_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67230660 cl_io_read_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67287383 local_index_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6734adbd lprocfs_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x677fd7f9 proc_lustre_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67977b42 lprocfs_remove_proc_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67a90622 la_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67dc223a lprocfs_remove +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67e994eb class_devices_in_group +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67f7ae89 class_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x683268e1 cl_lock_hold_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6890d175 lustre_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x68b08712 class_process_proc_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x68df8576 lprocfs_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x68e09d35 lustre_common_put_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x691e7734 class_new_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6949fbe7 lprocfs_alloc_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x697cde11 cl_vmpage_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69863ad1 cl_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69b79346 cl_object_has_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69c42114 at_min +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a9362a8 lprocfs_init_mps_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6af1b20a dump_lniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6bb6d421 lu_buf_realloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6c0e0a49 class_conn2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6c439565 cl_object_attr_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6c580dc4 cl_io_submit_rw +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6c669f55 class_config_dump_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6cb8026d cl_env_nested_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6cfdae6b lu_context_key_quiesce_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6dacbecf capa_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6dae0ad2 dt_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6df74d45 capa_cpy +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f3d1535 llog_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f3e6225 dt_quota_slv_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x703b0438 cl_env_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x70d63a4b llog_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72ddee4c obdo_le_to_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72e3c880 dt_txn_callback_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x734cbc30 cl_lock_hold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x73e8caeb dt_index_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x742559b1 class_unregister_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7519f618 lprocfs_init_ldlm_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x752f71a8 class_get_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x75420ecb lu_cdebug_printer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x756a77f3 class_parse_nid_quiet +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x75f84705 llog_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x777e4867 class_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x777eef46 dt_store_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77bb6519 lu_site_purge +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77d2089a class_name2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77f913ef lu_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7802fcd7 lustre_swab_llogd_conn_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x781dc15f cl_lock_user_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x789796a1 obd_zombie_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b33f238 cl_page_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b4fc57b at_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b942015 cl_io_commit_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7bc12d2a lprocfs_init_ops_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7dc6a64c cl_req_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ddd0777 cl_lock_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ea5dcbc cl_io_sub_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7edcafa0 cl_env_reenter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f5251fd llog_osd_put_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f70d5a8 llog_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fad7291 raw_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fe5561a obd_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8031efb8 lprocfs_dt_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x806070c3 class_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x806cc497 class_add_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x80a065b1 lu_object_locate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x80bb54bd obd_llog_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x80cea172 cl_lock_descr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81296233 cl_req_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81742d89 obd_ioctl_popdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8175a617 dt_declare_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x82b993de llog_thread_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x82caedf6 cl_page_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x831f656c class_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x835f582b md_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8489f086 obd_alloc_fail_rate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x849e5385 obd_update_maxusage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x873645fc class_name2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8809e5cd obdo_from_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x88527e16 cl_use_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x88b71e53 cl_page_clip +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x88b87068 lprocfs_stats_collect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x88d14f43 dump_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x89079f1c llog_cat_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x891054f1 lprocfs_clear_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8a459451 class_export_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8a9cece5 cl_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8aa2c358 lprocfs_dt_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ae3e5f7 lu_context_key_revive_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b5f4057 lu_context_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ba6e479 lustre_swab_lu_seq_range +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8c23ad97 lu_device_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8c848d8a cl_lock_enclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8c8bdaad lu_object_invariant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8cc9890e class_new_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8cf146be lustre_process_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d429520 dt_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d4df554 cl_io_is_going +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d658ed0 capa_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d758091 dt_try_as_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8dc09c8c cl_page_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8e6d6888 local_file_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8efca66d lprocfs_rd_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f67314c obd_dump_on_eviction +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92c41da7 cl_req_page_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92d916dd class_fail_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92db106f class_put_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92e58479 obd_dump_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92edd358 lprocfs_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x930b4dd9 cl_lock_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93859814 lprocfs_oh_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x938be472 lu_kmem_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93b46468 lu_session_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x943d4433 cl_lock_descr_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x94aab429 llog_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9505c895 lustre_idmap_lookup_gid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9512d507 lustre_acl_xattr_merge2posix +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x955f5220 ldlm_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95735c6c at_extra +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9598e58b lustre_register_client_fill_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95ec998a lustre_groups_sort +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x96277739 cl_page_list_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x969c5cdd cl_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x96c81b67 cl_sync_io_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97079127 obd_export_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9767adce class_uuid2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97b031de class_register_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97d03783 at_history +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x98609639 lprocfs_rd_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x986f34c1 class_search_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x98d31541 cl_lock_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9976927f llog_cat_init_and_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9a4ceca4 lprocfs_wr_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b1ed9d8 obd_jobid_var +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9dbb17b6 lprocfs_dt_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9f60ec1c llog_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa05bff1f cl_page_list_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa11706fd lu_site_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa19c2958 class_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa1c838ab cl_page_list_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa1d9cd6e llog_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa2107be7 lu_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa21c5ea1 obdo_from_la +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa2527328 cl_lock_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa31c8e3b cl_page_gang_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa34890bc lu_env_refill_by_tags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa383c7f7 lprocfs_nid_stats_clear_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa48c4a30 lustre_idmap_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa513f7e4 lustre_groups_from_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5478e3b cl_lock_is_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5e1443a cl_lock_ext_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5e9ef4e cl_enqueue_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5fb234f lprocfs_write_frac_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa674c241 kuc_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa6876ee7 obdo_to_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa69a0a40 dt_version_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa6a51eda lprocfs_rd_numrefs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa6a7320e lprocfs_at_hist_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa874ff4b dt_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa9a7b826 cl_lock_unhold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa21b7a0 lustre_register_quota_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaad0ddef cl_lock_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xab1921d9 cl_lock_state_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabd7291a llog_copy_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabf45922 capa_decrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac7f1596 kuc_ptr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xad521278 llog_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xadad948b cl_page_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xadb56baf lu_context_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xae68f92b cl_2queue_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb01963a6 class_uuid_unparse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0fb9886 cl_lvb2attr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb133627f cl_req_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb147f185 cl_lock_modify +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1b89b6d class_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1e5af75 lu_ucred +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb2274a94 class_find_client_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb28ded08 lustre_register_kill_super_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb296a9ce lprocfs_add_vars +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb2cd0723 class_disconnect_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb3967338 lu_context_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb3d7666d lu_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb40aacda cl_2queue_init_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb41998cd lustre_cfg_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb4534520 cl_unuse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb4562a15 lprocfs_add_simple +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb495c928 lu_context_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb57fb363 cl_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb58c459b dt_txn_hook_commit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb5c4039f cl_object_attr_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb64d8fa7 cl_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6ba5dd5 kuc_ispayload +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb743ec6a dt_mode_to_dft +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb7447026 llog_declare_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb7c24a5a cl_env_nested_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb88c94cb lu_object_find_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb934a946 cl_pages_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb95212b6 dt_lookup_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb9d2e4ac llog_cat_declare_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba169e4e class_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba4f96c7 cl_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba985283 lustre_register_client_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbacac922 lprocfs_write_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc234a54 llog_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc403858 llog_cat_cancel_records +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbcee1990 cl_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbcf98f6c lu_object_anon +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbd46a51f lprocfs_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbd5c47ad cl_env_unplant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe1f251d dt_txn_hook_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe60070c cl_object_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbf78f221 lprocfs_nid_stats_clear_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0954007 lprocfs_oh_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0bf7ef2 obd_debug_peer_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc184fcda lprocfs_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc1a1459a cl_env_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc241ef3e cl_lock_closure_build +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc278921a lprocfs_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc2c1175c lprocfs_seq_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc4f46c58 cat_cancel_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc572991b cl_locks_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc731063a dt_record_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc75f3e52 llog_exist +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc82feaba cl_page_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc85136ec cl_io_rw_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8d97578 lu_context_key_quiesce +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8dbaa87 lustre_swab_cfg_marker +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc9939ae4 cl_2queue_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc9af9cc3 lu_context_key_register_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc9b3c667 dt_lfsck_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb0ab67f obd_max_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcc4d4e77 lu_site_init_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcc7c2d51 dt_txn_hook_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccbbef3f class_conn2export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcce7c2cb lprocfs_rd_timeouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccf7a8de obdo_cpu_to_le +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd7537ee get_devices_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd852d66 cl_io_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd8a604e lu_buf_check_and_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcedb140a obdo_cmp_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcf093b66 lprocfs_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcfeec767 lprocfs_rd_conn_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd08827c0 server_name2fsname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd0b6995d lu_buf_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd10aa042 lustre_swab_llog_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd12ec147 cl_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd167de69 cl_object_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1b1478b cl_attr2lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1f58645 lustre_swab_llog_hdr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd20f8d8b cl_type_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd397d5c8 llog_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd438e934 local_oid_storage_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd51a3ca6 iattr_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd54b441a lu_object_add_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd558a706 class_connected_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd58447a4 class_import_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd5911ebf cl_io_prepare_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd5995510 cl_io_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd5ba1b44 lu_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd5f371a5 lu_env_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd65f1210 lu_context_key_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd66bd630 dt_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd66d924b dt_index_walk +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd6ee75bb cl_lock_mutex_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd70fe669 lustre_swab_llogd_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bc8654 obd_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bfbc9c lprocfs_dt_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7f7b340 cl_lock_mode_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd8b30684 cl_io_lock_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda5b1ced class_find_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdac644c8 lustre_posix_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb13dce1 capa_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb8f35d2 cl_lock_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdc0db5f1 cl_page_is_under_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcb44ed3 cl_page_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcb6e4f6 dt_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcc40af0 class_check_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd649ef3 lprocfs_rd_u64 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd78c0c7 lu_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdda3d949 class_handle_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xddaaadec llog_cat_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde086648 cl_unuse_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde09b188 cl_io_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde20afd5 cl_page_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde4f8f6c class_exp2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde7d985b obd_dirty_transit_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe0195129 cl_lock_get_trust +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe028cf84 capa_encrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe039dc75 llog_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe099244a cl_lock_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe13aea19 lu_dev_del_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe189f7de cl_page_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2508823 lu_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2774f66 lu_object_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2eb4470 class_get_next_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3323f5d class_handle_free_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe403294a class_disconnect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe42abf0c cl_io_loop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe4311672 lu_object_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe48eb267 lprocfs_rd_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe56c9cbc cl_lock_at_pgoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe6793696 lu_object_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe71c263c cl_io_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7a1eb10 __llog_ctxt_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7d83236 cleanup_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7e0ed67 cl_io_iter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8e84c32 class_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe960c3e4 cl_lock_signal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xea337a55 llog_cat_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeacec47c lprocfs_oh_tally_log2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb330d83 dt_locate_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb3f388a _debug_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb5aecea cl_env_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec6eb62f class_disconnect_stale_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec76847f lustre_idmap_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec7d6b85 obd_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xecf616bf obdo_from_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xed4e0f83 cl_2queue_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee68bc29 lu_session_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeeeb79fa do_lcfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef76f858 block_debug_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf01e2527 server_name2index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf0e78991 cl_object_kill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf14bd768 capa_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf150dbf4 cl_env_implant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf1a0d976 lprocfs_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf2fd6695 statfs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf33157da cl_page_is_vmlocked +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf36e3a58 cl_page_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3db731b lu_env_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf490d5f9 class_del_profiles +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf4efdafc local_object_unlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf5773720 lu_ucred_assert +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf59928b7 llog_cat_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf5ec8f9f cl_io_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf60d4659 capa_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf60f0bdc cl_page_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf66daf39 llog_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7020831 lprocfs_dt_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7b88183 lprocfs_single_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7e31fc3 lprocfs_free_per_client_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf86e8d34 obd_exports_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf874c950 dump_lsm +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8b9da5c lprocfs_rd_server_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8c2df92 obdo_set_parent_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8ff33e9 lprocfs_rd_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa813d06 capa_hmac +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfab1499a class_unlink_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbda06ab llog_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbea0098 lu_types_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc7f18d0 obd_pages_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfce4103b lu_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd68d17a class_notify_sptlrpc_conf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd82d0c4 llog_osd_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd8f5cf4 lu_buf_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfdbe1557 lprocfs_write_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe16597e lu_ucred_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe76db55 lu_dev_add_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff57e92d class_match_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfffc1f11 lustre_swab_ost_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/osc/osc 0x5c4940c2 osc_update_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00d95039 ptlrpcd_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x01d6ef7f ldlm_pools_recalc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x02218bdf lprocfs_wr_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x02beb62c lprocfs_wr_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x02db52bd ldlm_pool_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0389068e ldlm_resource_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x03d2d9c7 ptlrpc_set_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x048b59d5 lustre_msg_set_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0515f93b RQF_FLD_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x052cccf7 ldlm_lock_fail_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x05aa8e0f sptlrpc_gc_add_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x05e1ef9a ptl_send_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x05ea80c7 ptlrpc_register_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x06b3942b lustre_swab_lov_user_md_objects +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x06f94274 req_capsule_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0711f5cf ldlm_prep_enqueue_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x071741d8 ldlm_init_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x071fc74a RQF_LDLM_ENQUEUE_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x07605c7d interval_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x078275dd client_import_del_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x084ef1ae ptlrpc_register_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08bb2d27 lustre_swab_obd_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x095587d0 lustre_msg_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0a3130b0 RMF_MDT_EPOCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0a59d85b sptlrpc_target_sec_part +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac252b2 lustre_msg_set_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac54708 lustre_errno_hton +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0b92b2b1 ptlrpc_request_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0bcacb5d RMF_MDS_HSM_USER_ITEM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0c2d9c43 lustre_swab_lip_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0cf343dd RQF_LDLM_INTENT_BASIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0dda7f32 ptlrpc_cleanup_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0e1250a6 sptlrpc_cli_wrap_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0e49eec2 ldlm_lock_allow_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0eaddeeb ptlrpc_lprocfs_unregister_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0eb5d86d target_print_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0f94b3df ptlrpc_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0fed04db llog_origin_handle_next_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x10f18f20 interval_iterate_reverse +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x115017f6 req_layout_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x11b0700e ptlrpc_cleanup_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12b6f5a3 ptlrpc_connection_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x140f7ef6 ptlrpc_set_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1474440e ldlm_pool_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1483eca4 ldlm_lock_addref_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x14d192db lustre_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x15a3e4db RMF_GETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x172fb86d lustre_msg_hdr_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1747d8b3 ldlm_lockname +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17950f60 RQF_SEC_CTX +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19108a0f RQF_OST_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19a4eadf ldlm_lock2desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19c08934 RQF_LDLM_INTENT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a6955f7 ptlrpc_req_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a6a3ce9 RQF_OST_GET_INFO_LAST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a9b76aa RMF_OBD_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1abd3258 RMF_SETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ace4b5f RQF_LDLM_BL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1b8af6f6 ldlm_cli_update_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1bae0270 interval_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1be21715 lustre_msg_size_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1be65875 llog_origin_handle_prev_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1bedbc79 ptlrpcd_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c300d8e lustre_msg_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1d043548 lustre_msg_set_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1dc2051d RMF_SEQ_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1de9c288 lustre_swab_layout_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1dff7ea0 ldlm_lock_allow_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1e8e48a4 sptlrpc_flavor_has_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1eb2a65f RQF_OST_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1eb3277a ptlrpc_at_set_req_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee46b51 lustre_init_msg_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee9eb3c RQF_MDS_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1f57741e ptlrpc_unpack_req_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1fc2d109 ldlm_resource_unlink_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2096f5b5 RQF_OST_SET_GRANT_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x20d6b82c RQF_LDLM_INTENT_QUOTA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2106fad3 lock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x218a36ce ldlm_cli_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x22671300 sptlrpc_cli_ctx_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x233790b5 RMF_OST_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x244e5558 lustre_msg_get_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x24aafdba RMF_MGS_TARGET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2585a629 RMF_SEQ_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2587513c RQF_LDLM_CP_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x25a9b396 ptlrpc_retain_replayable_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x261e8028 req_capsule_server_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x262de6f7 ptlrpcd_wake +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x269554ce RQF_LDLM_INTENT_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x26f0a58e _debug_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x26f99d16 RQF_MGS_CONFIG_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x285e5b99 lustre_msg_set_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x286e706f ptlrpc_buf_set_swabbed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x29967eb1 req_capsule_server_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x29beeac8 lustre_pack_reply_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x29e0869a sptlrpc_get_hash_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2a63a472 lustre_swab_ptlrpc_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2b64b0bb client_import_find_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2bbd7a53 ldlm_completion_ast_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2c00c60d ptlrpc_sample_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2c04651e req_capsule_set_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ca04593 ptlrpc_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ca92fa8 ldlm_lock_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ccd5b87 ldlm_cli_cancel_list_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d56f168 ptlrpc_pinger_ir_up +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d798316 RMF_MGS_CONFIG_RES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4562fe RQF_LLOG_ORIGIN_HANDLE_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4ca396 RQF_LDLM_INTENT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ec03d5c ptlrpc_nrs_policy_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ecd7515 lustre_msg_check_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2f0e4f87 RQF_OST_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2fd2f737 lustre_msg_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x301d4fcd RQF_MDS_READPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x302937e0 RQF_MDS_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3060b9c6 sptlrpc_rule_set_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3159599b ptlrpc_pinger_del_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x31838cb4 RMF_IDX_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x318a4c57 ldlm_pool_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3209e6fa ptlrpc_abort_inflight +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3261b862 RQF_OST_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3396529f ldlm_resource_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x33bb7761 ldlm_typename +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3562a589 sptlrpc_target_update_exp_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35939a3d lustre_swab_fiemap +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x375c30c4 client_disconnect_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3835ab4b RQF_LLOG_ORIGIN_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3858fb94 RMF_OBD_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3896ba40 ldlm_pool_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38c01799 RQF_LDLM_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38ccc657 ldlm_cancel_resource_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38fce533 lustre_msg_set_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x39f60a5f RMF_OST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3a1e4bcb __lustre_unpack_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3a60f5b5 ptlrpc_hpreq_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ab90f6e lustre_msg_bufcount +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ac00716 lustre_swab_hsm_user_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b289907 ldlm_prep_elc_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b6b7cba dump_ioo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3bedb0c7 RMF_LLOGD_CONN_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c08be02 ptlrpc_buf_need_swab +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c0de8ff req_capsule_server_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c63e62b RQF_MDS_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ca50f33 RQF_MDS_HSM_CT_REGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3cb53ddd llog_origin_handle_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3d7dc5f9 ldlm_pools_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3d98647b ptlrpc_recover_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3da45edc ptlrpc_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dc47695 lustre_msg_get_magic +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dddb3e2 dump_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ee4579b ldlm_pool_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f034caf lustre_msg_get_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f752e78 RQF_MDS_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f9f1d83 ldlm_namespace_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x40a36146 target_pack_pool_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41008cef RQF_LDLM_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41252225 ptlrpc_request_set_replen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41d18baa req_capsule_field_present +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43705ee4 RQF_LOG_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43d7efc8 lustre_msg_set_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x44036eda RQF_MDS_GET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x440c2a71 RMF_FIEMAP_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4481591d RQF_OST_SET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x44ceb3fc req_capsule_extend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45d05893 lustre_swab_lustre_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45e30cea lustre_swab_ldlm_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x476f29c0 ptlrpc_wake_delayed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47f5e903 RMF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4819e5b3 sptlrpc_cli_ctx_expire +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x483e9202 lustre_pack_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4853fff1 req_capsule_server_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x48814c9f lustre_swab_ost_lvb_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x48fc349b ldlm_blocking_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x498c03c5 lustre_msg_set_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4a3c4e40 sptlrpc_conf_target_get_rules +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4a5a2416 RMF_DLM_REQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4b09ce4b lustre_swab_mdt_rec_reint +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4bdd6658 ldlm_init_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4cb26763 sptlrpc_cli_unwrap_bulk_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4d7580d0 lustre_swab_hsm_user_item +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4de17c16 sptlrpc_unregister_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e1706e5 lustre_msg_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e696b96 ptlrpcd_queue_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e99d40b ptlrpc_req_finished_with_imp_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4eb03a6f ptlrpcd_destroy_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4f766c3b lustre_swab_generic_32s +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50443f6a ptlrpc_init_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50dd74f8 RMF_STRING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x51068e99 sec2target_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x515641e5 req_capsule_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x523ff367 ptlrpc_restart_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x52c62150 RMF_RCS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53411557 RMF_DLM_REP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53a4a004 bulk_sec_desc_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5488d637 ldlm_register_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x54ae5021 ldlm_lock_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x55357a61 sptlrpc_get_bulk_checksum +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x555eb7fe RQF_MDS_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x56ceacbf ldlm_namespace_new +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x56dff968 ldlm_lock_change_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x57d639d7 req_capsule_init_area +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x588035b4 RMF_UPDATE_REPLY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x58a89037 lprocfs_rd_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x591e99c5 sptlrpc_cli_enlarge_reqbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x595ab175 lustre_swab_obd_quotactl +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x596582bf RMF_GETINFO_VALLEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59712177 ptlrpc_req_set_repsize +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59ca398b ptlrpc_add_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5a057439 interval_search +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5af0d02a ldlm_lock_dump_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b3b327e llog_origin_handle_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b6ba895 lustre_packed_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5bb6d34c ptlrpc_unregister_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5c6a3a83 RQF_SEQ_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5caae213 ptlrpc_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5d376468 ptlrpc_invalidate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e0b19b1 RMF_CLUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e2b7558 lustre_msghdr_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e6f435d RQF_OST_BRW_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e80f899 RQF_LLOG_ORIGIN_HANDLE_READ_HEADER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ec3284d RQF_MDS_HSM_CT_UNREGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ef831ee lustre_msg_get_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5f96ccdd ptlrpc_connection_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6042bc15 RQF_MDS_REINT_RENAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x604e2505 RMF_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x607ec932 lustre_msg_set_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60cd26ad RQF_MDS_REINT_CREATE_SYM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60ce4767 target_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60eca28f lustre_pack_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x61646e1b RQF_MDS_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x618ad203 RQF_OST_GET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62192cf8 dump_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62aaae3f RQF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62c1100a ptlrpc_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x630f6ee6 sptlrpc_import_sec_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6315dd4c RMF_LLOGD_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6352a62d ldlm_get_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x63d8bb33 _ldlm_lock_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x647b6e48 lustre_swab_ldlm_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x653723dc RMF_LOGCOOKIES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x657b00b7 ptlrpc_init_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x678f0dfd sptlrpc_register_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x67e40b6b ptlrpc_deactivate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x683243bf ptlrpc_set_next_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x685eeaba RMF_DLM_GL_DESC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68b05d6b ldlm_namespace_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68cb2541 interval_is_overlapped +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68f49e5e ptlrpc_expired_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6912990a RQF_OST_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69180817 sptlrpc_enc_pool_get_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x696ba811 lustre_msg_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69c9f04d RQF_MDS_REINT_LINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6a3785c9 RMF_EADATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6c804fb8 req_capsule_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d72828c sptlrpc_conf_log_update_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d7931cc RQF_UPDATE_OBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6df52523 ldlm_lock2handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6ed20499 ldlm_revalidate_lock_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6efa82b0 RQF_MGS_TARGET_REG +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f6dc736 lustre_swab_mdt_remote_perm +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6fb92092 sptlrpc_flavor2name_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x703538e4 lustre_swab_hsm_current_action +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x723d43b6 sptlrpc_rule_set_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x725a892c RQF_MDS_REINT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7287b6c0 ldlm_pool_get_lvf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x73e4e5c9 ptlrpc_add_rqs_to_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x74840056 lustre_msg_set_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7561f9d4 ptlrpc_prep_bulk_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75760b91 client_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75a2c40d ldlm_put_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x76990a6b ptlrpc_queue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x76b728e5 lustre_swab_update_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77571cc6 lustre_swab_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77840c82 sptlrpc_rule_set_choose +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x78bf9136 lustre_swab_ldlm_lock_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7958ec43 sptlrpc_sec_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x796bdad2 lustre_free_reply_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7976c367 do_set_info_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7a832f10 RMF_CONN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7b158da4 lustre_swab_ldlm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7bbf8001 RMF_MDT_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7c4c6107 RQF_LDLM_CONVERT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7c70b39e llog_initiator_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d1ecd7f RQF_LDLM_INTENT_LAYOUT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d41a8b9 RQF_QUOTA_DQACQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d98b5ed sptlrpc_import_flush_all_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dc0e7cd RMF_QUOTA_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dfb3c18 lustre_msg_clear_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4925d8 interval_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4c99b1 ldlm_expired_completion_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f5a1cc7 lustre_msg_set_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f6d2357 lustre_msg_is_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7fcc7323 ptlrpc_request_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7fea54c8 ldlm_namespace_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7ff23eb3 ptlrpc_unregister_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80298276 ldlm_glimpse_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80a9e8c3 lustre_msg_get_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80ecb4e3 RMF_MDS_HSM_CURRENT_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x817d7f1f lustre_msg_add_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x826d3c4f RQF_LDLM_GL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x837efb00 RMF_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x844e9e46 sptlrpc_sec_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85135801 RMF_DLM_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85206a55 ldlm_cli_cancel_unused +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85a9e0d8 RMF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85eecf67 sptlrpc_get_hash_alg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x863db6eb RMF_HSM_USER_STATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8659a7c4 ldlm_resource_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x86fa8c3b ldlm_cli_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8760beaf lustre_swab_ldlm_policy_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x876c2551 RMF_GETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87b8c702 req_capsule_client_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87bf7b3c sptlrpc_get_next_secid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87ff2afb ldlm_pool_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x886efba8 llog_origin_handle_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8872f3d2 RMF_SETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x888be277 __ptlrpc_free_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x88fff52d RMF_CAPA2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x89f9edf7 RQF_MDS_REINT_SETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a1ea476 lustre_swab_hsm_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a257736 RQF_MDS_HSM_STATE_GET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a4345b1 ptlrpc_set_add_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8abd760e sptlrpc_conf_client_adapt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ac440fa ptlrpc_uuid_to_connection +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8b795c1d ptlrpc_unregister_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8b854254 lustre_swab_mgs_config_res +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8b9c90e2 ptlrpc_resend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8bc6e8f8 ldlm_pool_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8cb71d4b RQF_MDS_REINT_CREATE_SLAVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ce1a8a5 ldlm_cli_enqueue_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d77ea75 lustre_msg_set_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8da3fca7 lustre_msg_add_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8e9abe4d RMF_GENERIC_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8f0aceac RQF_MDS_HSM_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8f9021e8 req_capsule_has_field +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8fec0451 lustre_msg_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x90599242 client_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91696dc5 req_capsule_server_sized_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x919c4ce3 RMF_OBD_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91cf58d3 RQF_MDS_PIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x92578990 client_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9299eb1d ptlrpc_set_add_new_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x92fe0bed ldlm_destroy_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x930f3c57 ptlrpc_service_health_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x937b1ee0 lustre_swab_mdt_ioepoch +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9553c633 RQF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x958f7c34 ptlrpc_resend_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95d08f0c lustre_swab_mgs_target_info +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9660ace0 RMF_FLD_MDFLD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x967bfd52 RQF_OBD_PING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9731c07b ptlrpc_reconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9798f2f1 RQF_MDS_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x97a1ac3f req_capsule_filled_sizes +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x980fcfdc ptlrpc_connection_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x98c7a7a6 client_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a258886 RQF_MDS_GETSTATUS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a6f2f6d lustre_msg_set_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9b688576 llog_origin_handle_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9b88f6ce RMF_NIOBUF_REMOTE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9bb5198b RQF_MDS_CLOSE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9bf5825d ptlrpc_request_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9c33945e req_capsule_server_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d7ea314 sptlrpc_pack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9e553a44 ldlm_lock_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9f12243a ldlm_cli_cancel_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9fb088f1 lustre_swab_lov_mds_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa10f0d3d RMF_UPDATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa163f4c3 dump_rniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa166b3c3 ptlrpc_set_import_active +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa16c1dc1 ldlm_cli_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2244636 RQF_MDS_GETATTR_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa22c0086 ldlm_error2errno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa24b7218 ptlrpc_replay_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2b5ae22 ptlrpc_unpack_rep_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2e93e3e llog_origin_handle_read_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2f712ab llog_client_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa3d2a6ee RMF_CAPA1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa47787ef RMF_PTLRPC_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4a2d089 RQF_OST_PUNCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4bea5ef lustre_swab_lmv_user_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5458dad ldlm_lock_decref_and_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5880075 ldlm_errno2error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa66888dd ptlrpcd_add_rqset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa6c436ca RQF_MDS_WRITEPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa791ed7d sptlrpc_cli_ctx_wakeup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7d55cc3 RQF_MDS_REINT_CREATE_RMT_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7e360b1 RMF_OBD_IOOBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7ec567d RMF_CONNECT_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa940f254 ldlm_enqueue_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9704f80 lustre_msg_get_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9c4658e lustre_swab_lov_user_md_v3 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9edf09d RQF_OBD_IDX_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaa3ec116 sptlrpc_import_flush_my_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xab6be44f ptlrpc_fail_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xacd5ee82 ptlrpc_pinger_sending_on_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xad3cd93a ptlrpc_request_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xad92275d ldlm_lock_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xad9323b5 __ldlm_handle2lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaddc3979 lustre_swab_lustre_capa_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xae16049c ptlrpc_lprocfs_register_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xae1a13b0 ptlrpc_activate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf4e9658 RQF_MDS_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf50a0d6 RMF_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf9ca4eb ldlm_pool_set_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0751fa4 RQF_LLOG_ORIGIN_HANDLE_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb088bf0c req_capsule_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb19ee72c lprocfs_wr_evict_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1b43d8a dump_rcs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1b84d02 sptlrpc_enc_pool_put_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb27c2374 lustre_msg_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb291473d lustre_msg_early_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb2b1817d lustre_swab_ost_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb3cebdd0 ptlrpc_save_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4370256 ldlm_blocking_ast_nocheck +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4a7ecf3 lustre_msg_add_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb512ebc2 sptlrpc_parse_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb5e01ba8 ldlm_resource_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb61cb95a RQF_MDS_GETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb65af063 req_capsule_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb68476df interval_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb6aafd03 RQF_MDS_DONE_WRITING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7b38189 RMF_MDT_MD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7fa3cc8 RMF_LLOG_LOG_HDR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb903634e RQF_OST_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb9b631cf lustre_swab_mgs_config_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xba1c93b4 sptlrpc_svc_ctx_invalidate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbaa76097 lustre_msg_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc1370dc lustre_shrink_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbd677290 ldlm_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbd83bc44 RQF_OBD_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbd87527a sptlrpc_lprocfs_cliobd_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbe47bc7e ping_evictor_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbe760bd5 ldlm_pool_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbf98b86f RQF_MDS_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbffd4313 RQF_OST_BRW_WRITE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc06c4670 lustre_msg_get_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0867da7 RMF_REC_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0cdf55e RMF_MGS_SEND_PARAM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0d1cfe4 ptlrpc_obd_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0dafef2 lustre_pack_reply_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc1888ace ptlrpc_lprocfs_brw +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc193d369 ldlm_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc19d5390 __ptlrpc_prep_bulk_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc1ed015f ldlm_pool_get_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc25c4367 ldlm_lock_downgrade +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2986d28 lustre_swab_ldlm_res_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2b1af57 RQF_MGS_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2be922a RMF_SYMTGT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2f9e13c ldlm_namespace_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc4d95ba5 sptlrpc_target_export_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc559a634 RMF_LAYOUT_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc5b6a157 sptlrpc_req_replace_dead_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc5f1d5b2 ldlm_cli_cancel_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc60a60e1 RQF_OST_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc64d3d67 ldlm_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc694be4b RQF_LLOG_ORIGIN_HANDLE_PREV_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc748616b req_capsule_client_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc763fabc sptlrpc_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc78a5464 ptlrpc_free_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc79b9c67 ldlm_pools_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7ca8257 RQF_MDS_REINT_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7e47564 ptlrpc_interrupted_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc8f586a9 ptlrpc_connection_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc90cd0ec req_capsule_server_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca4522fa ldlm_replay_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca5a81ec ptlrpc_pinger_ir_down +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcab210fe sptlrpc_gc_add_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb16107d ptlrpc_set_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2cc0cf lustre_swab_lquota_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2ceaff sptlrpc_secflags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcc7eee77 ldlm_cli_enqueue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce1a689b sptlrpc_enc_pool_add_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce86066d lustre_msg_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcec2f2de ptlrpc_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcec513c9 RQF_MDS_UNPIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xced015be sptlrpc_rule_set_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf8eefbc ptlrpc_request_alloc_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9963db lustre_msg_get_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9aab6a RQF_MDS_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd081f704 ptlrpc_init_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd195b477 ldlm_get_enq_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd25758fc sptlrpc_cli_ctx_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2983334 lustre_swab_swap_layouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2e0d4eb lustre_msg_get_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd3dae408 ldlm_it2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd430550d lprocfs_wr_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd48d3055 ldlm_cli_cancel_unused_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd4be8da7 req_capsule_client_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd4f345a1 ldlm_namespace_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd514bb8c ptlrpc_start_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd537ded2 lustre_swab_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd67a5d7b lustre_swab_update_reply_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd69e0a27 RQF_MDS_IS_SUBDIR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6c3ebfb RMF_FIEMAP_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd7910326 lustre_swab_obd_statfs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8558afc ldlm_extent_shift_kms +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd899235a ptlrpc_pinger_add_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8b91b3e lustre_swab_lov_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8f06300 RQF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd9561861 RQF_LDLM_INTENT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xda1a2374 ptlrpc_nrs_policy_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xda2ac111 sptlrpc_proc_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb1fb0a2 RQF_MDS_REINT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb9d5a6a lustre_swab_niobuf_remote +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdce98371 unlock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdcf910b9 lustre_swab_ost_last_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd0ffb04 sptlrpc_flavor2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd30d7bf RMF_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xddc40a85 lustre_msg_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde12d36b RMF_MDS_HSM_ARCHIVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde555d70 sptlrpc_enc_pool_del_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde592da7 ptlrpcd_alloc_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdee87192 sptlrpc_conf_log_update_begin +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf2d13ad ldlm_reprocess_all_ns +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf701ae7 lustre_swab_fid2path +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe036cca1 ldlm_pool_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0cc694c RQF_LLOG_ORIGIN_HANDLE_NEXT_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe14d8ab3 client_import_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe3d5a895 ptlrpc_send_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe40e0a50 lustre_msg_get_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe4c1f17c ldlm_lock_fail_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe5274aee ldlm_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe57bd972 sptlrpc_current_user_desc_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe5af82dd ptlrpc_prep_req_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe5e8169b lustre_errno_ntoh +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe643998e RQF_OST_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe677c024 ptlrpc_request_alloc_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6f0dc96 RQF_OST_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7062b5f RMF_U32 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7512278 ptlrpcd_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe8c19146 ptlrpc_disconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe9c4b39b req_capsule_client_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe9e42df1 ptlrpc_req_finished +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabaa0b1 lustre_swab_mdt_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabac4fc sptlrpc_rule_set_merge +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeb214e9d ldlm_flock_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xebb64e68 req_layout_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec226f66 ping_evictor_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec939a00 RQF_MDS_REINT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xecace5c1 RQF_OST_GET_INFO_GENERIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed1c10d6 ptlrpc_connection_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xedcb740d sptlrpc_name2flavor_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef1aeca9 RMF_FLD_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef94e69f ldlm_pool_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0241d6e lustre_swab_hsm_progress_kernel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0d52b5f ptlrpc_pinger_suppress_pings +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf1300275 _sptlrpc_enlarge_msg_inplace +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf21a5dcf sptlrpc_cli_unwrap_bulk_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf277c125 RQF_OST_GET_INFO_FIEMAP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf27d49dc sptlrpc_target_choose_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf35f132b lustre_swab_ldlm_resource_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf3d44370 RQF_OST_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf43540b9 lustre_swab_mgs_nidtbl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf45085e1 sptlrpc_conf_log_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf55c033b RMF_MGS_CONFIG_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf584a16b sptlrpc_part2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf596e9ae sptlrpc_conf_log_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf607fc23 sptlrpc_flavor2name_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf617ab8a lustre_msg_get_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf697b756 ldlm_dump_all_namespaces +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf6aba074 ldlm_destroy_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7408f84 lustre_swab_hsm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf75967c6 req_capsule_other_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7b43512 sptlrpc_gc_del_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7ba40c0 RMF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf85cb27e sptlrpc_parse_rule +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf870fed9 RQF_LDLM_GL_DESC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9051bd6 RQF_QC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf94e41e0 deuuidify +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf973aa93 lustre_swab_lov_user_md_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf99cbbca ptlrpc_commit_replies +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9ee11e2 lustre_msg_set_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9f72dfc RMF_TGTUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa51688d interval_insert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfb444a98 ptlrpc_prep_fcset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfc2fa83f ptlrpc_del_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfcf8463b ptlrpc_stop_all_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd148bf8 RMF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd7c435e ptlrpc_prep_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfde8c3d4 ptlrpc_schedule_difficult_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfe4a36b5 ldlm_namespace_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfe50bcfa ptlrpc_mark_interrupted +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfec4c153 sptlrpc_sec_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff02a0e9 ldlm_lock_set_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff2b5341 ptlrpc_prep_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff58582a ptlrpc_request_bufs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffc807e8 sptlrpc_unpack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffe29c3f RQF_LDLM_ENQUEUE +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0xa31f5fd5 cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x084ff74e go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x2b9543be go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x318eac5e go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x59f521e3 go7007_snd_init +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x68558c1d go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x6b993108 go7007_update_board +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x6f2f3301 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x77522273 go7007_snd_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xd696984b go7007_read_addr +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x06839583 rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1ff74ee3 rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2776647b rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2b073e7d rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2eac07fa Dot11d_Channelmap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3056c5f5 rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3192c4d8 free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x388c7fe3 alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x413abf77 rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x41550d3c rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x50f8b3e9 rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6123f3fd RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x61347cfb rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x642320ef rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6f01a5c8 rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x72114de9 rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7933c8ce rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x85e3ec35 rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x88383c36 notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8841eba3 rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8b2567d6 HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8d2c3ef5 rtllib_wpa_supplicant_ioctl +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x92497326 rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x93797ed0 rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x946e07cf rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x961b7813 rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9d345b95 rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9f1dd701 rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa272a7d5 rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa3354ccc rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa63364c7 rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa887641b dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb5531607 rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb895169d rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbaceed6f rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe1420f2 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe640cb8 rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc1bf94de rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xcbbfa4e6 rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xcf3019d0 rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd5393171 rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf78f620 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe6245fc4 rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe6375542 rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe8d4d6b7 rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xee211794 rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf1494c8e rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf1cab319 rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf4d28756 rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf8912718 rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf9593d4d rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfd7a3e55 rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x08238212 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0a75dbc4 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0ca5e654 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x13d0dd8c ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x157cd582 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x16babf26 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1c10f9da ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1c55929b ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1e533ce4 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x22cc33fe ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x30fb6cca ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x32d5ad3d ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x343dc1f6 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x391a82f5 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cbb989d ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4505f125 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4c15556d SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4c38d6d1 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4c54b79a ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4e5dd00f ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4eccd102 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x512b6f82 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x55827f5b ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x613bd129 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x64f7868f ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6ace6ffc ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c32c8b5 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7881b15f ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x791bb2c1 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7b933996 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7c5307e2 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7ff3de0a ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x880296ba ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x89cee62a ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8c8691f6 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x92e9cb2f ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9e62784b HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa05a0011 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa27ea82d Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa60b9a71 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa6f9ef1a ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xad08ed95 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb2ee717b ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc7fa37e8 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xca7ced62 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcc4bd2cb Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd1168068 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdd9f0c91 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdf85d74c ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdfcfb818 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe8f83200 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf4a434e6 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf649b737 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf6ad5373 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfb241526 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfff2228e ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0017f35f set_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x00ea0cde set_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x06d6f244 get_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x09df8f3e set_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0a8d32c3 get_bypass_slave_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1936264c set_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1d2eb8ca get_tap_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x203af1f7 reset_bypass_wd_timer_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2070f14a set_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x27b990ef get_bypass_info_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2ba7cd35 get_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2c3f1c17 get_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2f59e636 get_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2fdb893a get_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x361cf40a get_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x45ca99c3 set_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x550a188c set_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x5cb59e92 get_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x66b60122 set_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x675208c0 set_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x692623f2 get_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x75131ec6 set_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x76c0b7d0 set_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e872825 get_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e8d701e get_wd_expire_time_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x86388b07 get_bp_disc_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x93ae4648 get_wd_set_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x95e42b0d is_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9df5f807 set_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9e21f42e set_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xa689a214 get_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xae117788 get_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xc368d30d get_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xccab5de0 get_bypass_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd3e034b3 get_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9c1ccfc get_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9d38d97 set_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xe640f06e set_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xecdaa456 set_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xedcd3c1b get_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf06d67bf set_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf57c1671 get_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf693c3a1 bp_if_scan_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf8237882 get_bypass_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xfa59240d get_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05af3c4c set_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05b08a42 set_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0b0d5ce0 get_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0fc2e83c reset_bypass_wd_timer +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x123a8133 get_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x157ec89c get_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2440f05a get_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2b01d1d4 set_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2c27a2f0 set_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2da97f4b is_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2e86c67b get_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37416370 get_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37bdab27 get_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x3da96a18 get_bypass_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4025805e get_bypass_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4940a0cc get_bypass_info +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4d21ff51 get_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5147360c get_bp_disc_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x515d4df1 get_bypass_slave +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5560267e set_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5be44d44 set_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6653590c get_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6bda14ec get_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x72c618ae set_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x76d47e6f set_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x794e3815 set_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x7c6cbc16 get_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x84a263dc set_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x8a16f22c set_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x946ff795 get_wd_set_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x94f6aff2 get_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x9d1ecf73 set_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xb1385629 set_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xbff68c45 set_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xc871c561 get_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xcee528df set_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd202dd85 get_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd787f151 get_wd_expire_time +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xdb6a39d2 get_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xebd25ae5 get_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf1e9f8c1 set_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf224abd9 get_tap_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf5a591b2 set_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf643fd4c get_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x25978d50 xillybus_isr +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x41b9ed9c xillybus_do_cleanup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x75ecc6b9 xillybus_endpoint_remove +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0xc9eefa40 xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0xfa471734 xillybus_init_endpoint +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x091c09f3 iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x217e076f iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2af56db0 iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2f9301da iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x318c1d4a iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x38651e66 iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3bd22089 iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5163a629 iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x52b05db9 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x62d1b3bd iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7d065e4f iscsit_set_unsoliticed_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8001f6b5 iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x83abb02e iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8ba2721c iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x95c6700c iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x97310764 iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xab34e2e3 iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xacd197ee iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xadfc1720 iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xafd1af04 iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb4217bee iscsit_handle_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbe56cc08 iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc26123a9 iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc6b6db01 iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc6c82abf iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe55ab55c iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf3de0145 iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf66a9961 iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x03f521df target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x07625a45 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x0c836a37 spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x0ffd375a transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x16a6c9d3 transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x1af9b2e9 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x1b25fd69 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x1c711304 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x1d3d8d44 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x1e2d7da7 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x21e21a8f iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x2270ed0d sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x262dfed8 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x28372218 sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0x302f9508 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x304f49c9 spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x32342a0b target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x353e8e92 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x392d7f3e transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x3cb1e0cd transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x3d3e5be2 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x3d81ac91 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x3edbdc08 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x44d6faef spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x49636835 spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0x4bd86be3 target_setup_cmd_from_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x4f4e46fd core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x53d77295 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x56b39c11 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0x5a26e4f8 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x5d5832e6 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x6187878c iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x61db3564 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x644128c9 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x64529801 fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x65968c96 target_submit_cmd_map_sgls +EXPORT_SYMBOL drivers/target/target_core_mod 0x6c9c0cd6 sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x6cfec74f target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x6f48aeb6 core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x708382da target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0x72b27657 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x822a5ced transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x82b93308 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x83b1a603 target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x8663b9e9 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x8886b6a2 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x8dac53db transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x95ce72ba transport_init_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x976219ca fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x9ad09091 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x9fb414be transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xa18752ce core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xa55d706a core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xa587bb99 target_sess_cmd_list_set_waiting +EXPORT_SYMBOL drivers/target/target_core_mod 0xa926929d fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xab51990a target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xace463e9 transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0xaf9b77cd target_get_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xb1d8b443 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xb62f32a8 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xbb5e027b target_put_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xbeabda22 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xc3dc7913 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xc5f69f01 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xd6d67b96 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xd928ac74 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0xdf2326bc transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xeb7b74ca iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xec4ca867 sbc_execute_unmap +EXPORT_SYMBOL drivers/target/target_core_mod 0xeeffff9e transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xfd9586ce target_submit_cmd +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0x485e181c usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0xabba2b72 unregister_gadget_item +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x036b4b06 gether_setup_name +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x11b0ffae gether_connect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x1d5c4ed3 gether_get_host_addr_cdc +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x256be318 gether_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x3877b0db gether_set_gadget +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x55d3119e gether_set_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x82b977af gether_get_host_addr_u8 +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8878cfa6 gether_cleanup +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8bcba0a0 gether_register_netdev +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x97002b08 gether_get_ifname +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xa2e987e6 gether_get_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xb03f9085 gether_set_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xb5e594c7 gether_get_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xbf1feaff gether_setup_name_default +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xe58ff7c7 gether_get_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xe9981e94 gether_set_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x00b40a64 rndis_set_param_dev +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3a6d4f22 rndis_free_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3ca38e3a rndis_signal_connect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x4ca90996 rndis_signal_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x5d22b406 rndis_register +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x785d494b rndis_msg_parser +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x840dd143 rndis_deregister +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x988ad2a2 rndis_set_param_vendor +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x9acf72e4 rndis_set_param_medium +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xa90054ee rndis_uninit +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xb971ebca rndis_get_next_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xc1cfed30 rndis_rm_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xc7243bf4 rndis_add_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xd2fe47b1 rndis_set_host_mac +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x01f20234 fsg_lun_open +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x12876f50 fsg_store_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1710b539 fsg_fs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1b1cc3af store_cdrom_address +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x2933ee1d fsg_ss_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x398778e1 fsg_ss_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x423845e4 fsg_ss_bulk_in_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x56344daf fsg_hs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x5f50be76 fsg_show_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x793cb579 fsg_store_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x84ea489c fsg_show_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x857b6dc2 fsg_hs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x95cffb3e fsg_hs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa3a6088b fsg_store_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5cae92f fsg_ss_bulk_out_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5f99b69 fsg_fs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xae0a02e7 fsg_show_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb52ba28a fsg_intf_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb54d0d95 fsg_fs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb6c9d846 fsg_lun_close +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb6f3643a fsg_show_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xcc551a3e fsg_store_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf3599855 fsg_show_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf4efc0c8 fsg_ss_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xfe68d52a fsg_store_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xfe8cade3 fsg_lun_fsync_sub +EXPORT_SYMBOL drivers/usb/gadget/usb_f_rndis 0x94fa4c48 rndis_borrow_net +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x050ef9a6 sl811h_driver +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1e365ed0 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1f271566 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x260fb527 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x34ae2d3a usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3dd66a42 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3f2630c2 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4527884b usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x49f9bf4d usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5177d3f3 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5590feba usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x825193a9 usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x88edc02d usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xda28fb8c usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x28c3f122 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x35ebdfd4 usb_serial_suspend +EXPORT_SYMBOL drivers/vhost/vringh 0x0dda8c5a vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1f063017 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x2e91ca97 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x367ce26a vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x36dfce73 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3eaf442a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3fa42e4f vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5dafbd4e vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x66af098b vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x6d0e7948 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7bda5e6d vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x821e9390 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0xaf8e4a0e vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xafb47dae vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc884d704 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc8bee0a4 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xd11d2709 vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xda4ea4cc vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xfc7dcad2 vringh_getdesc_user +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x7e93729b devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x829b840d lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x887ff376 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x959e6a61 devm_lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x8577ac90 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x3da6102d matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xa55b3367 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xa8181f53 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x449b0b8c DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xb51d3bbf DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xd97e731f matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xf91aede0 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x578ad927 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x5f59da7d matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x648f3abf matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x6fa187f4 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x84dfdaa1 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xc426b75a matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x2e84fe58 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x6be6e738 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x6c08d0d7 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x92d30869 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x94f9a6f8 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xd8389d99 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xfcdc0ade matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0x8abc94ed mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x7e520aa1 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xb1e866af video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x2f73de71 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x30589409 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x6c29f531 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x6e4adb1e svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x8de63fb4 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0xa58a6202 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0xc18ed422 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xc8948929 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe70a7faa svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf2db5956 svga_match_format +EXPORT_SYMBOL drivers/video/syscopyarea 0x74e5744c sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x1c6b0832 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x6170e417 sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/vme/vme 0x0752d22e vme_dma_request +EXPORT_SYMBOL drivers/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/vme/vme 0x0fcb038f vme_unregister_driver +EXPORT_SYMBOL drivers/vme/vme 0x16463915 vme_slave_request +EXPORT_SYMBOL drivers/vme/vme 0x2157965d vme_dma_pci_attribute +EXPORT_SYMBOL drivers/vme/vme 0x239d5028 vme_dma_list_exec +EXPORT_SYMBOL drivers/vme/vme 0x2527a087 vme_slave_set +EXPORT_SYMBOL drivers/vme/vme 0x2a178d2a vme_dma_list_add +EXPORT_SYMBOL drivers/vme/vme 0x2cd9621d vme_slot_get +EXPORT_SYMBOL drivers/vme/vme 0x354c3e34 vme_lm_request +EXPORT_SYMBOL drivers/vme/vme 0x400f7492 vme_unregister_bridge +EXPORT_SYMBOL drivers/vme/vme 0x46649cd1 vme_lm_set +EXPORT_SYMBOL drivers/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/vme/vme 0x4baf35a7 vme_master_get +EXPORT_SYMBOL drivers/vme/vme 0x535c8308 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/vme/vme 0x54e09183 vme_irq_request +EXPORT_SYMBOL drivers/vme/vme 0x5aff4177 vme_lm_get +EXPORT_SYMBOL drivers/vme/vme 0x64922aaf vme_bus_type +EXPORT_SYMBOL drivers/vme/vme 0x66227eae vme_alloc_consistent +EXPORT_SYMBOL drivers/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/vme/vme 0x7fde2edb vme_master_read +EXPORT_SYMBOL drivers/vme/vme 0x84a69fdc vme_slave_get +EXPORT_SYMBOL drivers/vme/vme 0x8b87d718 vme_dma_list_free +EXPORT_SYMBOL drivers/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/vme/vme 0x94b2590f vme_free_consistent +EXPORT_SYMBOL drivers/vme/vme 0x97344d96 vme_irq_generate +EXPORT_SYMBOL drivers/vme/vme 0x98a8419b vme_irq_handler +EXPORT_SYMBOL drivers/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/vme/vme 0xa31bdf07 vme_master_set +EXPORT_SYMBOL drivers/vme/vme 0xa3c0b742 vme_master_request +EXPORT_SYMBOL drivers/vme/vme 0xbcc07dd0 vme_new_dma_list +EXPORT_SYMBOL drivers/vme/vme 0xc78e9e8d vme_irq_free +EXPORT_SYMBOL drivers/vme/vme 0xc873bf46 vme_register_driver +EXPORT_SYMBOL drivers/vme/vme 0xd3fa3e42 vme_register_bridge +EXPORT_SYMBOL drivers/vme/vme 0xd797b9a5 vme_master_write +EXPORT_SYMBOL drivers/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/vme/vme 0xe693a6ce vme_get_size +EXPORT_SYMBOL drivers/vme/vme 0xefd1624a vme_dma_free_attribute +EXPORT_SYMBOL drivers/vme/vme 0xfacd8e72 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x1ab895c3 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x77a51186 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xa5eb6511 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xe42f580c w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x14fa74c3 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x37bd0e2d w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x2b8b8fd6 w1_ds2781_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0xc65b5d76 w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/wire 0x1217b0c4 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x122c0e0c w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x2ee68a76 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x465e8423 w1_add_master_device +EXPORT_SYMBOL fs/btrfs/btrfs 0x27476846 ulist_reinit +EXPORT_SYMBOL fs/btrfs/btrfs 0x41e6a9d2 ulist_init +EXPORT_SYMBOL fs/btrfs/btrfs 0x7e2ee765 ulist_free +EXPORT_SYMBOL fs/btrfs/btrfs 0xa2eec2e8 ulist_fini +EXPORT_SYMBOL fs/btrfs/btrfs 0xb1320bc8 ulist_add +EXPORT_SYMBOL fs/btrfs/btrfs 0xb42289d2 ulist_alloc +EXPORT_SYMBOL fs/btrfs/btrfs 0xc2c745db ulist_next +EXPORT_SYMBOL fs/configfs/configfs 0x17d02ceb config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x4b4febc8 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x6c208d6c config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x6e7cbb61 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x72bd6cdd configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x90932e28 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x9e27c00a configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xbb86c956 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0xc812659e config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xd9202dae config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xdae4faba configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xe82d319f config_group_init +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x29db6d27 ore_read +EXPORT_SYMBOL fs/exofs/libore 0x2d05a172 ore_remove +EXPORT_SYMBOL fs/exofs/libore 0x3607c8d5 ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0x4527e170 ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x53ab594e ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0x57174741 ore_write +EXPORT_SYMBOL fs/exofs/libore 0x7daa25cb ore_create +EXPORT_SYMBOL fs/exofs/libore 0x83b2d443 extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xb8ac5ba6 ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0xbb1658a7 ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0xe5d44ca8 ore_put_io_state +EXPORT_SYMBOL fs/fscache/fscache 0x008d9ff4 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x021520e9 fscache_op_complete +EXPORT_SYMBOL fs/fscache/fscache 0x02160960 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x10c2de81 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x10ca237c __fscache_wait_on_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x1361725a fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x19b85de7 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x1ae3c139 __fscache_enable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x1febbd41 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x23734d3e fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x305c31a2 __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x35bd38ff __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x41044b8f fscache_object_init +EXPORT_SYMBOL fs/fscache/fscache 0x48480709 fscache_object_destroy +EXPORT_SYMBOL fs/fscache/fscache 0x486ae475 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x4f8a0afe __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x5755ccaf __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x5c239ec6 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x5c443100 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x68952f55 __fscache_check_consistency +EXPORT_SYMBOL fs/fscache/fscache 0x72453d95 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x781fbff9 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x791bb107 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x79d58a6c __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x8b758ac6 fscache_mark_page_cached +EXPORT_SYMBOL fs/fscache/fscache 0x8f72286f fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x907650bf __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x9a9f6652 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xa208e8ce __fscache_disable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xa2e015c5 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xae9909e6 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xd779e681 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xe599b066 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xec3e13ce fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xf3f77bb2 __fscache_readpages_cancel +EXPORT_SYMBOL fs/fscache/fscache 0xfbb527a4 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0xfc8e2de7 __fscache_maybe_release_page +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xa0f4b528 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0xb25b2957 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0xe13337f0 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x3d4c2b1b qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x8400223c qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x92170ffb qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x9701509d qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xb2bfd8d7 qtree_entry_unused +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t +EXPORT_SYMBOL lib/crc7 0xa7587646 crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0x41248eaf crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x0c9ff2c3 lc_find +EXPORT_SYMBOL lib/lru_cache 0x0d2dc6b3 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x2bca6ccb lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x33265e2c lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x3691748f lc_set +EXPORT_SYMBOL lib/lru_cache 0x43e46a2d lc_committed +EXPORT_SYMBOL lib/lru_cache 0x452c8b46 lc_del +EXPORT_SYMBOL lib/lru_cache 0x60fd5d64 lc_is_used +EXPORT_SYMBOL lib/lru_cache 0x75a91db9 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x8af6181d lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0xa2873827 lc_try_lock +EXPORT_SYMBOL lib/lru_cache 0xb74693bf lc_try_get +EXPORT_SYMBOL lib/lru_cache 0xbb6d3769 lc_create +EXPORT_SYMBOL lib/lru_cache 0xbd032277 lc_put +EXPORT_SYMBOL lib/lru_cache 0xd1d7db5b lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0xef129f5b lc_get +EXPORT_SYMBOL lib/lru_cache 0xf9b6ff79 lc_get_cumulative +EXPORT_SYMBOL lib/lz4/lz4_compress 0xcbc5d521 lz4_compress +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x26c3aa22 lz4hc_compress +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0x7456cc61 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/raid6/raid6_pq 0xd9e91f83 raid6_vgfmul +EXPORT_SYMBOL net/802/p8022 0x15c1d493 register_8022_client +EXPORT_SYMBOL net/802/p8022 0xb0ec6c13 unregister_8022_client +EXPORT_SYMBOL net/802/p8023 0x8f488be6 destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0xf610ce4b make_8023_client +EXPORT_SYMBOL net/802/psnap 0x0e37798d unregister_snap_client +EXPORT_SYMBOL net/802/psnap 0x4e491c4e register_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x09835b9a p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x0b3a2beb p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x0cd217fb p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x0ed8f4d1 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x122bc2ad p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x13fb3bba p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x191d0ec7 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x20bea3fa p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x2d066860 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0x2dbc496b p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x30703371 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x37ce6d37 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3cf44919 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x44d2c2c0 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x458687ce v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x45bbff7f p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x4715c63f p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x49e408f3 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x54808d76 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x54819814 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x59a82099 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x5bf5188c p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x5e5195b9 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x6c4a9636 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x70f1f51f v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x71c8176a p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x74829a3a p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x7799cf62 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x8005a101 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x81e2a243 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x83d0df81 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x87675956 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x993496e9 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x9b872b4a p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x9bd77f86 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xa1c823c3 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xaa3938bf p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xb35785ff p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xba1607a7 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0xc326df9c p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xdaf1cb4d p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xdd92ea90 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xde43dd8a p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x2da589eb aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x3eafbb09 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x5b99ea3b atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xe0c72c26 atalk_find_dev_addr +EXPORT_SYMBOL net/atm/atm 0x18eb9c15 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x30fe5118 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x32f92585 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x35ea23bf vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x464cdd78 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x957e3db8 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa49bdf8c deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xab72a7c5 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xca87b453 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xcb2c2bd4 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xcc937cb2 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xf0e190c7 atm_charge +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf95dfcd4 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0xfcbf4e4b atm_dev_release_vccs +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x1b3cc6d5 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x3060aaa2 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x3afee63e ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x4135a29b ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x94f00071 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0xa1900e42 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xa27a093f ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xcdf327e4 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xeaa1f5ec ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xf4e0e304 ax25_listen_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x08a6bf65 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x15516368 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x17fed296 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1fe22657 l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0x220166ab bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2ec5488e l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0x32fe8bb9 l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b0f6b47 l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b822a91 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4d36c7b7 bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4ff4d674 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x58761b80 bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5b49ea33 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6960d8bc hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6ba7cde3 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x75023c73 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x790f5b69 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c640527 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8d7a5ce5 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x93e62441 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x96199ed0 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9f8179ae bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9f89be74 __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa0ba5b2c hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa344e5ec __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa4cab72d hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb61a0c3b bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0xba032941 bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc1e54f38 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc7a425d3 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcd530a61 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcfb361f3 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xde6b57dc hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xde819d0a hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe1028fe5 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe558133d bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe983f864 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf97c525f bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfffaaa80 hci_conn_security +EXPORT_SYMBOL net/bridge/bridge 0x40d24dc2 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x838293bd ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x8e834c3c ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9268f6c7 ebt_unregister_table +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x1c764f3d caif_enroll_dev +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x3315ac0a caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x38701a7c cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x6116aa82 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x6a44fc70 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x966d7de2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/caif/caif 0xe6b42a3b cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xfc659684 get_cfcnfg +EXPORT_SYMBOL net/can/can 0x1ee570ad can_proto_register +EXPORT_SYMBOL net/can/can 0x24a4b51c can_send +EXPORT_SYMBOL net/can/can 0x84f87765 can_rx_register +EXPORT_SYMBOL net/can/can 0xa63bb14d can_ioctl +EXPORT_SYMBOL net/can/can 0xe30e62c4 can_rx_unregister +EXPORT_SYMBOL net/can/can 0xf41db564 can_proto_unregister +EXPORT_SYMBOL net/ceph/libceph 0x00bc7608 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0c449c33 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x14638bbb ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0x1475bf0d ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x18d2528a osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x18f93ddc ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x190ffb48 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1c47fb7a ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x1f21b385 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x20d151cb ceph_osdc_setup +EXPORT_SYMBOL net/ceph/libceph 0x22ed8cf4 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x26524370 ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0x27332d82 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x2e0bd938 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x2e4a551c ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x2ed541e8 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x32292e51 ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x33b0b976 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0x359cb592 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x35fbae74 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x367a200b osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3c2cdc30 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x3d990f6f ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0x3df0ec7c ceph_calc_ceph_pg +EXPORT_SYMBOL net/ceph/libceph 0x3f688151 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x4205ffd7 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x43efd647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x4800da51 osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0x4a79eafa ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x4b7ecdb5 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x5039502f ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x505f313d ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x51949ff5 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x51bc83fb ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x527fa9e2 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x52c401c6 osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x58058c2d ceph_auth_update_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x5bc29a02 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x646d7c19 osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x6b2e3bcd ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x6c5d5ac1 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x6cd3d10f osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x738728ee ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x741d79a7 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x79d52c4f __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x7a44c61d ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x7e7e2129 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x7e8ce27c ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x800da005 ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x8aeb6dce ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x9432f0e1 ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0x95a8932c osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x962c7e1a ceph_auth_create_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x96885245 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0x96e395ce osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0x99de4738 ceph_messenger_init +EXPORT_SYMBOL net/ceph/libceph 0x99e36571 ceph_osdc_cleanup +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa1fcc2a7 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xaa547718 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0xadd0e121 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0xae3515ba ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb3a22a72 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xbc323e94 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0xbed5f026 osd_req_op_watch_init +EXPORT_SYMBOL net/ceph/libceph 0xbf10eda9 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xbfed5bd9 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc55de604 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd5a88398 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0xd85a0035 osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xd85f2408 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xd9e52dd2 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xdd84005c osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0xe82c9c32 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0xea55c386 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0xeb7ae42f osd_req_op_cls_response_data +EXPORT_SYMBOL net/ceph/libceph 0xecd750c5 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0xf6e5ceae osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0xf9b51102 ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0xfc122e91 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0xfe6bb147 ceph_monc_init +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x208f780f dccp_syn_ack_timeout +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1837ec1f ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1ae7b6b8 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1d4e1cd6 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2359d134 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x287e69c8 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x525c2890 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5ce8b90b wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x66aa7bea ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6bbc5255 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x81d31e06 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb254e6fb ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd0957906 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xddb6086b wpan_phy_find +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x8340f642 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xb3e1b493 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xed57e3dc arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x4d469aab ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x63c2a507 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x7061d4d2 ipt_register_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x48713e96 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x80b9ccd8 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x406ddef8 ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xb1285a5f ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x0feb712f ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x306a71ea ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xdf0138e8 ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x4a72b327 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0x5307348b xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x00e28398 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xae79ddfc xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x00de5f8b ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x08ba28c4 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x11802e35 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x1965f04d ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4a2f188b ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x8bca0ca6 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb716c177 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf0490bfc ircomm_data_request +EXPORT_SYMBOL net/irda/irda 0x0064e0ea hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x06394608 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x074f691e irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x086f3910 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x0b8b03ea irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x1e6cade0 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x243e01ec irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x2d0e2a8c irttp_dup +EXPORT_SYMBOL net/irda/irda 0x33cbe2c6 proc_irda +EXPORT_SYMBOL net/irda/irda 0x3b26bc65 iriap_open +EXPORT_SYMBOL net/irda/irda 0x3d9e40e3 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x3e56064f hashbin_new +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x532435a2 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x54c5374f iriap_close +EXPORT_SYMBOL net/irda/irda 0x59d293b3 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x5ab6cb98 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x601bda46 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x6208c40a async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x693bf4ed irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6b5fbcef hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x6e0ab3c7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7b798219 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x7c34f1f6 irlap_close +EXPORT_SYMBOL net/irda/irda 0x85d88217 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x91218f1d irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0xa1d41e58 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xaa557515 irias_new_object +EXPORT_SYMBOL net/irda/irda 0xb747f238 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0xb83b0b1e irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xbee80b37 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xc68e43be irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0xcead7dbb hashbin_find +EXPORT_SYMBOL net/irda/irda 0xd2108314 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xd42ee869 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe10074c0 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0xe3463529 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xe3bde43e irias_insert_object +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf0a694a1 irias_find_object +EXPORT_SYMBOL net/irda/irda 0xf163d4f8 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0xf39b7fe0 irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xf5876b95 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0xf5e97f7f irlap_open +EXPORT_SYMBOL net/irda/irda 0xf60d2f80 irttp_open_tsap +EXPORT_SYMBOL net/l2tp/l2tp_core 0x01c7299c l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x2a52f562 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x5225ebfc lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x80f8067b lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xa1a25c4f lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xc333bbf1 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xeaf6ce73 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xf35dfd73 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xf7754ff9 lapb_disconnect_request +EXPORT_SYMBOL net/llc/llc 0x093e9042 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x9776cd5e llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0xb5736870 llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0xbb1cadec llc_sap_open +EXPORT_SYMBOL net/llc/llc 0xc35e28f7 llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0xc540e25c llc_add_pack +EXPORT_SYMBOL net/llc/llc 0xcd176ff8 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0xcf686cae llc_sap_find +EXPORT_SYMBOL net/mac80211/mac80211 0x009376f2 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x00e1131a ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x03ce8f4a ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x0930b997 ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x0eb012bb __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x0ebd1067 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x14abeba4 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x1928781b ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x19c43242 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x1c9d7860 rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x21a2ae71 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x33374f76 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x3622bba4 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x3b48f970 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x43a18343 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x45120db6 ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0x45c21227 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x47530f91 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x4a1dcc3f ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x4a1eba66 ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x4c154540 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x50bfc4ea ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x522cbcf4 ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x545951cd ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x5b961cdc ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x5dbd9c12 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0x609df521 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x6be2ea47 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x74d1a2e4 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x7ad16b01 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x83c983de ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x8863d7ab ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x954b5c7a ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x9c5e6334 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0x9d958490 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xa0199472 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xa0b39574 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0xa199299c ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xa1fc36c4 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa3f89924 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xacf48c7d ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xad7163cd ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xadf8923a ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xaec85dfd ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0xb0611a83 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xb137de4e ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0xb344e9d7 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0xb7df1856 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xb8345c3b ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xbadb2630 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xbd803f7c ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xc36efd31 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xc6dc37c7 ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xcccafe99 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xd7a746ae ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xd9eba5aa ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe138e5bb ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xe550d0e7 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xe844af77 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xe86ad216 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xec09caab ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xedbaa34f ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xee52d58a ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xf12d060c ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xf395de03 ieee80211_aes_cmac_calculate_k1_k2 +EXPORT_SYMBOL net/mac80211/mac80211 0xf7494ab2 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xfb91b05f ieee80211_csa_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0xfb9e070f wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xfdd1b53b ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac802154/mac802154 0x4a58a67a ieee802154_free_device +EXPORT_SYMBOL net/mac802154/mac802154 0x7680a184 ieee802154_register_device +EXPORT_SYMBOL net/mac802154/mac802154 0x7b074d42 ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0xc0480ff5 ieee802154_alloc_device +EXPORT_SYMBOL net/mac802154/mac802154 0xe67085d1 ieee802154_unregister_device +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1815d3a8 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x284edcb6 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x36ea2b1d ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4993f7b7 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5232864a ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6a5c2156 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x88f03f0f ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8a7cc719 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8e2c595a unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x932d05c6 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9cae2341 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xad0b911d register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe30ecd62 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe388abe5 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x5258358d __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x9df91e0b __nf_ct_ext_add_length +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xc35f98ac nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x827cc6a1 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xf3012827 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/nf_nat 0x825b3871 nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0xa2604068 nf_nat_used_tuple +EXPORT_SYMBOL net/netfilter/nf_nat 0xabf5259a nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0xaed2c170 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0xd80c1041 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0xda55a973 nf_xfrm_me_harder +EXPORT_SYMBOL net/netfilter/x_tables 0x086039af xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x1371d83d xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x1bc94fd7 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x49a8655d xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x4b824a81 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x6e28fbfa xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x7722ebfb xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x7def3f41 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x81f661bd xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xdff86be6 xt_unregister_target +EXPORT_SYMBOL net/nfc/hci/hci 0x081f3956 nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0x08b7f993 nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0x153dea97 nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0x2763052f nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x3927b14c nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x41d78fc5 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0x43028a27 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x45cf59ff nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x60618697 nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0x94177262 nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0x9c276004 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0xabdde030 nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0xad24dbf2 nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xb555de24 nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xbca0b4fd nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xdcb7aa44 nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0xe2cc21fb nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0xee76b88f nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0xf5deee0f nfc_hci_send_response +EXPORT_SYMBOL net/nfc/hci/hci 0xfe032bec nfc_hci_set_param +EXPORT_SYMBOL net/nfc/nci/nci 0x2f91d055 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0x462d13ba nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x47e59ee1 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0x800f5343 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xb20a3972 nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nfc 0x005385ba nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0x1c559784 nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0x29d6b3de nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x2f5f8ab5 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x40cd9fe6 nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0x56c0af26 nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x63c4c58a nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x6475b16c nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0x65123209 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x6e133e76 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0x7d2f3734 nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0x8748265a nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0x87b201b3 nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0x913684a1 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0xa0f5b87e nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0xb0c0dbd0 nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0xbdac16c9 nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0xc709102c nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0xcd40854c nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0xe49a8c27 nfc_add_se +EXPORT_SYMBOL net/nfc/nfc_digital 0x122d90f4 nfc_digital_register_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x496aaee7 nfc_digital_free_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x52181ef5 nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x9b81ce8b nfc_digital_unregister_device +EXPORT_SYMBOL net/phonet/phonet 0x01df1fbe phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x54eb7ce2 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x9deae64d phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xb2d986f1 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xb6aa7362 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xbaa64362 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xc5c6ea82 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xfbb799b4 pn_sock_get_port +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x30373ec4 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3ebe5943 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4d82cb23 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x69c91183 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6c587c43 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x80c1e61a rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9cdc895d rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa4333e88 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa6671fe8 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa9a75403 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd95bf83b rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe428d812 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe45c7df5 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xee84b5af rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf09ef4a4 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/sctp/sctp 0xf3c0f2a4 sctp_do_peeloff +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x06ed2d24 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x12c643e6 gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xace633be gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/sunrpc 0x9e14d051 svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0xba7e8513 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xec72d78b wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x040c0a96 cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x0964e434 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0b1210ce cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x10271215 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x1062dd96 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19e03378 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x22208698 cfg80211_inform_bss_width +EXPORT_SYMBOL net/wireless/cfg80211 0x26217842 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x27fc12d5 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x2af9f575 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x2ba954b5 cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x2e327717 cfg80211_inform_bss_width_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x2f505555 cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0x3089028f cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x3290ac05 cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x37f84832 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x3a5bcfd5 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x406a8302 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x460a569a regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x49790e73 cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0x4a887881 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x4c3b5878 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x4c40b2fb ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x5427d714 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x549ae50f ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x57ac3648 cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x5b252668 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x5c467a78 cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0x5c59330c cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x5ca52755 cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x619a39d6 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x659cba78 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6c84d211 cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0x6d6cb9ad ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x6f765c6f cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x739ad575 cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x786d2fab cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x7cb9d6dc __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x7ec1d208 cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7f59e42c cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x81db6dff cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x85e0f221 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x8ca4d759 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x8cd863c8 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x8d4638ba cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x906cab6d ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9e45e385 cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xa1425906 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa2266e50 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0xa606fc32 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xa99739a5 cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xab3b6ae0 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xabaa4a0c cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xb3ff714f cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0xb4bccd48 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xb8b21b01 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xba3f5373 cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xbbde82c3 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xbd43daf7 cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xc15c8611 cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0xc58f7084 cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc8e928c9 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xc97ced1c cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xcb429f9f cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xcf618a57 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0xcf920616 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xcfe80da9 cfg80211_report_obss_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0xd6ff922f cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0xdba126c1 reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0xdc0e5f99 cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xe32c96ba cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0xe640088b cfg80211_roamed_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xee42db3c cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xef6a7774 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xf0c8bde3 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xf5a81643 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xfa9fa595 cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x36cf4eff lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x58dfddd3 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x7144766d lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x77b4bb9f lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x91961509 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xd30f3733 lib80211_get_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x58cd3b91 ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x2c1fbbca snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6c1f1cf8 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x8274b151 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcae56187 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x7a4158c8 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x8f8c3542 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x072d978b snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x13a17752 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2eed26bf snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x4d5ca523 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x592f6e9b snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd7c7afcc snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe60fb228 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xecbde43c snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x33a072db snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x0cc6e383 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x1dce0928 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0x1e1aeb26 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x246c81b0 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x2ce85b8a snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x35c21230 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3adccf2f snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4b015768 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x50377b47 snd_cards +EXPORT_SYMBOL sound/core/snd 0x5389949c snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x5599fc80 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x587b8bf9 snd_card_free +EXPORT_SYMBOL sound/core/snd 0x5cc0e9e2 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x69e05862 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x6c4d02c2 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x77262142 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x77ccde99 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x7c8d8900 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x7e77cd1a snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x8224825c snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x82aa5b59 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x865335e1 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x8716e904 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x8ca2028b snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x94ca4d64 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x98454644 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0x9f451a04 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa7ece3ec snd_device_register +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xba9ea210 snd_component_add +EXPORT_SYMBOL sound/core/snd 0xbab00c61 snd_device_new +EXPORT_SYMBOL sound/core/snd 0xbd0360b9 snd_card_register +EXPORT_SYMBOL sound/core/snd 0xc52e5036 snd_card_create +EXPORT_SYMBOL sound/core/snd 0xc591a405 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0xc72c3a5d snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0xcb7aa044 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xcb8dc38b snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xd1157735 release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0xd617ab9e snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xdee25825 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xe23a10cc snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0xe2d6178d snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xe69b29c5 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xe7303de2 snd_card_unref +EXPORT_SYMBOL sound/core/snd 0xf55c6203 snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0xfca71a76 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xfe52584a snd_power_wait +EXPORT_SYMBOL sound/core/snd 0xff39cfd7 snd_device_free +EXPORT_SYMBOL sound/core/snd-hwdep 0x39e51734 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x462237a3 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x478ed068 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x61c81eab snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x6faf4c12 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xa7dd6617 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x07e5eb70 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x09997f07 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x0a7fe040 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x0dd2b870 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x11b17e7b snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x1374bb42 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x14167af3 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1e7119d7 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x21d81d99 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x24e40a0d snd_pcm_new_internal +EXPORT_SYMBOL sound/core/snd-pcm 0x2556556e snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x25710b28 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x26161568 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x2672a88e snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x2f64f5f5 snd_pcm_debug_name +EXPORT_SYMBOL sound/core/snd-pcm 0x365d4d79 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x36a7530d snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x43e922b2 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x45bbd6da snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x46d222d5 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4eba02a8 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x503fa5e5 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x56b177d1 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x64db7e0a snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x653d2220 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6a8d37a4 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x6c4e666e snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x7cd935c5 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x94098ff8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0x98d24d0d snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x9c62f37b snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xaa1a0a6c snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0xaa6fde7a snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xad940696 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0xb1aac812 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc95c553f snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xd01f7402 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xd12b6cfe snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd3555c47 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xd4bec638 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0xd5fb21a2 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xd7fc17c1 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xea2b9ecc snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xef02746f snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xfb75742e snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL sound/core/snd-rawmidi 0x04306c5a snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x06dd4375 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x11b12fd3 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x18ee004f snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x19346f07 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x333ce9a3 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3cc888e9 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4bffe8f6 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x94adcdbf snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa0b2ad69 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa30a560d snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa7c471b8 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb4cafe57 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xbe475836 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd34ead2b snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf1ac2752 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfaf0f4ea snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-timer 0x18801c52 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x2bf2f809 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x36dab186 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x573a05e2 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x5f18e1e6 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x71bfb9b4 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x724fd424 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x93b97a8a snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0xb709d406 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xc119e8c7 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0xcd81806e snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xd7161c18 snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0xdf557d1d snd_timer_continue +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x1779602d snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x407e037e snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x454ca80d snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5d20df3c snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5da88c27 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5df4cdad snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8ae091bc snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x93730d78 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa7e356e8 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa98737d4 snd_opl3_new +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x2c09b5dc snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x493492a1 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x4a199d6d snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x4f5c0023 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7868e530 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x94d89bf2 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x9e4417bc snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc3ca1c11 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf848f91c snd_vx_free_firmware +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x01019090 cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x01f666d7 snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x06071636 cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x128c8cd7 amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x13ad6278 cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x156ef55d amdtp_out_stream_set_parameters +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x185646d7 fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1dfacc45 amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x20254e45 amdtp_syt_intervals +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2c362f1d amdtp_out_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x34aa6203 fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3db9f360 amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3f3095a3 amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x40f0c689 fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x43cf94ac fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x43e3b666 amdtp_out_stream_pcm_pointer +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x54fa4be5 cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x68487713 iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x799dad26 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7af3e680 amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xad8b3a02 amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xbecb991f fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xcaa61d88 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd40bc781 amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe210258a cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe817ec62 iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe9b0d9dc amdtp_out_stream_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x0b618073 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x41ce21ff snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x4ff6ef1e snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x65f093bd snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x76ab89d3 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x91c29e8c snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x0ac27fdf snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x1a7b68d2 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x2fac1052 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x54fe7f83 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x9dc9fe0a snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xa5690b52 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x10d14ee1 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x5634b55d snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x64704b6b snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xf8fb97c5 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x94168a4e snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xf18d0354 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x0d19eb45 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x32647984 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x49d3ffec snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xce6d1835 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xede19d47 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-i2c 0x266eb520 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x7623677f snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x91e9d387 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x9cb7ef1b snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0xaa08a75a snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xf6d59581 snd_i2c_bus_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x05093fb9 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x128d0a66 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x59d170b0 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5cc3e7af snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8fbff9e3 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa29c8509 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xbd3605c0 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xc995a7ae snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe56371d3 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf38dbebc snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x19ed0627 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x7c91aeeb snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xab0afa23 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe0b3f690 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x21d67a2b snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x26a3db40 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x34ec9acb snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x37fe35be snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x39560fe8 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3cfd8247 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4a368f84 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7b6b27f9 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x80c2e455 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8fbbabc2 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x91be3e9f snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x92321820 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb00ee045 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb01c176d snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb6a8aabb snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc0f312cd snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xedaf5a57 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0e3de6ab snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x36e3fb2c snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4e8b4389 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x551a9973 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x7b30925c snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xabd9b634 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb091ad87 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc1fe47e5 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xfdc5716d snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x54e37099 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x616f2f52 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xc799321a snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x008025ad oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x14bf08df oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x258f43b1 oxygen_pci_pm +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2e6b4c83 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x46ff2729 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x52f4f338 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7e772fdd oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa6e85f42 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xade82b9a oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb83d2da7 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbefea003 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc231caa0 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc52da832 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcdc8261c oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd6fcaf71 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd7154da8 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdd414809 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe9cdb0f3 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xed9a0521 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xee77c60f oxygen_read8 +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x44ea246a snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x6056926d snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x6d24e733 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x6f4696c0 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x7defdbfa snd_trident_start_voice +EXPORT_SYMBOL sound/soundcore 0xddf23df7 sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x13486e9f snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x24cb5ca0 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x3320e735 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xc2a12642 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xcb209149 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xf7e8604a snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x39c788f0 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x46085241 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x502ec59d __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x86153f4a snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x86b8cc84 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xa4684fbd snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xe31bc7ff snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xfdb6db3b snd_util_mem_avail +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x027b31f5 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 __symbol_put +EXPORT_SYMBOL vmlinux 0x00000000 current_fs_time +EXPORT_SYMBOL vmlinux 0x00000000 d_tmpfile +EXPORT_SYMBOL vmlinux 0x00000000 do_sync_read +EXPORT_SYMBOL vmlinux 0x00000000 filp_close +EXPORT_SYMBOL vmlinux 0x00000000 finish_open +EXPORT_SYMBOL vmlinux 0x00000000 generic_getxattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_write_sync +EXPORT_SYMBOL vmlinux 0x00000000 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x00000000 in_group_p +EXPORT_SYMBOL vmlinux 0x00000000 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x00000000 iov_shorten +EXPORT_SYMBOL vmlinux 0x00000000 iterate_fd +EXPORT_SYMBOL vmlinux 0x00000000 ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 path_is_under +EXPORT_SYMBOL vmlinux 0x00000000 register_exec_domain +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout +EXPORT_SYMBOL vmlinux 0x00000000 sock_register +EXPORT_SYMBOL vmlinux 0x00000000 sys_close +EXPORT_SYMBOL vmlinux 0x00000000 task_nice +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x00000000 vm_brk +EXPORT_SYMBOL vmlinux 0x0013792b inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x001f5912 fb_class +EXPORT_SYMBOL vmlinux 0x002dbadd sk_run_filter +EXPORT_SYMBOL vmlinux 0x003ed69a __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x006599e4 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0097f28b pci_disable_ido +EXPORT_SYMBOL vmlinux 0x009efa9b dm_get_device +EXPORT_SYMBOL vmlinux 0x00b51ae3 tcp_close +EXPORT_SYMBOL vmlinux 0x00cf4a7f of_get_parent +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0101d5b1 ip_idents_reserve +EXPORT_SYMBOL vmlinux 0x010b3f53 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x0117aa4a pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x011e020f cont_write_begin +EXPORT_SYMBOL vmlinux 0x01212477 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x0128976d serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x01289e84 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x012a97fc xor_altivec_4 +EXPORT_SYMBOL vmlinux 0x01528f6d ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x0169fcb0 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x016a0a7b secpath_dup +EXPORT_SYMBOL vmlinux 0x01833910 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0x0185b26e iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x0186e2de smp_call_function_many +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x0195a342 bdi_register_dev +EXPORT_SYMBOL vmlinux 0x019e7765 __init_rwsem +EXPORT_SYMBOL vmlinux 0x01be2cf3 tcp_seq_open +EXPORT_SYMBOL vmlinux 0x01c8e84d ida_simple_get +EXPORT_SYMBOL vmlinux 0x01f87726 netlink_set_err +EXPORT_SYMBOL vmlinux 0x0212d077 bio_endio +EXPORT_SYMBOL vmlinux 0x02147c20 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x02178c33 may_umount +EXPORT_SYMBOL vmlinux 0x0228db36 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x023733db dquot_alloc +EXPORT_SYMBOL vmlinux 0x0242ebba mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0267c31d ps2_drain +EXPORT_SYMBOL vmlinux 0x026ed680 simple_link +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x02944a4f elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02d20570 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02fd5741 pci_disable_device +EXPORT_SYMBOL vmlinux 0x0308ca86 seq_open +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0342ba2f mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x0343c93d xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x0353569c inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x035d8daf security_task_getsecid +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x03689452 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x036efe64 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03bb7168 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03ccc2ba simple_rename +EXPORT_SYMBOL vmlinux 0x03faa19f __lock_buffer +EXPORT_SYMBOL vmlinux 0x03faee51 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x03fd875d ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x042bc444 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x0449dc0e skb_trim +EXPORT_SYMBOL vmlinux 0x044e127b xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x045205c1 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x047bf855 vga_tryget +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04beb475 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x04d837b7 dcb_setapp +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x051b2e72 tcp_connect +EXPORT_SYMBOL vmlinux 0x0522119f input_grab_device +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x052d1a25 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x0530dede _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x055e9838 from_kuid +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x058cc652 sock_no_bind +EXPORT_SYMBOL vmlinux 0x05932c35 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x0593a99b init_timer_key +EXPORT_SYMBOL vmlinux 0x05964f17 unregister_netdev +EXPORT_SYMBOL vmlinux 0x059d3ae4 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05ae49c5 mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x05c31c7d __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x05e06655 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x05eab57f filemap_flush +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x063b032d mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x0645932f textsearch_register +EXPORT_SYMBOL vmlinux 0x06492157 file_open_root +EXPORT_SYMBOL vmlinux 0x066f90bf netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0x0675c7eb atomic64_cmpxchg +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06816077 lro_flush_all +EXPORT_SYMBOL vmlinux 0x06924135 clear_inode +EXPORT_SYMBOL vmlinux 0x0696dbb0 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x06bbb24a mempool_resize +EXPORT_SYMBOL vmlinux 0x06be8292 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x06c7e909 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x06cac8a5 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x06eb06fc devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0x06eb3066 tcp_init_cgroup +EXPORT_SYMBOL vmlinux 0x06ec4b53 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x07312bf9 netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0x074b66b5 netdev_info +EXPORT_SYMBOL vmlinux 0x074e9213 down_killable +EXPORT_SYMBOL vmlinux 0x074f31c5 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x0758453e get_gendisk +EXPORT_SYMBOL vmlinux 0x07612796 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b25d2a lookup_one_len +EXPORT_SYMBOL vmlinux 0x07c27259 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x0823f2d2 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083c2cbe of_get_next_parent +EXPORT_SYMBOL vmlinux 0x083deee6 pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x084e9bf6 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x08782841 __sb_end_write +EXPORT_SYMBOL vmlinux 0x088509bf serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0x089df483 put_disk +EXPORT_SYMBOL vmlinux 0x08e78257 tty_check_change +EXPORT_SYMBOL vmlinux 0x08f0c300 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x093989a1 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x0947f6e9 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x0978dd2e framebuffer_release +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09909211 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09db2b2b input_open_device +EXPORT_SYMBOL vmlinux 0x09f4a15c simple_transaction_set +EXPORT_SYMBOL vmlinux 0x0a0f7892 serio_close +EXPORT_SYMBOL vmlinux 0x0a0fd97a pci_dev_driver +EXPORT_SYMBOL vmlinux 0x0a14e2c8 dev_uc_del +EXPORT_SYMBOL vmlinux 0x0a1b84e5 set_user_nice +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a3bc65b cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x0a3c450e add_disk +EXPORT_SYMBOL vmlinux 0x0a40d119 register_framebuffer +EXPORT_SYMBOL vmlinux 0x0a469d23 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0x0a6377f1 twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x0a7e9c6c dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x0a8349d0 sock_i_ino +EXPORT_SYMBOL vmlinux 0x0a9367c7 __sb_start_write +EXPORT_SYMBOL vmlinux 0x0aabef1d tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad57916 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x0add5c22 from_kgid_munged +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b2414b1 phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x0b3d0958 d_alloc_name +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b56117f of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x0b62f3d7 ipmi_register_smi +EXPORT_SYMBOL vmlinux 0x0b6d8898 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b78e0f4 md_flush_request +EXPORT_SYMBOL vmlinux 0x0b7b732e kill_block_super +EXPORT_SYMBOL vmlinux 0x0b93aada devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0x0b94aa38 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x0b9fd978 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x0bbc5908 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bd14fc5 udp_prot +EXPORT_SYMBOL vmlinux 0x0beb6b53 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x0bee63b0 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x0c06aae5 default_llseek +EXPORT_SYMBOL vmlinux 0x0c12e626 __debugger_bpt +EXPORT_SYMBOL vmlinux 0x0c28b8c1 kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0x0c3d72be seq_release_private +EXPORT_SYMBOL vmlinux 0x0c45fc96 vfs_lstat +EXPORT_SYMBOL vmlinux 0x0c58a8cd netdev_increment_features +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c660836 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x0c8c4d5f writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c9b6089 nvram_get_size +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0ccceb97 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x0cd92a2e blk_mq_end_io +EXPORT_SYMBOL vmlinux 0x0ce900af blk_finish_plug +EXPORT_SYMBOL vmlinux 0x0cf483a4 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x0d04477a nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0x0d183932 udp_proc_register +EXPORT_SYMBOL vmlinux 0x0d196f80 scsi_init_io +EXPORT_SYMBOL vmlinux 0x0d2987d4 elv_register_queue +EXPORT_SYMBOL vmlinux 0x0d41c050 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x0d4a2cf1 vm_mmap +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d9b3ce2 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x0d9d7a8b security_path_rename +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dbf38b8 mol_trampoline +EXPORT_SYMBOL vmlinux 0x0dd6d6ac proc_create_data +EXPORT_SYMBOL vmlinux 0x0de1e2f2 irq_set_chip +EXPORT_SYMBOL vmlinux 0x0de8d2d1 from_kprojid_munged +EXPORT_SYMBOL vmlinux 0x0debd2ae flush_dcache_icache_page +EXPORT_SYMBOL vmlinux 0x0e534186 dm_put_device +EXPORT_SYMBOL vmlinux 0x0e589112 km_new_mapping +EXPORT_SYMBOL vmlinux 0x0e5a5554 macio_enable_devres +EXPORT_SYMBOL vmlinux 0x0e6da44a set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x0e79fc36 mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0x0e8696a2 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x0e8f30f6 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x0e932ab3 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x0eaf451e hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x0eb11920 unregister_nls +EXPORT_SYMBOL vmlinux 0x0eb8dc36 setup_new_exec +EXPORT_SYMBOL vmlinux 0x0ec39957 of_get_min_tck +EXPORT_SYMBOL vmlinux 0x0ed89311 console_stop +EXPORT_SYMBOL vmlinux 0x0ee83e7f dev_get_flags +EXPORT_SYMBOL vmlinux 0x0ef20db1 kernstart_addr +EXPORT_SYMBOL vmlinux 0x0efcbb1b set_current_groups +EXPORT_SYMBOL vmlinux 0x0f0e5ca1 bdget_disk +EXPORT_SYMBOL vmlinux 0x0f14fe2e ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x0f25b82a genphy_resume +EXPORT_SYMBOL vmlinux 0x0f26c781 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL vmlinux 0x0f4c91ed ns_to_timespec +EXPORT_SYMBOL vmlinux 0x0f5faa7e wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x0fada531 pci_set_master +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fcb3e65 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x0fdea22d inet6_getname +EXPORT_SYMBOL vmlinux 0x0fe299f4 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x101653a6 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x1018fd91 d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0x1019753c qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x102545d5 new_inode +EXPORT_SYMBOL vmlinux 0x106f13ab crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x107a27ae inet6_release +EXPORT_SYMBOL vmlinux 0x1091de83 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x10c3ac13 __page_symlink +EXPORT_SYMBOL vmlinux 0x10dc6d61 twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11058443 pci_request_region +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x110b600b mmc_remove_host +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x1138a72c netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x1150df13 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x1156212e scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x115853f3 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x11663cec adb_register +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x11810a27 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x1182d83a cpuidle_disable +EXPORT_SYMBOL vmlinux 0x11930740 consume_skb +EXPORT_SYMBOL vmlinux 0x11a23f60 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x11c5ed75 scsi_register +EXPORT_SYMBOL vmlinux 0x11c9185c of_iomap +EXPORT_SYMBOL vmlinux 0x11e3bb58 key_validate +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x120023d7 inode_permission +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x122043a8 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x127b3a90 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x128751c2 inet_shutdown +EXPORT_SYMBOL vmlinux 0x128c48dc pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x129ef019 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12afe3c9 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x12b55dd6 mmc_free_host +EXPORT_SYMBOL vmlinux 0x12b69339 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x12bb7636 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e3a24f dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level +EXPORT_SYMBOL vmlinux 0x12f3a3fc iget5_locked +EXPORT_SYMBOL vmlinux 0x13307fde vsscanf +EXPORT_SYMBOL vmlinux 0x133fb504 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x1343e534 vfs_readv +EXPORT_SYMBOL vmlinux 0x1348760d ipmi_request_settime +EXPORT_SYMBOL vmlinux 0x137510a0 __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x1382c858 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x1391b418 set_nlink +EXPORT_SYMBOL vmlinux 0x13affbda percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x13c22b48 lookup_bdev +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13e38f5c up_read +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x1407c6e7 kmap_prot +EXPORT_SYMBOL vmlinux 0x1412ddfe inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0x1420b379 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x14304d1b pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x143cf790 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x143ef616 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x144541de skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x14876fae pci_get_device +EXPORT_SYMBOL vmlinux 0x14a17cb1 fbcon_rotate_cw +EXPORT_SYMBOL vmlinux 0x14ac4ac6 sk_net_capable +EXPORT_SYMBOL vmlinux 0x14de3aca phy_find_first +EXPORT_SYMBOL vmlinux 0x14e60003 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x14fe638d end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x152e2043 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x15477b72 clocksource_register +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1556110a simple_setattr +EXPORT_SYMBOL vmlinux 0x1558dc46 scsi_free_command +EXPORT_SYMBOL vmlinux 0x156964c0 kernel_accept +EXPORT_SYMBOL vmlinux 0x1576435e abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x15864b03 flex_array_get +EXPORT_SYMBOL vmlinux 0x15915ef8 kill_pid +EXPORT_SYMBOL vmlinux 0x15b5cfba mdiobus_write +EXPORT_SYMBOL vmlinux 0x15c7d304 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x15d3fd60 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x15dbac04 finish_no_open +EXPORT_SYMBOL vmlinux 0x15eb07a3 vfs_writev +EXPORT_SYMBOL vmlinux 0x15f571ec blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token +EXPORT_SYMBOL vmlinux 0x161d0033 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x162dbcdd pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0x1639b510 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x16418a10 phy_disconnect +EXPORT_SYMBOL vmlinux 0x16540bbc __cmpdi2 +EXPORT_SYMBOL vmlinux 0x165abc6d blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x16b4698d tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x16ba5014 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x16c0f8ee netdev_lower_dev_get_private_rcu +EXPORT_SYMBOL vmlinux 0x16cf4dc5 __mutex_init +EXPORT_SYMBOL vmlinux 0x16d2000a scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL vmlinux 0x16f0f74d md_error +EXPORT_SYMBOL vmlinux 0x171e9a4a flush_tlb_mm +EXPORT_SYMBOL vmlinux 0x1735c7e2 genlmsg_put +EXPORT_SYMBOL vmlinux 0x174afb1a __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0x175950dd md_write_end +EXPORT_SYMBOL vmlinux 0x17648396 dev_base_lock +EXPORT_SYMBOL vmlinux 0x178267a7 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x178c0570 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x17a781d4 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x17aa156a __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x17b1125d gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x17c4e41a kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x17e28473 fsl_upm_run_pattern +EXPORT_SYMBOL vmlinux 0x17e8e885 max8998_read_reg +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x17f47fcf alloc_fcdev +EXPORT_SYMBOL vmlinux 0x18001260 invalidate_partition +EXPORT_SYMBOL vmlinux 0x1806724e key_revoke +EXPORT_SYMBOL vmlinux 0x1813099f pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x1826f089 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x183160ab bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x183221b9 vfs_fsync +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x18580ba0 kobject_put +EXPORT_SYMBOL vmlinux 0x185fc277 page_readlink +EXPORT_SYMBOL vmlinux 0x18623520 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x18868717 register_netdev +EXPORT_SYMBOL vmlinux 0x188a3dfb timespec_trunc +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x189b3867 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x18b192f6 register_cdrom +EXPORT_SYMBOL vmlinux 0x18b3737d sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x18b93c8b xfrm_garbage_collect +EXPORT_SYMBOL vmlinux 0x18c2227f cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x18cb5529 sock_rfree +EXPORT_SYMBOL vmlinux 0x18ddac5d __destroy_inode +EXPORT_SYMBOL vmlinux 0x18ed4907 arp_send +EXPORT_SYMBOL vmlinux 0x18f9d9d1 kernel_read +EXPORT_SYMBOL vmlinux 0x19111a40 lockref_get_not_zero +EXPORT_SYMBOL vmlinux 0x1929820d agp_generic_enable +EXPORT_SYMBOL vmlinux 0x1930dbee padata_do_parallel +EXPORT_SYMBOL vmlinux 0x193d3257 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x1958da96 phy_stop +EXPORT_SYMBOL vmlinux 0x19610e1f cpu_all_bits +EXPORT_SYMBOL vmlinux 0x196aa4a4 get_fs_type +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19bb11b6 sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19c18665 __ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x19d705e4 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x19d9ac62 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x19e30c69 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x19eecf36 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x1a050b5c free_netdev +EXPORT_SYMBOL vmlinux 0x1a0c537f blk_mq_free_single_hw_queue +EXPORT_SYMBOL vmlinux 0x1a0ea1b4 tty_port_close +EXPORT_SYMBOL vmlinux 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL vmlinux 0x1a111a41 ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x1a1f86fc scm_detach_fds +EXPORT_SYMBOL vmlinux 0x1a20ee32 kobject_add +EXPORT_SYMBOL vmlinux 0x1a36041a mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x1a4b3e87 blk_mq_init_commands +EXPORT_SYMBOL vmlinux 0x1a5246ef twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x1a529f37 release_sock +EXPORT_SYMBOL vmlinux 0x1a722326 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x1a782d69 user_path_create +EXPORT_SYMBOL vmlinux 0x1a79790b flush_dcache_page +EXPORT_SYMBOL vmlinux 0x1a7f88ef write_cache_pages +EXPORT_SYMBOL vmlinux 0x1a81d199 devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x1aaf43ed mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x1ab8dfb7 blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL vmlinux 0x1abe22cf seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x1ac1a4ca cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1af62a99 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b0ac272 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x1b132009 rename_lock +EXPORT_SYMBOL vmlinux 0x1b3c21f6 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x1b5a3ebb xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b668499 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x1b82fefa md_unplug +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b8c8232 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x1b8f5f05 get_agp_version +EXPORT_SYMBOL vmlinux 0x1b908c17 filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1ba0058e pci_disable_ltr +EXPORT_SYMBOL vmlinux 0x1bbf4ef0 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1bc67631 simple_statfs +EXPORT_SYMBOL vmlinux 0x1bca2b59 load_fp_state +EXPORT_SYMBOL vmlinux 0x1bdbb255 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x1bdf73b0 fb_get_mode +EXPORT_SYMBOL vmlinux 0x1be73983 sg_miter_stop +EXPORT_SYMBOL vmlinux 0x1be89902 ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0x1bee9ae6 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x1c0c8cb3 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x1c22880b d_alloc +EXPORT_SYMBOL vmlinux 0x1c239fd0 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x1c28bbdf register_filesystem +EXPORT_SYMBOL vmlinux 0x1c4c780d from_kprojid +EXPORT_SYMBOL vmlinux 0x1c59b815 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x1c5b2c15 pmu_wait_complete +EXPORT_SYMBOL vmlinux 0x1c6be54c address_space_init_once +EXPORT_SYMBOL vmlinux 0x1c6e2f37 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0x1c7869a5 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1c833c0e inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x1c97c2f2 alloc_disk +EXPORT_SYMBOL vmlinux 0x1ca9a55e tty_port_put +EXPORT_SYMBOL vmlinux 0x1cc34205 __ip_dev_find +EXPORT_SYMBOL vmlinux 0x1ccb2801 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x1cd20220 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x1cf40428 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x1d22f814 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x1d4e09c1 simple_write_end +EXPORT_SYMBOL vmlinux 0x1d4eb52a dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x1d566290 __blk_end_request +EXPORT_SYMBOL vmlinux 0x1d5eea2d dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x1d8e3616 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x1daee28a percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1e0c26c8 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x1e0eb36e generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x1e1c8649 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e5d9163 uart_match_port +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e7bc1d4 stop_tty +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1eba250b __cleancache_invalidate_page +EXPORT_SYMBOL vmlinux 0x1ec3bed9 hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x1efdfc00 netdev_features_change +EXPORT_SYMBOL vmlinux 0x1eff905e dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x1f193ad1 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x1f3e03db blk_get_request +EXPORT_SYMBOL vmlinux 0x1f4ca635 input_close_device +EXPORT_SYMBOL vmlinux 0x1f679d8d drop_super +EXPORT_SYMBOL vmlinux 0x1f74b4c0 seq_escape +EXPORT_SYMBOL vmlinux 0x1f7e807f kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x1f90db8c skb_queue_purge +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fe912f1 netdev_alloc_frag +EXPORT_SYMBOL vmlinux 0x1fe9f800 unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x1ff815c9 sk_capable +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x200232e1 security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0x20030ecd ioremap +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x200eef42 of_phy_connect +EXPORT_SYMBOL vmlinux 0x201493d1 dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x20421305 on_each_cpu_mask +EXPORT_SYMBOL vmlinux 0x20493c78 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x204edc1a gen10g_restart_aneg +EXPORT_SYMBOL vmlinux 0x20640d37 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x20667765 of_mdio_find_bus +EXPORT_SYMBOL vmlinux 0x206c4643 dquot_release +EXPORT_SYMBOL vmlinux 0x207147cc single_open_size +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x2086c4d7 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x2090c427 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x20958c9a pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20a86b3f of_get_pci_address +EXPORT_SYMBOL vmlinux 0x20b2bb2d param_array_ops +EXPORT_SYMBOL vmlinux 0x20c55ae0 sscanf +EXPORT_SYMBOL vmlinux 0x20d084c3 brioctl_set +EXPORT_SYMBOL vmlinux 0x20e755da dev_get_nest_level +EXPORT_SYMBOL vmlinux 0x20fff040 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x210aacf6 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x2138626b sock_sendmsg +EXPORT_SYMBOL vmlinux 0x2147c975 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x215daa7d km_policy_expired +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2188d740 pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0x21aba971 skb_put +EXPORT_SYMBOL vmlinux 0x21bb697d vga_get +EXPORT_SYMBOL vmlinux 0x21f8d3d5 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x222346c2 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2245ce98 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x2256fafa div64_u64_rem +EXPORT_SYMBOL vmlinux 0x225ac034 get_io_context +EXPORT_SYMBOL vmlinux 0x226d164b kernel_sendpage +EXPORT_SYMBOL vmlinux 0x22711d8c keyring_clear +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2278e94b slhc_remember +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22bf6961 lock_fb_info +EXPORT_SYMBOL vmlinux 0x22c4fcd2 do_splice_direct +EXPORT_SYMBOL vmlinux 0x22c65335 simple_readpage +EXPORT_SYMBOL vmlinux 0x22e1d918 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x22fec653 vm_map_ram +EXPORT_SYMBOL vmlinux 0x23098581 km_policy_notify +EXPORT_SYMBOL vmlinux 0x230a90a2 dquot_operations +EXPORT_SYMBOL vmlinux 0x231bab1d con_is_bound +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x23354161 dev_disable_lro +EXPORT_SYMBOL vmlinux 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x23574182 blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0x235e90f3 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x23697009 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x2391ce96 kill_fasync +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23a5a2bd proto_unregister +EXPORT_SYMBOL vmlinux 0x23b24cf1 mach_chrp +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23f2243d mempool_free +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x2409f151 blk_run_queue_async +EXPORT_SYMBOL vmlinux 0x240ea0dd do_SAK +EXPORT_SYMBOL vmlinux 0x24212d86 __frontswap_invalidate_page +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2444b763 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x24456e69 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x24565914 fbcon_rotate_ud +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245a5a94 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x24655332 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x24704503 blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0x2476532d macio_register_driver +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x248b3412 search_binary_handler +EXPORT_SYMBOL vmlinux 0x2492d3e8 make_kuid +EXPORT_SYMBOL vmlinux 0x24ab6505 dev_addr_del +EXPORT_SYMBOL vmlinux 0x24b52cc7 led_blink_set +EXPORT_SYMBOL vmlinux 0x24b90156 __dev_remove_offload +EXPORT_SYMBOL vmlinux 0x24c10621 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x24c4745e sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x24cdd8ed dm_kobject_release +EXPORT_SYMBOL vmlinux 0x24d7b4eb cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x24e09fae vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0x24f4436a ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x24f5599b neigh_table_clear +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x25052727 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x250a947e sock_no_connect +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x25345b44 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x254460df ip6_xmit +EXPORT_SYMBOL vmlinux 0x254aa7e4 phy_print_status +EXPORT_SYMBOL vmlinux 0x254e2f1e __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x254feff8 sg_miter_start +EXPORT_SYMBOL vmlinux 0x256c147c tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x25727e4b dentry_unhash +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x25ad05a2 seq_puts +EXPORT_SYMBOL vmlinux 0x25c30274 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25c857af follow_pfn +EXPORT_SYMBOL vmlinux 0x25d446ba dput +EXPORT_SYMBOL vmlinux 0x25f3bd2e atomic64_xchg +EXPORT_SYMBOL vmlinux 0x260cf8f8 of_get_property +EXPORT_SYMBOL vmlinux 0x2611acc0 mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x26338a39 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x2650d835 sysctl_ip_early_demux +EXPORT_SYMBOL vmlinux 0x2656c707 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x26619656 do_splice_from +EXPORT_SYMBOL vmlinux 0x2671acdb devm_gpiod_put +EXPORT_SYMBOL vmlinux 0x268b2794 generic_read_dir +EXPORT_SYMBOL vmlinux 0x268c4bc8 mnt_pin +EXPORT_SYMBOL vmlinux 0x2690d03b sk_wait_data +EXPORT_SYMBOL vmlinux 0x26aa8cbe tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x26ad9ef6 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x26b760c4 slhc_init +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26e4cdd5 free_buffer_head +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f0453a blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x26f67a53 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x26f7827f rtmsg_ifinfo +EXPORT_SYMBOL vmlinux 0x2702abf1 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x272c9acd pmu_battery_count +EXPORT_SYMBOL vmlinux 0x2759f79d __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x276a948b i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x276fd38a blk_execute_rq +EXPORT_SYMBOL vmlinux 0x27792fd6 scsi_print_result +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27b68ddc xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c57c5e nf_log_register +EXPORT_SYMBOL vmlinux 0x27c7d926 blk_peek_request +EXPORT_SYMBOL vmlinux 0x27df60ec pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27ead92b netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x27f2313e idr_replace +EXPORT_SYMBOL vmlinux 0x2806db8f __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x280f5a29 d_validate +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x282e4a31 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x285b88cb unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x2867ef7b account_page_dirtied +EXPORT_SYMBOL vmlinux 0x288623ea pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0x288f3f4d pci_device_from_OF_node +EXPORT_SYMBOL vmlinux 0x28910572 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0x28950423 arp_find +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28a401b0 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x28ab0e96 vlan_vid_del +EXPORT_SYMBOL vmlinux 0x28f784f5 __debugger_break_match +EXPORT_SYMBOL vmlinux 0x29125e28 input_get_keycode +EXPORT_SYMBOL vmlinux 0x2935714e iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x29378914 neigh_destroy +EXPORT_SYMBOL vmlinux 0x294060d3 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2968fbb9 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x296d4b7a end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x297ef79a security_path_truncate +EXPORT_SYMBOL vmlinux 0x29a15d5b mmc_can_erase +EXPORT_SYMBOL vmlinux 0x29b1c366 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x29bacc7b dump_emit +EXPORT_SYMBOL vmlinux 0x29bcf201 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0x29ea914b phy_device_free +EXPORT_SYMBOL vmlinux 0x29efac3c dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x29fdda53 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x2a2605f7 arp_invalidate +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a42e30e dump_skip +EXPORT_SYMBOL vmlinux 0x2a5f736c swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x2a5f94b4 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x2a74550d sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0x2a7aa50f __pci_register_driver +EXPORT_SYMBOL vmlinux 0x2a7cac99 pci_add_resource +EXPORT_SYMBOL vmlinux 0x2a911dff get_pci_dma_ops +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2ab1a1c8 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x2ac93965 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x2acf0feb vfs_fstat +EXPORT_SYMBOL vmlinux 0x2af304da skb_seq_read +EXPORT_SYMBOL vmlinux 0x2af951e2 __nla_reserve +EXPORT_SYMBOL vmlinux 0x2b02d83e blk_mq_alloc_reserved_request +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b12925d cpumask_next_and +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b39c62a scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x2b3ce5b7 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x2b433118 abort_creds +EXPORT_SYMBOL vmlinux 0x2b4e664d bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x2b50d06f complete_request_key +EXPORT_SYMBOL vmlinux 0x2b6c779b generic_file_llseek +EXPORT_SYMBOL vmlinux 0x2b88b271 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x2b8d78c0 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x2b8e650c remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bc61da1 program_check_exception +EXPORT_SYMBOL vmlinux 0x2bd92758 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x2c10d698 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x2c14323a kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c2923bb mmc_read_bkops_status +EXPORT_SYMBOL vmlinux 0x2c2d178e agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x2c61ca5a nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x2c7b1fca down_timeout +EXPORT_SYMBOL vmlinux 0x2c900d91 cpufreq_put_global_kobject +EXPORT_SYMBOL vmlinux 0x2cac41cb nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x2cb7a39c input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x2cdfa443 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x2cf49c65 __block_write_begin +EXPORT_SYMBOL vmlinux 0x2d03c10d posix_acl_create +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d334fa9 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d6290a9 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x2d6e120f __cleancache_invalidate_fs +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2daaaba9 param_get_byte +EXPORT_SYMBOL vmlinux 0x2de17a61 nf_log_unset +EXPORT_SYMBOL vmlinux 0x2de9a5ad clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x2deda4a1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x2e01f31f jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x2e0f88a6 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x2e289592 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x2e2a359e qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x2e2b8672 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e97bf98 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x2ea891f8 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x2eb19776 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x2ec0ee69 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ec59a1f eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef4e297 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x2ef58658 scsi_execute_req_flags +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f03e539 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f0f0e2e xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x2f258d52 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x2f702e43 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x2f81b628 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x2f89cc0c __kfree_skb +EXPORT_SYMBOL vmlinux 0x2f948571 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x2fae96de rtas_data_buf_lock +EXPORT_SYMBOL vmlinux 0x2fb5a692 pagevec_lookup +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2fe803c4 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x300ae420 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x3051b951 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x3058e804 security_path_symlink +EXPORT_SYMBOL vmlinux 0x3063425e ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x309cd541 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30b8b35c cpu_to_chip_id +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30e35928 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x30f5994b bioset_free +EXPORT_SYMBOL vmlinux 0x3102d70b frontswap_curr_pages +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31195ed1 of_find_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0x3125132f scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x312824e0 hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x31494dd2 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x3156d1a5 dev_get_phys_port_id +EXPORT_SYMBOL vmlinux 0x31590540 mmc_gpio_request_ro +EXPORT_SYMBOL vmlinux 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x3163f9c6 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x316e3ade sock_update_classid +EXPORT_SYMBOL vmlinux 0x31772ed9 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x317fc286 nonseekable_open +EXPORT_SYMBOL vmlinux 0x318cadb1 reciprocal_value +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x319a97c3 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x31a46d93 inet_frags_init +EXPORT_SYMBOL vmlinux 0x31b68a36 find_lock_page +EXPORT_SYMBOL vmlinux 0x31bde6da seq_bitmap +EXPORT_SYMBOL vmlinux 0x31ef5174 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x31f0bb78 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x3206e7c2 tcp_poll +EXPORT_SYMBOL vmlinux 0x3219ba1e inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x322f48d4 abx500_dump_all_banks +EXPORT_SYMBOL vmlinux 0x3240807c sk_common_release +EXPORT_SYMBOL vmlinux 0x3244e09e blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x324d1913 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x325f2504 ata_std_end_eh +EXPORT_SYMBOL vmlinux 0x326a6cba sock_no_listen +EXPORT_SYMBOL vmlinux 0x32714c48 ip_check_defrag +EXPORT_SYMBOL vmlinux 0x327b9c1b pmu_poll_adb +EXPORT_SYMBOL vmlinux 0x327bf883 of_can_translate_address +EXPORT_SYMBOL vmlinux 0x327d3b4a rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0x3284c88d tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x328eaa0d i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x32adb4e0 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x32be5e13 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x32d307c4 submit_bio_wait +EXPORT_SYMBOL vmlinux 0x32f27a71 tcp_gso_segment +EXPORT_SYMBOL vmlinux 0x32fe24a5 generic_fillattr +EXPORT_SYMBOL vmlinux 0x3309ca40 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x3318ce89 elevator_alloc +EXPORT_SYMBOL vmlinux 0x331b7e96 pci_map_rom +EXPORT_SYMBOL vmlinux 0x332913e2 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x337cce46 put_cmsg +EXPORT_SYMBOL vmlinux 0x33a8cbe4 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x33b0cba5 of_device_register +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33ba5cd4 param_ops_bool +EXPORT_SYMBOL vmlinux 0x33c3d7fc pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0x33c7435c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x3400f36a ip_setsockopt +EXPORT_SYMBOL vmlinux 0x3403af4b request_key +EXPORT_SYMBOL vmlinux 0x34184afe current_kernel_time +EXPORT_SYMBOL vmlinux 0x341dbfa3 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x3424ac04 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x34295e53 get_thermal_instance +EXPORT_SYMBOL vmlinux 0x343a79d6 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x346c4ded rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x347eb9bd param_set_bool +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34f1ef8e dquot_commit_info +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x3525fd89 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x3545d7f6 scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x35c32767 xor_altivec_2 +EXPORT_SYMBOL vmlinux 0x35d018b0 __free_pages +EXPORT_SYMBOL vmlinux 0x35df63b5 dev_add_offload +EXPORT_SYMBOL vmlinux 0x35fbd6a1 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x36070bfa mount_single +EXPORT_SYMBOL vmlinux 0x360c012b generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x361b6440 set_page_dirty +EXPORT_SYMBOL vmlinux 0x36586f9f fs_bio_set +EXPORT_SYMBOL vmlinux 0x3660278d __bio_clone +EXPORT_SYMBOL vmlinux 0x36690a2f cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x368382e2 of_get_named_gpiod_flags +EXPORT_SYMBOL vmlinux 0x36a9a4b7 single_release +EXPORT_SYMBOL vmlinux 0x36b0e732 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x36bd681b groups_alloc +EXPORT_SYMBOL vmlinux 0x36d3ce67 macio_release_resource +EXPORT_SYMBOL vmlinux 0x36d7b11a of_find_matching_node_and_match +EXPORT_SYMBOL vmlinux 0x36da3e71 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36e5df58 simple_rmdir +EXPORT_SYMBOL vmlinux 0x36e65516 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x371cd187 sk_free +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x37288141 dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x37465b73 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x37ac7795 netdev_state_change +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c7e28c PDE_DATA +EXPORT_SYMBOL vmlinux 0x37c925d4 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x37cf58a1 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0x37e1dcc4 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x37f6fee5 fsl_lbc_find +EXPORT_SYMBOL vmlinux 0x37ff9e10 pci_release_region +EXPORT_SYMBOL vmlinux 0x381144a9 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x3814d4fc blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x3819b77e kdb_current_task +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x383c577f tcf_hash_release +EXPORT_SYMBOL vmlinux 0x3849fc1e inode_needs_sync +EXPORT_SYMBOL vmlinux 0x38682ab4 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x3868ce56 posix_lock_file +EXPORT_SYMBOL vmlinux 0x387f7cc8 neigh_app_ns +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38b4eeb9 sock_from_file +EXPORT_SYMBOL vmlinux 0x38dfe80c locks_init_lock +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x3930e995 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x393c0db8 init_special_inode +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x398c6b09 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x399ab49f bio_unmap_user +EXPORT_SYMBOL vmlinux 0x39ab3b7b input_set_capability +EXPORT_SYMBOL vmlinux 0x39cdf63c wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x39d96848 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x3a70ee81 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x3a84610f __neigh_create +EXPORT_SYMBOL vmlinux 0x3a9ae141 security_file_permission +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ab140f0 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x3af2b633 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x3b1f6ba4 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x3b1fede8 agp_bridge +EXPORT_SYMBOL vmlinux 0x3b247ba9 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x3b615a21 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x3b6939be __nlmsg_put +EXPORT_SYMBOL vmlinux 0x3b8d7d65 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x3b98a8f7 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x3baab922 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x3bb18868 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x3bb53ba3 sg_miter_next +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3be136b0 unload_nls +EXPORT_SYMBOL vmlinux 0x3bef03b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x3bf85387 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x3c01c3db audit_log_start +EXPORT_SYMBOL vmlinux 0x3c135750 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x3c2a02d9 ip6_expire_frag_queue +EXPORT_SYMBOL vmlinux 0x3c652b24 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x3c6f4355 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x3c70125c __i2c_transfer +EXPORT_SYMBOL vmlinux 0x3c808146 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c9c482b agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb419c5 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x3cc1dd35 phy_device_register +EXPORT_SYMBOL vmlinux 0x3cc212ed tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x3cc47266 tcf_em_register +EXPORT_SYMBOL vmlinux 0x3cc4b0dc lg_lock_init +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3ce9e93b scsi_finish_command +EXPORT_SYMBOL vmlinux 0x3cf6a2ae __sk_dst_check +EXPORT_SYMBOL vmlinux 0x3cffd163 cur_cpu_spec +EXPORT_SYMBOL vmlinux 0x3d1bc704 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x3d32ce96 input_register_handle +EXPORT_SYMBOL vmlinux 0x3d364a39 phy_detach +EXPORT_SYMBOL vmlinux 0x3d3d06f3 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x3d3e8204 scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0x3d41904f of_get_next_child +EXPORT_SYMBOL vmlinux 0x3d72462e seq_pad +EXPORT_SYMBOL vmlinux 0x3d7dd4d4 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x3da528cf input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x3dcaba3e macio_request_resources +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e28d550 udplite_prot +EXPORT_SYMBOL vmlinux 0x3e331807 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x3e665834 cad_pid +EXPORT_SYMBOL vmlinux 0x3e7dce63 sock_create_lite +EXPORT_SYMBOL vmlinux 0x3e845ae0 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e9a3f49 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x3eaa04b9 no_llseek +EXPORT_SYMBOL vmlinux 0x3eaf9266 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x3ec18f60 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x3ecaa5a4 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f222190 md_done_sync +EXPORT_SYMBOL vmlinux 0x3f2835af agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f5b6279 mutex_trylock +EXPORT_SYMBOL vmlinux 0x3f6c710f rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x3fb1cf71 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x3fc7e7b5 scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x3fd55724 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ff8069b tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x3ff8e495 lg_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x40106229 set_blocksize +EXPORT_SYMBOL vmlinux 0x4021c832 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x4025d3d0 uart_resume_port +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x402fd4da twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0x4034be51 proto_register +EXPORT_SYMBOL vmlinux 0x404066c5 idr_for_each +EXPORT_SYMBOL vmlinux 0x404ac6e7 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x40559d8c __nla_put +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x406ddafa input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x406fb6ed uart_suspend_port +EXPORT_SYMBOL vmlinux 0x40794886 mddev_congested +EXPORT_SYMBOL vmlinux 0x407fa086 set_binfmt +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a2d1dd dm_table_get_size +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40ad24af key_reject_and_link +EXPORT_SYMBOL vmlinux 0x40beb95b gen_pool_free +EXPORT_SYMBOL vmlinux 0x40c01859 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d1bce3 path_get +EXPORT_SYMBOL vmlinux 0x40daceda register_gifconf +EXPORT_SYMBOL vmlinux 0x40e68677 kobject_get +EXPORT_SYMBOL vmlinux 0x40f1ad10 tb_ticks_per_jiffy +EXPORT_SYMBOL vmlinux 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL vmlinux 0x41274b8a generic_listxattr +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x417692bc register_quota_format +EXPORT_SYMBOL vmlinux 0x41780a2b register_qdisc +EXPORT_SYMBOL vmlinux 0x417fdeca ilookup +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x4195bbf3 input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x41ea5681 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x41f41d79 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x421ddc80 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x422c55d0 mmc_release_host +EXPORT_SYMBOL vmlinux 0x42324629 __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x423b776a ipmi_create_user +EXPORT_SYMBOL vmlinux 0x423c5d3e fget +EXPORT_SYMBOL vmlinux 0x4243f079 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x42461bd3 mount_subtree +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x425dad1b xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x428973d4 inode_init_owner +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a1b208 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x42abfe99 mmc_request_done +EXPORT_SYMBOL vmlinux 0x42c055bb alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x42f43e8b bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x430430c4 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x430ed50d pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x43558920 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x43617667 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x43632d7d of_find_property +EXPORT_SYMBOL vmlinux 0x4364ae70 netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x436a437b udp_sendmsg +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x438e0338 seq_path +EXPORT_SYMBOL vmlinux 0x43963db9 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x43a01f90 complete_all +EXPORT_SYMBOL vmlinux 0x43bc4ea2 gen10g_config_aneg +EXPORT_SYMBOL vmlinux 0x43ca5041 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x43de86ca bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x4411c503 prandom_seed +EXPORT_SYMBOL vmlinux 0x4413b61a pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x44246b95 eth_header +EXPORT_SYMBOL vmlinux 0x442ca06d xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x44438b96 hex2bin +EXPORT_SYMBOL vmlinux 0x445f886b generic_show_options +EXPORT_SYMBOL vmlinux 0x44626c6b bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x447f220a inet6_ioctl +EXPORT_SYMBOL vmlinux 0x44801254 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x4491951d ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x44a28f8d pci_release_regions +EXPORT_SYMBOL vmlinux 0x44dc6b75 inode_reclaim_rsv_space +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44eb192e wait_for_completion +EXPORT_SYMBOL vmlinux 0x44f52599 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x44f5e8b5 of_allnodes +EXPORT_SYMBOL vmlinux 0x45315da1 devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4554c176 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x456ddfe2 alloc_anon_inode +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x457eda68 single_open +EXPORT_SYMBOL vmlinux 0x4589bbb9 ipmi_smi_watcher_register +EXPORT_SYMBOL vmlinux 0x458e493b security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x4596db6a sys_sigreturn +EXPORT_SYMBOL vmlinux 0x45a6be13 cpufreq_sysfs_remove_file +EXPORT_SYMBOL vmlinux 0x45a95158 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x45c2afcc poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x45d94da2 blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0x45f90398 dma_common_get_sgtable +EXPORT_SYMBOL vmlinux 0x46106d36 sock_create_kern +EXPORT_SYMBOL vmlinux 0x4612c59d down_trylock +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x463c1274 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x4645476d fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x4652a437 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x465757c3 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x465970b3 make_kgid +EXPORT_SYMBOL vmlinux 0x465cab34 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x46608fa0 getnstimeofday +EXPORT_SYMBOL vmlinux 0x46616f64 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x46657c7f of_dev_get +EXPORT_SYMBOL vmlinux 0x4669cae3 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x466e0be8 sock_wake_async +EXPORT_SYMBOL vmlinux 0x46a0706b blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x46ba5dab dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x46d1162d pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0x46d12956 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x471494ac nf_nat_decode_session_hook +EXPORT_SYMBOL vmlinux 0x47416e14 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x4742f05c input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x475c57d1 fb_find_mode +EXPORT_SYMBOL vmlinux 0x47624f1c udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x47677a85 proc_set_user +EXPORT_SYMBOL vmlinux 0x477f0010 kernel_bind +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47bcf84c param_set_ulong +EXPORT_SYMBOL vmlinux 0x47c6b43a dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x47c8baf4 param_ops_uint +EXPORT_SYMBOL vmlinux 0x47d2e79d elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x47e293cc pcim_iounmap +EXPORT_SYMBOL vmlinux 0x47ea80d8 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x47f031de read_cache_pages +EXPORT_SYMBOL vmlinux 0x47f934b6 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x48034724 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x4816c183 mutex_lock +EXPORT_SYMBOL vmlinux 0x481ce6ce cpu_active_mask +EXPORT_SYMBOL vmlinux 0x482a2a49 param_set_charp +EXPORT_SYMBOL vmlinux 0x482b8866 generic_file_open +EXPORT_SYMBOL vmlinux 0x483fad78 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x48404b9a remove_wait_queue +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x4871a6a3 pci_disable_obff +EXPORT_SYMBOL vmlinux 0x487a4460 cpumask_set_cpu_local_first +EXPORT_SYMBOL vmlinux 0x4881efab pmac_get_partition +EXPORT_SYMBOL vmlinux 0x48871dbf generic_make_request +EXPORT_SYMBOL vmlinux 0x48c6db53 of_get_child_by_name +EXPORT_SYMBOL vmlinux 0x48ca1dcf follow_down_one +EXPORT_SYMBOL vmlinux 0x48cc1561 mach_powermac +EXPORT_SYMBOL vmlinux 0x48fabfbf gen_new_estimator +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x4907dea7 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x49266a8e devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x4932f307 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x4937811c dquot_scan_active +EXPORT_SYMBOL vmlinux 0x495c96f8 posix_acl_init +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49797bae dcache_readdir +EXPORT_SYMBOL vmlinux 0x4990c1ad nla_reserve +EXPORT_SYMBOL vmlinux 0x49a5e078 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x49ab53b2 seq_putc +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49c3baf5 security_path_unlink +EXPORT_SYMBOL vmlinux 0x4a09bb8f buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x4a0c0012 bio_split +EXPORT_SYMBOL vmlinux 0x4a1a8308 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x4a201ccd scsi_device_get +EXPORT_SYMBOL vmlinux 0x4a2b4ec8 dev_deactivate +EXPORT_SYMBOL vmlinux 0x4a2e6576 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a423490 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x4a60f94f neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x4a65a318 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x4a6de535 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0x4aa84e4d net_dma_find_channel +EXPORT_SYMBOL vmlinux 0x4ab7e238 find_vma +EXPORT_SYMBOL vmlinux 0x4ac0972f backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x4ac3acf8 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x4acd5560 scsi_execute +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b1ec3e2 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x4b20fd3c dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x4b2a4e07 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b5b958a prepare_creds +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b6975a4 xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0x4b6c1bfe scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x4b6d5109 scsi_put_command +EXPORT_SYMBOL vmlinux 0x4b7ed27b sleep_on +EXPORT_SYMBOL vmlinux 0x4b852b8c inet_frag_find +EXPORT_SYMBOL vmlinux 0x4ba275a7 dquot_commit +EXPORT_SYMBOL vmlinux 0x4bb43cd4 of_platform_device_create +EXPORT_SYMBOL vmlinux 0x4bb7464f gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x4bd4d9e7 request_key_async +EXPORT_SYMBOL vmlinux 0x4bdda7f9 create_syslog_header +EXPORT_SYMBOL vmlinux 0x4be85a03 memweight +EXPORT_SYMBOL vmlinux 0x4be98208 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x4bed99b3 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x4c11435a _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c20da13 tcp_init_sock +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c2ff261 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x4c56790f pci_iomap +EXPORT_SYMBOL vmlinux 0x4c62a944 inet6_register_icmp_sender +EXPORT_SYMBOL vmlinux 0x4c6ef134 tty_port_open +EXPORT_SYMBOL vmlinux 0x4c80dd22 balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL vmlinux 0x4cb534dc tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x4cb60f52 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cc02405 sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0x4ccd6998 seq_vprintf +EXPORT_SYMBOL vmlinux 0x4cdaa3db skb_copy_bits +EXPORT_SYMBOL vmlinux 0x4cdb3178 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x4ce85d56 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x4d2d70e6 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d3d0daf ip_options_compile +EXPORT_SYMBOL vmlinux 0x4d425fb8 vga_put +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d542e0d ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x4d5bf0f1 ipv4_specific +EXPORT_SYMBOL vmlinux 0x4d6b5dcb mdiobus_free +EXPORT_SYMBOL vmlinux 0x4d83695d kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x4d83b295 sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x4d944138 follow_up +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d987b47 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4da7c931 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x4dbc8adb inet6_del_offload +EXPORT_SYMBOL vmlinux 0x4de34a07 cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4dfa8475 netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0x4dfed71c flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x4e0641ea mac_find_mode +EXPORT_SYMBOL vmlinux 0x4e30dee1 pci_scan_bus +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e4d0757 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x4e61abbc xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e76e376 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x4e786d13 idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e9c8f01 check_disk_change +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ed1184f dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x4ee6f216 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x4f085562 blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0x4f11216d kunmap_high +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f248523 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f610ad1 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x4f68e5c9 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x4fa0bdd2 file_ns_capable +EXPORT_SYMBOL vmlinux 0x4fac4f8f gen10g_config_advert +EXPORT_SYMBOL vmlinux 0x4fc0d1b0 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe99583 atomic64_dec_if_positive +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x501795a6 eth_type_trans +EXPORT_SYMBOL vmlinux 0x501dfef4 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x50384baf vgacon_remap_base +EXPORT_SYMBOL vmlinux 0x503c2e03 ppp_input_error +EXPORT_SYMBOL vmlinux 0x507c71f8 dev_open +EXPORT_SYMBOL vmlinux 0x509562be inet_add_offload +EXPORT_SYMBOL vmlinux 0x509817cf vprintk_emit +EXPORT_SYMBOL vmlinux 0x50ae7d80 __idr_pre_get +EXPORT_SYMBOL vmlinux 0x50c4cbb7 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x50c9344f pci_target_state +EXPORT_SYMBOL vmlinux 0x50cbfca5 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x50dac8a4 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x50f4f3f4 mdiobus_register +EXPORT_SYMBOL vmlinux 0x510102b3 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x511410a8 inode_dio_wait +EXPORT_SYMBOL vmlinux 0x51174485 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x515e24a7 flush_instruction_cache +EXPORT_SYMBOL vmlinux 0x51603e5e init_buffer +EXPORT_SYMBOL vmlinux 0x5172c755 macio_unregister_driver +EXPORT_SYMBOL vmlinux 0x518b2eb3 __ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x518fc866 try_to_writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x519b0da3 finish_wait +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52079cb6 blk_mq_map_queue +EXPORT_SYMBOL vmlinux 0x520e4953 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x520f8318 sock_no_poll +EXPORT_SYMBOL vmlinux 0x52162d0f key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x521b36b5 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x522179d3 mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x52428cc8 parent_mem_cgroup +EXPORT_SYMBOL vmlinux 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL vmlinux 0x525bb1e6 mount_pseudo +EXPORT_SYMBOL vmlinux 0x527830ff pmac_xpram_read +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52a15a9a scsi_register_interface +EXPORT_SYMBOL vmlinux 0x52d1e87c __register_chrdev +EXPORT_SYMBOL vmlinux 0x52d2976d __lock_page +EXPORT_SYMBOL vmlinux 0x52de2da8 wake_up_process +EXPORT_SYMBOL vmlinux 0x52e622ee generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x52ece2b2 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x52ff9ce8 pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0x53061fb6 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x531c601a xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x531fccad scsi_device_resume +EXPORT_SYMBOL vmlinux 0x5327fdd8 blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x5354436e dcb_getapp +EXPORT_SYMBOL vmlinux 0x538490c1 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x539d20c2 put_io_context +EXPORT_SYMBOL vmlinux 0x53bb01e2 vm_stat +EXPORT_SYMBOL vmlinux 0x53c13e8b blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x53c46c92 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x54023612 cdrom_release +EXPORT_SYMBOL vmlinux 0x54057fc0 phy_connect +EXPORT_SYMBOL vmlinux 0x5409775b free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x5412c7c7 up +EXPORT_SYMBOL vmlinux 0x5416fa58 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x542e112b phy_device_create +EXPORT_SYMBOL vmlinux 0x54327d19 truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5445c755 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x544f46a7 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x54796147 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x5496b7d9 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54d31abf rtnl_create_link +EXPORT_SYMBOL vmlinux 0x54e16e4f get_write_access +EXPORT_SYMBOL vmlinux 0x54e3cc3b param_get_int +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x550541b5 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x55467ede fsl_upm_find +EXPORT_SYMBOL vmlinux 0x55483c13 mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x5549253a tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x5549280b rtnl_unicast +EXPORT_SYMBOL vmlinux 0x5559a20b dget_parent +EXPORT_SYMBOL vmlinux 0x5567c227 kernel_cpustat +EXPORT_SYMBOL vmlinux 0x5568c553 complete +EXPORT_SYMBOL vmlinux 0x556c2740 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x556cc182 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x5577ef9e udp_table +EXPORT_SYMBOL vmlinux 0x5584855b xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55cb4635 tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0x55ce3801 proc_mkdir +EXPORT_SYMBOL vmlinux 0x55e58b80 mpage_readpage +EXPORT_SYMBOL vmlinux 0x55eb9da1 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x55f094cc __scsi_put_command +EXPORT_SYMBOL vmlinux 0x55fe2f7f flush_old_exec +EXPORT_SYMBOL vmlinux 0x5605bd9a tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x5607a2f6 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x56247b01 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x56258910 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x564233f0 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x564c80ee inode_get_bytes +EXPORT_SYMBOL vmlinux 0x567993c8 devm_gpio_request_one +EXPORT_SYMBOL vmlinux 0x56912b2d do_splice_to +EXPORT_SYMBOL vmlinux 0x56945e5d request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x56996dfc inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56b50f4d pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress +EXPORT_SYMBOL vmlinux 0x56c5ce5e netif_receive_skb +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56cfb95f pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x56e29b4d mdiobus_read +EXPORT_SYMBOL vmlinux 0x56e3bce6 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0x56efb843 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x570c8cdf netdev_alert +EXPORT_SYMBOL vmlinux 0x572e806c jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x573de455 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x5785384a flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x5789d84a key_type_keyring +EXPORT_SYMBOL vmlinux 0x57ca3b6b send_sig_info +EXPORT_SYMBOL vmlinux 0x5815bf9d __inet6_hash +EXPORT_SYMBOL vmlinux 0x582a4747 cacheable_memcpy +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x58623807 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x587616f1 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x589592ee get_task_io_context +EXPORT_SYMBOL vmlinux 0x5897866a kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x58c34326 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x58c59aa2 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x58d1070a of_get_address +EXPORT_SYMBOL vmlinux 0x59002e48 path_put +EXPORT_SYMBOL vmlinux 0x5906c8a0 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x590c5d5e __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x591241d0 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x59240e57 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x5929b913 nf_log_set +EXPORT_SYMBOL vmlinux 0x59339721 install_exec_creds +EXPORT_SYMBOL vmlinux 0x5935453b devm_ioremap_prot +EXPORT_SYMBOL vmlinux 0x593d0c8d pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x59572324 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x5958f8d3 tcp_prot +EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page +EXPORT_SYMBOL vmlinux 0x595e6187 __pskb_copy +EXPORT_SYMBOL vmlinux 0x59696e1d bmap +EXPORT_SYMBOL vmlinux 0x59a0bff7 d_lookup +EXPORT_SYMBOL vmlinux 0x59a4a843 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x59b3378a completion_done +EXPORT_SYMBOL vmlinux 0x59c4ff40 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x59d82f26 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x59f1e569 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x59f6b519 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x59fc74f0 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x59fc941d machine_id +EXPORT_SYMBOL vmlinux 0x5a05e87e blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x5a26c688 mb_cache_create +EXPORT_SYMBOL vmlinux 0x5a354718 bdev_read_only +EXPORT_SYMBOL vmlinux 0x5a4fabb9 d_invalidate +EXPORT_SYMBOL vmlinux 0x5a5536c2 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x5a608566 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x5a60e693 netlink_ack +EXPORT_SYMBOL vmlinux 0x5a88f5d8 lease_modify +EXPORT_SYMBOL vmlinux 0x5a8cc0ed generic_readlink +EXPORT_SYMBOL vmlinux 0x5ab67931 do_IRQ +EXPORT_SYMBOL vmlinux 0x5acf743a dev_get_stats +EXPORT_SYMBOL vmlinux 0x5ae52f03 i2c_bit_algo +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b39988e ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present +EXPORT_SYMBOL vmlinux 0x5b62a423 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x5b83e84b ping_prot +EXPORT_SYMBOL vmlinux 0x5b8ce8e5 __sock_create +EXPORT_SYMBOL vmlinux 0x5b9562fc sget +EXPORT_SYMBOL vmlinux 0x5b9828c5 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x5bb9daec __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0x5be60989 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x5bf5c3a1 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x5bf63794 lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0x5c265cba sg_init_one +EXPORT_SYMBOL vmlinux 0x5c37f319 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x5c3cd906 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x5c4e0104 elevator_init +EXPORT_SYMBOL vmlinux 0x5c4e4cd0 pci_enable_device +EXPORT_SYMBOL vmlinux 0x5c52c052 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x5c571121 ps2_end_command +EXPORT_SYMBOL vmlinux 0x5c6c181f i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x5c725493 proc_remove +EXPORT_SYMBOL vmlinux 0x5c77de5a __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x5c7d4c55 udp_poll +EXPORT_SYMBOL vmlinux 0x5cae4398 kernel_connect +EXPORT_SYMBOL vmlinux 0x5cc6af7f max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x5cdd1ee4 put_page +EXPORT_SYMBOL vmlinux 0x5ce19a9d agp_bind_memory +EXPORT_SYMBOL vmlinux 0x5ce1e592 init_task +EXPORT_SYMBOL vmlinux 0x5ce2971d fb_blank +EXPORT_SYMBOL vmlinux 0x5ceb79aa pci_request_regions +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5d0ad0d6 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x5d41c87c param_ops_charp +EXPORT_SYMBOL vmlinux 0x5d43fc88 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x5d44518a jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x5d4d0086 dquot_transfer +EXPORT_SYMBOL vmlinux 0x5d509048 backlight_force_update +EXPORT_SYMBOL vmlinux 0x5d54a1ea dev_queue_xmit_accel +EXPORT_SYMBOL vmlinux 0x5d550c4d scsi_sd_probe_domain +EXPORT_SYMBOL vmlinux 0x5d567e5f i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d6273e0 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x5d6bdce1 flex_array_alloc +EXPORT_SYMBOL vmlinux 0x5d866485 gen_pool_dma_alloc +EXPORT_SYMBOL vmlinux 0x5d934e82 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x5db51024 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x5ddcb082 names_cachep +EXPORT_SYMBOL vmlinux 0x5e03847e max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x5e0a380a keyring_search +EXPORT_SYMBOL vmlinux 0x5e27321b register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x5e3a8a9c __wake_up +EXPORT_SYMBOL vmlinux 0x5e529b19 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x5e52fc14 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb0401e proc_dostring +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ec34c3b simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x5ec69fd6 phy_drivers_register +EXPORT_SYMBOL vmlinux 0x5ecc4d5f del_gendisk +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5eeb5ba8 netdev_all_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f28c2dc idr_remove +EXPORT_SYMBOL vmlinux 0x5f37934b sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x5f3c8f5c mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x5f43d51d of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x5f5710e5 __napi_schedule +EXPORT_SYMBOL vmlinux 0x5f6195c2 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x5f6d4421 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f7fe1ad of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5f909109 vfs_setpos +EXPORT_SYMBOL vmlinux 0x5fa7d5d4 inet_release +EXPORT_SYMBOL vmlinux 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL vmlinux 0x5fd11e4a jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x5fda0227 vfs_stat +EXPORT_SYMBOL vmlinux 0x5fe963e3 dquot_resume +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x60210785 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x60294823 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x6047a9c5 gen10g_read_status +EXPORT_SYMBOL vmlinux 0x60493ec8 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x6086fae9 rwsem_wake +EXPORT_SYMBOL vmlinux 0x609ca9d3 arp_xmit +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a5617d may_umount_tree +EXPORT_SYMBOL vmlinux 0x60df1e3b posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x610e9435 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x61237ec0 ip_fragment +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x61275dbf neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x614d459d ether_setup +EXPORT_SYMBOL vmlinux 0x61538ad0 param_get_charp +EXPORT_SYMBOL vmlinux 0x616b825d dql_init +EXPORT_SYMBOL vmlinux 0x61864dfb md_unregister_thread +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61be4af3 padata_start +EXPORT_SYMBOL vmlinux 0x61c4bd5f dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x623d7182 _chrp_type +EXPORT_SYMBOL vmlinux 0x62538167 slhc_toss +EXPORT_SYMBOL vmlinux 0x625b0529 eth_header_parse +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62822d05 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x628332e8 pmu_power_flags +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x629b45ee __get_page_tail +EXPORT_SYMBOL vmlinux 0x62abb3ee udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x62b04132 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x62de9835 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x62e3988f seq_lseek +EXPORT_SYMBOL vmlinux 0x63045b15 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x6311dd47 ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x63231951 gen_pool_create +EXPORT_SYMBOL vmlinux 0x636c54ff neigh_seq_start +EXPORT_SYMBOL vmlinux 0x63803805 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x6392954e mpage_writepages +EXPORT_SYMBOL vmlinux 0x63b1aaf4 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x63b31d7a filp_open +EXPORT_SYMBOL vmlinux 0x63b39453 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x63bc4952 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63fa6ba8 skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x63fcc15e dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x640d81b4 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x640f968c giveup_fpu +EXPORT_SYMBOL vmlinux 0x6411d1bc md_write_start +EXPORT_SYMBOL vmlinux 0x644426e8 d_drop +EXPORT_SYMBOL vmlinux 0x644f0a59 pci_get_class +EXPORT_SYMBOL vmlinux 0x646c1c33 dev_mc_del +EXPORT_SYMBOL vmlinux 0x646cc6ab pmu_poll +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64ac337d try_to_release_page +EXPORT_SYMBOL vmlinux 0x64ad04ae inetdev_by_index +EXPORT_SYMBOL vmlinux 0x64ba303a padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x64eae3c9 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x6502dfd2 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x65058d23 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x650db03d tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x6532ba06 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x65400222 __irq_offset_value +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x655cc5b8 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x6585e310 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x659708fe scm_fp_dup +EXPORT_SYMBOL vmlinux 0x65aa6e69 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x65bb58a2 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x65d59a80 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65f3ad9a fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x66008f77 zerocopy_sg_from_iovec +EXPORT_SYMBOL vmlinux 0x6603f0b2 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x66049e9b blk_queue_max_write_same_sectors +EXPORT_SYMBOL vmlinux 0x6617a19c sock_create +EXPORT_SYMBOL vmlinux 0x6619d2aa jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x664d2295 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x665189c8 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x665af25b scsi_dma_map +EXPORT_SYMBOL vmlinux 0x66690845 __skb_get_hash +EXPORT_SYMBOL vmlinux 0x668bcfa5 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66901735 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x66b197d8 bio_init +EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write +EXPORT_SYMBOL vmlinux 0x66dabff1 sk_filter +EXPORT_SYMBOL vmlinux 0x66fe63e2 blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0x67134f0b is_bad_inode +EXPORT_SYMBOL vmlinux 0x671fb9a3 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x672fa0fa udp_ioctl +EXPORT_SYMBOL vmlinux 0x673b373a framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6748bb60 write_inode_now +EXPORT_SYMBOL vmlinux 0x675b8f61 param_get_string +EXPORT_SYMBOL vmlinux 0x67b4bfd1 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c37328 __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL vmlinux 0x67ee69e0 dst_alloc +EXPORT_SYMBOL vmlinux 0x6806dc6d fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x681917d3 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x681dd73d tty_lock +EXPORT_SYMBOL vmlinux 0x6821873f kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x682718d9 page_symlink +EXPORT_SYMBOL vmlinux 0x6834046f dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x6849a15f flex_array_clear +EXPORT_SYMBOL vmlinux 0x685c7829 pmac_register_agp_pm +EXPORT_SYMBOL vmlinux 0x68609857 complete_and_exit +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x6882d6f2 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x68957296 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x68b83ac6 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x68c81ac0 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x68d8ef19 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x68e05d57 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x6917ed64 agp_put_bridge +EXPORT_SYMBOL vmlinux 0x6918a375 blk_mq_alloc_single_hw_queue +EXPORT_SYMBOL vmlinux 0x694ddbda blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x6954da4a dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x696ebb1b splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69d7e5b8 __debugger_ipi +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69f266a0 blk_get_queue +EXPORT_SYMBOL vmlinux 0x69fba626 blk_complete_request +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a13d4d7 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x6a1b76cd inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x6a3f4119 mmc_of_parse_voltage +EXPORT_SYMBOL vmlinux 0x6a479083 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a6ac4fe sk_alloc +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a9757b0 netif_napi_del +EXPORT_SYMBOL vmlinux 0x6ab0b7ab cleancache_register_ops +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ae87c78 vfs_write +EXPORT_SYMBOL vmlinux 0x6b06fdce delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b512576 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x6b793735 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x6b7f1917 idr_find_slowpath +EXPORT_SYMBOL vmlinux 0x6b8c7e31 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x6b9bee77 blk_mq_insert_request +EXPORT_SYMBOL vmlinux 0x6ba0a1ae i2c_use_client +EXPORT_SYMBOL vmlinux 0x6ba6f2fe crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x6bafbc34 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x6bb23ae4 pcim_iomap +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bceaebc gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x6bd158e2 cdev_add +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6beb2078 param_set_copystring +EXPORT_SYMBOL vmlinux 0x6c0158a0 lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x6c0e5650 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2dbd89 tty_throttle +EXPORT_SYMBOL vmlinux 0x6c2faee3 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x6c51a836 sysctl_tcp_notsent_lowat +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c665691 flex_array_shrink +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c722c95 filemap_fault +EXPORT_SYMBOL vmlinux 0x6ca1d1a4 atomic64_read +EXPORT_SYMBOL vmlinux 0x6ca46dd5 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x6ca5b0f8 __net_get_random_once +EXPORT_SYMBOL vmlinux 0x6cb11ba7 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x6cb7d565 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0x6cb883a9 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6ce53c9e netdev_printk +EXPORT_SYMBOL vmlinux 0x6cedd7ea __scsi_add_device +EXPORT_SYMBOL vmlinux 0x6cf746f5 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d3dfceb dst_discard +EXPORT_SYMBOL vmlinux 0x6d464175 __sg_free_table +EXPORT_SYMBOL vmlinux 0x6d48f31f qdisc_destroy +EXPORT_SYMBOL vmlinux 0x6d5e87b7 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x6d7f0270 pci_choose_state +EXPORT_SYMBOL vmlinux 0x6d8568f2 sock_i_uid +EXPORT_SYMBOL vmlinux 0x6d92d8b2 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x6da41f4c empty_aops +EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns +EXPORT_SYMBOL vmlinux 0x6db5725e security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x6dbb8475 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x6dc942e5 mem_map +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e1b33aa sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x6e4787f7 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x6e654c9b agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x6e671fbd blk_bio_map_sg +EXPORT_SYMBOL vmlinux 0x6e6a9737 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e764332 idr_destroy +EXPORT_SYMBOL vmlinux 0x6e84ceac dev_set_group +EXPORT_SYMBOL vmlinux 0x6e8fdb55 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x6ea18935 mutex_unlock +EXPORT_SYMBOL vmlinux 0x6eab7fa6 cdev_del +EXPORT_SYMBOL vmlinux 0x6eafeee5 bio_map_kern +EXPORT_SYMBOL vmlinux 0x6eb74dff proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x6ebc5149 param_ops_long +EXPORT_SYMBOL vmlinux 0x6ebedea2 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x6ec4e5a2 iunique +EXPORT_SYMBOL vmlinux 0x6ed39498 mnt_unpin +EXPORT_SYMBOL vmlinux 0x6f0d63bc generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x6f193de2 netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0x6f20960a full_name_hash +EXPORT_SYMBOL vmlinux 0x6f5c4748 ip_route_input_noref +EXPORT_SYMBOL vmlinux 0x6f85b211 ida_remove +EXPORT_SYMBOL vmlinux 0x6fa82c61 pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0x6fb1b0f5 vmap +EXPORT_SYMBOL vmlinux 0x6fb7b07e blkdev_get +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fcd5893 mmc_of_parse +EXPORT_SYMBOL vmlinux 0x6fd16a04 netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0x702363b9 irq_to_desc +EXPORT_SYMBOL vmlinux 0x7023e590 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x703fcf61 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x704e01d6 phy_attach +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x705bfa11 pci_find_capability +EXPORT_SYMBOL vmlinux 0x707f43f6 __ctzdi2 +EXPORT_SYMBOL vmlinux 0x708aec25 inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0x708e08b1 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x7096cf42 inet_getname +EXPORT_SYMBOL vmlinux 0x70b9d58b netlink_capable +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70c68944 sock_alloc_file +EXPORT_SYMBOL vmlinux 0x70c79647 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70d888b7 __debugger_fault_handler +EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request +EXPORT_SYMBOL vmlinux 0x711f9982 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x713b830b fbcon_set_rotate +EXPORT_SYMBOL vmlinux 0x713bff3d ppc_md +EXPORT_SYMBOL vmlinux 0x7143e4a1 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x7154767e __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x715bfeb1 d_move +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x7181d172 neigh_update +EXPORT_SYMBOL vmlinux 0x718b4795 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x71925f24 tty_name +EXPORT_SYMBOL vmlinux 0x719d918d scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71a75550 have_submounts +EXPORT_SYMBOL vmlinux 0x71ae7cad __serio_register_driver +EXPORT_SYMBOL vmlinux 0x71c2fc6f skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71d89865 locks_free_lock +EXPORT_SYMBOL vmlinux 0x71de67b4 __skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x71eae326 devm_ioport_map +EXPORT_SYMBOL vmlinux 0x71f487eb jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x71f65175 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0x721c3bcd kmem_cache_free +EXPORT_SYMBOL vmlinux 0x7235e278 of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0x723a3d24 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x72484966 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x725ae603 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x7261828c mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x7269f9e6 netif_device_attach +EXPORT_SYMBOL vmlinux 0x7278ea67 update_region +EXPORT_SYMBOL vmlinux 0x7299f077 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x729d512b vm_event_states +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b4824a agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x72b5b2b7 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x72c933f7 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x72cc38a6 inet6_bind +EXPORT_SYMBOL vmlinux 0x72d1019e xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x72d58de9 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x73020fea dev_uc_init +EXPORT_SYMBOL vmlinux 0x73041e20 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x731058c2 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x73294fab ipmi_get_smi_info +EXPORT_SYMBOL vmlinux 0x7329d649 iterate_mounts +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x734dd72f mem_cgroup_subsys +EXPORT_SYMBOL vmlinux 0x735d8503 add_wait_queue +EXPORT_SYMBOL vmlinux 0x73658f2b netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x73710a3e dqstats +EXPORT_SYMBOL vmlinux 0x7376278d serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x737edd86 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x738b701f generic_file_fsync +EXPORT_SYMBOL vmlinux 0x739a1289 submit_bio +EXPORT_SYMBOL vmlinux 0x739a5abc scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73e2eee3 elv_rb_find +EXPORT_SYMBOL vmlinux 0x73eed5dd decrementer_clockevent +EXPORT_SYMBOL vmlinux 0x73f60183 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x742addd1 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x74343788 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x744674bc pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x745bf43b agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x745d4570 pci_save_state +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x747195f0 hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x747e66a2 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74af9666 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c2ddab revalidate_disk +EXPORT_SYMBOL vmlinux 0x74ca598a check_disk_size_change +EXPORT_SYMBOL vmlinux 0x74ce05b8 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x74eff5a0 seq_read +EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler +EXPORT_SYMBOL vmlinux 0x7505bdef memchr_inv +EXPORT_SYMBOL vmlinux 0x751c2917 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x7527bfa3 vm_insert_page +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x754dac78 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x754fc61c tcf_action_exec +EXPORT_SYMBOL vmlinux 0x756dd160 start_thread +EXPORT_SYMBOL vmlinux 0x75856dcd vc_cons +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x75994700 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x75a526fc kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75e46765 netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x75e6148f generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x75e98a73 dentry_open +EXPORT_SYMBOL vmlinux 0x75f11574 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x75f33953 open_exec +EXPORT_SYMBOL vmlinux 0x75ff4b62 ll_rw_block +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x7629fdad skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x763d605c vga_client_register +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764ee19b dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x7653e005 elevator_change +EXPORT_SYMBOL vmlinux 0x7672f72e swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x7698ca9f mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x76abbf78 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x76b53312 input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0x76ba8280 register_console +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76caf5d9 __frontswap_load +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d451c4 add_taint +EXPORT_SYMBOL vmlinux 0x76deb56b input_unregister_device +EXPORT_SYMBOL vmlinux 0x76f234b1 ktime_get_clocktai +EXPORT_SYMBOL vmlinux 0x76f2d3a7 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x76f8677a module_layout +EXPORT_SYMBOL vmlinux 0x77023fcb dma_common_mmap +EXPORT_SYMBOL vmlinux 0x7728b888 gen10g_resume +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x774b6bee __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x774c9868 __frontswap_test +EXPORT_SYMBOL vmlinux 0x774d239c rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x77516240 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x777b5763 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x7788b406 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77aaa13e __netlink_dump_start +EXPORT_SYMBOL vmlinux 0x77ad2015 pipe_to_file +EXPORT_SYMBOL vmlinux 0x77ad483c kmap_to_page +EXPORT_SYMBOL vmlinux 0x77b851c4 cacheable_memzero +EXPORT_SYMBOL vmlinux 0x77bb082c mmc_erase +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77ed6616 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x78034a48 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x782567ec memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0x783b3563 wake_up_atomic_t +EXPORT_SYMBOL vmlinux 0x785df7ca get_super_thawed +EXPORT_SYMBOL vmlinux 0x78715c16 tty_register_device +EXPORT_SYMBOL vmlinux 0x7880930d ppp_input +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x789affb1 frontswap_tmem_exclusive_gets +EXPORT_SYMBOL vmlinux 0x789fd0f6 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0x78cc9736 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e8639a phy_connect_direct +EXPORT_SYMBOL vmlinux 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL vmlinux 0x78ff171e tcf_hash_create +EXPORT_SYMBOL vmlinux 0x790df6ca __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x790e31e3 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x79121a7d __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x7929461f fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x7930d225 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x79477f30 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x796b1054 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x797d71f3 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79da4df4 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x79f8e569 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x7a188791 prandom_bytes +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a37f6d1 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a68cdac agp_backend_release +EXPORT_SYMBOL vmlinux 0x7a6eb4de blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x7a8e6ebe kobject_init +EXPORT_SYMBOL vmlinux 0x7a925833 cpufreq_get_global_kobject +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7add44b5 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7ae341bf ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x7af06c26 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x7af7e64b seq_open_private +EXPORT_SYMBOL vmlinux 0x7afa89fc vsnprintf +EXPORT_SYMBOL vmlinux 0x7affc2ef dm_io +EXPORT_SYMBOL vmlinux 0x7b11731d input_flush_device +EXPORT_SYMBOL vmlinux 0x7b1ade38 lz4_decompress +EXPORT_SYMBOL vmlinux 0x7b5c8440 vm_munmap +EXPORT_SYMBOL vmlinux 0x7b68f25e generic_write_end +EXPORT_SYMBOL vmlinux 0x7b69b1bc pci_bus_type +EXPORT_SYMBOL vmlinux 0x7b95c1e9 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x7ba59e28 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x7bb21678 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x7bbeb569 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x7bbfa54e generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x7bc3e52d blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x7be4827c pci_dram_offset +EXPORT_SYMBOL vmlinux 0x7bee6f5d pci_dev_get +EXPORT_SYMBOL vmlinux 0x7bf07e84 __d_drop +EXPORT_SYMBOL vmlinux 0x7c003aef _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x7c033746 skb_insert +EXPORT_SYMBOL vmlinux 0x7c1372e8 panic +EXPORT_SYMBOL vmlinux 0x7c17c5a6 phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x7c34cfaf generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x7c420f0e agp_copy_info +EXPORT_SYMBOL vmlinux 0x7c44628e blk_mq_can_queue +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c647302 led_set_brightness +EXPORT_SYMBOL vmlinux 0x7c6f8453 agp_free_page_array +EXPORT_SYMBOL vmlinux 0x7c918bca ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x7c9291d1 csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7caa4a19 nla_append +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cbc481b sock_no_getname +EXPORT_SYMBOL vmlinux 0x7cc578da param_get_long +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7d05b010 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x7d08fa34 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d1226f3 set_disk_ro +EXPORT_SYMBOL vmlinux 0x7d253249 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x7d2b3b8d lro_receive_frags +EXPORT_SYMBOL vmlinux 0x7d3e8a35 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x7d70d15c elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x7d7f5fc6 ftrace_print_symbols_seq_u64 +EXPORT_SYMBOL vmlinux 0x7d97313e dev_warn +EXPORT_SYMBOL vmlinux 0x7dabeba0 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x7db77387 freeze_bdev +EXPORT_SYMBOL vmlinux 0x7dc0e109 idr_get_next +EXPORT_SYMBOL vmlinux 0x7dc97879 rtas_get_error_log_max +EXPORT_SYMBOL vmlinux 0x7dd5d823 __inode_permission +EXPORT_SYMBOL vmlinux 0x7dee31a7 end_page_writeback +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7df78eb8 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x7e089af1 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x7e1915c8 __pagevec_release +EXPORT_SYMBOL vmlinux 0x7e1cf782 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x7e292f27 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x7e2df526 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e417e69 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x7e49f281 lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0x7e5be4e5 iterate_supers_type +EXPORT_SYMBOL vmlinux 0x7e87227e slhc_compress +EXPORT_SYMBOL vmlinux 0x7ea2ee89 security_path_chown +EXPORT_SYMBOL vmlinux 0x7eb7ecb5 block_truncate_page +EXPORT_SYMBOL vmlinux 0x7eb8968b unregister_binfmt +EXPORT_SYMBOL vmlinux 0x7eb8d0f1 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x7ebdf4fb blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x7ecebe71 inode_change_ok +EXPORT_SYMBOL vmlinux 0x7ee73c0c memcg_socket_limit_enabled +EXPORT_SYMBOL vmlinux 0x7eebdfc9 devm_gpio_request +EXPORT_SYMBOL vmlinux 0x7ef868c7 ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x7f08ef50 neigh_lookup +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f2a1dcb __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x7f31ce05 devfreq_resume_device +EXPORT_SYMBOL vmlinux 0x7f377574 ata_print_version +EXPORT_SYMBOL vmlinux 0x7f5012ed i2c_release_client +EXPORT_SYMBOL vmlinux 0x7f58da0f adb_client_list +EXPORT_SYMBOL vmlinux 0x7fcc0dfb sync_inode +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7fed10c5 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x7ff931df i2c_del_driver +EXPORT_SYMBOL vmlinux 0x8015916b tc_classify_compat +EXPORT_SYMBOL vmlinux 0x803be4ef __find_get_block +EXPORT_SYMBOL vmlinux 0x804f922a ipmi_addr_length +EXPORT_SYMBOL vmlinux 0x80c90fa5 thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x8163f594 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x816df3f8 devm_iounmap +EXPORT_SYMBOL vmlinux 0x81819480 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x819f572c bdput +EXPORT_SYMBOL vmlinux 0x81a07f4e _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x81ae1ed9 mmc_gpio_free_cd +EXPORT_SYMBOL vmlinux 0x81b05ad0 mmc_get_card +EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x820962e1 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x820d27ea submit_bh +EXPORT_SYMBOL vmlinux 0x822e420e udp_add_offload +EXPORT_SYMBOL vmlinux 0x823f9464 prepare_binprm +EXPORT_SYMBOL vmlinux 0x82414c28 kmap_high +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x826a7d92 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x827f67bb inet6_add_offload +EXPORT_SYMBOL vmlinux 0x828062b1 __frontswap_init +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b32616 dev_printk_emit +EXPORT_SYMBOL vmlinux 0x82bbc4f6 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x82c1b81a input_unregister_handle +EXPORT_SYMBOL vmlinux 0x82de6f26 make_kprojid +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x8306dc3c __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x830a44b2 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x832d2399 __quota_error +EXPORT_SYMBOL vmlinux 0x8341c39e xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x835982af wireless_send_event +EXPORT_SYMBOL vmlinux 0x8391df7e block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83abffd4 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x83b69503 f_setown +EXPORT_SYMBOL vmlinux 0x83c75282 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x83cd49a4 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x83d2d933 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x83e0e1cc pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x83e1c33e sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x83efac3c padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x841962f8 param_get_ushort +EXPORT_SYMBOL vmlinux 0x843a3d25 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x844404cf ISA_DMA_THRESHOLD +EXPORT_SYMBOL vmlinux 0x8447cd14 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x844c4383 sk_dst_check +EXPORT_SYMBOL vmlinux 0x84597a88 of_phy_attach +EXPORT_SYMBOL vmlinux 0x846a8cbb ilookup5 +EXPORT_SYMBOL vmlinux 0x8485465e inet_listen +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84ba8ede scsi_get_command +EXPORT_SYMBOL vmlinux 0x84bd69bf dq_data_lock +EXPORT_SYMBOL vmlinux 0x84ffea8b idr_preload +EXPORT_SYMBOL vmlinux 0x8509c540 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0x850a7c08 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x8518eca9 param_get_short +EXPORT_SYMBOL vmlinux 0x851e115a __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x853bf7c1 param_set_int +EXPORT_SYMBOL vmlinux 0x8541bccc intercept_table +EXPORT_SYMBOL vmlinux 0x854859db agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x854e1c0b sg_nents +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x858d7040 skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0x858f25b2 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x859e059e genphy_read_status +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85d1794a cdev_init +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e0a849 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x864464f0 pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x86629a28 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x868c85d2 freeze_super +EXPORT_SYMBOL vmlinux 0x869f52ea skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86b6744d eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0x86c56b95 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x86ce035b dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook +EXPORT_SYMBOL vmlinux 0x86dcc6d2 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x86e4f74e abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x87163aa1 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x871f69b3 netif_device_detach +EXPORT_SYMBOL vmlinux 0x87649dd8 d_rehash +EXPORT_SYMBOL vmlinux 0x87740320 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x87751c93 kfree_skb_list +EXPORT_SYMBOL vmlinux 0x8779a34f param_ops_byte +EXPORT_SYMBOL vmlinux 0x877e4dfd blk_delay_queue +EXPORT_SYMBOL vmlinux 0x8787f7ba xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87930b52 blk_init_queue +EXPORT_SYMBOL vmlinux 0x8798e453 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x87c1e18d __devm_request_region +EXPORT_SYMBOL vmlinux 0x87cc13eb blk_rq_init +EXPORT_SYMBOL vmlinux 0x87e3b792 elv_rb_del +EXPORT_SYMBOL vmlinux 0x87ef0a6b netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x880a257d xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x88513970 param_set_byte +EXPORT_SYMBOL vmlinux 0x887cd67c ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x888d63b5 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x8893d49e serio_reconnect +EXPORT_SYMBOL vmlinux 0x88d05db8 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x88eab9de tcp_disconnect +EXPORT_SYMBOL vmlinux 0x88eca379 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x88fb2918 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x88ffc1ad release_pages +EXPORT_SYMBOL vmlinux 0x8914b192 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x891fbb10 mempool_destroy +EXPORT_SYMBOL vmlinux 0x8922ce8e of_phy_find_device +EXPORT_SYMBOL vmlinux 0x8934ff52 sk_stream_error +EXPORT_SYMBOL vmlinux 0x89404ca2 blk_start_request +EXPORT_SYMBOL vmlinux 0x8949693b input_inject_event +EXPORT_SYMBOL vmlinux 0x8953f8ff __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x8962c053 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x8975c99e pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x89797060 _raw_read_lock +EXPORT_SYMBOL vmlinux 0x897cdd2b max8925_set_bits +EXPORT_SYMBOL vmlinux 0x897f061d downgrade_write +EXPORT_SYMBOL vmlinux 0x89947bff md_finish_reshape +EXPORT_SYMBOL vmlinux 0x899b864f netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x89a1641e pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x89a8b462 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x89b3107b isa_mem_base +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x8a06b48e set_security_override +EXPORT_SYMBOL vmlinux 0x8a073bde mmc_stop_bkops +EXPORT_SYMBOL vmlinux 0x8a1ab4ee timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8a2160b6 bio_pair_release +EXPORT_SYMBOL vmlinux 0x8a45a2f9 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a51d565 quota_send_warning +EXPORT_SYMBOL vmlinux 0x8a79fd6c xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a876f54 ida_init +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aacfd3b elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x8ab2fe99 phy_attach_direct +EXPORT_SYMBOL vmlinux 0x8ab4079e atomic64_add +EXPORT_SYMBOL vmlinux 0x8ab7bca2 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x8acdacc3 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x8ae4c3c1 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x8b196b3a genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b21b230 dev_driver_string +EXPORT_SYMBOL vmlinux 0x8b413756 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x8b43159b register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x8b5a7e31 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x8b618af2 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b7c776a inet_put_port +EXPORT_SYMBOL vmlinux 0x8b7de1fa key_task_permission +EXPORT_SYMBOL vmlinux 0x8bb1b84a iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x8bd89f9c blk_mq_run_queues +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c21d0bf tty_unlock_pair +EXPORT_SYMBOL vmlinux 0x8c3d2ac1 __serio_register_port +EXPORT_SYMBOL vmlinux 0x8c4e121b pci_fixup_device +EXPORT_SYMBOL vmlinux 0x8c637d43 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x8c6e631f skb_copy_expand +EXPORT_SYMBOL vmlinux 0x8c7827b6 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x8c8b5ec3 netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL vmlinux 0x8c95e68c xfrm_state_add +EXPORT_SYMBOL vmlinux 0x8c9cc4bb init_net +EXPORT_SYMBOL vmlinux 0x8ca8e9d6 __invalidate_device +EXPORT_SYMBOL vmlinux 0x8cabf479 bdget +EXPORT_SYMBOL vmlinux 0x8cadd35c dcache_dir_close +EXPORT_SYMBOL vmlinux 0x8cbef80e scsi_add_device +EXPORT_SYMBOL vmlinux 0x8cbfb401 writeback_in_progress +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cd23651 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x8cd245cf pci_find_bus +EXPORT_SYMBOL vmlinux 0x8d015dd4 __bswapdi2 +EXPORT_SYMBOL vmlinux 0x8d0c6f53 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x8d0da2e3 d_instantiate +EXPORT_SYMBOL vmlinux 0x8d1412d6 phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0x8d16dc77 flush_hash_entry +EXPORT_SYMBOL vmlinux 0x8d2b3f69 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x8d2e268b param_ops_ulong +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d630df8 __module_get +EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper +EXPORT_SYMBOL vmlinux 0x8d81c3df pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0x8d953490 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x8db0e5ee pcim_pin_device +EXPORT_SYMBOL vmlinux 0x8dd9c650 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x8de0b5ac mempool_create +EXPORT_SYMBOL vmlinux 0x8df5da63 memstart_addr +EXPORT_SYMBOL vmlinux 0x8e033efc vfs_readlink +EXPORT_SYMBOL vmlinux 0x8e0d66f4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x8e2267f5 should_remove_suid +EXPORT_SYMBOL vmlinux 0x8e2f2694 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x8e34aea7 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x8e72f0ae sock_init_data +EXPORT_SYMBOL vmlinux 0x8e856b98 dquot_file_open +EXPORT_SYMBOL vmlinux 0x8e864a86 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x8e8704d3 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x8ec04552 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x8ecdff41 devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x8ee6eebe filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x8efe7463 _dev_info +EXPORT_SYMBOL vmlinux 0x8f045d1c cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x8f048243 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x8f5e65bc phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x8f8007ff mfd_add_devices +EXPORT_SYMBOL vmlinux 0x8f85f835 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x8fa41bbe netpoll_print_options +EXPORT_SYMBOL vmlinux 0x8faa4598 of_translate_address +EXPORT_SYMBOL vmlinux 0x8faa7a00 elv_add_request +EXPORT_SYMBOL vmlinux 0x8fba964f cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x8fbc4d30 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x8fbf37e0 profile_pc +EXPORT_SYMBOL vmlinux 0x8fdf3b1b gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x9014377e ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x9022bcf5 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x9024d48a xfrm_lookup +EXPORT_SYMBOL vmlinux 0x90276e46 key_alloc +EXPORT_SYMBOL vmlinux 0x903974dd adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0x9048309b tcp_proto_cgroup +EXPORT_SYMBOL vmlinux 0x90501868 transfer_to_handler +EXPORT_SYMBOL vmlinux 0x905e6c43 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x90695baa tty_lock_pair +EXPORT_SYMBOL vmlinux 0x9074a86c fsync_bdev +EXPORT_SYMBOL vmlinux 0x90794ab0 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x9087a3cf dm_unregister_target +EXPORT_SYMBOL vmlinux 0x908b53ed param_set_short +EXPORT_SYMBOL vmlinux 0x90c5e819 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x90d77671 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc +EXPORT_SYMBOL vmlinux 0x90e57c40 replace_mount_options +EXPORT_SYMBOL vmlinux 0x90ec7abc iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x90f8eae7 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x910e93f2 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x91132437 netdev_master_upper_dev_link_private +EXPORT_SYMBOL vmlinux 0x91182a92 noop_llseek +EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay +EXPORT_SYMBOL vmlinux 0x913624f1 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x91422069 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x91471967 input_register_handler +EXPORT_SYMBOL vmlinux 0x914bc93f __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x918320af skb_make_writable +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x91ade3e6 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x91aee227 generic_setxattr +EXPORT_SYMBOL vmlinux 0x92070db7 block_write_full_page +EXPORT_SYMBOL vmlinux 0x920b291b tcp_shutdown +EXPORT_SYMBOL vmlinux 0x9218ddb8 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x921b7e96 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923bec41 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x92501964 devfreq_add_device +EXPORT_SYMBOL vmlinux 0x925520d2 blk_start_plug +EXPORT_SYMBOL vmlinux 0x925ed999 sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0x9274d5c3 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x927e8195 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x928c301a set_create_files_as +EXPORT_SYMBOL vmlinux 0x929745fc d_add_ci +EXPORT_SYMBOL vmlinux 0x92a9c60c time_to_tm +EXPORT_SYMBOL vmlinux 0x92bc220b lockref_get +EXPORT_SYMBOL vmlinux 0x92ca01e3 migrate_page +EXPORT_SYMBOL vmlinux 0x92ca0e88 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x92dabb24 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x92e6da79 skb_queue_head +EXPORT_SYMBOL vmlinux 0x92f935c2 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x92fee09e udp_disconnect +EXPORT_SYMBOL vmlinux 0x93047cd7 blk_mq_free_queue +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93062586 __bforget +EXPORT_SYMBOL vmlinux 0x9309de94 cuda_request +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x9330cb9f sg_alloc_table +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x9376a2f8 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid +EXPORT_SYMBOL vmlinux 0x9393c2f6 pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x9395b94b pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93ad6917 fbcon_rotate_ccw +EXPORT_SYMBOL vmlinux 0x93b31c48 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93bc3f99 dquot_enable +EXPORT_SYMBOL vmlinux 0x93d261cd ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x93f60980 handle_edge_irq +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x94019020 genphy_update_link +EXPORT_SYMBOL vmlinux 0x9409725a pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0x940c12b7 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x940d66c5 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x942c9342 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x944e3fc5 d_find_any_alias +EXPORT_SYMBOL vmlinux 0x946a94ab km_query +EXPORT_SYMBOL vmlinux 0x9470cf87 pci_bus_put +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x9496adc5 netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0x94b400e1 phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0x94bcef09 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x94bfb659 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x94c18440 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x94c784c9 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x94caf1ec netpoll_setup +EXPORT_SYMBOL vmlinux 0x94cbd061 dql_reset +EXPORT_SYMBOL vmlinux 0x94d818ef set_bdi_congested +EXPORT_SYMBOL vmlinux 0x94de7c36 d_genocide +EXPORT_SYMBOL vmlinux 0x9508f166 param_ops_bint +EXPORT_SYMBOL vmlinux 0x9514151a _mcount +EXPORT_SYMBOL vmlinux 0x9514a0c0 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x9515799b tty_do_resize +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +EXPORT_SYMBOL vmlinux 0x953b691d blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954926fb ihold +EXPORT_SYMBOL vmlinux 0x95503ae4 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x9556acfb blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x957b125b module_refcount +EXPORT_SYMBOL vmlinux 0x95c085c4 vfs_unlink +EXPORT_SYMBOL vmlinux 0x95cb929c of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x95e6e500 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x962078ab scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x963c94f1 fb_set_var +EXPORT_SYMBOL vmlinux 0x96404237 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x964486df igrab +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x96583d0e skb_flow_dissect +EXPORT_SYMBOL vmlinux 0x9675bcf1 pci_set_ltr +EXPORT_SYMBOL vmlinux 0x96881b3f __napi_complete +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x968b34fe linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x96b2676a user_revoke +EXPORT_SYMBOL vmlinux 0x96b4a0bd lock_sock_nested +EXPORT_SYMBOL vmlinux 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d205eb devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0x96dbcca2 ioremap_prot +EXPORT_SYMBOL vmlinux 0x96e00316 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x96f21f60 __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0x96f31659 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0x96f8a500 bh_submit_read +EXPORT_SYMBOL vmlinux 0x970e3f13 skb_unlink +EXPORT_SYMBOL vmlinux 0x97235ebc dev_close +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x972b4e94 uart_register_driver +EXPORT_SYMBOL vmlinux 0x97366245 kmalloc_dma_caches +EXPORT_SYMBOL vmlinux 0x973c01a2 tcp_prequeue +EXPORT_SYMBOL vmlinux 0x973ecb71 set_bh_page +EXPORT_SYMBOL vmlinux 0x97413f3d bio_copy_data +EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x97796460 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x97942732 sock_update_memcg +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x97a37e51 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x97a60e3d param_get_bool +EXPORT_SYMBOL vmlinux 0x97b4500c __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x97cdb4ea input_reset_device +EXPORT_SYMBOL vmlinux 0x97d3bf4c skb_store_bits +EXPORT_SYMBOL vmlinux 0x97ddbf59 key_invalidate +EXPORT_SYMBOL vmlinux 0x97df6353 default_qdisc_ops +EXPORT_SYMBOL vmlinux 0x97e36a3d __bread +EXPORT_SYMBOL vmlinux 0x97fd78af xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x98031cda __put_cred +EXPORT_SYMBOL vmlinux 0x9804c550 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x98147e27 neigh_table_init +EXPORT_SYMBOL vmlinux 0x981661a0 __idr_get_new_above +EXPORT_SYMBOL vmlinux 0x981c70f1 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x9832add7 input_free_device +EXPORT_SYMBOL vmlinux 0x9843deff devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x985193f1 __breadahead +EXPORT_SYMBOL vmlinux 0x986308c9 blk_start_queue +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x9872213a mount_ns +EXPORT_SYMBOL vmlinux 0x987b9654 kobject_del +EXPORT_SYMBOL vmlinux 0x9883bda7 bio_clone_bioset +EXPORT_SYMBOL vmlinux 0x98995440 pipe_unlock +EXPORT_SYMBOL vmlinux 0x98b4083b skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x98b51b03 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x98bf70f6 bdgrab +EXPORT_SYMBOL vmlinux 0x98c9a731 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x98cd2f46 __mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x98cf44b2 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x98ef5d26 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x98fe7882 DMA_MODE_READ +EXPORT_SYMBOL vmlinux 0x991e251c __scm_send +EXPORT_SYMBOL vmlinux 0x9950da9a sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x99591a7a ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x995e8e8c get_phy_device +EXPORT_SYMBOL vmlinux 0x996eb578 proc_symlink +EXPORT_SYMBOL vmlinux 0x9975f8d7 misc_register +EXPORT_SYMBOL vmlinux 0x99948be2 fasync_helper +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99afe916 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x99b322fc udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99c8abf6 netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99e8bde2 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1fc4b4 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9a32d465 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x9a340549 lock_rename +EXPORT_SYMBOL vmlinux 0x9a37f55c tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x9a3ff3e5 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x9a626734 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x9a79053f nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x9a7c70cc dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x9a9eaeab mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0x9aa63a49 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x9aa91c82 skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0x9ab73c24 devm_gpiod_get +EXPORT_SYMBOL vmlinux 0x9b06a402 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x9b10485a agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x9b167ab7 loop_backing_file +EXPORT_SYMBOL vmlinux 0x9b21135c tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x9b2b1918 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b33e826 user_path_at +EXPORT_SYMBOL vmlinux 0x9b357410 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b4c9af7 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b6f3559 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x9b8b88d7 udp_del_offload +EXPORT_SYMBOL vmlinux 0x9b9e05f9 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bbf4023 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x9bca0083 inode_dio_done +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9bd18505 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x9be7bde4 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x9be84a19 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x9be95e77 vlan_untag +EXPORT_SYMBOL vmlinux 0x9c0ac687 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x9c0ef987 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x9c169a99 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x9c1f754e dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x9c33ef65 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x9c4ad63f ps2_handle_response +EXPORT_SYMBOL vmlinux 0x9c67a1dc dev_mc_add +EXPORT_SYMBOL vmlinux 0x9c67c511 dqput +EXPORT_SYMBOL vmlinux 0x9c76e915 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x9c8a90cd nlmsg_notify +EXPORT_SYMBOL vmlinux 0x9ca2ad39 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9cb48e79 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x9ccd7aea sock_edemux +EXPORT_SYMBOL vmlinux 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cef3cc5 __idr_remove_all +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d04d7a7 rtas +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs +EXPORT_SYMBOL vmlinux 0x9d1cb5f4 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x9d2d8894 dev_trans_start +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d522c9a blk_make_request +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d7ce8dd _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x9d81e9fd dev_load +EXPORT_SYMBOL vmlinux 0x9d876638 from_kuid_munged +EXPORT_SYMBOL vmlinux 0x9d90f95f __crc32c_le_combine +EXPORT_SYMBOL vmlinux 0x9dcd38b7 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x9de13322 d_splice_alias +EXPORT_SYMBOL vmlinux 0x9deb2da4 netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0x9df7b3ce mpage_readpages +EXPORT_SYMBOL vmlinux 0x9dfe7307 lz4_decompress_unknownoutputsize +EXPORT_SYMBOL vmlinux 0x9e0be372 ip6_route_output +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e1cfc90 ioremap_wc +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e33ea97 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x9e3eaf05 iterate_dir +EXPORT_SYMBOL vmlinux 0x9e44b9b7 of_get_next_available_child +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e6433d4 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x9e672ff6 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x9e6d55e3 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x9e7514f0 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ebe8910 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x9ecd6c6b jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x9ed2eec7 param_set_ushort +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9f070641 clear_nlink +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f3d1cfc netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f568fde inet_del_offload +EXPORT_SYMBOL vmlinux 0x9f6fae5f frontswap_register_ops +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fbe23aa vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0x9fc6107f skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x9fd6c4c5 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe7cb58 md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0x9fe889df blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0xa02b3228 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0xa0461c6f neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa04c6ef9 registered_fb +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa063baad blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa076a0a7 skb_pad +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa095a32c twl6040_set_pll +EXPORT_SYMBOL vmlinux 0xa0966e4b unregister_shrinker +EXPORT_SYMBOL vmlinux 0xa09cfeb4 phy_driver_register +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0bebc83 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xa0c651ee ipmi_smi_add_proc_entry +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0dad88e netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0f56f16 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa11b2c55 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa12aaad9 block_commit_write +EXPORT_SYMBOL vmlinux 0xa140072c dev_err +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa1469218 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa1594cbd tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xa160d4a4 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xa1626bc5 tty_port_init +EXPORT_SYMBOL vmlinux 0xa1647049 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1c949a1 vfs_getattr +EXPORT_SYMBOL vmlinux 0xa1c99385 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xa1e87403 inet_del_protocol +EXPORT_SYMBOL vmlinux 0xa1f0a84b twl6040_set_bits +EXPORT_SYMBOL vmlinux 0xa1f8fe75 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xa20a7ada pci_enable_obff +EXPORT_SYMBOL vmlinux 0xa20c1488 page_address +EXPORT_SYMBOL vmlinux 0xa20c23f6 ipmi_smi_watcher_unregister +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa2140b86 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0xa2301edc tcp_ioctl +EXPORT_SYMBOL vmlinux 0xa246efb3 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xa25e40f1 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0xa283fb81 sk_stop_timer +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL vmlinux 0xa2983111 mmc_add_host +EXPORT_SYMBOL vmlinux 0xa29ff92d pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register +EXPORT_SYMBOL vmlinux 0xa2c02272 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xa2ca5ad0 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xa2e8a1df __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2fe99f6 simple_dir_operations +EXPORT_SYMBOL vmlinux 0xa303d1ff dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0xa3240813 kernel_write +EXPORT_SYMBOL vmlinux 0xa32efde0 __dst_free +EXPORT_SYMBOL vmlinux 0xa332464a of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xa344f77f I_BDEV +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa36b0b88 devm_gpio_free +EXPORT_SYMBOL vmlinux 0xa38e691a ioremap_bot +EXPORT_SYMBOL vmlinux 0xa397a680 __f_setown +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa39ff5fc follow_down +EXPORT_SYMBOL vmlinux 0xa3a010f8 ip_defrag +EXPORT_SYMBOL vmlinux 0xa3abc422 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xa3b4853a pci_get_slot +EXPORT_SYMBOL vmlinux 0xa3bab15d dev_uc_flush +EXPORT_SYMBOL vmlinux 0xa3e75545 flush_tlb_kernel_range +EXPORT_SYMBOL vmlinux 0xa43b1297 vscnprintf +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa4701e9e timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0xa48d7543 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xa4a94d26 find_next_bit_le +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4c16712 of_device_unregister +EXPORT_SYMBOL vmlinux 0xa4d24c8d ata_dev_printk +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4d6bebf read_cache_page_async +EXPORT_SYMBOL vmlinux 0xa4e10957 inet_frag_kill +EXPORT_SYMBOL vmlinux 0xa4f979c8 blkdev_fsync +EXPORT_SYMBOL vmlinux 0xa4fcaa61 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0xa516953e fddi_type_trans +EXPORT_SYMBOL vmlinux 0xa51dffe1 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xa54d07e7 devm_gpiod_get_index +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa558e378 unregister_cdrom +EXPORT_SYMBOL vmlinux 0xa55a56f4 pci_clear_master +EXPORT_SYMBOL vmlinux 0xa589adc9 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a633b9 sg_last +EXPORT_SYMBOL vmlinux 0xa5ad437f scsi_register_driver +EXPORT_SYMBOL vmlinux 0xa5bb382a unlock_new_inode +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5e7f5d7 mpage_writepage +EXPORT_SYMBOL vmlinux 0xa5edc125 dqget +EXPORT_SYMBOL vmlinux 0xa5fe04ea __register_binfmt +EXPORT_SYMBOL vmlinux 0xa6330f0d splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xa63a2f9b param_get_ulong +EXPORT_SYMBOL vmlinux 0xa6437e9a mmc_put_card +EXPORT_SYMBOL vmlinux 0xa652c4ef __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa65d65bd neigh_connected_output +EXPORT_SYMBOL vmlinux 0xa6606790 account_page_writeback +EXPORT_SYMBOL vmlinux 0xa665e2f9 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xa6715115 do_settimeofday +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6879d4c inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa6a0d49d __brelse +EXPORT_SYMBOL vmlinux 0xa6bf2a6f security_inode_readlink +EXPORT_SYMBOL vmlinux 0xa6c29702 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xa6d306b5 __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xa6e7fc61 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0xa6e8017a dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0xa6f91326 inet_bind +EXPORT_SYMBOL vmlinux 0xa713f5af tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xa716b21d sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xa71a6038 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xa71e35b3 always_delete_dentry +EXPORT_SYMBOL vmlinux 0xa720678c lg_global_lock +EXPORT_SYMBOL vmlinux 0xa735db59 prandom_u32 +EXPORT_SYMBOL vmlinux 0xa73fc98f of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xa7583d77 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xa774ce95 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xa778f634 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL vmlinux 0xa7a12b4d scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0xa7a3066d agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0xa7dff678 unregister_console +EXPORT_SYMBOL vmlinux 0xa7e41344 fifo_set_limit +EXPORT_SYMBOL vmlinux 0xa7ec7896 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xa7ff22f2 blk_free_tags +EXPORT_SYMBOL vmlinux 0xa80de5a6 override_creds +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa82922a6 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xa83fcfc8 simple_dentry_operations +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa856a21a scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xa85f4735 pci_scan_slot +EXPORT_SYMBOL vmlinux 0xa861ab6e __ioremap +EXPORT_SYMBOL vmlinux 0xa8721b97 system_state +EXPORT_SYMBOL vmlinux 0xa8727aaa scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xa8880eda mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0xa89464b7 __ashldi3 +EXPORT_SYMBOL vmlinux 0xa89efd64 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xa8ccf264 register_nls +EXPORT_SYMBOL vmlinux 0xa8e623c6 i2c_transfer +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa91b3a54 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xa91ffbfe uart_update_timeout +EXPORT_SYMBOL vmlinux 0xa9273e1a epapr_hypercall_start +EXPORT_SYMBOL vmlinux 0xa935a753 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xa954164d __break_lease +EXPORT_SYMBOL vmlinux 0xa9571d6d DMA_MODE_WRITE +EXPORT_SYMBOL vmlinux 0xa9a9d790 pci_pme_active +EXPORT_SYMBOL vmlinux 0xa9b63345 of_parse_phandle_with_fixed_args +EXPORT_SYMBOL vmlinux 0xa9c1a439 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xa9c83bb4 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xa9d9a2ef napi_get_frags +EXPORT_SYMBOL vmlinux 0xa9e730ef vfs_link +EXPORT_SYMBOL vmlinux 0xa9e93e28 tty_port_close_start +EXPORT_SYMBOL vmlinux 0xa9effda5 __first_cpu +EXPORT_SYMBOL vmlinux 0xa9ffe6d4 find_or_create_page +EXPORT_SYMBOL vmlinux 0xaa16701d would_dump +EXPORT_SYMBOL vmlinux 0xaa29ed2e dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xaa2bcd08 freezing_slow_path +EXPORT_SYMBOL vmlinux 0xaa2cca5e scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xaa46e87e lg_local_unlock +EXPORT_SYMBOL vmlinux 0xaa4df512 pmu_batteries +EXPORT_SYMBOL vmlinux 0xaa56d65d mntget +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa6e4df5 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa881fc3 from_kgid +EXPORT_SYMBOL vmlinux 0xaa9087c0 param_ops_string +EXPORT_SYMBOL vmlinux 0xaaa3f6fa dma_sync_wait +EXPORT_SYMBOL vmlinux 0xaaaa3c65 unregister_key_type +EXPORT_SYMBOL vmlinux 0xaaafeccd seq_write +EXPORT_SYMBOL vmlinux 0xaac3621e security_inode_permission +EXPORT_SYMBOL vmlinux 0xaac56fff contig_page_data +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab000d03 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0xab336631 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xab49b086 clocksource_unregister +EXPORT_SYMBOL vmlinux 0xab4e9b39 dst_destroy +EXPORT_SYMBOL vmlinux 0xab607227 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0xab652330 set_device_ro +EXPORT_SYMBOL vmlinux 0xab694444 bsearch +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab7207d6 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xab86331a qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xaba03807 tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0xabc6dd63 cpufreq_sysfs_create_file +EXPORT_SYMBOL vmlinux 0xabca9675 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabd86c99 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xac055ba8 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac0c15a9 input_event +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac26b820 _raw_write_lock +EXPORT_SYMBOL vmlinux 0xac596705 poll_freewait +EXPORT_SYMBOL vmlinux 0xac9f779d netlink_unicast +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacb9c961 scsi_remove_device +EXPORT_SYMBOL vmlinux 0xacbf8bda eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0xacc5b5d2 csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacdbe5d2 dma_find_channel +EXPORT_SYMBOL vmlinux 0xace3fe9b put_tty_driver +EXPORT_SYMBOL vmlinux 0xace67d4d kthread_stop +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0a6e0a flex_array_prealloc +EXPORT_SYMBOL vmlinux 0xad1d784e bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0xad26e1e1 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xad34c701 mntput +EXPORT_SYMBOL vmlinux 0xad46dec2 of_count_phandle_with_args +EXPORT_SYMBOL vmlinux 0xad50cebb i8253_lock +EXPORT_SYMBOL vmlinux 0xad5d435f pci_iounmap +EXPORT_SYMBOL vmlinux 0xad5f1c00 input_set_keycode +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad8c14e7 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xad8f5ba6 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0xadd1e971 alignment_exception +EXPORT_SYMBOL vmlinux 0xadd4049a kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0xadd4fa65 netpoll_rx_enable +EXPORT_SYMBOL vmlinux 0xadd98f37 xfrm_state_update +EXPORT_SYMBOL vmlinux 0xaddd4770 __debugger_iabr_match +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xae36a8fc scsi_scan_target +EXPORT_SYMBOL vmlinux 0xae3c98e7 dquot_disable +EXPORT_SYMBOL vmlinux 0xae545f06 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xae581fc3 tty_hangup +EXPORT_SYMBOL vmlinux 0xae5b2e29 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xae622b69 vlan_vid_add +EXPORT_SYMBOL vmlinux 0xae729e59 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0xae7c8f8c unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xaea0cfc0 pmac_suspend_agp_for_card +EXPORT_SYMBOL vmlinux 0xaeba601b ps2_command +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaefe1e37 dev_activate +EXPORT_SYMBOL vmlinux 0xaf05b91b of_device_is_available +EXPORT_SYMBOL vmlinux 0xaf063510 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xaf0ee317 generic_permission +EXPORT_SYMBOL vmlinux 0xaf28b0b5 input_set_abs_params +EXPORT_SYMBOL vmlinux 0xaf2d3648 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0xaf2d872c prepare_to_wait +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL vmlinux 0xaf90807e generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf962bfc skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xaf9c419f udp_seq_open +EXPORT_SYMBOL vmlinux 0xafa9864c simple_getattr +EXPORT_SYMBOL vmlinux 0xafad493b param_ops_ushort +EXPORT_SYMBOL vmlinux 0xafb67683 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xafc9f67c km_report +EXPORT_SYMBOL vmlinux 0xafcf1d5a arp_tbl +EXPORT_SYMBOL vmlinux 0xafd68c33 flex_array_free +EXPORT_SYMBOL vmlinux 0xaffee586 notify_change +EXPORT_SYMBOL vmlinux 0xafff3d1d mempool_alloc +EXPORT_SYMBOL vmlinux 0xb0381d79 blk_put_queue +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb071d4d3 ppp_channel_index +EXPORT_SYMBOL vmlinux 0xb08f1921 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0bc9542 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e2cf59 skb_find_text +EXPORT_SYMBOL vmlinux 0xb0ffda2f blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xb105cd45 blk_end_request_all +EXPORT_SYMBOL vmlinux 0xb10cad07 netdev_notice +EXPORT_SYMBOL vmlinux 0xb1204d2e dquot_initialize +EXPORT_SYMBOL vmlinux 0xb12a1f90 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xb12a8be0 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb14f0f26 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xb1541b09 eth_header_cache +EXPORT_SYMBOL vmlinux 0xb15ba9e4 pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb17cf914 aio_complete +EXPORT_SYMBOL vmlinux 0xb18be8a4 generic_file_remap_pages +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c6e787 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1cf44df fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xb1db9e4e param_get_invbool +EXPORT_SYMBOL vmlinux 0xb209fd4a security_path_chmod +EXPORT_SYMBOL vmlinux 0xb222235a fget_raw +EXPORT_SYMBOL vmlinux 0xb233762c atomic64_set +EXPORT_SYMBOL vmlinux 0xb24e3ec2 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xb24f0a40 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0xb25589e8 seq_printf +EXPORT_SYMBOL vmlinux 0xb267322d phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb277358e __seq_open_private +EXPORT_SYMBOL vmlinux 0xb29a10c5 genl_unregister_family +EXPORT_SYMBOL vmlinux 0xb2a41af8 rtnl_notify +EXPORT_SYMBOL vmlinux 0xb2b94674 __crc32c_le +EXPORT_SYMBOL vmlinux 0xb2be6e92 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xb2c31938 bio_alloc_pages +EXPORT_SYMBOL vmlinux 0xb2ccf02a xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xb2d48a2e queue_work_on +EXPORT_SYMBOL vmlinux 0xb304acff ida_get_new_above +EXPORT_SYMBOL vmlinux 0xb31526ee sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0xb31f8c90 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0xb3258f32 pmac_resume_agp_for_card +EXPORT_SYMBOL vmlinux 0xb34eecd6 icmp_send +EXPORT_SYMBOL vmlinux 0xb35833b4 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xb381c1f4 kill_bdev +EXPORT_SYMBOL vmlinux 0xb3a6ea37 scsi_host_put +EXPORT_SYMBOL vmlinux 0xb3c85e32 blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0xb3cc2413 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xb3e35192 commit_creds +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb4474f93 skb_clone +EXPORT_SYMBOL vmlinux 0xb467839b fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb47377c7 __scm_destroy +EXPORT_SYMBOL vmlinux 0xb4890d35 simple_empty +EXPORT_SYMBOL vmlinux 0xb4aedc1a mmc_flush_cache +EXPORT_SYMBOL vmlinux 0xb4d2cc3c i2c_master_send +EXPORT_SYMBOL vmlinux 0xb4dc5637 dev_notice +EXPORT_SYMBOL vmlinux 0xb4e6b28e bio_integrity_split +EXPORT_SYMBOL vmlinux 0xb4f2bf20 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xb5055d1f dump_align +EXPORT_SYMBOL vmlinux 0xb53a4336 kmap_pte +EXPORT_SYMBOL vmlinux 0xb5430426 soft_cursor +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54e4cfd blk_queue_bounce +EXPORT_SYMBOL vmlinux 0xb569fa9e rfkill_alloc +EXPORT_SYMBOL vmlinux 0xb57343c2 frontswap_shrink +EXPORT_SYMBOL vmlinux 0xb57aa548 qdisc_reset +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5a4a09d __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5ab156e inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xb5d2b42d make_bad_inode +EXPORT_SYMBOL vmlinux 0xb5d9454c printk_emit +EXPORT_SYMBOL vmlinux 0xb5e8f060 netdev_update_features +EXPORT_SYMBOL vmlinux 0xb625d7c6 set_groups +EXPORT_SYMBOL vmlinux 0xb63084e8 fd_install +EXPORT_SYMBOL vmlinux 0xb633c961 genl_notify +EXPORT_SYMBOL vmlinux 0xb6367109 truncate_setsize +EXPORT_SYMBOL vmlinux 0xb6394d4b param_set_bint +EXPORT_SYMBOL vmlinux 0xb64254b4 skb_append +EXPORT_SYMBOL vmlinux 0xb6599b9a machine_check_exception +EXPORT_SYMBOL vmlinux 0xb671d6f0 kern_unmount +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb6914bdd kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb6a18c44 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xb6a1d792 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6b46a7c param_ops_int +EXPORT_SYMBOL vmlinux 0xb6be7043 load_nls +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cdacb5 save_mount_options +EXPORT_SYMBOL vmlinux 0xb6de74f2 request_firmware +EXPORT_SYMBOL vmlinux 0xb6f4dc31 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xb6f597de kernel_listen +EXPORT_SYMBOL vmlinux 0xb6f78bba ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xb726543c blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xb73360f4 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xb73c7fa0 pci_restore_state +EXPORT_SYMBOL vmlinux 0xb753bcc8 __ashrdi3 +EXPORT_SYMBOL vmlinux 0xb77131b1 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xb7776790 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xb79a4e1a store_fp_state +EXPORT_SYMBOL vmlinux 0xb7a99781 __irq_regs +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7c1f6f5 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0xb7d60cc9 dev_printk +EXPORT_SYMBOL vmlinux 0xb801f40b scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xb8144779 inode_init_once +EXPORT_SYMBOL vmlinux 0xb81960ca snprintf +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb8398681 crypto_sha512_update +EXPORT_SYMBOL vmlinux 0xb8534275 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0xb874b87a __clzsi2 +EXPORT_SYMBOL vmlinux 0xb886be86 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xb88c2cd8 page_put_link +EXPORT_SYMBOL vmlinux 0xb88e175b pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xb8950e0c blk_sync_queue +EXPORT_SYMBOL vmlinux 0xb8a4b082 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8ab5f1c wait_iff_congested +EXPORT_SYMBOL vmlinux 0xb8b64a56 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xb8d53080 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xb8d73e97 param_set_uint +EXPORT_SYMBOL vmlinux 0xb8dee498 dma_direct_ops +EXPORT_SYMBOL vmlinux 0xb8e877e7 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xb8eee951 bdi_register +EXPORT_SYMBOL vmlinux 0xb8f59fbb vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xb91c3f41 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xb91ce17a agp_create_memory +EXPORT_SYMBOL vmlinux 0xb9213db7 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xb93fcba8 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xb94a1f61 nobh_write_begin +EXPORT_SYMBOL vmlinux 0xb959e1c9 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xb9884bb4 release_firmware +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9a4bd55 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xb9a6178f free_task +EXPORT_SYMBOL vmlinux 0xb9a81f7e phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0xb9ca7c36 flush_signals +EXPORT_SYMBOL vmlinux 0xb9d168b2 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xb9e8e2cc in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0xb9f8d2fa mmc_can_reset +EXPORT_SYMBOL vmlinux 0xba0a2489 tcf_register_action +EXPORT_SYMBOL vmlinux 0xba0e6c86 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba50c37e __frontswap_store +EXPORT_SYMBOL vmlinux 0xba812e29 netdev_warn +EXPORT_SYMBOL vmlinux 0xba90d3fa sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xba9358ab md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xba9bee2d flush_icache_user_range +EXPORT_SYMBOL vmlinux 0xbaa1af30 __netif_schedule +EXPORT_SYMBOL vmlinux 0xbad0f0ce mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xbad770e1 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xbafd2b61 ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0xbafe9282 scsi_print_command +EXPORT_SYMBOL vmlinux 0xbb0cfeca kset_unregister +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb2559f1 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xbb4cc259 tty_mutex +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb6c5c56 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0xbb713e6d sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0xbb7c1bf8 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbb065ea bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xbbba32df inet6_protos +EXPORT_SYMBOL vmlinux 0xbbdae74e block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xbbedd290 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xbc1d4810 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc3f6afa down_read +EXPORT_SYMBOL vmlinux 0xbc401e47 nf_log_packet +EXPORT_SYMBOL vmlinux 0xbc42ffbb cfb_imageblit +EXPORT_SYMBOL vmlinux 0xbc61980e dev_addr_init +EXPORT_SYMBOL vmlinux 0xbc66b1b5 update_time +EXPORT_SYMBOL vmlinux 0xbc800390 vfs_llseek +EXPORT_SYMBOL vmlinux 0xbca21d60 kfree_skb +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcc7d96c dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xbccdc2f6 flex_array_put +EXPORT_SYMBOL vmlinux 0xbcdedba7 of_get_mac_address +EXPORT_SYMBOL vmlinux 0xbcf150f9 xor_altivec_5 +EXPORT_SYMBOL vmlinux 0xbcf5de9f jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0xbd291d9c fb_set_suspend +EXPORT_SYMBOL vmlinux 0xbd29e7e2 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xbd335646 mmc_start_bkops +EXPORT_SYMBOL vmlinux 0xbd3db4bc vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0xbd803510 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xbd89b603 mmc_gpio_free_ro +EXPORT_SYMBOL vmlinux 0xbd8d541d flush_hash_pages +EXPORT_SYMBOL vmlinux 0xbd9e5d49 __lshrdi3 +EXPORT_SYMBOL vmlinux 0xbdba9828 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0xbddc033d audit_log +EXPORT_SYMBOL vmlinux 0xbdddc685 update_devfreq +EXPORT_SYMBOL vmlinux 0xbdddf199 input_release_device +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe1f5bed get_disk +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe3a6fea mmc_start_req +EXPORT_SYMBOL vmlinux 0xbe44f842 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xbe4fdcac bio_advance +EXPORT_SYMBOL vmlinux 0xbe580c7f flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe6a3f62 d_set_d_op +EXPORT_SYMBOL vmlinux 0xbe76f039 dev_addr_add +EXPORT_SYMBOL vmlinux 0xbe77aebe down_write_trylock +EXPORT_SYMBOL vmlinux 0xbebb2bbb tcp_check_req +EXPORT_SYMBOL vmlinux 0xbec25473 of_parse_phandle +EXPORT_SYMBOL vmlinux 0xbec39f32 gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf17a5da input_unregister_handler +EXPORT_SYMBOL vmlinux 0xbf3f6d4c proc_set_size +EXPORT_SYMBOL vmlinux 0xbf4a3f1f __getblk +EXPORT_SYMBOL vmlinux 0xbf4cb25c sock_wmalloc +EXPORT_SYMBOL vmlinux 0xbf5f95ef scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfafc83d posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xbfb47885 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0xbfb8b0b7 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfc1b15a bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xbfc6febf blk_integrity_register +EXPORT_SYMBOL vmlinux 0xbfed2d42 alloc_file +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbffb23f2 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xc0014183 pci_enable_msi_range +EXPORT_SYMBOL vmlinux 0xc015f0c3 default_file_splice_read +EXPORT_SYMBOL vmlinux 0xc019083a tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xc01b03c1 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xc04031be grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0a6b6d3 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xc0b0cccc start_tty +EXPORT_SYMBOL vmlinux 0xc0ca8761 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xc0d42fd7 console_start +EXPORT_SYMBOL vmlinux 0xc0d84ced cuda_poll +EXPORT_SYMBOL vmlinux 0xc1101c24 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xc12ec3a6 dns_query +EXPORT_SYMBOL vmlinux 0xc18b8df3 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xc1b82d22 register_shrinker +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1dd4a7f adb_request +EXPORT_SYMBOL vmlinux 0xc1fd5303 skb_try_coalesce +EXPORT_SYMBOL vmlinux 0xc20ca142 key_link +EXPORT_SYMBOL vmlinux 0xc211261a gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xc2357e35 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xc2382252 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc2476837 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc26fa102 vfs_rename +EXPORT_SYMBOL vmlinux 0xc28571a2 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xc28a4256 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xc2a3fab3 kern_path_mountpoint +EXPORT_SYMBOL vmlinux 0xc2a9b260 mmc_gpio_request_cd +EXPORT_SYMBOL vmlinux 0xc2bde154 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xc2d60fb0 netif_napi_add +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f9c045 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xc2fdae61 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xc310de00 pci_enable_msi_block_auto +EXPORT_SYMBOL vmlinux 0xc344ea86 fb_show_logo +EXPORT_SYMBOL vmlinux 0xc34896a5 security_path_mknod +EXPORT_SYMBOL vmlinux 0xc35f86bf blkdev_issue_write_same +EXPORT_SYMBOL vmlinux 0xc368849f nvram_sync +EXPORT_SYMBOL vmlinux 0xc392a831 bprm_change_interp +EXPORT_SYMBOL vmlinux 0xc3efadb7 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xc3f6d68b scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xc41f0516 node_states +EXPORT_SYMBOL vmlinux 0xc4254327 __ps2_command +EXPORT_SYMBOL vmlinux 0xc44b743d tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xc45755de find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0xc471c24e __alloc_skb +EXPORT_SYMBOL vmlinux 0xc47cdf9c _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49ffc71 d_make_root +EXPORT_SYMBOL vmlinux 0xc4a42540 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0xc4cf5798 lock_may_read +EXPORT_SYMBOL vmlinux 0xc4dd5ce1 gen10g_suspend +EXPORT_SYMBOL vmlinux 0xc4e325c5 input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0xc4ed3737 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xc4f1a6f9 inet_select_addr +EXPORT_SYMBOL vmlinux 0xc5135ec5 km_state_expired +EXPORT_SYMBOL vmlinux 0xc53772bb ps2_init +EXPORT_SYMBOL vmlinux 0xc54558fa scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xc5476e06 sk_ns_capable +EXPORT_SYMBOL vmlinux 0xc54dd946 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc55c2a9d inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0xc55de23c percpu_counter_set +EXPORT_SYMBOL vmlinux 0xc5718627 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0xc580f842 qdisc_list_del +EXPORT_SYMBOL vmlinux 0xc589e044 param_set_long +EXPORT_SYMBOL vmlinux 0xc5942c0e thaw_bdev +EXPORT_SYMBOL vmlinux 0xc5cb5418 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5eeb1d3 __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0xc5fdef94 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xc6238a25 nobh_write_end +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc665d6d7 of_parse_phandle_with_args +EXPORT_SYMBOL vmlinux 0xc68a7e3a i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0xc6ad1972 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xc6b22c71 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xc6c3ab90 tty_register_driver +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc7221f86 i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0xc72d25e7 touch_buffer +EXPORT_SYMBOL vmlinux 0xc7431071 dev_remove_offload +EXPORT_SYMBOL vmlinux 0xc74dafea scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xc777517c scsi_unregister +EXPORT_SYMBOL vmlinux 0xc780509b ab3100_event_register +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc78c63ef abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xc795e23e cpu_core_map +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc79edd80 inc_nlink +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7dc625f tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7fb6b9d bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xc8276a79 nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xc8296c72 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xc8339e24 string_unescape +EXPORT_SYMBOL vmlinux 0xc83b4d5b posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xc840d51f macio_dev_get +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0xc897a6aa skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xc8a02910 simple_pin_fs +EXPORT_SYMBOL vmlinux 0xc8af6ec8 block_write_begin +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8b924ee tty_unregister_device +EXPORT_SYMBOL vmlinux 0xc8c5b056 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xc8cc6d79 note_scsi_host +EXPORT_SYMBOL vmlinux 0xc8db8275 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0xc8ee49f1 __devm_release_region +EXPORT_SYMBOL vmlinux 0xc9153c90 blk_init_tags +EXPORT_SYMBOL vmlinux 0xc915a976 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xc91ff664 down_read_trylock +EXPORT_SYMBOL vmlinux 0xc93fbc54 wait_for_completion_io +EXPORT_SYMBOL vmlinux 0xc9530219 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xc95b7609 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xc96248d1 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0xc96f7842 elevator_exit +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9a1d335 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xc9adf8c1 read_dev_sector +EXPORT_SYMBOL vmlinux 0xc9b776e1 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xc9b8c308 __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0xc9b8ed11 touch_atime +EXPORT_SYMBOL vmlinux 0xc9c93c3d vfs_symlink +EXPORT_SYMBOL vmlinux 0xc9e52415 pcie_set_mps +EXPORT_SYMBOL vmlinux 0xc9f8fc94 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0xca115f21 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xca20d107 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xca279f0b revert_creds +EXPORT_SYMBOL vmlinux 0xca2aebaf nobh_writepage +EXPORT_SYMBOL vmlinux 0xca3b28c6 store_vr_state +EXPORT_SYMBOL vmlinux 0xca3ea477 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca5fa76a sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xca6caecf macio_dev_put +EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xcaa1380e twl6040_reg_write +EXPORT_SYMBOL vmlinux 0xcacd272d atomic64_sub_return +EXPORT_SYMBOL vmlinux 0xcad08e48 mmu_hash_lock +EXPORT_SYMBOL vmlinux 0xcadd04b2 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xcaefe510 nf_reinject +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb06947f neigh_direct_output +EXPORT_SYMBOL vmlinux 0xcb0c5d50 param_get_uint +EXPORT_SYMBOL vmlinux 0xcb0d7c85 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xcb0ee67e check_submounts_and_drop +EXPORT_SYMBOL vmlinux 0xcb5f06ce register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xcb742703 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xcb87552e sock_no_accept +EXPORT_SYMBOL vmlinux 0xcba35a18 audit_log_task_info +EXPORT_SYMBOL vmlinux 0xcbb25c66 padata_free +EXPORT_SYMBOL vmlinux 0xcbb6d75b grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xcbbadf61 force_sig +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc39020 register_netdevice +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcc17504d _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xcc17e1e8 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc25c47a tty_port_destroy +EXPORT_SYMBOL vmlinux 0xcc305ee7 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xcc35af9b textsearch_prepare +EXPORT_SYMBOL vmlinux 0xcc37f55c blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xcc4b84da of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xcc4f3684 agp_enable +EXPORT_SYMBOL vmlinux 0xcc4ff7dc vfs_read +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc7b0f8e simple_release_fs +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc9d31f6 km_state_notify +EXPORT_SYMBOL vmlinux 0xccc21f5e input_get_new_minor +EXPORT_SYMBOL vmlinux 0xccc3262d skb_copy +EXPORT_SYMBOL vmlinux 0xcce2981c pci_platform_rom +EXPORT_SYMBOL vmlinux 0xcd0529c7 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd86c87f __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcdcbae2e do_sync_write +EXPORT_SYMBOL vmlinux 0xcdd3bcf3 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0xcdd9bf1b remap_vmalloc_range_partial +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcde3aa8a simple_open +EXPORT_SYMBOL vmlinux 0xcdfa3d87 jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0xcdfcf5ef tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce32ebf3 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce727860 kmem_cache_create +EXPORT_SYMBOL vmlinux 0xce919de4 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xcec97fb1 of_get_ddr_timings +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf115d26 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xcf26f740 netif_skb_dev_features +EXPORT_SYMBOL vmlinux 0xcf3025cb inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0xcf837a81 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xcf999c35 padata_add_cpu +EXPORT_SYMBOL vmlinux 0xcfdb1fb8 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xcfe9a5f2 pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0xcffd74a8 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xd00425a6 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xd0171e8f tty_devnum +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd02efb2e max8998_update_reg +EXPORT_SYMBOL vmlinux 0xd045d51e kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xd06ebe05 dev_change_carrier +EXPORT_SYMBOL vmlinux 0xd0720a17 on_each_cpu_cond +EXPORT_SYMBOL vmlinux 0xd076ef93 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0xd07e2c69 bio_map_user +EXPORT_SYMBOL vmlinux 0xd0833f44 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0xd08f3931 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xd0a45fa5 pmu_enable_irled +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0c067d6 write_one_page +EXPORT_SYMBOL vmlinux 0xd0d08e13 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0d6e108 md_integrity_register +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd10c3452 idr_init +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf +EXPORT_SYMBOL vmlinux 0xd14c07ae dm_register_target +EXPORT_SYMBOL vmlinux 0xd152e27a ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xd1566f72 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xd15a9350 kthread_bind +EXPORT_SYMBOL vmlinux 0xd1816f32 frontswap_writethrough +EXPORT_SYMBOL vmlinux 0xd196c9be kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xd1a90d21 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xd1bc509f file_update_time +EXPORT_SYMBOL vmlinux 0xd1d0dd08 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xd1e3f3c4 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xd1f14f82 flush_tlb_range +EXPORT_SYMBOL vmlinux 0xd1f23ef1 twl6040_power +EXPORT_SYMBOL vmlinux 0xd209310b tty_unlock +EXPORT_SYMBOL vmlinux 0xd220cf8a jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0xd243d5af mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xd24a5748 serio_unregister_port +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd255c689 i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0xd25c28b6 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd2784ac2 netdev_emerg +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd2a45952 ppp_register_channel +EXPORT_SYMBOL vmlinux 0xd2a941d4 sg_init_table +EXPORT_SYMBOL vmlinux 0xd2ac84a7 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xd2af138b reservation_ww_class +EXPORT_SYMBOL vmlinux 0xd2b2b9a3 security_dentry_init_security +EXPORT_SYMBOL vmlinux 0xd2bf9f04 vc_resize +EXPORT_SYMBOL vmlinux 0xd2c40112 pci_write_vpd +EXPORT_SYMBOL vmlinux 0xd2cd5568 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2e123a0 __elv_add_request +EXPORT_SYMBOL vmlinux 0xd2fc19bd proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xd3187da4 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd3b1b3cd tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xd3daea2d nf_afinfo +EXPORT_SYMBOL vmlinux 0xd3e5ec3d scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xd3e6f60d cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xd409383c pmu_request +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd418e9ba simple_fill_super +EXPORT_SYMBOL vmlinux 0xd4222150 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xd42a33c8 arp_create +EXPORT_SYMBOL vmlinux 0xd42bd60a neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xd446aea5 softnet_data +EXPORT_SYMBOL vmlinux 0xd459edd1 tty_set_operations +EXPORT_SYMBOL vmlinux 0xd45f11e9 phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0xd4845f93 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xd4852c72 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0xd4903aeb xfrm_register_type +EXPORT_SYMBOL vmlinux 0xd498f358 sync_blockdev +EXPORT_SYMBOL vmlinux 0xd4c6ee42 fsl_lbc_ctrl_dev +EXPORT_SYMBOL vmlinux 0xd4c94df6 padata_alloc +EXPORT_SYMBOL vmlinux 0xd4dc37af fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xd4dca223 of_device_alloc +EXPORT_SYMBOL vmlinux 0xd4f0b80a tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xd4f97316 da903x_query_status +EXPORT_SYMBOL vmlinux 0xd531a070 bio_integrity_free +EXPORT_SYMBOL vmlinux 0xd535cd28 pci_enable_ltr +EXPORT_SYMBOL vmlinux 0xd554db21 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xd559d609 free_user_ns +EXPORT_SYMBOL vmlinux 0xd56754d5 bio_put +EXPORT_SYMBOL vmlinux 0xd56e27cb page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xd56e7b70 netif_rx +EXPORT_SYMBOL vmlinux 0xd5804442 skb_tx_error +EXPORT_SYMBOL vmlinux 0xd5851b06 pci_select_bars +EXPORT_SYMBOL vmlinux 0xd5a7807c md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xd5b2e52a single_step_exception +EXPORT_SYMBOL vmlinux 0xd5e8444a __div64_32 +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd5f34761 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xd5f5a99e devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0xd5f8b2fe scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0xd5facfc9 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xd6018d20 pci_set_mwi +EXPORT_SYMBOL vmlinux 0xd606503d register_sysctl +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd6177b6f sock_kfree_s +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd648e564 fb_match_mode +EXPORT_SYMBOL vmlinux 0xd6499992 kill_pgrp +EXPORT_SYMBOL vmlinux 0xd64f389e padata_stop +EXPORT_SYMBOL vmlinux 0xd6884533 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd69b30e0 atomic64_add_unless +EXPORT_SYMBOL vmlinux 0xd69dbeb8 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xd6b36b5a kern_path_create +EXPORT_SYMBOL vmlinux 0xd6bddd82 i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0xd6c50273 __inet_stream_connect +EXPORT_SYMBOL vmlinux 0xd6cf3113 devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0xd6cfaa95 ata_link_printk +EXPORT_SYMBOL vmlinux 0xd6d63e9d lg_local_lock_cpu +EXPORT_SYMBOL vmlinux 0xd6ed17f0 mount_bdev +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f73ca8 bdi_unregister +EXPORT_SYMBOL vmlinux 0xd6fd24fc writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xd6ff6057 scsi_ioctl +EXPORT_SYMBOL vmlinux 0xd700f15d pci_set_power_state +EXPORT_SYMBOL vmlinux 0xd71b8dc7 mapping_tagged +EXPORT_SYMBOL vmlinux 0xd71cd985 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xd725d31a deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xd7316633 pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0xd73813d9 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd7638416 dev_addr_flush +EXPORT_SYMBOL vmlinux 0xd763900f udp6_csum_init +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd78ae691 dev_change_flags +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7b48059 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xd7b654fa blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xd7ccd451 phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0xd7e51322 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd7ed5f5e give_up_console +EXPORT_SYMBOL vmlinux 0xd7f9fe41 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xd7ff1449 find_get_page +EXPORT_SYMBOL vmlinux 0xd8106a01 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xd81d5c89 inode_init_always +EXPORT_SYMBOL vmlinux 0xd83c3b63 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xd856d359 fb_pan_display +EXPORT_SYMBOL vmlinux 0xd85f1cc8 dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0xd86c1fe1 netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0xd87030eb dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xd88fa86e kobject_set_name +EXPORT_SYMBOL vmlinux 0xd892870c security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8acc280 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xd8b28f40 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xd8c72cf0 ifla_policy +EXPORT_SYMBOL vmlinux 0xd8d5ecc8 dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0xd8ded085 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd92191d8 blkdev_put +EXPORT_SYMBOL vmlinux 0xd92514ca agp_special_page +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd9359131 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xd93689d8 __secpath_destroy +EXPORT_SYMBOL vmlinux 0xd93d2b51 generic_setlease +EXPORT_SYMBOL vmlinux 0xd9498b22 proc_dointvec +EXPORT_SYMBOL vmlinux 0xd9617038 __skb_checksum +EXPORT_SYMBOL vmlinux 0xd966ad41 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9a2d63b bd_set_size +EXPORT_SYMBOL vmlinux 0xd9a9bb30 getname +EXPORT_SYMBOL vmlinux 0xd9ae10fb napi_complete +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9d7a369 tty_vhangup +EXPORT_SYMBOL vmlinux 0xd9d8fb3f pcie_get_minimum_link +EXPORT_SYMBOL vmlinux 0xd9f20443 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xda2478d0 param_ops_short +EXPORT_SYMBOL vmlinux 0xda2ef867 pci_bus_get +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda89cf94 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdac6943f netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0xdae10ba5 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0xdaf1222d __lru_cache_add +EXPORT_SYMBOL vmlinux 0xdafa7eec serio_open +EXPORT_SYMBOL vmlinux 0xdb151d03 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0xdb24cf6a tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xdb29e598 vfs_create +EXPORT_SYMBOL vmlinux 0xdb3519e6 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xdb58c2d1 lock_may_write +EXPORT_SYMBOL vmlinux 0xdb5cf216 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb9aea56 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0xdb9fd237 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xdba1655c netdev_crit +EXPORT_SYMBOL vmlinux 0xdbb24fc2 down_write +EXPORT_SYMBOL vmlinux 0xdbb2c523 get_super +EXPORT_SYMBOL vmlinux 0xdbb76b1c mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0xdbc135d6 tcf_hash_search +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbe52bd9 md_register_thread +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc0af3ab ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0xdc128dca genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc66a43e dev_get_by_index +EXPORT_SYMBOL vmlinux 0xdc732024 irq_stat +EXPORT_SYMBOL vmlinux 0xdc942659 pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0xdc9498dd down +EXPORT_SYMBOL vmlinux 0xdc9837df dev_get_by_name +EXPORT_SYMBOL vmlinux 0xdc9d41aa skb_pull +EXPORT_SYMBOL vmlinux 0xdcb2d132 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xdcd8c6ca shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xdcefb9a5 pmu_resume +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd0f1002 generic_writepages +EXPORT_SYMBOL vmlinux 0xdd16889e end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xdd21ad0b mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd2c2326 pneigh_lookup +EXPORT_SYMBOL vmlinux 0xdd2e18be cdrom_open +EXPORT_SYMBOL vmlinux 0xdd81484b noop_fsync +EXPORT_SYMBOL vmlinux 0xdd822ff0 dquot_acquire +EXPORT_SYMBOL vmlinux 0xddbfba15 __dquot_free_space +EXPORT_SYMBOL vmlinux 0xddc2c749 thaw_super +EXPORT_SYMBOL vmlinux 0xddd4ee03 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xdde60e26 fput +EXPORT_SYMBOL vmlinux 0xdded4bd9 scsi_block_requests +EXPORT_SYMBOL vmlinux 0xddf564c7 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xde10eb10 param_set_invbool +EXPORT_SYMBOL vmlinux 0xde13ec11 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xde168297 padata_do_serial +EXPORT_SYMBOL vmlinux 0xde1b6615 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xde239d0f powerpc_debugfs_root +EXPORT_SYMBOL vmlinux 0xde257e3e inet6_unregister_icmp_sender +EXPORT_SYMBOL vmlinux 0xde463e0a posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0xde48e9ca _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xde544b4a cdrom_check_events +EXPORT_SYMBOL vmlinux 0xde5baba6 netif_carrier_off +EXPORT_SYMBOL vmlinux 0xde894681 kernel_getsockname +EXPORT_SYMBOL vmlinux 0xde91448c load_vr_state +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde98aa07 uart_get_divisor +EXPORT_SYMBOL vmlinux 0xde98d318 devfreq_interval_update +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdeb24e35 kfree_put_link +EXPORT_SYMBOL vmlinux 0xded98914 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xdf0ec1f5 get_tz_trend +EXPORT_SYMBOL vmlinux 0xdf202bb9 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf39e2b4 datagram_poll +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf632cf1 generic_removexattr +EXPORT_SYMBOL vmlinux 0xdf794667 pci_alloc_dev +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf99c2a7 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xdf9ac666 __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0xdfcaf1cc read_cache_page +EXPORT_SYMBOL vmlinux 0xdfcf2277 pci_match_id +EXPORT_SYMBOL vmlinux 0xdff43ed4 __debugger +EXPORT_SYMBOL vmlinux 0xdff56e64 adb_poll +EXPORT_SYMBOL vmlinux 0xe0040870 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xe00ac5c4 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xe01c79d8 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xe0224a35 macio_request_resource +EXPORT_SYMBOL vmlinux 0xe0289b7d scsi_scan_host +EXPORT_SYMBOL vmlinux 0xe04a585a gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe05607a4 gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe094ef39 sg_next +EXPORT_SYMBOL vmlinux 0xe095eeb2 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0c3dbb9 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xe0d5b883 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xe0d61ded agp_find_bridge +EXPORT_SYMBOL vmlinux 0xe0ef10c7 ida_simple_remove +EXPORT_SYMBOL vmlinux 0xe0f004b6 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL vmlinux 0xe0ffe999 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe141c4e7 vfs_statfs +EXPORT_SYMBOL vmlinux 0xe14332c1 gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1801a41 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xe18c8c37 dev_crit +EXPORT_SYMBOL vmlinux 0xe19903e0 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0xe19be990 __cleancache_get_page +EXPORT_SYMBOL vmlinux 0xe1a6544a neigh_seq_next +EXPORT_SYMBOL vmlinux 0xe1ab4612 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xe1cbf2bc pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xe1f1c986 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe204744d xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xe223b4b3 dev_uc_sync +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe2380f3c blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24aef8c __test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe250937f inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0xe26bf95c key_unlink +EXPORT_SYMBOL vmlinux 0xe282a046 i2c_master_recv +EXPORT_SYMBOL vmlinux 0xe283a4ff pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0xe29e1d0e out_of_line_wait_on_atomic_t +EXPORT_SYMBOL vmlinux 0xe2bdd1c3 generic_write_checks +EXPORT_SYMBOL vmlinux 0xe2be5498 lg_global_unlock +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe30b4fae bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xe3352669 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xe3475b8a sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xe3586cf3 dma_async_device_register +EXPORT_SYMBOL vmlinux 0xe35c5285 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xe37f9961 netdev_err +EXPORT_SYMBOL vmlinux 0xe3828d57 simple_transaction_read +EXPORT_SYMBOL vmlinux 0xe38f925f tty_write_room +EXPORT_SYMBOL vmlinux 0xe3bad4c6 blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0xe3bd8efb blk_put_request +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe41c9651 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0xe457ec3a iput +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe487b9b0 seq_release +EXPORT_SYMBOL vmlinux 0xe4a895fa up_write +EXPORT_SYMBOL vmlinux 0xe4b54649 iget_locked +EXPORT_SYMBOL vmlinux 0xe4b9f4a0 call_netdevice_notifiers_info +EXPORT_SYMBOL vmlinux 0xe4bc2e6d iget_failed +EXPORT_SYMBOL vmlinux 0xe4d085c4 switch_mmu_context +EXPORT_SYMBOL vmlinux 0xe4d7b24a xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xe4e24a0d bioset_create +EXPORT_SYMBOL vmlinux 0xe4e5678e seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL vmlinux 0xe4f56c60 dev_alert +EXPORT_SYMBOL vmlinux 0xe4fe8ca1 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xe502bddc dev_set_mtu +EXPORT_SYMBOL vmlinux 0xe50c6d7f build_skb +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe5203724 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe526fd56 netlink_net_capable +EXPORT_SYMBOL vmlinux 0xe53bba16 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xe53d1faa of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xe54243af phy_start_aneg +EXPORT_SYMBOL vmlinux 0xe5662c92 block_write_end +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe580f8ea i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe58f0fab unlock_page +EXPORT_SYMBOL vmlinux 0xe5a4a201 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xe5af54a0 try_module_get +EXPORT_SYMBOL vmlinux 0xe5b240a1 pci_remove_bus +EXPORT_SYMBOL vmlinux 0xe5b78a24 ftrace_raw_output_prep +EXPORT_SYMBOL vmlinux 0xe5b912b7 of_match_device +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5e8f563 tty_kref_put +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe61e7d71 icmpv6_send +EXPORT_SYMBOL vmlinux 0xe6277c5a blk_run_queue +EXPORT_SYMBOL vmlinux 0xe64f4c6e cap_mmap_file +EXPORT_SYMBOL vmlinux 0xe6686eeb sock_release +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6999d4d d_find_alias +EXPORT_SYMBOL vmlinux 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL vmlinux 0xe6d1e24a cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xe6dd236d clear_pages +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6f69439 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe722f5b7 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xe7298323 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xe72f692d vlan_uses_dev +EXPORT_SYMBOL vmlinux 0xe751a0f8 devm_request_and_ioremap +EXPORT_SYMBOL vmlinux 0xe752f4ef bio_reset +EXPORT_SYMBOL vmlinux 0xe7551fdf swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0xe7848be3 unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0xe78aa035 fsnotify_get_group +EXPORT_SYMBOL vmlinux 0xe7a0f182 bio_copy_user +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7bc8033 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xe7bf317d fsl_lbc_addr +EXPORT_SYMBOL vmlinux 0xe7c84014 lockref_mark_dead +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7ecfcb8 devm_free_irq +EXPORT_SYMBOL vmlinux 0xe813b64c flush_tlb_page +EXPORT_SYMBOL vmlinux 0xe8237068 ndo_dflt_bridge_getlink +EXPORT_SYMBOL vmlinux 0xe82cc752 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0xe833f3ae tcp_parse_options +EXPORT_SYMBOL vmlinux 0xe8505c94 netif_carrier_on +EXPORT_SYMBOL vmlinux 0xe851bb05 queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xe853cdd3 pcie_get_mps +EXPORT_SYMBOL vmlinux 0xe896061e wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xe898bfba crc32_le_combine +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8bea3bc qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xe8cddd36 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0xe8fa79c6 dev_emerg +EXPORT_SYMBOL vmlinux 0xe8fe1397 unlock_rename +EXPORT_SYMBOL vmlinux 0xe906ac26 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xe90a7848 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91eab6a xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe9802729 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xe9818611 agp_free_memory +EXPORT_SYMBOL vmlinux 0xe9a61df5 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xe9cb3195 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xe9d9152a dquot_drop +EXPORT_SYMBOL vmlinux 0xe9e45d73 blk_register_region +EXPORT_SYMBOL vmlinux 0xe9e6994a send_sig +EXPORT_SYMBOL vmlinux 0xe9ef3909 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea1359b7 tcp_release_cb +EXPORT_SYMBOL vmlinux 0xea16dd4c tcp_destroy_cgroup +EXPORT_SYMBOL vmlinux 0xea1fb6c1 kern_path +EXPORT_SYMBOL vmlinux 0xea6e3003 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea968c96 ___ratelimit +EXPORT_SYMBOL vmlinux 0xeaa523e9 of_dev_put +EXPORT_SYMBOL vmlinux 0xeab6dd1c input_register_device +EXPORT_SYMBOL vmlinux 0xeac72a42 of_find_backlight_by_node +EXPORT_SYMBOL vmlinux 0xeacf81e5 posix_test_lock +EXPORT_SYMBOL vmlinux 0xeb103353 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xeb1c7f29 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xeb2a7e93 mark_page_accessed +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb3a36a9 neigh_for_each +EXPORT_SYMBOL vmlinux 0xeb51ca13 input_allocate_device +EXPORT_SYMBOL vmlinux 0xeb55a931 __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xeb70708c fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xeb7b5f9f bdi_init +EXPORT_SYMBOL vmlinux 0xeb8875c5 inet_ioctl +EXPORT_SYMBOL vmlinux 0xeb9c8bbe __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xeba2a1f7 rtas_indicator_present +EXPORT_SYMBOL vmlinux 0xebbe79a1 skb_split +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebe18125 rt6_lookup +EXPORT_SYMBOL vmlinux 0xebf1f613 ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0xebf3a297 block_read_full_page +EXPORT_SYMBOL vmlinux 0xec00d8d2 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xec17ebb0 of_match_node +EXPORT_SYMBOL vmlinux 0xec1aa6ef memzero_explicit +EXPORT_SYMBOL vmlinux 0xec222963 kset_register +EXPORT_SYMBOL vmlinux 0xec382ad9 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0xec6520a4 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0xec68fc61 devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0xec6c025a do_truncate +EXPORT_SYMBOL vmlinux 0xec74e4c8 scsi_device_put +EXPORT_SYMBOL vmlinux 0xec75e96c bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xec8237a7 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xeca3fd78 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0xecbb926f xor_altivec_3 +EXPORT_SYMBOL vmlinux 0xeccb6e7d skb_checksum +EXPORT_SYMBOL vmlinux 0xeccf519c serio_interrupt +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xecf0dd29 security_path_link +EXPORT_SYMBOL vmlinux 0xed03cd34 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0xed0ae949 read_code +EXPORT_SYMBOL vmlinux 0xed334305 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xed346caa phy_init_eee +EXPORT_SYMBOL vmlinux 0xed597524 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xed62dcb1 tty_free_termios +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xed9f9a20 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc410d0 udplite_table +EXPORT_SYMBOL vmlinux 0xedd79297 cdev_alloc +EXPORT_SYMBOL vmlinux 0xeddd4a30 capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0xede587ef security_mmap_file +EXPORT_SYMBOL vmlinux 0xedeec159 __memcg_kmem_get_cache +EXPORT_SYMBOL vmlinux 0xedfb15e2 block_invalidatepage +EXPORT_SYMBOL vmlinux 0xedfca3d7 bio_add_page +EXPORT_SYMBOL vmlinux 0xedfd4e5d bdevname +EXPORT_SYMBOL vmlinux 0xee0f9ade in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xee1ffd14 md_check_recovery +EXPORT_SYMBOL vmlinux 0xee246dff ida_destroy +EXPORT_SYMBOL vmlinux 0xee2a6402 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee3496c3 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xee59412f adb_try_handler_change +EXPORT_SYMBOL vmlinux 0xee5eed49 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xee696f92 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xee79272d tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xee798277 lease_get_mtime +EXPORT_SYMBOL vmlinux 0xee7a8418 fget_light +EXPORT_SYMBOL vmlinux 0xee8d64ad pid_task +EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeccba48 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xeeda0811 inet_sendpage +EXPORT_SYMBOL vmlinux 0xeef161aa groups_free +EXPORT_SYMBOL vmlinux 0xef02ec41 simple_lookup +EXPORT_SYMBOL vmlinux 0xef109449 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xef3c8b10 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xef5020c7 done_path_create +EXPORT_SYMBOL vmlinux 0xef683628 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0xef772603 __get_user_pages +EXPORT_SYMBOL vmlinux 0xef8cf139 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xef91f51f of_find_device_by_node +EXPORT_SYMBOL vmlinux 0xef9c350f mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xefaa9ade backlight_device_register +EXPORT_SYMBOL vmlinux 0xefc04b90 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0xefc68ae5 kill_litter_super +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xeff1fb28 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf002c88d shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xf0211749 qdisc_watchdog_schedule_ns +EXPORT_SYMBOL vmlinux 0xf022790c dev_add_pack +EXPORT_SYMBOL vmlinux 0xf052f5a8 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xf05ffa15 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xf0619801 timekeeping_clocktai +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf06fe820 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xf07c1724 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xf086b167 sock_wfree +EXPORT_SYMBOL vmlinux 0xf087137d __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0xf09de776 get_random_int +EXPORT_SYMBOL vmlinux 0xf0a33cd3 drop_nlink +EXPORT_SYMBOL vmlinux 0xf0a6f5ad nf_register_hook +EXPORT_SYMBOL vmlinux 0xf0af0609 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xf0c49e07 clear_user_page +EXPORT_SYMBOL vmlinux 0xf0c9ad1c setattr_copy +EXPORT_SYMBOL vmlinux 0xf0e39754 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fb8275 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xf0fd4e8f rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xf10ca3e7 lockref_get_or_lock +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11cd6ce down_interruptible +EXPORT_SYMBOL vmlinux 0xf120872a dql_completed +EXPORT_SYMBOL vmlinux 0xf135d0d9 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xf13feb57 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0xf146f3ec dma_pool_create +EXPORT_SYMBOL vmlinux 0xf147dcb2 hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0xf16db97c macio_release_resources +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19e9355 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xf1b4273b sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0xf1b484b3 fail_migrate_page +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1dba824 dev_mc_sync +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e06df1 gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf21f5f27 dev_uc_add +EXPORT_SYMBOL vmlinux 0xf21fb118 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xf222defb __ip_select_ident +EXPORT_SYMBOL vmlinux 0xf22881e8 lg_local_lock +EXPORT_SYMBOL vmlinux 0xf235c157 d_delete +EXPORT_SYMBOL vmlinux 0xf2367f7b file_remove_suid +EXPORT_SYMBOL vmlinux 0xf23c92f9 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL vmlinux 0xf2690147 xfrm_register_km +EXPORT_SYMBOL vmlinux 0xf2a0af8f backlight_device_registered +EXPORT_SYMBOL vmlinux 0xf2b1ac8e __getnstimeofday +EXPORT_SYMBOL vmlinux 0xf2ca2e1d nf_register_hooks +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf321c895 d_path +EXPORT_SYMBOL vmlinux 0xf322a206 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xf3273a37 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf33efa8a phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf3838cfc vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf3969191 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xf39cce89 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0xf3b1f38c inet_accept +EXPORT_SYMBOL vmlinux 0xf3ba2b53 skb_dequeue +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3cfdae5 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0xf3ee6bcd bdi_destroy +EXPORT_SYMBOL vmlinux 0xf3fe6e41 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xf40b2297 __crypto_memneq +EXPORT_SYMBOL vmlinux 0xf42686bf mount_nodev +EXPORT_SYMBOL vmlinux 0xf436dfd6 lro_receive_skb +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4449388 timer_interrupt +EXPORT_SYMBOL vmlinux 0xf4669b75 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0xf47f2856 __cleancache_invalidate_inode +EXPORT_SYMBOL vmlinux 0xf4836765 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xf4bdbeb9 __frontswap_invalidate_area +EXPORT_SYMBOL vmlinux 0xf4d948b9 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf5222143 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xf52321e0 atomic64_sub +EXPORT_SYMBOL vmlinux 0xf529df5d add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf54c51a2 dma_pool_free +EXPORT_SYMBOL vmlinux 0xf5736edc __remove_inode_hash +EXPORT_SYMBOL vmlinux 0xf5a085c4 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0xf5a12d25 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5ac8445 set_anon_super +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5f1803f mmc_set_blockcount +EXPORT_SYMBOL vmlinux 0xf616d41d skb_push +EXPORT_SYMBOL vmlinux 0xf61f30ba nla_put +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf64f2a3c mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0xf64fd2f3 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xf65eb47b pci_dev_put +EXPORT_SYMBOL vmlinux 0xf6784fed pci_domain_nr +EXPORT_SYMBOL vmlinux 0xf678cfbe dst_release +EXPORT_SYMBOL vmlinux 0xf67f4ed0 gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf696ac01 tc_classify +EXPORT_SYMBOL vmlinux 0xf69b1d4d netdev_change_features +EXPORT_SYMBOL vmlinux 0xf6a463dc eth_validate_addr +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d1c563 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xf6dfe39e xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xf6e4d9a3 swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6fa3fc5 module_put +EXPORT_SYMBOL vmlinux 0xf6fbff49 blk_end_request +EXPORT_SYMBOL vmlinux 0xf70384d7 __debugger_sstep +EXPORT_SYMBOL vmlinux 0xf70f5373 inet_addr_type +EXPORT_SYMBOL vmlinux 0xf70fe137 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xf71521ba atomic64_add_return +EXPORT_SYMBOL vmlinux 0xf734a107 __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf76312d5 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xf764dae6 of_create_pci_dev +EXPORT_SYMBOL vmlinux 0xf7944b93 led_blink_set_oneshot +EXPORT_SYMBOL vmlinux 0xf798e9cf get_user_pages +EXPORT_SYMBOL vmlinux 0xf7a0530b mark_info_dirty +EXPORT_SYMBOL vmlinux 0xf7ae6e93 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0xf7b12aee __next_cpu +EXPORT_SYMBOL vmlinux 0xf7bf4ce2 vfs_mknod +EXPORT_SYMBOL vmlinux 0xf7c499f4 skb_free_datagram +EXPORT_SYMBOL vmlinux 0xf7dc4e9b tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xf7fc4d5c load_nls_default +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf806482d ps2_begin_command +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf814112f md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xf827cb83 free_reserved_area +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf83bebcd genphy_setup_forced +EXPORT_SYMBOL vmlinux 0xf83c7f65 pipe_lock +EXPORT_SYMBOL vmlinux 0xf84ac28f dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0xf84b36d1 unlock_buffer +EXPORT_SYMBOL vmlinux 0xf89c8e07 ida_pre_get +EXPORT_SYMBOL vmlinux 0xf8a41b07 xfrm_input +EXPORT_SYMBOL vmlinux 0xf8bb2b94 register_key_type +EXPORT_SYMBOL vmlinux 0xf8d2d953 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xf8d53f63 dquot_destroy +EXPORT_SYMBOL vmlinux 0xf8eec472 pci_enable_ido +EXPORT_SYMBOL vmlinux 0xf8fa7085 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xf9023e48 inet_confirm_addr +EXPORT_SYMBOL vmlinux 0xf907363a simple_unlink +EXPORT_SYMBOL vmlinux 0xf931763e serio_rescan +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf9475872 scsi_host_get +EXPORT_SYMBOL vmlinux 0xf957e9ab proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0xf983a455 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xf9a00260 account_page_redirty +EXPORT_SYMBOL vmlinux 0xf9a1302e ata_port_printk +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9af1df9 __genl_register_family +EXPORT_SYMBOL vmlinux 0xf9c367e0 iov_pages +EXPORT_SYMBOL vmlinux 0xf9de9890 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xf9e60144 misc_deregister +EXPORT_SYMBOL vmlinux 0xf9e73082 scnprintf +EXPORT_SYMBOL vmlinux 0xfa06dc59 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xfa32dc65 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa6a82f8 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xfa7f3156 wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0xfa9649fd tcp_child_process +EXPORT_SYMBOL vmlinux 0xfab39ec8 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfacd6106 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xfad0b1ce vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock +EXPORT_SYMBOL vmlinux 0xfae67b1f cap_mmap_addr +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb32d800 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xfb459383 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xfb695e57 generic_ro_fops +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb85544f redraw_screen +EXPORT_SYMBOL vmlinux 0xfb8824cb nf_getsockopt +EXPORT_SYMBOL vmlinux 0xfb94103e __clzdi2 +EXPORT_SYMBOL vmlinux 0xfba068d9 skb_orphan_partial +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbcb1dd4 noop_qdisc +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc156865 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xfc329377 cfb_copyarea +EXPORT_SYMBOL vmlinux 0xfc36ddc9 d_instantiate_no_diralias +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3b160f mempool_create_node +EXPORT_SYMBOL vmlinux 0xfc49f49a pci_read_vpd +EXPORT_SYMBOL vmlinux 0xfc5c1f28 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0xfc65459a kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xfc7d9325 genphy_suspend +EXPORT_SYMBOL vmlinux 0xfc96975d inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0xfc98b48f inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xfc9a951c devm_ioremap +EXPORT_SYMBOL vmlinux 0xfc9f5e4d elv_rb_add +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcb220cc tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfcfdad9f ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0xfd01eadc inet_frags_init_net +EXPORT_SYMBOL vmlinux 0xfd07a8ca giveup_altivec +EXPORT_SYMBOL vmlinux 0xfd0c5038 adb_unregister +EXPORT_SYMBOL vmlinux 0xfd3372b5 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xfd3ec9a1 ip_getsockopt +EXPORT_SYMBOL vmlinux 0xfd615b6e pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd714cba qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xfd751464 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xfd93e588 phy_get_eee_err +EXPORT_SYMBOL vmlinux 0xfd99623a ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xfda21941 deactivate_super +EXPORT_SYMBOL vmlinux 0xfda9edb3 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0xfdae80be validate_sp +EXPORT_SYMBOL vmlinux 0xfdaee349 kill_anon_super +EXPORT_SYMBOL vmlinux 0xfdb6cedc _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe02066d dma_set_mask +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe0d1cc5 phy_start +EXPORT_SYMBOL vmlinux 0xfe4e1127 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe623479 vfs_open +EXPORT_SYMBOL vmlinux 0xfe66ebb7 simple_write_begin +EXPORT_SYMBOL vmlinux 0xfe68a48e seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xfe730308 dev_mc_init +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe7fd8c8 sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0xfec9fc20 dquot_quota_on +EXPORT_SYMBOL vmlinux 0xfedc8da4 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfedd1ea7 __skb_gso_segment +EXPORT_SYMBOL vmlinux 0xfede529a dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xfee5bb67 netpoll_rx_disable +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call +EXPORT_SYMBOL vmlinux 0xff198140 poll_initwait +EXPORT_SYMBOL vmlinux 0xff1ae060 key_put +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff2e9dbe keyring_alloc +EXPORT_SYMBOL vmlinux 0xff420d2e scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xff4f6937 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff6dea25 smp_hw_index +EXPORT_SYMBOL vmlinux 0xff97c0e1 jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffcf9527 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffdb82bc sg_free_table +EXPORT_SYMBOL vmlinux 0xffe90d6f tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xfffc1057 register_md_personality +EXPORT_SYMBOL_GPL crypto/af_alg 0x097af2ef af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x2e52be3b af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x58716898 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x6adb4fe6 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x93957c0c af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xb3531a2b af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0xbf2ffb96 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xca0a9bbb af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0xf25e6df2 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x1862c2d4 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x7bf0bf4a async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xea902525 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x5abe6690 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x5b5b575e async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x2626f89c async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9ad78042 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xb98833d2 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xeba5291e async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x895ed9ea async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xd50b8d2a async_xor +EXPORT_SYMBOL_GPL crypto/authenc 0x587ef278 crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x3147c17d blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x27278ca9 __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x4a2a3ca6 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0xcb4847d3 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1291971c __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1e2c961f __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x63f4a041 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x8f04034a __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast_common 0x08aa6fb7 cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x0c5fbf8a cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xe39dd4b4 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0xee83a4f3 cast_s4 +EXPORT_SYMBOL_GPL crypto/cryptd 0x27452e64 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x45fe4457 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x4c4b8dc2 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x561ee349 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x6c61a625 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x84d058b6 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x89c81bcb cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xab267f20 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xcd31900f cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xe88dc81c cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/lrw 0x3864eb66 lrw_free_table +EXPORT_SYMBOL_GPL crypto/lrw 0xcd074900 lrw_init_table +EXPORT_SYMBOL_GPL crypto/lrw 0xe44ea829 lrw_crypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x5ddb33e9 __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x77b39cb4 __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x7b6c3de8 serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x8a1a99ad __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/twofish_common 0x0f62991e twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x6c3229bb __twofish_setkey +EXPORT_SYMBOL_GPL crypto/xts 0x1b198361 xts_crypt +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x098b6b85 ahci_platform_resume_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x20537193 ahci_platform_enable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x8a4fcabf ahci_platform_suspend_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x8bf5f6ca ahci_platform_disable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x8e855852 ahci_platform_init_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xa5d4a75f ahci_platform_enable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xb60f0b36 ahci_platform_ops +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xc16f304a ahci_platform_suspend +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xd2b9f0c8 ahci_platform_get_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xd671cec9 ahci_platform_resume +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xdc38d237 ahci_platform_disable_clks +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x08a389fb ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0fabb1ad ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2b236865 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2bb3f94b ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x31f8d0d7 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x393f5c8a ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x42223afb ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x473a8ee6 ahci_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4b8e2a84 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x694f923e ahci_thread_fn +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6e05c4e7 ahci_hw_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8ba854ac ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8d006585 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8d671b16 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x969ca3db ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa2014313 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xac296bf1 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb1537689 ahci_start_fis_rx +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xbb816b23 ahci_restart_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd20d70c0 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd4879d38 ahci_qc_issue +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd9a5027d ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe05b35cc ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe2710602 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xef6f13e9 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x9f981c98 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x63045834 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x11aee6b6 bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1741eab9 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1a578e7a bcma_core_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1edfedd2 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x3025b7c8 bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x3583bfa6 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x381861fd bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x3bab50e0 bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x4fa35a14 bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x53f16dbe bcma_core_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x55de490b bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5f2dfb3d bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6e3c6dc2 bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6f1b17e7 bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x740d9447 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x88562699 bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x89de9ee2 bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9d8595d5 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa8cd9dc4 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa99f278d bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb83e843a bcma_find_core +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd50897e9 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf95cb854 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x45e8045e btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x625553aa btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6a5bfeb0 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x82c710dc btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x844e9874 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x900e04a9 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa4aa1b9a btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc8ad6b06 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf5f6b6d0 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf7912ed6 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x18f548ac dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x1d270720 dw_dma_resume +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x26dec3ef dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x4c9fad89 dw_dma_shutdown +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x8a91f0b6 dw_dma_suspend +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0be634b3 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x187c395d edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1e82ac3e edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x255adf38 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2b0d3106 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x31f699a4 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5a4f8cd5 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x71d65d41 edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7bf918d7 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x86df935b edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x87c77fc4 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8b0abefa edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xac9cd618 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb027674f edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb0aabfac edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb769dbb6 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc1ead348 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc511fe64 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe27dcb00 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe71a06db edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe9eb14ea edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf0454017 edac_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf6c5acfd edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xf4ade51f fw_card_release +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x50e6305b bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x6187acc2 bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x2a5da1f1 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xffc45c61 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xb35cfd2a drm_vm_open_locked +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xcc122a2d drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xfecec23b drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x6adf436b ttm_prime_fd_to_handle +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x71413a95 ttm_dma_unpopulate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x8c48c72b ttm_dma_populate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xb79a57e4 ttm_dma_page_alloc_debugfs +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xce36343e ttm_prime_handle_to_fd +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x070ff9bf hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0a75f612 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0aa31229 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0c3c9677 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0e3d1816 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1ab5ec00 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1fd20ed7 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x275fc888 hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2b4a4353 hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0x31e32253 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x381272ac hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x400c1c25 hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0x43fd7ba5 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4874f53d hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4906a967 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x58821fdc hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5d74d559 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6b8f10c6 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x75a56180 hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7f17813c hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8263aae4 hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x83268b45 hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8765089a hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8a6da7a5 hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x920b510c hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x96bbe8dd hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaaacf037 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbe14e6a7 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbe44db76 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd3bb6abf hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd59b7d26 hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdc6af91f hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdd68f9c8 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf5bcc215 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfe426b3e hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x48f854a4 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x5466a3c7 roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x705efaa9 roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x83f0ff10 roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xaf3c01bd roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xb24c6704 roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xb7d67f39 roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x02267733 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x21a66dcf sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x25b81718 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x2ccd7b31 sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xab3d7881 sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xb80317b0 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xc8e5e60f sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xd62a3b02 sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xd004a9ae hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x12825d56 hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x1f3b2b0b hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x39c012f1 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x72c4342f hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x80db0ade hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x8d2da3d6 hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xb0947868 hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xc0583ca6 hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xc810e2a2 hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xcb5b5b62 hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xdef9c703 hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xdf967fe3 hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xe294d23c hsi_async +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x28808a99 adt7x10_remove +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x4d8a9a7c adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x78e24ccf adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x163edee5 pmbus_write_byte +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x42fdceac pmbus_check_word_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x75973fc7 pmbus_read_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x76f3d974 pmbus_write_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x878e9f90 pmbus_set_page +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x9a7195b3 pmbus_clear_cache +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xb31c4a48 pmbus_read_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xd30d0661 pmbus_get_driver_info +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xd52770ca pmbus_do_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xe5d98250 pmbus_clear_faults +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xeecdaec9 pmbus_do_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xfbc8adc7 pmbus_check_byte_register +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x1b6b7029 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x2dff02a7 i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x530aaa77 i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x59380413 i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x780dcc78 i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x781a4531 i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x8887cf8b i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xb95942f4 i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xe6dba201 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x57928631 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xea912867 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x4e4afdeb i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x7543a7c1 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x36559957 ad_sd_calibrate_all +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x4b87ea53 ad_sd_set_comm +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x662cb242 ad_sd_read_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x72bc3566 ad_sigma_delta_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x7365791e ad_sd_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x99310829 ad_sd_init +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xcc9c1a3a ad_sd_validate_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xcd5f1420 ad_sd_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xd369ef73 ad_sd_write_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x1f67d910 adis_write_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x200eb9b0 adis_update_scan_mode +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x2bab0b64 adis_initial_startup +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x3a964497 adis_read_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x4a5bcd53 adis_probe_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x72ef52de adis_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x783173b4 adis_remove_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x7a4a1e4a adis_reset +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x976a8e67 adis_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xd61f3b14 adis_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xdc6ba3df adis_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xfe966094 adis_check_status +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x115b99de iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x15b81fab iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x18996dd4 iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1b9ffdf0 iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1f938ead iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x267c0508 iio_channel_release_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x292c9202 devm_iio_trigger_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a1fab3c iio_channel_stop_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2ad338be iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2d929154 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x32500777 iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x330240a0 iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3689727a iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3e59d40f devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x44c9e2e1 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4d9d49e2 iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5725f001 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x69d079d8 iio_update_demux +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6f7f21ab iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x705170a4 iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x70c5d5c7 iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7a711aef iio_channel_start_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7c4f3eb8 devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fd2a72b iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8e9bf191 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x95f1c984 iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd2cefe7a iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd4ed92bf iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd73424bd iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe2d6400b iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe686d90d devm_iio_device_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xef63d29e iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf111dfdc iio_enum_write +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x35422393 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0xf80f06c4 matrix_keypad_parse_of_params +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xd0c3002b adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x67cd4c81 cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x6c7d3a0e cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xfc1ff106 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x8e0946cb cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x9a06d308 cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xe83332ce cyttsp_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x14d382b1 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0xe542f8e3 cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x07b55351 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x08d7706f wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x15696d35 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x24a3ef24 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x48a78b11 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5b60bef2 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbccda733 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd653a935 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd9c36dab wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe1995cbb wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe5317862 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xecc9b216 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x4c9864e1 ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x7c0696d0 ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x9362cbc3 ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x99ba7d2b ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x9f8fb362 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xab2f0f79 ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xad54348a ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xe26379ad ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xf220cad7 ipack_device_init +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x23359aff unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xce1414b2 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0652e8db gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1124266e gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3514982e gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3c466cff gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4059b58b gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x419b0dad gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x41afde0f gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x58647342 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6b7b9e24 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7cda968e gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbc2c67df gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc8781c37 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xca7beb8c gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcb5c231d gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcc8ad2a4 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xce04a0b5 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfc1b509d gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x160853b4 lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x1a2b9eaa lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x1ec1b4c6 lp55xx_unregister_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x41156b24 lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x749c282d lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x7b573da8 lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x7c1c27b8 lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xa12ced15 lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xba8b955f lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xc32bc6c4 lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xd59e74a3 lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x749e05f2 ledtrig_flash_ctrl +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x7903e46e ledtrig_torch_ctrl +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x0a0527be wf_register_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x30b7b6e4 wf_find_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x3a18587a wf_unregister_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x66562454 wf_put_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x6e2ecc22 wf_unregister_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x83662edf wf_put_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x94765fac wf_critical_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x9830a835 wf_register_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa2f19a49 wf_is_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xaf670b76 wf_get_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xb3c272d9 wf_register_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xbcace2a5 wf_unregister_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xca68f808 wf_find_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed82a14f wf_clear_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xfb7bd989 wf_get_sensor +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x10e06e97 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x155ea9c7 __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1822fd23 __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1f2ba9ac __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x260d47cf __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x27831e89 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2dec45e0 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x347aebe1 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x41c861f0 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x49856e5a __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x50e8c39f __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x574ba881 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x628eb712 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6770a402 __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x785cfc9f __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7b488fb1 __tracepoint_bcache_alloc_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x91f2af34 __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa09069a3 __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa591c5d6 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa6890b59 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xaf60c34b __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb950d2ae __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbd4b89b6 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce0e6218 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd40fba32 __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdc5ea5a5 __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf58ce244 __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf5bcbdc7 __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfc1d5275 __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfcdf28c9 __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xffc308e4 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x06c8c9b3 dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x19586cac dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb676977c dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb6d5c65d dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb70b342a dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xc423e1d1 dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xc533b789 dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xc54589ab dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xd739a1a9 dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xebd06eaf dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x22163b69 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x3909d3a8 dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x594952bd dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x62a23587 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x74dcd98c dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7c381a76 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9b2b253a dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xb31523e6 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xdc69e37a dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe004ee92 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe6024e59 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xebcc64a4 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xeca7949e dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x06ee8164 dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x253f5c37 dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x4ef2cd46 dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x5851fed6 dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x63334be0 dm_cache_policy_get_name +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xa674d9f9 dm_cache_policy_get_version +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xbcc6ed35 dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x3e60dc6d dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x62555387 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x01d2f9ac dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x09472122 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x12420bde dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x148e15ff dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x37d7e471 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x77cc1961 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa8813ad6 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xab473422 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc66ce277 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcab63c3d dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xea378a77 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf37a3cfe dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x01445176 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11eab9fe dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x150c85ce dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1cac81ac dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2025e954 dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2e730a21 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f40da68 dm_bm_set_read_write +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f74609d dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x32b5f546 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x33c03da6 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x38c75c44 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5e6aea80 dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x619701dc dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x62c1b9ee dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x688d422d dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x68fae9d2 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7ade1071 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7b047bd9 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x832bf228 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x858c8d94 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x89f1e1cc dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x966a8838 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9b4b5b29 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9e798e22 dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9f340c29 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa0bbbb49 dm_bitset_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa13861b4 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa2507774 dm_tm_shadow_block +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa87c5b4d dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xaee02382 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbcfdc290 dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbd50ebbb dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbe0497aa dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca40abd5 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd041d62b dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe44b4b9b dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xead1e727 dm_bm_write_lock_zero +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xed1e1f96 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf475af48 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/raid1 0x72af0a97 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid10 0xd63e023a md_raid10_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0xf0492875 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x2e296cc0 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x40ae4288 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7bd8c9bc saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x96a51937 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xa69d44c5 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xad64db6b saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xca9e14a7 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xd7215d4c saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe0893394 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xfbdcf7d2 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x0a2258ce saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x3e2eef9f saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x8698f0a1 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x9647bb5d saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xb91acec9 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xd2b93e26 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xdf372821 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x0a2c5dce smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x1bd7defb smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x312c01d2 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x49d0b88f smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x54166008 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x63222b29 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x6519843e sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x6ac6d6c5 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x754875d5 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7964c535 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x94f01075 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9c2225ed smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xaee01d69 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbd8901d2 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc1fd751e smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc7bd1ade sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xd0f4ef1e smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xdf19237e smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xfed22d5d smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0x20a4ad2a cx24117_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0x11d40884 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0xf2981456 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x17a8d867 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x234f292d mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x23ce412a mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x24f17bee mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x305df21b mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x3273bc53 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x3e52aeb8 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x6ade438a mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x8738c0ec mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xab42b4a4 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xb89a2664 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd2dc30ff mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd6342f49 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xde06ece4 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xeb7ccd9d mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xfd0960ca mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xffce5996 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x2ad6ab14 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x2db30464 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xb16e309a saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xc71fbc1b saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xd11e3fa1 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x26dcaadf ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x2c8b3370 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x5e89420b ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x5eb1dd39 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x83e465cc ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x8564fa10 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xbfa84d72 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x8c5392ea radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xc0e43636 radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x06e5b3c4 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0de60cf1 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1dfd172f rc_close +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x21bc8da1 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2271cd85 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x239b265d rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x44899f5f rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x55cb1c18 rc_open +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6343ed7c rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x66e072ff rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x69271635 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x73067b95 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x927567ac rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa2c02ec7 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb827dcf8 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd400d803 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd405fd87 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfa648272 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xffe85f57 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0x45554f41 mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0xa9ba7acb microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0x7e9d7922 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0x33f6ffc8 r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0xf889a04f tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0xf15615c2 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x8c42f075 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0xf599d5af tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0xb00ae418 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x3865ad45 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x9c3d4f8d tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x7c048543 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0xc1bf7a03 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x47d4ef42 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x1ac48874 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x2259ddb8 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x23593ada cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x283205a8 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x3b1075a2 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5da8d435 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x68546c4d cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x6cd6b54d cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x6e9dd095 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x744fe098 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x779dad1e cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7e040cfb cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x8e3f1e66 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x9eb785c7 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x9f60d10c cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xb233aff4 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xbb489817 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xeb268fb9 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xf319f649 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x3fb2c89c mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x3ba63f27 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x1bebde0a em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x28003e8c em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x48ced1cd em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x4f8733d9 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x57b9149b em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x62dbd85e em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x920c8703 em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xaf2ef091 em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xbd36da27 em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xcb53fb1e em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xce33e2d7 em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xe9e4f577 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xef7ef8da em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xfbe25633 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2caf7bc7 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x755c325c tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xa10a62c0 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xd0897807 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x01c483a9 v4l2_get_timestamp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x650985b1 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x6b23015a v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xa77818a4 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xae016fe0 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf7dec5bb v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xff3a2444 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x08982d59 v4l2_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x221d2fbc v4l2_enum_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x36e8756a v4l2_find_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x4103badb v4l2_print_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x53105839 v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6976cfe0 v4l2_valid_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6f344bb9 v4l2_calc_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7eaf8e7a v4l2_detect_gtf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0xb0891da2 v4l2_dv_timings_presets +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x31ae7626 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x4631cff2 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xaafaf1c7 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xf9895b18 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0701986e v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0afcf219 v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x17eb0eee v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2517fdcf v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2a34bfa3 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x54234a1f v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x598c6276 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x60e1b182 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x680fc043 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7f40fa98 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x93997cec v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x96660750 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa4729e67 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xce390500 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xf6348d11 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x1e11c9d9 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x2014e458 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x213bbeef videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x28ce1730 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x62f78524 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x6f7853bb videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x6fb8252d videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7503ae1b videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x79e06a97 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7a5cf89d videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x80c78035 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x883978f1 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x9ab34a78 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x9c3ce331 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa296abf4 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xace2e7ce videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xb470fd04 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xb4e29208 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd0622df2 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xdbae0680 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xdbe9cbe5 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xdf1cf289 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe2b001dc videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf93c3e37 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x21f0ecb9 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xb6dcb0d3 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xff8251af videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x03abf11c videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x20f486e5 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x652bb251 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x7ea14f31 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x97a94fd4 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xb3081a58 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xbbb8d09c videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xcae5e223 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xcd87971d videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x5a1c0d75 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xadd03406 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xfe2b2438 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x07975faa vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x10d87882 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2098207b vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2d8b04a0 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x367cee50 vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x3c50bb25 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x3dd210cb vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x3fe79205 vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x489adb5c vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4abac404 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4ad3b457 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5ebfaf94 vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x808f7bab vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x83a3cc34 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x865cf899 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x885c1330 vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8a27b95a vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8a2cc9ff vb2_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x94b9b799 vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x96685b81 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x9ba9f702 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x9d78fe5e vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa0465f85 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa3b7c8f2 vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xaedb1fb3 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xbe0f1e4f vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xc6b6953e vb2_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xdb276fbb vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe40be974 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe456ac32 vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xeb50b66c vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf5e96a5e vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf6a90dc4 vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xfdc15425 vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x6ade7770 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xc392fdb9 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-sg 0xbd4abdcf vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x24e78062 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x3d77f3dc vb2_get_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x887b7006 vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xb8ef2368 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-vmalloc 0x72bbefa1 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x04567fa5 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x13dd4d6b v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x16bc7438 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x18086126 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x21984176 v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x27c7ba30 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x306bd7bb v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x44cd45a9 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x48fbc5cc v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x501d2568 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6ec57430 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x70a0fd1c v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x752e01fe v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x968f3d01 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x986c499e v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xac760b5f v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc0386075 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xdaf323d0 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xdc235bea v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe2158505 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe33dddc3 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf68117df v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xffe48f80 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x375769c9 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x389db1cc i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x75a1c190 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x8685de5b i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xb702400a i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xbecadce6 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xd1023892 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xd14dcf43 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x4bc10a5e pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd4b2ff5a pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xe9289e7f pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x41a448b0 kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x6116b693 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x61f344cb kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x9585ffca kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xa2c30940 kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xbc6aa4cf kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xc13cbbff kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xfa6592b3 kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x5cca9545 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x67a17407 lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x8473474b lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x3b5313df lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x49e00532 lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x6c75cf91 lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x7c15165d lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x901d6e64 lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x93568158 lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xa1319656 lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x1b8c270c mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x2ff39741 mc13xxx_common_cleanup +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xaf77457e mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xc4ca471b mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xefcd0e5e mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xfdc2fb36 mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x02d5d9d1 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0d9a6c79 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x344132a1 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x5c72f650 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x61401c27 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6196e95a pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7925bc15 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9fba519e pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcd5be6a6 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe0fbd727 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe9ccafcf pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x778d8e83 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x95665768 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x77f4a5f6 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x82a8eb1e pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xacb06730 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xc70e12dc pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xd05b3a9a pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x01a33234 retu_write +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x4fca3918 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x36e37ef0 rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x3886306b rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x4e678e5f rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x4fd7ae76 rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x5b68fd7b rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x5b764bbd rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x68f2db0a rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x6cc7834d rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x722270b5 rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x7972af5a rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x7e527c97 rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x978f8c6c rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x9a93f2d4 rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xa10d8c5a rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xa688b2b0 rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xaa732c92 rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xb622d2e6 rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xc156d4e1 rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xd2866671 rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xf5e096e9 rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xf99e0305 rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x114e3073 si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x175f6dac si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1942a472 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x26e6d623 si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2d11950e si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x33469d60 si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3379bef0 si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x464abc58 si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x465009f7 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4f114b4e si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x55046eff si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x578d4750 si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x60065c9b si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x683875da si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x69ef24dd si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6afadad7 si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7437055c si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x82abc813 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x82adeace si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8d2f88a8 si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9292dd91 si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x93d81bba si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x979fc3cb si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9d470601 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa16f7288 si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa78d19ee si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb3bdb206 si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb4c7e240 si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb817778e si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb8f6a4c1 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xcc981427 si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe23e57c9 si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe51c0b2c si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf6f4563c si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x0d8523fe sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x31d5731c sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x59189136 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xada32dad sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xce5e4048 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x4d76013a tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x965d7e15 tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xa07f884b tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xeb48efcc tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x4362dc66 twl4030_get_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x9effbf1a twl4030_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x13c00d34 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xc72399e6 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xce8173da cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xf36511fc cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xfbc2f720 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x27cb133b eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63 eeprom_93cx6_wren +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x822222db eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x98bb5a22 eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x00f764e4 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x28fe4e4f enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3d2300cd enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3e31c7a6 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x40e08095 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb500b318 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xe16a289b enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x1f4fbd66 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x269b18a1 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x3612d1a7 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x52446787 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7a28e8c7 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x8e1430c5 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xb242b806 lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xdf85f937 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xb517bfde st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xe67d0a2e st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1461e8d1 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2b2ad404 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x34a88587 sdhci_send_command +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x75894604 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x830f2b63 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x88e6282c sdhci_disable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8c3b19d4 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa8581290 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xaa84b34b sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbc26e6cc sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf0a39ba5 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x7895c0e5 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x88a8c296 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x8b9248ad sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x95aaf8f1 sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xc3d52620 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xd14c5418 sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xffbbc9a5 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x1099fa24 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x2fb0dfcc cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xd2aefa5a cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x16c0a765 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x9b6b2333 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xe53968e3 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xa1e32bbf cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x3e3c1cab cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xb6017ee3 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xb7a1002e cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0048e06b mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x099d1ae7 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0a69fba4 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0c9fc3bc register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0ced269a mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x11015b7a mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x15c655fc __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1ac36e4b get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x313b47e0 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x338a69b3 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x369756a3 mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x39ed95d2 mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3abdba4d mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4201ea35 mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4d2304f4 mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x55c7d933 mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x56419431 mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6a4a6d95 mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6d847c7f mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7b5cca03 mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7dbe2a8b unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x88d2e9f2 mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8b7187a2 mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x94f27f16 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x96a976a4 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9a3a8f0b mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xacf653da mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb345ddad register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb3bccd83 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb59b30e0 mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc2c77b49 mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc7249a76 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xce48a158 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd94706f0 mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xda55e1ea mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdb5ed1c8 mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe92bf904 mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xec0dda20 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xee9c957e mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xefc5ea9c deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfa5b2278 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x769f5bd3 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x77f5c292 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xb14ee71f deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xe30b0c14 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xe7c5c7d5 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x51f615bd nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xce8f4b4b nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xeb1dcba0 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x138b93af onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x397f7210 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2312edaf ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2d8191b5 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x50dd9296 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f78a957 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7da27c07 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8c59832e ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9c78a976 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa95ef4c7 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xace230d9 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xca87464e ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd3ac9089 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xeb8fc865 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfdccf572 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x6f0358c5 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x76b2f3d8 c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x7f402015 c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xdfcc3209 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xf3ea5c0f alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xfc20ecaf register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x059a55c6 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x18339619 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x19831cde safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x222c295a can_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4004690a alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x489a5517 can_led_event +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4f8abc66 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7d0e5cf3 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x86a46cf6 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa2e4ece7 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb346573b can_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc185500b can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc5b126b7 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xdfcb087d alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe364e7ef unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe9d46a62 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xecc4d941 devm_can_led_init +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x0944e660 register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x230f11ed unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x3cfdff97 free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xc9e00655 alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x1fa1350e alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x4e77d67a register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x71e13c79 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xe3837d88 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x2821a637 macb_get_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x3ef4bf7b macb_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x6087def4 macb_ioctl +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xb3849e4c macb_set_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xdc8ac826 macb_get_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xe5eb85da macb_mii_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xfe2e4fd6 macb_ethtool_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x008c6f84 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00c6f249 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x01a81f1e mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x02627d75 mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x04ecb8f1 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x04f0e7de mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x06ebdaa9 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x088cdec2 mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a04bb9a mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0d02fef7 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0db31c52 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1751270a mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c5eaf4a mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c6fa1df mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2124bb49 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x21f4b46e mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x254ff89d mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x263b2d50 mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2749f489 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x28c00fb8 mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x28d79135 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2be34613 mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ecc09ce mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f869116 mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x33c2981d mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x363c4a47 mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x366d8940 mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x38468ace mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3d5e15a3 mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3da517f4 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f170945 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x411b19df mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x449ab122 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x452f362b mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x462743af __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x47b0b886 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4a804e3b mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f8762b9 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x55119000 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x591276ee mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5c804ed0 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60cfb7cf mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x610555f1 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x67aef569 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6ac67245 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6c602137 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6dfb736b mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e8c6635 mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6ecf431c mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6fbeee6d __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x71035bc9 mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x73cf28e3 mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x767f3471 mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x76ab2e35 mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7c69fa32 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x81e3f05f mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x872afcc6 __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8944a136 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a6578b9 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8bed3805 mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8c52b4c8 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8d7057ff mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8ea32c45 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x913ce9a6 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x934045cf mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9363eef1 mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x95181012 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x966f4005 mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9d68f48f mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9eead526 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa0cf01c8 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa336bf4a mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa5859c66 mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa9b580d2 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaa63cf7e mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xabbf155d mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd7b2a9f mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbfe133cd mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc825563c mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcb8c9ac5 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcd2954d5 mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcd7c8fbd mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcf327a4d mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcfda7395 mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd2c1fd0a mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd2cdab6f mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd53f23ec mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd8b67b50 mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2a81d81 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe4c8ec8c mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe95c7434 mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe9fda16b mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xea455e9a __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xec7b7dc1 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf1c11ffe mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf44faf60 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf6f5784a mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf917c468 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfa5f3614 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfb41f184 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfdd78749 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff42748e mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00383ecd mlx5_core_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0b73d0ff mlx5_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2f8988c3 mlx5_core_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x313d2dc5 mlx5_core_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x390d6d91 mlx5_core_mad_ifc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4a373a7f mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5a024abf mlx5_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x618e4dcc mlx5_core_create_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87b5975f mlx5_core_xrcd_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8cd3873d mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d9bda94 mlx5_fill_page_array +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc56cf0e1 mlx5_destroy_unmap_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xca33eb2f mlx5_core_destroy_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd4f96f69 mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xddf06aa1 mlx5_core_eq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe624637c mlx5_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef8efb2b mlx5_create_map_eq +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x30bd8e5a macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x6fbf107a macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x96388319 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xb2fd458a macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd4357dd0 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvtap 0xf58c13f2 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x3e2b741a usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x3f228557 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xab46b61f usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xc991c453 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x00ccbd49 cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x596b3f37 cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xa5303b86 cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xac346b28 cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xca1222ab cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xcebe8bd9 cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xe0024dbd cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xf2ea0abc cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x27a7db1a rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x2ff081ca generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x69ade12b rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x74b0c882 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xd6ed6a77 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xdfcdf36f rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0837b10f usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0d05a64e usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x17bd6b71 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x23f9bb5b usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2531d7ff usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2766382f usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2a360622 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3b9ed3e7 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x49c368e8 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5303ce85 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x57744aec usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5ed53026 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5ee5116c usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5f218197 usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x62cbd102 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x660f4f88 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6d95fa4f usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7dc369e5 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x98561188 usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa63bdba6 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa7d90db9 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb193a719 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb1ac7c05 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc8a665bf usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc99add42 usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcb34b2f7 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcfb0fe33 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd96353c0 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe40ce36e usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xeba5fb54 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfc57cdf5 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xff2cf7de usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x7abb919e vxlan_src_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x9c23a284 vxlan_get_rx_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xa6476d8d vxlan_xmit_skb +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xd3f060ca vxlan_sock_release +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xff80e110 vxlan_sock_add +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x077b75d8 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1940995e i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1a88d066 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x21198a48 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x22054f86 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3283ebd3 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3edbc253 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4f9842b9 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x659f6e29 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6ee2c533 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7b19bd41 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x963eb94a i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9f44208f i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xca81b5bf i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe9a1cf7a i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf2d78d5d i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x06b26cd4 cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x6d48c4c6 cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x770d0f9b cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xfe8c67d4 cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x2511409e libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x09a1d2d4 il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x3057df6a il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x503bba72 il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x5ff97cb4 il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x66f71084 _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x0d556623 iwl_abort_notification_waits +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x0fc6c638 iwl_poll_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x1291ef1b iwl_init_notification_wait +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x146a7e07 iwl_read_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x18c1add6 __iwl_info +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x1ac36ff0 iwl_notification_wait_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x309134fe iwl_write_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x35033c81 iwl_phy_db_free +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x39e9c660 iwl_nvm_check_version +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3b88d66c iwl_parse_nvm_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3c0c834c iwl_clear_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3d548dab iwl_remove_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5c52e109 iwl_opmode_deregister +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5d0a212e iwlwifi_mod_params +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5e1e112f __iwl_crit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x6d44a972 iwl_opmode_register +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x776221bf iwl_send_phy_db_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x867be3ee iwl_poll_direct_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8c5d5ab3 iwl_phy_db_set_section +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8c642526 __iwl_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x9c8951e5 iwl_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa9548980 iwl_set_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xaa6d08eb iwl_wait_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xafe6d2de iwl_write_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xbd6b40e7 iwl_read_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xc67c31ed iwl_notification_wait_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xd5cc76b5 __iwl_warn +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xddd8e26c __iwl_err +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xf292cd5c iwl_parse_eeprom_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xf3235a15 iwl_phy_db_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xfa68f1ac iwl_set_bits_mask_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x08875f6e lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0bb966dc lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x19613d50 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x209c176b lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x385c99fb lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x50c0c512 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x609ba1df lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8e711a44 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x93f21a1b lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb75194c4 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbc22d302 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbc681022 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbeafda8c lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd23d1e8f lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe5be0c16 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xeb50848c lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0193221e lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0d54b6fa lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x1bfcce7a lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x4a7c5bfc lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x6622187d lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x7f194b6f lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x80bb6818 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf4c07568 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x9cd2fc20 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xace56632 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x191b52cb mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x19ea52bd mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x19f93c07 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x4be401aa mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x4be8cea6 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x4e6ffa49 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x514b432b mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x573a1263 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x88deaf8c mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x91b04db7 mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xa1256324 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xbaac9626 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xf2557bc6 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xf7f7f98a mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0a16ab83 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x1830203d p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2966b432 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x29b7873e p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x949c1d49 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa0e11d13 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xbb5853b2 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xdc573c4a p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xfdeca086 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0a986f19 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0ed6943f rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x147a8def rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x25d22f81 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2d39fc36 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2dc754fd rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x34afcfca rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x369b0495 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x38755184 rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x48edef08 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4c66fed6 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4fb13927 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x579c96f9 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x641075d0 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x64bb01c4 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x658eb19f rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6a4181a9 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x79bdba04 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7eb1075e rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x83c91011 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x83fef2c8 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8ec7a040 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x90b231b7 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x930cf380 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9a3b0121 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa4e791f8 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaa8480a6 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb4036366 rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb59db0b5 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb9f240b3 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbdff2405 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd750a73c rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf08517e9 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf0ea1925 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf2260e42 rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf55fc237 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf63b5c17 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xff6bbcf4 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x0e4fe530 rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x0fad1430 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x2505789d rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x2e328fd1 rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x60ab4279 rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x6e4f2be7 rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x751ba7d7 rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x77951b89 rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x87dee370 rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x89df8d89 rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x908d0253 rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x92c0bcd1 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xb0ca65f3 rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc6a1455e rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xe28f94c7 rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xe51b6f48 rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xefafcfaf rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xfffebcc2 rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x00c6f557 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x05bed349 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0c9b0df0 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x140f1049 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1600e779 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x160636b3 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1b54c984 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2105f1d9 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x23451f70 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x235b9a78 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2b550022 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2e9f5dfa rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2f273cdc rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x30980801 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x35c896b9 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x39df920a rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x43243109 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4ffe9754 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5171024f rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5395ca74 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5c5ac912 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x62b1f871 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6889b03a rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x68abda06 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6ed81d10 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x79d7abb6 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8e690bc2 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x90c0f53b rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x92b3f3e8 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9568f876 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9dabcebc rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9e59df09 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa59d7ba8 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa6bad29e rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa76b30fa rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xac79bb30 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb12a7e57 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb196f6e9 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc6d4f8a5 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcf6e70c2 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe031a4c7 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xea22b31c rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xefd70e91 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf8b8cfde rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf94f639b rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfdbd3bab rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x25d29d72 rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x5a437293 rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x5e14dedf rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xa2ac165d rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xb46e1a2c rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc5381d56 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf1a6e679 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf5442566 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf85ae7c9 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1a12fd5e rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x26bfcc70 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x512bab86 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x548737f4 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x60533bd7 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x639ee052 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x69bde9c0 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x721d7a01 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7b97c10c rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x827b3010 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x86f6851b rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8a2f4e18 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa3426d7e rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xaa879a2d rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc81deead rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdd9a408f rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x251a4d04 dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xab590b1b dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb0dee3a9 dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc8aec48a rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x0cce3b48 rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x237b88a9 rtl8723_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x2ef3281c rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x4b5e3136 rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x504bfd18 rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x56373320 rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6067f81b rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x64cabbde rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x67c155ab rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x69bbcc69 rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6fee3a6c rtl8723_phy_set_sw_chnl_cmdarray +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x7468dc35 rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x7744610c rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x82017c93 rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x82e0004b rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x951bab56 rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x96f65c72 rtl8723_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xa75560cd rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xa85def78 rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xaf4d6d94 rtl8723_phy_calculate_bit_shift +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xb38e9eb5 rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xbcde7613 rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xc9775193 rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd986fad9 rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xdf6db3f1 rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xe909e6c3 rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xf0e2a2d3 rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xf452deec rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xf8c3c8e8 rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x04fa206c rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x0bba54ad rtl_dbgp_flag_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x0d0b6636 rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x241dedc1 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x24b2a46e rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x392aa88c rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x546bf230 rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x613ff2cd rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x6db71af2 rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x9e580932 rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xb204549e rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xc2459542 rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xc4902d65 rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xc8c402cc rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xccf1c1e1 rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xd5d3fb80 rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xd9b6472f rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xefebfa48 read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf1b22a82 rtl_attribute_group +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf8ff6add rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x8cdd3b34 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xba3c5ae2 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xc81e6255 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0079c362 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x05294fba wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0b106cfe wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0e0fbd33 wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0fd2225e wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x17469510 wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1b3e8f5f wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x249df5a4 wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2e3b3104 wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3649b423 wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x37ed07a8 wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3c45b3e5 wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x401b1eb6 wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x418cfe9e wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4f794360 wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x54501eae wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x56db43a8 wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6088884c wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x75e333ea wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7c49a030 wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x80b7bc16 wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x94697b85 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x96adad21 wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9850e75c wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9bdd5dbc wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9c67dc79 wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9f0de64f wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa0b6e84e wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa592e073 wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xaa6e06e6 wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc05d495a wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc7c20d6a wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xcb4e3322 wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd7022c67 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xdfa17def wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe31bc5bc wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe79a6a73 wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xec296c25 wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xee77eff0 wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf0e60eca wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf1d8c590 wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf2ae7455 wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x09f57e41 devm_phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x0d35b423 phy_pm_runtime_allow +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x3ad4bafb __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x43f55c91 phy_power_off +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x467c9eb4 devm_phy_destroy +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x68cf25af __of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x6d637825 phy_destroy +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x7003cede of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xa056f832 phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xa7860b24 phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xab2b1446 phy_power_on +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xadbb883c phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xbebc26bd phy_exit +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xc5b34f67 phy_pm_runtime_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xc6bfb6e4 devm_phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xcf099d29 phy_pm_runtime_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xdcc59581 devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xe7b02ec1 phy_init +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xe9b3f528 phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xef1cf287 devm_phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xf3c0a4ac of_phy_simple_xlate +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xf9eefc44 phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xfcc15dd6 phy_get +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x4c93a62e pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x69cde377 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xcca4b9d3 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x1cb67d75 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x546dbc9e mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x8a08c08b mc13xxx_get_num_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x950f6b2d mc13xxx_parse_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xbd1b20cd mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x0d9f08a2 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x167d16dd wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x4d649c35 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x84a86c30 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8feb2a33 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xba20ef9b wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xe200314d wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0932d7db cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1043544f cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x12259424 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1e2a75ec cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x21bbbaf4 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x21f4f5b7 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2dac0c7e cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2defc9ce cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3766bd89 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3b14ac39 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3b8aa459 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x40ec9284 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x52a4fbe7 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5967215f cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6ae793fe cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6f8c752d cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7093f310 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x70b1e5a6 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x74f3edee cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7a5650e7 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7bac76ef cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7d8e4006 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x88ff8013 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x903f8f51 cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa4b9099e cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb4aeb0a8 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb7845b7b cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb79fef8c cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb8bbe41b cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbcb24d82 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbcd52478 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd90c4836 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdcad06b3 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xddb4e057 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xde03487e cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdfb16fb2 cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe85398ae cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xeb0e7aab cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf0754dd2 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf2a67c3b cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf2e764ac cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf586ac98 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf9abf221 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfc87d210 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x6e2e82bf scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x7638b262 scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x7888835a scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xb4580bf3 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xe16f0b4c scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xe47278c8 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xfbfa1351 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0cb22b3f __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0cc4465b fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x11fa1054 fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x1e29d079 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x240c013b fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x604ca4b8 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7e0a55e0 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fc0d2ad fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa1a16467 fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa4c6eb13 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa7e35efb fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xba7533e1 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xbe8ff2ef fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc4a8b61c fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd68d4074 fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe17617b3 fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x043f0157 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x104191f8 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x235b4feb iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x440f4909 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x5517120a iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xb0c09b27 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0796522c iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x101f09fe iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x17c69e42 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1f726550 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2511430c iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2e0cbd46 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x33901f04 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x34c1193d iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3ce74ee9 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3d08f088 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e58ca7e iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x43b2fb67 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x446fdebe iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4b7ace89 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4eb92924 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x563e199d __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5815d611 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x59784b36 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6391950a iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x66bdb40b __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x69fbca01 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6c6d6fc2 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x782fbde9 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7e811807 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8fc0fb5b iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9c4ecaec iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa74d9f8d iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa7678e60 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaf45b4d6 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb2719bf2 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb3273ccc iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc2b6ef4b iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc98cebc4 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcdc9269d iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xce42d169 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd7800b1f iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd8e3f639 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd9350d93 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdc6c00d6 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xde99941b iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe58ed8b4 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe77cbf1c iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe86e78e8 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xefbe5574 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x12359621 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1284b17f iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x17d15072 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1c46d5d0 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2fcc1e84 iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x356aea67 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x36a07ad0 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3c88274a iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x587f82a2 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6119477d iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x85dcf9cb iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x92b1f5fd iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa16a2412 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xafb3e36d iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb066f371 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd7d2bf0a iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdee90a62 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x08e8cc01 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1676b165 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1c12a481 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1fe5cc08 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x32f837ce sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x422b9b4c sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x46e49a7c sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4de82bd4 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4f85ac9c sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x56d73cc2 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5fbbe25d sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x64a4f84d sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6f8510f6 sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7061c4fb sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x77fc05d2 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7c386952 sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7e7000fc sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8f39d960 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa3d7721e sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcf16bce3 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd7ddd0cc sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe5c931d2 sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe9d69564 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf2dd1a48 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf9f56af6 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x0777979f srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x083a0a6e srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x490cd340 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x6f44e5a1 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x72623cc8 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa24dfa53 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4cdcf4f1 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x939c782e scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9ef51ec9 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb9c1ace0 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xdd502721 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe4ef1bac scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf0db874e scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf4308251 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf7492637 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x008188dd iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x04dde51b iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0c2d9396 iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0f0d2d52 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1e9802e3 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1f651542 iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x223b50d1 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x23b1fc99 iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x258d4da6 iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2699f7f3 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3056647e iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3e4248a8 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4322d19c iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x49423316 iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4d87c934 iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x50c53f21 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5b442ac8 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x69c28993 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6cee6365 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x707703fe iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x72118f46 iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x77cf5355 iscsi_is_flashnode_conn_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x86918382 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x92be80b8 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb2c17c30 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb33e06ea iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb78a0796 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc2d086f4 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc39f0236 iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc72242d9 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc7f0805d iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc9c652f3 iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcb913d05 iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd00e7a51 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd5245a05 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdce6309c iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe3e0cf19 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe506358f iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf06ff2b0 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfde3a090 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x35a266e0 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x9f99079b sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xc5c21a3b sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xeff83d05 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x5447fe5f srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x65e7af17 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc1696c3e srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xda276826 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xe61c2931 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xee891cc0 srp_tmo_valid +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x170adc8b ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x7c40d50f ufshcd_remove +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x999bace8 ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xb27a51f1 ufshcd_init +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xe5e828c5 ufshcd_suspend +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xebca9662 ufshcd_resume +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x33b8e607 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x361756e0 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x3c362fa3 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x88c8ded9 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xdd085308 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x09446078 dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x22dfff32 dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x435a54f7 dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x45513e61 dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x486adcc8 dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0x9e43c6ad ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x041ca8c7 comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0802123c comedi_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0dfe99e2 comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0f0d875c comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x14283c74 comedi_buf_put +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x209e507d comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x20d4f67f comedi_pcmcia_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x25178207 comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2572c78f comedi_dev_from_minor +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x28417895 comedi_pcmcia_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2b510d0a comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x34861e19 comedi_pcmcia_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x36f36e20 comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x387f515a comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3b44d7d0 comedi_error +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4086ca15 comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x47db6e60 comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4a107f84 comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x558f8e35 comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x74f90bb8 comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x77259dd2 comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x77c631de comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7b2d1c5c comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7df83b06 comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7ed88625 comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7fcdb0c7 comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x828dfd9c comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x85a8bc37 comedi_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x87a2fa8d comedi_buf_memcpy_from +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x94c96102 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x975e490e comedi_pcmcia_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x9cc10bd3 comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa5dcf5e9 comedi_pcmcia_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa6f2147e comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb135806f comedi_event +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb46c2fb5 comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb8528462 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbb69a8b6 comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbbbb8609 comedi_pcmcia_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc3ccdae5 comedi_to_pcmcia_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc8d665c2 comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xcf741e43 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd45b8ca3 comedi_buf_get +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd51d1dc5 comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xda13ecbe comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe48241df comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe9d4261e comedi_buf_memcpy_to +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfa5324e2 __comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x17159398 subdev_8255_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x86826d34 subdev_8255_init_irq +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0xafd3fd46 subdev_8255_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x71f1d648 addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x0e3641ab amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x107d1c49 amplc_dio200_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x7f153d4b amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x205b155e cfc_handle_events +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x2c3d06b2 cfc_read_array_from_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x5c1bdbce cfc_write_array_to_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x7a0b9096 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x04bcb0c0 mite_setup2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x15f1c089 mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x31b78128 mite_prep_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x50a82c2e mite_bytes_read_from_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x52a14851 mite_sync_output_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x53184caf mite_bytes_written_to_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x59879a59 mite_bytes_read_from_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x5a37fad8 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x76b970d1 mite_release_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x788880c0 mite_unsetup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x80f4b110 mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x82a6b48d mite_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x8fb09ca5 mite_dma_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xa3a63863 mite_setup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xb2d592d1 mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xb2de530f mite_free_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xb35841b4 mite_sync_input_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xcbaa0c58 mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xdeeb5c50 mite_buf_change +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xe2c63626 mite_done +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xfe5db10a mite_dma_tcr +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xff79650e mite_get_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x029ac57d labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x04d2f156 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x10ad9599 ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x2d55edfc ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x34a357cf ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x5c8aa53a ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x809b05c1 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xaf2027a9 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xe702ded9 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x4fe9d4a3 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x664c49cb ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x69578fe2 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x797f5610 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xb62f35e9 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xdb770470 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x3d6f6444 comedi_open +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x4c20729a comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x56e86d52 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x681bd77d comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x69b6570b comedi_dio_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x74cc9c00 comedi_close +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x8c1f30af comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x2206b003 dwc2_handle_common_intr +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x64f05f22 dwc2_hcd_remove +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xb05a818c dwc2_set_all_params +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xc66db94d dwc2_hcd_init +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x1a1b5249 oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2feda75b oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x3227a28e oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x7dc9dddd oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xb2c66001 oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xc8b5a524 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xd370f679 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x8b53175d adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0xbd5a0e51 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0ef1d765 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x206e3036 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x20e5ba06 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x3a45a057 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x56eefff2 spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x5c70aa6b spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8ed021bf synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x95aada35 spk_serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9bfe70c3 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xa609cc2e spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb35aaab9 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd1b551a2 spk_get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xf562df54 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x39be3975 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x4b04b302 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x4b17a5bb usbip_recv +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x4e361650 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x53ec1652 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x6d1b0f0a usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x7cdfb1e2 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x83cc393b usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa4eb5197 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xad722f32 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xb9f2d30f usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe5522da3 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xff36b040 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0xa31d4210 pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/uio/uio 0x472cdbd7 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x6754f980 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xdae5eac9 uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x1624e4ab usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x85f03d84 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x62b267f5 ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0xbd8511f0 ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x170e9bea imx_usbmisc_init +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x74750d38 imx_usbmisc_init_post +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x17640ed7 usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1c24f892 usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1f694a0b usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2d3b99e9 usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x38af70c6 usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x568c7779 usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x56f743d8 usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x578fc2ad usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x6907bcf7 config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x76332c53 usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7a17fbef usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x879ed9f0 usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x8d0d1320 usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x911155b1 usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x94d7075a usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x975713c4 usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa0e586a9 usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa862401b usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa8ee8200 usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xae30d8f2 usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb4c7dfb4 usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb6718ba8 usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xba8c8378 usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xcaf30ede usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd1050f1e usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd3a25848 usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd4bcf9ea usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xff0b9236 usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x4332c93d gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x450e1fb7 gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xa064fc2f gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xf078c796 gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x23c0247d usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x26808b37 usb_gadget_unmap_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x3128598d usb_gadget_set_state +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x3d525b14 usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x761f7882 usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xab6960d7 udc_attach_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xbba97b3a usb_gadget_map_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xbddf4da1 usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xf317b2ae usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x0a5230df fsg_common_set_nluns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x141fce2a fsg_common_remove_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x1ccb58f7 fsg_common_set_num_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x2d10b6a7 fsg_common_create_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x51707c29 fsg_common_run_thread +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x6acb4179 fsg_common_set_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x7e26d4a5 fsg_common_set_sysfs +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x8797681b fsg_common_remove_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x99023bfc fsg_common_put +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9a0221c7 fsg_common_free_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9dc025a5 fsg_common_free_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xa46e6443 fsg_common_get +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd3ae3b65 fsg_common_create_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd468f882 fsg_common_set_ops +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xdb69b1c3 fsg_common_set_cdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xe4d1591e fsg_config_from_params +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x45785ef6 ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x68ead73e ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0ab915e1 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x20533ea4 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2d8b7c8c usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x31bc0024 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5027b294 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6b682bd4 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6fbbbdb1 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xcbc6bf9c ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd011db78 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xf665e755 musb_interrupt +EXPORT_SYMBOL_GPL drivers/usb/musb/tusb6010 0xb7e75b2d tusb_get_revision +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x611faa76 usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x65310627 usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xc135ca3e usb_gen_phy_init +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0x03e0002b isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x10132709 samsung_usbphy_rate_to_clksel_64xx +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x154ee86c samsung_usbphy_rate_to_clksel_4x12 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x2e646e25 samsung_usbphy_set_type +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x358995a0 samsung_usbphy_set_isolation_4210 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x46114477 samsung_usbphy_get_refclk_freq +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x8f2dd53a samsung_usbphy_parse_dt +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xa2921108 samsung_usbphy_cfg_sel +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0xf4085c73 usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1bb51551 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1e9e80ec usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1f73fec4 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3115606a usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x418ce969 usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x45aacac6 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5a029c2e usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5e20ec25 usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x649c5abd usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x69146d4d usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6c0d9d6c usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x767b4252 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x98c273c3 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x999bd22f usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa1b4e1c5 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xadc6eede usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc441e78a usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc8881940 usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd5bd0923 usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf0b3d6f6 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf2c680ff usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x10542980 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x171c647c fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2528367e usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x344469cc usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x41b2af09 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4a07e874 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x57ed3d34 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x58adc498 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6d070a4e usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x716e7adc usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7615a7a9 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7f294008 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x98007a5b usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa1e09e59 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa940512a usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb1f4d98a usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb61d81be usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb98849cd usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xca1610e3 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xca78bb51 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd1760160 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf017850e usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x00f4e16f wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0e3437d6 rpipe_clear_feature_stalled +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x3ce0037e wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x3decf73c __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x8465cad7 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xbc8639ce rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc543b60e wa_process_errored_transfers_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x112eb7f4 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1ce47e5e wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x337d2ae8 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5fc69394 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x682a11e0 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7ba51bec wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f554e59 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8f3919a5 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa3665b93 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc1522e7b wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xde4e944a wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf9f0c791 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfa1f9d4b wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfd64f91f wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x9316e8fb i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xc5ddc72e i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xf337870b i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8b57d9d4 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x95e04e3a umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb82d5faf umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xbbef8d6e umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xbf929fbd umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd7699c9e __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe1eeee07 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xeac231b6 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x065edebb uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x080bd416 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0a0fe701 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1d1717b8 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1d4ee68e uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1de48078 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1fd7187b uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x202aaca5 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x225cb433 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x241c7d1b uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x241cd3d6 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x24f0ad70 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x278b5bfc uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x28934ccf uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x482f465f uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x51b9fc8b uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5d2f1f69 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5fe59074 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6570047b uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6c287de1 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8e9ef71b uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9c64d0a6 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9c9b2084 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa07bf962 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa617947c uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb24bfa18 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb6268dab uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbae3ddb8 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcad6de47 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd14ef0d0 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd4aa46fc uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdf17a0f8 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1eaf8da uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xea804829 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xee4da4ae uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf781b239 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xff031929 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x511d6153 whci_wait_for +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0896d265 vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0d5b9624 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1b563859 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1c603ad3 vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x269f7a09 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2b79b861 vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x37e8db53 vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x37f3036b vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x41768832 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4636701c vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6d6252ad vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x81512296 vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x86c8e0c2 vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x8c2b57c7 vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x96df6a12 vhost_poll_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9904cf21 vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9b827e37 vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xaa551123 vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb0f81e37 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb961e718 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbfe50d91 vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xcb963b01 vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xcc52e987 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd0075cfb vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd904f544 vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf24160c2 vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf3458201 vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf60d2d53 vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf6d410aa vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfa3e779d vhost_work_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfd0206a2 vhost_init_used +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x2a2603fa auok190x_pm +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x428c7001 auok190x_send_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x44e28ac0 auok190x_send_cmdargs_pixels +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x67e7ed0e auok190x_send_command +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x875060f7 auok190x_send_cmdargs_pixels_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xa8391613 auok190x_send_cmdargs_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xafcfeaba auok190x_send_command_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xb277d79f auok190x_read_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xc2487273 auok190x_common_remove +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xd5ddd7e5 auok190x_common_probe +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x0a24e85d ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x22184a89 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x58a604df ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x8666f0fb ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd4f8aa8e ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xe3d25270 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xf943907e ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x5cf7c71b fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xeb759230 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x137d1678 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xdfb5afa7 sis_free_new +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x78788e13 unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x8861f6ef register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xa6153144 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xe987fa6b register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xebbaffe8 unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x017fc249 virtqueue_add_inbuf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0299dae9 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x08383cfb virtqueue_kick +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x14456661 virtqueue_disable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x1c73ca4d virtqueue_add_sgs +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x3264a7ef vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x5bc4d974 virtqueue_notify +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x6d5af8aa virtqueue_get_vring_size +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x7fa00fbe virtqueue_poll +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x8e529b8e virtqueue_is_broken +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xd0ca0598 virtqueue_get_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xd0da0cb7 vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xda6bae48 vring_transport_features +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xdffe0b3a virtqueue_kick_prepare +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xe43c736e virtqueue_add_outbuf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xe48ac2f2 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xe683a1e6 virtqueue_enable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xe8303ed7 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL drivers/w1/wire 0x0330f2b8 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x10efb8f9 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x1d1665b1 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x3f353152 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x62076b78 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x627f8949 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x6c6b1d79 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x78e095e9 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x79d6cf75 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0cc51c27 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x188975f4 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x3fb31d6b dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc6dc8c2f dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x2aa2d452 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x2e2fe3c9 lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x508b49d0 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x76c6e4a7 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9cf59232 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa3d730e3 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb73b0965 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf3831e9e nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xff362b7b lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x01739e00 nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x03f9fadc nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x05ab550c nfs_remount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x06414561 nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0774dd2a nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x08ff7ff0 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x09b28156 nfs_try_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0a235145 nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0eb4e2ca nfs_set_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0f33e370 nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0fd8a04b nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x12c7d25d nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x155368d8 nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x15b78052 nfs_file_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x16d4cd07 nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1773914b alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x183683ce nfs_generic_pagein +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1b06413f nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1b255281 nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1d982c50 nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1f6e8d8c nfs_writedata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1f88020e nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x221198c2 nfs_fill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x23290bc3 nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2602b078 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x28ac1af3 nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2b55c8c5 nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2daa0386 nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x30e3bfb2 nfs_put_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x30eb6496 nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x31df433f nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x328a07ec nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x32ed5cfb nfs_pageio_add_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x355469a0 nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x38dcbf4e nfs_file_splice_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39108e44 nfs_fs_mount_common +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ca31f35 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x40662780 nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x417281d2 nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x41907486 nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x423186b9 nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x43dfe338 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4500fc21 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4606ecd0 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4a1d7f0a nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4ba2bef7 register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4db54d80 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4ddaef21 nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4f004281 nfs_readhdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4ff5b2fa nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x505fcf93 nfs_writehdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x57a649a3 nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x59484441 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5aa5ca33 nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5accfde2 nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5d1d4461 nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5d9e026a nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e1d863a nfs_sockaddr_match_ipaddr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e4ee917 nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e85e37a nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5f532d4e nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x60122cbc get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x60412ddd nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x612ecf65 nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x61603bdc nfs_generic_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x61683b98 nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6a069cc2 nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6a67cd8f nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6f6a560c nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6faa8d5b nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6ffddc3d nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7238a0d1 nfs_setlease +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x78329525 nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x842a1098 nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x86026202 nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x87c72dc7 nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89bc5a64 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89cd9b66 nfs_file_splice_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9152388b nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x917ad709 nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9317d2ea nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x94add155 unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x95d9acca nfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x99586287 nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9987eecc nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9ba8b383 nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9c063433 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9e523d3f nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9f6147ec nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa0e885b4 put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa1e5c160 nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa2f0d20a nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa3a0a8b0 nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa55c6afa nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8d2d1ce nfs_callback_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaaa14361 nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xafa37192 nfs_readdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb606e716 nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb6612d3a nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb8ea7eb3 nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbcdd8115 nfs_pageio_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbd616bf8 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbe0bf1ca nfs_clone_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbe470cf6 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc1ef2863 nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc28bb008 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc366f8ae nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4ff1e9f nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5ef47d5 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc7a5d750 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc97a87cc nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcdca7c74 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcedd2cc7 nfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd15815cb nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd590700c nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd7b96125 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd8da41f4 nfs_fs_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdb22339e nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdec70fe0 nfs_file_fsync_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe34cccf0 nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe3c29344 nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe5c3a65a nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe807c44f nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe8703198 nfs_destroy_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xec18cc04 nfs_pageio_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xede3ed0f nfs_probe_fsinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeef2c16b nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf0b8985c nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf2feab80 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf7aeb36c nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfac540e4 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfaca377f nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfb7ee006 nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfd6e3ed7 nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfd83cf46 nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfeaadea0 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x00419271 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0076e6e0 pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x03d2bfee nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x096d6e02 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x101d922b pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x11bda27c __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x12024eb1 nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x12701321 pnfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x170f3ed6 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1e32d3d6 pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x26672fa0 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2b7a07f4 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2b85370f nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2c9e6085 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2da7dbd2 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3c24e1bb pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4b151cbd pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x50ca58d3 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5ec56c60 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x665fa50e __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6d58fadc pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7029207a nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x714e9be4 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x72d10127 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x72e57b2b nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x98622314 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x99c26b10 pnfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xac29b106 _pnfs_return_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc50a5cf4 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc5abb172 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc770beca pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc95d02d2 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc9d12ebe nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc9f72296 nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd3a99165 nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdb813e84 __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe01201b5 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe07c49e6 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe5644859 nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe8c950e9 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xebfbf42a nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xec193b99 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xffbb6d2c nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xaceb4090 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xad1bb24b nfsacl_encode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x0eaeebf7 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x2fd74378 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6af985c9 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6d43d762 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x737a9f8d o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd710e946 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xee83ca82 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0bf18e2b dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3d85e703 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x750eee5e dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7b30dd7b dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xbe52ea63 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xbe9bbefc dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x6c9f06a5 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7aab9209 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x85baf096 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x72712a73 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0xa6e3399b notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x021957e1 raid6_datap_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0f8a2742 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x201d8ea3 encode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x29fa419f decode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x49265b8b garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x7ba3500f garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x9cdaeb8f garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xb36f62d5 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xd36a23b3 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xe6b16529 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x0b0a506e mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x18709061 mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0x4ab333e7 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x5e94e91f mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x71b07cd1 mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x841288eb mrp_request_join +EXPORT_SYMBOL_GPL net/802/stp 0x1f829504 stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0xc5a8faf0 stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x3c7e2988 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0x8246de1e p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0xb09faf79 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xcfb6a3da unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/ax25/ax25 0xbd798fc2 ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xf685ed7b bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x012bafc3 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x03a5e6de dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x04b726a9 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x07ca4a55 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0d798e31 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x10a9b959 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d554196 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2154bd2c dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x25cbf1bc dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x27eab609 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x32f7be9b dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4230da20 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x454e5acc dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x55fae5c1 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x60c75e59 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x69ef8b00 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6e487807 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x76afa620 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8597b81b dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x892a4c6a dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x93efdf15 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x999c6ff8 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb1073c0b dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xba030e97 dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc0b7b890 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc14f02ac dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcb0c8af4 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcee70d0d dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdad6eeb6 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe6a32c0f dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf0f7df0e dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf5b385da dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf71b3e90 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfc6b8156 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfff582d0 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x03d7f5f2 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x44419c4e dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xc562431f dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xc6d09944 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xdba91960 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xe0ab42a7 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x15f038d5 register_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x549880a4 unregister_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x40a48aba gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x429eb051 gre_cisco_unregister +EXPORT_SYMBOL_GPL net/ipv4/gre 0x526001a8 gre_build_header +EXPORT_SYMBOL_GPL net/ipv4/gre 0x91e13ba4 gre_cisco_register +EXPORT_SYMBOL_GPL net/ipv4/gre 0x9b778d26 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x542e6f25 inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x560d253e inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x62ff3371 inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x9a186e95 inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xd8bdf6dd inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xf32347c4 inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x1c5f8efb ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x56d2d703 ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x6256a5fb ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7e9002a4 ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x805bc60d ip_tunnel_ioctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x81c42ac9 ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x8faa0428 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xba195670 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xd50489ad ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xe3bb2b7e ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xf34242e1 ip_tunnel_get_stats64 +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xf62bfa2c ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xfa8cbd7e ip_tunnel_delete_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xfca31652 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xe33376a7 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xbfc7907a ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_ipv4 0x5ed2db52 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x28774503 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x9f4b257a tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd4a5e8ee tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd56a5a2a tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe68d4a87 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0xe57d470f xfrm4_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0xe66e7a42 xfrm4_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x164728c0 ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x16adf92a ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x223e5636 ip6_tnl_dst_check +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x496b7c88 ip6_tnl_dst_reset +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x91dfe17d ip6_tnl_dst_store +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x835bbe13 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_nat_ipv6 0x0b290b38 nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0x294cbf2e xfrm6_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0xb14f1927 xfrm6_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0201e7fd l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x33fa39bf l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x355dbc19 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x451e3c2b l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x466c83a7 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4959c633 l2tp_session_queue_purge +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5be6b768 l2tp_tunnel_sock_lookup +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x696c1a13 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7d660257 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa9d0a796 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbdf04f95 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc0088163 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdaf63709 l2tp_tunnel_sock_put +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xede32666 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf32f5606 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf64a348d l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf81c1dd0 __l2tp_session_unhash +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x4fb5df98 l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x14902a57 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x282afa88 ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3663a36d ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4bf42798 ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x57724bfb ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5d38f601 ieee80211_set_key_tx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5f1a8c02 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x8e6af7fd ieee80211_iterate_active_interfaces_rtnl +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x907658e8 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9f422624 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa73ce08b ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc9fb76f3 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd2aeb214 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe020e413 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfaa826d3 ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x1c110049 ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3678d056 ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x52217157 ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6344eaf6 ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x70b4e06e ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x70c81099 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x84a87d47 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x98fe3213 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xba9a3229 ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc83b645e ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xcef33271 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xd40df179 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe4a3e247 ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe8a67c89 ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe930f871 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xed97df6c ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xef13ebbe ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf4937406 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x09af4b49 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x13e5b90d unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x37d193c4 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x7012b602 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01f84db5 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x07e87dfa nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x090a7e5b nf_ct_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x09a267ac nf_ct_l3proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0f62ee62 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x135b8b2d nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x150f4282 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x17c08e8b __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a57665d nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1df6818b nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x21afcdc0 nf_connlabel_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x224586e6 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25157347 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25239728 nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x26707da9 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2726f236 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37386cac nf_conntrack_hash_rnd +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x39b16282 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3e893ce0 nf_connlabel_match +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x42f68cd4 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b31f06e nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d965254 nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x525a2992 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5643442a nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x581919d9 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5a7229fb nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d6db540 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5edb2a81 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x61160cdc __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x63d9e755 nf_ct_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x65a63735 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x68f607ba nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6af562a4 nf_ct_l4proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fff8279 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x72ad094c nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7904f3e1 nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7b22b79e nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c95c05c nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x804306fb nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8239fca4 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x86fdb137 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8715882f seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x87362c6c nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8af09c9e nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8b02c124 nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8b38ef24 nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c23fa3e nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x948243a4 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x97732336 nf_ct_timeout_find_get_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x98c10855 nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa01582a3 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa150a7e0 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa4b947f4 nf_ct_timeout_put_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa956c107 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa9652dd5 nf_ct_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad4b2001 nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb09e88af __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb0eaffbd __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2756479 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb4bde552 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb9b6d132 nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbbf287d5 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbfd933f6 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc24b9c21 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc6f1f299 nf_ct_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca81cb5d nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcc8dca23 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcfaaa223 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6a94526 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdb37588f nf_ct_l4proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdce68915 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe41b9aa5 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe92faa70 nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe94cbff3 nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf4547630 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf55b56d4 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf97a9c59 nf_ct_l3proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf99105dc nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfebba8a1 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfefc1796 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x2de26905 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x263247de nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x32991fdc nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0a3429e3 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1e6918f5 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x258a1fce nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3c5fcf50 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x60c0bc82 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8c505968 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa9fe3d76 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc0464548 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd00c7930 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe338f071 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x31b7c7c7 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x5330c89a nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x8fdefa3f nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xa5a1b649 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xdb9883a6 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x6d2f979d nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xd8274b85 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0fa9964f ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x27e771a5 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x80faa610 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x895136ea nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa1b11139 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa8eee15a ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xed3698ef ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xce02f18d nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xd210c1a0 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x05385158 nf_nat_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0d9bae4b nf_nat_l4proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x131f636c nf_nat_l4proto_in_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x24bedea1 nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x4ba48dc9 nf_nat_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x54126118 __nf_nat_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x5d32ed2d nf_nat_l4proto_unique_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x891df25d nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xbf224c86 nf_nat_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xc11779b2 nf_nat_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x0ff573c5 synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x11a006b5 synproxy_check_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x5f339439 synproxy_build_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x90298227 synproxy_init_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xb42e336a synproxy_options_size +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xe59bf959 synproxy_tstamp_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xef7db50c synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x095992b1 nft_validate_data_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0fda3c99 nft_validate_output_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x1d81beb8 nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x219672ed nft_unregister_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3d49dab7 nft_validate_input_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3d7aeeaf nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x73a6bab1 nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x844b049a nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x90b71848 nft_register_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x97d41f5a nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9f026546 nft_register_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xda5f2f2b nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xdca67259 nft_data_uninit +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe5d6afcd nft_unregister_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe9a49aa4 nft_do_chain_pktinfo +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x14cc2f3f nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3836c90b nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x55b3d26f nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7be493f8 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8e51018f nfnetlink_alloc_skb +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd104d5f2 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdfd903b1 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x21f6bba6 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x42f1e774 nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x67858e61 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0912e2b2 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x26c7a88e xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3197a7f8 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x44aa428a xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4b4e3a40 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x56d9dcb3 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x61d93bd9 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x83e73793 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x865fc08a xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa9132f0f xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc93db39c xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcf99e3f3 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd5358c18 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x00204983 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x482b6a12 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x17dbe0e2 nci_spi_read +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x7132141b nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xdea5d58c nci_spi_send +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x01a87fca rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x14373626 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x1cfb1c20 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x29e3510a rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3dbeb164 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x42953dd1 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x4622b59b rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x4af83c36 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x4ff9dc96 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x56ffac07 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x6ac3863a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x8b20dc4f rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x8d98579e rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x9191b5ab rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x976c0e6d rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x9d515c32 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xaa7ce1c3 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xb32dbdbf rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc63aa374 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0xdd1121e5 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xe55fada5 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xe6a3a17d rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0xeb6f67f2 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0xfe9f7fbe rds_conn_create +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x92988dbf rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xa1280af5 rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x04cc187c gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4d3dfacb svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe5df55eb gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0369c6fb rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03cc06f6 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045834e9 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045f8344 rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0735b556 rpc_rmdir +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x073c30b4 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09080959 gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a8ebc6a rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bf605ce svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x127919bf rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x135bfa0f xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1472778b xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14ad5f55 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17063959 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x178c0238 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1872576d rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1917b0ed svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c785223 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1da691c1 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1dbe2d45 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1fd794d1 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1fdcb16d rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x206374ff rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21364e80 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22565ae4 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26d0b305 svc_shutdown_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x292b037b sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c5adbaf rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2cf8f3c8 rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e22a987 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3298f0c1 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x337891a7 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33b5f218 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x353c1fff rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35448c65 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3680d61f xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37812c78 cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a40aa70 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3aeefce9 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b232918 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b346072 cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c17595b put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40842f5e rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43d08aab svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44f434db write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4635a754 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4887b7df svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x499521d8 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a088b71 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4adb847f rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b2b36b8 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4de6d28b svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4fedcf64 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50909853 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50ae50f3 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x555da2d5 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56ed8c98 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a31a3f6 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a91e090 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b49c315 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b8930d3 cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d36f60a xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d933dad xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x604231ee rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61194ff6 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61c0dd3e xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6265d053 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x644a1444 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x658c872d svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65bd919b xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65f173bf rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66807fc8 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66e7c15d svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67a05794 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67f05207 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b8c5014 rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c45c418 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6cb3c4d3 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e21b0ec svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71c01c18 rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7540d87b svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76cfd543 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7708ced9 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78596f2f rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78a3818d rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78ebb16c xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a231b21 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7db50594 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f268c47 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80951b28 rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82948537 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83199aee svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x848d8b4b rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86111fe1 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86952bdd rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b31f786 rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b88a6ab xs_swapper +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c623d71 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d3d6059 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9087aeb0 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9095048f rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90de0541 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x91c5f9e2 rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9373b74a svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x960cf25b rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x980b35c1 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b75d64 rpcauth_list_flavors +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9953bc15 rpcauth_key_timeout_notify +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d1848eb rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d87972a xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e61a19c svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9fdce73a rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa00d64c3 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa15e225a _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa22d554c xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4a94590 sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa518bd30 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa598c54b rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5a27e4f rpc_protocol +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5caa174 rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8b7b783 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9664c1b cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa47b35c xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa73e6c1 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaab79420 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaad3d697 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xabde6c3b svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac658de3 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadb129cb read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0898bb9 rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3cd790e rpc_get_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6cbe33c svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb70bd0fe rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb71f5b05 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb30aeaa rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc634d0c auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf1b4f81 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbfbb36e9 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc083be30 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1e93dc0 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2ecf0d4 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc49653c8 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc527fd96 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6810789 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc971090a auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca07a714 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb0e16cd rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc57f205 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd433a9d xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce561531 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcede8897 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd06c970a svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0cf9de0 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd132ef29 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd334210c xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3da3209 rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd40c6aa6 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd55615a5 svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6f7f7e3 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd76c992c xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd837e49b xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd99bb00f rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9fb5fa2 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdabf3811 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb424f7a rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc533291 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdebae7a1 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ac2bb8 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2f069a3 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6911422 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe72feb65 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7346245 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7a3b133 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8bc2a32 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb365ff4 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb5a4881 svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec146568 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee1e4f46 rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeb9562f sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0c3a542 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf34642de rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4e1c270 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5686726 rpcauth_cred_key_to_expire +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf775966d rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9a8d786 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc3c5c36 xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc4e570b rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd802ab7 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe2cfc2a rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe42a0be xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0c79d5ef vm_sockets_get_local_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0e0d7136 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x15c0c57c vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2663cb64 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3036ce86 vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x34484186 __vsock_core_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3579927c vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x4d1d59aa __vsock_create +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x53b83be5 vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x5e673883 vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x74e91915 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x751ff010 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7f730c80 vsock_core_exit +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x80ebdf05 vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x81c3007f vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x918959c5 vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x92f98a42 vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x9819d1ba vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd0f699d vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd95ac116 vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xdf376c00 vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf593c40a vsock_pending_work +EXPORT_SYMBOL_GPL net/wimax/wimax 0x0cb9a90f wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1d9a421a wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x23752082 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x340d92e5 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x3bcf699a wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x48f3081d wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x55ef7f79 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x60e0c197 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x73abea46 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa92aec77 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0xbe19f8fa wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xeb3274fb wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xecf72616 wimax_dev_init +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2312658f cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x248d227d cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x31b89e06 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x494fab8a cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x532bdcde cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6531ec9c cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x94529b61 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9554bbec cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd9dd3612 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdac9ab96 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfb4cbabf cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00778770 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x056bb269 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0a575945 xfrm_count_pfkey_auth_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0b9e5852 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x74e1a843 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7a8ca627 xfrm_count_pfkey_enc_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7c30b8c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x92dbc6c1 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xbc8b0f41 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xce7a55c1 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe122af95 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x1119d2b9 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x85feb865 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xac2cb23a ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xafb89e0c ipcomp_output +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x32bbae5c aoa_snd_device_new +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x4ce4acf4 pmf_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x6fc8cb4e aoa_fabric_unlink_codec +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x6ff287f8 aoa_codec_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x87b130e6 aoa_fabric_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x8cf871e1 aoa_get_card +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x8f39e26d aoa_fabric_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x9ef86bfa aoa_codec_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xb1e5e205 ftr_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xe14d2f52 aoa_snd_ctl_add +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x1e2817f8 soundbus_remove_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x343f33db soundbus_dev_get +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x410fb3ef soundbus_unregister_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x4fb692b6 soundbus_add_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xd9b5c9b4 soundbus_register_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xf9472c9f soundbus_dev_put +EXPORT_SYMBOL_GPL sound/core/snd 0x375b0491 snd_kctl_jack_report +EXPORT_SYMBOL_GPL sound/core/snd 0x3ca17104 __snd_printk +EXPORT_SYMBOL_GPL sound/core/snd 0x7281f133 snd_kctl_jack_new +EXPORT_SYMBOL_GPL sound/core/snd 0x7f169ea4 snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0x9803f58c snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL sound/core/snd 0xaabb9813 snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x3a5c5bba snd_compress_new +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x9fdc7fde snd_compress_deregister +EXPORT_SYMBOL_GPL sound/core/snd-compress 0xbee2a29b snd_compress_register +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x04e1b99f snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x09e913c1 snd_pcm_alt_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x1d684d71 snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xf18ef997 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x0f0907a0 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x1a4cd9f4 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x32bed09b snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x343ab285 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x605511ea snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xdbf629fb snd_ak4113_build +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x016d2442 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x017bde81 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x01a761c8 snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0227cc33 snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x02ec24f8 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x03cc7df8 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x051b0003 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x065659d8 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x066d05a6 snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x069615ab snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0c3733ba snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0fc058bd snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x128acf42 snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14d2074c snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14dd6807 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x17927e42 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ac7f6ae snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1b74e3ea snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d2f42de is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2124011d snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x21ba3170 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x23ed4758 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2afac503 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2d170e29 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2daa3b7a snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2fe3a72d snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3017f5a6 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33eeb160 snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x35dfc1c2 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x386eda5b snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38bed7e4 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c51166e snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3d1752c7 snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3eddd222 snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3f102da1 snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x40113ff2 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4317dd6d snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x43c49c47 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x44416539 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x484c55a2 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49c72546 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ae0a648 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4f94470f snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x537ba02a snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x54220d02 snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x548fd853 snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5517fc08 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x579055cf snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c8a5834 snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x66e65e54 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x67b4adfe __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x681115bb snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6a93fc41 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b24fe5d snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b4c1ef0 snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b6ea284 snd_hda_gen_spec_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6c69bbf7 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f503a08 snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7249c687 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7371ec65 snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x73b7e3d7 _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x73ba2208 snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74c4b58e snd_hda_get_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74c86407 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76dc6871 hda_main_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x772f90af snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x77f3b06f snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7b52836c snd_hda_parse_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7b83f0e9 snd_hda_jack_detect_enable_callback +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d489962 snd_hda_codec_flush_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x80a0fc3a snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x81425df1 snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x81f2090d snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x827c4105 snd_hda_jack_detect_state +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x83d7a1c1 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86c81d4d snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x871a6e44 hda_extra_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x89deb8a2 snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a0baa19 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b131e0b snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e305a0f snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e9f4f30 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8eccc455 snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8f8ce5be snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x93d2ac35 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x93f41bd7 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9626d10c snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x974df419 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9839523a snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x99af99bf snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9acdbfce snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ba138c7 snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa22f98da snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2514476 snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa25c8aa7 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa431e562 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa46a39f6 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa51b4c6f hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa84dc83b snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8e084d7 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa9562354 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa9e3c196 snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xab28a8f9 snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad904e3a snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xae9b64fa snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb338f36f snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb489c512 snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb5b0e269 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb95a6c46 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb9c29de2 snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xba64c9f6 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xba8945e9 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb9fde89 snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbbb7c131 snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbbdbd4f8 snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd716a3f snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc0bcd334 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc0d78647 snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc2434474 snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc67c293b snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb860e80 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcbc5d65c snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcc4e7a8a snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcde572ce snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xce5d0576 snd_hda_parse_generic_codec +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xced4f252 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd1102691 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd219a52e snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd3e7e659 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd4f873b1 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd75c2c38 snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda7fdd3e snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb532630 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xddf0d860 snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde0e6928 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde725552 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdf05f533 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe0266aed snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe118de5d snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe32256c9 snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe5e0560b snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe7dc7c43 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xebf7a5ef snd_hda_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xecda6ed9 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed3feb47 snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xedfb33b2 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee2a3944 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef2f9cd7 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef52e1dc snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf80e7c7b snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf92d17ec snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfc6af66e snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfdcc2cfb snd_hda_suspend +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x3d28e321 atmel_pcm_new +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x9c2f8dba atmel_pcm_free +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0xdb6fedb7 atmel_pcm_mmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x01ae6262 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0431d0d2 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0536977d snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06dceffb snd_soc_of_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x08adc65e snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x08fd41c7 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x09ae7e70 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0ec3d93c snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0ef018c3 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1047a84b snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x116a8206 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x131af6a7 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x14aa4057 snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1740d598 snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1d061e39 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1d428eb4 snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x21518dbd snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x22bcbf29 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23fa46a3 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2447178d snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x248bb70b snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x251fcecb snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x25c290dc snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29603a7d snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2c41b0dc snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2c6a56e9 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2df57174 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f5f4ddb snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x30e921c3 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x312ccc39 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x318f3bbd snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31cd8b4b snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x361f4de1 snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x373e30fa snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x37a0bed5 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3a8e9e08 snd_soc_dapm_kcontrol_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4043d165 snd_soc_unregister_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43ec8d65 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4457b292 snd_soc_platform_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x488135c3 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4a028499 snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4c03074c snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4c878f42 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x53ee3eba snd_soc_remove_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x53fa7a23 snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x565b66d8 snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x56e61b18 snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5896ead5 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x59687cf8 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ad69077 snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5bfb8b74 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5c8d072d snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x638f8276 snd_soc_bytes_put +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x666db78b snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c5c4a09 snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6d2f84d0 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6eb6c1a4 snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x706e0388 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x72da4c89 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7351fede snd_soc_bytes_info +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x73543d08 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78af99d0 snd_soc_get_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78bff925 snd_soc_add_codec_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x79327982 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7b161268 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7cb0777e snd_soc_lookup_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7cc4854a snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x800e51dc snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x840dfdb7 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8536b94c snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x89c11578 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8a9d4c30 snd_soc_bytes_get +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8bd53a63 dapm_regulator_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8c6f345e snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8d016183 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9156348f snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x91c917fd snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9267ffd8 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x92cae511 snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x981970ab snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9913847d snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x99770172 snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9e787d06 snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9ff53130 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa49a124f snd_soc_dpcm_be_get_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa838923c snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaa3f2541 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xab5eb90c snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac584e46 snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb1fca8d1 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb2b65e38 snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb3ef238a dapm_mark_io_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb57bd3d1 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb69f6d45 snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb946eaa7 devm_snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbbc98306 snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc7221c6 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd548f87 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbf5b81f9 snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc007ee39 devm_snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc0eb184a snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc2341c08 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc2559b01 snd_soc_add_card_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc29345a2 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc345f06f snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc5c16c07 snd_soc_put_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc942bdba dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcdb9f497 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd0839889 snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd0f183a4 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd1dcedb0 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd6279055 snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd6a78c5a dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd6c555b9 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd84338e6 snd_soc_add_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdaa3fe66 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdbaa0dae snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe06a90e1 snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe1021c4d snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe3d607f7 snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe56742c3 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6342018 snd_soc_dpcm_be_set_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe665e539 dapm_clock_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6a7d9d5 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xecdbb035 snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xedfb55f5 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeef05161 snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeff349ea soc_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf0a4059d snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf3707ab2 snd_soc_get_dai_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf885a79d snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf8d08284 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfc4628cc snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfe21b92d snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xff01dec1 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xff5dfac5 snd_soc_register_card +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_file_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x003c439c devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x003e739f spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0x00408ed9 ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x0045917f usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x00860965 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x009135bb xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x009304b6 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00bcfeb5 ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00cfc2da ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x00e88f08 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x00e8b50d blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x01070141 usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x01095daf device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x014909f8 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x0152ea3d simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x017403c2 ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x017eb093 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0185d56d mpic_subsys +EXPORT_SYMBOL_GPL vmlinux 0x01921925 pmac_i2c_match_adapter +EXPORT_SYMBOL_GPL vmlinux 0x0195fba9 btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0x01b15762 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x01c998e9 rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x01df93c5 pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x020867be regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x02094dc4 da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x020dbf53 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x02138c9a fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x021ebfda btree_update +EXPORT_SYMBOL_GPL vmlinux 0x022fff01 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x0253fe96 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x02806b98 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x029165b3 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x029a8b7b rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x0302eeb0 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x0308730e extcon_get_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x0316a208 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x03277bf0 unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x03419a12 pmac_i2c_get_controller +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x036503c5 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x037b5cc4 blkg_lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x0394a3e6 regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x039e962f usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x03a53346 subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x03a91197 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x03b0d22b pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x03b97025 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x03bf1d5e gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x03d8765a serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0x03d95605 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03faf383 skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x0420bd6e watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x0472caae of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x04961630 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x04a37ea2 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x04b5549c __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04cf646d kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x04fbbb75 usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x058b582a vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x05a0af3b rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x05baee64 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x05bb0b56 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x05cb04df usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x05d30604 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x06063d18 irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x0609e09c palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0x061906b6 regmap_update_bits_check +EXPORT_SYMBOL_GPL vmlinux 0x061dee59 btree_remove +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x062f8017 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x064584fc crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x069cb2a4 pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0x069cc7bc device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x06ca5f4b ata_sas_port_async_suspend +EXPORT_SYMBOL_GPL vmlinux 0x06d4f757 fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x06dbbaf1 pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x070b848d sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x070ff9c3 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x0723b0da device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x0762403c edac_put_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x077249c6 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b29a6f regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07e65287 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x0806ef1e lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0x08941927 pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0x089540d5 ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x08a80878 pcibios_finish_adding_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x08b171d2 usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x08c08931 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x09065032 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x090eca60 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x09125c06 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x09204a27 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x092a43aa devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x09437748 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x09469482 kfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x095c0846 devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x09921ef5 sec_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x09b44711 tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0x09c252ab dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0x09d34fc2 of_pci_msi_chip_remove +EXPORT_SYMBOL_GPL vmlinux 0x0a0e8f3d ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x0a3cc65c br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0a87dbf4 ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x0a880db6 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x0a9fd3c5 gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x0aa05c83 pmac_low_i2c_lock +EXPORT_SYMBOL_GPL vmlinux 0x0ac85c5b da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x0acd402f bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x0afd4610 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x0affcf3c usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x0b05df03 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b2e6419 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x0b59390b __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0b6fbf0a ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x0ba91a36 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x0bbc0be8 tps80031_ext_power_req_config +EXPORT_SYMBOL_GPL vmlinux 0x0bea81f3 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c6cb2ce thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x0c6e7de7 usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x0c76f16a hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x0c7e74bd mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x0ca737f6 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0cc5550b swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0x0ccd858e pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0x0cce0227 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x0ccfa82b ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x0cfd7c33 irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x0d1eade1 __mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x0d236f1b inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x0d2e5e94 extcon_unregister_interest +EXPORT_SYMBOL_GPL vmlinux 0x0d5a322c fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x0dbd0e20 of_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0de06988 cpu_first_thread_of_core +EXPORT_SYMBOL_GPL vmlinux 0x0e0f176b irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x0e199979 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x0e1b1b18 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x0e580845 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x0e953a48 serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x0ea6b704 edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x0ea6f530 cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x0ebf3773 arizona_clk32k_enable +EXPORT_SYMBOL_GPL vmlinux 0x0ec4e26b d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x0ed11383 regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x0ed9302e percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x0ef1207a blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0f1afc6e sec_reg_update +EXPORT_SYMBOL_GPL vmlinux 0x0f370867 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x0f5ffbde crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x0f751aea input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x0fc01e9f static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x0fe112dc of_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x0ff85c13 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x104572f5 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x104a4df6 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x10fa59fc list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0x11136a35 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x1114011d threads_shift +EXPORT_SYMBOL_GPL vmlinux 0x111dcf31 __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x11617043 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x11709efc smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x11874304 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x11957fcd get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x1196a544 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x119849f2 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x11be4ad3 trace_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x11c0a23e sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x120877cb sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x121cd964 of_pci_range_parser_one +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x122fe77d pmac_i2c_get_adapter +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1251f9b8 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x12640650 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x126b558e adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x12b93c7a _submit_bh +EXPORT_SYMBOL_GPL vmlinux 0x12c2ff48 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x12d63cdf driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x12dc0986 ping_seq_fops +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x13354608 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x134eb798 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x13525f29 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x136a4ee6 btree_init +EXPORT_SYMBOL_GPL vmlinux 0x13743fb9 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x1392a3da tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x139e3b96 hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x13a48de8 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x13e5ea13 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x14070052 ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0x14285996 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x142a704f pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x14408c21 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x1463ac3d rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x14904fa7 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x1493e183 trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x14a2573a unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0x14b2f219 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x14be3d65 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x14c718d3 bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0x14d75875 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x14fdcbc8 get_device +EXPORT_SYMBOL_GPL vmlinux 0x15135258 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x1548a471 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x1561eaef fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x15641864 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x157b89dd ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x15965aa2 gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0x15aa45a7 regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0x15adfcc4 powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0x15c21e5e nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x161e558f cgroup_taskset_cur_css +EXPORT_SYMBOL_GPL vmlinux 0x163aa1c6 key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0x163ea45a pmf_call_function +EXPORT_SYMBOL_GPL vmlinux 0x164a9391 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x1654c45a mmc_send_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x16a23328 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x16a6df35 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x16b1153d ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x16f67911 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x170b52f0 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x17339c78 devm_regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x1753a32f hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0x1754ad7a get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x176dce9f srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x178ba221 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x17b042bc rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x17b4d3ef dma_buf_detach +EXPORT_SYMBOL_GPL vmlinux 0x17e67784 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x17eb5d58 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x17f5de25 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x1802e8b6 pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x180e7728 devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x1853653c btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x18570516 pmac_i2c_xfer +EXPORT_SYMBOL_GPL vmlinux 0x1866cec2 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x18759366 usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18a27f34 jump_label_rate_limit +EXPORT_SYMBOL_GPL vmlinux 0x18b652c7 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x18b84255 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x18c62228 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x18e4c094 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x194d8b4e regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0x194dd5f5 pkey_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x195a83d9 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x195c364d hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x1962ab80 subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0x199a5f84 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19b384a5 hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x19b44c08 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x1a0600aa usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x1a082d69 max77693_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x1a2591c3 watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1a295d7e dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a6fdca5 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x1a8c5907 btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x1ab792f0 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x1acef7d2 pm_freezing +EXPORT_SYMBOL_GPL vmlinux 0x1ae37504 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1afa4118 alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0x1b2339fb usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x1b30744b regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x1b31df71 cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x1b491db1 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x1b52db1c probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1b8a7275 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bab249b rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x1bb81ecd tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x1bca7578 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x1bd06aab cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x1c35d9bf pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x1c4e0b9d crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cf82066 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x1d2086d6 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x1d23d4e5 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x1d254b45 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x1d58ae14 lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x1d6d1550 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x1d6fae8d key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d7d485e devm_regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x1d8c4f12 gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x1d8e1543 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0x1db570c0 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0x1db831f5 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x1dcdcdae devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x1debbe43 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x1dfbcf4c mpic_msgr_disable +EXPORT_SYMBOL_GPL vmlinux 0x1e353c22 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x1e41bf15 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x1e5b03dc pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e5b04a9 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x1e5dfa86 devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x1e72bcd3 gpio_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e85df5a fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x1e8f7f56 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x1eb1594f gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ed74ab9 rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x1ef484a2 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x1f0a971d ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x1f43b240 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x1f59fd22 ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x1f7c66c0 pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1fa02a19 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x1fc4fa35 tpm_read +EXPORT_SYMBOL_GPL vmlinux 0x1fcbb46e usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x1fcdd773 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1ffa08cf bmp085_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x201fd828 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x20329167 rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0x2049bab8 __destroy_context +EXPORT_SYMBOL_GPL vmlinux 0x20754c92 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x207b0a43 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x209c8bdf hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x210beb42 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x210c57b4 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x21329524 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x214a6231 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x216e03eb nf_queue_entry_release_refs +EXPORT_SYMBOL_GPL vmlinux 0x218c453d pmac_i2c_adapter_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x21d36a03 kvm_hypercall +EXPORT_SYMBOL_GPL vmlinux 0x21dd435b usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x22341ff0 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x223a7602 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2250928b blk_queue_bypass_end +EXPORT_SYMBOL_GPL vmlinux 0x225f7e9b irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x227a03dc power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x227cd157 pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x2296290b pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22d22320 sec_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x22dceeb1 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x22e3cf83 pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x22e58ab5 regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0x235c8626 get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x2392bc6e pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x23c3f6ba cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2406dae3 pci_address_to_pio +EXPORT_SYMBOL_GPL vmlinux 0x240c25fe fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x2429e233 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x246a4d1b pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24a5ad72 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24ae9927 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0x24da6ba9 wm5102_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x24db7397 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x24f79925 device_store_int +EXPORT_SYMBOL_GPL vmlinux 0x251e6525 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x253923c0 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x2560bf35 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x25732be0 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x258cb820 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x25a2a046 rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0x25b549d6 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x25da86b3 __netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x25e3b0f9 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x2614ce27 ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0x261d6329 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x2621be11 devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x262977c8 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x268efd43 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x2691412e boot_cpuid_phys +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26e66ef8 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x270ca308 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x271bbce6 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x27436e8b fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x2748789a kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x2776affd blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27d40d5d mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x2867c959 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28e90c9f sk_unattached_filter_destroy +EXPORT_SYMBOL_GPL vmlinux 0x292803e7 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x2934b3de __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x293736db cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x294f184f bmp085_detect +EXPORT_SYMBOL_GPL vmlinux 0x29655c7c tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x296bba92 regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x29ad8e42 rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x29d245fa sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x2a2131b5 proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0x2a48307d usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a79eea1 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x2a955b9c tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x2ac3ca4b crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x2ad1ece4 zs_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2ae54beb cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x2afbc353 powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0x2b075602 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x2b2d83be ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0x2b5c303b smp_send_reschedule +EXPORT_SYMBOL_GPL vmlinux 0x2b607170 ktime_sub_ns +EXPORT_SYMBOL_GPL vmlinux 0x2b7a574f md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x2b7a6de8 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x2b8b8747 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x2baa5572 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x2bb2adbd tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0x2bbcec85 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0x2be34f1e blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0x2becf53b fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x2c04c099 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x2c066bd2 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c3fb8bb input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2c59d90c irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c63b3b9 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x2c7abb56 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c8c2a30 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x2c97c085 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x2ca89348 cpu_add_dev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x2cb8e4b5 device_reset +EXPORT_SYMBOL_GPL vmlinux 0x2cc3e675 pmac_i2c_close +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d17a0e1 cgroup_taskset_size +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d2c7832 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x2d373b66 generic_access_phys +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d929889 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x2da20ff0 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x2db7989c md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x2db97ea6 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x2dc127a5 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x2dc5a6d1 btree_last +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e7c4d82 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x2e7d3948 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x2e92c2ea sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x2e956def register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x2ea0325b __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ecf68df arizona_clk32k_disable +EXPORT_SYMBOL_GPL vmlinux 0x2ed994a3 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0x2ee25b51 regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x2ef6b5bf smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f226029 sdhci_pci_o2_probe_slot +EXPORT_SYMBOL_GPL vmlinux 0x2f3de4c1 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f493ede wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x2f7a68fc usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x2fa699dd single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x2fa71597 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x2fa7f30c usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x2fd8cba9 freeze_wake +EXPORT_SYMBOL_GPL vmlinux 0x2ffb5ff7 btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x3006b6f5 of_pci_get_devfn +EXPORT_SYMBOL_GPL vmlinux 0x3039fbba pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x3047c8b1 yield_to +EXPORT_SYMBOL_GPL vmlinux 0x3050ec18 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x307e840e alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x3080e6f2 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x308b733a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x309dcd7c tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x30a49790 reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30dc5e98 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x30f58b09 uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x3183a27d pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x3194b7e3 rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x3246fc84 regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x3248b414 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x3249cd4f get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x3256ca45 gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x32642524 sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0x32655944 __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x326c9c10 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0x326d5aa5 need_load_eval +EXPORT_SYMBOL_GPL vmlinux 0x32813c6f __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x3286f5bb ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x328995b5 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x3293b7a7 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x32a17474 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32d4df71 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x32e8ae00 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x32fd447a monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0x33229be8 regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0x33230366 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x332eda0c usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x3340ba65 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x337786fa usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x33987fcf shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x34588854 subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x34630915 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x34ac50a4 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x34c1b933 regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0x34c76a01 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x350483ad skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x350974d9 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x351d1fbd ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3521c279 smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x352a90c7 rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0x3530aeb1 dev_get_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x3546cea8 user_read +EXPORT_SYMBOL_GPL vmlinux 0x35489114 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x35554eef tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x3563e262 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x3576b904 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x358ff60f twl_get_hfclk_rate +EXPORT_SYMBOL_GPL vmlinux 0x359ce202 sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x35f10f43 nfq_ct_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x35f165f1 devm_reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x360a6343 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x360acfb9 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x3632759b i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x3670355a crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36a137fc spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x36b506b9 system_trusted_keyring +EXPORT_SYMBOL_GPL vmlinux 0x36c42056 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x36c59338 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x36cd183a irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x36cda9f9 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x36dccdec pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x36eb077f raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x370476b4 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x376e5e1d gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x3775b83a device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x37771eda ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x37c2d36f __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x37d8ba97 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x37e1ad20 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x382ae84a pci_restore_ats_state +EXPORT_SYMBOL_GPL vmlinux 0x3881a3dc led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x3886b6eb task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x388916b6 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x389e3897 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x38a5213f ping_err +EXPORT_SYMBOL_GPL vmlinux 0x38a6e5cb adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38f13801 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3929f42c wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x393253ec crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x394ff66e crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x397ef9ad crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x39bea66c pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x39c3d706 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x39cc6731 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x3a0affc5 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a3e042d ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x3a3efbef da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3a4a268f __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x3a4c6000 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a4f9c3e pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a738ca8 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x3a943440 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x3aa44273 ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3ad81b25 irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x3ad82802 of_property_read_u32_index +EXPORT_SYMBOL_GPL vmlinux 0x3b4811ac devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x3b7c1701 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x3ba94efa crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x3bc306b6 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x3bc3676c i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x3bd0c64e ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3bd59962 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x3be307ce bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x3be62cc2 uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c19881d ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x3c473194 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x3c8d28cc of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3c98908b bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x3cc61fe4 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x3ccffec8 of_irq_parse_one +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cf9a14c ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x3d0dcd20 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x3d32db10 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d4c8d32 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x3d595439 pmac_backlight +EXPORT_SYMBOL_GPL vmlinux 0x3d62f71e pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x3d7db53d kobj_completion_init +EXPORT_SYMBOL_GPL vmlinux 0x3da4ed19 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x3dc526a9 arizona_of_match +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3de671f3 rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3dea702b anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3df59f19 alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0x3dfde3ac pmf_get_function +EXPORT_SYMBOL_GPL vmlinux 0x3dff7da3 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x3e296ed8 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x3e2e543d cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x3e2fa31f wm8997_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3e30c473 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x3e5f6393 regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x3e6d2da5 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e971b8d regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x3ec88e36 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f07bb9d percpu_ida_free_tags +EXPORT_SYMBOL_GPL vmlinux 0x3f1a02d0 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x3f298b9c usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x3f34d0bf fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x3f37843b rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x3f7176a0 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x3f79700d __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x3f943b87 dma_buf_unmap_attachment +EXPORT_SYMBOL_GPL vmlinux 0x3fa52263 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x3fb182c1 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x3fb64ff5 pci_reset_bridge_secondary_bus +EXPORT_SYMBOL_GPL vmlinux 0x401c812e regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x4033301c blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4045c494 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x405703a5 lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x4065d168 pm_print_active_wakeup_sources +EXPORT_SYMBOL_GPL vmlinux 0x407e76df irq_create_strict_mappings +EXPORT_SYMBOL_GPL vmlinux 0x40913c75 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x4099f3cb queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x40a0761d dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40b3cbc1 dma_buf_kmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x40b66e0a crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x40c56efb ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x40d2c669 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40e48e97 cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x40ffda90 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x412bc320 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x4152f24d debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0x415eee91 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x4163a252 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x41892fbf wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x418a6991 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x418d1fb0 dma_buf_vunmap +EXPORT_SYMBOL_GPL vmlinux 0x419af106 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x41b1ecd5 spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0x41b524ee map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x41cd4c66 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x420c5271 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x4213f9c5 regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x422563d6 iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0x422a714a pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0x42440bfb ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0x425c1c0b ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x4283be43 regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x42a5a872 rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0x42b364ef scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x42c48ba8 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x42f20901 arizona_of_get_type +EXPORT_SYMBOL_GPL vmlinux 0x4305d7c6 pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x430e5257 of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0x43a53735 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x43c909db ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x4409e45c led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44940658 pmf_unregister_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x44aee55f ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x44d51715 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x44e4a4c0 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x44eff47d percpu_ida_free +EXPORT_SYMBOL_GPL vmlinux 0x45070279 od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x450f929a usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x45162fc1 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x454a700f crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x454c15ae __smp_call_function_single +EXPORT_SYMBOL_GPL vmlinux 0x455f6ae0 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45ac8533 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x45aff4f5 led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45cacaac flush_fp_to_thread +EXPORT_SYMBOL_GPL vmlinux 0x45df586d pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x46033519 crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0x460f7531 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x46253649 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x4688c96a usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x46eaeca5 pmac_i2c_find_bus +EXPORT_SYMBOL_GPL vmlinux 0x471f0fe3 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x474c7d8a devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x474edce6 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x47668fb1 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x477a6ec6 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x4783e036 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x479e8896 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47ab7dff ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x47b21077 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x47ca0dfd rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x47d24136 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x47d54faf regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x47e276fc crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x4800aaf0 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x483ba599 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x48467e20 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x486e9158 dma_buf_get +EXPORT_SYMBOL_GPL vmlinux 0x48924f95 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x48c6a9d8 sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0x48ca8947 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x48cd1890 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x48ea4e93 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4923ff77 devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x4943a338 __init_new_context +EXPORT_SYMBOL_GPL vmlinux 0x4982a57f probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x4985e12f cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x498d293a trace_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49c136cd pmac_i2c_get_dev_addr +EXPORT_SYMBOL_GPL vmlinux 0x49def993 __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x4a15e946 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4a2547c2 threads_core_mask +EXPORT_SYMBOL_GPL vmlinux 0x4a26626c shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x4a3ca5d4 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0x4a9566a0 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x4aa3f6e2 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x4aa747bd regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4acb2bb9 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x4acb49af tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x4af08365 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x4af14347 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x4b10a6a1 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x4b17b645 of_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x4b30ea41 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x4b4b2755 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x4b83dcc6 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4b928bb4 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x4b9494af sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bead6eb cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x4c11c505 regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x4c12b7db max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x4c3edc86 regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x4c602bf1 __blkg_release_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c78f824 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4c84454a fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0x4cb0dc1f set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x4cb76f83 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x4cea30f1 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x4cf378c0 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x4d108112 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x4d172ccb ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x4d1a0af6 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x4d23e35b key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x4d2593d3 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x4d2fe4e8 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x4d30a287 rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x4d4611cb regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x4d53ea07 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x4d5c59fe pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x4d5c9f94 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x4d80df6c pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x4dadd625 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x4dbdacc3 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x4dd21bdf dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4df148d2 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x4dfb1c15 pmac_i2c_get_bus_node +EXPORT_SYMBOL_GPL vmlinux 0x4e0307a0 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e242f5f pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x4e285f0e pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x4e3cd38c blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x4e650db5 alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x4ed95387 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x4edff55b da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4ef8b782 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x4ef9fc07 register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x4f020dee public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x4f1d513a ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x4f4b70fa get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x4f557f46 regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0x4f72173c alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0x4f881b16 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0x4fb3fc98 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4ffe38c2 da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x5008c3c2 regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0x501a9542 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x505ae848 pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0x50601122 of_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x506691f1 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x506cc085 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x507eacb4 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50ae2a2a ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50ce95df fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0x50e3110c fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50ec5881 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x51350f61 perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0x515b58c5 sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x515d8265 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x515dd1eb regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x51846493 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x51b65a26 rtc_lock +EXPORT_SYMBOL_GPL vmlinux 0x51c344b3 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x51db6c70 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x51e8d885 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x51f03a6e __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x51f683d4 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL vmlinux 0x52119f72 wakeup_source_drop +EXPORT_SYMBOL_GPL vmlinux 0x52212010 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x524c7bb2 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x5282d860 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x52c0d5d8 scatterwalk_bytes_sglen +EXPORT_SYMBOL_GPL vmlinux 0x5335dd11 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x534d0dca blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x5350a082 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x536d8abd pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x53d089e2 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x53d3015c driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x53d8b0d8 pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x53dadaae regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0x53def254 cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x53edf681 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0x540fba08 flush_altivec_to_thread +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x5436bbaf sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x544210d1 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x544fa337 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x546c5565 ppc_tb_freq +EXPORT_SYMBOL_GPL vmlinux 0x54740eb7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x5483a106 regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54ab8b53 isa_bridge_pcidev +EXPORT_SYMBOL_GPL vmlinux 0x54c59e3a srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x54f55b21 thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5501fc37 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x550c5493 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x5514918c tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5548213e unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0x55587e4f pwm_config +EXPORT_SYMBOL_GPL vmlinux 0x5559067a ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x555b9346 pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x559b260c crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x55ab7813 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x55bdbbbb pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x55e55872 tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0x56131863 macio_find +EXPORT_SYMBOL_GPL vmlinux 0x5613ead9 tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x561e4b77 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56423e6c swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x5656d810 get_kernel_page +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x5692386f gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x569c875b sock_update_netprioidx +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56cf4713 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x56d697ce cpu_up +EXPORT_SYMBOL_GPL vmlinux 0x56ddce11 filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x56e61589 uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56ec706d device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0x57231f45 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x57507d86 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x576a0203 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x57764abf md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x578e43f5 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x578e58c7 extcon_register_interest +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57c375b8 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x57c419f7 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x57d7e4b2 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x57e6acf0 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x58142ef0 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x581a9645 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x58413099 ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x5852c32e blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x588be8a6 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x589e3ecc inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x589e4569 syscon_regmap_lookup_by_pdevname +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x590f0675 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x593f3066 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x5947abbe max77693_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x599ceebd crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x59b7177f skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x59d57918 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x59e2743e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x59e61b24 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x5a1fd7bc tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x5a69d6f7 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x5a6ac560 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a8f3b69 of_irq_parse_raw +EXPORT_SYMBOL_GPL vmlinux 0x5a99bf4c netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x5a9a3a96 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x5aa5d676 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x5ab8fde0 extcon_set_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x5adff6da ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x5ae76da5 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x5afb47fc of_irq_to_resource_table +EXPORT_SYMBOL_GPL vmlinux 0x5b0d97e2 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x5b1f4077 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x5b2c2aa6 ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0x5b2d520d vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x5b3f2f5e debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x5b4e379c of_prop_next_u32 +EXPORT_SYMBOL_GPL vmlinux 0x5b5d6484 gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0x5b7263e5 regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x5b879b3d devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x5b9e56fc dma_buf_put +EXPORT_SYMBOL_GPL vmlinux 0x5bc68132 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x5bd42b41 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x5bd9fecd arizona_dev_exit +EXPORT_SYMBOL_GPL vmlinux 0x5be3a75a gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x5c05a3b2 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x5c217ee2 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x5c263059 inhibit_secondary_onlining +EXPORT_SYMBOL_GPL vmlinux 0x5c8f75eb crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x5cabdced dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5cb75c50 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x5cc9d826 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x5d04b7b8 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x5d12baa3 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5d12e48f input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x5d144f12 dma_buf_export_named +EXPORT_SYMBOL_GPL vmlinux 0x5d49b3aa device_rename +EXPORT_SYMBOL_GPL vmlinux 0x5d51bcf7 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x5d8b5953 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x5da67781 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x5dd6e1d4 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x5ddc6181 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x5deb7575 dma_buf_begin_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x5dff4240 user_update +EXPORT_SYMBOL_GPL vmlinux 0x5e0c47b6 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x5e161046 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x5e234858 css_next_child +EXPORT_SYMBOL_GPL vmlinux 0x5e311ce0 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x5e51cd74 swiotlb_nr_tbl +EXPORT_SYMBOL_GPL vmlinux 0x5e52badf ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5e7cb11b usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x5e891adc ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x5ea62cf1 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x5ec03080 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x5ec1f88b __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x5eeeed40 skb_gso_transport_seglen +EXPORT_SYMBOL_GPL vmlinux 0x5f006da9 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x5f0c0494 regulator_can_change_voltage +EXPORT_SYMBOL_GPL vmlinux 0x5f126fca crypto_lookup_aead +EXPORT_SYMBOL_GPL vmlinux 0x5f191fa8 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f313ba4 cm_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x5f419491 gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x5f4b0ed3 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x5f6540ee pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x5f8c178b wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x5faead61 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x5ff8be1a max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x603a49d8 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x60420b46 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x60492a56 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x604b9896 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x607abd0f rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0x6094685f wm8997_irq +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x60a3fbef fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x60b5fa11 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x60f22364 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x6127f4eb percpu_ida_for_each_free +EXPORT_SYMBOL_GPL vmlinux 0x6144d26e rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x616e5a6d sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x61a57246 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x61a8c04d device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x61a90c54 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x61a9bbc5 ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x61b7e5b8 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x61dbbf9b tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x61e12644 crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0x61f7f407 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x620ad734 pmf_put_function +EXPORT_SYMBOL_GPL vmlinux 0x6216bd73 percpu_ida_destroy +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x62881bb7 thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0x628e5fc2 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x62b5d5c6 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x62be3b4d blkg_prfill_stat +EXPORT_SYMBOL_GPL vmlinux 0x62ca73e5 thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6318757f mdio_mux_uninit +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x63295305 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x632c4081 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x6334e855 sdhci_pci_o2_probe +EXPORT_SYMBOL_GPL vmlinux 0x6348828d usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0x6390efda of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x639d99f5 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x63a1304f kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x63bd6167 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x640a7826 regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x64256424 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0x6453f77c pmac_has_backlight_type +EXPORT_SYMBOL_GPL vmlinux 0x646b64db sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x64791692 mmput +EXPORT_SYMBOL_GPL vmlinux 0x647a494e bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x64b80365 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x64bf171d device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x64c3f4e7 mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x650a4697 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x65228a1e pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x65257cdc dbs_check_cpu +EXPORT_SYMBOL_GPL vmlinux 0x655278b2 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x65620f4c ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x65a5524b rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0x65bbf017 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65cf26d6 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x65d02dd7 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x65d07f34 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x65dddbfb fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x65e46c0d usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x65f9bffa wakeup_source_prepare +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662a0c3f x509_get_sig_params +EXPORT_SYMBOL_GPL vmlinux 0x662c0b7e bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x665114f2 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6679dcc7 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x667b681f regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66ad0377 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x66ae92cc crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x66afb53b unix_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x66b5d600 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x66cc80a1 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x66cd3dfe i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66db119b crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x671382be regmap_update_bits_check_async +EXPORT_SYMBOL_GPL vmlinux 0x6717aac5 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x671f2ca8 extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x67355468 rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x67355e51 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x674e13e1 public_key_destroy +EXPORT_SYMBOL_GPL vmlinux 0x67643d26 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x67730f44 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x67791574 uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0x677b8d72 devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x678b669c device_register +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67e2aae5 wm5102_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0x67ee3ab9 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x6812cf8d __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x681621fb mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x6819649f unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x68251550 irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0x683af241 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x6858d168 fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0x686488ca fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x686a2ecb sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x687934e9 gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x68956406 static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x68a7d441 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x68b8c9d8 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x68c94e89 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x68f398ad ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x68f45d34 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x68f9c39f subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x6903f7dc bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x690c8f5a usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x6920e722 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x69324b93 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x6945725e mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0x69689cf9 extcon_find_cable_index +EXPORT_SYMBOL_GPL vmlinux 0x697a420c timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x697cbbb4 threads_per_core +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x69a500e9 regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x69b5d7e2 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x69c2eeb0 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a02084e clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x6a06d1ee spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x6a18b38b inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x6a1fbda4 rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x6a2d60fa nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0x6a2f700d spi_master_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6a52c17d spi_master_resume +EXPORT_SYMBOL_GPL vmlinux 0x6a548d98 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6a8f0770 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x6aa383ca relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x6aa8268c regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x6ad04e14 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x6adfc7a4 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x6b1e8b31 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b5749c7 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0x6b75e273 extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x6b8e44ea pmf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x6bc52ab8 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x6c1b09ab gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x6c1b0e41 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x6c21ff21 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x6c365c7f pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x6c3843fb usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c65f5a3 regmap_update_bits_async +EXPORT_SYMBOL_GPL vmlinux 0x6c6e2a21 irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x6c716e93 regmap_fields_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x6c749afe __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cccec99 thermal_generate_netlink_event +EXPORT_SYMBOL_GPL vmlinux 0x6cd21997 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x6cd4ea62 wm5110_irq +EXPORT_SYMBOL_GPL vmlinux 0x6cdc199a rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x6cdd9813 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6cee5839 find_module +EXPORT_SYMBOL_GPL vmlinux 0x6d1c4911 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d31e93b tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x6d5be391 ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x6d604247 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x6ddc59f9 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x6de4e517 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x6e04a077 usb_bind_phy +EXPORT_SYMBOL_GPL vmlinux 0x6e1c1471 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x6e378dd2 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x6e49dd86 usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x6e4f7f7f blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x6e5f26ea scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x6e633767 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6f098f53 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f223207 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x6f298c35 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x6f45f209 dma_buf_kmap +EXPORT_SYMBOL_GPL vmlinux 0x6fbb5da9 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x6ff162a6 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x702dd696 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70b5a87a disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x70bb651d __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x70beefd9 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x710da8be regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x710fdb8f dma_buf_attach +EXPORT_SYMBOL_GPL vmlinux 0x71145257 public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x714a573a regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x715c8cea pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71930ed3 of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x71947375 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x71a5d695 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x71eb5567 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x7210cb2e dma_buf_kunmap +EXPORT_SYMBOL_GPL vmlinux 0x723374f8 pci_bus_sem +EXPORT_SYMBOL_GPL vmlinux 0x7262c46a pmac_backlight_mutex +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7279595e thermal_notify_framework +EXPORT_SYMBOL_GPL vmlinux 0x72f7c8af posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x7316eb67 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x73247f0f regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x732d206a ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0x7377c983 uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0x737b6835 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x737d709d regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x739aa1a1 pmac_i2c_setmode +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73b1a7e6 class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x73c832f2 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73eceb6f sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x73fc3837 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7418f6b0 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x7422c95e gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x742afc41 rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x744baa87 thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0x745c8460 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x7464ea38 dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74a3ba29 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74d72d59 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x74dc59e9 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x74f3fb0d spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x74f6bfd1 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x75134457 ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0x751ed7c9 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x75359fb0 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x753ec6ca gpio_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x75498d78 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x7582a193 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x758a782e blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x759ccce6 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x75a6bad7 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x75b7099f pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x75c2b9f1 memalloc_socks +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75d17d0b pmac_i2c_open +EXPORT_SYMBOL_GPL vmlinux 0x75d89936 spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0x75dbece7 pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0x75f2a044 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x762507d9 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x7649805b __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x767c2ad7 __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x76a426e8 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x76d07d6e gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x76ebc963 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x76f21441 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x76f2e7cd ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x771a9f46 alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0x77214cea sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x7729cbdd task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x772b84b8 dev_hard_start_xmit +EXPORT_SYMBOL_GPL vmlinux 0x7734907c tpm_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0x77a0e5fe devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0x77b16c80 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x77b9bb95 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x77c56f18 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x77edbfdb usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x7819abfb pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x784a4a26 ping_proc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x78790f40 crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x78e42687 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x78e9c5c1 wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x78f8ec3d tcp_peer_is_proven +EXPORT_SYMBOL_GPL vmlinux 0x7904cd7a page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x7908b2c9 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x790a8f7e transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x79376971 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x793e265f rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x7942d4cf generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x794a60b1 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x794d8d77 regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x7992827d blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x79e464a1 ping_close +EXPORT_SYMBOL_GPL vmlinux 0x79e650e1 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x7a157c80 netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x7a3ddc7e tpm_write +EXPORT_SYMBOL_GPL vmlinux 0x7a41492d eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x7a5819de __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x7a7a216a ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x7a8ad061 serial8250_rx_dma +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7a9a78d9 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x7ab23c51 netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0x7ab3ca18 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x7acdc2de inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b0d9cea locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b0f2127 find_linux_pte_or_hugepte +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b372030 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x7b6d7dc8 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7ba1624b crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x7ba31356 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x7bd5875d unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x7bf3cd54 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x7bf40e2a regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x7c297e61 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x7c309d50 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x7c346357 pkey_algo +EXPORT_SYMBOL_GPL vmlinux 0x7c40e7b3 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x7c856710 dma_buf_vmap +EXPORT_SYMBOL_GPL vmlinux 0x7c93a49a input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x7cc1b7fd max77693_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7cc7de1c x509_check_signature +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ce5b92a gpiod_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d2a17e4 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x7d36e534 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7d397cc7 gpiod_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d46ba37 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d675595 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x7d6e3911 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x7d7c76b5 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7d8d7770 vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dbf3e20 sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0x7dd12fac register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7dd6c204 perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0x7dfab5f4 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x7dfb9c08 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x7e17ba7b klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x7e1df8ee da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x7e4e39f2 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x7e56936f spi_async +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e6544fe rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x7eac36e2 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x7eb7b3f8 of_get_dma_window +EXPORT_SYMBOL_GPL vmlinux 0x7edab7fa tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0x7eebc4f8 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x7f008202 btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7f175f27 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x7f6b3e1b agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x7f73fa99 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x7f7bc710 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x7f9a5d9b blkg_stat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x7f9ed1ec inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fa99364 tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0x7fc672f8 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x7fcb2de2 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x7fea112a mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x800bd246 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x802a0e22 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x803cc81c tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x804b220a sdhci_pci_o2_fujin2_pci_init +EXPORT_SYMBOL_GPL vmlinux 0x8078d299 rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0x807deb3c rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x809a45be sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x809acada regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x812c97d4 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x813a05e9 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x8140842a gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x81519699 serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x81850bb0 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x81a976d2 usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x81abd381 get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x81b1b230 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x81be2350 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0x81f45c82 of_usb_get_maximum_speed +EXPORT_SYMBOL_GPL vmlinux 0x81fb0306 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x82284e07 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82a26756 arizona_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x82a27925 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x82cabcdd scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82e1f99a dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x82f8cf14 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x83093527 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x831270e5 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8329624b regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x832a4474 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x834616bb sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x836d61d0 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x837889dd flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x83856c52 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x83864d20 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x83a5ae2e __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x83ed2da6 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x83f5aa11 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x840a8833 of_pci_find_msi_chip_by_node +EXPORT_SYMBOL_GPL vmlinux 0x840d522b extcon_set_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x841da239 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x8420bccd cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x8426799a sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x842ca61a rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x845753f5 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x8465caad vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x8466b23b unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x849118d3 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x8495c78b blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0x84d21f40 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x84fb2f37 pmf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x85252975 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x852e568d of_get_nand_ecc_mode +EXPORT_SYMBOL_GPL vmlinux 0x8559a769 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x856629e7 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x856f2570 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x8574ca6c gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x85863ff1 regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0x858fd82a pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x8599f441 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x85a283ba inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x85b1ddaa fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85cf1695 kobj_completion_del_and_wait +EXPORT_SYMBOL_GPL vmlinux 0x85d0e322 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x85d54f7c md_run +EXPORT_SYMBOL_GPL vmlinux 0x85ddb867 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x85e6d847 wm8400_block_read +EXPORT_SYMBOL_GPL vmlinux 0x8615f240 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x86353a62 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x8646fbce napi_by_id +EXPORT_SYMBOL_GPL vmlinux 0x86572aca usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x8664b49b ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x866b9687 wm8997_aod +EXPORT_SYMBOL_GPL vmlinux 0x867803f7 tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x8694482c list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0x86daaa62 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x86db6481 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x87008e2b debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0x87015be3 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x87081bb9 rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0x8718de75 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x873caeed shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x876272b1 subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x877ad796 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x87838320 put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x87910f94 rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0x87984b16 __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x87bb4e32 of_usb_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x87d502f5 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0x8804af3d usb_anchor_suspend_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8821f72a bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x88437bb7 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x88478c17 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x884db624 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0x88766997 pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0x88836c7c mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x88a81690 dma_buf_fd +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b5647c trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x88b5c8cc led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0x88e7a270 call_filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x88f5c7c6 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x88fb00d4 devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x89040ec1 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8935b1e2 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x8942dc94 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x8999fd09 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x89a22a59 devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x89b1c954 dma_buf_map_attachment +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89c54277 key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x8a04b9fe tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x8a255a83 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x8a2b14ba wm5110_aod +EXPORT_SYMBOL_GPL vmlinux 0x8a33971d ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x8a41d1a9 iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0x8a784bec tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x8a7a7ad2 devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x8a89679d balloon_mapping_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8abe726a crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x8ac068a5 edac_subsys +EXPORT_SYMBOL_GPL vmlinux 0x8ae152b5 of_get_nand_bus_width +EXPORT_SYMBOL_GPL vmlinux 0x8afd7633 arizona_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x8b17500a gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x8b2b17a8 ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x8b40d7a0 blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x8b667b99 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x8b70e8ea __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x8b8272e3 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8b927970 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x8ba46fc2 rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x8bc84a29 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x8bd1d035 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x8bd39922 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c48f7fa sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x8c88bbc3 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x8c8a9dd1 device_del +EXPORT_SYMBOL_GPL vmlinux 0x8c8cbe7f regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x8ca9a74b spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x8cda1a20 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x8cec8ffd dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x8d3d32a6 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x8d4a61d5 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x8d983d8f get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x8da17b42 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x8dc00ff1 lock_media_bay +EXPORT_SYMBOL_GPL vmlinux 0x8de84494 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x8df0904a blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8dfd5821 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x8e385eb1 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x8e51055a crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x8e768b0c ref_module +EXPORT_SYMBOL_GPL vmlinux 0x8e7b6b50 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x8e9c7933 gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x8ec2ce6e pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x8effebd3 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x8f050b75 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8f1f55e1 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x8f2e6553 extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8f51c76f each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f7b2a3d usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x8f8e53b9 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8f902a2c gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x8faa8f99 ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0x8facb885 ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x8ff21333 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x9000cf91 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x9022e6b3 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x904b0fce list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90705b7f syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x9077d5ea usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x9083b8fb usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90a28fab usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x90ef5743 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x91286982 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x912a442c sk_unattached_filter_create +EXPORT_SYMBOL_GPL vmlinux 0x9177258c rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x9198c354 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x91b857ab __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x91c41d73 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x92043bf7 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x92262e6c irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x923bb384 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x92452560 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x924f6dae get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x925e6f8b ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x92ab77f0 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92db8f68 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x92f586a2 of_get_named_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x92f90149 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x930bf712 sysfs_get_dirent_ns +EXPORT_SYMBOL_GPL vmlinux 0x930ed9b9 of_usb_get_dr_mode +EXPORT_SYMBOL_GPL vmlinux 0x9329f789 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x933465e9 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x93421c05 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x934b23c9 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x93a07997 get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0x93a2cb47 reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x93cea458 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x93fdd8c7 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x940eb186 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x941894ba simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x94463844 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x948789a2 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x94885da9 fuse_get_req_for_background +EXPORT_SYMBOL_GPL vmlinux 0x9495a4e6 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94abb745 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0x94de9c38 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x9514ae20 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x952266ad ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x952d6f1e spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x95571d9e sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x9570aa63 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x9593ee4c usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x959bb24b blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x95d1a682 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x95edd7b7 wm5110_patch +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x96282886 tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9655b911 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x965abbc0 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9690adbe bmp085_remove +EXPORT_SYMBOL_GPL vmlinux 0x96c50c9a nfq_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x96d62687 user_match +EXPORT_SYMBOL_GPL vmlinux 0x96ddbe25 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x96e4a198 ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9730c462 gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x97346713 ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0x9744e477 cpu_remove_dev_attr +EXPORT_SYMBOL_GPL vmlinux 0x974fb55e clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x9774f898 powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0x97a08e31 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x97a3ec56 ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x97dbf7fc pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x97ebdef9 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x982cd486 __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x98523c6a dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0x9858977f pwm_disable +EXPORT_SYMBOL_GPL vmlinux 0x98754152 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9899e73a ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x98a78864 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0x98b0dc8f ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x98b1f00c of_pci_msi_chip_add +EXPORT_SYMBOL_GPL vmlinux 0x98bedd7c tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0x98eb19c7 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x98f95120 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x98fa1e20 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x98fe9dd1 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x9912b57b uninhibit_secondary_onlining +EXPORT_SYMBOL_GPL vmlinux 0x9920d7b8 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9990e246 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x99b58117 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x99eb4ccb fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x99eb59b0 device_add +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a49d937 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x9a74d215 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x9a89dbf7 lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x9a97410e rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0x9a9b637b usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x9aad6540 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9aca444b get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x9acc5876 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9b10687c blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x9b17aca7 tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0x9b516a67 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x9b5fa422 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x9b6f31ee regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x9b8644be elv_register +EXPORT_SYMBOL_GPL vmlinux 0x9b8c7b43 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x9bd41ce2 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x9be421f2 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9bf09043 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x9c0875a4 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x9c3df099 of_scan_bus +EXPORT_SYMBOL_GPL vmlinux 0x9c491406 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x9c609829 devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x9c6d8d0d verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x9c8d2699 cpu_add_dev_attr +EXPORT_SYMBOL_GPL vmlinux 0x9c95d5d0 regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x9c97d4c1 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x9cacb78f sec_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x9cc4f70a register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9cf01397 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x9d138533 percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x9d2cbf35 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x9d55df7a crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x9d8331c0 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x9d88707e sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x9dabc3f6 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x9dc43e57 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x9dc492be usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x9dcb534c __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x9dcbfb6b inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x9dd01316 vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x9ddad59a fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x9dfdf722 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x9e00630f cgroup_is_descendant +EXPORT_SYMBOL_GPL vmlinux 0x9eb03233 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x9ed2da14 irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ee2b5dc usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x9efa3662 extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x9f0664bf dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x9f1a1247 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x9f3f98e1 of_get_nand_on_flash_bbt +EXPORT_SYMBOL_GPL vmlinux 0x9f516af7 pci_intx_mask_supported +EXPORT_SYMBOL_GPL vmlinux 0x9f527445 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x9f7f0e42 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9f859933 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x9f9aeefc anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x9f9c1133 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x9fa0a63f tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x9fce48d7 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fd57171 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x9fedb268 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xa009654f raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xa01129b4 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xa028a65d regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xa04e4585 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xa0823981 ata_sas_port_async_resume +EXPORT_SYMBOL_GPL vmlinux 0xa088b802 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xa096bd4a dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xa0ce0fc5 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xa0cfb26f ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0xa11aff9c tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xa1235186 ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xa126757d crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xa12d929d desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0xa15810a9 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0xa1785f2c blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xa18ad5dd platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xa18bf589 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0xa18f3d35 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0xa1bd7822 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa1d26bca rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xa21cc8b1 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa2223e2e tcp_fetch_timewait_stamp +EXPORT_SYMBOL_GPL vmlinux 0xa23d3f97 pwm_put +EXPORT_SYMBOL_GPL vmlinux 0xa259eeaf ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa2c419ad __put_net +EXPORT_SYMBOL_GPL vmlinux 0xa2e27a93 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xa317b558 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa32786a2 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0xa34dc5a3 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xa357d56e ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xa378b43f ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa389a49a profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0xa38a3199 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3a2d9af walk_system_ram_range +EXPORT_SYMBOL_GPL vmlinux 0xa3a63d96 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xa3ad05ce ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0xa3be419c __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0xa3d8571c root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa3e81a58 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0xa40d5ff2 irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0xa4140ba1 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xa4147b82 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xa4150b7a __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa418a52e sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xa41d4441 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xa424f296 __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa44ca22a dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xa45428e8 lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4b14f01 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xa4e47ee9 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0xa4e491a5 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xa4e7a51f skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0xa4ea04ee of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0xa4ebd36f mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa51745cb inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xa55a1427 reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xa575fdc0 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0xa589f92f i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL_GPL vmlinux 0xa5ca2c6c perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xa5d82c7f netlink_alloc_skb +EXPORT_SYMBOL_GPL vmlinux 0xa5e434ac regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5efe460 usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xa617bd64 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xa61b1477 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xa625110d kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0xa63f8fe7 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xa64a2640 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xa68fc1ee raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xa69222fd blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xa6a0a273 max77693_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa6aa761b __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xa6b21ef2 dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0xa6d9f467 extcon_update_state +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa71e8a90 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xa723fe47 sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0xa724257f init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xa728cb5c net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0xa75312bc call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0xa75811d0 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xa765912b ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0xa77fbbe6 input_class +EXPORT_SYMBOL_GPL vmlinux 0xa79a7667 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa7b06ea9 cpufreq_governor_dbs +EXPORT_SYMBOL_GPL vmlinux 0xa7d5f739 rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0xa7e051cf pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0xa7e7fb12 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa838ead8 ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa84a509b usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa853e9fb fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa8586955 crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0xa89894f7 regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0xa8a62f08 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xa8c17a76 of_reset_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0xa8c8dc9a wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa8e3aae4 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xa93276c8 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9360d0e pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa93a9545 devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xa959060d cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xa9790478 kobj_completion_release +EXPORT_SYMBOL_GPL vmlinux 0xa980af16 RSA_public_key_algorithm +EXPORT_SYMBOL_GPL vmlinux 0xa9adf615 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xa9d11fa9 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xa9e18049 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9fb74a2 of_device_is_stdout_path +EXPORT_SYMBOL_GPL vmlinux 0xaa0e47d8 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa4d0ba2 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaaae7823 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xab04acad tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xab0e2148 regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab876f1b pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0xab87b8b4 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xabe70c50 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xabf5aab9 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0xabfdd5c6 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xac234d58 pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0xac5e36e5 bio_trim +EXPORT_SYMBOL_GPL vmlinux 0xac659d1c pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0xacbf5fe1 tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0xacc30fdb __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xacdb8e90 balloon_devinfo_alloc +EXPORT_SYMBOL_GPL vmlinux 0xace18446 rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xace8c93d kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xace98500 ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0xacf04cff of_extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0xacf3b97c __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xad4acad8 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0xad5a180f register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xad76e5f2 of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xad934e37 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0xad984abc bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0xad99aec8 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xadf762c2 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xae23db6b crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xae37e176 devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xae3b8527 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xae62058f inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae7b0210 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae7f4781 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0xae8c62e7 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xaec48f23 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xaecf8c9f pmf_do_irq +EXPORT_SYMBOL_GPL vmlinux 0xaed1d759 dma_buf_mmap +EXPORT_SYMBOL_GPL vmlinux 0xaf01b8de led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xaf03a450 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xaf0d84b5 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xaf13fffa bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xaf57e95a debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xaf97df30 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xafc8a778 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0xafd4ede5 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xafd545ab usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xb005fc06 wm8400_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb0082787 gov_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xb012d79d kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xb0315882 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0xb03fe010 cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0xb0508ac2 irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0xb0816fd7 device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0xb085765a cgroup_taskset_first +EXPORT_SYMBOL_GPL vmlinux 0xb0913148 btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0xb09c8535 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb10da1b5 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xb131d730 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb14f1125 rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0xb16b0541 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xb1742cd9 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1b07f92 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xb1bed25d dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0xb1c0c1c2 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xb1d12e9b rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb1f8c286 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb2256567 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xb22bed12 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xb22cc933 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xb23ce2db device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb24643b7 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xb24e62c4 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0xb25f16ca power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xb278ac80 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xb2860183 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0xb28b1dc3 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xb293c758 list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0xb2c5621c pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xb2cfdb27 da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb2fb0eb2 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xb3399b65 of_irq_parse_pci +EXPORT_SYMBOL_GPL vmlinux 0xb341c80a __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0xb3461a97 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0xb357c4bc platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xb35c1de1 regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xb38538c8 task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xb3a4b5fb devres_add +EXPORT_SYMBOL_GPL vmlinux 0xb3b90bcc subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xb3c57725 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb3c8f40c usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xb3d43072 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xb404b7f4 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xb4270dc0 device_show_int +EXPORT_SYMBOL_GPL vmlinux 0xb4295b87 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xb429db45 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xb45f1270 pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0xb46e0442 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb470810c xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0xb474b129 blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0xb4757e8a usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0xb49afb03 blk_queue_bypass_start +EXPORT_SYMBOL_GPL vmlinux 0xb4a0364c proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4d53d7d __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb4f00f6f spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xb4f8722e ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0xb50fac17 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0xb51efa74 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb555a8dd tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xb5748f8d dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xb584f5df udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5a0e11e lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0xb5aa10af atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb5b9e02d of_get_regulator_init_data +EXPORT_SYMBOL_GPL vmlinux 0xb5c8edf4 btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0xb5ca993f wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xb5cb8145 hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xb5cf9268 pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0xb5e896fb tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb60b5707 of_i8042_aux_irq +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb62d3b42 __module_address +EXPORT_SYMBOL_GPL vmlinux 0xb63c57d5 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0xb64d8ec2 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xb67b2219 cm_suspend_again +EXPORT_SYMBOL_GPL vmlinux 0xb67c64fd __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xb68245e5 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xb6893081 udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6c635af wm5110_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb7242c54 check_media_bay +EXPORT_SYMBOL_GPL vmlinux 0xb729f9e5 of_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xb763d730 devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0xb76b60bc irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0xb7879dd9 key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0xb79fb656 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb7dd8555 alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb7ddd6db pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0xb7ee61b0 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb7f70b74 napi_hash_del +EXPORT_SYMBOL_GPL vmlinux 0xb7ff232c devres_release +EXPORT_SYMBOL_GPL vmlinux 0xb809b9ee md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xb8254112 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xb82bd947 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xb83f56d5 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0xb841e872 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xb858f117 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xb85b1c15 arizona_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xb8771b5a ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0xb886c576 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xb8db64f6 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xb90e0bf5 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0xb9176155 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0xb972fc10 regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xb9a2cc47 watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9cd8635 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9f558b6 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xb9f78be5 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xb9fe76e1 usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0xba158769 rtas_cancel_event_scan +EXPORT_SYMBOL_GPL vmlinux 0xba60d46b disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xba71e199 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xba86e20e ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0xbac12739 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xbacf8cda get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0xbaf1d20e regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb0d7c8f nl_table +EXPORT_SYMBOL_GPL vmlinux 0xbb1986ee pmf_register_irq_client +EXPORT_SYMBOL_GPL vmlinux 0xbb655554 ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0xbb885753 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0xbb99e768 tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xbbccaf6d crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xbbd8e3bf blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0xbc152ba2 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xbc309652 arizona_set_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0xbc4e594b dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0xbc80b43a evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0xbc9b5a3e tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0xbcac6160 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbcadf4ac rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0xbcb12e1d napi_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xbcc60d45 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xbd069fe4 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xbd21854a class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xbd251483 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xbd4000d7 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xbd4489fc __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0xbd59f91a pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0xbd5cb8b9 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbd683102 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xbdb05f02 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xbdb222bb add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xbdb23fde ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xbdb3372d ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd6f2ef wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0xbdda9007 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe2712bc percpu_ida_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbe38cceb of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0xbea5ff1e static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0xbeafa4f3 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xbef4aeed serial8250_tx_dma +EXPORT_SYMBOL_GPL vmlinux 0xbefc33f2 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf0f2337 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xbf1a6e97 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf5fda77 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xbf81b837 md_stop +EXPORT_SYMBOL_GPL vmlinux 0xbf8cca2b rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0xbf9ed37b ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0xbfd8e453 devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xbff9cd13 pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xc00131cf visitor64 +EXPORT_SYMBOL_GPL vmlinux 0xc02a8b53 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc02bec3c usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc03178f7 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xc061367e mpic_msgr_get +EXPORT_SYMBOL_GPL vmlinux 0xc065a455 cpu_core_index_of_thread +EXPORT_SYMBOL_GPL vmlinux 0xc06faf3d hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0xc07f80d6 list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc0982b9c wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xc0b79268 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xc0bb494a anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0c38bb5 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xc0d01bc0 percpu_ref_cancel_init +EXPORT_SYMBOL_GPL vmlinux 0xc0d26387 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc0e43c36 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xc0e75cec visitor128 +EXPORT_SYMBOL_GPL vmlinux 0xc0f7b514 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0xc11b45c6 gpiod_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc1369514 pmac_low_i2c_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc14a4486 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xc16a895b bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc18578ed process_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc18c875e ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xc1c133bd pwm_set_polarity +EXPORT_SYMBOL_GPL vmlinux 0xc1ca914b call_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc1cf2513 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xc20bb185 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xc211c05b pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc24d331b irq_create_direct_mapping +EXPORT_SYMBOL_GPL vmlinux 0xc24e27b6 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xc26866c6 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xc276ff0b __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc28c4abd inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xc29a50dd single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xc2b457a1 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xc2c25342 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc2ceedb0 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xc2e140d2 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xc304065d device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xc30b3a36 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc34e987f usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc35a2680 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xc35f841f ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc407a1d4 gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc44aecd1 subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc44dd1fb of_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0xc454fc7b twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc466738f tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xc46d877e schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xc471c67a twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc47a38fd pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xc489de93 sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc491a50e debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0xc4f0524b ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xc4f173b0 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xc4f9bdea kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xc511b61b crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xc520897d regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0xc523aaf2 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xc573f418 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc582a3bc tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0xc5ba1c7e dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xc5cb0f2e pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xc5d37180 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0xc606cd3c boot_cpuid +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc61df1ab sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xc63a1109 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc66a0c56 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xc677477b device_create +EXPORT_SYMBOL_GPL vmlinux 0xc67ccbd0 sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0xc67dd77e class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xc68aa090 mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xc68aa252 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xc690866c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xc69389d8 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6a1ea02 extcon_get_cable_state +EXPORT_SYMBOL_GPL vmlinux 0xc6b669a8 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xc6cfca6a fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0xc7160623 rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc77662d5 cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0xc789adb2 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7ba366f regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xc7c6391c mpi_set_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc7c7e3f6 devres_find +EXPORT_SYMBOL_GPL vmlinux 0xc7c911dd page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xc7d61494 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xc7d756c0 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0xc7da17be timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0xc7e39bca ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc7eae72b of_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xc841dc54 subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xc858b8c2 unlock_media_bay +EXPORT_SYMBOL_GPL vmlinux 0xc867bc9f blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xc86d0560 wait_for_tpm_stat +EXPORT_SYMBOL_GPL vmlinux 0xc88f23b7 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8d10ab2 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0xc8db6188 ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0xc8e84929 cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc8f301aa regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0xc8f4eef1 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9275875 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc9382691 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc97d1140 cpufreq_cooling_get_level +EXPORT_SYMBOL_GPL vmlinux 0xc97e9bff register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0xc98d0c2d exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0xc9ae9ab9 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xc9cfa97f of_pci_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca36890c fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xca3979ab sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xca4fce1b regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xca501754 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xca675f1d platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca808dd9 devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xca83fc1c crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcacc1af8 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xcad4ad08 pmf_do_functions +EXPORT_SYMBOL_GPL vmlinux 0xcada68b1 split_page +EXPORT_SYMBOL_GPL vmlinux 0xcb15eee9 sdhci_pci_get_data +EXPORT_SYMBOL_GPL vmlinux 0xcb1687cf crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xcb1a512f invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xcb1b74f0 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcb1c8acc bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xcb3fd3f7 irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0xcb469d2b ddebug_add_module +EXPORT_SYMBOL_GPL vmlinux 0xcbc8a7e0 md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc06e4eb scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xcc128460 regmap_field_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xcc137403 rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc30501c ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xcc661061 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xcc835cea thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0xcc85fcb6 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0xcc8c4990 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xccaf87e6 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xccbed483 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0xcccb695b __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd7e93f __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xccdcb969 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xcd473ed6 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xcd6aca89 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xcd7e60b5 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcdb01877 ktime_add_ns +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcde9e898 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0xcdfca73d blkg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xce0b9b59 max77693_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xce27e36c cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xce3029a1 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xce41be1c nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xce46e140 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0xce9fb7e5 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xcea01d2a sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xcea28d71 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0xcedea62d ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xceebc5ab __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0xceebe641 ping_proc_register +EXPORT_SYMBOL_GPL vmlinux 0xcf54ea93 async_unregister_domain +EXPORT_SYMBOL_GPL vmlinux 0xcf5c3c23 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xcf651af3 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcf80dc54 cpu_remove_dev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xcf82f502 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xcfa34ab2 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfd34ec4 devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0xcfd9a317 alarm_start +EXPORT_SYMBOL_GPL vmlinux 0xd0307729 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xd03b07ae reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd07009ca irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0xd074622c transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0dcbbec __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xd0e7531c pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0xd100cb96 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xd11975ee debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xd11fa560 sdhci_pci_o2_resume +EXPORT_SYMBOL_GPL vmlinux 0xd12bb0f0 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xd14bc4d9 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1822f0b cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd19ac235 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1bb825d __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd1bd343a use_mm +EXPORT_SYMBOL_GPL vmlinux 0xd1bf24a9 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xd1c6ea93 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xd1e5658c ping_hash +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd211f7b8 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd2187d2d bus_register +EXPORT_SYMBOL_GPL vmlinux 0xd23e8165 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xd24f073e pwm_free +EXPORT_SYMBOL_GPL vmlinux 0xd265fc6a list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0xd26ac947 devm_usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0xd26fe970 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd27c9165 regmap_field_write +EXPORT_SYMBOL_GPL vmlinux 0xd2a38fb8 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xd2aaeb4e kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0xd2b5b995 sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0xd2c45ea4 of_pci_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0xd30e00d3 pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd3337ad0 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0xd3454a75 pmf_find_function +EXPORT_SYMBOL_GPL vmlinux 0xd3a053ef __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xd3bbba2e usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xd3d44097 pwm_can_sleep +EXPORT_SYMBOL_GPL vmlinux 0xd3f1b163 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xd3fd977c crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd419c85d pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0xd421da2e sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0xd43f8317 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd46b2ca9 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0xd473dbf6 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4d67728 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xd513ddbf timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xd5191bc7 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xd54e5f4f __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xd54e6317 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xd55cb230 ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0xd582227a leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xd5bcd063 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5d85e04 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0xd5fde669 ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0xd5fe02b0 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xd60f0ade fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xd63f62f5 rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0xd6410eb3 pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd695e8c6 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xd6b9a79f ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xd6c2e04b __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xd6dd0922 dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd6e06bd1 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd6e347fd digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd7063959 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77b2fa4 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd78f802d ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd7ae8f3f scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xd7c85bea crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd813aeff mdio_mux_init +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd83803d9 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xd8385d39 dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd87d684e dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0xd87fc0a0 usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0xd883157a sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0xd89fe513 fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0xd908d66b devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xd9203d8d rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd9226f22 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xd924acf6 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xd92b5e85 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd93daa4a shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0xd942d353 ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0xd944d8f9 ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0xd952a8c4 cgroup_taskset_next +EXPORT_SYMBOL_GPL vmlinux 0xd977d92f pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0xd9944bfe ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xda0a3930 __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0xda0a4d22 mpic_msgr_enable +EXPORT_SYMBOL_GPL vmlinux 0xda2034bd sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0xda2fa9e1 fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0xda44cb37 setup_charger_manager +EXPORT_SYMBOL_GPL vmlinux 0xda57ee8c raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xda649aee usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xda953ce7 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xdaa2e2cf ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xdac11bae of_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xdaf4c739 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdafb4f7b irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb077eda class_find_device +EXPORT_SYMBOL_GPL vmlinux 0xdb255319 dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0xdb41c506 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0xdb7f658c tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdba4ad93 static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0xdba80fc1 of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0xdbac9ddb usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xdbbcbffd aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xdbd055c6 pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0xdbf632f7 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdbfdee4a __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdc1e15f1 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xdc461430 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xdc75dc8e platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xdc764113 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xdc7d049f crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc854934 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0xdc8caede hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdcb0b8e9 of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0xdceb1ecf dma_buf_kunmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xdcfaf57e __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xdd065031 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd391eff profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd408c68 devm_spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xdd4cd2b5 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xdd729424 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0xdd9556dc regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xddcb0174 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xddec0625 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xddeec2a5 driver_find +EXPORT_SYMBOL_GPL vmlinux 0xddfdb0c6 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xde309a4a tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xde4c2f65 of_regulator_match +EXPORT_SYMBOL_GPL vmlinux 0xde4f046f xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0xde7231cf pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xde93218c scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xde9da75d ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0xdeca1420 pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xded1e4b1 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xdefcf5e6 pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0xdf02c56a scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xdf079983 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf6296f3 tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0xdf682e4d ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xdf9839bf devm_regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdfc182da dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xdfe637b1 cpufreq_table_validate_and_show +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe008c4c0 crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0xe027659c ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe036b3e9 mpic_msgr_put +EXPORT_SYMBOL_GPL vmlinux 0xe03c4b3a vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xe052b021 __mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xe07ca631 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xe081d6b9 tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe0bca4dd usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xe0e10d52 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xe0e9160f device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe12a209e dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xe1426e15 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xe148275d kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0xe15039ad tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0xe16591ab stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xe16d9484 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0xe1775ee7 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0xe18bdd3b crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xe19b6961 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0xe19fbb02 rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0xe1ab5a8d pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe1bb81b2 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xe1bd6c99 rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0xe1c932ad pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0xe1cd3f79 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xe1cda2c8 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xe1de9913 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xe1f2ca1d rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xe20335e4 __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xe2120b23 wm8997_patch +EXPORT_SYMBOL_GPL vmlinux 0xe217db3c device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xe250abe7 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xe266285f fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0xe2780fe2 sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xe284901b sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xe2a6342c tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xe2ab7076 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xe2b9bcc8 pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0xe2db4e59 cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0xe2fc9ad5 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe30fac88 ktime_get_monotonic_offset +EXPORT_SYMBOL_GPL vmlinux 0xe316b343 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0xe326d679 bmp085_probe +EXPORT_SYMBOL_GPL vmlinux 0xe330cb54 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0xe330d26e class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe349abbd bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xe365d8e6 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe3f98d68 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xe41159eb add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xe42a5029 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe47379d6 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xe47ebf61 crypto_lookup_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xe4836ef7 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0xe4988c55 rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xe4c031f8 btree_merge +EXPORT_SYMBOL_GPL vmlinux 0xe4c46ffd seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xe4c4b28f gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xe4cc051e ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xe4e9351d regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0xe529d276 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xe5524eab of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xe55f61ad usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe5f71627 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe60e912e sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xe6177f63 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0xe646b96a irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6558d3e spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0xe671f33c pmac_i2c_get_channel +EXPORT_SYMBOL_GPL vmlinux 0xe698b4b7 pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0xe69d4dca pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xe6b5771a __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xe6c68334 ddebug_remove_module +EXPORT_SYMBOL_GPL vmlinux 0xe6d0f621 thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe7145917 usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0xe73d24e0 blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0xe74c1506 dma_buf_end_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe7722157 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0xe7af6760 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xe7b3056c balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0xe7bded4a usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xe7cee3e2 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe81bc791 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xe821e596 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0xe82b4b07 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0xe833c4b6 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0xe83ee5e1 dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0xe85c55e7 btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe87411d0 cgroup_add_cftypes +EXPORT_SYMBOL_GPL vmlinux 0xe896b6bf debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xe89a0498 rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xe89cb98a file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xe8c83379 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe8cc0caa put_device +EXPORT_SYMBOL_GPL vmlinux 0xe9046dc5 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xe92ab12c blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xe92c8fbb fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe981196b usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xe98b408f clockevents_unbind +EXPORT_SYMBOL_GPL vmlinux 0xe9901af1 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xe9a17cca max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xe9b32277 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0xea0fa6dc pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea30e861 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea4d3d5b sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xea4e0e92 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xea5be663 da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0xeaa7035a ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xeabdacae css_next_descendant_post +EXPORT_SYMBOL_GPL vmlinux 0xeae90e6f bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xeafcd154 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xeb1c3628 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xeb277b14 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0xeb30b2fe cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0xeb40109e rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xeb7e10bf screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xeb8ae736 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xeb98215e cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xeb9abbee ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xeba202d9 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xebb9aebd free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xebcebc71 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xebd64e8d bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xebec57c4 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xebfd1093 ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0xec12f486 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec3ce95b swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0xec5b08a1 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xec6b6fba platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xec711403 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xecef548c i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xed1f98b8 tpm_open +EXPORT_SYMBOL_GPL vmlinux 0xed409d75 blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0xed83356b regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xed83eb8d sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0xedc2994d ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0xedd49930 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xee0b1aee devm_rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xee1b06af sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xee1dc72d pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0xee38bdfe __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xee5f6fa4 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xee624c6c powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0xee6912b8 __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xee6b71c4 syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0xeeee48d0 ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0xeef8d2da of_irq_parse_and_map_pci +EXPORT_SYMBOL_GPL vmlinux 0xef05017f ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xef409b74 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0xef422dca alarm_init +EXPORT_SYMBOL_GPL vmlinux 0xef4ceaa4 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef88cd67 balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0xef91dc1b usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0xef91e0af i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xef941373 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0xefc26c20 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xefd709b2 usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0xefe6bf95 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xeff3bda4 da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0xf0194a15 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0xf023160f inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xf03974d3 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xf08a4c34 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xf0950061 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf0c3e6f3 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xf0c3f9d1 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0xf0d87de8 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xf0ef1c9a css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0xf1013316 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xf106f64b usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xf1274648 tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0xf143a6d2 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xf158f170 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xf16207bf handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1887674 css_rightmost_descendant +EXPORT_SYMBOL_GPL vmlinux 0xf18fbcf4 pwm_enable +EXPORT_SYMBOL_GPL vmlinux 0xf1a62b6f of_i8042_kbd_irq +EXPORT_SYMBOL_GPL vmlinux 0xf1ac4722 usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1e7f6f5 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0xf20d3062 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf2279df6 __netpoll_free_async +EXPORT_SYMBOL_GPL vmlinux 0xf2407468 rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0xf2512f72 devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xf27977e2 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xf29c1fc8 irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0xf29dc869 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0xf2adad2e power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0xf2e2688e regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xf2e32afc usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xf2f077cc pkey_id_type_name +EXPORT_SYMBOL_GPL vmlinux 0xf2fb6351 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30c0793 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf32de03d devm_pwm_put +EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0xf3334813 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3ca91a1 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xf406a456 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xf41fed20 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf447b232 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xf46e3789 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xf473e0e1 task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL_GPL vmlinux 0xf4954775 register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf49bdff7 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0xf4a0067d blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xf4ca848e rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xf4df0d1e inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf5286590 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xf538da06 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf56ecec2 regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xf5a415ca bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5bcf1b2 __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0xf5d648d1 dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0xf5e0ad19 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0xf5e15988 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xf5e31f58 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xf5f5d1f1 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0xf5fb0cd4 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xf5fef4e3 wm5110_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf6169a31 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xf6232310 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xf6447985 arizona_dev_init +EXPORT_SYMBOL_GPL vmlinux 0xf64633d8 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0xf6827a3f blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xf68fe860 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xf6ac5786 regmap_fields_write +EXPORT_SYMBOL_GPL vmlinux 0xf6d95147 pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0xf6de5a60 rio_unlock_device +EXPORT_SYMBOL_GPL vmlinux 0xf6dedc1b __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6ecb395 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xf6f7e9c6 lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0xf6f9c5a7 devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xf6fb4c2d regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xf75540a5 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xf777643c __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf792cf7d usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0xf7956062 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf7af2b99 tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xf7b6d199 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xf7c49324 of_pci_parse_bus_range +EXPORT_SYMBOL_GPL vmlinux 0xf7d0128a ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xf7f47874 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0xf7f7bb71 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xf7fc37e9 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xf7fd3ab0 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0xf8013337 ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xf816c866 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0xf8176526 ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf8358bb6 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xf8409386 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf846506f irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf858677c ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xf868f610 class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf889d2d7 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xf8bb7ffe ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8fe3d0b kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0xf9154bff inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf932015f __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf932fecd pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0xf935a32c of_property_read_string_helper +EXPORT_SYMBOL_GPL vmlinux 0xf95f3a79 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xf97f3584 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xf99f77ac ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9c8e1f9 ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d39c26 device_move +EXPORT_SYMBOL_GPL vmlinux 0xf9e20463 posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0xf9ea3b47 serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0xf9f454e1 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xf9fb1448 regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa235c72 sec_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xfa46353e platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xfa5d008c hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0xfa6e2373 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xfab60503 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xfac21640 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xfac517b1 ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0xfae0702f dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0xfae7d423 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xfb2b0d7f __percpu_ida_init +EXPORT_SYMBOL_GPL vmlinux 0xfb325c0f platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb32e708 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xfb525dfc pmac_i2c_get_type +EXPORT_SYMBOL_GPL vmlinux 0xfb52b77d __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0xfb542b3c usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb75f879 pci_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0xfb79c305 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0xfb84a14c n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xfb9afb5f scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0xfba70693 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfbaf19dd wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0xfbb457a0 pmf_call_one +EXPORT_SYMBOL_GPL vmlinux 0xfbbedefd of_prop_next_string +EXPORT_SYMBOL_GPL vmlinux 0xfbf1a8e7 ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc2b6ade ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xfc39feb3 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xfc556f50 regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0xfc60d664 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xfc98388b pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0xfc98ac88 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfcffb4e1 pmac_i2c_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xfd5f4397 thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0xfd7ed91e usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0xfd86b43f crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xfe082234 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0xfe21c74c stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xfe2e1756 pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0xfe632e92 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xfe7c85f1 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfeda4e1c look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0xfef014a2 iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff0113a8 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xffc884a8 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xffcb5bb1 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xffccc8d2 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xfffe8796 device_reprobe --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/powerpc/powerpc-smp.compiler +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/powerpc/powerpc-smp.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2 --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/powerpc/powerpc-smp.modules +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/powerpc/powerpc-smp.modules @@ -0,0 +1,3662 @@ +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250_dw +8250_pci +8255 +8255_pci +8390 +88pm800 +88pm805 +88pm80x +88pm80x_onkey +88pm860x_battery +88pm860x_bl +88pm860x_charger +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +ac97_bus +acard-ahci +acecad +acenic +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5380 +ad5398 +ad5421 +ad5446 +ad5449 +ad5504 +ad5624r_spi +ad5686 +ad5755 +ad5764 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7266 +ad7280a +ad7291 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7791 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad7923 +ad799x +ad8366 +ad9523 +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2032 +addi_apci_2200 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +addi_watchdog +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adf4350 +adfs +adi +adis16060 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1275 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +ads1015 +ads7828 +ads7846 +ads7871 +ad_sigma_delta +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adv7170 +adv7175 +adv7180 +advansys +adv_pci1710 +adv_pci1723 +adv_pci1724 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +af_802154 +af9013 +af9033 +af_alg +affs +af_key +af_packet_diag +af-rxrpc +ah4 +ah6 +aha152x_cs +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airport +ak8975 +algif_hash +algif_skcipher +ali-ircc +alim7101_wdt +alphatrack +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +alx +ambassador +amc6821 +amd5536udc +amd8111e +amplc_dio200_common +amplc_dio200_pci +amplc_pc236 +amplc_pci224 +amplc_pci230 +amplc_pci263 +ams +ams369fg06 +analog +anatop-regulator +ansi_cprng +ans-lcd +anubis +aoe +apbps2 +apds9300 +apds9802als +apds990x +apm_emu +apm-emulation +apm_power +apm-power +appledisplay +appletalk +appletouch +applicom +ar5523 +ar7part +arc4 +arc_emac +arcmsr +arcnet +arc_ps2 +arc-rawmode +arc-rimi +arc_uart +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as3711_bl +as3711-regulator +as3722-regulator +as5011 +asc7621 +asix +ast +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at86rf230 +at91_ether +ata_piix +atbm8830 +aten +ath +ath10k_core +ath10k_pci +ath3k +ath5k +ath6kl_core +ath6kl_sdio +ath6kl_usb +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atm +atmel +atmel_cs +atmel_mxt_ts +atmel_pci +atmel-ssc +atmtcp +atp870u +atxp1 +atyfb +au0828 +au8522_common +au8522_decoder +au8522_dig +aufs +auo_k1900fb +auo_k1901fb +auo_k190x +auo-pixcir-ts +authenc +authencesn +auth_rpcgss +autofs4 +avma1_cs +avm_cs +avmfritz +ax25 +ax88179_178a +axnet_cs +b1 +b1dma +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcma-hcd +bcm_wimax +bd6107 +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluecard_cs +bluetooth +bma150 +bma180 +bmac +bmp085-i2c +bmp085-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpa10x +bpck +bpck6 +bpctl_mod +bpqether +bq2415x_charger +bq24190_charger +bq24735-charger +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcoexist +btcx-risc +btmrvl +btmrvl_sdio +btmtk_usb +btrfs +btsdio +bttv +btuart_cs +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +bypass +c4 +c67x00 +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +caif_usb +caif_virtio +camellia_generic +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5_generic +cast6_generic +cast_common +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcimdas +cb_pcimdda +cc770 +cc770_isa +cc770_platform +c_can +c_can_pci +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +cedusb +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +cifs +ci_hdrc +ci_hdrc_imx +ci_hdrc_msm +ci_hdrc_pci +cirrus +cirrusfb +clearpad_tm1217 +clip +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm36651 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmac +cmdlinepart +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +configfs +contec_pci_dio +cordic +core +cp210x +cpia2 +cpu-notifier-error-inject +c-qcam +cramfs +crc32 +crc7 +crc8 +crc-ccitt +crc-itu-t +cros_ec +cros_ec_i2c +cros_ec_keyb +cros_ec_spi +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +csiostor +ctr +cts +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24117 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyapa +cyber2000fb +cyberjack +cyclades +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da9030_battery +da9034-ts +da903x +da903x_bl +da9052-battery +da9052_bl +da9052-hwmon +da9052_onkey +da9052-regulator +da9052_tsi +da9052_wdt +da9055-hwmon +da9055_onkey +da9055-regulator +da9055_wdt +da9063-regulator +da9210-regulator +DAC960 +daqboard2000 +das08 +das08_cs +das08_pci +db9 +dc395x +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +ddbridge +de2104x +de4x5 +decnet +deflate +defxx +denali +denali_pci +des_generic +dgap +dgnc +dgrp +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bio-prison +dm-bufio +dm-cache +dm-cache-cleaner +dm-cache-mq +dm-crypt +dm-delay +dmfe +dm-flakey +dm-log +dm-log-userspace +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-switch +dm-thin-pool +dm-verity +dmx3191d +dm-zero +dnet +dn_rtmsg +docg3 +docg4 +donauboe +dpt_i2o +drbd +drm +drm_kms_helper +drm_usb +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2781_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt3000 +dt3155v4l +dt9812 +dtl1_cs +dummy +dummy-irq +dvb-as102 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-af9035 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6007 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-rtl28xxu +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb_usb_v2 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc2 +dwc2_pci +dwc2_platform +dwc3 +dwc3-pci +dw_dmac +dw_dmac_core +dw_dmac_pci +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e4000 +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_vlan +ec100 +echo +edac_core +edt-ft5x06 +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efs +egalax_ts +ehset +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +em28xx-rc +emc1403 +emc2103 +emc6w201 +em_canid +em_cmp +emi26 +emi62 +em_ipset +em_meta +em_nbyte +empeg +ems_pci +ems_pcmcia +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +eni +enic +epat +epia +epic100 +eql +esas2r +esd_usb2 +esi-sir +esp4 +esp6 +et131x +ethoc +evbug +exofs +extcon-adc-jack +extcon-arizona +extcon-gpio +extcon-max77693 +extcon-max8997 +extcon-palmas +ezusb +f2fs +f75375s +f81232 +fakelb +fan53555 +farsync +faulty +fb_sys_fops +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +fid +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +firewire-serial +fit2 +fit3 +fixed +fld +flexcan +floppy +fm801-gp +fmc +fmc-chardev +fmc-fakedev +fmc-trivial +fmc-write-eeprom +fm_drv +fmvj18x_cs +forcedeth +fore_200e +fotg210-hcd +fotg210-udc +freevxfs +friq +frpw +fsa9480 +fscache +fsl_elbc_nand +ft1000 +ft1000_pcmcia +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +fusb300_udc +fusbh200-hcd +g450_pll +g760a +g762 +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdmtty +gdmulte +gdmwm +gdth +generic +generic-adc-battery +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_ncm +g_nokia +go7007 +go7007-loader +go7007-usb +goku_udc +goldfishfb +gp2ap002a00f +gp2ap020a00f +gpio +gpio-74x164 +gpio-addr-flash +gpio-adnp +gpio-adp5520 +gpio-adp5588 +gpio-amd8111 +gpio-arizona +gpio_backlight +gpio-charger +gpio-da9052 +gpio-da9055 +gpio-dwapb +gpio-fan +gpio-generic +gpio-grgpio +gpio-ir-recv +gpio-janz-ttl +gpio-kempld +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-rdc321x +gpio-regulator +gpio_tilt_polled +gpio-tps65912 +gpio-ts5500 +gpio-twl4030 +gpio-twl6040 +gpio-ucb1400 +gpio-viperboard +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +grcan +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_jl2005bcd +gspca_kinect +gspca_konica +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_nw80x +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_se401 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stk1135 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gxt4500 +g_zero +hamachi +hampshire +hanwang +hci +hci_uart +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hid +hid-a4tech +hid-apple +hid-appleir +hid-aureal +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-elo +hid-emsff +hid-ezkey +hid-gaff +hid-generic +hid-gyration +hid-holtekff +hid-holtek-kbd +hid-holtek-mouse +hid-huion +hid-icade +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-lenovo-tpkbd +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-rmi +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-isku +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-konepure +hid-roccat-kovaplus +hid-roccat-lua +hid-roccat-pyra +hid-roccat-ryos +hid-roccat-savu +hid-saitek +hid-samsung +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-gyro-3d +hid-sensor-hub +hid-sensor-iio-common +hid-sensor-magn-3d +hid-sensor-trigger +hid-sjoy +hid-sony +hid-speedlink +hid-steelseries +hid-sunplus +hid-thingm +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-xinmo +hid-zpff +hid-zydacron +hifn_795x +hih6130 +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hpfs +hpilo +hpsa +hptiop +hsi +hsi_char +hso +hsr +htc-pasic3 +htu21 +huawei_cdc_ncm +hwa-hc +hwa-rc +hwmon-vid +hx8357 +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-usb +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-arb-gpio-challenge +i2c-cbus-gpio +i2c-designware-core +i2c-designware-pci +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-hid +i2c-hydra +i2c-i801 +i2c-isch +i2c-kempld +i2c-matroxfb +i2c-mpc +i2c-mux +i2c-mux-gpio +i2c-mux-pca9541 +i2c-mux-pca954x +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-piix4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-viperboard +i2c-xiic +i2o_block +i2o_bus +i2o_config +i2o_core +i2o_proc +i2o_scsi +i40e +i40evf +i5k_amb +i6300esb +i740fb +i82092 +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_isert +ib_mad +ibmaem +ibmpex +ib_mthca +ib_sa +ib_srp +ib_srpt +ib_ucm +ib_umad +ib_uverbs +icp_multi +ics932s401 +idmouse +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iguanair +iio_dummy +iio_hwmon +iio-trig-interrupt +iio-trig-periodic-rtc +iio-trig-sysfs +ili210x +ili922x +ili9320 +imm +imon +ims-pcu +imx074 +imx_thermal +ina209 +ina2xx +industrialio +industrialio-triggered-buffer +inet_diag +inexio +inftl +initio +input-polldev +int51x1 +intel_vr_nor +interact +interval_tree_test +inv-mpu6050 +ioc4 +io_edgeport +io_ti +iowarrior +ip6_gre +ip6table_filter +ip6table_mangle +ip6table_nat +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_MASQUERADE +ip6t_mh +ip6t_NPT +ip6t_REJECT +ip6t_rpfilter +ip6t_rt +ip6t_SYNPROXY +ip6_tunnel +ip6_vti +ipack +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_poweroff +ipmi_si +ipmi_watchdog +ipoctal +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netnet +ip_set_hash_netport +ip_set_hash_netportnet +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_MASQUERADE +ipt_REJECT +ipt_rpfilter +ipt_SYNPROXY +ipt_ULOG +ip_tunnel +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ip_vti +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sanyo-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it913x-fe +itd1000 +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwldvm +iwlegacy +iwlmvm +iwlwifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +kafs +kalmia +kaweth +kbic +kbtab +kcomedilib +ke_counter +kempld-core +kempld_wdt +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +ko2iblnd +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksocklnd +ksz884x +ktti +kvaser_pci +kvaser_usb +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +l2tp_ppp +l4f00242t03 +l64781 +lanai +lapb +lapbether +latch-addr-flash +lattice-ecp3-config +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-bd2802 +leds-blinkm +leds-da903x +leds-da9052 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lm3533 +leds-lm355x +leds-lm3642 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lp5562 +leds-lp55xx-common +leds-lp8501 +leds-lp8788 +leds-lt3593 +leds-max8997 +leds-mc13783 +leds-ot200 +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pca9685 +leds-pwm +leds-regulator +leds-tca6507 +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-camera +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-oneshot +ledtrig-timer +ledtrig-transient +legousbtower +lg2160 +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libceph +libcfs +libcomposite +libcrc32c +libcxgbi +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc +llc2 +llog_test +ll_temac +lm25066 +lm3533-als +lm3533_bl +lm3533-core +lm3533-ctrlbank +lm3630a_bl +lm3639_bl +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm8333 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95234 +lm95241 +lm95245 +lmc +lms283gf05 +lms501kf03 +lmv +lnbp21 +lnbp22 +lnet +lnet_selftest +lockd +lov +lp +lp3971 +lp3972 +lp855x_bl +lp8727_charger +lp8755 +lp8788_bl +lp8788-charger +lpc_ich +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc2978 +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lustre +lv5207lp +lvfs +lz4 +lz4_compress +lz4hc +lz4hc_compress +m25p80 +m2m-deinterlace +m52790 +m88rs2000 +ma600-sir +mac53c94 +mac80211 +mac80211_hwsim +mac802154 +macb +mac-celtic +mac-centeuro +mac-croatian +mac-cyrillic +mace +mac-gaelic +mac-greek +mac_hid +mac-iceland +mac-inuit +mac-roman +mac-romanian +mac-turkish +macvlan +macvtap +mag3110 +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix-keymap +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16064 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max197 +max2165 +max3100 +max34440 +max517 +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77686 +max77693 +max8649 +max8660 +max8688 +max8903_charger +max8907 +max8907-regulator +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8973-regulator +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-i2c +mc13xxx-regulator-core +mc13xxx-spi +mc44s803 +mceusb +mcp2120-sir +mcp251x +mcp3021 +mcp320x +mcp3422 +mcp4725 +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memstick +mena21_wdt +mesh +metronomefb +metro-usb +mfd +mga +mgc +michael_mic +microread +microread_i2c +microtek +mii +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mlx5_core +mlx5_ib +mma8450 +mmc_block +mms114 +mos7720 +mos7840 +moxa +mpoa +mpr121_touchkey +mpt2sas +mpt3sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrf24j40 +mrp +mrst_max3110 +ms_block +msdos +msp3400 +mspro_block +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt29f_spinand +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +musb_am335x +musb_dsps +musb_hdrc +mv643xx_eth +mv88e6060 +mv88e6xxx_drv +mvmdio +mvsas +mv_u3d_core +mv_udc +mvumi +mwifiex +mwifiex_pcie +mwifiex_sdio +mwifiex_usb +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxser +myri10ge +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +nau7802 +navman +nbd +nci +ncpfs +ne2k-pci +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netlink_diag +netprio_cgroup +netrom +netxen_nic +newtonkbd +nfc +nfc_digital +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcsim +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_ipv4 +nf_nat_ipv6 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nfsv2 +nfsv3 +nfsv4 +nf_synproxy_core +nf_tables +nf_tables_arp +nf_tables_bridge +nf_tables_ipv4 +nf_tables_ipv6 +nft_chain_nat_ipv4 +nft_chain_nat_ipv6 +nft_chain_route_ipv4 +nft_chain_route_ipv6 +nft_compat +nft_counter +nft_ct +nft_exthdr +nft_hash +nftl +nft_limit +nft_log +nft_meta +nft_nat +nft_rbtree +nft_reject_ipv4 +ngene +n_hdlc +ni_6527 +ni_65xx +ni_660x +ni_670x +nicstar +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_cs +ni_labpc_pci +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nlmon +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +nosy +notifier-error-inject +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc-ircc +nsp32 +nsp_cs +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +null_blk +nvidiafb +nvme +nxt200x +nxt6000 +obdclass +obdecho +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ocrdma +ofpart +of_serial +old_belkin-sir +olpc_apsp +omfs +omninet +on20 +on26 +onenand +opencores-kbd +openvswitch +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osc +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7640 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +ozwpan +p54common +p54pci +p54spi +p54usb +p8022 +p8023 +palmas-regulator +pandora_bl +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87410 +pata_ns87415 +pata_of_platform +pata_oldpiix +pata_opti +pata_optidma +pata_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc300too +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci-stub +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc_adma +peak_pci +peak_pcmcia +peak_usb +pegasus +penmount +percpu_test +pf +pfuze100-regulator +pg +phantom +phison +phonet +phram +phy-core +phy-exynos-dp-video +phy-generic +phy-gpio-vbus-usb +phy-isp1301 +phy-rcar-usb +phy-samsung-usb +phy-samsung-usb2 +phy-samsung-usb3 +physmap +physmap_of +pixcir_i2c_ts +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm80xx +pmbus +pmbus_core +pmc551 +pmcraid +pm-notifier-error-inject +pmu_battery +pn533 +pn544 +pn544_i2c +pn_pep +port100 +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +psmouse +psnap +pt +ptlrpc +ptp +pvrusb2 +pwc +pwm_bl +pwm-pca9685 +pwm-twl +pwm-twl-led +pxa27x_udc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qmi_wwan +qnx4 +qnx6 +qt1010 +qt1070 +qt2160 +quatech2 +quatech_daqp_cs +quota_tree +quota_v1 +quota_v2 +qxl +r128 +r592 +r6040 +r8152 +r815x +r8169 +r8187se +r8188eu +r8192e_pci +r8192u_usb +r820t +r852 +r8712u +r8a66597-hcd +r8a66597-udc +rack-meter +radeon +radio-i2c-si470x +radio-keene +radio-ma901 +radio-maxiradio +radio-mr800 +radio-shark +radio-si4713 +radio-si476x +radio-tea5764 +radio-timb +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +ray_cs +rbd +rbtree_test +rc5t583-regulator +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rcar_vin +rc-asus-pc39 +rc-asus-ps3-100 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-delock-61959 +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-it913x-v1 +rc-it913x-v2 +rc-kaiomy +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-msi-digivox-ii +rc-msi-digivox-iii +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-reddo +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-total-media-in-hand-02 +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +remoteproc +renesas_usbhs +retu-mfd +retu-pwrbutton +retu_wdt +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-gpio +rfkill-regulator +rio500 +rionet +rio-scan +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rp2 +rpcsec_gss_krb5 +rsxx +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800mmio +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm80x +rtc-88pm860x +rtc-ab3100 +rtc-as3722 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc_cmos_setup +rtc-da9052 +rtc-da9055 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds2404 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-generic +rtc-hid-sensor-time +rtc-isl12022 +rtc-isl1208 +rtc-lp8788 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max77686 +rtc-max8907 +rtc-max8925 +rtc-max8997 +rtc-max8998 +rtc-mc13xxx +rtc-moxart +rtc-msm6242 +rtc-palmas +rtc-pcf2123 +rtc-pcf2127 +rtc-pcf50633 +rtc-pcf8523 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rc5t583 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx4581 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-s5m +rtc-snvs +rtc-stk17ta8 +rtc-tps6586x +rtc-tps65910 +rtc-tps80031 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rtl2830 +rtl2832 +rtl8150 +rtl8180 +rtl8187 +rtl8188ee +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtl8723ae +rtl8723be +rtl8723-common +rtl8821ae +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtl_pci +rtl_usb +rtlwifi +rts5139 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rx51_battery +rxkad +s1d13xxxfb +s2250 +s2255drv +s2io +s2mps11 +s3fb +s5h1409 +s5h1411 +s5h1420 +s5m8767 +s626 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +salsa20_generic +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_rcar +sata_sil +sata_sil24 +sata_sis +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sbe-2t3e3 +sbp_target +sbs-battery +sc92031 +sca3000 +sch_atm +sch_cbq +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_fq +sch_fq_codel +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_plug +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +sctp +sctp_probe +sdhci +sdhci-of-esdhc +sdhci-of-hlwd +sdhci-pci +sdhci-pltfm +sdio_uart +sdricoh_cs +sdr-msi3101 +sedlbauer_cs +seed +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent_generic +serport +serqt_usb2 +ses +sfc +sha1-powerpc +shark2 +sh_eth +shpchp +sht15 +sht21 +sh_veu +si21xx +si4713-i2c +si476x-core +sidewinder +sierra +sierra_net +sil164 +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_of_platform +sja1000_platform +skel +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slip +slram +sm501 +sm501fb +sm7xxfb +smb347-charger +smc91c92_cs +sm_common +sm_ftl +smm665 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +snd +snd-ac97-codec +snd-ad1889 +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-aloop +snd-als300 +snd-als4000 +snd-aoa +snd-aoa-codec-onyx +snd-aoa-codec-tas +snd-aoa-codec-toonie +snd-aoa-fabric-layout +snd-aoa-i2sbus +snd-aoa-soundbus +snd-at73c213 +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-compress +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dice +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-firewire-lib +snd-firewire-speakers +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-ca0110 +snd-hda-codec-ca0132 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-isight +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lola +snd-lx6464es +snd-maestro3 +snd-mia +snd-mixart +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-powermac +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-scs1x +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-atmel-pcm +snd-soc-core +snd-soc-si476x +snd-soc-simple-card +snd-sonicvibes +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usb-hiface +snd-usbmidi-lib +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +soc_scale_crop +softdog +softing +softing_cs +solo6x10 +solos-pci +sony-btf-mpx +soundcore +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_dectlk +speakup_dummy +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +spectrum_cs +speedfax +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw +spi-dw-midpci +spi-gpio +spi_ks8995 +spi-lm70llp +spi-oc-tiny +spi-pxa2xx-pci +spi-pxa2xx-platform +spi-sc18is602 +spi-tle62x0 +spi-topcliff-pch +spi-xcomm +squashfs +sr9700 +ssb +ssb-hcd +ssd1307fb +ssfdc +sst25l +ssu100 +st +st1232 +st_accel +st_accel_i2c +st_accel_spi +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste_modem_rproc +stex +st_gyro +st_gyro_i2c +st_gyro_spi +stinger +stir4200 +stk1160 +stkwebcam +st_magn +st_magn_i2c +st_magn_spi +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +st_pressure +st_pressure_i2c +st_pressure_spi +streamzap +st_sensors +st_sensors_i2c +st_sensors_spi +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +sur40 +svcrdma +svgalib +swim3 +sx8 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synaptics_usb +synclink +synclink_cs +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tca8418_keypad +tcm_fc +tcm_loop +tcm_qla2xxx +tcm_usb_gadget +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tcs3472 +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tda998x +tdfx +tdfxfb +tdo24m +tea +tea575x +tea5761 +tea5767 +tea6415c +tea6420 +team +team_mode_activebackup +team_mode_broadcast +team_mode_loadbalance +team_mode_random +team_mode_roundrobin +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +test-string_helpers +tg3 +tgr192 +therm_windtunnel +thmc50 +ti-adc081c +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmp006 +tmp102 +tmp401 +tmp421 +tmscsim +toim3232-sir +touchit213 +touchright +touchwin +tpci200 +tpm_atmel +tpm_i2c_atmel +tpm_i2c_infineon +tpm_i2c_nuvoton +tpm_i2c_stm_st33 +tpm-rng +tps51632-regulator +tps6105x +tps6105x-regulator +tps62360-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps65090-charger +tps65090-regulator +tps65217 +tps65217_bl +tps65217-regulator +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +tps80031-regulator +trancevibrator +tranzport +tridentfb +ts2020 +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +tsl2x7x_core +tsl4531 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +tua6100 +tua9001 +tulip +tuner +tuner_it913x +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tusb6010 +tvaudio +tveeprom +tvp5150 +tw2804 +tw9903 +tw9906 +tw9910 +twidjoy +twl4030_charger +twl4030_keypad +twl4030-madc +twl4030-madc-hwmon +twl4030-pwrbutton +twl4030-vibra +twl4030_wdt +twl6030-gpadc +twl6040-vibra +twofish_common +twofish_generic +typhoon +u132-hcd +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +ucd9000 +ucd9200 +uda1342 +udc-core +udf +udl +udlfb +udp_diag +ueagle-atm +u_ether +ufs +ufshcd +ufshcd-pci +ufshcd-pltfrm +uhid +uio +uio_aec +uio_cif +uio_dmem_genirq +uio_mf624 +uio_netx +uio_pci_generic +uio_pdrv_genirq +uio_sercos3 +uli526x +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +uninorth-agp +unix_diag +upd64031a +upd64083 +uPD98402 +u_rndis +usb3503 +usb_8dev +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_f_acm +usb_f_ecm +usb_f_ecm_subset +usb_f_eem +usb_f_mass_storage +usb_f_ncm +usb_f_obex +usb_f_phonet +usb_f_rndis +usb_f_serial +usb_f_ss_lb +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmisc_imx +usbmon +usbmouse +usbnet +usbserial +usb-serial-simple +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbtv +usbvision +usb_wwan +u_serial +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +ux500 +v4l2-common +v4l2-dv-timings +v4l2-int-device +v4l2-mem2mem +vcan +vcnl4000 +ves1820 +ves1x93 +veth +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost +vhost_net +vhost_scsi +via +via686a +via-ircc +via-rhine +via-sdmmc +via-velocity +videobuf2-core +videobuf2-dma-contig +videobuf2-dma-sg +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +viperboard +viperboard_adc +virtio +virtio_balloon +virtio_blk +virtio_console +virtio_mmio +virtio_net +virtio_pci +virtio_ring +virtio-rng +virtio_scsi +virtual +visor +vivi +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_pio2 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmwgfx +vmxnet3 +vp27smpx +vpx3220 +vringh +vsock +vsxxxaa +vt6655_stage +vt6656_stage +vt8231 +vt8623fb +vub300 +vx855 +vxge +vxlan +w1_bq27000 +w1_ds2408 +w1_ds2413 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1_ds2781 +w1_ds28e04 +w1-gpio +w1_smem +w1_therm +w35und +w5100 +w5300 +w6692 +w83781d +w83791d +w83792d +w83793 +w83795 +w83977af_ir +w83l785ts +w83l786ng +w9966 +wacom +wacom_i2c +wacom_w8001 +walkera0701 +wanxl +warrior +wbsd +wcn36xx +wdrtas +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wil6210 +wimax +winbond-840 +windfarm_core +wire +wishbone-serial +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl18xx +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wlcore +wlcore_sdio +wlcore_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +xc4000 +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_algo +xfrm_ipcomp +xfrm_user +xfs +xgene-enet +xgifb +xgmac +xilinx_ps2 +xilinx_uartps +xillybus_core +xillybus_of +xillybus_pcie +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +xsens_mt +x_tables +xt_addrtype +xt_AUDIT +xt_bpf +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlabel +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_ecn +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_HMARK +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_LOG +xt_mac +xt_mark +xt_multiport +xt_nat +xt_NETMAP +xt_nfacct +xt_NFLOG +xt_NFQUEUE +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xt_REDIRECT +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +zatm +zaurus +zd1201 +zd1211rw +zforce_ts +zhenhua +zl10036 +zl10039 +zl10353 +zl6100 +zlib +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram +zte_ev --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/powerpc/powerpc64-emb +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/powerpc/powerpc64-emb @@ -0,0 +1,16570 @@ +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0x0889580c suni_init +EXPORT_SYMBOL drivers/bcma/bcma 0x775c8a9c bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x127a5901 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/paride/paride 0x0ac1c49c paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x3f43b155 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x6250ec0c pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x6ba143fb pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xa7d9ab0d pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xbc0ec868 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xc9197560 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xcb42049e pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xd056ce81 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xf02e4253 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xf37d36af paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0xfe462444 pi_init +EXPORT_SYMBOL drivers/crypto/caam/caam 0xfd2b02dc caam_get_era +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x0ec457a0 caam_jr_enqueue +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x7cfb5809 gen_split_key +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x9b0667de caam_jr_free +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0xbb030d6e caam_jr_strstatus +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0xec21097c split_key_done +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0xff777730 caam_jr_alloc +EXPORT_SYMBOL drivers/crypto/talitos 0xbac0eebf talitos_submit +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x1c383f65 dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x2b33d4f9 dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x7618355c dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xadd92685 dw_dma_get_src_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xd19f3ea5 dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xe9e62282 dw_dma_cyclic_free +EXPORT_SYMBOL drivers/edac/edac_core 0xbc8bdae1 edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04d0f641 fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0f7d6af8 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x11dea356 fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x205e6720 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2cbeb894 fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0x35e86269 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x36253ef4 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x49e893db fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4e3054a1 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x53d62e5d fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5c045641 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x645b715f fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7d1054bf fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7d359cdd fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x87094c0f fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x965a77b3 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9e5cfe65 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9eecdb89 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa426465d fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa7a3f6ba fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa818d49d fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa9dd02a2 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb0701458 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb5310741 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb653c7e5 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd8a5b710 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xef0a832f fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf90789d0 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfd61e6b9 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/fmc/fmc 0x259b9d11 fmc_driver_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x2e2d6352 fmc_device_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x3341c7f9 fmc_free_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x593be729 fmc_device_register_n +EXPORT_SYMBOL drivers/fmc/fmc 0x92c63940 fmc_driver_register +EXPORT_SYMBOL drivers/fmc/fmc 0xaaec4612 fmc_device_register +EXPORT_SYMBOL drivers/fmc/fmc 0xc5b2ae2d fmc_device_unregister_n +EXPORT_SYMBOL drivers/fmc/fmc 0xc7013b7e fmc_find_sdb_device +EXPORT_SYMBOL drivers/fmc/fmc 0xde4fb70e fmc_reprogram +EXPORT_SYMBOL drivers/fmc/fmc 0xe0542855 fmc_scan_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xf036229b fmc_show_sdb_tree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00025916 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00667d8a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x026c0d6b drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03e66ebf drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07887d9a drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x099301ff drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a2819b6 drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cb2685b drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cf1ad63 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cf8666b drm_gem_dumb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ddab729 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0de22db8 drm_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x101227ad drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x101c1cc3 drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x107742a9 drm_get_subpixel_order_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11dfd096 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13e6a572 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a9a178 drm_get_format_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x15548509 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x163d97f3 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x165a4d70 drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x185daaf9 drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x189f6401 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19e44324 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a770ac3 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1aaa3bef drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c3b38b4 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c8a80a4 drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d38469c drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d77bb51 drm_bridge_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ed58530 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1edb130a drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x204b7a5f drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20b37c60 drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22dc1849 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24c41638 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26c91126 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2859c93f drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x299e4479 drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29ad006c drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a6a2734 drm_prime_init_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a942ab2 drm_mm_insert_node_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d320f14 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d80be4d drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e7a4300 drm_rgb_quant_range_selectable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f0b064f drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fee5629 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32041f8d drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32a6bd5f drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33ebb874 drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3447647f drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34b9d1c3 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36a3c931 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36f91ef3 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a4f7ae drm_format_num_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a80e4cb drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ac1fef9 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ae7b2d0 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b214858 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b8d2121 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b9d009a drm_format_plane_cpp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c261f9b drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ccc5c60 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d4b8108 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ebd8bd6 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ec43ddd drm_unplug_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4006a2dc drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40220134 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x411a8489 drm_mode_group_init_legacy_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x423908db drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x439986bf drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4566dd96 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45f85616 drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46b8418a drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47a8f94a drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x493a28ac drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49fabf0d drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b1215cc drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b12efa0 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b39dfc5 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c511235 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d0bafc0 drm_connector_unplug_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e28baec drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50b0b745 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e28c07 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x526f6f71 drm_rect_calc_hscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53589694 drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x565e8d14 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x576761dd drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5961d71e drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5aa6da1a drm_bridge_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b3c3235 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ba81958 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ce95ad0 drm_crtc_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d7318dc drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5dfe5b0a drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ff56ebb drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6090be61 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x623008e4 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x629c05e1 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6444db0d drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66803841 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6900d335 drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cc3c29e drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cee2e42 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cfbb075 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71025f19 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71a31c0f drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7230a4ac drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x741258ee drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x755b4c4d drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76cfeb6a drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77cae0a6 drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x793ced89 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79ce4d9a drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4e7297 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bc81c55 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7cc6ec05 drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7db4e5a8 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x812bfeb2 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x812c18e6 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81ba930c drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81e773e4 drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8243026a drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84bf91bf drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86352562 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x863aaabd drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89578546 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c3404e9 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dbaa8b5 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de13715 drm_format_vert_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e3e176d drm_framebuffer_reference +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7df3a7 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9237c069 drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0x931ec037 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x937c0f20 drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94b6873c drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94c2f937 drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x97b7b5a6 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x982c393b drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x984e4187 drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98855c5e drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98cfa16a drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9946571f drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9972db48 drm_rect_calc_vscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x99954c77 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b23ccc4 drm_prime_sg_to_page_addr_arrays +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c53840e drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d70fc2a drm_rnodes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9eccfe56 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9fc9046b drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9fca6953 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1f4e9e6 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa28078b2 drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa388e264 drm_dev_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3a02e8c drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4888f6f drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5dbd572 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa642c9a9 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6c80094 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9209408 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa96acfcb drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9a0921a drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf511154 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafb0cb6f drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb15d49df drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2527552 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3aa34c2 drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb53d3593 drm_framebuffer_unreference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5540008 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb572a9f0 drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb591ac68 drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb78da3f6 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8970054 drm_prime_destroy_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95beb55 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9e9b69c drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe001c53 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc07dff63 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4000f9f drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7f7cc11 drm_vma_offset_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc956242d drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9778cac drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca45efbc drm_format_horz_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc372e87 drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xccbfecbe drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd1d1eaf drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd3a7680 drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd486223 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce896fed drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce9ed375 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcec158f0 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd00561c9 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd00616fd drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2335101 drm_fb_get_bpp_depth +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2434efc drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd59b8ee3 drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd66c4e31 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7d5f463 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8c8b4c8 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd2ec57f drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde2450e1 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf44abcf drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2ef97e4 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe4bd6856 drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe53165d3 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5b7e431 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5d04faa drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f46e6e drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7978722 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8c786a3 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9eed3ad drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea397fbb drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea4611f6 drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee65fbce drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef2e9d27 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefdf9b69 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf08d712a drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0e8fa66 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf16a6988 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf219f21d drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf272f2c9 drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf298fdd4 drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2ab3fd0 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3d2e970 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3f2e582 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf446a0e2 drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4e266ae drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf51b2f11 drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6d3a423 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7d6261d drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf972c4e5 drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf99c4097 drm_pcie_get_speed_cap_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9eef2bb drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfaa45e3f drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb497216 drm_mm_insert_node_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc4a9810 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd063935 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd1e9bb4 drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe4a68c7 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc6c87a drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x01f4c3a0 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x076aa6e8 drm_has_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x098e47d2 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f96ec70 drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x163251c8 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1a4293f1 drm_dp_aux_register_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2319cae3 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x26bae301 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2e7b07a4 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34871adf drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x36c1ba92 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4235b347 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4a1eb05f drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x50914380 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5216dd34 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x546e5dc4 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5e0cfd6c drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5e80c1cf drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x607325cd i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6705dd26 drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6bcd0e2b drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7046c046 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x70632e84 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x711a004a drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7c39b896 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8339d6f8 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x83df00d4 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84211542 drm_dp_link_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84e924ba drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8d6d68ee drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8f2bf8f8 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8fd9789c drm_dp_link_power_up +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x91fa4135 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x969b4645 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9b8df63e drm_dp_aux_unregister_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9ceb65f1 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa3c26d9f drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa706e64b drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa77858bb drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8d6809d drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb50f75f2 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbc9b5de8 drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc01a772e drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc1ef8518 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcc65814d drm_pick_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdaba4ce9 drm_dp_link_configure +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdc794558 drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdd37deb2 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe6bcea82 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xea77bc75 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x326bba21 drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0xef221ba4 drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0xf9f91dc2 drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x032e3ea6 ttm_bo_del_sub_from_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0951e474 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x09fef90e ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0f3db350 ttm_mem_io_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x11111e22 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x19ab0d10 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x37af2a7e ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x39ac394d ttm_bo_dma_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3a469c1a ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3dfb1c8d ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44dc2746 ttm_bo_add_to_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x485a5bc0 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4c2c8f00 ttm_pool_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4e8dd264 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4f0b71d8 ttm_agp_tt_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x556a9bbf ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x564e1aee ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5a7669fa ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5a8fdfea ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6052860c ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6158917b ttm_pool_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x70965823 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d55da85 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x82b193bc ttm_mem_io_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x837529b2 ttm_mem_io_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x84a13931 ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8671d368 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x880a15ad ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x886cf055 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x89a443de ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d14adbf ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8dcafecf ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x94894449 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9ebd823a ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2a129fd ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa5e5ed18 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa73de2a9 ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa8f35f0a ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa9a74fa0 ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xab5bcbee ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac620e90 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xacfacd6f ttm_agp_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xae875679 ttm_bo_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb2e524a5 ttm_dma_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb5a19876 ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb83c6470 ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb9b91e87 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc5766c44 ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc5993b5b ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc5f0c2da ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc6e9d509 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce6e43a8 ttm_base_object_lookup_for_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd1467ab3 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd24ef8df ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd5b06192 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd69e93fe ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd745e178 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7f51742 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd8896dc3 ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd8edb115 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd9471b9e ttm_agp_tt_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd9597b10 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdb741001 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xde11b3db ttm_prime_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdfc1dbbc ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe1c66d42 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe3b29c68 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe55dcf2c ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe998d1d1 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf5f12f4d ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf768b91e ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf76e8b46 ttm_mem_io_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfaf1450e ttm_dma_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x537c701f i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x82d10b2c i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xf59bd87e amd756_smbus +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x275e2ae7 st_accel_common_probe +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x7a9fb939 st_accel_common_remove +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x51ae5938 hid_sensor_write_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x57d1c081 hid_sensor_read_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x57e4a59c hid_sensor_write_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xa3723165 hid_sensor_parse_common_attributes +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xe450b564 hid_sensor_read_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x0640b1c4 hid_sensor_setup_trigger +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0xd9999db8 hid_sensor_remove_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x011289d7 st_sensors_set_dataready_irq +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x06cb98e4 st_sensors_check_device_support +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x074d7047 st_sensors_trigger_handler +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x144365c8 st_sensors_set_odr +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x1a583792 st_sensors_allocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x360caa24 st_sensors_get_buffer_element +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x3c9da2f1 st_sensors_set_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x64371a08 st_sensors_init_sensor +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x8f54194d st_sensors_read_info_raw +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x9df0fc71 st_sensors_sysfs_set_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xaf517334 st_sensors_sysfs_sampling_frequency_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xb3e59bb3 st_sensors_set_fullscale_by_gain +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xb9a08676 st_sensors_sysfs_scale_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xc810185a st_sensors_set_axis_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xdcce7d83 st_sensors_deallocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xe3d552cc st_sensors_sysfs_get_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0x92030b8f st_sensors_i2c_configure +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0x416addef st_sensors_spi_configure +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x62f38684 st_gyro_common_remove +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x8de061ff st_gyro_common_probe +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x1cb27e5e adis_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x6cac1b1e adis_enable_irq +EXPORT_SYMBOL drivers/iio/industrialio 0x0121a28a iio_buffer_store_enable +EXPORT_SYMBOL drivers/iio/industrialio 0x0cbeacb6 iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0x17d965da iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0x1e473aed iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x46bc35a1 iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/iio/industrialio 0x522b34f5 iio_buffer_write_length +EXPORT_SYMBOL drivers/iio/industrialio 0x5592ebb2 iio_buffer_show_enable +EXPORT_SYMBOL drivers/iio/industrialio 0x61845370 iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0x64b86328 iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0x79c9d1a1 iio_buffer_read_length +EXPORT_SYMBOL drivers/iio/industrialio 0x837d8561 iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0x9011efea iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x923ea140 iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x9ec461cb iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0xa50c4e39 iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0xce8be090 iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0xd5b8f647 iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0xdb055fda iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xe6dcba3c iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/iio/industrialio 0xed3d9764 iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0xf18f30d0 iio_buffer_register +EXPORT_SYMBOL drivers/iio/industrialio 0xf68b8e45 iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xf7d81524 iio_buffer_unregister +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x3a5e7e2f iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x61d7f8c4 iio_triggered_buffer_setup +EXPORT_SYMBOL drivers/iio/kfifo_buf 0x2cf038c8 iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/kfifo_buf 0xe89416dd iio_kfifo_free +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x2927ecc5 st_magn_common_probe +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0xea96975a st_magn_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x8b13c9a0 st_press_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x91a8d432 st_press_common_probe +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x049ace30 rdma_addr_find_smac_by_sgid +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x04b8b6d7 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1c3c0ad3 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1ea5767b rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x273f4cca rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x32a8402c rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x446fd7c9 rdma_addr_find_dmac_by_grh +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x59252c9d rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xaa4b25d1 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x16683230 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1da53e90 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2473861c ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x25a66662 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x46bb4c0a ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x70de5ac6 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa7d40b1f ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xaf022201 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb3656943 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb9122465 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbab6a9fb ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc1054716 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc4fb5303 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd281d187 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdc42e5b3 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xec3bfcc1 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf428cb01 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0076fe2d ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a591b16 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a7e67e9 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0d34dcd4 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0ef3fb27 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x179d97c8 ib_destroy_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17be7541 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x186768b6 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x19dd7da5 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e8c0572 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22f3cf93 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x24502734 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2a87651d ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c2fe83e ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2d4a6f27 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3092920d ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x327cf5ae ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3322ceec ib_resolve_eth_l2_attrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x36ab684b ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x37216c40 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3d311a0e ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x492565cd ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4bff9adf ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4ec9b9ba ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4edcdba3 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x509e80b4 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53042ca1 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5670e275 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x572332ac ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5e5f2a70 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x65451d2e ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6d879c04 ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e030e26 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6fad37ee ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x701a2573 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x72fcf6be ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x735b24dd ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7614a520 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7de13ad5 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x860e8637 ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x89898730 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8ba16158 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e7761e6 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f326e5e ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x925e8f21 ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x94fe60b4 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x950f8932 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x95b425f7 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ed3a17 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d65ba34 rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa0b80320 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa432baf6 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa9259355 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac217df9 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xadd9ed17 ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xafafe653 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb44bb744 ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbade14c5 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbaf9f822 ib_create_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbf75a846 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbfb79439 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc1442123 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc1a087d2 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc1d0905f ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc23cfdef ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc6470ec9 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcab7b24f ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcaf497de ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd05c262c ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd2a6f910 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd4364205 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd5ff892a ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd656e542 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdfe2f9ef ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe5ef48a4 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea7e881f ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xed6968c7 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xefc6d190 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf3533ac1 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa5b5b7d ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0e85c287 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x418f3014 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4cfe2c33 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x58e41061 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6daf4e2b ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa41bf66a ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa5453e3d ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xbe9a6740 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc5469805 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xcfe65e1e ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xdd4dd1df ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe227ab65 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x091794b9 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x22f07253 ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x25d76a2b ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x45f7bda7 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5328d7a6 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x7a6782c5 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8e83d2df ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9a1cd50d ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa108d183 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xccf961e0 ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xddc330e7 ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x2569d757 ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x52a6ce77 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7971c00e ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe350f2aa ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x28d6e3a1 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x61f69d44 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8385b0df iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x92554a10 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xac41f3fd iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xad90c1eb iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xbbee3dbd iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xce595cac iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x03f8fdfb rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0b26f10a rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0eb639b7 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x12cda8e6 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1e4ae721 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2ed22c96 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4777bfa0 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x56578072 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x624e610a rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6e21747e rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x726b0748 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8d74784b rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9d52740a rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa1b2c829 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xaa708126 rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc3defb1c rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdcd4be86 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xde5024b4 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xed27051c rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xee31b5e1 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfded3f78 rdma_destroy_id +EXPORT_SYMBOL drivers/input/gameport/gameport 0x22c2b5ba gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x5c27d99b gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x75e8e42a gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xab385cee gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xba08b8a3 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xcecaaa69 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xee54e9d1 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf50fc321 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf68aa8d4 __gameport_register_port +EXPORT_SYMBOL drivers/input/input-polldev 0x20de75fe input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x6a3ac4d1 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x6e0f5813 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x9a8a5d24 input_free_polled_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0xe0f6d7b7 matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x7d2fb377 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xa3710d77 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xc2730b56 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xee439774 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x3635d21a cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/sparse-keymap 0x3af5a96f sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x3deebdd1 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0x491479a5 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x516cf40f sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7c9c226a sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe501b7ac sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x06da9ac4 ad7879_pm_ops +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x68509763 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x0c28161e capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x512181b6 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5469187a capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6b2c36e8 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7292ab34 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x72a25a72 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x74fefd59 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7ff465a6 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa9d36a64 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb740cbe3 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd3b8496d capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf6ba2bc8 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfd552f7a capi_message2str +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x075b87fe b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1334cd9b b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x178ffec0 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x31c89676 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4826a2ff b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4bf2e87e b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6c301719 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x7673e575 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8dde8767 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9b7297fc avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xbd8f3207 b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdf50cb84 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe86b0196 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf39f93b7 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf8e850ca b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x48d68002 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x52fc8f24 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x5f453ae2 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x73edb414 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x76d9f228 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x7cf3c62c b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8038be8e b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xb54ed67c b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc6fa20f1 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x7ab59853 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x26d5922d mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x5f44e530 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x7289ac11 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x9084bdf3 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x3ebceaa2 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x536caab8 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xaa5f486e hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x5d457b8b isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x66be99cb isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x878408ba isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xa151bdf6 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xae004003 isacsx_setup +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x925f1f69 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x99d31113 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xcee87e3c isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x08776ec0 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0ac50ca3 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x29cd074f recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x311f2365 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x31f821ba queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x328830c7 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4495ff08 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x48448043 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x578a86d9 bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5e2b4b80 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x64026e27 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x721fb5a2 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x795eee7f mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a4e99fb mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8c53d2d0 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa04485cc mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb5dbc48d create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xba723c32 mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc39783af mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc89f75e2 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe06eefc5 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe79025ca dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf39e9599 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfdd7e949 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/bcache/bcache 0x1ad7a09a closure_sync +EXPORT_SYMBOL drivers/md/bcache/bcache 0x356011ae __closure_lock +EXPORT_SYMBOL drivers/md/bcache/bcache 0x741e689a closure_sub +EXPORT_SYMBOL drivers/md/bcache/bcache 0xc4bfc84f closure_wait +EXPORT_SYMBOL drivers/md/bcache/bcache 0xcdbc01ff closure_trylock +EXPORT_SYMBOL drivers/md/bcache/bcache 0xd1c5f8c5 closure_put +EXPORT_SYMBOL drivers/md/bcache/bcache 0xe3c17af1 __closure_wake_up +EXPORT_SYMBOL drivers/md/dm-log 0x158cb0ca dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0xafb3523d dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0xd401f9c6 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0xffff7da2 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x25e79c68 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x4a9cb7e6 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0xca4bcefd dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0xe0d754e4 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0xf302e6fe dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xf47d7be0 dm_snap_cow +EXPORT_SYMBOL drivers/md/raid456 0x8a09d7fa raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x0486f521 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x18deff8c flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x28653d95 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x3ba94163 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x5e56d082 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x5f0790e8 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x782e3ea7 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7a69704c flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7c0ea7c9 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x9350007f flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x93d4cd23 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xa44b4372 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xee8b2ba2 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x36e4e305 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x5026377e btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/common/cx2341x 0x116fbbb4 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0x3db8be82 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7d2d024b cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0x8f6bf77d cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0xfd977e88 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0xe6f59f7e cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/tveeprom 0xa0dcc96e tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0xeee426a5 tveeprom_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0034a4c9 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0b0ecb9b dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0f42ef2b dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x17523ce7 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1c5d9767 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1e8fd8bb dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x24b1b960 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x27e87550 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2b6c4804 dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x32706276 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x403c645f dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4180532b dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5c0ea535 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6076284c dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x651bd427 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x70af1058 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x78db694b dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7b2e1c60 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7bde4b68 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7f4f9b54 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x85a5e7d3 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8f45bce1 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8fbb4795 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x975944f8 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9bbaff00 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa3178da2 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa4747e6d dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xada8cb88 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb4600bfc dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb70c9f2d dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb845c086 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcc75b8c3 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcdf1e4e9 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcf589e8c dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd68a099e timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd8f7184c dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdfcb15bf dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf28e7431 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xfdd07db2 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-frontends/a8293 0xf7f1c79f a8293_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9013 0x85739558 af9013_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9033 0x106b8cda af9033_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x781d5703 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x0d9cbfb1 au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x1574227a au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x1689d3fb au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x32b6ff2f au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x348c205a au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x3d41502e au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x3d946c56 au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x3dcd4b26 au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xfbf9661f au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0xab492b8f au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0x361f05e2 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0x111b72ae cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0x533ff2d2 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0x5563cf40 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x0fd36318 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xd1449d71 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x5e5bfa2b cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x0903b0c1 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xb9233635 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0x6b5a7dda cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x413c0a91 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x465d8efb dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xa3d3b3e4 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xd2159e1f dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xeee77f2c dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x23032947 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x364af02c dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x399547c2 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x4b8be9fd dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x501aeaa8 dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x5e263f82 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x73e7668d dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x80a25f85 dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x8613231b dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x8f5eb4a7 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x9ab000e1 dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xa92c8a1f dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xb0e32d01 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xc26290d3 dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xebaacbcb dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0x59a4f6b1 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x132ee2a7 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x27ec9569 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x7a218371 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x84560f2c dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x97f52b0a dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xaa8d855b dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x60fc2da6 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xc6554134 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xd52f06b2 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xee3e9f1f dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x1b8a8949 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x1bf4f360 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x1e20b105 dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x21a871a1 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x44a598e8 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x47c55597 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x4828527f dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x54a1a719 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x589fb176 dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x81b0844e dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x81b97343 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x846d9e6f dib7000p_get_agc_values +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xaeec6c7c dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xbcd67a1c dib7000p_set_agc1_min +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xc17ad9e0 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xcba15503 dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x0d1d1a12 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x1ed18385 dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x23a3008e dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x2f3b6998 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x30d39cc3 dib8090p_get_dc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x33c7dda2 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x3ba4acfa dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x6ff689a6 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x7177446c dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x7feacd89 dib8096p_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x9bf16011 dib8000_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb9204839 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xba5714ea dib8096p_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xc7a19a7d dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xd206c016 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xdecadfda dib8000_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xe8c3447e dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xf7866d29 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xf839b32f dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x5064d485 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x8651e798 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x9176ab65 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xb44c70c5 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xb6563c9c dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x3e4d0f34 drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x42b73217 drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x08b56235 drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0x24c26c71 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0x91058a28 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0xc8f4fc5d ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x97eaeab4 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0xc2e04641 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x43eb7e16 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/it913x-fe 0x2baac2ae it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0x40eec36f itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0xd6c594d1 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x7e5ca470 l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0x094a205f lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0x6151e30c lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x13502cc2 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x0a6b05ef lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x22b46961 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xbc359e87 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x609c162d lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0x81429794 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0xf63da116 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0xdc162ad2 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x5b427867 mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x39615cd8 mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0x5f3ea5f2 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x857ff74f nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0xde444915 or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0xf326645a or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x083f53aa rtl2830_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0xce103918 rtl2830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2832 0xaa44f1bc rtl2832_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x87ee5528 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0x94bdab59 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x2a953fb7 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x86c60909 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x3e4701f4 s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x3655603c si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp8870 0x8356af7e sp8870_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x1bca56a5 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0xcd683ba3 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0xad41bbe5 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0x2c18ec06 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0xc4550ac9 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0xf717a54e stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0xd3018bed stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x4b3bfb2c stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x93f8db11 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0xf9a2afdd stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x822f8417 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0xd04413f5 stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0x0c05bbf0 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0x30ca8191 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0x9e070fc7 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0x205db0e3 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x85833b82 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x66195f8d tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0xb675cc99 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10071 0xf5e5a3dc tda10071_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0xcef406b1 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0x07869ce4 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0x10014593 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0xa891fc8d tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0x500fdf5e tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0xc4fb7d91 ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0x375030a8 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x6f3549fb ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0xf6f14e95 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0x7881c87e zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0x7726cf78 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0xb1797831 zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x1a87a841 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x1b018e9a flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x91d012d0 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x97a79024 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x9cb555b1 flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xe9023bd6 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xfd8789de flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x4f6e8759 bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x7df2f99a bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x8097b3fc bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x9b732335 bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x4d646ab2 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x81667d53 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xda258052 bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x090d0672 write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x0b61133b dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x0cef858d read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x52824556 dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x5d82d1c8 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x8e400220 rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xb1fb84e5 dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xcb86ccb2 dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe90e7c6b dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0x7da0c02d dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x1bc4fc6a cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x4f9585f7 cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x98a4a178 cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xa4ab79f9 cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xe87b0d07 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x062f06ce altera_pid_feed_control +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x595f4fd9 altera_hw_filt_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x84eca7fa altera_ci_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x13bb7904 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x263feab6 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x72d32a9e cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xc5d38741 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xe9c7efc3 cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xeb6c4b70 cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xecb4acd9 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x273cd662 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0xf2de2a0a vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x2d2d0396 cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x466e47d6 cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x4ebda0fc cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xa1975f7b cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x1ceb1c78 cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x46b7d3f4 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x6788aa9c cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x8b4c5fee cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xae1944a3 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xcb9e0bce cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x1b0f2605 cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x23a697de cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x279780cb cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x28cd3f7a cx88_free_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2fb73be8 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x3438dd5d cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x362331c5 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4216fc84 cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6c0ba938 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x828d4978 cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x8d815459 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xad8bb862 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xadb4d8e7 cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xb5bb4fab cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xb81bc68c cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc6797b8a cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xd46ff07f cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xd6772f91 cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xe0124af6 cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xe9937744 cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xf1fc3956 cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xf24b9186 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xfa4600bc cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x05cb7c1f ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x1693f5b0 ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x1f6f27ab ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x3cba68f3 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x4b104321 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x501a98e9 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x57d6439e ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6572dca5 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6c487aba ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x79b4b57d ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xa518f24c ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xa6061d9d ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xc1e3dbf8 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xcb70a291 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xcdcdcdf1 ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xe4447d3f ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xfa048db5 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x0bb0a3b3 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1686d4c2 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x3d7cfb72 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x6413ca5c saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x72f77e8a saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x73039031 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x8bec5066 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x90e0a57b saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x9684500e saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xb18f87fe saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xbbf6da54 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xdc7f0fad saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xe6279393 saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0x51fa4719 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x36a433e4 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x6b940d40 soc_camera_unlock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x775cfdd8 soc_camera_lock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x94c56f37 soc_camera_power_off +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x975d64c7 soc_camera_power_init +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xbda14785 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xdd22b5cb soc_camera_host_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xf5ba75a9 soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xfb9cd453 soc_camera_power_on +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x25c52d97 soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x2863728e soc_mbus_image_size +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x5f3e3558 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xa9546115 soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xfe2c3a07 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x1b7157b9 soc_camera_calc_client_output +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x2ab671dc soc_camera_client_g_rect +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x40616546 soc_camera_client_scale +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x807854ab soc_camera_client_s_crop +EXPORT_SYMBOL drivers/media/radio/tea575x 0x57f2fb2b snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x651e5928 snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x90c43ab3 snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0x9c9efa1d snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x0db267fe lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x26636449 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x3c4f0ed2 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x743b4bef lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x7ffe4652 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xc1571f4a lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xfab86424 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xfeb698a2 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/rc-core 0x97d53287 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0xae23a670 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/tuners/e4000 0x97b5ab1b e4000_attach +EXPORT_SYMBOL drivers/media/tuners/fc0011 0xedb8701a fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x0d095d65 fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x35d15f23 fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x9ae2c7d0 fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xbe0b90b6 fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc2580 0x446efe8e fc2580_attach +EXPORT_SYMBOL drivers/media/tuners/max2165 0xffb245eb max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x24d8e7a2 mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0x1064b83f mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0x3b27d07b mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x3039841c mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x4c79942a mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0xddd6a78a qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18212 0x7a4813b4 tda18212_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0xaa1b9aec tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tua9001 0x6380f63e tua9001_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0x71c8a612 xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/tuner_it913x 0x5810c3de it913x_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x6ebaecc7 xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0x039f2dab xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x92c59c26 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0xf189ccda cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x017604b0 dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x06645a9b dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x075b0927 dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x0dd865c3 dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x5a53a3c6 dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x81a16129 dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x912ca70d dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xcaab0b8b dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xcdb36519 dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x0d433fce dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x32f83e9d dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xa645288c usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xbefb3a90 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xc2c323a2 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xe1df5909 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xe8ffde81 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x80629661 af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x1359301d dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x1d87f223 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x33d58f48 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x3bce8d8d dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5b120cac dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x6ece510e dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x8ed62827 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd113f18f dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd5078721 dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xe934ec05 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xfdd95977 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x43f69d72 em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x6a6c3f40 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x5e9bdc2c gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x6cdf0077 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x78a2191c gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xaf5eb634 gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xb9672673 gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xbc58a2a5 gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xc0e79e47 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xc637100a gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x74ab217a tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x95a8381b tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xb0c7f458 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0xc3993ae6 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0xe85e3b2c ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x4adaf0f3 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x53c9394f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x5f96a661 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0xabe27502 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x3100a95e v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xc5bad984 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xfaf37583 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x3089ad78 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x37a50fb4 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xb847702b videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xdad6aaea videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xe262ca4b videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xe6ef3694 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf2-core 0xf7fdcb18 vb2_querybuf +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0596e83a v4l2_clk_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0ac18c23 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1056f042 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x11e3ac92 v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x140e371b v4l2_of_get_remote_port_parent +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x190ebef5 video_usercopy +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1ac8f1ac v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1b00e170 v4l2_clk_unregister_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1ce56d33 v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2446e582 __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2541d4e9 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2bb1eb5f v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x30e4d444 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x36847d11 v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3728b938 v4l2_clk_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3db7f213 v4l2_of_get_remote_port +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3ede09a3 v4l2_async_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x41a35d3e v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4414496e v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x48b98665 v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4a838c4c video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4c93c6c4 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4e2bc018 v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4f60b08c v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5b34dc03 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5d75e5bc v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x61d0dd5b v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6ee842cf v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x72ca35d3 v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x767641e2 v4l2_clk_get +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7bd0d31a video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7be33973 video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7f923f2a v4l2_of_parse_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x825a7fff v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x82f48691 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x836b7eb2 v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x83a5f3b2 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x88907641 __v4l2_clk_register_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x93ca81cc v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x997b95e8 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9c06b4d2 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9d6b4897 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9eedf50d v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa3524d45 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa7897a03 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xac94a0ab v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xaea65816 v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb1dd2fbb v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb2346aa0 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb90cbedf v4l2_of_get_next_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbac4a225 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc12cf8f8 v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc4cc5a49 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc5286af3 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc58a8beb video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc7b04da4 video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc82a53c5 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc91442a2 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc9f40aab v4l2_clk_put +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xccf9bb0a video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd01f2d0f v4l2_clk_get_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd0bc4190 v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd4ea164c v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdd401909 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdf1947e9 v4l2_clk_disable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe1945a35 v4l2_async_notifier_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6fce6f2 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xeb6893ed v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xec54230f v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xedcfe34a v4l2_clk_set_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf81e5b88 v4l2_clk_enable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf9d9c3eb v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfbff03ac v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfd5aa8e4 v4l2_ctrl_notify +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4a542b27 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5f9703ef memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x745994c6 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x79483652 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7f1dad18 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x9bdbec7c memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb256ee47 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xbee85e5c memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc7d6b0ae memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd4b93031 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd76626db memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd95223a4 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xdc07e67e memstick_init_req +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0630120a mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x06e60fa8 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0a418c61 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0ad1ec6b mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x11a0b767 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x18a635fa mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2566d742 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x48cf53f3 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x564515f3 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5b4242d0 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x69c07800 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x837a5365 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x94307ee4 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9d941535 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa3aba14f mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa8d00c7f mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb119a9e4 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbdb8df24 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbfe21d43 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcebe32a9 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcfcdbd41 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd3209404 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd77da156 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd8683142 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdad00f1b mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdf0d8443 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe6b49c09 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xed683cd5 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf31d4fd0 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x05a89c12 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1d509283 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x248aa612 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2733df29 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2b0bc9dc mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x374c7dde mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3b0f366d mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x427165d6 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4a687854 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4d558a6e mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5a2127b5 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6702f990 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6a0132f4 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x842f0959 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x92443663 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9c4520dd mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa845a56b mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb4ea83df mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbe68320e mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbe7011be mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc5a00dac mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcac70a7a mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcc4451d4 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd2e18c63 mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd6dc6608 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe1451193 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xee27d399 mptscsih_event_process +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x09ea0487 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0a314801 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0c58cf9b i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x14f7ac0c i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x180f31e2 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x24381146 i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x34a6996b i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x44ed4c91 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x45bc67ec i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4e5b1c36 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x70cef4cd i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x812ee631 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x88d6d015 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x920aa1ba i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9bfef52c i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9f5dfbb8 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xae256d64 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb9b77f60 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbe6cf4a5 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xde511f99 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xebded804 i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf1126b40 i2o_driver_register +EXPORT_SYMBOL drivers/mfd/cros_ec 0x11cc16b6 cros_ec_register +EXPORT_SYMBOL drivers/mfd/cros_ec 0x3a785ffa cros_ec_prepare_tx +EXPORT_SYMBOL drivers/mfd/cros_ec 0xa12d97fa cros_ec_remove +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x01367925 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x0c7a47b0 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0e1407ca mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x4283de6f mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x569fec42 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x6c253913 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x6d574fbd mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xae3c5c51 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb4b6d4ab mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xbbe65286 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc43869cd mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xcd009a82 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xcd700a60 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xf068663b mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xfd3e3caf mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/tps6105x 0x07af88e1 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x34241cdc tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0xa26210de tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x2e5d2795 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x588b2ff4 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x49163704 altera_init +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x6c524f00 ssc_free +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x9a129685 ssc_request +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x0e9755b9 pwm_channel_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5a8b82f9 pwm_channel_handler +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5d5c2951 pwm_clk_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x6a5e1f70 pwm_channel_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x73330c97 pwm_clk_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0xeb7f2c6f __pwm_channel_onoff +EXPORT_SYMBOL drivers/misc/c2port/core 0x39d47c21 c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0xb8d21f3a c2port_device_unregister +EXPORT_SYMBOL drivers/misc/ioc4 0x398bf4f2 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xd24e8cb4 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x03ebf818 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x29dfd50f tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x3ec5ae25 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x4cb4f944 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x5095dad8 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x680784b1 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x6c59db98 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x71c2cb0e tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x81dd7d56 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xad128bce tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xbd7c0d98 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xe16c933e tifm_free_device +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x6a92e461 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x75153138 mmc_spi_put_pdata +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x8182df25 mmc_spi_get_pdata +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x6c21a145 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd6284417 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xf4b539e5 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x3d6cd879 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x4d5da66d do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x53f6e27c map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x7cfd8109 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x1dbc4010 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x6cee9016 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x192e6238 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x80c148dc mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtd 0xe0452ff4 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/denali 0x20d32c8d denali_init +EXPORT_SYMBOL drivers/mtd/nand/denali 0x8b4a88ad denali_remove +EXPORT_SYMBOL drivers/mtd/nand/nand 0x091c3f57 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x73b216c4 nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0x989fd373 nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0xd6c46c92 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xf3d4e89e nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0xfd15c8aa nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x0548e9ed nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xbb19027d nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xf5681e1f nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x33fe0a9e nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xec6e8bee nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x57a31e57 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x265bd232 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x8f67ad52 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x9b5a026a onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xe33ea3c6 onenand_scan_bbt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x043a2a35 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1c3f9432 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x495cbd3e arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5371220d arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5a80e6ed arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7555ff9f arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc49d48b6 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe6fc1826 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xec3105ff arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecc931de arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x8187382b com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xed50c885 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xfc81e232 com20020_check +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x4a87c0ff ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x528cc2ba NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7c2fb0f3 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x94999e41 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x9ad40fb1 ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa1ca0d19 ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xd5f0b1b9 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xdd5ff313 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xe198f519 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xe5135a84 ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0xb1387c12 cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x42efb82e t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x59a322e5 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6a167e2d cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x76c5953d cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x82376e9a dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x845a958e cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x8b71ae38 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x8cea3a38 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x94630033 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x97a060e4 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9c280eaf cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa2496e26 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xafca54cb t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb71de875 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb75646e1 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd1b14fd1 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0deb80e6 cxgb4_enable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x113a4094 cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2f358e54 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x434b9989 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x44159197 cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x45add574 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x475092d4 cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x484b4274 cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4c2e3573 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x57106102 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x692a9789 cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6e2f6ec6 cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6f3456b6 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x72f53dc3 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x83219132 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xae914080 cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb8401eaa cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbe66d62a cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc4460912 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc4f4c775 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc5650044 cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd2cff10c cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd85b06be cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdb22f074 cxgb4_disable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdc93cc90 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xeaad705e cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xed60eec4 cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf55dff29 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x0c31758c enic_api_devcmd_proxy_by_index +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x0e712340 vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x49fdd661 vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x4f650da7 vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x9196d804 vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xacf6edea vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x0f641e7e be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x932b8195 be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xbab62e22 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/freescale/gianfar_driver 0x79f28897 gfar_phc_index +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x276962d1 mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3ef900e5 mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x42898c01 mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5295930c mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x53ac7290 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5fbd2daa mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x61d791d3 mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6234f01d mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x64b8c94d mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6bb4ea48 mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8473c6a8 mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8c09f533 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8fd69231 mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9925ef2c mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa2af2c9c mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa335307e mlx4_set_stats_bitmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa404153f mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xabfe0f87 mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbc002719 mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc08e6188 set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd225786a mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd5793ac4 mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd70bc910 mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xda842521 mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe26379e4 mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf091ab84 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00dcffeb mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1c0e9109 mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x220d74a3 mlx5_core_create_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x34102e9a mlx5_core_arm_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x40392e34 mlx5_cmd_free_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x49181b85 mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x59f9ec58 mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x61c69a96 mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6f334fa7 mlx5_cmd_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x72603a14 mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x771ac489 mlx5_core_query_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8489ba46 mlx5_cmd_alloc_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x861473fe mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x904fb2d3 mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x90da84ae mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9e07b445 mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbe7a8264 mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc0fe9882 mlx5_core_dump_fill_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcc96880b mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xce1ad4ad mlx5_core_get_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd0a622a3 mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd4c1cc51 mlx5_cmd_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdcdb42a1 mlx5_core_destroy_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe33d0780 mlx5_cmd_comp_handler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xee7cc3a8 mlx5_dev_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf3ab0090 mlx5_dev_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf44f662d mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x06711535 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x756805cb hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa60e36ba hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa8a250bb hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xf68a93c0 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x460ac8bc sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x59dcf60b sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5c1a7e4c sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8bfc5b7e irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9287031b sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9dab17f9 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb7d3d457 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd5d310fb sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xda6f873a sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe65b3793 sirdev_write_complete +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mdio 0xddc98749 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mii 0x460625e6 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x518acd04 mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x7602bb99 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x89933ef8 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0xa38a2717 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0xa4f28942 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xa71cc6cb mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xd3170ae5 mii_check_link +EXPORT_SYMBOL drivers/net/ppp/pppox 0x5768175a pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xcd4ea4cd register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xfbd59aab pppox_unbind_sock +EXPORT_SYMBOL drivers/net/sungem_phy 0xf3f656cc sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x04a1e116 team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0x96a02bc7 team_mode_register +EXPORT_SYMBOL drivers/net/team/team 0xac2ea4ef team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0xb484c8d1 team_option_inst_set_change +EXPORT_SYMBOL drivers/net/team/team 0xe0c5054d team_options_unregister +EXPORT_SYMBOL drivers/net/team/team 0xf14e3f21 team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0xf30d0870 team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0xfd5b0499 team_options_register +EXPORT_SYMBOL drivers/net/usb/usbnet 0x0b23a257 usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0x1977bac1 usbnet_link_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0x8db5d2cd usbnet_manage_power +EXPORT_SYMBOL drivers/net/wan/hdlc 0x07cf93fe hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x176b1564 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1d9e6487 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x267938eb hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x279e3893 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x3358cefc hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x34b7cbfc unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x6597b99c alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x81145f6e detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x936395ee unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa7ca5537 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x2c901baa i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x47fdeae9 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xb28b9919 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xf244129e stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x04e03f8b ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x056ae17e ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x237e07d1 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x27416f59 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x3e9c99d1 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x53358ce3 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x5f3e071b dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7ae44450 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb975f7a9 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xc7b730f7 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xcb8c6b27 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf532e76c ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x2df12df9 ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x323b303d ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x6e90efd6 ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x761732f8 ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8246be6c ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x895f9dc2 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf096710 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xbd2cf816 ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xe2ee805f ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0199ec46 ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x27cf1694 ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x332a9600 ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x45da69aa ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4c6ddcb4 ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4d64629a ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4e1380ee ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x550cd1aa ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x651b9f1f ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x787bf963 ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xc226023d ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xc4cd4bb7 ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xe55154bf ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xf7b037a8 ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1f4c46dd ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3e4e7063 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x65c7a7aa ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8ae9e2d9 ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x02baa737 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0530d08f ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x057c7018 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0677079f ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09747876 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c440905 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d5be0b4 ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0dfa1f9b ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1247f007 ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15045bdc ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15180a70 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1556b4c8 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1647a504 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17ee33ef ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1812ac71 ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x18cb9574 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x203c2e47 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x214d9533 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2565b2e3 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x25d4bd43 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2cc2744d ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ecdbad1 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2f45ff96 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2f9d0f9a ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x30e8a2e7 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x377babfd ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a82adab ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d05d838 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f3b0b94 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f550e28 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x42256042 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x45a13100 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x45c9f5c5 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x558911ba ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x57aef69c ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x59484f7f ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c052687 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e4cb04a ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5f9af6c0 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5fd34b24 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6021b9c5 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6112c66e ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x69fc7e58 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b384a16 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x70a455d6 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71bc730e ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75e5c624 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x778b8598 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x77d8043e ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x79b16a8a ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f0250ba ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x815a95fe ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x81af0dfc ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x81b64553 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x879121c1 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x88a12747 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x88ad6a9c ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8ab847ae ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9169be2f ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x971b0f14 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9ba054ae ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9eb55dce ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f08f04e ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa1845712 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa2cfa6d2 ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa561c4c6 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa99ed6d2 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4a6acfd ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb75d4448 ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb766113e ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb7ce21f6 ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb92495c5 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbcacab1a ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc09e960e ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0d100bd ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc352b261 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca7d2ad3 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd20eeb5b ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd3ec08b6 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd85a85f1 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd79b78f ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd82d2aa ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe17e26f0 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2b92850 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3e98993 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5795985 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5c7d742 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5ed66bc ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe6b84877 ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe6c38349 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7072ccd ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe9f11b01 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb3cd1d1 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xebd464f1 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeeb0ee5c ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf0f4fd40 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf614c651 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfe114791 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/atmel 0x06b9643a stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x4ab86d0d init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xb214100e atmel_open +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x1dedb865 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x419ac080 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x067d0584 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x160a60f0 brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2dc227f8 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x3c763299 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x41ac57f1 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4b01a3fd brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x54526868 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x6cbd5e00 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x8dbbadf7 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x94c26099 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xa563a527 brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xabf5e431 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xd19bc29c brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xdd46b870 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x031430da hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x08a69d3b hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x187d3acf hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x188332a1 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2200f94b hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x250aa95b hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4783dcb9 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4cc8c0e9 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x563e1405 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x60285ffe hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x74183c9b hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7d0c830d hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8050d9ea hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8ba6ffe7 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa28979ad prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xac05d555 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xac0cc347 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc3870501 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdc79fdde hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe243c8ab hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe2f1d180 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe7a48d44 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe82e2530 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf961ad9f hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfe07acf0 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0292ab6d libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0acf5607 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1a5de7a7 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x27b5298f libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x32457c01 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x39c19ec2 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3b572d99 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3e728863 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4e5e01ad free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x50f62d1d libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x61af7cd8 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x64239fcd libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6d03d98e libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7c20acdd libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x930bc5c3 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbe685442 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc4bc538a libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xcbfa59dd libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xde03f856 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xeb7ec75f libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf8ea0839 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x03e5af68 il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x06e2bf92 il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x092aca16 il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0b6fc2fe il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0e53413d il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x133840fe il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x16d69f65 il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x17fb9b0d il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1b66dece il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1b79dca1 il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1f880e40 il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2667d298 il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2753c3a0 il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x27a1b45f il_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x28ef41a1 il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2a37d748 il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2d03d10b il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x317b9052 il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x32a7069c il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x337d5ef6 il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x34754eb3 il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x351a2177 il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x37b9885b il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3879b0d4 il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x42f510f6 il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4aa39103 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4d174480 il_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x512c895c il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x519cd429 il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x52777014 il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x564c6740 il_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x583aff6c il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x58e1e446 il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x59ca17c8 il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x61003ccc il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6345b3f7 il_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x67790227 il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x682292c9 il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x688f457c il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6a29e4a1 il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6ed437c7 il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x71fe762b il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x73f37a49 il_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7cf29591 il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x80c3e22e il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x826556f8 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x86216d74 il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x868ea4d4 il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x86a7df7d _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x87cc6b9d il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8a222990 il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8a3233be il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8dd082ec il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x905a96ac il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x935663cf il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x93bfef50 il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x98125663 il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9b942942 il_set_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9e71871d il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa12ccd63 il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa12d818e il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa2312638 il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa8767a4a il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xaa722b67 il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xaddff8e7 il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xae27eba4 il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb12c2ac7 il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb168cdca il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb4b1b783 il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb561c3fb il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb5e56d7d il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb7bd33ff il_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbc1dab80 il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbddd727a il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc0c525d1 il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc39cf12c il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc3a10704 il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc692a169 il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcac121c2 il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcb8f26cc il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xce1335d8 il_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd08a98c4 il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd0e9d9e5 il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd5b97dc6 il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd87b99fb il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdfd34794 _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe00c6d21 il_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe435493a il_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe44ed5dc il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe7b4849b il_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe81bfd57 il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe8689d73 il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xeb7555f9 il_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xefa2f50e il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf123ca55 il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf2964841 il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf501278b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf52e7afc il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf659c93a il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfbf7ffda il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfc4fcfdf il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfe99cf2d il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xff9ba2f3 il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x08dd8699 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0c50fa2b __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x1ecc5465 __tracepoint_iwlwifi_err +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x2f7b7e55 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x3b9d00d6 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x675bcb86 __tracepoint_iwlwifi_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x779dd6f5 __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x85c1bb84 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x8de37664 __tracepoint_iwlwifi_dbg +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x954eb7a7 __tracepoint_iwlwifi_crit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x963a6f8a __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xb8f7026f __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xe2dcc8de __tracepoint_iwlwifi_warn +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xf9ec6bdd __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0e4df83c orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x15290fc7 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5c3ff41a orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5dea5bf1 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x83f010e6 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8e675f98 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8ff70050 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9a3b6892 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9f280cf9 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb7888876 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc0207b74 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc20165ea orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xca119b26 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xcd3ef0a1 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xced205c7 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd3ec22ba orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf03cfb34 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/btcoexist/btcoexist 0xe3538602 rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x06240350 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0cccad44 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x17cfd901 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1b108279 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x271eccaf rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2998daa4 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2b8e9f7d _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x353e57dd _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x386a3d79 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3e9b2efc rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x45be12cb rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x50d1a924 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x51715e49 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x58d291ea _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x64e4f45d _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6b0fd504 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6d306158 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6f1e0f39 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x70e40461 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x759eb017 rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x797758e7 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x828105fa _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x86dc2062 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8b8fcea9 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8d41fce3 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8e6c4e93 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x93a82dfd rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9735f8e8 _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9e6664a3 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa6e85305 rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa7f30964 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xac6cfe29 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb2cb52c9 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb7ea9723 _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc4797713 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe4de2a38 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xec012240 rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf1ade837 _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf1cb52df rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf2e5ab76 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfd1e68fa rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0xa59c8b12 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0xcd50a6ed rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x17804d2f rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x35e6eec5 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x6883bdb1 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xfdfc642f rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0b18f498 rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x17153025 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1b145880 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x207fbb70 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2f41e16a rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x379fb63e rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x418c1b5a rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6172d9aa rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79188a02 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7bb417d9 rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x82ff749f rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x99a52c46 rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x9e9ad070 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xac96ead6 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc58d8261 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc79cd29b rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe90b11ae rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf5461bd8 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf7a79781 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf9f69a8e rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfa4b876a rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfcdd5ecf rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x070e603e wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x109cc7cc wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x6e64acde wlcore_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xb1429104 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/nfc/microread/microread 0x7b6c36d3 microread_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0x8396af84 microread_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xdb09a8f3 pn544_hci_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xdf2322ae pn544_hci_probe +EXPORT_SYMBOL drivers/parport/parport 0x0a09d526 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x105c5caa parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x1f231264 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x216d020f parport_read +EXPORT_SYMBOL drivers/parport/parport 0x2e8c7560 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x34c2c51c parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x34f93c24 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x352979cc parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x3d670b5b parport_release +EXPORT_SYMBOL drivers/parport/parport 0x4227a809 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x42858fb6 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x44bfa97a parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x636fe32a parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x6b8c2f75 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x6e79ef30 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x6e7f3804 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x79af6782 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x7c96c760 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x7f629641 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x9e8c538b parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xa345abc5 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xab2e1804 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xadd6ece5 parport_write +EXPORT_SYMBOL drivers/parport/parport 0xb08d6a71 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xb160a878 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xb7f79360 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xcb2bdd45 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xd07aef04 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xdb2215de parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xef5fab64 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport_pc 0x05d3be9b parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x08df4c20 parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0522ac5c pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x15910093 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x22124af9 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x322c20dd pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x60f032a7 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x668e151f pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x67fa1c17 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6cd2e76b pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7ceb3f24 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbaf2495f pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc5970086 __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc59a7fdd pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc7a3457b pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc82c0719 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xce5d3ce2 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd0b4388e pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe9b6ef0d pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf3d19349 pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf65697fb pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x08ced9d8 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x28e48434 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x563c7d26 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x70b8f662 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x747ec9e6 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9dfef379 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc0aff1c8 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdd6ae6fd pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe043ea47 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe7aee5fe pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf45cfea4 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x21fbf1f3 pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xa4c1c17c pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pps/pps_core 0x2d34ac47 pps_event +EXPORT_SYMBOL drivers/pps/pps_core 0xc6ada531 pps_lookup_dev +EXPORT_SYMBOL drivers/pps/pps_core 0xce91085b pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xee5947c2 pps_register_source +EXPORT_SYMBOL drivers/ptp/ptp 0x41f61c09 ptp_clock_index +EXPORT_SYMBOL drivers/ptp/ptp 0x85191a71 ptp_clock_register +EXPORT_SYMBOL drivers/ptp/ptp 0x9f726b43 ptp_clock_unregister +EXPORT_SYMBOL drivers/ptp/ptp 0xa2ceb297 ptp_clock_event +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x106a962f rproc_alloc +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x14deb4fe rproc_add +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x286bc4cf rproc_report_crash +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x2ac5bcd9 rproc_da_to_va +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x36ac970b rproc_shutdown +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x6fb47545 rproc_vq_interrupt +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x86ad5b40 rproc_del +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xda28d990 rproc_boot +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xfb975e9f rproc_put +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1272fb0b fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x23433580 fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x451f8652 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x741a7e4f fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x745835a5 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7db24f88 fcoe_ctlr_destroy_store +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9178757a fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xbb7d4df1 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xcc618b21 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xda46d22d fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe034f0fa fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe73b1642 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0008e9db fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0d7ba90e fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0d8db63b fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x134b2595 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x143e40a3 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1652e359 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x17b4b93b fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1fde2ae1 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2149795b fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2578743b fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x26d17254 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2d7f5ef2 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2e1262a9 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x369ca1e7 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x40d134d6 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x41fca45a fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4717cf99 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x48cc00be fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c5eee93 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x51e51782 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x554f4b7a fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5a37cbca fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5cc75720 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x607f3976 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x626942eb fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x63894e71 fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x67ec4adf fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6a4ceb86 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x824c5a61 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8a586edd fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8dd91890 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x93eac438 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9545dda1 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9b1f81f1 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9bfbbde6 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9d55919e fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9da79acc fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa3aa327a fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc3de1f91 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc4ae1878 fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc50a9b8e fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc753d87e fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc873f08d fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcd6b3ea8 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd2af3713 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe69a933f fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe7c21137 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe815083d fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xef4e0cbb fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf8a1978c fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc471e52 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfd5a9a1c fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x3edf049d sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x4ac8a77e sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xa65714d4 sas_wait_eh +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xbae95dc9 sas_resume_ha +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x9e3996a7 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0601dd8e osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x16e936b9 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2251dc3b osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x23a39f12 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2987f33b osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2ff49fdc osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x33ddd888 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x34176ff4 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x383487ab osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3e3d8c47 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x51ae41ce osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x60009205 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6739ae7a osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6bb93e52 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x79ae4dc0 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x80d3dac6 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x94fea1be osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x982184b1 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9b3e46e2 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa02f2191 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa619a2c3 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xad5cdc62 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xafc3d0a7 osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb189b56b osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb2f22930 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbc15bc2f osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd4112322 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd50c993f osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd76e78e4 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xda0a8588 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xddbf3701 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe37ceb52 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf28439b6 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf5ad20b3 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf6ab7f14 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf6c8b129 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/osd 0x2aced31f osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x3ad9952a osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x40e5b922 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x6e62b7e4 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xb5e8a5da osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xeefb0674 osduld_device_info +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x032d51ae qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x1ebe72a8 qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x678d2322 qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7bd0eb70 qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7f3c7524 qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x99878186 qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xa21604b5 qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xa9746c58 qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xb2809b51 qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xb300b8b7 qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xe023bfcb qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x565eaec4 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x89233ae1 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x8b3c705c qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc657d31b qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xd65b6353 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xea56ebb2 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x451e60e5 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xb26ea9a0 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xea88ee4d raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2bd90996 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4411a7bd fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x69f4e579 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x82b5e3e3 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x83c45dc6 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x85be2450 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x98fdb2aa fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa8a920af fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd0e8aafa fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd2b6d005 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd7264938 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdfe677f1 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf88bafdc scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00710824 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0100dfa9 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x056cdf87 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0cd6342c sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1fe6dcfb sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x24236538 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x37603af8 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x425b1660 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x447db9a3 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x452d2dfc sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x49fe0e00 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4c915be3 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4d586fbe sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4d9bedc6 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4e12447e sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4efdce5b scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x75e0203e sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7ef2e1bc sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8a8204ef sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8c14647a sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa4913020 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb2a4fc51 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb7ea904e sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb99b930a scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbb96e431 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc4e78611 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcedb986f sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xff7aef0d sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x19d0bec9 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x4eb1a8d8 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x6b41b26c spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x753ccd0a spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x9a2b6561 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x22b66e78 srp_rport_get +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x51a65b82 srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x6d00229c srp_rport_put +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x94102777 srp_reconnect_rport +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x23df126b ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x92ed5215 ufshcd_runtime_resume +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0xffecc3ea ufshcd_runtime_idle +EXPORT_SYMBOL drivers/ssb/ssb 0x20f48f0d ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x25690c8b __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x268e458d ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x32d74ca3 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x3e508afb ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x4ac27bb7 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x52153fc9 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x56b10009 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x5ffdc263 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x6701c263 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x70d64aa7 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x818121f5 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x927771fb ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x99953b10 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x9ff5258f ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0xb881ff45 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xbb40e417 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc24cb96c ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd64738ae ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xd835f1a8 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xe6b26bfb ssb_bus_unregister +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0xe5616cd8 fwtty_port_get +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0xefe1b10b fwtty_port_put +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x23ee7a33 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xd762c58a adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x77caa12f ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xe4e5f5ed ade7854_remove +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0264d470 lnet_extract_iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0363b57a lnet_copy_iov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0bce7eef lnet_counters_get +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x11a38548 lnet_net2ni +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1366b7ac LNetSetLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x19670622 LNetNIInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1b191752 lnet_msgtyp2str +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1cc836cb lnet_kiov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1fe16fd5 LNetGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x204b8151 lnet_counters_reset +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x23065424 lnet_finalize +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2aa9953d lnet_cpt_of_nid +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2ac93e90 lnet_connect_console_error +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x33202a6c LNetGetId +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3b8756b0 lnet_notify +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3c779ee0 LNetPut +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3f4f5b46 LNetNIFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x473ad33b LNetDist +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5811a721 LNetInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x58a1ca89 LNetMDUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5fee352c lnet_acceptor_timeout +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x61f784b2 LNetClearLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x64cdea3a LNetCtl +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x6f7be171 LNetEQGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x722c76e5 LNetMDAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x748087ab lnet_register_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x7d59a7fe LNetMEInsert +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x854ab844 LNetEQWait +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8a3064f2 LNetSetAsync +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x9032f5d4 lnet_copy_iov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x99e9be36 lnet_set_ip_niaddr +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x9de986d3 LNetEQAlloc +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa3d61f8d lnet_iov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa8c2760b LNetFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa414970 LNetMEUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa9b477e LNetMDBind +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb23d8c8a the_lnet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb75f7953 LNetEQFree +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xba5566d2 lnet_acceptor_port +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xbd2760ae lnet_extract_kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xbf0760a2 LNetMEAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xbf8b3389 lnet_copy_kiov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xc9da9667 lnet_copy_kiov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xd1182019 lnet_create_reply_msg +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xe9c55c65 lnet_unregister_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xf1b316bf LNetSnprintHandle +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xf6150989 lnet_set_reply_msg_len +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xfa07481f lnet_connect +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xfe96764a lnet_parse +EXPORT_SYMBOL drivers/staging/lustre/lnet/selftest/lnet_selftest 0x078db139 lstcon_ioctl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x1c4bb5f9 LU_OBF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x2582f6ae seq_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x375e6f8d LUSTRE_BFL_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x58a52987 seq_client_get_seq +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x5a276073 seq_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x7f36382a seq_client_alloc_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xa9a65504 seq_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xae61cff5 LU_DOT_LUSTRE_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xc93ad191 client_fid_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xc997a02f LUSTRE_SEQ_SPACE_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xd42ed102 client_fid_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xecee2727 LUSTRE_SEQ_ZERO_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x1093f4d9 fld_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x16b4bb8a fld_client_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x2978956a fld_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x2fd0d457 fld_client_del_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x5149f22a fld_client_proc_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x794eda4d fld_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xd2dfc6b1 fld_client_add_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x000c507f libcfs_debug_dumplog +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x01db5172 cfs_percpt_atomic_summary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x03387ca6 cfs_curproc_groups_nr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x04d3ce6a lbug_with_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x06401e01 cfs_hash_is_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x069f9bb2 cfs_wi_schedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x08917712 cfs_hash_for_each_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x08ada613 libcfs_console_backoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0b4b1546 libcfs_lnd2modname +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0d1b8a30 cfs_percpt_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0de6c369 cfs_cap_lower +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0e4820ab cfs_percpt_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0f5eff79 cfs_percpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x117c8a95 cfs_cpt_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x123b6908 cfs_hash_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12426266 libcfs_run_lbug_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12c54b77 cfs_hash_findadd_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x15565c7f cfs_cpt_set_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x17ac7833 libcfs_deregister_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x18c503cd cfs_percpt_lock_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1a60d439 cfs_parse_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1d41c4c0 cfs_hash_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1d5a3928 cfs_timer_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1e8cdb47 cfs_race_waitq +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2663147a __cfs_fail_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x277e62bd cfs_hash_for_each_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x27b6d3ba cfs_ip_addr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x29aafd0c cfs_hash_hlist_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2a641ef9 cfs_hash_dual_bd_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2a74d232 libcfs_sock_getbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2b1e0458 cfs_get_environ +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2dbe54b2 cfs_trimwhite +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2fb7eae8 cfs_hash_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x30986343 cfs_range_expr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x31fc5082 cfs_crypto_hash_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x361e82d4 cfs_firststr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x377f93fb cfs_srand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x38828b92 cfs_cpt_unset_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x389ca502 libcfs_debug_mb +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x39fdcd2b libcfs_debug_set_level +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3a62a183 cfs_cpt_set_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3c1285bd libcfs_subsystem_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3cbc4d15 libcfs_sock_abort_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3d5e6098 cfs_race_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3e5e7727 cfs_hash_rehash_cancel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ea730c0 cfs_gettok +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ef0d90c libcfs_kkuc_group_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3f0d9281 cfs_wi_sched_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4087e2b4 cfs_hash_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x411db754 cfs_crypto_hash_final +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x413056d8 cfs_cpt_weight +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x41ab33a1 libcfs_ipif_free_enumeration +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x42e22feb cfs_cpt_table +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44839bbb cfs_rand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44f07cfc cfs_pause +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x468bace1 cfs_hash_rehash_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x47fdb4d1 cfs_timer_is_armed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x48f163c6 libcfs_str2anynid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4a99af72 cfs_clear_sigpending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4b982291 cfs_hash_bd_peek_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4f1f2fa5 cfs_crypto_hash_digest +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x50345570 libcfs_str2net +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5051b6d2 portal_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x509d38b0 libcfs_net2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x52e9cfc1 cfs_cpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x53b383e4 cfs_cpt_unset_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x54fd9a71 cfs_percpt_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x58a7ee00 libcfs_catastrophe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5946ec2b cfs_percpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5b20921a cfs_hash_for_each_nolock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5c013b81 cfs_expr_list_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5ce62c0e cfs_cpt_table_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d3be65a cfs_crypto_adler32_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d73c3e3 cfs_expr_list_free_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5dce9e80 libcfs_lnd2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62289d65 cfs_array_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62f56738 upcall_cache_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x63b4967a cfs_hash_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x64685fef libcfs_console_min_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6564c55b libcfs_console_max_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x65dd9f0c libcfs_run_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x66136d2d cfs_timer_arm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x67398404 cfs_wi_sched_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x68497dbf cfs_cpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6b6e862a libcfs_sock_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c4cadc8 cfs_hash_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c605eaa cfs_cpt_unset_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c905b5f libcfs_watchdog_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6dfa9ea1 cfs_crypto_adler32_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6e6af71c current_is_32bit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6f928e1b libcfs_debug_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7190502f upcall_cache_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x71f662a3 libcfs_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x72f4e5f9 cfs_hash_bd_move_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x75161168 upcall_cache_flush_idle +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x752858fb cfs_cpt_table_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7562cd14 cfs_hash_del_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x771695b1 cfs_hash_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x785b7372 cfs_hash_dual_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7a3d49ae cfs_expr_list_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7a47b94d cfs_hash_size_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7afb20c0 libcfs_sock_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7b0b748a cfs_ip_addr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c73bc4b cfs_hash_rehash +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c7986cf waitq_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7d93cded cfs_cpt_of_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7e6f6485 cfs_ip_addr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7edc3574 libcfs_sock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7fda989d cfs_fail_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8151c3aa cfs_cap_raised +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x83d795e4 cfs_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x841679dd upcall_cache_get_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x857aaea7 libcfs_register_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x87f3bb87 cfs_hash_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8840f591 cfs_block_allsigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c275d46 cfs_hash_debug_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c6be9ab cfs_percpt_lock_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c85e4e6 cfs_crypto_hash_speed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8e61d47b cfs_cpt_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f12bb52 libcfs_log_goto +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f45f10d cfs_init_timer +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x91504e8b libcfs_kmemory +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x92353f24 cfs_crypto_hash_update_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x940ed192 libcfs_stack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x949221dc cfs_hash_cond_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x95620e8c cfs_wi_deschedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x97b0b9bc cfs_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9879b229 cfs_get_random_bytes +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9e420643 cfs_restore_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9f82f712 cfs_trace_copyout_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa1cbf250 upcall_cache_flush_all +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa2b68b2a cfs_array_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa6b9dee6 libcfs_kkuc_group_rem +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa711aec5 cfs_cpt_table_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9088531 cfs_expr_list_values +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9dc74e2 cfs_trace_copyin_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9eae690 cfs_str2mask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xaaf59b75 cfs_cpt_set_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xab887583 init_waitqueue_entry_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xad019238 cfs_str2num_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb00dfd91 cfs_hash_dual_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb03d2880 libcfs_kkuc_group_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb42f6b17 libcfs_sock_setbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb53b5569 cfs_cpt_spread_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb883b006 cfs_percpt_atomic_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbab577e8 cfs_hash_for_each_safe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbada117b cfs_cpt_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb972619 proc_call_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb9cb508 cfs_curproc_cap_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbcaf56fb libcfs_kkuc_msg_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbd5d492e cfs_timer_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbf7a37f1 cfs_signal_pending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc0ea7fc0 cfs_expr_list_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc1708189 cfs_hash_dual_bd_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc1b20836 cfs_hash_add_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2911d96 cfs_expr_list_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2dfd791 libcfs_console_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc39fd2f9 libcfs_panic_on_lbug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc3eb614e libcfs_ipif_query +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc47433a6 cfs_capable +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc49b1c62 cfs_percpt_atomic_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc77a24c3 cfs_cpt_set_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc9b78bb4 upcall_cache_downcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcb385db9 libcfs_debug_binary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcbab8493 schedule_timeout_and_set_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcc20e694 libcfs_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xccc45639 cfs_free_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcd38904c cfs_wi_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xce1a88f2 libcfs_arch_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf61bacb __cfs_fail_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf678304 cfs_hash_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd0aa642a cfs_hash_rehash_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd0d8d08a cfs_cpt_unset_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd288a089 libcfs_sock_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd2965f33 cfs_hash_bd_del_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd46225d8 cfs_percpt_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd48d8f72 cfs_hash_dual_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd6a52be3 libcfs_printk +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd6f1fc60 cfs_strncasecmp +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd78048d6 libcfs_sock_listen +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd7bbf963 cfs_hash_dual_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd7c4f765 add_wait_queue_exclusive_head +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd96f406d cfs_cap_raise +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xde17bb8d libcfs_isknown_lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdf2789c0 cfs_curproc_cap_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdfecb98d cfs_block_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdffc951d cfs_timer_disarm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe20b8d1d cfs_hash_debug_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe3bf6897 cfs_percpt_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe6555032 libcfs_ipif_enumerate +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe7017020 libcfs_sock_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe7b54314 libcfs_arch_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe94553b9 upcall_cache_flush_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xea411f63 cfs_block_sigsinv +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xec1f56d5 libcfs_str2nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeccafa5c cfs_cpt_online +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeceac781 cfs_fail_val +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xedf3a25a cfs_timer_deadline +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeed48ba7 cfs_hash_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xefbf6d86 upcall_cache_put_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf2c02048 cfs_cpt_bind +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf440bb38 libcfs_kkuc_group_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf523c42b libcfs_sock_getaddr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf5e4a175 cfs_hash_bd_add_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8a8644b libcfs_id2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8efb8c5 waitq_timedwait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf94025d1 libcfs_str2lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfacb8667 cfs_hash_getref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfe565fa9 cfs_crypto_hash_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xff0f98a6 libcfs_debug_vmsg2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x9f837e04 ll_iocontrol_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xa5304cec ll_direct_rw_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xcd3cde92 ll_iocontrol_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xf266c140 ll_stats_ops_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xf78fc48f ll_osscapa_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x01e1c825 lov_lsm_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x27095531 lov_stripe_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x2e39b34a lov_read_and_clear_async_rc +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x52f4a344 lov_device_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x8eb30a07 lov_lsm_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xa288d560 lov_stripe_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x03de7a73 l_dentry_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x24e1671d lprocfs_counter_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x3bcbdc4b lprocfs_stats_alloc_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x4d8d6dfa lprocfs_counter_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x79db44c9 fsfilt_register_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x7df64784 pop_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x8042382f fsfilt_unregister_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x8553b369 obd_memory +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x8dc32c32 push_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb32323e5 lustre_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb4f8ee63 lprocfs_read_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xf04c5152 fsfilt_put_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xfe589d6a fsfilt_get_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x14a47f31 it_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x9c22b84f it_open_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xb57d8447 it_set_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xf46a886f it_clear_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mgc/mgc 0xdc287f95 mgc_fsname2resid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x00a54954 llog_cat_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x014bbcab cl_req_page_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x01665e34 class_parse_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0205ab86 cl_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x027de020 dt_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0319bfc9 cl_env_unplant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0325f428 class_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x035852d0 lustre_swab_llog_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x03705aab cl_locks_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x04debede lprocfs_alloc_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x04e0f404 lprocfs_single_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x04f552fc lprocfs_wr_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x057f6d4b class_find_old_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x058ae9f5 lprocfs_nid_stats_clear_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x06746ca5 cl_page_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07086fc1 cl_page_list_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x072e0407 lustre_in_group_p +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x078f23c3 cl_req_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07aa68bb lustre_swab_lustre_cfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07cf19da cl_page_list_move +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0836daca lprocfs_register_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x083942ff class_del_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x096a3066 llog_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0a15c4f1 class_num2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0a2b6fb0 class_register_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0a56fed8 lu_object_invariant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0acf387a cl_io_rw_advance +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0c2705ea obd_export_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0cf0ecdc cl_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d3fadda lu_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0d8f0a5a cl_lock_extransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0dba4146 cl_lock_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0dd8caff cl_enqueue_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0dfd9869 cl_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0e7e5b16 class_export_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fd67bcd lu_object_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fe91547 obdo_to_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x10648a9d cl_lock_state_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x10a34eb1 cl_object_attr_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x10ed8b50 cl_io_prepare_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11495519 lprocfs_write_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11526778 cl_page_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x117f74a8 cl_sync_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x119bc443 cl_lock_get_trust +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x12069cc6 cl_sync_io_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1226d2d6 cl_lock_user_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x123e5b5b dt_directory_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1491dc30 lu_context_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x14cac000 lu_env_refill_by_tags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x14e72dda cl_lock_descr_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x15c1bf4b class_find_client_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x15e6ea33 class_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17260880 obdo_cpy_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1820c2e4 cl_io_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x18470eb7 cl_io_is_going +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1ba50883 llog_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1bf029bf cl_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1ecb2225 local_index_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1f028c53 cl_lock_user_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x20adef0c lprocfs_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x20ce653f cl_page_list_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x211e36b3 lustre_idmap_lookup_uid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x221826f1 class_parse_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2284d3e3 cl_2queue_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x22bb6e64 cl_lock_hold_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x22eb9990 cl_queue_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2341b175 cl_lock_weigh +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2355ac85 llog_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2473078b class_name2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x24832f98 lustre_process_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x24c9ba86 cl_page_gang_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2547efae lustre_uuid_to_peer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2582ff70 llog_cat_cancel_records +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x25afcfb6 cl_offset +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x26dbd200 dt_index_walk +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x26f52c09 cl_lock_nr_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x275cdc7a cl_env_reexit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x297cf5e0 class_handle2object +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2a38f1bc cl_page_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ae1cd79 kuc_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2b2dbd68 cl_page_unassume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2bb8c612 obdo_to_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2bc5e198 cl_unuse_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2cebedb0 local_oid_storage_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2e45f5e4 cl_page_list_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2e510a55 lu_dev_del_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2e75d99f class_put_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2e86697e dt_txn_hook_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2fd028e3 cl_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x300650c0 lu_device_type_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32284b1b cl_page_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3232d667 lu_object_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32739889 obd_llog_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32ba7a38 dt_quota_slv_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32f399f9 cl_env_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x330cead0 dt_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3375bab9 class_detach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x33c151e3 lu_buf_realloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x33c9f76d lprocfs_free_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x33ce588f cl_page_list_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3530deb2 lu_object_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x35b422ee local_file_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x362057e0 lprocfs_rd_conn_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x36c84f03 lu_object_find_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3773157e cl_lock_unhold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37750b5b cl_object_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37ca5286 lu_site_init_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37cc11dc lprocfs_nid_stats_clear_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37ed6e4b at_early_margin +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38fa9de7 lprocfs_rd_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38fb0c90 class_match_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x393efdc8 obdo_from_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x39567e96 cl_page_vmpage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x39c8580f class_handle_hash_back +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3a0ae811 cl_page_is_vmlocked +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3ad3ece3 dt_store_resolve +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3b7f5c7a lustre_end_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3bc57d81 dt_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3bfb2fb7 lprocfs_rd_num_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3da2aa39 lprocfs_alloc_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3dedda26 cl_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3e9cae78 dt_record_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3eab7bfe LU_BUF_NULL +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3f641525 llog_cat_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3ff1af2a cl_io_read_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4037f3ef lprocfs_rd_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x40465e24 llog_osd_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x404bd7a7 class_handle_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44e41abb lustre_posix_acl_xattr_filter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44ff4d17 llog_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x452f559a lu_buf_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x45861b58 dt_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x45a0f71f lprocfs_free_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x474ed5bd lustre_swab_ll_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47967ca0 llog_osd_put_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47b35f7d statfs_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x483a081a lu_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4850fa22 class_disconnect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x48746e1a class_exp2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x48e76513 cl_io_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x494cfb52 lustre_acl_xattr_merge2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4971435d lprocfs_wr_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a0f6ea lustre_posix_acl_xattr_2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ac58713 obd_connect_flags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4b8d8dd8 llog_cat_declare_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4b905269 llog_declare_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4bf356ca lustre_idmap_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4bff7602 lu_env_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c190aad lprocfs_find_named_value +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c4c700b obd_alloc_fail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4cb5be67 cl_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d13458b kuc_len +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d24c719 cl_page_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4de36f3c lustre_idmap_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4e27ccc9 md_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50c7fc36 ptlrpc_put_connection_superhack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50cc20a0 lu_context_enter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x511b5c26 class_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5189e8de cl_io_lock_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x51de0aa3 cl_page_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x52601ae4 llog_cat_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5294da51 llog_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5360f90a dt_record_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x544417aa cl_page_list_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54885f87 ldlm_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54e5d268 lu_object_locate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x558bec27 obd_ioctl_getdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x564e9d44 init_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x56817095 lprocfs_obd_rd_max_pages_per_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5687794a lprocfs_rd_numrefs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x570d09ae lustre_swab_lu_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x573a74c3 lu_site_purge +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5741a0ce class_import_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x57691bc8 lu_context_key_revive_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x582b013d dt_quota_glb_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x58fd1e99 cl_vmpage_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5914c096 cl_page_is_owned +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5953bbeb cl_sync_io_note +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x597c702f cl_req_page_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a20d896 obd_memory_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a40e98c lprocfs_rd_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a79c6ee cl_lock_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a8bfc54 lu_context_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5aa0bdb8 llog_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5b91a4f0 cl_page_list_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5bc022c5 lprocfs_dt_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d34ae0d cl_lock_mode_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d46636b cl_page_find_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e6135ef dt_txn_callback_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e93341f lprocfs_oh_sum +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ed188a9 lprocfs_add_symlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5f6ee0e8 lu_env_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5fe97b73 block_debug_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6083d48f cl_lock_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x61d39db0 cl_page_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x622db959 cl_lock_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x624ffe24 lprocfs_counter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x62655a1c dt_store_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631a518d mea_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631fd7b9 lustre_ext_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x63d2eff4 local_object_unlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x64508c33 lprocfs_obd_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x645b5674 lprocfs_rd_timeouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x645f0d5a cl_page_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x648a7f66 lprocfs_free_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x65723400 lu_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x660c058c cl_lock_disclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6734adbd lprocfs_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x675244fa dt_otable_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x675ffb93 cl_pages_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x677fd7f9 proc_lustre_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67977b42 lprocfs_remove_proc_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67a90622 la_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67dc223a lprocfs_remove +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x683dc8cf cl_lock_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x68499f8c cl_lock_is_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6890d175 lustre_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x697b7a03 cl_page_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69c24b3e cl_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69c42114 at_min +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a45c863 cl_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a9362a8 lprocfs_init_mps_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6ad8236c lprocfs_add_simple +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6bcb6e94 lprocfs_seq_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6c3f08b2 lu_site_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6e0a1456 lu_device_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f350f07 lustre_register_kill_super_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x70ccb0a3 lprocfs_rd_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x718afbbd lprocfs_alloc_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x71921fd3 lu_object_add_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x71c67f63 dt_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x722cd611 cl_page_is_under_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72ddee4c obdo_le_to_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x742559b1 class_unregister_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x74e48bd6 cl_io_iter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7519f618 lprocfs_init_ldlm_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x752f71a8 class_get_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x756a77f3 class_parse_nid_quiet +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7601ad88 lprocfs_at_hist_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x762f7780 llog_init_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77d2089a class_name2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7802fcd7 lustre_swab_llogd_conn_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7818d9a8 obd_devs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x789796a1 obd_zombie_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x793ca46d cl_lock_ext_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7a262552 dump_lniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b4fc57b at_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7bc12d2a lprocfs_init_ops_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7cca2abe cl_io_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7e23e568 cl_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7e47813a class_export_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7edcafa0 cl_env_reenter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f3eaafd dt_locate_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f6f5d6c lprocfs_rd_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f7d7cd9 lu_buf_check_and_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fad7291 raw_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fd97ca4 cl_object_glimpse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fe5561a obd_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x80162c54 cl_io_sub_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8031efb8 lprocfs_dt_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x806cc497 class_add_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x80c5f8a9 cl_req_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81742d89 obd_ioctl_popdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81780dcc cl_object_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x82212b2c cl_2queue_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x826a48b0 cl_lock_hold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x82ee108b lprocfs_exp_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x82f42707 lu_context_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x831f656c class_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x83c14e3f class_import_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x83ec6bf9 llog_cat_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8489f086 obd_alloc_fail_rate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x849e5385 obd_update_maxusage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x84ddeb6e cl_object_kill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8503c454 lu_buf_check_and_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x851fe011 lu_context_key_revive +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x85650d0d llog_declare_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x85fef680 cl_lock_modify +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x87167010 __llog_ctxt_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x872aee91 cl_io_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x87e1bd32 obdo_refresh_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x88b87068 lprocfs_stats_collect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x88ec413f llog_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x891054f1 lprocfs_clear_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8a787f1e cl_page_own_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8a8b6e2d lu_context_key_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8aa2c358 lprocfs_dt_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b3b2194 cl_page_cache_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b5f4057 lu_context_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b8a3999 lprocfs_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ba6e479 lustre_swab_lu_seq_range +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8c5daa8d cl_req_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d3dea4c llog_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d658ed0 capa_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d77c356 dump_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8e10e6d6 server_name2svname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8e1106f2 local_index_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8e1509d1 lu_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ea4cb0b cl_req_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ecd600a class_connected_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f67314c obd_dump_on_eviction +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8fed1bf0 class_search_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ff4c5fb cl_page_list_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x905a36f1 lprocfs_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x90eeab76 cl_lock_mutex_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x90fb218b llog_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x91213d47 lustre_register_client_fill_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x91df6bf3 dt_txn_callback_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9209be51 cl_object_attr_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92684523 cl_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92e58479 obd_dump_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93859814 lprocfs_oh_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93b3f524 cl_lock_enclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93b46468 lu_session_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93f7db8e obd_export_evict_by_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9505c895 lustre_idmap_lookup_gid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9512d507 lustre_acl_xattr_merge2posix +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9538ba63 lu_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x955f5220 ldlm_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95735c6c at_extra +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9579fa6f llog_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95c0336c lu_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95ec998a lustre_groups_sort +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x961ba181 obdo_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x966ef903 lprocfs_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x96dac4a9 cl_page_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9767adce class_uuid2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x977ec57d lprocfs_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97d03783 at_history +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x981efbe0 lu_object_assign_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x98add17f cl_page_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9905f281 lprocfs_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b1ed9d8 obd_jobid_var +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b42f2d8 cl_conf_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b91f4be dt_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9c4ebf9e llog_cat_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9d8fde53 class_new_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9dbb17b6 lprocfs_dt_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9e5a3d51 llog_open_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9f5e1d36 obd_llog_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9f808433 class_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa1e14cbd class_config_parse_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa21c5ea1 obdo_from_la +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa48c4a30 lustre_idmap_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa48f6136 cl_io_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa513f7e4 lustre_groups_from_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa57b6e6a lprocfs_rd_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa596cb38 cl_lock_discard_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5fb234f lprocfs_write_frac_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa674c241 kuc_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa70207b8 class_config_llog_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa72fc1b7 cl_page_list_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa76dd83d cl_page_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa7a92208 cl_page_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa831ace3 llog_osd_get_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa884f6c3 class_fail_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa8ae54a7 lprocfs_add_vars +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa9438412 class_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa952cf9b cl_page_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa21b7a0 lustre_register_quota_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa531e70 cl_lock_closure_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa773c94 local_file_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabf45922 capa_decrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac0ebdd3 cl_page_clip +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac7f1596 kuc_ptr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xae37895a cl_2queue_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaedb090e class_config_dump_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaf219867 cat_cancel_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaf407c2a lprocfs_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaf715b0c obd_exports_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaf86dfb6 lprocfs_rd_u64 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaf95251f cl_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xafb27031 cl_2queue_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb01963a6 class_uuid_unparse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0215fc8 llog_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0cfcffb cl_use_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0fb9886 cl_lvb2attr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb14f6b22 obd_export_evict_by_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1b89b6d class_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1e5af75 lu_ucred +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb297aa21 class_conn2export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb3dc5cad class_devices_in_group +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb41998cd lustre_cfg_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb59e1476 cl_unuse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb5bdcb2d lprocfs_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb635af9e dt_acct_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6ba5dd5 kuc_ispayload +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6f065c3 cl_object_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb743ec6a dt_mode_to_dft +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb79af61b cl_env_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb7a8d18b cl_page_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb8e5a137 lu_object_anon +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba985283 lustre_register_client_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbacac922 lprocfs_write_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbad5b776 lu_object_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbb4f6a63 llog_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbbd68426 iattr_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbbed755e cl_lock_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc987133 lu_device_type_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbcee1990 cl_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbd2d40ab lu_object_put_nocache +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbd8cf2a6 llog_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbf87478f dt_txn_hook_commit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbfa90d9e class_disconnect_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0954007 lprocfs_oh_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0bf7ef2 obd_debug_peer_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc18d06cf lu_buf_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc1de26df cl_lock_enqueue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc1e08950 lu_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc28ef722 dt_index_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc2a6a2f1 cl_2queue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc2af0fee cl_io_commit_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc38cfa3f lu_context_key_register_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc3d1cdc1 dt_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc40a1263 capa_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc40e0ed8 cl_lock_closure_build +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc44b14e9 lprocfs_exp_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc543f7f2 cl_io_submit_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc59bd243 lu_env_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc5b17c4a lu_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc5d16113 cl_req_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc6312263 class_disconnect_stale_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc64f8206 cl_env_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc655c676 capa_cpy +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc6cc4146 dt_version_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8885fb8 cl_wait_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8dbaa87 lustre_swab_cfg_marker +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc96c8f64 cl_lock_closure_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc9b18a26 lu_context_key_degister_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xca69bd02 cl_io_iter_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xca6bee3a lu_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcac60a94 cl_env_nested_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcad23c59 cl_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb0ab67f obd_max_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcbce3857 lu_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcc441579 llog_cat_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcc541ae3 dt_declare_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccd18d3f cl_page_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccd5705d lu_context_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccf7a8de obdo_cpu_to_le +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd350c02 cl_lock_signal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd7537ee get_devices_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd88aba2 cl_lock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcda61e4f lu_cdebug_printer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcda92f35 lu_device_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcdff005f lu_object_find_slice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcedb140a obdo_cmp_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcf09d831 class_exp2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcf57e6e3 cl_lock_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcf5ba7ab class_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcfd11535 obdo_from_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd04024d0 lprocfs_rd_connect_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd08827c0 server_name2fsname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd10aa042 lustre_swab_llog_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1b1478b cl_attr2lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1b30419 lu_kmem_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1f58645 lustre_swab_llog_hdr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd20e9392 cl_env_nested_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd27b0eac class_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd407b920 cl_page_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd70fe669 lustre_swab_llogd_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bc8654 obd_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bfbc9c lprocfs_dt_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7f7b340 cl_lock_mode_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd84f96d1 cl_page_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd8cfe2e5 cl_lock_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda5b1ced class_find_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdac644c8 lustre_posix_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdadf6cd2 cl_2queue_init_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb13dce1 capa_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb319173 cl_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb3b5c01 lprocfs_free_per_client_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb8dad83 llog_declare_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdc354d39 cl_lock_at_pgoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdc54e135 lprocfs_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdca93c37 class_unlink_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcc40af0 class_check_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdccbbbd3 cl_io_rw_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd1c281b cl_io_loop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd78c0c7 lu_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdda3d949 class_handle_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde40a94c cl_object_attr_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde7d985b obd_dirty_transit_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde8f4b16 dt_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdec381a2 lustre_common_put_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdf455e6b cl_page_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdfeef937 cl_lock_hold_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe00d593a llog_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe028cf84 capa_encrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe0688642 llog_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe0e6c72f cl_io_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2555500 llog_cat_init_and_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe28fa3bf lu_context_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2d6fd76 lprocfs_rd_server_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2d83ab4 cl_page_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2eb4470 class_get_next_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3323f5d class_handle_free_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe365a922 cl_lock_descr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3bb5c1a llog_obd_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe471bb85 llog_exist +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe484e916 cl_type_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe5e56db0 cl_page_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7bc6b00 capa_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7d1ca43 cl_object_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7d83236 cleanup_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8e84c32 class_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe9be7327 lu_context_key_degister +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe9be8358 cl_lock_mutex_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xea13af9b cl_object_has_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeacec47c lprocfs_oh_tally_log2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeaf28c3d cl_env_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb1ddec6 lu_context_key_quiesce +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb3dedb4 cl_io_lock_alloc_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb3f388a _debug_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb5946ba obdo_from_iattr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb977baa class_uuid2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb9edcc2 cl_lock_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xebb4f52e local_oid_storage_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xebbfdc2b lu_dev_add_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec123660 llog_cancel_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec747001 capa_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec76847f lustre_idmap_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec7d6b85 obd_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec9e5f32 lprocfs_seq_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeca0ce74 lu_context_key_quiesce_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee68bc29 lu_session_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeeeb79fa do_lcfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef6222ad cl_2queue_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef76f858 block_debug_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef7b5347 class_manual_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xefb36abb cl_env_implant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf0092d72 class_conn2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf01e2527 server_name2index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf0a52f5d cl_page_list_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf144e336 class_new_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf167e43e lu_context_key_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf196a7f0 cl_page_make_ready +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf2500cf8 dt_lookup_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf2fd6695 statfs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3bc5b9d dt_lfsck_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3eafa4f class_incref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf45ab93b llog_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf4723a77 cl_io_submit_rw +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf490d5f9 class_del_profiles +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf5773720 lu_ucred_assert +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf5fd84d4 dt_txn_hook_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf60d4659 capa_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf6f2ed6b cl_lock_mutex_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7020831 lprocfs_dt_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf747979b cl_page_list_splice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf85601fe llog_thread_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf874c950 dump_lsm +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8c2df92 obdo_set_parent_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8c2f247 cl_io_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf93a37fc dt_try_as_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa813d06 capa_hmac +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfb59816f cl_io_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbbc5850 llog_copy_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbea0098 lu_types_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbec3bd7 class_process_proc_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc5831f1 lprocfs_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc7f18d0 obd_pages_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfce4103b lu_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd68d17a class_notify_sptlrpc_conf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd935c9f class_conn2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfdbe1557 lprocfs_write_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe16597e lu_ucred_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff57e92d class_match_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xffcb0423 lu_kmem_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xffdf8491 cl_lock_is_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfffc1f11 lustre_swab_ost_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/osc/osc 0x5c4940c2 osc_update_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00d95039 ptlrpcd_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x01d6ef7f ldlm_pools_recalc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x01d8ce03 req_capsule_client_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x02db52bd ldlm_pool_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x03bc63e4 llog_initiator_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x03d2d9c7 ptlrpc_set_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x03d4f63d lustre_pack_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x04660bd0 ptlrpc_request_bufs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x048b59d5 lustre_msg_set_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0515f93b RQF_FLD_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0655c9b5 client_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x06b3942b lustre_swab_lov_user_md_objects +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x06e99aca ldlm_namespace_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x071fc74a RQF_LDLM_ENQUEUE_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x07605c7d interval_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08549e2b sptlrpc_register_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08bb2d27 lustre_swab_obd_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08d168c9 ptlrpc_req_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x095587d0 lustre_msg_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x09571632 ptlrpc_prep_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x09b2d8e3 ptlrpc_recover_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0a1add05 ldlm_lock2desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0a3130b0 RMF_MDT_EPOCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac252b2 lustre_msg_set_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac54708 lustre_errno_hton +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ad30cf0 ldlm_pool_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0b4d866e sptlrpc_import_flush_all_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0bcacb5d RMF_MDS_HSM_USER_ITEM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0c2d9c43 lustre_swab_lip_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0c528d59 ptlrpc_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0cf343dd RQF_LDLM_INTENT_BASIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x10f18f20 interval_iterate_reverse +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1133bd83 ldlm_cli_cancel_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x115017f6 req_layout_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x11cc05c2 ptlrpc_lprocfs_unregister_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x11eee690 ptlrpc_set_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12b6f5a3 ptlrpc_connection_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12bbf6c7 ptlrpc_nrs_policy_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12eed0fa ptlrpc_buf_set_swabbed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1474440e ldlm_pool_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1483eca4 ldlm_lock_addref_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1491a091 ldlm_get_enq_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x14d192db lustre_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x15a3e4db RMF_GETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x172fb86d lustre_msg_hdr_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1747d8b3 ldlm_lockname +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17950f60 RQF_SEC_CTX +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x18a367c0 ldlm_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x18a64313 sptlrpc_cli_unwrap_bulk_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19108a0f RQF_OST_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19297e1b sptlrpc_sec_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19c08934 RQF_LDLM_INTENT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19c39dc8 ptlrpc_wake_delayed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a0fd2f0 ldlm_lock_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a6a3ce9 RQF_OST_GET_INFO_LAST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a9b76aa RMF_OBD_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a9d88c7 ldlm_blocking_ast_nocheck +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1abd3258 RMF_SETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ace4b5f RQF_LDLM_BL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1bae0270 interval_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1be21715 lustre_msg_size_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c300d8e lustre_msg_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1cbad50a ptlrpc_service_health_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1d043548 lustre_msg_set_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1dc2051d RMF_SEQ_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1de9c288 lustre_swab_layout_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1e8e48a4 sptlrpc_flavor_has_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1eb2a65f RQF_OST_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee46b51 lustre_init_msg_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee9eb3c RQF_MDS_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1f271691 ptlrpc_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2050bacf sec2target_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2096f5b5 RQF_OST_SET_GRANT_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x20d6b82c RQF_LDLM_INTENT_QUOTA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x218a36ce ldlm_cli_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x21c1c01b ptlrpc_hpreq_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2236bfda ptlrpc_pinger_sending_on_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x233790b5 RMF_OST_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x23873dde ldlm_namespace_new +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x244e5558 lustre_msg_get_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x24aafdba RMF_MGS_TARGET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2585a629 RMF_SEQ_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2587513c RQF_LDLM_CP_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x26199bb2 sptlrpc_enc_pool_put_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x269554ce RQF_LDLM_INTENT_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x26f99d16 RQF_MGS_CONFIG_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x285e5b99 lustre_msg_set_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x28f752d9 ldlm_replay_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x29443cf0 ptlrpcd_wake +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x29e0869a sptlrpc_get_hash_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2a63a472 lustre_swab_ptlrpc_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2aaee5d4 ptlrpc_send_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2b62b837 ptlrpc_unpack_rep_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2c00c60d ptlrpc_sample_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ca92fa8 ldlm_lock_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ccd5b87 ldlm_cli_cancel_list_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d56f168 ptlrpc_pinger_ir_up +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d798316 RMF_MGS_CONFIG_RES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d7b63e8 ldlm_lock_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2df97271 sptlrpc_sec_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4562fe RQF_LLOG_ORIGIN_HANDLE_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4ca396 RQF_LDLM_INTENT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2eb4126c ptlrpc_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ecd7515 lustre_msg_check_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2f0e4f87 RQF_OST_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2fd2f737 lustre_msg_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x301d4fcd RQF_MDS_READPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x302937e0 RQF_MDS_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3058824f req_capsule_client_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3060b9c6 sptlrpc_rule_set_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x31838cb4 RMF_IDX_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x318a4c57 ldlm_pool_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3261b862 RQF_OST_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x32855a72 ptlrpc_register_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x32db042a ldlm_namespace_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3388dab1 ldlm_resource_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x338aa2bb sptlrpc_target_sec_part +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x33abe2dd __ptlrpc_free_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x33bb7761 ldlm_typename +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35254a5d ptlrpc_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35939a3d lustre_swab_fiemap +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x36b6bd50 sptlrpc_enc_pool_get_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3835ab4b RQF_LLOG_ORIGIN_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3858fb94 RMF_OBD_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3896ba40 ldlm_pool_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38c01799 RQF_LDLM_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38f2a8ec llog_origin_handle_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38fce533 lustre_msg_set_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3915beff sptlrpc_cli_enlarge_reqbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x39f60a5f RMF_OST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3a1e4bcb __lustre_unpack_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ab90f6e lustre_msg_bufcount +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ac00716 lustre_swab_hsm_user_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b60b771 ptlrpc_disconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b6b7cba dump_ioo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3bedb0c7 RMF_LLOGD_CONN_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c63e62b RQF_MDS_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ca50f33 RQF_MDS_HSM_CT_REGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3d02a0cb _debug_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3d7dc5f9 ldlm_pools_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dc47695 lustre_msg_get_magic +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dddb3e2 dump_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3eb8afac ptlrpc_reconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ee4579b ldlm_pool_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f034caf lustre_msg_get_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f752e78 RQF_MDS_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41008cef RQF_LDLM_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4206f8ed ldlm_namespace_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43705ee4 RQF_LOG_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x439a9be8 ldlm_cli_cancel_unused +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43d7efc8 lustre_msg_set_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x44036eda RQF_MDS_GET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x440751e6 lustre_pack_reply_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x440c2a71 RMF_FIEMAP_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x445e3bb4 ldlm_resource_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4481591d RQF_OST_SET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45a937fd lock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45d05893 lustre_swab_lustre_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45e30cea lustre_swab_ldlm_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x462ca61f ptlrpc_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x46f37dcf req_capsule_server_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47876272 unlock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47f5e903 RMF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x487b0877 ptlrpc_register_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x48814c9f lustre_swab_ost_lvb_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x498c03c5 lustre_msg_set_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4a5a2416 RMF_DLM_REQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4b09ce4b lustre_swab_mdt_rec_reint +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4c7d6b44 llog_origin_handle_read_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4c9ebdc4 ptlrpc_deactivate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4d7580d0 lustre_swab_hsm_user_item +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e021a82 client_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e1706e5 lustre_msg_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e696b96 ptlrpcd_queue_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4eb03a6f ptlrpcd_destroy_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4ef368a7 llog_origin_handle_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4f766c3b lustre_swab_generic_32s +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50443f6a ptlrpc_init_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50dd74f8 RMF_STRING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x51924385 sptlrpc_conf_client_adapt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x52c62150 RMF_RCS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53411557 RMF_DLM_REP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53a4a004 bulk_sec_desc_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53e82c67 target_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x54198fae do_set_info_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x54ae5021 ldlm_lock_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x54bc81f3 ptlrpc_at_set_req_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x555eb7fe RQF_MDS_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x56cd5cd0 ptlrpc_buf_need_swab +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x56ec2c9e req_capsule_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5792a90d sptlrpc_target_update_exp_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x588035b4 RMF_UPDATE_REPLY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x58e1fe70 sptlrpc_unregister_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x595ab175 lustre_swab_obd_quotactl +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x596582bf RMF_GETINFO_VALLEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59ca398b ptlrpc_add_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59fd2686 ldlm_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5a057439 interval_search +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5a10ff44 ldlm_init_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5af0d02a ldlm_lock_dump_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b54d114 ptlrpc_save_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b617321 req_capsule_filled_sizes +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b6ba895 lustre_packed_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5c6a3a83 RQF_SEQ_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5caae213 ptlrpc_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5d4a9441 req_capsule_client_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5da67763 ldlm_pool_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e0b19b1 RMF_CLUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e2b7558 lustre_msghdr_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e6f435d RQF_OST_BRW_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e80f899 RQF_LLOG_ORIGIN_HANDLE_READ_HEADER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e9f2348 ldlm_cli_cancel_unused_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ebdcb5a ptlrpc_commit_replies +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ec3284d RQF_MDS_HSM_CT_UNREGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5eee792f ldlm_resource_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ef831ee lustre_msg_get_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5f96ccdd ptlrpc_connection_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6033115f lprocfs_rd_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6042bc15 RQF_MDS_REINT_RENAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x604e2505 RMF_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x607ec932 lustre_msg_set_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60cd26ad RQF_MDS_REINT_CREATE_SYM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x61646e1b RQF_MDS_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x618ad203 RQF_OST_GET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62192cf8 dump_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62aaae3f RQF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6315dd4c RMF_LLOGD_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6352a62d ldlm_get_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x63a8ba3d req_capsule_field_present +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x647b6e48 lustre_swab_ldlm_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x653723dc RMF_LOGCOOKIES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6547273a req_capsule_server_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6548ae26 llog_origin_handle_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x657b00b7 ptlrpc_init_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x66053643 ldlm_lock_downgrade +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x67a3ed80 req_capsule_has_field +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x67d654b9 ptlrpc_init_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x683243bf ptlrpc_set_next_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x685eeaba RMF_DLM_GL_DESC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68b644f9 lprocfs_wr_evict_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68cb2541 interval_is_overlapped +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68f49e5e ptlrpc_expired_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68fdb1ea ptlrpc_request_alloc_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6912990a RQF_OST_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x696ba811 lustre_msg_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69c9f04d RQF_MDS_REINT_LINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6a3785c9 RMF_EADATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6c81c5ca ptlrpc_obd_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d72828c sptlrpc_conf_log_update_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d7931cc RQF_UPDATE_OBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6e5bbcfb llog_origin_handle_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6ed20499 ldlm_revalidate_lock_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6efa82b0 RQF_MGS_TARGET_REG +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f6dc736 lustre_swab_mdt_remote_perm +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6fb92092 sptlrpc_flavor2name_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x703538e4 lustre_swab_hsm_current_action +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x714a28f2 ldlm_enqueue_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7161350a ptlrpc_prep_req_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x723d43b6 sptlrpc_rule_set_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x725a892c RQF_MDS_REINT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7287b6c0 ldlm_pool_get_lvf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x73e4e5c9 ptlrpc_add_rqs_to_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x74428504 ptlrpc_req_finished +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x74840056 lustre_msg_set_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75a2c40d ldlm_put_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75c79692 ptlrpc_set_import_active +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x76b728e5 lustre_swab_update_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77571cc6 lustre_swab_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77840c82 sptlrpc_rule_set_choose +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77f39484 sptlrpc_conf_target_get_rules +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x78bf9136 lustre_swab_ldlm_lock_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7a832f10 RMF_CONN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7b056724 ldlm_prep_elc_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7b158da4 lustre_swab_ldlm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7bbf8001 RMF_MDT_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7c03a699 ldlm_lock_allow_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7c136ba1 ldlm_reprocess_all_ns +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7c4c6107 RQF_LDLM_CONVERT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d1ecd7f RQF_LDLM_INTENT_LAYOUT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d41a8b9 RQF_QUOTA_DQACQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dc0e7cd RMF_QUOTA_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dfb3c18 lustre_msg_clear_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7eacdc74 req_capsule_other_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4925d8 interval_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4c99b1 ldlm_expired_completion_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f5a1cc7 lustre_msg_set_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f6d2357 lustre_msg_is_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x808c6173 req_capsule_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80a9e8c3 lustre_msg_get_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80ecb4e3 RMF_MDS_HSM_CURRENT_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x817d7f1f lustre_msg_add_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x81a492e8 sptlrpc_cli_ctx_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x81fe7338 ldlm_cancel_resource_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x826d3c4f RQF_LDLM_GL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x837efb00 RMF_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x838136f9 ldlm_pool_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8466cc46 ldlm_flock_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85135801 RMF_DLM_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85a9e0d8 RMF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85eecf67 sptlrpc_get_hash_alg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8612638d client_import_find_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x863db6eb RMF_HSM_USER_STATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x86b09d92 ldlm_prep_enqueue_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x86fa8c3b ldlm_cli_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8760beaf lustre_swab_ldlm_policy_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x876c2551 RMF_GETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87bf7b3c sptlrpc_get_next_secid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87ff2afb ldlm_pool_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8872f3d2 RMF_SETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x88fff52d RMF_CAPA2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x893c15a4 ptlrpc_abort_inflight +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x89cbcb8e ldlm_blocking_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x89f9edf7 RQF_MDS_REINT_SETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a1ea476 lustre_swab_hsm_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a257736 RQF_MDS_HSM_STATE_GET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a2a8f41 ptlrpc_request_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a3d49aa ptlrpc_resend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a4345b1 ptlrpc_set_add_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ac440fa ptlrpc_uuid_to_connection +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8aec6e6f ptlrpc_request_set_replen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8aed165d ldlm_lock_fail_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8b854254 lustre_swab_mgs_config_res +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8bf01f33 lustre_pack_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8c82370d client_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8cb71d4b RQF_MDS_REINT_CREATE_SLAVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d77ea75 lustre_msg_set_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8da3fca7 lustre_msg_add_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8dbc23c9 sptlrpc_svc_ctx_invalidate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8e1ddd07 ldlm_namespace_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8e8b0638 ldlm_lock_change_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8e9abe4d RMF_GENERIC_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8f0aceac RQF_MDS_HSM_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8f8aa2b6 sptlrpc_cli_unwrap_bulk_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8fec0451 lustre_msg_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8fff8fd4 ptlrpc_lprocfs_register_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x900e426f llog_origin_handle_next_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x919c4ce3 RMF_OBD_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91cf58d3 RQF_MDS_PIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91d00f3f llog_origin_handle_prev_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x937b1ee0 lustre_swab_mdt_ioepoch +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x93bc07ed sptlrpc_sec_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9553c633 RQF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95c94a1e ptlrpc_request_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95d08f0c lustre_swab_mgs_target_info +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9660ace0 RMF_FLD_MDFLD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x967bfd52 RQF_OBD_PING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9749b7b2 ptlrpc_fail_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x975b5652 __ptlrpc_prep_bulk_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9798f2f1 RQF_MDS_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x980fcfdc ptlrpc_connection_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x98f187af sptlrpc_cli_ctx_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x997ce7f3 ldlm_destroy_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x99bd8732 client_import_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a258886 RQF_MDS_GETSTATUS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a6f2f6d lustre_msg_set_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9abc332d ldlm_destroy_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9b859b5b req_capsule_init_area +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9b88f6ce RMF_NIOBUF_REMOTE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9bb5198b RQF_MDS_CLOSE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9be09911 ptlrpc_cleanup_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9c10fa97 ptlrpcd_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9c8a0fcd req_capsule_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9c91dbc9 ptlrpc_request_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9cac0e8b req_capsule_server_sized_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d7ea314 sptlrpc_pack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9df1c779 sptlrpc_cli_wrap_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9fb088f1 lustre_swab_lov_mds_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa10f0d3d RMF_UPDATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa150eacf ldlm_completion_ast_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa163f4c3 dump_rniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2244636 RQF_MDS_GETATTR_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa22c0086 ldlm_error2errno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa25ca401 ptlrpc_unregister_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa3d2a6ee RMF_CAPA1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4225b93 ptlrpc_req_set_repsize +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa435db8f ldlm_namespace_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa47787ef RMF_PTLRPC_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4a2d089 RQF_OST_PUNCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4bea5ef lustre_swab_lmv_user_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5458dad ldlm_lock_decref_and_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5880075 ldlm_errno2error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa66888dd ptlrpcd_add_rqset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa6c436ca RQF_MDS_WRITEPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa737adaa req_capsule_server_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa75b2a93 ptlrpc_schedule_difficult_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7a8dbf3 ptlrpc_set_add_new_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7d55cc3 RQF_MDS_REINT_CREATE_RMT_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7e360b1 RMF_OBD_IOOBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7ec567d RMF_CONNECT_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa868651f ptlrpc_queue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa89cf793 ptlrpc_mark_interrupted +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9704f80 lustre_msg_get_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9b9d3de ldlm_lock2handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9c4658e lustre_swab_lov_user_md_v3 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9d94ff5 target_print_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9edf09d RQF_OBD_IDX_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaba71014 ptlrpc_pinger_add_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xac588b34 ldlm_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaddc3979 lustre_swab_lustre_capa_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaded1c75 ptlrpc_request_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaeeb66e1 ldlm_cli_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaefbf849 req_capsule_server_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf4e9658 RQF_MDS_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf50a0d6 RMF_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf9ca4eb ldlm_pool_set_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0751fa4 RQF_LLOG_ORIGIN_HANDLE_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0781ad5 sptlrpc_gc_add_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0dce7d5 sptlrpc_get_bulk_checksum +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb16a1524 req_capsule_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb189d230 ldlm_glimpse_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1b43d8a dump_rcs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1bc5225 ldlm_resource_unlink_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1f8a081 ptlrpc_request_alloc_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb27c2374 lustre_msg_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb291473d lustre_msg_early_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb2b1817d lustre_swab_ost_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb2fe6509 ptlrpc_retain_replayable_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4a7ecf3 lustre_msg_add_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb512ebc2 sptlrpc_parse_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb55dec4a ptlrpc_start_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb61cb95a RQF_MDS_GETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb68476df interval_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb6aafd03 RQF_MDS_DONE_WRITING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7b38189 RMF_MDT_MD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7e2a741 lprocfs_wr_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7fa3cc8 RMF_LLOG_LOG_HDR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb89f742b ptlrpc_resend_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb903634e RQF_OST_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb9b631cf lustre_swab_mgs_config_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbaa76097 lustre_msg_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbb78811e sptlrpc_import_flush_my_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbb866ced __ldlm_handle2lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc1370dc lustre_shrink_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc950c40 target_pack_pool_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbd3f0bea ldlm_cli_enqueue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbd83bc44 RQF_OBD_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbe47bc7e ping_evictor_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbf538ab8 ldlm_init_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbf98b86f RQF_MDS_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbffd4313 RQF_OST_BRW_WRITE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc031fdcd ptlrpc_lprocfs_brw +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc060873f sptlrpc_target_export_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc06c4670 lustre_msg_get_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0867da7 RMF_REC_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0cdf55e RMF_MGS_SEND_PARAM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc1d96c79 ptlrpc_activate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc1ed015f ldlm_pool_get_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2986d28 lustre_swab_ldlm_res_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2b1af57 RQF_MGS_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2be922a RMF_SYMTGT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc3e5af78 ptlrpc_pinger_del_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc559a634 RMF_LAYOUT_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc60a60e1 RQF_OST_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc677138f req_capsule_server_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc694be4b RQF_LLOG_ORIGIN_HANDLE_PREV_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc763fabc sptlrpc_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc78a5464 ptlrpc_free_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc79b9c67 ldlm_pools_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7ca8257 RQF_MDS_REINT_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7e47564 ptlrpc_interrupted_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc8f586a9 ptlrpc_connection_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca5a81ec ptlrpc_pinger_ir_down +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb16107d ptlrpc_set_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2cc0cf lustre_swab_lquota_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2ceaff sptlrpc_secflags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcce405e4 req_capsule_extend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce1a689b sptlrpc_enc_pool_add_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce3525c4 ptlrpc_unpack_req_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce86066d lustre_msg_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcec513c9 RQF_MDS_UNPIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xced015be sptlrpc_rule_set_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9963db lustre_msg_get_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9aab6a RQF_MDS_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd001be33 ldlm_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd0f60b3a ptlrpcd_alloc_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd1f78d1f client_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd250c64f ldlm_register_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2983334 lustre_swab_swap_layouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2e0d4eb lustre_msg_get_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd348e851 req_capsule_client_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd3dae408 ldlm_it2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd507151a sptlrpc_cli_ctx_expire +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd537ded2 lustre_swab_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd55618c4 _ldlm_lock_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd67a5d7b lustre_swab_update_reply_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd69e0a27 RQF_MDS_IS_SUBDIR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6c3ebfb RMF_FIEMAP_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6c99d11 req_capsule_server_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd7910326 lustre_swab_obd_statfs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8b91b3e lustre_swab_lov_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8f06300 RQF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd91ca15f lustre_pack_reply_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd9561861 RQF_LDLM_INTENT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xda2ac111 sptlrpc_proc_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb1fb0a2 RQF_MDS_REINT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb9d5a6a lustre_swab_niobuf_remote +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdcf910b9 lustre_swab_ost_last_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd0ffb04 sptlrpc_flavor2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd30d7bf RMF_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xddc40a85 lustre_msg_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde12d36b RMF_MDS_HSM_ARCHIVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde555d70 sptlrpc_enc_pool_del_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdee87192 sptlrpc_conf_log_update_begin +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf095b7b ptlrpc_stop_all_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf53e88e ptlrpc_prep_bulk_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf701ae7 lustre_swab_fid2path +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe036cca1 ldlm_pool_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0cc694c RQF_LLOG_ORIGIN_HANDLE_NEXT_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0e1e9c3 client_import_del_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe2d50cd4 req_capsule_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe40e0a50 lustre_msg_get_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe57bd972 sptlrpc_current_user_desc_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe5e8169b lustre_errno_ntoh +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe643998e RQF_OST_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6f0dc96 RQF_OST_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7062b5f RMF_U32 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7512278 ptlrpcd_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe78ea3e1 sptlrpc_req_replace_dead_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7c1d6df ptlrpc_restart_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabaa0b1 lustre_swab_mdt_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabac4fc sptlrpc_rule_set_merge +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xebb64e68 req_layout_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xebc039cc sptlrpc_gc_del_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xebeec1de sptlrpc_lprocfs_cliobd_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec226f66 ping_evictor_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec8e6bcc ldlm_lock_allow_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec939a00 RQF_MDS_REINT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xecace5c1 RQF_OST_GET_INFO_GENERIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed06b5a9 client_disconnect_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed1c10d6 ptlrpc_connection_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed5483fa ptlrpc_nrs_policy_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xedcb740d sptlrpc_name2flavor_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef1aeca9 RMF_FLD_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xefa83332 lprocfs_wr_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0241d6e lustre_swab_hsm_progress_kernel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0d52b5f ptlrpc_pinger_suppress_pings +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf1300275 _sptlrpc_enlarge_msg_inplace +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf177e7f9 lprocfs_wr_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf277c125 RQF_OST_GET_INFO_FIEMAP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf27d49dc sptlrpc_target_choose_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf32f65c5 ldlm_resource_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf35f132b lustre_swab_ldlm_resource_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf37105da ptlrpc_cleanup_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf3d44370 RQF_OST_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf43540b9 lustre_swab_mgs_nidtbl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf43f0702 ptlrpc_unregister_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf45085e1 sptlrpc_conf_log_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf55c033b RMF_MGS_CONFIG_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf560e144 ptlrpc_replay_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf584a16b sptlrpc_part2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf596e9ae sptlrpc_conf_log_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf5c5629d ptlrpc_unregister_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf607fc23 sptlrpc_flavor2name_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf617ab8a lustre_msg_get_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf66e5b63 ptl_send_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf6932c24 ldlm_cli_update_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf697b756 ldlm_dump_all_namespaces +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf6ee04ac ptlrpc_invalidate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7408f84 lustre_swab_hsm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf766c2fb ldlm_cli_cancel_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7ba40c0 RMF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf85cb27e sptlrpc_parse_rule +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf870fed9 RQF_LDLM_GL_DESC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9051bd6 RQF_QC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf94e41e0 deuuidify +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf952f336 sptlrpc_cli_ctx_wakeup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf973aa93 lustre_swab_lov_user_md_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9b9781f ptlrpc_req_finished_with_imp_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9ee11e2 lustre_msg_set_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9f72dfc RMF_TGTUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa51688d interval_insert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfafff3e4 ldlm_lock_fail_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfb444a98 ptlrpc_prep_fcset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfc2fa83f ptlrpc_del_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfcf620bd req_capsule_set_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd148bf8 RMF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd75b89d llog_client_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfdc9ac48 sptlrpc_import_sec_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfdcd5134 sptlrpc_gc_add_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfebae4b7 ldlm_namespace_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfed9ea62 ldlm_extent_shift_kms +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff02a0e9 ldlm_lock_set_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff1f41a2 ldlm_cli_enqueue_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff2b5341 ptlrpc_prep_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffafe873 lustre_free_reply_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffc807e8 sptlrpc_unpack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffe29c3f RQF_LDLM_ENQUEUE +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0xff0c8215 cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x0ac3a521 go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x26fc8a2e go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x5188aa77 go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x7ddbf8be go7007_snd_init +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x83ce757e go7007_snd_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xa19fcec7 go7007_update_board +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xc9ebbcb8 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xdfeac4e3 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xf33dbc91 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0bdfff95 rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0f20a3f6 rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x140fcdce rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x154b1020 rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1a76488a rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x21cc44ff rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2de8086c rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x301ad974 rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x317ef5bb rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3e729d03 rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4123f4e6 rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4bcc1acb rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4eb4a9eb rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4ee58959 Dot11d_Channelmap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x50df1c04 rtllib_wpa_supplicant_ioctl +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x51a6f362 rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5724463a HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x617ecca7 rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x64d3556b rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6e40a2b4 dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x710fc6bb rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x719afb35 rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x79399649 rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7a9309ae rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7aae8fd3 rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x826a646a rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8faa46ad free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x92398f8d rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9b6ce8ba rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9c388eaa rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa5557929 rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa5c0725b rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb01cd777 rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb2b4a85e rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb3aeea4f rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbdb8c0e6 rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe1420f2 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc2170a56 rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc2729cb6 rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc3733367 RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc41ea049 rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc6b873c9 rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xcfcaf856 rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd285b24a rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xda9c132a rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdcd13d2c rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf78f620 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe28b9543 rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf6553cf3 rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfb3c7482 alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfb94f8d3 notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfc6619a7 rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x06850f10 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x07b0c75a ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0b3b632b ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1b7a04c2 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2524b513 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2b3c0f4b ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2c7f5c03 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2fb4eafd notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3380afe1 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x42b64f6f ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4669df77 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4844da49 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x513977c0 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5ce00b29 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5d5dba0d ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5e14438c ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x61e7d604 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x62a30032 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x65855b52 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6a60be2d DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6ec371c7 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x74ecc466 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x764762d5 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x76898cbd ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x77220f1e ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7d0cc7b0 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7dde6907 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x86048253 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8a29f952 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9209e8c0 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x93c8878b ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x97123414 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x98b33658 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xab364bd0 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xacae52dc ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb9b73298 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbe6ce667 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc1781177 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc1f7bae7 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc348ed10 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc3bd4b20 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc6e85234 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc9ad049d ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcf7b91c7 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd14bbdbf ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xded157e2 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe218a8f2 ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe38128d5 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe7b5a615 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe8940a62 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xec560cf5 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xee1dc324 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xef7cfda7 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf17513fc ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf791e95d ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xff3967f4 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0017f35f set_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x00ea0cde set_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x06d6f244 get_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x09df8f3e set_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0a8d32c3 get_bypass_slave_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1936264c set_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1d2eb8ca get_tap_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x203af1f7 reset_bypass_wd_timer_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2070f14a set_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x27b990ef get_bypass_info_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2ba7cd35 get_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2c3f1c17 get_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2f59e636 get_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2fdb893a get_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x361cf40a get_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x45ca99c3 set_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x550a188c set_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x5cb59e92 get_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x66b60122 set_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x675208c0 set_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x692623f2 get_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x75131ec6 set_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x76c0b7d0 set_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e872825 get_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e8d701e get_wd_expire_time_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x86388b07 get_bp_disc_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x93ae4648 get_wd_set_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x95e42b0d is_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9df5f807 set_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9e21f42e set_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xa689a214 get_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xae117788 get_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xc368d30d get_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xccab5de0 get_bypass_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd3e034b3 get_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9c1ccfc get_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9d38d97 set_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xe640f06e set_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xecdaa456 set_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xedcd3c1b get_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf06d67bf set_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf57c1671 get_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf693c3a1 bp_if_scan_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf8237882 get_bypass_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xfa59240d get_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05af3c4c set_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05b08a42 set_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0b0d5ce0 get_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0fc2e83c reset_bypass_wd_timer +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x123a8133 get_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x157ec89c get_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2440f05a get_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2b01d1d4 set_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2c27a2f0 set_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2da97f4b is_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2e86c67b get_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37416370 get_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37bdab27 get_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x3da96a18 get_bypass_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4025805e get_bypass_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4940a0cc get_bypass_info +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4d21ff51 get_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5147360c get_bp_disc_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x515d4df1 get_bypass_slave +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5560267e set_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5be44d44 set_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6653590c get_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6bda14ec get_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x72c618ae set_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x76d47e6f set_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x794e3815 set_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x7c6cbc16 get_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x84a263dc set_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x8a16f22c set_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x946ff795 get_wd_set_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x94f6aff2 get_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x9d1ecf73 set_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xb1385629 set_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xbff68c45 set_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xc871c561 get_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xcee528df set_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd202dd85 get_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd787f151 get_wd_expire_time +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xdb6a39d2 get_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xebd25ae5 get_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf1e9f8c1 set_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf224abd9 get_tap_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf5a591b2 set_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf643fd4c get_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x1ff56d2b xillybus_endpoint_remove +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x25978d50 xillybus_isr +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x57099f76 xillybus_init_endpoint +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0xb1c724e4 xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0xff333597 xillybus_do_cleanup +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00b14c6b iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x014cde9b iscsit_handle_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x1342a5c3 iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x159f7233 iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x1b1f114c iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x25a62e49 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x294f4db8 iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2ec20518 iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4626a81d iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x56496ac3 iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x676f8401 iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x68a4345d iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7433fbb1 iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7d315a1f iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x883052ce iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8932717e iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8954c8b3 iscsit_set_unsoliticed_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8f9343fa iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x94b444c9 iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa5645ff4 iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa8837d1b iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb2394c5e iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbbabac64 iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbf6471bc iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbf7f46bc iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xcbb3bcff iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe4bc2f80 iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf907c144 iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/target_core_mod 0x012093dd spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x02150174 target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x0323e968 spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x0ac84afc transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x0c8a7f45 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x117861b4 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x16e82060 target_get_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x1812a744 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x1ca7f003 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x215f280c spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x2a975d00 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x2e992dac fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x3113e431 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x32299f95 transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0x323fdaae transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x4b14ec57 core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x4e52f495 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x4fd6f799 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x50a3342e fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x512cd968 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x55b75d7d target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x5d6c209c fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x5e5fd325 sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x63f193cc sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0x68fd2408 target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x69037919 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x697c6d65 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x6bae2d60 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x6d79729b target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x6e7dfab3 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x7287ac1d sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x76813504 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x7ad7c839 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x824777aa fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x831e9895 target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x85cf8c3b __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x94141866 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x94b812f0 target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0x9e8f63af target_submit_cmd_map_sgls +EXPORT_SYMBOL drivers/target/target_core_mod 0xa177fad4 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xa39778a5 target_setup_cmd_from_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xa6e5ccc7 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0xa7d9098d spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0xaa5745f6 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0xb08e3350 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xb841fd53 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xbe633499 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xc3c6d549 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xc4d9bff4 target_sess_cmd_list_set_waiting +EXPORT_SYMBOL drivers/target/target_core_mod 0xc5e9348f core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xc63ced9b iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xcaee6e7b transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xcbf61161 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0xcd5f0526 target_put_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xd1c29662 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xd28b063a transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xd639b254 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xd77c97fe transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0xd7f0b7f3 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xd9af3152 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0xd9ea0896 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xda76e1aa transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0xeb0b3f63 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xeb94cc00 transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf41d2038 transport_init_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0xf4bf3e83 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf8ad0469 iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf975ae3a target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xfbb491da target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0xff0c4f1d sbc_execute_unmap +EXPORT_SYMBOL drivers/target/target_core_mod 0xffb7dccd transport_subsystem_register +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0xcbf13ff1 usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0xefc355d9 unregister_gadget_item +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x07ecc5bb gether_get_host_addr_cdc +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x150b6700 gether_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x47a9961a gether_register_netdev +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x725004ef gether_setup_name +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x79ca19ab gether_set_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x7d1a0d92 gether_get_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x87c33237 gether_setup_name_default +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8878cfa6 gether_cleanup +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8beba98e gether_set_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x97b80674 gether_connect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x9dab24b9 gether_get_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xa75e459d gether_get_ifname +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xb0734cfc gether_set_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xf518c383 gether_get_host_addr_u8 +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xf9ae1244 gether_set_gadget +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xfe57259d gether_get_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x274fff65 rndis_set_param_dev +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3a6d4f22 rndis_free_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3ca38e3a rndis_signal_connect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3d14899a rndis_rm_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x4ca90996 rndis_signal_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x5d22b406 rndis_register +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x785d494b rndis_msg_parser +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x840dd143 rndis_deregister +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x988ad2a2 rndis_set_param_vendor +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x9acf72e4 rndis_set_param_medium +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x9e3e1061 rndis_add_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xa90054ee rndis_uninit +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xb971ebca rndis_get_next_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xd2fe47b1 rndis_set_host_mac +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x02a315db fsg_lun_open +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x103cccca fsg_store_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x135b0261 fsg_show_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1710b539 fsg_fs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1b1cc3af store_cdrom_address +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x2933ee1d fsg_ss_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x398778e1 fsg_ss_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x423845e4 fsg_ss_bulk_in_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x56344daf fsg_hs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x615be5b3 fsg_store_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x6a840900 fsg_show_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x857b6dc2 fsg_hs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x86e2a49b fsg_lun_close +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x8b26eaab fsg_lun_fsync_sub +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x95cffb3e fsg_hs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x97925679 fsg_store_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x9978dd87 fsg_show_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5cae92f fsg_ss_bulk_out_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5f99b69 fsg_fs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb52ba28a fsg_intf_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb54d0d95 fsg_fs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb5a1ee22 fsg_store_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xc087a6ee fsg_show_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xce9665a2 fsg_show_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xef493149 fsg_store_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf4efc0c8 fsg_ss_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_rndis 0x17ff4fa6 rndis_borrow_net +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x39d43078 sl811h_driver +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0295d734 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x04f5a022 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2baecd00 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x36b0e992 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x385ee1b3 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x39042f04 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3d7a0f1f usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5a6e2bdb usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x76446ea2 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xbac62f66 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xea0add91 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xec492d49 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xfc01c725 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x1ebd6e61 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x61f0fbc5 usb_serial_suspend +EXPORT_SYMBOL drivers/vhost/vringh 0x0dda8c5a vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1f063017 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x2eae4a2a vringh_getdesc_user +EXPORT_SYMBOL drivers/vhost/vringh 0x36dfce73 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3b304ebb vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3eaf442a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3fa42e4f vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x4311cd91 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5dafbd4e vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x66af098b vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x6d0e7948 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x76bd9a5d vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x97fa07e9 vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xaf8e4a0e vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xafb47dae vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc884d704 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc8bee0a4 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xda4ea4cc vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xde804bb9 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x1a6f5981 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x6ec4ae5f devm_lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x740f65f2 devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xd2b48969 lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x7e171837 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xc56f4c2b matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xd8ae347d g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xeeffda4c matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x1a973c69 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x50931f58 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xb33cebc4 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xc429bfec matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0xacb6a47b matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x57ea7460 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x22e62b17 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xacaaf8b7 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xc5266f6f matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xd944ba08 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x09467658 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x45f35f62 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x1ed19f89 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xa0c34f6d matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xa46c1706 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xae229cd5 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xd3ef4982 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0xe67fc395 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x16326e4a video_output_unregister +EXPORT_SYMBOL drivers/video/output 0x8fcc96a3 video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x218ab3a1 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x31cd13c4 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x6e4adb1e svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x8c4bcf7f svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x8de63fb4 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0xba10ea56 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xea8cae70 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf0999d6c svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xf2db5956 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xf3eeb2b2 svga_get_caps +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/virt/fsl_hypervisor 0x45fd1882 fsl_hv_failover_unregister +EXPORT_SYMBOL drivers/virt/fsl_hypervisor 0x77c9b191 fsl_hv_failover_register +EXPORT_SYMBOL drivers/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/vme/vme 0x0c6bdc3f vme_master_read +EXPORT_SYMBOL drivers/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/vme/vme 0x1d02a926 vme_dma_list_add +EXPORT_SYMBOL drivers/vme/vme 0x20df5a3d vme_dma_pci_attribute +EXPORT_SYMBOL drivers/vme/vme 0x240610a4 vme_dma_request +EXPORT_SYMBOL drivers/vme/vme 0x2878f9b1 vme_bus_type +EXPORT_SYMBOL drivers/vme/vme 0x2fe61291 vme_unregister_bridge +EXPORT_SYMBOL drivers/vme/vme 0x31b65ed6 vme_irq_free +EXPORT_SYMBOL drivers/vme/vme 0x31ecb777 vme_irq_handler +EXPORT_SYMBOL drivers/vme/vme 0x3e95083c vme_slave_get +EXPORT_SYMBOL drivers/vme/vme 0x40c02e17 vme_master_request +EXPORT_SYMBOL drivers/vme/vme 0x46649cd1 vme_lm_set +EXPORT_SYMBOL drivers/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/vme/vme 0x4baf35a7 vme_master_get +EXPORT_SYMBOL drivers/vme/vme 0x50c04cc7 vme_slot_get +EXPORT_SYMBOL drivers/vme/vme 0x52983a4f vme_master_write +EXPORT_SYMBOL drivers/vme/vme 0x52e062ce vme_register_bridge +EXPORT_SYMBOL drivers/vme/vme 0x535c8308 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/vme/vme 0x5aff4177 vme_lm_get +EXPORT_SYMBOL drivers/vme/vme 0x6c2ea203 vme_dma_list_exec +EXPORT_SYMBOL drivers/vme/vme 0x79a33f85 vme_get_size +EXPORT_SYMBOL drivers/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/vme/vme 0x847f70bc vme_slave_request +EXPORT_SYMBOL drivers/vme/vme 0x852961f0 vme_register_driver +EXPORT_SYMBOL drivers/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/vme/vme 0x9fd6fd57 vme_dma_list_free +EXPORT_SYMBOL drivers/vme/vme 0xa2a335bd vme_alloc_consistent +EXPORT_SYMBOL drivers/vme/vme 0xa31bdf07 vme_master_set +EXPORT_SYMBOL drivers/vme/vme 0xa365eb1b vme_irq_request +EXPORT_SYMBOL drivers/vme/vme 0xa7917aed vme_irq_generate +EXPORT_SYMBOL drivers/vme/vme 0xaac35cee vme_new_dma_list +EXPORT_SYMBOL drivers/vme/vme 0xca5ee09a vme_free_consistent +EXPORT_SYMBOL drivers/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/vme/vme 0xe2c8b537 vme_lm_request +EXPORT_SYMBOL drivers/vme/vme 0xe8e309ca vme_unregister_driver +EXPORT_SYMBOL drivers/vme/vme 0xefd1624a vme_dma_free_attribute +EXPORT_SYMBOL drivers/vme/vme 0xf5a10e25 vme_slave_set +EXPORT_SYMBOL drivers/vme/vme 0xfacd8e72 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x594766cd w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x982e55c4 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xb67f604a w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xf6a72f77 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x1128502b w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xe35762c5 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x465ff6e7 w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x568d383c w1_ds2781_io +EXPORT_SYMBOL drivers/w1/wire 0x5c87f09f w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x7a97433f w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x992d8f6e w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xe2b44029 w1_register_family +EXPORT_SYMBOL fs/btrfs/btrfs 0x27476846 ulist_reinit +EXPORT_SYMBOL fs/btrfs/btrfs 0x41e6a9d2 ulist_init +EXPORT_SYMBOL fs/btrfs/btrfs 0x7e2ee765 ulist_free +EXPORT_SYMBOL fs/btrfs/btrfs 0xa2eec2e8 ulist_fini +EXPORT_SYMBOL fs/btrfs/btrfs 0xb1320bc8 ulist_add +EXPORT_SYMBOL fs/btrfs/btrfs 0xb42289d2 ulist_alloc +EXPORT_SYMBOL fs/btrfs/btrfs 0xc2c745db ulist_next +EXPORT_SYMBOL fs/configfs/configfs 0x125f2479 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x176df893 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x1cfc292a config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x24d2b7ac configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x6788af69 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x7c1498c9 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x84f6e974 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x9c329c72 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xaffd2542 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0xc3b8699c config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xe1b9e2b8 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xf8f5bd77 config_group_init_type_name +EXPORT_SYMBOL fs/exofs/libore 0x09c8f619 ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x34b70b3a ore_create +EXPORT_SYMBOL fs/exofs/libore 0x3a766897 ore_read +EXPORT_SYMBOL fs/exofs/libore 0x4527e170 ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x4f61774b ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0x89416a54 ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0x8ffce281 ore_write +EXPORT_SYMBOL fs/exofs/libore 0x993b8a2a ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xd339c522 ore_remove +EXPORT_SYMBOL fs/exofs/libore 0xd3eddc57 ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0xee850146 extract_attr_from_ios +EXPORT_SYMBOL fs/fscache/fscache 0x0629b519 __fscache_check_consistency +EXPORT_SYMBOL fs/fscache/fscache 0x0b4ab2ec fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x0f24cac5 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x18899a5d __fscache_wait_on_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x1ed3f5a1 __fscache_readpages_cancel +EXPORT_SYMBOL fs/fscache/fscache 0x1ff07b48 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x2625e0ed fscache_object_destroy +EXPORT_SYMBOL fs/fscache/fscache 0x2b30b3d7 __fscache_disable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x2e98797d fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x3065681a fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x373a7778 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x3942560b __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x39b18d48 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x3d7e294e __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x48819c67 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x4d33951a __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x5bb6bf72 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x6d4be79b __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x72453d95 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x78de94f4 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x7a7370f8 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x80eba023 fscache_op_complete +EXPORT_SYMBOL fs/fscache/fscache 0x85e502ef __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x8d66d06a fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x94eee6fe fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x9e742531 __fscache_enable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xb6ae6c9d __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xb79b60bb fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xb9f2c7c2 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xbf633410 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xc7b3e600 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0xdab5a631 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xdec5138d fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xdf4b18bc fscache_mark_page_cached +EXPORT_SYMBOL fs/fscache/fscache 0xe27492b0 fscache_object_init +EXPORT_SYMBOL fs/fscache/fscache 0xeca52dfe __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0xfa478216 fscache_mark_pages_cached +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xa0f4b528 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0xb25b2957 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0xe13337f0 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x7dfad61e qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x8102a671 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x8a5684c3 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xa59dbdfd qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xfe686e2d qtree_release_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x1a703ba1 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x6d356209 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc7 0x6c1f6fee crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd09b2cba crc8 +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x075e51fa lc_del +EXPORT_SYMBOL lib/lru_cache 0x0a791f37 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x38e98b01 lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x3aebca20 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x5ce38c7f lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x685c14b0 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x702b6f49 lc_put +EXPORT_SYMBOL lib/lru_cache 0x8c21fdc7 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x8d7f0a81 lc_set +EXPORT_SYMBOL lib/lru_cache 0x98ada376 lc_committed +EXPORT_SYMBOL lib/lru_cache 0x9dd0b07e lc_find +EXPORT_SYMBOL lib/lru_cache 0xa08057ee lc_try_lock +EXPORT_SYMBOL lib/lru_cache 0xa73e2215 lc_get_cumulative +EXPORT_SYMBOL lib/lru_cache 0xc8497f6a lc_create +EXPORT_SYMBOL lib/lru_cache 0xc88f82dd lc_is_used +EXPORT_SYMBOL lib/lru_cache 0xe66a1b75 lc_reset +EXPORT_SYMBOL lib/lru_cache 0xf4122c19 lc_get +EXPORT_SYMBOL lib/lz4/lz4_compress 0x0c222eb5 lz4_compress +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x682a23e0 lz4hc_compress +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0x7456cc61 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/raid6/raid6_pq 0xd9e91f83 raid6_vgfmul +EXPORT_SYMBOL net/802/p8022 0x0df323bf unregister_8022_client +EXPORT_SYMBOL net/802/p8022 0xfd1e5db1 register_8022_client +EXPORT_SYMBOL net/802/p8023 0x379dabed destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0xf8072f1d make_8023_client +EXPORT_SYMBOL net/802/psnap 0x1358f4a0 register_snap_client +EXPORT_SYMBOL net/802/psnap 0xfbbf7f13 unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x035e055f p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x0e22272e v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x139dcea7 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x16cf02e1 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0x17c4a9f1 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x18465b8f p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x24c88d96 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x2728cb3d p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x27cff02a p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x2f7572ed v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x2fb2e9ad p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x312dca86 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x33138a9e p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x36175592 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x3aeaa2d6 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x3c7e9932 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x44d2c2c0 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x4a8ce637 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x5bd14b45 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x5d1a37ac p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x5eca0d13 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x6072081e p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x79690e8a p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x85d6b3db p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x90537e62 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x989ea449 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xa3531807 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0xa9b7187b p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0xac39e19b p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xbe8895f2 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xc70ac93b p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0xcec2196b p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xd14ec592 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xd25bebe7 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0xdc4c2bfa p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe8aeef67 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0xe9453d47 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xec9b73d6 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0xf2f10da6 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xf3ad9311 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf7a8448f p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xf87ed60e p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xfd3675f8 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0xfde2beb5 p9_client_attach +EXPORT_SYMBOL net/appletalk/appletalk 0x017b86b8 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x182f959e aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x28a3aa6c atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x799038f6 atalk_find_dev_addr +EXPORT_SYMBOL net/atm/atm 0x078f6fef atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x12c8eea0 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x160a30e5 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x3a8668c1 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x6c914544 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x76b8f041 atm_charge +EXPORT_SYMBOL net/atm/atm 0x77e5fead vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0x8c9fd483 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x93b673ea vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xb713712d atm_dev_register +EXPORT_SYMBOL net/atm/atm 0xca87b453 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xedeb3fe7 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xedef5a18 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf905c148 vcc_insert_socket +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x187e9efc ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x2c38572c ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x3afee63e ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x4d26c281 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x5866ce18 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x75ba9e6e ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xa3201f8e ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xaa34bfda ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0xb8aabcee ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xe320bf26 ax25_header_ops +EXPORT_SYMBOL net/bluetooth/bluetooth 0x016ba146 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x03f7c35f l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0e8403ec l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0eb8411a l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1622528c bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x23f89b2e hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x24dffce8 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x256eb7ad hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x272b235d hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x340cfa49 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x35c74a6a l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b48d43f hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3d5a9ce6 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x418c0121 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x46078061 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4cc919e5 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4db34be8 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x556763e2 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x56f36efe hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6332f0ee bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0x72303a89 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c640527 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8a0e6b06 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa345cac2 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa53b8969 bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaf6f0d5f bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb61a0c3b bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb875a09e bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc1e89fc3 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc738897a __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc8612959 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcb3e38ca bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd47cdfeb hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd69088b2 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdc2077b7 l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe6c11539 bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf39690ab hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf7ec4bcf __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf998590c bt_sock_wait_ready +EXPORT_SYMBOL net/bridge/bridge 0xe6ac02cc br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x5e454595 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x6c76a1f4 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9b088315 ebt_do_table +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x38701a7c cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x47385b63 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x6a44fc70 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x7c876fba caif_enroll_dev +EXPORT_SYMBOL net/caif/caif 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x966d7de2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xac46db17 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0xadb8beae caif_connect_client +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/caif/caif 0xbab47df8 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/can/can 0x734e2678 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x7a61dae3 can_ioctl +EXPORT_SYMBOL net/can/can 0x7c90bf57 can_proto_register +EXPORT_SYMBOL net/can/can 0xcc46e6b7 can_proto_unregister +EXPORT_SYMBOL net/can/can 0xd06714f3 can_send +EXPORT_SYMBOL net/can/can 0xd7200460 can_rx_register +EXPORT_SYMBOL net/ceph/libceph 0x02334441 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x0305c928 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x04a4c71d osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0x06e01351 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x087bbf96 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0a3b2e84 ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0x0c1651eb ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x0c7d035e osd_req_op_watch_init +EXPORT_SYMBOL net/ceph/libceph 0x0d61c270 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x0e5a713c ceph_auth_create_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x10c1a6a6 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x1475bf0d ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x174e2042 osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x20d151cb ceph_osdc_setup +EXPORT_SYMBOL net/ceph/libceph 0x24f01fb7 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x269abb07 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x28eb1135 osd_req_op_cls_response_data +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3df0ec7c ceph_calc_ceph_pg +EXPORT_SYMBOL net/ceph/libceph 0x3f688151 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x4205ffd7 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x43efd647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x45c40ef7 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x4a283545 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x4cd38495 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0x4d625724 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x570ceb67 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x5728bdf0 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5ab46ff6 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x5b15f920 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x5c4c263b ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x6418cc7d ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x69127f37 osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x6b2e3bcd ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x6bac9b72 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x6bb53955 ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0x6c5d5ac1 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x6f8631b1 ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x7168baf8 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0x72539719 osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x76cf5a95 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x79ac62cd osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0x7c101a45 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x7c91c081 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x80e572dc ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x81eae1b6 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x838b7dff ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x85366b39 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0x899578b0 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x8b5ddee7 ceph_auth_update_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x8b8324f7 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x8d46209e ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x91c6a279 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x941d3410 ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x96d75c15 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x99de4738 ceph_messenger_init +EXPORT_SYMBOL net/ceph/libceph 0x99e36571 ceph_osdc_cleanup +EXPORT_SYMBOL net/ceph/libceph 0x9de91138 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0x9e233644 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa008c595 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xaa0e5544 osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xac6d748d ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0xad5e6e95 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0xae3515ba ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb59fe558 osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb7d76e80 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0xbc0ff4df ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0xbc3c4840 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc55de604 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcf71f192 ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd438cb18 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0xd5ad099d ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xd5d79604 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0xdb4fd0c2 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xdccea048 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xdfa47a5b ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0xe26b9d2b ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0xe52499d6 osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0xe799ddfc ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xe82c9c32 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0xed229339 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0xf27083a9 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0xf3fec4f4 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xf4890654 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xf5774cba ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0xf710dc57 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xfe65e267 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0xfeed75a8 osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x0900c218 dccp_syn_ack_timeout +EXPORT_SYMBOL net/ieee802154/ieee802154 0x0b37f9da wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x196a09a5 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x56073b2f ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x64e939b1 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x95d99708 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x972a4e5a ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9a646aa3 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9c0499d9 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0xab21f096 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb144a970 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb2343721 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc0790fa6 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf399b18f ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x3c4184eb arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xe4526048 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xea5549f0 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x244ed762 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x78279b43 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xbe442da0 ipt_register_table +EXPORT_SYMBOL net/ipv4/tunnel4 0xe7be0a00 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xf1696bba xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x1515cc9c ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xf8eec01f ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x1a045694 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x4d01d581 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xef221d4e ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x877b8b9c xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0xe15f71f4 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x8fbc8092 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9fe00b3d xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x04e4d040 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x22b567ad ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5b9caa08 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x623c8aae ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xac74b80c ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbb252874 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbfb30b78 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe696d575 ircomm_connect_request +EXPORT_SYMBOL net/irda/irda 0x0064e0ea hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x01664c55 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x15adb41c irlap_open +EXPORT_SYMBOL net/irda/irda 0x1e6cade0 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x2140cb1a alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x21e20b2e iriap_close +EXPORT_SYMBOL net/irda/irda 0x247779e4 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x33cbe2c6 proc_irda +EXPORT_SYMBOL net/irda/irda 0x3aeb5cbe irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x3e56064f hashbin_new +EXPORT_SYMBOL net/irda/irda 0x3e9a648b irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x52dc191f irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x5ded88ee irttp_dup +EXPORT_SYMBOL net/irda/irda 0x601bda46 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6b5fbcef hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x6e0ab3c7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x6f3a462c async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7e60bc33 iriap_open +EXPORT_SYMBOL net/irda/irda 0x85d88217 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x8a39ba3f irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x8afa0fb8 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x8b236a2d irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x916bb392 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x91ce965a irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x98884815 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9a71ece5 irlap_close +EXPORT_SYMBOL net/irda/irda 0xa161ae39 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xa1d41e58 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xa703c225 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0xaa557515 irias_new_object +EXPORT_SYMBOL net/irda/irda 0xb40c5832 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc60b3b7e irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xc68e43be irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0xcead7dbb hashbin_find +EXPORT_SYMBOL net/irda/irda 0xd046a934 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0xd2108314 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe3463529 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xe3bde43e irias_insert_object +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf0a694a1 irias_find_object +EXPORT_SYMBOL net/irda/irda 0xf5876b95 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0xf742b1f9 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0xfe1755df irlmp_disconnect_request +EXPORT_SYMBOL net/l2tp/l2tp_core 0xc16f0d30 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x1235ce71 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x2a0a785b lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x4f513160 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x5ec47fd3 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x68f8f5ab lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x9d1c508a lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xcd1df073 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xf97569ee lapb_setparms +EXPORT_SYMBOL net/llc/llc 0x22b8cc97 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x4a6ec486 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x4acc1c81 llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0x4f4757ff llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x72925563 llc_sap_find +EXPORT_SYMBOL net/llc/llc 0xbb3c7305 llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0xc35e28f7 llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0xe183813c llc_add_pack +EXPORT_SYMBOL net/mac80211/mac80211 0x009376f2 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x03a0aa83 ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x057f6631 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x066d12f5 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x1337f5d9 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0x144d2b8e rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x1d86aaeb __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x210a6c60 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x21a2ae71 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x24dcab0d ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x27760dbd ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0x2e44fcec __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x30cd0f98 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x33f6c33a ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x36add335 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x3b69dac0 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x4281471d ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x47aa31b6 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x4a9c583d ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x4b4be04a ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x4bcd7bca wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x4c220bdf ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0x545951cd ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x57b15fe3 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x5a4ed491 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x68828b7b ieee80211_csa_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x6a3db273 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x6a44f4c0 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x7320f289 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x78b76081 ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x79487319 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x7c9e1d34 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x7ca2332b ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0x7ede5028 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x85dd9ed7 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x8d7ec1b1 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x91f0c17d ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x92a78c90 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x97d38b26 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x9c006c4a ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x9c5e6334 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0xa0173e80 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xa1fc36c4 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa6efb0b0 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xa76c0a5e ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xa8f79221 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xaa30eae6 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xaaf326ee ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xad486812 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xb38880ff __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xb7b4e08c ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xb8b5ad5a ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xbb6c3198 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xbbda8c69 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0xbc9749bc ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xbcca5bbb ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0xc0924e7c ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc30d2e0e ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xc681dc4d ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xca46ec56 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xcccafe99 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xcd2670d3 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xd326d4de ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xd99ac09e ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xdabc2e5c ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe9042bdf ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xeecb599e ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0xf395de03 ieee80211_aes_cmac_calculate_k1_k2 +EXPORT_SYMBOL net/mac80211/mac80211 0xfe687043 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0x08688edc ieee802154_register_device +EXPORT_SYMBOL net/mac802154/mac802154 0x34ea2fbf ieee802154_unregister_device +EXPORT_SYMBOL net/mac802154/mac802154 0x4749a306 ieee802154_alloc_device +EXPORT_SYMBOL net/mac802154/mac802154 0x55285b13 ieee802154_free_device +EXPORT_SYMBOL net/mac802154/mac802154 0x858f84ae ieee802154_rx_irqsafe +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x164119d3 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x282cd5d5 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x30031bce ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x38f059ea ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3ef39605 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3f68af16 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5c4a2066 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5d7b35a0 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x83ce68da ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa000f74a unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xadd59ee8 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb2de63f4 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb8d2600d register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xefd434cc ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x1fab4ba2 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x48bd5fa7 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xb087c07c __nf_ct_ext_add_length +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x827cc6a1 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x45545592 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/nf_nat 0x16f4c558 nf_nat_used_tuple +EXPORT_SYMBOL net/netfilter/nf_nat 0x1ed1be77 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x496960d7 nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0x5faa81bf nf_xfrm_me_harder +EXPORT_SYMBOL net/netfilter/nf_nat 0x90cc0c63 nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0xb197b8f6 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x0af30091 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x2161c074 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x253e8b44 xt_compat_init_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x2b9e2aad xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x7db6e4a4 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x8cccac0d xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xab9abf10 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xc19a39d5 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xc431bcfb xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xe00e41c9 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xe38fd18c xt_unregister_targets +EXPORT_SYMBOL net/nfc/hci/hci 0x204189f1 nfc_hci_send_response +EXPORT_SYMBOL net/nfc/hci/hci 0x22788500 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x2f7e6509 nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x43028a27 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x461da213 nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0x4e542abe nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0x4e7f6031 nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0x7c94897e nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x7d9d1fdc nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x7dd7c961 nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0x80bd3b07 nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0x8c1ced27 nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x984df95d nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0xa9ad09c4 nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0xaf4f0d54 nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0xb272c14a nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0xbca0b4fd nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xbfcbb339 nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0xe70e42ff nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0xf1168856 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x5d60f03d nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x81d8c950 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0x973c6a9e nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xb3da3a9c nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xcf6e6ddb nci_recv_frame +EXPORT_SYMBOL net/nfc/nfc 0x0def459f nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0x1bdb985d nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x22b4042c nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x35c4f148 nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0x41dee761 nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0x41fbce8b nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x4c287e12 nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0x59d7537c nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0x616fec99 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x62a4470e nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x6de7c164 nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0x736aa863 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0x89ea703f nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0xa319a85e nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0xc38d9ab6 nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0xd3d18950 nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0xeab24f13 nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0xf516185d nfc_class +EXPORT_SYMBOL net/nfc/nfc 0xf9a95755 nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0xfbd4e518 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x22e25ada nfc_digital_unregister_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x2766ee36 nfc_digital_register_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x8a62fcfb nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xaa9d7252 nfc_digital_free_device +EXPORT_SYMBOL net/phonet/phonet 0x21d87f8b pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x3dfcfa8b pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x56410b54 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x9e7bb808 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xc3deb603 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xdd519b89 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xe212c265 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xe4c5acc3 pn_sock_hash +EXPORT_SYMBOL net/rds/rds 0x7505d413 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x042da57a rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x28da39c8 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4a83a86c rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x56a9d5ce rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5f4f99ef rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x665d7d3a key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6dcd82ba rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8a390739 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb6fa9154 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc0bf4107 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd14fad44 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe0e6e29b rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe44abcac rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe6493531 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf6d8c2c3 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/sctp/sctp 0xe6bd0ff8 sctp_do_peeloff +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x37764f0a gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x6cf981da gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xdf550fbe gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/sunrpc 0xdb36aa6c svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0x4221ef5e wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0x9d08ec21 wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x03dcbef1 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x06a9ec61 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x07d2104a cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x085c8bc8 cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0c2e7c32 cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0x0dcf1723 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x14d0b3d7 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x17054510 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19e03378 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x1f89a5a0 cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x215d3af6 cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x28962697 cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0x2911de4c cfg80211_roamed_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x2d6555e3 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x3803d6fb cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x3b3a9c8c cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x3bdf4e77 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x3c5d12a4 cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x3fe3cc48 cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x406a8302 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x41169b6b cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x45e37939 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x46498cd3 cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x4a381ab9 cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0x4bffa392 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x4c3b5878 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x4c40b2fb ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x549ae50f ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x578317e8 cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x590f3014 cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x5eca1cf2 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x6120ca7a wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x6215cf62 cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6d6cb9ad ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x6e32849e cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x78c235f5 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7a96663c __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x7af557f2 cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x85ad9baa cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x873b6bab cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x8bfe1b1a cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x99a1d4cb cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x99dc8df5 cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x9be671f4 cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0x9ecf021e cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xa1067f6e wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xa1425906 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa1e7592f cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xa31692fd cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xa4870d94 cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xa4eee31e cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0xa6dafbd2 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xa80ddb31 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0xa8ad98f2 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xa9928b5d cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xadb7582c cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0xaf412184 cfg80211_report_obss_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0xb7b65941 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xb9986eba cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0xbeca4cac cfg80211_inform_bss_width +EXPORT_SYMBOL net/wireless/cfg80211 0xc15c8611 cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc91c914f cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xcedf1033 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xcf618a57 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0xd6de0d0e cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xd770d99f wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xdb538945 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xdba126c1 reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0xdd609bb1 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xe69842e1 cfg80211_inform_bss_width_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xee42db3c cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xf161fecc wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xf56f20fd wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xf643c7d8 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xf6d1500d cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xf7cae28c freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xf8fc8140 cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x2a0bd20e lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x32efe5a7 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x34ed8546 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x68ebadfe lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xc27f48f3 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xd38e1d03 lib80211_crypt_info_init +EXPORT_SYMBOL sound/ac97_bus 0x056f9d15 ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x5c425916 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xaf82bb51 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb2d3dc64 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xceb994cd snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xaef66002 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xdbdb5617 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x072d978b snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x13a17752 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2eed26bf snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x4d5ca523 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x592f6e9b snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd7c7afcc snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe60fb228 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xecbde43c snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x8da56615 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x06be6c38 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x106e15f0 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x1b09bc7b snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x2084438a snd_cards +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x2aaa3206 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x2c6dae6a snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x2d309eaa snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x342a2354 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3a3c4179 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x46ddce8d snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4b015768 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x4e476c89 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x5873cdec snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x5a13b7a1 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x5ce18c32 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x5f44ce74 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x5f4f1079 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x61352cf4 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x671e14fd snd_card_register +EXPORT_SYMBOL sound/core/snd 0x6de0e671 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x7f0eca0b snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x8b96697b snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x8c07a620 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x8fd5c2c1 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x9205789e snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x9bbe83ee snd_device_free +EXPORT_SYMBOL sound/core/snd 0x9c3c2788 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xaaf53f5a snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xafa7d990 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xb075aa70 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb77d7808 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xba1a3905 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0xbb5eac98 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xbf4079c8 snd_card_create +EXPORT_SYMBOL sound/core/snd 0xc21783d5 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xc543a264 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xc7962990 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xc9bd453e snd_jack_report +EXPORT_SYMBOL sound/core/snd 0xcb7dde7b snd_card_unref +EXPORT_SYMBOL sound/core/snd 0xcbe88fc5 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0xcd4dcd0b snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0xd79034a8 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0xdd61b844 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0xddb2efb7 snd_card_free +EXPORT_SYMBOL sound/core/snd 0xe4b8967a snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xe5c328d0 snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xe717068d snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xf82776e7 snd_info_register +EXPORT_SYMBOL sound/core/snd 0xfe1b294f snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xfffd89db copy_from_user_toio +EXPORT_SYMBOL sound/core/snd-hwdep 0xee79d262 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x06b310c9 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x23c91437 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x375d6d15 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x5898dcba snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x822d97d5 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xaabd9bdd snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xdc89079f snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x057ae72d snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x127bb272 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x137b6e73 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0x15322ae7 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1d30f795 snd_pcm_debug_name +EXPORT_SYMBOL sound/core/snd-pcm 0x1f4f817a snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x1ffcca0b snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x2f8e9caf snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x36e91911 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x400c34f9 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x4410bd38 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x449d28ef snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0x47de7bb2 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x5cf63335 snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x722f7d56 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x7edb7079 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x8032fada snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x807c3f0b snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x81f91753 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x8298e0b0 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x834dc955 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x8bba46d5 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x8ee7490d snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x8f06e72f snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x9252475d snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x931c54b6 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x94098ff8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0x95fb5926 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x9eeee054 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0xa30986ee snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xab5bcc3b snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xab8c391d snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xb18a4e68 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbe1b5e7e snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0xc99bdba5 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xcd653317 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xd57376b7 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0xd5fb21a2 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xd943f0ba snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xe1a4cfa9 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe997187d snd_pcm_new_internal +EXPORT_SYMBOL sound/core/snd-pcm 0xeab1f3a5 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xebffbad2 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xec26c436 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xf24ae1e5 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf7d1ab49 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0940f83e snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0df7c32b snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x118c7412 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2daaf00f snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4206580b snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x47b8b03d snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4a6293a9 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4e0d0ae8 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x75666ae6 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x764dc162 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9bc2c245 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9db74966 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xbf56c67b snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xca6db42f snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdf72fe63 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf1733bed snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf8fa435f snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-timer 0x06119107 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x07a72420 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x595ff903 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x76264b33 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x91539fda snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x930d4078 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0xab3d3c94 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xac756074 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xb72158ad snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0xc1841047 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0xc1f4e4aa snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0xd8055278 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0xfecb614e snd_timer_global_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x5977a4b2 snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2496da9c snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x24ced481 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4bc500d2 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x53b2bdcb snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5c1cfc09 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8216aa3a snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd14b48b9 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe7b5c3fc snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xfad96aee snd_opl3_reset +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0464d5a5 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x12902b1f snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x26411dc8 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x291edeb5 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x2b010bee snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6f45c15b snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x76aa92f3 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc08348d3 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc1c3470b snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x076561aa cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1c1b299c iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1e649426 amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x20254e45 amdtp_syt_intervals +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2ba91843 fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3a6589e8 fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3b42723a snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3cbf0aab fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x44b99a5b fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x46931e09 amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4e907237 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6edeacd4 cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x71acf806 iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x801ba21e amdtp_out_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x9703fda2 cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa2be949c cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xaf359b13 amdtp_out_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb2128ec4 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb725bde6 cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xc86ad33a amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd2039983 amdtp_out_stream_pcm_pointer +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xde063645 amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe1974310 amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe6cc99fb amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf11005cb amdtp_out_stream_set_parameters +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf30bd4f1 amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf379dd3c fw_iso_resources_update +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x5cac9764 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x776cabe8 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x7bbbb1b8 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa361472e snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xb52cc2cf snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xd929491d snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x57112021 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x7ad0b2fd snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x99ad2471 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xa0d32ad0 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xc92d5a0c snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xf5b7ab3c snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x03a9a365 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x32e0a4f4 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xbff9657a snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xdffb5e14 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x30363390 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x4fb2ee49 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x257c92b8 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x329efaee snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x3dfa349f snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x40fb5745 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xdad384d8 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-i2c 0x2947eedb snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x422035f9 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x70e53b9d snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xdc8842ac snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0xdf524d9e snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0xe00e1561 snd_i2c_bus_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x09829bb2 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x6fdfae72 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x741cd65c snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x78e0f682 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x7e515841 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x974b5ca1 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa24f195c snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xef1a2fd8 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf5d1d96c snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xfcc77873 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x29bb27e6 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x3cd82c9b snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xdbbd08c0 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe0b3f690 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x07c55711 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1c0825f8 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2024d493 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x30c36e81 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3149b468 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x37948d8a snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3bfb2b10 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3ce8f79b snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3d9d6af7 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4baf425c snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x697c45bc snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x758b7925 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x91021739 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9ea3a437 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xed7cf29d snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf2f2f36e snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf34a2e38 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x16f53a94 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1a4bd0ce snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x5bb651d3 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x65d39849 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x81b4970c snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xaa050f42 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xcc360d4c snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf352e1fd snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xfa192a47 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x28261219 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x3257c3d4 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xe9fd444f snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x14ea0f30 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x213a77eb oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x463d8984 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x524d101a oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x55e0cede oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5c7e5191 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x645f9420 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6ef0aad8 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x781d4ae4 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x79496359 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x95f2a3f3 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9efc1cb1 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa5c2d795 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xacc0a3e4 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb20121a1 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc148ff14 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd233b4ce oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe9a223ee oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf08d1e42 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x93fb53c0 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x9ee57c23 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xac271de4 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xbae6673c snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xd54b9a19 snd_trident_stop_voice +EXPORT_SYMBOL sound/soundcore 0x58e8a5cc sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x067725c9 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x4e163d81 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x603a2220 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xc13fd829 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xd621736e snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xde472531 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x002ae9b5 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x05b2f824 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x10ca5833 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7138b0c1 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xbb150440 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xc4d3674f __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xca22c430 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xed8a9edf snd_util_mem_alloc +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xadaaf5db snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 __symbol_put +EXPORT_SYMBOL vmlinux 0x00000000 current_fs_time +EXPORT_SYMBOL vmlinux 0x00000000 d_tmpfile +EXPORT_SYMBOL vmlinux 0x00000000 do_sync_read +EXPORT_SYMBOL vmlinux 0x00000000 filp_close +EXPORT_SYMBOL vmlinux 0x00000000 finish_open +EXPORT_SYMBOL vmlinux 0x00000000 generic_getxattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_write_sync +EXPORT_SYMBOL vmlinux 0x00000000 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x00000000 in_group_p +EXPORT_SYMBOL vmlinux 0x00000000 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x00000000 iov_shorten +EXPORT_SYMBOL vmlinux 0x00000000 iterate_fd +EXPORT_SYMBOL vmlinux 0x00000000 ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 path_is_under +EXPORT_SYMBOL vmlinux 0x00000000 register_exec_domain +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout +EXPORT_SYMBOL vmlinux 0x00000000 sock_register +EXPORT_SYMBOL vmlinux 0x00000000 sys_close +EXPORT_SYMBOL vmlinux 0x00000000 task_nice +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x00000000 vm_brk +EXPORT_SYMBOL vmlinux 0x0012ce23 i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0x0019ed59 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x003d6e54 inode_reclaim_rsv_space +EXPORT_SYMBOL vmlinux 0x0060e91b fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x0065d958 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x00706548 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00ccb670 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x00cf4a7f of_get_parent +EXPORT_SYMBOL vmlinux 0x00d3d345 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x00d9b0ca km_state_expired +EXPORT_SYMBOL vmlinux 0x00db2005 __ps2_command +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0101d5b1 ip_idents_reserve +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x011c1c55 block_read_full_page +EXPORT_SYMBOL vmlinux 0x012a97fc xor_altivec_4 +EXPORT_SYMBOL vmlinux 0x0131e07d cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x0151fec7 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x016f79ff mmc_of_parse +EXPORT_SYMBOL vmlinux 0x0178f7f2 md_register_thread +EXPORT_SYMBOL vmlinux 0x018c07ac seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x019e7765 __init_rwsem +EXPORT_SYMBOL vmlinux 0x01a09250 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x01b7b877 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x01c53e60 genphy_resume +EXPORT_SYMBOL vmlinux 0x01c8e84d ida_simple_get +EXPORT_SYMBOL vmlinux 0x01d9b132 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x01f1907e may_umount +EXPORT_SYMBOL vmlinux 0x01fb18b1 unregister_key_type +EXPORT_SYMBOL vmlinux 0x020af127 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x021b748f __inet6_hash +EXPORT_SYMBOL vmlinux 0x0257c1fc dev_disable_lro +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0274d05b of_get_ddr_timings +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x028ac3ca netdev_features_change +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02bdd284 mutex_lock +EXPORT_SYMBOL vmlinux 0x02beda28 twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x02ce56f1 qdisc_watchdog_schedule_ns +EXPORT_SYMBOL vmlinux 0x0305ccc5 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x0309a64c blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x031e6d78 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x03223ace sock_wmalloc +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x03350c70 seq_open_private +EXPORT_SYMBOL vmlinux 0x03584ba5 km_new_mapping +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x035abc6b iget_failed +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x0388aac1 mmc_stop_bkops +EXPORT_SYMBOL vmlinux 0x03977ea4 tty_name +EXPORT_SYMBOL vmlinux 0x03b02ecf scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03cc1a18 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x03ebda85 dns_query +EXPORT_SYMBOL vmlinux 0x03f7502e __inode_permission +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04074f48 ioremap +EXPORT_SYMBOL vmlinux 0x0413f1e7 try_to_writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x044785cd __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x045dd425 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x0497e586 key_validate +EXPORT_SYMBOL vmlinux 0x04a184e1 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x04ceae91 nf_nat_decode_session_hook +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04ea5d10 ksize +EXPORT_SYMBOL vmlinux 0x04ed5bd2 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x050950cf scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x0530dede _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x053f430b pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x055a5929 agp_bridge +EXPORT_SYMBOL vmlinux 0x055c8559 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x05930d1e should_remove_suid +EXPORT_SYMBOL vmlinux 0x0593a99b init_timer_key +EXPORT_SYMBOL vmlinux 0x059dca01 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05f0f694 module_put +EXPORT_SYMBOL vmlinux 0x0604dca8 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x06060688 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x06139cba compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0617dfa5 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x061e6857 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x06489d52 bman_rcr_is_empty +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06807c96 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x06bbb24a mempool_resize +EXPORT_SYMBOL vmlinux 0x06c298f5 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x06c5e1c8 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x06c9b1b9 kernel_connect +EXPORT_SYMBOL vmlinux 0x06dff9ba kmem_cache_free +EXPORT_SYMBOL vmlinux 0x06e2d6f2 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x06f08422 d_move +EXPORT_SYMBOL vmlinux 0x06f2f0c8 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x06fc115f ip6_expire_frag_queue +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x07025862 devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x070bbcaa pci_map_rom +EXPORT_SYMBOL vmlinux 0x070f49cf sg_miter_start +EXPORT_SYMBOL vmlinux 0x071a914d dev_trans_start +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x0727ee31 free_user_ns +EXPORT_SYMBOL vmlinux 0x074e9213 down_killable +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x079d3b93 is_bad_inode +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07aab233 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x07b0b870 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07ce18d2 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x07e2b8e6 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x07e3340c skb_copy_expand +EXPORT_SYMBOL vmlinux 0x07e3802b kill_bdev +EXPORT_SYMBOL vmlinux 0x07f6c9f0 soft_cursor +EXPORT_SYMBOL vmlinux 0x07fff7cb fsl_lbc_ctrl_dev +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083b3bd3 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x083c2cbe of_get_next_parent +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x08589c39 padata_add_cpu +EXPORT_SYMBOL vmlinux 0x0866b052 set_page_dirty +EXPORT_SYMBOL vmlinux 0x089590fc kfree_skb_partial +EXPORT_SYMBOL vmlinux 0x0899521b abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x08b70ac6 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x08b92617 tc_classify +EXPORT_SYMBOL vmlinux 0x08cc84e7 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x08f8a867 __devm_request_region +EXPORT_SYMBOL vmlinux 0x09196504 pcim_iomap +EXPORT_SYMBOL vmlinux 0x09480321 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x09542ee3 dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x096b661b qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x09828cc3 udp_seq_open +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x098ee974 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x09942094 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x09ad576b skb_append +EXPORT_SYMBOL vmlinux 0x09c3e687 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09db8217 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x0a03246b neigh_table_clear +EXPORT_SYMBOL vmlinux 0x0a10f3f5 from_kuid +EXPORT_SYMBOL vmlinux 0x0a2439c5 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a27c785 ether_setup +EXPORT_SYMBOL vmlinux 0x0a3cf62e ipmi_smi_add_proc_entry +EXPORT_SYMBOL vmlinux 0x0a702777 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x0a9f6d59 pme_attr_set +EXPORT_SYMBOL vmlinux 0x0aaad223 generic_removexattr +EXPORT_SYMBOL vmlinux 0x0abb43fa cdev_add +EXPORT_SYMBOL vmlinux 0x0abfdb06 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0accfacc pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0adf3dd2 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x0ae21812 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x0af12c47 udp_poll +EXPORT_SYMBOL vmlinux 0x0af499b5 make_kuid +EXPORT_SYMBOL vmlinux 0x0afc4f59 qman_enqueue_orp +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1131fc kmalloc_dma_caches +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b2acd81 sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0x0b2b8969 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x0b2be59a nobh_write_end +EXPORT_SYMBOL vmlinux 0x0b56117f of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x0b69cf94 dma_iommu_ops +EXPORT_SYMBOL vmlinux 0x0b724e3a inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b8bad8c input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0x0bbc5908 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bddb9cf crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x0bf2f3ee flush_icache_user_range +EXPORT_SYMBOL vmlinux 0x0bfdc925 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x0c40373e blk_start_request +EXPORT_SYMBOL vmlinux 0x0c40ceb8 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x0c45fc96 vfs_lstat +EXPORT_SYMBOL vmlinux 0x0c502b85 input_set_keycode +EXPORT_SYMBOL vmlinux 0x0c574fb7 sk_net_capable +EXPORT_SYMBOL vmlinux 0x0c58a8cd netdev_increment_features +EXPORT_SYMBOL vmlinux 0x0c5eb58c gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c6f459c xfrm_state_add +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c9598be blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x0c96da67 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cb5e8ed starget_for_each_device +EXPORT_SYMBOL vmlinux 0x0cbc1737 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x0cbe12d6 consume_skb +EXPORT_SYMBOL vmlinux 0x0cc42f98 iget5_locked +EXPORT_SYMBOL vmlinux 0x0cdb4957 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x0ce900af blk_finish_plug +EXPORT_SYMBOL vmlinux 0x0d4b0b0f pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0x0d4bef6f tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d5ae4d4 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x0d6c963c copy_from_user +EXPORT_SYMBOL vmlinux 0x0d87993e bio_phys_segments +EXPORT_SYMBOL vmlinux 0x0d9e1384 crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dc13651 validate_sp +EXPORT_SYMBOL vmlinux 0x0dd18679 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x0dded4d5 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x0de4321e input_set_abs_params +EXPORT_SYMBOL vmlinux 0x0de796b2 ip_route_input_noref +EXPORT_SYMBOL vmlinux 0x0e31fa00 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x0e3ba59f inet_ioctl +EXPORT_SYMBOL vmlinux 0x0e5adf0c mach_qemu_e500 +EXPORT_SYMBOL vmlinux 0x0e6da44a set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x0e720f7f mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x0e85f7f0 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x0e8f30f6 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x0eb5f6e3 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x0ede04d7 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x0eeecbbb blk_complete_request +EXPORT_SYMBOL vmlinux 0x0efc4488 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x0efcbb1b set_current_groups +EXPORT_SYMBOL vmlinux 0x0f03469f xfrm_input +EXPORT_SYMBOL vmlinux 0x0f08f967 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x0f0bc3ca iunique +EXPORT_SYMBOL vmlinux 0x0f0f2573 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x0f22c95a i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0x0f4c91ed ns_to_timespec +EXPORT_SYMBOL vmlinux 0x0f5faa7e wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x0f784a95 seq_escape +EXPORT_SYMBOL vmlinux 0x0f7c517a xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x0f8c0149 pme2_have_control +EXPORT_SYMBOL vmlinux 0x0f92ddcb dquot_file_open +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fbc3f5e tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x0fdca6a3 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x0ff970a3 qman_create_fq +EXPORT_SYMBOL vmlinux 0x10067f1f netdev_err +EXPORT_SYMBOL vmlinux 0x1006c617 security_mmap_file +EXPORT_SYMBOL vmlinux 0x1013814f kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x1040440c mntget +EXPORT_SYMBOL vmlinux 0x104944dd dev_get_by_name +EXPORT_SYMBOL vmlinux 0x104d1441 page_symlink +EXPORT_SYMBOL vmlinux 0x1061bcbe mmc_request_done +EXPORT_SYMBOL vmlinux 0x106fe937 save_mount_options +EXPORT_SYMBOL vmlinux 0x107c1f20 prepare_creds +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10ff4520 unlock_buffer +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x111762e5 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x115fc489 icmp_send +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x11827bae mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x1182d83a cpuidle_disable +EXPORT_SYMBOL vmlinux 0x118ee3f4 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x11b08b27 register_quota_format +EXPORT_SYMBOL vmlinux 0x11c9185c of_iomap +EXPORT_SYMBOL vmlinux 0x11d572ce key_alloc +EXPORT_SYMBOL vmlinux 0x11df6b80 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x1200b17e alloc_file +EXPORT_SYMBOL vmlinux 0x12028c3a simple_setattr +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x121a7d8e mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0x121fd225 sock_no_bind +EXPORT_SYMBOL vmlinux 0x122043a8 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x12395911 mount_single +EXPORT_SYMBOL vmlinux 0x124c63f6 from_kprojid_munged +EXPORT_SYMBOL vmlinux 0x1255923c bio_unmap_user +EXPORT_SYMBOL vmlinux 0x125e2419 nf_log_register +EXPORT_SYMBOL vmlinux 0x125fb167 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x12670380 sget +EXPORT_SYMBOL vmlinux 0x127168e1 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12bc927a of_phy_find_device +EXPORT_SYMBOL vmlinux 0x12d59c62 bio_alloc_pages +EXPORT_SYMBOL vmlinux 0x12dd0b2b skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x12dfeb12 vprintk_emit +EXPORT_SYMBOL vmlinux 0x13234d20 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x13307fde vsscanf +EXPORT_SYMBOL vmlinux 0x1348760d ipmi_request_settime +EXPORT_SYMBOL vmlinux 0x135c0827 arp_xmit +EXPORT_SYMBOL vmlinux 0x1369e399 vga_client_register +EXPORT_SYMBOL vmlinux 0x136d8908 clear_user_page +EXPORT_SYMBOL vmlinux 0x13848226 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x1384d0a9 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x13952912 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x13a901f7 mmc_start_req +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d68ce0 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x13d99362 netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0x13e38f5c up_read +EXPORT_SYMBOL vmlinux 0x141c4473 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x141c85d8 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x143683e7 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x145bbb11 tty_write_room +EXPORT_SYMBOL vmlinux 0x1478a8c6 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x147e87b1 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x148ed969 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x14b42ab0 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x14c3ce36 __napi_complete +EXPORT_SYMBOL vmlinux 0x14c7590d fget +EXPORT_SYMBOL vmlinux 0x14e5dab8 simple_rmdir +EXPORT_SYMBOL vmlinux 0x14f45fcc bman_free_pool +EXPORT_SYMBOL vmlinux 0x150454ae jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x150aa343 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x150fb16f blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0x151e710f blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x1535adff kern_unmount +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1561a4e0 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x15624a3b dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x15628235 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x1563f571 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x1569fa37 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x1575fb3c netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x157d0120 inc_nlink +EXPORT_SYMBOL vmlinux 0x15864b03 flex_array_get +EXPORT_SYMBOL vmlinux 0x158f72ec nf_log_unset +EXPORT_SYMBOL vmlinux 0x159c39da nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x15aaf827 write_one_page +EXPORT_SYMBOL vmlinux 0x15ae3a76 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x15d3fd60 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x15f571ec blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x1600f578 qman_retire_fq +EXPORT_SYMBOL vmlinux 0x160ac460 vmap +EXPORT_SYMBOL vmlinux 0x162901c4 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x16576e31 blk_make_request +EXPORT_SYMBOL vmlinux 0x167c5967 print_hex_dump +EXPORT_SYMBOL vmlinux 0x1687c341 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x16c37333 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL vmlinux 0x1743414f __debugger_fault_handler +EXPORT_SYMBOL vmlinux 0x17629d56 ata_dev_printk +EXPORT_SYMBOL vmlinux 0x17648396 dev_base_lock +EXPORT_SYMBOL vmlinux 0x179ce57e security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x17b1125d gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x17e28473 fsl_upm_run_pattern +EXPORT_SYMBOL vmlinux 0x17e2e803 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x17ec1747 nf_register_hook +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x180812a1 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x180ac69e __page_symlink +EXPORT_SYMBOL vmlinux 0x180d8b50 of_get_min_tck +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184378a0 __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x1857aa39 proc_dointvec +EXPORT_SYMBOL vmlinux 0x1870f8c1 qman_fqid_pool_alloc +EXPORT_SYMBOL vmlinux 0x187ec76a xfrm_register_type +EXPORT_SYMBOL vmlinux 0x187f1e79 compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0x188a3dfb timespec_trunc +EXPORT_SYMBOL vmlinux 0x188d212a xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x188d47a3 registered_fb +EXPORT_SYMBOL vmlinux 0x18955b68 tty_do_resize +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18be9234 dev_uc_add +EXPORT_SYMBOL vmlinux 0x18c09f60 d_find_alias +EXPORT_SYMBOL vmlinux 0x18fd4658 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0x19111a40 lockref_get_not_zero +EXPORT_SYMBOL vmlinux 0x19235ff2 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x193a69fc request_key +EXPORT_SYMBOL vmlinux 0x19444627 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x19686fbc kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x197e9bde proc_remove +EXPORT_SYMBOL vmlinux 0x19850ef5 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x199ec4fb arch_spin_unlock_wait +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19c2887c netdev_printk +EXPORT_SYMBOL vmlinux 0x19c4a951 dev_close +EXPORT_SYMBOL vmlinux 0x1a092b0a nf_log_set +EXPORT_SYMBOL vmlinux 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL vmlinux 0x1a111a41 ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x1a189840 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x1a1babac fbcon_rotate_ccw +EXPORT_SYMBOL vmlinux 0x1a1d26f5 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x1a277acc read_code +EXPORT_SYMBOL vmlinux 0x1a407802 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x1a6cdb68 napi_get_frags +EXPORT_SYMBOL vmlinux 0x1a6ee52a sk_run_filter +EXPORT_SYMBOL vmlinux 0x1a91d3b8 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x1a94d77f generic_file_mmap +EXPORT_SYMBOL vmlinux 0x1a9759ac iterate_supers_type +EXPORT_SYMBOL vmlinux 0x1aa23661 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL vmlinux 0x1ac5d3cb strcspn +EXPORT_SYMBOL vmlinux 0x1acb5d40 dscr_default +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad66b1f set_user_nice +EXPORT_SYMBOL vmlinux 0x1ad69e0e nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x1ada571c bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x1ae2083e agp_put_bridge +EXPORT_SYMBOL vmlinux 0x1aecba23 neigh_for_each +EXPORT_SYMBOL vmlinux 0x1af62a99 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b04c45a phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x1b132009 rename_lock +EXPORT_SYMBOL vmlinux 0x1b1e1088 sg_nents +EXPORT_SYMBOL vmlinux 0x1b353088 clk_register_clkdevs +EXPORT_SYMBOL vmlinux 0x1b48338e uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6b1a22 security_path_rename +EXPORT_SYMBOL vmlinux 0x1b772c08 inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x1b82fefa md_unplug +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb7ec53 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x1bba75a0 devfreq_add_device +EXPORT_SYMBOL vmlinux 0x1bbc874d try_module_get +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1bca2b59 load_fp_state +EXPORT_SYMBOL vmlinux 0x1bdae843 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x1bdc26cf sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x1be14d40 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x1be3e7c1 __inet_stream_connect +EXPORT_SYMBOL vmlinux 0x1bea4331 bio_map_kern +EXPORT_SYMBOL vmlinux 0x1bfc9524 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x1bfec830 __iounmap_at +EXPORT_SYMBOL vmlinux 0x1c012d33 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x1c09aba3 qman_static_dequeue_get +EXPORT_SYMBOL vmlinux 0x1c13e267 netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0x1c368f68 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x1c3e02e4 memcmp +EXPORT_SYMBOL vmlinux 0x1c4ac500 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x1c7ae5fe pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1ca5297c __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x1ca5dd1b qman_fq_state +EXPORT_SYMBOL vmlinux 0x1cb47884 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x1cc16760 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x1cd0d536 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x1cf6f5b8 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x1d0c64d3 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x1d25b397 giveup_fpu +EXPORT_SYMBOL vmlinux 0x1d424d71 blk_run_queue +EXPORT_SYMBOL vmlinux 0x1d95f4b7 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x1d96adb4 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x1da2f74b block_write_end +EXPORT_SYMBOL vmlinux 0x1db1e83a phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x1dbc4d0c proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd419c7 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dd8831f pme_ctx_init +EXPORT_SYMBOL vmlinux 0x1df8c5b4 neigh_update +EXPORT_SYMBOL vmlinux 0x1e110735 nf_afinfo +EXPORT_SYMBOL vmlinux 0x1e1fa6d2 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e2bb38e agp_enable +EXPORT_SYMBOL vmlinux 0x1e529103 km_state_notify +EXPORT_SYMBOL vmlinux 0x1e68f516 skb_orphan_partial +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e824e25 cont_write_begin +EXPORT_SYMBOL vmlinux 0x1e840ab0 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x1e85bf35 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ec3bed9 hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x1f306e9b pci_save_state +EXPORT_SYMBOL vmlinux 0x1f3e1354 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x1f4b1520 mmc_add_host +EXPORT_SYMBOL vmlinux 0x1f51f4eb netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x1f5ad908 pme_attr_get +EXPORT_SYMBOL vmlinux 0x1f615e8a __pci_register_driver +EXPORT_SYMBOL vmlinux 0x1f64b8fc skb_put +EXPORT_SYMBOL vmlinux 0x1f6ce67a sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x1f71585d dst_alloc +EXPORT_SYMBOL vmlinux 0x1fa2cd5c seq_write +EXPORT_SYMBOL vmlinux 0x1fb7a62e xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x1fbc8b5a inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fe912f1 netdev_alloc_frag +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x1ff11b44 __blk_end_request +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x200ce5ce max8925_set_bits +EXPORT_SYMBOL vmlinux 0x200d0f9c vfs_mkdir +EXPORT_SYMBOL vmlinux 0x20265352 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x2056b30e __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x2071dfdc qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x20724dce dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x207f2943 dma_set_mask +EXPORT_SYMBOL vmlinux 0x2082d262 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x208d8f10 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x208f9b97 complete_request_key +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20a86b3f of_get_pci_address +EXPORT_SYMBOL vmlinux 0x20b2bb2d param_array_ops +EXPORT_SYMBOL vmlinux 0x20b4e787 blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0x20bb61c7 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x20c55ae0 sscanf +EXPORT_SYMBOL vmlinux 0x20ec7190 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0x21345628 tcp_close +EXPORT_SYMBOL vmlinux 0x213d827d inet_addr_type +EXPORT_SYMBOL vmlinux 0x215706b2 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x2157452a gen10g_suspend +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x2164d0fc netlink_broadcast +EXPORT_SYMBOL vmlinux 0x217347d4 pci_get_device +EXPORT_SYMBOL vmlinux 0x217cefcd fb_pan_display +EXPORT_SYMBOL vmlinux 0x217fc2b1 write_inode_now +EXPORT_SYMBOL vmlinux 0x218c62fc wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x2195f1af phy_attach +EXPORT_SYMBOL vmlinux 0x21d5f213 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x21d9cedb of_phy_connect +EXPORT_SYMBOL vmlinux 0x21dbe1e7 compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x21e04390 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x2202dcea inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x22544981 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x2265b514 qman_get_portal_config +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2278e94b slhc_remember +EXPORT_SYMBOL vmlinux 0x22851cbf tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22b4b7c5 net_dma_find_channel +EXPORT_SYMBOL vmlinux 0x22bf28b5 put_page +EXPORT_SYMBOL vmlinux 0x22d73c62 bman_get_params +EXPORT_SYMBOL vmlinux 0x22f5107e fget_raw +EXPORT_SYMBOL vmlinux 0x22f90d22 padata_do_serial +EXPORT_SYMBOL vmlinux 0x23041c70 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x2316eaa2 netdev_change_features +EXPORT_SYMBOL vmlinux 0x2318dab7 invalidate_partition +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x233248f5 generic_readlink +EXPORT_SYMBOL vmlinux 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x234f5b16 ip6_route_output +EXPORT_SYMBOL vmlinux 0x235e90f3 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x2380318b agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x2381f41e ihold +EXPORT_SYMBOL vmlinux 0x2387b846 register_cdrom +EXPORT_SYMBOL vmlinux 0x23a477bc blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23c9891c kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x23ec1d78 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x23f2243d mempool_free +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x240f1dc9 register_netdevice +EXPORT_SYMBOL vmlinux 0x24130fea netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0x24212d86 __frontswap_invalidate_page +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2453d137 key_unlink +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245a5a94 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x2484adc3 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0x2484d1c2 udp_prot +EXPORT_SYMBOL vmlinux 0x24882299 vfs_readlink +EXPORT_SYMBOL vmlinux 0x24b0f90c of_clk_get_by_name +EXPORT_SYMBOL vmlinux 0x24c4df12 skb_trim +EXPORT_SYMBOL vmlinux 0x24e5aa34 fb_show_logo +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250fa1ee md_finish_reshape +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x2533dda1 bman_query_pools +EXPORT_SYMBOL vmlinux 0x257474de misc_deregister +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258cbfa5 register_qdisc +EXPORT_SYMBOL vmlinux 0x25909aca security_task_getsecid +EXPORT_SYMBOL vmlinux 0x25a16a5c blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25c8bbf2 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x25db6730 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x25e5bf5a tcp_prot +EXPORT_SYMBOL vmlinux 0x25e741f7 __ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x25eef5c8 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x260cf8f8 of_get_property +EXPORT_SYMBOL vmlinux 0x260e7893 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x261a481b skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x261c30e7 thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x2650d835 sysctl_ip_early_demux +EXPORT_SYMBOL vmlinux 0x2652b503 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x2656da09 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x2665d53a key_create_or_update +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x2699ccb8 devm_gpio_free +EXPORT_SYMBOL vmlinux 0x26a2fd97 mmc_free_host +EXPORT_SYMBOL vmlinux 0x26ad4654 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x26ae1cc8 elv_rb_del +EXPORT_SYMBOL vmlinux 0x26b760c4 slhc_init +EXPORT_SYMBOL vmlinux 0x26d246ce tcp_connect +EXPORT_SYMBOL vmlinux 0x26e497b5 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f0453a blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x26f637c1 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x27041bd7 ip_check_defrag +EXPORT_SYMBOL vmlinux 0x2712f4f5 crc32_le_combine +EXPORT_SYMBOL vmlinux 0x271ff65c scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x27208427 send_sig +EXPORT_SYMBOL vmlinux 0x27289609 ilookup +EXPORT_SYMBOL vmlinux 0x2748f4e6 dquot_initialize +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x2758a7c4 pipe_to_file +EXPORT_SYMBOL vmlinux 0x275e1afb key_link +EXPORT_SYMBOL vmlinux 0x27646df3 start_thread +EXPORT_SYMBOL vmlinux 0x27716364 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x27718ee2 sock_alloc_file +EXPORT_SYMBOL vmlinux 0x27763c35 dquot_acquire +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27b53139 pme_fd_cmd_pmtcc +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27bd6173 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x27bdbedf dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x27c7c815 simple_unlink +EXPORT_SYMBOL vmlinux 0x27db8910 dump_skip +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27e40751 vfs_statfs +EXPORT_SYMBOL vmlinux 0x27f2313e idr_replace +EXPORT_SYMBOL vmlinux 0x27fc2adb __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x281ba23f eth_type_trans +EXPORT_SYMBOL vmlinux 0x28318305 snprintf +EXPORT_SYMBOL vmlinux 0x285c3252 init_special_inode +EXPORT_SYMBOL vmlinux 0x2871d8cd xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x28993d23 keyring_search +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28a7dc88 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x28abfe6e scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x28b9236e sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0x28c313e5 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x28cf8900 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x295b918c request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x297c8652 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x297dbdbd pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x297ec56f serio_open +EXPORT_SYMBOL vmlinux 0x29889a2f input_set_capability +EXPORT_SYMBOL vmlinux 0x29a2f26e scsi_prep_return +EXPORT_SYMBOL vmlinux 0x29a35ac1 bio_copy_user +EXPORT_SYMBOL vmlinux 0x29a67db1 bman_recovery_cleanup_bpid +EXPORT_SYMBOL vmlinux 0x29c6850d abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x2a225a96 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x2a23dc7a __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a3c6286 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x2a4013e7 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x2a690be8 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2aa7f86a remove_arg_zero +EXPORT_SYMBOL vmlinux 0x2aaab954 __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0x2acf0feb vfs_fstat +EXPORT_SYMBOL vmlinux 0x2b024525 of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0x2b0b4a7e abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b20fdb0 nf_log_packet +EXPORT_SYMBOL vmlinux 0x2b2c0b7b ppp_dev_name +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b39aee0 bman_release +EXPORT_SYMBOL vmlinux 0x2b3cfc39 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x2b7c2c68 sk_wait_data +EXPORT_SYMBOL vmlinux 0x2b8981fa of_dev_put +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb89fe1 dm_kobject_release +EXPORT_SYMBOL vmlinux 0x2bdd6e28 node_states +EXPORT_SYMBOL vmlinux 0x2be0f12d dql_completed +EXPORT_SYMBOL vmlinux 0x2be5dcaf rtnl_create_link +EXPORT_SYMBOL vmlinux 0x2be83f39 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x2bf663b3 dma_pool_create +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c4f13b0 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x2c76f882 vfs_rename +EXPORT_SYMBOL vmlinux 0x2c778c8a input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x2c7b1fca down_timeout +EXPORT_SYMBOL vmlinux 0x2c900d91 cpufreq_put_global_kobject +EXPORT_SYMBOL vmlinux 0x2ca95a28 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x2cb7e05b inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x2ccf1094 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x2cd8d2ac pci_set_master +EXPORT_SYMBOL vmlinux 0x2ce4339f uart_register_driver +EXPORT_SYMBOL vmlinux 0x2cf5b985 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x2cf73cb7 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x2cfb8378 qman_stop_dequeues +EXPORT_SYMBOL vmlinux 0x2d01092f inetdev_by_index +EXPORT_SYMBOL vmlinux 0x2d03c10d posix_acl_create +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask +EXPORT_SYMBOL vmlinux 0x2d434561 kobject_del +EXPORT_SYMBOL vmlinux 0x2d4fa92a dev_get_by_index +EXPORT_SYMBOL vmlinux 0x2d571a37 bdevname +EXPORT_SYMBOL vmlinux 0x2d596581 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x2d7bf8d6 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d8ffe13 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x2d9a3a5f fail_migrate_page +EXPORT_SYMBOL vmlinux 0x2daaaba9 param_get_byte +EXPORT_SYMBOL vmlinux 0x2daed75d __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x2dc77b7e __free_pages +EXPORT_SYMBOL vmlinux 0x2de60b4d inet_sendpage +EXPORT_SYMBOL vmlinux 0x2deda4a1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x2e0d2f7f queue_work_on +EXPORT_SYMBOL vmlinux 0x2e115746 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x2e128535 md_check_recovery +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e2b40d2 strncat +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e3a5ee8 mpage_writepages +EXPORT_SYMBOL vmlinux 0x2e48bdcf qman_poll_dqrr +EXPORT_SYMBOL vmlinux 0x2e4bb65d __cleancache_get_page +EXPORT_SYMBOL vmlinux 0x2e4effcb pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x2e6c65a4 generic_writepages +EXPORT_SYMBOL vmlinux 0x2e717e53 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x2e81224a seq_lseek +EXPORT_SYMBOL vmlinux 0x2e888ae3 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x2e965d43 phy_disconnect +EXPORT_SYMBOL vmlinux 0x2eadf9e6 tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0x2eb146a2 blk_put_queue +EXPORT_SYMBOL vmlinux 0x2ebecb96 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x2ed45920 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x2edd248d __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x2ee5a204 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x2eeb16d1 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2ef7a4ce vfs_open +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f06bdd3 irq_to_desc +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f3e42ec irq_stat +EXPORT_SYMBOL vmlinux 0x2f4cd222 freeze_bdev +EXPORT_SYMBOL vmlinux 0x2f5a3360 udp_del_offload +EXPORT_SYMBOL vmlinux 0x2f88c5b3 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x2fa32bc4 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x30244106 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x302a20ee locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x30618b22 dm_io +EXPORT_SYMBOL vmlinux 0x3072e189 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x308c7e73 security_path_symlink +EXPORT_SYMBOL vmlinux 0x30928b7d dqput +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30b4f5e0 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x30b8b35c cpu_to_chip_id +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30e3dcdf redraw_screen +EXPORT_SYMBOL vmlinux 0x310226b1 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x3102d70b frontswap_curr_pages +EXPORT_SYMBOL vmlinux 0x312596d4 skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x31639f9c dqget +EXPORT_SYMBOL vmlinux 0x318cadb1 reciprocal_value +EXPORT_SYMBOL vmlinux 0x319e0726 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x31a90cc3 rtmsg_ifinfo +EXPORT_SYMBOL vmlinux 0x31ae8fb6 of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0x31b17592 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x31bf7a31 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x31d50207 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x31d61e9a cur_cpu_spec +EXPORT_SYMBOL vmlinux 0x31e6d422 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x31ec9885 find_lock_page +EXPORT_SYMBOL vmlinux 0x31f7d40a pme_fd_cmd_fcw +EXPORT_SYMBOL vmlinux 0x32075f44 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x3222c6a3 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x3227a3da i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x322f48d4 abx500_dump_all_banks +EXPORT_SYMBOL vmlinux 0x32424b34 qman_query_wq +EXPORT_SYMBOL vmlinux 0x3268b98b generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x3270edec tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x32747ea0 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x327bf883 of_can_translate_address +EXPORT_SYMBOL vmlinux 0x3284c88d tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x32860d7e qman_fqid_pool_free +EXPORT_SYMBOL vmlinux 0x32867b74 qman_fq_fqid +EXPORT_SYMBOL vmlinux 0x32be703f compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x32dd307d napi_gro_frags +EXPORT_SYMBOL vmlinux 0x32dee3f7 pid_task +EXPORT_SYMBOL vmlinux 0x33259cd7 scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x33292b91 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x333c9f3b padata_alloc +EXPORT_SYMBOL vmlinux 0x333cb37c __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x334dfff2 fs_bio_set +EXPORT_SYMBOL vmlinux 0x33850927 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x33aa48f2 qman_static_dequeue_del +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33ba5cd4 param_ops_bool +EXPORT_SYMBOL vmlinux 0x33c70b06 devm_ioremap_prot +EXPORT_SYMBOL vmlinux 0x33c7435c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x33d24531 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x33d94289 textsearch_register +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33f0dc53 skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0x33f48bce input_reset_device +EXPORT_SYMBOL vmlinux 0x33fcf44a __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x33ff4896 lro_flush_all +EXPORT_SYMBOL vmlinux 0x34138164 key_invalidate +EXPORT_SYMBOL vmlinux 0x34184afe current_kernel_time +EXPORT_SYMBOL vmlinux 0x342ff02d ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x3433084b iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x3433afa1 names_cachep +EXPORT_SYMBOL vmlinux 0x343b2ec9 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x3452d29b udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x345eaf10 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x346c4ded rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x3471a130 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x347eb9bd param_set_bool +EXPORT_SYMBOL vmlinux 0x3490d456 pci_target_state +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a9ec3d tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x34b09eee writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x34b645de kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x34f2729c blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x353734ed get_write_access +EXPORT_SYMBOL vmlinux 0x3539f11b match_strlcpy +EXPORT_SYMBOL vmlinux 0x358d5b32 vfs_fsync +EXPORT_SYMBOL vmlinux 0x35ab8dd0 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x35ba7272 uart_resume_port +EXPORT_SYMBOL vmlinux 0x35c32767 xor_altivec_2 +EXPORT_SYMBOL vmlinux 0x35d3a695 pci_disable_device +EXPORT_SYMBOL vmlinux 0x35defc50 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x360d0a42 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x36405df2 blk_mq_map_queue +EXPORT_SYMBOL vmlinux 0x364bf58d __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x364cef81 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x366385eb pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x3678c08e max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x36812618 pci_request_regions +EXPORT_SYMBOL vmlinux 0x368382e2 of_get_named_gpiod_flags +EXPORT_SYMBOL vmlinux 0x369e1115 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x36b0e732 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x36bd681b groups_alloc +EXPORT_SYMBOL vmlinux 0x36be1e47 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x36c735ad kset_unregister +EXPORT_SYMBOL vmlinux 0x36d7b11a of_find_matching_node_and_match +EXPORT_SYMBOL vmlinux 0x36dfea73 nf_reinject +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36f8f374 proc_create_data +EXPORT_SYMBOL vmlinux 0x370d8c87 seq_path +EXPORT_SYMBOL vmlinux 0x37106fdf blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x37331b46 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x37344510 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374a7eb7 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x375ddad4 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x3771abe4 flush_tlb_mm +EXPORT_SYMBOL vmlinux 0x379ea978 pci_dev_get +EXPORT_SYMBOL vmlinux 0x37a4b08c kvm_read_guest_atomic +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37fb32d4 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x380ef3b0 agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x381bcf6e generic_file_llseek +EXPORT_SYMBOL vmlinux 0x3836535f mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x383c577f tcf_hash_release +EXPORT_SYMBOL vmlinux 0x38867def skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38935850 ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x389ad85b ab3100_event_register +EXPORT_SYMBOL vmlinux 0x38a2c442 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38c0ec9d pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x38c395b1 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x39008662 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x39104757 dev_mc_init +EXPORT_SYMBOL vmlinux 0x391c844a blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x392c41e6 __ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x392e117d scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x394aee52 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x394d22a1 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x3955fcf6 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x3989ced0 __register_binfmt +EXPORT_SYMBOL vmlinux 0x399ad043 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x39a78cec pci_release_region +EXPORT_SYMBOL vmlinux 0x39b17682 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x39cdf63c wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x39d8e4cd gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x3a01235f input_grab_device +EXPORT_SYMBOL vmlinux 0x3a1eb7e1 tty_hangup +EXPORT_SYMBOL vmlinux 0x3a20ff73 __crc32c_le +EXPORT_SYMBOL vmlinux 0x3a31b045 vlan_untag +EXPORT_SYMBOL vmlinux 0x3a3a8ca4 handle_edge_irq +EXPORT_SYMBOL vmlinux 0x3a3df71f bdgrab +EXPORT_SYMBOL vmlinux 0x3a3ef769 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x3a520608 inet_frags_init +EXPORT_SYMBOL vmlinux 0x3a70bbf7 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x3a884af4 lro_receive_skb +EXPORT_SYMBOL vmlinux 0x3a8d455f eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x3a96f240 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3abe5519 inode_init_owner +EXPORT_SYMBOL vmlinux 0x3acb6679 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x3aec220e mmc_gpio_free_ro +EXPORT_SYMBOL vmlinux 0x3b36fe3d pme_hw_residue_new +EXPORT_SYMBOL vmlinux 0x3b5ca5be default_llseek +EXPORT_SYMBOL vmlinux 0x3b5f21e8 register_netdev +EXPORT_SYMBOL vmlinux 0x3b615a21 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x3b817765 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x3ba86d72 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd6fdf2 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x3bd75b15 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x3bda75c2 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x3be55cba phy_start_aneg +EXPORT_SYMBOL vmlinux 0x3be63500 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x3be7f27a padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x3be8a8c1 __skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x3bee2134 contig_page_data +EXPORT_SYMBOL vmlinux 0x3bef03b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x3c02f4ec phy_init_eee +EXPORT_SYMBOL vmlinux 0x3c246daf dquot_resume +EXPORT_SYMBOL vmlinux 0x3c34b7ee mem_cgroup_subsys +EXPORT_SYMBOL vmlinux 0x3c42031c ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x3c53f95b dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x3c729063 from_kuid_munged +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3c9d9a6e jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x3cc4b0dc lg_lock_init +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d248b6e scsi_device_resume +EXPORT_SYMBOL vmlinux 0x3d41904f of_get_next_child +EXPORT_SYMBOL vmlinux 0x3d5844b3 strnicmp +EXPORT_SYMBOL vmlinux 0x3d59f66c mach_corenet_generic +EXPORT_SYMBOL vmlinux 0x3d61cd06 tty_lock +EXPORT_SYMBOL vmlinux 0x3d6851ba scsi_register_driver +EXPORT_SYMBOL vmlinux 0x3da06876 tty_devnum +EXPORT_SYMBOL vmlinux 0x3da4d777 pme_ctx_is_dead +EXPORT_SYMBOL vmlinux 0x3da5f4ef d_prune_aliases +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3df4e4ba netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e04e5fe secpath_dup +EXPORT_SYMBOL vmlinux 0x3e159086 md_write_end +EXPORT_SYMBOL vmlinux 0x3e4b0bed tty_unregister_device +EXPORT_SYMBOL vmlinux 0x3e73e396 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e8dc829 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ea79235 serio_close +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f1a7f27 scsi_execute +EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f5049b5 skb_split +EXPORT_SYMBOL vmlinux 0x3f5be401 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x3f9b746b __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x3fd55724 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL vmlinux 0x3fe2ccbe memweight +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ff8069b tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x3ff8e495 lg_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x40032723 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x402062f5 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x402a69da eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x40337fa2 __memcg_kmem_get_cache +EXPORT_SYMBOL vmlinux 0x404066c5 idr_for_each +EXPORT_SYMBOL vmlinux 0x4056e208 sk_dst_check +EXPORT_SYMBOL vmlinux 0x40594000 inet6_add_offload +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40682d4a block_write_full_page +EXPORT_SYMBOL vmlinux 0x40734fdf genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40b57158 pme_initfq +EXPORT_SYMBOL vmlinux 0x40b9b80d sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x40c01859 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40c96488 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL vmlinux 0x40f5a995 kernel_listen +EXPORT_SYMBOL vmlinux 0x41289d16 dev_printk_emit +EXPORT_SYMBOL vmlinux 0x412b573b mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x412dd67d tcp_gso_segment +EXPORT_SYMBOL vmlinux 0x41352e00 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x41434dbb dquot_enable +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414edc5e dev_set_mtu +EXPORT_SYMBOL vmlinux 0x4159c38f ioremap_wc +EXPORT_SYMBOL vmlinux 0x4168619e bman_pool_max +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41cedf6f pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x41e43cbb ftrace_raw_output_prep +EXPORT_SYMBOL vmlinux 0x41fa221e tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x421fcd29 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x42319a3d kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x423b776a ipmi_create_user +EXPORT_SYMBOL vmlinux 0x423b78fe key_type_keyring +EXPORT_SYMBOL vmlinux 0x423f8fb8 dquot_operations +EXPORT_SYMBOL vmlinux 0x4240f91c udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x426ab64e serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x4272e57d qdisc_destroy +EXPORT_SYMBOL vmlinux 0x427b0423 seq_open +EXPORT_SYMBOL vmlinux 0x428df9e4 devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a1b208 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x42add0fa nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x42b302e9 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0x42c03cc1 ipmi_register_smi +EXPORT_SYMBOL vmlinux 0x42c65986 qman_alloc_fqid_range +EXPORT_SYMBOL vmlinux 0x42d5b4ec tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x42de7c42 path_get +EXPORT_SYMBOL vmlinux 0x42f6b17b pipe_unlock +EXPORT_SYMBOL vmlinux 0x42f872ed swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x42f9c53e kthread_stop +EXPORT_SYMBOL vmlinux 0x430154ae bman_irqsource_remove +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4302e471 read_dev_sector +EXPORT_SYMBOL vmlinux 0x430c85ae get_phy_device +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x43618bac genl_notify +EXPORT_SYMBOL vmlinux 0x43632d7d of_find_property +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x4375dbc4 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x438e60e5 gen10g_read_status +EXPORT_SYMBOL vmlinux 0x43a01f90 complete_all +EXPORT_SYMBOL vmlinux 0x43a521d2 arp_tbl +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x4400a0ed skb_queue_head +EXPORT_SYMBOL vmlinux 0x4405f347 netdev_crit +EXPORT_SYMBOL vmlinux 0x4411c503 prandom_seed +EXPORT_SYMBOL vmlinux 0x44199734 da903x_query_status +EXPORT_SYMBOL vmlinux 0x441c9cd9 devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x442f9d3e pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x444363ff ps2_drain +EXPORT_SYMBOL vmlinux 0x4451aa5d blk_get_request +EXPORT_SYMBOL vmlinux 0x44532a9d d_validate +EXPORT_SYMBOL vmlinux 0x448eac3e kmemdup +EXPORT_SYMBOL vmlinux 0x44ac356a mdiobus_free +EXPORT_SYMBOL vmlinux 0x44adef92 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x44e68443 ndo_dflt_bridge_getlink +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44eb192e wait_for_completion +EXPORT_SYMBOL vmlinux 0x44f5e8b5 of_allnodes +EXPORT_SYMBOL vmlinux 0x44f7929b qm_fq_new +EXPORT_SYMBOL vmlinux 0x44f99db2 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x4511a8ff request_firmware +EXPORT_SYMBOL vmlinux 0x45206923 tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x45288c1a pcim_enable_device +EXPORT_SYMBOL vmlinux 0x452abdf7 skb_make_writable +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x454b10fb agp_free_page_array +EXPORT_SYMBOL vmlinux 0x4550b44a __sk_dst_check +EXPORT_SYMBOL vmlinux 0x455644a4 mmc_erase +EXPORT_SYMBOL vmlinux 0x456d6eda neigh_seq_start +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x457bbf68 build_skb +EXPORT_SYMBOL vmlinux 0x457f6657 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x459ece67 pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap +EXPORT_SYMBOL vmlinux 0x45a6be13 cpufreq_sysfs_remove_file +EXPORT_SYMBOL vmlinux 0x45a765cf pci_add_resource +EXPORT_SYMBOL vmlinux 0x45c81223 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x45fa208d iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x4602ec2f zero_fill_bio +EXPORT_SYMBOL vmlinux 0x460adb42 pci_bus_type +EXPORT_SYMBOL vmlinux 0x4612c59d down_trylock +EXPORT_SYMBOL vmlinux 0x461ac773 kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x462a3490 seq_release_private +EXPORT_SYMBOL vmlinux 0x462c4048 inet6_del_offload +EXPORT_SYMBOL vmlinux 0x463b4c55 __brelse +EXPORT_SYMBOL vmlinux 0x46451246 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x465cab34 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x46608fa0 getnstimeofday +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x468bcda6 cpumask_set_cpu_local_first +EXPORT_SYMBOL vmlinux 0x469a3c43 __module_get +EXPORT_SYMBOL vmlinux 0x46c1147d qman_poll_slow +EXPORT_SYMBOL vmlinux 0x46d12956 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x46e75fda tty_set_operations +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x4703b659 phy_connect +EXPORT_SYMBOL vmlinux 0x4713dd5b crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x4715ddaf blkdev_get +EXPORT_SYMBOL vmlinux 0x472282fe __get_page_tail +EXPORT_SYMBOL vmlinux 0x4735b1e0 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x47416e14 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x474bc58b ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x477532af sync_inode +EXPORT_SYMBOL vmlinux 0x477ea4f8 blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0x4780f78d qman_init_fq +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b3103b blk_mq_alloc_single_hw_queue +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b60c08 netdev_alert +EXPORT_SYMBOL vmlinux 0x47bcf84c param_set_ulong +EXPORT_SYMBOL vmlinux 0x47c0d932 from_kgid_munged +EXPORT_SYMBOL vmlinux 0x47c8baf4 param_ops_uint +EXPORT_SYMBOL vmlinux 0x47eeabd0 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x48034724 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x4829a47e memcpy +EXPORT_SYMBOL vmlinux 0x482a2a49 param_set_charp +EXPORT_SYMBOL vmlinux 0x48404b9a remove_wait_queue +EXPORT_SYMBOL vmlinux 0x4841bdee strnchr +EXPORT_SYMBOL vmlinux 0x4855ba7f simple_transaction_release +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x4863f890 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x48648668 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x486d728b sock_init_data +EXPORT_SYMBOL vmlinux 0x487b9bab decrementer_clockevent +EXPORT_SYMBOL vmlinux 0x487e1a41 __cleancache_invalidate_page +EXPORT_SYMBOL vmlinux 0x489a9fa6 scsi_free_command +EXPORT_SYMBOL vmlinux 0x48a771c5 cpu_core_map +EXPORT_SYMBOL vmlinux 0x48b7d5ee scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x48bcde52 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x48c6db53 of_get_child_by_name +EXPORT_SYMBOL vmlinux 0x48f003e3 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x48fabfbf gen_new_estimator +EXPORT_SYMBOL vmlinux 0x48fb3b2f block_write_begin +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x495c96f8 posix_acl_init +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x4968db35 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x4986a7e9 d_make_root +EXPORT_SYMBOL vmlinux 0x499af5a3 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x49a9698a vfs_llseek +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49dff3b6 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0x4a08ca4c skb_checksum_help +EXPORT_SYMBOL vmlinux 0x4a1b3712 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x4a1e019f fsl_ifc_ctrl_dev +EXPORT_SYMBOL vmlinux 0x4a22b549 kfree_put_link +EXPORT_SYMBOL vmlinux 0x4a28618c update_time +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a467e24 i2c_bit_algo +EXPORT_SYMBOL vmlinux 0x4a881301 call_netdevice_notifiers_info +EXPORT_SYMBOL vmlinux 0x4aa87150 ip_fragment +EXPORT_SYMBOL vmlinux 0x4aabb8f4 vga_put +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ad5b297 force_sig +EXPORT_SYMBOL vmlinux 0x4addd371 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x4ae362f9 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x4af31aea follow_pfn +EXPORT_SYMBOL vmlinux 0x4af3e004 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b58ad7e ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0x4b5b57ae neigh_app_ns +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b721cce blk_queue_max_write_same_sectors +EXPORT_SYMBOL vmlinux 0x4b7ed27b sleep_on +EXPORT_SYMBOL vmlinux 0x4ba3d33a add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x4ba7595d pci_enable_msi_range +EXPORT_SYMBOL vmlinux 0x4bae3e13 ip_defrag +EXPORT_SYMBOL vmlinux 0x4becdd70 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x4bfa194e unregister_netdev +EXPORT_SYMBOL vmlinux 0x4c008546 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x4c11435a _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c143f18 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x4c1f1709 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x4c34a21d tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x4c3a85b4 blk_free_tags +EXPORT_SYMBOL vmlinux 0x4c90501f mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL vmlinux 0x4ca55a38 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x4ca9669f scnprintf +EXPORT_SYMBOL vmlinux 0x4cb0e988 gen_pool_dma_alloc +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cd7bc63 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x4cdb3178 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x4ce038e2 skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x4d0dbf23 scsi_register +EXPORT_SYMBOL vmlinux 0x4d0fd16e md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x4d11c067 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x4d39e4de block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x4d3e5e09 fb_set_var +EXPORT_SYMBOL vmlinux 0x4d523e9b sock_i_ino +EXPORT_SYMBOL vmlinux 0x4d6d8c9c end_page_writeback +EXPORT_SYMBOL vmlinux 0x4d7861df blk_bio_map_sg +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4d9dcda5 qman_fqid_pool_destroy +EXPORT_SYMBOL vmlinux 0x4da33160 devm_gpio_request +EXPORT_SYMBOL vmlinux 0x4da46647 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x4da7c931 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x4dd46a67 pci_get_slot +EXPORT_SYMBOL vmlinux 0x4de34a07 cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4dfed71c flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x4e0aab78 vlan_uses_dev +EXPORT_SYMBOL vmlinux 0x4e217a42 rtnl_notify +EXPORT_SYMBOL vmlinux 0x4e23fd2b netif_device_attach +EXPORT_SYMBOL vmlinux 0x4e2f1622 pme_ctx_reconfigure_tx +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e3b22fc wireless_send_event +EXPORT_SYMBOL vmlinux 0x4e4b5d9a mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x4e540953 unregister_console +EXPORT_SYMBOL vmlinux 0x4e543e28 filemap_fault +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6cf267 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x4e6e0fb6 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e73d60b agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x4e7803e8 get_super +EXPORT_SYMBOL vmlinux 0x4e786d13 idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x4e7b074d alloc_fcdev +EXPORT_SYMBOL vmlinux 0x4e8608e0 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x4e8f994a padata_start +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ea62086 blk_mq_end_io +EXPORT_SYMBOL vmlinux 0x4ec1f063 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x4ecba6f0 tty_vhangup +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4f0abb43 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x4f0ee35d submit_bio +EXPORT_SYMBOL vmlinux 0x4f15f72a tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f248523 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f4b153b blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x4f68e5c9 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x4f68fd65 dev_crit +EXPORT_SYMBOL vmlinux 0x4f75e001 flush_old_exec +EXPORT_SYMBOL vmlinux 0x4f76482b phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x4f91963e dev_addr_del +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fdfcd94 inode_dio_wait +EXPORT_SYMBOL vmlinux 0x4ff0272f kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x4ff05607 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x4ff386ae d_path +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x501dc7eb km_policy_expired +EXPORT_SYMBOL vmlinux 0x503a271c pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x50507bc1 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x509f86a3 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x50a90e8d bsearch +EXPORT_SYMBOL vmlinux 0x50ae7d80 __idr_pre_get +EXPORT_SYMBOL vmlinux 0x50b40f1d tty_free_termios +EXPORT_SYMBOL vmlinux 0x50d2592d hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x50d817c4 noop_fsync +EXPORT_SYMBOL vmlinux 0x5114af4a vfs_symlink +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x512890c8 netlink_ack +EXPORT_SYMBOL vmlinux 0x51372a69 security_path_link +EXPORT_SYMBOL vmlinux 0x5158303a ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x5161c879 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x517cc170 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x518dfd6a xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x519b0da3 finish_wait +EXPORT_SYMBOL vmlinux 0x51b10be0 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x51d30b7e pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0x51d7c120 cdrom_open +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e11ad0 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x5206e364 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x5215c98a audit_log_start +EXPORT_SYMBOL vmlinux 0x521b36b5 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x52261f36 input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x522d30ca input_allocate_device +EXPORT_SYMBOL vmlinux 0x5236c006 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x52428cc8 parent_mem_cgroup +EXPORT_SYMBOL vmlinux 0x5245f6a4 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL vmlinux 0x526dc138 qman_set_null_cb +EXPORT_SYMBOL vmlinux 0x52773bed xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x5290ed06 pci_restore_state +EXPORT_SYMBOL vmlinux 0x5291fb62 eth_header +EXPORT_SYMBOL vmlinux 0x52926c1e pme_ctx_disable +EXPORT_SYMBOL vmlinux 0x52c024b0 dev_add_offload +EXPORT_SYMBOL vmlinux 0x52fae98b __quota_error +EXPORT_SYMBOL vmlinux 0x53030111 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x530737ce ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0x530daa4b put_disk +EXPORT_SYMBOL vmlinux 0x531aadc2 scsi_add_device +EXPORT_SYMBOL vmlinux 0x53261ad8 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x532d5858 ping_prot +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x5335d71d scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x5343ec35 dquot_release +EXPORT_SYMBOL vmlinux 0x5351d17b __nlmsg_put +EXPORT_SYMBOL vmlinux 0x5353bf56 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x536cc847 memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0x5377e556 hex2bin +EXPORT_SYMBOL vmlinux 0x5386bdb0 netlink_unicast +EXPORT_SYMBOL vmlinux 0x53b7d042 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x53c30bfd mmc_start_bkops +EXPORT_SYMBOL vmlinux 0x53d5a032 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x5409775b free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x5412c7c7 up +EXPORT_SYMBOL vmlinux 0x541f7c7a jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x54245b39 kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5445406e free_task +EXPORT_SYMBOL vmlinux 0x5473ff48 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x54824b13 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x5486bdf8 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x548cb517 bman_poll +EXPORT_SYMBOL vmlinux 0x549f365c __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x54a816ba mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54b4d043 km_policy_notify +EXPORT_SYMBOL vmlinux 0x54c19340 pci_choose_state +EXPORT_SYMBOL vmlinux 0x54c7fa80 __bio_clone +EXPORT_SYMBOL vmlinux 0x54cc862d phy_stop +EXPORT_SYMBOL vmlinux 0x54dbb685 mmc_get_card +EXPORT_SYMBOL vmlinux 0x54e3cc3b param_get_int +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54f46a4c dev_get_phys_port_id +EXPORT_SYMBOL vmlinux 0x5512f8e0 inode_dio_done +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x5536a667 fasync_helper +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x5549253a tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x5567c227 kernel_cpustat +EXPORT_SYMBOL vmlinux 0x5568c553 complete +EXPORT_SYMBOL vmlinux 0x556c2740 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x556fd416 sg_miter_next +EXPORT_SYMBOL vmlinux 0x5577ef9e udp_table +EXPORT_SYMBOL vmlinux 0x558a82ea __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x558bb139 register_framebuffer +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55ad559c ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x55ccd4d2 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0x55fe5e48 tty_mutex +EXPORT_SYMBOL vmlinux 0x56026137 twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5615612e posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x5615b22d pci_bus_put +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x5655cdf4 km_report +EXPORT_SYMBOL vmlinux 0x568efbc3 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x5693b5fe pci_iounmap +EXPORT_SYMBOL vmlinux 0x5694d570 seq_vprintf +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56a1a917 devm_ioremap +EXPORT_SYMBOL vmlinux 0x56b92055 udp6_csum_init +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56e42523 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x56e9a892 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x56ea4d4c jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0x56ff41fd PDE_DATA +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57377704 scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x5742b613 single_open_size +EXPORT_SYMBOL vmlinux 0x574a2b31 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x574f5228 del_gendisk +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x575af70c on_each_cpu_mask +EXPORT_SYMBOL vmlinux 0x575c4d1c generic_setxattr +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x5785384a flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x57874125 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x5792f848 strlcpy +EXPORT_SYMBOL vmlinux 0x579f65c8 pme_fd_cmd_fcr +EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x57cb35c7 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x57e5dd24 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x57e6ce07 backlight_device_register +EXPORT_SYMBOL vmlinux 0x5814e055 bm_pool_free +EXPORT_SYMBOL vmlinux 0x581b29e8 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x581d6418 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x5844bdda __dst_free +EXPORT_SYMBOL vmlinux 0x585714d6 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x587616f1 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x5877d8ef qman_static_dequeue_add +EXPORT_SYMBOL vmlinux 0x58a306bc __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x58ca9f43 arp_find +EXPORT_SYMBOL vmlinux 0x58cd20fe get_super_thawed +EXPORT_SYMBOL vmlinux 0x58d1070a of_get_address +EXPORT_SYMBOL vmlinux 0x58f399f4 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x59036caa dev_uc_del +EXPORT_SYMBOL vmlinux 0x59048b94 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x5930e41d simple_open +EXPORT_SYMBOL vmlinux 0x5932514b ata_print_version +EXPORT_SYMBOL vmlinux 0x59347a21 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x595c34d6 __d_drop +EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page +EXPORT_SYMBOL vmlinux 0x5967c929 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x5983059f input_register_handler +EXPORT_SYMBOL vmlinux 0x5986bf44 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x5991219c cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x59a946be pci_enable_ltr +EXPORT_SYMBOL vmlinux 0x59b3378a completion_done +EXPORT_SYMBOL vmlinux 0x59b3a90d dma_async_device_register +EXPORT_SYMBOL vmlinux 0x59d38e0d md_error +EXPORT_SYMBOL vmlinux 0x59dc3576 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x59f37be6 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x59fb7537 ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x5a025f7b arch_local_irq_restore +EXPORT_SYMBOL vmlinux 0x5a044543 devm_gpiod_get_index +EXPORT_SYMBOL vmlinux 0x5a05164f tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x5a0aaa12 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x5a2cfcfd scsi_remove_host +EXPORT_SYMBOL vmlinux 0x5a5536c2 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x5a77fcb9 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x5a921311 strncmp +EXPORT_SYMBOL vmlinux 0x5a9eef3f framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x5a9f1d63 memmove +EXPORT_SYMBOL vmlinux 0x5aa976e3 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x5ab67433 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x5ac3b31f dev_add_pack +EXPORT_SYMBOL vmlinux 0x5add4597 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x5ae50279 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5aefe89e xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x5b0e9b4f security_path_truncate +EXPORT_SYMBOL vmlinux 0x5b39988e ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x5b56860c vm_munmap +EXPORT_SYMBOL vmlinux 0x5b5b832b eth_change_mtu +EXPORT_SYMBOL vmlinux 0x5b808763 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x5b8cdd29 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x5b9828c5 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x5bb569f7 filemap_flush +EXPORT_SYMBOL vmlinux 0x5bc10524 printk_emit +EXPORT_SYMBOL vmlinux 0x5bdcf1fa init_buffer +EXPORT_SYMBOL vmlinux 0x5bf3e0bb devm_request_and_ioremap +EXPORT_SYMBOL vmlinux 0x5bf57c22 bio_copy_data +EXPORT_SYMBOL vmlinux 0x5bf63794 lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0x5c1547b9 inode_init_once +EXPORT_SYMBOL vmlinux 0x5c1a0b9b dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x5c1b2d3c inet_frag_kill +EXPORT_SYMBOL vmlinux 0x5c1d3210 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x5c27226d clk_get +EXPORT_SYMBOL vmlinux 0x5c37f319 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x5c541f42 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x5c60d29c fget_light +EXPORT_SYMBOL vmlinux 0x5c615907 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x5c668969 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x5c6f6453 drop_super +EXPORT_SYMBOL vmlinux 0x5c7225ae ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x5c730659 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x5cadc6fa i8042_install_filter +EXPORT_SYMBOL vmlinux 0x5cce8a31 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x5cd0d93d tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x5cd40ca2 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x5cd46743 get_fs_type +EXPORT_SYMBOL vmlinux 0x5cdbdb75 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x5cde8069 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x5cf30e10 __debugger_ipi +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5d1b959e input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x5d1f4395 sock_no_accept +EXPORT_SYMBOL vmlinux 0x5d38f636 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x5d409fe0 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x5d41b3f8 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x5d41c87c param_ops_charp +EXPORT_SYMBOL vmlinux 0x5d550c4d scsi_sd_probe_domain +EXPORT_SYMBOL vmlinux 0x5d58efa0 convert_ifc_address +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d5beae5 input_register_device +EXPORT_SYMBOL vmlinux 0x5d6bdce1 flex_array_alloc +EXPORT_SYMBOL vmlinux 0x5d8b0079 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x5d91d33a fbcon_rotate_ud +EXPORT_SYMBOL vmlinux 0x5dc6f9d2 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x5dfd176c devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x5e06d037 local_flush_tlb_mm +EXPORT_SYMBOL vmlinux 0x5e0f73ed mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x5e15425b tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x5e2682c6 pci_scan_bus +EXPORT_SYMBOL vmlinux 0x5e3a8a9c __wake_up +EXPORT_SYMBOL vmlinux 0x5e3bbc15 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL vmlinux 0x5e91ba3d seq_putc +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eacdbb3 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ec7c642 eth_header_parse +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ef71285 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f28c2dc idr_remove +EXPORT_SYMBOL vmlinux 0x5f3c8f5c mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x5f7421e9 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x5f7552bc phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0x5f7575b2 __napi_schedule +EXPORT_SYMBOL vmlinux 0x5f817319 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5fa8b25b pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0x5fb8f53b mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL vmlinux 0x5fda0227 vfs_stat +EXPORT_SYMBOL vmlinux 0x5fe619f0 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x600a74b2 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x60408eeb ipmi_smi_watcher_unregister +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x6070b28c tty_register_driver +EXPORT_SYMBOL vmlinux 0x607f7356 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x60819d4c phy_get_eee_err +EXPORT_SYMBOL vmlinux 0x6086fae9 rwsem_wake +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a9e71b simple_getattr +EXPORT_SYMBOL vmlinux 0x60b3d7a2 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x60d438ec pci_enable_device +EXPORT_SYMBOL vmlinux 0x60df1e3b posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x60e76372 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x60fe979c key_revoke +EXPORT_SYMBOL vmlinux 0x60ff815c unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x61094e09 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x610d9970 skb_seq_read +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6126d75f i2c_clients_command +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x6132e0a2 audit_log +EXPORT_SYMBOL vmlinux 0x6142b1cc tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x61538ad0 param_get_charp +EXPORT_SYMBOL vmlinux 0x6184f204 ppc_md +EXPORT_SYMBOL vmlinux 0x61868f44 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x61885d0f dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x619cb7dd simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x61a991ab tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x61b4c268 bman_poll_slow +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x620fbc96 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x62184812 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x62227d57 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x6244007c account_page_dirtied +EXPORT_SYMBOL vmlinux 0x62538167 slhc_toss +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x62915c43 blk_init_queue +EXPORT_SYMBOL vmlinux 0x62ab39ec xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x62b088c8 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x62d9ec84 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x62f79eaf blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x6303dc7b blk_sync_queue +EXPORT_SYMBOL vmlinux 0x630b0d8a netif_rx +EXPORT_SYMBOL vmlinux 0x630bc5bd padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x631e2fa5 powerpc_debugfs_root +EXPORT_SYMBOL vmlinux 0x63231951 gen_pool_create +EXPORT_SYMBOL vmlinux 0x6330ace6 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x6332795c inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x6338201c mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x63396aec __debugger_break_match +EXPORT_SYMBOL vmlinux 0x6349bb1a bd_set_size +EXPORT_SYMBOL vmlinux 0x63789e91 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x637d0fca jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x63884d75 mmc_gpio_request_cd +EXPORT_SYMBOL vmlinux 0x639f6140 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x63a3775d fb_get_mode +EXPORT_SYMBOL vmlinux 0x63ae6441 file_ns_capable +EXPORT_SYMBOL vmlinux 0x63bbe8a6 poll_initwait +EXPORT_SYMBOL vmlinux 0x63bcd929 nla_reserve +EXPORT_SYMBOL vmlinux 0x63bd07b9 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x63cc6c52 pme_map_error +EXPORT_SYMBOL vmlinux 0x63e7bd12 __cputime_usec_factor +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ecd6d8 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x640797af uart_match_port +EXPORT_SYMBOL vmlinux 0x643463b2 get_io_context +EXPORT_SYMBOL vmlinux 0x6435765f console_stop +EXPORT_SYMBOL vmlinux 0x643c737e inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x647d8ae6 icmpv6_send +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64a4b84d cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x64bbc288 string_unescape +EXPORT_SYMBOL vmlinux 0x64d4e295 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x64fd661a scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x64fdb9b4 vfs_write +EXPORT_SYMBOL vmlinux 0x65107ace genphy_setup_forced +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x652598bb tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x6525a192 write_cache_pages +EXPORT_SYMBOL vmlinux 0x652ce9aa nla_memcmp +EXPORT_SYMBOL vmlinux 0x653ec0f3 vga_get +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x654930bf iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x654be37a single_open +EXPORT_SYMBOL vmlinux 0x65717d50 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x6582ed1a security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0x6599c967 qman_enqueue +EXPORT_SYMBOL vmlinux 0x65a583fb netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x65bb58a2 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x65d63039 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65dd9388 __skb_get_hash +EXPORT_SYMBOL vmlinux 0x65e0d6d7 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x65f3ad9a fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x661ba31f blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x66307892 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x66384505 bio_map_user +EXPORT_SYMBOL vmlinux 0x6647ea13 generic_read_dir +EXPORT_SYMBOL vmlinux 0x66527ae5 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x66568a56 set_blocksize +EXPORT_SYMBOL vmlinux 0x665b184f agp_free_memory +EXPORT_SYMBOL vmlinux 0x6670352c jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x6695e749 skb_find_text +EXPORT_SYMBOL vmlinux 0x66c6e550 agp_create_memory +EXPORT_SYMBOL vmlinux 0x66dbc7a1 dev_activate +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6746a6be pme_ctx_reconfigure_rx +EXPORT_SYMBOL vmlinux 0x675b1fc2 bman_get_portal_config +EXPORT_SYMBOL vmlinux 0x675b8f61 param_get_string +EXPORT_SYMBOL vmlinux 0x67662dee swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x6788c7b1 phy_print_status +EXPORT_SYMBOL vmlinux 0x67a87ce7 netpoll_rx_disable +EXPORT_SYMBOL vmlinux 0x67b68689 flush_tlb_page +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67be188c phy_attach_direct +EXPORT_SYMBOL vmlinux 0x67c60920 __register_chrdev +EXPORT_SYMBOL vmlinux 0x67c72881 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL vmlinux 0x67f67c50 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x6849a15f flex_array_clear +EXPORT_SYMBOL vmlinux 0x68564f88 flush_dcache_page +EXPORT_SYMBOL vmlinux 0x68609857 complete_and_exit +EXPORT_SYMBOL vmlinux 0x68656bbb sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x689c3f4a page_readlink +EXPORT_SYMBOL vmlinux 0x68b83ac6 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x68cee57e get_disk +EXPORT_SYMBOL vmlinux 0x68de33ab block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x68e05d57 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x68e1d5cc set_bh_page +EXPORT_SYMBOL vmlinux 0x69001263 __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x69005236 ip_options_compile +EXPORT_SYMBOL vmlinux 0x69027e37 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x6904b630 mount_ns +EXPORT_SYMBOL vmlinux 0x691904a3 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x691ca9b3 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x6926275b mmc_can_trim +EXPORT_SYMBOL vmlinux 0x692d9f71 pci_select_bars +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x697cd96e input_event +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69cef439 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69d523bc ip6_frag_match +EXPORT_SYMBOL vmlinux 0x69e19fa4 file_remove_suid +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a0814bc scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x6a18d320 pci_disable_ido +EXPORT_SYMBOL vmlinux 0x6a1cb192 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x6a30010b ll_rw_block +EXPORT_SYMBOL vmlinux 0x6a3f4119 mmc_of_parse_voltage +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a740c54 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a86e697 sk_common_release +EXPORT_SYMBOL vmlinux 0x6a9490a9 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x6a972102 vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0x6aba171a dev_notice +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6b06fdce delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x6b0a98fd pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x6b14a5ae __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b31b69a agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x6b5dfe73 __debugger_bpt +EXPORT_SYMBOL vmlinux 0x6b640864 nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6b7f1917 idr_find_slowpath +EXPORT_SYMBOL vmlinux 0x6b862091 devm_gpiod_get +EXPORT_SYMBOL vmlinux 0x6b8d793e mdio_bus_type +EXPORT_SYMBOL vmlinux 0x6ba2a440 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x6bb26cc0 register_key_type +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bceaebc gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6beb2078 param_set_copystring +EXPORT_SYMBOL vmlinux 0x6c2e4550 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x6c377e1e put_tty_driver +EXPORT_SYMBOL vmlinux 0x6c4c43c6 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x6c51a836 sysctl_tcp_notsent_lowat +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c665691 flex_array_shrink +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c73ed36 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x6c7f2a13 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x6c81a3bf remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x6c8dbd0a __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x6ca90405 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0x6cd75c47 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x6cd8c86b __crc32c_le_combine +EXPORT_SYMBOL vmlinux 0x6ce12a71 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x6d081216 __frontswap_test +EXPORT_SYMBOL vmlinux 0x6d09a67c sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d168da8 override_creds +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d56960c bmap +EXPORT_SYMBOL vmlinux 0x6d5c42b0 dm_put_device +EXPORT_SYMBOL vmlinux 0x6d5f8fe0 sock_rfree +EXPORT_SYMBOL vmlinux 0x6d5f922e pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x6d7a9806 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x6da68f7d __getblk +EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns +EXPORT_SYMBOL vmlinux 0x6db031f7 arp_invalidate +EXPORT_SYMBOL vmlinux 0x6dbc883a dm_get_device +EXPORT_SYMBOL vmlinux 0x6dbfbf71 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x6ddf687f bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e0ea773 mount_subtree +EXPORT_SYMBOL vmlinux 0x6e13bf52 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x6e312930 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x6e411f00 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0x6e44b9e1 mmc_gpio_request_ro +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e764332 idr_destroy +EXPORT_SYMBOL vmlinux 0x6e8fe9e3 request_key_async +EXPORT_SYMBOL vmlinux 0x6ebc5149 param_ops_long +EXPORT_SYMBOL vmlinux 0x6ef1e11f bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x6f06ac34 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x6f0bc643 skb_pad +EXPORT_SYMBOL vmlinux 0x6f20960a full_name_hash +EXPORT_SYMBOL vmlinux 0x6f268538 bman_acquire +EXPORT_SYMBOL vmlinux 0x6f5af8ee ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x6f70e393 inode_change_ok +EXPORT_SYMBOL vmlinux 0x6f80ed06 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x6f85b211 ida_remove +EXPORT_SYMBOL vmlinux 0x6f9d649b compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x6fa356a5 dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd040ec generic_segment_checks +EXPORT_SYMBOL vmlinux 0x6fd34dee sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x6fe25573 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x6fee43de mapping_tagged +EXPORT_SYMBOL vmlinux 0x7045dea9 qman_modify_cgr +EXPORT_SYMBOL vmlinux 0x704c4365 __cputime_sec_factor +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x705b0737 netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0x707a4757 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0x707f43f6 __ctzdi2 +EXPORT_SYMBOL vmlinux 0x7085f235 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x7093a181 pci_find_bus +EXPORT_SYMBOL vmlinux 0x70a274fd blk_run_queue_async +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70f7e26e skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x70feb999 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x71282df9 may_umount_tree +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x71418b81 __mutex_init +EXPORT_SYMBOL vmlinux 0x7145558f dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x715ac048 md_write_start +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x717b47ff pci_get_class +EXPORT_SYMBOL vmlinux 0x7180b2c0 qman_delete_cgr +EXPORT_SYMBOL vmlinux 0x71a411f2 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x7221b10b __f_setown +EXPORT_SYMBOL vmlinux 0x72622af7 kdb_current_task +EXPORT_SYMBOL vmlinux 0x726a0fcd make_kprojid +EXPORT_SYMBOL vmlinux 0x726ab160 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x726fba57 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x72749996 init_net +EXPORT_SYMBOL vmlinux 0x727c50e1 bdev_read_only +EXPORT_SYMBOL vmlinux 0x728ce230 qm_fq_free_flags +EXPORT_SYMBOL vmlinux 0x728da1f9 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x72a9aa74 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bdcbdf blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x72c98139 __arch_hweight64 +EXPORT_SYMBOL vmlinux 0x72ca543e qman_query_fq +EXPORT_SYMBOL vmlinux 0x72d4c23c fsl_get_sys_freq +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72ec11f9 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x72fd5620 giveup_altivec +EXPORT_SYMBOL vmlinux 0x730786a8 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x731a747a pci_io_base +EXPORT_SYMBOL vmlinux 0x7324b59b input_get_keycode +EXPORT_SYMBOL vmlinux 0x733b2383 next_tlbcam_idx +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x734ae2f1 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x7356722a dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x73573187 revert_creds +EXPORT_SYMBOL vmlinux 0x73575039 mount_bdev +EXPORT_SYMBOL vmlinux 0x7359dad1 inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0x735d8503 add_wait_queue +EXPORT_SYMBOL vmlinux 0x7368016c __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x736bfef6 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x73961a62 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x739d1224 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x73aef123 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x73c13656 truncate_setsize +EXPORT_SYMBOL vmlinux 0x73cfcbbb cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x740a95e0 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x7436bb63 release_pages +EXPORT_SYMBOL vmlinux 0x74377308 simple_empty +EXPORT_SYMBOL vmlinux 0x7453daaf skb_tx_error +EXPORT_SYMBOL vmlinux 0x7455b9b0 mutex_trylock +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x747195f0 hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x74807c5f inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x748192dc mntput +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74aaec49 pci_enable_msi_block_auto +EXPORT_SYMBOL vmlinux 0x74bdf1d1 __test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74da9692 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x74df78bd pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x74f84bf6 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x75103a31 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x751b2d6e bioset_create +EXPORT_SYMBOL vmlinux 0x751c2917 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x7532588a alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x7548a25c module_layout +EXPORT_SYMBOL vmlinux 0x7548f97e clk_add_alias +EXPORT_SYMBOL vmlinux 0x754dac78 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x754fd862 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x7591f6f1 key_put +EXPORT_SYMBOL vmlinux 0x75994700 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x75adc223 dev_warn +EXPORT_SYMBOL vmlinux 0x75b11c6c inet_accept +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75be6702 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x75c17d7c xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x75cefeb5 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x75d3db63 generic_fillattr +EXPORT_SYMBOL vmlinux 0x75f07c07 _dev_info +EXPORT_SYMBOL vmlinux 0x75f6b76f tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x75f7a79f compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760c2b6d thaw_bdev +EXPORT_SYMBOL vmlinux 0x7624917b sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x7634d961 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x7638686a netdev_state_change +EXPORT_SYMBOL vmlinux 0x7638db58 scsi_execute_req_flags +EXPORT_SYMBOL vmlinux 0x763f1f72 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x765ff474 crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x7672c8dc sock_no_connect +EXPORT_SYMBOL vmlinux 0x76764575 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0x767efe76 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x767fa29c xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x76837e24 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x768ee8d2 find_vma +EXPORT_SYMBOL vmlinux 0x76974b24 add_disk +EXPORT_SYMBOL vmlinux 0x769e06d7 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x769e900b dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76bf88db phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x76c9efbd free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d451c4 add_taint +EXPORT_SYMBOL vmlinux 0x76d6f51b __bread +EXPORT_SYMBOL vmlinux 0x76e3fe15 __cleancache_invalidate_inode +EXPORT_SYMBOL vmlinux 0x770b8fdc jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x7721f5b7 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x773fa409 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x77439710 page_put_link +EXPORT_SYMBOL vmlinux 0x775c92fc sock_release +EXPORT_SYMBOL vmlinux 0x77686d4f netlink_set_err +EXPORT_SYMBOL vmlinux 0x776ad9c5 account_page_writeback +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77bada8f vc_resize +EXPORT_SYMBOL vmlinux 0x77bb4823 security_inode_permission +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f35346 flush_signals +EXPORT_SYMBOL vmlinux 0x78245a73 kern_path_create +EXPORT_SYMBOL vmlinux 0x783b3563 wake_up_atomic_t +EXPORT_SYMBOL vmlinux 0x7843ef7b security_path_mkdir +EXPORT_SYMBOL vmlinux 0x78450fdc pci_enable_ido +EXPORT_SYMBOL vmlinux 0x7846af3e __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x785351bf misc_register +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x788b1b90 phy_start +EXPORT_SYMBOL vmlinux 0x78985453 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x789affb1 frontswap_tmem_exclusive_gets +EXPORT_SYMBOL vmlinux 0x78c19d5f unregister_binfmt +EXPORT_SYMBOL vmlinux 0x78d02ca4 __destroy_inode +EXPORT_SYMBOL vmlinux 0x78d3dabf tcp_ioctl +EXPORT_SYMBOL vmlinux 0x78de864d __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78dfdd9f pme_hw_residue_free +EXPORT_SYMBOL vmlinux 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL vmlinux 0x790df6ca __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x7913e091 datagram_poll +EXPORT_SYMBOL vmlinux 0x792e45db make_bad_inode +EXPORT_SYMBOL vmlinux 0x7930d225 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x7974c1a3 devm_clk_get +EXPORT_SYMBOL vmlinux 0x797c8fa9 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x7984eefc key_update +EXPORT_SYMBOL vmlinux 0x79986560 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x79a7c587 file_open_root +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79bc9bc3 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x7a08094d blk_mq_run_queues +EXPORT_SYMBOL vmlinux 0x7a1532f4 get_tz_trend +EXPORT_SYMBOL vmlinux 0x7a188791 prandom_bytes +EXPORT_SYMBOL vmlinux 0x7a26ceb9 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a2b904a agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0x7a3bf96f tcp_shutdown +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a71a11a agp_backend_release +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7a925833 cpufreq_get_global_kobject +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7aa8f210 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7add44b5 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7ae893f7 compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x7aed14f8 dcb_setapp +EXPORT_SYMBOL vmlinux 0x7af665e4 scsi_host_put +EXPORT_SYMBOL vmlinux 0x7afbd635 simple_statfs +EXPORT_SYMBOL vmlinux 0x7b16235f hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x7b2aef6c __krealloc +EXPORT_SYMBOL vmlinux 0x7b729d2f pci_clear_master +EXPORT_SYMBOL vmlinux 0x7b795e10 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x7b8e3920 make_kgid +EXPORT_SYMBOL vmlinux 0x7b8e8377 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x7b99b7b8 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x7baaeb7d inet_shutdown +EXPORT_SYMBOL vmlinux 0x7baf66f5 blk_peek_request +EXPORT_SYMBOL vmlinux 0x7bcadafd __sb_end_write +EXPORT_SYMBOL vmlinux 0x7c003aef _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x7c1372e8 panic +EXPORT_SYMBOL vmlinux 0x7c2d098f krealloc +EXPORT_SYMBOL vmlinux 0x7c336d02 set_nlink +EXPORT_SYMBOL vmlinux 0x7c3907db padata_free +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c6afe47 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x7c6b5b64 writeback_in_progress +EXPORT_SYMBOL vmlinux 0x7c6d7fed register_sysctl +EXPORT_SYMBOL vmlinux 0x7c72f757 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x7c9291d1 csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7c9ac32e __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x7c9bfb27 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x7cbead4f page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x7cc578da param_get_long +EXPORT_SYMBOL vmlinux 0x7cc9b19b seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7ced7770 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x7cf3a16b put_cmsg +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d14d483 cdrom_check_events +EXPORT_SYMBOL vmlinux 0x7d35bd4b install_exec_creds +EXPORT_SYMBOL vmlinux 0x7d4e5168 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x7d69831f security_path_mknod +EXPORT_SYMBOL vmlinux 0x7d79be66 abx500_register_ops +EXPORT_SYMBOL vmlinux 0x7d7e59fc pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0x7d9c8717 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x7db6585b update_region +EXPORT_SYMBOL vmlinux 0x7dbc3e53 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x7dc0e109 idr_get_next +EXPORT_SYMBOL vmlinux 0x7dcc4e49 qman_query_fq_np +EXPORT_SYMBOL vmlinux 0x7dde3768 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x7de0ff1d blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x7de355bc max8998_read_reg +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7dfbad94 vfs_setpos +EXPORT_SYMBOL vmlinux 0x7e0d6caa pme_ctx_finish +EXPORT_SYMBOL vmlinux 0x7e1164fe bdi_destroy +EXPORT_SYMBOL vmlinux 0x7e15b3d5 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x7e1aa7aa init_task +EXPORT_SYMBOL vmlinux 0x7e2da9df inet_put_port +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e48f02a __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x7e49f281 lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0x7e54fb6b i2c_release_client +EXPORT_SYMBOL vmlinux 0x7e7f5c5c bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0x7e87227e slhc_compress +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7ed7cb4c mount_nodev +EXPORT_SYMBOL vmlinux 0x7f061a54 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x7f070787 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x7f0b2960 qman_fqid_pool_create +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f69c13e skb_store_bits +EXPORT_SYMBOL vmlinux 0x7f77c4bc skb_queue_tail +EXPORT_SYMBOL vmlinux 0x7f7cb7dd read_cache_pages +EXPORT_SYMBOL vmlinux 0x7fa000ad gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x7fa7fe33 sys_copyarea +EXPORT_SYMBOL vmlinux 0x7fa88fcb blkdev_issue_write_same +EXPORT_SYMBOL vmlinux 0x7fc16702 loop_backing_file +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7fe38f48 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x7fe499b6 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x7fec5f30 kill_anon_super +EXPORT_SYMBOL vmlinux 0x7fec8eb6 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x8007e4a8 from_kprojid +EXPORT_SYMBOL vmlinux 0x800d731a md_done_sync +EXPORT_SYMBOL vmlinux 0x802d0e93 crc32_le +EXPORT_SYMBOL vmlinux 0x80314af9 skb_insert +EXPORT_SYMBOL vmlinux 0x8046e5db phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x804f922a ipmi_addr_length +EXPORT_SYMBOL vmlinux 0x807a0ff3 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x808e29a0 netpoll_setup +EXPORT_SYMBOL vmlinux 0x809fe1b2 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80de6ebd sock_no_mmap +EXPORT_SYMBOL vmlinux 0x80e00a86 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x80e49aed con_is_bound +EXPORT_SYMBOL vmlinux 0x81008126 bio_put +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x8152b2aa of_node_put +EXPORT_SYMBOL vmlinux 0x81533963 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x8154aa15 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815c56d0 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x817e45ab dev_remove_pack +EXPORT_SYMBOL vmlinux 0x818d48eb netif_skb_dev_features +EXPORT_SYMBOL vmlinux 0x81a07f4e _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x81b1ec00 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x81c64d8d tty_unlock +EXPORT_SYMBOL vmlinux 0x81c71763 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x81d17911 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x81d21cbd pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81eab18c pneigh_lookup +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x820ab9ee netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x82212144 devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0x822236f1 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x8233186c generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x823dc09c pipe_lock +EXPORT_SYMBOL vmlinux 0x8245e214 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x824618bf xfrm_init_state +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8252c301 genlmsg_put +EXPORT_SYMBOL vmlinux 0x826055e6 iterate_dir +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x827b0d3d pci_find_capability +EXPORT_SYMBOL vmlinux 0x828062b1 __frontswap_init +EXPORT_SYMBOL vmlinux 0x8288ace2 twl6040_set_bits +EXPORT_SYMBOL vmlinux 0x828b64ab set_security_override +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82af496e generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x82b9f4b1 __sb_start_write +EXPORT_SYMBOL vmlinux 0x82ce1a9e pci_iomap +EXPORT_SYMBOL vmlinux 0x82d7a8e9 skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82fb1d2a load_nls_default +EXPORT_SYMBOL vmlinux 0x83399611 dquot_commit +EXPORT_SYMBOL vmlinux 0x835109ca kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x837134ea vm_mmap +EXPORT_SYMBOL vmlinux 0x8376e6ea start_tty +EXPORT_SYMBOL vmlinux 0x83810c79 mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x8389450d agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x838d6050 kern_path_mountpoint +EXPORT_SYMBOL vmlinux 0x839a9c35 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83ca8fec padata_stop +EXPORT_SYMBOL vmlinux 0x83d8a937 qman_fqid_pool_used +EXPORT_SYMBOL vmlinux 0x83da8f7c generic_ro_fops +EXPORT_SYMBOL vmlinux 0x83f9c908 mac_find_mode +EXPORT_SYMBOL vmlinux 0x8411a8f5 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x84170f0b block_invalidatepage +EXPORT_SYMBOL vmlinux 0x841962f8 param_get_ushort +EXPORT_SYMBOL vmlinux 0x8430840f truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x8450d111 freezing_slow_path +EXPORT_SYMBOL vmlinux 0x84882e60 vfs_read +EXPORT_SYMBOL vmlinux 0x848e2444 dst_destroy +EXPORT_SYMBOL vmlinux 0x849fe807 csum_and_copy_from_user +EXPORT_SYMBOL vmlinux 0x84a8d676 vfs_create +EXPORT_SYMBOL vmlinux 0x84a97efb flush_dcache_icache_page +EXPORT_SYMBOL vmlinux 0x84b022d4 eth_header_cache +EXPORT_SYMBOL vmlinux 0x84b846bd kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x84b9a98c dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x84bd69bf dq_data_lock +EXPORT_SYMBOL vmlinux 0x84c751d0 unlock_page +EXPORT_SYMBOL vmlinux 0x84ffea8b idr_preload +EXPORT_SYMBOL vmlinux 0x8509c540 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0x85113114 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x8518eca9 param_get_short +EXPORT_SYMBOL vmlinux 0x853bf7c1 param_set_int +EXPORT_SYMBOL vmlinux 0x855ac2a4 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x85666f66 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856f0cc4 frontswap_register_ops +EXPORT_SYMBOL vmlinux 0x857bdcf0 pci_disable_obff +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85bbd952 tcf_em_register +EXPORT_SYMBOL vmlinux 0x85c8fa86 blk_init_tags +EXPORT_SYMBOL vmlinux 0x85cd583e d_set_d_op +EXPORT_SYMBOL vmlinux 0x85cf206c __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x861982d9 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x8620c592 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x862f93fa elv_rb_add +EXPORT_SYMBOL vmlinux 0x863c8743 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x8641023c swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x867d4c24 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x86832239 dma_common_mmap +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870889e4 blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x8713c411 inet6_register_icmp_sender +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x87236b53 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x873a53ea __arch_hweight8 +EXPORT_SYMBOL vmlinux 0x87537354 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x8757275a fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x8759deb1 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x8779a34f param_ops_byte +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87c3a4ff scsi_host_get +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88195dca tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x881ab0b9 fsync_bdev +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x8840f9f3 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x884e2527 tty_port_put +EXPORT_SYMBOL vmlinux 0x88513970 param_set_byte +EXPORT_SYMBOL vmlinux 0x88bec8f2 generic_write_end +EXPORT_SYMBOL vmlinux 0x88dd9f13 vm_insert_page +EXPORT_SYMBOL vmlinux 0x88e0352a sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x8906f18a generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x891fbb10 mempool_destroy +EXPORT_SYMBOL vmlinux 0x894ff3ea phy_connect_direct +EXPORT_SYMBOL vmlinux 0x895108f3 proc_dostring +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x897684ac clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x89797060 _raw_read_lock +EXPORT_SYMBOL vmlinux 0x897f061d downgrade_write +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89b5033f genphy_update_link +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d5fbce dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x89fff5a5 tcp_init_sock +EXPORT_SYMBOL vmlinux 0x8a039239 __netlink_dump_start +EXPORT_SYMBOL vmlinux 0x8a1ab4ee timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8a2fb922 kobject_init +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a51d565 quota_send_warning +EXPORT_SYMBOL vmlinux 0x8a5493bb qman_recovery_cleanup_fq +EXPORT_SYMBOL vmlinux 0x8a57fd7b xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x8a629047 padata_do_parallel +EXPORT_SYMBOL vmlinux 0x8a6af65c kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x8a7527e1 bm_pool_new +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a876f54 ida_init +EXPORT_SYMBOL vmlinux 0x8a8e5794 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ab0ebb8 n_tty_compat_ioctl_helper +EXPORT_SYMBOL vmlinux 0x8abfb766 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x8ad6dd52 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x8ae4c3c1 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x8b09ca46 skb_checksum +EXPORT_SYMBOL vmlinux 0x8b0c8d2b scsi_device_get +EXPORT_SYMBOL vmlinux 0x8b13b222 devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0x8b17a065 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b3211e0 blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b3d33de skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x8b55cac7 kobject_put +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b63e803 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x8ba94512 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x8bac50dc phy_device_create +EXPORT_SYMBOL vmlinux 0x8baf3116 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x8bb2d473 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x8bc22f8d read_cache_page +EXPORT_SYMBOL vmlinux 0x8bcdbd55 migrate_page +EXPORT_SYMBOL vmlinux 0x8bdc2cb7 qman_query_cgr +EXPORT_SYMBOL vmlinux 0x8bdf226c dev_remove_offload +EXPORT_SYMBOL vmlinux 0x8bf2ae1f fsl_lbc_addr +EXPORT_SYMBOL vmlinux 0x8c06326d xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x8c0b24c1 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c18f8c2 vfs_writev +EXPORT_SYMBOL vmlinux 0x8c511a05 netpoll_rx_enable +EXPORT_SYMBOL vmlinux 0x8c54d318 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x8c637d43 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL vmlinux 0x8c997dcc thaw_super +EXPORT_SYMBOL vmlinux 0x8ca516fe dev_printk +EXPORT_SYMBOL vmlinux 0x8ca79d16 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cd2e191 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x8ce3f806 module_refcount +EXPORT_SYMBOL vmlinux 0x8d015dd4 __bswapdi2 +EXPORT_SYMBOL vmlinux 0x8d1b8775 sk_free +EXPORT_SYMBOL vmlinux 0x8d1f7651 security_file_permission +EXPORT_SYMBOL vmlinux 0x8d2e268b param_ops_ulong +EXPORT_SYMBOL vmlinux 0x8d441107 genphy_suspend +EXPORT_SYMBOL vmlinux 0x8d4f8d89 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x8d51e839 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper +EXPORT_SYMBOL vmlinux 0x8d7676af f_setown +EXPORT_SYMBOL vmlinux 0x8d80eb8a bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x8d944cbb copy_in_user +EXPORT_SYMBOL vmlinux 0x8da0b3a2 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x8dacb9aa __elv_add_request +EXPORT_SYMBOL vmlinux 0x8dc61c49 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x8dcc669b nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0x8dde487c neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x8de0b5ac mempool_create +EXPORT_SYMBOL vmlinux 0x8de2cd6f bman_irqsource_get +EXPORT_SYMBOL vmlinux 0x8deda749 find_get_page +EXPORT_SYMBOL vmlinux 0x8df92f66 memchr_inv +EXPORT_SYMBOL vmlinux 0x8e0fe9f4 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x8e159eb3 pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0x8e332829 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x8e53fe09 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x8e6ce12e seq_release +EXPORT_SYMBOL vmlinux 0x8e6fbdec swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0x8e742413 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x8e85e9a3 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x8e864a86 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8e8d58da diu_ops +EXPORT_SYMBOL vmlinux 0x8e9bdb8a __seq_open_private +EXPORT_SYMBOL vmlinux 0x8ec04552 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x8ecc7eeb udp_ioctl +EXPORT_SYMBOL vmlinux 0x8ef8b328 blk_mq_alloc_reserved_request +EXPORT_SYMBOL vmlinux 0x8f0295a0 tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0x8f16e715 serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0x8f1d518a blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x8f24780c ps2_end_command +EXPORT_SYMBOL vmlinux 0x8f2512be dev_addr_add +EXPORT_SYMBOL vmlinux 0x8f273c58 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x8f382e85 unlock_rename +EXPORT_SYMBOL vmlinux 0x8f3892c6 led_blink_set_oneshot +EXPORT_SYMBOL vmlinux 0x8f58c253 mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x8f694ffc xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x8f7152e0 tty_lock_pair +EXPORT_SYMBOL vmlinux 0x8f736f5e xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0x8f7e8843 nobh_writepage +EXPORT_SYMBOL vmlinux 0x8f83a565 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x8f85f835 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x8f873852 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x8f8ae164 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x8f91ef84 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x8f9b408d vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x8fa85b09 generic_file_remap_pages +EXPORT_SYMBOL vmlinux 0x8faa4598 of_translate_address +EXPORT_SYMBOL vmlinux 0x90134d7f __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x902019c8 update_devfreq +EXPORT_SYMBOL vmlinux 0x9022e6e1 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x902514ae uart_add_one_port +EXPORT_SYMBOL vmlinux 0x9026cfa4 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x902fdc86 blk_rq_init +EXPORT_SYMBOL vmlinux 0x908b53ed param_set_short +EXPORT_SYMBOL vmlinux 0x90920e56 mpage_readpage +EXPORT_SYMBOL vmlinux 0x909437a6 seq_puts +EXPORT_SYMBOL vmlinux 0x90988a4e bprm_change_interp +EXPORT_SYMBOL vmlinux 0x909f8042 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x90c0a30f blk_get_queue +EXPORT_SYMBOL vmlinux 0x90d7b85d fput +EXPORT_SYMBOL vmlinux 0x90dd6e47 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc +EXPORT_SYMBOL vmlinux 0x90e3677e blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x91046a17 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x910661eb unregister_nls +EXPORT_SYMBOL vmlinux 0x910720bb pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x914cb203 alloc_anon_inode +EXPORT_SYMBOL vmlinux 0x914d4e20 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x91541182 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x9166358e pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x9166fada strncpy +EXPORT_SYMBOL vmlinux 0x91689818 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x9175b802 security_dentry_init_security +EXPORT_SYMBOL vmlinux 0x91930ab6 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x9196ade1 done_path_create +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x91a03b93 netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x91a9b1f2 devfreq_interval_update +EXPORT_SYMBOL vmlinux 0x91ac822f vscnprintf +EXPORT_SYMBOL vmlinux 0x9237c1a6 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x9240733e inet_getname +EXPORT_SYMBOL vmlinux 0x9240a8c8 of_device_unregister +EXPORT_SYMBOL vmlinux 0x92528f45 devm_iounmap +EXPORT_SYMBOL vmlinux 0x925520d2 blk_start_plug +EXPORT_SYMBOL vmlinux 0x9257dcee fbcon_rotate_cw +EXPORT_SYMBOL vmlinux 0x92580220 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x926efdaf dquot_scan_active +EXPORT_SYMBOL vmlinux 0x92843332 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x928e08f8 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0x9291cd3b memdup_user +EXPORT_SYMBOL vmlinux 0x92a7e6c5 bman_new_pool +EXPORT_SYMBOL vmlinux 0x92a9c60c time_to_tm +EXPORT_SYMBOL vmlinux 0x92acff12 wait_iff_congested +EXPORT_SYMBOL vmlinux 0x92bc220b lockref_get +EXPORT_SYMBOL vmlinux 0x92cdc163 check_submounts_and_drop +EXPORT_SYMBOL vmlinux 0x92d050df iov_pages +EXPORT_SYMBOL vmlinux 0x92dceda8 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x92df4eaa pci_release_regions +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x933c6761 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x933e10ec qman_ip_rev +EXPORT_SYMBOL vmlinux 0x934290f9 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x9353cd41 key_reject_and_link +EXPORT_SYMBOL vmlinux 0x9353eb5e inode_get_bytes +EXPORT_SYMBOL vmlinux 0x9356becd skb_pull +EXPORT_SYMBOL vmlinux 0x9372e514 get_task_io_context +EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93a8d611 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x93abc2a4 ppp_input +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93e332d8 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x93f90a0d sock_create_kern +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x94017658 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x940e1cd4 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x942db3a4 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x943d797c blk_mq_insert_request +EXPORT_SYMBOL vmlinux 0x943dc80f csum_and_copy_to_user +EXPORT_SYMBOL vmlinux 0x94413a32 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x945bd85a pci_request_region +EXPORT_SYMBOL vmlinux 0x94631b98 qman_irqsource_get +EXPORT_SYMBOL vmlinux 0x94683550 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x9499e404 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x949d2b41 ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x94ac5745 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94cbe0f0 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x94d78b7c qman_create_cgr +EXPORT_SYMBOL vmlinux 0x94ddaab3 account_page_redirty +EXPORT_SYMBOL vmlinux 0x9500fbcb igrab +EXPORT_SYMBOL vmlinux 0x9508f166 param_ops_bint +EXPORT_SYMBOL vmlinux 0x9514151a _mcount +EXPORT_SYMBOL vmlinux 0x952485b1 pme_fd_cmd_nop +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +EXPORT_SYMBOL vmlinux 0x9532091c ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x953cebfc lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x957153e8 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x9571c4cb buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x95837282 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x959ff22d dev_alert +EXPORT_SYMBOL vmlinux 0x95ab8c60 mdiobus_read +EXPORT_SYMBOL vmlinux 0x95c653d0 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x95cb929c of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x960cad94 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x961d7ccc simple_release_fs +EXPORT_SYMBOL vmlinux 0x96422589 inode_init_always +EXPORT_SYMBOL vmlinux 0x964251ae mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x96659a29 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x9683cbfd mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x968e4392 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x96a6c051 skb_push +EXPORT_SYMBOL vmlinux 0x96afca95 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x96b29254 strncasecmp +EXPORT_SYMBOL vmlinux 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96cf64ce tty_unlock_pair +EXPORT_SYMBOL vmlinux 0x96d4baaa tcf_hash_search +EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x975a6e5a mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x975d52bf redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x9760b3bf invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x976365d5 mb_cache_create +EXPORT_SYMBOL vmlinux 0x9785a6bd follow_down_one +EXPORT_SYMBOL vmlinux 0x97868aef __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x97a60e3d param_get_bool +EXPORT_SYMBOL vmlinux 0x97a87c16 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x97bbc1f4 inet_bind +EXPORT_SYMBOL vmlinux 0x97c56fb3 ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0x97d4e088 kernel_accept +EXPORT_SYMBOL vmlinux 0x97dbc016 would_dump +EXPORT_SYMBOL vmlinux 0x97dbdbfd kernel_write +EXPORT_SYMBOL vmlinux 0x97f23669 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x97f82443 pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0x981661a0 __idr_get_new_above +EXPORT_SYMBOL vmlinux 0x9821858f devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0x9829fc11 __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0x982cee18 simple_lookup +EXPORT_SYMBOL vmlinux 0x98496f49 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x98647b0a pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x98668903 pme_sw_flow_init +EXPORT_SYMBOL vmlinux 0x98684d66 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98a0f5a8 pme_ctx_ctrl_nop +EXPORT_SYMBOL vmlinux 0x98aeeee5 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x98b30291 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x98cf60b3 strlen +EXPORT_SYMBOL vmlinux 0x98d4dcde kill_pgrp +EXPORT_SYMBOL vmlinux 0x98f5d52b __scm_send +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x98fafd38 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x98fee4ee proc_symlink +EXPORT_SYMBOL vmlinux 0x99195078 vsnprintf +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x99591a7a ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x995d4c3c elv_add_request +EXPORT_SYMBOL vmlinux 0x997b7891 skb_unlink +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99afe916 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d3a43c dm_table_get_size +EXPORT_SYMBOL vmlinux 0x99d908ff dev_get_nest_level +EXPORT_SYMBOL vmlinux 0x99daf970 cad_pid +EXPORT_SYMBOL vmlinux 0x99e17203 dma_find_channel +EXPORT_SYMBOL vmlinux 0x99e20826 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x99fee3ca do_truncate +EXPORT_SYMBOL vmlinux 0x9a044352 netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0x9a048d3d security_path_chown +EXPORT_SYMBOL vmlinux 0x9a06380c dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x9a16fd7a sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1fc4b4 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9a2213e7 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x9a22e43d pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x9a2f0edf vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x9a3cf030 d_add_ci +EXPORT_SYMBOL vmlinux 0x9a4c928b tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x9a5ffc64 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x9a626734 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x9a85a96c netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0x9abe10cf follow_down +EXPORT_SYMBOL vmlinux 0x9acd1155 d_delete +EXPORT_SYMBOL vmlinux 0x9ae95c85 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x9af89f98 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9b174d2b tcp_make_synack +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b6f1468 pme_ctx_scan_orp +EXPORT_SYMBOL vmlinux 0x9b82332b scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x9b9e05f9 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bd42601 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x9be7bde4 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x9be87d44 elv_rb_find +EXPORT_SYMBOL vmlinux 0x9be8efc0 path_put +EXPORT_SYMBOL vmlinux 0x9bf48b3a pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x9bf91458 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x9c242d3b clocksource_unregister +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c4def48 pme_fd_cmd_scan +EXPORT_SYMBOL vmlinux 0x9c6ea875 of_create_pci_dev +EXPORT_SYMBOL vmlinux 0x9ca4b223 tcp_proto_cgroup +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9cc7aa42 tty_port_init +EXPORT_SYMBOL vmlinux 0x9cef3cc5 __idr_remove_all +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d05f6c4 ktime_get_clocktai +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d0f0d9d wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs +EXPORT_SYMBOL vmlinux 0x9d1a2233 __neigh_create +EXPORT_SYMBOL vmlinux 0x9d1ec7ee kernel_read +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d510ef5 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x9d6ed5f4 create_syslog_header +EXPORT_SYMBOL vmlinux 0x9d72229b fsl_ifc_find +EXPORT_SYMBOL vmlinux 0x9d7ce8dd _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x9d8c6794 dev_mc_add +EXPORT_SYMBOL vmlinux 0x9dc53750 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x9dd26550 qman_schedule_fq +EXPORT_SYMBOL vmlinux 0x9dd69217 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x9debdfc5 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x9dfc1edd bman_irqsource_add +EXPORT_SYMBOL vmlinux 0x9dfe1a4f scsi_register_interface +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e18f4a7 udp_disconnect +EXPORT_SYMBOL vmlinux 0x9e19b851 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x9e229f7d ppp_input_error +EXPORT_SYMBOL vmlinux 0x9e2f8c90 lz4_decompress_unknownoutputsize +EXPORT_SYMBOL vmlinux 0x9e371db3 __skb_checksum +EXPORT_SYMBOL vmlinux 0x9e44b9b7 of_get_next_available_child +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e862c6c blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x9e8ef2d7 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x9e90895c xfrm_garbage_collect +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ea72f34 mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0x9eab2aa7 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x9eb47a09 sock_update_memcg +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ec37bfb bio_init +EXPORT_SYMBOL vmlinux 0x9ed2eec7 param_set_ushort +EXPORT_SYMBOL vmlinux 0x9ee4bc4a skb_dequeue +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2f9768 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0x9f34d933 generic_setlease +EXPORT_SYMBOL vmlinux 0x9f3a341a genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x9f3e0a29 sock_no_getname +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f6480e0 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x9f83ea7a i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x9f916701 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x9f970f34 vm_map_ram +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa0627f blk_mq_init_commands +EXPORT_SYMBOL vmlinux 0x9fbf41f3 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x9fd20b45 kfree_skb +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe05f51 elevator_alloc +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0x9ffa757a pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0xa017c3ce scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xa01daee3 max8998_update_reg +EXPORT_SYMBOL vmlinux 0xa0256c53 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xa033fb49 __find_get_block +EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa07a37f0 memchr +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa086be10 dev_uc_init +EXPORT_SYMBOL vmlinux 0xa09f8be2 qman_affine_cpus +EXPORT_SYMBOL vmlinux 0xa0afb2cd xfrm_register_km +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0dad88e netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0xa0e56b24 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0f9c99b address_space_init_once +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0fc5cdc user_revoke +EXPORT_SYMBOL vmlinux 0xa0ff74d6 udp_memory_allocated +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1259709 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0xa13f55ec tcp_prequeue +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa15360e4 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0xa15ad957 seq_bitmap +EXPORT_SYMBOL vmlinux 0xa16166e9 netif_napi_del +EXPORT_SYMBOL vmlinux 0xa1a23ae8 single_release +EXPORT_SYMBOL vmlinux 0xa1b44e46 sync_blockdev +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1c99385 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xa1dd8b11 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0xa1e4d356 nf_hook_slow +EXPORT_SYMBOL vmlinux 0xa1f8fe75 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xa1fd6262 capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0xa2026975 kobject_set_name +EXPORT_SYMBOL vmlinux 0xa202a8e5 kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0xa2083fb1 tcp_init_cgroup +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa226dd28 dev_uc_sync +EXPORT_SYMBOL vmlinux 0xa2303a3c lock_rename +EXPORT_SYMBOL vmlinux 0xa23297f7 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xa26248ad create_empty_buffers +EXPORT_SYMBOL vmlinux 0xa27e7a47 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xa2802db7 pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa2888137 input_release_device +EXPORT_SYMBOL vmlinux 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL vmlinux 0xa28b9c5a dcb_getapp +EXPORT_SYMBOL vmlinux 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL vmlinux 0xa2ac9572 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register +EXPORT_SYMBOL vmlinux 0xa2e1458b bdget +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa303d1ff dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0xa30e81f4 __get_user_pages +EXPORT_SYMBOL vmlinux 0xa31ff741 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xa332464a of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xa34759a1 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa381944f dql_reset +EXPORT_SYMBOL vmlinux 0xa384c2ec bdput +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3abc422 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xa3b3964f new_inode +EXPORT_SYMBOL vmlinux 0xa3b7970d inet6_release +EXPORT_SYMBOL vmlinux 0xa3cba160 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xa3e75545 flush_tlb_kernel_range +EXPORT_SYMBOL vmlinux 0xa3f54778 noop_qdisc +EXPORT_SYMBOL vmlinux 0xa3fc3d50 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0xa400159f crc32_be +EXPORT_SYMBOL vmlinux 0xa4196faf prepare_binprm +EXPORT_SYMBOL vmlinux 0xa4331660 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xa4511467 crc16 +EXPORT_SYMBOL vmlinux 0xa4590092 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xa46a0c6d blk_end_request_all +EXPORT_SYMBOL vmlinux 0xa4701e9e timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0xa4a15899 dentry_path_raw +EXPORT_SYMBOL vmlinux 0xa4a94d26 find_next_bit_le +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4bdd447 __cputime_clockt_factor +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4ef5dad filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xa4f020c8 bio_integrity_free +EXPORT_SYMBOL vmlinux 0xa50a9380 netlink_net_capable +EXPORT_SYMBOL vmlinux 0xa50f9574 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa55c6830 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xa57ee27c bio_split +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5c34b40 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xa5cae0c7 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xa5d37e32 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xa5e89789 tty_port_destroy +EXPORT_SYMBOL vmlinux 0xa5eace68 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xa5f8d84f nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xa608f1fa writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0xa60dcd1a tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xa6167fd4 lock_may_read +EXPORT_SYMBOL vmlinux 0xa6273e21 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xa62880ea posix_lock_file +EXPORT_SYMBOL vmlinux 0xa63a2f9b param_get_ulong +EXPORT_SYMBOL vmlinux 0xa63d0d2e ipmi_get_smi_info +EXPORT_SYMBOL vmlinux 0xa6480f46 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xa658fc91 register_md_personality +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa664d2e5 dentry_open +EXPORT_SYMBOL vmlinux 0xa6697aee blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xa66cb837 sk_ns_capable +EXPORT_SYMBOL vmlinux 0xa6715115 do_settimeofday +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa678e41b tty_port_close +EXPORT_SYMBOL vmlinux 0xa67c2dbe blk_start_queue +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6a6decf linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xa6af1a94 pme2_exclusive_unset +EXPORT_SYMBOL vmlinux 0xa6b6465a unregister_qdisc +EXPORT_SYMBOL vmlinux 0xa6b8f89c blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xa6d59d4d security_inode_readlink +EXPORT_SYMBOL vmlinux 0xa6f29827 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xa70be9df lock_sock_fast +EXPORT_SYMBOL vmlinux 0xa713bd4f inet6_register_protosw +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa71fc002 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xa720678c lg_global_lock +EXPORT_SYMBOL vmlinux 0xa720a8a0 of_match_device +EXPORT_SYMBOL vmlinux 0xa735db59 prandom_u32 +EXPORT_SYMBOL vmlinux 0xa736002f blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xa73fc98f of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xa75af603 load_nls +EXPORT_SYMBOL vmlinux 0xa78c04f3 kfree_skb_list +EXPORT_SYMBOL vmlinux 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL vmlinux 0xa7944118 blk_delay_queue +EXPORT_SYMBOL vmlinux 0xa7d151a7 md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0xa7d207d9 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xa7d973f3 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xa7e8d625 inode_needs_sync +EXPORT_SYMBOL vmlinux 0xa7f0ee26 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xa7fc0d53 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xa80219b6 kobject_add +EXPORT_SYMBOL vmlinux 0xa8027b2e input_unregister_device +EXPORT_SYMBOL vmlinux 0xa8078b83 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xa81a27f3 devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0xa81d6a5c open_exec +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa86fff18 alloc_fddidev +EXPORT_SYMBOL vmlinux 0xa8721b97 system_state +EXPORT_SYMBOL vmlinux 0xa888e7fd scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8e3ea49 blk_mq_free_queue +EXPORT_SYMBOL vmlinux 0xa8f2500e pme_ctx_enable +EXPORT_SYMBOL vmlinux 0xa8f78f33 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa916b694 strnlen +EXPORT_SYMBOL vmlinux 0xa9273e1a epapr_hypercall_start +EXPORT_SYMBOL vmlinux 0xa93ba88e proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xa946bde3 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xa981fa2d iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0xa9886a8a tty_port_hangup +EXPORT_SYMBOL vmlinux 0xa9b63345 of_parse_phandle_with_fixed_args +EXPORT_SYMBOL vmlinux 0xa9bfa99f mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xa9d00a10 dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0xa9e387d0 ipmi_smi_watcher_register +EXPORT_SYMBOL vmlinux 0xaa0073b7 __net_get_random_once +EXPORT_SYMBOL vmlinux 0xaa191677 sock_create +EXPORT_SYMBOL vmlinux 0xaa22cf21 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xaa25c63c xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xaa43c789 pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0xaa46e87e lg_local_unlock +EXPORT_SYMBOL vmlinux 0xaa6e4df5 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa8d0ef2 pme_ctx_ctrl_read_flow +EXPORT_SYMBOL vmlinux 0xaa9087c0 param_ops_string +EXPORT_SYMBOL vmlinux 0xaaab8067 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xaaaebf23 proto_unregister +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaae217c8 mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab00a026 dget_parent +EXPORT_SYMBOL vmlinux 0xab0dd6d9 generic_write_checks +EXPORT_SYMBOL vmlinux 0xab10950d __devm_release_region +EXPORT_SYMBOL vmlinux 0xab2e7add i2c_master_send +EXPORT_SYMBOL vmlinux 0xab3020b5 tcp_release_cb +EXPORT_SYMBOL vmlinux 0xab4fea97 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xab5b22d4 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0xab67bc6f inode_permission +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab712568 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0xab77a4b0 sock_no_poll +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xab7ebf69 bdi_register +EXPORT_SYMBOL vmlinux 0xabc1137a ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xabc6dd63 cpufreq_sysfs_create_file +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0a731 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabe0b315 submit_bio_wait +EXPORT_SYMBOL vmlinux 0xabeee304 d_genocide +EXPORT_SYMBOL vmlinux 0xabff87ac pme_ctx_scan +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac1496b1 dev_queue_xmit_accel +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac26b820 _raw_write_lock +EXPORT_SYMBOL vmlinux 0xac3132d3 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xac3aafa1 security_path_unlink +EXPORT_SYMBOL vmlinux 0xac4dc50e netdev_notice +EXPORT_SYMBOL vmlinux 0xac5dadaa pci_match_id +EXPORT_SYMBOL vmlinux 0xac8037d3 scsi_get_command +EXPORT_SYMBOL vmlinux 0xac9bbab0 phy_find_first +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacbb822f input_free_device +EXPORT_SYMBOL vmlinux 0xacc5b5d2 csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacee9df0 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacfec717 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xad01744f kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad092c45 cdev_alloc +EXPORT_SYMBOL vmlinux 0xad0a6e0a flex_array_prealloc +EXPORT_SYMBOL vmlinux 0xad164875 kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xad3cae62 sock_update_classid +EXPORT_SYMBOL vmlinux 0xad43e2d2 bio_copy_kern +EXPORT_SYMBOL vmlinux 0xad46dec2 of_count_phandle_with_args +EXPORT_SYMBOL vmlinux 0xad5e4788 pci_bus_get +EXPORT_SYMBOL vmlinux 0xad6283fe vfs_getattr +EXPORT_SYMBOL vmlinux 0xad7214d9 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xad763b0b nla_put +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad9396da rfkill_alloc +EXPORT_SYMBOL vmlinux 0xadb12881 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xadbdce6e netif_receive_skb +EXPORT_SYMBOL vmlinux 0xadcfce73 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xadddcf18 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xade6a4ad release_firmware +EXPORT_SYMBOL vmlinux 0xae1c8f4d pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0xae27b3b1 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0xae38b780 kernel_getsockname +EXPORT_SYMBOL vmlinux 0xae3c288e __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xae545f06 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xae6796a5 simple_link +EXPORT_SYMBOL vmlinux 0xae68534b gen10g_resume +EXPORT_SYMBOL vmlinux 0xae729e59 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0xae87118b netdev_lower_dev_get_private_rcu +EXPORT_SYMBOL vmlinux 0xaebac8a8 fsnotify_get_group +EXPORT_SYMBOL vmlinux 0xaec0f39e of_device_register +EXPORT_SYMBOL vmlinux 0xaecb2aa1 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xaeeb700c of_find_backlight_by_node +EXPORT_SYMBOL vmlinux 0xaef3b605 get_agp_version +EXPORT_SYMBOL vmlinux 0xaf05b91b of_device_is_available +EXPORT_SYMBOL vmlinux 0xaf063510 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xaf0d765e dma_direct_ops +EXPORT_SYMBOL vmlinux 0xaf2d872c prepare_to_wait +EXPORT_SYMBOL vmlinux 0xaf3332e8 inet6_bind +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL vmlinux 0xaf6ae696 kstrndup +EXPORT_SYMBOL vmlinux 0xaf78a781 deactivate_super +EXPORT_SYMBOL vmlinux 0xaf891e57 dev_load +EXPORT_SYMBOL vmlinux 0xaf89afbc agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xafad493b param_ops_ushort +EXPORT_SYMBOL vmlinux 0xafb95a1f register_shrinker +EXPORT_SYMBOL vmlinux 0xafce7abf dump_align +EXPORT_SYMBOL vmlinux 0xafd68c33 flex_array_free +EXPORT_SYMBOL vmlinux 0xafd70bf2 qman_dca +EXPORT_SYMBOL vmlinux 0xafdbcd22 __mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0xafefd427 iget_locked +EXPORT_SYMBOL vmlinux 0xafff3d1d mempool_alloc +EXPORT_SYMBOL vmlinux 0xb0094218 input_open_device +EXPORT_SYMBOL vmlinux 0xb00aa25e pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xb00cac07 gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0xb0201372 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xb0354646 mfd_add_devices +EXPORT_SYMBOL vmlinux 0xb05b3658 __genl_register_family +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb07a12d7 no_llseek +EXPORT_SYMBOL vmlinux 0xb0815c7a fb_validate_mode +EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0b3dffc dquot_transfer +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0f77a22 devm_free_irq +EXPORT_SYMBOL vmlinux 0xb0ff7267 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xb0ffda2f blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xb10c1b34 kernel_bind +EXPORT_SYMBOL vmlinux 0xb1207a88 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xb125b4ab pci_set_power_state +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb165ef45 __irq_regs +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1a02896 simple_dentry_operations +EXPORT_SYMBOL vmlinux 0xb1c0dbe0 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c6e787 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1cf44df fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xb1db9e4e param_get_invbool +EXPORT_SYMBOL vmlinux 0xb2068a89 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xb224d457 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xb24d835f dquot_alloc +EXPORT_SYMBOL vmlinux 0xb256f840 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb278f0bc alloc_disk +EXPORT_SYMBOL vmlinux 0xb28384e2 d_lookup +EXPORT_SYMBOL vmlinux 0xb28975e1 softnet_data +EXPORT_SYMBOL vmlinux 0xb289a8f0 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xb28c1ff2 remap_vmalloc_range_partial +EXPORT_SYMBOL vmlinux 0xb2a2d054 pme_ctx_exclusive_inc +EXPORT_SYMBOL vmlinux 0xb2be6e92 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xb2c4866d tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xb2f06e10 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xb304acff ida_get_new_above +EXPORT_SYMBOL vmlinux 0xb313feee gen10g_config_aneg +EXPORT_SYMBOL vmlinux 0xb31494b9 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0xb3371da1 revalidate_disk +EXPORT_SYMBOL vmlinux 0xb3442954 mpage_readpages +EXPORT_SYMBOL vmlinux 0xb3614a48 proc_mkdir +EXPORT_SYMBOL vmlinux 0xb3758fc6 devm_gpiod_put +EXPORT_SYMBOL vmlinux 0xb38b92f0 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xb39b0bc2 register_nls +EXPORT_SYMBOL vmlinux 0xb3cf1b3b __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xb3d35515 qman_oos_fq +EXPORT_SYMBOL vmlinux 0xb3e92e78 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb3fe94cf vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb441f219 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xb44cf0f0 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb47189b5 reservation_ww_class +EXPORT_SYMBOL vmlinux 0xb47bc696 vm_stat +EXPORT_SYMBOL vmlinux 0xb488d7c3 pagecache_write_end +EXPORT_SYMBOL vmlinux 0xb4a92b7a agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0xb4b46463 ilookup5 +EXPORT_SYMBOL vmlinux 0xb4e452f8 vfs_link +EXPORT_SYMBOL vmlinux 0xb4ef1c40 user_path_create +EXPORT_SYMBOL vmlinux 0xb50d97b5 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xb5184b81 seq_pad +EXPORT_SYMBOL vmlinux 0xb51ce825 dma_sync_wait +EXPORT_SYMBOL vmlinux 0xb5289e56 get_gendisk +EXPORT_SYMBOL vmlinux 0xb52bca37 netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0xb535b9f6 qman_destroy_fq +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb55a2d40 simple_readpage +EXPORT_SYMBOL vmlinux 0xb57343c2 frontswap_shrink +EXPORT_SYMBOL vmlinux 0xb57f2457 sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0xb58bcc9f inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5ac95ac inet_select_addr +EXPORT_SYMBOL vmlinux 0xb5c88e8e finish_no_open +EXPORT_SYMBOL vmlinux 0xb5cf3e37 cfb_copyarea +EXPORT_SYMBOL vmlinux 0xb60ef7b9 mmc_can_erase +EXPORT_SYMBOL vmlinux 0xb61a0cfd dump_emit +EXPORT_SYMBOL vmlinux 0xb61d88e5 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb6394d4b param_set_bint +EXPORT_SYMBOL vmlinux 0xb63fc879 ps2_init +EXPORT_SYMBOL vmlinux 0xb665c159 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb6979176 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6b46a7c param_ops_int +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6c9aaed d_splice_alias +EXPORT_SYMBOL vmlinux 0xb6d2eafb qman_irqsource_add +EXPORT_SYMBOL vmlinux 0xb6df9f68 pcie_get_minimum_link +EXPORT_SYMBOL vmlinux 0xb6f247f0 nonseekable_open +EXPORT_SYMBOL vmlinux 0xb7006a70 vfs_readv +EXPORT_SYMBOL vmlinux 0xb701cef8 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xb7123954 pci_platform_rom +EXPORT_SYMBOL vmlinux 0xb71874d8 fb_find_mode +EXPORT_SYMBOL vmlinux 0xb71a8a89 of_device_alloc +EXPORT_SYMBOL vmlinux 0xb74d7a04 tcp_parse_options +EXPORT_SYMBOL vmlinux 0xb74f3dbe dev_driver_string +EXPORT_SYMBOL vmlinux 0xb769ef42 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0xb76dc8b1 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xb770be3e __percpu_counter_add +EXPORT_SYMBOL vmlinux 0xb77131b1 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xb79a4e1a store_fp_state +EXPORT_SYMBOL vmlinux 0xb7a9ae67 freeze_super +EXPORT_SYMBOL vmlinux 0xb7f155b4 serio_interrupt +EXPORT_SYMBOL vmlinux 0xb7f85c8d agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xb7fde971 pme_map +EXPORT_SYMBOL vmlinux 0xb81fd672 blk_put_request +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb8521cc6 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xb874b87a __clzsi2 +EXPORT_SYMBOL vmlinux 0xb8965846 input_register_handle +EXPORT_SYMBOL vmlinux 0xb89a744b wake_up_process +EXPORT_SYMBOL vmlinux 0xb89e5c8c pme_ctx_is_disabled +EXPORT_SYMBOL vmlinux 0xb89fda6d console_start +EXPORT_SYMBOL vmlinux 0xb8d73e97 param_set_uint +EXPORT_SYMBOL vmlinux 0xb917f829 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xb917f87c poll_freewait +EXPORT_SYMBOL vmlinux 0xb9190a4e rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0xb937f193 phy_detach +EXPORT_SYMBOL vmlinux 0xb93f6133 bdget_disk +EXPORT_SYMBOL vmlinux 0xb9488947 scsi_put_command +EXPORT_SYMBOL vmlinux 0xb9564c37 tcp_disconnect +EXPORT_SYMBOL vmlinux 0xb958e3bb ata_std_end_eh +EXPORT_SYMBOL vmlinux 0xb97b6f78 vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0xb9826f39 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb999de13 netdev_all_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0xb9acac8d generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xb9b4e181 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0xb9d5e027 qman_eqcr_is_empty +EXPORT_SYMBOL vmlinux 0xb9e8e2cc in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0xb9f75ad6 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0xba2a1e55 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba98aad7 pci_pme_active +EXPORT_SYMBOL vmlinux 0xbaabfe5d jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xbab4b846 kern_path +EXPORT_SYMBOL vmlinux 0xbac7e0e7 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0xbae2f77f jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xbae7f532 scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0xbaf568ae get_user_pages +EXPORT_SYMBOL vmlinux 0xbb141edc vlan_vid_del +EXPORT_SYMBOL vmlinux 0xbb180930 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb3a5660 scsi_print_result +EXPORT_SYMBOL vmlinux 0xbb4f4766 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xbb505171 elv_register_queue +EXPORT_SYMBOL vmlinux 0xbb589de6 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xbb5bbd17 napi_gro_receive +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb60e4df unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0xbb713e6d sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0xbb8792db sock_from_file +EXPORT_SYMBOL vmlinux 0xbb8aab6f dst_release +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbaeb559 memcg_socket_limit_enabled +EXPORT_SYMBOL vmlinux 0xbbaef002 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xbbb6b412 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xbbf8a62b __pskb_copy +EXPORT_SYMBOL vmlinux 0xbbfce06e __pagevec_release +EXPORT_SYMBOL vmlinux 0xbc207d30 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0xbc256e4a arp_create +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc389534 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xbc3f6afa down_read +EXPORT_SYMBOL vmlinux 0xbc400fa7 arp_send +EXPORT_SYMBOL vmlinux 0xbc542b46 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xbc70fcec blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xbc830128 dev_get_stats +EXPORT_SYMBOL vmlinux 0xbc9a1d77 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xbc9f0b5c gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcc5ffa0 do_sync_write +EXPORT_SYMBOL vmlinux 0xbcc900e3 inet_listen +EXPORT_SYMBOL vmlinux 0xbccdc2f6 flex_array_put +EXPORT_SYMBOL vmlinux 0xbcdb6237 fb_class +EXPORT_SYMBOL vmlinux 0xbcdedba7 of_get_mac_address +EXPORT_SYMBOL vmlinux 0xbce028fc vga_tryget +EXPORT_SYMBOL vmlinux 0xbcf150f9 xor_altivec_5 +EXPORT_SYMBOL vmlinux 0xbd04be3f submit_bh +EXPORT_SYMBOL vmlinux 0xbd0d71ca phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0xbd24ea3c __kfree_skb +EXPORT_SYMBOL vmlinux 0xbd346c6e loop_register_transfer +EXPORT_SYMBOL vmlinux 0xbd41d0ab nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xbd462b55 __kfifo_init +EXPORT_SYMBOL vmlinux 0xbd6acb05 bio_clone_bioset +EXPORT_SYMBOL vmlinux 0xbd803510 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xbd9a0d47 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0xbda2b62b vc_cons +EXPORT_SYMBOL vmlinux 0xbdc578a7 send_sig_info +EXPORT_SYMBOL vmlinux 0xbe27aac8 of_phy_attach +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe318845 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xbe348591 __nla_put +EXPORT_SYMBOL vmlinux 0xbe54ad23 phy_driver_register +EXPORT_SYMBOL vmlinux 0xbe6758ba zerocopy_sg_from_iovec +EXPORT_SYMBOL vmlinux 0xbe70f7aa set_groups +EXPORT_SYMBOL vmlinux 0xbe77aebe down_write_trylock +EXPORT_SYMBOL vmlinux 0xbe9c6581 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xbea3cbf8 i2c_transfer +EXPORT_SYMBOL vmlinux 0xbea8de99 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xbeaaa3f3 bioset_free +EXPORT_SYMBOL vmlinux 0xbeaba495 clear_nlink +EXPORT_SYMBOL vmlinux 0xbebaccd0 scsi_scan_target +EXPORT_SYMBOL vmlinux 0xbebe7246 of_dev_get +EXPORT_SYMBOL vmlinux 0xbec25473 of_parse_phandle +EXPORT_SYMBOL vmlinux 0xbec341f6 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xbec8bbb3 eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0xbedeb56f tcp_seq_open +EXPORT_SYMBOL vmlinux 0xbee441c5 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xbee5332c bio_pair_release +EXPORT_SYMBOL vmlinux 0xbee56602 pci_enable_obff +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef953c1 pci_alloc_dev +EXPORT_SYMBOL vmlinux 0xbf0232d4 blk_end_request +EXPORT_SYMBOL vmlinux 0xbf2a2d97 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xbf583e2b end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfabfe59 __debugger_iabr_match +EXPORT_SYMBOL vmlinux 0xbfb667bd brioctl_set +EXPORT_SYMBOL vmlinux 0xbfb8b0b7 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfe7c060 compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc00fd3b5 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xc014b725 blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0xc01a3406 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xc02cdd85 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc0301674 pci_pme_capable +EXPORT_SYMBOL vmlinux 0xc05e6c1f pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xc06de910 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc08f259f con_copy_unimap +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0afe7d6 __sock_create +EXPORT_SYMBOL vmlinux 0xc0b06950 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xc0b949cb sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xc0df4a98 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0xc0fc1cbc tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xc1219cf1 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0xc126598e release_sock +EXPORT_SYMBOL vmlinux 0xc131642a __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0xc13e5415 simple_fill_super +EXPORT_SYMBOL vmlinux 0xc13e646f scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xc14d7510 devfreq_resume_device +EXPORT_SYMBOL vmlinux 0xc157cd7f gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xc15a44c6 memzero_explicit +EXPORT_SYMBOL vmlinux 0xc196b1ae pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xc1c16eb1 bh_submit_read +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1f564cf tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xc1fe705e cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xc216e796 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc24271cb gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc25ca644 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xc268bcb5 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xc27ac096 set_binfmt +EXPORT_SYMBOL vmlinux 0xc281241f dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0xc29bf967 strspn +EXPORT_SYMBOL vmlinux 0xc2a1ee04 unload_nls +EXPORT_SYMBOL vmlinux 0xc2ad08b9 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xc2ad6977 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xc2d1f524 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xc2d48c9c noop_llseek +EXPORT_SYMBOL vmlinux 0xc2e26903 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f9c045 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xc310b981 strnstr +EXPORT_SYMBOL vmlinux 0xc314c3d2 __cputime_jiffies_factor +EXPORT_SYMBOL vmlinux 0xc31c3d13 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0xc32047be blk_integrity_register +EXPORT_SYMBOL vmlinux 0xc360156a jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xc37f0e5a phy_drivers_register +EXPORT_SYMBOL vmlinux 0xc38391bc __scsi_put_command +EXPORT_SYMBOL vmlinux 0xc384e13e kill_pid +EXPORT_SYMBOL vmlinux 0xc3a712a1 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xc3ba7061 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xc3bb368f i2c_register_driver +EXPORT_SYMBOL vmlinux 0xc3c3841e __alloc_skb +EXPORT_SYMBOL vmlinux 0xc3c6ec94 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0xc3ee3174 generic_file_open +EXPORT_SYMBOL vmlinux 0xc40b821f fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xc416fc50 netdev_emerg +EXPORT_SYMBOL vmlinux 0xc41ab19f neigh_lookup +EXPORT_SYMBOL vmlinux 0xc432c1fd pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xc44d0fee inet_stream_ops +EXPORT_SYMBOL vmlinux 0xc45755de find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0xc45e7cc2 sk_release_kernel +EXPORT_SYMBOL vmlinux 0xc45f0522 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0xc476cb54 pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0xc47cdf9c _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0xc48307db lz4_decompress +EXPORT_SYMBOL vmlinux 0xc4940de0 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a69f82 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xc4a782aa serio_rescan +EXPORT_SYMBOL vmlinux 0xc4bbd0d3 input_inject_event +EXPORT_SYMBOL vmlinux 0xc4cbb00a __ip_dev_find +EXPORT_SYMBOL vmlinux 0xc4d360b4 __breadahead +EXPORT_SYMBOL vmlinux 0xc4dabef9 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xc4ec3f3b genphy_read_status +EXPORT_SYMBOL vmlinux 0xc51e7061 mddev_congested +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc55391c0 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xc55723cb i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xc55c2a9d inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0xc568fde1 eth_mac_addr +EXPORT_SYMBOL vmlinux 0xc56fbcfa lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0xc57f68d4 __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0xc589e044 param_set_long +EXPORT_SYMBOL vmlinux 0xc5a3458b ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xc5aebcd9 dev_uc_flush +EXPORT_SYMBOL vmlinux 0xc5c08eab dpa_uio_bman +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5df0137 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xc5f4e129 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xc5fdef94 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xc618e411 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc64b57d9 irq_set_chip +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc663b075 __ioremap +EXPORT_SYMBOL vmlinux 0xc665d6d7 of_parse_phandle_with_args +EXPORT_SYMBOL vmlinux 0xc666a132 crc_t10dif +EXPORT_SYMBOL vmlinux 0xc6823b7a __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xc69b72d4 drop_nlink +EXPORT_SYMBOL vmlinux 0xc6aedc9d request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xc6cb465a __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6db3f8c ip_ct_attach +EXPORT_SYMBOL vmlinux 0xc703253d simple_rename +EXPORT_SYMBOL vmlinux 0xc7059cb3 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc7244be6 elevator_init +EXPORT_SYMBOL vmlinux 0xc7271852 tty_kref_put +EXPORT_SYMBOL vmlinux 0xc727d382 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xc72c39d4 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xc7369aab pm860x_reg_write +EXPORT_SYMBOL vmlinux 0xc736a33a blk_register_region +EXPORT_SYMBOL vmlinux 0xc746120b pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc7725d13 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a29398 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xc7a4264f kill_fasync +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7bfd9f1 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xc7f6fb83 mdiobus_register +EXPORT_SYMBOL vmlinux 0xc81c5a53 input_unregister_handler +EXPORT_SYMBOL vmlinux 0xc83b4d5b posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xc842b328 dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0xc8471a21 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc856ec30 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xc85ae4cf tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0xc8803d6f inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xc88bc057 d_instantiate +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8a54fd7 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xc8a886e3 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8b9a76b bman_recovery_exit +EXPORT_SYMBOL vmlinux 0xc8cb50ba jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xc8cbd0bd pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xc8fd2f26 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xc914b4e1 find_or_create_page +EXPORT_SYMBOL vmlinux 0xc91ff664 down_read_trylock +EXPORT_SYMBOL vmlinux 0xc9301d46 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xc93a0804 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xc93fbc54 wait_for_completion_io +EXPORT_SYMBOL vmlinux 0xc949f9b6 iput +EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0xc96fb6d0 qman_start_dequeues +EXPORT_SYMBOL vmlinux 0xc971f9d4 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xc978479a xz_dec_run +EXPORT_SYMBOL vmlinux 0xc981ecc9 mpage_writepage +EXPORT_SYMBOL vmlinux 0xc9881318 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xc98dc8b7 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xc9957eb0 neigh_ifdown +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9a7e3e7 blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc9e47d64 posix_test_lock +EXPORT_SYMBOL vmlinux 0xc9e78e07 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0xc9f06e2c generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xc9f4a7a2 ps2_command +EXPORT_SYMBOL vmlinux 0xca10682c tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xca1b3467 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xca37db03 generic_permission +EXPORT_SYMBOL vmlinux 0xca3b28c6 store_vr_state +EXPORT_SYMBOL vmlinux 0xca3d97e6 qman_get_null_cb +EXPORT_SYMBOL vmlinux 0xca58af4c touch_atime +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca709ebf of_platform_device_create +EXPORT_SYMBOL vmlinux 0xca7a56b1 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0xca8a0a53 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xca91e1af dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xcaa7821e input_close_device +EXPORT_SYMBOL vmlinux 0xcaae8c20 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xcad0d8ff netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0xcadd6997 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0xcae41c06 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xcaf3b15b __i2c_transfer +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb037e02 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0xcb0c5d50 param_get_uint +EXPORT_SYMBOL vmlinux 0xcb283bb3 netdev_update_features +EXPORT_SYMBOL vmlinux 0xcb304d6c scsi_dma_map +EXPORT_SYMBOL vmlinux 0xcb313aae dcache_readdir +EXPORT_SYMBOL vmlinux 0xcb5f9535 set_anon_super +EXPORT_SYMBOL vmlinux 0xcb6bfb38 pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0xcba9c717 pci_assign_resource +EXPORT_SYMBOL vmlinux 0xcbaa15f8 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xcbb4f821 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xcbb87861 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbcdfee2 devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0xcbd9a4cd vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xcbebb496 vfs_mknod +EXPORT_SYMBOL vmlinux 0xcbfc54f4 inet6_ioctl +EXPORT_SYMBOL vmlinux 0xcc032829 scsi_unregister +EXPORT_SYMBOL vmlinux 0xcc10968a inet_sendmsg +EXPORT_SYMBOL vmlinux 0xcc17504d _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc26ce0e tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xcc374fbb setup_new_exec +EXPORT_SYMBOL vmlinux 0xcc37f55c blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xcc4b84da of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc66db72 udp_add_offload +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc8e7e51 balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0xcc95b729 gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0xcc9979a7 default_qdisc_ops +EXPORT_SYMBOL vmlinux 0xcc99b8d6 tty_unthrottle +EXPORT_SYMBOL vmlinux 0xccc21f5e input_get_new_minor +EXPORT_SYMBOL vmlinux 0xccc77c0e kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xcd0529c7 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xcd1d2458 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xcd20667a kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd2c7939 tcp_proc_register +EXPORT_SYMBOL vmlinux 0xcd66cdb5 fb_blank +EXPORT_SYMBOL vmlinux 0xcd6c86e5 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xcd86c87f __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xcdae38c4 __neigh_event_send +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcddaf169 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcde6f6c3 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xcde96b0d jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xce04bc95 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xce04f255 bio_endio +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce3b3f09 profile_pc +EXPORT_SYMBOL vmlinux 0xce420fe7 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0xce49da9f sk_capable +EXPORT_SYMBOL vmlinux 0xce4e47b6 __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce892522 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xce9ba069 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xcea14056 do_SAK +EXPORT_SYMBOL vmlinux 0xced777cb proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf2233ea simple_pin_fs +EXPORT_SYMBOL vmlinux 0xcf3025cb inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0xcf3de3e1 I_BDEV +EXPORT_SYMBOL vmlinux 0xcf8d2771 d_drop +EXPORT_SYMBOL vmlinux 0xcffbb293 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xcffbc4ee pme_ctx_pmtcc +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd031072f pci_dev_put +EXPORT_SYMBOL vmlinux 0xd0327df3 ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0xd0328e05 jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0xd0419a2b pci_claim_resource +EXPORT_SYMBOL vmlinux 0xd041b9c4 skb_clone +EXPORT_SYMBOL vmlinux 0xd05648c2 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0xd05ab2f9 tty_register_device +EXPORT_SYMBOL vmlinux 0xd0605bf1 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0xd0720a17 on_each_cpu_cond +EXPORT_SYMBOL vmlinux 0xd09fc708 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0bce7eb ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd10c3452 idr_init +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd129e80c netlink_capable +EXPORT_SYMBOL vmlinux 0xd12e4598 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xd138719c qman_recovery_exit +EXPORT_SYMBOL vmlinux 0xd146f39f sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xd16db083 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xd1816f32 frontswap_writethrough +EXPORT_SYMBOL vmlinux 0xd1919a25 __dev_remove_offload +EXPORT_SYMBOL vmlinux 0xd1a066b0 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xd1a914d3 iterate_mounts +EXPORT_SYMBOL vmlinux 0xd1bf8e58 register_filesystem +EXPORT_SYMBOL vmlinux 0xd1cb9def sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xd1cc0681 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0xd1d65f99 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xd1f5db04 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xd2166f4d pci_read_vpd +EXPORT_SYMBOL vmlinux 0xd2201300 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0xd220c18b md_integrity_register +EXPORT_SYMBOL vmlinux 0xd220cf8a jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0xd22b2be5 tty_throttle +EXPORT_SYMBOL vmlinux 0xd2355d6e dm_register_target +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd26e983d kthread_bind +EXPORT_SYMBOL vmlinux 0xd2795581 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd28eeae8 __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0xd2902a8f xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xd298c2e0 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0xd29f598e dev_get_flags +EXPORT_SYMBOL vmlinux 0xd2a44f17 __block_write_begin +EXPORT_SYMBOL vmlinux 0xd2b09ce5 __kmalloc +EXPORT_SYMBOL vmlinux 0xd2c2a4c6 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xd2cd5568 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2f8ebad dquot_disable +EXPORT_SYMBOL vmlinux 0xd2fab0fd fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xd30de6a9 lock_fb_info +EXPORT_SYMBOL vmlinux 0xd31029eb udp_proc_register +EXPORT_SYMBOL vmlinux 0xd3174683 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd334c3ab bio_advance +EXPORT_SYMBOL vmlinux 0xd337b8c2 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xd33c555a __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xd33ccced vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xd356be5c pcie_set_mps +EXPORT_SYMBOL vmlinux 0xd36257ba memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0xd3c747a1 qman_irqsource_remove +EXPORT_SYMBOL vmlinux 0xd3cfdecf cap_mmap_file +EXPORT_SYMBOL vmlinux 0xd3db3e6c phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0xd435abf3 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xd442e406 blk_mq_free_single_hw_queue +EXPORT_SYMBOL vmlinux 0xd45a4f4e bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xd49b0757 __frontswap_store +EXPORT_SYMBOL vmlinux 0xd4d34fd0 generic_show_options +EXPORT_SYMBOL vmlinux 0xd4ebe013 d_alloc_name +EXPORT_SYMBOL vmlinux 0xd5014b9b __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xd5253cd6 mutex_unlock +EXPORT_SYMBOL vmlinux 0xd5263846 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xd5272e52 vlan_vid_add +EXPORT_SYMBOL vmlinux 0xd52ef2e7 notify_change +EXPORT_SYMBOL vmlinux 0xd5323dda max8925_reg_read +EXPORT_SYMBOL vmlinux 0xd5494979 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xd552ea24 neigh_destroy +EXPORT_SYMBOL vmlinux 0xd57036e2 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xd5a936d8 d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0xd5b00a02 __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0xd5b59a3e security_path_chmod +EXPORT_SYMBOL vmlinux 0xd5cf5528 try_to_release_page +EXPORT_SYMBOL vmlinux 0xd5ddc4ae __lru_cache_add +EXPORT_SYMBOL vmlinux 0xd5dfe9b4 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd6002279 inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd6220b70 give_up_console +EXPORT_SYMBOL vmlinux 0xd62c41df skb_free_datagram +EXPORT_SYMBOL vmlinux 0xd633e630 fbcon_set_rotate +EXPORT_SYMBOL vmlinux 0xd6392438 nf_register_hooks +EXPORT_SYMBOL vmlinux 0xd648d5ab sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0xd648e564 fb_match_mode +EXPORT_SYMBOL vmlinux 0xd6608486 compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0xd6799bcf d_alloc +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd6ba36f6 audit_log_task_info +EXPORT_SYMBOL vmlinux 0xd6d219c7 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0xd6d3be33 dquot_drop +EXPORT_SYMBOL vmlinux 0xd6d63e9d lg_local_lock_cpu +EXPORT_SYMBOL vmlinux 0xd6de501b blk_requeue_request +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6eed94d dquot_destroy +EXPORT_SYMBOL vmlinux 0xd6fd4053 __arch_hweight32 +EXPORT_SYMBOL vmlinux 0xd7171885 kobject_get +EXPORT_SYMBOL vmlinux 0xd7329955 sk_stream_error +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd761a383 ioremap_prot +EXPORT_SYMBOL vmlinux 0xd7675492 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xd76c8ddc vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xd76d78b4 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xd77a2f5c pme_stat_get +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7c3a3aa phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xd7cbddda memcpy_toiovec +EXPORT_SYMBOL vmlinux 0xd7cc9e06 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xd7d3b538 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0xd7d63ac9 i2c_use_client +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd7f34b81 pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0xd800d4bc __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xd8026d35 dev_open +EXPORT_SYMBOL vmlinux 0xd837b1b8 filp_open +EXPORT_SYMBOL vmlinux 0xd842fef2 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xd8810c3e inet_release +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a715cb lro_receive_frags +EXPORT_SYMBOL vmlinux 0xd8bbbfaa nla_append +EXPORT_SYMBOL vmlinux 0xd8c72cf0 ifla_policy +EXPORT_SYMBOL vmlinux 0xd8ded085 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0xd8e20b23 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd90574c4 sock_wfree +EXPORT_SYMBOL vmlinux 0xd90de3c2 do_splice_to +EXPORT_SYMBOL vmlinux 0xd91ad1f7 netdev_warn +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd92e16ba csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0xd95e94a4 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xd972c65b backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd99753ad genl_unregister_family +EXPORT_SYMBOL vmlinux 0xd9a9bb30 getname +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9be47ec gen10g_config_advert +EXPORT_SYMBOL vmlinux 0xd9cb0128 sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0xd9d36a9e dma_common_get_sgtable +EXPORT_SYMBOL vmlinux 0xd9d6ba70 always_delete_dentry +EXPORT_SYMBOL vmlinux 0xd9e74d50 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xd9f2b852 sock_wake_async +EXPORT_SYMBOL vmlinux 0xd9f69822 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xda19b164 kill_litter_super +EXPORT_SYMBOL vmlinux 0xda242495 km_query +EXPORT_SYMBOL vmlinux 0xda2478d0 param_ops_short +EXPORT_SYMBOL vmlinux 0xda36cd70 lookup_one_len +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda5fea74 elevator_exit +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xdaa16b82 of_clk_get +EXPORT_SYMBOL vmlinux 0xdabc1ea8 fsl_lbc_find +EXPORT_SYMBOL vmlinux 0xdabcc5d9 set_bdi_congested +EXPORT_SYMBOL vmlinux 0xdac73b9d ip6_xmit +EXPORT_SYMBOL vmlinux 0xdad7adff dqstats +EXPORT_SYMBOL vmlinux 0xdaea6e0d mfd_clone_cell +EXPORT_SYMBOL vmlinux 0xdb01198e fsl_upm_find +EXPORT_SYMBOL vmlinux 0xdb2efb75 machine_id +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb892e57 bio_reset +EXPORT_SYMBOL vmlinux 0xdba020d5 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xdbae4392 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xdbb24fc2 down_write +EXPORT_SYMBOL vmlinux 0xdbb7e331 generic_block_bmap +EXPORT_SYMBOL vmlinux 0xdbbd22cc pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbe4adcb seq_read +EXPORT_SYMBOL vmlinux 0xdbf2e507 blkdev_put +EXPORT_SYMBOL vmlinux 0xdbff26c5 xfrm_state_update +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc0487e2 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc266024 agp_copy_info +EXPORT_SYMBOL vmlinux 0xdc31990a dev_mc_del +EXPORT_SYMBOL vmlinux 0xdc324d48 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xdc3c41a8 __crypto_memneq +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc8b3a9d keyring_clear +EXPORT_SYMBOL vmlinux 0xdc9498dd down +EXPORT_SYMBOL vmlinux 0xdcb764ad memset +EXPORT_SYMBOL vmlinux 0xdcdcc413 elevator_change +EXPORT_SYMBOL vmlinux 0xdcde9861 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xdcdfda79 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xdd0010b3 do_splice_direct +EXPORT_SYMBOL vmlinux 0xdd13ef8e proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0xdd38a3d1 input_flush_device +EXPORT_SYMBOL vmlinux 0xdd62c02f ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xdd6fe4e0 neigh_table_init +EXPORT_SYMBOL vmlinux 0xdd707d2c abort_creds +EXPORT_SYMBOL vmlinux 0xdd7a013f unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xdd8bcad6 __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xdd955144 __debugger +EXPORT_SYMBOL vmlinux 0xddaa007b simple_dir_operations +EXPORT_SYMBOL vmlinux 0xddc583ba inet6_protos +EXPORT_SYMBOL vmlinux 0xddc9b2e1 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xddd41e89 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0xdddf5694 simple_transaction_read +EXPORT_SYMBOL vmlinux 0xddf95a01 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0xde10eb10 param_set_invbool +EXPORT_SYMBOL vmlinux 0xde2370d0 mount_pseudo +EXPORT_SYMBOL vmlinux 0xde323c27 pci_domain_nr +EXPORT_SYMBOL vmlinux 0xde395fe0 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0xde3c3e09 mmc_set_blockcount +EXPORT_SYMBOL vmlinux 0xde425b3a qdisc_reset +EXPORT_SYMBOL vmlinux 0xde48e9ca _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xde6151db tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xde66d519 kmem_cache_create +EXPORT_SYMBOL vmlinux 0xde6cb70f xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xde72d241 d_instantiate_no_diralias +EXPORT_SYMBOL vmlinux 0xde91448c load_vr_state +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdea00ac1 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xdeac2d53 from_kgid +EXPORT_SYMBOL vmlinux 0xdebc86d2 scsi_print_command +EXPORT_SYMBOL vmlinux 0xdec082e3 put_io_context +EXPORT_SYMBOL vmlinux 0xdec4d1b2 netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0xdecbace5 vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0xded390b4 phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0xdeefa361 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xdefa0ad8 qman_testwrite_cgr +EXPORT_SYMBOL vmlinux 0xdefc7073 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xdf13971c dpa_uio_qman +EXPORT_SYMBOL vmlinux 0xdf226836 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xdf257acb led_set_brightness +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf84bccc qman_volatile_dequeue +EXPORT_SYMBOL vmlinux 0xdf871607 dev_deactivate +EXPORT_SYMBOL vmlinux 0xdf894f47 netdev_info +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf949f98 check_disk_change +EXPORT_SYMBOL vmlinux 0xdfaf4e1c dev_addr_init +EXPORT_SYMBOL vmlinux 0xdfbca776 tty_port_open +EXPORT_SYMBOL vmlinux 0xdfde5b76 proc_set_size +EXPORT_SYMBOL vmlinux 0xe0070573 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0xe0157ad7 commit_creds +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe07089b1 get_thermal_instance +EXPORT_SYMBOL vmlinux 0xe075a14b cfb_imageblit +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe08fa9dd lease_modify +EXPORT_SYMBOL vmlinux 0xe0ac38a5 dput +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0c8db49 dev_change_flags +EXPORT_SYMBOL vmlinux 0xe0d091bd inet6_getname +EXPORT_SYMBOL vmlinux 0xe0dbcb7e dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xe0e1ae9c skb_copy +EXPORT_SYMBOL vmlinux 0xe0ef10c7 ida_simple_remove +EXPORT_SYMBOL vmlinux 0xe0f21835 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe12f2777 filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0xe154c938 vfs_unlink +EXPORT_SYMBOL vmlinux 0xe15601c6 sk_stop_timer +EXPORT_SYMBOL vmlinux 0xe172d644 kill_block_super +EXPORT_SYMBOL vmlinux 0xe1759903 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1856f25 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0xe1b0e9c8 __break_lease +EXPORT_SYMBOL vmlinux 0xe1c5b33e inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xe1d1add2 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xe1e1c9a3 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xe1e85553 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe2085542 simple_write_end +EXPORT_SYMBOL vmlinux 0xe220ceb8 __debugger_sstep +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe250937f inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0xe26532c5 sock_i_uid +EXPORT_SYMBOL vmlinux 0xe29e1d0e out_of_line_wait_on_atomic_t +EXPORT_SYMBOL vmlinux 0xe2a28575 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xe2a9fa25 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xe2b40e8a mdiobus_write +EXPORT_SYMBOL vmlinux 0xe2ba507b mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0xe2be5498 lg_global_unlock +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e472cb inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xe2f3429f mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0xe32ca872 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0xe330ec10 inet_del_offload +EXPORT_SYMBOL vmlinux 0xe338a013 lookup_bdev +EXPORT_SYMBOL vmlinux 0xe35c5285 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xe3813f37 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xe3a53f4c sort +EXPORT_SYMBOL vmlinux 0xe3aeab1e neigh_seq_next +EXPORT_SYMBOL vmlinux 0xe3b2df4c __blk_run_queue +EXPORT_SYMBOL vmlinux 0xe3bacb89 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xe3c9fc78 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xe3ce3fe4 __serio_register_port +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3f083d9 local_flush_tlb_page +EXPORT_SYMBOL vmlinux 0xe42f55a5 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xe43dcc27 pci_write_vpd +EXPORT_SYMBOL vmlinux 0xe443e2e7 ata_port_printk +EXPORT_SYMBOL vmlinux 0xe44b0503 blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0xe44eaada netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe49808b4 qman_poll +EXPORT_SYMBOL vmlinux 0xe4a895fa up_write +EXPORT_SYMBOL vmlinux 0xe4ab00bb of_node_get +EXPORT_SYMBOL vmlinux 0xe4ba73f0 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0xe4ded607 key_task_permission +EXPORT_SYMBOL vmlinux 0xe4e3af0c max8998_write_reg +EXPORT_SYMBOL vmlinux 0xe4f2cf18 of_find_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL vmlinux 0xe4f727db generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xe4fe8ca1 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe525c892 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xe53d1faa of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xe545ec58 inet_add_offload +EXPORT_SYMBOL vmlinux 0xe5485a82 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xe568d090 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xe56fad2d fd_install +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe588d6bd block_truncate_page +EXPORT_SYMBOL vmlinux 0xe5a79d6c phy_register_fixup +EXPORT_SYMBOL vmlinux 0xe5bf3bb9 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5fe37ae ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0xe613e5ff alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xe61a4007 mmc_put_card +EXPORT_SYMBOL vmlinux 0xe633e9c9 free_netdev +EXPORT_SYMBOL vmlinux 0xe63685d3 sock_kfree_s +EXPORT_SYMBOL vmlinux 0xe65db815 __cleancache_invalidate_fs +EXPORT_SYMBOL vmlinux 0xe66452ab dql_init +EXPORT_SYMBOL vmlinux 0xe6801fdc rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe69a9df4 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0xe69f64e9 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL vmlinux 0xe6b40b47 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xe6b59a85 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xe6bc9e4a kset_register +EXPORT_SYMBOL vmlinux 0xe6beafe6 tcp_check_req +EXPORT_SYMBOL vmlinux 0xe6ecee6c set_device_ro +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe6fd6af6 flush_tlb_range +EXPORT_SYMBOL vmlinux 0xe72de598 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xe7382b82 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xe7510ce6 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0xe767e669 netif_rx_ni +EXPORT_SYMBOL vmlinux 0xe76e1a8b mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7aa0150 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xe7b6108f jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0xe7c84014 lockref_mark_dead +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe8077a7f fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xe80d9017 neigh_direct_output +EXPORT_SYMBOL vmlinux 0xe817e461 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xe833fa77 gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0xe835e1b9 cdrom_release +EXPORT_SYMBOL vmlinux 0xe83c8985 sys_fillrect +EXPORT_SYMBOL vmlinux 0xe847e465 set_create_files_as +EXPORT_SYMBOL vmlinux 0xe861bb3b mach_chroma_md +EXPORT_SYMBOL vmlinux 0xe889273f rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xe8a1fc29 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xe8b15595 blk_mq_can_queue +EXPORT_SYMBOL vmlinux 0xe8b1a0bd pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8b82fe0 bman_ip_rev +EXPORT_SYMBOL vmlinux 0xe8bd582a fddi_type_trans +EXPORT_SYMBOL vmlinux 0xe8bea3bc qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xe8c438f3 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xe8c57126 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0xe8fc8fbd __bforget +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe922512e bdi_init +EXPORT_SYMBOL vmlinux 0xe92ad32d touch_buffer +EXPORT_SYMBOL vmlinux 0xe950499d qman_release_fqid_range +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe955e0bd input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0xe95ad4ee scsi_target_resume +EXPORT_SYMBOL vmlinux 0xe978b78d pme_hw_flow_new +EXPORT_SYMBOL vmlinux 0xe99bdc5d serio_reconnect +EXPORT_SYMBOL vmlinux 0xe9b03d3d tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xe9e53d63 tcp_poll +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xe9fa0b08 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea16dd4c tcp_destroy_cgroup +EXPORT_SYMBOL vmlinux 0xea1d55da eth_validate_addr +EXPORT_SYMBOL vmlinux 0xea477673 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0xea4917f4 mnt_pin +EXPORT_SYMBOL vmlinux 0xea6e3003 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xea881724 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xea968c96 ___ratelimit +EXPORT_SYMBOL vmlinux 0xea9a9c2f security_d_instantiate +EXPORT_SYMBOL vmlinux 0xea9b74f3 search_binary_handler +EXPORT_SYMBOL vmlinux 0xeaa04992 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0xeab1bd1f dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xeb02347f tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0xeb16f83e pcie_get_mps +EXPORT_SYMBOL vmlinux 0xeb30cd4a pagevec_lookup +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb44339a free_pages_exact +EXPORT_SYMBOL vmlinux 0xeb4acf55 register_gifconf +EXPORT_SYMBOL vmlinux 0xeb56ae0b clocksource_register +EXPORT_SYMBOL vmlinux 0xeb6827a9 sock_no_listen +EXPORT_SYMBOL vmlinux 0xeb99cf39 pci_remove_bus +EXPORT_SYMBOL vmlinux 0xeba497a0 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xebad6163 framebuffer_release +EXPORT_SYMBOL vmlinux 0xebcab3a6 ppc_pci_io +EXPORT_SYMBOL vmlinux 0xebcfb497 devm_clk_put +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xec128311 dev_change_carrier +EXPORT_SYMBOL vmlinux 0xec17ebb0 of_match_node +EXPORT_SYMBOL vmlinux 0xec32853e jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xec35dafc ipv4_specific +EXPORT_SYMBOL vmlinux 0xec38373f mach_psr2_md +EXPORT_SYMBOL vmlinux 0xec480d3c kmalloc_caches +EXPORT_SYMBOL vmlinux 0xec4a358c generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec5f4c20 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xec6084a6 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xec660d25 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0xec97dde5 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xecbb926f xor_altivec_3 +EXPORT_SYMBOL vmlinux 0xecc1449e bm_pool_set +EXPORT_SYMBOL vmlinux 0xecc222cf __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xecd73151 phy_device_register +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xececa893 __netif_schedule +EXPORT_SYMBOL vmlinux 0xecf31d31 twl6040_power +EXPORT_SYMBOL vmlinux 0xed597524 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xed80446a mmc_fixup_device +EXPORT_SYMBOL vmlinux 0xed812359 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0xed833ffe get_pci_dma_ops +EXPORT_SYMBOL vmlinux 0xed8e80e3 aio_complete +EXPORT_SYMBOL vmlinux 0xed9f9a20 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xeda60121 ata_link_printk +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc410d0 udplite_table +EXPORT_SYMBOL vmlinux 0xedc97009 proto_register +EXPORT_SYMBOL vmlinux 0xedd23e31 __nla_reserve +EXPORT_SYMBOL vmlinux 0xeddf1c25 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0xedeb8ab7 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0xedfcfe38 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xee09951c tcp_child_process +EXPORT_SYMBOL vmlinux 0xee246dff ida_destroy +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee2d3607 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0xee501c1c set_disk_ro +EXPORT_SYMBOL vmlinux 0xee696e6f phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xee6d8272 inet_stream_connect +EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder +EXPORT_SYMBOL vmlinux 0xee9191ee bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb20771 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xeeb5bd3b __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xeeb819d6 i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0xeed4a491 cdev_init +EXPORT_SYMBOL vmlinux 0xeed889c5 sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0xeedad79d cdev_del +EXPORT_SYMBOL vmlinux 0xeedaf274 sock_create_lite +EXPORT_SYMBOL vmlinux 0xeeec26a7 queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xeef161aa groups_free +EXPORT_SYMBOL vmlinux 0xef050ae4 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xef109449 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xef398631 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xef3dbbd8 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xef7ead6d sys_imageblit +EXPORT_SYMBOL vmlinux 0xefa80ee0 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xefdb3058 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xeffff5fc replace_mount_options +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf004cf70 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xf011ac2e dquot_free_inode +EXPORT_SYMBOL vmlinux 0xf0187927 __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0xf01918a7 do_splice_from +EXPORT_SYMBOL vmlinux 0xf029198e dev_err +EXPORT_SYMBOL vmlinux 0xf05ffa15 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xf0619801 timekeeping_clocktai +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf0680500 lock_may_write +EXPORT_SYMBOL vmlinux 0xf0860b3b sock_setsockopt +EXPORT_SYMBOL vmlinux 0xf087137d __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0xf089e3d6 dst_discard +EXPORT_SYMBOL vmlinux 0xf09de776 get_random_int +EXPORT_SYMBOL vmlinux 0xf0bbf679 dev_emerg +EXPORT_SYMBOL vmlinux 0xf0c42894 stop_tty +EXPORT_SYMBOL vmlinux 0xf0caaaf3 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xf0d8a882 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xf0e12e73 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xf0e57a9f bman_flush_stockpile +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fd4e8f rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10ca3e7 lockref_get_or_lock +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11b6374 pme_ctx_ctrl_update_flow +EXPORT_SYMBOL vmlinux 0xf11cd6ce down_interruptible +EXPORT_SYMBOL vmlinux 0xf1289492 __lock_page +EXPORT_SYMBOL vmlinux 0xf13feb57 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0xf147dcb2 hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0xf148c63f blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xf149c539 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xf14b7ba0 locks_init_lock +EXPORT_SYMBOL vmlinux 0xf169ecd9 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0xf183189b __ioremap_at +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1b0761c mem_map +EXPORT_SYMBOL vmlinux 0xf1cf9af0 blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e06df1 gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf2025040 netif_device_detach +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf20ed3f9 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0xf21cc227 scsi_init_io +EXPORT_SYMBOL vmlinux 0xf222defb __ip_select_ident +EXPORT_SYMBOL vmlinux 0xf22881e8 lg_local_lock +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf2455279 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL vmlinux 0xf26a76bb nf_setsockopt +EXPORT_SYMBOL vmlinux 0xf29d43fc proc_set_user +EXPORT_SYMBOL vmlinux 0xf2a0af8f backlight_device_registered +EXPORT_SYMBOL vmlinux 0xf2a208f2 mnt_unpin +EXPORT_SYMBOL vmlinux 0xf2b1ac8e __getnstimeofday +EXPORT_SYMBOL vmlinux 0xf2bc2f48 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xf2cd2f14 sock_edemux +EXPORT_SYMBOL vmlinux 0xf2d6d60f devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0xf2dea7ff swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf314a6b8 paca +EXPORT_SYMBOL vmlinux 0xf322a206 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xf328bc0d tty_port_close_end +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf3712909 qman_query_congestion +EXPORT_SYMBOL vmlinux 0xf3757d65 follow_up +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf3999d1d devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xf3a1ed77 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3c23693 inet_frag_find +EXPORT_SYMBOL vmlinux 0xf3e6cb50 netdev_notify_peers +EXPORT_SYMBOL vmlinux 0xf3f78a58 twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0xf401eb8b sk_filter +EXPORT_SYMBOL vmlinux 0xf41155ef md_flush_request +EXPORT_SYMBOL vmlinux 0xf4162760 empty_aops +EXPORT_SYMBOL vmlinux 0xf41f495b clear_inode +EXPORT_SYMBOL vmlinux 0xf4310c75 __put_cred +EXPORT_SYMBOL vmlinux 0xf43214c7 simple_write_begin +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf4567511 kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0xf488f228 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xf48e52a8 __skb_gso_segment +EXPORT_SYMBOL vmlinux 0xf495dbd4 scsi_remove_device +EXPORT_SYMBOL vmlinux 0xf49fb766 mmc_gpio_free_cd +EXPORT_SYMBOL vmlinux 0xf4b07bdd generic_listxattr +EXPORT_SYMBOL vmlinux 0xf4b39d70 ppp_register_channel +EXPORT_SYMBOL vmlinux 0xf4bdbeb9 __frontswap_invalidate_area +EXPORT_SYMBOL vmlinux 0xf4bec144 check_disk_size_change +EXPORT_SYMBOL vmlinux 0xf4bef81e twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0xf4cca1e8 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0xf4d609c7 sk_alloc +EXPORT_SYMBOL vmlinux 0xf4e0cae5 pme_ctx_exclusive_dec +EXPORT_SYMBOL vmlinux 0xf4eea54e d_find_any_alias +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4fb0523 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xf5198bbf tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xf51bf88b nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xf5222143 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xf535db95 led_blink_set +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf53df0a5 gen_pool_free +EXPORT_SYMBOL vmlinux 0xf5472e1d __dquot_free_space +EXPORT_SYMBOL vmlinux 0xf55b3b3d __arch_hweight16 +EXPORT_SYMBOL vmlinux 0xf568251e netpoll_print_options +EXPORT_SYMBOL vmlinux 0xf590f472 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0xf5a085c4 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5a8f888 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0xf5cba951 __scm_destroy +EXPORT_SYMBOL vmlinux 0xf5cefeba skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister +EXPORT_SYMBOL vmlinux 0xf5e3a57a dev_mc_sync +EXPORT_SYMBOL vmlinux 0xf5e3e826 udplite_prot +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf6004f74 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xf621dcd3 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xf6296e6e inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xf6337082 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf653121f pci_set_ltr +EXPORT_SYMBOL vmlinux 0xf657838b bio_add_page +EXPORT_SYMBOL vmlinux 0xf65e1534 skb_flow_dissect +EXPORT_SYMBOL vmlinux 0xf663761c d_rehash +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf68687be __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6d88f9d simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6f09895 jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0xf70333d4 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xf7289d14 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0xf73a8806 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xf74cae7c locks_free_lock +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7686d5d nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xf76f65cb devm_gpio_request_one +EXPORT_SYMBOL vmlinux 0xf78d69c2 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xf7adcaf3 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xf7de40a0 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xf7e43e7b serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0xf7eb6766 netif_napi_add +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf80de9ff hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf812cff6 memscan +EXPORT_SYMBOL vmlinux 0xf81608cd read_cache_page_async +EXPORT_SYMBOL vmlinux 0xf827cb83 free_reserved_area +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82caaf5 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf836191a inet6_unregister_icmp_sender +EXPORT_SYMBOL vmlinux 0xf83e860f xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xf8488a0e agp_find_bridge +EXPORT_SYMBOL vmlinux 0xf8552118 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xf891612e xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xf89a3d62 bman_affine_cpus +EXPORT_SYMBOL vmlinux 0xf89c8e07 ida_pre_get +EXPORT_SYMBOL vmlinux 0xf8d7df54 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xf8e165a3 generic_make_request +EXPORT_SYMBOL vmlinux 0xf8ed18f1 phy_device_free +EXPORT_SYMBOL vmlinux 0xf8f003ce adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0xf8fda794 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xf9228003 get_immrbase +EXPORT_SYMBOL vmlinux 0xf9236ce6 keyring_alloc +EXPORT_SYMBOL vmlinux 0xf93f3821 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf955940a ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xf9609894 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xf9683f9e napi_complete +EXPORT_SYMBOL vmlinux 0xf9696dd1 netdev_master_upper_dev_link_private +EXPORT_SYMBOL vmlinux 0xf97dd242 user_path_at +EXPORT_SYMBOL vmlinux 0xf989254e mmc_read_bkops_status +EXPORT_SYMBOL vmlinux 0xf98b673a tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xf98f9cf1 dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9af6361 __frontswap_load +EXPORT_SYMBOL vmlinux 0xf9bb3337 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xf9c0b663 strlcat +EXPORT_SYMBOL vmlinux 0xf9c418f8 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0xfa0909b6 inet_del_protocol +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa7364cc tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xfa7f3156 wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0xfa80fc3b dev_set_group +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfad766ec pci_scan_slot +EXPORT_SYMBOL vmlinux 0xfae67b1f cap_mmap_addr +EXPORT_SYMBOL vmlinux 0xfaea9098 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb33cf09 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xfb499280 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb94103e __clzdi2 +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbcbacba __invalidate_device +EXPORT_SYMBOL vmlinux 0xfbdb0299 backlight_force_update +EXPORT_SYMBOL vmlinux 0xfbe32c23 security_inode_init_security +EXPORT_SYMBOL vmlinux 0xfbe415c7 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xfbe441ec free_buffer_head +EXPORT_SYMBOL vmlinux 0xfbfad019 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xfbff47c5 register_console +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc229e4d mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xfc34cdf4 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3a1f0b bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xfc3b160f mempool_create_node +EXPORT_SYMBOL vmlinux 0xfc3c7cc7 tcf_register_action +EXPORT_SYMBOL vmlinux 0xfc3f70ad twl6040_get_pll +EXPORT_SYMBOL vmlinux 0xfc55619c pci_disable_ltr +EXPORT_SYMBOL vmlinux 0xfc9e9f90 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xfca700b6 have_submounts +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL vmlinux 0xfcb926cd kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd9f294 scsi_device_put +EXPORT_SYMBOL vmlinux 0xfcdc22c7 pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0xfce759e0 block_commit_write +EXPORT_SYMBOL vmlinux 0xfce9a5a8 __secpath_destroy +EXPORT_SYMBOL vmlinux 0xfcebbd5b pme2_exclusive_set +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd1e594d scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xfd3ec2e5 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xfd42198c of_mdio_find_bus +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd99623a ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xfda2089d elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xfdb6cedc _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdbe0288 pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0xfdc476a9 pskb_expand_head +EXPORT_SYMBOL vmlinux 0xfdcb496e pme_hw_flow_free +EXPORT_SYMBOL vmlinux 0xfdcfbbad netif_carrier_on +EXPORT_SYMBOL vmlinux 0xfdd3d30f uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xfdd40a4d mmc_release_host +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe0ed961 dentry_unhash +EXPORT_SYMBOL vmlinux 0xfe109934 skb_queue_purge +EXPORT_SYMBOL vmlinux 0xfe35aa4a percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xfe45a2ad d_invalidate +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe6efe11 bdi_unregister +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe816ffb tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xfe9006e5 mmc_can_reset +EXPORT_SYMBOL vmlinux 0xfebc5ffb __lock_buffer +EXPORT_SYMBOL vmlinux 0xfebd7109 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0xfed6a996 gen10g_restart_aneg +EXPORT_SYMBOL vmlinux 0xfed7a159 vm_event_states +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfeebc7c4 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xfef3cb57 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xfefa8758 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xff0f0730 setattr_copy +EXPORT_SYMBOL vmlinux 0xff141256 tty_check_change +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff75ec16 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xff79eea6 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xff90214e rt6_lookup +EXPORT_SYMBOL vmlinux 0xff9699ea seq_printf +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffb5a1e1 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0xffb5f1a8 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xffc5feff file_update_time +EXPORT_SYMBOL vmlinux 0xffcd5839 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL_GPL crypto/af_alg 0x27e2be1b af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x289197b2 af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0x48da5c55 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x58716898 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x5c180bd6 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x85492dde af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xaf55453a af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0xcd7de201 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0xf0ac2586 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xd9eb6a75 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x5aa50253 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xc55ba0ff async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x4fe1befd async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xb582de7e async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x743feb7f async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x7b861fd1 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9cebab8c async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xa66a54b3 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x31146deb async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xdb9874b5 async_xor +EXPORT_SYMBOL_GPL crypto/authenc 0x587ef278 crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x79bad4c7 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x1ead37c5 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x27278ca9 __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x4a2a3ca6 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1291971c __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1e2c961f __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x78702305 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x8f04034a __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast_common 0x08aa6fb7 cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x0c5fbf8a cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xe39dd4b4 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0xee83a4f3 cast_s4 +EXPORT_SYMBOL_GPL crypto/cryptd 0x1bd7b746 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x20eebab4 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x43963768 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x6a2a203d cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x6bb0b006 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x72abc911 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xa9687b4c cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xb5294b81 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xb9a762a0 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xdd76200b cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/lrw 0x3864eb66 lrw_free_table +EXPORT_SYMBOL_GPL crypto/lrw 0x578f102a lrw_crypt +EXPORT_SYMBOL_GPL crypto/lrw 0xcd074900 lrw_init_table +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x5ddb33e9 __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x77b39cb4 __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x8a1a99ad __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xd18895df serpent_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x03b19c1d twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x6c3229bb __twofish_setkey +EXPORT_SYMBOL_GPL crypto/xts 0x59fc1cb3 xts_crypt +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x2da3f605 ahci_platform_init_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x3c3ca82e ahci_platform_disable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x6714bc46 ahci_platform_ops +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x83b5a9dd ahci_platform_get_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x84b69613 ahci_platform_enable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xaee47be3 ahci_platform_enable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xc5cc47e4 ahci_platform_disable_clks +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1d03f99f ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x30f2d202 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x380136b5 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3e2dd9ff ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4122bb7d ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4d6df102 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x523ed905 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x68accfe9 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x694f923e ahci_thread_fn +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6e05c4e7 ahci_hw_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x81127aa6 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8883d54f ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8ba854ac ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8d79d609 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x93ba4ff6 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x97fa3198 ahci_restart_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa61c1b3e ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb1f8b15e ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xbd36805b ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc66bce92 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcc3e635c ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd01961f9 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd1ba76d0 ahci_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe32c5deb ahci_qc_issue +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xfbf353a0 ahci_start_fis_rx +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x9d6a1039 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xc29f8297 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x01d6f347 bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x02c106ca bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1591473f bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x23d415ef __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x36ebd633 bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x4b194a61 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x4c4058a0 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7688b61a bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7762e46b bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x77dd4802 bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x84a8b1f6 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x84ab4829 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x92432bc4 bcma_core_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa680dafd bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa81b06d4 bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xbac50de0 bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xdb300b41 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe5f9df26 bcma_find_core +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xeb5b7620 bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xebd30f7b bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf0323f79 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf1b7bc2f bcma_core_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xfc7a62bb bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x039d7f66 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2516ec30 btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3238a713 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5b34c38b btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9099eced btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xbc90ea63 btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xdc19d34f btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xdc22dfa7 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xebf5c444 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf67a990d btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x24d26495 dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xa711ef46 dw_dma_shutdown +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xdeca9a2b dw_dma_remove +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x082302c9 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1174126f edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x15a57e75 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1c270475 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x229176fe edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x27e68757 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2f6da419 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3120f924 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3521bd5f edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x54cf41d2 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x55833fec edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5afacfc1 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x708eda60 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x86cb3103 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9662063a edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa530b9d3 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa5ec47a8 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xba604abc edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd1e37a6a edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd673e6ba edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe777ded9 edac_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xea5c3e88 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xff0f3129 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xf4ade51f fw_card_release +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x25949971 bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x2a789bd2 bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x49e4f078 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xff76874c __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x4e90f79b drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x6a24bb3b drm_vm_open_locked +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xdfb7c1dd drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x6adf436b ttm_prime_fd_to_handle +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x6e842d78 ttm_dma_populate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x77ac3fa6 ttm_dma_unpopulate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xce36343e ttm_prime_handle_to_fd +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xf5915e29 ttm_dma_page_alloc_debugfs +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0b2ee3a8 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0b59c142 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x14d68365 hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0x157e1d52 hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x15c9f4ac hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x15e994f1 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1a8ca7c4 hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1c0b1d85 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1e80e387 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2245be0d hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x26e1f48f hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2e360d7b hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x305662d3 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3a4b873a hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3b82c528 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x41d6ec38 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x464f3f71 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4906a967 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4dd06528 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5701399d hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5b3f9ae5 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x66e4c052 hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7c22f5e9 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x80abc16a __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x89bc46ae hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb420f039 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc6539698 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc7a09439 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xca5e061b hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcc62fafa hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd0bc2a4c hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe475a133 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe65dc1f2 hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0xebc4263d hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0xef100e6d hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x04795be7 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x06cd7692 roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x1ff8e66f roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x894bb147 roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x8f8fd0cc roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xcc98cff1 roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xf010edda roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x83368c76 sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x838e5b46 sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x936013ee sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x938cbed5 sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xcfc37aed sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xe601e8af sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xec10bd05 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xedfec349 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x6119bd0f hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x0fca6e23 hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x1ebd64e0 hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x28c704cb hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x2af463e5 hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x41311563 hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x4fbe52fc hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7c4cb3d1 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xa88f66ff hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xd2befd84 hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xd2ddf51e hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xd64b8825 hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xef8144d0 hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xf0b3930c hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x235ed65a adt7x10_remove +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x6c5b925e adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x033250f3 pmbus_write_byte +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x1adf794a pmbus_clear_faults +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x305e1245 pmbus_set_page +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x42c5788f pmbus_do_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x44c20e01 pmbus_check_word_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x5caced16 pmbus_read_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xbe9c10cf pmbus_read_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xc49b3add pmbus_get_driver_info +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xc8ceb6f3 pmbus_do_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xd618e91c pmbus_clear_cache +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xda2f0f4c pmbus_check_byte_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xf17e0dca pmbus_write_word_data +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x045f34fc i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x1f2bb786 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x36f7eac9 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x813a75e5 i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xa795d508 i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xa9f17f70 i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xc413a30f i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xcb955467 i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xf128d4bd i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xac4f4ec7 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xf80deaf5 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x26b4cada i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xa59c3678 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x5cd406ef ad_sd_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x60395f15 ad_sd_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x62db139a ad_sigma_delta_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x85d57d5e ad_sd_write_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xb7d55224 ad_sd_calibrate_all +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xcca16a69 ad_sd_init +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xd1d01a4c ad_sd_validate_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xd3aafced ad_sd_read_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xd750e131 ad_sd_set_comm +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x189ed6c0 adis_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x1af8525f adis_check_status +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x2e3869f5 adis_write_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x3f50a7c0 adis_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x43e5ffcd adis_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x45f20d8e adis_probe_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x564b8ca6 adis_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x7daf1a83 adis_initial_startup +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x86e61a39 adis_reset +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x925e45aa adis_remove_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x9ae17de8 adis_update_scan_mode +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xce7bc80e adis_read_reg +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x066a728e iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x21342683 devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x25333a86 iio_update_demux +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x267c0508 iio_channel_release_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a1fab3c iio_channel_stop_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3092c4d6 iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x40449dff iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4afd4796 devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x52c03882 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x54789cc4 iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5814eaf4 iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x60efebbf iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6777d739 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6b7c21e1 iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7970fe74 iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7a711aef iio_channel_start_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7abadca6 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x81ba8ee7 iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8758aa54 iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9174e4ba iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x942b2214 iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9ecb1860 iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xafe82a2b iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xaff3c3e7 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb850ef44 devm_iio_device_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc455e184 devm_iio_trigger_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd12aa4ef iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe3497a53 iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe5243542 iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xebd421c8 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf1b2ef92 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf66f35e6 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xfbd5e743 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x8e906260 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0x263a9116 matrix_keypad_parse_of_params +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x1cf37320 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x4ec8940b cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x9c7cde11 cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xb6edd469 cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x6a506463 cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x93078a06 cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xea40b6bf cyttsp_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x183ab63e cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0xe6f3de04 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x08219769 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x21ad2edd wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x53f3669e wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x59babde3 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6bc63217 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6c8caf6d wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x791cc3b1 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa026aff3 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbaa2b016 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbb6fbfd7 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbd98b2a9 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe4a1e715 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x3fdfde70 ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x4964a7bb ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x5cd348e3 ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x73ef28f0 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xe3c14fa3 ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xedf40486 ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xef6b8a33 ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xf0ff7a7b ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xfc78d2a4 ipack_get_device +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x23359aff unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xce1414b2 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x07f3c235 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2cbbc16f gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2e930f2f gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3587f6a6 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x42d0be5c gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x47d3951c gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x481e909b gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x771c82ac gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8475094a gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8d9a4add gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8ff1f69b gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9636e0e0 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x99d45a36 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa1781c8f gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa3151853 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbdd5f9d3 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe0cee02f gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf831d7bb gigaset_stop +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x38499573 lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x4a6f1092 lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x4c25823e lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x72a1b024 lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x7946aa8b lp55xx_unregister_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x8b5dd4b6 lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x940548f5 lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xbeaf0db3 lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xc63fb862 lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xe85f87f2 lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xf9e1fb8f lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x749e05f2 ledtrig_flash_ctrl +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x7903e46e ledtrig_torch_ctrl +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x0a0527be wf_register_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x282ce3eb wf_find_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x2ec85759 wf_register_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x4134d52d wf_get_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x92e6b425 wf_unregister_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x94765fac wf_critical_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa2f19a49 wf_is_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa6bbb799 wf_register_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa9e65ed4 wf_find_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xb197f549 wf_put_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xbb1a1f32 wf_get_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xbcace2a5 wf_unregister_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed82a14f wf_clear_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xf0445e83 wf_put_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xf2ee663d wf_unregister_sensor +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0ec17d44 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x26062738 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x40c27b88 __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4c49fc16 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x51a15737 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x616b6217 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6907ac0d __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7be42a1c __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7e532a71 __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8a4afa11 __tracepoint_bcache_alloc_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x914361f4 __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9272fb0f __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x938cc2b2 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa649dd21 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb157059f __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb317649e __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb493772a __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb834c124 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbb1fc0a4 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbc4fcb1e __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc1474d91 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc379085a __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc5aed8ad __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc7eda602 __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce055cbe __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe20fe821 __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe24daf87 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe2ed0930 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xea2303e0 __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xef1156ee __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfc131205 __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x1f6e2a61 dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x4332a726 dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x62294419 dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xa39f19d5 dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb6d5c65d dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb70b342a dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xd7e33551 dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xd8b8fb6c dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xdfca2df5 dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xebd06eaf dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6aba7f5e dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x74dcd98c dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7c381a76 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9310ba06 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9a869216 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9c256008 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa1d2413a dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa448e19f dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xafbda3f3 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xcbb1bae2 dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe6024e59 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xebcc64a4 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xeca7949e dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x3555f025 dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x3cc8da6c dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xa172f604 dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xc00205ea dm_cache_policy_get_name +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xda26d2af dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xdd86233e dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xfe44a21a dm_cache_policy_get_version +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x2e169e29 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xb36044c2 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x01d2f9ac dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x0a0e4f70 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x2db56332 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4430764e dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x45ab972a dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x9c2d928d dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa68e1f06 dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb08f03a5 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb16f28a3 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfa79a800 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfad9d53a dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfc62ef4e dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x01445176 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x17c36f29 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1cac81ac dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2025e954 dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f40da68 dm_bm_set_read_write +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f74609d dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x32b5f546 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x38c75c44 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x42dbdfc3 dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x49b35849 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x55b4bd4d dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5e6aea80 dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x62c1b9ee dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x688d422d dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x68fae9d2 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7ade1071 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7b047bd9 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x827a42f4 dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x832bf228 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x858c8d94 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x89f1e1cc dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x966a8838 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9d27089e dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9e798e22 dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9f624559 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa0bbbb49 dm_bitset_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa13861b4 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa87c5b4d dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xaee02382 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xafeda29f dm_bm_write_lock_zero +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbd50ebbb dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca40abd5 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd041d62b dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd29923fb dm_tm_shadow_block +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe44b4b9b dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xed1e1f96 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf375d009 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf475af48 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf5455120 dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/raid1 0xb5257e8b md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid10 0x1e55484c md_raid10_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0xded551df md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x044d2370 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x0dfe879c saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x1367ce37 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x56351d9c saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x5c57eb17 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x61305697 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x84caf7d6 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xaa67f3aa saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xb6ccb9fc saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe96dfd86 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x07a2ca2b saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x094097bb saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x4637c1d6 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x548120bc saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xb38f5162 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xdcce31b4 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xe4358adf saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x1bb927e8 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x2e592d52 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x2ebcb628 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x3476f013 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x3637a290 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x42b8e42d sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x4481bf92 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x4c8c5bf4 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x58804697 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x58a23533 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x5b4a6dbb smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x72693a33 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x79ac73fc sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x99a81ab3 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9c2225ed smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xa5519d28 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xeaaa3804 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xf8a3bf54 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xfdc98bf2 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0xa247a277 cx24117_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0x79271484 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0x69d0d194 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x0b852873 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x19705305 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x486a48a7 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x55446478 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x66119671 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x71024a46 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x930cf1ba mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xa7b3da1a mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xbf6e60df mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xc37b6a97 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd57e9388 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xdd34b82f mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xe18d4be9 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xe98b938f mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xf835c5ab mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xfa0c6b63 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xfce94b62 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x3b9b8e01 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x4462c904 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x55476800 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x8a03b0f6 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xe2b269eb saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x22ff4855 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x308aedc0 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x4c693075 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x6e7ea771 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x70a8b330 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x93b49d96 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xc4577f4b ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x916e830c radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xd338b0aa radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x05201e68 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0784a0ca ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0b1e7dd9 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x12376bd2 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1cdd4286 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x361c2797 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x42613157 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4f7ce0e5 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x588f3104 rc_close +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6343ed7c rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa6092eea rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbdb5e374 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc8270e49 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd1e257de rc_open +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd3e0494a rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd405fd87 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xdbdeafa7 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfd88be21 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xffe85f57 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0x5a8e0053 mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x5d4c7c9e microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0x64571856 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0x33889335 r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0x4c17425f tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0x4829fbd6 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x374f980c tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x93032c98 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0xcf83a780 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x2d2fe03b tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0xd2fcad2d tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x70add5b5 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0xee3b9065 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x4b38bbb2 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x06ae498e cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x10f567f2 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x170843dc cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x53db5359 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5f168a5a cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x66917434 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x77569746 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x87e9f9ae cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x8ffe67e8 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x9000c5b8 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x96fadda5 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xa45d468e cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xafefb27a cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xc34b49e6 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xd1585b1c cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xd342b960 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xf55872eb cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xf7d55fe9 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xf903871e cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x14bc4f29 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x90441aa1 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x1416af9d em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x1f0d7665 em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x3e95b559 em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x4669a3d5 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x5968d9cd em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x89bf6d21 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xa6528a6f em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xaae0245e em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xac13e5b7 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xb18b2b23 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xc77d1f10 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xeb252c06 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xf2a3f93c em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xf3fda751 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x04fcc1af tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x28c64db6 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2a97462f tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xf698f335 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x01c483a9 v4l2_get_timestamp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x1e9288c2 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x27a25b44 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x5a4b51c1 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x7c5aef10 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x959ec511 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf62cb4de v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x08982d59 v4l2_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x221d2fbc v4l2_enum_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x36e8756a v4l2_find_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x4103badb v4l2_print_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x53105839 v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6976cfe0 v4l2_valid_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6f344bb9 v4l2_calc_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7eaf8e7a v4l2_detect_gtf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0xb0891da2 v4l2_dv_timings_presets +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x31c52b32 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x56666160 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x84f75e40 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xdc741169 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x17eb0eee v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x1a87169d v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x45d5b4ce v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x69d0cbbd v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x69fcd891 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x79b7bc41 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8814fa24 v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9a70fad8 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9adfa76c v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xac0d7291 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb9cfdcf2 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fa5c81 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xdd91c6a4 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe1f68133 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xf22ec71c v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x07e99e22 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x14216f79 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x200b9f18 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x343cabd7 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x367d0163 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x534d37de videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x628c38df videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x6d6ee4f2 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7c141b29 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x810a549e videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x81b072c4 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x837e1b1a videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x8beab82f videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x8d817ee7 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x918fbd1b videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa1a93f7a videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xaeb3ee81 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbbd0c525 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbc551b54 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbdb1a9a7 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd067d01e videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd4669f97 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf17df7f7 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xfa714b47 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x4e5333b7 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xa9e8fb5b videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xe4a6426f videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x098d2879 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x190eeea5 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x2722de9e videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x6adda17c videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x7c354f29 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x972c0a77 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xa297d13f videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xc50910a2 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xe7ea804f videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x7ed27dcc videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xdb3b7c31 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xe1738b4e videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x01473739 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x038ccdd9 vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x09f68c1b vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x0cd9b326 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2f002d5d vb2_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x38eb2f65 vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x49e2c85a vb2_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5dd0f9f9 vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5e6c8726 vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5f82aaa7 vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x6b2ad57a vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x71f29266 vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x74305de2 vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x76ba0f23 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7a796459 vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7ae58d22 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8668ba14 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8d17f98b vb2_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8e8d42d5 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x9712a56b vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa27586b2 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa62592bc vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb07c7ca6 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb2df4df5 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb6efcfda vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xc7717c94 vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xc9766315 vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd86da5e9 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd98ca82a vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe3d2ee87 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf12a14ef vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf5db7148 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xfddb33d9 vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xfe631c6d vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xafcf325d vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xb015019c vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-sg 0xb7c2b8e5 vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x165f19b6 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xaa60d052 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xc0de424a vb2_get_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xc2701fd4 vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-vmalloc 0xa90aae72 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x017f1448 v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x051809a6 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0ed2766c v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x12ac756f v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1b575572 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x207aeaf1 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2376afb1 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2b651301 v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x41e37268 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x41eaa2b6 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4cead25c v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6478ea66 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6eefc6c3 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x73ff614a v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8287303c v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x84f82b2c v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8a768144 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb2c4e69d v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xbb57467a v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xcb0affc9 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xcf559d31 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xfbee8134 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xfd585416 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xfee74e7c v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x02e09c1b i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x256c7763 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x26bc5f5f i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x44473691 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x529753b8 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x5a3d2de3 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x8d0d2feb i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xfd3f42af i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x04e55e13 pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x1e00944a pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x9605edb5 pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x114971c1 kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x54230422 kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x575368b6 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x793ad780 kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x7f5ab8e6 kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xb58980c4 kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xb7ead058 kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xdd2850ce kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x781d1148 lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x83ad4be7 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xbda4774a lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x0febe9da lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x849c351a lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xb9fda014 lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xc1c5c81b lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xc4344cea lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xc9a0be6c lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xd95f93fc lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x7f932d97 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xa0829bab mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xe038d08b mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xe828ff4f mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xeacbd36c mc13xxx_common_cleanup +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xf23725e3 mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x05798853 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0b7a4c94 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x16114dd3 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x631d8924 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6b4b1920 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9c2cd233 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xacf3b77c pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xbe14988f pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc62c1948 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe2caa2c4 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe81b7a65 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x3aee2f01 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x63ef9d3b pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x12c88702 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x8399a75b pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x9f1d4a2e pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xda43ee76 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xf48a713f pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x01a33234 retu_write +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x4fca3918 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x120479b3 rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x40ae7d7e rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x454327af rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x46bce325 rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x7e390863 rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x8765815e rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x96d96cea rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xa5b41591 rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xa9520666 rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xad2d9c9e rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xb395c08b rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xb9bd3b56 rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xba0c297f rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xc5c095ed rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xcac5bb01 rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xcc1225ce rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xcc9b4223 rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xe67121b8 rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xf15436fe rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xf1f2777a rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xfad0807b rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0a0a07b0 si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0ad537ae si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0efcc6ff si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1e6b6f91 si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x26eabae7 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x26eceb5b si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x26f2ff23 si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2c23be66 si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x360e0c55 si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4f19b6d7 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4fc5578c si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x625b1e4b si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6ae3061c si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x742ea407 si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7d80c196 si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x82a01cc2 si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8b26e126 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9348f627 si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9c092473 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa1747c8f si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xaca099f8 si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb4b89515 si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb64e884c si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb792e529 si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb79e2af0 si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb929bd32 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xcd6bf4ca si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd3a79834 si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd5055d1c si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd867707a si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xdd7185f1 si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xdf98430b si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xefaa0a88 si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf9845e16 si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x137fcf3c sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x1dea2eeb sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x7af78078 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x9701b0cb sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xca9d0cde sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x09172da8 tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x1303fc5b tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xa98678cf tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xcd571661 tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x4362dc66 twl4030_get_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x9effbf1a twl4030_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x79a135fe ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x096988b1 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x2615f742 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xc678cddb cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xda22693b cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x27cb133b eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63 eeprom_93cx6_wren +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x822222db eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x98bb5a22 eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x0e7356ab enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x21e451d7 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x27cbd4f4 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3b45972e enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x8908d913 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xd69afd9d enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xf42f6cba enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x03986ce9 lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x51609b01 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x647092ef lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7b10e5cc lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7c1bdf55 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x9effefab lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xb8dfa116 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xee780b06 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x5b6b1144 st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x817515db st_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x0f7750f1 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x396bc859 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x46505444 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5c98148d sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x772830bf sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x86e0f2d5 sdhci_send_command +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa1237835 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa9c41c6b sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb5fb9c65 sdhci_disable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbadbdd69 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe9ba9650 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x0040dc7c sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x09d9a18f sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x4167da30 sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x5bda3a5c sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x918ebe3d sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xaecb6e7d sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xc212e5f9 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x4f4d7b75 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x70645e9d cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x8d7a7b0b cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x24c2bea0 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xa9693af6 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xd73b7126 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xfe37aaee cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x916b5985 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xcaf25739 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xee2242b2 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x07895681 mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0f8668d0 mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x108a4ee1 mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x13703296 mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x227467f7 mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x247d8313 mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2633a4b3 mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2fb0915b mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x42b22634 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4d1e8dd6 mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x64a4c6d9 mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x74414074 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8a4b8b37 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8b7cd7b7 mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8b9c661e __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8e686c8d mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x92700de4 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa33dc646 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa46c628e mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa6574baa mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa65ace2b mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa931fa3c __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xad12e59c register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb1b7bf04 mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb47050b6 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb88c6dc7 mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb98b3df9 mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbd7c0ee7 mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc68c8b51 mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc9f94795 mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xca631793 mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcc6c0911 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd1e254b5 mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd6a66b9a mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd777382f register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd7b47924 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd9dea14e kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe1bf3e4f mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xed3ee417 mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf1f730e6 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfb54af90 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x8a219ea9 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x8e2c00c0 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x936f8538 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xba0e8c4d add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xee7c7cee mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x2a35f04a nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x97d1dc16 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x56910916 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x30ba3e7b onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x54b5bfbd onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1ebf707a ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x29a45737 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x792027cf ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x861b18ae ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8bbd36a5 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x90140d81 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9421ac61 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa6d5202c ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xae5d312e ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdcf5ffea ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdd6d54bc ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe551d747 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5172a4f ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x52d24acb unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x565cb033 alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x6a6f1b23 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x99fa023b register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xac499835 c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xb5c4a4d2 c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x130c9000 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1744004f devm_can_led_init +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x222c295a can_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2d1ef4e9 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2e60c7bd close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x31aa8f5a alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4ecdf657 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x639d2706 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7882b69e free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7b9acbd2 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x871a3da4 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa0bcc4e3 safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb346573b can_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb545f222 can_led_event +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xbb6519ed can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xdd584bb8 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xed3c2976 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x02bd5b87 unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x4b462737 register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x672e7725 free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xf6343be4 alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x6dcdcc89 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x7e52c1c6 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xba17d932 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xd0bb16dd unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x0b33c228 macb_ioctl +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x361838e6 macb_get_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x66a5b072 macb_set_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x8c64dc34 macb_ethtool_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x91493165 macb_get_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xd4c0d851 macb_mii_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xdca6fd9b macb_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0382dbef mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0708d45b mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0af3bfb8 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0c9d6cd8 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e457c2c mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f502ffb mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f6c34aa mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13b472ed mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13b68a6f mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18ca8711 mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x19f36a1a mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1e944ad5 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f492990 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x20778129 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x26d88aa0 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a2fff82 __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b4a563c mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c2903e7 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2e398300 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x307bc385 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x36adb323 mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x38651720 __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x39707dd3 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x39927435 mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3afe4877 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f521cfb mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4013d0c7 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x432c2708 mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x45f47714 mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x470e16ae mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x47ad65e2 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4cb5353c mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4e418e18 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4e8a0883 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x572a13a3 mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x58375e31 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x591bd55e mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5bcd5cf3 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5fcb4d74 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60612f7b mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x61129b10 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6cf2c753 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f59318d mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7438b396 mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x77d996c1 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x77f531f3 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79bdc1ab mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7a8e1c93 mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x804e724e mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x836e96b5 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x84cb9246 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8ce35a96 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e7393ef mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8ebca682 mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9098f52d mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x914b1132 mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x927bca9d mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92d2c66b mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x95a022f9 mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x98541301 mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x98606960 mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9f393058 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9f5e1f73 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa12a502c mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa2acae3f __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa4dd1ded mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaa4ca2c5 mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xad9b7835 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xae9651ca mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb7a9d587 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbc88bf3e mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd63aedd mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbee594f9 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc01d7ece mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc187337f mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc27ea2b9 mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc53d6cd3 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xccf6512e mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd5f610fe mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd8b4045a mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd95937c4 mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd969f17c mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd9f81caa mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xda2c6aad mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdb6ae7bf mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xde0c2f96 mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xde57d592 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe118901c mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe23ae21c mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2acdd81 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe4438cbb mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe4fa8d17 mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe788a783 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe8fe6c52 __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf13cdce6 mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf3cda264 mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf4144b32 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf4a25175 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf91d76b6 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf93afd07 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd8c5487 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xffdca655 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x12c57093 mlx5_create_map_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x21468e74 mlx5_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e7215ef mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x45579f46 mlx5_core_create_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4843bfa2 mlx5_core_mad_ifc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x486edff7 mlx5_core_xrcd_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4999243c mlx5_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5082c859 mlx5_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x59e5980a mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x62413c46 mlx5_core_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87a6ceb4 mlx5_destroy_unmap_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa33efbc9 mlx5_core_eq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa4be1345 mlx5_core_destroy_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb11d22c5 mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc2e67794 mlx5_core_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd0f13880 mlx5_core_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6c4ef56 mlx5_fill_page_array +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x09736f6d macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x47b87e4e macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x4e617a6a macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x803d87e2 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xf8a3496e macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x9d9e8e92 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x14c80c00 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x235916c4 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x5007b8a5 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xbd3c8a32 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x3c930008 cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x4bbf9e63 cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x5eae4112 cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x62a2dfc0 cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x6f15ce0b cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x90f41dc7 cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x93fbb65e cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xc3156915 cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x0554b36d rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x474130a3 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x60ea92d5 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x8f88c647 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xcbfa67a3 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf74dfac8 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x03a310d9 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2cf9d423 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x43c8bb77 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x496c2499 usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4cffeb75 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6a3fecdb usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6e6584b7 usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x79c9022b usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fdf8368 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8056e106 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x86c70796 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8d51ba26 usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9288f5fa usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x957c0404 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x97571987 usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9e865ba5 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa649675e usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xabc3ec13 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaefb4e8f usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xafbb846a usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb82d6a5e usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc0653bc7 usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc36fce7b usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc3ad4c2e usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc43d2b01 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc5270c58 usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe13f486d usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe3b160e0 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe894638c usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xef5cb827 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf4ce5d44 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfcb8ef67 usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x1136c56b vxlan_sock_add +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x7cf2dff9 vxlan_get_rx_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xc355150a vxlan_sock_release +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xd7fc1ad4 vxlan_src_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xfe2201e1 vxlan_xmit_skb +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0afc5b37 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x26e65bf5 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2fcd0e7b i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5274b93c i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5e3539cd i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5f09d269 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6a92418a i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x71e2fe31 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x79b65da2 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x90c5b380 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa464248b i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xab6b35a7 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb1142030 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbee75beb i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd5dd394e i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfcd9cea2 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x1be18b0e cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x75d3d9bb cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x77e6433b cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x8ed910c7 cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x9a2cfd7e libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x020cf192 il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x09211401 il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x62650f1f il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x64641f3f _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xed61c959 il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x05ec974f iwl_opmode_register +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x0d556623 iwl_abort_notification_waits +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x1291ef1b iwl_init_notification_wait +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x18e1dd6d __iwl_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x1ac36ff0 iwl_notification_wait_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x35033c81 iwl_phy_db_free +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3d5378da iwl_clear_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3d548dab iwl_remove_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x504f4fca iwl_set_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5c52e109 iwl_opmode_deregister +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5d0a212e iwlwifi_mod_params +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x680904c0 iwl_parse_eeprom_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x68d65ff3 iwl_write_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x6b8e1534 iwl_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x776221bf iwl_send_phy_db_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x7f3e4058 iwl_phy_db_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8bde0f38 __iwl_err +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8c5d5ab3 iwl_phy_db_set_section +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x94f775e2 iwl_read_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x955ce329 iwl_write_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xaa6d08eb iwl_wait_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xac492b30 iwl_nvm_check_version +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xac8c8a68 __iwl_info +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xaff02a9c __iwl_warn +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xbcb1af07 iwl_poll_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xc67c31ed iwl_notification_wait_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xcd81e88d iwl_read_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xd8f68f9a __iwl_crit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xddd5233d iwl_set_bits_mask_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xe1d024e6 iwl_parse_nvm_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xf669fa3e iwl_poll_direct_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x01a7fdef lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0e04cd06 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1078bb40 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x165317db lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4c0734ff lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x506763c5 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6a6b76b2 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x78d8eca0 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7ac2ee55 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8b10baa3 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8fbc7bc0 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9c27b5b5 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa520fcf4 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xab64a729 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xba8c2c8b lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbc842683 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x078e40fa lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x1b8b14c8 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x47eda243 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x50e56f1d lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x658e951f lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x6ab39c0c __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xcf1bd5c8 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd174fb90 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x666e905a if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xc43d0108 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x0f2dd753 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x12da8675 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x1d026fcf mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x30e20993 mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x316a969c mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x5d98f3be mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x6d528443 mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x6e0f03ba mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x87d48ec0 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x97cbca6b mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xa808a026 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd9d75132 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xdae48231 mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xfc4a27b8 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x05c04af2 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x28ed11a4 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x665abd0c p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x87946cf6 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x97e6b111 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa8687718 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xafe03b4c p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc1e852e0 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf2ede79f p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x04b71718 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0ce901ba rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1b3e0498 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1c56af29 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2d5dcb73 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x30e5e5e9 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x321344b9 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x364e1e17 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3d75de23 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x42972680 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x459883c5 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4dfc057d rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5d596a43 rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x62d62f66 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x659f4591 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x65b018e4 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6e8c8f8a rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x789f8b09 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x872fe983 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x92789a62 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x934ac991 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x99b9c13f rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x99dd886a rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9e660ec5 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa71c6eb5 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbada9fee rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc012e6b4 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc2f60197 rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xca18b138 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xca9e089d rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd6cb8f05 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe1dbbfe5 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeaf332a9 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeb21d2ff rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xee05904d rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf2672938 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf3707273 rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf92a5d70 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x0866ab05 rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x09cb2847 rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x0fad1430 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x2505789d rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x3a419737 rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x3d5de419 rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x528455ec rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5393528b rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5ee35bd1 rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x674ef759 rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x92c0bcd1 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x9eba0db6 rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xaa3dfe54 rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc6a1455e rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xcd363c97 rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xd05b4ad4 rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xe28f94c7 rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xfd5a40f0 rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0093f136 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x025c79b3 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x02904f9a rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0eb45cab rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1aa2b6ec rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1f4a8589 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x21602b41 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x24a59712 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2c2dbf7d rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2c329be1 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2c5a968b rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2eff1aa7 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x30527905 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3280122e rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x34997b93 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x409e0bde rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x508b9aa7 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x520497e0 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x58f335df rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x61d20560 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x64676d20 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x78dfaf0d rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7c09808d rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x83748e57 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8a149c27 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x955c91bf rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa0b16934 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa0d45caa rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa149b231 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaa69bee7 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xabe12d8e rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaf9c2d04 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb6cbedbc rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb71a038c rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc10d2aed rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc49184de rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc89ad05d rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcaa3bea8 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcfc59b60 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd13d5050 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd422ecbb rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd8c74c54 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdcb7218c rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xea4bc0a5 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf0f18b57 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf48d1f94 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x1a9e5005 rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x2a2a3360 rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x402fe6e1 rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x58480a9b rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xeba456ba rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x823918fa rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8ba27654 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xcb11249f rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xfb674f25 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x19d68272 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x20e7b117 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x412b8d35 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4737f9db rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4ef237d5 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x538a9fff rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5ac5f9a6 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x87e13f02 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8c04b953 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x94903ba7 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa43af3d1 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb04c34c2 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb9e6b51f rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xce03a8c7 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe4d43347 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf64b8b1b rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1b67c30d dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x54e51385 dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x860e1cfa rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc2ceda54 dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x02491675 rtl8723_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x0a9729e2 rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x0ede0faf rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x14a86418 rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x1786106c rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x1e3ee770 rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x1ea9df90 rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x2eb93f5b rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x39a0b498 rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x3b5dc072 rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x3f52350d rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x529cb6da rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x5317c9f5 rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x557339dd rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x5b96c36b rtl8723_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x5f882a40 rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6ddcc956 rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6fee3a6c rtl8723_phy_set_sw_chnl_cmdarray +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x712e368a rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x7ca49329 rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x8feab91c rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x91bb717a rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xa8f32ba2 rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xaf4d6d94 rtl8723_phy_calculate_bit_shift +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xdb659df3 rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xdc3c4f52 rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xdc4f9434 rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xdeef2b60 rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xf01f244a rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x0b13342b rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x0d0b6636 rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x241dedc1 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x30ae582b rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x45447443 rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x4695d65c rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x490dd922 rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x4ee9632d rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x5bc879b7 rtl_attribute_group +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x6b4de810 rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x6e499424 read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x70e6bdc7 rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x74af6bdc rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x770f8e29 rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x77586ea3 rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x7f563a7b rtl_dbgp_flag_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x7f8435dc rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x8de1a28f rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x9105e4b0 rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf0868caf rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x2fb9d355 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x5e620612 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x944f1d1c wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0a6b5a9f wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0c0d54af wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x11eef154 wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x12b8865c wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x180b73bb wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1c12ecaf wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x21f51140 wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2213f353 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x25d4a42b wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x27f9ba03 wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x288af76b wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x290d6cc4 wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x38d23157 wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x449c7dbb wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4a707f9f wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4b65810e wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5734278b wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5d984b7f wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x67ad1f22 wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x731f0140 wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x74e92c49 wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7a62abfd wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9b5cc195 wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9cadf83c wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa45f92bc wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa73a40ce wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xac60f6ea wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb8c65c63 wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc0c46e8d wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc2821c8e wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc2e010e4 wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc53283b0 wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc60a03c2 wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc6a898c4 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xcf1d6d10 wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd39bb505 wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd89e2954 wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xde99ed32 wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf05a6b15 wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf62e207e wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfea0a893 wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xff319a7b wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x2f4a4b59 phy_power_off +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x322959f2 phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x35703593 phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x56279067 devm_phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x57e47cc1 phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x7245d072 phy_pm_runtime_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x73f8f718 devm_phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x7ff00f54 phy_init +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x81089289 of_phy_simple_xlate +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x83cc3472 devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x850b3052 phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x9bb51857 phy_power_on +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x9cfce1d9 __of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xa5c928bf phy_destroy +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xaef03569 phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xb79245b2 devm_phy_destroy +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xc9760c4c devm_phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xd01920b6 of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xe394a9b5 __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xee52574b phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xf0055bb8 phy_pm_runtime_allow +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xf066a8a4 phy_pm_runtime_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xf194823f phy_exit +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x926389ae pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xb8b25ab9 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xf6bda751 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x34243c77 mc13xxx_get_num_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x44de274a mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x8ce75102 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x97cf9bc4 mc13xxx_parse_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xa7289af4 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x056f70b1 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x608f9a55 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x825942e0 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa5c9e745 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xb564c3d9 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc54f78cf wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x829e939b wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0452b9ab cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x08bd3523 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0b0fc7a1 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x15c41a03 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1692ebfe cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x18a91e45 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1b47350d cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1b52cc51 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x259ca970 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x27cc01d3 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2d06e942 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x42d0ba51 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4fe818d7 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5cdd695c cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x60ae33fe cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6759e7fa cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6b6379f0 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7ac69804 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7d6810e2 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7eaf389a cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7ee8eda0 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fa582c6 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x841b8bdf cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x88ef2591 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x910b71e5 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x97ff1d56 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9827cc24 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9d3c44e3 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xad41eb3c cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb18c24e9 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb67eaf56 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb88ed3e1 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xba98fb50 cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbc09924b cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbe8708e3 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc09c0aed cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcc694642 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd01650e2 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdd0156db cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe32b5118 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe735847a cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xeb912817 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf4c1103f cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf50f8a08 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x085af3f7 scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x12143d13 scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x403071b1 scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xc900b185 scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xd43a5535 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xefad1d9d scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xf65e31bb scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x32d81d60 fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x47302def fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x545e80c9 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x57fe997a __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x61608099 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x737b4e33 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7ab61c4a fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8264903e fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8dbf392d fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8ec850d5 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x961dff0c fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9b7504bd fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9f0853ad fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xacdfa38a fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xbf6c8cba fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xce1d636a fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x120761db iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x6ce0e193 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x90856817 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa514d588 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xcf6ec20a iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xff7caa8b iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x02706427 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x08c3c1b3 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x16a74830 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1cfebd8e __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2e5efaed iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x313565bd iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x35f7724b iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x380a97ed iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3994a446 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3b46a5da iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e58ca7e iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4729c97e iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x48015948 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4f377c19 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5235ecea iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x54498973 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x580a21fc iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5a5c62f7 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x61f45377 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x62c79975 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6b6e9827 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x789fa3e6 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7d01e740 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7ee9de10 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8495a8e3 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x855b6a86 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x88aa5db9 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8cf273ad iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8e715614 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9b6949fd iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9cc2cc6d __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa1011715 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd19e1e5d iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd54bab4c iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd559bffa iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdbcb902d iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdf6f0b41 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe0f7bb04 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe4ee50a8 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe8aae134 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xee6de648 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf6cb0a68 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf7928f4c iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf95897b0 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x025b281e iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3f27dbb4 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x41aadaff iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4e273d01 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8356dae2 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8d5a8246 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9ddbc892 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9f7745eb iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa02486cb iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa8d63589 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbae1f307 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe662d8b2 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xee6c5780 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf30f84ff iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf371bfde iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf59910d6 iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfc7e8c5e iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x08bcbcaa sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0f2b0915 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x153ded67 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x170fa082 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1f421801 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x31eaec95 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3e5c6e02 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x45d980dd sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x469e3943 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4e733966 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5b8bff51 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x701b2814 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x807d821a sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x80e98036 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8187d80f sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8b676632 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa4e2dc50 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa9cbba40 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xae7ccef6 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb4a0e634 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc08eb048 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc5edaa5c sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcfd27ade sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdcc0ac6b sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe42a2909 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x2046d29c srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x30bcedb5 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x362e17f9 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x36b7e6d8 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x8bb025d9 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xff4584c6 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x220288d6 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3bae398b scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6402f2ac scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x783562d0 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xbe5da985 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc4f7d4ac scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc62a7f09 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc89a579d scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xfbcde61b scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0d8c4d1b iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x11125f09 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x16b612c7 iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1a86a8c6 iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2142cce3 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x241162ae iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x25a036c6 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2606c1a2 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3ab75df1 iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3c34abf0 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3d8f8cc5 iscsi_is_flashnode_conn_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x43987320 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x45b41f36 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x473f46b0 iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5228e8b9 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x592f243e iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5c55c979 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x60b7aafd iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x625c850e iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x77baed25 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7c4931d0 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7d65c2d9 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8b0025ff iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9ee72a66 iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa15a3dad iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa83d8c1d iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xad491c1b iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb715e535 iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbb0b8022 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc6e5a24d iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd60a6dfd iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdb69439a iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdc1463da iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xddbc9434 iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdf43cd5e iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe2664937 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe8324956 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf20477cb iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf3537f29 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfd2eeb41 iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x18c3a888 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x9c0f9c8c sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xcaf0e2b7 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xd6f7cdb2 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x01e5dc8c srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x11db608d srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1963fd18 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x79c2fc83 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xee891cc0 srp_tmo_valid +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xf9736148 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x1d798c0b ufshcd_init +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x28b59f87 ufshcd_remove +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x61708339 ufshcd_resume +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xa67e4088 ufshcd_suspend +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xed1ece5a ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xfbf12fb6 ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x6544cd55 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xa2ae12ca spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xacba3f76 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xb7f61b76 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xbd08db75 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x2a66f337 dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x9200dcce dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xaec0d1bc dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xccee0677 dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xec012839 dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0x91aac961 ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x01d44d89 comedi_buf_put +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x06cdfa3f comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0c1f4388 comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x17d488f4 comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x22fca866 comedi_to_pcmcia_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x23f7ec7b comedi_event +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x275e7b54 comedi_dev_from_minor +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x358a8b1f comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x39991e9c comedi_error +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3dff0087 comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x47b5d89c comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x49f97222 comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4a4405eb comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4c5d3014 comedi_buf_memcpy_to +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4ef646dc comedi_pcmcia_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x50504049 comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x55dfc454 comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5e84907d comedi_pcmcia_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6a71d2da comedi_buf_get +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x721950e2 comedi_pcmcia_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7545ff46 comedi_buf_memcpy_from +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7ccb84d8 comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8e814483 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x9405ef56 comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x99e37b36 comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x9e20d803 comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa493d21b comedi_pcmcia_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa93a9f5b comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb0583da9 comedi_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb2d6d75a comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb55547f0 comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb6092b0a comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb9903ab6 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb9b01893 comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb9ccfbb4 comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb9f9b064 __comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbac1c886 comedi_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc9a7cf2a comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xcd056243 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd4e03743 comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd6aeb5e6 comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd8c1b01a comedi_pcmcia_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd9720262 comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdd8995db comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xec319429 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf0a8472d comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf9ed129f comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfa71f7a7 comedi_pcmcia_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x5b045f6f subdev_8255_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0xd4f4ea63 subdev_8255_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0xe4507a6f subdev_8255_init_irq +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0xc9571050 addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x2eb73c52 amplc_dio200_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x992cd5b2 amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xc4726730 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x2a7c9574 cfc_read_array_from_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x4d86a7c4 cfc_write_array_to_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x8bd2c1bd cfc_handle_events +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x3d3d130a das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x09963fd0 mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x1738f06f mite_dma_tcr +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x1d09e786 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x244d33b7 mite_setup2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x2ce2e05d mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x3bf437ed mite_sync_output_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x43ce2a26 mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x4bf4c3e2 mite_prep_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x52506d61 mite_buf_change +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x59947681 mite_bytes_read_from_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x5efc37bc mite_release_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x6daf24d6 mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x6e5583af mite_unsetup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x8c03378f mite_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xa1e11aa6 mite_free_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xa936a7f8 mite_dma_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xb6255934 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc600be24 mite_done +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc6204434 mite_setup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc8f25364 mite_get_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xe4a7df82 mite_sync_input_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xf2b8c833 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x35fbb69d labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x1ba5dbb6 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x28d776c4 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x4fb68dd2 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x51162d98 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x58a2b1a4 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x98a9ba89 ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xad2d8ab3 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xf383ed6c ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x0110c47d ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x57daa3a4 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x625d4be9 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x94abaa33 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xb2b60b73 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xc2f8d425 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x0a9d054a comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x1aa37717 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x2129bf99 comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x409cf968 comedi_close +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x5ef18be9 comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x5f9fe03c comedi_dio_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x6a8f265f comedi_open +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x2206b003 dwc2_handle_common_intr +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x6c0abdc1 dwc2_hcd_remove +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x7848a1d2 dwc2_hcd_init +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xb05a818c dwc2_set_all_params +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x1a1b5249 oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2feda75b oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x3227a28e oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x7dc9dddd oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xb2c66001 oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xc8b5a524 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xd370f679 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0xbd5a0e51 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e4032ea spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0ef1d765 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x1e90c955 spk_serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x2961c2b7 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x381d82fe spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4ffb55ec spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xa3f626ec spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb35aaab9 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc893f4e8 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd1b551a2 spk_get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd71f61e6 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe367e9a2 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xec1d70e2 synth_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x0620e08a usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x06b6a683 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x0eb39157 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x3555ced0 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x4a78a649 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x828a5d35 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8a322f35 usbip_recv +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8b68b35c usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa4bb06c2 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xcaa7c0eb usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xde3c9056 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe666ff60 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xf4f5dcdd usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0xdb229dc1 pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/uio/uio 0x58908bb3 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x68f4a1b8 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xa125f5bf uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xa3d580c5 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xdab39e69 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x1ef1b4cf ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x92a5656b ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x170e9bea imx_usbmisc_init +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x74750d38 imx_usbmisc_init_post +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x09d0c2e9 usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0eb45ac7 usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1ce2b412 usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2205658a usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x252c5f3d usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x265a0d7b usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x32d8151c usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x362f3ef2 usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x466113eb usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x46f740b1 usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x538cd252 usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x76023486 usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7734b6d2 usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x825fdbae usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x85620a6b usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x9208943c usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x94d7075a usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x9665f25e usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa6c017a1 usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb6423eb9 usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xbd81903c usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xcd5fb690 usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xcfde59cb usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd7acc126 usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe0973dca config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe920c546 usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xebe833f4 usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xeebe14cd usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x4bdb830a gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x50cced45 gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x8e27d6de gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xf1981607 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x1f5641fb usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x46e12699 usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x687a96be usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x83ecd745 usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xa5bd18df udc_attach_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xaa6f4cea usb_gadget_set_state +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xb700f349 usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xbbaaf39c usb_gadget_map_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xe8231fd8 usb_gadget_unmap_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x0a5230df fsg_common_set_nluns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x141fce2a fsg_common_remove_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x1ccb58f7 fsg_common_set_num_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x2d10b6a7 fsg_common_create_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x3f230449 fsg_common_remove_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x51707c29 fsg_common_run_thread +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x6acb4179 fsg_common_set_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x7e26d4a5 fsg_common_set_sysfs +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x99023bfc fsg_common_put +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9a0221c7 fsg_common_free_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9dc025a5 fsg_common_free_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xa46e6443 fsg_common_get +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd3ae3b65 fsg_common_create_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd468f882 fsg_common_set_ops +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xe4d1591e fsg_config_from_params +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xf0c26eca fsg_common_set_cdev +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x21c0292b ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x4949d659 ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x21fdcbe4 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3c90b37b usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x543d10f7 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x67c69c4e usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x8d543409 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x900c82bc usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x95b0251c usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9bb4a024 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfb989a3e usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x1856f03e musb_interrupt +EXPORT_SYMBOL_GPL drivers/usb/musb/tusb6010 0x35003fdd tusb_get_revision +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x20d5c373 usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xb8d324bd usb_gen_phy_init +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xc0ab85a5 usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0xd0019513 isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x01a5845b samsung_usbphy_set_isolation_4210 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x7015d63e samsung_usbphy_cfg_sel +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x89edf233 samsung_usbphy_rate_to_clksel_4x12 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xa7a0bb66 samsung_usbphy_set_type +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xba0f85a1 samsung_usbphy_rate_to_clksel_64xx +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xc9af966d samsung_usbphy_parse_dt +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xd75a1bb1 samsung_usbphy_get_refclk_freq +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0x2c49f72c usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0c6fb0c0 usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0f77c80a usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x29627790 usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x35deea9e usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x36a49b0f usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x43c30857 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x507710a6 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5882f1fc usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5b4cf7a8 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x63232b2a usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6de6a64e usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8bdac82f usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8d6fe087 usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8fe095b9 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb3b4959a usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcc1cdb86 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcd3c6d36 usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdd3ce6bc usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xeace7257 usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf82f6cfb usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfe2b9e0a usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1d6e9300 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x203ab61c usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x20bf0e45 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x246c5dd5 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x24ce0f93 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2a8c36f4 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x30e258de usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4e3331fc usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x69360e7e usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x70f3be53 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x710cc3dc usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7feb18ef usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x860f71a2 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9b063d10 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9b3ce7a8 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa5d2f050 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb5444edd usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbe639286 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc62f4b36 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc6ac1826 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe7a187f2 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe8bc8ac5 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x030b62c0 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0bd816f0 wa_process_errored_transfers_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x6e9b4a99 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x7e35c833 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x800cc68e __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x82dba7f8 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x869d1432 rpipe_clear_feature_stalled +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x079639be __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x097cd057 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x34ced681 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x372b5b12 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x62c258a5 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8863bc5a wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x960e1347 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa498a472 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa80ae42d wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb4ee996c wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb6efd887 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc63d84b3 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcfc61823 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd95ce962 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x152f8ef6 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x447d17c5 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x86c661fc i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x01525b69 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x030688bb __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x2b3ba0b4 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x4b0d29e0 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x5842c269 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x6c4764a0 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe10eef52 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xf9e46fac umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x04c80c10 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x051ea621 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x05c4a56e uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0d78016e __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0fc02440 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1b132b35 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x30f218f6 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x31b4ef81 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x36115ff4 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x38117b03 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4565fdf9 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x46ae7a8b uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x47e69443 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4e98823e uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5433d8b4 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5b7bce74 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6da2cfa4 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x816893bb uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x816b9e92 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x83cb4e0f uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9ab425a5 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa021b357 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa144dcb5 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa47d5bf0 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xac97316b uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb139ff0f uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb4e7d7c7 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb6f1da98 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc0109d4c uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcb5e3429 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcbe0a319 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcc6c0e88 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xce54144f __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd4b4f725 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe5b3be85 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe71b90d4 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf089e6dc uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf1117c17 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf3896f7d uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7507ad6 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfc135f4e uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/whci 0xccae1fe9 whci_wait_for +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x03ccea97 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1e33c273 vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1e60c546 vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x25e670ce vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x269f7a09 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2d125f2e vhost_init_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x36de130d vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3af348d8 vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3bad16f1 vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3cc81e9b vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x41072188 vhost_poll_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4ec808b0 vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x523153e7 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5960cca2 vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6417e813 vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x650417d7 vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7cf7e4e3 vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x8135a667 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa24b1d6f vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xaf84d118 vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb0f81e37 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc463fb83 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xcad549e7 vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xcd4ef0b5 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xcd54ecb1 vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xcf4cb527 vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd27897d4 vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd29ee1b9 vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xed441f68 vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf055bb22 vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf9887c1d vhost_work_flush +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x163ac219 auok190x_send_cmdargs_pixels_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x20d2dee9 auok190x_send_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x49cfb6be auok190x_pm +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x55449cb6 auok190x_read_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x6da7e2e5 auok190x_common_probe +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x74113535 auok190x_send_command_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x7c70a111 auok190x_send_cmdargs_pixels +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xa0b7a40a auok190x_send_cmdargs_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xa6559d8a auok190x_send_command +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xe54f5acb auok190x_common_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7157dbd6 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x740948fb ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7462c409 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x95615f17 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xdc2ea8b8 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x1a8bf188 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xa40d9bc3 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x1272fef7 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x5c37ac58 unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x8c5e45fd unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xa8eca69a register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xacb5c4f8 register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x03476327 virtqueue_poll +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x083585e2 virtqueue_add_sgs +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0a143b4e virtqueue_kick_prepare +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0dde9c9f virtqueue_disable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x366d6702 virtqueue_notify +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x3fe70eae virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x539368b3 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x5398ff23 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x5c3e76df vring_transport_features +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x5f0aa0ae virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x6787dbed virtqueue_enable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x680b615c vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x6cae3216 virtqueue_kick +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x8224f96c virtqueue_get_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xa933cd1f virtqueue_add_inbuf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xb3cbe04c vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xc9f91db3 virtqueue_is_broken +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xdf2c3f26 virtqueue_add_outbuf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL drivers/w1/wire 0x0a9228c5 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x0b579c33 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2198ca90 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x49c57350 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x5e9511bb w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x74f42fc6 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x888f96e2 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0xd1c4ec52 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe03e957f w1_touch_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x168591a7 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xac76cc42 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc6dc8c2f dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xfe127cac dlm_posix_get +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1cb4aa23 lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x2fbf2d48 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x39d1add9 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x41a718d4 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x891d5792 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x91ea54e0 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb174bdbd nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xc1f50685 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xfa4b6c58 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x03da467c nfs_pageio_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x060190ae nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x06d01fd8 nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x06d23913 nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x06d27cd8 nfs_generic_pagein +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x06f79830 nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x092b472f nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x09a2cff6 get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x09f57827 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0af67605 nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0db0bb36 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0e7b5d1f nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x103c954f nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x12f8b82e nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x13f53600 nfs_writehdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x145559b8 nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x147c3e5b nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x14a77a18 nfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x15499909 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x15a061a0 nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1736c220 nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x18f88b76 nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x19a202a1 nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1d1dc760 nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1d37619f nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1db1d18e nfs_pageio_add_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1e1bda66 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1ec2ed6f nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x207dbf62 nfs_file_splice_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x22a8e843 nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x24389b2f nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x24e6ecb6 alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x255dd0fd nfs_file_fsync_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x281bc219 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x28a4c92f nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x28f69c85 nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2d585114 nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x34885ff5 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36d614d8 nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3716468a nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3880d42a nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3bb3b04b nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ca31f35 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4039f057 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4527cf06 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x47813e79 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x47fc5162 nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4d637661 nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4e2edaa2 nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4eeb7026 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x58dd87cc nfs_destroy_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5a028028 nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5b52aa3a nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5ba2cd64 nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5cb19c56 nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e1d863a nfs_sockaddr_match_ipaddr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x60688b99 nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x60f49556 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x61b39a45 nfs_fs_mount_common +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x65367be2 nfs_fs_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6a0b5f05 nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6be98d90 nfs_pageio_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6d6a7755 nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6e1ce1e4 nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x74b89b26 nfs_set_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x78e61bd1 nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c9722ba nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x828aeff7 nfs_file_splice_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8459a092 nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x85eb50ac nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x86fb33f2 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89bc5a64 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8b654e48 nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8bf61b3f nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8d6691b5 nfs_fill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8e86e748 nfs_put_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x98d7778a nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9b474518 nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa4a49457 nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa4d97249 nfs_probe_fsinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa54797f8 nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa6a6b479 nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8d2d1ce nfs_callback_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e390cc nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xabc97f48 nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xad8b97ff nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb275e87f nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb606e716 nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb698b24a nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb7ddd435 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb86fd7ee nfs_writedata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb87ebaf5 nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbc9c4193 put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbcd47c2f nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbef0a096 nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbfb43740 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbff01a65 register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc1528143 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc3a67982 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4ff1e9f nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc553b004 nfs_setlease +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5bac8ca nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5ef47d5 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc70a40bf nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc914061a nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xca350f71 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcf1fdbe8 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd1b63200 nfs_readdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2c8534b nfs_try_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd370e54b nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdc7cb325 nfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdecdc9c3 nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdf65ecfd nfs_file_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdfcbb1fb nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe12b14dd nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe134142c nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe146df29 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe2d2a3c9 unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe2da1ae5 nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe509f6b6 nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe9728b43 nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeabbdbf9 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeacc073f nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeb8f35f4 nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xec8cd78f nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf08dfdd5 nfs_generic_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf27115cc nfs_readhdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf27efae9 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf34226ba nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf9a1220e nfs_remount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfa9d1ba4 nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfb7ee006 nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfb82c914 nfs_clone_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfd093c28 nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfe59eecf nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfeaccc72 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x06c36816 __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x121e6214 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x170f3ed6 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x186ac7f6 pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1f86c2c4 nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x277ed5cb pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2ada3c16 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2cd43558 nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x34282454 pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x34b1bec8 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3dfe6fe3 __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3f56f3f2 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x471de0a9 __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4b953fa8 pnfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4d0f82f0 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5dcb2da1 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6437e75a nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x739e5569 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7821b9b1 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7824f387 nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7dccb103 nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x802dfc4f _pnfs_return_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8061978e nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8bb9679c nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8ce012cc nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x90e46cd0 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x924a2fc6 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9446a1e1 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x97b0ea6e nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa343f465 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa9978204 nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb17e0c6f pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb6f31c75 pnfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc28e1a60 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc7ed9f4f nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc9189f4b pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd5b8860a pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe27e2a12 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xec78fb82 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xef962715 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf1345b66 nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf155c8a8 pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf58b7966 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x5d1e8c8d nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x8bb6a817 nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x09bc36d5 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x26987ea8 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36a28a9e o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x72ba356e o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x84744afa o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xac109e83 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xdd0b5ebe o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf4e81bb3 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x45be7395 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xae5b0fd6 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xb8984ef5 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc673daeb dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xf4325070 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfce84a47 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x453acb28 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x464963b8 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x6e0a4603 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x10eacb90 notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0xea55df61 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x1803a6ed raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xe4b051cf raid6_datap_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xfdfcb8cb raid6_call +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x201d8ea3 encode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x29fa419f decode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x07b9cc5f garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x0a7eab6a garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x12c063d4 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x470713d1 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x5cc01c2c garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x6998c4c5 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x35e405ac mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0x3795a3ae mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x388032cf mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0xbdca6e8d mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xd6638f90 mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0xdbc67678 mrp_request_leave +EXPORT_SYMBOL_GPL net/802/stp 0x725b1f61 stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0x890bdfe7 stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x3899e829 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0x5c619171 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/atm/atm 0xb09faf79 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xcfb6a3da unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/ax25/ax25 0xbe1c9397 ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xa2aeeb2f bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x01c7a269 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x058452f1 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x09f3d4e6 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1c504140 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x20103926 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x21301af9 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x29290b7e dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x32fd1d74 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3f6be656 dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x452717ee inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4befe5d6 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5167b539 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x55371467 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x55fd3607 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x76f408d4 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x783099bd dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7a1d090c dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8bf95e30 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8f08e389 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9126dd3d dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9fe102ef dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa3dbc345 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb07dbcd6 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb143701c dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb358a477 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc191b690 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc276aa02 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc40104ba dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcbea0d0a dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd05fafe9 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd894a495 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe1e13fc9 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe927292e dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeda09c47 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xee4385bf dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeed80c0d dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf5f8ab0f dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1c441813 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x63739dc3 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6e39de3e dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7e8827c6 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9487964f dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xf8788971 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x4675fec8 unregister_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x6ee3af41 register_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x69d2fb45 gre_cisco_unregister +EXPORT_SYMBOL_GPL net/ipv4/gre 0x81d38da8 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xb5a27647 gre_build_header +EXPORT_SYMBOL_GPL net/ipv4/gre 0xb902c69f gre_cisco_register +EXPORT_SYMBOL_GPL net/ipv4/gre 0xbab800f2 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x274fb4b9 inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x2793227c inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x73fb4e2f inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xc40e70f8 inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xdd20890c inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xfd791c1a inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x0a4c9d75 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x233f8b65 ip_tunnel_delete_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x25bec03e ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x4a86bfd9 ip_tunnel_ioctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x5cbc50f3 ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x706da6f8 ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7624d459 ip_tunnel_get_stats64 +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x8b07706c ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x90117902 ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x927b2871 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xa64cc9b3 ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xb56e79dd ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xf14dd94b ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xf8b42109 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x26c7b983 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x7df523ce ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_ipv4 0xe07ef4c5 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x15973ed4 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6a9521f9 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xc668ec8c tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe8342212 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf7fe7d05 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0x237b4201 xfrm4_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0x2a90158a xfrm4_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x2ea37128 ip6_tnl_dst_store +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x41bd53e9 ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x4813ed08 ip6_tnl_dst_check +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x830578f6 ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xefcd9904 ip6_tnl_dst_reset +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xcb41acb4 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_nat_ipv6 0xa21e54c2 nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0x2faeaf06 xfrm6_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0x9ff9caea xfrm6_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x07ce19be __l2tp_session_unhash +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0968a416 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x15dfe138 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3a2a1dd5 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5804a58c l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5ce4fd4f l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x68fa9e79 l2tp_session_queue_purge +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6938487d l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x72b78468 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7ae9773d l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9c3c3a21 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9d96ef20 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc2dd2f0b l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc5067f28 l2tp_tunnel_sock_put +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdec71e5f l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xee5942c1 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfb0e34e4 l2tp_tunnel_sock_lookup +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0xaad45773 l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x02c61d54 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1293c4bf ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x356e3131 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3663a36d ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3cdcad29 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4bf42798 ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5d38f601 ieee80211_set_key_tx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x72abca7e ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9c7d3e7d ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa6a04975 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xac1bdad4 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb55e3c9e ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb7594ea3 ieee80211_iterate_active_interfaces_rtnl +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xbb126922 ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc005fb06 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x08e816cc ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0c7f7891 ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0e20e08f ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0ec8474a ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x17622de8 ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3665f2b7 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x45566d0e ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x62f47935 ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x70b89b47 ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x726ac7ce ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x906188eb ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x933108f6 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa5c00776 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xcd981229 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xdb9b0a1f ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xef13ebbe ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf3b4d4ae ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xfd13252a ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x310c0354 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x5cc6792d ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xa252a2df ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xa6bfb187 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01f84db5 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0242fb8d __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x02b3b351 nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x04ba5abc nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x061555ff nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x065de066 nf_ct_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0d691cad nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0fc337f0 nf_ct_l3proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x135f701c __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1b2b5e7b nf_ct_l4proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1ba6b098 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1d2e9d50 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1d9ca5bf nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2322b974 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25236d92 nf_ct_l4proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25c2d8b1 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2cd2f4a8 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x31414157 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37386cac nf_conntrack_hash_rnd +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3827381c __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3bb5b3d5 nf_connlabel_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3e0af096 nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x43741da9 nf_ct_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x47dfdda8 nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x512e9a51 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x58e910e1 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x59575eef nf_connlabel_match +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d3a327c nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5ec60a2f nf_ct_timeout_put_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5fb6c0b6 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x60394d97 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x651fd8ee nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6939277c nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6ec9202a nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fff8279 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7afc0233 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c355603 nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c51dbc2 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x807dbc5e nf_ct_timeout_find_get_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x828647ff nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x83714a1e nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x85f21ca3 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x88cb7318 nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8b8e276e nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f976d1f nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x909b849f nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x91e45b56 nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x946234b7 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x95ad24f4 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9752d1f8 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x996c6909 nf_ct_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9cab534b nf_ct_l3proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9cbfa9a4 nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9cdb6607 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa101ee9f nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa79b4676 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa9f6f9f1 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa10bb95 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xafd2c9c4 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb68ffa1b nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb6d39b1 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc3bdda57 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc409b7c3 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc7ba174a nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca3cd819 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbc7ab42 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcc1980db nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xce2ae973 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcef226a3 nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd0356a0f nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd121588b nf_ct_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd815d3f7 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe48ec5c0 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe6ab0572 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe7286354 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe944ad6b __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xee07bd72 nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xee517f8c nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf18bb8d5 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf3bc1506 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x19866cf4 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0xa2a8d983 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x44eef2aa nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x05efdf04 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x26347cef nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4142f847 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4c729d3e get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb6c61715 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbd89aef1 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc70f6a6b set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc7844862 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xeec52d11 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf3f10d56 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x410d604e nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x29ae2322 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x5e3c4e2e nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xe521d06f nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xebdc1de6 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xd6857fa7 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xe4be6a23 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x27bb69a3 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6301f22b ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6a7f7c2d ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x71baff5c ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x805421fa ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb646a90f ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xbf5b045e nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x16926392 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x4a96f95f nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0d9bae4b nf_nat_l4proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x131f636c nf_nat_l4proto_in_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x833f80ba nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xa6075120 nf_nat_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xbfaf82ec nf_nat_l4proto_unique_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xc46fd045 nf_nat_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xce9dfbc6 __nf_nat_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xe9529b32 nf_nat_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xf6d4e90f nf_nat_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xf70ea372 nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x11a006b5 synproxy_check_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x4cee2a5d synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x5f339439 synproxy_build_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7e634a5b synproxy_tstamp_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x90298227 synproxy_init_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xb42e336a synproxy_options_size +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xef7db50c synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0d420435 nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0fda3c99 nft_validate_output_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x17f287f9 nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x2d7cb434 nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3d49dab7 nft_validate_input_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x40fbab72 nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5f5013ec nft_unregister_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x65fb1e6b nft_validate_data_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x6d3aeaeb nft_unregister_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7f252374 nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8bac6d8b nft_register_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8d79104f nft_register_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x992b5ca0 nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf95c7c24 nft_do_chain_pktinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xfd78c545 nft_data_uninit +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x2babaec1 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x4ab83afd nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x72ded4ce nfnetlink_alloc_skb +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x957c37a4 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xbc9538dc nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd26053ff nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe29812ce nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x21f6bba6 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xe7b5b13d nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xf54c72e5 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0d3dc333 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1201f584 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x385f28ae xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x386cc3f3 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x39c42474 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x425b144f xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4c31ee97 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6b4e108f xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x743a1ba1 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x98daa0d5 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa41e7f6b xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa9fa54e4 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xca195aaf xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd8beb464 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdcad8d41 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xec24fd82 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xef92e2c1 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf856d903 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf8f1706f xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfe0537f5 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x00204983 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x482b6a12 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x03494663 nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x426d9812 nci_spi_send +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xb7020a8e nci_spi_read +EXPORT_SYMBOL_GPL net/rds/rds 0x0070bfa3 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x101d0cdb rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x281afa1f rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x2b65001a rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x33e52070 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x49ac886b rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x538d164e rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x64acaac2 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x681d309b rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x6ac3863a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x6e9306f3 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x743b1510 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x777304d5 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x7bc62829 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x94698f97 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x974da17e rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xbb2cdb92 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xcdaccedf rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xd4d4f8df rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xe367e15a rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xe5ebfa13 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xf0ed4c52 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xf1c997eb rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0xf3ea9bbc rds_trans_register +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xd538520b rxrpc_register_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xd8a8a410 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5a472920 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x80fbc632 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x99b515c6 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01edff38 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x021cb3c6 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0296ae15 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045834e9 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04c80c8d svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04db80d8 rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0639d88b sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x069593ac svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x086117f9 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ac168e1 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ac72905 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ac801c9 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b889959 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c8558e8 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0dddbb68 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0fbd7abd unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11939593 rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1635b3c1 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x186845ac rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18fb717d rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19ea1e62 cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ceaaa9a xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e2e92d1 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f2a9970 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x206374ff rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21099bec rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2339f914 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23427ee8 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25d3075d svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2843e81a xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b210289 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2bfeeb35 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c18b35f svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ca0cb86 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ccdc3fc sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d80f8cb rpcauth_key_timeout_notify +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eb21f7c xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f0570ac rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2fb67ae1 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x311bf042 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x313713d3 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x318255ef rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x325642a4 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3261070c rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x343e24e2 rpc_get_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36007c6a xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a40aa70 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3bcab489 cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c4a7535 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e8024cb rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f836ed8 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x402b1cfd xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43e78c56 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46a6c34d __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x474f7923 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48f74bea rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x495688ff xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a593453 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a6c00c7 xs_swapper +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4acf6df8 rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c418ed5 svc_shutdown_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c7cd98b rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d60732d xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5026f776 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x517ac9e0 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x523ae822 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52e73a30 rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53b0aebd read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5468526c xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5628014d xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57258fa5 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x575fdf3f svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57f18b85 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58f0a8c9 rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59764ba4 rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a509d59 rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b6c606e rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f0e5fea svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ffd26af rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62a2b6c3 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6528e574 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x657bec79 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67c2c0e6 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x690ff04a svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bb7b20f cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d709cfa xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x703bb4ec xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x728c3a6f xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x733dcbb5 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x735c0986 rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x744a2021 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7502c1ba xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7708ced9 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x778e04ac rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a3c3253 rpc_rmdir +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b2dd432 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b68ead5 rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f006b9e svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x805de865 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80951b28 rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80e1044e rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82da6e49 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8332e53a xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x848d8b4b rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x871264c9 svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x874143b5 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87c6ddba xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87ec6052 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x88777a3f svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a71a7f6 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a7329f0 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c4c312b xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8cb8222b bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8dce25da rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f179259 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90c9a33d rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9255c169 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9498d018 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94b7308b svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9584c51e svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b75d64 rpcauth_list_flavors +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f448c04 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa14c1a76 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2659b3b svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2d9d746 rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa315d195 rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa977f09b rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa97c2122 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa0505b6 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa5121bf sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac795e8d xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb18731d3 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1fa358c rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb22eb29c svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb41d5927 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb60ce76c sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbaade9f6 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd66c848 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbde17977 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf37e837 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf45cadc sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0576f2d xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc220f205 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3fe6329 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc58ac3b1 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5ef61f4 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc643214b cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd7819eb svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcedb22bf svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd24ef3fb rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2c79dd8 rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd376f71c rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3eedb91 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4f787c5 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5529d94 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5cf18ce rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd60520c2 svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6261b85 rpc_protocol +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd66999e6 svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6ad81b6 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7c847ba rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7cce424 rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8767b8f xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb2ee5a6 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc42b180 xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ac2bb8 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4791cd2 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe61167e8 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8458971 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe941b291 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9fa3e35 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea6dacd3 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xecf3bbb0 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee14130c rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeefb0d1 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef3123eb rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0443b49 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf190df4b auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2865029 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5633be2 cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5e25e70 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6e4b467 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6ebc3c3 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7fc06cc svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf83336f5 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8578427 gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9bc39f1 rpcauth_cred_key_to_expire +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa93e8e7 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd36292a xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe2cfc2a rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0c79d5ef vm_sockets_get_local_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x135f14c5 vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x15c0c57c vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x1a1a55d1 vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2663cb64 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x439a9a0c vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x59d943c8 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x5c32fd75 vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x6916efe6 vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x751ff010 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7f730c80 vsock_core_exit +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x837b57c9 vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x970b77bc vsock_pending_work +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x981064bb vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xa4d18bd1 vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd0f699d vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc03e0317 __vsock_core_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc44eac4a __vsock_create +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd6e649a5 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd95ac116 vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xe4e73f15 vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf27a438a vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1b2c79aa wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2f2bf83b wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x62073832 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x76b14459 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x79e77bb3 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x82394d2b wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8a727faa wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8b3aeb1a wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x9f831376 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd6bc173c wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0xd734e58a wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe5b4c672 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0xffadfa18 wimax_dev_init +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3a1f8f20 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4010ad86 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4cd3d9df cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6192a728 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6602fdac cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x742ef0d6 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x84e735a3 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8add3b0f cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x963d2f3a cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa26e0a8e cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe1587d90 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00778770 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x056bb269 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0a575945 xfrm_count_pfkey_auth_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0b9e5852 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x74e1a843 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7a8ca627 xfrm_count_pfkey_enc_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7c30b8c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x92dbc6c1 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xbc8b0f41 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xce7a55c1 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe122af95 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x82a6096c ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x982a299f ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xd720cb37 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xef2178e9 ipcomp_init_state +EXPORT_SYMBOL_GPL sound/core/snd 0x20949496 snd_kctl_jack_new +EXPORT_SYMBOL_GPL sound/core/snd 0x3ca17104 __snd_printk +EXPORT_SYMBOL_GPL sound/core/snd 0x3db0aede snd_kctl_jack_report +EXPORT_SYMBOL_GPL sound/core/snd 0x567673d4 snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/core/snd 0x9c590dd5 snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0xaa7d8f20 snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x5d77d01c snd_compress_deregister +EXPORT_SYMBOL_GPL sound/core/snd-compress 0xc98237c6 snd_compress_register +EXPORT_SYMBOL_GPL sound/core/snd-compress 0xf514fde1 snd_compress_new +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x04e1b99f snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x09e913c1 snd_pcm_alt_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xe17abfa6 snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xe81f848f snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x073d0078 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x44670827 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa244cd81 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xb140e1e5 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xb9213986 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xbe150465 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0446e87f snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05d967c6 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05dfddef snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x06256dce snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0878bba4 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x092bad79 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0d29f48a snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e59245e snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0f41e0e0 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0f6f0940 snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1203aacd snd_hda_codec_flush_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x134664b4 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x158e1037 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15ecb4ae snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x17b2d05f snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x17e9d3b1 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1cf11c4f snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d47dc50 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1f82c690 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x240e30ef snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2e900de0 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x328b28ab snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34507502 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3762c44a snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x37bde0c6 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x41630cba snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x420d11b7 snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x423f4949 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x432be9fe snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x472e1144 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48044895 snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48e9c049 snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4b6fba62 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d031f29 snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4e343178 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x558c2dfe __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x55b40e00 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58d32103 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x59cc6808 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b2ce1bb snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b96cb3e snd_hda_jack_detect_enable_callback +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x633703b7 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6929753e snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6c466aea snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6d2839dc snd_hda_gen_spec_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6d66cda1 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e381d27 snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f7029ba snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x706953ca snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x708e9c03 snd_hda_parse_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70d9cce9 snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x721c2e4c snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76a4607c snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76dc6871 hda_main_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76fd26b1 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7902cc03 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7c0fd7c9 snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7c346206 snd_hda_get_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f0c67c4 snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8014c6ed snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x80b8eaed snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x85e17d69 snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x871a6e44 hda_extra_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x87cbf0bd snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x887990f6 snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b79ce41 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8bb6072c snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c7d99d2 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8d3bfb73 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8f47166d snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x910f0d52 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x916edbe4 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x94bad5bb snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95c00031 snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9706d4fc snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x970d45b6 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x97441828 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x978e21b3 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x99f13d20 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a261fcb snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9c4e46c5 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d54abb1 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d6cca0f snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa00a289c snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa1c207e2 snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa27bd7c2 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa295c91e snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2d33cdd snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa9cc855 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaabdd591 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xab17ac8a snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad2562ea _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb07b9878 snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0dee052 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb578c7b7 snd_hda_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb5c87d94 snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7d17f76 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb8ffbb5e snd_hda_jack_detect_state +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb94a35b5 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbaa63903 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb16d4fa snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbcc1f1bc snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbdb93988 snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe15cf8d snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbeb953c8 snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc01ce050 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc168435b snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc450b49f snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc452da69 snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc68882eb snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc72d43df snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc8c4aa07 snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc959eac4 snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcbbbe1a9 snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xce5212dc snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcfcc9de2 snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd1d33f7b snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd2550000 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd50803bc snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd62f05e8 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6e22fbe snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd736e18b snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd7662c5a snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd7c67405 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde2880ba snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdf67e90b snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdfb4bb46 snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe06b5c86 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe118de5d snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe131f6a3 snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2540cfc snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2a39eeb snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe88c366f snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe89ccef3 snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe91dc8b0 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed6e3ccd hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeea870a0 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeeab0371 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xefc2bc58 snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeff5df4a snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf0b02b70 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf221a9d5 is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf2327493 snd_hda_parse_generic_codec +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf415ae07 snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4ab9d6d snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf70c468c snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf81317ea snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf894c961 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf8d9cc53 snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf954a2cd snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfc88180d snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfdd4293e snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfe6871e4 snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x51448025 atmel_pcm_new +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0xa3f2876d atmel_pcm_free +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0xfb6e00ab atmel_pcm_mmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x022b40a5 snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x04821c09 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06964b53 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06dceffb snd_soc_of_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0ae8b7ea snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1047a84b snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x16519007 snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x183d5d83 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1a0d0199 snd_soc_dpcm_be_set_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ab75c2a snd_soc_bytes_get +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1b2b0036 devm_snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x220123e5 snd_soc_lookup_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2302b244 snd_soc_add_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x236182e0 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x250aba18 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a715804 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2b3758d6 snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2d8d5064 snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2defb827 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2e353a97 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2eb3b2db snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3398b586 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38c763a2 dapm_mark_io_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3ece5520 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4181f2c6 snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x45d68423 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x47cc2add snd_soc_get_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48e8cb4e snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49f447c8 snd_soc_add_card_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4c35cd3c snd_soc_add_codec_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4c407773 snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x51b02685 snd_soc_bytes_put +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52d23c1c snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54ea5828 snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x558b51b7 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x55dcb060 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x55fc2a32 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x562dfc4a snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x568528e2 snd_soc_platform_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5b98eb73 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e26eb21 snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5f149ba0 snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x60292839 snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x60aa42eb snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6113bd5f snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x61554e76 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x63413d51 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6882721c snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x69599fbf snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c36b9f8 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6d521217 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6e738e51 snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x70aab9b7 snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x72094633 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x755ab233 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x75ab8304 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x75f137dc snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7674686e snd_soc_dpcm_be_get_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7bb096e3 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7bbdeac6 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7c6903bd snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7cdb01c8 snd_soc_get_dai_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7da518b1 dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e848e6f snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ea91842 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x84ff20eb snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x85e23fb1 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x86a27ad7 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9107591b snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x91eb157d snd_soc_dapm_kcontrol_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x95428ef5 snd_soc_bytes_info +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x95ff1915 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x963af29d snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x979ad180 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x98acff61 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9c0fc186 snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9cd6b021 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9f8069c2 snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9fcf4200 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa2a3a4d1 snd_soc_put_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa5ef8dd2 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa95b5a10 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xad35a873 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaf1ba06b snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaf3ec317 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaf6683a6 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb1222a20 soc_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb71d1cc1 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb7e42022 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb801ad39 snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb85a1d17 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbabc3bbe snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbb816219 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc126439 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbca64a9e snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3555560 snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc87d3d4f snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc89da54f snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc955d816 snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcd996c35 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd3443398 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd3494d7b snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd4557338 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd60a77fd snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd730c177 snd_soc_remove_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd76e5a0f snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd8060959 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd92445ba snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdac41436 dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdb8710e1 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdd301fd1 devm_snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdd4c0a44 snd_soc_unregister_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe09d280a snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe3d3d40a snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe41c6b61 snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4868d05 snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe51275a3 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe61e79d1 dapm_clock_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xea16dbdf snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeafd5fe3 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec4184ab snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec8ad5a2 dapm_regulator_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xee4d502b snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xefb137ef snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf101abd2 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf12436df snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf2bf82c9 snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf7bbe937 snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf82227d1 snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf893ef65 snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfcf02ab6 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd1fd306 snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfe7438a8 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xffc1649d snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_file_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sigset_from_compat +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x00129f5f bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x001e371e class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x004a8c1f tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x006bc072 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0070ef14 __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x007c7481 alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0x00888f81 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x009304b6 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00d092b4 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00fd6f9a ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x012dcd96 call_filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x0170fb18 yield_to +EXPORT_SYMBOL_GPL vmlinux 0x019fca7c tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0x01b4e023 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x01beb2ce rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0206f046 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x021ebfda btree_update +EXPORT_SYMBOL_GPL vmlinux 0x024b5460 clk_register_divider_table +EXPORT_SYMBOL_GPL vmlinux 0x0270afc3 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x027e8107 devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x029a4c81 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x02a40644 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x02bb60f9 pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x02d16b7b hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x02d7c85f rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x02f433d0 blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0x0301c057 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x03079e50 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x03134f88 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x031d2959 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x0334ec6f jump_label_rate_limit +EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0347412c blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x03501cb3 wm5110_patch +EXPORT_SYMBOL_GPL vmlinux 0x036503c5 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x036eb521 class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x0373ab9a rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x0389b2da rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x039a0b4c cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x039c9c4c nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x03bf1d5e gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03f0eb05 sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0420e1d1 tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0x042419fe regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x0435d2e6 devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x043833b3 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x043fdfa1 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044d9eb6 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x045139c1 wm8997_patch +EXPORT_SYMBOL_GPL vmlinux 0x04590657 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x045b452f of_clk_get_parent_count +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x048f41ee kvm_release_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x04b0e4c2 bmp085_remove +EXPORT_SYMBOL_GPL vmlinux 0x04b5549c __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04df8fbc lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x04f24ea0 ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x051d9029 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x053494cb tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0x0537b6f1 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x053c2faa find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0555c960 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x05805373 trace_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x058516eb debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x058b582a vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x0599776c crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x05c25c2e save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x05e77c36 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x05f8a6ee debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x061dee59 btree_remove +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0673f50e crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0x069f4fc9 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0x06a69e18 ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0x06c8edec dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x06eedf2e cpu_remove_dev_attr +EXPORT_SYMBOL_GPL vmlinux 0x06f7b150 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x06fb7675 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x07020aec __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x0705a44c i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x07138322 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x071f2055 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x072edd79 call_srcu +EXPORT_SYMBOL_GPL vmlinux 0x07361daa usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x0762403c edac_put_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x076a3e97 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x07804acd class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x078f86ae mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b4d39a skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07d47103 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x07f300c3 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x0832472d crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x0869cb6f ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x086a678f perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0x086c0558 sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x088bfa7e cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x08a8b4c7 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x08bc0870 compat_put_timespec +EXPORT_SYMBOL_GPL vmlinux 0x08f7266d kvm_clear_guest +EXPORT_SYMBOL_GPL vmlinux 0x08f7b4da sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0936d1d6 register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x09376b10 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x093c9747 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x09437748 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x09469482 kfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x0951f0eb wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x096117e2 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x09651008 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x0979c150 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x0996a95e gov_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x09b682d0 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x09ce44a9 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x09d54177 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x0a44b1e6 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x0a472437 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x0a4d1766 rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0a620095 usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x0a82d6fd __mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x0a98fa26 netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x0a9fd3c5 gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x0aaf4191 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x0b025e96 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b24d3d0 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x0b2c1016 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x0b37a204 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x0b82b20b pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x0b9aaa0d regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x0babcb55 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x0bae62b1 ktime_get_monotonic_offset +EXPORT_SYMBOL_GPL vmlinux 0x0bb3af76 dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0x0bba1f8f devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x0bc51406 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x0bd4d27e tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x0be4ff40 led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c0b3bf8 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c296e8c usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c3f6612 crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0x0c4992f8 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x0c4aeaf2 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0c4be3cc stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x0c6f4e1b regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x0c788f2f netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x0c892cef regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x0ca7628a ping_close +EXPORT_SYMBOL_GPL vmlinux 0x0caba022 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x0cb35e72 rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0cce0227 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x0ce493d0 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x0cea9ecd ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x0d384363 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x0d45ec51 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x0d706d2e rh_set_owner +EXPORT_SYMBOL_GPL vmlinux 0x0d82975a tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x0da76dbb crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0de06988 cpu_first_thread_of_core +EXPORT_SYMBOL_GPL vmlinux 0x0de6cf49 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x0e0f9dd9 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x0e341877 pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0x0e3d0960 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x0e61c790 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x0e841b8a ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x0e8a0555 usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0x0ea3003b led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0eaaaaf4 pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x0eb96c01 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x0ecf823a static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x0ed9302e percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x0eddbfd2 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x0ef1207a blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0f04faad ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x0f119725 dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x0f3a6957 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x0f4fcfde serial8250_tx_dma +EXPORT_SYMBOL_GPL vmlinux 0x0f751aea input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x0f7edc84 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x0fceffaa regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x0fe112dc of_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x1002b54b tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x10095e1f ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x10635b7c dma_buf_unmap_attachment +EXPORT_SYMBOL_GPL vmlinux 0x107180c9 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x107c9903 __mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x10adc7c0 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x10c2a72f __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x10f2fb3b crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x10fa59fc list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1114011d threads_shift +EXPORT_SYMBOL_GPL vmlinux 0x111dc959 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x1127ec30 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x114b6e17 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0x11676d8a regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x116e62c2 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x117a8415 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x11d63b5f tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x11df9fdf sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x11f0ed69 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x11f54d38 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x11f5ffc8 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x11f96e0b __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x1209f4a1 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x121cc1ec gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0x121cd964 of_pci_range_parser_one +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x12280949 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1252373c PageHeadHuge +EXPORT_SYMBOL_GPL vmlinux 0x1260d4d8 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x12792b63 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x1279733a mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x127e8dbe xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x1304e31f crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x13193bd6 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x13254af8 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x13414ea5 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x136a4ee6 btree_init +EXPORT_SYMBOL_GPL vmlinux 0x13921363 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x13ad647f scatterwalk_bytes_sglen +EXPORT_SYMBOL_GPL vmlinux 0x13bec5b8 da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x13ce87e8 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0x13e5ea13 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x1416c8d6 put_compat_timeval +EXPORT_SYMBOL_GPL vmlinux 0x142a8be4 of_clk_get_parent_name +EXPORT_SYMBOL_GPL vmlinux 0x142ee05e cpufreq_governor_dbs +EXPORT_SYMBOL_GPL vmlinux 0x143427dc blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x14c1b26c extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15026a32 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x150baa52 kvm_read_guest +EXPORT_SYMBOL_GPL vmlinux 0x151525f4 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x153b394e pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x154e4ad4 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1594d3ed hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x15a096eb __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x15a5b275 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x15c21e5e nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x15d22901 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x15f762a8 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x15f9d8df ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x1608c2a2 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x160d753a adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x16143f63 nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0x162ef11b raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x162f8833 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x16303c1b bus_register +EXPORT_SYMBOL_GPL vmlinux 0x1649e110 evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x1666bd09 devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0x167cc4ec register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x1688bad9 regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x16aa2cc8 rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0x16c740f1 task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0x16cb27db __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x16ce0375 pcibios_remove_pci_devices +EXPORT_SYMBOL_GPL vmlinux 0x16e96790 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x17221ccd class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x17228d51 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x1724d05c usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0x174f512e __mmu_notifier_invalidate_range_end +EXPORT_SYMBOL_GPL vmlinux 0x1753a32f hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x1795445f unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x17a7c37f shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x1836923a regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0x1848d7d7 __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x185090bd remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x1850b8fb rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x1853653c btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1866cec2 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x1888de37 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x18a9de23 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x18be8825 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x19141359 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x1935050a crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x193c6f12 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x1948aa98 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x194dd5f5 pkey_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x1963f61f devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x19826ba9 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x199ca114 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19b31344 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0x19b384a5 hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x19c966ee swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x19ce5fdc pwm_set_polarity +EXPORT_SYMBOL_GPL vmlinux 0x19db9870 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x19fd45ec ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x1a082d69 max77693_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x1a28f49e regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a8c5907 btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x1a903f6c crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x1a908208 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x1ab3f97c inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x1ac2ce96 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x1acef7d2 pm_freezing +EXPORT_SYMBOL_GPL vmlinux 0x1ad63635 of_pci_msi_chip_remove +EXPORT_SYMBOL_GPL vmlinux 0x1b52c3b6 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x1b535958 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x1b58198a od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x1b830fd3 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1ba7d4d6 blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0x1bc52327 kvm_release_page_clean +EXPORT_SYMBOL_GPL vmlinux 0x1bccc884 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x1bd06aab cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x1bf63535 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x1c1101d3 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x1c392ea0 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x1c39e646 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x1c3e021a power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x1c487f0f regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c5be8e4 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x1c77dcb2 extcon_get_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c89f9f4 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x1cdb2147 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL vmlinux 0x1d3a6da7 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x1d444bed rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0x1d580a69 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x1d58ae14 lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d852c68 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x1d94d310 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x1db0109e md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x1db652e9 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x1dc90123 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x1dcc9a76 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x1de054d5 of_clk_del_provider +EXPORT_SYMBOL_GPL vmlinux 0x1de91c11 verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x1dfb27cb fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1dfbcf4c mpic_msgr_disable +EXPORT_SYMBOL_GPL vmlinux 0x1e08e715 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x1e2ef0f4 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x1e313218 devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x1e5b03dc pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1eb1594f gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ec06408 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x1ed44e89 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x1ed8ac6f pwm_free +EXPORT_SYMBOL_GPL vmlinux 0x1ee1d5a9 rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x1ef620db subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1f1ccea4 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x1f2b8e0d fb_sys_write +EXPORT_SYMBOL_GPL vmlinux 0x1f319591 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x1f344f4b cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x1f5701a9 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x1f719983 dma_buf_attach +EXPORT_SYMBOL_GPL vmlinux 0x1f77be78 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f87ab12 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x201a64aa kvmppc_handle_load +EXPORT_SYMBOL_GPL vmlinux 0x2028b975 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x2029e175 devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x203f57ad __netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x20418e5c unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x20426bd4 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x20a66529 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x20b9151e inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20bfb629 ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL vmlinux 0x20f1df2f scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x20f777e8 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x210e281c netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x211aab75 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x212c7dd6 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x213df9de pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x2160e706 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x2169d2d7 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x218f0800 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x2191aeb3 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x219b34f5 kvmppc_prepare_to_enter +EXPORT_SYMBOL_GPL vmlinux 0x21cc7283 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x21d36a03 kvm_hypercall +EXPORT_SYMBOL_GPL vmlinux 0x21dbbb0f usb_string +EXPORT_SYMBOL_GPL vmlinux 0x2207ebae pwm_config +EXPORT_SYMBOL_GPL vmlinux 0x221ecbc0 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x2232b63f inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x22583d7b stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22aca97b scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x22b58601 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x22bb15d4 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x22c4d76e clk_register_mux_table +EXPORT_SYMBOL_GPL vmlinux 0x22d50e00 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x22fc5927 vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x2328c266 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x233f3fbf put_pid +EXPORT_SYMBOL_GPL vmlinux 0x2376e586 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x239d98e2 tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0x23a9be50 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x23c9c1c4 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x23cb0a65 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x23d5524d rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0x23f95ad7 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x24011e14 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x2428b6f9 tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x247acbd2 dma_buf_end_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24804cf0 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24c1f9f1 get_device +EXPORT_SYMBOL_GPL vmlinux 0x24c1fdcd pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24eeba1b fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x24ffd1d8 gfn_to_memslot +EXPORT_SYMBOL_GPL vmlinux 0x25078584 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x255f507d tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x25dbb39e __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x25e7d9e5 extcon_find_cable_index +EXPORT_SYMBOL_GPL vmlinux 0x260cb3d0 palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0x261084cf inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x262c2cba debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x26500f22 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x268a7e37 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26d5ee4f bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x26d874d1 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x26dc885b dma_buf_fd +EXPORT_SYMBOL_GPL vmlinux 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL vmlinux 0x27221335 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x27418a6f platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x274651cc pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x275fe1bf dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x2763222a eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x2769357c regulator_can_change_voltage +EXPORT_SYMBOL_GPL vmlinux 0x2776affd blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x27809fc1 cgroup_taskset_next +EXPORT_SYMBOL_GPL vmlinux 0x278eb252 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x27c0c4be eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27c21ac6 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x282d2e43 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x283b8675 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x28432419 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x285a5f9d percpu_ida_free +EXPORT_SYMBOL_GPL vmlinux 0x2863a235 tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x286984da ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x28918556 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x28a097f5 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x28a903c8 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x28b78cfd ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x28e1cd0d vtime_common_account_irq_enter +EXPORT_SYMBOL_GPL vmlinux 0x28e773c1 ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0x290210e0 rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x2943080f tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x294e8915 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x2974fdc5 devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x2988cebf pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x29915fd9 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x29c1f93e regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x29d5780b ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x2a1c48ae usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x2a368716 public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x2a65ba2c serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0x2a820c19 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2a8b605d __class_register +EXPORT_SYMBOL_GPL vmlinux 0x2ad1ece4 zs_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2ade9f77 powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0x2b108dcd ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2b12e3ad crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x2b3a3ad2 devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x2b5c303b smp_send_reschedule +EXPORT_SYMBOL_GPL vmlinux 0x2b7a6de8 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x2b831e56 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x2b8d90c0 kobj_completion_del_and_wait +EXPORT_SYMBOL_GPL vmlinux 0x2b9b782b devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x2bacf42a sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x2bcfc818 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x2bfaef4e clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0x2c18ea92 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c79f338 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c97f8a2 of_reconfig_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x2ca923ee bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x2cd399e7 pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cf9407f bmp085_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x2d0bf235 regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x2d17a0e1 cgroup_taskset_size +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d1f0db6 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x2d22b1cc __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x2d36c57b rh_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2d387c3a usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d77e28d __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x2d894fef blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x2dba276a __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x2dbe31b0 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x2dc5a6d1 btree_last +EXPORT_SYMBOL_GPL vmlinux 0x2ddd887e reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2de0f723 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x2de5af41 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x2defd69d ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x2dfdaec3 css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x2e0ad34f fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x2e1da9fb probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x2e1f4b0d cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2711f2 dma_buf_map_attachment +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e47c78f ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x2e749d99 dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x2eaef3ad devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2ebc24af led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ec493ff alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0x2edb85eb hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f0e5269 sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0x2f11b7f6 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x2f1ba78b inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x2f2295a5 of_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x2f3f7d52 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f4838b3 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x2f820bd0 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x2fbba789 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x2fdb3062 dma_buf_kmap +EXPORT_SYMBOL_GPL vmlinux 0x2fe79e50 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x2ff6785f usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x2ffb5ff7 btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x3005f43d replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x3006b6f5 of_pci_get_devfn +EXPORT_SYMBOL_GPL vmlinux 0x301249e9 key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x3047f4cd blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x30666cda raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x308b733a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x30c23712 unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x3121725a fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x3130fa6c spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x3150856d split_page +EXPORT_SYMBOL_GPL vmlinux 0x3168b216 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x317538c2 extcon_get_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x3183543c fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x31859993 of_irq_to_resource_table +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31ed2c6d rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x31f992ae driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x320f681f sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x321bdbb1 compat_get_timeval +EXPORT_SYMBOL_GPL vmlinux 0x3256ca45 gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x326266c2 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x32846dba register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x328995b5 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x3296ea6f regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x329bbbde timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32bded08 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32c3d225 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x32c4ae6c key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x32c80375 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x32cafc8b srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x32fd447a monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0x3310bf11 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x3324a032 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x332f69d7 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x336169d7 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x337786fa usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x338003a0 irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x33a94a45 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x33aeebf5 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x33f7ab15 get_compat_timespec +EXPORT_SYMBOL_GPL vmlinux 0x3465fce6 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x34772b9c pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x34cc08d6 cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0x34dab7b4 devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x34e0d03d kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL vmlinux 0x35041618 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x3505326b bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x353db3f9 regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3553c313 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x35862b41 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0x35863686 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x358ff60f twl_get_hfclk_rate +EXPORT_SYMBOL_GPL vmlinux 0x359b2d3f sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x35eeaa88 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x35f10f43 nfq_ct_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x35f165f1 devm_reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x35fed09d regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362fb37c led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x366383db device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x368f1fea static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x369d44dd tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36a64e5c percpu_ida_free_tags +EXPORT_SYMBOL_GPL vmlinux 0x36aa874f use_cop +EXPORT_SYMBOL_GPL vmlinux 0x36bb8e5e fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x36f63718 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0x36faff02 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x36ffbada sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x376065a4 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x3777141c kvm_vcpu_init +EXPORT_SYMBOL_GPL vmlinux 0x37877f4b dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x37b48662 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x37d2c2c5 rh_dump_blk +EXPORT_SYMBOL_GPL vmlinux 0x37f9c149 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x37fce7e6 balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x38141b9f spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x383c6a87 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x38477848 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0x387a229b usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x389af583 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x38a454b1 sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x38f4873b shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x3948e255 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x394ecf78 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x3951814e kvm_resched +EXPORT_SYMBOL_GPL vmlinux 0x396eeb6f regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x397ef9ad crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x3986ec36 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x39cdaa83 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x39ea787a pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x39f21d88 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x39f61c73 acop_handle_fault +EXPORT_SYMBOL_GPL vmlinux 0x3a0c7033 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x3a1ceb9b ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a2c782e pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x3a376f99 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a656caf ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x3a859480 rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3ad02aa3 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x3ad0e201 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x3ad82802 of_property_read_u32_index +EXPORT_SYMBOL_GPL vmlinux 0x3ad993ac devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x3b41a8c3 lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0x3b4e8c86 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x3be906fa sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x3c422831 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x3c517ee8 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x3c8424a0 clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c8d28cc of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x3c8f3ec9 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x3c911bb9 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3ccffec8 of_irq_parse_one +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3ce97495 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x3d2f0b2a serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x3d375c8d devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x3d39b6ab fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x3d4738d3 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x3d61750a rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x3d8020f8 usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x3dbf2093 tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0x3dc526a9 arizona_of_match +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dd0db2e gpio_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x3ddca3fb pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3df43520 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x3e2a193a fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x3e2e543d cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x3e2fa31f wm8997_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e70e808 kvm_vcpu_cache +EXPORT_SYMBOL_GPL vmlinux 0x3e909f65 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x3e971b8d regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x3e9d2644 balloon_devinfo_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3ea6714a device_del +EXPORT_SYMBOL_GPL vmlinux 0x3ecbc922 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x3ed72dfd rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0x3f3ae058 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x3f509b23 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x3f61e758 pcibios_unmap_io_space +EXPORT_SYMBOL_GPL vmlinux 0x3f9bf657 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x3fb14423 md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x3fc72d3d __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x3fc72fed balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x3fdbc5cd tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x3fdd72bf xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x3fef7431 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x4008a07c srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x404452fd regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x4045c494 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x404b038f __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x4059a3ef __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x40635d67 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x409669ef dma_buf_kmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40c81ad8 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40e17607 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x40e44b14 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x4113bc06 gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0x411d7e15 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x41426d58 device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x415f027f dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x41625a1c bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x417eaf82 rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x41ae53da spi_master_resume +EXPORT_SYMBOL_GPL vmlinux 0x41b302d9 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x41d81c5d of_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x41dfd127 cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0x41fafd39 md_stop +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x4240f27c ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x4244e055 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x42494315 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x425fd82f rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x426d7f5f single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42990387 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x42d228d7 ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x42d24af2 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x4306699f usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x430e5257 of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0x431e1907 of_property_read_string_helper +EXPORT_SYMBOL_GPL vmlinux 0x432a0c67 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0x4338878e fb_sys_read +EXPORT_SYMBOL_GPL vmlinux 0x433ba5a5 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x4347ddda gfn_to_pfn_async +EXPORT_SYMBOL_GPL vmlinux 0x436f9c7f bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x43854864 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x43886b38 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x439223a1 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x43969dbe rh_alloc_fixed +EXPORT_SYMBOL_GPL vmlinux 0x43a53735 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x43b466b0 gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL vmlinux 0x43c52918 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x43feae1f tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x4494e829 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x44e33562 ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x44f61ec6 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x44fc91d3 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x450fb522 kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x453e778e i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x454c15ae __smp_call_function_single +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x457b77ca of_fixed_factor_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45cbf777 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0x46044c76 pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x460f7531 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x461b4c3b pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x463e2020 sysfs_get_dirent_ns +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46758ba6 gfn_to_pfn_prot +EXPORT_SYMBOL_GPL vmlinux 0x467c5e24 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x468368e9 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x4688c96a usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x46b6577d ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x46cb6589 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x4702ec11 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x470fa426 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0x4712faa1 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x471a848f ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x472b3b0a fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x47444da2 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x475473c8 dma_buf_vmap +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x477a6ec6 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47b21077 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x47dc06b2 tcp_fetch_timewait_stamp +EXPORT_SYMBOL_GPL vmlinux 0x47df3774 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x47efa8a5 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x47f56d90 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x47fdcdf3 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x482244c8 usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x48253fbf spi_async +EXPORT_SYMBOL_GPL vmlinux 0x484df101 of_irq_parse_and_map_pci +EXPORT_SYMBOL_GPL vmlinux 0x485384e8 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL vmlinux 0x48bf6bca inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x48e41c94 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x48fb0be7 rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x48ff18ba regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x494a36bc arizona_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x4960bd21 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x496ddfd1 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x498d293a trace_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49a6708d usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x49c38e78 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x49cd0569 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x49e486e9 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x49f20340 irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x49f696f5 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x4a53fdcf uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4a7e29a5 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x4a90160e bprintf +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4acdc674 sec_reg_update +EXPORT_SYMBOL_GPL vmlinux 0x4affd08b put_compat_timespec +EXPORT_SYMBOL_GPL vmlinux 0x4b0403fc dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0x4b08e536 irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x4b1302d0 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x4b240052 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x4b56b050 __kvm_set_memory_region +EXPORT_SYMBOL_GPL vmlinux 0x4b658dd0 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x4b6df6c7 of_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x4b7a07fb pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x4b7d382d crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x4b98827c rh_init +EXPORT_SYMBOL_GPL vmlinux 0x4bb7674d usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x4bc3beb3 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bd94333 devres_release +EXPORT_SYMBOL_GPL vmlinux 0x4be33d9f blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x4bf2eae8 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x4bf86cfd ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x4bf9d057 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x4c122e7b pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0x4c2e1f24 clk_disable +EXPORT_SYMBOL_GPL vmlinux 0x4c5065b3 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x4c535c8b __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x4c602bf1 __blkg_release_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4c6da314 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x4c71de1a regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c97b945 iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0x4ca4c9df clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x4ccdece4 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4cde0efb ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x4ce40330 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x4cf2b4d1 generic_access_phys +EXPORT_SYMBOL_GPL vmlinux 0x4cffdd8a tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x4d0f5f8d dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x4d11d78f regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0x4d172ccb ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x4d1d221b debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x4d295204 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0x4d35b511 thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0x4d458495 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x4d523e38 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x4d5d78b6 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0x4dcd2a66 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x4dde7ae8 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4dead967 pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x4df72e62 rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e1b01d5 clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x4e1ee829 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x4e242f5f pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x4e2e812e powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0x4ec7b8e3 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x4ed5601e pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x4ed9a97d blk_queue_bypass_start +EXPORT_SYMBOL_GPL vmlinux 0x4ee53413 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x4ef00432 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0x4ef476d3 powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f020dee public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x4f1b8fad inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x4f2440b3 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x4f3007fa rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x4f33a02e drop_cop +EXPORT_SYMBOL_GPL vmlinux 0x4f61b318 ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0x4f627aee fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0x4fa9f27f posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x4fb2f64e irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x502a7b3d scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x50601122 of_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x506691f1 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x509a473a __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x50af91b6 rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0x50cc6151 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x512f0fe0 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5134c606 pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x517cb7bb sec_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x51846493 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x518b91a0 kvm_set_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x51b65a26 rtc_lock +EXPORT_SYMBOL_GPL vmlinux 0x51c5a46e usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x51cb25cc crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x51cbb1b4 pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x51d6cba2 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x51edf656 usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x51f1e202 device_reset +EXPORT_SYMBOL_GPL vmlinux 0x5205e64d disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL vmlinux 0x521503d2 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x522f538b tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x524ef6d5 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x52539107 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x5258e7f4 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x526828a4 sdhci_pci_o2_probe +EXPORT_SYMBOL_GPL vmlinux 0x52a34d7c crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x52b37b0c bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x52ddb06f ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0x52fe7ebc ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x531dc1c2 flush_fp_to_thread +EXPORT_SYMBOL_GPL vmlinux 0x5325cb25 ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0x5335dd11 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x5341c1ea ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x53449dc8 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53843d5e da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x538b85b3 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x53909a1b irq_create_strict_mappings +EXPORT_SYMBOL_GPL vmlinux 0x539f5f74 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x53a6f7a7 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x53e5e838 pcibios_finish_adding_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x54215db5 visitor64 +EXPORT_SYMBOL_GPL vmlinux 0x5425c2e1 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x544c8e63 regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x546131cf crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x546c5565 ppc_tb_freq +EXPORT_SYMBOL_GPL vmlinux 0x54740eb7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x548dab87 bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54a37f03 tcp_peer_is_proven +EXPORT_SYMBOL_GPL vmlinux 0x54d7fcc2 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x54e28449 rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x54f8685b srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x553754f7 mmput +EXPORT_SYMBOL_GPL vmlinux 0x553f8d26 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x55411c6d rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x55435e31 wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x555ae157 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x5572ab95 smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x55753c49 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x55930ab3 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x55b8d13f transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x55c21211 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x55d3848e device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x55e41f58 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x561e4b77 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x5620f2a8 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x562da7fe crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565a3f1d ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56752fbe perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0x5685e073 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x56886b19 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x568b5ad7 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5692386f gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x56a29fd8 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x56bb40fd key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x56bd6461 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x56d50e94 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x56d697ce cpu_up +EXPORT_SYMBOL_GPL vmlinux 0x56dc70c9 pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56ef2c25 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x56f417ff platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x571d2fba __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x57231f45 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x5723899b gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x574dbf64 dma_buf_detach +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x575cde32 kvm_irq_has_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5768c66b unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x57881379 irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57b24d6e mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x57c87cf4 irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x57dcb70a usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x58052508 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x583f15db dma_buf_put +EXPORT_SYMBOL_GPL vmlinux 0x58413099 ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x586d9137 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x5871a676 blk_queue_bypass_end +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x589e4569 syscon_regmap_lookup_by_pdevname +EXPORT_SYMBOL_GPL vmlinux 0x58ced43c led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x58d2d701 fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0x58ebb3df mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x590b11af bmp085_probe +EXPORT_SYMBOL_GPL vmlinux 0x590e8697 each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x5947abbe max77693_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x595f90c1 blkg_lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x59681fd3 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x59a6e91d clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x59b0003b __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x59b2adbf input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x59bf170b adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x59e2743e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x59e35fb7 kvm_clear_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x59e4c9c2 pcibios_add_pci_devices +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x5a245361 regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0x5a2d8e48 usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0x5a43979a serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0x5a4bc2a4 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x5a789b9c subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a8e9b28 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0x5a8f3b69 of_irq_parse_raw +EXPORT_SYMBOL_GPL vmlinux 0x5aea452f debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0x5b301b06 tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x5b38bb78 devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0x5b4e379c of_prop_next_u32 +EXPORT_SYMBOL_GPL vmlinux 0x5b963e0f crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x5b9845e8 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x5bb148fe usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x5c1de3c9 ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0x5c268f1c input_class +EXPORT_SYMBOL_GPL vmlinux 0x5c3c2938 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x5c4565ea extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x5c675991 irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0x5c85fbb5 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x5c92a478 of_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x5ca93699 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x5cabdced dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5cbe00b8 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x5cf0ff6c pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x5cf24e3e ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x5cf8a882 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x5d12e48f input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x5d4b7518 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x5d4c7d13 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x5d527b33 vtime_account_system +EXPORT_SYMBOL_GPL vmlinux 0x5d54947d regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x5d6519b2 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x5d77952d hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x5d7dfd45 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x5d873b39 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x5dbbb59a udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5dd84132 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x5de17826 vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x5de3f525 sk_unattached_filter_create +EXPORT_SYMBOL_GPL vmlinux 0x5e1c6310 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x5e324ad0 smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x5e51cd74 swiotlb_nr_tbl +EXPORT_SYMBOL_GPL vmlinux 0x5e76f3f6 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x5eb6cbd7 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x5ed9defa led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x5ee2ea68 mmc_send_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x5ee7542e reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x5ef5a8af find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x5f1415b9 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f29c7ff isa_bridge_pcidev +EXPORT_SYMBOL_GPL vmlinux 0x5f31f5af sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x5f419491 gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x5f5b430d tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x5f6844ff edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x5f79a98b __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x601cbdaf devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x60221416 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x60272723 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x60412f29 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x60467b06 btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x605ada32 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x607ab139 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0x6094685f wm8997_irq +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x60a62307 rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x60a7397c debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x60befc3d devm_regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x60d9b393 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0x60f6c5d3 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x61273be8 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x6131a364 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x6142ca29 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x61435e62 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x614686a7 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x6183ff15 sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x619afbed devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x61a90c54 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x61e30e1e class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x624fccea swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0x62512fd2 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x627ba8c4 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x6293bad3 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x62af0c26 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x62f8bba2 serial8250_rx_dma +EXPORT_SYMBOL_GPL vmlinux 0x6300e3e9 device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x6318757f mdio_mux_uninit +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x633b22fe flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x635949bc usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x6390efda of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x63917adb inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x63ae9639 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x63ecce85 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x63f225bb d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x63f565ea sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x640fce80 wm8400_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x6428da4f rh_attach_region +EXPORT_SYMBOL_GPL vmlinux 0x648323f0 pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0x64d03786 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x6504a293 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x653b4238 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x654b9e76 napi_by_id +EXPORT_SYMBOL_GPL vmlinux 0x65728084 kvm_init +EXPORT_SYMBOL_GPL vmlinux 0x65765f68 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x657a39e2 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x657aab35 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x659b33cb irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x65ba19ab sec_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d3a1f4 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x65e8a7aa pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x65f5faa0 fuse_get_req_for_background +EXPORT_SYMBOL_GPL vmlinux 0x660d27fa ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662a0c3f x509_get_sig_params +EXPORT_SYMBOL_GPL vmlinux 0x6631fc0c trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL vmlinux 0x66ace19c i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x66aee3ae kobj_completion_release +EXPORT_SYMBOL_GPL vmlinux 0x66afb53b unix_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x66b13503 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66eec479 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x66ff4911 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x6724690c dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x672bfe15 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x674e13e1 public_key_destroy +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67ef10d3 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x68444d0f pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0x687934e9 gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x687a3cd5 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x6885173e max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x68898c77 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x68a94a97 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x68a9c0a3 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68ade3c7 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x68c509b7 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x68de3c26 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x68f59568 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x69080bdc irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0x69110841 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x6913e19c sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x6918a883 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x6921aa34 compat_put_timeval +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x693d7ed4 digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x695d85a3 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x69659b5d kvm_get_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x697cbbb4 threads_per_core +EXPORT_SYMBOL_GPL vmlinux 0x6989c684 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x6993fbe2 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x69cb176f ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x69e2e8f4 pci_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69ea7a1b tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x69f0a0fe platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x6a332ec2 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a6cafd2 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x6a6d44e5 __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x6a73cc71 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x6a7a1d67 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6a8cb572 devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x6acb8d84 ppc64_caches +EXPORT_SYMBOL_GPL vmlinux 0x6acb9700 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x6ad614ea skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6b180d1b pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b48a910 switch_booke_debug_regs +EXPORT_SYMBOL_GPL vmlinux 0x6b81a0f9 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6b9e7ad7 of_clk_src_simple_get +EXPORT_SYMBOL_GPL vmlinux 0x6ba3dc7e inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x6bb8e8db ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x6bc51b41 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x6bef9a6e securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x6bff397a crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0x6c179bfd driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x6c17ebc6 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x6c186ded get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x6c1b09ab gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x6c40d547 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0x6c442ff3 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4a8ce3 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c59a2f2 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x6c6f9ea0 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x6c88b5c8 udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0x6c8c7c35 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cd21997 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x6cd4ea62 wm5110_irq +EXPORT_SYMBOL_GPL vmlinux 0x6cfdc9ef usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x6d2785b5 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d40f072 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x6d5bd691 regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x6d81ca85 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x6d895591 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6d9e5425 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x6da65cde fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6db17ce2 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x6db550b7 tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0x6df6a5b8 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x6df8f4cd pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x6e04a077 usb_bind_phy +EXPORT_SYMBOL_GPL vmlinux 0x6e23af61 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x6e2d7398 ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x6e379526 kernstart_addr +EXPORT_SYMBOL_GPL vmlinux 0x6e501bb5 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6e9c4286 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x6e9d3492 rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0x6eb2830e ata_sas_port_async_resume +EXPORT_SYMBOL_GPL vmlinux 0x6ebfa7b6 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x6ed86f28 ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0x6ed8a657 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x6efbc2e8 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x6f03914a sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x6f13c3d1 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f5aa61d tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0x6f80da11 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6f90b01d regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x6fafa430 xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0x6fc40d7b get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0x6fd0a741 rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6ffcae61 irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x7029f818 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x7036f273 sk_unattached_filter_destroy +EXPORT_SYMBOL_GPL vmlinux 0x70397b0a dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x70596017 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0x705a4d96 ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0x705fd4c7 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x706fe5e9 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70a37c9d wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70e0a1cc fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7127c227 sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0x712c6465 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x712e9612 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x714445f3 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x715d873b pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x71621fe0 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71663a3d regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x71930ed3 of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x72123492 uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0x722adc0b key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0x723374f8 pci_bus_sem +EXPORT_SYMBOL_GPL vmlinux 0x723d8e1d anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x726a2ce4 dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72cbdac4 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x72d5a69d regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0x72de8a7e uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x72e99cec ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0x730b4d19 user_match +EXPORT_SYMBOL_GPL vmlinux 0x7359905d crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x73672b70 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x7374e60a i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x738d8f16 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x7390c866 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73c2554f __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x73c832f2 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x7411dbe3 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x7422c95e gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x742812a6 ping_err +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x7464ea38 dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7465f7fa gpio_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x746e9af7 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x746f1e39 regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0x7470d4dc tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x749ecdb9 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74d4796b simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x74ec3b08 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x74ef120a __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x75010e49 ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0x750a428b sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x75133f6e visitor128 +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x75331d9f cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x7568d6e4 regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x757b49d2 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0x758a782e blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x75a5d0f9 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x75e017a3 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x75f2a044 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x7646f7e2 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x7670d5c0 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x768ffebe thermal_generate_netlink_event +EXPORT_SYMBOL_GPL vmlinux 0x76a7a9ee mpic_subsys +EXPORT_SYMBOL_GPL vmlinux 0x76b8c605 md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x76d07d6e gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x76d45777 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x76e4ef5d add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x76f02119 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0x7729cbdd task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x773e32be crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x77f088ba tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x782a616a add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x78330be8 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x787c882b lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x787e2858 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x78892ed4 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x789fac63 devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x78ad9d1d pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x78e3339d blkg_stat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x78e5d361 pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x7922b234 rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0x79285182 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x792cacd1 __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x795129ea debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x79613d3f wait_for_tpm_stat +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x7992827d blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x79a5c72a rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x79bf97a8 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x79c480da rh_dump +EXPORT_SYMBOL_GPL vmlinux 0x7a695505 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x7a7949a8 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x7a8a9408 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7ae7a8e6 wm8400_block_read +EXPORT_SYMBOL_GPL vmlinux 0x7af70c71 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b0f2127 find_linux_pte_or_hugepte +EXPORT_SYMBOL_GPL vmlinux 0x7b171b7b ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b292d19 static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0x7b3a3e28 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x7b4751f5 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x7b4abe4b regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7b848340 kvmppc_pr_ops +EXPORT_SYMBOL_GPL vmlinux 0x7bd46745 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x7be029e1 napi_hash_del +EXPORT_SYMBOL_GPL vmlinux 0x7bf24957 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0x7c219b36 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x7c227088 clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x7c346357 pkey_algo +EXPORT_SYMBOL_GPL vmlinux 0x7c4ac1d3 uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0x7c608170 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x7c617f3f ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0x7cc1b7fd max77693_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7cc7de1c x509_check_signature +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ce5b92a gpiod_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cf0dd07 pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x7d291e12 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x7d36e534 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7d397cc7 gpiod_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d4eff28 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d630393 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x7d6c8e6c tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x7d6d239b blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc94518 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x7e17ba7b klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x7e23f157 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x7e308e48 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7e3a6333 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x7e4c582a dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7e4db90f sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e9db635 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x7e9e2960 ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7e9f7be5 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7ea1a2bc probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x7ea5f3ff cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0x7eb2ba65 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x7ebab44f gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x7ef116cc ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x7f008202 btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7f28f94d powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0x7f2ab76a md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x7f2f0575 pcibios_map_io_space +EXPORT_SYMBOL_GPL vmlinux 0x7f32b1c3 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x7f37d9e3 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x7f3b4dcc mark_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x7f7bc710 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x7f88931c sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x7fa4b4a2 of_pci_parse_bus_range +EXPORT_SYMBOL_GPL vmlinux 0x7faca31e rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x7fcba3f0 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x7fd15303 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x7fd90161 of_get_regulator_init_data +EXPORT_SYMBOL_GPL vmlinux 0x7fe15553 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x800becc5 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x801305f2 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x801b50ec pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x802f8804 crypto_lookup_aead +EXPORT_SYMBOL_GPL vmlinux 0x8042a013 get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0x806249ea locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x8069f34d usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x807fada6 kvm_vcpu_uninit +EXPORT_SYMBOL_GPL vmlinux 0x808835e8 dbs_check_cpu +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80d3927f __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80d81382 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x8114b8d6 md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x8140842a gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x8158b2b7 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x8175df8f ata_sas_port_async_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8197ada5 rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0x81c291bf usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x81f45c82 of_usb_get_maximum_speed +EXPORT_SYMBOL_GPL vmlinux 0x8206bbb8 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x822ce0ca unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0x824e65a5 kvmppc_emulate_mmio +EXPORT_SYMBOL_GPL vmlinux 0x8267da40 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x8289aa3e blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x8296cc6c get_kernel_page +EXPORT_SYMBOL_GPL vmlinux 0x82a73b94 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82e3a65c regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x83162768 dma_buf_begin_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x8318eb66 clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x834616bb sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x835b2874 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x836d61d0 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x837313f6 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x83746da3 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x83a94742 crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0x83ba46a9 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x83eb9ba5 wm5102_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0x83fba393 sec_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x84014445 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x8420bccd cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x84393f16 crypto_lookup_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x844fa452 gfn_to_pfn +EXPORT_SYMBOL_GPL vmlinux 0x84547257 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x8487a2b6 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x84902e1f __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x84c2eba6 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x84ca03cf dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x84cff028 devm_usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x84d9decf kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x84f141de arizona_clk32k_enable +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x8508dccd device_move +EXPORT_SYMBOL_GPL vmlinux 0x8519c2d8 pci_intx_mask_supported +EXPORT_SYMBOL_GPL vmlinux 0x852e568d of_get_nand_ecc_mode +EXPORT_SYMBOL_GPL vmlinux 0x856486ba regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x85a6d1a1 regmap_field_write +EXPORT_SYMBOL_GPL vmlinux 0x85a9a0db fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x85b14d33 clk_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x85bc25f1 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85cd64dc inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x85df2234 regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x85e3a83a watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x85e90da2 regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0x860a9df5 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x86228d65 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x86461adc blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x8652e44a flush_altivec_to_thread +EXPORT_SYMBOL_GPL vmlinux 0x866b9687 wm8997_aod +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86926125 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0x8694482c list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0x86ba00b2 rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0x86cad863 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86f8dcae simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x8702e548 process_srcu +EXPORT_SYMBOL_GPL vmlinux 0x8703b901 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x871e6803 nf_queue_entry_release_refs +EXPORT_SYMBOL_GPL vmlinux 0x872fa34e extcon_set_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x8731b6b0 usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x8752a554 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x875dfc5d bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x8767c6b0 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x878afd4a sdhci_pci_o2_resume +EXPORT_SYMBOL_GPL vmlinux 0x878f7fa3 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x87ac2b15 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x87b6c11d rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x87bb4e32 of_usb_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x87bbe3fd __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x8804af3d usb_anchor_suspend_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x882695a9 kvm_read_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b5647c trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x8901ac99 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x890e536a da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89c1ae8c ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x89ff16d7 rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x8a08a378 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x8a092e72 kvm_put_kvm +EXPORT_SYMBOL_GPL vmlinux 0x8a118bfd mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x8a195ba9 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x8a2b14ba wm5110_aod +EXPORT_SYMBOL_GPL vmlinux 0x8a4d3849 sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0x8a992237 kvm_set_memory_region +EXPORT_SYMBOL_GPL vmlinux 0x8a9a7507 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x8aa0f478 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x8aa24d43 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0x8aab6b24 of_regulator_match +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ae152b5 of_get_nand_bus_width +EXPORT_SYMBOL_GPL vmlinux 0x8afa8964 thermal_notify_framework +EXPORT_SYMBOL_GPL vmlinux 0x8b179b73 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x8b260243 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x8b385c2c ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x8b5c37aa tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0x8b70e8ea __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x8b7e72c3 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x8b956d38 subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c129995 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x8c3963df devm_rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8c540bd6 of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x8c5bee48 devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8c65e522 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x8c9221c9 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x8ccd6119 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x8ccf6b55 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x8cdfa3b7 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x8cea765f memalloc_socks +EXPORT_SYMBOL_GPL vmlinux 0x8cecf7ec filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x8d1f4c03 extcon_register_interest +EXPORT_SYMBOL_GPL vmlinux 0x8d349dda gfn_to_hva +EXPORT_SYMBOL_GPL vmlinux 0x8d36c088 look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL vmlinux 0x8da2dd88 of_pci_find_msi_chip_by_node +EXPORT_SYMBOL_GPL vmlinux 0x8dbf5e79 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x8de9b753 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x8df0c70d arizona_dev_exit +EXPORT_SYMBOL_GPL vmlinux 0x8dfd5821 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL vmlinux 0x8e3fcf7b regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x8e72d25f tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0x8e8522f5 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x8e9c7933 gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x8ea29017 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x8ee50415 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x8eebb38e debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x8eef8119 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x8f064213 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x8f0f99ad device_rename +EXPORT_SYMBOL_GPL vmlinux 0x8f628436 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f8a365c ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x8f8e53b9 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8f902a2c gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x8faa9127 _submit_bh +EXPORT_SYMBOL_GPL vmlinux 0x8fb2e6e3 irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x8fd17b5a hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8feab6a3 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x8ff82ab0 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8ff9bdb7 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x8ffe3f66 __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x8fff6e83 tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x90228869 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x904b0fce list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x906ecbce mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x90705b7f syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x9077d5ea usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90aae7bb blkg_prfill_stat +EXPORT_SYMBOL_GPL vmlinux 0x90b18982 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x90c0b028 rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0x90ccefe0 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x90fdfd3b inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x91125467 regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x911415f5 irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x9116585f fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0x91286982 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x915329ec ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x916ff6d6 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0x9180a31a da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91a41df8 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x91dfa4a3 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x920cc389 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x92418c5e irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x92479829 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x92540bef cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x92583e2d da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x926558ba usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x92707d86 iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0x927b29b5 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x928826ad __class_create +EXPORT_SYMBOL_GPL vmlinux 0x9299e8d1 ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92db8f68 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x92dbc622 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0x92e32abc dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x92f586a2 of_get_named_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x92fb5834 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x930058fd tpm_release +EXPORT_SYMBOL_GPL vmlinux 0x930ed9b9 of_usb_get_dr_mode +EXPORT_SYMBOL_GPL vmlinux 0x930f27c9 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x931875e8 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x93272697 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x93341287 pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0x9358bb71 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x93851124 netlink_alloc_skb +EXPORT_SYMBOL_GPL vmlinux 0x93a8fdfc extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x93b3e059 tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x93bdf584 usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x93cc1802 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x93f372d4 regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0x940685ca kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x940fcb9b rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x943a14d8 __percpu_ida_init +EXPORT_SYMBOL_GPL vmlinux 0x94483b79 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x94490622 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9471e5c7 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x949f7342 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x94a291d6 cgroup_taskset_cur_css +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94d972b7 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x950660cb ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x95151293 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL vmlinux 0x9521dfdc usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x952c5476 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x9556a8cc spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x958989ec usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x959fe45c tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x95a1ec10 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x95baa562 skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x95cada3e sock_update_netprioidx +EXPORT_SYMBOL_GPL vmlinux 0x95dea030 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x962a9008 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x964a9302 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9680af94 arizona_set_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x9686b91e of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0x9687f3d8 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x96d0ee6d proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0x9730c462 gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9735f061 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x9745c52a of_fixed_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0x9755f7ba crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x977d2337 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x977da3ab irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x9802d234 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0x982cd486 __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x98312dc9 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x983c7494 rh_detach_region +EXPORT_SYMBOL_GPL vmlinux 0x984d2d49 cgroup_is_descendant +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9867a15c ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x987fc9ec ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0x988139b1 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x98a02a70 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x98cc053c regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0x98fa1e20 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x98fe2e0f sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x98ffc47b regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x990fe161 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x993e2443 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x993f2f0c inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x99517a91 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9977c2b2 rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x997b246e debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x997e821c spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0x99b9de23 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x99c5bc63 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x99d3ebc2 blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x99f3d1c7 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x99fe9f47 dev_hard_start_xmit +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a178e14 gfn_to_page +EXPORT_SYMBOL_GPL vmlinux 0x9a1c94ab set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x9a49d937 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x9a5f96bf cpu_remove_dev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x9a6d79b9 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x9a89dbf7 lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x9a916e71 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x9aa72873 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x9aad6540 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x9aad7b39 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x9ac2e8aa cpufreq_table_validate_and_show +EXPORT_SYMBOL_GPL vmlinux 0x9aca444b get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x9acc5876 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x9ae04ebd dma_buf_kunmap +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9afa159d __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x9b0e01e8 sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x9b1e523b attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9b29d106 __mmu_notifier_invalidate_range_start +EXPORT_SYMBOL_GPL vmlinux 0x9b392067 pwm_disable +EXPORT_SYMBOL_GPL vmlinux 0x9b520815 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x9b5d2b17 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x9b60a99e __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x9b898b39 usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x9ba2bb2b gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x9bc63a37 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x9bcd8a74 nfq_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9c02bf2f crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x9c2c017f pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x9c36440e regmap_fields_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x9cc8cfe4 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x9ce3124c tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x9d0d79eb pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x9d138533 percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x9d16a690 fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0x9d19a26f dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x9d1af041 pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x9d2fbfb9 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9d51eb24 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0x9d712750 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x9d7d628c fsl_rio_mcheck_exception +EXPORT_SYMBOL_GPL vmlinux 0x9db382ab tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x9db96de1 gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x9decac59 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x9df29e37 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x9e12622c fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0x9e1a2b7d ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0x9ea8c3bf unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0x9eb4a55a regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x9ed0997e subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9f0664bf dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x9f359fe9 dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0x9f3f98e1 of_get_nand_on_flash_bbt +EXPORT_SYMBOL_GPL vmlinux 0x9f5b1c68 kvmppc_sanity_check +EXPORT_SYMBOL_GPL vmlinux 0x9f65f92c platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9f6ad9f2 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9f7a4397 devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x9f9d20b0 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x9fb3a7d1 pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0x9fc36292 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x9febee4a kvmppc_handle_store +EXPORT_SYMBOL_GPL vmlinux 0x9fedb268 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x9ffd8e6e generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa0285571 ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0xa03e1153 dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0xa03f8e9b shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xa064380e __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xa084003e gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0xa0923790 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xa0a27fff pci_address_to_pio +EXPORT_SYMBOL_GPL vmlinux 0xa0b50a1c spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0xa0c3611a bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xa0c79968 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0xa0ff9a22 alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xa1224061 kvm_get_kvm +EXPORT_SYMBOL_GPL vmlinux 0xa12d929d desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0xa14b65be device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xa14d3751 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xa16c7cb6 pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0xa19b2408 of_scan_bus +EXPORT_SYMBOL_GPL vmlinux 0xa1a79580 blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0xa1b134ff transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa1b96683 rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0xa1bd0781 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xa211e88d ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xa216bb06 bmp085_detect +EXPORT_SYMBOL_GPL vmlinux 0xa223c1d5 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0xa23a9511 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xa23f978d devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa27c5c6e ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xa28aaf29 rh_create +EXPORT_SYMBOL_GPL vmlinux 0xa29e5e54 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xa2a07811 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xa2bb1f5d uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xa2e01b98 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xa2e9dd8c devres_find +EXPORT_SYMBOL_GPL vmlinux 0xa300b3d4 kvmppc_kvm_pv +EXPORT_SYMBOL_GPL vmlinux 0xa30fc088 tpm_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0xa32daebf dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xa33eba90 iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0xa348f268 cpu_add_dev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xa34be966 put_device +EXPORT_SYMBOL_GPL vmlinux 0xa36904eb fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0xa375599e ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa389a49a profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3a1e5f3 inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0xa3a2d9af walk_system_ram_range +EXPORT_SYMBOL_GPL vmlinux 0xa3b284fc usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0xa3e2fb12 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa3ef176c tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xa4370753 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xa4441beb __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0xa46e9ff2 usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xa4709ef9 system_trusted_keyring +EXPORT_SYMBOL_GPL vmlinux 0xa473ac13 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0xa47a616a ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xa47e1d10 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xa47f6b22 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4c6bcb8 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xa4ea04ee of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0xa566ae9b cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0xa56ca855 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xa5863d68 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xa5996024 tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5efe460 usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xa5f389eb of_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xa617dd83 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xa625110d kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0xa66ecd9d simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xa68c6ac0 rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xa6a0a273 max77693_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa6a27b91 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xa6b5dcf9 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xa6b92938 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0xa6ca7b84 devm_spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xa6d166ff rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xa6d2872d blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa724257f init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xa735872a adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa7501e07 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xa75312bc call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0xa75811d0 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xa78cae18 usb_bus_start_enum +EXPORT_SYMBOL_GPL vmlinux 0xa7931aaf da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa7970936 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0xa79810af regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0xa7a4705c hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xa7d89201 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xa7eb9b96 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa7f2f2a3 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa7fbbc77 usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0xa81f4d52 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xa825e023 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa867eaaf led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xa86c86fd sec_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xa8f8a5b4 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xa8ff5ad0 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xa909aad7 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0xa911d576 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xa925e478 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0xa93271a5 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0xa980af16 RSA_public_key_algorithm +EXPORT_SYMBOL_GPL vmlinux 0xa98a7a6d clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0xa9aef2e1 gfn_to_hva_memslot +EXPORT_SYMBOL_GPL vmlinux 0xa9b94483 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0xa9cd4f58 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xa9ce341e usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0xa9e18049 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9f33d06 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0xa9fb74a2 of_device_is_stdout_path +EXPORT_SYMBOL_GPL vmlinux 0xaa04eff3 extcon_update_state +EXPORT_SYMBOL_GPL vmlinux 0xaa10bc57 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xaa17a2e2 rh_alloc_align +EXPORT_SYMBOL_GPL vmlinux 0xaa2dfdfb ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xaa5faef5 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0xaa636f38 blkg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xaa647e82 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xaa678aa4 __netpoll_free_async +EXPORT_SYMBOL_GPL vmlinux 0xaaa46049 pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaab04e6b class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xaab9d65c debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xaabfd8cc crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0xab0b27e1 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xab50ea2b pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xab59d373 kvmppc_free_lpid +EXPORT_SYMBOL_GPL vmlinux 0xab5f30c4 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xac0c2437 clk_register_divider +EXPORT_SYMBOL_GPL vmlinux 0xac419e65 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0xac8b0125 edac_subsys +EXPORT_SYMBOL_GPL vmlinux 0xaccc529d dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xacd686a7 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0xacdb3017 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacfe997e powerpc_firmware_features +EXPORT_SYMBOL_GPL vmlinux 0xad039c54 mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xad0a5514 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0xad376749 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0xad49ab8f clk_register_mux +EXPORT_SYMBOL_GPL vmlinux 0xad52d971 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xad6b6a13 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0xad76f69c tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xad7d280c regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xad81d012 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xadb74e84 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadc81505 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xadcb8b31 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xadcef453 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xadd0b0d2 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xadf3b188 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae2554c4 of_clk_src_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae6c7784 kvm_flush_remote_tlbs +EXPORT_SYMBOL_GPL vmlinux 0xae6f8040 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae844804 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xae8b63cc usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0xaea12266 dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xaea6aafa __clk_register +EXPORT_SYMBOL_GPL vmlinux 0xaef19a61 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xaefbdb7a pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xaf0b00a6 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0xaf110cde usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xaf4ba627 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xaf4faa2a dma_buf_mmap +EXPORT_SYMBOL_GPL vmlinux 0xaf75e84e kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xaf82383a driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xaf907626 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0xafa5bbe6 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xafadb76f usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xafb0defd ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xafc526d8 devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xaff14c3a crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xb0447616 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb08a2fad thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0xb0b82ca8 rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0c25777 ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0xb0d1656c gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0xb10c2c58 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb1145db4 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb1430587 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xb15ae0c6 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0xb16d2db9 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xb17aa997 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xb17eb35e of_pci_msi_chip_add +EXPORT_SYMBOL_GPL vmlinux 0xb1977cdb tps80031_ext_power_req_config +EXPORT_SYMBOL_GPL vmlinux 0xb19de897 device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0xb1a7e3f6 clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1ba3bdc sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0xb1c0c1c2 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xb1c88caf fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb1fd9e20 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0xb20a2de6 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb232d29d adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xb24075f8 dev_get_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0xb2748101 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xb2834324 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0xb293c758 list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0xb2bd03f4 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xb347bb2c work_busy +EXPORT_SYMBOL_GPL vmlinux 0xb35cb2d6 dma_buf_export_named +EXPORT_SYMBOL_GPL vmlinux 0xb383c4e3 clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0xb3900d02 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xb39a561f perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0xb3c82b3a dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xb3c8ae4f kobj_completion_init +EXPORT_SYMBOL_GPL vmlinux 0xb4011bf0 user_read +EXPORT_SYMBOL_GPL vmlinux 0xb40b2560 device_create +EXPORT_SYMBOL_GPL vmlinux 0xb42413ff kvmppc_hv_ops +EXPORT_SYMBOL_GPL vmlinux 0xb472ea62 ping_proc_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb49acd7e ping_seq_fops +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb51e58d8 usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb54660b5 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xb58c488c usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5a0e11e lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0xb5a89d74 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xb5aa10af atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb5b61c62 of_reset_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0xb5c086ae regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xb5c34686 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xb5c8edf4 btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0xb5cb8145 hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xb5d5b06f tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xb5efd19e sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb5f2fc99 scom_find_parent +EXPORT_SYMBOL_GPL vmlinux 0xb607893b blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0xb60a3408 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb60b5707 of_i8042_aux_irq +EXPORT_SYMBOL_GPL vmlinux 0xb6135dd8 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb63bdb11 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xb643c250 xics_wake_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb6443890 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xb64a900f md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0xb67b0a48 nl_table +EXPORT_SYMBOL_GPL vmlinux 0xb67b2219 cm_suspend_again +EXPORT_SYMBOL_GPL vmlinux 0xb68faa30 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6c635af wm5110_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb6c8c485 uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0xb70101a5 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xb72283a2 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xb746fea7 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb7594112 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xb77ead86 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xb7806b1f rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xb786e77d percpu_ida_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb7a3d01d regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb7a85a5d pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xb7eea0ab inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb81dc8b5 irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0xb81faee1 register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xb83e68ac adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb85adebf ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xb869bc1f inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xb8a6a924 pci_reset_bridge_secondary_bus +EXPORT_SYMBOL_GPL vmlinux 0xb8c7039b ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xb8e67988 ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb8fff9a2 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb9462ffc ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0xb94bd06c pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0xb9728dba unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xb9985dbf __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9c4db71 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xba0fef3e rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xba16da28 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xba26da08 clk_register +EXPORT_SYMBOL_GPL vmlinux 0xba5b42df user_describe +EXPORT_SYMBOL_GPL vmlinux 0xba666241 usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xba6dced8 get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0xba8b0acf crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xba9abde0 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xba9c6615 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xbaafae3a debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xbad21e3f debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xbaf0e78a dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb0b2f54 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xbb0c0d49 alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0xbb1aab31 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xbb2fd537 regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0xbb4ee26f dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0xbb885753 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0xbbbc1e49 device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xbc1c327c thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbc29d793 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xbc2e31a0 da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0xbc428d7e tpm_read +EXPORT_SYMBOL_GPL vmlinux 0xbc684ee7 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xbc6d7529 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xbca5ba06 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xbca9c0d2 spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0xbcac6160 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbcafaf0c flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xbcdf24d7 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xbd1339d6 spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0xbd148295 balloon_mapping_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbd2056b7 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xbd5cb8b9 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbdaf5686 get_compat_timeval +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd449e7 regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe232fcb ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xbe66b28a power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe7806e9 ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0xbe96dfd8 of_reconfig_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbea3b445 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xbea5ff1e static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0xbebaa0a6 of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xbebb5c8a do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf0555b3 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xbf099f11 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf1eff3f sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xbf27cc68 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xbf54e185 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xbfa6b7a8 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xc01150e2 cgroup_taskset_first +EXPORT_SYMBOL_GPL vmlinux 0xc0279434 extcon_unregister_interest +EXPORT_SYMBOL_GPL vmlinux 0xc02b8ccd bio_trim +EXPORT_SYMBOL_GPL vmlinux 0xc02bec3c usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc05a25b4 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc061367e mpic_msgr_get +EXPORT_SYMBOL_GPL vmlinux 0xc065a455 cpu_core_index_of_thread +EXPORT_SYMBOL_GPL vmlinux 0xc07b9b8f fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0xc07f80d6 list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0xc085db81 device_register +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc092789a disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc0b8b660 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0d01bc0 percpu_ref_cancel_init +EXPORT_SYMBOL_GPL vmlinux 0xc0d26387 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc0d35ae9 wm5102_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xc0e88747 regmap_update_bits_check +EXPORT_SYMBOL_GPL vmlinux 0xc0fdaa9b regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xc1027109 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xc1060cdb tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0xc10c7192 cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0xc11b45c6 gpiod_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc1647dcc hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc17720a7 ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0xc1b9e72d irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0xc1dc4edf sdhci_pci_o2_probe_slot +EXPORT_SYMBOL_GPL vmlinux 0xc1f30cf5 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xc20c298a __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc226878a kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc27d3f07 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc295ff06 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xc2ab893a ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xc2b8388f regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xc2c25342 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc30547ce tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0xc315dd5b nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xc316061f user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xc3354ccb crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc34e2f23 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc354edac serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc39dcb64 dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0xc3a71617 blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc3b36f80 devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xc3c6c9cc hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xc3d56db0 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xc3ed58aa platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xc4033520 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xc407a1d4 gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc42defa7 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xc454fc7b twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc471c67a twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc47c84e4 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xc489920b rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc492b970 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0xc4a16a61 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xc4ae15d7 regmap_update_bits_check_async +EXPORT_SYMBOL_GPL vmlinux 0xc4b6b31b tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0xc4d5ec87 sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0xc4dd0f25 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0xc4f248c8 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xc5055107 ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xc50f69e9 extcon_set_cable_state +EXPORT_SYMBOL_GPL vmlinux 0xc521c09d realmode_pfn_to_page +EXPORT_SYMBOL_GPL vmlinux 0xc5312fa1 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc5dfd99b bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0xc60cc06c tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0xc60d86cc crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc62314de usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xc623585e tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xc63a1109 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xc6407778 cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc6721311 regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0xc673f96a skb_gso_transport_seglen +EXPORT_SYMBOL_GPL vmlinux 0xc676aca8 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xc685cab8 __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xc68aa252 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xc690866c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xc696d2e0 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6bfba7b usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc6e25e99 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xc6ebb685 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xc70e4b59 kvmppc_claim_lpid +EXPORT_SYMBOL_GPL vmlinux 0xc7112564 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xc716fcef file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xc71b4ce7 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc72efa7d clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0xc730eb92 subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0xc73e702f rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xc75f2a3e devm_pwm_put +EXPORT_SYMBOL_GPL vmlinux 0xc761ba55 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7c6391c mpi_set_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc7e39bca ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc7e767a7 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0xc7ff5062 alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0xc832e4cb ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc885679c pwm_put +EXPORT_SYMBOL_GPL vmlinux 0xc88f61de kvm_vcpu_block +EXPORT_SYMBOL_GPL vmlinux 0xc89c02db i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8b20f6b usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xc8fce426 pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0xc903843e debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xc9079e47 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9163e8a percpu_ida_for_each_free +EXPORT_SYMBOL_GPL vmlinux 0xc9499054 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xc94bc2ba spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9641b48 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0xc97d1140 cpufreq_cooling_get_level +EXPORT_SYMBOL_GPL vmlinux 0xc9a61e16 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xc9cfa97f of_pci_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0xc9e19953 kvm_read_guest_cached +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9f0386f crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0xc9ff3ca2 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xca423be7 devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xca731266 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca946187 of_clk_add_provider +EXPORT_SYMBOL_GPL vmlinux 0xca99791a apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcac4bec1 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xcad4e965 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xcad53b55 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xcad6380a ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xcb15eee9 sdhci_pci_get_data +EXPORT_SYMBOL_GPL vmlinux 0xcb1f08cd tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xcb469d2b ddebug_add_module +EXPORT_SYMBOL_GPL vmlinux 0xcb6770f5 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xcb6b25a1 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xcb78f93a elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcb83ec8d pwm_can_sleep +EXPORT_SYMBOL_GPL vmlinux 0xcb862cf3 pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0xcb912bf7 ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0xcb956243 arizona_free_irq +EXPORT_SYMBOL_GPL vmlinux 0xcb9b162e clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0xcbbb53bb dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xcbc6bbad rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xcbcc9aca crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbef8a5f regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0xcc13f069 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xcc14d43e usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc44961f kvmppc_alloc_lpid +EXPORT_SYMBOL_GPL vmlinux 0xcc583ffa bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcc6d8f9f single_open_net +EXPORT_SYMBOL_GPL vmlinux 0xcc6eedd7 regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0xcc85fcb6 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0xcc8c4990 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xccbbf9ca skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0xccbe191d watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccdea98e ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0xcd416fd4 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0xcd477f63 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0xcd715ccd ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcde932c7 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xce02245e cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0xce0b9b59 max77693_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xce1d59c9 kvm_vcpu_kick +EXPORT_SYMBOL_GPL vmlinux 0xce36d14e ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0xce46e140 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xce67dc3b ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0xce743e33 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xce9325dc need_load_eval +EXPORT_SYMBOL_GPL vmlinux 0xce993ade ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xce9bc267 user_update +EXPORT_SYMBOL_GPL vmlinux 0xceaa0d26 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xceb03034 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xceb1f126 mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0xcec6736b devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xcecdd75b stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xced20eae xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xcf235a3d device_show_int +EXPORT_SYMBOL_GPL vmlinux 0xcf46cd75 tpm_write +EXPORT_SYMBOL_GPL vmlinux 0xcf54ea93 async_unregister_domain +EXPORT_SYMBOL_GPL vmlinux 0xcf68a5ec clockevents_unbind +EXPORT_SYMBOL_GPL vmlinux 0xcf73a34d cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xcf8f8fef usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xcf988499 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xcfa39eca __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcfaa5855 regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0xcfb061ad inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcff71340 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd04f2931 ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd079cbe8 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd1089f90 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd115e7bf pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0xd14bc4d9 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1b64852 cpu_add_dev_attr +EXPORT_SYMBOL_GPL vmlinux 0xd1b810d2 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xd1bf98de da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0xd1fdeb3e regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xd202c4d5 mdio_mux_init +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd2276da3 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd233dd25 fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0xd258217d clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0xd265fc6a list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0xd2698e84 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xd26ba550 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2bae0ea blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xd2c45ea4 of_pci_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0xd2cd19d5 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xd2da5c1e sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xd302470e usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd34075e6 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xd3424da6 ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xd34c3403 rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xd3889c81 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xd39db127 sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0xd3b6dbae max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0xd3ccab11 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xd3ccd9c6 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xd3e71d58 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0xd3e7f913 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd41cfe08 arizona_clk32k_disable +EXPORT_SYMBOL_GPL vmlinux 0xd426ef0e alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xd432deee crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd4776ce6 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xd477964b lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0xd47fe08f ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xd4a96868 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0xd4b63c7a regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4cad45e clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xd5266ca7 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xd54a02aa irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0xd582227a leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xd59a471b PageHuge +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd61d6a3f scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0xd63c37a4 led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0xd65153df thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd652c38f gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd6b90de5 ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0xd6bf334c net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0xd6c31411 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xd6dde7f7 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xd6e02c43 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0xd6ead1fd led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xd6fa2870 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd72ac05a bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0xd74783fc zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xd751f35c devm_regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd775cc51 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd79cfdac crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0xd7a095aa pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xd7c549fc irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xd7cb7670 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0xd7da69cd ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xd7f3ec25 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xd80c2071 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xd81cd80a default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd828a786 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0xd8397ca1 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd87fc0a0 usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0xd8a8fecb pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0xd8bd52a2 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xd8dbc805 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xd90858f3 devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0xd92ad16c i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xd942d353 ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0xd958e498 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xd95afaa6 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xd9a34035 __clk_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xd9b99e19 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xd9cde59d unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xda0280a5 thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0xda097122 __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0xda0a4d22 mpic_msgr_enable +EXPORT_SYMBOL_GPL vmlinux 0xda37af52 pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0xda3b8c17 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0xda44cb37 setup_charger_manager +EXPORT_SYMBOL_GPL vmlinux 0xda8cb2e5 threads_core_mask +EXPORT_SYMBOL_GPL vmlinux 0xdac519a5 da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0xdae59e03 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xdaf48783 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdaff6302 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xdb00775f dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb246390 arizona_dev_init +EXPORT_SYMBOL_GPL vmlinux 0xdb713153 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xdb7ab8ad rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdba80fc1 of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0xdbd76688 arizona_of_get_type +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc1e15f1 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xdc34c559 gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL vmlinux 0xdc5eaca2 sdhci_pci_o2_fujin2_pci_init +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc86c84f device_add +EXPORT_SYMBOL_GPL vmlinux 0xdc96e0a9 fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdcbb4b44 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0xdd1958a6 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd391eff profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd3d2f7b regmap_update_bits_async +EXPORT_SYMBOL_GPL vmlinux 0xdd5c111b invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xdd68c14c regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0xdd729424 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0xddb8415a pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xddd366d1 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xddd369d0 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xde0faf35 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xde18eb62 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xde438ae6 extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0xde67c192 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0xde6c8f2c __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xde87f2c2 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xdedb4757 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf2a2eba ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xdf349047 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdf44c1e8 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdf44ed7c gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xdfa93cef scom_controller +EXPORT_SYMBOL_GPL vmlinux 0xdfad86dd spi_master_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdfc17ee9 sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xdfd0c0b5 ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0xdfe37ac4 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xdff2c301 ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0xe0018a24 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0xe001b9de fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xe0040e64 kvm_write_guest_page +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe036b3e9 mpic_msgr_put +EXPORT_SYMBOL_GPL vmlinux 0xe03a0435 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe074373a use_mm +EXPORT_SYMBOL_GPL vmlinux 0xe07c0ca0 regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0xe084f1ca locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe1398eba regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0xe13f5bfe md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0xe159a62e dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xe16fb58e perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xe1739363 pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0xe1775ee7 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0xe180c960 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xe19eb1c4 percpu_ida_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe1bd6c99 rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0xe1c32794 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0xe1eae948 inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xe1eb028a clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0xe1f7a25e lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xe202fdbd relay_open +EXPORT_SYMBOL_GPL vmlinux 0xe20a861b cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xe2393a0c napi_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xe23fb38f devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xe26b73d6 devm_regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xe2ab0e88 perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0xe2b35b59 lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0xe2c37cdb ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xe2fe85b6 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xe301a781 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe314e976 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xe35cc44a pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xe3659d0d aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xe379cfaf ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe388922b blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xe3b9fe41 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xe3bd23e0 css_rightmost_descendant +EXPORT_SYMBOL_GPL vmlinux 0xe3d7750e btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0xe3eb18e4 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xe3f30bcd power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xe447d8fa regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xe4538db6 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xe468cfdd usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xe4979057 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xe4c031f8 btree_merge +EXPORT_SYMBOL_GPL vmlinux 0xe4c4b28f gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xe4d5da33 irq_create_direct_mapping +EXPORT_SYMBOL_GPL vmlinux 0xe51c040f register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xe52ae762 __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0xe531ca72 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0xe54c3af1 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xe5540302 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xe56b70ea pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0xe5730f79 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0xe5877845 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe59ad8bc simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xe59b23f4 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xe5b68a5c alarm_init +EXPORT_SYMBOL_GPL vmlinux 0xe61d5593 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0xe6370784 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe66f48e6 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xe6991b55 devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xe6bcf5e1 rio_unlock_device +EXPORT_SYMBOL_GPL vmlinux 0xe6c68334 ddebug_remove_module +EXPORT_SYMBOL_GPL vmlinux 0xe6ce071d usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe7101d6b devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0xe7112e53 alarm_start +EXPORT_SYMBOL_GPL vmlinux 0xe7231f86 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xe73ba4d6 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xe7691a12 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe784473c regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0xe7aa2332 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xe7ceb044 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe8067e0a debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe85a1f69 cm_notify_event +EXPORT_SYMBOL_GPL vmlinux 0xe85c55e7 btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe862a0b2 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0xe87e77b0 pwm_enable +EXPORT_SYMBOL_GPL vmlinux 0xe89bd243 ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xe8acf97f tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xe8b6ddde key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0xe8dc51fe cgroup_add_cftypes +EXPORT_SYMBOL_GPL vmlinux 0xe8fa63aa wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe901ff21 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xe9157734 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xe921ea68 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0xe92848a7 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe94da440 sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xe9525de3 blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0xe952dff8 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xe978c27e regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xe97c59e8 devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xe97dc564 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0xe988fc20 devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xe9b6a8e7 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe9bb5dbd inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xe9bf141f sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea39cf68 __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0xea3a4cd1 ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea5cce2e device_store_int +EXPORT_SYMBOL_GPL vmlinux 0xea628c20 bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0xea985f8d ping_proc_register +EXPORT_SYMBOL_GPL vmlinux 0xeaa78755 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xeae72f76 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xeaeb67ef ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xeb02efbf css_next_child +EXPORT_SYMBOL_GPL vmlinux 0xeb1c3628 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xeb48200a cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0xeb7f770c md_run +EXPORT_SYMBOL_GPL vmlinux 0xeb8ae736 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xeb8cf10e regmap_fields_write +EXPORT_SYMBOL_GPL vmlinux 0xebb27e4d cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xebd94cd2 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xebe38dbf irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0xebec57c4 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xebf878cc posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0xec1a3af0 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec2b1f5c inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xec402e83 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xec458e01 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0xec557cf5 put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xec6bb24f class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xec9c231d __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xecb07730 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xeccce78a crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xecd97532 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xecec5e2a pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0xed2a2a55 device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0xed3b1f5f reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xed8ab08f bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0xedc86ddf subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xedd49930 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xedf1dc8b usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xee0fcf90 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xee1555a3 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0xee1f5bca blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xee2fcd66 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0xee528659 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xee6b71c4 syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0xee707167 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xee7a0c44 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xee7b1929 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xee8da4ca kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xee902e96 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xee9433d1 usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xee946e52 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xef19f241 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xef31852f __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xef3d6d85 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef8f6a49 pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xefc6be8b regmap_write +EXPORT_SYMBOL_GPL vmlinux 0xefd1fe9a rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xefea0863 of_extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0xeff8400b __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xeffa6b8f __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xf0072939 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xf00bda20 dma_buf_vunmap +EXPORT_SYMBOL_GPL vmlinux 0xf00f1a95 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xf0460947 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xf0810d14 thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0xf0bdce92 subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0xf0c88f15 get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0xf0d6f37c map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xf0d8ea7b device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xf0ecca0a __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xf0f5dbc2 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xf158f170 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xf16b3e9b i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1965e13 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xf1a1abe4 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xf1a62b6f of_i8042_kbd_irq +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1cc2f17 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xf1ea3271 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0xf2133408 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xf21c3b11 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf221a89d led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0xf2267c44 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xf22dc9ae da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0xf235a320 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xf254ea97 devres_add +EXPORT_SYMBOL_GPL vmlinux 0xf27977e2 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xf2798496 debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0xf2a267ad ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xf2a39a96 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0xf2ad9da1 regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xf2c0d10c vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xf2d3f046 of_irq_parse_pci +EXPORT_SYMBOL_GPL vmlinux 0xf2ea8304 thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0xf2f077cc pkey_id_type_name +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf3012f6c rh_free +EXPORT_SYMBOL_GPL vmlinux 0xf3064aa4 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf3291424 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0xf363b6c0 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xf384c1a0 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xf387ab55 crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3d9c48d ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xf3e35f12 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xf3e434f3 proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0xf412c0e9 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xf41d23e4 tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xf420eabc dma_buf_kunmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xf453e9fb crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xf458dcee crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xf4664d0a exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0xf48153a7 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4da3546 kvmppc_init_lpid +EXPORT_SYMBOL_GPL vmlinux 0xf4de518c crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xf4f772d2 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf52fd7b4 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf54dfa41 cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5547ccf crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xf56d4912 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0xf581e7f3 dma_buf_get +EXPORT_SYMBOL_GPL vmlinux 0xf59f254c ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5a7fa3d max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xf5bcf1b2 __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0xf5e4ec7b __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0xf5e7f053 rh_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf5f009c2 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xf5f9b7a0 thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf5fef4e3 wm5110_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf634f86c pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xf666bad7 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xf68f1afd rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xf6b7d6f4 rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0xf6d2f1ca __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6f66545 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xf71b1380 of_get_dma_window +EXPORT_SYMBOL_GPL vmlinux 0xf7237c14 scom_map_device +EXPORT_SYMBOL_GPL vmlinux 0xf72f8bfc tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xf7520489 bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0xf75b36ce regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0xf7645dd2 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xf7d6e069 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xf7f63d62 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0xf807438e fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf816c866 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0xf821de7f __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0xf822d3f8 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xf82c760a usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf837e0eb unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8855774 ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0xf8a05235 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf8c46446 kvmppc_emulate_instruction +EXPORT_SYMBOL_GPL vmlinux 0xf8d45bd7 da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0xf8d7574c css_next_descendant_post +EXPORT_SYMBOL_GPL vmlinux 0xf8e398fc memstart_addr +EXPORT_SYMBOL_GPL vmlinux 0xf8f3464c usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8fe3d0b kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0xf9119969 netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0xf9154bff inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf932015f __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf944bdea pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0xf94963da usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0xf9777788 extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf9933c03 reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xf9a00e47 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9a6fcd1 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d2611b alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf9d3f07d rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xf9ededff task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xf9ee0d36 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa240945 regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xfa79b80f ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xfa7e0818 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xfa901b31 compat_get_timespec +EXPORT_SYMBOL_GPL vmlinux 0xfa9bf01a disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xfaa67e5f led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xfab10017 arizona_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xfab60503 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xfb1d50b0 tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0xfb1faad9 ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0xfb22bc6c cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xfb25f3da __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xfb26e658 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xfb2b5cda crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xfb2f7960 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb4fa8ac clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0xfb52b77d __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0xfb64cd7d irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfba7a1d5 find_module +EXPORT_SYMBOL_GPL vmlinux 0xfbb2c6b9 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfbbedefd of_prop_next_string +EXPORT_SYMBOL_GPL vmlinux 0xfc035666 regmap_field_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc0ead43 pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0xfc201b66 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0xfc24ccc8 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xfc4ed8bd pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0xfc5507bd irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0xfc59cf53 rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0xfc72d987 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfd0ce84d crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xfd1247aa shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0xfd24a70a rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xfd30967f fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xfd8596dd tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0xfdda84d4 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xfddb5061 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xfdfab481 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xfe1fa0db of_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0xfe40df92 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xfe4815bf pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0xfe5b8555 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xfe5c8ba5 pci_restore_ats_state +EXPORT_SYMBOL_GPL vmlinux 0xfe6d3c94 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfea3c0e2 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xfec896c3 kvm_write_guest_cached +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff194f65 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xff2c3491 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0xff44524a dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xff4f3855 usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff8862d7 rh_get_stats +EXPORT_SYMBOL_GPL vmlinux 0xffb72056 cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0xffcd98aa of_pwm_xlate_with_flags --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/powerpc/powerpc64-emb.compiler +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/powerpc/powerpc64-emb.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2 --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/powerpc/powerpc64-emb.modules +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/powerpc/powerpc64-emb.modules @@ -0,0 +1,3638 @@ +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250_dw +8250_pci +8255 +8255_pci +8390 +88pm800 +88pm805 +88pm80x +88pm80x_onkey +88pm860x_battery +88pm860x_bl +88pm860x_charger +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +ac97_bus +acard-ahci +acecad +acenic +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5380 +ad5398 +ad5421 +ad5446 +ad5449 +ad5504 +ad5624r_spi +ad5686 +ad5755 +ad5764 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7266 +ad7280a +ad7291 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7791 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad7923 +ad799x +ad8366 +ad9523 +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2032 +addi_apci_2200 +addi_apci_3501 +addi_apci_3xxx +addi_watchdog +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adf4350 +adfs +adi +adis16060 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1275 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +ads1015 +ads7828 +ads7846 +ads7871 +ad_sigma_delta +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adv7180 +adv_pci1710 +adv_pci1723 +adv_pci1724 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +af_802154 +af9013 +af9033 +af_alg +affs +af_key +af_packet_diag +af-rxrpc +ah4 +ah6 +aha152x_cs +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +ak8975 +algif_hash +algif_skcipher +ali-ircc +alim7101_wdt +alphatrack +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +alx +amc6821 +amd5536udc +amd8111e +amplc_dio200_common +amplc_dio200_pci +amplc_pc236 +amplc_pci224 +amplc_pci230 +amplc_pci263 +ams369fg06 +analog +anatop-regulator +ansi_cprng +anubis +aoe +apbps2 +apds9300 +apds9802als +apds990x +appledisplay +appletalk +appletouch +applicom +ar5523 +ar7part +arc4 +arc_emac +arcmsr +arcnet +arc_ps2 +arc-rawmode +arc-rimi +arc_uart +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as3711_bl +as3711-regulator +as3722-regulator +as5011 +asc7621 +asix +ast +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at86rf230 +at91_ether +ata_piix +atbm8830 +aten +ath +ath10k_core +ath10k_pci +ath3k +ath5k +ath6kl_core +ath6kl_sdio +ath6kl_usb +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atm +atmel +atmel_cs +atmel_mxt_ts +atmel_pci +atmel_pwm +atmel-pwm-bl +atmel-rng +atmel-ssc +atmtcp +atp870u +atxp1 +atyfb +au0828 +au8522_common +au8522_decoder +au8522_dig +aufs +auo_k1900fb +auo_k1901fb +auo_k190x +auo-pixcir-ts +authenc +authencesn +auth_rpcgss +autofs4 +avma1_cs +avm_cs +avmfritz +ax25 +ax88179_178a +axnet_cs +b1 +b1dma +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcma-hcd +bcm_wimax +bd6107 +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluecard_cs +bluetooth +bma150 +bma180 +bman_debugfs_interface +bmp085-i2c +bmp085-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +booke_wdt +bpa10x +bpck +bpctl_mod +bpqether +bq2415x_charger +bq24190_charger +bq24735-charger +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt878 +btcoexist +btcx-risc +btmrvl +btmrvl_sdio +btmtk_usb +btrfs +btsdio +bttv +btuart_cs +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +bw-qcam +bypass +c4 +c67x00 +caam +caamalg +caamhash +caam_jr +caamrng +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +caif_usb +caif_virtio +camellia_generic +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5_generic +cast6_generic +cast_common +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcimdas +cb_pcimdda +cc770 +cc770_isa +cc770_platform +c_can +c_can_pci +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +cedusb +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +cifs +ci_hdrc +ci_hdrc_imx +ci_hdrc_msm +ci_hdrc_pci +cirrus +cirrusfb +clearpad_tm1217 +clip +clk-max77686 +clk-s2mps11 +clk-si5351 +clk-twl6040 +clk-wm831x +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm36651 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmac +cmdlinepart +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +configfs +contec_pci_dio +cordic +core +cp210x +cpc925_edac +cpia2 +c-qcam +cramfs +crc32 +crc7 +crc8 +crc-ccitt +crc-itu-t +cros_ec +cros_ec_i2c +cros_ec_keyb +cros_ec_spi +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +csiostor +ctr +cts +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24117 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyapa +cyber2000fb +cyberjack +cyclades +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da9030_battery +da9034-ts +da903x +da903x_bl +da9052-battery +da9052_bl +da9052-hwmon +da9052_onkey +da9052-regulator +da9052_tsi +da9052_wdt +da9055-hwmon +da9055_onkey +da9055-regulator +da9055_wdt +da9063-regulator +da9210-regulator +DAC960 +daqboard2000 +das08 +das08_cs +das08_pci +db9 +dc395x +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +ddbridge +de2104x +de4x5 +decnet +deflate +defxx +denali +denali_dt +denali_pci +des_generic +designware_i2s +dgap +dgnc +dgrp +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bio-prison +dm-bufio +dm-cache +dm-cache-cleaner +dm-cache-mq +dm-crypt +dm-delay +dmfe +dm-flakey +dm-log +dm-log-userspace +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-switch +dm-thin-pool +dm-verity +dmx3191d +dm-zero +dnet +dn_rtmsg +docg3 +docg4 +dpa_uio +drbd +drm +drm_kms_helper +drm_usb +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2781_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt3000 +dt3155v4l +dt9812 +dtl1_cs +dummy +dummy-irq +dvb-as102 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-af9035 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6007 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-rtl28xxu +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb_usb_v2 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc2 +dwc2_pci +dwc2_platform +dwc3 +dwc3-pci +dw_dmac +dw_dmac_core +dw_dmac_pci +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e4000 +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_vlan +ec100 +echo +edac_core +edt-ft5x06 +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efs +egalax_ts +ehset +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +em28xx-rc +emc1403 +emc2103 +emc6w201 +em_canid +em_cmp +emi26 +emi62 +em_ipset +em_meta +em_nbyte +empeg +ems_pci +ems_pcmcia +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +eni +enic +epat +epia +epic100 +eql +esas2r +esd_usb2 +esi-sir +esp4 +esp6 +et131x +ethoc +evbug +exofs +extcon-adc-jack +extcon-arizona +extcon-gpio +extcon-max77693 +extcon-max8997 +extcon-palmas +ezusb +f2fs +f75375s +f81232 +fakelb +fan53555 +farsync +faulty +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +fid +firedtv +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +firewire-serial +fit2 +fit3 +fixed +fld +flexcan +floppy +fm801-gp +fmc +fmc-chardev +fmc-fakedev +fmc-trivial +fmc-write-eeprom +fm_drv +fmvj18x_cs +forcedeth +fore_200e +fotg210-hcd +fotg210-udc +freevxfs +friq +frpw +fsa9480 +fscache +fsl-diu-fb +fsldma +fsl_elbc_nand +fsl_hypervisor +fsl_ifc_nand +fsl_pq_mdio +fsl_usb2_udc +ft1000 +ft1000_pcmcia +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +fusbh200-hcd +g450_pll +g760a +g762 +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdmtty +gdmulte +gdmwm +gdth +generic +generic-adc-battery +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gianfar_driver +gianfar_ptp +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_ncm +g_nokia +go7007 +go7007-loader +go7007-usb +goku_udc +goldfishfb +gp2ap002a00f +gp2ap020a00f +gpio +gpio-74x164 +gpio-addr-flash +gpio-adnp +gpio-adp5520 +gpio-adp5588 +gpio-amd8111 +gpio-arizona +gpio_backlight +gpio-charger +gpio-da9052 +gpio-da9055 +gpio-dwapb +gpio-fan +gpio-generic +gpio-grgpio +gpio-ir-recv +gpio-janz-ttl +gpio-kempld +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-rdc321x +gpio-regulator +gpio_tilt_polled +gpio-tps65912 +gpio-ts5500 +gpio-twl4030 +gpio-twl6040 +gpio-ucb1400 +gpio-viperboard +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +grcan +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_jl2005bcd +gspca_kinect +gspca_konica +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_nw80x +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_se401 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stk1135 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gxt4500 +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +hci +hci_uart +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hid +hid-a4tech +hid-apple +hid-appleir +hid-aureal +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-elo +hid-emsff +hid-ezkey +hid-gaff +hid-generic +hid-gyration +hid-holtekff +hid-holtek-kbd +hid-holtek-mouse +hid-huion +hid-icade +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-lenovo-tpkbd +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-rmi +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-isku +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-konepure +hid-roccat-kovaplus +hid-roccat-lua +hid-roccat-pyra +hid-roccat-ryos +hid-roccat-savu +hid-saitek +hid-samsung +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-gyro-3d +hid-sensor-hub +hid-sensor-iio-common +hid-sensor-magn-3d +hid-sensor-trigger +hid-sjoy +hid-sony +hid-speedlink +hid-steelseries +hid-sunplus +hid-thingm +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-xinmo +hid-zpff +hid-zydacron +hih6130 +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hpfs +hpilo +hpsa +hptiop +hsi +hsi_char +hso +hsr +htc-pasic3 +htu21 +huawei_cdc_ncm +hwa-hc +hwa-rc +hwmon-vid +hx8357 +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-usb +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-arb-gpio-challenge +i2c-cbus-gpio +i2c-designware-core +i2c-designware-pci +i2c-designware-platform +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-hid +i2c-i801 +i2c-isch +i2c-kempld +i2c-matroxfb +i2c-mpc +i2c-mux +i2c-mux-gpio +i2c-mux-pca9541 +i2c-mux-pca954x +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-piix4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-viperboard +i2c-xiic +i2o_block +i2o_bus +i2o_core +i2o_proc +i2o_scsi +i40e +i40evf +i5k_amb +i6300esb +i740fb +i82092 +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_isert +ib_mad +ibmaem +ibmpex +ib_mthca +ib_qib +ib_sa +ib_srp +ib_srpt +ib_ucm +ib_umad +ib_uverbs +icp_multi +ics932s401 +idmouse +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iguanair +iio_dummy +iio_hwmon +iio-trig-interrupt +iio-trig-periodic-rtc +iio-trig-sysfs +ili210x +ili922x +ili9320 +imm +imon +ims-pcu +imx074 +imx_thermal +ina209 +ina2xx +industrialio +industrialio-triggered-buffer +inet_diag +inexio +inftl +initio +input-polldev +int51x1 +intel_vr_nor +interact +interval_tree_test +inv-mpu6050 +ioc4 +io_edgeport +io_ti +iowarrior +ip6_gre +ip6table_filter +ip6table_mangle +ip6table_nat +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_MASQUERADE +ip6t_mh +ip6t_NPT +ip6t_REJECT +ip6t_rpfilter +ip6t_rt +ip6t_SYNPROXY +ip6_tunnel +ip6_vti +ipack +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_poweroff +ipmi_si +ipmi_watchdog +ipoctal +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netnet +ip_set_hash_netport +ip_set_hash_netportnet +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_MASQUERADE +ipt_REJECT +ipt_rpfilter +ipt_SYNPROXY +ipt_ULOG +ip_tunnel +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ip_vti +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sanyo-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it913x-fe +itd1000 +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwldvm +iwlegacy +iwlmvm +iwlwifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +kafs +kalmia +kaweth +kbic +kbtab +kcomedilib +ke_counter +kempld-core +kempld_wdt +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +ko2iblnd +kobil_sct +ks0108 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksocklnd +ksz884x +ktti +kvaser_pci +kvaser_usb +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +l2tp_ppp +l4f00242t03 +l64781 +lanai +lapb +lapbether +latch-addr-flash +lattice-ecp3-config +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-atmel-pwm +leds-bd2802 +leds-blinkm +leds-da903x +leds-da9052 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lm3533 +leds-lm355x +leds-lm3642 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lp5562 +leds-lp55xx-common +leds-lp8501 +leds-lp8788 +leds-lt3593 +leds-max8997 +leds-mc13783 +leds-ot200 +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pca9685 +leds-pwm +leds-regulator +leds-tca6507 +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-camera +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-oneshot +ledtrig-timer +ledtrig-transient +legousbtower +lg2160 +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libceph +libcfs +libcomposite +libcrc32c +libcxgbi +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc +llc2 +llog_test +ll_temac +lm25066 +lm3533-als +lm3533_bl +lm3533-core +lm3533-ctrlbank +lm3630a_bl +lm3639_bl +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm8333 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95234 +lm95241 +lm95245 +lms283gf05 +lms501kf03 +lmv +lnbp21 +lnbp22 +lnet +lnet_selftest +lockd +lov +lp +lp3971 +lp3972 +lp855x_bl +lp8727_charger +lp8755 +lp8788_bl +lp8788-charger +lpc_ich +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc2978 +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lustre +lv5207lp +lvfs +lz4 +lz4_compress +lz4hc +lz4hc_compress +m25p80 +m2m-deinterlace +m52790 +m88rs2000 +ma600-sir +mac80211 +mac80211_hwsim +mac802154 +macb +mac-celtic +mac-centeuro +mac-croatian +mac-cyrillic +mac-gaelic +mac-greek +mac_hid +mac-iceland +mac-inuit +mac-roman +mac-romanian +mac-turkish +macvlan +macvtap +mag3110 +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix-keymap +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16064 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max197 +max2165 +max3100 +max34440 +max517 +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77686 +max77693 +max8649 +max8660 +max8688 +max8903_charger +max8907 +max8907-regulator +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8973-regulator +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-i2c +mc13xxx-regulator-core +mc13xxx-spi +mc44s803 +mceusb +mcp2120-sir +mcp251x +mcp3021 +mcp320x +mcp3422 +mcp4725 +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memstick +mena21_wdt +metronomefb +metro-usb +mfd +mga +mgc +michael_mic +microread +microread_i2c +microtek +mii +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mlx5_core +mlx5_ib +mma8450 +mmc_block +mmc_spi +mms114 +mos7720 +mos7840 +moxa +mpoa +mpr121_touchkey +mpt2sas +mpt3sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrf24j40 +mrp +mrst_max3110 +ms_block +msdos +msp3400 +mspro_block +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt29f_spinand +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +musb_am335x +musb_dsps +musb_hdrc +mv88e6060 +mv88e6xxx_drv +mvmdio +mvsas +mv_u3d_core +mv_udc +mvumi +mwifiex +mwifiex_pcie +mwifiex_sdio +mwifiex_usb +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxser +myri10ge +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +nau7802 +navman +nbd +nci +ncpfs +ne2k-pci +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netlink_diag +netprio_cgroup +netrom +netxen_nic +newtonkbd +nfc +nfc_digital +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcsim +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_ipv4 +nf_nat_ipv6 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nfsv2 +nfsv3 +nfsv4 +nf_synproxy_core +nf_tables +nf_tables_arp +nf_tables_bridge +nf_tables_ipv4 +nf_tables_ipv6 +nft_chain_nat_ipv4 +nft_chain_nat_ipv6 +nft_chain_route_ipv4 +nft_chain_route_ipv6 +nft_compat +nft_counter +nft_ct +nft_exthdr +nft_hash +nftl +nft_limit +nft_log +nft_meta +nft_nat +nft_rbtree +nft_reject_ipv4 +ngene +n_hdlc +ni_6527 +ni_65xx +ni_660x +ni_670x +nicstar +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_cs +ni_labpc_pci +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nlmon +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +nosy +notifier-error-inject +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc-ircc +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +null_blk +nvidiafb +nvme +nxt200x +nxt6000 +obdclass +obdecho +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ocrdma +of_mmc_spi +ofpart +of_serial +old_belkin-sir +olpc_apsp +omfs +omninet +on20 +on26 +onenand +opencores-kbd +openvswitch +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osc +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7640 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +ozwpan +p54common +p54pci +p54spi +p54usb +p8022 +p8023 +palmas-regulator +pandora_bl +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87410 +pata_ns87415 +pata_of_platform +pata_oldpiix +pata_opti +pata_optidma +pata_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc300too +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci-stub +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcnet32 +pcnet_cs +pcrypt +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc_adma +peak_pci +peak_pcmcia +peak_usb +pegasus +penmount +percpu_test +pf +pfuze100-regulator +pg +phantom +phison +phonet +phram +phy-core +phy-exynos-dp-video +phy-fsl-usb2 +phy-generic +phy-gpio-vbus-usb +phy-isp1301 +phy-rcar-usb +phy-samsung-usb +phy-samsung-usb2 +phy-samsung-usb3 +physmap +physmap_of +pixcir_i2c_ts +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm80xx +pmbus +pmbus_core +pmc551 +pmcraid +pm-notifier-error-inject +pn533 +pn544 +pn544_i2c +pn_pep +port100 +poseidon +powermate +ppa +ppc-corenet-cpufreq +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +psmouse +psnap +pt +ptlrpc +ptp +pvrusb2 +pwc +pwm_bl +pwm-pca9685 +pwm-twl +pwm-twl-led +pxa27x_udc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qman_debugfs_interface +qmi_wwan +qnx4 +qnx6 +qt1010 +qt1070 +qt2160 +quatech2 +quatech_daqp_cs +quota_tree +quota_v1 +quota_v2 +qxl +r128 +r592 +r6040 +r8152 +r815x +r8169 +r8187se +r8188eu +r8192e_pci +r8192u_usb +r820t +r852 +r8712u +r8a66597-hcd +r8a66597-udc +radeon +radio-i2c-si470x +radio-keene +radio-ma901 +radio-maxiradio +radio-mr800 +radio-shark +radio-si4713 +radio-si476x +radio-tea5764 +radio-timb +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +ray_cs +rbd +rbtree_test +rc5t583-regulator +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rcar_vin +rc-asus-pc39 +rc-asus-ps3-100 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-delock-61959 +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-it913x-v1 +rc-it913x-v2 +rc-kaiomy +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-msi-digivox-ii +rc-msi-digivox-iii +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-reddo +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-total-media-in-hand-02 +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +remoteproc +renesas_usbhs +retu-mfd +retu-pwrbutton +retu_wdt +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-gpio +rfkill-regulator +rio500 +rionet +rio-scan +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rp2 +rpcsec_gss_krb5 +rsxx +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800mmio +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm80x +rtc-88pm860x +rtc-ab3100 +rtc-as3722 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc_cmos_setup +rtc-da9052 +rtc-da9055 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds2404 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-generic +rtc-hid-sensor-time +rtc-isl12022 +rtc-isl1208 +rtc-lp8788 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max77686 +rtc-max8907 +rtc-max8925 +rtc-max8997 +rtc-max8998 +rtc-mc13xxx +rtc-moxart +rtc-msm6242 +rtc-palmas +rtc-pcf2123 +rtc-pcf2127 +rtc-pcf50633 +rtc-pcf8523 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rc5t583 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx4581 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-s5m +rtc-snvs +rtc-stk17ta8 +rtc-tps6586x +rtc-tps65910 +rtc-tps80031 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rtl2830 +rtl2832 +rtl8150 +rtl8180 +rtl8187 +rtl8188ee +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtl8723ae +rtl8723be +rtl8723-common +rtl8821ae +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtl_pci +rtl_usb +rtlwifi +rts5139 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rx51_battery +rxkad +s1d13xxxfb +s2250 +s2255drv +s2io +s2mps11 +s3fb +s5h1409 +s5h1411 +s5h1420 +s5m8767 +s626 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7706h +safe_serial +salsa20_generic +samsung-keypad +sata_fsl +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_rcar +sata_sil +sata_sil24 +sata_sis +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sbe-2t3e3 +sbp_target +sbs-battery +sc92031 +sca3000 +sch_atm +sch_cbq +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_fq +sch_fq_codel +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_plug +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +scsi_transport_srp +sctp +sctp_probe +sdhci +sdhci-of-esdhc +sdhci-of-hlwd +sdhci-pci +sdhci-pltfm +sdhci-pxav2 +sdhci-pxav3 +sdio_uart +sdricoh_cs +sdr-msi3101 +sedlbauer_cs +seed +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent_generic +serport +serqt_usb2 +ses +sfc +sha1-powerpc +shark2 +sh_eth +sh_mobile_ceu_camera +sh_mobile_csi2 +shpchp +sht15 +sht21 +sh_veu +si21xx +si4713-i2c +si476x-core +sidewinder +sierra +sierra_net +sil164 +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_of_platform +sja1000_platform +skd +skel +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slip +slram +sm501 +sm501fb +sm7xxfb +smb347-charger +smc91c92_cs +sm_common +sm_ftl +smm665 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +snd +snd-ac97-codec +snd-ad1889 +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-aloop +snd-als300 +snd-als4000 +snd-at73c213 +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-compress +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dice +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-firewire-lib +snd-firewire-speakers +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-ca0110 +snd-hda-codec-ca0132 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-isight +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lola +snd-lx6464es +snd-maestro3 +snd-mia +snd-mixart +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-scs1x +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-atmel-pcm +snd-soc-core +snd-soc-si476x +snd-soc-simple-card +snd-sonicvibes +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usb-hiface +snd-usbmidi-lib +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +soc_scale_crop +softdog +softing +softing_cs +solo6x10 +solos-pci +sony-btf-mpx +soundcore +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_dectlk +speakup_dummy +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +spectrum_cs +speedfax +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw +spi-dw-midpci +spi-dw-mmio +spi-gpio +spi_ks8995 +spi-lm70llp +spi-oc-tiny +spi-pxa2xx-pci +spi-pxa2xx-platform +spi-sc18is602 +spi-tle62x0 +spi-topcliff-pch +spi-xcomm +squashfs +sr9700 +ssb +ssb-hcd +ssd1307fb +ssfdc +sst25l +ssu100 +st +st1232 +st_accel +st_accel_i2c +st_accel_spi +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste_modem_rproc +stex +st_gyro +st_gyro_i2c +st_gyro_spi +stinger +stir4200 +stk1160 +stkwebcam +st_magn +st_magn_i2c +st_magn_spi +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +st_pressure +st_pressure_i2c +st_pressure_spi +streamzap +st_sensors +st_sensors_i2c +st_sensors_spi +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +sur40 +svcrdma +svgalib +sx8 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synaptics_usb +synclink +synclink_cs +synclink_gt +synclinkmp +sysv +t1pci +talitos +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tca8418_keypad +tcm_fc +tcm_loop +tcm_qla2xxx +tcm_usb_gadget +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tcs3472 +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tda998x +tdfx +tdfxfb +tdo24m +tea +tea575x +tea5761 +tea5767 +tea6415c +tea6420 +team +team_mode_activebackup +team_mode_broadcast +team_mode_loadbalance +team_mode_random +team_mode_roundrobin +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +test-string_helpers +tg3 +tgr192 +thmc50 +ti-adc081c +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmp006 +tmp102 +tmp401 +tmp421 +tmscsim +toim3232-sir +touchit213 +touchright +touchwin +tpci200 +tpm_atmel +tpm_i2c_atmel +tpm_i2c_infineon +tpm_i2c_nuvoton +tpm_i2c_stm_st33 +tpm-rng +tps51632-regulator +tps6105x +tps6105x-regulator +tps62360-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps65090-charger +tps65090-regulator +tps65217 +tps65217_bl +tps65217-regulator +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +tps80031-regulator +trancevibrator +tranzport +tridentfb +ts2020 +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +tsl2x7x_core +tsl4531 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +tua6100 +tua9001 +tulip +tuner +tuner_it913x +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tusb6010 +tvaudio +tveeprom +tvp5150 +tw2804 +tw9903 +tw9906 +tw9910 +twidjoy +twl4030_charger +twl4030_keypad +twl4030-madc +twl4030-madc-hwmon +twl4030-pwrbutton +twl4030-vibra +twl4030_wdt +twl6030-gpadc +twl6040-vibra +twofish_common +twofish_generic +typhoon +u132-hcd +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +ucd9000 +ucd9200 +uda1342 +udc-core +udf +udl +udp_diag +ueagle-atm +u_ether +ufs +ufshcd +ufshcd-pci +ufshcd-pltfrm +uhid +uio +uio_aec +uio_cif +uio_dmem_genirq +uio_mf624 +uio_netx +uio_pci_generic +uio_pdrv_genirq +uio_sercos3 +uli526x +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unix_diag +upd64031a +upd64083 +u_rndis +usb3503 +usb_8dev +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_f_acm +usb_f_ecm +usb_f_ecm_subset +usb_f_eem +usb_f_mass_storage +usb_f_ncm +usb_f_obex +usb_f_phonet +usb_f_rndis +usb_f_serial +usb_f_ss_lb +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmisc_imx +usbmon +usbmouse +usbnet +usbserial +usb-serial-simple +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbtv +usbvision +usb_wwan +u_serial +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +ux500 +v4l2-common +v4l2-dv-timings +v4l2-int-device +v4l2-mem2mem +vcan +vcnl4000 +ves1820 +ves1x93 +veth +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost +vhost_net +vhost_scsi +via +via686a +via-ircc +via-rhine +via-sdmmc +via-velocity +videobuf2-core +videobuf2-dma-contig +videobuf2-dma-sg +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videodev +viperboard +viperboard_adc +virtio +virtio_balloon +virtio_blk +virtio_console +virtio_mmio +virtio_net +virtio_pci +virtio_ring +virtio-rng +virtio_scsi +virtual +visor +vivi +vlsi_ir +vmac +vme +vme_pio2 +vme_user +vme_vmivme7805 +vmk80xx +vmwgfx +vmxnet3 +vp27smpx +vringh +vsock +vsxxxaa +vt6655_stage +vt6656_stage +vt8231 +vt8623fb +vub300 +vx855 +vxge +vxlan +w1_bq27000 +w1_ds2408 +w1_ds2413 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1_ds2781 +w1_ds28e04 +w1-gpio +w1_smem +w1_therm +w35und +w5100 +w5300 +w6692 +w83781d +w83791d +w83792d +w83793 +w83795 +w83977af_ir +w83l785ts +w83l786ng +w90p910_ts +w9966 +wacom +wacom_i2c +wacom_w8001 +walkera0701 +wanxl +warrior +wbsd +wcn36xx +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wil6210 +wimax +winbond-840 +windfarm_core +wire +wishbone-serial +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl18xx +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wlcore +wlcore_sdio +wlcore_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +xc4000 +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_algo +xfrm_ipcomp +xfrm_user +xfs +xgene-enet +xgifb +xgmac +xilinx_ps2 +xilinx_uartps +xillybus_core +xillybus_of +xillybus_pcie +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +xsens_mt +x_tables +xt_addrtype +xt_AUDIT +xt_bpf +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlabel +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_ecn +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_HMARK +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_LOG +xt_mac +xt_mark +xt_multiport +xt_nat +xt_NETMAP +xt_nfacct +xt_NFLOG +xt_NFQUEUE +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xt_REDIRECT +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +zaurus +zd1201 +zd1211rw +zforce_ts +zhenhua +zl10036 +zl10039 +zl10353 +zl6100 +zlib +zr364xx +zram +zte_ev --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/powerpc/powerpc64-smp +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/powerpc/powerpc64-smp @@ -0,0 +1,16957 @@ +EXPORT_SYMBOL arch/powerpc/kvm/kvm 0xa8b93497 kvm_read_guest_atomic +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0xea69f87e suni_init +EXPORT_SYMBOL drivers/bcma/bcma 0x67ee2384 bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x127a5901 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/paride/paride 0x0ac1c49c paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x3f43b155 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x6250ec0c pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x6ba143fb pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xa7d9ab0d pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xbc0ec868 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xc9197560 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xcb42049e pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xd056ce81 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xf02e4253 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xf37d36af paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0xfe462444 pi_init +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x05fe4d57 dw_dma_cyclic_free +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x1db5248b dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x5ced9f79 dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x6fcd489c dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x86f46eb7 dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xb8745454 dw_dma_get_src_addr +EXPORT_SYMBOL drivers/edac/edac_core 0xe3a09ca0 edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04d0f641 fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x07b99cdb fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0f7d6af8 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x112c3c27 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x11404eb6 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2e7b8b50 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x31e70eb7 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4a424335 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4ca8cef8 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5723b271 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x59d24912 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5e6f80c8 fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0x645b715f fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x70f597e8 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7984a895 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7efbbde9 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8a24cfb2 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9bc79251 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9d25e1e7 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa460528b fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xae421e09 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb6e011d0 fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0xba50dce1 fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc545323a fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc95a5693 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd63207c6 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd82c7b38 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf6cae3b1 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfffd47f6 fw_card_initialize +EXPORT_SYMBOL drivers/fmc/fmc 0x031fa8d3 fmc_driver_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x2014c2ce fmc_reprogram +EXPORT_SYMBOL drivers/fmc/fmc 0x2986ef76 fmc_device_unregister_n +EXPORT_SYMBOL drivers/fmc/fmc 0x2f581bf5 fmc_device_register +EXPORT_SYMBOL drivers/fmc/fmc 0x472521ee fmc_device_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x4c2b58f5 fmc_show_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x7acb18b3 fmc_driver_register +EXPORT_SYMBOL drivers/fmc/fmc 0x9ab74423 fmc_find_sdb_device +EXPORT_SYMBOL drivers/fmc/fmc 0xc2db59e6 fmc_device_register_n +EXPORT_SYMBOL drivers/fmc/fmc 0xeebacdf4 fmc_scan_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xf3cd0fb4 fmc_free_sdb_tree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00025916 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00278c1c drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00667d8a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00ca44ff drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01255a98 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01c64577 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02404cfd drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x026c0d6b drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x028336dd drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03c27fcd drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06258fd7 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06924fdf drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07f5737f drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0af9a4a6 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x107742a9 drm_get_subpixel_order_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x10cd002d drm_gem_dumb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1123e267 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1155ef9e drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x124789a2 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x129fab62 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12a5647e drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a9a178 drm_get_format_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14cfcbc5 drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1507408f drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x169fe8b7 drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x189f6401 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19e44324 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19ff77f5 drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a202c98 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a770ac3 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a97a737 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c3ae098 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ca1973b drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ce562e1 drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e73e312 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2013189f drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20237aee drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x207a3a16 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20b37c60 drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2196ecda drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2385f952 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x252524be drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x269ebc50 drm_prime_sg_to_page_addr_arrays +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29131429 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29ad006c drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29f04db8 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a942ab2 drm_mm_insert_node_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2bbe00e0 drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d2fd6b8 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d80be4d drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2dbdfff8 drm_bridge_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e7a4300 drm_rgb_quant_range_selectable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb0813c drm_prime_destroy_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f0b064f drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fae951e drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fc61f9e drm_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fdc7d30 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x300604ed drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x306760a7 drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30869632 drm_dev_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x309f7b6c drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x325db453 drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32b9d426 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x334b7188 drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0x342b589c drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34784173 drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3529b13c drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x365b022b drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36f91ef3 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x387aaa68 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a4f7ae drm_format_num_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39c22b22 drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a031d3b drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ac1fef9 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ae7b2d0 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b9d009a drm_format_plane_cpp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d4b8108 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4022d7d2 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40dcd737 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x414939e2 drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4321417a drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47dc6202 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48149c46 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x486b6e1f drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49fabf0d drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c511235 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ca4a0aa drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4db13316 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e0950d1 drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x501fadd4 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x503c6a32 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e28c07 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50fed311 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x512ddd21 drm_framebuffer_reference +EXPORT_SYMBOL drivers/gpu/drm/drm 0x526f6f71 drm_rect_calc_hscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x529607e3 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5336d3f4 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54187463 drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55069bfe drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5671b727 drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56f62688 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57db150b drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57f33c43 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58ab3bff drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58e194a5 drm_connector_unplug_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a6fd5aa drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d7318dc drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e58f36c drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6090be61 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x629c05e1 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65dec0f9 drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66803841 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66fda5fb drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68a0b0bb drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68b3cc8b drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68fa3c5e drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6900d335 drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69364e90 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c99fa24 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cc3c29e drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cee2e42 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6dce4d1f drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71770068 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76554ab5 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77025c5a drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4e7297 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7af12059 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1a9034 drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d308629 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e39e262 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81ba930c drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81e773e4 drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83def454 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x843dcbad drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x848e0335 drm_prime_init_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8914b15e drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89358b5f drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8983e0b1 drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89e5e545 drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8aae96ba drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ac1964e drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b0ab720 drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c2ec71c drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c69b775 drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de13715 drm_format_vert_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e840232 drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f0a1548 drm_mode_group_init_legacy_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7df3a7 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9047a525 drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x90fd21c5 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91912e0d drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91e51e3b drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x93410872 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x946b6698 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95cb102f drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x976dab54 drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9972db48 drm_rect_calc_vscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b823ec3 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d635f87 drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d70fc2a drm_rnodes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e6e3107 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9eccfe56 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0ac3c72 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa16fadc7 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1f4e9e6 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa28078b2 drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3a02e8c drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5dbd572 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa65e77c3 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7374465 drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa92241d4 drm_unplug_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa96acfcb drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa9f620d drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad3ef7ba drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae80d1d8 drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf40e87f drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf65cdfc drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafb0cb6f drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafd5d474 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb088e08a drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1ab96f5 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2652197 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2910f5b drm_crtc_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb41d7ede drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb43637d9 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb480ffaf drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5540008 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb572a9f0 drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5827d31 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb78656a3 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb87f3e6f drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8a42be8 drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95beb55 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba197716 drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbaf828f6 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc120a37 drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbca2544b drm_bridge_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbcdc433b drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd1578ae drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe001c53 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0989721 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3e66885 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4000f9f drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc612429b drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc649fdf3 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7f7cc11 drm_vma_offset_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca45efbc drm_format_horz_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcec158f0 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcfa46e36 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcfc17662 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2335101 drm_fb_get_bpp_depth +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd430e456 drm_pcie_get_speed_cap_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4e0884c drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8a29f8e drm_framebuffer_unreference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd978edbb drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd153f9b drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd74d6f3 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd877dbe drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf70b56e drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe208ac2e drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2ef97e4 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe37b2532 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe458cfed drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe630a0dc drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f46e6e drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe920cc10 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefdf9b69 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf08d712a drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf219f21d drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2615e2a drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf446a0e2 drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6d3a423 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf8626c5f drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfac7dbd8 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb497216 drm_mm_insert_node_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd063935 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe292f5a drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe4a68c7 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc3f53b drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc6c87a drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x098e47d2 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0b9e0a27 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f6df2ab drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f96ec70 drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x163251c8 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x16922415 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1db689d4 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d477368 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34871adf drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3a14e0ca drm_has_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3afea99c drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3c5b25e7 drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3fbe30e8 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x462c3153 drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x474702f2 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4a4343b2 drm_dp_aux_register_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x520487b3 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5b857bea drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5d838ae1 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5f205110 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6017ed6a drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x676a7b4b drm_dp_link_power_up +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x711a004a drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84e924ba drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x85294237 drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8842e5e7 drm_dp_link_configure +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8a25331d drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8abba775 drm_dp_aux_unregister_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x97a1eec5 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa670f83d drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa77858bb drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa77e0f8a drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa7c69c48 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8d6809d drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8f01c47 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa9e12ace drm_pick_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xad13e616 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaeea3eca drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb8fa90eb drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbf5a4f27 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc81cae7a drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd6ced802 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xda71ad02 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe31701bd drm_dp_link_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe8caa46e drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe90ff566 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xeba3ddb1 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xec21cd5a drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfc79650d drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfd4a6f4f drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x0bd134fc drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x30997006 drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x311580e1 drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x090f9ddf ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x099e2ab0 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x10781929 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x10fd5d2e ttm_agp_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1229ca39 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x122ddc99 ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x193bdd32 ttm_agp_tt_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ece5539 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2025f302 ttm_mem_io_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x24800dbc ttm_dma_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2a57d38c ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2e23c102 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x319deefd ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x33714246 ttm_bo_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34c43855 ttm_pool_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3598d406 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x361e2835 ttm_pool_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x385f93f2 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3b5fc895 ttm_bo_add_to_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3f89287b ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x463af704 ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x485a5bc0 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x48e9e612 ttm_dma_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4e8dd264 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x55ee0a7f ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x564e1aee ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5a8fdfea ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x603500ce ttm_mem_io_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6052860c ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x60f0265d ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x68f7e979 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6a22467a ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6dcda308 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6e4d0b2d ttm_mem_io_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6f7cb985 ttm_agp_tt_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7af35fa9 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d55da85 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x84a13931 ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x859b5f95 ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x880a15ad ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x886cf055 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x89a443de ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d14adbf ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x91f6963e ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x94894449 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x95ff21fc ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa144fe4a ttm_prime_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2a129fd ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa5234b31 ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa7118c8b ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa73de2a9 ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa7952f4e ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac9c76bc ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb48b46b8 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb74787ef ttm_mem_io_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb83c6470 ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc5f0c2da ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc6d64af0 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc749446f ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xca94e37d ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xccdb2402 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce6e43a8 ttm_base_object_lookup_for_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd24ef8df ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7834527 ttm_bo_del_sub_from_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7f51742 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd8edb115 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd9597b10 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe55dcf2c ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe919eea7 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf8dd8be5 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa27f080 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfcede69d ttm_bo_dma_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfe4af390 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x45e18514 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xd43c7ae3 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x7cfae15d amd756_smbus +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x4a2ede96 st_accel_common_probe +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x695819fc st_accel_common_remove +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x37a86ed4 hid_sensor_write_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x3b51c0ae hid_sensor_read_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x6548cf31 hid_sensor_write_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x82873811 hid_sensor_read_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x9859fec5 hid_sensor_parse_common_attributes +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0xab908d0d hid_sensor_setup_trigger +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0xbd2e9c38 hid_sensor_remove_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x074d7047 st_sensors_trigger_handler +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x0849ae26 st_sensors_sysfs_set_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x0e3ce76c st_sensors_get_buffer_element +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x19a3a107 st_sensors_set_axis_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x3755fccb st_sensors_sysfs_get_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x3c243b48 st_sensors_read_info_raw +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x478d910b st_sensors_init_sensor +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x83774222 st_sensors_set_odr +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x8390dbbf st_sensors_sysfs_sampling_frequency_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x98657b58 st_sensors_set_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xa8302036 st_sensors_allocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xaf9303bf st_sensors_check_device_support +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xb19291d8 st_sensors_deallocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xbb52ee8c st_sensors_sysfs_scale_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xcb6c2cfa st_sensors_set_fullscale_by_gain +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xfbb3b4fe st_sensors_set_dataready_irq +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0x65c824ec st_sensors_i2c_configure +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0x42399289 st_sensors_spi_configure +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x44c1e382 st_gyro_common_remove +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0xa064932c st_gyro_common_probe +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x97ba4c86 adis_enable_irq +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x9ef8f05e adis_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/industrialio 0x1f130301 iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x2510c68b iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x34406308 iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x38d5c898 iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x3b453866 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/iio/industrialio 0x3cca9e59 iio_buffer_write_length +EXPORT_SYMBOL drivers/iio/industrialio 0x44ac8425 iio_buffer_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x46141842 iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x465d226e iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0x6d663f81 iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0x7bb0f746 iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0x8d8c9493 iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0x94c18da9 iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x9e58f8ce iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0xa605ca58 iio_buffer_register +EXPORT_SYMBOL drivers/iio/industrialio 0xad1ad900 iio_buffer_read_length +EXPORT_SYMBOL drivers/iio/industrialio 0xb09c7148 iio_buffer_show_enable +EXPORT_SYMBOL drivers/iio/industrialio 0xb903b86c iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0xc117b2b9 iio_buffer_store_enable +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xe7aa618d iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0xef549a6b iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0xf5938641 iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0xfd3ba224 iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x8518eb9a iio_triggered_buffer_setup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0xab6348a1 iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/kfifo_buf 0x73c1f7e8 iio_kfifo_free +EXPORT_SYMBOL drivers/iio/kfifo_buf 0xbe241437 iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x82b654f8 st_magn_common_probe +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0xd382acff st_magn_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x0b7ed49d st_press_common_probe +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x64f0c1f7 st_press_common_remove +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x049ace30 rdma_addr_find_smac_by_sgid +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x04b8b6d7 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1c3c0ad3 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1ea5767b rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x273f4cca rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x32a8402c rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x446fd7c9 rdma_addr_find_dmac_by_grh +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x59252c9d rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xd880f50b rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x05490921 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x145641e6 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1b06ab7a ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2f17d3f2 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4098be96 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x41ede2e7 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5baadc50 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5e62ac41 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5fcfc3df ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6b4c3af2 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6c6d0ae1 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7492410a ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7947807e ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x80318a86 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x847d4fab ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x858d0eb3 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xccfdee51 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00eefd0e ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01e8b3e0 ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0564fffc ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x076a1649 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0cad0ac4 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x12423e76 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x12badd14 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x15dbb7fa ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1906b9b9 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x196862b5 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1a7c95a2 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1cd75f55 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1fa022cc ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22f3cf93 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x235ecb79 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x241c15b6 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2646624c ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x265fced0 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x269e8c63 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2bc08c9e ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c36ec00 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x30194c97 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3eec8cea ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x41c181e3 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x482c9464 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4b584dae ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4df047d8 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x56cd8a09 ib_resolve_eth_l2_attrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5743e1eb ib_create_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x62d02b65 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x651d28f6 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x676481d6 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6c1f3889 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e030e26 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x706429f0 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7386ee48 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x76c9e201 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x77379bc8 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78319817 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7a7993fb ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7aaf032d rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7ba2525a ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e965769 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x80594686 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x83750736 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8c40a355 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8cad3de7 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8d29333d ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8d8789c9 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8fee3a4a ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x92774988 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x97cecde8 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x988d82b4 ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9e01bed0 ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9f6ac417 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa2be649d ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa432baf6 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac217df9 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf358bbf ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb184c361 ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb276c2d3 ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb3faaea8 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb69e6b2b ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xba1f9823 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc9f7e48a ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd74a4b65 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd94b314e ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdb5dd719 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdfef05c3 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdff23149 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe63d200f ib_destroy_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe8adfb10 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xedaeae64 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf2633f2d ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf59eb68b ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf71af364 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf83ac56a ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf83d391b ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf883271e ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf95cd40f ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x04408b4c ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2fdf160e ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3236a905 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x343c8e78 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x43e8bea2 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5db2a308 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6447fad1 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7f1f5cb7 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x99db811d ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9da5141c ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd3549182 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xdfafdc01 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x2139506d ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x22f07253 ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x2b9f86a4 ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x4173919e ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5328d7a6 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x7530fe9f ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9a1cd50d ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa3427cdf ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xddc330e7 ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xef7f51a9 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xfbd2925c ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x2569d757 ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x52a6ce77 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7971c00e ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe350f2aa ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x09fb9617 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x192e6e0e iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x22f1b9ec iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa23a1bcb iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc519fdd1 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc6c3d28b iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xd4319b09 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xdd4b39f1 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x005f41af rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x01151122 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2082762b rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2b6b22b6 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2dd20e8a rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3444732d rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x34792ccb rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x35c19bda rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x43412b40 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4476f0cf rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4cdfff88 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6956b6b0 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6f943c3a rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x71056adc rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x79340b1e rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x92b3a3a5 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa8d14245 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbe1f277f rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc272fba2 rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd8811b84 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf44e6000 rdma_init_qp_attr +EXPORT_SYMBOL drivers/input/gameport/gameport 0x00db0206 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x17dee590 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x51d5113d gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x725bca18 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x8ffc27fb gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x92816cf0 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa94fb062 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd43c3904 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xdcbf4cf4 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/input-polldev 0x216c20a5 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x277ce06d input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x6e592b5d input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x9e8d4e1a input_register_polled_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0xb0b20e22 matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x0fad14ef ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0x1c750070 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0x250d069f ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x8d13ffd2 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x7ed4ef31 cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/sparse-keymap 0x5736d19c sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x901bf833 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x9d0d9511 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xad1832a2 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xca275f28 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xd6e83005 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x058b656b ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x92fa9f57 ad7879_pm_ops +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x03efb025 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x05a4cee8 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x19f105c5 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2021283d capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2db2dfa7 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x37bd4747 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7140a8d2 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7292ab34 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x72a25a72 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x84e67898 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa5526fdc capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8bfa25d capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfd552f7a capi_message2str +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x151b8eae b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2874b3b7 b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x416190c3 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x44550cf6 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4da40dcb b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4fc9e8d8 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x62bcdd12 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6ea116d1 avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x7f5109a8 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x919b606c b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9cda2fd3 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9efa9d5c b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xbb29e96c b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xbf3a1364 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfadfc438 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x0943a1d7 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x10d0e122 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x266f6767 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x5b766548 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x768582c9 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x98d452cd b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xb5e6cba9 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xe5e344f2 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xfba7dd6f b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x7ab59853 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x02cac6ed mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x5e3b0b6a mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xb20b9325 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xdad7ee48 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xbb3304db mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xc723460d mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x5e02b0e5 hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x7f29ce36 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xe227344e FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xff2db2cf FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x11a79d4c isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x64b72861 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x6abecac4 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x89379b80 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x9eb62cc8 isacsx_irq +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x2a87f953 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x4bfc001d isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x65941920 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0577521f mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x094c1045 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2995782b mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3704bbe2 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3d6c004d mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x407fa3c7 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x40bf6c04 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x40fffa22 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x428fb566 bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x48616f9c mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4de0dd1f get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4f8006bf bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x69504e1d recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x77372c56 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x789756b9 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a4e99fb mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8e2fe869 mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5850c8e mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdf6d02c8 mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe2383211 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe69de7a8 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xee39dc66 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf836e21f recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfb39c162 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/bcache/bcache 0x076f8ed8 closure_put +EXPORT_SYMBOL drivers/md/bcache/bcache 0x1f3228a5 __closure_lock +EXPORT_SYMBOL drivers/md/bcache/bcache 0x9311fe00 closure_sub +EXPORT_SYMBOL drivers/md/bcache/bcache 0xb33a6deb closure_trylock +EXPORT_SYMBOL drivers/md/bcache/bcache 0xbbefc4a9 closure_sync +EXPORT_SYMBOL drivers/md/bcache/bcache 0xd76410d6 closure_wait +EXPORT_SYMBOL drivers/md/bcache/bcache 0xe3c17af1 __closure_wake_up +EXPORT_SYMBOL drivers/md/dm-log 0x19498b89 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x6407b8b0 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xbe7d054c dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0xf4bad09e dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x07b5b7f2 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x25e79c68 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x54af99ef dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x7afaa827 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0xe0d754e4 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0xf302e6fe dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/raid456 0xe63b496d raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x028aa2ae flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x191deb52 flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x1da4df10 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x2371c78d flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x2c11daee flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x46b9618a flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x79839052 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x88a75465 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x99527df1 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xa04666f1 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xb332026c flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xb94e452c flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xcecd5877 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x144bb8c6 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x9899494b btcx_riscmem_free +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/common/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0x3db8be82 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x59417557 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0x5a224157 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x6af82305 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc30da582 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0x7d51db21 cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/tveeprom 0xb44203f5 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0xe6cdf785 tveeprom_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0034a4c9 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x081255c5 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x09d63c2b dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x17523ce7 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x189e3d8b dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1e8fd8bb dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x203c6fa7 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x299548d4 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x32706276 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x35048dc7 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x403c645f dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x44f479e5 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4ca5536b dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5c0ea535 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x604b16c0 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6ba372f7 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x70af1058 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x78db694b dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7f4f9b54 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x85a5e7d3 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x869e79e7 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8ff2e3fd dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x932d57ef dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9c2303bc dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9d46ff49 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9f30a721 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa3178da2 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xbb1dfad2 dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcf589e8c dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd68a099e timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd8f7184c dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdaa6d987 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xed917401 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xeecf085d dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf28e7431 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf5a9f404 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf6755cc9 dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf83674bd dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf968285a dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-frontends/a8293 0x5f85d50b a8293_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9013 0x33ea056e af9013_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9033 0x6ba17099 af9033_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x947fbb86 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x156c275e au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x35cae214 au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x67947335 au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x8127cbcb au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xa11c6d95 au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xaeb3dc1b au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xde9444b8 au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xe072beab au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xf6c6a253 au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0x3f306d7e au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0xb217cd59 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0x1c5a5d82 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0xb5ab64f0 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0x5822e06c cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x67e9b8d7 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x6bf25a41 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x7aed34f8 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x784d0cae cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x9d38d5f7 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0xaedf8fc7 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x0d35c207 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x26634209 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x4b175c98 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x6ea10dbd dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xe2d716d9 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x23bf891b dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x2889dabf dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x3e178c71 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x56af134b dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x663e8a0b dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7e061e25 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7e0648a0 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x8fbfec86 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x91ab1926 dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xa35b97f2 dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xab27800f dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xb5af31ed dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xb7d1ffde dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xdf3f8f34 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xe8335190 dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0x57fc7614 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x17ba500d dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x1af6d987 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x66b487ab dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xc5814587 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xd4deec1d dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xe69cc06c dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x19ed4349 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x22cc6442 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x4ea00ef2 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x6ad99d6b dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x0df39009 dib7000p_get_agc_values +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x238649b5 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x3964f624 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x420993e7 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x43fc80b3 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x44b28b0c dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x48d40b8d dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x4b79910f dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x68c410c2 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x8b19a564 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x9511c408 dib7000p_set_agc1_min +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xc4e60118 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xe4fb7cdc dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xf1f2ae58 dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xf8ff1f37 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xff091769 dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x0849d00c dib8000_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x15e64012 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x1676ee69 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x28c2b205 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x2ec95c8e dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x35ed9f74 dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x378dcac0 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x4adae604 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x61cdf695 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x74fb852e dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x86e609f7 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x91bc75f8 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xa08feeaf dib8096p_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb3633870 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb836b730 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xc3175885 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xda7f699d dib8096p_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xe8420a08 dib8090p_get_dc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xfc0a2d57 dib8000_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x25ad15b1 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x4859d233 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x6a59fb13 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x70dd9dfa dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xcb785ae5 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x8da5df1e drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x9be995df drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x1fa59345 drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0x8f099cc3 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0xb1a7fd07 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0xaad3e00f ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x5d1fba6d isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0x6911d96f isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x1b887e70 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/it913x-fe 0x31672981 it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0xb724e020 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0x4439e2ff ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0xe2d0a5ce l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0xf55a1ad7 lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0x4433df5b lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0xdab5864f lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0xe9d7cdc6 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xc3eda9d8 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xf3a7cd76 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x13457e45 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0x963dfbe0 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0x8df75d55 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0xdfe40c70 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x157e2003 mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x552091f5 mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0x239bc054 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x9357b748 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0xa2e12cb3 or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0x3b5e685b or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x2c24b068 rtl2830_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x7f748fe5 rtl2830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2832 0x929fc15e rtl2832_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x3177c51e s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0x7eb280b7 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x0e8edc75 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0xdccc8194 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x30f73eea s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0xd0c1f61e si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp8870 0x6c1e8141 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0xf482789a sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0x28746a44 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0x0cd0260a stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0xac2674e3 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x0c873d57 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0x8e9db480 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0x528155e5 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x229c6dec stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0xfa5f4dd1 stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0xafedfb6b stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x4e7b43df stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0xb97f7896 stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0x5aacd1f9 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0xd7e7e72c stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0x20d99902 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0x3722dc97 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x1012f020 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x36c4b08c tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0xe6a82398 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10071 0x24b880fd tda10071_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x5c08709f tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0x23be4ae9 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0x1d406abf tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0x75edcef8 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0x43cd243e tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0xfb32de29 ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0x96c1ad47 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0xf7b48cea ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0xf5036837 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0x2ebfba8c zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0x37285ed9 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0xc6a25ac2 zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x3f9c7364 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x5f8d654e flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x91d2db04 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xaaff4855 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xcba5791a flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xd9918e9d flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xfe0f27ae flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x20c9031f bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x6a219445 bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xdae1dccb bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xff520fb5 bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x26e4075e bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x3a11b17c bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x6580e9db bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x02697fbb dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x140b556c dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x35903b39 rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x364ab073 dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x3ae43df3 dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x5913c819 write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xc3fcdb19 read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xca0b4b41 dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xdb8772f5 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0x2b915929 dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x3badf832 cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xa5599bb6 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xb8a4f4e0 cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xcf43d2a4 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xfc22314a cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x2d14306b altera_pid_feed_control +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x5df5535f altera_hw_filt_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6db99f63 altera_ci_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x2781f38c cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x88e8c093 cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x912394e0 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x96f6c4dd cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xc5d38741 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xd5a3a0f0 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xde568ced cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x54deaa14 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x6050966e vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x36774a9d cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x8b9a271a cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xb8bd479c cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xd78074f5 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x0d0f94f7 cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x8730a8f0 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x95a024fc cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xa5b4195e cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xc3ef75cd cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xed4c9f91 cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x06ded5d0 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0ba6fef3 cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0e660e4a cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x1e190e3d cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2e111335 cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x323db971 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x34d1b650 cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x413c9832 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4216fc84 cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4268e935 cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4e951463 cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x57c73983 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x58163d99 cx88_free_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x5bb947e3 cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x61e943e1 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6281101d cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x64051f38 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x68cbc7e7 cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x76ac8507 cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x95ea2a8a cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xa7a2f133 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc0699730 cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc86dfff7 cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x0e63a6f8 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x170085e0 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x45f0114d ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x4e4381d0 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x51ea35ee ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6e8329a2 ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x739c3072 ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7a819f03 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x8e364294 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x8fb13111 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x98182142 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x9bb100a5 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xa17c8de1 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xa8da36ea ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xc02f039a ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xd61e7016 ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xe41a0424 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04851049 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x21b39e60 saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x36032089 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x4550a285 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x593483d2 saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x641029d4 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x73039031 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x7437367e saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x74c46324 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xa92e8460 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xbb586abd saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xf8ccc436 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xfd562dd9 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xd6f677a0 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x1b99ca00 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x2eaacf1b soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x51b7145f soc_camera_host_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x55862237 soc_camera_lock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x9df98eee soc_camera_power_init +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xacc2ccb9 soc_camera_unlock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xf3355535 soc_camera_power_on +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xf6fbd30e soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xffc5ac14 soc_camera_power_off +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x25c52d97 soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x2863728e soc_mbus_image_size +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x5f3e3558 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xa9546115 soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xfe2c3a07 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x1b2d80da soc_camera_client_g_rect +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x6c015ba0 soc_camera_client_scale +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xf4fec98c soc_camera_client_s_crop +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xffb39fdb soc_camera_calc_client_output +EXPORT_SYMBOL drivers/media/radio/tea575x 0x0e812100 snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x3572e957 snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x6b2bbd6c snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0xa617c0e8 snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x20b831dd lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x44528bf9 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x4c45a83f lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x5b560c97 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x988c58ca lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xb3c452fd lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xbf585b88 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xf7fb2848 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/rc-core 0xc3eb0833 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0xf9d89d35 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/tuners/e4000 0xae286a64 e4000_attach +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x060898b3 fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x513e3fa9 fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x5bda73e4 fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x5f6735cd fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xfb6afdeb fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc2580 0x00aa500c fc2580_attach +EXPORT_SYMBOL drivers/media/tuners/max2165 0xbb76eb69 max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x1c03d740 mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0x02b77056 mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0x29f41812 mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x23f445b1 mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x7954dd57 mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0xce1b6627 qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18212 0xa73421c1 tda18212_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0xfcb2f0e5 tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tua9001 0xc2d90d26 tua9001_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0x6063187c xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/tuner_it913x 0xb9490367 it913x_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x84b5c729 xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0x03d97ea8 xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x43be20ca cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0xb7fcbf71 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x151642cf dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x1ad79558 dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x1adeeea0 dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x262b7947 dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x2982fe77 dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x3bf1817d dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x83cf8723 dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x92c8738f dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xacb454aa dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x3286417a dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x5fa7e1c5 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x64f2414d dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xc4cf60d7 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xd0612e9e dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xf6450f3a dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xfe80445e dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xc3013e04 af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x034d63f2 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x0e7b1e92 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x16477ba9 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x1662ed2e dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x2a162e91 dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x64232637 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x8657b099 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb7bea9c9 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xc2ef8cea dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xcc755930 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xed91e4a4 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x0f0b35a1 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xb8947d71 em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x0573c554 gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x0d311e0e gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x3afd8ca4 gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x47857e2a gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x70f3193a gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x85c1f348 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x878115f6 gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xbb7cfe7b gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x228a49b6 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x5051c7d4 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xf7a6dcf4 tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x10377e02 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x3bf07fc8 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x4adaf0f3 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x53c9394f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x5f96a661 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0xabe27502 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x46be3e67 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xaccd37d7 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xf2b2fbd8 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x204d670c videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x4cba2d73 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x6044f0c3 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xaa0839dc videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xc9bc8435 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xd208b272 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf2-core 0xb30e2e01 vb2_querybuf +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0040deb2 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0cc2e665 v4l2_clk_get +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0d0353e1 v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0e363aa7 video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x103553ab v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123c7dc4 v4l2_clk_enable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x13a9cde6 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x140e371b v4l2_of_get_remote_port_parent +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x14de38b8 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1823d79f v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x21195fca v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x285f333f v4l2_clk_unregister_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x28a62972 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x28d728f3 v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2bc966d2 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2be45897 v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2e7457f7 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2e90acea v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2e9c67cc v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x32c3652c v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x359c9d7e v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x36847d11 v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x39de231b v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3b24fd64 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3db7f213 v4l2_of_get_remote_port +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3e8256a1 video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3ef08100 v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4405ec77 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4bc79b01 v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4fb7e44a v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x589a7432 v4l2_clk_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5e97bb28 v4l2_clk_set_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5f6ec9a1 v4l2_clk_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6019f9fd v4l2_clk_disable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6389a0cb v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x673f3873 video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x69b2b171 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6a4c72b6 v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x77aa48f5 video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7aedc12f v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7d5c0536 v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7d8a852c v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7ef4d4aa v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7f923f2a v4l2_of_parse_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x890978ac v4l2_clk_put +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8a871b8d v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8b6252cc v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x944ec57b v4l2_clk_get_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x960b5740 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9a558c84 __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa2a17f82 v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa6654e5c video_usercopy +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa81982b8 v4l2_async_notifier_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb31c2aa2 video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb90cbedf v4l2_of_get_next_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb9fc800b v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbac4a225 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbcd8e172 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc12cf8f8 v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc77ceddf v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc83263de v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcad26805 __v4l2_clk_register_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd530b321 v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd622c754 v4l2_async_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdb10b1ae v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdded2b7a v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe43d9ffe v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe4d921d6 v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6fce6f2 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xec5807ee v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xed04181e v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3586274 v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf4abbb69 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfbfd9482 video_device_release_empty +EXPORT_SYMBOL drivers/memstick/core/memstick 0x26fdcddc memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x2cca27c2 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x2db8167b memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x60d475ea memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8580fc97 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8c838a99 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x9548c101 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xcb139a57 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xdc07e67e memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe3f36002 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xea46ea01 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xedfcaa03 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfa342bc9 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x04f382c3 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1201650d mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1fa9e8a3 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2913ecdd mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2d2aa820 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x38270887 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x424e2370 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5d053e13 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5f29a10a mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x63cfa81c mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6a3087dd mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6ce0c39d mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x765438fc mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x76fdcbe5 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7853a605 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x79115857 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8750bf2d mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8e695778 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x90dd6ac5 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9439a4d1 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x943f1916 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x98336a12 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x995c5ade mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xaaa15761 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb43db12b mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd4b9ca07 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd90d03cd mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe8dda881 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xef25a33b mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x04200e62 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0a970f5c mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0d5a2052 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0f337822 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1259356c mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x17b9c848 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x20ead00c mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x41641b02 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x49f54770 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4fe913c3 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x57d67b21 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x74a8dfcf mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7e3ff505 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x91471676 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x96316bc7 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9bd614e6 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa3121d3b mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa7398241 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa7d71419 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xad59f75b mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc3308afe mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc805ea6e mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcf9f3627 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd9965a85 mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe33285e2 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe5011dff mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf74e36fc mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x03880f43 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x08d3f306 i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x14132258 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1e8013f0 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x274f11f6 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3e6a01fa i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x43ab24c3 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6b57a4f3 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6f4fe3d2 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x85099300 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x87ade096 i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x966c60c6 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbd75bb8c i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc18354cc i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc5625e92 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc6f1ff75 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd1a0e3c9 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd5c79002 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xda670bcc i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe6d3d140 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf34c3f82 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf60e66a3 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/mfd/cros_ec 0x12ba492a cros_ec_remove +EXPORT_SYMBOL drivers/mfd/cros_ec 0x15792341 cros_ec_suspend +EXPORT_SYMBOL drivers/mfd/cros_ec 0x522bdb11 cros_ec_resume +EXPORT_SYMBOL drivers/mfd/cros_ec 0x7c2e0e23 cros_ec_prepare_tx +EXPORT_SYMBOL drivers/mfd/cros_ec 0xb24750b2 cros_ec_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x89863bcd pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xb378cf80 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0da6958e mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x40aaebb9 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x66d8323c mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x6797ee6f mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x6bfb47d1 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x6e2c9270 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8ea3febd mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa97a8fbf mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xab5793d6 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb6185160 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xd57b19d8 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xdb62d2df mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xdf7e577c mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/tps6105x 0x235c6627 tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps6105x 0x6432df75 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x97139103 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x05019936 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x542f229b ad_dpot_remove +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x7daa3738 altera_init +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x12cb25e1 ssc_request +EXPORT_SYMBOL drivers/misc/atmel-ssc 0xfc9269ac ssc_free +EXPORT_SYMBOL drivers/misc/c2port/core 0x2e1c9541 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0xaffc38df c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0xc9ec9720 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xe9b93d26 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x03ebbed9 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x194bd3ed tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x62dc9f64 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x645daa99 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x6b14bc53 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x70c8f2c3 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x7b82981a tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x8b78bea3 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xae473d1d tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xce818119 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xd60b50ec tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xdf5aad5b tifm_map_sg +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x2f386c25 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0xa7695d96 mmc_spi_put_pdata +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0xad4721d4 mmc_spi_get_pdata +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x0414642d cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x6fed54db cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xa8841582 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x678588c0 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x6a6b662c do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xaf177fc8 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xdac0f0e5 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x65935fd7 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x091625e3 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x192e6238 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x390c341e mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtd 0x9fd2fb3d mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/denali 0x1f730a3e denali_init +EXPORT_SYMBOL drivers/mtd/nand/denali 0xe8c2b8d0 denali_remove +EXPORT_SYMBOL drivers/mtd/nand/nand 0x057c8d95 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x8ac9d1f8 nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xa4f5c617 nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0xb23fafa2 nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0xb8cada9b nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0xe7c4556c nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x18241e8b nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x36005e8b nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xec681950 nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x485605f6 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xf4df16fe nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x57a31e57 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x494c756c onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xad6ce616 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xb7a49d20 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xd44df319 onenand_addr +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x14f8ef36 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1c3070df arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3bdb7956 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4eccfa13 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5d75083d arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8d3a2cd7 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xaf6356d3 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd37e0b39 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd39a15db arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xdab599a7 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x26e025b9 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x80ed0e5a com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xc5721503 com20020_found +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x0b49949c ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1ec5b457 ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x337ed813 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x41052681 ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x73055123 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x82496805 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa0b9954d NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xb5d4e435 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xcab0fdf3 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xf5cf0808 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x332ecb3c cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x1b8a60d5 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x1fe77fb7 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x275cf9e0 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x41cf4292 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5b198d58 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6bec556f t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6e6ddb10 dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7692ebfd t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7be001ee cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x914efa59 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9a307ecf cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa09583f1 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xcc75fa28 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd9960ded cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xda4f8114 t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xdb731476 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x018f9e17 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x05988a53 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x09d8fab0 cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x16f4fc4c cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x21d6b21b cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2963236b cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x29a240b6 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2bd9a105 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2effb78e cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x309c046e cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x32a15370 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x334500f5 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50704f91 cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5a89639e cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x73c0d0b8 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7686de5e cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x817d0405 cxgb4_enable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x88eadea1 cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x91e1d1c7 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x95082659 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa0a7110e cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa3035303 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xae8c1011 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc31163b1 cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcbdd9b72 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe55d66a9 cxgb4_disable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf3358ba2 cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xff4c31f8 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x0e712340 vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x2e2db88b vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x424bef0f vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x4f650da7 vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x9196d804 vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xb988821c enic_api_devcmd_proxy_by_index +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x00cd2c05 be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xbab62e22 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xd559cf78 be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0d63d863 mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1a7928fd mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b3055fc mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3baa3dc6 mlx4_set_stats_bitmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3dcf142b mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x44614416 mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e2ee6a3 mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x72b954bb mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x80d75bd0 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x83f55215 mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8bffa4ad mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92fdc8a6 mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa2a7ba17 mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xae45b967 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb5cbced7 mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbab5fbf8 mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc47884ce set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc7e089d9 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcfc37224 mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd46cda19 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd64bced5 mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe05ac4a3 mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0973c4a mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe5c30c6e mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe5cf94eb mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfc32c248 mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x06c59612 mlx5_core_dump_fill_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1427ed96 mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2cc481a5 mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x30b242ac mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3867f90e mlx5_cmd_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x499dfb7f mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4c765be0 mlx5_core_destroy_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4df082e9 mlx5_cmd_comp_handler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x585a246f mlx5_core_get_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x59f28450 mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5cfdcb31 mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ef7c9bb mlx5_dev_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7157028b mlx5_core_arm_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7cb2147b mlx5_cmd_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x83827773 mlx5_cmd_free_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8e24c755 mlx5_cmd_alloc_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9a8411d2 mlx5_core_query_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa0ce67dd mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa2b87dcf mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb626d79d mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb9f3525e mlx5_dev_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xca91bfea mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xccc598fa mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe2dad3d3 mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe80fff2a mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xed71b57d mlx5_core_create_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf455608e mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x204dbdba hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x3d0f63d4 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x76d05143 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xabf41695 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd715aaf9 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x0171c2d5 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1ddf749a sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6d6daad4 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xaa77adbd sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb3e9f0f6 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc1514759 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc5131b14 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdfefd75d irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe169a476 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xeb3ec178 sirdev_raw_read +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mdio 0xddc98749 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mii 0x418fab7b mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x4207b099 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x53934a4e generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x76c3a596 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x85e71af0 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xa364b76e mii_check_media +EXPORT_SYMBOL drivers/net/mii 0xbea0fce1 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0xdaf42ffe mii_check_link +EXPORT_SYMBOL drivers/net/ppp/pppox 0x71a26cb3 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0x92eefc16 pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xd2a0fcfd register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x20c2c667 sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x656d4428 team_options_unregister +EXPORT_SYMBOL drivers/net/team/team 0x725e6067 team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0x90f994da team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0xa20e5ada team_options_register +EXPORT_SYMBOL drivers/net/team/team 0xb66c71f0 team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0xb87e393e team_option_inst_set_change +EXPORT_SYMBOL drivers/net/team/team 0xd048765b team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0xf0822b68 team_mode_register +EXPORT_SYMBOL drivers/net/usb/usbnet 0x05113604 usbnet_manage_power +EXPORT_SYMBOL drivers/net/usb/usbnet 0x1daac3c8 usbnet_link_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0xc4c04676 usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/wan/hdlc 0x10318450 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2a4431a5 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x4e689e07 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5301d0b9 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x6374fba9 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8c5a28bc hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb43f06f3 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xcc69250a hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd4b7e30f detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xecaa0fb7 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf635763e unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x1c7a848c i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x488f9cb5 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xbe92b074 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xcd59c219 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x356f0e7b ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x443380a3 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x488f2a77 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4dacc8c6 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x53358ce3 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x5f2f6a8b dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x842b95c1 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x8d2b5e3b ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xba7cd09f ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xd3dcf980 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf2a8052e ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xfb08bdf4 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x2072f85f ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x457a2f8a ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8246be6c ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x895f9dc2 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8ea1dc35 ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa7f3be93 ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf096710 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xb174592e ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xd563126c ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0199ec46 ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x03aad5f1 ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x183429b7 ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1e5717b5 ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x27cf1694 ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x302f9301 ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4c6ddcb4 ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4e1380ee ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x5a35558a ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x6625685c ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x67dfb48d ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb636c59f ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xc7c3f6c0 ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xec0d92dc ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x81f21305 ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x8702b5bd ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x91fc76f5 ath9k_hw_wow_event_to_string +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0xaf1f13f0 ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x2edd96dc ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x98fb3e11 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc858e615 ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xedd46ce5 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x08ed840f ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09466b87 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ed77aa6 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x109aeeba ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x116f5611 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13bd97e6 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13f9d4ed ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17811ea0 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x18b6119d ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1ae96a5b ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b71a7de ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1e644b74 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x21155b37 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2630d05c ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x284a8275 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x28cb50a1 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x290cb585 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ceb03b0 ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e4c3bd1 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2f7b0f9b ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x318d5919 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x326404ad ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3343a4d0 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3538b54a ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3578d942 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x364bb6da ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x405ca6d3 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x440bb2c0 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x46578919 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x469b36ca ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x47283e34 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a6cbc94 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4df2f077 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4e62cd18 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f7c1f5d ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x51085a07 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x511a8910 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5131cafe ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5148eb00 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x57c878e3 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x59740c28 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a2a88e7 ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x65ce109d ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66ccddff ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66e23742 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6872caed ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a3a2415 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6bfda4c5 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e6d44e1 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6f8ad97b ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x74ef09ef ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x77244bd2 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f218c7a ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80a1cfac ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x84e79ebd ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x87a7c5b7 ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8b4fa165 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c4bc031 ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x935fa45e ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x939dd9fa ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9485a4b8 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x956c2ed2 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9606f817 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x96cc8a7c ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9729c55b ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x992bd811 ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9effebca ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9fa728c0 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa1a1284e ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa490e37e ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa76eabed ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa97d1b11 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaad81d8e ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb030f318 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbdf38d8b ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf7a3f96 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc03b5921 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2ed3c68 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcc106f5b ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xccb910f5 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf0a0ef2 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1a62bf5 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd332bfbf ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd670bdb7 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd6b248a ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdeecaa75 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe128cc9e ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2bd2e79 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe32ca3a2 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe451c667 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5458065 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe6dc3040 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7d43e9a ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8a33d62 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeaa08354 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf818e89b ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfaf18916 ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfbc45eaa ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/atmel 0xccafdc41 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xe5840161 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xef7dd45b atmel_open +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x7cc7df48 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x99a3a0bd brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x21ba4557 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2569f304 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x26be5fab brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2dc227f8 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x3689579d brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x37ed3086 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x44e7e06a brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x5009d754 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x85f55f8d brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x8e86c19c brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc6226944 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xcf119f7a brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xd09c2698 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xf118fc9c brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x058f77a7 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0684e8ad hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0e32fc34 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1c184d42 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x37d99cf2 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x40ddcc01 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x46b5cb81 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5c5beb1d hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x67097565 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6c095064 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x741f17e9 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8dd0e582 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x962c6196 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa24d7acc hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa7525eb8 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa8e1b9ad prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xaba0530f hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb154c04b hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc3c7b25f hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc4b4a906 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd4299ca8 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xda956b6b hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf1c39b02 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf1e73551 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfc82257d hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x057ae679 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0bc5d97c libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x11f63762 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x290d535d libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x30c9e55a libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x467484a1 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4b90c2b1 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x50de9155 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5469dc38 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x57adfd2c libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x691bad6b free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7d2996a5 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8e95ab48 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8f4efd28 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb428d9d9 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc2a51bbd libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd0c211d5 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe269a9b4 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xebd68bf3 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf184480e libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf6e859c1 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x00bb896f il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x023fcff3 il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x02f0ccf4 il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0419d507 il_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x06bb1fd4 il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x09bda0be il_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0dcd35f1 il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x11f8f077 il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1235eeeb il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x17b57eba il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1b67920f il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x20be2b44 il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x22ce7e96 il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2336cfb5 il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x26dc4b57 il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2b4ddc19 il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2b917741 il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2cdf6b1b il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2d1a7713 il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2f2358a4 il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x301a48e4 il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x30f0f570 il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3695d4db _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x38c1d3d5 il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x394e24ce il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3c57cd3f il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4002bd17 il_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4287d4d9 il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x43144e3e il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x439a86e0 il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x45cedbaa il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4aa39103 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4b28c1bd il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4c4aa57c il_set_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x51a3d994 il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5347c0f9 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x55290453 il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x564c6740 il_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x56fb12f3 il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x57fcc734 il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x66c67855 il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x695f91e4 il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6c7a6e12 il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6ce073e5 il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6f09dcac il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x72e85634 il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x73631614 il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7456facb il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7b1ee9c5 il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7c142b53 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7c4196bb il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x808b5745 il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x814a374b il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8269dad3 il_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x85b1da39 il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x866961c7 il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x87193c06 il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9051fd39 il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x924ad066 il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x92d2b0ce il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x94f36c76 il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x972b4088 il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9863bba6 il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9942d431 il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9c66e72a il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa331aba3 il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa4e0782f il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xabfc5298 il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xad7f5b2b il_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb0caa76b il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb3077d96 il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb48a7c52 il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb7bd33ff il_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb99807c1 il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xba1253c8 il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbbf7a7b1 il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbdd4814f il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc39cf12c il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc4838ce7 il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc556ecb2 il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc64b4c31 il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc81f2a10 il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc93940fa il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcfa5d2e5 _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd1378c40 il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd572f04c il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd800791a il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd8f80825 il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd9c3b1e6 il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdbb8fe5a il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdbdfd15f il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe1080c7a il_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe435493a il_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe653a5ec il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xeb57ab3d il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf0cd6a4d il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf1243c64 il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf421e410 il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf501278b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf7ebf050 il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf985a5b0 il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfbd0681b il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfdae8a01 il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfe20800f il_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x08dd8699 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0c50fa2b __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x1ecc5465 __tracepoint_iwlwifi_err +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x2f7b7e55 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x3b9d00d6 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x675bcb86 __tracepoint_iwlwifi_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x779dd6f5 __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x85c1bb84 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x8de37664 __tracepoint_iwlwifi_dbg +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x954eb7a7 __tracepoint_iwlwifi_crit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x963a6f8a __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xb8f7026f __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xe2dcc8de __tracepoint_iwlwifi_warn +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xf9ec6bdd __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0381a687 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2031e611 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4c0f1d4a orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4cffbc69 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4d8f7bf7 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4e475b7f orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5dea5bf1 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x61f66d48 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x663b0ab3 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x67ba0115 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7e54a744 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x812bbb56 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x834b0cf3 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbf461a15 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd8c0ced5 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xec56e076 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf97c7af5 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/btcoexist/btcoexist 0xae1a591e rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0b00ace9 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0ec0229d rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x102cf52b rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x16019f73 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1a10df2f _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x22ef8f4d _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x263244ce rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2fe2b12b rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x36399813 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x371df8ae rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3ba166c7 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3bb7ca27 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x413cd6ee rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x414b9445 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x43cab37f rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x497246a2 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4a098db9 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4b8258fd _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4ef8d566 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5a952905 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5eb88e46 _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x64efe5ea rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x663c463a rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7b080a2a rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7b61a199 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7fac6a6f rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7fdb8d8e _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x82c58b22 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x86a5e1cf rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x921be5dd rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x998ba921 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9d975a0f _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3e18407 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc2a193dc rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc435c6bf rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc88b2112 rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd18ae4c1 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd2a77923 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xee0ee57b _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf35d2f5b _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfeb3f3c0 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x1918e579 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x3ef4bad9 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x60f763a1 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0xc067f69a rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x0749203a rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xd4c7446d rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xea0b93e7 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xecdc655d rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x07a88e1d rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1ef973c9 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x207fbb70 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3a49508a rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x40788c42 rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x4bc544d2 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x50a6c522 rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x5923184b rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x6c5688bc efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79188a02 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7b28c4a4 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x9c4f5e38 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa0df6765 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xada9d1c8 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe4db0460 rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe5a37e26 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe8a32b51 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xee058bc4 rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xef3420a7 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf5197790 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf702be3e rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfbc50dfe rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x0782832e wlcore_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x7bda2857 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xaacae759 wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xca0703ca wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/nfc/microread/microread 0x9fc24ca1 microread_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0xfc43be78 microread_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x2b88b48f pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x3f9ff5eb pn544_hci_remove +EXPORT_SYMBOL drivers/parport/parport 0x0a09d526 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x105c5caa parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x1f231264 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x216d020f parport_read +EXPORT_SYMBOL drivers/parport/parport 0x2e8c7560 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x34c2c51c parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x34f93c24 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x352979cc parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x3d670b5b parport_release +EXPORT_SYMBOL drivers/parport/parport 0x4227a809 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x42858fb6 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x44bfa97a parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x636fe32a parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x6b8c2f75 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x6e79ef30 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x6e7f3804 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x79af6782 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x7c96c760 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x7f629641 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x9e8c538b parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xa345abc5 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xab2e1804 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xadd6ece5 parport_write +EXPORT_SYMBOL drivers/parport/parport 0xb08d6a71 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xb160a878 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xb7f79360 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xcb2bdd45 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xd07aef04 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xdb2215de parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xef5fab64 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport_pc 0x1a4be70b parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xa4a5524c parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x01dc1e31 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x153de2bd pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x17ec5f37 pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x22716d59 __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x22c8a231 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2fec4dfe pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x33f4c932 pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x48a8444c pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x635080c8 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x86620b35 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x91b95008 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9217f4a1 pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9e3641e7 pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb676408a pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc1194105 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd4bf8e4b pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe5988b45 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf34d10e2 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xff5c0de5 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x08ced9d8 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0910b632 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2b30134c pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x34168d6e pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x6aa71087 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x903bd869 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9bc0ee60 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe1d6bd2b pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf1e4edd2 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf31c8ca6 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf74996a1 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x020bebe7 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x4d5dcf52 pccard_static_ops +EXPORT_SYMBOL drivers/pps/pps_core 0x194ef48f pps_lookup_dev +EXPORT_SYMBOL drivers/pps/pps_core 0x21c71f3d pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0x65d66f28 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0xaec292cd pps_event +EXPORT_SYMBOL drivers/ptp/ptp 0x27cceb71 ptp_clock_event +EXPORT_SYMBOL drivers/ptp/ptp 0x4e706592 ptp_clock_register +EXPORT_SYMBOL drivers/ptp/ptp 0xc4050630 ptp_clock_index +EXPORT_SYMBOL drivers/ptp/ptp 0xf24b7d1d ptp_clock_unregister +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x21eb36fd rproc_alloc +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x4c7f1eb3 rproc_del +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x55bc7425 rproc_boot +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x616f51ee rproc_vq_interrupt +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x889bf997 rproc_shutdown +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x9f218fcf rproc_da_to_va +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xa68a1a85 rproc_report_crash +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xee1fe0c3 rproc_put +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xf4ee4f01 rproc_add +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x06ee9b49 fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x122842e5 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1833ff35 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x233fae0b fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x657044c0 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7cec30d7 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x84ad52d4 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb53cb4d5 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc5a19177 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd15c3d71 fcoe_ctlr_destroy_store +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd9eca8bc fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf71855ce fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0008e9db fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x02e4804a fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x066135e3 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x122942bc fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1652e359 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x16eb08f9 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c048488 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x20945a67 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x233b3d57 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x26d17254 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2e85fe5a fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2ee11b5d fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x461e4005 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x48cc00be fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4903f296 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x499fd6d0 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c5eee93 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4cfa0e0c fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4d31924c fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x55854ac6 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5b6c133a fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5c4cc983 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x65081f74 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x68a19439 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x699c5720 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x69c48962 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6f44025f fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x76c24bdb fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x78f2efca fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7cd0a1f0 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x83616ab3 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9bfbbde6 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa89ab31d fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa9db2629 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb1d4505d fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb8666ca0 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb93bc7a6 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xba0cbc06 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbadd500b fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbfa1d427 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc2a40b60 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc5a18ed6 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc753d87e fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc94f59b1 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcde62463 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd6119c72 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe1f39fbb fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe2f58a7b fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe6ef86c6 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc471e52 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfd63a211 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfece194f fc_disc_init +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x00a90e17 sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x41efb306 sas_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x9c31e7c8 sas_wait_eh +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xb58a0771 sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xe7248bc7 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x00d7fd32 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x02023074 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0da6045a osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0e89f3e0 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1bc435d9 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1f531761 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2e6dde3b osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x395a6d73 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4d31ab5b osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x50b552fd osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5d66b152 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x68dfd252 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6bf31d0d osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x75b19901 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x820e6c88 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x82423cd7 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x84b88731 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x86f39615 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9546afd5 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x99307b1f osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9b27d7fb osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa153e56d osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb23f6525 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb63778e6 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbd7a442e osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc8ab0823 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc8eddd39 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xca073948 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd061d301 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd21d5c22 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xddd03eea osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe1583252 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe63537d2 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe6f32bfd osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xebd6c480 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xec11f774 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/osd 0x25d28502 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x720ac69a osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xa0dae105 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0xe7bee668 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xf73ef142 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0xfab0e8ce osduld_register_test +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x09d070db qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x0a390183 qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x17d16069 qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x4817d0f1 qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x510f6d91 qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x55de6ee8 qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x56d4f37d qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x83486578 qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xbb237ff2 qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xc71cb403 qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xf2dc96b2 qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x2dd8b75f qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5753fbe5 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x9de372c6 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb0060d28 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xcdb7d3fd qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xd9697e2d qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0xa11cd624 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xd5eea567 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xe9566c18 raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0656d895 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x091c6b3e scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0a75d5c5 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x189d0506 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4f83766a fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5a74aded fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x60cce6dc fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x88aeb49d fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb085bae8 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbbce30d0 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd2e4453d fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xeedc53f8 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf8b1b549 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00ead62d sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x088bb8d2 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x08ad52da sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x10672e8b sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1a1022a8 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x222e9b4d sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2558ee63 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3e609861 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4ecc49cd sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x525e519f sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5789d229 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x678a6efb sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x702e1b37 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x70acd18f sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x770a0c85 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x88419420 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8fd26acb sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9178326e scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9223b46d sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x95ec6000 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9f845408 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xab9304fb sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xba412f71 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc70cce33 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdb8e34ec sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf04017a2 sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfc405202 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfed6481b sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3768fc87 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x93200c06 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x9f6a2fc4 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xb3f07192 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xbcdb42ca spi_dv_device +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x57a76f68 ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x7983dd11 ufshcd_runtime_idle +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0xe9ab9841 ufshcd_runtime_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x0fa2f9ce ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x1f1422a4 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x3384d8a4 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x429f40d5 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x4e0d513f ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x510e0c1e ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x56ecc28b ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x61c08168 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x64147ba3 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x85135a82 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x936b89c1 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xa186a14b ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0xb55162fb ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xce5f911d ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd78a30ac ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xdaa07823 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xdb4c3e70 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0xe2740340 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xe73825ea ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xf7cc44bf ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xf8992e4f ssb_dma_translation +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0x6b34258d fwtty_port_put +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0x9c5162cc fwtty_port_get +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x2838ce50 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x79af54e8 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xcddc694d ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xdf86f146 ade7854_remove +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0264d470 lnet_extract_iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0363b57a lnet_copy_iov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x0bce7eef lnet_counters_get +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1366b7ac LNetSetLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x19670622 LNetNIInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1b191752 lnet_msgtyp2str +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1e336d5f lnet_parse +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x1fe16fd5 LNetGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x204b8151 lnet_counters_reset +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x24428da0 lnet_register_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2aa9953d lnet_cpt_of_nid +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x2ac93e90 lnet_connect_console_error +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x33202a6c LNetGetId +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3c779ee0 LNetPut +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x3f4f5b46 LNetNIFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x41cdb24a lnet_unregister_lnd +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x473ad33b LNetDist +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x4962e9e8 lnet_set_reply_msg_len +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5811a721 LNetInit +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x58a1ca89 LNetMDUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x5fee352c lnet_acceptor_timeout +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x61096499 lnet_notify +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x61f784b2 LNetClearLazyPortal +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x64cdea3a LNetCtl +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x654ed23c lnet_net2ni +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x68532ebf lnet_copy_iov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x68ec386b lnet_finalize +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x6f7be171 LNetEQGet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x722c76e5 LNetMDAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x72693a63 the_lnet +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x743d24ff lnet_copy_kiov2iov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x7d59a7fe LNetMEInsert +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x854ab844 LNetEQWait +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8a3064f2 LNetSetAsync +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x8d4a84ca lnet_copy_kiov2kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x9868b58f lnet_connect +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x9de986d3 LNetEQAlloc +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0x9f161de0 lnet_kiov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa286a020 lnet_extract_kiov +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa3d61f8d lnet_iov_nob +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa78b6326 lnet_set_ip_niaddr +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xa8c2760b LNetFini +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa414970 LNetMEUnlink +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xaa9b477e LNetMDBind +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xb75f7953 LNetEQFree +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xba5566d2 lnet_acceptor_port +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xbf0760a2 LNetMEAttach +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xd52889b8 lnet_create_reply_msg +EXPORT_SYMBOL drivers/staging/lustre/lnet/lnet/lnet 0xf1b316bf LNetSnprintHandle +EXPORT_SYMBOL drivers/staging/lustre/lnet/selftest/lnet_selftest 0x078db139 lstcon_ioctl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x1c4bb5f9 LU_OBF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x2050a85a seq_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x36264bea seq_client_get_seq +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x363f60a2 seq_client_alloc_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x375e6f8d LUSTRE_BFL_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x4073fcbd client_fid_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0x5236bb81 client_fid_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xae61cff5 LU_DOT_LUSTRE_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xb1c36baf seq_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xc997a02f LUSTRE_SEQ_SPACE_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xecee2727 LUSTRE_SEQ_ZERO_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/fid/fid 0xedabcc71 seq_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x036e4757 fld_client_proc_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x098ce74d fld_client_add_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x2b3d4f1f fld_client_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x57ef6f35 fld_client_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x59441824 fld_client_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0x77ab598b fld_client_del_target +EXPORT_SYMBOL drivers/staging/lustre/lustre/fld/fld 0xd7671fed fld_client_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x000c507f libcfs_debug_dumplog +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x01db5172 cfs_percpt_atomic_summary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x03387ca6 cfs_curproc_groups_nr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x03c7ae5b cfs_percpt_atomic_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x04d3ce6a lbug_with_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x06401e01 cfs_hash_is_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x069f9bb2 cfs_wi_schedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x06b4f415 cfs_cpt_set_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x08917712 cfs_hash_for_each_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x08ada613 libcfs_console_backoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0aae8493 cfs_cpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0b4b1546 libcfs_lnd2modname +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0de6c369 cfs_cap_lower +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0f5eff79 cfs_percpt_number +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x0f7fcd44 cfs_cpt_set_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x123b6908 cfs_hash_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12426266 libcfs_run_lbug_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x12c54b77 cfs_hash_findadd_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x17ac7833 libcfs_deregister_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1a60d439 cfs_parse_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1c97b722 cfs_cpt_set_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1d41c4c0 cfs_hash_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1d5a3928 cfs_timer_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x1e8cdb47 cfs_race_waitq +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x20ef56fc cfs_cpt_set_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x21568600 cfs_cpt_of_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2663147a __cfs_fail_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2771fd3d cfs_cpt_unset_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x277e62bd cfs_hash_for_each_empty +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x27b6d3ba cfs_ip_addr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x29aafd0c cfs_hash_hlist_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x29be1607 cfs_crypto_hash_update_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2a641ef9 cfs_hash_dual_bd_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2b1e0458 cfs_get_environ +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2ce90391 libcfs_sock_setbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2dbe54b2 cfs_trimwhite +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2fb7eae8 cfs_hash_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x2fe97a46 cfs_wi_sched_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x30986343 cfs_range_expr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x31fc5082 cfs_crypto_hash_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x32ae7fbc cfs_cpt_unset_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x361e82d4 cfs_firststr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x377f93fb cfs_srand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3848f4de cfs_cpt_unset_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x389ca502 libcfs_debug_mb +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x39385fd2 cfs_percpt_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x39fdcd2b libcfs_debug_set_level +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3c1285bd libcfs_subsystem_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3d55d218 cfs_hash_debug_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3d5e6098 cfs_race_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3e5e7727 cfs_hash_rehash_cancel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ea730c0 cfs_gettok +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x3ef0d90c libcfs_kkuc_group_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4087e2b4 cfs_hash_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x411db754 cfs_crypto_hash_final +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x41ab33a1 libcfs_ipif_free_enumeration +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x42aad2b8 cfs_hash_debug_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44839bbb cfs_rand +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x44f07cfc cfs_pause +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x468bace1 cfs_hash_rehash_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x47fdb4d1 cfs_timer_is_armed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x48f163c6 libcfs_str2anynid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4a99af72 cfs_clear_sigpending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4b96ab4b libcfs_sock_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4b982291 cfs_hash_bd_peek_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x4f1f2fa5 cfs_crypto_hash_digest +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x50345570 libcfs_str2net +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5051b6d2 portal_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x509d38b0 libcfs_net2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x53e92adb cfs_cpt_table_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x54fd9a71 cfs_percpt_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x58a7ee00 libcfs_catastrophe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5946ec2b cfs_percpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5a892b2b cfs_percpt_lock_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5b20921a cfs_hash_for_each_nolock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5c013b81 cfs_expr_list_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d3be65a cfs_crypto_adler32_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5d73c3e3 cfs_expr_list_free_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x5dce9e80 libcfs_lnd2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62289d65 cfs_array_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x62f56738 upcall_cache_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x63b4967a cfs_hash_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x64685fef libcfs_console_min_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6564c55b libcfs_console_max_delay +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x65dd9f0c libcfs_run_upcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x66136d2d cfs_timer_arm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x67398404 cfs_wi_sched_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x677a5bd2 cfs_cpt_online +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6a59b79b cfs_cpt_unset_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c2c5566 libcfs_sock_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c4cadc8 cfs_hash_for_each +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6c905b5f libcfs_watchdog_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6cd5e120 libcfs_sock_listen +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6dfa9ea1 cfs_crypto_adler32_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6e6af71c current_is_32bit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x6f928e1b libcfs_debug_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7190502f upcall_cache_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x71f662a3 libcfs_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x72f4e5f9 cfs_hash_bd_move_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x75161168 upcall_cache_flush_idle +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7562cd14 cfs_hash_del_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x771695b1 cfs_hash_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x785b7372 cfs_hash_dual_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7a3d49ae cfs_expr_list_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7a47b94d cfs_hash_size_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7b0b748a cfs_ip_addr_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c73bc4b cfs_hash_rehash +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7c7986cf waitq_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7e6f6485 cfs_ip_addr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x7fda989d cfs_fail_loc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8151c3aa cfs_cap_raised +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x83d795e4 cfs_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x841679dd upcall_cache_get_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x857aaea7 libcfs_register_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x87f3bb87 cfs_hash_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8840f591 cfs_block_allsigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8ab81255 cfs_cpt_nodemask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8c85e4e6 cfs_crypto_hash_speed +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f12bb52 libcfs_log_goto +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x8f45f10d cfs_init_timer +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x91504e8b libcfs_kmemory +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x922eb513 libcfs_sock_getaddr +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x92e7c30b cfs_cpt_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x940ed192 libcfs_stack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x949221dc cfs_hash_cond_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x95620e8c cfs_wi_deschedule +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9731ca1f libcfs_sock_getbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x97b0b9bc cfs_enter_debugger +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9879b229 cfs_get_random_bytes +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9c6d26c0 cfs_cpt_table_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9e420643 cfs_restore_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9e8fb7ad cfs_percpt_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0x9f82f712 cfs_trace_copyout_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa1cbf250 upcall_cache_flush_all +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa2b68b2a cfs_array_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa6b9dee6 libcfs_kkuc_group_rem +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa6ff1e5c cfs_cpt_spread_node +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa8a489ea cfs_cpt_table_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9088531 cfs_expr_list_values +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9dc74e2 cfs_trace_copyin_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xa9eae690 cfs_str2mask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xab887583 init_waitqueue_entry_current +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xad019238 cfs_str2num_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb00dfd91 cfs_hash_dual_bd_findadd_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xb134f9c3 libcfs_sock_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbab577e8 cfs_hash_for_each_safe +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb972619 proc_call_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbb9cb508 cfs_curproc_cap_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbd5d492e cfs_timer_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xbf7a37f1 cfs_signal_pending +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc0ea7fc0 cfs_expr_list_parse +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc14d1f86 libcfs_kkuc_group_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc1708189 cfs_hash_dual_bd_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc1a4f1b0 cfs_percpt_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc1b20836 cfs_hash_add_unique +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2911d96 cfs_expr_list_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc2dfd791 libcfs_console_ratelimit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc39fd2f9 libcfs_panic_on_lbug +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc3eb614e libcfs_ipif_query +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc47433a6 cfs_capable +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc49b1c62 cfs_percpt_atomic_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc4dd8304 libcfs_sock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc5f8bc73 libcfs_kkuc_msg_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc8530cf6 libcfs_sock_abort_accept +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xc9b78bb4 upcall_cache_downcall +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcb385db9 libcfs_debug_binary +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcb6ff89a cfs_cpt_table +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcbab8493 schedule_timeout_and_set_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcc20e694 libcfs_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xccc45639 cfs_free_nidlist +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcd38904c cfs_wi_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xce1a88f2 libcfs_arch_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf61bacb __cfs_fail_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xcf678304 cfs_hash_bd_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd0aa642a cfs_hash_rehash_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd2965f33 cfs_hash_bd_del_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd48d8f72 cfs_hash_dual_bd_lookup_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd6a52be3 libcfs_printk +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd6f1fc60 cfs_strncasecmp +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd7bbf963 cfs_hash_dual_bd_finddel_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd7c4f765 add_wait_queue_exclusive_head +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xd96f406d cfs_cap_raise +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xde17bb8d libcfs_isknown_lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xde9c00c4 cfs_cpt_weight +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdf2789c0 cfs_curproc_cap_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdfecb98d cfs_block_sigs +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xdffc951d cfs_timer_disarm +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe366efe9 libcfs_sock_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe3bf6897 cfs_percpt_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe6555032 libcfs_ipif_enumerate +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe75794eb cfs_cpt_bind +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe7b54314 libcfs_arch_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xe94553b9 upcall_cache_flush_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xea411f63 cfs_block_sigsinv +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xec1f56d5 libcfs_str2nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeceac781 cfs_fail_val +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xedf3a25a cfs_timer_deadline +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xeed48ba7 cfs_hash_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xefbf6d86 upcall_cache_put_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf440bb38 libcfs_kkuc_group_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf5e4a175 cfs_hash_bd_add_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8a8644b libcfs_id2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf8efb8c5 waitq_timedwait +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xf94025d1 libcfs_str2lnd +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfa4531a2 cfs_cpt_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfacb8667 cfs_hash_getref +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfd493ddf cfs_cpt_cpumask +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xfe565fa9 cfs_crypto_hash_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xff0f98a6 libcfs_debug_vmsg2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/libcfs/libcfs 0xffcad24b cfs_percpt_lock_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x00345246 ll_osscapa_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x025879d4 ll_direct_rw_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0x86173623 ll_stats_ops_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xcd3cde92 ll_iocontrol_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/llite/lustre 0xed43b321 ll_iocontrol_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x13696110 lov_read_and_clear_async_rc +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x21a66d29 lov_lsm_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x27095531 lov_stripe_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x523d21a3 lov_lsm_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0x62538406 lov_device_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/lov/lov 0xa288d560 lov_stripe_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x24e1671d lprocfs_counter_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x3bcbdc4b lprocfs_stats_alloc_one +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x4d8d6dfa lprocfs_counter_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x5081854a pop_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x673198c7 push_ctxt +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x7b1eb7a8 fsfilt_get_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x8553b369 obd_memory +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0x8bb19c2d fsfilt_put_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xb4f8ee63 lprocfs_read_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xc3af8189 fsfilt_unregister_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xcdc9dff1 fsfilt_register_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xd7e2fc08 lustre_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/lvfs/lvfs 0xfefaea39 l_dentry_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x14a47f31 it_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0x9c22b84f it_open_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xb57d8447 it_set_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mdc/mdc 0xf46a886f it_clear_disposition +EXPORT_SYMBOL drivers/staging/lustre/lustre/mgc/mgc 0xdc287f95 mgc_fsname2resid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x00cb6ed6 cl_page_vmpage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0100f6af class_disconnect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0148ebad dt_txn_hook_commit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x01665e34 class_parse_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x035852d0 lustre_swab_llog_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x047f5600 cl_2queue_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x04d76aac cl_io_rw_advance +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x04e3e895 llog_declare_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05729e36 dt_store_resolve +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0572a2fc cl_io_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x057f6d4b class_find_old_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x05acdfc1 cl_page_list_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0638de05 cl_page_list_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x069b6cfb cl_req_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x072e0407 lustre_in_group_p +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x079f6c36 cl_lock_descr_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07aa68bb lustre_swab_lustre_cfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x07d306c1 cl_lock_signal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0836daca lprocfs_register_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x083942ff class_del_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x084c0848 cl_req_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0be3e514 lprocfs_free_per_client_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0e05b94b cl_page_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0e38c830 dt_index_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0e99477c llog_cat_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0eaefb29 obd_llog_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0eb4fd04 cl_lock_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0ec7309a dt_txn_callback_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0ef7c54c lu_context_key_quiesce_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0f2a99a2 class_conn2export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fcd0c9e cl_page_list_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0fe91547 obdo_to_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x0ff5fa34 llog_ioctl +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x100db862 dt_record_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1147c555 llog_cat_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x11495519 lprocfs_write_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x117f74a8 cl_sync_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x123e5b5b dt_directory_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x12822ddd dt_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x12ec5bc4 obd_export_nid2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x13909eeb llog_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x13c72429 capa_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1491dc30 lu_context_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x155f003f dt_txn_callback_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x160368d4 dt_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x167e7d95 cl_lock_modify +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x16e2c706 llog_cat_init_and_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x17260880 obdo_cpy_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1736f35b class_connected_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x18db1b55 obdo_from_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x19a2b6fb llog_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1a5af7c7 lu_context_key_register_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1b15d811 obdo_refresh_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1b40fd2a cl_req_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1bf029bf cl_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1c0dd0e3 obdo_from_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1c99b69c lprocfs_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1ca3cd27 cl_type_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1cab3a8e cl_io_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1d359574 cl_page_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1d995b4d cl_lock_disclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1da3006b cl_io_lock_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1e4d1f7c lprocfs_rd_connect_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1f4ad5df cl_page_list_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1f90af86 cl_lock_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x1faa4d0d lu_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x211e36b3 lustre_idmap_lookup_uid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2150521e llog_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x21e195f5 class_register_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x221826f1 class_parse_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x235e6262 llog_thread_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x24110666 cl_io_loop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2451a672 cl_page_is_under_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x24f9d165 cl_lock_enclosure +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2547efae lustre_uuid_to_peer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x263a3e23 cl_page_delete +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x26cb02d3 class_new_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x275cdc7a cl_env_reexit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x28e42e22 class_exp2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2905ad26 cl_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x29528620 lprocfs_obd_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x297cf5e0 class_handle2object +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2a2b1af8 class_search_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2aafe6a1 class_fail_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ab3f2c4 lu_env_refill_by_tags +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ae1cd79 kuc_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2b6de833 cl_lock_hold_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2ba4c730 lu_object_assign_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2c51dfe6 cl_enqueue_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2d2339a4 cl_req_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2eb228dc cl_page_find_sub +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2f720fb2 lprocfs_exp_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2fc0e964 cl_lock_is_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x2feb1f40 cl_page_list_move +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x30b9a5fe lu_site_init_finish +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3103ebc9 lprocfs_add_simple +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x314ae1db dt_index_walk +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x327a4374 lprocfs_alloc_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x32ba7a38 dt_quota_slv_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3323e10d cl_lock_intransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x339982a0 lprocfs_rd_u64 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x33c151e3 lu_buf_realloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x33d4624a lu_site_purge +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x34ef8e0c class_import_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x35906a87 lprocfs_rd_numrefs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3669422c class_incref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3771c6bf cl_io_iter_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x37ed6e4b at_early_margin +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38b69f4f lprocfs_rd_num_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38c8e0b6 lprocfs_obd_rd_max_pages_per_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x38fb0c90 class_match_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x39c8580f class_handle_hash_back +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3ace673c lprocfs_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3b6dca81 cl_page_list_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3b9ee3aa lprocfs_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3c017285 llog_cat_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3da2aa39 lprocfs_alloc_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x3eab7bfe LU_BUF_NULL +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x404bd7a7 class_handle_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x42a41e90 cl_page_unassume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4339adc4 class_process_proc_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x441bb3be cl_lock_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x44e41abb lustre_posix_acl_xattr_filter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x451073b5 cl_page_is_owned +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4523d2bf cl_page_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x452f559a lu_buf_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x45d12df8 lu_device_type_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x474ed5bd lustre_swab_ll_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x478096c2 cl_object_attr_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x478384d7 lu_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47b35f7d statfs_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x47f7c9a2 class_export_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4821fec7 cl_lock_closure_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4868b55a class_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x48a7107d cl_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x492cc6ce llog_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x494cfb52 lustre_acl_xattr_merge2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x494d99c8 cl_conf_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49a0f6ea lustre_posix_acl_xattr_2ext +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x49ad320c llog_declare_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4a9c9277 lprocfs_rd_timeouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ac4e3d7 cl_object_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ac58713 obd_connect_flags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4ad9fe78 lprocfs_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4b104c6b cl_page_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4b2ef2e0 lu_dev_del_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4bf356ca lustre_idmap_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c1034bb lprocfs_rd_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c190aad lprocfs_find_named_value +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c2f2102 dt_version_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4c4c700b obd_alloc_fail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d13458b kuc_len +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4d9fe4ac cl_use_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4db6fa00 lu_device_type_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4de36f3c lustre_idmap_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x4f0088c5 cl_unuse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50c7fc36 ptlrpc_put_connection_superhack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x50f04c1f lprocfs_exp_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x52e13de4 cat_cancel_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x539e38f3 lprocfs_rd_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54885f87 ldlm_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54a2d992 cl_io_submit_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x54c59b66 llog_obd_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x551ad724 cl_2queue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5574b7a9 lu_object_put_nocache +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x558bec27 obd_ioctl_getdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x55a64983 llog_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x56302fc4 class_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x564e9d44 init_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x56dbfbab cl_lock_user_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x570d09ae lustre_swab_lu_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x57863185 cl_io_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x582b013d dt_quota_glb_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x587112df class_config_dump_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x588940ae cl_queue_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x589e64e5 cl_2queue_discard +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x590bc902 lu_context_key_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5953bbeb cl_sync_io_note +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x599e1a8b lu_context_enter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a20d896 obd_memory_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5a3e05ae lu_object_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5bc022c5 lprocfs_dt_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5c9f1aec cl_env_nested_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d34ae0d cl_lock_mode_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d4ff6c7 dt_try_as_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5d89cb7d lu_object_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5e93341f lprocfs_oh_sum +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5ed188a9 lprocfs_add_symlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5eff89cb local_index_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5f94f91d lu_object_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5fbdf23a dt_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x5fe97b73 block_debug_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6095c587 class_name2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x60b15fb3 cl_2queue_init_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x613e983d cl_lock_state_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x61e14d6a cl_io_rw_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x624ffe24 lprocfs_counter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6295d3fb llog_cat_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x63168e24 lprocfs_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631a518d mea_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x631fd7b9 lustre_ext_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x648a7f66 lprocfs_free_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6594b581 cl_lock_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x65b44d7f class_unlink_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x664c1c9c class_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x66785c43 cl_index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x66c788dd cl_offset +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6734adbd lprocfs_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x675244fa dt_otable_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x677fd7f9 proc_lustre_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67977b42 lprocfs_remove_proc_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67a90622 la_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67dc223a lprocfs_remove +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x67f9d409 lu_context_key_degister +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6890d175 lustre_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x695b21d9 dt_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x699c9457 cl_lock_weigh +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x69c42114 at_min +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a2bbba7 cl_io_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a32b248 lu_site_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6a9362a8 lprocfs_init_mps_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6ac72c45 cl_page_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6bd44334 lprocfs_seq_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6d1a85c5 obd_export_evict_by_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6e2acc69 lprocfs_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6ea6e64d cl_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f5c2bba obdo_to_inode +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x6f7a9df4 lu_context_key_revive_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x70094ff1 obd_llog_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x708f988a cl_page_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7110e491 lustre_common_put_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x71eeb654 cl_page_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x72ddee4c obdo_le_to_cpu +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x73605fc7 cl_io_sub_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7384b2c1 cl_page_own_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x742559b1 class_unregister_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x74c9e120 dt_record_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7519f618 lprocfs_init_ldlm_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x752f71a8 class_get_profile +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x756a77f3 class_parse_nid_quiet +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x758cae14 lprocfs_rd_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x75d8beb8 cl_page_clip +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x76595724 cl_site_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7741d3f3 lprocfs_at_hist_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x77d2089a class_name2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7802fcd7 lustre_swab_llogd_conn_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x789796a1 obd_zombie_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x79629149 cl_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7a19c8f8 cl_page_list_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b4fc57b at_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7b5949e1 lu_context_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7bc12d2a lprocfs_init_ops_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7bd7bdb1 lu_object_locate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7ca38cdf llog_cat_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7d5317d3 local_object_unlink +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7e04334d llog_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7e4e38b2 cl_lock_user_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7edcafa0 cl_env_reenter +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7f7d7cd9 lu_buf_check_and_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fad7291 raw_name2idx +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fb9168b lu_object_find_slice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x7fe5561a obd_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x800c5885 obd_export_evict_by_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8031efb8 lprocfs_dt_rd_kbytestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x806cc497 class_add_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x80899c13 cl_object_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8091c687 lprocfs_wr_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x80d8e045 llog_cancel_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x81742d89 obd_ioctl_popdata +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x831f656c class_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8465ea53 class_conn2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8489f086 obd_alloc_fail_rate +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x849e5385 obd_update_maxusage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x849f9939 cl_io_lock_alloc_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8503c454 lu_buf_check_and_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x85fa33bd cl_object_has_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x86488f92 cl_lock_closure_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x86693c9a __llog_ctxt_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x877769ff cl_lock_mutex_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x877e0679 dt_txn_hook_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x88b87068 lprocfs_stats_collect +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x88f63314 cl_req_page_done +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x891054f1 lprocfs_clear_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8913bfe4 cl_2queue_assume +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x891fd5e8 lu_object_add_top +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8a349670 lu_object_find_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8aa2c358 lprocfs_dt_rd_blksize +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b5f4057 lu_context_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8b73f358 cl_env_nested_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8ba6e479 lustre_swab_lu_seq_range +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8be1229e class_config_parse_llog +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d658ed0 capa_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8d95621d cl_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8dfe819b cl_pages_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8e10e6d6 server_name2svname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f67314c obd_dump_on_eviction +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f6ebef5 cl_page_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f726caa lprocfs_wr_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x8f9d5c47 dt_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x903451f1 lu_context_key_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x91a88aef llog_init_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x91bd8990 llog_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92bf57ea local_file_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x92e58479 obd_dump_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x932229d6 class_import_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x934818bd cl_object_attr_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93859814 lprocfs_oh_tally +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93b46468 lu_session_tags_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93d8192d lu_context_exit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x93e8f60c dump_lniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x942661c1 lu_object_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x94884b1a cl_page_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9505c895 lustre_idmap_lookup_gid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9512d507 lustre_acl_xattr_merge2posix +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x955f5220 ldlm_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95735c6c at_extra +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x95ec998a lustre_groups_sort +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9767adce class_uuid2dev +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x97d03783 at_history +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9801dc3c cl_lock_ext_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9834cb9f local_oid_storage_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x99b598ca lu_env_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9a312a81 cl_lock_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9af906c7 cl_2queue_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9b1ed9d8 obd_jobid_var +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9ce90ca8 llog_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9d2b3b01 cl_req_page_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9d78adc4 cl_env_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9d7b72e5 cl_page_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9dbb17b6 lprocfs_dt_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9eedb4de lu_context_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0x9f492ebc cl_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa041a9d2 lu_context_key_revive +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa04fa2fd cl_lock_discard_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa0744488 cl_env_unplant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa1559a56 lu_cdebug_printer +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa1f192f8 lu_env_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa21c5ea1 obdo_from_la +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa21e0dd1 class_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa2544032 cl_env_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa29a1e13 obd_exports_barrier +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa2b05652 lu_env_refill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa2c7e9ff llog_osd_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa30d1d27 dt_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa3dfb8db lu_device_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa45c4257 cl_lock_hold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa48c4a30 lustre_idmap_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa513f7e4 lustre_groups_from_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5fb234f lprocfs_write_frac_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa5fd4a0a class_export_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa674c241 kuc_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa855dae7 cl_env_peek +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xa97e4b14 dt_declare_version_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa20352e class_disconnect_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa21b7a0 lustre_register_quota_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaa5c9cf8 class_num2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaad309cc cl_page_list_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xab0b6c31 cl_io_submit_rw +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xab48953a cl_io_iter_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabb74d99 llog_exist +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xabf45922 capa_decrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac7f1596 kuc_ptr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xac7ff3db cl_io_is_going +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaca7f6f3 class_exp2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xad378242 lprocfs_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xadab2c35 cl_page_cache_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xae754c15 llog_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xaee31666 llog_cat_reverse_process +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xafd49c48 lprocfs_rd_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb01963a6 class_uuid_unparse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb0fb9886 cl_lvb2attr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1142765 class_detach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1b89b6d class_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1d1d4ef llog_osd_get_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1e19bc7 cl_env_implant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb1e5af75 lu_ucred +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb22c3cad cl_lock_mutex_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb317d13d lu_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb372fd72 cl_lock_get_trust +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb41998cd lustre_cfg_rename +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb4ae0c83 obdo_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb51c3a1a lprocfs_add_vars +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb635af9e dt_acct_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb6ba5dd5 kuc_ispayload +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb7066139 class_manual_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb7269d3e dt_store_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb743ec6a dt_mode_to_dft +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb7d81442 llog_sync +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb8521ff9 lustre_end_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb89b50ad llog_open_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb89c0b74 cl_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb8a356d0 lu_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb9310110 lprocfs_free_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb99a2625 capa_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xb9ac51b8 cl_lock_extransit +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba38e925 lu_object_header_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba423dcf llog_copy_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba741e78 class_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xba985283 lustre_register_client_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbacac922 lprocfs_write_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbacc1b5c lprocfs_nid_stats_clear_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbae31063 cl_lock_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbb05fe9b dt_locate_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbbb97b22 cl_page_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbbff661e cl_page_make_ready +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbc52bd9e cl_page_gang_lookup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbcee1990 cl_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbd058463 cl_lock_is_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbd9b0ccb cl_page_is_vmlocked +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe30c680 lprocfs_free_obd_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe3c68d4 lu_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbe71f90e cl_req_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xbef54dd3 llog_process_or_fork +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc01767e9 llog_osd_put_cat_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0954007 lprocfs_oh_clear +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc0bf7ef2 obd_debug_peer_on_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc18d06cf lu_buf_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc28bc2a0 cl_lock_mutex_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc306762a cl_wait_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc357fa55 cl_lock_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc36cd088 lu_context_key_degister_many +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc3c2cbad cl_object_attr_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc4cf170c cl_lock_nr_mutexed +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc6bdc043 cl_io_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc751a770 cl_object_attr_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc791f38a cl_page_completion +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc7e14c3d local_index_find_or_create_with_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc857bf97 cl_vmpage_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8dbaa87 lustre_swab_cfg_marker +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8e184d2 llog_cat_cancel_records +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc8ed2a89 llog_cat_declare_add_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc9bbd726 cl_page_at +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xc9fa048f lprocfs_nid_stats_clear_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xca2170a1 class_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcaa1b7ad lu_site_stats_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcafd034c lustre_register_client_fill_super +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb0ab67f obd_max_dirty_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb0ba147 obdo_from_iattr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb599635 class_uuid2obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcb7aba25 cl_object_glimpse +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcba24e09 cl_lock_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccea9e1e class_find_client_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccf603f4 cl_page_unmap +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xccf7a8de obdo_cpu_to_le +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd7429cf class_devices_in_group +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd7537ee get_devices_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcd8cd119 cl_io_commit_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcec1dd03 capa_cachep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcedb140a obdo_cmp_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcf2e1a77 dt_txn_hook_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xcfb45295 cl_page_list_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd024a819 cl_lock_closure_build +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd03adc9c md_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd0785034 cl_page_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd08827c0 server_name2fsname +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd10aa042 lustre_swab_llog_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1b1478b cl_attr2lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1d362f9 cl_io_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd1f58645 lustre_swab_llog_hdr +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd2c0e66b lu_dev_add_linkage +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd2c5f806 lprocfs_rd_conn_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd2fb5f31 cl_sync_io_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd3063fdd cl_object_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd4846adb lustre_process_log +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd57eaf39 cl_object_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd6ae8488 cl_lock_hold_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd70fe669 lustre_swab_llogd_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd74fb8c0 lprocfs_alloc_md_stats +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd774a976 cl_lock_at_pgoff +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bc8654 obd_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7bfbc9c lprocfs_dt_rd_filesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd7f7b340 cl_lock_mode_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xd94085e3 lu_object_anon +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xda5b1ced class_find_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdac644c8 lustre_posix_acl_xattr_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdb13dce1 capa_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcb55ade cl_page_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdcc40af0 class_check_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd1172bd cl_2queue_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdd78c0c7 lu_object_header_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdda3d949 class_handle_unhash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xddaf2ce8 llog_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xddbcc000 lprocfs_rd_atomic +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xddf5a647 lu_object_invariant +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde7d985b obd_dirty_transit_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde838231 cl_lock_descr_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde86fb6f lprocfs_rd_uint +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde8ce778 lu_device_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xde99ee3d cl_io_slice_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xdfcd907d cl_object_kill +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe00fee98 cl_env_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe028cf84 capa_encrypt_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe0989abb cl_page_list_splice +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe13beb54 cl_lock_enqueue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2269451 class_put_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe2eb4470 class_get_next_param +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe32cccde lprocfs_rd_kbytesfree +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3323f5d class_handle_free_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe3e018cb lu_kmem_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe4c1c8ce local_oid_storage_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe509c889 lu_context_key_quiesce +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe56e72bd lprocfs_rd_filestotal +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe57ef35c cl_page_disown +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe5adf620 lu_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe6332ad3 cl_unuse_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe6576ea9 cl_page_list_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe77afc9b dt_object_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe7d83236 cleanup_capa_hash +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe83e8761 capa_cpy +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe8e84c32 class_match_nid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xe994539f lu_stack_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeacec47c lprocfs_oh_tally_log2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb3f388a _debug_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeb8745de cl_lock_unhold +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xebec3321 lustre_register_kill_super_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec76847f lustre_idmap_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xec7d6b85 obd_timeout_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xedb885c7 local_file_find_or_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee0c0732 obd_devs +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xee68bc29 lu_session_tags_update +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xeeeb79fa do_lcfg +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef427dff lprocfs_seq_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef4c391a cl_lock_print +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xef76f858 block_debug_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xefc272cf cl_page_own +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf01e2527 server_name2index +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf0911e47 cl_page_flush +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf0e3df5c lu_device_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf0f70ec5 dt_device_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf13c7f24 cl_io_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf1a22e6b dump_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf1a4b850 cl_page_prep +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf2fd6695 statfs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf3bc5b9d dt_lfsck_features +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf490d5f9 class_del_profiles +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf4d20eca llog_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf5773720 lu_ucred_assert +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf5992c0a lu_kmem_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf60d4659 capa_count +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf6c7d71c llog_create +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf6df0445 cl_object_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf7020831 lprocfs_dt_rd_kbytesavail +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf752fc9b llog_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf874c950 dump_lsm +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8c2df92 obdo_set_parent_fid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf8eacc25 dt_lookup_dir +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xf992f283 iattr_from_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa8126df class_config_llog_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa813d06 capa_hmac +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfa95f676 llog_declare_write_rec +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfaa1c190 class_conn2cliimp +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfb1e75c4 lu_context_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfb2207c0 cl_io_read_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfbea0098 lu_types_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc64df66 cl_locks_prune +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc7f18d0 obd_pages_max +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfc8bb903 class_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfcab076e cl_io_prepare_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfcda24f5 lprocfs_single_release +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfce4103b lu_object_header_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfcf0d71b lprocfs_rd_server_uuid +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfd68d17a class_notify_sptlrpc_conf +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfdbe1557 lprocfs_write_u64_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe16597e lu_ucred_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe21f091 class_new_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfe653733 lprocfs_seq_read_frac_helper +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfeb230a4 class_disconnect_stale_exports +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff1390d9 cl_site_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff57e92d class_match_net +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xff9a2f19 cl_io_unlock +EXPORT_SYMBOL drivers/staging/lustre/lustre/obdclass/obdclass 0xfffc1f11 lustre_swab_ost_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/osc/osc 0x5c4940c2 osc_update_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00d95039 ptlrpcd_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00ddcc61 ptlrpc_request_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x00f2ae44 client_import_add_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x01221762 req_capsule_client_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x01d6ef7f ldlm_pools_recalc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0225a554 ptlrpc_pinger_del_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x02db52bd ldlm_pool_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x03043679 ldlm_resource_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0384c72c lprocfs_rd_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x03d2d9c7 ptlrpc_set_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x048b59d5 lustre_msg_set_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0515f93b RQF_FLD_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x060075b4 ldlm_lock2handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x065a8c39 ptlrpc_invalidate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x06b3942b lustre_swab_lov_user_md_objects +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x071fc74a RQF_LDLM_ENQUEUE_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x07605c7d interval_find +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x08bb2d27 lustre_swab_obd_ioobj +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0922c749 ldlm_resource_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x095587d0 lustre_msg_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x096b4784 sptlrpc_svc_ctx_invalidate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0a3130b0 RMF_MDT_EPOCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac252b2 lustre_msg_set_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0ac54708 lustre_errno_hton +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0bad6742 ldlm_cli_update_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0bcacb5d RMF_MDS_HSM_USER_ITEM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0c2d9c43 lustre_swab_lip_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0cc6d8fd llog_client_ops +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0cec97dd req_capsule_client_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0cf343dd RQF_LDLM_INTENT_BASIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0d0f704e ptlrpc_save_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x0f2a26bd target_pack_pool_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x10990555 ldlm_completion_ast_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x10f18f20 interval_iterate_reverse +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x115017f6 req_layout_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x11b931e5 ptlrpc_reconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12b6f5a3 ptlrpc_connection_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x12e68a22 ptlrpc_queue_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1328edb4 target_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x13a2e995 ptlrpc_commit_replies +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1474440e ldlm_pool_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1483eca4 ldlm_lock_addref_try +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x14d192db lustre_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x15a3e4db RMF_GETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1662c1a5 sptlrpc_target_sec_part +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x170671ca sptlrpc_import_flush_my_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x172fb86d lustre_msg_hdr_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1747d8b3 ldlm_lockname +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1760e05f ptlrpc_retain_replayable_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1774809f ldlm_lock_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x17950f60 RQF_SEC_CTX +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19108a0f RQF_OST_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x197b03ff req_capsule_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x19c08934 RQF_LDLM_INTENT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a306524 llog_origin_handle_open +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a420262 req_capsule_field_present +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a4a35b5 __ptlrpc_prep_bulk_page +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a6a3ce9 RQF_OST_GET_INFO_LAST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a7c1ca0 req_capsule_other_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1a9b76aa RMF_OBD_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1abd3258 RMF_SETINFO_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ace4b5f RQF_LDLM_BL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1b362d23 ptlrpc_register_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1bae0270 interval_iterate +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1be21715 lustre_msg_size_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c300d8e lustre_msg_get_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c4f7c6a req_capsule_server_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1c63ec64 ptlrpc_lprocfs_unregister_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1d043548 lustre_msg_set_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1d5e5017 ptlrpc_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1da85b3a ptlrpc_cleanup_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1dc2051d RMF_SEQ_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1de9c288 lustre_swab_layout_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1e8e48a4 sptlrpc_flavor_has_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1eb2a65f RQF_OST_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1eb85b58 ptlrpc_start_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ed3efc5 req_capsule_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee46b51 lustre_init_msg_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1ee9eb3c RQF_MDS_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x1fa815ba ptlrpc_abort_inflight +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x200475a4 ptlrpc_prep_req_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2096f5b5 RQF_OST_SET_GRANT_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x209e6b8b req_capsule_server_grow +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x20a8ecaf sptlrpc_sec_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x20d6b82c RQF_LDLM_INTENT_QUOTA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x218a36ce ldlm_cli_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x233790b5 RMF_OST_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x23e2711c ptlrpc_cleanup_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x244e5558 lustre_msg_get_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2481ee34 llog_origin_handle_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x24aafdba RMF_MGS_TARGET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2585a629 RMF_SEQ_RANGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2587513c RQF_LDLM_CP_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x269554ce RQF_LDLM_INTENT_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x26a77c87 ptlrpc_nrs_policy_register +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x26b4caf0 req_capsule_extend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x26f99d16 RQF_MGS_CONFIG_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2709df20 ptlrpc_init_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2724502e ldlm_glimpse_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x283692e2 ldlm_lock_allow_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x285e5b99 lustre_msg_set_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2906a06e ptlrpc_restart_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x29e0869a sptlrpc_get_hash_name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2a63a472 lustre_swab_ptlrpc_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2b9e002d sptlrpc_enc_pool_get_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2bac2838 __ptlrpc_free_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2badcbf2 ldlm_cli_cancel_list +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2bb1d56d ptlrpc_check_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2c00c60d ptlrpc_sample_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ca92fa8 ldlm_lock_decref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ccd5b87 ldlm_cli_cancel_list_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d1b15a6 ptlrpc_request_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d56f168 ptlrpc_pinger_ir_up +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d700d28 ptlrpc_request_bufs_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2d798316 RMF_MGS_CONFIG_RES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4562fe RQF_LLOG_ORIGIN_HANDLE_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2e4ca396 RQF_LDLM_INTENT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2ecd7515 lustre_msg_check_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2f0e4f87 RQF_OST_QUOTACTL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2f573ee2 ldlm_lock_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2faf5b60 ptlrpc_schedule_difficult_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x2fd2f737 lustre_msg_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x301d4fcd RQF_MDS_READPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x302937e0 RQF_MDS_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3060b9c6 sptlrpc_rule_set_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x30f06915 __ldlm_handle2lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x31838cb4 RMF_IDX_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x318a4c57 ldlm_pool_set_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3261b862 RQF_OST_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x329b7c45 ptlrpc_stop_all_threads +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x32c14c63 ptlrpc_unregister_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x33bb7761 ldlm_typename +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x351684cd llog_origin_handle_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x351e80ef client_destroy_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x35939a3d lustre_swab_fiemap +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x365f6634 ptlrpc_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x366226b2 lustre_pack_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x369379f7 ptlrpc_unregister_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x37cff354 ldlm_blocking_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x37ecf64f llog_origin_handle_read_header +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3835ab4b RQF_LLOG_ORIGIN_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3858fb94 RMF_OBD_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3896ba40 ldlm_pool_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38c01799 RQF_LDLM_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x38fce533 lustre_msg_set_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3910028a target_print_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x39f60a5f RMF_OST_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3a1e4bcb __lustre_unpack_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ab90f6e lustre_msg_bufcount +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ac00716 lustre_swab_hsm_user_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3afc8ead ptlrpc_set_import_active +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b6b7cba dump_ioo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3b8afe24 ldlm_enqueue_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3bedb0c7 RMF_LLOGD_CONN_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c63e62b RQF_MDS_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3c7e9477 ldlm_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ca50f33 RQF_MDS_HSM_CT_REGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3d7dc5f9 ldlm_pools_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dc47695 lustre_msg_get_magic +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3dddb3e2 dump_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3e24cd98 _debug_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3ee4579b ldlm_pool_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f034caf lustre_msg_get_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3f752e78 RQF_MDS_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x3fb89166 ldlm_namespace_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41008cef RQF_LDLM_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x41b75de5 ldlm_destroy_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x42c4f894 llog_origin_handle_prev_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43705ee4 RQF_LOG_CANCEL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x43d7efc8 lustre_msg_set_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x44036eda RQF_MDS_GET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x440c2a71 RMF_FIEMAP_VAL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x441028ec ptlrpc_deactivate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x443f16c5 ptlrpc_pinger_add_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4481591d RQF_OST_SET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x44f6621c ptlrpcd_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4506d386 ptlrpc_unpack_rep_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45d05893 lustre_swab_lustre_capa +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x45e30cea lustre_swab_ldlm_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x468ce9b3 ptlrpc_at_set_req_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x46ddb84d sptlrpc_conf_client_adapt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4745f7c8 ptlrpc_hpreq_handler +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x47f5e903 RMF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x48814c9f lustre_swab_ost_lvb_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x490bcf63 ldlm_lock_fail_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4947f2fc ptlrpc_nrs_policy_unregister +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x498c03c5 lustre_msg_set_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4997e15b ldlm_namespace_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4a5a2416 RMF_DLM_REQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4b09ce4b lustre_swab_mdt_rec_reint +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4c241238 ptlrpc_activate_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4d7580d0 lustre_swab_hsm_user_item +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4d76a511 ptlrpc_prep_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e1706e5 lustre_msg_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4e696b96 ptlrpcd_queue_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4eb03a6f ptlrpcd_destroy_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4f68d497 ptlrpc_replay_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x4f766c3b lustre_swab_generic_32s +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50443f6a ptlrpc_init_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x50dd74f8 RMF_STRING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x512ae210 ptlrpc_resend +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5189ed64 ptlrpc_set_add_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x52c62150 RMF_RCS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53411557 RMF_DLM_REP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x53a4a004 bulk_sec_desc_unpack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5489470c req_capsule_shrink +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x54ae5021 ldlm_lock_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x555eb7fe RQF_MDS_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x558afbc5 sptlrpc_target_export_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x588035b4 RMF_UPDATE_REPLY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x58d1ab66 ptlrpc_request_alloc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x595ab175 lustre_swab_obd_quotactl +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x596582bf RMF_GETINFO_VALLEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59ca398b ptlrpc_add_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x59d17925 ptlrpc_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5a057439 interval_search +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5a5920b1 req_capsule_filled_sizes +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5a8a5496 sptlrpc_sec_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ac04d13 ldlm_namespace_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5af0d02a ldlm_lock_dump_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5af653b2 ptlrpc_register_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5b6ba895 lustre_packed_msg_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5bb7731d ptlrpc_fail_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5c25658d ldlm_prep_elc_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5c6a3a83 RQF_SEQ_QUERY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5caae213 ptlrpc_next_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e0b19b1 RMF_CLUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e2b7558 lustre_msghdr_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e6f435d RQF_OST_BRW_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5e80f899 RQF_LLOG_ORIGIN_HANDLE_READ_HEADER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5eb0a727 ptlrpc_service_health_check +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ec3284d RQF_MDS_HSM_CT_UNREGISTER +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5ef831ee lustre_msg_get_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x5f96ccdd ptlrpc_connection_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60013733 ptlrpc_pinger_sending_on_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6042bc15 RQF_MDS_REINT_RENAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60437aec req_capsule_client_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x604e2505 RMF_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x607ec932 lustre_msg_set_buflen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x60cd26ad RQF_MDS_REINT_CREATE_SYM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x61646e1b RQF_MDS_SWAP_LAYOUTS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x618ad203 RQF_OST_GET_INFO_LAST_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x61aaa41d ldlm_resource_putref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62192cf8 dump_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x626e044b ptl_send_rpc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62949278 sptlrpc_enc_pool_put_pages +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62aaae3f RQF_MDS_HSM_REQUEST +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x62dd8361 ldlm_cli_cancel_unused_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6315dd4c RMF_LLOGD_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6352a62d ldlm_get_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x647b6e48 lustre_swab_ldlm_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x64b108e3 llog_origin_handle_close +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x653723dc RMF_LOGCOOKIES +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x657b00b7 ptlrpc_init_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6823736e sptlrpc_get_bulk_checksum +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x683243bf ptlrpc_set_next_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x685eeaba RMF_DLM_GL_DESC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68cb2541 interval_is_overlapped +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x68f49e5e ptlrpc_expired_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6912990a RQF_OST_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x696ba811 lustre_msg_get_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x69c9f04d RQF_MDS_REINT_LINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6a3785c9 RMF_EADATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d72828c sptlrpc_conf_log_update_end +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6d7931cc RQF_UPDATE_OBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6e640744 sptlrpc_cli_wrap_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6ead174a lprocfs_wr_pinger_recov +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6ed20499 ldlm_revalidate_lock_handle +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6efa82b0 RQF_MGS_TARGET_REG +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f29a885 ptlrpc_req_set_repsize +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f6dc736 lustre_swab_mdt_remote_perm +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6f93b962 ldlm_namespace_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x6fb92092 sptlrpc_flavor2name_bulk +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x703538e4 lustre_swab_hsm_current_action +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x723d43b6 sptlrpc_rule_set_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x725a892c RQF_MDS_REINT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7287b6c0 ldlm_pool_get_lvf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x72f56419 sptlrpc_cli_ctx_wakeup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x73e4e5c9 ptlrpc_add_rqs_to_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x74840056 lustre_msg_set_status +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75748fec ldlm_lock_allow_match_locked +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75a2c40d ldlm_put_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x75bf2c50 ldlm_init_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7645a726 ldlm_lock_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x76b728e5 lustre_swab_update_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77571cc6 lustre_swab_ost_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x77840c82 sptlrpc_rule_set_choose +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x78bf9136 lustre_swab_ldlm_lock_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7a832f10 RMF_CONN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7aa1f8fa req_capsule_client_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7ab935cf req_capsule_has_field +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7b158da4 lustre_swab_ldlm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7bbf8001 RMF_MDT_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7c4c6107 RQF_LDLM_CONVERT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d1ecd7f RQF_LDLM_INTENT_LAYOUT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7d41a8b9 RQF_QUOTA_DQACQ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dc0e7cd RMF_QUOTA_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7dfb3c18 lustre_msg_clear_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7ee84ccb req_capsule_server_sized_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4925d8 interval_expand +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f4c99b1 ldlm_expired_completion_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f5a1cc7 lustre_msg_set_type +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7f6d2357 lustre_msg_is_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x7faf6941 sptlrpc_cli_enlarge_reqbuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x802d2cf0 ldlm_lock_change_resource +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80a9e8c3 lustre_msg_get_last_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x80ecb4e3 RMF_MDS_HSM_CURRENT_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x817d7f1f lustre_msg_add_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x81e5aa78 ldlm_namespace_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8216af07 sptlrpc_lprocfs_cliobd_attach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8234394e ldlm_blocking_ast_nocheck +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x826d3c4f RQF_LDLM_GL_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x837efb00 RMF_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85135801 RMF_DLM_LVB +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85a9e0d8 RMF_FID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x85eecf67 sptlrpc_get_hash_alg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x863db6eb RMF_HSM_USER_STATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x86fa8c3b ldlm_cli_convert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87190415 ldlm_lock_fail_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8760beaf lustre_swab_ldlm_policy_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x876c2551 RMF_GETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87bf7b3c sptlrpc_get_next_secid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x87ff2afb ldlm_pool_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8872f3d2 RMF_SETINFO_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x888cc165 sptlrpc_cli_ctx_expire +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x88fff52d RMF_CAPA2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x89f9edf7 RQF_MDS_REINT_SETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a1ea476 lustre_swab_hsm_state_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a257736 RQF_MDS_HSM_STATE_GET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8a4345b1 ptlrpc_set_add_cb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ac440fa ptlrpc_uuid_to_connection +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8b854254 lustre_swab_mgs_config_res +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8ba8532e ldlm_lock_match +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8bb8a0aa unlock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8bdec5e0 ldlm_flock_completion_ast +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8c56be96 ptlrpc_buf_need_swab +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8c9e4e29 ldlm_init_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8cb71d4b RQF_MDS_REINT_CREATE_SLAVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8d77ea75 lustre_msg_set_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8da3fca7 lustre_msg_add_version +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8e9abe4d RMF_GENERIC_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8f0aceac RQF_MDS_HSM_ACTION +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x8fec0451 lustre_msg_get_limit +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x906c9fd1 req_capsule_server_sized_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x90cfcb4b lustre_pack_reply_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x919c4ce3 RMF_OBD_ID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91cf58d3 RQF_MDS_PIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x91d8a33b client_obd_setup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x937b1ee0 lustre_swab_mdt_ioepoch +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9416782d ptlrpcd_wake +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9427e12a req_capsule_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95283cac ldlm_replay_locks +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9553c633 RQF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x95d08f0c lustre_swab_mgs_target_info +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9660ace0 RMF_FLD_MDFLD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x967bfd52 RQF_OBD_PING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9731049e ptlrpc_prep_bulk_imp +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9798f2f1 RQF_MDS_GETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x980fcfdc ptlrpc_connection_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9820002e client_disconnect_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a258886 RQF_MDS_GETSTATUS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9a6f2f6d lustre_msg_set_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9b88f6ce RMF_NIOBUF_REMOTE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9bb5198b RQF_MDS_CLOSE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9ce261d5 do_set_info_async +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9d7ea314 sptlrpc_pack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9e90f340 ldlm_register_intent +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0x9fb088f1 lustre_swab_lov_mds_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa10f0d3d RMF_UPDATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa163f4c3 dump_rniobuf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa1f6884a ptlrpc_unpack_req_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2078c9d ptlrpc_obd_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa2244636 RQF_MDS_GETATTR_NAME +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa22c0086 ldlm_error2errno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa337f8d7 sptlrpc_gc_del_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa3d2a6ee RMF_CAPA1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa47787ef RMF_PTLRPC_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa484f43d req_capsule_server_swab_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4a2d089 RQF_OST_PUNCH +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa4bea5ef lustre_swab_lmv_user_md +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5458dad ldlm_lock_decref_and_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa5880075 ldlm_errno2error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa66888dd ptlrpcd_add_rqset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa6c436ca RQF_MDS_WRITEPAGE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa79541e4 ptlrpc_disconnect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7d55cc3 RQF_MDS_REINT_CREATE_RMT_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7e360b1 RMF_OBD_IOOBJ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa7ec567d RMF_CONNECT_DATA +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9704f80 lustre_msg_get_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9c4658e lustre_swab_lov_user_md_v3 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xa9edf09d RQF_OBD_IDX_READ +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaa00c1e0 lustre_pack_reply_v2 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaab1a57f client_connect_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xac1f4f7d ptlrpc_req_finished_with_imp_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xad083344 sptlrpc_conf_target_get_rules +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xad152861 ptlrpc_request_set_replen +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xad2ac383 ptlrpc_lprocfs_brw +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xad3deff6 lustre_free_reply_state +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaddc3979 lustre_swab_lustre_capa_key +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf4e9658 RQF_MDS_SYNC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf50a0d6 RMF_HSM_STATE_SET +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xaf9ca4eb ldlm_pool_set_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xafb6aac8 sptlrpc_cli_ctx_get +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xafc87494 ldlm_pool_add +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0751fa4 RQF_LLOG_ORIGIN_HANDLE_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb0a2b1c8 ldlm_namespace_new +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb12daf73 req_capsule_init_area +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb1b43d8a dump_rcs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb23f763f req_capsule_server_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb27c2374 lustre_msg_get_jobid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb291473d lustre_msg_early_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb2b1817d lustre_swab_ost_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb323ca56 req_capsule_set_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb389da1f sptlrpc_sec_destroy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb3f8d509 client_import_find_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb4a7ecf3 lustre_msg_add_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb512ebc2 sptlrpc_parse_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb61cb95a RQF_MDS_GETXATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb68476df interval_erase +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb6aafd03 RQF_MDS_DONE_WRITING +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7b38189 RMF_MDT_MD +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7c9ad31 ptlrpc_request_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb7fa3cc8 RMF_LLOG_LOG_HDR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb903634e RQF_OST_CONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xb9b631cf lustre_swab_mgs_config_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbaa76097 lustre_msg_string +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbabe4e60 ldlm_pool_del +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbbeb76af ptlrpcd_alloc_work +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbbfb521e ptlrpc_request_alloc_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc1370dc lustre_shrink_msg +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbc8d1077 ptlrpc_unregister_service +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbcb00d0b ptlrpc_resend_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbce9f793 ldlm_extent_shift_kms +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbd83bc44 RQF_OBD_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbdb351e6 ldlm_cli_enqueue_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbe47bc7e ping_evictor_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbf6744d5 ldlm_lock_cancel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbf98b86f RQF_MDS_QUOTACHECK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xbffd4313 RQF_OST_BRW_WRITE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc06c4670 lustre_msg_get_versions +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0709eb6 lprocfs_wr_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0867da7 RMF_REC_REINT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc087b5c1 lustre_pack_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc0cdf55e RMF_MGS_SEND_PARAM +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc1434e60 ptlrpc_recover_import +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc1ed015f ldlm_pool_get_clv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc1ee1833 ldlm_cancel_resource_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc1fb12b8 ptlrpc_set_add_new_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc23b30cf ldlm_get_enq_timeout +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2986d28 lustre_swab_ldlm_res_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2b1af57 RQF_MGS_SET_INFO +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc2be922a RMF_SYMTGT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc3b1bf14 ptlrpc_send_error +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc4782614 ptlrpc_req_finished +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc532fd88 ldlm_cli_enqueue_local +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc559a634 RMF_LAYOUT_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc60a60e1 RQF_OST_STATFS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc615ac9b ldlm_namespace_dump +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc694be4b RQF_LLOG_ORIGIN_HANDLE_PREV_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc763fabc sptlrpc_process_config +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc78a5464 ptlrpc_free_rq_pool +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc79b9c67 ldlm_pools_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7ca8257 RQF_MDS_REINT_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc7e47564 ptlrpc_interrupted_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc8d14964 client_obd_cleanup +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xc8f586a9 ptlrpc_connection_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca42e982 sptlrpc_target_update_exp_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xca5a81ec ptlrpc_pinger_ir_down +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb16107d ptlrpc_set_wait +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2cc0cf lustre_swab_lquota_lvb +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcb2ceaff sptlrpc_secflags2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xccf958ac ptlrpc_req_xid +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce1a689b sptlrpc_enc_pool_add_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xce86066d lustre_msg_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcec513c9 RQF_MDS_UNPIN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xced015be sptlrpc_rule_set_free +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf7f30ee _ldlm_lock_debug +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9963db lustre_msg_get_op_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xcf9aab6a RQF_MDS_DISCONNECT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2983334 lustre_swab_swap_layouts +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd2e0d4eb lustre_msg_get_opc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd3ce05c5 ldlm_lock2desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd3dae408 ldlm_it2str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd4d04a33 req_capsule_get_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd537ded2 lustre_swab_obdo +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd57cfb08 sptlrpc_cli_unwrap_bulk_read +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6409dc5 sptlrpc_import_sec_ref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd67a5d7b lustre_swab_update_reply_buf +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd69e0a27 RQF_MDS_IS_SUBDIR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6c3ebfb RMF_FIEMAP_KEY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd6e91ac6 llog_origin_handle_next_block +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd7910326 lustre_swab_obd_statfs +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8786f1e ldlm_resource_unlink_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8b91b3e lustre_swab_lov_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd8f06300 RQF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xd9561861 RQF_LDLM_INTENT_OPEN +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xda2ac111 sptlrpc_proc_root +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdac3b9e0 sptlrpc_gc_add_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb1fb0a2 RQF_MDS_REINT_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdb9d5a6a lustre_swab_niobuf_remote +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdbb7c540 sec2target_str +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdcf910b9 lustre_swab_ost_last_id +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd07dd01 ldlm_resource_foreach +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd0ffb04 sptlrpc_flavor2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdd30d7bf RMF_ACL +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xddc40a85 lustre_msg_get_flags +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde12d36b RMF_MDS_HSM_ARCHIVE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xde555d70 sptlrpc_enc_pool_del_user +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdee87192 sptlrpc_conf_log_update_begin +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xdf701ae7 lustre_swab_fid2path +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0133c6c lock_res_and_lock +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0187dcd ldlm_prep_enqueue_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe036cca1 ldlm_pool_set_slv +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe04c4bce ptlrpc_send_reply +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0cc694c RQF_LLOG_ORIGIN_HANDLE_NEXT_BLOCK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe0deeb30 ptlrpc_mark_interrupted +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe40e0a50 lustre_msg_get_transno +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe4fd6033 ldlm_destroy_flock_export +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe57bd972 sptlrpc_current_user_desc_size +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe5e8169b lustre_errno_ntoh +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe5f8d4f3 ldlm_cli_cancel_req +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe643998e RQF_OST_SETATTR +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe67c8e73 sptlrpc_gc_add_sec +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6d2f846 lprocfs_wr_ping +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe6f0dc96 RQF_OST_CREATE +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7062b5f RMF_U32 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe7512278 ptlrpcd_addref +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe798e626 client_import_del_conn +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xe79cba9a ldlm_cli_enqueue +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xea6467cb lprocfs_wr_evict_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabaa0b1 lustre_swab_mdt_body +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeabac4fc sptlrpc_rule_set_merge +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xebb64e68 req_layout_fini +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec226f66 ping_evictor_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xec939a00 RQF_MDS_REINT_UNLINK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xecace5c1 RQF_OST_GET_INFO_GENERIC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed1c10d6 ptlrpc_connection_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xed7f69e6 sptlrpc_req_replace_dead_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xedcb740d sptlrpc_name2flavor_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xeeecebfa sptlrpc_unregister_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef1aeca9 RMF_FLD_OPC +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xef8353b4 sptlrpc_import_flush_all_ctx +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0241d6e lustre_swab_hsm_progress_kernel +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf0d52b5f ptlrpc_pinger_suppress_pings +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf1300275 _sptlrpc_enlarge_msg_inplace +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf16bc1a5 sptlrpc_cli_unwrap_bulk_write +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf25910f3 sptlrpc_cli_ctx_put +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf277c125 RQF_OST_GET_INFO_FIEMAP +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf27d49dc sptlrpc_target_choose_flavor +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf2b24d60 ptlrpc_wake_delayed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf31a239a ptlrpc_request_alloc_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf33f8fcc ldlm_lock_downgrade +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf35f132b lustre_swab_ldlm_resource_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf3d44370 RQF_OST_DESTROY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf43540b9 lustre_swab_mgs_nidtbl_entry +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf45085e1 sptlrpc_conf_log_stop +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf55c033b RMF_MGS_CONFIG_BODY +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf584a16b sptlrpc_part2name +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf596e9ae sptlrpc_conf_log_start +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf607fc23 sptlrpc_flavor2name_base +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf617ab8a lustre_msg_get_conn_cnt +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf697b756 ldlm_dump_all_namespaces +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf6e9aea2 ldlm_pool_init +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf71f47c9 ptlrpc_buf_set_swabbed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7408f84 lustre_swab_hsm_request +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf7ba40c0 RMF_MDS_HSM_PROGRESS +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf85cb27e sptlrpc_parse_rule +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf870fed9 RQF_LDLM_GL_DESC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9051bd6 RQF_QC_CALLBACK +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf94e41e0 deuuidify +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf973aa93 lustre_swab_lov_user_md_v1 +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9ee11e2 lustre_msg_set_last_committed +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xf9f72dfc RMF_TGTUUID +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa09cb67 ldlm_cli_cancel_unused +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfa51688d interval_insert +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfb444a98 ptlrpc_prep_fcset +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfbcb3f8e llog_initiator_connect +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfbe7d4b3 req_capsule_server_pack +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfc2fa83f ptlrpc_del_timeout_client +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfca39900 ptlrpc_lprocfs_register_obd +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd148bf8 RMF_LDLM_INTENT +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfd2cf25b ldlm_reprocess_all_ns +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xfde52d93 sptlrpc_register_policy +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff02a0e9 ldlm_lock_set_data +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xff2b5341 ptlrpc_prep_set +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffc807e8 sptlrpc_unpack_user_desc +EXPORT_SYMBOL drivers/staging/lustre/lustre/ptlrpc/ptlrpc 0xffe29c3f RQF_LDLM_ENQUEUE +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0x08227303 cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x138c51ad go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x1595c061 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x3f1d6198 go7007_snd_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x50820eea go7007_update_board +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x705edabe go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x95c51502 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xc492d3ca go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xdb113b88 go7007_snd_init +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xea140405 go7007_read_addr +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00666ee9 rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0329ea9e rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x06adda2a rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x06dff235 rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x083143fa rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0b1d5c2b rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0c640d37 rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0cde5910 rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1a58a6f2 rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x23bab199 free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x261efc2a Dot11d_Channelmap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2adac117 rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2c450c58 rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2e4344ae rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x30215256 dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3904337b rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3d69ca8d rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3da8a1d7 rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x404b8b7c RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5175883d rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x73901279 rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7a88db38 rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7d646eca rtllib_wpa_supplicant_ioctl +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7f635b65 rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8221dd59 rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x83ce7e88 rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8fe18169 rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x92baf5cb rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x947d7512 rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9e18d0d6 rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa1948493 rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xafd6aa04 rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb6fcb380 rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb8c42264 rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb94a7e8d rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbd05981c rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbd8e5e9b rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe1420f2 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xcd37a67c rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xce726106 rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xcfc425dd notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd140d7a8 rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd62cce4a rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd96148e4 rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf78f620 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe2a2880e HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe414f211 rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe534a5c2 rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xeecc83ed rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf1cc89e5 rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf8825d1f rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfab520c5 alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x072644e8 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x092364eb DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0d5c6ee7 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1abac6a6 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1eecf29b ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x214735f7 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2202ea82 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2995d2f5 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2c4047b9 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2ee1111c ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3a756455 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3d6bcb41 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3e6840bc ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x41b2a767 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x473dcf5a ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x47628904 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x47840612 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x490f6633 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4b8d6ea9 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4fb06e06 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x552b2ce0 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6cc93167 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6db23056 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6f5fe8b3 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x72dbacd5 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x78de2fdc ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7d5ea834 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8ae852f2 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8bb610a0 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x95b3e0a7 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x97c3b791 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa0cabaee ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa72a9a5f Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb599fa8d ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb634d97d ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb6cde787 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb9ad1801 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbf858cbe ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc1f7bae7 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc44f410f notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc61142b2 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc6f1985f ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd33f7881 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd383d9b4 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd9c8f707 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdb2644e2 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe15c15bd ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe218a8f2 ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe6da0d48 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe72aaf55 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xeccdee01 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xed93ac53 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xefe44b4c HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf9c2babd ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfa606f14 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfc20fb45 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0017f35f set_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x00ea0cde set_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x06d6f244 get_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x09df8f3e set_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0a8d32c3 get_bypass_slave_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1936264c set_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1d2eb8ca get_tap_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x203af1f7 reset_bypass_wd_timer_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2070f14a set_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x27b990ef get_bypass_info_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2ba7cd35 get_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2c3f1c17 get_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2f59e636 get_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2fdb893a get_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x361cf40a get_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x45ca99c3 set_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x550a188c set_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x5cb59e92 get_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x66b60122 set_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x675208c0 set_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x692623f2 get_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x75131ec6 set_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x76c0b7d0 set_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e872825 get_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e8d701e get_wd_expire_time_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x86388b07 get_bp_disc_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x93ae4648 get_wd_set_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x95e42b0d is_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9df5f807 set_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9e21f42e set_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xa689a214 get_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xae117788 get_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xc368d30d get_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xccab5de0 get_bypass_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd3e034b3 get_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9c1ccfc get_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9d38d97 set_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xe640f06e set_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xecdaa456 set_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xedcd3c1b get_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf06d67bf set_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf57c1671 get_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf693c3a1 bp_if_scan_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf8237882 get_bypass_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xfa59240d get_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05af3c4c set_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05b08a42 set_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0b0d5ce0 get_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0fc2e83c reset_bypass_wd_timer +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x123a8133 get_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x157ec89c get_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2440f05a get_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2b01d1d4 set_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2c27a2f0 set_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2da97f4b is_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2e86c67b get_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37416370 get_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37bdab27 get_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x3da96a18 get_bypass_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4025805e get_bypass_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4940a0cc get_bypass_info +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4d21ff51 get_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5147360c get_bp_disc_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x515d4df1 get_bypass_slave +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5560267e set_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5be44d44 set_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6653590c get_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6bda14ec get_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x72c618ae set_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x76d47e6f set_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x794e3815 set_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x7c6cbc16 get_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x84a263dc set_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x8a16f22c set_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x946ff795 get_wd_set_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x94f6aff2 get_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x9d1ecf73 set_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xb1385629 set_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xbff68c45 set_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xc871c561 get_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xcee528df set_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd202dd85 get_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd787f151 get_wd_expire_time +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xdb6a39d2 get_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xebd25ae5 get_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf1e9f8c1 set_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf224abd9 get_tap_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf5a591b2 set_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf643fd4c get_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x0f7327de xillybus_init_endpoint +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x25978d50 xillybus_isr +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0x91957443 xillybus_endpoint_remove +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0xb154cfcb xillybus_do_cleanup +EXPORT_SYMBOL drivers/staging/xillybus/xillybus_core 0xb2474695 xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0ad520ea iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0c9f8fe6 iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x18b31695 iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x1e09c0e7 iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x1fb62229 iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x45bb1ec5 iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x477b49f7 iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4c90f273 iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5229bbf0 iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5c784202 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5f1ffe4c iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x67e7e9cf iscsit_set_unsoliticed_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x682a0bac iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7c5b7391 iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7f9b3dd3 iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7f9facc5 iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x86a993e1 iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x86b685e9 iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9592e30b iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x99931ab6 iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xaa37dad9 iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb254bd75 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb67e533f iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbedf862a iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xcdc25ecf iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd1293dcb iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd8ce2f2e iscsit_handle_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe969a932 iscsit_release_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x050118df iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x05730437 target_put_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x07d02e8f spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x0f0ae0d9 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x11a7d4e4 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x13072410 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x13df26e0 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x18b2cd34 spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x1fd204a8 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x2884a336 target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x2c7551c1 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x30029bb1 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x3601d2cf spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x38d8cebe target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x3d6cb39a transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x42f78a9f transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x447b40cb transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x44b74dcf transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x4651b648 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x4b6745f5 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x521bfc9f transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x56778389 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x58086a6c transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x58e2f5b1 transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x6205071b sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0x65f06fab transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x6725f610 transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0x67794eea fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x6b96c836 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x6d5c748d target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x72f2ad5e core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x78c72107 sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x7a46acd0 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7c58b63f fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7e0eca74 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x8146241e target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x8592d789 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x89f248e9 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x8d2b90a0 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x8d69a034 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x8d8cd90b target_get_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x8e4372fd iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x904d3cc2 target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0x95484d1f transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x9db1c4f1 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xa1671bbf transport_init_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0xa2f4d101 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xa5b507d0 sbc_execute_unmap +EXPORT_SYMBOL drivers/target/target_core_mod 0xa80e3645 target_sess_cmd_list_set_waiting +EXPORT_SYMBOL drivers/target/target_core_mod 0xabad5ffd core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0xad233bb0 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xaeaab139 iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xb0dd2cdd transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xb96aab01 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0xbb320cf3 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0xbcebf449 target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xbe775ac9 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xc25b32b9 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xc360a709 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xc375c6ae sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xcb0a57e8 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xd79ce237 core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0xdabd8f59 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0xe2b9c296 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xe2ef8065 target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xe8e6e721 target_setup_cmd_from_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xe99c27b9 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xeecfc2ae target_submit_cmd_map_sgls +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xfb79ddfe iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xfcd8e150 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xff51bea4 spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0xe642e39b usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0x0bf1ddbc unregister_gadget_item +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x1f7bd287 gether_get_host_addr_cdc +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x2723b8c4 gether_set_gadget +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x28e40e7a gether_set_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x4e20318f gether_set_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x4ffe415b gether_setup_name +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x63949234 gether_get_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x63ebb5be gether_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x6a6eba69 gether_connect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x7912c2b8 gether_register_netdev +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8224d736 gether_get_ifname +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8878cfa6 gether_cleanup +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8be934aa gether_set_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x99e3fbc5 gether_get_host_addr_u8 +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xb2f891ee gether_get_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xb3f4f40f gether_get_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xdb3ba24d gether_setup_name_default +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x10d17720 rndis_add_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3a6d4f22 rndis_free_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3ca38e3a rndis_signal_connect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x4ca90996 rndis_signal_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x5c36058f rndis_rm_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x5d22b406 rndis_register +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x6b55a127 rndis_set_param_dev +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x785d494b rndis_msg_parser +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x840dd143 rndis_deregister +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x988ad2a2 rndis_set_param_vendor +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x9acf72e4 rndis_set_param_medium +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xa90054ee rndis_uninit +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xb971ebca rndis_get_next_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xd2fe47b1 rndis_set_host_mac +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x10a39679 fsg_show_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1710b539 fsg_fs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1b1cc3af store_cdrom_address +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1c90ecd2 fsg_lun_fsync_sub +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1e065585 fsg_store_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x1fee335f fsg_show_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x2933ee1d fsg_ss_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x309ea1a3 fsg_lun_close +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x398778e1 fsg_ss_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x3cb98d7e fsg_store_removable +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x423845e4 fsg_ss_bulk_in_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x56344daf fsg_hs_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x5778aa69 fsg_store_cdrom +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x857b6dc2 fsg_hs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x95cffb3e fsg_hs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0x98bce068 fsg_lun_open +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa0999570 fsg_store_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5cae92f fsg_ss_bulk_out_comp_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa5f99b69 fsg_fs_function +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xa8043c0a fsg_show_nofua +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb1af52dd fsg_store_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb52ba28a fsg_intf_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xb54d0d95 fsg_fs_bulk_in_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xcfcc17cb fsg_show_file +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xee9b0575 fsg_show_ro +EXPORT_SYMBOL drivers/usb/gadget/usb_f_mass_storage 0xf4efc0c8 fsg_ss_bulk_out_desc +EXPORT_SYMBOL drivers/usb/gadget/usb_f_rndis 0x89bd23fe rndis_borrow_net +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xb5090fb9 sl811h_driver +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0dce23c0 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1ccfdece usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x31e55fc6 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x41a449df usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8d9442c1 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9e18dcf4 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa8f7d3bb usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xae12fba2 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb8f5cb0b usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc9351535 usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd0087650 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd9009eba usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xfb2c1173 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x9706a690 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x9c624638 usb_serial_resume +EXPORT_SYMBOL drivers/vhost/vringh 0x0dda8c5a vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1f063017 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x2eae4a2a vringh_getdesc_user +EXPORT_SYMBOL drivers/vhost/vringh 0x36dfce73 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3b304ebb vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3eaf442a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3fa42e4f vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x4311cd91 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5dafbd4e vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x66af098b vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x6d0e7948 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x76bd9a5d vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x97fa07e9 vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xaf8e4a0e vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xafb47dae vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc884d704 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc8bee0a4 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xda4ea4cc vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xde804bb9 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x17b4832f devm_lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x6197cbc2 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x646bb35b devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xeb037d3d lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x247bd464 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x8b97569d matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x9a3116ed matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xe01ce18c g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x0d066b12 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xa8fcd259 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xb72b3396 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xf800fac2 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0xf148eb44 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x5e7a9e6b matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x17886af0 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xabb2a07c matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xda0a4595 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xe1c93177 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x3cb902de matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xf094afa7 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x0623bc75 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x714999f2 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x7d29634a matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x822cf797 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xe65c26f6 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0xbde1f358 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0xb4d59527 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xf9dbc594 video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x01f3eadf svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x09738701 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x11fa7d92 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x238bad44 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x6e4adb1e svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x7cb6632e svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x8de63fb4 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xdc65cf6d svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf2db5956 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xfe40e1ec svga_get_tilemax +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/vme/vme 0x09a353b5 vme_register_driver +EXPORT_SYMBOL drivers/vme/vme 0x0c6bdc3f vme_master_read +EXPORT_SYMBOL drivers/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/vme/vme 0x144fadd9 vme_irq_free +EXPORT_SYMBOL drivers/vme/vme 0x20df5a3d vme_dma_pci_attribute +EXPORT_SYMBOL drivers/vme/vme 0x3e95083c vme_slave_get +EXPORT_SYMBOL drivers/vme/vme 0x40dc8a18 vme_slot_get +EXPORT_SYMBOL drivers/vme/vme 0x44a24845 vme_lm_request +EXPORT_SYMBOL drivers/vme/vme 0x46649cd1 vme_lm_set +EXPORT_SYMBOL drivers/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/vme/vme 0x4baf35a7 vme_master_get +EXPORT_SYMBOL drivers/vme/vme 0x51e059c0 vme_unregister_bridge +EXPORT_SYMBOL drivers/vme/vme 0x52983a4f vme_master_write +EXPORT_SYMBOL drivers/vme/vme 0x535c8308 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/vme/vme 0x5aff4177 vme_lm_get +EXPORT_SYMBOL drivers/vme/vme 0x62198d9d vme_register_bridge +EXPORT_SYMBOL drivers/vme/vme 0x68c69b8a vme_irq_request +EXPORT_SYMBOL drivers/vme/vme 0x6e9e22df vme_dma_request +EXPORT_SYMBOL drivers/vme/vme 0x79a33f85 vme_get_size +EXPORT_SYMBOL drivers/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/vme/vme 0x87d327be vme_irq_generate +EXPORT_SYMBOL drivers/vme/vme 0x8d96ae0e vme_new_dma_list +EXPORT_SYMBOL drivers/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/vme/vme 0xa2a335bd vme_alloc_consistent +EXPORT_SYMBOL drivers/vme/vme 0xa31bdf07 vme_master_set +EXPORT_SYMBOL drivers/vme/vme 0xa659bf6f vme_master_request +EXPORT_SYMBOL drivers/vme/vme 0xabe43c18 vme_bus_type +EXPORT_SYMBOL drivers/vme/vme 0xb643f769 vme_unregister_driver +EXPORT_SYMBOL drivers/vme/vme 0xb862046b vme_dma_list_free +EXPORT_SYMBOL drivers/vme/vme 0xb92359ee vme_dma_list_add +EXPORT_SYMBOL drivers/vme/vme 0xbb74528f vme_irq_handler +EXPORT_SYMBOL drivers/vme/vme 0xca5ee09a vme_free_consistent +EXPORT_SYMBOL drivers/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/vme/vme 0xefd1624a vme_dma_free_attribute +EXPORT_SYMBOL drivers/vme/vme 0xf5a10e25 vme_slave_set +EXPORT_SYMBOL drivers/vme/vme 0xf70d506c vme_dma_list_exec +EXPORT_SYMBOL drivers/vme/vme 0xf8c47a6b vme_slave_request +EXPORT_SYMBOL drivers/vme/vme 0xfacd8e72 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x2e8a9980 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x43f0e8f8 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x9390084d w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xb26acd6b w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x04b2ba96 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xcfab976c w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x8f56a506 w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0xe2d5b299 w1_ds2781_io +EXPORT_SYMBOL drivers/w1/wire 0x087219bc w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x65e7ffaa w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xea9add5c w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xf7f27323 w1_remove_master_device +EXPORT_SYMBOL fs/btrfs/btrfs 0x27476846 ulist_reinit +EXPORT_SYMBOL fs/btrfs/btrfs 0x41e6a9d2 ulist_init +EXPORT_SYMBOL fs/btrfs/btrfs 0x7e2ee765 ulist_free +EXPORT_SYMBOL fs/btrfs/btrfs 0xa2eec2e8 ulist_fini +EXPORT_SYMBOL fs/btrfs/btrfs 0xb1320bc8 ulist_add +EXPORT_SYMBOL fs/btrfs/btrfs 0xb42289d2 ulist_alloc +EXPORT_SYMBOL fs/btrfs/btrfs 0xc2c745db ulist_next +EXPORT_SYMBOL fs/configfs/configfs 0x0f302b51 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x37425e2c configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xa6d4f6f7 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0xb2c1ceed configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0xbb68086c config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xbdc37a6f configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xbef93b6e config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xc09f7a98 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xd522eb1f config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xd534da19 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xfabf4c24 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xfdc2d64a config_item_init +EXPORT_SYMBOL fs/exofs/libore 0x01ffca78 ore_create +EXPORT_SYMBOL fs/exofs/libore 0x1c2c3832 ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0x24d63fe0 ore_write +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x37e62889 ore_remove +EXPORT_SYMBOL fs/exofs/libore 0x42702099 ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0x42aa6c61 extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0x4527e170 ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0xa1e6ac53 ore_read +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xad51c82f ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0xb1aa0a98 ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0xc8b9d4ba ore_get_rw_state +EXPORT_SYMBOL fs/fscache/fscache 0x02379f22 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x03f65788 fscache_object_init +EXPORT_SYMBOL fs/fscache/fscache 0x159696b6 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x1d857bb7 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x22f4fb0c __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x24d8d406 fscache_object_destroy +EXPORT_SYMBOL fs/fscache/fscache 0x276c2608 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x2f287bdf fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x45c683fa __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0x4621a2ed fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x48b597f0 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x4ef17f6d fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x551f1eb0 __fscache_check_consistency +EXPORT_SYMBOL fs/fscache/fscache 0x58ca24e0 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x62f43063 fscache_op_complete +EXPORT_SYMBOL fs/fscache/fscache 0x72453d95 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x81ff9053 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0x8e4a6692 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x9fcae79d __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xaae66c5d __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0xac7117c4 __fscache_disable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xafc13814 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0xb562da3f fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xb6d8d621 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xb8c5914d __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xbb875057 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xc6d528e3 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xd17f711c __fscache_enable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xd2c988f3 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0xd49ed813 __fscache_readpages_cancel +EXPORT_SYMBOL fs/fscache/fscache 0xdaa1d0b2 fscache_mark_page_cached +EXPORT_SYMBOL fs/fscache/fscache 0xe7006002 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xefd74478 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xf10739fc __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0xfd845a56 __fscache_wait_on_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0xfe39426e fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0xffb14d5e __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xa0f4b528 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0xb25b2957 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0xe13337f0 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x33a06936 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x5d47e7da qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x9b91f487 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xaf9ea3d7 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xf3db1401 qtree_delete_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x1a703ba1 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x6d356209 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc7 0x6c1f6fee crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd09b2cba crc8 +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x093b6d05 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x17530a2d lc_set +EXPORT_SYMBOL lib/lru_cache 0x2eb86314 lc_committed +EXPORT_SYMBOL lib/lru_cache 0x3ec8e9bb lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x486392c2 lc_del +EXPORT_SYMBOL lib/lru_cache 0x55d40ad0 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x70d9ddd8 lc_get_cumulative +EXPORT_SYMBOL lib/lru_cache 0x745ebaab lc_find +EXPORT_SYMBOL lib/lru_cache 0x846875a0 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x8c26f371 lc_try_lock +EXPORT_SYMBOL lib/lru_cache 0x9e0c3450 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0xbea1b0ba lc_try_get +EXPORT_SYMBOL lib/lru_cache 0xc343305e lc_is_used +EXPORT_SYMBOL lib/lru_cache 0xd6e146aa lc_get +EXPORT_SYMBOL lib/lru_cache 0xdaef897c lc_put +EXPORT_SYMBOL lib/lru_cache 0xe7800d85 lc_create +EXPORT_SYMBOL lib/lru_cache 0xfe413d0d lc_element_by_index +EXPORT_SYMBOL lib/lz4/lz4_compress 0x0c222eb5 lz4_compress +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x682a23e0 lz4hc_compress +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0x7456cc61 raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/raid6/raid6_pq 0xd9e91f83 raid6_vgfmul +EXPORT_SYMBOL net/802/p8022 0x011e38c7 register_8022_client +EXPORT_SYMBOL net/802/p8022 0xb3e7fd4e unregister_8022_client +EXPORT_SYMBOL net/802/p8023 0x5d094e10 make_8023_client +EXPORT_SYMBOL net/802/p8023 0x6df6a62e destroy_8023_client +EXPORT_SYMBOL net/802/psnap 0x2d2db2a9 register_snap_client +EXPORT_SYMBOL net/802/psnap 0x9863d724 unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x028ded15 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x0e22272e v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x17c4a9f1 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x2f7572ed v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x335fa15f p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x36175592 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x3aeaa2d6 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x3bdc325e p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x43e89ab1 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x44d2c2c0 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x53c97680 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x59dc4117 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x5dd313d9 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x5eb5e6cc p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x61cca299 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x6af9c308 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x6bfff7a0 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x76adcd4d p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x7761f2be p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x79cba163 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x7a16fef7 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x84143a4a p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x842bc395 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x86dc9699 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x885531df p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x8abf2a55 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x95e35bce p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x9c8e5729 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xabce87cc p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0xb4f78cab p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xbb87840f p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xbdad21d1 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0xbf67a20e p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xc5de5fc4 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xc8ca29e0 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0xcbd4bbed p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xcd762c41 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0xcf5a50a7 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xd0945dc0 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xd25bebe7 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xf43aab77 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf767e198 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xf87ed60e p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xf9366418 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x3bb782b5 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x3e9f7950 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x4785061a atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xb4ff2e45 aarp_send_ddp +EXPORT_SYMBOL net/atm/atm 0x0d556aaf vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x148e8636 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x23cea0b9 vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x5b7548fd atm_charge +EXPORT_SYMBOL net/atm/atm 0x6195472e atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x7ce79c6f register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x875578ae atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x896e1d03 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x89e12a9c atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x93a752c3 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xbea36a40 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0xc3c7b530 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0xca87b453 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xe6d24414 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x08ea35b2 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x1a88de73 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x3afee63e ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x4fdf4225 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xad74e95c ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xbfd6f7db ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc2bf8950 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xc66fd636 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xcad6c7e3 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd500479d ax25_listen_release +EXPORT_SYMBOL net/bluetooth/bluetooth 0x13189d7d bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0x18cf9b28 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x25ebae67 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x26e38651 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2e37691d bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x36530a8a hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x382200d5 l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3d77847d bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4287ff00 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4671fe2c __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x474499be hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x52d7af5c bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x553eb1f9 bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0x632a168c hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x76db0a75 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c640527 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7ce2c434 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7d3e08b3 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x88f23d24 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8a94037c l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8e87cd1c bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x925e6510 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9558c877 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x99b59637 l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa84de28e bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa8d0ac98 bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa9c34e52 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb3433a64 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb40bab17 l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb61a0c3b bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbf802ae4 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc62404bc hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcb2ad16b bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xce8ec191 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd8ac1a2e hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdcd74b24 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe13a3946 bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe69a3f50 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfae679d2 __hci_cmd_sync +EXPORT_SYMBOL net/bridge/bridge 0x0b52ae7d br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x0ce863d8 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x0ee7881f ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x506476b8 ebt_register_table +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x2ff8b314 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x38701a7c cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x48fb1563 caif_enroll_dev +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x6a44fc70 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x85148bed cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x966d7de2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xabf85b2f get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/caif/caif 0xb9138060 caif_disconnect_client +EXPORT_SYMBOL net/can/can 0x01db9db3 can_ioctl +EXPORT_SYMBOL net/can/can 0x36bd4cfc can_rx_unregister +EXPORT_SYMBOL net/can/can 0x5516d0e9 can_proto_register +EXPORT_SYMBOL net/can/can 0x8b7e0116 can_rx_register +EXPORT_SYMBOL net/can/can 0xcd0f7ae4 can_proto_unregister +EXPORT_SYMBOL net/can/can 0xd2dd1578 can_send +EXPORT_SYMBOL net/ceph/libceph 0x01bb94ce ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x0437ea60 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x077f07e9 osd_req_op_cls_response_data +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x09b05e24 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x0b88bc07 osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0x0c0ebc53 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x0d61c270 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x0dc080b9 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x0dc19d24 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x11ef44f4 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x123e877b ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x1475bf0d ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x151d924d ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0x179a1f12 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0x1806f234 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x187fe79b osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1a8f9d4e osd_req_op_watch_init +EXPORT_SYMBOL net/ceph/libceph 0x1fcfbc3b ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x20d151cb ceph_osdc_setup +EXPORT_SYMBOL net/ceph/libceph 0x22b8c782 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x2438d781 osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x34a18c28 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x39943c0c ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x39a92178 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3df0ec7c ceph_calc_ceph_pg +EXPORT_SYMBOL net/ceph/libceph 0x3e9b945a ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0x3f688151 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x40c90ae8 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x4205ffd7 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x42171f68 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0x421a1084 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x43efd647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x49c641f8 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x4a283545 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x4c866ce4 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x54ba78c3 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x570ceb67 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5c3f2584 ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x5d4e4400 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x5ffa6c5b ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x61b6ef23 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x6662be3e ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x682565fd osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x6b2e3bcd ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x6c5d5ac1 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x70528f0f ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0x70a3dc3b osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x7168baf8 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0x76233260 osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7bb08a0e ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x7c2fe4fb ceph_auth_create_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x81eae1b6 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x863e1250 osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x8862d955 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x88e1223f ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x89374540 ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x8a9ed953 ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0x8c4d64bc osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x8c765a60 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x8dcf5df5 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0x8e13489e ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x917c34ed ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x94544161 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x97bed7fa osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0x99de4738 ceph_messenger_init +EXPORT_SYMBOL net/ceph/libceph 0x99e36571 ceph_osdc_cleanup +EXPORT_SYMBOL net/ceph/libceph 0x9d395e95 ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0x9ea31c5a __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa3a95bc5 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0xa89e344b ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xae3515ba ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6078743 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb7eec55a ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0xbc582cc0 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xbfe05ec0 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xc0626a54 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0xc0b47afd ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xc240bcde ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc55de604 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcf5f3407 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0xd28ea438 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xe2f93fb8 ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xe82c9c32 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0xeb79d312 ceph_auth_update_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xed229339 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0xf5774cba ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0xfef07270 ceph_open_session +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x230c9541 dccp_syn_ack_timeout +EXPORT_SYMBOL net/ieee802154/ieee802154 0x15a8d78e wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x45b6aaf2 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x51ae0eea ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x571a0f0d ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5a219a10 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x651740a5 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x66e93aa5 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x85db7394 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x91a1a20e wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9573393d ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc6c34891 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0xdad43346 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe95d1b7d ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x144d4a7f arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x74e51814 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xdb7e8c08 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x1c8ffe11 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x3c0852aa ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x6a7a3b74 ipt_do_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x4fc18506 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xb0c917c0 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xb24f3016 ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xcb6aa376 ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x35c42ae1 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x3ed6a98d ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xd99f3e81 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x29b8049d xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xde735381 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9679f827 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xd30f640a xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x03adc3ad ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x779739e6 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x81c410fd ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x8370828b ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x8901fa07 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9b423fde ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbd66d44f ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xeb94bc71 ircomm_data_request +EXPORT_SYMBOL net/irda/irda 0x0064e0ea hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x02682b7d irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x032c6547 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x08c9bfdc irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x097b77e5 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x105f48bf async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x1e6cade0 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x2005f267 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x2d038476 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x33cbe2c6 proc_irda +EXPORT_SYMBOL net/irda/irda 0x3834210c irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x3bd32df1 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x3e56064f hashbin_new +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x56a82cb5 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x601bda46 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6b5fbcef hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x6e0ab3c7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x71f91fb8 iriap_open +EXPORT_SYMBOL net/irda/irda 0x722195fa irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x7408047b irlap_open +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x80f6e0c6 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x85d88217 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x860b7250 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x8ff3caeb irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x960ef805 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0xa1d41e58 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xaa557515 irias_new_object +EXPORT_SYMBOL net/irda/irda 0xae72ea4c irlap_close +EXPORT_SYMBOL net/irda/irda 0xb40cd0f8 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc15572fe irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0xc2be953a irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xc453d88c irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0xc68e43be irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0xcead7dbb hashbin_find +EXPORT_SYMBOL net/irda/irda 0xcf2d01dd iriap_close +EXPORT_SYMBOL net/irda/irda 0xd2108314 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xd7c4e04d irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe3463529 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xe3bde43e irias_insert_object +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf0a694a1 irias_find_object +EXPORT_SYMBOL net/irda/irda 0xf5876b95 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0xf7a23f3c irda_notify_init +EXPORT_SYMBOL net/l2tp/l2tp_core 0x1bd9dc47 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x25ad6c34 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x41724b73 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x48428525 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x649d008c lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x68e8ba3a lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xcd7c2d81 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xdd539b6f lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xe4320358 lapb_unregister +EXPORT_SYMBOL net/llc/llc 0x388793b0 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x4773d4ae llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x5430c462 llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x6ce44e6c llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0x9e083597 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0xa0079722 llc_sap_find +EXPORT_SYMBOL net/llc/llc 0xac1cdec5 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0xc35e28f7 llc_sap_list_lock +EXPORT_SYMBOL net/mac80211/mac80211 0x009376f2 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x063ca146 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x11c0e99c __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x1bd0baa0 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x1ca07c27 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x1cebe708 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x1d8f4841 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x1e22ca37 ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0x21a2ae71 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x25300ab5 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x347755dd ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x4200dd29 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x4399d848 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x4559d2fd ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x4706b319 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x4a08ed81 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x4cbb42f8 ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0x4ce31f12 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x4f7e8729 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x5038109f ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x545951cd ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x5bdc7fdf ieee80211_csa_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x5bf02cb1 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x62c37ee7 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x63d178c5 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x64686c33 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0x64a91241 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x65b3482f rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0x6816bd14 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x68b8c24d __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x6b7d60a3 rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x6d16cbb3 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x6eb432a0 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x70bad1a8 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x75aedd19 ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x79ff5afa ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x7b0ad100 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x81667aba ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0x89ad9399 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x8c2f493d ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x8e444e66 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x96c26eff __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x984e8f68 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x99372952 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x995eda00 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x999ce71a ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x9c5e6334 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0xa0cce877 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa1fc36c4 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa2199b5d ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0xa3e17c19 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xa6232ec9 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xa7f51b4e ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xb654da78 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0xb8176091 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xb8edc06c ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xcccafe99 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xd4d008e9 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd8838f02 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xdd277e70 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xdda25fd3 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe82c5be8 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0xe8b1b409 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xea63e3df ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xeb596314 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xeba77811 ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xf29996e7 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xf395de03 ieee80211_aes_cmac_calculate_k1_k2 +EXPORT_SYMBOL net/mac80211/mac80211 0xf76badc1 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac802154/mac802154 0x4cd62de9 ieee802154_unregister_device +EXPORT_SYMBOL net/mac802154/mac802154 0x7ef51c6b ieee802154_free_device +EXPORT_SYMBOL net/mac802154/mac802154 0x86d5bfb2 ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0xacf55cea ieee802154_alloc_device +EXPORT_SYMBOL net/mac802154/mac802154 0xc05a5731 ieee802154_register_device +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0132aa3d register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x099e8648 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0e5b33a3 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x299f48fa ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x33edef25 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5d4676fd unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x76f62493 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8fc81b0c ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa673990b ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb8165716 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb84d642d ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc7ba45bd register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xcbe5175b unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd3983af4 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x0354bb0f nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x193954a6 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x46514fc4 __nf_ct_ext_add_length +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x827cc6a1 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xce85fcaa nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/nf_nat 0x29944711 nf_nat_used_tuple +EXPORT_SYMBOL net/netfilter/nf_nat 0x81f29593 nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0xb210b388 nf_xfrm_me_harder +EXPORT_SYMBOL net/netfilter/nf_nat 0xc11c67c8 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0xcec12171 nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0xf45a6ec2 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/x_tables 0x0788c656 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x0a20fefc xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x0adeffde xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x24ea03af xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x253e8b44 xt_compat_init_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x4aac76c0 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x766cb86a xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x8e0e281b xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xaa0abebc xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xb69b3b6d xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xf7fb59c7 xt_unregister_target +EXPORT_SYMBOL net/nfc/hci/hci 0x096e9f12 nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0x162dac05 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x1e81a458 nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0x2e007a95 nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0x40a9b6a7 nfc_hci_send_response +EXPORT_SYMBOL net/nfc/hci/hci 0x43028a27 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x43e04270 nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0x48855933 nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0x57d907f2 nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x5ea9ef20 nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x79b60b5d nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0x8995979e nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0x8d369768 nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x958b20a7 nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x9ab69002 nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0xa9dd661d nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xbca0b4fd nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xda8e4381 nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0xf0f5cd20 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0xf5d3bf5c nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/nci/nci 0x237280f0 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0x3c14c76f nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0x956fac4c nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x96c67e9d nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0xb44eea26 nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nfc 0x144b8806 nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0x1e026ad4 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x24c119b9 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x39bd2715 nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0x413f50f6 nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0x44c9f8bf nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x49364151 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0x57aaeedb nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x585ed112 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x624e9102 nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0x75fdf831 nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0x7aa7debf nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0x7b80382e nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x80d71cb1 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x9ca91c83 nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0xad86df60 nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0xc8bc6a89 nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0xd9a2fea4 nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0xe9689c97 nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0xf49b38c1 nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc_digital 0xa061f3d6 nfc_digital_unregister_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xadc2e36e nfc_digital_free_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xcc931b1d nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xde82324d nfc_digital_register_device +EXPORT_SYMBOL net/phonet/phonet 0x17c2d5f4 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x2027f27a phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x33e5d43d phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x61b92102 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x6773642c pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x6e1a7e2f pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x85455922 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x9074f212 pn_sock_get_port +EXPORT_SYMBOL net/rds/rds 0x7505d413 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x021d284f rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0deb0e88 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x11c36a28 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x26452ef9 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4cf3d331 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5d0b2eba rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x60c98f79 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7efc0bac rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x943f7ee1 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9fcd677a key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb0cdf39d rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb80c1b91 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc0b46510 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc25d9eeb rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe97c9171 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/sctp/sctp 0x9bab91fd sctp_do_peeloff +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x500a1bae gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xa88f3f3d gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xd5c610b6 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/sunrpc 0x77242913 svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0x86a4e9fa wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0x959ac9ce wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0d336f01 cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0x0d772fc5 cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0x0d7c9d8b wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x0dde17e0 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x1014a287 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x1777158b cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19e03378 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x1c93f960 cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x1d233a21 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x1e2dfa1a cfg80211_roamed_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x1e5056ff cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x1e822fdc cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x1ea5d873 cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x21ae15d9 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x2a555095 cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x2cef422d cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x2f7d2902 cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x2f97fc60 cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x36e998ef cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x3a91d8ed cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x406a8302 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x42f4b86d cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x4c3b5878 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x4c40b2fb ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x4e4f4498 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x531537bc wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x549ae50f ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x56df6bdb cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0x63e67338 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x64bc072f cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x6764fd10 cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6b0c62f8 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x6d5691f1 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x6d6cb9ad ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x76a503dc cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x78c628d7 cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0x7d3acf3b ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x8072cecc cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x80c64059 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x811a9843 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x8159b434 cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x819e283a __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x84303dfe cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0x88309ad8 cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x88c67b1a wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x8b35191a cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x8cd0ba5c wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x94154eef cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x967c15d6 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x9717977b cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0xa1425906 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa6edeb91 cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0xaaa3c860 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0xac8915ac cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xacebaee5 cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xad663390 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0xadbab1b5 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xadbd873b cfg80211_report_obss_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0xbe15398f freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xbf5bcbcf cfg80211_inform_bss_width_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xc15c8611 cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc870a2b8 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xcaba0283 cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0xcf618a57 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0xd1660eff cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xd517e4c5 cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xd8fab722 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xdba126c1 reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0xdf2450f2 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xe585238a cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xe5901aac cfg80211_inform_bss_width +EXPORT_SYMBOL net/wireless/cfg80211 0xee42db3c cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xf5938bef cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xf82fbfcb cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xfcc5d6b3 cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0xfdfccffa ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xfe793d09 cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x041834e6 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x32b686e6 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xab3f9979 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xb6e9baa5 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xbbae3526 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xf4b91d79 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL sound/ac97_bus 0x3bc10651 ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7f39932f snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xceb994cd snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xd7852514 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe8021229 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xd677d8da snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xe409a2ab snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x072d978b snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x13a17752 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2eed26bf snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x4d5ca523 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x592f6e9b snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd7c7afcc snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe60fb228 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xecbde43c snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x136730c9 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x031c4f9d snd_device_register +EXPORT_SYMBOL sound/core/snd 0x042ad4f7 snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x0a2c49d3 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x0a47f93c snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x0d40f201 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x0fd98170 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x15c361d7 snd_card_unref +EXPORT_SYMBOL sound/core/snd 0x17e5a775 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x2cb96695 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x2deceeeb snd_cards +EXPORT_SYMBOL sound/core/snd 0x321a7c71 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x32856646 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x342a2354 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x3641a483 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x36541fa4 snd_card_create +EXPORT_SYMBOL sound/core/snd 0x36a1b2ca snd_component_add +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x4001a4e4 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4b015768 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x57ba422e snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x63cc0432 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x6ff5677a snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x727e926a snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x73ced78d snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x8279ac6e snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x853e6aae snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x9310ffa6 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x94d1e59a snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x996fafcf snd_info_register +EXPORT_SYMBOL sound/core/snd 0x9baf5528 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xc2eb95df snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0xc769fc9c snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0xc87247cf snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xcd049d94 snd_device_new +EXPORT_SYMBOL sound/core/snd 0xcef978fa snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xd3d587af snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xd6557e7d snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xd8835f7d _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0xdddc487b snd_card_register +EXPORT_SYMBOL sound/core/snd 0xe08e1964 snd_card_free +EXPORT_SYMBOL sound/core/snd 0xe1370a28 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xe27530fe snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xe4173e0a snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xe62e6747 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0xec0cd325 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0xee67cd69 snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0xeeb22845 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xfa8e53a9 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xfc9f1a13 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xfe159bea snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0xfffd89db copy_from_user_toio +EXPORT_SYMBOL sound/core/snd-hwdep 0x773aa638 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x06b310c9 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x06f46998 snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3c626c4c snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x48c41173 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x5898dcba snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xc3a451f7 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0xce4f91db snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0010d3a8 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x022e4d91 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x04e47456 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1f1c1532 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x28c966c5 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x292b744b snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x29c33cf3 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x2c4480dd snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x2e7b6ed7 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x2f73942a snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x3352655f snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x4d8b94f7 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x4f62166c snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x5b69ce2b snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x650840c6 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x6786e9c1 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6974e91a snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x6d7a4dbc snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x834dc955 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x8c711e84 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x94098ff8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0x988d9d23 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x9b2f3ee3 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x9b57fbd7 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x9d9f8460 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xa222e1bd snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0xa518c990 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0xa55c5d0f snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xabf06668 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0xac5a2a10 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xb2153028 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xb3e1a81e snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0xb76cd7fd snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbf4ee279 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0xc37d4097 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0xc52d9d45 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xc9014c9f snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0xcbd320de snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xd5fb21a2 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xd7783116 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xd7f2579b snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xe3e33c3c snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xec2d87ea snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xf26ad599 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf90b3e40 snd_pcm_new_internal +EXPORT_SYMBOL sound/core/snd-pcm 0xfc858b16 snd_pcm_debug_name +EXPORT_SYMBOL sound/core/snd-pcm 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL sound/core/snd-rawmidi 0x138bc8ff snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x208e7227 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x37894ded snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x50a9c62b snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5254b868 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x533e5e73 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x536cda70 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x56ad57c3 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x580b84c4 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x76b32425 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7792de6c snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x850b9370 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x99e45408 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9e83a4ee snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe257b848 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe2c9a320 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfa391dd7 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-timer 0x013025de snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x26ba9191 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x46be04ef snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x51fa0f78 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x6e6515b0 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x70a9c274 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x7c0d7e12 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x947ec528 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0xa36379e2 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0xa6025663 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xcb277cdc snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xd9423d8b snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0xf642c9af snd_timer_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x786b3ef6 snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x315c74ad snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x609d1faf snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x914e1817 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb0ebe4eb snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbd2e866d snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xdcefe168 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xdd6eaaec snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xea370243 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xff427bb1 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x44f32626 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5cdd6bfc snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x86ef7211 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xae27092b snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb03e2c9d snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc2957a75 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd644acaf snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd6a1a97c snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xdf5f9d9f snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x08e4e441 amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x20254e45 amdtp_syt_intervals +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x203b6cad amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x26129036 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x36b59990 iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x38465ff0 amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x47b23376 amdtp_out_stream_pcm_pointer +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x49a415ec cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4ce20533 fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4d498f1b amdtp_out_stream_set_parameters +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x53070044 snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x57cb1dae amdtp_out_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x59c7de31 amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5bcbc17a amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5f9118fd iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x626f849e cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x96839b97 fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x9dd7e142 amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb962e66e cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xcd1b3c37 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd53d28a0 cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd5ed5ee6 amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe02b7c4a fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe070854c cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe2c9fd10 amdtp_out_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf01a9660 fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xfd1ff308 fw_iso_resources_free +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x1a5d0301 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x548cd1a7 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x8b00ffae snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa431d08d snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xe30d69a5 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf1b2a92c snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x0a6db34a snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x24305b05 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x49c2ba0b snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x75fa4cba snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xa6efbf92 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xb43418ff snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x24a04fef snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xa279e677 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xdfb25a35 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xf428469a snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x5777cbf5 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xda713206 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x15ad2b3e snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x1be74b2d snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x3d804166 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xa1c9fead snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xc866d462 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x0267cd83 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x20413ddd snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x22d8316e snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x3c43859f snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x7c9e1b41 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x8edcc793 snd_i2c_probeaddr +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x0fad2e38 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x1f42b478 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4a1461eb snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x58f53993 snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x6173cf65 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x6be41153 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x70a35936 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa62227b6 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xd89bf506 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe56e1e4a snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x669a21bc snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe0b3f690 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xec137d51 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xfd760e6d snd_sb16dsp_configure +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x06944a22 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2bbb7218 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2bd4155a snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2bee2347 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x35dffa4d snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x882260ab snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x88b99ce2 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x97113674 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x985366d1 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa85fce43 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb318b908 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc6cd9792 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd6444d89 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xefe0b40a snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf0aad76e snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf7626e24 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfcfb36b1 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0d7684f0 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0f64232c snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x2ebfe569 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4364b7c2 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x9e922548 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd7fb5fdb snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe350c208 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf28f2ff3 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xfee65afe snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x15e47429 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xb01b8731 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xfba47980 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1656a31f oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1f3df0b7 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2b58ed75 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4aa01b94 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4c47fda2 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5664e370 oxygen_pci_pm +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x65836ad6 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6940924e oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9e5f01b3 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa46ecd83 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb10a3977 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb550e841 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc1b49fb6 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc1f6c4c1 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc56fed4d oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd0945201 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd398ca76 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe5aff738 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf2446494 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf7395543 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x55cf927d snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x75cb90c4 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x7dbd0ede snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xb30ab2d0 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xe20fa3e0 snd_trident_start_voice +EXPORT_SYMBOL sound/soundcore 0x39d86571 sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x55de3150 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x6028d83b snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xa40d8915 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xb5e1ac34 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xd211761c snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xefbc5637 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x15300bba __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x63f138fd snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x6c62639c __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x87325e7d __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xb019b436 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xcd1eb8a6 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xd13e33fd snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0xde9191ea snd_util_memhdr_free +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9a50623 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL vmlinux 0x00000000 __symbol_put +EXPORT_SYMBOL vmlinux 0x00000000 alloc_pages_current +EXPORT_SYMBOL vmlinux 0x00000000 current_fs_time +EXPORT_SYMBOL vmlinux 0x00000000 d_tmpfile +EXPORT_SYMBOL vmlinux 0x00000000 do_sync_read +EXPORT_SYMBOL vmlinux 0x00000000 filp_close +EXPORT_SYMBOL vmlinux 0x00000000 finish_open +EXPORT_SYMBOL vmlinux 0x00000000 generic_getxattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_write_sync +EXPORT_SYMBOL vmlinux 0x00000000 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x00000000 in_group_p +EXPORT_SYMBOL vmlinux 0x00000000 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x00000000 iov_shorten +EXPORT_SYMBOL vmlinux 0x00000000 iterate_fd +EXPORT_SYMBOL vmlinux 0x00000000 ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 path_is_under +EXPORT_SYMBOL vmlinux 0x00000000 register_exec_domain +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout +EXPORT_SYMBOL vmlinux 0x00000000 sock_register +EXPORT_SYMBOL vmlinux 0x00000000 sys_close +EXPORT_SYMBOL vmlinux 0x00000000 task_nice +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x00000000 vm_brk +EXPORT_SYMBOL vmlinux 0x0018af00 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x0019ed59 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x003103b9 blk_get_request +EXPORT_SYMBOL vmlinux 0x003534f9 __brelse +EXPORT_SYMBOL vmlinux 0x0047d695 pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0x00533bb1 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x005a4975 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x00819a07 d_path +EXPORT_SYMBOL vmlinux 0x008d1247 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x00bf1849 scsi_register +EXPORT_SYMBOL vmlinux 0x00cee6b1 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x00cf4a7f of_get_parent +EXPORT_SYMBOL vmlinux 0x00f6065c blk_make_request +EXPORT_SYMBOL vmlinux 0x00f9ec28 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0101d5b1 ip_idents_reserve +EXPORT_SYMBOL vmlinux 0x0122f95e _lv1_get_spe_irq_outlet +EXPORT_SYMBOL vmlinux 0x012a97fc xor_altivec_4 +EXPORT_SYMBOL vmlinux 0x01450e9c skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x0149cb9a vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x015c2dfc input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x018d9919 _lv1_set_lpm_interrupt_mask +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x019e7765 __init_rwsem +EXPORT_SYMBOL vmlinux 0x01c3a423 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x01c8e84d ida_simple_get +EXPORT_SYMBOL vmlinux 0x01c9931c vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x01dad6e8 phy_device_create +EXPORT_SYMBOL vmlinux 0x01e80668 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x01eb53ed blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x020388ce iterate_dir +EXPORT_SYMBOL vmlinux 0x020d18d7 _lv1_set_lpm_debug_bus_control +EXPORT_SYMBOL vmlinux 0x023a074a hvc_get_chars +EXPORT_SYMBOL vmlinux 0x023ec53f kill_pgrp +EXPORT_SYMBOL vmlinux 0x025346fe sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x026b6bf3 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x027d5499 _lv1_did_update_interrupt_mask +EXPORT_SYMBOL vmlinux 0x029e8a1e add_disk +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02ac156b tcp_connect +EXPORT_SYMBOL vmlinux 0x02be9572 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x02da427a dev_uc_del +EXPORT_SYMBOL vmlinux 0x02df0f11 ipmi_get_smi_info +EXPORT_SYMBOL vmlinux 0x02f7f174 pipe_unlock +EXPORT_SYMBOL vmlinux 0x031dc65e pasemi_dma_free_chan +EXPORT_SYMBOL vmlinux 0x031e6d78 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x03255dd2 pipe_lock +EXPORT_SYMBOL vmlinux 0x0329ca45 thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x032f3a74 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x034eea36 __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x035b6f7a tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x036f2cac of_find_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x038daa4f vm_mmap +EXPORT_SYMBOL vmlinux 0x0391d15b sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03c2abc2 ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x03c73f83 mmc_start_req +EXPORT_SYMBOL vmlinux 0x03cd70ad security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x03da4c51 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x03dcff47 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x03ebda85 dns_query +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04074f48 ioremap +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x04361036 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x0440a533 _lv1_net_remove_multicast_address +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x046fdc7e pci_enable_ido +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x048d27cc hvcs_register_connection +EXPORT_SYMBOL vmlinux 0x04997458 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04ea5d10 ksize +EXPORT_SYMBOL vmlinux 0x051841ad scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x0527e55d sock_create +EXPORT_SYMBOL vmlinux 0x0530dede _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x053eaa71 dst_discard +EXPORT_SYMBOL vmlinux 0x0540b32a cpu_core_map +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x055c8559 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x057c3928 kernel_accept +EXPORT_SYMBOL vmlinux 0x0593a99b init_timer_key +EXPORT_SYMBOL vmlinux 0x059fe53e mntget +EXPORT_SYMBOL vmlinux 0x059fea09 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05d0fddf mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x05fdad64 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0622f2a2 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x06298a13 padata_add_cpu +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x06456aff _lv1_get_virtual_address_space_id_of_ppe +EXPORT_SYMBOL vmlinux 0x064c0261 cpumask_set_cpu_local_first +EXPORT_SYMBOL vmlinux 0x0661595a netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x0667ab00 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x06797871 vm_stat +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06820d8b scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x069e9efb input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x06aaf927 bio_add_page +EXPORT_SYMBOL vmlinux 0x06bbb24a mempool_resize +EXPORT_SYMBOL vmlinux 0x06d57629 sock_update_classid +EXPORT_SYMBOL vmlinux 0x06e3ecad input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x06f2f0c8 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x0701d7fd write_inode_now +EXPORT_SYMBOL vmlinux 0x07065ef6 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x0712e13b i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x07489059 user_path_create +EXPORT_SYMBOL vmlinux 0x074e9213 down_killable +EXPORT_SYMBOL vmlinux 0x0754fd8d inet_recvmsg +EXPORT_SYMBOL vmlinux 0x0789e126 input_inject_event +EXPORT_SYMBOL vmlinux 0x078f8b73 gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a7386a max8998_update_reg +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07beb874 get_super +EXPORT_SYMBOL vmlinux 0x07c410aa mount_subtree +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07cc6c35 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x07d0f990 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x07e10ad1 vio_cmo_set_dev_desired +EXPORT_SYMBOL vmlinux 0x07ef213a pasemi_dma_free_fun +EXPORT_SYMBOL vmlinux 0x07f8ee15 _lv1_unmap_device_dma_region +EXPORT_SYMBOL vmlinux 0x07fccc1c neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x0814497c input_allocate_device +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083c2cbe of_get_next_parent +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x08436d0d fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x08463345 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x0874b30d dev_printk +EXPORT_SYMBOL vmlinux 0x08a54b32 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x08b20376 sys_copyarea +EXPORT_SYMBOL vmlinux 0x08e27ee5 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x08ecfd75 elevator_exit +EXPORT_SYMBOL vmlinux 0x08f868be iterate_supers_type +EXPORT_SYMBOL vmlinux 0x09094ea6 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x090b3929 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x09107aa0 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x0935f02f dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x09412bf5 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x0944cfce dma_common_mmap +EXPORT_SYMBOL vmlinux 0x096341c2 _lv1_connect_irq_plug_ext +EXPORT_SYMBOL vmlinux 0x097f84f6 elv_rb_add +EXPORT_SYMBOL vmlinux 0x0981aab9 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x09881a4b scsi_block_requests +EXPORT_SYMBOL vmlinux 0x098b3d7f kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09966a05 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x09b336c8 scsi_host_put +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09e3e7f9 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x09e8b1be ps3_sb_event_receive_port_setup +EXPORT_SYMBOL vmlinux 0x0a1ec861 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a29cd8c revalidate_disk +EXPORT_SYMBOL vmlinux 0x0a3d0644 cpu_online_mask +EXPORT_SYMBOL vmlinux 0x0a5549a4 skb_put +EXPORT_SYMBOL vmlinux 0x0a770832 register_memory_notifier +EXPORT_SYMBOL vmlinux 0x0a8faf2f alloc_fcdev +EXPORT_SYMBOL vmlinux 0x0a97b25c file_ns_capable +EXPORT_SYMBOL vmlinux 0x0aa2898a pci_dev_driver +EXPORT_SYMBOL vmlinux 0x0ab35b92 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x0abd8ed9 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad01e21 bio_map_kern +EXPORT_SYMBOL vmlinux 0x0ae3a7f9 elevator_change +EXPORT_SYMBOL vmlinux 0x0afde49e bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x0b0411ec pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b0e6413 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b2e1ec7 h_get_mpp +EXPORT_SYMBOL vmlinux 0x0b349b19 try_to_writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x0b3fa26f fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x0b56117f of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x0b57b12c srp_start_tl_fail_timers +EXPORT_SYMBOL vmlinux 0x0b58a71a get_thermal_instance +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b751295 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x0b77115c __inet6_hash +EXPORT_SYMBOL vmlinux 0x0b841a1e pci_enable_ltr +EXPORT_SYMBOL vmlinux 0x0b9f5479 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x0bacf613 finish_no_open +EXPORT_SYMBOL vmlinux 0x0bafdd5d generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x0bbc5908 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x0bbf74b6 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x0bbf7fe1 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bdbda6a __serio_register_port +EXPORT_SYMBOL vmlinux 0x0be01f54 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x0c0dfdf5 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x0c149b07 __genl_register_family +EXPORT_SYMBOL vmlinux 0x0c1ad162 _lv1_net_start_rx_dma +EXPORT_SYMBOL vmlinux 0x0c45fc96 vfs_lstat +EXPORT_SYMBOL vmlinux 0x0c55359c unregister_quota_format +EXPORT_SYMBOL vmlinux 0x0c58a8cd netdev_increment_features +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c7f42bd ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x0c8be399 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c9890d0 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0ccf2f93 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x0ce900af blk_finish_plug +EXPORT_SYMBOL vmlinux 0x0d00d0ee inet6_del_offload +EXPORT_SYMBOL vmlinux 0x0d065c70 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x0d13fec5 iget5_locked +EXPORT_SYMBOL vmlinux 0x0d2fc49c gen10g_restart_aneg +EXPORT_SYMBOL vmlinux 0x0d49c786 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d545875 netdev_features_change +EXPORT_SYMBOL vmlinux 0x0d6c963c copy_from_user +EXPORT_SYMBOL vmlinux 0x0d706014 pcie_get_mps +EXPORT_SYMBOL vmlinux 0x0d824d93 tty_name +EXPORT_SYMBOL vmlinux 0x0d8a4b13 lock_may_write +EXPORT_SYMBOL vmlinux 0x0d93710d generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x0d95ccdf padata_alloc +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0db03b50 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x0db832e3 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x0dd7f44d pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x0ddfa548 pci_choose_state +EXPORT_SYMBOL vmlinux 0x0df16eab ip6_expire_frag_queue +EXPORT_SYMBOL vmlinux 0x0e2c8804 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x0e6b81bc pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x0e6da44a set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x0e7537e7 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x0e8f30f6 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x0ed923e0 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x0ee39fc4 bdi_init +EXPORT_SYMBOL vmlinux 0x0ee7c072 filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0x0eece836 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x0efcbb1b set_current_groups +EXPORT_SYMBOL vmlinux 0x0f04cd58 cdrom_open +EXPORT_SYMBOL vmlinux 0x0f1b5174 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x0f23d72d block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x0f31dfb2 kdb_current_task +EXPORT_SYMBOL vmlinux 0x0f404ef0 vga_client_register +EXPORT_SYMBOL vmlinux 0x0f4c91ed ns_to_timespec +EXPORT_SYMBOL vmlinux 0x0f5faa7e wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x0f69ba45 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x0f747ed3 agp_create_memory +EXPORT_SYMBOL vmlinux 0x0f767027 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x0fa58d9b iget_failed +EXPORT_SYMBOL vmlinux 0x0fac11b6 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fc736e9 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x0fd86092 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x0fdba997 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x0fe1798f bio_put +EXPORT_SYMBOL vmlinux 0x0fec02e1 wait_iff_congested +EXPORT_SYMBOL vmlinux 0x103ae190 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x107c1f20 prepare_creds +EXPORT_SYMBOL vmlinux 0x10805d43 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x109bb205 vm_map_ram +EXPORT_SYMBOL vmlinux 0x10a36381 udp_prot +EXPORT_SYMBOL vmlinux 0x10a6f508 install_exec_creds +EXPORT_SYMBOL vmlinux 0x10d587b1 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x10e3ee3e xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x10ebdfb5 skb_insert +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f4dbcf cdrom_release +EXPORT_SYMBOL vmlinux 0x10fb6c3e pci_scan_slot +EXPORT_SYMBOL vmlinux 0x11058256 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x11072767 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x111bb167 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x115539c0 dm_io +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x1171b635 _lv1_delete_lpm_event_bookmark +EXPORT_SYMBOL vmlinux 0x1182d83a cpuidle_disable +EXPORT_SYMBOL vmlinux 0x1185f5e7 sock_no_getname +EXPORT_SYMBOL vmlinux 0x118befbd mnt_pin +EXPORT_SYMBOL vmlinux 0x118ee8bb devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x11abb48e free_netdev +EXPORT_SYMBOL vmlinux 0x11b0fe59 genphy_resume +EXPORT_SYMBOL vmlinux 0x11c9185c of_iomap +EXPORT_SYMBOL vmlinux 0x11ee7a51 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x12029bb8 padata_free +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x120b5906 blk_mq_insert_request +EXPORT_SYMBOL vmlinux 0x120d67d4 unregister_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x12203ac3 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x122043a8 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x1236f1b9 seq_open +EXPORT_SYMBOL vmlinux 0x127686df xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x1282e5ca agp_enable +EXPORT_SYMBOL vmlinux 0x129348d4 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12a659ee phy_stop +EXPORT_SYMBOL vmlinux 0x12b08f0a skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x12be8f33 dev_open +EXPORT_SYMBOL vmlinux 0x12cb6622 _lv1_map_device_dma_region +EXPORT_SYMBOL vmlinux 0x12dfeb12 vprintk_emit +EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level +EXPORT_SYMBOL vmlinux 0x12e9fba3 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x12fcc815 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x1313ac3e call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x13307fde vsscanf +EXPORT_SYMBOL vmlinux 0x13431558 make_kgid +EXPORT_SYMBOL vmlinux 0x1348760d ipmi_request_settime +EXPORT_SYMBOL vmlinux 0x136c05c6 dump_align +EXPORT_SYMBOL vmlinux 0x1388aff1 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x13a39671 dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x13a4a529 devfreq_add_device +EXPORT_SYMBOL vmlinux 0x13abc940 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x13affbda percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13dc2364 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x13e38f5c up_read +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13f53da6 CMO_PageSize +EXPORT_SYMBOL vmlinux 0x1419f20c udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x141fe5fd pasemi_read_iob_reg +EXPORT_SYMBOL vmlinux 0x1447e7b8 dump_emit +EXPORT_SYMBOL vmlinux 0x1449c96a pci_fixup_device +EXPORT_SYMBOL vmlinux 0x14541f05 sk_wait_data +EXPORT_SYMBOL vmlinux 0x145ec4ab ipmi_smi_watcher_unregister +EXPORT_SYMBOL vmlinux 0x146f72ed drop_nlink +EXPORT_SYMBOL vmlinux 0x14707e61 generic_write_end +EXPORT_SYMBOL vmlinux 0x148ce272 d_instantiate_no_diralias +EXPORT_SYMBOL vmlinux 0x14949f9d of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x149c1129 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x149fe92a backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x14a14817 pSeries_enable_reloc_on_exc +EXPORT_SYMBOL vmlinux 0x14c38066 registered_fb +EXPORT_SYMBOL vmlinux 0x1514dc49 balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0x151592c4 _lv1_invalidate_htab_entries +EXPORT_SYMBOL vmlinux 0x151a98ae sock_no_poll +EXPORT_SYMBOL vmlinux 0x153c22f6 from_kprojid_munged +EXPORT_SYMBOL vmlinux 0x15449fdf padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0x1549f352 pci_disable_device +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x154e7824 i2c_bit_add_bus +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x155a5e04 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x156aa9f3 proc_set_size +EXPORT_SYMBOL vmlinux 0x15864b03 flex_array_get +EXPORT_SYMBOL vmlinux 0x15ad7a78 __seq_open_private +EXPORT_SYMBOL vmlinux 0x15bd6838 put_tty_driver +EXPORT_SYMBOL vmlinux 0x15d3fd60 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x15ded7fc simple_transaction_set +EXPORT_SYMBOL vmlinux 0x15f571ec blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x15f5a72e dma_find_channel +EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token +EXPORT_SYMBOL vmlinux 0x1617d39c blk_free_tags +EXPORT_SYMBOL vmlinux 0x163936f5 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x164f2230 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x1660944a pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x167c5967 print_hex_dump +EXPORT_SYMBOL vmlinux 0x168834dd buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x16903540 napi_complete +EXPORT_SYMBOL vmlinux 0x16a69591 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x16c41f4f dquot_acquire +EXPORT_SYMBOL vmlinux 0x16c5f5f1 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x16c751c5 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x16d7c785 input_grab_device +EXPORT_SYMBOL vmlinux 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL vmlinux 0x1702d5dd pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x1716603a splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x17349c12 register_key_type +EXPORT_SYMBOL vmlinux 0x173b465d blk_put_queue +EXPORT_SYMBOL vmlinux 0x1743414f __debugger_fault_handler +EXPORT_SYMBOL vmlinux 0x176045ba dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x17648396 dev_base_lock +EXPORT_SYMBOL vmlinux 0x17863cda clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x17a7bfad __dst_free +EXPORT_SYMBOL vmlinux 0x17b1125d gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x17cb8c79 _lv1_read_htab_entries +EXPORT_SYMBOL vmlinux 0x17e17525 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x17e28473 fsl_upm_run_pattern +EXPORT_SYMBOL vmlinux 0x17f0fbc5 blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x1808023c jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x180c580d dev_change_flags +EXPORT_SYMBOL vmlinux 0x1819f959 __f_setown +EXPORT_SYMBOL vmlinux 0x18265562 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x182815d7 inet_getname +EXPORT_SYMBOL vmlinux 0x182f50af _lv1_open_device +EXPORT_SYMBOL vmlinux 0x183b18e0 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x1857aa39 proc_dointvec +EXPORT_SYMBOL vmlinux 0x18664eab dev_uc_init +EXPORT_SYMBOL vmlinux 0x186b5f2c bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x186c9287 give_up_console +EXPORT_SYMBOL vmlinux 0x187a18ee tty_port_destroy +EXPORT_SYMBOL vmlinux 0x18809b8f icmpv6_send +EXPORT_SYMBOL vmlinux 0x188a3dfb timespec_trunc +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18988eaf dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x1898b0e7 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x18af3e89 make_bad_inode +EXPORT_SYMBOL vmlinux 0x18b3f2df vio_enable_interrupts +EXPORT_SYMBOL vmlinux 0x18c98205 _lv1_destruct_virtual_address_space +EXPORT_SYMBOL vmlinux 0x18d2ae90 phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x190988af nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x19111a40 lockref_get_not_zero +EXPORT_SYMBOL vmlinux 0x19444627 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x194eb484 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x196c6ec0 vfs_writev +EXPORT_SYMBOL vmlinux 0x19761d24 del_gendisk +EXPORT_SYMBOL vmlinux 0x1982020c mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x19929bc4 softnet_data +EXPORT_SYMBOL vmlinux 0x1992a747 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x199ba624 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x199ec4fb arch_spin_unlock_wait +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19c968d1 pasemi_dma_start_chan +EXPORT_SYMBOL vmlinux 0x19ca5fe9 mpage_readpages +EXPORT_SYMBOL vmlinux 0x19cc0e03 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x19dda6ac pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0x19e6a408 page_readlink +EXPORT_SYMBOL vmlinux 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL vmlinux 0x1a111a41 ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x1a2c0abe generic_listxattr +EXPORT_SYMBOL vmlinux 0x1a2f6945 __next_cpu +EXPORT_SYMBOL vmlinux 0x1a6a91a5 sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0x1a796c7d neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x1a91663d pasemi_dma_free_buf +EXPORT_SYMBOL vmlinux 0x1a92fd4b misc_register +EXPORT_SYMBOL vmlinux 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL vmlinux 0x1aba6926 dev_load +EXPORT_SYMBOL vmlinux 0x1ac5d3cb strcspn +EXPORT_SYMBOL vmlinux 0x1acb5d40 dscr_default +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1af62a99 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x1afd7e72 init_buffer +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b132009 rename_lock +EXPORT_SYMBOL vmlinux 0x1b1e1088 sg_nents +EXPORT_SYMBOL vmlinux 0x1b1e5a08 security_mmap_file +EXPORT_SYMBOL vmlinux 0x1b450db9 free_task +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b668152 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x1b82fefa md_unplug +EXPORT_SYMBOL vmlinux 0x1b8959fd serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1ba53bc1 of_device_register +EXPORT_SYMBOL vmlinux 0x1bb534d4 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x1bbe6c3a sk_stream_error +EXPORT_SYMBOL vmlinux 0x1bc39db7 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1bdc26cf sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x1bdc84fc clear_user_page +EXPORT_SYMBOL vmlinux 0x1bdce2e4 kfree_put_link +EXPORT_SYMBOL vmlinux 0x1be202f5 freezing_slow_path +EXPORT_SYMBOL vmlinux 0x1bfec830 __iounmap_at +EXPORT_SYMBOL vmlinux 0x1c200a7d pasemi_dma_stop_chan +EXPORT_SYMBOL vmlinux 0x1c31f953 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x1c3e02e4 memcmp +EXPORT_SYMBOL vmlinux 0x1c4dab93 _lv1_connect_irq_plug +EXPORT_SYMBOL vmlinux 0x1c4fa6be __sb_end_write +EXPORT_SYMBOL vmlinux 0x1c5a5777 mmc_gpio_free_ro +EXPORT_SYMBOL vmlinux 0x1c5b2c15 pmu_wait_complete +EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check +EXPORT_SYMBOL vmlinux 0x1c96a569 blk_start_request +EXPORT_SYMBOL vmlinux 0x1cce04f6 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x1cd83ea0 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x1ce4c83a netif_rx +EXPORT_SYMBOL vmlinux 0x1d0f2893 mmc_start_bkops +EXPORT_SYMBOL vmlinux 0x1d4750bc _lv1_stop_lpm +EXPORT_SYMBOL vmlinux 0x1d61a5e1 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x1d83ec82 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x1d852768 blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0x1d9815f5 tty_register_device +EXPORT_SYMBOL vmlinux 0x1daee28a percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x1daff942 tty_throttle +EXPORT_SYMBOL vmlinux 0x1db0a091 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x1db2881d datagram_poll +EXPORT_SYMBOL vmlinux 0x1dbc4d0c proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1e01e82d pci_clear_master +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e3a2c57 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x1e46c446 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e86d6f7 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x1e908971 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x1e909663 uart_register_driver +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1eb51851 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x1eb82f05 seq_escape +EXPORT_SYMBOL vmlinux 0x1ec3bed9 hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x1ec9856f blk_end_request +EXPORT_SYMBOL vmlinux 0x1ecbaf8c ps3_dma_region_free +EXPORT_SYMBOL vmlinux 0x1ed10100 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x1ed3ff32 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x1ed4edb0 release_pages +EXPORT_SYMBOL vmlinux 0x1ee8b1d2 scsi_get_command +EXPORT_SYMBOL vmlinux 0x1ee8fb10 flush_dcache_icache_page +EXPORT_SYMBOL vmlinux 0x1f520a0c key_put +EXPORT_SYMBOL vmlinux 0x1f6ce67a sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x1f7b4bc1 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x1f87afc9 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x1f8deac8 lro_flush_all +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fbef299 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd3ad05 neigh_direct_output +EXPORT_SYMBOL vmlinux 0x1fe7b4ab pasemi_write_dma_reg +EXPORT_SYMBOL vmlinux 0x1fe84fef ps2_command +EXPORT_SYMBOL vmlinux 0x1fe912f1 netdev_alloc_frag +EXPORT_SYMBOL vmlinux 0x1fe9f800 unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x201494ee _lv1_net_set_interrupt_mask +EXPORT_SYMBOL vmlinux 0x201bd4ed fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x201daf54 frontswap_register_ops +EXPORT_SYMBOL vmlinux 0x20218988 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x203b1766 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x2043d2e2 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x2073b88b done_path_create +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20a86b3f of_get_pci_address +EXPORT_SYMBOL vmlinux 0x20b2bb2d param_array_ops +EXPORT_SYMBOL vmlinux 0x20b72487 pci_select_bars +EXPORT_SYMBOL vmlinux 0x20c55ae0 sscanf +EXPORT_SYMBOL vmlinux 0x20ca90a2 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x20d7157c alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x20fb4778 nf_reinject +EXPORT_SYMBOL vmlinux 0x20fbb859 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x210a3908 f_setown +EXPORT_SYMBOL vmlinux 0x2112b27d compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x211a41fc __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x213603bf pasemi_dma_free_ring +EXPORT_SYMBOL vmlinux 0x214291a8 dquot_drop +EXPORT_SYMBOL vmlinux 0x2148b1c0 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x216cde37 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x218a17b4 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x218de64e inet_stream_connect +EXPORT_SYMBOL vmlinux 0x22060291 generic_removexattr +EXPORT_SYMBOL vmlinux 0x2212f804 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2253effb dquot_commit_info +EXPORT_SYMBOL vmlinux 0x225e508b vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x225ebee6 _lv1_destruct_lpm +EXPORT_SYMBOL vmlinux 0x22751915 fb_pan_display +EXPORT_SYMBOL vmlinux 0x227634d4 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2278e94b slhc_remember +EXPORT_SYMBOL vmlinux 0x229decf3 __bread +EXPORT_SYMBOL vmlinux 0x22ae767f scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22c1dc82 tty_free_termios +EXPORT_SYMBOL vmlinux 0x22ef0db2 pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0x22f34b0f padata_stop +EXPORT_SYMBOL vmlinux 0x22f6c82b dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x22f92b14 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x22f9c9da pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x23555bd2 udp_proc_register +EXPORT_SYMBOL vmlinux 0x235e90f3 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x2364e904 register_netdevice +EXPORT_SYMBOL vmlinux 0x23676637 iput +EXPORT_SYMBOL vmlinux 0x2367b503 simple_statfs +EXPORT_SYMBOL vmlinux 0x2374c6b8 dev_change_carrier +EXPORT_SYMBOL vmlinux 0x238c1bb1 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23ae5087 mount_ns +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23c3fc49 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x23c9891c kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x23ed3cbc __cleancache_invalidate_page +EXPORT_SYMBOL vmlinux 0x23f2243d mempool_free +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24212d86 __frontswap_invalidate_page +EXPORT_SYMBOL vmlinux 0x2424a4c7 nf_log_register +EXPORT_SYMBOL vmlinux 0x242c4c08 find_vma +EXPORT_SYMBOL vmlinux 0x243a2a81 d_find_alias +EXPORT_SYMBOL vmlinux 0x2442755e set_bh_page +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2443a40c filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x244a2411 __first_cpu +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245a5a94 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x2462f426 tcp_prot +EXPORT_SYMBOL vmlinux 0x2475a7ee fbcon_rotate_ccw +EXPORT_SYMBOL vmlinux 0x247dbd64 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x2483782c jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x2484adc3 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0x248ae896 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x248e381e dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0x24bdce74 inode_reclaim_rsv_space +EXPORT_SYMBOL vmlinux 0x24cfd438 _lv1_copy_lpm_trace_buffer +EXPORT_SYMBOL vmlinux 0x24d11f5b vfs_mkdir +EXPORT_SYMBOL vmlinux 0x24ec3c09 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x2512a714 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x25178c46 neigh_destroy +EXPORT_SYMBOL vmlinux 0x251bbd61 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x2554120f pci_enable_obff +EXPORT_SYMBOL vmlinux 0x255c3cd3 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x2567fb9c __ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x25707d57 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x2572dac6 seq_bitmap +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x259a5f7f max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x259a695a vfs_getattr +EXPORT_SYMBOL vmlinux 0x25aabfe8 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x25b6b8f7 _lv1_set_spe_transition_notifier +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25ccfb3c rt6_lookup +EXPORT_SYMBOL vmlinux 0x25ec4c5e pskb_expand_head +EXPORT_SYMBOL vmlinux 0x25f94822 mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0x260cf8f8 of_get_property +EXPORT_SYMBOL vmlinux 0x26226166 thaw_bdev +EXPORT_SYMBOL vmlinux 0x2622f457 pipe_to_file +EXPORT_SYMBOL vmlinux 0x2623d008 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x2624856b secpath_dup +EXPORT_SYMBOL vmlinux 0x262fbb90 __nlmsg_put +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x263c5e1c vm_insert_page +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x264ecae5 netlink_net_capable +EXPORT_SYMBOL vmlinux 0x2650d835 sysctl_ip_early_demux +EXPORT_SYMBOL vmlinux 0x2665d53a key_create_or_update +EXPORT_SYMBOL vmlinux 0x266efd55 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x26b67869 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x26b760c4 slhc_init +EXPORT_SYMBOL vmlinux 0x26e298e0 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f0453a blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x2712f4f5 crc32_le_combine +EXPORT_SYMBOL vmlinux 0x2714a161 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x27223c85 __neigh_create +EXPORT_SYMBOL vmlinux 0x2723a6fe blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x2728a139 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x2742303d ip6_frag_init +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x27646df3 start_thread +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27a7b148 devm_ioremap_prot +EXPORT_SYMBOL vmlinux 0x27a85824 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c57a35 d_validate +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27f2313e idr_replace +EXPORT_SYMBOL vmlinux 0x2800d79f md_error +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x282136f3 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x282532ab xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x28318305 snprintf +EXPORT_SYMBOL vmlinux 0x28369b00 proc_mkdir +EXPORT_SYMBOL vmlinux 0x28374665 pci_request_regions +EXPORT_SYMBOL vmlinux 0x285344a1 devm_iounmap +EXPORT_SYMBOL vmlinux 0x289500f3 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x28a09957 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28abfe6e scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x28f1698d pci_set_power_state +EXPORT_SYMBOL vmlinux 0x28f28b41 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0x293845df blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x2938bb4a serio_open +EXPORT_SYMBOL vmlinux 0x29401e0f md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2960019b eeh_check_failure +EXPORT_SYMBOL vmlinux 0x298b4d12 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x29a67408 make_kprojid +EXPORT_SYMBOL vmlinux 0x29bd1d42 get_user_pages +EXPORT_SYMBOL vmlinux 0x29c9188c ata_print_version +EXPORT_SYMBOL vmlinux 0x29e7e70b mpage_readpage +EXPORT_SYMBOL vmlinux 0x29ec6c59 __skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x2a1725d4 md_flush_request +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a4b3a10 i2c_transfer +EXPORT_SYMBOL vmlinux 0x2ac4de25 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x2acf0feb vfs_fstat +EXPORT_SYMBOL vmlinux 0x2ad54cfe __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x2adbba80 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x2b0a0ca5 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b0cfa25 jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b3180a9 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x2b81b571 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2b9f1166 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2ba9d7b0 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x2bb89fe1 dm_kobject_release +EXPORT_SYMBOL vmlinux 0x2bb9f187 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x2bbbb632 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x2bc1c1aa phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0x2bd3c11e generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x2bd881f1 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x2bdd7644 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x2c1009ef block_read_full_page +EXPORT_SYMBOL vmlinux 0x2c1cd4a4 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c2e8c9f filemap_flush +EXPORT_SYMBOL vmlinux 0x2c4c7997 _lv1_construct_lpm +EXPORT_SYMBOL vmlinux 0x2c6f77aa netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x2c7b1fca down_timeout +EXPORT_SYMBOL vmlinux 0x2c7cd266 __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x2c8932dd fbcon_rotate_cw +EXPORT_SYMBOL vmlinux 0x2c900d91 cpufreq_put_global_kobject +EXPORT_SYMBOL vmlinux 0x2cbac7ce skb_checksum_help +EXPORT_SYMBOL vmlinux 0x2cf73cb7 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x2cf7a193 devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x2d03c10d posix_acl_create +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d379958 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x2d40cba3 __ps2_command +EXPORT_SYMBOL vmlinux 0x2d434561 kobject_del +EXPORT_SYMBOL vmlinux 0x2d7d2767 _lv1_set_lpm_group_control +EXPORT_SYMBOL vmlinux 0x2d806393 sk_net_capable +EXPORT_SYMBOL vmlinux 0x2d80d717 nobh_write_end +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2daaaba9 param_get_byte +EXPORT_SYMBOL vmlinux 0x2db1e0c6 dql_init +EXPORT_SYMBOL vmlinux 0x2dbaef7b clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x2dd8c009 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x2dd8eda2 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x2deda4a1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x2dfe51d0 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x2e0d2f7f queue_work_on +EXPORT_SYMBOL vmlinux 0x2e17a5f6 security_file_permission +EXPORT_SYMBOL vmlinux 0x2e1bef92 eeh_subsystem_enabled +EXPORT_SYMBOL vmlinux 0x2e22748e security_path_unlink +EXPORT_SYMBOL vmlinux 0x2e2b40d2 strncat +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e33ed86 genlmsg_put +EXPORT_SYMBOL vmlinux 0x2e42b70d tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x2e59af1b sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0x2e5edc03 dev_mc_init +EXPORT_SYMBOL vmlinux 0x2e7ac49a key_type_keyring +EXPORT_SYMBOL vmlinux 0x2e93495e _lv1_write_htab_entry +EXPORT_SYMBOL vmlinux 0x2eae200d bprm_change_interp +EXPORT_SYMBOL vmlinux 0x2ec5412d ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x2ed2ffd8 sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0x2ee4337f smu_queue_cmd +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2ef8fb95 blk_run_queue_async +EXPORT_SYMBOL vmlinux 0x2efbd066 __frontswap_load +EXPORT_SYMBOL vmlinux 0x2efe560e dst_release +EXPORT_SYMBOL vmlinux 0x2efe8f9a md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f46a6b9 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x2f6e6253 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x2f826b97 touch_buffer +EXPORT_SYMBOL vmlinux 0x2f89daf0 mutex_lock +EXPORT_SYMBOL vmlinux 0x2fa8efac neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x2faa3e4d input_get_keycode +EXPORT_SYMBOL vmlinux 0x2fae96de rtas_data_buf_lock +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2fea704c blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x2ff2350a phy_device_free +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x3024926d from_kuid +EXPORT_SYMBOL vmlinux 0x30273723 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x303cebbe netdev_update_features +EXPORT_SYMBOL vmlinux 0x304d0082 pci_pme_active +EXPORT_SYMBOL vmlinux 0x305ad1ae bdev_read_only +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x308c2c76 phy_device_register +EXPORT_SYMBOL vmlinux 0x309d24cc ata_port_printk +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30ab6ac7 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x30aff2ed ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0x30b527de generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x30b7f905 ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0x30b8b35c cpu_to_chip_id +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30fa5423 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x3102d70b frontswap_curr_pages +EXPORT_SYMBOL vmlinux 0x3120aadf tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x312cfaf2 _lv1_disable_logical_spe +EXPORT_SYMBOL vmlinux 0x3136bab0 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x3138c0d6 proto_register +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x3149ca95 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x318accf2 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x318cadb1 reciprocal_value +EXPORT_SYMBOL vmlinux 0x318f54e5 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x319e0726 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x31b7f300 _lv1_set_lpm_signal +EXPORT_SYMBOL vmlinux 0x31ba3724 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x31cd509a _lv1_net_control +EXPORT_SYMBOL vmlinux 0x31cd995b store_fp_state +EXPORT_SYMBOL vmlinux 0x31d61e9a cur_cpu_spec +EXPORT_SYMBOL vmlinux 0x31dc3a18 pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0x31ef243f pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0x32101183 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x3213d6c5 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x321ecfa0 d_add_ci +EXPORT_SYMBOL vmlinux 0x322f48d4 abx500_dump_all_banks +EXPORT_SYMBOL vmlinux 0x3247e939 get_gendisk +EXPORT_SYMBOL vmlinux 0x325c22bb bio_clone_bioset +EXPORT_SYMBOL vmlinux 0x327b9c1b pmu_poll_adb +EXPORT_SYMBOL vmlinux 0x327bf883 of_can_translate_address +EXPORT_SYMBOL vmlinux 0x327f5bc8 lease_modify +EXPORT_SYMBOL vmlinux 0x32839d16 ata_link_printk +EXPORT_SYMBOL vmlinux 0x3284c88d tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x3286f442 skb_push +EXPORT_SYMBOL vmlinux 0x3287ea6d abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x328ebb6f dev_crit +EXPORT_SYMBOL vmlinux 0x32981f72 i2c_verify_client +EXPORT_SYMBOL vmlinux 0x32aebd9a scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x32b60928 bdput +EXPORT_SYMBOL vmlinux 0x32c13f3a led_blink_set_oneshot +EXPORT_SYMBOL vmlinux 0x32e3c36a tty_port_open +EXPORT_SYMBOL vmlinux 0x32e76c83 unlock_rename +EXPORT_SYMBOL vmlinux 0x32f09007 elv_rb_find +EXPORT_SYMBOL vmlinux 0x3318e8f7 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x331c05ac devm_gpio_free +EXPORT_SYMBOL vmlinux 0x3323ef92 account_page_dirtied +EXPORT_SYMBOL vmlinux 0x33358d2b filp_open +EXPORT_SYMBOL vmlinux 0x333cb37c __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x3371e928 dev_activate +EXPORT_SYMBOL vmlinux 0x33aad925 ps3_dma_region_init +EXPORT_SYMBOL vmlinux 0x33ac6389 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33ba5cd4 param_ops_bool +EXPORT_SYMBOL vmlinux 0x33bd4c82 md_write_start +EXPORT_SYMBOL vmlinux 0x33bf1a01 tcp_release_cb +EXPORT_SYMBOL vmlinux 0x33bf3413 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x33c7435c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x33d94289 textsearch_register +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33fcf44a __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x340710ce max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x34184afe current_kernel_time +EXPORT_SYMBOL vmlinux 0x343ab418 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x343da83e inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x343fdfac cleancache_register_ops +EXPORT_SYMBOL vmlinux 0x34432f45 bdi_unregister +EXPORT_SYMBOL vmlinux 0x344adbd5 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x3451996a dcache_readdir +EXPORT_SYMBOL vmlinux 0x345a3529 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x346c4ded rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x347eb9bd param_set_bool +EXPORT_SYMBOL vmlinux 0x348d3b7a macio_dev_get +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34be99ed dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x34d16d03 compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x34f3529c pci_request_region +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x3528090e ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x3539f11b match_strlcpy +EXPORT_SYMBOL vmlinux 0x35466d40 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x355cb16f remove_arg_zero +EXPORT_SYMBOL vmlinux 0x357d1085 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x3583114b skb_checksum +EXPORT_SYMBOL vmlinux 0x35900aa5 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x359ff457 generic_write_checks +EXPORT_SYMBOL vmlinux 0x35b9ab0f vfs_readlink +EXPORT_SYMBOL vmlinux 0x35c1621e i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0x35c32767 xor_altivec_2 +EXPORT_SYMBOL vmlinux 0x35d57f7b tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x35defc50 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x35f954b4 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x35fbff3d ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x360cabcb __destroy_inode +EXPORT_SYMBOL vmlinux 0x36532947 fget_light +EXPORT_SYMBOL vmlinux 0x3653e69c ps3_sb_event_receive_port_destroy +EXPORT_SYMBOL vmlinux 0x368382e2 of_get_named_gpiod_flags +EXPORT_SYMBOL vmlinux 0x369e1115 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x36ac75b9 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x36b0e732 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x36bd681b groups_alloc +EXPORT_SYMBOL vmlinux 0x36c735ad kset_unregister +EXPORT_SYMBOL vmlinux 0x36d7b11a of_find_matching_node_and_match +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36e3a7f7 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x36fbfd3b netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x3708b445 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x3711596e sock_wake_async +EXPORT_SYMBOL vmlinux 0x371902e9 _lv1_get_lpm_interrupt_status +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x371e5d85 soft_cursor +EXPORT_SYMBOL vmlinux 0x37344510 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level +EXPORT_SYMBOL vmlinux 0x37414cc1 mem_cgroup_subsys +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x37613c11 ps3_dma_region_create +EXPORT_SYMBOL vmlinux 0x37617fb8 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x3767815b sock_create_lite +EXPORT_SYMBOL vmlinux 0x37743355 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x378b92ad single_open_size +EXPORT_SYMBOL vmlinux 0x378cb084 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x37a496a4 ip6_xmit +EXPORT_SYMBOL vmlinux 0x37a4a334 dev_close +EXPORT_SYMBOL vmlinux 0x37aecb40 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x37b2e880 udp_add_offload +EXPORT_SYMBOL vmlinux 0x37b4b5e8 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x37ba7749 pci_disable_obff +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37e09c68 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x37e46290 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x37e9d5bd dev_get_stats +EXPORT_SYMBOL vmlinux 0x37edc555 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x3817219f twl6040_set_bits +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x382777ab _lv1_gpu_context_allocate +EXPORT_SYMBOL vmlinux 0x38279617 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x383c577f tcf_hash_release +EXPORT_SYMBOL vmlinux 0x383f8064 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x386d6a7a scsi_register_interface +EXPORT_SYMBOL vmlinux 0x38745a35 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x387a7c84 skb_queue_head +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38baae2c nf_register_hook +EXPORT_SYMBOL vmlinux 0x38e60293 vga_get +EXPORT_SYMBOL vmlinux 0x38f68eef dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x3953e017 backlight_force_update +EXPORT_SYMBOL vmlinux 0x3955fcf6 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x396472c9 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x399ad043 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x39cdf63c wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x39cf9d4f locks_remove_posix +EXPORT_SYMBOL vmlinux 0x39d2b478 netdev_alert +EXPORT_SYMBOL vmlinux 0x39ec18ec blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x39efce01 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0x39f9a156 node_data +EXPORT_SYMBOL vmlinux 0x3a20ff73 __crc32c_le +EXPORT_SYMBOL vmlinux 0x3a224f25 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x3a377981 km_report +EXPORT_SYMBOL vmlinux 0x3a4b1e00 phy_attach_direct +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aaa7d28 simple_fill_super +EXPORT_SYMBOL vmlinux 0x3ae469ce of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0x3afbb0c2 ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0x3b0abf08 skb_append +EXPORT_SYMBOL vmlinux 0x3b1534a2 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x3b2be014 uart_match_port +EXPORT_SYMBOL vmlinux 0x3b57925d i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x3b615a21 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x3b9aeedf mdiobus_scan +EXPORT_SYMBOL vmlinux 0x3b9b99fc netdev_info +EXPORT_SYMBOL vmlinux 0x3bb0b5b3 mmc_of_parse +EXPORT_SYMBOL vmlinux 0x3bb269c0 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0x3bccf5c3 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bef03b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x3bfe0dd1 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0x3c06625f pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x3c24b079 dquot_operations +EXPORT_SYMBOL vmlinux 0x3c3fefc0 phy_disconnect +EXPORT_SYMBOL vmlinux 0x3c4120e3 fbcon_rotate_ud +EXPORT_SYMBOL vmlinux 0x3c51927e zerocopy_sg_from_iovec +EXPORT_SYMBOL vmlinux 0x3c6f6fb6 vfs_statfs +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3ca409c0 pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0x3cc4b0dc lg_lock_init +EXPORT_SYMBOL vmlinux 0x3cd033e5 sk_run_filter +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3ceee296 phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x3cef59aa bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x3cf3242d inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x3d41904f of_get_next_child +EXPORT_SYMBOL vmlinux 0x3d4d9d61 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x3d4e1efa in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x3d5844b3 strnicmp +EXPORT_SYMBOL vmlinux 0x3daf650a fb_set_var +EXPORT_SYMBOL vmlinux 0x3dbe4e35 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3df9a061 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e286dca _lv1_get_rtc +EXPORT_SYMBOL vmlinux 0x3e2d671e pci_match_id +EXPORT_SYMBOL vmlinux 0x3e3c8227 tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0x3e4edfde bio_pair_release +EXPORT_SYMBOL vmlinux 0x3e6ceb3a drop_super +EXPORT_SYMBOL vmlinux 0x3e717a84 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x3e7889f1 sys_imageblit +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e8e86d3 from_kprojid +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e94b267 flush_signals +EXPORT_SYMBOL vmlinux 0x3e9f81ba sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x3ea7b143 keyring_alloc +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3edc0b34 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x3edca3c6 eth_header +EXPORT_SYMBOL vmlinux 0x3ee396e1 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x3eedec2b agp_backend_release +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f06a656 _lv1_construct_event_receive_port +EXPORT_SYMBOL vmlinux 0x3f18107d scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x3f186503 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f4bf1d4 twl6040_power +EXPORT_SYMBOL vmlinux 0x3f566bc1 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x3fb13905 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x3fbcb616 pci_enable_device +EXPORT_SYMBOL vmlinux 0x3fbfd6ed _lv1_gpu_open +EXPORT_SYMBOL vmlinux 0x3fc530b2 sock_init_data +EXPORT_SYMBOL vmlinux 0x3fd55724 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x3fe0d1c0 slhc_free +EXPORT_SYMBOL vmlinux 0x3fe2ccbe memweight +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff3e2d9 bio_advance +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ff8069b tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x3ff8e495 lg_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x4000114d dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0x401e981d netdev_state_change +EXPORT_SYMBOL vmlinux 0x40256db7 ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x402b7169 simple_getattr +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x404066c5 idr_for_each +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4060b564 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x4068365e unregister_md_personality +EXPORT_SYMBOL vmlinux 0x408381a4 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40ad783f agp_bridge +EXPORT_SYMBOL vmlinux 0x40bb32e2 __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x40be3f9a tcp_parse_options +EXPORT_SYMBOL vmlinux 0x40c01859 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d7fe54 __ip_dev_find +EXPORT_SYMBOL vmlinux 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL vmlinux 0x410e090e serio_close +EXPORT_SYMBOL vmlinux 0x41361807 _lv1_get_logical_ppe_id +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4159c38f ioremap_wc +EXPORT_SYMBOL vmlinux 0x4165cc02 simple_rmdir +EXPORT_SYMBOL vmlinux 0x416a8bfa generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x418d8b11 of_create_pci_dev +EXPORT_SYMBOL vmlinux 0x41947b8c redraw_screen +EXPORT_SYMBOL vmlinux 0x41b23f11 skb_orphan_partial +EXPORT_SYMBOL vmlinux 0x41dbf4de _lv1_start_lpm +EXPORT_SYMBOL vmlinux 0x41e02a2f fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x41f3d885 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x41f469e5 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x422d4abe blk_queue_max_write_same_sectors +EXPORT_SYMBOL vmlinux 0x423b776a ipmi_create_user +EXPORT_SYMBOL vmlinux 0x424be949 page_put_link +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x4271fd6c set_disk_ro +EXPORT_SYMBOL vmlinux 0x42803610 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x4290b991 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x4291a7c0 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a1b208 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x42afe3d3 sk_ns_capable +EXPORT_SYMBOL vmlinux 0x42bba7b0 netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0x42d785b6 pci_bus_put +EXPORT_SYMBOL vmlinux 0x42f56f37 cad_pid +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4307c706 vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0x43132732 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x4318b12f pci_claim_resource +EXPORT_SYMBOL vmlinux 0x4341049f skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x4361a576 twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x43632d7d of_find_property +EXPORT_SYMBOL vmlinux 0x436827b2 dquot_initialize +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x437a089c __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x43a01f90 complete_all +EXPORT_SYMBOL vmlinux 0x43a8f1c9 tty_lock_pair +EXPORT_SYMBOL vmlinux 0x43b156f7 dquot_file_open +EXPORT_SYMBOL vmlinux 0x43c0a346 km_query +EXPORT_SYMBOL vmlinux 0x43c3365b generic_ro_fops +EXPORT_SYMBOL vmlinux 0x43c8c28a kmalloc_caches +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x4411b385 dev_add_pack +EXPORT_SYMBOL vmlinux 0x4411c503 prandom_seed +EXPORT_SYMBOL vmlinux 0x441ed14b skb_store_bits +EXPORT_SYMBOL vmlinux 0x44512938 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x448eac3e kmemdup +EXPORT_SYMBOL vmlinux 0x4493c8f7 invalidate_partition +EXPORT_SYMBOL vmlinux 0x449fa513 dev_mc_del +EXPORT_SYMBOL vmlinux 0x44d60c49 blk_mq_can_queue +EXPORT_SYMBOL vmlinux 0x44ddc021 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44eb192e wait_for_completion +EXPORT_SYMBOL vmlinux 0x44f1a881 do_truncate +EXPORT_SYMBOL vmlinux 0x44f5e8b5 of_allnodes +EXPORT_SYMBOL vmlinux 0x44fba8b1 kfree_skb +EXPORT_SYMBOL vmlinux 0x44ffabee scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x450f495f bio_phys_segments +EXPORT_SYMBOL vmlinux 0x4519d089 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x451f24ca replace_mount_options +EXPORT_SYMBOL vmlinux 0x452a6fc9 netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0x453a9b06 dcb_getapp +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4541f882 __blk_end_request +EXPORT_SYMBOL vmlinux 0x45424459 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x4564459b _lv1_set_virtual_uart_param +EXPORT_SYMBOL vmlinux 0x4571120b pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x45885757 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x459687a5 swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x4598bfd4 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap +EXPORT_SYMBOL vmlinux 0x45a6be13 cpufreq_sysfs_remove_file +EXPORT_SYMBOL vmlinux 0x45a765cf pci_add_resource +EXPORT_SYMBOL vmlinux 0x45cfe80b pasemi_dma_free_flag +EXPORT_SYMBOL vmlinux 0x45e9cff6 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x45f435ab xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0x46023061 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x4612c59d down_trylock +EXPORT_SYMBOL vmlinux 0x461ac773 kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x4629d95e block_write_full_page +EXPORT_SYMBOL vmlinux 0x4629f7bf __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x46410838 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x46590392 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x465a45d0 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0x465cab34 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x46608fa0 getnstimeofday +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x46839a06 blk_run_queue +EXPORT_SYMBOL vmlinux 0x469f7337 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x46afd532 on_each_cpu_mask +EXPORT_SYMBOL vmlinux 0x46bb028b elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x46c2d0aa sock_alloc_file +EXPORT_SYMBOL vmlinux 0x46d12956 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x46daaa38 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x46ddd9e2 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x4734acc6 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0x47416e14 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x478d81d2 nla_append +EXPORT_SYMBOL vmlinux 0x4791a634 kernel_write +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47bcf84c param_set_ulong +EXPORT_SYMBOL vmlinux 0x47bd0018 dquot_alloc +EXPORT_SYMBOL vmlinux 0x47c8baf4 param_ops_uint +EXPORT_SYMBOL vmlinux 0x47eac089 netif_device_attach +EXPORT_SYMBOL vmlinux 0x47f9927d srp_rport_get +EXPORT_SYMBOL vmlinux 0x4801790c setup_arg_pages +EXPORT_SYMBOL vmlinux 0x48034724 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x48079f62 pci_dev_get +EXPORT_SYMBOL vmlinux 0x480ab42a __next_cpu_nr +EXPORT_SYMBOL vmlinux 0x480ece04 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x4815f22b _lv1_gpu_attribute +EXPORT_SYMBOL vmlinux 0x481eaf28 twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x4829a47e memcpy +EXPORT_SYMBOL vmlinux 0x482a2a49 param_set_charp +EXPORT_SYMBOL vmlinux 0x48384523 blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x48404b9a remove_wait_queue +EXPORT_SYMBOL vmlinux 0x4841bdee strnchr +EXPORT_SYMBOL vmlinux 0x4843a1b9 _lv1_delete_repository_node +EXPORT_SYMBOL vmlinux 0x484a82d9 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x48584aeb bio_endio +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x4881efab pmac_get_partition +EXPORT_SYMBOL vmlinux 0x48a57f7c no_llseek +EXPORT_SYMBOL vmlinux 0x48b3671d __cleancache_invalidate_fs +EXPORT_SYMBOL vmlinux 0x48c6db53 of_get_child_by_name +EXPORT_SYMBOL vmlinux 0x48cf3f42 seq_read +EXPORT_SYMBOL vmlinux 0x48e9cff1 save_mount_options +EXPORT_SYMBOL vmlinux 0x48f62c76 inet_del_offload +EXPORT_SYMBOL vmlinux 0x48f7b556 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x48fabfbf gen_new_estimator +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x494252b5 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x49463ce1 sock_no_listen +EXPORT_SYMBOL vmlinux 0x4951e2ad jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x495c96f8 posix_acl_init +EXPORT_SYMBOL vmlinux 0x495ec6eb pasemi_dma_alloc_buf +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x498bc593 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x4998c28c fifo_set_limit +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b703e7 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x49c11c8e scsi_target_resume +EXPORT_SYMBOL vmlinux 0x49c5acf0 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x49c7014c bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x49ca382d tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x49d62177 check_disk_change +EXPORT_SYMBOL vmlinux 0x49ea75f4 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x49efb2f6 __pagevec_release +EXPORT_SYMBOL vmlinux 0x49f57a9c inet_accept +EXPORT_SYMBOL vmlinux 0x49fbbe73 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x4a02f8ae netlink_broadcast +EXPORT_SYMBOL vmlinux 0x4a0c9279 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x4a2ed247 tty_lock +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a57e312 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x4a5824d8 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x4a81cad5 clear_nlink +EXPORT_SYMBOL vmlinux 0x4a9cd4b1 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x4ac64da4 _lv1_select_virtual_address_space +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ae5fa8c __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x4af1453a ab3100_event_register +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b02bcab __scm_send +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b08c8dc inet_frag_find +EXPORT_SYMBOL vmlinux 0x4b3cb349 _lv1_destruct_io_irq_outlet +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b6fcddc _lv1_set_spe_interrupt_mask +EXPORT_SYMBOL vmlinux 0x4b7ed27b sleep_on +EXPORT_SYMBOL vmlinux 0x4b7f5c5d stop_tty +EXPORT_SYMBOL vmlinux 0x4bb8c087 of_phy_attach +EXPORT_SYMBOL vmlinux 0x4bd4b0f7 mpage_writepages +EXPORT_SYMBOL vmlinux 0x4be038cf read_cache_pages +EXPORT_SYMBOL vmlinux 0x4be40a07 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x4bed99b3 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x4bf6c507 handle_edge_irq +EXPORT_SYMBOL vmlinux 0x4c006980 tc_classify +EXPORT_SYMBOL vmlinux 0x4c11435a _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c472cc5 phy_drivers_register +EXPORT_SYMBOL vmlinux 0x4c639015 pci_get_class +EXPORT_SYMBOL vmlinux 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL vmlinux 0x4ca9669f scnprintf +EXPORT_SYMBOL vmlinux 0x4cb0e988 gen_pool_dma_alloc +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cda4bc1 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x4cdb3178 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x4cde5c8b netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x4cf814ff sock_update_memcg +EXPORT_SYMBOL vmlinux 0x4cfa2e4d gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x4d2a0f35 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x4d5dda5b ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x4d7bb2c4 inet6_release +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4da7c931 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x4daf6514 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x4dda9358 blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0x4dda9a20 key_reject_and_link +EXPORT_SYMBOL vmlinux 0x4de242c2 dentry_open +EXPORT_SYMBOL vmlinux 0x4de2fee8 generic_readlink +EXPORT_SYMBOL vmlinux 0x4de34a07 cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4dfed71c flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x4e14b407 __skb_gso_segment +EXPORT_SYMBOL vmlinux 0x4e2e6f46 gen10g_read_status +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e48ffb8 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e786d13 idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x4e7fd346 irq_set_chip +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ea1c922 set_create_files_as +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4eeb155f mach_pasemi +EXPORT_SYMBOL vmlinux 0x4ef78d4e abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f248523 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x4f34c735 generic_make_request +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f664db6 _lv1_insert_htab_entry +EXPORT_SYMBOL vmlinux 0x4f68e5c9 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x4f776f51 fget_raw +EXPORT_SYMBOL vmlinux 0x4fac439a nf_setsockopt +EXPORT_SYMBOL vmlinux 0x4faedb13 send_sig_info +EXPORT_SYMBOL vmlinux 0x4fd93454 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe1ab47 touch_atime +EXPORT_SYMBOL vmlinux 0x4fe3781a blkdev_put +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x500dfb5e sock_create_kern +EXPORT_SYMBOL vmlinux 0x50453d54 __break_lease +EXPORT_SYMBOL vmlinux 0x5057846f dentry_unhash +EXPORT_SYMBOL vmlinux 0x50610d5d rtnl_unicast +EXPORT_SYMBOL vmlinux 0x5064cf05 mount_pseudo +EXPORT_SYMBOL vmlinux 0x508a9d54 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x509a4250 serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0x50a90e8d bsearch +EXPORT_SYMBOL vmlinux 0x50ae7d80 __idr_pre_get +EXPORT_SYMBOL vmlinux 0x50d2592d hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x515acfb5 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x517055c1 devm_ioremap +EXPORT_SYMBOL vmlinux 0x51876f7d ppp_channel_index +EXPORT_SYMBOL vmlinux 0x5187eb4b skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x519b0da3 finish_wait +EXPORT_SYMBOL vmlinux 0x51c94bba arp_find +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51f8d880 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x521b36b5 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x5240381d xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x52428cc8 parent_mem_cgroup +EXPORT_SYMBOL vmlinux 0x5245f6a4 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL vmlinux 0x525808a0 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x527830ff pmac_xpram_read +EXPORT_SYMBOL vmlinux 0x52aeb0aa __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x52afaf01 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0x52c33b8d inode_permission +EXPORT_SYMBOL vmlinux 0x52ccec70 tty_port_put +EXPORT_SYMBOL vmlinux 0x52cdcf8f pci_bus_type +EXPORT_SYMBOL vmlinux 0x52e0ba2a __elv_add_request +EXPORT_SYMBOL vmlinux 0x52e3fa05 _lv1_allocate_memory +EXPORT_SYMBOL vmlinux 0x52e8d89f pci_save_state +EXPORT_SYMBOL vmlinux 0x53030111 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x5339f5f8 _lv1_read_virtual_uart +EXPORT_SYMBOL vmlinux 0x53628a7f open_exec +EXPORT_SYMBOL vmlinux 0x536cc847 memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0x536d329b hvcs_get_partner_info +EXPORT_SYMBOL vmlinux 0x5377e556 hex2bin +EXPORT_SYMBOL vmlinux 0x539a7a67 netpoll_setup +EXPORT_SYMBOL vmlinux 0x53b4ce70 submit_bio +EXPORT_SYMBOL vmlinux 0x53d506cc mmc_remove_host +EXPORT_SYMBOL vmlinux 0x53e729c0 set_nlink +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x53fd0aab blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x5409775b free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x540acb68 scsi_print_command +EXPORT_SYMBOL vmlinux 0x540dee54 md_register_thread +EXPORT_SYMBOL vmlinux 0x5410cfa6 bio_map_user +EXPORT_SYMBOL vmlinux 0x5412c7c7 up +EXPORT_SYMBOL vmlinux 0x54245b39 kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0x5431b078 mmc_request_done +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5452d93a tcp_proc_register +EXPORT_SYMBOL vmlinux 0x54824b13 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x54a844a0 fb_show_logo +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54c724f8 devm_gpiod_get_index +EXPORT_SYMBOL vmlinux 0x54dd2d9a mmc_gpio_free_cd +EXPORT_SYMBOL vmlinux 0x54e0b1d2 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x54e3cc3b param_get_int +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x55064cc6 serio_reconnect +EXPORT_SYMBOL vmlinux 0x55094a34 file_update_time +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x55283b4e __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x5549253a tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x5559d69c set_user_nice +EXPORT_SYMBOL vmlinux 0x5567c227 kernel_cpustat +EXPORT_SYMBOL vmlinux 0x5568c553 complete +EXPORT_SYMBOL vmlinux 0x556c2740 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x5577ef9e udp_table +EXPORT_SYMBOL vmlinux 0x557b3dd8 _lv1_gpu_close +EXPORT_SYMBOL vmlinux 0x55901df4 page_symlink +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55b288c8 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x55bec222 adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0x55ccd4d2 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0x55d0ccaf netif_napi_del +EXPORT_SYMBOL vmlinux 0x55d484d8 gen10g_config_aneg +EXPORT_SYMBOL vmlinux 0x55da6079 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x55e65848 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x55f5019b __kmalloc_node +EXPORT_SYMBOL vmlinux 0x5604aad4 inet6_getname +EXPORT_SYMBOL vmlinux 0x5606dd8b locks_init_lock +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5626e8d9 noop_fsync +EXPORT_SYMBOL vmlinux 0x562e8f5d blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x562ee72d elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563a6f9f vm_insert_mixed +EXPORT_SYMBOL vmlinux 0x563f4028 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x5677804d keyring_search +EXPORT_SYMBOL vmlinux 0x568804ee _lv1_destruct_event_receive_port +EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic +EXPORT_SYMBOL vmlinux 0x56a3b54b sg_miter_start +EXPORT_SYMBOL vmlinux 0x56c0365f skb_seq_read +EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress +EXPORT_SYMBOL vmlinux 0x56c59cb9 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56ddd997 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x57026bda find_lock_page +EXPORT_SYMBOL vmlinux 0x5702723d arp_create +EXPORT_SYMBOL vmlinux 0x570e1fef inetdev_by_index +EXPORT_SYMBOL vmlinux 0x57152a8b inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x5720fdcf ps2_handle_response +EXPORT_SYMBOL vmlinux 0x572647d6 get_mce_fault_addr +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x573ddff9 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x57571975 devm_free_irq +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57641ca6 key_revoke +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x5771a522 keyring_clear +EXPORT_SYMBOL vmlinux 0x577bdbab setup_new_exec +EXPORT_SYMBOL vmlinux 0x5785384a flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x5792f848 strlcpy +EXPORT_SYMBOL vmlinux 0x579bab50 _lv1_gpu_memory_free +EXPORT_SYMBOL vmlinux 0x57a2b3a4 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x57bd0bbd blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0x580a7f1e kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0x580bef04 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x582caf4f __breadahead +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x583b6614 vfs_readv +EXPORT_SYMBOL vmlinux 0x58502f97 filemap_fault +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x585c1be8 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x585f324a bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x5862b94f serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x586d4a04 unlock_page +EXPORT_SYMBOL vmlinux 0x587616f1 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x588ba1ab vmap +EXPORT_SYMBOL vmlinux 0x58c1dd8e padata_do_parallel +EXPORT_SYMBOL vmlinux 0x58d1070a of_get_address +EXPORT_SYMBOL vmlinux 0x58f34244 default_qdisc_ops +EXPORT_SYMBOL vmlinux 0x58ffad35 udp_ioctl +EXPORT_SYMBOL vmlinux 0x5913c1a5 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x5914561f pci_remove_bus +EXPORT_SYMBOL vmlinux 0x59172565 init_special_inode +EXPORT_SYMBOL vmlinux 0x591f9cbd pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x5938c88c jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x5949cd1e bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page +EXPORT_SYMBOL vmlinux 0x5965eeda sock_i_ino +EXPORT_SYMBOL vmlinux 0x5967c929 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x5991219c cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x59b3378a completion_done +EXPORT_SYMBOL vmlinux 0x59ceadfa mmc_erase +EXPORT_SYMBOL vmlinux 0x5a002a4b jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x5a025f7b arch_local_irq_restore +EXPORT_SYMBOL vmlinux 0x5a096f0f dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x5a0aaa12 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x5a117e94 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x5a1341e7 security_inode_permission +EXPORT_SYMBOL vmlinux 0x5a1a68c6 __sock_create +EXPORT_SYMBOL vmlinux 0x5a331007 sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0x5a5482e2 pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0x5a5536c2 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x5a75fa81 mmc_add_host +EXPORT_SYMBOL vmlinux 0x5a81659c update_devfreq +EXPORT_SYMBOL vmlinux 0x5a828815 blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0x5a87d023 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x5a921311 strncmp +EXPORT_SYMBOL vmlinux 0x5a9f1d63 memmove +EXPORT_SYMBOL vmlinux 0x5aa5b73a deactivate_super +EXPORT_SYMBOL vmlinux 0x5ace3b02 console_stop +EXPORT_SYMBOL vmlinux 0x5ad8767f dev_add_offload +EXPORT_SYMBOL vmlinux 0x5adc8acc pci_assign_resource +EXPORT_SYMBOL vmlinux 0x5add2cbe compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x5ae0bebb ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x5ae50279 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5af8aa85 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x5b2fa6cd netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0x5b32087a from_kuid_munged +EXPORT_SYMBOL vmlinux 0x5b39988e ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present +EXPORT_SYMBOL vmlinux 0x5b56860c vm_munmap +EXPORT_SYMBOL vmlinux 0x5b6d6c5f search_binary_handler +EXPORT_SYMBOL vmlinux 0x5b7083af swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x5b73ac5a bmap +EXPORT_SYMBOL vmlinux 0x5b92620d blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x5b9828c5 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x5bb55049 netdev_printk +EXPORT_SYMBOL vmlinux 0x5bbd9377 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x5bc10524 printk_emit +EXPORT_SYMBOL vmlinux 0x5bcb4782 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x5bcbeed0 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x5bcef42a scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x5be5ac3a module_refcount +EXPORT_SYMBOL vmlinux 0x5bec8f26 tty_port_close +EXPORT_SYMBOL vmlinux 0x5bf543ad tty_hangup +EXPORT_SYMBOL vmlinux 0x5bf63794 lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0x5c36a86f padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x5c37f319 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x5c891204 submit_bio_wait +EXPORT_SYMBOL vmlinux 0x5c9f80fa splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x5ccc9045 _lv1_close_device +EXPORT_SYMBOL vmlinux 0x5ce4a8d6 netdev_change_features +EXPORT_SYMBOL vmlinux 0x5cf30e10 __debugger_ipi +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5d0da6bf tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x5d41c87c param_ops_charp +EXPORT_SYMBOL vmlinux 0x5d550c4d scsi_sd_probe_domain +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d601d99 blk_start_queue +EXPORT_SYMBOL vmlinux 0x5d6bdce1 flex_array_alloc +EXPORT_SYMBOL vmlinux 0x5d6cdbf1 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x5da9b015 scsi_put_command +EXPORT_SYMBOL vmlinux 0x5dde014a md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x5e069fec unlock_new_inode +EXPORT_SYMBOL vmlinux 0x5e08444b lock_may_read +EXPORT_SYMBOL vmlinux 0x5e3a8a9c __wake_up +EXPORT_SYMBOL vmlinux 0x5e3cea04 blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0x5e3f17b3 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x5e4caf33 tty_check_change +EXPORT_SYMBOL vmlinux 0x5e529b19 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ee41772 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x5ee53f84 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f0e15b8 should_remove_suid +EXPORT_SYMBOL vmlinux 0x5f23bb8b vga_put +EXPORT_SYMBOL vmlinux 0x5f2682dc __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0x5f28c2dc idr_remove +EXPORT_SYMBOL vmlinux 0x5f3c8f5c mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x5f54f12e mapping_tagged +EXPORT_SYMBOL vmlinux 0x5f83624c writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5f8e4b39 blkdev_get +EXPORT_SYMBOL vmlinux 0x5f930059 do_splice_from +EXPORT_SYMBOL vmlinux 0x5f9f3774 always_delete_dentry +EXPORT_SYMBOL vmlinux 0x5fb80354 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x5fbb8fcc rtnl_create_link +EXPORT_SYMBOL vmlinux 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL vmlinux 0x5fda0227 vfs_stat +EXPORT_SYMBOL vmlinux 0x5fde917c xfrm_input +EXPORT_SYMBOL vmlinux 0x5fe862cc udp6_csum_init +EXPORT_SYMBOL vmlinux 0x5fff18f0 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x6006a072 padata_start +EXPORT_SYMBOL vmlinux 0x60115f38 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x601c9853 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x60281997 dev_addr_del +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x6040b5b2 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x60790f1f blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x6086fae9 rwsem_wake +EXPORT_SYMBOL vmlinux 0x6096f702 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60db502a have_submounts +EXPORT_SYMBOL vmlinux 0x60df1e3b posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x60e4d763 inet_shutdown +EXPORT_SYMBOL vmlinux 0x60f6615d devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x60f66ef5 ipv4_specific +EXPORT_SYMBOL vmlinux 0x610bbc78 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x61229b10 node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x613329bd sk_free +EXPORT_SYMBOL vmlinux 0x613a0a66 of_phy_connect +EXPORT_SYMBOL vmlinux 0x614c060f tty_write_room +EXPORT_SYMBOL vmlinux 0x61538ad0 param_get_charp +EXPORT_SYMBOL vmlinux 0x61790a9b tcf_hash_check +EXPORT_SYMBOL vmlinux 0x6183efa5 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x618911fc numa_node +EXPORT_SYMBOL vmlinux 0x61949911 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x619cb7dd simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x61a02eeb kern_path_mountpoint +EXPORT_SYMBOL vmlinux 0x61a4487c _lv1_gpu_device_unmap +EXPORT_SYMBOL vmlinux 0x61a589a7 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61d8ce31 igrab +EXPORT_SYMBOL vmlinux 0x61d9da45 set_anon_super +EXPORT_SYMBOL vmlinux 0x61daf706 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x61dcdcd3 _lv1_pause +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x61fc5244 sk_common_release +EXPORT_SYMBOL vmlinux 0x620b329c scsi_prep_return +EXPORT_SYMBOL vmlinux 0x620ff993 pci_read_vpd +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x622d6a1e dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x62520054 ps2_end_command +EXPORT_SYMBOL vmlinux 0x62538167 slhc_toss +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x62875182 user_path_at +EXPORT_SYMBOL vmlinux 0x628cd37e jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x628ff0be mb_cache_create +EXPORT_SYMBOL vmlinux 0x629bb998 __page_symlink +EXPORT_SYMBOL vmlinux 0x62a69e29 da903x_query_status +EXPORT_SYMBOL vmlinux 0x62a96b39 skb_make_writable +EXPORT_SYMBOL vmlinux 0x62af3c46 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x62bcf162 seq_release_private +EXPORT_SYMBOL vmlinux 0x62e6ac80 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x62ed9f41 netif_napi_add +EXPORT_SYMBOL vmlinux 0x62f11151 pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x6302af88 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x630e9101 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x63231951 gen_pool_create +EXPORT_SYMBOL vmlinux 0x63396aec __debugger_break_match +EXPORT_SYMBOL vmlinux 0x635a95d1 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x6360d639 cpu_all_bits +EXPORT_SYMBOL vmlinux 0x638f0c36 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x63979abf dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x63a9da36 ll_rw_block +EXPORT_SYMBOL vmlinux 0x63b5ff55 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x63bc0d6c blk_mq_alloc_single_hw_queue +EXPORT_SYMBOL vmlinux 0x63cdb9ad abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x63d20115 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63f75920 _lv1_construct_virtual_address_space +EXPORT_SYMBOL vmlinux 0x63f76531 poll_freewait +EXPORT_SYMBOL vmlinux 0x63fb5810 truncate_setsize +EXPORT_SYMBOL vmlinux 0x63fbc387 of_device_alloc +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x642152f2 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x642ee00c xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x642f9290 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x6462b759 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x646cc6ab pmu_poll +EXPORT_SYMBOL vmlinux 0x647ec84d inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x648d3cc4 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64bbc288 string_unescape +EXPORT_SYMBOL vmlinux 0x64c2240a pci_dev_put +EXPORT_SYMBOL vmlinux 0x64f8db22 ip_fragment +EXPORT_SYMBOL vmlinux 0x65122ec2 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65253293 find_get_page +EXPORT_SYMBOL vmlinux 0x652ce9aa nla_memcmp +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65541eb9 pci_restore_state +EXPORT_SYMBOL vmlinux 0x656a5fa2 is_bad_inode +EXPORT_SYMBOL vmlinux 0x656d6609 put_io_context +EXPORT_SYMBOL vmlinux 0x65767eb5 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x659622c5 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x65a0381c jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x65a51ee6 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x65bb58a2 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x65c33fdd blk_mq_free_single_hw_queue +EXPORT_SYMBOL vmlinux 0x65cd1914 dcb_setapp +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65e0d6d7 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x65e42411 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x65f3ad9a fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x6654efc4 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66ad1cb3 _lv1_set_lpm_general_control +EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write +EXPORT_SYMBOL vmlinux 0x66ce7c23 __napi_complete +EXPORT_SYMBOL vmlinux 0x66dc4441 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x66f8d881 sk_alloc +EXPORT_SYMBOL vmlinux 0x6721909d mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x6734d892 proc_remove +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x675b8f61 param_get_string +EXPORT_SYMBOL vmlinux 0x677d2de7 simple_lookup +EXPORT_SYMBOL vmlinux 0x67892b27 ps2_drain +EXPORT_SYMBOL vmlinux 0x678dc013 mmc_put_card +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL vmlinux 0x67f12bf8 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x67f750de iunique +EXPORT_SYMBOL vmlinux 0x68212a47 netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0x6849a15f flex_array_clear +EXPORT_SYMBOL vmlinux 0x68609857 complete_and_exit +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x6881b5c5 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x68989945 powerpc_debugfs_root +EXPORT_SYMBOL vmlinux 0x68a1088e blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x68b83ac6 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x68e05d57 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x68e1ef51 smu_present +EXPORT_SYMBOL vmlinux 0x690da722 phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x691f81c0 vfs_link +EXPORT_SYMBOL vmlinux 0x6938c6c4 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x694d739e phy_find_first +EXPORT_SYMBOL vmlinux 0x696ce9bb uart_resume_port +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6988063f scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x698bbd7b vio_h_cop_sync +EXPORT_SYMBOL vmlinux 0x699ccbf8 _lv1_deconfigure_virtual_uart_irq +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69b356de bitmap_unplug +EXPORT_SYMBOL vmlinux 0x69b40044 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x69b63b7f inet_stream_ops +EXPORT_SYMBOL vmlinux 0x69ccbb9c splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69d3dc4b con_copy_unimap +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a0d0b63 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x6a36ccbf skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0x6a3f4119 mmc_of_parse_voltage +EXPORT_SYMBOL vmlinux 0x6a499d67 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a687755 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x6a70cd06 skb_find_text +EXPORT_SYMBOL vmlinux 0x6a740c54 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a88cc14 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x6aa6131e compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x6ac6a084 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x6ac7a625 dquot_enable +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6acbe9c6 macio_request_resource +EXPORT_SYMBOL vmlinux 0x6aecc187 single_release +EXPORT_SYMBOL vmlinux 0x6b06fdce delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b1baabd rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b358cab _lv1_read_repository_node +EXPORT_SYMBOL vmlinux 0x6b37b41f __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x6b387694 _lv1_end_of_interrupt_ext +EXPORT_SYMBOL vmlinux 0x6b4969f5 input_release_device +EXPORT_SYMBOL vmlinux 0x6b4b2960 skb_trim +EXPORT_SYMBOL vmlinux 0x6b589a6e _lv1_net_add_multicast_address +EXPORT_SYMBOL vmlinux 0x6b5dfe73 __debugger_bpt +EXPORT_SYMBOL vmlinux 0x6b640864 nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6b6f0c4b _lv1_create_repository_node +EXPORT_SYMBOL vmlinux 0x6b7d143f page_follow_link_light +EXPORT_SYMBOL vmlinux 0x6b7f1917 idr_find_slowpath +EXPORT_SYMBOL vmlinux 0x6b9b1d6e __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x6ba35abd kill_pid +EXPORT_SYMBOL vmlinux 0x6bb3193f genl_notify +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bceaebc gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6beb2078 param_set_copystring +EXPORT_SYMBOL vmlinux 0x6becc489 mach_pseries +EXPORT_SYMBOL vmlinux 0x6c14a842 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x6c1b21b7 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x6c1d7222 netdev_all_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0x6c51a836 sysctl_tcp_notsent_lowat +EXPORT_SYMBOL vmlinux 0x6c57f581 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x6c6083c7 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c665691 flex_array_shrink +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c7e0b05 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x6c8531b7 input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0x6ca31299 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x6cb67d55 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x6cbd5907 of_get_min_tck +EXPORT_SYMBOL vmlinux 0x6ccfeabe end_page_writeback +EXPORT_SYMBOL vmlinux 0x6cd8c86b __crc32c_le_combine +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d168da8 override_creds +EXPORT_SYMBOL vmlinux 0x6d1743eb _lv1_get_total_execution_time +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d50c369 inet6_register_icmp_sender +EXPORT_SYMBOL vmlinux 0x6d60c9b6 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x6d74e8d5 kernel_bind +EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns +EXPORT_SYMBOL vmlinux 0x6dbef5ac xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x6dce9e92 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x6de6c88d blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x6dec54e3 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6df2eb92 get_tz_trend +EXPORT_SYMBOL vmlinux 0x6e0a4694 vfs_create +EXPORT_SYMBOL vmlinux 0x6e1b2c55 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x6e412ccf sg_miter_stop +EXPORT_SYMBOL vmlinux 0x6e45bb9c scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x6e6c2561 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x6e6f176c blk_fetch_request +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e764332 idr_destroy +EXPORT_SYMBOL vmlinux 0x6e873ea6 of_phy_find_device +EXPORT_SYMBOL vmlinux 0x6e94044a tcp_seq_open +EXPORT_SYMBOL vmlinux 0x6ebb0605 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x6ebc5149 param_ops_long +EXPORT_SYMBOL vmlinux 0x6ec6c43d vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0x6ed1d4c8 seq_printf +EXPORT_SYMBOL vmlinux 0x6ef3c39f noop_qdisc +EXPORT_SYMBOL vmlinux 0x6f160b90 fbcon_set_rotate +EXPORT_SYMBOL vmlinux 0x6f20960a full_name_hash +EXPORT_SYMBOL vmlinux 0x6f40f063 netlink_ack +EXPORT_SYMBOL vmlinux 0x6f4f22cb dev_addr_init +EXPORT_SYMBOL vmlinux 0x6f66e566 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x6f80faaa tty_do_resize +EXPORT_SYMBOL vmlinux 0x6f85b211 ida_remove +EXPORT_SYMBOL vmlinux 0x6fa331ed _lv1_construct_io_irq_outlet +EXPORT_SYMBOL vmlinux 0x6fb423b0 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x6fb96d55 __inode_permission +EXPORT_SYMBOL vmlinux 0x6fca3835 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd040ec generic_segment_checks +EXPORT_SYMBOL vmlinux 0x6fe62720 crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x7014199e jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x701699b2 _lv1_set_spe_privilege_state_area_1_register +EXPORT_SYMBOL vmlinux 0x702f4928 scsi_execute +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x7056baf9 netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0x707f43f6 __ctzdi2 +EXPORT_SYMBOL vmlinux 0x708e1912 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70caf2c5 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70e70b75 do_sync_write +EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request +EXPORT_SYMBOL vmlinux 0x7102960e dev_remove_offload +EXPORT_SYMBOL vmlinux 0x711adbb5 security_path_rename +EXPORT_SYMBOL vmlinux 0x711f9b89 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x718edcf9 __frontswap_test +EXPORT_SYMBOL vmlinux 0x7193407f tcp_init_cgroup +EXPORT_SYMBOL vmlinux 0x719537ce dquot_release +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71bf7e94 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x71d3a812 aio_complete +EXPORT_SYMBOL vmlinux 0x71dd5d4b of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0x71ec00b2 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x720c9738 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x721e5b5c pci_domain_nr +EXPORT_SYMBOL vmlinux 0x722f363d pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x723e5c14 try_to_release_page +EXPORT_SYMBOL vmlinux 0x72599f45 mmc_gpio_request_cd +EXPORT_SYMBOL vmlinux 0x728ba78e bd_set_size +EXPORT_SYMBOL vmlinux 0x728fb9a8 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x72917615 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x729b4a83 _lv1_get_spe_all_interrupt_statuses +EXPORT_SYMBOL vmlinux 0x72a851ff get_agp_version +EXPORT_SYMBOL vmlinux 0x72a8bbab __secpath_destroy +EXPORT_SYMBOL vmlinux 0x72ab8e18 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72c98139 __arch_hweight64 +EXPORT_SYMBOL vmlinux 0x72cebdad jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x72cf2c43 simple_release_fs +EXPORT_SYMBOL vmlinux 0x72e5585a tcp_read_sock +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x7312a124 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x731a747a pci_io_base +EXPORT_SYMBOL vmlinux 0x731b42fd pci_platform_rom +EXPORT_SYMBOL vmlinux 0x731ef34a dev_queue_xmit_accel +EXPORT_SYMBOL vmlinux 0x7325d78f scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x733df7c3 vm_event_states +EXPORT_SYMBOL vmlinux 0x733f6657 __frontswap_store +EXPORT_SYMBOL vmlinux 0x73573187 revert_creds +EXPORT_SYMBOL vmlinux 0x735d8503 add_wait_queue +EXPORT_SYMBOL vmlinux 0x736057c7 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x73684973 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x736fa77f netif_skb_dev_features +EXPORT_SYMBOL vmlinux 0x73710a3e dqstats +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x73a35b4c inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x73bb0961 __netif_schedule +EXPORT_SYMBOL vmlinux 0x73bd0a27 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x73cd34d9 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x741010ae fs_bio_set +EXPORT_SYMBOL vmlinux 0x7431c2b3 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x743f51fe mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x7446587f pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0x744cee63 wireless_send_event +EXPORT_SYMBOL vmlinux 0x745bbccc key_alloc +EXPORT_SYMBOL vmlinux 0x7469b2cf flush_icache_user_range +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x747195f0 hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74881c93 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x749b60ef pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x74b83bd8 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c5450d inet_frag_kill +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler +EXPORT_SYMBOL vmlinux 0x751c2917 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x75297557 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x75316f2a block_write_begin +EXPORT_SYMBOL vmlinux 0x7532588a alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x754dac78 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x756c786e _lv1_connect_interrupt_event_receive_port +EXPORT_SYMBOL vmlinux 0x75754995 _lv1_storage_check_async_status +EXPORT_SYMBOL vmlinux 0x7588fb1a swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0x758bb017 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x75994700 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75be6702 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x75ccc749 vio_get_attribute +EXPORT_SYMBOL vmlinux 0x75e4f5aa pasemi_read_mac_reg +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x764e2224 _lv1_disconnect_irq_plug_ext +EXPORT_SYMBOL vmlinux 0x765ff474 crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x766c629f dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x766ea864 tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0x769cb222 __vio_register_driver +EXPORT_SYMBOL vmlinux 0x76a11b08 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x76b0a3e5 I_BDEV +EXPORT_SYMBOL vmlinux 0x76b86ffb pmac_suspend_agp_for_card +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76c0e0f4 skb_dequeue +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d451c4 add_taint +EXPORT_SYMBOL vmlinux 0x77144936 _lv1_disconnect_irq_plug +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x773fa409 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x7755a48b dentry_path_raw +EXPORT_SYMBOL vmlinux 0x77600dc4 devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0x7763f7f7 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x77753e12 mdiobus_write +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x779ece05 pci_find_bus +EXPORT_SYMBOL vmlinux 0x77b369dc netdev_emerg +EXPORT_SYMBOL vmlinux 0x77bb93b0 seq_write +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77d29056 ppc_md +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x782d596d net_dma_find_channel +EXPORT_SYMBOL vmlinux 0x7830b04f hvc_put_chars +EXPORT_SYMBOL vmlinux 0x7836dd7f mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x783b3563 wake_up_atomic_t +EXPORT_SYMBOL vmlinux 0x7846af3e __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x785b7e95 skb_flow_dissect +EXPORT_SYMBOL vmlinux 0x78610077 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x7871ac66 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x788afc1f agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x788cb677 skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x7895a049 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x789a17f7 _lv1_destruct_logical_spe +EXPORT_SYMBOL vmlinux 0x789affb1 frontswap_tmem_exclusive_gets +EXPORT_SYMBOL vmlinux 0x78a9e905 _numa_mem_ +EXPORT_SYMBOL vmlinux 0x78ba89c3 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x78c4a3c9 macio_release_resource +EXPORT_SYMBOL vmlinux 0x78c8b7bd nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x78ced04d phy_connect_direct +EXPORT_SYMBOL vmlinux 0x78d1ecd4 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL vmlinux 0x78feb3fb bdget +EXPORT_SYMBOL vmlinux 0x79033891 rtnl_notify +EXPORT_SYMBOL vmlinux 0x790a9a7e kill_bdev +EXPORT_SYMBOL vmlinux 0x790df6ca __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x790e8e63 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x7930d225 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x79429284 lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x79691cd9 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x797c8fa9 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x7984eefc key_update +EXPORT_SYMBOL vmlinux 0x7999af07 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x799d9505 ata_std_end_eh +EXPORT_SYMBOL vmlinux 0x79a1056f tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x79a8cb38 pci_find_capability +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79b0a743 scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x79b7c47c input_reset_device +EXPORT_SYMBOL vmlinux 0x79b9f5e8 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x79cc2306 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x79cf2bcf lookup_one_len +EXPORT_SYMBOL vmlinux 0x79d2c01c fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x79f4d22d pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0x7a01a57b security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x7a03c440 input_register_device +EXPORT_SYMBOL vmlinux 0x7a06ff50 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x7a173e01 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x7a188791 prandom_bytes +EXPORT_SYMBOL vmlinux 0x7a21e0fb i2c_bit_add_numbered_bus +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a34e9be sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0x7a36e7f5 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a46493d jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x7a58cabd sk_reset_timer +EXPORT_SYMBOL vmlinux 0x7a6b4234 do_SAK +EXPORT_SYMBOL vmlinux 0x7a8fc4d0 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x7a925833 cpufreq_get_global_kobject +EXPORT_SYMBOL vmlinux 0x7a9c329e inode_dio_done +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7aa9e259 _lv1_map_htab +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7ab96639 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x7abc359a dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7ad8f84f vlan_untag +EXPORT_SYMBOL vmlinux 0x7add44b5 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7af4324d d_rehash +EXPORT_SYMBOL vmlinux 0x7b16235f hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x7b23bb07 may_umount +EXPORT_SYMBOL vmlinux 0x7b2aef6c __krealloc +EXPORT_SYMBOL vmlinux 0x7b522184 input_register_handle +EXPORT_SYMBOL vmlinux 0x7b78f9a7 dm_register_target +EXPORT_SYMBOL vmlinux 0x7b93a92d tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x7b9b7855 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x7b9e9da6 bio_copy_user +EXPORT_SYMBOL vmlinux 0x7bd82bbe dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x7be3a096 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x7c003aef _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x7c1372e8 panic +EXPORT_SYMBOL vmlinux 0x7c1ab1c7 get_write_access +EXPORT_SYMBOL vmlinux 0x7c27156c rtas_online_cpus_mask +EXPORT_SYMBOL vmlinux 0x7c2d098f krealloc +EXPORT_SYMBOL vmlinux 0x7c376d9b prepare_binprm +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c5981d0 __block_write_begin +EXPORT_SYMBOL vmlinux 0x7c5a384d lock_sock_nested +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c6d7fed register_sysctl +EXPORT_SYMBOL vmlinux 0x7c9291d1 csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x7c9418fe i2c_master_send +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7c9ab5f0 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x7c9d3d41 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cc578da param_get_long +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7cf1ea97 compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x7cf3a16b put_cmsg +EXPORT_SYMBOL vmlinux 0x7d075e8b generic_block_bmap +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d1a656c nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x7d3e038a key_link +EXPORT_SYMBOL vmlinux 0x7d45d79c netdev_notice +EXPORT_SYMBOL vmlinux 0x7d4796d7 find_or_create_page +EXPORT_SYMBOL vmlinux 0x7d55fe60 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x7d629bb8 inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0x7d8b271a md_done_sync +EXPORT_SYMBOL vmlinux 0x7d92048f tcp_check_req +EXPORT_SYMBOL vmlinux 0x7dbfecbf xfrm_lookup +EXPORT_SYMBOL vmlinux 0x7dc0e109 idr_get_next +EXPORT_SYMBOL vmlinux 0x7dc97879 rtas_get_error_log_max +EXPORT_SYMBOL vmlinux 0x7de9d624 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7e027f8e scsi_host_get +EXPORT_SYMBOL vmlinux 0x7e1aad0d dcache_dir_open +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e49f281 lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0x7e87227e slhc_compress +EXPORT_SYMBOL vmlinux 0x7ec2428a compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x7ec24d0e kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x7ecca683 vio_unregister_device +EXPORT_SYMBOL vmlinux 0x7ed193e4 vfs_write +EXPORT_SYMBOL vmlinux 0x7edcff68 seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x7ef4384e eth_header_parse +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f255c71 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x7f2d7a25 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x7f2f5988 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x7f47ff6a swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x7f708b07 netdev_warn +EXPORT_SYMBOL vmlinux 0x7f82e623 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x7f86c35a inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x7fa2f1e5 pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0x7fbb1362 mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x7fbfa07e devm_gpiod_get +EXPORT_SYMBOL vmlinux 0x7fcce658 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7fe38f48 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x7fe9a060 _lv1_net_stop_tx_dma +EXPORT_SYMBOL vmlinux 0x8008df94 of_get_ddr_timings +EXPORT_SYMBOL vmlinux 0x800ee223 freeze_super +EXPORT_SYMBOL vmlinux 0x802d0e93 crc32_le +EXPORT_SYMBOL vmlinux 0x802f2ed2 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x8048bec5 netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x804f922a ipmi_addr_length +EXPORT_SYMBOL vmlinux 0x8064987e mmc_can_erase +EXPORT_SYMBOL vmlinux 0x80796c9a pci_iomap +EXPORT_SYMBOL vmlinux 0x807b2d7b i2c_use_client +EXPORT_SYMBOL vmlinux 0x8084d3b9 skb_pull +EXPORT_SYMBOL vmlinux 0x80ca2a3e vlan_vid_add +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80dbac73 ether_setup +EXPORT_SYMBOL vmlinux 0x80e13d0f mount_nodev +EXPORT_SYMBOL vmlinux 0x80e1d5cc get_super_thawed +EXPORT_SYMBOL vmlinux 0x810a1abc pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x811f53c2 of_find_backlight_by_node +EXPORT_SYMBOL vmlinux 0x81212795 dev_deactivate +EXPORT_SYMBOL vmlinux 0x8127f3ff try_module_get +EXPORT_SYMBOL vmlinux 0x8129b4f3 compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0x814c75f9 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x8152b2aa of_node_put +EXPORT_SYMBOL vmlinux 0x81533963 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x818469d0 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x81a07f4e _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x81bb9a6d dev_get_nest_level +EXPORT_SYMBOL vmlinux 0x81bbd4f1 arp_xmit +EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator +EXPORT_SYMBOL vmlinux 0x81d9f7f2 _lv1_put_iopte +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81e2c5f9 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x821daac2 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x8242cd8a __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8252ad60 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x825a8271 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x82690521 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0x828062b1 __frontswap_init +EXPORT_SYMBOL vmlinux 0x828b64ab set_security_override +EXPORT_SYMBOL vmlinux 0x829a04cd d_genocide +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b885cd inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x82e29caf n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82f1ddaf genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x82fb1d2a load_nls_default +EXPORT_SYMBOL vmlinux 0x83163501 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x8326c4e1 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x832f7ed1 ppp_input +EXPORT_SYMBOL vmlinux 0x8343aa17 generic_setlease +EXPORT_SYMBOL vmlinux 0x8363fef4 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83b71816 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x83f054ca dev_uc_flush +EXPORT_SYMBOL vmlinux 0x83fe69b5 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x840c5b3b tty_unthrottle +EXPORT_SYMBOL vmlinux 0x841962f8 param_get_ushort +EXPORT_SYMBOL vmlinux 0x845124e0 ps3_mm_phys_to_lpar +EXPORT_SYMBOL vmlinux 0x8461745b kfree_skb_list +EXPORT_SYMBOL vmlinux 0x84875fa9 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x849f7223 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x849fe807 csum_and_copy_from_user +EXPORT_SYMBOL vmlinux 0x84a45af5 of_mdio_find_bus +EXPORT_SYMBOL vmlinux 0x84b97b56 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x84bd69bf dq_data_lock +EXPORT_SYMBOL vmlinux 0x84c3e918 do_splice_direct +EXPORT_SYMBOL vmlinux 0x84d453de release_sock +EXPORT_SYMBOL vmlinux 0x84d99c9a xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x84e6e698 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x84ef3f8d sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x84fad3d8 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x84ffea8b idr_preload +EXPORT_SYMBOL vmlinux 0x8509c540 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0x85129d5b netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0x8518eca9 param_get_short +EXPORT_SYMBOL vmlinux 0x853bf7c1 param_set_int +EXPORT_SYMBOL vmlinux 0x855e3a45 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x8597eb47 plpar_hcall +EXPORT_SYMBOL vmlinux 0x85b27ce1 new_inode +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85d17971 __cleancache_get_page +EXPORT_SYMBOL vmlinux 0x85d7baf2 cdev_alloc +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e6d31f pmac_resume_agp_for_card +EXPORT_SYMBOL vmlinux 0x85e9b294 generic_file_open +EXPORT_SYMBOL vmlinux 0x85f8740b swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x862f84d1 tty_vhangup +EXPORT_SYMBOL vmlinux 0x8642e5f3 macio_enable_devres +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x867751b0 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x867d4c24 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x867d97c4 netdev_err +EXPORT_SYMBOL vmlinux 0x8684e772 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a5fff9 eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x86c99f74 flush_dcache_page +EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x870c253b netdev_master_upper_dev_link_private +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x87236b53 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x87254764 proc_create_data +EXPORT_SYMBOL vmlinux 0x873a53ea __arch_hweight8 +EXPORT_SYMBOL vmlinux 0x8741b8ee lookup_bdev +EXPORT_SYMBOL vmlinux 0x875b9e83 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x8779a34f param_ops_byte +EXPORT_SYMBOL vmlinux 0x8789aec7 phy_connect +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x8793abb0 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x879fd0f1 macio_dev_put +EXPORT_SYMBOL vmlinux 0x87b2065c __sk_dst_check +EXPORT_SYMBOL vmlinux 0x8805e6e8 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x880da1b1 _lv1_get_logical_partition_id +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8828422f scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x88342227 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x88513970 param_set_byte +EXPORT_SYMBOL vmlinux 0x88702cf8 d_alloc_name +EXPORT_SYMBOL vmlinux 0x887bc89c kmem_cache_create +EXPORT_SYMBOL vmlinux 0x88a28a46 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x88ab72c3 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x8905c043 unregister_netdev +EXPORT_SYMBOL vmlinux 0x890de82e ___pskb_trim +EXPORT_SYMBOL vmlinux 0x8912b78d ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x891fbb10 mempool_destroy +EXPORT_SYMBOL vmlinux 0x8930ac36 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x895108f3 proc_dostring +EXPORT_SYMBOL vmlinux 0x895577b0 numa_cpu_lookup_table +EXPORT_SYMBOL vmlinux 0x89577a52 elv_register_queue +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x897684ac clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x89797060 _raw_read_lock +EXPORT_SYMBOL vmlinux 0x897f061d downgrade_write +EXPORT_SYMBOL vmlinux 0x8986bd1d __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x898d9133 create_syslog_header +EXPORT_SYMBOL vmlinux 0x89a56f32 vfs_setpos +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89b45462 mac_find_mode +EXPORT_SYMBOL vmlinux 0x89c5a8be smu_get_sdb_partition +EXPORT_SYMBOL vmlinux 0x89caa1bc input_unregister_device +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89dae11e mmc_set_blockcount +EXPORT_SYMBOL vmlinux 0x89de555f inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x8a0e75f1 tty_unlock_pair +EXPORT_SYMBOL vmlinux 0x8a1ab4ee timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8a286932 d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0x8a2b9fd4 fasync_helper +EXPORT_SYMBOL vmlinux 0x8a2fb922 kobject_init +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a51d565 quota_send_warning +EXPORT_SYMBOL vmlinux 0x8a6af65c kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a7ef25e vfs_mknod +EXPORT_SYMBOL vmlinux 0x8a876f54 ida_init +EXPORT_SYMBOL vmlinux 0x8a8a2f5b jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8a9cef2a _lv1_allocate_device_dma_region +EXPORT_SYMBOL vmlinux 0x8aa7f1b3 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x8ac3e742 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x8adc5e94 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x8ae37517 register_framebuffer +EXPORT_SYMBOL vmlinux 0x8ae4c3c1 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x8ae60baa block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x8aea1f0a seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0x8b0e7b21 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x8b1566b9 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b1da9b9 security_path_chown +EXPORT_SYMBOL vmlinux 0x8b22cd3d __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x8b2bd553 scsi_free_command +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b43159b register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x8b55cac7 kobject_put +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b780dec flush_old_exec +EXPORT_SYMBOL vmlinux 0x8b7add43 seq_vprintf +EXPORT_SYMBOL vmlinux 0x8b8748d4 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x8b919402 input_free_device +EXPORT_SYMBOL vmlinux 0x8b95b587 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x8ba04505 devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0x8ba09c39 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x8bbb610f write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x8bee71cb gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x8bf2ae1f fsl_lbc_addr +EXPORT_SYMBOL vmlinux 0x8c02d04d tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x8c084f72 __devm_release_region +EXPORT_SYMBOL vmlinux 0x8c1061f6 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c2e5348 elv_rb_del +EXPORT_SYMBOL vmlinux 0x8c2e7862 jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0x8c637d43 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x8c6fc053 d_invalidate +EXPORT_SYMBOL vmlinux 0x8c8d2fc3 skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x8c8d79c0 _lv1_gpu_context_iomap +EXPORT_SYMBOL vmlinux 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL vmlinux 0x8ca2cb26 rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cde7847 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x8cea997c pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x8d015dd4 __bswapdi2 +EXPORT_SYMBOL vmlinux 0x8d14870c __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x8d19c4fc xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x8d1d3f2f update_region +EXPORT_SYMBOL vmlinux 0x8d25a873 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x8d2e268b param_ops_ulong +EXPORT_SYMBOL vmlinux 0x8d428814 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d68cbb4 call_netdevice_notifiers_info +EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper +EXPORT_SYMBOL vmlinux 0x8d8c4c88 dev_driver_string +EXPORT_SYMBOL vmlinux 0x8d944cbb copy_in_user +EXPORT_SYMBOL vmlinux 0x8d965702 pci_get_slot +EXPORT_SYMBOL vmlinux 0x8dc36768 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x8dd93af3 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x8de0b5ac mempool_create +EXPORT_SYMBOL vmlinux 0x8de2fbc5 _lv1_get_virtual_uart_param +EXPORT_SYMBOL vmlinux 0x8df92f66 memchr_inv +EXPORT_SYMBOL vmlinux 0x8dfdd23c twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x8e092194 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x8e332829 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x8e333354 get_disk +EXPORT_SYMBOL vmlinux 0x8e5a4905 nf_log_packet +EXPORT_SYMBOL vmlinux 0x8e6bb201 bdget_disk +EXPORT_SYMBOL vmlinux 0x8e724e62 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x8e864a86 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x8e873628 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x8e893373 inet_addr_type +EXPORT_SYMBOL vmlinux 0x8e98baad jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x8ec04552 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x8eea1bc9 smu_poll +EXPORT_SYMBOL vmlinux 0x8efbc885 cdrom_check_events +EXPORT_SYMBOL vmlinux 0x8f039ea5 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x8f239982 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x8f29e5f3 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x8f4d7067 pcie_get_minimum_link +EXPORT_SYMBOL vmlinux 0x8f4f41d7 dst_destroy +EXPORT_SYMBOL vmlinux 0x8f5455c6 arp_tbl +EXPORT_SYMBOL vmlinux 0x8f57f918 machine_id +EXPORT_SYMBOL vmlinux 0x8f7229f9 scsi_unregister +EXPORT_SYMBOL vmlinux 0x8f85f835 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x8fa5dd9c dput +EXPORT_SYMBOL vmlinux 0x8faa4598 of_translate_address +EXPORT_SYMBOL vmlinux 0x8faf1735 eth_header_cache +EXPORT_SYMBOL vmlinux 0x8fb74dc4 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x8fb7f100 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x8fbdb41f i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x8fc04a53 dma_common_get_sgtable +EXPORT_SYMBOL vmlinux 0x8fdc51a3 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x8ff485ac srp_reconnect_rport +EXPORT_SYMBOL vmlinux 0x8ff6c0db dev_remove_pack +EXPORT_SYMBOL vmlinux 0x9003f2f1 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x900968b9 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x9012fa6e nla_reserve +EXPORT_SYMBOL vmlinux 0x90190144 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x903894bc pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x903cecef pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x9048309b tcp_proto_cgroup +EXPORT_SYMBOL vmlinux 0x9056b749 proto_unregister +EXPORT_SYMBOL vmlinux 0x907dc6e1 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x908b53ed param_set_short +EXPORT_SYMBOL vmlinux 0x90a957ff dquot_commit +EXPORT_SYMBOL vmlinux 0x90becc13 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x90db1c24 __nla_reserve +EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc +EXPORT_SYMBOL vmlinux 0x90eeceea of_device_unregister +EXPORT_SYMBOL vmlinux 0x90f092b8 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x90f9c0cc loop_register_transfer +EXPORT_SYMBOL vmlinux 0x910661eb unregister_nls +EXPORT_SYMBOL vmlinux 0x91201cef _lv1_enable_logical_spe +EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay +EXPORT_SYMBOL vmlinux 0x913f87c1 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x915564fa inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x915d8346 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x9166fada strncpy +EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor +EXPORT_SYMBOL vmlinux 0x9169fe65 register_quota_format +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x91787033 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x918601d2 inet6_add_offload +EXPORT_SYMBOL vmlinux 0x918db982 dev_get_phys_port_id +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x91ac822f vscnprintf +EXPORT_SYMBOL vmlinux 0x91c4feca _lv1_unmap_htab +EXPORT_SYMBOL vmlinux 0x91d4a3f9 pmac_register_agp_pm +EXPORT_SYMBOL vmlinux 0x91faaa6c scsi_device_resume +EXPORT_SYMBOL vmlinux 0x92176aea bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x924fb152 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x925520d2 blk_start_plug +EXPORT_SYMBOL vmlinux 0x925c5350 blkdev_issue_write_same +EXPORT_SYMBOL vmlinux 0x9291cd3b memdup_user +EXPORT_SYMBOL vmlinux 0x92a72377 neigh_table_init +EXPORT_SYMBOL vmlinux 0x92a9c60c time_to_tm +EXPORT_SYMBOL vmlinux 0x92bc220b lockref_get +EXPORT_SYMBOL vmlinux 0x92d050df iov_pages +EXPORT_SYMBOL vmlinux 0x92fc79ef md_write_end +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x932b1c7b vfs_llseek +EXPORT_SYMBOL vmlinux 0x932da5c6 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x933a99d8 __find_get_block +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x93507f1c _lv1_gpu_memory_allocate +EXPORT_SYMBOL vmlinux 0x93557998 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x93650bdc jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid +EXPORT_SYMBOL vmlinux 0x93a5660f tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93a8d611 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93b85612 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0x93bf6dd7 devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0x93c31c3f tcp_poll +EXPORT_SYMBOL vmlinux 0x93c6318b serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x93e7983e netpoll_rx_disable +EXPORT_SYMBOL vmlinux 0x93f285aa i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x941a2322 vfs_open +EXPORT_SYMBOL vmlinux 0x943c7dee validate_sp +EXPORT_SYMBOL vmlinux 0x943dc80f csum_and_copy_to_user +EXPORT_SYMBOL vmlinux 0x944357f9 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x944aa064 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x944b6e69 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x945bf2ad xfrm_garbage_collect +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x9496d8e9 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x94997dd8 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x949bf4ae ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x94c27257 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x9508f166 param_ops_bint +EXPORT_SYMBOL vmlinux 0x95129a9c skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x9514151a _mcount +EXPORT_SYMBOL vmlinux 0x951f93b1 update_time +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954be8fd ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x9561002e paca +EXPORT_SYMBOL vmlinux 0x95a340ff complete_request_key +EXPORT_SYMBOL vmlinux 0x95aa9fe4 blk_mq_end_io +EXPORT_SYMBOL vmlinux 0x95cb929c of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x95dcbce5 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x95e7dfd7 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x9662de9c register_gifconf +EXPORT_SYMBOL vmlinux 0x96644f35 kernel_connect +EXPORT_SYMBOL vmlinux 0x966b035b mach_ps3 +EXPORT_SYMBOL vmlinux 0x96b29254 strncasecmp +EXPORT_SYMBOL vmlinux 0x96b3ec81 phy_print_status +EXPORT_SYMBOL vmlinux 0x96cb2b95 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96dd6503 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x96f6e270 __quota_error +EXPORT_SYMBOL vmlinux 0x9701ef10 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x97221776 phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns +EXPORT_SYMBOL vmlinux 0x9749f98f gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x976e014f _lv1_map_device_mmio_region +EXPORT_SYMBOL vmlinux 0x97753067 km_policy_notify +EXPORT_SYMBOL vmlinux 0x97868aef __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x97a60e3d param_get_bool +EXPORT_SYMBOL vmlinux 0x97b5a144 dev_emerg +EXPORT_SYMBOL vmlinux 0x97b5d3e8 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x97d12e2f key_unlink +EXPORT_SYMBOL vmlinux 0x97d4c502 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x97e26c29 dm_put_device +EXPORT_SYMBOL vmlinux 0x97ede56f thaw_super +EXPORT_SYMBOL vmlinux 0x97f03d6f vio_cmo_entitlement_update +EXPORT_SYMBOL vmlinux 0x97fa15c7 dget_parent +EXPORT_SYMBOL vmlinux 0x981661a0 __idr_get_new_above +EXPORT_SYMBOL vmlinux 0x98177648 _lv1_set_lpm_interval +EXPORT_SYMBOL vmlinux 0x981ac56f devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x98225517 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x9829fc11 __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0x982b51f8 dma_iommu_ops +EXPORT_SYMBOL vmlinux 0x984762cc get_fs_type +EXPORT_SYMBOL vmlinux 0x9863c77f __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0x986bc8cd i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x986cb3e1 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x986ebd92 pcim_iomap +EXPORT_SYMBOL vmlinux 0x9884ca58 d_find_any_alias +EXPORT_SYMBOL vmlinux 0x98a54992 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x98cf60b3 strlen +EXPORT_SYMBOL vmlinux 0x98ef0e9e agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x9902da10 console_start +EXPORT_SYMBOL vmlinux 0x990b3631 genphy_read_status +EXPORT_SYMBOL vmlinux 0x99195078 vsnprintf +EXPORT_SYMBOL vmlinux 0x99314127 scsi_init_io +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x99591a7a ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a7334a blk_stop_queue +EXPORT_SYMBOL vmlinux 0x99a9238b ip_options_compile +EXPORT_SYMBOL vmlinux 0x99afe916 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x99c24cfe _lv1_free_device_dma_region +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d3a43c dm_table_get_size +EXPORT_SYMBOL vmlinux 0x9a0254f6 init_net +EXPORT_SYMBOL vmlinux 0x9a10e808 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1fc4b4 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9a1ffb92 _lv1_clear_spe_interrupt_status +EXPORT_SYMBOL vmlinux 0x9a24b184 mutex_trylock +EXPORT_SYMBOL vmlinux 0x9a43ab40 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x9a5ffc64 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x9a626734 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x9a6c2531 pasemi_dma_init +EXPORT_SYMBOL vmlinux 0x9a71e975 alloc_disk +EXPORT_SYMBOL vmlinux 0x9a779ea3 pci_map_rom +EXPORT_SYMBOL vmlinux 0x9a7e80ff jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x9a7fc277 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x9aa7f4a8 bio_split +EXPORT_SYMBOL vmlinux 0x9ade4c05 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x9af42985 mdiobus_register +EXPORT_SYMBOL vmlinux 0x9af89f98 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9af8cfb2 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x9b08380a __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x9b085fa1 __i2c_transfer +EXPORT_SYMBOL vmlinux 0x9b23f0a0 blk_rq_init +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b75df45 path_get +EXPORT_SYMBOL vmlinux 0x9b815ed1 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x9b9e05f9 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x9ba14d33 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bb5051a mark_page_accessed +EXPORT_SYMBOL vmlinux 0x9bb54528 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x9bc21fb2 mmc_stop_bkops +EXPORT_SYMBOL vmlinux 0x9bd7b05c tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x9be5f201 lock_fb_info +EXPORT_SYMBOL vmlinux 0x9be7bde4 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x9c09b871 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x9c18fe7e phy_start +EXPORT_SYMBOL vmlinux 0x9c242d3b clocksource_unregister +EXPORT_SYMBOL vmlinux 0x9c2a47f6 proc_set_user +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9ca62bb5 elevator_alloc +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9cdb39f9 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x9ce73b22 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x9cef3cc5 __idr_remove_all +EXPORT_SYMBOL vmlinux 0x9cf24115 dquot_disable +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d04d7a7 rtas +EXPORT_SYMBOL vmlinux 0x9d05f6c4 ktime_get_clocktai +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d13e797 sys_fillrect +EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs +EXPORT_SYMBOL vmlinux 0x9d1cb354 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d4e1552 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x9d4fd2d2 kernel_read +EXPORT_SYMBOL vmlinux 0x9d66662b request_key_async +EXPORT_SYMBOL vmlinux 0x9d67d69d __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x9d7ce8dd _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x9d9dfc18 load_fp_state +EXPORT_SYMBOL vmlinux 0x9daa017e inode_init_once +EXPORT_SYMBOL vmlinux 0x9db4b7b3 register_console +EXPORT_SYMBOL vmlinux 0x9dcc633e __cleancache_put_page +EXPORT_SYMBOL vmlinux 0x9dcc7d79 phy_get_eee_err +EXPORT_SYMBOL vmlinux 0x9dcf5723 mutex_unlock +EXPORT_SYMBOL vmlinux 0x9dd35f16 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x9df7f9c8 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x9dfca966 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x9e00203e blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e19b851 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x9e1d5581 vio_disable_interrupts +EXPORT_SYMBOL vmlinux 0x9e2f8c90 lz4_decompress_unknownoutputsize +EXPORT_SYMBOL vmlinux 0x9e393ae8 pci_scan_bus +EXPORT_SYMBOL vmlinux 0x9e44b9b7 of_get_next_available_child +EXPORT_SYMBOL vmlinux 0x9e4eeda4 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e7ef216 ipmi_register_smi +EXPORT_SYMBOL vmlinux 0x9e823e81 bdi_register_dev +EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time +EXPORT_SYMBOL vmlinux 0x9e97404e follow_down_one +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9eac8a38 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ed2eec7 param_set_ushort +EXPORT_SYMBOL vmlinux 0x9ee5c035 fget +EXPORT_SYMBOL vmlinux 0x9ee78669 _lv1_write_virtual_uart +EXPORT_SYMBOL vmlinux 0x9eeb4e8a __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x9f044a32 security_inode_readlink +EXPORT_SYMBOL vmlinux 0x9f04d565 dev_uc_add +EXPORT_SYMBOL vmlinux 0x9f18f431 eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f6160d4 file_open_root +EXPORT_SYMBOL vmlinux 0x9f913af5 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0xa00fba3e md_check_recovery +EXPORT_SYMBOL vmlinux 0xa0172fdc blkdev_fsync +EXPORT_SYMBOL vmlinux 0xa01ebdc2 udp_seq_open +EXPORT_SYMBOL vmlinux 0xa03d9221 register_qdisc +EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0xa045222b dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06848e5 get_task_io_context +EXPORT_SYMBOL vmlinux 0xa07a37f0 memchr +EXPORT_SYMBOL vmlinux 0xa07df790 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa09c3b41 i2c_del_driver +EXPORT_SYMBOL vmlinux 0xa0acb780 nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0bb5281 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xa0c3cb11 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xa0c6ed15 __netlink_dump_start +EXPORT_SYMBOL vmlinux 0xa0cb735d __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0d7aefd remove_proc_entry +EXPORT_SYMBOL vmlinux 0xa0dad88e netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0f34135 srp_rport_put +EXPORT_SYMBOL vmlinux 0xa0f388e1 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0ff74d6 udp_memory_allocated +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa10c138f qdisc_list_del +EXPORT_SYMBOL vmlinux 0xa11d7412 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa133fb88 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa15e8987 mmc_fixup_device +EXPORT_SYMBOL vmlinux 0xa16bf080 dev_alert +EXPORT_SYMBOL vmlinux 0xa197079b agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0xa19d6dbe tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xa1a3810f bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xa1a7e9d3 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xa1b06889 blk_init_tags +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1c99385 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xa1cc684f dquot_transfer +EXPORT_SYMBOL vmlinux 0xa1d1aa86 d_move +EXPORT_SYMBOL vmlinux 0xa1dd8b11 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0xa1f8fe75 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xa2026975 kobject_set_name +EXPORT_SYMBOL vmlinux 0xa202a8e5 kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa20e7910 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xa2127cdc pasemi_dma_alloc_flag +EXPORT_SYMBOL vmlinux 0xa21fc9f9 vlan_uses_dev +EXPORT_SYMBOL vmlinux 0xa23e00d2 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xa2465322 _lv1_get_version_info +EXPORT_SYMBOL vmlinux 0xa264cc58 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xa273f0b1 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xa28040e0 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL vmlinux 0xa29007c3 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xa2971ff5 mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register +EXPORT_SYMBOL vmlinux 0xa2dd6bbe nf_log_unset +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2fad098 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xa2fc91ad key_invalidate +EXPORT_SYMBOL vmlinux 0xa303d1ff dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0xa3169d44 vc_resize +EXPORT_SYMBOL vmlinux 0xa32a9766 pci_enable_msix +EXPORT_SYMBOL vmlinux 0xa332464a of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xa3404647 kernel_sendpage +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa380ff60 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xa394913f blk_queue_io_min +EXPORT_SYMBOL vmlinux 0xa3969c0a __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa39ca221 macio_unregister_driver +EXPORT_SYMBOL vmlinux 0xa3abc422 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xa3b700c2 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xa3f31c40 pci_release_region +EXPORT_SYMBOL vmlinux 0xa3f6cfd0 genphy_setup_forced +EXPORT_SYMBOL vmlinux 0xa3fc3d50 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0xa400159f crc32_be +EXPORT_SYMBOL vmlinux 0xa40c250b pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xa4253589 neigh_app_ns +EXPORT_SYMBOL vmlinux 0xa42bf5b6 dquot_destroy +EXPORT_SYMBOL vmlinux 0xa42d8e47 input_set_keycode +EXPORT_SYMBOL vmlinux 0xa44380b6 posix_lock_file +EXPORT_SYMBOL vmlinux 0xa4511467 crc16 +EXPORT_SYMBOL vmlinux 0xa4650ff7 md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0xa4701e9e timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0xa480c04b _lv1_gpu_context_attribute +EXPORT_SYMBOL vmlinux 0xa496e21f wake_up_process +EXPORT_SYMBOL vmlinux 0xa4a94d26 find_next_bit_le +EXPORT_SYMBOL vmlinux 0xa4b07be4 generic_permission +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4e38de5 vfs_fsync +EXPORT_SYMBOL vmlinux 0xa4e71a4c serio_unregister_port +EXPORT_SYMBOL vmlinux 0xa4eb97cd km_policy_expired +EXPORT_SYMBOL vmlinux 0xa4ee07e0 consume_skb +EXPORT_SYMBOL vmlinux 0xa4eed6c0 lro_receive_frags +EXPORT_SYMBOL vmlinux 0xa517510a scsi_scan_target +EXPORT_SYMBOL vmlinux 0xa51fd411 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xa52e448f simple_link +EXPORT_SYMBOL vmlinux 0xa5391203 __d_drop +EXPORT_SYMBOL vmlinux 0xa54d04ad km_state_notify +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa55c6830 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xa58a003c inet_register_protosw +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5a3b291 dev_addr_add +EXPORT_SYMBOL vmlinux 0xa5a8d1d3 seq_release +EXPORT_SYMBOL vmlinux 0xa5e81fec ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xa60579ce proc_symlink +EXPORT_SYMBOL vmlinux 0xa616bb31 dma_set_mask +EXPORT_SYMBOL vmlinux 0xa632d564 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xa63a2f9b param_get_ulong +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa67085fc copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xa6715115 do_settimeofday +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa6771d65 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6ab1f7b generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xa6ce472f cpu_rmap_update +EXPORT_SYMBOL vmlinux 0xa6da7c6c phy_attach +EXPORT_SYMBOL vmlinux 0xa720678c lg_global_lock +EXPORT_SYMBOL vmlinux 0xa721bfa7 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa735db59 prandom_u32 +EXPORT_SYMBOL vmlinux 0xa73fc98f of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xa75af603 load_nls +EXPORT_SYMBOL vmlinux 0xa75b35bf neigh_compat_output +EXPORT_SYMBOL vmlinux 0xa7666b52 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0xa769c615 __dev_remove_offload +EXPORT_SYMBOL vmlinux 0xa771017d cdev_init +EXPORT_SYMBOL vmlinux 0xa77ad9f5 __get_user_pages +EXPORT_SYMBOL vmlinux 0xa77c3ecb jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xa7859fdc pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xa786df82 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xa78a041c default_llseek +EXPORT_SYMBOL vmlinux 0xa78d9eb7 slhc_uncompress +EXPORT_SYMBOL vmlinux 0xa7953b54 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xa7c95bc1 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xa7d653ee wireless_spy_update +EXPORT_SYMBOL vmlinux 0xa7e75f2d tty_port_init +EXPORT_SYMBOL vmlinux 0xa80219b6 kobject_add +EXPORT_SYMBOL vmlinux 0xa81e1f20 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xa8202ebb free_user_ns +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa8454cc8 writeback_in_progress +EXPORT_SYMBOL vmlinux 0xa85b8fca i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xa85d3f11 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0xa863e8a4 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xa86472a7 blk_delay_queue +EXPORT_SYMBOL vmlinux 0xa8721b97 system_state +EXPORT_SYMBOL vmlinux 0xa87c1305 __get_page_tail +EXPORT_SYMBOL vmlinux 0xa87f864a dev_get_flags +EXPORT_SYMBOL vmlinux 0xa8999f20 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8b79acd genphy_update_link +EXPORT_SYMBOL vmlinux 0xa8ced546 _lv1_net_set_interrupt_status_indicator +EXPORT_SYMBOL vmlinux 0xa8d8f217 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xa8e8b941 unregister_console +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa9036207 netpoll_rx_enable +EXPORT_SYMBOL vmlinux 0xa907cbc4 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xa9089f57 __lock_buffer +EXPORT_SYMBOL vmlinux 0xa909afeb pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xa90a53b9 module_put +EXPORT_SYMBOL vmlinux 0xa916b694 strnlen +EXPORT_SYMBOL vmlinux 0xa91c77b6 _lv1_end_of_interrupt +EXPORT_SYMBOL vmlinux 0xa9273e1a epapr_hypercall_start +EXPORT_SYMBOL vmlinux 0xa93ba88e proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xa94db93f devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0xa95967de cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xa9653fcc compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0xa981fa2d iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0xa9856058 sock_wmalloc +EXPORT_SYMBOL vmlinux 0xa9b59a54 netdev_crit +EXPORT_SYMBOL vmlinux 0xa9b63345 of_parse_phandle_with_fixed_args +EXPORT_SYMBOL vmlinux 0xa9e2ef0a dentry_update_name_case +EXPORT_SYMBOL vmlinux 0xa9e6942e starget_for_each_device +EXPORT_SYMBOL vmlinux 0xa9eff24b scsi_execute_req_flags +EXPORT_SYMBOL vmlinux 0xa9f0b329 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xaa0073b7 __net_get_random_once +EXPORT_SYMBOL vmlinux 0xaa0edca8 pasemi_dma_alloc_fun +EXPORT_SYMBOL vmlinux 0xaa12b3ca inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xaa182cd7 n_tty_compat_ioctl_helper +EXPORT_SYMBOL vmlinux 0xaa46c8ee tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xaa46e87e lg_local_unlock +EXPORT_SYMBOL vmlinux 0xaa4894a3 i2c_release_client +EXPORT_SYMBOL vmlinux 0xaa6e4df5 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa7078dd md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xaa9087c0 param_ops_string +EXPORT_SYMBOL vmlinux 0xaab2890e ip_ct_attach +EXPORT_SYMBOL vmlinux 0xaab4ecdd blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xaab6b323 follow_pfn +EXPORT_SYMBOL vmlinux 0xaad1d29d mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaad7dbfa devfreq_remove_device +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab0488fc blk_recount_segments +EXPORT_SYMBOL vmlinux 0xab1b0a9a bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xab36d13d unregister_key_type +EXPORT_SYMBOL vmlinux 0xab469c6a alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xab4c5a71 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xab57f442 inode_init_always +EXPORT_SYMBOL vmlinux 0xab66f611 _lv1_set_lpm_trigger_control +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xab7bec72 scm_fp_dup +EXPORT_SYMBOL vmlinux 0xab814645 simple_rename +EXPORT_SYMBOL vmlinux 0xab87eec7 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xabc161bb dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xabc6dd63 cpufreq_sysfs_create_file +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabffb35e ppp_input_error +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac26b820 _raw_write_lock +EXPORT_SYMBOL vmlinux 0xac46343c blk_put_request +EXPORT_SYMBOL vmlinux 0xac70bcd4 ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0xac9d2d4b blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xac9ec4f4 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacbf50ca blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0xacc5b5d2 csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xaccc1bc4 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xacd14ab8 _lv1_construct_logical_spe +EXPORT_SYMBOL vmlinux 0xacf189ba netlink_capable +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad01744f kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0xad02add1 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0a6e0a flex_array_prealloc +EXPORT_SYMBOL vmlinux 0xad1185f1 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0xad12fad1 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xad164875 kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xad46dec2 of_count_phandle_with_args +EXPORT_SYMBOL vmlinux 0xad50cebb i8253_lock +EXPORT_SYMBOL vmlinux 0xad5f12ad tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xad61dea4 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xad74fcc5 security_path_truncate +EXPORT_SYMBOL vmlinux 0xad7752bc fb_get_mode +EXPORT_SYMBOL vmlinux 0xad83d76a netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0xad84725a bio_alloc_pages +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xada7c1d8 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xadb0cef0 pci_enable_msi_block_auto +EXPORT_SYMBOL vmlinux 0xadb9c749 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xadd77fbe request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xade54303 max8925_reg_read +EXPORT_SYMBOL vmlinux 0xadeffe25 _lv1_gpu_context_intr +EXPORT_SYMBOL vmlinux 0xadf3fd6b dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xae07f49a udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xae0f9f9e sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xae435980 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xae4edf96 netlink_set_err +EXPORT_SYMBOL vmlinux 0xae545f06 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xae5f206c input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0xae729e59 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0xaed44a89 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xaee10765 dma_pool_create +EXPORT_SYMBOL vmlinux 0xaee90152 mach_powernv +EXPORT_SYMBOL vmlinux 0xaeeb48f7 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xaef25d0f dmam_pool_create +EXPORT_SYMBOL vmlinux 0xaefa98c0 __memcg_kmem_get_cache +EXPORT_SYMBOL vmlinux 0xaf05b91b of_device_is_available +EXPORT_SYMBOL vmlinux 0xaf063510 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xaf16fdaf path_put +EXPORT_SYMBOL vmlinux 0xaf19666b mdiobus_read +EXPORT_SYMBOL vmlinux 0xaf25db82 truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0xaf2c4599 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xaf2d872c prepare_to_wait +EXPORT_SYMBOL vmlinux 0xaf3889a2 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf5aacdd pci_set_master +EXPORT_SYMBOL vmlinux 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL vmlinux 0xaf6ae696 kstrndup +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf95b1bf sock_no_connect +EXPORT_SYMBOL vmlinux 0xafa9c2ca dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xafad493b param_ops_ushort +EXPORT_SYMBOL vmlinux 0xafaf0b05 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xafc947ed scsi_add_device +EXPORT_SYMBOL vmlinux 0xafd68c33 flex_array_free +EXPORT_SYMBOL vmlinux 0xaff5243b mmc_read_bkops_status +EXPORT_SYMBOL vmlinux 0xafff3d1d mempool_alloc +EXPORT_SYMBOL vmlinux 0xb04f8dba swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xb05a56de free_buffer_head +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb075cff6 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0xb081b368 giveup_altivec +EXPORT_SYMBOL vmlinux 0xb09a5167 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0be60e0 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0xb0cacb95 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xb0d797cd d_make_root +EXPORT_SYMBOL vmlinux 0xb0da6d62 fb_class +EXPORT_SYMBOL vmlinux 0xb0e04b3f migrate_page +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e5ae63 empty_aops +EXPORT_SYMBOL vmlinux 0xb0ffda2f blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xb11f3012 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb137b98f pid_task +EXPORT_SYMBOL vmlinux 0xb1473576 register_netdev +EXPORT_SYMBOL vmlinux 0xb147a855 dql_reset +EXPORT_SYMBOL vmlinux 0xb15347bb inet_sendpage +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb15cff13 locks_free_lock +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb165ef45 __irq_regs +EXPORT_SYMBOL vmlinux 0xb16a23e6 d_lookup +EXPORT_SYMBOL vmlinux 0xb175661d kernel_listen +EXPORT_SYMBOL vmlinux 0xb18bb6f9 inode_get_bytes +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb19e8389 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c6e787 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1cf44df fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xb1d88b8c sock_no_mmap +EXPORT_SYMBOL vmlinux 0xb1db9e4e param_get_invbool +EXPORT_SYMBOL vmlinux 0xb1f8b37e tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xb20df0d5 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xb216985d skb_queue_tail +EXPORT_SYMBOL vmlinux 0xb23f1965 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0xb26419e7 udp_del_offload +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb27c25c0 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xb2875c5d ftrace_raw_output_prep +EXPORT_SYMBOL vmlinux 0xb2b5431d netdev_lower_dev_get_private_rcu +EXPORT_SYMBOL vmlinux 0xb2be6e92 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xb2d71ae8 force_sig +EXPORT_SYMBOL vmlinux 0xb304acff ida_get_new_above +EXPORT_SYMBOL vmlinux 0xb30a2ecc xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xb31623bc dm_get_device +EXPORT_SYMBOL vmlinux 0xb34080e3 neigh_for_each +EXPORT_SYMBOL vmlinux 0xb351cd1f rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xb35239b8 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xb376fb48 dev_trans_start +EXPORT_SYMBOL vmlinux 0xb3876c60 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xb38a262d neigh_lookup +EXPORT_SYMBOL vmlinux 0xb39b0bc2 register_nls +EXPORT_SYMBOL vmlinux 0xb3b22de9 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xb3bde7f6 fb_blank +EXPORT_SYMBOL vmlinux 0xb3bf73df cpu_active_mask +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb3f83710 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xb415a4cc mmc_flush_cache +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42e6ae3 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xb4682845 submit_bh +EXPORT_SYMBOL vmlinux 0xb46e4106 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb47189b5 reservation_ww_class +EXPORT_SYMBOL vmlinux 0xb47e3f13 icmp_send +EXPORT_SYMBOL vmlinux 0xb486026d d_drop +EXPORT_SYMBOL vmlinux 0xb49a3ab6 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xb49c4de3 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xb4a27aba netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xb4ac002d simple_transaction_read +EXPORT_SYMBOL vmlinux 0xb4b84456 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xb4e0de54 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xb4f0edaa seq_puts +EXPORT_SYMBOL vmlinux 0xb5006a2e scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xb50708c7 nobh_write_begin +EXPORT_SYMBOL vmlinux 0xb508675c mmc_can_discard +EXPORT_SYMBOL vmlinux 0xb50ac06f skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xb5127267 of_dev_get +EXPORT_SYMBOL vmlinux 0xb51b99c4 blk_bio_map_sg +EXPORT_SYMBOL vmlinux 0xb522a538 input_set_abs_params +EXPORT_SYMBOL vmlinux 0xb5286df6 kthread_stop +EXPORT_SYMBOL vmlinux 0xb52c0f5d netif_carrier_off +EXPORT_SYMBOL vmlinux 0xb5438c5d blk_integrity_register +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb55361e5 __ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xb5634722 skb_copy +EXPORT_SYMBOL vmlinux 0xb56bfd9e smu_spinwait_cmd +EXPORT_SYMBOL vmlinux 0xb57343c2 frontswap_shrink +EXPORT_SYMBOL vmlinux 0xb57ebd8a devm_gpio_request +EXPORT_SYMBOL vmlinux 0xb57f2457 sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0xb58fa629 dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0xb597f9c0 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5bcd733 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xb5c927d3 tty_mutex +EXPORT_SYMBOL vmlinux 0xb5d7af56 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xb5e3774c d_instantiate +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb631d43e uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xb631e455 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xb6394d4b param_set_bint +EXPORT_SYMBOL vmlinux 0xb64366a6 audit_log_start +EXPORT_SYMBOL vmlinux 0xb66efec0 get_io_context +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb67e19f9 of_platform_device_create +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb68bfa9d node_states +EXPORT_SYMBOL vmlinux 0xb691e8b8 ihold +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6b46a7c param_ops_int +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6d1ffab devfreq_interval_update +EXPORT_SYMBOL vmlinux 0xb6ef28a8 simple_setattr +EXPORT_SYMBOL vmlinux 0xb756c04e __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xb768a475 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0xb76fa943 tcf_hash_search +EXPORT_SYMBOL vmlinux 0xb76fe4f3 inode_change_ok +EXPORT_SYMBOL vmlinux 0xb77131b1 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xb7a027ed user_revoke +EXPORT_SYMBOL vmlinux 0xb7f41a81 seq_putc +EXPORT_SYMBOL vmlinux 0xb7f4857d bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xb80bc66f ping_prot +EXPORT_SYMBOL vmlinux 0xb834936e alloc_disk_node +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb84fa420 sk_dst_check +EXPORT_SYMBOL vmlinux 0xb860293c __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0xb86123be _lv1_write_repository_node +EXPORT_SYMBOL vmlinux 0xb874b87a __clzsi2 +EXPORT_SYMBOL vmlinux 0xb877acdc dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0xb87eaf1b generic_writepages +EXPORT_SYMBOL vmlinux 0xb8843e6e __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0xb8a30c7e _lv1_add_lpm_event_bookmark +EXPORT_SYMBOL vmlinux 0xb8d73e97 param_set_uint +EXPORT_SYMBOL vmlinux 0xb8f0de72 setattr_copy +EXPORT_SYMBOL vmlinux 0xb921093e security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xb93ea4c6 ppp_register_channel +EXPORT_SYMBOL vmlinux 0xb950147f mmc_gpio_request_ro +EXPORT_SYMBOL vmlinux 0xb95b0d03 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0xb96cf363 pcie_set_mps +EXPORT_SYMBOL vmlinux 0xb96eae01 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xb97808aa rtmsg_ifinfo +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb992af99 sg_miter_next +EXPORT_SYMBOL vmlinux 0xb9b4e181 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0xb9b82639 tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0xb9bb4a96 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xb9e8e2cc in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0xb9f49cd5 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xba085be7 put_disk +EXPORT_SYMBOL vmlinux 0xba122a2c smu_done_complete +EXPORT_SYMBOL vmlinux 0xba1cade9 genl_unregister_family +EXPORT_SYMBOL vmlinux 0xba3323f6 pcim_pin_device +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba66fca0 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xba688ae9 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xba96b075 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xba98c8b8 mdiobus_free +EXPORT_SYMBOL vmlinux 0xbadd0b9d mmc_alloc_host +EXPORT_SYMBOL vmlinux 0xbae2781e of_match_device +EXPORT_SYMBOL vmlinux 0xbafda05d iget_locked +EXPORT_SYMBOL vmlinux 0xbb069a11 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xbb147e4b kmem_cache_alloc_node_trace +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb4f4766 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xbb58bc11 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb5e9e96 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xbb713e6d sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbb9f07c3 macio_request_resources +EXPORT_SYMBOL vmlinux 0xbba8dc7d read_dev_sector +EXPORT_SYMBOL vmlinux 0xbbaeb559 memcg_socket_limit_enabled +EXPORT_SYMBOL vmlinux 0xbbb6b412 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xbbbcaeec devm_gpiod_put +EXPORT_SYMBOL vmlinux 0xbbd04546 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xbbfae84d __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xbbfccfdf tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xbc23810f ilookup5 +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc3f6afa down_read +EXPORT_SYMBOL vmlinux 0xbc9f0b5c gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0xbca102b1 capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0xbca76c32 __register_binfmt +EXPORT_SYMBOL vmlinux 0xbcb9d169 pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcc87af6 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xbccdc2f6 flex_array_put +EXPORT_SYMBOL vmlinux 0xbcd56771 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xbcdedba7 of_get_mac_address +EXPORT_SYMBOL vmlinux 0xbceb8ecb blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xbcf150f9 xor_altivec_5 +EXPORT_SYMBOL vmlinux 0xbcfb8055 get_pci_dma_ops +EXPORT_SYMBOL vmlinux 0xbcfd4263 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xbd34d759 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xbd42dad8 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0xbd431e3a seq_lseek +EXPORT_SYMBOL vmlinux 0xbd4433eb d_instantiate_unique +EXPORT_SYMBOL vmlinux 0xbd462b55 __kfifo_init +EXPORT_SYMBOL vmlinux 0xbd4ac0ce unregister_binfmt +EXPORT_SYMBOL vmlinux 0xbd5b3484 inode_needs_sync +EXPORT_SYMBOL vmlinux 0xbd5f9fe6 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xbd678546 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xbd803510 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xbd8cfa15 pasemi_write_mac_reg +EXPORT_SYMBOL vmlinux 0xbd93648c sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xbd9ac2cd __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xbda5d3a7 nf_hook_slow +EXPORT_SYMBOL vmlinux 0xbdb1588d framebuffer_release +EXPORT_SYMBOL vmlinux 0xbdb70430 ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0xbdbf7137 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xbdc7e95f simple_pin_fs +EXPORT_SYMBOL vmlinux 0xbde5ace8 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0xbdea91d5 blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0xbdedb7d6 audit_log_task_info +EXPORT_SYMBOL vmlinux 0xbdeeba15 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xbdf5f516 block_truncate_page +EXPORT_SYMBOL vmlinux 0xbe0f607e ip_defrag +EXPORT_SYMBOL vmlinux 0xbe106c37 dump_skip +EXPORT_SYMBOL vmlinux 0xbe26777b max8998_read_reg +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe2c963f block_commit_write +EXPORT_SYMBOL vmlinux 0xbe433867 agp_free_page_array +EXPORT_SYMBOL vmlinux 0xbe504bdf mmc_free_host +EXPORT_SYMBOL vmlinux 0xbe5a0bc1 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0xbe697153 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0xbe70f7aa set_groups +EXPORT_SYMBOL vmlinux 0xbe77aebe down_write_trylock +EXPORT_SYMBOL vmlinux 0xbe7a9109 bio_reset +EXPORT_SYMBOL vmlinux 0xbe953aec pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xbec25473 of_parse_phandle +EXPORT_SYMBOL vmlinux 0xbed00ac9 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xbed066be simple_write_begin +EXPORT_SYMBOL vmlinux 0xbed6f5bd pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0xbee5c777 get_phy_device +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf0a63e7 pci_alloc_dev +EXPORT_SYMBOL vmlinux 0xbf1bc693 lock_sock_fast +EXPORT_SYMBOL vmlinux 0xbf5990cd dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0xbf5cbf0c macio_release_resources +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9b770a blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfabfe59 __debugger_iabr_match +EXPORT_SYMBOL vmlinux 0xbfb59853 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xbfb8b0b7 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff4bf5e blk_mq_alloc_reserved_request +EXPORT_SYMBOL vmlinux 0xbff7d7db default_file_splice_read +EXPORT_SYMBOL vmlinux 0xbff8182c plpar_hcall_norets +EXPORT_SYMBOL vmlinux 0xc00dfb16 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xc0303ec1 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xc03ca9aa insert_inode_locked +EXPORT_SYMBOL vmlinux 0xc0569a74 key_task_permission +EXPORT_SYMBOL vmlinux 0xc06718e0 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xc06c6ca1 mem_section +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc07b7c2f scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc094a3d3 pci_iounmap +EXPORT_SYMBOL vmlinux 0xc0a00ace agp_copy_info +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0b70de2 dma_sync_wait +EXPORT_SYMBOL vmlinux 0xc0ceaf0f agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0xc0de9e32 __skb_get_hash +EXPORT_SYMBOL vmlinux 0xc0e7863b pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xc0e9f700 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xc0ef4514 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xc1100566 compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xc11179ab jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xc11affbb noop_llseek +EXPORT_SYMBOL vmlinux 0xc123414d jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xc13511d7 cpumask_next_and +EXPORT_SYMBOL vmlinux 0xc13f53b1 dev_disable_lro +EXPORT_SYMBOL vmlinux 0xc14ef3ba mach_maple +EXPORT_SYMBOL vmlinux 0xc15a44c6 memzero_explicit +EXPORT_SYMBOL vmlinux 0xc1a8be6d free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1c75d0d follow_up +EXPORT_SYMBOL vmlinux 0xc1cdb823 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0xc1d233b5 set_page_dirty +EXPORT_SYMBOL vmlinux 0xc1de2a8a dev_err +EXPORT_SYMBOL vmlinux 0xc1e5f3ae __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xc1fb4478 seq_open_private +EXPORT_SYMBOL vmlinux 0xc2099f00 ata_dev_printk +EXPORT_SYMBOL vmlinux 0xc2100781 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xc210bdeb jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xc212a2ab lock_rename +EXPORT_SYMBOL vmlinux 0xc2230931 put_page +EXPORT_SYMBOL vmlinux 0xc237adfe giveup_fpu +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc24271cb gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xc24fa029 input_flush_device +EXPORT_SYMBOL vmlinux 0xc2530b01 simple_dentry_operations +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc25f348d inet_bind +EXPORT_SYMBOL vmlinux 0xc289507b jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xc28afe46 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xc29bf967 strspn +EXPORT_SYMBOL vmlinux 0xc2a1ee04 unload_nls +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f9c045 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xc2fb9ee1 _lv1_shutdown_logical_partition +EXPORT_SYMBOL vmlinux 0xc310b981 strnstr +EXPORT_SYMBOL vmlinux 0xc3128e5c block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xc323ae2e __getblk +EXPORT_SYMBOL vmlinux 0xc36d149a sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xc3762c3e vfs_symlink +EXPORT_SYMBOL vmlinux 0xc396bb9d abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xc399055a genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0xc39c3704 hvcs_free_partner_info +EXPORT_SYMBOL vmlinux 0xc3c09fe9 tty_set_operations +EXPORT_SYMBOL vmlinux 0xc3c621e4 tty_devnum +EXPORT_SYMBOL vmlinux 0xc3eec427 ilookup +EXPORT_SYMBOL vmlinux 0xc4103674 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xc41f1696 _lv1_configure_virtual_uart_irq +EXPORT_SYMBOL vmlinux 0xc422456a neigh_update +EXPORT_SYMBOL vmlinux 0xc42bf83c mutex_lock_killable +EXPORT_SYMBOL vmlinux 0xc4383f82 pci_bus_get +EXPORT_SYMBOL vmlinux 0xc45755de find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0xc47cdf9c _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0xc48307db lz4_decompress +EXPORT_SYMBOL vmlinux 0xc4976795 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49f50d7 __module_get +EXPORT_SYMBOL vmlinux 0xc4a3378d con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xc4b31eed phy_register_fixup +EXPORT_SYMBOL vmlinux 0xc4d9d848 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xc4dec9de nf_log_set +EXPORT_SYMBOL vmlinux 0xc4f051ac build_skb +EXPORT_SYMBOL vmlinux 0xc4f997e1 blk_peek_request +EXPORT_SYMBOL vmlinux 0xc4fed3fd pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0xc5089620 _lv1_stop_ppe_periodic_tracer +EXPORT_SYMBOL vmlinux 0xc50ec1d2 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0xc51d8624 set_device_ro +EXPORT_SYMBOL vmlinux 0xc525bab3 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xc52daae8 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xc5327968 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0xc538b4a1 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0xc53a360a pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc55b961e remove_proc_subtree +EXPORT_SYMBOL vmlinux 0xc55c2a9d inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0xc55de23c percpu_counter_set +EXPORT_SYMBOL vmlinux 0xc5837215 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xc589e044 param_set_long +EXPORT_SYMBOL vmlinux 0xc593f68e pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xc5cebdf1 sock_no_bind +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5deadb6 netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0xc5fdef94 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xc604afb9 may_umount_tree +EXPORT_SYMBOL vmlinux 0xc605ef0e devm_gpio_request_one +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc64533d6 __test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xc6492103 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xc649f039 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xc654264a serio_rescan +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc66168f2 abx500_register_ops +EXPORT_SYMBOL vmlinux 0xc663b075 __ioremap +EXPORT_SYMBOL vmlinux 0xc665d6d7 of_parse_phandle_with_args +EXPORT_SYMBOL vmlinux 0xc666a132 crc_t10dif +EXPORT_SYMBOL vmlinux 0xc688265f inc_nlink +EXPORT_SYMBOL vmlinux 0xc696c9da d_delete +EXPORT_SYMBOL vmlinux 0xc6b22c71 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xc6b52953 security_path_mknod +EXPORT_SYMBOL vmlinux 0xc6c101bd blk_complete_request +EXPORT_SYMBOL vmlinux 0xc6cb465a __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6dffde2 security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0xc6f095bd dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0xc7106e0b vga_tryget +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc72a4eb2 i2c_clients_command +EXPORT_SYMBOL vmlinux 0xc736a33a blk_register_region +EXPORT_SYMBOL vmlinux 0xc7537b99 tcp_disconnect +EXPORT_SYMBOL vmlinux 0xc758c64c vc_cons +EXPORT_SYMBOL vmlinux 0xc7613f8c remap_vmalloc_range_partial +EXPORT_SYMBOL vmlinux 0xc768bccb uart_get_divisor +EXPORT_SYMBOL vmlinux 0xc76a43fb set_bdi_congested +EXPORT_SYMBOL vmlinux 0xc77da7e3 padata_do_serial +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc7937b2c pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7b31546 elevator_init +EXPORT_SYMBOL vmlinux 0xc7c13ab9 sock_i_uid +EXPORT_SYMBOL vmlinux 0xc7e6aca0 dev_mc_sync +EXPORT_SYMBOL vmlinux 0xc7f6df67 block_write_end +EXPORT_SYMBOL vmlinux 0xc8377b79 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xc83b4d5b posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc85caa44 napi_gro_flush +EXPORT_SYMBOL vmlinux 0xc8698138 kill_anon_super +EXPORT_SYMBOL vmlinux 0xc8727277 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0xc876c55c pci_disable_msi +EXPORT_SYMBOL vmlinux 0xc877c435 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xc87b8b86 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xc88b074e __lru_cache_add +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8abd7ec tcp_child_process +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8cc6d79 note_scsi_host +EXPORT_SYMBOL vmlinux 0xc8e31d75 _lv1_configure_irq_state_bitmap +EXPORT_SYMBOL vmlinux 0xc90ba1f7 __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xc91ff664 down_read_trylock +EXPORT_SYMBOL vmlinux 0xc92aa46a iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xc93f73f3 netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0xc93fbc54 wait_for_completion_io +EXPORT_SYMBOL vmlinux 0xc9452c13 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xc9531cb8 macio_register_driver +EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0xc978479a xz_dec_run +EXPORT_SYMBOL vmlinux 0xc989743f sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xc98f189d blk_get_queue +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc99da5fd input_set_capability +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9a7e3e7 blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc9e0700a kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xc9ec95f0 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xc9ecced4 scsi_print_result +EXPORT_SYMBOL vmlinux 0xc9fc598d pasemi_read_dma_reg +EXPORT_SYMBOL vmlinux 0xca0a3441 blk_mq_init_commands +EXPORT_SYMBOL vmlinux 0xca289c89 netif_device_detach +EXPORT_SYMBOL vmlinux 0xca2c6192 tcf_register_action +EXPORT_SYMBOL vmlinux 0xca2d5bf3 gen10g_resume +EXPORT_SYMBOL vmlinux 0xca3023d7 led_blink_set +EXPORT_SYMBOL vmlinux 0xca3b28c6 store_vr_state +EXPORT_SYMBOL vmlinux 0xca4fb1c7 scsi_report_opcode +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca6c0fbd iterate_mounts +EXPORT_SYMBOL vmlinux 0xca815da0 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend +EXPORT_SYMBOL vmlinux 0xca8417f3 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xca8e5f45 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xca9f40fa agp_put_bridge +EXPORT_SYMBOL vmlinux 0xcaabf3f9 pasemi_write_iob_reg +EXPORT_SYMBOL vmlinux 0xcab3a6a3 fsl_lbc_ctrl_dev +EXPORT_SYMBOL vmlinux 0xcac81d57 sock_rfree +EXPORT_SYMBOL vmlinux 0xcacfca27 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xcad823b0 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb04fad7 __mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0xcb0c5d50 param_get_uint +EXPORT_SYMBOL vmlinux 0xcb3e9565 fput +EXPORT_SYMBOL vmlinux 0xcb44870f netpoll_print_options +EXPORT_SYMBOL vmlinux 0xcb4c2a8e bio_unmap_user +EXPORT_SYMBOL vmlinux 0xcb677331 _dev_info +EXPORT_SYMBOL vmlinux 0xcb837ab7 gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0xcb83d66a kern_path_create +EXPORT_SYMBOL vmlinux 0xcb9636d3 bdi_register +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbd4e3cc mntput +EXPORT_SYMBOL vmlinux 0xcbd4fcaa vfs_rmdir +EXPORT_SYMBOL vmlinux 0xcbdbd15d ip_route_input_noref +EXPORT_SYMBOL vmlinux 0xcbe8b038 _lv1_configure_execution_time_variable +EXPORT_SYMBOL vmlinux 0xcbf0ccf8 unlock_buffer +EXPORT_SYMBOL vmlinux 0xcbf15f20 __dquot_transfer +EXPORT_SYMBOL vmlinux 0xcbf4ab23 check_submounts_and_drop +EXPORT_SYMBOL vmlinux 0xcbf7ceff simple_write_end +EXPORT_SYMBOL vmlinux 0xcbfcd667 skb_pad +EXPORT_SYMBOL vmlinux 0xcc17504d _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xcc1f3deb devfreq_resume_device +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc28c475 pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0xcc37f55c blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xcc4466ff filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xcc4b84da of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5d0b1a pagevec_lookup +EXPORT_SYMBOL vmlinux 0xcc7a8ff1 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc89c246 pasemi_dma_alloc_chan +EXPORT_SYMBOL vmlinux 0xcc8c6db6 clear_inode +EXPORT_SYMBOL vmlinux 0xcc8d99d7 dev_notice +EXPORT_SYMBOL vmlinux 0xcc91cec8 misc_deregister +EXPORT_SYMBOL vmlinux 0xccba65c4 cap_mmap_file +EXPORT_SYMBOL vmlinux 0xccc21f5e input_get_new_minor +EXPORT_SYMBOL vmlinux 0xcceb37cd inet6_unregister_icmp_sender +EXPORT_SYMBOL vmlinux 0xcd0529c7 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xcd129171 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xcd1334ff ipmi_smi_watcher_register +EXPORT_SYMBOL vmlinux 0xcd20667a kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd441b86 dqput +EXPORT_SYMBOL vmlinux 0xcd4c7a28 __skb_checksum +EXPORT_SYMBOL vmlinux 0xcd715006 cdev_add +EXPORT_SYMBOL vmlinux 0xcd769f62 _lv1_gpu_device_map +EXPORT_SYMBOL vmlinux 0xcd86c87f __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xcd88e6d5 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xcdb5d899 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xcdb8058e generic_setxattr +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcdcce45d agp_collect_device_status +EXPORT_SYMBOL vmlinux 0xcdd4f847 mmc_get_card +EXPORT_SYMBOL vmlinux 0xcde0e65d sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xce1085b8 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce3b3f09 profile_pc +EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume +EXPORT_SYMBOL vmlinux 0xce4c698a address_space_init_once +EXPORT_SYMBOL vmlinux 0xce4e47b6 __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce6f957b kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xce96e6a2 scsi_finish_command +EXPORT_SYMBOL vmlinux 0xce9f5e10 nf_register_hooks +EXPORT_SYMBOL vmlinux 0xceb0da2b account_page_writeback +EXPORT_SYMBOL vmlinux 0xceb88728 notify_change +EXPORT_SYMBOL vmlinux 0xcec9b1dd posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xced777cb proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xcef2be89 napi_gro_frags +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcef675b2 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf3025cb inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0xcf3d8442 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xcf471583 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0xcf764581 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xcf7c544a xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xcf7d31d2 write_cache_pages +EXPORT_SYMBOL vmlinux 0xcf8fd328 blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0xcf9d691d follow_down +EXPORT_SYMBOL vmlinux 0xcfa0df81 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xcfb7d5a0 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0xcfda23bf tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xcfe87247 read_cache_page +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd02cd51c scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xd05931ec _lv1_set_lpm_counter_control +EXPORT_SYMBOL vmlinux 0xd0720a17 on_each_cpu_cond +EXPORT_SYMBOL vmlinux 0xd07422ce tty_port_close_start +EXPORT_SYMBOL vmlinux 0xd0745f3f blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0xd08c8305 tcp_ioctl +EXPORT_SYMBOL vmlinux 0xd09068b1 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xd0a02396 hvcs_free_connection +EXPORT_SYMBOL vmlinux 0xd0a0f4c8 fb_find_mode +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0b49016 mddev_congested +EXPORT_SYMBOL vmlinux 0xd0c588bf gen10g_config_advert +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0d59cd1 simple_empty +EXPORT_SYMBOL vmlinux 0xd0e5cb3b inode_init_owner +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd10c3452 idr_init +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd11e24ac ndo_dflt_bridge_getlink +EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf +EXPORT_SYMBOL vmlinux 0xd126aeb8 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xd1331d28 vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0xd13bc8ca mfd_add_devices +EXPORT_SYMBOL vmlinux 0xd15d0851 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0xd1693cd6 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xd16efb33 netdev_notify_peers +EXPORT_SYMBOL vmlinux 0xd1816f32 frontswap_writethrough +EXPORT_SYMBOL vmlinux 0xd1c55748 bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0xd1e1ba24 xfrm_init_state +EXPORT_SYMBOL vmlinux 0xd1fe8ebb _lv1_get_spe_interrupt_status +EXPORT_SYMBOL vmlinux 0xd21b4e8e blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0xd220cf8a jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0xd24a8a08 sock_no_accept +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2544bd6 skb_unlink +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd275c033 security_path_chmod +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd293297d nobh_writepage +EXPORT_SYMBOL vmlinux 0xd2956cbb inet_frags_init +EXPORT_SYMBOL vmlinux 0xd2b09ce5 __kmalloc +EXPORT_SYMBOL vmlinux 0xd2b7f771 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xd2cd5568 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xd2d52245 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2de060f nonseekable_open +EXPORT_SYMBOL vmlinux 0xd2eefd64 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xd2ef2638 smu_cmdbuf_abs +EXPORT_SYMBOL vmlinux 0xd30d3e12 blk_mq_free_queue +EXPORT_SYMBOL vmlinux 0xd31804a7 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd32087f2 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0xd3388bdf i2c_bit_algo +EXPORT_SYMBOL vmlinux 0xd36257ba memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0xd377687d loop_backing_file +EXPORT_SYMBOL vmlinux 0xd393ba6e input_close_device +EXPORT_SYMBOL vmlinux 0xd39c2af2 sget +EXPORT_SYMBOL vmlinux 0xd39c98f8 set_binfmt +EXPORT_SYMBOL vmlinux 0xd3a682e8 security_path_link +EXPORT_SYMBOL vmlinux 0xd3ac1b52 kthread_bind +EXPORT_SYMBOL vmlinux 0xd3ae6aba pci_disable_ltr +EXPORT_SYMBOL vmlinux 0xd3c99db1 input_event +EXPORT_SYMBOL vmlinux 0xd3cb4db3 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xd3d9ff21 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xd409383c pmu_request +EXPORT_SYMBOL vmlinux 0xd411d7f5 kmalloc_dma_caches +EXPORT_SYMBOL vmlinux 0xd412b803 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xd4233d2b generic_show_options +EXPORT_SYMBOL vmlinux 0xd437f60a writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xd455dbd3 mount_bdev +EXPORT_SYMBOL vmlinux 0xd470fd4a inet_add_offload +EXPORT_SYMBOL vmlinux 0xd4830523 blk_end_request_all +EXPORT_SYMBOL vmlinux 0xd48fdeef dql_completed +EXPORT_SYMBOL vmlinux 0xd4b4a9f7 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0xd4c2dd0f d_set_d_op +EXPORT_SYMBOL vmlinux 0xd5191a3f sock_release +EXPORT_SYMBOL vmlinux 0xd5246669 dev_set_group +EXPORT_SYMBOL vmlinux 0xd52ebbc4 write_one_page +EXPORT_SYMBOL vmlinux 0xd559ba95 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xd59ed0b2 PDE_DATA +EXPORT_SYMBOL vmlinux 0xd5a05c0f agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0xd5a439b7 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xd5b7a3e0 phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0xd5daa153 fsync_bdev +EXPORT_SYMBOL vmlinux 0xd5e1d719 _lv1_set_ppe_periodic_tracer_frequency +EXPORT_SYMBOL vmlinux 0xd5ee45c8 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd617b998 twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0xd629d9b5 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xd648e564 fb_match_mode +EXPORT_SYMBOL vmlinux 0xd655db63 udp_disconnect +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd6afbc48 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xd6c3756e netif_carrier_on +EXPORT_SYMBOL vmlinux 0xd6cb7e7b names_cachep +EXPORT_SYMBOL vmlinux 0xd6d63e9d lg_local_lock_cpu +EXPORT_SYMBOL vmlinux 0xd6d6a461 tcp_close +EXPORT_SYMBOL vmlinux 0xd6edf811 _lv1_release_memory +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6fd4053 __arch_hweight32 +EXPORT_SYMBOL vmlinux 0xd704b30d devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0xd71645a3 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xd7171885 kobject_get +EXPORT_SYMBOL vmlinux 0xd71fe469 sock_wfree +EXPORT_SYMBOL vmlinux 0xd72579bb pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xd72e1cfc _lv1_set_lpm_spr_trigger +EXPORT_SYMBOL vmlinux 0xd740c978 mmc_can_reset +EXPORT_SYMBOL vmlinux 0xd74abb90 arp_send +EXPORT_SYMBOL vmlinux 0xd7504b47 tcp_gso_segment +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd761a383 ioremap_prot +EXPORT_SYMBOL vmlinux 0xd76302a2 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xd76814e5 vio_register_device_node +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd77ccfcf tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xd780c389 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xd786c0ea plpar_hcall9 +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7ba47d6 of_dev_put +EXPORT_SYMBOL vmlinux 0xd7cbddda memcpy_toiovec +EXPORT_SYMBOL vmlinux 0xd7d44b6f cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xd7e13f39 dquot_quota_on +EXPORT_SYMBOL vmlinux 0xd7e23acc brioctl_set +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd8145213 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xd8403bc2 fd_install +EXPORT_SYMBOL vmlinux 0xd8508d68 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xd874c299 register_filesystem +EXPORT_SYMBOL vmlinux 0xd88ce47d scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8b0564e sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xd8c72cf0 ifla_policy +EXPORT_SYMBOL vmlinux 0xd8ded085 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8f0c82d blk_sync_queue +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd92bf9d7 phy_driver_register +EXPORT_SYMBOL vmlinux 0xd92e16ba csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0xd92ff293 generic_read_dir +EXPORT_SYMBOL vmlinux 0xd941320c dev_mc_add +EXPORT_SYMBOL vmlinux 0xd947486a scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xd95dddea audit_log +EXPORT_SYMBOL vmlinux 0xd97ec8cd led_set_brightness +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd98f4102 kernel_getpeername +EXPORT_SYMBOL vmlinux 0xd994fbff pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xd9a9bb30 getname +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9d4d09d _lv1_release_io_segment +EXPORT_SYMBOL vmlinux 0xd9f5cb51 ip6_route_output +EXPORT_SYMBOL vmlinux 0xda016662 set_blocksize +EXPORT_SYMBOL vmlinux 0xda0c7aee uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xda0cae64 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xda0f5234 rtas_offline_cpus_mask +EXPORT_SYMBOL vmlinux 0xda2478d0 param_ops_short +EXPORT_SYMBOL vmlinux 0xda25272b cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xda26517b twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda3fb18e mach_powermac +EXPORT_SYMBOL vmlinux 0xda44b715 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0xda5dd097 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xda5e7cb3 agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0xda622512 vlan_vid_del +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda7ec8f5 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xdaa44776 nf_afinfo +EXPORT_SYMBOL vmlinux 0xdab3c75b of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0xdabc1ea8 fsl_lbc_find +EXPORT_SYMBOL vmlinux 0xdacd39f0 bdevname +EXPORT_SYMBOL vmlinux 0xdaddbacf sock_edemux +EXPORT_SYMBOL vmlinux 0xdae217ed wait_on_page_bit +EXPORT_SYMBOL vmlinux 0xdae39cda __invalidate_device +EXPORT_SYMBOL vmlinux 0xdaea6e0d mfd_clone_cell +EXPORT_SYMBOL vmlinux 0xdb01198e fsl_upm_find +EXPORT_SYMBOL vmlinux 0xdb0f8c9a fail_migrate_page +EXPORT_SYMBOL vmlinux 0xdb51b8a5 genphy_suspend +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb710a2f ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb82de74 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0xdb8c7a30 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0xdbab885c qdisc_watchdog_schedule_ns +EXPORT_SYMBOL vmlinux 0xdbb0ab1b dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xdbb24fc2 down_write +EXPORT_SYMBOL vmlinux 0xdbc692f8 pci_target_state +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbd77c13 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0xdbe3db8b uart_suspend_port +EXPORT_SYMBOL vmlinux 0xdbf2484c tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xdbf9d115 decrementer_clockevent +EXPORT_SYMBOL vmlinux 0xdbfe5ae7 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xdc01ea7a bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc060659 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xdc137949 simple_unlink +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc320fb5 __devm_request_region +EXPORT_SYMBOL vmlinux 0xdc3c41a8 __crypto_memneq +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc40e666 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xdc43daff __kfree_skb +EXPORT_SYMBOL vmlinux 0xdc517197 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xdc7fea4b bio_init +EXPORT_SYMBOL vmlinux 0xdc9498dd down +EXPORT_SYMBOL vmlinux 0xdca320dc __pci_enable_wake +EXPORT_SYMBOL vmlinux 0xdca58af6 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xdcb510e7 devfreq_add_governor +EXPORT_SYMBOL vmlinux 0xdcb764ad memset +EXPORT_SYMBOL vmlinux 0xdce0fd90 vfs_rename +EXPORT_SYMBOL vmlinux 0xdce5a2a6 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xdcefb9a5 pmu_resume +EXPORT_SYMBOL vmlinux 0xdd0ac66d fb_validate_mode +EXPORT_SYMBOL vmlinux 0xdd680760 dev_printk_emit +EXPORT_SYMBOL vmlinux 0xdd707d2c abort_creds +EXPORT_SYMBOL vmlinux 0xdd90a914 scsi_scan_host +EXPORT_SYMBOL vmlinux 0xdd955144 __debugger +EXPORT_SYMBOL vmlinux 0xdd98894b __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xdde21c60 scsi_device_put +EXPORT_SYMBOL vmlinux 0xddeb84ce input_unregister_handler +EXPORT_SYMBOL vmlinux 0xde00c844 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xde10eb10 param_set_invbool +EXPORT_SYMBOL vmlinux 0xde28f0d8 do_splice_to +EXPORT_SYMBOL vmlinux 0xde48e9ca _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xde6151db tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xde6c5ed8 scm_detach_fds +EXPORT_SYMBOL vmlinux 0xde783883 pSeries_disable_reloc_on_exc +EXPORT_SYMBOL vmlinux 0xde83c8ce skb_tx_error +EXPORT_SYMBOL vmlinux 0xde91448c load_vr_state +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdeafe531 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xded93e26 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xdeead8a7 __sb_start_write +EXPORT_SYMBOL vmlinux 0xdf01fd63 skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf41a956 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf60fc83 _lv1_net_start_tx_dma +EXPORT_SYMBOL vmlinux 0xdf6a4dfe d_splice_alias +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf9a95ea sk_capable +EXPORT_SYMBOL vmlinux 0xdfa1a074 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xdfa25345 sync_blockdev +EXPORT_SYMBOL vmlinux 0xdfb55c94 pci_get_subsys +EXPORT_SYMBOL vmlinux 0xdfd935ae alloc_file +EXPORT_SYMBOL vmlinux 0xdfeedd88 udp_poll +EXPORT_SYMBOL vmlinux 0xe0157ad7 commit_creds +EXPORT_SYMBOL vmlinux 0xe015ccb6 blk_init_queue +EXPORT_SYMBOL vmlinux 0xe03f0bd8 generic_fillattr +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe055d3d9 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe062562b single_open +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe08289ab from_kgid_munged +EXPORT_SYMBOL vmlinux 0xe08f7384 generic_file_remap_pages +EXPORT_SYMBOL vmlinux 0xe0954a2b compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xe0a05524 irq_stat +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b3585c __mutex_init +EXPORT_SYMBOL vmlinux 0xe0b53819 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xe0b90674 mpage_writepage +EXPORT_SYMBOL vmlinux 0xe0c79374 compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0xe0ef10c7 ida_simple_remove +EXPORT_SYMBOL vmlinux 0xe0f1d326 dst_alloc +EXPORT_SYMBOL vmlinux 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL vmlinux 0xe1133513 md_finish_reshape +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe11fabcc tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xe136f9d9 phy_init_eee +EXPORT_SYMBOL vmlinux 0xe1583869 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xe175664e freeze_bdev +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1807c3e read_code +EXPORT_SYMBOL vmlinux 0xe1ac4575 cont_write_begin +EXPORT_SYMBOL vmlinux 0xe1b3cd50 phy_detach +EXPORT_SYMBOL vmlinux 0xe1c2293f dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0xe1c408b9 serio_interrupt +EXPORT_SYMBOL vmlinux 0xe1c724af blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xe1dc3d93 bdi_destroy +EXPORT_SYMBOL vmlinux 0xe1e78471 __scm_destroy +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe20c63e7 _lv1_unmap_device_mmio_region +EXPORT_SYMBOL vmlinux 0xe21b384c register_md_personality +EXPORT_SYMBOL vmlinux 0xe220ceb8 __debugger_sstep +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe234be24 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe23e5a26 __alloc_skb +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe250937f inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0xe256a870 mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0xe26e3143 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xe26e63c0 ps2_init +EXPORT_SYMBOL vmlinux 0xe28a32c8 from_kgid +EXPORT_SYMBOL vmlinux 0xe29a6480 devm_request_and_ioremap +EXPORT_SYMBOL vmlinux 0xe29e1d0e out_of_line_wait_on_atomic_t +EXPORT_SYMBOL vmlinux 0xe2b173b6 unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0xe2b97059 security_path_symlink +EXPORT_SYMBOL vmlinux 0xe2be5498 lg_global_unlock +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2f0ac58 vfs_unlink +EXPORT_SYMBOL vmlinux 0xe30ff86c jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xe31b8d9d backlight_device_register +EXPORT_SYMBOL vmlinux 0xe31d4f5c phy_start_aneg +EXPORT_SYMBOL vmlinux 0xe329a2d1 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xe32e8e3d agp_free_memory +EXPORT_SYMBOL vmlinux 0xe347c08d security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xe358298c netif_rx_ni +EXPORT_SYMBOL vmlinux 0xe35c5285 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xe37b8cae __free_pages +EXPORT_SYMBOL vmlinux 0xe39af811 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xe3a53f4c sort +EXPORT_SYMBOL vmlinux 0xe3b4e101 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3d9676e mmc_release_host +EXPORT_SYMBOL vmlinux 0xe3f185bb ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xe41dff44 jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0xe42ba0a3 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xe45d84fd tcp_init_sock +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe48c727f compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xe4a895fa up_write +EXPORT_SYMBOL vmlinux 0xe4a95774 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xe4ab00bb of_node_get +EXPORT_SYMBOL vmlinux 0xe4ab1ed8 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xe4adfce9 __cleancache_invalidate_inode +EXPORT_SYMBOL vmlinux 0xe4c64f11 cdev_del +EXPORT_SYMBOL vmlinux 0xe4e532a6 kern_path +EXPORT_SYMBOL vmlinux 0xe4e6b5b4 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xe4e9d411 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL vmlinux 0xe4fe8ca1 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xe50019b0 bioset_free +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe5134f7f simple_readpage +EXPORT_SYMBOL vmlinux 0xe516e541 qdisc_reset +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe53d1faa of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xe540beab netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0xe54d8067 request_key +EXPORT_SYMBOL vmlinux 0xe55762e5 key_payload_reserve +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5804cc2 fb_set_suspend +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5902c05 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xe5a858e8 __register_chrdev +EXPORT_SYMBOL vmlinux 0xe5a9b6f8 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5d28c8b scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5f6f638 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xe60988ac _lv1_query_logical_partition_address_region_info +EXPORT_SYMBOL vmlinux 0xe62715ed bio_integrity_free +EXPORT_SYMBOL vmlinux 0xe65b2476 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xe67f7ef7 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xe6934386 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe69a9df4 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0xe6a61e01 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL vmlinux 0xe6bc9e4a kset_register +EXPORT_SYMBOL vmlinux 0xe6f8b887 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe712360f giveup_vsx +EXPORT_SYMBOL vmlinux 0xe723f637 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xe733287e dquot_resume +EXPORT_SYMBOL vmlinux 0xe74aa406 _lv1_set_dabr +EXPORT_SYMBOL vmlinux 0xe78485eb skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xe7876902 module_layout +EXPORT_SYMBOL vmlinux 0xe7a4bc4c __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7abe7b2 kill_fasync +EXPORT_SYMBOL vmlinux 0xe7c84014 lockref_mark_dead +EXPORT_SYMBOL vmlinux 0xe7cd99b7 smu_queue_simple +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7d7414d security_dentry_init_security +EXPORT_SYMBOL vmlinux 0xe7e253a4 __bforget +EXPORT_SYMBOL vmlinux 0xe7f3ce61 skb_split +EXPORT_SYMBOL vmlinux 0xe812e3f7 would_dump +EXPORT_SYMBOL vmlinux 0xe8212614 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0xe826ac53 bdgrab +EXPORT_SYMBOL vmlinux 0xe82cc752 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0xe82e43fe find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xe833fa77 gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0xe895deec xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8bea3bc qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xe8bf0300 pcim_iounmap +EXPORT_SYMBOL vmlinux 0xe8c438f3 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xe8d44fda ip_setsockopt +EXPORT_SYMBOL vmlinux 0xe8dadd73 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xe8e9680e dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0xe90839b1 udplite_prot +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe9505110 mnt_unpin +EXPORT_SYMBOL vmlinux 0xe952c538 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe95e31e8 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xe96f8c29 pcibus_to_node +EXPORT_SYMBOL vmlinux 0xe978d091 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xe988c37c sync_inode +EXPORT_SYMBOL vmlinux 0xe9abd189 con_is_bound +EXPORT_SYMBOL vmlinux 0xe9d08b3c dev_addr_flush +EXPORT_SYMBOL vmlinux 0xe9d96b15 pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0xe9e5109c inet6_bind +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea16dd4c tcp_destroy_cgroup +EXPORT_SYMBOL vmlinux 0xea285151 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0xea5694c9 __blk_run_queue +EXPORT_SYMBOL vmlinux 0xea56e7bb generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xea6e3003 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xea968c96 ___ratelimit +EXPORT_SYMBOL vmlinux 0xea9bcd40 poll_initwait +EXPORT_SYMBOL vmlinux 0xeab975af agp_find_bridge +EXPORT_SYMBOL vmlinux 0xeac7fb50 tcp_sendpage +EXPORT_SYMBOL vmlinux 0xeacdc805 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xead25a95 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xeae55a85 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb44339a free_pages_exact +EXPORT_SYMBOL vmlinux 0xeb4e2fc8 make_kuid +EXPORT_SYMBOL vmlinux 0xeb53cd80 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xeb56ae0b clocksource_register +EXPORT_SYMBOL vmlinux 0xeb6781c5 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xeb738e70 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xeb8b0385 pci_enable_msi_range +EXPORT_SYMBOL vmlinux 0xeba2a1f7 rtas_indicator_present +EXPORT_SYMBOL vmlinux 0xebac58cc qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xebbfbc0f dev_uc_sync +EXPORT_SYMBOL vmlinux 0xebcab3a6 ppc_pci_io +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebf62423 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0xebf7c32f ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xebf7e1a1 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0xec016848 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xec17ebb0 of_match_node +EXPORT_SYMBOL vmlinux 0xec30765a _lv1_allocate_io_segment +EXPORT_SYMBOL vmlinux 0xec30dff5 blk_mq_run_queues +EXPORT_SYMBOL vmlinux 0xec516d1e sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xec631e03 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xec7f33d6 security_path_rmdir +EXPORT_SYMBOL vmlinux 0xeca74d89 pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0xecbb926f xor_altivec_3 +EXPORT_SYMBOL vmlinux 0xecbc8780 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xecc59376 dma_direct_ops +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xecf49b96 max8925_set_bits +EXPORT_SYMBOL vmlinux 0xed0b0fc5 __scsi_add_device +EXPORT_SYMBOL vmlinux 0xed2fc052 simple_open +EXPORT_SYMBOL vmlinux 0xed3d268e register_shrinker +EXPORT_SYMBOL vmlinux 0xed597524 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xed652427 _lv1_set_interrupt_mask +EXPORT_SYMBOL vmlinux 0xed7f4273 vfs_read +EXPORT_SYMBOL vmlinux 0xed896ff6 gen10g_suspend +EXPORT_SYMBOL vmlinux 0xed9f9a20 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xedae710c pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc410d0 udplite_table +EXPORT_SYMBOL vmlinux 0xedcbb152 dev_warn +EXPORT_SYMBOL vmlinux 0xeddfb9b6 uart_update_timeout +EXPORT_SYMBOL vmlinux 0xedf0b48c _lv1_storage_get_async_status +EXPORT_SYMBOL vmlinux 0xee202458 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xee246dff ida_destroy +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee57b268 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xee5bb20b _lv1_panic +EXPORT_SYMBOL vmlinux 0xee6f9410 start_tty +EXPORT_SYMBOL vmlinux 0xee8a8fef napi_get_frags +EXPORT_SYMBOL vmlinux 0xee9174c5 _lv1_storage_read +EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeac2512 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xeeb5bd3b __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xeeec26a7 queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xeeed2465 scsi_remove_host +EXPORT_SYMBOL vmlinux 0xeef161aa groups_free +EXPORT_SYMBOL vmlinux 0xef006603 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xef08a0ca ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xef109449 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xef2167bc seq_pad +EXPORT_SYMBOL vmlinux 0xef38bc6c skb_free_datagram +EXPORT_SYMBOL vmlinux 0xef629f31 tty_kref_put +EXPORT_SYMBOL vmlinux 0xef879417 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xef96656d blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xef96f282 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xefb4ead5 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xefc2c6c9 key_validate +EXPORT_SYMBOL vmlinux 0xefc2e54d _lv1_storage_send_device_command +EXPORT_SYMBOL vmlinux 0xefcf8e09 __scsi_put_command +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xeff02018 napi_gro_receive +EXPORT_SYMBOL vmlinux 0xeff8eb8f __inet_stream_connect +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf005dc75 file_remove_suid +EXPORT_SYMBOL vmlinux 0xf0187927 __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0xf0293cb4 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xf0306f2a xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xf05ffa15 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xf0619801 timekeeping_clocktai +EXPORT_SYMBOL vmlinux 0xf0641a92 arp_invalidate +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf067257c register_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0xf0677382 km_new_mapping +EXPORT_SYMBOL vmlinux 0xf06ac422 input_open_device +EXPORT_SYMBOL vmlinux 0xf06e440b tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0xf087137d __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0xf09de776 get_random_int +EXPORT_SYMBOL vmlinux 0xf0ade13c xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xf0bc58dc __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xf0ca7dfb netlink_unicast +EXPORT_SYMBOL vmlinux 0xf0d2f84a _lv1_gpu_context_free +EXPORT_SYMBOL vmlinux 0xf0e06216 pci_release_regions +EXPORT_SYMBOL vmlinux 0xf0eac129 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fd4e8f rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf1063244 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xf10ca3e7 lockref_get_or_lock +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11cd6ce down_interruptible +EXPORT_SYMBOL vmlinux 0xf13feb57 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0xf147dcb2 hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0xf15310d6 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xf1558e8b ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0xf183189b __ioremap_at +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1a9e314 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1dbde52 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0xf1e06df1 gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0xf1e73bed neigh_parms_release +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f1941e bio_integrity_split +EXPORT_SYMBOL vmlinux 0xf1f342c5 account_page_redirty +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf2059b54 vio_find_node +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf222defb __ip_select_ident +EXPORT_SYMBOL vmlinux 0xf22881e8 lg_local_lock +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf24dcaa8 _lv1_net_stop_rx_dma +EXPORT_SYMBOL vmlinux 0xf251ad8f km_state_expired +EXPORT_SYMBOL vmlinux 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL vmlinux 0xf25d9e1a blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xf25e0c0a __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0xf2689472 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xf2997cf6 elv_add_request +EXPORT_SYMBOL vmlinux 0xf2a0af8f backlight_device_registered +EXPORT_SYMBOL vmlinux 0xf2b1ac8e __getnstimeofday +EXPORT_SYMBOL vmlinux 0xf2d75d2f send_sig +EXPORT_SYMBOL vmlinux 0xf2dcb49b __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0xf30d1036 _lv1_start_ppe_periodic_tracer +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3170080 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xf317d020 bioset_create +EXPORT_SYMBOL vmlinux 0xf322a206 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf357db8d pasemi_dma_set_flag +EXPORT_SYMBOL vmlinux 0xf3891715 vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf394159c alloc_anon_inode +EXPORT_SYMBOL vmlinux 0xf39fac6a alloc_fddidev +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf4310c75 __put_cred +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf443da70 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xf46c58ba __napi_schedule +EXPORT_SYMBOL vmlinux 0xf4704776 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xf488f918 eth_change_mtu +EXPORT_SYMBOL vmlinux 0xf4a2143d netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xf4bdbeb9 __frontswap_invalidate_area +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf506c4e7 blk_mq_map_queue +EXPORT_SYMBOL vmlinux 0xf51bf88b nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xf5222143 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf53df0a5 gen_pool_free +EXPORT_SYMBOL vmlinux 0xf55b3b3d __arch_hweight16 +EXPORT_SYMBOL vmlinux 0xf58f37b8 ip_check_defrag +EXPORT_SYMBOL vmlinux 0xf5a085c4 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5a6c509 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xf5d50960 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5efece7 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xf61ca05e udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xf6213e12 pasemi_dma_clear_flag +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf646ee17 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0xf65ef1e2 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xf6715fbe seq_path +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf68687be __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0xf6af0aad cfb_imageblit +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6dc3670 sock_from_file +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6ecb763 _lv1_send_event_locally +EXPORT_SYMBOL vmlinux 0xf6f616dc inode_dio_wait +EXPORT_SYMBOL vmlinux 0xf70d3e3d sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xf7289d14 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0xf73d76bf scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xf74840d2 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf767bc25 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xf76afc39 pci_set_ltr +EXPORT_SYMBOL vmlinux 0xf7adcaf3 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xf7bac0ec _lv1_set_lpm_counter +EXPORT_SYMBOL vmlinux 0xf7c8489d request_firmware +EXPORT_SYMBOL vmlinux 0xf7ce9c06 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0xf7e337ab devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0xf8004bfd _lv1_disconnect_interrupt_event_receive_port +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf8094447 inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0xf80de9ff hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf812cff6 memscan +EXPORT_SYMBOL vmlinux 0xf827cb83 free_reserved_area +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf832dfcd __pskb_copy +EXPORT_SYMBOL vmlinux 0xf8460a00 __bio_clone +EXPORT_SYMBOL vmlinux 0xf8534696 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xf87a023a init_task +EXPORT_SYMBOL vmlinux 0xf87cfa55 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xf87dd19e inet_put_port +EXPORT_SYMBOL vmlinux 0xf8926e18 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xf89c8e07 ida_pre_get +EXPORT_SYMBOL vmlinux 0xf89fba73 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xf8b462eb __lock_page +EXPORT_SYMBOL vmlinux 0xf8b67f1b scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xf8b9b3b8 nla_put +EXPORT_SYMBOL vmlinux 0xf8bc8f5a pci_disable_ido +EXPORT_SYMBOL vmlinux 0xf8d9d9f9 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0xf8e1efe8 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xf92163e8 d_alloc +EXPORT_SYMBOL vmlinux 0xf9270727 fsnotify_get_group +EXPORT_SYMBOL vmlinux 0xf94937a6 __page_cache_alloc +EXPORT_SYMBOL vmlinux 0xf94acd19 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xf952372f md_integrity_register +EXPORT_SYMBOL vmlinux 0xf953ad5f security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xf969069e inet6_protos +EXPORT_SYMBOL vmlinux 0xf972ed2c pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0xf9882ce2 simple_transaction_release +EXPORT_SYMBOL vmlinux 0xf98b1e8b padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9a6a982 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xf9be1586 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xf9c0b663 strlcat +EXPORT_SYMBOL vmlinux 0xf9cb9d8f eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xf9cf0936 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xfa0fc218 register_cdrom +EXPORT_SYMBOL vmlinux 0xfa38bc0f pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xfa47463b devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa7f3156 wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0xfa9233e5 lro_receive_skb +EXPORT_SYMBOL vmlinux 0xfab62b41 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xfac7893b tty_unlock +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock +EXPORT_SYMBOL vmlinux 0xfae1be5f dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0xfae67b1f cap_mmap_addr +EXPORT_SYMBOL vmlinux 0xfaea6134 dqget +EXPORT_SYMBOL vmlinux 0xfaf4e563 tty_register_driver +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb08d055 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0xfb27f2fe ip6_frag_match +EXPORT_SYMBOL vmlinux 0xfb287983 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xfb2973d4 inet_release +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb91faae dma_async_device_register +EXPORT_SYMBOL vmlinux 0xfb94103e __clzdi2 +EXPORT_SYMBOL vmlinux 0xfb9e34bc crypto_sha512_update +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbb2b26c nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc1ffa27 ppp_unit_number +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3b160f mempool_create_node +EXPORT_SYMBOL vmlinux 0xfc3b51d3 inet_select_addr +EXPORT_SYMBOL vmlinux 0xfc57a2b1 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xfc5bbb11 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0xfc6c0e3c dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xfc6c2d90 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0xfc700313 skb_clone +EXPORT_SYMBOL vmlinux 0xfc953e37 dquot_scan_active +EXPORT_SYMBOL vmlinux 0xfca68358 kern_unmount +EXPORT_SYMBOL vmlinux 0xfca9eef5 __nla_put +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcadb76b wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL vmlinux 0xfcb926cd kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfce4d284 tcp_prequeue +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcee8ebc ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd127fcd mount_single +EXPORT_SYMBOL vmlinux 0xfd194886 posix_test_lock +EXPORT_SYMBOL vmlinux 0xfd2fede5 simple_dir_operations +EXPORT_SYMBOL vmlinux 0xfd382112 input_register_handler +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd62d790 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0xfd6b8cfe inet_ioctl +EXPORT_SYMBOL vmlinux 0xfd6bd698 netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0xfd8671d0 kill_litter_super +EXPORT_SYMBOL vmlinux 0xfd99623a ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xfda8f6bd nf_nat_decode_session_hook +EXPORT_SYMBOL vmlinux 0xfdb27334 vio_unregister_driver +EXPORT_SYMBOL vmlinux 0xfdb6cedc _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xfdb70866 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdbb37f5 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xfdbe0288 pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0xfdbfb8ea bh_submit_read +EXPORT_SYMBOL vmlinux 0xfdd48805 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xfdd7c172 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xfddf50c4 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xfdea2c3e kmem_cache_free +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfdf66ed2 tcf_em_register +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe07fc9e agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0xfe1cbfd9 eth_type_trans +EXPORT_SYMBOL vmlinux 0xfe1d114f ipmi_smi_add_proc_entry +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe3039d4 netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0xfe3857cd udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xfe4cb4b5 _lv1_storage_write +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe62e8a4 inet_listen +EXPORT_SYMBOL vmlinux 0xfe6fa4d6 inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfec35352 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xfed221d9 pasemi_dma_alloc_ring +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfedd2913 pci_get_device +EXPORT_SYMBOL vmlinux 0xfeebc7c4 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xfefeccaf agp_backend_acquire +EXPORT_SYMBOL vmlinux 0xff026b6b scsi_device_get +EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff37cf5e release_firmware +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff6d341f mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff7d3b26 sk_filter +EXPORT_SYMBOL vmlinux 0xff8caa77 irq_to_desc +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffa6c262 bio_copy_data +EXPORT_SYMBOL vmlinux 0xffacef82 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffe75600 kill_block_super +EXPORT_SYMBOL vmlinux 0xfffc6b88 blk_queue_resize_tags +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x09213226 kvmppc_core_pending_dec +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x0c436a93 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x0f685a21 kvmppc_gfn_to_pfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x12287604 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x1328f004 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x139aee51 kvm_get_dirty_log +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x169d72ec kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x17a5dc08 mark_page_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x255c0460 kvm_unmap_hva +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x29279ff0 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x294416dc kvm_clear_guest +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x2dd397cf kvmppc_sanity_check +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x2e807e97 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x33cfbe85 kvmppc_st +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x380cda49 kvmppc_core_prepare_to_enter +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x39223ea4 kvmppc_emulate_instruction +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x39305621 kvmppc_hv_ops +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x43b466b0 gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x4573fe4a kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x514de8c7 kvmppc_rtas_hcall +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x551651dc gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x59155cb9 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x5c6ba906 kvm_vcpu_block +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x6468d247 gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x667e5658 kvm_vcpu_kick +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x6c52d068 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x6c9656db gfn_to_memslot +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x7137c541 kvmppc_emulate_mmio +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x7322be47 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x764e31af kvmppc_handle_load +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x8916a2d9 kvm_read_guest_cached +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x937e81d1 kvmppc_kvm_pv +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x9555f2c9 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x96094ac1 kvm_flush_remote_tlbs +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x97c5bb5d kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xa100aef6 gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xa8f3cf7e kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xa9aef2e1 gfn_to_hva_memslot +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xaaa84d99 kvmppc_handle_store +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xab58cfdf kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xab59d373 kvmppc_free_lpid +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xac5b920c kvm_read_guest +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xb53f316f kvmppc_book3s_queue_irqprio +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xb698d076 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xb6a08817 kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xc24d710a gfn_to_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xc27fe623 kvmppc_core_queue_program +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xc6a42537 kvmppc_xics_hcall +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xc70e4b59 kvmppc_claim_lpid +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xc86c08d2 kvmppc_core_dequeue_dec +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xca776ee3 kvmppc_prepare_to_enter +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xcc44961f kvmppc_alloc_lpid +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xcd20fa97 kvm_resched +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd6df0472 kvmppc_ld +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd789ba3a kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd96de12e kvmppc_set_msr +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xebbfa4b3 kvm_init +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xf2b107fe gfn_to_hva +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xf36a6ba3 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xf4da3546 kvmppc_init_lpid +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xf55dd2f9 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xf690c69e kvmppc_pr_ops +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xfa05a233 kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xfb3a64a9 kvmppc_core_queue_dec +EXPORT_SYMBOL_GPL arch/powerpc/platforms/cell/spufs/spufs 0x01421ad9 spu_restore +EXPORT_SYMBOL_GPL arch/powerpc/platforms/cell/spufs/spufs 0x24dab232 spufs_context_fops +EXPORT_SYMBOL_GPL arch/powerpc/platforms/cell/spufs/spufs 0x68de0ed7 spu_save +EXPORT_SYMBOL_GPL crypto/af_alg 0x014a6af1 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x289197b2 af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0x46592092 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0x58716898 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x5e6883a9 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xcc07857c af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xcd77db8b af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xef05f6af af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0xfd734197 af_alg_accept +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x5b8c9609 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xa4fa4b5d async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xe65c620a async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x1546a85c async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x53402b9e async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x1b34fb9c __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x6e6d207a async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xb35a96c0 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xe1201e6a async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x9b0d0613 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xd356ff84 async_xor_val +EXPORT_SYMBOL_GPL crypto/authenc 0x587ef278 crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x79bad4c7 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x1ead37c5 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x27278ca9 __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x4a2a3ca6 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1291971c __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1e2c961f __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x78702305 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x8f04034a __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast_common 0x08aa6fb7 cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x0c5fbf8a cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xe39dd4b4 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0xee83a4f3 cast_s4 +EXPORT_SYMBOL_GPL crypto/cryptd 0x1fc07d6f cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x702516ca cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x7788438c cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x7ba84d52 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x7fd23a09 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x861dd7e2 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xa2d5eb0d cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xc26dcc12 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xd92c36f5 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xfa692045 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/lrw 0x3864eb66 lrw_free_table +EXPORT_SYMBOL_GPL crypto/lrw 0xcd074900 lrw_init_table +EXPORT_SYMBOL_GPL crypto/lrw 0xf9f1ebdd lrw_crypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x5ddb33e9 __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x77b39cb4 __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x8a1a99ad __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xd18895df serpent_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x03b19c1d twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x6c3229bb __twofish_setkey +EXPORT_SYMBOL_GPL crypto/xts 0x41067a8d xts_crypt +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x145d2924 ahci_platform_suspend_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x48096382 ahci_platform_disable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x53ffd3c9 ahci_platform_init_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x594756da ahci_platform_resume +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x6269fdf8 ahci_platform_get_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x6810fbc2 ahci_platform_enable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x6f18b459 ahci_platform_ops +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x795c98c8 ahci_platform_disable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xbe27b3d1 ahci_platform_suspend +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xd2947eb5 ahci_platform_enable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xdbc40734 ahci_platform_resume_host +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x08f57985 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x13438a76 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2637e166 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2cbf39ac ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x35013893 ahci_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3da77c49 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3eb14e5e ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x538b8633 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x619f2ff1 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x694f923e ahci_thread_fn +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6e05c4e7 ahci_hw_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7f2762db ahci_start_fis_rx +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7f9b053d ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x810b21e3 ahci_qc_issue +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8ba854ac ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9a90deb5 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xae6739ed ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb1fc1191 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc43b32e5 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcaea8ebc ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcbe64357 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcf0c4a87 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe23d9410 ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xee16eb99 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xef18495d ahci_restart_engine +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x2941535c __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x508c1cf7 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x0409ea64 bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x050d1009 bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x0c4e730f bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x15cce1b3 bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x17a0ccfe bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x250ce43e bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x3ed854f6 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5a2a2fd1 bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5f67dbf9 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6371a62b __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x68d192bf bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7a9f428d bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7ca4a74a bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9b35a5ff bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa9de041d bcma_core_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc4100a86 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc6c5b700 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc802a46a bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xcbd3b6ce bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe030ac2f bcma_core_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe05a89f9 bcma_find_core +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe9511b9d bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf31e1f73 bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x07da679e btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0a01dafa btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0a83e454 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0c90b6bc btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x20f31813 btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2b5e3d8f btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3daf192a btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x64a52f28 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xbd3db505 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe87b0ec7 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/crypto/nx/nx-compress 0x1d2d1f5d nx842_compress +EXPORT_SYMBOL_GPL drivers/crypto/nx/nx-compress 0x4df68ceb nx842_get_workmem_size_aligned +EXPORT_SYMBOL_GPL drivers/crypto/nx/nx-compress 0x56a12651 nx842_decompress +EXPORT_SYMBOL_GPL drivers/crypto/nx/nx-compress 0xca181ed8 nx842_get_workmem_size +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x570c5658 dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x6b2ef70c dw_dma_suspend +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xb793cdee dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xc13b61c4 dw_dma_shutdown +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xfdbd9d56 dw_dma_resume +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x07bdc831 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0a6a08dc edac_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x338c4f6e edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x411d7148 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x518a6c68 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5b18f611 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5b6ef921 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5c17ab68 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e799db9 edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x72f77304 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x97575b11 edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9d9fc4e0 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa0dc164d edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xae2a7797 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xaeb001a5 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc7e8918c edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc87c2f99 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe60bb736 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf02ec970 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf63ee9d3 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf736122c edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf7f1e021 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xff4e89e0 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xf4ade51f fw_card_release +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x2487a1f8 bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0xbd423982 bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x83a44348 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xab561996 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xc9e3071f drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd1684ec0 drm_vm_open_locked +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xdf288eb2 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x5344d2fa ttm_dma_unpopulate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x6adf436b ttm_prime_fd_to_handle +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x7a3ba41b ttm_dma_populate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x7e6da2d8 ttm_dma_page_alloc_debugfs +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xce36343e ttm_prime_handle_to_fd +EXPORT_SYMBOL_GPL drivers/hid/hid 0x01528e9f hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0aba48aa hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0fe68f69 hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2d8281aa hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2e783bab hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2fbb9032 hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0x313185ae hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x429da8c8 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x44970747 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4701c0a5 hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4906a967 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4921840d hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4db6e5b1 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x503bea41 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x57015bed hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x712e28ab hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x72ff1e95 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7cfdea0c hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8a5303c1 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9cd2f9c9 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa3c01793 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa52c41f7 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa74f92a3 hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa8e321d1 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaaf6c9a3 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb52c9a94 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb7a52c87 hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb9d8a742 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbba2bd3b hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbcf4f369 hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc5c17461 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcccda910 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdd1c29eb hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdd89b8ee hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf05d8fd4 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xbfba3619 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x07857fb5 roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x1832f243 roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x247eb18e roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x85956011 roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xa1cb236b roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xcff2902d roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x54675fd5 sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x577a4d53 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x5ec190e2 sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x6cf36238 sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x81824b3d sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xb348a213 sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xd327432b sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xd3f0a757 sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x84d14c26 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x03294843 hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x05912c69 hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x1aa3c92c hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x840e48d5 hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x8c2158c4 hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x954cb82f hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xa688b13e hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xbcdc515b hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xd93374a5 hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xe2ad101b hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xe392ef1d hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xe4d73728 hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xfb992ed1 hsi_async +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x1fdee717 adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x8acfb11a adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x9a80f80b adt7x10_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x3e231464 pmbus_read_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x403abd70 pmbus_write_byte +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x485b14aa pmbus_read_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x4c85513c pmbus_clear_faults +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x5dc50057 pmbus_check_byte_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xa410620c pmbus_write_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xac5927eb pmbus_do_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xc07a3e22 pmbus_do_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xcd9d2408 pmbus_clear_cache +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xdbb72d07 pmbus_set_page +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xf383b496 pmbus_check_word_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xfeea3b60 pmbus_get_driver_info +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x0077e395 i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x348dcc22 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x88506815 i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xa0d8898e i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xaeb680fa i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xcd6efef3 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xcf03dd97 i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xee7cdd90 i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xf5182242 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x9024d769 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xeefcc4b5 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x79e88f3d i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x909ca56c i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x0c4cae32 ad_sd_read_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x21982469 ad_sd_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x4053ac05 ad_sd_validate_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x5d8e0e37 ad_sd_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x6d63255c ad_sd_calibrate_all +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x83ff8510 ad_sd_init +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x9caf30c2 ad_sd_write_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xa6ef1380 ad_sigma_delta_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xebca0226 ad_sd_set_comm +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x0768aa4e adis_update_scan_mode +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x24ed33c9 adis_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x34ac0fb7 adis_probe_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x4098f4ee adis_check_status +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x7401b2f4 adis_reset +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x75a24266 adis_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x790a8f0f adis_read_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x9a0d3063 adis_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xbb30739f adis_remove_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xec608a2c adis_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xef56f11e adis_initial_startup +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xf7a936e2 adis_write_reg +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0eef929b iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1790cd33 iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x18eb6564 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1fee2576 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2354e195 iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x267c0508 iio_channel_release_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x285f8841 iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x29485e98 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a1fab3c iio_channel_stop_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3767cce7 iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3807756d iio_update_demux +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3d90bcc2 iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4998ee84 devm_iio_trigger_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4b6cc9e2 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5640a1f1 iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5640d433 devm_iio_device_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x66d7c38e devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7a711aef iio_channel_start_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x90507d1d devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x907814e6 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x929e3658 iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9ea744c1 iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb2ffcbe1 iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc34b3f1f iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd35a46dc iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd3a38e08 iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd6196b0a iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xda5e53e2 iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xdb6f9a1b iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe19ccb47 iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe472f4b4 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf5162034 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf7168c03 iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xdea3f1ba input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0x48ff367f matrix_keypad_parse_of_params +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x63130a0a adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x63bb7a97 cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xdf7f3692 cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xdf8a6323 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xa7da7c6a cyttsp_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xb83178d5 cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xfe7061f0 cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x4b2ffcb6 cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0xf36e77d6 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x0229951e wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1125422a wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x189b016a wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6af8a5c4 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x72e94815 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x90afad30 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa1c00ca9 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xafb7b5b3 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc8f3e72e wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xce839580 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd33d88da wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf51fac76 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x1c0f95c7 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x55d09699 ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x5f7cd92f ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x68b8bc98 ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x96497349 ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xb01b0bfd ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xb881dc6c ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xd9f327d1 ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xedb9a09a ipack_bus_register +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x23359aff unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xce1414b2 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x124f6ca9 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1ee2fe0c gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3bcaf5d0 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x405a419c gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4927898e gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5f98bbb0 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5fb169bb gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x63ce9d3d gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x697594aa gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x72fe9a67 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7601be74 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8b0c261e gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x920432b0 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x97e68884 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa3151853 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc1aa09e9 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc6feef43 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf65c0261 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x0881b4c5 lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x2ad62163 lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x4a7d9bca lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x5284f1fd lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x5ac06a52 lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x70275087 lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x704fbccf lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x72519674 lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x8ff1ca52 lp55xx_unregister_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xbac360f0 lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xc9add6d4 lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x749e05f2 ledtrig_flash_ctrl +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x7903e46e ledtrig_torch_ctrl +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x0a0527be wf_register_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x1e4dc6d1 wf_get_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x6c97b1a6 wf_get_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x94765fac wf_critical_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa2f19a49 wf_is_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xaad473d8 wf_find_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xb8dd4b95 wf_register_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xbcace2a5 wf_unregister_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xbd81bb76 wf_register_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xdbf0ad94 wf_unregister_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xdfe76ba2 wf_put_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xe87baedd wf_find_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed82a14f wf_clear_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xf94bd68a wf_put_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xfc05bd57 wf_unregister_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0x9808f147 wf_pid_run +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0xb8ed5b2c wf_cpu_pid_init +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0xcd9a18ef wf_pid_init +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0xceda69f1 wf_cpu_pid_run +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_smu_sat 0xe05851d5 smu_sat_get_sdb_partition +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0ec17d44 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x26062738 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x40c27b88 __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4c49fc16 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x51a15737 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x616b6217 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6907ac0d __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7be42a1c __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7e532a71 __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8a4afa11 __tracepoint_bcache_alloc_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x914361f4 __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9272fb0f __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x938cc2b2 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa649dd21 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb157059f __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb317649e __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb493772a __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb834c124 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbb1fc0a4 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbc4fcb1e __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc1474d91 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc379085a __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc5aed8ad __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc7eda602 __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce055cbe __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe20fe821 __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe24daf87 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe2ed0930 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xea2303e0 __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xef1156ee __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfc131205 __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x02f285d0 dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2a551774 dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x3064ae6f dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x311d2d6e dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x53a2f006 dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6185c191 dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x8a1c178b dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb6d5c65d dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb70b342a dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xebd06eaf dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6aba7f5e dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x74dcd98c dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7c381a76 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9310ba06 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9c256008 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa1d2413a dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa448e19f dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xafbda3f3 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xcbb1bae2 dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe6024e59 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xebcc64a4 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xeca7949e dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xfeaabefd dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x0a2aa7ea dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x11ec720d dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x3eabfbc2 dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x56e7329d dm_cache_policy_get_name +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xbe7c1d58 dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xd127b688 dm_cache_policy_get_version +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xd2d8dfae dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x4e3e6c1a dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xf21d690c dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x01d2f9ac dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x261ff75c dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3dd9d49f dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4430764e dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x45ab972a dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x5683d9a8 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7f1359da dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa68e1f06 dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb2ba81fc dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf41960d0 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfad9d53a dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfc62ef4e dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x01445176 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x17c36f29 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1cac81ac dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2025e954 dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f40da68 dm_bm_set_read_write +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f60e4ce dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f74609d dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x32b5f546 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x38c75c44 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x42dbdfc3 dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x49b35849 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x55b4bd4d dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5e6aea80 dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x62c1b9ee dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x688d422d dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x68fae9d2 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7ade1071 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7b047bd9 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x827a42f4 dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x832bf228 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x858c8d94 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x89f1e1cc dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x966a8838 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9e798e22 dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9f624559 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa0bbbb49 dm_bitset_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa13861b4 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa87c5b4d dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xaee02382 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xafeda29f dm_bm_write_lock_zero +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbd50ebbb dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca40abd5 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd041d62b dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd29923fb dm_tm_shadow_block +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe44b4b9b dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xed1e1f96 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf375d009 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf475af48 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf5455120 dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/raid1 0x2e66d6da md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid10 0x0079c5c7 md_raid10_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x0a329d06 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x0a0b0e4a saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x347be907 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x38010550 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x79245975 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x8bfa37ee saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x94e1b5b4 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xa0bfd574 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xbeb93359 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe30bc75e saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xf2c8d65f saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x258f7c7f saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x53801102 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x5b7bf33a saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x933fd8bb saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x9fef7da5 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xdb4b8155 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xe16f77da saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x0054bc29 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x14003be3 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x1e7e4e2c smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x2e727c38 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x3640934b smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x36ff4059 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x3d687b4e sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x3f8cf298 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x516a2125 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x73b1844f sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ff9f40 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c8eb65c sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x99a81ab3 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9c2225ed smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xd0fec278 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xd8add05b smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xd9162c9c smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xda3825bf smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xe42b72fd sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0xaf068d5b cx24117_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0xcb7b466c tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0x8f094115 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x00e6e046 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x0cef99a3 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x1f5bb559 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x39f80366 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x51e6ef8f mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x5a9b07cb mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x5b96873e mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x5ea6df27 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x5fab5fd2 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x692b6ed2 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x751218cc mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x89af2f28 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x8a8b1a3e mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x917624b5 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xc976683c mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xcc463025 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xfaf8e5e5 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x32e5bc2e saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x33435109 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x580c090d saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x6768ed29 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xa43d66d3 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x28ec277a ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x3ec46102 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x72451689 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7d7f36cf ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xa9b2337b ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xd97d006f ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xe2b1c8af ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x120fc262 radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x70aac0c6 radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x01bbe13b rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0cf41878 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1440d5ea rc_open +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x195c2869 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x232165bc rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3804996d rc_close +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4f151716 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x5c3878c3 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6103fcaf rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6343ed7c rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x94ac90af ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb5b92272 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb8da6ca7 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc71fdef4 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc9dabbab ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd405fd87 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd7ad4d1c ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe5a8b8d8 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xffe85f57 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0x625530b1 mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x6d5812ea microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0xe14dcb7b mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0xc9171ccd r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0x110eaa11 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0x11c47ae8 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0xe915c734 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0xf5194b0c tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x691554fc tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x56413e0e tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x6d21719a tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x30a34414 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x5830702d tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0xabea6aa8 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x01f0bcd1 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0c006f05 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x462abec4 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5b526cab cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x6c561640 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x6cbf8f7b cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x77156ccc cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x81089000 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x86cb2d07 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x906c0970 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x9bb778c8 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xadbab853 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xb5054860 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xca635c6a cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xcebe76b4 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xe2152dae cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xee12851e cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xf48884a4 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xfe12d324 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0xa5796d0a mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x047d1516 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x113323ee em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x166b3fc4 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x41bf3c6a em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x447b1ba7 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x5fea13d4 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x61eced48 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x89b88c98 em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x8be7c4dc em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x8cceb80a em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x8d4f6209 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x8ea09c73 em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xcde6edb8 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xd73dacc1 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xe34d6ebb em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x181340a4 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x35c761d4 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xac0e9974 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xe91ec334 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x01c483a9 v4l2_get_timestamp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x29d872d3 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x317270df v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x39fe77f3 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x5f68e95d v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xc631a729 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xd1338abc v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x08982d59 v4l2_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x221d2fbc v4l2_enum_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x36e8756a v4l2_find_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x4103badb v4l2_print_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x53105839 v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6976cfe0 v4l2_valid_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6f344bb9 v4l2_calc_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7eaf8e7a v4l2_detect_gtf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0xb0891da2 v4l2_dv_timings_presets +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x31c52b32 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x56666160 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x84f75e40 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xdc741169 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x08bf434f v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x17eb0eee v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x25062c61 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x3d072cfa v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x5327a8d8 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x576726cd v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7269bace v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7c6f85e8 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9a3f6bd8 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa11bfe16 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb0faf652 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xd0a648a0 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xdf0bd3eb v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xdf7abb9a v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xff8eab36 v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x0b17bc2f videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x1cc4d9d4 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x344fc32b videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x353a1b93 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x3ea150b1 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x6312612b videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x69e4f3fc videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x6a1b3a7a videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x6b416d13 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x6e8ae0ea videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x760f8302 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x76f3f2a8 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x774cc78c videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7ba555d0 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x92d2e588 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x9cf896da videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xb1ce339a videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xb87538d7 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc589efc1 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd436a36f __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd8b10c1f videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xde2094dc videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xec36fa07 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xfce740b9 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x02fc2a3a videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x6ff7f6e0 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xaf6acae7 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x42179075 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x883efbec videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xb881d22a videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xc0e70a9c videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xd4d27436 videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xd9759d43 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xe00bc615 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xe0a594c9 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xeedf59ef videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x90da5edd videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x97350b48 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xd390bb58 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x0840c29d vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x095f8469 vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1735fa30 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x17ab22ba vb2_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x190d6346 vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1cc0d3e4 vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1f117506 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2931e18b vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5030226b vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x538387b7 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5ac28e6b vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x645af6c1 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x6b6ffc1d vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x70d0baea vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7a7d775c vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8097edf1 vb2_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8b49e54c vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8e91cb2c vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x95986292 vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x9b5cf5a7 vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xaff84d71 vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb1b67a4a vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xcaa8793a vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xcbf98c7d vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd730b46b vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xdc990379 vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xdf513443 vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe107a6d6 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe1e79859 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe768a1f3 vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf2d33b18 vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf6d8a41e vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xfdadcbb0 vb2_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xfdfdd58d vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x57a52948 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xc5959270 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-sg 0x246a8f88 vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x0f6512c2 vb2_get_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x3c96853e vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xd1cf9c39 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xf67b5262 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-vmalloc 0x9a9a1ba0 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0031cda5 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x00b3eb38 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0174c80c v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0b6b4a65 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x12f7ab0b v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2ce36d02 v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x33b34573 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3899a78a v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3d3da659 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4084dc3e v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4959a11c v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4cae7e1b v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4ce32217 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x502e9090 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x56e1b71b v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x71136597 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x85679f26 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8f431136 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xbaff5646 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc2363d16 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc9c2ae71 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xcda788ed v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xed6b18cf v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf780faad v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x7a705030 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x7d009372 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x945d879b i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xb4524b02 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xc13cae99 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xcc7b1ea6 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xd0f5ac84 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xdd45b0c5 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x4774ff1c pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xc45b5e89 pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xda3a857c pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x08d07e06 kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x0d17e0fb kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x670c0392 kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x7a1314ec kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x9dd335ba kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xe15bc97e kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xe2e3d614 kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xf6f947c5 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x45d7e466 lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x4876dde8 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xedbb3d7a lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x10b8e947 lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x4a74cdba lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x7cacbee0 lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xa15956ff lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xd9d4a322 lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xddab7810 lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xf4c0f791 lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x2cbd3cdb mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x3eb2c9b3 mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x4870fe19 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x6456f910 mc13xxx_common_cleanup +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x6c0777fb mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x72bfa99f mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x026c3d4c pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x429154df pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4d5bef94 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4e9ef10d pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x5dfec512 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7d2df0a4 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9fe345c0 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc1c9d099 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcf4522b4 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe03052aa pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xff84aa54 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xebfc4ba1 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xeecdd7e7 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x34515cc1 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x843e24fc pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x9ff730ef pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xb5e99527 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xbd74c6b8 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x01a33234 retu_write +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x4fca3918 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x0777ea51 rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x08d5d282 rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x13783e3b rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x23ef72b7 rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x257f6bde rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x263cbb4f rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x3d8760c6 rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x47fc24b8 rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x54a7ba8c rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x599dc7af rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x752f121d rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x754fad89 rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x8c83104b rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x8db0da2b rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x9e86856a rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xb3b3ca1c rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xbc1eb6b2 rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xc25399a4 rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xce940a01 rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xdb856c17 rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xe5f818df rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x01f91c00 si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x02faba01 si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x15ca727a si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1c1d9374 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2363008e si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2c6d2dca si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2d7f4750 si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x39a9b3fb si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x43f071f9 si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x468f99f3 si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4a87e6aa si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x64f4bbb3 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x686681bc si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6c24d1e3 si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x73faeafc si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x74829aac si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7bfb5a53 si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x82ef3937 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x84a25576 si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x86a12ddf si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x88dc8a13 si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8d818d1f si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9627700e si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x98847698 si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa16cb70f si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa88a3556 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xae1755b2 si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb75d62e2 si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xbb698f06 si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xcc0974dd si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xcdee1e28 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe4da16d3 si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf6552677 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xfa3eb0a8 si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x422e51a1 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x65dad741 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x8530874c sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xcac1674d sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xfd2623f8 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x38651ce2 tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xb343de3d tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xbe138f87 tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xf12d7dee tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x4362dc66 twl4030_get_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x9effbf1a twl4030_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x8d129fcb ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x05593c14 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x46a775f7 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x86331a33 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xe200f404 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x27cb133b eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63 eeprom_93cx6_wren +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x822222db eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x98bb5a22 eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x0d5012de enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x4f7bec55 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x51a4f835 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x73d68658 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xa3406ff7 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb8cebbbf enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xe812707d enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x195cd7ac lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x8656b131 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x9953d777 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xaec0581c lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xbd8ec23a lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xc3080ecc lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xcdbfacda lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xe0bd226b lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x5b6b1144 st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x817515db st_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2fa79ce2 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x42164c46 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5bc35a77 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x653903e6 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6f515f4b sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8cafb270 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbd5326b1 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc4df58a0 sdhci_disable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xcf52fa52 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd1f00014 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe781e13b sdhci_send_command +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x00bd784b sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x05d88dd4 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x0a9198f8 sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x3574938c sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xa9413ce7 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xe6814dab sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xf44c7ae8 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x0292cf34 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x3dbbeadc cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xc0a5cf4a cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x2f7e0012 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x512c4bc2 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xa2d58444 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xb3e81eaf cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x259ca111 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x663c4033 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xc12b5d3e cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x04ec1b0b unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0a07f7b4 mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0d53f6d2 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x142598ac mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x15441149 mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1ddb2ebf mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x222c4257 mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x245ac032 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x24edba9b mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x289e065f mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2cfc92d7 mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x416c0d6c mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x456b8fec __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4718457a mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4c2c5cbc mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5034347c deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5c0c6178 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x69c9c54f mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7e3a357c mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x84688855 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8850cb3e mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x88ccc935 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8a3f4490 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x90f207d3 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa14e6f3f mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa1b96337 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa91b0d19 mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb8115591 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcb5cdd55 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcdff019a put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd71ec474 mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe02e7101 mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe851b866 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xef856350 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf04c424c mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf3f38ab1 mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf3fe4d7f mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf7d3a157 mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfba6a532 mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfdf62d68 mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfe7ee365 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x3fa7e732 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x746fae89 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x8e9e6e2e register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd747b7d2 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xf80c365a deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x466b023d nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x624b5348 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x51403b27 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x2f524e34 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xc90af681 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0e53b8a2 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x151dec53 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2799a7c0 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2c362339 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4c3e8441 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7454af32 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa0698652 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb9c7072a ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbd22733c ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc5758f80 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xca5d4b07 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xedbf3a1f ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xef52eab7 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x072cac2c register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x1694fd7d c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x8a2ba1cb c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xa54b0bb0 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xad293571 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xe49f30ab alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0f661804 devm_can_led_init +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x104c45bc can_led_event +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x222c295a can_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2749a587 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x37307551 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3f6b3108 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4f9917be close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5117f82f safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x544ae8d5 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6cdc7402 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9ea81562 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb346573b can_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xbe96332e register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xce2f46c5 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xcef6ec6d can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe625e350 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfaba9260 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x53198067 unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x53cf6e44 register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x5c1a6c2a free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xccf83fe9 alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x08d459aa alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x0f64388f free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x1a14105f register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xe30fa897 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x2d0ffce2 macb_ioctl +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x58cc7a94 macb_mii_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x608018e6 macb_get_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xbee3b3a3 macb_get_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xc52dbe67 macb_set_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xdc01435e macb_ethtool_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xf8f7f95e macb_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x01ea49d9 mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x05051cab mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x05de1cbd mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0bff1304 mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0dc9c283 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x11c6445e mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x129a121a mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13ecd4b5 mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x16fd1647 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x172f254d mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x24b5a73a mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x29fb9cb4 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b2ee20a mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2de604f5 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ea4aa8d __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3107505c mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31bdbd16 mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3975de8e mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a6938bf mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3ca29c8b mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3d0f2f56 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3d9f7039 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x40909a16 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x409ec7db mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x43dabfe2 mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x477703d0 mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49e48418 mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4a41b21f mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4caae3f2 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f70a792 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5385b0ec mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x55febad2 __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x58190284 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5a57e085 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x636c76d6 mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x63fed753 __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f293d03 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f298cbb mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6fc1fab2 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x70498cfb mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x798b1e8e mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7ae3dc9e mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7e343d99 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7e950de9 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7f4919fd __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8483cec3 mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x84cf3419 mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x86f7b32d mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x886b8f81 mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a7c8538 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8afcebac mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x96d13077 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x990d5c46 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa22c45f9 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa3c85021 mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa6bf299a mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xab02ec57 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xae5e0bdf mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb3d4a175 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb6f5a391 mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb70866f8 mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb8d8a852 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba15d0cb mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba57444c mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbb4209c6 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbb61e23a mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd474329 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc0f76524 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc46774f1 mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc89e5b3f mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc92d875a mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcb7630eb mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xccadc066 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xccf1b45d mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcdb9732e mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcfcf51f2 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd15baf0f mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd72910ee mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdacf3e8a mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdae9fae0 mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdfb2f8ec mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0a0a887 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe1524899 mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe1e31f0d mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2cd61c6 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe39dbe54 mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe5eb1608 mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6d2d651 mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6fe8760 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe9abd9de mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeab6526b mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xec8a1bae mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeeedb8b6 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xef77487d mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf35a2205 mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf60303fe mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf6a73199 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf7fbc00f mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf8c4883a mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf991b4ec mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfae8293b mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfe99395c mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0410d610 mlx5_core_destroy_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0420f00e mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x056851f6 mlx5_core_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0a0958f5 mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x169b7166 mlx5_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x18e79af9 mlx5_create_map_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x23751454 mlx5_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x31b26922 mlx5_destroy_unmap_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5e124c1a mlx5_core_eq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6e87e602 mlx5_core_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x83221834 mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f303bc9 mlx5_core_create_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f8f0cc9 mlx5_core_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc3b8c4ca mlx5_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6c4ef56 mlx5_fill_page_array +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf32e5e36 mlx5_core_xrcd_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf52e7f57 mlx5_core_mad_ifc +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x25f38866 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x2a2f75c7 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x6d240817 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x95fd4e8f macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xe205dc0d macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvtap 0xe073d4da macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x0d0f9967 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x251c4e3e usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x5bbe5687 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xd50d8eac usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x054c60b2 cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x4787e8f6 cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7e57c4b6 cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7ed8dc23 cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x9397d7db cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xaa81fde2 cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xc4e497de cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xd0e2ccf5 cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x1c73623c rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x1cf72bd3 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x2b96283a rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb88cc47f rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xcd64d2e6 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xcf4bd32b rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x00b01ccb usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x06f22220 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x072e8501 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x195b6853 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x19d06025 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x23587e60 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x23709f90 usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x265a9782 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2b762a47 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x342f5836 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x34ec6fde usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3c8faf63 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x412bf76b usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x419bfa59 usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x429a07b6 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x53086d24 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7275431c usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x74c9327c usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x80ea3464 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8130dbf1 usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x82d4e823 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa2fd41d5 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa55e5a8b usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc5b5a36c usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc704f33a usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xca94092c usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcad15848 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd4207300 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd812e0c2 usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe49c23f6 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe63a9d2e usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf68e8a8e usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x08c1089c vxlan_sock_release +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x09151be4 vxlan_xmit_skb +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x0a896404 vxlan_sock_add +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x52b920f4 vxlan_get_rx_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0xbcbbc4f0 vxlan_src_port +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1723d18e i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x44d2af21 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5a0bb772 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x65eeb67d i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x729008c0 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8403f992 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9b9c281a i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xaded13aa i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbee5928d i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbefa7563 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc18d7c16 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcd3be7de i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe039301b i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe47c98d6 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf28f70a9 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf2b044b7 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x04f88437 cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x5b0d2d97 cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xad1a4492 cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xf3b29bec cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x9a2882d2 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x51ebe5f2 il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x6d1283bd _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xb2cd6566 il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xf9c59468 il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xff543af4 il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x0d556623 iwl_abort_notification_waits +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x1174fde1 iwl_write_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x1291ef1b iwl_init_notification_wait +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x18336bf4 iwl_read_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x1ac36ff0 iwl_notification_wait_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x35033c81 iwl_phy_db_free +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x396d3fa4 iwl_parse_eeprom_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3d548dab iwl_remove_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x43ffd30c iwl_opmode_register +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x44f3c15f __iwl_err +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x48aa0c25 iwl_set_bits_mask_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5c52e109 iwl_opmode_deregister +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5d0a212e iwlwifi_mod_params +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x776221bf iwl_send_phy_db_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x77901433 iwl_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x7c19e868 __iwl_warn +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8c5d5ab3 iwl_phy_db_set_section +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8cf4d6f7 iwl_poll_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x910a3c20 iwl_parse_nvm_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x96ede7d5 iwl_poll_direct_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x9b766642 iwl_read_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa6b5ec28 iwl_phy_db_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xaa6d08eb iwl_wait_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xc55f981f iwl_write_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xc67c31ed iwl_notification_wait_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xc77ce283 __iwl_crit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xce5212e6 iwl_set_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xd2f23d67 iwl_clear_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xee22a59a __iwl_info +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xee531d32 iwl_nvm_check_version +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xfc1c1cf5 __iwl_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x01e61fc1 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x15648a08 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x183bf060 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2eb75fa5 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4fefc5a0 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x540b4639 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x59dfd199 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x78c44eef lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9cb9a532 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa5e621b4 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xacf933e2 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc01827f5 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd77a3459 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe199c088 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf9478472 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xfa3ba18d lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x15d3a475 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x5a5cd96e lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x696c5aba lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb10db312 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb865fbc0 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xbc8dbc27 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xe4586069 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xe7db76a2 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x9a054c02 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xcfbe279c if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x0840b83e mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x0a185647 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x13fe1208 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x3a4045f9 mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x672cfce1 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x868cecd9 mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x8c4645e9 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x90808eaa mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xb78aedcb mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xc60dc981 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd2c1fbed mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd37303c7 mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xdde2e095 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xfab3455f mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0456e50b p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x06cfc802 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x13b77159 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x280ebfe8 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x41614b1a p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4258ebac p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x459c293d p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9a69c082 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf45a8a5c p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x21790c63 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x33e68de2 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x34d20ef7 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x377a8713 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3ab28e66 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3c5c9540 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4a09488d rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x53d034f8 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x54de7dbe rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x565023ef rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x647c52a3 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6484be75 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6530c287 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x677d4749 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6c34e471 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x85213737 rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x866b13a3 rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x89035c31 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8cc318cf rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x94aad979 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9b2146f9 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9c269e48 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9e2639ee rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaa0f21f6 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaa9b6c86 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaba46b33 rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xad3ba3f9 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbc31fd90 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd3767bda rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdd1f78e0 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdd9869cb rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe7da231f rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe9352219 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xec3b5384 rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf2782945 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf7735075 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf7d779fe rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf98ca215 rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x0fad1430 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x12dd55d0 rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x229762cd rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x2505789d rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x304e80a3 rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x51673943 rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5912b13c rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x70c398a1 rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x92c0bcd1 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x94b7f6c6 rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xa8366e67 rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xa923a724 rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xb16d3ad7 rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc6a1455e rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xccf040b5 rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xe28f94c7 rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xed9f48d0 rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xfb64f64c rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1585c515 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2a073a27 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x32d4c8c6 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x35134185 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x357df358 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x41afcf4b rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5d8cc4a7 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x696afc41 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x750089cf rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7e46e1c5 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x807648d2 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x86b115f7 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x88a060d5 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9310250e rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x94023dc4 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x985ae7ca rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa2732eb6 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa5411e8b rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa5a59a16 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa94ee5a1 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xab8bc1ca rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xad731a63 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb2f47a26 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb4adcf04 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb67334cb rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb73591ae rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb9cc1178 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbb1b632d rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbcb1953c rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc1e76f41 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc46c27b6 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc574fc02 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc799628b rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xccd4d342 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcef8226d rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcf971d7d rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd4719b1e rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd57b2c60 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd76039d2 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdb191b76 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdcdc57e6 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdd06bc0e rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe6bffe22 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xec5d0421 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf030afaf rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfb03d5ca rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x1566e31d rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x5cbc2115 rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x64b6e984 rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xd398380c rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xfd27b20a rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x01e98df0 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1ff0ad11 rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3a1b6f1f rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x4e42918e rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1bdd2467 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3b67624e rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4726156c rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x48075312 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x48a68729 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x590309c2 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x599b6088 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x706e03b8 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x73d00d41 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x969c07e0 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa3d4a4ed rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb83d6199 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbcb20601 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdde66014 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xefacd11e rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfb51df40 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4944f308 rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x74d67bd2 dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9992174c dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcc864d0b dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x0b9fccb1 rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x153aef57 rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x1c72ba42 rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x2021be25 rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x277335c9 rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x2e7eb486 rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x32d21d72 rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x36459b35 rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x54d17ddd rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x56b293e4 rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x58935563 rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6fee3a6c rtl8723_phy_set_sw_chnl_cmdarray +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x71e873eb rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x94b6f844 rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x958700d2 rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xa025b891 rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xa054818e rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xa25e4c12 rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xa42d6460 rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xaf4d6d94 rtl8723_phy_calculate_bit_shift +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xb2cefff5 rtl8723_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xc8e06ed4 rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xca8eabbb rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd35b4c0a rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd5218c68 rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xdbb7b73d rtl8723_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xdce0180a rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xe097b512 rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xebb8ef95 rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x0181ddfe rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x0d0b6636 rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x241dedc1 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x2a0c0e61 rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x4e016cd9 rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x51849dec read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x5dbb23a1 rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x6b4de810 rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x73278ce5 rtl_dbgp_flag_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x84ea3302 rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x983212a3 rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x9f834417 rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xa6acd96b rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xa8fb122a rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xaf1af7ed rtl_attribute_group +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xc5813507 rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xca081231 rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xeb001e7c rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xeb05257e rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xfd3a58b3 rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x079ee569 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xe417432b wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xea6db5f1 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x013c7f3a wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0518d9e9 wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x136e30e1 wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1d222d5e wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2c414163 wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x301ba509 wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x383f2475 wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3d8bcf3f wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4106a727 wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4c656873 wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x50a79d34 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x545b1565 wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x58453ab7 wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x66958892 wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6829ad48 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x697f1827 wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6ae9aa5d wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6d67f8dd wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7399dea4 wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x75fc8554 wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fff3db9 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x845681b0 wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8a7f0a3c wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa41bcd00 wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa7919e55 wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa964a128 wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xaa74872c wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xaec5eee7 wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb6aa9a28 wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc01baadc wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc7c27b9a wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd2b54e77 wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd39bb505 wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd7035bb4 wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd81c1fb7 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd9362989 wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe59d20ac wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe9ffe40c wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf1f262bc wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf727bfe1 wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf80edf53 wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfc610211 wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/pci/hotplug/rpaphp 0x01cc7086 rpaphp_slot_head +EXPORT_SYMBOL_GPL drivers/pci/hotplug/rpaphp 0x91e4bef7 rpaphp_get_drc_props +EXPORT_SYMBOL_GPL drivers/pci/hotplug/rpaphp 0xb7663497 rpaphp_add_slot +EXPORT_SYMBOL_GPL drivers/pci/hotplug/rpaphp 0xe661f31a rpaphp_deregister_slot +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x03c538de phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x0779d474 phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x109a658c phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x1c292fd9 of_phy_simple_xlate +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x28787059 devm_phy_create +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x49af501e devm_phy_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x528e8749 phy_init +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x5c9e1c0d devm_phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x6b605765 phy_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x80e3249c devm_phy_destroy +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x81177e6e phy_destroy +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0x848ce56d phy_exit +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xaa597a3f phy_power_off +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xb204dec4 devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xc44fb74f phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xd9d5b221 __of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xde19bcac phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xdf304623 phy_pm_runtime_put +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xecc40995 phy_pm_runtime_get +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xedfa4115 of_phy_provider_unregister +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xf6d30cc5 phy_power_on +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xf8fad44a __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL drivers/phy/phy-core 0xfecbd845 phy_pm_runtime_allow +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x47c0ca43 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x9a139d91 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xe338e48f pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x003998ab ps3_write_ctr +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x0bdf50c4 ps3_disable_pm_interrupts +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x0e622920 ps3_write_pm07_control +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x181e55ab ps3_read_phys_ctr +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x1bcb88c1 ps3_write_pm +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x2abf1471 ps3_get_hw_thread_id +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x2b339635 ps3_disable_pm +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x3c71a6b2 ps3_set_ctr_size +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x4a24996f ps3_lpm_copy_tb_to_user +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x50488f64 ps3_lpm_close +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x58e642c1 ps3_lpm_copy_tb +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x59c54782 ps3_set_bookmark +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x5eca6711 ps3_get_ctr_size +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x60e3f0d7 ps3_read_ctr +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x6702a28c ps3_get_and_clear_pm_interrupts +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x69010c19 ps3_set_signal +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x70177200 ps3_write_phys_ctr +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xa76ee01d ps3_read_pm07_control +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xaa190bc1 ps3_read_pm +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xbb72a01c ps3_enable_pm_interrupts +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xce72c9c0 ps3_lpm_open +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xdddfc980 ps3_set_pm_bookmark +EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xfae0ab68 ps3_enable_pm +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0x026c1f2b ps3stor_read_write_sectors +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0x4b7be8c2 ps3stor_setup +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0xbc41d22c ps3stor_send_command +EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0xc019a844 ps3stor_teardown +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x40bcfc69 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x6a36d458 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xafd08c86 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xda904f71 mc13xxx_parse_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xfe55111c mc13xxx_get_num_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x062c49d0 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x1c5def98 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x51dd707e wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8bcc8c71 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xaa75a8b5 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xd0e69305 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x71d8cada wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0396ed87 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x07ab6fc3 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0fc2c643 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x145508ff cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x33464a64 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x33c69a62 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3c99cca4 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3df2b1f0 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x41d977d3 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x43e6ce84 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x47dda915 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4a47d7bf cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4f0863e7 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4fbe763e cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5b02a588 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5bbfb45e cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5e19a3df cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x67213394 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x68b9b6f4 cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6933a892 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x715d504b cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x71f7509f cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7406895e cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x79b2b2d2 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x86d0807d cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8b58c63a cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa003cbe8 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa0a36560 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa5ccd43d cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa908d3c0 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb8b614cf cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbd6e86ee cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc7db7b03 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcce1d712 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd6b5e90f cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd89d5778 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xda83c26b cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdc6b0b75 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xddb6f11a cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xddea1938 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdf29faf5 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf010ac99 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf771c8f3 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfe5f1349 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x072b3314 scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x3b077597 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x41524d3f scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x97bcb04b scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xa1de14ca scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xabcd2725 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xc0e08d10 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x026b3b00 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x239e267c fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x2fe9b20f fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x55658f7d fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x69cd27d2 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x6ae5e4aa fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8a35c3b2 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8d7818fd fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa63d392c fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa6875400 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xac5006db fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xb7e03f6e fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xbf42c359 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xca8c4763 fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd1a85d1f fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe67c1c12 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x120761db iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x2757f9d5 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x31316c27 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x436595aa iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x6ce0e193 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa514d588 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x05d1843e iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x221fa4eb iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x261a1b38 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2a0a448c __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x311f989b iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3307029d iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x33e81b64 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e58ca7e iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3ee001c3 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x41bd7fda iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4a390370 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4ebf1f61 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5c35d907 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5c855959 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6aecd746 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7196c8f8 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x71d02dbc iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x726f944e iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x73e5fe50 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7ff4625c iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x874d6c47 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8b134302 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x923745f2 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x998c773f iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a943b93 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa41e2939 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa74e7134 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa7d72dcb iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaf677c4a iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb2c21ee6 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb4c42cc3 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb5c589df iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb5e7fe54 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc9796945 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xca1b464a iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd15a9e11 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd67bbd09 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdba2438c iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xde26b8e4 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe13bb6b5 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe7f1381b iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf24b2aaf iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf42afc4c iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfe31d352 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x28c56600 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2c3f12c1 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x371f28fa iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3d59c99d iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5419dba3 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x682b15fe iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9a783918 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa1bb576d iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xaf8fd716 iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xca593416 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd08caff3 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd205711f iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf398dbaf iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf40d8e3d iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf4ebb29f iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf8e0b9fa iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfef620dd iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0477329e sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0664514f sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x06680f48 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x08756ace sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3742c0bf sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3a8894d0 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x447c10aa sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x45be832a sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4d6e4c6d sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x66e05a20 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x71f1ddf5 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x747fd0ba sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7b3f5ca3 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8a95110f sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9319663a sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9ec203ad sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa858c726 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaafd267d sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xae7a28da sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb11f4046 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc61d52d3 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd5a6b194 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe6d1ac81 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf3f6d66f sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfda3b5df sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x18765eb3 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x33cefb35 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x6e5c514c srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x9803ada9 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x9c6bc678 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xadee26bd srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x36e2d86c scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5d9d8697 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5f155395 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6da67f07 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x989b12a4 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9e3c6f47 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb0575da9 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xbbbbf1ae scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd5e55b2f scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00e1195d iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0be348f5 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0e3f25d5 iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0f53eddc iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x19236335 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x24871b30 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2cc7807c iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3a1ce2be iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x431f10cb iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4d83e911 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x537d3f57 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x548b0901 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x56978f9a iscsi_is_flashnode_conn_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5f0dee10 iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x60c11880 iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x67f38a7f iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6a6a1d31 iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6a766890 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x72edfaaf iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x84dad720 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8707c963 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8857866a iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x97c2308e iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa4882865 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa636703c iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa8c396bf iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa9d81cc1 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaa324254 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xacdf7132 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc59f9aee iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xca689c56 iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd0cdbde4 iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd5a3dd69 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdb99d7b4 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xed870e64 iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xef1cfdfa iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf0109558 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf1e7cc77 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf39f9aee iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfc13f578 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x0a6acf85 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x83fb7fcf sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xddbdb403 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xdeac2cd0 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x31440357 ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x46afa9f2 ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x4ef19949 ufshcd_remove +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x67c4de9a ufshcd_resume +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xaf7356a0 ufshcd_init +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xb701be0b ufshcd_suspend +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x316226a6 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x9b6f2b72 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xa34c1b82 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xf2ba2155 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xf4f40063 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x09c5556a dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x412a4a1f dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x695f2ca9 dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xce1f7f2d dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xf916cef2 dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0xf73a9f5a ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x014cc658 comedi_to_pcmcia_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x075da13a comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x137b066e comedi_buf_memcpy_from +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x14f82424 comedi_pcmcia_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x168ffa09 comedi_pcmcia_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x19bf23c5 comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x1c4351c4 comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x21377fc9 comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x31158f47 comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3680a1d0 comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x37b708ed comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3b48041a comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x418e1f68 __comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x41c25b47 comedi_pcmcia_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x42d02624 comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x43ef3bc9 comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x440b1b50 comedi_error +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x498c7c9a comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4a09aa7d comedi_dev_from_minor +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5220a381 comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x558a2e55 comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5d0c8b41 comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5fbb9c13 comedi_pcmcia_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x66a14c6d comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x700d9394 comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7842a366 comedi_pcmcia_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7d6cd70e comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x82597cf0 comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x87b5f7bd comedi_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8a5bba4d comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8b80948b comedi_buf_memcpy_to +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8d1da954 comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x901682d8 comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x91e0b2b4 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x9fc5a5f5 comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa3fb6be7 comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb0a4c5d7 comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbd351afd comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbe721a2b comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc32f67fa comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc87e27e1 comedi_event +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd04dcce7 comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xde910fc7 comedi_pcmcia_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdf2422cf comedi_buf_put +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe5da835c comedi_buf_get +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xef66f6e5 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf0c6f9cb comedi_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfab4de22 comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x14da12cf subdev_8255_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x66a47c14 subdev_8255_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x86b04d16 subdev_8255_init_irq +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x49d5381c addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x22b755fd amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xa73d7af9 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xb838ff76 amplc_dio200_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x3834b051 cfc_read_array_from_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0xc98b2fe2 cfc_handle_events +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0xfae260f2 cfc_write_array_to_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x42207aff das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x08b80c6b mite_sync_output_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x0b71dd79 mite_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x22d23310 mite_dma_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x32550aef mite_dma_tcr +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x3d52de22 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x4efd102a mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x5a2ed216 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x785d5cb1 mite_unsetup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x7e135035 mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x9477bd98 mite_sync_input_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xaf2218ee mite_bytes_written_to_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xb4b7591b mite_setup2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xb7f0dfb3 mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xbafc3a6d mite_setup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xbde1ec9b mite_buf_change +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc638228d mite_done +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc85e14da mite_bytes_read_from_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc8e7fcbe mite_get_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xd78f639c mite_prep_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xd8025eb0 mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xe8f0bd8f mite_release_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xed7d74b8 mite_free_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x20574851 labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x38fe2ae6 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x43bde576 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x50c2421d ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x689a01d5 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x828a2823 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x85a3789f ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xc1c77652 ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xf28c7362 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x1b172cc0 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x35a98a3b ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x5b195376 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x982e6671 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xd15384a1 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xd470a83f ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x1afed14c comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x31c13cf6 comedi_dio_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x3b7a5529 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x46a1c46c comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x5a9214f9 comedi_close +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x9dc5fdce comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xb370ddc6 comedi_open +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x2206b003 dwc2_handle_common_intr +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x823787fa dwc2_hcd_remove +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x9c477756 dwc2_hcd_init +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xb05a818c dwc2_set_all_params +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x1a1b5249 oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2feda75b oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x3227a28e oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x7dc9dddd oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xb2c66001 oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xc8b5a524 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xd370f679 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x0fe73397 adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0xbd5a0e51 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0ef1d765 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x1d5a714b synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x2961c2b7 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x381d82fe spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x475e158a synth_request_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x488b3656 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9cd2b5dd synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xaed70f24 spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb35aaab9 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd1b551a2 spk_get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd3ac439d spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd61b272c spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xdb2ef670 spk_serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7cd4558 spk_serial_release +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xe7e810f8 spk_serial_in +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xfbfc136f spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x0b4a2810 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x54c82c1e usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x55f74736 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x63648b70 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x6a80e003 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x7f67b16d usbip_recv +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8b554b4c usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xab944f45 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xbd5bc7ba usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xc616165b usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe56d8940 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe8cadf37 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xf5d11234 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL drivers/tty/serial/8250/8250_pci 0xedeb58f4 pciserial_init_ports +EXPORT_SYMBOL_GPL drivers/uio/uio 0x1f53e250 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xc2c2b63f uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xf1cfeaee __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x769aa1cb usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xede659db usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x6b6bee0a ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x8c346894 ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x170e9bea imx_usbmisc_init +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x74750d38 imx_usbmisc_init_post +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x19f6cf72 usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x22470fa8 usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x363f5f52 usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x426a7a8b usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x51093911 usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5375fc1b usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x6809f716 usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x70d9c2d1 config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x744e8a50 usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x798ad80a usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x8dbf9e65 usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x94d7075a usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x98e180ee usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x9a77a0f4 usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x9f679722 usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa2751eec usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa4b77d74 usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa589abff usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa7460600 usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb4ce53c7 usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb7652ba4 usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xba95892b usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xbe570e1e usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc59a9214 usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xcb9cee44 usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xccbf8574 usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xdd774643 usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe4e332dc usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x4f81921d gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x8e27d6de gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xab488947 gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xf1981607 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x0b64ccb9 usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x6133df4f usb_gadget_map_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x67c7ab34 usb_gadget_unmap_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x7659e202 udc_attach_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x8968d3a3 usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x9850390c usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x9fee99b5 usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xe0d556a0 usb_gadget_set_state +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xea7e22af usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x0a5230df fsg_common_set_nluns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x141fce2a fsg_common_remove_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x1ccb58f7 fsg_common_set_num_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x2d10b6a7 fsg_common_create_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x51707c29 fsg_common_run_thread +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x54a394df fsg_common_set_cdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x6acb4179 fsg_common_set_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x7e26d4a5 fsg_common_set_sysfs +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x85cadbad fsg_common_remove_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x99023bfc fsg_common_put +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9a0221c7 fsg_common_free_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0x9dc025a5 fsg_common_free_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xa46e6443 fsg_common_get +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd3ae3b65 fsg_common_create_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xd468f882 fsg_common_set_ops +EXPORT_SYMBOL_GPL drivers/usb/gadget/usb_f_mass_storage 0xe4d1591e fsg_config_from_params +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0xc698e14f ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0xe91aa3ec ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x16f6b125 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x414db30a usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x41e01aac usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4e43b92b usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6bb42a7e usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x73c461d5 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xa3e2b080 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xa7450087 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xcae55029 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xf644263a musb_interrupt +EXPORT_SYMBOL_GPL drivers/usb/musb/tusb6010 0x141dc96d tusb_get_revision +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x3cd110d4 usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x882a2f58 usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xc0b7ca91 usb_gen_phy_init +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0x5a0ec1cd isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x1f7c8767 samsung_usbphy_set_isolation_4210 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x83e71aaf samsung_usbphy_rate_to_clksel_4x12 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x9f53a817 samsung_usbphy_set_type +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xa02082e5 samsung_usbphy_get_refclk_freq +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xa84e92c7 samsung_usbphy_parse_dt +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xd8a6b0ab samsung_usbphy_rate_to_clksel_64xx +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xfa9f2946 samsung_usbphy_cfg_sel +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0x5f51d3e3 usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x19c445d2 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x21145fbb usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x40d274d5 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x420ea200 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4644132e usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x54a49ae8 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5c65ba62 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5e3666ab usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6c50532b usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7928356f usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x84fbbbc4 usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9e649cd4 usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa91522b4 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb74b34e2 usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbf55256c usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc798f93a usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd1c193cb usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe6271bd8 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf5c66d89 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf630f300 usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf96939ef usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x185ead49 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x263cfa83 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2f83c040 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4c0dadd7 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x541069d3 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5f01b98c usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6b6762f2 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7bcc790a usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x95608a0f usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x98f4abb7 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9f18a804 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa0dd5702 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa3fbcb10 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xaf590708 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb13e22dc usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbc2518f2 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbfca0cce usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc3fbcc81 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd2e6bb10 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd9bdf01b usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xecc2e712 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf2c42613 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0bd816f0 wa_process_errored_transfers_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x3301b7c5 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x7a1d30ce wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x8fb4f1ca wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x9da2c39f wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x9f3d4071 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc683392c rpipe_clear_feature_stalled +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x160ab4e8 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x17bc2fb2 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x18661a76 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1c21a3cf wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1db9be4b wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x36834f4d wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6a1d71fc __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x712f4733 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8f6d7be0 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9060a213 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa71b0d6d wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcca3a446 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcec61f53 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe0c8fae2 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x889598b5 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xaee4ec41 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xe5376dc6 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x370648ba umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x67d8dff6 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x707b1f87 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb717c488 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb8c51669 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc041df2c __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd43be663 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfcd503d8 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0134ee3b uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x02e8789f uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x039a137d uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0d78016e __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0dba24fc uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0fc02440 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x10910850 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x129ca53d uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x137f4716 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x171f6709 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x265f247d uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x273b5969 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x314597d5 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x38a6dce7 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x46f05b8f uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4ff3d20c __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5b177a31 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5b32fbf3 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6d1295b0 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6dc6b674 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x71a1f21a uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x77358877 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7b1b489a uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x80997637 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x816b9e92 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c022f8e uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cd0c38f uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x94439626 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9559630f uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x99f9dede uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xabb5b975 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xac97316b uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb63bbeb1 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbaebba44 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc420ea19 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc73d25c7 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc95f0dda uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd5d68db5 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe6bd56da uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf3689991 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf9afc845 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x06f937ed whci_wait_for +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x033cff23 vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x0ceca5e5 vfio_group_get_external_user +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x0f4c952f vfio_device_get_from_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x2babd292 vfio_add_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x3567743b vfio_external_user_iommu_id +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x4571ea49 vfio_register_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x95258207 vfio_device_data +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x969c73d9 vfio_device_put +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xa74a5901 vfio_del_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xc4913442 vfio_group_put_external_user +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x028acea3 vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x08af83b0 vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0c65b738 vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x11ef83c8 vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1dd5a82a vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x20edc11b vhost_work_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x269f7a09 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x32507dd2 vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3a6e7cb7 vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3d472c42 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x419c2a2f vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4b319f73 vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x507d5b6e vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5351e010 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x569e8c01 vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x576eae8d vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6cef87ac vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6df75f83 vhost_init_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x75fe286e vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7608d490 vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x805bbf1a vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa06e0d2c vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xac73e8b7 vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb0f81e37 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb1c84c2e vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb4270af3 vhost_poll_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbbc7fb20 vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbcd2ef95 vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd28c9a9a vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xda45f1cc vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xeba98ae6 vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x115d2d23 auok190x_common_remove +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x1d99a8cc auok190x_send_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x67f8202c auok190x_send_command +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xa2aed205 auok190x_read_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xa401195c auok190x_send_command_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xc1e21ee0 auok190x_pm +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xc1f58c80 auok190x_send_cmdargs_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xdb519767 auok190x_send_cmdargs_pixels_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xec7fd15d auok190x_send_cmdargs_pixels +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xf1b19ef8 auok190x_common_probe +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x181396a4 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3dae5486 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x6c6cc5de ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x8765113d ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xa4315e11 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xbcbbd519 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xe737907c ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x6a233d68 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x93452fed sis_malloc_new +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x0f0f83f9 unregister_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x4547b291 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x6126fb9c register_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xc9940f37 unregister_virtio_device +EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xf379053f register_virtio_driver +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x24f47767 virtqueue_notify +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x25bd4d7c virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x36ccc7cb virtqueue_poll +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x3847d23e virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x3cbd4719 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x4a443eac vring_del_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x50b2af74 virtqueue_add_sgs +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x5a36e719 virtqueue_is_broken +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x6936c164 virtqueue_add_inbuf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x9e8bd3f2 vring_transport_features +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xa63d9c56 virtqueue_add_outbuf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xb6246d95 virtqueue_kick +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xbf64b988 virtqueue_enable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xc4b660fe virtqueue_get_vring_size +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xc934c26e virtqueue_disable_cb +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xcb27168a virtqueue_get_buf +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xce651fbf virtqueue_kick_prepare +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xdb644705 vring_new_virtqueue +EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL drivers/w1/wire 0x10139c95 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2528adfb w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x29b9d470 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x369e9c3a w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x5e6139cb w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x69a26b82 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x8db0289a w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xeeee8173 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf4be6422 w1_next_pullup +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x436d2ac9 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc6dc8c2f dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xe8a4f5c5 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xeff51ac8 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x01813148 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x102a27b9 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x161a6afb locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1772918b locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x2c23c5eb lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x593e5d9e nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x744f57e0 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa1ce9ed4 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf2211bd8 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x02852237 put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x03572a3f nfs_clone_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0491d568 nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x04c861fe nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0b0f3b98 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0edae983 nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x11611cba nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x16d6d6a5 nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x18efe327 nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1a8d77df nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1ac63cc6 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1b5ad226 nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1b9b61f0 nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1c221e85 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1d1dca65 nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1da40fa3 nfs_probe_fsinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1de81305 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1f9d6b92 unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1fc4843a nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x20828375 nfs_destroy_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x25c236e4 nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x29923bcd nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2b4e5690 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2c49f78c nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2fe0709c nfs_setlease +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3085a57d nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x327fa54e nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x32b864fd nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x347b35ed nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x34ccf026 nfs_try_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x37348c09 nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x377ab298 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3a9c512a nfs_generic_pagein +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3bcc5d3e nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ca31f35 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4088cb4e nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4328beac nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x445faf2d nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x448bd9a4 nfs_file_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x464de66e nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4693aac8 nfs_fs_mount_common +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x469d2057 nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x48b4a560 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4e967462 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4f1a544c nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5477fae6 nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x54840bde nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5555af41 nfs_writedata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x58d361d4 nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x58df492a nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x59600b0b nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5b36445f register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5ba25d49 nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5ca255a4 nfs_readhdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e1d863a nfs_sockaddr_match_ipaddr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x61112cb1 nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x63f968e0 nfs_fs_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x63fea54f nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x69febf5c nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6b6648f2 nfs_remount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6c803822 nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6f74ed65 nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6fad13b8 nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x76878b24 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x770dc51e nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x77c3e5f5 nfs_writehdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c9722ba nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8028e86f nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x82935034 nfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x882cfd4d nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8870a7ab nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89ac30f5 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89bc5a64 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8c0cd2b2 nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9400b8a8 nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9416d233 nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9423883e nfs_generic_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x991779a9 nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9bf9caaa nfs_file_fsync_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa28e79a9 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa3970a7b nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa479e864 nfs_fill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa4ed5ed3 nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa7d6bfcb nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8d2d1ce nfs_callback_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xac0f2fef nfs_set_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xac3e0fcf nfs_pageio_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xadaf19f5 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xae3af1b4 nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaecc50dd nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaf0afc56 nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaff51efa nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb0a81086 nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb26e4308 nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb606e716 nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb6ce570a nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb8bb7280 nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc0958ca8 nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc248e8b9 get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4ff1e9f nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc59e1411 nfs_file_splice_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5ef47d5 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xca0a0bac nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcb558f15 nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcfbe3f4e nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd0471e12 nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd149f9aa nfs_readdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd20201c3 nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd28ed5bc nfs_put_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd4ab42d7 nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd4b60798 nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd6820961 nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd6d476b9 nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xda6ff242 nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdb216223 nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdb57c044 nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdba120c4 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdcad72af nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe13490ec nfs_pageio_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe6785a06 nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe7b812a7 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeb8417b3 nfs_file_splice_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xebe0da17 nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xec8706e8 nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xecc9e9a1 nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf0930c35 nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf181ff18 nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf328291b nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf4c84dd3 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf60dc1fd alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf6d97886 nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf74c3748 nfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf863fb8f nfs_pageio_add_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfacba119 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfb7ee006 nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfdab3f8a nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x06c36816 __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x074646b4 nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x117ac28f nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1523638a nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x170f3ed6 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x233746cd pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x26fdd783 nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3101ffab pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x31e4d623 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x33beb502 nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x353037c8 nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x36dde872 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3d47d629 nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3dfe6fe3 __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x45442cac pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x471de0a9 __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4bc36c27 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4caa5044 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x63357bef nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x68967abf pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6abc921f nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6afe5b6e nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6df73ca3 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x70a7e1a2 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x73f59c1a pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7ebf5e75 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x83b30667 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x84638386 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x869c36d1 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8d3973cc pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9c403f12 pnfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9def22c1 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa2aa9a4a nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xae5cd791 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb91816f1 pnfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xba30049f nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc07c8be9 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcf540b15 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd1c55662 _pnfs_return_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdcc3fc29 nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe0c43191 nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf73d1e2a pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfa757878 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x2c2e3b7d nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xa31a04a0 nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x116b3a16 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x19f37ef3 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36a28a9e o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9d424006 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbefadc27 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbf074204 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc8945ca9 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf7ea485b o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x02a8ae83 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x39b5f658 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x8d7aa947 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc232bb2b dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xe2897b61 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xf9a1bbc7 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x18b309ab ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x2cf77a90 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fe5cbd9 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x323412f2 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0xa71baf4b notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x1803a6ed raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xe4b051cf raid6_datap_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xfdfcb8cb raid6_call +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x201d8ea3 encode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x29fa419f decode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x0afc6512 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x0eb84f60 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x12cc628c garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x818809c2 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xb916cc03 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xc10838ad garp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0x04398a2c mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0x24d72f66 mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x346672b0 mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x3cdcda70 mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x4e5a7674 mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0xc89b5b10 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/stp 0x254bdd6a stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0x53828759 stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0xe9c75cff p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0xfd89bbc4 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0xb09faf79 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xcfb6a3da unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x94c39779 ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x583b8efb bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x069613d8 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0ff1a43c dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x14b08974 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1540563e dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x173b0dad dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x26901759 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2a48bb06 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x380c8807 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3ca24403 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3f14575b dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x450694bd dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4e6ee679 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x526fddeb dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x55fe5de9 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5beda634 compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x658386ac dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6ce2f13a dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x765c7eda dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x78dc8a00 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x806bdd78 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8114dbff dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8cbb4bf8 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x906abd84 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x95e23554 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa0bbb6be dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa9d686e8 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb8be1484 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc0b7b890 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc133cc2f dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc6bd98f8 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc8a1ba3c dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd7359b44 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xde20862c dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xded4a22c dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe14c8950 compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xed13c2ae dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xffc9ca82 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x22e57326 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2f9b6d8f dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x41ff59b7 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x8768b37a dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x895d0803 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xb7817f90 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x5d090264 register_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x86882c65 unregister_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x3b877b8e gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x5c73568a gre_cisco_register +EXPORT_SYMBOL_GPL net/ipv4/gre 0x68189a17 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xf944a3ce gre_cisco_unregister +EXPORT_SYMBOL_GPL net/ipv4/gre 0xfeb7fed5 gre_build_header +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x7355f7db inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x78b31e85 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x8141fec9 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x94f3289e inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xaf6f7adb inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xcd695562 inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x051d0886 ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x2074de8a ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x2c976cbb ip_tunnel_ioctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x2e1a457b ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x522bb0d0 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x64449339 ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x6e402727 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x864da7c3 ip_tunnel_get_stats64 +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x993334f9 ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x9e6163b3 ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xbf5af8cb ip_tunnel_delete_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xebfd0548 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xec7e8a7d ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xffe0625a ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xb6a43e48 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x1f5c8dd9 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_ipv4 0xc1e9d372 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x38919f42 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x8225e0f4 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x92f263cb tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x94a1947f tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xdab0370f tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0x7aa34ddb xfrm4_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0xef491e9f xfrm4_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x018e0244 ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x317ce943 ip6_tnl_dst_check +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x3db2620e ip6_tnl_dst_store +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xaa053732 ip6_tnl_dst_reset +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xf775137a ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xe6d232d1 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_nat_ipv6 0xcc10b7d4 nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0xa629b201 xfrm6_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0xae363424 xfrm6_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x18adf324 l2tp_session_queue_purge +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1faf17e5 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x23fd99bc l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x32e0e499 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x49290d8c l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5ef1bb4d l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x71b69a6b l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x776346a5 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x78a0b4ca l2tp_tunnel_sock_put +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8eac19c9 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc48f2eec __l2tp_session_unhash +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc88bd697 l2tp_tunnel_sock_lookup +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd05a5bce l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe46d83ef l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe6a376a3 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xeef8f208 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf6790381 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0xf4133f6f l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x23889cb5 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3663a36d ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x42ba0213 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4bf42798 ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x58d931d3 ieee80211_iterate_active_interfaces_rtnl +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5d38f601 ieee80211_set_key_tx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x64ab5125 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6e2b3ce7 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7c3becd2 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x81ab9937 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9462653b ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd01e5cf0 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd0fca46c ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe93d95ee ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf485c7cf ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x00e007c6 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x026ca2ba ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0a9afd83 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x1f64b999 ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x30dfcc14 ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x37f211de ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4a453b25 ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4e5eb0ba ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6df86b54 ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x96e4c9d3 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb32bbeef ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb52535eb ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xbe2076fb ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc089c227 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xef13ebbe ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf30ab0fc ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf3b4d4ae ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf5fd9f34 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x112139f4 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x49277cd5 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x6c8dfa78 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xb4ffc6c8 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01f84db5 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x032aa9b2 nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0550a574 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x09bd9a48 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a27a024 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0c52971c nf_ct_l3proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0c7847c3 nf_ct_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15899af4 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15b5412d nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1bc28be8 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1d8a427f nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x23c7937c nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x26e6e627 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x28e12681 nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a5c84a9 nf_ct_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2c274eb7 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2fbc20fd nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3301f821 nf_ct_timeout_find_get_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37386cac nf_conntrack_hash_rnd +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3b1f782d nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3fe6824e nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x430d745c nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x467f9a9e nf_ct_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x49570afe nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ace6ef8 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4e6a0ef3 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x59453a78 nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b0e5dec nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5ee27133 nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x611b7459 nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62252537 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a915040 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fff8279 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x75d9f96b nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78da2198 nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7931463a nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7b14694d nf_ct_l4proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c568b15 nf_connlabel_match +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9524797c nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9b585f7b nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9b7e756c nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9fb7b96a nf_connlabel_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa022a39c nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa0495806 nf_ct_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa5c7f362 nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa784187e nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa8f0dfa6 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa6664a6 nf_ct_l3proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3ee17b nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xafb9400c nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb18bf65b __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb36936ae __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb582b084 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb3f4235 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd38412e nf_ct_l4proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbe12fcc7 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbed06fe1 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc07231f7 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc1c179b7 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc1d20344 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc22984b7 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc436a367 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc771ed1b nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbcce2cb nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd043f346 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd185323e nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd765a599 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd935642e nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdb93d897 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xddea13d5 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe3b793d4 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeacbaed9 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeef2874e nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf01fe635 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf18f88cb nf_ct_timeout_put_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf2009c8a nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf32da720 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf3e02ba8 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf6961084 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf7e9b32a nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x4d2a86a5 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x2bae561c nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x66cb7032 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1209d07d set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1bcd91e0 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3ca1db7b set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x459d78c8 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4b85951d set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6fe155dc nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa7cd2dc8 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb951d2a4 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xedaca314 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xef4c3100 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xd32bb4ab nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x684c15fc nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x79f45642 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x7ea8509d nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x8a7914e4 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x29affacc nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x63bc7de9 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x36263e35 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5e69ab1f ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb7f80365 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd07f6959 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xda737ac1 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf4fd4f8f ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf9bc50a8 nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x1e889c71 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x31006bff nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x05883dd0 nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0d9bae4b nf_nat_l4proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x131f636c nf_nat_l4proto_in_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x4103bbaa nf_nat_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x6389e449 __nf_nat_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x8b33a992 nf_nat_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x92450659 nf_nat_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xabedf025 nf_nat_l4proto_unique_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xce5b7659 nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xe6ec6a9c nf_nat_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x11a006b5 synproxy_check_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x5f339439 synproxy_build_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x70908368 synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x90298227 synproxy_init_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xb42e336a synproxy_options_size +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xbfdc6000 synproxy_tstamp_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xef7db50c synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0fda3c99 nft_validate_output_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x1efe083e nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x20472eca nft_data_uninit +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x369f8796 nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3ba620f3 nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3d49dab7 nft_validate_input_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x439dd2c8 nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x602aee12 nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x6065461e nft_unregister_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x62ea80df nft_unregister_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x824f1410 nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8fe630f0 nft_register_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9fc98e67 nft_validate_data_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xbe12eb60 nft_register_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe8182cc0 nft_do_chain_pktinfo +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0df2c3e9 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x32b906d9 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8228299d nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x91b32242 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x97db26f8 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xfd5bd2e9 nfnetlink_alloc_skb +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xfd9918af nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x21f6bba6 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x52d0f968 nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x9f9e2e5a nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x04ea2cb7 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0a6d5baa xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x591b656e xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x61bda98f xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6a4b8b9e xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6c728b66 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x78b5e3be xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x79c5a87f xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8d569fe8 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8ef3fba7 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8fbd8245 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa8b20ac0 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb6d4e757 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb9d3fbb1 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbae86656 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xce81d591 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xde607615 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0bcc449 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xec24fd82 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf51dd8bc xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x00204983 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x482b6a12 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x8a219146 nci_spi_read +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xbc0db271 nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xf7ce0426 nci_spi_send +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x03a2c907 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x04ddb0ce rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x41f6c74a rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x428bc62f rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x46200ddc rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x6349d161 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x6ac3863a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x7206619b rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x720e120d rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7bc62829 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x8958d0f3 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x9961f2cf rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x9a98e8c3 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0xa5df76e9 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0xa8f9a7a6 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xb6769522 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xb860b155 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xca414736 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xd2a75904 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xd59a704d rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xd9f31ff3 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xdc9f4bff rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xe5ed3c6f rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xfe758fc8 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x12dd7da9 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x88f0f9d1 rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x43d49365 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa2cc0716 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xc4cfac3a svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x004d6544 cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045834e9 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05ddc8b2 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06d7a84b cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a0f9092 rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b0bdd52 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ceeb090 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f685e3b rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10252f70 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12a5a947 svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12f55dd2 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13525122 sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14218dc9 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x157122f3 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16261442 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x166f8211 gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c86edc6 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1df538d3 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1eaa68ae svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ebf5800 rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f2a9970 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f3d4f94 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x200b5550 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x206374ff rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x245da6bf rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2646ab8c rpc_get_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27e961cd cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2801206e svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28323de2 rpcauth_key_timeout_notify +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a67b9d8 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a99be74 rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2db7cb44 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eaada85 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f5712d2 xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30077a81 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32157b36 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33b7f844 rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3419d906 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35a3ba26 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38448c0d xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39325ac1 rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3951a636 rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a40aa70 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d0b8e0b rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e399acc rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x400d8753 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4018dbcc xs_swapper +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40c98c29 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46d24353 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46ed8b64 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48893f59 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4bba2da2 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e7d2cd6 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f73cb41 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x509679ba svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x530445bb rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5598e555 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55a474b3 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56640beb svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56d1e6b7 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57aa9995 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a9c64e0 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5cc492d3 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5cf7f3d8 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d4e7757 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fe8c4e6 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62925927 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68e78714 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b22551f rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b3c1f2e svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bb305ee svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x703f86a0 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x730dee03 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73891332 rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75409e6d svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76d9ff5e xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7708ced9 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77ae22f4 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7889d62a read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x791669dd rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x795055da rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79b34ef5 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79f9efaf cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7aac0d5b rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7bf3dff6 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7dc9e1e5 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ebdcb02 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f6e2446 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80951b28 rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81db2479 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8332ec24 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x841ff015 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x845bb362 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x848d8b4b rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8873cc81 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c8ca132 rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8cf4fa63 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d434a48 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8da6cec7 svc_shutdown_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e4ee85e rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e826cec rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f1c59f7 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8fd283d6 rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x907bbb1e rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x915d1e38 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x91f25f4f csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92bc06e5 rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93fdb770 rpc_protocol +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9603d603 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96bd2a44 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9704c300 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97534f49 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x975c0dfc bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9801ca6a rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b75d64 rpcauth_list_flavors +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x992ef432 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b326b76 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9db03043 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ded5e1b xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e966622 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa10b6adb rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa234e833 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3aa3038 rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa76feb58 rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa897af1b xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaab26dba sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad629e73 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadc2d4a3 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb12e54ef auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb17beb02 cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb22831f1 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb308a326 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51d54e0 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5fc2c90 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb81a3efc xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8f29099 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba654949 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbaac77a9 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbb48cd3 rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbcb0d2ed rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe78dd3e put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc32c8072 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc419aace auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc43e78ce xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc56f459d xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc574d25d rpc_rmdir +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc67717bf rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6f7d315 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8432ab3 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc87c28c0 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb134960 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb66221a svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb99c3fd svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc825205 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd101dc69 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd116e4ff svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1c9a59e xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd36245a9 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd43ba688 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4db919a rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd55deb63 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5a41cea rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5c8b965 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd95a04a5 rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd999328 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdeb08907 rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe084ef0e svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ac2bb8 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5912358 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5f12fdc rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7f66a07 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe90bdd3a svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeabc4017 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb14ee92 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb97787e rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec47886c svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedd31065 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee6c9c43 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1fbbb7b xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2532f13 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf26eb316 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf48494f7 rpcauth_cred_key_to_expire +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4e25b02 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5e9ca80 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7c574f6 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8c447ce xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa4d289c rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa8d2989 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe2cfc2a rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe88cca4 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x06cb3c17 vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0c79d5ef vm_sockets_get_local_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0edf183e vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x10b913bf vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x15c0c57c vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x1e131b94 vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2663cb64 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x59d943c8 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7024f21a vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x751ff010 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7f730c80 vsock_core_exit +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x8ab5a180 __vsock_create +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x96117720 vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x970b77bc vsock_pending_work +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x97b72719 __vsock_core_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd0f699d vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc3890a60 vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd31be45f vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd53e0cb2 vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd95ac116 vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf0fb4115 vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xfb6b44d1 vsock_remove_connected +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2425194b wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x245fb907 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x529f5543 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x682aad5b wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x71348c63 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x874f2a77 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8ba127b5 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa6e116e6 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xc23431a9 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe037321a wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf9214b6d wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xfad7b91d wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xfee9a1a3 wimax_msg +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x059ef87a cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1241c6a3 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x274624e3 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3a062057 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x543ca658 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5715c083 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9eed14ec cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xaf1d2be7 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcd7b7380 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xea9b1983 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xecb28c64 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00778770 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x056bb269 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0a575945 xfrm_count_pfkey_auth_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0b9e5852 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x74e1a843 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7a8ca627 xfrm_count_pfkey_enc_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7c30b8c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x92dbc6c1 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xbc8b0f41 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xce7a55c1 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe122af95 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc527947a ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xca13481d ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xd745f1c7 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xdaadce50 ipcomp_init_state +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x0705167d aoa_get_card +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x143c45ab aoa_codec_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x450eba30 aoa_fabric_unlink_codec +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x46929c5c aoa_fabric_unregister +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x4cb803a3 aoa_snd_device_new +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x4e52f944 ftr_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x6c6709b1 aoa_fabric_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xa102a3e2 aoa_snd_ctl_add +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xa8740797 aoa_codec_register +EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xc2a4bd42 pmf_gpio_methods +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x39e0c2d4 soundbus_dev_get +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x4f965d08 soundbus_unregister_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x6afbfc2b soundbus_dev_put +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x7129bff9 soundbus_add_one +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xb0b42b34 soundbus_register_driver +EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xe02d1d78 soundbus_remove_one +EXPORT_SYMBOL_GPL sound/core/snd 0x0049fe26 snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0x38f41557 snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL sound/core/snd 0x3ca17104 __snd_printk +EXPORT_SYMBOL_GPL sound/core/snd 0xbb165b8f snd_kctl_jack_new +EXPORT_SYMBOL_GPL sound/core/snd 0xd4e04098 snd_kctl_jack_report +EXPORT_SYMBOL_GPL sound/core/snd 0xea72d29c snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x53325d91 snd_compress_deregister +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x9e597b33 snd_compress_new +EXPORT_SYMBOL_GPL sound/core/snd-compress 0xbbbfe5a2 snd_compress_register +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x04e1b99f snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x09e913c1 snd_pcm_alt_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x98439fad snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xc0ea673a snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x360d794f snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x7d36e220 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x8fa1c7e1 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x8ff595ac snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xbb667112 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd73fbec8 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0627b6d1 snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0676f5ac snd_hda_get_input_pin_attr +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x06f0bb63 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x08b445de snd_hda_jack_detect_state +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x092ee2b7 snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x09f195ac snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0a8a590d snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0b50975a is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0fc7d448 _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x10f721c2 snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1186e7f0 snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12013d48 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x13779d52 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1702c480 snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x17a32419 snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x18607744 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x188499f7 snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1aa3e33f snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1b207d65 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c6588c8 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ca3997a snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ddf1f5b snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ee3d43e snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1faab2f8 snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x20b9d712 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x21f3c02e snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2264a932 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x22c71c59 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x23ed5749 snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x24aa15a3 snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x24c0b2ca snd_hda_gen_spec_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27a19501 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2e86f52a snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2f8837bc snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x31a9cc78 snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x32c53354 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33166c24 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x372baa2c snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38855730 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3995bfc2 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a429db0 snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e12e46b snd_hda_parse_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x416aae7a snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x41e4139f snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x44c6e260 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x46e8f520 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x46f9ce27 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48501bbb snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4989c985 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5003497e snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5415a94a snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x597f0819 snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c47cec3 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c76e222 snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ec67581 snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x606430e1 snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x61e19d69 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x62ba11f0 snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x64f79cb9 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6764ce38 snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6aad514f snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6c4664ae snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6db9d649 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f1a7c52 snd_hda_get_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f26d44c snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f8972b2 snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7066109a snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70e29784 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7319a280 snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75529588 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76a28762 snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76dc6871 hda_main_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x796d37c9 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x79ec3e3b snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7df28d0b snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7e67b51f snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fa1cda0 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fd5f723 snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x81b25da4 snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x82c19042 snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x83bc3ef4 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84a821a9 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x871a6e44 hda_extra_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x87939ec9 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x88234526 snd_hda_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8acba4d3 snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8d9fcde3 snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x952ff818 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95d29f9a snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95ebc7dd snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x97e7dcc8 snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x981c8a5e snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9af9cc3a snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b7b8ad7 snd_hda_codec_flush_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9c33b91c snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d449d81 snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9e186b04 snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa27c669f snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa48ee44e snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5360087 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6e31f72 snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa868abc6 snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa1d3276 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xac5088e8 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad4c6d70 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf578a8a query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb05a5701 snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb277e66b snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb2a29a0c snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb320513a snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb8ca65eb __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb9bcccbe snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd47a490 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd6be7c2 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe32c948 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbfba61f4 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc153e7aa snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc29715bd snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc3f8dd17 snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc4cca34e snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5243feb snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc554b546 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc88a7565 snd_hda_jack_detect_enable_callback +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc9b11d99 snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca3cd18a snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb6e91f0 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd211fd0a snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd24d758a snd_hda_parse_generic_codec +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd3605bd1 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd4000d8e snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9355066 snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9d0cf73 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9e18956 snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xddff4f87 snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe118de5d snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2d699af snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe5efc37e snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe76b5cb5 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8edf116 snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeaac29af snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xecfc1f54 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeedcc4b5 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf04de5d8 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3966b12 snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf554ad69 snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf6020cc4 snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf7d3dee0 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf7dfc596 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf8b97002 snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf8e5a67d snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfba0825a __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfbbaaff5 snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfcf83203 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfe612dc4 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x4a23e855 atmel_pcm_mmap +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x87231fa9 atmel_pcm_free +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0xa368b958 atmel_pcm_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0255024c snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06dceffb snd_soc_of_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06f0ffb1 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x08969e43 snd_soc_add_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x08c34590 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0bf967bf snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0ca806ff snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d34bcf6 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0f874ff0 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1047a84b snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x107ad792 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x11b61446 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x121b3120 snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x12c6752b snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x13cf4a9d snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x15bafacb snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x15f68e21 snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x192bdff8 snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1a9bb8eb snd_soc_lookup_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1cb3405f snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1d58881e snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1d6230d9 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1de58368 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1e6701a8 snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x25b20a88 snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x25b9c56f snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x266e89f7 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x26dde209 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2781a7ca snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x27b24de4 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x297a6f86 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2b3d1aeb snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2bdf26d9 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2cd8bf44 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2e8df36b snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31951b20 snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x32fdef81 snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3374f00d snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x34f27ab4 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x353671f4 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3635ccde dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3712a75a snd_soc_platform_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3857c202 snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3a940ff6 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3a9b46dc snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3ad9fea9 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b39cbcb snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c4843f2 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3caacdb3 devm_snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43a1631c snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x44fb8c74 snd_soc_add_card_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x47da1cc6 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x485d744a snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49a1587f snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49e7f057 snd_soc_get_dai_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4dc9ea3a snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f05b727 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x50b650c9 snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x50d46149 snd_soc_dapm_kcontrol_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5305cc31 snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x558ab8a7 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x55f03305 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x56381a72 snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x56cc3415 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x578c98d3 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x57ee1abb dapm_regulator_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a605ec3 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5cf1b6c3 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ee2c98d snd_soc_get_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x66127da4 snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x671021c0 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x689c135a snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x69dcf380 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6b3c6bfd snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x712b9628 dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7152b5bd snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x74c34f92 snd_soc_put_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78630444 devm_snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78747b7f snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7acbb4f6 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7b1f5810 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7d10d253 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x819c3f27 snd_soc_dpcm_be_set_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x84a23965 snd_soc_bytes_info +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x85323c41 snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x857d4c6b snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x85f7faed snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x877b23f4 snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x89931b2a snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8c1b03d0 snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ddbf79f snd_soc_add_codec_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e95eff7 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9006c09b snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x93dcc986 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x958d23a0 snd_soc_bytes_get +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x96ab6e7a snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9a928e31 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d4140ff snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa399931f snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa498f8ed snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa4c89cf9 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac0e7deb snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xacf26bb8 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xafa5e40b snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb2853ad9 snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb4cdaa7f snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb8d84dfc snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc45d9f5 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc0021697 dapm_clock_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc142473a snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc1e3197b snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc64af99b snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc73e90d1 snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc856c67f snd_soc_unregister_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcaf9b3a0 snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xccb3a272 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd2b72194 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd34232e2 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd354ba0e dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd56d09ed snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd6bd021f snd_soc_dpcm_be_get_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda5cd1ee snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc778c8b snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdd94f662 snd_soc_bytes_put +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xddef43f7 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe57b398d snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe8210039 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xef7c5c0f snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf195a8e3 dapm_mark_io_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf7752a5d snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf809ac57 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfcc19485 snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd8c0e61 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfdcf88a3 snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfe853f17 soc_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfed1f6f0 snd_soc_remove_platform +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_file_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 register_spu_syscalls +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sigset_from_compat +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x001f2d28 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x004dd5ba module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x006bc072 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0070ef14 __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x007c7481 alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0x009304b6 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00ffb2f3 gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x015c7b3f extcon_get_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x01601787 regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0x017fb525 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x017ff234 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x01d67d8f iommu_clear_tce +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0208c05a __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x021ebfda btree_update +EXPORT_SYMBOL_GPL vmlinux 0x0233d525 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x024689f8 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x025ebb45 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x026dd49e tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x02888638 devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x029a4c81 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x02b3dc59 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0x02c1459a serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0x02c846e2 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0x02d77d94 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x02d7e956 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x02db4965 inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x031461c7 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x032c0fc0 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x0334ec6f jump_label_rate_limit +EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x03419a12 pmac_i2c_get_controller +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0346198d rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x0347fd7d usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x036503c5 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x0385a008 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x03af7d67 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x03ba2e79 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x03bf1d5e gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x03cc9db0 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03fb04ba gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x040225c5 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x04062a9d bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0x0413e5b7 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x041aa1df pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x041d1d7a rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x043cbf81 irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x04422ae0 spi_master_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0443e353 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044bc1fd wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x048f008e sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x04b5549c __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04cda547 find_module +EXPORT_SYMBOL_GPL vmlinux 0x04df8fbc lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x053494cb tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0x054e374a power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x056541db led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x056b0063 sock_update_netprioidx +EXPORT_SYMBOL_GPL vmlinux 0x05805373 trace_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x058b582a vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x0599776c crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x05a03286 ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x05ca6995 devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x061dee59 btree_remove +EXPORT_SYMBOL_GPL vmlinux 0x06207ec1 tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x062b6980 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x06448e32 vtime_guest_exit +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06545c03 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x067e7c60 __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x06bb35c9 tpm_read +EXPORT_SYMBOL_GPL vmlinux 0x06be234c sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x06e1e32e skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x072edd79 call_srcu +EXPORT_SYMBOL_GPL vmlinux 0x0762403c edac_put_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x07664798 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x078b6c47 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07ccbfa9 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x0810c757 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x08157887 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x081b592b md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x082050e1 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x08515081 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x0876b64e sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x0883f0e5 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x088bfa7e cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x08bc0870 compat_put_timespec +EXPORT_SYMBOL_GPL vmlinux 0x08c59876 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x0919ccce md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x09376b10 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x09437748 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x09469482 kfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x09512921 extcon_find_cable_index +EXPORT_SYMBOL_GPL vmlinux 0x095341da subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0x0964d1c2 extcon_set_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x09716e7a regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x09721313 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x098e0351 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x0990d50f regulator_can_change_voltage +EXPORT_SYMBOL_GPL vmlinux 0x09be89d6 dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x09d54177 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x09e9121d platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0a5b5011 __mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x0a7e6274 mmc_send_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x0a9070c1 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x0a9fd3c5 gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x0aa05c83 pmac_low_i2c_lock +EXPORT_SYMBOL_GPL vmlinux 0x0adf454c ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x0b029fc8 serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b6a071d flush_fp_to_thread +EXPORT_SYMBOL_GPL vmlinux 0x0b6db6a5 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x0b80fad2 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x0ba0ce43 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0bae62b1 ktime_get_monotonic_offset +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c31b5af da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x0c3445da of_pci_msi_chip_remove +EXPORT_SYMBOL_GPL vmlinux 0x0c48a9b4 sdhci_pci_o2_resume +EXPORT_SYMBOL_GPL vmlinux 0x0c8d2ad3 sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x0c9ef7f8 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0cc22217 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x0cce0227 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x0ccea8b8 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x0ceb9293 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x0cfb258f pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x0d2ccd44 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x0d543502 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x0d77d3bb pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0daae84b devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0de06988 cpu_first_thread_of_core +EXPORT_SYMBOL_GPL vmlinux 0x0dea8c0d ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0x0df36925 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0x0e1f990c pwm_free +EXPORT_SYMBOL_GPL vmlinux 0x0e2f82c0 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x0e3e58f8 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x0e486e66 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0x0e8fa0c0 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x0e99d39b setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x0e9e8584 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x0eb368f0 pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0x0eb6b7be usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x0ec28a0e ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x0ecf823a static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x0ed9302e percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x0ef1207a blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0f1d2c9e arizona_dev_exit +EXPORT_SYMBOL_GPL vmlinux 0x0f461bdd spu_remove_dev_attr +EXPORT_SYMBOL_GPL vmlinux 0x0f751aea input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x0f769cbb input_class +EXPORT_SYMBOL_GPL vmlinux 0x0fddf94b class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0fe112dc of_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x10092b26 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x102404e6 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x1032672f usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x104ebe9f kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x10893581 ps3_mmio_region_init +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x10ee8c01 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x1114011d threads_shift +EXPORT_SYMBOL_GPL vmlinux 0x111c2774 iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x1125e5d5 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x113d2abc device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x11e59d1d eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x11f89036 tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0x1211e4bf ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x12155d9a crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x121cd964 of_pci_range_parser_one +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x1272b368 pcibios_find_pci_bus +EXPORT_SYMBOL_GPL vmlinux 0x12bcd0b1 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x12bf5bad ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x12c4010a thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x12e164c8 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x13051b80 pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0x130ff4a0 nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x1333d8b3 ps3av_video_mode2res +EXPORT_SYMBOL_GPL vmlinux 0x133a0db0 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x134a0138 iommu_domain_window_disable +EXPORT_SYMBOL_GPL vmlinux 0x13612125 balloon_devinfo_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1368e94d crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x13697d73 pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0x136a4ee6 btree_init +EXPORT_SYMBOL_GPL vmlinux 0x13789cc8 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x137e16ca ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x1390cc1a led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x13ad647f scatterwalk_bytes_sglen +EXPORT_SYMBOL_GPL vmlinux 0x13ce87e8 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0x13e5ea13 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x13f95794 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x1416c8d6 put_compat_timeval +EXPORT_SYMBOL_GPL vmlinux 0x1430ef66 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x14521606 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x145d3c1d dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x146de057 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x1485947d shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x1487427e clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x149eec33 ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x14a28dc6 tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x15026a32 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x153312c6 ps3_vuart_port_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1564b7b7 irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0x157d0e0e iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x157d8a76 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x15c1e60d irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x15c21e5e nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x15c80437 wm5110_patch +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x160b4abe nl_table +EXPORT_SYMBOL_GPL vmlinux 0x161c480d single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x163ea45a pmf_call_function +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x16512799 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x165d2f99 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0x16755c6d cgroup_taskset_cur_css +EXPORT_SYMBOL_GPL vmlinux 0x167b2539 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x1695c566 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x16a0b1e8 iommu_tce_clear_param_check +EXPORT_SYMBOL_GPL vmlinux 0x16a679de regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x16bb7e20 ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0x16d37bb5 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x1744898d pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x1753a32f hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0x176f40ed pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x17729015 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x1788372e noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x17910415 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x17c89188 srp_rport_add +EXPORT_SYMBOL_GPL vmlinux 0x17cf89a4 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x17ea401e tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x183765fa debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x183f9bf4 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x1848d7d7 __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x1853653c btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x18570516 pmac_i2c_xfer +EXPORT_SYMBOL_GPL vmlinux 0x185da2fb dma_buf_map_attachment +EXPORT_SYMBOL_GPL vmlinux 0x185f87d7 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0x1866cec2 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x187a4260 PageHeadHuge +EXPORT_SYMBOL_GPL vmlinux 0x187ca812 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x187e4913 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x188091d4 ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0x189f874d powernv_get_random_long +EXPORT_SYMBOL_GPL vmlinux 0x18ca6904 gpio_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x18cb8335 dma_buf_unmap_attachment +EXPORT_SYMBOL_GPL vmlinux 0x18dcea69 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x18e09f7c pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0x191204a9 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x1916d223 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x19264dd9 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x19269cf4 spu_management_ops +EXPORT_SYMBOL_GPL vmlinux 0x192bc897 iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x1943c43c sec_reg_update +EXPORT_SYMBOL_GPL vmlinux 0x194dd5f5 pkey_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x19568f33 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x19687b46 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0x197a8967 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19a58ff9 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x19b31344 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0x19b384a5 hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x19dd50e8 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x19fb9048 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x1a082d69 max77693_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x1a289687 napi_hash_del +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a5ee39b ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x1a8c5907 btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x1a9b6b3f xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x1aa24c31 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x1ab2aa2c perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x1abfa614 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x1ac62187 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x1ac717e3 ps3_os_area_get_rtc_diff +EXPORT_SYMBOL_GPL vmlinux 0x1acef7d2 pm_freezing +EXPORT_SYMBOL_GPL vmlinux 0x1b03ee52 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x1b602923 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x1b633576 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x1b634970 subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x1b7ce64f pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0x1b9664d1 __destroy_context +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1ba52e2b subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1bc4f3f2 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0x1bd06aab cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x1bd81269 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x1bf639df pcibios_add_pci_devices +EXPORT_SYMBOL_GPL vmlinux 0x1c10c351 pci_intx_mask_supported +EXPORT_SYMBOL_GPL vmlinux 0x1c28f2ba nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x1c4027ec spi_async +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c677b80 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x1c67f56b __percpu_ida_init +EXPORT_SYMBOL_GPL vmlinux 0x1c7d75d3 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c9b02ef blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0x1cdb2147 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x1cf82066 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x1d1034cc ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1d58ae14 lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x1d5fab33 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x1d66bdc2 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d7af2e4 regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x1daf42e5 iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0x1db58c00 debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0x1db652e9 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x1dd3e319 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0x1dfbcf4c mpic_msgr_disable +EXPORT_SYMBOL_GPL vmlinux 0x1e0f84a8 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x1e33b605 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e3dfbe1 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x1e5b03dc pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e866d81 debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0x1e9d746a sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x1eb1594f gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x1eb2e0ee edac_subsys +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ec377a4 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x1ec8a4c0 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x1ef01c21 tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x1ef1cb52 of_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x1ef7fa26 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1eff1a36 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x1f5313ec bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x1f5664d0 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x1f80bb59 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1fa6322c dbs_check_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1fa744c8 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fdb06eb bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1fe970cb ps3_io_irq_setup +EXPORT_SYMBOL_GPL vmlinux 0x20066e07 devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0x20106f39 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x2062d1ea pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x206fc6e7 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x20828285 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x2089da73 ps3_close_hv_device +EXPORT_SYMBOL_GPL vmlinux 0x208eff72 extcon_register_interest +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20f0ee98 spu_invalidate_slbs +EXPORT_SYMBOL_GPL vmlinux 0x20faf5ef thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x211850f5 htab_hash_mask +EXPORT_SYMBOL_GPL vmlinux 0x211b315e wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x214fc8b1 ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0x215aafb7 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x216389de crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x217af3bc cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x219f8ada inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x21ac8b77 iommu_group_get_by_id +EXPORT_SYMBOL_GPL vmlinux 0x21b3b91d extcon_get_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x21d079f6 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x21d36a03 kvm_hypercall +EXPORT_SYMBOL_GPL vmlinux 0x21f6303a driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x222e2f21 devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x225e3c58 devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x226b9203 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x22887f94 ata_sas_port_async_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22a25c56 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x22a67624 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x22b21e54 wait_for_tpm_stat +EXPORT_SYMBOL_GPL vmlinux 0x22bae3ae bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x22c73a59 __mmu_notifier_invalidate_range_end +EXPORT_SYMBOL_GPL vmlinux 0x22d1617e tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x231306f8 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x237cba67 pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x23847589 ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23fd45cf fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x24011e14 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x2424f3e0 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x24250930 tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0x24367576 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x244c0522 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x246ee873 blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x2473b656 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24aa6e89 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24b3029c pcibios_map_io_space +EXPORT_SYMBOL_GPL vmlinux 0x24b4dfed ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x24fd2295 subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x25113051 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x255376d4 gov_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x25b13063 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x25db7e6c serial8250_tx_dma +EXPORT_SYMBOL_GPL vmlinux 0x25e9c7dc blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0x26052f22 regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x2649e38d pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x26666286 pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x2676ee05 powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0x26778e35 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x26791679 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x26855ad9 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x268cfae3 debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0x269021e2 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x26a40544 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x26ad9f4b cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26c9f9e5 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x26cab760 of_irq_parse_and_map_pci +EXPORT_SYMBOL_GPL vmlinux 0x273fa293 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x2776affd blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x27a4f074 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x27c0c4be eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27df6a07 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27f92d3b ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x282ae48a regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x2863159d lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0x286d956f pmf_unregister_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x288a5fe9 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x28a65334 md_run +EXPORT_SYMBOL_GPL vmlinux 0x28a903c8 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x28afbfef dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x28e5a4ef wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x2934685a ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x2934e37f ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x29360bd6 regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0x29498ce9 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x29604cc0 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x29726881 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x298950df inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x298e1f47 regmap_fields_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x29e29004 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x29ea4afb tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x29fa094b da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0x2a0c1307 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x2a1623ae mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x2a1c7dbf sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a807e49 regmap_update_bits_check_async +EXPORT_SYMBOL_GPL vmlinux 0x2ad1ece4 zs_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2ad538de rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x2ae17f84 regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x2b1888c7 iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0x2b1be24f srp_attach_transport +EXPORT_SYMBOL_GPL vmlinux 0x2b20469c ps3_system_bus_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2b281b26 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x2b324c87 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x2b38bb08 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x2b5c303b smp_send_reschedule +EXPORT_SYMBOL_GPL vmlinux 0x2b7a6de8 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x2b85712d ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x2b8d90c0 kobj_completion_del_and_wait +EXPORT_SYMBOL_GPL vmlinux 0x2b9bc2b5 get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x2bf421db ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x2c180968 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c58f6a9 sec_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2c61251c sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x2c70e3fe blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c97f8a2 of_reconfig_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x2cb7007f sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x2cc3e675 pmac_i2c_close +EXPORT_SYMBOL_GPL vmlinux 0x2cd70db9 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x2cddb6c3 regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x2ce009c9 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2d17a0e1 cgroup_taskset_size +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d2250dc __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x2d3d3b80 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x2d3e01be sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d4e8c1b regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x2d4fdc9b usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d656d3f context_tracking_enabled +EXPORT_SYMBOL_GPL vmlinux 0x2d67b63c ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x2d6b8878 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x2d738dbf crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x2d756362 dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x2d8f2274 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x2d90da92 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x2da79a8c tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x2dba276a __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x2dc5a6d1 btree_last +EXPORT_SYMBOL_GPL vmlinux 0x2dc73ad9 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x2dd4319e rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0x2dd76c6c perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0x2dd8e04c platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x2ddd887e reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2e1da9fb probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e339d0e tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x2e39330e rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e6ff5e8 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x2e8ef06e rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0x2eab9862 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ec493ff alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0x2ecfeb82 of_node_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x2ee74bc6 nf_queue_entry_release_refs +EXPORT_SYMBOL_GPL vmlinux 0x2ee7ab9d mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x2f081498 da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f1e22d7 devm_pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x2f338870 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f726e2f pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x2fa26645 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x2faa9462 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x2fca317b pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x2fd8cba9 freeze_wake +EXPORT_SYMBOL_GPL vmlinux 0x2ffa8dfd device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x2ffb5ff7 btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x3006b6f5 of_pci_get_devfn +EXPORT_SYMBOL_GPL vmlinux 0x300b476e spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x30151a16 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x3018d432 vtime_common_account_irq_enter +EXPORT_SYMBOL_GPL vmlinux 0x302a1c05 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x302de9e7 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x303c6b3c dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x30518bba preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3053510d seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x305d951e extcon_set_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x307c8f04 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x308b733a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x30d038d6 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x30ecaeea iommu_attach_group +EXPORT_SYMBOL_GPL vmlinux 0x30fcfc9a spu_priv1_ops +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x311b78c2 ps3_get_spe_id +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x3156b892 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x31859993 of_irq_to_resource_table +EXPORT_SYMBOL_GPL vmlinux 0x318ed388 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x319f0731 regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x320dde38 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x321bdbb1 compat_get_timeval +EXPORT_SYMBOL_GPL vmlinux 0x3256ca45 gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x325cc7a1 ping_seq_fops +EXPORT_SYMBOL_GPL vmlinux 0x32617929 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x328971e7 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x328995b5 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x328a3d6b wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x3291e138 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x32965236 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x329bbbde timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32bded08 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32c80375 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x32cadb9e usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x32cafc8b srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x32ce8761 ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0x32d108ac iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x32dd9b30 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x32fd447a monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0x32ff5797 cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x3308a4dc crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x3309ea64 ps3av_audio_mute +EXPORT_SYMBOL_GPL vmlinux 0x3310bf11 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x3340baeb ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x33598ce6 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x335c4728 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x33672a1d crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x337786fa usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x33916aa9 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x339a68e5 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x33a94a45 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x33bbad80 regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x33f7ab15 get_compat_timespec +EXPORT_SYMBOL_GPL vmlinux 0x343cd130 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x345d0cda ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x3465fce6 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x34782b91 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x34938932 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x34e9d139 devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x34f4c497 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x354ece7d unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x358ff60f twl_get_hfclk_rate +EXPORT_SYMBOL_GPL vmlinux 0x35eeaa88 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x35f10f43 nfq_ct_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x35f165f1 devm_reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x35f1713c spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x35f2cdbb sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x35fd772d pmac_i2c_match_adapter +EXPORT_SYMBOL_GPL vmlinux 0x36075bb5 iommu_group_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x363a40cb ps3_system_bus_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x36495a5b tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0x3663a44e fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0x3675177e usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0x368f1fea static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36b42b5f fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x36c0ee5c ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x36c1dc8f usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x36f41240 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x36f63718 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0x372bcd49 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x374b9470 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x37863375 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x37a9dff9 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x37b48662 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x37bb0a14 iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0x3865caf8 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x38a83069 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x38a8d2aa devm_regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x38c48897 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x39099bfd eeh_add_device_tree_early +EXPORT_SYMBOL_GPL vmlinux 0x3909dcee i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x394cdcf8 __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0x397cbfa3 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x397ef9ad crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x3996de18 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x39f61c73 acop_handle_fault +EXPORT_SYMBOL_GPL vmlinux 0x39ffa060 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x3a0a4715 sysfs_get_dirent_ns +EXPORT_SYMBOL_GPL vmlinux 0x3a0bef2b each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x3a235541 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a5001cf sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a6a2fe5 tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0x3a76360e fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0x3a8ee29b fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3ad0e201 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x3ad82802 of_property_read_u32_index +EXPORT_SYMBOL_GPL vmlinux 0x3af18d05 rio_unlock_device +EXPORT_SYMBOL_GPL vmlinux 0x3b1c5afc ps3_vuart_irq_setup +EXPORT_SYMBOL_GPL vmlinux 0x3b4b215c rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x3b61f6a1 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x3bf4680c sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x3c148598 mdio_mux_init +EXPORT_SYMBOL_GPL vmlinux 0x3c3fee52 devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x3c534a40 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x3c5d07ce crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x3c60397c pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x3c7c36c5 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x3c8d28cc of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3cb989bd user_match +EXPORT_SYMBOL_GPL vmlinux 0x3cbd64dc devres_add +EXPORT_SYMBOL_GPL vmlinux 0x3cc54d7c sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x3ccffec8 of_irq_parse_one +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cf69baf slice_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d39b6ab fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x3d41f8c3 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3d48a4cd of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x3d8f8cf2 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x3da62dcc devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x3daf9e4b pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x3dc526a9 arizona_of_match +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3de9e00b dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0x3dfde3ac pmf_get_function +EXPORT_SYMBOL_GPL vmlinux 0x3e1dab20 thermal_generate_netlink_event +EXPORT_SYMBOL_GPL vmlinux 0x3e2e543d cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x3e2fa31f wm8997_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3e37e3e0 regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e8cdbdd inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x3e971b8d regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x3e9c5fb1 __mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x3eb66ec0 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x3eb793f6 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x3edc47f7 ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f0d5e89 serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x3f13c405 dma_buf_export_named +EXPORT_SYMBOL_GPL vmlinux 0x3f155a72 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x3f22d1fb iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x3f34838a task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0x3f5f43b6 spu_switch_notify +EXPORT_SYMBOL_GPL vmlinux 0x3f77026d ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x3f87b75b br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x3f984539 of_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x3fa23335 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x3fb14423 md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x3fc72d3d __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x3fdc1d4f dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x3fe1e5cc pci_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x3fef7431 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x3ffdb7b9 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3ffee312 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x4020e784 devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x4027ac64 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x402a094a spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x4033c1ee blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x40373483 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4045c494 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x4059a3ef __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x4065d168 pm_print_active_wakeup_sources +EXPORT_SYMBOL_GPL vmlinux 0x408fb8e3 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x40905d93 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x40a2e6ba restore_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0x40ac0d42 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40b2c682 irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x40c7f061 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40d59c9d sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x411ac95a rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x412fc0d0 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x4131245e __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x41395459 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0x41713e56 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x4185fe4e blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x41d81c5d of_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x41e3474e cpu_add_dev_attr +EXPORT_SYMBOL_GPL vmlinux 0x41e6e370 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x41ef8d38 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x42015842 device_register +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x42434680 usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x428bb398 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x42f210d2 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x430e5257 of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0x431e1907 of_property_read_string_helper +EXPORT_SYMBOL_GPL vmlinux 0x43254ab3 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4328478a spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x4373a7e4 ps3_free_mmio_region +EXPORT_SYMBOL_GPL vmlinux 0x437f70e8 dev_get_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x43a53735 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x43a7c52d blk_queue_bypass_end +EXPORT_SYMBOL_GPL vmlinux 0x43ace71a relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x43dcd9c9 usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x43e75616 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x44208136 __online_page_increment_counters +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4483da6e usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x448c6e09 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x44b4574d __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x44c45d8e xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x44d456a3 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x44e1a1f3 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x44faf5ad ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x45004498 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x450fb522 kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x454c15ae __smp_call_function_single +EXPORT_SYMBOL_GPL vmlinux 0x456f9dcd spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4595b30c sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45e7a1b3 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x460f7531 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x4644f3e1 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x4648d1a3 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x46491fa2 crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0x46628991 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x4667772f anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x46721d17 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x4688c96a usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x468bc55b thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x46cd4923 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x46d9f955 ps3_irq_plug_setup +EXPORT_SYMBOL_GPL vmlinux 0x46eaeca5 pmac_i2c_find_bus +EXPORT_SYMBOL_GPL vmlinux 0x47131b80 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x47340510 ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x4741db42 ps3av_set_audio_mode +EXPORT_SYMBOL_GPL vmlinux 0x47598b28 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x47730de2 devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x477a6ec6 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x478539aa thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47acddea ps3_sys_manager_set_wol +EXPORT_SYMBOL_GPL vmlinux 0x47adf9af scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x47b21077 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x47b2968e rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x47b9411b crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x47c7ee8b pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0x47ece37a da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x483642a7 netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x484faa6a crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4876893d wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x48c5c1e8 blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0x48d0df11 dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0x48e41c94 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x48e900b5 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x49314df2 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x49751994 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x49752c8e thermal_notify_framework +EXPORT_SYMBOL_GPL vmlinux 0x4982cf9e scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x498d293a trace_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49c136cd pmac_i2c_get_dev_addr +EXPORT_SYMBOL_GPL vmlinux 0x49c4e23e sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x49c9e143 dma_buf_vunmap +EXPORT_SYMBOL_GPL vmlinux 0x4a15d717 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x4a56148f usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x4a90160e bprintf +EXPORT_SYMBOL_GPL vmlinux 0x4aadc068 regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4ac5ec98 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x4ada24e5 blkg_prfill_stat +EXPORT_SYMBOL_GPL vmlinux 0x4ae6a314 ata_sas_port_async_resume +EXPORT_SYMBOL_GPL vmlinux 0x4af62f03 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x4af6e596 isa_bridge_pcidev +EXPORT_SYMBOL_GPL vmlinux 0x4affd08b put_compat_timespec +EXPORT_SYMBOL_GPL vmlinux 0x4b28a5c7 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4b34c0eb inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x4b54cedd i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x4b78a46f fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x4b790891 flush_altivec_to_thread +EXPORT_SYMBOL_GPL vmlinux 0x4b8de18f tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bca392f usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x4bd70ec0 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x4be613c0 list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0x4bef1e48 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x4c0a5e37 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x4c0c156c macio_find +EXPORT_SYMBOL_GPL vmlinux 0x4c18f773 ps3_os_area_set_rtc_diff +EXPORT_SYMBOL_GPL vmlinux 0x4c2d8b4e ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x4c602bf1 __blkg_release_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4c6cd1a9 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4cd25e86 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x4cd80b32 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x4cf8a4d1 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x4d13e82f scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x4d172ccb ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x4d537353 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x4d563a7d blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x4d882e5c fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x4d99fb3d device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x4d9d78b6 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x4dc424be ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4df7a456 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x4dfb1c15 pmac_i2c_get_bus_node +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e1274d2 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x4e242f5f pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x4e54359a pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x4e6080ec irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x4e79229b ps3_vuart_clear_rx_bytes +EXPORT_SYMBOL_GPL vmlinux 0x4e951b49 spu_set_profile_private_kref +EXPORT_SYMBOL_GPL vmlinux 0x4e980d4f extcon_unregister_interest +EXPORT_SYMBOL_GPL vmlinux 0x4eb78164 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x4ebd78d9 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x4ec7b8e3 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x4ed35b86 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f020dee public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x4f14e912 key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x4f2f1c51 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x4f4c2558 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x4f65421a pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x4f93a686 eeh_add_sysfs_files +EXPORT_SYMBOL_GPL vmlinux 0x4f965b28 smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x4fc5f323 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x4fcd2a24 verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4feabf73 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x4fef3679 cpu_remove_dev_attr +EXPORT_SYMBOL_GPL vmlinux 0x4ff5fe2e crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x5015f51d usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x501d1ece ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x50399307 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x5039e577 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x5044980b led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x50601122 of_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x50632ed8 devres_release +EXPORT_SYMBOL_GPL vmlinux 0x506691f1 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x50762b8d rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x5079a2cd crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x509cc6ad ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x50c74229 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50fa7a9d wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x514b7cea tpm_write +EXPORT_SYMBOL_GPL vmlinux 0x5166bbc4 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x51846493 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x518d83a8 bmp085_detect +EXPORT_SYMBOL_GPL vmlinux 0x51b65a26 rtc_lock +EXPORT_SYMBOL_GPL vmlinux 0x51be3f13 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x51d97b1f sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x51da0feb device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x5205e64d disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x520d3e4f __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL vmlinux 0x5229c2f8 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x522f538b tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x525cebaf ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x5265e66e crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x5269dcbe bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x527d5d72 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x52813763 devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x52c00d54 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x52e0cf4d debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x52e4052e i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x52eb682d pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x52f6006d pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x5303f547 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x5327ee63 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x5335dd11 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x5351ea8e lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x537aa59a max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x5384a1ba inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x538953fb usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x5396b49c swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x53a94909 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x53c21b14 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x54060f88 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x5417e944 css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x54215db5 visitor64 +EXPORT_SYMBOL_GPL vmlinux 0x5435a44d i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x546c5565 ppc_tb_freq +EXPORT_SYMBOL_GPL vmlinux 0x54740eb7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x547b4d0a da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x54854728 pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54971dc5 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x54a28d1b debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x54a3256c rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x54a8ed56 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x54e310f2 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x54f8685b srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x552d777f skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x553021a8 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x5537c12f get_device +EXPORT_SYMBOL_GPL vmlinux 0x553b555c ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x55417b47 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x554f10a1 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x556e9013 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x55759feb pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x5588879e kvmppc_entry_trampoline +EXPORT_SYMBOL_GPL vmlinux 0x558f4396 ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x55bb3875 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x55d0a891 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x55dd46c8 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x55f4d194 cgroup_taskset_first +EXPORT_SYMBOL_GPL vmlinux 0x561e4b77 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x5621229c pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x562d90bf shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x563c1899 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x566b3365 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x56886b19 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x568fb4dc led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x5692386f gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x569455e7 tpm_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0x569aac47 __online_page_free +EXPORT_SYMBOL_GPL vmlinux 0x56be1566 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x56d697ce cpu_up +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56f90eb5 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x57231f45 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x57332a10 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x574166f9 key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x5776484f __online_page_set_limits +EXPORT_SYMBOL_GPL vmlinux 0x5796907d pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57a572be devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x57b24d6e mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x57b862ad disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x57d6169c dma_buf_begin_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x57e388f5 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x57e8d081 fb_sys_read +EXPORT_SYMBOL_GPL vmlinux 0x5800ef63 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x5807560e usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x58119ccb xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x58413099 ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x5841c4a6 arizona_set_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x58479440 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x58869044 devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x589e4569 syscon_regmap_lookup_by_pdevname +EXPORT_SYMBOL_GPL vmlinux 0x58b37b42 __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x58bed31f sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x58e61c05 gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x592cff56 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x5947abbe max77693_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x595048a9 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x595460f8 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x59785d95 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x59867c1c list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0x599eb796 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x59a2e4af input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x59b02bab raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x59b2adbf input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x59c3edd9 unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0x59de0d64 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x59e2743e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x5a0cc6af blk_queue_bypass_start +EXPORT_SYMBOL_GPL vmlinux 0x5a154929 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x5a3f7146 fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a8f3b69 of_irq_parse_raw +EXPORT_SYMBOL_GPL vmlinux 0x5ac85aff dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x5af07040 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x5af513a9 tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x5af93a64 crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x5b0524c8 da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x5b1fba8d wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x5b26f3e5 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x5b41cc0a ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x5b4e379c of_prop_next_u32 +EXPORT_SYMBOL_GPL vmlinux 0x5b69f9da proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0x5b736a22 drop_cop +EXPORT_SYMBOL_GPL vmlinux 0x5b74ca61 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x5b8997b8 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5ba04cc3 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x5bc97355 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x5be0759d devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x5c246d76 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x5c263059 inhibit_secondary_onlining +EXPORT_SYMBOL_GPL vmlinux 0x5c37a9aa ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x5c40c142 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0x5c5b9db9 tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x5c6662f3 __add_pages +EXPORT_SYMBOL_GPL vmlinux 0x5c8374a6 __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x5c89c04a ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x5c9d06fc pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x5ca49f82 tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x5ca93699 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x5cabdced dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5cc091cf devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5cd2fc84 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x5cf8a882 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x5d03b20d securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x5d115bcd call_filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x5d12e48f input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x5d1b7905 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x5d539bc8 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x5d6d28f9 devm_rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d77952d hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x5d874392 sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0x5dbdfc19 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x5e16cc3a wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x5e34e998 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x5e4e7fb1 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0x5e51cd74 swiotlb_nr_tbl +EXPORT_SYMBOL_GPL vmlinux 0x5e6efff1 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5e769986 ps3_os_area_get_av_multi_out +EXPORT_SYMBOL_GPL vmlinux 0x5ea8f7f7 sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x5ec4c197 lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x5ecb93f3 ps3_vuart_read +EXPORT_SYMBOL_GPL vmlinux 0x5ee7542e reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x5ef87f8c inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f25d8eb ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x5f30fa09 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5f419491 gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x5f5d072f inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5f79a98b __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x5f8936b9 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x5f8f9005 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x5fac468f __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x5fb8411a led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x5fc6a915 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x5fc6f6ca ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x60036bef agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x60065de6 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x60467b06 btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x6060fb1a usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x6094685f wm8997_irq +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x60aba129 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x60bd8233 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0x6120949b alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x615cda41 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x6175b38f regmap_field_write +EXPORT_SYMBOL_GPL vmlinux 0x617b730c spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x6183ff15 sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x61849319 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x61a38d05 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x61a90c54 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x61d19d14 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x61d55054 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x61e4d4f8 need_load_eval +EXPORT_SYMBOL_GPL vmlinux 0x61e92738 led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0x620ad734 pmf_put_function +EXPORT_SYMBOL_GPL vmlinux 0x620ec455 devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x623663b7 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x6237c9f9 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x623caa8c palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0x624cef6a ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x627e38ed register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x6299e790 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x62ae0649 skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x62f45fc6 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x62f50d78 iommu_present +EXPORT_SYMBOL_GPL vmlinux 0x63149762 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x6318757f mdio_mux_uninit +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x6343a7a6 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x63716a9d sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x63860418 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x63885b2b ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x6390efda of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x6392ceb7 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x63ac6a1e skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x63be4853 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x63befd1b tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x63f15e9c devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x641e6a27 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x6444789b swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x6454ee3c uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0x645981ac crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x64630872 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x6482111c tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x649c0805 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x64c580b9 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x64c7a32c sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x6504a293 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x6504d031 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0x655cdcc7 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x6596652b usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x65a83a02 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x65aaca18 cgroup_add_cftypes +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65c666fc blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x65c7a4ff devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65e8a7aa pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662a0c3f x509_get_sig_params +EXPORT_SYMBOL_GPL vmlinux 0x667a812c ps3av_set_video_mode +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66aee3ae kobj_completion_release +EXPORT_SYMBOL_GPL vmlinux 0x66afb53b unix_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x66b615ca ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66dc82ec usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x66fa6c21 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x6717f300 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x674e13e1 public_key_destroy +EXPORT_SYMBOL_GPL vmlinux 0x675dc030 md_stop +EXPORT_SYMBOL_GPL vmlinux 0x6777a356 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67a3e1e8 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x67b73d33 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x67c73c7c regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x67ce11f2 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x67e570a4 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x682683fb __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x684888a2 regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0x687934e9 gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x68842c6c regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x689baae3 dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x68b9333e zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x68c41e4a driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x68ec9019 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x68f365f5 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x6921aa34 compat_put_timeval +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x692bc57c spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x69367c4a regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x693d7ed4 digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0x693edb56 list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x69790ef6 __init_new_context +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x697cbbb4 threads_per_core +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x69a6b197 rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0x69b00816 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x69df30d0 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69f29167 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x6a033ca8 pmac_i2c_adapter_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x6a1733eb iommu_group_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6a1d4c08 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x6a300d46 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x6a4d6794 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x6a4f1c25 fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a67a515 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x6a6cafd2 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x6a749beb pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x6a83b4fc ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6a8f2085 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x6acb8d84 ppc64_caches +EXPORT_SYMBOL_GPL vmlinux 0x6aeb20e3 irq_create_direct_mapping +EXPORT_SYMBOL_GPL vmlinux 0x6aee6e1f inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x6b014432 cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0x6b02a74f uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x6b0f6fe8 rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b5bc411 cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6b6a8f8c vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x6b85a528 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6b9d5eb5 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x6bbe832d device_del +EXPORT_SYMBOL_GPL vmlinux 0x6bd7c59d usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x6bddd652 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x6bfe3e86 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x6c1b09ab gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x6c2cc3fb _submit_bh +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6ca02a94 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cb351a8 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x6cd21997 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x6cd4ea62 wm5110_irq +EXPORT_SYMBOL_GPL vmlinux 0x6ce0a2a7 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x6d0016c5 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x6d15fc2c sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x6d2785b5 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d9c3dba arizona_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x6d9e5425 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x6dbf7e01 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x6deb1f2d crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x6df8f4cd pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x6e00f13e regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0x6e04a077 usb_bind_phy +EXPORT_SYMBOL_GPL vmlinux 0x6e1dc04a spu_init_channels +EXPORT_SYMBOL_GPL vmlinux 0x6e2091ab pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x6e358b9a ref_module +EXPORT_SYMBOL_GPL vmlinux 0x6e379526 kernstart_addr +EXPORT_SYMBOL_GPL vmlinux 0x6e7943ec iommu_group_id +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6e970f0b extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6e9817ce usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x6eb078f2 sysfs_remove_device_from_node +EXPORT_SYMBOL_GPL vmlinux 0x6ec540e1 thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0x6ed8a657 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x6edfdc46 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f5d738c ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x6f63a02e device_add +EXPORT_SYMBOL_GPL vmlinux 0x6f826dbe usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x6fc144d3 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x6fdbf7f2 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x701cdc29 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x70327ad2 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7054c8da unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70d50b8f devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x70ff929c mpic_subsys +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x710e9c40 pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x712c6465 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x718bebfc pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x71930ed3 of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x71a8b5bf fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71afcf8e rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x71b1ddc6 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x71c82bf0 ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x71feb8f2 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x723374f8 pci_bus_sem +EXPORT_SYMBOL_GPL vmlinux 0x7237159d ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x723b9232 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x7272adb8 dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7292fe20 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x72ace781 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x72b7fc6b pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0x72bc253b tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x72d42e71 class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x72e33c2c iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x7317d57f tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x731dc9f8 netlink_alloc_skb +EXPORT_SYMBOL_GPL vmlinux 0x73686611 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x736d7038 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x737125c8 usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x739aa1a1 pmac_i2c_setmode +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73c2554f __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x73c7c36b usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x73c832f2 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73dbe1fb register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x73dd6371 regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0x741e17b2 regmap_update_bits_async +EXPORT_SYMBOL_GPL vmlinux 0x7422c95e gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x7430b465 tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74521e3d key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x74628570 context_tracking +EXPORT_SYMBOL_GPL vmlinux 0x7462e0dd fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x7464ea38 dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7493af24 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74a11551 dma_buf_detach +EXPORT_SYMBOL_GPL vmlinux 0x74a20bb7 unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x74b00002 __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x750c5e94 list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0x75133f6e visitor128 +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x75371942 regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x75654636 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x75760b33 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x75787815 pci_restore_ats_state +EXPORT_SYMBOL_GPL vmlinux 0x757b49d2 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0x758a782e blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x758b43c1 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x759eb7af class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x75a52757 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x75d17d0b pmac_i2c_open +EXPORT_SYMBOL_GPL vmlinux 0x75d88029 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x75e6e037 hash_page +EXPORT_SYMBOL_GPL vmlinux 0x75e9f236 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x75f2a044 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x75fe5126 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x761259ba dma_buf_attach +EXPORT_SYMBOL_GPL vmlinux 0x762065f1 devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x7634d167 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x765ace2b bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x769c6e5f wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x76ac41fd rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x76b5659c regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x76c42543 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x76c9a4cc sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x76d07d6e gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x770bb74a debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x7729cbdd task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x77430496 ps3_vuart_port_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x77491961 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x7765c3fa usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x7776074f debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x777c9c54 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x77aaf8b7 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x77b76016 ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x77ccdfe9 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x77d54d93 iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x77f2a195 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x78062fe4 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x780bb742 use_mm +EXPORT_SYMBOL_GPL vmlinux 0x782de239 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x78373978 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0x78700f91 of_irq_parse_pci +EXPORT_SYMBOL_GPL vmlinux 0x787c882b lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x78f60371 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x793d9773 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x794ff3b4 pmf_register_irq_client +EXPORT_SYMBOL_GPL vmlinux 0x7955a494 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x7956846b debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x7960bd52 ps3_open_hv_device +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x798c18d5 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x7992827d blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x79980729 spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0x799b424b sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x79a80d09 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x79a816b8 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x79b41bfb inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x79b998e8 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x79cecdeb ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0x79e8a62d ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x7a2dd2be crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x7a71ea53 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7ace8ac7 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b08b2cd srp_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b0f2127 find_linux_pte_or_hugepte +EXPORT_SYMBOL_GPL vmlinux 0x7b15a156 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b221e9d ps3_system_bus_device_register +EXPORT_SYMBOL_GPL vmlinux 0x7b292d19 static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0x7b570ed0 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x7b9747ae ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x7bce3c98 ps3_vuart_cancel_async +EXPORT_SYMBOL_GPL vmlinux 0x7bd705d5 vtime_guest_enter +EXPORT_SYMBOL_GPL vmlinux 0x7be99141 list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0x7bf4ba4e ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x7c346357 pkey_algo +EXPORT_SYMBOL_GPL vmlinux 0x7c37bc89 pseries_ioei_notifier_list +EXPORT_SYMBOL_GPL vmlinux 0x7c53855b regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x7c6a4a88 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0x7c92e650 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7c9f3e69 __tracepoint_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x7cc1b7fd max77693_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7cc7de1c x509_check_signature +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7cd9b930 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x7cdbe1d9 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x7ce5b92a gpiod_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d1949b7 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x7d36e534 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7d397cc7 gpiod_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d473942 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x7d4b6b09 cgroup_taskset_next +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d7f8b9d ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x7da63d72 tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc066fb get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x7dc1fe53 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x7dd48f4c spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x7dd544e7 watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0x7de06c39 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x7e17ba7b klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x7e226241 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x7e40ef8f regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e681a3d bmp085_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x7ea1a2bc probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x7eb4f797 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x7ede8288 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x7ef3107b pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x7f008202 btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7f043159 sk_unattached_filter_create +EXPORT_SYMBOL_GPL vmlinux 0x7f4415eb i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x7f52c522 ps3av_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x7f6a56b0 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7f7bc710 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x7f850e04 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7f96e01c rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x7fa4b4a2 of_pci_parse_bus_range +EXPORT_SYMBOL_GPL vmlinux 0x7fcb44b1 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x80068b8e pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0x801eb5f8 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x801f6940 pwm_enable +EXPORT_SYMBOL_GPL vmlinux 0x802709c0 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x803abf74 pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0x8046fccf ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x80507f72 ps3av_audio_mute_analog +EXPORT_SYMBOL_GPL vmlinux 0x80590a9a crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0x80668cd9 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80d3927f __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x810fab1d irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x81143d3e ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x8114b8d6 md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x8140842a gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x815cf104 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x815de18b srp_rport_del +EXPORT_SYMBOL_GPL vmlinux 0x819f2a92 rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x81b25f34 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x81b4615b rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x81e5bae9 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x81f45c82 of_usb_get_maximum_speed +EXPORT_SYMBOL_GPL vmlinux 0x821a59ff device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x823d5a5e wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x823f875b regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x8243bf01 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x82667cd1 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x82772545 pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x8285c2bd platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82b0b0d5 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x82c884b2 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x82ce5c51 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x830a84ea ps3_gpu_mutex +EXPORT_SYMBOL_GPL vmlinux 0x832a3934 usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x8332be7e skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x834616bb sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x836d61d0 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x83759927 iommu_flush_tce +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x83ba170b pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0x83bda4bf invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x83d51081 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x83dae014 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x83efd4d9 ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0x8420bccd cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x842b44b1 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x843071a1 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x84375cac ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x843a1b43 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x844aad40 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x846a541e __put_net +EXPORT_SYMBOL_GPL vmlinux 0x8473d6d3 devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x847ab4c0 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x8487a2b6 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x848b7b77 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x84d3731b inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0x84d3ebab crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x84d4473b __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x84d92ca5 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x84d9decf kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x84dfc5c4 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x84e6ea7c ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x84fb2f37 pmf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x851f5393 devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x8524dda0 fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0x852e568d of_get_nand_ecc_mode +EXPORT_SYMBOL_GPL vmlinux 0x853f9b57 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x854c5820 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x8551c332 iommu_tce_build +EXPORT_SYMBOL_GPL vmlinux 0x8557b6a9 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x855beebb set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x85a52623 ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85dd907a vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x85fe5d0f usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x86370dc2 device_store_int +EXPORT_SYMBOL_GPL vmlinux 0x86389c77 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x863d5c48 tcp_fetch_timewait_stamp +EXPORT_SYMBOL_GPL vmlinux 0x86505b76 gpio_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x866a0ac5 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x866b9687 wm8997_aod +EXPORT_SYMBOL_GPL vmlinux 0x8677b92a cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a8cf2e __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x86cfd4e8 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x86d5ad21 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86fe01be cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x8702e548 process_srcu +EXPORT_SYMBOL_GPL vmlinux 0x873ea422 __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x87a9723f pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x87bb4e32 of_usb_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x87bcdfcc usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x87e0baf7 arizona_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x87e25e3e spu_handle_mm_fault +EXPORT_SYMBOL_GPL vmlinux 0x87ef0cb4 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x87ff1943 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x8804af3d usb_anchor_suspend_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x885c203a sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x887418c0 pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x887e51a0 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x8882bac4 ping_proc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8898fb23 pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b5647c trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x88b6c263 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x88d7bd25 mmput +EXPORT_SYMBOL_GPL vmlinux 0x88ee69a3 fb_sys_write +EXPORT_SYMBOL_GPL vmlinux 0x88f6152f usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x89201bc9 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89485687 iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x896bea67 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x89775f2d devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x898cecf5 dma_buf_kunmap +EXPORT_SYMBOL_GPL vmlinux 0x899b2909 rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x89a4c910 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x89ab6829 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x89b7fb5c vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89c71f5e pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x89efafae napi_by_id +EXPORT_SYMBOL_GPL vmlinux 0x8a2b14ba wm5110_aod +EXPORT_SYMBOL_GPL vmlinux 0x8a5a125f pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x8a6df63f inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x8a6f48f6 dma_buf_fd +EXPORT_SYMBOL_GPL vmlinux 0x8a8346da __class_create +EXPORT_SYMBOL_GPL vmlinux 0x8ab042a4 device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ae152b5 of_get_nand_bus_width +EXPORT_SYMBOL_GPL vmlinux 0x8aea552f cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x8b1f00bd elv_register +EXPORT_SYMBOL_GPL vmlinux 0x8b34920e dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x8b42b416 pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x8b492f57 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8b5202d9 pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x8b70e8ea __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x8b72ab88 css_next_descendant_post +EXPORT_SYMBOL_GPL vmlinux 0x8b9134ad input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x8bcfb144 powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c0e8ef6 device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x8c2f792d iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0x8c3d2607 bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0x8c4b0c65 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x8c5a36bf scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x8c67142e usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x8c8b4aa3 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x8c8e7b85 devm_spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x8c9ee31c powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0x8ca23f99 bmp085_probe +EXPORT_SYMBOL_GPL vmlinux 0x8cb117a2 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x8cc97a28 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x8cd5c2f0 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x8ce7bec2 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x8cea765f memalloc_socks +EXPORT_SYMBOL_GPL vmlinux 0x8d0cfc31 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x8d22bb58 iommu_group_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8d36c088 look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0x8d3b8faf tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x8d4fbdfb bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x8d4ffb12 ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x8d7ab33f iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x8d80076d iommu_tce_put_param_check +EXPORT_SYMBOL_GPL vmlinux 0x8d85367f smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x8d9b84a1 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x8dd6d806 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x8dfd5821 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x8e0e80a6 fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8e7b2b5f hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x8e8f7768 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x8e9c7933 gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x8eaebaf2 sdhci_pci_o2_probe_slot +EXPORT_SYMBOL_GPL vmlinux 0x8ee0eed9 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x8eef4bcd inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x8ef92b7b raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x8f404a65 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f8a365c ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x8f8dfd55 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x8f8e53b9 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8f902a2c gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x8fc47597 generic_access_phys +EXPORT_SYMBOL_GPL vmlinux 0x8fd840cd percpu_ida_for_each_free +EXPORT_SYMBOL_GPL vmlinux 0x8fdb3e70 pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0x90255b81 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x9028d7c4 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x902a8da5 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x903748a9 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x903eeb95 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x9040078f led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x905e01d6 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90705b7f syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x9077d5ea usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x908679c4 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x908d9335 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90b2a02d cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x90c4ce89 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x90e41871 user_read +EXPORT_SYMBOL_GPL vmlinux 0x90f6a7d4 rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x9114ddea __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x91286982 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9128b5d0 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x9139d331 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x91768ce5 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9187461b __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91937bd3 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x91afb7b9 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x91e8e31b rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x920cc389 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x9217b9ef sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x92334f50 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x92502133 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x928f865a rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92db8f68 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x92f586a2 of_get_named_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x930ed9b9 of_usb_get_dr_mode +EXPORT_SYMBOL_GPL vmlinux 0x933ef893 __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x934d3b00 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x937ed694 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x9387ddcb sec_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x939e1d73 serial8250_rx_dma +EXPORT_SYMBOL_GPL vmlinux 0x93b36c09 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x93bc9312 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x93cfdb28 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x940685ca kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x941251ff put_device +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x942a62e0 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x942b06b3 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x942f8215 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x94483b79 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x948b8e08 irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x949f7342 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94d972b7 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x95032013 irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x951dcfe5 device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x95278b47 ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x95382df6 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x9593afb8 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x959ab93f platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x95f7ddb3 irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x96007944 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0x9606a9c2 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x962dc6ad regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x96513f62 ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x965a78d5 threads_core_mask +EXPORT_SYMBOL_GPL vmlinux 0x96705193 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x968b6428 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x96c2cfae crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x96c858ab regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x96eff984 ping_close +EXPORT_SYMBOL_GPL vmlinux 0x97240d40 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x972fd446 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x9730c462 gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x973116cc thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0x97311b0f flush_vsx_to_thread +EXPORT_SYMBOL_GPL vmlinux 0x9735f061 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x97bfdf2e get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x97c520a9 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x97db6c43 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x97f96a53 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x98024332 devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9813df5d get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x9823e931 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x982cd486 __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x9831b772 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9846c9fd dma_buf_get +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x986fa2b6 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9884ab94 rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x98a02a70 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x98a24f0e rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x98a75e15 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x98bd768c extcon_update_state +EXPORT_SYMBOL_GPL vmlinux 0x98fa1e20 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x98fe383e eeh_dev_check_failure +EXPORT_SYMBOL_GPL vmlinux 0x9912b57b uninhibit_secondary_onlining +EXPORT_SYMBOL_GPL vmlinux 0x99201ea9 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x9957cd30 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x996b1089 nfq_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x9987e6e9 opal_get_sensor_data +EXPORT_SYMBOL_GPL vmlinux 0x99a6455f regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x99e28f10 __tracepoint_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x99e826c0 da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0x99e9bc61 device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x99f0a4af rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0x99f9e56a cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a49d937 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x9a89dbf7 lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x9aa193f3 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x9aad6540 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9aca444b get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x9acc5876 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9b09d4d2 irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0x9b14fcc0 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x9b261032 fuse_get_req_for_background +EXPORT_SYMBOL_GPL vmlinux 0x9b3dd749 clockevents_unbind +EXPORT_SYMBOL_GPL vmlinux 0x9b3fa5c7 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x9b537831 srp_release_transport +EXPORT_SYMBOL_GPL vmlinux 0x9b5d2b17 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x9b606a23 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x9ba2bb2b gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x9bd73d5d cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9c1da217 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x9c3de1dd regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x9c407833 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x9cc0cc7a ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x9cc4f70a register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9cc61884 rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x9cd33a23 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x9ce95b20 of_extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x9d0c98ef dma_buf_kunmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x9d138533 percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x9d4240ea regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0x9d860c0d usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x9d981e99 regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x9dace355 blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0x9dba5339 dma_buf_put +EXPORT_SYMBOL_GPL vmlinux 0x9dc4f70b elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9ddc3764 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x9ded29de smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x9df0ac49 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x9e021746 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x9e0981db cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x9e174a64 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x9e210554 iommu_put_tce_user_mode +EXPORT_SYMBOL_GPL vmlinux 0x9e35c14f free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x9e48b241 of_pci_find_msi_chip_by_node +EXPORT_SYMBOL_GPL vmlinux 0x9e54e3c9 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x9e8cb067 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x9e9a6024 spu_add_dev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x9ebf082d put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x9ed36ad6 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ed62813 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x9ee68011 pmf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x9f0664bf dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x9f1a7d75 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x9f1a895a tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0x9f3f98e1 of_get_nand_on_flash_bbt +EXPORT_SYMBOL_GPL vmlinux 0x9fab7c77 ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9fb1859a dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fd64e28 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x9fedb268 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x9ff4d64f device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xa03c8364 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xa072daf0 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xa077d24e fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa084003e gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0xa0a27fff pci_address_to_pio +EXPORT_SYMBOL_GPL vmlinux 0xa0f4e27a sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xa0f7ab69 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xa0fdf4c6 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0xa0ff9a22 alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xa1030cb4 rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0xa12d929d desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0xa1ea1b57 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xa1ec769a irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0xa2219a0c usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa225a8d1 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa251aef0 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0xa258cf3b ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa2719da8 __mmu_notifier_invalidate_range_start +EXPORT_SYMBOL_GPL vmlinux 0xa28c0e2f pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0xa296a2c0 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xa29e5e54 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xa2be8f06 pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0xa2f717b4 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xa307a159 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xa3330952 pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0xa3682cdc regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa389a49a profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0xa391e80a __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0xa397f8a8 of_scan_bus +EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3a1d10c regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xa3a2d9af walk_system_ram_range +EXPORT_SYMBOL_GPL vmlinux 0xa3b46d30 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0xa3c36816 rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xa3d1c5fc irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa3f237ee __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xa3fa56d2 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xa3ff49b4 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xa4055214 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0xa409d586 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xa40da183 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa4237494 bmp085_remove +EXPORT_SYMBOL_GPL vmlinux 0xa440e452 skb_gso_transport_seglen +EXPORT_SYMBOL_GPL vmlinux 0xa4709ef9 system_trusted_keyring +EXPORT_SYMBOL_GPL vmlinux 0xa47b1639 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4874173 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xa4c74f14 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa4ea04ee of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0xa4f0651b ping_hash +EXPORT_SYMBOL_GPL vmlinux 0xa504b458 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xa5384d8e usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xa56ca855 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xa56cd7d8 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL_GPL vmlinux 0xa5d910ac tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5efe460 usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xa5f389eb of_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xa6066060 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa617dd7b __tracepoint_map +EXPORT_SYMBOL_GPL vmlinux 0xa625110d kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0xa6745159 regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xa6a0a273 max77693_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa6a3ab4e simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0xa6b21ef2 dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0xa6c1af0c tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xa6c58ec3 sec_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa6fb29d5 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0xa700d41e usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xa724257f init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xa75312bc call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0xa75811d0 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xa77d2d33 regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0xa78a73ee cpu_remove_dev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xa7a4705c hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xa7ad93c5 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xa7bbaa25 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xa7c607c1 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0xa7c7c1ee spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xa7d0247c usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa84c975a debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa859e4a7 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xa85d00a6 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xa86b923a securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xa89893e2 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xa8aa38d7 pwm_disable +EXPORT_SYMBOL_GPL vmlinux 0xa8d591b7 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xa8f92b9e __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xa91b5a4d regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0xa925e478 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0xa93271a5 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0xa93f73cb ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xa9409f0c usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xa95389d7 wm8997_patch +EXPORT_SYMBOL_GPL vmlinux 0xa9612fbe __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xa97e11cc skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xa980af16 RSA_public_key_algorithm +EXPORT_SYMBOL_GPL vmlinux 0xa98cdb36 ps3_get_firmware_version +EXPORT_SYMBOL_GPL vmlinux 0xa98f5a7e regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xa9955c66 mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0xa9a41c30 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xa9a6781a dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0xa9ab4faa rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xa9adc087 sdhci_pci_o2_probe +EXPORT_SYMBOL_GPL vmlinux 0xa9cb0250 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xa9ce341e usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0xa9e18049 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9f4a3b7 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0xa9fb74a2 of_device_is_stdout_path +EXPORT_SYMBOL_GPL vmlinux 0xa9fe8445 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xaa0fd0c4 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xaa467a15 ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0xaa7630ea ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0xaa860553 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xaa8dadf9 ps3_mmio_region_create +EXPORT_SYMBOL_GPL vmlinux 0xaa8ff62d pcibios_unmap_io_space +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaaa987d9 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0xaab5351a sk_unattached_filter_destroy +EXPORT_SYMBOL_GPL vmlinux 0xaac81565 udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0xaade464d regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xaaf51a72 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xab005c18 of_regulator_match +EXPORT_SYMBOL_GPL vmlinux 0xab14110a stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xab2b243d ps3_irq_plug_destroy +EXPORT_SYMBOL_GPL vmlinux 0xab486031 pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0xab5b0d6a evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0xab6ab602 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab7ab6e3 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xab959f72 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0xaba68c90 cgroup_is_descendant +EXPORT_SYMBOL_GPL vmlinux 0xabbf3407 cpu_add_dev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xabdf1791 pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0xabe1233d register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xac0d5b47 tcp_peer_is_proven +EXPORT_SYMBOL_GPL vmlinux 0xac3d1ace ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xac401d59 get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0xac76a68c pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xac7e8b32 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xacca737e irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0xace14fc2 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xace99342 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xacfe997e powerpc_firmware_features +EXPORT_SYMBOL_GPL vmlinux 0xad039c54 mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xad1471c6 sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0xad6d9a12 spu_remove_dev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xad7edbbe sdhci_pci_o2_fujin2_pci_init +EXPORT_SYMBOL_GPL vmlinux 0xadbb3d8c sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xade45f8c md_new_event +EXPORT_SYMBOL_GPL vmlinux 0xadf5947a usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae0733d2 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xae264214 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xae269898 pcibios_finish_adding_to_bus +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae792a59 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae8f76fc pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0xaecf8c9f pmf_do_irq +EXPORT_SYMBOL_GPL vmlinux 0xaedf7567 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xaeeed02c default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xaef1efcc usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xaf16fa10 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0xaf5b4974 usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0xaf73f253 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xaf75e84e kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xaf8e3610 fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0xaf907626 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0xaf9d8700 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xafc3e1fe skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0xaff3603f blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xb00d3929 usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0xb04a8d0c ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0xb04f4b46 filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0xb07ef2a0 arizona_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xb0a3de89 pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0d1656c gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0xb0d78187 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xb0da596e inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xb0f2c79b shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xb104f645 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb12a61a6 fb_ddc_read +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb147f459 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1bed25d dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0xb1c0c1c2 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xb1cbe6b8 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb1e950d2 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb21acc2a anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb2404c0d device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xb2758d78 cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xb28c9309 pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0xb2bc14df adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb2bd8cdd crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb32270de usb_string +EXPORT_SYMBOL_GPL vmlinux 0xb3320fb6 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xb347bb2c work_busy +EXPORT_SYMBOL_GPL vmlinux 0xb349f6c1 device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0xb3c8ae4f kobj_completion_init +EXPORT_SYMBOL_GPL vmlinux 0xb3fed574 regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0xb4125e98 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xb43e1bd4 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xb471ce17 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0xb47d0259 tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0xb4875bae led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xb4979e00 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4dffedf pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xb4e73c55 inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb4eb6a43 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xb4fffa70 ps3_sys_manager_register_ops +EXPORT_SYMBOL_GPL vmlinux 0xb51b48dd hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb546f52b crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xb561fc59 pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0xb5740a04 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xb5806b71 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5a0e11e lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0xb5aa10af atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb5b61c62 of_reset_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0xb5c8edf4 btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0xb5cb8145 hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xb5e7485d iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb5f2fc99 scom_find_parent +EXPORT_SYMBOL_GPL vmlinux 0xb5fdc277 spu_setup_kernel_slbs +EXPORT_SYMBOL_GPL vmlinux 0xb60b5707 of_i8042_aux_irq +EXPORT_SYMBOL_GPL vmlinux 0xb60ecedb balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb63405d4 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xb6340d80 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xb643c250 xics_wake_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb64cd235 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xb66a5312 rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0xb67b2219 cm_suspend_again +EXPORT_SYMBOL_GPL vmlinux 0xb68afd4a usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0xb68ef860 tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0xb69d2d36 posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0xb6aae22a regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6bc007a spu_sys_callback +EXPORT_SYMBOL_GPL vmlinux 0xb6c635af wm5110_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb6d14393 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xb6de2cb6 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0xb6e751ce regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0xb6f16737 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb6f82100 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xb719464f __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0xb72060fe iommu_release_ownership +EXPORT_SYMBOL_GPL vmlinux 0xb77d1dc9 arizona_clk32k_enable +EXPORT_SYMBOL_GPL vmlinux 0xb7b40756 device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xb7f32ca4 pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb81b1716 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xb81faee1 register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xb844d56a blkg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb8457e43 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xb84b1aae ps3_event_receive_port_setup +EXPORT_SYMBOL_GPL vmlinux 0xb8861e53 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0xb897224d usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0xb8ed0e32 rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xb8fa5876 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb90b32d2 set_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0xb915dd0a md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0xb918783a dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0xb92f239b raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xb938daa5 remove_phb_dynamic +EXPORT_SYMBOL_GPL vmlinux 0xb9436df4 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0xb94de068 percpu_ida_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb950bd39 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xb96e7286 ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0xb983a778 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9ce129e attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9d0b338 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xba00a13b pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0xba158769 rtas_cancel_event_scan +EXPORT_SYMBOL_GPL vmlinux 0xba22546a devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xba461b35 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xba661696 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xba66e5aa tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0xba78c2fb rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xba9915c5 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0xba9d3b82 cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0xbaa77541 spu_associate_mm +EXPORT_SYMBOL_GPL vmlinux 0xbaaee648 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xbabab0e4 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xbac14244 ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0xbaeb650c device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xbafce84e blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb0c0d49 alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0xbb117119 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0xbb1a21a8 __giveup_vsx +EXPORT_SYMBOL_GPL vmlinux 0xbb2a9e9c i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xbb2e0b16 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xbb49aafe spu_64k_pages_available +EXPORT_SYMBOL_GPL vmlinux 0xbb54af10 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xbb66d775 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xbb885753 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0xbb8f13bf ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xbba5029c pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0xbbb66fac aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xbbc6fca4 percpu_ida_free_tags +EXPORT_SYMBOL_GPL vmlinux 0xbbcea51b crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xbbdb64ff kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0xbc08d1f4 blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbc2fa80c power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0xbc39ae95 rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xbc47fd49 __tracepoint_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0xbc60add4 sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0xbc77d4a8 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0xbc915fd5 regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xbcac6160 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbcb3087c blkg_stat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0xbcdd5b99 iommu_group_set_name +EXPORT_SYMBOL_GPL vmlinux 0xbcf20bc9 debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xbd1f8273 iommu_take_ownership +EXPORT_SYMBOL_GPL vmlinux 0xbd5572bf blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xbd5cb8b9 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbdaf5686 get_compat_timeval +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe3506d0 balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0xbe96dfd8 of_reconfig_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbea5ff1e static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0xbebaa0a6 of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xbec15b5a irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xbeda04df rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xbeed5475 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf0bb58e clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0xbf15de3a devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf247575 subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xbf319846 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf4b1a10 wm5102_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xbf6f38c6 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0xbf8c9e29 css_rightmost_descendant +EXPORT_SYMBOL_GPL vmlinux 0xbfa70f6b pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0xbfae9887 devm_regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xbfb51c1d dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0xbfd9ad00 device_create +EXPORT_SYMBOL_GPL vmlinux 0xbffb0052 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xc007fbba register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xc01649d6 cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0xc02bec3c usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc0460bc7 bio_trim +EXPORT_SYMBOL_GPL vmlinux 0xc061367e mpic_msgr_get +EXPORT_SYMBOL_GPL vmlinux 0xc064d8db shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xc065a455 cpu_core_index_of_thread +EXPORT_SYMBOL_GPL vmlinux 0xc075934c register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc08701c0 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xc0908562 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xc09ea2ac rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0xc0a7bd62 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0xc0a96c00 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xc0b1c2e5 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0d01bc0 percpu_ref_cancel_init +EXPORT_SYMBOL_GPL vmlinux 0xc0d26387 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc0e563a0 iommu_clear_tces_and_put_pages +EXPORT_SYMBOL_GPL vmlinux 0xc11b45c6 gpiod_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc13012eb ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xc1369514 pmac_low_i2c_unlock +EXPORT_SYMBOL_GPL vmlinux 0xc13a9d98 ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0xc1635f0d __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc1647dcc hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xc16de595 regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc180d30f fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0xc185e7c9 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xc1ebe26c pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xc20c298a __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0xc21caabe relay_open +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc25ca1f1 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xc276b141 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2997688 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0xc2c25342 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc2df02fc irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0xc3041b4c show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xc3056908 cpufreq_governor_dbs +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc355cabd __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xc35b4a46 dma_buf_kmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc375bb4b pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc388d861 uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc391a108 rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0xc3c6c9cc hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xc3e0b1b0 devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0xc3e25957 __module_address +EXPORT_SYMBOL_GPL vmlinux 0xc3e656c0 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xc3e9cb24 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xc3eb933c regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0xc3feb587 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xc407a1d4 gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0xc41a8548 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc454fc7b twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc471c67a twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc472fc00 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0xc47d5742 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xc47f5c4d ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc482906c dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4a16a61 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xc4db992e kvmppc_load_up_fpu +EXPORT_SYMBOL_GPL vmlinux 0xc507f3f5 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0xc53fd313 rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0xc55c64db eeh_add_device_tree_late +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc5819074 regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xc587a763 tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xc590195b inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xc5c34dbe get_kernel_page +EXPORT_SYMBOL_GPL vmlinux 0xc5d83f0c ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xc5e5fe9f da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xc5eed95d usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xc5f7f8ab kvmppc_h_put_tce +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc63a1109 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xc653a67c irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc66b77b1 iommu_group_set_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xc66c2311 ps3_vuart_irq_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc680b387 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0xc685254d ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0xc68aa252 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xc690866c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xc69b3ccf vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc69df68c __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xc6a9eab3 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xc6b6019b pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xc6dede3a usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xc6e25e99 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xc6e2f79a percpu_ida_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc713f649 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc743485d ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xc7737547 rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7c6391c mpi_set_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc7e13902 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xc7e39bca ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc7ff5062 alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0xc820fc9e ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0xc8210f9b debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0xc84c32c5 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc8540843 sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0xc85cbf9e debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xc8668b94 kick_process +EXPORT_SYMBOL_GPL vmlinux 0xc87a8e2f __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8d576e0 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xc90432cb percpu_ida_free +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9641b48 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0xc97d1140 cpufreq_cooling_get_level +EXPORT_SYMBOL_GPL vmlinux 0xc98a0aa4 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xc98a4399 pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0xc99b5802 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xc9a3fc8e ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0xc9c39f87 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0xc9cb193b usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0xc9cfa97f of_pci_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0xc9de027a devm_regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca2ebf1e cm_notify_event +EXPORT_SYMBOL_GPL vmlinux 0xca5e896e pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xca791482 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca8162a7 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca9517a6 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xcaa50885 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcabe0dc3 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xcad4ad08 pmf_do_functions +EXPORT_SYMBOL_GPL vmlinux 0xcb038c62 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xcb0a1e20 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xcb15eee9 sdhci_pci_get_data +EXPORT_SYMBOL_GPL vmlinux 0xcb2df633 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0xcb32441b shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0xcb4255d5 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0xcb469d2b ddebug_add_module +EXPORT_SYMBOL_GPL vmlinux 0xcb621da9 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xcb9d2709 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xcba0cfb9 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcba21a2a crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xcbc6ec26 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0xcbeda9b1 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbf43675 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0xcc198a28 wakeup_source_prepare +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc3128e7 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0xcc3749a4 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0xcc439813 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xcc7984fd iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xcc85fcb6 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0xcc8c4990 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xcccb8626 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xcccec1d2 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccea2f35 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xcd2f004f da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0xcd55f1c3 regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xcd767276 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcdadebd3 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdf81037 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xce0aa663 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xce0b9b59 max77693_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xce1a87af rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0xce2dd3c0 thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0xce3d10d8 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xce46e140 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0xce84cc29 crypto_lookup_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xce8edc34 spu_switch_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xce8fbea3 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xceae4ab7 rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xceaf2b42 rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xceb1f126 mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0xceba8ee8 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xcf06c3fe sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xcf08c8fd usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xcf0e2943 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xcf3a51ad pmac_i2c_get_adapter +EXPORT_SYMBOL_GPL vmlinux 0xcf54ea93 async_unregister_domain +EXPORT_SYMBOL_GPL vmlinux 0xcf6b9ea0 dma_buf_vmap +EXPORT_SYMBOL_GPL vmlinux 0xcf73a34d cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xcf7efdeb replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0xcf8782f4 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xcfa39eca __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfe0e139 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xcff44cae pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xd029396e usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0624226 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd076a62d attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd0788035 rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0xd08cca4a inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xd0bfafb9 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0ce029c ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xd0da14d8 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xd0e9aa1f mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd0f237cf xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0xd11e174c regmap_update_bits_check +EXPORT_SYMBOL_GPL vmlinux 0xd139c916 get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0xd13cc428 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xd14bc4d9 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xd1660ad6 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd19b55f6 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0xd1a418d8 regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1c115fe ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd20d23c7 arizona_clk32k_disable +EXPORT_SYMBOL_GPL vmlinux 0xd216b819 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd22a17b3 use_cop +EXPORT_SYMBOL_GPL vmlinux 0xd2467a72 uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0xd26ba29a wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0xd271588e __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xd273a9a9 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2a3d4b4 spi_master_resume +EXPORT_SYMBOL_GPL vmlinux 0xd2b087ea ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xd2c45ea4 of_pci_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0xd31c6dc9 serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0xd32bbc65 usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd3454a75 pmf_find_function +EXPORT_SYMBOL_GPL vmlinux 0xd3545990 dma_buf_end_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0xd3700dcc adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xd386641e device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xd386d31a power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xd38b46e0 da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd43d21e5 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd455cd2a cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd49e108e sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0xd4a30f49 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4c25c92 irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0xd4e74cd2 ping_err +EXPORT_SYMBOL_GPL vmlinux 0xd50eb396 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xd54e9727 thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd55ad93b iommu_group_get_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xd55d5e69 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xd582227a leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xd585fb5c subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xd59b2da6 edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0xd5adb2a7 cbe_spu_info +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5c36c40 __tracepoint_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0xd5ce2294 rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0xd600c2a4 cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd677f857 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xd6815251 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xd6a4496a device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xd6a73500 device_reset +EXPORT_SYMBOL_GPL vmlinux 0xd6d3f21c crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xd6f174bc platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd6ff18b4 of_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd72f6158 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xd731f78a __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xd74e90ac pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd77f7914 sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0xd7853cb2 proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0xd7a3f70b tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xd7b2f8a7 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd8263870 mmu_slb_size +EXPORT_SYMBOL_GPL vmlinux 0xd8264c65 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xd828a786 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0xd8290c63 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xd8395069 ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0xd8498f4d ps3av_mode_cs_info +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd85e158e blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd87fc0a0 usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0xd8e20411 task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xd8f6fbb0 __netpoll_free_async +EXPORT_SYMBOL_GPL vmlinux 0xd9100595 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xd91515f6 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0xd942d353 ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0xd948a168 of_get_regulator_init_data +EXPORT_SYMBOL_GPL vmlinux 0xd9497b3c ps3_os_area_flash_register +EXPORT_SYMBOL_GPL vmlinux 0xd969ce17 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xd979ae0f rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xd980ce18 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0xd9cde59d unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xd9de9fef iommu_domain_get_attr +EXPORT_SYMBOL_GPL vmlinux 0xd9eaa834 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xd9f3763b regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xda07da05 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xda097122 __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0xda0a4d22 mpic_msgr_enable +EXPORT_SYMBOL_GPL vmlinux 0xda0a9d49 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xda11909e css_next_child +EXPORT_SYMBOL_GPL vmlinux 0xda270edc crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xda38ba5d led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xda44cb37 setup_charger_manager +EXPORT_SYMBOL_GPL vmlinux 0xda5dd48a realmode_pfn_to_page +EXPORT_SYMBOL_GPL vmlinux 0xda6ed5ad pci_reset_bridge_secondary_bus +EXPORT_SYMBOL_GPL vmlinux 0xda76aae7 blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0xdabd0e64 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xdad53054 class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xdae0bf91 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0xdaec531f __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb0ac13b ps3_compare_firmware_version +EXPORT_SYMBOL_GPL vmlinux 0xdb148524 blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0xdb3d4f97 dma_buf_mmap +EXPORT_SYMBOL_GPL vmlinux 0xdb3d9f29 sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdb3fdc06 regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0xdb4d4738 sec_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xdb738bb2 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xdb78cba5 subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xdb7dec85 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xdb843124 of_pci_msi_chip_add +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdba80fc1 of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0xdbaa9d35 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0xdbb9fa27 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0xdbc12d1f watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0xdbd63b55 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc18b225 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0xdc1e15f1 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xdc3da975 regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xdc4d2f6f irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xdc4eacc1 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc8b5168 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xdc937864 spu_switch_event_register +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9ce6ea ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdc9fc799 blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xdcb598a4 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xdcb97ab6 tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0xdccd5ef3 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xdceee0b0 dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xdcf46a93 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xdcf52d14 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xdd043eea ps3av_get_auto_mode +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd391eff profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd5b23f4 wm8400_block_read +EXPORT_SYMBOL_GPL vmlinux 0xdd642ee6 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xdd729424 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0xdd993ed7 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xddcadf16 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xddf842c6 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xde0bff1c pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xde16c9d5 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0xde2afba5 uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0xde4261cc regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xde6ed9ad usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0xde864a3c device_move +EXPORT_SYMBOL_GPL vmlinux 0xde9d89ef pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xdebb127a extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf2c2a84 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdf4748f4 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xdf5c7240 rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xdf5f26fd evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0xdf6dc741 rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xdf6ea908 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0xdf87922f iommu_domain_window_enable +EXPORT_SYMBOL_GPL vmlinux 0xdf94dda5 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0xdfa93cef scom_controller +EXPORT_SYMBOL_GPL vmlinux 0xdfb5344c blkg_lookup_create +EXPORT_SYMBOL_GPL vmlinux 0xdfdf9c10 __tracepoint_unmap +EXPORT_SYMBOL_GPL vmlinux 0xdff563f3 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xdff6873b subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe011f817 ps3flash_bounce_buffer +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe036b3e9 mpic_msgr_put +EXPORT_SYMBOL_GPL vmlinux 0xe0505375 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xe059e82d ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe098ff56 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xe0b462b9 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0xe0d8fc17 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xe0e10642 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0xe0e8af2b bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0xe0f6de3f crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xe1775ee7 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0xe198782f regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe19fc092 ps3fb_videomemory +EXPORT_SYMBOL_GPL vmlinux 0xe1a7b447 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe1bd6c99 rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0xe1c759f7 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xe1d79cb1 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xe1edf6f6 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xe1fd2ddd usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xe2206408 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xe22e6e12 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xe241628c devres_get +EXPORT_SYMBOL_GPL vmlinux 0xe278a61c sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xe27e67ac blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xe2ba12fb spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xe2bfeb21 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe2c4b476 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xe2c7c793 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xe2cb31d4 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xe2d7fae7 uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe30b5a3f dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xe30cb060 perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0xe31ad3f0 pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xe32d1ec7 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0xe3370850 key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0xe35fa6e6 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0xe3624f44 list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0xe37676a4 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xe37df2b7 pcibios_remove_pci_devices +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe3b4d56e pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xe3d7750e btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe4329ad6 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe46a3efe rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xe47e37f7 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xe4963db3 max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xe4aacb97 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xe4c031f8 btree_merge +EXPORT_SYMBOL_GPL vmlinux 0xe4c4b28f gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xe4d1ba5d rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xe4fac0d6 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xe4ff32a3 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0xe504171f wakeup_source_drop +EXPORT_SYMBOL_GPL vmlinux 0xe5062dc5 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xe51c040f register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xe5363fd4 powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0xe54c3af1 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xe5540302 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xe55dd851 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xe5729b31 wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe59816dc usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0xe5a37442 regmap_fields_write +EXPORT_SYMBOL_GPL vmlinux 0xe5a526ed mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0xe5b68a5c alarm_init +EXPORT_SYMBOL_GPL vmlinux 0xe5e8ce31 regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0xe5feb00c vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xe61c0087 extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0xe6246155 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xe63c13ee ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe66992ae napi_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xe66a5eb8 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xe671f33c pmac_i2c_get_channel +EXPORT_SYMBOL_GPL vmlinux 0xe679aa94 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0xe6852567 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xe68645ca __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xe6c68334 ddebug_remove_module +EXPORT_SYMBOL_GPL vmlinux 0xe6c7f967 dma_buf_kmap +EXPORT_SYMBOL_GPL vmlinux 0xe6c920a4 split_page +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6e25222 devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xe6ff110a spu_add_dev_attr +EXPORT_SYMBOL_GPL vmlinux 0xe703fca8 usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xe7112e53 alarm_start +EXPORT_SYMBOL_GPL vmlinux 0xe721d138 irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0xe741b478 regmap_field_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xe74a4b77 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe7a37ef5 __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xe7a93780 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xe7e4dcc3 vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0xe7ec155d swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe85c55e7 btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8835371 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0xe89bd243 ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xe8b6ddde key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0xe8cc6dd1 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xe8e9f99c of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0xe9090d46 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xe91c2c22 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xe9377da0 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe94c1393 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xe9506579 iommu_tce_direction +EXPORT_SYMBOL_GPL vmlinux 0xe966cc8f wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xe9733246 rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xe978c639 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe9912023 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xe9a72e34 user_update +EXPORT_SYMBOL_GPL vmlinux 0xe9dfc42a tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0xe9e3f3d1 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea1df264 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xea39a662 wm8400_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xea3b5577 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea52d670 regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xea59e19e relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xea628c20 bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0xea695ed2 kvmppc_load_up_altivec +EXPORT_SYMBOL_GPL vmlinux 0xea782849 rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0xea7c679c sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xeaa14401 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xeacc3619 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xeaf70dcb stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xeb074f2c watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xeb095e4a irq_create_strict_mappings +EXPORT_SYMBOL_GPL vmlinux 0xeb1c3628 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xeb1c8098 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xeb5a49c5 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xeb5f4cdd wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xeb7f4f67 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xeb8ae736 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xebec57c4 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xebf585cf debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xebfd543e kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec1c186d of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec3963bb device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xec3fe2f8 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xec48d7ad simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xec601f41 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xec929ee5 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xecb071e0 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xecc20dcc debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xecc6b23e pwm_can_sleep +EXPORT_SYMBOL_GPL vmlinux 0xecd73b36 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xecfe4a14 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xed116f1d ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0xed1fe90e balloon_mapping_alloc +EXPORT_SYMBOL_GPL vmlinux 0xed99bf82 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xeda0da5b __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xedd49930 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xede1ac6c usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0xede7eb2f mmu_psize_defs +EXPORT_SYMBOL_GPL vmlinux 0xee1b7d4d sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xee1bad21 get_slice_psize +EXPORT_SYMBOL_GPL vmlinux 0xee4199bf perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xee59c935 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xee6b71c4 syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0xee72abd0 sysfs_add_device_to_node +EXPORT_SYMBOL_GPL vmlinux 0xee7b9955 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xee891cc0 srp_tmo_valid +EXPORT_SYMBOL_GPL vmlinux 0xee8da4ca kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xee92da0a crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xeed3916c force_sig_info +EXPORT_SYMBOL_GPL vmlinux 0xeed8b3fe dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xeee019da regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0xeee6e537 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xeee79453 dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0xeee94b9f pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0xeef9bcee attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xeefec3aa device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xef063e9e sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0xef0d4513 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xef21b8ad crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0xef2243a2 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0xef516272 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0xef52526b regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xef696510 spu_get_profile_private_kref +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef7ce61e blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xef8cb6ec adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xefafe84a pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0xefb6aee3 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0xefbe439c spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0xefc92b1c usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0xefe17850 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xefed4c61 public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0xeff8400b __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xeffa6b8f __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xf0211395 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xf0315845 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0xf039b2cd pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0xf045aa8a ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xf053bfb4 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xf06c4e2b ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xf083ef80 crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0xf0865950 unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0xf08f3eff rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0xf0960ad4 reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xf098dd15 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xf0c7bf49 rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0xf0f5dbc2 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xf117e90c inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xf158f170 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xf15f2c54 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xf1644e20 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1a62b6f of_i8042_kbd_irq +EXPORT_SYMBOL_GPL vmlinux 0xf1abf72b ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1c67e61 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf20e62b4 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf249ebde pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0xf24eeeb3 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xf2599156 pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0xf263f860 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xf27977e2 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xf29fd38c debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xf2a8963c __netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0xf2c27495 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xf2f077cc pkey_id_type_name +EXPORT_SYMBOL_GPL vmlinux 0xf2f46fc1 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xf2f9eed1 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30135f6 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf31e59f8 netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0xf37637f2 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0xf38c194f unregister_spu_syscalls +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b5a9b1 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xf3c3093e init_phb_dynamic +EXPORT_SYMBOL_GPL vmlinux 0xf3ceb171 tps80031_ext_power_req_config +EXPORT_SYMBOL_GPL vmlinux 0xf3e0dfd4 ps3_vuart_read_async +EXPORT_SYMBOL_GPL vmlinux 0xf3eab991 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0xf3fe7364 rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0xf40c3c56 crypto_lookup_aead +EXPORT_SYMBOL_GPL vmlinux 0xf44226d2 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xf4594703 cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0xf461e325 spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0xf469c705 ps3_io_irq_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4bcbc87 dev_hard_start_xmit +EXPORT_SYMBOL_GPL vmlinux 0xf4e1148a fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0xf4e99414 rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf51be6fe dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf5303b2f simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xf53567e6 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf54a7e89 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf5525f33 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf58ca2d9 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xf5960875 ping_proc_register +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5ad0df2 ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0xf5b44a28 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xf5bcf1b2 __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0xf5c0277e usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0xf5e6b0fc arizona_dev_init +EXPORT_SYMBOL_GPL vmlinux 0xf5f218a9 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0xf5fef4e3 wm5110_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf618235a fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0xf619ea47 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xf61a161f power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xf630e7fb power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xf632fe5f led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xf6460a38 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0xf664b08f rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0xf683fa62 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xf68b1314 irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0xf6a9fc7f usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf71b1380 of_get_dma_window +EXPORT_SYMBOL_GPL vmlinux 0xf7237c14 scom_map_device +EXPORT_SYMBOL_GPL vmlinux 0xf74f9e05 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xf74ff565 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xf7608cdf __tracepoint_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0xf7759baf transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xf7d3fa08 sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0xf816c866 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf837e0eb unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xf83f5cbb md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0xf8609b89 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8820ba6 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xf89dee7d blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xf8a10776 cpufreq_table_validate_and_show +EXPORT_SYMBOL_GPL vmlinux 0xf8dbfbf4 extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf8e398fc memstart_addr +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8fe3d0b kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0xf9154bff inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf932015f __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf972eb5a __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf97553c3 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xf9933c03 reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d2611b alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf9dea128 tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf9ea6a5e ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa097d4b scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa212e92 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xfa8326b7 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xfa872b04 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xfa901b31 compat_get_timespec +EXPORT_SYMBOL_GPL vmlinux 0xfa966bb4 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xfaab22f2 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xfab60503 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xfae2bca2 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xfb038fea pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xfb1fffdc usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xfb2e54f7 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb4ba164 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xfb525dfc pmac_i2c_get_type +EXPORT_SYMBOL_GPL vmlinux 0xfb52b77d __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0xfb556111 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb8abec2 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xfb9f1591 gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0xfba28d14 da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0xfbb457a0 pmf_call_one +EXPORT_SYMBOL_GPL vmlinux 0xfbb60a0f regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0xfbb77292 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0xfbbedefd of_prop_next_string +EXPORT_SYMBOL_GPL vmlinux 0xfbe725ed regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0xfbfcdc2b ps3_sys_manager_get_wol +EXPORT_SYMBOL_GPL vmlinux 0xfbfcf870 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xfc02ef43 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc1ddad5 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xfc201b66 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0xfc2b75f8 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xfc3e4c8f pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0xfc46658f crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xfc49db96 usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0xfc530e00 yield_to +EXPORT_SYMBOL_GPL vmlinux 0xfc5c1817 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xfc690f61 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xfc72d987 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0xfc73db5c wm5102_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xfcb11a46 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xfcc39818 lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0xfcc4518f da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xfcd09f47 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfcee379d trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0xfcffb4e1 pmac_i2c_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xfd014b27 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfd116d4f usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xfd363fd6 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0xfd63137e inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xfd6c4ecc ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xfd7760f1 smu_get_ofdev +EXPORT_SYMBOL_GPL vmlinux 0xfd889e19 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xfd8b8693 arizona_of_get_type +EXPORT_SYMBOL_GPL vmlinux 0xfd98c561 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xfdb69758 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xfdc0acf9 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xfdc4fa04 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xfdde9f1a pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0xfe0484a5 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xfe0d9628 tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0xfe14207b regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0xfe1fa0db of_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0xfe2ef8f1 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xfe44e946 crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0xfe592e51 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xfe6bdd48 iommu_domain_set_attr +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfea2a6b7 __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xfeaed126 __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0xfeb612a8 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xfecd596c od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0xfece2a4d trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xfefd8e67 ps3_vuart_write +EXPORT_SYMBOL_GPL vmlinux 0xfeff031c skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xff0dacff ps3av_video_mute +EXPORT_SYMBOL_GPL vmlinux 0xff0dbb8b rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff65f8d6 devm_usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0xffa86d97 pwm_config +EXPORT_SYMBOL_GPL vmlinux 0xffb0eace mddev_init +EXPORT_SYMBOL_GPL vmlinux 0xffe558d8 pwm_set_polarity +EXPORT_SYMBOL_GPL vmlinux 0xffe5b7a9 cpci_hp_register_controller --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/powerpc/powerpc64-smp.compiler +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/powerpc/powerpc64-smp.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2 --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/powerpc/powerpc64-smp.modules +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/powerpc/powerpc64-smp.modules @@ -0,0 +1,3667 @@ +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250_dw +8250_pci +8255 +8255_pci +8390 +842 +88pm800 +88pm805 +88pm80x +88pm80x_onkey +88pm860x_battery +88pm860x_bl +88pm860x_charger +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +ac97_bus +acard-ahci +acecad +acenic +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5380 +ad5398 +ad5421 +ad5446 +ad5449 +ad5504 +ad5624r_spi +ad5686 +ad5755 +ad5764 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7266 +ad7280a +ad7291 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7791 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad7923 +ad799x +ad8366 +ad9523 +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +addi_apci_035 +addi_apci_1032 +addi_apci_1500 +addi_apci_1516 +addi_apci_1564 +addi_apci_16xx +addi_apci_2032 +addi_apci_2200 +addi_apci_3501 +addi_apci_3xxx +addi_watchdog +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adf4350 +adfs +adi +adis16060 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1275 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +ads1015 +ads7828 +ads7846 +ads7871 +ad_sigma_delta +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adv7180 +adv_pci1710 +adv_pci1723 +adv_pci1724 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +af_802154 +af9013 +af9033 +af_alg +affs +af_key +af_packet_diag +af-rxrpc +ah4 +ah6 +aha152x_cs +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +airport +ak8975 +algif_hash +algif_skcipher +ali-ircc +alim7101_wdt +alphatrack +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +alx +amc6821 +amd5536udc +amd8111e +amd8111_edac +amd8131_edac +amd-rng +amplc_dio200_common +amplc_dio200_pci +amplc_pc236 +amplc_pci224 +amplc_pci230 +amplc_pci263 +ams369fg06 +analog +anatop-regulator +ansi_cprng +anubis +aoe +apbps2 +apds9300 +apds9802als +apds990x +appledisplay +appletalk +appletouch +applicom +ar5523 +ar7part +arc4 +arc_emac +arcmsr +arcnet +arc_ps2 +arc-rawmode +arc-rimi +arc_uart +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as3711_bl +as3711-regulator +as3722-regulator +as5011 +asc7621 +asix +ast +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at86rf230 +at91_ether +ata_piix +atbm8830 +aten +ath +ath10k_core +ath10k_pci +ath3k +ath5k +ath6kl_core +ath6kl_sdio +ath6kl_usb +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atm +atmel +atmel_cs +atmel_mxt_ts +atmel_pci +atmel-ssc +atmtcp +atp870u +atxp1 +atyfb +au0828 +au8522_common +au8522_decoder +au8522_dig +aufs +auo_k1900fb +auo_k1901fb +auo_k190x +auo-pixcir-ts +authenc +authencesn +auth_rpcgss +autofs4 +avma1_cs +avm_cs +avmfritz +ax25 +ax88179_178a +axnet_cs +b1 +b1dma +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcma-hcd +bcm_wimax +bd6107 +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluecard_cs +bluetooth +bma150 +bma180 +bmp085-i2c +bmp085-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpa10x +bpck +bpctl_mod +bpqether +bq2415x_charger +bq24190_charger +bq24735-charger +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bsr +bt3c_cs +bt878 +btcoexist +btcx-risc +btmrvl +btmrvl_sdio +btmtk_usb +btrfs +btsdio +bttv +btuart_cs +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +bw-qcam +bypass +c4 +c67x00 +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +caif_usb +caif_virtio +camellia_generic +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5_generic +cast6_generic +cast_common +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcimdas +cb_pcimdda +cc770 +cc770_isa +cc770_platform +c_can +c_can_pci +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +cedusb +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chipreg +chnl_net +cifs +ci_hdrc +ci_hdrc_imx +ci_hdrc_msm +ci_hdrc_pci +cirrus +cirrusfb +clearpad_tm1217 +clip +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm36651 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmac +cmdlinepart +cmtp +cnic +cobra +coda +com20020 +com20020_cs +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +configfs +contec_pci_dio +cordic +core +cp210x +cpc925_edac +cpia2 +cpufreq_spudemand +cpu-notifier-error-inject +c-qcam +cramfs +crc32 +crc7 +crc8 +crc-ccitt +crc-itu-t +cros_ec +cros_ec_i2c +cros_ec_keyb +cros_ec_spi +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +csiostor +ctr +cts +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cx18 +cx18-alsa +cx22700 +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx23885 +cx24110 +cx24113 +cx24116 +cx24117 +cx24123 +cx25821 +cx25821-alsa +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-alsa +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyapa +cyber2000fb +cyberjack +cyclades +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da9030_battery +da9034-ts +da903x +da903x_bl +da9052-battery +da9052_bl +da9052-hwmon +da9052_onkey +da9052-regulator +da9052_tsi +da9052_wdt +da9055-hwmon +da9055_onkey +da9055-regulator +da9055_wdt +da9063-regulator +da9210-regulator +DAC960 +daqboard2000 +das08 +das08_cs +das08_pci +db9 +dc395x +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +ddbridge +de2104x +de4x5 +decnet +deflate +defxx +denali +denali_pci +des_generic +dgap +dgnc +dgrp +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bio-prison +dm-bufio +dm-cache +dm-cache-cleaner +dm-cache-mq +dm-crypt +dm-delay +dmfe +dm-flakey +dm-log +dm-log-userspace +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-switch +dm-thin-pool +dm-verity +dmx3191d +dm-zero +dnet +dn_rtmsg +docg3 +docg4 +drbd +drm +drm_kms_helper +drm_usb +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2781_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt3000 +dt3155v4l +dt9812 +dtl1_cs +dummy +dummy-irq +dvb-as102 +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-af9035 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6007 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-rtl28xxu +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb_usb_v2 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc2 +dwc2_pci +dwc2_platform +dwc3 +dwc3-pci +dw_dmac +dw_dmac_core +dw_dmac_pci +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e4000 +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_vlan +ec100 +echo +edac_core +edt-ft5x06 +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efs +egalax_ts +ehset +electra_cf +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +em28xx-rc +emc1403 +emc2103 +emc6w201 +em_canid +em_cmp +emi26 +emi62 +em_ipset +em_meta +em_nbyte +empeg +ems_pci +ems_pcmcia +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +eni +enic +epat +epia +epic100 +eql +esas2r +esd_usb2 +esi-sir +esp4 +esp6 +et131x +ethoc +evbug +exofs +extcon-adc-jack +extcon-arizona +extcon-gpio +extcon-max77693 +extcon-max8997 +extcon-palmas +ezusb +f2fs +f75375s +f81232 +fakelb +fan53555 +farsync +faulty +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +fid +firedtv +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +firewire-serial +fit2 +fit3 +fixed +fld +flexcan +floppy +fm801-gp +fmc +fmc-chardev +fmc-fakedev +fmc-trivial +fmc-write-eeprom +fm_drv +fmvj18x_cs +forcedeth +fore_200e +fotg210-hcd +fotg210-udc +freevxfs +friq +frpw +fsa9480 +fscache +fsl_elbc_nand +ft1000 +ft1000_pcmcia +ftdi-elan +ftdi_sio +ftl +fujitsu_ts +fusbh200-hcd +g450_pll +g760a +g762 +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdmtty +gdmulte +gdmwm +gdth +generic +generic-adc-battery +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_ncm +g_nokia +go7007 +go7007-loader +go7007-usb +goku_udc +goldfishfb +gp2ap002a00f +gp2ap020a00f +gpio +gpio-74x164 +gpio-addr-flash +gpio-adnp +gpio-adp5520 +gpio-adp5588 +gpio-amd8111 +gpio-arizona +gpio_backlight +gpio-charger +gpio-da9052 +gpio-da9055 +gpio-dwapb +gpio-fan +gpio-generic +gpio-grgpio +gpio-ir-recv +gpio-janz-ttl +gpio-kempld +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-rdc321x +gpio-regulator +gpio_tilt_polled +gpio-tps65912 +gpio-ts5500 +gpio-twl4030 +gpio-twl6040 +gpio-ucb1400 +gpio-viperboard +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +grcan +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_jl2005bcd +gspca_kinect +gspca_konica +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_nw80x +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_se401 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stk1135 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gxt4500 +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +hci +hci_uart +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hid +hid-a4tech +hid-apple +hid-appleir +hid-aureal +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-elo +hid-emsff +hid-ezkey +hid-gaff +hid-generic +hid-gyration +hid-holtekff +hid-holtek-kbd +hid-holtek-mouse +hid-huion +hid-icade +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-lenovo-tpkbd +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-rmi +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-isku +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-konepure +hid-roccat-kovaplus +hid-roccat-lua +hid-roccat-pyra +hid-roccat-ryos +hid-roccat-savu +hid-saitek +hid-samsung +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-gyro-3d +hid-sensor-hub +hid-sensor-iio-common +hid-sensor-magn-3d +hid-sensor-trigger +hid-sjoy +hid-sony +hid-speedlink +hid-steelseries +hid-sunplus +hid-thingm +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-xinmo +hid-zpff +hid-zydacron +hih6130 +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +hostap +hostap_cs +hostap_pci +hostap_plx +hp100 +hpfs +hpilo +hpsa +hptiop +hsi +hsi_char +hso +hsr +htc-pasic3 +htu21 +huawei_cdc_ncm +hwa-hc +hwa-rc +hwmon-vid +hx8357 +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-usb +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-arb-gpio-challenge +i2c-cbus-gpio +i2c-designware-core +i2c-designware-pci +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-hid +i2c-i801 +i2c-isch +i2c-kempld +i2c-matroxfb +i2c-mpc +i2c-mux +i2c-mux-gpio +i2c-mux-pca9541 +i2c-mux-pca954x +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pasemi +i2c-pca-platform +i2c-piix4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-viperboard +i2c-xiic +i2o_block +i2o_bus +i2o_core +i2o_proc +i2o_scsi +i40e +i40evf +i5k_amb +i6300esb +i740fb +i82092 +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_isert +ib_mad +ibmaem +ibmpex +ib_mthca +ibmveth +ibmvfc +ib_qib +ib_sa +ib_srp +ib_srpt +ib_ucm +ib_umad +ib_uverbs +icom +icp_multi +ics932s401 +idmouse +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iguanair +iio_dummy +iio_hwmon +iio-trig-interrupt +iio-trig-periodic-rtc +iio-trig-sysfs +ili210x +ili922x +ili9320 +imm +imon +ims-pcu +imx074 +imx_thermal +ina209 +ina2xx +industrialio +industrialio-triggered-buffer +inet_diag +inexio +inftl +initio +input-polldev +int51x1 +intel_vr_nor +interact +interval_tree_test +inv-mpu6050 +ioc4 +io_edgeport +io_ti +iowarrior +ip6_gre +ip6table_filter +ip6table_mangle +ip6table_nat +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_MASQUERADE +ip6t_mh +ip6t_NPT +ip6t_REJECT +ip6t_rpfilter +ip6t_rt +ip6t_SYNPROXY +ip6_tunnel +ip6_vti +ipack +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_poweroff +ipmi_si +ipmi_watchdog +ipoctal +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netnet +ip_set_hash_netport +ip_set_hash_netportnet +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_MASQUERADE +ipt_REJECT +ipt_rpfilter +ipt_SYNPROXY +ipt_ULOG +ip_tunnel +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ip_vti +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sanyo-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it913x-fe +itd1000 +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwldvm +iwlegacy +iwlmvm +iwlwifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +kafs +kalmia +kaweth +kbic +kbtab +kcomedilib +ke_counter +kempld-core +kempld_wdt +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +ko2iblnd +kobil_sct +ks0108 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksocklnd +ksz884x +ktti +kvaser_pci +kvaser_usb +kvm +kvm-pr +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +l2tp_ppp +l4f00242t03 +l64781 +lanai +lapb +lapbether +latch-addr-flash +lattice-ecp3-config +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-bd2802 +leds-blinkm +leds-da903x +leds-da9052 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lm3533 +leds-lm355x +leds-lm3642 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lp5562 +leds-lp55xx-common +leds-lp8501 +leds-lp8788 +leds-lt3593 +leds-max8997 +leds-mc13783 +leds-ot200 +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pca9685 +leds-pwm +leds-regulator +leds-tca6507 +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-camera +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-oneshot +ledtrig-timer +ledtrig-transient +legousbtower +lg2160 +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libceph +libcfs +libcomposite +libcrc32c +libcxgbi +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc +llc2 +llog_test +ll_temac +lm25066 +lm3533-als +lm3533_bl +lm3533-core +lm3533-ctrlbank +lm3630a_bl +lm3639_bl +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm8333 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95234 +lm95241 +lm95245 +lms283gf05 +lms501kf03 +lmv +lnbp21 +lnbp22 +lnet +lnet_selftest +lockd +lov +lp +lp3971 +lp3972 +lp855x_bl +lp8727_charger +lp8755 +lp8788_bl +lp8788-charger +lpc_ich +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc2978 +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lustre +lv5207lp +lvfs +lz4 +lz4_compress +lz4hc +lz4hc_compress +m25p80 +m2m-deinterlace +m52790 +m88rs2000 +ma600-sir +mac80211 +mac80211_hwsim +mac802154 +macb +mac-celtic +mac-centeuro +mac-croatian +mac-cyrillic +mac-gaelic +mac-greek +mac_hid +mac-iceland +mac-inuit +mac-roman +mac-romanian +mac-turkish +macvlan +macvtap +mag3110 +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix-keymap +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16064 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max197 +max2165 +max3100 +max34440 +max517 +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77686 +max77693 +max8649 +max8660 +max8688 +max8903_charger +max8907 +max8907-regulator +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8973-regulator +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-i2c +mc13xxx-regulator-core +mc13xxx-spi +mc44s803 +mceusb +mcp2120-sir +mcp251x +mcp3021 +mcp320x +mcp3422 +mcp4725 +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memory-notifier-error-inject +memstick +mena21_wdt +metronomefb +metro-usb +mfd +mga +mgc +michael_mic +microread +microread_i2c +microtek +mii +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mlx5_core +mlx5_ib +mma8450 +mmc_block +mmc_spi +mms114 +mos7720 +mos7840 +moxa +mpoa +mpr121_touchkey +mpt2sas +mpt3sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrf24j40 +mrp +mrst_max3110 +ms_block +msdos +msp3400 +mspro_block +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt29f_spinand +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +musb_am335x +musb_dsps +musb_hdrc +mv88e6060 +mv88e6xxx_drv +mvmdio +mvsas +mv_u3d_core +mv_udc +mvumi +mwifiex +mwifiex_pcie +mwifiex_sdio +mwifiex_usb +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxser +myri10ge +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +nau7802 +navman +nbd +nci +ncpfs +ne2k-pci +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netlink_diag +netprio_cgroup +netrom +netxen_nic +newtonkbd +nfc +nfc_digital +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcsim +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_ipv4 +nf_nat_ipv6 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nfsv2 +nfsv3 +nfsv4 +nf_synproxy_core +nf_tables +nf_tables_arp +nf_tables_bridge +nf_tables_ipv4 +nf_tables_ipv6 +nft_chain_nat_ipv4 +nft_chain_nat_ipv6 +nft_chain_route_ipv4 +nft_chain_route_ipv6 +nft_compat +nft_counter +nft_ct +nft_exthdr +nft_hash +nftl +nft_limit +nft_log +nft_meta +nft_nat +nft_rbtree +nft_reject_ipv4 +ngene +n_hdlc +ni_6527 +ni_65xx +ni_660x +ni_670x +nicstar +ni_daq_700 +ni_daq_dio24 +ni_labpc +ni_labpc_cs +ni_labpc_pci +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nlmon +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nmclan_cs +nosy +notifier-error-inject +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc-ircc +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +null_blk +nvidiafb +nvme +nx-compress +nx-crypto +nxt200x +nxt6000 +obdclass +obdecho +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ocrdma +of_mmc_spi +ofpart +of_serial +old_belkin-sir +olpc_apsp +omfs +omninet +on20 +on26 +onenand +opencores-kbd +openvswitch +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osc +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7640 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +ozwpan +p54common +p54pci +p54spi +p54usb +p8022 +p8023 +palmas-regulator +pandora_bl +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pasemi_edac +pasemi_nand +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87410 +pata_ns87415 +pata_of_platform +pata_oldpiix +pata_opti +pata_optidma +pata_pcmcia +pata_pdc2027x +pata_pdc202xx_old +pata_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc300too +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci-stub +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc_adma +peak_pci +peak_pcmcia +peak_usb +pegasus +penmount +percpu_test +pf +pfuze100-regulator +pg +phantom +phison +phonet +phram +phy-core +phy-exynos-dp-video +phy-generic +phy-gpio-vbus-usb +phy-isp1301 +phy-rcar-usb +phy-samsung-usb +phy-samsung-usb2 +phy-samsung-usb3 +physmap +physmap_of +pixcir_i2c_ts +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm80xx +pmbus +pmbus_core +pmc551 +pmcraid +pm-notifier-error-inject +pn533 +pn544 +pn544_i2c +pn_pep +port100 +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +ps3disk +ps3flash +ps3_gelic +ps3-lpm +ps3rom +ps3stor_lib +ps3vram +pseries_energy +pseries-rng +psmouse +psnap +pt +ptlrpc +ptp +pvrusb2 +pwc +pwm_bl +pwm-pca9685 +pwm-twl +pwm-twl-led +pxa27x_udc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qmi_wwan +qnx4 +qnx6 +qt1010 +qt1070 +qt2160 +quatech2 +quatech_daqp_cs +quota_tree +quota_v1 +quota_v2 +qxl +r128 +r592 +r6040 +r8152 +r815x +r8169 +r8187se +r8188eu +r8192e_pci +r8192u_usb +r820t +r852 +r8712u +r8a66597-hcd +r8a66597-udc +rack-meter +radeon +radio-i2c-si470x +radio-keene +radio-ma901 +radio-maxiradio +radio-mr800 +radio-shark +radio-si4713 +radio-si476x +radio-tea5764 +radio-timb +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +ray_cs +rbd +rbtree_test +rc5t583-regulator +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rcar_vin +rc-asus-pc39 +rc-asus-ps3-100 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-delock-61959 +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-it913x-v1 +rc-it913x-v2 +rc-kaiomy +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-msi-digivox-ii +rc-msi-digivox-iii +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-reddo +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-total-media-in-hand-02 +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +remoteproc +renesas_usbhs +retu-mfd +retu-pwrbutton +retu_wdt +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-gpio +rfkill-regulator +rio500 +rionet +rio-scan +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rp2 +rpadlpar_io +rpaphp +rpcsec_gss_krb5 +rsxx +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800mmio +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm80x +rtc-88pm860x +rtc-ab3100 +rtc-as3722 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc_cmos_setup +rtc-da9052 +rtc-da9055 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds2404 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-generic +rtc-hid-sensor-time +rtc-isl12022 +rtc-isl1208 +rtc-lp8788 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max77686 +rtc-max8907 +rtc-max8925 +rtc-max8997 +rtc-max8998 +rtc-mc13xxx +rtc-moxart +rtc-msm6242 +rtc-palmas +rtc-pcf2123 +rtc-pcf2127 +rtc-pcf50633 +rtc-pcf8523 +rtc-pcf8563 +rtc-pcf8583 +rtc-ps3 +rtc-r9701 +rtc-rc5t583 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx4581 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-s5m +rtc-snvs +rtc-stk17ta8 +rtc-tps6586x +rtc-tps65910 +rtc-tps80031 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rtl2830 +rtl2832 +rtl8150 +rtl8180 +rtl8187 +rtl8188ee +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtl8723ae +rtl8723be +rtl8723-common +rtl8821ae +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtl_pci +rtl_usb +rtlwifi +rts5139 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rx51_battery +rxkad +s1d13xxxfb +s2250 +s2255drv +s2io +s2mps11 +s3fb +s5h1409 +s5h1411 +s5h1420 +s5m8767 +s626 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7706h +safe_serial +salsa20_generic +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_rcar +sata_sil +sata_sil24 +sata_sis +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sbe-2t3e3 +sbp_target +sbs-battery +sc92031 +sca3000 +scanlog +sch_atm +sch_cbq +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_fq +sch_fq_codel +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_plug +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +scsi_transport_spi +sctp +sctp_probe +sdhci +sdhci-of-esdhc +sdhci-of-hlwd +sdhci-pci +sdhci-pltfm +sdio_uart +sdricoh_cs +sdr-msi3101 +sedlbauer_cs +seed +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent_generic +serport +serqt_usb2 +ses +sfc +sha1-powerpc +shark2 +sh_eth +shpchp +sht15 +sht21 +sh_veu +si21xx +si4713-i2c +si476x-core +sidewinder +sierra +sierra_net +sil164 +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_of_platform +sja1000_platform +skd +skel +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slip +slram +sm501 +sm501fb +sm7xxfb +smb347-charger +smc91c92_cs +sm_common +sm_ftl +smm665 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +snd +snd-ac97-codec +snd-ad1889 +snd-ak4113 +snd-ak4114 +snd-ak4117 +snd-ak4xxx-adda +snd-ali5451 +snd-aloop +snd-als300 +snd-als4000 +snd-aoa +snd-aoa-codec-onyx +snd-aoa-codec-tas +snd-aoa-codec-toonie +snd-aoa-fabric-layout +snd-aoa-i2sbus +snd-aoa-soundbus +snd-at73c213 +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-compress +snd-cs4281 +snd-cs46xx +snd-cs5530 +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dice +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-firewire-lib +snd-firewire-speakers +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-ca0110 +snd-hda-codec-ca0132 +snd-hda-codec-cirrus +snd-hda-codec-cmedia +snd-hda-codec-conexant +snd-hda-codec-hdmi +snd-hda-codec-idt +snd-hda-codec-realtek +snd-hda-codec-si3054 +snd-hda-codec-via +snd-hda-intel +snd-hdsp +snd-hdspm +snd-hrtimer +snd-hwdep +snd-i2c +snd-ice1712 +snd-ice1724 +snd-ice17xx-ak4xxx +snd-indigo +snd-indigodj +snd-indigodjx +snd-indigoio +snd-indigoiox +snd-intel8x0 +snd-intel8x0m +snd-isight +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lola +snd-lx6464es +snd-maestro3 +snd-mia +snd-mixart +snd-mona +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-nm256 +snd-opl3-lib +snd-opl3-synth +snd-oxygen +snd-oxygen-lib +snd-page-alloc +snd-pcm +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-powermac +snd_ps3 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-sb16-dsp +snd-sb-common +snd-scs1x +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-emul +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-atmel-pcm +snd-soc-core +snd-soc-si476x +snd-soc-simple-card +snd-sonicvibes +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usb-hiface +snd-usbmidi-lib +snd-usb-usx2y +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-vxpocket +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +soc_scale_crop +softdog +softing +softing_cs +solo6x10 +solos-pci +sony-btf-mpx +soundcore +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +spcp8x5 +speakup +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_dectlk +speakup_dummy +speakup_ltlk +speakup_soft +speakup_spkout +speakup_txprt +spectrum_cs +speedfax +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw +spi-dw-midpci +spi-gpio +spi_ks8995 +spi-lm70llp +spi-oc-tiny +spi-pxa2xx-pci +spi-pxa2xx-platform +spi-sc18is602 +spi-tle62x0 +spi-topcliff-pch +spi-xcomm +spufs +squashfs +sr9700 +ssb +ssb-hcd +ssd1307fb +ssfdc +sst25l +ssu100 +st +st1232 +st_accel +st_accel_i2c +st_accel_spi +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste_modem_rproc +stex +st_gyro +st_gyro_i2c +st_gyro_spi +stinger +stir4200 +stk1160 +stkwebcam +st_magn +st_magn_i2c +st_magn_spi +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +st_pressure +st_pressure_i2c +st_pressure_spi +streamzap +st_sensors +st_sensors_i2c +st_sensors_spi +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +sur40 +svcrdma +svgalib +sx8 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synaptics_usb +synclink +synclink_cs +synclink_gt +synclinkmp +sysv +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tca8418_keypad +tcm_fc +tcm_loop +tcm_qla2xxx +tcm_usb_gadget +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tcs3472 +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tda998x +tdfx +tdfxfb +tdo24m +tea +tea575x +tea5761 +tea5767 +tea6415c +tea6420 +team +team_mode_activebackup +team_mode_broadcast +team_mode_loadbalance +team_mode_random +team_mode_roundrobin +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +test-string_helpers +tg3 +tgr192 +therm_pm72 +thmc50 +ti-adc081c +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmp006 +tmp102 +tmp401 +tmp421 +tmscsim +toim3232-sir +touchit213 +touchright +touchwin +tpci200 +tpm_atmel +tpm_i2c_atmel +tpm_i2c_infineon +tpm_i2c_nuvoton +tpm_i2c_stm_st33 +tpm_ibmvtpm +tpm-rng +tps51632-regulator +tps6105x +tps6105x-regulator +tps62360-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps65090-charger +tps65090-regulator +tps65217 +tps65217_bl +tps65217-regulator +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +tps80031-regulator +trancevibrator +tranzport +tridentfb +ts2020 +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +tsl2x7x_core +tsl4531 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +tua6100 +tua9001 +tulip +tuner +tuner_it913x +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tusb6010 +tvaudio +tveeprom +tvp5150 +tw2804 +tw9903 +tw9906 +tw9910 +twidjoy +twl4030_charger +twl4030_keypad +twl4030-madc +twl4030-madc-hwmon +twl4030-pwrbutton +twl4030-vibra +twl4030_wdt +twl6030-gpadc +twl6040-vibra +twofish_common +twofish_generic +typhoon +u132-hcd +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +ucd9000 +ucd9200 +uda1342 +udc-core +udf +udl +udlfb +udp_diag +ueagle-atm +u_ether +ufs +ufshcd +ufshcd-pci +ufshcd-pltfrm +uhid +uio +uio_aec +uio_cif +uio_dmem_genirq +uio_mf624 +uio_netx +uio_pci_generic +uio_pdrv_genirq +uio_sercos3 +uli526x +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +uninorth-agp +unix_diag +upd64031a +upd64083 +u_rndis +usb3503 +usb_8dev +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_f_acm +usb_f_ecm +usb_f_ecm_subset +usb_f_eem +usb_f_mass_storage +usb_f_ncm +usb_f_obex +usb_f_phonet +usb_f_rndis +usb_f_serial +usb_f_ss_lb +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmisc_imx +usbmon +usbmouse +usbnet +usbserial +usb-serial-simple +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbtv +usbvision +usb_wwan +u_serial +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +ux500 +v4l2-common +v4l2-dv-timings +v4l2-int-device +v4l2-mem2mem +vcan +vcnl4000 +ves1820 +ves1x93 +veth +vfio +vfio_iommu_spapr_tce +vfio-pci +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost +vhost_net +vhost_scsi +via +via686a +via-ircc +via-rhine +via-sdmmc +via-velocity +videobuf2-core +videobuf2-dma-contig +videobuf2-dma-sg +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videodev +viperboard +viperboard_adc +virtio +virtio_balloon +virtio_blk +virtio_console +virtio_mmio +virtio_net +virtio_pci +virtio_ring +virtio-rng +virtio_scsi +virtual +visor +vivi +vlsi_ir +vmac +vme +vme_pio2 +vme_user +vme_vmivme7805 +vmk80xx +vmwgfx +vmxnet3 +vp27smpx +vringh +vsock +vsxxxaa +vt6655_stage +vt6656_stage +vt8231 +vt8623fb +vub300 +vx855 +vxge +vxlan +w1_bq27000 +w1_ds2408 +w1_ds2413 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1_ds2781 +w1_ds28e04 +w1-gpio +w1_smem +w1_therm +w35und +w5100 +w5300 +w6692 +w83781d +w83791d +w83792d +w83793 +w83795 +w83977af_ir +w83l785ts +w83l786ng +w9966 +wacom +wacom_i2c +wacom_w8001 +walkera0701 +wanxl +warrior +wbsd +wcn36xx +wdrtas +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wil6210 +wimax +winbond-840 +windfarm_ad7417_sensor +windfarm_core +windfarm_cpufreq_clamp +windfarm_fcu_controls +windfarm_lm75_sensor +windfarm_lm87_sensor +windfarm_max6690_sensor +windfarm_pid +windfarm_pm112 +windfarm_pm121 +windfarm_pm72 +windfarm_pm81 +windfarm_pm91 +windfarm_rm31 +windfarm_smu_controls +windfarm_smu_sat +windfarm_smu_sensors +wire +wishbone-serial +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl18xx +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wlcore +wlcore_sdio +wlcore_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +xc4000 +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_algo +xfrm_ipcomp +xfrm_user +xfs +xgene-enet +xgifb +xgmac +xilinx_ps2 +xilinx_uartps +xillybus_core +xillybus_of +xillybus_pcie +xirc2ps_cs +xircom_cb +xor +xpad +xprtrdma +xsens_mt +x_tables +xt_addrtype +xt_AUDIT +xt_bpf +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlabel +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_ecn +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_HMARK +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_LOG +xt_mac +xt_mark +xt_multiport +xt_nat +xt_NETMAP +xt_nfacct +xt_NFLOG +xt_NFQUEUE +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xt_REDIRECT +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +zaurus +zd1201 +zd1211rw +zforce_ts +zhenhua +zl10036 +zl10039 +zl10353 +zl6100 +zlib +zr364xx +zram +zte_ev --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/ppc64el/generic +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/ppc64el/generic @@ -0,0 +1,13608 @@ +EXPORT_SYMBOL arch/powerpc/platforms/pseries/hvcserver 0x048d27cc hvcs_register_connection +EXPORT_SYMBOL arch/powerpc/platforms/pseries/hvcserver 0x536d329b hvcs_get_partner_info +EXPORT_SYMBOL arch/powerpc/platforms/pseries/hvcserver 0xc39c3704 hvcs_free_partner_info +EXPORT_SYMBOL arch/powerpc/platforms/pseries/hvcserver 0xd0a02396 hvcs_free_connection +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0x1c69dcd3 suni_init +EXPORT_SYMBOL drivers/bcma/bcma 0x28764a1d bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x127a5901 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/paride/paride 0x023c685d pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x16b9b9b5 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x40f60823 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x87a454c0 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x97c392ed paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x9a0620ac pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xb1fb9abc pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xbaf1f607 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xc4dd35d3 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xc651b3c8 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0xe10da317 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xf4b467f3 pi_disconnect +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x2ef48f7c dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x369a130a dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x90296a1d dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x9cd87e6b dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xa9786519 dw_dma_get_src_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xd918425c dw_dma_cyclic_free +EXPORT_SYMBOL drivers/edac/edac_core 0x48d7c02a edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04d0f641 fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x05dd7693 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x08ed19ea fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0f7d6af8 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x15dfa145 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x36ecc06a fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x52624db5 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x593576e0 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x645b715f fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x69a5b4ea fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6e8b302e fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x770ac529 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8ab4c1f8 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x98c02437 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x99652055 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa0ca675e fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa1bcb86f fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0xad1cb2ba fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0xaf3a2d60 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb6a8d79c fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbf7ddb75 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc82eac40 fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc8bc344a fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0xda9eb65f fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe55b8beb fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xebee9a03 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf24cda06 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf288e26f fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf9d8f14d fw_core_add_address_handler +EXPORT_SYMBOL drivers/fmc/fmc 0x09e41869 fmc_device_unregister_n +EXPORT_SYMBOL drivers/fmc/fmc 0x1444e3dd fmc_driver_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x51049e55 fmc_reprogram +EXPORT_SYMBOL drivers/fmc/fmc 0x6451e732 fmc_device_register +EXPORT_SYMBOL drivers/fmc/fmc 0x80bdf1af fmc_driver_register +EXPORT_SYMBOL drivers/fmc/fmc 0x8650073b fmc_show_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x9cc45742 fmc_scan_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xa4f8556f fmc_find_sdb_device +EXPORT_SYMBOL drivers/fmc/fmc 0xa85fc765 fmc_device_register_n +EXPORT_SYMBOL drivers/fmc/fmc 0xc10a7e35 fmc_free_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xfbb40e4a fmc_device_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00025916 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00667d8a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x026c0d6b drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x029a8124 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05cd077b drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a132730 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d62931f drm_prime_init_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e632acd drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0efc84b7 drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x107742a9 drm_get_subpixel_order_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x10dd7f61 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13634da9 drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a9a178 drm_get_format_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14ab8f60 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1509f813 drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x165b2205 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16deae19 drm_prime_sg_to_page_addr_arrays +EXPORT_SYMBOL drivers/gpu/drm/drm 0x182d2188 drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x189f6401 drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19dada3d drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19e44324 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a2593b7 drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a743504 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a770ac3 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1dba89dd drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20b37c60 drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22afeb52 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2476a248 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26b7ab84 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29ad006c drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a942ab2 drm_mm_insert_node_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d80be4d drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e4aab5e drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e7a4300 drm_rgb_quant_range_selectable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e8130f8 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ed89a16 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f0b064f drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x309aa6d6 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33c13736 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x357a36db drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36f91ef3 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37f016d4 drm_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x380086fd drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a4f7ae drm_format_num_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ac1fef9 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ae7b2d0 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b9d009a drm_format_plane_cpp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cd7530f drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d4b8108 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e5f8520 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x405389ee drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41001cf8 drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4335e727 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4429d61e drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0x457c7a2f drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45b66103 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46c43f3a drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46c82201 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49fabf0d drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c07586d drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c511235 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d90f0ac drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f6d0312 drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50504b41 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e28c07 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51b391ae drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x523be026 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x526f6f71 drm_rect_calc_hscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x528e5e51 drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x552d53d9 drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55bc9847 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ad7b110 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c4a59c0 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d7318dc drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ed19450 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f304c36 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6090be61 drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x629c05e1 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62d49c5a drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63a382bf drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63ca25b8 drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63d5e33b drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x64d2dfb9 drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66803841 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x670f6076 drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0x683727da drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x684b84b9 drm_pcie_get_speed_cap_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x686e46c5 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68b622b1 drm_bridge_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6900d335 drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6919c1de drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x692461f0 drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x692636a3 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6947f904 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a8acb33 drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cc3c29e drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ce1efb9 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cee2e42 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d863760 drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e342381 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e54ff57 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x70421b9e drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71569f6d drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71b30b16 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x721530d4 drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x746eeb5d drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74ef5cf5 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76843db2 drm_framebuffer_unreference +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76e7908d drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x784c7f30 drm_bridge_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79b550b6 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79db1d32 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4e7297 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7aa6e039 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c16f572 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x811f0363 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81ba930c drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81e773e4 drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x824273bd drm_mode_group_init_legacy_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x827343cf drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x875b0764 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b535c26 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b9be5b8 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c43f3ec drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8cf7905f drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d33a4c8 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d84d6ad drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de13715 drm_format_vert_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de63241 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f115f33 drm_unplug_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f235112 drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7df3a7 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91034bab drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x917f6e61 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x93fae0e0 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x955954de drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9604b03c drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x981cb595 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x984513e5 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x99089e49 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9972db48 drm_rect_calc_vscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ab3d73d drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ccddaf1 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d70fc2a drm_rnodes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9eccfe56 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f420d76 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1f4e9e6 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa2103777 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa28078b2 drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa290dbcb drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3a02e8c drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4090af9 drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5dbd572 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa72de93c drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7396b97 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa96acfcb drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa894802 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xacfd6c78 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad9d7b1b drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae03cfbf drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafb0cb6f drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb071f8d4 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2bf4128 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3a657c2 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3e71d72 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4f9ddb5 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5540008 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb572a9f0 drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6fddaaf drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb80f25e8 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95beb55 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba5e7659 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba9b3157 drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb993781 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbaa97aa drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc85b71a drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbcdcacb7 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbce9aa6d drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd392362 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd7fbd61 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe001c53 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc06080e9 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1cfd0b4 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4000f9f drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc46f6c11 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4de42cb drm_crtc_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5524f56 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5e409cb drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6210f3f drm_framebuffer_reference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc79229ac drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7f7cc11 drm_vma_offset_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc89d4f03 drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8dc2fde drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca45efbc drm_format_horz_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca5687fb drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb4133a0 drm_gem_dumb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc8131d4 drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd8426f5 drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcec158f0 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf60e446 drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf7e404b drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcffc952b drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2335101 drm_fb_get_bpp_depth +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd23bd1dc drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd45f79c8 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd51a217b drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7f12093 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7ff7d8f drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd97aa694 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd9d2f897 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda577068 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb954838 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdebc9e73 drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdfa5e98e drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe07b5225 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2ef97e4 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe4ebb834 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f46e6e drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe871d92c drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8993d44 drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8b150af drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeaac554b drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefdf9b69 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf01fb073 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf02dac44 drm_prime_destroy_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf06f2fa3 drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf08d712a drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf219f21d drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf446a0e2 drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4b9215c drm_connector_unplug_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf600fdd6 drm_dev_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6d3a423 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf72455ac drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf90d0c2e drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9f04851 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb497216 drm_mm_insert_node_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd063935 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe4a68c7 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc6c87a drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffecd02c drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0049fe4f drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x01b3e07b drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x02ba249f i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x05254578 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x05f7e9b4 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x098e47d2 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0a1a59a4 drm_dp_link_power_up +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f66d5e7 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f96ec70 drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x11ed023e drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x163251c8 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1d445e4e drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2b95193d drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x300169c6 drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34871adf drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x348c676e drm_dp_aux_register_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3bb312a9 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x40e35728 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x473d000a drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4ecdc3ff drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4f1df94b drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4f365c60 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x516a6446 drm_pick_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x545c4d47 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5798087c drm_dp_link_probe +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6344e06f drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6ecc2683 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x711a004a drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7645b57e drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7a460001 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7f0ac2f7 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7f61d49e drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8211f787 drm_dp_aux_unregister_i2c_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84e924ba drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8e6b2c3e drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9b472d7b drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9b58ad60 drm_dp_link_configure +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa77858bb drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8d6809d drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xab727c94 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb1df970d drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb4e4c559 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc3754025 drm_has_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xce770c5d drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xceb7b19a drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd0d0ca05 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe73e3723 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf389ac6a drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf9e19561 drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfff17d3b drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x64a9ff08 drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x6d239271 drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0xc9c88dba drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x08c8f111 ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0d6b7aa8 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1393b852 ttm_agp_tt_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1455bc1d ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1f96ac05 ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x20ec8d0a ttm_dma_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2a824b8a ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2ac7e6e9 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2dc4d25b ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2e232524 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x30748d5a ttm_pool_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3237d594 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x32c1cd34 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3af0004a ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3de6c1a8 ttm_mem_io_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x40f58b6c ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x45836f5e ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x485a5bc0 ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4e8dd264 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4fa7c225 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x50883c2c ttm_bo_del_sub_from_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x50f27e60 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x54d6192b ttm_dma_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x564e1aee ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x56a9134c ttm_mem_io_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5a8fdfea ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cb96e7a ttm_pool_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5fbc9dad ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6052860c ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x66c86d4a ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x69994c42 ttm_agp_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x74cab9d0 ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x75e35024 ttm_bo_add_to_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x772abdd0 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x783bce33 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d55da85 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80f93c68 ttm_mem_io_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x84a13931 ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x880a15ad ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x886cf055 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8907082c ttm_agp_tt_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x89a443de ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d14adbf ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8f46a952 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x94894449 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x995ce4d4 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9efaa08f ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9f2eaf82 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9fd0756b ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2a129fd ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa73de2a9 ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb0d1b5c5 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb5ec05f2 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb83c6470 ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb83d18d7 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb85c390e ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbef3dab8 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc50860d7 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc5f0c2da ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc7319ad0 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce6e43a8 ttm_base_object_lookup_for_ref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd13ea793 ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd24ef8df ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7f51742 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd8edb115 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd9597b10 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd6fff93 ttm_bo_dma_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe09a0bef ttm_prime_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe55dcf2c ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xea0e2e49 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf086397a ttm_mem_io_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf13454a5 ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xff5c7900 ttm_bo_acc_size +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x330f5a11 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x68214544 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xc556a0b4 i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x5affd0c4 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x98540786 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x78be243f amd756_smbus +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x11615075 st_accel_common_remove +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x52b7639e st_accel_common_probe +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x204e76a2 hid_sensor_write_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x5dc8ae2e hid_sensor_read_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x736e8a69 hid_sensor_write_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xa42d9924 hid_sensor_read_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xc9d8fe50 hid_sensor_parse_common_attributes +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x412638da hid_sensor_remove_trigger +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x9002be8f hid_sensor_setup_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x074d7047 st_sensors_trigger_handler +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x115ecd2b st_sensors_check_device_support +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x1339506c st_sensors_sysfs_get_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x290c3a41 st_sensors_sysfs_sampling_frequency_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x318783f3 st_sensors_set_axis_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x54e06f8b st_sensors_deallocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x69a31a35 st_sensors_sysfs_scale_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x739aa60a st_sensors_set_fullscale_by_gain +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x7d72fd52 st_sensors_init_sensor +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x876851a7 st_sensors_sysfs_set_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xbbd6f486 st_sensors_get_buffer_element +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xc292b98b st_sensors_set_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xd4c149ee st_sensors_set_dataready_irq +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xe472c257 st_sensors_set_odr +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xed384bb9 st_sensors_allocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xf1baa6b7 st_sensors_read_info_raw +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0xd5d60c43 st_sensors_i2c_configure +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0x3ffe13d5 st_sensors_spi_configure +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x3fec8723 st_gyro_common_remove +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x48642a42 st_gyro_common_probe +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x6732c210 adis_enable_irq +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0xd9772db4 adis_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/industrialio 0x0f6d0d39 iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0x15f04dcf iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0x2197d52d iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x329fda6e iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0x42f3d00d iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/iio/industrialio 0x5cd1ead6 iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x5d7f3089 iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0x5dcb3288 iio_buffer_register +EXPORT_SYMBOL drivers/iio/industrialio 0x6541ce37 iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0x6d0bb3b1 iio_buffer_read_length +EXPORT_SYMBOL drivers/iio/industrialio 0x6d6bd43c iio_buffer_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x74570cea iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x7b6f8ecc iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0x85eef61f iio_buffer_show_enable +EXPORT_SYMBOL drivers/iio/industrialio 0x87ace152 iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x898c181b iio_buffer_store_enable +EXPORT_SYMBOL drivers/iio/industrialio 0x8b7e25ca iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0xbd36cf61 iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0xc28c6ca5 iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0xcfe3f7da iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0xd09272e3 iio_buffer_write_length +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xe74aef0c iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xf67d8c98 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x29bb79b5 iio_triggered_buffer_setup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0xcdb540a9 iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/kfifo_buf 0x1bbba29d iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/kfifo_buf 0x5578098a iio_kfifo_free +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x57fc9eb4 st_magn_common_remove +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x5fd9a4d9 st_magn_common_probe +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x1caf7b93 st_press_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0xf3add500 st_press_common_probe +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x049ace30 rdma_addr_find_smac_by_sgid +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x04b8b6d7 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x13e376f0 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1c3c0ad3 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1ea5767b rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x273f4cca rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x32a8402c rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x446fd7c9 rdma_addr_find_dmac_by_grh +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x59252c9d rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x06a5bee7 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1b1debf1 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x20468985 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x320cada4 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x32a64dac cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x38cdfe8f ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x46497424 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4c81155b ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x54bf2d73 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6ac61baf ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7da793a5 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8b2728dd ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x91489ed5 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xabc269f5 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd8125a17 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf0c984af ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfad0e839 ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01e19944 ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a251da0 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1009f830 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x126014d5 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14876372 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1ab467b7 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1ff2520a ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2101bb0a ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22f3cf93 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x239ea94f ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x29116a1b ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ccec09d rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x34c243d5 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x376d24fa ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x38798f1c ib_create_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3bb93ccc ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f02694c ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x40a94f76 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4a397d2a ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5076680f ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x52ac93b3 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x537fcfe0 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x56ec2abc ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5ae1f95b ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x61b80ac4 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x643017e0 ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x650f9e67 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6784bdf1 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6799be1b ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e030e26 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e6f112a ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6f3ceb72 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x71103f38 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x76878a7a ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x77e686dd ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7add4574 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7c703464 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7d5ca6e0 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x83081881 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x84978e17 ib_resolve_eth_l2_attrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x85af5daf ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x866c1123 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8aa0410e ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8b1a5118 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8bfdc886 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8cbc7cb1 ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8d661354 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x928fb4db ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa080e3e9 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa2f0205f ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa432baf6 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa654c024 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xabe86594 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac217df9 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xad1169ea ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf18ffa1 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb3374dc1 ib_destroy_flow +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb4014fb8 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb776be9c ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb7aa9a9b ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb9e5e78e ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xba65a0bc ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc391c3cf ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc9b85957 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcc927bc5 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd499dd9f ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd715be87 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd7c25b5a ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdc219bad ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdcc2ea37 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe1602846 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe1c95ea9 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe498cc3d ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea72468d ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea9f772a ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeb22fd33 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xebe3bb3a ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf0cd9230 ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf7be7b27 ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfae6cab9 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x00037e49 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3eb05120 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x458945f2 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5c02ccf0 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x64a04976 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x68a0c68d ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7fe74d2f ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb02a1f49 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xcde02777 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf2cb6856 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf3bc7e29 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf651bba0 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x22f07253 ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x48ba4726 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5328d7a6 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8cebfdd0 ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x99003283 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9a1cd50d ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9b63876f ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc0693ba0 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xd9b9e722 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xd9d85511 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xddc330e7 ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x2569d757 ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x52a6ce77 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7971c00e ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe350f2aa ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x0658588f iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x336c9e51 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x7931e157 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8b6403f2 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x995bbb96 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb01e5b1d iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xcdaccafe iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe62adcaf iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x04b39d1d rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x068471bc rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x08c82284 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x117aab68 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x176d094f rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3f276646 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x48cc8d86 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x62c5cd03 rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x71270437 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7d34224b rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x97ab1014 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa7864a82 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb296c84d rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc9ee7f1f rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcb2a3608 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd2c766c9 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd6f2e3ba rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe1ef6c62 rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe5d1da3b rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe80415b2 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf4a47d57 rdma_resolve_addr +EXPORT_SYMBOL drivers/input/gameport/gameport 0x1fe5ebe4 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x23c397da gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x6d997fa8 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x8f2fa85b gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa6a22081 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa6d21da6 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xcfa4c27e gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe00bc0ee gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0xeeac681b __gameport_register_port +EXPORT_SYMBOL drivers/input/input-polldev 0x1d4e707f input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x3976a0a5 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x6f5117e8 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xb56340e5 input_free_polled_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0x61181d87 matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x081027be ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x88123ed3 ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0x9b4c6bf2 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xa7672151 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xbbf5735c cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/sparse-keymap 0x238b51a2 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x3a8a5280 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0x5600e30f sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xd73a5f4d sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe183a502 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0xf9da46b7 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x9d22e07d ad7879_pm_ops +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xeb17efc8 ad7879_probe +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x072c0667 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x3685dc55 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x3b02d18e capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x67a9171f capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7292ab34 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x72a25a72 capi_cmsg2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f1e351d capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaafe6d6c capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc242cce8 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xdbbb8341 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf9a905c9 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfd552f7a capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfdd622f8 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0007892e b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x08ecb955 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0b2cb178 b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x250c3b1e b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x47c8684d b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5f61d6e6 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x63e5454e b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x758b7e08 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x771e0ce2 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xbf09f769 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc0f56327 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc6513252 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd4d47cf4 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd9836d0e avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe2b6cece b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1a754792 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2d11d885 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x53382f2b t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x5a202ab1 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6afe8c9f b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x9d4d036a b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xbcb0e95a b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xe67acd8b b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xeaacc638 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x7ab59853 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x2aae6e07 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xad669944 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xf4ab6b78 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xfa948b9d mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x0eab466f mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x62e20857 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x01390594 FsmInitTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x132075f7 FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x6fe0eb85 FsmDelTimer +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xed3c2efb hisax_init_pcmcia +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x0fd13984 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x56d9c22f isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x5f3617e1 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xb1faa6e6 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xe7144986 isac_init +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x0dc275c8 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x87e0706d register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xcf15ce27 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x06e34dd2 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x08de6323 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1c67e76a bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1e430202 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2a4849f8 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x322b28df recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x33f9d81f recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x355b8890 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x39e41fe7 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x41efc5cb recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x715a5d5f mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7581d3f1 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8528063c mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a4e99fb mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9db91b1d queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa11430bc mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa88560fe mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb1d3f8ed mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbde884a0 mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc00ad125 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcbe25c97 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd67a7385 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdf7be0c7 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xeb863bed recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xefec1777 bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf40527f1 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfe4f5ecc mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfeb1815b mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/bcache/bcache 0x1965410b closure_sync +EXPORT_SYMBOL drivers/md/bcache/bcache 0x3939d800 __closure_lock +EXPORT_SYMBOL drivers/md/bcache/bcache 0x3ef805a1 closure_trylock +EXPORT_SYMBOL drivers/md/bcache/bcache 0x7a6136f7 closure_wait +EXPORT_SYMBOL drivers/md/bcache/bcache 0x7b930638 closure_sub +EXPORT_SYMBOL drivers/md/bcache/bcache 0xa966a4c5 closure_put +EXPORT_SYMBOL drivers/md/bcache/bcache 0xe3c17af1 __closure_wake_up +EXPORT_SYMBOL drivers/md/dm-log 0x3a07de1e dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0x87c25ca1 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0x9a0093b7 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xe0fa8c7c dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x038ea164 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x05c1f572 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x405c1692 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xa9fabeb4 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0xba83b89a dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0xe478045f dm_snap_origin +EXPORT_SYMBOL drivers/md/raid456 0x5b715077 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x28656542 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x41e614f1 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x4c8ca1eb flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x4d5b70fc flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x51e2468d flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x705c0311 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x77a15665 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x84903bf3 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x986edc92 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x9c7d58e3 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xc6f25da9 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xcb016797 flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xdf7764c4 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x6b1eeafd btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xff7e9637 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/common/cx2341x 0x04a6e360 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0x0643161d cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0x3db8be82 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x83a81fee cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0xb731c8fa cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0xecc363fc cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/tveeprom 0x45f28dda tveeprom_read +EXPORT_SYMBOL drivers/media/common/tveeprom 0x8aa6e933 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x028d64cd dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x03cdbf0a dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x140ab85d dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x17523ce7 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1929d3fb dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x23c337e7 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2681ee6b dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x32706276 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x38e985f1 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3a2529c9 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3e986f42 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x42f0c6e5 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x58c68b09 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5c0ea535 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6d9b54b6 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6ff9ba80 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x70af1058 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x78db694b dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7f4f9b54 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x85a5e7d3 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x88c976c8 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x918973e0 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x934f3988 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9b433d3c dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa9b4041f dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xae407e74 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb73918fa dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcca85b22 dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcd85621e dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcf589e8c dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd04f2bf2 dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd68a099e timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd8f7184c dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe3dd0e34 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe81c9050 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf221a20d dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf28e7431 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf7058846 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xfe984d2f dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-frontends/a8293 0xdd626320 a8293_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9013 0x7f68293f af9013_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9033 0x5c89ade5 af9033_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x20c8fedf atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x1d9105a8 au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x2d474e1c au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x59446fd8 au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x85f27349 au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x8aabe3f6 au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x9f8d0b21 au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xafc616d6 au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xb4fa14aa au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xc6f9c224 au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0xd2078e16 au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0x15cb8db0 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0xf9af606e cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0xe1d90dc7 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0xbdd7dd80 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x06d5216f cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xa29bfe06 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x026d9ddd cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x55a64571 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xd658ca1d cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0x5278cc10 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x1f076124 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x2a719ae1 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x6af51bd3 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xb5a7e721 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xeb33d4f7 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x0121b156 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x01eb619e dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x2081676c dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x25c63b52 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x35940fe5 dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x4e129151 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x4eb168c0 dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x5bd3bfca dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x631cb466 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x9267a07a dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x96e7efa2 dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x9b2fdcb7 dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xba1c5adc dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xefd3ec80 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xfcf999be dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0xb2903256 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x300fdca6 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x54a90d7b dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x6dd4bea1 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x783a90d6 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x9358a388 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xc6c412f5 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x227373cd dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x4fd5c2dc dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x5d6d3b7e dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x7b6d87aa dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x008d55cf dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x1f31d9e2 dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x2ba7b2b8 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x43d3bac8 dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x46f43ec5 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x679ee358 dib7000p_get_agc_values +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x9a03034b dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xb08795e0 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xb89691e6 dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xbd2d6248 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xbd3a5e2d dib7000p_set_agc1_min +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xc4b846da dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xcaf3c219 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xe8d6db19 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xeef7f2a4 dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xf73cce57 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x1537ecd9 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x26b01b8d dib8090p_get_dc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x312786f8 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x6ca3f590 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x71bca3cd dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x7deb3fd8 dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x8eba892d dib8096p_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x91ddbab5 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x966f237c dib8000_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x9fe3b953 dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xcd4e2d17 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xd1a9f2f3 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xd4520413 dib8000_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xd56ae373 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xda0f73a1 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xec4fe679 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xee5fd77c dib8096p_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xf5d766fb dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xffd45801 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x0d0f34d5 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x189c2ac6 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x1941d645 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x7d044bf6 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xaed7697b dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x399de989 drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x721b5868 drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x607f15b9 drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0x9afc4a62 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0x0739f592 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x4b44380b ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x6b9ce91a isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0xe9c220ac isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0xd6a28792 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/it913x-fe 0x1e9cc1dc it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0x1b1afed6 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0x3887d6b4 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x0eb4dbbb l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0xc46015c9 lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0xf578eeb2 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x439888a6 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x253361c7 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x5454edc8 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x73be4cdc lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x4c3eff2d lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0x9afa8221 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0xbadf8029 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0x06a47c9e mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x8586561d mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0xb0354c73 mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0xe9c2f3c6 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x890821db nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0x68b81f21 or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0x31782d1b or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x23bc0d4e rtl2830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x6744af82 rtl2830_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2832 0xd5f44e51 rtl2832_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x7df5e94f s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0xa755e0c8 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x45eec39f s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0xb75ce843 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x79bacfe9 s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x84b39f29 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp8870 0x01d166f4 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x994d9f2f sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0x32e8b5cf stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0x7c092ddf stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0x83b88794 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x7de5c49c stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0x6d6cac71 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0xf18eabdc stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0x22f76708 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x91df7a0b stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0xd4003958 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0xc8bf3271 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0x5e1b6351 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0x84b0b4b8 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0x3be5a556 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x584232cc tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x0ac5ac7d tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0xdaa93f69 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10071 0x731cc3b8 tda10071_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x20b644d4 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0x754e258b tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0xf8b55753 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0x63aceaf4 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0x794306f0 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0xe5f97572 ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0xe618a692 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x604afbc1 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0x2c4318d9 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0x59823a32 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0x84d704dc zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x1c624413 zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x1033cd63 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x8c40251b flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x8df1f056 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xae8ac446 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xb57656bc flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xd3b8f0e2 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xfaa00ef8 flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x23886bf7 bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x5406f7be bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x58c6dcc4 bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd7c75b58 bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x123bc34b bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x7d447c9f bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xbcccf02d bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x20cc625e rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x392b04a5 read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x3ab2ccb5 dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x48941065 dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x6dc4bc86 dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x7abfa6c7 write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xbf00ba4d dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xc1a8fe4b dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xcbbb863d dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0xe9a574d9 dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x185b634b cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2d8cc8c4 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x482a9169 cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x6a9dfd5d cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xab5e0b3b cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x51f30d4d cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x72305120 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xa41d1f84 cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xc5d38741 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xcef41d08 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xe2064b89 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xff0aa7b0 cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x0da65559 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0xc636b7e9 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x64501356 cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x75634ca3 cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xc491a758 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xd734a414 cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x0d4e2cca cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x48d22101 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x8022dcf3 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xb4cd1ed2 cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xba036f01 cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xbbb5b415 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0a75066e cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0cf98d88 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x12d84f78 cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2092335a cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4216fc84 cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4f15734d cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x62d6a75a cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7a37ddb6 cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7bb1134e cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x82045d43 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x8e9c2543 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x8f9c9115 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x95b91dc0 cx88_free_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x9a3b0254 cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xaf47c05d cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xb5e489c8 cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xbd28af64 cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xce1f5dc6 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xcecdc024 cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xd6e9666b cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xe6e14ae0 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xed19a1ed cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xfb8ce074 cx88_reset +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x140d8800 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x268ec557 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x3d0bf034 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x43af5b68 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x5f0f9059 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x668cca5c ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x713016c6 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7702baad ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7c484d8f ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x90002b7b ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x92715dd4 ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xb01e0398 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xb37535db ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xcb2ef643 ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xcc0a4a22 ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xcf0a9ebd ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xe88192e8 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1974a412 saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x317be6f8 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x40954fb0 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x73039031 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x80643534 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x81eebaa0 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xa2609434 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xa99c1e2a saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xad3c50a4 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xb681bbb5 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xd52e65e9 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xef4b1815 saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xfd5e5d36 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0x3649ed20 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x0970557e soc_camera_lock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x40e18aad soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x64f87e56 soc_camera_power_init +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x7c8e97cf soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x80f2b46a soc_camera_power_off +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x9e338660 soc_camera_power_on +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xcfb3a685 soc_camera_host_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xefbb1c66 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xfd85e0da soc_camera_unlock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x25c52d97 soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x2863728e soc_mbus_image_size +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x5f3e3558 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xa9546115 soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xfe2c3a07 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x0f6c3557 soc_camera_client_scale +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x105b457f soc_camera_client_s_crop +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x449901dc soc_camera_calc_client_output +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x50754af0 soc_camera_client_g_rect +EXPORT_SYMBOL drivers/media/radio/tea575x 0xb0ae4396 snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0xb260731c snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0xd4597105 snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/radio/tea575x 0xf92324d9 snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x2d40a62f lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x4041d695 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x87eb21c2 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x970e9713 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xa146f6b7 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xf1074654 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xf48128df lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xf6535646 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/rc-core 0x06364ae0 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0x25096fcc ir_raw_handler_register +EXPORT_SYMBOL drivers/media/tuners/e4000 0xed289f93 e4000_attach +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x2d18ab0c fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x884fb935 fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x093c487b fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x9e70eab6 fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xa3c0761a fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc2580 0x968062e5 fc2580_attach +EXPORT_SYMBOL drivers/media/tuners/max2165 0x2d5cd980 max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x5b68584f mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0xde0c5ae2 mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0xf54f32a6 mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0xccb6afe7 mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x35896e9e mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0x21598c71 qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18212 0xb17505cd tda18212_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0x6ea1136d tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tua9001 0x55237165 tua9001_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0xcd6dd2f3 xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/tuner_it913x 0x2ef04777 it913x_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x5d52a756 xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0x4db35fef xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0xa53c967b cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0xec619fd8 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x18b9a097 dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x46e55f2f dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x47f81db6 dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x4af02837 dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x4d4e96c7 dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc469cb7d dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xce7aa73c dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xd3818037 dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xd6816bf1 dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x2525b490 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x4fabc5b2 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x6df30b65 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x71ccf86c dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x73cc88a7 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x8c13391e dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xfad13641 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x4dbaf173 af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x11075366 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x1870ca30 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x1ef9451c dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5c5e67e0 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x68c5f13f dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7966a833 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xac47dfa3 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb58e98d6 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb59f127b dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd92ec417 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xf7e6eea4 dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x77a3dac0 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xb98921c1 em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x552b3b77 gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x5a580f6f gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x84c77bdb gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x84ce33f5 gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9d06455c gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xa3d5d905 gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xc95b74e4 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xde577a32 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x15b55205 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x17b18491 tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x44f76d6c tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0xde545970 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0xf59358ba ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x4adaf0f3 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x53c9394f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x5f96a661 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0xabe27502 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x0e379410 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x26b382f2 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x4c4796ac v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x6d3b0ea0 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x6e552ee5 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x9a9418d7 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xa90bfca7 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xb694a179 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xcde86643 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf2-core 0x2eef0f32 vb2_querybuf +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x08745446 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0a0dcd58 video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0dd75f86 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x136cf2c3 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x13ddfeb4 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x140e371b v4l2_of_get_remote_port_parent +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16f5bdd3 v4l2_clk_disable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x170a5214 v4l2_async_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1b97a2e6 v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1df7ba23 v4l2_clk_get +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x249327a5 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x279d11b8 video_usercopy +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2d3c65d8 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2db3db39 v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3606abef v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x36847d11 v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x397e90cd v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3db7f213 v4l2_of_get_remote_port +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x402943f5 video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x425599ac v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x444e8574 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4b7041bd v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4cfeeb8f v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x518389c9 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5663597a v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5666c02b v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5a4f6267 v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5fed5203 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x61879541 v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6316326f v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6907b707 v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6a9826fe v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6de904eb v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x70716650 video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x70b3ec15 __v4l2_clk_register_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x77860aed v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x780d4a4b v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7c15aa7a v4l2_clk_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7cffd363 v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7d209a7c v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7f923f2a v4l2_of_parse_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x821c3e44 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x82e89e7e v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9036a7f8 v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x989150e5 v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x991cd619 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa40ca10e v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa4ff4d28 v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa5896301 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa66dd426 video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xab405ac4 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xadec31de v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb10fc6cc v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb90cbedf v4l2_of_get_next_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbac4a225 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbbf882e3 v4l2_clk_get_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc09d034c v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc12cf8f8 v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc56afbd7 v4l2_clk_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc6481da7 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc6c4831d video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc83b0346 v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xca104527 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xce9511a5 v4l2_clk_enable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd36d6c9b __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd3b8502b video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd66cd50a v4l2_clk_put +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdada3919 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdb53e99c v4l2_clk_set_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xddea1549 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6fce6f2 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xea977d20 v4l2_clk_unregister_fixed +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfa28d64a v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xff824364 v4l2_async_notifier_unregister +EXPORT_SYMBOL drivers/memstick/core/memstick 0x18244e4d memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x37a9a698 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x3d7c2441 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4e3f3f30 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5e83b3a2 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x614a9ddf memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7526d092 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8041695f memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x9e583341 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xba19a8c7 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc76002d8 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xdc07e67e memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xefe1f7e6 memstick_next_req +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x034872bf mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x10a385a8 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x184d5b95 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1a6d4433 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2b0cc8e9 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x30e69414 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x351149c3 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x44d0d92e mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x49b9f4f6 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x58509454 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x66e64f5a mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x78cec37f mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7aab0c49 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x86e989c9 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8879201a mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x915a34dd mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x96e5a69d mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x96f8f95c mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9d7b6609 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa0c5cd6e mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb9d17366 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbee89fff mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc1cdff6c mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcae28e80 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd093f64c mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd68a911d mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9b8b639 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf73ec5de mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfad09593 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x017066df mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x091f61c3 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x10bd9130 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3c6522ff mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x464333f0 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x57226370 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x61c9b6f9 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6a4c94b5 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x70ab1ddb mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x77a8b937 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7d43d555 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x838213dc mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9ff1c018 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xaf5ac45e mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb12e9985 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb1d5848a mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb38c9996 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb6fe50d7 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbc6fc9d5 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc1a34ed3 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc9193bc1 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd573dabc mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdc582466 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe21c9615 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf18e5731 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfb1fcb20 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfef4de8f mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x07a233e6 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0d033923 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0f58a993 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x13ac883f i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1b912e38 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x28820685 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x35379e51 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x42e8a0b3 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x463b09bf i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x47f1ece7 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6bd19a5a i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x80382e3d i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x84018c72 i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x867ba7d5 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa166bc97 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa1e02f12 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xaeed1bb4 i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xcd45815b i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdf013d5c i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf464eb56 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf83c832d i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfd2cfd55 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/mfd/cros_ec 0x15d988fb cros_ec_resume +EXPORT_SYMBOL drivers/mfd/cros_ec 0x478211a7 cros_ec_suspend +EXPORT_SYMBOL drivers/mfd/cros_ec 0x984401a6 cros_ec_prepare_tx +EXPORT_SYMBOL drivers/mfd/cros_ec 0x9f461536 cros_ec_remove +EXPORT_SYMBOL drivers/mfd/cros_ec 0x9f88d560 cros_ec_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xe470a562 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xf9abd451 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x12e51606 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x29ac19df mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x2aeee78f mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x2e29600d mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x2f2b2538 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x355a6c72 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x3772c1ca mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x4100f50b mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8b010b84 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9910ab41 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9e050868 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xabe31775 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xcd7464d1 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/tps6105x 0xc11ead50 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0xc96e0ae1 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0xcb180871 tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2 +EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1 +EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib +EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x1105784e ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x32953353 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x7daa3738 altera_init +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x7a60228d ssc_free +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x86abb8e2 ssc_request +EXPORT_SYMBOL drivers/misc/c2port/core 0x2c66599c c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0xb607cd4e c2port_device_unregister +EXPORT_SYMBOL drivers/misc/ioc4 0x592cf869 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x8373093f ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x17680f7f tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x250e9251 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x38286070 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x466f46b7 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x4e96e0f2 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x6eb3bbc5 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0xa1e37720 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xb0c66e9d tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xc11301cf tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xcd1cd68a tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xce38cad3 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xf49d5e52 tifm_unregister_driver +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x00c69ee2 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x065cba6a mmc_spi_get_pdata +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0xf66f7e9b mmc_spi_put_pdata +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x03744643 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x77a730ec cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7b090393 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x02bec674 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x240e182a map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x7ae10be7 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xb86e92fe register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x07e97c4c mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x7a9811d9 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xb90f2bf3 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x41dcc19b mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtd 0xc2835c0f mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/denali 0x18b894fe denali_init +EXPORT_SYMBOL drivers/mtd/nand/denali 0xa47c90f1 denali_remove +EXPORT_SYMBOL drivers/mtd/nand/nand 0x16cc38b4 nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0x2ae23e9e nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x69a1ff13 nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0xa0ef39c4 nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xed620712 nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0xfe802d5a nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x3ec1e3d0 nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x812c37d1 nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x986cd0bb nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x0f008294 nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x5f60da01 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x57a31e57 nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x745041d3 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x8a13eb45 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xc3d6e2aa flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xeb993507 onenand_default_bbt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x0af69afa arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x57798529 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x59bbc24d arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x75d16f6c arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x93a34ea8 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x95cef49a arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xaac329ed arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xcd9917be arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xea6d4c1d arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfa2c1d23 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x3abc9f3f com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xf07423e2 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xf3aab7d7 com20020_check +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x13bbb949 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1a0eba5a ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1f9636f3 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x2ec7929f ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x474533d5 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x62a83a29 NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x63d3fafd __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x9141f268 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xd87e65dd ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xe2012732 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0xadaabf64 cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0ac73c94 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x137530f3 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x1b819136 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x264c37f4 dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x39123df3 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3948fc41 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x68c004d0 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x8dad966e cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x8db7e80e cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa60489be cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb66ca4a0 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc13dcf16 t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xcb776f57 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd4aead87 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe6c13b94 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xfaafd2bc cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x06715ed5 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x09607dbf cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x09d8fab0 cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0bcd78a5 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0c817ca5 cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x11d7d7d0 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1a475b48 cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x259efb10 cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x266201a5 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2bd9a105 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2f311adc cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3c230238 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3c9f589b cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x509be9f9 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x54959199 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5a89639e cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5c3144b6 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8806b417 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x883a0f27 cxgb4_enable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8d36c452 cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa0a7110e cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa3035303 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xaf0ddecd cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb285177f cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdb1bf275 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xebe6bd7e cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xef9c6760 cxgb4_disable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xff4c31f8 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x0e712340 vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x4f650da7 vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x9196d804 vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xbb0e3d24 enic_api_devcmd_proxy_by_index +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xd514565e vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xe641929b vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x0d510609 be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x6f6412ca be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xbab62e22 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0cb220a7 mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x213c5166 mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x214c3d45 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x30d81922 mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a56d032 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x42b1b8c6 mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49d4d826 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x599ed44d mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60021d61 mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6318c7f1 mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x68ecce4f mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6eaaffbd mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7ec955ec mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x85125213 mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x893032fa mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8d554030 mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x978e85d4 mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaaeea2b6 mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xac5f1547 set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xae8a8efb mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd057b994 mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3a0c07d mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6f33c6d mlx4_set_stats_bitmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xecafff95 mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xed89f7a1 mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfff5df34 mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0191d8a0 mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x08d44442 mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0dbdab6f mlx5_dev_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x11e91376 mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2f441874 mlx5_cmd_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x30d6da04 mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x33949df4 mlx5_core_destroy_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37c6097f mlx5_cmd_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x40967640 mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4b6661d9 mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4f8ad96f mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x507f6b0e mlx5_cmd_alloc_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ced47f7 mlx5_core_query_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x70168cd3 mlx5_cmd_comp_handler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x76a5035b mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a004fd0 mlx5_core_arm_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x86cd033d mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x88a4d07d mlx5_dev_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x89aad36e mlx5_cmd_free_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8e52e976 mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x908039e7 mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x97027340 mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa430dbb2 mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc1ca45c2 mlx5_core_create_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xce7fe5c4 mlx5_core_get_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd72306c4 mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe6524148 mlx5_core_dump_fill_mkey +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x11c78da1 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x54aac11f hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x776cf79e hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x93d34bc8 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9dc8a3e3 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x0c2c88b1 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1c20d3f3 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x32ec39b2 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x48e9a250 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6f64ab62 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8cfe1f0e irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xabfcf79d sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc5ace351 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdfb7e2f7 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xef010ad1 sirdev_receive +EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag +EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe +EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an +EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok +EXPORT_SYMBOL drivers/net/mdio 0xddc98749 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mii 0x064d029e mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x54b4832b mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x65092812 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x9952e86b mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x9bd1306a mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xa598d5ea mii_check_link +EXPORT_SYMBOL drivers/net/mii 0xd9bcd3ff mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0xe0b05008 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0x967a01b6 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0xa25a1231 register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xd9447b50 pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0xbf1b7c9e sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x041290b2 team_mode_register +EXPORT_SYMBOL drivers/net/team/team 0x6be60415 team_options_register +EXPORT_SYMBOL drivers/net/team/team 0x9875bd1e team_options_unregister +EXPORT_SYMBOL drivers/net/team/team 0xc61b6506 team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0xca67a972 team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0xe2708842 team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0xf2a0cce8 team_option_inst_set_change +EXPORT_SYMBOL drivers/net/team/team 0xf4465aef team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/usb/usbnet 0x10c926bf usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0x4a8f96de usbnet_link_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0x641cceaf usbnet_manage_power +EXPORT_SYMBOL drivers/net/wan/hdlc 0x06291ca6 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x29805cac detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2f489f5a hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x3979acdf register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x47b1ad13 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x58f42cba attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa4057818 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc4a30607 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd7b9878c unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf62d333e hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xfbc3a103 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x4868eaa3 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x5a0d09cb stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xc3efd714 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xf5f77a47 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x113e0cbf ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x25cf56f4 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x436cd86d ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x53358ce3 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x76e8cbda ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x8f9c8c1c ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa7bd4564 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xd33ba8d9 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xd476709b ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe28149cf ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xed32e092 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xef4c243f dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x093221b7 ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x58fec0c6 ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x78d699a0 ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8246be6c ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x895f9dc2 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf096710 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xb3f8d52b ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xb8cfecf7 ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xd3d52182 ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x006e8d9b ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0199ec46 ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0483b442 ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0702f1a9 ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x27cf1694 ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4c6ddcb4 ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4e1380ee ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x57b4dec1 ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x8e3c3416 ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x907e761b ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x9a8278ef ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xbeb442ad ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xc90d6abe ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xcd59b5f2 ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x91fc76f5 ath9k_hw_wow_event_to_string +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x95174585 ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0xb47a4329 ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0xe253ce8c ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x0df992fc ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x331cc3ae ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd0533547 ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xfd1d33de ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x05441620 ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0bf0b67a ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d329ee5 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x104177e4 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1271b699 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x127dac3f ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1457d24a ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x182accc0 ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1aa78e57 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1aa8a24a ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x219f437e ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x25dffdbb ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ed22f08 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x363aba63 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x36e5ac97 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x37ca467f ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e162ef7 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3eaab5fa ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x46515aec ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x47046db2 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a2bcb50 ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a902889 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x528ed8ef ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x55754d92 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x55b6cc42 ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x569ae4eb ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x570163a1 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5720f1ab ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x59c9be98 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b0cf77f ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x618d3762 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x64b0be90 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6694c8d9 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6907c96b ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b1cd5d4 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6c1c5c49 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6c7807c4 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ed8f015 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x701bc157 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x70bf6670 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x722e6e0f ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75c2f5cc ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x784e32db ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7886da62 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x794a47d1 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d663472 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x827370bf ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x87b8d7cd ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x88d05dd9 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d6c075f ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f6c179c ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8fb76457 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9477a1e6 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x94ac5094 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97446278 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97636254 ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97e58624 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x998fa724 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9a0d34cc ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa0fae4d4 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa5ecdb4b ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa70c97d5 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa7881b2a ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa7b47f93 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa801d423 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa91bfcd8 ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa9bed331 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa9f33261 ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae986233 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1d83d9a ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb3246032 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb46402d2 ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb516c549 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb6572756 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xba80de36 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbc0f65ff ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbcb708af ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe7013c1 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf4ae9f7 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1b9dab9 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1ca0378 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3040890 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5267c4a ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5ed3997 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc9aadf06 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcc682e0b ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcdc8651d ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf66e2c2 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd87d4890 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc40e8e1 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdfc02fae ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeaf09ccb ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeeeb1511 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xef6060ba ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf590cea0 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9ed1c2b ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfbe1e132 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc223299 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/atmel 0xb0a40d69 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xf3413b81 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xf5280415 atmel_open +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x2efc1fa0 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0xe65e275d brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x16ea9d09 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x1bdb9038 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x23358174 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2428b3ed brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2dc227f8 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2ef74b4c brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x3ee2e67d brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x8715d22e brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x915b1e9c brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x972228cd brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xbff1045c brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xd8b14070 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xdab99160 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xfe1e5116 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x016bcb83 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x020cc1e8 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x06a9e86c hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0febcb61 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x23332ad4 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4039a913 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4564990c hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x50c6621d hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x56c6f848 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x56edd44b hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5aeb2d2b hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5dac1c85 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7e0c88c0 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x804f8161 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8058df1d hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x91b55f19 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa795c04d hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb898d3e6 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbe890794 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbfbf006e hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcd92743a prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd89cd151 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdf025f57 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe94daa94 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf3b366bb hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0c9979c2 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x11e627db libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x23190e30 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2e9afd13 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3bafa7d1 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4720e106 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x77e38f2f alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x780a7f95 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7a02ab6e libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7a56c07e libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x80a57c1a libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8f8bcbc8 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9270a569 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xadb4cdb3 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xadcf7592 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb765e906 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbbd34c25 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc82adb00 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd6721e62 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf0127bfe libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfd0aaefe libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0044b8db il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x01296eff il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0239e1ec il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x029a91fc _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x07490f77 il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0bdf2fbd il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0e42f3c2 il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0ea757f1 il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x15b9f666 il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x16c8820b il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1e4c81de il_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x22e32790 il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x274beeaf il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2d600394 il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2e62b532 il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2ec6dfd7 il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x319c20cd il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3502c16f il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x352610fe il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x37194933 il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x37426e53 il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3c3f2c75 il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3cd4e975 il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4106749d il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x42063399 _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4aa39103 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4adbc010 il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4c9412aa il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4e79ebe9 il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x502ce3a8 il_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x559c7b2c il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x564c6740 il_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x579bc0da il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5d514e10 il_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5dc7a23b il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x60969eb3 il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x63417d19 il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6375a29f il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x65e1cc9d il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x65fd3426 il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6e399a7a il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6f951770 il_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7599ac2a il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x76103713 il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x787de95f il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x78bde937 il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7990b700 il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7b86acce il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8149429d il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x82bb7af0 il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x82e5ec5b il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x84ed569d il_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8784f3e2 il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x899a4243 il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8b2e823b il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8f89073b il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x92bc2754 il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x93c8c369 il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x98398374 il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9ec7cdeb il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9fa93d7d il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa1decf8e il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa56b13f5 il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa6d0a327 il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa78d297c il_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb0af7425 il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb3322d38 il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb7bd33ff il_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb9d6df08 il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xba909d51 il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbc34db8f il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbf66de89 il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc0137303 il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc2b5f171 il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc39cf12c il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc3ab62f1 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc5d432c3 il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc70b3600 il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc76c50a5 il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc7c375f1 il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc81a1e1a il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcb05c5fe il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xccae0f24 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcddff1f2 il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcde39d1d il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd02f45f7 il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd38a9781 il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd6c9c42f il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd6ee2abb il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdaac298d il_set_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdb5aaa51 il_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdf890350 il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe3300960 il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe435493a il_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe7c9dff3 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe94d0b74 il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe9864b77 il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xeac8e272 il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xec106650 il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xec5a3b36 il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xee6657d7 il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xee8d5f52 il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf335a468 il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf501278b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x08dd8699 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0c50fa2b __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x1ecc5465 __tracepoint_iwlwifi_err +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x2f7b7e55 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x3b9d00d6 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x675bcb86 __tracepoint_iwlwifi_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x779dd6f5 __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x85c1bb84 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x8de37664 __tracepoint_iwlwifi_dbg +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x954eb7a7 __tracepoint_iwlwifi_crit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x963a6f8a __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xb8f7026f __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xe2dcc8de __tracepoint_iwlwifi_warn +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xf9ec6bdd __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x34635e3e __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x35974bf7 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x427b7905 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5acd98d5 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5dea5bf1 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5fa8e7b8 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6d71de77 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8023310e orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x83346c68 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9f0d6110 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb0bcd7ee orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb1150799 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc9bf5a84 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xcdd04912 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd556a631 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfa94a6cb alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xff1a4697 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/btcoexist/btcoexist 0x30d62ea2 rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x02375f86 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x02929bbe rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x05c51ce6 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0803ce44 _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x09f07b48 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0d1af88b _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x13707b9e _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1bb9217c _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1c761b22 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x209103bf rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3420df93 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x37030120 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x42b43732 rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4639b40c rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4fa09e90 _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x55128016 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5ae733ad rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6655f72e _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x69e3c51d rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6bb16a86 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x71ba8724 rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x74d06d8d rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x754c3935 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7bc8424e rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7cc038b0 rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x80fac5b3 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x82534f9e _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x91b44c97 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x930ada44 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa701dbfd rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xab55e0a6 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xabff6578 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xae9ab964 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb2fe5f4d rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbcb7c45a rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcd7eb41a rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd7065658 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd948784e _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd9f9da90 rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xefb9e2aa rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfcb72c05 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x57e1a8aa rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x6d2aeda8 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0xe6d67ccc rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0xec98bbbc rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x56e2a40d rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x7dab1ed2 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x7dc71b35 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xed4c4742 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x03dbe0f8 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1011e20b rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x207fbb70 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x3eb9752f rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x412757dc efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x59c65750 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x600af3be rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x72fdc263 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7582da22 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79188a02 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7f93d127 rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x82190224 rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x9da9b188 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa189d4ee rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xaf656eba rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb10ac16e rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xce878192 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xce8aafd7 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xdf5c4d00 rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe1100374 rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe52675ab rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe96e2f21 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x33562042 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x36bfee90 wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x9b3f3607 wlcore_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xada8508d wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/nfc/microread/microread 0x193fb01e microread_remove +EXPORT_SYMBOL drivers/nfc/microread/microread 0x4d7324e9 microread_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xd01ec1fb pn544_hci_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xe6038526 pn544_hci_probe +EXPORT_SYMBOL drivers/parport/parport 0x09959941 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x189a5975 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x19ce4b1f parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x3141aca8 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x344e0117 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x3580abf9 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4dc5aeae parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x514b21ee parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x52a2d920 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x63892774 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x8d837e2d parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x9d05c0a9 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xb16eb38d parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xb303174e parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xb731168a parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xbc722bd0 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xbd36fa3f parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xc21017a4 parport_release +EXPORT_SYMBOL drivers/parport/parport 0xc6c29d50 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xc8a66e3f parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xcc22688b parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xcf6f65db parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xd065d493 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xd1ea44f0 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xdc4f0d1b parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xe3261864 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0xea8dae0f parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xf7ae09c0 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0xfbd57a4e parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xffd4cb79 parport_read +EXPORT_SYMBOL drivers/parport/parport_pc 0x9ebee639 parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xe4a6c090 parport_pc_probe_port +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x17ced4d0 rproc_put +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x17e0899d rproc_del +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x1ede5a90 rproc_boot +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x5db4d3f8 rproc_alloc +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x6e5d2957 rproc_add +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x7a23378e rproc_shutdown +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x8b443487 rproc_vq_interrupt +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xd39ffb97 rproc_report_crash +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xeebc5d0c rproc_da_to_va +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x006f79ee fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x02a93faa fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1ead19f4 fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x21a4b2b4 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x4987f5bb fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x52198399 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x67a43cd8 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6a6d468f fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x71453c6f fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x781cf3ba fcoe_ctlr_destroy_store +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8f7fb3c9 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf5811a54 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0008e9db fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x03f10987 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0482234b fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x05ade1d8 fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x06279d33 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1652e359 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x17663fa6 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1d39eaf8 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1d4f7f8b fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1ed050df fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2551a4b0 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x26d17254 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2f88ae99 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x33008318 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3b0bdc7e fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x46c1da89 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4731d4b7 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x48cc00be fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c5eee93 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x50cdcdb8 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x53443d6d fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x53cc2c5c fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x58f7df22 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x66bb5497 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6cdb8ee6 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e7b8611 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e7c17e1 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x702fa3db fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x72f19db5 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7d6418cb fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8dea58c8 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8fecbbc1 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x90b9f3ed fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x92b2e8f3 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x98999f4c fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9bfbbde6 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa03010cc fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa59796ab fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaa087252 fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb52f8f39 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb90736e3 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc17b68a3 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc357f24b fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc753d87e fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd7b03097 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd88eea05 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe482768b fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe739341f fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xec23ba9d libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf81cd669 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc471e52 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfe7f0254 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x06a3ba88 sas_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x334d86fd sas_wait_eh +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xfabab570 sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xfdf47f9c sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xc24541ea mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0129e5cc osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x017840d8 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x04916375 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x06bd3eb5 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0e275462 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1f26568a osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1fa68bda osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x206a537f osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x216b78c5 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3920b721 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x413b41ce osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4b2637ea osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4d65dae3 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5a514d0a osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x602540c7 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8235c21c osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb07bfd8f osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb21dd509 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb2f26071 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb4ea1450 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb759b742 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb7c957c4 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc01d527f osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc3bca214 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd82beb85 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe60a112e osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xec90727b osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xec9c7e39 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xeef757f9 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf354a3ce osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf553a936 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf66ea3dd osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf71a085d osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfea66381 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfedde82c osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xffbd1141 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/osd 0x0ca199c0 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x2e357c42 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x81144167 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0xba59fe81 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0xcf435c0a osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xf133c086 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x00ccd502 qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x28a3d32f qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x3c2a99bd qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x54cb055d qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x5964c013 qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x783447f0 qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7927085a qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x79a17443 qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7b4179b3 qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x932795c1 qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x94c47401 qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/raid_class 0x3ea23f0f raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x9abb0dc8 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xf7f9dda3 raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x479e601f fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x56fd8d85 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7dc1b965 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7e144b63 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8a6f5598 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8dd7f28a fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x903ae442 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9f6b263a fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xaa87f711 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbe7b1904 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd6271048 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe7f81f83 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfcae002e scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x032332a2 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x119ece44 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1da52dab sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3155a507 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x32b2770b sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3c957ce4 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x419d5f71 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x469fecfd sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x47dcc2b8 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4b04f369 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4d96dcc7 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x53469ee0 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x60ce0031 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x613db072 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x778b014a sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x85f5407b sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8bbdf6dd sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8c43af3f sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8ce74342 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x918db669 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x93b14916 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x95710282 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaae4761e sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb7d88fbf sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbaa156db sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe94ec7a7 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf0b27ad4 sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf306a98c sas_release_transport +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0x9a9c7a4a ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0xa73651c1 ufshcd_runtime_resume +EXPORT_SYMBOL drivers/scsi/ufs/ufshcd 0xaedaccd4 ufshcd_runtime_idle +EXPORT_SYMBOL drivers/ssb/ssb 0x0c1d3f1a ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x0e318b8a ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x1425b2e9 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x17d5a701 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x3c04da71 ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x3ed573d1 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x4e6386c4 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x5a970e34 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x79ad9101 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x7a946efa ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x872c5499 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x9d445452 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xa4fcefc8 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xac1fa9b9 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd0c3d390 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xddc826b5 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xde009a39 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xe7119ead ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xf52aefad ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xf6dcfc55 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xff0ba1b2 ssb_bus_suspend +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x03b9a038 iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x06e30e6f iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x282a321b iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2f0a0ec2 iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2fe4d9fe iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x341dd380 iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x35afa616 iscsit_handle_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x481eab89 iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4a76c55a iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x54d6f174 iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x697198ff iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x71e4deb2 iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x78dc63be iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x89052445 iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8e248115 iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x952fa279 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9ae1b689 iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9e45c7a6 iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa0cafdf0 iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xadd822ea iscsit_set_unsoliticed_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbd58c642 iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xcff49193 iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe095793a iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xec5519b4 iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xee1c2324 iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf783497d iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xfae6b8fc iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xfd795c84 iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/target_core_mod 0x025b1327 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x038b12a5 spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0x0b2bad0f iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x0e9494ef target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x19d902f2 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x1a3d7787 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x1c3784bf core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x1d297f80 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x1d789826 transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0x201e65dd transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x20b7c53e target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x21fafd02 target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x2512d88d transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x28bed00f transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x2df7bf62 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x3095456b fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x310a7b18 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x347efb8c transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x3b213164 spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x41152268 sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x4376de4f transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x4962aa4e target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x4a934142 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x4e280f56 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x54f1b7c6 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x5c52234d transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x615a6907 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x63255841 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x67593d5a target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x6a9c1933 transport_init_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x6ed4f502 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x6f8dc118 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x704d5a92 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x712ec7ef target_put_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7477b48d core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7736b511 target_sess_cmd_list_set_waiting +EXPORT_SYMBOL drivers/target/target_core_mod 0x7c321ee6 sbc_execute_unmap +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fee8ae6 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x829922a1 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x873c6f84 target_get_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x8940c2a9 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0x948bc9bc fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x99a05708 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x99d23d2b transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x9b7cbd1d transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x9f480acf core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0xa264a023 sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0xa2a0005e spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0xa9e6bb3c sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xaa9c97f0 target_setup_cmd_from_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xae48ba1c transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xb58cedca transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xbc00298e target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0xbd3f4d1a core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xbfb33047 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xc0f0aa9c core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xc9c2e0b4 target_submit_cmd_map_sgls +EXPORT_SYMBOL drivers/target/target_core_mod 0xd122d80f transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xd4f66f0a fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xdcec2518 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xdeee19a8 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xdfbbbf70 target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xe2ffccf0 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xe496baba core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xe5bec43e transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0xed3296f1 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0xee724ac2 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf0e76f43 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0xf8ea80a3 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0xf8f3e80c spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xfef708b7 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0x2ee3fb3c usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/phy/phy-generic 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/vhost/vringh 0x0dda8c5a vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1f063017 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x2eae4a2a vringh_getdesc_user +EXPORT_SYMBOL drivers/vhost/vringh 0x36dfce73 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3b304ebb vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3eaf442a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3fa42e4f vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x4311cd91 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5dafbd4e vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x66af098b vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x6d0e7948 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x76bd9a5d vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x97fa07e9 vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xaf8e4a0e vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xafb47dae vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc884d704 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc8bee0a4 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xda4ea4cc vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xde804bb9 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x1fd41026 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x1ffb5da9 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x9e85705a devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xde0eab17 devm_lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x49766f74 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x0af5c095 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xcfa06f0f matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xd234372f g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x22db1beb matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x3b11d9af DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xb4e17ccf matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xcefff591 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x6433ef51 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xb68a0fe1 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x030b9ccf matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x6e77d150 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x93f178f6 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xd1bc787a matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x9945c821 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xc011ce91 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x28689db7 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x2d825684 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x434afa69 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x9b7bff68 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xe83a9426 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0x9dd3a115 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x0a269ba3 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xc3256b88 video_output_register +EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free +EXPORT_SYMBOL drivers/video/svgalib 0x0dc823b4 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x48ce81d6 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x6e4adb1e svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x7c502b28 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x8de63fb4 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0xaa6b0a36 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0xb517d73c svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0xc29c7c05 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xeb65f605 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf2db5956 svga_match_format +EXPORT_SYMBOL drivers/video/syscopyarea 0x0d9aab14 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0x03e73ae0 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x71774f2e sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/vme/vme 0x0c6bdc3f vme_master_read +EXPORT_SYMBOL drivers/vme/vme 0x0e79ab4b vme_irq_generate +EXPORT_SYMBOL drivers/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/vme/vme 0x149d697b vme_slot_get +EXPORT_SYMBOL drivers/vme/vme 0x20df5a3d vme_dma_pci_attribute +EXPORT_SYMBOL drivers/vme/vme 0x3e95083c vme_slave_get +EXPORT_SYMBOL drivers/vme/vme 0x4489a341 vme_slave_request +EXPORT_SYMBOL drivers/vme/vme 0x46340436 vme_register_bridge +EXPORT_SYMBOL drivers/vme/vme 0x46649cd1 vme_lm_set +EXPORT_SYMBOL drivers/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/vme/vme 0x4baf35a7 vme_master_get +EXPORT_SYMBOL drivers/vme/vme 0x52983a4f vme_master_write +EXPORT_SYMBOL drivers/vme/vme 0x533b9cb5 vme_bus_type +EXPORT_SYMBOL drivers/vme/vme 0x535c8308 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/vme/vme 0x5aff4177 vme_lm_get +EXPORT_SYMBOL drivers/vme/vme 0x5b5c04bf vme_new_dma_list +EXPORT_SYMBOL drivers/vme/vme 0x644c6c00 vme_unregister_driver +EXPORT_SYMBOL drivers/vme/vme 0x79a33f85 vme_get_size +EXPORT_SYMBOL drivers/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/vme/vme 0x81c99f67 vme_dma_list_add +EXPORT_SYMBOL drivers/vme/vme 0x89e8d7ee vme_register_driver +EXPORT_SYMBOL drivers/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/vme/vme 0x989621a0 vme_irq_request +EXPORT_SYMBOL drivers/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/vme/vme 0x9f4349d6 vme_lm_request +EXPORT_SYMBOL drivers/vme/vme 0xa2a335bd vme_alloc_consistent +EXPORT_SYMBOL drivers/vme/vme 0xa31bdf07 vme_master_set +EXPORT_SYMBOL drivers/vme/vme 0xae839225 vme_dma_request +EXPORT_SYMBOL drivers/vme/vme 0xaeb2fc64 vme_unregister_bridge +EXPORT_SYMBOL drivers/vme/vme 0xb5fc78c7 vme_master_request +EXPORT_SYMBOL drivers/vme/vme 0xca5ee09a vme_free_consistent +EXPORT_SYMBOL drivers/vme/vme 0xcd73abfa vme_dma_list_exec +EXPORT_SYMBOL drivers/vme/vme 0xdb36975a vme_irq_free +EXPORT_SYMBOL drivers/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/vme/vme 0xe4238c8e vme_dma_list_free +EXPORT_SYMBOL drivers/vme/vme 0xefd1624a vme_dma_free_attribute +EXPORT_SYMBOL drivers/vme/vme 0xf5a10e25 vme_slave_set +EXPORT_SYMBOL drivers/vme/vme 0xfacd8e72 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/vme/vme 0xfbc4d313 vme_irq_handler +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x037c8961 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x9ca79a35 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xa6c1086d w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xca58de93 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xc8f6fc7c w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xda315243 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x53c1a578 w1_ds2781_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0xaae48cae w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/wire 0x0f3d885e w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x20a46eb8 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x2b547c2b w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x9b3ad715 w1_add_master_device +EXPORT_SYMBOL fs/btrfs/btrfs 0x27476846 ulist_reinit +EXPORT_SYMBOL fs/btrfs/btrfs 0x41e6a9d2 ulist_init +EXPORT_SYMBOL fs/btrfs/btrfs 0x7e2ee765 ulist_free +EXPORT_SYMBOL fs/btrfs/btrfs 0xa2eec2e8 ulist_fini +EXPORT_SYMBOL fs/btrfs/btrfs 0xb1320bc8 ulist_add +EXPORT_SYMBOL fs/btrfs/btrfs 0xb42289d2 ulist_alloc +EXPORT_SYMBOL fs/btrfs/btrfs 0xc2c745db ulist_next +EXPORT_SYMBOL fs/configfs/configfs 0x4e335a4e config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x6453c569 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0x6d7c34fc configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x6e84f112 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x9e3f4af7 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xa85ebe89 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xafbbdb35 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0xb4fcf39e config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xcb4fa746 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xcb5d0345 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xf3c7f5f1 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xf62ffeab configfs_depend_item +EXPORT_SYMBOL fs/exofs/libore 0x16e462e2 ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0x26150623 ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x28dabb94 ore_read +EXPORT_SYMBOL fs/exofs/libore 0x4527e170 ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x455ba589 extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0x45a0234d ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0x77987e11 ore_remove +EXPORT_SYMBOL fs/exofs/libore 0x976408df ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xa56a6e0c ore_write +EXPORT_SYMBOL fs/exofs/libore 0xdbdc2640 ore_create +EXPORT_SYMBOL fs/exofs/libore 0xf55201e3 ore_get_rw_state +EXPORT_SYMBOL fs/fscache/fscache 0x062749f3 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x09c1bb14 fscache_mark_page_cached +EXPORT_SYMBOL fs/fscache/fscache 0x19288de2 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x1a00fb9e fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x254c6c63 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x2818e29a fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x289d2b4f fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x2f3a1e35 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x3ae0ea52 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x3d02d9f8 __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x3f2e884b __fscache_check_consistency +EXPORT_SYMBOL fs/fscache/fscache 0x472890f6 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x479f86a6 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x582598c6 __fscache_readpages_cancel +EXPORT_SYMBOL fs/fscache/fscache 0x6833334a __fscache_disable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x68712c75 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x72453d95 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x8412f449 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x87215003 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x916ca58d fscache_op_complete +EXPORT_SYMBOL fs/fscache/fscache 0x9b480fb5 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x9f858a8f __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0xa733162c __fscache_enable_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xa96a1855 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xac793bdb fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xc244dcd0 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xcdadd24e fscache_object_init +EXPORT_SYMBOL fs/fscache/fscache 0xcf075ab5 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0xd5a3fd79 __fscache_wait_on_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0xdaf052ee __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0xe677f497 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xe99951b5 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xee66cc14 fscache_object_destroy +EXPORT_SYMBOL fs/fscache/fscache 0xee968bcc __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xf523f0f4 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xf951b4a9 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xf9ee8e3d __fscache_acquire_cookie +EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who +EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype +EXPORT_SYMBOL fs/nfsd/nfsd 0xa0f4b528 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0xb25b2957 nfs4_acl_nfsv4_to_posix +EXPORT_SYMBOL fs/nfsd/nfsd 0xe13337f0 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x04988b8b qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x053fb2be qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x5fd68766 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xa0f44323 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xc9cca284 qtree_delete_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x1a703ba1 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x6d356209 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc7 0x6c1f6fee crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd09b2cba crc8 +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x17530a2d lc_set +EXPORT_SYMBOL lib/lru_cache 0x2eb86314 lc_committed +EXPORT_SYMBOL lib/lru_cache 0x3c858567 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x3ec8e9bb lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x486392c2 lc_del +EXPORT_SYMBOL lib/lru_cache 0x55d40ad0 lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x70d9ddd8 lc_get_cumulative +EXPORT_SYMBOL lib/lru_cache 0x745ebaab lc_find +EXPORT_SYMBOL lib/lru_cache 0x846875a0 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x8c26f371 lc_try_lock +EXPORT_SYMBOL lib/lru_cache 0xbea1b0ba lc_try_get +EXPORT_SYMBOL lib/lru_cache 0xc343305e lc_is_used +EXPORT_SYMBOL lib/lru_cache 0xca60cc57 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0xd6e146aa lc_get +EXPORT_SYMBOL lib/lru_cache 0xdaef897c lc_put +EXPORT_SYMBOL lib/lru_cache 0xe7800d85 lc_create +EXPORT_SYMBOL lib/lru_cache 0xfe413d0d lc_element_by_index +EXPORT_SYMBOL lib/lz4/lz4_compress 0x0c222eb5 lz4_compress +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x682a23e0 lz4hc_compress +EXPORT_SYMBOL lib/raid6/raid6_pq 0x0bd662f6 raid6_gfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0x15fe0cd3 raid6_gfexp +EXPORT_SYMBOL lib/raid6/raid6_pq 0x5ba93f9d raid6_gfinv +EXPORT_SYMBOL lib/raid6/raid6_pq 0xce45a6f1 raid6_gfexi +EXPORT_SYMBOL lib/raid6/raid6_pq 0xd9e91f83 raid6_vgfmul +EXPORT_SYMBOL lib/raid6/raid6_pq 0xefc78e77 raid6_empty_zero_page +EXPORT_SYMBOL net/802/p8022 0x31e37b46 unregister_8022_client +EXPORT_SYMBOL net/802/p8022 0x8ad59539 register_8022_client +EXPORT_SYMBOL net/802/p8023 0x8f0ce5f3 make_8023_client +EXPORT_SYMBOL net/802/p8023 0xfd4a17ed destroy_8023_client +EXPORT_SYMBOL net/802/psnap 0x5ca9698b register_snap_client +EXPORT_SYMBOL net/802/psnap 0x64476010 unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x01a4b29e p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x07f42013 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x09312263 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x10f51bab p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x1417c52a p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x15e415e3 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x19327ac7 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x21c61e23 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x2245a462 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x26720f49 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x274e3e59 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x2ac14fda p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x34c493d8 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3aeaa2d6 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x44d2c2c0 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x528eaa90 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x53ab3976 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x623f9c43 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x6f0266c1 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x8554441a p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x88613571 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x95a85088 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x95e1263d p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x96bc4556 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x9f072a32 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0xa839497b p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xafc27084 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xb012a963 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xb2fe4c75 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xbe24067f p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xc21a3e21 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0xc27c7a43 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0xc2fb9b3e p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xc3cd0b12 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xcbfad7b4 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xcce87077 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xcff175fe p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xd016d896 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0xd0176f9e p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xd25bebe7 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0xd4327bae p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xe26b93af p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xf185e94b p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xf87ed60e p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x4ebca5eb aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x5bb23386 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x8b7eec22 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xb83d1bb7 atalk_find_dev_addr +EXPORT_SYMBOL net/atm/atm 0x0e73c0b5 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x2422a951 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x281323f2 atm_charge +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x392265e3 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x528ba95a deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x626ece39 vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0x7478f88c atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xca87b453 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xcb834ff0 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0xd422973a atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0xdde6861b atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0xde1927a1 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0xe5280b46 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xffc8fe33 atm_alloc_charge +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x248e5b0a ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x262dfbe0 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x3afee63e ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x43319ba0 ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x5e3c96fb ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x72c9f5f8 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xa6706803 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xb820bef8 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xdea6deae ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xe4c26a48 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xe612246b ax25_listen_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x067d5d6f hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0aef9b91 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0d201c4c hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x11e848f4 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x134a736c bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0x14cae38b bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x23180a6e hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2bfb992d bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x31ef61a5 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x347c2527 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x36f83fdc l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3f1713fb hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4d8370ec hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x50653451 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5142ade9 bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0x54b46dc7 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5d2dc44c l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x600ef6f0 l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6392b78c hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x64fe2969 bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6820d84f hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x69c77537 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x72b62835 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x72bcbf51 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x74d080d6 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7878431c bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x78db8773 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c640527 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x84efc4b1 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x90d50acc hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa280d8f5 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa3a1ba7e l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaaf309b3 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xac3d91b0 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb61a0c3b bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc0eaaaaa hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc1becb67 __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc1f5a742 __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfcd1cf7b hci_conn_security +EXPORT_SYMBOL net/bridge/bridge 0xaa974386 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x278e1308 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x5f7024cd ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xec20cb10 ebt_unregister_table +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x313c91b8 caif_enroll_dev +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x38701a7c cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x3a59d7e4 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x6a44fc70 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x745f33c2 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x773e4ac1 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x966d7de2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/caif/caif 0xc5daf05f caif_connect_client +EXPORT_SYMBOL net/can/can 0x19968614 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x39fd837a can_send +EXPORT_SYMBOL net/can/can 0x930606d6 can_ioctl +EXPORT_SYMBOL net/can/can 0xaa92d06f can_proto_register +EXPORT_SYMBOL net/can/can 0xbfe8ea77 can_rx_register +EXPORT_SYMBOL net/can/can 0xdacf3526 can_proto_unregister +EXPORT_SYMBOL net/ceph/libceph 0x05b26d64 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x06172868 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x06a0320b ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0adf132d osd_req_op_watch_init +EXPORT_SYMBOL net/ceph/libceph 0x0bacd581 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x0cb8f11b ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x0d61c270 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x0f337e7e osd_req_op_cls_response_data +EXPORT_SYMBOL net/ceph/libceph 0x12e09439 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x1475bf0d ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x180411bb ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x20d151cb ceph_osdc_setup +EXPORT_SYMBOL net/ceph/libceph 0x29b0ea94 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x2b3ccd61 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x2be40916 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x31dadb07 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x31dd504f osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0x337c5d0f osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x346fc9de ceph_auth_update_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x348dfc9e ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0x373f8191 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3df0ec7c ceph_calc_ceph_pg +EXPORT_SYMBOL net/ceph/libceph 0x3ed7d747 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0x3f688151 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x4205ffd7 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x42266071 ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x429c9801 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x42a264bc ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x43efd647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x47070880 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x4a283545 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x4a60e55c ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x4b8a3425 ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0x4e576957 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x4fbfa32b ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0x52bec055 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x570ceb67 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5c6755d4 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x6b2e3bcd ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x6bfa678c osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x6c5d5ac1 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x6cf7bd28 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x6e49d65c ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x6ebf90c7 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x7168baf8 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0x76ccac38 osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7e854eca osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x81eae1b6 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x8a024871 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x90eac4a4 osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0x945093d8 ceph_auth_create_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x969c7346 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x99de4738 ceph_messenger_init +EXPORT_SYMBOL net/ceph/libceph 0x99e36571 ceph_osdc_cleanup +EXPORT_SYMBOL net/ceph/libceph 0x9bc02117 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0x9cd88f4b ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa0874d72 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0xa1a71e5a __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xa3ae9ac6 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0xa9590489 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0xae3515ba ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xae759688 ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb02d4993 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xb407523e ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb65016c7 ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0xb9924cfd ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0xbc851535 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0xbd60bfcb ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xbeed405c ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc55de604 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb339700 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0xcb4e7dce ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcdc93465 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd3ae4e91 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xd8692cbe ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0xd94cab20 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0xde62b7da ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xde66bfa6 osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xe82c9c32 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0xed229339 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0xf5774cba ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0xf8fecee4 osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xfa390296 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0xfb11724d osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xfbc64433 osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0xfd5d3a17 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0xfe7bf2dc ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/dccp/dccp_ipv4 0xd94c35c9 dccp_syn_ack_timeout +EXPORT_SYMBOL net/ieee802154/ieee802154 0x310dcb33 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x40eeec3f ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4993d3bd ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5761a536 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x585d9410 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5fe31d95 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6c173fdf wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x72bfa0f4 ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x96c9023b wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa983acca ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xaa588757 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xcef0dd99 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0xefd0ddf4 wpan_phy_unregister +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x0a8280db arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x4e87c983 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xc3926a0f arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x2090c0d8 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x291b3bbd ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xfb20c72d ipt_do_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x648affa9 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xefeda995 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x001b25b5 ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xdf73694b ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x3c21ef9b ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa5dc5500 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb0e93f10 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x8f1827fc xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xe4139baf xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x40eeccf6 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x6b053ca6 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x120521c7 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x33f3b1e0 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6150cfee ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x762cc0ee ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xae337e97 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb25d6ab5 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb277eff4 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xc435aa04 ircomm_data_request +EXPORT_SYMBOL net/irda/irda 0x0064e0ea hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x02d32be8 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x1e6cade0 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x1fa5400a irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x241cbca4 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x32d839c9 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x33cbe2c6 proc_irda +EXPORT_SYMBOL net/irda/irda 0x3e56064f hashbin_new +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x478e5daf irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x4eb4d401 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x5770e4ce iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x601bda46 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x643efc5c irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x6442b2ac iriap_open +EXPORT_SYMBOL net/irda/irda 0x6850bc20 iriap_close +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6b5fbcef hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x6d1e943b irttp_dup +EXPORT_SYMBOL net/irda/irda 0x6e0ab3c7 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x72a1e199 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x84afa6fb irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x8576d978 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x85d88217 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x87ea162e irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x89a330d4 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x970e73fe irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0xa1d41e58 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xa69c4b35 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0xaa557515 irias_new_object +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xc0ea42b7 irlap_open +EXPORT_SYMBOL net/irda/irda 0xc49dd397 irlap_close +EXPORT_SYMBOL net/irda/irda 0xc68e43be irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0xcead7dbb hashbin_find +EXPORT_SYMBOL net/irda/irda 0xd2108314 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xd5c35d07 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0xd6bfc1b8 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe26b061e irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xe3463529 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xe3bde43e irias_insert_object +EXPORT_SYMBOL net/irda/irda 0xe5426e2c alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf0a694a1 irias_find_object +EXPORT_SYMBOL net/irda/irda 0xf50131ba irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xf5876b95 hashbin_remove_this +EXPORT_SYMBOL net/l2tp/l2tp_core 0x68983325 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x4ecf471c lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x6c02802b lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x775ef125 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x94f5965e lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xc1c5d45c lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xca6c2c36 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xe828b7a7 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xf6a2110e lapb_disconnect_request +EXPORT_SYMBOL net/llc/llc 0x1db1a906 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x471cc4a9 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0xb9c08bfe llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0xc35e28f7 llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0xc43e0cda llc_sap_find +EXPORT_SYMBOL net/llc/llc 0xc631bfa3 llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0xcc28e7dd llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0xd76885e1 llc_add_pack +EXPORT_SYMBOL net/mac80211/mac80211 0x009376f2 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x074d7a86 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x090cc6af ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x0cd02d08 ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x109b918c __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x140a3e8b ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x19722268 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x1c85fb88 ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x1d57f4dd ieee80211_csa_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x21a2ae71 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x24fb0e6f ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x2a28b4a2 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x2cd19c6b ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x2e6dc212 ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x2ed1cc3a __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x2f15cf27 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x3ad67d84 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x3f2b9d69 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0x40945030 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x545951cd ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x561b4e8c ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x595fb427 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x5aa7ba18 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x672d34f7 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x6f43ad10 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x7376a01f ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x76586733 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x7c6d2682 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0x860997d7 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x89132efa ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x906745a4 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x908ce58e ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x94c14d44 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x9674f8b3 ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0x97db509a ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x998f42a8 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x9c5e6334 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0xa1fc36c4 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa672a5a3 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xa92c8194 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xb87f6fef ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xbb446080 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xbecac089 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0xbfec1409 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xc0c3e8db ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xc4f36e5d ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xc9b79393 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xcccafe99 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xd279cdff wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xd37c1600 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0xd4614a6a ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xd64ea5de ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xd7827831 rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xd87eb66f ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xd93d7c05 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd976fb50 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xdc5d1b0a rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0xdc79cf05 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xdd1f5e68 ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe0ad9a12 ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0xe389579a ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0xe739c13b __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xec1dfc14 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xf067c4a6 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xf395de03 ieee80211_aes_cmac_calculate_k1_k2 +EXPORT_SYMBOL net/mac80211/mac80211 0xf5df7e14 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0xf68dcd39 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xf83a39ff ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xfb1589f6 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac802154/mac802154 0x0af892fd ieee802154_alloc_device +EXPORT_SYMBOL net/mac802154/mac802154 0x3a37678f ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0xdaf4af06 ieee802154_free_device +EXPORT_SYMBOL net/mac802154/mac802154 0xe6c344c6 ieee802154_register_device +EXPORT_SYMBOL net/mac802154/mac802154 0xfd30d986 ieee802154_unregister_device +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x01814db9 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x02d51530 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1354d7d0 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x225d40df ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2999ac28 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2b1379f0 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fe614b2 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x85dd30fa register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x961f1fc3 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9c566880 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xcd41c211 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd6a15637 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdd892fea ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf5e5501e ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x45e9941e __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xadedd296 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xf79634f1 __nf_ct_ext_add_length +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x827cc6a1 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x8ad8cc8f nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/nf_nat 0x2067e720 nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0xa891cd31 nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0xbb5bd285 nf_xfrm_me_harder +EXPORT_SYMBOL net/netfilter/nf_nat 0xdbd766ef nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0xe17fe24b nf_nat_used_tuple +EXPORT_SYMBOL net/netfilter/nf_nat 0xfb4ea9f6 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x116cd357 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x253e8b44 xt_compat_init_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x520bad51 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x585711ec xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x5ec01639 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x8807a2f2 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x8cf118a7 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x93767073 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xc5288b6d xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xebb3be87 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xfc4c0305 xt_unregister_target +EXPORT_SYMBOL net/nfc/hci/hci 0x15924bfa nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0x1dece588 nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x3e762970 nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0x43028a27 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x4b7103c2 nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x5111dfea nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x5890ce6c nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0x5cdb7f94 nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0x609d5226 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0x60aa995b nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0x76aeb90d nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0x940ee381 nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0xa6da4501 nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0xab52a1ae nfc_hci_send_response +EXPORT_SYMBOL net/nfc/hci/hci 0xb1cc55f5 nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xb7733b8f nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0xbca0b4fd nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xc7bf3e2c nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xc83411c1 nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0xd1b1ee13 nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0x3de3d1d3 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0x9085db83 nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xc25639d2 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0xc72e2460 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xd839617f nci_recv_frame +EXPORT_SYMBOL net/nfc/nfc 0x028f0893 nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0x145c0693 nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0x4065a2ab nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0x4757f1e6 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x5bc12b7a nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0x5c8b1270 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x62081fdc nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x6f205114 nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x9741a122 nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0x9801e399 nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x9870ce47 nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0x9ad87fb0 nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0x9c449c77 nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0xa19c9145 nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0xbd0bcc64 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0xbd1f8bd4 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0xd3a1967d nfc_class +EXPORT_SYMBOL net/nfc/nfc 0xe51b9305 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0xf7bf0b7b nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0xff5724e1 nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc_digital 0x1abc2037 nfc_digital_unregister_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x696dfdeb nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xe541f744 nfc_digital_register_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xf5c6e848 nfc_digital_free_device +EXPORT_SYMBOL net/phonet/phonet 0x2fbbc8a1 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x3a928c95 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x5aedb2d6 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x6b8cd0c3 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xad4011fa pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xbbae5885 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xe3ea46b4 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xed6ef140 pn_sock_unhash +EXPORT_SYMBOL net/rds/rds 0x7505d413 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1b430d49 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1e27aa8c rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4a19306d rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4fa22f83 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x81c96af8 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8c7471f1 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x937e1445 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xca084ba5 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd0a3a188 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdb308c2f rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xeca6249d rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xee03e91a rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf0b7ba2e rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfcaf7640 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfd4a5307 key_type_rxrpc +EXPORT_SYMBOL net/sctp/sctp 0xf0b792c1 sctp_do_peeloff +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x1819c230 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x42e248f4 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xdaa023f9 gss_mech_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0xa5a91523 svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0x00fcedbd wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0x8f80b6a8 wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x02b3250b cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x065928f3 cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x09e5c99f cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x0bccda22 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x0d0653b7 cfg80211_roamed_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x0fa28601 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x0ff3d480 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x106bc96d cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x15110fd2 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19e03378 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x1eb03ca9 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x1efd11a1 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x247dacd8 cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x26d07690 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x276e5743 cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x30d2a585 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x324c02f6 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x3e1f0ecb cfg80211_inform_bss_width_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x400b2acf wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x403d8117 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x406a8302 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x408e3898 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x41510653 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x4c3b5878 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x4c40b2fb ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x5187c9be cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x549ae50f ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x54dc4b85 cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x5af208b2 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x5d1a6a97 cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x5d3adbea cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x659bd295 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x68dfeebe wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x69a57f6a wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6d6cb9ad ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x6ece0353 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x6f589160 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x74235327 cfg80211_report_obss_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fd3895a cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x8089bec6 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x8435f3fe cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x8479ba4e cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x8491c6c5 cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0x8b0b01c2 cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x9177ee3a cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x96358c1f cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9a553a65 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xa129c7e4 cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0xa1425906 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa3c9fae5 cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xa4d2e0ca cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xab2e08b5 cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0xaebdf92d cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0xafea40c0 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xbeafd099 cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xbee437ed cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xc13e0f8a __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xc15c8611 cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0xc1e6818e freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xcf0015fb wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xcf618a57 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0xd5dea36e cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0xda02b21b cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xdba126c1 reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0xdc63e71d cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xdfbfa9e5 cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xe42b8889 cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xe56920d4 cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0xe84bb3bd cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xe8a64be8 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0xeb3f0eb3 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0xeb674b1a cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xec3b4636 cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0xee42db3c cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xeea0af5c cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xef09ddc1 cfg80211_inform_bss_width +EXPORT_SYMBOL net/wireless/cfg80211 0xfdd92c55 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x0f7479af lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x4ae7f937 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x51de967f lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xbad8252c lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xc53c5bd2 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe6a6f66c lib80211_crypt_info_free +EXPORT_SYMBOL vmlinux 0x00000000 __symbol_put +EXPORT_SYMBOL vmlinux 0x00000000 alloc_pages_current +EXPORT_SYMBOL vmlinux 0x00000000 current_fs_time +EXPORT_SYMBOL vmlinux 0x00000000 d_tmpfile +EXPORT_SYMBOL vmlinux 0x00000000 do_sync_read +EXPORT_SYMBOL vmlinux 0x00000000 filp_close +EXPORT_SYMBOL vmlinux 0x00000000 finish_open +EXPORT_SYMBOL vmlinux 0x00000000 generic_getxattr +EXPORT_SYMBOL vmlinux 0x00000000 generic_write_sync +EXPORT_SYMBOL vmlinux 0x00000000 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x00000000 in_group_p +EXPORT_SYMBOL vmlinux 0x00000000 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x00000000 iov_shorten +EXPORT_SYMBOL vmlinux 0x00000000 iterate_fd +EXPORT_SYMBOL vmlinux 0x00000000 ns_capable +EXPORT_SYMBOL vmlinux 0x00000000 path_is_under +EXPORT_SYMBOL vmlinux 0x00000000 register_exec_domain +EXPORT_SYMBOL vmlinux 0x00000000 schedule_timeout +EXPORT_SYMBOL vmlinux 0x00000000 sock_register +EXPORT_SYMBOL vmlinux 0x00000000 sys_close +EXPORT_SYMBOL vmlinux 0x00000000 task_nice +EXPORT_SYMBOL vmlinux 0x00000000 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x00000000 vm_brk +EXPORT_SYMBOL vmlinux 0x00082d10 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x0018a9a2 sg_miter_start +EXPORT_SYMBOL vmlinux 0x003ae981 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x00517caa block_truncate_page +EXPORT_SYMBOL vmlinux 0x0068ca6c fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x008b013b of_device_alloc +EXPORT_SYMBOL vmlinux 0x00a2dd64 elv_add_request +EXPORT_SYMBOL vmlinux 0x00ac6958 __next_cpu +EXPORT_SYMBOL vmlinux 0x00cf4a7f of_get_parent +EXPORT_SYMBOL vmlinux 0x00ecfe11 vm_map_ram +EXPORT_SYMBOL vmlinux 0x00f1491d i2c_verify_client +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0101d5b1 ip_idents_reserve +EXPORT_SYMBOL vmlinux 0x01222e1e blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x0129bbee sock_kmalloc +EXPORT_SYMBOL vmlinux 0x012a97fc xor_altivec_4 +EXPORT_SYMBOL vmlinux 0x012dd853 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x01531a20 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x01790e94 csum_partial_copy +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x019e7765 __init_rwsem +EXPORT_SYMBOL vmlinux 0x01a81a64 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x01c8e84d ida_simple_get +EXPORT_SYMBOL vmlinux 0x01d70260 dquot_operations +EXPORT_SYMBOL vmlinux 0x01fd44ee pci_dev_get +EXPORT_SYMBOL vmlinux 0x020616a4 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x022eb3fd tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x0230aca6 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x023a074a hvc_get_chars +EXPORT_SYMBOL vmlinux 0x023bc044 get_agp_version +EXPORT_SYMBOL vmlinux 0x0240bfb7 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x024e3800 netpoll_rx_enable +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x026b1b51 __sb_end_write +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x0291f163 generic_make_request +EXPORT_SYMBOL vmlinux 0x0298b734 del_gendisk +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x03015b91 simple_dentry_operations +EXPORT_SYMBOL vmlinux 0x0309db7f datagram_poll +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x036c0a1f pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x039dc4a8 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03d1baeb __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x03ebda85 dns_query +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04030ce3 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x04074f48 ioremap +EXPORT_SYMBOL vmlinux 0x0413ad13 ip6_frag_match +EXPORT_SYMBOL vmlinux 0x041b88d6 of_match_device +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x04302436 read_cache_page +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x044e2a49 fget +EXPORT_SYMBOL vmlinux 0x045b0bc6 vga_get +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x0489ab27 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x04a85a6e sock_alloc_file +EXPORT_SYMBOL vmlinux 0x04b42bd5 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x04c2fec8 dev_get_flags +EXPORT_SYMBOL vmlinux 0x04cacafa blk_mq_run_queues +EXPORT_SYMBOL vmlinux 0x04d00129 vga_client_register +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04ea5d10 ksize +EXPORT_SYMBOL vmlinux 0x04eddfd7 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x0500e52b __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x0529a0c1 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x0530dede _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x05434bde backlight_force_update +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x055215f9 sock_no_getname +EXPORT_SYMBOL vmlinux 0x055c8559 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x05928899 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x0597a9fd kernel_read +EXPORT_SYMBOL vmlinux 0x059eb232 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns +EXPORT_SYMBOL vmlinux 0x05c1fdc0 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x05cfc44e bdput +EXPORT_SYMBOL vmlinux 0x05f0ac11 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x0609197d ip_check_defrag +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0631e7ba gen10g_read_status +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x0642d4c7 inet_add_offload +EXPORT_SYMBOL vmlinux 0x06642f9b sk_net_capable +EXPORT_SYMBOL vmlinux 0x066d2362 compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x06797871 vm_stat +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068dafa0 inet6_bind +EXPORT_SYMBOL vmlinux 0x06a34ae3 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x06bb103d padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x06bbb24a mempool_resize +EXPORT_SYMBOL vmlinux 0x06c336c3 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x06c3fd1f skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x070817f6 lock_may_write +EXPORT_SYMBOL vmlinux 0x070d60f2 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x073bbdf4 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x073f10ef dev_driver_string +EXPORT_SYMBOL vmlinux 0x074e9213 down_killable +EXPORT_SYMBOL vmlinux 0x076fa9f6 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x07762797 of_dev_get +EXPORT_SYMBOL vmlinux 0x0779add3 simple_statfs +EXPORT_SYMBOL vmlinux 0x0793d286 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b09d61 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x07b3afc7 inode_init_owner +EXPORT_SYMBOL vmlinux 0x07c3eb7b set_anon_super +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x081f6576 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083c2cbe of_get_next_parent +EXPORT_SYMBOL vmlinux 0x08488eab dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x0864e02a dev_uc_sync +EXPORT_SYMBOL vmlinux 0x086a242a netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0x08813e54 ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x0884ea31 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x08907f5c skb_put +EXPORT_SYMBOL vmlinux 0x089b82d2 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x089ddfb0 backlight_device_register +EXPORT_SYMBOL vmlinux 0x08c76236 pci_enable_msi_range +EXPORT_SYMBOL vmlinux 0x08cf82f8 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x08fbf9ef tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x09002fcf netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x09037b2f jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x09281384 led_blink_set +EXPORT_SYMBOL vmlinux 0x093b34f3 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x093d0582 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x093dc248 mutex_unlock +EXPORT_SYMBOL vmlinux 0x094011dd d_instantiate_no_diralias +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0991b9e5 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d37754 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x0a0dfd7e of_find_backlight_by_node +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a2c0da3 spi_attach_transport +EXPORT_SYMBOL vmlinux 0x0a33d921 compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x0a5e4fa2 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x0a5f2345 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x0a75c577 poll_freewait +EXPORT_SYMBOL vmlinux 0x0a770832 register_memory_notifier +EXPORT_SYMBOL vmlinux 0x0a99b8fb blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x0a9cd556 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acdb7d0 km_query +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ae603ec tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x0ae8f74f simple_write_end +EXPORT_SYMBOL vmlinux 0x0afa6123 fput +EXPORT_SYMBOL vmlinux 0x0afbc98b netif_skb_dev_features +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b0f189d capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0x0b122e0f phy_print_status +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b2e1ec7 h_get_mpp +EXPORT_SYMBOL vmlinux 0x0b414f0c tcp_close +EXPORT_SYMBOL vmlinux 0x0b56117f of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b7e6268 bdi_init +EXPORT_SYMBOL vmlinux 0x0b84e905 sock_wake_async +EXPORT_SYMBOL vmlinux 0x0b8ae082 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x0b9260da fb_set_cmap +EXPORT_SYMBOL vmlinux 0x0bae099b neigh_compat_output +EXPORT_SYMBOL vmlinux 0x0bbc5908 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bdc97cd pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x0c07f35e pps_event +EXPORT_SYMBOL vmlinux 0x0c45fc96 vfs_lstat +EXPORT_SYMBOL vmlinux 0x0c58a8cd netdev_increment_features +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c79a7d1 pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0ccd72f6 sget +EXPORT_SYMBOL vmlinux 0x0cd92674 __skb_get_hash +EXPORT_SYMBOL vmlinux 0x0ce281c7 __page_cache_alloc +EXPORT_SYMBOL vmlinux 0x0ce900af blk_finish_plug +EXPORT_SYMBOL vmlinux 0x0cf1f1b4 ipmi_get_smi_info +EXPORT_SYMBOL vmlinux 0x0d07c36f giveup_vsx +EXPORT_SYMBOL vmlinux 0x0d1c9de0 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0x0d35c94f md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0x0d3eff6c pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0x0d50a350 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d6c963c copy_from_user +EXPORT_SYMBOL vmlinux 0x0d71d0c3 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x0d77e77a phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dd80ae1 __dst_free +EXPORT_SYMBOL vmlinux 0x0de25618 audit_log +EXPORT_SYMBOL vmlinux 0x0e11f047 tty_port_put +EXPORT_SYMBOL vmlinux 0x0e1a3124 fsl_lbc_ctrl_dev +EXPORT_SYMBOL vmlinux 0x0e323fec get_pci_dma_ops +EXPORT_SYMBOL vmlinux 0x0e330443 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x0e6da44a set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x0e8e81ba fail_migrate_page +EXPORT_SYMBOL vmlinux 0x0e8f30f6 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x0e908d5d scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x0e992859 pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0x0ed275fb dm_unregister_target +EXPORT_SYMBOL vmlinux 0x0edadd1c vfs_symlink +EXPORT_SYMBOL vmlinux 0x0efcbb1b set_current_groups +EXPORT_SYMBOL vmlinux 0x0f1ea826 dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0x0f293a91 mdiobus_read +EXPORT_SYMBOL vmlinux 0x0f32d6c1 blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0x0f3bdc61 sock_update_classid +EXPORT_SYMBOL vmlinux 0x0f4c91ed ns_to_timespec +EXPORT_SYMBOL vmlinux 0x0f5faa7e wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x0f6c1870 posix_test_lock +EXPORT_SYMBOL vmlinux 0x0f8694a0 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x0f9011ac jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x0fa1e27e setattr_copy +EXPORT_SYMBOL vmlinux 0x0fa778c1 unlock_buffer +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fd1d704 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x0fe0545e scsi_host_put +EXPORT_SYMBOL vmlinux 0x0ff281e0 simple_link +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x0ffa15f2 mmc_gpio_free_ro +EXPORT_SYMBOL vmlinux 0x100770a8 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x10301c5b __alloc_skb +EXPORT_SYMBOL vmlinux 0x10392eaf seq_write +EXPORT_SYMBOL vmlinux 0x1061a207 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x10629c1a tcp_init_sock +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x107c2ba6 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x1095ecf2 read_dev_sector +EXPORT_SYMBOL vmlinux 0x10adad68 ptp_clock_event +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f18dc2 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11094b42 nf_log_set +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x113c36ba nla_append +EXPORT_SYMBOL vmlinux 0x11406bbc cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x1163885e bio_copy_kern +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x1182d83a cpuidle_disable +EXPORT_SYMBOL vmlinux 0x119c61ff blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x11a8b377 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x11b5e0ad phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0x11bb5fda eth_type_trans +EXPORT_SYMBOL vmlinux 0x11c4eee3 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x11c9185c of_iomap +EXPORT_SYMBOL vmlinux 0x11cda291 skb_seq_read +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x1204dd81 cdev_del +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x120d67d4 unregister_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x122043a8 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x12220109 try_to_release_page +EXPORT_SYMBOL vmlinux 0x122af6cd tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x122beba8 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x122f0449 dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x1235fcd2 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x12387b0e bdi_unregister +EXPORT_SYMBOL vmlinux 0x12818369 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12be6009 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x12c157a8 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x12cb71dc compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x12dfeb12 vprintk_emit +EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level +EXPORT_SYMBOL vmlinux 0x130161e5 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x131bdb6c ptp_clock_index +EXPORT_SYMBOL vmlinux 0x1320bdc8 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x132f6246 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x13307fde vsscanf +EXPORT_SYMBOL vmlinux 0x133def92 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x1348760d ipmi_request_settime +EXPORT_SYMBOL vmlinux 0x134cac56 do_sync_write +EXPORT_SYMBOL vmlinux 0x13541443 security_path_symlink +EXPORT_SYMBOL vmlinux 0x13542fcb mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x135ccda9 sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0x13ab5513 genphy_suspend +EXPORT_SYMBOL vmlinux 0x13affbda percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x13bc4408 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x13cf1e5a pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13e38f5c up_read +EXPORT_SYMBOL vmlinux 0x13f53da6 CMO_PageSize +EXPORT_SYMBOL vmlinux 0x13fa483e agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x144cab37 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x146bc85b agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x148cd5a4 mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x14978f65 devfreq_resume_device +EXPORT_SYMBOL vmlinux 0x14a14817 pSeries_enable_reloc_on_exc +EXPORT_SYMBOL vmlinux 0x15046ebe sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x1510ccab xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x15154691 rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0x151dd5fb install_exec_creds +EXPORT_SYMBOL vmlinux 0x154bfaa5 noop_fsync +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15556256 sock_no_accept +EXPORT_SYMBOL vmlinux 0x155ffe61 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x1574965c add_disk +EXPORT_SYMBOL vmlinux 0x15a6cc80 vfs_mknod +EXPORT_SYMBOL vmlinux 0x15d2ed5a netdev_notice +EXPORT_SYMBOL vmlinux 0x15d3fd60 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x15edcbc7 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x15f571ec blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x160317f3 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token +EXPORT_SYMBOL vmlinux 0x166b0950 ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x166d282d finish_no_open +EXPORT_SYMBOL vmlinux 0x166f3217 freezing_slow_path +EXPORT_SYMBOL vmlinux 0x167c5967 print_hex_dump +EXPORT_SYMBOL vmlinux 0x16ae82fe dquot_resume +EXPORT_SYMBOL vmlinux 0x16c206bc pcie_get_minimum_link +EXPORT_SYMBOL vmlinux 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL vmlinux 0x16eade7e mount_single +EXPORT_SYMBOL vmlinux 0x170463bb dev_addr_del +EXPORT_SYMBOL vmlinux 0x17320926 phy_disconnect +EXPORT_SYMBOL vmlinux 0x1743414f __debugger_fault_handler +EXPORT_SYMBOL vmlinux 0x175c2a94 block_commit_write +EXPORT_SYMBOL vmlinux 0x17648396 dev_base_lock +EXPORT_SYMBOL vmlinux 0x177de8e6 inet_frags_init +EXPORT_SYMBOL vmlinux 0x17844f70 update_time +EXPORT_SYMBOL vmlinux 0x179737d5 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x17b0d3ff sk_run_filter +EXPORT_SYMBOL vmlinux 0x17b1125d gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x17bd4b87 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x17c3b3b4 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x17c79e92 netdev_master_upper_dev_link_private +EXPORT_SYMBOL vmlinux 0x17e28473 fsl_upm_run_pattern +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x17f9ac2e mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x17fa9bf5 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x1803c36f get_super +EXPORT_SYMBOL vmlinux 0x180af39f netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0x180b7d6b compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x1825ae5e scsi_execute_req_flags +EXPORT_SYMBOL vmlinux 0x18375167 proto_unregister +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x1857aa39 proc_dointvec +EXPORT_SYMBOL vmlinux 0x186dc2a7 __cleancache_get_page +EXPORT_SYMBOL vmlinux 0x188a3dfb timespec_trunc +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18a46929 skb_checksum +EXPORT_SYMBOL vmlinux 0x18c23176 elv_rb_add +EXPORT_SYMBOL vmlinux 0x18c4dfc0 __i2c_transfer +EXPORT_SYMBOL vmlinux 0x18e9b2fa grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x18fe161d kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x19111a40 lockref_get_not_zero +EXPORT_SYMBOL vmlinux 0x19444627 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x19803253 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x1995a5b2 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x199ec4fb arch_spin_unlock_wait +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19abd60d generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x19b93cb0 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x19ba8c65 read_code +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19eaa994 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL vmlinux 0x1a144b9a posix_lock_file +EXPORT_SYMBOL vmlinux 0x1a481ad6 mmc_free_host +EXPORT_SYMBOL vmlinux 0x1a6c661a phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x1a7378a8 ipv4_specific +EXPORT_SYMBOL vmlinux 0x1a90d6cb jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL vmlinux 0x1ac5d3cb strcspn +EXPORT_SYMBOL vmlinux 0x1acb5d40 dscr_default +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad3b508 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x1af20a66 of_phy_connect +EXPORT_SYMBOL vmlinux 0x1af62a99 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b0483a3 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x1b0542c6 elv_rb_find +EXPORT_SYMBOL vmlinux 0x1b132009 rename_lock +EXPORT_SYMBOL vmlinux 0x1b1cb4f6 notify_change +EXPORT_SYMBOL vmlinux 0x1b1e1088 sg_nents +EXPORT_SYMBOL vmlinux 0x1b35e78b tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x1b4a9365 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b7df49e simple_dir_operations +EXPORT_SYMBOL vmlinux 0x1b82fefa md_unplug +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1ba7253c sk_alloc +EXPORT_SYMBOL vmlinux 0x1bb0d56d __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x1bba23d5 kernel_listen +EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x1bcba154 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x1bd5bd95 genlmsg_put +EXPORT_SYMBOL vmlinux 0x1bdc26cf sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x1bfec830 __iounmap_at +EXPORT_SYMBOL vmlinux 0x1c143191 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x1c310a7e generic_read_dir +EXPORT_SYMBOL vmlinux 0x1c3c6b48 block_read_full_page +EXPORT_SYMBOL vmlinux 0x1c3e02e4 memcmp +EXPORT_SYMBOL vmlinux 0x1c6a2539 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0x1c6d8a9c __inet6_hash +EXPORT_SYMBOL vmlinux 0x1c93f37e inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x1cafc745 mmc_read_bkops_status +EXPORT_SYMBOL vmlinux 0x1ccf027c cpumask_set_cpu_local_first +EXPORT_SYMBOL vmlinux 0x1cf14139 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x1d03d594 set_security_override +EXPORT_SYMBOL vmlinux 0x1d2a668b bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x1d3fb87d init_task +EXPORT_SYMBOL vmlinux 0x1d45590a pci_assign_resource +EXPORT_SYMBOL vmlinux 0x1d5b0f44 phy_init_eee +EXPORT_SYMBOL vmlinux 0x1d6735d9 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x1d679292 __mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x1daee28a percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x1db2c023 mpage_readpage +EXPORT_SYMBOL vmlinux 0x1dbc4d0c proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dc7dd01 input_get_keycode +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1debd417 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x1e032581 compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x1e1c016f fasync_helper +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e297c3a input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x1e343904 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x1e38f1bc ps2_init +EXPORT_SYMBOL vmlinux 0x1e3fe5ad agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x1e57d793 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e788b1f skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x1e7b0fa9 ilookup5 +EXPORT_SYMBOL vmlinux 0x1e85d666 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x1e8c6126 pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1eb2382f ide_proc_unregister_driver +EXPORT_SYMBOL vmlinux 0x1ebf5375 blkdev_put +EXPORT_SYMBOL vmlinux 0x1ec3bed9 hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x1eec1b76 inet6_del_offload +EXPORT_SYMBOL vmlinux 0x1f00c4bb tty_port_open +EXPORT_SYMBOL vmlinux 0x1f073c5a do_SAK +EXPORT_SYMBOL vmlinux 0x1f1efd5f __kfree_skb +EXPORT_SYMBOL vmlinux 0x1f49304e proc_symlink +EXPORT_SYMBOL vmlinux 0x1f69357c xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x1f6ce67a sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x1f77a872 sk_free +EXPORT_SYMBOL vmlinux 0x1f7b05ff pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fe0cfce sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0x1fe912f1 netdev_alloc_frag +EXPORT_SYMBOL vmlinux 0x1fe9f800 unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x1ff15735 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x1ff4baa8 dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x1ff97271 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x201c1232 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x20223ffd jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x20230598 security_path_chown +EXPORT_SYMBOL vmlinux 0x20241153 security_mmap_file +EXPORT_SYMBOL vmlinux 0x2046dbb0 ata_port_printk +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x20570eca __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x2063182f try_module_get +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x208b1b2e kernel_write +EXPORT_SYMBOL vmlinux 0x20a46e8c d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20a86b3f of_get_pci_address +EXPORT_SYMBOL vmlinux 0x20ad4c94 inet6_protos +EXPORT_SYMBOL vmlinux 0x20b2bb2d param_array_ops +EXPORT_SYMBOL vmlinux 0x20c55ae0 sscanf +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x20edca29 dst_destroy +EXPORT_SYMBOL vmlinux 0x20f92a64 free_task +EXPORT_SYMBOL vmlinux 0x210418b9 netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0x21043fac freeze_super +EXPORT_SYMBOL vmlinux 0x21045889 always_delete_dentry +EXPORT_SYMBOL vmlinux 0x2116bab4 d_alloc_name +EXPORT_SYMBOL vmlinux 0x215314a3 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x21794617 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x217e8b5a fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x2187fcaa bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x21a85169 pci_platform_rom +EXPORT_SYMBOL vmlinux 0x21b95001 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x21bb61d2 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x21f28c3a dev_addr_add +EXPORT_SYMBOL vmlinux 0x2216e4ac d_drop +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x227badd6 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x2287d02f __ip_dev_find +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22c080f3 inet_ioctl +EXPORT_SYMBOL vmlinux 0x22d8b68b unlink_framebuffer +EXPORT_SYMBOL vmlinux 0x231716ae dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x23356a52 set_page_dirty +EXPORT_SYMBOL vmlinux 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x2351f204 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x235e8f41 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x235e90f3 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x23677a78 vc_resize +EXPORT_SYMBOL vmlinux 0x237d465d pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x23875163 gen10g_suspend +EXPORT_SYMBOL vmlinux 0x2391008a free_netdev +EXPORT_SYMBOL vmlinux 0x239b3473 vga_put +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23b9218b dev_warn +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23c9891c kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x23f2243d mempool_free +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x2403e6f8 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x24212d86 __frontswap_invalidate_page +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x24435596 mem_cgroup_subsys +EXPORT_SYMBOL vmlinux 0x244a3022 md_integrity_register +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245a5a94 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x2484adc3 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0x24924c00 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x249dcebd neigh_seq_start +EXPORT_SYMBOL vmlinux 0x24c4132f __ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x24cf3256 devm_gpio_free +EXPORT_SYMBOL vmlinux 0x24dabdf8 nonseekable_open +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x251fc6da netif_rx_ni +EXPORT_SYMBOL vmlinux 0x254c4a46 vlan_uses_dev +EXPORT_SYMBOL vmlinux 0x2553a455 replace_mount_options +EXPORT_SYMBOL vmlinux 0x2560ae3c sock_setsockopt +EXPORT_SYMBOL vmlinux 0x257c2480 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x2591aee2 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x25ab442a remap_pfn_range +EXPORT_SYMBOL vmlinux 0x25b5a892 find_or_create_page +EXPORT_SYMBOL vmlinux 0x25c47ac2 find_get_page +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x260cf8f8 of_get_property +EXPORT_SYMBOL vmlinux 0x26203a22 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc +EXPORT_SYMBOL vmlinux 0x2650d835 sysctl_ip_early_demux +EXPORT_SYMBOL vmlinux 0x2665d53a key_create_or_update +EXPORT_SYMBOL vmlinux 0x26735ca4 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x2677074a xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x26863077 search_binary_handler +EXPORT_SYMBOL vmlinux 0x26cdd229 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x26d70b9d blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x26e298e0 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26e8fe1f tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x26f0453a blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x2712f4f5 crc32_le_combine +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x2750dee1 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x2759e207 seq_putc +EXPORT_SYMBOL vmlinux 0x27646df3 start_thread +EXPORT_SYMBOL vmlinux 0x27769d18 simple_empty +EXPORT_SYMBOL vmlinux 0x27859e32 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x278e4855 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x279590a7 md_write_start +EXPORT_SYMBOL vmlinux 0x27a9bde9 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x27b60fea revalidate_disk +EXPORT_SYMBOL vmlinux 0x27b84082 tcf_register_action +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27bda1ff cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x27c8e57f bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x27d6b18a tcp_shutdown +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27eaa85d remove_proc_entry +EXPORT_SYMBOL vmlinux 0x27f073ef gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0x27f2313e idr_replace +EXPORT_SYMBOL vmlinux 0x27fd7653 ibmebus_register_driver +EXPORT_SYMBOL vmlinux 0x28025503 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x28064261 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x282a5049 devfreq_add_device +EXPORT_SYMBOL vmlinux 0x28318305 snprintf +EXPORT_SYMBOL vmlinux 0x2832e7e6 skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x284c83b1 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x28672898 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x286fc612 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x2874f1de sock_from_file +EXPORT_SYMBOL vmlinux 0x28975700 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28abfe6e scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x28ff1ec3 nla_reserve +EXPORT_SYMBOL vmlinux 0x29007b38 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x2913cd13 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x29394f6e skb_copy_expand +EXPORT_SYMBOL vmlinux 0x2945b467 sync_blockdev +EXPORT_SYMBOL vmlinux 0x29466150 fsync_bdev +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2960019b eeh_check_failure +EXPORT_SYMBOL vmlinux 0x299103d8 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x299f7798 block_write_end +EXPORT_SYMBOL vmlinux 0x29a960ac security_path_link +EXPORT_SYMBOL vmlinux 0x29adc2be proc_create_data +EXPORT_SYMBOL vmlinux 0x29b1a4aa giveup_altivec +EXPORT_SYMBOL vmlinux 0x29edd8c3 rtas_online_cpus_mask +EXPORT_SYMBOL vmlinux 0x2a0e4953 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x2a1806cd keyring_alloc +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a5c86c4 kern_path +EXPORT_SYMBOL vmlinux 0x2a5e990c jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x2a6043c3 touch_atime +EXPORT_SYMBOL vmlinux 0x2a6c1ac2 udplite_prot +EXPORT_SYMBOL vmlinux 0x2a6de147 km_state_notify +EXPORT_SYMBOL vmlinux 0x2a8cb55f ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x2aa3ebe4 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x2aa4da42 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0x2aacfe61 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x2accf00c from_kprojid +EXPORT_SYMBOL vmlinux 0x2acf0feb vfs_fstat +EXPORT_SYMBOL vmlinux 0x2b0b4a8d make_kgid +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b43b878 keyring_clear +EXPORT_SYMBOL vmlinux 0x2b4991ec xmon +EXPORT_SYMBOL vmlinux 0x2b59211c skb_pad +EXPORT_SYMBOL vmlinux 0x2b593045 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x2b66b6ae __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x2b7f0130 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x2b8675c2 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bad413c unregister_console +EXPORT_SYMBOL vmlinux 0x2bafa00b inet_put_port +EXPORT_SYMBOL vmlinux 0x2bb89fe1 dm_kobject_release +EXPORT_SYMBOL vmlinux 0x2bc974b0 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c3229fa bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x2c3c458e audit_log_task_info +EXPORT_SYMBOL vmlinux 0x2c47c10c xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x2c7b1fca down_timeout +EXPORT_SYMBOL vmlinux 0x2c900d91 cpufreq_put_global_kobject +EXPORT_SYMBOL vmlinux 0x2cefdeb3 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x2cf73cb7 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x2cfd313b devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x2d03c10d posix_acl_create +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d17ef09 agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x2d1987d4 devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x2d2eac81 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d434561 kobject_del +EXPORT_SYMBOL vmlinux 0x2d53583e netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x2d8621df account_page_redirty +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d9bdac4 nf_log_packet +EXPORT_SYMBOL vmlinux 0x2daaaba9 param_get_byte +EXPORT_SYMBOL vmlinux 0x2dabe1bb netpoll_print_options +EXPORT_SYMBOL vmlinux 0x2dacbd03 tty_kref_put +EXPORT_SYMBOL vmlinux 0x2dae01c3 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x2db1e0c6 dql_init +EXPORT_SYMBOL vmlinux 0x2db4ac2d _dev_info +EXPORT_SYMBOL vmlinux 0x2db9728c dev_activate +EXPORT_SYMBOL vmlinux 0x2dc45e57 devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0x2ddebf8b tty_unregister_device +EXPORT_SYMBOL vmlinux 0x2deda4a1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x2e0d0a2f scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x2e0d2f7f queue_work_on +EXPORT_SYMBOL vmlinux 0x2e12a93b ibmebus_request_irq +EXPORT_SYMBOL vmlinux 0x2e1bef92 eeh_subsystem_enabled +EXPORT_SYMBOL vmlinux 0x2e2b40d2 strncat +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e3bb883 balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0x2e413b91 mmc_set_blockcount +EXPORT_SYMBOL vmlinux 0x2e42cb6f generic_delete_inode +EXPORT_SYMBOL vmlinux 0x2e8dedf2 set_device_ro +EXPORT_SYMBOL vmlinux 0x2e8f649a pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x2ea61f26 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x2eba1052 submit_bh +EXPORT_SYMBOL vmlinux 0x2ecf5dda dquot_quota_on +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2ef96815 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f08b25c scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f364792 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x2f402ae7 inode_change_ok +EXPORT_SYMBOL vmlinux 0x2f5148ec sock_create_kern +EXPORT_SYMBOL vmlinux 0x2f528693 inet_bind +EXPORT_SYMBOL vmlinux 0x2f7d56e8 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x2f98fac4 seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x2f9bea74 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x2fae96de rtas_data_buf_lock +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2fff0dec softnet_data +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x302fbc92 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x30336a80 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x304f4835 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x30627545 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x3080babb cdev_init +EXPORT_SYMBOL vmlinux 0x309cd921 blk_put_request +EXPORT_SYMBOL vmlinux 0x30a38ad3 dev_trans_start +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30ae618e blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x30b8b35c cpu_to_chip_id +EXPORT_SYMBOL vmlinux 0x30b8c68e kmalloc_dma_caches +EXPORT_SYMBOL vmlinux 0x30b93ce8 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x30bf42a9 stop_tty +EXPORT_SYMBOL vmlinux 0x30c0213d skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30cfcac0 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x30d59859 filp_open +EXPORT_SYMBOL vmlinux 0x30d89ac2 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x3102d70b frontswap_curr_pages +EXPORT_SYMBOL vmlinux 0x311dd76c flex_array_alloc +EXPORT_SYMBOL vmlinux 0x311ffbc1 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x3133bb50 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x313441fd generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x31389d7f posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x313e7fa0 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x315c65fd zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x316d39e1 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x318cadb1 reciprocal_value +EXPORT_SYMBOL vmlinux 0x319e0726 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x31c4f9c9 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x31cd995b store_fp_state +EXPORT_SYMBOL vmlinux 0x31d61e9a cur_cpu_spec +EXPORT_SYMBOL vmlinux 0x31e6cc0d grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x322f48d4 abx500_dump_all_banks +EXPORT_SYMBOL vmlinux 0x322f8a2a pagecache_write_end +EXPORT_SYMBOL vmlinux 0x32453215 request_key_async +EXPORT_SYMBOL vmlinux 0x327bf883 of_can_translate_address +EXPORT_SYMBOL vmlinux 0x3284c88d tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x329454ae dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x32a42ee4 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x32b2a640 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x32ba9721 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x32d756df d_delete +EXPORT_SYMBOL vmlinux 0x32d76b8d end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x32db4b71 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x32e77d2c devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x32e98769 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x32f9d67d max8998_update_reg +EXPORT_SYMBOL vmlinux 0x32fe3bf5 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x330af568 register_gifconf +EXPORT_SYMBOL vmlinux 0x33246ba2 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x332d2e45 dquot_transfer +EXPORT_SYMBOL vmlinux 0x3334b992 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x333cb37c __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x33655963 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x3365c1d0 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x337e533d jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x33976cb7 flush_icache_user_range +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33ba5cd4 param_ops_bool +EXPORT_SYMBOL vmlinux 0x33c7435c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x33daa9ab touch_buffer +EXPORT_SYMBOL vmlinux 0x33e113ff jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x33e151c8 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33fcf44a __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x33fd8dc4 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x34184afe current_kernel_time +EXPORT_SYMBOL vmlinux 0x345befd5 open_exec +EXPORT_SYMBOL vmlinux 0x346038df scsi_device_get +EXPORT_SYMBOL vmlinux 0x346a5a11 vfs_readv +EXPORT_SYMBOL vmlinux 0x346c4ded rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x347eb9bd param_set_bool +EXPORT_SYMBOL vmlinux 0x349608c1 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34b42254 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x34db63a1 inode_init_always +EXPORT_SYMBOL vmlinux 0x34f17ced jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x34f2bc8b wait_iff_congested +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x34fc5c5f __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x350e9c7f scsi_print_result +EXPORT_SYMBOL vmlinux 0x350f5e52 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x351c1a9a kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x3531169e netdev_all_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0x3539f11b match_strlcpy +EXPORT_SYMBOL vmlinux 0x354dfb1c filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x354fadd9 key_reject_and_link +EXPORT_SYMBOL vmlinux 0x35511fb7 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x35607fdc netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0x3562892f tty_check_change +EXPORT_SYMBOL vmlinux 0x357d7e11 pci_choose_state +EXPORT_SYMBOL vmlinux 0x359663de vlan_vid_add +EXPORT_SYMBOL vmlinux 0x35c32767 xor_altivec_2 +EXPORT_SYMBOL vmlinux 0x35c7fa75 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x35cad8cd kern_path_mountpoint +EXPORT_SYMBOL vmlinux 0x35d7d15b pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x35dd62c8 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x35defc50 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x35e1b5a6 tty_set_operations +EXPORT_SYMBOL vmlinux 0x35f0a998 uart_match_port +EXPORT_SYMBOL vmlinux 0x360b30ea jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x365de79a d_move +EXPORT_SYMBOL vmlinux 0x366571bf dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x367d508b dentry_unhash +EXPORT_SYMBOL vmlinux 0x368382e2 of_get_named_gpiod_flags +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x369e1115 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x36b0e732 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x36bd681b groups_alloc +EXPORT_SYMBOL vmlinux 0x36c735ad kset_unregister +EXPORT_SYMBOL vmlinux 0x36ce8aa4 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x36d7b11a of_find_matching_node_and_match +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36e609a1 load_nls +EXPORT_SYMBOL vmlinux 0x36eb925c __skb_checksum +EXPORT_SYMBOL vmlinux 0x36f681ef netdev_alert +EXPORT_SYMBOL vmlinux 0x370947d0 mmc_add_host +EXPORT_SYMBOL vmlinux 0x37195802 save_mount_options +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x3721bfad mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x372c476b nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x3733c3dc ip_defrag +EXPORT_SYMBOL vmlinux 0x37344510 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x379c2fd6 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x37aa74f9 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x37b6c067 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37e9c471 secpath_dup +EXPORT_SYMBOL vmlinux 0x381244e9 new_inode +EXPORT_SYMBOL vmlinux 0x38163233 mmc_request_done +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x381c9d13 get_write_access +EXPORT_SYMBOL vmlinux 0x383c577f tcf_hash_release +EXPORT_SYMBOL vmlinux 0x383d4b71 eth_header_cache +EXPORT_SYMBOL vmlinux 0x38642e38 phy_get_eee_err +EXPORT_SYMBOL vmlinux 0x38694a41 init_special_inode +EXPORT_SYMBOL vmlinux 0x387759b0 vio_register_device_node +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x388d3044 arp_find +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38930505 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38abdb60 pci_request_regions +EXPORT_SYMBOL vmlinux 0x38c5176d ata_print_version +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x39062da8 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x391f18b1 unregister_key_type +EXPORT_SYMBOL vmlinux 0x3931cab2 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x3947013f insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x3955fcf6 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x39691c19 __inet_stream_connect +EXPORT_SYMBOL vmlinux 0x399ad043 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x39cd58fb read_cache_page_async +EXPORT_SYMBOL vmlinux 0x39cdf63c wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x39d0ffe1 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x39e27795 netdev_crit +EXPORT_SYMBOL vmlinux 0x39e74383 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x39efb0b1 skb_copy +EXPORT_SYMBOL vmlinux 0x39f16036 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x3a0011e8 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x3a20ff73 __crc32c_le +EXPORT_SYMBOL vmlinux 0x3a6eadcd sk_wait_data +EXPORT_SYMBOL vmlinux 0x3a714b5d sock_edemux +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3a9c4f49 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x3aad119d fb_class +EXPORT_SYMBOL vmlinux 0x3ab03fb1 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x3ab6eaec of_dev_put +EXPORT_SYMBOL vmlinux 0x3acd8d3b inode_reclaim_rsv_space +EXPORT_SYMBOL vmlinux 0x3ae9af25 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x3af70b80 clear_user_page +EXPORT_SYMBOL vmlinux 0x3afc40ba iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x3b10b0dc unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x3b16a809 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x3b2511c4 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x3b2539ab netdev_lower_dev_get_private_rcu +EXPORT_SYMBOL vmlinux 0x3b4d7bba phy_device_register +EXPORT_SYMBOL vmlinux 0x3b598b9a d_instantiate +EXPORT_SYMBOL vmlinux 0x3b59a4f1 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x3b615a21 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x3b7b93bb blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x3b997661 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x3ba7a9df tcp_seq_open +EXPORT_SYMBOL vmlinux 0x3bb432c3 tcf_hash_search +EXPORT_SYMBOL vmlinux 0x3bc003cf __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x3bd14c8c scsi_scan_target +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd80cd6 ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0x3bef03b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x3bf1441e pcibus_to_node +EXPORT_SYMBOL vmlinux 0x3c0c5488 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x3c1ade6d fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x3c38401a phy_connect_direct +EXPORT_SYMBOL vmlinux 0x3c63dd0f eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x3c671cde cdev_alloc +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c81ae59 block_write_begin +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cab5b54 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x3cb81bd7 decrementer_clockevent +EXPORT_SYMBOL vmlinux 0x3cc4b0dc lg_lock_init +EXPORT_SYMBOL vmlinux 0x3ccbfd9b proc_mkdir +EXPORT_SYMBOL vmlinux 0x3ccca4f9 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3ce5c1ac simple_getattr +EXPORT_SYMBOL vmlinux 0x3cf3242d inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x3cfa41fc pci_bus_get +EXPORT_SYMBOL vmlinux 0x3d41904f of_get_next_child +EXPORT_SYMBOL vmlinux 0x3d45f787 scsi_device_put +EXPORT_SYMBOL vmlinux 0x3d5844b3 strnicmp +EXPORT_SYMBOL vmlinux 0x3d58a3cb uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x3daeee73 __sb_start_write +EXPORT_SYMBOL vmlinux 0x3dbf8f1f tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dd19c10 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x3dd84100 __bforget +EXPORT_SYMBOL vmlinux 0x3df482a7 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x3dfc163d rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e0876dc inet6_register_icmp_sender +EXPORT_SYMBOL vmlinux 0x3e102d9c agp_free_memory +EXPORT_SYMBOL vmlinux 0x3e284f51 dev_mc_del +EXPORT_SYMBOL vmlinux 0x3e315a14 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x3e33f446 kill_fasync +EXPORT_SYMBOL vmlinux 0x3e4aa127 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x3e4bf7a0 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x3e82001c make_kuid +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ea282b6 __f_setown +EXPORT_SYMBOL vmlinux 0x3ec3cdff disk_stack_limits +EXPORT_SYMBOL vmlinux 0x3ec9240c __first_cpu +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3ef02e24 phy_attach +EXPORT_SYMBOL vmlinux 0x3efd9e70 write_cache_pages +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f0f8ac9 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x3f144571 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x3f1d41eb generic_block_bmap +EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f5732cd jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x3f6044c0 kmem_cache_alloc_node_trace +EXPORT_SYMBOL vmlinux 0x3f6899ff dump_align +EXPORT_SYMBOL vmlinux 0x3f772035 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x3f85c137 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x3fb6aaf6 compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0x3fc4963d filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0x3fc53684 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x3fc7ed9c make_bad_inode +EXPORT_SYMBOL vmlinux 0x3fc8c446 ide_dump_status +EXPORT_SYMBOL vmlinux 0x3fd55724 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x3fe2ccbe memweight +EXPORT_SYMBOL vmlinux 0x3fe8fd47 mddev_congested +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ff8069b tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x3ff8e495 lg_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0x4011c48b sock_no_connect +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x404066c5 idr_for_each +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40678380 set_nlink +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40b0d7d2 inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0x40b7576f pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x40c01859 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d813ed zero_fill_bio +EXPORT_SYMBOL vmlinux 0x40db1774 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x40e35d5a simple_readpage +EXPORT_SYMBOL vmlinux 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL vmlinux 0x4101a975 ide_fixstring +EXPORT_SYMBOL vmlinux 0x412463cf ilookup +EXPORT_SYMBOL vmlinux 0x413c4ea2 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x4141715e input_open_device +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4159c38f ioremap_wc +EXPORT_SYMBOL vmlinux 0x416f25b6 cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41904224 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x41b06671 put_page +EXPORT_SYMBOL vmlinux 0x41b0959e dev_queue_xmit_accel +EXPORT_SYMBOL vmlinux 0x41d1807d security_path_unlink +EXPORT_SYMBOL vmlinux 0x41e24b1d phy_find_first +EXPORT_SYMBOL vmlinux 0x41ebe14a mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x4231e60e jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x423b776a ipmi_create_user +EXPORT_SYMBOL vmlinux 0x4249a70d vfs_open +EXPORT_SYMBOL vmlinux 0x427d58ac sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a1b208 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x42adce1f pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0x42c0a546 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x42c7d4be textsearch_unregister +EXPORT_SYMBOL vmlinux 0x42f0b7fc uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x430a48bf neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x435d81cd tty_unlock +EXPORT_SYMBOL vmlinux 0x43632d7d of_find_property +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x4377db9b blk_init_queue +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x43a01f90 complete_all +EXPORT_SYMBOL vmlinux 0x43c78950 kernel_accept +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x4411c503 prandom_seed +EXPORT_SYMBOL vmlinux 0x4430cb36 lock_may_read +EXPORT_SYMBOL vmlinux 0x443dd0cd pci_reenable_device +EXPORT_SYMBOL vmlinux 0x443e3c1c irq_to_desc +EXPORT_SYMBOL vmlinux 0x4447d499 dquot_alloc +EXPORT_SYMBOL vmlinux 0x448eac3e kmemdup +EXPORT_SYMBOL vmlinux 0x44a046b5 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x44a6dfdb spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x44d34e47 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x44dc3e06 init_net +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44eb192e wait_for_completion +EXPORT_SYMBOL vmlinux 0x44eda3f0 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x44f5e8b5 of_allnodes +EXPORT_SYMBOL vmlinux 0x44fad0f0 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x450b1568 agp_copy_info +EXPORT_SYMBOL vmlinux 0x45132181 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x451e7174 udp_del_offload +EXPORT_SYMBOL vmlinux 0x453ba0e3 pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x455d552b set_bdi_congested +EXPORT_SYMBOL vmlinux 0x4564e64f led_blink_set_oneshot +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x45a0102a do_splice_to +EXPORT_SYMBOL vmlinux 0x45a1aeb1 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap +EXPORT_SYMBOL vmlinux 0x45a6be13 cpufreq_sysfs_remove_file +EXPORT_SYMBOL vmlinux 0x45a765cf pci_add_resource +EXPORT_SYMBOL vmlinux 0x45b79adb ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x45c7f69a jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x45d06fb8 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x4612c59d down_trylock +EXPORT_SYMBOL vmlinux 0x461ac773 kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x4623ddd1 dev_err +EXPORT_SYMBOL vmlinux 0x4643dfec scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x465cab34 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x46608fa0 getnstimeofday +EXPORT_SYMBOL vmlinux 0x4667894b dev_deactivate +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x46780fa4 bio_copy_data +EXPORT_SYMBOL vmlinux 0x46d12956 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x46efebce inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x4723d641 ether_setup +EXPORT_SYMBOL vmlinux 0x472a6db1 of_find_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0x47416e14 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x4753a224 proc_set_size +EXPORT_SYMBOL vmlinux 0x47681623 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x477f32bb dm_io +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479bc836 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47a25fa7 iget_locked +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b6f57c cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x47bcf84c param_set_ulong +EXPORT_SYMBOL vmlinux 0x47bd40d6 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x47c8baf4 param_ops_uint +EXPORT_SYMBOL vmlinux 0x47f52abf task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x48034724 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x481191c0 phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0x4814c236 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x48267e30 mutex_trylock +EXPORT_SYMBOL vmlinux 0x4829a47e memcpy +EXPORT_SYMBOL vmlinux 0x482a2a49 param_set_charp +EXPORT_SYMBOL vmlinux 0x48404b9a remove_wait_queue +EXPORT_SYMBOL vmlinux 0x4841bdee strnchr +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x486b83e1 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x4894f3e9 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x4899b3aa xfrm_state_update +EXPORT_SYMBOL vmlinux 0x48abb5ba simple_rename +EXPORT_SYMBOL vmlinux 0x48c2c1cc security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x48c6db53 of_get_child_by_name +EXPORT_SYMBOL vmlinux 0x48d1203d dev_disable_lro +EXPORT_SYMBOL vmlinux 0x48d606e5 inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x48fabfbf gen_new_estimator +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x494da74b dqput +EXPORT_SYMBOL vmlinux 0x495c96f8 posix_acl_init +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x496c6ffd pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x497e48b6 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x497f44b7 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x499bfc6d __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b732e2 follow_down_one +EXPORT_SYMBOL vmlinux 0x49b742fc sock_update_memcg +EXPORT_SYMBOL vmlinux 0x49c95e63 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x49d4fa7d generic_setlease +EXPORT_SYMBOL vmlinux 0x49de6656 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x49f844bf phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x4a07b4d3 tty_throttle +EXPORT_SYMBOL vmlinux 0x4a0c019a __ps2_command +EXPORT_SYMBOL vmlinux 0x4a28638b vfs_write +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a415515 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x4a44edb2 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x4a4a8a42 default_llseek +EXPORT_SYMBOL vmlinux 0x4a4c2774 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x4a4d231b bio_integrity_split +EXPORT_SYMBOL vmlinux 0x4a642409 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x4a66cd61 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x4a690063 cont_write_begin +EXPORT_SYMBOL vmlinux 0x4a72ae2e scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x4a73f0fc __cleancache_invalidate_inode +EXPORT_SYMBOL vmlinux 0x4a9c525c input_register_handle +EXPORT_SYMBOL vmlinux 0x4aa2a850 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x4aa94aff udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ae7d4cd xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b2eebf0 find_lock_page +EXPORT_SYMBOL vmlinux 0x4b5d347f release_pages +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b6239de __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x4b7ed27b sleep_on +EXPORT_SYMBOL vmlinux 0x4b8caacd __dev_remove_offload +EXPORT_SYMBOL vmlinux 0x4b975df7 __cleancache_invalidate_page +EXPORT_SYMBOL vmlinux 0x4ba0ee9f adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0x4ba7927f write_one_page +EXPORT_SYMBOL vmlinux 0x4bd9aeec seq_escape +EXPORT_SYMBOL vmlinux 0x4be80ce9 iunique +EXPORT_SYMBOL vmlinux 0x4bea079a jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x4bed99b3 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x4c05dd78 xfrm_input +EXPORT_SYMBOL vmlinux 0x4c11435a _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c2fa7c7 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x4c30d02c vsc824x_add_skew +EXPORT_SYMBOL vmlinux 0x4c5ac02b __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x4c5e14b4 arch_free_page +EXPORT_SYMBOL vmlinux 0x4c60a474 sg_miter_next +EXPORT_SYMBOL vmlinux 0x4c85c8f6 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL vmlinux 0x4c984400 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x4ca634ab kern_path_create +EXPORT_SYMBOL vmlinux 0x4ca9669f scnprintf +EXPORT_SYMBOL vmlinux 0x4cb0e988 gen_pool_dma_alloc +EXPORT_SYMBOL vmlinux 0x4cb15de4 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x4cb532bf scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x4cb9fba5 framebuffer_release +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cdb3178 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x4ce5f3fe input_event +EXPORT_SYMBOL vmlinux 0x4cf736ff dev_change_flags +EXPORT_SYMBOL vmlinux 0x4cf7fa4d netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0x4d382c19 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x4d60b972 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0x4d626f59 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x4d6bde00 phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x4d8743eb skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4da7c931 rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0x4db40932 dma_pool_create +EXPORT_SYMBOL vmlinux 0x4dc0982b generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x4dd4c04e tty_hangup +EXPORT_SYMBOL vmlinux 0x4de2389f i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x4de34a07 cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4df17052 scsi_init_io +EXPORT_SYMBOL vmlinux 0x4df3c696 tty_mutex +EXPORT_SYMBOL vmlinux 0x4e1fabf4 netdev_err +EXPORT_SYMBOL vmlinux 0x4e2a18fb dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e3d17de ps2_end_command +EXPORT_SYMBOL vmlinux 0x4e63c491 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e786d13 idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum +EXPORT_SYMBOL vmlinux 0x4ec070d1 address_space_init_once +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4efd8ea3 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x4f0eb614 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x4f11feac vfs_mkdir +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f248523 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x4f2e05cd phy_stop +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f4f9b91 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x4f68e5c9 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x4f9c41bc ide_raw_taskfile +EXPORT_SYMBOL vmlinux 0x4fc6a098 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x4fda0e0d __neigh_create +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fea2426 ipmi_smi_watcher_unregister +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x5022c950 noop_qdisc +EXPORT_SYMBOL vmlinux 0x503a6fcd unload_nls +EXPORT_SYMBOL vmlinux 0x504a521e of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x50558d17 dump_emit +EXPORT_SYMBOL vmlinux 0x5074e17b skb_orphan_partial +EXPORT_SYMBOL vmlinux 0x50968d3d dev_crit +EXPORT_SYMBOL vmlinux 0x5099f958 qdisc_watchdog_schedule_ns +EXPORT_SYMBOL vmlinux 0x50a90e8d bsearch +EXPORT_SYMBOL vmlinux 0x50aacde6 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x50ae7d80 __idr_pre_get +EXPORT_SYMBOL vmlinux 0x50d2592d hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x50d32b86 fget_light +EXPORT_SYMBOL vmlinux 0x50ec8c5a nobh_write_end +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5137a178 skb_flow_dissect +EXPORT_SYMBOL vmlinux 0x513d5cc4 iget_failed +EXPORT_SYMBOL vmlinux 0x51483e33 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x514ac7a5 km_new_mapping +EXPORT_SYMBOL vmlinux 0x516a3f00 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x519b0da3 finish_wait +EXPORT_SYMBOL vmlinux 0x51b2229d get_tz_trend +EXPORT_SYMBOL vmlinux 0x51bcdd4e dentry_open +EXPORT_SYMBOL vmlinux 0x51c656f8 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51edd247 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x51f26f05 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x51f77cff inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x521419b9 bio_split +EXPORT_SYMBOL vmlinux 0x521b36b5 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x5232d64a i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x52428cc8 parent_mem_cgroup +EXPORT_SYMBOL vmlinux 0x5245f6a4 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL vmlinux 0x5289b437 __next_cpu_nr +EXPORT_SYMBOL vmlinux 0x52920e7f path_get +EXPORT_SYMBOL vmlinux 0x5297aa9f pid_task +EXPORT_SYMBOL vmlinux 0x529d2214 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x52a2ac39 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x52bc103f scsi_remove_host +EXPORT_SYMBOL vmlinux 0x52d93cd7 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x52ddacdb generic_listxattr +EXPORT_SYMBOL vmlinux 0x52de2e6c mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x52f17fa5 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533353a8 simple_write_begin +EXPORT_SYMBOL vmlinux 0x533eab6d qdisc_destroy +EXPORT_SYMBOL vmlinux 0x53545b4b sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0x536cc847 memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0x5374f9d6 d_find_alias +EXPORT_SYMBOL vmlinux 0x5377e556 hex2bin +EXPORT_SYMBOL vmlinux 0x537f20f8 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x53c0a87a fb_blank +EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns +EXPORT_SYMBOL vmlinux 0x53f01b6b queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0x5409775b free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x5412c7c7 up +EXPORT_SYMBOL vmlinux 0x54245b39 kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0x542cdb25 kill_anon_super +EXPORT_SYMBOL vmlinux 0x5433cdd6 dm_get_device +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x544155ab devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x5445cff9 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x5451cfbb register_console +EXPORT_SYMBOL vmlinux 0x5473989b lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x547e24b4 bio_copy_user +EXPORT_SYMBOL vmlinux 0x54824b13 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x548de3df ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x5498dc8a blk_end_request +EXPORT_SYMBOL vmlinux 0x549aec1a abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x54a4ef7f jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54b3c45d spi_release_transport +EXPORT_SYMBOL vmlinux 0x54cb28e2 lock_fb_info +EXPORT_SYMBOL vmlinux 0x54e3cc3b param_get_int +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x550dea69 blk_register_region +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x5526430e tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x5528d259 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x552a6865 truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x5531a003 __sock_create +EXPORT_SYMBOL vmlinux 0x5535aa17 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x553d927b __get_page_tail +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x5549253a tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x555fd564 bioset_free +EXPORT_SYMBOL vmlinux 0x5567c227 kernel_cpustat +EXPORT_SYMBOL vmlinux 0x5568c553 complete +EXPORT_SYMBOL vmlinux 0x556b6493 of_phy_attach +EXPORT_SYMBOL vmlinux 0x556c2740 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x55741770 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x5577ef9e udp_table +EXPORT_SYMBOL vmlinux 0x557bed0f wireless_send_event +EXPORT_SYMBOL vmlinux 0x55903c83 pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0x5594112b user_revoke +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55b39d76 setup_new_exec +EXPORT_SYMBOL vmlinux 0x55b81532 request_key +EXPORT_SYMBOL vmlinux 0x55cb041a path_put +EXPORT_SYMBOL vmlinux 0x55ccd4d2 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0x55cf7cf5 vm_insert_page +EXPORT_SYMBOL vmlinux 0x55dc2005 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x55f01c39 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x55f5019b __kmalloc_node +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x564bd40c phy_device_free +EXPORT_SYMBOL vmlinux 0x5675c963 pci_enable_obff +EXPORT_SYMBOL vmlinux 0x567ae20c iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x56879507 neigh_lookup +EXPORT_SYMBOL vmlinux 0x5687ca4c scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x56a9ad88 __brelse +EXPORT_SYMBOL vmlinux 0x56aa16e2 net_dma_find_channel +EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56c96b2b phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0x56ce7071 writeback_in_progress +EXPORT_SYMBOL vmlinux 0x56e846a0 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x56f79ef4 prepare_creds +EXPORT_SYMBOL vmlinux 0x57108eee __netlink_dump_start +EXPORT_SYMBOL vmlinux 0x572647d6 get_mce_fault_addr +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x5744b329 netdev_state_change +EXPORT_SYMBOL vmlinux 0x5747b187 udp_seq_open +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x575c96af __scm_destroy +EXPORT_SYMBOL vmlinux 0x57602f0f gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x57617691 devm_iounmap +EXPORT_SYMBOL vmlinux 0x57656905 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x5792f848 strlcpy +EXPORT_SYMBOL vmlinux 0x57ab3bab genphy_update_link +EXPORT_SYMBOL vmlinux 0x57cd0ff4 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x57cdedfb follow_down +EXPORT_SYMBOL vmlinux 0x57da0b4b kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x57de753a wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x57fc21bf pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x58059f53 registered_fb +EXPORT_SYMBOL vmlinux 0x5809c7f5 vm_event_states +EXPORT_SYMBOL vmlinux 0x58348915 pci_find_bus +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x583eb2e6 devm_gpio_request_one +EXPORT_SYMBOL vmlinux 0x583f3153 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x583f8ad3 blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0x58527e00 netif_napi_del +EXPORT_SYMBOL vmlinux 0x585399b6 max8998_read_reg +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5864e39f pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0x5875664f mmc_register_driver +EXPORT_SYMBOL vmlinux 0x587616f1 vfs_fstatat +EXPORT_SYMBOL vmlinux 0x58775682 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x587c6a8c inetdev_by_index +EXPORT_SYMBOL vmlinux 0x58801f18 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x58976c9f __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x58a672fd eth_header_parse +EXPORT_SYMBOL vmlinux 0x58bdeefc ide_proc_register_driver +EXPORT_SYMBOL vmlinux 0x58d1070a of_get_address +EXPORT_SYMBOL vmlinux 0x58e3eaeb pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x58ee38b7 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x59299918 misc_deregister +EXPORT_SYMBOL vmlinux 0x592d25ae of_create_pci_dev +EXPORT_SYMBOL vmlinux 0x593cb6c6 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x5947fbc1 elevator_init +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5954fbf8 inet_frag_find +EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page +EXPORT_SYMBOL vmlinux 0x59641404 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x5967c929 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x5969dc54 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x59703be3 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x5987b664 bh_submit_read +EXPORT_SYMBOL vmlinux 0x59a5cda6 vfs_unlink +EXPORT_SYMBOL vmlinux 0x59ac9518 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x59b3378a completion_done +EXPORT_SYMBOL vmlinux 0x59bcf287 dev_mc_add +EXPORT_SYMBOL vmlinux 0x59ccdd09 dqget +EXPORT_SYMBOL vmlinux 0x5a025f7b arch_local_irq_restore +EXPORT_SYMBOL vmlinux 0x5a0aaa12 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x5a1d6a56 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x5a46de4d inet_release +EXPORT_SYMBOL vmlinux 0x5a51ba57 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x5a5536c2 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x5a5a33af sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x5a6adaf6 sync_inode +EXPORT_SYMBOL vmlinux 0x5a7eb363 netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x5a81674d mmc_gpio_free_cd +EXPORT_SYMBOL vmlinux 0x5a86e495 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x5a8fbb1a __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0x5a921311 strncmp +EXPORT_SYMBOL vmlinux 0x5a9f1d63 memmove +EXPORT_SYMBOL vmlinux 0x5aa04d8e i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x5ac29c6e sk_common_release +EXPORT_SYMBOL vmlinux 0x5acf5f88 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x5ad48172 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x5ae50279 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5b18f15a dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x5b1d68cb module_layout +EXPORT_SYMBOL vmlinux 0x5b365d33 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present +EXPORT_SYMBOL vmlinux 0x5b56860c vm_munmap +EXPORT_SYMBOL vmlinux 0x5b6cb843 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x5b93fba3 get_gendisk +EXPORT_SYMBOL vmlinux 0x5b9828c5 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x5ba4b2e1 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x5bc10524 printk_emit +EXPORT_SYMBOL vmlinux 0x5bf19cc8 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0x5bf4a3e4 input_close_device +EXPORT_SYMBOL vmlinux 0x5bf63794 lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0x5c2def4c flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x5c37f319 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x5c5ba101 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x5c821c5b dev_add_offload +EXPORT_SYMBOL vmlinux 0x5cf30e10 __debugger_ipi +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5d06a322 mntput +EXPORT_SYMBOL vmlinux 0x5d197f35 md_error +EXPORT_SYMBOL vmlinux 0x5d1a9463 jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0x5d2e26f0 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x5d41c87c param_ops_charp +EXPORT_SYMBOL vmlinux 0x5d4438e4 i2c_use_client +EXPORT_SYMBOL vmlinux 0x5d550c4d scsi_sd_probe_domain +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d6a40b9 file_open_root +EXPORT_SYMBOL vmlinux 0x5d807cdf serio_rescan +EXPORT_SYMBOL vmlinux 0x5d922658 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x5d96cc53 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x5dac88ca dquot_free_inode +EXPORT_SYMBOL vmlinux 0x5de9fbde bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x5df29454 security_inode_permission +EXPORT_SYMBOL vmlinux 0x5e1fb73f set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x5e2bbfb6 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x5e3a8a9c __wake_up +EXPORT_SYMBOL vmlinux 0x5e4616e0 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0x5e4ef8ca netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x5e529b19 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x5e7acdce follow_up +EXPORT_SYMBOL vmlinux 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL vmlinux 0x5e8fb5c2 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9842c5 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x5e9fe8c1 blk_free_tags +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ee0b682 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x5ee8ddc5 neigh_app_ns +EXPORT_SYMBOL vmlinux 0x5efd67f2 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f28c2dc idr_remove +EXPORT_SYMBOL vmlinux 0x5f2e3b20 input_set_keycode +EXPORT_SYMBOL vmlinux 0x5f3ab33c serio_open +EXPORT_SYMBOL vmlinux 0x5f3c8f5c mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x5f64eab9 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x5f7d48f0 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x5f812203 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x5f84ddfc tty_port_init +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5fc43569 fb_get_mode +EXPORT_SYMBOL vmlinux 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL vmlinux 0x5fda0227 vfs_stat +EXPORT_SYMBOL vmlinux 0x5fe47ee7 __frontswap_load +EXPORT_SYMBOL vmlinux 0x5fe9308b clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x6003a71b __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x60406901 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0x60418fdf mpage_readpages +EXPORT_SYMBOL vmlinux 0x60567b2b vga_tryget +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x6086fae9 rwsem_wake +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x609f3d31 flush_dcache_page +EXPORT_SYMBOL vmlinux 0x60c26765 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x60d8ad48 inet_select_addr +EXPORT_SYMBOL vmlinux 0x60df1e3b posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x60f3aeb5 fd_install +EXPORT_SYMBOL vmlinux 0x60f9cd1a ipmi_smi_watcher_register +EXPORT_SYMBOL vmlinux 0x61070296 security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0x6108a218 vlan_untag +EXPORT_SYMBOL vmlinux 0x610e1e77 tty_unlock_pair +EXPORT_SYMBOL vmlinux 0x61188232 bdev_read_only +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x612f4acb tty_port_close +EXPORT_SYMBOL vmlinux 0x613c9791 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x613d797b md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x61538ad0 param_get_charp +EXPORT_SYMBOL vmlinux 0x615a23a1 flush_dcache_icache_page +EXPORT_SYMBOL vmlinux 0x61741f85 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x618911fc numa_node +EXPORT_SYMBOL vmlinux 0x6190c484 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x6196e5f6 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x619cb7dd simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x61a0f38f input_allocate_device +EXPORT_SYMBOL vmlinux 0x61a41fc5 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61b98bf1 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x61c243fc mod_timer_pending +EXPORT_SYMBOL vmlinux 0x61e83f6b zerocopy_sg_from_iovec +EXPORT_SYMBOL vmlinux 0x61ea0164 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb +EXPORT_SYMBOL vmlinux 0x61f55bd4 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x620595b0 devm_ioremap +EXPORT_SYMBOL vmlinux 0x620e9a7c unlock_page +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6227fd24 of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x624b9dd4 __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x625a742b kill_pgrp +EXPORT_SYMBOL vmlinux 0x6264cf74 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x62886ed7 vfs_setpos +EXPORT_SYMBOL vmlinux 0x628a9fc8 handle_edge_irq +EXPORT_SYMBOL vmlinux 0x628fe35d neigh_table_init +EXPORT_SYMBOL vmlinux 0x629f13de ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x62f8130a give_up_console +EXPORT_SYMBOL vmlinux 0x63231951 gen_pool_create +EXPORT_SYMBOL vmlinux 0x632b152d dev_get_by_index +EXPORT_SYMBOL vmlinux 0x63396aec __debugger_break_match +EXPORT_SYMBOL vmlinux 0x63860265 fbcon_rotate_ccw +EXPORT_SYMBOL vmlinux 0x639306d9 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x63d4d075 genphy_setup_forced +EXPORT_SYMBOL vmlinux 0x63dcb0c7 scsi_unregister +EXPORT_SYMBOL vmlinux 0x63e7bd12 __cputime_usec_factor +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63f7cd41 __inode_permission +EXPORT_SYMBOL vmlinux 0x63fa2113 try_to_writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x63fe9c9c nf_log_unregister +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x640f4b25 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x6410bfa5 d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0x642075ee bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x6440f109 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x6448dda6 drop_nlink +EXPORT_SYMBOL vmlinux 0x646d1511 tty_devnum +EXPORT_SYMBOL vmlinux 0x6475f96d fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64aa4c45 unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x64bbc288 string_unescape +EXPORT_SYMBOL vmlinux 0x64c28a66 simple_rmdir +EXPORT_SYMBOL vmlinux 0x64d92235 iget5_locked +EXPORT_SYMBOL vmlinux 0x64f06b96 get_super_thawed +EXPORT_SYMBOL vmlinux 0x64f0880b mfd_add_devices +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x652ce9aa nla_memcmp +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x654d66b1 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x6551a0ae dcb_getapp +EXPORT_SYMBOL vmlinux 0x657c69c4 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x657cb6f1 ip_route_input_noref +EXPORT_SYMBOL vmlinux 0x65a1e68b cfb_copyarea +EXPORT_SYMBOL vmlinux 0x65bb58a2 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x65c9c610 dev_remove_offload +EXPORT_SYMBOL vmlinux 0x65d23d67 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65e0d6d7 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x65e19fd4 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x65f3ad9a fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x66150b08 netdev_info +EXPORT_SYMBOL vmlinux 0x66246e5a i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x663bd6df __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0x663d87b6 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x6650e5b6 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x66551b43 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x665a400e netlink_set_err +EXPORT_SYMBOL vmlinux 0x665cbc47 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x666fe1f8 may_umount +EXPORT_SYMBOL vmlinux 0x66758042 pci_enable_device +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x668f60cc ip6_expire_frag_queue +EXPORT_SYMBOL vmlinux 0x6698b5d7 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x669a9507 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x66d18b58 update_devfreq +EXPORT_SYMBOL vmlinux 0x66f84c61 agp_create_memory +EXPORT_SYMBOL vmlinux 0x670037c4 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x6711adfb fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x67197630 padata_add_cpu +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6757c1f8 inode_init_once +EXPORT_SYMBOL vmlinux 0x675b8f61 param_get_string +EXPORT_SYMBOL vmlinux 0x675fe63b napi_gro_flush +EXPORT_SYMBOL vmlinux 0x676b1a73 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x676ce6d5 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x67810fb2 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x67968883 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x67b4c391 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67bef731 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x67c6c444 arp_xmit +EXPORT_SYMBOL vmlinux 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL vmlinux 0x67ce8197 flex_array_shrink +EXPORT_SYMBOL vmlinux 0x67e7d3ed xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x67fc6bf4 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x6828ad48 no_llseek +EXPORT_SYMBOL vmlinux 0x6847bbff dquot_scan_active +EXPORT_SYMBOL vmlinux 0x68609857 complete_and_exit +EXPORT_SYMBOL vmlinux 0x6872ec74 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x6896fa83 mmc_of_parse +EXPORT_SYMBOL vmlinux 0x68ad803d ip_setsockopt +EXPORT_SYMBOL vmlinux 0x68b83ac6 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x68d384a3 ip6_xmit +EXPORT_SYMBOL vmlinux 0x68e05d57 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x69003668 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x6902a450 dev_uc_init +EXPORT_SYMBOL vmlinux 0x6926d61f ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x692a977c xfrm_garbage_collect +EXPORT_SYMBOL vmlinux 0x695a0c6d generic_setxattr +EXPORT_SYMBOL vmlinux 0x695f8fed ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x697b68cf serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x6998a1dd netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a20dd3 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69abc0c0 of_device_register +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69eda43c blk_mq_alloc_single_hw_queue +EXPORT_SYMBOL vmlinux 0x69f14644 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x69f6a320 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x69fdc0ea blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a3f4119 mmc_of_parse_voltage +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm +EXPORT_SYMBOL vmlinux 0x6a740c54 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a7bc2c1 bio_reset +EXPORT_SYMBOL vmlinux 0x6a9d2dfd devm_gpio_request +EXPORT_SYMBOL vmlinux 0x6aafc437 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x6abfb8cd unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6b06fdce delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b1eb706 tty_register_driver +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b310c28 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x6b31a678 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x6b321308 blk_mq_end_io +EXPORT_SYMBOL vmlinux 0x6b3eeedb __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x6b47d460 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x6b5dfe73 __debugger_bpt +EXPORT_SYMBOL vmlinux 0x6b640864 nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6b7f1917 idr_find_slowpath +EXPORT_SYMBOL vmlinux 0x6b9bb954 d_splice_alias +EXPORT_SYMBOL vmlinux 0x6ba68dea textsearch_destroy +EXPORT_SYMBOL vmlinux 0x6baca009 clear_inode +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bccc8f1 padata_free +EXPORT_SYMBOL vmlinux 0x6bceaebc gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x6bdc777f cfb_fillrect +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6beb2078 param_set_copystring +EXPORT_SYMBOL vmlinux 0x6bf32ee7 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x6c0d1b98 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x6c11c3cf blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x6c26920c lro_receive_skb +EXPORT_SYMBOL vmlinux 0x6c51a836 sysctl_tcp_notsent_lowat +EXPORT_SYMBOL vmlinux 0x6c5544c5 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c68b06c of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c922bc3 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x6ca16b08 scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x6cab4c08 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x6cc5ebf5 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x6cc96841 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x6cce823f dev_emerg +EXPORT_SYMBOL vmlinux 0x6cd8c86b __crc32c_le_combine +EXPORT_SYMBOL vmlinux 0x6cf34aec key_alloc +EXPORT_SYMBOL vmlinux 0x6d08c82b kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d133a14 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x6d180649 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x6d23b61e register_netdevice +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d413655 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x6d72646f bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x6d93f641 __cleancache_invalidate_fs +EXPORT_SYMBOL vmlinux 0x6da3e968 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x6da77678 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns +EXPORT_SYMBOL vmlinux 0x6db19e03 mmc_get_card +EXPORT_SYMBOL vmlinux 0x6db4bb37 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x6dbdcb7b account_page_writeback +EXPORT_SYMBOL vmlinux 0x6dce5a8d xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x6ddec9ad do_splice_from +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e0df67d eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0x6e1325df set_blocksize +EXPORT_SYMBOL vmlinux 0x6e2aba39 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x6e3db28c skb_queue_tail +EXPORT_SYMBOL vmlinux 0x6e46e125 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x6e471264 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x6e471891 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x6e4adda7 kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0x6e4d5e90 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x6e504fb0 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x6e5db2a5 tty_free_termios +EXPORT_SYMBOL vmlinux 0x6e68e781 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e764332 idr_destroy +EXPORT_SYMBOL vmlinux 0x6e7f9692 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x6e800fec mmc_gpio_request_ro +EXPORT_SYMBOL vmlinux 0x6e801f01 done_path_create +EXPORT_SYMBOL vmlinux 0x6ebc5149 param_ops_long +EXPORT_SYMBOL vmlinux 0x6ed9bce4 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x6ee1bbfe scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x6ee4181b blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x6ee66ded pci_disable_ltr +EXPORT_SYMBOL vmlinux 0x6f0036d9 del_timer_sync +EXPORT_SYMBOL vmlinux 0x6f1af901 phy_attach_direct +EXPORT_SYMBOL vmlinux 0x6f20960a full_name_hash +EXPORT_SYMBOL vmlinux 0x6f279736 input_unregister_device +EXPORT_SYMBOL vmlinux 0x6f57a6aa tcf_em_register +EXPORT_SYMBOL vmlinux 0x6f5e4d94 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x6f7af4a4 security_path_chmod +EXPORT_SYMBOL vmlinux 0x6f8018ef dev_addr_init +EXPORT_SYMBOL vmlinux 0x6f8157a1 pci_restore_state +EXPORT_SYMBOL vmlinux 0x6f85b211 ida_remove +EXPORT_SYMBOL vmlinux 0x6f90b5a3 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x6fa08238 phy_connect +EXPORT_SYMBOL vmlinux 0x6fb671c3 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fcdd4ac srp_rport_put +EXPORT_SYMBOL vmlinux 0x6fd040ec generic_segment_checks +EXPORT_SYMBOL vmlinux 0x6fd610cd iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x6ff03e78 mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0x6fff574f inet6_release +EXPORT_SYMBOL vmlinux 0x700b73b3 pci_alloc_dev +EXPORT_SYMBOL vmlinux 0x700ccdde __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x70235364 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x704c4365 __cputime_sec_factor +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x7057cc18 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x70617094 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x706a7acc dev_alert +EXPORT_SYMBOL vmlinux 0x707f43f6 __ctzdi2 +EXPORT_SYMBOL vmlinux 0x7081e23f read_cache_pages +EXPORT_SYMBOL vmlinux 0x708b0136 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x709e003e fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x70a78e05 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x70b363ee sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d6eeb4 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x7105c290 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x7120c3d5 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x71300fe1 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x7131172c uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x71456da4 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x714b6d54 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x715bb6dd agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0x716c85d4 mem_section +EXPORT_SYMBOL vmlinux 0x716ee7c3 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x717668d0 __getblk +EXPORT_SYMBOL vmlinux 0x719ff220 input_reset_device +EXPORT_SYMBOL vmlinux 0x71a07e4a netdev_printk +EXPORT_SYMBOL vmlinux 0x71a0afb2 dev_close +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71be3541 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x71c0bb1e sk_stop_timer +EXPORT_SYMBOL vmlinux 0x71c37e35 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x720f86b6 scsi_add_device +EXPORT_SYMBOL vmlinux 0x7230952e tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x723804c7 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x724f22a0 mdiobus_free +EXPORT_SYMBOL vmlinux 0x7265ad65 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x72802483 ibmebus_bus_type +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b2d978 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x72c98139 __arch_hweight64 +EXPORT_SYMBOL vmlinux 0x72e4dfdd genphy_resume +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x7302dc6d dev_set_group +EXPORT_SYMBOL vmlinux 0x731a747a pci_io_base +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x7344a644 mdiobus_write +EXPORT_SYMBOL vmlinux 0x734e7606 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x735d8503 add_wait_queue +EXPORT_SYMBOL vmlinux 0x7362596e seq_release +EXPORT_SYMBOL vmlinux 0x73710a3e dqstats +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x739aaf4d dev_get_nest_level +EXPORT_SYMBOL vmlinux 0x73bb9fc1 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x73c521aa mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x73caa217 register_framebuffer +EXPORT_SYMBOL vmlinux 0x741dbfd6 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x742b203e __break_lease +EXPORT_SYMBOL vmlinux 0x74319344 udp_proc_register +EXPORT_SYMBOL vmlinux 0x7446cbf5 fsnotify_get_group +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x74703396 bio_pair_release +EXPORT_SYMBOL vmlinux 0x747195f0 hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x7489c9a2 key_task_permission +EXPORT_SYMBOL vmlinux 0x748be64d pcie_get_mps +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74d04e5b sock_i_uid +EXPORT_SYMBOL vmlinux 0x74d4aaa4 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0x74e24a01 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x74f24d40 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x75137bac blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x751c2917 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x7523a4c7 __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x7532588a alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x7540924a dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x754dac78 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x754e055f blk_mq_free_single_hw_queue +EXPORT_SYMBOL vmlinux 0x756ac790 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x758a9906 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x758f8ba9 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x75994700 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x75b33a16 __skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75be6702 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x75efb4f8 genphy_read_status +EXPORT_SYMBOL vmlinux 0x7603ea1b jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x7630e23f input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x76369780 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x765ff474 crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x76728526 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x7676b1ca mount_nodev +EXPORT_SYMBOL vmlinux 0x768ab540 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x768d9106 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x76964de3 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x76a70673 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x76b59b33 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d451c4 add_taint +EXPORT_SYMBOL vmlinux 0x76da2ac3 __free_pages +EXPORT_SYMBOL vmlinux 0x76e89cb0 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x76ef08bd sk_dst_check +EXPORT_SYMBOL vmlinux 0x76fbd29d tcp_check_req +EXPORT_SYMBOL vmlinux 0x770a67d8 skb_unlink +EXPORT_SYMBOL vmlinux 0x77193b26 tty_lock_pair +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x771fb209 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x77372652 skb_push +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x773fa409 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x7746dda6 tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x77491820 submit_bio +EXPORT_SYMBOL vmlinux 0x77531113 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x775b3cc8 phy_driver_register +EXPORT_SYMBOL vmlinux 0x776d511d tcp_init_cgroup +EXPORT_SYMBOL vmlinux 0x776f2740 ip_options_compile +EXPORT_SYMBOL vmlinux 0x778252fc generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x779a2ebb input_inject_event +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77c2249e vio_get_attribute +EXPORT_SYMBOL vmlinux 0x77d30b9d skb_split +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ec5649 netlink_ack +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f05906 cdrom_open +EXPORT_SYMBOL vmlinux 0x77fd005b free_user_ns +EXPORT_SYMBOL vmlinux 0x78064275 netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x7830b04f hvc_put_chars +EXPORT_SYMBOL vmlinux 0x783b3563 wake_up_atomic_t +EXPORT_SYMBOL vmlinux 0x7846af3e __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x785ce190 padata_do_serial +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x789affb1 frontswap_tmem_exclusive_gets +EXPORT_SYMBOL vmlinux 0x78a9e905 _numa_mem_ +EXPORT_SYMBOL vmlinux 0x78bc3d73 force_sig +EXPORT_SYMBOL vmlinux 0x78c3d98d scsi_free_command +EXPORT_SYMBOL vmlinux 0x78c92923 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x78cabdde pci_dev_put +EXPORT_SYMBOL vmlinux 0x78ce2769 misc_register +EXPORT_SYMBOL vmlinux 0x78d971c9 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78f7d9b8 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL vmlinux 0x790910d2 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0x790df6ca __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x791fbcb6 __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x7930d225 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x795ead64 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x79650663 mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x7973d8cd ip_getsockopt +EXPORT_SYMBOL vmlinux 0x797656a3 mpage_writepage +EXPORT_SYMBOL vmlinux 0x7984eefc key_update +EXPORT_SYMBOL vmlinux 0x798b3856 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x79a5676c netpoll_rx_disable +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79df0074 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x7a0068bd proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x7a085791 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x7a0d0018 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x7a188791 prandom_bytes +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a7b367b generic_permission +EXPORT_SYMBOL vmlinux 0x7a915029 phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x7a925833 cpufreq_get_global_kobject +EXPORT_SYMBOL vmlinux 0x7a97a484 proc_remove +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7ac4bbeb sg_miter_stop +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7add38c8 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x7add44b5 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7adf3893 __nla_put +EXPORT_SYMBOL vmlinux 0x7b0ff71b mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x7b16235f hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x7b2aef6c __krealloc +EXPORT_SYMBOL vmlinux 0x7b3161d2 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x7b5d09ac write_inode_now +EXPORT_SYMBOL vmlinux 0x7b5fe47b blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x7b908df6 __register_chrdev +EXPORT_SYMBOL vmlinux 0x7baf56a8 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x7c003aef _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x7c00d505 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x7c1372e8 panic +EXPORT_SYMBOL vmlinux 0x7c2d098f krealloc +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c5040bf xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x7c56ae5f blk_run_queue +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c65b28e i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x7c6d7fed register_sysctl +EXPORT_SYMBOL vmlinux 0x7c6f64ac nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x7c738cc6 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x7c77cf58 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x7c83ba66 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x7c88181b mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x7c8ec8e8 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cbc36ee simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x7cc578da param_get_long +EXPORT_SYMBOL vmlinux 0x7cccfd35 generic_readlink +EXPORT_SYMBOL vmlinux 0x7cd1e969 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x7cd8f728 mntget +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7cf3a16b put_cmsg +EXPORT_SYMBOL vmlinux 0x7d01fa33 __memcg_kmem_get_cache +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d2e8d95 send_sig +EXPORT_SYMBOL vmlinux 0x7d52afc0 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x7d562cc7 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x7d5ae555 key_type_keyring +EXPORT_SYMBOL vmlinux 0x7d5fe268 srp_rport_get +EXPORT_SYMBOL vmlinux 0x7d713493 from_kgid +EXPORT_SYMBOL vmlinux 0x7d731cd5 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x7d851838 dev_printk +EXPORT_SYMBOL vmlinux 0x7d9514c1 node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0x7d9d3042 mmc_gpio_request_cd +EXPORT_SYMBOL vmlinux 0x7da2ddba blk_mq_map_queue +EXPORT_SYMBOL vmlinux 0x7dc0e109 idr_get_next +EXPORT_SYMBOL vmlinux 0x7dc56b1a inode_dio_done +EXPORT_SYMBOL vmlinux 0x7dc97879 rtas_get_error_log_max +EXPORT_SYMBOL vmlinux 0x7dccd689 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x7dddc61c netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7dfcc9ce bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x7e239e2b agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x7e37d5a0 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e427479 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x7e49f281 lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0x7e7504d1 pci_disable_obff +EXPORT_SYMBOL vmlinux 0x7ec3fb64 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x7f0a2a6d xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f2e6256 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x7f36dd1c tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x7f47d0ab max8998_write_reg +EXPORT_SYMBOL vmlinux 0x7f7ac558 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x7f9269ba inet6_unregister_icmp_sender +EXPORT_SYMBOL vmlinux 0x7f9ac255 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x7fa641d8 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x7fc2418b __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x7fc9365b tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x7fcd4d61 netdev_emerg +EXPORT_SYMBOL vmlinux 0x7fce28a2 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x7fdbd643 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7fe38f48 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x7fe8d7c2 bmap +EXPORT_SYMBOL vmlinux 0x7ff5383e cpu_active_mask +EXPORT_SYMBOL vmlinux 0x8002423a of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0x800fcce0 simple_fill_super +EXPORT_SYMBOL vmlinux 0x802d0e93 crc32_le +EXPORT_SYMBOL vmlinux 0x804f922a ipmi_addr_length +EXPORT_SYMBOL vmlinux 0x806d7298 user_path_create +EXPORT_SYMBOL vmlinux 0x8071d1a8 cpu_all_bits +EXPORT_SYMBOL vmlinux 0x807c449c dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x8082a440 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x80acd0bf qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x80bb60a0 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x80c30a05 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80fd602b genl_notify +EXPORT_SYMBOL vmlinux 0x8105f2af simple_pin_fs +EXPORT_SYMBOL vmlinux 0x812c77a4 rtnl_notify +EXPORT_SYMBOL vmlinux 0x812f1614 remap_vmalloc_range_partial +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x8152b2aa of_node_put +EXPORT_SYMBOL vmlinux 0x81533963 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x81a03da6 blk_start_request +EXPORT_SYMBOL vmlinux 0x81a07f4e _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x81af4496 __netif_schedule +EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81ddd7a3 __devm_release_region +EXPORT_SYMBOL vmlinux 0x8204f75c phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x82145800 ndo_dflt_bridge_getlink +EXPORT_SYMBOL vmlinux 0x8215dc2d set_user_nice +EXPORT_SYMBOL vmlinux 0x822a9dc4 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x824c0a50 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x826751e2 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x827c96f6 devm_gpiod_get_index +EXPORT_SYMBOL vmlinux 0x828062b1 __frontswap_init +EXPORT_SYMBOL vmlinux 0x82a1e85b blk_queue_max_write_same_sectors +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82adf861 netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0x82c70e7a ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x82c8314d blk_recount_segments +EXPORT_SYMBOL vmlinux 0x82cd95e7 scsi_host_get +EXPORT_SYMBOL vmlinux 0x82d13e2c tcp_read_sock +EXPORT_SYMBOL vmlinux 0x82d6b0d0 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x82f375fb __seq_open_private +EXPORT_SYMBOL vmlinux 0x82f3f8da clocksource_unregister +EXPORT_SYMBOL vmlinux 0x82fb0ec3 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x832077cc blkdev_get +EXPORT_SYMBOL vmlinux 0x8334d0b2 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x833acb55 icmpv6_send +EXPORT_SYMBOL vmlinux 0x835105a6 sk_stream_error +EXPORT_SYMBOL vmlinux 0x8373ecae vio_h_cop_sync +EXPORT_SYMBOL vmlinux 0x8378db6e ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x837fa43c block_write_full_page +EXPORT_SYMBOL vmlinux 0x838b177d mdiobus_register +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83b19d6a dquot_disable +EXPORT_SYMBOL vmlinux 0x83c98a8f skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x83e5642a blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x840d0af4 pci_pme_active +EXPORT_SYMBOL vmlinux 0x841962f8 param_get_ushort +EXPORT_SYMBOL vmlinux 0x8427cfd3 jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x8428ee5a inet_frag_kill +EXPORT_SYMBOL vmlinux 0x844c0807 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x84672200 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x8488dc34 dev_get_phys_port_id +EXPORT_SYMBOL vmlinux 0x8493d614 blkdev_issue_write_same +EXPORT_SYMBOL vmlinux 0x849f4bd6 sock_i_ino +EXPORT_SYMBOL vmlinux 0x84bd69bf dq_data_lock +EXPORT_SYMBOL vmlinux 0x84fc2c5d pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0x84ffea8b idr_preload +EXPORT_SYMBOL vmlinux 0x8509c540 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0x85146dd3 km_policy_notify +EXPORT_SYMBOL vmlinux 0x8518eca9 param_get_short +EXPORT_SYMBOL vmlinux 0x853bf7c1 param_set_int +EXPORT_SYMBOL vmlinux 0x8558983e __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x856f13de netif_carrier_off +EXPORT_SYMBOL vmlinux 0x8593227b key_invalidate +EXPORT_SYMBOL vmlinux 0x8597eb47 plpar_hcall +EXPORT_SYMBOL vmlinux 0x85a54818 dev_add_pack +EXPORT_SYMBOL vmlinux 0x85b56424 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x85b83908 bdget_disk +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e74a48 rt6_lookup +EXPORT_SYMBOL vmlinux 0x86331ebd pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8658d251 generic_fillattr +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x867e306e bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86973b05 wake_up_process +EXPORT_SYMBOL vmlinux 0x86a17f39 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x86a1aa0e security_inode_readlink +EXPORT_SYMBOL vmlinux 0x86a348bb ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x86a7bc46 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x86b1186e pci_request_region +EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook +EXPORT_SYMBOL vmlinux 0x86ec4b8f redraw_screen +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x8709112b phy_device_create +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x870c2ef7 register_nls +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x87236b53 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x873a53ea __arch_hweight8 +EXPORT_SYMBOL vmlinux 0x875cff08 set_disk_ro +EXPORT_SYMBOL vmlinux 0x8779a34f param_ops_byte +EXPORT_SYMBOL vmlinux 0x877a0d5b __blk_end_request +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x8793c74e devm_ioport_map +EXPORT_SYMBOL vmlinux 0x87aed34c pci_get_subsys +EXPORT_SYMBOL vmlinux 0x87be176a lro_flush_all +EXPORT_SYMBOL vmlinux 0x87c26530 devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0x87eb5a19 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x87eef0b2 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x880ecb99 skb_find_text +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x88513970 param_set_byte +EXPORT_SYMBOL vmlinux 0x886b0a6c bdgrab +EXPORT_SYMBOL vmlinux 0x88701a0a nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x8880b7b4 deactivate_super +EXPORT_SYMBOL vmlinux 0x8892fa4b tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x88948192 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x88af76bc inc_nlink +EXPORT_SYMBOL vmlinux 0x88b92b8b __dquot_free_space +EXPORT_SYMBOL vmlinux 0x88bc82bb ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0x88de661f tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x88e992ee blk_rq_init +EXPORT_SYMBOL vmlinux 0x89098651 node_data +EXPORT_SYMBOL vmlinux 0x890b9812 crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x891e153a trace_seq_putc +EXPORT_SYMBOL vmlinux 0x891e347d file_update_time +EXPORT_SYMBOL vmlinux 0x891fbb10 mempool_destroy +EXPORT_SYMBOL vmlinux 0x89481ed8 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x895108f3 proc_dostring +EXPORT_SYMBOL vmlinux 0x895577b0 numa_cpu_lookup_table +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x89797060 _raw_read_lock +EXPORT_SYMBOL vmlinux 0x897f061d downgrade_write +EXPORT_SYMBOL vmlinux 0x899f75ca xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89e808d8 pci_get_device +EXPORT_SYMBOL vmlinux 0x89f475a1 __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x89fcf61a input_flush_device +EXPORT_SYMBOL vmlinux 0x89ffc374 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x8a055524 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x8a1ab4ee timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8a2fb922 kobject_init +EXPORT_SYMBOL vmlinux 0x8a4238c1 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x8a46e3ed fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x8a4f385e fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x8a51d565 quota_send_warning +EXPORT_SYMBOL vmlinux 0x8a63141e mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x8a6af65c kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x8a6c5cda km_policy_expired +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a876f54 ida_init +EXPORT_SYMBOL vmlinux 0x8a958aec generic_file_open +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8abbf154 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x8ac5550b jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x8ae4c3c1 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x8b26f202 have_submounts +EXPORT_SYMBOL vmlinux 0x8b29dd02 srp_start_tl_fail_timers +EXPORT_SYMBOL vmlinux 0x8b3485be pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b43159b register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x8b55cac7 kobject_put +EXPORT_SYMBOL vmlinux 0x8b56c816 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b62877c pagevec_lookup +EXPORT_SYMBOL vmlinux 0x8b92c431 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x8b98c32c release_sock +EXPORT_SYMBOL vmlinux 0x8ba16f1a bioset_create +EXPORT_SYMBOL vmlinux 0x8be5f43e blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x8bf2ae1f fsl_lbc_addr +EXPORT_SYMBOL vmlinux 0x8bfac666 thaw_bdev +EXPORT_SYMBOL vmlinux 0x8c13ac4d sock_no_poll +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c1fb042 clear_nlink +EXPORT_SYMBOL vmlinux 0x8c20ba26 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x8c3e4de3 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x8c479292 sock_no_bind +EXPORT_SYMBOL vmlinux 0x8c4ad715 simple_lookup +EXPORT_SYMBOL vmlinux 0x8c568647 revert_creds +EXPORT_SYMBOL vmlinux 0x8c637d43 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x8c746ae9 uart_register_driver +EXPORT_SYMBOL vmlinux 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cd8e3bc sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x8ced2195 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x8d015dd4 __bswapdi2 +EXPORT_SYMBOL vmlinux 0x8d1f719a vio_enable_interrupts +EXPORT_SYMBOL vmlinux 0x8d2e268b param_ops_ulong +EXPORT_SYMBOL vmlinux 0x8d3ea6d8 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x8d406aa3 netdev_update_features +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d6a5110 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper +EXPORT_SYMBOL vmlinux 0x8d937549 vio_cmo_set_dev_desired +EXPORT_SYMBOL vmlinux 0x8d944cbb copy_in_user +EXPORT_SYMBOL vmlinux 0x8da80723 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x8dd11d55 file_remove_suid +EXPORT_SYMBOL vmlinux 0x8dd15f43 generic_ide_ioctl +EXPORT_SYMBOL vmlinux 0x8de0b5ac mempool_create +EXPORT_SYMBOL vmlinux 0x8df92f66 memchr_inv +EXPORT_SYMBOL vmlinux 0x8e0a7112 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x8e387beb netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x8e465332 empty_aops +EXPORT_SYMBOL vmlinux 0x8e544345 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x8e59e623 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x8e62c5b2 netdev_features_change +EXPORT_SYMBOL vmlinux 0x8e6572d0 rtmsg_ifinfo +EXPORT_SYMBOL vmlinux 0x8e7c5765 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x8e864a86 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x8ebdb97e gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x8ec04552 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x8ed704ef blk_init_tags +EXPORT_SYMBOL vmlinux 0x8eddb9e4 inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0x8f006af9 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x8f1339e2 blk_bio_map_sg +EXPORT_SYMBOL vmlinux 0x8f197985 nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0x8f1e2366 sock_create_lite +EXPORT_SYMBOL vmlinux 0x8f326580 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x8f3eb825 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x8f4477e5 vfs_create +EXPORT_SYMBOL vmlinux 0x8f4bf5fb posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x8f5f2de3 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x8f613310 tty_register_device +EXPORT_SYMBOL vmlinux 0x8f6fc3fe get_phy_device +EXPORT_SYMBOL vmlinux 0x8f85f835 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x8f88998f pci_save_state +EXPORT_SYMBOL vmlinux 0x8faa4598 of_translate_address +EXPORT_SYMBOL vmlinux 0x8fc59f9b rtas_offline_cpus_mask +EXPORT_SYMBOL vmlinux 0x8fd4c742 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x8ff73dd0 ip6_route_output +EXPORT_SYMBOL vmlinux 0x8ff7d32e udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x900c1174 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x900c27cb blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x90159c23 napi_get_frags +EXPORT_SYMBOL vmlinux 0x9048309b tcp_proto_cgroup +EXPORT_SYMBOL vmlinux 0x905863d1 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x905e2f66 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x90847b82 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x908b02d4 module_put +EXPORT_SYMBOL vmlinux 0x908b53ed param_set_short +EXPORT_SYMBOL vmlinux 0x90b436fb inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x90d2af03 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x90dce706 seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay +EXPORT_SYMBOL vmlinux 0x91426157 pci_domain_nr +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x915d740b padata_alloc +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x9166fada strncpy +EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x9176f482 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x9196418f skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x91ac822f vscnprintf +EXPORT_SYMBOL vmlinux 0x91b3b8f8 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x91b7a09a scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x920985cf seq_puts +EXPORT_SYMBOL vmlinux 0x9234b5d2 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923ee26f mmc_can_reset +EXPORT_SYMBOL vmlinux 0x924235c0 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x925520d2 blk_start_plug +EXPORT_SYMBOL vmlinux 0x925e7bb3 tty_name +EXPORT_SYMBOL vmlinux 0x9272dff0 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x927a3289 scsi_register +EXPORT_SYMBOL vmlinux 0x9291cd3b memdup_user +EXPORT_SYMBOL vmlinux 0x92a9c60c time_to_tm +EXPORT_SYMBOL vmlinux 0x92abff63 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x92bc220b lockref_get +EXPORT_SYMBOL vmlinux 0x92bcf6e7 agp_backend_release +EXPORT_SYMBOL vmlinux 0x92d050df iov_pages +EXPORT_SYMBOL vmlinux 0x92e7b840 vfs_fsync +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93265d2e find_vma +EXPORT_SYMBOL vmlinux 0x933bb3b5 __pagevec_release +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x934f6561 noop_llseek +EXPORT_SYMBOL vmlinux 0x9354fcde ibmebus_free_irq +EXPORT_SYMBOL vmlinux 0x935c8926 pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x936202f5 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x9374e0a5 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid +EXPORT_SYMBOL vmlinux 0x937b9876 ide_set_handler +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93a8d611 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x93aed412 jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0x93b099d0 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93bd16c7 pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0x93cc9424 devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x946796ec mount_pseudo +EXPORT_SYMBOL vmlinux 0x94777c82 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94b087b7 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x94b8b5cd inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x94c8b9ca dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x94cef8b4 vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0x94f1d1c2 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x9508f166 param_ops_bint +EXPORT_SYMBOL vmlinux 0x9514151a _mcount +EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb +EXPORT_SYMBOL vmlinux 0x953372cf ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x9546db61 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x957b2fea i2c_release_client +EXPORT_SYMBOL vmlinux 0x958fd01a __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x95c77917 seq_printf +EXPORT_SYMBOL vmlinux 0x95cb929c of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x95f540ae jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x95fd8464 scsi_put_command +EXPORT_SYMBOL vmlinux 0x96285c23 inet_listen +EXPORT_SYMBOL vmlinux 0x963494d0 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x96583687 lookup_one_len +EXPORT_SYMBOL vmlinux 0x96587ab7 key_unlink +EXPORT_SYMBOL vmlinux 0x96872759 skb_make_writable +EXPORT_SYMBOL vmlinux 0x9688ab89 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x9693399f pps_register_source +EXPORT_SYMBOL vmlinux 0x96af1345 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x96b29254 strncasecmp +EXPORT_SYMBOL vmlinux 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d17753 pipe_lock +EXPORT_SYMBOL vmlinux 0x97070309 scsi_print_command +EXPORT_SYMBOL vmlinux 0x97155d08 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x973ef2da bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x9741e649 agp_enable +EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x9760f7a9 irq_set_chip +EXPORT_SYMBOL vmlinux 0x97868aef __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x97a60e3d param_get_bool +EXPORT_SYMBOL vmlinux 0x97c23a7b fget_raw +EXPORT_SYMBOL vmlinux 0x97c5f531 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x97de3eec sock_release +EXPORT_SYMBOL vmlinux 0x97f03d6f vio_cmo_entitlement_update +EXPORT_SYMBOL vmlinux 0x97f7c561 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x97fb8428 nf_log_unset +EXPORT_SYMBOL vmlinux 0x981661a0 __idr_get_new_above +EXPORT_SYMBOL vmlinux 0x981759b4 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x98226ea7 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x9829fc11 __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0x982dc768 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x984bc391 ihold +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x987b0ca5 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x9887a524 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x988c562a blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x988de2c0 tty_write_room +EXPORT_SYMBOL vmlinux 0x9899220a mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x98be8e79 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x98c2a8fd validate_sp +EXPORT_SYMBOL vmlinux 0x98cf60b3 strlen +EXPORT_SYMBOL vmlinux 0x99195078 vsnprintf +EXPORT_SYMBOL vmlinux 0x993fb62e block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x99591a7a ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x9976c0eb console_stop +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999d3959 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99afe916 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x99c69138 f_setown +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d3a43c dm_table_get_size +EXPORT_SYMBOL vmlinux 0x99daa9bf try_offline_node +EXPORT_SYMBOL vmlinux 0x99ef1de5 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x9a08c18e end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x9a0ab5b1 get_thermal_instance +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1fc4b4 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9a53ca94 ipmi_smi_add_proc_entry +EXPORT_SYMBOL vmlinux 0x9a5ffc64 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x9a6af857 may_umount_tree +EXPORT_SYMBOL vmlinux 0x9a6d1d1a cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x9a729051 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x9a74e222 tcp_release_cb +EXPORT_SYMBOL vmlinux 0x9abbf052 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x9ae64f8c blk_execute_rq +EXPORT_SYMBOL vmlinux 0x9af5df93 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x9af89f98 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9b1ebceb simple_setattr +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b7e37ad clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x9b853199 kill_litter_super +EXPORT_SYMBOL vmlinux 0x9b9e05f9 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x9ba187af vm_mmap +EXPORT_SYMBOL vmlinux 0x9ba4bfec request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bbeee4b lock_rename +EXPORT_SYMBOL vmlinux 0x9be7bde4 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x9bebd0e9 mmc_put_card +EXPORT_SYMBOL vmlinux 0x9c0539a9 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x9c09e6dc inet6_getname +EXPORT_SYMBOL vmlinux 0x9c33c6d0 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0x9c3dd368 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x9c48b151 vio_unregister_device +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c7442db md_unregister_thread +EXPORT_SYMBOL vmlinux 0x9c7c7796 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x9c92cc1b dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x9cb32ffe fb_set_var +EXPORT_SYMBOL vmlinux 0x9cef3cc5 __idr_remove_all +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9cff8b4c genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x9d04d7a7 rtas +EXPORT_SYMBOL vmlinux 0x9d05757e inet_getname +EXPORT_SYMBOL vmlinux 0x9d05f6c4 ktime_get_clocktai +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs +EXPORT_SYMBOL vmlinux 0x9d1a5744 key_put +EXPORT_SYMBOL vmlinux 0x9d3278d9 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3e655a pci_iomap +EXPORT_SYMBOL vmlinux 0x9d4f5cd5 pps_unregister_source +EXPORT_SYMBOL vmlinux 0x9d5e3143 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x9d660121 scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x9d6fb2fa agp_put_bridge +EXPORT_SYMBOL vmlinux 0x9d7ce8dd _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x9d9dfc18 load_fp_state +EXPORT_SYMBOL vmlinux 0x9df3b7eb pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x9e0867d7 pcie_set_mps +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e1fd6e7 tcp_connect +EXPORT_SYMBOL vmlinux 0x9e1ff6e9 arp_invalidate +EXPORT_SYMBOL vmlinux 0x9e2f8c90 lz4_decompress_unknownoutputsize +EXPORT_SYMBOL vmlinux 0x9e408f37 dev_load +EXPORT_SYMBOL vmlinux 0x9e44b9b7 of_get_next_available_child +EXPORT_SYMBOL vmlinux 0x9e451114 ide_dma_off +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e5b5d18 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x9e61b911 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e7ef034 d_validate +EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ed16075 pci_iounmap +EXPORT_SYMBOL vmlinux 0x9ed2eec7 param_set_ushort +EXPORT_SYMBOL vmlinux 0x9ed43c1a tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0x9f045e1f xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f38043d generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f566049 input_free_device +EXPORT_SYMBOL vmlinux 0x9f801870 __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x9f826823 fb_find_mode +EXPORT_SYMBOL vmlinux 0x9f8b62e2 seq_pad +EXPORT_SYMBOL vmlinux 0x9f8c6c62 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fb8a320 ibmebus_unregister_driver +EXPORT_SYMBOL vmlinux 0x9fca3378 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x9fd540fd padata_stop +EXPORT_SYMBOL vmlinux 0x9fd7b51d nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x9fda2e74 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fea78fc sk_filter +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0xa0220e5f invalidate_partition +EXPORT_SYMBOL vmlinux 0xa02659fd ppp_unit_number +EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa057009c dquot_enable +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06403df elv_unregister_queue +EXPORT_SYMBOL vmlinux 0xa06cb2e6 user_path_at +EXPORT_SYMBOL vmlinux 0xa07a37f0 memchr +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa085b849 d_add_ci +EXPORT_SYMBOL vmlinux 0xa0a65942 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0dad88e netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0ff74d6 udp_memory_allocated +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa1481ede key_payload_reserve +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa15601c9 skb_try_coalesce +EXPORT_SYMBOL vmlinux 0xa1a1f8aa blk_run_queue_async +EXPORT_SYMBOL vmlinux 0xa1b7101e setup_arg_pages +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1bc7a40 tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0xa1c5df33 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1c99385 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xa1f8189e netlink_capable +EXPORT_SYMBOL vmlinux 0xa1f8fe75 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xa2013ff0 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xa2026975 kobject_set_name +EXPORT_SYMBOL vmlinux 0xa202a8e5 kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa22a64f8 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0xa233dc86 block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xa2470b77 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xa2676729 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL vmlinux 0xa28b9e68 of_platform_device_create +EXPORT_SYMBOL vmlinux 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register +EXPORT_SYMBOL vmlinux 0xa2c61a0f pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0xa2cd5c26 kernel_sendpage +EXPORT_SYMBOL vmlinux 0xa2db0dd1 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2f430b0 sk_release_kernel +EXPORT_SYMBOL vmlinux 0xa303d1ff dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0xa31ad92b i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xa3225eb1 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0xa332464a of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xa3351728 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xa345fb83 pci_select_bars +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa39595fd bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa3a849f1 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xa3abc422 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xa3bf5d26 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xa3db906d ptp_clock_unregister +EXPORT_SYMBOL vmlinux 0xa3fc3d50 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0xa400159f crc32_be +EXPORT_SYMBOL vmlinux 0xa43b8fd7 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xa43cbf30 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xa4511467 crc16 +EXPORT_SYMBOL vmlinux 0xa45c2fae bio_map_kern +EXPORT_SYMBOL vmlinux 0xa4701e9e timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0xa473e372 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xa475d73d bio_clone_bioset +EXPORT_SYMBOL vmlinux 0xa47e5b35 flex_array_free +EXPORT_SYMBOL vmlinux 0xa4881005 register_md_personality +EXPORT_SYMBOL vmlinux 0xa49a5d2b pcim_iomap +EXPORT_SYMBOL vmlinux 0xa4ab2bfa pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4bdd447 __cputime_clockt_factor +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa51fe801 sock_kfree_s +EXPORT_SYMBOL vmlinux 0xa53e34d0 bio_alloc_pages +EXPORT_SYMBOL vmlinux 0xa54db041 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa559fec4 fb_set_suspend +EXPORT_SYMBOL vmlinux 0xa55c6830 register_sysctl_table +EXPORT_SYMBOL vmlinux 0xa56b57ef seq_read +EXPORT_SYMBOL vmlinux 0xa5701734 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5b52d01 pipe_to_file +EXPORT_SYMBOL vmlinux 0xa5bc9d99 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0xa5ec27b9 mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0xa602eb33 inet_accept +EXPORT_SYMBOL vmlinux 0xa631df8a cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xa63a2f9b param_get_ulong +EXPORT_SYMBOL vmlinux 0xa63cf4b4 seq_vprintf +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa647098e loop_backing_file +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa66ff8f1 skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0xa6715115 do_settimeofday +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa6776132 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa68cf3dd jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xa6a8bc10 inet6_add_offload +EXPORT_SYMBOL vmlinux 0xa6b06dec pci_release_region +EXPORT_SYMBOL vmlinux 0xa6b62107 phy_detach +EXPORT_SYMBOL vmlinux 0xa6d0285e pci_disable_msix +EXPORT_SYMBOL vmlinux 0xa710ad6c xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xa720678c lg_global_lock +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa735db59 prandom_u32 +EXPORT_SYMBOL vmlinux 0xa7360efa scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xa73a80c4 blk_make_request +EXPORT_SYMBOL vmlinux 0xa73fc98f of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xa792b724 mach_pseries +EXPORT_SYMBOL vmlinux 0xa7af666a skb_insert +EXPORT_SYMBOL vmlinux 0xa7b5500e compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xa7b8207f ata_dev_printk +EXPORT_SYMBOL vmlinux 0xa7bc7c9d vfs_rename +EXPORT_SYMBOL vmlinux 0xa7e1b559 skb_pull +EXPORT_SYMBOL vmlinux 0xa7ed5190 update_region +EXPORT_SYMBOL vmlinux 0xa7f39d3a locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xa80219b6 kobject_add +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa86b4490 page_put_link +EXPORT_SYMBOL vmlinux 0xa86efbc1 devfreq_interval_update +EXPORT_SYMBOL vmlinux 0xa8721b97 system_state +EXPORT_SYMBOL vmlinux 0xa8727d35 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xa8734c2f tcp_make_synack +EXPORT_SYMBOL vmlinux 0xa8919431 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xa8989f80 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8eb6ce3 dev_uc_del +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa916b694 strnlen +EXPORT_SYMBOL vmlinux 0xa9273e1a epapr_hypercall_start +EXPORT_SYMBOL vmlinux 0xa93ba88e proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xa9562bb0 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0xa966ac83 arp_tbl +EXPORT_SYMBOL vmlinux 0xa981fa2d iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0xa9a8fb9f __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xa9b55e26 prepare_binprm +EXPORT_SYMBOL vmlinux 0xa9b63345 of_parse_phandle_with_fixed_args +EXPORT_SYMBOL vmlinux 0xa9c3dda0 dst_release +EXPORT_SYMBOL vmlinux 0xa9dd5350 __mutex_init +EXPORT_SYMBOL vmlinux 0xaa0073b7 __net_get_random_once +EXPORT_SYMBOL vmlinux 0xaa0cb146 should_remove_suid +EXPORT_SYMBOL vmlinux 0xaa3ad573 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xaa45be03 fb_pan_display +EXPORT_SYMBOL vmlinux 0xaa46e87e lg_local_unlock +EXPORT_SYMBOL vmlinux 0xaa4d1c13 phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0xaa670d0e sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xaa680898 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xaa6e4df5 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xaa6e7710 check_submounts_and_drop +EXPORT_SYMBOL vmlinux 0xaa76dfed make_kprojid +EXPORT_SYMBOL vmlinux 0xaa859f3b netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0xaa8720b5 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xaa8a7021 con_is_bound +EXPORT_SYMBOL vmlinux 0xaa9087c0 param_ops_string +EXPORT_SYMBOL vmlinux 0xaab83ebd bio_endio +EXPORT_SYMBOL vmlinux 0xaad09165 kernel_bind +EXPORT_SYMBOL vmlinux 0xaaedbd62 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab122c98 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xab164477 i2c_master_send +EXPORT_SYMBOL vmlinux 0xab1d7ac7 kthread_stop +EXPORT_SYMBOL vmlinux 0xab243ea4 sk_capable +EXPORT_SYMBOL vmlinux 0xab2704e4 __d_drop +EXPORT_SYMBOL vmlinux 0xab2fa303 udp6_csum_init +EXPORT_SYMBOL vmlinux 0xab38cfb1 md_finish_reshape +EXPORT_SYMBOL vmlinux 0xab42c9f5 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xab558b78 alloc_file +EXPORT_SYMBOL vmlinux 0xab56bb2f tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xab5d90bb ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xab668303 netlink_ns_capable +EXPORT_SYMBOL vmlinux 0xab681b6b scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab7050f2 __invalidate_device +EXPORT_SYMBOL vmlinux 0xab755863 pci_bus_put +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xab78acff sk_reset_timer +EXPORT_SYMBOL vmlinux 0xab81026d pci_enable_ltr +EXPORT_SYMBOL vmlinux 0xabab6f83 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0xababe24a dump_skip +EXPORT_SYMBOL vmlinux 0xabc6dd63 cpufreq_sysfs_create_file +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabe05885 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0xabf4c2da dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0xabfcc853 icmp_send +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac18b3d8 blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac1b3de7 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xac26b820 _raw_write_lock +EXPORT_SYMBOL vmlinux 0xac35b910 inet_recvmsg +EXPORT_SYMBOL vmlinux 0xac39229c tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xac3cf790 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0xac4355cc inode_set_bytes +EXPORT_SYMBOL vmlinux 0xac4be577 neigh_update +EXPORT_SYMBOL vmlinux 0xac5ab2b8 ftrace_raw_output_prep +EXPORT_SYMBOL vmlinux 0xac96da89 kern_unmount +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacbb4fef eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xacbe0d2e complete_request_key +EXPORT_SYMBOL vmlinux 0xacc5b5d2 csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0xacc5e8b8 napi_gro_receive +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacd1ee03 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad01744f kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0950b7 simple_unlink +EXPORT_SYMBOL vmlinux 0xad1000b9 skb_queue_head +EXPORT_SYMBOL vmlinux 0xad164875 kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xad230525 vfs_link +EXPORT_SYMBOL vmlinux 0xad27749a mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xad2dc1e9 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xad46dec2 of_count_phandle_with_args +EXPORT_SYMBOL vmlinux 0xad50cebb i8253_lock +EXPORT_SYMBOL vmlinux 0xad51fac9 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xad56421d ide_dma_off_quietly +EXPORT_SYMBOL vmlinux 0xad674be3 put_disk +EXPORT_SYMBOL vmlinux 0xad6f5bdb register_qdisc +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xadb9c749 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xaddf2cc0 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xade52fd9 pci_disable_msi +EXPORT_SYMBOL vmlinux 0xadf0db75 __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xadfeef7a find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xae0159de netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xae063844 blk_peek_request +EXPORT_SYMBOL vmlinux 0xae0fe32f ppp_dev_name +EXPORT_SYMBOL vmlinux 0xae179328 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xae41afa6 cap_mmap_file +EXPORT_SYMBOL vmlinux 0xae4a1bda csum_tcpudp_nofold +EXPORT_SYMBOL vmlinux 0xae545f06 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xae57ea61 __napi_complete +EXPORT_SYMBOL vmlinux 0xae6b1e59 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xae729e59 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0xae7859d7 d_set_d_op +EXPORT_SYMBOL vmlinux 0xae905feb scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xae935502 I_BDEV +EXPORT_SYMBOL vmlinux 0xae93639f kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xaeb6bcb9 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xaec22187 pci_get_slot +EXPORT_SYMBOL vmlinux 0xaec5ce6b crypto_sha512_update +EXPORT_SYMBOL vmlinux 0xaf05b91b of_device_is_available +EXPORT_SYMBOL vmlinux 0xaf063510 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xaf20c601 pci_enable_ido +EXPORT_SYMBOL vmlinux 0xaf291121 dma_find_channel +EXPORT_SYMBOL vmlinux 0xaf2d872c prepare_to_wait +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf49f330 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xaf4e7bcf netdev_warn +EXPORT_SYMBOL vmlinux 0xaf625d64 blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0xaf6302ae cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xaf64ad0d zlib_deflate +EXPORT_SYMBOL vmlinux 0xaf6ae696 kstrndup +EXPORT_SYMBOL vmlinux 0xaf72b2b7 of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0xaf8dc090 pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xafad493b param_ops_ushort +EXPORT_SYMBOL vmlinux 0xafc6dcd6 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xafeb1d93 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xaff43f48 register_key_type +EXPORT_SYMBOL vmlinux 0xafff3d1d mempool_alloc +EXPORT_SYMBOL vmlinux 0xb0154535 tty_do_resize +EXPORT_SYMBOL vmlinux 0xb03b8264 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb078fe07 get_fs_type +EXPORT_SYMBOL vmlinux 0xb08ba669 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xb08f5db6 from_kprojid_munged +EXPORT_SYMBOL vmlinux 0xb0a3abec gen10g_restart_aneg +EXPORT_SYMBOL vmlinux 0xb0b0873a kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0dc98d5 mmc_release_host +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0ffbfda nf_register_hooks +EXPORT_SYMBOL vmlinux 0xb0ffda2f blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xb1084515 mount_ns +EXPORT_SYMBOL vmlinux 0xb10e02ff mach_powernv +EXPORT_SYMBOL vmlinux 0xb1218af5 end_page_writeback +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb147a855 dql_reset +EXPORT_SYMBOL vmlinux 0xb1499634 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb160d830 ps2_drain +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb165ef45 __irq_regs +EXPORT_SYMBOL vmlinux 0xb16e85f4 vlan_vid_del +EXPORT_SYMBOL vmlinux 0xb18f3f06 ide_xfer_verbose +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1ae12ca iterate_dir +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c6e787 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1cf44df fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xb1db9e4e param_get_invbool +EXPORT_SYMBOL vmlinux 0xb20591c1 migrate_page +EXPORT_SYMBOL vmlinux 0xb216615b __lru_cache_add +EXPORT_SYMBOL vmlinux 0xb21862a5 dquot_initialize +EXPORT_SYMBOL vmlinux 0xb252992b ide_wait_stat +EXPORT_SYMBOL vmlinux 0xb2571e13 vfs_read +EXPORT_SYMBOL vmlinux 0xb25c3ba9 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2797d0a bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xb27b89fa vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xb2be6e92 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xb2c036c2 sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0xb2c852d6 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xb2ca8141 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xb2cc6691 check_disk_size_change +EXPORT_SYMBOL vmlinux 0xb2d2afa9 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xb304acff ida_get_new_above +EXPORT_SYMBOL vmlinux 0xb311834f do_splice_direct +EXPORT_SYMBOL vmlinux 0xb333f03d dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xb33ab352 giveup_fpu +EXPORT_SYMBOL vmlinux 0xb3746821 filemap_flush +EXPORT_SYMBOL vmlinux 0xb383e293 flex_array_clear +EXPORT_SYMBOL vmlinux 0xb396e22a bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xb3b7ec0c generic_write_end +EXPORT_SYMBOL vmlinux 0xb3baa302 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xb3d8b274 seq_release_private +EXPORT_SYMBOL vmlinux 0xb3e023ef neigh_parms_release +EXPORT_SYMBOL vmlinux 0xb3eb5c13 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb3fa9b6a ping_prot +EXPORT_SYMBOL vmlinux 0xb41a2da6 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb429259b dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb47189b5 reservation_ww_class +EXPORT_SYMBOL vmlinux 0xb482922c scsi_dma_map +EXPORT_SYMBOL vmlinux 0xb489ef5c nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xb4bc716a __secpath_destroy +EXPORT_SYMBOL vmlinux 0xb4c05098 kfree_put_link +EXPORT_SYMBOL vmlinux 0xb4d27fcf __elv_add_request +EXPORT_SYMBOL vmlinux 0xb504227f tcp_disconnect +EXPORT_SYMBOL vmlinux 0xb504c1ac blk_mq_insert_request +EXPORT_SYMBOL vmlinux 0xb51e4ac6 agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54cc9ee thaw_super +EXPORT_SYMBOL vmlinux 0xb54e7ea1 ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0xb57343c2 frontswap_shrink +EXPORT_SYMBOL vmlinux 0xb57f2457 sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0xb5878a90 scm_detach_fds +EXPORT_SYMBOL vmlinux 0xb58b87ab scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xb59a2aac generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb6394d4b param_set_bint +EXPORT_SYMBOL vmlinux 0xb6454cff compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xb656577a d_lookup +EXPORT_SYMBOL vmlinux 0xb66f1c93 uart_resume_port +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb68a94c2 account_page_dirtied +EXPORT_SYMBOL vmlinux 0xb68bfa9d node_states +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6b46a7c param_ops_int +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6c9f2c1 phy_drivers_register +EXPORT_SYMBOL vmlinux 0xb6f31894 pci_disable_device +EXPORT_SYMBOL vmlinux 0xb6fee4f3 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xb72dd1a5 single_release +EXPORT_SYMBOL vmlinux 0xb73e49a6 load_nls_default +EXPORT_SYMBOL vmlinux 0xb743df8d dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0xb77131b1 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xb7860e9d kill_block_super +EXPORT_SYMBOL vmlinux 0xb7d8fb6c kernel_getsockname +EXPORT_SYMBOL vmlinux 0xb7db742b agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0xb7ebb236 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xb7f25bdf of_phy_find_device +EXPORT_SYMBOL vmlinux 0xb82c7c18 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb850b4e7 input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0xb85a3ecf mpage_writepages +EXPORT_SYMBOL vmlinux 0xb864750e machine_id +EXPORT_SYMBOL vmlinux 0xb874b87a __clzsi2 +EXPORT_SYMBOL vmlinux 0xb8946199 __pskb_copy +EXPORT_SYMBOL vmlinux 0xb897fecb input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0xb8a39753 generic_write_checks +EXPORT_SYMBOL vmlinux 0xb8b49de9 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xb8bb45e8 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xb8c10bae dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xb8d73e97 param_set_uint +EXPORT_SYMBOL vmlinux 0xb8daad6b bd_set_size +EXPORT_SYMBOL vmlinux 0xb8e4c183 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xb9178ce7 nf_log_register +EXPORT_SYMBOL vmlinux 0xb92321bf dquot_acquire +EXPORT_SYMBOL vmlinux 0xb931f3c3 bdi_destroy +EXPORT_SYMBOL vmlinux 0xb9371cd3 get_disk +EXPORT_SYMBOL vmlinux 0xb96da806 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xb973a897 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb98f4cb7 vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0xb9b4e181 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0xb9e8e2cc in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0xba122496 spi_dv_device +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba67d562 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xba887f1c scsi_target_resume +EXPORT_SYMBOL vmlinux 0xba88a995 key_link +EXPORT_SYMBOL vmlinux 0xba95d097 unregister_nls +EXPORT_SYMBOL vmlinux 0xbabd1f88 pps_lookup_dev +EXPORT_SYMBOL vmlinux 0xbaf40b9f fbcon_rotate_cw +EXPORT_SYMBOL vmlinux 0xbb0dd7ec mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb219f6e tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xbb32bcd0 mutex_lock +EXPORT_SYMBOL vmlinux 0xbb4f4766 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xbb5a3dcb inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb713e6d sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0xbb75a382 proc_set_user +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbaeb559 memcg_socket_limit_enabled +EXPORT_SYMBOL vmlinux 0xbbb6b412 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xbbcf1fb2 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0xbbd69fca frontswap_register_ops +EXPORT_SYMBOL vmlinux 0xbc1ae81c __put_cred +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc3f6afa down_read +EXPORT_SYMBOL vmlinux 0xbc5e43be sock_no_mmap +EXPORT_SYMBOL vmlinux 0xbc6c4339 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xbc7b0548 seq_bitmap +EXPORT_SYMBOL vmlinux 0xbc81fcf6 d_alloc +EXPORT_SYMBOL vmlinux 0xbc831999 pci_set_power_state +EXPORT_SYMBOL vmlinux 0xbc9bb793 __register_binfmt +EXPORT_SYMBOL vmlinux 0xbc9f0b5c gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcdedba7 of_get_mac_address +EXPORT_SYMBOL vmlinux 0xbcf150f9 xor_altivec_5 +EXPORT_SYMBOL vmlinux 0xbd203cfb ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0xbd3b1332 bio_add_page +EXPORT_SYMBOL vmlinux 0xbd462b55 __kfifo_init +EXPORT_SYMBOL vmlinux 0xbd60b7dc bdi_register +EXPORT_SYMBOL vmlinux 0xbda01a28 pcim_pin_device +EXPORT_SYMBOL vmlinux 0xbdd3625e netif_carrier_on +EXPORT_SYMBOL vmlinux 0xbde58e61 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0xbdf28e92 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xbdf47b72 skb_dequeue +EXPORT_SYMBOL vmlinux 0xbdfaebec pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xbdfcd844 xfrm_init_state +EXPORT_SYMBOL vmlinux 0xbe0673a1 inet_del_offload +EXPORT_SYMBOL vmlinux 0xbe07203d pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0xbe0d0595 dev_change_carrier +EXPORT_SYMBOL vmlinux 0xbe1d582e ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xbe2acedd mmc_start_bkops +EXPORT_SYMBOL vmlinux 0xbe4c5663 dcache_readdir +EXPORT_SYMBOL vmlinux 0xbe7618bc mmc_start_req +EXPORT_SYMBOL vmlinux 0xbe77aebe down_write_trylock +EXPORT_SYMBOL vmlinux 0xbe8870b3 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xbe891f65 pci_target_state +EXPORT_SYMBOL vmlinux 0xbe9cf156 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xbea4325a __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0xbec25473 of_parse_phandle +EXPORT_SYMBOL vmlinux 0xbee077d1 dma_common_mmap +EXPORT_SYMBOL vmlinux 0xbee13089 n_tty_compat_ioctl_helper +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbeff6344 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xbf0a4d58 ppc_md +EXPORT_SYMBOL vmlinux 0xbf18211c d_rehash +EXPORT_SYMBOL vmlinux 0xbf1bdd3b bio_map_user +EXPORT_SYMBOL vmlinux 0xbf2ee8bd inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xbf59b027 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xbf746399 pci_bus_type +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfabfe59 __debugger_iabr_match +EXPORT_SYMBOL vmlinux 0xbfb8b0b7 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfc5e5d3 iput +EXPORT_SYMBOL vmlinux 0xbfda0fed pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0xbfdaec68 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff4a98b locks_remove_posix +EXPORT_SYMBOL vmlinux 0xbff8182c plpar_hcall_norets +EXPORT_SYMBOL vmlinux 0xc04e9276 skb_free_datagram +EXPORT_SYMBOL vmlinux 0xc083094e scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xc089d6c3 vio_disable_interrupts +EXPORT_SYMBOL vmlinux 0xc09a2f8a scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0cc0850 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xc0d87274 dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0xc0e2ef2d blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xc0f5d083 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xc10ecb91 neigh_direct_output +EXPORT_SYMBOL vmlinux 0xc11f3140 dma_sync_wait +EXPORT_SYMBOL vmlinux 0xc120a83b eth_header +EXPORT_SYMBOL vmlinux 0xc142401b pci_find_capability +EXPORT_SYMBOL vmlinux 0xc14440d0 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xc15600bc dquot_release +EXPORT_SYMBOL vmlinux 0xc159713d serio_unregister_port +EXPORT_SYMBOL vmlinux 0xc15a44c6 memzero_explicit +EXPORT_SYMBOL vmlinux 0xc16487e3 paca +EXPORT_SYMBOL vmlinux 0xc19810d2 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0xc19962db netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xc1a7919c input_register_device +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1c83799 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xc1ff945f nobh_write_begin +EXPORT_SYMBOL vmlinux 0xc20aa89d get_user_pages +EXPORT_SYMBOL vmlinux 0xc211ef13 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xc233d85a jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc24271cb gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xc242bf7b __breadahead +EXPORT_SYMBOL vmlinux 0xc24b5f98 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2602659 phy_start_aneg +EXPORT_SYMBOL vmlinux 0xc265e41c mnt_unpin +EXPORT_SYMBOL vmlinux 0xc26b95be vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0xc270f5ae input_grab_device +EXPORT_SYMBOL vmlinux 0xc2744bb0 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xc27b4401 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xc29bf967 strspn +EXPORT_SYMBOL vmlinux 0xc2b4ba7f pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xc2c013e2 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2efdc60 dev_mc_sync +EXPORT_SYMBOL vmlinux 0xc2f55800 bio_init +EXPORT_SYMBOL vmlinux 0xc2f9c045 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xc310b981 strnstr +EXPORT_SYMBOL vmlinux 0xc314c3d2 __cputime_jiffies_factor +EXPORT_SYMBOL vmlinux 0xc331ec39 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xc341b9ba pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0xc35b09fb drop_super +EXPORT_SYMBOL vmlinux 0xc3722dc1 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xc3fc13b6 iterate_supers_type +EXPORT_SYMBOL vmlinux 0xc4199c35 bio_advance +EXPORT_SYMBOL vmlinux 0xc476f6be scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xc47cdf9c _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0xc48307db lz4_decompress +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4b30fb8 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xc4d5605b agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0xc4d912b0 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0xc4fe577c blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xc4ff1eec i2c_del_driver +EXPORT_SYMBOL vmlinux 0xc51991cb starget_for_each_device +EXPORT_SYMBOL vmlinux 0xc52cf1f2 set_bh_page +EXPORT_SYMBOL vmlinux 0xc534fa25 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc55c2a9d inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0xc55de23c percpu_counter_set +EXPORT_SYMBOL vmlinux 0xc569e6d4 tcf_action_exec +EXPORT_SYMBOL vmlinux 0xc56f041f lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xc5849758 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xc589e044 param_set_long +EXPORT_SYMBOL vmlinux 0xc59cb1e0 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xc5a6c846 __serio_register_port +EXPORT_SYMBOL vmlinux 0xc5abfd3b pci_remove_bus +EXPORT_SYMBOL vmlinux 0xc5b67fef md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xc5d1e3d3 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5f08a72 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0xc5fdef94 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xc600a318 of_get_ddr_timings +EXPORT_SYMBOL vmlinux 0xc60f534c key_validate +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc638351e textsearch_register +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc65c5dc0 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xc663b075 __ioremap +EXPORT_SYMBOL vmlinux 0xc665d6d7 of_parse_phandle_with_args +EXPORT_SYMBOL vmlinux 0xc666a132 crc_t10dif +EXPORT_SYMBOL vmlinux 0xc6774da5 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xc68f9309 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0xc69a8919 __lock_buffer +EXPORT_SYMBOL vmlinux 0xc6b22c71 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xc6bdd988 inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0xc6cb465a __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6cc445b __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xc6f83993 cdrom_release +EXPORT_SYMBOL vmlinux 0xc6fabc12 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xc71b83c6 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0xc7201670 input_set_abs_params +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc7280c88 srp_reconnect_rport +EXPORT_SYMBOL vmlinux 0xc730696b __ide_dma_bad_drive +EXPORT_SYMBOL vmlinux 0xc7592833 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xc75c8f94 default_qdisc_ops +EXPORT_SYMBOL vmlinux 0xc78201ca elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc787be7a blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xc7951c8a pci_fixup_device +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7cb0b44 generic_removexattr +EXPORT_SYMBOL vmlinux 0xc7f7a7c7 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xc82989b3 __destroy_inode +EXPORT_SYMBOL vmlinux 0xc83b4d5b posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xc83e30c8 dquot_file_open +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc85da30d ide_complete_rq +EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8983bf5 agp_find_bridge +EXPORT_SYMBOL vmlinux 0xc89e65f4 locks_init_lock +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8b9bfa4 blk_fetch_request +EXPORT_SYMBOL vmlinux 0xc8c4c578 nla_put +EXPORT_SYMBOL vmlinux 0xc8e6e82f sock_wfree +EXPORT_SYMBOL vmlinux 0xc8fd727e mod_timer +EXPORT_SYMBOL vmlinux 0xc91ff664 down_read_trylock +EXPORT_SYMBOL vmlinux 0xc92690fa bio_sector_offset +EXPORT_SYMBOL vmlinux 0xc93fbc54 wait_for_completion_io +EXPORT_SYMBOL vmlinux 0xc94f0fad uart_add_one_port +EXPORT_SYMBOL vmlinux 0xc95fe8a3 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0xc974a47c vfs_readlink +EXPORT_SYMBOL vmlinux 0xc978479a xz_dec_run +EXPORT_SYMBOL vmlinux 0xc9a7e3e7 blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc9f0d267 ide_geometry_proc_fops +EXPORT_SYMBOL vmlinux 0xc9f9e75a qdisc_list_del +EXPORT_SYMBOL vmlinux 0xca01151a do_truncate +EXPORT_SYMBOL vmlinux 0xca3b28c6 store_vr_state +EXPORT_SYMBOL vmlinux 0xca503a4a __bread +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca63df2e from_kuid +EXPORT_SYMBOL vmlinux 0xca78439f fb_show_logo +EXPORT_SYMBOL vmlinux 0xca7a34bf xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xca917689 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xca99fac2 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xcaaeb7ae md_register_thread +EXPORT_SYMBOL vmlinux 0xcabc29ab powerpc_debugfs_root +EXPORT_SYMBOL vmlinux 0xcac98a8f vfs_rmdir +EXPORT_SYMBOL vmlinux 0xcadec386 from_kgid_munged +EXPORT_SYMBOL vmlinux 0xcaebfda4 udp_sendmsg +EXPORT_SYMBOL vmlinux 0xcaf9d89b poll_initwait +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb0c5d50 param_get_uint +EXPORT_SYMBOL vmlinux 0xcb1008fe phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xcb2ae076 netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0xcb6d495a lookup_bdev +EXPORT_SYMBOL vmlinux 0xcb8166f7 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xcb8ba5e3 igrab +EXPORT_SYMBOL vmlinux 0xcb9788be tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcc17504d _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xcc2257a9 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xcc247406 lro_receive_frags +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc37f55c blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xcc43b896 sock_init_data +EXPORT_SYMBOL vmlinux 0xcc43f82b pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xcc4b84da of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc62ac54 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0xcc79fa8d xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xcc7eb9da inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc94a1c5 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xcca27eeb del_timer +EXPORT_SYMBOL vmlinux 0xcca7c4e3 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xccb4ceb3 dev_uc_flush +EXPORT_SYMBOL vmlinux 0xccc21f5e input_get_new_minor +EXPORT_SYMBOL vmlinux 0xccc84987 vfs_llseek +EXPORT_SYMBOL vmlinux 0xccd9add7 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xcced2ac9 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xcd000773 put_io_context +EXPORT_SYMBOL vmlinux 0xcd0529c7 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xcd20667a kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd3070f3 scsi_get_command +EXPORT_SYMBOL vmlinux 0xcd37656d compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0xcd3bccf2 km_state_expired +EXPORT_SYMBOL vmlinux 0xcd86c87f __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xcd969a7b inode_dio_wait +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcdc74b7b copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xce14df80 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce350985 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xce3b3f09 profile_pc +EXPORT_SYMBOL vmlinux 0xce47667c mount_subtree +EXPORT_SYMBOL vmlinux 0xce4c08cf flex_array_get +EXPORT_SYMBOL vmlinux 0xce4e47b6 __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xced777cb proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xcedc8ca7 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf071f73 mmc_stop_bkops +EXPORT_SYMBOL vmlinux 0xcf11e0c1 pcim_iounmap +EXPORT_SYMBOL vmlinux 0xcf22e0cb input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0xcf253f73 set_binfmt +EXPORT_SYMBOL vmlinux 0xcf3025cb inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0xcf385cf0 blk_mq_init_commands +EXPORT_SYMBOL vmlinux 0xcf745504 skb_append +EXPORT_SYMBOL vmlinux 0xcf7fd135 dev_uc_add +EXPORT_SYMBOL vmlinux 0xcf8f211d inet_addr_type +EXPORT_SYMBOL vmlinux 0xcf978c0e serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0xcf9ec227 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xcfb6f304 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xcfde0311 sock_rfree +EXPORT_SYMBOL vmlinux 0xd01525e5 security_file_permission +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd02e1256 loop_register_transfer +EXPORT_SYMBOL vmlinux 0xd02f77e2 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xd04f2568 devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0xd06bff10 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xd0720a17 on_each_cpu_cond +EXPORT_SYMBOL vmlinux 0xd07dfdfc km_report +EXPORT_SYMBOL vmlinux 0xd09ad5ef mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0cc5d91 elevator_alloc +EXPORT_SYMBOL vmlinux 0xd0eab2ae pneigh_lookup +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0eff7ae dst_discard +EXPORT_SYMBOL vmlinux 0xd0f0cd0f pci_release_regions +EXPORT_SYMBOL vmlinux 0xd0f1bd50 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd1013d71 nf_nat_decode_session_hook +EXPORT_SYMBOL vmlinux 0xd10c3452 idr_init +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf +EXPORT_SYMBOL vmlinux 0xd12ce0ae mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0xd1369a52 dma_set_mask +EXPORT_SYMBOL vmlinux 0xd16e4558 ide_stall_queue +EXPORT_SYMBOL vmlinux 0xd17ae454 netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0xd1816f32 frontswap_writethrough +EXPORT_SYMBOL vmlinux 0xd18d5ecd proto_register +EXPORT_SYMBOL vmlinux 0xd192b3cc pci_get_class +EXPORT_SYMBOL vmlinux 0xd1939a88 compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xd19a0340 qdisc_reset +EXPORT_SYMBOL vmlinux 0xd1a4fa13 skb_queue_purge +EXPORT_SYMBOL vmlinux 0xd1cb730a dev_printk_emit +EXPORT_SYMBOL vmlinux 0xd1ddf7fd mount_bdev +EXPORT_SYMBOL vmlinux 0xd1e081f4 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xd1e3a271 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xd1f42147 unregister_md_personality +EXPORT_SYMBOL vmlinux 0xd1f423c4 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0xd2170a12 seq_open +EXPORT_SYMBOL vmlinux 0xd220cf8a jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0xd22acf48 ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd287dba7 kmem_cache_create +EXPORT_SYMBOL vmlinux 0xd294914f jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xd2a1bf42 kernel_connect +EXPORT_SYMBOL vmlinux 0xd2b09ce5 __kmalloc +EXPORT_SYMBOL vmlinux 0xd2b956bc jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xd2cd5568 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd33155d2 __pci_register_driver +EXPORT_SYMBOL vmlinux 0xd336e06b key_revoke +EXPORT_SYMBOL vmlinux 0xd34a135a bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0xd34ef3b2 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xd36257ba memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0xd37db3b0 __lock_page +EXPORT_SYMBOL vmlinux 0xd398d71c __napi_schedule +EXPORT_SYMBOL vmlinux 0xd3f26b90 fs_bio_set +EXPORT_SYMBOL vmlinux 0xd404efb1 mb_cache_create +EXPORT_SYMBOL vmlinux 0xd42ed523 scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0xd431aea9 ptp_clock_register +EXPORT_SYMBOL vmlinux 0xd44bd731 pci_pme_capable +EXPORT_SYMBOL vmlinux 0xd44c046f inode_needs_sync +EXPORT_SYMBOL vmlinux 0xd4527aba i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0xd459bdf6 sk_ns_capable +EXPORT_SYMBOL vmlinux 0xd4687176 alloc_fddidev +EXPORT_SYMBOL vmlinux 0xd475433b blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xd48fdeef dql_completed +EXPORT_SYMBOL vmlinux 0xd4941284 skb_store_bits +EXPORT_SYMBOL vmlinux 0xd4b76c66 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xd4c7e4bc devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0xd4e128cd rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0xd4efa828 mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0xd5110880 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xd5426ff2 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xd548f6f2 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xd54e1563 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xd54fb082 ide_do_reset +EXPORT_SYMBOL vmlinux 0xd559881b security_dentry_init_security +EXPORT_SYMBOL vmlinux 0xd572b524 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xd57f1092 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0xd582c6b9 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xd589bafe would_dump +EXPORT_SYMBOL vmlinux 0xd5a07be7 __test_set_page_writeback +EXPORT_SYMBOL vmlinux 0xd5b3e433 md_write_end +EXPORT_SYMBOL vmlinux 0xd5b69a5f devm_gpiod_put +EXPORT_SYMBOL vmlinux 0xd5b8dffc __module_get +EXPORT_SYMBOL vmlinux 0xd5c0bc2c crypto_sha1_update +EXPORT_SYMBOL vmlinux 0xd5e610f4 devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0xd5f0943a register_cdrom +EXPORT_SYMBOL vmlinux 0xd5f3551f devm_request_and_ioremap +EXPORT_SYMBOL vmlinux 0xd5f70c88 scsi_ioctl +EXPORT_SYMBOL vmlinux 0xd5f802c1 __nla_reserve +EXPORT_SYMBOL vmlinux 0xd5fc3c25 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd648e564 fb_match_mode +EXPORT_SYMBOL vmlinux 0xd6690229 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0xd66a2b54 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xd67f6c92 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd68af01b __scsi_add_device +EXPORT_SYMBOL vmlinux 0xd6adb717 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xd6ae4e47 dev_notice +EXPORT_SYMBOL vmlinux 0xd6b72066 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xd6d63e9d lg_local_lock_cpu +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6efae18 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0xd6fd4053 __arch_hweight32 +EXPORT_SYMBOL vmlinux 0xd7171885 kobject_get +EXPORT_SYMBOL vmlinux 0xd718f39f xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0xd733028e thermal_cdev_update +EXPORT_SYMBOL vmlinux 0xd74ade66 kdb_current_task +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd761a383 ioremap_prot +EXPORT_SYMBOL vmlinux 0xd76a02e6 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd786c0ea plpar_hcall9 +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7cbddda memcpy_toiovec +EXPORT_SYMBOL vmlinux 0xd7d10e55 dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0xd7dbc0dc tcp_child_process +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd801d334 arp_create +EXPORT_SYMBOL vmlinux 0xd80ca763 led_set_brightness +EXPORT_SYMBOL vmlinux 0xd81cbc4b dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xd82cafe2 __vio_register_driver +EXPORT_SYMBOL vmlinux 0xd85a58cc tcp_prequeue +EXPORT_SYMBOL vmlinux 0xd8605aeb padata_start +EXPORT_SYMBOL vmlinux 0xd86bdb17 __ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xd896f232 blk_get_request +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8c72cf0 ifla_policy +EXPORT_SYMBOL vmlinux 0xd8ded085 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8ed2090 page_readlink +EXPORT_SYMBOL vmlinux 0xd8f7ac69 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xd91f05f9 ip_fragment +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd92e16ba csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0xd937c308 module_refcount +EXPORT_SYMBOL vmlinux 0xd944a1fe jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xd945fcd2 bdget +EXPORT_SYMBOL vmlinux 0xd95b1222 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xd9601706 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xd9605d4c add_timer +EXPORT_SYMBOL vmlinux 0xd9711dc9 register_filesystem +EXPORT_SYMBOL vmlinux 0xd97df7f1 tty_lock +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9861ab7 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0xd9a9bb30 getname +EXPORT_SYMBOL vmlinux 0xd9ade114 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9f0b93e pskb_expand_head +EXPORT_SYMBOL vmlinux 0xda2297c5 __nlmsg_put +EXPORT_SYMBOL vmlinux 0xda2478d0 param_ops_short +EXPORT_SYMBOL vmlinux 0xda271361 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xda327050 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xda388f60 dev_open +EXPORT_SYMBOL vmlinux 0xda3b8451 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda3d43c2 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8f063a vio_find_node +EXPORT_SYMBOL vmlinux 0xdaa1b06f skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0xdab30a04 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xdab36852 __devm_request_region +EXPORT_SYMBOL vmlinux 0xdabc1ea8 fsl_lbc_find +EXPORT_SYMBOL vmlinux 0xdadeed6c lock_sock_fast +EXPORT_SYMBOL vmlinux 0xdae193a9 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xdae7c26f blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xdaea6e0d mfd_clone_cell +EXPORT_SYMBOL vmlinux 0xdaea92b0 vfs_writev +EXPORT_SYMBOL vmlinux 0xdb01198e fsl_upm_find +EXPORT_SYMBOL vmlinux 0xdb0a3beb ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xdb184f90 nf_reinject +EXPORT_SYMBOL vmlinux 0xdb1c89d3 ipmi_register_smi +EXPORT_SYMBOL vmlinux 0xdb1cc6f3 truncate_setsize +EXPORT_SYMBOL vmlinux 0xdb2befff rtnl_unicast +EXPORT_SYMBOL vmlinux 0xdb2c121f jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xdb2cbf53 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0xdb5016ca qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xdb719adf iterate_mounts +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb7758f0 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xdbb24fc2 down_write +EXPORT_SYMBOL vmlinux 0xdbb6fcf8 dma_direct_ops +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbe0e311 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xdbe702ea file_ns_capable +EXPORT_SYMBOL vmlinux 0xdbeaf319 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xdbedfcab vio_unregister_driver +EXPORT_SYMBOL vmlinux 0xdbfe55c2 gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0xdc000de1 md_done_sync +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2a6f2f security_path_mknod +EXPORT_SYMBOL vmlinux 0xdc3c41a8 __crypto_memneq +EXPORT_SYMBOL vmlinux 0xdc3f20f7 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc4fc4ea jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xdc6a04e7 freeze_bdev +EXPORT_SYMBOL vmlinux 0xdc7a7ea7 kfree_skb +EXPORT_SYMBOL vmlinux 0xdc9498dd down +EXPORT_SYMBOL vmlinux 0xdcb764ad memset +EXPORT_SYMBOL vmlinux 0xdd1620de unlock_rename +EXPORT_SYMBOL vmlinux 0xdd30fb0a create_syslog_header +EXPORT_SYMBOL vmlinux 0xdd3441b1 filemap_fault +EXPORT_SYMBOL vmlinux 0xdd35d6b8 udp_add_offload +EXPORT_SYMBOL vmlinux 0xdd4c33e9 input_register_handler +EXPORT_SYMBOL vmlinux 0xdd955144 __debugger +EXPORT_SYMBOL vmlinux 0xdda456d8 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xddc6f0b1 dquot_drop +EXPORT_SYMBOL vmlinux 0xde10eb10 param_set_invbool +EXPORT_SYMBOL vmlinux 0xde2705d4 scsi_execute +EXPORT_SYMBOL vmlinux 0xde48e9ca _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xde5ec321 __genl_register_family +EXPORT_SYMBOL vmlinux 0xde6151db tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xde783883 pSeries_disable_reloc_on_exc +EXPORT_SYMBOL vmlinux 0xde84dae6 names_cachep +EXPORT_SYMBOL vmlinux 0xde8d7d1c udp_ioctl +EXPORT_SYMBOL vmlinux 0xde91448c load_vr_state +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde97ff06 inet_shutdown +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdeb7477f vmap +EXPORT_SYMBOL vmlinux 0xdee1fbb0 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0xdee8f7b8 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xdeebcf9a alloc_anon_inode +EXPORT_SYMBOL vmlinux 0xdf02df20 dput +EXPORT_SYMBOL vmlinux 0xdf047ea2 mdio_bus_type +EXPORT_SYMBOL vmlinux 0xdf0cf7d7 dmam_pool_create +EXPORT_SYMBOL vmlinux 0xdf25ddcf __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf4facde dma_common_get_sgtable +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf5b4298 gen10g_config_advert +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf641bf9 lease_modify +EXPORT_SYMBOL vmlinux 0xdf75d982 skb_trim +EXPORT_SYMBOL vmlinux 0xdf7cd2dd tc_classify +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf9d7204 kmalloc_caches +EXPORT_SYMBOL vmlinux 0xdfa17d2c netdev_change_features +EXPORT_SYMBOL vmlinux 0xdfb9bf34 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfcf1e90 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xdfd359ed xfrm_register_type +EXPORT_SYMBOL vmlinux 0xdfdc5f5f __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xe03a1074 of_mdio_find_bus +EXPORT_SYMBOL vmlinux 0xe0431579 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe052f721 __find_get_block +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe06d36c1 cdrom_check_events +EXPORT_SYMBOL vmlinux 0xe06fba68 sock_no_listen +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe084af86 serio_close +EXPORT_SYMBOL vmlinux 0xe08b530e cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xe09706ee input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0xe09b9a76 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xe09c3701 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xe09dd3a3 i2c_transfer +EXPORT_SYMBOL vmlinux 0xe0a05524 irq_stat +EXPORT_SYMBOL vmlinux 0xe0a12597 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0xe0a3bec2 blk_delay_queue +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b4c690 dget_parent +EXPORT_SYMBOL vmlinux 0xe0c2c158 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xe0e943e8 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0xe0ebba30 from_kuid_munged +EXPORT_SYMBOL vmlinux 0xe0ef10c7 ida_simple_remove +EXPORT_SYMBOL vmlinux 0xe0ef5d90 start_tty +EXPORT_SYMBOL vmlinux 0xe0f96dcd dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL vmlinux 0xe10af03e d_find_any_alias +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe1228cdb dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xe131160e __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xe1359b7b sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe19bb015 pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0xe19d7f2a pci_clear_master +EXPORT_SYMBOL vmlinux 0xe1a7363f neigh_ifdown +EXPORT_SYMBOL vmlinux 0xe1c6a14b __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xe1d79732 seq_lseek +EXPORT_SYMBOL vmlinux 0xe1e66764 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0xe1fc6f4d inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe220ceb8 __debugger_sstep +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe2354cb2 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe250937f inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0xe2889a9f bio_integrity_free +EXPORT_SYMBOL vmlinux 0xe2892a28 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xe28a8f58 single_open +EXPORT_SYMBOL vmlinux 0xe29e1d0e out_of_line_wait_on_atomic_t +EXPORT_SYMBOL vmlinux 0xe2be5498 lg_global_unlock +EXPORT_SYMBOL vmlinux 0xe2cc4d00 of_get_min_tck +EXPORT_SYMBOL vmlinux 0xe2d45901 md_check_recovery +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe314e8fb cpu_core_map +EXPORT_SYMBOL vmlinux 0xe322cf9b tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0xe3295b22 check_disk_change +EXPORT_SYMBOL vmlinux 0xe3426f23 soft_cursor +EXPORT_SYMBOL vmlinux 0xe348c549 mac_find_mode +EXPORT_SYMBOL vmlinux 0xe34ac1a5 register_quota_format +EXPORT_SYMBOL vmlinux 0xe3542ba7 padata_do_parallel +EXPORT_SYMBOL vmlinux 0xe354acf0 ata_std_end_eh +EXPORT_SYMBOL vmlinux 0xe35c5285 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xe3a53f4c sort +EXPORT_SYMBOL vmlinux 0xe3acbef5 dquot_destroy +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3e2e433 udp_prot +EXPORT_SYMBOL vmlinux 0xe3e6e3dd request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xe3f8fcbd poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xe4226770 blk_mq_alloc_reserved_request +EXPORT_SYMBOL vmlinux 0xe450ec55 udp_disconnect +EXPORT_SYMBOL vmlinux 0xe4595955 flex_array_put +EXPORT_SYMBOL vmlinux 0xe46f8361 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xe47201ab dma_iommu_ops +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe49c05ad __page_symlink +EXPORT_SYMBOL vmlinux 0xe4a895fa up_write +EXPORT_SYMBOL vmlinux 0xe4ab00bb of_node_get +EXPORT_SYMBOL vmlinux 0xe4b82bbe flush_signals +EXPORT_SYMBOL vmlinux 0xe4bff52e blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL vmlinux 0xe4f82569 simple_open +EXPORT_SYMBOL vmlinux 0xe4fe8ca1 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xe50d5cad __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe53d1faa of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xe554f78a __bio_clone +EXPORT_SYMBOL vmlinux 0xe55d9e20 compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0xe569ea60 tty_port_destroy +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5952cad tty_vhangup +EXPORT_SYMBOL vmlinux 0xe5961d2f ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0xe5b8fac7 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xe5c0c17c pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5d1ec73 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe609e21f jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xe645e6de netlink_unicast +EXPORT_SYMBOL vmlinux 0xe6484c29 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xe66ae5a2 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xe67dd0ff ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xe68b7957 seq_open_private +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe69a3c34 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xe69a9df4 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0xe6a56a88 kill_bdev +EXPORT_SYMBOL vmlinux 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL vmlinux 0xe6bc9e4a kset_register +EXPORT_SYMBOL vmlinux 0xe6c86841 get_task_io_context +EXPORT_SYMBOL vmlinux 0xe6ca5c31 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xe6d4994d kthread_bind +EXPORT_SYMBOL vmlinux 0xe6e5ae2b dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xe6f37ff8 pipe_unlock +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe718b799 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xe72d349a generic_file_remap_pages +EXPORT_SYMBOL vmlinux 0xe72f2ca4 flush_old_exec +EXPORT_SYMBOL vmlinux 0xe73c05be blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xe75a0dc3 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xe76a292b i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xe7759b54 locks_free_lock +EXPORT_SYMBOL vmlinux 0xe78fc221 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7ada700 pci_enable_msi_block_auto +EXPORT_SYMBOL vmlinux 0xe7c84014 lockref_mark_dead +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7cf053e mapping_tagged +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7e18ab6 ppp_input_error +EXPORT_SYMBOL vmlinux 0xe7f92b93 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xe801f775 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xe80caa4d ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xe82cc752 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0xe833fa77 gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0xe83c0e49 clocksource_register +EXPORT_SYMBOL vmlinux 0xe84a0f34 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0xe8513200 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xe863cd04 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xe8689d56 pci_set_ltr +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe88dbd9a generic_writepages +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8bea3bc qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xe8c438f3 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xe90cb92c pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe924b025 elv_rb_del +EXPORT_SYMBOL vmlinux 0xe943991a mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe9551ea8 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xe956d1f8 pci_enable_msix +EXPORT_SYMBOL vmlinux 0xe957d7a4 netif_device_detach +EXPORT_SYMBOL vmlinux 0xe971876a on_each_cpu_mask +EXPORT_SYMBOL vmlinux 0xe9977fad PDE_DATA +EXPORT_SYMBOL vmlinux 0xe9994f1d blk_put_queue +EXPORT_SYMBOL vmlinux 0xe9a44b25 scsi_register_driver +EXPORT_SYMBOL vmlinux 0xe9c2794a security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xe9c86415 tty_port_hangup +EXPORT_SYMBOL vmlinux 0xe9cbebc3 pci_scan_bus +EXPORT_SYMBOL vmlinux 0xe9cf86ee netlink_net_capable +EXPORT_SYMBOL vmlinux 0xe9d5f942 d_invalidate +EXPORT_SYMBOL vmlinux 0xe9dcce1b build_skb +EXPORT_SYMBOL vmlinux 0xe9ef0442 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xe9f2d37b devm_gpiod_get +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xe9fc7dde keyring_search +EXPORT_SYMBOL vmlinux 0xea033976 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea0b9fe7 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea16dd4c tcp_destroy_cgroup +EXPORT_SYMBOL vmlinux 0xea1a1405 dm_put_device +EXPORT_SYMBOL vmlinux 0xea2b5c2f pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xea44f180 ata_link_printk +EXPORT_SYMBOL vmlinux 0xea45074a tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xea5f42d8 elevator_exit +EXPORT_SYMBOL vmlinux 0xea6e3003 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xea79e0a3 udp_poll +EXPORT_SYMBOL vmlinux 0xea968c96 ___ratelimit +EXPORT_SYMBOL vmlinux 0xeac585d1 __block_write_begin +EXPORT_SYMBOL vmlinux 0xeadf1301 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0xeae1bf5f __quota_error +EXPORT_SYMBOL vmlinux 0xeaf87a42 bdevname +EXPORT_SYMBOL vmlinux 0xeaf8ff48 follow_pfn +EXPORT_SYMBOL vmlinux 0xeb1f4632 gen10g_resume +EXPORT_SYMBOL vmlinux 0xeb274b2d __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb3ed7eb cad_pid +EXPORT_SYMBOL vmlinux 0xeb44339a free_pages_exact +EXPORT_SYMBOL vmlinux 0xeb467a20 netpoll_setup +EXPORT_SYMBOL vmlinux 0xeb4a136b abx500_register_ops +EXPORT_SYMBOL vmlinux 0xeb85bbe3 devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0xeb864a5e xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xeb9d12f1 get_io_context +EXPORT_SYMBOL vmlinux 0xeba2a1f7 rtas_indicator_present +EXPORT_SYMBOL vmlinux 0xebcab3a6 ppc_pci_io +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebef403b ppp_input +EXPORT_SYMBOL vmlinux 0xec17ebb0 of_match_node +EXPORT_SYMBOL vmlinux 0xec2c20ef brioctl_set +EXPORT_SYMBOL vmlinux 0xec4417dc dquot_commit +EXPORT_SYMBOL vmlinux 0xec4c9c61 cfb_imageblit +EXPORT_SYMBOL vmlinux 0xec514fc6 pci_map_rom +EXPORT_SYMBOL vmlinux 0xec527356 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xec52f938 blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0xec5d1042 kill_pid +EXPORT_SYMBOL vmlinux 0xec6dc21f block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xec839c21 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xec93093c pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xecbb926f xor_altivec_3 +EXPORT_SYMBOL vmlinux 0xece19a8e serio_interrupt +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xece89e6d bprm_change_interp +EXPORT_SYMBOL vmlinux 0xecf61bfe generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xecfdde90 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xed006827 bio_put +EXPORT_SYMBOL vmlinux 0xed3352d6 devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0xed3d268e register_shrinker +EXPORT_SYMBOL vmlinux 0xed597524 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xed6cc930 single_open_size +EXPORT_SYMBOL vmlinux 0xed74889e neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xed794de9 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xed7c4bf7 init_buffer +EXPORT_SYMBOL vmlinux 0xed9e77e1 dev_get_stats +EXPORT_SYMBOL vmlinux 0xed9f9a20 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xedaf2a80 is_bad_inode +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc410d0 udplite_table +EXPORT_SYMBOL vmlinux 0xedde542e tcp_gso_segment +EXPORT_SYMBOL vmlinux 0xedee28b5 unregister_netdev +EXPORT_SYMBOL vmlinux 0xedf345b0 __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0xedf8fdce max8925_reg_read +EXPORT_SYMBOL vmlinux 0xedffa3d7 sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0xee0f5410 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xee246dff ida_destroy +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee316d4a abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xee3631b0 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xee37da6f ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xee3f86a5 tcp_parse_options +EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder +EXPORT_SYMBOL vmlinux 0xee939a75 override_creds +EXPORT_SYMBOL vmlinux 0xee9f87f4 devm_ioremap_prot +EXPORT_SYMBOL vmlinux 0xeea30c89 __get_user_pages +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb5bd3b __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xeed84aa3 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xeedb7c34 alloc_disk +EXPORT_SYMBOL vmlinux 0xeeea42d1 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xeef161aa groups_free +EXPORT_SYMBOL vmlinux 0xeef1ca3b pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xeef862da napi_gro_frags +EXPORT_SYMBOL vmlinux 0xef02a903 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0xef0e2ec5 elv_abort_queue +EXPORT_SYMBOL vmlinux 0xef109449 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xef12fd7c bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xef15b15b aio_complete +EXPORT_SYMBOL vmlinux 0xef212b8e serial8250_do_pm +EXPORT_SYMBOL vmlinux 0xef21d80e gen10g_config_aneg +EXPORT_SYMBOL vmlinux 0xef2b5e66 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xef46b5c3 scsi_block_requests +EXPORT_SYMBOL vmlinux 0xef67e4ae nf_afinfo +EXPORT_SYMBOL vmlinux 0xef9cc9ab compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xefd61bad devm_free_irq +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0187927 __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0xf05216e6 __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xf0545286 __frontswap_test +EXPORT_SYMBOL vmlinux 0xf057a87f xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xf05d07e1 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xf05ffa15 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xf0619801 timekeeping_clocktai +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf067257c register_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0xf087137d __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0xf0894047 submit_bio_wait +EXPORT_SYMBOL vmlinux 0xf0975506 mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0xf0978519 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xf09de776 get_random_int +EXPORT_SYMBOL vmlinux 0xf0a5125a __skb_gso_segment +EXPORT_SYMBOL vmlinux 0xf0cf96dd __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xf0da9eec mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xf0e0923a dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fd4e8f rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10ade50 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xf10b8892 blk_mq_can_queue +EXPORT_SYMBOL vmlinux 0xf10ca3e7 lockref_get_or_lock +EXPORT_SYMBOL vmlinux 0xf10cc389 skb_tx_error +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf1139250 tcp_prot +EXPORT_SYMBOL vmlinux 0xf11cd6ce down_interruptible +EXPORT_SYMBOL vmlinux 0xf13feb57 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0xf147dcb2 hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0xf14fd88a xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xf183189b __ioremap_at +EXPORT_SYMBOL vmlinux 0xf18cf7a1 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1af10dc ppp_channel_index +EXPORT_SYMBOL vmlinux 0xf1bdc8f5 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xf1d1ffd5 request_firmware +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e06df1 gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1ebc055 dm_register_target +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf210ba71 __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0xf22881e8 lg_local_lock +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf24a9d37 dev_mc_init +EXPORT_SYMBOL vmlinux 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL vmlinux 0xf2617c30 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xf26e0967 release_firmware +EXPORT_SYMBOL vmlinux 0xf2735c64 set_groups +EXPORT_SYMBOL vmlinux 0xf2844ef0 console_start +EXPORT_SYMBOL vmlinux 0xf28c51c6 generic_show_options +EXPORT_SYMBOL vmlinux 0xf2a0af8f backlight_device_registered +EXPORT_SYMBOL vmlinux 0xf2b1ac8e __getnstimeofday +EXPORT_SYMBOL vmlinux 0xf2ef2c2f input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xf2f09c22 ab3100_event_register +EXPORT_SYMBOL vmlinux 0xf2f9fa22 ll_rw_block +EXPORT_SYMBOL vmlinux 0xf301c4fd linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf322a206 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xf329ddb6 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xf333b7d7 inode_permission +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34a9e58 inet6_ioctl +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf3650432 arp_send +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf3a930a4 __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3d462c1 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xf3d56b96 netif_napi_add +EXPORT_SYMBOL vmlinux 0xf41543a3 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xf4183426 napi_complete +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf45764cf dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0xf4bdbeb9 __frontswap_invalidate_area +EXPORT_SYMBOL vmlinux 0xf4ca7df2 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f62f1a elevator_change +EXPORT_SYMBOL vmlinux 0xf51bf88b nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xf5222143 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf53df0a5 gen_pool_free +EXPORT_SYMBOL vmlinux 0xf54a9ee7 commit_creds +EXPORT_SYMBOL vmlinux 0xf558d682 inet_sendpage +EXPORT_SYMBOL vmlinux 0xf55b3b3d __arch_hweight16 +EXPORT_SYMBOL vmlinux 0xf573e1ae max8998_bulk_read +EXPORT_SYMBOL vmlinux 0xf57e2757 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0xf5802d23 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xf59559a6 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xf5a085c4 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0xf5a29792 __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5c0d7df register_netdev +EXPORT_SYMBOL vmlinux 0xf5c7952a blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5fe3386 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xf6307783 d_path +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf6425146 agp_free_page_array +EXPORT_SYMBOL vmlinux 0xf653ffe5 neigh_destroy +EXPORT_SYMBOL vmlinux 0xf65a4220 vfs_statfs +EXPORT_SYMBOL vmlinux 0xf65e14d7 pci_match_id +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf68687be __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0xf69205c6 skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0xf695d4e8 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xf6a3809d blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xf6a9b6e3 phy_start +EXPORT_SYMBOL vmlinux 0xf6b68bc8 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6ee27df ps2_command +EXPORT_SYMBOL vmlinux 0xf709070e security_path_rename +EXPORT_SYMBOL vmlinux 0xf7289d14 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0xf7315559 dcb_setapp +EXPORT_SYMBOL vmlinux 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xf75374b6 seq_path +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf7adcaf3 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xf7bca98e seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xf7e0d030 free_buffer_head +EXPORT_SYMBOL vmlinux 0xf8018c23 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf807615c __scm_send +EXPORT_SYMBOL vmlinux 0xf80de9ff hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf812cff6 memscan +EXPORT_SYMBOL vmlinux 0xf827cb83 free_reserved_area +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf847177a blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xf84fcca8 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xf8505c3f dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0xf860119d skb_clone +EXPORT_SYMBOL vmlinux 0xf867b15c __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xf8694306 blk_start_queue +EXPORT_SYMBOL vmlinux 0xf86d3d0a neigh_connected_output +EXPORT_SYMBOL vmlinux 0xf871c5e7 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xf87a8126 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xf87ac3d8 security_path_truncate +EXPORT_SYMBOL vmlinux 0xf88279ff call_netdevice_notifiers_info +EXPORT_SYMBOL vmlinux 0xf885bb51 md_flush_request +EXPORT_SYMBOL vmlinux 0xf89c8e07 ida_pre_get +EXPORT_SYMBOL vmlinux 0xf8a24212 input_set_capability +EXPORT_SYMBOL vmlinux 0xf8b64b63 fbcon_rotate_ud +EXPORT_SYMBOL vmlinux 0xf8bcf4a9 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xf8d347a1 genl_unregister_family +EXPORT_SYMBOL vmlinux 0xf8e032af blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xf8f5e44b set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0xf9038bcf smp_call_function_many +EXPORT_SYMBOL vmlinux 0xf90bfcff audit_log_start +EXPORT_SYMBOL vmlinux 0xf91dc1c2 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xf93456cc d_make_root +EXPORT_SYMBOL vmlinux 0xf947ba02 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xf94f90e2 neigh_for_each +EXPORT_SYMBOL vmlinux 0xf966f04a sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xf99bbeb1 kfree_skb_list +EXPORT_SYMBOL vmlinux 0xf99ca29f blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9bd29c5 tcp_poll +EXPORT_SYMBOL vmlinux 0xf9c0b663 strlcat +EXPORT_SYMBOL vmlinux 0xf9ea9048 sock_create +EXPORT_SYMBOL vmlinux 0xf9f69a1f scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xfa0bb770 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0xfa2bcf10 init_timer_key +EXPORT_SYMBOL vmlinux 0xfa4ee88e bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa5fa699 agp_bridge +EXPORT_SYMBOL vmlinux 0xfa7f3156 wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0xfa7fb2c7 ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0xfa848ad9 i2c_master_recv +EXPORT_SYMBOL vmlinux 0xfa8a7975 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xfa8c9cec input_release_device +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xface0de3 alloc_fcdev +EXPORT_SYMBOL vmlinux 0xfadce2e1 elv_register_queue +EXPORT_SYMBOL vmlinux 0xfae67b1f cap_mmap_addr +EXPORT_SYMBOL vmlinux 0xfaeeb0c9 fifo_set_limit +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb1f6110 consume_skb +EXPORT_SYMBOL vmlinux 0xfb37d2ec sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xfb3a47f9 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb753b5f lock_sock_nested +EXPORT_SYMBOL vmlinux 0xfb821921 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xfb88070c put_tty_driver +EXPORT_SYMBOL vmlinux 0xfb94103e __clzdi2 +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbae772e pci_set_master +EXPORT_SYMBOL vmlinux 0xfbbc6cdc udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xfbbd0e4f cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xfbdd4c01 cpu_present_mask +EXPORT_SYMBOL vmlinux 0xfbf5e145 nf_register_hook +EXPORT_SYMBOL vmlinux 0xfbfb6682 abort_creds +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc0b9763 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xfc378a5b nobh_writepage +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3b160f mempool_create_node +EXPORT_SYMBOL vmlinux 0xfc655d55 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0xfc7a9382 page_symlink +EXPORT_SYMBOL vmlinux 0xfc893abf __frontswap_store +EXPORT_SYMBOL vmlinux 0xfc8ab25c sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcaf20ef blk_get_queue +EXPORT_SYMBOL vmlinux 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL vmlinux 0xfcb926cd kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xfcbc542d mmc_erase +EXPORT_SYMBOL vmlinux 0xfcc1489a netif_rx +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcc7fdc9 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0xfccf70c5 send_sig_info +EXPORT_SYMBOL vmlinux 0xfcd1c723 serio_reconnect +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf14e13 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd1b9f96 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xfd1c15af xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xfd2e4425 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xfd31b0ff tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd6d0c1d tty_port_close_end +EXPORT_SYMBOL vmlinux 0xfd87d5ce abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0xfd91be1e vc_cons +EXPORT_SYMBOL vmlinux 0xfd99623a ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xfd9a7b4a of_device_unregister +EXPORT_SYMBOL vmlinux 0xfdb6cedc _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdbe0288 pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0xfdcd5674 cdev_add +EXPORT_SYMBOL vmlinux 0xfdde1614 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xfdec9891 dst_alloc +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfdf1e66e mnt_pin +EXPORT_SYMBOL vmlinux 0xfdf7831b set_create_files_as +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe0bc8f8 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xfe0e82c4 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xfe10fbc9 fbcon_set_rotate +EXPORT_SYMBOL vmlinux 0xfe16c0e9 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xfe16eec9 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xfe1d6c54 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe4189b7 simple_release_fs +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe6b00dd tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xfe77eb7c blk_mq_free_queue +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfeb62eee tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xfec5f462 pci_disable_ido +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfeebc7c4 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff0394fd pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff23a09d jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xff352e7f dentry_update_name_case +EXPORT_SYMBOL vmlinux 0xff3f08c5 blk_complete_request +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff7e699f mdiobus_scan +EXPORT_SYMBOL vmlinux 0xff82cd6d __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xff82d7f7 netif_device_attach +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffba4a6a vfs_getattr +EXPORT_SYMBOL vmlinux 0xffd1e548 d_genocide +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL_GPL crypto/af_alg 0x0d28c554 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x1aee0601 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x2852e9d0 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x289197b2 af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0x312ee1ff af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x58716898 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x95826ce6 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xc13a7f60 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0xd8b27a86 af_alg_complete +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x7397a285 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x39eb97fe async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x6327b7de async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x810600ef async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xee47d603 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x7a275a6d __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xb1cd9cfe async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xe3faaadc async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xe6edb9ed async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x73bb0142 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xc830a45b async_xor_val +EXPORT_SYMBOL_GPL crypto/authenc 0x587ef278 crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x97111ab5 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x27278ca9 __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x4a2a3ca6 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x7aae77c5 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1291971c __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1e2c961f __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x8f04034a __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0xacdacf59 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast_common 0x08aa6fb7 cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x0c5fbf8a cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xe39dd4b4 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0xee83a4f3 cast_s4 +EXPORT_SYMBOL_GPL crypto/cryptd 0x16cb72c4 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x1ab8e45b cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x4bbb3e52 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x5982bfdf cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x7ec9fef5 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x951e4caf cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xa1e27be3 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xa290ca2a cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xb045bb63 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xc77793cc cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/lrw 0x3864eb66 lrw_free_table +EXPORT_SYMBOL_GPL crypto/lrw 0xcd074900 lrw_init_table +EXPORT_SYMBOL_GPL crypto/lrw 0xd1f8108f lrw_crypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x5ddb33e9 __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x77b39cb4 __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x8a1a99ad __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xb1c5e177 serpent_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x06148a9a twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x6c3229bb __twofish_setkey +EXPORT_SYMBOL_GPL crypto/xts 0x25c76e81 xts_crypt +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x1207056b ahci_platform_ops +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x22f6d31e ahci_platform_disable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x41616f3d ahci_platform_suspend +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x6eb7813a ahci_platform_init_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x8a800f81 ahci_platform_disable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x8edc003c ahci_platform_enable_clks +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0x93081d3d ahci_platform_enable_resources +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xad97e472 ahci_platform_resume_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xc285b3c0 ahci_platform_resume +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xcff4c54b ahci_platform_suspend_host +EXPORT_SYMBOL_GPL drivers/ata/ahci_platform 0xe5dd4609 ahci_platform_get_resources +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x092c0149 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2c79db2e ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3a0db89d ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3bdd1cf3 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x46b15ef0 ahci_qc_issue +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x51e89bb4 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x602f2c09 ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x694f923e ahci_thread_fn +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6e05c4e7 ahci_hw_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6f57d2cd ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x731bc4e2 ahci_start_fis_rx +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x77bcbe7f ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7d6bc989 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8ba854ac ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8ddae7c8 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8eab132d ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x986d1012 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa019339b ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc2c9f426 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcfbc02e7 ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd04779c5 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd8492a39 ahci_restart_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe15bc451 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf041edca ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf3ef84f5 ahci_error_handler +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x03f30822 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xce1fbdca sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x06a376ec __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x06f0ebee bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1a370f7d bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x2c124c6d bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x45369ad1 bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x577cd75d bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5a78c585 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x65f19b60 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x743f320b bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7f6779eb bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x81504396 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x99d39d27 bcma_find_core +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa1e2e870 bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xaeb9445f bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb6c0472c bcma_core_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb8f34392 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc6fc1bba bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd8a8d6db bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xdd0fad39 bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xde5f9f5f bcma_core_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe682bdb1 bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe77eba52 bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf70fae79 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x28ad5d42 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2bd83b00 btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3c6b717d btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x40bee723 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x63e57553 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x86e33627 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xbed91fa4 btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd19601e5 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe4134598 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xedaeb0ca btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x9dce83d3 dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xb7d99d67 dw_dma_resume +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xc4535e34 dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xfb817921 dw_dma_shutdown +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xfcbed3b9 dw_dma_suspend +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0711fb23 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1083e523 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x15db3437 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x19c1eec2 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1b33bd8e edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1ddad2d1 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3bddaa99 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4d05b3d5 edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4dd9d455 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x532881d0 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x539181db edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7586de63 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x88350b61 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x951d50a7 edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x98315094 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa6f159b2 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xac52833b edac_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbf641875 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd2b758ce edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xdc2ec37b edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe5f03c52 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xeaa94ab8 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf29d5a1d edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xf4ade51f fw_card_release +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x1880edd3 bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x5947c689 bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x4e12dc85 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xbc5d6426 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xc640a357 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xcd18235a drm_vm_open_locked +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xf28290b0 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x6adf436b ttm_prime_fd_to_handle +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xce36343e ttm_prime_handle_to_fd +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0027a1f0 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x01beafaf hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x01d802f6 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x124ecb5d hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0x137b63db hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1f22b21a hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3860e0db hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3884c6f8 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3bd8ff98 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4906a967 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x51ff9350 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x52c630b0 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x567d57cc hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x57a2b332 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5a69cb00 hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0x60122d15 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6e5901ac hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6f762d3c hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x795f7cfc hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7f9c2d66 hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0x835540f3 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x98edd064 hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa8eddbe3 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb4f4630a hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcd3427b4 hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcf49acdb hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd5283d8d __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdca611c0 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdf6bf22c hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe49663df hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe8aace15 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe8e88358 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xecb64b5d hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf6af04b6 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfd3d12ba hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xad4fffa8 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x2e6448ec roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x421b6f38 roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x6ba96e28 roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x75954285 roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x7cfe413d roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xfebe41cc roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x497138b3 sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x60ade5be sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x665abde4 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x7e5ffae7 sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xa515e0e9 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xaee60f91 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xd3fb67fa sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xd743f6f8 sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x86098497 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x02a7c514 hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x17396353 hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x26241e7c hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x6a45f970 hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7a70557e hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x9d0e211b hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xaba30291 hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xac9915b3 hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xaf624665 hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xbbb3cba1 hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xcf471945 hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xe9b6f92d hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xf5bde961 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x491e0d5d adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0xb4455899 adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0xdcb1c647 adt7x10_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x1062944e pmbus_get_driver_info +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x3d209d62 pmbus_check_byte_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x50f9eeb9 pmbus_read_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x5dce8b43 pmbus_clear_faults +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x73de8c79 pmbus_read_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x7e136d86 pmbus_check_word_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x82fce256 pmbus_do_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x8ee0bbab pmbus_write_byte +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x9a96f272 pmbus_clear_cache +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xaac01f49 pmbus_write_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xe3a89b4f pmbus_set_page +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xef3a8162 pmbus_do_probe +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x189ac1c3 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x29c7be51 i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x41eaa84f i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x4c29733b i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x6ee1d7da i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x8fb448e9 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xa28a4fff i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xee299013 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xf9a4504e i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x13ab9871 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xfbfb8bf9 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x5a659d4b i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xd26af1be i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x08d137e8 ad_sd_write_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x138adc90 ad_sd_init +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x1f04f3cd ad_sigma_delta_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x224dbd01 ad_sd_calibrate_all +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x68d715f9 ad_sd_set_comm +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x967698d0 ad_sd_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xa10f16c9 ad_sd_read_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xb5f55766 ad_sd_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xf423fd6e ad_sd_validate_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x16bef173 adis_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x1d1d3b28 adis_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x1eac3670 adis_remove_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x396ec069 adis_probe_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x5547fb8e adis_write_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x658c61dd adis_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x8cc98f89 adis_update_scan_mode +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xa5cdcdf6 adis_reset +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xabc57726 adis_initial_startup +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xb709e8bc adis_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xba1b28a0 adis_read_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xdace4b87 adis_check_status +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x00f7a0ea iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x06bb6154 iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x142e4971 iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1eb174ab iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1eb26bff iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2523d843 iio_update_demux +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x267c0508 iio_channel_release_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a1fab3c iio_channel_stop_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3ccb1403 iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x40da8c3e iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x449c2e3d devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x52044dc4 iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6795c70f iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6a948da3 iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x71f2892b iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7a711aef iio_channel_start_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7b7bbcaa iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x895010a5 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x89d16480 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x92bcb7bd devm_iio_trigger_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9a1ff15f devm_iio_device_free +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa45252b0 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa7b9b792 iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xbe6a2b38 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xbff339ef iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc039e0f7 devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc4f0bfb1 iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd1477f04 iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd6194450 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe649dc60 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe6d96934 iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xedcb3527 iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xfba3aa9d iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x02ef230c input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0x2dc5237a matrix_keypad_parse_of_params +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xcf9e0506 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x04cb273b cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x9873d709 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xec12babc cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x3f7cf5e5 cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x5fdb1349 cyttsp_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xf1a81eda cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x4926687c cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0xc956a910 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x0f29fb96 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x148b5ca2 ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x1c422dc0 ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x257073f2 ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x39015c79 ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x9935f591 ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xb98dfb30 ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xd567b64b ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xdbee8c16 ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x23359aff unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xce1414b2 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x25c52e2c gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3fbe4ef4 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x40770d9e gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4a4b5c14 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5196e7d3 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x51a34dc4 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5513b5af gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5d860687 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6d8898d2 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x71e6b084 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x74bb8aa2 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x74f3ff0a gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x83b70bf0 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x874c361d gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9939689f gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa3151853 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb206a26e gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc4f68e5e gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x0bfe78f3 lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x19d97f9a lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x3d5caf99 lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x48cb0cf4 lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x631e6940 lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x79f63f43 lp55xx_unregister_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x89bb02ac lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x8fdcf1ec lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xbaae2170 lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xc5ab42f2 lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xd934a521 lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x749e05f2 ledtrig_flash_ctrl +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x7903e46e ledtrig_torch_ctrl +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0ec17d44 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x26062738 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x40c27b88 __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4c49fc16 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x51a15737 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x616b6217 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6907ac0d __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7be42a1c __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7e532a71 __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8a4afa11 __tracepoint_bcache_alloc_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x914361f4 __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9272fb0f __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x938cc2b2 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa649dd21 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb157059f __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb317649e __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb493772a __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb834c124 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbb1fc0a4 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbc4fcb1e __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc1474d91 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc379085a __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc5aed8ad __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc7eda602 __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce055cbe __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe20fe821 __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe24daf87 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe2ed0930 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xea2303e0 __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xef1156ee __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfc131205 __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x331f74ba dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x369f1dc7 dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x8237839f dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb6d5c65d dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb70b342a dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xba3fe002 dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xbd68e72d dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xe7a0fa31 dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xebd06eaf dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xf757c75e dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6aba7f5e dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x74dcd98c dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7c381a76 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9310ba06 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9c256008 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa1d2413a dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa448e19f dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xafbda3f3 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xcbb1bae2 dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xcf2a2b83 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe6024e59 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xebcc64a4 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xeca7949e dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x104147dc dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x826d26ab dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x8c776c76 dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xaa711ca7 dm_cache_policy_get_version +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xbca4d2aa dm_cache_policy_get_name +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xe5adc984 dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xf4f690e8 dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x19a508ec dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xc09ed442 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x01d2f9ac dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x0d4c25d6 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x2342c7d3 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38ed965a dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4430764e dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x45ab972a dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x46b98776 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa68e1f06 dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xab110ae1 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd7fedf42 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfad9d53a dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfc62ef4e dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x01445176 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x17c36f29 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1cac81ac dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2025e954 dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f40da68 dm_bm_set_read_write +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f74609d dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x32b5f546 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x38c75c44 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x42dbdfc3 dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x49b35849 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x55b4bd4d dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5e6aea80 dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x62c1b9ee dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x688d422d dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x68fae9d2 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7ade1071 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7b047bd9 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x827a42f4 dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x832bf228 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x858c8d94 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x89f1e1cc dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x8b9a2d87 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x966a8838 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9e798e22 dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9f624559 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa0bbbb49 dm_bitset_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa13861b4 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa87c5b4d dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xaee02382 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xafeda29f dm_bm_write_lock_zero +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbd50ebbb dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca40abd5 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd041d62b dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd29923fb dm_tm_shadow_block +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe44b4b9b dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xed1e1f96 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf375d009 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf475af48 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf5455120 dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/raid1 0x8ff3b6b0 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid10 0x803e8ace md_raid10_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x2ba294dc md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x0bc99e1a saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x0e7a4986 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x34fbc404 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x56994612 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x5a6e6229 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x5bc8b158 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x919a72c5 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x967b2e21 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xb3ecdde2 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xc5834b06 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x50c72def saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x70cd3097 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x7e1f3f76 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xd978ed38 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xdca8e5e5 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xec4457fe saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xf337535a saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x033ec698 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x0d837cba sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x1388a5b6 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x2bcc5ab5 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x48abeee4 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x4a785bbd sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x6222e418 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x721fe1de smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x73a51d8d sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x746d7121 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x99a81ab3 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9c2225ed smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xa2d9620a smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb5007da5 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xdd6826e2 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xdffe733a smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xe5938746 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xe85b3bbf smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xfad78c90 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0xd65bef4c tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0xd5d42c98 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x047da4c2 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x06de1859 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x229baa8f mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x23926a64 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x3bfd91ac mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x3cb40354 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x488a2634 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x69d78df1 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x6b019d46 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x83d80584 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x945a9cb0 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xc4a6905a mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd606df05 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd8d99803 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xdcc96b92 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xe43ffa82 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xff500d0a mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x3f867ae3 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x69eddae3 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xda3a0e4b saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xe2efac79 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xfb1d3b06 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x36cca81d ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x446cb4be ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x63839c3b ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xb88b35fd ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xe71305d1 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xef51177b ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xf0641408 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x6d562500 radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xb01c09fa radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x05742555 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x12909120 rc_close +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x187d2ea6 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1cd98d5f rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2ce6dbb0 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6343ed7c rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x66675bc7 rc_open +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6a072de1 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6c3d6e25 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x70bf8ada ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x822f87c9 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x8a360e52 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xaffaf72f ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xcbbbf31a rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xcfe49159 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd405fd87 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xecc75c3d ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfbbd5b86 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xffe85f57 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0x253ebfbe mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x9b91edba microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0x9e1bf4a4 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0xccabcbca r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0xa2d8f2e3 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0x903f825a tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0xb3119e6a tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0xf68ae951 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x05508720 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0xdede2b9f tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0xe0409473 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x835c1e11 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0xde8841d9 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x1994bb5f simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x04a6c68f cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x08908daa cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0dc06d29 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x25247321 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x43ef7605 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x4dbfdf25 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x53d065cf cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5684b764 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x667db1f0 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x67428adf cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xa87ec9e2 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xcc2050db is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xcd3d7a99 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xd7ebf2e1 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xda84be69 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xe2f50464 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xe52af17a cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xe655b45d cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xfc6cf42b cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x3d3a70b1 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x26854d03 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x062ba4a9 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x1561dcec em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x308ec3de em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x32756711 em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x640a336b em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x751e0174 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x75605d0c em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x80f657a6 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xaf9f0213 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xcc3e1900 em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xd5d33e26 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xda11bcde em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xdbb0cc4d em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xe62f0985 em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x482588b2 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x80346e14 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xa86c0bd8 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xf039028d tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x01c483a9 v4l2_get_timestamp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x111d5d40 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x1f47efc2 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x2b769b17 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x99cbbb1e v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf4efc75e v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xffeb7e2a v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x08982d59 v4l2_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x221d2fbc v4l2_enum_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x36e8756a v4l2_find_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x4103badb v4l2_print_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x53105839 v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6976cfe0 v4l2_valid_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x6f344bb9 v4l2_calc_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7eaf8e7a v4l2_detect_gtf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0xb0891da2 v4l2_dv_timings_presets +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x6b7929ee v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x874c1881 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x89ee092e v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xb4f18277 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x17eb0eee v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x1939f276 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2b8c2f32 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x566a7116 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x600376b7 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8bb83640 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8e51ed03 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x982dba06 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb8963a92 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xbeddd15b v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xcf6f9b31 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xdfd1c397 v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xf1772868 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xf7806bc8 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xf8c87d40 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x03732964 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x07b51986 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x0c325189 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x1302e016 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x20a0ad17 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x290f829b videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x3d629033 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x55e4a67d videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x59aabad2 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x66ac94a9 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x77261f5f videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7b9d09fd videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x81c7b92b videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x95be8a62 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa16df5a9 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xae870619 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbc5a7de3 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbe8eb1fd videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xcb43b1b3 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xdae15a27 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xdbd8a3bc videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf728ee5b __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf74257b7 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xff5971f7 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x5e92de9d videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x6df09971 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xd80f02b0 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x0468ffc5 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x1f5cc77a videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x273265a2 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x3bf77877 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x40db37d8 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x607141ff videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x83f0b7c2 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xbc87b20b videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xf74043ea videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x1ae36175 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x9cfccb75 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xe71ea89c videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x069a3e0a vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x18860b14 vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x220b6fd5 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2eadf005 vb2_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x329e4081 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x430732bf vb2_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4d1dff07 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4d3acb37 vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5a2929f5 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5ac1218c vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5ca69da9 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x60eb54cc vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7090794b vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x72b9e624 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x78ac221f vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x81da53dc vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x88563460 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x91ceefd1 vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa399aeb4 vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa85e73d6 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xacf1b0a1 vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb0628616 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb0d63bbb vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xbce62458 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xbd9fe3fd vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xbdac8425 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xc15b72ca vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xdab6df78 vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xdf23fe70 vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xdfbf1b77 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe3af4808 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe636e90e vb2_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf02d04b0 vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xfe4bce90 vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x41734959 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x5d99f79d vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x68295a23 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x68a7cf7c vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xd268c344 vb2_get_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xfcd664c2 vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-vmalloc 0x50d3bc27 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x11d13781 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x13c3253c v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1645bae2 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3041da30 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x35ca76d3 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x439bd7f9 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x482bdff4 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4a610f1a v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4a996f70 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5f3542fa v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x65a9480f v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x89fa1a03 v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xaa369497 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xad8ddd08 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb1b06ffe v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb34def60 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb84777a7 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc2a163c7 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xcc1e3b1b v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe5db36cb v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe978975e v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xebd41af8 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf665ef12 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xfefc4624 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x0cefb4e5 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x30ec16b5 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3669d21d i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x5bd9bfb2 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6cceedc7 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x84c4547f i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa340669b i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xfd432aa5 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x4360c00c pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x809d43cc pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x88859484 pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x095c08d2 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x1d8633dd kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x22edc0e3 kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x831e965a kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x86371c2b kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x8b298c9a kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x9fa7f455 kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xca568393 kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x2744d3fa lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x45be6c68 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xb0e9e024 lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x48f43907 lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x542f26c6 lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x59c6af4a lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x66a749be lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x674974ed lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x87fd62ea lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xa4235b74 lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x0f5c03c4 mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x3042f573 mc13xxx_common_cleanup +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x60f60cce mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x9666e98b mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xc4d357c3 mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xd6dca2ab mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0ceede9a pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2be66a16 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x30e62d7b pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x37da2544 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x40bc7232 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x58c61f47 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x5a3b35a5 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8f0698d7 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcb669054 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe7425a9c pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xfda7f62d pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xc075ec61 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xdeb3aeaf pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x0e45cbf9 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x243e9b55 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x2c5889d1 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xc6c1ee32 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xf23c79ff pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x01a33234 retu_write +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x4fca3918 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x085a0402 rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x1f7df090 rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x1fb1508e rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x3549a0b4 rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x44667a40 rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x4944a90c rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x4969c232 rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x4f0a34c9 rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x58c8c851 rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x5fe75460 rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x6701343e rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x70ca445a rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x78237920 rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x911aeaa1 rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x9767aaed rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xac24961f rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xdd41e79a rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xde1df94d rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xe2b7eb91 rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xf675e12b rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xf7dcefe1 rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x08dc0812 si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x14fce697 si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2216a9ba si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x24dee704 si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x27d6ad0c si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x350d3478 si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3ef090df si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x46d91825 si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4cedf340 si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x569f16a9 si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x58eb0faa si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x65e5717f si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x67825e34 si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6fe9d036 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x76555578 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7a9b4442 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x83ee7905 si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8e1de4e4 si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x90918f26 si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x95a45fa6 si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x972fda2c si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x983c3526 si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9a67a0af si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9fbc436d si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa16eac8d si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xacb10add si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb19bde3b si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc9f49b65 si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xdb552477 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe4b773c5 si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe569ac6a si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xea51ba67 si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf37c006d si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xfb317ac7 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x0a5237df sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x41430658 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x800cab02 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xab74ae9f sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xac5cb36b sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x12f4d1ca tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x7e3c0b9a tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x7fa04e77 tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x89b97800 tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x41b35638 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x9b500e99 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xc2fae477 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xf9398129 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x27cb133b eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63 eeprom_93cx6_wren +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x822222db eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x98bb5a22 eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x1694270c enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x39d7f718 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x73003001 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb514049e enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb6d354a2 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xd65cebdf enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xed0f5aae enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x19450523 lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x22a8bd30 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x9f97f379 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xa7cb8468 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xc6c46c75 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xcf0c96fc lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xdb49666a lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xfee7176f lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x5b6b1144 st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x817515db st_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x0493f888 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x07eeb385 sdhci_disable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x99a67e95 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb973036c sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc3e8b119 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xcb8a13e7 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xdfd8abfd sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe98d40ad sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf5425ce0 sdhci_send_command +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x1d5f46a7 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x639125ef sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x821360ef sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x94a972f8 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xa2e37119 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xcf1dff6a sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xec03f6b5 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x2fa23641 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xd2bc13d7 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xed95363f cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x3c2d344b cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x427f7f9b cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xcfd4fbcd cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x5cefe7a4 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x0080a961 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x07856c98 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xd4f6abea cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1de827b2 mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x32d07759 mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x34001da4 mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x35f3aec2 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x36904bce unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x39adc506 mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4036736a mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4e26b6eb mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x544f5805 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5a91eb80 mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5cc24077 mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5f0cda00 mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6322e0b1 mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x66e1f9c1 mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x765afe08 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x846634f0 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x85ff29ad mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8c06b794 mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8c447d04 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8ecd07e0 mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x925a9f4c mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x926bb46f mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9712677c mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x975dd219 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa59d7602 mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xab08d870 mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb49a08bd mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbaea0362 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbda9759f kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc1d13e73 mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe46dd7f2 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe7a40214 mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe7c12846 mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe901abfd mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xef4d595a mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xef6052b3 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xef657d21 mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xef9724ab mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf4544c4e __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf877cba7 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfcd0a5c7 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x58ba58a4 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x5f2c3e37 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x6e017cb3 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xc92e059c del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xdb5d5c72 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x09b0c0fa nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xb258203e nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xddca4f32 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x5655bd91 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xf0ac04e1 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x29faebec ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2f3b8b76 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x443fbeca ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4934498e ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4a3c3140 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x503b0c71 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x62af0e83 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x81b9e5b6 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x831c1a6e ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9896f442 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9fad5d96 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc13ffb20 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xee5f7ee1 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x25423f67 c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x7095d0e0 alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x9531e50f unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xcdffc8eb free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xddb0584b register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xfae1a5f6 c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1a70e711 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x217463f8 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x222c295a can_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2d0f70dd free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x301d6ac9 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x434a6480 can_led_event +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x50cdb17c can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x53ba6571 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x54fea198 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x869c75a0 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x89c31834 safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa9d39628 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb346573b can_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xbeae7a73 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xbedfc038 devm_can_led_init +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe3ab1157 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf95743b6 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x111b303a register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x22903f9d unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x7c31517e alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x84f1caa0 free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x0418714d unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x75e17579 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x9cdeb9e1 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xa3279901 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x150994d1 macb_get_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x3cf6f3c3 macb_ioctl +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x49d1bac7 macb_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x7df4efc7 macb_set_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x8cc35a81 macb_ethtool_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xcec846ee macb_mii_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xe841a3c8 macb_get_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x01cbc7fa mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x03273263 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x03fd0e22 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x066ab9f0 mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x080abf08 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0cab39cb mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0fd843a2 mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x142e4754 mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x151bc48a mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x15aa1b51 __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b82b3a5 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c1b2bbc mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1e74507d mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x233b8c90 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x271c3829 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a01ec23 mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a894168 mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2aca05df mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2fc398c4 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x30ccc0f2 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3678a125 mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x392993e5 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x393f7f15 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3dcca915 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3df714ee mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3e67b1d3 mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x41865db4 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4355992f mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4450a3e8 mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x45099c6d mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x450f071a __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x452e696f mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x50aa7cea mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x51175dbd mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x54ee7465 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x55ed40df mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x574f1760 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5aa3dab0 mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x61d4085d mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x62a9c794 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x62ca47b8 mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6b3e9d1c mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d4a7904 mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x708525fb mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x73cec2f3 mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7b79ec28 mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7dbe0966 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7e60dfc6 __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x833666b0 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x87960c02 mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8c8d6c18 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9182127a mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x93a1c90b mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x94c0e79d mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x952d1298 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x99125a08 mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9c0d88ae mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9f4b6041 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa1e6c389 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa593f94f mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa75efaec mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xab910c5d mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb2ad9f1f mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb47c6fba mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb624597f mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb656a288 mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb95a3ed0 mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba222474 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbbda0971 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd136313 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbfe4504e mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc2d0e963 mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc336bfdb mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc5a64d04 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce6f4148 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcfc2445f mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd06a7e8d mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd091ebe9 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3cc9ed7 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd550e544 mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd5bf9c74 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd7df745b mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdb4e3d3b mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe1b04953 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe47727e6 mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe5383735 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6058316 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe822ae10 mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xecbdf735 mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xecf91daf mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee3096fd mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf06fee55 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf0d50ad3 mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf1ac10fd mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf1e0f535 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf7cd1109 mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf949d86f mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfa59bf56 mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd833f3b mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfee2025c mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xffce5af0 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xffee0abe mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x07344b4f mlx5_core_eq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x47149dc1 mlx5_core_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x473ee68c mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x61af055c mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6e27f23f mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b45433f mlx5_core_create_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7cd8be87 mlx5_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x94e9a0a0 mlx5_core_xrcd_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa43ada4d mlx5_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xac216a57 mlx5_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xccd5bb61 mlx5_core_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xce6a1032 mlx5_core_mad_ifc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6c4ef56 mlx5_fill_page_array +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd885b6d1 mlx5_create_map_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf00fd3d2 mlx5_destroy_unmap_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfa22424e mlx5_core_destroy_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfa88726a mlx5_core_qp_query +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x0dc856ff macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x723f3bce macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc13a07df macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xce9e5d23 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xe86585a2 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x5b7c1689 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x3941e321 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x6ada1069 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x86b7ccd7 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x8e153a21 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x3cd61d8b cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x5553a480 cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x5939123d cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x80e7c571 cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xb3425c85 cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xc1d78970 cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xc64fade7 cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xd12389dd cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x2e59ae1d rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5408ab24 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x61996900 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x7c203cc4 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x9304471f rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xbbeb8e44 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x02ab2470 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x08669525 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x132c36a9 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x140facf9 usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1bab5988 usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x222110a2 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2cc68b8e usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x32f46882 usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3db6ed30 usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3e69a747 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4c3c9869 usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4e2cb1e5 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5e92ee5e usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x60392dac usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6178630c usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7acc0bdf usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7c16b139 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x96b086be usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x99051ada usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa50ee190 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa6ff7d34 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa939bc84 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaa27e47e usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaa4c15a2 usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xac57fd5f usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xad85a83f usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb7b70da7 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbe08b21f usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc200c9d9 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe521f3ad usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe5af5fb6 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xea8d111b usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x3dcf7f0a vxlan_sock_add +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x65b347ad vxlan_xmit_skb +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x7b0888db vxlan_src_port +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x7d412041 vxlan_sock_release +EXPORT_SYMBOL_GPL drivers/net/vxlan 0x853375ec vxlan_get_rx_port +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1e82c182 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x282a1d97 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3c2c6695 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3e12c853 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5a2b4d15 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x732d0b5c i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x847d63af i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xaa085241 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb9ad0095 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbde9359e i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbe8d5e34 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdf0ffaca i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe2ca9e7b i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xefb6fee1 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf18aa4c8 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf1ba6684 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x0d5c9573 cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x6e12cb5e cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xe15bb460 cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xffd3e6dd cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xb97f1008 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x11f4b093 _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x6a9cca28 il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x9ed57066 il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xb428e09a il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xbf943481 il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x05d4a73d iwl_poll_direct_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x0b48ece0 __iwl_crit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x0d556623 iwl_abort_notification_waits +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x1291ef1b iwl_init_notification_wait +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x16df5984 __iwl_warn +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x1ac36ff0 iwl_notification_wait_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x215a83f8 iwl_opmode_register +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x2602858b iwl_nvm_check_version +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x32a15676 __iwl_info +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x35033c81 iwl_phy_db_free +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3d548dab iwl_remove_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3f93b58a __iwl_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x437d0b6c iwl_parse_eeprom_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5c52e109 iwl_opmode_deregister +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5d0a212e iwlwifi_mod_params +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x66c95a34 iwl_read_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x72fed632 iwl_phy_db_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x776221bf iwl_send_phy_db_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8c5d5ab3 iwl_phy_db_set_section +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x940cc25e iwl_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x97ca6574 __iwl_err +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x9d9f1740 iwl_write_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa78c9947 iwl_set_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xaa6d08eb iwl_wait_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xb26fed50 iwl_clear_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xb33d8b9a iwl_poll_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xb96e970e iwl_set_bits_mask_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xbabf8848 iwl_parse_nvm_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xc67c31ed iwl_notification_wait_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xca8cba8d iwl_read_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xf0f734a5 iwl_write_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x11aa5697 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2842fc2a lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x362b89cb lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x499d9b23 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5f132d15 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7f27b914 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x92d627de lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa789403e lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb774ad70 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb83f8def lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc4da1045 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xcb9f932f lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xcbeb20dc lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xcc0e0c21 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf15436fe lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf959b9db __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x1b3aff6d __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x316e8027 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x46c3f5a8 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x52f91fe1 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc145ae44 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc365b3b3 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd6d33f15 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xee95378e lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x0fa4fab6 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xcad61724 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x0460e041 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x0765ffd5 mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x11586832 mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x32ea2b7e mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x5bb9662b mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x7810bb54 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x7d32912e mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x83e8ef87 mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x8de03262 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x8f1c277a mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x99873407 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xa05cc277 mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xba481863 mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xe3161856 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x04ea0543 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x1812ade9 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x32f5f57e p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x33ddeea8 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x364d9920 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x5fface5b p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x6fecc19b p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xcc6e062b p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xd9f85f4e p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0339d75d rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x04092357 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0670430e rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x07f6060e rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0bf68e83 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x12270196 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1ec63c98 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x22a75453 rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2b30f648 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x30775357 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x42149bd3 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x44c81914 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4810156c rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x528c895d rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x56558f24 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5ddb6ac8 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x614c551f rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x69c98874 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6b384fbe rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6fee6884 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7909411a rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x79f3f71d rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7d11a7eb rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x86c3de5a rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8d5765b4 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8f1c5b63 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x99176c02 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa060f6f2 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb0c1933c rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xba7373be rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcace2cb1 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd32a0684 rt2800_rt2x00debug +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdab2f240 rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe5d6e68c rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xec7696d8 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf1f9e54b rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf2426b67 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfa0d22a2 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfb737f26 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x080604f1 rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x0fad1430 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x1f39d0d5 rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x20c01c80 rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x2505789d rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x38fc85dc rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x3cf16724 rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x4901f242 rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x55dcabb2 rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5b3fcd2a rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x7ddd1de0 rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x92c0bcd1 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0x97e43e1f rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xb2d12da9 rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xc6a1455e rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xe28f94c7 rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xf4bafe09 rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800mmio 0xff8d5198 rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0180a8be rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x018b0e40 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0dd6ff7f rt2x00debug_dump_frame +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0e7cb263 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x11625fe4 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x16e18f6e rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x18f9986b rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1ee0f333 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3314764b rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x37559347 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x396cb32a rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4744f5ad rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4b663bc5 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4e1770da rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4e67b581 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x530bcaef rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x552b22cf rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5a3af71d rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6195ca8e rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x65eff15f rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x688d7109 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x70b936c7 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x70bc0679 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7dd4e710 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x800cddd3 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x859f56ab rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8edcf072 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x92eb99c6 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x94e95779 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x959b9b2e rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x97a0d437 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9bc1d7a2 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9d612bf7 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9e23fe81 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa1fd7d3b rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa676f06c rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb3ae162f rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc12e4879 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc21fdeb0 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc4e11b03 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc76be920 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc7a6c648 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcba69e16 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xda1c33b4 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeab304e7 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf2147bbc rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf30ddca1 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x1de2a62b rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x7f3b2662 rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xbab35b04 rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xcf704d5a rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xfcbdf510 rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x10672d94 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x14fbc8ea rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x4832335a rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf4f75d40 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x18db000a rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x211c0b28 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x287f6533 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x28ef4048 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2d95249d rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4765bdd3 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4f12a8f7 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5b4bc4de rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x61564275 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x804daf5b rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8334b639 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xcc9867d4 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdb10a6c6 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdb3831cd rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe3b9d8fb rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xed0769b3 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0b4e1d9c dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3a1557fb dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9da91c0a dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xac45d483 rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x196747ab rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x199b5989 rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x1a5a5b87 rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x1fb4f9a0 rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x311e5d3e rtl8723_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x53dddecd rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x543a3253 rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x585a8bab rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x58bcc3ec rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x5a7cbfa3 rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x5ae5c63a rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6d7199c4 rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x6fee3a6c rtl8723_phy_set_sw_chnl_cmdarray +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x71b4dd38 rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x767106e8 rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x8a5a8f42 rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x8b853e3e rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x95c8cf3b rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0x9e9c698f rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xa0ea1c06 rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xa94021ed rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xaf4d6d94 rtl8723_phy_calculate_bit_shift +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xc69becf5 rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd22ea4b4 rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xd520bac3 rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xde037884 rtl8723_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xe924de8a rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xea8676e5 rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8723com/rtl8723-common 0xea8bd816 rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x0d0b6636 rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x15948c1c rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x241dedc1 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x2bdd1471 rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x2dbc8c34 rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x31ffca5e rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x525793b9 rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x5257c055 rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x6b4de810 rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x82e3032b rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x84e8cb15 rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x8679e8b7 rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x8b5e84c0 rtl_dbgp_flag_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xa0e78a57 rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xc0312a45 read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xc3c64ffa rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xc6a7d383 rtl_attribute_group +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xd9149cf8 rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xdc0fe902 rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf6c67e1f rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x22f79170 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x7ed47752 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xa546ddff wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x16e7a433 wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1b162973 wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2af5fce8 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x394a9177 wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3e59a53e wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x42efae5b wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x471a0834 wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x47de8d96 wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x49d6d078 wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x61e9e5b9 wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6282f5da wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x63a712dc wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6f9f3e71 wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x705f312c wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x78bebab4 wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7a607c29 wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7d0fb47b wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8ac08311 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x921d1179 wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x93853c21 wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x99aba167 wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa07a5459 wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa4182488 wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xac2bf64e wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xacd86c87 wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xbb0f97ac wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc20d967d wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc50c032f wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc5111f49 wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xca65ad0b wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xcd931388 wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xce7d28f4 wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd1459a7e wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd23994e2 wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd39bb505 wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd4294ea6 wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd65c3b3b wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd7d1e928 wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd9727105 wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe6b3d38b wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xeeecf127 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf835e3dd wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/pci/hotplug/rpaphp 0x01cc7086 rpaphp_slot_head +EXPORT_SYMBOL_GPL drivers/pci/hotplug/rpaphp 0x0cc7bdda rpaphp_deregister_slot +EXPORT_SYMBOL_GPL drivers/pci/hotplug/rpaphp 0x91e4bef7 rpaphp_get_drc_props +EXPORT_SYMBOL_GPL drivers/pci/hotplug/rpaphp 0xb7663497 rpaphp_add_slot +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xbb1f1220 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xe59ff87b pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xea8cd06e pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x11708c18 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x1515da6e mc13xxx_parse_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xae45c0dc mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xe8bea752 mc13xxx_get_num_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xef80f80b mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x3be51d58 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x449e9a28 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x53f04cfd wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x58802723 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xb52b7120 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc47d0ceb wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x7ec40dde wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x055c7e81 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x08894f7a cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0db9dee4 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x13b10766 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x14580a75 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x15cbd0e9 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x19795202 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x218a2b34 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2bc0e154 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x311f4405 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x333ea765 cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x33a33f46 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x33d703e6 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x36d20bde cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x36ffad1f cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3861d443 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a8f372e cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x49f56c5d cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4a23f5c8 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4b0618b4 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4c9b1416 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4ded49c1 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5372f16e cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5649c744 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x56ffa5ea cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x58587e57 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5e15b2dd cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x646667a2 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6c2eaef3 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x75cc4b3d cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x75cd6ef1 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x79b5b15b cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x945e1350 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9664852b cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa57eb8f6 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xacab5aa1 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbd746369 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc03138b8 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd1535ef5 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd910d19b cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdf3242f8 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf5be7aa4 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf8b88650 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfd0ce18d cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x52eada9e scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x5be4a460 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x62972409 scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x92cc4e60 scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xc2d02018 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xd7289fce scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xf4520185 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x040b2af0 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x105e0ed6 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x2000ca1e fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x2cf99bb3 fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x3e42e91d fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4e8de458 fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4ec814bd __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5f2a282e fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8c79be1e fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa55fad1c fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa7a838bb fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xb8768e5a fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd9b0c763 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xdd19f19f fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe0dbfb95 fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xee507da3 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x120761db iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x38fdff3e iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x6ce0e193 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x982c5a1e iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa514d588 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xd5519bff iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x05804726 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0db33b55 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0ef733ae iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1ead8c33 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x21d22730 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x25279562 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x28e6459e iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2a7a798c iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2aaddbf0 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2f3c4f8f iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x324cb2b5 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3531b78d iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x36f24149 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e58ca7e iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4f80fcaa __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x50b1c600 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x52ef318e __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x53a3c94b iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x60893e32 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6bea97fe iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x71862c3c iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x72b25fb3 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7e0ee517 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8ba0d2b6 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8c2e53c3 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x940274c9 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x964c07bb iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x994c67cb iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9c91fe2c iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa5c22d32 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xadc94c11 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb0f83ba4 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb1fefb21 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb234aa49 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb881b525 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc93e95a4 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc95a88d8 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd7db9945 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdee7c626 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe7fe9382 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe8dce5c8 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xecd27ee3 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf6e53a2a iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xff450e30 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0c3a6419 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2580a6a3 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x27697f42 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x37d1dff9 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x75fcf7d1 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa9dea6ab iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb00c64bb iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb21f8b00 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xca319aa9 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xddff16b9 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe438ebf8 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xeb148f02 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xed19c358 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xee5ae62e iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfc1fc2e8 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfc497a18 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xff9b349b iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x082b370b sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1078182a sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3772ce7d sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4bbd2b15 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4fe22284 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x56a46618 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6ca6934a sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x81b77d04 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x85c93946 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x87471756 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8a6da8d6 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8dfef41b sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x986d3c1d sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa6587a31 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa7472d25 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa74b5ec4 sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa78fbfcd sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa799763f sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb0cbbe89 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbc1d3b7a sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc3fc897c sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcca7a41c sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd013e1e1 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd2c3515e sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xda5082f6 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x62ab6947 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x6db92606 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x6f587e96 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x95363c6c srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xced44001 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf8810a61 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x068e4b0d scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1612434d scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1b6563c2 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x56db25e8 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x81ba0fc5 scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8787542d scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x912d91b1 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd0fb835c scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf102dabe scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x01763f73 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x03a6d132 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x044a322a iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0b7a8ab9 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0dc9a4eb iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x106cd20f iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1a396c67 iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x23be697c iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x248f5cc7 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2ca46baf iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3b786610 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4062e9c5 iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x45bf4dcf iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4809aaf9 iscsi_is_flashnode_conn_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x56c05b06 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5cf73e06 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5e01ebe3 iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x65cdc8bc iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x68d75fde iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6be797ac iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x707b63a6 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x73061a55 iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7450afd8 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7e6667e8 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8ac6b80e iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8b627bf7 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x967cff0c iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x967db5c2 iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa3b49809 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa84c969f iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb41ad8fd iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc66c1f21 iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcf0c73ed iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd2bbfda6 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd5613119 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd56ce49b iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdbb7695b iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe7464117 iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xebab0c4c iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xedf47540 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x305df0e8 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x81f6f774 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x9e071ac1 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xc3e6877d sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x2fb956cb ufshcd_init +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x6f177061 ufshcd_remove +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x780090c5 ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x864a7d84 ufshcd_resume +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xaabc4b5d ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xca365723 ufshcd_suspend +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x04378759 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x447751e7 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x6029231a spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x763530ae spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xe82afec4 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x26e52c37 dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x4608ba36 dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x71bc176a dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x92293b17 dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xe161ef17 dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0xa2c500db ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/uio/uio 0x1b05ffd2 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x40cc5319 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x4fcec406 uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x7c62ae52 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x7d6dabe6 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x437eb9d3 usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xa6f4c03c usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xa899eff4 usb_gen_phy_init +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0d426d77 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x17766a96 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1e401e47 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x24b29fc7 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x30bf4f7d usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x361bc195 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4ad563d8 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x55137816 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x68f0437b usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x690f28bf usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x92b98479 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9f04b778 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa06cf7f2 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb5d27e2f usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcdea77fc usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd45044c2 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd6709eef usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdfbe2fc0 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe6497c66 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe941fd95 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xef47f338 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf49bbafc usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0bd816f0 wa_process_errored_transfers_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x14923ef1 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x4345ee26 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x466ad1fb wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x4a075093 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x72e58288 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xd7cc5169 rpipe_clear_feature_stalled +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x077ba834 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2a463b41 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3cdc297e wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5977cdb4 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x978ed5f7 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa24c7785 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa3a396fd wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xac30b8de wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcfa69789 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd618ea3f wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xdf855688 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xec8ba547 wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf96264d2 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xff90605f wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x57810746 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xb27f1b0a i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xfb7e3c78 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x086b4c8b umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x546d26ff umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x804d285e umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x80634d7f umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x82fb6b0f umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xad56a2d7 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd995746d umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xdf6fc598 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x01593149 uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0d78016e __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0fc02440 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x18684b90 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1ec156a5 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x280e3d0e uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2dbabc67 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2ed24a13 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3048d9f7 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x36acc17f uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x40b77b24 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x44c973e9 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4f969895 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x55759549 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5bbfa539 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6bffd4d0 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6c5775dd uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6ce71a94 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7a213758 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7ffde0e7 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x816b9e92 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x829df60a uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x91115544 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x975f63f5 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9895ece0 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa1f462c7 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa6a462c6 uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa89bfc2a uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xaa3d63a5 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xab8bb686 uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xac97316b uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb60b034f uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbbff04a1 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbe6825b8 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbe9f6983 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc6b0541e uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd00adeb7 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd750ce68 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd9d5c9fe uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfa5d0921 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xff7320e7 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/whci 0xfe47d63d whci_wait_for +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x004abd01 vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0e0d9897 vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x124197db vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x269f7a09 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2e9501d5 vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x315399ce vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3ce9ceba vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3f759cd3 vhost_work_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x42dc6759 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4593816e vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x56c9e6b8 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5bf0d7fc vhost_init_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x657e6e51 vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6b6ba487 vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6f0b6c24 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x78e458f5 vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7c0de519 vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7ce53a63 vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x8cc65242 vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x964f9013 vhost_poll_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa5278bf0 vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa88af5e2 vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xaa0a0d8a vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb0f81e37 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc5f08b4f vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xcf6182ab vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe8638b4a vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xed8336cf vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xefce7f3d vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf86da216 vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfd969730 vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x0617c790 auok190x_common_probe +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x0babb2d7 auok190x_send_cmdargs_pixels +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x12dc8825 auok190x_pm +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x181695ed auok190x_send_cmdargs_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x1c51d40f auok190x_send_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x226c66a5 auok190x_send_command +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x2af4ba91 auok190x_common_remove +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x9c6c6da4 auok190x_send_cmdargs_pixels_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xa5775507 auok190x_read_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xfee5350e auok190x_send_command_nowait +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x070f1853 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x1a1cc2a2 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x33d3f288 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x576ddcc2 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x743f8c73 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x78e55bc1 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x9766a91c ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0xb1b82840 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xbb297c73 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xfa620fe3 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x7cc1c81d sis_free_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xdc510e38 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/w1/wire 0x065c480c w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2465b568 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x3009b13b w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x350a098a w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x53c7a04c w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x73b3b4d0 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x9e611b23 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xd06aa1de w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xff9f5abd w1_write_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x1619d6cc dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xa5684e1e dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc6dc8c2f dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xeeb49543 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x161ed381 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x2ae8a546 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x33006d2e nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x3a883175 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x80fb5c2c nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x85e5c853 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9b90917a nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb6ce792d lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf3a5a23e nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x04cba7b8 nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x05b1a0f2 nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x06a05c30 nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x06b7db6b nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x10561e12 nfs_fs_mount_common +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x16280baa nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x17928052 nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1ae0d6ee nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1e4deba8 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1eba5cbc nfs_clone_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2006a0bf nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2086e218 nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x222b2b5d nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x23df0b5b nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x25306cf6 nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26a91d3e nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x29b853b0 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2ad2c849 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x31cb0285 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x35c16f32 nfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x368bb321 register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36e681ed nfs_readhdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39b2ac6f nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3a068db8 nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3a170c2a nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3af69e44 nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3b675ecb nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ca31f35 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f09308a nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x416bf5c7 nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x43b04934 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x44e5e0e3 nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x45cee5c4 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x46561578 nfs_pageio_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4686bb4c nfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4914843d put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4a7da9e7 nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4a817915 nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4b793101 nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4d35c1b8 nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4db0d561 nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4e229175 nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4efd6c55 nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4f8b2574 nfs_pageio_add_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4fd59393 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51419ff3 nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x53742805 nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x54c4f1a3 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x54e55720 nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x57653d87 alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5d1c5821 nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5d403a38 nfs_remount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e1d863a nfs_sockaddr_match_ipaddr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5f952a8f nfs_generic_pagein +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5fcfb496 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x626d8fec nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x628aa8ec nfs_writehdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x67e9f80b nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x68ff7393 nfs_writedata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x72f93eb5 nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73992d94 nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73e99d46 nfs_file_splice_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x75f9ce91 nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x79e96f43 nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7b150aca nfs_destroy_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c9722ba nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fb2f4c5 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x80f7fcea nfs_put_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x878fac68 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x88722d80 nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89bc5a64 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8a0a0702 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9328e2e9 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x93a44477 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9438d14a nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9585f6be nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9651e102 nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x978bffc5 nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9813abda nfs_probe_fsinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa1bb3d64 nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa26f15b3 nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa43844d9 nfs_file_fsync_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa4b66ff5 nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa4dcd9a4 nfs_pageio_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa5cec11b nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa670fddb nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa6b0f24c nfs_setlease +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8d2d1ce nfs_callback_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa9793777 nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaa105349 nfs_set_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xacf0deca nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xad3a0ad5 nfs_fill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xad4e0765 nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xad5f509e nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xafebbb10 nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb606e716 nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb837d4f9 nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbb843ecf nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbbc42d81 nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbc6bcd97 nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbcca2b06 nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbf2b73da nfs_fs_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc2dc392d nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4121cc7 nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc4ff1e9f nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5563366 nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5ef47d5 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xca4aabcf nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcafed6e9 nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcb9840cf get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcc436e9e nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcc9e2550 nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd250dbab nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd4846f97 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd54899ba nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd5ab3ba5 nfs_generic_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd82b0ea4 nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd9bcf8cd nfs_readdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xddbd7d17 nfs_try_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdfa8e7b4 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe6b1e4f1 nfs_file_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe7b9ec9f nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xea4e6cf2 nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeb80eb54 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xedbe30af unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xee32e31a nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xef7d7cc4 nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf0472094 nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf1099e80 nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf2650544 nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf4b3edb0 nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf950bac9 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfb77af03 nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfb7ee006 nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfe2a0c46 nfs_file_splice_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfea55952 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x03f18d71 pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x06c36816 __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0b918d04 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0e23909e pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x110a2a46 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x116484fa nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x170f3ed6 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x17c4e4a5 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1da4c967 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1f0974a8 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2b9ea77e nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2cf6a6a0 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2f51bc9e pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3486714c pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x386f81a2 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3dfe6fe3 __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x45d9ea5c nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x471de0a9 __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x59d9a947 _pnfs_return_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6130262d pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6b158213 pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x79604067 nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fa88c43 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x848e245f pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x87294f11 nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8ef279e9 nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x920ba9c2 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x965a839a nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9f14fd98 pnfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa8120940 nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xad548cdd pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb0f82fb1 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc134835e nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc4010891 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcf616a15 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd916b8e3 nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdec00c91 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe064aa50 pnfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xec7017d1 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xef6f8dc2 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf6ee1e42 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfb06935d nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfd06eec8 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x8ed15ea7 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x9e016216 nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36a28a9e o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x3a377aee o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x53f36b57 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5c8d3ac7 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x66530033 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x8064fef1 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x91f68cc3 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf0161422 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x384511ad dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x62f8e963 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x64a37234 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x765b56cc dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa05a26bc dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xf5676bde dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x9b1e0790 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xc76f13aa ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe6b84875 ocfs2_plock +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x0431d364 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0xbc8684ce notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x1803a6ed raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xe4b051cf raid6_datap_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xfdfcb8cb raid6_call +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x201d8ea3 encode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x29fa419f decode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs +EXPORT_SYMBOL_GPL net/802/garp 0x3aa90d14 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x7747f8c7 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xa297425d garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xb91bbc2d garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xce7e36b9 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xfa4ebd7d garp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x82b933a5 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x983a1d3d mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0xa373769b mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xb89e3133 mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0xc26a2e4c mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0xd19e609a mrp_register_application +EXPORT_SYMBOL_GPL net/802/stp 0xac662225 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0xde85cc8c stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x634538d5 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0x668b5e8c p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/atm/atm 0xb09faf79 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xcfb6a3da unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x014398a9 ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xd1f7ab92 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1001f2de dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x13c124e9 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x243fc74e dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x246545e5 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x388944c6 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3d2b4bf6 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4515d8df dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x45723de5 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4b2cb40d dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4c472de4 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5733df5e dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6730fe58 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x699a72d4 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6c6f403c compat_dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6d7b8f9f compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7013c712 dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75f0f76e dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86d1420c dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8bf679ef dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8c496209 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x963ccbb9 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa30ff61d dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa8a9f480 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xadc8ccdf dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xadee485a dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb67bf284 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbaa4a269 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc02f5523 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc065f253 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc0b7b890 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd229e769 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe12f0efb dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe15aac2a dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xea92855a dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xefecf0ce dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf0ca2711 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf322598f dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x129cacd6 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x23d1813a dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x306f46a4 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6eee51c6 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x8c016568 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa05a57c7 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x6cbf4143 register_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xce0e4499 unregister_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x2887810f gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xa54c452f gre_build_header +EXPORT_SYMBOL_GPL net/ipv4/gre 0xab58d079 gre_cisco_unregister +EXPORT_SYMBOL_GPL net/ipv4/gre 0xad65ad63 gre_cisco_register +EXPORT_SYMBOL_GPL net/ipv4/gre 0xcbd783ca gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x05cb7279 inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x47c51678 inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xcea68529 inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xd0a625ef inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xe19a7d08 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xfb68ffef inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x028fc5de ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x0fa299f5 ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x13b8e79b ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x53317031 ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x6f0596f9 ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x78974f5d ip_tunnel_ioctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x8119f9ea ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x8273d1b8 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xc0b1568b ip_tunnel_get_stats64 +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xce23fea0 ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xd38157e4 ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xe8561893 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xfc4a350c ip_tunnel_delete_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xfe60a37c ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x2a9bd5e8 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xb510be5b ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_ipv4 0x0877d86b nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x00c7137d tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x5cd1f011 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6b4d2b3e tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6f190a0a tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xdc81326d tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0x8381821a xfrm4_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0xb1731cc3 xfrm4_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x036caad7 ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x6c72eb7c ip6_tnl_dst_check +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x88f670b2 ip6_tnl_dst_store +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x9f7a91f6 ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xe3d01827 ip6_tnl_dst_reset +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x09ef17ce ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_nat_ipv6 0xf7f69209 nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0xe5d150d2 xfrm6_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv6/xfrm6_mode_tunnel 0xebb5e5f6 xfrm6_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x16278e15 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1c77ffbc __l2tp_session_unhash +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2cdd0d0c l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x323b3e27 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x40ceb0b5 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4d534b08 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x53357337 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x55fa2a74 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7166da71 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x808d95c5 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8143ab6c l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xace27bf7 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb63bc7c8 l2tp_session_queue_purge +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd2c7f4e7 l2tp_tunnel_sock_lookup +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd45e1ed8 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd60400d9 l2tp_tunnel_sock_put +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdc84f3d0 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x1c239eff l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x087d72e5 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1e2d89fe ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x29a91273 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3663a36d ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3f7bc2bb ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x448b37b7 ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x46f471a4 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4bf42798 ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5d38f601 ieee80211_set_key_tx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x83849c4f ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x844491d1 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x920c8b77 ieee80211_iterate_active_interfaces_rtnl +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb4cf692f ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc44171c2 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xce4ea65c ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x009979a9 ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x1e119c29 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x1f067e3a ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x22a30398 ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x26399c84 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x31b0a200 ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x40da8984 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x555ea030 ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x64c9be6e ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x66978372 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6eab1378 ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7ee80d0a ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x88dae441 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8d00b8a0 ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x932894f1 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9890fa49 ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xef13ebbe ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf3b4d4ae ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x200dc413 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x453c6117 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xc9c06cc3 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xe5756bb5 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01405034 nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01f84db5 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x06741103 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a6a5cd6 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0c25f2a0 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0df667db nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0fc14706 nf_ct_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x12fb6daf nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x158304de nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15934c63 nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1bac015b nf_ct_timeout_put_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x21361efe nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22a2a3b4 nf_connlabel_match +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x270f3042 nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a4e2c36 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2f0e1eae nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30e9b3a8 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x31523c59 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x32057e0a nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x33ac7b49 nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34427381 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37386cac nf_conntrack_hash_rnd +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3d30bce0 nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x40a2d23f __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4149643e __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x443dcfa3 nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4527ca12 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ae2d3c9 nf_ct_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4f1fdb29 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x54027126 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x555dee7a nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5985b8d3 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5a9756bd __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5ba8013f nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5c05c043 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5c71934f nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6565d223 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x675e73fb nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x68e4c77d nf_ct_l4proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e42e89d nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fff8279 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x729ead54 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x82b619db nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x84ace439 nf_ct_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x859fc9d7 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x86aa2be2 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8b3b917d nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96b5c054 nf_ct_l3proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9b0853e1 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3a5485d nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa44abdb7 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa942bf3a __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab07aa74 nf_ct_l4proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb07aecb0 nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb5dd8850 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb5f9d63c nf_ct_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb9e0d0aa nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbbabadbf nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc88ad3c __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbdb8f147 nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc2555786 nf_ct_timeout_find_get_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc7084d6b nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc748cc3f nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc896c972 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcbebce17 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcfb67a54 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd1c98db8 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4485c57 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdba3d5d5 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xde1d8164 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe206d5b0 nf_ct_l3proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe37c39eb nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe594a4f6 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe59ef697 seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe61e4fc9 nf_connlabel_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe9552d0d nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf57eaebd nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf6433c4d nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf69416d9 nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf6ec7abd nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x9abcc065 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0xd5a26af2 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xed7412ad nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x281993d9 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3a88b8ad nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3d0e4fb0 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x432b7c23 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x813c92d4 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x850efbc0 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa18242e4 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xabb7d1db nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd4852b50 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xed441a2a set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xd2a0b0be nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x1543059f nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x9be408b4 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc1f9a9d0 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xce5013a6 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x319d8eea nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x685ea037 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x45e8c0c1 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x64caa526 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6e57704c ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x83a8cbfd ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9c52e983 nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa741e15c ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf734ba0b ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xa3cf5b1d nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x584f631a nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0d9bae4b nf_nat_l4proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x1223e869 nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x131f636c nf_nat_l4proto_in_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x32e554e1 __nf_nat_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x34a1c935 nf_nat_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x51dd84bf nf_nat_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x55c2518a nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x6fd5583d nf_nat_l4proto_unique_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xa5613a01 nf_nat_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xaea48d2e nf_nat_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x08fc167b synproxy_tstamp_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x11a006b5 synproxy_check_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x8841d39b synproxy_build_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x90298227 synproxy_init_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x9df81e3c synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xb42e336a synproxy_options_size +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xef7db50c synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0057467a nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0d35f8d7 nft_data_uninit +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0fda3c99 nft_validate_output_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x20d5fbf4 nft_register_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3d49dab7 nft_validate_input_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x4eb103ee nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7844f336 nft_do_chain_pktinfo +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9b39bf60 nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xab6beb53 nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xac237581 nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xc46c6380 nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xc5773cb7 nft_register_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xd2276e3e nft_validate_data_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xfe117743 nft_unregister_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xfe7c91c7 nft_unregister_afinfo +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0a1e5943 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3b11cadd nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x46e33847 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5b9c2ddc nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8a281746 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xadccbdde nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xff8817f5 nfnetlink_alloc_skb +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x21f6bba6 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xe9840f8f nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xdfa25b80 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x07b10d89 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x10c777cb xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x32046421 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3aab07f6 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3fd44c93 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5401834c xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x58611684 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5bf91844 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x61d8a241 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6d1a8216 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9c5fbff5 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa520174b xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa645c525 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb3e15706 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb6af2483 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc8d949d1 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdfc1189e xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xec24fd82 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf51adbe2 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xff9b1dc4 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x00204983 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x482b6a12 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x2012b58f nci_spi_read +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x66095255 nci_spi_send +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xb7262b79 nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x092579d7 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x13b0ce83 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x1e0ce607 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x1e16e083 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x2e499a0a rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x2f6d2b95 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x41785a2e rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x4882d83e rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x62c32d32 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x62c6eff3 rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x6449a21c rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x6f27534d rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x6fac0515 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7bc62829 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x90ec7908 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xa64d8fac rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xa7dcbb52 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc7bcb855 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xcfcd5627 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xd79d33e8 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xdcf780c1 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xe04b82b1 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0xe2bcb2ff rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xed4296ad rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x98279d8b rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xc2a2a85e rxrpc_register_security +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xbb67d788 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xccfd13f8 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf9ac45e0 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0121b510 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01709d9a svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x024b6990 rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x038c649a xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045834e9 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x046d72c7 rpcauth_cred_key_to_expire +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x073f3de0 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0798ad71 rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09e0dfe5 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bc7c0eb xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d9933f3 gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ec3e296 xs_swapper +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x132d0ac1 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13880ea2 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x148d0f0f xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14c5e669 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16b35ae5 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x171e7df4 sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x195d23c5 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a11d1dd svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a553ea0 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b793853 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1bc67e51 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1bd58ff0 rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c715493 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f2a9970 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f4c287c rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20552daa sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x213ba670 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22903c6c sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24e7d849 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25884835 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27d708b5 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27de49e3 svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2aa046ef rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d512eb8 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30c77368 rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x322b6b77 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32619ed4 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x330389e1 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x337b7453 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x342e8140 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3501cdc3 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3769a908 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x393679b5 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a6563b4 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b6b1bf1 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b71aeb4 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d70e50d rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f0c3051 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f3f0061 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f47343a rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40601fdb xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43405286 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43694b79 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4414e392 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4474b8a6 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45a8dd8a rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46b74e00 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46ca9d5e svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x470043d3 xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4891890d rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48d70a55 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b31d4e7 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b5ceef5 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d55387d rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d5caa37 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e8ca750 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4fd968fe svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5141abb8 rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x520f50aa xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5216134e svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x522f9169 cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52c94dfe rpc_rmdir +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5672702d rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x573d0b24 svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x578e41cc rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x578f13c3 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a078813 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ddf0192 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62486e07 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62891fb8 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62ae20b0 rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63a69e9a xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64da3989 rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65e3afb5 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66690cac rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66eab176 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6803cf43 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68185878 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bee3142 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c3fd0b0 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d17ba92 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x701088b6 rpcauth_key_timeout_notify +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x715f500a rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71c6c37f unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73a2c457 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7473273e rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x771ca3d0 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77d43077 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7879c603 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78fe092d svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x793b702f rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ad9aaf0 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7bd2b841 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7cb777d3 cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d1f10f1 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e602e3b xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ea11562 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80951b28 rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8130f812 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81b1612f rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83a39e7b rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83ccb8bd xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8572093f svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85c186b6 rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87704970 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89ff443d rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a7fc4b0 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c9bf4c7 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d2278bc xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e49d30e svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e5c9d18 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90681d23 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x91029ca8 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92366dee xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9804ba28 rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x981c2c22 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b75d64 rpcauth_list_flavors +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99cdb89f svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a062e9a rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a91ead8 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9bd1deb1 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f8ade10 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f9d7fb5 rpc_get_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3928e45 svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3ceb61f xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa61f8f80 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6761df6 rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8795556 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa89b472f xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9fb9c01 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaac568cb svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac12847b svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae5879bd rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae855bdb rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb31c7983 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb38b631b xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5259a00 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb563bbf9 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb846df8e svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8b95bdf xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb9cc0665 cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb9f7d388 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba465820 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf16fe20 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc7aabf3b svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc7d36859 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc854eeaa xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8f23879 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcbb656ea rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccf8e8ca xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd178ea4b auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd17c2c82 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1c086c8 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2acb652 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3a7b903 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3fe3cc4 cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd55744c9 rpc_protocol +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5d06a49 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7fcc5b4 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8836f2c rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde3bf489 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1477b86 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ac2bb8 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3005d22 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8b05a74 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea3b375c sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea9b449d rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec35a4cf read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeca64319 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeef78eb svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf02bc9a4 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1b8c721 svc_shutdown_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3994050 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf45dd8a4 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf746f6c3 rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf74a75c1 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9b6510b xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb3699fd rpc_net_ns +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0c79d5ef vm_sockets_get_local_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x15c0c57c vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2663cb64 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x34d4d898 vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x40058034 __vsock_create +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x467bcdda vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x594e3a2a vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x59d943c8 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x5ad42d27 vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x5d724465 vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x65e1d80a vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x751ff010 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7f730c80 vsock_core_exit +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x82b0a3e9 vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x919965f1 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x970b77bc vsock_pending_work +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xaf49183a vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd0f699d vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xcd508bf5 __vsock_core_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd95ac116 vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xdfc701f9 vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xe37d5226 vsock_remove_bound +EXPORT_SYMBOL_GPL net/wimax/wimax 0x427218d3 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0x5f1d255d wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6d527b40 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x77e00480 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8337f23e wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8445783c wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x893d46f6 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa76ffec3 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xaf68eb80 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb54aa3b5 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe5a26975 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xee641b57 wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xf38e3a2b wimax_msg_send +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x05ffbee7 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3fa2a5ae cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x70d0396e cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7d0d3b32 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7d46d9ab cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8c613158 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xae0f3c98 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcfa332cd cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xebdc971e cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xefc1f109 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf005acd4 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00778770 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x056bb269 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0a575945 xfrm_count_pfkey_auth_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0b9e5852 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x74e1a843 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7a8ca627 xfrm_count_pfkey_enc_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7c30b8c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x92dbc6c1 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xbc8b0f41 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xce7a55c1 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe122af95 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x0e18e6c1 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x61936069 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xd267ff73 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xf8f66a39 ipcomp_input +EXPORT_SYMBOL_GPL vmlinux 0x00000000 __page_file_mapping +EXPORT_SYMBOL_GPL vmlinux 0x00000000 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x00000000 compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0x00000000 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x00000000 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x00000000 sigset_from_compat +EXPORT_SYMBOL_GPL vmlinux 0x00000000 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x002927b5 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x004bf4b7 wm5110_patch +EXPORT_SYMBOL_GPL vmlinux 0x006bc072 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00730dd5 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x009304b6 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00e16864 devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x0157fae1 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x015bac44 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x0160dda9 blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0x0168bd2c scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x0175e0b8 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x0178da56 subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x01ca8e06 ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x01d145f2 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x01d66801 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01f5ff60 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x021ebfda btree_update +EXPORT_SYMBOL_GPL vmlinux 0x02339450 regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0x023ac10a crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x024bf1ad inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x028e8cc3 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x029a4c81 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x02a8c9db regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x02bd5299 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x02dab8c6 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x02f74328 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x03099489 device_reset +EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x034d1e7f usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x035d34d2 inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x036503c5 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x036c7de7 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x03b6815e skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x03bf1d5e gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x03e0710d ide_read_altstatus +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x0407f4bc srp_rport_del +EXPORT_SYMBOL_GPL vmlinux 0x040f36a0 pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x041f07a2 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x0447dcd1 devm_regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0453859f regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x04790399 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04df8fbc lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x052393b6 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x0532385a pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x053494cb tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0x054b7a46 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x05805373 trace_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x058b582a vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x05a54fd1 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x061dee59 btree_remove +EXPORT_SYMBOL_GPL vmlinux 0x0626c62b mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0651bcb1 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x06577978 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x065e1aaa __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x0670a502 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x067acd5e sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x068ed9bf ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x069a0450 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x06a352b3 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x06b44650 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x06f441b6 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x070df59a regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x07173d2f pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x07573ca5 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x0762403c edac_put_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x07a4fa92 regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x07a68dd5 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07c3dae5 regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x08069596 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x0816cebd cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x083d053e rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x084e4c45 lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x086f69e0 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0876b754 pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x088bfa7e cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x08bc0870 compat_put_timespec +EXPORT_SYMBOL_GPL vmlinux 0x08daa65f debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x092e879c usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x09437748 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x09469482 kfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x095c161f ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x096122a8 unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x0973337b __online_page_set_limits +EXPORT_SYMBOL_GPL vmlinux 0x09a0a524 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x0a37639e ide_dma_lost_irq +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0a56761b rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x0a90403e sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x0a9fd3c5 gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x0ad379e9 __add_pages +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b11d90b devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b49acd2 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x0b58f414 usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0x0bae62b1 ktime_get_monotonic_offset +EXPORT_SYMBOL_GPL vmlinux 0x0bb512da ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c6dd65e part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x0c9135b4 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0cce0227 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x0d08d943 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x0d344317 pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x0d61ba17 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x0d79acf2 percpu_ida_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0d8391bb __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x0d90b703 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x0d93216f ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x0d97f8f9 tcp_fetch_timewait_stamp +EXPORT_SYMBOL_GPL vmlinux 0x0db2aa30 pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0de06988 cpu_first_thread_of_core +EXPORT_SYMBOL_GPL vmlinux 0x0de8a326 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x0debeaaf ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x0df3801f spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x0e103814 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x0e2de8ce ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x0e3d0555 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x0e41e7d7 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x0e73566f tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x0e9636fb ide_capacity_proc_fops +EXPORT_SYMBOL_GPL vmlinux 0x0ea40217 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x0eba397c crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x0ec8752b ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x0ec95a11 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x0ecf823a static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x0ed9302e percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0ef1207a blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0f3fd064 usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x0f554902 tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0x0f6f671a dma_buf_begin_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x0f751aea input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x0f9f3b7d ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x0fa244d6 input_class +EXPORT_SYMBOL_GPL vmlinux 0x0fba2548 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x0fda82fb __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x0fe112dc of_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x0fed7005 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x0ffb8c37 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x10103c7a ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x101a80ab platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x1033e7c7 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x104397b7 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x1056bf8b devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x1060323a dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x106044da dev_hard_start_xmit +EXPORT_SYMBOL_GPL vmlinux 0x107ba369 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x10b1ee1f usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x10dda127 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x1114011d threads_shift +EXPORT_SYMBOL_GPL vmlinux 0x113208b7 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x1140bd62 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x1154df48 ide_pci_init_two +EXPORT_SYMBOL_GPL vmlinux 0x1169e76c usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x117d56be do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x118c6759 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x1192e1d6 device_del +EXPORT_SYMBOL_GPL vmlinux 0x1198252a smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x11b5d9ba invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x11c645e6 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x11ca6b41 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x11fabf9c virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0x12078283 tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0x121cd964 of_pci_range_parser_one +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x123a418a wm5102_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x12618f89 __percpu_ida_init +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x127aaf14 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x127d5dfc bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x12b6e23b wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x12d24732 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x12f45cf8 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x12fc57c2 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x135d3910 of_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x136a4ee6 btree_init +EXPORT_SYMBOL_GPL vmlinux 0x137922b3 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x138898fe tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x1389da84 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x13ad647f scatterwalk_bytes_sglen +EXPORT_SYMBOL_GPL vmlinux 0x13b2ca47 uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0x13b83eea usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x13ce87e8 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0x13e17a7b user_describe +EXPORT_SYMBOL_GPL vmlinux 0x13e5ea13 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x1416c8d6 put_compat_timeval +EXPORT_SYMBOL_GPL vmlinux 0x143c12f7 arizona_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x14638230 tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x147e1f0b irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x14801fae anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x148f8ea4 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x14e3801d usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x15026a32 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x150c4ea9 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x15355af1 ide_read_error +EXPORT_SYMBOL_GPL vmlinux 0x1537eafe thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x15408809 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x15a0049c crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x15a1e977 sec_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x15a8a819 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x15c21e5e nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x15d51eab netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0x15e212ad inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x15ee0731 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x16424e98 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x165e64a5 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x16646df2 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0x16c78b84 devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x16e342a0 clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x16f7a9dc vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x17039ba7 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x1714be44 sec_reg_update +EXPORT_SYMBOL_GPL vmlinux 0x1717ca95 ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0x171cff8c sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x1753a32f hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0x17773b9d fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x1782123e cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x17ac890a ping_proc_register +EXPORT_SYMBOL_GPL vmlinux 0x17ded305 ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0x1823edc9 ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x183501d2 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x184c4d72 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x184c5c5a stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x1853653c btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1866cec2 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x1876ae1c ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x189f874d powernv_get_random_long +EXPORT_SYMBOL_GPL vmlinux 0x18b18765 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x18c27041 ide_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x18d5ac9d alarm_init +EXPORT_SYMBOL_GPL vmlinux 0x193cc4d0 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x194174d5 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x194dd5f5 pkey_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x19602266 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x198c1245 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19b384a5 hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x19ff6046 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x1a082d69 max77693_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x1a19ae02 virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0x1a299364 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x1a2b9bd5 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a3c5448 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x1a4e38e7 sdhci_pci_o2_probe_slot +EXPORT_SYMBOL_GPL vmlinux 0x1a570bf4 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x1a8c5907 btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x1a90819b pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x1a9e02f8 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0x1ab0033c rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x1ac5ef3b rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x1acef7d2 pm_freezing +EXPORT_SYMBOL_GPL vmlinux 0x1b094a4b uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x1b4b5b0e tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x1b62490d dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x1b7ebb22 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x1b9664d1 __destroy_context +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1b9ad8d4 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x1bc50552 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x1bd06aab cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x1bee4bec usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x1bf84ef5 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x1c012117 __online_page_free +EXPORT_SYMBOL_GPL vmlinux 0x1c1215bd threads_core_mask +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c5b95e2 get_slice_psize +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cc21e09 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x1cf82066 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x1d0c97dd subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x1d18aea1 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x1d4bbb46 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x1d552083 cgroup_taskset_next +EXPORT_SYMBOL_GPL vmlinux 0x1d58ae14 lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d8f9fee pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x1d904dda da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x1da49498 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x1db43ec4 subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x1de9132d ide_error +EXPORT_SYMBOL_GPL vmlinux 0x1e23feee pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x1e5038a7 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x1e5b03dc pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e625e93 pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0x1e731a47 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e9bdc83 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1ea4092c blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x1eb0297a bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x1eb1594f gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ec92632 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x1ed0d6d8 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0x1ef0c077 blk_queue_bypass_end +EXPORT_SYMBOL_GPL vmlinux 0x1eff9035 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x1f1abfe2 sysfs_add_device_to_node +EXPORT_SYMBOL_GPL vmlinux 0x1f3562ca crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x1f41a069 unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0x1f783f4f skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1f96cccf netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1f97b7da devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0x1f9c29da pwm_disable +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fd09c56 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x20003086 cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0x200a4446 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x202194d1 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x202493c6 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x206002bd virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x2068ba6d inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x2069dedb rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x20b96b31 __netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20d4a511 device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x20f1fa82 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x211850f5 htab_hash_mask +EXPORT_SYMBOL_GPL vmlinux 0x211d5add thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2181c25a rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0x21921d16 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x219c6f21 __mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x21ac570e tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x21ae4bce arizona_clk32k_disable +EXPORT_SYMBOL_GPL vmlinux 0x21bb8647 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x21d36a03 kvm_hypercall +EXPORT_SYMBOL_GPL vmlinux 0x21e42891 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x21f5e0df max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x220ad8ed crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x221a2f45 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x225c0fcf usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x2296c665 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x22b5fbdf tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x231b8ec3 spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0x23346793 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x2350dc63 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x2352bcd0 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x236226d7 regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0x237c1a94 irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23a51098 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x23fc87d0 ide_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x24011e14 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x24121c7f platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x242573d7 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2495eb02 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x24a635c1 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x24a71b4f fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24b82fd4 iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x24cda041 ide_vlb_clk +EXPORT_SYMBOL_GPL vmlinux 0x24e906cc blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x256bebed flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x256d78f7 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x25aeaa09 PageHeadHuge +EXPORT_SYMBOL_GPL vmlinux 0x25c60246 tpm_read +EXPORT_SYMBOL_GPL vmlinux 0x25c63cb9 regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x25f19aaf platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2606ce51 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x263652f2 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x26a5cf06 ide_create_request_sense_cmd +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26baabae pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26d0c36f wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x270d65af extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x272645f3 percpu_ida_free_tags +EXPORT_SYMBOL_GPL vmlinux 0x273b52be spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x273ba18b inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x27438f80 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0x274f0e55 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x2750b825 device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x2764dc55 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x2776affd blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x278c0fd0 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x2797ff00 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x27a75d33 restore_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0x27c0c4be eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27d08e61 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x27e47996 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x2827ad56 mpic_subsys +EXPORT_SYMBOL_GPL vmlinux 0x2833e9d7 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x2850ac49 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2852bf79 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x28a903c8 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x28e52713 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x28f4de76 call_srcu +EXPORT_SYMBOL_GPL vmlinux 0x290f987e pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x293b7697 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x295ad4fb regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x29c27a3a cpu_add_dev_attr +EXPORT_SYMBOL_GPL vmlinux 0x29c72192 spi_master_suspend +EXPORT_SYMBOL_GPL vmlinux 0x29eb2110 key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0x2a14d8c1 spi_master_resume +EXPORT_SYMBOL_GPL vmlinux 0x2a2505bf regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2a2831fd clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x2a5b3425 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x2a619838 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a67f7da stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x2ab0adc1 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x2acacf60 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x2ad5111f crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0x2adcac8a inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x2ae5c1ce sysfs_get_dirent_ns +EXPORT_SYMBOL_GPL vmlinux 0x2af62743 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x2b017bb4 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x2b295e29 usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x2b304df9 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0x2b49c00c ide_issue_pc +EXPORT_SYMBOL_GPL vmlinux 0x2b4f7148 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x2b5c303b smp_send_reschedule +EXPORT_SYMBOL_GPL vmlinux 0x2b7a6de8 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x2b7f945a tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x2b85450d __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x2b89e6a8 subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x2b8d90c0 kobj_completion_del_and_wait +EXPORT_SYMBOL_GPL vmlinux 0x2b910d1c dma_buf_mmap +EXPORT_SYMBOL_GPL vmlinux 0x2b944ae2 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x2ba8ecdb usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x2bc3ad1d pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x2bd383ec extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c323864 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2c3e3221 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x2c46fcc7 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x2c50aa59 class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x2c706967 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c89183f tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0x2c97f8a2 of_reconfig_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x2c9ceea9 tpm_write +EXPORT_SYMBOL_GPL vmlinux 0x2ca2f612 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x2caed870 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2cf6fa6e sec_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x2d17a0e1 cgroup_taskset_size +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d25b6f3 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2d2f486f crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d42f6dd fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d691649 rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x2d6ca4f2 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x2dba276a __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x2dc5a6d1 btree_last +EXPORT_SYMBOL_GPL vmlinux 0x2dd51f8f i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x2dde1fc4 yield_to +EXPORT_SYMBOL_GPL vmlinux 0x2de2e4a2 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x2de95768 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x2e054a5b regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x2e1da9fb probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x2e21db61 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e73cc72 verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x2e8d8e2e tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x2eb864ad thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ecfeb82 of_node_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x2ed80be0 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x2edb2e13 led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x2edb878f fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0x2ee386dc regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x2ef09add napi_by_id +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f98411c dma_buf_detach +EXPORT_SYMBOL_GPL vmlinux 0x2fa81260 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x2fd8cba9 freeze_wake +EXPORT_SYMBOL_GPL vmlinux 0x2ff46f23 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x2ffb5ff7 btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x3006b6f5 of_pci_get_devfn +EXPORT_SYMBOL_GPL vmlinux 0x3028f30a sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x3036b7a1 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x3051f65f key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x30681875 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x3078d28c fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x308851ad proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0x308b733a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x311dec8c driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x31272143 of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x31321819 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x317ed675 ide_set_media_lock +EXPORT_SYMBOL_GPL vmlinux 0x31859993 of_irq_to_resource_table +EXPORT_SYMBOL_GPL vmlinux 0x3192414c ide_host_remove +EXPORT_SYMBOL_GPL vmlinux 0x31a33237 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x31bfcf7a da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x31cc25e4 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x31ecae82 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x321bdbb1 compat_get_timeval +EXPORT_SYMBOL_GPL vmlinux 0x3227ee39 pcibios_map_io_space +EXPORT_SYMBOL_GPL vmlinux 0x323ad459 blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x324b0287 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x3256ca45 gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x32708c9c crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x328995b5 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x328ea98a ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x32945a39 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x329bbbde timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x32aeae22 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32bba1bb da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0x32bded08 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32c80375 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x32db6e25 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x32fd447a monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x337786fa usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x339b7d2e __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x33a94a45 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x33a96235 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x33b0b4b7 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x33b8694c __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x33db7f44 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x33f7ab15 get_compat_timespec +EXPORT_SYMBOL_GPL vmlinux 0x34449d3d xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0x34460722 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x3465fce6 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x34b1f19d devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x34bb50f0 rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x3509d045 pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x3517ff0d crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x35258a4d power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x3540f03a find_module +EXPORT_SYMBOL_GPL vmlinux 0x355f5203 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x35902670 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x35ad4f67 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x35cb3c23 crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0x35e16cae ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x35eeaa88 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x35f10f43 nfq_ct_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x35f165f1 devm_reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x36232419 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x3647df22 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x36512996 regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0x365a3ad2 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x366c59e4 usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x3670be50 dma_buf_export_named +EXPORT_SYMBOL_GPL vmlinux 0x36873ff9 __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x368f1fea static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36c1e8a8 serial8250_rx_dma +EXPORT_SYMBOL_GPL vmlinux 0x36e92040 of_pci_msi_chip_remove +EXPORT_SYMBOL_GPL vmlinux 0x36f63718 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0x36fbba9b skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3701d45e mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x370a8b64 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3726b9d5 usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x373476b3 md_stop +EXPORT_SYMBOL_GPL vmlinux 0x3749b4bb pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x375b1bb1 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x375d24ee usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x376930b8 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3771824c __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x379fa4ba vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x37b48662 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x37f03354 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x381880ee mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x3843b3dd ide_intr +EXPORT_SYMBOL_GPL vmlinux 0x384ceda9 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x38561a83 device_register +EXPORT_SYMBOL_GPL vmlinux 0x38605508 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x387ca905 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0x38ad1b2a powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0x38b75508 serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0x38f06bcb crypto_lookup_aead +EXPORT_SYMBOL_GPL vmlinux 0x38f0a257 alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x39099bfd eeh_add_device_tree_early +EXPORT_SYMBOL_GPL vmlinux 0x391479ac serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x3922e20e devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x394929f9 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x397ef9ad crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x3980d6c9 ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x39849468 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x398f775c devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x399727dc rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x39aa6a64 _submit_bh +EXPORT_SYMBOL_GPL vmlinux 0x39abea4f ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x39b5421a usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x39d361af ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a33993d disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x3a3961d5 pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x3a4b0d10 devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x3a4cd4c1 virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0x3a4f2fa9 md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a857157 rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x3aae2de6 da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x3ad0e201 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x3ad82802 of_property_read_u32_index +EXPORT_SYMBOL_GPL vmlinux 0x3adf13fb netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x3ae44e44 of_extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x3ae84e84 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x3aecc9b6 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x3aed0f7e irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x3aedce7f simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x3aef06f2 irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x3b4583fc ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0x3b4732c8 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x3b8813d3 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x3b9986e9 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3bb3a514 regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x3bdbc0df ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x3c0829d2 thermal_notify_framework +EXPORT_SYMBOL_GPL vmlinux 0x3c678715 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x3c83211d devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3c8d28cc of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3cb85101 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x3cc205d6 pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0x3ccffec8 of_irq_parse_one +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cf69baf slice_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0x3d10d4b4 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x3d1c56bd i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x3d1f5e26 isa_bridge_pcidev +EXPORT_SYMBOL_GPL vmlinux 0x3d2372d9 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d39b6ab fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x3d4cd78a rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x3d69eaa0 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x3d9c3878 regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0x3dadac80 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0x3dc526a9 arizona_of_match +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3de5ee37 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3df42a81 regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x3dfa8ddc __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x3e219f06 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x3e259239 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x3e2e543d cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x3e2fa31f wm8997_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3e3e8ce1 devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e7c0956 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x3e971b8d regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x3ed7c1ce debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x3ee52f28 vtime_account_system +EXPORT_SYMBOL_GPL vmlinux 0x3eed501a task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3efd70e9 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3f00f6c4 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x3f2bf350 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x3f4c797d regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x3f645322 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x3f659e34 pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x3f8e6610 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x3fadf54b dma_buf_vmap +EXPORT_SYMBOL_GPL vmlinux 0x3fb14423 md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x3fb2bd8a irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0x3fc23bb3 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x3fc72d3d __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x3fcb6402 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x3fef7431 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x3fefdbb3 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x3ff049e7 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x3ff72043 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x400757f1 filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x401dfc44 uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0x4037829b flush_vsx_to_thread +EXPORT_SYMBOL_GPL vmlinux 0x403b2ccc class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4045c494 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x404f72a8 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x40646fb3 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x4065d168 pm_print_active_wakeup_sources +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40c75ae2 ide_pio_cycle_time +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40e0c258 usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x4143a6bb usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x41679c57 need_load_eval +EXPORT_SYMBOL_GPL vmlinux 0x4167d4b7 udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0x4170463c transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x417a6b18 mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x41934383 of_pci_find_msi_chip_by_node +EXPORT_SYMBOL_GPL vmlinux 0x4193c3a7 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x41969cdf securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x419d0238 rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x41d558b6 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x41d81c5d of_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x41dec88a usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x41e40c65 nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0x41ebb2a5 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x4227daba ide_port_scan +EXPORT_SYMBOL_GPL vmlinux 0x42382a57 pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0x423d75fa ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4240a69e srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x4248259c vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x4281bc83 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42cfdc3d __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x42d2056e device_move +EXPORT_SYMBOL_GPL vmlinux 0x430e5257 of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0x431e1907 of_property_read_string_helper +EXPORT_SYMBOL_GPL vmlinux 0x432f74b9 sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0x4350473e pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0x43a53735 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x43b70edb pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x43bb4841 sec_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x43bc02d7 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x43ca7f1b ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x43e881a1 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x43f516e7 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x4421a6d2 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x44439e4c crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x4488b2bd xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x448a0096 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x448f3453 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x44f7171d usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x450fb522 kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x4512c5f0 regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x4519d503 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x452d3c85 rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0x454c15ae __smp_call_function_single +EXPORT_SYMBOL_GPL vmlinux 0x4564e8fc power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45994533 ide_no_data_taskfile +EXPORT_SYMBOL_GPL vmlinux 0x45b6d167 sff_dma_ops +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45c61e9e alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0x45ed606a regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x4600439b tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0x4609404f dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x460f7531 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x4615fae1 extcon_get_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x4617cbdd pwm_can_sleep +EXPORT_SYMBOL_GPL vmlinux 0x461c537f hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x463b1975 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x463ef2dc usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x4643ce8b scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x466813dd ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x46874e54 ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0x4688c96a usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x469039e8 usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x46b155f1 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x46bf2469 sock_update_netprioidx +EXPORT_SYMBOL_GPL vmlinux 0x46f6b60c relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x4700f27f sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x47578581 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4765d742 powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0x477a6ec6 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x479deb49 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47b21077 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x47b7c15e ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x47d5abf5 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x47d693db gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x47f6ab3b tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x47fc339b ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x4830554a usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x4839ace8 ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x48438b04 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x48841202 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x488d8793 sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x49002c2c ide_host_add +EXPORT_SYMBOL_GPL vmlinux 0x49101934 ide_read_bcount_and_ireason +EXPORT_SYMBOL_GPL vmlinux 0x49235d15 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x49339b99 wm8997_patch +EXPORT_SYMBOL_GPL vmlinux 0x498d293a trace_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49bcc40b ide_check_atapi_device +EXPORT_SYMBOL_GPL vmlinux 0x49c7a75e fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x49e4b0d7 perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0x49ea8a8e device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x49ee1893 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x4a0f2994 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x4a19354c sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x4a2043e3 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4a2c7242 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x4a317a70 fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x4a506db7 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x4a5e510a extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4a67ba40 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x4a743dd2 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x4a8489c8 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x4a90160e bprintf +EXPORT_SYMBOL_GPL vmlinux 0x4aa37531 dma_buf_unmap_attachment +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4affd08b put_compat_timespec +EXPORT_SYMBOL_GPL vmlinux 0x4b0725c5 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x4b0e4a91 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x4b164f39 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x4b1c795e spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x4b362c3f ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4b4bc3cf ide_port_unregister_devices +EXPORT_SYMBOL_GPL vmlinux 0x4b601853 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x4b668a08 rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0x4b69bb11 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x4b836a3a bio_trim +EXPORT_SYMBOL_GPL vmlinux 0x4b94ce6a rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4be613c0 list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0x4bfe3adf ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x4c033288 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x4c07a652 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x4c0a2654 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x4c172423 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x4c602bf1 __blkg_release_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4c704b85 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c7ca502 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x4c808253 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x4c8e5b59 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x4cb8319f set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x4cb92d08 irq_create_direct_mapping +EXPORT_SYMBOL_GPL vmlinux 0x4d08047d ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x4d172ccb ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x4d203f6b virtqueue_is_broken +EXPORT_SYMBOL_GPL vmlinux 0x4d49be57 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x4d5edb37 ide_pci_set_master +EXPORT_SYMBOL_GPL vmlinux 0x4daa2ba6 napi_hash_del +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4dfc0d9f bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e242f5f pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x4e3a69a6 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x4e5e3bdf root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4e6e441a cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x4e779030 eeh_dev_check_failure +EXPORT_SYMBOL_GPL vmlinux 0x4e7b1119 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x4e8536c5 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x4e8b1e85 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x4ea281cd class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x4ec6cae2 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x4ec7b8e3 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x4ece6cb8 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x4ed02b6f regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4ed50108 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f01ea2c ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x4f020dee public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x4f45cac9 alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0x4f7732f9 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x4f84d54a platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x4f8d5eec rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x4f913aa3 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x4f93f6bd clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x4fa783de ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x4fa7a46e tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0x4fc047a4 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fd69b66 realmode_pfn_to_page +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5012eab5 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x502f9045 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x5039c4ab percpu_ida_for_each_free +EXPORT_SYMBOL_GPL vmlinux 0x50601122 of_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x506691f1 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50b4da78 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x50c33df2 flush_fp_to_thread +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x510280c6 wm5102_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0x5105913f __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x5189c149 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x51a99f9f ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x51b65a26 rtc_lock +EXPORT_SYMBOL_GPL vmlinux 0x52035ee8 crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0x5205e64d disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL vmlinux 0x522f538b tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x5231fcab inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x525263a1 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x5272d8bc __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0x529a0b4a virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x52a24863 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x52a41251 __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x52bcd97c wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x52f43f05 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x5335dd11 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53727b79 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x53815be8 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x53acb9ee wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x53af195f pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x53bd5eb3 subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x540d5c0d device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x54215db5 visitor64 +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x546c5565 ppc_tb_freq +EXPORT_SYMBOL_GPL vmlinux 0x54740eb7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x54799a8c crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x548c278d raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54b9589a pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x54c2e3d6 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x54daedf1 blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0x550bf294 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x550d765b pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0x552c5b63 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x55896dda bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x55960c10 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x55c0b591 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x55c2241a pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x55e24514 ide_input_data +EXPORT_SYMBOL_GPL vmlinux 0x55fe1069 __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x5606fd4d pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0x561e4b77 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x562625e1 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x56288d0d tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x56559e05 __ide_pci_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x568724b4 watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x56886b19 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x56888623 led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0x5692386f gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x56930b36 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x56b69af7 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x56bc315f fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x56bc7f37 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x56cb6ed0 pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x56cc98b0 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x56d697ce cpu_up +EXPORT_SYMBOL_GPL vmlinux 0x56ddf7f7 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56fd6c42 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x571dabf7 cpu_add_dev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x57231f45 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x573fc9e7 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x575ae1cd __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x575b35b6 percpu_ida_free +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x5761dbb4 dma_buf_put +EXPORT_SYMBOL_GPL vmlinux 0x5769ec5f call_filter_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57b24d6e mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x57ca75f6 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x57f12395 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x57f24d6f xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x580704ed udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x580db6d1 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x58267e34 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x58413099 ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x588a6fa6 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x589e4569 syscon_regmap_lookup_by_pdevname +EXPORT_SYMBOL_GPL vmlinux 0x58a66baa transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x58da5aa7 devm_regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x58f9a5e1 cgroup_taskset_first +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x5947abbe max77693_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x59532ba3 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x5966cb2d unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x598397b4 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x59867c1c list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0x59b2adbf input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x59de9f4d __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x59e2743e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x59fe11de uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x5a024ecd percpu_ida_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5a1cae16 regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x5a1dcb5b da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x5a230586 ide_dma_sff_timer_expiry +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a8f3b69 of_irq_parse_raw +EXPORT_SYMBOL_GPL vmlinux 0x5aaad1dd led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x5abaa32b crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x5ac3c077 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x5acbafa6 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x5ad8a26d pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x5ade8003 ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x5b0490c3 rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0x5b1f54da ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x5b39c2ae platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x5b44b596 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x5b4795ba inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x5b4e379c of_prop_next_u32 +EXPORT_SYMBOL_GPL vmlinux 0x5b513569 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x5b6b2ed8 ping_proc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5b741729 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x5b8d2b10 rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x5b9c9549 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x5bb40d34 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0x5bce1f88 tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0x5bfb7c25 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x5bfcfe3a ide_write_devctl +EXPORT_SYMBOL_GPL vmlinux 0x5c06c7de rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0x5c10fd84 rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x5c263059 inhibit_secondary_onlining +EXPORT_SYMBOL_GPL vmlinux 0x5c5f56b2 cgroup_taskset_cur_css +EXPORT_SYMBOL_GPL vmlinux 0x5c64498b crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x5c97a75a usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x5ca93699 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x5caaf8ac thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x5cabdced dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5cbe5baa power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x5cf8a882 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x5d066f93 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x5d12e48f input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x5d1746a4 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x5d2c9532 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x5d4d5ecd unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x5d5b889e ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0x5d77952d hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x5d899586 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x5d9288c7 trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x5dbfb76f ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x5de4982e __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x5dfe8c54 rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x5dffb2c2 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x5e073148 device_add +EXPORT_SYMBOL_GPL vmlinux 0x5e18314b ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x5e323767 ide_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x5e38e610 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x5e625655 powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0x5e87218a user_match +EXPORT_SYMBOL_GPL vmlinux 0x5ecfb31a pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x5ed82ad3 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x5ee7542e reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x5f160bff da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x5f419491 gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x5f478577 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x5f55a32d dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x5f79a98b __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x5f9731fa bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x5fe43a51 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0x5feb2f6e stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x5ff8ad5a cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6042b4c8 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x60467b06 btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x6094685f wm8997_irq +EXPORT_SYMBOL_GPL vmlinux 0x609f56ec ide_cd_expiry +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x60aa6e65 edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x60aed647 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x60b086cc rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x60d0eea0 rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0x60d1d5d0 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x60e38784 pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x60ed4bf4 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x61238cc3 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x61260bab regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x61329b44 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x615b3dcc blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x6183ff15 sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x61a90c54 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x61abe7d6 ide_device_get +EXPORT_SYMBOL_GPL vmlinux 0x61aef500 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x61ff7b8c raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x625510be sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x6255abfe class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x62658109 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x627e3292 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x629d2f9a arizona_dev_exit +EXPORT_SYMBOL_GPL vmlinux 0x62c383b5 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x62e663f2 devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x6318757f mdio_mux_uninit +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x63211ab5 rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0x6387f180 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x6390efda of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x6399823f tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x63bb278b fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x63d0b9b0 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x63d53db6 dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x63eca8a6 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x6417f5ad ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x64280609 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x645194d3 iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0x645fc26c device_create +EXPORT_SYMBOL_GPL vmlinux 0x6483fb32 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x64b18385 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x64df02da task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x652c0f26 tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x655746a2 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x65603acd crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x65a07281 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65fd1297 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x661c2c93 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x6628daa5 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x662a0c3f x509_get_sig_params +EXPORT_SYMBOL_GPL vmlinux 0x664d343f get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x664ed079 sdhci_pci_o2_fujin2_pci_init +EXPORT_SYMBOL_GPL vmlinux 0x6672e14b sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x667584a4 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x668a90e4 regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x668bc648 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x669895d4 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x669e3b13 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x66a82056 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x66aee3ae kobj_completion_release +EXPORT_SYMBOL_GPL vmlinux 0x66afb53b unix_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66ea3665 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x66ebe755 nfq_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x66f7df72 dma_buf_end_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x67488e8c PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x674e13e1 public_key_destroy +EXPORT_SYMBOL_GPL vmlinux 0x67651f63 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x676533b6 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x676edb18 ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x6796d0e9 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x67a096de ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x67e26a04 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x67f863f1 dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0x67f9daaf irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x6812da6a rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0x68452aab gpio_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x685136f9 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x685eef94 thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0x687934e9 gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x689789b6 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x68bfeefb inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x68d9ea87 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0x6901e848 devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x6921aa34 compat_put_timeval +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x692afabc fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x693d7ed4 digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0x693edb56 list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x6946c154 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x6951b5da pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x6954c417 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x69790ef6 __init_new_context +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x697cbbb4 threads_per_core +EXPORT_SYMBOL_GPL vmlinux 0x697cd8da ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x69b50b02 static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0x69bb47ce debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x69c59193 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69f6178f css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x6a23410e console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x6a275eeb sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a6cafd2 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x6a9181e6 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x6acb8d84 ppc64_caches +EXPORT_SYMBOL_GPL vmlinux 0x6ad261a5 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b70417d __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x6b889143 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6ba026ef get_kernel_page +EXPORT_SYMBOL_GPL vmlinux 0x6bfe758f ide_dma_unmap_sg +EXPORT_SYMBOL_GPL vmlinux 0x6c120d93 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x6c1b09ab gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x6c2d20b2 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c5a9de6 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x6c893c32 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x6ca0dc0d sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cab502a fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x6cb335cd mmc_send_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x6cb39b1e ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x6cc0f4d4 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6cd21997 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x6cd4ea62 wm5110_irq +EXPORT_SYMBOL_GPL vmlinux 0x6cf34c8f blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x6d153306 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x6d154c71 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x6d2b9e42 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d366722 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x6d4922ac pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x6d53bf08 cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x6d658640 ide_pci_check_simplex +EXPORT_SYMBOL_GPL vmlinux 0x6d810155 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x6d8e7c4a tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x6d8fa92f sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x6d946e90 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x6d9c7268 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x6d9e5425 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x6da7c950 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x6dde6a3c led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x6de4f395 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x6dee124e ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0x6e04a077 usb_bind_phy +EXPORT_SYMBOL_GPL vmlinux 0x6e1279ae pwm_request +EXPORT_SYMBOL_GPL vmlinux 0x6e261dbb ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0x6e379526 kernstart_addr +EXPORT_SYMBOL_GPL vmlinux 0x6e3b1edb ide_dma_start +EXPORT_SYMBOL_GPL vmlinux 0x6e4b1881 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x6e69926e of_reset_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x6e896e43 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6ea55ed4 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x6ef17c55 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f30efde regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6f40d5cf rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x6f7d5671 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0x6f97b171 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x6fac490f scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x6fada6a6 lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0x6fd0a037 srp_attach_transport +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x700ec143 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x700f5307 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x702a7926 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x703268e7 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x7042fa46 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x7049292b __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x70700d0c setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x707355f7 thermal_generate_netlink_event +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70833e52 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x70af0b21 pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70e42a18 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x711bcaf8 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x712c6465 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x7151da00 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71930ed3 of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x71b1ad78 devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x71b351f5 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x71f76805 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x71f99af0 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x7228cca8 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x723374f8 pci_bus_sem +EXPORT_SYMBOL_GPL vmlinux 0x72611e99 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x726c67a4 sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x728fb349 thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7291650e posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0x72daeb13 smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x730b0429 regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7311cbed da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0x731ef951 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x7321a4b8 arizona_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x737bf222 regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x739b8ebb ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0x739d8067 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73c2554f __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x73c832f2 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73e2e479 of_pci_msi_chip_add +EXPORT_SYMBOL_GPL vmlinux 0x73f76d9a xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x73f9d644 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x741c304f usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x7422c95e gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x744becfb cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x7464ea38 dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x74707263 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x748bf066 ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x74906e8a ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x7490f4ad blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74ad33c5 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c6ba64 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x74c952be pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x74e65b2d __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x75051755 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x750c5e94 list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0x75133f6e visitor128 +EXPORT_SYMBOL_GPL vmlinux 0x7518595d device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x752d2234 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x7538f935 balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x754476d0 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x756260d6 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x757b49d2 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0x758a782e blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x75b6d33c devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x75bcf84c ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0x75c16217 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x75e6e037 hash_page +EXPORT_SYMBOL_GPL vmlinux 0x75f2a044 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x75f6aa7e sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x7613b2c1 irq_create_strict_mappings +EXPORT_SYMBOL_GPL vmlinux 0x761bbb21 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x7622fa37 device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x76650d2f bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x76705d91 of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x76a874c7 tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x76c5aa46 regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0x76d07d6e gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x76e93127 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x77004a12 rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x772416c4 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x7728be78 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x7729cbdd task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x773b01e1 gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0x774acb1f blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x776953ea ide_device_put +EXPORT_SYMBOL_GPL vmlinux 0x776da681 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x77a327ed rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x77a8df84 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x77f64efa rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x77fc97f2 ide_init_disk +EXPORT_SYMBOL_GPL vmlinux 0x780488fa power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x78102d88 arizona_set_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x781e0e50 extcon_set_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x7824b395 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x7835a3cd skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x784376a2 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x787c882b lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x788246eb ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x788f55de pwm_free +EXPORT_SYMBOL_GPL vmlinux 0x7892316d regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x78a246d8 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x78b7ee4b device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x78cce197 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x78ec8c75 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x79090475 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x7923124f spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x792a9cee locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x7933bc73 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x79824cf9 skb_gso_transport_seglen +EXPORT_SYMBOL_GPL vmlinux 0x7992827d blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x799d19a0 gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0x79a12e50 devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x79ae87f0 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x79d57b4a regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x79df05ae regmap_field_write +EXPORT_SYMBOL_GPL vmlinux 0x7a2859a0 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x7a4d2e1e find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x7a6410cc xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x7a874f1f ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7ab3632d evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x7ab9947d power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x7aba6ab5 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b0f2127 find_linux_pte_or_hugepte +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b36e5a0 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x7b8ee7cf usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x7bc50c36 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x7bcc938e regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0x7be99141 list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0x7bf8a388 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x7bff3bbc regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x7c1ec3ef sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0x7c25f089 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7c346357 pkey_algo +EXPORT_SYMBOL_GPL vmlinux 0x7c37bc89 pseries_ioei_notifier_list +EXPORT_SYMBOL_GPL vmlinux 0x7ca346cd handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cc1b7fd max77693_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7cc7de1c x509_check_signature +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ce5b92a gpiod_sysfs_set_active_low +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d03313e balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x7d169325 rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x7d36e534 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7d397cc7 gpiod_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d3cc8b4 unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0x7d52d176 ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x7d56e79b sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x7d7e30a8 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x7d88e567 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dbd038a __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x7e0c13e2 ide_retry_pc +EXPORT_SYMBOL_GPL vmlinux 0x7e17ba7b klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x7e1910cd register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x7e2a4c82 serial8250_tx_dma +EXPORT_SYMBOL_GPL vmlinux 0x7e2d29ec ide_pci_clk +EXPORT_SYMBOL_GPL vmlinux 0x7e3595c5 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0x7e422fae of_scan_bus +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e668f18 ide_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7e6d3fb1 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7e9821cc dma_buf_fd +EXPORT_SYMBOL_GPL vmlinux 0x7ea1a2bc probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x7ed5991b ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7eeaa3cc __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x7ef7389a tcp_peer_is_proven +EXPORT_SYMBOL_GPL vmlinux 0x7f008202 btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7f1cb682 ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0x7f26567f regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x7f376cae sdhci_pci_o2_probe +EXPORT_SYMBOL_GPL vmlinux 0x7f443cc1 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7f7a9088 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x7f7bc710 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x7f83ae1c ide_set_pio +EXPORT_SYMBOL_GPL vmlinux 0x7fa4b4a2 of_pci_parse_bus_range +EXPORT_SYMBOL_GPL vmlinux 0x7fc64516 usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x7fee9f8c debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x7ffd4611 fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0x80038859 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x802d6569 clockevents_unbind +EXPORT_SYMBOL_GPL vmlinux 0x802f4e6a regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0x8036c8f2 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x803b7150 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x80466af3 ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0x8051aa0c sk_unattached_filter_create +EXPORT_SYMBOL_GPL vmlinux 0x806f47ea regmap_fields_write +EXPORT_SYMBOL_GPL vmlinux 0x8071b692 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x8077b13e dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8089146a blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80d3927f __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80e30b88 extcon_get_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x80fcbc78 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x8114b8d6 md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x813119e2 regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0x813475b6 arizona_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x8140842a gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x816fc8fb pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x818547bc fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x81b57e1a ide_cd_get_xferlen +EXPORT_SYMBOL_GPL vmlinux 0x81f45c82 of_usb_get_maximum_speed +EXPORT_SYMBOL_GPL vmlinux 0x8228c66e usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x824bb80c devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82b18d3c ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x82b29033 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x8333ea6d max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x833ef0b9 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x8341f76a usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x834616bb sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x836d61d0 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x8377232b rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x83865db2 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x83939b60 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x83a2849b input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x83dde5d8 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x8420bb30 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x8420bccd cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x84273c24 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x8453b4d1 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x84585343 blkg_prfill_stat +EXPORT_SYMBOL_GPL vmlinux 0x8487214f devm_rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8487a2b6 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x84a16e37 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x84c8275a find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x84d9decf kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x8519ef87 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x852e568d of_get_nand_ecc_mode +EXPORT_SYMBOL_GPL vmlinux 0x853aa723 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x853d888a ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x85531ac0 pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0x8586daaf regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x85aff226 bmp085_probe +EXPORT_SYMBOL_GPL vmlinux 0x85b9e216 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x85bf4650 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x8607b01d uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x862bab11 irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x862e352a ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x863dff97 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x86594f60 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x866b9687 wm8997_aod +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x8691eb7b inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x86a3f402 rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x86acdac3 ide_setup_pci_noise +EXPORT_SYMBOL_GPL vmlinux 0x86b32596 irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0x86b6a5c3 sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0x86c16fca irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x8702e548 process_srcu +EXPORT_SYMBOL_GPL vmlinux 0x873c4a96 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x87a046c8 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x87aceb9e usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x87aef77a ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x87bb4e32 of_usb_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x87cb918a debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x87f9514e css_next_descendant_post +EXPORT_SYMBOL_GPL vmlinux 0x8804af3d usb_anchor_suspend_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x88316cbd usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x883c2740 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x885ed854 ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0x88615cdf __put_net +EXPORT_SYMBOL_GPL vmlinux 0x8872a66b rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x8878eb0c ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x88825e52 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b4959e fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x88b5647c trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x88d40257 sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x88db7b48 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0x88dde2a2 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0x88fc0424 devm_usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x89150d37 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x8917ea13 regmap_field_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x891cd006 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89259329 regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x895344f3 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x89694aaf platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8973d506 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x897c70e4 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x89857ec9 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89e51b41 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x89ec3e02 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x8a0a494c regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x8a12a821 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x8a2b14ba wm5110_aod +EXPORT_SYMBOL_GPL vmlinux 0x8a45fe27 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8a50590b dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x8a5445ee usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x8a8149a7 get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0x8a882070 flush_altivec_to_thread +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8abd39bc proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0x8ae152b5 of_get_nand_bus_width +EXPORT_SYMBOL_GPL vmlinux 0x8b70e8ea __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x8b760558 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x8b997fd2 cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8b9edfb6 __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c34d1f3 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x8c50b5a6 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x8cbd1dbe ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x8cc615ec devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x8cc6ae12 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x8ccbec70 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x8cd97b48 dma_buf_get +EXPORT_SYMBOL_GPL vmlinux 0x8cea765f memalloc_socks +EXPORT_SYMBOL_GPL vmlinux 0x8cf581a4 pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x8d03a07f irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x8d046205 generic_access_phys +EXPORT_SYMBOL_GPL vmlinux 0x8d1ef602 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x8d36c088 look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0x8d3c750a of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0x8d4fef72 ide_init_pc +EXPORT_SYMBOL_GPL vmlinux 0x8d5d017a of_regulator_match +EXPORT_SYMBOL_GPL vmlinux 0x8d9d0cd2 uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x8db03c9e blkg_lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x8db3be9c blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x8def26ea disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x8df24cf2 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x8e1b32c5 vtime_common_account_irq_enter +EXPORT_SYMBOL_GPL vmlinux 0x8e309972 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x8e43791e ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x8e45965c pwm_enable +EXPORT_SYMBOL_GPL vmlinux 0x8e5202f1 usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x8e55f068 pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x8e9c7933 gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x8ed2589c blkg_stat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x8ede1a28 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x8f15caaa ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x8f2b09ba put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x8f653fc0 subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f7af87a hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x8f8e53b9 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8f902a2c gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x8fccd17b perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0x902ef153 fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0x904d987c blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90705b7f syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x9077d5ea usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90a2c728 cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0x90cb71b4 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x91050a44 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x910bab55 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x91216e48 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x91286982 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9130eb20 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x913481f5 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x913c5e65 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x91545abe device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0x9162302e ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0x9167204b i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x916fbb4c ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91954883 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x9197645b pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x91b0e3ae rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x91b9a926 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x91c6c40a bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x91cf0bec sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x9200cabb regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x9207cb37 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x9209b1f9 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x920cc389 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x921f646b bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x923d0651 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0x925379d6 rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0x925c39b6 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x927e2fdd pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x9284c573 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x92ac60a2 gpio_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x92c49b11 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92db8f68 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x92ec4174 dev_get_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x92f586a2 of_get_named_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x930ed9b9 of_usb_get_dr_mode +EXPORT_SYMBOL_GPL vmlinux 0x93340d93 ide_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x933bf799 pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0x933e3d36 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x9354239f pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0x93962956 watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0x93a5ecd4 ide_prep_sense +EXPORT_SYMBOL_GPL vmlinux 0x93c0128e tpm_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0x93ebe7e2 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x93ede917 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x93f878b1 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x940685ca kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x940c3fa1 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x9425710b alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x946bce1b usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x94919dbe single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x9495bc96 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x949f7342 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94b3ce09 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x94ce419e sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x94d972b7 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x94e42442 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x94eec286 ide_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x952e1003 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x95334e83 __remove_pages +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x955b85e5 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0x9566795f ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x956e909c regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x958cfbf5 ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0x95add617 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x95c7655c crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x95cbb6d9 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x95dd7d36 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x95f3bfb8 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x960e946f wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x9614ce42 regmap_update_bits_check +EXPORT_SYMBOL_GPL vmlinux 0x961daff5 css_next_child +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x96402d43 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x965a491b dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x965aab09 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x9689e7f0 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x96954c1f pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0x96a22790 vmcore_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x96be7496 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x96c718fc class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x96f3fc0a __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x9730c462 gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x97315c1e dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x9735f061 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x9785b16d rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x978b5106 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x97d1cb93 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x97e739db ide_pci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x982c90f5 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x983c4e9c power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9856d7a2 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x989921a8 regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x98a02a70 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x98c5aad8 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x98df2f71 sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x98e28422 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x98ecc38c devres_release +EXPORT_SYMBOL_GPL vmlinux 0x98eee248 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x98fa1e20 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x9912b57b uninhibit_secondary_onlining +EXPORT_SYMBOL_GPL vmlinux 0x9914679b cm_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x99188d78 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9973add9 __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x99823cb6 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x9987e6e9 opal_get_sensor_data +EXPORT_SYMBOL_GPL vmlinux 0x99b21874 devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x99d72b97 cpu_remove_dev_attr +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a1735a9 tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x9a2d250f blkg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9a3ddba7 devm_pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x9a49d937 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x9a89dbf7 lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x9aad6540 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9ac805c3 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x9aca444b get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x9acc5876 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x9adcec5a blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x9addfb28 debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0x9ae2488d rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9afa8ead __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x9b2cd430 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9b5f4338 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x9ba2bb2b gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x9bcfb50c fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x9be44b77 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9bf05273 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x9bf23f41 sk_unattached_filter_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9c039c30 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x9c1bc949 bmp085_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x9c47ea78 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x9c5b0f7c pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0x9c79a1ce hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x9c8649ca bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0x9c8ada3a usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x9c9afcf0 regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x9cb3c3c5 fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9cba7d9d ide_set_dma_mode +EXPORT_SYMBOL_GPL vmlinux 0x9cc4f70a register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9cd6f9e6 regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x9d0de438 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x9d0ee261 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x9d138533 percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x9d185fa9 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x9d1d834e eeh_add_device_tree_late +EXPORT_SYMBOL_GPL vmlinux 0x9d22eb1e d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0x9d2b307c rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x9d58ed13 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x9da70677 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x9db37c88 usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x9e02facb __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x9e155e05 user_update +EXPORT_SYMBOL_GPL vmlinux 0x9e4c1e5a extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x9e939071 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x9ea1a918 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x9eab9cb1 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x9ec35b85 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x9ed3f0be virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ee6fb06 devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x9f0664bf dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x9f2eea15 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x9f3f98e1 of_get_nand_on_flash_bbt +EXPORT_SYMBOL_GPL vmlinux 0x9f6a8196 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x9f7e2e57 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x9f808fcf pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x9f839c4f tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x9f8b094d rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x9faf9c91 devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x9fedb268 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xa028cb3a ima_file_check +EXPORT_SYMBOL_GPL vmlinux 0xa04b03f1 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xa04d122e regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0xa0767fa5 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0xa084003e gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0xa0a27fff pci_address_to_pio +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0d8c8a3 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0xa0dc9ff8 ide_dma_end +EXPORT_SYMBOL_GPL vmlinux 0xa0ee8af8 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xa0fd75ae pcibios_remove_pci_devices +EXPORT_SYMBOL_GPL vmlinux 0xa0fd974f ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xa11fdf19 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xa1264fca bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0xa12d929d desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0xa13490bd ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0xa157a2ba ide_get_lba_addr +EXPORT_SYMBOL_GPL vmlinux 0xa1667940 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xa1876d62 pci_restore_ats_state +EXPORT_SYMBOL_GPL vmlinux 0xa19a149d ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xa1a092d8 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xa1b066d4 blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa1b95c1e bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0xa1e0f589 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa20a9d3d i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xa221b12b crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa231bc38 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xa2419e97 thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0xa258c7c7 cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0xa26d61b3 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa271866c fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xa27aa23e ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0xa29e5e54 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xa2b876f3 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xa2d51ae8 lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0xa2da2ad4 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xa2e3f187 get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0xa2e6179c scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0xa2eeec6d ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0xa30457dd devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xa31db28d dma_buf_vunmap +EXPORT_SYMBOL_GPL vmlinux 0xa327c784 pcibios_finish_adding_to_bus +EXPORT_SYMBOL_GPL vmlinux 0xa34af588 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xa36452a9 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa378164e regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa389a49a profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0xa38ff49b sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3a2d9af walk_system_ram_range +EXPORT_SYMBOL_GPL vmlinux 0xa3b18614 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xa3b729a1 mmput +EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0xa3d45d9c register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xa3dd4e5e crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xa3e58492 srp_release_transport +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa3fd39a4 od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0xa41c3e24 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xa436c6d6 pwm_set_polarity +EXPORT_SYMBOL_GPL vmlinux 0xa4463202 register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0xa465fa51 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xa46dfedb remove_phb_dynamic +EXPORT_SYMBOL_GPL vmlinux 0xa4709ef9 system_trusted_keyring +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa48ed416 ide_init_sg_cmd +EXPORT_SYMBOL_GPL vmlinux 0xa49bc738 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xa4bd2366 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0xa4cb75f3 ping_seq_fops +EXPORT_SYMBOL_GPL vmlinux 0xa4ea04ee of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0xa535ca4b zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xa56ca855 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xa58a720b reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xa5959ef5 crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL_GPL vmlinux 0xa5b1fb4d sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0xa5c987b7 ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xa5e06f96 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5efe460 usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xa5f389eb of_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xa5f4056a ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa6167c01 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xa625110d kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0xa6415e10 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xa66bcc04 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0xa6800ab1 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa685a7a3 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xa68972d0 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xa68a315f vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xa6a00671 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xa6a0a273 max77693_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa6b21ef2 dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0xa6c50061 ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa6f45ffa rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xa702d56c usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0xa704acf9 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0xa704d824 extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0xa724257f init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xa728e67b sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xa75312bc call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0xa75811d0 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xa7b13911 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa8239399 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xa8496384 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa85bd9c6 ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0xa8b1a189 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xa8b7290c platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xa8d375b4 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa8fe3b89 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0xa910c407 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa922b66d public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0xa923e774 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa93271a5 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0xa9805ffd evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0xa980af16 RSA_public_key_algorithm +EXPORT_SYMBOL_GPL vmlinux 0xa9a0e607 regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0xa9aa7b66 css_rightmost_descendant +EXPORT_SYMBOL_GPL vmlinux 0xa9c0a645 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xa9ce341e usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0xa9e18049 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9fb74a2 of_device_is_stdout_path +EXPORT_SYMBOL_GPL vmlinux 0xaa4527f9 blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0xaa622e0a ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xaa8e7112 ide_check_ireason +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaaae5abe md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0xab0f065b unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0xab2ccbf1 split_page +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab776f2d devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xabb57ba0 irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0xabb5b383 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xac239917 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xac34345b use_mm +EXPORT_SYMBOL_GPL vmlinux 0xac9fdb16 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xacccbe75 pwm_config +EXPORT_SYMBOL_GPL vmlinux 0xace2481e register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacf56725 nf_queue_entry_release_refs +EXPORT_SYMBOL_GPL vmlinux 0xacfe997e powerpc_firmware_features +EXPORT_SYMBOL_GPL vmlinux 0xad1e25d7 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0xad406df9 tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0xad5ce5c7 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xad8d2717 cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0xad99608c platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xadbf9126 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xade7d90d ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0xadf34c2b cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae3e4eff ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0xae660f53 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xaebfc798 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xaecbaa5c extcon_update_state +EXPORT_SYMBOL_GPL vmlinux 0xaed2adf9 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0xaef5cfa1 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xaf01f351 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0xaf206487 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xaf75e84e kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xafbb5a13 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xafedb4a2 spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0xaff84b5d dbs_check_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb00764b2 tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xb0107e11 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xb03786d5 pci_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0xb05b75e4 rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xb0892d4b edac_subsys +EXPORT_SYMBOL_GPL vmlinux 0xb08a5d43 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xb0b427bb inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0d1656c gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0xb0dfa1c5 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xb0f13621 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb12ab998 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb12bc6f0 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xb13a52a0 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb15e28ff sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0xb15f5822 get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb18c7eb9 serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0xb196b127 tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1bed25d dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0xb1c0c1c2 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xb1d644f1 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb1ef3aca ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0xb1ff572c extcon_find_cable_index +EXPORT_SYMBOL_GPL vmlinux 0xb21fef58 gov_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb2391984 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xb23e35ad subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0xb243ae46 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xb25486b6 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xb26922cd pcibios_find_pci_bus +EXPORT_SYMBOL_GPL vmlinux 0xb28cd178 sec_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xb2e26a83 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb2ec44c7 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0xb2ed48a0 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xb2f0c664 regmap_update_bits_check_async +EXPORT_SYMBOL_GPL vmlinux 0xb2fd4005 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xb30792d0 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xb33ab11d cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xb347bb2c work_busy +EXPORT_SYMBOL_GPL vmlinux 0xb3afce47 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xb3b833b1 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xb3c48e8a posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0xb3c8ae4f kobj_completion_init +EXPORT_SYMBOL_GPL vmlinux 0xb3e44b17 ide_unregister_region +EXPORT_SYMBOL_GPL vmlinux 0xb3e45e66 pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0xb3f9cb11 regmap_update_bits_async +EXPORT_SYMBOL_GPL vmlinux 0xb41eb3e4 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xb4303434 of_irq_parse_pci +EXPORT_SYMBOL_GPL vmlinux 0xb435c58f sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0xb43bc1fb tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4d2f247 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb524e301 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb577d130 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0xb57d3c00 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb58ded0f hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0xb5a0e11e lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0xb5aa10af atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb5ac6f4f tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xb5b177ac sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xb5b5fab3 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xb5c8edf4 btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0xb5c9c8fc srp_remove_host +EXPORT_SYMBOL_GPL vmlinux 0xb5cabb76 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb5cb8145 hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb5f2fc99 scom_find_parent +EXPORT_SYMBOL_GPL vmlinux 0xb60b5707 of_i8042_aux_irq +EXPORT_SYMBOL_GPL vmlinux 0xb6147ae2 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb62fc556 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0xb63268ee rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xb643c250 xics_wake_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb64b9fe2 tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xb65bd3fc add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0xb67b2219 cm_suspend_again +EXPORT_SYMBOL_GPL vmlinux 0xb6870dda ide_queue_sense_rq +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6c1dc31 task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0xb6c262e7 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xb6c635af wm5110_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb6cfe0a2 tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0xb6f590c1 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xb6fe8f74 ata_sas_port_async_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb76002e5 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xb765e39e generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xb7a907e8 regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0xb7cf2b8c crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0xb7d7b991 __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xb7ee99a1 tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0xb7f2f9ba ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0xb7f4c904 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb801f5b7 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xb81689a4 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xb828d373 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xb8ae5b58 cpufreq_table_validate_and_show +EXPORT_SYMBOL_GPL vmlinux 0xb8d22297 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xb8d71d38 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0xb8f54af7 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb94d59cc ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xb95d8197 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb96e50e3 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xb99e7700 rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0xb9a45972 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9f39aef add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xb9f4888b max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xba0a216d transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xba158769 rtas_cancel_event_scan +EXPORT_SYMBOL_GPL vmlinux 0xba1b6bee device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xba1b89b2 tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0xba5b762f ide_dma_sff_read_status +EXPORT_SYMBOL_GPL vmlinux 0xba6e6242 ide_pio_bytes +EXPORT_SYMBOL_GPL vmlinux 0xba7528e8 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xba8e93b7 ide_do_start_stop +EXPORT_SYMBOL_GPL vmlinux 0xbad8f114 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0xbae499d7 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xbae7221b rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb313cf9 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xbb42c36e sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xbb4312be dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xbb5db022 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xbb851cfa dma_buf_kmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xbbd129f9 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xbc0a109b get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xbc3e3b38 uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbc427f39 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xbc4e648e ide_dma_host_set +EXPORT_SYMBOL_GPL vmlinux 0xbc5679c0 tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0xbc688131 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0xbc7da2b9 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xbcac6160 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbcb64fc7 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0xbcbe85cb crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbd0663af crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xbd083c37 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0xbd2498be dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xbd32b7c8 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xbd5cb8b9 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbd6230be tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xbd8a9eff ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xbd954ba9 __giveup_vsx +EXPORT_SYMBOL_GPL vmlinux 0xbda276eb vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0xbdae539f serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0xbdaf5686 get_compat_timeval +EXPORT_SYMBOL_GPL vmlinux 0xbdb7da89 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbddd1565 __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe2b78bf of_get_regulator_init_data +EXPORT_SYMBOL_GPL vmlinux 0xbe37e6b2 __module_address +EXPORT_SYMBOL_GPL vmlinux 0xbe578348 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0xbe7a6ca0 usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xbe83a112 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xbe96dfd8 of_reconfig_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbea23c90 devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0xbea5ff1e static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0xbebaa0a6 of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xbf009b9e usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf153d5f fuse_get_req_for_background +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf3c5900 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0xbf3f47eb module_mutex +EXPORT_SYMBOL_GPL vmlinux 0xbf6a8725 rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0xbf75df71 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xbf935608 dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xbfcfb804 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc01bce04 pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0xc02bec3c usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc065a455 cpu_core_index_of_thread +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc0a218e5 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0cf0921 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xc0d01bc0 percpu_ref_cancel_init +EXPORT_SYMBOL_GPL vmlinux 0xc0d26387 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc0e9ede7 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0xc10a81e5 pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0xc11b45c6 gpiod_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc1343aee crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0xc144fb5a regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0xc14b2a9a ide_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xc1666649 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0xc1734f66 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1783f5b page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xc1c2dc48 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc1d71150 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xc1e868b9 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xc1ed2c9c file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xc1ffd98a crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xc20a696f dma_buf_kunmap +EXPORT_SYMBOL_GPL vmlinux 0xc20d0967 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc231d60a stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc24158fc __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xc269f2b8 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2914681 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xc2c0d95e task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xc2c25342 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xc2cae591 rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xc2d0be9d crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xc2e1951c regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xc2ecb488 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xc3037302 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xc304f9aa hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc3108a87 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc35d3de9 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xc3632191 dma_buf_kmap +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc38102d2 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0xc38147e8 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0xc3824b6b led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xc3854112 get_device +EXPORT_SYMBOL_GPL vmlinux 0xc3890012 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xc3b3f2d1 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xc3bf2677 wm8400_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xc3c36264 ide_release_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0xc3ecc62b fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0xc407a1d4 gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc42f733d extcon_register_interest +EXPORT_SYMBOL_GPL vmlinux 0xc4300d53 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xc445b07f ide_output_data +EXPORT_SYMBOL_GPL vmlinux 0xc44fe177 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc45899a1 ide_pci_setup_ports +EXPORT_SYMBOL_GPL vmlinux 0xc46aa850 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xc47e6f8e jump_label_rate_limit +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4a16a61 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xc4c1dc71 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0xc4c541bf mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc5983eb6 ide_dma_test_irq +EXPORT_SYMBOL_GPL vmlinux 0xc5ec42b5 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xc60227b7 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc6150e23 regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc628a8de ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xc6322593 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xc636009f ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xc63a1109 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc6713aab blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0xc68aa252 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xc68b8cd5 ide_do_test_unit_ready +EXPORT_SYMBOL_GPL vmlinux 0xc690866c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xc6e25e99 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xc6e54e46 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xc6f327ab pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xc724c0ba put_pid +EXPORT_SYMBOL_GPL vmlinux 0xc72ca172 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc7482d81 extcon_set_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7ba18f5 rio_unlock_device +EXPORT_SYMBOL_GPL vmlinux 0xc7c33db5 arizona_dev_init +EXPORT_SYMBOL_GPL vmlinux 0xc7c6391c mpi_set_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc7d90f85 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xc7e39bca ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc82f6971 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xc8396903 ide_undecoded_slave +EXPORT_SYMBOL_GPL vmlinux 0xc8443e34 regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0xc85040de ide_pci_init_one +EXPORT_SYMBOL_GPL vmlinux 0xc876d540 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc9113d0d pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc91c9da4 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xc9452e6e da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9590cca rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0xc9641b48 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0xc9678793 ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0xc97d1140 cpufreq_cooling_get_level +EXPORT_SYMBOL_GPL vmlinux 0xc9bedef8 __mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xc9cfa673 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0xc9cfa97f of_pci_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9fb8482 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0xca0028f0 srp_rport_add +EXPORT_SYMBOL_GPL vmlinux 0xca32a2aa ide_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xca60ee52 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca847169 spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca88d5bd srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xca8fef66 fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0xca97bf81 wait_for_tpm_stat +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcb010336 blk_queue_bypass_start +EXPORT_SYMBOL_GPL vmlinux 0xcb15eee9 sdhci_pci_get_data +EXPORT_SYMBOL_GPL vmlinux 0xcb469d2b ddebug_add_module +EXPORT_SYMBOL_GPL vmlinux 0xcb8faccd blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xcba4d35a perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xcbaf750a wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xcbcf78bf subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc044555 pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc250049 balloon_mapping_alloc +EXPORT_SYMBOL_GPL vmlinux 0xcc3a94c9 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xcc3c8900 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0xcc664fb1 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0xcc7f05ff led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xcc85fcb6 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0xcc8c4990 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xcc8d062e mdio_mux_init +EXPORT_SYMBOL_GPL vmlinux 0xccb868f5 debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0xccc5bee8 rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcd082813 virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0xcd17f2c2 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xcd3f1cd4 ide_read_status +EXPORT_SYMBOL_GPL vmlinux 0xcd4bdf3b netlink_alloc_skb +EXPORT_SYMBOL_GPL vmlinux 0xcd58ca24 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0xcd720055 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcd7e005d unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xcd825164 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcda4e5ed vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xcdc2a0bc show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xcdc4da6f aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcde38c34 ata_sas_port_async_resume +EXPORT_SYMBOL_GPL vmlinux 0xce0807a3 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xce0b9b59 max77693_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xce0d9bab srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xce1e498f transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xce2a590c pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xce4316be scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xce46e140 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xce641bce ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0xce805dbe tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xce809e81 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0xceb1f126 mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0xcebd5403 pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0xcebec2f3 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xcec1a284 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xcf0a0133 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xcf4e8578 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xcf54ea93 async_unregister_domain +EXPORT_SYMBOL_GPL vmlinux 0xcf6b0ab0 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xcf75e0c7 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xcf7f8318 each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0xcf9022f2 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0xcf9893d6 of_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0xcf998273 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xcf99a2b7 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xcfc3b087 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfcab889 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd0060e33 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xd015b1aa noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd0710744 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xd07d42c2 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c09d2a blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0xd0c6073e usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xd0e10941 __online_page_increment_counters +EXPORT_SYMBOL_GPL vmlinux 0xd0ffe51b inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xd121de22 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xd124a9a8 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0xd133ddf5 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0xd14bc4d9 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xd14f9eb7 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1688b72 wakeup_source_drop +EXPORT_SYMBOL_GPL vmlinux 0xd16a423a __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0xd17b88c5 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0xd18d9b4d tps80031_ext_power_req_config +EXPORT_SYMBOL_GPL vmlinux 0xd18de285 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1e59b9a stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xd1f66065 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd22734b4 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd2327a12 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0xd2551510 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xd2575f9f palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0xd26f0ae0 __netpoll_free_async +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2869ebd usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xd28ecf2f extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd2b2a8d7 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xd2c45ea4 of_pci_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0xd2d92827 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xd3073cfa pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xd3143f56 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd333ee1f ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xd3465a99 ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0xd34a6516 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xd3581339 regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xd366af78 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xd385dcbb ide_setting_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd39a692b unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0xd39b7b14 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd3ac3c6d irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0xd3fac5c3 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd46681a9 usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4e26db5 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xd4f31470 alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0xd5066350 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xd5379731 wakeup_source_prepare +EXPORT_SYMBOL_GPL vmlinux 0xd53ff3b8 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xd582227a leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xd5a2e8e8 ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5c4094e pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xd5d6a9a8 crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0xd5e042b6 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xd6030e52 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xd6119ff6 rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0xd614efc2 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0xd6451a74 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd674e0bc tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0xd69141f6 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xd6997c2a ide_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xd6ef6866 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd745238f power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xd74e835d regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd76c46cb usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd786498d sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xd7974fa5 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xd7a134f8 rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0xd7a6fe91 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xd7c35c11 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd808b0c5 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd8263870 mmu_slb_size +EXPORT_SYMBOL_GPL vmlinux 0xd828a786 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0xd8448362 dma_buf_attach +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd87299e7 pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd87fc0a0 usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0xd8affb1b ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xd8b0425b vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0xd8c5ea68 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xd8dd455a regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd914c6d3 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xd91e1968 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0xd9356be4 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xd93c416c usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xd942d353 ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0xd97334a4 pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0xd980d6bb sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xd9a36903 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd9ac85dc regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0xd9bddbbe perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0xd9cd7844 ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xd9e893c4 set_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xda2b244e pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xda44cb37 setup_charger_manager +EXPORT_SYMBOL_GPL vmlinux 0xda5d0409 devm_regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xda5d4b66 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xda5d9d08 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xda7b6121 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xda850d36 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0xdada2633 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xdadfc39b tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xdae81686 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb28fd8c user_read +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdb9b0d1b crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xdba80fc1 of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc1b1cb9 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0xdc1e15f1 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xdc402722 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xdc48db73 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xdc694f56 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xdc78653b ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc86f1ab nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9948a5 irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0xdc9c1cae tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdce5efb7 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0xdceb1520 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xdcfbb6f1 nl_table +EXPORT_SYMBOL_GPL vmlinux 0xdcfbd89d ide_pad_transfer +EXPORT_SYMBOL_GPL vmlinux 0xdd06c4fb ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xdd0d4a26 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd30be5a usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xdd323f04 regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xdd391eff profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd729424 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0xdd7c48b9 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xdd8c50a4 balloon_devinfo_alloc +EXPORT_SYMBOL_GPL vmlinux 0xdda3eb69 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xddd381b6 ide_allocate_dma_engine +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xdddae772 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xde162333 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0xde230ff3 rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0xde294c84 rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xde5e2587 sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0xde82f65a ping_err +EXPORT_SYMBOL_GPL vmlinux 0xde98ed18 ide_build_dmatable +EXPORT_SYMBOL_GPL vmlinux 0xdedd1f80 of_irq_parse_and_map_pci +EXPORT_SYMBOL_GPL vmlinux 0xdee93ea8 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xdef0cc2e tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf1ded95 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xdf619072 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0xdf6b2744 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xdf814071 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0xdf9d0362 virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0xdfa93cef scom_controller +EXPORT_SYMBOL_GPL vmlinux 0xdfac0775 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xdfe3c731 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xdffaec80 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe0483253 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe06de26f cgroup_is_descendant +EXPORT_SYMBOL_GPL vmlinux 0xe07fd696 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe0acf1e5 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xe0affbcf ide_host_register +EXPORT_SYMBOL_GPL vmlinux 0xe0e3720d sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xe0f79ec2 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xe0fda08b usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xe10614cc xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xe11063e0 pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0xe12bf7d1 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0xe1376cd7 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xe13bf8fd napi_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xe141639e sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xe1432212 eeh_add_sysfs_files +EXPORT_SYMBOL_GPL vmlinux 0xe1775ee7 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0xe1b82fc3 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0xe1bd6c99 rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0xe1bf9e5c sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0xe1eb87f6 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xe218af59 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xe23fbd20 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xe26fbf72 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xe27d7fe3 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xe2a1916d pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xe2b3a9db pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2b56b3f sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xe2be64b7 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xe2cb4065 alarm_start +EXPORT_SYMBOL_GPL vmlinux 0xe2e809a8 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xe2f6ca22 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xe2f84266 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe3104589 class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xe34743a8 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xe356b7a8 usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0xe3624f44 list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe38ef88c relay_close +EXPORT_SYMBOL_GPL vmlinux 0xe3ce60c0 skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0xe3d3c7ce sdhci_pci_o2_resume +EXPORT_SYMBOL_GPL vmlinux 0xe3d7750e btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0xe419e200 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe436e62b gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0xe471ed49 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xe488adcc skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xe48cc42e srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xe4aa99f7 usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0xe4bc1b5d init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xe4c031f8 btree_merge +EXPORT_SYMBOL_GPL vmlinux 0xe4c4b28f gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xe4d701ab blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0xe4f75408 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xe5089f4f ide_end_rq +EXPORT_SYMBOL_GPL vmlinux 0xe515ca18 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0xe51c040f register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xe52238fc irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0xe52ff725 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0xe544fc3b vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xe5540302 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fefb5 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xe59f9d45 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xe5bbba5f cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0xe5c7f317 wm8400_block_read +EXPORT_SYMBOL_GPL vmlinux 0xe5cd8ad5 cgroup_add_cftypes +EXPORT_SYMBOL_GPL vmlinux 0xe5f17d85 devm_spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xe64f98a0 serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6549549 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe6a851ce pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0xe6aa1b3f register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xe6ae8922 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xe6c68334 ddebug_remove_module +EXPORT_SYMBOL_GPL vmlinux 0xe6ca5685 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe711f3a5 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xe717c783 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe78646be rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0xe7a6db3c pci_reset_bridge_secondary_bus +EXPORT_SYMBOL_GPL vmlinux 0xe7cf16b6 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xe7d32b81 ide_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xe7daca48 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0xe7e3fabd tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe7ef4e4c usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xe7f9ae09 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe816c9a3 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe82a27a7 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xe8385317 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe85c55e7 btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe85f1654 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe885b433 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xe896f609 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe89bd243 ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xe8a429c4 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xe8b6ddde key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0xe8cc24e2 dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0xe8f6f754 key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0xe8fbcf31 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xe90afb2d pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe93e674e ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xe9455bd2 ide_register_region +EXPORT_SYMBOL_GPL vmlinux 0xe994b1e8 dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xe9a88270 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xe9cef74b pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xe9e12d24 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0xe9e19249 tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0xe9e238da crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea40bb42 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea452525 blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0xea5e653e lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0xea628c20 bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0xea6a4e0d dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0xea8c8cd9 __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xea8da37d register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xeaba549e sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xeaf22f23 irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0xeb001b45 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xeb18a554 regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0xeb1c3628 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xeb4b0e61 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xeb5126fc alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0xeb55f7bb regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xeb5f3289 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xeb60d99b regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0xeb8ae736 klist_init +EXPORT_SYMBOL_GPL vmlinux 0xebec57c4 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xebf7b3e2 crypto_lookup_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec479398 sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0xec54073c cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0xec631f34 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0xec76cd27 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xec886e38 bmp085_detect +EXPORT_SYMBOL_GPL vmlinux 0xecaa2240 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xecdc600c regmap_fields_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xece7c0d2 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0xecf0f029 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xecfe6caa inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0xed0eecb2 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xed360b1f ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xed3a5ed2 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xed432850 md_run +EXPORT_SYMBOL_GPL vmlinux 0xed57e97c crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xed999f44 dma_buf_kunmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xedae61f9 __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xede5b7bb sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0xede7eb2f mmu_psize_defs +EXPORT_SYMBOL_GPL vmlinux 0xedf0e8c4 irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0xee01661d uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0xee4bdf96 sysfs_remove_device_from_node +EXPORT_SYMBOL_GPL vmlinux 0xee6b71c4 syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0xee891cc0 srp_tmo_valid +EXPORT_SYMBOL_GPL vmlinux 0xee8da4ca kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xee9bbe5a agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0xeebc9f94 ide_queue_pc_tail +EXPORT_SYMBOL_GPL vmlinux 0xeed2fd1e device_rename +EXPORT_SYMBOL_GPL vmlinux 0xef19ca8e usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0xef214ab3 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xef64e5af virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef6ed36b ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xef94b77e led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0xefe0cc97 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xeffa6b8f __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xf02e7600 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xf0380a1f transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xf04e665e hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xf0653ed4 ide_map_sg +EXPORT_SYMBOL_GPL vmlinux 0xf0c4d9c0 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xf0e5f9b3 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0xf0f5dbc2 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xf105d00d ide_in_drive_list +EXPORT_SYMBOL_GPL vmlinux 0xf10db2f9 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xf1468c65 irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0xf1577b1c ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xf158f170 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xf15bbb50 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1a62b6f of_i8042_kbd_irq +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1c316c3 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0xf1c4eac2 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0xf1cf8c50 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xf1d417d1 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0xf1e73222 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xf1e7ff30 regulator_can_change_voltage +EXPORT_SYMBOL_GPL vmlinux 0xf203b133 ping_close +EXPORT_SYMBOL_GPL vmlinux 0xf21b7a38 regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0xf21c14c3 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf23dc756 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xf2455111 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xf25c36f4 device_store_int +EXPORT_SYMBOL_GPL vmlinux 0xf260ebaf tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0xf2683839 usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0xf26c90e9 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0xf274f4f9 cpufreq_governor_dbs +EXPORT_SYMBOL_GPL vmlinux 0xf27977e2 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xf2807da4 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xf289717e regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xf298b1b1 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xf29de5b7 powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0xf2d23a89 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0xf2d904e4 pcibios_add_pci_devices +EXPORT_SYMBOL_GPL vmlinux 0xf2f077cc pkey_id_type_name +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30513fd bmp085_remove +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf324a5a8 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0xf339b1d7 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xf33d8fb9 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xf34cdbd0 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xf34dbaad crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xf3b3dbe4 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3e20db7 irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0xf3e393be tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0xf434510f fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4a40b05 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xf4b921ba driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf4cb12c7 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xf4cd015c ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xf4e466f9 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf5080749 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xf52bfcbe gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf58f6a1e pci_intx_mask_supported +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5d66427 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0xf5fef4e3 wm5110_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf61eb511 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xf626f55b device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xf6352125 iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0xf661be6a rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xf6633664 pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0xf66f7dfc regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0xf67cdab3 dma_buf_map_attachment +EXPORT_SYMBOL_GPL vmlinux 0xf69bb686 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xf6b73a7a arizona_clk32k_enable +EXPORT_SYMBOL_GPL vmlinux 0xf6dad09d wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf6e7cbc1 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf7015f17 devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xf706f46b sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xf71b1380 of_get_dma_window +EXPORT_SYMBOL_GPL vmlinux 0xf71c5c90 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0xf7237c14 scom_map_device +EXPORT_SYMBOL_GPL vmlinux 0xf7290a79 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xf783a658 dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0xf7a77702 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xf7e08906 thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0xf7faefed ide_host_free +EXPORT_SYMBOL_GPL vmlinux 0xf816c866 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf837e0eb unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xf87e7d2f ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8c29be0 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xf8c91d59 init_phb_dynamic +EXPORT_SYMBOL_GPL vmlinux 0xf8e398fc memstart_addr +EXPORT_SYMBOL_GPL vmlinux 0xf8ebef79 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8fe3d0b kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0xf9017219 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0xf9154bff inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf932015f __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf9426eb7 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0xf942cf8e ide_pci_dma_base +EXPORT_SYMBOL_GPL vmlinux 0xf959e8fc ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xf96160fe crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xf970b207 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xf97af5bf ping_bind +EXPORT_SYMBOL_GPL vmlinux 0xf97cccde dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0xf98f365b sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xf9995c20 pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9a57910 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xf9c17218 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa3aad98 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xfa5dbf20 cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0xfa888de7 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xfa8d2bfb ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0xfa8f993a crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xfa901b31 compat_get_timespec +EXPORT_SYMBOL_GPL vmlinux 0xfab60503 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xfab98779 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xfac3d891 do_rw_taskfile +EXPORT_SYMBOL_GPL vmlinux 0xfacb86c5 ide_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xfaccd50f max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xfad9bd3e ide_dma_setup +EXPORT_SYMBOL_GPL vmlinux 0xfae5fbe9 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0xfb15cd45 of_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xfb256cef put_device +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb401141 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xfb52b77d __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfbaf8ea2 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0xfbb0469b scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xfbbedefd of_prop_next_string +EXPORT_SYMBOL_GPL vmlinux 0xfbbee1d4 get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0xfbc09473 rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0xfbc7246a extcon_unregister_interest +EXPORT_SYMBOL_GPL vmlinux 0xfbff60bb relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc201b66 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0xfc482962 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xfc53f9b0 arizona_of_get_type +EXPORT_SYMBOL_GPL vmlinux 0xfc93e5b4 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0xfcc35dc2 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfce37143 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xfce8d0d0 tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0xfd07eaad cpu_remove_dev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xfd096e9c __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0xfd0fd6b0 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xfd15bd58 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfd2f2f6a ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xfd43581c ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xfdc9469b rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xfdd4a6eb bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xfdf14bec pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xfdfcde75 irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0xfe005167 reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfe1fa0db of_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0xfe6fb073 reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xfe826e90 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xfe899b8f posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfe8ec301 ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0xfe902dd0 dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0xfe949739 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfeae1f9f pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0xfeb6436c ide_pci_resume +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfeea31d9 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff338a7c debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0xff559a75 pcibios_unmap_io_space +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xffa86bed i2c_bus_type --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/ppc64el/generic.compiler +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/ppc64el/generic.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2 --- linux-3.13.0.orig/debian.master/abi/3.13.0-46.76/ppc64el/generic.modules +++ linux-3.13.0/debian.master/abi/3.13.0-46.76/ppc64el/generic.modules @@ -0,0 +1,2921 @@ +3c59x +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250_dw +8390 +88pm800 +88pm805 +88pm80x +88pm80x_onkey +88pm860x_battery +88pm860x_bl +88pm860x_charger +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +acard-ahci +acecad +acenic +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5380 +ad5398 +ad5421 +ad5446 +ad5449 +ad5504 +ad5624r_spi +ad5686 +ad5755 +ad5764 +ad5791 +ad714x +ad714x-i2c +ad714x-spi +ad7266 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad7476 +ad7791 +ad7793 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad7923 +ad8366 +ad9523 +adcxx +adf4350 +adfs +adi +adis16080 +adis16130 +adis16136 +adis16260 +adis16400 +adis16480 +adis_lib +adjd_s311 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1275 +adm8211 +adm9240 +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +ads1015 +ads7828 +ads7846 +ads7871 +ad_sigma_delta +adt7310 +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adv7180 +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +af_802154 +af9013 +af9033 +af_alg +affs +af_key +af_packet_diag +af-rxrpc +ah4 +ah6 +ahci +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +airo +ak8975 +algif_hash +algif_skcipher +ali-ircc +alim7101_wdt +altera_jtaguart +altera-stapl +altera_uart +alx +amc6821 +amd8111e +ams369fg06 +analog +anatop-regulator +ansi_cprng +anubis +aoe +apds9300 +apds9802als +apds990x +appletalk +appletouch +applicom +ar5523 +ar7part +arc4 +arc_emac +arcmsr +arcnet +arc-rawmode +arc-rimi +arc_uart +arizona-i2c +arizona-spi +arkfb +arptable_filter +arp_tables +arpt_mangle +as3711_bl +as3711-regulator +as3722-regulator +as5011 +asc7621 +asix +ast +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at86rf230 +at91_ether +ata_piix +atbm8830 +aten +ath +ath10k_core +ath10k_pci +ath3k +ath5k +ath6kl_core +ath6kl_sdio +ath6kl_usb +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atm +atmel +atmel_mxt_ts +atmel_pci +atmel-ssc +atmtcp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522_common +au8522_decoder +au8522_dig +aufs +auo_k1900fb +auo_k1901fb +auo_k190x +auo-pixcir-ts +authenc +authencesn +auth_rpcgss +autofs4 +avmfritz +ax25 +ax88179_178a +b1 +b1dma +b1pci +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bch +bcm203x +bcm3510 +bcm5974 +bcma +bd6107 +be2iscsi +be2net +befs +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluetooth +bma150 +bma180 +bmp085-i2c +bmp085-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpa10x +bpck +bpqether +bq2415x_charger +bq24190_charger +bq24735-charger +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bsr +bt878 +btcoexist +btcx-risc +btmrvl +btmrvl_sdio +btrfs +btsdio +bttv +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +bw-qcam +c4 +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +caif_usb +caif_virtio +camellia_generic +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5_generic +cast6_generic +cast_common +cb710 +cb710-mmc +cc770 +cc770_isa +cc770_platform +c_can +c_can_pci +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch7006 +chipreg +chnl_net +cifs +cirrus +cirrusfb +clip +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm36651 +cma3000_d0x +cma3000_d0x_i2c +cmac +cmdlinepart +cmtp +cnic +cobra +coda +com20020 +com20020-pci +com90io +com90xx +comm +configfs +cordic +core +cpc925_edac +cpia2 +cpu-notifier-error-inject +c-qcam +cramfs +crc32 +crc7 +crc8 +crc-ccitt +crc-itu-t +cros_ec +cros_ec_i2c +cros_ec_keyb +cros_ec_spi +cryptd +cryptoloop +crypto_null +crypto_user +cs5345 +cs53l32a +csiostor +ctr +cts +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cx18 +cx22700 +cx22702 +cx231xx +cx231xx-dvb +cx2341x +cx24110 +cx24113 +cx24116 +cx24123 +cx25821 +cx25840 +cx82310_eth +cx8800 +cx8802 +cx88-blackbird +cx88-dvb +cx88-vp3054-i2c +cx88xx +cxacru +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cy8ctmg110_ts +cyapa +cyber2000fb +cyclades +cypress_firmware +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da9052-battery +da9052_bl +da9052-hwmon +da9052_onkey +da9052-regulator +da9052_tsi +da9052_wdt +da9055-hwmon +da9055_onkey +da9055-regulator +da9055_wdt +da9063-regulator +da9210-regulator +DAC960 +db9 +dc395x +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +ddbridge +decnet +deflate +defxx +denali +denali_pci +des_generic +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +diskonchip +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bio-prison +dm-bufio +dm-cache +dm-cache-cleaner +dm-cache-mq +dm-crypt +dm-delay +dm-flakey +dm-log +dm-log-userspace +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-switch +dm-thin-pool +dm-verity +dmx3191d +dm-zero +dnet +dn_rtmsg +docg3 +docg4 +drbd +drm +drm_kms_helper +drm_usb +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2781_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dummy +dummy-irq +dvb-bt8xx +dvb-core +dvb-pll +dvb-ttpci +dvb-ttusb-budget +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-af9035 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6007 +dvb-usb-az6027 +dvb-usb-ce6230 +dvb-usb-cinergyT2 +dvb-usb-cxusb +dvb-usb-dib0700 +dvb-usb-dibusb-common +dvb-usb-dibusb-mb +dvb-usb-dibusb-mc +dvb-usb-digitv +dvb-usb-dtt200u +dvb-usb-dtv5100 +dvb-usb-dw2102 +dvb-usb-ec168 +dvb-usb-friio +dvb-usb-gl861 +dvb-usb-gp8psk +dvb-usb-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-rtl28xxu +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb_usb_v2 +dvb-usb-vp702x +dvb-usb-vp7045 +dw_dmac +dw_dmac_core +dw_dmac_pci +dynapro +e100 +e1000 +e1000e +e4000 +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_vlan +ec100 +edac_core +edt-ft5x06 +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efs +egalax_ts +elo +em28xx +em28xx-dvb +em28xx-rc +emc1403 +emc2103 +emc6w201 +em_canid +em_cmp +em_ipset +em_meta +em_nbyte +ems_pci +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +eni +enic +epat +epia +epic100 +eql +esas2r +esd_usb2 +esi-sir +esp4 +esp6 +ethoc +evbug +exofs +extcon-adc-jack +extcon-gpio +extcon-max77693 +extcon-max8997 +extcon-palmas +f2fs +f75375s +fakelb +fan53555 +farsync +faulty +fb_ddc +fb_sys_fops +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fealnx +ff-memless +firedtv +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +fit2 +fit3 +fixed +flexcan +floppy +fm801-gp +fmc +fmc-chardev +fmc-fakedev +fmc-trivial +fmc-write-eeprom +forcedeth +fore_200e +freevxfs +friq +frpw +fsa9480 +fscache +fsl_elbc_nand +ftl +fujitsu_ts +g450_pll +g760a +g762 +gamecon +gameport +garp +gcm +gdth +generic +generic-adc-battery +generic_bl +gen_probe +gf128mul +gf2k +gfs2 +ghash-generic +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +goldfishfb +gp2ap002a00f +gp2ap020a00f +gpio +gpio-74x164 +gpio-addr-flash +gpio-adnp +gpio-adp5588 +gpio-amd8111 +gpio-arizona +gpio_backlight +gpio-charger +gpio-da9052 +gpio-da9055 +gpio-dwapb +gpio-fan +gpio-generic +gpio-grgpio +gpio-ir-recv +gpio-janz-ttl +gpio-kempld +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-rdc321x +gpio-regulator +gpio_tilt_polled +gpio-tps65912 +gpio-ts5500 +gpio-viperboard +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +grcan +gre +grip +grip_mp +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_jl2005bcd +gspca_kinect +gspca_konica +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_nw80x +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_se401 +gspca_sn9c2028 +gspca_sn9c20x +gspca_sonixb +gspca_sonixj +gspca_spca1528 +gspca_spca500 +gspca_spca501 +gspca_spca505 +gspca_spca506 +gspca_spca508 +gspca_spca561 +gspca_sq905 +gspca_sq905c +gspca_sq930x +gspca_stk014 +gspca_stk1135 +gspca_stv0680 +gspca_stv06xx +gspca_sunplus +gspca_t613 +gspca_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +hamachi +hampshire +hangcheck-timer +hanwang +hci +hci_uart +hci_vhci +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hid +hid-a4tech +hid-apple +hid-appleir +hid-aureal +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-elo +hid-emsff +hid-ezkey +hid-gaff +hid-generic +hid-gyration +hid-holtekff +hid-holtek-kbd +hid-holtek-mouse +hid-huion +hid-icade +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-lenovo-tpkbd +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-rmi +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-isku +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-konepure +hid-roccat-kovaplus +hid-roccat-lua +hid-roccat-pyra +hid-roccat-ryos +hid-roccat-savu +hid-saitek +hid-samsung +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-gyro-3d +hid-sensor-hub +hid-sensor-iio-common +hid-sensor-magn-3d +hid-sensor-trigger +hid-sjoy +hid-sony +hid-speedlink +hid-steelseries +hid-sunplus +hid-thingm +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-xinmo +hid-zpff +hid-zydacron +hih6130 +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc6352 +hopper +hostap +hostap_pci +hostap_plx +hp100 +hpfs +hpilo +hpsa +hptiop +hsi +hsi_char +hsr +htc-pasic3 +htu21 +huawei_cdc_ncm +hvcs +hvcserver +hwa-hc +hwa-rc +hwmon-vid +hx8357 +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-arb-gpio-challenge +i2c-cbus-gpio +i2c-designware-core +i2c-designware-pci +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-hid +i2c-i801 +i2c-isch +i2c-kempld +i2c-matroxfb +i2c-mpc +i2c-mux +i2c-mux-gpio +i2c-mux-pca9541 +i2c-mux-pca954x +i2c-nforce2 +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-piix4 +i2c-simtec +i2c-sis5595 +i2c-sis630 +i2c-sis96x +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-via +i2c-viapro +i2c-viperboard +i2c-xiic +i2o_block +i2o_bus +i2o_core +i2o_proc +i2o_scsi +i40e +i40evf +i5k_amb +i6300esb +i740fb +ib_addr +ib_cm +ib_core +ib_ehca +ib_ipoib +ib_iser +ib_isert +ib_mad +ibmaem +ibmpex +ib_mthca +ibmvfc +ib_qib +ib_sa +ib_srp +ib_srpt +ib_ucm +ib_umad +ib_uverbs +icom +ics932s401 +ideapad_slidebar +idt77252 +idtcps +idt_gen2 +ieee802154 +ifb +iforce +igb +igbvf +iguanair +iio_hwmon +iio-trig-interrupt +iio-trig-sysfs +ili210x +ili922x +ili9320 +imm +imon +ims-pcu +imx074 +imx_thermal +ina209 +ina2xx +industrialio +industrialio-triggered-buffer +inet_diag +inexio +inftl +initio +input-polldev +int51x1 +intel_vr_nor +interact +interval_tree_test +inv-mpu6050 +ioc4 +ip6_gre +ip6table_filter +ip6table_mangle +ip6table_nat +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_MASQUERADE +ip6t_mh +ip6t_NPT +ip6t_REJECT +ip6t_rpfilter +ip6t_rt +ip6t_SYNPROXY +ip6_tunnel +ip6_vti +ipack +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipip +ipmi_devintf +ipmi_poweroff +ipmi_si +ipmi_watchdog +ipoctal +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netnet +ip_set_hash_netport +ip_set_hash_netportnet +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_MASQUERADE +ipt_REJECT +ipt_rpfilter +ipt_SYNPROXY +ipt_ULOG +ip_tunnel +ip_vs +ip_vs_dh +ip_vs_ftp +ip_vs_lblc +ip_vs_lblcr +ip_vs_lc +ip_vs_nq +ip_vs_pe_sip +ip_vs_rr +ip_vs_sed +ip_vs_sh +ip_vs_wlc +ip_vs_wrr +ip_vti +ipw2100 +ipw2200 +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sanyo-decoder +ir-sony-decoder +irtty-sir +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isl29003 +isl29020 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp1704_charger +it913x-fe +itd1000 +itg3200 +ivtv +ivtvfb +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwldvm +iwlegacy +iwlmvm +iwlwifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jsm +kafs +kalmia +kbic +kbtab +kempld-core +kempld_wdt +kernelcapi +keyspan_remote +kfifo_buf +khazad +kingsun-sir +ks0108 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kvaser_usb +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +l2tp_ppp +l4f00242t03 +l64781 +lanai +lapb +lapbether +latch-addr-flash +lattice-ecp3-config +lcd +ld9040 +lec +leds-88pm860x +leds-bd2802 +leds-blinkm +leds-da9052 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lm3533 +leds-lm355x +leds-lm3642 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lp5562 +leds-lp55xx-common +leds-lp8501 +leds-lp8788 +leds-lt3593 +leds-max8997 +leds-mc13783 +leds-ot200 +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pca9685 +leds-pwm +leds-regulator +leds-tca6507 +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-camera +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-oneshot +ledtrig-timer +ledtrig-transient +lg2160 +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libceph +libcrc32c +libcxgbi +libertas +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +lineage-pem +linear +lirc_dev +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc +llc2 +ll_temac +lm25066 +lm3533-als +lm3533_bl +lm3533-core +lm3533-ctrlbank +lm3630a_bl +lm3639_bl +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm8333 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95234 +lm95241 +lm95245 +lms283gf05 +lms501kf03 +lnbp21 +lnbp22 +lockd +lp +lp3971 +lp3972 +lp855x_bl +lp8727_charger +lp8755 +lp8788_bl +lp8788-charger +lpc_ich +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc2978 +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltv350qv +lv5207lp +lz4 +lz4_compress +lz4hc +lz4hc_compress +m25p80 +m2m-deinterlace +m52790 +m88rs2000 +ma600-sir +mac80211 +mac80211_hwsim +mac802154 +macb +mac-celtic +mac-centeuro +mac-croatian +mac-cyrillic +mac-gaelic +mac-greek +mac-iceland +mac-inuit +mac-roman +mac-romanian +mac-turkish +macvlan +macvtap +mag3110 +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix-keymap +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16064 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max197 +max2165 +max3100 +max34440 +max517 +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77686 +max77693 +max8649 +max8660 +max8688 +max8903_charger +max8907 +max8907-regulator +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8973-regulator +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-i2c +mc13xxx-regulator-core +mc13xxx-spi +mc44s803 +mceusb +mcp2120-sir +mcp251x +mcp3021 +mcp320x +mcp3422 +mcp4725 +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +md4 +mdio +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memory-notifier-error-inject +memstick +mena21_wdt +metronomefb +mfd +mga +michael_mic +microread +microread_i2c +mii +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mlx5_core +mlx5_ib +mma8450 +mmc_block +mmc_spi +mms114 +moxa +mpoa +mpr121_touchkey +mpt2sas +mpt3sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrf24j40 +mrp +mrst_max3110 +ms_block +msdos +msp3400 +mspro_block +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +mv88e6060 +mv88e6xxx_drv +mvmdio +mvsas +mvumi +mwifiex +mwifiex_pcie +mwifiex_sdio +mwifiex_usb +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxser +myri10ge +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +nau7802 +nbd +nci +ncpfs +ne2k-pci +neofb +net1080 +netconsole +netjet +netlink_diag +netprio_cgroup +netrom +netxen_nic +newtonkbd +nfc +nfc_digital +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +nf_conntrack_ftp +nf_conntrack_h323 +nf_conntrack_ipv4 +nf_conntrack_ipv6 +nf_conntrack_irc +nf_conntrack_netbios_ns +nf_conntrack_netlink +nf_conntrack_pptp +nf_conntrack_proto_dccp +nf_conntrack_proto_gre +nf_conntrack_proto_sctp +nf_conntrack_proto_udplite +nf_conntrack_sane +nf_conntrack_sip +nf_conntrack_snmp +nf_conntrack_tftp +nfcsim +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_ipv4 +nf_nat_ipv6 +nf_nat_irc +nf_nat_pptp +nf_nat_proto_dccp +nf_nat_proto_gre +nf_nat_proto_sctp +nf_nat_proto_udplite +nf_nat_sip +nf_nat_snmp_basic +nf_nat_tftp +nfnetlink +nfnetlink_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nfsv2 +nfsv3 +nfsv4 +nf_synproxy_core +nf_tables +nf_tables_arp +nf_tables_bridge +nf_tables_ipv4 +nf_tables_ipv6 +nft_chain_nat_ipv4 +nft_chain_nat_ipv6 +nft_chain_route_ipv4 +nft_chain_route_ipv6 +nft_compat +nft_counter +nft_ct +nft_exthdr +nft_hash +nftl +nft_limit +nft_log +nft_meta +nft_nat +nft_rbtree +nft_reject_ipv4 +ngene +n_hdlc +nicstar +nilfs2 +niu +nlmon +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +nls_cp737 +nls_cp775 +nls_cp850 +nls_cp852 +nls_cp855 +nls_cp857 +nls_cp860 +nls_cp861 +nls_cp862 +nls_cp863 +nls_cp864 +nls_cp865 +nls_cp866 +nls_cp869 +nls_cp874 +nls_cp932 +nls_cp936 +nls_cp949 +nls_cp950 +nls_euc-jp +nls_iso8859-1 +nls_iso8859-13 +nls_iso8859-14 +nls_iso8859-15 +nls_iso8859-2 +nls_iso8859-3 +nls_iso8859-4 +nls_iso8859-5 +nls_iso8859-6 +nls_iso8859-7 +nls_iso8859-9 +nls_koi8-r +nls_koi8-ru +nls_koi8-u +nls_utf8 +nosy +notifier-error-inject +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc-ircc +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +null_blk +nvidiafb +nvme +nxt200x +nxt6000 +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ocrdma +of_mmc_spi +ofpart +old_belkin-sir +omfs +on20 +on26 +onenand +opencores-kbd +openvswitch +oprofile +or51132 +or51211 +orinoco +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osd +osdblk +osst +output +ov2640 +ov5642 +ov6650 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +p54common +p54pci +p54spi +p54usb +p8022 +p8023 +palmas-regulator +paride +parport +parport_ax88796 +parport_pc +parport_serial +pata_ali +pata_amd +pata_arasan_cf +pata_artop +pata_atiixp +pata_atp867x +pata_cmd640 +pata_cmd64x +pata_cs5520 +pata_cs5530 +pata_cs5536 +pata_cypress +pata_efar +pata_hpt366 +pata_hpt37x +pata_hpt3x2n +pata_hpt3x3 +pata_it8213 +pata_it821x +pata_jmicron +pata_legacy +pata_marvell +pata_mpiix +pata_netcell +pata_ninja32 +pata_ns87410 +pata_ns87415 +pata_of_platform +pata_oldpiix +pata_opti +pata_optidma +pata_pdc2027x +pata_pdc202xx_old +pata_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sis +pata_sl82c105 +pata_triflex +pata_via +pc300too +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_phub +pch_uart +pci +pci200syn +pci-stub +pcnet32 +pcrypt +pcspkr +pcwd_pci +pcwd_usb +pd +pda_power +pdc_adma +peak_pci +peak_usb +penmount +pf +pfuze100-regulator +pg +phantom +phonet +phram +phy-generic +phy-gpio-vbus-usb +physmap +physmap_of +pixcir_i2c_ts +pktcdvd +pktgen +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm80xx +pmbus +pmbus_core +pmc551 +pmcraid +pm-notifier-error-inject +pn533 +pn544 +pn544_i2c +pn_pep +port100 +powermate +powernv-rng +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pptp +pseries-rng +psmouse +psnap +pt +pvrusb2 +pwc +pwm_bl +pwm-pca9685 +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qmi_wwan +qnx4 +qnx6 +qt1010 +qt1070 +qt2160 +quota_tree +quota_v1 +quota_v2 +qxl +r128 +r592 +r6040 +r815x +r8169 +r820t +r852 +radeon +radeonfb +radio-i2c-si470x +radio-keene +radio-ma901 +radio-maxiradio +radio-mr800 +radio-shark +radio-si4713 +radio-tea5764 +radio-timb +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +rbd +rc5t583-regulator +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rcar_vin +rc-asus-pc39 +rc-asus-ps3-100 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +rc-avermedia +rc-avermedia-a16d +rc-avermedia-cardbus +rc-avermedia-dvbt +rc-avermedia-m135a +rc-avermedia-m733a-rm-k6 +rc-avermedia-rm-ks +rc-avertv-303 +rc-azurewave-ad-tu700 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-delock-61959 +rc-dib0700-nec +rc-dib0700-rc5 +rc-digitalnow-tinytwin +rc-digittrade +rc-dm1105-nec +rc-dntv-live-dvb-t +rc-dntv-live-dvbt-pro +rc-em-terratec +rc-encore-enltv +rc-encore-enltv2 +rc-encore-enltv-fm53 +rc-evga-indtube +rc-eztv +rc-flydvb +rc-flyvideo +rc-fusionhdtv-mce +rc-gadmei-rm008z +rc-genius-tvgo-a11mce +rc-gotview7135 +rc-hauppauge +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-it913x-v1 +rc-it913x-v2 +rc-kaiomy +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-msi-digivox-ii +rc-msi-digivox-iii +rc-msi-tvanywhere +rc-msi-tvanywhere-plus +rc-nebula +rc-nec-terratec-cinergy-xs +rc-norwood +rc-npgtech +rc-pctv-sedna +rc-pinnacle-color +rc-pinnacle-grey +rc-pinnacle-pctv-hd +rc-pixelview +rc-pixelview-002t +rc-pixelview-mk12 +rc-pixelview-new +rc-powercolor-real-angel +rc-proteus-2309 +rc-purpletv +rc-pv951 +rc-rc6-mce +rc-real-audio-220-32-keys +rc-reddo +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-total-media-in-hand-02 +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +remoteproc +retu-mfd +retu-pwrbutton +retu_wdt +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rionet +rio-scan +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rp2 +rpadlpar_io +rpaphp +rpcsec_gss_krb5 +rsxx +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800mmio +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtas_flash +rtc-88pm80x +rtc-88pm860x +rtc-ab3100 +rtc-as3722 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc_cmos_setup +rtc-da9052 +rtc-da9055 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds2404 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-generic +rtc-hid-sensor-time +rtc-isl12022 +rtc-isl1208 +rtc-lp8788 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max77686 +rtc-max8907 +rtc-max8925 +rtc-max8997 +rtc-max8998 +rtc-mc13xxx +rtc-moxart +rtc-msm6242 +rtc-palmas +rtc-pcf2123 +rtc-pcf2127 +rtc-pcf50633 +rtc-pcf8523 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rc5t583 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx4581 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-s5m +rtc-snvs +rtc-stk17ta8 +rtc-tps6586x +rtc-tps65910 +rtc-tps80031 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtl2830 +rtl2832 +rtl8180 +rtl8187 +rtl8188ee +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtl8723ae +rtl8723be +rtl8723-common +rtl_pci +rtl_usb +rtlwifi +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rxkad +s1d13xxxfb +s2255drv +s2io +s3fb +s5h1409 +s5h1411 +s5h1420 +s5m8767 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7115 +saa7127 +saa7134 +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7706h +salsa20_generic +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_rcar +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sbp_target +sbs-battery +sc92031 +scanlog +sch_atm +sch_cbq +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_fq +sch_fq_codel +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_plug +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +scsi_debug +scsi_dh +scsi_dh_alua +scsi_dh_emc +scsi_dh_hp_sw +scsi_dh_rdac +scsi_tgt +scsi_transport_fc +scsi_transport_iscsi +scsi_transport_sas +sctp +sctp_probe +sdhci +sdhci-of-esdhc +sdhci-of-hlwd +sdhci-pci +sdhci-pltfm +sdio_uart +seed +seqiv +ser_gigaset +sermouse +serpent_generic +serport +ses +sfc +sha1-powerpc +shark2 +sh_eth +sht15 +sht21 +sh_veu +si21xx +si4713-i2c +si476x-core +sidewinder +sierra_net +sil164 +sir-dev +sis +sis190 +sis5595 +sis900 +sisfb +sit +sja1000 +sja1000_isa +sja1000_of_platform +sja1000_platform +skd +skfp +skge +sky2 +slcan +slip +slram +sm501 +sm501fb +smb347-charger +sm_common +sm_ftl +smm665 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +soc_camera +soc_camera_platform +soc_mediabus +soc_scale_crop +softdog +softing +solos-pci +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +speedfax +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw +spi-dw-midpci +spi-gpio +spi_ks8995 +spi-lm70llp +spi-oc-tiny +spi-pxa2xx-pci +spi-pxa2xx-platform +spi-sc18is602 +spi-tle62x0 +spi-topcliff-pch +spi-xcomm +squashfs +sr9700 +ssb +ssd1307fb +ssfdc +sst25l +sstfb +st +st1232 +st_accel +st_accel_i2c +st_accel_spi +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste_modem_rproc +stex +st_gyro +st_gyro_i2c +st_gyro_spi +stinger +stir4200 +stk1160 +stkwebcam +st_magn +st_magn_i2c +st_magn_spi +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +st_pressure +st_pressure_i2c +st_pressure_spi +streamzap +st_sensors +st_sensors_i2c +st_sensors_spi +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +sur40 +svcrdma +svgalib +sx8 +sym53c8xx +synaptics_i2c +synaptics_usb +synclink +synclink_gt +synclinkmp +syscopyarea +sysfillrect +sysimgblt +sysv +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tca8418_keypad +tcm_fc +tcm_loop +tcm_qla2xxx +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tcs3472 +tda10021 +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tda998x +tdfx +tdfxfb +tdo24m +tea +tea575x +tea5761 +tea5767 +tea6415c +tea6420 +team +team_mode_activebackup +team_mode_broadcast +team_mode_loadbalance +team_mode_random +team_mode_roundrobin +tef6862 +tehuti +tekram-sir +test_power +tgr192 +thmc50 +ti-adc081c +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +tlan +tm6000 +tm6000-dvb +tmdc +tmiofb +tmp006 +tmp102 +tmp401 +tmp421 +tmscsim +toim3232-sir +touchit213 +touchright +touchwin +tpci200 +tpm_atmel +tpm_i2c_atmel +tpm_i2c_infineon +tpm_i2c_nuvoton +tpm_i2c_stm_st33 +tpm-rng +tps51632-regulator +tps6105x +tps6105x-regulator +tps62360-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps65090-charger +tps65090-regulator +tps65217 +tps65217_bl +tps65217-regulator +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +tps80031-regulator +tridentfb +ts2020 +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +tsi568 +tsi57x +ts_kmp +tsl2550 +tsl2563 +tsl4531 +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +tua6100 +tua9001 +tuner +tuner_it913x +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +tw9910 +twidjoy +twofish_common +twofish_generic +typhoon +uartlite +ubi +ubifs +ucd9000 +ucd9200 +udf +udl +udlfb +udp_diag +ueagle-atm +ufs +ufshcd +ufshcd-pci +ufshcd-pltfrm +uhid +uio +umc +umem +unix_diag +upd64031a +upd64083 +usb_8dev +usb8xxx +usbatm +usb_gigaset +usbhid +usbkbd +usbmon +usbmouse +usbnet +usb-storage +usbtouchscreen +usbtv +usbvision +userspace-consumer +ushc +uvcvideo +uvesafb +uwb +v4l2-common +v4l2-dv-timings +v4l2-int-device +v4l2-mem2mem +vcan +vcnl4000 +ves1820 +ves1x93 +veth +vga16fb +vgastate +vgg2432a4 +vhost +vhost_net +vhost_scsi +via +via686a +via-ircc +via-rhine +via-sdmmc +via-velocity +videobuf2-core +videobuf2-dma-contig +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videodev +viperboard +viperboard_adc +virtio-rng +virtio_scsi +virtual +vivi +vlsi_ir +vmac +vme +vme_vmivme7805 +vmwgfx +vmxnet3 +vp27smpx +vringh +vsock +vsxxxaa +vt8231 +vt8623fb +vub300 +vx855 +vxge +vxlan +w1_bq27000 +w1_ds2408 +w1_ds2413 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1_ds2781 +w1_ds28e04 +w1-gpio +w1_smem +w1_therm +w5100 +w5300 +w6692 +w83781d +w83791d +w83792d +w83793 +w83795 +w83977af_ir +w83l785ts +w83l786ng +w9966 +wacom +wacom_i2c +wacom_w8001 +walkera0701 +wanxl +warrior +wbsd +wcn36xx +wdrtas +wdt_pci +whci +whci-hcd +whc-rc +wil6210 +wimax +wire +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl18xx +wlcore +wlcore_sdio +wlcore_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wp512 +wusbcore +wusb-wa +x25 +x25_asy +xc4000 +xc5000 +xcbc +xfrm4_mode_beet +xfrm4_mode_transport +xfrm4_mode_tunnel +xfrm4_tunnel +xfrm6_mode_beet +xfrm6_mode_ro +xfrm6_mode_transport +xfrm6_mode_tunnel +xfrm6_tunnel +xfrm_algo +xfrm_ipcomp +xfrm_user +xfs +xgene-enet +xgmac +xilinx_uartps +xor +xpad +xprtrdma +x_tables +xt_addrtype +xt_AUDIT +xt_bpf +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlabel +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_ecn +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_HMARK +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_LOG +xt_mac +xt_mark +xt_multiport +xt_nat +xt_NETMAP +xt_nfacct +xt_NFLOG +xt_NFQUEUE +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xt_REDIRECT +xts +xt_sctp +xt_SECMARK +xt_set +xt_socket +xt_state +xt_statistic +xt_string +xt_tcpmss +xt_TCPMSS +xt_TCPOPTSTRIP +xt_tcpudp +xt_TEE +xt_time +xt_TPROXY +xt_TRACE +xt_u32 +xusbatm +yam +yealink +yellowfin +zaurus +zd1201 +zd1211rw +zforce_ts +zhenhua +zl10036 +zl10039 +zl10353 +zl6100 +zlib +zr364xx --- linux-3.13.0.orig/debian.master/changelog +++ linux-3.13.0/debian.master/changelog @@ -0,0 +1,18103 @@ +linux (3.13.0-46.77) trusty; urgency=low + + [ Seth Forshee ] + + * Revert "ipv6: fix swapped ipv4/ipv6 mtu_reduced callbacks" + - LP: #1404558 + * Release Tracking Bug + - LP: #1427292 + + -- Seth Forshee Mon, 02 Mar 2015 11:33:20 -0600 + +linux (3.13.0-46.76) trusty; urgency=low + + [ Kamal Mostafa ] + + * Release Tracking Bug + - LP: #1426060 + + [ Upstream Kernel Changes ] + + * clocksource: arch_timer: Only use the virtual counter (CNTVCT) on arm64 + - LP: #1426043 + + -- Kamal Mostafa Thu, 26 Feb 2015 09:53:44 -0800 + +linux (3.13.0-46.75) trusty; urgency=low + + [ Seth Forshee ] + + * Release Tracking Bug + - LP: #1419963 + + [ Andy Whitcroft ] + + * [Debian] arm64 -- build ubuntu drivers + - LP: #1411284 + * hyper-v -- fix comment handing in /etc/network/interfaces + - LP: #1413020 + + [ Kamal Mostafa ] + + * [Packaging] force "dpkg-source -I -i" behavior + + [ Upstream Kernel Changes ] + + * Revert "[SCSI] mpt2sas: Remove phys on topology change." + - LP: #1419838 + * Revert "[SCSI] mpt3sas: Remove phys on topology change" + - LP: #1419838 + * Btrfs: fix transaction abortion when remounting btrfs from RW to RO + - LP: #1411320 + * Btrfs: fix a crash of clone with inline extents's split + - LP: #1413129 + * net/mlx4_en: Add VXLAN ndo calls to the PF net device ops too + - LP: #1407760 + * KVM: x86: SYSENTER emulation is broken + - LP: #1414651 + - CVE-2015-0239 + * powerpc/xmon: Fix another endiannes issue in RTAS call from xmon + - LP: #1415919 + * ipv6: fix swapped ipv4/ipv6 mtu_reduced callbacks + - LP: #1404558, #1419837 + * usb: gadget: at91_udc: move prepare clk into process context + - LP: #1419837 + * KVM: x86: Fix far-jump to non-canonical check + - LP: #1419837 + * x86/tls: Validate TLS entries to protect espfix + - LP: #1419837 + * userns: Check euid no fsuid when establishing an unprivileged uid + mapping + - LP: #1419837 + * userns: Document what the invariant required for safe unprivileged + mappings. + - LP: #1419837 + * userns: Only allow the creator of the userns unprivileged mappings + - LP: #1419837 + * x86_64, switch_to(): Load TLS descriptors before switching DS and ES + - LP: #1419837 + * isofs: Fix infinite looping over CE entries + - LP: #1419837 + * batman-adv: Calculate extra tail size based on queued fragments + - LP: #1419837 + * KEYS: close race between key lookup and freeing + - LP: #1419837 + * isofs: Fix unchecked printing of ER records + - LP: #1419837 + * x86_64, vdso: Fix the vdso address randomization algorithm + - LP: #1419837 + * groups: Consolidate the setgroups permission checks + - LP: #1419837 + * userns: Don't allow setgroups until a gid mapping has been setablished + - LP: #1419837 + * userns: Don't allow unprivileged creation of gid mappings + - LP: #1419837 + * move d_rcu from overlapping d_child to overlapping d_alias + - LP: #1419837 + * deal with deadlock in d_walk() + - LP: #1419837 + * Linux 3.13.11-ckt14 + - LP: #1419837 + * gre: fix the inner mac header in nbma tunnel xmit path + - LP: #1419838 + * netlink: Always copy on mmap TX. + - LP: #1419838 + * netlink: Don't reorder loads/stores before marking mmap netlink frame + as available + - LP: #1419838 + * in6: fix conflict with glibc + - LP: #1419838 + * tg3: tg3_disable_ints using uninitialized mailbox value to disable + interrupts + - LP: #1419838 + * batman-adv: Unify fragment size calculation + - LP: #1419838 + * batman-adv: avoid NULL dereferences and fix if check + - LP: #1419838 + * net: Fix stacked vlan offload features computation + - LP: #1419838 + * net: Reset secmark when scrubbing packet + - LP: #1419838 + * tcp: Do not apply TSO segment limit to non-TSO packets + - LP: #1419838 + * alx: fix alx_poll() + - LP: #1419838 + * team: avoid possible underflow of count_pending value for notify_peers + and mcast_rejoin + - LP: #1419838 + * enic: fix rx skb checksum + - LP: #1419838 + * net/core: Handle csum for CHECKSUM_COMPLETE VXLAN forwarding + - LP: #1419838 + * macvlan: unregister net device when netdev_upper_dev_link() fails + - LP: #1419838 + * netfilter: conntrack: disable generic tracking for known protocols + - LP: #1419838 + * xen-netfront: Fix handling packets on compound pages with skb_linearize + - LP: #1317811, #1419838 + * xen-netfront: use correct linear area after linearizing an skb + - LP: #1317811, #1419838 + * eCryptfs: Force RO mount when encrypted view is enabled + - LP: #1419838 + * smiapp: Take mutex during PLL update in sensor initialisation + - LP: #1419838 + * smiapp-pll: Correct clock debug prints + - LP: #1419838 + * sound: simplify au0828 quirk table + - LP: #1419838 + * sound: Update au0828 quirks table + - LP: #1419838 + * af9005: fix kernel panic on init if compiled without IR + - LP: #1419838 + * writeback: fix a subtle race condition in I_DIRTY clearing + - LP: #1419838 + * usb: renesas_usbhs: gadget: fix NULL pointer dereference in + ep_disable() + - LP: #1419838 + * KVM: s390: flush CPU on load control + - LP: #1419838 + * UBI: Fix double free after do_sync_erase() + - LP: #1419838 + * UBI: Fix invalid vfree() + - LP: #1419838 + * Drivers: hv: vmbus: Fix a race condition when unregistering a device + - LP: #1419838 + * driver core: Fix unbalanced device reference in drivers_probe + - LP: #1419838 + * PCI: Restore detection of read-only BARs + - LP: #1419838 + * scsi: correct return values for .eh_abort_handler implementations + - LP: #1419838 + * drm/radeon: fix typo in CI dpm disable + - LP: #1419838 + * ARM: tegra: Re-add removed SoC id macro to tegra_resume() + - LP: #1419838 + * arm64: Add COMPAT_HWCAP_LPAE + - LP: #1419838 + * genhd: check for int overflow in disk_expand_part_tbl() + - LP: #1419838 + * ftrace/x86: Add frames pointers to trampoline as necessary + - LP: #1419838 + * drm/ttm: Avoid memory allocation from shrinker functions. + - LP: #1419838 + * ASoC: sigmadsp: Refuse to load firmware files with a non-supported + version + - LP: #1419838 + * drm/radeon: work around a hw bug in MGCG on CIK + - LP: #1419838 + * Btrfs: make sure we wait on logged extents when fsycning two subvols + - LP: #1419838 + * Btrfs: do not move em to modified list when unpinning + - LP: #1419838 + * megaraid_sas: corrected return of wait_event from abort frame path + - LP: #1419838 + * ASoC: max98090: Fix ill-defined sidetone route + - LP: #1419838 + * blk-mq: use 'nr_cpu_ids' as highest CPU ID count for hwq <-> cpu map + - LP: #1419838 + * nfs41: fix nfs4_proc_layoutget error handling + - LP: #1419838 + * cdc-acm: memory leak in error case + - LP: #1419838 + * USB: cdc-acm: check for valid interfaces + - LP: #1419838 + * x86/asm/traps: Disable tracing and kprobes in fixup_bad_iret and + sync_regs + - LP: #1419838 + * uvcvideo: Fix destruction order in uvc_delete() + - LP: #1419838 + * HID: i2c-hid: fix race condition reading reports + - LP: #1419838 + * mfd: tc6393xb: Fail ohci suspend if full state restore is required + - LP: #1419838 + * serial: samsung: wait for transfer completion before clock disable + - LP: #1419838 + * mmc: dw_mmc: avoid write to CDTHRCTL on older versions + - LP: #1419838 + * Bluetooth: ath3k: Add support of MCI 13d3:3408 bt device + - LP: #1419838 + * eCryptfs: Remove buggy and unnecessary write in file name decode + routine + - LP: #1419838 + * n_tty: Fix read_buf race condition, increment read_head after pushing + data + - LP: #1419838 + * dm cache: only use overwrite optimisation for promotion when in + writeback mode + - LP: #1419838 + * dm cache: dirty flag was mistakenly being cleared when promoting via + overwrite + - LP: #1419838 + * dm bufio: fix memleak when using a dm_buffer's inline bio + - LP: #1419838 + * ath9k_hw: fix hardware queue allocation + - LP: #1419838 + * ath9k: fix BE/BK queue order + - LP: #1419838 + * ath5k: fix hardware queue index assignment + - LP: #1419838 + * tcm_loop: Fix wrong I_T nexus association + - LP: #1419838 + * iwlwifi: dvm: fix flush support for old firmware + - LP: #1419838 + * iommu/vt-d: Fix an off-by-one bug in __domain_mapping() + - LP: #1419838 + * dm crypt: use memzero_explicit for on-stack buffer + - LP: #1419838 + * mnt: Implicitly add MNT_NODEV on remount when it was implicitly added + by mount + - LP: #1419838 + * mnt: Update unprivileged remount test + - LP: #1419838 + * umount: Disallow unprivileged mount force + - LP: #1419838 + * md/raid56: Don't perform reads to support writes until stripe is ready. + - LP: #1419838 + * md/raid5: avoid livelock caused by non-aligned writes. + - LP: #1419838 + * md/raid5: fetch_block must fetch all the blocks handle_stripe_dirtying + wants. + - LP: #1419838 + * drm/i915: Disallow pin ioctl completely for kms drivers + - LP: #1419838 + * drm/vmwgfx: Don't use memory accounting for kernel-side fence objects + - LP: #1419838 + * drm/vmwgfx: Fix fence event code + - LP: #1419838 + * hp_accel: Add support for HP ZBook 15 + - LP: #1419838 + * drm/radeon: check the right ring in radeon_evict_flags() + - LP: #1419838 + * swiotlb-xen: pass dev_addr to xen_dma_unmap_page and + xen_dma_sync_single_for_cpu + - LP: #1419838 + * swiotlb-xen: call xen_dma_sync_single_for_device when appropriate + - LP: #1419838 + * clocksource: arch_timer: Fix code to use physical timers when requested + - LP: #1419838 + * ALSA: hda - Fix built-in mic at resume on Lenovo Ideapad S210 + - LP: #1419838 + * can: peak_usb: fix memset() usage + - LP: #1419838 + * can: peak_usb: fix cleanup sequence order in case of error during init + - LP: #1419838 + * ALSA: usb-audio: Don't resubmit pending URBs at MIDI error recovery + - LP: #1419838 + * KEYS: Fix stale key registration at error path + - LP: #1419838 + * thermal: Fix error path in thermal_init() + - LP: #1419838 + * blk-mq: Fix a use-after-free + - LP: #1419838 + * fs: nfsd: Fix signedness bug in compare_blob + - LP: #1419838 + * nfsd4: fix xdr4 inclusion of escaped char + - LP: #1419838 + * userns: Rename id_map_mutex to userns_state_mutex + - LP: #1419838 + * drm/i915: Don't complain about stolen conflicts on gen3 + - LP: #1419838 + * ALSA: hda - Add EAPD fixup for ASUS Z99He laptop + - LP: #1419838 + * Btrfs: fix fs corruption on transaction abort if device supports + discard + - LP: #1419838 + * ncpfs: return proper error from NCP_IOC_SETROOT ioctl + - LP: #1419838 + * drivers/rtc/rtc-sirfsoc.c: move hardware initilization earlier in probe + - LP: #1419838 + * rtc: omap: fix missing wakealarm attribute + - LP: #1419838 + * exit: pidns: alloc_pid() leaks pid_namespace if child_reaper is exiting + - LP: #1419838 + * perf/x86/intel/uncore: Make sure only uncore events are collected + - LP: #1419838 + * perf: Fix events installation during moving group + - LP: #1419838 + * KVM: nVMX: Disable unrestricted mode if ept=0 + - LP: #1419838 + * drm/i915: save/restore GMBUS freq across suspend/resume on gen4 + - LP: #1419838 + * pstore-ram: Fix hangs by using write-combine mappings + - LP: #1419838 + * pstore-ram: Allow optional mapping with pgprot_noncached + - LP: #1419838 + * userns: Add a knob to disable setgroups on a per user namespace basis + - LP: #1419838 + * userns: Allow setting gid_maps without privilege when setgroups is + disabled + - LP: #1419838 + * userns: Unbreak the unprivileged remount tests + - LP: #1419838 + * HID: i2c-hid: prevent buffer overflow in early IRQ + - LP: #1419838 + * mac80211: fix multicast LED blinking and counter + - LP: #1419838 + * cfg80211: avoid mem leak on driver hint set + - LP: #1419838 + * mtd: tests: abort torturetest on erase errors + - LP: #1419838 + * tracing/sched: Check preempt_count() for current when reading + task->state + - LP: #1419838 + * iscsi,iser-target: Initiate termination only once + - LP: #1419838 + * iser-target: Fix flush + disconnect completion handling + - LP: #1419838 + * iser-target: Parallelize CM connection establishment + - LP: #1419838 + * iser-target: Fix connected_handler + teardown flow race + - LP: #1419838 + * iser-target: Handle ADDR_CHANGE event for listener cm_id + - LP: #1419838 + * iser-target: Fix implicit termination of connections + - LP: #1419838 + * genirq: Prevent proc race against freeing of irq descriptors + - LP: #1419838 + * x86/tls: Disallow unusual TLS segments + - LP: #1419838 + * powerpc/powernv: Switch off MMU before entering nap/sleep/rvwinkle mode + - LP: #1419838 + * ARC: [nsimosci] move peripherals to match model to FPGA + - LP: #1419838 + * scsi: blacklist RSOC for Microsoft iSCSI target devices + - LP: #1419838 + * rtlwifi: rtl8192ce: Set fw_ready flag + - LP: #1419838 + * iscsi-target: Fail connection on short sendmsg writes + - LP: #1419838 + * mac80211: free management frame keys when removing station + - LP: #1419838 + * ceph: do_sync is never initialized + - LP: #1419838 + * x86/tls: Don't validate lm in set_thread_area() after all + - LP: #1419838 + * ALSA: usb-audio: extend KEF X300A FU 10 tweak to Arcam rPAC + - LP: #1419838 + * mnt: Fix a memory stomp in umount + - LP: #1419838 + * ocfs2: fix journal commit deadlock + - LP: #1419838 + * tick/powerclamp: Remove tick_nohz_idle abuse + - LP: #1419838 + * Linux 3.13.11-ckt15 + - LP: #1419838 + + [ Xiong Zhang ] + + * SAUCE: ubuntu/i915: power on sink if dpcd read fail + - LP: #1416451 + + -- Seth Forshee Mon, 09 Feb 2015 14:08:50 -0600 + +linux (3.13.0-45.74) trusty; urgency=low + + [ Seth Forshee ] + + * Release Tracking Bug + - LP: #1410384 + + [ Jesse Barnes ] + + * SAUCE: drm/i915/vlv: assert and de-assert sideband reset at boot and + resume v3 + - LP: #1401963 + + [ K. Y. Srinivasan ] + + * SAUCE: storvsc: force SPC-3 compliance on win8 and win8 r2 hosts + - LP: #1406867 + + [ Timo Aaltonen ] + + * SAUCE: Switch VLV/BYT to use i915_bdw. + - LP: #1401963 + + [ Upstream Kernel Changes ] + + * Revert "xhci: clear root port wake on bits if controller isn't wake-up + capable" + - LP: #1408779 + * KVM: PPC: BOOK3S: HV: CMA: Reserve cma region only in hypervisor mode + - LP: #1400209 + * e1000e: Fix no connectivity when driver loaded with cable out + - LP: #1400365 + * net/mlx4_core: Enable CQE/EQE stride support + - LP: #1400127 + * net/mlx4_core: Cache line EQE size support + - LP: #1400127 + * net/mlx4_en: Add mlx4_en_get_cqe helper + - LP: #1400127 + * net/mlx4_core: Introduce mlx4_get_module_info for cable module info + reading + - LP: #1400127 + * ethtool, net/mlx4_en: Cable info, get_module_info/eeprom ethtool + support + - LP: #1400127 + * net/mlx4_core: Introduce ACCESS_REG CMD and eth_prot_ctrl dev cap + - LP: #1400127 + * net/mlx4_core: Add ethernet backplane autoneg device capability + - LP: #1400127 + * ethtool, net/mlx4_en: Add 100M, 20G, 56G speeds ethtool reporting + support + - LP: #1400127 + * net/mlx4_en: Use PTYS register to query ethtool settings + - LP: #1400127 + * net/mlx4_en: Use PTYS register to set ethtool settings (Speed) + - LP: #1400127 + * net/mlx4_en: Add support for setting rxvlan offload OFF/ON + - LP: #1400127 + * net/mlx4_en: Add ethtool support for [rx|tx]vlan offload set to OFF/ON + - LP: #1400127 + * net/mlx4_core: Prevent VF from changing port configuration + - LP: #1400127 + * net/mlx4_en: mlx4_en_set_settings() always fails when autoneg is set + - LP: #1400127 + * ipv4: fix nexthop attlen check in fib_nh_match + - LP: #1408779 + * vxlan: fix a use after free in vxlan_encap_bypass + - LP: #1408779 + * vxlan: using pskb_may_pull as early as possible + - LP: #1408779 + * vxlan: fix a free after use + - LP: #1408779 + * ipv4: fix a potential use after free in ip_tunnel_core.c + - LP: #1408779 + * ax88179_178a: fix bonding failure + - LP: #1408779 + * tcp: md5: do not use alloc_percpu() + - LP: #1408779 + * ipv4: dst_entry leak in ip_send_unicast_reply() + - LP: #1408779 + * drivers/net, ipv6: Select IPv6 fragment idents for virtio UFO packets + - LP: #1408779 + * drivers/net: macvtap and tun depend on INET + - LP: #1408779 + * ip6_tunnel: Use ip6_tnl_dev_init as the ndo_init function. + - LP: #1408779 + * vti6: Use vti6_dev_init as the ndo_init function. + - LP: #1408779 + * sit: Use ipip6_tunnel_init as the ndo_init function. + - LP: #1408779 + * gre6: Move the setting of dev->iflink into the ndo_init functions. + - LP: #1408779 + * vxlan: Do not reuse sockets for a different address family + - LP: #1408779 + * net: sctp: fix memory leak in auth key management + - LP: #1408779 + * smsc911x: power-up phydev before doing a software reset. + - LP: #1408779 + * sunvdc: add cdrom and v1.1 protocol support + - LP: #1408779 + * sunvdc: compute vdisk geometry from capacity + - LP: #1408779 + * sunvdc: limit each sg segment to a page + - LP: #1408779 + * vio: fix reuse of vio_dring slot + - LP: #1408779 + * sunvdc: don't call VD_OP_GET_VTOC + - LP: #1408779 + * sparc64: Fix crashes in schizo_pcierr_intr_other(). + - LP: #1408779 + * sparc64: Do irq_{enter,exit}() around generic_smp_call_function*(). + - LP: #1408779 + * sparc32: Implement xchg and atomic_xchg using ATOMIC_HASH locks + - LP: #1408779 + * sparc64: Fix constraints on swab helpers. + - LP: #1408779 + * inetdevice: fixed signed integer overflow + - LP: #1408779 + * ipv4: Fix incorrect error code when adding an unreachable route + - LP: #1408779 + * ieee802154: fix error handling in ieee802154fake_probe() + - LP: #1408779 + * qmi_wwan: Add support for HP lt4112 LTE/HSPA+ Gobi 4G Modem + - LP: #1408779 + * pptp: fix stack info leak in pptp_getname() + - LP: #1408779 + * ipx: fix locking regression in ipx_sendmsg and ipx_recvmsg + - LP: #1408779 + * aio: fix uncorrent dirty pages accouting when truncating AIO ring + buffer + - LP: #1408779 + * spi: dw: Fix dynamic speed change. + - LP: #1408779 + * USB: serial: cp210x: add IDs for CEL MeshConnect USB Stick + - LP: #1408779 + * iio: Fix IIO_EVENT_CODE_EXTRACT_DIR bit mask + - LP: #1408779 + * usb: serial: ftdi_sio: add PIDs for Matrix Orbital products + - LP: #1408779 + * USB: keyspan: fix tty line-status reporting + - LP: #1408779 + * USB: keyspan: fix overrun-error reporting + - LP: #1408779 + * USB: ssu100: fix overrun-error reporting + - LP: #1408779 + * nfsd: correctly define v4.2 support attributes + - LP: #1408779 + * SUNRPC: Fix locking around callback channel reply receive + - LP: #1408779 + * nfsd: Fix slot wake up race in the nfsv4.1 callback code + - LP: #1408779 + * bnx2fc: do not add shared skbs to the fcoe_rx_list + - LP: #1408779 + * scsi: add Intel Multi-Flex to scsi scan blacklist + - LP: #1408779 + * ARM: 8216/1: xscale: correct auxiliary register in suspend/resume + - LP: #1408779 + * USB: xhci: don't start a halted endpoint before its new dequeue is set + - LP: #1408779 + * USB: xhci: Reset a halted endpoint immediately when we encounter a + stall. + - LP: #1408779 + * usb: xhci: rework root port wake bits if controller isn't allowed to + wakeup + - LP: #1408779 + * ALSA: hda - Limit 40bit DMA for AMD HDMI controllers + - LP: #1408779 + * PCI/MSI: Add device flag indicating that 64-bit MSIs don't work + - LP: #1408779 + * gpu/radeon: Set flag to indicate broken 64-bit MSI + - LP: #1408779 + * sound/radeon: Move 64-bit MSI quirk from arch to driver + - LP: #1408779 + * powerpc/powernv: Honor the generic "no_64bit_msi" flag + - LP: #1408779 + * powerpc/pseries: Honor the generic "no_64bit_msi" flag + - LP: #1408779 + * MIPS: Loongson: Make platform serial setup always built-in. + - LP: #1408779 + * net/ping: handle protocol mismatching scenario + - LP: #1408779 + * usb-quirks: Add reset-resume quirk for MS Wireless Laser Mouse 6000 + - LP: #1408779 + * Input: xpad - use proper endpoint type + - LP: #1408779 + * powerpc: 32 bit getcpu VDSO function uses 64 bit instructions + - LP: #1408779 + * ARM: 8222/1: mvebu: enable strex backoff delay + - LP: #1408779 + * ARM: 8226/1: cacheflush: get rid of restarting block + - LP: #1408779 + * staging: r8188eu: Add new device ID for DLink GO-USB-N150 + - LP: #1408779 + * btrfs: zero out left over bytes after processing compression streams + - LP: #1408779 + * smiapp: Only some selection targets are settable + - LP: #1408779 + * i2c: omap: fix NACK and Arbitration Lost irq handling + - LP: #1408779 + * drm/nouveau/gf116: remove copy1 engine + - LP: #1408779 + * drm/i915: More cautious with pch fifo underruns + - LP: #1408779 + * drm/i915: Unlock panel even when LVDS is disabled + - LP: #1408779 + * AHCI: Add DeviceIDs for Sunrise Point-LP SATA controller + - LP: #1408779 + * sata_fsl: fix error handling of irq_of_parse_and_map + - LP: #1408779 + * drm/radeon: kernel panic in drm_calc_vbltimestamp_from_scanoutpos with + 3.18.0-rc6 + - LP: #1408779 + * mm: frontswap: invalidate expired data on a dup-store failure + - LP: #1408779 + * mm/vmpressure.c: fix race in vmpressure_work_fn() + - LP: #1408779 + * drivers/input/evdev.c: don't kfree() a vmalloc address + - LP: #1408779 + * mm: fix swapoff hang after page migration and fork + - LP: #1408779 + * mm: fix anon_vma_clone() error treatment + - LP: #1408779 + * slab: fix nodeid bounds check for non-contiguous node IDs + - LP: #1408779 + * ahci: disable MSI on SAMSUNG 0xa800 SSD + - LP: #1408779 + * i2c: davinci: generate STP always when NACK is received + - LP: #1408779 + * ip_tunnel: the lack of vti_link_ops' dellink() cause kernel panic + - LP: #1408779 + * ipv6: gre: fix wrong skb->protocol in WCCP + - LP: #1408779 + * Fix race condition between vxlan_sock_add and vxlan_sock_release + - LP: #1408779 + * tg3: fix ring init when there are more TX than RX channels + - LP: #1408779 + * net/mlx4_core: Limit count field to 24 bits in qp_alloc_res + - LP: #1408779 + * rtnetlink: release net refcnt on error in do_setlink() + - LP: #1408779 + * net: mvneta: fix Tx interrupt delay + - LP: #1408779 + * net: mvneta: fix race condition in mvneta_tx() + - LP: #1408779 + * net: sctp: use MAX_HEADER for headroom reserve in output path + - LP: #1408779 + * Linux 3.13.11-ckt13 + - LP: #1408779 + * ipv6: fix swapped ipv4/ipv6 mtu_reduced callbacks + - LP: #1404558 + * arm64: Fix machine_shutdown() definition + - LP: #1404335 + * arm64: Fix deadlock scenario with smp_send_stop() + - LP: #1404335 + * iwlwifi: mvm: a few more SKUs for 7260 and 3160 + * iwlwifi: fix and add 7265 series HW IDs + - LP: #1408222 + + -- Seth Forshee Tue, 13 Jan 2015 11:37:56 -0600 + +linux (3.13.0-44.73) trusty; urgency=low + + [ Kamal Mostafa ] + + * Release Tracking Bug + - LP: #1402872 + + [ AceLan Kao ] + + * SAUCE: Add use_native_backlight quirk for HP ProBook 6570b + - LP: #1359010 + + [ Andy Whitcroft ] + + * Revert "SAUCE: (no-up) arm64: optimized copy_to_user and copy_from_user + assembly code" + - LP: #1398596 + * [Config] updateconfigs to balance CONFIG_SCOM_DEBUGFS + + [ Upstream Kernel Changes ] + + * iwlwifi: mvm: fix merge damage + - LP: #1393317 + * iwlwifi: remove IWL_UCODE_TLV_FLAGS_SCHED_SCAN flag + - LP: #1393317 + * iwlwifi: mvm: disable scheduled scan to prevent firmware crash + - LP: #1393317 + * iwlwifi: mvm: enable scheduled scan on newest firmware + - LP: #1393317 + * x86: kvm: use alternatives for VMCALL vs. VMMCALL if kernel text is + read-only + - LP: #1379340 + * phylib: introduce PHY_INTERFACE_MODE_XGMII for 10G PHY + - LP: #1381084 + * of: make of_get_phy_mode parse 'phy-connection-type' + - LP: #1381084 + * xen-netfront: Remove BUGs on paged skb data which crosses a page + boundary + - LP: #1275879 + * ACPI / blacklist: blacklist Win8 OSI for Dell Vostro 3546 + - LP: #1383589 + * powerpc/pseries: Fix endiannes issue in RTAS call from xmon + - LP: #1396235 + * mmc: sdhci-pci-o2micro: Fix Dell E5440 issue + - LP: #1346067 + * mfd: rtsx: Fix PM suspend for 5227 & 5249 + - LP: #1359052 + * drivers:scsi:storvsc: Fix a bug in handling ring buffer failures that + may result in I/O freeze + - LP: #1400289 + * arm64: optimized copy_to_user and copy_from_user assembly code + - LP: #1400349 + * net:socket: set msg_namelen to 0 if msg_name is passed as NULL in + msghdr struct from userland. + - LP: #1335478 + * drm/radeon: initialize sadb to NULL in the audio code + - LP: #1402714 + * powerpc/vphn: NUMA node code expects big-endian + - LP: #1401150 + * ALSA: usb-audio: Fix device_del() sysfs warnings at disconnect + - LP: #1402853 + * ALSA: hda - Add mute LED pin quirk for HP 15 touchsmart + - LP: #1334950, #1402853 + * rcu: Make callers awaken grace-period kthread + - LP: #1402853 + * rcu: Use rcu_gp_kthread_wake() to wake up grace period kthreads + - LP: #1402853 + * net: sctp: fix NULL pointer dereference in af->from_addr_param on + malformed packet + - LP: #1402853 + * KVM: x86: Don't report guest userspace emulation error to userspace + - LP: #1402853 + * [media] ttusb-dec: buffer overflow in ioctl + - LP: #1402853 + * arm64: __clear_user: handle exceptions on strb + - LP: #1402853 + * ARM: pxa: fix hang on startup with DEBUG_LL + - LP: #1402853 + * samsung-laptop: Add broken-acpi-video quirk for NC210/NC110 + - LP: #1402853 + * acer-wmi: Add Aspire 5741 to video_vendor_dmi_table + - LP: #1402853 + * acer-wmi: Add acpi_backlight=video quirk for the Acer KAV80 + - LP: #1402853 + * rbd: Fix error recovery in rbd_obj_read_sync() + - LP: #1402853 + * [media] ds3000: fix LNB supply voltage on Tevii S480 on initialization + - LP: #1402853 + * powerpc: do_notify_resume can be called with bad thread_info flags + argument + - LP: #1402853 + * USB: kobil_sct: fix non-atomic allocation in write path + - LP: #1402853 + * USB: opticon: fix non-atomic allocation in write path + - LP: #1402853 + * regulator: max77693: Fix use of uninitialized regulator config + - LP: #1402853 + * USB: cdc-acm: add device id for GW Instek AFG-2225 + - LP: #1402853 + * usb: Do not allow usb_alloc_streams on unconfigured devices + - LP: #1402853 + * usb-storage: handle a skipped data phase + - LP: #1402853 + * xhci: Switch only Intel Lynx Point-LP ports to EHCI on shutdown. + - LP: #1402853 + * xhci: no switching back on non-ULT Haswell + - LP: #1402853 + * of: Fix overflow bug in string property parsing functions + - LP: #1402853 + * spi: fsl-dspi: Fix CTAR selection + - LP: #1402853 + * Btrfs: fix kfree on list_head in btrfs_lookup_csums_range error cleanup + - LP: #1402853 + * staging:iio:ade7758: Fix NULL pointer deref when enabling buffer + - LP: #1402853 + * staging:iio:ade7758: Fix check if channels are enabled in prenable + - LP: #1402853 + * staging:iio:ade7758: Remove "raw" from channel name + - LP: #1402853 + * USB: cdc-acm: only raise DTR on transitions from B0 + - LP: #1402853 + * serial: Fix divide-by-zero fault in uart_get_divisor() + - LP: #1402853 + * tty: Fix high cpu load if tty is unreleaseable + - LP: #1402853 + * tty: Prevent "read/write wait queue active!" log flooding + - LP: #1402853 + * tty/vt: don't set font mappings on vc not supporting this + - LP: #1402853 + * spi: pxa2xx: toggle clocks on suspend if not disabled by runtime PM + - LP: #1402853 + * sysfs: driver core: Fix glue dir race condition by gdp_mutex + - LP: #1402853 + * i2c: at91: don't account as iowait + - LP: #1402853 + * nfsd: don't try to reuse an expired DRC entry off the list + - LP: #1402853 + * nfsd: don't halt scanning the DRC LRU list when there's an RC_INPROG + entry + - LP: #1402853 + * dm bufio: change __GFP_IO to __GFP_FS in shrinker callbacks + - LP: #1402853 + * xtensa: re-wire umount syscall to sys_oldumount + - LP: #1402853 + * dm raid: ensure superblock's size matches device's logical block size + - LP: #1402853 + * ahci: disable MSI instead of NCQ on Samsung pci-e SSDs on macbooks + - LP: #1402853 + * ahci: Add Device IDs for Intel Sunrise Point PCH + - LP: #1402853 + * power: charger-manager: Fix accessing invalidated power supply after + charger unbind + - LP: #1402853 + * mac80211: use secondary channel offset IE also beacons during CSA + - LP: #1402853 + * mac80211: schedule the actual switch of the station before CSA count 0 + - LP: #1402853 + * mac80211: properly flush delayed scan work on interface removal + - LP: #1402853 + * mac80211: fix use-after-free in defragmentation + - LP: #1402853 + * tun: Fix csum_start with VLAN acceleration + - LP: #1402853 + * macvtap: Fix csum_start when VLAN tags are present + - LP: #1402853 + * dm thin: grab a virtual cell before looking up the mapping + - LP: #1402853 + * KVM: x86: Fix uninitialized op->type for some immediate values + - LP: #1402853 + * crypto: caam - fix missing dma unmap on error path + - LP: #1402853 + * hwrng: pseries - port to new read API and fix stack corruption + - LP: #1402853 + * drm/radeon: set correct CE ram size for CIK + - LP: #1402853 + * drm/radeon: make sure mode init is complete in bandwidth_update + - LP: #1402853 + * drm/radeon: use gart for DMA IB tests + - LP: #1402853 + * drm/radeon: add missing crtc unlock when setting up the MC + - LP: #1402853 + * ALSA: hda_intel: Add Device IDs for Intel Sunrise Point PCH + - LP: #1402853 + * ALSA: hda_intel: Add DeviceIDs for Sunrise Point-LP + - LP: #1402853 + * Input: alps - ignore potential bare packets when device is out of sync + - LP: #1402853 + * Input: alps - allow up to 2 invalid packets without resetting device + - LP: #1402853 + * scsi: only re-lock door after EH on devices that were reset + - LP: #1402853 + * dm btree: fix a recursion depth bug in btree walking code + - LP: #1402853 + * parisc: Use compat layer for msgctl, shmat, shmctl and semtimedop + syscalls + - LP: #1402853 + * ALSA: usb-audio: Fix memory leak in FTU quirk + - LP: #1402853 + * audit: keep inode pinned + - LP: #1402853 + * nfs: fix pnfs direct write memory leak + - LP: #1402853 + * nfs: Fix use of uninitialized variable in nfs_getattr() + - LP: #1402853 + * NFSv4: Ensure that we remove NFSv4.0 delegations when state has expired + - LP: #1402853 + * NFSv4.1: nfs41_clear_delegation_stateid shouldn't trust + NFS_DELEGATED_STATE + - LP: #1402853 + * NFSv4: Fix races between nfs_remove_bad_delegation() and delegation + return + - LP: #1402853 + * NFSv4: Ensure that we call FREE_STATEID when NFSv4.x stateids are + revoked + - LP: #1402853 + * NFS: Don't try to reclaim delegation open state if recovery failed + - LP: #1402853 + * libceph: do not crash on large auth tickets + - LP: #1402853 + * ARM: 8191/1: decompressor: ensure I-side picks up relocated code + - LP: #1402853 + * ARM: 8198/1: make kuser helpers depend on MMU + - LP: #1402853 + * zram: avoid kunmap_atomic() of a NULL pointer + - LP: #1402853 + * Input: alps - ignore bad data on Dell Latitudes E6440 and E7440 + - LP: #1402853 + * firewire: cdev: prevent kernel stack leaking into ioctl arguments + - LP: #1402853 + * md: Always set RECOVERY_NEEDED when clearing RECOVERY_FROZEN + - LP: #1402853 + * nfs: Don't busy-wait on SIGKILL in __nfs_iocounter_wait + - LP: #1402853 + * target: Don't call TFO->write_pending if data_length == 0 + - LP: #1402853 + * vhost-scsi: Take configfs group dependency during + VHOST_SCSI_SET_ENDPOINT + - LP: #1402853 + * srp-target: Retry when QP creation fails with ENOMEM + - LP: #1402853 + * ASoC: fsi: remove unsupported PAUSE flag + - LP: #1402853 + * ASoC: rsnd: remove unsupported PAUSE flag + - LP: #1402853 + * ib_isert: Add max_send_sge=2 minimum for control PDU responses + - LP: #1402853 + * iser-target: Handle DEVICE_REMOVAL event on network portal listener + correctly + - LP: #1402853 + * ASoC: dpcm: Fix race between FE/BE updates and trigger + - LP: #1402853 + * mac80211: Fix regression that triggers a kernel BUG with CCMP + - LP: #1402853 + * rt2x00: do not align payload on modern H/W + - LP: #1402853 + * ath9k: Add version/revision macros for QCA9531 + - LP: #1402853 + * ath9k: Fix RTC_DERIVED_CLK usage + - LP: #1402853 + * ASoC: sgtl5000: Fix SMALL_POP bit definition + - LP: #1402853 + * ALSA: usb-audio: Add ctrl message delay quirk for Marantz/Denon devices + - LP: #1402853 + * bitops: Fix shift overflow in GENMASK macros + - LP: #1402853 + * x86: Require exact match for 'noxsave' command line option + - LP: #1402853 + * drm/i915: drop WaSetupGtModeTdRowDispatch:snb + - LP: #1402853 + * ASoC: wm_adsp: Avoid attempt to free buffers that might still be in use + - LP: #1402853 + * can: dev: avoid calling kfree_skb() from interrupt context + - LP: #1402853 + * can: esd_usb2: fix memory leak on disconnect + - LP: #1402853 + * x86, mm: Set NX across entire PMD at boot + - LP: #1402853 + * of/irq: Drop obsolete 'interrupts' vs 'interrupts-extended' text + - LP: #1402853 + * of/base: Fix PowerPC address parsing hack + - LP: #1402853 + * clockevent: sun4i: Fix race condition in the probe code + - LP: #1402853 + * MIPS: oprofile: Fix backtrace on 64-bit kernel + - LP: #1402853 + * ACPI / PM: Ignore wakeup setting if the ACPI companion can't wake up + - LP: #1402853 + * IB/isert: Adjust CQ size to HW limits + - LP: #1402853 + * drm/radeon: fix endian swapping in vbios fetch for tdp table + - LP: #1402853 + * Linux 3.13.11-ckt12 + - LP: #1402853 + * mm: Remove false WARN_ON from pagecache_isize_extended() + - LP: #1402764 + + -- Kamal Mostafa Mon, 15 Dec 2014 16:00:52 -0800 + +linux (3.13.0-43.72) trusty; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - LP: #1400408 + + [ Upstream Kernel Changes ] + + * x86_64, traps: Fix the espfix64 #DF fixup and rewrite it in C + - LP: #1398795 + - CVE-2014-9090 + * x86_64, traps: Rework bad_iret + - LP: #1398795 + - CVE-2014-9090 + * x86, kvm: Clear paravirt_enabled on KVM guests for espfix32's benefit + - LP: #1400314 + - CVE-2014-8134 + + -- Luis Henriques Mon, 08 Dec 2014 17:27:21 +0000 + +linux (3.13.0-42.71) trusty; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - LP: #1399663 + + [ Upstream Kernel Changes ] + + * x86_64, traps: Stop using IST for #SS + - LP: #1398795 + - CVE-2014-9090 + + -- Luis Henriques Fri, 05 Dec 2014 14:29:10 +0000 + +linux (3.13.0-41.70) trusty; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - LP: #1396112 + + [ Chris J Arges ] + + * [Config] CONFIG_SCOM_DEBUGFS=y for powerpc/powerpc64-smp + ppc64el/generic + - LP: #1395855 + + [ Upstream Kernel Changes ] + + * Revert "KVM: x86: Handle errors when RIP is set during far jumps" + - LP: #1393477 + * Revert "net/macb: add pinctrl consumer support" + - LP: #1393477 + * Revert "iwlwifi: mvm: treat EAPOLs like mgmt frames wrt rate" + - LP: #1393477 + * Revert "ipmi: simplify locking" + - LP: #1383921 + * ACPI / blacklist: add Win8 OSI quirks for some Dell laptop models + - LP: #1339456 + * ACPI / battery: Accelerate battery resume callback + - LP: #838543 + * tools: cpu-hotplug fix unexpected operator error + * netlink: reset network header before passing to taps + - LP: #1393477 + * rtnetlink: fix VF info size + - LP: #1393477 + * myri10ge: check for DMA mapping errors + - LP: #1393477 + * tcp: don't use timestamp from repaired skb-s to calculate RTT (v2) + - LP: #1393477 + * sit: Fix ipip6_tunnel_lookup device matching criteria + - LP: #1393477 + * tcp: fix tcp_release_cb() to dispatch via address family for + mtu_reduced() + - LP: #1393477 + * tcp: fix ssthresh and undo for consecutive short FRTO episodes + - LP: #1393477 + * packet: handle too big packets for PACKET_V3 + - LP: #1393477 + * openvswitch: fix panic with multiple vlan headers + - LP: #1393477 + * vxlan: fix incorrect initializer in union vxlan_addr + - LP: #1393477 + * l2tp: fix race while getting PMTU on PPP pseudo-wire + - LP: #1393477 + * bonding: fix div by zero while enslaving and transmitting + - LP: #1393477 + * bridge: Check if vlan filtering is enabled only once. + - LP: #1393477 + * bridge: Fix br_should_learn to check vlan_enabled + - LP: #1393477 + * net: allow macvlans to move to net namespace + - LP: #1393477 + * tg3: Work around HW/FW limitations with vlan encapsulated frames + - LP: #1393477 + * tg3: Allow for recieve of full-size 8021AD frames + - LP: #1393477 + * xfrm: Generate blackhole routes only from route lookup functions + - LP: #1393477 + * xfrm: Generate queueing routes only from route lookup functions + - LP: #1393477 + * macvtap: Fix race between device delete and open. + - LP: #1393477 + * gro: fix aggregation for skb using frag_list + - LP: #1393477 + * hyperv: Fix a bug in netvsc_start_xmit() + - LP: #1393477 + * ip6_gre: fix flowi6_proto value in xmit path + - LP: #1393477 + * team: avoid race condition in scheduling delayed work + - LP: #1393477 + * sctp: handle association restarts when the socket is closed. + - LP: #1393477 + * tcp: fixing TLP's FIN recovery + - LP: #1393477 + * sparc64: Do not disable interrupts in nmi_cpu_busy() + - LP: #1393477 + * sparc64: Fix pcr_ops initialization and usage bugs. + - LP: #1393477 + * sparc32: dma_alloc_coherent must honour gfp flags + - LP: #1393477 + * sparc64: sun4v TLB error power off events + - LP: #1393477 + * sparc64: Fix corrupted thread fault code. + - LP: #1393477 + * sparc64: find_node adjustment + - LP: #1393477 + * sparc64: Move request_irq() from ldc_bind() to ldc_alloc() + - LP: #1393477 + * sparc: Let memset return the address argument + - LP: #1393477 + * sparc64: Fix reversed start/end in flush_tlb_kernel_range() + - LP: #1393477 + * sparc64: Fix lockdep warnings on reboot on Ultra-5 + - LP: #1393477 + * sparc64: Fix FPU register corruption with AES crypto offload. + - LP: #1393477 + * sparc64: Do not define thread fpregs save area as zero-length array. + - LP: #1393477 + * sparc64: Fix hibernation code refrence to PAGE_OFFSET. + - LP: #1393477 + * sparc64: correctly recognise M6 and M7 cpu type + - LP: #1393477 + * sparc64: support M6 and M7 for building CPU distribution map + - LP: #1393477 + * sparc64: cpu hardware caps support for sparc M6 and M7 + - LP: #1393477 + * sparc64: T5 PMU + - LP: #1393477 + * sparc64: Switch to 4-level page tables. + - LP: #1393477 + * sparc64: Define VA hole at run time, rather than at compile time. + - LP: #1393477 + * sparc64: Adjust KTSB assembler to support larger physical addresses. + - LP: #1393477 + * sparc64: Fix physical memory management regressions with large + max_phys_bits. + - LP: #1393477 + * sparc64: Use kernel page tables for vmemmap. + - LP: #1393477 + * sparc64: Increase MAX_PHYS_ADDRESS_BITS to 53. + - LP: #1393477 + * sparc64: Adjust vmalloc region size based upon available virtual + address bits. + - LP: #1393477 + * sparc64: sparse irq + - LP: #1393477 + * sparc64: Kill unnecessary tables and increase MAX_BANKS. + - LP: #1393477 + * sparc64: Increase size of boot string to 1024 bytes + - LP: #1393477 + * sparc64: Fix register corruption in top-most kernel stack frame during + boot. + - LP: #1393477 + * sparc64: Implement __get_user_pages_fast(). + - LP: #1393477 + * ext4: check EA value offset when loading + - LP: #1393477 + * jbd2: free bh when descriptor block checksum fails + - LP: #1393477 + * ext4: don't check quota format when there are no quota files + - LP: #1393477 + * target: Fix queue full status NULL pointer for SCF_TRANSPORT_TASK_SENSE + - LP: #1393477 + * vfs: fix data corruption when blocksize < pagesize for mmaped data + - LP: #1393477 + * ext4: fix mmap data corruption when blocksize < pagesize + - LP: #1393477 + * ext4: grab missed write_count for EXT4_IOC_SWAP_BOOT + - LP: #1393477 + * qla_target: don't delete changed nacls + - LP: #1393477 + * target: Fix APTPL metadata handling for dynamic MappedLUNs + - LP: #1393477 + * iser-target: Disable TX completion interrupt coalescing + - LP: #1393477 + * ext4: don't orphan or truncate the boot loader inode + - LP: #1393477 + * ext4: add ext4_iget_normal() which is to be used for dir tree lookups + - LP: #1393477 + * ext4: fix reservation overflow in ext4_da_write_begin + - LP: #1393477 + * ext4: Replace open coded mdata csum feature to helper function + - LP: #1393477 + * ext4: move error report out of atomic context in + ext4_init_block_bitmap() + - LP: #1393477 + * ARC: [nsimosci] Allow "headless" models to boot + - LP: #1393477 + * ARC: Update order of registers in KGDB to match GDB 7.5 + - LP: #1393477 + * ext4: check s_chksum_driver when looking for bg csum presence + - LP: #1393477 + * drm/radeon: fix speaker allocation setup + - LP: #1393477 + * drm/radeon: use gart memory for DMA ring tests + - LP: #1393477 + * compiler: define OPTIMIZER_HIDE_VAR() macro + - LP: #1393477 + * random: add and use memzero_explicit() for clearing data + - LP: #1393477 + * ALSA: pcm: use the same dma mmap codepath both for arm and arm64 + - LP: #1393477 + * ALSA: ALC283 codec - Avoid pop noise on headphones during + suspend/resume + - LP: #1393477 + * ALSA: usb-audio: Add support for Steinberg UR22 USB interface + - LP: #1393477 + * ALSA: hda - hdmi: Fix missing ELD change event on plug/unplug + - LP: #1393477 + * arm64: compat: fix compat types affecting struct compat_elf_prpsinfo + - LP: #1393477 + * freezer: Do not freeze tasks killed by OOM killer + - LP: #1393477 + * OOM, PM: OOM killed task shouldn't escape PM suspend + - LP: #1393477 + * qxl: don't create too large primary surface + - LP: #1393477 + * MIPS: tlbex: Properly fix HUGE TLB Refill exception handler + - LP: #1393477 + * drm/cirrus: bind also to qemu-xen-traditional + - LP: #1393477 + * cpufreq: intel_pstate: Fix setting max_perf_pct in performance policy + - LP: #1393477 + * cpufreq: expose scaling_cur_freq sysfs file for set_policy() drivers + - LP: #1393477 + * cpufreq: intel_pstate: Reflect current no_turbo state correctly + - LP: #1393477 + * intel_pstate: Don't lose sysfs settings during cpu offline + - LP: #1393477 + * intel_pstate: Fix BYT frequency reporting + - LP: #1393477 + * intel_pstate: Correct BYT VID values. + - LP: #1393477 + * MIPS: ftrace: Fix a microMIPS build problem + - LP: #1393477 + * kvm: x86: don't kill guest on unknown exit reason + - LP: #1393477 + * kvm: fix excessive pages un-pinning in kvm_iommu_map error path. + - LP: #1393477 + * KVM: x86: use new CS.RPL as CPL during task switch + - LP: #1393477 + * KVM: x86: Handle errors when RIP is set during far jumps + - LP: #1393477 + * KVM: x86: Fix far-jump to non-canonical check + - LP: #1393477 + * staging:iio:ad5933: Fix NULL pointer deref when enabling buffer + - LP: #1393477 + * staging:iio:ad5933: Drop "raw" from channel names + - LP: #1393477 + * iio: st_sensors: Fix buffer copy + - LP: #1393477 + * iio: mxs-lradc: Propagate the real error code on platform_get_irq() + failure + - LP: #1393477 + * iio: adc: mxs-lradc: Disable the clock on probe failure + - LP: #1393477 + * spi: pl022: Fix incorrect dma_unmap_sg + - LP: #1393477 + * mac80211: fix typo in starting baserate for rts_cts_rate_idx + - LP: #1393477 + * usb: dwc3: gadget: fix set_halt() bug with pending transfers + - LP: #1393477 + * usb: gadget: function: acm: make f_acm pass USB20CV Chapter9 + - LP: #1393477 + * ext3: Don't check quota format when there are no quota files + - LP: #1393477 + * quota: Properly return errors from dquot_writeback_dquots() + - LP: #1393477 + * USB: serial: cp210x: add Silicon Labs 358x VID and PID + - LP: #1393477 + * usb: serial: ftdi_sio: add Awinda Station and Dongle products + - LP: #1393477 + * usb: option: add support for Telit LE910 + - LP: #1393477 + * USB: option: add Haier CE81B CDMA modem + - LP: #1393477 + * x86, apic: Handle a bad TSC more gracefully + - LP: #1393477 + * i3200_edac: Report CE events properly + - LP: #1393477 + * i82860_edac: Report CE events properly + - LP: #1393477 + * cpc925_edac: Report UE events properly + - LP: #1393477 + * e7xxx_edac: Report CE events properly + - LP: #1393477 + * scsi: Fix error handling in SCSI_IOCTL_SEND_COMMAND + - LP: #1393477 + * usb: serial: ftdi_sio: add "bricked" FTDI device PID + - LP: #1393477 + * usb: musb: cppi41: restart hrtimer only if not yet done + - LP: #1393477 + * usb: gadget: udc: core: fix kernel oops with soft-connect + - LP: #1393477 + * nfsd4: fix crash on unknown operation number + - LP: #1393477 + * iwlwifi: configure the LTR + - LP: #1393477 + * mac80211: add vif to flush call + - LP: #1393477 + * iwlwifi: dvm: drop non VO frames when flushing + - LP: #1393477 + * usb: dwc3: gadget: Properly initialize LINK TRB + - LP: #1393477 + * Input: i8042 - quirks for Fujitsu Lifebook A544 and Lifebook AH544 + - LP: #1393477 + * posix-timers: Fix stack info leak in timer_create() + - LP: #1393477 + * futex: Fix a race condition between REQUEUE_PI and task death + - LP: #1393477 + * PM / Sleep: fix recovery during resuming from hibernation + - LP: #1393477 + * ALSA: pcm: Zero-clear reserved fields of PCM status ioctl in compat + mode + - LP: #1393477 + * ima: check xattr value length and type in the ima_inode_setxattr() + - LP: #1393477 + * evm: check xattr value length and type in evm_inode_setxattr() + - LP: #1393477 + * drm/radeon/dpm: disable ulv support on SI + - LP: #1393477 + * drm/radeon: dpm fixes for asrock systems + - LP: #1393477 + * drm/radeon: remove invalid pci id + - LP: #1393477 + * x86, pageattr: Prevent overflow in slow_virt_to_phys() for X86_PAE + - LP: #1393477 + * cgroup/kmemleak: add kmemleak_free() for cgroup deallocations. + - LP: #1393477 + * mm: free compound page with correct order + - LP: #1393477 + * mm, thp: fix collapsing of hugepages on madvise + - LP: #1393477 + * lib/bitmap.c: fix undefined shift in __bitmap_shift_{left|right}() + - LP: #1393477 + * ext4: fix overflow when updating superblock backups after resize + - LP: #1393477 + * ext4: fix oops when loading block bitmap failed + - LP: #1393477 + * ext4: enable journal checksum when metadata checksum feature enabled + - LP: #1393477 + * ext4: bail out from make_indexed_dir() on first error + - LP: #1393477 + * PCI: Rename sysfs 'enabled' file back to 'enable' + - LP: #1393477 + * wireless: rt2x00: add new rt2800usb device + - LP: #1393477 + * fs: allow open(dir, O_TMPFILE|..., 0) with mode 0 + - LP: #1393477 + * tracing/syscalls: Ignore numbers outside NR_syscalls' range + - LP: #1393477 + * x86_64, entry: Fix out of bounds read on sysenter + - LP: #1393477 + * ACPI / EC: Add support to disallow QR_EC to be issued when SCI_EVT + isn't set + - LP: #1393477 + * ACPI / EC: Fix regression due to conflicting firmware behavior between + Samsung and Acer. + - LP: #1393477 + * net: sctp: fix skb_over_panic when receiving malformed ASCONF chunks + - LP: #1393477 + * net: sctp: fix panic on duplicate ASCONF chunks + - LP: #1393477 + * net: sctp: fix remote memory pressure from excessive queueing + - LP: #1393477 + * Linux 3.13.11.11 + - LP: #1393477 + * MAINTAINERS: Update APM X-Gene section + - LP: #1381084 + * Documentation: dts: Update section header for APM X-Gene + - LP: #1381084 + * dtb: Add 10GbE node to APM X-Gene SoC device tree + - LP: #1381084 + * drivers: net: xgene: Preparing for adding 10GbE support + - LP: #1381084 + * drivers: net: xgene: Add 10GbE support + - LP: #1381084 + * drivers: net: xgene: Add 10GbE ethtool support + - LP: #1381084 + * dtb: Add SGMII based 1GbE node to APM X-Gene SoC device tree + - LP: #1381216 + * drivers: net: xgene: Preparing for adding SGMII based 1GbE + - LP: #1381216 + * drivers: net: xgene: Add SGMII based 1GbE support + - LP: #1381216 + * drivers: net: xgene: Add SGMII based 1GbE ethtool support + - LP: #1381216 + * drivers: net: xgene: Rewrite buggy loop in xgene_enet_ecc_init() + - LP: #1381216 + * dtb: xgene: fix: Backward compatibility with older firmware + - LP: #1381084, #1381216 + * drivers: net: xgene: Backward compatibility with older firmware + - LP: #1381084, #1381216 + * drivers: net: xgene: fix: Use separate resources + - LP: #1381216 + * HID: Add the transport-driver functions to the HIDP driver. + - LP: #1393764 + * ipc: fix compat msgrcv with negative msgtyp + - LP: #1393355 + + -- Luis Henriques Tue, 25 Nov 2014 12:07:01 +0000 + +linux (3.13.0-40.69) trusty; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - re-used previous tracking bug + + [ Upstream Kernel Changes ] + + * regmap: fix kernel hang on regmap_bulk_write with zero val_count. + + -- Luis Henriques Thu, 13 Nov 2014 17:13:01 +0000 + +linux (3.13.0-40.68) trusty; urgency=low + + [ Brad Figg ] + + * Release Tracking Bug + - LP: #1388943 + * SAUCE: DEP8 test to run our regression tests + - LP: #1385330 + * SAUCE: The very first thing we should do when testing is make sure we + are testing the correct kernel + - LP: #1385330 + + [ dann frazier ] + + * [Config] Disable CONFIG_IPMI_SI_PROBE_DEFAULTS on armhf and arm64 + - LP: #1388952 + + [ Duc Dang ] + + * SAUCE: (no-up) [PCIE] APM X-Gene: Remove debug messages in MSI + interrupt handler path. + - LP: #1382244 + * SAUCE: (no-up) PCI: X-Gene: Fix max payload size and phantom function + configuration + - LP: #1386261 + + [ McAulay, Alistair ] + + * SAUCE: drm/i915: Rework GPU reset sequence to match driver load & thaw + - LP: #1384469 + + [ Timo Aaltonen ] + + * SAUCE: i915_bdw: Fix cherry-pick typo + - LP: #1384469 + + [ Upstream Kernel Changes ] + + * Revert "mac80211: disable uAPSD if all ACs are under ACM" + - LP: #1381234 + * Revert "iwlwifi: dvm: don't enable CTS to self" + - LP: #1381234 + * Revert "lzo: properly check for overruns" + - LP: #1387886 + * drm/i915: provide interface for audio driver to query cdclk + - LP: #1381168 + * regulatory: add NUL to alpha2 + - LP: #1381234 + * percpu: fix pcpu_alloc_pages() failure path + - LP: #1381234 + * percpu: perform tlb flush after pcpu_map_pages() failure + - LP: #1381234 + * cgroup: reject cgroup names with '\n' + - LP: #1381234 + * vfs: add d_is_dir() + - LP: #1381234 + * CIFS: Fix directory rename error + - LP: #1381234 + * usb: phy: twl4030-usb: Fix lost interrupts after ID pin goes down + - LP: #1381234 + * rtlwifi: rtl8192cu: Add new ID + - LP: #1381234 + * CIFS: Fix wrong restart readdir for SMB1 + - LP: #1381234 + * CIFS: Fix wrong filename length for SMB2 + - LP: #1381234 + * ahci: Add Device IDs for Intel 9 Series PCH + - LP: #1381234 + * ata_piix: Add Device IDs for Intel 9 Series PCH + - LP: #1381234 + * USB: zte_ev: fix removed PIDs + - LP: #1381234 + * USB: ftdi_sio: add support for NOVITUS Bono E thermal printer + - LP: #1381234 + * USB: sierra: avoid CDC class functions on "68A3" devices + - LP: #1381234 + * USB: sierra: add 1199:68AA device ID + - LP: #1381234 + * iommu/arm-smmu: fix programming of SMMU_CBn_TCR for stage 1 + - LP: #1381234 + * iommu/arm-smmu: remove pgtable_page_{c,d}tor() + - LP: #1381234 + * usb: gadget: fusb300_udc.h: Fix typo in include guard + - LP: #1381234 + * usb: phy: tegra: Avoid use of sizeof(void) + - LP: #1381234 + * arm64: use irq_set_affinity with force=false when migrating irqs + - LP: #1381234 + * block: Fix dev_t minor allocation lifetime + - LP: #1381234 + * usb: dwc3: core: fix order of PM runtime calls + - LP: #1381234 + * usb: dwc3: core: fix ordering for PHY suspend + - LP: #1381234 + * usb: dwc3: omap: fix ordering for runtime pm calls + - LP: #1381234 + * iommu/fsl: Fix warning resulting from adding PCI device twice + - LP: #1381234 + * ahci: add pcid for Marvel 0x9182 controller + - LP: #1381234 + * drm/i915: Fix EIO/wedged handling in gem fault handler + - LP: #1381234 + * ACPI / RTC: Fix CMOS RTC opregion handler accesses to wrong addresses + - LP: #1381234 + * drm/i915: Evict CS TLBs between batches + - LP: #1381234 + * drm/i915: Wait for vblank before enabling the TV encoder + - LP: #1381234 + * lockd: fix rpcbind crash on lockd startup failure + - LP: #1381234 + * drm/radeon: fix semaphore value init + - LP: #1381234 + * drm/radeon: add connector quirk for fujitsu board + - LP: #1381234 + * imx-drm: ipuv3-plane: fix ipu_plane_dpms() + - LP: #1381234 + * usb: host: xhci: fix compliance mode workaround + - LP: #1381234 + * Input: elantech - fix detection of touchpad on ASUS s301l + - LP: #1381234 + * USB: ftdi_sio: Add support for GE Healthcare Nemo Tracker device + - LP: #1381234 + * uwb: init beacon cache entry before registering uwb device + - LP: #1381234 + * nfs: fix kernel warning when removing proc entry + - LP: #1381234 + * drm/radeon/dpm: set the thermal type properly for special configs + - LP: #1381234 + * dm cache: fix race causing dirty blocks to be marked as clean + - LP: #1381234 + * libceph: gracefully handle large reply messages from the mon + - LP: #1381234 + * Input: serport - add compat handling for SPIOCSTYPE ioctl + - LP: #1381234 + * usb: hub: take hub->hdev reference when processing from eventlist + - LP: #1381234 + * eventpoll: fix uninitialized variable in epoll_ctl + - LP: #1381234 + * kcmp: fix standard comparison bug + - LP: #1381234 + * fsnotify/fdinfo: use named constants instead of hardcoded values + - LP: #1381234 + * fs/notify: don't show f_handle if exportfs_encode_inode_fh failed + - LP: #1381234 + * arm64: flush TLS registers during exec + - LP: #1381234 + * storage: Add single-LUN quirk for Jaz USB Adapter + - LP: #1381234 + * xhci: Fix null pointer dereference if xhci initialization fails + - LP: #1381234 + * usb: xhci: Fix OOPS in xhci error handling code + - LP: #1381234 + * xhci: fix oops when xhci resumes from hibernate with hw lpm capable + devices + - LP: #1381234 + * drm/ast: open key before detect chips + - LP: #1381234 + * drm/ast: AST2000 cannot be detected correctly + - LP: #1381234 + * futex: Unlock hb->lock in futex_wait_requeue_pi() error path + - LP: #1381234 + * jiffies: Fix timeval conversion to jiffies + - LP: #1381234 + * alarmtimer: Return relative times in timer_gettime + - LP: #1381234 + * alarmtimer: Do not signal SIGEV_NONE timers + - LP: #1381234 + * alarmtimer: Lock k_itimer during timer callback + - LP: #1381234 + * parisc: Implement new LWS CAS supporting 64 bit operations. + - LP: #1381234 + * don't bugger nd->seq on set_root_rcu() from follow_dotdot_rcu() + - LP: #1381234 + * be careful with nd->inode in path_init() and follow_dotdot_rcu() + - LP: #1381234 + * iio:inkern: fix overwritten -EPROBE_DEFER in of_iio_channel_get_by_name + - LP: #1381234 + * iio:trigger: modify return value for iio_trigger_get + - LP: #1381234 + * iio: accel: bma180: Fix indio_dev->trig assignment + - LP: #1381234 + * iio: adc: ad_sigma_delta: Fix indio_dev->trig assignment + - LP: #1381234 + * iio: hid_sensor_hub: Fix indio_dev->trig assignment + - LP: #1381234 + * iio: st_sensors: Fix indio_dev->trig assignment + - LP: #1381234 + * iio: gyro: itg3200: Fix indio_dev->trig assignment + - LP: #1381234 + * iio: inv_mpu6050: Fix indio_dev->trig assignment + - LP: #1381234 + * iio: meter: ade7758: Fix indio_dev->trig assignment + - LP: #1381234 + * MIPS: ZBOOT: add missing include + - LP: #1381234 + * spi: fsl: Don't use devm_kzalloc in master->setup callback + - LP: #1381234 + * spi: dw: Don't use devm_kzalloc in master->setup callback + - LP: #1381234 + * ARM: 8133/1: use irq_set_affinity with force=false when migrating irqs + - LP: #1381234 + * cx18: fix kernel oops with tda8290 tuner + - LP: #1381234 + * ASoC: davinci-mcasp: Correct rx format unit configuration + - LP: #1381234 + * spi: sirf: enable RX_IO_DMA_INT interrupt + - LP: #1381234 + * perf: Fix a race condition in perf_remove_from_context() + - LP: #1381234 + * ASoC: samsung-i2s: Maintain CDCLK settings across + i2s_{shutdown/startup} + - LP: #1381234 + * ASoC: samsung-i2s: Check secondary DAI exists before referencing + - LP: #1381234 + * ALSA: hda - Fix invalid pin powermap without jack detection + - LP: #1381234 + * Input: atkbd - do not try 'deactivate' keyboard on any LG laptops + - LP: #1381234 + * Input: i8042 - add Fujitsu U574 to no_timeout dmi table + - LP: #1381234 + * Input: i8042 - add nomux quirk for Avatar AVIU-145A6 + - LP: #1381234 + * iio: adc: at91: don't use the last converted data register + - LP: #1381234 + * iio:magnetometer: bugfix magnetometers gain values + - LP: #1381234 + * drm/i915: Fix SRC_COPY width on 830/845g + - LP: #1381234 + * Target/iser: Get isert_conn reference once got to connected_handler + - LP: #1381234 + * Target/iser: Don't put isert_conn inside disconnected handler + - LP: #1381234 + * ARM: 8148/1: flush TLS and thumbee register state during exec + - LP: #1381234 + * x86, ia64: Move EFI_FB vga_default_device() initialization to + pci_vga_fixup() + - LP: #1381234 + * vgaarb: Don't default exclusively to first video device with mem+io + - LP: #1381234 + * iscsi-target: Fix memory corruption in + iscsit_logout_post_handler_diffcid + - LP: #1381234 + * iscsi-target: avoid NULL pointer in iscsi_copy_param_list failure + - LP: #1381234 + * NFSv4: nfs4_state_manager() vs. nfs_server_remove_lists() + - LP: #1381234 + * NFSv4: Fix another bug in the close/open_downgrade code + - LP: #1381234 + * drm/radeon: don't reset dma on NI/SI init + - LP: #1381234 + * drm/radeon: don't reset sdma on CIK init + - LP: #1381234 + * drm/radeon: don't reset dma on r6xx-evergreen init + - LP: #1381234 + * vgaswitcheroo: add vga_switcheroo_fini_domain_pm_ops + - LP: #1381234 + * drm/radeon/px: fix module unload + - LP: #1381234 + * drm/nouveau/runpm: fix module unload + - LP: #1381234 + * libiscsi: fix potential buffer overrun in __iscsi_conn_send_pdu + - LP: #1381234 + * USB: EHCI: unlink QHs even after the controller has stopped + - LP: #1381234 + * USB: storage: Add quirk for Adaptec USBConnect 2000 USB-to-SCSI Adapter + - LP: #1381234 + * USB: storage: Add quirk for Ariston Technologies iConnect USB to SCSI + adapter + - LP: #1381234 + * USB: storage: Add quirks for Entrega/Xircom USB to SCSI converters + - LP: #1381234 + * drm/nouveau: ltc/gf100-: fix cbc issues on certain boards + - LP: #1381234 + * iwlwifi: increase DEFAULT_MAX_TX_POWER + - LP: #1381234 + * iwlwifi: mvm: treat EAPOLs like mgmt frames wrt rate + - LP: #1381234 + * workqueue: apply __WQ_ORDERED to create_singlethread_workqueue() + - LP: #1381234 + * can: flexcan: mark TX mailbox as TX_INACTIVE + - LP: #1381234 + * can: flexcan: correctly initialize mailboxes + - LP: #1381234 + * can: flexcan: implement workaround for errata ERR005829 + - LP: #1381234 + * can: flexcan: put TX mailbox into TX_INACTIVE mode after tx-complete + - LP: #1381234 + * can: at91_can: add missing prepare and unprepare of the clock + - LP: #1381234 + * IB/qib: Correct reference counting in debugfs qp_stats + - LP: #1381234 + * videobuf2-dma-sg: fix for wrong GFP mask to sg_alloc_table_from_pages + - LP: #1381234 + * vb2: fix plane index sanity check in vb2_plane_cookie() + - LP: #1381234 + * adv7604: fix inverted condition + - LP: #1381234 + * md/raid1: intialise start_next_window for READ case to avoid hang + - LP: #1381234 + * md/raid1: be more cautious where we read-balance during resync. + - LP: #1381234 + * md/raid1: clean up request counts properly in close_sync() + - LP: #1381234 + * md/raid1: make sure resync waits for conflicting writes to complete. + - LP: #1381234 + * md/raid1: Don't use next_resync to determine how far resync has + progressed + - LP: #1381234 + * md/raid1: update next_resync under resync_lock. + - LP: #1381234 + * md/raid1: count resync requests in nr_pending. + - LP: #1381234 + * md/raid1: fix_read_error should act on all non-faulty devices. + - LP: #1381234 + * ALSA: pcm: fix fifo_size frame calculation + - LP: #1381234 + * Fix nasty 32-bit overflow bug in buffer i/o code. + - LP: #1381234 + * drm/radeon/cik: use a separate counter for CP init timeout + - LP: #1381234 + * parisc: Only use -mfast-indirect-calls option for 32-bit kernel builds + - LP: #1381234 + * sched: Fix unreleased llc_shared_mask bit during CPU hotplug + - LP: #1381234 + * MIPS: mcount: Adjust stack pointer for static trace in MIPS32 + - LP: #1381234 + * nilfs2: fix data loss with mmap() + - LP: #1381234 + * ocfs2/dlm: do not get resource spinlock if lockres is new + - LP: #1381234 + * mm, slab: initialize object alignment on cache creation + - LP: #1381234 + * mm: softdirty: keep bit when zapping file pte + - LP: #1381234 + * shmem: fix nlink for rename overwrite directory + - LP: #1381234 + * ARM: 8165/1: alignment: don't break misaligned NEON load/store + - LP: #1381234 + * ASoC: core: fix possible ZERO_SIZE_PTR pointer dereferencing error. + - LP: #1381234 + * cpufreq: integrator: fix integrator_cpufreq_remove return type + - LP: #1381234 + * drm/i915: Flush the PTEs after updating them before suspend + - LP: #1381234 + * ARM: 8178/1: fix set_tls for !CONFIG_KUSER_HELPERS + - LP: #1381234 + * md/raid5: disable 'DISCARD' by default due to safety concerns. + - LP: #1381234 + * mm: migrate: Close race between migration completion and mprotect + - LP: #1381234 + * mm: numa: Do not mark PTEs pte_numa when splitting huge pages + - LP: #1381234 + * Fix problem recognizing symlinks + - LP: #1381234 + * mm: memcontrol: do not iterate uninitialized memcgs + - LP: #1381234 + * perf: fix perf bug in fork() + - LP: #1381234 + * mm: page_alloc: fix zone allocation fairness on UP + - LP: #1381234 + * init/Kconfig: Hide printk log config if CONFIG_PRINTK=n + - LP: #1381234 + * init/Kconfig: Fix HAVE_FUTEX_CMPXCHG to not break up the EXPERT menu + - LP: #1381234 + * genhd: fix leftover might_sleep() in blk_free_devt() + - LP: #1381234 + * Linux 3.13.11.9 + - LP: #1381234 + * NVMe: Initialize device reference count earlier + - LP: #1382221 + * nfs: fix duplicate proc entries + - LP: #1376245 + * xfs: xfs_dir2_block_to_sf temp buffer allocation fails + - LP: #1382333 + * UPSTREAM: kernel: Mark function as static in kernel/seccomp.c + - LP: #1379020 + * ARM: 8087/1: ptrace: reload syscall number after secure_computing() + check + - LP: #1379020 + * seccomp: create internal mode-setting function + - LP: #1379020 + * seccomp: extract check/assign mode helpers + - LP: #1379020 + * seccomp: split mode setting routines + - LP: #1379020 + * seccomp: add "seccomp" syscall + - LP: #1379020 + * ARM: add seccomp syscall + - LP: #1379020 + * MIPS: add seccomp syscall + - LP: #1379020 + * sched: move no_new_privs into new atomic flags + - LP: #1379020 + * seccomp: split filter prep from check and apply + - LP: #1379020 + * seccomp: introduce writer locking + - LP: #1379020 + * seccomp: allow mode setting across threads + - LP: #1379020 + * seccomp: implement SECCOMP_FILTER_FLAG_TSYNC + - LP: #1379020 + * seccomp: Replace BUG(!spin_is_locked()) with assert_spin_lock + - LP: #1379020 + * fs: Add a missing permission check to do_umount + - LP: #1383358 + - CVE-2014-7975 + * mfd: rtsx_pcr: Fix MSI enable error handling + - LP: #1366841 + * xen/balloon: Don't continue ballooning when BP_ECANCELED is encountered + - LP: #1304001 + * Bluetooth: Fix HCI H5 corrupted ack value + - LP: #1387886 + * dmaengine: fix xor sources continuation + - LP: #1387886 + * siano: add support for PCTV 77e + - LP: #1387886 + * em28xx-v4l: give back all active video buffers to the vb2 core properly + on streaming stop + - LP: #1387886 + * em28xx-v4l: fix video buffer field order reporting in progressive mode + - LP: #1387886 + * crypto: caam - fix addressing of struct member + - LP: #1387886 + * x86, fpu: shift drop_init_fpu() from save_xstate_sig() to + handle_signal() + - LP: #1387886 + * x86, fpu: __restore_xstate_sig()->math_state_restore() needs + preempt_disable() + - LP: #1387886 + * KVM: do not bias the generation number in kvm_current_mmio_generation + - LP: #1387886 + * kvm: fix potentially corrupt mmio cache + - LP: #1387886 + * kvm: x86: fix stale mmio cache bug + - LP: #1387886 + * UBIFS: fix free log space calculation + - LP: #1387886 + * Bluetooth: Fix issue with USB suspend in btusb driver + - LP: #1387886 + * mmc: rtsx_pci_sdmmc: fix incorrect last byte in R2 response + - LP: #1387886 + * KVM: s390: unintended fallthrough for external call + - LP: #1387886 + * UBI: add missing kmem_cache_free() in process_pool_aeb error path + - LP: #1387886 + * PCI: Increase IBM ipr SAS Crocodile BARs to at least system page size + - LP: #1387886 + * drbd: compute the end before rb_insert_augmented() + - LP: #1387886 + * Bluetooth: Fix setting correct security level when initiating SMP + - LP: #1387886 + * mmc: tmio: prevent endless loop in tmio_mmc_set_clock() + - LP: #1387886 + * iwlwifi: Add missing PCI IDs for the 7260 series + - LP: #1387886 + * media: usb: uvc: add a quirk for Dell XPS M1330 webcam + - LP: #1387886 + * USB: serial: cp210x: added Ketra N1 wireless interface support + - LP: #1387886 + * USB: cp210x: add support for Seluxit USB dongle + - LP: #1387886 + * PCI: Generate uppercase hex for modalias interface class + - LP: #1387886 + * PCI: mvebu: Fix uninitialized variable in mvebu_get_tgt_attr() + - LP: #1387886 + * xfs: ensure WB_SYNC_ALL writeback handles partial pages correctly + - LP: #1387886 + * v4l2-common: fix overflow in v4l_bound_align_image() + - LP: #1387886 + * USB: Add device quirk for ASUS T100 Base Station keyboard + - LP: #1387886 + * mei: bus: fix possible boundaries violation + - LP: #1387886 + * firmware_class: make sure fw requests contain a name + - LP: #1387886 + * Drivers: hv: vmbus: Cleanup vmbus_post_msg() + - LP: #1387886 + * Drivers: hv: vmbus: Cleanup vmbus_teardown_gpadl() + - LP: #1387886 + * Drivers: hv: vmbus: Cleanup vmbus_establish_gpadl() + - LP: #1387886 + * Drivers: hv: vmbus: Fix a bug in vmbus_open() + - LP: #1387886 + * Drivers: hv: vmbus: Cleanup vmbus_close_internal() + - LP: #1387886 + * Drivers: hv: vmbus: Cleanup hv_post_message() + - LP: #1387886 + * spi: dw-mid: respect 8 bit mode + - LP: #1387886 + * spi: dw-mid: terminate ongoing transfers at exit + - LP: #1387886 + * kvm: don't take vcpu mutex for obviously invalid vcpu ioctls + - LP: #1387886 + * x86/intel/quark: Switch off CR4.PGE so TLB flush uses CR3 instead + - LP: #1387886 + * ARM: at91: fix at91sam9263ek DT mmc pinmuxing settings + - LP: #1387886 + * ARM: at91/PMC: don't forget to write PMC_PCDR register to disable + clocks + - LP: #1387886 + * Fixing lease renewal + - LP: #1387886 + * lockd: Try to reconnect if statd has moved + - LP: #1387886 + * qla2xxx: Use correct offset to req-q-out for reserve calculation + - LP: #1387886 + * power: charger-manager: Fix NULL pointer exception with missing + cm-fuel-gauge + - LP: #1387886 + * rt2800: correct BBP1_TX_POWER_CTRL mask + - LP: #1387886 + * regmap: fix NULL pointer dereference in _regmap_write/read + - LP: #1387886 + * Documentation: lzo: document part of the encoding + - LP: #1387886 + * lzo: check for length overrun in variable length encoding. + - LP: #1387886 + * regmap: debugfs: fix possbile NULL pointer dereference + - LP: #1387886 + * regmap: fix possible ZERO_SIZE_PTR pointer dereferencing error. + - LP: #1387886 + * net_dma: simple removal + - LP: #1387886 + * libata-sff: Fix controllers with no ctl port + - LP: #1387886 + * NFSv4: Fix lock recovery when CREATE_SESSION/SETCLIENTID_CONFIRM fails + - LP: #1387886 + * NFSv4: fix open/lock state recovery error handling + - LP: #1387886 + * tty: omap-serial: fix division by zero + - LP: #1387886 + * serial: 8250: Add Quark X1000 to 8250_pci.c + - LP: #1387886 + * missing data dependency barrier in prepend_name() + - LP: #1387886 + * be2iscsi: check ip buffer before copying + - LP: #1387886 + * framebuffer: fix border color + - LP: #1387886 + * framebuffer: fix screen corruption when copying + - LP: #1387886 + * mpc85xx_edac: Make L2 interrupt shared too + - LP: #1387886 + * NFSv4.1: Fix an NFSv4.1 state renewal regression + - LP: #1387886 + * xen-blkback: fix leak on grant map error path + - LP: #1387886 + * m68k: Disable/restore interrupts in hwreg_present()/hwreg_write() + - LP: #1387886 + * ASoC: tlv320aic3x: fix PLL D configuration + - LP: #1387886 + * dm bufio: update last_accessed when relinking a buffer + - LP: #1387886 + * dm bufio: when done scanning return from __scan immediately + - LP: #1387886 + * dm log userspace: fix memory leak in dm_ulog_tfr_init failure path + - LP: #1387886 + * ecryptfs: avoid to access NULL pointer when write metadata in xattr + - LP: #1387886 + * x86_64, entry: Filter RFLAGS.NT on entry from userspace + - LP: #1387886 + * ASoC: soc-dapm: fix use after free + - LP: #1387886 + * pata_serverworks: disable 64-KB DMA transfers on Broadcom OSB4 IDE + Controller + - LP: #1387886 + * drm/ast: Fix HW cursor image + - LP: #1387886 + * x86: Reject x32 executables if x32 ABI not supported + - LP: #1387886 + * kill wbuf_queued/wbuf_dwork_lock + - LP: #1387886 + * fs: Fix theoretical division by 0 in super_cache_scan(). + - LP: #1387886 + * fs: make cont_expand_zero interruptible + - LP: #1387886 + * fix misuses of f_count() in ppp and netlink + - LP: #1387886 + * block: fix alignment_offset math that assumes io_min is a power-of-2 + - LP: #1387886 + * fanotify: enable close-on-exec on events' fd when requested in + fanotify_init() + - LP: #1387886 + * mm: clear __GFP_FS when PF_MEMALLOC_NOIO is set + - LP: #1387886 + * Input: i8042 - add noloop quirk for Asus X750LN + - LP: #1387886 + * um: ubd: Fix for processes stuck in D state forever + - LP: #1387886 + * kernel: add support for gcc 5 + - LP: #1387886 + * ALSA: emu10k1: Fix deadlock in synth voice lookup + - LP: #1387886 + * libceph: ceph-msgr workqueue needs a resque worker + - LP: #1387886 + * mnt: Prevent pivot_root from creating a loop in the mount tree + - LP: #1387886 + * modules, lock around setting of MODULE_STATE_UNFORMED + - LP: #1387886 + * virtio_pci: fix virtio spec compliance on restore + - LP: #1387886 + * selinux: fix inode security list corruption + - LP: #1387886 + * pstore: Fix duplicate {console,ftrace}-efi entries + - LP: #1387886 + * futex: Ensure get_futex_key_refs() always implies a barrier + - LP: #1387886 + * x86,kvm,vmx: Preserve CR4 across VM entry + - LP: #1387886 + * crypto: caam - remove duplicated sg copy functions + - LP: #1387886 + * Linux 3.13.11.10 + - LP: #1387886 + * ipmi: Turn off default probing of interfaces + - LP: #1388952 + + -- Tim Gardner Wed, 29 Oct 2014 14:39:14 -0400 + +linux (3.13.0-39.66) trusty; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - LP: #1386629 + + [ Upstream Kernel Changes ] + + * KVM: x86: Check non-canonical addresses upon WRMSR + - LP: #1384539 + - CVE-2014-3610 + * KVM: x86: Prevent host from panicking on shared MSR writes. + - LP: #1384539 + - CVE-2014-3610 + * KVM: x86: Improve thread safety in pit + - LP: #1384540 + - CVE-2014-3611 + * KVM: x86: Fix wrong masking on relative jump/call + - LP: #1384545 + - CVE-2014-3647 + * KVM: x86: Warn if guest virtual address space is not 48-bits + - LP: #1384545 + - CVE-2014-3647 + * KVM: x86: Emulator fixes for eip canonical checks on near branches + - LP: #1384545 + - CVE-2014-3647 + * KVM: x86: emulating descriptor load misses long-mode case + - LP: #1384545 + - CVE-2014-3647 + * KVM: x86: Handle errors when RIP is set during far jumps + - LP: #1384545 + - CVE-2014-3647 + * kvm: vmx: handle invvpid vm exit gracefully + - LP: #1384544 + - CVE-2014-3646 + * Input: synaptics - gate forcepad support by DMI check + - LP: #1381815 + + -- Luis Henriques Tue, 28 Oct 2014 10:29:51 +0000 + +linux (3.13.0-38.65) trusty; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - LP: #1379244 + + [ Andy Whitcroft ] + + * Revert "SAUCE: scsi: hyper-v storsvc switch up to SPC-3" + - LP: #1354397 + * [Config] linux-image-extra is additive to linux-image + - LP: #1375310 + * [Config] linux-image-extra postrm is not needed on purge + - LP: #1375310 + + [ Upstream Kernel Changes ] + + * Revert "KVM: x86: Increase the number of fixed MTRR regs to 10" + - LP: #1377564 + * Revert "USB: option,zte_ev: move most ZTE CDMA devices to zte_ev" + - LP: #1377564 + * aufs: bugfix, stop calling security_mmap_file() again + - LP: #1371316 + * ipvs: fix ipv6 hook registration for local replies + - LP: #1349768 + * Drivers: add blist flags + - LP: #1354397 + * sd: fix a bug in deriving the FLUSH_TIMEOUT from the basic I/O timeout + - LP: #1354397 + * drm/i915/bdw: Add 42ms delay for IPS disable + - LP: #1374389 + * drm/i915: add null render states for gen6, gen7 and gen8 + - LP: #1374389 + * drm/i915/bdw: 3D_CHICKEN3 has write mask bits + - LP: #1374389 + * drm/i915/bdw: Disable idle DOP clock gating + - LP: #1374389 + * drm/i915: call lpt_init_clock_gating on BDW too + - LP: #1374389 + * drm/i915: shuffle panel code + - LP: #1374389 + * drm/i915: extract backlight minimum brightness from VBT + - LP: #1374389 + * drm/i915: respect the VBT minimum backlight brightness + - LP: #1374389 + * drm/i915/bdw: Apply workarounds in render ring init function + - LP: #1374389 + * drm/i915/bdw: Cleanup pre prod workarounds + - LP: #1374389 + * drm/i915: Replace hardcoded cacheline size with macro + - LP: #1374389 + * drm/i915: Refactor Broadwell PIPE_CONTROL emission into a helper. + - LP: #1374389 + * drm/i915: Add the WaCsStallBeforeStateCacheInvalidate:bdw workaround. + - LP: #1374389 + * drm/i915/bdw: Remove BDW preproduction W/As until C stepping. + - LP: #1374389 + * mptfusion: enable no_write_same for vmware scsi disks + - LP: #1371591 + * iommu/amd: Fix cleanup_domain for mass device removal + - LP: #1375266 + * cifs: mask off top byte in get_rfc1002_length() + - LP: #1372482 + * Input: synaptics - add support for ForcePads + - LP: #1377564 + * ASoC: pxa-ssp: drop SNDRV_PCM_FMTBIT_S24_LE + - LP: #1377564 + * drm/radeon: add bapm module parameter + - LP: #1377564 + * drm/radeon: Add missing lines to ci_set_thermal_temperature_range + - LP: #1377564 + * drm/radeon: Add ability to get and change dpm state when radeon PX card + is turned off + - LP: #1377564 + * ALSA: hda/realtek - Avoid setting wrong COEF on ALC269 & co + - LP: #1377564 + * of/irq: Fix lookup to use 'interrupts-extended' property first + - LP: #1377564 + * Possible null ptr deref in SMB2_tcon + - LP: #1377564 + * CIFS: Fix SMB2 readdir error handling + - LP: #1377564 + * CIFS: Fix wrong directory attributes after rename + - LP: #1377564 + * md/raid6: avoid data corruption during recovery of double-degraded + RAID6 + - LP: #1377564 + * ARM: dts: i.MX53: fix apparent bug in VPU clks + - LP: #1377564 + * pata_scc: propagate return value of scc_wait_after_reset + - LP: #1377564 + * libata: widen Crucial M550 blacklist matching + - LP: #1377564 + * ALSA: hda - restore the gpio led after resume + - LP: #1358116, #1377564 + * md/raid10: fix memory leak when reshaping a RAID10. + - LP: #1377564 + * md/raid10: Fix memory leak when raid10 reshape completes. + - LP: #1377564 + * MIPS: OCTEON: make get_system_type() thread-safe + - LP: #1377564 + * can: c_can: checking IS_ERR() instead of NULL + - LP: #1377564 + * HID: logitech: perform bounds checking on device_id early enough + - LP: #1377564 + * firmware: Do not use WARN_ON(!spin_is_locked()) + - LP: #1377564 + * drm/radeon: add new KV pci id + - LP: #1377564 + * drm/radeon: add new bonaire pci ids + - LP: #1377564 + * drm/radeon: add additional SI pci ids + - LP: #1377564 + * ibmveth: Fix endian issues with rx_no_buffer statistic + - LP: #1377564 + * spi/omap-mcspi: Fix the spi task hangs waiting dma_rx + - LP: #1377564 + * xtensa: replace IOCTL code definitions with constants + - LP: #1377564 + * xtensa: fix address checks in dma_{alloc,free}_coherent + - LP: #1377564 + * xtensa: fix access to THREAD_RA/THREAD_SP/THREAD_DS + - LP: #1377564 + * xtensa: fix TLBTEMP_BASE_2 region handling in fast_second_level_miss + - LP: #1377564 + * xtensa: fix a6 and a7 handling in fast_syscall_xtensa + - LP: #1377564 + * staging: lustre: Remove circular dependency on header + - LP: #1377564 + * USB: option: reduce interrupt-urb logging verbosity + - LP: #1377564 + * USB: option: add VIA Telecom CDS7 chipset device id + - LP: #1377564 + * USB: zte_ev: remove duplicate Gobi PID + - LP: #1377564 + * USB: zte_ev: remove duplicate Qualcom PID + - LP: #1377564 + * USB: ftdi_sio: add Basic Micro ATOM Nano USB2Serial PID + - LP: #1377564 + * USB: serial: pl2303: add device id for ztek device + - LP: #1377564 + * USB: ftdi_sio: Added PID for new ekey device + - LP: #1377564 + * xhci: Treat not finding the event_seg on COMP_STOP the same as + COMP_STOP_INVAL + - LP: #1377564 + * usb: xhci: amd chipset also needs short TX quirk + - LP: #1377564 + * xhci: rework cycle bit checking for new dequeue pointers + - LP: #1377564 + * spi/pxa2xx: Add ACPI ID for Intel Braswell + - LP: #1377564 + * ALSA: core: fix buffer overflow in snd_info_get_line() + - LP: #1377564 + * HID: logitech-dj: prevent false errors to be shown + - LP: #1377564 + * usb: ehci: using wIndex + 1 for hub port + - LP: #1377564 + * staging/rtl8188eu: add 0df6:0076 Sitecom Europe B.V. + - LP: #1377564 + * staging: r8188eu: Add new USB ID + - LP: #1377564 + * mtd: nand: omap: Fix 1-bit Hamming code scheme, omap_calculate_ecc() + - LP: #1377564 + * trace: Fix epoll hang when we race with new entries + - LP: #1377564 + * cfq-iosched: Fix wrong children_weight calculation + - LP: #1377564 + * USB: sisusb: add device id for Magic Control USB video + - LP: #1377564 + * NFSv4: Fix problems with close in the presence of a delegation + - LP: #1377564 + * usb: hub: Prevent hub autosuspend if usbcore.autosuspend is -1 + - LP: #1377564 + * ARM: 8128/1: abort: don't clear the exclusive monitors + - LP: #1377564 + * ARM: 8129/1: errata: work around Cortex-A15 erratum 830321 using dummy + strex + - LP: #1377564 + * USB: serial: fix potential stack buffer overflow + - LP: #1377564 + * USB: serial: fix potential heap buffer overflow + - LP: #1377564 + * ext4: update i_disksize coherently with block allocation on error path + - LP: #1377564 + * jbd2: fix infinite loop when recovering corrupt journal blocks + - LP: #1377564 + * jbd2: fix descriptor block size handling errors with journal_csum + - LP: #1377564 + * memblock, memhotplug: fix wrong type in memblock_find_in_range_node(). + - LP: #1377564 + * xattr: fix check for simultaneous glibc header inclusion + - LP: #1377564 + * KVM: s390: Fix user triggerable bug in dead code + - LP: #1377564 + * KVM: s390/mm: try a cow on read only pages for key ops + - LP: #1377564 + * regmap: Fix regcache debugfs initialization + - LP: #1377564 + * regmap: Fix handling of volatile registers for format_write() chips + - LP: #1377564 + * ASoC: rt5640: Do not allow regmap to use bulk read-write operations + - LP: #1377564 + * drm/i915: Remove bogus __init annotation from DMI callbacks + - LP: #1377564 + * hwmon: (ds1621) Update zbits after conversion rate change + - LP: #1377564 + * arm64: ptrace: fix compat hardware watchpoint reporting + - LP: #1377564 + * ARM/ARM64: KVM: Nuke Hyp-mode tlbs before enabling MMU + - LP: #1377564 + * arm/arm64: KVM: Complete WFI/WFE instructions + - LP: #1377564 + * get rid of propagate_umount() mistakenly treating slaves as busy. + - LP: #1377564 + * fix EBUSY on umount() from MNT_SHRINKABLE + - LP: #1377564 + * regmap: Don't attempt block writes when syncing cache on single_rw + devices + - LP: #1377564 + * drm/vmwgfx: Fix a potential infinite spin waiting for fifo idle + - LP: #1377564 + * ALSA: hda - Fix digital mic on Acer Aspire 3830TG + - LP: #1377564 + * xfs: don't dirty buffers beyond EOF + - LP: #1377564 + * xfs: don't zero partial page cache pages during O_DIRECT writes + - LP: #1377564 + * xfs: don't zero partial page cache pages during O_DIRECT writes + - LP: #1377564 + * ALSA: hda - Fix COEF setups for ALC1150 codec + - LP: #1377564 + * i2c: rcar: fix MNR interrupt handling + - LP: #1377564 + * i2c: mv64xxx: continue probe when clock-frequency is missing + - LP: #1377564 + * i2c: at91: Fix a race condition during signal handling in + at91_do_twi_xfer. + - LP: #1377564 + * i2c: at91: add bound checking on SMBus block length bytes + - LP: #1377564 + * aio: add missing smp_rmb() in read_events_ring + - LP: #1377564 + * KEYS: Fix use-after-free in assoc_array_gc() + - LP: #1377564 + * ACPI / cpuidle: fix deadlock between cpuidle_lock and cpu_hotplug.lock + - LP: #1377564 + * USB: fix build error with CONFIG_PM_RUNTIME disabled + - LP: #1377564 + * Linux 3.13.11.8 + - LP: #1377564 + * powerpc: Fix kdump hang issue on p8 with relocation on exception + enabled. + - LP: #1352056 + * net-gre-gro: Fix a bug that breaks the forwarding path + - LP: #1377851 + + -- Luis Henriques Thu, 09 Oct 2014 10:31:36 +0100 + +linux (3.13.0-37.64) trusty; urgency=low + + [ Joseph Salisbury ] + + * Release Tracking Bug + - LP: #1372576 + + [ dann frazier ] + + * [Config] CONFIG_HW_RANDOM_XGENE=m on arm64 + + [ Edward Lin ] + + * SAUCE: Add use_native_backlight quirk for Dell Inspiron 5721/3521 + - LP: #1354253, #1354313 + + [ Tim Gardner ] + + * SAUCE: Fix nfs oops stable regression + - LP: #1348670 + * [Config] Add mpt3sas to d-i + - LP: #1368907 + * [Config] CONFIG_X86_16BIT=y + - LP: #1371601 + + [ Timo Aaltonen ] + + * SAUCE: i915_bdw: Rebase to v3.15.8 + - LP: #1359213 + + [ Upstream Kernel Changes ] + + * Revert "x86-64, modify_ldt: Make support for 16-bit segments a runtime + option" + - LP: #1371601 + * mmc: rtsx: add R1-no-CRC mmc command type handle + - LP: #1365378 + * rpc_pipe: remove the clntXX dir if creating the pipe fails + - LP: #1365869 + * sunrpc: add an "info" file for the dummy gssd pipe + - LP: #1365869 + * rpc_pipe: fix cleanup of dummy gssd directory when notification fails + - LP: #1365869 + * hwrng: xgene - add support for APM X-Gene SoC RNG support + - LP: #1365593 + * Documentation: rng: Add X-Gene SoC RNG driver documentation + - LP: #1365593 + * arm64: dts: add random number generator dts node to APM X-Gene + platform. + - LP: #1365593 + * xen/balloon: cancel ballooning if adding new memory failed + - LP: #1304001 + * x86/xen: resume timer irqs early + - LP: #1368724 + * xen/manage: Always freeze/thaw processes when suspend/resuming + - LP: #1368724 + * scsi_transport_sas: move bsg destructor into sas_rphy_remove + - LP: #1368991 + * drm/i915: Enable 5.4Ghz (HBR2) link rate for Displayport 1.2-capable + devices + - LP: #1369633 + * bnx2x: Fix link for KR with swapped polarity lane + - LP: #1370716 + * drm: add DRM_CAPs for cursor size + - LP: #1359213 + * drm/dp: Add AUX channel infrastructure + - LP: #1359213 + * drm/dp: Add drm_dp_dpcd_read_link_status() + - LP: #1359213 + * drm/dp: Add DisplayPort link helpers + - LP: #1359213 + * drm/dp: Allow registering AUX channels as I2C busses + - LP: #1359213 + * drm/dp: let drivers specify the name of the I2C-over-AUX adapter + - LP: #1359213 + * drm/dp: make aux retries less chatty + - LP: #1359213 + * Bluetooth: Enable Atheros 0cf3:311e for firmware upload + - LP: #1371477 + * bnx2x: fix crash during TSO tunneling + - LP: #1371601 + * inetpeer: get rid of ip_id_count + - LP: #1371601 + * ip: make IP identifiers less predictable + - LP: #1371601 + * tcp: Fix integer-overflows in TCP veno + - LP: #1371601 + * tcp: Fix integer-overflow in TCP vegas + - LP: #1371601 + * macvlan: Initialize vlan_features to turn on offload support. + - LP: #1371601 + * net: Correctly set segment mac_len in skb_segment(). + - LP: #1371601 + * iovec: make sure the caller actually wants anything in + memcpy_fromiovecend + - LP: #1371601 + * batman-adv: Fix out-of-order fragmentation support + - LP: #1371601 + * sctp: fix possible seqlock seadlock in sctp_packet_transmit() + - LP: #1371601 + * sparc64: Fix argument sign extension for compat_sys_futex(). + - LP: #1371601 + * sparc64: Make itc_sync_lock raw + - LP: #1371601 + * sparc64: Fix executable bit testing in set_pmd_at() paths. + - LP: #1371601 + * sparc64: Fix huge PMD invalidation. + - LP: #1371601 + * sparc64: Fix bugs in get_user_pages_fast() wrt. THP. + - LP: #1371601 + * sparc64: Fix hex values in comment above pte_modify(). + - LP: #1371601 + * sparc64: Don't use _PAGE_PRESENT in pte_modify() mask. + - LP: #1371601 + * sparc64: Handle 32-bit tasks properly in compute_effective_address(). + - LP: #1371601 + * sparc64: Fix top-level fault handling bugs. + - LP: #1371601 + * sparc64: Fix range check in kern_addr_valid(). + - LP: #1371601 + * sparc64: Use 'ILOG2_4MB' instead of constant '22'. + - LP: #1371601 + * sparc64: Add basic validations to {pud,pmd}_bad(). + - LP: #1371601 + * sparc64: Give more detailed information in {pgd,pmd}_ERROR() and kill + pte_ERROR(). + - LP: #1371601 + * sparc64: Don't bark so loudly about 32-bit tasks generating 64-bit + fault addresses. + - LP: #1371601 + * sparc64: Fix huge TSB mapping on pre-UltraSPARC-III cpus. + - LP: #1371601 + * sparc64: Add membar to Niagara2 memcpy code. + - LP: #1371601 + * sparc64: Do not insert non-valid PTEs into the TSB hash table. + - LP: #1371601 + * sparc64: Guard against flushing openfirmware mappings. + - LP: #1371601 + * bbc-i2c: Fix BBC I2C envctrl on SunBlade 2000 + - LP: #1371601 + * sunsab: Fix detection of BREAK on sunsab serial console + - LP: #1371601 + * sparc64: ldc_connect() should not return EINVAL when handshake is in + progress. + - LP: #1371601 + * arch/sparc/math-emu/math_32.c: drop stray break operator + - LP: #1371601 + * x86-64, espfix: Don't leak bits 31:16 of %esp returning to 16-bit stack + - LP: #1371601 + * x86, espfix: Move espfix definitions into a separate header file + - LP: #1371601 + * x86, espfix: Fix broken header guard + - LP: #1371601 + * x86, espfix: Make espfix64 a Kconfig option, fix UML + - LP: #1371601 + * x86, espfix: Make it possible to disable 16-bit support + - LP: #1371601 + * x86_64/entry/xen: Do not invoke espfix64 on Xen + - LP: #1371601 + * ALSA: usb-audio: fix BOSS ME-25 MIDI regression + - LP: #1371601 + * ASoC: wm8994: Prevent double lock of accdet_lock mutex on wm1811 + - LP: #1371601 + * v4l: vsp1: Remove the unneeded vsp1_video_buffer video field + - LP: #1371601 + * ASoC: max98090: Fix missing free_irq + - LP: #1371601 + * KVM: x86: Inter-privilege level ret emulation is not implemeneted + - LP: #1371601 + * au0828: Only alt setting logic when needed + - LP: #1371601 + * ASoC: pcm: fix dpcm_path_put in dpcm runtime update + - LP: #1371601 + * crypto: ux500 - make interrupt mode plausible + - LP: #1371601 + * Bluetooth: btmrvl: wait for HOST_SLEEP_ENABLE event in suspend + - LP: #1371601 + * ASoC: adau1701: fix adau1701_reg_read() + - LP: #1371601 + * ASoC: wm_adsp: Add missing MODULE_LICENSE + - LP: #1371601 + * regulator: arizona-ldo1: remove bypass functionality + - LP: #1371601 + * ASoC: samsung: Correct I2S DAI suspend/resume ops + - LP: #1371601 + * drm/tilcdc: panel: fix dangling sysfs connector node + - LP: #1371601 + * drm/tilcdc: slave: fix dangling sysfs connector node + - LP: #1371601 + * drm/tilcdc: tfp410: fix dangling sysfs connector node + - LP: #1371601 + * drm/tilcdc: panel: fix leak when unloading the module + - LP: #1371601 + * drm/tilcdc: fix release order on exit + - LP: #1371601 + * drm/tilcdc: fix double kfree + - LP: #1371601 + * ACPICA: Utilities: Fix memory leak in acpi_ut_copy_iobject_to_iobject + - LP: #1371601 + * stable_kernel_rules: Add pointer to netdev-FAQ for network patches + - LP: #1371601 + * USB: ehci-pci: USB host controller support for Intel Quark X1000 + - LP: #1371601 + * debugfs: Fix corrupted loop in debugfs_remove_recursive + - LP: #1371601 + * serial: core: Preserve termios c_cflag for console resume + - LP: #1371601 + * mtd/ftl: fix the double free of the buffers allocated in build_maps() + - LP: #1371601 + * ext4: Fix block zeroing when punching holes in indirect block files + - LP: #1371601 + * ext4: fix punch hole on files with indirect mapping + - LP: #1371601 + * x86: don't exclude low BIOS area when allocating address space for + non-PCI cards + - LP: #1371601 + * PCI: Configure ASPM when enabling device + - LP: #1371601 + * Bluetooth: never linger on process exit + - LP: #1371601 + * ASoC: blackfin: use samples to set silence + - LP: #1371601 + * USB: OHCI: fix bugs in debug routines + - LP: #1371601 + * USB: OHCI: don't lose track of EDs when a controller dies + - LP: #1371601 + * mei: start disconnect request timer consistently + - LP: #1371601 + * mei: fix return value on disconnect timeout + - LP: #1371601 + * USB: Fix persist resume of some SS USB devices + - LP: #1371601 + * media-device: Remove duplicated memset() in media_enum_entities() + - LP: #1371601 + * Bluetooth: Avoid use of session socket after the session gets freed + - LP: #1371601 + * xc5000: Fix get_frequency() + - LP: #1371601 + * xc4000: Fix get_frequency() + - LP: #1371601 + * CAPABILITIES: remove undefined caps from all processes + - LP: #1371601 + * scsi: add a blacklist flag which enables VPD page inquiries + - LP: #1371601 + * bfa: Fix undefined bit shift on big-endian architectures with 32-bit + DMA address + - LP: #1371601 + * hpsa: fix bad -ENOMEM return value in hpsa_big_passthru_ioctl + - LP: #1371601 + * Drivers: scsi: storvsc: Change the limits to reflect the values on the + host + - LP: #1371601 + * Drivers: scsi: storvsc: Set cmd_per_lun to reflect value supported by + the Host + - LP: #1371601 + * Drivers: scsi: storvsc: Filter commands based on the storage protocol + version + - LP: #1371601 + * Drivers: scsi: storvsc: Fix a bug in handling VMBUS protocol version + - LP: #1371601 + * Drivers: scsi: storvsc: Implement a eh_timed_out handler + - LP: #1371601 + * drivers: scsi: storvsc: Set srb_flags in all cases + - LP: #1371601 + * drivers: scsi: storvsc: Correctly handle TEST_UNIT_READY failure + - LP: #1371601 + * x86_64/vsyscall: Fix warn_bad_vsyscall log output + - LP: #1371601 + * KVM: PPC: Book3S PR: Take SRCU read lock around RTAS kvm_read_guest() + call + - LP: #1371601 + * spi: orion: fix incorrect handling of cell-index DT property + - LP: #1371601 + * mfd: omap-usb-host: Fix improper mask use. + - LP: #1371601 + * tpm: Add missing tpm_do_selftest to ST33 I2C driver + - LP: #1371601 + * tpm: missing tpm_chip_put in tpm_get_random() + - LP: #1371601 + * scsi: do not issue SCSI RSOC command to Promise Vtrak E610f + - LP: #1371601 + * hwmon: (ads1015) Fix off-by-one for valid channel index checking + - LP: #1371601 + * ALSA: hda - fix an external mic jack problem on a HP machine + - LP: #1350148, #1371601 + * MIPS: tlbex: Fix a missing statement for HUGETLB + - LP: #1371601 + * MIPS: Prevent user from setting FCSR cause bits + - LP: #1371601 + * KVM: x86: always exit on EOIs for interrupts listed in the IOAPIC redir + table + - LP: #1371601 + * MIPS: Remove BUG_ON(!is_fpu_owner()) in do_ade() + - LP: #1371601 + * MIPS: ptrace: Test correct task's flags in task_user_regset_view() + - LP: #1371601 + * MIPS: asm/reg.h: Make 32- and 64-bit definitions available at the same + time + - LP: #1371601 + * MIPS: ptrace: Change GP regset to use correct core dump register layout + - LP: #1371601 + * md/raid1,raid10: always abort recover on write error. + - LP: #1371601 + * ext4: fix ext4_discard_allocated_blocks() if we can't allocate the pa + struct + - LP: #1371601 + * hwmon: (lm85) Fix various errors on attribute writes + - LP: #1371601 + * hwmon: (lm78) Fix overflow problems seen when writing large temperature + limits + - LP: #1371601 + * hwmon: (amc6821) Fix possible race condition bug + - LP: #1371601 + * MIPS: GIC: Prevent array overrun + - LP: #1371601 + * mnt: Add tests for unprivileged remount cases that have found to be + faulty + - LP: #1371601 + * ARM: OMAP3: Fix choice of omap3_restore_es function in OMAP34XX + rev3.1.2 case. + - LP: #1371601 + * netlabel: fix a problem when setting bits below the previously lowest + bit + - LP: #1371601 + * netlabel: fix the horribly broken catmap functions + - LP: #1371601 + * netlabel: fix the catmap walking functions + - LP: #1371601 + * drivers/i2c/busses: use correct type for dma_map/unmap + - LP: #1371601 + * NFSD: Decrease nfsd_users in nfsd_startup_generic fail + - LP: #1371601 + * MIPS: O32/32-bit: Fix bug which can cause incorrect system call + restarts + - LP: #1371601 + * IB/srp: Fix deadlock between host removal and multipathd + - LP: #1371601 + * USB: serial: ftdi_sio: Annotate the current Xsens PID assignments + - LP: #1371601 + * USB: serial: ftdi_sio: Add support for new Xsens devices + - LP: #1371601 + * USB: devio: fix issue with log flooding + - LP: #1371601 + * CIFS: Fix async reading on reconnects + - LP: #1371601 + * CIFS: Fix STATUS_CANNOT_DELETE error mapping for SMB2 + - LP: #1371601 + * xfs: ensure verifiers are attached to recovered buffers + - LP: #1371601 + * drm/tegra: add MODULE_DEVICE_TABLEs + - LP: #1371601 + * ALSA: virtuoso: add Xonar Essence STX II support + - LP: #1371601 + * hwmon: (gpio-fan) Prevent overflow problem when writing large limits + - LP: #1371601 + * hwmon: (sis5595) Prevent overflow problem when writing large limits + - LP: #1371601 + * NFS: Fix /proc/fs/nfsfs/servers and /proc/fs/nfsfs/volumes + - LP: #1371601 + * drm/ttm: Fix possible division by 0 in ttm_dma_pool_shrink_scan(). + - LP: #1371601 + * drm/ttm: Choose a pool to shrink correctly in + ttm_dma_pool_shrink_scan(). + - LP: #1371601 + * drm/ttm: Use mutex_trylock() to avoid deadlock inside shrinker + functions. + - LP: #1371601 + * drm/ttm: Fix possible stack overflow by recursive shrinker calls. + - LP: #1371601 + * drm/ttm: Pass GFP flags in order to avoid deadlock. + - LP: #1371601 + * powerpc/mm/numa: Fix break placement + - LP: #1371601 + * powerpc/pci: Reorder pci bus/bridge unregistration during PHB removal + - LP: #1371601 + * drm/radeon: load the lm63 driver for an lm64 thermal chip. + - LP: #1371601 + * drm/radeon: set VM base addr using the PFP v2 + - LP: #1371601 + * drm/radeon/atom: add new voltage fetch function for hawaii + - LP: #1371601 + * drm/radeon/dpm: handle voltage info fetching on hawaii + - LP: #1371601 + * drm/radeon: re-enable dpm by default on cayman + - LP: #1371601 + * drm/radeon: re-enable dpm by default on BTC + - LP: #1371601 + * drm/radeon: use packet2 for nop on hawaii with old firmware + - LP: #1371601 + * drm/radeon: tweak ACCEL_WORKING2 query for hawaii + - LP: #1371601 + * KVM: nVMX: fix "acknowledge interrupt on exit" when APICv is in use + - LP: #1371601 + * RDMA/iwcm: Use a default listen backlog if needed + - LP: #1371601 + * x86/efi: Enforce CONFIG_RELOCATABLE for EFI boot stub + - LP: #1371601 + * net: sun4i-emac: fix memory leak on bad packet + - LP: #1371601 + * hwmon: (ads1015) Fix out-of-bounds array access + - LP: #1371601 + * hwmon: (dme1737) Prevent overflow problem when writing large limits + - LP: #1371601 + * s390/locking: Reenable optimistic spinning + - LP: #1371601 + * ring-buffer: Up rb_iter_peek() loop count to 3 + - LP: #1371601 + * ring-buffer: Always reset iterator to reader page + - LP: #1371601 + * kernel/smp.c:on_each_cpu_cond(): fix warning in fallback path + - LP: #1371601 + * drm/i915: read HEAD register back in init_ring_common() to enforce + ordering + - LP: #1371601 + * vm_is_stack: use for_each_thread() rather then buggy + while_each_thread() + - LP: #1371601 + * libceph: set last_piece in ceph_msg_data_pages_cursor_init() correctly + - LP: #1371601 + * drm/nouveau: Bump version from 1.1.1 to 1.1.2 + - LP: #1371601 + * ALSA: usb-audio: fix BOSS ME-25 MIDI regression + - LP: #1371601 + * ALSA: hda/ca0132 - Don't try loading firmware at resume when already + failed + - LP: #1371601 + * carl9170: fix sending URBs with wrong type when using full-speed + - LP: #1371601 + * powerpc/pseries: Failure on removing device node + - LP: #1371601 + * Btrfs: Fix memory corruption by ulist_add_merge() on 32bit arch + - LP: #1371601 + * Btrfs: fix csum tree corruption, duplicate and outdated checksums + - LP: #1371601 + * ext4: fix BUG_ON in mb_free_blocks() + - LP: #1371601 + * x86/espfix/xen: Fix allocation of pages for paravirt page tables + - LP: #1371601 + * Linux 3.13.11.7 + - LP: #1371601 + * HID: magicmouse: sanity check report size in raw_event() callback + - LP: #1370025 + - CVE-2014-3181 + * HID: fix a couple of off-by-ones + - LP: #1370035 + - CVE-2014-3184 + * USB: whiteheat: Added bounds checking for bulk command response + - LP: #1370036 + - CVE-2014-3185 + * HID: picolcd: sanity check report size in raw_event() callback + - LP: #1370038 + - CVE-2014-3186 + * KEYS: Fix termination condition in assoc array garbage collection + - LP: #1370041 + - CVE-2014-3631 + * udf: Fold udf_fill_inode() into __udf_read_inode() + - LP: #1370042 + - CVE-2014-6410 + * udf: Avoid infinite loop when processing indirect ICBs + - LP: #1370042 + - CVE-2014-6410 + * libceph: add process_one_ticket() helper + - LP: #1370044, #1370046, #1370047 + - CVE-2014-6418 + * libceph: do not hard code max auth ticket len + - LP: #1370044, #1370046, #1370047 + - CVE-2014-6418 + + -- Joseph Salisbury Mon, 22 Sep 2014 15:51:07 -0400 + +linux (3.13.0-36.63) trusty; urgency=low + + [ Joseph Salisbury ] + + * Release Tracking Bug + - LP: #1365052 + + [ Feng Kan ] + + * SAUCE: (no-up) irqchip:gic: change access of gicc_ctrl register to read + modify write. + - LP: #1357527 + * SAUCE: (no-up) arm64: optimized copy_to_user and copy_from_user + assembly code + - LP: #1358949 + + [ Ming Lei ] + + * SAUCE: (no-up) Drop APM X-Gene SoC Ethernet driver + - LP: #1360140 + * [Config] Drop XGENE entries + - LP: #1360140 + * [Config] CONFIG_NET_XGENE=m for arm64 + - LP: #1360140 + + [ Stefan Bader ] + + * SAUCE: Add compat macro for skb_get_hash + - LP: #1358162 + * SAUCE: bcache: prevent crash on changing writeback_running + - LP: #1357295 + + [ Suman Tripathi ] + + * SAUCE: (no-up) arm64: Fix the csr-mask for APM X-Gene SoC AHCI SATA PHY + clock DTS node. + - LP: #1359489 + * SAUCE: (no-up) ahci_xgene: Skip the PHY and clock initialization if + already configured by the firmware. + - LP: #1359501 + * SAUCE: (no-up) ahci_xgene: Fix the link down in first attempt for the + APM X-Gene SoC AHCI SATA host controller driver. + - LP: #1359507 + + [ Tuan Phan ] + + * SAUCE: (no-up) pci-xgene-msi: fixed deadlock in irq_set_affinity + - LP: #1359514 + + [ Upstream Kernel Changes ] + + * iwlwifi: mvm: Add a missed beacons threshold + - LP: #1349572 + * mac80211: reset probe_send_count also in HW_CONNECTION_MONITOR case + - LP: #1349572 + * genirq: Add an accessor for IRQ_PER_CPU flag + - LP: #1357527 + * arm64: perf: add support for percpu pmu interrupt + - LP: #1357527 + * cifs: sanity check length of data to send before sending + - LP: #1283101 + * KVM: nVMX: Pass vmexit parameters to nested_vmx_vmexit + - LP: #1329434 + * KVM: nVMX: Rework interception of IRQs and NMIs + - LP: #1329434 + * KVM: vmx: disable APIC virtualization in nested guests + - LP: #1329434 + * HID: Add transport-driver functions to the USB HID interface. + - LP: #1353021 + * ahci_xgene: Removing NCQ support from the APM X-Gene SoC AHCI SATA Host + Controller driver. + - LP: #1358498 + * fold d_kill() and d_free() + - LP: #1354234 + * fold try_prune_one_dentry() + - LP: #1354234 + * new helper: dentry_free() + - LP: #1354234 + * expand the call of dentry_lru_del() in dentry_kill() + - LP: #1354234 + * dentry_kill(): don't try to remove from shrink list + - LP: #1354234 + * don't remove from shrink list in select_collect() + - LP: #1354234 + * more graceful recovery in umount_collect() + - LP: #1354234 + * dcache: don't need rcu in shrink_dentry_list() + - LP: #1354234 + * lift the "already marked killed" case into shrink_dentry_list() + * split dentry_kill() + - LP: #1354234 + * expand dentry_kill(dentry, 0) in shrink_dentry_list() + - LP: #1354234 + * shrink_dentry_list(): take parent's ->d_lock earlier + - LP: #1354234 + * dealing with the rest of shrink_dentry_list() livelock + - LP: #1354234 + * dentry_kill() doesn't need the second argument now + - LP: #1354234 + * dcache: add missing lockdep annotation + - LP: #1354234 + * fs: convert use of typedef ctl_table to struct ctl_table + - LP: #1354234 + * lock_parent: don't step on stale ->d_parent of all-but-freed one + - LP: #1354234 + * tools/testing/selftests/ptrace/peeksiginfo.c: add PAGE_SIZE definition + - LP: #1358855 + * x86, irq, pic: Probe for legacy PIC and set legacy_pic appropriately + - LP: #1317697 + * bnx2x: Fix kernel crash and data miscompare after EEH recovery + - LP: #1353105 + * bnx2x: Adapter not recovery from EEH error injection + - LP: #1353105 + * Fix: module signature vs tracepoints: add new TAINT_UNSIGNED_MODULE + - LP: #1359670 + * bcache: fix crash on shutdown in passthrough mode + - LP: #1357295 + * bcache: fix uninterruptible sleep in writeback thread + - LP: #1357295 + * namespaces: Use task_lock and not rcu to protect nsproxy + - LP: #1328088 + * MAINTAINERS: Add entry for APM X-Gene SoC ethernet driver + - LP: #1360140 + * Documentation: dts: Add bindings for APM X-Gene SoC ethernet driver + - LP: #1360140 + * dts: Add bindings for APM X-Gene SoC ethernet driver + - LP: #1360140 + * drivers: net: Add APM X-Gene SoC ethernet driver support. + - LP: #1360140 + * powerpc/mm: Add new "set" flag argument to pte/pmd update function + - LP: #1357014 + * powerpc/thp: Add write barrier after updating the valid bit + - LP: #1357014 + * powerpc/thp: Don't recompute vsid and ssize in loop on invalidate + - LP: #1357014 + * powerpc/thp: Invalidate old 64K based hash page mapping before insert + of 4k pte + - LP: #1357014 + * powerpc/thp: Handle combo pages in invalidate + - LP: #1357014 + * powerpc/thp: Invalidate with vpn in loop + - LP: #1357014 + * powerpc/thp: Use ACCESS_ONCE when loading pmdp + - LP: #1357014 + * powerpc/mm: Use read barrier when creating real_pte + - LP: #1357014 + * powerpc/thp: Add tracepoints to track hugepage invalidate + - LP: #1357014 + * powerpc: subpage_protect: Increase the array size to take care of 64TB + - LP: #1357014 + * mfd: rtsx: Add set pull control macro and simplify rtl8411 + - LP: #1361086 + * mfd: rtsx: Add support for card reader rtl8402 + - LP: #1361086 + * kvm: iommu: fix the third parameter of kvm_iommu_put_pages + (CVE-2014-3601) + - LP: #1362443 + - CVE-2014-3601 + * isofs: Fix unbounded recursion when processing relocated directories + - LP: #1362447, #1362448 + - CVE-2014-5472 + * net: sctp: inherit auth_capable on INIT collisions + - LP: #1349804 + - CVE-2014-5077 + * blk-mq: fix initializing request's start time + - LP: #1297522 + + [ Vinayak Kale ] + + * SAUCE: (no-up) dt-bindings: Add Potenza PMU binding + - LP: #1357527 + * SAUCE: (no-up) arm64: dts: Add PMU node for APM X-Gene Storm SOC + - LP: #1357527 + + -- Joseph Salisbury Wed, 03 Sep 2014 12:13:43 -0400 + +linux (3.13.0-35.62) trusty; urgency=low + + [ Joseph Salisbury ] + + * Release Tracking Bug + - LP: #1357148 + + [ Brad Figg ] + + * Start new release + + [ dann frazier ] + + * SAUCE: (no-up) Fix build failure on arm64 + - LP: #1353657 + * [debian] Allow for package revisions condusive for branching + + [ David Henningsson ] + + * SAUCE: Call broadwell specific functions from the hda driver + - LP: #1317865 + + [ Edward Lin ] + + * SAUCE: (no-up) Add use native backlight quirk for Dell Inspiron + 5547/5447 + - LP: #1332437 + + [ Imre Deak ] + + * SAUCE: drm/i915: move power domain init earlier during system resume + - LP: #1353405 + + [ Jani Nikula ] + + * SAUCE: drm/i915: use lane count and link rate from VBT as minimums for + eDP + - LP: #1338582 + * SAUCE: drm/i915/dp: force eDP lane count to max available lanes on BDW + - LP: #1338582 + * SAUCE: drm/i915: provide interface for audio driver to query cdclk + - LP: #1188091 + * SAUCE: drm/i915: demote opregion excessive timeout WARN_ONCE to + DRM_INFO_ONCE + - LP: #1351014 + + [ Joseph Salisbury ] + + * [Config] updateconfigs after Linux 3.13.11.6 updates + + [ Luis Henriques ] + + * Revert "[Packaging] linux-udeb-flavour -- standardise on linux prefix" + + [ Ming Lei ] + + * Revert "SAUCE: (no-up) ata: Fix the dma state machine lockup for the + IDENTIFY DEVICE PIO mode command." + - LP: #1335645 + + [ Paulo Zanoni ] + + * SAUCE: drm/i915: consider the source max DP lane count too + - LP: #1338582 + + [ Tim Gardner ] + + * [Config] CONFIG_GPIO_SYSFS=y + - LP: #1342153 + * [Config] CONFIG_KEYS_DEBUG_PROC_KEYS=y + - LP: #1344405 + * [Config] updateconfigs + * [Config] CONFIG_SCSI_IPR_TRACE=y, CONFIG_SCSI_IPR_DUMP=y + - LP: #1343109 + * [Config] CONFIG_CONTEXT_TRACKING_FORCE=n + - LP: #1349028 + + [ Timo Aaltonen ] + + * SAUCE: Fix a typo in hda i915_bdw support. + - LP: #1343140 + + [ Upstream Kernel Changes ] + + * Revert "net/mlx4_en: Fix bad use of dev_id" + - LP: #1347012 + * Revert "ACPI / AC: Remove AC's proc directory." + - LP: #1356913 + * Revert "mac80211: move "bufferable MMPDU" check to fix AP mode scan" + - LP: #1356913 + * mm, pcp: allow restoring percpu_pagelist_fraction default + - LP: #1347088 + * net: Fix permission check in netlink_connect() + - LP: #1312989 + * netlink: Rename netlink_capable netlink_allowed + - LP: #1312989 + * net: Move the permission check in sock_diag_put_filterinfo to + packet_diag_dump + - LP: #1312989 + * net: Add variants of capable for use on on sockets + - LP: #1312989 + * net: Add variants of capable for use on netlink messages + - LP: #1312989 + * net: Use netlink_ns_capable to verify the permisions of netlink + messages + - LP: #1312989 + * netlink: Only check file credentials for implicit destinations + - LP: #1312989 + * igb: fix stats for i210 rx_fifo_errors + - LP: #1338893 + * HID: use multi input quirk for 22b9:2968 + - LP: #1339567 + * crypto/nx: disable NX on little endian builds + - LP: #1338666 + * ACPI / video: Add Dell Inspiron 5737 to the blacklist + - LP: #1250401 + * Input: elantech - deal with clickpads reporting right button events + - LP: #1188025 + * net/mlx4_core: Enforce irq affinity changes immediatly + - LP: #1326108 + * cpumask: Utility function to set n'th cpu - local cpu first + - LP: #1326108 + * net/mlx4_en: Use affinity hint + - LP: #1326108 + * net/mlx4_en: Don't use irq_affinity_notifier to track changes in IRQ + affinity map + - LP: #1326108 + * net/mlx4_en: IRQ affinity hint is not cleared on port down + - LP: #1326108 + * Subject: net: Allow tc changes in user namespaces + - LP: #1344049 + * net-gro: restore frag0 optimization + - LP: #1344323 + * Bluetooth: Fix redundant encryption request for reauthentication + - LP: #1347088 + * Bluetooth: Fix check for connection encryption + - LP: #1347088 + * introduce for_each_thread() to replace the buggy while_each_thread() + - LP: #1347088 + * NFS: Don't declare inode uptodate unless all attributes were checked + - LP: #1347088 + * usb: dwc3: gadget: clear stall when disabling endpoint + - LP: #1347088 + * ACPICA: utstring: Check array index bound before use. + - LP: #1347088 + * mtip32xx: Increase timeout for STANDBY IMMEDIATE command + - LP: #1347088 + * mtip32xx: Remove dfs_parent after pci unregister + - LP: #1347088 + * mtip32xx: Fix ERO and NoSnoop values in PCIe upstream on AMD systems + - LP: #1347088 + * extcon: max77693: Fix two NULL pointer exceptions on missing pdata + - LP: #1347088 + * extcon: max8997: Fix NULL pointer exception on missing pdata + - LP: #1347088 + * builddeb: use $OBJCOPY variable instead of objcopy + - LP: #1347088 + * bluetooth: hci_ldisc: fix deadlock condition + - LP: #1347088 + * powerpc/pseries: Fix overwritten PE state + - LP: #1347088 + * PCI: Add new ID for Intel GPU "spurious interrupt" quirk + - LP: #1347088 + * x86-32, espfix: Remove filter for espfix32 due to race + - LP: #1347088 + * genirq: Sanitize spurious interrupt detection of threaded irqs + - LP: #1347088 + * Drivers: hv: balloon: Ensure pressure reports are posted regularly + - LP: #1347088 + * x86, x32: Use compat shims for io_{setup,submit} + - LP: #1347088 + * iwlwifi: pcie: try to get ownership several times + - LP: #1347088 + * ext4: fix data integrity sync in ordered mode + - LP: #1347088 + * UBIFS: fix an mmap and fsync race condition + - LP: #1347088 + * [media] rtl28xxu: add USB ID for Genius TVGo DVB-T03 + - LP: #1347088 + * [media] rtl28xxu: add 1b80:d395 Peak DVB-T USB + - LP: #1347088 + * [media] rtl28xxu: add [1b80:d39d] Sveon STV20 + - LP: #1347088 + * [media] rtl28xxu: add [1b80:d3af] Sveon STV27 + - LP: #1347088 + * ASoC: max98090: Fix reset at resume time + - LP: #1347088 + * ACPI: Fix conflict between customized DSDT and DSDT local copy + - LP: #1347088 + * PM / OPP: fix incorrect OPP count handling in of_init_opp_table + - LP: #1347088 + * Target/iser: Bail from accept_np if np_thread is trying to close + - LP: #1347088 + * Target/iser: Fix hangs in connection teardown + - LP: #1347088 + * HID: core: fix validation of report id 0 + - LP: #1347088 + * IB/srp: Fix a sporadic crash triggered by cable pulling + - LP: #1347088 + * Target/iser: Improve cm events handling + - LP: #1347088 + * Target/iser: Wait for proper cleanup before unloading + - LP: #1347088 + * mtd: nand: omap: fix BCHx ecc.correct to return detected bit-flips in + erased-page + - LP: #1347088 + * mtd: eLBC NAND: fix subpage write support + - LP: #1347088 + * reiserfs: call truncate_setsize under tailpack mutex + - LP: #1347088 + * ARM: stacktrace: avoid listing stacktrace functions in stacktrace + - LP: #1347088 + * SUNRPC: Fix a module reference leak in svc_handle_xprt + - LP: #1347088 + * [media] uvcvideo: Fix clock param realtime setting + - LP: #1347088 + * [media] ivtv: Fix Oops when no firmware is loaded + - LP: #1347088 + * CIFS: Fix memory leaks in SMB2_open + - LP: #1347088 + * iio:adc:max1363 incorrect resolutions for max11604, max11605, max11610 + and max11611. + - LP: #1347088 + * staging/mt29f_spinand: Terminate of match table + - LP: #1347088 + * mac80211: fix IBSS join by initializing last_scan_completed + - LP: #1347088 + * KVM: lapic: sync highest ISR to hardware apic on EOI + - LP: #1347088 + * s390/time: cast tv_nsec to u64 prior to shift in update_vsyscall + - LP: #1347088 + * ahci: add PCI ID for Marvell 88SE91A0 SATA Controller + - LP: #1347088 + * ext4: fix zeroing of page during writeback + - LP: #1347088 + * ext4: fix wrong assert in ext4_mb_normalize_request() + - LP: #1347088 + * IB/mlx5: add missing padding at end of struct mlx5_ib_create_cq + - LP: #1347088 + * IB/mlx5: add missing padding at end of struct mlx5_ib_create_srq + - LP: #1347088 + * IB/qib: Fix port in pkey change event + - LP: #1347088 + * IB/ipath: Translate legacy diagpkt into newer extended diagpkt + - LP: #1347088 + * mei: me: drop harmful wait optimization + - LP: #1347088 + * mei: me: read H_CSR after asserting reset + - LP: #1347088 + * usb: usbtest: fix unlink write error with pattern 1 + - LP: #1347088 + * s390/lowcore: reserve 96 bytes for IRB in lowcore + - LP: #1347088 + * mac80211: fix a memory leak on sta rate selection table + - LP: #1347088 + * mac80211: don't check netdev state for debugfs read/write + - LP: #1347088 + * mtd: pxa3xx_nand: make the driver work on big-endian systems + - LP: #1347088 + * hv: use correct order when freeing monitor_pages + - LP: #1347088 + * usb: qcserial: add Netgear AirCard 341U + - LP: #1347088 + * usb: qcserial: add additional Sierra Wireless QMI devices + - LP: #1347088 + * IB/umad: Fix error handling + - LP: #1347088 + * RDMA/cxgb4: Add missing padding at end of struct c4iw_create_cq_resp + - LP: #1347088 + * MIPS: KVM: Allocate at least 16KB for exception handlers + - LP: #1347088 + * block: virtio_blk: don't hold spin lock during world switch + - LP: #1347088 + * nfsd: getattr for FATTR4_WORD0_FILES_AVAIL needs the statfs buffer + - LP: #1347088 + * ASoC: tlv320aci3x: Fix custom snd_soc_dapm_put_volsw_aic3x() function + - LP: #1347088 + * UBIFS: Remove incorrect assertion in shrink_tnc() + - LP: #1347088 + * Bluetooth: Fix L2CAP deadlock + - LP: #1347088 + * vgaswitcheroo: switch the mux to the igp on power down when runpm is + enabled + - LP: #1347088 + * drm/radeon: fix typo in radeon_connector_is_dp12_capable() + - LP: #1347088 + * drm/radeon/dp: fix lane/clock setup for dp 1.2 capable devices + - LP: #1347088 + * drm/radeon/atom: fix dithering on certain panels + - LP: #1347088 + * drm/radeon: only apply hdmi bpc pll flags when encoder mode is hdmi + - LP: #1347088 + * ahci: Add Device ID for HighPoint RocketRaid 642L + - LP: #1347088 + * mm: fix sleeping function warning from __put_anon_vma + - LP: #1347088 + * hugetlb: restrict hugepage_migration_support() to x86_64 + - LP: #1347088 + * kthread: fix return value of kthread_create() upon SIGKILL. + - LP: #1347088 + * mm: vmscan: do not throttle based on pfmemalloc reserves if node has no + ZONE_NORMAL + - LP: #1347088 + * memcg: do not hang on OOM when killed by userspace OOM access to memory + reserves + - LP: #1347088 + * mm: page_alloc: use word-based accesses for get/set pageblock bitmaps + - LP: #1347088 + * mm/memory-failure.c-failure: send right signal code to correct thread + - LP: #1347088 + * mm/memory-failure.c: don't let collect_procs() skip over processes for + MF_ACTION_REQUIRED + - LP: #1347088 + * mm/memory-failure.c: support use of a dedicated thread to handle + SIGBUS(BUS_MCEERR_AO) + - LP: #1347088 + * powerpc/serial: Use saner flags when creating legacy ports + - LP: #1347088 + * ALSA: hda/realtek - Add support of ALC891 codec + - LP: #1347088 + * rbd: use reference counts for image requests + - LP: #1347088 + * iscsi-target: Reject mutual authentication with reflected CHAP_C + - LP: #1347088 + * powerpc/mm: Check paca psize is up to date for huge mappings + - LP: #1347088 + * IB/umad: Fix use-after-free on close + - LP: #1347088 + * mm: vmscan: clear kswapd's special reclaim powers before exiting + - LP: #1347088 + * rtc: rtc-at91rm9200: fix infinite wait for ACKUPD irq + - LP: #1347088 + * ptrace: fix fork event messages across pid namespaces + - LP: #1347088 + * idr: fix overflow bug during maximum ID calculation at maximum height + - LP: #1347088 + * Input: elantech - don't set bit 1 of reg_10 when the no_hw_res quirk is + set + - LP: #1347088 + * nfsd4: fix FREE_STATEID lockowner leak + - LP: #1347088 + * Btrfs: fix double free in find_lock_delalloc_range + - LP: #1347088 + * target: Set CMD_T_ACTIVE bit for Task Management Requests + - LP: #1347088 + * target: Use complete_all for se_cmd->t_transport_stop_comp + - LP: #1347088 + * iscsi-target: Fix ABORT_TASK + connection reset iscsi_queue_req memory + leak + - LP: #1347088 + * drm/nv50-/mc: fix kms pageflip events by reordering irq handling order. + - LP: #1347088 + * drm/nouveau/kms/nv04-nv40: fix pageflip events via special case. + - LP: #1347088 + * NFS: populate ->net in mount data when remounting + - LP: #1347088 + * watchdog: kempld-wdt: Use the correct value when configuring the + prescaler with the watchdog + - LP: #1347088 + * watchdog: ath79_wdt: avoid spurious restarts on AR934x + - LP: #1347088 + * watchdog: sp805: Set watchdog_device->timeout from ->set_timeout() + - LP: #1347088 + * fs,userns: Change inode_capable to capable_wrt_inode_uidgid + - LP: #1347088 + * powerpc: Add AT_HWCAP2 to indicate V.CRYPTO category support + - LP: #1347088 + * powerpc: Correct DSCR during TM context switch + - LP: #1347088 + * powerpc: Don't setup CPUs with bad status + - LP: #1347088 + * Target/iscsi: Fix sendtargets response pdu for iser transport + - LP: #1347088 + * target: Report correct response length for some commands + - LP: #1347088 + * dm thin: update discard_granularity to reflect the thin-pool blocksize + - LP: #1347088 + * ALSA: compress: Cancel the optimization of compiler and fix the size of + struct for all platform. + - LP: #1347088 + * hwmon: (ina2xx) Cast to s16 on shunt and current regs + - LP: #1347088 + * evm: prohibit userspace writing 'security.evm' HMAC value + - LP: #1347088 + * ALSA: hda - Add quirk for external mic on Lifebook U904 + - LP: #1328587, #1347088 + * ALSA: hda/realtek - Add more entry for enable HP mute led + - LP: #1347088 + * ALSA: hda/realtek - Add more entry for enable HP mute led + - LP: #1347088 + * staging: iio: tsl2x7x_core: fix proximity treshold + - LP: #1347088 + * iio: Fix endianness issue in ak8975_read_axis() + - LP: #1347088 + * rtmutex: Handle deadlock detection smarter + - LP: #1347088 + * rtmutex: Detect changes in the pi lock chain + - LP: #1347088 + * drm/i915: Disable FBC by default also on Haswell and later + - LP: #1347088 + * drm/i915: Avoid div-by-zero when pixel_multiplier is zero + - LP: #1347088 + * drm/i915: Reorder semaphore deadlock check + - LP: #1347088 + * iio: adc: at91: signedness bug in at91_adc_get_trigger_value_by_name() + - LP: #1347088 + * rtmutex: Plug slow unlock race + - LP: #1347088 + * ACPI / ia64 / sba_iommu: Restore the working initialization ordering + - LP: #1347088 + * epoll: fix use-after-free in eventpoll_release_file + - LP: #1347088 + * drm/nouveau/kms: reference vblank for crtc during pageflip. + - LP: #1347088 + * ARM: mvebu: DT: fix OpenBlocks AX3-4 RAM size + - LP: #1347088 + * USB: EHCI: avoid BIOS handover on the HASEE E200 + - LP: #1347088 + * arm64: Bug fix in stack alignment exception + - LP: #1347088 + * arm64: ptrace: change fs when passing kernel pointer to regset code + - LP: #1347088 + * arm64: uid16: fix __kernel_old_{gid,uid}_t definitions + - LP: #1347088 + * arm64: ptrace: fix empty registers set in prstatus of aarch32 process + core + - LP: #1347088 + * ALSA: control: Protect user controls against concurrent access + - LP: #1347088 + * ALSA: control: Fix replacing user controls + - LP: #1347088 + * ALSA: control: Don't access controls outside of protected regions + - LP: #1347088 + * ALSA: control: Handle numid overflow + - LP: #1347088 + * ALSA: control: Make sure that id->index does not overflow + - LP: #1347088 + * Bluetooth: Fix SSP acceptor just-works confirmation without MITM + - LP: #1347088 + * Bluetooth: Fix setting correct authentication information for SMP STK + - LP: #1347088 + * Bluetooth: Fix indicating discovery state when canceling inquiry + - LP: #1347088 + * Bluetooth: Fix locking of hdev when calling into SMP code + - LP: #1347088 + * Bluetooth: Allow change security level on ATT_CID in slave role + - LP: #1347088 + * rt2x00: disable TKIP on USB + - LP: #1347088 + * b43: fix frequency reported on G-PHY with /new/ firmware + - LP: #1347088 + * rt2x00: fix rfkill regression on rt2500pci + - LP: #1347088 + * blkcg: fix use-after-free in __blkg_release_rcu() by making blkcg_gq + refcnt an atomic_t + - LP: #1347088 + * rbd: handle parent_overlap on writes correctly + - LP: #1347088 + * ALSA: hda - hdmi: call overridden init on resume + - LP: #1347088 + * x86_32, entry: Do syscall exit work on badsys (CVE-2014-4508) + - LP: #1347088 + * hugetlb: fix copy_hugetlb_page_range() to handle migration/hwpoisoned + entry + - LP: #1347088 + * kernel/watchdog.c: remove preemption restrictions when restarting + lockup detector + - LP: #1347088 + * DMA, CMA: fix possible memory leak + - LP: #1347088 + * mm: fix crashes from mbind() merging vmas + - LP: #1347088 + * drm/i915: Hold the table lock whilst walking the file's idr and + counting the objects in debugfs + - LP: #1347088 + * [CIFS] fix mount failure with broken pathnames when smb3 mount with + mapchars option + - LP: #1347088 + * aio: fix aio request leak when events are reaped by userspace + - LP: #1347088 + * aio: fix kernel memory disclosure in io_getevents() introduced in v3.10 + - LP: #1347088 + * nfs: Fix cache_validity check in nfs_write_pageuptodate() + - LP: #1347088 + * powerpc: Don't skip ePAPR spin-table CPUs + - LP: #1347088 + * net: allwinner: emac: Add missing free_irq + - LP: #1347088 + * ALSA: usb-audio: Fix races at disconnection and PCM closing + - LP: #1347088 + * recordmcount/MIPS: Fix possible incorrect mcount_loc table entries in + modules + - LP: #1347088 + * MIPS: MSC: Prevent out-of-bounds writes to MIPS SC ioremap'd region + - LP: #1347088 + * ALSA: hda - restore BCLK M/N values when resuming HSW/BDW display + controller + - LP: #1347088 + * target: Fix left-over se_lun->lun_sep pointer OOPs + - LP: #1347088 + * iscsi-target: Explicily clear login response PDU in exception path + - LP: #1347088 + * efi-pstore: Fix an overflow on 32-bit builds + - LP: #1347088 + * lz4: fix another possible overrun + - LP: #1347088 + * iscsi-target: Avoid rejecting incorrect ITT for Data-Out + - LP: #1347088 + * iscsi-target: fix iscsit_del_np deadlock on unload + - LP: #1347088 + * Linux 3.13.11.5 + - LP: #1347088 + * powerpc/powernv: Fix endianness problems in EEH + - LP: #1340200 + * libahci: export ahci_qc_issue() and ahci_start_fix_rx() + - LP: #1335645 + * ahci_xgene: fix the dma state machine lockup for the IDENTIFY DEVICE + PIO mode command. + - LP: #1335645 + * fix build error in gpio-dwapb patch + - LP: #1348808 + * usb: Check if port status is equal to RxDetect + - LP: #1322409 + * net/mlx4_en: Protect MAC address modification with the state_lock mutex + - LP: #1347012 + * net/mlx4_en: Fix errors in MAC address changing when port is down + - LP: #1347012 + * bonding: Advertize vxlan offload features when supported + - LP: #1347012 + * net/mlx4_core: Fix the error flow when probing with invalid VF + configuration + - LP: #1347012 + * net/mlx4_en: Don't configure the HW vxlan parser when vxlan offloading + isn't set + - LP: #1347012 + * net/mlx4_core: Keep only one driver entry release mlx4_priv + - LP: #1347012 + * net/mlx4_core: Preserve pci_dev_data after __mlx4_remove_one() + - LP: #1347012 + * net/mlx4_core: Defer VF initialization till PF is fully initialized + - LP: #1347012 + * net/mlx4_core: Adjust port number in qp_attach wrapper when detaching + - LP: #1347012 + * net/mlx4_core: Fix slave id computation for single port VF + - LP: #1347012 + * net/mlx4_core: Load the Eth driver first + - LP: #1347012 + * net/mlx4_core: Don't issue PCIe speed/width checks for VFs + - LP: #1347012 + * net/mlx4_core: Add UPDATE_QP SRIOV wrapper support + - LP: #1347012 + * net/mlx4_core: Reset RoCE VF gids when guest driver goes down + - LP: #1347012 + * net/mlx4_en: Reduce memory consumption on kdump kernel + - LP: #1347012 + * net/mlx4_core: Use low memory profile on kdump kernel + - LP: #1347012 + * net/mlx4_en: current_mac isn't updated in port up + - LP: #1347012 + * net/mlx4_en: Disable blueflame using ethtool private flags + - LP: #1347012 + * net/mlx4_en: Fix mac_hash database inconsistency + - LP: #1347012 + * ext4: handle symlink properly with inline_data + - LP: #1349020 + * net/mlx4_en: cq->irq_desc wasn't set in legacy EQ's + - LP: #1354242 + * rtl8821ae: fixup staging driver for revised + ieee80211_is_robust_mgmt_frame + - LP: #1354469 + * ahci_xgene: Fix the watermark threshold for the APM X-Gene SATA host + controller driver. + - LP: #1350087 + * ahci_xgene: Use correct OOB tunning parameters for APM X-Gene SoC AHCI + SATA Host controller driver. + - LP: #1350087 + * sunrpc: create a new dummy pipe for gssd to hold open + - LP: #1327563 + * sunrpc: replace sunrpc_net->gssd_running flag with a more reliable + check + - LP: #1327563 + * nfs: check if gssd is running before attempting to use krb5i auth in + SETCLIENTID call + - LP: #1327563 + * ACPI / PAD: call schedule() when need_resched() is true + - LP: #1356913 + * KVM: ioapic: fix assignment of ioapic->rtc_status.pending_eoi + (CVE-2014-0155) + - LP: #1356913 + * target: Explicitly clear ramdisk_mcp backend pages + - LP: #1356913 + * sctp: Fix sk_ack_backlog wrap-around problem + - LP: #1356913 + * mm: hugetlb: fix copy_hugetlb_page_range() + - LP: #1356913 + * x86_32, entry: Store badsys error code in %eax + - LP: #1356913 + * shmem: fix faulting into a hole while it's punched + - LP: #1356913 + * shmem: fix faulting into a hole, not taking i_mutex + - LP: #1356913 + * shmem: fix splicing from a hole while it's punched + - LP: #1356913 + * ipvs: Fix panic due to non-linear skb + - LP: #1356913 + * ALSA: hda - verify pin:converter connection on unsol event for HSW and + VLV + - LP: #1356913 + * ALSA: hda - verify pin:cvt connection on preparing a stream for Intel + HDMI codec + - LP: #1356913 + * x86/xen: safely map and unmap grant frames when in atomic context + - LP: #1356913 + * ext4: Fix buffer double free in ext4_alloc_branch() + - LP: #1356913 + * ARM: OMAP2+: Fix parser-bug in platform muxing code + - LP: #1356913 + * KVM: x86: Increase the number of fixed MTRR regs to 10 + - LP: #1356913 + * KVM: x86: preserve the high 32-bits of the PAT register + - LP: #1356913 + * usb: musb: ux500: don't propagate the OF node + - LP: #1356913 + * usb: gadget: f_fs: fix NULL pointer dereference when there are no + strings + - LP: #1356913 + * staging: iio/ad7291: fix error code in ad7291_probe() + - LP: #1356913 + * iio: of_iio_channel_get_by_name() returns non-null pointers for error + legs + - LP: #1356913 + * irqchip: spear_shirq: Fix interrupt offset + - LP: #1356913 + * USB: option: add device ID for SpeedUp SU9800 usb 3g modem + - LP: #1356913 + * USB: ftdi_sio: fix null deref at port probe + - LP: #1356913 + * usb: option: add/modify Olivetti Olicard modems + - LP: #1356913 + * scsi_error: fix invalid setting of host byte + - LP: #1356913 + * xhci: Use correct SLOT ID when handling a reset device command + - LP: #1356913 + * xhci: correct burst count field for isoc transfers on 1.0 xhci hosts + - LP: #1356913 + * xhci: clear root port wake on bits if controller isn't wake-up capable + - LP: #1356913 + * xhci: Fix runtime suspended xhci from blocking system suspend. + - LP: #1356913 + * ibmvscsi: Abort init sequence during error recovery + - LP: #1356913 + * ibmvscsi: Add memory barriers for send / receive + - LP: #1356913 + * virtio-scsi: avoid cancelling uninitialized work items + - LP: #1356913 + * virtio-scsi: fix various bad behavior on aborted requests + - LP: #1356913 + * MIPS: KVM: Fix memory leak on VCPU + - LP: #1356913 + * ext4: Fix hole punching for files with indirect blocks + - LP: #1356913 + * usb: musb: Fix panic upon musb_am335x module removal + - LP: #1356913 + * usb: musb: Ensure that cppi41 timer gets armed on premature DMA TX irq + - LP: #1356913 + * nfsd: fix rare symlink decoding bug + - LP: #1356913 + * tools: ffs-test: fix header values endianess + - LP: #1356913 + * usb-storage/SCSI: Add broken_fua blacklist flag + - LP: #1356913 + * drm/radeon/dpm: fix typo in vddci setup for eg/btc + - LP: #1356913 + * drm/radeon/dpm: fix vddci setup typo on cayman + - LP: #1356913 + * tracing: Remove ftrace_stop/start() from reading the trace file + - LP: #1356913 + * usb: chipidea: udc: delete td from req's td list at ep_dequeue + - LP: #1356913 + * drm/radeon/cik: fix typo in EOP packet + - LP: #1356913 + * md: flush writes before starting a recovery. + - LP: #1356913 + * drm/vmwgfx: Fix incorrect write to read-only register v2: + - LP: #1356913 + * mm: page_alloc: fix CMA area initialisation when pageblock > MAX_ORDER + - LP: #1356913 + * /proc/stat: convert to single_open_size() + - LP: #1356913 + * nick kvfree() from apparmor + - LP: #1356913 + * fs/seq_file: fallback to vmalloc allocation + - LP: #1356913 + * lz4: add overrun checks to lz4_uncompress_unknownoutputsize() + - LP: #1356913 + * arm64: mm: Make icache synchronisation logic huge page aware + - LP: #1356913 + * workqueue: fix dev_set_uevent_suppress() imbalance + - LP: #1356913 + * cpuset,mempolicy: fix sleeping function called from invalid context + - LP: #1356913 + * crypto: sha512_ssse3 - fix byte count to bit count conversion + - LP: #1356913 + * thermal: hwmon: Make the check for critical temp valid consistent + - LP: #1356913 + * clk: s2mps11: Fix double free corruption during driver unbind + - LP: #1356913 + * hwmon: (amc6821) Fix permissions for temp2_input + - LP: #1356913 + * hwmon: (adm1029) Ensure the fan_div cache is updated in set_fan_div + - LP: #1356913 + * hwmon: (adm1021) Fix cache problem when writing temperature limits + - LP: #1356913 + * ext4: fix unjournalled bg descriptor while initializing inode bitmap + - LP: #1356913 + * ext4: clarify error count warning messages + - LP: #1356913 + * ext4: clarify ext4_error message in ext4_mb_generate_buddy_error() + - LP: #1356913 + * ext4: disable synchronous transaction batching if max_batch_time==0 + - LP: #1356913 + * intel_pstate: Fix setting VID + - LP: #1356913 + * intel_pstate: don't touch turbo bit if turbo disabled or unavailable. + - LP: #1356913 + * intel_pstate: Set CPU number before accessing MSRs + - LP: #1356913 + * USB: cp210x: add support for Corsair usb dongle + - LP: #1356913 + * usb: option: Add ID for Telewell TW-LTE 4G v2 + - LP: #1356913 + * ACPI / EC: Avoid race condition related to advance_transaction() + - LP: #1356913 + * ACPI / EC: Add asynchronous command byte write support + - LP: #1356913 + * ACPI / EC: Remove duplicated ec_wait_ibf0() waiter + - LP: #1356913 + * ACPI / EC: Fix race condition in ec_transaction_completed() + - LP: #1356913 + * ACPI / battery: Retry to get battery information if failed during + probing + - LP: #1356913 + * hwmon: (adm1031) Fix writes to limit registers + - LP: #1356913 + * workqueue: zero cpumask of wq_numa_possible_cpumask on init + - LP: #1356913 + * hwmon: (emc2103) Clamp limits instead of bailing out + - LP: #1356913 + * arm64: implement TASK_SIZE_OF + - LP: #1356913 + * iio: ti_am335x_adc: Fix: Use same step id at FIFOs both ends + - LP: #1356913 + * cpufreq: Makefile: fix compilation for davinci platform + - LP: #1356913 + * drm/i915: Don't clobber the GTT when it's within stolen memory + - LP: #1356913 + * Drivers: hv: vmbus: Fix a bug in the channel callback dispatch code + - LP: #1356913 + * USB: ftdi_sio: Add extra PID. + - LP: #1356913 + * crypto: caam - fix memleak in caam_jr module + - LP: #1356913 + * dm: allocate a special workqueue for deferred device removal + - LP: #1356913 + * dm io: fix a race condition in the wake up code for sync_io + - LP: #1356913 + * drm/radeon/dp: return -EIO for flags not zero case + - LP: #1356913 + * drm/radeon: fix typo in golden register setup on evergreen + - LP: #1356913 + * drm/radeon: fix typo in ci_stop_dpm() + - LP: #1356913 + * drm/radeon/dpm: Reenabling SS on Cayman + - LP: #1356913 + * powerpc/perf: Add PPMU_ARCH_207S define + - LP: #1356913 + * powerpc/perf: Clear MMCR2 when enabling PMU + - LP: #1356913 + * powerpc/perf: Never program book3s PMCs with values >= 0x80000000 + - LP: #1356913 + * USB: serial: ftdi_sio: Add Infineon Triboard + - LP: #1356913 + * phy: core: Fix error path in phy_create() + - LP: #1356913 + * ext4: fix a potential deadlock in __ext4_es_shrink() + - LP: #1356913 + * parisc: add serial ports of C8000/1GHz machine to hardware database + - LP: #1356913 + * parisc: fix fanotify_mark() syscall on 32bit compat kernel + - LP: #1356913 + * parisc: drop unused defines and header includes + - LP: #1356913 + * clk: spear3xx: Use proper control register offset + - LP: #1356913 + * Bluetooth: Ignore H5 non-link packets in non-active state + - LP: #1356913 + * iwlwifi: update the 7265 series HW IDs + - LP: #1356913 + * mwifiex: fix Tx timeout issue + - LP: #1356913 + * x86, tsc: Fix cpufreq lockup + - LP: #1356913 + * perf/x86/intel: ignore CondChgd bit to avoid false NMI handling + - LP: #1356913 + * perf: Do not allow optimized switch for non-cloned events + - LP: #1356913 + * xen/manage: fix potential deadlock when resuming the console + - LP: #1356913 + * iwlwifi: dvm: don't enable CTS to self + - LP: #1356913 + * iwlwifi: mvm: disable CTS to Self + - LP: #1356913 + * xen/balloon: set ballooned out pages as invalid in p2m + - LP: #1356913 + * mtd: devices: elm: fix elm_context_save() and elm_context_restore() + functions + - LP: #1356913 + * fuse: timeout comparison fix + - LP: #1356913 + * fuse: ignore entry-timeout on LOOKUP_REVAL + - LP: #1356913 + * fuse: handle large user and group ID + - LP: #1356913 + * alarmtimer: Fix bug where relative alarm timers were treated as + absolute + - LP: #1356913 + * irqchip: gic: Add support for cortex a7 compatible string + - LP: #1356913 + * net: mvneta: fix operation in 10 Mbit/s mode + - LP: #1356913 + * net: mvneta: Fix big endian issue in mvneta_txq_desc_csum() + - LP: #1356913 + * igb: Workaround for i210 Errata 25: Slow System Clock + - LP: #1356913 + * x86/efi: Include a .bss section within the PE/COFF headers + - LP: #1356913 + * igb: do a reset on SR-IOV re-init if device is down + - LP: #1356913 + * iio:core: Handle error when mask type is not separate + - LP: #1356913 + * of/irq: do irq resolution in platform_get_irq_byname() + - LP: #1356913 + * platform_get_irq: Revert to platform_get_resource if of_irq_get fails + - LP: #1356913 + * aio: protect reqs_available updates from changes in interrupt handlers + - LP: #1356913 + * hwmon: (da9052) Don't use dash in the name attribute + - LP: #1356913 + * hwmon: (da9055) Don't use dash in the name attribute + - LP: #1356913 + * PM / sleep: Fix request_firmware() error at resume + - LP: #1356913 + * ALSA: hda - Fix broken PM due to incomplete i915 initialization + - LP: #1356913 + * tracing: Add ftrace_trace_stack into __trace_puts/__trace_bputs + - LP: #1356913 + * tracing: Fix graph tracer with stack tracer on other archs + - LP: #1356913 + * tracing: Add TRACE_ITER_PRINTK flag check in __trace_puts/__trace_bputs + - LP: #1356913 + * dm thin metadata: do not allow the data block size to change + - LP: #1356913 + * dm cache metadata: do not allow the data block size to change + - LP: #1356913 + * quota: missing lock in dqcache_shrink_scan() + - LP: #1356913 + * ring-buffer: Fix polling on trace_pipe + - LP: #1356913 + * sched: Fix possible divide by zero in avg_atom() calculation + - LP: #1356913 + * locking/mutex: Disable optimistic spinning on some architectures + - LP: #1356913 + * drm/qxl: return IRQ_NONE if it was not our irq + - LP: #1356913 + * hwmon: (adt7470) Fix writes to temperature limit registers + - LP: #1356913 + * cpufreq: move policy kobj to policy->cpu at resume + - LP: #1356913 + * drm/radeon: avoid leaking edid data + - LP: #1356913 + * drm/radeon: set default bl level to something reasonable + - LP: #1356913 + * usb: chipidea: udc: Disable auto ZLP generation on ep0 + - LP: #1356913 + * irqchip: gic: Fix core ID calculation when topology is read from DT + - LP: #1356913 + * slab_common: fix the check for duplicate slab names + - LP: #1356913 + * xtensa: add fixup for double exception raised in window overflow + - LP: #1356913 + * [media] media: v4l2-core: v4l2-dv-timings.c: Cleaning up code wrong + value used in aspect ratio + - LP: #1356913 + * [media] hdpvr: fix two audio bugs + - LP: #1356913 + * block: don't assume last put of shared tags is for the host + - LP: #1356913 + * blkcg: don't call into policy draining if root_blkg is already gone + - LP: #1356913 + * block: provide compat ioctl for BLKZEROOUT + - LP: #1356913 + * libata: support the ata host which implements a queue depth less than + 32 + - LP: #1356913 + * [media] tda10071: force modulation to QPSK on DVB-S + - LP: #1356913 + * [media] gspca_pac7302: Add new usb-id for Genius i-Look 317 + - LP: #1356913 + * s390/ptrace: fix PSW mask check + - LP: #1356913 + * ahci: add support for the Promise FastTrak TX8660 SATA HBA (ahci mode) + - LP: #1356913 + * Input: fix defuzzing logic + - LP: #1356913 + * tracing: Fix wraparound problems in "uptime" trace clock + - LP: #1356913 + * drm/i915: Reorder the semaphore deadlock check, again + - LP: #1356913 + * libata: introduce ata_host->n_tags to avoid oops on SAS controllers + - LP: #1356913 + * drm/radeon: fix irq ring buffer overflow handling + - LP: #1356913 + * coredump: fix the setting of PF_DUMPCORE + - LP: #1356913 + * fs: umount on symlink leaks mnt count + - LP: #1356913 + * hwmon: (smsc47m192) Fix temperature limit and vrm write operations + - LP: #1356913 + * parisc: Remove SA_RESTORER define + - LP: #1356913 + * drm/radeon: fix cut and paste issue for hawaii. + - LP: #1356913 + * parport: fix menu breakage + - LP: #1356913 + * Fix gcc-4.9.0 miscompilation of load_balance() in scheduler + - LP: #1356913 + * scsi: handle flush errors properly + - LP: #1356913 + * cfg80211: fix mic_failure tracing + - LP: #1356913 + * iio: buffer: Fix demux table creation + - LP: #1356913 + * iio:bma180: Fix scale factors to report correct acceleration units + - LP: #1356913 + * iio:bma180: Missing check for frequency fractional part + - LP: #1356913 + * powerpc/perf: Fix MMCR2 handling for EBB + - LP: #1356913 + * ath9k: fix aggregation session lockup + - LP: #1356913 + * sched_clock: Avoid corrupting hrtimer tree during suspend + - LP: #1356913 + * staging: vt6655: Fix Warning on boot handle_irq_event_percpu. + - LP: #1356913 + * staging: vt6655: Fix disassociated messages every 10 seconds + - LP: #1356913 + * can: c_can_platform: Fix raminit, use devm_ioremap() instead of + devm_ioremap_resource() + - LP: #1356913 + * crypto: arm-aes - fix encryption of unaligned data + - LP: #1356913 + * ARM: fix alignment of keystone page table fixup + - LP: #1356913 + * net: sendmsg: fix NULL pointer dereference + - LP: #1356913 + * mm/page-writeback.c: fix divide by zero in bdi_dirty_limits() + - LP: #1356913 + * mm, thp: do not allow thp faults to avoid cpuset restrictions + - LP: #1356913 + * rapidio/tsi721_dma: fix failure to obtain transaction descriptor + - LP: #1356913 + * memcg: oom_notify use-after-free fix + - LP: #1356913 + * crypto: af_alg - properly label AF_ALG socket + - LP: #1356913 + * printk: rename printk_sched to printk_deferred + - LP: #1356913 + * timer: Fix lock inversion between hrtimer_bases.lock and scheduler + locks + - LP: #1356913 + * dm bufio: fully initialize shrinker + - LP: #1356913 + * dm cache: fix race affecting dirty block count + - LP: #1356913 + * qlcnic: info leak in qlcnic_dcb_peer_app_info() + - LP: #1356913 + * netlink: rate-limit leftover bytes warning and print process name + - LP: #1356913 + * bridge: Prevent insertion of FDB entry with disallowed vlan + - LP: #1356913 + * net: tunnels - enable module autoloading + - LP: #1356913 + * net: fix inet_getid() and ipv6_select_ident() bugs + - LP: #1356913 + * team: fix mtu setting + - LP: #1356913 + * tcp: fix cwnd undo on DSACK in F-RTO + - LP: #1356913 + * sh_eth: use RNC mode for packet reception + - LP: #1356913 + * sh_eth: fix SH7619/771x support + - LP: #1356913 + * net: filter: fix typo in sparc BPF JIT + - LP: #1356913 + * net: filter: fix sparc32 typo + - LP: #1356913 + * net: qmi_wwan: add Olivetti Olicard modems + - LP: #1356913 + * net: force a list_del() in unregister_netdevice_many() + - LP: #1356913 + * ipip, sit: fix ipv4_{update_pmtu,redirect} calls + - LP: #1356913 + * sfc: PIO:Restrict to 64bit arch and use 64-bit writes. + - LP: #1356913 + * ipv4: fix a race in ip4_datagram_release_cb() + - LP: #1356913 + * rtnetlink: fix userspace API breakage for iproute2 < v3.9.0 + - LP: #1356913 + * vxlan: use dev->needed_headroom instead of dev->hard_header_len + - LP: #1356913 + * udp: ipv4: do not waste time in __udp4_lib_mcast_demux_lookup + - LP: #1356913 + * ip_tunnel: fix ip_tunnel_lookup + - LP: #1356913 + * slip: Fix deadlock in write_wakeup + - LP: #1356913 + * slcan: Port write_wakeup deadlock fix from slip + - LP: #1356913 + * net: sctp: propagate sysctl errors from proc_do* properly + - LP: #1356913 + * tcp: fix tcp_match_skb_to_sack() for unaligned SACK at end of an skb + - LP: #1356913 + * net: sctp: check proc_dointvec result in proc_sctp_do_auth + - LP: #1356913 + * 8021q: fix a potential memory leak + - LP: #1356913 + * net: huawei_cdc_ncm: increase command buffer size + - LP: #1356913 + * ipv4: fix dst race in sk_dst_get() + - LP: #1356913 + * ipv4: irq safe sk_dst_[re]set() and ipv4_sk_update_pmtu() fix + - LP: #1356913 + * net: fix sparse warning in sk_dst_set() + - LP: #1356913 + * vlan: free percpu stats in device destructor + - LP: #1356913 + * bnx2x: fix possible panic under memory stress + - LP: #1356913 + * tcp: Fix divide by zero when pushing during tcp-repair + - LP: #1356913 + * ipv4: icmp: Fix pMTU handling for rare case + - LP: #1356913 + * net: qmi_wwan: Add ID for Telewell TW-LTE 4G v2 + - LP: #1356913 + * net: qmi_wwan: add two Sierra Wireless/Netgear devices + - LP: #1356913 + * net: Fix NETDEV_CHANGE notifier usage causing spurious arp flush + - LP: #1356913 + * igmp: fix the problem when mc leave group + - LP: #1356913 + * tcp: fix false undo corner cases + - LP: #1356913 + * appletalk: Fix socket referencing in skb + - LP: #1356913 + * netlink: Fix handling of error from netlink_dump(). + - LP: #1356913 + * be2net: set EQ DB clear-intr bit in be_open() + - LP: #1356913 + * tipc: clear 'next'-pointer of message fragments before reassembly + - LP: #1356913 + * net: sctp: fix information leaks in ulpevent layer + - LP: #1356913 + * net: pppoe: use correct channel MTU when using Multilink PPP + - LP: #1356913 + * sunvnet: clean up objects created in vnet_new() on vnet_exit() + - LP: #1356913 + * net: huawei_cdc_ncm: add "subclass 3" devices + - LP: #1356913 + * dns_resolver: assure that dns_query() result is null-terminated + - LP: #1356913 + * dns_resolver: Null-terminate the right string + - LP: #1356913 + * ipv4: fix buffer overflow in ip_options_compile() + - LP: #1356913 + * x86/xen: no need to explicitly register an NMI callback + - LP: #1356913 + * Linux 3.13.11.6 + - LP: #1356913 + + -- Joseph Salisbury Thu, 14 Aug 2014 17:12:19 -0400 + +linux (3.13.0-34.60) trusty; urgency=low + + [ Brad Figg ] + + * Release Tracking Bug + - LP: #1356396 + + [ Upstream Kernel Changes ] + + * mnt: Only change user settable mount flags in remount + - CVE-2014-5206 + * mnt: Move the test for MNT_LOCK_READONLY from change_mount_flags into + do_remount + - CVE-2014-5206 + * mnt: Correct permission checks in do_remount + - CVE-2014-5207 + * mnt: Change the default remount atime from relatime to the existing + value + - CVE-2014-5207 + + -- Brad Figg Tue, 29 Jul 2014 08:25:07 -0700 + +linux (3.13.0-33.58) trusty; urgency=low + + [ Brad Figg ] + + * Release Tracking Bug + - LP: #1349897 + + [ Upstream Kernel Changes ] + + * mm: numa: do not automatically migrate KSM pages + - LP: #1346917 + * net: fix UDP tunnel GSO of frag_list GRO packets + - LP: #1331219 + * auditsc: audit_krule mask accesses need bounds checking + - LP: #1347088 + * n_tty: Fix buffer overruns with larger-than-4k pastes + - LP: #1208740 + + -- Tim Gardner Fri, 18 Jul 2014 14:57:50 +0000 + +linux (3.13.0-32.57) trusty; urgency=low + + [ Upstream Kernel Changes ] + + * l2tp: Privilege escalation in ppp over l2tp sockets + - LP: #1341472 + - CVE-2014-4943 + + -- Luis Henriques Mon, 14 Jul 2014 10:03:44 +0100 + +linux (3.13.0-32.56) trusty; urgency=low + + [ Luis Henriques ] + + * Merged back Ubuntu-3.13.0-30.55 security release + * Revert "x86_64,ptrace: Enforce RIP <= TASK_SIZE_MAX (CVE-2014-4699)" + - LP: #1337339 + * Release Tracking Bug + - LP: #1338524 + + [ Upstream Kernel Changes ] + + * ptrace,x86: force IRET path after a ptrace_stop() + - LP: #1337339 + - CVE-2014-4699 + * hpsa: add new Smart Array PCI IDs (May 2014) + - LP: #1337516 + + -- Luis Henriques Mon, 07 Jul 2014 11:38:37 +0100 + +linux (3.13.0-31.55) trusty; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - LP: #1336278 + + [ Andy Whitcroft ] + + * [Config] switch hyper-keyboard to virtual + - LP: #1325306 + * [Packaging] linux-udeb-flavour -- standardise on linux prefix + + [ dann frazier ] + + * [Config] CONFIG_GPIO_DWAPB=m + - LP: #1334823 + + [ Feng Kan ] + + * SAUCE: (no-up) arm64: dts: Add Designware GPIO dts binding to APM + X-Gene platform + - LP: #1334823 + + [ John Johansen ] + + * SAUCE: (no-up) apparmor: fix apparmor spams log with warning message + - LP: #1308761 + + [ Kamal Mostafa ] + + * [Config] updateconfigs ACPI_PROCFS_POWER=y after v3.13.11.4 rebase + + [ Loc Ho ] + + * SAUCE: (no-up) phy-xgene: Use correct tuning for Mustang + - LP: #1335636 + + [ Michael Ellerman ] + + * SAUCE: (no-up) powerpc/perf: Ensure all EBB register state is cleared + on fork() + - LP: #1328914 + + [ Ming Lei ] + + * Revert "SAUCE: (no-up) rtc: Add X-Gene SoC Real Time Clock Driver" + - LP: #1274305 + + [ Suman Tripathi ] + + * SAUCE: (no-up) libahci: Implement the function ahci_restart_engine to + restart the port dma engine. + - LP: #1335645 + * SAUCE: (no-up) ata: Fix the dma state machine lockup for the IDENTIFY + DEVICE PIO mode command. + - LP: #1335645 + + [ Tim Gardner ] + + * [Config] CONFIG_POWERNV_CPUFREQ=y for powerpc, ppc64el + - LP: #1324571 + * [Debian] Add UTS_UBUNTU_RELEASE_ABI to utsrelease.h + - LP: #1327619 + * [Config] CONFIG_HAVE_MEMORYLESS_NODES=y + - LP: #1332063 + * [Config] CONFIG_HID_RMI=m + - LP: #1305522 + + [ Upstream Kernel Changes ] + + * Revert "offb: Add palette hack for little endian" + - LP: #1333430 + * Revert "net: mvneta: fix usage as a module on RGMII configurations" + - LP: #1333837 + * Revert "USB: serial: add usbid for dell wwan card to sierra.c" + - LP: #1333837 + * Revert "macvlan : fix checksums error when we are in bridge mode" + - LP: #1333838 + * serial: uart: add hw flow control support configuration + - LP: #1328295 + * mm/numa: Remove BUG_ON() in __handle_mm_fault() + - LP: #1323165 + * Tools: hv: Handle the case when the target file exists correctly + - LP: #1306215 + * Documentation/devicetree/bindings: add documentation for the APM X-Gene + SoC RTC DTS binding + - LP: #1274305 + * drivers/rtc: add APM X-Gene SoC RTC driver + - LP: #1274305 + * arm64: add APM X-Gene SoC RTC DTS entry + - LP: #1274305 + * powerpc/perf: Add Power8 cache & TLB events + - LP: #1328914 + * powerpc/perf: Configure BHRB filter before enabling PMU interrupts + - LP: #1328914 + * powerpc/perf: Define perf_event_print_debug() to print PMU register + values + - LP: #1328914 + * powerpc: Add a cpu feature CPU_FTR_PMAO_BUG + - LP: #1328914 + * powerpc/perf: Add lost exception workaround + - LP: #1328914 + * powerpc/perf: Reject EBB events which specify a sample_type + - LP: #1328914 + * powerpc/perf: Clean up the EBB hash defines a little + - LP: #1328914 + * powerpc/perf: Avoid mutating event in power8_get_constraint() + - LP: #1328914 + * powerpc/perf: Add BHRB constraint and IFM MMCRA handling for EBB + - LP: #1328914 + * powerpc/perf: Enable BHRB access for EBB events + - LP: #1328914 + * powerpc/perf: Fix handling of L3 events with bank == 1 + - LP: #1328914 + * Bluetooth: Add support for Intel Bluetooth device [8087:0a2a] + - LP: #1329184 + * iwlwifi: mvm: disable beacon filtering + - LP: #1293569 + * SUNRPC: Ensure that call_connect times out correctly + - LP: #1322407 + * SUNRPC: Ensure call_connect_status() deals correctly with SOFTCONN + tasks + - LP: #1322407 + * bitops: Fix signedness of compile-time hweight implementations + - LP: #1321791 + * cpumask.h: silence warning with -Wsign-compare + - LP: #1321791 + * fbdev/fb.h: silence warning with -Wsign-compare + - LP: #1321791 + * rtlwifi: make MSI support a module parameter + - LP: #1296591 + * rtlwifi: rtl8188ee: add msi module parameter + - LP: #1296591 + * rtlwifi: rtl8723be: add msi module parameter + - LP: #1296591 + * net: avoid dependency of net_get_random_once on nop patching + - LP: #1330671 + * x86-64, modify_ldt: Make support for 16-bit segments a runtime option + - LP: #1328965 + * ALSA: usb-audio: Prevent printk ratelimiting from spamming kernel log + while DEBUG not defined + - LP: #1319457 + * btrfs: fix defrag 32-bit integer overflow + - LP: #1324953 + * dell-laptop: Only install the i8042 filter when rfkill is active + - LP: #1289238 + * kthread: ensure locality of task_struct allocations + - LP: #1332063 + * slub: search partial list on numa_mem_id(), instead of numa_node_id() + - LP: #1332063 + * powerpc/numa: Enable USE_PERCPU_NUMA_NODE_ID + - LP: #1332063 + * powerpc/numa: Enable CONFIG_HAVE_MEMORYLESS_NODES + - LP: #1332063 + * drm/i915: Allow user modes to exceed DVI 165MHz limit + - LP: #1332220 + * HID: rmi: introduce RMI driver for Synaptics touchpads + - LP: #1305522 + * HID: rmi: do not stop the device at the end of probe + - LP: #1305522 + * HID: rmi: check for the existence of some optional queries before + reading query 12 + - LP: #1305522 + * HID: rmi: do not fetch more than 16 bytes in a query + - LP: #1305522 + * HID: rmi: fix wrong struct field name + - LP: #1305522 + * HID: rmi: fix masks for x and w_x data + - LP: #1305522 + * HID: rmi: do not handle touchscreens through hid-rmi + - LP: #1305522 + * ipv6: Fix regression caused by efe4208 in udp_v6_mcast_next() + - LP: #1332420 + * HID: core: do not scan constant input report + - LP: #1333837 + * drm/radeon: fix audio pin counts for DCE6+ (v2) + - LP: #1333837 + * mac80211: fix software remain-on-channel implementation + - LP: #1333837 + * mac80211: exclude AP_VLAN interfaces from tx power calculation + - LP: #1333837 + * iwlwifi: add new 7265 HW IDs + - LP: #1333837 + * parisc: fix epoll_pwait syscall on compat kernel + - LP: #1333837 + * iwlwifi: add MODULE_FIRMWARE for 7265 + - LP: #1333837 + * dma: edma: fix incorrect SG list handling + - LP: #1333837 + * ALSA: hda/realtek - Add support of ALC288 codec + - LP: #1333837 + * xen/spinlock: Don't enable them unconditionally. + - LP: #1333837 + * tick-common: Fix wrong check in tick_check_replacement() + - LP: #1333837 + * tick-sched: Check tick_nohz_enabled in tick_nohz_switch_to_nohz() + - LP: #1333837 + * ALSA: hda - add headset mic detect quirk for a Dell laptop + - LP: #1297581, #1333837 + * ALSA: hda/realtek - Add headset Mic support for Dell machine + - LP: #1333837 + * staging: r8188eu: Calling rtw_get_stainfo() with a NULL sta_addr will + return NULL + - LP: #1333837 + * cifs: Wait for writebacks to complete before attempting write. + - LP: #1333837 + * mlx4_en: don't use napi_synchronize inside mlx4_en_netpoll + - LP: #1333837 + * mei: ignore client writing state during cb completion + - LP: #1333837 + * staging: r8712u: Fix case where ethtype was never obtained and always + be checked against 0 + - LP: #1333837 + * staging: r8188eu: Fix case where ethtype was never obtained and always + be checked against 0 + - LP: #1333837 + * USB: serial: ftdi_sio: add id for Brainboxes serial cards + - LP: #1333837 + * usb: option driver, add support for Telit UE910v2 + - LP: #1333837 + * USB: cp210x: Add 8281 (Nanotec Plug & Drive) + - LP: #1333837 + * USB: pl2303: add ids for Hewlett-Packard HP POS pole displays + - LP: #1333837 + * USB: usb_wwan: fix handling of missing bulk endpoints + - LP: #1333837 + * USB: fix crash during hotplug of PCI USB controller card + - LP: #1333837 + * USB: cdc-acm: Remove Motorola/Telit H24 serial interfaces from ACM + driver + - LP: #1333837 + * Drivers: hv: vmbus: Negotiate version 3.0 when running on ws2012r2 + hosts + - LP: #1333837 + * serial: omap: Fix missing pm_runtime_resume handling by simplifying + code + - LP: #1333837 + * drm/radeon: disable mclk dpm on R7 260X + - LP: #1333837 + * drm/radeon: fix runpm handling on APUs (v4) + - LP: #1333837 + * drm/radeon: add support for newer mc ucode on SI (v2) + - LP: #1333837 + * drm/radeon: add support for newer mc ucode on CI (v2) + - LP: #1333837 + * drm/radeon: re-enable mclk dpm on R7 260X asics + - LP: #1333837 + * drm/radeon: memory leak on bo reservation failure. v2 + - LP: #1333837 + * drm/radeon/si: make sure mc ucode is loaded before checking the size + - LP: #1333837 + * drm/radeon/ci: make sure mc ucode is loaded before checking the size + - LP: #1333837 + * init/Kconfig: move the trusted keyring config option to general setup + - LP: #1333837 + * mm/hugetlb.c: add cond_resched_lock() in return_unused_surplus_pages() + - LP: #1333837 + * thp: close race between split and zap huge pages + - LP: #1333837 + * coredump: fix va_list corruption + - LP: #1333837 + * powerpc/tm: Disable IRQ in tm_recheckpoint + - LP: #1333837 + * ACPI / EC: Process rather than discard events in acpi_ec_clear + - LP: #1333837 + * ath9k: Fix sequence number assignment for non-data frames + - LP: #1333837 + * xhci: Switch Intel Lynx Point ports to EHCI on shutdown. + - LP: #1333837 + * iio: adc: at91_adc: Repair broken platform_data support + - LP: #1333837 + * iio: querying buffer scan_mask should return 0/1 + - LP: #1333837 + * iio: cm36651: Fix i2c client leak and possible NULL pointer dereference + - LP: #1333837 + * libata: Update queued trim blacklist for M5x0 drives + - LP: #1333837 + * pata_at91: fix ata_host_activate() failure handling + - LP: #1333837 + * ext4: avoid possible overflow in ext4_map_blocks() + - LP: #1333837 + * ext4: FIBMAP ioctl causes BUG_ON due to handle EXT_MAX_BLOCKS + - LP: #1333837 + * ext4: note the error in ext4_end_bio() + - LP: #1333837 + * ext4: fix jbd2 warning under heavy xattr load + - LP: #1333837 + * ext4: move ext4_update_i_disksize() into mpage_map_and_submit_extent() + - LP: #1333837 + * ext4: use i_size_read in ext4_unaligned_aio() + - LP: #1333837 + * locks: allow __break_lease to sleep even when break_time is 0 + - LP: #1333837 + * usb: gadget: zero: Fix SuperSpeed enumeration for alternate setting 1 + - LP: #1333837 + * ahci: do not request irq for dummy port + - LP: #1333837 + * genirq: Allow forcing cpu affinity of interrupts + - LP: #1333837 + * irqchip: Gic: Support forced affinity setting + - LP: #1333837 + * clocksource: Exynos_mct: Use irq_force_affinity() in cpu bringup + - LP: #1333837 + * clocksource: Exynos_mct: Register clock event after request_irq() + - LP: #1333837 + * nfsd: set timeparms.to_maxval in setup_callback_client + - LP: #1333837 + * ahci: Do not receive interrupts sent by dummy ports + - LP: #1333837 + * libata/ahci: accommodate tag ordered controllers + - LP: #1333837 + * drm/radeon: disable dpm on rv770 by default + - LP: #1333837 + * Input: synaptics - add min/max quirk for ThinkPad T431s, L440, L540, S1 + Yoga and X1 + - LP: #1333837 + * drm/radeon: fix count in cik_sdma_ring_test() + - LP: #1333837 + * drm/radeon: properly unregister hwmon interface (v2) + - LP: #1333837 + * drm/radeon/pm: don't walk the crtc list before it has been initialized + (v2) + - LP: #1333837 + * drm/radeon: fix ATPX detection on non-VGA GPUs + - LP: #1333837 + * drm/radeon: don't allow runpm=1 on systems with out ATPX + - LP: #1333837 + * mm: make fixup_user_fault() check the vma access rights too + - LP: #1333837 + * ARM: 8027/1: fix do_div() bug in big-endian systems + - LP: #1333837 + * ARM: 8030/1: ARM : kdump : add arch_crash_save_vmcoreinfo + - LP: #1333837 + * ARM: pxa: hx4700.h: include "irqs.h" for PXA_NR_BUILTIN_GPIO + - LP: #1333837 + * ARM: tegra: remove UART5/UARTE from tegra124.dtsi + - LP: #1333837 + * USB: serial: fix sysfs-attribute removal deadlock + - LP: #1333837 + * 8250_core: Fix unwanted TX chars write + - LP: #1333837 + * serial: 8250: Fix thread unsafe __dma_tx_complete function + - LP: #1333837 + * Btrfs: fix inode caching vs tree log + - LP: #1333837 + * xhci: For streams the css flag most be read from the stream-ctx on ep + stop + - LP: #1333837 + * usb: xhci: Prefer endpoint context dequeue pointer over stopped_trb + - LP: #1333837 + * USB: io_ti: fix firmware download on big-endian machines + - LP: #1333837 + * usb: qcserial: add Sierra Wireless EM7355 + - LP: #1333837 + * usb: qcserial: add Sierra Wireless MC73xx + - LP: #1333837 + * usb: qcserial: add Sierra Wireless MC7305/MC7355 + - LP: #1333837 + * usb: option: add Olivetti Olicard 500 + - LP: #1333837 + * usb: option: add Alcatel L800MA + - LP: #1333837 + * usb: option: add and update a number of CMOTech devices + - LP: #1333837 + * word-at-a-time: avoid undefined behaviour in zero_bytemask macro + - LP: #1333837 + * s390/chsc: fix SEI usage on old FW levels + - LP: #1333837 + * irqchip: armada-370-xp: fix invalid cast of signed value into unsigned + variable + - LP: #1333837 + * irqchip: armada-370-xp: implement the ->check_device() msi_chip + operation + - LP: #1333837 + * irqchip: armada-370-xp: Fix releasing of MSIs + - LP: #1333837 + * ASoC: dapm: Fix widget double free with auto-disable DAPM kcontrol + - LP: #1333837 + * drm/i915: Don't check gmch state on inherited configs + - LP: #1333837 + * drm/vmwgfx: Make sure user-space can't DMA across buffer object + boundaries v2 + - LP: #1333837 + * of/irq: do irq resolution in platform_get_irq + - LP: #1333837 + * s390/bpf,jit: initialize A register if 1st insn is BPF_S_LDX_B_MSH + - LP: #1333837 + * drm/i915: Don't WARN nor handle unexpected hpd interrupts on gmch + platforms + - LP: #1333837 + * module: remove warning about waiting module removal. + - LP: #1333837 + * ALSA: hda - add headset mic detect quirk for a Dell laptop + - LP: #1297581, #1333837 + * arm: KVM: fix possible misalignment of PGDs and bounce page + - LP: #1333837 + * KVM: ARM: vgic: Fix sgi dispatch problem + - LP: #1333837 + * KVM: async_pf: mm->mm_users can not pin apf->mm + - LP: #1333837 + * ftrace/module: Hardcode ftrace_module_init() call into load_module() + - LP: #1333837 + * [SCSI] mpt2sas: Don't disable device twice at suspend. + - LP: #1333837 + * [SCSI] virtio-scsi: Skip setting affinity on uninitialized vq + - LP: #1333837 + * drivercore: deferral race condition fix + - LP: #1333837 + * hrtimer: Prevent all reprogramming if hang detected + - LP: #1333837 + * hrtimer: Prevent remote enqueue of leftmost timers + - LP: #1333837 + * timer: Prevent overflow in apply_slack + - LP: #1333837 + * ARC: !PREEMPT: Ensure Return to kernel mode is IRQ safe + - LP: #1333837 + * aio: fix potential leak in aio_run_iocb(). + - LP: #1333837 + * dm cache: fix writethrough mode quiescing in cache_map + - LP: #1333837 + * fix races between __d_instantiate() and checks of dentry flags + - LP: #1333837 + * net: Fix ns_capable check in sock_diag_put_filterinfo + - LP: #1333837 + * rt2x00: fix beaconing on USB + - LP: #1333837 + * rtlwifi: rtl8188ee: initialize packet_beacon + - LP: #1333837 + * Input: synaptics - add min/max quirk for ThinkPad Edge E431 + - LP: #1333837 + * Input: atkbd - fix keyboard not working on some LG laptops + - LP: #1333837 + * Bluetooth: Fix triggering BR/EDR L2CAP Connect too early + - LP: #1333837 + * drm/i915: Break encoder->crtc link separately in intel_sanitize_crtc() + - LP: #1333837 + * iio:imu:mpu6050: Fixed segfault in Invensens MPU driver due to null + dereference + - LP: #1333837 + * ALSA: hda - add headset mic detect quirk for a Dell laptop + - LP: #1297581, #1333837 + * rtlwifi: rtl8192se: Fix regression due to commit 1bf4bbb + - LP: #1333837 + * rtl8192cu: Fix unbalanced irq enable in error path of rtl92cu_hw_init() + - LP: #1333837 + * drm/radeon/uvd: use lower clocks on old UVD to boot v2 + - LP: #1333837 + * drm/radeon: use pflip irq on R600+ v2 + - LP: #1333837 + * drm/radeon: check buffer relocation offset + - LP: #1333837 + * drm/nouveau/acpi: allow non-optimus setups to load vbios from acpi + - LP: #1333837 + * drm/nouveau: fix another lock unbalance in nouveau_crtc_page_flip + - LP: #1333837 + * ALSA: usb-audio: work around corrupted TEAC UD-H01 feedback data + - LP: #1333837 + * USB: OHCI: fix problem with global suspend on ATI controllers + - LP: #1333837 + * usb: qcserial: add a number of Dell devices + - LP: #1333837 + * usb: storage: shuttle_usbat: fix discs being detected twice + - LP: #1333837 + * fsl-usb: do not test for PHY_CLK_VALID bit on controller version 1.6 + - LP: #1333837 + * tty: serial: 8250_core.c Bug fix for Exar chips. + - LP: #1333837 + * drivers/tty/hvc: don't free hvc_console_setup after init + - LP: #1333837 + * tty: Fix lockless tty buffer race + - LP: #1333837 + * USB: Nokia 305 should be treated as unusual dev + - LP: #1333837 + * USB: Nokia 5300 should be treated as unusual dev + - LP: #1333837 + * HID: add NO_INIT_REPORTS quirk for Synaptics Touch Pad V 103S + - LP: #1333837 + * ALSA: hda - hdmi: Set converter channel count even without sink + - LP: #1333837 + * Input: elantech - fix touchpad initialization on Gigabyte U2442 + - LP: #1333837 + * posix_acl: handle NULL ACL in posix_acl_equiv_mode + - LP: #1333837 + * mm/page-writeback.c: fix divide by zero in pos_ratio_polynom + - LP: #1333837 + * mm: compaction: detect when scanners meet in isolate_freepages + - LP: #1333837 + * mm/compaction: make isolate_freepages start at pageblock boundary + - LP: #1333837 + * autofs: fix lockref lookup + - LP: #1333837 + * libata: Blacklist queued trim for Crucial M500 + - LP: #1333837 + * Linux 3.13.11.3 + - LP: #1333837 + * net: sctp: wake up all assocs if sndbuf policy is per socket + - LP: #1333838 + * net: sctp: test if association is dead in sctp_wake_up_waiters + - LP: #1333838 + * l2tp: take PMTU from tunnel UDP socket + - LP: #1333838 + * net: core: don't account for udp header size when computing seglen + - LP: #1333838 + * bonding: Remove debug_fs files when module init fails + - LP: #1333838 + * bridge: Fix double free and memory leak around br_allowed_ingress + - LP: #1333838 + * ipv6: Limit mtu to 65575 bytes + - LP: #1333838 + * gre: don't allow to add the same tunnel twice + - LP: #1333838 + * vti: don't allow to add the same tunnel twice + - LP: #1333838 + * ipv4: return valid RTA_IIF on ip route get + - LP: #1333838 + * filter: prevent nla extensions to peek beyond the end of the message + - LP: #1333838 + * ip6_gre: don't allow to remove the fb_tunnel_dev + - LP: #1333838 + * vlan: Fix lockdep warning when vlan dev handle notification + - LP: #1333838 + * net: Find the nesting level of a given device by type. + - LP: #1333838 + * net: Allow for more then a single subclass for netif_addr_lock + - LP: #1333838 + * vlan: Fix lockdep warning with stacked vlan devices. + - LP: #1333838 + * macvlan: Fix lockdep warnings with stacked macvlan devices + - LP: #1333838 + * tg3: update rx_jumbo_pending ring param only when jumbo frames are + enabled + - LP: #1333838 + * net: sctp: cache auth_enable per endpoint + - LP: #1333838 + * rtnetlink: Warn when interface's information won't fit in our packet + - LP: #1333838 + * rtnetlink: Only supply IFLA_VF_PORTS information when RTEXT_FILTER_VF + is set + - LP: #1333838 + * ipv6: fib: fix fib dump restart + - LP: #1333838 + * bridge: Handle IFLA_ADDRESS correctly when creating bridge device + - LP: #1333838 + * sctp: reset flowi4_oif parameter on route lookup + - LP: #1333838 + * net: qmi_wwan: add Sierra Wireless EM7355 + - LP: #1333838 + * net: qmi_wwan: add Sierra Wireless MC73xx + - LP: #1333838 + * net: qmi_wwan: add Sierra Wireless MC7305/MC7355 + - LP: #1333838 + * net: qmi_wwan: add Olivetti Olicard 500 + - LP: #1333838 + * net: qmi_wwan: add Alcatel L800MA + - LP: #1333838 + * net: qmi_wwan: add a number of CMOTech devices + - LP: #1333838 + * net: qmi_wwan: add a number of Dell devices + - LP: #1333838 + * slip: fix spinlock variant + - LP: #1333838 + * net: sctp: Potentially-Failed state should not be reached from + unconfirmed state + - LP: #1333838 + * net: sctp: Don't transition to PF state when transport has exhausted + 'Path.Max.Retrans'. + - LP: #1333838 + * mactap: Fix checksum errors for non-gso packets in bridge mode + - LP: #1333838 + * tcp_cubic: fix the range of delayed_ack + - LP: #1333838 + * vsock: Make transport the proto owner + - LP: #1333838 + * net: cdc_ncm: fix buffer overflow + - LP: #1333838 + * ip_tunnel: Set network header properly for IP_ECN_decapsulate() + - LP: #1333838 + * net: cdc_mbim: __vlan_find_dev_deep need rcu_read_lock + - LP: #1333838 + * net: ipv4: ip_forward: fix inverted local_df test + - LP: #1333838 + * net: ipv6: send pkttoobig immediately if orig frag size > mtu + - LP: #1333838 + * ipv4: fib_semantics: increment fib_info_cnt after fib_info allocation + - LP: #1333838 + * net: cdc_mbim: handle unaccelerated VLAN tagged frames + - LP: #1333838 + * macvlan: Don't propagate IFF_ALLMULTI changes on down interfaces. + - LP: #1333838 + * sfc: fix calling of free_irq with already free vector + - LP: #1333838 + * ip6_tunnel: fix potential NULL pointer dereference + - LP: #1333838 + * net: filter: x86: fix JIT address randomization + - LP: #1333838 + * net: filter: s390: fix JIT address randomization + - LP: #1333838 + * ipv6: fix calculation of option len in ip6_append_data + - LP: #1333838 + * rtnetlink: wait for unregistering devices in rtnl_link_unregister() + - LP: #1333838 + * net: gro: make sure skb->cb[] initial content has not to be zero + - LP: #1333838 + * batman-adv: fix reference counting imbalance while sending fragment + - LP: #1333838 + * batman-adv: increase orig refcount when storing ref in gw_node + - LP: #1333838 + * batman-adv: fix local TT check for outgoing arp requests in DAT + - LP: #1333838 + * ip_tunnel: Initialize the fallback device properly + - LP: #1333838 + * ipv4: initialise the itag variable in __mkroute_input + - LP: #1333838 + * net-gro: reset skb->truesize in napi_reuse_skb() + - LP: #1333838 + * netfilter: ipv4: defrag: set local_df flag on defragmented skb + - LP: #1333838 + * ima: introduce ima_kernel_read() + - LP: #1333838 + * ima: audit log files opened with O_DIRECT flag + - LP: #1333838 + * percpu: make pcpu_alloc_chunk() use pcpu_mem_free() instead of kfree() + - LP: #1333838 + * workqueue: fix bugs in wq_update_unbound_numa() failure path + - LP: #1333838 + * [media] fc2580: fix tuning failure on 32-bit arch + - LP: #1333838 + * memory: mvebu-devbus: fix the conversion of the bus width + - LP: #1333838 + * ARM: orion5x: fix target ID for crypto SRAM window + - LP: #1333838 + * workqueue: make rescuer_thread() empty wq->maydays list before exiting + - LP: #1333838 + * workqueue: fix a possible race condition between rescuer and + pwq-release + - LP: #1333838 + * spi: core: Ignore unsupported Dual/Quad Transfer Mode bits + - LP: #1333838 + * device_cgroup: rework device access check and exception checking + - LP: #1333838 + * PCI: mvebu: fix off-by-one in the computed size of the mbus windows + - LP: #1333838 + * bus: mvebu-mbus: allow several windows with the same target/attribute + - LP: #1333838 + * PCI: mvebu: split PCIe BARs into multiple MBus windows when needed + - LP: #1333838 + * ARM: mvebu: fix NOR bus-width in Armada XP GP Device Tree + - LP: #1333838 + * ARM: mvebu: fix NOR bus-width in Armada XP DB Device Tree + - LP: #1333838 + * ARM: mvebu: fix NOR bus-width in Armada XP OpenBlocks AX3 Device Tree + - LP: #1333838 + * crypto: caam - add allocation failure handling in SPRINTFCAT macro + - LP: #1333838 + * ARM: common: edma: Fix xbar mapping + - LP: #1333838 + * clk: Fix double free due to devm_clk_register() + - LP: #1333838 + * [media] media-device: fix infoleak in ioctl media_enum_entities() + - LP: #1333838 + * ARM: dts: kirkwood: fix mislocated pcie-controller nodes + - LP: #1333838 + * device_cgroup: check if exception removal is allowed + - LP: #1333838 + * md: avoid possible spinning md thread at shutdown. + - LP: #1333838 + * ACPI: Remove Kconfig symbol ACPI_PROCFS + - LP: #1333838 + * ACPI: Revert "ACPI: Remove CONFIG_ACPI_PROCFS_POWER and cm_sbsc.c" + - LP: #1333838 + * ACPI: Revert "ACPI / Battery: Remove battery's proc directory" + - LP: #1333838 + * NFSd: Move default initialisers from create_client() to alloc_client() + - LP: #1333838 + * NFSd: call rpc_destroy_wait_queue() from free_client() + - LP: #1333838 + * genirq: Provide irq_force_affinity fallback for non-SMP + - LP: #1333838 + * libata: clean up ZPODD when a port is detached + - LP: #1333838 + * ACPI / blacklist: Add dmi_enable_osi_linux quirk for Asus EEE PC 1015PX + - LP: #1333838 + * ACPI: Revert "ACPI / AC: convert ACPI ac driver to platform bus" + - LP: #1333838 + * ACPI / processor: do not mark present at boot but not onlined CPU as + onlined + - LP: #1333838 + * NFSD: Call ->set_acl with a NULL ACL structure if no entries + - LP: #1333838 + * ALSA: hda - add headset mic detect quirks for three Dell laptops + - LP: #1297581, #1333838 + * gpio: mcp23s08: Bug fix of SPI device tree registration. + - LP: #1333838 + * drm/i915/vlv: reset VLV media force wake request register + - LP: #1333838 + * ARM: dts: i.MX53: Fix ipu register space size + - LP: #1333838 + * mm, thp: close race between mremap() and split_huge_page() + - LP: #1333838 + * intel_pstate: Set turbo VID for BayTrail + - LP: #1333838 + * powerpc/powernv: Reset root port in firmware + - LP: #1333838 + * hrtimer: Set expiry time before switch_hrtimer_base() + - LP: #1333838 + * hwmon: (emc1403) fix inverted store_hyst() + - LP: #1333838 + * hwmon: (emc1403) Fix resource leak on module unload + - LP: #1333838 + * hwmon: (emc1403) Support full range of known chip revision numbers + - LP: #1333838 + * iommu/amd: Fix interrupt remapping for aliased devices + - LP: #1333838 + * ASoC: wm8962: Update register CLASS_D_CONTROL_1 to be non-volatile + - LP: #1333838 + * [media] V4L2: ov7670: fix a wrong index, potentially Oopsing the kernel + from user-space + - LP: #1333838 + * [media] V4L2: fix VIDIOC_CREATE_BUFS in 64- / 32-bit compatibility mode + - LP: #1333838 + * x86, mm, hugetlb: Add missing TLB page invalidation for hugetlb_cow() + - LP: #1333838 + * i2c: designware: Mask all interrupts during i2c controller enable + - LP: #1333838 + * i2c: s3c2410: resume race fix + - LP: #1333838 + * i2c: rcar: bail out on zero length transfers + - LP: #1333838 + * dm crypt: fix cpu hotplug crash by removing per-cpu structure + - LP: #1333838 + * metag: fix memory barriers + - LP: #1333838 + * metag: Reduce maximum stack size to 256MB + - LP: #1333838 + * drm/i915: restore backlight precision when converting from ACPI + - LP: #1333838 + * drm/i915: Increase WM memory latency values on SNB + - LP: #1333838 + * PCI: shpchp: Check bridge's secondary (not primary) bus speed + - LP: #1333838 + * parisc: ratelimit userspace segfault printing + - LP: #1333838 + * parisc: Improve LWS-CAS performance + - LP: #1333838 + * Target/iser: Fix wrong connection requests list addition + - LP: #1333838 + * Target/iser: Fix iscsit_accept_np and rdma_cm racy flow + - LP: #1333838 + * iscsi-target: Change BUG_ON to REJECT in iscsit_process_nop_out + - LP: #1333838 + * tcm_fc: Fix free-after-use regression in ft_free_cmd + - LP: #1333838 + * target: Don't allow setting WC emulation if device doesn't support + - LP: #1333838 + * arm: dts: Fix missing device_type="memory" for ste-ccu8540 + - LP: #1333838 + * mips: dts: Fix missing device_type="memory" property in memory nodes + - LP: #1333838 + * arm64: fix pud_huge() for 2-level pagetables + - LP: #1333838 + * libceph: fix corruption when using page_count 0 page in rbd + - LP: #1333838 + * clk: tegra: use pll_ref as the pll_e parent + - LP: #1333838 + * clk: tegra: Fix wrong value written to PLLE_AUX + - LP: #1333838 + * target: fix memory leak on XCOPY + - LP: #1333838 + * sysfs: make sure read buffer is zeroed + - LP: #1333838 + * cfg80211: free sme on connection failures + - LP: #1333838 + * sched: Sanitize irq accounting madness + - LP: #1333838 + * sched: Use CPUPRI_NR_PRIORITIES instead of MAX_RT_PRIO in cpupri check + - LP: #1333838 + * mac80211: fix suspend vs. association race + - LP: #1333838 + * mac80211: fix on-channel remain-on-channel + - LP: #1333838 + * af_iucv: wrong mapping of sent and confirmed skbs + - LP: #1333838 + * perf: Limit perf_event_attr::sample_period to 63 bits + - LP: #1333838 + * perf: Prevent false warning in perf_swevent_add + - LP: #1333838 + * drm/gf119-/disp: fix nasty bug which can clobber SOR0's clock setup + - LP: #1333838 + * drm/radeon: also try GART for CPU accessed buffers + - LP: #1333838 + * drm/radeon: handle non-VGA class pci devices with ATRM + - LP: #1333838 + * drm/radeon: fix register typo on si + - LP: #1333838 + * drm/radeon: avoid segfault on device open when accel is not working. + - LP: #1333838 + * drm/radeon/pm: don't allow debugfs/sysfs access when PX card is off + (v2) + - LP: #1333838 + * can: peak_pci: prevent use after free at netdev removal + - LP: #1333838 + * nfsd4: remove lockowner when removing lock stateid + - LP: #1333838 + * nfsd4: warn on finding lockowner without stateid's + - LP: #1333838 + * dma: mv_xor: Flush descriptors before activating a channel + - LP: #1333838 + * dmaengine: fix dmaengine_unmap failure + - LP: #1333838 + * hwpoison, hugetlb: lock_page/unlock_page does not match for handling a + free hugepage + - LP: #1333838 + * mm/memory-failure.c: fix memory leak by race between poison and + unpoison + - LP: #1333838 + * ARM: OMAP3: clock: Back-propagate rate change from cam_mclk to dpll4_m5 + on all OMAP3 platforms + - LP: #1333838 + * dmaengine: dw: went back to plain {request,free}_irq() calls + - LP: #1333838 + * ARM: omap5: hwmod_data: Correct IDLEMODE for McPDM + - LP: #1333838 + * Input: synaptics - add min/max quirk for the ThinkPad W540 + - LP: #1333838 + * ARM: OMAP2+: nand: Fix NAND on OMAP2 and OMAP3 boards + - LP: #1333838 + * futex: Add another early deadlock detection check + - LP: #1333838 + * futex: Prevent attaching to kernel threads + - LP: #1333838 + * ARM: OMAP4: Fix the boot regression with CPU_IDLE enabled + - LP: #1333838 + * cpufreq: remove race while accessing cur_policy + - LP: #1333838 + * cpufreq: cpu0: drop wrong devm usage + - LP: #1333838 + * ARM: imx: fix error handling in ipu device registration + - LP: #1333838 + * ALSA: hda - Fix onboard audio on Intel H97/Z97 chipsets + - LP: #1333838 + * ARM: 8051/1: put_user: fix possible data corruption in put_user + - LP: #1333838 + * ARM: 8064/1: fix v7-M signal return + - LP: #1333838 + * Input: synaptics - T540p - unify with other LEN0034 models + - LP: #1333838 + * drm/i915: Only copy back the modified fields to userspace from + execbuffer + - LP: #1333838 + * dm cache: always split discards on cache block boundaries + - LP: #1333838 + * virtio_blk: don't crash, report error if virtqueue is broken. + - LP: #1333838 + * virtio_blk: fix race between start and stop queue + - LP: #1333838 + * powerpc: Fix 64 bit builds with binutils 2.24 + - LP: #1333838 + * powerpc, kexec: Fix "Processor X is stuck" issue during kexec from ST + mode + - LP: #1333838 + * rtmutex: Fix deadlock detector for real + - LP: #1333838 + * drm/radeon: avoid crash if VM command submission isn't available + - LP: #1333838 + * drm/radeon: don't allow RADEON_GEM_DOMAIN_CPU for command submission + - LP: #1333838 + * iwlwifi: mvm: fix setting channel in monitor mode + - LP: #1333838 + * Staging: speakup: Move pasting into a work item + - LP: #1333838 + * USB: Avoid runtime suspend loops for HCDs that can't handle + suspend/resume + - LP: #1333838 + * can: only rename enabled led triggers when changing the netdev name + - LP: #1333838 + * USB: io_ti: fix firmware download on big-endian machines (part 2) + - LP: #1333838 + * USB: ftdi_sio: add NovaTech OrionLXm product ID + - LP: #1333838 + * USB: serial: option: add support for Novatel E371 PCIe card + - LP: #1333838 + * USB: cdc-wdm: properly include types.h + - LP: #1333838 + * md: always set MD_RECOVERY_INTR when aborting a reshape or other + "resync". + - LP: #1333838 + * xhci: delete endpoints from bandwidth list before freeing whole device + - LP: #1333838 + * md: always set MD_RECOVERY_INTR when interrupting a reshape thread. + - LP: #1333838 + * ALSA: hda/analog - Fix silent output on ASUS A8JN + - LP: #1333838 + * drm/radeon/dpm: resume fixes for some systems + - LP: #1333838 + * drm/radeon: use the CP DMA on CIK + - LP: #1333838 + * ALSA: hda/realtek - Correction of fixup codes for PB V7900 laptop + - LP: #1333838 + * ALSA: hda/realtek - Fix COEF widget NID for ALC260 replacer fixup + - LP: #1333838 + * iser-target: Add missing target_put_sess_cmd for ImmedateData failure + - LP: #1333838 + * iscsi-target: Fix wrong buffer / buffer overrun in + iscsi_change_param_value() + - LP: #1333838 + * percpu-refcount: fix usage of this_cpu_ops + - LP: #1333838 + * target: Fix alua_access_state attribute OOPs for un-configured devices + - LP: #1333838 + * mm: rmap: fix use-after-free in __put_anon_vma + - LP: #1333838 + * mm: add !pte_present() check on existing hugetlb_entry callbacks + - LP: #1333838 + * target: Fix NULL pointer dereference for XCOPY in target_put_sess_cmd + - LP: #1333838 + * Linux 3.13.11.4 + - LP: #1333838 + * powerpc/powernv: Infrastructure to read opal messages in generic + format. + - LP: #1334268 + * powerpc/powernv: Infrastructure to support OPAL async completion + - LP: #1334268 + * powerpc/powernv: Enable fetching of platform sensor data + - LP: #1334268 + * powerpc/powernv: Fix endian issues with sensor code + - LP: #1334268 + * powerpc/powernv: Add OPAL message log interface + - LP: #1334268 + * powerpc/powernv: Fix kexec races going back to OPAL + - LP: #1334268 + * powerpc/powernv: Fix little endian issues in OPAL flash code + - LP: #1334268 + * powerpc/powernv: Fix little endian issues with opal_do_notifier calls + - LP: #1334268 + * powerpc/powernv: Fix little endian issues in OPAL error log code + - LP: #1334268 + * powerpc/powernv: Create OPAL sglist helper functions and fix endian + issues + - LP: #1334268 + * powerpc/powernv: Fix little endian issues in OPAL dump code + - LP: #1334268 + * powerpc: Fix error return in rtas_flash module init + - LP: #1334268 + * powerpc/powernv: Increase candidate fw image size + - LP: #1334268 + * powerpc/powernv: Return secondary CPUs to firmware before FW update + - LP: #1334268 + * powerpc/powernv: Pass buffer size to OPAL validate flash call + - LP: #1334268 + * gpio: add a driver for the Synopsys DesignWare APB GPIO block + - LP: #1334823 + * gpio: dwapb: drop irq_setup_generic_chip() + - LP: #1334823 + * gpio: dwapb: use a second irq chip + - LP: #1334823 + * lzo: properly check for overruns + - LP: #1335313 + - CVE-2014-4608 + * lz4: ensure length does not wrap + - LP: #1335314 + - CVE-2014-4611 + * netfilter: nf_nat: fix oops on netns removal + - LP: #1314274 + * ALSA: hda - add device ID for Broadwell display audio controller + - LP: #1188091 + * ALSA: hda - add codec ID for Broadwell display audio codec + - LP: #1188091 + * ALSA: hda/hdmi - apply all Haswell fix-ups to Broadwell display codec + - LP: #1188091 + * ALSA: hda - using POS_FIX_LPIB on Broadwell HDMI Audio + - LP: #1188091 + + -- Luis Henriques Tue, 01 Jul 2014 15:10:43 +0100 + +linux (3.13.0-30.55) trusty; urgency=low + + [ Upstream Kernel Changes ] + + * x86_64,ptrace: Enforce RIP <= TASK_SIZE_MAX (CVE-2014-4699) + - LP: #1337339 + - CVE-2014-4699 + + -- Luis Henriques Thu, 03 Jul 2014 16:15:57 +0100 + +linux (3.13.0-30.54) trusty; urgency=low + + [ Adam Conrad ] + + * [Config] Enable building the sata-modules udeb on ppc64el. + - LP: #1323980 + + [ Anton Blanchard ] + + * SAUCE: (no-up) powerpc: 64bit sendfile is capped at 2GB + - LP: #1328230 + + [ Ben Widawsky ] + + * SAUCE: i915_bdw: drm/i915: Fix PSR programming + - LP: #1321729 + * SAUCE: i915_bdw: drm/i915: Correct PPGTT total size + - LP: #1321729 + + [ Chris Wilson ] + + * SAUCE: i915_bdw: drm/i915: Broadwell expands ACTHD to 64bit + - LP: #1321729 + + [ Damien Lespiau ] + + * SAUCE: i915_bdw: drm/i915/bdw: Implement + Wa4x4STCOptimizationDisable:bdw + - LP: #1321729 + + [ Dave Chiluk ] + + * [Config] Enable CONFIG_IP_VS_IPV6=y + - LP: #1300739 + + [ Kamal Mostafa ] + + * [Config] add debian/gbp.conf + * Release Tracking Bug + - LP: #1328286 + + [ Mika Kuoppala ] + + * SAUCE: i915_bdw: drm/i915: add render state initialization + - LP: #1321729 + + [ Paulo Zanoni ] + + * SAUCE: i915_bdw: drm/i915: fix assert_cursor on BDW + - LP: #1321729 + + [ Steven Rostedt ] + + * SAUCE: i915_bdw: drm/i915: Do not dereference pointers from ring buffer + in evict event + - LP: #1321729 + + [ Tim Gardner ] + + * [Config] CONFIG_POWERNV_CPUFREQ=y for ppc64el + - LP: #1324571 + * [Debian] Treat vdso install as an environment variable + * [Config] Treat vdso install as an environment variable + * [Config] CONFIG_MLX4_DEBUG=y + - LP: #1328256 + * [Config] CONFIG_I40EVF=m, CONFIG_I40E_DCB=y, CONFIG_I40E_VXLAN=y + - LP: #1328037 + + [ Timo Aaltonen ] + + * SAUCE: i915_bdw: Rebase to drm-intel-next-2014-03-07 + fixes + - LP: #1321729 + * SAUCE: i915_bdw: Add BDW specific power well calls + - LP: #1317865 + + [ Upstream Kernel Changes ] + + * drm: expose subpixel order name routine v3 + * drm: dp helper: Add DP test sink CRC definition. + * drm: export cmdline and preferred mode functions from fb helper + * hugetlb: ensure hugepage access is denied if hugepages are not + supported + - LP: #1328251 + * powerpc/powernv: Move SG list structure to header file + - LP: #1326015 + * powerpc/powernv: Read OPAL error log and export it through sysfs + - LP: #1326015 + * powerpc/powernv Platform dump interface + - LP: #1326015 + * pci_regs.h: Add PCI bus link speed and width defines + - LP: #1328037 + * net_tstamp: Add SIOCGHWTSTAMP ioctl to match SIOCSHWTSTAMP + - LP: #1328037 + * PCI/MSI: Add pci_enable_msi_range() and pci_enable_msix_range() + - LP: #1328037 + * net: Change skb_get_rxhash to skb_get_hash + - LP: #1328037 + * net: Add utility functions to clear rxhash + - LP: #1328037 + * net: Add function to set the rxhash + - LP: #1328037 + * i40e: set pf_id based on device and function numbers + - LP: #1328037 + * i40e: register file updates + - LP: #1328037 + * i40e: clear AQ head and tail registers + - LP: #1328037 + * i40e: simplify aq head-tail-len setups + - LP: #1328037 + * i40e: firmware version fields offsets update + - LP: #1328037 + * i40e: allow one more vector for VFs + - LP: #1328037 + * i40e: select reset counters correctly + - LP: #1328037 + * i40e: retry call on timeout + - LP: #1328037 + * i40e: properly add VF MAC addresses + - LP: #1328037 + * i40e: fix debugging messages + - LP: #1328037 + * i40e: default debug mask setting + - LP: #1328037 + * i40e: add interrupt test + - LP: #1328037 + * i40e: add support for triggering EMPR + - LP: #1328037 + * i40e: restrict diag test length + - LP: #1328037 + * i40e: sync header files with hardware + - LP: #1328037 + * i40e: separate TSYNVALID and TSYNINDX fields in Rx descriptor + - LP: #1328037 + * i40e: check multi-bit state correctly + - LP: #1328037 + * i40e: get media type during link info + - LP: #1328037 + * i40e: Add flag for L2 VEB filtering + - LP: #1328037 + * i40e: enable early hardware support + - LP: #1328037 + * i40e: whitespace + - LP: #1328037 + * i40e: Bump version + - LP: #1328037 + * i40e: refactor reset code + - LP: #1328037 + * i40e: Enable all PCTYPEs except FCOE for RSS. + - LP: #1328037 + * i40e: only set up the rings to be used + - LP: #1328037 + * i40e: clear test state bit after all ethtool tests + - LP: #1328037 + * i40e: refactor ethtool tests + - LP: #1328037 + * i40e: add num_VFs message + - LP: #1328037 + * i40e: Add a new variable to track number of pf instances + - LP: #1328037 + * i40e: restrict diag test messages + - LP: #1328037 + * i40e: loopback info and set loopback fix + - LP: #1328037 + * i40e: complain about out-of-range descriptor request + - LP: #1328037 + * i40e: remove and fix confusing define name + - LP: #1328037 + * i40e: Bump version number + - LP: #1328037 + * i40e: fix up some of the ethtool connection reporting + - LP: #1328037 + * i40e: fix pf reset after offline test + - LP: #1328037 + * i40e: Tell the stack about our actual number of queues + - LP: #1328037 + * i40e: init flow control settings to disabled + - LP: #1328037 + * i40e: trivial fixes + - LP: #1328037 + * i40e: use same number of queues as CPUs + - LP: #1328037 + * i40e: reinit flow for the main VSI + - LP: #1328037 + * i40e: function to reconfigure RSS queues and rebuild + - LP: #1328037 + * i40e: Add basic support for get/set channels for RSS + - LP: #1328037 + * i40e: rtnl_lock in reset path fixes + - LP: #1328037 + * i40e: support for suspend and resume + - LP: #1328037 + * i40e: Remove FCoE in i40e_virtchnl_pf.c code + - LP: #1328037 + * i40e: Fix dump output from debugfs calls + - LP: #1328037 + * i40e: prevent null pointer exception in dump descriptor + - LP: #1328037 + * i40e: simplify error messages for dump descriptor + - LP: #1328037 + * i40e: fix up scanf decoders + - LP: #1328037 + * i40e: more print_hex_dump use + - LP: #1328037 + * i40e: Fix wrong mask bits being used in misc interrupt + - LP: #1328037 + * i40e: Bump version number + - LP: #1328037 + * i40e: Fix off by one in i40e_dbg_command_write + - LP: #1328037 + * i40e: make functions static and remove dead code + - LP: #1328037 + * i40evf: main driver core + - LP: #1328037 + * i40evf: transmit and receive functionality + - LP: #1328037 + * i40evf: core ethtool functionality + - LP: #1328037 + * i40evf: virtual channel interface + - LP: #1328037 + * i40evf: driver core headers + - LP: #1328037 + * i40evf: init code and hardware support + - LP: #1328037 + * i40evf: add driver to kernel build system + - LP: #1328037 + * i40evf: A0 silicon specific + - LP: #1328037 + * i40e: using for_each_set_bit to simplify the code + - LP: #1328037 + * i40e: Suppress HMC error to Interrupt message level + - LP: #1328037 + * i40e: Populate and check pci bus speed and width + - LP: #1328037 + * i40e: add wake-on-lan support + - LP: #1328037 + * i40e: fix curly brace use and return type + - LP: #1328037 + * i40e: Implementation of VXLAN ndo's + - LP: #1328037 + * i40e: Rx checksum offload for VXLAN + - LP: #1328037 + * i40e: move i40e_reset_vf + - LP: #1328037 + * i40e: refactor VF reset flow + - LP: #1328037 + * i40e: remove redundant code + - LP: #1328037 + * i40e: remove chatty log messages + - LP: #1328037 + * i40e: fix error return + - LP: #1328037 + * i40e: be more informative + - LP: #1328037 + * i40e: make a define from a large constant + - LP: #1328037 + * i40e: update led set args + - LP: #1328037 + * i40e: report VF MAC addresses correctly + - LP: #1328037 + * i40e: Dump the whole NVM, not half + - LP: #1328037 + * i40e: fix mac address checking + - LP: #1328037 + * i40e: Change the ethtool NVM read method to use AQ + - LP: #1328037 + * i40e: fix constant cast issues + - LP: #1328037 + * i40e: guard against vf message races + - LP: #1328037 + * i40e: add header file flag _I40E_TXRX_H_ + - LP: #1328037 + * i40e: use functions to enable and disable icr 0 + - LP: #1328037 + * i40e: reinit buffer size each time + - LP: #1328037 + * i40e: fix error handling when alloc of vsi array fails + - LP: #1328037 + * i40e: keep allocated memory in structs + - LP: #1328037 + * i40e: catch unset q_vector + - LP: #1328037 + * i40e: Fix ring allocation + - LP: #1328037 + * i40e: I40E_FLAG_MQ_ENABLED is not used + - LP: #1328037 + * i40e: Remove unnecessary prototypes + - LP: #1328037 + * i40e: remove un-necessary io-write + - LP: #1328037 + * i40e: Record dma buffer info for dummy packets + - LP: #1328037 + * i40e: Fix SR-IOV VF port VLAN + - LP: #1328037 + * i40e: fix whitespace + - LP: #1328037 + * i40e: avoid unnecessary register read + - LP: #1328037 + * i40e: Do not enable default port on the VEB + - LP: #1328037 + * i40e: use struct assign instead of memcpy + - LP: #1328037 + * i40e: don't allocate zero size + - LP: #1328037 + * i40e: acknowledge VFLR when disabling SR-IOV + - LP: #1328037 + * i40e: support VFs on PFs other than 0 + - LP: #1328037 + * i40e: Fix VF driver MAC address configuration + - LP: #1328037 + * i40e: use correct struct for get and update vsi params + - LP: #1328037 + * i40e: Hide the Port VLAN VLAN ID + - LP: #1328037 + * i40e: Admin queue shutdown fixes + - LP: #1328037 + * i40e: check asq alive before notify + - LP: #1328037 + * i40e: Do not allow AQ calls from ndo-ops + - LP: #1328037 + * i40e: Expose AQ debugfs hooks + - LP: #1328037 + * i40e: Do not enable broadcast promiscuous by default + - LP: #1328037 + * i40e: Stop accepting any VLAN tag on VLAN 0 filter set + - LP: #1328037 + * i40e: Allow VF to set already assigned MAC address + - LP: #1328037 + * i40e: Bump version + - LP: #1328037 + * i40e: Add code to wait for FW to complete in reset path + - LP: #1328037 + * i40e: update firmware api to 1.1 + - LP: #1328037 + * i40e: Reduce range of interrupt reg in reg test + - LP: #1328037 + * i40e: move PF ID init from PF reset to SC init + - LP: #1328037 + * i40e: check MAC type before any REG access + - LP: #1328037 + * i40e: rework shadow ram read functions + - LP: #1328037 + * i40e: whitespace paren and comment tweaks + - LP: #1328037 + * i40e: Enable/Disable PF switch LB on SR-IOV configure changes + - LP: #1328037 + * i40e: remove redundant AQ enable + - LP: #1328037 + * i40e: correctly setup ARQ descriptors + - LP: #1328037 + * i40e: Re-enable interrupt on ICR0 + - LP: #1328037 + * i40e: use kernel specific defines + - LP: #1328037 + * i40e: Fix GPL header + - LP: #1328037 + * i40e: Fix MAC format in Write MAC address AQ cmd + - LP: #1328037 + * i40e: add a comment on barrier and fix panic on reset + - LP: #1328037 + * i40e: disable packet split + - LP: #1328037 + * i40e: Cleanup reconfig rss path + - LP: #1328037 + * i40e: release NVM resource reservation on startup + - LP: #1328037 + * i40e: remove interrupt on AQ error + - LP: #1328037 + * i40e: accept pf to pf adminq messages + - LP: #1328037 + * i40e: shorten wordy fields + - LP: #1328037 + * i40e: trivial: formatting and checkpatch fixes + - LP: #1328037 + * i40e: fix spelling errors + - LP: #1328037 + * i40e: Add a dummy packet template + - LP: #1328037 + * i40e: Turn flow director off in MFP mode + - LP: #1328037 + * i40e: use assignment instead of memcpy + - LP: #1328037 + * i40e: drop unused macros + - LP: #1328037 + * i40e: Update the Current NVM version Low value + - LP: #1328037 + * i40e: Bump version + - LP: #1328037 + * i40e: fix long lines + - LP: #1328037 + * i40e: Cleanup Doxygen warnings + - LP: #1328037 + * i40e: Setting queue count to 1 using ethtool is valid + - LP: #1328037 + * i40e: do not bail when disabling if Tx queue disable fails + - LP: #1328037 + * i40e: allow VF to remove any MAC filter + - LP: #1328037 + * i40e: check for possible incorrect ipv6 checksum + - LP: #1328037 + * i40e: adjust ITR max and min values + - LP: #1328037 + * i40e: clear qtx_head before enabling Tx queue + - LP: #1328037 + * i40e: call clear_pxe after adminq is initialized + - LP: #1328037 + * i40e: enable PTP + - LP: #1328037 + * i40e: fix log message wording + - LP: #1328037 + * i40e: Bump version + - LP: #1328037 + * i40evf: fix s390 build failure due to implicit prefetch.h + - LP: #1328037 + * i40e: remove extra register write + - LP: #1328037 + * i40e: associate VMDq queue with VM type + - LP: #1328037 + * i40e: make message meaningful + - LP: #1328037 + * i40e: whitespace fixes + - LP: #1328037 + * i40e: trivial cleanup + - LP: #1328037 + * i40e: Bump version number + - LP: #1328037 + * i40e: Warn admin to reload VF driver on port VLAN configuration + - LP: #1328037 + * i40e: Retain MAC filters on port VLAN deletion + - LP: #1328037 + * i40e: Remove autogenerated Module.symvers file. + - LP: #1328037 + * i40e: check desc pointer before printing + - LP: #1328037 + * i40e: updates to AdminQ interface + - LP: #1328037 + * i40e: fix compile warning on checksum_local + - LP: #1328037 + * i40e: Change firmware workaround + - LP: #1328037 + * i40e: whitespace fixes + - LP: #1328037 + * i40e: rename defines + - LP: #1328037 + * i40e: refactor flow director + - LP: #1328037 + * i40e: implement DCB support infastructure + - LP: #1328037 + * i40e: add DCB and DCBNL support + - LP: #1328037 + * i40e: add DCB option to Kconfig + - LP: #1328037 + * i40e: Fix device ID define names to align to standard + - LP: #1328037 + * i40e: Add missing braces to i40e_dcb_need_reconfig() + - LP: #1328037 + * i40e: spelling error + - LP: #1328037 + * i40e: bump driver version + - LP: #1328037 + * i40evf: trivial fixes + - LP: #1328037 + * i40evf: clean up memsets + - LP: #1328037 + * i40e: Setting i40e_down bit for tx_timeout + - LP: #1328037 + * i40e: remove dead code + - LP: #1328037 + * i40e: set VF state to active when reset is complete + - LP: #1328037 + * i40e: reset VFs after PF reset + - LP: #1328037 + * i40e: enable extant VFs + - LP: #1328037 + * i40e: don't handle VF reset on unload + - LP: #1328037 + * i40evf: clean up adapter struct + - LP: #1328037 + * i40evf: fix bogus comment + - LP: #1328037 + * i40evf: don't store unnecessary array of strings + - LP: #1328037 + * i40evf: change type of flags variable + - LP: #1328037 + * i40evf: refactor reset handling + - LP: #1328037 + * net: i40evf: Remove duplicate include + - LP: #1328037 + * i40e: Use pci_enable_msix_range() instead of pci_enable_msix() + - LP: #1328037 + * i40evf: request reset on tx hang + - LP: #1328037 + * i40evf: remove VLAN filters on close + - LP: #1328037 + * i40evf: fix multiple crashes on remove + - LP: #1328037 + * i40evf: get rid of pci_using_dac + - LP: #1328037 + * i40evf: fix up strings in init task + - LP: #1328037 + * i40evf: remove bogus comment + - LP: #1328037 + * i40evf: don't guess device name + - LP: #1328037 + * i40evf: store ring size in ring structs + - LP: #1328037 + * i40evf: update version and copyright date + - LP: #1328037 + * i40evf: remove errant space + - LP: #1328037 + * i40e: remove unnecessary delay + - LP: #1328037 + * i40e: tighten up ring enable/disable flow + - LP: #1328037 + * i40e: Change MSIX to MSI-X + - LP: #1328037 + * i40e and i40evf: Bump driver versions + - LP: #1328037 + * i40evf: Enable the ndo_set_features netdev op + - LP: #1328037 + * i40e: Flow Director sideband accounting + - LP: #1328037 + * i40e: Prevent overflow due to kzalloc + - LP: #1328037 + * i40e/i40evf: i40e implementation for skb_set_hash + - LP: #1328037 + * i40e: clean up comment style + - LP: #1328037 + * i40e: Remove a FW workaround for Number of MSIX vectors + - LP: #1328037 + * i40e: count timeout events + - LP: #1328037 + * i40e: Remove a redundant filter addition + - LP: #1328037 + * i40e: Fix static checker warning + - LP: #1328037 + * i40e: fix nvm version and remove firmware report + - LP: #1328037 + * i40e/i40evf: carefully fill tx ring + - LP: #1328037 + * i40e/i40evf: Bump pf&vf build versions + - LP: #1328037 + * i40e: delete netdev after deleting napi and vectors + - LP: #1328037 + * i40e: Fix a bug in the update logic for FDIR SB filter. + - LP: #1328037 + * i40e/i40evf: Some flow director HW definition fixes + - LP: #1328037 + * i40e: make string references to q be queue + - LP: #1328037 + * i40e: cleanup strings + - LP: #1328037 + * i40e: simplified init string + - LP: #1328037 + * i40e: Fix function comments + - LP: #1328037 + * i40e: Define a new state variable to keep track of feature auto disable + - LP: #1328037 + * i40e: Add code to handle FD table full condition + - LP: #1328037 + * i40e: Bug fix for FDIR replay logic + - LP: #1328037 + * i40e: Let MDD events be handled by MDD handler + - LP: #1328037 + * i40e/i40evf: Use correct number of VF vectors + - LP: #1328037 + * i40e/i40evf: Use dma_set_mask_and_coherent + - LP: #1328037 + * net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq + - LP: #1328037 + * i40e: Don't receive packets when the napi budget == 0 + - LP: #1328037 + * i40evf: Rename i40e_ptype_lookup i40evf_ptype_lookup + - LP: #1328037 + * net/i40e: Avoid double setting of NETIF_F_SG for the HW encapsulation + feature mask + - LP: #1328037 + * i40e: support VF link state ndo + - LP: #1328037 + * i40evf: correctly program RSS HLUT table + - LP: #1328037 + * i40evf: use min_t + - LP: #1328037 + * i40e: Patch to enable Ethtool/netdev feature flag for NTUPLE control + - LP: #1328037 + * i40e: Refactor and cleanup i40e_open(), adding i40e_vsi_open() + - LP: #1328037 + * i40e/i40evf: enable hardware feature head write back + - LP: #1328037 + * i40e/i40evf: reduce context descriptors + - LP: #1328037 + * i40e: potential array underflow in i40e_vc_process_vf_msg() + - LP: #1328037 + * i40e/i40evf: Bump build versions + - LP: #1328037 + * i40e/i40evf: Add EEE LPI stats + - LP: #1328037 + * i40e: Fix a message string + - LP: #1328037 + * i40evf: don't shut down admin queue on error + - LP: #1328037 + * i40evf: clean up init error messages + - LP: #1328037 + * i40e: Delete ATR filter on RST + - LP: #1328037 + * i40evf: fix oops in watchdog handler + - LP: #1328037 + * i40e: Make the alloc and free queue vector calls orthogonal + - LP: #1328037 + * i40e: eeprom integrity check on load and empr + - LP: #1328037 + * i40e: Cleanup in FDIR SB ethtool code + - LP: #1328037 + * i40e: Add functionality for FD SB to drop packets + - LP: #1328037 + * i40evf: remove double space after return + - LP: #1328037 + * i40e: check for netdev before debugfs use + - LP: #1328037 + * i40e/i40evf: Add an FD message level + - LP: #1328037 + * i40e: Use DEBUG_FD message level for an FD message + - LP: #1328037 + * i40e: fix function kernel doc description + - LP: #1328037 + * i40e/i40evf: fix error checking path + - LP: #1328037 + * i40e/i40evf: Remove addressof casts to same type + - LP: #1328037 + * i40e: Remove casts of pointer to same type + - LP: #1328037 + * i40evf: remove open-coded skb_cow_head + - LP: #1328037 + * i40evf: program RSS LUT correctly + - LP: #1328037 + * i40e: remove open-coded skb_cow_head + - LP: #1328037 + * i40e: fix TCP flag replication for hardware offload + - LP: #1328037 + * e1000e/igb/ixgbe/i40e: fix message terminations + - LP: #1328037 + * i40e: fix Timesync Tx interrupt handler code + - LP: #1328037 + * mm: use paravirt friendly ops for NUMA hinting ptes + - LP: #1313450 + + [ Ville Syrjälä ] + + * SAUCE: i915_bdw: drm/i915: Fix scanline counter fixup on BDW + - LP: #1321729 + + -- Kamal Mostafa Mon, 09 Jun 2014 15:09:43 -0700 + +linux (3.13.0-29.53) trusty; urgency=low + + [ Upstream Kernel Changes ] + + * futex-prevent-requeue-pi-on-same-futex.patch futex: Forbid uaddr == + uaddr2 in futex_requeue(..., requeue_pi=1) + - LP: #1326367 + - CVE-2014-3153 + * futex: Validate atomic acquisition in futex_lock_pi_atomic() + - LP: #1326367 + - CVE-2014-3153 + * futex: Always cleanup owner tid in unlock_pi + - LP: #1326367 + - CVE-2014-3153 + * futex: Make lookup_pi_state more robust + - LP: #1326367 + - CVE-2014-3153 + + -- Brad Figg Wed, 04 Jun 2014 08:25:41 -0700 + +linux (3.13.0-29.52) trusty; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - re-used previous tracking bug + + [ Adam Conrad ] + + * [Config] Normalize AHCI configs on powerpc/ppc64el with the rest of the + architectures + - LP: #1323980 + + [ Tanmay Inamdar ] + + * SAUCE: Add MSI/MSI-X driver for APM PCI bus + - LP: #1318977 + + -- Luis Henriques Wed, 28 May 2014 09:38:41 +0100 + +linux (3.13.0-28.51) trusty; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - LP: #1322112 + + [ Adam Lee ] + + * SAUCE: (no-up) rtlwifi: rtl8723be: disable MSI interrupts mode + - LP: #1310512, #1320070 + + [ Andy Whitcroft ] + + * [Packaging] ppc64el is a powerpc kernel arch and needs its quirks + - LP: #1318848 + + [ Ben Collins ] + + * [Config] Switch to grub-ieee1275 as recommended on book3e systems + - LP: #1318629 + + [ Upstream Kernel Changes ] + + * Revert "PCI: Enable INTx in pci_reenable_device() only when MSI/MSI-X + not enabled" + - LP: #1320946 + * Bluetooth: allocate static minor for vhci + - LP: #1317336 + * core, nfqueue, openvswitch: Orphan frags in skb_zerocopy and handle + errors + - LP: #1320946 + * __dentry_path() fixes + - LP: #1320946 + * drm/i915: quirk invert brightness for Acer Aspire 5336 + - LP: #1320946 + * w1: fix w1_send_slave dropping a slave id + - LP: #1320946 + * ARM: 7954/1: mm: remove remaining domain support from ARMv6 + - LP: #1320946 + * matroxfb: restore the registers M_ACCESS and M_PITCH + - LP: #1320946 + * framebuffer: fix cfb_copyarea + - LP: #1320946 + * mach64: use unaligned access + - LP: #1320946 + * mach64: fix cursor when character width is not a multiple of 8 pixels + - LP: #1320946 + * tgafb: fix mode setting with fbset + - LP: #1320946 + * tgafb: fix data copying + - LP: #1320946 + * hvc: ensure hvc_init is only ever called once in hvc_console.c + - LP: #1320946 + * ARM: dts: Keep G3D regulator always on for exynos5250-arndale + - LP: #1320946 + * PCI: mvebu: Fix potential issue in range parsing + - LP: #1320946 + * usb: dwc3: fix wrong bit mask in dwc3_event_devt + - LP: #1320946 + * x86, AVX-512: AVX-512 Feature Detection + - LP: #1320946 + * x86, AVX-512: Enable AVX-512 States Context Switch + - LP: #1320946 + * s390/cio: fix driver callback initialization for ccw consoles + - LP: #1320946 + * ARM: Fix default CPU selection for ARCH_MULTI_V5 + - LP: #1320946 + * omap3isp: preview: Fix the crop margins + - LP: #1320946 + * ACPICA: Restore code that repairs NULL package elements in return + values. + - LP: #1320946 + * media: gspca: sn9c20x: add ID for Genius Look 1320 V2 + - LP: #1320946 + * m88rs2000: add caps FE_CAN_INVERSION_AUTO + - LP: #1320946 + * m88rs2000: prevent frontend crash on continuous transponder scans + - LP: #1320946 + * mmc: sdhci-bcm-kona: fix build errors when built-in + - LP: #1320946 + * usb: musb: avoid NULL pointer dereference + - LP: #1320946 + * uvcvideo: Do not use usb_set_interface on bulk EP + - LP: #1320946 + * drm/i915: Don't clobber CHICKEN_PIPESL_1 on BDW + - LP: #1320946 + * usb: dwc3: fix randconfig build errors + - LP: #1320946 + * usb: gadget: atmel_usba: fix crashed during stopping when DEBUG is + enabled + - LP: #1320946 + * blktrace: fix accounting of partially completed requests + - LP: #1320946 + * rtlwifi: rtl8192cu: Fix too long disable of IRQs + - LP: #1320946 + * rtlwifi: rtl8192se: Fix too long disable of IRQs + - LP: #1320946 + * rtlwifi: rtl8188ee: Fix too long disable of IRQs + - LP: #1320946 + * rtlwifi: rtl8723ae: Fix too long disable of IRQs + - LP: #1320946 + * xhci: Prevent runtime pm from autosuspending during initialization + - LP: #1320946 + * staging:serqt_usb2: Fix sparse warning restricted __le16 degrades to + integer + - LP: #1320946 + * mtd: atmel_nand: Disable subpage NAND write when using Atmel PMECC + - LP: #1320946 + * iwlwifi: dvm: take mutex when sending SYNC BT config command + - LP: #1320946 + * virtio_balloon: don't softlockup on huge balloon changes. + - LP: #1320946 + * arm64: Make DMA coherent and strongly ordered mappings not executable + - LP: #1320946 + * arm64: Do not synchronise I and D caches for special ptes + - LP: #1320946 + * ARM: OMAP2+: INTC: Acknowledge stuck active interrupts + - LP: #1320946 + * ARM: dts: am33xx: correcting dt node unit address for usb + - LP: #1320946 + * mtip32xx: Set queue bounce limit + - LP: #1320946 + * mtip32xx: Unmap the DMA segments before completing the IO request + - LP: #1320946 + * mtip32xx: mtip_async_complete() bug fixes + - LP: #1320946 + * ath9k: fix ready time of the multicast buffer queue + - LP: #1320946 + * KVM: s390: Optimize ucontrol path + - LP: #1320946 + * mei: fix memory leak of pending write cb objects + - LP: #1320946 + * usb: gadget: tcm_usb_gadget: stop format strings + - LP: #1320946 + * usb: phy: Add ulpi IDs for SMSC USB3320 and TI TUSB1210 + - LP: #1320946 + * USB: unbind all interfaces before rebinding any + - LP: #1320946 + * IB/ipath: Fix potential buffer overrun in sending diag packet routine + - LP: #1320946 + * IB/qib: Fix debugfs ordering issue with multiple HCAs + - LP: #1320946 + * IB/qib: add missing braces in do_qib_user_sdma_queue_create() + - LP: #1320946 + * IB/nes: Return an error on ib_copy_from_udata() failure instead of NULL + - LP: #1320946 + * ALSA: hda/realtek - Restore default value for ALC283 + - LP: #1320946 + * mfd: sec-core: Fix possible NULL pointer dereference when i2c_new_dummy + error + - LP: #1320946 + * regulator: arizona-ldo1: Correct default regulator init_data + - LP: #1320946 + * ASoC: cs42l73: Fix mask bits for SOC_VALUE_ENUM_SINGLE + - LP: #1320946 + * ASoC: cs42l52: Fix mask bits for SOC_VALUE_ENUM_SINGLE + - LP: #1320946 + * drm/i915: Do not dereference pointers from ring buffer in evict event + - LP: #1320946 + * mfd: Include all drivers in subsystem menu + - LP: #1320946 + * mfd: max8997: Fix possible NULL pointer dereference on i2c_new_dummy + error + - LP: #1320946 + * mfd: max77686: Fix possible NULL pointer dereference on i2c_new_dummy + error + - LP: #1320946 + * mfd: max8998: Fix possible NULL pointer dereference on i2c_new_dummy + error + - LP: #1320946 + * mfd: max8925: Fix possible NULL pointer dereference on i2c_new_dummy + error + - LP: #1320946 + * mfd: 88pm860x: Fix I2C device resource leak on regmap init fail + - LP: #1320946 + * mfd: 88pm860x: Fix possible NULL pointer dereference on i2c_new_dummy + error + - LP: #1320946 + * mfd: max77693: Fix possible NULL pointer dereference on i2c_new_dummy + error + - LP: #1320946 + * mfd: 88pm800: Fix I2C device resource leak if probe fails + - LP: #1320946 + * mfd: tps65910: Fix possible invalid pointer dereference on + regmap_add_irq_chip fail + - LP: #1320946 + * MIPS: KVM: Pass reserved instruction exceptions to guest + - LP: #1320946 + * ASoC: cs42l51: Fix SOC_DOUBLE_R_SX_TLV shift values for ADC, PCM, and + Analog kcontrols + - LP: #1320946 + * mac80211: fix potential use-after-free + - LP: #1320946 + * mac80211: fix suspend vs. authentication race + - LP: #1320946 + * mac80211: fix WPA with VLAN on AP side with ps-sta again + - LP: #1320946 + * pid: get pid_t ppid of task in init_pid_ns + - LP: #1320946 + * audit: restore order of tty and ses fields in log output + - LP: #1320946 + * audit: convert PPIDs to the inital PID namespace. + - LP: #1320946 + * mfd: kempld-core: Fix potential hang-up during boot + - LP: #1320946 + * drm/i915: Fix unsafe loop iteration over vma whilst unbinding them + - LP: #1320946 + * powerpc/compat: 32-bit little endian machine name is ppcle, not ppc + - LP: #1320946 + * clk: s2mps11: Fix possible NULL pointer dereference + - LP: #1320946 + * spi: efm32: use $vendor,$device scheme for compatible string + - LP: #1320946 + * ALSA: hda - add headset mic detect quirks for three Dell laptops + - LP: #1297581, #1320946 + * KVM: PPC: Book3S HV: Fix KVM hang with CONFIG_KVM_XICS=n + - LP: #1320946 + * gpio: mxs: Allow for recursive enable_irq_wake() call + - LP: #1320946 + * nfsd4: buffer-length check for SUPPATTR_EXCLCREAT + - LP: #1320946 + * nfsd4: session needs room for following op to error out + - LP: #1320946 + * nfsd4: leave reply buffer space for failed setattr + - LP: #1320946 + * nfsd4: fix test_stateid error reply encoding + - LP: #1320946 + * nfsd: notify_change needs elevated write count + - LP: #1320946 + * dm cache: prevent corruption caused by discard_block_size > + cache_block_size + - LP: #1320946 + * dm transaction manager: fix corruption due to non-atomic transaction + commit + - LP: #1320946 + * dm: take care to copy the space map roots before locking the superblock + - LP: #1320946 + * aio: v4 ensure access to ctx->ring_pages is correctly serialised for + migration + - LP: #1320946 + * NFSD: Traverse unconfirmed client through hash-table + - LP: #1320946 + * lockd: ensure we tear down any live sockets when socket creation fails + during lockd_up + - LP: #1320946 + * drm/i915/tv: fix gen4 composite s-video tv-out + - LP: #1320946 + * dm thin: fix dangling bio in process_deferred_bios error path + - LP: #1320946 + * em28xx: fix PCTV 290e LNA oops + - LP: #1320946 + * NFSv4: Fix a use-after-free problem in open() + - LP: #1320946 + * nfsd4: fix setclientid encode size + - LP: #1320946 + * MIPS: Hibernate: Flush TLB entries in swsusp_arch_resume() + - LP: #1320946 + * ALSA: hda - Enable beep for ASUS 1015E + - LP: #1320946 + * nfsd: check passed socket's net matches NFSd superblock's one + - LP: #1320946 + * s390/bitops,atomic: add missing memory barriers + - LP: #1320946 + * IB/mthca: Return an error on ib_copy_to_udata() failure + - LP: #1320946 + * IB/ehca: Returns an error on ib_copy_to_udata() failure + - LP: #1320946 + * drm/qxl: unset a pointer in sync_obj_unref + - LP: #1320946 + * smarter propagate_mnt() + - LP: #1320946 + * don't bother with {get,put}_write_access() on non-regular files + - LP: #1320946 + * reiserfs: fix race in readdir + - LP: #1320946 + * drm/vmwgfx: correct fb_fix_screeninfo.line_length + - LP: #1320946 + * ALSA: hda - Fix silent speaker output due to mute LED fixup + - LP: #1320946 + * drm/radeon: clear needs_reset flag if IB test fails + - LP: #1320946 + * drm/radeon: call drm_edid_to_eld when we update the edid + - LP: #1320946 + * drm/radeon: fix endian swap on hawaii clear state buffer setup + - LP: #1320946 + * drm/radeon: fix typo in spectre_golden_registers + - LP: #1320946 + * sh: fix format string bug in stack tracer + - LP: #1320946 + * ocfs2: dlm: fix lock migration crash + - LP: #1320946 + * ocfs2: dlm: fix recovery hung + - LP: #1320946 + * ocfs2: do not put bh when buffer_uptodate failed + - LP: #1320946 + * ocfs2: fix panic on kfree(xattr->name) + - LP: #1320946 + * xattr: guard against simultaneous glibc header inclusion + - LP: #1320946 + * drm/i915: move power domain init earlier during system resume + - LP: #1320946 + * Skip intel_crt_init for Dell XPS 8700 + - LP: #1320946 + * dm cache: fix a lock-inversion + - LP: #1320946 + * thinkpad_acpi: Fix inconsistent mute LED after resume + - LP: #1320946 + * iser-target: Add missing se_cmd put for WRITE_PENDING in tx_comp_err + - LP: #1320946 + * iscsi-target: Fix ERL=2 ASYNC_EVENT connection pointer bug + - LP: #1320946 + * Target/sbc: Initialize COMPARE_AND_WRITE write_sg scatterlist + - LP: #1320946 + * mm: page_alloc: spill to remote nodes before waking kswapd + - LP: #1320946 + * mm: try_to_unmap_cluster() should lock_page() before mlocking + - LP: #1320946 + * mm: hugetlb: fix softlockup when a large number of hugepages are freed. + - LP: #1320946 + * hung_task: check the value of "sysctl_hung_task_timeout_sec" + - LP: #1320946 + * DRM: armada: fix corruption while loading cursors + - LP: #1320946 + * ALSA: ice1712: Fix boundary checks in PCM pointer ops + - LP: #1320946 + * lib/percpu_counter.c: fix bad percpu counter state during suspend + - LP: #1320946 + * md/raid1: r1buf_pool_alloc: free allocate pages when subsequent + allocation fails. + - LP: #1320946 + * ALSA: hda - add headset mic detect quirk for a Dell laptop + - LP: #1297581, #1320946 + * b43: Fix machine check error due to improper access of + B43_MMIO_PSM_PHY_HDR + - LP: #1320946 + * x86-64, modify_ldt: Ban 16-bit segments on 64-bit kernels + - LP: #1320946 + * target/tcm_fc: Fix use-after-free of ft_tpg + - LP: #1320946 + * ib_srpt: Use correct ib_sg_dma primitives + - LP: #1320946 + * Linux 3.13.11.1 + - LP: #1320946 + * Linux 3.13.11.2 + - LP: #1320946 + * hp-wireless: new driver for hp wireless button for Windows 8 + - LP: #1303737 + * x86, platform: Make HP_WIRELESS option text more descriptive + - LP: #1303737 + * ACPI: blacklist win8 OSI for Dell Inspiron 7737 + - LP: #1288161 + + -- Luis Henriques Thu, 22 May 2014 12:20:44 +0100 + +linux (3.13.0-27.50) trusty; urgency=low + + [ Brad Figg ] + + * Revert "rtlwifi: Set the link state" + + -- Brad Figg Thu, 15 May 2014 10:21:43 -0700 + +linux (3.13.0-27.49) trusty; urgency=low + + [ Brad Figg ] + + * Revert "SAUCE: (no-up) HID: rmi: do not stop the device at the end of + probe" + * Revert "SAUCE: (no-up) HID: rmi: introduce RMI driver for Synaptics + touchpads" + * Revert "[Config] CONFIG_HID_RMI=m" + + -- Brad Figg Wed, 14 May 2014 10:29:07 -0700 + +linux (3.13.0-26.48) trusty; urgency=low + + [ Benjamin Tissoires ] + + * SAUCE: (no-up) HID: rmi: introduce RMI driver for Synaptics touchpads + - LP: #1305522 + * SAUCE: (no-up) HID: rmi: do not stop the device at the end of probe + - LP: #1305522 + + [ Kamal Mostafa ] + + * Merged back Ubuntu-3.13.0-24.47 security release + * Revert "n_tty: Fix n_tty_write crash when echoing in raw mode" + - LP: #1314762 + * Release Tracking Bug + - LP: #1316835 + + [ Tim Gardner ] + + * [Config] CONFIG_HID_RMI=m + - LP: #1305522 + * [Config] CONFIG_CRYPTO_DEV_NX=n for ppc64el + - LP: #1314625 + * [Config] CONFIG_ZSWAP=y + - LP: #1315203 + * Add rpcsec_gss_krb5 to generic inclusion list + - LP: #769527 + + [ Upstream Kernel Changes ] + + * HID: hidraw: make comment more accurate and nicer + - LP: #1305522 + * HID: remove hid_get_raw_report in struct hid_device + - LP: #1305522 + * HID: i2c-hid: implement ll_driver transport-layer callbacks + - LP: #1305522 + * HID: add inliners for ll_driver transport-layer callbacks + - LP: #1305522 + * HID: Add transport-driver callbacks to the hid_ll_driver struct + - LP: #1305522 + * drm/nouveau: fail runtime pm properly. + - LP: #1313986 + * drm/nouveau: don't suspend/resume display on runtime s/r + - LP: #1313986 + * n_tty: Fix n_tty_write crash when echoing in raw mode + - LP: #1314762 + - CVE-2014-0196 + * floppy: ignore kernel-only members in FDRAWCMD ioctl input + - LP: #1316729 + - CVE-2014-1737 + * floppy: don't write kernel-only members to FDRAWCMD ioctl output + - LP: #1316735 + - CVE-2014-1738 + + -- Kamal Mostafa Tue, 06 May 2014 15:30:29 -0700 + +linux (3.13.0-25.47) trusty; urgency=low + + [ Joseph Salisbury ] + + * Release Tracking Bug + - LP: #1313868 + + [ Adam Lee ] + + * [Config] CONFIG_RTL8723BE=m, CONFIG_RTL8723_COMMON=m + - LP: #1240940 + + [ Alex Hung ] + + * SAUCE: (no-up) dell-led: add mic mute led interface + - LP: #1308297 + + [ Andy Whitcroft ] + + * SAUCE: (no-up) powerpc: Increase COMMAND_LINE_SIZE to 2048 from 512. + - LP: #1306677 + + [ Ben Collins ] + + * [Config] Disable PAMU on Freescale kernels + - LP: #1311738 + + [ Tim Gardner ] + + * Revert "SAUCE: x86, hyperv: bypass the timer_irq_works() check" + - LP: #1311683 + * SAUCE: (no-up) ALSA: usb-audio: Suppress repetitive debug messages from + retire_playback_urb() + - LP: #1305133 + * SAUCE: (no-up) 'BUG:' message unnecessarily triggers kerneloops + - LP: #1305480 + * [Config] CONFIG_POWERNV_CPUFREQ=m + - LP: #1309576 + * [Config] CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y for ppc64el + - LP: #1309576 + * [Config] CONFIG_TRANSPARENT_HUGEPAGE=n for arm64 + - LP: #1309221 + * [Config] CONFIG_MEMCG_KMEM=y + - LP: #1309586 + * [Config] CONFIG_CRASH_DUMP=y for ppc64el + - LP: #1312783 + + [ Upstream Kernel Changes ] + + * Revert "rtlwifi: rtl8188ee: enable MSI interrupts mode" + - LP: #1310512 + * mac80211: add length check in ieee80211_is_robust_mgmt_frame() + - LP: #1240940 + * rtlwifi: rtl8723ae: rtl8723-common: Create new driver for common code + - LP: #1240940 + * rtlwifi: rtl8723ae: rtl8723-common: Copy common firmware code + - LP: #1240940 + * rtlwifi: rtl8723ae: rtl8723-common: Copy common dynamic power + management code + - LP: #1240940 + * rtlwifi: rtl8723be: Add new driver + - LP: #1240940 + * selinux: correctly label /proc inodes in use before the policy is + loaded + - LP: #1309007 + * net: sctp: fix skb leakage in COOKIE ECHO path of chunk->auth_chunk + - LP: #1309007 + * bridge: multicast: add sanity check for query source addresses + - LP: #1309007 + * tipc: allow connection shutdown callback to be invoked in advance + - LP: #1309007 + * tipc: fix connection refcount leak + - LP: #1309007 + * tipc: drop subscriber connection id invalidation + - LP: #1309007 + * tipc: fix memory leak during module removal + - LP: #1309007 + * tipc: don't log disabled tasklet handler errors + - LP: #1309007 + * inet: frag: make sure forced eviction removes all frags + - LP: #1309007 + * net: unix: non blocking recvmsg() should not return -EINTR + - LP: #1309007 + * ipv6: Fix exthdrs offload registration. + - LP: #1309007 + * bnx2: Fix shutdown sequence + - LP: #1309007 + * pkt_sched: fq: do not hold qdisc lock while allocating memory + - LP: #1309007 + * Xen-netback: Fix issue caused by using gso_type wrongly + - LP: #1309007 + * vlan: Set correct source MAC address with TX VLAN offload enabled + - LP: #1309007 + * tcp: tcp_release_cb() should release socket ownership + - LP: #1309007 + * bridge: multicast: add sanity check for general query destination + - LP: #1309007 + * bridge: multicast: enable snooping on general queries only + - LP: #1309007 + * net: socket: error on a negative msg_namelen + - LP: #1309007 + * bonding: set correct vlan id for alb xmit path + - LP: #1309007 + * eth: fec: Fix lost promiscuous mode after reconnecting cable + - LP: #1309007 + * ipv6: Avoid unnecessary temporary addresses being generated + - LP: #1309007 + * ipv6: ip6_append_data_mtu do not handle the mtu of the second fragment + properly + - LP: #1309007 + * net: cdc_ncm: fix control message ordering + - LP: #1309007 + * vxlan: fix potential NULL dereference in arp_reduce() + - LP: #1309007 + * vxlan: fix nonfunctional neigh_reduce() + - LP: #1309007 + * tcp: syncookies: do not use getnstimeofday() + - LP: #1309007 + * rtnetlink: fix fdb notification flags + - LP: #1309007 + * ipmr: fix mfc notification flags + - LP: #1309007 + * ip6mr: fix mfc notification flags + - LP: #1309007 + * net: micrel : ks8851-ml: add vdd-supply support + - LP: #1309007 + * netpoll: fix the skb check in pkt_is_ns + - LP: #1309007 + * tipc: fix spinlock recursion bug for failed subscriptions + - LP: #1309007 + * ip_tunnel: Fix dst ref-count. + - LP: #1309007 + * tg3: Do not include vlan acceleration features in vlan_features + - LP: #1309007 + * virtio-net: correct error handling of virtqueue_kick() + - LP: #1309007 + * usbnet: include wait queue head in device structure + - LP: #1309007 + * vlan: Set hard_header_len according to available acceleration + - LP: #1309007 + * vhost: fix total length when packets are too short + - LP: #1309007 + - CVE-2014-0077 + * tcp: fix get_timewait4_sock() delay computation on 64bit + - LP: #1309007 + * xen-netback: remove pointless clause from if statement + - LP: #1309007 + * ipv6: some ipv6 statistic counters failed to disable bh + - LP: #1309007 + * netlink: don't compare the nul-termination in nla_strcmp + - LP: #1309007 + * xen-netback: disable rogue vif in kthread context + - LP: #1309007 + * Call efx_set_channels() before efx->type->dimension_resources() + - LP: #1309007 + * net: vxlan: fix crash when interface is created with no group + - LP: #1309007 + * isdnloop: Validate NUL-terminated strings from user. + - LP: #1309007 + * isdnloop: several buffer overflows + - LP: #1309007 + * powernow-k6: disable cache when changing frequency + - LP: #1309007 + * powernow-k6: correctly initialize default parameters + - LP: #1309007 + * powernow-k6: reorder frequencies + - LP: #1309007 + * ARC: [nsimosci] Change .dts to use generic 8250 UART + - LP: #1309007 + * ARC: [nsimosci] Unbork console + - LP: #1309007 + * futex: Allow architectures to skip futex_atomic_cmpxchg_inatomic() test + - LP: #1309007 + * m68k: Skip futex_atomic_cmpxchg_inatomic() test + - LP: #1309007 + * crypto: ghash-clmulni-intel - use C implementation for setkey() + - LP: #1309007 + * Linux 3.13.10 + - LP: #1309007 + * cpufreq: powernv: cpufreq driver for powernv platform + - LP: #1309576 + * cpufreq: powernv: Use cpufreq_frequency_table.driver_data to store + pstate ids + - LP: #1309576 + * cpufreq: powernv: Select CPUFreq related Kconfig options for powernv + - LP: #1309576 + * support Thinkpad X1 Carbon 2nd generation's adaptive keyboard + - LP: #1309609 + * save and restore adaptive keyboard mode for suspend and,resume + - LP: #1309609 + * user namespace: fix incorrect memory barriers + - LP: #1311683 + * Char: ipmi_bt_sm, fix infinite loop + - LP: #1311683 + * x86, hyperv: Bypass the timer_irq_works() check + - LP: #1311683 + * x86: Adjust irq remapping quirk for older revisions of 5500/5520 + chipsets + - LP: #1311683 + * PCI: designware: Fix RC BAR to be single 64-bit non-prefetchable memory + BAR + - LP: #1311683 + * PCI: designware: Fix iATU programming for cfg1, io and mem viewport + - LP: #1311683 + * ACPI / button: Add ACPI Button event via netlink routine + - LP: #1311683 + * PCI: Enable INTx in pci_reenable_device() only when MSI/MSI-X not + enabled + - LP: #1311683 + * staging: comedi: 8255_pci: initialize MITE data window + - LP: #1311683 + * tty: Set correct tty name in 'active' sysfs attribute + - LP: #1311683 + * tty: Fix low_latency BUG + - LP: #1311683 + * SCSI: sd: don't fail if the device doesn't recognize SYNCHRONIZE CACHE + - LP: #1311683 + * pid_namespace: pidns_get() should check task_active_pid_ns() != NULL + - LP: #1311683 + * Bluetooth: Fix removing Long Term Key + - LP: #1311683 + * ima: restore the original behavior for sending data with ima template + - LP: #1311683 + * backing_dev: fix hung task on sync + - LP: #1311683 + * bdi: avoid oops on device removal + - LP: #1311683 + * xfs: fix directory hash ordering bug + - LP: #1311683 + * Btrfs: skip submitting barrier for missing device + - LP: #1311683 + * Btrfs: fix deadlock with nested trans handles + - LP: #1311683 + * ext4: fix error return from ext4_ext_handle_uninitialized_extents() + - LP: #1311683 + * ext4: fix partial cluster handling for bigalloc file systems + - LP: #1311683 + * ext4: fix premature freeing of partial clusters split across leaf + blocks + - LP: #1311683 + * jffs2: Fix segmentation fault found in stress test + - LP: #1311683 + * jffs2: Fix crash due to truncation of csize + - LP: #1311683 + * jffs2: avoid soft-lockup in jffs2_reserve_space_gc() + - LP: #1311683 + * jffs2: remove from wait queue after schedule() + - LP: #1311683 + * sparc32: fix build failure for arch_jump_label_transform + - LP: #1311683 + * sparc64: don't treat 64-bit syscall return codes as 32-bit + - LP: #1311683 + * sparc64: Make sure %pil interrupts are enabled during hypervisor yield. + - LP: #1311683 + * wait: fix reparent_leader() vs EXIT_DEAD->EXIT_ZOMBIE race + - LP: #1311683 + * exit: call disassociate_ctty() before exit_task_namespaces() + - LP: #1311683 + * Linux 3.13.11 + - LP: #1311683 + * powerpc/le: Enable RTAS events support + - LP: #1312230 + * net: ipv4: current group_info should be put after using. + - CVE-2014-2851 + * powerpc/relocate fix relocate processing in LE mode + - LP: #1312783 + + -- Joseph Salisbury Mon, 28 Apr 2014 15:02:45 -0400 + +linux (3.13.0-24.47) trusty; urgency=low + + [ Peter Hurley ] + + * n_tty: Fix n_tty_write crash when echoing in raw mode + + -- Brad Figg Wed, 30 Apr 2014 15:08:31 -0700 + +linux (3.13.0-24.46) trusty; urgency=low + + [ Andy Whitcroft ] + + * [Config] d-i -- add nvme devices to block-modules udeb + - LP: #1303710 + + [ Paolo Pisati ] + + * [Config] build vexpress a9 dtb + - LP: #1303657 + * [Config] disable HVC_DCC + - LP: #1303657 + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1305158 + * rebase to v3.13.9 + * CONFIG_RTLBTCOEXIST=m + - LP: #1296591 + + [ Upstream Kernel Changes ] + + * HID: Bluetooth: hidp: make sure input buffers are big enough + - LP: #1252874 + * ACPI / video: Add systems that should favour native backlight interface + - LP: #1303419 + * rds: prevent dereference of a NULL device in rds_iw_laddr_check + - LP: #1302222 + - CVE-2014-2678 + * x86/efi: Fix 32-bit fallout + - LP: #1301590 + * drm/nouveau/devinit: tidy up the subdev class definition + - LP: #1158689 + * drm/nouveau/device: provide a way for devinit to mark engines as + disabled + - LP: #1158689 + * drm/nv50-/devinit: prevent use of engines marked as disabled by + hw/vbios + - LP: #1158689 + * rtlwifi: btcoexist: Add new mini driver + - LP: #1296591 + * rtlwifi: Prepare existing drivers for new driver + - LP: #1296591 + * rtlwifi: add MSI interrupts mode support + - LP: #1296591 + * rtlwifi: rtl8188ee: enable MSI interrupts mode + - LP: #1296591 + + [ Upstream Kernel Changes ] + + * rebase to v3.13.9 + + -- Tim Gardner Fri, 04 Apr 2014 09:26:27 -0400 + +linux (3.13.0-23.45) trusty; urgency=low + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1302083 + + [ Emil Goode ] + + * SAUCE: (no-up) brcmsmac: fix deadlock on missing firmware + - LP: #1300416 + + [ Moni Shoua ] + + * SAUCE: (no-up) IB/core: Don't resolve passive side RoCE L2 address in cma req handler + Merged at the request of Mellanox engineers. It shold be making its way upstream. + http://www.spinics.net/lists/linux-rdma/msg19417.html + + [ Or Gerlitz ] + + * [Config] CONFIG_INFINIBAND_USNIC=m + + [ Tim Gardner ] + + * [Config] CONFIG_MLX4_EN_VXLAN=y + + [ Upstream Kernel Changes ] + + * This set of patches essentially updates the infiniband subsystem to 3.14 plus some + bug fixes from 3.15. The initial set of commits were determined using: + + git log --pretty=oneline --reverse v3.13..cd6362befe4cc7bf589a5236d2a780af2d47bcc9 -- drivers/infiniband drivers/net/ethernet/mellanox include/linux/mlx* include/rdma + + A few tree-wide patches were dropped since they were not essential. + This is the list of commits that were actually applied. As you can see there were + a few back ports, but all were simple context collisions and easily resolved. + + (cherry picked from commit 7c6d74d23a33a946bcf08ba2d3e52d31943b7342) + (cherry picked from commit 7b25d81b7ff03bb1893a9c7f97797b891a772deb) + (cherry picked from commit 73e74ab4e0d030f28d640507998156a22d4211f8) + (cherry picked from commit eb17711bc1d6611e934af5b6dabc225936084128) + (cherry picked from commit 8e1a28e8e6797449dfdfa4739002d1e5939355a8) + (cherry picked from commit 84c864038d6d991be81344fc3168ec2c2f7a8d06) + (cherry picked from commit d03a68f8217ea03492e4f7928db222dc6544792a) + (cherry picked from commit be902ab122fcc59ba6a8588e820c31861d75a5a4) + (cherry picked from commit e4b59a1cb6f8feb03f356b0abfd20451f05d7470) + (cherry picked from commit 0276a330617a0cf380f09e5065299078d3d45886) + (cherry picked from commit 982290a7fe36e528af292d3e3b61939b1900bfc6) + (cherry picked from commit c5266d40b0a26546d0ebedb44dd4145088b85cb8) + (cherry picked from commit 7ffdf726cfe0d188907bdbb0e7729fb35a69c219) + (cherry picked from commit 837052d0ccc5a789a578f8b628ba154b63bd51ea) + (cherry picked from commit c0623e587d869b4b18e077d64a8524ea364b5b77) + (cherry picked from commit ad7d4eaed995d76fb24a18e202fdf5072197ff0a) + (cherry picked from commit 2156d9a8ac0202f0158d407063cb850afffd3f56) + (cherry picked from commit b912b2f8fc71df4c3ffa7a9fe2c2227e8bcdaa07) + (cherry picked from commit 9ba75fb0c4b92416b94640b5a043c323a457f14a) + (cherry picked from commit 74b9c3ea847f060c784e86453f1ad77dd05a7a8f) + (cherry picked from commit e6a767582942d6fd9da0ddea673f5a7017a365c7) + (cherry picked from commit fe5e8a1acc7fd877b6706053cf88c418c33fe7a3) + (cherry picked from commit be8348df6efac6b602f2ad3210139bccf0dbe3d7) + (cherry picked from commit e3cf00d0a87f025db5855a43a67c67a41fa79fef) + (cherry picked from commit 8192d4acb5c5376c0f6756f2106ab243036c8c7d) + (cherry picked from commit 301a0dd68e5ddd22d992a58f466b621987d9df3b) + (cherry picked from commit 2183b990b67b761f81c68a18f60df028e080cf05) + (cherry picked from commit 8af94ac66a4d53a96278ecbb9ef2e8592f0d9ba3) + (cherry picked from commit 256d6a6ac52ee02e897cec88ecc96c3ae7f9cb88) + (cherry picked from commit 60b215e8b267f911751a043de63181dab1b69706) + (cherry picked from commit b85caf479b577f000067002259539ad4341d4530) + (cherry picked from commit 3f92bed3d6c073f41efc0777ecd3442aa1f03d20) + (cherry picked from commit 6214105460842759020bdd7f4dbb50afa1be9d17) + (cherry picked from commit c7845bcafe4d2ecd5c479fa64d1b425c21dde17c) + (cherry picked from commit e45e614e4015a489d2f8013eaed45d498d884e86) + (cherry picked from commit 248567f79304b953ea492fb92ade097b62ed09b2) + (cherry picked from commit 6a54d9f9a04ed35e6615a47974c1ef02ff3a62cb) + (cherry picked from commit c5f855e08a97edc107c4a3b73809ed629c1dcac1) + (cherry picked from commit 9f637f7936025aef57f247b11036bad18bb87c06) + (cherry picked from commit c30392ab5bb536fef268c22804dafded15170d14) + (cherry picked from commit 3108bccb3d9afbd32931d775f5dd5ee157eaa5a9) + (cherry picked from commit d9fe40916387bab884e458c99399c149b033506c) + (cherry picked from commit 24e42754f676d34e5c26d6b7b30f36df8004ec08) + (cherry picked from commit c1be5232d21de68f46637e617225b9b7c586451a) + (cherry picked from commit 90f1d1b41b70474bf73d07d4300196901cd81718) + (cherry picked from commit 240ae00e4d834e387f4f09e236130f520e357a70) + (back ported from commit 4de6580360867d44adecb2d05febed1c8d186c82) + (cherry picked from commit 0a9b7d59d5a8e2b97406a29a8a807bbc5ce7092e) + (cherry picked from commit a37a1a428431d3e7e9f53530b5c56ff7867bd487) + (cherry picked from commit c1c98501121eefa0888a42566ec7233a1626f678) + (back ported from commit dd5f03beb4f76ae65d76d8c22a8815e424fc607c) + (cherry picked from commit c9218a9e677856d6647ea82d821f22ccbffc988c) + (cherry picked from commit f088cbb8d8547a89af258a3223657f9a69b811e4) + (cherry picked from commit 4942c0b4b64478ff45c3bbf4d40aebd66de0bcc5) + (cherry picked from commit 2d97436f5b06217beb6c91a0cd0ae0f0d79b61cc) + (cherry picked from commit 5db5765e255de4072eb0e35facfeafce53af001b) + (cherry picked from commit 61f78268936e781a104b4ac06b7e47d760800c40) + (cherry picked from commit 6dcebe614c667fca73aaf0cfbd1e70bc9179538e) + (cherry picked from commit d1db47c5eed89a1c8b60e780aeadd870bb0d3894) + (cherry picked from commit af2e2e35a23e4aeecfe4332a7140c81e0f09b7e3) + (cherry picked from commit 7b85627b9f02f9b0fb2ef5f021807f4251135857) + (back ported from commit d487ee77740ccf79d7dc1935d4daa77887283028) + (cherry picked from commit 297e0dad720664dad44baa2cdd13f871979fb58c) + (cherry picked from commit eb6ab13267be87dcad3e611500b7cb404ed4479c) + (cherry picked from commit a3a5a82627492c8947d8866ddf421e9248088466) + (cherry picked from commit dc87a90f5d61d7f01cfb63d92d5eaa27718e5b19) + (cherry picked from commit 9bd626e79df67b2ba3b0c91a4640ab7bca1af04d) + (cherry picked from commit 40aca6ffcac57dd9c65877a59a8bbb210c4691ca) + (cherry picked from commit 37721d8501a9a1fbe87527c24d127a914b29fd7f) + (cherry picked from commit ed4c54e5b4baf55a7a67a80fa766334855c94854) + (cherry picked from commit 2f85d24e604c1532723c4b5791816b533baed2c3) + (cherry picked from commit 990acea616e99355703b503c1e50fb9c7ddff6b9) + (cherry picked from commit f282651de676d10e395bc7923f0087fbbba12ed7) + (cherry picked from commit 31ab8acbf6618c89fec77f7706df7daaa319feb5) + (cherry picked from commit 9392fa06411cf93885c4cafc8058085d98f52fec) + (cherry picked from commit 27cdef637c25705b433d5c4deeef4cf8dcb75d6a) + (cherry picked from commit 8ce96afa8239f13bdf5ab35839bac46c103bbedc) + (cherry picked from commit 6cd28f044b47aeeba91807d97d6f3ea5a048e88d) + (cherry picked from commit 5462eddd7a78131ccb514d52473625d99769215e) + (cherry picked from commit 05633102d85b50f35325dfbedafcedd6c5b3264c) + (cherry picked from commit 437708c44395a11e474fb33b4fd7f29483118e51) + (cherry picked from commit d9d5713ca628dc211d8b4a1da5fb9e0cfe592b92) + (cherry picked from commit a384b20e417ae0f5f1f359600b4bdcc34265b256) + (cherry picked from commit 298589b1cb626adf4beba6dd8e3cd4b64e8799be) + (cherry picked from commit e08a8761d89b7625144c3fbf0ff9643159135c96) + (cherry picked from commit 0b6e81b91070bdbe0defb9101384ebb26835e401) + (cherry picked from commit 042b9adae899e1b497282d92205d3fef42d5ca8d) + (cherry picked from commit ada388f7afad1e2e87acbfe30600fdaff9bd6327) + (cherry picked from commit 3bdb31f688276505ede23280885948e934304674) + (cherry picked from commit bde51583f49bd87e452e9504d489926638046b11) + (cherry picked from commit db81a5c374b5bd650c5e6ae85d026709751db103) + (cherry picked from commit 05bdb2ab6b09f2306f0afe0f60f4b9abffa7aba4) + (cherry picked from commit 9e9c47d07d447e09a66ee528c3ebad9ba359af6a) + (cherry picked from commit 1bde6e301cf6217da9238086c958f532b16e504d) + (cherry picked from commit 8c8a49148b95c4d7c5f58a6866a30ea02485d7a3) + (cherry picked from commit 57761d8df8efc7cc1227f9bc22e0dda01b0dd91b) + (cherry picked from commit 676687c69697d2081d25afd14ee90937d1fb0c8e) + (cherry picked from commit 9e65dc371b5c8d7476c81353137efc13cc1bdabd) + (cherry picked from commit 78c0f98cc9dd46824fa66f35f14ea24ba733d145) + (cherry picked from commit 1a4c3a3dc5fdeef2a7bdf4ac7d81df58c3c0a51e) + (cherry picked from commit d07875bd0d1517185534b5f9eef469426ba42cb9) + (cherry picked from commit ab576627c8f97c08297d81537be17df161171923) + (cherry picked from commit a80e21b3b2d151d79bb9be42334ab10d40195324) + (cherry picked from commit 9d8abf45944e4f1c18a04070fc3ed2f3ffcbbcb6) + (cherry picked from commit 4196670be786d529ab7f6c18f5077141ce1b787e) + (cherry picked from commit acc4fccf4eff5b29e545995b75de77e60ea44aae) + (cherry picked from commit 4ce5a5744a2f5479e58c6788cbe3987b8071b62e) + (cherry picked from commit ddf8bd349115c2bc85a62e3d94018c9976ac72f7) + (cherry picked from commit 5071456fe244e409adcda7226e5f0b5d1b879fd3) + (cherry picked from commit ad4885d279b63c65347220236d07669a2f59634b) + (cherry picked from commit b4a26a27287a7f81933ba016aeed6c69dd155323) + (cherry picked from commit 0f0132001fd239bb67c1f68436b95cc79de89736) + (cherry picked from commit 6ecde51dd7894ffe2f959cca1fea3ea2b9ee2394) + (cherry picked from commit 0861565f501ce3fcea9394d4b98c02b1f6de6b9e) + (cherry picked from commit f809309a251a13bd97cc189c3fa428782aab9716) + (cherry picked from commit 7d9eacf9457efc6b614665e1095336c11ad83f0d) + (cherry picked from commit fd8b48b22a2b7cdf21f15b01cae379e6159a7eea) + (cherry picked from commit a61d93d92f5c9533898098abb5f187840900aeb5) + (cherry picked from commit 09de3f1313a30d8a22e488c9a5b96a9560cae96d) + (cherry picked from commit 99932d4fc03a13bb3e94938fe25458fabc8f2fc3) + (cherry picked from commit 169a1d85d084edeb0736ad80fe439639ac938dcd) + (cherry picked from commit 367d56f7b4d5ce61e883c64f81786c7a3ae88eea) + (cherry picked from commit 57352ef4f5f19969a50d42e84b274287993b576f) + (cherry picked from commit 97989356af0ec8b1b1658d804892abb354127330) + (cherry picked from commit 56cb456746a15c1025a178466492ca4c373b1a63) + (cherry picked from commit 2a2083f7f3568c0192daa6ac0e6fa35d953f47bd) + (cherry picked from commit 7855bff42ea9938a0853321256f4c8ce3628aa73) + (cherry picked from commit de123268300fd33b7f7668fda3264059daffa6ef) + (cherry picked from commit 299603e8370a93dd5d8e8d800f0dff1ce2c53d36) + (cherry picked from commit bf5a755f5e9186406bbf50f4087100af5bd68e40) + (cherry picked from commit 600adc18eba823f9fd8ed5fec8b04f11dddf3884) + (back ported from commit b582ef0990d457f7ce8ccf827af51a575ca0b4a6) + (cherry picked from commit e27a2f839598e48bb345f9fc86d4d54c3944db50) + (back ported from commit dc01e7d3447793fd9e4090aa9d50c549848b5a18) + (cherry picked from commit b5aaab12b2b4bc4acab7384c17a87f3406e5047d) + (cherry picked from commit 920a0fde5a32fd40b4d3c94ad72f7fc7039db8e3) + (cherry picked from commit 438e38fadca2f6e57eeecc08326c8a95758594d4) + (cherry picked from commit 97a5221f56bad2e1c7e8ab55da4ac4748ef59c64) + (cherry picked from commit 02512482321c531df4abf73943529f8b44d869e2) + (cherry picked from commit bb2146bc883e86b835e30644757a6d4a649a7ce8) + (back ported from commit ca9f9f703950e5cb300526549b4f1b0a6605a5c5) + (cherry picked from commit fd8daa45f2bd9b876e0dbb9503ccc5a5252844f2) + (cherry picked from commit b97b33a3df0439401f80f041eda507d4fffa0dbf) + (cherry picked from commit 93591aaa62f89820f4ae0558f01eaf9a359738da) + (cherry picked from commit 15bffdffccb3204eb1e993f60eee65c439a03136) + (cherry picked from commit 9813337a4b16ea5b1701b1d00f7e410f5decdfa5) + (cherry picked from commit 313c2d375b1c9b648d9d4b96ec1b8185ac6a78c5) + (cherry picked from commit 28d222bbaa5122fb4bb0e607e39ab149a010e587) + (cherry picked from commit ec5709403e6893acb4f7ca40514ebd29c3116836) + (cherry picked from commit 9717218bb2982f5f214d84473c70542f1e42bfd7) + (cherry picked from commit d0ceebd7508d5bf6e81367640959aef7e0de4947) + (cherry picked from commit c120e9e03090b4f9578ca38ef4250ff3805b6e3f) + (cherry picked from commit 6ee51a4e866bbb0921180b457ed16cd172859346) + (cherry picked from commit 9cd593529c8652785bc9962acc79b6b176741f99) + (cherry picked from commit b6ffaeffaea4d92f05f5ba1ef54df407cb7c8517) + (cherry picked from commit 2f5bb473681b88819a9de28ac3a47e7737815a92) + (cherry picked from commit 5ea8bbfc49291b7e23161fe4de0bf3e4a4e34b18) + (cherry picked from commit ceb5433b3a54979216d794e45147d25c24c94999) + (cherry picked from commit aa9a2d51a3e70b15a898bec7dde3ce5726fec641) + (cherry picked from commit e81f44b66b456a7dcfbdeffeb355458cd6a58973) + (cherry picked from commit 7a2cea2aaae2d5eb5c00c49c52180c7c2c66130a) + (cherry picked from commit 05eb23893c2cf9502a9cec0c32e7f1d1ed2895c8) + (cherry picked from commit 38be0a347c91133843474e12baacd252d0fd1c30) + (cherry picked from commit 82373701be26b893eaf7372db0af84235a51998a) + (cherry picked from commit 1ab95d37bcc3ff2d69e3871e4f056bab7aed0b85) + (cherry picked from commit f74462acf8f390528c8b7937f227c6c90d017f3b) + (cherry picked from commit 449fc48866f7d84b0d9a19201de18a4dd4d3488c) + (cherry picked from commit dd41cc3bb90efd455df514899a5d3cf245182eb1) + (cherry picked from commit e471b40321a94f07d13b8a9e4b064885cf08835d) + (cherry picked from commit bfd2793c9559ae73ae021797f1d4b097c27f24be) + (cherry picked from commit b74757944d69f8cd7de5284fc7e8649d965361ab) + (cherry picked from commit d18f141a1a7cfa5ffad8433e43062b05a8d1b82a) + (cherry picked from commit 1b136de120dda625109f2afe1e3d04e256be9ec1) + (cherry picked from commit a66132f3eb514f42c49a3e8f57aab2ccd0360f06) + + * mlx4_core: Roll back round robin bitmap allocation commit for CQs, SRQs, and MPTs + * net/mlx4_core: Remove zeroed out of explicit QUERY_FUNC_CAP fields + * net/mlx4_core: Rename QUERY_FUNC_CAP fields + * net/mlx4_core: Introduce nic_info new flag in QUERY_FUNC_CAP + * net/mlx4_core: Expose physical port id as PF/VF capability + * net/mlx4_en: Implement ndo_get_phys_port_id + * net/mlx4_en: Configure the XPS queue mapping on driver load + * net/mlx4_core: Set CQE/EQE size to 64B by default + * net/mlx4_en: Ignore irrelevant hypervisor events + * net/mlx4_en: Add NAPI support for transmit side + * net/mlx4_core: Check port number for validity before accessing data + * infiniband: slight optimization of addr compare + * net/mlx4_core: Add basic support for TCP/IP offloads under tunneling + * net/mlx4_en: Add netdev support for TCP/IP offloads of vxlan tunneling + * net: mlx4: slight optimization of addr compare + * mlx4_en: Add PTP hardware clock + * mlx4_en: Only cycle port if HW timestamp config changes + * net/mlx4_core: Warn if device doesn't have enough PCI bandwidth + * net/mlx4_en: fix error return code in mlx4_en_get_qp() + * mlx4_en: Select PTP_1588_CLOCK + * net/mlx4_en: call gro handler for encapsulated frames + * RDMA/ocrdma: Fix AV_VALID bit position + * RDMA/ocrdma: Fix OCRDMA_GEN2_FAMILY macro definition + * IB/usnic: Add Cisco VIC low-level hardware driver + * IB/usnic: Change WARN_ON to lockdep_assert_held + * IB/usnic: Add struct usnic_transport_spec + * IB/usnic: Push all forwarding state to usnic_fwd.[hc] + * IB/usnic: Port over main.c and verbs.c to the usnic_fwd.h + * IB/usnic: Port over usnic_ib_qp_grp.[hc] to new usnic_fwd.h + * IB/usnic: Port over sysfs to new usnic_fwd.h + * IB/usnic: Update ABI and Version file for UDP support + * IB/usnic: Add UDP support to usnic_fwd.[hc] + * IB:usnic: Add UDP support to usnic_transport.[hc] + * IB/usnic: Add UDP support in u*verbs.c, u*main.c and u*util.h + * IB/usnic: Add UDP support in usnic_ib_qp_grp.[hc] + * IB/core: Add RDMA_TRANSPORT_USNIC_UDP + * IB/usnic: Remove superflous parentheses + * IB/usnic: Use for_each_sg instead of a for-loop + * IB/usnic: Expose flows via debugfs + * IB/usnic: Fix typo "Ignorning" -> "Ignoring" + * IB/usnic: Append documentation to usnic_transport.h and cleanup + * IB/mlx5: Remove unused code in mr.c + * mlx5_core: Remove dead code + * IB/mlx5: Fix micro UAR allocator + * IB/core: Add flow steering support for IPoIB UD traffic + * IB/core: Add support for IB L2 device-managed steering + * mlx4_core: Add support for steerable IB UD QPs + * IB/mlx4: Enable device-managed steering support for IB ports too + * IB/mlx4: Add mechanism to support flow steering over IB links + * IB/mlx4: Add support for steerable IB UD QPs + * IB/core: Ethernet L2 attributes in verbs/cm structures + * net/mlx4_core: clean up cq_res_start_move_to() + * net/mlx4_core: clean up srq_res_start_move_to() + * IB/usnic: Fix endianness-related warnings + * IB/usnic: Add dependency on CONFIG_INET + * IB/core: Add support for RDMA_NODE_USNIC_UDP + * IB/usnic: Advertise usNIC devices as RDMA_NODE_USNIC_UDP + * IB/usnic: Set userspace/kernel ABI ver to 4 + * IB/usnic: Remove unused variable in usnic_debugfs_exit() + * IB/mlx4: Fix error return code + * IB/cma: IBoE (RoCE) IP-based GID addressing + * IB/mlx4: Use IBoE (RoCE) IP based GIDs in the port GID table + * IB/mlx4: Handle Ethernet L2 parameters for IP based GID addressing + * IB/isert: seperate connection protection domains and dma MRs + * IB/isert: Avoid frwr notation, user fastreg + * IB/isert: Move fastreg descriptor creation to a function + * IB/isert: pass scatterlist instead of cmd to fast_reg_mr routine + * RDMA/ocrdma: Handle Ethernet L2 parameters for IP based GID addressing + * RDMA/ocrdma: Populate GID table with IP based gids + * IB/core: Resolve Ethernet L2 addresses when modifying QP + * IB/core: Make ib_addr a core IB module + * IB/cm: Fix missing unlock on error in cm_init_qp_rtr_attr() + * IB/mlx4: Add dependency INET + * RDMA/ocrdma: Move ocrdma_inetaddr_event outside of "#if CONFIG_IPV6" + * RDMA/ocrdma: Add dependency on INET + * IB/mlx4: Use IS_ENABLED(CONFIG_IPV6) + * IB/usnic: Use GFP_ATOMIC under spinlock + * net/mlx4_core: Remove unnecessary validation for port number + * RDMA/cma: Handle global/non-linklocal IPv6 addresses in cma_check_linklocal() + * IB/core: Fix unused variable warning + * IPoIB: Report operstate consistently when brought up without a link + * RDMA/amso1100: Add check if cache memory was allocated before freeing it + * IB/usnic: Remove unused includes of + * RDMA/cxgb4: Fix gcc warning on 32-bit arch + * mlx5_core: Fix out arg size in access_register command + * IB/mlx5: Clear out struct before create QP command + * mlx5_core: Use mlx5 core style warning + * IB/mlx5: Make sure doorbell record is visible before doorbell + * IB/mlx5: Implement modify CQ + * IB/mlx5: Add support for resize CQ + * mlx5_core: Improve debugfs readability + * mlx5_core: Fix PowerPC support + * IB/mlx5: Allow creation of QPs with zero-length work queues + * IB/mlx5: Abort driver cleanup if teardown hca fails + * IB/mlx5: Remove old field for create mkey mailbox + * IB/mlx5: Verify reserved fields are cleared + * iscsi-target: Convert gfp_t parameter to task state bitmask + * IB/mlx5: Fix RC transport send queue overhead computation + * IB/mlx5: Fix binary compatibility with libmlx5 + * IB/mlx5: Don't set "block multicast loopback" capability + * RDMA/nes: Fix error return code + * RDMA/amso1100: Fix error return code + * iser-target: Fix leak on failure in isert_conn_create_fastreg_pool + * IB/srpt: replace strict_strtoul() with kstrtoul() + * IB/mlx4: Don't allocate range of steerable UD QPs for Ethernet-only device + * IB/mlx4: Make sure GID index 0 is always occupied + * IB/mlx4: Move rtnl locking to the right place + * IB/mlx4: Do IBoE locking earlier when initializing the GID table + * IB/mlx4: Do IBoE GID table resets per-port + * IB/mlx4: Build the port IBoE GID table properly under bonding + * IB: Report using RoCE IP based gids in port caps + * RDMA/cxgb4: Add missing neigh_release in LE-Workaround path + * mlx5: Add include of because of kzalloc()/kfree() use + * IB/mlx5: Remove dependency on X86 + * IB/usnic: Fix smatch endianness error + * IB/iser: Avoid dereferencing iscsi_iser conn object when not bound to iser connection + * IB/iser: Fix use after free in iser_snd_completion() + * RDMA/ocrdma: Fix traffic class shift + * RDMA/ocrdma: Fix load time panic during GID table init + * netdevice: add queue selection fallback handler for ndo_select_queue + * net,IB/mlx: Bump all Mellanox driver versions + * net/mlx4: Support shutdown() interface + * net/mlx4_core: Fix memory access error in mlx4_QUERY_DEV_CAP_wrapper() + * net/mlx4_core: mlx4_init_slave() shouldn't access comm channel before PF is ready + * net/mlx4_core: Fix wrong dump of the vxlan offloads device capability + * net/mlx4_en: Handle vxlan steering rules for mac address changes + * net/mlx4_core: Load the IB driver when the device supports IBoE + * net/mlx4_en: Deregister multicast vxlan steering rules when going down + * net-gro: Prepare GRO stack for the upcoming tunneling support + * net-gre-gro: Add GRE support to the GRO stack + * net: gro: change GRO overflow strategy + * net: Add GRO support for UDP encapsulating protocols + * net: Export gro_find_by_type helpers + * net: Add GRO support for vxlan traffic + * net/udp_offload: Handle static checker complaints + * net/ipv4: Use non-atomic allocation of udp offloads structure instance + * net/vxlan: Go over all candidate streams for GRO matching + * gre_offload: statically build GRE offloading support + * net/mlx4_core: pass pci_device_id.driver_data to __mlx4_init_one during reset + * net/mlx4: Set number of RX rings in a utility function + * net/mlx4: Fix limiting number of IRQ's instead of RSS queues + * net/mlx4_en: Fix bad use of dev_id + * net/mlx4_en: Fix UP limit in ieee_ets->prio_tc + * net/mlx4_en: Verify mlx4_en module parameters + * net/mlx4_en: Pad ethernet packets smaller than 17 bytes + * net/mlx4_en: Move queue stopped/waked counters to be per ring + * net/mlx4: Replace mlx4_en_mac_to_u64() with mlx4_mac_to_u64() + * net/mlx4_en: Fix selftest failing on non 10G link speed + * net/mlx4_core: Fix sparse warning + * net/mlx4_en: Use union for BlueFlame WQE + * net/mlx4_en: Change Connect-X description in kconfig + * net/mlx4_en: mlx4_en_verify_params() can be static + * IB/mlx5_core: remove unreachable function call in module init + * mlx4: Adjust QP1 multiplexing for RoCE/SRIOV + * mlx4_core: For RoCE, allow slaves to set the GID entry at that slave's index + * mlx4: In RoCE allow guests to have multiple GIDS + * mlx4: Add ref counting to port MAC table for RoCE + * mlx4: Implement IP based gids support for RoCE/SRIOV + * mlx4_ib: Fix SIDR support of for UD QPs under SRIOV/RoCE + * mlx4: Activate RoCE/SRIOV + * mlx4: Call dev_kfree_skby_any instead of dev_kfree_skb. + * cxgb4/iw_cxgb4: Treat CPL_ERR_KEEPALV_NEG_ADVICE as negative advice + * cxgb4/iw_cxgb4: Doorbell Drop Avoidance Bug Fixes + * mlx4: Don't receive packets when the napi budget == 0 + * IB/mlx4_ib: Adapt code to use caps.num_ports instead of a constant + * net/mlx4: Add data structures to support N-Ports per VF + * net/mlx4: Add utils for N-Port VFs + * net/mlx4: Adapt code for N-Port VF + * net/mlx4: Adapt num_vfs/probed_vf params for single port VF + * mlx4: Use actual number of PCI functions (PF + VFs) for alias GUID logic + * RDMA/cxgb4: set error code on kmalloc() failure + * net/mlx4: USe one wrapper that returns -EPERM + * mlx4: Add support for CONFIG_DEV command + * net/mlx4: Implement vxlan ndo calls + * net/mlx4: Set proper build dependancy with vxlan + + [ Wen-chien Jesse Sung ] + + * SAUCE: Bluetooth: Give restart command more time to complete its job + - LP: #1301908 + + -- Tim Gardner Thu, 03 Apr 2014 06:06:15 -0600 + +linux (3.13.0-22.44) trusty; urgency=low + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1301562 + + [ dann frazier ] + + * [Config] enable linux-tools on arm64 + https://lists.ubuntu.com/archives/kernel-team/2014-April/041332.html + + [ Greg Kurz ] + + * SAUCE: powerpc/le: Big endian arguments for ppc_rtas() + - LP: #1289518 + + [ Mahesh Salgaonkar ] + + * SAUCE: powerpc/book3s: Fix CFAR clobbering issue in machine check + handler. + - LP: #1301424 + * SAUCE: powerpc/book3s: Recover from MC in sapphire on SCOM read via + MMIO. + - LP: #1301424 + * SAUCE: powerpc/book3s: Fix mc_recoverable_range buffer overrun issue. + - LP: #1301424 + + [ Paolo Pisati ] + + * [Config] armhf: USB_STORAGE=y + https://lists.ubuntu.com/archives/kernel-team/2014-April/041349.html + + [ Stefan Bader ] + + * SAUCE: kvm: Force preempt folding in kvm on i386 + - LP: #1268906 + + [ Tim Gardner ] + + * SAUCE: Drop lttng in favor of lttng-modules + The kernel version was down rev on an rc release. + + [ Tomas Winkler ] + + * SAUCE: (no-up) mei: me: do not load the driver if the FW doesn't + support MEI interface + - LP: #1301118 + + [ Upstream Kernel Changes ] + + * drm/i915: Deprecated UMS support + - LP: #1284816 + * powerpc/book3s: Split the common exception prolog logic into two + section. + - LP: #1301424 + * powerpc/book3s: Introduce exclusive emergency stack for machine check + exception. + - LP: #1301424 + * powerpc/book3s: handle machine check in Linux host. + - LP: #1301424 + * powerpc/book3s: Return from interrupt if coming from evil context. + - LP: #1301424 + * powerpc/book3s: Introduce a early machine check hook in cpu_spec. + - LP: #1301424 + * powerpc/book3s: Add flush_tlb operation in cpu_spec. + - LP: #1301424 + * powerpc/book3s: Flush SLB/TLBs if we get SLB/TLB machine check errors + on power7. + - LP: #1301424 + * powerpc/book3s: Flush SLB/TLBs if we get SLB/TLB machine check errors + on power8. + - LP: #1301424 + * powerpc/book3s: Decode and save machine check event. + - LP: #1301424 + * powerpc/book3s: Queue up and process delayed MCE events. + - LP: #1301424 + * powerpc/powernv: Remove machine check handling in OPAL. + - LP: #1301424 + * powerpc/powernv: Machine check exception handling. + - LP: #1301424 + * powerpc: Fix "attempt to move .org backwards" error + - LP: #1301424 + * powerpc: Fix endian issues in power7/8 machine check handler + - LP: #1301424 + * Move precessing of MCE queued event out from syscall exit path. + - LP: #1301424 + + -- Andy Whitcroft Wed, 02 Apr 2014 15:58:48 +0100 + +linux (3.13.0-21.43) trusty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: kvm: BIOS disabled kvm support should be a warning + - LP: #1300247 + * SAUCE: nouveau: missing outputs should be warnings + - LP: #1300244 + + [ John Johansen ] + + * Revert "SAUCE: Add config option to disable new apparmor 3 semantics" + * Revert "SAUCE: apparmor: fix uninitialized lsm_audit membe" + * Revert "SAUCE: (no-up) apparmor: Fix tasks not subject to, reloaded + policy" + * Revert "SAUCE: apparmor: allocate path lookup buffers during init" + * Revert "SAUCE: apparmor: fix unix domain sockets to be mediated on + connection" + * Revert "SAUCE: (no-up) apparmor: Sync to apparmor 3 - alpha 4 snapshot" + * SAUCE: (no-up) apparmor: Sync to apparmor3 - alpha6 snapshot + - LP: #1298611 + + [ Tetsuo Handa ] + + * SAUCE: kthread: Do not leave kthread_create() immediately upon SIGKILL. + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1300412 + * [Config] updateconfigs after AA patch set + * [Config] CONFIG_ZSWAP=n, CONFIG_ZBUD=n for all arches + * [Config] CONFIG_XILINX_LL_TEMAC=m for powerpc + * [Config] CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y for ppc64el + * [Config] CONFIG_WLAN=y for arm64 + * [Config] CONFIG_VORTEX=m for ppc64el + * [Config] CONFIG_WIMAX=m for ppc64el + * [Config] CONFIG_WATCHDOG=y for ppc64el + * [Config] CONFIG_VME_BUS=m for ppc64el + * [Config] CONFIG_VIRT_DRIVERS=y for ppc64el + * [Config] CONFIG_VIDEO_OUTPUT_CONTROL=m for ppc64el + * [Config] CONFIG_VERSION_SIGNATURE="" for powerpc64-emb + * [Config] CONFIG_UWB=m for ppc64el + + [ Upstream Kernel Changes ] + + * vhost: validate vhost_get_vq_desc return value + - CVE-2014-0055 + * net: use kfree_skb_list() helper + * skbuff: skb_segment: s/frag/nskb_frag/ + * skbuff: skb_segment: s/skb_frag/frag/ + * skbuff: skb_segment: s/skb/head_skb/ + * skbuff: skb_segment: s/fskb/list_skb/ + * skbuff: skb_segment: orphan frags before copying + - CVE-2014-0131 + + [ Upstream Kernel Changes ] + + * rebase to v3.13.8 + + -- Tim Gardner Mon, 31 Mar 2014 12:38:11 -0600 + +linux (3.13.0-20.42) trusty; urgency=low + + [ Adam Conrad ] + + * [Packaging] Set bootloader and loader on ppc64el to grub + + [ Andy Whitcroft ] + + * rebase to v3.13.7 + * [Config] updateconfigs following rebase to v3.13.7 + * cloud-tools -- pull in init scripts for Hyper-V daemons + * cloud-tools -- detect Hyper-V VM to avoid starting + * cloud-tools -- update IF_NAME to DEVICE in hv_* scripts + - LP: #1295401 + * [Config] cloud-tools -- ensure we force older hv-kvp-daemon-init off + * [Config] fix up Breaks/Replaces on linux-cloud-tools-common to fix upgrades + + [ Emmanuel Grumbach ] + + * SAUCE: (no-up) iwlwifi: mvm: disable uAPSD due to bugs in the firmware + + [ James Bottomley ] + + * SAUCE: (no-up) fix our current target reap infrastructure + - LP: #1283604 + * SAUCE: (no-up) dual scan thread bug fix + - LP: #1283604 + + [ K. Y. Srinivasan ] + + * SAUCE: (no-up) Tools: hv: vssdaemon: Ignore VFAT mounts during the + Freeze operation + - LP: #1298192 + + [ Paolo Pisati ] + + * [Config] disable HW_RANDOM_EXYNOS, USB_DWC3_EXYNOS, + PHY_EXYNOS_MIPI_VIDEO + - LP: #1294353 + * [Config] armhf: generic: AHCI_IMX=y, SERIAL_FSL_LPUART=m + - LP: #1294951 + * [Config] armhf: generic: MFD_TI_AM335X_TSCADC and USB_DWC3_OMAP = m + - LP: #1294962 + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1298585 + * [Config] ignore.modules + * SAUCE: i2c-cpm: Add missing includes for powerpc + * [Config] CONFIG_ABX500_CORE=y for ppc64el + * [Config] CONFIG_ALX=m for powerpc + * [Config] CONFIG_ACENIC_OMIT_TIGON_I=n for ppc64el + * [Config] CONFIG_ACORN_PARTITION_*=n for ppc64el + * [Config] CONFIG_ANDROID=n for powerpc + * [Config] CONFIG_ASYNC_RAID6_TEST=m for ppc64el + * [Config] CONFIG_BIG_KEYS=y for ppc64el + * [Config] CONFIG_BLK_DEV_INTEGRITY=y for ppc64el + * [Config] CONFIG_BSD_PROCESS_ACCT=y for ppc64el + * [Config] CONFIG_BLK_DEV_SR_VENDOR=n for ppc64el + * [Config] CONFIG_CFG80211=m for ppc64el + * [Config] CONFIG_CHARGER_BQ24190=m for powerpc + * [Config] CONFIG_CHARGER_BQ24735=m for powerpc + * [Config] CONFIG_EXPERT=y for ppc64el + * [Config] CONFIG_ATA_SFF=y on ppc64el + * [Config] CONFIG_ATA_GENERIC=y for ppc64el, powerpc + * [Config] CONFIG_CHR_DEV_ST=m for ppc64el + * [Config] CONFIG_CHECKPOINT_RESTORE=y for ppc64el + * [Config] CONFIG_CHELSIO_T1_1G=y for ppc64el + * [Config] CONFIG_CHR_DEV_OSST=m for ppc64el + * [Config] CONFIG_CHR_DEV_SCH=m for ppc64el + * [Config] CONFIG_CPU_FREQ_STAT=y for powerpc + * [Config] CONFIG_DDR=y for ppc64el + * [Config] CONFIG_DEBUG_BUGVERBOSE=y for powerpc + * [Config] CONFIG_EXT4_USE_FOR_EXT23=y for powerpc, ppc64el + * [Config] CONFIG_E100=m, CONFIG_E1000=m, CONFIG_E1000E=m for ppc64el + * [Config] CONFIG_EZX_PCAP=n for all arches + * [Config] CONFIG_DYNAMIC_DEBUG=y for powerpc + * [Config] CONFIG_ENABLE_MUST_CHECK=n for ppc64el + * [Config] CONFIG_ENABLE_WARN_DEPRECATED=n for ppc64el + * [Config] CONFIG_FB_3DFX=m for all arches + * [Config] CONFIG_FB_MATROX=m for ppc64el + * [Config] CONFIG_FB_RADEON=m for ppc64el + * [Config] CONFIG_FB_SAVAGE_I2C=y for all arches + * [Config] CONFIG_FIREWIRE=m for ppc64el + * [Config] CONFIG_FTR_FIXUP_SELFTEST=n for ppc64el + * [Config] CONFIG_HAMRADIO=y for ppc64el + * [Config] CONFIG_I2C_CHARDEV=m for ppc64el + * [Config] CONFIG_I2C_MUX=m for ppc64el + * [Config] CONFIG_I2C_STUB=m for ppc64el + * [Config] CONFIG_I2O=m for ppc64el + * [Config] CONFIG_INET_XFRM_MODE_BEET=m, CONFIG_INET_XFRM_MODE_TRANSPORT=m, CONFIG_INET_XFRM_MODE_TUNNEL=m for ppc64el + * [Config] CONFIG_INFINIBAND_IPOIB_DEBUG=n, CONFIG_INFINIBAND_MTHCA_DEBUG=n for ppc64el + * [Config] CONFIG_INFINIBAND_NES=m, CONFIG_INFINIBAND_OCRDMA=m, CONFIG_INFINIBAND_QIB=m for ppc64el + * [Config] CONFIG_INPUT_FF_MEMLESS=m for ppc64el + * [Config] CONFIG_INTERVAL_TREE_TEST=m for ppc64el + * [Config] CONFIG_IPACK_BUS=m for ppc64el + * [Config] CONFIG_ISDN=y for ppc64el + * [Config] CONFIG_ISO9660_FS=m for ppc64el + * [Config] CONFIG_KGDB=y for ppc64el + * [Config] CONFIG_KVM_GUEST=y for ppc64el + * [Config] CONFIG_L2TP_V3=y for powerpc + * [Config] CONFIG_MAILBOX=y for ppc64el + * [Config] CONFIG_MD_LINEAR=m, CONFIG_MD_RAID0=m, CONFIG_MD_RAID1=m for ppc64el + * [Config] CONFIG_MEDIA_SUPPORT=m for ppc64el + * [Config] CONFIG_MEMORY=y for ppc64el + * [Config] CONFIG_MEMSTICK=m for ppc64el + * [Config] CONFIG_MFD_SM501_GPIO=n for ppc64el + * [Config] CONFIG_MLX4_DEBUG=n for ppc64el + * [Config] CONFIG_MMC_BLOCK=m for ppc64el + * [Config] CONFIG_MOUSE_PS2=m for ppc64el + * [Config] CONFIG_NET_9P=m for ppc64el + * [Config] CONFIG_MSDOS_FS=m for ppc64el + * [Config] CONFIG_MSI_BITMAP_SELFTEST=n for ppc64el + * [Config] CONFIG_MTD=m for arm64 + * [Config] CONFIG_NETCONSOLE=m for ppc64el + * [Config] CONFIG_NETFILTER_XT_TARGET_NOTRACK=m for ppc64el + * [Config] CONFIG_NETPOLL_TRAP=n for ppc64el + * [Config] CONFIG_NET_IPIP=m for ppc64el + * [Config] CONFIG_NET_TEAM=m for all arches + * [Config] CONFIG_NFC=m for ppc64el + * [Config] CONFIG_NL80211_TESTMODE=n for all arches + * [Config] CONFIG_NLS_CODEPAGE_437=y for powerpc + * [Config] CONFIG_NLS_ASCII=m, CONFIG_NLS_ISO8859_1=m, CONFIG_NLS_UTF8=m for ppc64el + * [Config] CONFIG_NOP_USB_XCEIV=m for ppc64el + * [Config] CONFIG_NOTIFIER_ERROR_INJECTION=m for ppc64el + * [Config] CONFIG_OPROFILE=m for ppc64el + * [Config] CONFIG_PARPORT_1284=y for ppc64el + * [Config] CONFIG_PARPORT_AX88796=m, CONFIG_PARPORT_PC_FIFO=y, CONFIG_PARPORT_SERIAL=m for ppc64el + * [Config] CONFIG_PCI_IOV=y, CONFIG_PCI_PASID=y, CONFIG_PCI_PRI=y, CONFIG_PCI_REALLOC_ENABLE_AUTO=y, CONFIG_PCI_STUB=m for ppc64el + * [Config] CONFIG_PCNET32=m for ppc64el + * [Config] CONFIG_SCSI_DH_EMC=m for ppc64el + * [Config] CONFIG_SCSI_DH_HP_SW=m for ppc64el + * [Config] CONFIG_SCSI_FC_ATTRS=m for ppc64el + * [Config] CONFIG_SCSI_IPR=m for ppc64el + * [Config] CONFIG_SCSI_LOGGING=y for ppc64el + * [Config] CONFIG_SCSI_OSD_INITIATOR=m for ppc64el + * [Config] CONFIG_SCSI_SCAN_ASYNC=y for ppc64el + * [Config] CONFIG_SCSI_SYM53C8XX_2=m for ppc64el + + [ Timo Aaltonen ] + + * SAUCE: i915_bdw: Provide an ubuntu/i915 driver for Broadwell graphics + - LP: #1294144 + * SAUCE: i915_bdw: Add DP_AUX definitions + - LP: #1294144 + * SAUCE: i915_bdw: Update intel_ips.h file location + - LP: #1294144 + * SAUCE: i915_bdw: Revert "ACPI / i915: replace open-coded _DSM code with + helper functions" + - LP: #1294144 + * SAUCE: i915_bdw: Add an include back to intel_opregion.c + - LP: #1294144 + * SAUCE: i915_bdw: Only support Broadwell with ubuntu/i915 driver + - LP: #1294144 + * SAUCE: i915_bdw: Add i915_bdw_gpu_*() calls for ubuntu/i915 + - LP: #1294144 + * i915_bdw: [Config] Enable CONFIG_DRM_I915_BDW=m, and disable UMS + - LP: #1294144 + * SAUCE: i915_bdw: Rename ubuntu/i915 driver to i915_bdw + - LP: #1294144 + + [ Upstream Kernel Changes ] + + * netfilter: nf_conntrack_dccp: fix skb_header_pointer API usages + - CVE-2014-2523 + * Input: ALPS - add support for "Dolphin" devices + - LP: #1190867 + * x86/mm/pageattr: Lookup address in an arbitrary PGD + - LP: #1297658 + * x86/mm/pageattr: Add a PGD pagetable populating function + - LP: #1297658 + * x86/mm/pageattr: Add a PUD pagetable populating function + - LP: #1297658 + * x86/mm/pageattr: Add a PMD pagetable populating function + - LP: #1297658 + * x86/mm/pageattr: Add a PTE pagetable populating function + - LP: #1297658 + * x86/mm/pageattr: Add a PUD error unwinding path + - LP: #1297658 + * x86/mm/pageattr: Add last levels of error path + - LP: #1297658 + * x86/mm/cpa: Map in an arbitrary pgd + - LP: #1297658 + * x86/efi: Runtime services virtual mapping + - LP: #1297658 + * x86/efi: Check krealloc return value + - LP: #1297658 + * Include apm-mustang.dtb in kernel-image udeb + * drm/i915: add i915_reset_count + - LP: #1294144 + * drm/i915: add i915_get_reset_stats_ioctl + - LP: #1294144 + * drm: add DRM_INFO_ONCE() to print a one-time DRM_INFO() message + - LP: #1294144 + * drm: provide a helper for the encoder possible_crtcs mask + - LP: #1294144 + * drm: Move drm_encoder_crtc_ok() to core + - LP: #1294144 + * drm: Pass the display mode to drm_calc_timestamping_constants() + - LP: #1294144 + * drm: Pass the display mode to drm_calc_vbltimestamp_from_scanoutpos() + - LP: #1294144 + * drm: Pass 'flags' from the caller to .get_scanout_position() + - LP: #1294144 + + [ Upstream Kernel Changes ] + + * rebase to v3.13.7 + - LP: #1268468 + + -- Andy Whitcroft Mon, 24 Mar 2014 10:41:31 +0000 + +linux (3.13.0-19.40) trusty; urgency=low + + [ Tim Gardner ] + + * [Config] Add new mlx modules to d-i + * [Config] Fix d-i spelling error: ahxi_xgene --> ahci_xgene + * [Config] Added Muti-Arch support for linux-headers-PKGVER-ABINUM, + linux-tools-common, and linux-cloud-tools-common + - LP: #1295112 + * Release Tracking Bug + - LP: #1296484 + + [ Upstream Kernel Changes ] + + * Drivers: hv: vmbus: Specify the target CPU that should receive + notification + - LP: #1295813 + + -- Tim Gardner Sun, 23 Mar 2014 19:54:50 -0600 + +linux (3.13.0-19.39) trusty; urgency=low + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1295462 + + [ Andy Whitcroft ] + + * ubuntu: aufs3 -- update update scripting + * ubuntu: AUFS -- update to 75dbb997b5812e16771bec20e92449ba0b1705d9 + + [ Anup Patel ] + + * SAUCE: (no-up) KVM: Documentation: Fix typo for KVM_ARM_VCPU_INIT ioctl + * SAUCE: (no-up) arm64: KVM: Force undefined exception for Guest SMC + intructions + + [ dann frazier ] + + * SAUCE: (no-up) Fix pcie-xgene build failure + + [ Emmanuel Grumbach ] + + * SAUCE: iwlwifi: mvm: send udev event upon firmware error to dump logs + + [ Feng Kan ] + + * SAUCE: (no-up) power: reset: Add generic SYSCON register mapped reset + - LP: #1284433 + * SAUCE: (no-up) arm64: dts: Add X-Gene reboot driver dts node + - LP: #1284433 + + [ Hans de Goede ] + + * SAUCE: (no-up) libahci: Allow drivers to override start_engine + - LP: #1282920 + * SAUCE: (no-up) ahci-platform: Add support for devices with more then 1 + clock + - LP: #1282920 + * SAUCE: (no-up) ahci-platform: Add support for an optional regulator for + sata-target power + - LP: #1282920 + * SAUCE: (no-up) ahci-platform: Add enable_ / disable_resources helper + functions + - LP: #1282920 + * SAUCE: (no-up) ahci-platform: "Library-ise" ahci_probe functionality + - LP: #1282920 + * SAUCE: (no-up) ahci-platform: "Library-ise" suspend / resume + functionality + - LP: #1282920 + + [ Iyappan Subramanian ] + + * SAUCE: (no-up) Documentation: APM X-Gene SoC Ethernet DTS binding + documentation + * SAUCE: (no-up) arm64: dts: APM X-Gene SoC Ethernet device tree nodes + * SAUCE: (no-up) drivers: net: APM X-Gene SoC Ethernet base driver + * SAUCE: (no-up) drivers: net: APM X-Gene SoC Ethernet driver error + handling + * SAUCE: (no-up) drivers: net: APM X-Gene SoC Ethernet driver ethtool + support + + [ Loc Ho ] + + * SAUCE: (no-up) Documentation: Add APM X-Gene SoC 15Gbps Multi-purpose + PHY driver binding documentation + - LP: #1282920 + * SAUCE: (no-up) PHY: add APM X-Gene SoC 15Gbps Multi-purpose PHY driver + - LP: #1282920 + * SAUCE: (no-up) arm64: Add APM X-Gene SoC 15Gbps Multi-purpose PHY DTS + entries + - LP: #1282920 + * SAUCE: (no-up) Documentation: Add documentation for the APM X-Gene SoC + SATA host controller DTS binding + * SAUCE: (no-up) ata: Add APM X-Gene SoC AHCI SATA host controller driver + * SAUCE: (no-up) ata: Fix compiler warning with APM X-Gene host + controller driver + * SAUCE: (no-up) arm64: Add APM X-Gene SoC AHCI SATA host controller DTS + entries + * SAUCE: (no-up) clk: arm64: Fix the clock-names property for pcppll, + socpll, and socplldiv2 + + [ Marc Zyngier ] + + * SAUCE: (no-up) arm64: KVM: force cache clean on page fault when caches + are off + * SAUCE: (no-up) arm64: KVM: allows discrimination of AArch32 sysreg + access + * SAUCE: (no-up) arm64: KVM: trap VM system registers until MMU and + caches are ON + * SAUCE: (no-up) ARM: KVM: introduce kvm_p*d_addr_end + * SAUCE: (no-up) arm64: KVM: flush VM pages before letting the guest + enable caches + * SAUCE: (no-up) ARM: KVM: force cache clean on page fault when caches + are off + + [ Ming Lei ] + + * SAUCE: (no-up) arm64: apm-storm: support ttyS1 + * SAUCE: (no-up) apm: pcie: fix hang when no card connected + + [ Paolo Pisati ] + + * [Config] armhf: generic: disable CPU_IDLE + * [Config] armhf: CPU_FREQ=y + * [Config] armhf: TI_THERMAL=y + + [ Rameshwar Prasad Sahu ] + + * SAUCE: (no-up) rtc: Add X-Gene SoC Real Time Clock Driver + + [ Ravi Patel ] + + * SAUCE: (no-up) Documentation: misc-devices: APM X-Gene SoC QMTM + * SAUCE: (no-up) Documentation: devicetree: bindings for APM X-Gene SoC + QMTM + * SAUCE: (no-up) misc: xgene: base driver for APM X-Gene SoC QMTM + * SAUCE: (no-up) arm64: boot: dts: entries for APM X-Gene SoC QMTM + * SAUCE: (no-up) misc: xgene: error handling for APM X-Gene SoC QMTM + + [ Roger Quadros ] + + * SAUCE: (no-up) ata: ahci_platform: Manage SATA PHY + - LP: #1282920 + * SAUCE: (no-up) ata: ahci_platform: runtime resume the device before use + - LP: #1282920 + + [ Seth Forshee ] + + * SAUCE: iwlwifi: mvm: Free sram dump immediately after using it + * SAUCE: iwlwifi: mvm: Only notify userspace of fw error dump when one is + created + * SAUCE: iwlwifi: mvm: Don't create fw error dump if there's nothing to + dump + + [ Tanmay Inamdar ] + + * SAUCE: (no-up) arm64: PCI(e) arch support + * SAUCE: (no-up) pci: APM X-Gene PCIe controller driver + * SAUCE: (no-up) arm64: dts: APM X-Gene PCIe device tree nodes + * SAUCE: (no-up) dt-bindings: pci: xgene pcie device tree bindings + * SAUCE: (no-up) MAINTAINERS: entry for APM X-Gene PCIe host driver + + [ Tim Gardner ] + + * [Config] CONFIG_POWER_RESET_SYSCON=y for arm64 + * SAUCE: (no-up) Restrict CONFIG_POWER_RESET_SYSCON to arm64 only + * SAUCE: iwlwifi: Fix FTBS for armhf + * [Config] CONFIG_PHY_XGENE=m for arm64 + * [Config] CONFIG_AHCI_XGENE=m for arm64 + * [Config] CONFIG_NET_XGENE=m for arm64 + * [Config] CONFIG_RTC_DRV_XGENE=m for arm64 + * SAUCE: (no-up) Add drivers/phy/phy-core.ko to generic inclusion list + * [Config] Enable PCI for arm64 + * SAUCE: arm64: export __cpu_clear_user_page for modules + * SAUCE: ARCH_HAS_DMA_GET_REQUIRED_MASK=n for arm64 + * [Config] CONFIG_PCI_XGENE=y + * [Config] CONFIG_PHY_XGENE=y for arm64 + * [Config] CONFIG_RTC_DRV_XGENE=y for arm64 + * d-i: Add ahxi_xgene and xgene-enet + + [ Upstream Kernel Changes ] + + * Staging: rtl8821ae: rc.c: fix up function prototypes + * Staging: rtl8821ae: removed unused functions and variables + * Staging: rtl8821ae: add TODO file + * Staging: rtl8812ae: disable due to build errors + * staging: r8821ae: Fix build problems + * staging: r8821ae: Enable build by reverting BROKEN marking + * staging: rtl8821ae: Fixed the size of array to macro as discussed by + Linus + * staging/rtl8821ae: fix build, depends on MAC80211 + * powerpc: Reclaim two unused thread_info flag bits + * powerpc: Don't corrupt transactional state when using FP/VMX in kernel + * powerpc: Fix transactional FP/VMX/VSX unavailable handlers + * Drivers: hv: Ballon: Make pressure posting thread sleep interruptibly + - LP: #1294253 + * mac80211: don't validate unchanged AP bandwidth while tracking + - LP: #1294558 + * phy-core: Don't propagate -ENOSUPP from phy_pm_runtime_get_sync to + caller + * CONFIG_XGENE_QMTM=m for arm64 + + -- Tim Gardner Thu, 20 Mar 2014 21:51:11 -0400 + +linux (3.13.0-18.38) trusty; urgency=low + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1293725 + * [Config] Add hv_balloon to d-i virtio-modules + - LP: #1292216 + + [ Andy Whitcroft ] + + * [Config] d-i -- add virtio_scsi to virtio-modules + - LP: #1288607 + + [ Colin Ian King ] + + * SAUCE: intel_pstate: inform user that thermald is worth considering + + [ dann frazier ] + + * [Config] arm64: KVM=y + + [ Gerd Hoffmann ] + + * SAUCE: vmbus: add missing breaks + - LP: #1287398 + * SAUCE: vmbus: use resource for hyperv mmio region + - LP: #1287398 + * SAUCE: hyperv-fb: add support for generation 2 virtual machines. + - LP: #1287398 + * SAUCE: hyperv-fb: kick off efifb early + - LP: #1287398 + + [ Haiyang Zhang ] + + * SAUCE: hyperv: Change the receive buffer size for legacy hosts + - LP: #1290151 + + [ K. Y. Srinivasan ] + + * SAUCE: Drivers: hv: vmbus: Extract the mmio information from DSDT + - LP: #1287398 + + [ Paolo Pisati ] + + * SAUCE: leds-gpio: of: introduce MODULE_DEVICE_TABLE for module + autoloading + * [Config] amhf: LEDS_TRIGGER_HEARTBEAT=y + + [ Upstream Kernel Changes ] + + * Revert "xhci 1.0: Limit arbitrarily-aligned scatter gather." + - LP: #1293361 + * Revert "USBNET: ax88179_178a: enable tso if usb host supports sg dma" + - LP: #1293361 + * powerpc/tm: Fix crash when forking inside a transaction + * AX88179_178A: Add VID:DID for Lenovo OneLinkDock Gigabit LAN + - LP: #1291890 + * drm/vmwgfx: Fix a surface reference corner-case in legacy emulation + mode + * Input: wacom - scale up touch width and height values for Intuos Pro + * Input: wacom - make sure touch_max is set for touch devices + * Input: wacom - add support for three new Intuos devices + * Input: wacom - add reporting of SW_MUTE_DEVICE events + * Input: wacom - fix wacom->shared guards for dual input devices + * Input: wacom - add support for DTU-1031 + * net: fix for a race condition in the inet frag code + - CVE-2014-0100 + * net: sctp: fix sctp_sf_do_5_1D_ce to verify if we/peer is AUTH capable + - CVE-2014-0101 + * KEYS: Make the keyring cycle detector ignore other keyrings of the same + name + - CVE-2014-0102 + * ipv6: don't set DST_NOCOUNT for remotely added routes + - CVE-2014-2309 + + -- Andy Whitcroft Thu, 13 Mar 2014 10:06:05 +0000 + +linux (3.13.0-17.37) trusty; urgency=low + + [ Andy Whitcroft ] + + * Release Tracking Bug + - LP: #1290484 + * Revert "SAUCE: hv: Add vss daemon to Makefile" + * Revert "SAUCE: (no-up) tools/hv: add basic Makefile" + * Revert "SAUCE: (no-up) hv -- bodge hv_kvp_daemon so it can use the + local linux/hyperv.h" + * Revert "SAUCE: (no-up) hv -- bodge hv_vss_daemon so it can use the + local linux/hyperv.h" + * Revert "SAUCE: SELinux: security_load_policy: Silence frame-larger-than + warning" + * Revert "SAUCE: ARM: OMAP4460: cpuidle: Extend + PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD on cpuidle" + * ubuntu: overlayfs -- use kernel service credentials for copy up and + xattr manipulations + * [Packaging] tools -- hv tools build correctly against the built headers + * [Packaging] cloud-tools -- add the hv_fcopy_daemon to the package + * rebase to v3.13.6 + + [ Anton Blanchard ] + + * SAUCE: ibmveth: Fix endian issues with MAC addresses + + [ Bjarke Istrup Pedersen ] + + * SAUCE: hv: Add hyperv.h to uapi headers + - LP: #1282700 + + [ Fengguang Wu ] + + * SAUCE: Drivers: hv: fcopy_open() can be static + - LP: #1282700 + + [ K. Y. Srinivasan ] + + * SAUCE: Drivers: hv: Implement the file copy service + - LP: #1282700 + + [ Tim Gardner ] + + * SAUCE: (no-up) mei: Fix stable update misapplication + * SAUCE: (no-up) mei_me: Add module parameter to disable MSI + + [ Upstream Kernel Changes ] + + * arm64: KVM: Add Kconfig option for max VCPUs per-Guest + * arm64: KVM: Support X-Gene guest VCPU on APM X-Gene host + * ACPI / EC: Clear stale EC events on Samsung systems + * drm/ttm: Fix TTM object open regression + * SELinux: security_load_policy: Silence frame-larger-than warning + * ARM: OMAP4460: cpuidle: Extend PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD on + cpuidle + + [ Upstream Kernel Changes ] + + * rebase to v3.13.6 + - LP: #1282369 + - LP: #1260303 + + -- Tim Gardner Wed, 05 Mar 2014 06:52:34 -0700 + +linux (3.13.0-16.36) trusty; urgency=low + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1287903 + + [ Andy Whitcroft ] + + * Revert "[Config] lowlatency -- turn CONFIG_IRQ_FORCED_THREADING_DEFAULT + off temporarily" + + [ Chris Bainbridge ] + + * SAUCE: x86: set Pentium M as PAE capable + - LP: #930447 + + [ Dave Jones ] + + * SAUCE: taint: repurpose TAINT_UNSAFE_SMP to TAINT_CPU_OUT_OF_SPEC + - LP: #930447 + + [ Paolo Pisati ] + + * [Config] SND_DAVINCI_SOC && SND_AM33XX_SOC_EVM =m + * [Config] armhf: DRM_TILCDC=m + + [ Philippe Bergheaud ] + + * SAUCE: powerpc: fix xmon disassembler for little-endian + - LP: #1286255 + + [ Tim Gardner ] + + * [Config] CONFIG_MICROCODE_EARLY=y + * [Config] CONFIG_R8821AE=m + * [Config] Add some virtio drivers to -virtual + - LP: #1287401 + * [Config] inclusion-list: vesafb and virtio_balloon are built-in + * SAUCE: vmwgfx: Expose U32_MAX + + [ Upstream Kernel Changes ] + + * Revert "drm/vmwgfx: Fix regression caused by "drm/ttm: make ttm + reservation calls behave like reservation calls"" + * Revert "drm/vmwgfx: Fix the driver for large dma addresses" + * usb: ehci: fix deadlock when threadirqs option is used + - LP: #1274987, #1279081 + * Staging: rtl8812ae: Add Realtek 8821 PCI WIFI driver + - LP: #1287298 + * intel_pstate: Remove periodic P state boost + * intel_pstate: Add trace point to report internal state. + * intel_pstate: Take core C0 time into account for core busy calculation + * intel_pstate: Use LFM bus ratio as min ratio/P state + * intel_pstate: Add support for Baytrail turbo P states + * intel_pstate: Change busy calculation to use fixed point math. + * PM / hibernate: Fix restore hang in freeze_processes() + * ipmi: remove deprecated IRQF_DISABLED + * ipmi: use USEC_PER_SEC instead of 1000000 for more meaningful + * ipmi: fix timeout calculation when bmc is disconnected + * ipmi: Cleanup error return + * ipmi: Add missing rv in ipmi_parisc_probe() + * drm/ttm: ttm object security fixes for render nodes + * drivers: gpu: Mark functions as static in vmwgfx_kms.c + * drivers: gpu: Mark functions as static in vmwgfx_buffer.c + * drivers: gpu: Mark functions as static in vmwgfx_fence.c + * drm/vmwgfx: Fix the driver for large dma addresses + * drm/vmwgfx: Update the svga3d register header file for new device + version + * drm/vmwgfx: Update the driver user-space interface for guest-backed + objects + * drm/vmwgfx: Replace vram_size with prim_bb_mem for calculation of max + resolution + * drm/vmwgfx: Update the svga register definition + * drm/vmwgfx: Adapt capability reporting to new hardware version + * drm/vmwgfx: Add MOB management + * drm/vmwgfx: Hook up MOBs to TTM as a separate memory type + * drm/vmwgfx: Read bounding box memory from the appropriate register + * drm/vmwgfx: Add the possibility to validate a buffer as a MOB + * drm/vmwgfx: Hook up guest-backed queries + * drm/vmwgfx: Detach backing store from its resources when it is evicted + * drm/vmwgfx: Hook up guest-backed contexts + * drm/vmwgfx: Hook up guest-backed surfaces + * drm/vmwgfx: Add guest-backed shaders + * drm/vmwgfx: Validate guest-backed shader const commands + * drm/vmwgfx: Add new unused (by user-space) commands to the verifier + * drm/vmwgfx: Enable 3D for new hardware version + * drm/vmwgfx: Fix up the vmwgfx_drv.h header for new files + * drm/vmwgfx: Extend the command verifier to handle guest-backed on / off + * drm/vmwgfx: Make sure that the multisampling is off + * drm/vmwgfx: Implement a buffer object synccpu ioctl. + * drm/vmwgfx: Add a parameter to get max MOB memory size + * drm/vmwgfx: Block the BIND_SHADERCONSTS command + * drm/vmwgfx: Track context bindings and scrub them upon exiting execbuf + * drm/vmwgfx: Persistent tracking of context bindings + * drm/vmwgfx: Ditch the vmw_dummy_query_bo_prepare function + * drm/vmwgfx: Use the linux DMA api also for MOBs + * drm/vmwgfx: Update otable definitions + * drm/vmwgfx: Fix surface framebuffer check for guest-backed surfaces + * drm/vmwgfx: Implement 64-bit Otable- and MOB binding v2 + * drm/vmwgfx: Silence the device command verifier + * drm/vmwgfx: Invalidate surface on non-readback unbind + * drm/vmwgfx: Fix recently introduced sparse / smatch warnings and errors + * drm/vmwgfx: Don't commit staged bindings if execbuf fails + * drm/vmwgfx: Fix regression caused by "drm/ttm: make ttm reservation + calls behave like reservation calls" + * drm/vmwgfx: Fix SET_SHADER_CONST emulation on guest-backed devices + * drm/vmwgfx: Fix legacy surface reference size copyback + * drm/vmwgfx: Emulate legacy shaders on guest-backed devices v2 + * drm/vmwgfx: Detect old user-space drivers and set up legacy emulation + v2 + * drm/vmwgfx: Reemit context bindings when necessary v2 + * vmwgfx: Fix unitialized stack read in vmw_setup_otable_base + * drm/vmwgfx: Fix a couple of sparse warnings and errors + * drm/vmwgfx: Get maximum mob size from register SVGA_REG_MOB_MAX_SIZE + * drm/vmwgfx: unlock on error path in vmw_execbuf_process() + * drm/vmwgfx: Remove stray const + * drm/vmwgfx: Fix possible integer overflow + * drm/vmwgfx: Fix command defines and checks + * drm/vmwgfx: Remove some unused surface formats + * drm/vmwgfx: Make sure backing mobs are cleared when allocated. Update + driver date. + * drm/vmwgfx: avoid null pointer dereference at failure paths + + -- Tim Gardner Mon, 03 Mar 2014 13:04:10 -0700 + +linux (3.13.0-15.35) trusty; urgency=low + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1287175 + + [ Andy Whitcroft ] + + * [Config] tools -- enable cpupower on ppc64el + * [Config] ppc64el -- enable perf tools + * [Config] powerpc -- enable perf tools + * [Config] ppc64el -- reduce MAX_ORDER with 64k pages + * [Config] ppc64el -- switch to 64K system pages + + [ Benjamin Herrenschmidt ] + + * SAUCE: powerpc/powernv: Add iommu DMA bypass support for IODA2 + + [ Paul Mackerras ] + + * SAUCE: powerpc: Increase stack redzone for 64-bit userspace to 512 + bytes + + [ Upstream Kernel Changes ] + + * perf trace: Fix ioctl 'request' beautifier build problems on !(i386 || + x86_64) arches + * kvm, vmx: Really fix lazy FPU on nested guest + - LP: #1278531 + + -- Tim Gardner Mon, 03 Mar 2014 13:22:56 +0000 + +linux (3.13.0-14.34) trusty; urgency=low + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1285851 + + [ Andy Whitcroft ] + + * [Config] d-i -- add hyperv_keyboard to serial-modules udeb + - LP: #1285434 + + [ Hannes Frederic Sowa ] + + * SAUCE: ipv6: honor IPV6_PKTINFO with v4 mapped addresses on sendmsg + - LP: #1284535 + + [ Jason Wang ] + + * SAUCE: x86, hyperv: bypass the timer_irq_works() check + - LP: #1282693 + + [ Paolo Pisati ] + + * [Config] disable FB_OMAP2, DRM_OMAP=m + + [ Upstream Kernel Changes ] + + * ipv6: make IPV6_RECVPKTINFO work for ipv4 datagrams + - LP: #1284535 + * mei: remove flash_work_queue + * mei: drop redundant list_del_init + * mei: cleanup mei_irq_read_handler + * mei: enable marking internal commands + * mei: me: set dma mask using DMA mapping API + * Documentation/misc-devices/mei/mei-amt-version.c: remove unneeded call + of mei_deinit() + * mei: do not run reset flow from the interrupt thread + * mei: nfc: mei_nfc_free has to be called under lock + * mei: fix syntax in comments and debug output + * mei: revamp mei reset state machine + * mei: limit the number of consecutive resets + * mei: set client's read_cb to NULL when flow control fails + + -- Tim Gardner Wed, 26 Feb 2014 08:43:20 -0500 + +linux (3.13.0-13.33) trusty; urgency=low + + [ Andy Whitcroft ] + + * Release Tracking Bug + - LP: #1284614 + * [Config] powerpc -- CONFIG_SCSI_IBMVSCSI=y + * [Config] CONFIG_RT_GROUP_SCHED=n + - LP: #1284731 + + [ Stefan Bader ] + + * [Config] Revert back to build IPMI as a module on all arches + + [ Tim Gardner ] + + * rebase to v3.13.5 + + [ Upstream Kernel Changes ] + + * cifs: ensure that uncached writes handle unmapped areas correctly + * rebase to v3.13.5 + + -- Andy Whitcroft Tue, 25 Feb 2014 12:15:09 +0000 + +linux (3.13.0-12.32) trusty; urgency=low + + [ Andy Whitcroft ] + + * Release Tracking Bug + - LP: #1283074 + + * Revert "SAUCE: Drivers: hv: vmbus: Specify the target CPU that should + receive notification" + * [Packaging] tools -- clean up generic so it gives more targetted hints + * [Packaging] tools -- fix relative links + * rebase to v3.13.4 + + [ Colin Ian King ] + + * [Config][v2] armhf, arm64, powerpc, ppc64el: IPMI_SI=m + + [ Paolo Pisati ] + + * [Config] armhf: SOC_AM33XX=y + * [Config] armhf: TI_CPSW, TI_CPTS and TI_DAVINCI_[CPDMA|MDIO] = y + * [Config] armhf: RTC_DRV_OMAP=y + * [Config] build beaglebone and bleaglebone black dtbs + + [ Tony Breeds ] + + * SAUCE: powerpc/le: Ensure that the 'stop-self' RTAS token is handled + correctly + - LP: #1282712 + + [ Upstream Kernel Changes ] + + * Drivers: hv: vmbus: Specify the target CPU that should receive + notification + - LP: #1282694 + * Drivers: hv: vmbus: Don't timeout during the initial connection with + host + - LP: #1282694 + * hyperv: Add support for physically discontinuous receive buffer + - LP: #1282695 + * Input: hyperv-keyboard - pass through 0xE1 prefix + - LP: #1282699 + * rebase to v3.13.4 + + -- Andy Whitcroft Fri, 21 Feb 2014 12:51:17 +0000 + +linux (3.13.0-11.31) trusty; urgency=low + + [ Colin Ian King ] + + * [config] Set IPMI suppoort default to "y" + + [ Tim Gardner ] + + * [Config] CONFIG_USER_NS=y for ppc64el + * [Config] CONFIG_RESOURCE_COUNTERS=y for ppc64el + * Release Tracking Bug + - LP: #1282243 + + -- Tim Gardner Wed, 19 Feb 2014 12:04:43 -0500 + +linux (3.13.0-10.30) trusty; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] tools -- fix up do_tools interface which is assumed by + external tooling + + [ Tim Gardner ] + + * [Config] CONFIG_CGROUP_SCHED=y for ppc64el + * [Config] CONFIG_BLK_CGROUP=y for ppc64el + * [Config] CONFIG_USB_XHCI_HCD=y for ppc64el + * [Config] CONFIG_CGROUP_PERF=y for ppc64el + * Release Tracking Bug + - LP: #1281783 + + [ Upstream Kernel Changes ] + + * be2net: Use MCC_CREATE_EXT_V1 cmd for Skyhawk-R + - LP: #1281446 + * be2net: don't set "pport" field when querying "pvid" + - LP: #1281446 + * be2net: Log the profile-id used by FW during driver initialization + - LP: #1281446 + * be2net: do not call be_set/get_fw_log_level() on Skyhawk-R + - LP: #1281446 + * be2net: ignore mac-addr set call for an already programmed mac-addr + - LP: #1281446 + * be2net: fix incorrect setting of cmd_privileges for VFs + - LP: #1281446 + * be2net: Remove "10Gbps" from driver description string + - LP: #1281446 + * be2net: do not use frag index in the RX-compl entry + - LP: #1281446 + * be2net: use GET_MAC_LIST cmd to query mac-address from a pmac-id + - LP: #1281446 + * be2net: cleanup wake-on-lan code + - LP: #1281446 + * be2net: update driver version to 10.0.x + - LP: #1281446 + * be2net: Fix be_vlan_add/rem_vid() routines + - LP: #1281446 + + -- Tim Gardner Tue, 18 Feb 2014 13:13:24 -0700 + +linux (3.13.0-9.29) trusty; urgency=low + + [ Andy Whitcroft ] + + * Release Tracking Bug + - LP: #1280291 + * [Config] lowlatency -- turn CONFIG_IRQ_FORCED_THREADING_DEFAULT off + temporarily + * [Packaging] tools -- split out "cloud only" tools into a cloud tools + package + + [ Paolo Pisati ] + + * [Config] armhf: DISPLAY_CONNECTOR_HDMI && DISPLAY_ENCODER_TPD12S015 =y + + [ Tim Gardner ] + + * rebase to v3.13.3 + + [ Upstream Kernel Changes ] + + * Revert "mmc: sdhci-pci: Fix possibility of chip->fixes being null" + * Revert "mmc: sdhci-pci: Fix BYT sd card getting stuck in runtime + suspend" + * NVMe: Avoid shift operation when writing cq head doorbell + - LP: #1256155 + * NVMe: remove deprecated IRQF_DISABLED + - LP: #1256155 + * NVMe: compat SG_IO ioctl + - LP: #1256155 + * NVMe: Fix lockdep warnings + - LP: #1256155 + * NVMe: Cache dev->pci_dev in a local pointer + - LP: #1256155 + * NVMe: Device resume error handling + - LP: #1256155 + * NVMe: Schedule reset for failed controllers + - LP: #1256155 + * NVMe: Abort timed out commands + - LP: #1256155 + * NVMe: Surprise removal handling + - LP: #1256155 + * NVMe: Async IO queue deletion + - LP: #1256155 + * NVMe: Dynamically allocate partition numbers + - LP: #1256155 + * NVMe: Disable admin queue on init failure + - LP: #1256155 + * NVMe: Add a pci_driver shutdown method + - LP: #1256155 + * NVMe: Include device and queue numbers in interrupt name + - LP: #1256155 + * NVMe: Correct uses of INIT_WORK + - LP: #1256155 + * NVMe: Namespace use after free on surprise removal + - LP: #1256155 + * intel_pstate: Add setting voltage value for baytrail P states. + - LP: #1270736 + * mmc: sdhci-pci: break out definitions to header file + * mmc: sdhci-pci: add support of O2Micro/BayHubTech SD hosts + * mmc: sdhci-pci: Fix BYT sd card getting stuck in runtime suspend + * mmc: sdhci-pci: Fix possibility of chip->fixes being null + + [ Upstream Kernel Changes ] + + * rebase to v3.13.3 + + -- Tim Gardner Thu, 13 Feb 2014 06:08:09 -0700 + +linux (3.13.0-8.28) trusty; urgency=low + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1278963 + + [ Paolo Pisati ] + + * [Config] armhf: RTC_DRV_PL031=y + + [ Serge Hallyn ] + + * SAUCE: Overlayfs: allow unprivileged mounts + + [ Upstream Kernel Changes ] + + * kexec: add sysctl to disable kexec_load + - LP: #1259570 + * SELinux: Fix kernel BUG on empty security contexts. + - CVE-2014-1874 + + -- Tim Gardner Tue, 11 Feb 2014 08:35:39 -0500 + +linux (3.13.0-8.27) trusty; urgency=low + + [ John Johansen ] + + * SAUCE: Add config option to disable new apparmor 3 semantics + -LP: #1270215 + + [ Tim Gardner ] + + * [debian] Fix indep_hdrs_pkg_name + - LP: #1134441 + * Update lttng to 00808267d3ba7cdcddfed7bec7e62a40463c1307 Version 2.4.0-rc3 + * Enabled lttng build + * Don't build lttng for armhf + lttng hates gcc-4.8 for armhf + * Release Tracking Bug + - LP: #1277309 + + [ Upstream Kernel Changes ] + + * rebase to v3.13.2 + - LP: #1260303 + - LP: #1260303 + - LP: #1268468 + + -- Tim Gardner Thu, 06 Feb 2014 09:25:51 -0700 + +linux (3.13.0-7.26) trusty; urgency=low + + [ John Johansen ] + + * SAUCE: apparmor: fix uninitialized lsm_audit membe + - LP: #1268727 + * Add config option to optionally enable new apparmor 3 semantics + + [ Tim Gardner ] + + * [Config] Add lowlatency to getabis + * [Config] CONFIG_SECURITY_APPARMOR_AA3_SEMANTICS=y + - LP: #1270215 + * Release Tracking Bug + - LP: #1276810 + + [ Upstream Kernel Changes ] + + * x86, x32: Correct invalid use of user timespec in the kernel + - LP: #1274349 + - CVE-2014-0038 + + -- Tim Gardner Wed, 05 Feb 2014 15:49:44 -0500 + +linux (3.13.0-7.25) trusty; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: fix fmd headers" + * SAUCE: fix fmd headers + + -- Andy Whitcroft Tue, 04 Feb 2014 09:36:09 +0000 + +linux (3.13.0-7.24) trusty; urgency=low + + [ Stefan Bader ] + + * [Config] Make vmwgfx driver enable the framebuffer device + + [ Tim Gardner ] + + * rebase to v3.13.1 + * [Config] CONFIG_NFS_FS=m for ppc64el + * [Config] CONFIG_X86_SYSFB=n + https://lists.ubuntu.com/archives/kernel-team/2014-February/038166.html + * Release Tracking Bug + - LP: #1275898 + + [ Upstream Kernel Changes ] + + * i2c: piix4: Add support for AMD ML and CZ SMBus changes + - LP: #1272525 + * i2c: piix4: Use different message for AMD Auxiliary SMBus Controller + - LP: #1272525 + * mm: ignore VM_SOFTDIRTY on VMA merging + - LP: #1274917 + * drm/radeon: disable dpm on BTC + - LP: #1266984 + + [ Upstream Kernel Changes ] + + * rebase to v3.13.1 + + -- Tim Gardner Thu, 30 Jan 2014 15:24:48 +0000 + +linux (3.13.0-6.23) trusty; urgency=low + + [ Andy Whitcroft ] + + * [Config] fix up architecture for linux-tools + + -- Andy Whitcroft Thu, 30 Jan 2014 09:00:41 +0000 + +linux (3.13.0-6.22) trusty; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] limit linux-udebs- to matching arch + * [Config] powerpc -- disable perf to fix FTBFS + * [Config] ppc64el -- fix up missing udebs + + -- Andy Whitcroft Wed, 29 Jan 2014 16:00:28 +0000 + +linux (3.13.0-6.21) trusty; urgency=low + + [ Andy Fleming ] + + * SAUCE: net: Add support for handling queueing in hardware + * SAUCE: of_mdio: Add of_phy_attach function + * SAUCE: phylib: Add generic 10G driver + * SAUCE: phylib: Support attaching to gen10g_driver + * SAUCE: phylib: Add Clause 45 read/write functions + + [ Andy Whitcroft ] + + * SAUCE: fix fmd headers + * [Packaging] lowlatency -- merge out of tree flavours + * SAUCE: allow IRQs to be irq-threaded by default via config + * [Config]: enable CONFIG_IRQ_FORCED_THREADING_DEFAULT for lowlatency + * [Config] powerpc -- fix up Build-depends: + * Release Tracking Bug + - LP: #1273747 + + [ Ben Collins ] + + * SAUCE: PPC: PCI: Fix pcibios_io_space_offset() so it works for 32-bit + ptr/64-bit rsrcs + * SAUCE: Revert "phy: vitesse make vsc824x_add_skew static" + * SAUCE: Fixup freescale usb phy driver to work on ppc64 + * SAUCE: xgmac_mdio: Silence read errors + * SAUCE: Provide booke stub for kvmppc_is_bigendian() + * SAUCE: Fix stack overflow on ppc32 + * SAUCE: Use resource_size_t instead of long for PCI resource address + * SAUCE: net/phy: Export function for use by dpaa_eth + * [Packaging] powerpc -- merge out of tree powerpc arch + + [ Bjorn Helgaas ] + + * SAUCE: Revert "EISA: Log device resources in dmesg" + - LP: #1251816 + * SAUCE: Revert "EISA: Initialize device before its resources" + - LP: #1251816 + + [ Emil Medve ] + + * SAUCE: phylib: Minimum hack to get the generic 10G PHY driver to work + with 10G "fixed-link"s + + [ Kumar Gala ] + + * SAUCE: fsl_qbman: Add drivers for Freescale DPAA Qman & Bman + * SAUCE: fsl_pme2: Add support for DPAA PME + * SAUCE: fmd: FMD14 integration + * SAUCE: dpaa_eth: Ethernet driver for Freescale QorIQ DPA Architecture + * SAUCE: powerpc/85xx: Add DPAA/networking support for CoreNet + + [ Madalin Bucur ] + + * SAUCE: net/flow: remove sleeping and deferral mechanism from + flow_cache_flush + * SAUCE: net/phy: abort genphy_read_status when link changes during speed + and duplex reading + + [ Stefan Bader ] + + * [Config] move some VMWare related modules into main package + - LP: #1271669 + + [ Tim Gardner ] + + * [Config] Add r815x to nic-modules + - LP: #1273735 + * [Config] CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y + - LP: #239479 + + [ Upstream Kernel Changes ] + + * mmc: sdhci-pci: break out definitions to header file + - LP: #1239938 + * mmc: sdhci-pci: add support of O2Micro/BayHubTech SD hosts + - LP: #1239938 + * powerpc/book3e: rename interrupt_end_book3e with __end_interrupts + * powerpc/book3e: support CONFIG_RELOCATABLE + * book3e/kexec/kdump: enable kexec for kernel + * book3e/kexec/kdump: create a 1:1 TLB mapping + * book3e/kexec/kdump: introduce a kexec kernel flag + * book3e/kexec/kdump: implement ppc64 kexec specfic + * book3e/kexec/kdump: redefine VIRT_PHYS_OFFSET + * book3e/kexec/kdump: recover "r4 = 0" to create the initial TLB + + -- Andy Whitcroft Tue, 28 Jan 2014 22:59:46 +0000 + +linux (3.13.0-5.20) trusty; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] tools -- do not make symlinks when not making packages + * [Packaging] tools -- tidy up control.stub.in ordering + * [Packaging] tools -- tools-common is shared and not conditional + * rebase to v3.13 + + [ Dirk Brandewie ] + + * SAUCE: intel_pstate: Add setting voltage value for baytrail P states. + + [ KY Srinivasan ] + + * SAUCE: Drivers: hv: vmbus: Specify the target CPU that should receive + notification + + [ Upstream Kernel Changes ] + + * rebase to v3.13 + - LP: #1270603 + + -- Andy Whitcroft Fri, 17 Jan 2014 15:45:31 +0000 + +linux (3.13.0-4.19) trusty; urgency=low + + [ Andy Whitcroft ] + + * [Config] libunwind8-dev is now available for ppc64el + * [Packaging] tools -- make cpupower optional + * [Packaging] tools -- enable correctly for x86 + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1269872 + + [ Upstream Kernel Changes ] + + * SAUCE: ARM: OMAP: hwmod: Add SYSC offsets for AES IP + * SAUCE: ARM: OMAP4: hwmod: Add hwmod data for AES IP + * SAUCE: OMAP: AM33xx: hwmod: Correct AES module SYSC type + * SAUCE: crypto: omap-aes: add error check for pm_runtime_get_sync + + [ Upstream Kernel Changes ] + + * rebase to 85ce70fdf48aa290b4845311c2dd815d7f8d1fa5 + + -- Tim Gardner Wed, 15 Jan 2014 13:23:05 +0000 + +linux (3.13.0-3.18) trusty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.13-rc8 + * [Packaging] efi -- allow EFI signatures on any arch + + [ Tim Gardner ] + + * [Config] Fix vcs-git path + * Release Tracking Bug + - LP: #1268683 + + [ Upstream Kernel Changes ] + + * rebase to v3.13-rc8 + + -- Andy Whitcroft Sun, 12 Jan 2014 11:58:01 +0000 + +linux (3.13.0-2.17) trusty; urgency=low + + [ Andy Whitcroft ] + + * Release Tracking Bug + - LP: #1267809 + * [Config] apply Platform support>>CPUIdle driver>>CPU Idle config + defaults + * [Config] apply Platform support>>CPU Frequency scaling config defaults + * [Config] CONFIG_PARIDE_EPATC8=y + * [Config] apply Device Drivers >> Broadcom specific AMBA config defaults + * [Config] apply Bus options >> PCI support >> RapidIO support >> RapidIO + Switch drivers config defaults + * [Config] apply Cryptographic API config defaults + * [Config] apply Device Drivers >> Common Clock Framework config defaults + * [Config] apply Device Drivers >> Distributed Switch Architecture + drivers config defaults + * [Config] apply Device Drivers >> Graphics support >> Backlight & LCD + device support config defaults + * [Config] apply Device Drivers >> Graphics support >> Support for frame + buffer devices >> Bootup logo config defaults + * annotations -- update in tree annotations + * [Config] apply Bus options >> PCI support >> RapidIO support config + defaults + * [Config] CONFIG_POWER_AVS=y CONFIG_RESET_CONTROLLER=y + * [Config] apply Device Drivers >> 1-wire Bus Masters config defaults + * [Config] apply CAN Device Drivers >> Platform CAN drivers with Netlink + support config defaults + * [Config] apply Device Drivers >> Character devices >> Serial drivers + config defaults + * [Config] apply Device Drivers >> Generic Thermal sysfs driver config + defaults + * [Config] apply Device Drivers >> Character devices >> TPM Hardware + Support config defaults + * [Config] apply Device Drivers >> Character devices config defaults + * [Config] apply Device Drivers >> HID support >> USB HID support >> USB + HID transport layer config defaults + * [Config] apply Device Drivers >> HID support >> HID bus support config + defaults + * [Config] apply Device Drivers >> HID support >> USB HID support config + defaults + * annotations -- update in tree annotations + * [Config] apply Device Drivers >> GPIO Support config defaults + * [Config] update configs for apparmour update + + [ John Johansen ] + + * SAUCE: (no-up) apparmor: Sync to apparmor 3 - alpha 4 snapshot + * SAUCE: apparmor: fix unix domain sockets to be mediated on connection + - LP: #1208988 + * SAUCE: apparmor: allocate path lookup buffers during init + - LP: #1208988 + * SAUCE: (no-up) apparmor: Fix tasks not subject to, reloaded policy + - LP: #1236455 + + [ Tim Gardner ] + + * Revert "[Debian] getabis: Preface module with package name" + * [Config] Added ppc64el to getabis + * [packaging] Bump ABI for every new release + + -- Andy Whitcroft Fri, 10 Jan 2014 11:48:39 +0000 + +linux (3.13.0-1.16) trusty; urgency=low + + * First 3.13 upload. + * Release tracker + - LP: #1266852 + + -- Tim Gardner Tue, 07 Jan 2014 09:21:26 -0700 + +linux (3.13.0-0.15) trusty; urgency=low + + [ Tim Gardner ] + + * rebase to v3.13-rc7 + + [ Upstream Kernel Changes ] + + * rebase to v3.13-rc7 + + -- Tim Gardner Sun, 05 Jan 2014 06:13:33 -0700 + +linux (3.13.0-0.14) trusty; urgency=low + + [ Andy Whitcroft ] + + * rebase to 7a262d2ed9fa42fad8c4f243f8025580b58cf2f6 + + [ Tim Gardner ] + + * Remove ubuntu/dm-raid4-5 in favor of CONFIG_MD_RAID456 + * Update lttng to Version 2.4.0-rc2 + * lttng: Disabled trace_kvm_async_pf_completed + * [Config] CONFIG_IMA=y + - LP: #1244627 + + [ Upstream Kernel Changes ] + + * rebase to 7a262d2ed9fa42fad8c4f243f8025580b58cf2f6 + + -- Tim Gardner Thu, 02 Jan 2014 12:57:13 -0700 + +linux (3.13.0-0.13) trusty; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: aufs3 -- (no-up) aufs3-base.patch + * ubuntu: aufs3 -- (no-up) aufs3-mmap.patch + * ubuntu: aufs3 -- (no-up) aufs3-standalone.patch + * ubuntu: AUFS (no-squash): basic framework and update machinary + * ubuntu: AUFS -- update to 7b136a27b021da9010d8b6c101939dd298e46be7 + * ubuntu: aufs3 -- enable + * ubuntu: aufs3 -- update configs + + -- Andy Whitcroft Thu, 02 Jan 2014 09:41:02 +0000 + +linux (3.13.0-0.12) trusty; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to v3.13-rc6 + + -- Tim Gardner Tue, 31 Dec 2013 06:16:03 -0700 + +linux (3.13.0-0.11) trusty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: suspicious unlocked ->status reading and writing in ipc/sem.c + * [Config] ppc64el -- initial defconfig based -generic flavour + * [Config] initial defconfig for ppc64el + * [Config] ubuntuise ppc64el config + * [Config] ubuntuise ppc64el config part 2 + * [Config] d-i -- update empty udebs list + * [Config] ppc64el -- split extras package + + [ Anton Blanchard ] + + * SAUCE: KVM: PPC: Book3S HV: Add little-endian guest support + + [ Benjamin Herrenschmidt ] + + * SAUCE: powerpc/powernv: Add calls to support little endian + + [ Cédric Le Goater ] + + * SAUCE: KVM: PPC: Book3S: add helper routine to load guest instructions + * SAUCE: KVM: PPC: Book3S: add helper routines to detect endian order + * SAUCE: KVM: PPC: Book3S: MMIO emulation support for little endian + guests + + [ Paul E. McKenney ] + + * SAUCE: powerpc: Make 64-bit non-VMX copy_tofrom_user() bi-endian + + -- Andy Whitcroft Fri, 27 Dec 2013 16:48:55 +0000 + +linux (3.13.0-0.10) trusty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.13-rc5 + * [Config] updateconfigs following rebase to v3.13-rc5 + + [ Upstream Kernel Changes ] + + * rebase to v3.13-rc5 + - LP: #1260303 + - LP: #1260303 + - LP: #1260225 + + -- Andy Whitcroft Mon, 23 Dec 2013 12:48:28 +0000 + +linux (3.13.0-0.9) trusty; urgency=low + + [ Andy Whitcroft ] + + * [Config] d-i -- allow missing firmware + + -- Andy Whitcroft Fri, 20 Dec 2013 17:57:06 +0000 + +linux (3.13.0-0.8) trusty; urgency=low + + [ Andy Whitcroft ] + + * [Config] annotations -- first pass over entire config + * [Config] drop libunwind8-dev from Build-Depends for ppc64el + + [ Tim Gardner ] + + * [Config] Add arm64 device tree files + - LP: #1262901 + + -- Andy Whitcroft Thu, 19 Dec 2013 18:36:43 +0000 + +linux (3.13.0-0.7) trusty; urgency=low + + [ Rajesh B Prathipati ] + + * SAUCE: powerpc: Make unaligned accesses endian-safe for powerpc + + [ Tim Gardner ] + + * [Config] CONFIG_REGULATOR_S2MPS11=n for FTBS + + [ Upstream Kernel Changes ] + + * rebase to v3.13-rc4 + - LP: #1259790 + - LP: #1259437 + - LP: #1259435 + + -- Tim Gardner Fri, 13 Dec 2013 07:56:34 -0700 + +linux (3.13.0-0.6) trusty; urgency=low + + [ Paolo Pisati ] + + * [Config] armhf: arm64: VIRTIO_[BLK|MMIO|NET|CONSOLE|BALLOON]=y + * [Config] i386: amd64: VIRTIO_CONSOLE=y + + [ Tim Gardner ] + + * [Config] CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y + + -- Tim Gardner Sun, 08 Dec 2013 09:22:01 -0700 + +linux (3.13.0-0.5) trusty; urgency=low + + [ Andy Whitcroft ] + + * correct bug listing for v3.13-rc2 rebase + * [Config] ppc64el -- create linux-libc-dev + * [Debian] Improve tools version message + - LP: #1257715 + + [ Serge Hallyn ] + + * SAUCE: fork: Allow CLONE_PARENT after setns(CLONE_NEWPID)] + - LP: #1248590 + * SAUCE: vfs: Fix a regression in mounting proc + + [ Tim Gardner ] + + * [Config] Build-in ohci-pci + - LP: #1244176 + * Rebase to v3.13-rc3 + + [ Upstream Kernel Changes ] + + * Revert "Revert "fork: unify and tighten up CLONE_NEWUSER/CLONE_NEWPID + checks"" + - LP: #1248590 + + [ Upstream Kernel Changes ] + + * rebase to v3.13-rc3 + - LP: #1256840 + - LP: #1256212 + + -- Tim Gardner Sat, 07 Dec 2013 07:55:39 -0700 + +linux (3.13.0-0.4) trusty; urgency=low + + [ Tim Gardner ] + + * Rebase to v3.13-rc2 + + [ Upstream Kernel Changes ] + + * rebase to v3.13-rc2 + + -- Tim Gardner Fri, 29 Nov 2013 23:54:05 -0500 + +linux (3.13.0-0.3) trusty; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: Fix DocBook FTBS" + + [ Tim Gardner ] + + * [Debian] Re-sign modules after debug objcopy + - LP: #1253155 + * [Config] CONFIG_EXT4_USE_FOR_EXT23=y + + [ Upstream Kernel Changes ] + + * doc: fix generation of device-drivers + * rebase to b975dc3689fc6a3718ad288ce080924f9cb7e176 + + -- Tim Gardner Tue, 26 Nov 2013 12:24:42 -0700 + +linux (3.13.0-0.2) trusty; urgency=low + + [ Tim Gardner ] + + * SAUCE: Fix DocBook FTBS + + -- Tim Gardner Mon, 25 Nov 2013 13:24:15 -0700 + +linux (3.13.0-0.1) trusty; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to 7e3528c3660a2e8602abc7858b0994d611f74bc3 + + -- Tim Gardner Tue, 12 Nov 2013 07:28:53 -0700 + +linux (3.13.0-0.0) trusty; urgency=low + + * Major release bump. + + -- Andy Whitcroft Tue, 12 Nov 2013 21:37:52 +0000 + +linux (3.12.0-2.7) trusty; urgency=low + + * Fixed armhf ABI build failure. + * Release tracker + - LP: #1249477 + + -- Tim Gardner Fri, 08 Nov 2013 16:22:45 -0700 + +linux (3.12.0-2.6) trusty; urgency=low + + [ Joseph Salisbury ] + + * SAUCE: tg3: Add support for new 57786 device id. + - LP: #1242610 + + [ Tim Gardner ] + + * [Config] CONFIG_OABI_COMPAT=n + * [Config] add the wandboard to shipped dtb + - LP: #1249421 + * Release tracker + - LP: #1249477 + + -- Tim Gardner Fri, 08 Nov 2013 12:23:18 -0700 + +linux (3.12.0-2.5) trusty; urgency=low + + [ Andy Whitcroft ] + + * rebase to mainline v3.12 + * [Config] updateconfigs following rebase to v3.12 + * postinst -- improve relative symlink detection with missing files + - LP: #1248053 + * postinst -- fix unchanged link detection + * [Config] update configs following addition of apparmor fixes + + [ Anthony Wong ] + + * SAUCE: Work around broken ACPI backlight on Dell Inspiron 5537 + - LP: #1231305 + + [ John Johansen ] + + * SAUCE: (no-up) apparmor: Sync to apparmor 3 - alpha 4 snapshot + * SAUCE: apparmor: fix unix domain sockets to be mediated on connection + - LP: #1208988 + * SAUCE: apparmor: allocate path lookup buffers during init + - LP: #1208988 + + [ Tim Gardner ] + + * [Config] Remove superfluous ubuntu/lttng-modules + + [ Upstream Kernel Changes ] + + * Revert "fork: unify and tighten up CLONE_NEWUSER/CLONE_NEWPID checks" + - LP: #1248590 + + [ Upstream Kernel Changes ] + + * rebase to v3.12 + - LP: #1222850 + + [ Adam Conrad ] + * etc/getabis: Fetch arm64/generic abis as well + + -- Andy Whitcroft Wed, 06 Nov 2013 21:00:21 +0000 + +linux (3.12.0-1.3) trusty; urgency=low + + [ Andy Whitcroft ] + + * [Config] arm64 -- add arch to the configuration handlers + * [Config] arm64 -- add generic flavour + * [Config] arm64 -- default config + * [Config] arm64 -- fix up various FTBFS config options + * SAUCE: arm64: export __copy_in_user to modules + * [Config] arm64 -- disable ABI/module checks + * [Config] arm64 -- enforcer -- add arm64 to the enforcer + * [Config] arm64 -- enable udebs for arm64 + + [ Colin Watson ] + + * [Config] Clean up various udeb Provides + + [ Paolo Pisati ] + + * [Config] AHCI_IMX=y + * [Config] build imx*-wandboard dtbs + + [ Serge Hallyn ] + + * SAUCE: device_cgroup: remove can_attach + + [ Tim Gardner ] + + * rebase to v3.12-rc7 + * SAUCE: KVM: Fix modprobe failure for kvm_intel/kvm_amd + * Release tracker + - LP: #1245932 + + [ Upstream Kernel Changes ] + + * rebase to v3.12-rc7 + - LP: #1180881 + - LP: #1180881 + - LP: #1217957 + + -- Tim Gardner Sun, 27 Oct 2013 22:08:55 -0600 + +linux (3.12.0-0.2) trusty; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: (no-up) scsi: hyper-v storage -- mark as preferring READ + CAPACITY (16) at SPC-2" + * Revert "SAUCE: (no-up) scsi: hyper-v storage -- mark as VPD capable at + SPC-2" + * Revert "SAUCE: (no-up) scsi: add scsi device flag to request READ + CAPACITY (16) be preferred" + * Revert "SAUCE: (no-up) scsi: add scsi device flag to request VPD pages + be used at SPC-2" + * Revert "overlayfs: Update to v19" + * Revert "ubuntu: overlayfs v18 -- -- overlayfs: implement show_options" + * Revert "ubuntu: overlayfs v18 -- -- overlayfs: add statfs support" + * Revert "ubuntu: overlayfs v18 -- -- overlay filesystem" + * Revert "ubuntu: overlayfs v18 -- -- vfs: introduce + clone_private_mount()" + * Revert "ubuntu: overlayfs v18 -- -- vfs: export do_splice_direct() to + modules" + * Revert "ubuntu: overlayfs v18 -- -- overlay: overlay filesystem + documentation" + * ubuntu: overlayfs v20 -- overlayfs: add statfs support + * [Config] fix linux-libc-dev generation for arm64 + * [Config] fix linux-libc-dev generation for x32 + * [Config] add linux-libc-dev generation for ppc64el + + [ Erez Zadok ] + + * ubuntu: overlayfs v20 -- overlayfs: implement show_options + + [ Miklos Szeredi ] + + * ubuntu: overlayfs v20 -- vfs: add i_op->dentry_open() + * ubuntu: overlayfs v20 -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs v20 -- vfs: export __inode_permission() to modules + * ubuntu: overlayfs v20 -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs v20 -- overlay filesystem + * ubuntu: overlayfs v20 -- fs: limit filesystem stacking depth + + [ Neil Brown ] + + * ubuntu: overlayfs v20 -- overlay: overlay filesystem documentation + + [ Paolo Pisati ] + + * [Config] arm: VIRTIO_[BLK|NET|MMIO]=y + + [ Seth Forshee ] + + * SAUCE: (no-up) ACPI: Disable Windows 8 compatibility for some Lenovo + ThinkPads + - LP: #1183856 + + [ Tim Gardner ] + + * [Config] CONFIG_CRYPTO_CRCT10DIF=y, CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m + * rebase to v3.12-rc2 + * updateconfigs + * [Config] disable CONFIG_FB_VESA enforcer check + * [Config] Disable lttng for FTBS + * rebase to v3.12-rc3 + * rebase to v3.12-rc4 + * [Config] CONFIG_ANDROID=n + - LP: #1235161 + * [Config] CONFIG_L2TP_V3=y + - LP: #1235914 + * [Config] CONFIG_USB_OTG=n for all arches + * Release tracker + - LP: #1242811 + + [ Upstream Kernel Changes ] + + * scsi: hyper-v storsvc switch up to SPC-3 + + * rebase to v3.12-rc6 + - LP: #1235977 + - LP: #1235523 + - LP: #1239392 + - LP: #1227491 + + * rebase to v3.12-rc3 + - LP: #1231931 + + * rebase to v3.12-rc2 + - LP: #1213820 + - LP: #1213055 + - LP: #1198030 + + -- Tim Gardner Mon, 23 Sep 2013 07:41:07 -0600 + +linux (3.11.0-8.15) saucy; urgency=low + + [ Tim Gardner ] + + * Release tracker + - LP: #1227969 + + * Update lttng + Updated to git://git.lttng.org/lttng-modules.git 9998f5216f4641a79e158135 + Version 2.3.0+ + + [ Upstream Kernel Changes ] + + * igb: Add additional get_phy_id call for i354 devices + - LP: #1219619 + * igb: Read flow control for i350 from correct EEPROM section + - LP: #1219619 + * timekeeping: Fix HRTICK related deadlock from ntp lock changes + Required for lttng update. + + -- Tim Gardner Thu, 19 Sep 2013 07:41:49 -0600 + +linux (3.11.0-7.14) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] sort out linux-tools naming + - LP: #1205284 + * [Packaging] linux-tools: switch to common generic version helper + + [ Paolo Pisati ] + + * [Config] highbank: ecx1000: CPU_IDLE causes instabilities, disable it + + [ Tim Gardner ] + + * Release tracker + - LP: #1226160 + + [ Tony Lindgren ] + + * SAUCE: ARM: dts: Fix muxing and regulator for wl12xx on the SDIO bus + for pandaboard + + [ Upstream Kernel Changes ] + + * USB: handle LPM errors during device suspend correctly + - LP: #1011415 + * usb: don't check pm qos NO_POWER_OFF flag in usb_port_suspend() + - LP: #1011415 + * usb: Don't fail port power resume on device disconnect. + - LP: #1011415 + + [ Upstream Kernel Changes ] + + * rebase to v3.11.1 + + -- Tim Gardner Wed, 11 Sep 2013 07:30:17 -0600 + +linux (3.11.0-7.13) saucy; urgency=low + + * Release tracker + - LP: #1223545 + + [ Andy Whitcroft ] + + * SAUCE: (no-up) scsi: add scsi device flag to request VPD pages be used at SPC-2 + - LP: #1223499 + * SAUCE: (no-up) scsi: add scsi device flag to request READ CAPACITY (16) be preferred + - LP: #1223499 + * SAUCE: (no-up) scsi: hyper-v storage -- mark as VPD capable at SPC-2 + - LP: #1223499 + * SAUCE: (no-up) scsi: hyper-v storage -- mark as preferring READ CAPACITY (16) at SPC-2 + - LP: #1223499 + + [ Maximiliano Curia ] + + * SAUCE: (no-up) Only let characters through when there are active readers. + - LP: #1208740 + + [ Tim Gardner ] + + * [Debian] getabis: Commit new ABI directory, remove the old + * [Config] CONFIG_EFIVAR_FS=y + - LP: #1223195 + * [Config] CONFIG_EFI_VARS_PSTORE=m, + CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=n + * SAUCE: (no-up) USB: input: cm109.c: Convert high volume dev_err() to dev_err_ratelimited() + - LP: #1222850 + + [ Upstream Kernel Changes ] + + * Intel xhci: refactor EHCI/xHCI port switching + - LP: #1210858 + + -- Tim Gardner Tue, 10 Sep 2013 09:00:19 -0600 + +linux (3.11.0-6.12) saucy; urgency=low + + * Release tracker + - LP: #1222893 + + [ Andy Whitcroft ] + + * Revert "ubuntu: (no-squash) AUFS3 -- aufs3-standalone.patch" + * Revert "ubuntu: (no-squash) AUFS3 -- aufs3-base.patch" + * ubuntu: (no-squash) AUFS3 -- aufs3-base.patch + * ubuntu: (no-squash) AUFS3 -- aufs3-standalone.patch + - LP: #1222407 + + [ Paolo Pisati ] + + * [Config] restore mmc boot on panda + + [ Tyler Hicks ] + + * SAUCE: apparmor: Use shash crypto API interface for profile hashes + - LP: #1216294 + + [ Upstream Kernel Changes ] + + * net: calxedaxgmac: remove NETIF_F_FRAGLIST setting + * net: calxedaxgmac: read correct field in xgmac_desc_get_buf_len + * net: calxedaxgmac: fix race between xgmac_tx_complete and xgmac_tx_err + * net: calxedaxgmac: fix possible skb free before tx complete + * net: calxedaxgmac: update ring buffer tx_head after barriers + * net: calxedaxgmac: fix race with tx queue stop/wake + * net: calxedaxgmac: enable interrupts after napi_enable + * net: calxedaxgmac: fix various errors in xgmac_set_rx_mode + * net: calxedaxgmac: remove some unused statistic counters + * net: calxedaxgmac: fix rx DMA mapping API size mismatches + * net: calxedaxgmac: fix xgmac_xmit DMA mapping error handling + * mfd: rtsx: Read vendor setting from config space + - LP: #1201698 + + -- Tim Gardner Mon, 09 Sep 2013 07:21:06 -0600 + +linux (3.11.0-5.11) saucy; urgency=low + + * Release tracker + - LP: #1221886 + + [ Adam Lee ] + + * SAUCE: Bluetooth: Add support for 04ca:2007 + - LP: #1153448 + * SAUCE: Bluetooth: Add support for 105b:e065 + - LP: #1161261 + + [ Gavin Guo ] + + * SAUCE: Bluetooth: Add support for Broadcom 413c:8143 + - LP: #1166113 + + [ Upstream Kernel Changes ] + + * igb: Reset the link when EEE setting changed + - LP: #1219619 + * igb: Read register for latch_on without return value + - LP: #1219619 + * igb: Added rcu_lock to avoid race + - LP: #1219619 + * igb: don't allow SR-IOV without MSI-X + - LP: #1219619 + * igb: Update MTU so that it is always at least a standard frame size + - LP: #1219619 + * igb: Refactor of init_nvm_params + - LP: #1219619 + * igb: Refactor NVM read functions to accommodate devices with no flash + - LP: #1219619 + * igb: Add device support for flashless SKU of i210 device + - LP: #1219619 + * igb: Fix get_fw_version function for all parts + - LP: #1219619 + * igb: Add macro for size of RETA indirection table + - LP: #1219619 + * igb: Expose RSS indirection table for ethtool + - LP: #1219619 + * igb: Don't look for a PBA in the iNVM when flashless + - LP: #1219619 + * igb: Implementation of 1-sec delay for i210 devices + - LP: #1219619 + * igb: New PHY_ID for i354 device + - LP: #1219619 + * igb: M88E1543 PHY downshift implementation + - LP: #1219619 + * igb: No PHPM support in i354 devices + - LP: #1219619 + * igb: Support to get 2_5G link status for appropriate media type + - LP: #1219619 + * igb: Get speed and duplex for 1G non_copper devices + - LP: #1219619 + * igb: Implementation to report advertised/supported link on i354 devices + - LP: #1219619 + * igb: Update version number + - LP: #1219619 + * Bluetooth: Take proper tty_struct references + - LP: #1189998 + * Bluetooth: Remove the device from the list in the destructor + - LP: #1189998 + * Bluetooth: Move the tty initialization and cleanup out of open/close + - LP: #1189998 + * Bluetooth: Implement .activate, .shutdown and .carrier_raised methods + - LP: #1189998 + * Bluetooth: Fix the reference counting of tty_port + - LP: #1189998 + * Bluetooth: Purge the dlc->tx_queue to avoid circular dependency + - LP: #1189998 + + [ Wen-chien Jesse Sung ] + + * SAUCE: Bluetooth: Support for loading broadcom patchram firmware + - LP: #1065400 + * SAUCE: Bluetooth: Add support for 13d3:3388 and 13d3:3389 + - LP: #1065400 + + -- Tim Gardner Thu, 05 Sep 2013 08:06:17 -0600 + +linux (3.11.0-5.10) saucy; urgency=low + + [ Andy Whitcroft ] + + * Release tracker + - LP: #1220222 + * Revert "[Config] Fix ubuntu directoy Kbuilds" + * Revert "aufs update dropped some Kbuild files" + * Revert "ubuntu: AUFS -- follow rename of loop.h into drivers/block" + * Revert "ubuntu: AUFS -- update to + 8e503d4142c189ed6c47a2177ad2cd058e8d340e" + * Revert "ubuntu: (no-squash) AUFS3 -- aufs3-standalone.patch" + * Revert "ubuntu: (no-squash) AUFS3 -- aufs3-base.patch" + * rebase to v3.11 final + * [Config] clean up ubuntu/Kconfig and ubuntu/Makefile + * ubuntu: AUFS (no-squash): basic framework and update machinary + * ubuntu: (no-squash) AUFS3 -- aufs3-base.patch + * ubuntu: (no-squash) AUFS3 -- aufs3-standalone.patch + * ubuntu: AUFS -- update to 5ac5fe26a90a818218310e208d17688fddb07622 + * ubuntu: (no-squash) AUFS -- enable aufs + * ubuntu: AUFS -- fix remaining d_count references to use accessor + * ubuntu: lttng -- follow rename of pid_ns + * SAUCE: disable stack-protector for ARM compressed bootloader + + [ Paolo Pisati ] + + * [Config] ARM_ATAG_DTB_COMPAT=y + + [ Rob Herring ] + + * [Config] Enable KVM and virtio for armhf generic-lpae + + [ Tim Gardner ] + + * [Config] CONFIG_ARPD=y + * [Config] CONFIG_ZSWAP=y + - LP: #1215379 + + [ Upstream Kernel Changes ] + + * uvcvideo: quirk PROBE_DEF for Dell SP2008WFP monitor. + - LP: #1217957 + * ARM: use phys_addr_t for DMA zone sizes + * ARM: highbank: enable DMA zone for LPAE + * ARM: highbank: select ARCH_HAS_HOLES_MEMORYMODEL + * ARM: highbank: select required errata work-arounds + * DMA: fix AMBA PL08x compilation issue with 64bit DMA address type + * DMA: fix printk warning in AMBA PL08x DMA driver + * ARM: highbank: select ARCH_DMA_ADDR_T_64BIT for LPAE + * ARM: move outer_cache declaration out of ifdef + * ARM: highbank: avoid L2 cache smc calls when PL310 is not present + * ARM: highbank: clean-up some unused includes + * ARM: xen: only set pm function ptrs for Xen guests + + [ Upstream Kernel Changes ] + + * rebase to v3.11 + + -- Andy Whitcroft Tue, 03 Sep 2013 17:08:06 +0100 + +linux (3.11.0-4.9) saucy; urgency=low + + [ Tim Gardner ] + + * rebase to v3.11-rc7 + * Release tracker + - LP: #1216962 + + [ Upstream Kernel Changes ] + + * mwifiex: do not create AP and P2P interfaces upon driver loading + - LP: #1212720 + + -- Tim Gardner Mon, 26 Aug 2013 06:25:35 -0600 + +linux (3.11.0-3.8) saucy; urgency=low + + [ Johannes Berg ] + + * SAUCE: mac80211: ignore (E)CSA in probe response frames + - LP: #1201470 + + -- Tim Gardner Fri, 23 Aug 2013 09:47:36 -0600 + +linux (3.11.0-3.7) saucy; urgency=low + + [ Tim Gardner ] + + * SAUCE: (no-up) hv_vss_daemon -- prevent self-daemonising to allow + upstart to track + * SAUCE: (no-up) hv -- bodge hv_vss_daemon so it can use the local + linux/hyperv.h + * SAUCE: hv: Add vss daemon to Makefile + * [Debian] Add hv_vss_daemon to tools package + - LP: #1213282 + * [Config] Fix ubuntu directoy Kbuilds + - LP: #1181755 + + -- Tim Gardner Tue, 20 Aug 2013 08:34:05 -0600 + +linux (3.11.0-3.6) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] tools: conditionalise x86 and hyper-v tools sensibly + * [Config] tools: enable x86 and hyper-v + + [ John Johansen ] + + * Revert "SAUCE: (no-up) apparmor: Sync to apparmor 3 dev stable + snapshot" + * Revert "SAUCE: (no-up) apparmor: fix apparmor module status for none + root users" + * SAUCE: (no-up) apparmor: Sync to apparmor 3 - alpha 4 snapshot + + [ Joseph Salisbury ] + + * SAUCE: (no-up) intel_ips: blacklist ASUSTek G60JX laptops + - LP: #1210848 + + [ Kamal Mostafa ] + + * [debian] tools: ship 'cpupower' in linux-tools + - LP: #1158668 + * [Config] Build-dep on libpci-dev for cpu tools + - LP: #1158668 + + [ Tim Gardner ] + + * rebase to v3.11-rc6 + * Release tracker + - LP: #1213941 + + -- Tim Gardner Fri, 16 Aug 2013 07:02:07 -0600 + +linux (3.11.0-2.5) saucy; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_PM_DEBUG=y + - LP: #1210539 + * rebase to v3.11-rc5 + * Release tracker + - LP: #1211378 + + -- Tim Gardner Mon, 12 Aug 2013 06:10:39 -0600 + +linux (3.11.0-1.4) saucy; urgency=low + + [ Tim Gardner ] + + * Bump ABI when making changes to the inclusion list lest + you cause conflicts with existing installed kernel + packages. + - LP: #1210331 + + -- Tim Gardner Fri, 09 Aug 2013 03:03:51 +0100 + +linux (3.11.0-0.3) saucy; urgency=low + + [ Tim Gardner ] + + * [Config] Include rbd and kvm in the virtual inclusion list + - LP: #1206961 + * [Config] Removed obsolete inclusion list entries + + -- Tim Gardner Tue, 06 Aug 2013 08:52:14 +0100 + +linux (3.11.0-0.2) saucy; urgency=low + + [ Bruce Allan ] + + * SAUCE: (no-up) e1000e: fix I217/I218 PHY initialization flow + - LP: #1206757 + * SAUCE: (no-up) e1000e: enable support for new device IDs + - LP: #1206757 + + [ John Johansen ] + + * SAUCE: (no-up) apparmor: Sync to apparmor 3 dev stable snapshot + + [ Paolo Pisati ] + + * build vexpress a15 dtb + * [Config] disable Broadcom bcm support (ARCH_BCM) + * [Config] disable Allwinner a1x support (ARCH_SUNXI) + * [Config] disable WonderMedia WM8850 support (ARCH_WM8850) + * [Config] disable Rockchip support (ARCH_ROCKCHIP) + * [Config] disable STMicroelectronics STiH41x SOCs (ARCH_STI) + * [Config] disable TI Keystone, AM43xx and OMAP5 support + * [Config] ARM_APPENDED_DTB=y + + [ Tim Gardner ] + + * rebase to v3.11-rc4 + * overlayfs: Update to v19 + * [Config] Enable overlayfs + * SAUCE: Fix lttng compile errors + + [ Upstream Kernel Changes ] + + * rebase to v3.11-rc4 + - LP: #1163720 + - LP: #1162026 + - LP: #1195636 + - LP: #1195597 + - LP: #1180409 + - LP: #1168430 + + -- Tim Gardner Sun, 04 Aug 2013 03:45:31 -0600 + +linux (3.11.0-0.1) saucy; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to 64ccccf8525fee499625b517c0faadf784c79e93 + - LP: #1163720 + - LP: #1162026 + - LP: #1195636 + - LP: #1195597 + - LP: #1180409 + - LP: #1168430 + + -- Tim Gardner Mon, 08 Jul 2013 08:50:46 -0600 + +linux (3.10.0-2.10) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_INTEL_MEI*=m + - LP: #1196155 + * [Config] CONFIG_DEBUG_INFO=y + + [ Stephen Warren ] + + * [Config] fix Calxeda xgmac module filename + + [ Upstream Kernel Changes ] + + * Revert "serial: 8250_pci: add support for another kind of NetMos + Technology PCI 9835 Multi-I/O Controller" + - LP: #1190967 + * mfd: lpc_ich: Add support for Intel Avoton SoC + - LP: #1196658 + + -- Andy Whitcroft Fri, 05 Jul 2013 18:08:02 +0100 + +linux (3.10.0-2.9) saucy; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.10 + + [ John Johansen ] + + * Revert "SAUCE: (no-up) apparmor: Fix quieting of audit messages for + network mediation" + * Revert "SAUCE: (no-up) apparmor: Fix compile warnings" + * Revert "SAUCE: (no-up) AppArmor: basic networking rules" + * Revert "SAUCE: (no-up) apparmor: Add the ability to mediate mount" + * Revert "SAUCE: (no-up) AppArmor: Add profile introspection file to + interface" + * Revert "SAUCE: (no-up) AppArmor: Disable Add PR_{GET,SET}_NO_NEW_PRIVS + to prevent execve from granting privs" + * SAUCE: (no-up) apparmor: Sync to apparmor 3 dev stable snapshot + + [ Upstream Kernel Changes ] + + * rebase to v3.10 + + -- Andy Whitcroft Mon, 01 Jul 2013 17:42:29 +0100 + +linux (3.10.0-1.8) saucy; urgency=low + + [ Andy Whitcroft ] + + * Release Tracking Bug + - LP: #1195717 + + [ Andy Whitcroft ] + + * Revert "ubuntu: overlayfs -- follow change to do_splice_direct + interface" + * Revert "ubuntu: overlayfs -- expose do_splice_direct prototype" + * Revert "SAUCE: ubuntu: overlayfs -- ovl_path_open should not take path + reference" + * Revert "ubuntu: overlayfs -- add FS_ALIAS" + * Revert "ubuntu: overlayfs -- + overlayfs-copy-up-i_uid-i_gid-from-the-underlying-inode" + * Revert "ubuntu: overlayfs -- ovl-switch-to-inode_permission" + * Revert "ubuntu: overlayfs -- vfs-export-inode_permission-to-modules" + * Revert "ubuntu: overlayfs -- overlayfs-create-new-inode-in-ovl_link" + * Revert "ubuntu: overlayfs -- + overlayfs-fix-possible-leak-in-ovl_new_inode" + * Revert "ubuntu: overlayfs -- fs-limit-filesystem-stacking-depth" + * Revert "ubuntu: overlayfs -- overlay-overlay-filesystem-documentation" + * Revert "ubuntu: overlayfs -- overlayfs-implement-show_options" + * Revert "ubuntu: overlayfs -- overlayfs-add-statfs-support" + * Revert "ubuntu: overlayfs -- overlay filesystem" + * Revert "ubuntu: overlayfs -- vfs-introduce-clone_private_mount" + * Revert "ubuntu: overlayfs -- vfs-export-do_splice_direct-to-modules" + * Revert "ubuntu: overlayfs -- vfs-add-i_op-dentry_open" + * ubuntu: overlayfs v18 -- -- overlayfs: add statfs support + + [ Erez Zadok ] + + * ubuntu: overlayfs v18 -- -- overlayfs: implement show_options + + [ Miklos Szeredi ] + + * ubuntu: overlayfs v18 -- -- vfs: add i_op->dentry_open() + * ubuntu: overlayfs v18 -- -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs v18 -- -- vfs: export __inode_permission() to modules + * ubuntu: overlayfs v18 -- -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs v18 -- -- overlay filesystem + * ubuntu: overlayfs v18 -- -- fs: limit filesystem stacking depth + + [ Neil Brown ] + + * ubuntu: overlayfs v18 -- -- overlay: overlay filesystem documentation + + [ Tim Gardner ] + + * [Config] CONFIG_SUNRPC_DEBUG=y + - LP: #1127319 + + -- Andy Whitcroft Fri, 28 Jun 2013 10:26:52 +0100 + +linux (3.10.0-0.7) saucy; urgency=low + + [ Andy Whitcroft ] + + * autopkgtest: switch Depends: to build-essential + + -- Andy Whitcroft Tue, 25 Jun 2013 08:40:55 +0100 + +linux (3.10.0-0.6) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_ARCH_TEGRA to fix FTBFS on armhf + * SAUCE: ubuntu: overlayfs -- ovl_path_open should not take path reference + - LP: #1098378 + * ubuntu: AUFS -- update to 4f14cef47eb7c23eda7198931fbab1040866b6ee + * ubuntu: overlayfs -- expose do_splice_direct prototype + * ubuntu: overlayfs -- follow change to do_splice_direct interface + * [Config] flip CONFIG_NO_HZ_FULL_ALL off as it is overheating machines + - LP: #1192691 + + [ Stefan Bader ] + + * (d-i) Add dm-snapshot to md-modules + - LP: #1191726 + + [ Tim Gardner ] + + * Release tracker + - LP: #1194149 + * [Config] CONFIG_WIL6210=n for armhf + * [Config] d-i: Add calxedaxgmac to nic-modules + - LP: #1192358 + * [debian] Use dh_strip + - LP: #1192759 + * [Config] Enable perf for armhf + * do_tools=false when cross compiling + * [Config] CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y + - LP: #1108082 + + [ Upstream Kernel Changes ] + + * nsp32: switch reset delay to msleep() as it is tooo long + * alx: add a simple AR816x/AR817x device driver + Plucked from linux-next. replaces ubuntu/alx in favor of + 'to be merged' version in 3.11. + * rebase to v3.10-rc7 + - LP: #1189363 + + -- Tim Gardner Sat, 22 Jun 2013 18:10:31 -0600 + +linux (3.10.0-0.5) saucy; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.10-rc6 + * [Config] updateconfigs following rebase to v3.10-rc6 + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc6 + + -- Andy Whitcroft Mon, 17 Jun 2013 11:12:39 +0100 + +linux (3.10.0-0.4) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Config] updateconfigs following rebase to v3.10-rc4 + + -- Andy Whitcroft Mon, 10 Jun 2013 11:42:28 +0100 + +linux (3.10.0-0.3) saucy; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.10-rc5 + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc5 + - LP: #1186170 + + -- Andy Whitcroft Mon, 10 Jun 2013 09:23:31 +0100 + +linux (3.10.0-0.2) saucy; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.10-rc4 + * [Config] CONFIG_BINFMT_SCRIPT=y to fix booting initramfs scripts + * [Config] enable SND_PCM_DEBUG SND_PCM_XRUN_DEBUG + - LP: #1187744 + * [Config] enforce CONFIG_BINFMT_SCRIPT=y + + [ Dave Chiluk ] + + * SAUCE: ncpfs: fix rmdir returns Device or resource busy + - LP: #1035226 + + [ Tim Gardner ] + + * rebase to v3.10-rc3 + * [Config] sparc be gone + * [Config] ia64 be gone + * d-i: block-modules provides nbd-modules + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc4 + * rebase to v3.10-rc3 + + -- Tim Gardner Tue, 28 May 2013 06:16:46 -0600 + +linux (3.10.0-0.1) saucy; urgency=low + + [ Tim Gardner ] + + * UBUNTU: Disabled lttng + * UBUNTU: Disable aufs for FTBS + * UBUNTU: Disabled alx + * UBUNTU: alx: rename NETIF_F_HW_VLAN_* feature flags to NETIF_F_HW_VLAN_CTAG_* + * UBUNTU: rebase to v3.10-rc2 + * UBUNTU: SAUCE: uvcvideo: quirk PROBE_DEF for Alienware X51 OmniVision webcam + + [ Andy Whitcroft ] + + * UBUNTU: [Config] update standards version to 3.9.4.0 + * UBUNTU: [Config] squash duplicate package description (long and short) + * UBUNTU: [Config] fix up Vcs-git: to point to saucy + * UBUNTU: [Config] drop depenancy on util-linux as is Essential + * UBUNTU: [Config] drop redundant Build-Conficts: + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc2 + - LP: #1180351 + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc1 + - LP: #1172151 + - LP: #1089795 + - LP: #1167270 + - LP: #1128840 + + -- Tim Gardner Tue, 14 May 2013 13:41:07 -0600 + +linux (3.10.0-0.0) saucy; urgency=low + + * Dummy + + -- Tim Gardner Thu, 09 May 2013 20:30:40 +0100 + +linux (3.9.0-2.6) saucy; urgency=low + + [ Tim Gardner ] + + * rebase to v3.9.2 + + -- Tim Gardner Thu, 09 May 2013 20:30:40 +0100 + +linux (3.9.0-1.5) saucy; urgency=low + + [ Tim Gardner ] + + * rebase to v3.9.1 + + -- Tim Gardner Wed, 08 May 2013 12:49:45 -0400 + +linux (3.9.0-0.4) saucy; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: overlayfs -- add FS_ALIAS + + [ Tim Gardner ] + + * Added lttng + - LP: #1175784 + + -- Tim Gardner Thu, 02 May 2013 17:17:13 -0400 + +linux (3.9.0-0.3) saucy; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to v3.9 + + -- Tim Gardner Mon, 29 Apr 2013 18:20:00 -0400 + +linux (3.9.0-0.2) saucy; urgency=low + + [ Tim Gardner ] + + * Enable extras packaging for amd64/i386. + Fixes build depenencies with brittany and linux-meta. + + -- Tim Gardner Mon, 29 Apr 2013 05:37:01 -0600 + +linux (3.9.0-0.1) saucy; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc8 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc7 + - LP: #1128840 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc6 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc5 + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc4 + - LP: #1095315 + - LP: #886975 + - LP: #1086921 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc3 + - LP: #1155016 + - LP: #1103594 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc2 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc1 + - LP: #901105 + - LP: #961286 + - LP: #1011792 + - LP: #1128934 + - LP: #886975 + - LP: #978807 + + -- Tim Gardner Wed, 20 Feb 2013 09:12:39 -0700 + +linux (3.8.0-7.14) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_RCU_USER_QS=n + * [Config] CONFIG_MTD_ONENAND_SIM=n + * annotations: add annotations for CONFIG_CC_STACKPROTECTOR + + [ Upstream Kernel Changes ] + + * rebase to v3.8 + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1130111 + * UBUNTU: SAUCE: rt2x00: rt2x00pci_regbusy_read() - only print register access failure once + - LP: #1128840 + + -- Tim Gardner Mon, 18 Feb 2013 09:25:56 -0700 + +linux (3.8.0-6.13) raring; urgency=low + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1125364 + * Add ahci modules to d-i + - LP: #1124415 + + + [ Chris Wilson ] + + * SAUCE: drm/i915: Wait for pending flips to complete before tearing down + the encoders + - LP: #1097315 + + -- Tim Gardner Wed, 13 Feb 2013 12:16:48 -0700 + +linux (3.8.0-6.12) raring; urgency=low + + [Tim Gardner] + + * perf: NO_LIBPERL=1 + * Fix linux-headers dependency + * Release Tracking Bug + - LP: #1124362 + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_AUFS_EXPORT to allow nfs exports + - LP: #1121699 + + [ Daniel Vetter ] + + * SAUCE: drm/i915: write backlight harder + - LP: #954661 + + -- Tim Gardner Wed, 13 Feb 2013 10:25:11 -0700 + +linux (3.8.0-6.11) raring; urgency=low + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1122071 + * rebase to v3.8-rc7 + * Add libaudit-dev as a build dependency + * Build perf with NO_LIBPYTHON=1 to avoid a python build dependency. + + [ Leann Ogasawara ] + + * [Config] Remove CONFIG_SATA_AHCI annotation + + -- Tim Gardner Fri, 08 Feb 2013 07:41:13 -0500 + +linux (3.8.0-5.10) raring; urgency=low + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1118568 + + * Bump ABI to fix install issue with 3.8.0-4.8. + Moving drivers/ata/*ahci* to linux-image caused an + install conflict with linux-image-extras without an + ABI bump. + + [ Jan Beulich ] + + * SAUCE: xen-pciback: rate limit error messages from + xen_pcibk_enable_msi{, x}() + - LP: #1117336 + - CVE-2013-0231 + + -- Tim Gardner Thu, 07 Feb 2013 05:38:12 -0700 + +linux (3.8.0-4.9) raring; urgency=low + + [ Herton Ronaldo Krzesinski ] + + * d-i: Add mellanox ethernet drivers to nic-modules + - LP: #1015339 + + [ Joseph Salisbury ] + + * SAUCE: ACPI: Add DMI entry for Sony VGN-FW41E_H + - LP: #1113547 + + [ Kamal Mostafa ] + + * SAUCE: alx driver import script + + [ Qualcomm Atheros, Inc ] + + * SAUCE: alx: Update to heads/master + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1117673 + + * [debian] Remove dangling symlink from headers package + - LP: #1112442 + * [config] CONFIG_ALX=m + * [Config] Add alx to d-i nic-modules + * [Config] CONFIG_SATA_AHCI=m + - LP: #1056563 + + -- Leann Ogasawara Tue, 05 Feb 2013 05:54:32 -0800 + +linux (3.8.0-4.8) raring; urgency=low + + [ Allen Ibara ] + + * SAUCE: imx6: dts: Add IMX6Q AHCI support + + [ Andy Whitcroft ] + + * rebase to v3.8-rc6 + * updateconfigs following rebase to v3.8-rc6 + + [Leann Ogasawara] + + * Release Tracking Bug + - LP: #1112573 + + [ Paolo Pisati ] + + * SAUCE: imx6: enable sata clk if SATA_AHCI_PLATFORM + * [Config] SERIAL_AMBA_PL011=y (vexpress serial console) + * [Config] MMC_ARMMMCI=y (vexpress mmc) + * [Config] FB_ARMCLCD=y (vexpress framebuffer) + + [ Seth Forshee ] + + * [Config] CONFIG_MAC80211_MESSAGE_TRACING=y + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc6 + - LP: #1107477 + + -- Leann Ogasawara Fri, 01 Feb 2013 07:20:59 -0800 + +linux (3.8.0-3.7) raring; urgency=low + + [ Andy Green ] + + * SAUCE: ARM: OMAP2+: add cpu id register to MAC address helper + * SAUCE: ARM: omap2 add mac address allocation register api + * SAUCE: ARM: omap2 panda register ethernet and wlan for automatic mac + allocation + + [ Leann Ogasawara ] + + * rebase to v3.8-rc5 + * Release Tracking Bug + - LP: #1111486 + + [ Paolo Pisati ] + + * SAUCE: davinci: vpss: compilation fix + * [Config] enable TI OMAP4 support (Pandaboard/ES) + * [Config] OMAP_USB2=y (since TWL6030_USB depends on it) + * [Config] enable Freescale IMX6 support (SabreLite) + * [Config] SERIAL_IMX_CONSOLE=y + * [Config] MMC_*_IMX=y + * [Config] disable USB_SUSPEND + * [Config] USB_MXS_PHY=y + * [Config] USB_CHIPIDEA=y + * SAUCE: DTB: add support for multiple DTBs + * SAUCE: DTB: build imx6q-sabrelite + * SAUCE: DTB: build beaglexm + * SAUCE: DTB: build panda/panda es + * [Config] disable CPU_FREQ + * [Config] PANEL_TFP410=y (video DVI output) + * [Config] SND_OMAP_SOC*=y + * [Config] SND_IMX_SOC*=y + * [Config] I2C_IMX=y + * [Config] SPI_IMX=m + + [ Stefan Bader ] + + * [Config] Move 9p modules into generic package + - LP: #1107658 + + [ Tony Lindgren ] + + * SAUCE: ARM: OMAP2+: Limit omap initcalls to omap only on multiplatform + kernels + * SAUCE: ARM: OMAP2+: Use omap initcalls + * SAUCE: ARM: OMAP: Fix i2c cmdline initcall for multiplatform + * SAUCE: ARM: OMAP: Fix dmaengine init for multiplatform + * SAUCE: ARM: OMAP2+: Add multiplatform debug_ll support + * SAUCE: ARM: OMAP2+: Disable code that currently does not work with + multiplaform + * SAUCE: ARM: OMAP2+: Enable ARCH_MULTIPLATFORM support + * SAUCE: ARM: OMAP2+: Add minimal support for booting vexpress + * SAUCE: ARM: OMAP2+: Remove now obsolete uncompress.h and debug-macro.S + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc5 + - LP: #1096789 + + -- Leann Ogasawara Thu, 31 Jan 2013 06:44:52 -0800 + +linux (3.8.0-2.6) raring; urgency=low + + [ Adam Conrad ] + + * Fix up linux-tools -> SRCPKGNAME-tools rename + + [ Andy Whitcroft ] + + * [Config] re-disable CONFIG_SOUND_OSS + - LP: #1105230 + + [ Arend van Spriel ] + + * SAUCE: brcmsmac: fix tx status processing + + [Leann Ogasawara] + + * Release Tracking Bug + - LP: #1105104 + + -- Leann Ogasawara Fri, 25 Jan 2013 11:56:30 -0800 + +linux (3.8.0-1.5) raring; urgency=low + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1101235 + + [ Dudley Du ] + + * SAUCE: Input: add support for Cypress PS/2 Trackpads + - LP: #978807 + + [ Kamal Mostafa ] + + * SAUCE: Input: increase struct ps2dev cmdbuf[] to 8 bytes + * SAUCE: Input: Cypress PS/2 Trackpad simulated multitouch + * [Config] Add CONFIG_PS2_CYPRESS + + [ Tim Gardner ] + + * rebase to v3.8-rc4 + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc4 + - LP: #1095315 + - LP: #886975 + - LP: #1086921 + + -- Leann Ogasawara Thu, 17 Jan 2013 10:50:22 -0800 + +linux (3.8.0-0.4) raring; urgency=low + + [ Leann Ogasawara ] + + * [Config] Update CONFIG_TOUCHSCREEN_EGALAX build annotation + * [Config] Update CONFIG_IIO build annotation + * [Config] Update CONFIG_TOUCHSCREEN_EETI annotation + * [Config] Remove CONFIG_SPI_DW_MMIO annotation + * [Config] Remove CONFIG_SPI_PL022 annotation + * [Config] Update CONFIG_EZX_PCAP annotation + * [Config] Update CONFIG_SENSORS_AK8975 annotation + * [Config] Disable CONFIG_DRM_MGAG200 + - LP: #1042903 + + -- Leann Ogasawara Mon, 14 Jan 2013 10:01:50 -0800 + +linux (3.8.0-0.3) raring; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: (no-up) trace: add trace events for open(), exec() and + uselib()" + + [ Scott James Remnant ] + + * SAUCE: (no-up) trace: add trace events for open(), exec() and uselib() + (for v3.7+) + - LP: #1085766, #462111 + + -- Andy Whitcroft Fri, 11 Jan 2013 16:57:27 +0000 + +linux (3.8.0-0.2) raring; urgency=low + + [ Tim Gardner ] + + * [packaging] Add macro to selectively disable building perf + * [packaging] Cannot depend on universe package libaudit-dev + + -- Tim Gardner Thu, 10 Jan 2013 12:43:24 -0700 + +linux (3.8.0-0.1) raring; urgency=low + + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc3 + - LP: #1096789 + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc2 + - LP: #1082357 + - LP: #1075882 + + -- Andy Whitcroft Mon, 17 Dec 2012 10:35:09 +0000 + +linux (3.7.0-7.15) raring; urgency=low + + [ Chris J Arges ] + + * SAUCE: add eeprom_bad_csum_allow module parameter + - LP: #1070182 + + [ Leann Ogasawara ] + + * Add ceph to linux-image for virtual instances + - LP: #1063784 + + [ Serge Hallyn ] + + * SAUCE: net: dev_change_net_namespace: send a KOBJ_REMOVED/KOBJ_ADD + + [ Tim Gardner ] + + * [Config] CONFIG_SLUB_DEBUG=y + - LP: #1090308 + + [ Upstream Kernel Changes ] + + * Revert "[SCSI] sd: Implement support for WRITE SAME" + - LP: #1089818 + + -- Leann Ogasawara Wed, 12 Dec 2012 06:50:20 -0800 + +linux (3.7.0-6.14) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] annotations: all new annotations scheme including defaults + * [Configs] apply annotation updates to main configs (top section) + + [ Leann Ogasawara ] + + * Revert "SAUCE: include and for mmc_core arm + build" + * Revert "SAUCE: [arm] fixup __aeabi_uldivmod undefined build error" + * Temporarily disable module check for build + + [ Stefan Bader ] + + * ubuntu: dm-raid45: Adapt to upstream interface changes + * Re-enable build of dm-raid45 + + [ Tim Gardner ] + + * SAUCE: Moved scripts/fw-to-ihex.sh to debian/scripts/misc + * SAUCE: ACPICA: Fix ACPI mutex object allocation memory leak on error + * SAUCE: drm: Fix possible EDID memory allocation oops + * SAUCE: ttm: Fix possible _manager memory allocation oops + * SAUCE: iwlwifi: iwlagn_request_scan: Fix check for priv->scan_request + * SAUCE: i915: intel_set_mode: Reduce stack allocation from 500 bytes to + 2 pointers + + [ Tomas Hozza ] + + * SAUCE: tools: hv: Netlink source address validation allows DoS + - LP: #1084777 + - CVE-2012-5532 + + [ Upstream Kernel Changes ] + + * rebase to v3.7 + + -- Leann Ogasawara Wed, 05 Dec 2012 14:11:12 -0800 + +linux (3.7.0-5.13) raring; urgency=low + + [ Lino Sanfilippo ] + + * SAUCE: inotify, fanotify: replace fsnotify_put_group() with + fsnotify_destroy_group() + - LP: #922906 + * SAUCE: fsnotify: introduce fsnotify_get_group() + - LP: #922906 + * SAUCE: fsnotify: use reference counting for groups + - LP: #922906 + * SAUCE: fsnotify: take groups mark_lock before mark lock + - LP: #922906 + * SAUCE: fanotify: add an extra flag to mark_remove_from_mask that + indicates wheather a mark should be destroyed + - LP: #922906 + * SAUCE: fsnotify: use a mutex instead of a spinlock to protect a groups + mark list + - LP: #922906 + * SAUCE: fsnotify: pass group to fsnotify_destroy_mark() + - LP: #922906 + * SAUCE: fsnotify: introduce locked versions of fsnotify_add_mark() and + fsnotify_remove_mark() + - LP: #922906 + * SAUCE: fsnotify: dont put marks on temporary list when clearing marks + by group + - LP: #922906 + * SAUCE: fsnotify: change locking order + - LP: #922906 + + [ Tim Gardner ] + + * [Config] CONFIG_NFC_LLCP=y + * [Config] get-firmware: Filter new files through fwinfo + * [Config] CONFIG_MTD_NAND_DOCG4=m for all arches + * [Config] CONFIG_DRM_EXYNOS_HDMI=y + * [Config] CONFIG_XEN=y for all arches + * [Config] CONFIG_SND_OMAP_SOC_ZOOM2=m + * [Config] CONFIG_MMC_DW_EXYNOS=m + * [Config] CONFIG_GPIO_ADNP=m + * [Config] find-obsolete-firmware: Use correct path + * rebase to v3.7-rc8 + - LP: #1084640 + + [ Upstream Kernel Changes ] + + * Revert "VFS: don't do protected {sym,hard}links by default" + - LP: #1084192 + + -- Tim Gardner Wed, 28 Nov 2012 16:07:08 +0000 + +linux (3.7.0-4.12) raring; urgency=low + + [ Tim Gardner ] + + * Revert "[Config] Use -j1 for headers_install" + * Revert "[Config] install-arch-headers needs a valid config" + Strayed into the weeds in search of the root cause of the periodic + build failure. + Fixes powerpc FTBS introduced in -4.11. + * [Config] hmake -j1 + The kernel makefile appears to have parallel dependency + problems for the install_headers target. This appears to be root + cause for a periodic build failure on N-way machines. + + -- Leann Ogasawara Tue, 27 Nov 2012 12:33:06 -0800 + +linux (3.7.0-4.11) raring; urgency=low + + [ Tim Gardner ] + + * [Config] Use -j1 for headers_install + Also fixes a powerpc FTBS introduced by + "[Config] install-arch-headers needs a valid config". + + -- Tim Gardner Tue, 27 Nov 2012 10:19:30 -0700 + +linux (3.7.0-4.10) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] add rebuild-test support for autopkgtest + - LP: #1081500 + * [tests] move build tests out of the way + - LP: #1081500 + * [tests] add an autopkgtest rebuild test + - LP: #1081500 + + [ Tim Gardner ] + + * rebase to v3.7-rc7 + * SAUCE: Remove emi62 files duplicated in linux-firmware + * SAUCE: Remove sb16 files duplicated in linux-firmware + * SAUCE: Remove whiteheat files duplicated in linux-firmware + * SAUCE: Remove yamaha files duplicated in linux-firmware + * SAUCE: Remove dsp56k files used only by m68k + * SAUCE: firmware: Remove last vestiges of dabusb + * SAUCE: Remove vicam files duplicated in linux-firmware + * [Config] install-arch-headers needs a valid config + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc7 + - LP: #1076840 + - LP: #1081466 + + -- Leann Ogasawara Wed, 21 Nov 2012 06:07:23 -0800 + +linux (3.7.0-3.9) raring; urgency=low + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_X86_CPUFREQ_NFORCE2=y + - LP: #1079900 + * Add nfsv3 to nfs-modules udeb + + [ Paolo Pisati ] + + * [Config] SND_OMAP_SOC*=y + - LP: #1019321 + + [ Stefan Bader ] + + * SAUCE: (no-up) xen/netfront: handle compound page fragments on transmit + - LP: #1078926 + + [ Tim Gardner ] + + * Revert "SAUCE: SECCOMP: audit: always report seccomp violations" + - LP: #1079469 + * Revert "SAUCE: omap3 clocks .dev_id = NULL" + * rebase to v3.7-rc6 + * SAUCE: script to detect obsolete firmware + * SAUCE: Remove yam files duplicated in linux-firmware + * SAUCE: Remove tehuti files duplicated in linux-firmware + * SAUCE: Remove matrox files duplicated in linux-firmware + * SAUCE: Remove cxgb3 files duplicated in linux-firmware + * SAUCE: Remove r128 files duplicated in linux-firmware + * SAUCE: Remove acenic files duplicated in linux-firmware + * SAUCE: Remove keyspan files duplicated in linux-firmware + * SAUCE: Remove sun files duplicated in linux-firmware + * SAUCE: Remove radeon files duplicated in linux-firmware + * SAUCE: Update bnx2x firmware to 7.8.2.0 + * [Config] generic.inclusion-list: econet has disappeared + + [ Upstream Kernel Changes ] + + * seccomp: forcing auditing of kill condition + - LP: #1079469 + * rebase to v3.7-rc6 + + -- Leann Ogasawara Tue, 20 Nov 2012 12:28:55 -0800 + +linux (3.7.0-2.8) raring; urgency=low + + [ Andy Whitcroft ] + + * Revert "overlayfs: disable until FTBS is fixed" + * Revert "ubuntu: overlayfs" + * Revert "ubuntu: AUFS" + * ubuntu: overlayfs -- overlayfs: add statfs support + * ubuntu: overlayfs -- ovl: switch to __inode_permission() + * ubuntu: overlayfs -- overlayfs: copy up i_uid/i_gid from the underlying + inode + - LP: #944386 + * ubuntu: AUFS (no-squash): basic framework and update machinary + * ubuntu: AUFS (no-squash) -- aufs3-base.patch + * ubuntu: AUFS (no-squash) -- aufs3-standalone.patch + * ubuntu: AUFS: aufs-update -- follow the uapi header changes + * ubuntu: AUFS -- update to f2873474324d0a31af4340554b9715f51331bc7f + * ubuntu: AUFS (no-squash) -- reenable + - LP: #1079193 + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: add i_op->dentry_open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + * ubuntu: overlayfs -- vfs: export __inode_permission() to modules + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Robin Dong ] + + * ubuntu: overlayfs -- overlayfs: fix possible leak in ovl_new_inode + * ubuntu: overlayfs -- overlayfs: create new inode in ovl_link + + -- Andy Whitcroft Thu, 15 Nov 2012 13:35:12 +0000 + +linux (3.7.0-1.7) raring; urgency=low + + [ Tim Gardner ] + + * [Config] Drop dependency on libaudit-dev + Its a universe package which causes an FTBS on the builders. + libaudit-dev is not strictly required for the perf tools build. + + -- Tim Gardner Wed, 14 Nov 2012 10:08:13 -0700 + +linux (3.7.0-1.6) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] enforce -- switch CONFIG_NVRAM to more readable form + * [Config] better encode the CONFIG_NVRAM constaint + * enforcer -- fix debugging output + + [ Ben Collins ] + + * [Config] Add custom_override rule to allow for alternate kernel + file/install + * [Config] Use SRCPKGNAME as prefix for indep linux headers package + + [ Tim Gardner ] + + * [Config] Dropped armel + * Drop highbank from ABI fetch list + * [Config] Use dh_prep instead of 'dh_clean -k' + * [Config] Build depend on libaudit-dev, libunwind8-dev for tools + * [Config] Document binary-indep dependency chain + * rebase to v3.7-rc5 + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc5 + + -- Tim Gardner Tue, 13 Nov 2012 07:13:37 -0500 + +linux (3.7.0-0.5) raring; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_AMD_IOMMU_V2=m + - LP: #1071520 + * [Config] CONFIG_MTD_ONENAND_SIM=n for armel + Fixes FTBS + + -- Tim Gardner Thu, 08 Nov 2012 15:45:39 -0500 + +linux (3.7.0-0.4) raring; urgency=low + + [ Ben Collins ] + + * [Config] Update enforce rule for CONFIG_NVRAM to better suit flavours + + [ Tim Gardner ] + + * [Config] do_tools=false for arm + + -- Tim Gardner Thu, 08 Nov 2012 05:39:51 -0700 + +linux (3.7.0-0.3) raring; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_DRM_EXYNOS_HDMI=n for armhf + * [Config] CONFIG_MTD_NAND_DOCG4=n for armel/armhf + * [Config] Drop highbank harder + + -- Tim Gardner Wed, 07 Nov 2012 18:11:45 +0000 + +linux (3.7.0-0.2) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] add fs/udf to linux-image to support DVD/CD formats in virtual + instances + - LP: #1066921 + * [Config] drop highbank builds + + [ Jeremy Kerr ] + + * SAUCE: efivarfs: Implement exclusive access for {get, set}_variable + - LP: #1063061 + + [ Leann Ogasawara ] + + * Reinstate dropped.txt from Ubuntu-3.7.0-0.1-rc1 + + [ Tim Gardner ] + + * [Config] Dropped powerpc/ppc64 in favour of the community kernel + * [Config] CONFIG_MODULE_SIG=y for amd64,i386, and highbank + * rebase to v3.7-rc4 + * SAUCE: MODSIGN: Emit error for incorrectly signed module + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc4 + + -- Tim Gardner Mon, 05 Nov 2012 05:35:41 -0700 + +linux (3.7.0-0.1) raring; urgency=low + + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc3 + - LP: #1056078 + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc2 + - LP: #1060729 + - LP: #1059523 + - LP: #1006690 + - LP: #1049623 + - LP: #1046512 + - LP: #1052499 + - LP: #1037642 + - LP: #559939 + - LP: #1052460 + - LP: #939161 + - LP: #1046734 + + -- Tim Gardner Tue, 02 Oct 2012 08:13:07 -0600 + +linux (3.6.0-0.1) UNRELEASED; urgency=low + + + [ Upstream Kernel Changes ] + + * rebase to v3.6 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc7 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc6 + - LP: #1000424 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc5 + - LP: #1040077 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc4 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc3 + - LP: #1038651 + - LP: #1034779 + + -- Leann Ogasawara Tue, 24 Jul 2012 06:37:09 -0700 + +linux (3.5.0-6.6) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION enable IPv6 + experimental features + * SAUCE: highbank -- export clock functions for modules + * [Config] highbank -- reenable CONFIG_TOUCHSCREEN_W90X900 + * [Config] highbank -- renenable CONFIG_SERIO_AMBAKMI + * [Config] highbank -- reenable CONFIG_RFKILL_GPIO + * [Config] highbank -- reenable CONFIG_MMC_SDHCI_PXAV3 + * [Config] highbank -- reenable CONFIG_MMC_SDHCI_PXAV3 + * [Config] highbank -- reenable CONFIG_KEYBOARD_SAMSUNG + * [Config] highbank -- reenable CONFIG_FB_ARMCLCD + * [Config] highbank -- reenable CONFIG_DW_DMAC + * [Config] highbank -- reenable CONFIG_USB_R8A66597_HCD + * [Config] highbank -- reenable CONFIG_USB_MV_UDC + * [Config] highbank -- reenable CONFIG_USB_DWC3 + * [Config] highbank -- reenable CONFIG_SATA_MV + * [Config] highbank -- reenable CONFIG_PATA_ARASAN_CF + * [Config] highbank -- CONFIG_CAN_C_CAN_PLATFORM + * [Config] highbank -- reenable CONFIG_MMC_ARMMMCI + * [Config] highbank -- reenable CONFIG_SERIAL_AMBA_PL010 + * [Config] highbank -- reenable CONFIG_ATMEL_PWM + * [Config] highbank -- enable CONFIG_CHECKPOINT_RESTORE + * [Config] highbank -- enable CONFIG_EXPERT + * [Config] highbank -- enable CONFIG_CHECKPOINT_RESTORE + * [Config] enable CONFIG_USB_DYNAMIC_MINORS + * [Config] enable CONFIG_USB_EHCI_TT_NEWSCHED + * [Config] enable CONFIG_USB_ETH_EEM + * [Config] enable CONFIG_USB_HCD_BCMA/CONFIG_USB_HCD_SSB + * [Config] disable CONFIG_USB_M66592 + * [Config] enable CONFIG_USB_NET2272 + * [Config] enable CONFIG_USB_R8A66597 + * [Config] annotate: CONFIG_USB_OMAP not required for our h/w + * [Config] set CONFIG_USB_MUSB_HDRC=m for omap + * [Config] annotate: CONFIG_USB_G_MULTI fix rule + * [Config] CONFIG_USB_GPIO_VBUS=m for OMAP + * [Config] Enable CONFIG_DRM_AST/_CIRRUS_QEMU/_MGAG200 + * [Config] sync configuration armhf omap -> armel omap + * [Config] annotate: CONFIG_IIO triggers build failures on OMAP4 + * [Config] disable CONFIG_OMAP_IOVMM is deprecated + + [ Bryan Wu ] + + * [Config] change default IO scheduler from CFQ to Deadline + + [ Leann Ogasawara ] + + * Revert "[Config] Temporarily disable CONFIG_MV643XX_ETH on powerpc" + * [Config] Disable CONFIG_MOUSE_INPORT + + [ Tim Gardner ] + + * SAUCE: firmware: Update bnx2x to current firmware version 7.2.51 + * [Config] Add bnx2x firmware to nic-modules udeb + * SAUCE: Add script to convert firmware to ihex format + * SAUCE: firmware: Upgrade bnx2 to current versions + * [Config] Add tigon firmware to nic-modules udeb + * [Config] CONFIG_EARLY_PRINTK_DBGP=y + - LP: #1026761 + * SAUCE: Remove redundant cis firmware + * SAUCE: Remove redundant emi26 firmware + * SAUCE: Remove redundant ttusb-budget firmware + * SAUCE: Remove redundant sun/cassini firmware + * SAUCE: Remove redundant ositech/Xilinx7OD firmware + * SAUCE: Remove redundant 3com/typhoon.bin firmware + * SAUCE: Remove redundant yamaha/ds1 firmware + * SAUCE: Remove redundant keyspan_pda firmware + * rebase to v3.5 + + [ Upstream Kernel Changes ] + + * rebase to v3.5 + - LP: #1027828 + + -- Leann Ogasawara Mon, 23 Jul 2012 05:57:04 -0700 + +linux (3.5.0-5.5) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Config] annotations: initial import of configuration annotations + + [ Bryan Wu ] + + * [Config] enforcer -- add CONFIG_I2C_DESIGNWARE_PLATFORM enforce checker + + [ Leann Ogasawara ] + + * Rebase to v3.5-rc7 + + [ Manoj Iyer ] + + * SAUCE: Bluetooth: btusb: Add vendor specific ID (0a5c:21f4) BCM20702A0 + - LP: #1010281 + + [ Tim Gardner ] + + * [Config] enable CONFIG_I2C_HELPER_AUTO for all flavours as policy + expects + * [Config] CONFIG_I2O_CONFIG_OLD_IOCTL=n + * [Config] CONFIG_BRIDGE_EBT_ULOG=n + * [Config] CONFIG_IP_NF_QUEUE=n + * [Config] CONFIG_MTD_DOC2000=n + * [Config] CONFIG_PRINT_QUOTA_WARNING=n + * [Config] CONFIG_PRISM54=n + * [Config] CONFIG_SCx200_I2C=n + * [Config] CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc7 + + -- Leann Ogasawara Mon, 16 Jul 2012 15:38:41 -0700 + +linux (3.5.0-4.4) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] getabis should be extracting all packages + - LP: #1021174 + * [Config] getabis -- series uses linux-image-extra + - LP: #1021174 + * rebase to v3.5-rc6 + + [ Bryan Wu ] + + * [Config] built-in CONFIG_MICREL_PHY as other PHY drivers for all + flavours + * [Config] sync CONFIG_MOUSE_PS2_ config for all flavours + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_RT2800USB_RT35XX and CONFIG_RT2800USB_RT53XX + - LP: #1019561 + + [ Paolo Pisati ] + + * [Config] SND_OMAP_SOC, SND_OMAP_SOC_MCBSP and SND_OMAP_SOC_OMAP3_BEAGLE =y + - LP: #1019321 + + [ Stefan Bader ] + + * SAUCE: (pre-up) net: dont use __netdev_alloc_skb for bounce buffer + - LP: #1018456 + * (config) Disable ACPI_PROCFS_POWER + + [ Tim Gardner ] + + * [Config] CONFIG_ACPI_BGRT=y + * Extract firmware module info during getabi + - LP: #1021174 + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc6 + + -- Leann Ogasawara Mon, 09 Jul 2012 08:50:20 -0700 + +linux (3.5.0-3.3) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_MEMTEST=y + - LP: #1004535 + * [Config] config-check: add support for a cut operation + * [Config] enforcer -- switch to cut where appropriate + + [ Leann Ogasawara ] + + * Rebase to v3.5-rc5 + * [Config] Updateconfigs after rebase to v3.5-rc5 + + [ Luis Henriques ] + + * SAUCE: ocfs2: Fix NULL pointer dereferrence in + __ocfs2_change_file_space + - LP: #1006012 + + [ Seth Forshee ] + + * SAUCE: (drop after 3.5) drm/i915: ignore pipe select bit when checking + for LVDS register initialization + - LP: #1012800 + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc5 + - LP: #1013183 + - LP: #1017017 + - LP: #884652 + + -- Leann Ogasawara Mon, 02 Jul 2012 06:41:58 -0700 + +linux (3.5.0-2.2) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.5-rc4 + + [ Arend van Spriel ] + + * SAUCE: (drop after 3.5) brcmsmac: fix NULL pointer crash in + brcms_c_regd_init() + - LP: #950320 + + [ Bryan Wu ] + + * [Config] Sync CONFIG_CGROUP_MEM_RES_CTLR_SWAP for ARM + + [ Chris J Arges ] + + * PACKAGING: add .gnu_debuglink sections to .ko files + - LP: #669641 + + [ Leann Ogasawara ] + + * d-i: Add hid-generic to input-modules + - LP: #1017879 + + [ Ming Lei ] + + * SAUCE: Revert "mmc: omap_hsmmc: Enable Auto CMD12" + - LP: #1017717, #225 + + [ Paolo Pisati ] + + * SAUCE: Revert "Fix OMAP EHCI suspend/resume failure (i693)" + - LP: #1017718 + * [Config] Disable generic USB_EHCI_HCD_PLATFORM on omap3 + + [ Seth Forshee ] + + * SAUCE: (drop after 3.5) brcm80211: smac: don't set up tx power limits + during initialization + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: always set channel specified + by mac80211 + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: remove unused code for 40MHz + channels + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: clean up channel.c + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: inform mac80211 of the X2 + regulatory domain + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: enable/disable radio on + regulatory updates + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: use mac80211 channel data for + tx power limits + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: don't validate channels + against internal regulatory data + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: use current regulatory domain + when checking whether OFDM is allowed + - LP: #950320 + + [ Tim Gardner ] + + * [Config] Enable CONFIG_CGROUPS for highbank + - LP: #1014692 + * [Config] FB_OMAP*=y and PANEL_TFP410=y + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc4 + + -- Leann Ogasawara Tue, 26 Jun 2012 06:21:05 -0700 + +linux (3.5.0-1.1) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Config] highbank -- enable CONFIG_RFKILL=y and CONFIG_CAN=m + + [ Leann Ogasawara ] + + * Rebase to v3.5-rc1 + * [Config] Remove USB_DEVICEFS from the config enforcer + * [Config] Updateconfigs after rebase to v3.5-rc1 + * [Config] Temporarily disable CONFIG_MACH_NOKIA_RX51 on arm + * [Config] Temporarily disable CONFIG_TOUCHSCREEN_EETI on arm + * [Config] Temporarily disable CONFIG_TOUCHSCREEN_EGALAX on arm + * [Config] Temporarily disable CONFIG_EZX_PCAP on arm + * [Config] Temporarily disable CONFIG_LIS3L02DQ on arm + * [Config] Temporarily disable CONFIG_TI_CPSW on arm + * [Config] Temporarily disable CONFIG_GPIO_EM on arm + * [Config] Temporarily disable CONFIG_SERIAL_8250_EM on armhf + * [Config] Temporarily disable CONFIG_STMMAC_ETH on armhf + * [Config] Temporarily disable CONFIG_HW_RANDOM_ATMEL on armhf + * Rebase to v3.5-rc2 + * [Config] Updateconfigs after rebase to v3.5-rc2 + * [Config] Temporarily disable CONFIG_MV643XX_ETH on powerpc + * Rebase to v3.5-rc3 + * [Config] Updateconfigs after rebase to v3.5-rc3 + + [ Paul Mundt ] + + * SAUCE: fix bug.h's inclusion of kernel.h + + [ Stefan Bader ] + + * SAUCE: Fix compile failures of dm-raid45 + * [Config] Enable dm-raid45 + * Move dependency on crda to extra package + - LP: #657901 + * SAUCE: Mask CR4 writes on older Xen hypervisors + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc3 + - LP: #993162 + - LP: #925577 + * rebase to v3.5-rc2 + * rebase to v3.5-rc1 + - LP: #955892 + - LP: #978038 + - LP: #987371 + - LP: #929545 + - LP: #942316 + - LP: #903853 + + -- Leann Ogasawara Fri, 08 Jun 2012 14:28:46 -0700 + +linux (3.4.0-5.11) quantal-proposed; urgency=low + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_ARM_LPAE + - LP: #1009061 + + [ Oleksij Rempel ] + + * SAUCE: b43: do not call ieee80211_unregister_hw if we are not registred + - LP: #1008905 + + [ Paolo Pisati ] + + * [Config] omap3: MFD_OMAP_USB_HOST is usb host in omap2+. + - LP: #1009061 + + -- Leann Ogasawara Tue, 05 Jun 2012 08:06:28 -0700 + +linux (3.4.0-4.10) quantal; urgency=low + + [ Leann Ogasawara ] + + * Temporarily disable ABI and module check + + -- Leann Ogasawara Mon, 04 Jun 2012 20:27:31 -0700 + +linux (3.4.0-4.9) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] fix config split to avoid the shared config + * [Config] updateconfigs following split config fix + * [Config] linux-image-extras needs full postinst + * [Config] CONFIG_BLK_DEV_NVME commonise across architectures + * [Config] CONFIG_HP_WATCHDOG enable as module + * [Config] CONFIG_PDC_ADMA is not boot essential + * [Config] CONFIG_XEN_ACPI_PROCESSOR should be enabled on x86 + * [Config] CONFIG_VT6655/CONFIG_VT6656=m + * [Config] CONFIG_TRANZPORT=m commonise + * [Config] CONFIG_R3964=m commonise + * [Config] CONFIG_SCSI_DH=m commonise + * [Config] CONFIG_SCSI_IBMVSCSIS=m commonise + * [Config] CONFIG_AMD_PHY=y phys are not autoloadable + * [Config] CONFIG_SCSI_QLA_ISCSI=m commonise + * [Config] CONFIG_SCSI_SPI_ATTR=m commonise + * [Config] CONFIG_USB_SN9C102 is deprecated disable + * [Config] CONFIG_USB_SI470X=m commonise + * [Config] CONFIG_USB_ET61X251=m commonise + * [Config] CONFIG_RTS_PSTOR=m commonise + * [Config] CONFIG_SCANLOG=m commonise + * [Config] CONFIG_SCSI_SYM53C8XX_2=m commonise + * [Config] CONFIG_SM_FTL=m commonise + * [Config] CONFIG_SOLO6X10=m commonise + * [Config] CONFIG_SND_PCM_OSS=n using pulseaudio emulation instead + * [Config] CONFIG_SPI_DESIGNWARE=m commonise + * [Config] CONFIG_SPI_SPIDEV=m commonise + * [Config] CONFIG_TABLET_USB_WACOM=m commonise + * [Config] CONFIG_TPS65010=m commonise + * [Config] CONFIG_STE10XP=y commonise + * [Config] CONFIG_X25_ASY=m commonise + * [Config] CONFIG_USB_MON=m commonise + * [Config] CONFIG_VME_BUS=m commonise + * [Config] CONFIG_W35UND=m commonise + * [Config] -CONFIG_TCG_TPM=y commonise + * [Config] highbank -- commonise filesystems + * [Config] highbank -- commonise subsystems + * [Config] highbank -- commonise network protocols + * [Config] highbank -- commonise input drivers + * [Config] highbank -- commonise CRYPTO options + * [Config] highbank -- commonise HID options + * [Config] highbank -- commonise sensors options + * [Config] highbank -- commonise EXPORTFS/FHANDLE + * [Config] highbank -- commonise CONFIG_CRYPTO_LZO + * [Config] highbank -- commonise ENCRYPTED_KEYS + * [Config] highbank -- commonise CONFIG_ATALK + * [Config] highbank -- commonise INET/INET6 + * [Config] highbank -- commonise NLS + * [Config] highbank -- commonise BLK/CHR + * [Config] highbank -- CONFIG_EXT2_FS=y boot essential on highbank + * [Config] highbank -- commonise INET/INET6 part 2 + * [Config] highbank -- commonise PHY settings + * [Config] highbank -- commonise CRC settings + * [Config] highbank -- commonise BINFMT settings + * [Config] highbank -- commonise DM settings + * [Config] highbank -- commonise RTC_DRV settings + * [Config] highbank -- commonise KEYBOARD/MOUSE settings + * [Config] highbank -- commonise USB settings + * [Config] highbank -- commonise GPIO settings + * [Config] highbank -- commonise I2C settings + * [Config] highbank -- commonise numerous subsystem selectors + * [Config] highbank -- commonise A-C modules missmatches + * [Config] highbank -- commonise D-F modules missmatches + * [Config] CONFIG_AUDIT_LOGINUID_IMMUTABLE incompatible with upstart + * [Config] highbank -- commonise G-I modules missmatches + * [Config] highbank -- commonise J-L modules missmatches + * [Config] highbank -- commonise M modules missmatches + * [Config] highbank -- commonise N-P modules missmatches + * [Config] highbank -- commonise Q-R modules missmatches + * [Config] highbank -- commonise S modules missmatches -- part 1 + * [Config] highbank -- commonise S modules missmatches -- part 2 + * [Config] highbank -- commonise T modules missmatches + * [Config] highbank -- commonise U-Z modules missmatches + + [ Ike Panhc ] + + * [Config] add highbank flavour + - LP: #1000831 + + [ Mark Langsdorf ] + + * SAUCE: arm highbank: add support for pl320-ipc driver + - LP: #1000831 + + [ Rob Herring ] + + * SAUCE: input: add a key driver for highbank + - LP: #1000831 + * SAUCE: ARM: highbank: Add smc calls to enable/disable the L2 + - LP: #1000831 + * SAUCE: force DMA buffers to non-bufferable on highbank + - LP: #1000831 + * SAUCE: net: calxedaxgmac: fix net timeout recovery + - LP: #1000831 + + [ Tim Gardner ] + + * [Config] CONFIG_IWLWIFI_EXPERIMENTAL_MFP=n + * [Config] CONFIG_PCI_REALLOC_ENABLE_AUTO=y + * [Config] CONFIG_CIFS_EXPERIMENTAL has disappeared + * [Config] Homogenize CIFS configs across all arches + * [Config] armhf should not be skipabi or skipmodules + - LP: #1006913 + + -- Leann Ogasawara Mon, 04 Jun 2012 05:52:49 -0700 + +linux (3.4.0-3.8) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] include include/generated/compile.h + - LP: #942569 + * [Config] fix up postinst to ensure we know which error is which + - LP: #1002388 + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: async_populate_rootfs: fix build warnings + - LP: #1003417 + + [ John Johansen ] + + * Revert "SAUCE: AppArmor: Add the ability to mediate mount" + * SAUCE: apparmor: Add the ability to mediate mount + * SAUCE: AppArmor: basic networking rules + * SAUCE: apparmor: fix profile lookup for unconfined + - LP: #978038, #987371 + * SAUCE: apparmor: fix long path failure due to disconnected path + - LP: #955892 + + [ Mario Limonciello ] + + * SAUCE: dell-laptop: rfkill blacklist Dell XPS 13z, 15 + - LP: #901410 + + [ Stefan Bader ] + + * (config) Built-in xen-acpi-processor + + [ Tim Gardner ] + + * [Config] CONFIG_NET_DSA=m + - LP: #1004148 + * [Config] Ensure CONFIG_XEN_ACPI_PROCESSOR=y for amd64 + + -- Leann Ogasawara Fri, 25 May 2012 11:38:33 -0700 + +linux (3.4.0-3.7) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] drop the virtual flavour in favour of a split generic et al + * [Config] enforcer -- drop IDLE enforcement + * [Config] enable CONFIG_SCSI_VIRTIO=m for amd64 + * [Config] updateconfigs following removal of -virtual + + [ Leann Ogasawara ] + + * Rebase to v3.4 + + [ Seth Forshee ] + + * [Config] disable CONFIG_B43_BCMA_EXTRA + + [ Tim Gardner ] + + * [Config] Check for extras when building udebs + * [Config] Collapsed generic-pae into generic [i386] + + [ Upstream Kernel Changes ] + + * rebase to v3.4 + + -- Leann Ogasawara Mon, 21 May 2012 07:23:47 -0700 + +linux (3.4.0-2.6) quantal; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: overlayfs -- overlayfs: update touch_atime() usage" + * Revert "ubuntu: overlayfs -- overlayfs: switch from d_alloc_root() to + d_make_root()" + * Revert "ubuntu: overlayfs -- overlayfs: follow header cleanup" + * Revert "ubuntu: overlayfs -- overlayfs: apply device cgroup and + security permissions to overlay files" + * Revert "ubuntu: overlayfs -- fs: limit filesystem stacking depth" + * Revert "ubuntu: overlayfs -- overlay: overlay filesystem documentation" + * Revert "ubuntu: overlayfs -- overlayfs: implement show_options" + * Revert "ubuntu: overlayfs -- overlayfs: add statfs support" + * Revert "ubuntu: overlayfs -- overlay filesystem" + * Revert "ubuntu: overlayfs -- vfs: introduce clone_private_mount()" + * Revert "ubuntu: overlayfs -- vfs: export do_splice_direct() to modules" + * Revert "ubuntu: overlayfs -- vfs: add i_op->open()" + * Revert "ubuntu: overlayfs -- vfs: pass struct path to __dentry_open()" + * ubuntu: overlayfs -- overlayfs: add statfs support + * ubuntu: overlayfs -- inode_only_permission: export inode level + permissions checks + * ubuntu: overlayfs -- overlayfs: switch to use inode_only_permissions + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: pass struct path to __dentry_open() + * ubuntu: overlayfs -- vfs: add i_op->open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Robin Dong ] + + * ubuntu: overlayfs -- overlayfs: fix possible leak in ovl_new_inode + * ubuntu: overlayfs -- overlayfs: create new inode in ovl_link + + [ Tim Gardner ] + + * [Config] perarch and indep tools builds need separate build directories + * Prevent upgrading a non-PAE CPU + * perf is not parallel build safe + + -- Leann Ogasawara Wed, 16 May 2012 08:43:18 -0700 + +linux (3.4.0-2.5) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] perarch and indep tools builds need separate build directories + + [ Tim Gardner ] + + * Prevent upgrading a non-PAE CPU + * [Config] build debug + * [Config] perf tools are not parallel build safe + + -- Leann Ogasawara Tue, 15 May 2012 11:37:53 -0700 + +linux (3.4.0-2.4) quantal; urgency=low + + [ Leann Ogasawara ] + + * Revert "SAUCE: fsam7400: use UMH_WAIT_PROC consistently" + * Revert "ubuntu: fsam7400 select CHECK_SIGNATURE and depend on X86" + * Revert "ubuntu: fsam7400: Depend on CHECK_SIGNATURE" + * Revert "ubuntu: fsam7400 -- Cleanup Makefile" + * Revert "ubuntu: fsam7400 -- kill switch for Fujitsu Siemens Amilo M + 7400" + * Revert "ubuntu: omnibook: fix source file newline" + * Revert "ubuntu: omnibook -- update BOM" + * Revert "SAUCE: Make CONFIG_{OMNIBOOK, AVERATEC_5100P, PACKARDBELL_E5} + depend on X86" + * Revert "ubuntu: omnibook -- Added missing BOM file" + * Revert "ubuntu: omnibook -- support Toshiba (HP) netbooks" + * Revert "ubuntu: nx-emu - i386: mmap randomization for executable + mappings" + * Revert "SAUCE: disable_nx should not be in __cpuinitdata section for + X86_32" + * Revert "ubuntu: nx-emu - i386: NX emulation" + * Revert "ubuntu: rfkill drivers -- version 1.3" + * Temporarily disable module check + * [Config] Remove CONFIG_FSAM7400 + * [Config] Remove CONFIG_OMNIBOOK + * [Config] Update configs + * Rebase to v3.4-rc7 + * SAUCE: genirq: export handle_edge_irq() and irq_to_desc() + + [ Tim Gardner ] + + * Updated generic-pae description + * Rebase to v3.4-rc6 + * install-tools depends on build targets + + [ Upstream Kernel Changes ] + + * kconfig: in debug mode some 0 length message prints occur + * rebase to v3.4-rc7 + * rebase to v3.3-rc6 + + -- Leann Ogasawara Mon, 14 May 2012 08:22:56 -0700 + +linux (3.4.0-1.3) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] control.stub is an intermediate product not a dependancy + - LP: #992414 + + [ Leann Ogasawara ] + + * remove i386 generic from getabis + + [ Upstream Kernel Changes ] + + * (pre-stable) b43: only reload config after successful initialization + - LP: #950295 + + -- Leann Ogasawara Wed, 02 May 2012 09:48:14 -0700 + +linux (3.4.0-1.2) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] add build depends for flex, bison and pkg-config + + -- Andy Whitcroft Tue, 01 May 2012 13:15:41 +0100 + +linux (3.4.0-1.1) quantal; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: overlayfs -- overlayfs: apply device cgroup and security + permissions to overlay files + - LP: #915941, #918212 + - CVE-2012-0055 + + [ Leann Ogasawara ] + + * Open Q + * Rebase to v3.4-rc5 + * [Config] Temporarily disable CONFIG_TOUCHSCREEN_EETI on arm + * [Config] Temporarily disable CONFIG_TOUCHSCREEN_EGALAX on arm + * [Config] Temporarily disable CONFIG_EZX_PCAP on arm + * [Config] Temporarily disable CONFIG_MFD_OMAP_USB_HOST on arm + * [Config] Temporarily disable CONFIG_LIS3L02DQ on arm + * [Config] Temporarily disable CONFIG_USB_EHCI_HCD_PLATFORM on arm + * [Config] Temporarily disable CONFIG_TI_CPSW on arm + * [Config] Temporarily disable CONFIG_AX88796 on arm + + [ Upstream Kernel Changes ] + + * vfs: pass struct path to __dentry_open() + * vfs: add i_op->open() + * vfs: export do_splice_direct() to modules + * vfs: introduce clone_private_mount() + * overlay filesystem + * overlayfs: add statfs support + * overlayfs: implement show_options + * overlay: overlay filesystem documentation + * fs: limit filesystem stacking depth + * overlayfs: follow header cleanup + * overlayfs: switch from d_alloc_root() to d_make_root() + * overlayfs: update touch_atime() usage + * rebase to v3.4-rc5 + - LP: #950490 + * rebase to v3.4-rc4 + * rebase to v3.4-rc3 + * rebase to v3.4-rc2 + * rebase to v3.4-rc1 + * rebase to v3.3 + * rebase to v3.3-rc7 + * rebase to v3.3-rc6 + * rebase to v3.3-rc5 + * rebase to v3.3-rc4 + - LP: #900802 + - LP: #930842 + * rebase to v3.3-rc3 + - LP: #924320 + - LP: #923316 + - LP: #923409 + - LP: #918254 + * rebase to v3.3-rc2 + * rebase to v3.3-rc1 + - LP: #795823 + - LP: #909419 + - LP: #910792 + - LP: #878701 + - LP: #724831 + + -- Leann Ogasawara Wed, 25 Jan 2012 06:50:04 -0800 + +linux (3.2.0-10.18) precise; urgency=low + + [ Tim Gardner ] + + * SAUCE: ecryptfs: Print inode on metadata error + + [ Upstream Kernel Changes ] + + * Revert "proc: enable writing to /proc/pid/mem" + - LP: #919115 + - CVE-2012-0056 + * (pre-stable) ALSA: HDA: Use LPIB position fix for Macbook Pro 7, 1 + - LP: #909419 + + -- Andy Whitcroft Tue, 24 Jan 2012 10:15:12 +0000 + +linux (3.2.0-10.17) precise; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: overlayfs -- fs: limit filesystem stacking depth" + * Revert "SAUCE: overlayfs -- overlay: overlay filesystem documentation" + * Revert "SAUCE: overlayfs -- overlayfs: implement show_options" + * Revert "SAUCE: overlayfs -- overlayfs: add statfs support" + * Revert "SAUCE: overlayfs -- overlay filesystem" + * Revert "SAUCE: overlayfs -- vfs: introduce clone_private_mount()" + * Revert "SAUCE: overlayfs -- vfs: export do_splice_direct() to modules" + * Revert "SAUCE: overlayfs -- vfs: add i_op->open()" + * ensure debian/ is not excluded from git by default + * add new scripting to handle buglinks in rebases + * ubuntu: overlayfs -- overlayfs: add statfs support + * ubuntu: overlayfs -- overlayfs: apply device cgroup and security + permissions to overlay files + - LP: #915941, #918212 + - CVE-2012-0055 + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Leann Ogasawara ] + + * Revert "SAUCE: dmar: disable if ricoh multifunction detected" + * [Config] Disable CONFIG_INTEL_IOMMU_DEFAULT_ON + - LP: #907377, #911236 + * [Config] Enable CONFIG_IRQ_REMAP + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: pass struct path to __dentry_open() + * ubuntu: overlayfs -- vfs: add i_op->open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Upstream Kernel Changes ] + + * (pre-stable) x86/PCI: amd: factor out MMCONFIG discovery + - LP: #647043 + * (pre-stable) PNP: work around Dell 1536/1546 BIOS MMCONFIG bug that + breaks USB + - LP: #647043 + + -- Leann Ogasawara Mon, 16 Jan 2012 07:10:08 -0800 + +linux (3.2.0-9.16) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] Enable numerous CONFIG_VIDEO_* cards on ARM + * [Config] pull ARM sound modules =m + * [Config] CONFIG_RTC_DRV_TEST is for testing only + * [Config] CONFIG_USB_DUMMY_HCD is testing only + * [Config] CONFIG_USB_FILE_STORAGE is deprecated + + [ Leann Ogasawara ] + + * Revert "[Config] Temporarily disable CONFIG_CAN_TI_HECC on armel" + * [Config] Enable CONFIG_HW_RANDOM_PASEMI=m + * [Config] Enable CONFIG_MMC_TMIO=m + * [Config] Enable CONFIG_MTD_NAND_FSL_ELBC=m + * [Config] Enable CONFIG_ISI=m + * [Config] Enable CONFIG_MMC=y + * [Config] Enable CONFIG_LIRC_PARALLEL=m + * [Config] Enable CONFIG_MAC_EMUMOUSEBTN=m + * [Config] Enable CONFIG_CHR_DEV_SG=y + * [Config] Enable CONFIG_GPIO_PCA953X=m + * [Config] Enable CONFIG_GPIO_TWL4030=m + * [Config] Enable CONFIG_INET_DIAG=m + * [Config] Enable CONFIG_NLS_ISO8859_1=m + * [Config] Enable CONFIG_NVRAM=m + * [Config] Enable CONFIG_SLIP=m + * [Config] Enable CONFIG_PC300TOO=m + * [Config] Enable CONFIG_TUN=y + * [Config] Enable CONFIG_NET_CLS_CGROUP=m + * [Config] Enable CONFIG_THERMAL=y + * [Config] Enable CONFIG_PPP=y + * [Config] Enable CONFIG_PCI_STUB=m + * Rebase to v3.2.1 + * [Config] Enable CONFIG_RTL8192E=m + * [Config] Enable CONFIG_RTS5139=m + + [ Stefan Bader ] + + * [Config] Make CONFIG_VIRTIO_(NET|BLK)=y + + [ Upstream Kernel Changes ] + + * ARM: restart: add restart hook to machine_desc record + * ARM: restart: allow platforms more flexibility specifying restart mode + * ARM: restart: move reboot failure handing into machine_restart() + * ARM: restart: remove argument to setup_mm_for_reboot() + * ARM: 7159/1: OMAP: Introduce local common.h files + * ARM: restart: only perform setup for restart when soft-restarting + * ARM: 7189/1: OMAP3: Fix build break in cpuidle34xx.c because of irq + function + * ARM: idmap: populate identity map pgd at init time using .init.text + * ARM: suspend: use idmap_pgd instead of suspend_pgd + * ARM: proc-*.S: place cpu_reset functions into .idmap.text section + * ARM: idmap: use idmap_pgd when setting up mm for reboot + * ARM: head.S: only include __turn_mmu_on in the initial identity mapping + * ARM: SMP: use idmap_pgd for mapping MMU enable during secondary booting + * ARM: 7194/1: OMAP: Fix build after a merge between v3.2-rc4 and ARM + restart changes + * ARM: lib: add call_with_stack function for safely changing stack + * ARM: reset: implement soft_restart for jumping to a physical address + * ARM: stop: execute platform callback from cpu_stop code + * ARM: kexec: use soft_restart for branching to the reboot buffer + * ARM: restart: omap: use new restart hook + * topdown mmap support + - LP: #861296 + + [ Upstream Kernel Changes ] + + * Rebase to v3.2.1 + + -- Leann Ogasawara Fri, 13 Jan 2012 20:32:08 +0100 + +linux (3.2.0-8.15) precise; urgency=low + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_ACPI_PROCFS + * Remove server from getabis + * Temporarily disable module check + * [Config] Disable CONFIG_MTD_TESTS + * [Config] Disable CONFIG_X86_E_POWERSAVER + * [Config] Set CONFIG_ARCNET=m + * [Config] Enable CONFIG_ATM_DUMMY=m + * [Config] Enable CONFIG_BLK_DEV_MD=y + * ubuntu: fsam7400 select CHECK_SIGNATURE and depend on X86 + * [Config] Enable CONFIG_BLK_DEV_SD=y + * [Config] Enable CONFIG_BLK_DEV_SR=y + * [Config] Enable CONFIG_BLK_DEV_UB=m + * [Config] Enable CONFIG_COPS=m + * [Config] Enable CONFIG_DVB_USB_EC168=m + * [Config] Enable CONFIG_ENC28J60=m + * [Config] Enable CONFIG_FB_UVESA=m + * [Config] Enable CONFIG_FB_ATY=m + * [Config] Enable CONFIG_BROADCOM_PHY=y + * [Config] Enable CONFIG_CICADA_PHY=y + * [Config] Enable CONFIG_DAVICOM_PHY=y + * [Config] Enable CONFIG_ICPLUS_PHY=y + * [Config] Enable CONFIG_LSI_ET1011C_PHY=y + * [Config] Enable CONFIG_LXT_PHY=y + * [Config] Enable CONFIG_MARVELL_PHY=y + * [Config] Enable CONFIG_NATIONAL_PHY=y + * [Config] Enable CONFIG_QSEMI_PHY=y + * [Config] Enable CONFIG_SMSC_PHY=y + * [Config] Enable CONFIG_VITESSE_PHY=y + * Add 3w-sas to scsi-modules + - LP: #776542 + + [ Mathieu Trudel-Lapierre ] + + * SAUCE: ipv6: make the net.ipv6.conf.all.use_tempaddr sysctl propagate + to interface settings + + [ Paolo Pisati ] + + * Revert "SAUCE: omap3: beagle: if rev unknown, assume xM revision C" + - LP: #912199 + * Revert "SAUCE: omap3: beagle: detect new xM revision B" + - LP: #912199 + * Revert "SAUCE: omap3: beaglexm: fix DVI initialization" + - LP: #912199 + + [ Upstream Kernel Changes ] + + * Bluetooth: Add support for BCM20702A0 [0a5c:21e3] + - LP: #906832 + + -- Leann Ogasawara Fri, 06 Jan 2012 10:02:03 -0800 + +linux (3.2.0-8.14) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_SND_USB_6FIRE + - LP: #912197 + * rebase to mainline v3.2 final release + * updateconfigs following rebase to v3.2 final + * ubuntu: AUFS -- add BOM and automated update script + * ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers + - LP: #684666 + * ubuntu: AUFS -- update aufs-update to track new locations of headers + * ubuntu: AUFS -- clean up the aufs updater and BOM + * ubuntu: AUFS -- documentation on updating aufs2 + * ubuntu: AUFS -- aufs3-base.patch + * ubuntu: AUFS -- aufs3-standalone.patch + * ubuntu: AUFS -- fix undefined __devcgroup_inode_permission + * ubuntu: AUFS -- fix undefined security_path_link + * ubuntu: AUFS -- update to 4cf5db36bcd9748e8e7270022f295f84d1fc2245 + * ubuntu: AUFS -- updateconfigs following update + * ubuntu: AUFS -- suppress benign plink warning messages + - LP: #621195 + * ubuntu: AUFS -- enable in config and makefile + * ubuntu: AUFS -- disable in favor of overlayfs + * [Config] linux-virtual -- should include the extX modules + - LP: #912308 + + [ Tyler Hicks ] + + * SAUCE: eCryptfs: Improve statfs reporting + - LP: #885744 + + [ Upstream Kernel Changes ] + + * rebase to upstream v3.2 + + -- Leann Ogasawara Mon, 26 Dec 2011 20:24:30 -0800 + +linux (3.2.0-7.13) precise; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to upstream 3.2-rc7 + + -- Leann Ogasawara Mon, 19 Dec 2011 09:14:34 -0800 + +linux (3.2.0-6.12) precise; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to upstream v3.2-rc6 + + -- Leann Ogasawara Fri, 16 Dec 2011 10:19:02 -0800 + +linux (3.2.0-5.11) precise; urgency=low + + [ Andy Whitcroft ] + + * enforcer -- allow arch and flavour predicates to take lists + * enforcer -- simplify armel/armhf specific options + * enforcer -- fix incorrectly specified flavour matches + + [ Leann Ogasawara ] + + * [Config] Disable IRQ_REMAP + * [Config] Enable CONFIG_SENSORS_LM95245=m + * [Config] Enable CONFIG_SENSORS_MAX1668=m + * [Config] Enable CONFIG_SENSORS_NTC_THERMISTOR=m + * [Config] Enable CONFIG_SENSORS_MAX6639=m + * [Config] Enable CONFIG_SENSORS_MAX6642=m + * [Config] Enable CONFIG_SENSORS_LINEAGE=m + * [Config] Enable CONFIG_CRYPTO_SALSA20=m + * [Config] Enable CONFIG_PATA_TOSHIBA=m + * [Config] Enable CONFIG_POHMELFS=m + * [Config] Enable CONFIG_NET_PACKET_ENGINE=y + * [Config] Enable CONFIG_PATA_OPTI=m + * add overlayfs to virtual inclusion list + - LP: #903897 + * add veth to virtual inclusion list + - LP: #903897 + * SAUCE: resolve WARNING: at drivers/block/floppy.c:2929 do_fd_request + + [ Paolo Pisati ] + + * [Config] DEFAULT_MMAP_MIN_ADDR=32k on arm + - LP: #903346 + + [ Tim Gardner ] + + * [Config] CONFIG_LOCKUP_DETECTOR=y + - LP: #903615 + + [ Upstream Kernel Changes ] + + * rebase to upstream 55b02d2f + + -- Leann Ogasawara Mon, 12 Dec 2011 07:08:10 -0800 + +linux (3.2.0-4.10) precise; urgency=low + + [ Kyle McMartin ] + + * SAUCE: dmar: disable if ricoh multifunction detected + - LP: #894070 + + [ Seth Forshee ] + + * SAUCE: dell-wmi: Demote unknown WMI event message to pr_debug + - LP: #581312 + + [ Tim Gardner ] + + * Start new release, Bump ABI, rebase to 3.2-rc5 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_SENSORS_AK8975=m + + -- Tim Gardner Sat, 10 Dec 2011 08:57:04 -0700 + +linux (3.2.0-3.9) precise; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: ext4: correct partial write discard size calculation + - LP: #894768 + + [ Leann Ogasawara ] + + * Revert "SAUCE: x86, microcode, AMD: Restrict microcode reporting" + - LP: #892615 + + [ Matthew Garrett ] + + * SAUCE: pci: Rework ASPM disable code + + [ Upstream Kernel Changes ] + + * x86: Fix boot failures on older AMD CPU's + - LP: #892615 + * EHCI : Fix a regression in the ISO scheduler + - LP: #899165 + + -- Leann Ogasawara Mon, 05 Dec 2011 10:37:36 -0800 + +linux (3.2.0-3.8) precise; urgency=low + + [ Andy Whitcroft ] + + * armhf -- add d-i configuration + * armhf -- disable ABI checks for armhf + * armhf -- add arch to getabis config + + -- Andy Whitcroft Sat, 03 Dec 2011 14:22:52 +0000 + +linux (3.2.0-3.7) precise; urgency=low + + [ Stefan Bader ] + + * SAUCE: x86/paravirt: PTE updates in k(un)map_atomic need to be + synchronous, regardless of lazy_mmu mode + - LP: #854050 + + [ Tim Gardner ] + + * rebase to v3.2-rc4 + + -- Leann Ogasawara Fri, 02 Dec 2011 11:53:56 -0800 + +linux (3.2.0-2.6) precise; urgency=low + + [ Andy Whitcroft ] + + * armhf -- fix omap flavour to build on armhf + * [Config] CONFIG_PATA_MACIO=y to fix MAC qemu boot + + [ Borislav Petkov ] + + * SAUCE: x86, microcode, AMD: Restrict microcode reporting + - LP: #892615 + + [ Colin Watson ] + + * Add pata_macio to pata-modules + + [ Tim Gardner ] + + * [Config] Prefer crda over wireless-crda + * [Config] Fix virtual inclusion list. + - LP: #897795 + + -- Leann Ogasawara Wed, 30 Nov 2011 06:09:35 -0800 + +linux (3.2.0-2.5) precise; urgency=low + + [ Paolo Pisati ] + + * [Config] PANEL_DVI=y + + -- Leann Ogasawara Mon, 28 Nov 2011 09:13:24 -0800 + +linux (3.2.0-2.4) precise; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.2-rc3 + + [ Leann Ogasawara ] + + * Revert "SAUCE: xen: Do not use pv spinlocks on HVM" + * Revert "fix ERROR: __devcgroup_inode_permission undefined" + * Revert "olpc_dcon_xo_1_5 needs delay.h" + * Revert "olpc_dcon_xo_1 needs delay.h" + * rebase to 6fe4c6d4 + * [Config] updateconfigs after rebase to 6fe4c6d4 + + [ Tim Gardner ] + + * [Config] Replace wireless-crda with crda,wireless-regdb + - LP: #856421 + * [Config] Relax the dependencies on crda + + [ Upstream Kernel Changes ] + + * (pre-stable) HID: bump maximum global item tag report size to 96 bytes + - LP: #724831 + * Ubuntu: remove coreutils|fileutils package dependency + - LP: #892814 + * iio: iio_event_getfd -- fix ev_int build failure + + [ Upstream Kernel Changes ] + + * Rebase to v3.2-rc3 + + -- Andy Whitcroft Thu, 24 Nov 2011 16:20:45 +0000 + +linux (3.2.0-1.3) precise; urgency=low + + [ Upstream Kernel Changes ] + + * Ubuntu: Add ext2 to fs-core-modules + - LP: #893395 + + -- Leann Ogasawara Mon, 21 Nov 2011 20:42:33 -0800 + +linux (3.2.0-1.2) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_NFC and associated devices + * SAUCE: allow brcmsmac and b43 to both build + + [ Soren Hansen ] + + * Add ixgbe driver to d-i + - LP: #891969 + + -- Leann Ogasawara Mon, 21 Nov 2011 08:33:46 -0800 + +linux (3.2.0-1.1) precise; urgency=low + [ Andy Whitcroft ] + + * armhf -- enable armhf and create the first flavours + * SAUCE: ensure root is ready before running usermodehelpers in it + * [Config] enforcer -- ensure CONFIG_FAT_FS is built-in on arm + + [ Leann Ogasawara ] + + * Temporarily ignore module check + * [Config] Enable PCI_IOV on powerpc + * [Config] Temporarily disable CONFIG_PASEMI_MAC on powerpc + * rebase to v3.2-rc2 + * SAUCE: include for cpuidle34xx arm build + * SAUCE: include for linux/mtd/map.h arm build + * SAUCE: include and for mmc_core arm build + * SAUCE: select ARM_AMBA if OMAP3_EMU + * [Config] updateconfigs after select ARM_AMBA + * [Config] Temporarily disable CONFIG_KVM_BOOK3S_32 on powerpc + * [Config] Enable CONFIG_EXT2_FS=m + * [Config] Build in CONFIG_SATA_AHCI=y + * Resolve linux-image-extra's install dependency + + [ Seth Forshee ] + + * [Config] Enable EVENT_POWER_TRACING_DEPRECATED=y for powertop + * SAUCE: (drop after 3.2) Input: ALPS - move protocol information to + Documentation + * SAUCE: (drop after 3.2) Input: ALPS - add protocol version field in + alps_model_info + * SAUCE: (drop after 3.2) Input: ALPS - remove assumptions about packet + size + * SAUCE: (drop after 3.2) Input: ALPS - add support for protocol versions + 3 and 4 + * SAUCE: (drop after 3.2) Input: ALPS - add semi-MT support for v3 + protocol + * SAUCE: (drop after 3.2) Input: ALPS - add documentation for protocol + versions 3 and 4 + + [ Stefan Bader ] + + * [Config] Built-in xen-netfront and xen-blkfront + * Fix build of dm-raid45 and re-enable it + + [ Tim Gardner ] + + * [Config] CONFIG_USB_XHCI_HCD=y + - LP: #886167 + * [Config] CONFIG_R6040=m + - LP: #650899 + * SAUCE: Add a new entry (413c:8197) to Bluetooth USB device ID table + - LP: #854399 + * [Config] Consolidated amd64 server flavour into generic + * [Config] updateconfigs after rebase to 3.2-rc1 + * [Config] Disabled dm-raid4-5 + * [Config] Disabled ndiswrapper + * [Config] Disable vt6656 + * [Config] exclude ppp-modules for virtual flavour + * [Config] CONFIG_MEMSTICK_R592=m + - LP: #238208 + + [ Upstream Kernel Changes ] + + * CHROMIUM: seccomp_filter: new mode with configurable syscall filters + - LP: #887780 + * CHROMIUM: seccomp_filter: add process state reporting + - LP: #887780 + * CHROMIUM: seccomp_filter: Document what seccomp_filter is and how it + works. + - LP: #887780 + * CHROMIUM: x86: add HAVE_SECCOMP_FILTER and seccomp_execve + - LP: #887780 + * CHROMIUM: arm: select HAVE_SECCOMP_FILTER + - LP: #887780 + * CHROMIUM: seccomp_filters: move to btrees + * CHROMIUM: enable CONFIG_BTREE + * CHROMIUM: seccomp_filter: kill NR_syscall references + * CHROMIUM: seccomp_filters: guard all ftrace wrapper code + * CHROMIUM: seccomp_filters: clean up warnings; kref mistake + * CHROMIUM: seccomp_filter: remove "skip" from copy and add drop helper + * CHROMIUM: seccomp_filter: allow CAP_SYS_ADMIN management of execve + * CHROMIUM: seccomp_filter: inheritance documentation + * CHROMIUM: seccomp_filter: make inherited filters composable + * CHROMIUM: Fix seccomp_t compile error + - LP: #887780 + * CHROMIUM: Fix kref usage + - LP: #887780 + * CHROMIUM: enable CONFIG_SECCOMP_FILTER and CONFIG_HAVE_SECCOMP_FILTER + * rebase to v3.2-rc2 + + -- Leann Ogasawara Mon, 31 Oct 2011 09:24:39 -0400 + +linux (3.1.0-2.3) precise; urgency=low + + [ Tim Gardner ] + + * Add postinit and postrm scripts to the extras package + - LP: #882120 + + -- Leann Ogasawara Fri, 28 Oct 2011 12:48:33 -0700 + +linux (3.1.0-2.2) precise; urgency=low + + [ Andy Whitcroft ] + + * debian: add locking to protect debian/files from parallel update + + [ Leann Ogasawara ] + + * rebase to v3.1 + + [ Upstream Kernel Changes ] + + * rebase to v3.1 + + -- Leann Ogasawara Wed, 19 Oct 2011 07:12:38 -0700 + +linux (3.1.0-1.1) precise; urgency=low + + [ Andiry Xu ] + + * SAUCE: (drop during 3.2 merge) xHCI: AMD isoc link TRB chain bit quirk + - LP: #872811 + + [ Andy Whitcroft ] + + * Revert "ubuntu: compcache -- follow changes to bd_claim/bd_release" + - LP: #832694 + * Revert "ubuntu: compcache -- version 0.5.3" + - LP: #832694 + * [Config] standardise CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + * [Config] Enable CONFIG_MACVTAP=m + - LP: #822601 + * record the compiler in the ABI and check for inconsistant builds + * [Config] move ECRYPT_FS back to =y for all architectures + - LP: #827197 + * [Config] enable CONFIG_DRM_VMWGFX=m + - LP: #698009 + * [Config] re-fix ECRYPT_FS=y + - LP: #827197 + * enforcer -- ensure we have CONFIG_ECRYPT_FS=y + - LP: #827197 + * [Config] dropping compcache configuration options + * [Config] standardise on HZ=250 + * SAUCE: headers_install: fix #include "..." usage for userspace + - LP: #824377 + * make module-inclusion selection retain the left overs + * add a new linux-image-extras package for virtual + + [ Colin Watson ] + + * Deliver more Atheros, Ralink, and iwlagn NIC drivers to d-i + + [ edwin_rong ] + + * SAUCE: Staging: add driver for Realtek RTS5139 cardreader + - LP: #824273 + + [ Greg Kroah-Hartman ] + + * SAUCE: staging: rts5139: add vmalloc.h to some files to fix the build. + - LP: #824273 + + [ Jesse Sung ] + + * SAUCE: Unregister input device only if it is registered + - LP: #839238 + + [ Jiri Kosina ] + + * SAUCE: HID: add MacBookAir4, 2 to hid_have_special_driver[] + + [ Joshua V. Dillon ] + + * SAUCE: HID: add support for MacBookAir4,2 keyboard. + + [ Kees Cook ] + + * [Config] enable and enforce SECCOMP_FILTER on x86 + + [ Keng-Yu Lin ] + + * [Config] Enable CONFIG_RTS5139=m on i386/amd64 + - LP: #824273 + + [ Leann Ogasawara ] + + * Revert "ubuntu: overlayfs -- ovl: make lower mount read-only" + * Revert "ubuntu: overlayfs -- fs: limit filesystem stacking depth" + * Revert "ubuntu: overlayfs -- ovl: improve stack use of lookup and + readdir" + * Revert "ubuntu: overlayfs -- ovl: fix overlayfs over overlayfs" + * Revert "ubuntu: overlayfs -- overlayfs: implement show_options" + * Revert "ubuntu: overlayfs -- overlayfs: add statfs support" + * Revert "ubuntu: overlayfs -- overlay filesystem" + * Revert "ubuntu: overlayfs -- overlay: overlay filesystem documentation" + * Revert "SAUCE: ARM: OMAP: Add macros for comparing silicon revision" + * Revert "SAUCE: OMAP: DSS2: check for both cpu type and revision, rather + than just revision" + * Revert "SAUCE: OMAP: DSS2: enable hsclk in dsi_pll_init for OMAP36XX" + * Revert "ubuntu: fsam7400 disable driver" + - LP: #876030 + * rebase to v3.1-rc1 + * [Config] updateconfigs after rebase to v3.1-rc1 + * rebase to v3.1-rc2 + * [Config] Updateconfigs after rebase to v3.1-rc2 + * ubuntu: Yama - update calls to generic_permission() and + inode->i_op->permission() + * ubuntu: ndiswrapper -- remove netdev_priv macro + * ubuntu: aufs -- Temporarily disable due to build failure + * [Config] Diable INTEL_MID_PTI on armel + * [Config] Temporarily disable CONFIG_FTMAC100 on armel + * [Config] Temporarily disable CONFIG_FTGMAC100 on armel + * [Config] Temporarily disable CONFIG_CAN_TI_HECC on armel + * [Config] Temporarily disable CONFIG_VIDEO_OMAP2_VOUT on armel + * [Config] Set CONFIG_DM_MIRROR=m on amd64, i386, and arm + * [Config] Set CONFIG_DM_MULTIPATH=m on amd64, i386, and arm + * [Config] Set CONFIG_DM_SNAPSHOT=m on amd64, i386, and arm + * [Config] Enable CONFIG_EDAC_AMD8111=m on powerpc + * [Config] Enable CONFIG_EDAC_AMD8131=m on powerpc + * [Config] Enable CONFIG_EDAC_CPC925=m on powerpc + * [Config] Enable CONFIG_EDAC_PASEMI=m on powerpc + * [Config] Enable CONFIG_ECHO=m on powerpc + * [Config] Enable CONFIG_ET131X=m on powerpc + * [Config] Set CONFIG_FB_MATROX=m + * [Config] Enable CONFIG_FB_UDL=m on powerpc + * [Config] Set CONFIG_FB_VIRTUAL=n + * [Config] Enable CONFIG_FB_VGA16=m on powerpc + * [Config] Enable CONFIG_GPIO_MAX732X=m on arm + * [Config] Enable CONFIG_GPIO_PCF857X=m on arm + * [Config] Set CONFIG_HOTPLUG_PCI_FAKE=m + * [Config] Enable CONFIG_HOTPLUG_PCI=y on powerpc + * [Config] Enable CONFIG_HOTPLUG_PCI_CPCI=y on powerpc + * [Config] Enable CONFIG_HP_ILO=m on powerpc-smp + * [Config] Enable CONFIG_I2C_PASEMI=m on powerpc + * [Config] Enable CONFIG_IBM_BSR=m on powerpc + * [Config] Enable CONFIG_IBMVETH=m on powerpc + * [Config] Enable CONFIG_IDE_PHISON=m on powerpc + * [Config] Enable CONFIG_IGB=m on powerpc + * [Config] Enable CONFIG_IIO=m on powerpc + * [Config] Enable CONFIG_INFINIBAND_NES=m + * [Config] Enable CONFIG_IPMI_HANDLER=m on arm + * [Config] Enable CONFIG_IWL3945=m on powerpc + * [Config] Disable CONFIG_KVM_BOOK3S_64 + * [Config] Enable CONFIG_LAPBETHER=m on arm + * [Config] Enable CONFIG_LEDS_GPIO=m on powerpc + * [Config] Enable CONFIG_LEDS_CLEVO_MAIL=m all arch's + * [Config] Enable CONFIG_LEDS_PCA9532=m on powerpc + * [Config] Enable CONFIG_LEDS_PCA955X=m on powerpc + * [Config] Enable CONFIG_LEDS_TRIGGER_DEFAULT_ON=m on powerpc + * [Config] Set CONFIG_LEDS_TRIGGER_HEARTBEAT=m on arm and powerpc + * [Config] Set CONFIG_LEDS_TRIGGER_TIMER=m on powerpc + * [Config] Enable CONFIG_LINE6_USB=m on arm and powerpc + * [Config] Enable CONFIG_MEMSTICK=m on arm + * [Config] Enable CONFIG_MTD_AFS_PARTS=m on arm + * [Config] Enable CONFIG_MTD_ALAUDA=m on arm + * [Config] Enable CONFIG_MTD_AR7_PARTS=m on arm + * [Config] Enable CONFIG_MTD_ARM_INTEGRATOR=m on arm + * [Config] Enable CONFIG_MOXA_SMARTIO=m on powerpc + * [Config] Enable CONFIG_MTD_DATAFLASH=m on arm + * [Config] Enable CONFIG_MTD_GPIO_ADDR=m on arm + * [Config] Enable CONFIG_MTD_IMPA7=m on arm + * [Config] Enable CONFIG_MTD_NAND_GPIO=m on arm + * [Config] Enable CONFIG_MTD_NAND_NANDSIM=m on arm + * [Config] Enable CONFIG_MTD_NAND_PASEMI=m on powerpc + * [Config] Enable CONFIG_MTD_NAND_PLATFORM=m on arm + * [Config] Enable CONFIG_MTD_NAND_TMIO=m on arm + * [Config] Enable CONFIG_MTD_SST25L=m on arm + * [Config] Enable CONFIG_NET_CLS_CGROUP=y on arm + * [Config] Enable CONFIG_NET_CLS_FLOW=m on arm + * [Config] Enable CONFIG_NET_CLS_U32=m on arm + * [Config] Enable CONFIG_NET_DCCPPROBE=m on arm + * [Config] Enable CONFIG_NET_SCH_INGRESS=m on arm + * [Config] Enable CONFIG_NET_TCPPROBE=m on arm + * [Config] Enable CONFIG_PASEMI_MAC=m on powerpc + * [Config] Enable CONFIG_PATA_NS87410=m on powerpc + * [Config] Enable CONFIG_I2C_GPIO=m on powerpc64-smp + * [Config] Enable CONFIG_PANEL=m on powerpc + * [Config] Enable CONFIG_PATA_CMD640_PCI=m on powerpc + * SAUCE: x86: reboot: Make Dell Latitude E6520 use reboot=pci + - LP: #833705 + * [Config] Add CONFIG_EFI_VARS=y to the enforcer + - LP: #837332 + * [Config] Update CONFIG_EFI_VARS enforcer check + * [Config] Add aufs to virtual flavor inclusion list + - LP: #844159 + * SAUCE: x86: reboot: Make Dell Optiplex 790 use reboot=pci + - LP: #818933 + * SAUCE: x86: reboot: Make Dell Optiplex 990 use reboot=pci + - LP: #768039 + * SAUCE: x86: reboot: Make Dell Latitude E6220 use reboot=pci + - LP: #838402 + * [Config] Add igbvf to the virtual flavor inclusion list + - LP: #794570 + * [Config] Add ixgbevf to the virtual inclusion list + - LP: #872411 + * [Config] Transition -generic and -server to be identical + * rebase to v3.1-rc10 + + [ Luke Yelavich ] + + * [Config] Disable legacy IDE drivers on powerpc + + [ Ming Lei ] + + * SAUCE: fireware: add NO_MSI quirks for o2micro controller + - LP: #801719 + * SAUCE: ata_piix: make DVD Drive recognisable on systems with Intel + Sandybridge chipsets(v2) + - LP: #737388, #782389, #794642 + + [ Paolo Pisati ] + + * [Config] Compile-in vfat support for armel + - LP: #853783 + + [ Randy Dunlap ] + + * SAUCE: staging: fix rts5139 depends & build + - LP: #824273 + + [ Rene Bolldorf ] + + * SAUCE: (drop after 3.0) ideapad: Check if acpi already handle backlight + power in 'ideapad_backlight_notify_power' to avoid a page fault + + [ Seth Forshee ] + + * SAUCE: (no-up) Input: elantech - Add v3 hardware support + - LP: #681904 + * SAUCE: (drop after 3.1) usb_storage: Don't freeze in usb-stor-scan + - LP: #810020 + + [ Stefan Bader ] + + * (config) Package macvlan and macvtap for virtual + * [Config] Force perf to use libiberty for demangling + - LP: #783660 + * SAUCE: xen: Do not use pv spinlocks on HVM + - LP: #838026 + + [ Tim Gardner ] + + * [Config] Clean up tools rules + * [Config] Package x86_energy_perf_policy and turbostat + - LP: #797556 + * rebase to v3.1-rc3 + * [Config] Simplify binary-udebs dependencies + * [Config] kernel preparation cannot be parallelized + * [Config] Linearize module/abi checks + * [Config] Linearize and simplify tree preparation rules + * [Config] Build kernel image in parallel with modules + * [Config] Set concurrency for kmake invocations + * [Config] Improve install-arch-headers speed + * [Config] Fix binary-perarch dependencies + * [Config] Removed stamp-flavours target + * [Config] Serialize binary indep targets + * [Config] Use build stamp directly + * [Config] Restore prepare-% target + * rebase to v3.1-rc4 + * rebase to v3.1-rc5 + * [Config] Disable makedumpfile for i386/amd64 + * rebase to v3.1-rc6 + * [Config] Fix binary-% build target + * rebase to v3.1-rc7 + * rebase to v3.1-rc8 + * SAUCE: Add a new entry (413c:8197) to Bluetooth USB device ID table + - LP: #854399 + * [Config] Enable ftrace support in the mac80211 layer + - LP: #865171 + * rebase to v3.1-rc9 + * SAUCE: usb/core/devio.c: Check for printer class specific request + - LP: #872711 + + [ Upstream Kernel Changes ] + + * overlay filesystem + * overlayfs: add statfs support + * overlayfs: implement show_options + * overlay: overlay filesystem documentation + * fs: limit filesystem stacking depth + + [ Will Drewry ] + + * SAUCE: seccomp_filter: new mode with configurable syscall filters + * SAUCE: seccomp_filter: add process state reporting + * SAUCE: seccomp_filter: Document what seccomp_filter is and how it + works. + * SAUCE: seccomp_filter: add HAVE_SECCOMP_FILTER and seccomp_execve + + [ Upstream Kernel Changes ] + + * rebase to v3.1-rc1 + * rebase to v3.1-rc2 + * rebase to v3.1-rc3 + +CONFIG_BLK_DEV_BSGLIB=y + +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 + -CONFIG_VIDEO_OMAP2_VOUT_VRFB=y + * rebase to v3.1-rc4 + * rebase to v3.1-rc5 + * rebase to v3.1-rc6 + * rebase to v3.1-rc7 + * rebase to v3.1-rc8 + * rebase to v3.1-rc9 + * rebase to v3.1-rc10 + + -- Leann Ogasawara Wed, 10 Aug 2011 15:43:38 -0700 + +linux (3.1.0-1.0) oneiric; urgency=low + + [ Leann Ogasawara ] + + * Open P-series + + -- Leann Ogasawara Wed, 10 Aug 2011 13:42:40 -0700 + +linux (3.0.0-8.10) oneiric; urgency=low + + [ Adam Jackson ] + + * SAUCE: drm/i915/pch: Fix integer math bugs in panel fitting + - LP: #753994 + + [ John Johansen ] + + * [Config] Enable missing IPv6 options + + [ Leann Ogasawara ] + + * [Config] Disable config IWLWIFI_DEVICE_SVTOOL + - LP: #819925 + * Rebase to 3.0.1 + + [ Upstream Kernel Changes ] + + * x86, intel, power: Correct the MSR_IA32_ENERGY_PERF_BIAS message + * ALSA: hda - Turn on extra EAPDs on Conexant codecs + - LP: #783582 + * KVM: Remove SMEP bit from CR4_RESERVED_BITS + - LP: #796476 + * KVM: Add SMEP support when setting CR4 + - LP: #796476 + * KVM: Mask function7 ebx against host capability word9 + - LP: #796476 + * KVM: Add instruction fetch checking when walking guest page table + - LP: #796476 + + [ Upstream Kernel Changes ] + + * rebase to v3.0.1 + + -- Leann Ogasawara Fri, 05 Aug 2011 11:32:25 -0700 + +linux (3.0.0-7.9) oneiric; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] add local prefix to oss local change_bits" + * Revert "SAUCE: add tracing for user initiated readahead requests" + * Revert "SAUCE: vfs: Add a trace point in the mark_inode_dirty function" + * Revert "SAUCE: Input: ALPS - Enable Intellimouse mode for Lenovo + Zhaoyang E47" + * Revert "SAUCE: fix documentation strings for struct input_keymap_entry" + * Revert "SAUCE: vt -- fix handoff numbering to 1..n and add range checks + (grub)" + * Revert "SAUCE: vt -- fix handoff numbering to 1..n and add range + checks" + * Revert "SAUCE: vt -- allow grub to request automatic vt_handoff" + * Revert "SAUCE: vt -- maintain bootloader screen mode and content until + vt switch" + * [Config] enable CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 + - LP: #816035 + * ubuntu: Yama: if an underlying filesystem provides a permissions op use + it + * SAUCE: (no-up) add tracing for user initiated readahead requests + * SAUCE: vt -- maintain bootloader screen mode and content until vt + switch + * SAUCE: vt -- allow grub to request automatic vt_handoff + + [ Arjan van de Ven ] + + * SAUCE: (no-up) vfs: Add a trace point in the mark_inode_dirty function + + [ Kees Cook ] + + * Revert "SAUCE: (no-up) Disable building the ACPI debugfs source" + * [Config] enforce ACPI_CUSTOM_METHOD disabled + + [ Keng-Yu Lin ] + + * SAUCE: (no-up) Input: ALPS - Enable Intellimouse mode for Lenovo + Zhaoyang E47 + - LP: #632884, #803005 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_BLK_DEV_CMD64X=m on powerpc + - LP: #513131 + * [Config] Enable CONFIG_RT2800PCI_RT53XX=y + - LP: #815064 + + [ Rezwanul Kabir ] + + * SAUCE: (no-up) Add support for Intellimouse Mode in ALPS touchpad on + Dell E2 series Laptops + - LP: #632884 + + [ Upstream Kernel Changes ] + + * Revert "yama: if an underlying filesystem provides a permissions op use + it" + * Revert "Add support for Intellimouse Mode in ALPS touchpad on Dell E2 + series Laptops" + * Revert "tty: include linux/slab.h for kfree" + * Revert "gpio/ml_ioh_gpio: include linux/slab.h for kfree" + * Revert "pch_dma: add include/slab.h for kfree" + * mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency + - LP: #773524 + * oss: rename local change_bits to avoid powerpc bitsops.h definition + + -- Leann Ogasawara Mon, 25 Jul 2011 09:08:01 -0700 + +linux (3.0.0-7.8) oneiric; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: overlayfs -- overlayfs: add statfs support + * [Config] enable CONFIG_OVERLAYFS + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_ALIM7101_WDT=m on powerpc + * [Config] Enable CONFIG_ASUS_OLED=m on powerpc + * [Config] Disable CONFIG_ATM_DUMMY on arm + * [Config] Enable CONFIG_BLK_DEV_DRBD=m on powerpc + * Temporarily disable module check on arm + * Rebase to 3.0 final + * [Config] Enable CONFIG_CAN_TI_HECC=m on arm + * [Config] Set CONFIG_CDROM_PKTCDVD=m on amd64 and i386 + * [Config] Enable CONFIG_CRYPTO_CCM=m on powerpc + * [Config] Enable CONFIG_CRYPTO_DEV_HIFN_795X=m on powerpc + * [Config] Enable CONFIG_CRYPTO_GCM=m on powerpc + * [Config] Set CRYPTO_LZO=m on powerpc64-smp + * [Config] Enable CONFIG_DM9000=m on arm + * [Config] Set CONFIG_DISPLAY_SUPPORT=m on arm + * [Config] Enable CONFIG_DL2K=m on amd64 and i386 + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: add i_op->open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- ovl: fix overlayfs over overlayfs + * ubuntu: overlayfs -- ovl: improve stack use of lookup and readdir + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + * ubuntu: overlayfs -- ovl: make lower mount read-only + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Tim Gardner ] + + * [Config] Add enic/fnic to udebs + - LP: #801610 + + [ Upstream Kernel Changes ] + + * yama: if an underlying filesystem provides a permissions op use it + + [ Major Kernel Changes ] + + * Rebase to 3.0 final + + -- Leann Ogasawara Thu, 21 Jul 2011 07:01:32 -0700 + +linux (3.0.0-6.7) oneiric; urgency=low + + [ Eagon Yager ] + + * [Config] Fix misspelled 'skipmodule' in arm makefile. + + [ Keng-Yu Lin ] + + * SAUCE: Input: ALPS - Enable Intellimouse mode for Lenovo Zhaoyang E47 + - LP: #632884, #803005 + + [ Leann Ogasawara ] + + * Revert "[Config] Temporarily disable CONFIG_SMC91X on armel-omap" + * Revert "[Config] Temporarily Disable CONFIG_BRCMSMAC on arm" + * Revert "[Config] Temporarily Disable CONFIG_RTL8192SE on powerpc" + * Revert "[Config] Temporarily Disable CONFIG_RTL8192SE on arm" + * Revert "[Config] Temporarily disable CONFIG_BRCMSMAC on powerpc" + * [Config] Set CONFIG_ACPI_PCI_SLOT=m + * [Config] Set CONFIG_ACPI_SBS=m + * [Config] Set CONFIG_ACPI_WMI=m + * [Config] Set CONFIG_AD7150=m on arm + * [Config] Set CONFIG_AD7152=m on arm + * [Config] Drop CONFIG_GPIO_S5PV210 + * [Config] Drop CONFIG_GPIO_S5PC100 + * [Config] Drop CONFIG_GPIO_PLAT_SAMSUNG + * [Config] Drop CONFIG_GPIO_EXYNOS4 + + [ Stefan Bader ] + + * SAUCE: Re-enable RODATA for i386 virtual + - LP: #809838 + + [ Upstream Kernel Changes ] + + * Revert "Quirk to fix suspend/resume on Lenovo Edge 11,13,14,15" + * (drop after 3.0.0) acer-wmi: Add support for Aspire 1830 wlan hotkey + - LP: #771758 + + -- Leann Ogasawara Wed, 20 Jul 2011 06:36:02 -0700 + +linux (3.0.0-5.6) oneiric; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_RTL8192CU=m + * Rebase to -rc7 + + -- Tim Gardner Mon, 11 Jul 2011 22:13:50 +0100 + +linux (3.0.0-4.5) oneiric; urgency=low + + [ Ming Lei ] + + * SAUCE: fix yama_ptracer_del lockdep warning + - LP: #791019 + + [ Seth Forshee ] + + * SAUCE: (drop after 3.0) asus-wmi: Add callback for hotkey filtering + * SAUCE: (drop after 3.0) eeepc-wmi: Add support for T101MT Home/Express Gate key + * SAUCE: (drop after 3.0) asus-wmi: Enable autorepeat for hotkey input device + * [Config] CONFIG_{ASUS,ASUS_NB,EEEPC}_WMI=m + - LP: #805218 + + [ Tim Gardner ] + + * [Config] updateconfigs after rebase to -rc6+ + Rebased against 4dd1b49c6d215dc41ce50c80b4868388b93f31a3 + * Adopt a 3 digit verion, e.g., 3.0.0-x.x + * Revert "UBUNTU: add dependancies for module-init-tools" + This dependency is no longer required for a 3 digit version. + + -- Tim Gardner Tue, 05 Jul 2011 14:03:04 +0100 + +linux (3.0-3.4) oneiric; urgency=low + + [ Keng-Yu Lin ] + + * SAUCE: Revert: "dell-laptop: Toggle the unsupported hardware + killswitch" + - LP: #775281 + + [ Leann Ogasawara ] + + * rebase to v3.0-rc5 + * [Config] updateconfigs after rebase to 3.0-rc5 + + [ Tim Gardner ] + + * [Config] Remove ubuntu/rtl8192se + * [Config] Added armel ABI files + * [Config] Removed armel versatile flavour + * [Config] CONFIG_INTEL_MEI=m + - LP: #716867 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Enable auto-parser as default for Conexant codecs + + [ Upstream Kernel Changes ] + + * rebase to v3.0-rc5 + + -- Leann Ogasawara Thu, 30 Jun 2011 14:27:10 +0100 + +linux (3.0-2.3) oneiric; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update to 0e2bafab74f0d1463383faeb93f9fc5eb8c2c54e + + [ Leann Ogasawara ] + + * rebase to v3.0-rc4 + * [Config] updateconfigs after rebase to 3.0-rc4 + * fix ERROR: __devcgroup_inode_permission undefined + + [ Stefan Bader ] + + * SAUCE: iscsitarget: Remove driver from the kernel + + [ Tim Gardner ] + + * SAUCE: rtl8192se: Force a build for a 2.6/3.0 kernel + * [Config] Add grub-efi as a recommended bootloader for server and + generic + - LP: #800910 + + [ Upstream Kernel Changes ] + + * Fix node_start/end_pfn() definition for mm/page_cgroup.c + + [ Leann Ogasawara ] + + * rebase to v3.0-rc4 + + -- Leann Ogasawara Fri, 24 Jun 2011 11:51:12 -0700 + +linux (3.0-1.2) oneiric; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_CAN_CALC_BITTIMING + + [ Leann Ogasawara ] + + * rebase to v3.0-rc3 + * [Config] updateconfigs after rebase to 3.0-rc3 + + [ Upstream Kernel Changes ] + + * perf: clear out make flags when calling kernel make kernelver + + [ Leann Ogasawara ] + + * rebase to v3.0-rc3 + + -- Leann Ogasawara Tue, 14 Jun 2011 07:25:35 -0700 + +linux (3.0-0.1) oneiric; urgency=low + + [ Andy Whitcroft ] + + * use the packaging version in the kernel + * use the kernels idea of its version for version_signature + * add dependancies for module-init-tools + * update control files to version 3 + * printchanges/insertchanges allow override of prev_release + * correct Vcs-Git: to point to oneiric + + [ Leann Ogasawara ] + + * rebase to v3.0-rc1 + * [Config] updateconfigs after rebase to 3.0-rc1 + * ubuntu: dm-raid4-5 fix up build failure + * [Config] Temporarily Disable CONFIG_GPIO_EXYNOS4 on arm + * [Config] Temporarily Disable CONFIG_GPIO_PLAT_SAMSUNG on arm + * [Config] Temporarily Disable CONFIG_GPIO_S5PC100 on arm + * [Config] Temporarily Disable CONFIG_GPIO_S5PV210 on arm + * [Config] Temporarily disable CONFIG_BRCMSMAC on powerpc + * [Config] Temporarily Disable CONFIG_BRCMSMAC on arm + * [Config] Temporarily Disable CONFIG_RTL8192SE on arm + * [Config] Temporarily Disable CONFIG_RTL8192SE on powerpc + * [Config] Temporarily disable CONFIG_SMC91X on armel-omap + * rebase to v3.0-rc2 + + [ Manoj Iyer ] + + * SAUCE: mmc: Enable MMC card reader for RICOH [1180:e823] + - LP: #790754 + + [ Upstream Kernel Changes ] + + * Revert "x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM + demands it" + * drm/i915: fix regression after clock gating init split + + [ Major Kernel Changes ] + + * rebase from v2.6.39 to v3.0-rc1 + * rebase from v3.0-rc1 to v3.0-rc2 + + -- Andy Whitcroft Thu, 09 Jun 2011 15:18:33 +0100 + +linux (2.6.39-3.10) oneiric; urgency=low + + [ Colin Ian King ] + + * SAUCE: S3 early resume debug via keyboard LEDs + + [ Ingo Molnar ] + + * ubuntu: nx-emu - i386: NX emulation + * ubuntu: nx-emu - i386: mmap randomization for executable mappings + + [ Leann Ogasawara ] + + * Revert "[Config] Disable CONFIG_FT1000 on powerpc64-smp" + * Revert "[Config] Disable CONFIG_DM_RAID45" + * [Config] enable CONFIG_BRCMFMAC=y + * [Config] enable CONFIG_MDIO_BITBANG=m across all arch's and flavors + * [Config] enable CONFIG_VIDEO_OUTPUT_CONTROL=m on armel-omap + + [ Robert Nelson ] + + * SAUCE: omap3: beagle: detect new xM revision B + - LP: #770679 + * SAUCE: omap3: beagle: detect new xM revision C + - LP: #770679 + * SAUCE: omap3: beagle: if rev unknown, assume xM revision C + - LP: #770679 + + [ Stefan Bader ] + + * SAUCE: Convert dm-raid45 to new block plugging + + -- Leann Ogasawara Mon, 23 May 2011 11:46:43 -0700 + +linux (2.6.39-3.9) oneiric; urgency=low + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_SCSI_LPFC_DEBUG_FS + * rebase to v2.6.39 + * [Config] enable CONFIG_LLC2=m across all arch's and flavours + * [Config] enable CONFIG_INPUT_APANEL=m + + [ Thomas Schlichter ] + + * SAUCE: vesafb: mtrr module parameter is uint, not bool + - LP: #778043 + * SAUCE: vesafb: enable mtrr WC by default + - LP: #778043 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc7 to v2.6.39 + + -- Andy Whitcroft Fri, 20 May 2011 09:52:32 +0100 + +linux (2.6.39-2.8) oneiric; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-37" + * Revert "ubuntu: AUFS -- aufs2-base.patch aufs2.1-37" + * Revert "[Config] Disable CONFIG_AUFS_FS" + * ubuntu: AUFS -- aufs2-base.patch aufs2.1-39 + * ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-39 + * ubuntu: AUFS -- update to c6b76974311efc5bf3eddf921cd015b6aae46935 + * ubuntu: AUFS -- clean up the aufs updater and BOM + * ubuntu: AUFS -- documentation on updating aufs2 + + [ Kees Cook ] + + * ubuntu: Yama - LSM hooks + * ubuntu: Yama - create task_free security callback + * ubuntu: Yama - add ptrace relationship tracking interface + * ubuntu: Yama - unconditionally chain to Yama LSM + + [ Leann Ogasawara ] + + * Revert "SAUCE: Fix drivers/staging/easycap FTBS" + * Revert "[Config] Disable CONFIG_EASYCAP" + * ubuntu: fsam7400 disable driver + * ubuntu: omnibook disable driver + * ubuntu: rfkill disable driver + + [ Tim Gardner ] + + * SAUCE: Fix extra reference in fb_open() + + -- Leann Ogasawara Mon, 16 May 2011 09:23:56 -0700 + +linux (2.6.39-2.7) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc7 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc6 to v2.6.39-rc7 + + -- Leann Ogasawara Tue, 10 May 2011 10:18:28 +0200 + +linux (2.6.39-1.6) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc6 + * SAUCE: [arm] fixup __aeabi_uldivmod undefined build error + + [ Tim Gardner ] + + * [Config] updateconfigs after rebase to 2.6.39-rc6 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc5 to v2.6.39-rc6 + - LP: #740126 + + -- Leann Ogasawara Thu, 05 May 2011 09:46:12 -0700 + +linux (2.6.39-0.5) oneiric; urgency=low + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: Revert "x86, hibernate: Initialize mmu_cr4_features during boot" + - LP: #764758 + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc5 + * [Config] updateconfigs following rebase to v2.6.39-rc5 + + [ Paolo Pisati ] + + * [Config] s/USB_MUSB_TUSB6010/USB_MUSB_OMAP2PLUS/ on omap3 to get musb + - LP: #759913 + + [ Stefan Bader ] + + * Include nls_iso8859-1 for virtual images + - LP: #732046 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc4 to v2.6.39-rc5 + + -- Leann Ogasawara Wed, 27 Apr 2011 06:39:42 -0700 + +linux (2.6.39-0.4) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc4 + * [Config] updateconfigs following rebase to v2.6.39-rc4 + * fixup powerpc implicit declaration of function + 'crash_kexec_wait_realmode' + * [Config] Disable CONFIG_FT1000 on powerpc64-smp + + [ Tim Gardner ] + + * [Config] CONFIG_TRANSPARENT_HUGEPAGE=y + - LP: #769503 + * [Config] Add cachefiles.ko to virtual flavour + - LP: #770430 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc3 to v2.6.39-rc4 + + -- Leann Ogasawara Tue, 19 Apr 2011 06:25:20 -0700 + +linux (2.6.39-0.3) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc3 + * crash_kexec_wait_realmode() undefined when !SMP + + [ Tim Gardner ] + + * [Config] CONFIG_PM_ADVANCED_DEBUG=y for i386/amd64 + - LP: #632327 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc2 to v2.6.39-rc3 + + -- Leann Ogasawara Tue, 12 Apr 2011 06:52:24 -0700 + +linux (2.6.39-0.2) oneiric; urgency=low + + [ Gustavo F. Padovan ] + + * SAUCE: Revert "Bluetooth: Add new PID for Atheros 3011" + - LP: #720949 + + [ John Johansen ] + + * AppArmor: Fix masking of capabilities in complain mode + - LP: #748656 + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc2 + * [Config] updateconfigs following rebase to v2.6.39-rc2 + * hv_mouse needs delay.h + * olpc_dcon_xo_1 needs delay.h + * olpc_dcon_xo_1_5 needs delay.h + * Update dropped.txt for Oneiric + + [ Steve Langasek ] + + * [Config] Make linux-libc-dev coinstallable under multiarch + - LP: #750585 + + [ Upstream Kernel Changes ] + + * x86, hibernate: Initialize mmu_cr4_features during boot + - LP: #752870 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc1 to v2.6.39-rc2 + + -- Leann Ogasawara Wed, 06 Apr 2011 11:04:15 -0700 + +linux (2.6.39-0.1) oneiric; urgency=low + + [ Brad Figg ] + + * [Config] Set CONFIG_NR_CPUS=256 for amd64 generic + - LP: #737124 + + [ Henrik Rydberg ] + + * SAUCE: HID: hid-ntrig: add support for 1b96:0006 model + * SAUCE: HID: ntrig: fix suspend/resume on recent models + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: (drop after 2.6.39) v4l: make sure drivers supply a zeroed + struct v4l2_subdev + - LP: #745213 + + [ Kees Cook ] + + * [Config] packaging: adjust perms on vmlinuz as well + * SAUCE: nx-emu: further clarify dmesg reporting + - LP: #745181 + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc1 + * [Config] updateconfigs following rebase to v2.6.39-rc1 + * [Config] Disable CONFIG_DM_RAID45 + * [Config] Disable CONFIG_SCSI_ISCSITARGET + * [Config] Disable CONFIG_EASYCAP + * [Config] Disable CONFIG_AUFS_FS + * update bnx2 firmware files in d-i/firmware/nic-modules + * xhci-pci.c resolve implicit declaration of kzalloc + * [Config] Enable CONFIG_DRM_PSB for only x86 + * [Config] Enable CONFIG_RTS_PSTOR for only x86 + * mfd/asic3: Fix typo, s/irq_data/data/ + + [ Luke Yelavich ] + + * [Config] Disable CONFIG_CRASH_DUMP on 32-bit powerpc kernels + - LP: #745358 + * [Config] Disable CONFIG_DRM_RADEON_KMS on powerpc kernels + * [Config] Build some framebuffer drivers as modules for powerpc kernels. + + [ Manoj Iyer ] + + * SAUCE: thinkpad-acpi: module autoloading for newer Lenovo ThinkPads. + - LP: #745217 + + [ Tim Gardner ] + + * SAUCE: INR_OPEN=4096 + - LP: #663090 + * SAUCE: Increase the default hard limit for open FDs to 4096 + - LP: #663090 + + [ Upstream Kernel Changes ] + + * (drop after 2.6.39-rc1) arm: versatile : Fix typo introduced in irq + namespace cleanup + * (drop after 2.6.39-rc1) [media] staging: altera-jtag needs delay.h + * ALSA: pcm: fix infinite loop in snd_pcm_update_hw_ptr0() + + [ Major Kernel Changes ] + + * rebase from v2.6.38 to v2.6.39-rc1 + + -- Leann Ogasawara Thu, 31 Mar 2011 12:50:10 -0700 + +linux (2.6.39-0.0) oneiric; urgency=low + + [ Leann Ogasawara ] + + * Open Oneiric + + -- Leann Ogasawara Thu, 31 Mar 2011 12:29:23 -0700 + +linux (2.6.38-7.39) natty; urgency=low + + [ Leann Ogasawara ] + + * No change upload. This is just to rebuild with gcc-4.5.2-7ubuntu1. + + -- Leann Ogasawara Thu, 24 Mar 2011 09:27:45 -0700 + +linux (2.6.38-7.38) natty; urgency=low + + [ Leann Ogasawara ] + + * No change upload take 2. 2.6.38-7.37 was accidentally uploaded before + gcc-4.5.2-6ubuntu5 finished building on all arches. + + -- Leann Ogasawara Tue, 22 Mar 2011 06:12:47 -0700 + +linux (2.6.38-7.37) natty; urgency=low + + [ Leann Ogasawara ] + + * No change upload. This is just to rebuild with gcc-4.5.2-6ubuntu5. + + -- Leann Ogasawara Sun, 20 Mar 2011 16:02:48 -0700 + +linux (2.6.38-7.36) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: KLUDGE: work around failed 'shrink-wrap' compiler + optimisation" + * purge last vestiges of maverick + * [Config] switch CONFIG_FB_VESA back to module + + [ Chris Wilson ] + + * SAUCE: drm/i915: Fix pipelined fencing + - LP: #717114 + + [ Loïc Minier ] + + * Include nls_cp437 module in virtual for fat + - LP: #732046 + * Support arch= cross-compilation for any arch + * Fix couple of typos in 0-common-vars.mk + * Enforce DEFAULT_MMAP_MIN_ADDR on armhf + * Add armhf to Debian -> Linux arch map + * Add initial armhf.mk + * Enable common packages for armhf + + [ Upstream Kernel Changes ] + + * Yama: fix default relationship to check thread group + - LP: #737676 + + -- Andy Whitcroft Fri, 18 Mar 2011 18:18:02 +0000 + +linux (2.6.38-7.35) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to 2fbfac4e053861925fa3fffcdc327649b09af54c + * rebase fixes bug #715330 + * [Config] disable CONFIG_SCSI_QLA_ISCSI for powerpc 32bit to fix FTBS + * rebase to v2.6.38 final + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: Apply OPTION_BLACKLIST_SENDSETUP also for ZTE MF626 + - LP: #636091 + + [ Tim Gardner ] + + * [Confg] CONFIG_BOOT_PRINTK_DELAY=y + + [ Upstream Kernel Changes ] + + * Yama: use thread group leader when creating match + - LP: #729839 + * (drop after 2.6.38) ahci: AHCI mode SATA patch for Intel Patsburg SATA + RAID controller + - LP: #735240 + * (drop after v2.6.38) x86, quirk: Fix SB600 revision check + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc8 to v2.6.38 final + - LP: #715330 + + -- Andy Whitcroft Tue, 15 Mar 2011 19:04:19 +0000 + +linux (2.6.38-6.34) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] normalise CONFIG_INTEL_TXT + * SAUCE: KLUDGE: work around failed 'shrink-wrap' compiler optimisation + - LP: #730860 + * rebase to mainline v2.6.38-rc8 + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc7 + fb62c00a6d8942775abc23d1621db1252e2d93d1 + to v2.6.38-rc8 + + -- Andy Whitcroft Tue, 08 Mar 2011 11:54:48 +0000 + +linux (2.6.38-6.33) natty; urgency=low + + [ Andy Whitcroft ] + + * d-i -- enable speakup-modules udeb + - LP: #672699 + * rebase to 493f3358cb289ccf716c5a14fa5bb52ab75943e5 + * [Config] debian PPC64 configuration + * [Config] cleanup powerpc config fixing unexpected inconsistancies + * [Config] resync ppc64 configuration + * SAUCE: match up ENTRY/END naming for 32/64 bit + * rebase to fb62c00a6d8942775abc23d1621db1252e2d93d1 + * [Config] update configs after rebase to + fb62c00a6d8942775abc23d1621db1252e2d93d1 + * [Config] pps_gen_parport no longer built + + [ Corentin Chary ] + + * SAUCE: (drop after 2.6.38) eeepc-wmi: reorder keymap + - LP: #689393 + * SAUCE: (drop after 2.6.38) eeepc-wmi: add wlan key found on 1015P + - LP: #689393 + + [ John Johansen ] + + * SAUCE: Fix aufs calling of security_path_mknod + - LP: #724456 + + [ Kees Cook ] + + * SAUCE: proc: hide kernel addresses via %pK in /proc//stack + + [ Tim Gardner ] + + * rebase to 2.6.38-rc7 + + [ Upstream Kernel Changes ] + + * Revert "drm/i915: fix corruptions on i8xx due to relaxed fencing" + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc6 to v2.6.38-rc7 + + fb62c00a6d8942775abc23d1621db1252e2d93d1 + - LP: #721389 + - LP: #722925 + - LP: #723672 + - LP: #723676 + - LP: #715318 + + -- Andy Whitcroft Mon, 07 Mar 2011 15:33:17 +0000 + +linux (2.6.38-5.32) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to mainline 6f576d57f1fa0d6026b495d8746d56d949989161 + * [Config] updateconfigs following rebase to v2.6.38-rc6 + * [Config] enable CONFIG_DMAR + - LP: #552311 + + [ Upstream Kernel Changes ] + + * drm/i915: skip FDI & PCH enabling for DP_A + - LP: #561802, #600453, #681877 + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc5 to v2.6.38-rc6 + - LP: #718402 + - LP: #719524 + - LP: #721126 + - LP: #719691 + - LP: #722689 + - LP: #722310 + + -- Andy Whitcroft Tue, 22 Feb 2011 13:28:39 +0000 + +linux (2.6.38-4.31) natty; urgency=low + + [ Andy Whitcroft ] + + * add in bugs closed by upstream patches pulled in by rebases + * rebase to 795abaf1e4e188c4171e3cd3dbb11a9fcacaf505 + * [Config] enable CONFIG_VSX to allow use of vector instuctions + * resync with maverick 98defa1c5773a3d7e4c524967eb01d5bae035816 + * rebase to mainline v2.6.38-rc5 + * SAUCE: ecryptfs: read on a directory should return EISDIR if not + supported + - LP: #719691 + + [ Colin Ian King ] + + * SAUCE: Dell All-In-One: Remove need for Dell module alias + + [ Manoj Iyer ] + + * SAUCE: (drop after 2.6.38) add ricoh 0xe823 pci id. + - LP: #717435 + + [ Tim Gardner ] + + * [Config] CONFIG_CRYPTO_CRC32C_INTEL=y + + [ Upstream Kernel Changes ] + + * Quirk to fix suspend/resume on Lenovo Edge 11,13,14,15 + - LP: #702434 + * vfs: fix BUG_ON() in fs/namei.c:1461 + + [ Vladislav P ] + + * SAUCE: Release BTM while sleeping to avoid deadlock. + - LP: #713837 + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc4 to v2.6.38-rc5 + - LP: #579276 + - LP: #715877 + - LP: #713769 + - LP: #716811 + * resync with Maverick Ubuntu-2.6.35-27.47 + + -- Andy Whitcroft Fri, 11 Feb 2011 17:24:09 +0000 + +linux (2.6.38-3.30) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.38-rc4 + * ppc64 -- add basic architecture + * ubuntu: AUFS -- update to 65835da20b77c98fb538c9114fc31f5de1328230 + + [ Colin Ian King ] + + * SAUCE: Add WMI hotkeys support for Dell All-In-One series + - LP: #676997 + * SAUCE: Add WMI hotkeys support for another Dell All-In-One series + - LP: #701530 + * SAUCE: Dell WMI: Use sparse keymaps and tidy up code. + - LP: #701530 + + [ Dan Rosenberg ] + + * SAUCE: (drop after 2.6.38) Convert net %p usage %pK + + [ Kees Cook ] + + * Revert "SAUCE: kernel: make /proc/kallsyms mode 400 to reduce ease of + attacking" + * SAUCE: (drop after 2.6.38) use %pK for /proc/kallsyms and /proc/modules + + [ Tim Gardner ] + + * [Config] CONFIG_BLK_CGROUP=y + - LP: #706394 + * [Config] CONFIG_DELL_WMI_AIO=m + + [ Upstream Kernel Changes ] + + * drm/i915/lvds: Restore dithering on native modes for gen2/3 + - LP: #711568 + + [ Upstream Kernel Changes ] + + * rebase from v2.6.38-rc3 to v2.6.38-rc4. + - LP: #701271 + - LP: #708521 + - LP: #710371 + + -- Andy Whitcroft Tue, 08 Feb 2011 02:07:18 +0000 + +linux (2.6.38-2.29) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to 1f0324caefd39985e9fe052fac97da31694db31e + * [Config] updateconfigs following rebase to + 1f0324caefd39985e9fe052fac97da31694db31e + * rebase to 70d1f365568e0cdbc9f4ab92428e1830fdb09ab0 + * [Config] reenable HIBERNATE + - LP: #710877 + * rebase to v2.6.38-rc3 + * [Config] reenable CONFIG_CRASH_DUMP + + [ Kamal Mostafa ] + + * SAUCE: rtl8192se: fix source file perms + * SAUCE: rtl8192se: fix source file newline + * SAUCE: omnibook: fix source file newline + + [ Kees Cook ] + + * [Config] packaging: really make System.map mode 0600 + + [ Ricardo Salveti de Araujo ] + + * SAUCE: OMAP3630: PM: don't warn the user with a trace in case of + PM34XX_ERRATUM + + [ Soren Hansen ] + + * SAUCE: nbd: Remove module-level ioctl mutex + + [ Tim Gardner ] + + * SAUCE: Disable building the ACPI debugfs source + + [ Upstream Kernel Changes ] + + * Set physical start and alignment 1M for virtual i386 + - LP: #710754 + + [ Upstream Kernel Changes ] + + * rebase from v2.6.38-rc2 + c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + to v2.6.38-rc3 + - LP: #707902 + + -- Andy Whitcroft Fri, 28 Jan 2011 16:30:32 +0000 + +linux (2.6.38-1.28) natty; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update to b1cee06249dfa0ab30951e7f06490a75c155b620 + + [ Ricardo Salveti de Araujo ] + + * SAUCE: omap3: beaglexm: fix DVI initialization + * [Config] omap: move CONFIG_PANEL_GENERIC_DPI to build in to make + display work at Beagle + + -- Andy Whitcroft Fri, 28 Jan 2011 10:51:57 +0000 + +linux (2.6.38-1.27) natty; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update aufs-update to track new locations of headers + * ubuntu: AUFS -- update to c5021514085a5d96364e096dbd34cadb2251abfd + * SAUCE: ensure root is ready before running usermodehelpers in it + * correct the Vcs linkage to point to natty + * rebase to linux tip e78bf5e6cbe837daa6ab628a5f679548742994d3 + * [Config] update configs following rebase + e78bf5e6cbe837daa6ab628a5f679548742994d3 + * SAUCE: Yama: follow changes to generic_permission + * ubuntu: compcache -- follow changes to bd_claim/bd_release + * ubuntu: iscsitarget -- follow changes to open_bdev_exclusive + * ubuntu: ndiswrapper -- fix interaction between __packed and packed + * ubuntu: AUFS -- update to 806051bcbeec27748aae2b7957726a4e63ff308e + * update package version to match payload version + * rebase to e6f597a1425b5af64917be3448b29e2d5a585ac8 + * rebase to v2.6.38-rc1 + * [Config] updateconfigs following rebase to v2.6.38-rc1 + * SAUCE: x86 fix up jiffies/jiffies_64 handling + * rebase to linus tip 2b1caf6ed7b888c95a1909d343799672731651a5 + * [Config] updateconfigs following rebase to + 2b1caf6ed7b888c95a1909d343799672731651a5 + * [Config] disable CONFIG_TRANSPARENT_HUGEPAGE to fix i386 boot crashes + * ubuntu: AUFS -- suppress benign plink warning messages + - LP: #621195 + * [Config] CONFIG_NR_CPUS=256 for amd64 -server flavour + * rebase to v2.6.38-rc2 + * rebase to mainline d315777b32a4696feb86f2a0c9e9f39c94683649 + * rebase to c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + * [Config] update configs following rebase to + c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + * [Config] disable CONFIG_AD7152 to fix FTBS on armel versatile + * [Config] disable CONFIG_AD7150 to fix FTBS on armel versatile + * [Config] disable CONFIG_RTL8192CE to fix FTBS on armel omap + * [Config] disable CONFIG_MANTIS_CORE to fix FTBS on armel versatile + + [ Kees Cook ] + + * SAUCE: kernel: make /proc/kallsyms mode 400 to reduce ease of attacking + + [ Stefan Bader ] + + * Temporarily disable RODATA for virtual i386 + - LP: #699828 + + [ Tim Gardner ] + + * [Config] CONFIG_NLS_DEFAULT=utf8 + - LP: #683690 + * [Config] CONFIG_HIBERNATION=n + * update bnx2 firmware files in d-i/firmware/nic-modules + + [ Upstream Kernel Changes ] + + * Revert "drm/radeon/bo: add some fallback placements for VRAM only + objects." + * packaging: make System.map mode 0600 + * thinkpad_acpi: Always report scancodes for hotkeys + - LP: #702407 + * sched: tg->se->load should be initialised to tg->shares + * Input: sysrq -- ensure sysrq_enabled and __sysrq_enabled are consistent + * brcm80211: include linux/slab.h for kfree + * pch_dma: add include/slab.h for kfree + * i2c-eg20t: include linux/slab.h for kfree + * gpio/ml_ioh_gpio: include linux/slab.h for kfree + * tty: include linux/slab.h for kfree + * winbond: include linux/delay.h for mdelay et al + + [ Upstream Kernel Changes ] + + * mark the start of v2.6.38 versioning + * rebase v2.6.37 to v2.6.38-rc2 + c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + - LP: #689886 + - LP: #702125 + - LP: #608775 + - LP: #215802 + - LP: #686333 + - LP: #677830 + - LP: #677652 + - LP: #696493 + - LP: #697240 + - LP: #689036 + - LP: #705323 + - LP: #686692 + + -- Andy Whitcroft Sun, 09 Jan 2011 13:44:52 +0000 + +linux (2.6.37-12.26) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.37-rc8 + * [Config] armel -- reenable omap flavour + * [Config] disable CONFIG_MACH_OMAP3517EVM to fix FTBS on armel omap + * [Config] disable CONFIG_GPIO_VX855 to fix FTBS on omap armel + * [Config] disable CONFIG_WESTBRIDGE_ASTORIA to fix FTBS on omap armel + * [Config] disable CONFIG_TI_DAVINCI_EMAC to fix FTBS on omap armel + * rebase to mainline 989d873fc5b6a96695b97738dea8d9f02a60f8ab + * [Config] track missing modules + * rebase to v2.6.37 final + + [ Chase Douglas ] + + * SAUCE: (drop after 2.6.37) HID: magicmouse: Don't report REL_{X, Y} for + Magic Trackpad + + [ Stefan Bader ] + + * Revert "SAUCE: blkfront: default to sd devices" + - LP: #684875 + + [ Tim Gardner ] + + * Revert "SAUCE: (no-up) libata: Ignore HPA by default." + - LP: #380138 + * [Config] Added autofs4.ko to -virtual flavour + - LP: #692917 + + [ Upstream Kernel Changes ] + + * Add support for Intellimouse Mode in ALPS touchpad on Dell E2 series + Laptops + - LP: #632884 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc8 + * rebase to mainline 989d873fc5b6a96695b97738dea8d9f02a60f8ab + * rebase to v2.6.37 final + + -- Andy Whitcroft Thu, 23 Dec 2010 18:34:13 +0000 + +linux (2.6.37-11.25) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] d-i -- add hpsa to the list of block devices + - LP: #684304 + * [Config] add vmw-balloon driver to -virtual flavour + - LP: #592039 + * rebase to v2.6.37-rc7 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc7 + + -- Andy Whitcroft Tue, 21 Dec 2010 13:35:28 +0000 + +linux (2.6.37-10.24) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.37-rc6 + * updateconfigs following rebase to v2.6.37-rc6 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc6 + + -- Andy Whitcroft Thu, 16 Dec 2010 12:34:19 +0000 + +linux (2.6.37-9.23) natty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: vt -- fix handoff numbering to 1..n and add range checks + - LP: #689606 + * SAUCE: vt -- fix handoff numbering to 1..n and add range checks (grub) + - LP: #689606 + + [ Kees Cook ] + + * SAUCE: RO/NX protection for loadable kernel, fix ftrace + - LP: #690190 + + -- Andy Whitcroft Wed, 15 Dec 2010 19:29:57 +0000 + +linux (2.6.37-9.22) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.35-rc5 + * [Config] updateconfigs following rebase to v2.6.37-rc5 + * (no-up) add support for installed header files to ubuntu directory + - LP: #684666 + * ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers + - LP: #684666 + * ubuntu: dm-raid4-5 -- follow changes to bio flags + * ubuntu: dm-raid4-5 -- re-enable + * ubuntu: omnibook -- update BOM + * ubuntu: ndiswrapper -- update BOM to match actual version + * ubuntu: ndiswrapper -- follow removal of the BKL and locked ioctl + * ubuntu: ndiswrapper -- re-enable + * ubuntu: iscsitarget -- re-instate copy_io_context + * ubuntu: iscsitarget -- follow changes to semaphore initialisation + * ubuntu: iscsitarget -- convert NIPQUAD to %pI4 + * ubuntu: iscsitarget -- re-enable + + [ Kees Cook ] + + * [Config] update config for CONFIG_DEBUG_SET_MODULE_RONX + + [ Manoj Iyer ] + + * SAUCE: Enable jack sense for Thinkpad Edge 13 + - LP: #685015 + + [ Tim Gardner ] + + * [Config] CONFIG_9P_FSCACHE=y,CONFIG_9P_FS_POSIX_ACL=y + * [Config] CONFIG_CRYPTO_CRC32C=y + - LP: #681819 + * [Config] CONFIG_9P_FSCACHE=n + * [Config] Add nfsd modules to -virtual flavour + - LP: #688070 + + [ Upstream Kernel Changes ] + + * Revert "Staging: zram: work around oops due to startup ordering snafu" + * NFS: Fix panic after nfs_umount() + - LP: #683938 + * x86: Add NX protection for kernel data + * x86: Add RO/NX protection for loadable kernel modules + * x86: Resume trampoline must be executable + * x86: RO/NX protection for loadable kernel, jump_table fix + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc5 + + -- Andy Whitcroft Thu, 09 Dec 2010 18:15:35 +0000 + +linux (2.6.37-8.21) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- include the aufs_types.h file in + linux-libc-headers" + * Revert "(no-up) add support for installed header files to ubuntu + directory" + + -- Andy Whitcroft Sun, 05 Dec 2010 17:33:28 +0000 + +linux (2.6.37-8.20) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] drivers/serial/mfd.c: Fix ARM compile error" + * Revert "SAUCE: Nouveau: Disable acceleration on MacBook Pros" + * Revert "SAUCE: Nouveau: Add quirk framework to disable acceleration" + * Revert "SAUCE: i915 -- disable powersave by default" + * SAUCE: enable Marvell 9128 PCIe SATA controller + - LP: #658521 + * [Config] evtchn has been renamed + * (no-up) add support for installed header files to ubuntu directory + - LP: #684666 + * ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers + - LP: #684666 + + [ Tim Gardner ] + + * [Config] MISS: evtchn, NEW : xen-evtchn + * rebase to v2.6.37-rc4 + + [ Upstream Kernel Changes ] + + * drm/i915: Clean conflicting modesetting registers upon init + - LP: #683775 + * rebase to v2.6.37-rc4 + + -- Andy Whitcroft Fri, 03 Dec 2010 18:42:07 +0000 + +linux (2.6.37-7.19) natty; urgency=low + + [ Tim Gardner ] + + * [Config] Add bnx2 firmware to nic-modules udeb + - LP: #676245 + + -- Andy Whitcroft Fri, 26 Nov 2010 17:53:45 +0000 + +linux (2.6.37-7.18) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] USB: option: Remove duplicate AMOI_VENDOR_ID" + * Revert "SAUCE: Add extra headers to linux-libc-dev" + * Revert "SAUCE: Enable speedstep for sonoma processors." + * [Config] enable CONFIG_BT_HCIUART_ATH3K + * [Config] enable CONFIG_IWLWIFI_DEBUGFS + * [Config] standardise CONFIG_MII + * [Config] standardise CONFIG_PRISM2_USB + * [Config] standardise CONFIG_SCSI_QLA_ISCSI + * [Config] build in CONFIG_AGP + * [Config] build in CONFIG_AGP_INTEL + * [Config] build in CONFIG_AGP_AMD + * [Config] build in CONFIG_AGP_AMD64 + * [Config] build in CONFIG_AGP_NVIDIA + * [Config] build in CONFIG_AGP_VIA + * [Config] disable CONFIG_SCSI_QLA_ISCSI for FTBS (arm) + * (no-up): document the new ## scheme + * [Config] harmonise CONFIG_SERIAL_8250_NR_UARTS + * [Config] update CONFIG_SERIAL_8250_RUNTIME_UARTS=32 + - LP: #675453 + + [ Mathieu J. Poirier ] + + * SAUCE: ARM: Adding vdd_sdi regulator supply to OMAP3EVM + + [ Upstream Kernel Changes ] + + * nx-emu: fix inverted report of disable_nx + + -- Andy Whitcroft Tue, 23 Nov 2010 21:00:39 +0000 + +linux (2.6.37-6.17) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- aufs2-standalone.patch + aufs2.1-36-UNRELEASED-20101103" + * Revert "ubuntu: AUFS -- aufs2-base.patch + aufs2.1-36-UNRELEASED-20101103" + * [Config] standardise CONFIG_BT + * [Config] standardise CONFIG_IRDA + * [Config] standardise CONFIG_LAPB + * [Config] standardise CONFIG_RDS + * [Config] standardise CONFIG_RFKILL + * [Config] standardise CONFIG_TIPC + * [Config] standardise CONFIG_X25 + * [Config] standardise CONFIG_INPUT_EVDEV + * [Config] standardise CONFIG_INPUT_JOYDEV + * [Config] standardise CONFIG_INPUT_JOYSTICK + * [Config] standardise CONFIG_INPUT_TOUCHSCREEN + * [Config] CONFIG_INPUT_TOUCHSCREEN=n for FTBS (arm) + * [Config] CONFIG_IRDA=n for FTBS (arm) + * ubuntu: AUFS -- aufs2-base.patch aufs2.1-37 + * ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-37 + * ubuntu: AUFS -- update to 097bf62d6f49619359d34bf17f242df38562489a + + [ Tim Gardner ] + + * SAUCE: Fix drivers/staging/easycap FTBS + * [Config] CONFIG_EASYCAP=m after fixing FTBS + + [ Upstream Kernel Changes ] + + * Revert "x86: Add NX protection for kernel data" + + -- Andy Whitcroft Mon, 22 Nov 2010 18:09:10 +0000 + +linux (2.6.37-6.16) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Config] update config for CONFIG_DEBUG_SET_MODULE_RONX" + * rebase to v2.6.37-rc3 + + [ Tim Gardner ] + + * [Config] CONFIG_SCHED_AUTOGROUP=y + + [ Upstream Kernel Changes ] + + * Revert "x86: Add RO/NX protection for loadable kernel modules" + * sched: automated per session task groups + * rebase to v2.6.37-rc3 + + -- Andy Whitcroft Mon, 22 Nov 2010 10:11:13 +0000 + +linux (2.6.37-6.15) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] standardise CONFIG_CEPH_FS + * [Config] standardise CONFIG_SCSI_LPFC_DEBUG_FS + * [Config] standardise CONFIG_SCSI_PROC_FS + * [Config] standardise CONFIG_UBIFS_FS + * [Config] standardise CONFIG_USB_GADGET_DEBUG_FS + + [ Kees Cook ] + + * [Config] update config for CONFIG_DEBUG_SET_MODULE_RONX + + [ Manoj Iyer ] + + * SAUCE: Enable jack sense for Thinkpad Edge 11 + - LP: #677210 + * SAUCE: enable rfkill for rtl8192se driver + - LP: #640992 + + [ Tim Gardner ] + + * [Config] CONFIG_EASYCAP=n for FTBS + * Rebase to v2.6.32-rc2+git + + [ Upstream Kernel Changes ] + + * x86: Fix improper large page preservation + * x86: Add NX protection for kernel data + * x86: Add RO/NX protection for loadable kernel modules + + [ Upstream Kernel Changes ] + + * Rebase to Linus 2.6.37-rc2+git + + -- Andy Whitcroft Sat, 20 Nov 2010 11:40:00 +0000 + +linux (2.6.37-5.14) natty; urgency=low + + [ Upstream Kernel Changes ] + + * PCI: fix offset check for sysfs mmapped files + - LP: #676963 + + -- Andy Whitcroft Thu, 18 Nov 2010 18:12:27 +0000 + +linux (2.6.37-5.13) natty; urgency=low + + [ Andy Whitcroft ] + + * rebased to v2.6.37-rc2 + * updateconfigs following rebase to v2.6.37-rc2 + + [ Tim Gardner ] + + * [Config] Added NFS and related modules to virtual flavour + - LP: #659084 + + [ Upstream Kernel Changes ] + + * x86, cpu: Rename verify_cpu_64.S to verify_cpu.S + * x86, cpu: Clear XD_DISABLED flag on Intel to regain NX + * x86, cpu: Call verify_cpu during 32bit CPU startup + * x86, cpu: Only CPU features determine NX capabilities + + [ Upstream Changes ] + + * rebased to v2.67.37-rc2 + + -- Andy Whitcroft Tue, 16 Nov 2010 13:13:29 +0000 + +linux (2.6.37-4.12) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] HID: magicmouse: add param for scroll speed" + * Revert "[Upstream] HID: magicmouse: properly account for scroll + movement in state" + * Revert "[Upstream] HID: magicmouse: disable and add module param for + scroll acceleration" + * Revert "[Upstream] HID: magicmouse: scroll on entire surface, not just + middle of mouse" + + [ Henrik Rydberg ] + + * SAUCE: hid: ntrig: remove sysfs nodes + * SAUCE: hid: ntrig: Setup input filtering manually + * SAUCE: hid: ntrig: New ghost-filtering event logic + + [ Manoj Iyer ] + + * SAUCE: Added quirk to recognize GE0301 3G modem as an interface. + - LP: #348861 + + [ Upstream Kernel Changes ] + + * Revert "mmc: fix all hangs related to mmc/sd card insert/removal during + suspend/resume" + * Revert "[ARM] implement arch_randomize_brk()" + * Revert "ARM: stack protector: change the canary value per task" + * Revert "ARM: initial stack protector (-fstack-protector) support" + * Revert "ALSA: hda - Handle pin NID 0x1a on ALC259/269" + * Revert "ALSA: hda - Handle missing NID 0x1b on ALC259 codec" + * Revert "perf probe: Add kernel source path option" + * hid: ntrig: Support single-touch devices + * hid: ntrig: Mask pen switch events + * net: rtnetlink.h -- only include linux/netdevice.h when used by the + kernel + - LP: #673073 + * Fix userspace build of linux/fs.h + + -- Andy Whitcroft Mon, 15 Nov 2010 19:31:44 +0000 + +linux (2.6.37-3.11) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- update to + b37c575759dc4535ccc03241c584ad5fe69e3b25" + * Revert "ubuntu: AUFS -- track changes to the arguements to fop fsync()" + * Revert "ubuntu: AUFS -- update to standalone 2.6.35-rcN as at 20100601" + * Revert "ubuntu: AUFS -- update to standalone 2.6.34 as at 20100601" + * Revert "ubuntu: AUFS -- aufs2 base patch for linux-2.6.34" + * [Config] Disable intel_idle for -virtual kernels + - LP: #651370 + * [Config] enforcer -- ensure we never enable CONFIG_IMA + * debian -- pass the correct flavour name when checking configs + * [Config] enforcer -- ensure CONFIG_INTEL_IDLE is off for -virtual + * [Config] ensure CONFIG_IPV6=y for powerpc + * [Config] enforcer -- ensure CONFIG_IPV6=y + * ubuntu: AUFS -- aufs2-base.patch aufs2.1-36-UNRELEASED-20101103 + * ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-36-UNRELEASED-20101103 + * ubuntu: AUFS -- update to aufs2.1-36-UNRELEASED-20101103 + * ubuntu: AUFS -- re-enable + * ubuntu: AUFS -- track changes to work queue initialisation + * ubuntu: AUFS -- track changes to llseek in v2.6.37-rc1 + * SAUCE: fbcon -- fix race between open and removal of framebuffers + * SAUCE: fbcon -- fix OOPs triggered by race prevention fixes + - LP: #614008 + * SAUCE: drm -- stop early access to drm devices + + [ Jeremy Kerr ] + + * [Config] Build-in powermac ZILOG serial driver + - LP: #673346 + + [ Kees Cook ] + + * SAUCE: nx-emu: use upstream ASLR when possible + + [ Tim Gardner ] + + * [Config] Use correct be2iscsi module name in d-i/modules/scsi-modules + - LP: #628776 + + [ Upstream Kernel Changes ] + + * i386: NX emulation + * nx-emu: drop exec-shield sysctl, merge with disable_nx + * nx-emu: standardize boottime message prefix + * mmap randomization for executable mappings on 32-bit + * exec-randomization: brk away from exec rand area + + -- Andy Whitcroft Thu, 11 Nov 2010 23:46:37 +0000 + +linux (2.6.37-2.10) natty; urgency=low + + [ Andy Whitcroft ] + + * reinstate armel config changes: + * [Config] CONFIG_GPIO_PCH=n for armel FTBS + * [Config] CONFIG_GPIO_VX855=n for armel FTBS + + -- Andy Whitcroft Wed, 03 Nov 2010 22:20:35 +0000 + +linux (2.6.37-2.9) natty; urgency=low + + [ Andy Whitcroft ] + + * config -- fix genportsconfig + * [Config] move powerpc over from ports to distro + * bump master version number to match contained kernel + * SAUCE: fix documentation strings for struct input_keymap_entry + * usb: gadget: goku_udc: add registered flag bit + + -- Andy Whitcroft Tue, 02 Nov 2010 15:14:11 +0000 + +linux (2.6.36-2.8) natty; urgency=low + + [ Tim Gardner ] + + * [Config]: fix changed CONFIG_SYSFS_DEPRECATED_V2 enforcement rules + * [Config]: TWL4030_CORE=n for FTBS + * [Config]: CONFIG_ATH6K_LEGACY=n for FTBS + * [Config]: CONFIG_SOLO6X10=n for FTBS + * [Config]: CONFIG_GPIO_PCH=n for armel FTBS + * [Config]: CONFIG_GPIO_VX855=n for armel FTBS + * [Config]: CONFIG_DRM_NOUVEAU=n for armel FTBS + * [Config]: CONFIG_LINE6_USB=n for armel FTBS + * [Config]: CONFIG_SENSORS_AK8975=n for armel FTBS + * [Config]: CONFIG_I2C_I801=n for armel FTBS + * UBUNTU: SAUCE: AppArmor: Fix unpack of network tables. + * AppArmor: compatibility patch for v5 interface + * AppArmor: compatibility patch for v5 network controll + * Dropped (pre-stable): input: Support Clickpad devices in ClickZone mode + * Dropped: UBUNTU: SAUCE: libata: Add ALPM power state accounting to the AHCI driver + * Dropped: UBUNTU: SAUCE: Added quirk to recognize GE0301 3G modem as an interface. + * Dropped: hid: 3m: Convert to MT slots + * Dropped: HID: magicmouse: don't allow hidinput to initialize the device + * Dropped: HID: magicmouse: simplify touch data bit manipulation + * Dropped: HID: magicmouse: simplify touch down logic + * Dropped: HID: magicmouse: enable Magic Trackpad support + * Dropped: UBUNTU: SAUCE: hid: ntrig: remove sysfs nodes + * Dropped: UBUNTU: SAUCE: hid: ntrig: Setup input filtering manually + * Dropped: UBUNTU: SAUCE: hid: ntrig: New ghost-filtering event logic + * Dropped: UBUNTU: SAUCE: hid: ntrig: identify firmware version (wiggled) + * Dropped: UBUNTU: (pre-stable): input: Support Clickpad devices in ClickZone mode + * Dropped: UBUNTU: SAUCE: KMS: cache the EDID information of the LVDS + * Dropped: UBUNTU: SAUCE: fbcon -- fix race between open and removal of framebuffers + * Dropped: UBUNTU: SAUCE: fbcon -- fix OOPs triggered by race prevention fixes + * Dropped: UBUNTU: SAUCE: x86: implement cs-limit nx-emulation for ia32 + * Dropped: UBUNTU: SAUCE: x86: more tightly confine cs-limit nx-emulation to ia32 only + * Dropped: UBUNTU: SAUCE: [um] Don't use nx_enabled under UML + * Dropped: UBUNTU: SAUCE: x86: brk away from exec rand area + + [ Upstream Kernel Changes ] + + * rebased against 2.6.27-rc1 + + -- Tim Gardner Fri, 22 Oct 2010 19:35:05 -0600 + +linux (2.6.36-1.7) natty; urgency=low + + [ Andy Whitcroft ] + + * rebased to v2.6.36 final + * [Config] update configs following rebase to v2.6.36 final + * [Config] update ports configs following rebase to v2.6.36 final + + [ Upstream Kernel Changes ] + + * rebased to v2.6.36 final + + -- Andy Whitcroft Thu, 21 Oct 2010 14:28:57 +0100 + +linux (2.6.36-1.6) natty; urgency=low + + [ Upstream Kernel Changes ] + + * drop broadcom staging driver preview: + * Revert "Staging: Add initial release of brcm80211 - Broadcom 802.11n + wireless LAN driver." + + -- Andy Whitcroft Wed, 20 Oct 2010 10:41:25 +0100 + +linux (2.6.36-1.5) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.36-rc8 + * updateconfigs following rebase to v2.6.36-rc8 + * updateportsconfigs following rebase to v2.6.36-rc8 + * config -- simplify the kernelconfig interface + * config -- add new config mode 'dumpconfigs' + + [ Tim Gardner ] + + * Simplify the use of CROSS_COMPILER + + [ Upstream Kernel Changes ] + + * drop broadcom staging driver preview: + * Revert "staging: brcm80211: Make compiling of brcm80211.ko and + brcmfmac.ko mutually exclusive." + * Revert "staging: brcm80211: Fix compile issue when BRCM80211_PCI is not + set." + * Revert "Staging: brcm80211: remove driver specific -W options" + * Revert "Staging: brcm80211: clean up makefile cflag lines" + * Revert "staging: brcm80211: add fullmac driver" + * Revert "staging: brcm80211: use string native library" + * Revert "staging: brcm80211: use native ctype library" + * Revert "staging: brcm80211: fix remaining checkpatch errors." + * Revert "staging: brcm80211: fix "ERROR: trailing whitespace."" + * Revert "staging: brcm80211: fix "ERROR: spaces required around that + ..."" + * Revert "staging: brcm80211: fix "ERROR: spaces prohibited around that + ':' ..."" + * Revert "staging: brcm80211: fix "ERROR: space required before that + ..."" + * Revert "staging: brcm80211: fix "ERROR: space required after that ..."" + * Revert "staging: brcm80211: fix "ERROR: space required after that close + brace"" + * Revert "staging: brcm80211: fix "ERROR: space prohibited before + ...close square bracket"" + * Revert "staging: brcm80211: fix "ERROR: space prohibited after that + ..."" + * Revert "staging: brcm80211: fix "ERROR: need consistent spacing around + '*'"" + * Revert "staging: brcm80211: fix 'ERROR: "(foo*)" should be "(foo *)"'" + * Revert "staging: brcm80211: fix "ERROR: Macros w/ mult. statements ... + do - while loop"" + * Revert "staging: brcm80211: fix "ERROR: Macros w/ complex values ... + parenthesis"" + * Revert "staging: brcm80211: fix "ERROR: do not initialise statics to 0 + or NULL"" + * Revert "staging: brcm80211: fix "ERROR: do not initialise globals to 0 + or NULL"" + * Revert "staging: brcm80211: fix "ERROR: while should follow close brace + '}'"" + * Revert "staging: brcm80211: fix "ERROR: that open brace { ... prev + line"" + * Revert "staging: brcm80211: fix "ERROR: trailing statements should be + on next line"" + * Revert "staging: brcm80211: fix "ERROR: do not use assignment in if + condition"" + * Revert "staging: brcm80211: fix "ERROR: return is not a function, + paren..."" + * Revert "staging: brcm80211: fix "ERROR: open brace '{' following + function dec..."" + * Revert "staging: brcm80211: fix 'ERROR: "foo * bar" should be "foo + *bar"'" + * Revert "staging: brcm80211: Fix URLs for firmware files." + * Revert "staging: brcm80211: use '%pM' format to print MAC address" + * Revert "staging: brcm80211: Add contact info to TODO list." + * Revert "staging: brcm80211: Fix some initialisation failure paths" + * Export dump_{write,seek} to binary loader modules + * rebase to v2.6.36-rc8. + + -- Andy Whitcroft Tue, 19 Oct 2010 18:58:11 +0100 + +linux (2.6.36-0.4) natty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: perf: increase stack footprint to avoid stack-protector warning + (fixes FTBS on powerpc) + + -- Andy Whitcroft Thu, 14 Oct 2010 13:16:16 +0100 + +linux (2.6.36-0.3) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] disable CONFIG_SCSI_QLA_ISCSI to fix FTBS on powerpc + + -- Andy Whitcroft Thu, 14 Oct 2010 03:01:30 +0100 + +linux (2.6.36-0.2) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] updateportsconfigs following rebase to 2.6.36-rc7 + (fix FTBS on powerpc) + + -- Andy Whitcroft Wed, 13 Oct 2010 23:25:12 +0100 + +linux (2.6.36-0.1) natty; urgency=low + + [ Andy Whitcroft ] + + * reduce disk usage during buildd builds + - LP: #645653 + * [Config] enforcer -- ensure CONFIG_INIT_PASS_ALL_PARAMS is y + * [Config] armel -- drop omap flavour + + [ Tim Gardner ] + + * Added dropped patch list + * more dropped patches + * [Config] Disable aufs, dmraid-4.5, ndis-wrapper + * [Config] Add support for cross compiling armel + * [Config] CONFIG_SCSI_QLA_ISCSI=n for armel + * [Upstream] drivers/serial/mfd.c: Fix ARM compile error + * [Config]: updateconfigs after adding brcm80211 + * staging: brcm80211: Fix Makefile syntax error + * rebased to v2.6.36-rc7 + + [ Upstream Kernel Changes ] + + * (upstream) IPS driver: don't toggle CPU turbo on unsupported CPUs + * (upstream) IPS driver: verify BIOS provided limits + * intel_ips: Print MCP limit exceeded values. + * Staging: Add initial release of brcm80211 - Broadcom 802.11n wireless + LAN driver. + * staging: brcm80211: Fix some initialisation failure paths + * staging: brcm80211: Add contact info to TODO list. + * staging: brcm80211: use '%pM' format to print MAC address + * staging: brcm80211: Fix URLs for firmware files. + * staging: brcm80211: fix 'ERROR: "foo * bar" should be "foo *bar"' + * staging: brcm80211: fix "ERROR: open brace '{' following function + dec..." + * staging: brcm80211: fix "ERROR: return is not a function, paren..." + * staging: brcm80211: fix "ERROR: do not use assignment in if condition" + * staging: brcm80211: fix "ERROR: trailing statements should be on next + line" + * staging: brcm80211: fix "ERROR: that open brace { ... prev line" + * staging: brcm80211: fix "ERROR: while should follow close brace '}'" + * staging: brcm80211: fix "ERROR: do not initialise globals to 0 or NULL" + * staging: brcm80211: fix "ERROR: do not initialise statics to 0 or NULL" + * staging: brcm80211: fix "ERROR: Macros w/ complex values ... + parenthesis" + * staging: brcm80211: fix "ERROR: Macros w/ mult. statements ... do - + while loop" + * staging: brcm80211: fix 'ERROR: "(foo*)" should be "(foo *)"' + * staging: brcm80211: fix "ERROR: need consistent spacing around '*'" + * staging: brcm80211: fix "ERROR: space prohibited after that ..." + * staging: brcm80211: fix "ERROR: space prohibited before ...close square + bracket" + * staging: brcm80211: fix "ERROR: space required after that close brace" + * staging: brcm80211: fix "ERROR: space required after that ..." + * staging: brcm80211: fix "ERROR: space required before that ..." + * staging: brcm80211: fix "ERROR: spaces prohibited around that ':' ..." + * staging: brcm80211: fix "ERROR: spaces required around that ..." + * staging: brcm80211: fix "ERROR: trailing whitespace." + * staging: brcm80211: fix remaining checkpatch errors. + * staging: brcm80211: use native ctype library + * staging: brcm80211: use string native library + * staging: brcm80211: add fullmac driver + * Staging: brcm80211: clean up makefile cflag lines + * Staging: brcm80211: remove driver specific -W options + * staging: brcm80211: Fix compile issue when BRCM80211_PCI is not set. + * staging: brcm80211: Make compiling of brcm80211.ko and brcmfmac.ko + mutually exclusive. + + -- Andy Whitcroft Tue, 12 Oct 2010 16:00:27 +0100 + +linux (2.6.35-22.33) maverick; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: Add support for Intellimouse Mode in ALPS touchpad on + Dell E2 series Laptops" + - LP: #641320 + + [ Brian Rogers ] + + * SAUCE: ir-core: Fix null dereferences in the protocols sysfs interface + - LP: #624701 + + [ Christopher James Halse Rogers ] + + * SAUCE: Nouveau: Add quirk framework to disable acceleration + - LP: #544088, #546393 + * SAUCE: Nouveau: Disable acceleration on MacBook Pros + - LP: #546393 + + [ John Johansen ] + + * Revert "SAUCE: AppArmor: allow newer tools to load policy on older + kernels" + * SAUCE: AppArmor: allow newer tools to load policy on older kernels + - LP: #639758 + + [ Mathieu J. Poirier ] + + * SAUCE: Adding vdd_sdi regulator supply to OMAP3EVM + + [ Upstream Kernel Changes ] + + * ALSA: HDA: Enable internal speaker on Dell M101z + - LP: #640254 + + -- Leann Ogasawara Fri, 17 Sep 2010 13:21:28 -0700 + +linux (2.6.35-22.32) maverick; urgency=low + + [ Arjan van de Ven ] + + * SAUCE: libata: Add ALPM power state accounting to the AHCI driver + + [ David Henningsson ] + + * SAUCE: ALSA: HDA: Enable internal mic on Dell E6410 and Dell E6510 + - LP: #605047, #628961 + + [ John Johansen ] + + * [Upstream] AppArmor: Fix splitting an fqname into separate namespace + and profile names + - LP: #615947 + * [Upstream] AppArmor: Fix locking from removal of profile namespace + - LP: #615947 + * SAUCE: AppArmor: allow newer tools to load policy on older kernels + - LP: #639758 + * SAUCE: Improve Amazon EBS performance for EC2 + - LP: #634316 + + [ Leann Ogasawara ] + + * Revert "SAUCE: i915 KMS -- blacklist i855" + * Revert "SAUCE: i915 KMS -- blacklist i845g" + * Revert "SAUCE: i915 KMS -- blacklist i830" + * Revert "SAUCE: i915 KMS -- support disabling KMS for known broken + devices" + * execute module-inclusion within a subshell + - LP: #621175 + + [ Upstream Kernel Changes ] + + * (pre-stable) bounce: call flush_dcache_page() after bounce_copy_vec() + - LP: #633227 + * (pre-stable) drm/i915: don't enable self-refresh on Ironlake + - LP: #629711 + * (pre-stable) mm: Move vma_stack_continue into mm.h + * x86, hwmon: Fix unsafe smp_processor_id() in thermal_throttle_add_dev + - LP: #601073 + * PM / Runtime: Make runtime_status attribute not debug-only (v. 2) + * PM / Runtime: Add runtime PM statistics (v3) + * compat: Make compat_alloc_user_space() incorporate the access_ok() + - CVE-2010-3081 + * x86-64, compat: Test %rax for the syscall number, not %eax + - CVE-2010-3301 + * x86-64, compat: Retruncate rax after ia32 syscall entry tracing + - CVE-2010-3301 + + -- Leann Ogasawara Tue, 14 Sep 2010 08:46:49 -0700 + +linux (2.6.35-21.31) maverick; urgency=low + + [ Andy Whitcroft ] + + * bodge linux-libc-dev package version due to ti-omap4 error + * linux-libc-dev -- ensure we can only build this on debian.master + + -- Leann Ogasawara Mon, 13 Sep 2010 09:54:31 -0700 + +linux (2.6.35-21.30) maverick; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: fbcon -- fix OOPs triggered by race prevention fixes + - LP: #614008 + + [ Daniel Lezcano ] + + * SAUCE: fix compilation warning when CONFIG_SECURITY is not set + + [ Henrik Rydberg ] + + * SAUCE: Input: wacom - add fuzz parameters to features + * SAUCE: Input: wacom - collect device quirks into single function + * SAUCE: Input: wacom - add support for the Bamboo Touch trackpad + * SAUCE: Input: wacom - add a quirk for low resolution Bamboo devices + * SAUCE: hid: ntrig: Remove unused device ids + * SAUCE: hid: ntrig: remove sysfs nodes + * SAUCE: hid: ntrig: Correct logic for quirks + * SAUCE: hid: ntrig: zero-initialize ntrig struct + * SAUCE: hid: ntrig: Setup input filtering manually + * SAUCE: hid: ntrig: New ghost-filtering event logic + + [ Leann Ogasawara ] + + * SAUCE: ndiswrapper: Initialize buffer index and check its value + - LP: #613796 + + [ Manoj Iyer ] + + * SAUCE: Add support for Intellimouse Mode in ALPS touchpad on Dell E2 + series Laptops + - LP: #632884 + + [ Ping Cheng ] + + * SAUCE: Input: wacom - parse the Bamboo device family + + [ Rafi Rubin ] + + * SAUCE: hid: ntrig: identify firmware version (wiggled) + + [ Tim Gardner ] + + * [Config] CONFIG_NL80211_TESTMODE=n + + [ Upstream Kernel Changes ] + + * Revert "input: mt: Add support for the Bamboo Touch trackpad" + * e1000e: initial support for 82579 LOMs + * e1000e: correct MAC-PHY interconnect register offset for 82579 + * (pre-stable) ALSA: hda - Add a new hp-laptop model for Conexant 5066, + tested on HP G60 + - LP: #587388 + * DSS2: Don't power off a panel twice + - LP: #588243 + * mmc: build fix: mmc_pm_notify is only available with CONFIG_PM=y + * Input: i8042 - reset keyboard controller wehen resuming from S2R + - LP: #86820 + * ALSA: hda - Fix beep frequency on IDT 92HD73xx and 92HD71Bxx codecs + - LP: #414795 + * agp/intel: Support the extended physical addressing bits on + Sandybridge. + - LP: #632488 + * drm/i915,intel_agp: Add support for Sandybridge D0 + - LP: #632488 + * (pre-stable) intel_agp,i915: Add more sandybridge graphics device ids + - LP: #632488 + * mmc: omap: fix for bus width which improves SD card's peformance. + + -- Leann Ogasawara Tue, 07 Sep 2010 09:58:52 -0700 + +linux (2.6.35-20.29) maverick; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: i915 KMS -- support disabling KMS for known broken devices + - LP: #563277 + * SAUCE: i915 KMS -- blacklist i830 + - LP: #542208, #563277 + * SAUCE: i915 KMS -- blacklist i845g + - LP: #541492, #563277 + * SAUCE: i915 KMS -- blacklist i855 + - LP: #511001, #541511, #563277 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_SENSORS_PKGTEMP=m + - LP: #601073 + * ARM: Temporarily disable module check for armel + * rebase to v2.6.35.4 + * [Config] update configs following rebase to v2.6.35.4 + + [ Ricardo Salveti de Araujo ] + + * [Config] Change CONFIG_LEDS_TRIGGER_HEARTBEAT from module to built-in + in Omap + + [ Tim Gardner ] + + * [Config] Added be2net, be2scsi to udebs + - LP: #628776 + + [ Upstream Kernel Changes ] + + * x86, cpu: Package Level Thermal Control, Power Limit Notification + definitions + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: pkgtemp hwmon driver + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: thermal throttling handler + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: power limit + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: pkgtemp documentation + - LP: #601073 + * hid: 3m: Adjust to sequential MT HID protocol + * hid: 3m: Convert to MT slots + * hid: 3m: Correct touchscreen emulation + * hid: 3m: Adjust major / minor axes to scale + * input: bcm5974: Adjust major / minor to scale + * HID: magicmouse: don't allow hidinput to initialize the device + * HID: magicmouse: simplify multitouch feature request + * HID: magicmouse: simplify touch data bit manipulation + * HID: magicmouse: simplify touch down logic + * HID: magicmouse: remove timestamp logic + * HID: magicmouse: enable Magic Trackpad support + * HID: magicmouse: Adjust major / minor axes to scale + * mmc: fix all hangs related to mmc/sd card insert/removal during + suspend/resume + - LP: #477106 + * drm/i915: fix VGA plane disable for Ironlake+ + - LP: #602281 + + -- Leann Ogasawara Mon, 30 Aug 2010 08:38:01 -0700 + +linux (2.6.35-19.28) maverick; urgency=low + + [ Leann Ogasawara ] + + * No changes from 2.6.35-19.27. Some armel udebs were accidentally deleted + from the archive and a no-change rebuild was attempted. However, the ABI + did not get bumped and resulted in build failures for 2.6.35-19.27. Fix + up the ABI and re-upload. + + -- Leann Ogasawara Sat, 28 Aug 2010 16:42:27 -0700 + +linux (2.6.35-19.27) maverick; urgency=low + + [ Leann Ogasawara ] + + * No changes from 2.6.35-19.26. Some armel udebs were accidentally deleted + from the archive. + + -- Leann Ogasawara Fri, 27 Aug 2010 08:58:35 -0700 + +linux (2.6.35-19.26) maverick; urgency=low + + [ Upstream Kernel Changes ] + + * ARM: OMAP: Beagle: revision detection + * ARM: OMAP: Beagle: only Cx boards use pin 23 for write protect + * ARM: OMAP: Beagle: no gpio_wp pin connection on xM + + -- Leann Ogasawara Thu, 26 Aug 2010 09:15:09 -0700 + +linux (2.6.35-19.25) maverick; urgency=low + + [ Jarod Wilson ] + + * SAUCE: Bring in staging/lirc from 2.6.36 + - LP: #609234 + * SAUCE: Update ir-core to linuxtv/other which should be merged for + 2.6.36. + - LP: #609234 + * SAUCE: Fix memleaks in imon and mceusb drivers + - LP: #609234 + * SAUCE: Bring in streamzap support from linuxtv/other + - LP: #609234 + + [ Mario Limonciello ] + + * Remove ubuntu/lirc in favor of staging/lirc from 2.6.36 + - LP: #609234 + + [ Mathieu J. Poirier ] + + * SAUCE: ARM: adding i2c eeprom driver to read EDID + - LP: #608279 + + [ Upstream Kernel Changes ] + + * intel_idle: disable module support + - LP: #615265 + * (pre-stable) ALSA: hda - Ensure codec patch files are checked for the + correct codec ID + * (pre-stable) ALSA: hda - Rename iMic to Int Mic on Lenovo NB0763 + - LP: #605101 + * (pre-stable) ALSA: HDA: Use model=auto for LG R510 + - LP: #495134 + * (pre-stable) ALSA: HDA: Add Sony VAIO quirk for ALC269 + - LP: #519066 + * (pre-stable) ALSA: HDA: Fix front mic on Dell Precision M6500 + - LP: #519066 + * input: mt: Initialize slots to unused (rev2) + * input: mt: Add support for the Bamboo Touch trackpad + * hid: Add a hid quirk for input sync override + + -- Leann Ogasawara Mon, 23 Aug 2010 12:42:52 -0700 + +linux (2.6.35-18.24) maverick; urgency=low + + [ Colin Watson ] + + * Pass DEB_MAINT_PARAMS to hook scripts + + [ Leann Ogasawara ] + + * [Config] Add CONFIG_INPUT_UINPUT=y to config enforcer + - LP: #584812 + * rebase to v2.6.35.3 + + [ Upstream Kernel Changes ] + + * (pre-stable) dell-wmi: Add support for eject key on Dell Studio 1555 + - LP: #609234 + * can: add limit for nframes and clean up signed/unsigned variables + - CVE-2010-2959 + * drm: Initialize ioctl struct when no user data is present + - CVE-2010-2803 + * ARM: initial stack protector (-fstack-protector) support + * ARM: stack protector: change the canary value per task + * [ARM] implement arch_randomize_brk() + * [ARM] add address randomization to mmap() + * ARM: fix ASLR of PIE executables + + -- Leann Ogasawara Sun, 22 Aug 2010 19:22:04 -0700 + +linux (2.6.35-17.23) maverick; urgency=low + + [ Jeremy Kerr ] + + * [Config] build-in uinput module + - LP: #584812 + + [ Leann Ogasawara ] + + * Revert "[Config] [FTBS] ia64: Temporarily disable CONFIG_CEPH_FS" + * Revert "[Config] [FTBS] ia64: Temporarily disable gpiolib" + * Revert "[Config] [FTBS] sparc: Temporarily disable + CONFIG_MTD_NAND_DENALI" + * Revert "[Config] [FTBS] sparc: Temporarily disable + CONFIG_MFD_JANZ_CMODIO" + * Revert "[Config] [FTBS] sparc: Temporarily disable + CONFIG_INFINIBAND_QIB" + * [Config] Enable INTEL_IPS + - LP: #601057 + * Remove ia64 support + * [Config] Update portsconfigs after removing ia64 support + * Remove sparc support + * [Config] Update portsconfigs after removing sparc support + + [ Linus Torvalds ] + + * (pre-stable) mm: fix page table unmap for stack guard page properly + + [ Mathieu J. Poirier ] + + * SAUCE: (no-up) ARM: Resetting power_mode to its original value. + - LP: #591941 + + [ Upstream Kernel Changes ] + + * timer: add on-stack deferrable timer interfaces + - LP: #601057 + * x86 platform driver: intelligent power sharing driver + - LP: #601057 + * IPS driver: add GPU busy and turbo checking + - LP: #601057 + * X86: intel_ips, check for kzalloc properly + - LP: #601057 + * ips driver: make it less chatty + - LP: #601057 + + -- Leann Ogasawara Tue, 17 Aug 2010 09:38:08 -0700 + +linux (2.6.35-16.22) maverick; urgency=low + + [ Andy Whitcroft ] + + * debian -- more agressivly clean up after depmod on purge + - LP: #618591 + + [ Henrik Rydberg ] + + * SAUCE: hid: 3m: Simplify touchsreen emulation logic + + [ Leann Ogasawara ] + + * ubuntu: iscsitarget -- version 1.4.20.2 + * ubuntu: rtl8192se -- update to version 0017.0507.2010 + * rebase to v2.6.35.2 + * [Config] update configs following rebase to v2.6.35.2 + * [Config] update ports configs following rebase to v2.6.35.2 + + [ Luke Yelavich ] + + * [Config] Enable new firewire stack on powerpc + + [ Mathieu J. Poirier ] + + * SAUCE: (drop after 2.6.35) ARM: Using gpmc function to init nand flash. + - LP: #608266 + + -- Leann Ogasawara Thu, 12 Aug 2010 09:58:01 -0700 + +linux (2.6.35-15.21) maverick; urgency=low + + [ Luke Yelavich ] + + * [Config] CONFIG_SND_USB_UA101=m for all architectures + + [ Upstream Kernel Changes ] + + * Input: introduce MT event slots + * Input: document the MT event slot protocol + * (pre-stable) sched: Revert nohz_ratelimit() for now + * (pre-stable) drm/radeon/kms: add missing copy from user + - LP: #606081 + + [ Leann Ogasawara ] + + * rebase to v2.6.35.1 + + -- Leann Ogasawara Mon, 09 Aug 2010 09:24:04 -0700 + +linux (2.6.35-14.20) maverick; urgency=low + + [ Andy Whitcroft ] + + * update Vcs-Git to point to maverick repo + * debian -- include the debian packaging in the -source package + - LP: #608674 + * select debian source format 1.0 + * add support for building selected stages of kernel + - LP: #603087 + * cleanup conditional dependancy handling + - LP: #603087 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Handle missing NID 0x1b on ALC259 codec + - LP: #582199, #586418, #588031 + * ALSA: hda - Handle pin NID 0x1a on ALC259/269 + - LP: #582199, #586418, #588031 + * sched: Revert nohz_ratelimit() for now + + -- Leann Ogasawara Tue, 03 Aug 2010 08:46:47 -0700 + +linux (2.6.35-14.19) maverick; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.35 + + -- Leann Ogasawara Sun, 01 Aug 2010 10:35:56 -0700 + +linux (2.6.35-13.18) maverick; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: (no-up) Modularize vesafb -- fix initialisation + * SAUCE: add tracing for user initiated readahead requests + * SAUCE: vt -- maintain bootloader screen mode and content until vt + switch + * SAUCE: vt -- allow grub to request automatic vt_handoff + * SAUCE: fbcon -- fix race between open and removal of framebuffers + * SAUCE: drm -- stop early access to drm devices + + [ Bryan Wu ] + + * CONFIG: compile in OTG driver and Transceiver driver + - LP: #566645 + * remove OTG modules from modules list file + + [ John Johansen ] + + * SAUCE: AppArmor: -- sync to AppArmor mainline 2010-07-27 + - LP: #581525, #599450 + * SAUCE: AppArmor: -- sync to AppArmor mainline 2010-07-29 + * SAUCE: AppArmor 2.4 compatibility patch + * SAUCE: AppArmor: Allow dfa backward compatibility with broken userspace + * SAUCE: fix pv-ops for legacy Xen + * SAUCE: blkfront: default to sd devices + * [Config] Build in drivers required for Xen pv-ops + + [ Leann Ogasawara ] + + * Revert "[Upstream] i915: Use the correct mask to detect i830 aperture + size." + + [ Lee Jones ] + + * SAUCE: ARM: OMAP: Add macros for comparing silicon revision + - LP: #608095 + * SAUCE: OMAP: DSS2: check for both cpu type and revision, rather than + just revision + - LP: #608095 + * SAUCE: OMAP: DSS2: enable hsclk in dsi_pll_init for OMAP36XX + - LP: #608095 + * SAUCE: ARM: OMAP: Beagle: support twl gpio differences on xM + - LP: #608095 + + [ Upstream Kernel Changes ] + + * agp/intel: Use the correct mask to detect i830 aperture size. + - LP: #597075 + + -- Leann Ogasawara Fri, 30 Jul 2010 15:46:59 -0700 + +linux (2.6.35-12.17) maverick; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc6 + * [Config] update configs following rebase to v2.6.35-rc6 + * [Config] update ports configs following rebase to v2.6.35-rc6 + * SAUCE: [FTBS] armel: define KEY_F10 and KEYF11 + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc6 + + -- Leann Ogasawara Fri, 23 Jul 2010 16:16:38 +0200 + +linux (2.6.35-11.16) maverick; urgency=low + + [ Leann Ogasawara ] + + * Bump ABI for new compiler update + + -- Leann Ogasawara Fri, 23 Jul 2010 10:24:58 +0200 + +linux (2.6.35-10.15) maverick; urgency=low + + [ Leann Ogasawara ] + + * Revert "SAUCE: ensure vga16fb loads if no other driver claims the VGA + device" + * [Config] Enable CONFIG_M686=y + - LP: #592495 + + [ Upstream Kernel Changes ] + + * tracing: Add alignment to syscall metadata declarations + + -- Leann Ogasawara Tue, 20 Jul 2010 18:18:49 +0200 + +linux (2.6.35-9.14) maverick; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- add BOM and automated update script + * ubuntu: AUFS -- update to b37c575759dc4535ccc03241c584ad5fe69e3b25 + + [ John Johansen ] + + * [Config] Enable DRBD as a module + + [ Kees Cook ] + + * SAUCE: Yama: verify inode is symlink to avoid bind mounts + - LP: #604407 + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_DRM_VMWGFX (staging driver) + - LP: #606139 + * [Config] ports: Disable CONFIG_DRM_VMWGFX (staging driver) + - LP: #606139 + * [Config] Enable CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y + * [Config] ports: Enable CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y + + [ Lee Jones ] + + * Stop ARM boards crashing when CUPS is loaded + - LP: #601226 + + [ Upstream Kernel Changes ] + + * perf probe: Support tracing an entry of array + * perf probe: Support static and global variables + + -- Leann Ogasawara Fri, 16 Jul 2010 14:38:17 -0700 + +linux (2.6.35-8.13) maverick; urgency=low + + [ Kees Cook ] + + * SAUCE: Yama: check PTRACE using thread group leader + * SAUCE: Yama: search for PTRACE exceptions via thread group leader + - LP: #603716 + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc5 + * [Config] update configs following rebase to v2.6.35-rc5 + + [ Nicolas Pitre ] + + * SAUCE: make ndiswrapper available on X86 only + + [ Tim Gardner ] + + * [Config] Added ums-cypress to udeb + - LP: #576066 + * SAUCE: fix build error with CONFIG_BLK_DEV_INITRD=n + * [Config] CONFIG_NDISWRAPPER=m across all configs + + [ Upstream Kernel Changes ] + + * HID: magicmouse: report last touch up + * rebase to 2.6.35-rc5 + + -- Leann Ogasawara Tue, 13 Jul 2010 18:57:59 -0700 + +linux (2.6.35-7.12) maverick; urgency=low + + [ Tim Gardner ] + + * [Upstream] i915: Use the correct mask to detect i830 aperture size. + - LP: #597075 + + [ Upstream Kernel Changes ] + + * (drop after 2.6.35) drm/radeon/kms: add ioport register access + (squashed) + + -- Tim Gardner Thu, 08 Jul 2010 09:53:13 -0600 + +linux (2.6.35-7.11) maverick; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_X86_MRST=n + + [ Upstream Kernel Changes ] + + * (drop after 2.6.35-rc5) writeback: remove writeback_inodes_wbc + * (drop after 2.6.35-rc5) writeback: split writeback_inodes_wb + * (drop after 2.6.35-rc5) writeback: simplify the write back thread queue + + -- Tim Gardner Tue, 06 Jul 2010 18:39:08 -0600 + +linux (2.6.35-7.10) maverick; urgency=low + + [ Kees Cook ] + + * SAUCE: security: create task_free security callback + * SAUCE: Yama: add PTRACE exception tracking and interface + * SAUCE: security: unconditionally chain to Yama LSM + * Revert "SAUCE: ptrace: restrict ptrace scope to children" + * Revert "SAUCE: fs: block hardlinks to non-accessible sources" + * Revert "SAUCE: fs: block cross-uid sticky symlinks" + * [Upstream] security: Yama LSM + * [Config] Enable CONFIG_SECURITY_YAMA=y + + [ Tim Gardner ] + + * [Config] updateconfigs/updateportsconfigs after rebase to 2.6.35-rc4 + + [ Upstream Kernel Changes ] + + * rebase to 2.6.35-rc4 + + -- Leann Ogasawara Thu, 01 Jul 2010 08:55:57 -0700 + +linux (2.6.35-6.9) maverick; urgency=low + + [ Tim Gardner ] + + * [Upstream] direct_splice_actor() should not use pos in sd + - LP: #588861 + + -- Leann Ogasawara Mon, 28 Jun 2010 12:35:49 -0700 + +linux (2.6.35-6.8) maverick; urgency=low + + [ Mathieu J. Poirier ] + + * ARM: Adding regulator supply for vdds_sdi. + - LP: #597904 + + -- Leann Ogasawara Sun, 27 Jun 2010 16:34:43 -0700 + +linux (2.6.35-6.7) maverick; urgency=low + + [ Alberto Milone ] + + * [Upstream] Add support for the ATIF ACPI method to the radeon driver + + [ Chase Douglas ] + + * [Upstream] HID: magicmouse: scroll on entire surface, not just middle + of mouse + * [Upstream] HID: magicmouse: disable and add module param for scroll + acceleration + * [Upstream] HID: magicmouse: properly account for scroll movement in + state + * [Upstream] HID: magicmouse: add param for scroll speed + * [Upstream] HID: magicmouse: enable horizontal scrolling + + [ Henrik Rydberg ] + + * [Upstream] Input: evdev - convert to dynamic event buffer + * [Upstream] Input: evdev - use driver hint to compute size of event + buffer + * [Upstream] Input: bcm5974 - set the average number of events per MT + event packet + * [Upstream] Input: hid-input - use a larger event buffer for MT devices + * [Upstream] Input: evdev - never leave the client buffer empty after + write + + [ John Johansen ] + + * SAUCE: AppArmor: -- mainline 2010-06-23 + * SAUCE: AppArmor 2.4 compatibility patch + * SAUCE: fs: block hardlinks to non-accessible sources AppArmor portion + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_INTR_REMAP=y + - LP: #597091 + * [Config] Enable CONFIG_X86_X2APIC + - LP: #597091 + + [ Mathieu J. Poirier ] + + * [Config] ARM: Turning off CONFIG_CPU_IDLE on omap + - LP: #594382 + + -- Leann Ogasawara Thu, 24 Jun 2010 12:19:48 -0700 + +linux (2.6.35-5.6) maverick; urgency=low + + [ Amit Kucheria ] + + * [Config] update omap flavour description + + [ Andy Whitcroft ] + + * update to ubuntu-debian:508b7aa34b578c0d1e51bfb571f2bfb824dc65ac + - LP: #570500, #576274 + * SAUCE: add option to hand off all kernel parameters to init + - LP: #586386 + * [Config] enable passing all kernel command line to init + - LP: #586386 + * [Config] disable CONFIG_VMI + - LP: #537601 + * [Config] enable CONFIG_IPV6_SIT_6RD + - LP: #591869 + * [Config] enable CONFIG_VMWARE_BALOON as module + - LP: #592039 + + [ Leann Ogasawara ] + + * Revert "SAUCE: pm: Config option to disable handling of console during + suspend/resume" + - LP: #594885 + * [Config] Remove CONFIG_PM_DISABLE_CONSOLE + * [Config] ports: enable passing all kernel command line to init + - LP: #586386 + * [Config] Enable CONFIG_FB_VESA=y for x86 + * [Config] Add CONFIG_FRAMEBUFFER_CONSOLE=y to config enforcer + * [Config] Add CONFIG_FB_VESA=y for x86 to config enforcer + * [Config] Enable CONFIG_TASK_DELAY_ACCT=y + - LP: #493156 + + [ Mathieu Poirier ] + + * ARM: Adding MosChip MCS7830 to nic-usb + - LP: #584920 + + [ Upstream Kernel Changes ] + + * Revert "[Upstream] docbook: need xmldoclinks for all doc types" + * docbook: need xmldoclinks for all doc types + * perf probe: Add kernel source path option + + -- Leann Ogasawara Thu, 17 Jun 2010 08:05:29 -0700 + +linux (2.6.35-4.5) maverick; urgency=low + + [ Leann Ogasawara ] + + * Revert "[Upstream] (evdev) Use driver hint to compute the evdev buffer + size (rev2)" + * Revert "[Upstream] (evdev) Convert to dynamic event buffer (rev4)" + * Revert "[Upstream] (evdev) Use multi-reader buffer to save space + (rev4)" + * Revert "SAUCE: drivers: Remove some duplicate device entries in various + modules" + * [Upstream] USB: option: Remove duplicate AMOI_VENDOR_ID + * [Upstream] Revert "USB: Adding support for HTC Smartphones to ipaq" + * [Upstream] p54usb: Comment out duplicate Medion MD40900 device id + + [ Tim Gardner ] + + * [Config] CONFIG_NFS_FSCACHE=y + - LP: #440522 + * [Config] CONFIG_FSCACHE_STATS=y, CONFIG_FSCACHE_HISTOGRAM=y + - LP: #440522 + + -- Leann Ogasawara Wed, 16 Jun 2010 08:43:07 -0700 + +linux (2.6.35-3.4) maverick; urgency=low + + [ Andy Whitcroft ] + + * debian -- ensure the version number is clean + + [ Henrik Rydberg ] + + * [Upstream] Introduce MT event slots (rev 5) + * [Upstream] Document the MT event slot protocol (rev5) + * [Upstream] (evdev) Use multi-reader buffer to save space (rev4) + * [Upstream] (evdev) Convert to dynamic event buffer (rev4) + * [Upstream] (evdev) Use driver hint to compute the evdev buffer size + (rev2) + + [ Leann Ogasawara ] + + * Revert "SAUCE: Add MODULE_ALIAS for Dell WMI module" + * Revert "SAUCE: hostap: send events on data interface as well as master + interface" + * Revert "Fix webcam having USB ID 0ac8:303b" + * Revert "SAUCE: toshiba_acpi -- pull in current -dev version of driver" + * rebase to v2.6.35-rc3 + + [ Maxim Levitsky ] + + * [Config] Enable new Smartmedia/xD translation layer + - LP: #202490 + + [ Upstream Kernel Changes ] + + * net: fix deliver_no_wcard regression on loopback device + + [ Upstream changes ] + + * rebased to v2.6.35-rc3 + + -- Leann Ogasawara Thu, 10 Jun 2010 16:15:22 -0700 + +linux (2.6.35-2.3) maverick; urgency=low + + [ Bryan Wu ] + + * CONFIG: enforce -- make sure we disable CONFIG_LOCALVERSION_AUTO + + [ Leann Ogasawara ] + + * [Config] armel: Enable CONFIG_BNX2=m + * [Config] ports: Enable CONFIG_BNX2X=m + * SAUCE: armel: define get_dma_ops to fix FTBS + + [ Tim Gardner ] + + * [Upstream] net: Print num_rx_queues imbalance warning only when there + are allocated queues + - LP: #591416 + + -- Leann Ogasawara Wed, 09 Jun 2010 08:27:41 -0700 + +linux (2.6.35-2.2) maverick; urgency=low + + [ Andy Whitcroft ] + + * [Config] d-i: make armel configuration versatile flavour specific + - LP: #588805 + * [Config] d-i: enable .udebs for omap flavour + - LP: #588805 + + [ Kees Cook ] + + * ptrace: limit scope to attach only (allow read) + - LP: #589656 + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc2 + * [Config] update configs following rebase to v2.6.35-rc2 + * [Config] update port configs following rebase to v2.6.35-rc2 + + [ Lee Jones ] + + * Enable perf to be more helpful when perf_ does not exist. + - LP: #570500 + * 'fdr editconfig' modification. Easily skip over unwanted menuconfigs. + + [ Tim Gardner ] + + * [Config] Update bnx2 udeb firmware files + - LP: #589304 + + [ Upstream changes ] + + * rebased to v2.6.35-rc2 + + -- Leann Ogasawara Mon, 07 Jun 2010 09:45:04 -0700 + +linux (2.6.35-1.1) maverick; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update to standalone 2.6.35-rcN as at 20100601 + - LP: #587888 + * ubuntu: AUFS -- track changes to the arguements to fop fsync() + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc1 + * [Config] update configs following rebase to v2.6.35-rc1 + * [Config] update port configs following rebase to v2.6.35-rc1 + * SAUCE: lirc: rename usb_buffer_alloc() and usb_buffer_free() + * SAUCE: ndiswrapper: rename usb_buffer_alloc() and usb_buffer_free() + * SAUCE: ndiswrapper: convert multicast list to list_head + * [Config] [FTBS] armel: Temporarily disable CONFIG_GPIO_JANZ_TTL + * [Config] [FTBS] ia64: Temporarily disable gpiolib + * [Config] [FTBS] ia64: Temporarily disable CONFIG_CEPH_FS + * [Config] [FTBS] sparc: Temporarily disable CONFIG_INFINIBAND_QIB + * [Config] [FTBS] sparc: Temporarily disable CONFIG_MFD_JANZ_CMODIO + * [Config] [FTBS] armel: Temporarily disable CONFIG_MFD_JANZ_CMODIO + * [Config] [FTBS] armel: Temporarily disable CONFIG_DT3155 + * [Config] [FTBS] sparc: Temporarily disable CONFIG_MTD_NAND_DENALI + * [Config] [FTBS] armel: Temporarily disable bnx2 + * [Config] [FTBS] armel: Temporarily disable CONFIG_SERIAL_UARTLITE + * SAUCE: [FTBS] armel: Don't include asm/agp.h for ttm + * SAUCE: [FTBS] armel: include linux/dma-mapping.h + * SAUCE: [FTBS] armel: replace omap_set_gpio_debounce with + gpio_set_debounce + + [ Upstream Kernel Changes ] + + * of/usb: fix build error due to of_node pointer move + * n2_crypto: Fix build after of_device/of_platform_driver changes. + * powerpc/fsl-booke: fix the case where we are not in the first page + * powerpc/fsl-booke: Move the entry setup code into a seperate file + * powerpc/kexec: Add support for FSL-BookE + * greth: Fix build after OF device conversions. + + [ Upstream changes ] + + * rebased to v2.6.35-rc1 + + -- Leann Ogasawara Fri, 04 Jun 2010 23:01:52 -0700 + +linux (2.6.35-1.0) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * Null entry. + + -- Leann Ogasawara Wed, 02 Jun 2010 15:17:41 -0700 + +linux (2.6.34-5.14) maverick; urgency=low + + [ Tim Gardner ] + + * [Config] Added module inclusion support + * [Config] Added virtual flavour module inclusion list and d-i package + definitions + + -- Leann Ogasawara Wed, 02 Jun 2010 12:58:14 -0700 + +linux (2.6.34-5.13) maverick; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- aufs2 20091209" + * Revert "ubuntu: AUFS -- export various core functions + (aufs2-standalone.patch)" + * Revert "ubuntu: AUFS -- export various core functions + (aufs2-base.patch)" + * ubuntu: AUFS -- aufs2 base patch for linux-2.6.34 + - LP: #587888 + * ubuntu: AUFS -- aufs2 standalone patch for linux-2.6.34 + - LP: #587888 + * ubuntu: AUFS -- update to standalone 2.6.34 as at 20100601 + - LP: #587888 + * [Config] AUFS -- enable aufs options + - LP: #587888 + + -- Leann Ogasawara Tue, 01 Jun 2010 08:56:43 -0700 + +linux (2.6.34-5.12) maverick; urgency=low + + [ Andy Whitcroft ] + + * enforce -- ensure SYSFS compatibility is disabled + + [ Chase Douglas ] + + * build with libdw-dev for perf probe symbol support + * maverick ftrace configuration changes + + [ Kees Cook ] + + * Revert "SAUCE: x86: brk away from exec rand area" + * Revert "SAUCE: [um] Don't use nx_enabled under UML" + * Revert "SAUCE: [x86] implement cs-limit nx-emulation for ia32" + * SAUCE: x86: implement cs-limit nx-emulation for ia32 + - LP: #369978 + * SAUCE: x86: more tightly confine cs-limit nx-emulation to ia32 only + * SAUCE: x86: brk away from exec rand area + - LP: #452175 + * SAUCE: ptrace: restrict ptrace scope to children + + [ Leann Ogasawara ] + + * Add new omap flavour to getabis + * [Config] Enable CONFIG_FRAMEBUFFER_CONSOLE=y for all archs + - LP: #585490 + * build/modules: Temorarily add ignore.modules + * ubuntu: iscsitarget -- version 1.4.20.1 + + [ Loïc Minier ] + + * SAUCE: [um] Don't use nx_enabled under UML + - LP: #524849 + + -- Leann Ogasawara Fri, 28 May 2010 08:27:17 -0700 + +linux (2.6.34-4.11) maverick; urgency=low + + [ Amit Kucheria ] + + * SAUCE: omap: remove calls to usb_nop_xceiv_register from board files + * [Config] Add support for OMAP-mainline flavour + + [ Andy Whitcroft ] + + * SAUCE: powerpc: fix compile error when ptrace.h is included from + userspace + - LP: #583733 + + [ Chase Douglas ] + + * Revert "SAUCE: Don't register vga16fb framebuffer if other framebuffers + are present" + * Revert "SAUCE: Disable function tracing after hitting __schedule_bug" + * Revert "SAUCE: drm/i915: don't change DRM configuration when releasing + load detect pipe" + + [ Kees Cook ] + + * SAUCE: fs: block cross-uid sticky symlinks + * SAUCE: fs: block hardlinks to non-accessible sources + + [ Koen Kooi ] + + * SAUCE: board-omap3-beagle: add DSS2 support + + [ Leann Ogasawara ] + + * Revert "staging/go7007 -- disable" + * Revert "[Config] staging/winbond -- disable" + * Revert "Disable 4MB page tables for Atom, work around errata AAE44" + * Revert "SAUCE: sync before umount to reduce time taken by ext4 umount" + * Revert "SAUCE: Enable an e1000e Intel Corporation 82567 Gigabit + controller" + * Revert "SAUCE: Fix MODULE_IMPORT/MODULE_EXPORT" + * Revert "SAUCE: Created MODULE_EXPORT/MODULE_IMPORT macros" + * Revert "SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps" + * Revert "SAUCE: r8169: disable TSO by default for RTL8111/8168B + chipsets." + * Revert "[Upstream] b43: Declare all possible firmware files." + * Revert "add Breaks: against hardy lvm2" + * Revert "SAUCE: Guest OS does not recognize a lun with non zero target + id on Vmware ESX Server" + * Revert "SAUCE: Catch nonsense keycodes and silently ignore" + * [Config] Enable CONFIG_ECRYPT_FS=y for ports + * [Config] Enable CONFIG_USB=y for armel and sparc + * [Config] Enable CONFIG_SCSI=y for ia64 and sparc + * [Config] Enable CONFIG_RFKILL=y for ports + * [Config] Enable CONFIG_ATH9K_DEBUGFS=y + * [Config] Enable CONFIG_IWMC3200TOP_DEBUGFS=y + * [Config] Enable CONFIG_RCU_FAST_NO_HZ=y + * [Config] Enable CONFIG_IWLWIFI_DEVICE_TRACING=y + * [Config] Enable CONFIG_LIBERTAS_MESH=y + * [Config] Enable CONFIG_MMC_RICOH_MMC=y + * [Config] CONFIG_RT2800USB_UNKNOWN=y + * [Config] Enable CONFIG_VGA_SWITCHEROO=y + * [Config] Enable CONFIG_CEPH_FS=m + * [Config] Enable CONFIG_CRYPTO_PCRYPT=m + * [Config] Enable CONFIG_EEEPC_WMI=m + * [Config] Enable CONFIG_RT2800PCI=m + * [Config] Enable CONFIG_SCSI_HPSA=m + * [Config] Enable CONFIG_VHOST_NET=m + * [Config] Disable CONFIG_SND_HDA_INPUT_BEEP_MODE by default + - LP: #582350 + * [Config] Disable CONFIG_SOUND_OSS* and CONFIG_SND_*OSS + - LP: #579300 + * [Config] Enable CONFIG_PCIEASPM=y + - LP: #333990 + * [Config] updateconfigs for OMAP flavour + + [ Loïc Minier ] + + * Enable perf tools on armel + + [ Tim Gardner ] + + * SAUCE: Updated ndiswrapper to 1.56 + - LP: #582555 + * [Config] Added virtual flavour + * [Config] Remove support for sub-flavours + * [Config] Removed amd64 preempt flavour + * [Config] updateconfigs, updateportsconfigs after flavour munging + + -- Leann Ogasawara Tue, 25 May 2010 09:34:55 -0700 + +linux (2.6.34-3.10) maverick; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34 + + [ Upstream changes ] + + * rebased to v2.6.34 + + -- Leann Ogasawara Tue, 18 May 2010 17:35:35 -0700 + +linux (2.6.34-2.9) maverick; urgency=low + + [ Leann Ogasawara ] + + * [Config] [FTBS] Disable comedi for armel + + -- Leann Ogasawara Thu, 13 May 2010 23:20:55 +0200 + +linux (2.6.34-2.8) maverick; urgency=low + + [ Leann Ogasawara ] + + * Drop lpia + * [Config] [FTBS] disable KVM + * [Config] [FTBS] disable ipr for armel + + -- Leann Ogasawara Thu, 13 May 2010 16:07:52 +0200 + +linux (2.6.34-2.7) maverick; urgency=low + + [ Leann Ogasawara ] + + * [Config] disable CONFIG_SCSI_IPR on powerpc + * [Config] Remove 386 flavour per UDS discussion + + -- Leann Ogasawara Wed, 12 May 2010 18:26:43 +0200 + +linux (2.6.34-1.6) maverick; urgency=low + + [ Chase Douglas ] + + * enforce CONFIG_TMPFS_POSIX_ACL=y + - LP: #575940 + * don't force module dependency checking + - LP: #577029 + + [ Kees Cook ] + + * SAUCE: mmap_min_addr check CAP_SYS_RAWIO only for write + - LP: #568844 + + [ Leann Ogasawara ] + + * Revert "SAUCE: ata: blacklist FUJITSU MHW2160BH PL" + * rebase to v2.6.34-rc7 + * [Config] update configs following rebase to v2.6.34-rc7 + * [Config] update port configs following rebase to v2.6.34-rc7 + * Add btrfs to the udebs + + [ Tim Gardner ] + + * [Config] Add atl1c to nic-modules udeb + - LP: #557130 + + [ Upstream changes ] + + * rebased to v2.6.34-rc7 + + -- Leann Ogasawara Tue, 11 May 2010 11:29:08 +0200 + +linux (2.6.34-1.5) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc6 + * [Config] update configs following rebase to v2.6.34-rc6 + * [Config] update port configs following rebase to v2.6.34-rc6 + + [ Upstream changes ] + + * rebased to v2.6.34-rc6 + + -- Leann Ogasawara Fri, 30 Apr 2010 15:54:05 +0100 + +linux (2.6.34-1.4) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc5 + * [Config] update ports configs following rebase to v2.6.34-rc5 + + [ Upstream changes ] + + * rebased to v2.6.34-rc5 + + -- Leann Ogasawara Thu, 22 Apr 2010 15:36:12 -0700 + +linux (2.6.34-1.3) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc4 + * [Config] update configs following rebase to v2.6.34-rc4 + * [Config] update port configs following rebase to v2.6.34-rc4 + * ubuntu: dm-raid4-5 -- update to compile with 2.6.34-rc4 + + [ Upstream changes ] + + * rebased to v2.6.34-rc4 + + -- Leann Ogasawara Tue, 13 Apr 2010 18:33:44 -0700 + +linux (2.6.34-1.2) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * Temorarily disable building linux-doc + * rebase to v2.6.34-rc3 + * [Config] update configs following rebase to v2.6.34-rc3 + * [Config] update port configs following rebase to v2.6.34-rc3 + + [ Upstream changes ] + + * rebased to v2.6.34-rc3 + + -- Leann Ogasawara Tue, 30 Mar 2010 16:55:44 -0700 + +linux (2.6.34-1.1) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc2 + * ubuntu: dm-raid4-5 -- update to compile with 2.6.34-rc2 + * [Config] update port configs following rebase to v2.6.34-rc2 + * [Config] update configs following rebase to v2.6.34-rc2 + + [ Upstream changes ] + + * rebased to v2.6.34-rc2 + + -- Leann Ogasawara Wed, 24 Mar 2010 23:00:39 -0700 + +linux (2.6.33-1.1) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * ubuntu: dm-raid4-5 -- update to compile with 2.6.33 + * ubuntu: lirc -- drop explicit include of linux/autoconf.h + * ubuntu: lirc -- pass kfifo to kfifo_alloc and move spinlock + * ubuntu: lirc -- rename kfifo_put and kfifo_get + * ubuntu: iscsitarget -- rename daddr inet_sock field + * rebased to v2.6.33 + * [Config] update configs following rebase to v2.6.33 + * [Config] update ports configs following rebase to v2.6.33 + + [ Upstream changes ] + + * rebased to v2.6.33 + + -- Leann Ogasawara Tue, 23 Mar 2010 03:55:46 -0700 + +linux (2.6.33-0.0) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * Null entry. + + -- Leann Ogasawara Wed, 17 Mar 2010 07:48:56 -0700 + +linux (2.6.32-16.25) lucid; urgency=low + + [ Andy Whitcroft ] + + * linux-tools -- move to Suggests: with explicit seeding + - LP: #534635 + + [ Tim Gardner ] + + * [Config] CONFIG_HID=m + + [ Upstream Kernel Changes ] + + * (pre-stable) sched: Fix SMT scheduler regression in + find_busiest_queue() + * KVM: introduce kvm_vcpu_on_spin + * KVM: VMX: Add support for Pause-Loop Exiting + + -- Andy Whitcroft Tue, 09 Mar 2010 14:13:51 +0000 + +linux (2.6.32-16.24) lucid; urgency=low + + [ Andy Whitcroft ] + + * armel -- perf userspace does not support arm + * ia64 -- libelf-dev/binutils-dev to not provide necessary libraries + + -- Andy Whitcroft Sat, 06 Mar 2010 11:42:12 +0000 + +linux (2.6.32-16.23) lucid; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: PM report driver and device suspend/resume times -- move config + * update to standards version 3.8.4.0 + * printenv -- expose all of the package selectors + * source package -- cleanup source content control + * doc package -- ensure we do build package content on buildd + * lintian -- correct the address in the debian/copyright + * lintian -- update debhelper package version dependancy + * lintian -- fix ghostscript dependancy + * lintian -- add required misc:Depends + * lintian -- move our debhelper compat level to debian/compat + * perf -- build the kernel carried tools + * perf -- add linux-tools carrying the version switches and manuals + * SAUCE: fix up Kconfig for staging drivers + * [Config] enable NOUVEAU etc following drm backport + * update DRM to mainline v2.6.33 + * [Config] Remove AppArmor config options that no longer exist (ports) + * [Config] updateportsconfigs following drm update + + [ John Johansen ] + + * ubuntu: AppArmor -- update to mainline 2010-03-04 + * SAUCE: AppArmor: Reintroduce AppArmor 2.4 compatibility + * SAUCE: AppArmor: replace strim with strstrip for 2.6.32 kernels + * [Config] Remove AppArmor config options that no longer exist + + [ Manoj Iyer ] + + * ubuntu: rtl8192se -- version 2010-0115,0014 + - LP: #530275 + * [Config] added CONFIG_RTL8192SE module. + - LP: #530275 + + [ Tim Gardner ] + + * [Config] Added vmw_pvscsi to d-i/scsi-modules + - LP: #531017 + * [Upstream] netfilter: xt_recent: Add an entry reaper + + [ Upstream Kernel Changes ] + + * Revert "KVM: x86 emulator: Check CPL level during privilege instruction + emulation" + * Revert "KVM: x86 emulator: Fix popf emulation" + * Revert "KVM: x86 emulator: Check IOPL level during io instruction + emulation" + * Revert "KVM: x86 emulator: Add Virtual-8086 mode of emulation" + * Revert "KVM: fix memory access during x86 emulation." + * Add vlan (8021.Q) module package for d-i. + * (pre-stable) drm/i915: blacklist lid status: Sony VGN-BX196VP, Dell + Inspiron 700m + - LP: #515246 + * [Upstream] docbook: need xmldoclinks for all doc types + * x86: set_personality_ia32() misses force_personality32 + * lib: Introduce generic list_sort function + * drm/nv50: Implement ctxprog/state generation. + * drm/nv50: Remove redundant/incorrect ctxvals initialisation. + * (pre-stable) drm/i915: blacklist lid status: Sony VGN-BX196VP, Dell + Inspiron 700m + - LP: #515246 + + -- Andy Whitcroft Fri, 05 Mar 2010 15:40:38 +0000 + +linux (2.6.32-15.22) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Config] added new config option CONFIG_SR_REPORT_TIME_LIMIT" + * Revert "SAUCE: PM report driver and device suspend/resume times." + * [Config] set CONFIG_SR_REPORT_TIME_LIMIT + + [ Manoj Iyer ] + + * SAUCE: PM report driver and device suspend/resume times. + + -- Andy Whitcroft Tue, 02 Mar 2010 01:35:37 +0000 + +linux (2.6.32-15.21) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "(pre-stable) drm/i915: Increase fb alignment to 64k" + * Revert "[Config] lenovo-sl-laptop -- enable" + * Revert "ubuntu: lenovo-sl-laptop -- git tip (b19a08f81f)" + * armel -- cramfs module will no longer be built + * d-i -- make all modules optional + * rename the debug packages to match archive standard + - LP: #527837 + * lenovo-sl-laptop is no longer built + + [ Colin Ian King ] + + * Disable 4MB page tables for Atom, work around errata AAE44 + - LP: #523112 + + [ Colin Watson ] + + * ubuntu: dm-raid4-5: Depend on XOR_BLOCKS + * ubuntu: fsam7400: Depend on CHECK_SIGNATURE + + [ Jesse Barnes ] + + * SAUCE: drm/i915: don't change DRM configuration when releasing load + detect pipe + - LP: #488328 + + [ Loïc Minier ] + + * [Config] armel Update versatile initrd configs + - LP: #524893 + * SAUCE: [um] Don't use nx_enabled under UML + - LP: #524849 + + [ Manoj Iyer ] + + * [Config] added new config option CONFIG_SR_REPORT_TIME_LIMIT + + [ Mario Limonciello ] + + * SAUCE: v3 - Add Dell Business Class Netbook LED driver + + [ Rafael J. Wysocki ] + + * SAUCE: PM report driver and device suspend/resume times. + + [ Surbhi Palande ] + + * Revert "[Upstream] e1000e: enhance frame fragment detection" + - CVE-2009-4538 + * Revert "[Upstream] e1000: enhance frame fragment detection" + - CVE-2009-4536 + + [ Tim Gardner ] + + * [Config] Enabled CONFIG_LEDS_DELL_NETBOOKS=m + * SAUCE: (pre-stable) netfilter: xt_recent: fix buffer overflow + * SAUCE: (pre-stable) netfilter: xt_recent: fix false match + + [ Upstream Kernel Changes ] + + * Revert "(pre-stable) eCryptfs: Add getattr function" + * Fix potential crash with sys_move_pages + * futex_lock_pi() key refcnt fix + * futex: Handle user space corruption gracefully + * futex: Handle futex value corruption gracefully + * Fix race in tty_fasync() properly + * hwmon: (w83781d) Request I/O ports individually for probing + * hwmon: (lm78) Request I/O ports individually for probing + * hwmon: (adt7462) Wrong ADT7462_VOLT_COUNT + * ALSA: ctxfi - fix PTP address initialization + * drm/i915: disable hotplug detect before Ironlake CRT detect + * drm/i915: enable self-refresh on 965 + * drm/i915: Disable SR when more than one pipe is enabled + * drm/i915: Fix DDC on some systems by clearing BIOS GMBUS setup. + * drm/i915: Add HP nx9020/SamsungSX20S to ACPI LID quirk list + * drm/i915: Fix the incorrect DMI string for Samsung SX20S laptop + * drm/i915: Add MALATA PC-81005 to ACPI LID quirk list + * usb: r8a66597-hcd: Flush the D-cache for the pipe-in transfer buffers. + * i2c-tiny-usb: Fix on big-endian systems + * drm/i915: handle FBC and self-refresh better + * drm/i915: Increase fb alignment to 64k + * drm/i915: Update write_domains on active list after flush. + * regulator: Fix display of null constraints for regulators + * ALSA: hda-intel: Avoid divide by zero crash + * CPUFREQ: Fix use after free of struct powernow_k8_data + * freeze_bdev: don't deactivate successfully frozen MS_RDONLY sb + * cciss: Make cciss_seq_show handle holes in the h->drv[] array + * ioat: fix infinite timeout checking in ioat2_quiesce + * resource: add helpers for fetching rlimits + * fs/exec.c: restrict initial stack space expansion to rlimit + * cifs: fix length calculation for converted unicode readdir names + * NFS: Fix a reference leak in nfs_wb_cancel_page() + * NFS: Try to commit unstable writes in nfs_release_page() + * NFSv4: Don't allow posix locking against servers that don't support it + * NFSv4: Ensure that the NFSv4 locking can recover from stateid errors + * NFS: Fix an Oops when truncating a file + * NFS: Fix a umount race + * NFS: Fix a bug in nfs_fscache_release_page() + * NFS: Fix the mapping of the NFSERR_SERVERFAULT error + * md: fix 'degraded' calculation when starting a reshape. + * V4L/DVB: dvb-core: fix initialization of feeds list in demux filter + * Export the symbol of getboottime and mmonotonic_to_bootbased + * kvmclock: count total_sleep_time when updating guest clock + * KVM: PIT: control word is write-only + * tpm_infineon: fix suspend/resume handler for pnp_driver + * amd64_edac: Do not falsely trigger kerneloops + * netfilter: nf_conntrack: fix memory corruption with multiple namespaces + * netfilter: nf_conntrack: per netns nf_conntrack_cachep + * netfilter: nf_conntrack: restrict runtime expect hashsize modifications + * netfilter: xtables: compat out of scope fix + * netfilter: nf_conntrack: fix hash resizing with namespaces + * drm/i915: remove full registers dump debug + * drm/i915: add i915_lp_ring_sync helper + * drm/i915: Don't wait interruptible for possible plane buffer flush + * dasd: remove strings from s390dbf + * crypto: padlock-sha - Add import/export support + * wmi: Free the allocated acpi objects through wmi_get_event_data + * dell-wmi, hp-wmi, msi-wmi: check wmi_get_event_data() return value + * /dev/mem: introduce size_inside_page() + * devmem: check vmalloc address on kmem read/write + * devmem: fix kmem write bug on memory holes + * SCSI: mptfusion : mptscsih_abort return value should be SUCCESS instead + of value 0. + * sh: Couple kernel and user write page perm bits for CONFIG_X2TLB + * ALSA: hda - use WARN_ON_ONCE() for zero-division detection + * dst: call cond_resched() in dst_gc_task() + * ALSA: hda - Improved MacBook (Pro) 5,1 / 5,2 support + * befs: fix leak + * rtc-fm3130: add missing braces + * Call flush_dcache_page after PIO data transfers in libata-sff.c + * ahci: add Acer G725 to broken suspend list + * pktgen: Fix freezing problem + * x86/amd-iommu: Fix IOMMU-API initialization for iommu=pt + * x86/amd-iommu: Fix deassignment of a device from the pt_domain + * x86: Re-get cfg_new in case reuse/move irq_desc + * Staging: fix rtl8187se compilation errors with mac80211 + * ALSA: usb-audio - Avoid Oops after disconnect + * serial: 8250: add serial transmitter fully empty test + * sysfs: sysfs_sd_setattr set iattrs unconditionally + * class: Free the class private data in class_release + * USB: usbfs: only copy the actual data received + * USB: usbfs: properly clean up the as structure on error paths + * rtl8187: Add new device ID + * ACPI: Add NULL pointer check in acpi_bus_start + * ACPI: fix High cpu temperature with 2.6.32 + * drm/radeon/kms: use udelay for short delays + * NFS: Too many GETATTR and ACCESS calls after direct I/O + * eCryptfs: Add getattr function + * b43: Fix throughput regression + * ath9k: Fix sequence numbers for PAE frames + * mac80211: Fix probe request filtering in IBSS mode + * iwlwifi: Fix to set correct ht configuration + * dm stripe: avoid divide by zero with invalid stripe count + * dm log: userspace fix overhead_size calcuations + * Linux 2.6.32.9 + * sfc: Fix SFE4002 initialisation + * sfc: Fix sign of efx_mcdi_poll_reboot() error in efx_mcdi_poll() + * sfc: SFE4002/SFN4112F: Widen temperature and voltage tolerances + * (pre-stable) HID: handle joysticks with large number of buttons + - LP: #492056 + * (pre-stable) HID: extend mask for BUTTON usage page + - LP: #492056 + * PM: Measure device suspend and resume times + * e1000: enhance frame fragment detection + - CVE-2009-4536 + * e1000e: enhance frame fragment detection + - CVE-2009-4538 + * KVM: fix memory access during x86 emulation. + - CVE-2010-0306 + * KVM: x86 emulator: Add Virtual-8086 mode of emulation + - CVE-2010-0306 + * KVM: x86 emulator: Check IOPL level during io instruction emulation + - CVE-2010-0306 + * KVM: x86 emulator: Fix popf emulation + - CVE-2010-0306 + * KVM: x86 emulator: Check CPL level during privilege instruction + emulation + - CVE-2010-0306 + * Input: wacom - ensure the device is initialized properly upon resume + * Input: wacom - add defines for packet lengths of various devices + * Input: wacom - add support for new LCD tablets + - LP: #516777 + + -- Andy Whitcroft Mon, 01 Mar 2010 22:56:28 +0000 + +linux (2.6.32-14.20) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebuild following the GCC update to match compiler for out of tree modules + * Revert "[Config] drbd -- enable" + * Revert "ubuntu: drbd -- version 8.3.1" + * SAUCE: khubd -- switch USB product/manufacturer/serial handling to RCU + - LP: #510937 + + -- Andy Whitcroft Fri, 19 Feb 2010 18:47:18 +0000 + +linux (2.6.32-14.19) lucid; urgency=low + + [ Andy Whitcroft ] + + * ensure we build the source package contents when enabled + - LP: #522308 + * [Config] enable CONFIG_X86_MCE_XEON75XX + * SAUCE: AppArmor -- add linux/kref.h for struct kref + * [Config] enable CONFIG_HID_ORTEK + * enable udeb generation for arm versatile flavour + - LP: #522515 + + [ John Johansen ] + + * ubuntu: AppArmor -- update to mainline 2010-02-18 + - LP: #439560, #496110, #507069 + + [ Johnathon Harris ] + + * SAUCE: HID: add support for Ortek WKB-2000 + - LP: #405390 + + [ Upstream Kernel Changes ] + + * tpm_tis: TPM_STS_DATA_EXPECT workaround + - LP: #490487 + * x86, mce: Xeon75xx specific interface to get corrected memory error + information + * x86, mce: Rename cpu_specific_poll to mce_cpu_specific_poll + * x86, mce: Make xeon75xx memory driver dependent on PCI + * drm/edid: Unify detailed block parsing between base and extension + blocks + - LP: #500999 + * (pre-stable) eCryptfs: Add getattr function + - LP: #390833 + + -- Andy Whitcroft Thu, 18 Feb 2010 19:22:02 +0000 + +linux (2.6.32-13.18) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "enforcer -- make the enforcement configuration common" + * Revert "(pre-stable) Input: ALPS - add interleaved protocol support + (Dell E6x00 series)" + * Revert "(pre-stable) driver-core: fix devtmpfs crash on s390" + * Revert "(pre-stable) Driver-Core: devtmpfs - set root directory mode to + 0755" + * Revert "SAUCE: Adds support for COMPAL JHL90 webcam" + * Revert "SAUCE: fix kernel oops in VirtualBox during paravirt patching" + * Revert "SAUCE: make fc transport removal of target configurable" + * enforcer -- make the enforcement configuration common + * getabis -- add preempt flavour to the list + * [Config] enforce DEVTMPFS options + * [Config] armel -- cleanup to-be builtin modules + * [Config] cleanup ports configs + * [Config] enable CRYPTO_GHASH_CLMUL_NI_INTEL + - LP: #485536 + * add printdebian target to find branch target + * distclean -- do not remove debian.env + * [Config] generic-pae switch to M586TSC + - LP: #519448 + * git-ubuntu-log -- commonise duplicated log handling + * git-ubuntu-log -- tighten up Bug: NNNN matching + * git-ubuntu-log -- sort the bug numbers + + [ Chris Wilson ] + + * (pre-stable) drm/i915: Increase fb alignment to 64k + - LP: #404064 + + [ Eric Miao ] + + * arm -- enable ubuntu/ directory + + [ Huang Ying ] + + * SAUCE: crypto: ghash - Add PCLMULQDQ accelerated implementation + * SAUCE: crypto: ghash-intel - Fix building failure on x86_32 + + [ Loïc Minier ] + + * [Config] cleanup preempt configuration + * [Config] versatile: Fix video output + - LP: #517594 + * [Config] armel DEFAULT_MMAP_MIN_ADDR=32768 + * [Config] Large update to armel/versatile + * [Config] versatile: Add RTC support + * [Config] armel: Enable NEON + * [Config] versatile: Builtin MMC support + * [Config] versatile Builtin SCSI controller + * [Config] armel Disable dma_cache_sync callers + * [Config] armel Disable asm/time.h users + * [Config] armel Disable out of range udelay() + * [Config] armel Disable flush_cache_range() users + * [Config] armel -- Enable ubuntu/ drivers + + [ Steve Conklin ] + + * SAUCE: drm/i915: Add display hotplug event on Ironlake + * SAUCE: drm/i915: Add ACPI OpRegion support for Ironlake + + [ Upstream Kernel Changes ] + + * Revert "[Upstream]: oprofile/x86: add Xeon 7500 series support" + * Revert "Revert "[Bluetooth] Eliminate checks for impossible conditions + in IRQ handler"" + * clockevent: Don't remove broadcast device when cpu is dead + * clockevents: Add missing include to pacify sparse + * ACPI: don't cond_resched if irq is disabled + * be2net: Add support for next generation of BladeEngine device. + * be2net: Add the new PCI IDs to PCI_DEVICE_TABLE. + * mpt2sas: New device SAS2208 support is added + * ar9170: Add support for D-Link DWA 160 A2 + * powerpc/fsl: Add PCI device ids for new QoirQ chips + * davinci: dm646x: Add support for 3.x silicon revision + * Input: ALPS - add interleaved protocol support (Dell E6x00 series) + * Driver-Core: devtmpfs - set root directory mode to 0755 + * driver-core: fix devtmpfs crash on s390 + * vfs: get_sb_single() - do not pass options twice + * ALSA: hda - Add PCI IDs for Nvidia G2xx-series + * V4L/DVB (13569): smsusb: add autodetection support for five additional + Hauppauge USB IDs + * USB: mos7840: add device IDs for B&B electronics devices + * USB: ftdi_sio: add USB device ID's for B&B Electronics line + * V4L/DVB (13168): Add support for Asus Europa Hybrid DVB-T card (SAA7134 + SubVendor ID: 0x1043 Device ID: 0x4847) + * iTCO_wdt: Add support for Intel Ibex Peak + * atl1c:use common_task instead of reset_task and link_chg_task + * atl1e:disable NETIF_F_TSO6 for hardware limit + * V4L/DVB (13680a): DocBook/media: copy images after building HTML + * V4L/DVB (13680b): DocBook/media: create links for included sources + * netfilter: xtables: fix conntrack match v1 ipt-save output + * partitions: read whole sector with EFI GPT header + * partitions: use sector size for EFI GPT + * ALSA: ice1724 - Patch for suspend/resume for ESI Juli@ + * sched: Fix isolcpus boot option + * sched: Fix missing sched tunable recalculation on cpu add/remove + * nohz: Prevent clocksource wrapping during idle + * nfsd: Fix sort_pacl in fs/nfsd/nf4acl.c to actually sort groups + * timers, init: Limit the number of per cpu calibration bootup messages + * PCI: Always set prefetchable base/limit upper32 registers + * iscsi class: modify handling of replacement timeout + * NFS: Revert default r/wsize behavior + * HID: fixup quirk for NCR devices + * scsi_devinfo: update Hitachi entries (v2) + * scsi_dh: create sysfs file, dh_state for all SCSI disk devices + * scsi_transport_fc: remove invalid BUG_ON + * lpfc: fix hang on SGI ia64 platform + * libfc: fix typo in retry check on received PRLI + * libfc: fix ddp in fc_fcp for 0 xid + * fcoe: remove redundant checking of netdev->netdev_ops + * libfc: Fix wrong scsi return status under FC_DATA_UNDRUN + * libfc: lport: fix minor documentation errors + * libfc: don't WARN_ON in lport_timeout for RESET state + * fcoe: initialize return value in fcoe_destroy + * libfc: Fix frags in frame exceeding SKB_MAX_FRAGS in fc_fcp_send_data + * libfc: fix memory corruption caused by double frees and bad error + handling + * libfc: fix free of fc_rport_priv with timer pending + * libfc: remote port gets stuck in restart state without really + restarting + * fcoe, libfc: fix an libfc issue with queue ramp down in libfc + * fcoe: Fix checking san mac address + * fcoe: Fix getting san mac for VLAN interface + * qlge: Remove explicit setting of PCI Dev CTL reg. + * qlge: Set PCIE max read request size. + * qlge: Don't fail open when port is not initialized. + * qlge: Add handler for DCBX firmware event. + * qlge: Bonding fix for mode 6. + * PCI: AER: fix aer inject result in kernel oops + * DMI: allow omitting ident strings in DMI tables + * Input: i8042 - remove identification strings from DMI tables + * Input: i8042 - add Gigabyte M1022M to the noloop list + * Input: i8042 - add Dritek quirk for Acer Aspire 5610. + * ALSA: hda - select IbexPeak handler for Calpella + * ALSA: hda - Fix quirk for Maxdata obook4-1 + * ALSA: hda - Add missing Line-Out and PCM switches as slave + * iTCO_wdt.c - cleanup chipset documentation + * iTCO_wdt: add PCI ID for the Intel EP80579 (Tolapai) SoC + * iTCO_wdt: Add Intel Cougar Point and PCH DeviceIDs + * ahci: disable SNotification capability for ich8 + * ata_piix: fix MWDMA handling on PIIX3 + * md: fix small irregularity with start_ro module parameter + * V4L/DVB (13826): uvcvideo: Fix controls blacklisting + * cio: fix double free in case of probe failure + * cio: dont panic in non-fatal conditions + * netiucv: displayed TX bytes value much too high + * ipc ns: fix memory leak (idr) + * ALSA: hda - Fix HP T5735 automute + * hwmon: (fschmd) Fix a memleak on multiple opens of /dev/watchdog + * UBI: fix memory leak in update path + * UBI: initialise update marker + * ASoC: fix a memory-leak in wm8903 + * mac80211: check that ieee80211_set_power_mgmt only handles STA + interfaces. + * cfg80211: fix channel setting for wext + * KVM: S390: fix potential array overrun in intercept handling + * KVM: only allow one gsi per fd + * KVM: Fix race between APIC TMR and IRR + * KVM: MMU: bail out pagewalk on kvm_read_guest error + * KVM: x86: Fix host_mapping_level() + * KVM: x86: Fix probable memory leak of vcpu->arch.mce_banks + * KVM: x86: Fix leak of free lapic date in kvm_arch_vcpu_init() + * KVM: fix lock imbalance in kvm_*_irq_source_id() + * KVM: only clear irq_source_id if irqchip is present + * IPoIB: Clear ipoib_neigh.dgid in ipoib_neigh_alloc() + * x86: Reenable TSC sync check at boot, even with NONSTOP_TSC + * ACPI: enable C2 and Turbo-mode on Nehalem notebooks on A/C + - LP: #516325 + * iwlwifi: Fix throughput stall issue in HT mode for 5000 + * fnctl: f_modown should call write_lock_irqsave/restore + * x86, msr/cpuid: Pass the number of minors when unregistering MSR and + CPUID drivers. + * Linux 2.6.32.7 + * scsi_lib: Fix bug in completion of bidi commands + * mptsas: Fix issue with chain pools allocation on katmai + * mm: add new 'read_cache_page_gfp()' helper function + * drm/i915: Selectively enable self-reclaim + * firewire: ohci: fix crashes with TSB43AB23 on 64bit systems + * S390: fix single stepped svcs with TRACE_IRQFLAGS=y + * x86: Set hotpluggable nodes in nodes_possible_map + * x86: Remove "x86 CPU features in debugfs" (CONFIG_X86_CPU_DEBUG) + * libata: retry FS IOs even if it has failed with AC_ERR_INVALID + * zcrypt: Do not remove coprocessor for error 8/72 + * dasd: fix possible NULL pointer errors + * ACPI: Add a generic API for _OSC -v2 + * ACPI: Add platform-wide _OSC support. + * ACPI: fix OSC regression that caused aer and pciehp not to load + * ACPI: Advertise to BIOS in _OSC: _OST on _PPC changes + * UBI: fix volume creation input checking + * e1000/e1000e: don't use small hardware rx buffers + * drm/i915: Reload hangcheck timer too for Ironlake + * Fix a leak in affs_fill_super() + * Fix failure exits in bfs_fill_super() + * fix oops in fs/9p late mount failure + * fix leak in romfs_fill_super() + * Fix remount races with symlink handling in affs + * fix affs parse_options() + * Fix failure exit in ipathfs + * mm: fix migratetype bug which slowed swapping + * FDPIC: Respect PT_GNU_STACK exec protection markings when creating + NOMMU stack + * Split 'flush_old_exec' into two functions + * sparc: TIF_ABI_PENDING bit removal + * x86: get rid of the insane TIF_ABI_PENDING bit + * Input: winbond-cir - remove dmesg spam + * x86: Disable HPET MSI on ATI SB700/SB800 + * iwlwifi: set default aggregation frame count limit to 31 + * drm/i915: only enable hotplug for detected outputs + * firewire: core: add_descriptor size check + * SECURITY: selinux, fix update_rlimit_cpu parameter + * regulator: Specify REGULATOR_CHANGE_STATUS for WM835x LED constraints + * x86: Add Dell OptiPlex 760 reboot quirk + - LP: #488319 + * x86: Add quirk for Intel DG45FC board to avoid low memory corruption + * x86/amd-iommu: Fix possible integer overflow + * clocksource: fix compilation if no GENERIC_TIME + * tcp: update the netstamp_needed counter when cloning sockets + * sky2: Fix oops in sky2_xmit_frame() after TX timeout + * net: restore ip source validation + * af_packet: Don't use skb after dev_queue_xmit() + * ax25: netrom: rose: Fix timer oopses + * KVM: allow userspace to adjust kvmclock offset + * oprofile/x86: add Xeon 7500 series support + * oprofile/x86: fix crash when profiling more than 28 events + * libata: retry link resume if necessary + * mm: percpu-vmap fix RCU list walking + * mm: purge fragmented percpu vmap blocks + * block: fix bio_add_page for non trivial merge_bvec_fn case + * Fix 'flush_old_exec()/setup_new_exec()' split + * random: drop weird m_time/a_time manipulation + * random: Remove unused inode variable + * block: fix bugs in bio-integrity mempool usage + * usb: r8a66597-hdc disable interrupts fix + * connector: Delete buggy notification code. + * be2net: Bug fix to support newer generation of BE ASIC + * be2net: Fix memset() arg ordering. + * mm: flush dcache before writing into page to avoid alias + * mac80211: fix NULL pointer dereference when ftrace is enabled + * imxfb: correct location of callbacks in suspend and resume + * mx3fb: some debug and initialisation fixes + * starfire: clean up properly if firmware loading fails + * kernel/cred.c: use kmem_cache_free + * uartlite: fix crash when using as console + * pktcdvd: removing device does not remove its sysfs dir + * ath9k: fix eeprom INI values override for 2GHz-only cards + * ath9k: fix beacon slot/buffer leak + * powerpc: TIF_ABI_PENDING bit removal + * NET: fix oops at bootime in sysctl code + * Linux 2.6.32.8 + + -- Andy Whitcroft Wed, 10 Feb 2010 18:56:52 +0000 + +linux (2.6.32-12.17) lucid; urgency=low + + [ Andy Whitcroft ] + + * restore linux-image prefix -- master + * enforce -- we require SELINUX enabled -- master + * enforce -- ensure APPARMOR is our default LSM -- master + * make doc package completely optional -- master + * make source package completely optional -- master + * make linux-libc-dev completly optional -- master + * convert package disable to a deps list -- master + * allow common headers to switch from indep to arch -- master + * convert binary package disable to a deps list -- master + * add configuration option for a full source build tree -- master + * add support for uImage kernels in package control scripts + * getabis -- cleanup and parameterise repository list -- master + * getabis -- move configuration to etc/getabi -- master + * kernelconfig -- move configuration to etc -- master + * rules -- make debian/debian.env master for branch name + * set the current branch name -- master + * pull back common debian.master files into debian -- master + * enforcer -- make the enforcement configuration common + * insert-changes -- correctly link to debian/rules in DROOT + + [ Colin Watson ] + + * future-proof ddeb handling against buildd changes + + [ Eric Miao ] + + * SAUCE: Make CONFIG_{OMNIBOOK, AVERATEC_5100P, PACKARDBELL_E5} depend on + X86 + + [ Loïc Minier ] + + * Add modules.builtin.bin to prerm rm list + - LP: #516584 + + [ Tim Gardner ] + + * [Config] Implement the amd64 preempt flavour + + [ Upstream Kernel Changes ] + + * syslog: distinguish between /proc/kmsg and syscalls + - LP: #515623 + * sfc: Fix polling for slow MCDI operations + * sfc: Fix conditions for MDIO self-test + * sfc: QT202x: Remove unreliable MMD check at initialisation + * sfc: Add workspace for GMAC bug workaround to MCDI MAC_STATS buffer + * sfc: Use fixed-size buffers for MCDI NVRAM requests + + -- Andy Whitcroft Fri, 05 Feb 2010 07:09:31 +0000 + +linux (2.6.32-12.16) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: acpi battery -- delay first lookup of the battery until + first use" + * SAUCE: acpi battery -- move first lookup asynchronous + - LP: #507211 + * [Config] update configs to cleanup generic configs + * [Config] disable CONFIG_X86_CPU_DEBUG for amd64 + * [Config] enable USER_NS + - LP: #480739, #509808 + + [ Heiko Carstens ] + + * (pre-stable) driver-core: fix devtmpfs crash on s390 + - LP: #512370 + + [ John Johansen ] + + * [Config] for server and virtual flavours make CONFIG_SCSI_SYM53C8XX_2=y + - LP: #494565 + * [Config] VIRTIO=y for server/virtual flavours + - LP: #494565 + + [ Kay Sievers ] + + * (pre-stable) Driver-Core: devtmpfs - set root directory mode to 0755 + - LP: #512370 + + [ Kees Cook ] + + * SAUCE: x86: brk away from exec rand area + - LP: #452175 + + [ Leann Ogasawara ] + + * [Upstream] e1000: enhance frame fragment detection + - CVE-2009-4536 + * [Upstream] e1000e: enhance frame fragment detection + - CVE-2009-4538 + + [ Sebastian Kapfer ] + + * (pre-stable) Input: ALPS - add interleaved protocol support (Dell E6x00 + series) + - LP: #296610 + + [ Upstream Kernel Changes ] + + * inotify: do not reuse watch descriptors + - LP: #485556 + * inotify: only warn once for inotify problems + * revert "drivers/video/s3c-fb.c: fix clock setting for Samsung SoC + Framebuffer" + * memcg: ensure list is empty at rmdir + * drm/i915: remove loop in Ironlake interrupt handler + * block: Fix incorrect reporting of partition alignment + * x86, mce: Thermal monitoring depends on APIC being enabled + * futexes: Remove rw parameter from get_futex_key() + * page allocator: update NR_FREE_PAGES only when necessary + * x86, apic: use physical mode for IBM summit platforms + * edac: i5000_edac critical fix panic out of bounds + * x86: SGI UV: Fix mapping of MMIO registers + * mfd: WM835x GPIO direction register is not locked + * mfd: Correct WM835x ISINK ramp time defines + * ALSA: hda - Fix missing capture mixer for ALC861/660 codecs + * V4L/DVB (13868): gspca - sn9c20x: Fix test of unsigned. + * reiserfs: truncate blocks not used by a write + * HID: add device IDs for new model of Apple Wireless Keyboard + * PCI/cardbus: Add a fixup hook and fix powerpc + * Input: pmouse - move Sentelic probe down the list + * asus-laptop: add Lenovo SL hotkey support + * sched: Fix cpu_clock() in NMIs, on !CONFIG_HAVE_UNSTABLE_SCHED_CLOCK + * sparc64: Fix NMI programming when perf events are active. + * sparc64: Fix Niagara2 perf event handling. + * i2c: Do not use device name after device_unregister + * i2c/pca: Don't use *_interruptible + * serial/8250_pnp: add a new Fujitsu Wacom Tablet PC device + * sched: Fix task priority bug + * vfs: Fix vmtruncate() regression + * Linux 2.6.32.5 + * x86, msr/cpuid: Register enough minors for the MSR and CPUID drivers + * V4L/DVB (13900): gspca - sunplus: Fix bridge exchanges. + * Staging: asus_oled: fix oops in 2.6.32.2 + * Staging: hv: fix smp problems in the hyperv core code + * tty: fix race in tty_fasync + * ecryptfs: use after free + * ecryptfs: initialize private persistent file before dereferencing + pointer + * nozomi: quick fix for the close/close bug + * serial: 8250_pnp: use wildcard for serial Wacom tablets + * usb: serial: fix memory leak in generic driver + * USB: fix bitmask merge error + * USB: Don't use GFP_KERNEL while we cannot reset a storage device + * USB: EHCI: fix handling of unusual interrupt intervals + * USB: EHCI & UHCI: fix race between root-hub suspend and port resume + * USB: add missing delay during remote wakeup + * USB: add speed values for USB 3.0 and wireless controllers + * ACPI: EC: Accelerate query execution + * ACPI: EC: Add wait for irq storm + * SCSI: enclosure: fix oops while iterating enclosure_status array + * drm/i915: Read the response after issuing DDC bus switch command + * drm/i915: try another possible DDC bus for the SDVO device with + multiple outputs + * block: bdev_stack_limits wrapper + * DM: Fix device mapper topology stacking + * x86/PCI/PAT: return EINVAL for pci mmap WC request for !pat_enabled + * USB: fix usbstorage for 2770:915d delivers no FAT + * vmalloc: remove BUG_ON due to racy counting of VM_LAZY_FREE + * perf timechart: Use tid not pid for COMM change + * perf events: Dont report side-band events on each cpu for + per-task-per-cpu events + * perf: Honour event state for aux stream data + * Linux 2.6.32.6 + + -- Andy Whitcroft Wed, 27 Jan 2010 16:40:23 +0000 + +linux (2.6.32-11.15) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "(pre-stable) drm/radeon/kms: fix crtc vblank update for r600" + * Revert "(pre-stable) sched: Fix balance vs hotplug race" + * Revert "[Upstream] acerhdf: Limit modalias matching to supported + boards" + * Revert "[Upstream] mmc: prevent dangling block device from accessing + stale queues" + * Revert "SAUCE: Fix nx_enable reporting" + * Revert "SAUCE: [x86] fix report of cs-limit nx-emulation" + * Revert "SAUCE: [x86] implement cs-limit nx-emulation for ia32" + * SAUCE: i915 -- disable powersave by default + - LP: #492392 + + [ Kees Cook ] + + * SAUCE: [x86] implement cs-limit nx-emulation for ia32 + - LP: #369978 + * SAUCE: [x86] fix report of cs-limit nx-emulation + - LP: #454285 + * SAUCE: Fix nx_enable reporting + - LP: #454285 + + [ Tim Gardner ] + + * [Upstream] b43: Declare all possible firmware files. + - LP: #488636 + * [Config] updateconfigs after adding pvscsi + - LP: #497156 + * [Config] CONFIG_BT=m + + [ Upstream Kernel Changes ] + + * Revert "x86: Side-step lguest problem by only building cmpxchg8b_emu + for pre-Pentium" + * SCSI: ipr: fix EEH recovery + * SCSI: qla2xxx: dpc thread can execute before scsi host has been added + * SCSI: st: fix mdata->page_order handling + * SCSI: fc class: fix fc_transport_init error handling + * sched: Fix task_hot() test order + * x86, cpuid: Add "volatile" to asm in native_cpuid() + * sched: Select_task_rq_fair() must honour SD_LOAD_BALANCE + * clockevents: Prevent clockevent_devices list corruption on cpu hotplug + * pata_hpt3x2n: fix clock turnaround + * pata_cmd64x: fix overclocking of UDMA0-2 modes + * ASoC: wm8974: fix a wrong bit definition + * sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer + * ALSA: hda - Fix missing capsrc_nids for ALC88x + * acerhdf: limit modalias matching to supported + - LP: #435958 + * ACPI: EC: Fix MSI DMI detection + * ACPI: Use the return result of ACPI lid notifier chain correctly + * powerpc: Handle VSX alignment faults correctly in little-endian mode + * ASoC: Do not write to invalid registers on the wm9712. + * drm/radeon: fix build on 64-bit with some compilers. + * USB: emi62: fix crash when trying to load EMI 6|2 firmware + * USB: option: support hi speed for modem Haier CE100 + * USB: Fix a bug on appledisplay.c regarding signedness + * USB: musb: gadget_ep0: avoid SetupEnd interrupt + * Bluetooth: Prevent ill-timed autosuspend in USB driver + * USB: rename usb_configure_device + * USB: fix bugs in usb_(de)authorize_device + * drivers/net/usb: Correct code taking the size of a pointer + * x86: SGI UV: Fix writes to led registers on remote uv hubs + * md: Fix unfortunate interaction with evms + * dma: at_hdmac: correct incompatible type for argument 1 of + 'spin_lock_bh' + * dma-debug: Do not add notifier when dma debugging is disabled. + * dma-debug: Fix bug causing build warning + * cifs: NULL out tcon, pSesInfo, and srvTcp pointers when chasing DFS + referrals + * x86/amd-iommu: Fix initialization failure panic + * ioat3: fix p-disabled q-continuation + * ioat2,3: put channel hardware in known state at init + * KVM: MMU: remove prefault from invlpg handler + * KVM: LAPIC: make sure IRR bitmap is scanned after vm load + * Libertas: fix buffer overflow in lbs_get_essid() + * iwmc3200wifi: fix array out-of-boundary access + * mac80211: fix propagation of failed hardware reconfigurations + * mac80211: fix WMM AP settings application + * mac80211: Fix IBSS merge + * cfg80211: fix race between deauth and assoc response + * ath5k: fix SWI calibration interrupt storm + * ath9k: wake hardware for interface IBSS/AP/Mesh removal + * ath9k: Fix TX queue draining + * ath9k: fix missed error codes in the tx status check + * ath9k: wake hardware during AMPDU TX actions + * ath9k: fix suspend by waking device prior to stop + * ath9k_hw: Fix possible OOB array indexing in gen_timer_index[] on + 64-bit + * ath9k_hw: Fix AR_GPIO_INPUT_EN_VAL_BT_PRIORITY_BB and its shift value + in 0x4054 + * iwl3945: disable power save + * iwl3945: fix panic in iwl3945 driver + * iwlwifi: fix EEPROM/OTP reading endian annotations and a bug + * iwlwifi: fix more eeprom endian bugs + * iwlwifi: fix 40MHz operation setting on cards that do not allow it + * mac80211: fix race with suspend and dynamic_ps_disable_work + * NOMMU: Optimise away the {dac_,}mmap_min_addr tests + * 'sysctl_max_map_count' should be non-negative + * kernel/sysctl.c: fix the incomplete part of + sysctl_max_map_count-should-be-non-negative.patch + * V4L/DVB (13596): ov511.c typo: lock => unlock + * x86/ptrace: make genregs[32]_get/set more robust + * memcg: avoid oom-killing innocent task in case of use_hierarchy + * e100: Fix broken cbs accounting due to missing memset. + * ipv6: reassembly: use seperate reassembly queues for conntrack and + local delivery + * netfilter: fix crashes in bridge netfilter caused by fragment jumps + * hwmon: (sht15) Off-by-one error in array index + incorrect constants + * b43: avoid PPC fault during resume + * Keys: KEYCTL_SESSION_TO_PARENT needs TIF_NOTIFY_RESUME architecture + support + * sched: Fix balance vs hotplug race + * drm/radeon/kms: fix crtc vblank update for r600 + * drm: disable all the possible outputs/crtcs before entering KMS mode + * S390: dasd: support DIAG access for read-only devices + * xen: fix is_disconnected_device/exists_disconnected_device + * xen: improvement to wait_for_devices() + * xen: wait up to 5 minutes for device connetion + * orinoco: fix GFP_KERNEL in orinoco_set_key with interrupts disabled + * udf: Try harder when looking for VAT inode + * Add unlocked version of inode_add_bytes() function + * quota: decouple fs reserved space from quota reservation + * ext4: Convert to generic reserved quota's space management. + * ext4: fix sleep inside spinlock issue with quota and dealloc (#14739) + * x86, msr: Unify rdmsr_on_cpus/wrmsr_on_cpus + * cpumask: use modern cpumask style in drivers/edac/amd64_edac.c + * amd64_edac: unify MCGCTL ECC switching + * x86, msr: Add support for non-contiguous cpumasks + * x86, msr: msrs_alloc/free for CONFIG_SMP=n + * amd64_edac: fix driver instance freeing + * amd64_edac: make driver loading more robust + * amd64_edac: fix forcing module load/unload + * sched: Sched_rt_periodic_timer vs cpu hotplug + * ext4: Update documentation to correct the inode_readahead_blks option + name + * lguest: fix bug in setting guest GDT entry + * vmscan: do not evict inactive pages when skipping an active list scan + * ksm: fix mlockfreed to munlocked + * rt2x00: Disable powersaving for rt61pci and rt2800pci. + * generic_permission: MAY_OPEN is not write access + * Linux 2.6.32.3 + * untangle the do_mremap() mess + * fasync: split 'fasync_helper()' into separate add/remove functions + * ASoC: fix params_rate() macro use in several codecs + * modules: Skip empty sections when exporting section notes + * exofs: simple_write_end does not mark_inode_dirty + * nfsd: make sure data is on disk before calling ->fsync + * sunrpc: fix peername failed on closed listener + * SUNRPC: Fix up an error return value in + gss_import_sec_context_kerberos() + * SUNRPC: Fix the return value in gss_import_sec_context() + * sunrpc: on successful gss error pipe write, don't return error + * drm/i915: Update LVDS connector status when receiving ACPI LID event + * drm/i915: fix order of fence release wrt flushing + * drm/i915: Permit pinning whilst the device is 'suspended' + * drm: remove address mask param for drm_pci_alloc() + * drm/i915: Enable/disable the dithering for LVDS based on VBT setting + * drm/i915: Make the BPC in FDI rx/transcoder be consistent with that in + pipeconf on Ironlake + * drm/i915: Select the correct BPC for LVDS on Ironlake + * drm/i915: fix unused var + * rtc_cmos: convert shutdown to new pnp_driver->shutdown + * drivers/cpuidle/governors/menu.c: fix undefined reference to + `__udivdi3' + * cgroups: fix 2.6.32 regression causing BUG_ON() in cgroup_diput() + * lib/rational.c needs module.h + * dma-debug: allow DMA_BIDIRECTIONAL mappings to be synced with + DMA_FROM_DEVICE and + * kernel/signal.c: fix kernel information leak with print-fatal-signals=1 + * mmc_block: add dev_t initialization check + * mmc_block: fix probe error cleanup bug + * mmc_block: fix queue cleanup + * ALSA: hda - Fix ALC861-VD capture source mixer + * ALSA: ac97: Add Dell Dimension 2400 to Headphone/Line Jack Sense + blacklist + * ALSA: atiixp: Specify codec for Foxconn RC4107MA-RS2 + - LP: #498863 + * ASoC: Fix WM8350 DSP mode B configuration + * netfilter: ebtables: enforce CAP_NET_ADMIN + * netfilter: nf_ct_ftp: fix out of bounds read in update_nl_seq() + * hwmon: (coretemp) Fix TjMax for Atom N450/D410/D510 CPUs + * hwmon: (adt7462) Fix pin 28 monitoring + * quota: Fix dquot_transfer for filesystems different from ext4 + * xen: fix hang on suspend. + * iwlwifi: fix iwl_queue_used bug when read_ptr == write_ptr + * ath5k: Fix eeprom checksum check for custom sized eeproms + * cfg80211: fix syntax error on user regulatory hints + * iwl: off by one bug + * mac80211: add missing sanity checks for action frames + * drm/i915: remove render reclock support + * libertas: Remove carrier signaling from the scan code + * kernel/sysctl.c: fix stable merge error in NOMMU mmap_min_addr + * mac80211: fix skb buffering issue (and fixes to that) + * fix braindamage in audit_tree.c untag_chunk() + * fix more leaks in audit_tree.c tag_chunk() + * module: handle ppc64 relocating kcrctabs when CONFIG_RELOCATABLE=y + * ipv6: skb_dst() can be NULL in ipv6_hop_jumbo(). + * agp/intel-agp: Clear entire GTT on startup + * Linux 2.6.32.4 + * ethtool: Add reset operation + * gro: Name the GRO result enumeration type + * gro: Change all receive functions to return GRO result codes + * sfc: 10Xpress: Initialise pause advertising flags + * sfc: 10Xpress: Report support for pause frames + * sfc: Remove redundant header gmii.h + * sfc: Remove redundant hardware initialisation + * sfc: Rename Falcon-specific board code and types + * sfc: Remove boards.h, moving last remaining declaration to falcon.h + * sfc: Remove versioned bitfield macros + * sfc: Move RX data FIFO thresholds out of struct efx_nic_type + * sfc: Update hardware definitions for Siena + * sfc: Rename register I/O header and functions used by both Falcon and + Siena + * sfc: Eliminate indirect lookups of queue size constants + * sfc: Define DMA address mask explicitly in terms of descriptor field + width + * sfc: Move all TX DMA length limiting into tx.c + * sfc: Change order of device removal to reverse of probe order + * sfc: Remove declarations of nonexistent functions + * sfc: Move efx_xmit_done() declaration into correct stanza + * sfc: Move shared members of struct falcon_nic_data into struct efx_nic + * sfc: Maintain interrupt moderation values in ticks, not microseconds + * sfc: Removed kernel-doc for nonexistent member of efx_phy_operations + * sfc: Remove pointless abstraction of memory BAR number + * sfc: Remove incorrect assertion from efx_pci_remove_main() + * sfc: Remove unnecessary tests of efx->membase + * sfc: Move MTD probe after netdev registration and name allocation + * sfc: Remove unused code for non-autoneg speed/duplex switching + * sfc: Rename 'xfp' file and functions to reflect reality + * sfc: Really allow RX checksum offload to be disabled + * sfc: Feed GRO result into RX allocation policy and interrupt moderation + * sfc: Enable heuristic selection between page and skb RX buffers + * sfc: Remove pointless abstraction of memory BAR number (2) + * sfc: Remove redundant gotos from __efx_rx_packet() + * sfc: Remove ridiculously paranoid assertions + * sfc: Move assertions and buffer cleanup earlier in efx_rx_packet_lro() + * sfc: Record RX queue number on GRO path + * sfc: SFT9001: Reset LED configuration correctly after blinking + * sfc: Use a single blink implementation + * sfc: Rename efx_board::init_leds to init_phy and use for SFN4111T + * sfc: Make board information explicitly Falcon-specific + * sfc: Move definition of struct falcon_nic_data into falcon.h + * sfc: Move struct falcon_board into struct falcon_nic_data + * sfc: Move all I2C stuff into struct falcon_board + * sfc: Gather link state fields in struct efx_nic into new struct + efx_link_state + * sfc: Remove unnecessary casts to struct sk_buff * + * sfc: Remove redundant efx_xmit() function + * sfc: Combine high-level header files + * sfc: Log interrupt and reset type names, not numbers + * sfc: Fix descriptor cache sizes + * sfc: Treat all MAC registers as 128-bit + * sfc: Strengthen EFX_ASSERT_RESET_SERIALISED + * sfc: Comment corrections + * sfc: Remove unused constant + * sfc: Clean up struct falcon_board and struct falcon_board_data + * sfc: Fix bugs in RX queue flushing + * sfc: Remove unused function efx_flush_queues() + * sfc: Only switch Falcon MAC clocks as necessary + * sfc: Hold MAC lock for longer in efx_init_port() + * sfc: Split MAC stats DMA initiation and completion + * sfc: Move Falcon board/PHY/MAC monitoring code to falcon.c + * sfc: Simplify XMAC link polling + * sfc: Change MAC promiscuity and multicast hash at the same time + * sfc: Move inline comment into kernel-doc + * sfc: Do not set net_device::trans_start in self-test + * sfc: Simplify PHY polling + * sfc: QT202x: Reset before reading PHY id + * sfc: Replace MDIO spinlock with mutex + * sfc: Always start Falcon using the XMAC + * sfc: Limit some hardware workarounds to Falcon + * sfc: Remove EFX_WORKAROUND_9141 macro + * sfc: Remove another unused workaround macro + * sfc: Remove some redundant whitespace + * sfc: Decouple NIC revision number from Falcon PCI revision number + * sfc: Move descriptor cache base addresses to struct efx_nic_type + * sfc: Clean up RX event handling + * sfc: Remove redundant writes to INT_ADR_KER + * sfc: Remove duplicate hardware structure definitions + * sfc: Turn pause frame generation on and off at the MAC, not the RX FIFO + * sfc: Move Falcon NIC operations to efx_nic_type + * sfc: Refactor link configuration + * sfc: Generalise link state monitoring + * sfc: Add power-management and wake-on-LAN support + * sfc: Implement ethtool reset operation + * sfc: Add efx_nic_type operation for register self-test + * sfc: Add efx_nic_type operation for NVRAM self-test + * sfc: Add efx_nic_type operation for identity LED control + * sfc: Separate shared NIC code from Falcon-specific and rename + accordingly + * sfc: Fold falcon_probe_nic_variant() into falcon_probe_nic() + * sfc: Extend loopback mode enumeration + * sfc: Remove static PHY data and enumerations + * sfc: Extend MTD driver for use with new NICs + * sfc: Allow for additional checksum offload features + * sfc: Rename falcon.h to nic.h + * sfc: Move shared NIC code from falcon.c to new source file nic.c + * sfc: Add firmware protocol definitions (MCDI) + * sfc: Add support for SFC9000 family (1) + * sfc: Add support for SFC9000 family (2) + * sfc: Implement TSO for TCP/IPv6 + * sfc: Update version, copyright dates, authors + * drivers/net/sfc: Correct code taking the size of a pointer + * sfc: Move PHY software state initialisation from init() into probe() + * sfc: Include XGXS in XMAC link status check except in XGMII loopback + * sfc: Fix DMA mapping cleanup in case of an error in TSO + * sfc: QT2025C: Work around PHY bug + * sfc: QT2025C: Switch into self-configure mode when not in loopback + * sfc: QT2025C: Work around PHY firmware initialisation bug + * sfc: QT2025C: Add error message for suspected bad SFP+ cables + * sfc: Disable TX descriptor prefetch watchdog + * [SCSI] vmw_pvscsi: SCSI driver for VMware's virtual HBA. + - LP: #497156 + + -- Andy Whitcroft Tue, 19 Jan 2010 16:12:47 +0000 + +linux (2.6.32-10.14) lucid; urgency=low + + [ Alex Deucher ] + + * SAUCE: drm/radeon/kms: fix LVDS setup on r4xx + - LP: #493795 + + [ Andy Whitcroft ] + + * Revert "(pre-stable) acpi: Use the ARB_DISABLE for the CPU which model + id is less than 0x0f." + * config-check -- ensure the checks get run at build time + * config-check -- check the processed config during updateconfigs + * config-check -- CONFIG_SECCOMP may not be present + * TUN is now built in ignore + * SAUCE: acpi battery -- delay first lookup of the battery until first + use + * SAUCE: async_populate_rootfs: move rootfs init earlier + * ubuntu: AppArmor -- update to mainline 2010-01-06 + * SAUCE: move RLIMIT_CORE pipe dumper marker to 1 + - LP: #498525 + + [ Dave Airlie ] + + * (pre-stable) drm/radeon/kms: fix crtc vblank update for r600 + + [ Leann Ogasawara ] + + * Add asix to nic-usb-modules file + - LP: #499785 + + [ Peter Zijlstra ] + + * (pre-stable) sched: Fix balance vs hotplug race + + [ Tim Gardner ] + + * [Config] Enable CONFIG_FUNCTION_TRACER + - LP: #497989 + * [Config] Drop lpia from getabis + * [Config] Build in TUN/TAP driver + - LP: #499491 + * [Config] DH_COMPAT=5 + + [ Upstream Kernel Changes ] + + * Revert "(pre-stable) drm/i915: Avoid NULL dereference with + component_only tv_modes" + * Revert "(pre-stable) drm/i915: Fix sync to vblank when VGA output is + turned off" + * USB: usb-storage: fix bug in fill_inquiry + * USB: option: add pid for ZTE + * firewire: ohci: handle receive packets with a data length of zero + * rcu: Prepare for synchronization fixes: clean up for non-NO_HZ handling + of ->completed counter + * rcu: Fix synchronization for rcu_process_gp_end() uses of ->completed + counter + * rcu: Fix note_new_gpnum() uses of ->gpnum + * rcu: Remove inline from forward-referenced functions + * perf_event: Fix invalid type in ioctl definition + * perf_event: Initialize data.period in perf_swevent_hrtimer() + * perf: Don't free perf_mmap_data until work has been done + * PM / Runtime: Fix lockdep warning in __pm_runtime_set_status() + * sched: Check for an idle shared cache in select_task_rq_fair() + * sched: Fix affinity logic in select_task_rq_fair() + * sched: Rate-limit newidle + * sched: Fix and clean up rate-limit newidle code + * x86/amd-iommu: attach devices to pre-allocated domains early + * x86/amd-iommu: un__init iommu_setup_msi + * x86, Calgary IOMMU quirk: Find nearest matching Calgary while walking + up the PCI tree + * x86: Fix iommu=nodac parameter handling + * x86: GART: pci-gart_64.c: Use correct length in strncmp + * x86: ASUS P4S800 reboot=bios quirk + - LP: #366682 + * x86, apic: Enable lapic nmi watchdog on AMD Family 11h + * ssb: Fix range check in sprom write + * ath5k: allow setting txpower to 0 + * ath5k: enable EEPROM checksum check + * hrtimer: Fix /proc/timer_list regression + * ALSA: hrtimer - Fix lock-up + * ALSA: hda - Terradici HDA controllers does not support 64-bit mode + * KVM: x86 emulator: limit instructions to 15 bytes + * KVM: s390: Fix prefix register checking in arch/s390/kvm/sigp.c + * KVM: s390: Make psw available on all exits, not just a subset + * KVM: fix irq_source_id size verification + * KVM: x86: include pvclock MSRs in msrs_to_save + * x86: Prevent GCC 4.4.x (pentium-mmx et al) function prologue wreckage + * x86: Use -maccumulate-outgoing-args for sane mcount prologues + * x86, mce: don't restart timer if disabled + * x86/mce: Set up timer unconditionally + * x86: SGI UV: Fix BAU initialization + * x86: Fix duplicated UV BAU interrupt vector + * x86: Add new Intel CPU cache size descriptors + * x86: Fix typo in Intel CPU cache size descriptor + * pata_hpt{37x|3x2n}: fix timing register masks (take 2) + * s390: clear high-order bits of registers after sam64 + * V4L/DVB: Fix test in copy_reg_bits() + * bsdacct: fix uid/gid misreporting + * UBI: flush wl before clearing update marker + * jbd2: don't wipe the journal on a failed journal checksum + * USB: xhci: Add correct email and files to MAINTAINERS entry. + * USB: musb_gadget_ep0: fix unhandled endpoint 0 IRQs, again + * USB: option.c: add support for D-Link DWM-162-U5 + * USB: usbtmc: repeat usb_bulk_msg until whole message is transfered + * USB: usb-storage: add BAD_SENSE flag + * USB: Close usb_find_interface race v3 + * pxa/em-x270: fix usb hub power up/reset sequence + * hfs: fix a potential buffer overflow + * SUNRPC: IS_ERR/PTR_ERR confusion + * NFS: Fix nfs_migrate_page() + * md/bitmap: protect against bitmap removal while being updated. + * futex: Take mmap_sem for get_user_pages in fault_in_user_writeable + * devpts_get_tty() should validate inode + * debugfs: fix create mutex racy fops and private data + * Driver core: fix race in dev_driver_string + * Serial: Do not read IIR in serial8250_start_tx when UART_BUG_TXEN + * mac80211: Fix bug in computing crc over dynamic IEs in beacon + * mac80211: Fixed bug in mesh portal paths + * mac80211: Revert 'Use correct sign for mesh active path refresh' + * mac80211: fix scan abort sanity checks + * wireless: correctly report signal value for IEEE80211_HW_SIGNAL_UNSPEC + * rtl8187: Fix wrong rfkill switch mask for some models + * x86: Fix bogus warning in apic_noop.apic_write() + * mm: hugetlb: fix hugepage memory leak in mincore() + * mm: hugetlb: fix hugepage memory leak in walk_page_range() + * powerpc/windfarm: Add detection for second cpu pump + * powerpc/therm_adt746x: Record pwm invert bit at module load time] + * powerpc: Fix usage of 64-bit instruction in 32-bit altivec code + * drm/radeon/kms: Add quirk for HIS X1300 board + * drm/radeon/kms: handle vblanks properly with dpms on + * drm/radeon/kms: fix legacy crtc2 dpms + * drm/radeon/kms: fix vram setup on rs600 + * drm/radeon/kms: rs6xx/rs740: clamp vram to aperture size + * drm/ttm: Fix build failure due to missing struct page + * drm/i915: Set the error code after failing to insert new offset into mm + ht. + * drm/i915: Add the missing clonemask for display port on Ironlake + * xen/xenbus: make DEVICE_ATTR()s static + * xen: re-register runstate area earlier on resume. + * xen: restore runstate_info even if !have_vcpu_info_placement + * xen: correctly restore pfn_to_mfn_list_list after resume + * xen: register timer interrupt with IRQF_TIMER + * xen: register runstate on secondary CPUs + * xen: don't call dpm_resume_noirq() with interrupts disabled. + * xen: register runstate info for boot CPU early + * xen: call clock resume notifier on all CPUs + * xen: improve error handling in do_suspend. + * xen: don't leak IRQs over suspend/resume. + * xen: use iret for return from 64b kernel to 32b usermode + * xen: explicitly create/destroy stop_machine workqueues outside + suspend/resume region. + * Xen balloon: fix totalram_pages counting. + * xen: try harder to balloon up under memory pressure. + * dm exception store: free tmp_store on persistent flag error + * dm snapshot: only take lock for statustype info not table + * dm crypt: move private iv fields to structs + * dm crypt: restructure essiv error path + * dm: avoid _hash_lock deadlock + * dm snapshot: cope with chunk size larger than origin + * dm crypt: separate essiv allocation from initialisation + * dm crypt: make wipe message also wipe essiv key + * slc90e66: fix UDMA handling + * tcp: Stalling connections: Fix timeout calculation routine + * ip_fragment: also adjust skb->truesize for packets not owned by a + socket + * b44 WOL setup: one-bit-off stack corruption kernel panic fix + * sparc64: Don't specify IRQF_SHARED for LDC interrupts. + * sparc64: Fix overly strict range type matching for PCI devices. + * sparc64: Fix stack debugging IRQ stack regression. + * sparc: Set UTS_MACHINE correctly. + * b43legacy: avoid PPC fault during resume + * tracing: Fix event format export + * ath9k: Fix TX hang poll routine + * ath9k: fix processing of TX PS null data frames + * ath9k: Fix maximum tx fifo settings for single stream devices + * ath9k: fix tx status reporting + * mac80211: Fix dynamic power save for scanning. + * drm/i915: Fix sync to vblank when VGA output is turned off + * memcg: fix memory.memsw.usage_in_bytes for root cgroup + * thinkpad-acpi: fix default brightness_mode for R50e/R51 + * thinkpad-acpi: preserve rfkill state across suspend/resume + * ipw2100: fix rebooting hang with driver loaded + * matroxfb: fix problems with display stability + * acerhdf: add new BIOS versions + * asus-laptop: change light sens default values. + * vmalloc: conditionalize build of pcpu_get_vm_areas() + * ACPI: Use the ARB_DISABLE for the CPU which model id is less than 0x0f. + * net: Fix userspace RTM_NEWLINK notifications. + * ext3: Fix data / filesystem corruption when write fails to copy data + * V4L/DVB (13116): gspca - ov519: Webcam 041e:4067 added. + * bcm63xx_enet: fix compilation failure after get_stats_count removal + * x86: Under BIOS control, restore AP's APIC_LVTTHMR to the BSP value + * drm/i915: Avoid NULL dereference with component_only tv_modes + * drm/i915: PineView only has LVDS and CRT ports + * drm/i915: Fix LVDS stability issue on Ironlake + * mm: sigbus instead of abusing oom + * ipvs: zero usvc and udest + * jffs2: Fix long-standing bug with symlink garbage collection. + * intel-iommu: Detect DMAR in hyperspace at probe time. + * intel-iommu: Apply BIOS sanity checks for interrupt remapping too. + * intel-iommu: Check for an RMRR which ends before it starts. + * intel-iommu: Fix oops with intel_iommu=igfx_off + * intel-iommu: ignore page table validation in pass through mode + * netfilter: xtables: document minimal required version + * perf_event: Fix incorrect range check on cpu number + * implement early_io{re,un}map for ia64 + * Linux 2.6.32.2 + + -- Andy Whitcroft Thu, 07 Jan 2010 15:28:43 +0000 + +linux (2.6.32-9.13) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_B43_PHY_LP + - LP: #493059 + * include modules.builtin in the binary debs + * config-check -- add a configuration enforcer + * config-check -- add a unit-test suite to the checker + * [Config] Enable CONFIG_SYN_COOKIES for versatile + * [Config] Enable CONFIG_SECURITY_SMACK for ports + * [Config] Enable CONFIG_SECURITY_FILE_CAPABILITIES for ports + * [Config] Disable CONFIG_COMPAT_BRK for ports + * getabis -- add armel versatile to the list + + [ Brad Figg ] + + * SAUCE: Increase the default prealloc buffer for HDA audio devices + (non-modem) + + [ Manoj Iyer ] + + * ubuntu: onmibook -- Added missing BOM file + + [ Tim Gardner ] + + * ubuntu: fsam7400 -- Cleanup Makefile + + [ Upstream Kernel Changes ] + + * Revert "ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT" + * signal: Fix alternate signal stack check + * SCSI: scsi_lib_dma: fix bug with dma maps on nested scsi objects + * SCSI: osd_protocol.h: Add missing #include + * SCSI: megaraid_sas: fix 64 bit sense pointer truncation + * ext4: fix potential buffer head leak when add_dirent_to_buf() returns + ENOSPC + * ext4: avoid divide by zero when trying to mount a corrupted file system + * ext4: fix the returned block count if EXT4_IOC_MOVE_EXT fails + * ext4: fix lock order problem in ext4_move_extents() + * ext4: fix possible recursive locking warning in EXT4_IOC_MOVE_EXT + * ext4: plug a buffer_head leak in an error path of ext4_iget() + * ext4: make sure directory and symlink blocks are revoked + * ext4: fix i_flags access in ext4_da_writepages_trans_blocks() + * ext4: journal all modifications in ext4_xattr_set_handle + * ext4: don't update the superblock in ext4_statfs() + * ext4: fix uninit block bitmap initialization when s_meta_first_bg is + non-zero + * ext4: fix block validity checks so they work correctly with meta_bg + * ext4: avoid issuing unnecessary barriers + * ext4: fix error handling in ext4_ind_get_blocks() + * ext4: make trim/discard optional (and off by default) + * ext4: make "norecovery" an alias for "noload" + * ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT + * ext4: initialize moved_len before calling ext4_move_extents() + * ext4: move_extent_per_page() cleanup + * jbd2: Add ENOMEM checking in and for + jbd2_journal_write_metadata_buffer() + * ext4: Return the PTR_ERR of the correct pointer in + setup_new_group_blocks() + * ext4: Avoid data / filesystem corruption when write fails to copy data + * ext4: wait for log to commit when umounting + * ext4: remove blocks from inode prealloc list on failure + * ext4: ext4_get_reserved_space() must return bytes instead of blocks + * ext4: quota macros cleanup + * ext4: fix incorrect block reservation on quota transfer. + * ext4: Wait for proper transaction commit on fsync + * ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT + * ext4: Fix potential fiemap deadlock (mmap_sem vs. i_data_sem) + * Linux 2.6.32.1 + * kbuild: generate modules.builtin + * (pre-stable) drm/i915: Fix sync to vblank when VGA output is turned off + - LP: #494461 + * (pre-stable) drm/i915: Avoid NULL dereference with component_only + tv_modes + - LP: #494045 + + [ Zhao Yakui ] + + * (pre-stable) acpi: Use the ARB_DISABLE for the CPU which model id is + less than 0x0f. + - LP: #481765 + + -- Andy Whitcroft Thu, 17 Dec 2009 15:41:21 +0000 + +linux (2.6.32-8.12) lucid; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: AppArmor -- add linux/err.h for ERR_PTR + + -- Andy Whitcroft Sat, 12 Dec 2009 10:56:16 +0000 + +linux (2.6.32-8.11) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: default ATI Radeon KMS to off until userspace catches + up" + * Revert "SAUCE: AppArmor: Fix oops there is no tracer and doing unsafe + transition." + * Revert "SAUCE: AppArmor: Fix refcounting bug causing leak of creds" + * Revert "SAUCE: AppArmor: Fix cap audit_caching preemption disabling" + * Revert "SAUCE: AppArmor: Fix Oops when in apparmor_bprm_set_creds" + * Revert "SAUCE: AppArmor: Fix oops after profile removal" + * Revert "SAUCE: AppArmor: AppArmor disallows truncate of deleted files." + * Revert "SAUCE: AppArmor: AppArmor fails to audit change_hat correctly" + * Revert "SAUCE: AppArmor: Policy load and replacement can fail to alloc + mem" + * Revert "SAUCE: AppArmor: AppArmor wrongly reports allow perms as + denied" + * Revert "SAUCE: AppArmor: Fix mediation of "deleted" paths" + * Revert "SAUCE: AppArmor: Fix off by 2 error in getprocattr mem + allocation" + * Revert "SAUCE: AppArmor: Set error code after structure + initialization." + * Revert "AppArmor -- fix pstrace_may_access rename" + * Revert "ubuntu: AppArmor security module" + * Revert "SAUCE: Add config option to set a default LSM" + * Revert "ubuntu: fsam7400 -- sw kill switch driver" + * Revert "[Config] fsam7400 -- enable" + * Revert "[Config] AUFS -- enable" + * Revert "ubuntu: AUFS -- aufs2-30 20090727" + * Revert "ubuntu: AUFS -- export various core functions -- fixes" + * Revert "ubuntu: AUFS -- export various core functions" + * Revert "[Config] ubuntu/iscsitarget -- disable" + * Revert "[Config] iscsitarget -- enable" + * Revert "ubuntu: iscsitarget -- SVN revision r214" + * update Vcs-Git to point to the correct repository + - LP: #493589 + * update build environment overrides to lucid + - LP: #493589 + * [Config] enable CONFIG_DEVTMPFS + * [Config] update all configs following AppArmor 2009-12-08 update + * SAUCE: isapnp_init: make isa PNP scans occur async + * [Config] fsam7400 -- enable + * [Config] omnibook -- enable + * [Config] cleanup CONFIG_AUDIT + * ubuntu: AUFS -- export various core functions (aufs2-base.patch) + * ubuntu: AUFS -- export various core functions (aufs2-standalone.patch) + * ubuntu: AUFS -- aufs2 20091209 + * [Config] AUFS -- enable + * [Config] iscsitarget -- enable + + [ Arjan van de Ven ] + + * SAUCE: KMS: cache the EDID information of the LVDS + + [ Colin Watson ] + + * bnx2: update d-i firmware filenames + - LP: #494052 + * add cdc_ether to nic-usb-modules udeb + - LP: #495060 + + [ John Johansen ] + + * ubuntu: AppArmor -- mainline 2009-10-08 + + [ Manoj Iyer ] + + * ubuntu: fsam7400 -- kill switch for Fujitsu Siemens Amilo M 7400 + * ubuntu: omnibook -- support Toshiba (HP) netbooks + * ubuntu: iscsitarget --- version 1.4.19 + - LP: #494693 + + [ Surbhi Palande ] + + * SAUCE: Make populate_rootfs asynchronous + + [ Tim Gardner ] + + * Parallelize flavour builds and packaging + * [Config] Enable CONFIG_KSM + + [ Upstream Kernel Changes ] + + * Config option to set a default LSM + * LSM: Add security_path_chroot(). + * LSM: Add security_path_chroot(). + * LSM: Move security_path_chmod()/security_path_chown() to after + mutex_lock(). + * ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT + + -- Andy Whitcroft Fri, 11 Dec 2009 17:45:19 +0000 + +linux (2.6.32-7.10) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] disable CONFIG_THUMB2_KERNEL to fix arm FTBFS + + -- Andy Whitcroft Sun, 06 Dec 2009 12:56:48 +0000 + +linux (2.6.32-7.9) lucid; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: set /proc/acpi/video/*/DOS to 4 by default + - LP: #458982 + * SAUCE: ensure vga16fb loads if no other driver claims the VGA device + * [Config] update configs following versatile switch to V7 + * rebased to v2.6.32 + * [Config] update configs following rebase to v2.6.32 + * [Config] update ports configs following rebase to v2.6.32 + * SAUCE: default ATI Radeon KMS to off until userspace catches up + + [ Arjan van de Ven ] + + * SAUCE: vfs: Add a trace point in the mark_inode_dirty function + + [ Leann Ogasawara ] + + * [SCSI] megaraid_sas: remove sysfs poll_mode_io world writeable + permissions + - CVE-2009-3939 + + [ Loic Minier ] + + * SAUCE: select a v7 CPU for versatile + + [ Takashi Iwai ] + + * SAUCE: ALSA: hda - Add power on/off counter + + [ Upstream changes ] + + * rebased to v2.6.32 + + -- Andy Whitcroft Fri, 04 Dec 2009 10:44:50 +0000 + +linux (2.6.32-6.8) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] disable SSB devices for armel + + -- Andy Whitcroft Sat, 28 Nov 2009 12:16:40 +0000 + +linux (2.6.32-6.7) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: default ATI Radeon KMS to off until userspace catches up" + * Revert "SAUCE: Dell XPS710 reboot quirk" + * Revert "SAUCE: Link acpi-cpufreq.o first" + * Revert "SAUCE: LPIA Logical reset of USB port on resume" + * Revert "SAUCE: LPIA Reboot fix for Intel Crownbeach development boards" + * Revert "SAUCE: Enable HDMI audio codec on Studio XPS 1340" + * Revert "SAUCE: Dell laptop digital mic does not work, PCI 1028:0271" + * Revert "Add Dell Dimension 9200 reboot quirk" + * Revert "SAUCE: Correctly blacklist Thinkpad r40e in ACPI" + * Revert "SAUCE: tulip: Define ULI PCI ID's" + * Revert "SAUCE: Lower warning level of some PCI messages" + * Revert "mac80211: fix two issues in debugfs" + Drop a number of known redundant commits as identified in the Ubuntu + delta review blueprint. + + * reenable armel versatile flavour + * [Config] disable CONFIG_USB_DEVICEFS + + [ Tim Gardner ] + + * [Config] udeb: Add squashfs to fs-core-modules + - LP: #352615 + * [Config] Create a real squashfs udeb + - LP: #352615 + + + -- Andy Whitcroft Fri, 27 Nov 2009 17:31:16 +0000 + +linux (2.6.32-5.6) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.32-rc8 + * update configs following rebase to v2.6.32-rc8 + * update ports configs since rebase to v2.6.32-rc8 + * [Config] enable cgroup options + - LP: #480739 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc8 + + -- Andy Whitcroft Mon, 23 Nov 2009 11:16:14 +0000 + +linux (2.6.32-4.5) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] SERIO_LIBPS2 and SERIO_I8042 must match + * rebase to v2.6.32-rc7 + * resync with Karmic proposed + + [ John Johansen ] + + * SAUCE: AppArmor: Fix oops after profile removal + - LP: #475619 + * SAUCE: AppArmor: Fix Oops when in apparmor_bprm_set_creds + - LP: #437258 + * SAUCE: AppArmor: Fix cap audit_caching preemption disabling + - LP: #479102 + * SAUCE: AppArmor: Fix refcounting bug causing leak of creds + - LP: #479115 + * SAUCE: AppArmor: Fix oops there is no tracer and doing unsafe + transition. + - LP: #480112 + + [ Ubuntu Changes ] + + * resync with Karmic proposed (ddbc670a86a3dee18541a3734149f250ff307adf) + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc7 + + -- Andy Whitcroft Fri, 13 Nov 2009 11:35:13 +0000 + +linux (2.6.32-3.4) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] SERIO_LIBPS2 and SERIO_I8042 must match + * [Upstream] add local prefix to oss local change_bits + + [ Upstream Kernel Changes ] + + * mtd/maps: gpio-addr-flash: pull in linux/ headers rather than asm/ + * mtd/maps: gpio-addr-flash: depend on GPIO arch support + + -- Andy Whitcroft Wed, 11 Nov 2009 14:47:04 +0000 + +linux (2.6.32-3.3) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.32-rc6 + * [Config] update configs following rebase to v2.6.32-rc6 + * [Config] update ports configs following rebase to v2.6.32-rc6 + * resync with Karmic Ubuntu-2.6.31-15.49 + * [Config] add module ignores for broken drivers + + [ John Johansen ] + + * SAUCE: AppArmor: AppArmor wrongly reports allow perms as denied + - LP: #453335 + * SAUCE: AppArmor: Policy load and replacement can fail to alloc mem + - LP: #458299 + * SAUCE: AppArmor: AppArmor fails to audit change_hat correctly + - LP: #462824 + * SAUCE: AppArmor: AppArmor disallows truncate of deleted files. + - LP: #451375 + + [ Kees Cook ] + + * SAUCE: Fix nx_enable reporting + - LP: #454285 + + [ Scott James Remnant ] + + * Revert "SAUCE: trace: add trace_event for the open() syscall" + * SAUCE: trace: add trace events for open(), exec() and uselib() + - LP: #462111 + + [ Stefan Bader ] + + * SAUCE: Fix sub-flavour script to not stop on missing directories + - LP: #453073 + + [ Ubuntu Changes ] + + * resync with Karmic Ubuntu-2.6.31-15.49 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc6 + - LP: #464552 + + -- Andy Whitcroft Tue, 10 Nov 2009 15:00:57 +0000 + +linux (2.6.32-2.2) lucid; urgency=low + + [ Andy Whitcroft ] + + * install the full changelog with the binary package + * changelog -- explicitly note rebases and clean history + * reinstate armel.mk with no flavours + - LP: #449637 + * [Upstream] block: silently error unsupported empty barriers too + - LP: #420423 + * [Config] udate configs following karmic resync + * [Config] update ports configs following karmic resync + * [Upstream] lirc -- follow removal of .id element + + [ Colin Watson ] + + * Use section 'admin' rather than 'base' + * Add more e100 firmware to nic-modules + - LP: #451872 + * Add qla1280 firmware to scsi-modules + - LP: #381037 + + [ John Johansen ] + + * SAUCE: AppArmor: Set error code after structure initialization. + - LP: #427948 + * SAUCE: AppArmor: Fix off by 2 error in getprocattr mem allocation + - LP: #446595 + * SAUCE: AppArmor: Fix mediation of "deleted" paths + + [ Kees Cook ] + + * SAUCE: [x86] fix report of cs-limit nx-emulation + - LP: #454285 + + [ Leann Ogasawara ] + + * SAUCE: (drop after 2.6.31) input: Add support for filtering input + events + - LP: #430809 + * SAUCE: (drop after 2.6.31) dell-laptop: Trigger rfkill updates on wifi + toggle switch press + - LP: #430809 + + [ Luke Yelavich ] + + * SAUCE: Add sr_mod to the scsi-modules udeb for powerpc + * [Config] Add sd_mod to scsi-modules udeb for powerpc + + [ Mario Limonciello ] + + * SAUCE: Update to LIRC 0.8.6 + - LP: #432678 + * SAUCE: dell-laptop: Store the HW switch status internally rather than + requerying every time + - LP: #430809 + * SAUCE: dell-laptop: Blacklist machines not supporting dell-laptop + - LP: #430809 + + [ Stefan Bader ] + + * [Upstream] acerhdf: Limit modalias matching to supported boards + - LP: #435958 + + [ Tim Gardner ] + + * [Upstream] i915: Fix i2c init message + - LP: #409361 + * [Config] Add sym53c8xx.ko to virtual sub-flavour + - LP: #439415 + * [Config] Add d101m_ucode.bin to d-i/firmware/nic-modules + - LP: #439456 + * [Config] Set default I/O scheduler back to CFQ for desktop flavours + - LP: #381300 + * SAUCE: Created MODULE_EXPORT/MODULE_IMPORT macros + - LP: #430694 + * SAUCE: Use MODULE_IMPORT macro to tie intel_agp to i915 + - LP: #430694 + * [Config] CONFIG_GFS2_FS_LOCKING_DLM=y + - LP: #416325 + * SAUCE: Fix MODULE_IMPORT/MODULE_EXPORT + - LP: #430694 + * SAUCE: Raise the default console 'quiet' level to 2 + * [Config] CONFIG_X86_PAT=y + * [Config] Add armel arch to linux-libc-dev arches. + - LP: #449637 + * [Config] CONFIG_X86_MCE + * [Upstream] (drop after 2.6.31) Input: synaptics - add another Protege + M300 to rate blacklist + - LP: #433801 + + [ Upstream Kernel Changes ] + + * sgi-gru: Fix kernel stack buffer overrun, CVE-2009-2584 + * drm/i915: Fix FDI M/N setting according with correct color depth + - LP: #416792 + + -- Andy Whitcroft Thu, 22 Oct 2009 16:53:33 +0100 + +linux (2.6.32-1.1) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.32-rc3 + * [Config] update configs following rebase to 2.6.32-rc3 + * [Config] update ports configs following rebase to 2.6.32-rc3 + * AppArmor -- fix pstrace_may_access rename + * staging/android -- disable + * ubuntu: dm-raid-45 -- update to compile with 2.6.32 + * ubuntu: drbd -- disable + * staging/comdi -- disable + * staging/go7007 -- disable + * [Config] staging/winbond -- disable + * [Config] ubuntu/iscsitarget -- disable + * [d-i] cbc and ecb are builtin make them optional in udebs + * rebase to v2.6.32-rc5 + * [Config] update configs following rebase to v2.6.32-rc5 + * [Config] update ports configs following rebase to v2.6.31-rc5 + + [ Tim Gardner ] + + * [Config] Add cpio as a build dependency. + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc3 + * rebase to v2.6.32-rc5 + + -- Andy Whitcroft Mon, 05 Oct 2009 15:48:58 +0100 + +linux (2.6.31-11.37) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] Increase kernel log buffer to 256K for amd64 flavours + - LP: #424810 + * [Config] Set HZ=100 for amd64 flavours + - LP: #438234 + * [Upstream] e1000e: Emit notice instead of an error when + pci_enable_pcie_error_reporting() fails + - LP: #436370 + + [ Upstream Kernel Changes ] + + * n_tty: honor opost flag for echoes + * n_tty: move echoctl check and clean up logic + - LP: #438310 + + * Revert "[Upstream] drm/i915: Check that the relocation points to within + the target" - Use upstream cherry-pick. + * drm/i915: Check that the relocation points to within the target + - LP: #429241 + + * drm/i915: fix tiling on IGDNG + * drm/i915: add B43 chipset support + * agp/intel: Add B43 chipset support + Intel request from kernel team mailing list. + + * HID: completely remove apple mightymouse from blacklist + - LP: #428111 + + -- Tim Gardner Mon, 28 Sep 2009 11:47:29 -0600 + +linux (2.6.31-11.36) karmic; urgency=low + + [ Brian Rogers ] + + * SAUCE: (drop after 2.6.31) em28xx: ir-kbd-i2c init data needs a + persistent object + * SAUCE: (drop after 2.6.31) saa7134: ir-kbd-i2c init data needs a + persistent object + + [ Takashi Iwai ] + + * [Upstream] ALSA: hda - Add another entry for Nvidia HDMI device + - LP: #416482 + + [ Tyler Hicks ] + + * SAUCE: (drop after 2.6.31) eCryptfs: Prevent lower dentry from going + negative during unlink + + [ Upstream Kernel Changes ] + + * sg: fix oops in the error path in sg_build_indirect() + * mpt2sas : Rescan topology from Interrupt context instead of work thread + * mpt2sas: Prevent sending command to FW while Host Reset + * mpt2sas: setting SDEV into RUNNING state from Interrupt context + * mpt2sas: Raid 10 Volume is showing as Raid 1E in dmesg + * SCSI: fix oops during scsi scanning + * SCSI: libsrp: fix memory leak in srp_ring_free() + * cfg80211: fix looping soft lockup in find_ie() + * ath5k: write PCU registers on initial reset + * binfmt_elf: fix PT_INTERP bss handling + * TPM: Fixup boot probe timeout for tpm_tis driver + * md: Fix "strchr" [drivers/md/dm-log-userspace.ko] undefined! + * x86/amd-iommu: fix broken check in amd_iommu_flush_all_devices + * fix undefined reference to user_shm_unlock + * perf_counter: Fix buffer overflow in perf_copy_attr() + * perf_counter: Start counting time enabled when group leader gets + enabled + * powerpc/perf_counters: Reduce stack usage of power_check_constraints + * powerpc: Fix bug where perf_counters breaks oprofile + * powerpc/ps3: Workaround for flash memory I/O error + * block: don't assume device has a request list backing in nr_requests + store + * agp/intel: remove restore in resume + * ALSA: cs46xx - Fix minimum period size + * ASoC: Fix WM835x Out4 capture enumeration + * sound: oxygen: work around MCE when changing volume + * mlx4_core: Allocate and map sufficient ICM memory for EQ context + * perf stat: Change noise calculation to use stddev + * x86: Fix x86_model test in es7000_apic_is_cluster() + * x86/i386: Make sure stack-protector segment base is cache aligned + * PCI: apply nv_msi_ht_cap_quirk on resume too + * x86, pat: Fix cacheflush address in change_page_attr_set_clr() + * ARM: 5691/1: fix cache aliasing issues between kmap() and kmap_atomic() + with highmem + * KVM guest: do not batch pte updates from interrupt context + * KVM: Fix coalesced interrupt reporting in IOAPIC + * KVM: VMX: Check cpl before emulating debug register access + * KVM guest: fix bogus wallclock physical address calculation + * KVM: x86: Disallow hypercalls for guest callers in rings > 0 + * KVM: VMX: Fix cr8 exiting control clobbering by EPT + * KVM: x86 emulator: Implement zero-extended immediate decoding + * KVM: MMU: make __kvm_mmu_free_some_pages handle empty list + * KVM: x86 emulator: fix jmp far decoding (opcode 0xea) + * KVM: limit lapic periodic timer frequency + * libata: fix off-by-one error in ata_tf_read_block() + * PCI quirk: update 82576 device ids in SR-IOV quirks list + * PCI: Unhide the SMBus on the Compaq Evo D510 USDT + * powerpc/pseries: Fix to handle slb resize across migration + * Linux 2.6.31.1 + + -- Tim Gardner Thu, 24 Sep 2009 13:04:28 -0600 + +linux (2.6.31-10.35) karmic; urgency=low + + [ Amit Kucheria ] + + * Disable CONFIG_UEVENT_HELPER_PATH + + [ Andy Whitcroft ] + + * [Config] Enable CONFIG_USB_GADGET_DUMMY_HCD + * remove the tlsup driver + * remove lmpcm logitech driver support + + [ Bryan Wu ] + + * Add 3 missing files to prerm remove file list + - LP: #345623, #415832 + + [ Chris Wilson ] + + * [Upstream] drm/i915: Check that the relocation points to within the + target + - LP: #429241 + + [ Luke Yelavich ] + + * [Config] Set CONFIG_EXT4_FS=y on ports architectures + + [ Manoj Iyer ] + + * SAUCE: Added quirk to recognize GE0301 3G modem as an interface. + - LP: #348861 + + [ Tim Gardner ] + + * Revert "[Upstream] ACPI: Add Thinkpad W500, W700, & W700ds to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad R400 & Thinkpad R500 to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad X300 & Thinkpad X301 to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad X200, X200s, X200t to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad T400 & Thinkpad T500 to OSI(Linux) white-list" + Upstream suggests that this is not the right approach. + + * [Config] Set default I/O scheduler to DEADLINE + CFQ seems to have some load related problems which are often exacerbated by sreadahead. + - LP: #381300 + + [ ubuntu@tjworld.net ] + + * SAUCE: ipw2200: Enable LED by default + - LP: #21367 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Add support for new AMD HD audio devices + - LP: #430564 + + -- Andy Whitcroft Wed, 16 Sep 2009 15:37:49 +0100 + +linux (2.6.31-10.34) karmic; urgency=low + + [ Ted Tso ] + + * [Upstream] ext3: Don't update superblock write time when filesystem is + read-only + - LP: #427822 + + -- Tim Gardner Tue, 15 Sep 2009 16:00:45 -0600 + +linux (2.6.31-10.33) karmic; urgency=low + + [ Leann Ogasawara ] + + * [Upstream] dvb-usb: fix tuning with Cinergy T2 + - LP: #421258 + + [ Tim Gardner ] + + * [Config] Unconditionally copy files from sub-flavours lists. + (really, really fix it this time) + - LP: #423426 + * [Config] Set CONFIG_CACHEFILES=m for all flavours + + [ Upstream Kernel Changes ] + + * ext4: Don't update superblock write time when filesystem is read-only + - LP: #427822 + + -- Tim Gardner Tue, 15 Sep 2009 07:50:21 -0600 + +linux (2.6.31-10.32) karmic; urgency=low + + [ Eric Miao ] + + * [Config] enable module support for memory stick + - LP: #159951 + + [ Tim Gardner ] + + * [Config] Unconditionally copy files from sub-flavours lists. + - LP: #423426 + + -- Tim Gardner Thu, 10 Sep 2009 15:57:55 -0600 + +linux (2.6.31-10.31) karmic; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.31 final + + [ Colin Watson ] + + * [Config] Recommend grub-pc in linux-image + - LP: #385741 + + [ Ike Panhc ] + + * [Upstream] Pull latest update of lenovo-sl-laptop + + [ Peter Feuerer ] + + * [Upstream] (drop after 2.6.31) acerhdf: fix fan control for AOA150 + model + - LP: #426691 + + [ Tim Gardner ] + + * [Config] De-macro some package names. + + [ Upstream Changes ] + + * rebase to 2.6.31 final. + + -- Andy Whitcroft Thu, 10 Sep 2009 09:38:10 +0100 + +linux (2.6.31-10.30) karmic; urgency=low + + [ Amit Kucheria ] + + * [Config] Enable CONFIG_USB_DEVICEFS + - LP: #417748 + * [Config] Populate the config-update template a bit more + + [ Andy Whitcroft ] + + * rebase to v2.6.31-rc9 + * [Config] update configs following rebase to v2.6.31-rc9 + * [Config] update ports configs following rebase to v2.6.31-rc9 + + [ Colin Ian King ] + + * SAUCE: wireless: hostap, fix oops due to early probing interrupt + - LP: #254837 + + [ Jerone Young ] + + * [Upstream] ACPI: Add Thinkpad T400 & Thinkpad T500 to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad X200, X200s, X200t to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad X300 & Thinkpad X301 to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad R400 & Thinkpad R500 to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad W500, W700, & W700ds to OSI(Linux) + white-list + - LP: #281732 + + [ John Johansen ] + + * SAUCE: AppArmor: Fix profile attachment for regexp based profile names + - LP: #419308 + * SAUCE: AppArmor: Return the correct error codes on profile + addition/removal + - LP: #408473 + * SAUCE: AppArmor: Fix OOPS in profile listing, and display full list + - LP: #408454 + * SAUCE: AppArmor: Fix mapping of pux to new internal permission format + - LP: #419222 + * SAUCE: AppArmor: Fix change_profile failure + - LP: #401931 + * SAUCE: AppArmor: Tell git to ignore generated include files + - LP: #419505 + + [ Stefan Bader ] + + * [Upstream] acpi: video: Loosen strictness of video bus detection code + - LP: #333386 + * SAUCE: Remove ov511 driver from ubuntu subdirectory + + [ Tim Gardner ] + + * [Config] Exclude char-modules from non-x86 udeb creation + * SAUCE: Notify the ACPI call chain of AC events + * [Config] CONFIG_SATA_VIA=m + - LP: #403385 + * [Config] Build in all phylib support modules. + * [Config] Don't fail when sub-flavour files are missing + - LP: #423426 + * [Config] Set CONFIG_LSM_MMAP_MIN_ADDR=0 + - LP: #423513 + + [ Upstream ] + + * Rebased against v2.6.31-rc9 + + -- Andy Whitcroft Mon, 07 Sep 2009 11:33:45 +0100 + +linux (2.6.31-9.29) karmic; urgency=low + + [ Leann Ogasawara ] + + * [Upstream] agp/intel: support for new chip variant of IGDNG mobile + - LP: #419993 + * [Config] d-i/modules: Add new char-modules file, initialize with + intel-agp + - LP: #420605 + + [ Upstream ] + + * Rebased against 2.6.31-rc8 plus some inotify regression patches: + up through git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + adda766193ea1cf3137484a9521972d080d0b7af. + + -- Tim Gardner Fri, 28 Aug 2009 06:31:30 -0600 + +linux (2.6.31-8.28) karmic; urgency=low + + [ Ike Panhc ] + + * [Config] Let nic-shared-modules depends on crypto-modules + - LP: #360966 + + [ Leann Ogasawara ] + + * [Upstream] (drop after 2.6.31) drm/i915: increase default latency + constant + - LP: #412492 + + [ Mario Limonciello ] + + * [Upstream]: (drop after 2.6.31) dell-laptop: don't change softblock + status if HW switch is disabled + - LP: #418721 + * [Upstream]: (drop after 2.6.31) compal-laptop: Add support for known + Compal made Dell laptops + * [Upstream]: (drop after 2.6.31) compal-laptop: Replace sysfs support + with rfkill support + + [ Tim Gardner ] + + * [Config] Add acpiphp to virtual sub-flavour + - LP: #364916 + * Drop KSM patch set for now because of instabilities with encrypted swap. + - LP: #418781 + + -- Tim Gardner Wed, 26 Aug 2009 08:14:26 -0600 + +linux (2.6.31-7.27) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] updateconfigs updateportsconfigs after 2.6.31-rc7 rebase + * SAUCE: (drop after 2.6.31) Added KSM from mmotm-2009-08-20-19-18 + Replaces previous ksm patches from 2.6.31-6.25 + * [Config] KSM=y + + [ Upstream ] + + * Rebased against v2.6.31-rc7 + + -- Tim Gardner Sat, 22 Aug 2009 20:32:11 -0600 + +linux (2.6.31-6.26) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_AUFS_BR_RAMFS + - LP: #414738 + * split out debian directory ready for abstraction + * add printdebian target to find branch target + * abstracted debian -- debian/files is not abstracted + * abstracted debian -- packages must be built in debian/ + * abstracted debian -- kernel-wedge needs to work in debian/ + * abstracted debian -- ensure we install the copyright file + * abstracted-debian -- drop the debian directories from headers + * abstracted-debian -- drop the debian directories from headers part 2 + * SAUCE: ubuntu-insert-changes -- follow abstracted debian + * [Upstream] aoe: ensure we initialise the request_queue correctly V2 + - LP: #410198 + + [ Luke Yelavich ] + + * [Config] Ports: Disable CONFIG_CPU_FREQ_DEBUG on powerpc-smp + * [Config] Ports: Re-enable windfarm modules on powerpc64-smp + - LP: #413150 + * [Config] Ports: Build all cpu frequency scaling governors into ports + kernels + * [Config] Ports: Build ext2 and ext3 modules into ports kernels + * [Config] Ports: CONFIG_PACKET=y for all ports kernels + * [Config] Ports: Enable PS3 network driver + + [ Stefan Bader ] + + * abstracted debian -- call $(DEBIAN)/rules using make + + [ Tim Gardner ] + + * [Config] Abstract the debian directory + * SAUCE: Improve error reporting in postinst + - LP: #358564 + + -- Tim Gardner Sun, 16 Aug 2009 20:33:28 -0600 + +linux (2.6.31-6.25) karmic; urgency=low + + [ Andy Whitcroft ] + + * script to generate Ubuntu changes from changelog + * [Config] standardise ANDROID options + * [Config] standardise CONFIG_ATM as module + * [Config] standardise CONFIG_LIB80211 as module + * [Config] disable CONFIG_PRINT_QUOTA_WARNING + * [Config] set CONFIG_CRAMFS as module + * [Config] enable CONFIG_DAB and modules + * [Config] set CONFIG_MAC80211_HWSIM as module + * [Config] set CONFIG_NET_CLS_FLOW as module + * [Config] set CONFIG_NF_CONNTRACK_SANE as module + * [Config] set CONFIG_NF_CT_PROTO_DCCP as module + * [Config] set CONFIG_RTC_DRV_DS1511 as module + * [Config] set CONFIG_RTC_DRV_R9701 as module + * [Config] set CONFIG_RTC_DRV_S35390A as module + * [Config] set CONFIG_TOIM3232_DONGLE as module + * [Config] standardise CONFIG_USB_MIDI_GADGET as module + * [Config] standardise CONFIG_USB_G_PRINTER as module + * [Config] standardise CONFIG_USB_SERIAL_IR as module + * [Config] set CONFIG_USB_SERIAL_IUU as module + * [Config] standardise CONFIG_USB_STORAGE_CYPRESS_ATACB as module + * [Config] standardise CONFIG_USB_STORAGE_ONETOUCH as module + * cleanup remains of dm-loop + * drop thinkpad ec and smapi support + * drop appleir + * [Config] update configs following rebase to v2.6.31-rc6 + * rebase to v2.6.31-rc6 + + [ Hugh Dickins ] + + * SAUCE: ksm patch 1, drop after 2.6.31 + * SAUCE: ksm patch 2, drop after 2.6.31 + * SAUCE: ksm patch 3, drop after 2.6.31 + * SAUCE: ksm patch 4, drop after 2.6.31 + * SAUCE: ksm patch 5, drop after 2.6.31 + * SAUCE: ksm patch 7, drop after 2.6.31 + + [ Izik Eidus ] + + * SAUCE: ksm patch 0, drop after 2.6.31 + * SAUCE: ksm patch 6, drop after 2.6.31 + * SAUCE: ksm patch 8, drop after 2.6.31 + * SAUCE: ksm patch 9, drop after 2.6.31 + + [ Luke Yelavich ] + + * [Config] Ports: Re-add PS3 modules to udebs + + [ Michael Casadevall ] + + * [Config] Update SPARC config and d-i files to reflect what can be built + + [ Tim Gardner ] + + * [Config] Removed armel package support + * [Config] Enabled CONFIG_KSM=y + + [ Upstream Kernel Changes ] + + * Rebased against v2.6.31-rc6 + * ARM: Cleanup: Revert "ARM: Add more cache memory types macros" + * ARM: Cleanup: Revert "Do not use OOB with MLC NAND" + * ARM: Cleanup: Revert "ARM: Make ARM arch aware of ubuntu/ drivers" + * ARM: Cleanup: Revert "ARM: IMX51: Make video capture drivers compile" + * ARM: Cleanup: Revert "ARM: IMX51: Fix isl29003 HWMON driver for i2c + changes" + * ARM: Cleanup: Revert "ARM: IMX51: IPU irq handler deadlock fix" + * ARM: Cleanup: Revert "ARM: IMX51: Babbage 2.5 needs a different system + revision" + * ARM: Cleanup: Revert "ARM: IMX51: Compile-in the IMX51 cpufreq driver + by default" + * ARM: Cleanup: Revert "ARM: IMX51: Enable ZONE_DMA for ARCH_MXC" + * ARM: Cleanup: Revert "ARM: IMX51: Make ARCH_MXC auto-enable + ARCH_MXC_CANONICAL" + * ARM: Cleanup: Revert "ARM: IMX51: Unconditionally disable + CONFIG_GPIOLIB" + * ARM: Cleanup: Revert "ARM: IMX51: Minimal changes for USB to work on + 2.6.31" + * ARM: Cleanup: Revert "ARM: IMX51: Fix plat-mxc/timer.c to handle imx51" + * ARM: Cleanup: Revert "ARM: IMX51: Make it compile." + * ARM: Cleanup: Revert "ARM: IMX51: Clean-up the craziness of including + mxc_uart.h _everywhere_" + * ARM: Cleanup: Revert "ARM: IMX51: Move board-mx51* header files to the + correct location" + * ARM: Cleanup: Revert "ARM: IMX51: Changed from snd_card_new to + snd_card_create" + * ARM: Cleanup: Revert "ARM: IMX51: Fix up merge error in Kconfig" + * ARM: Cleanup: Revert "ARM: IMX51: mxc_timer_init prototype" + * ARM: Cleanup: Revert "ARM: IMX51: Removed the mxc_gpio_port structure." + * ARM: Cleanup: Revert "ARM: IMX51: Added external declaration for + mxc_map_io." + * ARM: Cleanup: Revert "ARM: IMX51: Get to bus_id by calling dev_name." + * ARM: Cleanup: Revert "ARM: IMX51: Get to bus_id by calling dev_name." + * ARM: Cleanup: Revert "ARM: IMX51: snd_soc_machine structure replaced + with snd_soc_card." + * ARM: Cleanup: Revert "ARM: IMX51: codec structure was moved to the card + structure" + * ARM: Cleanup: Revert "ARM: IMX51: Hack to add defines for + DMA_MODE_READ/WRITE/MASK" + * ARM: Cleanup: Revert "ARM: IMX51: Add SoC and board support for + Freescale mx51 platform" + * Driver core: add new device to bus's list before probing + * [Upstream] (drop after 2.6.31) ALSA: hda - Reduce click noise at + power-saving + - LP: #381693, #399750, #380892 + + -- Andy Whitcroft Fri, 14 Aug 2009 11:32:23 +0100 + +linux (2.6.31-5.24) karmic; urgency=low + + [ Amit Kucheria ] + + * ARM: IMX51: Make video capture drivers compile + * [Config] IMX51: Config updates + + [ Andy Whitcroft ] + + * remove leftovers of dm-bbr + + [ Leann Ogasawara ] + + * Add pata_cs5535 to pata-modules + - LP: #318805 + + [ Luke Yelavich ] + + * [Config] CONFIG_PPC64=y for powerpc64-smp + * [Config] Set the maximum number of CPUs to 1024 for powerpc64-smp + * [Config] CONFIG_PPC_PS3=y for powerpc64-smp + * [Config] CONFIG_PPC_MAPLE=y on powerpc64-smp + * [Config] CONFIG_PPC_PASEMI=y on powerpc64-smp + * [Config] CONFIG_CPU_FREQ_PMAC64=y on powerpc64-smp + * [Config] Enable all PS3 drivers in powerpc64-smp + + [ Mario Limonciello ] + + * LIRC -- fix lirc-i2c 2.6.31 compilation + + [ Matthew Garrett ] + + * [Upstream] dell-laptop: Fix rfkill state queries + + [ Tim Gardner ] + + * [Config] Ignore armel ABI and module changes + * [Config] Update configs after rebase against 2.6.31-rc5 + + [ Upstream ] + + * Rebased to 2.6.31-rc5 + + -- Andy Whitcroft Tue, 28 Jul 2009 10:10:09 +0100 + +linux (2.6.31-4.23) karmic; urgency=low + + [ Andy Whitcroft ] + + * AUFS -- update to aufs2-30 20090727 + * [Config] enable AUFS FUSE support + + [ Luke Yelavich ] + + * [Config] CONFIG_JFS_FS=m on sparc + + [ Tim Gardner ] + + * [Upstream] dell-laptop: Fix rfkill state setting. + + -- Andy Whitcroft Mon, 27 Jul 2009 11:11:47 +0100 + +linux (2.6.31-4.22) karmic; urgency=low + + [ Amit Kucheria ] + + * ARM: IMX51: Add SoC and board support for Freescale mx51 platform + * ARM: IMX51: Move board-mx51* header files to the correct location + * ARM: IMX51: Clean-up the craziness of including mxc_uart.h _everywhere_ + * ARM: IMX51: Make it compile. + * ARM: IMX51: Unconditionally disable CONFIG_GPIOLIB + * ARM: IMX51: Make ARCH_MXC auto-enable ARCH_MXC_CANONICAL + * ARM: IMX51: Enable ZONE_DMA for ARCH_MXC + * ARM: IMX51: Compile-in the IMX51 cpufreq driver by default + * ARM: IMX51: Fix isl29003 HWMON driver for i2c changes + * ARM: USB: musb: Refer to musb_otg_timer_func under correct #ifdef + * ARM: staging: udlfb: Add vmalloc.h include + * UBUNTU [Config]: Bring imx51 config upto date with other flavours + + [ Brad Figg ] + + * ARM: IMX51: Hack to add defines for DMA_MODE_READ/WRITE/MASK + * ARM: IMX51: codec structure was moved to the card structure + * ARM: IMX51: snd_soc_machine structure replaced with snd_soc_card. + * ARM: IMX51: Get to bus_id by calling dev_name. + * ARM: IMX51: Get to bus_id by calling dev_name. + * ARM: IMX51: Added external declaration for mxc_map_io. + * ARM: IMX51: Removed the mxc_gpio_port structure. + * ARM: IMX51: mxc_timer_init prototype + * ARM: IMX51: Fix up merge error in Kconfig + * ARM: IMX51: Changed from snd_card_new to snd_card_create + + [ Dinh Nguyen ] + + * ARM: IMX51: Fix plat-mxc/timer.c to handle imx51 + * ARM: IMX51: Minimal changes for USB to work on 2.6.31 + * ARM: IMX51: Babbage 2.5 needs a different system revision + * ARM: IMX51: IPU irq handler deadlock fix + + [ Tim Gardner ] + + * [Config] Enabled CONFIG_CAN=m + - LP: #327243 + * [Config] Enabled CONFIG_SERIAL=m + - LP: #397189 + + -- Tim Gardner Fri, 24 Jul 2009 06:19:10 -0600 + +linux (2.6.31-4.21) karmic; urgency=low + + [ Amit Kucheria ] + + * dm-raid-4-5: Add missing brackets around test_bit() + + [ John Johansen ] + + * AppArmor: Fix change_profile failing lpn401931 + * AppArmor: Fix determination of forced AUDIT messages. + * AppArmor: Fix oops in auditing of the policy interface offset + + -- Andy Whitcroft Thu, 23 Jul 2009 19:18:30 +0100 + +linux (2.6.31-4.20) karmic; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: iscsitarget -- update to SVN revision r214 + * SAUCE: iscsitarget -- renable driver + * [Config] consolidate lpia/lpia and i386/generic configs + * [Config] enable CRYPTO modules for all architectures + * [Config] enable cryptoloop + * [Config] enable various filesystems for armel + * [Config] sync i386 generic and generic-pae + * [Config] add the 386 (486 processors and above) flavour + * [Config] re-set DEFAULT_MMAP_MIN_ADDR + - LP: #399914 + * add genconfigs/genportsconfigs to extract the built configs + * updateconfigs -- alter concatenation order allow easier updates + * intelfb -- INTELFB now conflicts with DRM_I915 + * printchanges -- rebase tree does not have stable tags use changelog + * AppArmor: fix argument size missmatch on 64 bit builds + + [ Ike Panhc ] + + * Ship bnx2x firmware in nic-modules udeb + - LP: #360966 + + [ Jeff Mahoney ] + + * AppArmor: fix build failure on ia64 + + [ John Johansen ] + + * AppArmour: ensure apparmor enabled parmater is off if AppArmor fails to + initialize. + * AppArmour: fix auditing of domain transitions to include target profile + information + * AppArmor: fix C99 violation + * AppArmor: revert reporting of create to write permission. + * SAUCE: Add config option to set a default LSM + * [Config] enable AppArmor by default + * AppArmor: Fix NULL pointer dereference oops in profile attachment. + + [ Keith Packard ] + + * SAUCE: drm/i915: Allow frame buffers up to 4096x4096 on 915/945 class + hardware + - LP: #351756 + + [ Luke Yelavich ] + + * [Config] add .o files found in arch/powerpc/lib to all powerpc kernel + header packages + - LP: #355344 + + [ Michael Casadevall ] + + * [Config] update SPARC config files to allow success build + + [ Scott James Remnant ] + + * SAUCE: trace: add trace_event for the open() syscall + + [ Stefan Bader ] + + * SAUCE: jfs: Fix early release of acl in jfs_get_acl + - LP: #396780 + + [ Tim Gardner ] + + * [Upstream] Fix Soltech TA12 volume hotkeys not sending key release + - LP: #397499 + * [Upstream] USB Option driver - Add USB ID for Novatel MC727/U727/USB727 + refresh + - LP: #365291 + * [Config] SSB/B44 are common across all arches/flavours. + + [ Upstream ] + + * Rebased to 2.6.31-rc4 + + -- Andy Whitcroft Thu, 23 Jul 2009 08:41:39 +0100 + +linux (2.6.31-3.19) karmic; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Config] Disabled NDISWRAPPER" + * ndiswrapper -- fix i386 compilation failures on cmpxchg8b + * AUFS -- export various core functions + * AUFS -- export various core functions -- fixes + * AUFS -- core filesystem + * AUFS -- track changes in v2.6.31 + * [Config] Enable AUFS + * droppped 'iwl3945: do not send scan command if channel count zero' as it + is already upstream but failed to auto-drop on rebase. + + [ Eric Paris ] + + * SAUCE: fsnotify: use def_bool in kconfig instead of letting the user + choose + * SAUCE: inotify: check filename before dropping repeat events + * SAUCE: fsnotify: fix inotify tail drop check with path entries + + -- Andy Whitcroft Tue, 14 Jul 2009 12:52:55 +0100 + +linux (2.6.31-3.18) karmic; urgency=low + + [ Andy Whitcroft ] + + * Revert "Add splice-2.6.23.patch from AUFS to export a symbol needed by + AUFS" + * Revert "Add put_filp.patch from AUFS to export a symbol needed by AUFS" + * Revert "Add sec_perm-2.6.24.patch from AUFS - export + security_inode_permission" + * clear out left over AUFS files and modifications + + [ Luke Yelavich ] + + * [Config] Enable CONFIG_USB_ISP116X_HCD on sparc + * SAUCE: Explicitly include header files to allow apparmor to build on + powerpc + * [Config] Enable CONFIG_BLK_DEV_IDECD on powerpc + + [ Tim Gardner ] + + * [Config] Dropped ubuntu/misc/wireless/acx + * [Config] Disabled NDISWRAPPER until the compile issues are fixed. + + [ Upstream ] + + * Rebased to 2.6.31-rc3 + + -- Andy Whitcroft Fri, 10 Jul 2009 18:59:33 +0100 + +linux (2.6.31-2.17) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_BLK_DEV_CRYPTOLOOP=m for sparc + * compcache -- remove redundant Kconfig entries part 2 + * compcache -- clean up CCFLAGS declarations + * [Config] enable AppArmor + * AppArmor: fix operator precidence issue in as_path_link + + [ John Johansen ] + + * AppArmor security module + * AppArmor: Correct mapping of file permissions. + * AppArmor: Turn auditing of ptrace on + + [ Luke Yelavich ] + + * [Config] disable CONFIG_DM_RAID45 on powerpc + + -- Andy Whitcroft Fri, 10 Jul 2009 15:02:05 +0100 + +linux (2.6.31-2.16) karmic; urgency=low + + [ Andy Whitcroft ] + + * compcache -- remove redundant Kconfig entries + added ignore and ignore.modules for all arches since the compcache update + changes the modules names as well as some compcache ABI values. + + [ Manoj Iyer ] + + * SAUCE: updated dm-raid45 module version to 2009.04.24 (2.6.30-rc3) + * SAUCE: update compcache version to 0.5.3 + + [ Tim Gardner ] + + * [Config]: Fix sparc FTBS by adding ignore.modules + + -- Tim Gardner Mon, 06 Jul 2009 13:35:29 -0600 + +linux (2.6.31-2.15) karmic; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: default ATI Radeon KMS to off until userspace catches up + * [Config] Update configs following rebase to 2.6.31-rc2 + * [Config] update ports configs following update to 2.6.31-rc2 + + [ Luke Yelavich ] + + * [Config] powerpc - Disable CONFIG_RDS + + [ Matt Zimmerman ] + + * Rename linux-doc-PKGVER to linux-doc and clean up its description + - LP: #382115 + + [ Upstream Kernel Changes ] + + * rebased to mainline 2.6.31-rc2 + + -- Andy Whitcroft Sat, 04 Jul 2009 17:39:13 +0100 + +linux (2.6.31-1.14) karmic; urgency=low + + [ Andy Whitcroft ] + + * update ndiswrapper to 1.55 + * remove leftovers of gfs + * [Config] powerpc: enable CONFIG_PPC_DISABLE_WERROR + + [ Luke Yelavich ] + + * [Config] re-enable and build the ide-pmac driver into powerpc kernels + * [Config] Build the ServerWorks Frodo / Apple K2 SATA driver into the + kernel + + [ Manoj Iyer ] + + * Remove snd-bt-sco ubuntu driver + + [ Michael Casadevall ] + + * [Config] updates ia64 config and d-i folders to allow succesful build + * [Config] Update powerpc and sparc for 2.6.31 + + [ Upstream Kernel Changes ] + + * intel-iommu: fix Identity Mapping to be arch independent + - LP: #384695 + * ACPI: video: prevent NULL deref in acpi_get_pci_dev() + + -- Andy Whitcroft Tue, 30 Jun 2009 17:47:32 +0100 + +linux (2.6.31-1.13) karmic; urgency=low + + [ Andy Whitcroft ] + + * REBASE: rebased to mainline 2.6.31-rc1 + - "UBUNTU: SAUCE: UHCI USB quirk for resume" + no longer applies, using deprecated interfaces, LPIA only, dropped + - "UBUNTU: SAUCE: Mask off garbage in Dell WMI scan code data" + changes now upstream, dropped + * [Config] Update configs following rebase to 2.6.31-rc1 + * [Config] update ports configs following update to 2.6.31-rc1 + + * [Config] disable broken staging driver CONFIG_STLC45XX + * SAUCE: fix compcache to use updates accessors + * [Config] disable staging driver CONFIG_VT6655 + * SAUCE: fix DRDB to use updates accessors + * [Disable] ndiswrapper needs update + * [Disable] LIRC I2C needs update + * [Disable] CONFIG_LENOVO_SL_LAPTOP needs update + * [Config] disable I2C_DESIGNWARE does not compile + * [Config] disable CONFIG_TLSUP for lpia + * [Config] disable CONFIG_FB_UDL for arm + * SAUCE: disable adding scsi headers to linux-libc-dev + + [ Mario Limonciello ] + + * SAUCE: Add LIRC drivers + + -- Andy Whitcroft Thu, 25 Jun 2009 12:06:22 +0100 + +linux (2.6.30-10.12) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] split out the ports configs into their own family + * [Config] update configs following introduction of ports family + + [ Upstream Kernel Changes ] + + * Revert "Rename linux-doc-PKGVER to linux-doc and clean up its + description". Fixes linux-doc package name conflicts for now. + - LP: #382115 + + -- Tim Gardner Mon, 22 Jun 2009 09:17:14 -0600 + +linux (2.6.30-10.11) karmic; urgency=low + + [ Amit Kucheria ] + + * [Config] Comment splitconfig.pl and misc cleanup + * [Config] Rename all configs to the new naming scheme + * [Config] Splitconfig rework + * [Config] Rename scripts/misc/oldconfig to kernelconfig + * [Config] Fix build system for new config split + * [Config] Run updateconfigs after the splitconfig rework + + [ Andy Whitcroft ] + + * Revert "SAUCE: Default to i915.modeset=0 if CONFIG_DRM_I915_KMS=y" + * [Config] standardise CONFIG_STAGING=y + * [Config] standardise CONFIG_RD_LZMA=y + * [Config] CONFIG_PCI_IOV=y + * [Config] CONFIG_PCI_STUB=m + * [Config] merge kernel configs more agressively + + [ Colin Watson ] + + * [Config] Run kernel-wedge in $(builddir) rather than at the top level + * [Config] Add support for including firmware in udebs + * [Config] Ship bnx2 firmware in nic-modules udeb + - LP: #384861 + + [ Luke Yelavich ] + + * [Config] ports - Import of ports architectures into kernel packaging + infrastructure + * [Config] ports - Do not update ports kernel configurations by default + * [Config] ports - Disable ABI checking for ports architectures + * [Config] ports - Build drivers in ubuntu sub-directory on powerpc + * [Config] ports - Add control.d/vars.* files for ports architectures + * [Config] ports - Add ports architectures for linux-libc-dev + * [Config] ports - Create powerpc specific message-modules and + block-modules udebs + * [Config] ports - Add configuration files for ports architectures + + [ Manoj Iyer ] + + * [Config] Enable CONFIG_BLK_DEV_AEC62XX=m for amd64 and i386 + - LP: #329864 + + [ Michael Casadevall ] + + * [Config] ports - Fix compression of kernels + + [ Stefan Bader ] + + * [Upstream] mmc: prevent dangling block device from accessing stale + queues + - LP: #383668 + + [ Tim Gardner ] + + * [Config] Recommend grub-pc in linux-image + - LP: #385741 + * [Config] Implement i386 generic and generic-pae flavours + * [Config] ports - Add control info after integrating ports arches + * [Config] Removed auto-generated files from git + * [Config] Added netxen_nic to nic-modules + - LP: #389603 + + [ Matt Zimmerman ] + + * Rename linux-doc-PKGVER to linux-doc and clean up its description + - LP: #382115 + + -- Tim Gardner Mon, 15 Jun 2009 14:38:26 -0600 + +linux (2.6.30-9.10) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_SECURITY_TOMOYO=y (amd64, i386, lpia) + * [Config] CONFIG_KEXEC_JUMP=y (amd64, lpia) + * [Config] CONFIG_LENOVO_SL_LAPTOP=m (amd64, lpia) + * [Config] CONFIG_POHMELFS_CRYPTO=y (i386, amd64) + * [Config] CONFIG_SERIAL_MAX3100=m (i386, amd64, lpia) + * [Config] CONFIG_VIDEO_GO7007=m (amd64, i386) + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30 final + + -- Andy Whitcroft Fri, 05 Jun 2009 11:42:53 +0100 + +linux (2.6.30-8.9) karmic; urgency=low + + [ Andy Whitcroft ] + + * Config update removed the following options: + CONFIG_EDAC_AMD8111=m + CONFIG_EDAC_AMD8131=m + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc8 + + -- Andy Whitcroft Wed, 03 Jun 2009 09:21:13 +0100 + +linux (2.6.30-7.8) karmic; urgency=low + + [ Andy Whitcroft ] + + * Enabled NEW configration options: + Paravirtualization layer for spinlocks (PARAVIRT_SPINLOCKS) [N/y/?] Y + Cisco FNIC Driver (FCOE_FNIC) [N/m/y/?] M + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc7 + + -- Andy Whitcroft Sat, 23 May 2009 23:47:24 +0100 + +linux (2.6.30-6.7) karmic; urgency=low + + [ Andy Whitcroft ] + + * Dropped: UBUNTU: SAUCE: input: Blacklist digitizers from joydev.c (now + upstream) + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc6 + + -- Andy Whitcroft Mon, 18 May 2009 18:05:54 +0100 + +linux (2.6.30-5.6) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] Enable Keyspan USB serial device firmware in kernel module + - LP: #334285 + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc5 + + -- Tim Gardner Mon, 11 May 2009 12:02:16 -0600 + +linux (2.6.30-4.5) karmic; urgency=low + + [ Colin Watson ] + + * Build-Conflict with findutils (= 4.4.1-1ubuntu1), to avoid + /usr/include/asm/* going missing + - LP: #373214 + + -- Stefan Bader Fri, 08 May 2009 11:09:08 +0200 + +linux (2.6.30-3.4) karmic; urgency=low + + [ Kees Cook ] + + * SAUCE: [x86] implement cs-limit nx-emulation for ia32 + - LP: #369978 + + [ Stefan Bader ] + + * SAUCE: input: Blacklist digitizers from joydev.c + - LP: #300143 + + -- Tim Gardner Fri, 01 May 2009 14:00:42 -0600 + +linux (2.6.30-2.3) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] Enabled CC_STACKPROTECTOR=y for all x86en + - LP: #369152 + * SAUCE: Default to i915_modeset=0 if CONFIG_DRM_I915_KMS=y + * [Config] CONFIG_DRM_I915_KMS=y + * [Config] Set CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR to appropriate ARCH + minimums + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc4 + + -- Tim Gardner Thu, 30 Apr 2009 09:17:05 -0600 + +linux (2.6.30-1.2) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] armel: disable staging drivers, fixes FTBS + * [Config] armel imx51: Disable CONFIG_MTD_NAND_MXC, fixes FTBS + + [ Upstream Kernel Changes ] + + * mpt2sas: Change reset_type enum to avoid namespace collision. + Submitted upstream. + + -- Tim Gardner Tue, 28 Apr 2009 16:54:41 -0600 + +linux (2.6.30-1.1) karmic; urgency=low + + * Initial release after rebasing against v2.6.30-rc3 + + -- Tim Gardner Thu, 12 Mar 2009 19:16:07 -0600 --- linux-3.13.0.orig/debian.master/changelog.historical +++ linux-3.13.0/debian.master/changelog.historical @@ -0,0 +1,4171 @@ + +linux (2.6.28-9.31) jaunty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: cpufreq-nforce2: probe failures are not errors + - LP: #332170 + * SAUCE: mmc: add MODALIAS linkage for MMC/SD devices + - LP: #30335 + * remove test-suspend script + - LP: #333856 + + [ Kees Cook ] + + * handle relative paths in modules.dep + Fixes 2.6.28-9.30 FTBS. + + [ Upstream Kernel Changes ] + + * ricoh_mmc: Handle newer models of Ricoh controllers + + -- Tim Gardner Wed, 11 Mar 2009 08:19:24 -0600 + +linux (2.6.28-9.30) jaunty; urgency=low + + [ Amit Kucheria ] + + * ARM:mx51 Add SoC and board support for mx51 platforms + * ARM:mx51 Add CONFIG_ARCH_MXC_CANONICAL to disable parts of Freescale's + code + * MMC: Add support for 8-bit cards + * Add ARM:MX51 SoC support to the build system + * ARM: Make ARM arch aware of ubuntu/ drivers + * ARM: Add imx51 configuration + * Disable d-i modules for imx51 and mv78xx0 + * Disable Apparmor on boot for ARM + * Updating imx51 config + + [ Jason Liu ] + + * Do not use OOB with MLC NAND + + [ Richard Zhu ] + + * Support the eMMC4.3 card + + [ Rob Herring ] + + * ARM: Add more cache memory types macros + + [ Tim Gardner ] + + * Set CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y for i386/amd64/lpia + + [ Manoj Iyer ] + + * Enable CONFIG_RTL8187SE=m + + [ Upstream Kernel Changes ] + + * USB: EHCI: slow down ITD reuse + - LP: #329437 + + -- Tim Gardner Sun, 08 Mar 2009 14:14:15 -0600 + +linux (2.6.28-9.29) jaunty; urgency=low + + [ Andy Whitcroft ] + + * link-headers -- only link directories which do not already exist + - LP: #315252 + + [ Daniel Marjamäki ] + + * SAUCE: (drop after 2.6.28) netxen: fix memory leak in + drivers/net/netxen_nic_init.c + - LP: #330813 + + [ Dhananjay Phadke ] + + * SAUCE: (drop after 2.6.28) netxen: fix endianness in firmware commands + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: fix ipv6 offload and tx cleanup + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: fix link speed reporting for some + boards + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: firmware init fix + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: cleanup mac list on driver unload + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: hold tx lock while sending firmware + commands + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: handle dma mapping failures + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: avoid invalid iounmap + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: include ipv6.h (fixes build failure) + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: fix vlan tso/checksum offload + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: reduce memory footprint + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: revert jumbo ringsize + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: fix msi-x interrupt handling + - LP: #330813 + * SAUCE: (drop after 2.6.28) netxen: remove pcie workaround + - LP: #330813 + + [ Hannes Eder ] + + * SAUCE: (drop after 2.6.28) drivers/net/netxen: fix sparse warnings: use + NULL pointer instead of plain integer + - LP: #330813 + + [ Huaxu Wan ] + + * SAUCE: report rfkill changes event if interface is down + - LP: #193970 + + [ Tim Gardner ] + + * MV78XX0 must specify a target in the vars definition. + + [ Upstream Kernel Changes ] + + * Revert "ext4: wait on all pending commits in ext4_sync_fs()" + * jbd2: Fix return value of jbd2_journal_start_commit() + * jbd2: Avoid possible NULL dereference in + jbd2_journal_begin_ordered_truncate() + * ext4: Fix to read empty directory blocks correctly in 64k + * ext4: Fix lockdep warning + * ext4: Initialize preallocation list_head's properly + * ext4: Implement range_cyclic in ext4_da_writepages instead of + write_cache_pages + * ext4: Fix NULL dereference in ext4_ext_migrate()'s error handling + * ext4: Add fallback for find_group_flex + * ext4: Fix deadlock in ext4_write_begin() and ext4_da_write_begin() + * Added mv78xx0 flavor + + -- Tim Gardner Fri, 06 Mar 2009 06:13:31 -0700 + +linux (2.6.28-8.28) jaunty; urgency=low + + [ Alexey Starikovskiy ] + + * SAUCE: ACPI: EC: Limit workaround for ASUS notebooks even more + - LP: #288385 + + [ Scott James Remnant ] + + * SAUCE: Auto-load esp module when device opened. + * SAUCE: Auto-load bridge module when socket opened. + * SAUCE: Auto-load af_netlink module when socket opened. + * SAUCE: Auto-load wanrouter module when socket opened. + * SAUCE: Auto-load ip_queue module when socket opened. + * SAUCE: Auto-load ip6_queue module when socket opened. + * SAUCE: Auto-load cn module when socket opened. + * SAUCE: Auto-load scsi_transport_iscsi module when socket opened. + * SAUCE: Auto-load ftl module when device opened. + * SAUCE: Auto-load pcd module when device opened. + * SAUCE: Auto-load pf module when device opened. + * SAUCE: Auto-load nftl module when device opened. + * SAUCE: Auto-load mousedev module when psaux device opened. + * SAUCE: Auto-load mousedev module when /dev/input/mice opened. + * SAUCE: Auto-load rng-core module when device opened. + * SAUCE: Auto-load openprom module when device opened. + * SAUCE: Auto-load applicom module when device opened. + * SAUCE: Auto-load toshiba module when device opened. + * SAUCE: Auto-load cyclades module when device opened. + * SAUCE: Auto-load riscom8 module when device opened. + * SAUCE: Auto-load specialix module when device opened. + * SAUCE: Auto-load videodev module when device opened. + * SAUCE: Auto-load i2c_dev module when device opened. + * SAUCE: Auto-load mtdchar module when device opened. + * SAUCE: Auto-load pt module when device opened. + * SAUCE: Auto-load pg module when device opened. + * SAUCE: Auto-load cdc_acm module when device opened. + * SAUCE: Auto-load msr module when device opened. + * SAUCE: Auto-load cpuid module when device opened. + * SAUCE: quickcam: Enable double-buffering by default + * SAUCE: libata: Ignore HPA by default. + * SAUCE: hostap: Change initial operation mode to managed (infra) + * SAUCE: floppy: Provide a PnP device table in the module. + - LP: #255651 + * SAUCE: Auto-load mwave module when device opened. + * Build CONFIG_FUSE_FS into kernel, not as module. + + [ Stefan Bader ] + + * Enable build of ext4 as a module on LPIA + - LP: #331848 + + [ Tim Gardner ] + + * Update configs to fix LPIA FTBS + + -- Tim Gardner Thu, 05 Mar 2009 10:43:24 -0700 + +linux (2.6.28-8.27) jaunty; urgency=low + + [ Amit Kucheria ] + + * Updating configs (arm:ixp4xx) + + [ Andy Whitcroft ] + + * SAUCE: enable Intel HDMI output + + [ Manoj Iyer ] + + * SAUCE: Added quirk for Linksys WUSB600N USB wifi-n networking adapter + - LP: #323473 + + [ Steve Beattie ] + + * fix apparmor memory leak on unlinked file ops + - LP: #329489 + + [ Tim Gardner ] + + * SAUCE: Dell XPS710 reboot quirk + - LP: #323592 + * SAUCE: (drop after 2.6.28) ieee80211: Add infrastructure to obsolete + scan results + - LP: #336055 + * Add modules.order to the linux-image package. + + [ Upstream Kernel Changes ] + + * iwlwifi: fix time interval misuse in iwl_poll_{direct_}bit + * x86: only scan the root bus in early PCI quirks + - LP: #267295 + * ALSA: hda - Intel HDMI audio support + * ALSA: hda - Fix unused function in patch_intelhdmi.c + * ALSA: handle SiI1392 HDMI codec in patch_intelhdmi.c + * ALSA: hda-intel: reorder HDMI audio enabling sequence + * ALSA: introduce snd_print_pcm_rates() + * ALSA: create hda_eld.c for ELD routines and proc interface + * ALSA: ELD proc interface for HDMI sinks + * ALSA: hda: make standalone hdmi_fill_audio_infoframe() + * ALSA: hda: make global snd_print_channel_allocation() + * ALSA: hda: HDMI channel allocations for audio infoframe + * ALSA: hda: HDMI channel mapping cleanups + * ALSA: hda: minor code cleanups + * ALSA: hda: rename sink_eld to hdmi_eld + * ALSA: hda - Release ELD proc file + * ALSA: hda - minor HDMI code cleanups + * ALSA: hda - report selected CA index for Audio InfoFrame + * ALSA: hda - Add Intel vendor id string + + -- Tim Gardner Wed, 25 Feb 2009 14:23:46 -0700 + +linux (2.6.28-8.26) jaunty; urgency=low + + [ Amit Kucheria ] + + * Updating configs (armel:ixp4xx) + - LP: #331510 + + [ Tim Gardner ] + + * Add more missing modules + + -- Tim Gardner Tue, 24 Feb 2009 06:58:53 -0700 + +linux (2.6.28-8.25) jaunty; urgency=low + + [ Scott James Remnant ] + + * SAUCE: Prefer powernow-k8 to acpi-cpufreq + * Change CONFIG_X86_P4_CLOCKMOD to be a module again. + + [ Tim Gardner ] + + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Initialize the new + group descriptor when resizing the filesystem" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Add sanity check + to make_indexed_dir" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: only use + i_size_high for regular files" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Add sanity checks + for the superblock before mounting the filesystem" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Fix + s_dirty_blocks_counter if block allocation failed with nodelalloc" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Init the complete + page while building buddy cache" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Don't allow new + groups to be added during block allocation" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: mark the + blocks/inode bitmap beyond end of group as used" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Use new + buffer_head flag to check uninit group bitmaps initialization" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Fix the race + between read_inode_bitmap() and ext4_new_inode()" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Fix race between + read_block_bitmap() and mark_diskspace_used()" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: don't use blocks + freed but not yet committed in buddy cache init" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: cleanup mballoc + header files" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Use + EXT4_GROUP_INFO_NEED_INIT_BIT during resize" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Add blocks added + during resize to bitmap" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Don't overwrite + allocation_context ac_status" + * Revert "SAUCE: (revert before 2.6.28.y update) jbd2: Add barrier not + supported test to journal_wait_on_commit_record" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Widen type of + ext4_sb_info.s_mb_maxs[]" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: avoid ext4_error + when mounting a fs with a single bg" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Fix the delalloc + writepages to allocate blocks at the right offset." + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: tone down + ext4_da_writepages warnings" + * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Add support for + non-native signed/unsigned htree hash algorithms" + * Enabled X86_ACPI_CPUFREQ=y + + [ Upstream Kernel Changes ] + + * ath9k: quiet harmless ForceXPAon messages + - LP: #321474 + * [WATCHDOG] iTCO_wdt: fix SMI_EN regression 2 + - LP: #314050 + * pid: implement ns_of_pid + * mqueue: fix si_pid value in mqueue do_notify() + * powerpc/vsx: Fix VSX alignment handler for regs 32-63 + * sata_nv: give up hardreset on nf2 + * Fix Intel IOMMU write-buffer flushing + * SCSI: libiscsi: fix iscsi pool leak + * x86/cpa: make sure cpa is safe to call in lazy mmu mode + * sched: SCHED_OTHER vs SCHED_IDLE isolation + * x86, vm86: fix preemption bug + * Add support for VT6415 PCIE PATA IDE Host Controller + * ext2/xip: refuse to change xip flag during remount with busy inodes + * 3c505: do not set pcb->data.raw beyond its size + * Bluetooth: Fix TX error path in btsdio driver + * ext4: Add support for non-native signed/unsigned htree hash algorithms + * ext4: tone down ext4_da_writepages warnings + * ext4: Fix the delalloc writepages to allocate blocks at the right + offset. + * ext4: avoid ext4_error when mounting a fs with a single bg + * ext4: Widen type of ext4_sb_info.s_mb_maxs[] + * jbd2: Add barrier not supported test to journal_wait_on_commit_record + * ext4: Don't overwrite allocation_context ac_status + * ext4: Add blocks added during resize to bitmap + * ext4: Use EXT4_GROUP_INFO_NEED_INIT_BIT during resize + * ext4: cleanup mballoc header files + * ext4: don't use blocks freed but not yet committed in buddy cache init + * ext4: Fix race between read_block_bitmap() and mark_diskspace_used() + * ext4: Fix the race between read_inode_bitmap() and ext4_new_inode() + * ext4: Use new buffer_head flag to check uninit group bitmaps + initialization + * ext4: mark the blocks/inode bitmap beyond end of group as used + * ext4: Don't allow new groups to be added during block allocation + * ext4: Init the complete page while building buddy cache + * ext4: Fix s_dirty_blocks_counter if block allocation failed with + nodelalloc + * ext4: Add sanity checks for the superblock before mounting the + filesystem + * ext4: only use i_size_high for regular files + * ext4: Add sanity check to make_indexed_dir + * ext4: Initialize the new group descriptor when resizing the filesystem + * Fix longstanding "error: storage size of '__mod_dmi_device_table' isn't + known" + * Linux 2.6.28.7 + + -- Tim Gardner Thu, 19 Feb 2009 06:45:55 -0700 + +linux (2.6.28-8.24) jaunty; urgency=low + + [ Scott James Remnant ] + + * Change CPU_FREQ_DEFAULT_GOV_ONDEMAND to y + * SAUCE: Link acpi-cpufreq.o first + + [ Tim Gardner ] + + * Build in CPU Frequency scaling drivers + + -- Tim Gardner Wed, 18 Feb 2009 06:12:24 -0700 + +linux (2.6.28-8.23) jaunty; urgency=low + + [ Andy Whitcroft ] + + * include the kernel configuration in the sub-flavour images + - LP: #328859 + + [ Tim Gardner ] + + * Revert "SAUCE: (drop after 2.6.28) [eCryptfs] Regression in unencrypted + filename symlinks" in favor of upstream commit. + * Fix compile issues with qc-usb + * SAUCE: (remove after 2.6.28) V4L/DVB (10216): saa7127: fix broken + S-Video with saa7129 + - LP: #329267 + + [ Upstream Kernel Changes ] + + * Subject:SAUCE: LP#193970 iwlagn: fix hw-rfkill while the interface is + down + - LP: #193970 + * x86, vmi: put a missing paravirt_release_pmd in pgd_dtor + * nbd: fix I/O hang on disconnected nbds + * mac80211: restrict to AP in outgoing interface heuristic + * w1: w1 temp calculation overflow fix + * zd1211rw: adding 0ace:0xa211 as a ZD1211 device + * zd1211rw: treat MAXIM_NEW_RF(0x08) as UW2453_RF(0x09) for TP-Link + WN322/422G + * parport: parport_serial, don't bind netmos ibm 0299 + * syscall define: fix uml compile bug + * kernel-doc: fix syscall wrapper processing + * Fix page writeback thinko, causing Berkeley DB slowdown + * write-back: fix nr_to_write counter + * writeback: fix break condition + * mm: rearrange exit_mmap() to unlock before arch_exit_mmap + * powerpc/fsl-booke: Fix mapping functions to use phys_addr_t + * lockd: fix regression in lockd's handling of blocked locks + * sctp: Fix crc32c calculations on big-endian arhes. + * sctp: Correctly start rtx timer on new packet transmissions. + * sctp: Properly timestamp outgoing data chunks for rtx purposes + * net: Fix frag_list handling in skb_seq_read + * net: Fix OOPS in skb_seq_read(). + * drivers/net/skfp: if !capable(CAP_NET_ADMIN): inverted logic + * ipv4: fix infinite retry loop in IP-Config + * net: Fix userland breakage wrt. linux/if_tunnel.h + * net: packet socket packet_lookup_frame fix + * packet: Avoid lock_sock in mmap handler + * sungem: Soft lockup in sungem on Netra AC200 when switching interface + up + * udp: Fix UDP short packet false positive + * udp: increments sk_drops in __udp_queue_rcv_skb() + * ipv6: Disallow rediculious flowlabel option sizes. + * ipv6: Copy cork options in ip6_append_data + * net: 4 bytes kernel memory disclosure in SO_BSDCOMPAT gsopt try #2 + * sky2: fix hard hang with netconsoling and iface going up + * tun: Add some missing TUN compat ioctl translations. + * tun: Fix unicast filter overflow + * virtio_net: Fix MAX_PACKET_LEN to support 802.1Q VLANs + * tcp: splice as many packets as possible at once + * tcp: Fix length tcp_splice_data_recv passes to skb_splice_bits. + * sparc: Enable syscall wrappers for 64-bit (CVE-2009-0029) + * sparc64: Annotate sparc64 specific syscalls with SYSCALL_DEFINEx() + * ALSA: hda - Add missing terminator in slave dig-out array + * ALSA: mtpav - Fix initial value for input hwport + * HID: adjust report descriptor fixup for MS 1028 receiver + * ide/libata: fix ata_id_is_cfa() (take 4) + * libata: fix EH device failure handling + * netfilter: fix tuple inversion for Node information request + * netfilter: xt_sctp: sctp chunk mapping doesn't work + * x86: microcode_amd: fix wrong handling of equivalent CPU id + * ide-cd: fix DMA for non bio-backed requests + * net: Fix data corruption when splicing from sockets. + * Linux 2.6.28.6 + * eCryptfs: Regression in unencrypted filename symlinks + + -- Tim Gardner Mon, 16 Feb 2009 06:43:51 -0700 + +linux (2.6.28-8.22) jaunty; urgency=low + + [ Amit Kucheria ] + + * Remove perm-blacklist + + [ Andy Whitcroft ] + + * SAUCE: psmouse/synaptics: ensure we reset the device on resume + - LP: #317270 + + [ Tim Gardner ] + + * Add lpia to getabi script + * SAUCE: tracer for sreadahead + + -- Amit Kucheria Fri, 13 Feb 2009 15:23:21 +0200 + +linux (2.6.28-8.21) jaunty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: switch the Asus Pundit P1-AH2 to old acpi sleep ordering + - LP: #327267 + + [ Tim Gardner ] + + * Added LPIA arch support + * Added libdrm-dev as a 'Replaces' to linux-libc-dev + * SAUCE: LPIA support for 9202 HDA Sigmatel codec + * SAUCE: Add an X86_LPIA Kconfig option + * SAUCE: UHCI USB quirk for resume + * SAUCE: LPIA Reboot fix for Intel Crownbeach development boards + * SAUCE: LPIA Logical reset of USB port on resume + * Set CONFIG_WIRELESS_OLD_REGULATORY=n, added wireless-crda + as an install dependency. + + [ Upstream Kernel Changes ] + + * Revert "Revert "x86, early_ioremap: fix fencepost error"" + - LP: #312554 + * drm/i915: capture last_vblank count at IRQ uninstall time too + - LP: #320813 + * drm/i915: add get_vblank_counter function for GM45 + - LP: #320813 + * Staging: comedi: fix Kbuild + * Staging: meilhaus: fix Kbuild + * Staging: android: binder: fix arm build errors + * Staging: android: timed_gpio: Fix build to build on kernels after + 2.6.25. + * Staging: android: fix build error on 64bit boxes + * Staging: android: Add lowmemorykiller documentation. + * Staging: android: task_get_unused_fd_flags: fix the wrong usage of + tsk->signal + * staging: agnx: drivers/staging/agnx/agnx.h needs + * Staging: usbip: usbip_start_threads(): handle kernel_thread failure + * Staging: poch: fix verification of memory area + * Documentation: move DMA-mapping.txt to Doc/PCI/ + * sgi-xp: fix writing past the end of kzalloc()'d space + * do_wp_page: fix regression with execute in place + * wait: prevent exclusive waiter starvation + * shm: fix shmctl(SHM_INFO) lockup with !CONFIG_SHMEM + * revert "rlimit: permit setting RLIMIT_NOFILE to RLIM_INFINITY" + * prevent kprobes from catching spurious page faults + * sound: usb-audio: handle wMaxPacketSize for FIXED_ENDPOINT devices + * md: Ensure an md array never has too many devices. + * md: Fix a bug in linear.c causing which_dev() to return the wrong + device. + * ACPI: Enable bit 11 in _PDC to advertise hw coord + * ACPI: dock: Don't eval _STA on every show_docked sysfs read + * ieee1394: ohci1394: increase AT req. retries, fix ack_busy_X from + Panasonic camcorders and others + * firewire: ohci: increase AT req. retries, fix ack_busy_X from Panasonic + camcorders and others + * firewire: sbp2: fix DMA mapping leak on the failure path + * firewire: sbp2: add workarounds for 2nd and 3rd generation iPods + * ieee1394: sbp2: add workarounds for 2nd and 3rd generation iPods + * module: remove over-zealous check in __module_get() + * x86: APIC: enable workaround on AMD Fam10h CPUs + * eeepc-laptop: fix oops when changing backlight brightness during + eeepc-laptop init + * eeepc-laptop: Add support for extended hotkeys + * e1000: fix bug with shared interrupt during reset + * e1000: Fix PCI enable to honor the need_ioport flag + * agp/intel: Fix broken ® symbol in device name. + * ALSA: hda - Add quirk for FSC Amilo Xi2550 + * ALSA: hda - Add missing COEF initialization for ALC887 + * ALSA: hda - Add missing initialization for ALC272 + * asus_acpi: Add R1F support + * panasonic-laptop: fix X[ ARRAY_SIZE(X) ] + * ACPI: Skip the first two elements in the _BCL package + * ACPI: proc_dir_entry 'video/VGA' already registered + * ACPI: disable ACPI cleanly when bad RSDP found + * ACPICA: Fix table entry truncation calculation + * PCI: properly clean up ASPM link state on device remove + * PCI: return error on failure to read PCI ROMs + * seq_file: move traverse so it can be used from seq_read + * seq_file: fix big-enough lseek() + read() + * serial: set correct baud_base for Oxford Semiconductor Ltd EXSYS + EX-41092 Dual 16950 Serial adapter + * Add support for '8-port RS-232 MIC-3620 from advantech' + * mm: fix error case in mlock downgrade reversion + * elf core dump: fix get_user use + * ACPI: video: Fix reversed brightness behavior on ThinkPad SL series + * ipw2200: fix scanning while associated + * XFS: set b_error from bio error in xfs_buf_bio_end_io + * Revert USB: option: add Pantech cards + * USB: option: New mobile broadband modems to be supported + * USB: new id for ti_usb_3410_5052 driver + * USB: two more usb ids for ti_usb_3410_5052 + * USB: usb-storage: add Pentax to the bad-vendor list + * sata_via: Add VT8261 support + * nbd: do not allow two clients at the same time + * sctp: Fix another socket race during accept/peeloff + * Linux 2.6.28.5 + + -- Tim Gardner Mon, 09 Feb 2009 16:11:28 -0700 + +linux (2.6.28-7.20) jaunty; urgency=low + + [ Tim Gardner ] + + * SAUCE: Input: atkbd - Samsung NC10 key repeat fix + + [ Upstream Kernel Changes ] + + * Manually revert "mlock: downgrade mmap sem while populating mlocked + regions" + * xen: make sysfs files behave as their names suggest + * sata_mv: fix 8-port timeouts on 508x/6081 chips + * m68knommu: set NO_DMA + * PCI/MSI: bugfix/utilize for msi_capability_init() + * x86: use early clobbers in usercopy*.c + * netfilter: ctnetlink: fix scheduling while atomic + * orinoco: move kmalloc(..., GFP_KERNEL) outside spinlock in + orinoco_ioctl_set_genie + * fbdev/atyfb: Fix DSP config on some PowerMacs & PowerBooks + * kmalloc: return NULL instead of link failure + * sata_nv: rename nv_nf2_hardreset() + * sata_nv: fix MCP5x reset + * sata_nv: ck804 has borked hardreset too + * Fix memory corruption in console selection + * Add enable_ms to jsm driver + * nfsd: only set file_lock.fl_lmops in nfsd4_lockt if a stateowner is + found + * nfsd: Ensure nfsv4 calls the underlying filesystem on LOCKT + * iwlwifi: fix rs_get_rate WARN_ON() + * p54: fix lm87 checksum endianness + * p54: fix p54_read_eeprom to cope with tx_hdr_len + * p54usb: rewriting rx/tx routines to make use of usb_anchor's facilities + * minstrel: fix warning if lowest supported rate index is not 0 + * PCI: irq and pci_ids patch for Intel Tigerpoint DeviceIDs + * cpuidle: Add decaying history logic to menu idle predictor + * ACPI: Avoid array address overflow when _CST MWAIT hint bits are set + * video: always update the brightness when poking "brightness" + * Newly inserted battery might differ from one just removed, so update of + battery info fields is required. + * ACPI: Do not modify SCI_EN directly + * dlm: initialize file_lock struct in GETLK before copying conflicting + lock + * sata_mv: Fix chip type for Hightpoint RocketRaid 1740/1742 + * ACPICA: Allow multiple backslash prefix in namepaths + * Linux 2.6.28.4 + + -- Tim Gardner Sat, 07 Feb 2009 18:53:42 -0700 + +linux (2.6.28-7.19) jaunty; urgency=low + + * Fix missing modules FTBS + + -- Tim Gardner Thu, 05 Feb 2009 15:28:15 -0700 + +linux (2.6.28-7.18) jaunty; urgency=low + + [ Alok Kataria ] + + * SAUCE: (drop after 2.6.29) x86: add a synthetic TSC_RELIABLE feature + bit + - LP: #319945 + * SAUCE: (drop after 2.6.29) x86: add X86_FEATURE_HYPERVISOR feature bit + - LP: #319945 + * SAUCE: (drop after 2.6.29) x86: Hypervisor detection and get tsc_freq + from hypervisor + - LP: #319945 + * SAUCE: (drop after 2.6.29) x86: Add a synthetic TSC_RELIABLE feature + bit. + - LP: #319945 + * SAUCE: (drop after 2.6.29) x86: Skip verification by the watchdog for + TSC clocksource. + - LP: #319945 + * SAUCE: (drop after 2.6.29) x86: VMware: Fix vmware_get_tsc code + - LP: #319945 + * SAUCE: (drop after 2.6.29) x86: vmware: look for DMI string in the + product serial key + - LP: #319945 + + [ Andy Whitcroft ] + + * SAUCE: toshiba_acpi -- pull in current -dev version of driver + - LP: #269831 + * SAUCE: toshiba_acpi -- add acpi hotkey kernel thread + - LP: #269831 + * move toshiba laptops back from tlsup to toshiba_acpi + - LP: #269831 + + [ Aneesh Kumar K.V ] + + * SAUCE: (revert before 2.6.28.y update) ext4: Fix the delalloc + writepages to allocate blocks at the right offset. + * SAUCE: (revert before 2.6.28.y update) ext4: avoid ext4_error when + mounting a fs with a single bg + * SAUCE: (revert before 2.6.28.y update) ext4: Don't overwrite + allocation_context ac_status + * SAUCE: (revert before 2.6.28.y update) ext4: Add blocks added during + resize to bitmap + * SAUCE: (revert before 2.6.28.y update) ext4: Use + EXT4_GROUP_INFO_NEED_INIT_BIT during resize + * SAUCE: (revert before 2.6.28.y update) ext4: cleanup mballoc header + files + * SAUCE: (revert before 2.6.28.y update) ext4: don't use blocks freed but + not yet committed in buddy cache init + * SAUCE: (revert before 2.6.28.y update) ext4: Fix race between + read_block_bitmap() and mark_diskspace_used() + * SAUCE: (revert before 2.6.28.y update) ext4: Fix the race between + read_inode_bitmap() and ext4_new_inode() + * SAUCE: (revert before 2.6.28.y update) ext4: Use new buffer_head flag + to check uninit group bitmaps initialization + * SAUCE: (revert before 2.6.28.y update) ext4: mark the blocks/inode + bitmap beyond end of group as used + * SAUCE: (revert before 2.6.28.y update) ext4: Don't allow new groups to + be added during block allocation + * SAUCE: (revert before 2.6.28.y update) ext4: Init the complete page + while building buddy cache + * SAUCE: (revert before 2.6.28.y update) ext4: Fix s_dirty_blocks_counter + if block allocation failed with nodelalloc + + [ Hannes Eder ] + + * SAUCE: (drop after 2.6.29) x86: vmware - fix sparse warnings + - LP: #319945 + + [ Luke Yelavich ] + + * hid modules have hyphens instead of underscores in their names + + [ Mark Fasheh ] + + * SAUCE: (revert before 2.6.28.y update) jbd2: Add BH_JBDPrivateStart + + [ Theodore Ts'o ] + + * SAUCE: (revert before 2.6.28.y update) ext4: Add support for non-native + signed/unsigned htree hash algorithms + * SAUCE: (revert before 2.6.28.y update) ext4: tone down + ext4_da_writepages warnings + * SAUCE: (revert before 2.6.28.y update) jbd2: Add barrier not supported + test to journal_wait_on_commit_record + * SAUCE: (revert before 2.6.28.y update) ext4: Add sanity checks for the + superblock before mounting the filesystem + * SAUCE: (revert before 2.6.28.y update) ext4: only use i_size_high for + regular files + * SAUCE: (revert before 2.6.28.y update) ext4: Add sanity check to + make_indexed_dir + * SAUCE: (revert before 2.6.28.y update) jbd2: On a __journal_expect() + assertion failure printk "JBD2", not "EXT3-fs" + * SAUCE: (revert before 2.6.28.y update) ext4: Initialize the new group + descriptor when resizing the filesystem + + [ Tyler Hicks ] + + * SAUCE: (drop after 2.6.28) [eCryptfs] Regression in unencrypted + filename symlinks + - LP: #322532 + + [ Upstream Kernel Changes ] + + * Input: atkbd - broaden the Dell DMI signatures + - LP: #261721 + * ti_usb_3410_5052: support alternate firmware + * ath5k: fix mesh point operation + * mac80211: decrement ref count to netdev after launching mesh discovery + * inotify: clean up inotify_read and fix locking problems + * fuse: destroy bdi on umount + * fuse: fix missing fput on error + * fuse: fix NULL deref in fuse_file_alloc() + * x86, mm: fix pte_free() + * klist.c: bit 0 in pointer can't be used as flag + * sysfs: fix problems with binary files + * x86: fix page attribute corruption with cpa() + * USB: fix toggle mismatch in disable_endpoint paths + * sound: virtuoso: enable UART on Xonar HDAV1.3 + * USB: usbmon: Implement compat_ioctl + * USB: fix char-device disconnect handling + * USB: storage: add unusual devs entry + * alpha: nautilus - fix compile failure with gcc-4.3 + * alpha: fix vmalloc breakage + * resources: skip sanity check of busy resources + * rtl8187: Add termination packet to prevent stall + * it821x: Add ultra_mask quirk for Vortex86SX + * libata: pata_via: support VX855, future chips whose IDE controller use + 0x0571 + * serial_8250: support for Sealevel Systems Model 7803 COMM+8 + * drm: stash AGP include under the do-we-have-AGP ifdef + * Fix OOPS in mmap_region() when merging adjacent VM_LOCKED file segments + * bnx2x: Block nvram access when the device is inactive + * ext3: Add sanity check to make_indexed_dir + * rtl8187: Fix error in setting OFDM power settings for RTL8187L + * epoll: drop max_user_instances and rely only on max_user_watches + * gpiolib: fix request related issue + * sgi-xpc: Remove NULL pointer dereference. + * sgi-xpc: ensure flags are updated before bte_copy + * include/linux: Add bsg.h to the Kernel exported headers + * ALSA: hda - Fix PCM reference NID for STAC/IDT analog outputs + * ALSA: hda - add another MacBook Pro 4, 1 subsystem ID + * ALSA: hda - Add quirk for HP DV6700 laptop + * crypto: authenc - Fix zero-length IV crash + * crypto: ccm - Fix handling of null assoc data + * x86, pat: fix reserve_memtype() for legacy 1MB range + * x86, pat: fix PTE corruption issue while mapping RAM using /dev/mem + * PCI hotplug: fix lock imbalance in pciehp + * dmaengine: fix dependency chaining + * NET: net_namespace, fix lock imbalance + * relay: fix lock imbalance in relay_late_setup_files + * Linux 2.6.28.3 + * ALSA: Enable SPDIF output on ALC655 + * ALSA: hda - Add ASUS V1Sn support + * ALSA: hda - support detecting HD Audio devices with PCI class code + * ALSA: hda: alc883 model for ASUS P5Q-EM boards + * ALSA: hda - Add quirk for MSI 7260 mobo + * ALSA: hda - Add quirk for Sony VAIO VGN-SR19XN + * ALSA: oxygen: add Claro halo support + * ALSA: hda - Add a new function to seek for a codec ID + * ALSA: patch_sigmatel: Add missing Gateway entries and autodetection + * ALSA: hda - More fixes on Gateway entries + * ALSA: hda - Add MCP67 HDMI support + * ALSA: hda - fix name for ALC1200 + * LSA: hda - Add HP Acacia detection + * ALSA: hda - Add quirk for HP 2230s + * ALSA: hda - Add quirk for Dell Inspiron Mini9 + * ALSA: hda - add support for Intel DX58SO board + * ALSA: hda - Fix silent headphone output on Panasonic CF-74 + * ALSA: USB quirk for Logitech Quickcam Pro 9000 name + * ALSA: hda - add quirks for some 82801H variants to use ALC883_MITAC + + [ Yasunori Goto ] + + * SAUCE: (revert before 2.6.28.y update) ext4: Widen type of + ext4_sb_info.s_mb_maxs[] + + -- Tim Gardner Mon, 02 Feb 2009 23:07:13 -0700 + +linux (2.6.28-6.17) jaunty; urgency=low + + [ Amit Kucheria ] + + * Updating configs: ARMEL/versatile + + -- Amit Kucheria Fri, 30 Jan 2009 13:36:59 +0200 + +linux (2.6.28-6.16) jaunty; urgency=low + + [ Luke Yelavich ] + + * Add hid quirks to input-modules udeb + + [ Tim Gardner ] + + * Revert "[arm] Fix kexec on ARM by properly calling the relocation + function". This patch was deemed 'bogus' by Russell King on the + ARM mailing list. + + [ Upstream Kernel Changes ] + + * PCI: keep ASPM link state consistent throughout PCIe hierarchy + * security: introduce missing kfree + * rt2x00: add USB ID for the Linksys WUSB200. + * p54usb: Add USB ID for Thomson Speedtouch 121g + * lib/idr.c: use kmem_cache_zalloc() for the idr_layer cache + * sgi-xp: eliminate false detection of no heartbeat + * sched: fix update_min_vruntime + * IA64: Turn on CONFIG_HAVE_UNSTABLE_CLOCK + * sound: virtuoso: do not overwrite EEPROM on Xonar D2/D2X + * ALSA: hda - Add quirk for another HP dv5 + * ALSA: hda - Fix HP dv5 mic input + * ALSA: hda - Don't reset HP pinctl in patch_sigmatel.c + * ALSA: hda - make laptop-eapd model back for AD1986A + * drivers/net/irda/irda-usb.c: fix buffer overflow + * usb-storage: add last-sector hacks + * usb-storage: set CAPACITY_HEURISTICS flag for bad vendors + * pkt_sched: sch_htb: Fix deadlock in hrtimers triggered by HTB + * ipv6: Fix fib6_dump_table walker leak + * sctp: Avoid memory overflow while FWD-TSN chunk is received with bad + stream ID + * pkt_sched: cls_u32: Fix locking in u32_change() + * r6040: fix wrong logic in mdio code + * r6040: save and restore MIER correctly in the interrupt routine + * r6040: bump release number to 0.19 + * tcp: don't mask EOF and socket errors on nonblocking splice receive + * p54usb: fix traffic stalls / packet drop + * netfilter: x_tables: fix match/target revision lookup + * netfilter: ebtables: fix inversion in match code + * netfilter: nf_conntrack: fix ICMP/ICMPv6 timeout sysctls on big-endian + * dell_rbu: use scnprintf() instead of less secure sprintf() + * powerpc: is_hugepage_only_range() must account for both 4kB and 64kB + slices + * hwmon: (abituguru3) Fix CONFIG_DMI=n fallback to probe + * mm: write_cache_pages cyclic fix + * mm: write_cache_pages early loop termination + * mm: write_cache_pages writepage error fix + * mm: write_cache_pages integrity fix + * mm: write_cache_pages cleanups + * mm: write_cache_pages optimise page cleaning + * mm: write_cache_pages terminate quickly + * mm: write_cache_pages more terminate quickly + * mm: do_sync_mapping_range integrity fix + * mm: direct IO starvation improvement + * fs: remove WB_SYNC_HOLD + * fs: sync_sb_inodes fix + * fs: sys_sync fix + * Linux 2.6.28.2 + + -- Tim Gardner Sun, 25 Jan 2009 13:36:16 -0700 + +linux (2.6.28-5.15) jaunty; urgency=low + + [ Tim Gardner ] + + * Revert "Enabled CONFIG_PID_NS=y for i386/amd64" + Somehow this commit also reverted the 7 prior commits (which is bad). + * Enabled CONFIG_PID_NS=y for i386/amd64 (version 2) + + -- Tim Gardner Thu, 22 Jan 2009 13:48:34 -0700 + +linux (2.6.28-5.14) jaunty; urgency=low + + [ Ben Collins ] + + * lirc_gpio: Forward ported to current kernel (jaunty) + * configs: Enable LIRC_GPIO on 64-bit/32-bit x86 + - LP: #298791 + + [ Jeff Layton ] + + * SAUCE: cifs: make sure we allocate enough storage for socket address + - LP: #318565 + + [ Tim Gardner ] + + * check-abi: Return success when ABI skip is requested and no ABI files exist. + This ought to fix the armel FTBS. + + -- Tim Gardner Thu, 22 Jan 2009 06:42:49 -0700 + +linux (2.6.28-5.13) jaunty; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: don't use buggy _BCL/_BCM/_BQC for backlight control" + + [ Tim Gardner ] + + * Fix udeb generation breakage caused by the previous armel versatile + flavour config update. + + -- Tim Gardner Wed, 21 Jan 2009 12:38:35 -0700 + +linux (2.6.28-5.12) jaunty; urgency=low + + [ Ante ] + + * Update drbd to 8.3.0 + + [ Dave Airlie ] + + * i915/drm: provide compat defines for userspace for certain struct + + [ Eric Anholt ] + + * drm/i915: Don't double-unpin buffers if we take a signal in + * drm/i915: Don't complain when interrupted while pinning in execbuffers. + * drm/i915: Don't allow objects to get bound while VT switched. + + [ Jani Monoses ] + + * Fix webcam having USB ID 0ac8:303b + - LP: #292086 + + [ Jesse Barnes ] + + * drm/i915: set vblank enabled flag correctly across IRQ + * drm/i915: don't enable vblanks on disabled pipes + + [ Michael Casadevall ] + + * [arm] Fix kexec on ARM by properly calling the relocation function + + [ Tim Gardner ] + + * Enabled CONFIG_PID_NS=y for i386/amd64 + * SAUCE: Increase ATA_TMOUT_PMP_SRST_WAIT to 5 seconds. + - LP: #318978 + * Update armel versatile config + - LP: #314789 + * Enabled CONFIG_RT2860=m for i386/amd64 + * Enabled CONFIG_RT2870=m for i386/amd64 + + [ Upstream Kernel Changes ] + + * Input: atkbd - add keyboard quirk for HP Pavilion ZV6100 laptop + - LP: #291878 + * ALSA: hda - Add quirk for another HP dv7 + * ALSA: hda - Add quirk for HP6730B laptop + * ALSA: caiaq - Fix Oops with MIDI + * ALSA: hda - Fix typos for AD1882 codecs + * x86: fix intel x86_64 llc_shared_map/cpu_llc_id anomolies + * x86: default to SWIOTLB=y on x86_64 + * CIFS: make sure that DFS pathnames are properly formed + * ring-buffer: prevent false positive warning + * ring-buffer: fix dangling commit race + * iwlwifi: use GFP_KERNEL to allocate Rx SKB memory + * tx493[89]ide: Fix length for __ide_flush_dcache_range + * tx4939ide: Do not use zero count PRD entry + * SCSI: eata: fix the data buffer accessors conversion regression + * USB: emi26: fix oops on load + * x86, UV: remove erroneous BAU initialization + * x86: fix incorrect __read_mostly on _boot_cpu_pda + * vmalloc.c: fix flushing in vmap_page_range() + * fs: symlink write_begin allocation context fix + * cgroups: fix a race between cgroup_clone and umount + * dm raid1: fix error count + * dm log: fix dm_io_client leak on error paths + * minix: fix add link's wrong position calculation + * md: fix bitmap-on-external-file bug. + * sched_clock: prevent scd->clock from moving backwards, take #2 + * devices cgroup: allow mkfifo + * SCSI: aha152x_cs: Fix regression that keeps driver from using shared + interrupts + * ioat: fix self test for multi-channel case + * USB: isp1760: use a specific PLX bridge instead of any bdridge + * USB: isp1760: Fix probe in PCI glue code + * USB: unusual_devs.h additions for Pentax K10D + * inotify: fix type errors in interfaces + * Move compat system call declarations to compat header file + * Convert all system calls to return a long + * Rename old_readdir to sys_old_readdir + * Remove __attribute__((weak)) from sys_pipe/sys_pipe2 + * Make sys_pselect7 static + * Make sys_syslog a conditional system call + * System call wrapper infrastructure + * powerpc: Enable syscall wrappers for 64-bit + * s390: enable system call wrappers + * System call wrapper special cases + * System call wrappers part 01 + * System call wrappers part 02 + * System call wrappers part 03 + * System call wrappers part 04 + * System call wrappers part 05 + * System call wrappers part 06 + * System call wrappers part 07 + * System call wrappers part 08 + * System call wrappers part 09 + * System call wrappers part 10 + * System call wrappers part 11 + * System call wrappers part 12 + * System call wrappers part 13 + * System call wrappers part 14 + * System call wrappers part 15 + * System call wrappers part 16 + * System call wrappers part 17 + * System call wrappers part 18 + * System call wrappers part 19 + * System call wrappers part 20 + * System call wrappers part 21 + * System call wrappers part 22 + * System call wrappers part 23 + * System call wrappers part 24 + * System call wrappers part 25 + * System call wrappers part 26 + * System call wrappers part 27 + * System call wrappers part 28 + * System call wrappers part 29 + * System call wrappers part 30 + * System call wrappers part 31 + * System call wrappers part 32 + * System call wrappers part 33 + * s390 specific system call wrappers + * x86: fix RIP printout in early_idt_handler + * Fix timeouts in sys_pselect7 + * USB: another unusual_devs entry for another bad Argosy storage device + * USB: storage: extend unusual range for 067b:3507 + * USB: storage: recognizing and enabling Nokia 5200 cell phoes + * HID: fix error condition propagation in hid-sony driver + * fix switch_names() breakage in short-to-short case + * nfs: remove redundant tests on reading new pages + * eCryptfs: check readlink result was not an error before using it + * mvsas: increase port type detection delay to suit Seagate's 10k6 drive ST3450856SS 0003 + * x86: avoid theoretical vmalloc fault loop + * ath9k: enable RXing of beacons on STA/IBSS + * mm lockless pagecache barrier fix + * powerpc: Disable Collaborative Memory Manager for kdump + * ibmvfc: Delay NPIV login retry and add retries + * ibmvfc: Improve async event handling + * getrusage: RUSAGE_THREAD should return ru_utime and ru_stime + * ath5k: ignore the return value of ath5k_hw_noise_floor_calibration + * mm: fix assertion + * XFS: truncate readdir offsets to signed 32 bit values + * Linux 2.6.28.1 + * eCryptfs: Filename Encryption: Tag 70 packets + * eCryptfs: Filename Encryption: Header updates + * eCryptfs: Filename Encryption: Encoding and encryption functions + * eCryptfs: Filename Encryption: filldir, lookup, and readlink + * eCryptfs: Filename Encryption: mount option + * eCryptfs: Replace %Z with %z + * eCryptfs: Fix data types (int/size_t) + * eCryptfs: kerneldoc for ecryptfs_parse_tag_70_packet() + * eCryptfs: Clean up ecryptfs_decode_from_filename() + * fs/ecryptfs/inode.c: cleanup kerneldoc + * staging-p80211: Kill directly reference of netdev->priv + * staging-slicoss: Kill directly reference of netdev->priv + * staging-winbond: Kill directly reference of netdev->priv + * Staging: go7007: fixes due to video_usercopy api change + * Staging: go7007: fixes due v4l2_file_operations api change + * staging: correct dubious use of !x & y + * Staging: w35und: make wb35_probe() and wb35_disconnect() funtions static + * Staging: w35und: remove unused wb35_open() and wb35_close() functions + * Staging: w35und: use msleep() and udelay() + * Staging: w35und: remove the no-op pa_stall_execution macro + * Staging: w35und: purb typedef removal + * Staging: w35und: reg queue struct typedef removal + * Staging: w35und: wb35reg struct typedef removal + * Staging: w35und: padapter struct typedef removal + * Staging: w35und: merge wblinux struct to adapter + * Staging: w35und: wb35_probe() cleanup + * Staging: w35und: remove usb_submit_urb wrapper function + * Staging: w35und: remove usb_alloc_urb wrapper function + * w35und: remove dead code from wbusb_f.h + * Staging: w35und: remove true/false boolean macros + * Staging: w35und: OS_MEMORY_ALLOC wrapper removal + * Staging: w35und: usb_put_dev() is missing from wb35_disconnect() + * Staging: w35und: remove macro magic from MLME_GetNextPacket() + * Staging: w35und: plug memory leak in wbsoft_tx() + * Staging: w35und: move supported band initialization out of wb35_probe() + * Staging: w35und: remove timer wrappers + * Staging: w35und: remove atomic op wrappers + * Staging: w35und: remove memcpy/memcmp wrappers + * Staging: w35und: remove abs() and BIT() macros + * Staging: w35und: remove unused macros from common.h + * Staging: w35und: remove unused link status code + * Staging: w35und: #include cleanup + * Staging: w35und: remove some dead code + * Staging: w35und: move source files to one directory + * Staging: w35und: move struct wbsoft_priv to core.h and use it + * Staging: w35und: remove ->adapter from struct _HW_DATA_T + * Staging: w35und: clean up adapter.h a bit + * Staging: w35und: merge struct wb35_adapter to struct wbsoft_priv + * Staging: w35und: remove global struct ieee80211_hw + * Staging: w35und: inline DRIVER_AUTHOR and DRIVER_DESC macros + * Staging: w35und: clean up wblinux.c a bit + * Staging: w35und: remove unused ->ShutDowned member from struct + LOCAL_PARA + * Staging: w35und: move global wbsoft_enabled to struct wbsoft_priv + * Staging: w35und: move packet_came() to wb35rx.c + * Staging: w35und: remove ->skb_array from struct wbsoft_priv + * Staging: w35und: remove ->shutdown from struct wbsoft_priv + * Staging: w35und: make functions local to mds.c static + * Staging: w35und: make functions local to mlmetxrx.c static + * Staging: w35und: remove dead code from mto.c + * Staging: w35und: make functions local to wb35rx.c static + * Staging: w35und: make functions local to wb35tx.c static + * Staging: w35und: remove dead code from wbhal.c + * Staging: w35und: remove rxisr.c as dead code + * Staging: w35und: fix Kconfig + * Staging: w35und: fix config build warnings + * Staging: wlan-ng: Remove PCI/PLX/PCMCIA files. + * Staging: wlan-ng: Update Help text to mention prism3 devices. + * Staging: wlan-ng: Delete PCI/PLX/PCMCIA-specific code. + * Staging: wlan-ng: Make wlan-ng use WEXT mode by default. + * Staging: wlan-ng: Eliminate more <2.6 kernel support. + * Staging: wlan-ng: Eliminate all backwards-compatibility for <2.6.13 kernels. + * Staging: wlan-ng: Eliminate a boatload of tertiaryAP-only code. + * Staging: wlan-ng: Remove AP-only code from MLME functions. + * Staging: wlan-ng: Get rid of the MTU tests in the rx conversion path. + * Staging: wlan-ng: Eliminate one more rx mtu test. + * Staging: wlan-ng: Eliminate local 'version.h' + * Staging: wlan-ng: Eliminate usage of procfs. + * Staging: wlan-ng: Use standard kernel integer (u32/s32/etc) types. + * Staging: wlan-ng: Eliminate all backwards-compatible kernel code. + * Staging: wlan-ng: Wireless Extension support is mandatory. + * Staging: wlan-ng: use WIRELESS_EXT, not CONFIG_WIRELESS_EXT + * Staging: wlan-ng: Delete a large pile of now-unused code. + * Staging: wlan-ng: Delete a pile of unused mibs. And fix WEXT SET_TXPOWER. + * Staging: wlan-ng: Consolidate wlan-ng into a single module. + * Staging: wlan-ng: Purge all MIBs not used internally. + * Staging: wlan-ng: p80211netdev.c fix netdev alloc to prevent oops on device start + * Staging: wlan-ng: prism2_usb.c always enable the card in probe_usb + * Staging: wlan-ng: hfa384x_usb.c use newest version of 384x_drvr_start + * Staging: wlan-ng: p80211wext.c add latest changes & remove extra nulls from wext_handlers + * Staging: wlan-ng: p80211wext don't set default key id twice + * Staging: wlan-ng: hfa384x_usbin_callback: check for hardware removed + * Staging: wlan-ng: p80211conv.c copy code from wlan-ng-devel branch to not drop packets + * Staging: wlan-ng: remove unused #include + * Staging: wlan-ng: p80211wext.c: use ARRAY_SIZE + * Staging: wlan-ng: fix compiler warnings + * Staging: wlan-ng: skb_p80211_to_ether() - payload_length is unsigned, check before subtraction + * Staging: at76_usb: update drivers/staging/at76_usb w/ mac80211 port + * Staging: at76_usb: fix build breakage + * Staging: at76_usb: remove compiler warnings + * Staging: at76_usb: fix up all remaining checkpatch.pl warnings + * Staging: at76_usb: cleanup dma on stack issues + * Staging: poch: Block size bug fix + * Staging: poch: Update TODO list + * Staging: poch: Correct pages from bytes. + * Staging: poch: minor fixes + * Staging: poch: Fix build warnings + * Staging: poch: Rx control register init + * Staging: poch: Fix user space protocol syncing + * Staging: poch: Fine grained locking + * Staging: sxg: remove typedefs + * Staging: sxg: break the build in a cleaner way when !x86 + * Staging: sxg: update README + * staging: struct device - replace bus_id with dev_name(), dev_set_name() + * Staging: echo: remove typedefs + * Staging: echo: Lindent drivers/staging/echo + * Staging: go7007: saa7134 updates + * Staging: go7007: add sensoray 2250/2251 support + * Staging: go7007: Convert driver to use video_ioctl2 + * Staging: go7007: annotate code pointers + * Staging: go7007: fix minor build warnings + * Staging: go7007: small cleanup + * Staging: go7007: add some more v4l2 ioctls + * Staging: et131x: Cleanup et131x_debug.h defines + * Staging: et131x: fix build failure + * Staging: et131x: remove unused variable in et1310_tx.c + * Staging: usbip: cleanup kerneldoc + * Staging: slicoss: use kzalloc + * Staging: slicoss: use correct type for memory allcations + * Staging: slicoss: use request_firmware + * Staging: add agnx wireless driver + * Staging: agnx: fix build errors due to ssid removal + * Staging: agnx: fix build errors due to rate control API changes + * Staging: agnx: fix build warnings + * Staging: add otus Atheros wireless network driver + * Staging: otus: fix netdev->priv usage + * Staging: otus: fix name clash + * Staging: otus: fix urb callback function type + * Staging: otus: remove dependence on kernel version + * Staging: add rt2860 wireless driver + * Staging: rt2860: disable root hack for reading files + * Staging: rt2860: fix up netdev->priv usage + * Staging: rt2860: use standard bit-reverse function + * Staging: rt2860: Fix minor compiler warnings + * Staging: rt2860: enable WPA_SUPPLICANT support + * Staging: Add ServerEngines benet 10Gb ethernet driver + * Staging: benet: fix netif api breakage + * Staging: benet: fix up netdev->priv change + * Staging: benet: build is broken unless CONFIG_NETPOLL is enabled + * Staging: benet: patch to remove subdirectories + * Staging: benet: fix build errors when CONFIG_NETPOLL is off + * Staging: benet: fix build error. + * Staging: benet: patch to use offsetof() instead of AMAP_BYTE_OFFSET() + * Staging: benet: fix problems reported by checkpatch + * Staging: benet: cleanup a check while posting rx buffers + * Staging: add comedi core + * Staging: comedi: fix up a lot of checkpatch.pl warnings + * Staging: comedi: fix checkpatch.pl errors in comedi_fops.c + * Staging: comedi: fix build error in comedilib.h + * Staging: comedi: add kcomedilib to the tree + * Staging: comedi: set up infrastructure for individual drivers + * Staging: comedi: add local copy of interrupt.h + * Staging: comedi: add pci and usb wrapper header files + * Staging: comedi: comedi driver common function module + * Staging: comedi: add mite comedi pci driver + * Staging: comedi: add usb usbdux driver + * Staging: comedi: add usb usbduxfast driver + * Staging: comedi: add usb dt9812 driver + * Staging: comedi: add comedi_bond driver + * Staging: comedi: add comedi_test driver + * Staging: comedi: add comedi_parport driver + * Staging: comedi: dt9812: fix up a lot of coding style issues + * Staging: comedi: dt9812: remove dt9812.h + * Staging: comedi: dt9812: remove typedefs + * Staging: comedi: dt9812: fix sparse warnings + * Staging: comedi: usbdux: remove kernel version checks + * Staging: comedi: usbdux: code style cleanups + * Staging: comedi: usbdux: remove // comments + * Staging: comedi: usbdux: fix up printk calls + * Staging: comedi: usbdux: remove checkpatch.pl warnings + * Staging: comedi: usbdux: remove typedef + * Staging: comedi: usbdux: remove comedi usb wrappers + * Staging: comedi: usbduxfast: remove comedi usb wrappers + * Staging: comedi: dt9812: remove #ifdef that is not needed + * Staging: comedi: remove usb wrappers + * Staging: comedi: remove PCI wrappers + * Staging: comedi: add icp_multi driver + * Staging: comedi: add me4000 driver + * Staging: comedi: fix checkpatch.pl issues in comedi_bond.c + * Staging: comedi: fix checkpatch.pl issues in comedi_fc.c + * Staging: comedi: remove typedefs from comedi_bond.c + * Staging: comedi: fix sparse issues in comedi_bond.c + * Staging: comedi: fix checkpatch.pl issues in comedi_test.c + * Staging: comedi: fix sparse issues in comedi_test.c + * Staging: comedi: remove typedefs from comedi_test.c + * Staging: comedi: fix comedi_parport.c checkpatch.pl issues. + * Staging: comedi: fix comedi_fc.h checkpatch.pl issues. + * Staging: comedi: fix comedi_pci.h checkpatch.pl issues. + * Staging: comedi: comedi_pci.h: remove unneeded wrapper + * Staging: comedi: comedi_pci.h: remove comedi_pci_enable_no_regions + * Staging: comedi: comedi_pci.h: remove comedi_pci_disable_no_regions + * Staging: comedi: add s626 driver + * Staging: comedi: add rtd520 driver + * Staging: comedi: add me_daq driver + * Staging: comedi: me_daq: fix checkpatch.pl issues + * Staging: comedi: me_daq: remove typedefs + * Staging: comedi: me_daq: fix sparse issues + * Staging: comedi: fix checkpatch.pl warning in interrupt.h + * Staging: comedi: fix build if CONFIG_PROC_FS is not set + * Staging: add asus_oled driver + * Staging: asus_oled: fix build dependancy + * Staging: Add the Meilhaus ME-IDS driver package + * Staging: meilhaus: fix __symbol_get problems + * Staging: add lcd-panel driver + * Staging: panel: major checkpatch cleanup + * Staging: panel: remove ifdefs and code for pre-2.6 kernels + * Staging: panel: remove support for smartcards + * Staging: add Driver for Altera PCI Express Chaining DMA reference design + * Staging: add rtl8187se driver + * Staging: rtl8187se: remove unneeded files + * Staging: rtl8187se: make the built module be the proper name + * Staging: rtl8187se: remove duplicate pci ids + * Staging: me4000: switch to list_for_each*() + * Staging: usbip: switch to list_for_each_entry() + * Staging: add princeton instruments usb camera driver + * Staging: add mimio xi driver + * Staging: add rt2870 wireless driver + * Staging: rt2870: disable root hack for reading files + * Staging: rt2870: fix up netdev->priv usage + * Staging: add frontier tranzport and alphatrack drivers + * Staging: frontier: remove unused alphatrack_sysfs.c file + * Staging: frontier: fix compiler warnings + * Staging: add epl stack + * Staging: epl: run Lindent on all kernel/*.h files + * Staging: epl: run Lindent on all user/*.h files + * Staging: epl: run Lindent on *.h files + * Staging: epl: run Lindent on *.c files + * Staging: epl: hr timers all run in hard irq context now + * Staging: epl: fix netdev->priv b0rkage + * Staging: add android framework + * Staging: android: add binder driver + * Staging: android: binder: Fix gcc warnings about improper format specifiers for size_t in printk + * staging: android: binder: Fix use of euid + * Staging: android: add logging driver + * Staging: android: add ram_console driver + * Staging: android: add timed_gpio driver + * Staging: android: timed_gpio: Rename android_timed_gpio to timed_gpio + * Staging: android: remove dummy android.c driver + * Staging: android: add lowmemorykiller driver + * Staging: android: binder: fix build errors + * staging: __FUNCTION__ is gcc-specific, use __func__ + * V4L/DVB (10176a): Switch remaining clear_user_page users over to + clear_user_highpage + + [ Zhenyu Wang ] + + * agp/intel: add support for G41 chipset + + -- Tim Gardner Sun, 18 Jan 2009 20:22:54 -0700 + +linux (2.6.28-4.11) jaunty; urgency=low + + [ Mario Limonciello ] + + * SAUCE: Enable HDMI audio codec on Studio XPS 1340 + - LP: #309508 + + [ Tim Gardner ] + + * Fix armel d-i FTBSs + + [ Upstream Kernel Changes ] + + * USB: re-enable interface after driver unbinds + + -- Tim Gardner Tue, 13 Jan 2009 16:33:08 -0700 + +linux (2.6.28-4.10) jaunty; urgency=low + + [ Andy Whitcroft ] + + * update kernel bootloader recommends: to prefer grub + - LP: #314004 + * SAUCE: don't use buggy _BCL/_BCM/_BQC for backlight control + - LP: #311716 + * SAUCE: test-suspend -- add the suspend test scripts + - LP: #316419 + + [ Colin Watson ] + + * Enable udebs for armel + + [ Tim Gardner ] + + * SAUCE: Dell laptop digital mic does not work, PCI 1028:0271 + - LP: #309508 + * Enable CIFS_XATTR=y and CONFIG_CIFS_POSIX=y + - LP: #220658 + + -- Tim Gardner Thu, 08 Jan 2009 10:38:22 -0700 + +linux (2.6.28-4.9) jaunty; urgency=low + + [ Tim Gardner ] + + * Restore DM_CRYPT, AES, ECB, and CBC as modules. This fixes + some installer issues with encrypted /home and Private directories. + * Take one more stab at building armel without module or ABI errors. + + -- Tim Gardner Tue, 06 Jan 2009 08:38:23 -0700 + +linux (2.6.28-4.8) jaunty; urgency=low + + * Fix i386/amd64 FTBS by ignoring all module and ABI changes, + not something you would normally do, but I'm sure the ABI + has not changed. This will probably also allow the ARM builds to complete. + + -- Tim Gardner Mon, 05 Jan 2009 14:42:58 -0700 + +linux (2.6.28-4.7) jaunty; urgency=low + + [ Tim Gardner ] + + * Enable CONFIG_ATH5K=m for i386/amd64 + - LP: #306719 + * Build all i386/amd64 AGP/DRM components as modules. + - LP: #312721 + * git commands are now installed outside the default $PATH + Use 'git CMD' instead of 'git-CMD'. + * Build in most PATA/SATA drivers. This should allow most i386/amd64 systems to boot + without an initramfs, though some support work is still required in initramfs-tools + and grub. + - LP: #311730 + + -- Tim Gardner Fri, 02 Jan 2009 07:33:09 -0700 + +linux (2.6.28-4.6) jaunty; urgency=low + + [ Tim Gardner ] + + * Enable CONFIG_X86_E_POWERSAVER=m for i386 generic + - LP: #237405 + * Build i386 AGP drivers as modules + - LP: #312721 + * Build i386 DRM as a module + - LP: #312721 + + [ Upstream Kernel Changes ] + + * drm/i915: Add missing userland definitions for gem init/execbuffer. + - LP: #308387 + + -- Tim Gardner Mon, 29 Dec 2008 09:16:47 -0700 + +linux (2.6.28-4.5) jaunty; urgency=low + + [ Andy Whitcroft ] + + * clean up module dependancy information on package removal/purge + - LP: #300773 + + [ Tim Gardner ] + + * Update iscsitarget to 0.4.17 + * Build in ext{234} + * Build in Crypto modules AES, CBC, ECB + * Build in ACPI AC,BATTERY,BUTTON,FAN,PCI_SLOT,PROCESSOR,SBS,THERMAL,WMI + * Build in AGP intel,via,sis,ali,amd,amd64,efficeon,nvidia,sworks + * Build in ata,dev_dm,dev_loop,dev_md,dev_sd,dev_sr + * Build in BT l2cap,rfcomm,sco + * Reduce CONFIG_LEGACY_PTY_COUNT to 0 + * Build in CDROM_PKTCDVD and CHR_DEV_SG + * Build in CPU_FREQ + GOV_CONSERVATIVE,GOV_ONDEMAND,GOV_POWERSAVE,GOV_USERSPACE,STAT,TABLE + * Build in DM CRYPT,MIRROR,MULTIPATH,SNAPSHOT + * Build in DRM + * Build in HID + * Build in HOTPLUG PCI,PCIE + * Build in I2C + * Build in IEEE1394 OHCI1394 + * Build in INPUT EVDEV + * Build in IPV6 + * Build in MMC + * Build in PACKET + * Enable both IEEE1394 (Firewire) stacks as modules + - LP: #276463 + * Disable SUNRPC_REGISTER_V4 + - LP: #306016 + * Enable dm-raid4-5 + - LP: #309378 + * Build in PPP + * Build in RFKILL + * Build in USB SERIAL + + [ Upstream Kernel Changes ] + + * Rebased to v2.6.28 + + -- Tim Gardner Thu, 18 Dec 2008 21:18:44 -0700 + +linux (2.6.28-3.4) jaunty; urgency=low + + [ Tim Gardner ] + + * Build ecryptfs into the kernel + - LP: #302870 + * Deprecated gnbd + + [ Upstream Kernel Changes ] + + * Rebased to v2.6.28-rc8 + + -- Tim Gardner Wed, 10 Dec 2008 22:45:13 -0700 + +linux (2.6.28-2.3) jaunty; urgency=low + + [ Andy Whitcroft ] + + * update the templates so that we have spaces following the title line + + [ Tim Gardner ] + + * Add upload number to kernel version signature. This has the side effect + of renaming kernel packages back to the original way, e.g., without '-ub' + in the name. + + -- Tim Gardner Thu, 04 Dec 2008 12:18:31 -0700 + +linux (2.6.28-2.2) jaunty; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: (no-up) version: Implement version_signature proc file." + * SAUCE: (no-up) version: Implement version_signature proc file. + * SAUCE: serial: RS485 ioctl structure uses __u32 include linux/types.h + - LP: #303711 + + [ Tim Gardner ] + + * UBUNTU: Removed CONFIG_DRM_VIA_CHROME9 since it is upstream. + * UBUNTU: Removed ubuntu/via_chrome9 + + [ Upstream Kernel Changes ] + + * Rebased to v2.6.28-rc7 + + -- Tim Gardner Tue, 02 Dec 2008 07:33:32 -0700 + +linux (2.6.28-1.1) jaunty; urgency=low + + [ Amit Kucheria ] + + * SAUCE: make fc transport removal of target configurable + * SAUCE: pm: Config option to disable handling of console during + suspend/resume + * SAUCE: Adds support for COMPAL JHL90 webcam + * Map armel to arm to all editconfigs to work correctly + * Add armel to getabis for completeness sake + * Add -ub to our versioning to allow kerneloops.org to identify us + + [ Andy Whitcroft ] + + * Fix Vcs-Git path for the kernel repository. + - LP: #296915 + + [ Ben Collins ] + + * SAUCE: Lower warning level of some PCI messages + - LP: #159241 + * SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps + * SAUCE: tulip: Let dmfe handle davicom on non-sparc + * SAUCE: tulip: Define ULI PCI ID's + * SAUCE: (no-up) version: Implement version_signature proc file. + * SAUCE: (no-up) connector.h: Add idx/val for drbd + * SAUCE: (no-up) swap: Add notify_swap_entry_free callback for compcache + * SAUCE: drivers: Remove some duplicate device entries in various modules + * SAUCE: (no-up) [AppArmor] merge with upstream subversion r1291 + * SAUCE: (no-up) Enable ubuntu extra subdirectory + * SAUCE: (no-up) ACPI: initramfs DSDT override support + * ubuntu: Add drbd module + * ubuntu: Add iscsitarget module + * ubuntu: Add BOM for iscsitarget + * ubuntu: Add squashfs driver + * SAUCE: (no-up) Check for squashfs superblock in initramfs mounting. + * ubuntu: Add aufs module + * ubuntu: Added atl2 driver + * ubuntu: Added et131x driver + * ubuntu: Add dm-raid4-5 driver + * ubuntu: Add ndiswrapper driver + * ubuntu: Added ram backed compressed swap module (compcache) + * ubuntu: Add misc drivers from hardy lum + * ubuntu: Add heci driver 3.2.0.24 + * ubuntu: Add ov511 and bt-sco drivers + * ubuntu: Add acx, prism2_usb wireless drivers + * ubuntu: Add at76 driver to build + * ubuntu: Add fsam7400 sw kill switch driver + * ubuntu: Added qc-usb driver + * ubuntu: e1000e: Upgraded module to 0.4.1.7 + * ubuntu: Added rfkill drivers + * ubuntu: VIA - Add VIA DRM Chrome9 3D engine + * ubuntu: unionfs: Added v1.4 module from hardy + * ubuntu: Add LIRC driver + * ubuntu: Add GFS driver + * ubuntu: New tlsup driver for toshiba laptops + * SAUCE: (no-up) Export lookup_has for aufs + * SAUCE: (no-up) Modularize vesafb + * ubuntu: Config files + * Disable some modules that need porting to 2.6.28 + * ubuntu: Fixup headers creation to include arch/*/include + * ubuntu/module-check: Ignore comment lines + + [ Chuck Short ] + + * SAUCE: ata: blacklist FUJITSU MHW2160BH PL + + [ cking ] + + * SAUCE: Enable speedstep for sonoma processors. + + [ Colin Ian King ] + + * ubuntu: Add dm-loop + * SAUCE: cx88: Support Leadtek WinFast DTV2000 H version J. + * SAUCE: fix kernel oops in VirtualBox during paravirt patching + * SAUCE: qc-usb: Enable Logitech QuickCam Messenger + * SAUCE: appleir: Enable driver for new MacBook Pro + + [ Colin Watson ] + + * Enable configfs, fuse, jfs, reiserfs, and xfs for armel + * Extend debian/d-i/ modules handling to make armel easier to support + * Create udebs for armel + + [ Fabio M. Di Nitto ] + + * ubuntu: update GFS Cluster File System + + [ Kees Cook ] + + * SAUCE: AppArmor: update to upstream subversion r1302 + + [ Leann Ogasawara ] + + * Add automatic model setting for Samsung Q45 + * Add Dell Dimension 9200 reboot quirk + + [ Mackenzie Morgan ] + + * SAUCE: Add quirk for ASUS Z37E to make sound audible after resume + + [ Matthew Garrett ] + + * SAUCE: hostap: send events on data interface as well as master + interface + + [ Michael Frey (Senior Manager, MID ] + + * SAUCE: Send HCI_RESET for Broadcomm 2046 + + [ Michael Haas ] + + * add proper aufs source tree from 20080922 + * Fix AUFS compilation in vfsub.c + * Add splice-2.6.23.patch from AUFS to export a symbol needed by AUFS + * Add put_filp.patch from AUFS to export a symbol needed by AUFS + * Add deny_write_access.patch from AUFS - export deny_write_access + * Add sec_perm-2.6.24.patch from AUFS - export security_inode_permission + * make sure TMPFS_MAGIC is defined in AUFS Makefile + * SAUCE: Revert aufs changes from AppArmor merge + + [ Mohamed Abbas ] + + * SAUCE: iwlagn -- fix rfkill when on when driver loaded + + [ Phillip Lougher ] + + * SAUCE: r8169: disable TSO by default for RTL8111/8168B chipsets. + + [ Stefan Bader ] + + * SAUCE: (no-up) Export dm_disk function of device-mapper + * SAUCE: Restore VT fonts on switch + * SAUCE: mmc: Increase power_up deleay to fix TI readers + * gfs1: GFS1 can't create more than 4kb file + * uvcvideo: Commit streaming parameters when enabling the video stream. + + [ Tim Gardner ] + + * SAUCE: Add extra headers to linux-libc-dev + * SAUCE: Catch nonsense keycodes and silently ignore + * SAUCE: Added support for HDAPS on various ThinkPads from Lenovo and IBM + * SAUCE: Guest OS does not recognize a lun with non zero target id on + Vmware ESX Server + * SAUCE: (no-up) Take care of orinoco_cs overlap with hostap_cs + * ubuntu: Add GNBD driver + * SAUCE: e1000e: Map NV RAM dynamically only when needed. + * SAUCE: Correctly blacklist Thinkpad r40e in ACPI + * SAUCE: Update Wacom tablet driver to 1.49 + * SAUCE: Fix Wacom tablet 1.49 porting errors + * SAUCE: Enable an e1000e Intel Corporation 82567 Gigabit controller + * SAUCE: Fix Oops in wlan_setup + * SAUCE: ipw2200: change default policy for auto-associate + * Dell Wireless 365 needs BTUSB_RESET quirk. + * ndiswrapper remote buffer overflows on long ESSIDs (CVE 2008-4395) + * Disabled ubuntu/e1000e config + + [ Upstream Kernel Changes ] + + * Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ + handler" + * Revert "x86, early_ioremap: fix fencepost error" + * mac80211: fix two issues in debugfs + * iwl3945: do not send scan command if channel count zero + + -- Ben Collins Fri, 07 Nov 2008 09:37:42 -0700 + +linux (2.6.27-8.17) intrepid-proposed; urgency=low + + [ John W. Linville ] + + * SAUCE: iwlagn: avoid sleep in softirq context + -LP: #286285 + + [ Tim Gardner ] + + * Dell Wireless 365 needs BTUSB_RESET quirk. + - LP: #293670 + * SAUCE: ALSA: hda: make a STAC_DELL_EQ option (version 2) + - LP: #293271 + + [ Upstream Kernel Changes ] + + * iwlagn: downgrade BUG_ON in interrupt + * Input: atkbd - expand Latitude's force release quirk to other Dells + * fbcon_set_all_vcs: fix kernel crash when switching the rotated consoles + * modules: fix module "notes" kobject leak + * Driver core: Fix cleanup in device_create_vargs(). + * Driver core: Clarify device cleanup. + * ath9k/mac80211: disallow fragmentation in ath9k, report to userspace + * md: Fix rdev_size_store with size == 0 + * xfs: fix remount rw with unrecognized options + * OHCI: Allow broken controllers to auto-stop + * USB: OHCI: fix endless polling behavior + * USB: Fix s3c2410_udc usb speed handling + * USB: EHCI: log a warning if ehci-hcd is not loaded first + * usb gadget: cdc ethernet notification bugfix + * usb: musb_hdrc build fixes + * drm/i915: fix ioremap of a user address for non-root (CVE-2008-3831) + * DVB: au0828: add support for another USB id for Hauppauge HVR950Q + * DVB: sms1xxx: support two new revisions of the Hauppauge WinTV + MiniStick + * security: avoid calling a NULL function pointer in + drivers/video/tvaudio.c + * Linux 2.6.27.3 + -LP: #294152 + + * gpiolib: fix oops in gpio_get_value_cansleep() + * edac cell: fix incorrect edac_mode + * x86 ACPI: fix breakage of resume on 64-bit UP systems with SMP kernel + * sched: fix the wrong mask_len + * USB: cdc-wdm: make module autoload work + * USB: don't rebind drivers after failed resume or reset + * USB: fix memory leak in cdc-acm + * USB: Speedtouch: add pre_reset and post_reset routines + * dm kcopyd: avoid queue shuffle + * dm snapshot: fix primary_pe race + * amd_iommu: fix nasty bug that caused ILLEGAL_DEVICE_TABLE_ENTRY errors + * CIFS: fix saving of resume key before CIFSFindNext + * netfilter: xt_iprange: fix range inversion match + * netfilter: snmp nat leaks memory in case of failure + * netfilter: restore lost ifdef guarding defrag exception + * anon_vma_prepare: properly lock even newly allocated entries + * hvc_console: Fix free_irq in spinlocked section + * ACPI Suspend: Enable ACPI during resume if SCI_EN is not set + * ACPI suspend: Blacklist HP xw4600 Workstation for old code ordering + * ACPI suspend: Always use the 32-bit waking vector + * proc: fix vma display mismatch between /proc/pid/{maps,smaps} + * SCSI: scsi_dh: add Dell product information into rdac device handler + * PCI hotplug: cpqphp: fix kernel NULL pointer dereference + * V4L/DVB (9300): pvrusb2: Fix deadlock problem + * Linux 2.6.27.4 + -LP: #294155 + + -- Tim Gardner Tue, 04 Nov 2008 12:16:07 -0700 + +linux (2.6.27-7.16) intrepid-security; urgency=low + + [ Tim Gardner ] + + * ndiswrapper remote buffer overflows on long ESSIDs (CVE 2008-4395) + - LP: #275860 + + [ Upstream Kernel Changes ] + + * ext[234]: Avoid printk floods in the face of directory corruption + (CVE-2008-3528) + + -- Tim Gardner Mon, 03 Nov 2008 13:34:42 -0700 + +linux (2.6.27-7.15) intrepid-security; urgency=low + + [ Upstream Kernel Changes ] + + * tcp: Restore ordering of TCP options for the sake of inter-operability + - LP: #264019 + + -- Tim Gardner Mon, 27 Oct 2008 19:28:06 -0600 + +linux (2.6.27-7.14) intrepid; urgency=low + + [ Tim Gardner ] + + * Disable ath5k in 2.6.27 + - LP: #288148 + + -- Tim Gardner Thu, 23 Oct 2008 07:40:43 -0600 + +linux (2.6.27-7.13) intrepid; urgency=low + + [ Stefan Bader ] + + * gfs1: GFS1 can't create more than 4kb file + + [ Tim Gardner ] + + * Revert "SAUCE: x86: Reserve FIRST_DEVICE_VECTOR in used_vectors + bitmap.". Use upstream commit to avoid future conflicts. + * Revert "STABLE queue: mac80211: fix two issues in debugfs". + Use upstream commit to avoid future conflicts. + * Revert "x86, early_ioremap: fix fencepost error" + Use upstream commit to avoid future conflicts. + + [ Upstream Kernel Changes ] + + * sched_rt.c: resch needed in rt_rq_enqueue() for the root rt_rq + * x86: Reserve FIRST_DEVICE_VECTOR in used_vectors bitmap. + * mac80211: fix two issues in debugfs + * Fix barrier fail detection in XFS + * tty: Termios locking - sort out real_tty confusions and lock reads + * CIFS: make sure we have the right resume info before calling + CIFSFindNext + * rfkill: update LEDs for all state changes + * libertas: clear current command on card removal + * b43legacy: Fix failure in rate-adjustment mechanism + * x86, early_ioremap: fix fencepost error + * x86: SB450: skip IRQ0 override if it is not routed to INT2 of IOAPIC + * x86: improve UP kernel when CPU-hotplug and SMP is enabled + * sky2: Fix WOL regression + * netdrvr: atl1e: Don't take the mdio_lock in atl1e_probe + * Linux 2.6.27.2 + + [ Amit Kucheria ] + + * Ubuntu: agp: Fix stolen memory counting on G4X. + -LP: 285572 + + [ Scott Remnant ] + + * add MODULE_ALIAS to load ipmi_devintf with ipmi_si + + -- Tim Gardner Sun, 19 Oct 2008 10:06:21 -0600 + +linux (2.6.27-7.12) intrepid; urgency=low + + [ Chuck Short ] + + * xen: Add xen modules to virtual flavours. + + [ Mario Limonciello ] + + * SAUCE: Add back in lost commit for Apple BT Wireless Keyboard + - LP: #162083 + + [ Tim Gardner ] + + * Remove depmod created files from packages. + - LP: #250511 + * Changed default TCP congestion algorithm to 'cubic' (again) + - LP: #278801 + * Update configs for 'disable CONFIG_DYNAMIC_FTRACE' + - LP: #263555 + + [ Upstream Kernel Changes ] + + * x86: register a platform RTC device if PNP doesn't describe it + * disable CONFIG_DYNAMIC_FTRACE due to possible memory corruption on + module unload + + -- Tim Gardner Fri, 17 Oct 2008 11:25:39 -0600 + +linux (2.6.27-7.11) intrepid; urgency=low + + [ Amit Kucheria ] + + * STABLE queue: mac80211: fix two issues in debugfs + - LP: #275227 + * SAUCE: Adds support for COMPAL JHL90 webcam + + [ Ben Collins ] + + * SAUCE: (no-up) x86: Quiet "Kernel alive" messages + - LP: #39985 + * SAUCE: (no-up) Modularize vesafb + * build/config: Enable vesafb module + * build: Switch to vesafb as preferred. + + [ Leann Ogasawara ] + + * Add Dell Dimension 9200 reboot quirk + - LP: #271370 + + [ Michael Haas ] + + * SAUCE: Revert aufs changes from AppArmor merge + + [ Tim Gardner ] + + * fix virtio udeb layout + - LP: #257739 + * Enabled CONFIG_EXT4DEV_FS=m + * Changed default TCP congestion algorithm to 'cubic' + - LP: #278801 + * SAUCE: ipw2200: change default policy for auto-associate + - LP: #264104 + + [ Upstream Kernel Changes ] + + * x86, early_ioremap: fix fencepost error + - LP: #263543 + + -- Tim Gardner Sat, 11 Oct 2008 08:07:42 -0600 + +linux (2.6.27-7.10) intrepid; urgency=low + + [ Alexey Starikovskiy ] + + * SAUCE: ACPI: EC: do transaction from interrupt context + - LP: #277802 + + [ Ben Collins ] + + * build/d-i: Change virtio-modules udeb to prio standard + + [ Colin Ian King ] + + * SAUCE: Blacklist IBM 2656 in serio/i8042 + - LP: #21558 + + [ Henrik Rydberg ] + + * Revert "SAUCE: applesmc: Add MacBookAir" + * SAUCE: [PATCH 1/5] hwmon: applesmc: Specified number of bytes to read + should match actual + * SAUCE: [PATCH 2/5] hwmon: applesmc: Fix the 'wait status failed: c != + 8' problem + * SAUCE: [PATCH 3/5] hwmon: applesmc: Prolong status wait + * SAUCE: [PATCH 4/5] hwmon: applesmc: Allow for variable ALV0 and ALV1 + package length + * SAUCE: [PATCH 5/5] hwmon: applesmc: Add support for Macbook Air + * SAUCE: hwmon: applesmc: Add support for Macbook Pro 4 + * SAUCE: hwmon: applesmc: Add support for Macbook Pro 3 + * SAUCE: hwmon: applesmc: Lighter wait mechanism, drastic improvement + + [ Leann Ogasawara ] + + * Add automatic model setting for Samsung Q45 + - LP: #200210 + + [ Tim Gardner ] + + * SAUCE: Correctly blacklist Thinkpad r40e in ACPI + - LP: #278794 + * SAUCE: Update Wacom tablet driver to 1.49 + - LP: #260675 + * SAUCE: ALPS touchpad for Dell Latitude E6500/E6400 + - LP: #270643 + * SAUCE: Fix Wacom tablet 1.49 porting errors + * SAUCE: Enable an e1000e Intel Corporation 82567 Gigabit controller + * SAUCE: Fix Oops in wlan_setup + - LP: #263309 + + [ Upstream Kernel Changes ] + + * ath9k: fix oops on trying to hold the wrong spinlock + * [Bluetooth] Fix double frees on error paths of btusb and bpa10x drivers + * [Bluetooth] Add reset quirk for new Targus and Belkin dongles + * [Bluetooth] Add reset quirk for A-Link BlueUSB21 dongle + * Revert "ax25: Fix std timer socket destroy handling." + * ax25: Quick fix for making sure unaccepted sockets get destroyed. + * netrom: Fix sock_orphan() use in nr_release + * Revert "V4L/DVB (8904): cx88: add missing unlock_kernel" + * SLOB: fix bogus ksize calculation + * net: only invoke dev->change_rx_flags when device is UP + * tcp: Fix possible double-ack w/ user dma + * net: Fix netdev_run_todo dead-lock + * tcp: Fix tcp_hybla zero congestion window growth with small rho and large cwnd. + * [MIPS] Sibyte: Register PIO PATA device only for Swarm and Litte Sur + * eeepc-laptop: Fix hwmon interface + * hwmon: (it87) Prevent power-off on Shuttle SN68PT + * hwmon: Define sysfs interface for energy consumption register + * hwmon: (adt7473) Fix some bogosity in documentation file + * hwmon: (abituguru3) Enable reading from AUX3 fan on Abit AT8 32X + * hwmon: (abituguru3) Enable DMI probing feature on Abit AT8 32X + * [CPUFREQ] correct broken links and email addresses + * SLOB: fix bogus ksize calculation fix + * Don't allow splice() to files opened with O_APPEND + * Linux 2.6.27 + + -- Tim Gardner Wed, 08 Oct 2008 21:19:34 -0600 + +linux (2.6.27-6.9) intrepid; urgency=low + + [ Kees Cook ] + + * SAUCE: AppArmor: update to upstream subversion r1302 + - LP: #269921 + + [ Stefan Bader ] + + * Update configuration files to be compliant to desktop specs + - LP: #279019 + + [ Tim Gardner ] + + * Add support in e1000e for a couple of ICH10 PCI IDs + * Enable CONFIG_INPUT_PCSPKR=m + - LP: #275453 + + [ Upstream Kernel Changes ] + + * V4L/DVB (8559a): Fix a merge conflict at gspca/sonixb + * V4L/DVB (8789): wm8739: remove wrong kfree + * V4L/DVB (8883): w9968cf: Fix order of usb_alloc_urb validation + * V4L/DVB (8884): em28xx-audio: fix memory leak + * V4L/DVB (8885): cpia2_usb: fix memory leak + * V4L/DVB (8886): ov511: fix memory leak + * V4L/DVB (8887): gspca: fix memory leak + * V4L/DVB (8892): pvrusb2: Handle USB ID 2040:2950 same as 2040:2900 + * V4L/DVB (8904): cx88: add missing unlock_kernel + * V4L/DVB (8905): ov511: fix exposure sysfs attribute bug + * V4L/DVB (8909): gspca: PAC 7302 webcam 093a:262a added. + * hrtimer: migrate pending list on cpu offline + * hrtimer: fix migration of CB_IRQSAFE_NO_SOFTIRQ hrtimers + * hrtimer: mark migration state + * hrtimer: prevent migration of per CPU hrtimers + * [IA64] Put the space for cpu0 per-cpu area into .data section + * powerpc: Fix PCI in Holly device tree + * powerpc: Fix failure to shutdown with CPU hotplug + * mfd: Fix Kconfig accroding to the new gpiolib symbols + * mfd: Fix asic3 compilation + * x86: fix typo in enable_mtrr_cleanup early parameter + * ipsec: Fix pskb_expand_head corruption in xfrm_state_check_space + * iucv: Fix mismerge again. + * ALSA: ASoC: Fix cs4270 error path + * ALSA: hda - Fix model for Dell Inspiron 1525 + * sctp: Fix kernel panic while process protocol violation parameter + * x86: Fix broken LDT access in VMI + * x86, vmi: fix broken LDT access + * tcp: Fix NULL dereference in tcp_4_send_ack() + * ipv6: NULL pointer dereferrence in tcp_v6_send_ack + * XFRM,IPv6: initialize ip6_dst_blackhole_ops.kmem_cachep + * af_key: Free dumping state on socket close + * dm: always allow one page in dm_merge_bvec + * dm: cope with access beyond end of device in dm_merge_bvec + * dm mpath: add missing path switching locking + * MN10300: Fix IRQ handling + * pxa2xx_spi: fix build breakage + * e1000e: write protect ICHx NVM to prevent malicious write/erase + * powerpc: Fix boot hang regression on MPC8544DS + * ASoC: Set correct name for WM8753 rec mixer output + * ALSA: snd-powermac: mixers for PowerMac G4 AGP + * ALSA: snd-powermac: HP detection for 1st iMac G3 SL + * fbcon: fix monochrome color value calculation + * inotify: fix lock ordering wrt do_page_fault's mmap_sem + * braille_console: only register notifiers when the braille console is used + * fix error-path NULL deref in alloc_posix_timer() + * memory hotplug: missing zone->lock in test_pages_isolated() + * mm: tiny-shmem nommu fix + * mm: handle initialising compound pages at orders greater than MAX_ORDER + * e1000e: reset swflag after resetting hardware + * e1000e: do not ever sleep in interrupt context + * e1000e: remove phy read from inside spinlock + * e1000e: drop stats lock + * e1000e: debug contention on NVM SWFLAG + * e1000e: update version from k4 to k6 + * Check mapped ranges on sysfs resource files + * e1000e: Fix incorrect debug warning + * [MIPS] Build fix: Fix irq flags type + * [MIPS] SMTC: Build fix: Fix filename in Makefile + * [MIPS] SMTC: Fix holes in SMTC and FPU affinity support. + * [MIPS] SMTC: Close tiny holes in the SMTC IPI replay system. + * [MIPS] SMTC: Fix SMTC dyntick support. + * [S390] nohz: Fix __udelay. + * [S390] qdio: prevent stack clobber + * Fix init/main.c to use regular printk with '%pF' for initcall fn + * x86 setup: correct segfault in generation of 32-bit reloc kernel + * selinux: Fix an uninitialized variable BUG/panic in selinux_secattr_to_sid() + * rtc: fix kernel panic on second use of SIGIO nofitication + * fbdev: fix recursive notifier and locking when fbdev console is blanked + * orion_spi: fix handling of default transfer speed + * include/linux/stacktrace.h: declare struct task_struct + * cpusets: remove pj from cpuset maintainers + * MAINTAINERS: add mailing list for man-pages + * SubmitChecklist: interfaces changes should CC linux-api@ + * Documentation/HOWTO: info about interface changes should CC linux-api@vger + * dw_dmac: fix copy/paste bug in tasklet + * leds-fsg: change order of initialization and deinitialization + * leds-pca955x: add proper error handling and fix bogus memory handling + * ACPI: Make /proc/acpi/wakeup interface handle PCI devices (again) + * clockevents: check broadcast tick device not the clock events device + * V4L/DVB (8919): cx18: Fix tuner audio input for Compro H900 cards + * V4L/DVB (8926): gspca: Bad fix of leak memory (changeset 43d2ead315b1). + * V4L/DVB (8933): gspca: Disable light frquency for zc3xx cs2102 Kokom. + * V4L/DVB (8935): em28xx-cards: Remove duplicate entry (EM2800_BOARD_KWORLD_USB2800) + * V4L/DVB (8955): bttv: Prevent NULL pointer dereference in radio_open + * V4L/DVB (8957): zr36067: Restore the default pixel format + * V4L/DVB (8958): zr36067: Return proper bytes-per-line value + * V4L/DVB (8960): drivers/media/video/cafe_ccic.c needs mm.h + * V4L/DVB (8961): zr36067: Fix RGBR pixel format + * V4L/DVB (8963): s2255drv field count fix + * V4L/DVB (8967): Use correct XC3028L firmware for AMD ATI TV Wonder 600 + * V4L/DVB (8978): sms1xxx: fix product name for Hauppauge WinTV MiniStick + * V4L/DVB (8979): sms1xxx: Add new USB product ID for Hauppauge WinTV MiniStick + * V4L/DVB (9029): Fix deadlock in demux code + * V4L/DVB (9037): Fix support for Hauppauge Nova-S SE + * V4L/DVB (9043): S5H1420: Fix size of shadow-array to avoid overflow + * V4L/DVB (9053): fix buffer overflow in uvc-video + * V4L/DVB (9075): gspca: Bad check of returned status in i2c_read() spca561. + * V4L/DVB (9080): gspca: Add a delay after writing to the sonixj sensors. + * V4L/DVB (9092): gspca: Bad init values for sonixj ov7660. + * V4L/DVB (9099): em28xx: Add detection for K-WORLD DVB-T 310U + * V4L/DVB (9103): em28xx: HVR-900 B3C0 - fix audio clicking issue + * x86: gart iommu have direct mapping when agp is present too + * ide-cd: temporary tray close fix + * ide-dma: fix ide_build_dmatable() for TRM290 + * IDE: Fix platform device registration in Swarm IDE driver (v2) + * ide-cd: Optiarc DVD RW AD-7200A does play audio + * ide: workaround for bogus gcc warning in ide_sysfs_register_port() + * [MIPS] Fix CMP Kconfig configuration and mark as broken. + * [MIPS] IP27: Fix build errors if CONFIG_MAPPED_KERNEL=y + * x86 ACPI: Blacklist two HP machines with buggy BIOSes + * kgdb, x86: Avoid invoking kgdb_nmicallback twice per NMI + * kgdb: call touch_softlockup_watchdog on resume + * atmel-mci: Initialize BLKR before sending data transfer command + * Marker depmod fix core kernel list + * Linux 2.6.27-rc9 + + -- Tim Gardner Sun, 05 Oct 2008 21:27:49 -0600 + +linux (2.6.27-5.8) intrepid; urgency=low + + [ Amit Kucheria ] + + * Update AUFS-related Kconfig + - LP: #264048 + + [ Michael Haas ] + + * add proper aufs source tree from 20080922 + * Fix AUFS compilation in vfsub.c + * Add splice-2.6.23.patch from AUFS to export a symbol needed by AUFS + * Add put_filp.patch from AUFS to export a symbol needed by AUFS + * apply (modified) lhash.patch from AUFS to export __lookup_hash() + * Add deny_write_access.patch from AUFS - export deny_write_access + * Add sec_perm-2.6.24.patch from AUFS - export security_inode_permission + * make sure TMPFS_MAGIC is defined in AUFS Makefile + + [ Tim Gardner ] + + * Enabled CONFIG_IPWIRELESS + - LP: #274748 + * Enabled CONFIG_E1000E, disabled CONFIG_E1000E_NEW + This takes advantage of the upstream NVM protection fix in + commit 4a7703582836f55a1cbad0e2c1c6ebbee3f9b3a7. + + [ Upstream Kernel Changes ] + + * Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ + handler" + * [SCSI] qla2xxx: Defer enablement of RISC interrupts until ISP + initialization completes. + * PCI: Fix pcie_aspm=force + * PCI: fix compiler warnings in pci_get_subsys() + * UBIFS: create the name of the background thread in every case + * UBIFS: TNC / GC race fixes + * UBIFS: remove incorrect assert + * UBIFS: fix printk format warnings + * AMD IOMMU: set iommu sunc flag after command queuing + * AMD IOMMU: protect completion wait loop with iommu lock + * sparc64: Fix disappearing PCI devices on e3500. + * x86, oprofile: BUG scheduling while atomic + * ALSA: ASoC: Fix at32-pcm build breakage with PM enabled + * ath9k: connectivity is lost after Group rekeying is done + * wireless: zd1211rw: add device ID fix wifi dongle "trust nw-3100" + * [IA64] Ski simulator doesn't need check_sal_cache_flush + * [IA64] kexec fails on systems with blocks of uncached memory + * ath9k: Fix IRQ nobody cared issue with ath9k + * [Bluetooth] Fix I/O errors on MacBooks with Broadcom chips + * [Bluetooth] Fix wrong URB handling of btusb driver + * [Bluetooth] Fix USB disconnect handling of btusb driver + * sparc64: Fix missing devices due to PCI bridge test in + of_create_pci_dev(). + * [WATCHDOG] ibmasr: remove unnecessary spin_unlock() + * [WATCHDOG] wdt285: fix sparse warnings + * [WATCHDOG] unlocked_ioctl changes + * x86: fix 27-rc crash on vsmp due to paravirt during module load + * sched: fix init_hrtick() section mismatch warning + * clockevents: prevent cpu online to interfere with nohz + * x86: prevent stale state of c1e_mask across CPU offline/online + * clockevents: prevent stale tick_next_period for onlining CPUs + * clockevents: check broadcast device not tick device + * clockevents: prevent mode mismatch on cpu online + * x86: prevent C-states hang on AMD C1E enabled machines + * x86: c1e_idle: don't mark TSC unstable if CPU has invariant TSC + * timers: fix build error in !oneshot case + * ALSA: ASoC: maintainers - update email address for Liam Girdwood + * ibmasr: remove unnecessary spin_unlock() + * smb.h: do not include linux/time.h in userspace + * kernel-doc: allow structs whose members are all private + * kexec: fix segmentation fault in kimage_add_entry + * Documentation/DMA-mapping.txt: update for pci_dma_mapping_error() + changes + * sys_paccept: disable paccept() until API design is resolved + * mm: tiny-shmem fix lock ordering: mmap_sem vs i_mutex + * Documentation/sysctl/kernel.txt: fix softlockup_thresh description + * memcg: check under limit at shrink_usage + * atmel_serial: update the powersave handler to match serial core + * [SCSI] Fix hang with split requests + * USB Storage: Sierra: Non-configurable TRU-Install + * USB Serial: Sierra: Device addition & version rev + * USB: ehci: fix some ehci hangs and crashes + * USB: Fix the Nokia 6300 storage-mode. + * USB: Correct Sierra Wireless USB EVDO Modem Device ID + * USB: fix hcd interrupt disabling + * USB: update of Documentation/usb/anchors.txt + * usb gadget: fix omap_udc DMA regression + * USB: Fixing Nokia 3310c in storage mode + * usb: musb: fix include path + * USB: fix EHCI periodic transfers + * usb-serial: Add Siemens EF81 to PL-2303 hack triggers + * USB: SERIAL CP2101 add device IDs + * USB: unusual_devs addition for RockChip MP3 player + * USB: fsl_usb2_udc: fix VDBG() format string + * usb serial: ti_usb_3410_5052 obviously broken by firmware changes + * USB: ftdi_sio: Add 0x5050/0x0900 USB IDs (Papouch Quido USB 4/4) + * USB: serial: add ZTE CDMA Tech id to option driver + * USB Serial: Sierra: Add MC8785 VID/PID + * USB: drivers/usb/musb/: disable it on SuperH + * usb: ftdi_sio: add support for Domintell devices + * usb: unusual devs patch for Nokia 5310 Music Xpress + * USB: revert recovery from transient errors + * [MIPS] au1000: Fix gpio direction + * [MIPS] Fixe the definition of PTRS_PER_PGD + * x86: prevent stale state of c1e_mask across CPU offline/online, fix + * x86: disable apm on the olpc + * i2c-powermac: Fix section for probe and remove functions + * i2c-dev: Return correct error code on class_create() failure + * i2c: Fix mailing lists in two MAINTAINERS entries + * ath9k: disable MIB interrupts to fix interrupt storm + * 9p: implement proper trans module refcounting and unregistration + * 9p-trans_fd: fix trans_fd::p9_conn_destroy() + * 9p-trans_fd: clean up p9_conn_create() + * 9p-trans_fd: don't do fs segment mangling in p9_fd_poll() + * 9p-trans_fd: fix and clean up module init/exit paths + * 9p: introduce missing kfree + * 9p: use an IS_ERR test rather than a NULL test + * 9p: fix put_data error handling + * netfilter: ip6t_{hbh,dst}: Rejects not-strict mode on rule insertion + * MN10300: Move asm-arm/cnt32_to_63.h to include/linux/ + * MN10300: Make sched_clock() report time since boot + * ALSA: fix locking in snd_pcm_open*() and snd_rawmidi_open*() + * ALSA: remove unneeded power_mutex lock in snd_pcm_drop + * IPoIB: Fix crash when path record fails after path flush + * [XFS] Fix extent list corruption in xfs_iext_irec_compact_full(). + * [XFS] Remove xfs_iext_irec_compact_full() + * kgdb: could not write to the last of valid memory with kgdb + * kgdb, x86, arm, mips, powerpc: ignore user space single stepping + * kgdb, x86_64: gdb serial has BX and DX reversed + * kgdb, x86_64: fix PS CS SS registers in gdb serial + * kgdboc,tty: Fix tty polling search to use name correctly + * ARM: Delete ARM's own cnt32_to_63.h + * m32r: remove the unused NOHIGHMEM option + * m32r: don't offer CONFIG_ISA + * m32r: export empty_zero_page + * m32r: export __ndelay + * m32r/kernel/: cleanups + * [MIPS] au1000: Make sure GPIO value is zero or one + * [MIPS] IP27: Switch to dynamic interrupt routing avoding panic on + error. + * [MIPS] BCM47xx: Fix build error due to missing PCI functions + * [SSB] Initialise dma_mask for SSB_BUSTYPE_SSB devices + * Swarm: Fix crash due to missing initialization + * ide-tape: fix vendor strings + * ide: note that IDE generic may prevent other drivers from attaching + * cdrom: update ioctl documentation + * [SCSI] qlogicpti: fix sg list traversal error in continuation entries + * sata_nv: reinstate nv_hardreset() for non generic controllers + * scsi: fix fall out of sg-chaining patch in qlogicpti + * ALSA: make the CS4270 driver a new-style I2C driver + * ALSA: ASoC: Fix another cs4270 error path + * Fix NULL pointer dereference in proc_sys_compare + * kconfig: fix silentoldconfig + * kconfig: readd lost change count + * mm owner: fix race between swapoff and exit + * Linux 2.6.27-rc8 + * e1000e: write protect ICHx NVM to prevent malicious write/erase + + -- Amit Kucheria Tue, 30 Sep 2008 18:22:35 +0300 + +linux (2.6.27-4.7) intrepid; urgency=low + + [ Ben Collins ] + + * build/abi: Add gfs1 to perm blacklist + * build/abi: Ignored changes in gfs2 symbols + + [ Fabio M. Di Nitto ] + + * Revert "SAUCE: Export gfs2 symbols required for gfs1 kernel module" + * ubuntu: update GFS Cluster File System + + [ Stefan Bader ] + + * SAUCE: x86: Reserve FIRST_DEVICE_VECTOR in used_vectors bitmap. + - LP: #276334 + + [ Tim Gardner ] + + * Revert "Disable e1000e until the NVRAM corruption problem is found." + * Add atl1e and atl2 to Debian installer bits + - LP: #273904 + * SAUCE: e1000e: Map NV RAM dynamically only when needed. + - LP: #263555 + + -- Tim Gardner Fri, 26 Sep 2008 20:51:22 -0600 + +linux (2.6.27-4.6) intrepid; urgency=low + + [ Tim Gardner ] + + * Disable e1000e until the NVRAM corruption problem is found. + - LP: #263555 + + [ Upstream Kernel Changes ] + + * Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ + handler" + + -- Ben Collins Tue, 23 Sep 2008 09:53:57 -0400 + +linux (2.6.27-4.5) intrepid; urgency=low + + [ Upstream Kernel Changes ] + + * Revert "b43/b43legacy: add RFKILL_STATE_HARD_BLOCKED support" + * udf: Fix lock inversion between iprune_mutex and alloc_mutex (v2) + * udf: Fix error paths in udf_new_inode() + * [SCSI] sd: select CRC_T10DIF only when necessary + * [SCSI] zfcp: Fix request queue locking + * [SCSI] zfcp: Correctly query end flag in gpn_ft response + * [SCSI] zfcp: Simplify ccw notify handler + * [SCSI] zfcp: Fix reference counter for remote ports + * [SCSI] zfcp: channel cannot be detached due to refcount imbalance + * [SCSI] zfcp: Remove duplicated unlikely() macros. + * [SCSI] scsi_dh: make check_sense return ADD_TO_MLQUEUE + * [SCSI] make scsi_check_sense HARDWARE_ERROR return ADD_TO_MLQUEUE on + retry + * [SCSI] fix check of PQ and PDT bits for WLUNs + * pcm037: add rts/cts support for serial port + * i.MX serial: fix init failure + * imx serial: set RXD mux bit on i.MX27 and i.MX31 + * imx serial: fix rts handling for non imx1 based hardware + * mlx4_core: Set RAE and init mtt_sz field in FRMR MPT entries + * udf: add llseek method + * PCI/iommu: blacklist DMAR on Intel G31/G33 chipsets + * PCI: Fix printk warnings in probe.c + * PCI: Fix printk warnings in setup-bus.c + * PCI Hotplug: fakephp: fix deadlock... again + * clockevents: remove WARN_ON which was used to gather information + * ocfs2: Fix a bug in direct IO read. + * arch/x86/kernel/kdebugfs.c: introduce missing kfree + * [IA64] fix compile failure with non modular builds + * [IA64] fix up bte.h + * [IA64] arch/ia64/sn/pci/tioca_provider.c: introduce missing kfree + * PCI: fix pciehp_free_irq() + * [IA64] prevent ia64 from invoking irq handlers on offline CPUs + * ide: Fix pointer arithmetic in hpt3xx driver code (3rd try) + * add deprecated ide-scsi to feature-removal-schedule.txt + * swiotlb: fix back-off path when memory allocation fails + * sparc64: Fix interrupt register calculations on Psycho and Sabre. + * VIDEO_SH_MOBILE_CEU should depend on HAS_DMA + * m68k: Update defconfigs for 2.6.27-rc6 + * sparc32: Fix function signature of of_bus_sbus_get_flags(). + * sched: fix 2.6.27-rc5 couldn't boot on tulsa machine randomly + * sched: fix deadlock in setting scheduler parameter to zero + * KVM: SVM: fix random segfaults with NPT enabled + * KVM: SVM: fix guest global tlb flushes with NPT + * KVM: VMX: Always return old for clear_flush_young() when using EPT + * clocksource, acpi_pm.c: fix check for monotonicity + * [ARM] OMAP: Fix MMC device data + * block: disable sysfs parts of the disk command filter + * ath9k: Assign seq# when mac80211 requests this + * sg: disable interrupts inside sg_copy_buffer + * MN10300: Change the fault handler to check in_atomic() not + in_interrupt() + * [Bluetooth] Fix regression from using default link policy + * netlink: fix overrun in attribute iteration + * x86: fix possible x86_64 and EFI regression + * sparc64: Fix PCI error interrupt registry on PSYCHO. + * sparc: Fix user_regset 'n' field values. + * niu: panic on reset + * PCI: re-add debug prints for unmodified BARs + * [ARM] 5245/1: Fix warning about unused return value in drivers/pcmcia + * [ARM] 5246/1: tosa: add proper clock alias for tc6393xb clock + * [ARM] 5247/1: tosa: SW_EAR_IN support + * [ARM] Fix PCI_DMA_BUS_IS_PHYS for ARM + * ata: duplicate variable sparse warning + * sata_inic162x: enable LED blinking + * [libata] LBA28/LBA48 off-by-one bug in ata.h + * proc: more debugging for "already registered" case + * include/linux/ioport.h: add missing macro argument for devm_release_* + family + * cpuset: avoid changing cpuset's cpus when -errno returned + * cpuset: hotplug documentation fix + * coredump_filter: add description of bit 4 + * bfs: fix Lockdep warning + * mm: ifdef Quicklists in /proc/meminfo + * spi_mpc83xx: fix clockrate calculation for low speed + * spi_mpc83xx: reject invalid transfer sizes + * pxa2xx_spi: chipselect bugfixes + * pxa2xx_spi: dma bugfixes + * mm: mark the correct zone as full when scanning zonelists + * Documentation/ABI: /sys/class/gpio + * MAINTAINERS: fix USB VIDEO CLASS mail list address + * ia64: fix panic during `modprobe -r xpc' + * atmel_lcdfb: disable LCD and DMA engines when suspending + * spi_s3c24xx: fix section warning + * rescan_partitions(): make device capacity errors non-fatal + * memstick: fix MSProHG 8-bit interface mode support + * Add Uwe Kleine-König to .mailmap + * xen: fix for xen guest with mem > 3.7G + * x86/paravirt: Remove duplicate paravirt_pagetable_setup_{start, done}() + * crypto: talitos - Avoid consecutive packets going out with same IV + * slub: fixed uninitialized counter in struct kmem_cache_node + * udp: Fix rcv socket locking + * IB/mlx4: Fix up fast register page list format + * [MIPS] VR41xx: unsigned irq cannot be negative + * x86: completely disable NOPL on 32 bits + * [S390] cio: Fix driver_data handling for ccwgroup devices. + * [S390] cio: fix orb initialization in cio_start_key + * sparc64: Fix OOPS in psycho_pcierr_intr_other(). + * sparc64: Fix SMP bootup with CONFIG_STACK_DEBUG or ftrace. + * RDMA/nes: Fix client side QP destroy + * IPoIB: Fix deadlock on RTNL between bcast join comp and ipoib_stop() + * clockevents: make device shutdown robust + * powerpc: Fix interrupt values for DMA2 in MPC8610 HPCD device tree + * hpplus: fix build regression + * Fix PNP build failure, bugzilla #11276 + * warn: Turn the netdev timeout WARN_ON() into a WARN() + * [XFS] Move memory allocations for log tracing out of the critical path + * [XFS] Fix regression introduced by remount fixup + * [XFS] Prevent direct I/O from mapping extents beyond eof + * [XFS] Fix barrier status change detection. + * [XFS] Prevent lockdep false positives when locking two inodes. + * [XFS] Fix use-after-free with buffers + * [XFS] Don't do I/O beyond eof when unreserving space + * powerpc: Holly board needs dtbImage target + * Fix compile failure with non modular builds + * [ARM] 5249/1: davinci: remove redundant check in davinci_psc_config() + * [ARM] omap: back out 'internal_clock' support + * sctp: set the skb->ip_summed correctly when sending over loopback. + * [ARM] 5255/1: Update jornada ssp to remove build errors/warnings + * sctp: do not enable peer features if we can't do them. + * sctp: Fix oops when INIT-ACK indicates that peer doesn't support AUTH + * bnx2: Promote vector field in bnx2_irq structure from u16 to unsigned + int + * forcedeth: call restore mac addr in nv_shutdown path + * e1000: prevent corruption of EEPROM/NVM + * e100: Use pci_pme_active to clear PME_Status and disable PME# + * md: Don't wait UNINTERRUPTIBLE for other resync to finish + * atstk1000: fix build breakage with BOARD_ATSTK100X_SW2_CUSTOM=y + * avr32: add .gitignore files + * avr32: add generic_find_next_le_bit bit function + * avr32: fix sys_sync_file_range() call convention + * avr32: nmi_enter() without nmi_exit() + * KVM: ia64: 'struct fdesc' build fix + * hwmon: (atxp1) Fix device detection logic + * hwmon: (it87) Fix fan tachometer reading in IT8712F rev 0x7 (I) + * hwmon: (ad7414) Make ad7414_update_device() static + * tmio_mmc: fix compilation with debug enabled + * atmel-mci: debugfs: enable clock before dumping regs + * atmel-mci: Fix memory leak in atmci_regs_show + * atmel-mci: Fix bogus debugfs file size + * atmel-mci: Set MMC_CAP_NEEDS_POLL if no detect_pin + * mmc_block: handle error from mmc_register_driver() + * mmc_test: initialize mmc_test_lock statically + * [MIPS] Fix 64-bit IP checksum code + * [MIPS] SMTC: Clear TIF_FPUBOUND on clone / fork. + * [MIPS] Fix potential latency problem due to non-atomic cpu_wait. + * [MIPS] vmlinux.lds.S: handle .text.* + * MAINTAINERS: Trivial whitespace cleanups + * MAINTAINERS: Various fixes + * Linux 2.6.27-rc7 + + -- Tim Gardner Sun, 21 Sep 2008 21:49:28 -0600 + +linux (2.6.27-3.4) intrepid; urgency=low + + [ Colin Ian King ] + + * SAUCE: fix kernel oops in VirtualBox during paravirt patching + - LP: #246067 + * SAUCE: qc-usb: Enable Logitech QuickCam Messenger + - LP: #209901 + * SAUCE: appleir: Enable driver for new MacBook Pro + - LP: #157919 + + [ Tim Gardner ] + + * Enabled CONFIG_DEBUG_RODATA=y + + [ Upstream Kernel Changes ] + + * Revert "ALSA: hda - Added model selection for iMac 24"" + * Revert "x86: fix HPET regression in 2.6.26 versus 2.6.25, check hpet + against BAR, v3" + * Revert "[ARM] use the new byteorder headers" + * Revert "mac80211: Use IWEVASSOCREQIE instead of IWEVCUSTOM" + * Revert "crypto: camellia - Use kernel-provided bitops, unaligned access + helpers" + * svcrdma: Fix race between svc_rdma_recvfrom thread and the dto_tasklet + * sched, cpuset: rework sched domains and CPU hotplug handling (v4) + * ACPI: Fix now signed module parameter. + * ACPI: Change package length error to warning + * ACPI: Fix now signed module parameter. + * ACPI: Fix typo in "Disable MWAIT via DMI on broken Compal board" + * acpi: add checking for NULL early param + * UBIFS: fix zero-length truncations + * Input: bcm5974 - add maintainer entry + * sh64: re-add the __strnlen_user() prototype + * sh: fix ptrace_64.c:user_disable_single_step() + * PNPACPI: ignore the producer/consumer bit for extended IRQ descriptors + * UBIFS: always read hashed-key nodes under TNC mutex + * UBIFS: allow for racing between GC and TNC + * [CIFS] Fix plaintext authentication + * sparc32: Implement smp_call_function_single(). + * sh: crash kernel resource fix + * sh: fix kexec entry point for crash kernels + * sh: fix platform_resource_setup_memory() section mismatch + * sh: update Migo-R defconfig + * sh: update AP325RXA defconfig + * sh: fix semtimedop syscall + * cifs: fix O_APPEND on directio mounts + * [CIFS] update cifs change log + * [CIFS] Turn off Unicode during session establishment for plaintext + authentication + * ACPI: thinkpad-acpi: wan radio control is not experimental + * sparc: Fix resource flags for PCI children in OF device tree. + * remove blk_register_filter and blk_unregister_filter in gendisk + * ALSA: oxygen: fix distorted output on AK4396-based cards + * ipv6: When we droped a packet, we should return NET_RX_DROP instead of + 0 + * pkt_sched: Fix locking of qdisc_root with qdisc_root_sleeping_lock() + * net: Unbreak userspace usage of linux/mroute.h + * Don't trigger softlockup detector on network fs blocked tasks + * Resource handling: add 'insert_resource_expand_to_fit()' function + * sparc64: setup_valid_addr_bitmap_from_pavail() should be __init + * UBIFS: do not update min_idx_lebs in stafs + * UBIFS: push empty flash hack down + * UBIFS: remove incorrect index space check + * UBIFS: improve statfs reporting + * UBIFS: fix assertion + * UBIFS: add forgotten gc_idx_lebs component + * UBIFS: introduce LEB overhead + * UBIFS: improve statfs reporting even more + * UBIFS: fill f_fsid + * drm/radeon: downgrade debug message from info to debug. + * Remove invalidate_partition call from do_md_stop. + * Fix problem with waiting while holding rcu read lock in md/bitmap.c + * ALSA: hda: Distortion fix for dell_m6_core_init + * ALSA: ASoC: fix pxa2xx-i2s clk_get call + * block: restore original behavior of /proc/partition when there's no + partition + * debugobjects: fix lockdep warning + * avr32: Fix lockup after Java stack underflow in user mode + * avr32: pm_standby low-power ram bug fix + * nfsd: fix compound state allocation error handling + * sunrpc: fix possible overrun on read of /proc/sys/sunrpc/transports + * nfsd: fix buffer overrun decoding NFSv4 acl + * audit: Moved variable declaration to beginning of function + * Fix modules_install on RO nfs-exported trees. + * Remove '#include ' from mm/page_isolation.c + * dabusb_fpga_download(): fix a memory leak + * [MTD] mtdchar.c: Fix regression in MEMGETREGIONINFO ioctl() + * ALSA: hda - Fix ALC663 auto-probe + * ALSA: hda - Add mic-boost controls to ALC662/663 auto configuration + * Un-break printk strings in x86 PCI probing code + * kernel/resource.c: fix new kernel-doc warning + * softlockup: minor cleanup, don't check task->state twice + * fix typo in arch/parisc/hpux/fs.c + * m68k: atari_keyb_init operator precedence fix + * ACPI: Fix typo in "Disable MWAIT via DMI on broken Compal board" + * don't diff generated firmware files + * IDE: compile fix for sff_dma_ops + * IDE: palm_bk3710: fix compile warning for unused variable + * ide: fix hwif_to_node() + * palm_bk3710: improve IDE registration + * ide-disk: remove stale init_idedisk_capacity() documentation + * ide/Kconfig: mark ide-scsi as deprecated + * net/wireless/Kconfig: clarify the description for + CONFIG_WIRELESS_EXT_SYSFS + * iwlwifi: do not use GFP_DMA in iwl_tx_queue_init + * iwlwifi: workaround interrupt handling no some platforms + * iwlwifi: fix apm_stop (wrong bit polarity for FLAG_INIT_DONE) + * iwlwifi: fix 64bit platform firmware loading + * orinoco: Multicast to the specified addresses + * wireless/libertas/if_cs.c: fix memory leaks + * mac80211: Fix debugfs union misuse and pointer corruption + * rt2x00: Compiler warning unmasked by fix of BUILD_BUG_ON + * ath9k: Incorrect key used when group and pairwise ciphers are + different. + * ath9: Fix ath_rx_flush_tid() for IRQs disabled kernel warning message. + * net/xfrm: Use an IS_ERR test rather than a NULL test + * ipv: Re-enable IP when MTU > 68 + * NTFS: update homepage + * mm: make setup_zone_migrate_reserve() aware of overlapping nodes + * VFS: fix dio write returning EIO when try_to_release_page fails + * acer-wmi: remove debugfs entries upon unloading + * mm/bootmem: silence section mismatch warning - + contig_page_data/bootmem_node_data + * MAINTAINERS: add a maintainer for the BCM5974 multitouch driver + * 8250: improve workaround for UARTs that don't re-assert THRE correctly + * mmc: at91_mci: don't use coherent dma buffers + * pid_ns: zap_pid_ns_processes: fix the ->child_reaper changing + * pid_ns: (BUG 11391) change ->child_reaper when init->group_leader exits + * cirrusfb: check_par fixes + * devcgroup: fix race against rmdir() + * mm: show quicklist usage in /proc/meminfo + * mm: size of quicklists shouldn't be proportional to the number of CPUs + * ipc: document the new auto_msgmni proc file + * hp-wmi: update to match current rfkill semantics + * hp-wmi: add proper hotkey support + * tdfxfb: fix SDRAM memory size detection + * tdfxfb: fix frame buffer name overrun + * rtc_time_to_tm: fix signed/unsigned arithmetic + * ibft: fix target info parsing in ibft module + * sysfs: document files in /sys/firmware/sgi_uv/ + * rtc-cmos: wake again from S5 + * pm_qos_requirement might sleep + * drivers/char/random.c: fix a race which can lead to a bogus BUG() + * ipsec: Fix deadlock in xfrm_state management. + * [x86] Fix TSC calibration issues + * tipc: Don't use structure names which easily globally conflict. + * sparc64: Fix IPI call locking. + * [ARM] omap: fix gpio.c build error + * sparc64: Prevent sparc64 from invoking irq handlers on offline CPUs + * powerpc: Fix uninitialised variable in VSX alignment code + * powerpc: Only make kernel text pages of linear mapping executable + * powerpc: Make sure _etext is after all kernel text + * powerpc: Work around gcc's -fno-omit-frame-pointer bug + * powerpc: Fix build error with 64K pages and !hugetlbfs + * powerpc: Fix for getting CPU number in power_save_ppc32_restore() + * UBIFS: amend f_fsid + * net/usb/pegasus: avoid hundreds of diagnostics + * ixgbe: initialize interrupt throttle rate + * pcnet-cs, axnet_cs: add new IDs, remove dup ID with less info + * netxen: Remove workaround for chipset quirk + * Split up PIT part of TSC calibration from native_calibrate_tsc + * iwlwifi: W/A for the TSF correction in IBSS + * iwlwifi: fix hidden ssid discovery in passive channels + * iwlwifi: remove false rxon if rx chain changes + * iwlwifi: fix station mimo power save values + * iwlwifi: fix rx_chain computation + * iwlwifi: fix Tx cmd memory allocation failure handling + * iwlwifi: call apm stop on exit + * iwlwifi: fix STATUS_EXIT_PENDING is not set on pci_remove + * ath9k: Fix TX status reporting + * ath9k: Fix TX control flag use for no ACK and RTS/CTS + * V4L/DVB (8555): au8522: add mechanism to configure IF frequency for vsb + and qam + * V4L/DVB (8556): au0828: add support for Hauppauge Woodbury + * V4L/DVB (8598): au8522: clean up function au8522_set_if + * V4L/DVB (8599): au8522: remove if frequency settings from vsb/qam + modulation tables + * V4L/DVB (8600): au0828: explicitly set 6 MHz IF frequency in + hauppauge_hvr950q_config + * V4L/DVB (8629): v4l2-ioctl: do not try to handle private V4L1 ioctls + * V4L/DVB (8633): ivtv: update ivtv version number + * V4L/DVB (8648): ivtv: improve CC support + * V4L/DVB (8660): gspca: Simplify the scan of URB packets in pac7311. + * V4L/DVB (8661): gspca: Bug in the previous changeset about pac7311. + * V4L/DVB (8663): gspca: Webcam 0c45:6128 added in sonixj. + * V4L/DVB (8664): gspca: The bridge/sensor of the webcam 093a:2621 is a + PAC 7302. + * V4L/DVB (8665): gspca: Fix the 640x480 resolution of the webcam + 093a:2621. + * V4L/DVB (8666): gspca: Bad scanning of frames in pac7311. + * V4L/DVB (8667): gspca: Bad probe of Z-Star/Vimicro webcams with pas106 + sensor. + * V4L/DVB (8668): gspca: Conflict GSPCA / ET61X251 for the webcam + 102c:6251. + * V4L/DVB (8669): gspca: Add white balance control for spca561 rev 012A. + * V4L/DVB (8671): gspca: Remove the unused field 'dev_name' of the device + structure. + * V4L/DVB (8672): gspca: Big rewrite of spca561. + * V4L/DVB (8673): gspca: Bad frame scanning again and bad init in + pac7311. + * V4L/DVB (8674): gspca: Webcam 0c45:612e added in sonixj. + * V4L/DVB (8675): gspca: Pixmap PJPG (Pixart 73xx JPEG) added, generated + by pac7311. + * V4L/DVB (8678): Remove the dead CONFIG_RADIO_MIROPCM20{,_RDS} code + * V4L/DVB (8681): v4l2-ioctl.c: fix warning + * V4L/DVB (8682): V4L: fix return value of register video func + * V4L/DVB (8701): cx18: Add missing lock for when the irq handler + manipulates the queues + * V4L/DVB (8703): gspca: Do controls work for spca561 revision 12a. + * V4L/DVB (8705): gspca: Adjust some control limits in spca561. + * V4L/DVB (8706): Make contrast and brightness work for pac7302. + * V4L/DVB (8707): gspca: Colors, hflip and vflip controls added for + pac7302. + * V4L/DVB (8709): gspca: Fix initialization and controls of sn9x110 - + ov7630. + * V4L/DVB (8710): gspca: Bad color control in sonixj. + * V4L/DVB (8711): gspca: Bad controls and quantization table of pac7311. + * V4L/DVB (8712): gspca: Bad start of sonixj webcams since changeset + a8779025e7e8. + * V4L/DVB (8713): gspca: Bad color control again in sonixj. + * V4L/DVB (8714): gspca: Bad start of sn9c110 and sensor om6802. + * V4L/DVB (8715): gspca: Change the name of some webcam in the gspca doc. + * V4L/DVB (8716): gspca: Bad start of sn9c110 and sensor ov7630. + * V4L/DVB (8717): gspca: Frame buffer too small for small resolutions + (sonixj and t613). + * V4L/DVB (8718): gspca: suspend/resume added. + * V4L/DVB (8719): gspca: Have VIDIOC_QUERYCTRL more compliant to the + spec. + * V4L/DVB (8720): gspca: V4L2_CAP_SENSOR_UPSIDE_DOWN added as a cap for + some webcams. + * V4L/DVB (8722): sms1xxx: fix typo in license header + * V4L/DVB (8726): link tuner before saa7134 + * V4L/DVB (8727): V4L1: make PMS not autoprobe when builtin. + * V4L/DVB (8728): 1-make-pms-not-autoprobe-when-builtin update + * V4L/DVB (8749): Fix error code, when camera is not turned on by sonypi + * V4L/DVB (8750): V4L: check inval in video_register_device_index() + * V4L/DVB (8751): vivi: Fix some issues at vivi register routine + * V4L/DVB (8757): v4l-dvb: fix a bunch of sparse warnings + * V4L/DVB (8769): cx18: Simplify queue flush logic to prevent oops in + cx18_flush_queues() + * V4L/DVB (8778): radio: fix incorrect video_register_device result check + * V4L/DVB (8779): v4l: fix more incorrect video_register_device result + checks + * V4L/DVB (8790): saa7115: call i2c_set_clientdata only when state != + NULL + * V4L/DVB (8803): s5h1409: Enable QAM_AUTO mode + * V4L/DVB (8804): s5h1411: Enable QAM_AUTO mode + * V4L/DVB (8805): Steven Toth email address change + * V4L/DVB (8809): gspca: Revert commit + 9a9335776548d01525141c6e8f0c12e86bbde982 + * V4L/DVB (8810): gspca: Compile error when CONFIG_PM not defined. + * V4L/DVB (8812): gspca: Do pac73xx webcams work. + * V4L/DVB (8813): gspca: Adjust SOF detection for pac73xx. + * V4L/DVB (8814): gspca: Set DISABLED the disabled controls at query + control time. + * V4L/DVB (8815): gspca: Fix problems with disabled controls. + * V4L/DVB (8816): gspca: Set disabled ctrls and fix a register pb with + ovxxxx in sonixb. + * V4L/DVB (8817): gspca: LED and proble changes in sonixb. + * V4L/DVB (8818): gspca: Reinitialize the device on resume. + * V4L/DVB (8819): gspca: Initialize the ov519 at open time and source + cleanup. + * V4L/DVB (8820): gspca: Change initialization and gamma of zc3xx - + pas106. + * V4L/DVB (8822): gspca: Change some subdriver functions for + suspend/resume. + * V4L/DVB (8823): gspca: H and V flips work for ov7670 only in ov519. + * V4L/DVB (8824): gspca: Too much code removed in the suspend/resume + changeset. + * V4L/DVB (8825): gspca: More controls for pac73xx and new webcam + 093a:2624. + * V4L/DVB (8826): gspca: Webcam Labtec 2200 (093a:2626) added in pac7311. + * V4L/DVB (8827): gspca: Stop pac7302 autogain oscillation. + * V4L/DVB (8828): gspca: Set the clock at the end of initialization in + sonixj. + * V4L/DVB (8829): gspca: Have a clean kmalloc-ated buffer for USB + exchanges. + * V4L/DVB (8830): gspca: Move some probe code to the new init function. + * V4L/DVB (8831): gspca: Resolve webcam conflicts between some drivers. + * V4L/DVB (8832): gspca: Bad pixelformat of vc0321 webcams. + * V4L/DVB (8833): gspca: Cleanup the sonixb code. + * V4L/DVB (8834): gspca: Have a bigger buffer for sn9c10x compressed + images. + * V4L/DVB (8835): gspca: Same pixfmt as the sn9c102 driver and raw Bayer + added in sonixb. + * V4L/DVB (8837): dvb: fix I2C adapters name size + * V4L/DVB (8839): dib0700: add comment to identify 35th USB id pair + * V4L/DVB (8840): dib0700: add basic support for Hauppauge Nova-TD-500 + (84xxx) + * V4L/DVB (8842): vivi_release(): fix use-after-free + * V4L/DVB (8843): tda10048_firmware_upload(): fix a memory leak + * V4L/DVB (8844): dabusb_fpga_download(): fix a memory leak + * bnx2x: Accessing un-mapped page + * SELinux: memory leak in security_context_to_sid_core + * x86: add io delay quirk for Presario F700 + * mmap: fix petty bug in anonymous shared mmap offset handling + * x86: Change warning message in TSC calibration. + * PCI: fix pbus_size_mem() resource alignment for CardBus controllers + * [ARM] omap: fix build error in ohci-omap.c + * [ARM] remove unused #include + * ACPI: Make Len Brown the ACPI maintainer again + * fujitsu-laptop: fix regression for P8010 in 2.6.27-rc + * ACPI: Avoid bogus timeout about SMbus check + * acer-wmi: remove debugfs entries upon unloading + * forgotten refcount on sysctl root table + * V4L/DVB (8868): gspca: Support for vga modes with sif sensors in + sonixb. + * V4L/DVB (8869): gspca: Move the Sonix webcams with TAS5110C1B from + sn9c102 to gspca. + * V4L/DVB (8870): gspca: Fix dark room problem with sonixb. + * V4L/DVB (8872): gspca: Bad image format and offset with rev072a of + spca561. + * V4L/DVB (8873): gspca: Bad image offset with rev012a of spca561 and + adjust exposure. + * V4L/DVB (8874): gspca: Adjust hstart for sn9c103/ov7630 and update + usb-id's. + * [ARM] omap: fix virtual vs physical address space confusions + * V4L/DVB (8876): budget: udelay changed to mdelay + * V4L/DVB (8877): b2c2 and bt8xx: udelay to mdelay + * V4L/DVB (8880): PATCH: Fix parents on some webcam drivers + * V4L/DVB (8881): gspca: After 'while (retry--) {...}', retry will be -1 + but not 0. + * powerpc/spufs: Fix multiple get_spu_context() + * powerpc/spufs: Fix race for a free SPU + * Input: bcm5974 - small formatting cleanup + * Input: bcm5974 - improve finger tracking and counting + * Input: bcm5974 - add BTN_TOUCH event for mousedev benefit + * Input: i8042 - make Lenovo 3000 N100 blacklist entry more specific + * sh: resume_kernel fix for kernel oops built with CONFIG_BKL_PREEMPT=y. + * sh64: resume_kernel fix for kernel oops built with + CONFIG_BKL_PREEMPT=y. + * i2c: fix i2c-sh_mobile timing issues + * clockevents: prevent clockevent event_handler ending up handler_noop + * clockevents: prevent endless loop in periodic broadcast handler + * clockevents: enforce reprogram in oneshot setup + * clockevents: prevent multiple init/shutdown + * clockevents: prevent endless loop lockup + * HPET: make minimum reprogramming delta useful + * [MTD] [NAND] tmio_nand: fix base address programming + * Fix conditional export of kvh.h and a.out.h to userspace. + * async_tx: fix the bug in async_tx_run_dependencies + * sched_clock: fix NOHZ interaction + * sched: fix process time monotonicity + * UBIFS: fix division by zero + * UBIFS: make minimum fanout 3 + * [MIPS] Fix data bus error recovery + * [MIPS] Fix WARNING: at kernel/smp.c:290 + * [MIPS] TXx9: Fix txx9_pcode initialization + * [MIPS] TX39xx: Add missing local_flush_icache_range initialization + * [MIPS] Probe initrd header only if explicitly specified + * res_counter: fix off-by-one bug in setting limit + * forcedeth: fix kexec regression + * atmel_lcdfb: fix oops in rmmod when framebuffer fails to register + * tracehook: comment pasto fixes + * drivers/mmc/card/block.c: fix refcount leak in mmc_block_open() + * x86: boot: stub out unimplemented CPU feature words + * x86: add NOPL as a synthetic CPU feature bit + * x86: use X86_FEATURE_NOPL in alternatives + * clockevents: broadcast fixup possible waiters + * x86: HPET fix moronic 32/64bit thinko + * x86: HPET: read back compare register before reading counter + * Fix CONFIG_AC97_BUS dependency + * [ARM] 5241/1: provide ioremap_wc() + * ntp: fix calculation of the next jiffie to trigger RTC sync + * clocksource, acpi_pm.c: use proper read function also in errata mode + * clocksource, acpi_pm.c: check for monotonicity + * x86: delay early cpu initialization until cpuid is done + * x86: move mtrr cpu cap setting early in early_init_xxxx + * sched: arch_reinit_sched_domains() must destroy domains to force + rebuild + * x86, xen: Use native_pte_flags instead of native_pte_val for .pte_flags + * x86: pda_init(): fix memory leak when using CPU hotplug + * x86: cpu_init(): fix memory leak when using CPU hotplug + * powerpc/spufs: Fix possible scheduling of a context to multiple SPEs + * netfilter: nf_conntrack_sip: de-static helper pointers + * netfilter: nf_conntrack_gre: more locking around keymap list + * netfilter: nf_conntrack_gre: nf_ct_gre_keymap_flush() fixlet + * netfilter: nf_conntrack_irc: make sure string is terminated before + calling simple_strtoul + * pkt_sched: Fix qdisc state in net_tx_action() + * powerpc: Fix rare boot build breakage + * ahci, pata_marvell: play nicely together + * sata_mv: add RocketRaid 1720 PCI ID to driver + * ahci: disable PMP for marvell ahcis + * sata_nv: disable hardreset for generic + * libata-sff: kill spurious WARN_ON() in ata_hsm_move() + * pata_sil680: remove duplicate pcim_enable_device + * ahci: RAID mode SATA patch for Intel Ibex Peak DeviceIDs + * [MIPS] IP22: Fix detection of second HPC3 on Challenge S + * xen: fix 2.6.27-rc5 xen balloon driver warnings + * x86: disable static NOPLs on 32 bits + * netns : fix kernel panic in timewait socket destruction + * bridge: don't allow setting hello time to zero + * NFS: Restore missing hunk in NFS mount option parser + * usb: fix null deferences in low level usb serial + * Fix format of MAINTAINERS + * sparc64: Disable timer interrupts in fixup_irqs(). + * [Bluetooth] Fix reference counting during ACL config stage + * [Bluetooth] Enforce correct authentication requirements + * [Bluetooth] Reject L2CAP connections on an insecure ACL link + * [S390] CVE-2008-1514: prevent ptrace padding area read/write in 31-bit + mode + * [S390] cio: Correct cleanup on error. + * [S390] cio: handle ssch() return codes correctly. + * [S390] cio: allow offline processing for disconnected devices + * ipsec: Restore larval states and socket policies in dump + * update Documentation/filesystems/Locking for 2.6.27 changes + * MAINTAINERS: add Atheros maintainer for atlx + * lib: Correct printk %pF to work on all architectures + * x86: fix memmap=exactmap boot argument + * clockevents: remove WARN_ON which was used to gather information + * ipv6: Fix OOPS in ip6_dst_lookup_tail(). + * Linux 2.6.27-rc6 + + -- Ben Collins Tue, 02 Sep 2008 12:45:56 -0400 + +linux (2.6.27-2.3) intrepid; urgency=low + + [ Ben Collins ] + + * build/retag: Make script save .orig of tags for later use + * ubuntu/lirc: Fix device_create call + * build/firmware: Put in-kernel firmware into version specific subdir + - LP: #262115 + * Rebase on linux-2.6 git. + * ABI bump + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: (no-up) Apparmor warning fixes + + [ John Johansen ] + + * SAUCE: (no-up) Proper AppArmor ptrace updates for newer lsm API + + [ Mackenzie Morgan ] + + * SAUCE: Add quirk for ASUS Z37E to make sound audible after resume + - LP: #25896 + + -- Ben Collins Wed, 27 Aug 2008 14:03:05 -0400 + +linux (2.6.27-1.2) intrepid; urgency=low + + [ Amit Kucheria ] + + * SAUCE: make fc transport removal of target configurable + * SAUCE: pm: Config option to disable handling of console during + suspend/resume + + [ Ben Collins ] + + * SAUCE: Lower warning level of some PCI messages + * SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps + * SAUCE: tulip: Let dmfe handle davicom on non-sparc + * SAUCE: tulip: Define ULI PCI ID's + * SAUCE: (no-up) version: Implement version_signature proc file. + * SAUCE: (no-up) connector.h: Add idx/val for drbd + * SAUCE: (no-up) swap: Add notify_swap_entry_free callback for compcache + * SAUCE: drivers: Remove some duplicate device entries in various modules + * SAUCE: (no-up) [AppArmor] merge with upstream subversion r1291 + * SAUCE: apparmor: Update for changes to ptrace lsm hooks + * SAUCE: (no-up) Enable ubuntu extra subdirectory + * SAUCE: applesmc: Add MacBookAir + * SAUCE: (no-up) ACPI: initramfs DSDT override support + * ubuntu: Add drbd module + * ubuntu: Add iscsitarget module + * ubuntu: Add BOM for iscsitarget + * ubuntu: Add squashfs driver + * SAUCE: (no-up) Check for squashfs superblock in initramfs mounting. + * ubuntu: Add aufs module + * ubuntu: Added atl2 driver + * ubuntu: Added et131x driver + * ubuntu: Add dm-raid4-5 driver + * ubuntu: Add ndiswrapper driver + * ubuntu: Added ram backed compressed swap module (compcache) + * ubuntu: Add misc drivers from hardy lum + * ubuntu: Add heci driver 3.2.0.24 + * ubuntu: Add ov511 and bt-sco drivers + * ubuntu: Add acx, prism2_usb wireless drivers + * ubuntu: Add at76 driver to build + * ubuntu: Add fsam7400 sw kill switch driver + * ubuntu: Added qc-usb driver + * ubuntu: e1000e: Upgraded module to 0.4.1.7 + * ubuntu: Added rfkill drivers + * ubuntu: VIA - Add VIA DRM Chrome9 3D engine + * ubuntu: unionfs: Added v1.4 module from hardy + * ubuntu: Add LIRC driver + * ubuntu: Add GFS driver + * ubuntu: New tlsup driver for toshiba laptops + * Update config files + * build/d-i: Remove obsolete dm modules + + [ Chuck Short ] + + * SAUCE: ata: blacklist FUJITSU MHW2160BH PL + + [ Colin Ian King ] + + * ubuntu: Add dm-loop + * SAUCE: Enable speedstep for sonoma processors. + + [ Dennis Noordsij ] + + * SAUCE: Work around ACPI corruption upon suspend on some Dell machines. + + [ Fabio M. Di Nitto ] + + * SAUCE: Export gfs2 symbols required for gfs1 kernel module + + [ Matthew Garrett ] + + * SAUCE: hostap: send events on data interface as well as master + interface + + [ Michael Frey (Senior Manager, MID ] + + * SAUCE: Send HCI_RESET for Broadcomm 2046 + + [ Phillip Lougher ] + + * SAUCE: r8169: disable TSO by default for RTL8111/8168B chipsets. + + [ Stefan Bader ] + + * SAUCE: (no-up) Export dm_disk function of device-mapper + * SAUCE: Restore VT fonts on switch + * SAUCE: mmc: Increase power_up deleay to fix TI readers + + [ Tim Gardner ] + + * SAUCE: Add extra headers to linux-libc-dev + * SAUCE: Catch nonsense keycodes and silently ignore + * SAUCE: Added support for HDAPS on various ThinkPads from Lenovo and IBM + * SAUCE: Guest OS does not recognize a lun with non zero target id on + Vmware ESX Server + * SAUCE: (no-up) Take care of orinoco_cs overlap with hostap_cs + * ubuntu: Add GNBD driver + + -- Ben Collins Sat, 23 Aug 2008 15:48:35 -0400 + +linux (2.6.27-0.0) intrepid; urgency=low + + * Not uploaded, placeholder for new release + + -- Ben Collins Sat, 23 Aug 2008 15:48:35 -0400 + +linux (2.6.26-5.17) intrepid; urgency=low + + [ Ben Collins ] + + * build/abi: Add tosh_smm symbol to blacklist + + -- Ben Collins Fri, 15 Aug 2008 09:29:34 -0400 + +linux (2.6.26-5.16) intrepid; urgency=low + + [ Ben Collins ] + + * Revert "SAUCE: toshiba_acpi: Rewrote most of the proc entry bits." + * Revert "SAUCE: Update toshiba_acpi.c to version 0.19a" + * build/config: Disable in-kernel toshiba driver(s) + * ubuntu/tlsup: New driver for toshiba laptops + * build/config: Enable TLSUP driver + * SAUCE: e1000e: Fix E1000E_ENABLED logic to check for our E1000E_NEW + driver as well + * ubuntu/e1000e: Remove E1000E_ENABLED option in local config + * build/config: Update configs to have E1000E_ENABLED set + * ubuntu/prism2: Remove duplicate device + + [ Fabio M. Di Nitto ] + + * SAUCE: Export gfs2 symbols required for gfs1 kernel module + + [ Stefan Bader ] + + * SAUCE: x86: HPET rework for SB700 + - LP: #255910 + + [ Tim Gardner ] + + * Add GNBD driver + * Enable GNBD driver + * SAUCE: Add GFS driver + * SAUCE: Enable gfs driver configs + * b43: Linksys WMP54G (BCM4306/3) card in a PCI format has an SPROM + coding + + [ Upstream Kernel Changes ] + + * KVM: x86 emulator: emulate clflush + * USB: quirk PLL power down mode + + -- Ben Collins Mon, 11 Aug 2008 13:19:28 -0400 + +linux (2.6.26-5.15) intrepid; urgency=low + + [ Ben Collins ] + + * Revert "SAUCE: Add blacklist support to fix Belkin bluetooth dongle." + - Superceded by upstream changes. + * build/config: New option enabled for uvcvideo + * build/control: Add Vcs-Git meta data to control file + * SAUCE: toshiba_acpi: Rewrote most of the new code + * abi/perm-blacklist: Add emu10k1 driver to blacklist + + [ Upstream Kernel Changes ] + + * pxamci: trivial fix of DMA alignment register bit clearing + * udplite: Protection against coverage value wrap-around + * ipv6: use timer pending + * ipv6: __KERNEL__ ifdef struct ipv6_devconf + * hdlcdrv: Fix CRC calculation. + * quota: fix possible infinite loop in quota code + * isofs: fix minor filesystem corruption + * KVM: VMX: Fix a wrong usage of vmcs_config + * KVM: SVM: fix suspend/resume support + * KVM: mmu_shrink: kvm_mmu_zap_page requires slots_lock to be held + * KVM: VMX: Add ept_sync_context in flush_tlb + * KVM: x86 emulator: Fix HLT instruction + * KVM: MMU: nuke shadowed pgtable pages and ptes on memslot destruction + * KVM: MMU: Fix potential race setting upper shadow ptes on nonpae hosts + * Patch Upstream: x86 ptrace: fix PTRACE_GETFPXREGS error + * rcu: fix rcu_try_flip_waitack_needed() to prevent grace-period stall + * Fix typos from signal_32/64.h merge + * x86 reboot quirks: add Dell Precision WorkStation T5400 + * USB: fix usb serial pm counter decrement for disconnected interfaces + * x86, suspend, acpi: enter Big Real Mode + * markers: fix duplicate modpost entry + * Fix build on COMPAT platforms when CONFIG_EPOLL is disabled + * proc: fix /proc/*/pagemap some more + * cpusets: fix wrong domain attr updates + * x86: fix crash due to missing debugctlmsr on AMD K6-3 + * ide-cd: fix oops when using growisofs + * rtc-at91rm9200: avoid spurious irqs + * vmlinux.lds: move __attribute__((__cold__)) functions back into final + .text section + * ARM: fix fls() for 64-bit arguments + * tcp: Clear probes_out more aggressively in tcp_ack(). + * sparc64: Fix lockdep issues in LDC protocol layer. + * sparc64: Fix cpufreq notifier registry. + * sparc64: Do not define BIO_VMERGE_BOUNDARY. + * iop-adma: fix platform driver hotplug/coldplug + * myri10ge: do not forget to setup the single slice pointers + * myri10ge: do not use mgp->max_intr_slots before loading the firmware + * ALSA: trident - pause s/pdif output + * V4L: cx18: Upgrade to newer firmware & update documentation + * DVB: dib0700: add support for Hauppauge Nova-TD Stick 52009 + * V4L: uvcvideo: Fix a buffer overflow in format descriptor parsing + * V4L: uvcvideo: Use GFP_NOIO when allocating memory during resume + * V4L: uvcvideo: Don't free URB buffers on suspend + * V4L: uvcvideo: Make input device support optional + * V4L: uvcvideo: Add support for Medion Akoya Mini E1210 integrated + webcam + * V4L: saa7134: Copy tuner data earlier to avoid overwriting manual tuner + type + * V4L: cx23885: Bugfix for concurrent use of /dev/video0 and /dev/video1 + * DVB: cx23885: Ensure PAD_CTRL is always reset to a sensible default + * DVB: cx23885: DVB Transport cards using DVB port VIDB/TS1 did not + stream + * DVB: cx23885: Reallocated the sram to avoid concurrent VIDB/C issues + * DVB: cx23885: SRAM changes for the 885 and 887 silicon parts + * x86: fix kernel_physical_mapping_init() for large x86 systems + * eCryptfs: use page_alloc not kmalloc to get a page of memory + * UML - Fix boot crash + * ixgbe: remove device ID for unsupported device + * mpc52xx_psc_spi: fix block transfer + * tmpfs: fix kernel BUG in shmem_delete_inode + * markers: fix markers read barrier for multiple probes + * VFS: increase pseudo-filesystem block size to PAGE_SIZE + * cpufreq acpi: only call _PPC after cpufreq ACPI init funcs got called + already + * b43legacy: Release mutex in error handling code + * ath5k: don't enable MSI, we cannot handle it yet + * Fix off-by-one error in iov_iter_advance() + * Linux 2.6.26.1 + * ftrace: remove unneeded documentation + * romfs_readpage: don't report errors for pages beyond i_size + * netfilter: nf_nat_sip: c= is optional for session + * SCSI: bsg: fix bsg_mutex hang with device removal + * x86: idle process - add checking for NULL early param + * x86: io delay - add checking for NULL early param + * Close race in md_probe + * Kprobe smoke test lockdep warning + * netfilter: xt_time: fix time's time_mt()'s use of do_div() + * linear: correct disk numbering error check + * SCSI: ch: fix ch_remove oops + * NFS: Ensure we zap only the access and acl caches when setting new acls + * jbd: fix race between free buffer and commit transaction + * Input: i8042 - add Intel D845PESV to nopnp list + * Input: i8042 - add Gericom Bellagio to nomux blacklist + * Input: i8042 - add Acer Aspire 1360 to nomux blacklist + * Bluetooth: Signal user-space for HIDP and BNEP socket errors + * Add compat handler for PTRACE_GETSIGINFO + * ALSA: hda - Fix wrong volumes in AD1988 auto-probe mode + * ALSA: hda - Fix DMA position inaccuracy + * ALSA: hda - Add missing Thinkpad Z60m support + * ALSA: emu10k1 - Fix inverted Analog/Digital mixer switch on Audigy2 + * vfs: fix lookup on deleted directory + * Ath5k: fix memory corruption + * Ath5k: kill tasklets on shutdown + * sound: ensure device number is valid in snd_seq_oss_synth_make_info + * Linux 2.6.26.2 + + -- Ben Collins Sun, 03 Aug 2008 13:25:02 -0400 + +linux (2.6.26-5.14) intrepid; urgency=low + + [ Ben Collins ] + + * SAUCE: applesmc: Add MacBookAir + * build: Do not build ddeb unless we are on the buildd + * build: control: Consistency in arch fields. + * SAUCE: Update toshiba_acpi.c to version 0.19a + - LP: #77026 + * build: Added perm blacklist support and per-module support to abi-check + - Blacklist p80211 module from abi checks + * ubuntu/lirc: Get rid of drivers symlink and use real include stuff + + + [ Colin Ian King ] + + * SAUCE: acerhk module - add support for Amilo A1650g keyboard + - LP: #84159 + * SAUCE: rt2x00: Fix OOPS on failed creation of rt2x00lib workqueue + - LP: #249242 + + [ Mario Limonciello ] + + * Add LIRC back in + + [ Tim Gardner ] + + * Makefile race condition can lead to ndiswrapper build failure + - LP: #241547 + * update linux-wlan-ng (prism2_usb) to upstream version 1861 + - LP: #245026 + + [ Upstream Kernel Changes ] + + * Fix typos from signal_32/64.h merge + + -- Ben Collins Fri, 01 Aug 2008 00:05:01 -0400 + +linux (2.6.26-5.13) intrepid; urgency=low + + [ Ben Collins ] + + * build: Make makedumpfile an amd64/i386 only build-dep + * ubuntu/acerhk: Fixup assembly to compile with newer binutils + + -- Ben Collins Sat, 26 Jul 2008 16:41:50 -0400 + +linux (2.6.26-4.12) intrepid; urgency=low + + [ Ben Collins ] + + * e1000e: Upgraded module to 0.4.1.7 upstream. Placed in ubuntu/, + in-kernel driver disabled + * config: Disable e1000e in-kernel, and enable newer driver in ubuntu/ + * rfkill: Update to 1.3 drivers, and move to common location + * ubuntu: Actually link kconfig/kbuild into rfkill subdir + * config: Enable loading dsdt from initramfs + - LP: #246222 + * ubuntu: [compcache] Update to fix crashes in improper BUG() + * build: Create a retag scripts to recover tags from rebases + * build: Updates for dbg pkg + * build: Make sure no empty lines show up in debian/files + * ubuntu: atl1e: Add new driver from 2.6.27-pre-rc1 + - LP: #243894 + * sys_getcwd: Fix some brokeness introduced by AppArmor __d_path + changes + - LP: #251223 + * ubuntu: unionfs: Added v1.4 module from hardy + * build: Add sub-flavour infrastructure, and virtual subflav + + [ Eric Piel ] + + * ACPI: Allow custom DSDT tables to be loaded from initramfs + + [ Kees Cook ] + + * AppArmor: Smack VFS patches + + [ Mario Limonciello ] + + * Work around ACPI corruption upon suspend on some Dell machines. + - LP: #183033 + + [ Tim Gardner ] + + * Export usbhid_modify_dquirk for LBM module bcm5974 + - LP: #250838 + * VIA - Add VIA DRM Chrome9 3D engine + - LP: #251862 + * Define TRUE/FALSE for VIA DRM driver. + + -- Ben Collins Tue, 15 Jul 2008 12:51:39 -0400 + +linux (2.6.26-4.11) intrepid; urgency=low + + [ Ben Collins ] + + * config: Enable bcm5974 driver in all configs + + [ 2.6.26-4.10 ] + + [ Amit Kucheria ] + + * Fix typo in GSPCA Makefile and make it compile + + [ Ben Collins ] + + * ubuntu: Remove UVC driver in favor of in-kernel one (-rc9) + * config: Updates for -rc9 + * ubuntu: Add acx, prism2_usb wireless drivers + * config: Enable prism2_usb and acx drivers. + * ubuntu: Add at76 driver to build + * config: Enable at76_usb driver. + * iscsitarget: Fix prototype for bi_end_io callback. + * acx: Fix section type mismatch warnings + * fsam7400: Add sw kill switch driver + * config: Enable fsam7400 driver + * qc-usb: Added new driver + * config: Enable qc-usb driver + * drbd: Remove built-in connector usage + * drbd: Do not define idx/val for connector here + * connector.h: Add idx/val for drbd + * bcm5974: Added new driver + + [ Kees Cook ] + + * SAUCE: [AppArmor] merge with upstream subversion r1291 + * SAUCE: [AppArmor] fix typo in selinux_inode_link + * SAUCE: [AppArmor] aufs patches + + [ Michael Frey (Senior Manager, MID ] + + * SAUCE: Send HCI_RESET for Broadcomm 2046 + - LP: #241749 + + [ Tim Gardner ] + + * SAUCE: Medion Akoya Mini E1210 + + [ Upstream Kernel Changes ] + + * Revert "BAST: Remove old IDE driver" + * ARM: OMAP: DMA: Don't mark channel active in omap_enable_channel_irq + * ARM: OMAP: Correcting the gpmc prefetch control register address + * debugobjects: fix lockdep warning + * [ARM] 5115/1: pxafb: fix ifdef for command line option handling + * [ARM] 5116/1: pxafb: cleanup and fix order of failure handling + * [ARM] 5109/1: Mark rtc sa1100 driver as wakeup source before + registering it + * [ARM] Export dma_sync_sg_for_device() + * fix cgroup-inflicted breakage in block_dev.c + * [patch for 2.6.26 2/4] vfs: utimensat(): be consistent with utime() for + immutable and append-only files + * [patch for 2.6.26 1/4] vfs: utimensat(): ignore tv_sec if tv_nsec == + UTIME_OMIT or UTIME_NOW + * [patch for 2.6.26 3/4] vfs: utimensat(): fix error checking for + {UTIME_NOW,UTIME_OMIT} case + * [patch for 2.6.26 4/4] vfs: utimensat(): fix write access check for + futimens() + * [patch 1/4] vfs: path_{get,put}() cleanups + * [patch 2/4] fs: make struct file arg to d_path const + * [patch 3/4] vfs: fix ERR_PTR abuse in generic_readlink + * [patch 4/4] flock: remove unused fields from file_lock_operations + * [patch 3/3] vfs: make d_path() consistent across mount operations + * [patch 1/3] vfs: dcache sparse fixes + * [patch 2/3] vfs: dcache cleanups + * udf: Fix regression in UDF anchor block detection + * [SCSI] ses: Fix timeout + * netfilter: ip6table_mangle: don't reroute in LOCAL_IN + * [SCSI] esp: Fix OOPS in esp_reset_cleanup(). + * kernel/audit.c: nlh->nlmsg_type is gotten more than once + * audit: fix kernel-doc parameter notation + * remove useless argument type in audit_filter_user() + * Blackfin arch: fix bug - kernel boot fails when Spinlock and rw-lock + debugging enabled + * Blackfin arch: fix up section mismatch warning + * mac80211: implement EU regulatory domain + * b43: Do not return TX_BUSY from op_tx + * b43legacy: Do not return TX_BUSY from op_tx + * b43: Fix possible MMIO access while device is down + * b43legacy: Fix possible NULL pointer dereference in DMA code + * rt2x00: Fix unbalanced mutex locking + * iwlwifi: improve scanning band selection management + * [SCSI] esp: tidy up target reference counting + * [ARM] 5117/1: pxafb: fix __devinit/exit annotations + * thermal: Create CONFIG_THERMAL_HWMON=n + * ACPI: don't walk tables if ACPI was disabled + * dock: bay: Don't call acpi_walk_namespace() when ACPI is disabled. + * x86: shift bits the right way in native_read_tscp + * x86: section/warning fixes + * V4L/DVB (8004): Fix INPUT dependency at budget-ci + * V4L/DVB (8005): Fix OOPS if frontend is null + * V4L/DVB (8007): cx18/cx25840: the S-Video LUMA input can use all + In1-In8 inputs + * V4L/DVB (8008): cx18: remove duplicate audio and video input enums + * V4L/DVB (8010): em28xx: Properly register extensions for already + attached devices + * V4L/DVB (8011): em28xx: enable DVB for HVR-900 + * V4L/DVB (8012): gl861: sleep a little to avoid I2C errors + * V4L/DVB (8013): gl861: remove useless identify_state + * V4L/DVB (8015): gl861: replace non critical msleep(0) with msleep(1) to + be on the safe side + * V4L/DVB (8017): Ensure em28xx extensions only get run against devs that + support them + * V4L/DVB (8018): Add em2860 chip ID + * V4L/DVB (8020): Fix callbacks functions of saa7134_empress + * V4L/DVB (8022): saa7134: fix race between opening and closing the + device + * V4L/DVB (8026): Avoids an OOPS if dev struct can't be successfully + recovered + * V4L/DVB (8027): saa7134: Avermedia A700: only s-video and composite + input are working + * V4L/DVB (8028): Improve error messages for tda1004x attach + * V4L/DVB (8029): Improve error message at tda1004x_attach + * V4L/DVB (8034): tda18271: fix IF notch frequency handling + * V4L/DVB (8035): tda18271: dont touch EB14 if rf_cal lookup is out of + range + * V4L/DVB (8036): tda18271: toggle rf agc speed mode on TDA18271HD/C2 + only + * V4L/DVB (8037): tda18271: ensure that the thermometer is off during + channel configuration + * V4L/DVB (8039): pxa-camera: fix platform_get_irq() error handling. + * V4L/DVB (8040): soc-camera: remove soc_camera_host_class class + * V4L/DVB (8042): DVB-USB UMT-010 channel scan oops + * V4L/DVB (8043): au0828: add support for additional USB device id's + * V4L/DVB (8044): au8522: tuning optimizations + * V4L/DVB (8048): saa7134: Fix entries for Avermedia A16d and Avermedia + E506 + * V4L/DVB (8061): cx18: only select tuner / frontend modules if + !DVB_FE_CUSTOMISE + * V4L/DVB (8063): cx18: Fix unintended auto configurations in + cx18-av-core + * V4L/DVB (8066): cx18: Fix audio mux input definitions for HVR-1600 Line + In 2 and FM radio + * V4L/DVB (8067): cx18: Fix firmware load for case when digital capture + happens first + * V4L/DVB (8068): cx18: Add I2C slave reset via GPIO upon initialization + * V4L/DVB (8069): cx18: Fix S-Video and Compsite inputs for the Yuan + MPC718 and enable card entry + * V4L/DVB (8071): tda10023: Fix possible kernel oops during + initialisation + * V4L/DVB (8073): av7110: Catch another type of ARM crash + * V4L/DVB (8074): av7110: OSD transfers should not be interrupted + * V4L/DVB (8075): stv0299: Uncorrected block count and bit error rate + fixed + * V4L/DVB (8092): videodev: simplify and fix standard enumeration + * V4L/DVB (8096): au8522: prevent false-positive lock status + * V4L/DVB (8097): xc5000: check device hardware state to determine if + firmware download is needed + * V4L/DVB (8100): V4L/vivi: fix possible memory leak in vivi_fillbuff + * V4L/DVB (8108): Fix open/close race in saa7134 + * s2io: fix documentation about intr_type + * tc35815: Mark carrier-off before starting PHY + * tc35815: Fix receiver hangup on Rx FIFO overflow + * ixgbe: fix EEH recovery during reset on PPC + * igb: fix EEH recovery during reset on PPC + * e1000e: fix EEH recovery during reset on PPC + * pcnet_cs, axnet_cs: clear bogus interrupt before request_irq + * drivers/net/r6040.c: Eliminate double sizeof + * ipg: fix jumbo frame compilation + * ipg: use NULL, not zero, for pointers + * [netdrvr] 3c59x: remove irqs_disabled warning from local_bh_enable + * [netdrvr] netxen: fix netxen_pci_tbl[] breakage + * e100: Do pci_dma_sync after skb_alloc for proper operation on ixp4xx + * e1000: only enable TSO6 via ethtool when using correct hardware + * [netdrvr] Fix IOMMU overflow checking in s2io.c + * qla3xxx: Hold RTNL while calling dev_close() + * Hold RTNL while calling dev_close() + * sata_uli: hardreset is broken + * rt2x00: Fix lock dependency errror + * prism: islpci_eth.c endianness fix + * mac80211: fix an oops in several failure paths in key allocation + * firewire: fw-sbp2: fix parsing of logical unit directories + * kbuild: fix a.out.h export to userspace with O= build. + * Ensure interrupted recovery completed properly (v1 metadata plus + bitmap) + * Don't acknowlege that stripe-expand is complete until it really is. + * Fix error paths if md_probe fails. + * hamradio: remove unused variable + * tcp: calculate tcp_mem based on low memory instead of all memory + * tcp: fix for splice receive when used with software LRO + * af_unix: fix 'poll for write'/connected DGRAM sockets + * netdevice: Fix typo of dev_unicast_add() comment + * pkt_sched: ERR_PTR() ususally encodes an negative errno, not positive. + * pkt_sched: Remove CONFIG_NET_SCH_RR + * include/linux/netdevice.h: don't export MAX_HEADER to userspace + * tcp: /proc/net/tcp rto,ato values not scaled properly (v2) + * netlink: Fix some doc comments in net/netlink/attr.c + * CONNECTOR: add a proc entry to list connectors + * inet fragments: fix race between inet_frag_find and + inet_frag_secret_rebuild + * net/inet_lro: remove setting skb->ip_summed when not LRO-able + * netlabel: Fix a problem when dumping the default IPv6 static labels + * ipv6 route: Convert rt6_device_match() to use RT6_LOOKUP_F_xxx flags. + * sched: fix cpu hotplug + * Fix and clean top .gitignore + * x86: fix cpu hotplug crash + * ptrace GET/SET FPXREGS broken + * Input: add KEY_MEDIA_REPEAT definition + * Input: fix locking in force-feedback core + * [ARM] 5131/1: Annotate platform_secondary_init with trace_hardirqs_off + * ide: fix /proc/ide/ide?/mate reporting + * netfilter: nf_conntrack_tcp: fixing to check the lower bound of valid + ACK + * textsearch: fix Boyer-Moore text search bug + * hostap: don't report useless WDS frames by default + * hostap: fix sparse warnings + * mac80211: don't accept WEP keys other than WEP40 and WEP104 + * V4L/DVB (8145a): USB Video Class driver + * [IA64] Bugfix for system with 32 cpus + * [IA64] export account_system_vtime + * sched: fix divide error when trying to configure rt_period to zero + * x86: fix NODES_SHIFT Kconfig range + * block: Fix the starving writes bug in the anticipatory IO scheduler + * Properly notify block layer of sync writes + * rcu: fix hotplug vs rcu race + * I2C: S3C2410: Check ACK on byte transmission + * I2C: S3C2410: Fixup error codes returned rom a transfer. + * I2C: S3C2410: Add MODULE_ALIAS() for s3c2440 device. + * PCI: Restrict VPD read permission to root + * powerpc/bootwrapper: update for initrd with simpleImage + * i2c: Documentation: fix device matching description + * i2c: Fix bad hint about irqs in i2c.h + * powerpc/legacy_serial: Bail if reg-offset/shift properties are present + * powerpc/mpc5200: Fix lite5200b suspend/resume + * ipv4: fix sysctl documentation of time related values + * net-sched: change tcf_destroy_chain() to clear start of filter list + * net-sched: fix filter destruction in atm/hfsc qdisc destruction + * netlink: Unneeded local variable + * net: Tyop of sk_filter() comment + * netdevice: Fix wrong string handle in kernel command line parsing + * net: fib_rules: fix error code for unsupported families + * dm crypt: use cond_resched + * V4L/DVB (8178): uvc: Fix compilation breakage for the other drivers, if + uvc is selected + * PCI: Limit VPD read/write lengths for Broadcom 5706, 5708, 5709 rev. + * PCI: acpiphp: cleanup notify handler on all root bridges + * drivers/input/ff-core.c needs + * DRM/i915: only use tiled blits on 965+ + * tty: Fix inverted logic in send_break + * x86: fix Intel Mac booting with EFI + * arch/x86/mm/init_64.c: early_memtest(): fix types + * 9p: fix O_APPEND in legacy mode + * slub: Do not use 192 byte sized cache if minimum alignment is 128 byte + * Do not overwrite nr_zones on !NUMA when initialising zlcache_ptr + * [MIPS] IP32: Fix unexpected irq 71 + * [MIPS] IP22: Fix crashes due to wrong L1_CACHE_BYTES + * [MIPS] cevt-txx9: Reset timer counter on initialization + * hrtimer: prevent migration for raising softirq + * svcrpc: fix handling of garbage args + * OHCI: Fix problem if SM501 and another platform driver is selected + * USB: fix cdc-acm resume() + * USB: ehci - fix timer regression + * USB: ohci - record data toggle after unlink + * USB: mass storage: new id for US_SC_CYP_ATACB + * sisusbvga: Fix oops on disconnect. + * USB: New device ID for ftdi_sio driver + * USB: fix interrupt disabling for HCDs with shared interrupt handlers + * USB: don't lose disconnections during suspend + * USB: another option device id + * USB: add a pl2303 device id + * USB: fix Oops on loading ipaq module since 2.6.26 + * USB: adding comment for ipaq forcing number of ports + * [MIPS] Fix bug in atomic_sub_if_positive. + * xen: fix address truncation in pte mfn<->pfn conversion + * sata_sil24: add DID for another adaptec flavor + * ahci: always clear all bits in irq_stat + * libata-sff: improve HSM violation reporting + * sata_mv: safer logic for limit_warnings + * Update maintainers for powerpc + * Christoph has moved + * mm: dirty page accounting vs VM_MIXEDMAP + * rtc: rtc_read_alarm() handles wraparound + * firmware: fix the request_firmware() dummy + * serial: fix serial_match_port() for dynamic major tty-device numbers + * get_user_pages(): fix possible page leak on oom + * rtc-x1205: Fix alarm set + * rtc: fix CMOS time error after writing /proc/acpi/alarm + * pci: VT3336 can't do MSI either + * Miguel Ojeda has moved + * ext3: add missing unlock to error path in ext3_quota_write() + * ext4: add missing unlock to an error path in ext4_quota_write() + * reiserfs: add missing unlock to an error path in reiserfs_quota_write() + * ecryptfs: remove unnecessary mux from ecryptfs_init_ecryptfs_miscdev() + * lib: taint kernel in common report_bug() WARN path. + * gpio: pca953x (i2c) handles max7310 too + * fsl_diu_fb: fix build with CONFIG_PM=y, plus fix some warnings + * Update taskstats-struct document for scaled time accounting + * cciss: fix regression that no device nodes are created if no logical + drives are configured. + * delay accounting: maintainer update + * Doc*/kernel-parameters.txt: fix stale references + * hdaps: add support for various newer Lenovo thinkpads + * mn10300: export certain arch symbols required to build allmodconfig + * mn10300: provide __ucmpdi2() for MN10300 + * Introduce rculist.h + * man-pages is supported + * ntfs: update help text + * add kernel-doc for simple_read_from_buffer and memory_read_from_buffer + * w100fb: do not depend on SHARPSL + * w100fb: add 80 MHz modeline + * MFD maintainer + * cgroups: document the effect of attaching PID 0 to a cgroup + * spi: fix the read path in spidev + * doc: doc maintainers + * security: filesystem capabilities: fix fragile setuid fixup code + * security: filesystem capabilities: fix CAP_SETPCAP handling + * Alpha Linux kernel fails with inconsistent kallsyms data + * cpusets: document proc status cpus and mems allowed lists + * MAINTAINERS: update the email address of Andreas Dilger + * cciss: read config to obtain max outstanding commands per controller + * olpc: sdhci: add quirk for the Marvell CaFe's vdd/powerup issue + * olpc: sdhci: add quirk for the Marvell CaFe's interrupt timeout + * cpumask: introduce new APIs + * mm: switch node meminfo Active & Inactive pages to Kbytes + * Update MAINTAINERS file for the TPM device driver + * devcgroup: fix odd behaviour when writing 'a' to devices.allow + * doc: document the relax_domain_level kernel boot argument + * mmc: don't use DMA on newer ENE controllers + * mempolicy: mask off internal flags for userspace API + * x86 ACPI: normalize segment descriptor register on resume + * x86 ACPI: fix resume from suspend to RAM on uniprocessor x86-64 + * softlockup: print a module list on being stuck + * ide: fix hwif->gendev refcounting + * ide: ide_unregister() warm-plug bugfix + * ide: ide_unregister() locking bugfix + * ahci: give another shot at clearing all bits in irq_stat + * Fix clear_refs_write() use of struct mm_walk + * Move _RET_IP_ and _THIS_IP_ to include/linux/kernel.h + * Fix pagemap_read() use of struct mm_walk + * Linux 2.6.26-rc9 + * Revert "USB: don't explicitly reenable root-hub status interrupts" + * Revert "PCI: Correct last two HP entries in the bfsort whitelist" + * iwlwifi: fix incorrect 5GHz rates reported in monitor mode + * iwlwifi: drop skb silently for Tx request in monitor mode + * libertas: support USB persistence on suspend/resume (resend) + * tcp: net/ipv4/tcp.c needs linux/scatterlist.h + * tcp: fix a size_t < 0 comparison in tcp_read_sock + * bridge: fix use-after-free in br_cleanup_bridges() + * Add missing skb->dev assignment in Frame Relay RX code + * forcedeth: fix lockdep warning on ethtool -s + * ehea: fix might sleep problem + * ehea: add MODULE_DEVICE_TABLE + * ehea: fix race condition + * ehea: Access iph->tot_len with correct endianness + * pasemi_mac: Access iph->tot_len with correct endianness + * ibm_newemac: Fixes kernel crashes when speed of cable connected changes + * ibm_newemac: Fixes entry of short packets + * fs_enet: restore promiscuous and multicast settings in restart() + * can: add sanity checks + * x86: KVM guest: Add memory clobber to hypercalls + * KVM: IOAPIC: Fix level-triggered irq injection hang + * [SCSI] erase invalid data returned by device + * pxamci: fix byte aligned DMA transfers + * vsprintf: split out '%s' handling logic + * vsprintf: split out '%p' handling logic + * vsprintf: add infrastructure support for extended '%p' specifiers + * vsprintf: add support for '%pS' and '%pF' pointer formats + * powerpc: Fix unterminated of_device_id array in legacy_serial.c + * [UML] fix gcc ICEs and unresolved externs + * ocfs2/dlm: Fixes oops in dlm_new_lockres() + * hostap_cs: correct poor NULL checks in suspend/resume routines + * drivers/net/wireless/iwlwifi/iwl-3945.c Fix type issue on 64bit + * mac80211: move netif_carrier_on to after + ieee80211_bss_info_change_notify + * mac80211: Only flush workqueue when last interface was removed + * zd1211rw: add ID for AirTies WUS-201 + * ssb-pcicore: Fix IRQ-vector init on embedded devices + * mac80211: don't report selected IBSS when not found + * crypto: tcrypt - Fix memory leak in test_cipher + * sctp: Mark the tsn as received after all allocations finish + * [S390] protect _PAGE_SPECIAL bit against mprotect + * irda: via-ircc proper dma freeing + * irda: New device ID for nsc-ircc + * irda: Fix netlink error path return value + * [SCSI] mptspi: fix oops in mptspi_dv_renegotiate_work() + * Correct hash flushing from huge_ptep_set_wrprotect() + * ide: add __ide_default_irq() inline helper + * palm_bk3710: fix IDECLK period calculation + * it8213: fix return value in it8213_init_one() + * [MIPS] Atlas, decstation: Fix section mismatches triggered by + defconfigs + * [MIPS] Fix 32bit kernels on R4k with 128 byte cache line size + * NFS: Fix readdir cache invalidation + * SUNRPC: Fix a double-free in rpcbind + * SUNRPC: Fix an rpcbind breakage for the case of IPv6 lookups + * reiserfs: discard prealloc in reiserfs_delete_inode + * Fix broken fix for fsl-diu-db + * RDMA/cxgb3: Fix regression caused by class_device -> device conversion + * ipv6: fix race between ipv6_del_addr and DAD timer + * sctp: Add documentation for sctp sysctl variable + * kernel/printk.c: Made printk_recursion_bug_msg static. + * powerpc: Add missing reference to coherent_dma_mask + * rc80211_pid: Fix fast_start parameter handling + * rt2x00: Disable synchronization during initialization + * zd1211rw: stop beacons on remove_interface + * libertas: fix memory alignment problems on the blackfin + * netfilter: nf_conntrack_tcp: fix endless loop + * netfilter: nf_nat_snmp_basic: fix a range check in NAT for SNMP + * md: ensure all blocks are uptodate or locked when syncing + * sched: fix cpu hotplug + * x86: fix /dev/mem compatibility under PAT + * crypto: chainiv - Invoke completion function + * ocfs2: Fix flags in ocfs2_file_lock + * kernel/kprobes.c: Made kprobe_blacklist static. + * arch/x86/kernel/.gitignore: Added vmlinux.lds to .gitignore file + because it shouldn't be tracked. + * ftrace: Documentation + * Fix PREEMPT_RCU without HOTPLUG_CPU + * sched: fix cpu hotplug, cleanup + * exec: fix stack excutability without PT_GNU_STACK + * slub: Fix use-after-preempt of per-CPU data structure + * Documentation: clarify tcp_{r,w}mem sysctl docs + * ip: sysctl documentation cleanup + * tcp: correct kcalloc usage + * ipv4: fib_trie: Fix lookup error return + * netlabel: netlink_unicast calls kfree_skb on error path by itself + * ipv6: missed namespace context in ipv6_rthdr_rcv + * xfrm: Add a XFRM_STATE_AF_UNSPEC flag to xfrm_usersa_info + * tun: Persistent devices can get stuck in xoff state + * tpm: add Intel TPM TIS device HID + * rapidio: fix device reference counting + * Fix name of Russell King in various comments + * rtc: fix reported IRQ rate for when HPET is enabled + * libata-acpi: filter out DIPM enable + * Added Targa Visionary 1000 IDE adapter to pata_sis.c + * libata-acpi: don't call sleeping function from invalid context + * Fix reference counting race on log buffers + * [SCSI] ipr: Fix HDIO_GET_IDENTITY oops for SATA devices + * IPMI: return correct value from ipmi_write + * x86: fix ldt limit for 64 bit + * [SCSI] fusion: default MSI to disabled for SPI and FC controllers + * [SCSI] bsg: fix oops on remove + * drivers/char/pcmcia/ipwireless/hardware.c fix resource leak + * drivers/isdn/i4l/isdn_common.c fix small resource leak + * fbdev: bugfix for multiprocess defio + * serial8250: sanity check nr_uarts on all paths. + * ov7670: clean up ov7670_read semantics + * rtc-fm3130: fix chip naming + * rtc-pcf8563: add chip id + * OProfile kernel maintainership changes + * frv: fix irqs_disabled() to return an int, not an unsigned long + * cifs: fix inode leak in cifs_get_inode_info_unix + * cifs: fix wksidarr declaration to be big-endian friendly + * cpusets, hotplug, scheduler: fix scheduler domain breakage + * Documentation/HOWTO: correct wrong kernel bugzilla FAQ URL + * devcgroup: always show positive major/minor num + * devcgroup: fix permission check when adding entry to child cgroup + * Linux 2.6.26 + + -- Ben Collins Mon, 14 Jul 2008 13:41:50 -0400 + +linux (2.6.26-3.9) intrepid; urgency=low + + * abi: Add dca and ioatdma to modules.ignore + + [ 2.6.26-3.8 ] + + [ Ben Collins ] + + * ubuntu: Add heci driver 3.2.0.24 + * ubuntu: Add heci to kconfig/kbuild + * config: Enable heci module on all flavours + * dm-bbr: Update to get it to compile with 2.6.26 + * config: Enable dm-bbr + * ubuntu: Add some media drivers + * config: Enable misc media drivers + * udeb: Switch to uvesafb in fb-modules + * abi: Add more modules to ignore (known) + + [ 2.6.26-3.7 ] + + [Amit Kucheria] + + * SAUCE: make fc transport removal of target configurable + - LP: #163075 + * SAUCE: pm: Config option to disable handling of console during + suspend/resume + + [Ben Collins] + + * SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps + * SAUCE: irda: Default to dongle type 9 on IBM hardware + * SAUCE: tulip: Let dmfe handle davicom on non-sparc + * SAUCE: tulip: Define ULI PCI ID's + * SAUCE: version: Implement version_signature proc file. + * build: Cleanup arches + * build: Remove remnants of unused binary-custom infrastructure + * build: Remove disable_d_i (not needed) and cleanup ppa build stuff + * ubuntu: New modules, acer-acpi + * build: Remove -virtual, and rebuild configs + * ubuntu: Add drbd module + * acer-acpi: Fix makefile + * x86/Kconfig: Fix missing quote for ubuntu Kconfig source + * ubuntu: Add iscsitarget module + * ubuntu: Added Amiga FS driver + * ubuntu: Add squashfs driver + * ubuntu: Remove asfs (Amiga FS). Need to be in linux-ports instead + * squashfs: Move headers to real include directory + * build/configs: The Great Config Consistency Check of 2008 + * ubuntu: Move third-party includes to ubuntu/include + * ubuntu: Add aufs module + * ubuntu: Added atl2 driver + * ubuntu: Add dm-radi4-5 driver + * build: Add CONFIG_DEBUG_SECTION_MISMATCH=y to get old style warnings + from build + * ubuntu/Makefile: Fixup dm-raid4-5 and add kludge for kbuild + * squashfs: Fixes for VFS changes + * ubuntu/dm-raid4-5: Fixups for moved/renamed headers/functions in core + md + * ubuntu: Add ndiswrapper driver + * d-i: Update module listings + * build: Disable xd block device (ancient) + * ndiswrapper: Fixup makefile + * d-i: Remove efi-modules. The only module, efivars, is built-in + * build: Remove install-source, obsolete and caused build failure + * Ubuntu-2.6.26-1.3 + * build: linux-doc rules got broken when disabling html side. Fixed now. + * Ubuntu-2.6.26-1.4 + * x86: Update to -rc6 allows CONFIG_PCI_OLPC to work with PCI_GOANY + * d-i: Make virtio-ring optional (it's built-in on i386) + * Ubuntu-2.6.26-1.4 + * Ubuntu-2.6.26-1.5 + * config: Enable DVB devices + * ubuntu/aufs: Make aufs a bool config, since it needs to be built-in + * config: Build aufs into the kernels + * build: Fix arguments passed to link-headers script + * config: Disable early printk + * d-i: Move isofs to storage-core and kill st (scsi tape) from list + * config: Enable non-promiscuous access to /dev/mem + * x86: Add option to disable decompression info messages + * config: Enable no-bz-chatter config options + * build: Re-add linux-source package + * d-i: Re-add socket-modules. Accidentally removed + - LP: #241295 + * Ubuntu-2.6.26-2.6 + * Use makedumpfile to generate a vmcoreinfo file. + * build: Build-Depend on makedumpfile for vmcoreinfo generation + * build: Remove debug print from git-ubuntu-log + * Updated configs for -rc7 + * build: postinst, do not call depmod with -F + * config: Enable rtc-cmos as a built-in driver. + * control: Provide ndiswrapper-modules-1.9 + * build: Generate vmcoreinfo in image build for crashdumps without debug + image + * config: Disable vesafb, since we'll prefer uvesafb + * build: Copy uvesafb module to initrd mod directory + * abi-check: New, more robust script + * config: Enable heap randomization by default + * abi-check: Cleanup output and call with perl (not $SHELL) + * abi: Ignore missing vesafb (known) + * config: Disable pcspkr (in favor of snd-pcsp) + * swap: Add notify_swap_entry_free callback for compcache + * compcache: Added ram backed compressed swap module + * ubuntu: Enable kbuild and kconfig for compcache + * config: Enable compcache and tlsf allocator as modules + * config: Updated for -rc8. Disables XEN on i386 + * config: Switch i386-server to 64G, enable PAE, 64-bit res, and XEN + * ubuntu: Add misc drivers from hardy lum + * ubuntu: Enable build of misc/ subdir + * config: Enable misc drivers + * aufs: Fix warning about single non-string-literal arg to printf style + function + * drivers: Remove some duplicate device entries in various modules + * config: Disable some duplicate drivers + * keyspan: Remove duplicate device ID's + * check-aliases: Cleanup output, and fix rolling checks + * ubuntu: Disable dm-bbr for now + * dm-bbr: First cut at forward portiong. Still needs work. + * ubuntu: Disable dm-bbr in kbuild/kconfig + + [Chuck Short] + + * SAUCE: ata: blacklist FUJITSU MHW2160BH PL + - LP: #175834 + * SAUCE: [USB]: add ASUS LCM to the blacklist + + [Colin Ian King] + + * SAUCE: airprime.c supports more devices + - LP: #208250 + * SAUCE: Enable speedstep for sonoma processors. + - LP: #132271 + * Add dm-loop + * Add dm-loop BOM + + [Kyle McMartin] + + * SAUCE: fix orinoco_cs oops + + [Mario Limonciello] + + * SAUCE: Enable Reset and SCO workaround on Dell 410 BT adapter + + [Matthew Garrett] + + * SAUCE: hostap: send events on data interface as well as master + interface + + [Phillip Lougher] + + * SAUCE: r8169: disable TSO by default for RTL8111/8168B chipsets. + + [Stefan Bader] + + * SAUCE: Export dm_disk function of device-mapper + * SAUCE: Restore VT fonts on switch + * SAUCE: Always use SCO protocol (disable eSCO support) Bug: #39414 + * SAUCE: mmc: Increase power_up deleay to fix TI readers OriginalAuthor: + Pascal Terjan Bug: #137686 + * SAUCE: Add blacklist support to fix Belkin bluetooth dongle. Bug: + #140511 + * SAUCE: Lower warning level of pci resource allocation messages. Bug: + 159241 + * SAUCE: Lower message level for PCI memory and I/O allocation. + - LP: #159241 + * Modify log generation to catch bug numbers when adding with git-am. + + [Tim Gardner] + + * Added the debian directory. Ignore: yes + * Add support for UBUNTUINCLUDE Ignore: yes + * LUM headers go in /usr/src Ignore: yes + * First pass at 2.6.25 configs Ignore: yes + * i386 -generic builds. Ignore: yes + * SAUCE: Increase CONFIG_IDE_MAX_HWIFS to 8 (from 4) + * SAUCE: Add extra headers to linux-libc-dev OriginalAuthor: Soren Hansen + OriginalLocation: + https://lists.ubuntu.com/archives/kernel-team/2007-November/001891.html + * Set CONFIG_DEVKMEM=n Ignore: yes + * Enabled ALSA and CGROUPS for i386 Ignore: yes + * Enabled amd64 configs. Ignore: yes + * CONFIG_STANDALONE=n Ignore: yes + * CONFIG_BLK_DEV_4DRIVES=n for i386 Ignore: yes + * CONFIG: CONFIG_DEFAULT_RELATIME=y for all flavours. Ignore: yes + * Set CONFIG_EDD_OFF=y Ignore: yes + * SAUCE: Blacklist Bluetooth Dell Wireless 370 for SCO MTU + OriginalAuthor: Mario Limonciello Bug: + #209715 + * SAUCE: Catch nonsense keycodes and silently ignore + * SAUCE: frame buffer regression - screen blank except for blinking + cursor after fbcon vtswitch OriginalAuthor: Matthew Garrett + Bug: #201591 + * SAUCE: Added support for HDAPS on various ThinkPads from Lenovo and IBM + OriginalAuthor: Klaus S. Madsen + OriginalAuthor: Chuck Short + * SAUCE: Guest OS does not recognize a lun with non zero target id on + Vmware ESX Server + * SAUCE: orinoco_cs.ko missing + * Set CONFIG_FB_VESA=m for i386/amd64 Ignore: yes + * Set CONFIG_PM_DISABLE_CONSOLE=y for all flavours Ignore: yes + * Thorough review of amd64 -generic config Ignore: yes + * Build PPA packages for Hardy until the Intrepid archive is opened. + * Deleted obsolete flavours Ignore: yes + * Don't build docs for PPA Ignore: yes + * Build all standard packages in PPA. Ignore: yes + * Remove duplicate USB ids + * SAUCE: DVB-USB UMT-010 driver oops on install Bug: #115284 + * Update configs after rebase to 2.6.26-rc1 Ignore: yes + * Update configs after rebase Ignore: yes + * Disable V4L until the build issues get ironed out. Ignore: yes + * Update configs after rebase. Ignore: yes + * Another device enable pass Ignore: yes + * Update configs after merge. Ignore: yes + * SAUCE: fn key doesn't work in hardy with macbook pro fourth generation + (4,1) + - LP: #207127 + * Enabled CONFIG_CIFS_DFS_UPCALL=y and CONFIG_CIFS_UPCALL=y + - LP: #236830 + + [Upstream Kernel Changes] + + * Revert "[WATCHDOG] hpwdt: Add CFLAGS to get driver working" + * mac80211: detect driver tx bugs + * hwmon: (lm85) Fix function RANGE_TO_REG() + * hwmon: (adt7473) Initialize max_duty_at_overheat before use + * hwmon: Update the sysfs interface documentation + * hwmon: (abituguru3) Identify Abit AW8D board as such + * hwmon: (w83791d) new maintainer + * hwmon: (abituguru3) update driver detection + * hwmon: (lm75) sensor reading bugfix + * ipv6: Remove options header when setsockopt's optlen is 0 + * ipv6: Drop packets for loopback address from outside of the box. + * sched: rt: dont stop the period timer when there are tasks wanting to + run + * sched: fix wait_for_completion_timeout() spurious failure under heavy + load + * x86: fix NULL pointer deref in __switch_to + * xen: Use wmb instead of rmb in xen_evtchn_do_upcall(). + * xen: mask unwanted pte bits in __supported_pte_mask + * xen: don't drop NX bit + * sched: refactor wait_for_completion_timeout() + * Ext4: Fix online resize block group descriptor corruption + * [IA64] SN2: security hole in sn2_ptc_proc_write + * alpha: fix module load failures on smp (bug #10926) + * alpha: link failure fix + * alpha: fix compile failures with gcc-4.3 (bug #10438) + * alpha: resurrect Cypress IDE quirk + * pppoe: warning fix + * sctp: Make sure N * sizeof(union sctp_addr) does not overflow. + * netns: Don't receive new packets in a dead network namespace. + * Add return value to reserve_bootmem_node() + * Slab: Fix memory leak in fallback_alloc() + * Fix performance regression on lmbench select benchmark + * ALSA: aw2 - Fix Oops at initialization + * ALSA: sb - Fix wrong assertions + * futexes: fix fault handling in futex_lock_pi + * IB/mthca: Clear ICM pages before handing to FW + * tty_driver: Update required method documentation + * removed unused var real_tty on n_tty_ioctl() + * Fix ZERO_PAGE breakage with vmware + * mm: fix race in COW logic + * NFS: Reduce the NFS mount code stack usage. + * NFS: Fix filehandle size comparisons in the mount code + * NFS: nfs_updatepage(): don't mark page as dirty if an error occurred + * alpha: fix compile error in arch/alpha/mm/init.c + * KVM: Fix race between timer migration and vcpu migration + * KVM: close timer injection race window in __vcpu_run + * KVM: MMU: Fix rmap_write_protect() hugepage iteration bug + * KVM: MMU: large page update_pte issue with non-PAE 32-bit guests + (resend) + * KVM: MMU: Fix oops on guest userspace access to guest pagetable + * KVM: ioapic: fix lost interrupt when changing a device's irq + * KVM: VMX: Fix host msr corruption with preemption enabled + * [GFS2] BUG: unable to handle kernel paging request at ffff81002690e000 + * xen: remove support for non-PAE 32-bit + * kgdb: documentation update - remove kgdboe + * kgdb: sparse fix + * [IA64] Fix boot failure on ia64/sn2 + * [IA64] Handle count==0 in sn2_ptc_proc_write() + * [IA64] Eliminate NULL test after alloc_bootmem in iosapic_alloc_rte() + * [GFS2] fix gfs2 block allocation (cleaned up) + * x86: Add structs and functions for paravirt clocksource + * x86: Make xen use the paravirt clocksource structs and functions + * KVM: Make kvm host use the paravirt clocksource structs + * x86: KVM guest: Use the paravirt clocksource structs and functions + * KVM: Remove now unused structs from kvm_para.h + * enable bus mastering on i915 at resume time + * Linux 2.6.26-rc8 + * # Ubuntu external driver commit. + * # Ubuntu commit template. + + -- Ben Collins Sat, 21 Jun 2008 09:05:15 -0400 + +linux (2.6.26-2.6) intrepid; urgency=low + + [Ben Collins] + + * Revert "SAUCE: Export symbols for aufs (in lum) (not needed) + * config: Enable DVB devices + * ubuntu/aufs: Make aufs a bool config, since it needs to be built-in + * config: Build aufs into the kernels + * build: Fix arguments passed to link-headers script + * config: Disable early printk + * d-i: Move isofs to storage-core and kill st (scsi tape) from list + * config: Enable non-promiscuous access to /dev/mem + * x86: Add option to disable decompression info messages + * config: Enable no-bz-chatter config options + * build: Re-add linux-source package + * d-i: Re-add socket-modules. Accidentally removed + - LP: #241295 + + [Colin Ian King] + + * Add dm-loop + + [Tim Gardner] + + * Revert "SAUCE: USB bluetooth device 0x0e5e:0x6622 floods errors to + syslog (merged upstream) + + -- Ben Collins Mon, 16 Jun 2008 10:56:01 -0400 + +linux (2.6.26-1.5) intrepid; urgency=low + + * d-i: Make virtio-ring optional (it's built-in on i386) + * Rebased on 2.6.26-rc6 + + [Ubuntu-2.6.26-1.4 Changes below] + + * build: linux-doc rules got broken when disabling html side. Fixed now. + + [Ubuntu-2.6.26-1.3 Changes below] + + * build: Remove install-source, obsolete and caused build failure + + [Ubuntu-2.6.26-1.2 Changes below] + + * Remove efi-modules from d-i module list (efivars is built-in). Caused a + build failure. + * Patch to arch/x86/xen/time.c to remove __divdi3 usage (build failure on + i386). + + [Ubuntu-2.6.26-1.1 Changes below] + + [Amit Kucheria] + + * SAUCE: make fc transport removal of target configurable + * SAUCE: Add AGP support for Radeon Mobility 9000 chipset + * SAUCE: pm: Config option to disable handling of console during + suspend/resume + + [Ben Collins] + + * SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps + * SAUCE: irda: Default to dongle type 9 on IBM hardware + * SAUCE: tulip: Let dmfe handle davicom on non-sparc + * SAUCE: tulip: Define ULI PCI ID's + * SAUCE: version: Implement version_signature proc file. + * build: Remove remnants of unused binary-custom infrastructure + * mmc_block: Fix bad allocation on 64-bit (zero len array) + * ubuntu: New modules, acer-acpi + * build: Remove -virtual, and rebuild configs + * ubuntu: Add drbd module + * ubuntu: Add iscsitarget module + * ubuntu: Add squashfs driver + * build/configs: The Great Config Consistency Check of 2008 + * ubuntu: Add aufs module + * ubuntu: Added atl2 driver + * ubuntu: Add dm-radi4-5 driver + * build: Add CONFIG_DEBUG_SECTION_MISMATCH=y to get old style warnings + from build + * squashfs: Fixes for VFS changes + * ubuntu/dm-raid4-5: Fixups for moved/renamed headers/functions in core + md + * ubuntu: Add ndiswrapper driver + * d-i: Update module listings + + [Chuck Short] + + * SAUCE: ata: blacklist FUJITSU MHW2160BH PL + * SAUCE: [USB]: add ASUS LCM to the blacklist + + [Colin Ian King] + + * SAUCE: Enable speedstep for sonoma processors. + * SAUCE: airprime.c supports more devices + + [Kyle McMartin] + + * SAUCE: fix orinoco_cs oops + + [Mario Limonciello] + + * SAUCE: Enable Reset and SCO workaround on Dell 410 BT adapter + + [Matthew Garrett] + + * SAUCE: hostap: send events on data interface as well as master + interface + + [Phillip Lougher] + + * SAUCE: r8169: disable TSO by default for RTL8111/8168B chipsets. + + [Stefan Bader] + + * SAUCE: Export dm_disk function of device-mapper + * SAUCE: Restore VT fonts on switch + * SAUCE: Always use SCO protocol (disable eSCO support) Bug: #39414 + * SAUCE: mmc: Increase power_up deleay to fix TI readers + * SAUCE: Add blacklist support to fix Belkin bluetooth dongle. + * SAUCE: Lower warning level of pci resource allocation messages. + * SAUCE: Lower message level for PCI memory and I/O allocation. + - LP: #159241 + * Modify log generation to catch bug numbers when adding with git-am. + + [Tim Gardner] + + * SAUCE: hdaps module does not load on Thinkpad T61P + * SAUCE: Add extra headers to linux-libc-dev + * SAUCE: Export symbols for aufs (in lum). + * SAUCE: USB bluetooth device 0x0e5e:0x6622 floods errors to syslog + * SAUCE: Blacklist Bluetooth Dell Wireless 370 for SCO MTU + * SAUCE: Catch nonsense keycodes and silently ignore + * SAUCE: frame buffer regression - screen blank except for blinking + cursor after fbcon vtswitch + * SAUCE: Added support for HDAPS on various ThinkPads from Lenovo and IBM + * SAUCE: Guest OS does not recognize a lun with non zero target id on + Vmware ESX Server + * SAUCE: Modualrize vesafb + * SAUCE: DVB-USB UMT-010 driver oops on install + * SAUCE: fn key doesn't work in hardy with macbook pro fourth generation + (4,1) + - LP: #207127 + + -- Ben Collins Wed, 11 Jun 2008 05:28:35 -0400 --- linux-3.13.0.orig/debian.master/config/amd64/config.common.amd64 +++ linux-3.13.0/debian.master/config/amd64/config.common.amd64 @@ -0,0 +1,318 @@ +# +# Config options for config.common.amd64 automatically generated by splitconfig.pl +# +CONFIG_64BIT=y +CONFIG_AC97_BUS=m +# CONFIG_AHCI_IMX is not set +CONFIG_AIC79XX_RESET_DELAY_MS=5000 +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11" +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_ARCH_RANDOM=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +# CONFIG_ASYNC_TX_DMA is not set +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_PIIX=y +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_AUDIT_ARCH=y +CONFIG_BCH=m +CONFIG_COMEDI_ISA_DRIVERS=y +CONFIG_COMPACTION=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +CONFIG_CPU_IDLE=y +CONFIG_CRASH_DUMP=y +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEFAULT_CFQ is not set +CONFIG_DEFAULT_DEADLINE=y +CONFIG_DEFAULT_IOSCHED="deadline" +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +CONFIG_EXYNOS_VIDEO=y +CONFIG_EZX_PCAP=y +CONFIG_FB_ATY128=m +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_BOOT_VESA_SUPPORT=y +CONFIG_FB_DDC=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_RADEON=m +CONFIG_FB_SVGALIB=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FB_UDL=m +CONFIG_FB_VOODOO1=m +# CONFIG_FMAN_P1023 is not set +CONFIG_FMAN_P3040_P4080_P5020=y +# CONFIG_FONTS is not set +CONFIG_FRAME_WARN=1024 +CONFIG_FSL_FMAN=y +CONFIG_FUNCTION_TRACER=y +CONFIG_GENERIC_PHY=m +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_TWL6040=m +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set +# CONFIG_HAVE_AOUT is not set +CONFIG_HAVE_BOOTMEM_INFO_NODE=y +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HIBERNATION=y +CONFIG_HOTPLUG_PCI_CPCI=y +CONFIG_HOTPLUG_PCI_SHPC=m +CONFIG_HUGETLB_PAGE=y +# CONFIG_HW_RANDOM_ATMEL is not set +# CONFIG_HZ_100 is not set +CONFIG_I2C_ALGOBIT=m +# CONFIG_IDE is not set +# CONFIG_IKCONFIG is not set +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +CONFIG_IMA=y +CONFIG_INFINIBAND_AMSO1100=m +CONFIG_INPUT_IDEAPAD_SLIDEBAR=m +CONFIG_IOMMU_SUPPORT=y +CONFIG_IPMI_SI_PROBE_DEFAULTS=y +# CONFIG_IRQ_DOMAIN_DEBUG is not set +CONFIG_KSM=y +CONFIG_KVM=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LIBERTAS_MESH=y +CONFIG_LIS3L02DQ=m +CONFIG_LOG_BUF_SHIFT=18 +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MEMORY_HOTREMOVE=y +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_TMIO is not set +CONFIG_MII=m +CONFIG_MMC_BLOCK=m +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MTD=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_CMDLINE_PARTS=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_BCH=m +CONFIG_MTD_NAND_ECC=m +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_SM_COMMON=m +CONFIG_MUSB_PIO_ONLY=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NET_TULIP=y +CONFIG_NODES_SHIFT=6 +CONFIG_NOP_USB_XCEIV=m +CONFIG_NO_HZ_FULL=y +# CONFIG_NO_HZ_IDLE is not set +CONFIG_NR_CPUS=256 +CONFIG_NUMA=y +CONFIG_NVRAM=m +CONFIG_OUTPUT_FORMAT="elf64-x86-64" +CONFIG_PARIDE_EPATC8=y +CONFIG_PATA_SIS=y +CONFIG_PCCARD=m +CONFIG_PCIEPORTBUS=y +CONFIG_PERCPU_TEST=m +CONFIG_PERSISTENT_KEYRINGS=y +CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_PHYSICAL_START=0x1000000 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PMIC_ADP5520=y +CONFIG_PMIC_DA903X=y +CONFIG_PM_DEBUG=y +CONFIG_PM_RUNTIME=y +# CONFIG_PM_WAKELOCKS is not set +CONFIG_PPS=m +CONFIG_PPS_CLIENT_GPIO=m +CONFIG_PPS_CLIENT_LDISC=m +CONFIG_PPS_CLIENT_PARPORT=m +CONFIG_PROBE_EVENTS=y +# CONFIG_PSTORE_CONSOLE is not set +CONFIG_PSTORE_RAM=m +CONFIG_PTP_1588_CLOCK=m +CONFIG_RAPIDIO_CPS_GEN2=m +CONFIG_RAPIDIO_CPS_XX=m +CONFIG_RAPIDIO_TSI568=m +CONFIG_RAPIDIO_TSI57X=m +CONFIG_RAPIDIO_TSI721=m +CONFIG_RBTREE_TEST=m +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +CONFIG_RCU_FANOUT=64 +CONFIG_RCU_FAST_NO_HZ=y +CONFIG_RCU_NOCB_CPU=y +CONFIG_RCU_USER_QS=y +CONFIG_REED_SOLOMON=m +CONFIG_REGULATOR_FIXED_VOLTAGE=m +# CONFIG_REGULATOR_S2MPS11 is not set +CONFIG_REISERFS_FS=m +CONFIG_RFKILL=y +CONFIG_RT2800USB_UNKNOWN=y +# CONFIG_RT2X00_LIB_DEBUGFS is not set +CONFIG_RTC_DRV_CMOS=y +CONFIG_RTC_DRV_DS3232=m +CONFIG_SAMSUNG_USB2PHY=m +CONFIG_SAMSUNG_USB3PHY=m +CONFIG_SATA_AHCI_PLATFORM=m +# CONFIG_SATA_HIGHBANK is not set +CONFIG_SATA_SVW=m +CONFIG_SCHED_AUTOGROUP=y +CONFIG_SCHED_SMT=y +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SERIAL_8250_PCI=y +# CONFIG_SERIAL_FSL_LPUART is not set +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_ARC_PS2=m +CONFIG_SERIO_I8042=y +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_PS2MULT=m +CONFIG_SERIO_RAW=m +CONFIG_SND=m +CONFIG_SND_COMPRESS_OFFLOAD=m +CONFIG_SND_EMU10K1_SEQ=m +CONFIG_SND_OPL3_LIB_SEQ=m +# CONFIG_SND_OPL4_LIB_SEQ is not set +CONFIG_SND_PCM=m +# CONFIG_SND_SBAWE_SEQ is not set +CONFIG_SND_SOC=m +CONFIG_SND_SOC_I2C_AND_SPI=m +CONFIG_SND_TIMER=m +CONFIG_SOUND=m +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPI_PXA2XX_PCI=m +CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y +# CONFIG_SQUASHFS_DECOMP_SINGLE is not set +# CONFIG_SQUASHFS_FILE_CACHE is not set +CONFIG_SQUASHFS_FILE_DIRECT=y +CONFIG_SRAM=y +CONFIG_STACK_TRACER=y +CONFIG_STAGING=y +# CONFIG_STANDALONE is not set +CONFIG_SUNRPC_DEBUG=y +CONFIG_SWIOTLB=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_SYS_HYPERVISOR=y +CONFIG_TEST_KSTRTOX=m +CONFIG_TEST_STRING_HELPERS=m +CONFIG_TIGON3=m +CONFIG_TIMER_STATS=y +CONFIG_TRANSPARENT_HUGEPAGE=y +# CONFIG_TWL4030_CORE is not set +CONFIG_TWL6040_CORE=y +CONFIG_UIO_AEC=m +CONFIG_UIO_CIF=m +CONFIG_UIO_DMEM_GENIRQ=m +CONFIG_UIO_MF624=m +CONFIG_UIO_NETX=m +CONFIG_UIO_PCI_GENERIC=m +CONFIG_UIO_PDRV_GENIRQ=m +CONFIG_UIO_SERCOS3=m +CONFIG_UNUSED_SYMBOLS=y +CONFIG_USB_ADUTUX=m +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_C67X00_HCD=m +CONFIG_USB_CATC=m +CONFIG_USB_CHIPIDEA=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_DWC3=m +# CONFIG_USB_DWC3_OMAP is not set +CONFIG_USB_DYNAMIC_MINORS=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHSET_TEST_FIXTURE=m +CONFIG_USB_EMI26=m +CONFIG_USB_EMI62=m +CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_FOTG210_HCD=m +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_FUSBH200_HCD=m +CONFIG_USB_GADGET=m +# CONFIG_USB_G_MULTI is not set +CONFIG_USB_HCD_BCMA=m +CONFIG_USB_HCD_SSB=m +CONFIG_USB_HSIC_USB3503=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_IOWARRIOR=m +CONFIG_USB_IPHETH=m +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_ISP1301=m +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_ISP1760_HCD=m +CONFIG_USB_KAWETH=m +CONFIG_USB_LCD=m +CONFIG_USB_LD=m +CONFIG_USB_LED=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_MUSB_HDRC=m +CONFIG_USB_MUSB_TUSB6010=m +CONFIG_USB_OHCI_HCD_PLATFORM=y +# CONFIG_USB_OTG is not set +CONFIG_USB_OXU210HP_HCD=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_PRINTER=m +CONFIG_USB_R8A66597_HCD=m +CONFIG_USB_RCAR_PHY=m +CONFIG_USB_RIO500=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_SERIAL=m +CONFIG_USB_SEVSEG=m +CONFIG_USB_SISUSBVGA=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_STORAGE=m +CONFIG_USB_STORAGE_ALAUDA=m +CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_DATAFAB=m +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_STORAGE_FREECOM=m +CONFIG_USB_STORAGE_ISD200=m +CONFIG_USB_STORAGE_JUMPSHOT=m +CONFIG_USB_STORAGE_KARMA=m +CONFIG_USB_STORAGE_ONETOUCH=m +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_USB_STORAGE_SDDR09=m +CONFIG_USB_STORAGE_SDDR55=m +CONFIG_USB_STORAGE_USBAT=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_TEST=m +CONFIG_USB_TMC=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_USS720=m +CONFIG_USB_WUSB_CBAF=m +CONFIG_USB_YUREX=m +CONFIG_VFIO_IOMMU_TYPE1=m +CONFIG_VGASTATE=m +CONFIG_VGA_CONSOLE=y +CONFIG_VIRTIO=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_NET=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_WIL6210=m +# CONFIG_WIMAX_GDM72XX_SDIO is not set +CONFIG_X86_MINIMUM_CPU_FAMILY=64 +CONFIG_X86_SPEEDSTEP_LIB=m +CONFIG_XEN=y +CONFIG_XEN_MAX_DOMAIN_MEMORY=500 +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_TEST=m +CONFIG_XZ_DEC_X86=y +CONFIG_ZONE_DMA32=y +CONFIG_ZONE_DMA_FLAG=1 --- linux-3.13.0.orig/debian.master/config/amd64/config.flavour.generic +++ linux-3.13.0/debian.master/config/amd64/config.flavour.generic @@ -0,0 +1,10 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# +CONFIG_HZ=250 +# CONFIG_HZ_1000 is not set +CONFIG_HZ_250=y +# CONFIG_IRQ_FORCED_THREADING_DEFAULT is not set +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_RCU is not set +CONFIG_PREEMPT_VOLUNTARY=y --- linux-3.13.0.orig/debian.master/config/amd64/config.flavour.lowlatency +++ linux-3.13.0/debian.master/config/amd64/config.flavour.lowlatency @@ -0,0 +1,10 @@ +# +# Config options for config.flavour.lowlatency automatically generated by splitconfig.pl +# +CONFIG_HZ=1000 +CONFIG_HZ_1000=y +# CONFIG_HZ_250 is not set +CONFIG_IRQ_FORCED_THREADING_DEFAULT=y +CONFIG_PREEMPT=y +CONFIG_PREEMPT_RCU=y +# CONFIG_PREEMPT_VOLUNTARY is not set --- linux-3.13.0.orig/debian.master/config/annotations +++ linux-3.13.0/debian.master/config/annotations @@ -0,0 +1,2147 @@ +# ARCH: x86 arm powerpc + +# not a thing +CONFIG_USB_OHCI_HCD_PLATFORM - flag +CONFIG_USB_EHCI_HCD_PLATFORM - flag +CONFIG_USB_OHCI_HCD_PPC_OF_LE - flag + +CONFIG_64BIT - flag + +# Overall defaults +set +all !flag EXPERIMENTAL !flag IGNORE !flag DEPRECATED ?type tristate = m + +# Mark debugging symbols. +# default all debug symbols off +set +pattern '(^|_)DEBUG(_|$)' ?type bool = n flag +set +pattern '(^|_)DEBUG(_|$)' ?type tristate = n flag +# exceptions +CONFIG_DEBUG_FS y note +CONFIG_DEBUG_KERNEL y note +CONFIG_DEBUG_RODATA y mark +CONFIG_DEBUG_SET_MODULE_RONX y mark +CONFIG_SLUB_DEBUG y +CONFIG_SCHED_DEBUG y + +# Menu: ROOT +CONFIG_SYSTEM_TRUSTED_KEYRING y + +# Menu: ROOT (arm) +CONFIG_ARM_DMA_IOMMU_ALIGNMENT 8 +CONFIG_ARM_PATCH_PHYS_VIRT y + +# Menu: ROOT (powerpc) +CONFIG_RELOCATABLE y +CONFIG_CPU_BIG_ENDIAN n +CONFIG_PPC64 y +CONFIG_CPU_LITTLE_ENDIAN y +CONFIG_NR_IRQS 512 +CONFIG_SCOM_DEBUGFS n + +# Menu: ROOT (x86) + +# Menu: Advanced setup (powerpc) +CONFIG_RELOCATABLE y + +# Menu: Boot options (arm) +CONFIG_KEXEC y +CONFIG_CRASH_DUMP y + +# Menu: Bus options (arm) + +# Menu: Bus options (powerpc) +CONFIG_FSL_LBC y + +# Menu: Bus options (x86) +CONFIG_ISA_DMA_API y +CONFIG_X86_SYSFB y +CONFIG_ISA y +CONFIG_EISA y +CONFIG_ALIX y +CONFIG_NET5501 y +CONFIG_GEOS y + +# Menu: Bus options >> PCCard (PCMCIA/CardBus) support +CONFIG_PCCARD p policy<(arch armel armhf ppc64el &/ value n) | value m> note +CONFIG_PCMCIA_LOAD_CIS y +CONFIG_CARDBUS y +CONFIG_YENTA_O2 y +CONFIG_YENTA_RICOH y +CONFIG_YENTA_TI y +CONFIG_YENTA_ENE_TUNE y +CONFIG_YENTA_TOSHIBA y + +# Menu: Bus options >> PCI support +CONFIG_PCI y +CONFIG_PCIEPORTBUS y +CONFIG_HOTPLUG_PCI_PCIE y +CONFIG_PCIEAER_INJECT n flag +CONFIG_PCI_IOAPIC p policy<(arch i386 amd64 &/ value y) | value m> note + +# Menu: Bus options >> PCI support (arm) + +# Menu: Bus options >> PCI support (powerpc) + +# Menu: Bus options >> PCI support (x86) +CONFIG_PCI_MMCONFIG y +CONFIG_PCI_GOANY y + +# Menu: Bus options >> PCI support >> PCI host controller drivers +CONFIG_PCI_IMX6 y +CONFIG_PCI_TEGRA y + +# Menu: Bus options >> PCI support >> RapidIO support +CONFIG_RAPIDIO y +CONFIG_RAPIDIO_DISC_TIMEOUT 30 +CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS n +CONFIG_RAPIDIO_DMA_ENGINE y + +# Menu: Bus options >> PCI support >> RapidIO support (powerpc) + +# Menu: Bus options >> PCI support >> RapidIO support (x86) + +# Menu: Bus options >> PCI support >> RapidIO support >> RapidIO Switch drivers + +# Menu: Bus options >> PCI support >> Support for PCI Hotplug +CONFIG_HOTPLUG_PCI y +CONFIG_HOTPLUG_PCI_ACPI y +CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM y + +# Menu: CAN Device Drivers + +# Menu: CAN Device Drivers >> CAN USB interfaces + +# Menu: CAN Device Drivers >> Platform CAN drivers with Netlink support +CONFIG_CAN_CALC_BITTIMING y +CONFIG_CAN_LEDS y + +# Menu: CAN Device Drivers >> Platform CAN drivers with Netlink support >> Bosch CC770 and Intel AN82527 devices + +# Menu: CAN Device Drivers >> Platform CAN drivers with Netlink support >> Bosch C_CAN/D_CAN devices + +# Menu: CAN Device Drivers >> Platform CAN drivers with Netlink support >> Philips/NXP SJA1000 devices +CONFIG_CAN_PEAK_PCIEC y + +# Menu: CPU Power Management >> CPU Frequency scaling +CONFIG_CPU_FREQ y +CONFIG_CPU_FREQ_STAT y note +CONFIG_CPU_FREQ_STAT_DETAILS y +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE y note +CONFIG_CPU_FREQ_GOV_PERFORMANCE y note +CONFIG_CPU_FREQ_GOV_POWERSAVE y note +CONFIG_CPU_FREQ_GOV_USERSPACE y note +CONFIG_CPU_FREQ_GOV_ONDEMAND y note +CONFIG_CPU_FREQ_GOV_CONSERVATIVE y note +CONFIG_CRYPTO_DEV_NX y + +# Menu: CPU Power Management >> CPU Frequency scaling >> ARM CPU frequency scaling drivers + +# Menu: CPU Power Management >> CPU Frequency scaling >> AVR32 CPU frequency scaling drivers + +# Menu: CPU Power Management >> CPU Frequency scaling >> CPUFreq processor drivers + +# Menu: CPU Power Management >> CPU Frequency scaling >> MIPS CPUFreq processor drivers + +# Menu: CPU Power Management >> CPU Frequency scaling >> PowerPC CPU frequency scaling drivers + +# Menu: CPU Power Management >> CPU Frequency scaling >> SH CPU Frequency scaling + +# Menu: CPU Power Management >> CPU Frequency scaling >> SPARC CPU frequency scaling drivers + +# Menu: CPU Power Management >> CPU Frequency scaling >> x86 CPU frequency scaling drivers +CONFIG_X86_INTEL_PSTATE y +CONFIG_X86_PCC_CPUFREQ y note +CONFIG_X86_ACPI_CPUFREQ y note +CONFIG_X86_ACPI_CPUFREQ_CPB y +CONFIG_X86_POWERNOW_K8 y note +CONFIG_X86_SPEEDSTEP_CENTRINO y note +CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE y +CONFIG_X86_SPEEDSTEP_ICH y note +CONFIG_X86_SPEEDSTEP_SMI y note +CONFIG_X86_CPUFREQ_NFORCE2 y note +CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK y + +# Menu: CPU Power Management >> CPU Idle +CONFIG_CPU_IDLE y +CONFIG_CPU_IDLE_MULTIPLE_DRIVERS y +CONFIG_CPU_IDLE_GOV_LADDER y +CONFIG_CPU_IDLE_GOV_MENU y + +# Menu: CPU Power Management >> CPU Idle >> ARM CPU Idle Drivers +CONFIG_ARM_BIG_LITTLE_CPUIDLE y +CONFIG_ARM_HIGHBANK_CPUIDLE p policy<(arch armhf & flavour generic &/ value n) | value y> note + +# Menu: Cryptographic API +set +tree-menu 'Cryptographic API' ?flag EXPERIMENTAL ?type bool = n +set +tree-menu 'Cryptographic API' ?flag EXPERIMENTAL ?type tristate = n +set +tree-menu 'Cryptographic API' !flag EXPERIMENTAL ?type tristate = m + +CONFIG_CRYPTO y mark +CONFIG_CRYPTO_MANAGER y note +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS y flag +CONFIG_CRYPTO_TEST m flag +CONFIG_CRYPTO_CBC y note +CONFIG_CRYPTO_ECB y note +CONFIG_CRYPTO_HMAC y note +CONFIG_CRYPTO_CRC32C y note +CONFIG_CRYPTO_CRC32C_INTEL y note +CONFIG_CRYPTO_CRCT10DIF y note +CONFIG_CRYPTO_MD5 y note +CONFIG_CRYPTO_SHA1 y note +CONFIG_CRYPTO_SHA256 y note +CONFIG_CRYPTO_SHA512 y note +CONFIG_CRYPTO_AES y note +CONFIG_CRYPTO_LZO y note + +# Menu: Cryptographic API >> Asymmetric (public-key cryptographic) key type +CONFIG_ASYMMETRIC_KEY_TYPE y note +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE y note +CONFIG_PUBLIC_KEY_ALGO_RSA y note +CONFIG_X509_CERTIFICATE_PARSER y note + +# Menu: Cryptographic API >> Hardware crypto devices +CONFIG_CRYPTO_HW y +CONFIG_CRYPTO_DEV_PADLOCK y note +CONFIG_CRYPTO_DEV_HIFN_795X_RNG y +CONFIG_CRYPTO_DEV_NX_COMPRESS y note + +# Menu: Device Drivers +CONFIG_POWER_AVS y +CONFIG_RESET_CONTROLLER y +CONFIG_VEXPRESS_CONFIG y +CONFIG_ARM_ARCH_TIMER_EVTSTREAM y + +# Menu: Device Drivers >> 1-wire Bus Masters + +# Menu: Device Drivers >> 1-wire Slaves +CONFIG_W1_SLAVE_DS2408_READBACK y +CONFIG_W1_SLAVE_DS2433_CRC n + +# Menu: Device Drivers >> ATA/ATAPI/MFM/RLL support (DEPRECATED) +set +tree 'Device Drivers>>ATA/ATAPI/MFM/RLL support (DEPRECATED)' = n +# +CONFIG_IDE p policy<(arch powerpc ppc64el &/ value y) | value n> note +CONFIG_IDE_GD y +CONFIG_IDE_GD_ATA y +CONFIG_BLK_DEV_IDECD y +CONFIG_IDEPCI_PCIBUS_ORDER y +CONFIG_BLK_DEV_GENERIC y +CONFIG_BLK_DEV_AMD74XX y +CONFIG_IDE_PROC_FS y + +# Menu: Device Drivers >> Accelerometers + +# Menu: Device Drivers >> Accessibility support + +# Menu: Device Drivers >> Active cards + +# Menu: Device Drivers >> Amplifiers + +# Menu: Device Drivers >> Analog to digital converters +CONFIG_LP8788_ADC y +CONFIG_EXYNOS_ADC y + +# Menu: Device Drivers >> Android +CONFIG_ANDROID n + +# Menu: Device Drivers >> Atmel devices (AVR32 and AT91) + +# Menu: Device Drivers >> Auxiliary Display support +CONFIG_AUXDISPLAY y +CONFIG_KS0108_DELAY 2 +CONFIG_CFAG12864B_RATE 20 + +# Menu: Device Drivers >> Block devices +set +tree-menu 'Device Drivers>>Block devices' ?flag EXPERIMENTAL ?type bool = n +set +tree-menu 'Device Drivers>>Block devices' ?flag EXPERIMENTAL ?type tristate = n +set +tree-menu 'Device Drivers>>Block devices' !flag EXPERIMENTAL ?type tristate = m +# +CONFIG_BLK_DEV y +CONFIG_PARIDE_EPATC8 y +CONFIG_CISS_SCSI_TAPE y +CONFIG_BLK_DEV_UMEM m note +CONFIG_BLK_DEV_LOOP y note +CONFIG_BLK_DEV_LOOP_MIN_COUNT 8 +CONFIG_DRBD_FAULT_INJECTION n +CONFIG_BLK_DEV_RAM y note +CONFIG_BLK_DEV_RAM_COUNT 16 +CONFIG_BLK_DEV_RAM_SIZE 65536 +CONFIG_BLK_DEV_XIP n note +CONFIG_CDROM_PKTCDVD_BUFFERS 8 +CONFIG_CDROM_PKTCDVD_WCACHE n mark +CONFIG_XEN_BLKDEV_FRONTEND y note +CONFIG_VIRTIO_BLK y note +CONFIG_BLK_DEV_HD n note mark +CONFIG_BLK_DEV_RBD m note +CONFIG_MG_DISK_RES 0 + +# Menu: Device Drivers >> Broadcom specific AMBA +CONFIG_BCMA_HOST_PCI y +CONFIG_BCMA_HOST_SOC y +CONFIG_BCMA_DRIVER_GMAC_CMN y +CONFIG_BCMA_DRIVER_GPIO y + +# Menu: Device Drivers >> Bus devices +CONFIG_IMX_WEIM y +CONFIG_OMAP_INTERCONNECT y note +CONFIG_ARM_CCI y + +# Menu: Device Drivers >> Character devices +set +tree 'Device Drivers>>Character devices' ?flag EXPERIMENTAL ?type bool = n +set +tree 'Device Drivers>>Character devices' ?flag EXPERIMENTAL ?type tristate = n +set +tree 'Device Drivers>>Character devices' !flag EXPERIMENTAL ?type tristate = m +# +CONFIG_TTY y +CONFIG_VT y +CONFIG_CONSOLE_TRANSLATIONS y +CONFIG_VT_CONSOLE y +CONFIG_VT_HW_CONSOLE_BINDING y +CONFIG_UNIX98_PTYS y +CONFIG_DEVPTS_MULTIPLE_INSTANCES y +CONFIG_LEGACY_PTYS y +CONFIG_LEGACY_PTY_COUNT 0 +CONFIG_SERIAL_NONSTANDARD y +CONFIG_CYZ_INTR n +CONFIG_DEVKMEM n mark +CONFIG_TTY_PRINTK y +CONFIG_LP_CONSOLE n +CONFIG_HVC_XEN y +CONFIG_HVC_XEN_FRONTEND y +CONFIG_HW_RANDOM y +CONFIG_HW_RANDOM_ATMEL n note +CONFIG_NVRAM p policy<(arch powerpc &/ value y) | value m> note +CONFIG_MAX_RAW_DEVS 256 +CONFIG_HPET y +CONFIG_HPET_MMAP y +CONFIG_HPET_MMAP_DEFAULT y +CONFIG_HVC_DCC y +CONFIG_VIRTIO_CONSOLE y +CONFIG_HVC_CONSOLE y +CONFIG_HVC_OLD_HVSI n +CONFIG_HVC_OPAL y +CONFIG_HVC_RTAS y +CONFIG_HVC_UDBG n + +# Menu: Device Drivers >> Character devices >> IPMI top-level message handler +CONFIG_IPMI_PANIC_EVENT n + +# Menu: Device Drivers >> Character devices >> PCMCIA character devices + +# Menu: Device Drivers >> Character devices >> Serial drivers +CONFIG_SERIAL_8250 y note +CONFIG_SERIAL_8250_PNP y +CONFIG_SERIAL_8250_CONSOLE y +CONFIG_SERIAL_8250_DMA y +CONFIG_SERIAL_8250_PCI y +CONFIG_SERIAL_8250_NR_UARTS 48 +CONFIG_SERIAL_8250_RUNTIME_UARTS 32 +CONFIG_SERIAL_8250_EXTENDED y +CONFIG_SERIAL_8250_MANY_PORTS y +CONFIG_SERIAL_8250_SHARE_IRQ y +CONFIG_SERIAL_8250_DETECT_IRQ n +CONFIG_SERIAL_8250_RSA y +CONFIG_SERIAL_KGDB_NMI y +CONFIG_SERIAL_MAX310X y +CONFIG_SERIAL_SCCNXP y +CONFIG_SERIAL_SCCNXP_CONSOLE y +CONFIG_SERIAL_ALTERA_UART_MAXPORTS 4 +CONFIG_SERIAL_ALTERA_UART_BAUDRATE 115200 +CONFIG_SERIAL_ARC_NR_PORTS 1 +CONFIG_SERIAL_RP2_NR_UARTS 32 +CONFIG_SERIAL_AMBA_PL011 y +CONFIG_SERIAL_AMBA_PL011_CONSOLE y +CONFIG_SERIAL_OF_PLATFORM y +CONFIG_SERIAL_8250_EM n +CONFIG_SERIAL_IMX y +CONFIG_SERIAL_IMX_CONSOLE y +CONFIG_SERIAL_SH_SCI_NR_UARTS 2 +CONFIG_SERIAL_OMAP p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_SERIAL_OMAP_CONSOLE y + +# Menu: Device Drivers >> Character devices >> TPM Hardware Support +CONFIG_TCG_TPM y note +CONFIG_TCG_TIS y +CONFIG_TCG_IBMVTPM y + +# Menu: Device Drivers >> Common Clock Framework +CONFIG_COMMON_CLK_VERSATILE y +CONFIG_COMMON_CLK_XGENE y + +# Menu: Device Drivers >> Connector - unified userspace <-> kernelspace linker +CONFIG_CONNECTOR y +CONFIG_PROC_EVENTS y + +# Menu: Device Drivers >> Customise DVB Frontends +CONFIG_DVB_DUMMY_FE n note + +# Menu: Device Drivers >> DMA Engine support +CONFIG_DMADEVICES y +CONFIG_NET_DMA y note +CONFIG_ASYNC_TX_DMA y +CONFIG_DMATEST n flag +CONFIG_AMBA_PL08X y +CONFIG_DMA_OMAP y + +# Menu: Device Drivers >> Dallas's 1-wire support +CONFIG_W1_CON y + +# Menu: Device Drivers >> Device Tree and Open Firmware support +CONFIG_PROC_DEVICETREE y +CONFIG_OF_SELFTEST n flag + +# Menu: Device Drivers >> Digital gyroscope sensors + +# Menu: Device Drivers >> Digital to analog converters + +# Menu: Device Drivers >> Distributed Switch Architecture drivers + +# Menu: Device Drivers >> EDAC (Error Detection And Correction) reporting +CONFIG_EDAC y +CONFIG_EDAC_AMD64_ERROR_INJECTION n +CONFIG_EDAC_SBRIDGE m note + +# Menu: Device Drivers >> Encoders, decoders, sensors and other helper chips + +# Menu: Device Drivers >> External Connector Class (extcon) support +set +tree 'Device Drivers >> External Connector Class (extcon) support' ?flag EXPERIMENTAL ?type bool = n +set +tree 'Device Drivers >> External Connector Class (extcon) support' ?flag EXPERIMENTAL ?type tristate = n +set +tree 'Device Drivers >> External Connector Class (extcon) support' !flag EXPERIMENTAL ?type tristate = m +# +CONFIG_EXTCON y + +# Menu: Device Drivers >> FMC support + +# Menu: Device Drivers >> Frequency Synthesizers DDS/PLL >> Clock Generator/Distribution + +# Menu: Device Drivers >> Frequency Synthesizers DDS/PLL >> Phase-Locked Loop (PLL) frequency synthesizers + +# Menu: Device Drivers >> Fusion MPT device support +CONFIG_FUSION y +CONFIG_FUSION_MAX_SGE 128 +CONFIG_FUSION_LOGGING y + +# Menu: Device Drivers >> GPIO Support +set +tree 'Device Drivers>>GPIO Support' = - mark +set +all ?mark 'GPIO' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'GPIO' ?flag EXPERIMENTAL ?type tristate = n +set +all ?mark 'GPIO' !flag EXPERIMENTAL ?type tristate = m +# standard forms: +set +pattern ^GPIO_ ?mark 'GPIO' ?type bool !flag EXPERIMENTAL = y +# +CONFIG_GPIO_SYSFS y +CONFIG_GPIOLIB y +CONFIG_GPIO_EM n note +CONFIG_GPIO_TWL4030 y note + +# Menu: Device Drivers >> Generic Driver Options +CONFIG_UEVENT_HELPER_PATH "" +CONFIG_DEVTMPFS y +CONFIG_DEVTMPFS_MOUNT y +CONFIG_STANDALONE p policy<(arch i386 amd64 &/ value n) | value y> +CONFIG_PREVENT_FIRMWARE_BUILD y +CONFIG_FW_LOADER y note +CONFIG_FIRMWARE_IN_KERNEL y +CONFIG_EXTRA_FIRMWARE "" +CONFIG_FW_LOADER_USER_HELPER y +CONFIG_DMA_CMA y +CONFIG_CMA_SIZE_MBYTES 16 +CONFIG_CMA_SIZE_SEL_MBYTES y +CONFIG_CMA_ALIGNMENT 8 +CONFIG_CMA_AREAS 7 + +# Menu: Device Drivers >> Generic Dynamic Voltage and Frequency Scaling (DVFS) support +CONFIG_PM_DEVFREQ y +CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND y +CONFIG_DEVFREQ_GOV_PERFORMANCE y +CONFIG_DEVFREQ_GOV_POWERSAVE y +CONFIG_DEVFREQ_GOV_USERSPACE y + +# Menu: Device Drivers >> Generic Target Core Mod (TCM) and ConfigFS Infrastructure + +# Menu: Device Drivers >> Generic Thermal sysfs driver +CONFIG_THERMAL y +CONFIG_THERMAL_HWMON y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE y +CONFIG_THERMAL_GOV_FAIR_SHARE y +CONFIG_THERMAL_GOV_STEP_WISE y +CONFIG_THERMAL_GOV_USER_SPACE y +CONFIG_CPU_THERMAL y +CONFIG_THERMAL_EMULATION y + +# Menu: Device Drivers >> Generic powercap sysfs driver +CONFIG_POWERCAP y + +# Menu: Device Drivers >> Graphics support +set +tree 'Device Drivers>>Graphics support' = - mark +set +all ?mark 'Graphics' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'Graphics' ?flag EXPERIMENTAL ?type tristate = m note +set +all ?mark 'Graphics' !flag EXPERIMENTAL ?type tristate = m +set +pattern ^FB_[^_]+$ ?mark Graphics ?type bool !flag EXPERIMENTAL = y +set +pattern ^FB_[^_]+$ ?mark Graphics ?type bool ?flag EXPERIMENTAL = y note +set +pattern _(KMS|BACKLIGHT|I2C)$ ?mark Graphics ?type bool !flag EXPERIMENTAL = y +# +CONFIG_VGA_ARB y +CONFIG_VGA_ARB_MAX_GPUS 16 +CONFIG_VGA_SWITCHEROO y +CONFIG_DRM_LOAD_EDID_FIRMWARE y + +# Menu: Device Drivers >> Graphics support >> /dev/agpgart (AGP Support) +CONFIG_AGP y note mark +CONFIG_AGP_AMD64 y note +CONFIG_AGP_INTEL y note +CONFIG_AGP_VIA y note +CONFIG_AGP_AMD y note +CONFIG_AGP_NVIDIA y note + +# Menu: Device Drivers >> Graphics support >> Backlight & LCD device support +CONFIG_BACKLIGHT_LCD_SUPPORT y +CONFIG_BACKLIGHT_CLASS_DEVICE y + +# Menu: Device Drivers >> Graphics support >> Console display driver support +CONFIG_VGA_CONSOLE y +CONFIG_VGACON_SOFT_SCROLLBACK n +CONFIG_FRAMEBUFFER_CONSOLE y note +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION n + +# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) +CONFIG_DRM p mark policy<(arch armel armhf &/ value y) | value m> note +CONFIG_NOUVEAU_DEBUG 5 +CONFIG_NOUVEAU_DEBUG_DEFAULT 3 +CONFIG_DRM_I915_FBDEV y +CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT y +CONFIG_DRM_VMWGFX_FBCON n +CONFIG_DRM_GMA600 y +CONFIG_DRM_GMA3600 y +CONFIG_DRM_EXYNOS n flag +CONFIG_DRM_RCAR_LVDS y +CONFIG_DRM_OMAP n + +# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> I2C encoder or helper chips + +# Menu: Device Drivers >> Graphics support >> Exynos Video driver support +CONFIG_EXYNOS_VIDEO y + +# Menu: Device Drivers >> Graphics support >> Marvell MMP Display Subsystem support + +# Menu: Device Drivers >> Graphics support >> OMAP Display Device Drivers (new device model) + +# Menu: Device Drivers >> Graphics support >> OMAP2+ Display Subsystem support +CONFIG_OMAP2_DSS p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_OMAP2_DSS_DEBUGFS n +CONFIG_OMAP2_DSS_DPI y +CONFIG_OMAP2_DSS_VENC y +CONFIG_OMAP4_DSS_HDMI y +CONFIG_OMAP2_DSS_SDI y +CONFIG_OMAP2_DSS_DSI n +CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK 0 +CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET y + +# Menu: Device Drivers >> Graphics support >> Support for frame buffer devices +CONFIG_FB y +CONFIG_FIRMWARE_EDID y +CONFIG_FB_MODE_HELPERS y +CONFIG_FB_TILEBLITTING y +CONFIG_FB_PM2_FIFO_DISCONNECT y +CONFIG_FB_CYBER2000_DDC y +CONFIG_FB_MATROX_MILLENIUM y +CONFIG_FB_MATROX_MYSTIQUE y +CONFIG_FB_MATROX_G y +CONFIG_FB_RADEON p policy<(arch powerpc &/ value y) | value m> note +CONFIG_FB_ATY128 p policy<(arch powerpc &/ value y) | value m> note +CONFIG_FB_ATY_CT y +CONFIG_FB_ATY_GX y +CONFIG_FB_S3_DDC y +CONFIG_FB_SIS_300 y +CONFIG_FB_SIS_315 y +CONFIG_FB_VIA_X_COMPATIBILITY y +CONFIG_FB_3DFX p policy<(arch powerpc &/ value y) | value m> note +CONFIG_FB_3DFX_ACCEL y +CONFIG_FB_VOODOO1 p policy<(arch powerpc &/ value y) | value m> note +CONFIG_FB_CARMINE_DRAM_EVAL y +CONFIG_FB_TMIO_ACCELL y +CONFIG_FB_VIRTUAL n flag +CONFIG_FB_MB862XX_PCI_GDC y + +# Menu: Device Drivers >> Graphics support >> Support for frame buffer devices >> Bootup logo +CONFIG_LOGO n + +# Menu: Device Drivers >> Graphics support >> Support for frame buffer devices >> Framebuffer foreign endianness support +CONFIG_FB_FOREIGN_ENDIAN n + +# Menu: Device Drivers >> Graphics support >> Support for frame buffer devices >> OMAP2+ frame buffer support +CONFIG_FB_OMAP2 p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_FB_OMAP2_NUM_FBS 3 + +# Menu: Device Drivers >> HID support +set +tree 'Device Drivers>>HID support' = - mark +# enable modular HID drivers by default +set +all ?mark 'HID' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'HID' ?flag EXPERIMENTAL ?type tristate = m note` +set +all ?mark 'HID' !flag EXPERIMENTAL ?type tristate = m +# standard forms +set +pattern _FF$ ?mark HID ?type bool !flag EXPERIMENTAL = y + +# Menu: Device Drivers >> HID support >> HID bus support +CONFIG_HID_BATTERY_STRENGTH y +CONFIG_HIDRAW y + +# Menu: Device Drivers >> HID support >> HID bus support >> Special HID drivers +CONFIG_HID_PICOLCD_FB y +CONFIG_HID_PICOLCD_BACKLIGHT y +CONFIG_HID_PICOLCD_LCD y +CONFIG_HID_PICOLCD_LEDS y +CONFIG_HID_PICOLCD_CIR y + +# Menu: Device Drivers >> HID support >> I2C HID support + +# Menu: Device Drivers >> HID support >> USB HID support +CONFIG_HID_PID y + +# Menu: Device Drivers >> HID support >> USB HID support >> USB HID transport layer +CONFIG_USB_HIDDEV y + +# Menu: Device Drivers >> HID support >> USB HID support >> USB HID transport layer >> USB HID Boot Protocol drivers + +# Menu: Device Drivers >> HSI support + +# Menu: Device Drivers >> Hardware Monitoring support +CONFIG_HWMON y mark +CONFIG_HWMON y mark mark +CONFIG_HWMON y + +# Menu: Device Drivers >> Hardware Monitoring support >> PMBus support + +# Menu: Device Drivers >> Hardware Spinlock drivers +CONFIG_HWSPINLOCK_OMAP y note + +# Menu: Device Drivers >> Hid Sensor IIO Common + +# Menu: Device Drivers >> I2C Algorithms +CONFIG_I2C_ALGOBIT p policy<(arch powerpc &/ value y) | value m> note + +# Menu: Device Drivers >> I2C Hardware Bus support +CONFIG_I2C_IMX y +CONFIG_I2C_OMAP p policy<(arch armel armhf &/ value y) | value m> note + +# Menu: Device Drivers >> I2C support +CONFIG_I2C y +CONFIG_I2C_COMPAT y mark +CONFIG_I2C_HELPER_AUTO y + +# Menu: Device Drivers >> I2C support >> I2C bus multiplexing support + +# Menu: Device Drivers >> I2C support >> I2C bus multiplexing support >> Multiplexer I2C Chip support + +# Menu: Device Drivers >> I2O device support +CONFIG_I2O_CONFIG_OLD_IOCTL n + +# Menu: Device Drivers >> IEEE 1394 (FireWire) support + +# Menu: Device Drivers >> IIO staging drivers +CONFIG_IIO_SIMPLE_DUMMY_EVENTS n note +CONFIG_IIO_SIMPLE_DUMMY_BUFFER n note + +# Menu: Device Drivers >> IIO staging drivers >> Accelerometers +CONFIG_LIS3L02DQ p policy<(arch armhf &/ value n) | value m> flag + +# Menu: Device Drivers >> IIO staging drivers >> Active energy metering IC + +# Menu: Device Drivers >> IIO staging drivers >> Analog digital bi-direction converters + +# Menu: Device Drivers >> IIO staging drivers >> Analog to digital converters +CONFIG_AD799X_RING_BUFFER y + +# Menu: Device Drivers >> IIO staging drivers >> Capacitance to digital converters + +# Menu: Device Drivers >> IIO staging drivers >> Digital gyroscope sensors + +# Menu: Device Drivers >> IIO staging drivers >> Direct Digital Synthesis + +# Menu: Device Drivers >> IIO staging drivers >> Light sensors + +# Menu: Device Drivers >> IIO staging drivers >> Magnetometer sensors + +# Menu: Device Drivers >> IIO staging drivers >> Network Analyzer, Impedance Converters + +# Menu: Device Drivers >> IIO staging drivers >> Resolver to digital converters + +# Menu: Device Drivers >> IOMMU Hardware Support +set +tree 'Device Drivers>>IOMMU Hardware Support' ?pattern _IOMMU$ ?type bool !flag EXPERIMENTAL = y +# +CONFIG_IOMMU_SUPPORT y +CONFIG_INTEL_IOMMU_DEFAULT_ON n note +CONFIG_OMAP_IOVMM n note +CONFIG_SHMOBILE_IOMMU_ADDRSIZE_2048MB y + +# Menu: Device Drivers >> ISDN feature submodules + +# Menu: Device Drivers >> ISDN support +CONFIG_ISDN y +CONFIG_HYSDN_CAPI y + +# Menu: Device Drivers >> ISDN support >> CAPI 2.0 subsystem + +# Menu: Device Drivers >> ISDN support >> CAPI 2.0 subsystem >> Active AVM cards +CONFIG_CAPI_AVM y + +# Menu: Device Drivers >> ISDN support >> CAPI 2.0 subsystem >> Active Eicon DIVA Server cards +CONFIG_CAPI_EICON y + +# Menu: Device Drivers >> ISDN support >> Modular ISDN driver + +# Menu: Device Drivers >> ISDN support >> Old ISDN4Linux (deprecated) + +# Menu: Device Drivers >> ISDN support >> Siemens Gigaset support + +# Menu: Device Drivers >> Industrial I/O support + +# Menu: Device Drivers >> IndustryPack bus support + +# Menu: Device Drivers >> Inertial measurement units + +# Menu: Device Drivers >> InfiniBand support + +# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) +set +tree 'Device Drivers,Input device support,INPUT' = - mark +set +all ?mark 'INPUT' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'INPUT' ?flag EXPERIMENTAL ?type tristate = m note +set +all ?mark 'INPUT' !flag EXPERIMENTAL ?type tristate = m +set +pattern ^MOUSE_PS2_ ?mark INPUT ?type bool !flag EXPERIMENTAL = y +set +pattern ^TOUCHSCREEN_ ?mark INPUT ?type bool !flag EXPERIMENTAL = y +set +pattern _FF$ ?mark INPUT ?type bool !flag EXPERIMENTAL = y +# +CONFIG_INPUT y +CONFIG_INPUT_MOUSEDEV y +CONFIG_INPUT_MOUSEDEV_PSAUX y +CONFIG_INPUT_MOUSEDEV_SCREEN_X 1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y 768 +CONFIG_INPUT_EVDEV y + +# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Joysticks/Gamepads +CONFIG_INPUT_JOYSTICK y +CONFIG_JOYSTICK_IFORCE_USB y +CONFIG_JOYSTICK_IFORCE_232 y +CONFIG_JOYSTICK_XPAD_LEDS y + +# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Keyboards +CONFIG_INPUT_KEYBOARD y +CONFIG_KEYBOARD_ATKBD y note +CONFIG_KEYBOARD_IMX n +CONFIG_KEYBOARD_OMAP4 p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_KEYBOARD_TWL4030 p policy<(arch armel armhf &/ value y) | value m> note + +# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Mice +CONFIG_INPUT_MOUSE y +CONFIG_MOUSE_INPORT n note + +# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Miscellaneous devices +CONFIG_INPUT_MISC y +CONFIG_INPUT_KXTJ9_POLLED_MODE n +CONFIG_INPUT_UINPUT y + +# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Tablets +CONFIG_INPUT_TABLET y + +# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Touchscreens +CONFIG_INPUT_TOUCHSCREEN y + +# Menu: Device Drivers >> Input device support >> Hardware I/O ports +CONFIG_SERIO y note +CONFIG_SERIO_I8042 y note +CONFIG_SERIO_SERPORT p policy<(arch armhf &/ value y) | value m> note +CONFIG_SERIO_LIBPS2 y note + +# Menu: Device Drivers >> LED Support +CONFIG_NEW_LEDS y + +# Menu: Device Drivers >> LED Support >> LED Class Support +CONFIG_LEDS_CLASS y +CONFIG_LEDS_PCA9532_GPIO y +CONFIG_LEDS_GPIO p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_LEDS_PWM p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_LEDS_ASIC3 y + +# Menu: Device Drivers >> LED Support >> LED Class Support >> LED Trigger support +CONFIG_LEDS_TRIGGERS y +CONFIG_LEDS_TRIGGER_HEARTBEAT p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_LEDS_TRIGGER_CPU y + +# Menu: Device Drivers >> Light sensors + +# Menu: Device Drivers >> MMC/SD/SDIO card support +CONFIG_MMC y +CONFIG_MMC_BLOCK p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_MMC_TEST n flag +CONFIG_MMC_SDHCI p policy<(arch armel armhf highbank &/ value y) | value m> note +CONFIG_MMC_SDHCI_PLTFM p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_MMC_OMAP p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_MMC_OMAP_HS p policy<(arch armel armhf &/ value y) | value m> note + +# Menu: Device Drivers >> Macintosh device drivers +CONFIG_MACINTOSH_DRIVERS y + +# Menu: Device Drivers >> Magnetometer sensors + +# Menu: Device Drivers >> Mailbox Hardware Support +CONFIG_MAILBOX y +CONFIG_PL320_MBOX y +CONFIG_OMAP_MBOX_KFIFO_SIZE 256 + +# Menu: Device Drivers >> Memory Controller drivers +CONFIG_MEMORY y +CONFIG_TEGRA20_MC y +CONFIG_TEGRA30_MC y + +# Menu: Device Drivers >> Memory Technology Device (MTD) support +CONFIG_MTD p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_MTD_BLKDEVS p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_MTD_BLOCK p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_SM_FTL m note +CONFIG_MTD_OF_PARTS p policy<(arch armel armhf &/ value y) | value m> note + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Enable UBI - Unsorted block images + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> LPDDR flash memory drivers + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Mapping drivers for chip access +CONFIG_MTD_COMPLEX_MAPPINGS y +CONFIG_MTD_PHYSMAP_COMPAT n + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> NAND Device Support +CONFIG_MTD_NAND p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_MTD_NAND_OMAP2 p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_MTD_NAND_OMAP_BCH p policy<(arch armel armhf &/ value y) | value m> note + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> OneNAND Device Support + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> RAM/ROM/Flash chip drivers + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Self-contained MTD device drivers + +# Menu: Device Drivers >> Microsoft Hyper-V guest support + +# Menu: Device Drivers >> Misc devices +CONFIG_CS5535_MFGPT n note +CONFIG_SRAM y + +# Menu: Device Drivers >> Misc devices >> EEPROM support + +# Menu: Device Drivers >> Misc devices >> Silicon Labs C2 port support + +# Menu: Device Drivers >> Misc devices >> Texas Instruments shared transport line discipline + +# Menu: Device Drivers >> Multifunction device drivers +set +tree 'Device Drivers>>Multifunction device drivers' ?pattern ^MFD_ ?type bool !flag EXPERIMENTAL = y +CONFIG_EZX_PCAP p policy<(arch armhf &/ value n) | value m> flag +CONFIG_MFD_SM501 p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_MFD_OMAP_USB_HOST y + +# Menu: Device Drivers >> Multifunction device drivers >> STMicroelectronics STMPE +CONFIG_MFD_STMPE y + +# Menu: Device Drivers >> Multifunction device drivers >> STMicroelectronics STMPE >> STMicroelectronics STMPE Interface Drivers +CONFIG_STMPE_I2C y +CONFIG_STMPE_SPI y + +# Menu: Device Drivers >> Multimedia Capabilities Port drivers + +# Menu: Device Drivers >> Multimedia support +CONFIG_MEDIA_SUPPORT p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_MEDIA_ANALOG_TV_SUPPORT y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT y +CONFIG_MEDIA_RC_SUPPORT y +CONFIG_VIDEO_FIXED_MINOR_RANGES n +CONFIG_DVB_NET y +CONFIG_DVB_MAX_ADAPTERS 8 +CONFIG_DVB_DYNAMIC_MINORS y +CONFIG_SMS_SIANO_RC y +CONFIG_MEDIA_SUBDRV_AUTOSELECT y + +# Menu: Device Drivers >> Multimedia support >> AM/FM radio receivers/transmitters support +CONFIG_MEDIA_RADIO_SUPPORT y + +# Menu: Device Drivers >> Multimedia support >> AM/FM radio receivers/transmitters support >> Customize TV tuners + +# Menu: Device Drivers >> Multimedia support >> AM/FM radio receivers/transmitters support >> Radio Adapters +CONFIG_RADIO_ADAPTERS y +CONFIG_RADIO_SI470X y + +# Menu: Device Drivers >> Multimedia support >> AM/FM radio receivers/transmitters support >> Radio Adapters >> ISA radio devices +CONFIG_V4L_RADIO_ISA_DRIVERS y + +# Menu: Device Drivers >> Multimedia support >> Cameras/video grabbers support +CONFIG_MEDIA_CAMERA_SUPPORT y + +# Menu: Device Drivers >> Multimedia support >> Cameras/video grabbers support >> ISA and parallel port devices +CONFIG_MEDIA_PARPORT_SUPPORT y + +# Menu: Device Drivers >> Multimedia support >> Cameras/video grabbers support >> Media test drivers +CONFIG_V4L_TEST_DRIVERS y + +# Menu: Device Drivers >> Multimedia support >> Cameras/video grabbers support >> Memory-to-memory multimedia devices +CONFIG_V4L_MEM2MEM_DRIVERS y + +# Menu: Device Drivers >> Multimedia support >> Cameras/video grabbers support >> V4L platform devices +CONFIG_V4L_PLATFORM_DRIVERS y + +# Menu: Device Drivers >> Multimedia support >> Media PCI Adapters +CONFIG_MEDIA_PCI_SUPPORT y +CONFIG_VIDEO_SAA7134_RC y +CONFIG_DVB_AV7110_OSD y + +# Menu: Device Drivers >> Multimedia support >> Media USB Adapters +CONFIG_MEDIA_USB_SUPPORT y +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV y +CONFIG_USB_PWC_INPUT_EVDEV y +CONFIG_VIDEO_PVRUSB2_SYSFS y +CONFIG_VIDEO_PVRUSB2_DVB y +CONFIG_VIDEO_STK1160_AC97 y +CONFIG_VIDEO_CX231XX_RC y +CONFIG_DVB_USB_DIBUSB_MB_FAULTY n + +# Menu: Device Drivers >> Multimedia support >> Media USB Adapters >> GSPCA based webcams + +# Menu: Device Drivers >> Multimedia support >> Remote Controller devices +CONFIG_RC_DEVICES y + +# Menu: Device Drivers >> Multimedia support >> Remote controller decoders +CONFIG_RC_DECODERS y + +# Menu: Device Drivers >> Multiple devices driver support (RAID and LVM) +set +tree 'Device Drivers>>MD' ?flag EXPERIMENTAL ?type bool = n +set +tree 'Device Drivers>>MD' ?flag EXPERIMENTAL ?type tristate = m note +set +tree 'Device Drivers>>MD' !flag EXPERIMENTAL ?type tristate = m +# +CONFIG_MD y +CONFIG_BLK_DEV_MD y +CONFIG_MD_AUTODETECT y +CONFIG_BLK_DEV_DM y +CONFIG_DM_UEVENT y + +# Menu: Device Drivers >> Network device support +set +pattern '^NET_VENDOR_' = y +# +CONFIG_NETDEVICES y +CONFIG_FDDI y +CONFIG_HIPPI n note +CONFIG_PPP y +CONFIG_PPP_FILTER y +CONFIG_PPP_MULTILINK y +CONFIG_SLIP_COMPRESSED y +CONFIG_SLIP_SMART y +CONFIG_SLIP_MODE_SLIP6 y +CONFIG_XEN_NETDEV_FRONTEND y note + +# Menu: Device Drivers >> Network device support >> ARCnet support + +# Menu: Device Drivers >> Network device support >> ATM drivers +CONFIG_ATM_DRIVERS y + +# Menu: Device Drivers >> Network device support >> Ethernet driver support +CONFIG_ETHERNET y +CONFIG_NET_CALXEDA_XGMAC p policy<(arch armhf &/ value y) | value m> note +CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL n + +# Menu: Device Drivers >> Network device support >> IEEE 802.15.4 drivers +CONFIG_IEEE802154_FAKEHARD n flag + +# Menu: Device Drivers >> Network device support >> Network core driver support +CONFIG_NET_CORE y +CONFIG_NET_FC y +CONFIG_NETCONSOLE_DYNAMIC y +CONFIG_NETPOLL_TRAP n +CONFIG_TUN y +CONFIG_VIRTIO_NET p policy<(arch i386 amd64 &/ value y) | (arch armel armhf &/ value n) | value m> note + +# Menu: Device Drivers >> Network device support >> Network core driver support >> Ethernet team driver support + +# Menu: Device Drivers >> Network device support >> PHY Device support and infrastructure +set +tree 'Device Drivers>>Network device support>>PHY Device support and infrastructure' ?flag EXPERIMENTAL ?type bool = n +set +tree 'Device Drivers>>Network device support>>PHY Device support and infrastructure' ?flag EXPERIMENTAL ?type tristate = y note +set +tree 'Device Drivers>>Network device support>>PHY Device support and infrastructure' !flag EXPERIMENTAL ?type tristate = y note +# +CONFIG_PHYLIB y +CONFIG_STE10XP y +CONFIG_FIXED_PHY y + +# Menu: Device Drivers >> Network device support >> S/390 network device drivers + +# Menu: Device Drivers >> Network device support >> Wan interfaces support +CONFIG_WAN y +CONFIG_DSCC4_PCISYNC y +CONFIG_DSCC4_PCI_RST y +CONFIG_DLCI_MAX 8 + +# Menu: Device Drivers >> Network device support >> Wireless LAN +CONFIG_WLAN y +CONFIG_B43_BCMA y +CONFIG_B43_PCMCIA n +CONFIG_B43_SDIO n +CONFIG_B43_PHY_N y +CONFIG_B43_PHY_LP y +CONFIG_B43_PHY_HT y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE y +CONFIG_BRCMFMAC_USB y +CONFIG_BRCMDBG - flag + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Atheros Wireless Cards +CONFIG_ATH6KL_USB m note + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi) + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Intel Wireless WiFi Next Gen AGN - Wireless-N/Advanced-N/Ultimate-N (iwlwifi) >> Debugging Options +CONFIG_IWLWIFI_DEBUGFS y +CONFIG_IWLWIFI_DEVICE_TRACING y + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Ralink driver support +CONFIG_RT2800PCI_RT33XX y +CONFIG_RT2800PCI_RT35XX y +CONFIG_RT2800PCI_RT53XX y +CONFIG_RT2800PCI_RT3290 y +CONFIG_RT2800USB_RT33XX y +CONFIG_RT2800USB_RT35XX y +CONFIG_RT2800USB_RT3573 y +CONFIG_RT2800USB_RT53XX y +CONFIG_RT2800USB_RT55XX y + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Realtek rtlwifi family of devices +CONFIG_RTL8192DE m note + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> TI Wireless LAN support +CONFIG_WL_TI y + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> TI Wireless LAN support >> TI wl1251 driver support + +# Menu: Device Drivers >> PHY Subsystem +CONFIG_TWL4030_USB y + +# Menu: Device Drivers >> PPS support +CONFIG_PPS_CLIENT_KTIMER n flag + +# Menu: Device Drivers >> PTP clock support + +# Menu: Device Drivers >> Parallel port support +CONFIG_PARPORT_PC_FIFO y +CONFIG_PARPORT_PC_SUPERIO n +CONFIG_PARPORT_1284 y + +# Menu: Device Drivers >> Passive cards +set +tree 'Device Drivers>>Passive cards' ?pattern '^HISAX_' !pattern '^HISAX_NO_' ?type bool = y + +# Menu: Device Drivers >> Pin controllers +set +tree 'Device Drivers>>Pin controllers' ?pattern '^PINCTRL_' ?type bool = y +CONFIG_PINMUX y +CONFIG_PINCONF y + +# Menu: Device Drivers >> Platform support for Chrome hardware +CONFIG_CHROME_PLATFORMS y + +# Menu: Device Drivers >> Plug and Play support +CONFIG_PNP y +CONFIG_ISAPNP y +CONFIG_PNPBIOS y +CONFIG_PNPBIOS_PROC_FS y + +# Menu: Device Drivers >> Power supply class support +CONFIG_POWER_SUPPLY y +CONFIG_BATTERY_BQ27X00_I2C y +CONFIG_BATTERY_BQ27X00_PLATFORM y +CONFIG_CHARGER_MANAGER y +CONFIG_POWER_RESET_RESTART y + +# Menu: Device Drivers >> Power supply class support >> Board level reset or power off +CONFIG_POWER_RESET y +CONFIG_POWER_RESET_GPIO y +CONFIG_POWER_RESET_VEXPRESS y + +# Menu: Device Drivers >> Pressure sensors + +# Menu: Device Drivers >> Pulse-Width Modulation (PWM) Support +CONFIG_PWM y + +# Menu: Device Drivers >> Real Time Clock +CONFIG_RTC_CLASS y +CONFIG_RTC_HCTOSYS y +CONFIG_RTC_SYSTOHC y +CONFIG_RTC_HCTOSYS_DEVICE "rtc0" +CONFIG_RTC_INTF_SYSFS y +CONFIG_RTC_INTF_PROC y +CONFIG_RTC_INTF_DEV y +CONFIG_RTC_INTF_DEV_UIE_EMUL n +CONFIG_RTC_DRV_TEST n flag +CONFIG_RTC_DRV_M41T80_WDT y +CONFIG_RTC_DRV_CMOS p policy<(arch i386 amd64 &/ value y) | value m> note +CONFIG_RTC_DRV_TWL4030 p policy<(arch armel armhf &/ value y) | value m> note + +# Menu: Device Drivers >> Remoteproc drivers + +# Menu: Device Drivers >> SCSI device support + +# Menu: Device Drivers >> SCSI device support >> SCSI device support +CONFIG_SCSI y +CONFIG_SCSI_PROC_FS y +CONFIG_BLK_DEV_SD y note +CONFIG_BLK_DEV_SR y note +CONFIG_BLK_DEV_SR_VENDOR n note +CONFIG_CHR_DEV_SG y note +CONFIG_SCSI_MULTI_LUN y +CONFIG_SCSI_CONSTANTS y +CONFIG_SCSI_LOGGING y +CONFIG_SCSI_SCAN_ASYNC y +CONFIG_SCSI_OSD_DPRINT_SENSE 1 + +# Menu: Device Drivers >> SCSI device support >> SCSI device support >> PCMCIA SCSI adapter support +CONFIG_SCSI_LOWLEVEL_PCMCIA y + +# Menu: Device Drivers >> SCSI device support >> SCSI device support >> SCSI Device Handlers + +# Menu: Device Drivers >> SCSI device support >> SCSI device support >> SCSI Transports +CONFIG_SCSI_SPI_ATTRS p policy<(arch i386 amd64 &/ value y) | value m> note +CONFIG_SCSI_FC_TGT_ATTRS y +CONFIG_SCSI_SAS_ATA y +CONFIG_SCSI_SAS_HOST_SMP y +CONFIG_SCSI_SRP_TGT_ATTRS y + +# Menu: Device Drivers >> SCSI device support >> SCSI device support >> SCSI low-level drivers +CONFIG_SCSI_LOWLEVEL y +CONFIG_AIC7XXX_CMDS_PER_DEVICE 8 +CONFIG_AIC7XXX_RESET_DELAY_MS 15000 +CONFIG_AIC7XXX_DEBUG_MASK 0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT y +CONFIG_SCSI_AIC7XXX_OLD n note +CONFIG_AIC79XX_CMDS_PER_DEVICE 32 +CONFIG_AIC79XX_RESET_DELAY_MS 5000 +CONFIG_AIC79XX_DEBUG_MASK 0 +CONFIG_AIC79XX_REG_PRETTY_PRINT y +CONFIG_SCSI_MVSAS_TASKLET n +CONFIG_MEGARAID_NEWGEN y +CONFIG_SCSI_MPT2SAS_MAX_SGE 128 +CONFIG_SCSI_MPT2SAS_LOGGING n +CONFIG_SCSI_MPT3SAS_MAX_SGE 128 +CONFIG_SCSI_MPT3SAS_LOGGING n +CONFIG_SCSI_FLASHPOINT y +CONFIG_SCSI_EATA_TAGGED_QUEUE y +CONFIG_SCSI_EATA_LINKED_COMMANDS y +CONFIG_SCSI_EATA_MAX_TAGS 16 +CONFIG_SCSI_IZIP_EPP16 n +CONFIG_SCSI_IZIP_SLOW_CTR n +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE 1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS 16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS 64 +CONFIG_SCSI_SYM53C8XX_MMIO y +CONFIG_SCSI_IPR_TRACE y +CONFIG_SCSI_IPR_DUMP y +CONFIG_SCSI_DEBUG m +CONFIG_SCSI_VIRTIO m note +CONFIG_SCSI_GENERIC_NCR53C400 y +CONFIG_SCSI_U14_34F_TAGGED_QUEUE y +CONFIG_SCSI_U14_34F_LINKED_COMMANDS y +CONFIG_SCSI_U14_34F_MAX_TAGS 8 + +# Menu: Device Drivers >> SPI support +CONFIG_SPI y +CONFIG_SPI_XILINX n +CONFIG_SPI_SPIDEV m note +CONFIG_SPI_OMAP24XX y + +# Menu: Device Drivers >> Samsung thermal drivers + +# Menu: Device Drivers >> Sensors used on soc_camera driver + +# Menu: Device Drivers >> Serial ATA and Parallel ATA drivers +CONFIG_ATA y mark +CONFIG_ATA_VERBOSE_ERROR y +CONFIG_ATA_ACPI y +CONFIG_SATA_PMP y +CONFIG_SATA_AHCI_PLATFORM p policy<(arch armhf &/ value y) | value m> note +CONFIG_ATA_SFF y +CONFIG_ATA_BMDMA y +CONFIG_ATA_PIIX p policy<(arch i386 amd64 &/ value y) | value m> note +CONFIG_SATA_SVW p policy<(arch powerpc &/ value y) | value m> note +CONFIG_PATA_HPT3X3_DMA n note +CONFIG_PATA_SIS p policy<(arch i386 amd64 &/ value y) | value m> note +CONFIG_PATA_ACPI p policy<(arch i386 amd64 &/ value m)> note +CONFIG_ATA_GENERIC p policy<(arch i386 amd64 &/ value y) | value m> note + +# Menu: Device Drivers >> SoC Audio support for SuperH + +# Menu: Device Drivers >> Sonics Silicon Backplane + +# Menu: Device Drivers >> Sony MemoryStick card support + +# Menu: Device Drivers >> Sound card support +CONFIG_SOUND p policy<(arch armel armhf &/ value y) | value m> note + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture +CONFIG_SND p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_SND_PCM_OSS n note + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support +CONFIG_SND_SOC p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_SND_OMAP_SOC p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_SND_OMAP_SOC_OMAP_TWL4030 p policy<(arch armel armhf &/ value y) | value m> note + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> SoC Audio for Freescale MXS CPUs + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> SoC Audio for Freescale PowerPC CPUs + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> SoC Audio for Freescale i.MX CPUs + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> SoC Audio support for Ux500 platform + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ARM sound devices + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> Apple Onboard Audio driver + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> FireWire sound devices +CONFIG_SND_FIREWIRE y + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> GSC sound devices + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> Generic sound devices +CONFIG_SND_DRIVERS y + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ISA sound devices +CONFIG_SND_ISA y + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> MIPS sound devices + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> PCI sound devices +CONFIG_SND_PCI y + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> PCI sound devices >> Intel HD Audio + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> PCMCIA sound devices +CONFIG_SND_PCMCIA y + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> PowerPC sound devices + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> SPI sound devices +CONFIG_SND_SPI y + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> SUPERH sound devices + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> Sparc sound devices + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> USB sound devices +CONFIG_SND_USB y +CONFIG_SND_USB_CAIAQ_INPUT y + +# Menu: Device Drivers >> Sound card support >> Open Sound System (DEPRECATED) + +# Menu: Device Drivers >> Sound card support >> Open Sound System (DEPRECATED) >> OSS sound modules + +# Menu: Device Drivers >> Speakup console speech + +# Menu: Device Drivers >> Staging drivers +CONFIG_STAGING y +CONFIG_PANEL_PARPORT 0 +CONFIG_PANEL_PROFILE 5 +CONFIG_PANEL_CHANGE_MESSAGE n +CONFIG_ZSMALLOC y note +CONFIG_ZRAM y mark note +CONFIG_SBE_PMCC4_NCOMM y + +# Menu: Device Drivers >> Staging drivers >> DSP Bridge driver + +# Menu: Device Drivers >> Staging drivers >> Data acquisition support (comedi) +CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB 2048 +CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB 20480 + +# Menu: Device Drivers >> Staging drivers >> Data acquisition support (comedi) >> Comedi ISA and PC/104 drivers +CONFIG_COMEDI_ISA_DRIVERS y + +# Menu: Device Drivers >> Staging drivers >> Data acquisition support (comedi) >> Comedi PCI drivers +CONFIG_COMEDI_PCI_DRIVERS y + +# Menu: Device Drivers >> Staging drivers >> Data acquisition support (comedi) >> Comedi PCMCIA drivers +CONFIG_COMEDI_PCMCIA_DRIVERS y + +# Menu: Device Drivers >> Staging drivers >> Data acquisition support (comedi) >> Comedi USB drivers +CONFIG_COMEDI_USB_DRIVERS y + +# Menu: Device Drivers >> Staging drivers >> Data acquisition support (comedi) >> Comedi misc drivers +CONFIG_COMEDI_MISC_DRIVERS y + +# Menu: Device Drivers >> Staging drivers >> GCT GDM72xx WiMAX support +CONFIG_WIMAX_GDM72XX_QOS y +CONFIG_WIMAX_GDM72XX_K_MODE y +CONFIG_WIMAX_GDM72XX_WIMAX2 y +CONFIG_WIMAX_GDM72XX_USB y +CONFIG_WIMAX_GDM72XX_USB_PM y + +# Menu: Device Drivers >> Staging drivers >> Line6 USB support +CONFIG_LINE6_USB_IMPULSE_RESPONSE n + +# Menu: Device Drivers >> Staging drivers >> Media staging drivers +CONFIG_STAGING_MEDIA y +CONFIG_DT3155_CCIR n note +CONFIG_DT3155_STREAMING y + +# Menu: Device Drivers >> Staging drivers >> Media staging drivers >> Linux Infrared Remote Control IR receiver/transmitter drivers +CONFIG_LIRC_STAGING y +CONFIG_LIRC_SERIAL_TRANSMITTER y + +# Menu: Device Drivers >> TI VLYNQ + +# Menu: Device Drivers >> Temperature sensors + +# Menu: Device Drivers >> Texas Instruments WL128x FM driver (ST based) + +# Menu: Device Drivers >> Texas Instruments thermal drivers +CONFIG_OMAP4_THERMAL y +CONFIG_DRA752_THERMAL y + +# Menu: Device Drivers >> Triggers - standalone + +# Menu: Device Drivers >> USB Network Adapters +CONFIG_USB_USBNET p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_USB_NET_SMSC95XX p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_USB_KC2190 y note + +# Menu: Device Drivers >> USB Peripheral Controller +CONFIG_USB_M66592 n note +CONFIG_USB_DUMMY_HCD n flag + +# Menu: Device Drivers >> USB Physical Layer drivers +CONFIG_NOP_USB_XCEIV p policy<(arch armel armhf &/ value y) | value m> note + +# Menu: Device Drivers >> USB support +CONFIG_USB_SUPPORT y + +# Menu: Device Drivers >> USB support >> Support for Host-side USB +CONFIG_USB y +CONFIG_USB_OTG n note mark +CONFIG_USB_OTG_WHITELIST n note +CONFIG_USB_OTG_BLACKLIST_HUB n note +CONFIG_USB_XHCI_HCD y note +CONFIG_USB_EHCI_HCD y note +CONFIG_USB_OHCI_HCD y note +CONFIG_USB_UHCI_HCD y note +CONFIG_USB_HCD_BCMA p policy<(arch armel armhf &/ value n) | value m> note +CONFIG_USB_HCD_SSB p policy<(arch armel armhf &/ value n) | value m> note +CONFIG_USB_MUSB_HDRC p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_USB_MUSB_TUSB6010 p policy<(arch armel armhf &/ value n) | value m> note +CONFIG_USB_SISUSBVGA_CON n note +CONFIG_USB_MUSB_OMAP2PLUS y +CONFIG_USB_INVENTRA_DMA p policy<(arch armel armhf &/ value y) | value n> note + +# Menu: Device Drivers >> USB support >> Support for Host-side USB >> USB DSL modem support + +# Menu: Device Drivers >> USB support >> Support for Host-side USB >> USB Serial Converter support +CONFIG_USB_SERIAL_GENERIC y +CONFIG_USB_SERIAL_SAFE_PADDED n +CONFIG_USB_SERIAL_DEBUG m note + +# Menu: Device Drivers >> USB support >> USB Gadget Support +CONFIG_USB_GADGET p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_USB_GADGETFS m note +CONFIG_USB_FUNCTIONFS m note +CONFIG_USB_G_MULTI p policy<(arch armel armhf &/ value m) | value n> note + +# Menu: Device Drivers >> Ultra Wideband devices + +# Menu: Device Drivers >> Userspace I/O drivers + +# Menu: Device Drivers >> VFIO Non-Privileged userspace driver framework + +# Menu: Device Drivers >> VME bridge support + +# Menu: Device Drivers >> Virtio drivers +CONFIG_VIRTIO_PCI p policy<(arch i386 amd64 &/ value y) | (arch armel armhf &/ value n) | value m> note +CONFIG_VIRTIO_BALLOON p policy<(arch armel armhf &/ value n) | value m> note +CONFIG_VIRTIO_MMIO p policy<(arch armel armhf &/ value n) | value m> note +CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES y + +# Menu: Device Drivers >> Virtualization drivers +CONFIG_VIRT_DRIVERS y + +# Menu: Device Drivers >> Voltage and Current Regulator Support +CONFIG_REGULATOR y +CONFIG_REGULATOR_FIXED_VOLTAGE p policy<(arch armel armhf &/ value y) | value m> note + +# Menu: Device Drivers >> Watchdog Timer Support +CONFIG_WATCHDOG y +CONFIG_WATCHDOG_CORE y + +# Menu: Device Drivers >> WiMAX Wireless Broadband devices + +# Menu: Device Drivers >> X86 Platform Specific Device Drivers +CONFIG_X86_PLATFORM_DEVICES y + +# Menu: Device Drivers >> Xen driver support +CONFIG_XEN_BALLOON y +CONFIG_XEN_SELFBALLOONING y +CONFIG_XEN_BALLOON_MEMORY_HOTPLUG y +CONFIG_XEN_SCRUB_PAGES y +CONFIG_XEN_BACKEND y +CONFIG_XEN_COMPAT_XENFS y +CONFIG_XEN_SYS_HYPERVISOR y +CONFIG_XEN_ACPI_PROCESSOR p policy<(arch i386 amd64 &/ value y) | value m> +CONFIG_XEN_MCE_LOG y + +# Menu: Device Drivers >> iwl3945 / iwl4965 Debugging Options + +# Menu: Enable loadable module support +CONFIG_MODULES y +CONFIG_MODULE_FORCE_LOAD n +CONFIG_MODULE_UNLOAD y +CONFIG_MODULE_FORCE_UNLOAD n +CONFIG_MODVERSIONS y +CONFIG_MODULE_SRCVERSION_ALL y +CONFIG_MODULE_SIG y +CONFIG_MODULE_SIG_FORCE n +CONFIG_MODULE_SIG_ALL y +CONFIG_MODULE_SIG_SHA512 y + +# Menu: Enable the block layer +CONFIG_BLOCK y +CONFIG_BLK_DEV_THROTTLING y note + +# Menu: Executable file formats / Emulations +CONFIG_BINFMT_ELF y + +# Menu: Executable file formats / Emulations (x86) +CONFIG_IA32_EMULATION y +CONFIG_IA32_AOUT n note mark +CONFIG_X86_X32 y + +# Menu: File systems +set +tree 'File systems' ?flag EXPERIMENTAL ?type bool = n +set +tree 'File systems' ?flag EXPERIMENTAL ?type tristate = m note` +set +tree 'File systems' !flag EXPERIMENTAL ?type tristate = m +set +tree 'File systems' ?pattern _POSIX_ACL$ !flag EXPERIMENTAL = y +set +tree 'File systems' ?pattern _SECURITY$ !flag EXPERIMENTAL = y +set +tree 'File systems' ?pattern _XATTR$ !flag EXPERIMENTAL = y +# +CONFIG_EXT2_FS n note +CONFIG_EXT3_FS n note +CONFIG_EXT4_FS y note +CONFIG_EXT4_USE_FOR_EXT23 y +CONFIG_REISERFS_CHECK n +CONFIG_REISERFS_PROC_INFO n +CONFIG_JFS_STATISTICS y +CONFIG_XFS_QUOTA y +CONFIG_XFS_RT y +CONFIG_GFS2_FS_LOCKING_DLM y +CONFIG_OCFS2_FS_STATS y +CONFIG_OCFS2_DEBUG_MASKLOG y +CONFIG_BTRFS_FS_POSIX_ACL y +CONFIG_FILE_LOCKING y +CONFIG_DNOTIFY y +CONFIG_INOTIFY_USER y +CONFIG_FANOTIFY y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS y +CONFIG_QUOTA y +CONFIG_QUOTA_NETLINK_INTERFACE y +CONFIG_PRINT_QUOTA_WARNING n +CONFIG_FUSE_FS y note + +# Menu: File systems >> CD-ROM/DVD Filesystems +CONFIG_JOLIET y +CONFIG_ZISOFS y + +# Menu: File systems >> Caches +CONFIG_FSCACHE_STATS y +CONFIG_FSCACHE_HISTOGRAM n +CONFIG_FSCACHE_OBJECT_LIST n +CONFIG_CACHEFILES_HISTOGRAM n + +# Menu: File systems >> DOS/FAT/NT Filesystems +CONFIG_VFAT_FS y +CONFIG_FAT_DEFAULT_CODEPAGE 437 +CONFIG_FAT_DEFAULT_IOCHARSET "iso8859-1" +CONFIG_NTFS_RW n + +# Menu: File systems >> Distributed Lock Manager (DLM) + +# Menu: File systems >> Miscellaneous filesystems +CONFIG_MISC_FILESYSTEMS y +CONFIG_ECRYPT_FS y note +CONFIG_JFFS2_FS_DEBUG 0 +CONFIG_JFFS2_FS_WRITEBUFFER y +CONFIG_JFFS2_FS_WBUF_VERIFY n +CONFIG_JFFS2_SUMMARY n +CONFIG_JFFS2_COMPRESSION_OPTIONS y +CONFIG_JFFS2_ZLIB y +CONFIG_JFFS2_LZO y +CONFIG_JFFS2_RTIME y +CONFIG_JFFS2_RUBIN n +CONFIG_JFFS2_CMODE_FAVOURLZO y +CONFIG_UBIFS_FS_ADVANCED_COMPR n +CONFIG_UBIFS_FS_LZO y +CONFIG_UBIFS_FS_ZLIB y +CONFIG_LOGFS n note +CONFIG_SQUASHFS_ZLIB y +CONFIG_SQUASHFS_LZO y +CONFIG_SQUASHFS_XZ y +CONFIG_SQUASHFS_4K_DEVBLK_SIZE n +CONFIG_SQUASHFS_4K_DEVBLK_SIZE n note +CONFIG_SQUASHFS_4K_DEVBLK_SIZE n +CONFIG_SQUASHFS_4K_DEVBLK_SIZE n note +CONFIG_SQUASHFS_EMBEDDED n +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE 3 +CONFIG_ROMFS_BACKED_BY_BLOCK y +CONFIG_PSTORE y +CONFIG_PSTORE_CONSOLE n note +CONFIG_PSTORE_FTRACE n +CONFIG_F2FS_STAT_FS y + +# Menu: File systems >> Native language support +CONFIG_NLS y note +CONFIG_NLS_CODEPAGE_437 y + +# Menu: File systems >> Network File Systems +CONFIG_NETWORK_FILESYSTEMS y +CONFIG_NFS_V3_ACL y +CONFIG_NFS_SWAP y +CONFIG_NFS_V4_1 y +CONFIG_NFS_V4_2 y +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN "kernel.org" +CONFIG_NFS_FSCACHE y +CONFIG_NFS_USE_LEGACY_DNS n +CONFIG_NFSD_V3 y +CONFIG_NFSD_V3_ACL y +CONFIG_NFSD_V4 y note +CONFIG_CIFS_STATS y +CONFIG_CIFS_STATS2 n +CONFIG_CIFS_WEAK_PW_HASH y +CONFIG_CIFS_UPCALL y +CONFIG_CIFS_POSIX y +CONFIG_CIFS_ACL y +CONFIG_CIFS_DEBUG y +CONFIG_CIFS_DEBUG2 n +CONFIG_CIFS_DFS_UPCALL y +CONFIG_CIFS_SMB2 y +CONFIG_CIFS_FSCACHE y +CONFIG_NCPFS_PACKET_SIGNING y +CONFIG_NCPFS_IOCTL_LOCKING y +CONFIG_NCPFS_STRONG y +CONFIG_NCPFS_NFS_NS y +CONFIG_NCPFS_OS2_NS y +CONFIG_NCPFS_SMALLDOS n +CONFIG_NCPFS_NLS y +CONFIG_NCPFS_EXTRAS y + +# Menu: File systems >> Pseudo filesystems +CONFIG_PROC_FS y +CONFIG_PROC_KCORE y +CONFIG_PROC_VMCORE y +CONFIG_PROC_SYSCTL y +CONFIG_PROC_PAGE_MONITOR y +CONFIG_SYSFS y +CONFIG_TMPFS y +CONFIG_HUGETLBFS y + +# Menu: Firmware Drivers +CONFIG_EDD y note + +# Menu: Firmware Drivers >> EFI (Extensible Firmware Interface) Support +CONFIG_EFI_VARS y note + +# Menu: Firmware Drivers >> Google Firmware Drivers + +# Menu: Firmware Drivers >> Google Firmware Drivers >> Google Firmware Drivers + +# Menu: Floating point emulation (arm) + +# Menu: General setup +CONFIG_KERNEL_GZIP y +CONFIG_IKCONFIG n note +CONFIG_SLUB_DEBUG y +CONFIG_RD_GZIP y +CONFIG_RD_BZIP2 y +CONFIG_RD_LZMA y +CONFIG_RD_XZ y +CONFIG_RD_LZO y +CONFIG_RD_LZ4 y +CONFIG_SLUB y + +# Menu: General setup (arm) +# Menu: General setup (powerpc) +# Menu: General setup (x86) +CONFIG_OPROFILE_EVENT_MULTIPLEX n +CONFIG_KPROBES y +CONFIG_JUMP_LABEL y +CONFIG_UPROBES y + +# Menu: General setup >> CPU/Task time and stats accounting + +# Menu: General setup >> Configure standard kernel features (expert users) +CONFIG_EXPERT y + +# Menu: General setup >> Control Group support +CONFIG_CGROUPS y +CONFIG_CGROUP_HUGETLB y +CONFIG_BLK_CGROUP y note + +# Menu: General setup >> Control Group support >> Group CPU scheduler +CONFIG_CGROUP_SCHED y +CONFIG_FAIR_GROUP_SCHED y +CONFIG_CFS_BANDWIDTH y note +CONFIG_RT_GROUP_SCHED y + +# Menu: General setup >> GCOV-based kernel profiling +CONFIG_GCOV_KERNEL n + +# Menu: General setup >> IRQ subsystem + +# Menu: General setup >> Kernel Performance Events And Counters + +# Menu: General setup >> Namespaces support +CONFIG_NAMESPACES y +CONFIG_UTS_NS y +CONFIG_IPC_NS y +CONFIG_USER_NS y +CONFIG_PID_NS y +CONFIG_NET_NS y + +# Menu: General setup >> RCU Subsystem +CONFIG_TREE_RCU y + +# Menu: General setup >> Timers subsystem + +# Menu: IO Schedulers +CONFIG_IOSCHED_DEADLINE y +CONFIG_IOSCHED_CFQ y +CONFIG_CFQ_GROUP_IOSCHED y +CONFIG_DEFAULT_DEADLINE y + +# Menu: Kernel Features +# Menu: Kernel Features (arm) +CONFIG_PREEMPT_VOLUNTARY y +CONFIG_COMPACTION y +CONFIG_MIGRATION y +CONFIG_KSM y +CONFIG_TRANSPARENT_HUGEPAGE y +CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS y + +CONFIG_CC_STACKPROTECTOR y mark + +# Menu: Kernel hacking +CONFIG_MAGIC_SYSRQ y +CONFIG_PANIC_ON_OOPS n note + +# Menu: Kernel hacking (arm) +# Menu: Kernel hacking (powerpc) +# Menu: Kernel hacking (x86) +CONFIG_STRICT_DEVMEM y +CONFIG_DEBUG_RODATA y +CONFIG_DEBUG_SET_MODULE_RONX y +CONFIG_EARLY_PRINTK y +CONFIG_DEBUG_NX_TEST n flag + +# Menu: Kernel hacking >> Compile-time checks and compiler options +CONFIG_DEBUG_FS y note +CONFIG_DEBUG_INFO y note +CONFIG_DEBUG_INFO_REDUCED n + +# Menu: Kernel hacking >> Debug Lockups and Hangs +CONFIG_LOCKUP_DETECTOR y + +# Menu: Kernel hacking >> Kernel debugging +CONFIG_DEBUG_KERNEL y note +CONFIG_SCHED_DEBUG y + +# Menu: Kernel hacking >> Kernel debugging >> KGDB: kernel debugger +CONFIG_KGDB y +CONFIG_KGDB_SERIAL_CONSOLE y note + +# Menu: Kernel hacking >> Lock Debugging (spinlocks, mutexes, etc...) + +# Menu: Kernel hacking >> Memory Debugging + +# Menu: Kernel hacking >> Memory Debugging >> kmemcheck: trap use of uninitialized memory + +# Menu: Kernel hacking >> RCU Debugging +CONFIG_RCU_TORTURE_TEST n flag + +# Menu: Kernel hacking >> Runtime Testing +CONFIG_LKDTM n flag +CONFIG_BACKTRACE_SELF_TEST n flag + +# Menu: Kernel hacking >> Sample kernel code +CONFIG_SAMPLES n + +# Menu: Kernel hacking >> Tracers +CONFIG_FTRACE y +CONFIG_FUNCTION_TRACER y +CONFIG_FUNCTION_GRAPH_TRACER y +CONFIG_SCHED_TRACER y +CONFIG_FTRACE_SYSCALLS y +CONFIG_BRANCH_PROFILE_NONE y +CONFIG_STACK_TRACER y +CONFIG_BLK_DEV_IO_TRACE y +CONFIG_KPROBE_EVENT y +CONFIG_UPROBE_EVENT y +CONFIG_DYNAMIC_FTRACE y +CONFIG_FUNCTION_PROFILER y +CONFIG_FTRACE_STARTUP_TEST n flag +CONFIG_MMIOTRACE y +CONFIG_MMIOTRACE_TEST n flag +CONFIG_RING_BUFFER_BENCHMARK n flag +CONFIG_RING_BUFFER_STARTUP_TEST n flag + +# Menu: Kernel hacking >> printk and dmesg options +CONFIG_PRINTK_TIME y +CONFIG_DYNAMIC_DEBUG y + +# Menu: Kernel options +CONFIG_APM_EMULATION p policy<(arch armel armhf &/ value n) | value m> note + +# Menu: Kernel options (powerpc) +CONFIG_KEXEC y +CONFIG_CRASH_DUMP y + +# Menu: Library routines +CONFIG_CRC16 y note +CONFIG_CRC_T10DIF y note +CONFIG_CRC32 y note +CONFIG_CRC32_SELFTEST n flag +CONFIG_XZ_DEC y note +CONFIG_FONTS p policy<(arch armel armhf &/ value y) | value n> +CONFIG_FONT_8x8 y +CONFIG_FONT_8x16 y +CONFIG_FONT_6x11 n +CONFIG_FONT_7x14 n +CONFIG_FONT_PEARL_8x8 n +CONFIG_FONT_ACORN_8x8 y +CONFIG_FONT_MINI_4x6 n +CONFIG_FONT_SUN8x16 n +CONFIG_FONT_SUN12x22 n +CONFIG_FONT_10x18 n + +# Menu: Networking options +CONFIG_PACKET y note +CONFIG_UNIX y note +CONFIG_NETWORK_SECMARK y +CONFIG_ATM_CLIP_NO_ICMP n +CONFIG_ATM_BR2684_IPFILTER n +CONFIG_BRIDGE_IGMP_SNOOPING y +CONFIG_VLAN_8021Q_GVRP y +CONFIG_IPX_INTERN n +CONFIG_IPDDP_ENCAP y +CONFIG_X25 m note +CONFIG_LAPB m note +CONFIG_IEEE802154 m note +CONFIG_MAC802154 - note +CONFIG_DCB y +CONFIG_DNS_RESOLVER y note +CONFIG_BATMAN_ADV_BLA y +CONFIG_BATMAN_ADV_DAT y +CONFIG_BPF_JIT y note +CONFIG_COPS_DAYNA y +CONFIG_COPS_TANGENT y + +# Menu: Networking options >> DCCP CCIDs Configuration + +# Menu: Networking options >> DCCP Kernel Hacking + +# Menu: Networking options >> Network packet filtering framework (Netfilter) +CONFIG_NETFILTER y mark + +# Menu: Networking options >> Network packet filtering framework (Netfilter) >> Advanced netfilter configuration +CONFIG_NETFILTER_ADVANCED y +CONFIG_BRIDGE_NETFILTER y + +# Menu: Networking options >> Network packet filtering framework (Netfilter) >> Advanced netfilter configuration >> DECnet: Netfilter Configuration + +# Menu: Networking options >> Network packet filtering framework (Netfilter) >> Core Netfilter Configuration +CONFIG_NF_CONNTRACK_MARK y +CONFIG_NF_CONNTRACK_SECMARK y +CONFIG_NF_CONNTRACK_ZONES y +CONFIG_NF_CONNTRACK_PROCFS n flag +CONFIG_NF_CONNTRACK_EVENTS y +CONFIG_NF_CONNTRACK_TIMEOUT y +CONFIG_NF_CONNTRACK_TIMESTAMP y +CONFIG_NETFILTER_NETLINK_QUEUE_CT y + +# Menu: Networking options >> Network packet filtering framework (Netfilter) >> Ethernet Bridge tables (ebtables) support +CONFIG_BRIDGE_EBT_ULOG n flag + +# Menu: Networking options >> Network packet filtering framework (Netfilter) >> IP set support +CONFIG_IP_SET_MAX 256 + +# Menu: Networking options >> Network packet filtering framework (Netfilter) >> IP virtual server support +CONFIG_IP_VS_IPV6 y +CONFIG_IP_VS_TAB_BITS 12 +CONFIG_IP_VS_PROTO_TCP y +CONFIG_IP_VS_PROTO_UDP y +CONFIG_IP_VS_PROTO_ESP y +CONFIG_IP_VS_PROTO_AH y +CONFIG_IP_VS_PROTO_SCTP y +CONFIG_IP_VS_SH_TAB_BITS 8 +CONFIG_IP_VS_NFCT y + +# Menu: Networking options >> Network packet filtering framework (Netfilter) >> IP: Netfilter Configuration + +# Menu: Networking options >> Network packet filtering framework (Netfilter) >> IPv6: Netfilter Configuration + +# Menu: Networking options >> Network testing +CONFIG_NET_DROP_MONITOR n + +# Menu: Networking options >> QoS and/or fair queueing +CONFIG_NET_SCHED y mark +CONFIG_CLS_U32_PERF n +CONFIG_CLS_U32_MARK y +CONFIG_NET_EMATCH y +CONFIG_NET_EMATCH_STACK 32 +CONFIG_NET_CLS_ACT y +CONFIG_GACT_PROB y +CONFIG_NET_CLS_IND n flag + +# Menu: Networking options >> TCP/IP networking +CONFIG_INET y note +CONFIG_IP_MULTICAST y +CONFIG_IP_ADVANCED_ROUTER y +CONFIG_IP_FIB_TRIE_STATS y +CONFIG_IP_MULTIPLE_TABLES y +CONFIG_IP_ROUTE_MULTIPATH y +CONFIG_IP_ROUTE_VERBOSE y +CONFIG_IP_PNP y +CONFIG_IP_PNP_DHCP y +CONFIG_IP_PNP_BOOTP n +CONFIG_IP_PNP_RARP n +CONFIG_NET_IPGRE_BROADCAST y note +CONFIG_IP_MROUTE y +CONFIG_IP_MROUTE_MULTIPLE_TABLES n +CONFIG_IP_PIMSM_V1 y +CONFIG_IP_PIMSM_V2 y +CONFIG_SYN_COOKIES y mark +CONFIG_INET_LRO y note +CONFIG_TCP_MD5SIG y mark +CONFIG_NETLABEL y mark +CONFIG_RDS m note + +# Menu: Networking options >> TCP/IP networking >> Layer Two Tunneling Protocol (L2TP) +CONFIG_L2TP_V3 y + +# Menu: Networking options >> TCP/IP networking >> TCP: advanced congestion control +CONFIG_TCP_CONG_ADVANCED y +CONFIG_TCP_CONG_CUBIC y note +CONFIG_DEFAULT_CUBIC y + +# Menu: Networking options >> TCP/IP networking >> The IPv6 protocol +CONFIG_IPV6 y note +CONFIG_IPV6_ROUTER_PREF y +CONFIG_IPV6_ROUTE_INFO y +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION m note +CONFIG_IPV6_SIT_6RD y +CONFIG_IPV6_MULTIPLE_TABLES y +CONFIG_IPV6_SUBTREES y +CONFIG_IPV6_MROUTE y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES y +CONFIG_IPV6_PIMSM_V2 y + +# Menu: Networking options >> TCP/IP networking >> The SCTP Protocol +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 y +CONFIG_SCTP_COOKIE_HMAC_MD5 y +CONFIG_SCTP_COOKIE_HMAC_SHA1 y + +# Menu: Networking options >> TCP/IP networking >> The TIPC Protocol +CONFIG_TIPC m note +CONFIG_TIPC_PORTS 8191 + +# Menu: Networking support +CONFIG_NET y + +# Menu: Networking support >> Amateur Radio support +CONFIG_HAMRADIO y + +# Menu: Networking support >> Amateur Radio support >> Amateur Radio AX.25 Level 2 protocol + +# Menu: Networking support >> Amateur Radio support >> Amateur Radio AX.25 Level 2 protocol >> AX.25 network device drivers + +# Menu: Networking support >> Bluetooth subsystem support +CONFIG_BT m + +# Menu: Networking support >> Bluetooth subsystem support >> Bluetooth device drivers + +# Menu: Networking support >> CAIF support + +# Menu: Networking support >> CAN bus subsystem support + +# Menu: Networking support >> IrDA (infrared) subsystem support + +# Menu: Networking support >> IrDA (infrared) subsystem support >> Infrared-port device drivers +CONFIG_DONGLE y + +# Menu: Networking support >> NFC subsystem support +CONFIG_NFC m note mark +CONFIG_NFC_NCI m note + +# Menu: Networking support >> NFC subsystem support >> Near Field Communication (NFC) devices + +# Menu: Networking support >> Plan 9 Resource Sharing Support (9P2000) + +# Menu: Networking support >> RF switch subsystem support +CONFIG_RFKILL y + +# Menu: Networking support >> WiMAX Wireless Broadband support + +# Menu: Networking support >> Wireless +CONFIG_WIRELESS y + +# Menu: Networking support >> Wireless >> Generic IEEE 802.11 Networking Stack (mac80211) + +# Menu: Networking support >> Wireless >> Generic IEEE 802.11 Networking Stack (mac80211) >> Select mac80211 debugging features + +# Menu: Partition Types +set +tree 'Partition Types' ?pattern _PARTITION$ !flag EXPERIMENTAL = y +set +tree 'Partition Types' ?pattern _DISKLABEL$ !flag EXPERIMENTAL = y + +# Menu: Platform support (powerpc) +CONFIG_KVM_GUEST y + +# Menu: Platform support >> 82xx-based boards (PQ II) (powerpc) + +# Menu: Platform support >> 83xx-based boards (powerpc) + +# Menu: Platform support >> 86xx-based boards (powerpc) + +# Menu: Platform support >> Cell Broadband Engine options (powerpc) + +# Menu: Platform support >> Freescale Book-E Machine Type (powerpc) + +# Menu: Platform support >> Freescale Ethernet driver platform-specific options (powerpc) + +# Menu: Platform support >> MPC8xx CPM Options (powerpc) + +# Menu: Platform support >> PA Semi SoC-based platforms (powerpc) + +# Menu: Platform support >> PA Semi SoC-based platforms >> PA Semi PWRficient options (powerpc) + +# Menu: Platform support >> Sony PS3 (powerpc) + +# Menu: Platform support >> Sony PS3 >> PS3 Platform Options (powerpc) + +# Menu: Platform support >> WSP platform selection (powerpc) + +# Menu: Power management and ACPI options +CONFIG_SUSPEND y +CONFIG_SUSPEND_FREEZER y +CONFIG_HIBERNATION y +CONFIG_APM_EMULATION p policy<(arch armel armhf &/ value n) | value m> note + +# Menu: Power management and ACPI options >> ACPI (Advanced Configuration and Power Interface) Support +CONFIG_ACPI y mark +CONFIG_ACPI_AC y note +CONFIG_ACPI_BATTERY y note +CONFIG_ACPI_BUTTON y note +CONFIG_ACPI_FAN y note +CONFIG_ACPI_PROCESSOR y note +CONFIG_ACPI_THERMAL y note +CONFIG_ACPI_CONTAINER y note +CONFIG_ACPI_HED y note +CONFIG_ACPI_CUSTOM_METHOD n note + +# Menu: Power management and ACPI options >> APM (Advanced Power Management) BIOS support (x86) +CONFIG_APM m mark + +# Menu: Power management and ACPI options >> Memory power savings + +# Menu: Power management options +CONFIG_APM_EMULATION p policy<(arch armel armhf &/ value n) | value m> note + +# Menu: Processor support (powerpc) +CONFIG_SMP y + +# Menu: Processor type and features + +# Menu: Processor type and features (x86) +CONFIG_CC_STACKPROTECTOR y mark +CONFIG_KEXEC y +CONFIG_CRASH_DUMP y +CONFIG_RELOCATABLE y +CONFIG_TOSHIBA n note + +# Menu: Processor type and features >> Linux guest support (x86) +CONFIG_HYPERVISOR_GUEST y +CONFIG_PARAVIRT y +CONFIG_KVM_GUEST y + +# Menu: Security options +CONFIG_KEYS y +CONFIG_PERSISTENT_KEYRINGS y +CONFIG_TRUSTED_KEYS y note +CONFIG_ENCRYPTED_KEYS y note +CONFIG_SECURITY_DMESG_RESTRICT n +CONFIG_SECURITY y mark +CONFIG_SECURITYFS y +CONFIG_SECURITY_NETWORK y +CONFIG_SECURITY_NETWORK_XFRM n +CONFIG_SECURITY_PATH y +CONFIG_INTEL_TXT p policy<(arch i386 amd64 &/ value y) | value n)> +CONFIG_LSM_MMAP_MIN_ADDR 0 +CONFIG_SECURITY_SELINUX y +CONFIG_SECURITY_SELINUX_BOOTPARAM y +CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE 0 +CONFIG_SECURITY_SELINUX_DISABLE y note +CONFIG_SECURITY_SELINUX_DEVELOP y +CONFIG_SECURITY_SELINUX_AVC_STATS y +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE 1 +CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX n +CONFIG_SECURITY_SMACK y +CONFIG_SECURITY_TOMOYO y +CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY 2048 +CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG 1024 +CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER n +CONFIG_SECURITY_TOMOYO_POLICY_LOADER "/sbin/tomoyo-init" +CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER "/sbin/init" +CONFIG_SECURITY_APPARMOR y +CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE 1 +CONFIG_SECURITY_YAMA y +CONFIG_SECURITY_YAMA_STACKED y +CONFIG_INTEGRITY_SIGNATURE y +CONFIG_IMA n note +CONFIG_EVM y +CONFIG_DEFAULT_SECURITY_APPARMOR y + +# Menu: System Type (arm) +CONFIG_ARCH_MULTIPLATFORM p policy<(arch armhf &/ value y) | value n> + +# Menu: System Type >> ARM Ltd. Versatile Express family (arm) + +# Menu: System Type >> ARM Ltd. Versatile Express family >> Versatile Express platform type (arm) + +# Menu: System Type >> Atmel AT91 System-on-Chip (arm) + +# Menu: System Type >> Atmel AT91 System-on-Chip >> Atmel Non-DT world (arm) + +# Menu: System Type >> Broadcom SoC Selection (arm) + +# Menu: System Type >> CLPS711X/EP721X/EP731X Implementations (arm) + +# Menu: System Type >> CSR SiRF atlas6/primaII/Marco/Polo Specific Features (arm) + +# Menu: System Type >> Cavium Networks CNS3XXX family (arm) + +# Menu: System Type >> Cavium Networks CNS3XXX family >> CNS3XXX platform type (arm) + +# Menu: System Type >> Cirrus EP93xx Implementation Options (arm) + +# Menu: System Type >> Cortina Systems Gemini Implementations (arm) + +# Menu: System Type >> Footbridge Implementations (arm) + +# Menu: System Type >> Freescale i.MX family (arm) + +# Menu: System Type >> Freescale i.MX family >> Freescale i.MX support (arm) + +# Menu: System Type >> IOP13XX Implementation Options (arm) + +# Menu: System Type >> IOP32x Implementation Options (arm) + +# Menu: System Type >> IOP33x Implementation Options (arm) + +# Menu: System Type >> Integrator Options (arm) + +# Menu: System Type >> Intel IXP4xx Implementation Options (arm) + +# Menu: System Type >> Intel PXA2xx/PXA3xx Implementations (arm) + +# Menu: System Type >> Kendin/Micrel KS8695 Implementations (arm) + +# Menu: System Type >> Marvell Dove Implementations (arm) + +# Menu: System Type >> Marvell Kirkwood Implementations (arm) + +# Menu: System Type >> Marvell MV78xx0 Implementations (arm) + +# Menu: System Type >> Marvell PXA168/910/MMP2 Implmentations (arm) + +# Menu: System Type >> Marvell SOC with device tree (arm) + +# Menu: System Type >> Multiple platform selection (arm) + +# Menu: System Type >> NUC950 Machines (arm) + +# Menu: System Type >> NUC960 Machines (arm) + +# Menu: System Type >> NVIDIA Tegra (arm) + +# Menu: System Type >> NVIDIA Tegra >> NVIDIA Tegra options (arm) + +# Menu: System Type >> NetX Implementations (arm) + +# Menu: System Type >> Nomadik boards (arm) + +# Menu: System Type >> Orion Implementations (arm) + +# Menu: System Type >> Qualcomm MSM Board Type (arm) + +# Menu: System Type >> RealView platform type (arm) + +# Menu: System Type >> S5PC110 Machines (arm) + +# Menu: System Type >> S5PV210 Machines (arm) + +# Menu: System Type >> SA11x0 Implementations (arm) + +# Menu: System Type >> SAMSUNG EXYNOS SoCs Support (arm) + +# Menu: System Type >> SAMSUNG S3C24XX SoCs Support (arm) + +# Menu: System Type >> ST SPEAr Family (arm) + +# Menu: System Type >> ST-Ericsson AB U300/U335 Platform (arm) + +# Menu: System Type >> STMicroelectronics Consumer Electronics SOCs with Device Trees (arm) + +# Menu: System Type >> SuperH / SH-Mobile Driver Options + +# Menu: System Type >> TI DaVinci Implementations (arm) + +# Menu: System Type >> TI OMAP Common Features (arm) + +# Menu: System Type >> TI OMAP1 specific features (arm) + +# Menu: System Type >> TI OMAP2/3/4 Specific Features (arm) + +# Menu: System Type >> Timer and clock configuration (arm) + +# Menu: System Type >> Use 8-bit SDHCI bus width (arm) + +# Menu: System Type >> Ux500 target platform (boards) (arm) + +# Menu: System Type >> Versatile platform type (arm) + +# Menu: System Type >> W90P910 Machines (arm) + +# Menu: Ubuntu Supplied Third-Party Device Drivers + +# Menu: Userspace binary formats +CONFIG_BINFMT_ELF y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS y +CONFIG_BINFMT_SCRIPT y +CONFIG_BINFMT_MISC y +CONFIG_COREDUMP y + +# Menu: Userspace binary formats (arm) + +# Menu: Virtualization +# Menu: Virtualization (arm) +# Menu: Virtualization (powerpc) +# Menu: Virtualization (x86) +CONFIG_VIRTUALIZATION y +CONFIG_KVM p policy<(arch powerpc &/ value y) | value m> +CONFIG_KVM_MMU_AUDIT n +CONFIG_KVM_DEVICE_ASSIGNMENT y +CONFIG_LGUEST n + +# temporarily disabled options -- build failures. +#CONFIG_TI_CPSW p policy<(arch armel armhf &/ value n) | value m> flag +#CONFIG_USB_MUSB_DSPS p policy<(arch armel armhf &/ value n) | value m> flag +CONFIG_LIS3L02DQ p policy<(arch armhf &/ value n) | value m> flag +CONFIG_EZX_PCAP p policy<(arch armhf &/ value n) | value m> flag +#CONFIG_TOUCHSCREEN_EGALAX p policy<(arch armel armhf &/ value n) | value m> flag note +#CONFIG_TOUCHSCREEN_EETI p policy<(arch armel armhf &/ value n) | value m> flag note +#CONFIG_SENSORS_AK8975 p policy<(arch armel armhf &/ value n) | value m> flag note +CONFIG_PPC_EPAPR_HV_BYTECHAN n flag note + +# Ensure DEPRECATED options are off. +set +all ?flag DEPRECATED !mark annotated ?type bool = n +set +all ?flag DEPRECATED !mark annotated ?type tristate = n + +# Ensure DANGEROUS things are turned off. +set +all ?flag DANGEROUS = n --- linux-3.13.0.orig/debian.master/config/arm64/config.common.arm64 +++ linux-3.13.0/debian.master/config/arm64/config.common.arm64 @@ -0,0 +1,194 @@ +# +# Config options for config.common.arm64 automatically generated by splitconfig.pl +# +CONFIG_64BIT=y +# CONFIG_AHCI_IMX is not set +CONFIG_AIC79XX_RESET_DELAY_MS=5000 +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +# CONFIG_ASYNC_TX_DMA is not set +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_PIIX=m +CONFIG_ATOMIC64_SELFTEST=y +CONFIG_BCH=m +CONFIG_CMDLINE="console=ttyAMA0" +CONFIG_COMEDI_ISA_DRIVERS=y +CONFIG_COMPACTION=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +# CONFIG_CPU_BIG_ENDIAN is not set +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEFAULT_CFQ is not set +CONFIG_DEFAULT_DEADLINE=y +CONFIG_DEFAULT_IOSCHED="deadline" +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +CONFIG_EXYNOS_VIDEO=y +# CONFIG_EZX_PCAP is not set +CONFIG_FB_ATY128=m +CONFIG_FB_BACKLIGHT=y +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_DDC=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_RADEON=m +CONFIG_FB_SVGALIB=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FB_VOODOO1=m +# CONFIG_FMAN_P1023 is not set +CONFIG_FMAN_P3040_P4080_P5020=y +# CONFIG_FONTS is not set +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_FRAME_WARN=1024 +CONFIG_FSL_FMAN=y +CONFIG_GENERIC_CSUM=y +CONFIG_GENERIC_PHY=y +CONFIG_GPIO_GENERIC=m +# CONFIG_GPIO_TWL6040 is not set +CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y +# CONFIG_HAVE_AOUT is not set +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HUGETLB_PAGE=y +# CONFIG_HW_RANDOM_ATMEL is not set +CONFIG_HZ=100 +CONFIG_I2C_ALGOBIT=m +# CONFIG_IKCONFIG is not set +CONFIG_IMA=y +CONFIG_INFINIBAND_AMSO1100=m +# CONFIG_IOMMU_SUPPORT is not set +# CONFIG_IPMI_SI_PROBE_DEFAULTS is not set +# CONFIG_IRQ_DOMAIN_DEBUG is not set +# CONFIG_KSM is not set +CONFIG_KVM=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LIBERTAS_MESH=y +# CONFIG_LIS3L02DQ is not set +CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_TMIO is not set +CONFIG_MII=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MTD=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_CMDLINE_PARTS=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_BCH=m +CONFIG_MTD_NAND_ECC=m +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_OF_PARTS=m +CONFIG_MTD_SM_COMMON=m +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NET_TULIP=y +CONFIG_NO_HZ_IDLE=y +CONFIG_NR_CPUS=8 +CONFIG_PATA_SIS=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCI_SYSCALL=y +CONFIG_PERCPU_TEST=m +CONFIG_PERSISTENT_KEYRINGS=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PHY_EXYNOS_DP_VIDEO=m +CONFIG_PMIC_ADP5520=y +CONFIG_PMIC_DA903X=y +CONFIG_PPS=m +CONFIG_PPS_CLIENT_GPIO=m +CONFIG_PPS_CLIENT_LDISC=m +CONFIG_PPS_CLIENT_PARPORT=m +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_RCU is not set +CONFIG_PREEMPT_VOLUNTARY=y +# CONFIG_PROBE_EVENTS is not set +# CONFIG_PSTORE_CONSOLE is not set +CONFIG_PSTORE_RAM=m +CONFIG_PTP_1588_CLOCK=m +CONFIG_RBTREE_TEST=m +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +CONFIG_RCU_FANOUT=64 +CONFIG_RCU_FAST_NO_HZ=y +# CONFIG_RCU_NOCB_CPU is not set +CONFIG_REED_SOLOMON=m +CONFIG_REGULATOR_FIXED_VOLTAGE=m +# CONFIG_REGULATOR_S2MPS11 is not set +CONFIG_REISERFS_FS=m +CONFIG_RFKILL=y +# CONFIG_RT2X00_LIB_DEBUGFS is not set +CONFIG_RTC_DRV_DS3232=m +CONFIG_RTC_DRV_PL031=m +CONFIG_SATA_AHCI_PLATFORM=m +# CONFIG_SATA_HIGHBANK is not set +CONFIG_SATA_SVW=m +CONFIG_SCHED_AUTOGROUP=y +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SERIAL_8250_PCI=m +# CONFIG_SERIAL_FSL_LPUART is not set +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_APBPS2=m +CONFIG_SERIO_ARC_PS2=m +# CONFIG_SERIO_I8042 is not set +CONFIG_SERIO_OLPC_APSP=m +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_PS2MULT=m +CONFIG_SERIO_RAW=m +CONFIG_SMC91X=y +# CONFIG_SOUND is not set +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPI_PXA2XX_PCI=m +CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y +# CONFIG_SQUASHFS_DECOMP_SINGLE is not set +# CONFIG_SQUASHFS_FILE_CACHE is not set +CONFIG_SQUASHFS_FILE_DIRECT=y +CONFIG_SRAM=y +CONFIG_STAGING=y +CONFIG_STANDALONE=y +CONFIG_SUNRPC_DEBUG=y +CONFIG_SWIOTLB=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_SYS_HYPERVISOR=y +CONFIG_TEST_KSTRTOX=m +CONFIG_TEST_STRING_HELPERS=m +CONFIG_TICK_CPU_ACCOUNTING=y +CONFIG_TIGON3=m +CONFIG_TIMER_STATS=y +# CONFIG_TRANSPARENT_HUGEPAGE is not set +# CONFIG_TWL4030_CORE is not set +CONFIG_TWL6040_CORE=y +CONFIG_UIO_AEC=m +CONFIG_UIO_CIF=m +CONFIG_UIO_DMEM_GENIRQ=m +CONFIG_UIO_MF624=m +CONFIG_UIO_NETX=m +CONFIG_UIO_PCI_GENERIC=m +CONFIG_UIO_PDRV_GENIRQ=m +CONFIG_UIO_SERCOS3=m +CONFIG_UNUSED_SYMBOLS=y +# CONFIG_USB_SUPPORT is not set +CONFIG_VGASTATE=m +# CONFIG_VGA_CONSOLE is not set +CONFIG_VIRTIO=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_NET=y +CONFIG_VIRTIO_PCI=m +CONFIG_WIL6210=m +CONFIG_WIMAX_GDM72XX_SDIO=y +CONFIG_XEN=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_TEST=m +CONFIG_XZ_DEC_X86=y +CONFIG_ZONE_DMA32=y +CONFIG_ZONE_DMA_FLAG=0 --- linux-3.13.0.orig/debian.master/config/arm64/config.flavour.generic +++ linux-3.13.0/debian.master/config/arm64/config.flavour.generic @@ -0,0 +1,3 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# --- linux-3.13.0.orig/debian.master/config/armhf/config.common.armhf +++ linux-3.13.0/debian.master/config/armhf/config.common.armhf @@ -0,0 +1,287 @@ +# +# Config options for config.common.armhf automatically generated by splitconfig.pl +# +CONFIG_AIC79XX_RESET_DELAY_MS=5000 +# CONFIG_APM_EMULATION is not set +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +CONFIG_ASYNC_TX_DMA=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_PIIX=y +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_BATTERY_TWL4030_MADC=m +CONFIG_BCH=y +CONFIG_CMDLINE="" +CONFIG_COMEDI_ISA_DRIVERS=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +# CONFIG_CPU_BIG_ENDIAN is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +CONFIG_CRASH_DUMP=y +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEFAULT_CFQ is not set +CONFIG_DEFAULT_DEADLINE=y +CONFIG_DEFAULT_IOSCHED="deadline" +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +CONFIG_EXYNOS_VIDEO=y +# CONFIG_EZX_PCAP is not set +CONFIG_FB_ATY128=m +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +# CONFIG_FB_MACMODES is not set +CONFIG_FB_RADEON=m +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=y +CONFIG_FB_UDL=m +CONFIG_FB_VOODOO1=m +# CONFIG_FMAN_P1023 is not set +CONFIG_FMAN_P3040_P4080_P5020=y +CONFIG_FONTS=y +CONFIG_FRAME_WARN=1024 +CONFIG_FSL_FMAN=y +# CONFIG_FUNCTION_TRACER is not set +CONFIG_GPIO_TWL4030=y +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set +# CONFIG_HAVE_AOUT is not set +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +# CONFIG_HW_RANDOM_ATMEL is not set +CONFIG_HZ=250 +# CONFIG_HZ_100 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ_250=y +CONFIG_I2C_ALGOBIT=m +# CONFIG_IDE is not set +# CONFIG_IKCONFIG is not set +CONFIG_IMA=y +CONFIG_INFINIBAND_AMSO1100=m +CONFIG_IOMMU_SUPPORT=y +# CONFIG_IPMI_SI_PROBE_DEFAULTS is not set +# CONFIG_IRQ_DOMAIN_DEBUG is not set +# CONFIG_IRQ_FORCED_THREADING_DEFAULT is not set +# CONFIG_KSM is not set +CONFIG_KVM=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +# CONFIG_LIBERTAS_MESH is not set +# CONFIG_LIS3L02DQ is not set +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_MFD_TMIO=y +CONFIG_MII=m +CONFIG_MMC_BLOCK=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MTD=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_BCH=y +CONFIG_MTD_NAND_ECC=y +CONFIG_MTD_NAND_IDS=y +CONFIG_MTD_OF_PARTS=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NET_TULIP=y +CONFIG_NOP_USB_XCEIV=y +# CONFIG_NO_HZ_FULL is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_NR_CPUS=4 +CONFIG_NVRAM=m +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_PARIDE_EPATC8=y +CONFIG_PATA_SIS=y +# CONFIG_PCCARD is not set +CONFIG_PCIEPORTBUS=y +CONFIG_PERCPU_TEST=m +CONFIG_PERSISTENT_KEYRINGS=y +CONFIG_PHY_EXYNOS_DP_VIDEO=m +CONFIG_PMIC_ADP5520=y +CONFIG_PMIC_DA903X=y +CONFIG_PM_DEBUG=y +CONFIG_PM_RUNTIME=y +CONFIG_PM_WAKELOCKS=y +CONFIG_PPS=y +CONFIG_PPS_CLIENT_GPIO=m +CONFIG_PPS_CLIENT_LDISC=m +CONFIG_PPS_CLIENT_PARPORT=m +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_RCU is not set +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_PROBE_EVENTS=y +CONFIG_PSTORE_CONSOLE=y +CONFIG_PSTORE_RAM=y +CONFIG_PTP_1588_CLOCK=y +CONFIG_RBTREE_TEST=m +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +CONFIG_RCU_FANOUT=32 +CONFIG_RCU_FAST_NO_HZ=y +# CONFIG_RCU_NOCB_CPU is not set +# CONFIG_RCU_USER_QS is not set +CONFIG_REED_SOLOMON=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +# CONFIG_REGULATOR_S2MPS11 is not set +CONFIG_REISERFS_FS=m +CONFIG_RFKILL=y +# CONFIG_RT2800USB_UNKNOWN is not set +CONFIG_RT2X00_LIB_DEBUGFS=y +CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_DS3232=m +CONFIG_RTC_DRV_PL031=y +CONFIG_SAMSUNG_USB2PHY=m +CONFIG_SAMSUNG_USB3PHY=m +CONFIG_SATA_HIGHBANK=y +CONFIG_SATA_SVW=m +CONFIG_SCHED_AUTOGROUP=y +# CONFIG_SCHED_SMT is not set +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_APBPS2=m +CONFIG_SERIO_ARC_PS2=m +CONFIG_SERIO_OLPC_APSP=m +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_PS2MULT=m +CONFIG_SERIO_RAW=m +CONFIG_SMC91X=m +CONFIG_SND=y +CONFIG_SND_COMPRESS_OFFLOAD=y +# CONFIG_SND_OPL4_LIB_SEQ is not set +CONFIG_SND_PCM=y +# CONFIG_SND_SBAWE_SEQ is not set +CONFIG_SND_SOC=y +CONFIG_SND_SOC_FSL_SSI=y +CONFIG_SND_SOC_I2C_AND_SPI=y +CONFIG_SND_TIMER=y +CONFIG_SOUND=y +CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y +# CONFIG_SQUASHFS_DECOMP_SINGLE is not set +# CONFIG_SQUASHFS_FILE_CACHE is not set +CONFIG_SQUASHFS_FILE_DIRECT=y +CONFIG_SRAM=y +# CONFIG_STACK_TRACER is not set +CONFIG_STAGING=y +CONFIG_STANDALONE=y +CONFIG_SUNRPC_DEBUG=y +CONFIG_SWIOTLB=y +CONFIG_SYSCTL_SYSCALL=y +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_TEST_KSTRTOX=m +CONFIG_TEST_STRING_HELPERS=m +# CONFIG_TICK_CPU_ACCOUNTING is not set +CONFIG_TIGON3=m +CONFIG_TIMER_STATS=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TWL4030_CORE=y +CONFIG_TWL6040_CORE=y +CONFIG_UIO_AEC=m +CONFIG_UIO_CIF=m +CONFIG_UIO_DMEM_GENIRQ=m +CONFIG_UIO_MF624=m +CONFIG_UIO_NETX=m +CONFIG_UIO_PCI_GENERIC=m +CONFIG_UIO_PDRV_GENIRQ=m +CONFIG_UIO_SERCOS3=m +CONFIG_UNUSED_SYMBOLS=y +CONFIG_USB_ADUTUX=m +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_C67X00_HCD=m +CONFIG_USB_CATC=m +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_DWC3=m +CONFIG_USB_DYNAMIC_MINORS=y +# CONFIG_USB_EHCI_HCD_PLATFORM is not set +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHSET_TEST_FIXTURE=m +CONFIG_USB_EMI26=m +CONFIG_USB_EMI62=m +CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_FOTG210_HCD=m +# CONFIG_USB_FSL_USB2 is not set +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_FUSBH200_HCD=m +CONFIG_USB_GADGET=y +CONFIG_USB_G_MULTI=m +# CONFIG_USB_HCD_BCMA is not set +# CONFIG_USB_HCD_SSB is not set +CONFIG_USB_HSIC_USB3503=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_IOWARRIOR=m +CONFIG_USB_IPHETH=m +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_ISP1301=m +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_ISP1760_HCD=m +CONFIG_USB_KAWETH=m +CONFIG_USB_LCD=m +CONFIG_USB_LD=m +CONFIG_USB_LED=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +# CONFIG_USB_MUSB_DSPS is not set +CONFIG_USB_MUSB_HDRC=y +# CONFIG_USB_MUSB_TUSB6010 is not set +# CONFIG_USB_OHCI_HCD_PLATFORM is not set +# CONFIG_USB_OTG is not set +CONFIG_USB_OXU210HP_HCD=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_PRINTER=m +CONFIG_USB_R8A66597_HCD=m +CONFIG_USB_RCAR_PHY=m +CONFIG_USB_RIO500=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_SERIAL=m +CONFIG_USB_SEVSEG=m +CONFIG_USB_SISUSBVGA=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_STORAGE=y +CONFIG_USB_STORAGE_ALAUDA=m +CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_DATAFAB=m +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_STORAGE_FREECOM=m +CONFIG_USB_STORAGE_ISD200=m +CONFIG_USB_STORAGE_JUMPSHOT=m +CONFIG_USB_STORAGE_KARMA=m +CONFIG_USB_STORAGE_ONETOUCH=m +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_USB_STORAGE_SDDR09=m +CONFIG_USB_STORAGE_SDDR55=m +CONFIG_USB_STORAGE_USBAT=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_TEST=m +CONFIG_USB_TMC=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_USS720=m +CONFIG_USB_WUSB_CBAF=m +CONFIG_USB_YUREX=m +# CONFIG_VFIO_IOMMU_TYPE1 is not set +CONFIG_VIRTIO=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_NET=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRT_CPU_ACCOUNTING_GEN=y +# CONFIG_WIL6210 is not set +# CONFIG_WIMAX_GDM72XX_SDIO is not set +# CONFIG_XEN is not set +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_TEST=m +CONFIG_XZ_DEC_X86=y +CONFIG_ZONE_DMA_FLAG=1 --- linux-3.13.0.orig/debian.master/config/armhf/config.flavour.generic +++ linux-3.13.0/debian.master/config/armhf/config.flavour.generic @@ -0,0 +1,38 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# +CONFIG_AC97_BUS=y +CONFIG_AHCI_IMX=y +CONFIG_ARCH_MXC=y +CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED=y +CONFIG_ARCH_NR_GPIO=1024 +CONFIG_ARCH_OMAP3=y +CONFIG_ARCH_OMAP4=y +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +CONFIG_ARCH_TEGRA=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +# CONFIG_ARM_LPAE is not set +# CONFIG_COMPACTION is not set +# CONFIG_CPU_IDLE is not set +CONFIG_DRM_TILCDC=m +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_DDC=m +CONFIG_FB_SVGALIB=m +CONFIG_FORCE_MAX_ZONEORDER=12 +CONFIG_GENERIC_PHY=y +CONFIG_GPIO_GENERIC=y +CONFIG_GPIO_TWL6040=y +# CONFIG_HUGETLB_PAGE is not set +CONFIG_MFD_TI_AM335X_TSCADC=m +CONFIG_MTD_SM_COMMON=m +# CONFIG_MUSB_PIO_ONLY is not set +CONFIG_PCI_SYSCALL=y +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_SERIAL_FSL_LPUART=m +CONFIG_SND_EMU10K1_SEQ=m +CONFIG_SND_OPL3_LIB_SEQ=m +CONFIG_SOC_AM33XX=y +CONFIG_SPI_PXA2XX_PCI=m +CONFIG_USB_DWC3_OMAP=m +CONFIG_VGASTATE=m --- linux-3.13.0.orig/debian.master/config/armhf/config.flavour.generic-lpae +++ linux-3.13.0/debian.master/config/armhf/config.flavour.generic-lpae @@ -0,0 +1,38 @@ +# +# Config options for config.flavour.generic-lpae automatically generated by splitconfig.pl +# +CONFIG_AC97_BUS=m +# CONFIG_AHCI_IMX is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set +CONFIG_ARCH_NR_GPIO=0 +# CONFIG_ARCH_OMAP3 is not set +# CONFIG_ARCH_OMAP4 is not set +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARM_ATAG_DTB_COMPAT is not set +CONFIG_ARM_LPAE=y +CONFIG_COMPACTION=y +CONFIG_CPU_IDLE=y +# CONFIG_DRM_TILCDC is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_DDC is not set +# CONFIG_FB_SVGALIB is not set +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_GENERIC_PHY=m +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_TWL6040=m +CONFIG_HUGETLB_PAGE=y +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MTD_SM_COMMON is not set +CONFIG_MUSB_PIO_ONLY=y +# CONFIG_PCI_SYSCALL is not set +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_SATA_AHCI_PLATFORM=m +# CONFIG_SERIAL_FSL_LPUART is not set +# CONFIG_SND_EMU10K1_SEQ is not set +# CONFIG_SND_OPL3_LIB_SEQ is not set +# CONFIG_SOC_AM33XX is not set +# CONFIG_SPI_PXA2XX_PCI is not set +# CONFIG_USB_DWC3_OMAP is not set +# CONFIG_VGASTATE is not set --- linux-3.13.0.orig/debian.master/config/config.common.ports +++ linux-3.13.0/debian.master/config/config.common.ports @@ -0,0 +1,3 @@ +# +# Common config options automatically generated by splitconfig.pl +# --- linux-3.13.0.orig/debian.master/config/config.common.ubuntu +++ linux-3.13.0/debian.master/config/config.common.ubuntu @@ -0,0 +1,7497 @@ +# +# Common config options automatically generated by splitconfig.pl +# +CONFIG_32BIT=y +CONFIG_3C515=m +# CONFIG_40x is not set +# CONFIG_44x is not set +CONFIG_60XX_WDT=m +CONFIG_6PACK=m +CONFIG_6xx=y +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_8129=y +CONFIG_8139TOO_PIO=y +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_88EU_AP_MODE=y +CONFIG_88EU_P2P=y +CONFIG_9P_FS=m +# CONFIG_9P_FSCACHE is not set +CONFIG_9P_FS_POSIX_ACL=y +CONFIG_9P_FS_SECURITY=y +CONFIG_AB3100_CORE=y +CONFIG_AB3100_OTP=m +CONFIG_ABX500_CORE=y +# CONFIG_ACCESSIBILITY is not set +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_ACERHDF=m +CONFIG_ACER_WMI=m +CONFIG_ACORN_PARTITION=y +# CONFIG_ACORN_PARTITION_ADFS is not set +# CONFIG_ACORN_PARTITION_CUMANA is not set +# CONFIG_ACORN_PARTITION_EESOX is not set +CONFIG_ACORN_PARTITION_ICS=y +# CONFIG_ACORN_PARTITION_POWERTEC is not set +CONFIG_ACORN_PARTITION_RISCIX=y +CONFIG_ACPI=y +CONFIG_ACPI_AC=y +CONFIG_ACPI_APEI=y +CONFIG_ACPI_APEI_EINJ=m +# CONFIG_ACPI_APEI_ERST_DEBUG is not set +CONFIG_ACPI_APEI_GHES=y +CONFIG_ACPI_APEI_MEMORY_FAILURE=y +CONFIG_ACPI_APEI_PCIEAER=y +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BGRT=y +CONFIG_ACPI_BUTTON=y +CONFIG_ACPI_CMPC=m +CONFIG_ACPI_CONTAINER=y +# CONFIG_ACPI_CUSTOM_DSDT is not set +CONFIG_ACPI_CUSTOM_DSDT_FILE="" +# CONFIG_ACPI_CUSTOM_METHOD is not set +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_DOCK=y +CONFIG_ACPI_EC_DEBUGFS=m +CONFIG_ACPI_EXTLOG=m +CONFIG_ACPI_FAN=y +CONFIG_ACPI_HED=y +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_HOTPLUG_MEMORY=y +# CONFIG_ACPI_INITRD_TABLE_OVERRIDE is not set +CONFIG_ACPI_IPMI=m +CONFIG_ACPI_NUMA=y +CONFIG_ACPI_PCI_SLOT=y +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_PROCESSOR_AGGREGATOR=m +CONFIG_ACPI_PROCFS_POWER=y +CONFIG_ACPI_QUICKSTART=m +CONFIG_ACPI_SBS=m +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_THERMAL=y +CONFIG_ACPI_TOSHIBA=m +CONFIG_ACPI_VIDEO=m +CONFIG_ACPI_WMI=m +CONFIG_ACQUIRE_WDT=m +CONFIG_ACT200L_DONGLE=m +CONFIG_ACTISYS_DONGLE=m +CONFIG_AD2S1200=m +CONFIG_AD2S1210=m +CONFIG_AD2S90=m +CONFIG_AD5064=m +CONFIG_AD525X_DPOT=m +CONFIG_AD525X_DPOT_I2C=m +CONFIG_AD525X_DPOT_SPI=m +CONFIG_AD5360=m +CONFIG_AD5380=m +CONFIG_AD5421=m +CONFIG_AD5446=m +CONFIG_AD5449=m +CONFIG_AD5504=m +CONFIG_AD5624R_SPI=m +CONFIG_AD5686=m +CONFIG_AD5755=m +CONFIG_AD5764=m +CONFIG_AD5791=m +CONFIG_AD5930=m +CONFIG_AD5933=m +CONFIG_AD7150=m +CONFIG_AD7152=m +CONFIG_AD7192=m +CONFIG_AD7266=m +CONFIG_AD7280=m +CONFIG_AD7291=m +CONFIG_AD7298=m +CONFIG_AD7303=m +CONFIG_AD7476=m +CONFIG_AD7606=m +CONFIG_AD7606_IFACE_PARALLEL=m +CONFIG_AD7606_IFACE_SPI=m +CONFIG_AD7746=m +CONFIG_AD7780=m +CONFIG_AD7791=m +CONFIG_AD7793=m +CONFIG_AD7816=m +CONFIG_AD7887=m +CONFIG_AD7923=m +CONFIG_AD799X=m +CONFIG_AD799X_RING_BUFFER=y +CONFIG_AD8366=m +CONFIG_AD9523=m +CONFIG_AD9832=m +CONFIG_AD9834=m +CONFIG_AD9850=m +CONFIG_AD9852=m +CONFIG_AD9910=m +CONFIG_AD9951=m +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_ADB=y +CONFIG_ADB_CUDA=y +CONFIG_ADB_MACIO=y +CONFIG_ADB_PMU=y +CONFIG_ADB_PMU_LED=y +CONFIG_ADE7753=m +CONFIG_ADE7754=m +CONFIG_ADE7758=m +CONFIG_ADE7759=m +CONFIG_ADE7854=m +CONFIG_ADE7854_I2C=m +CONFIG_ADE7854_SPI=m +CONFIG_ADF4350=m +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_ADIS16060=m +CONFIG_ADIS16080=m +CONFIG_ADIS16130=m +CONFIG_ADIS16136=m +CONFIG_ADIS16201=m +CONFIG_ADIS16203=m +CONFIG_ADIS16204=m +CONFIG_ADIS16209=m +CONFIG_ADIS16220=m +CONFIG_ADIS16240=m +CONFIG_ADIS16260=m +CONFIG_ADIS16400=m +CONFIG_ADIS16480=m +CONFIG_ADJD_S311=m +CONFIG_ADM8211=m +CONFIG_ADT7316=m +CONFIG_ADT7316_I2C=m +CONFIG_ADT7316_SPI=m +# CONFIG_ADVANCED_OPTIONS is not set +CONFIG_ADVANTECH_WDT=m +CONFIG_ADXRS450=m +CONFIG_AD_SIGMA_DELTA=m +CONFIG_AEABI=y +CONFIG_AFFS_FS=m +# CONFIG_AFS_DEBUG is not set +CONFIG_AFS_FS=m +# CONFIG_AFS_FSCACHE is not set +CONFIG_AF_RXRPC=m +# CONFIG_AF_RXRPC_DEBUG is not set +CONFIG_AGP=y +CONFIG_AGP_ALI=m +CONFIG_AGP_AMD=y +CONFIG_AGP_AMD64=y +CONFIG_AGP_ATI=m +CONFIG_AGP_EFFICEON=m +CONFIG_AGP_INTEL=y +CONFIG_AGP_NVIDIA=y +CONFIG_AGP_SIS=m +CONFIG_AGP_SWORKS=m +CONFIG_AGP_UNINORTH=m +CONFIG_AGP_VIA=y +CONFIG_AHCI_XGENE=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +# CONFIG_AIC79XX_DEBUG_ENABLE is not set +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_AIC7XXX_CMDS_PER_DEVICE=8 +# CONFIG_AIC7XXX_DEBUG_ENABLE is not set +CONFIG_AIC7XXX_DEBUG_MASK=0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_AIO=y +CONFIG_AIRO=m +CONFIG_AIRO_CS=m +CONFIG_AIX_PARTITION=y +CONFIG_AK8975=m +CONFIG_ALIGNMENT_TRAP=y +CONFIG_ALIM1535_WDT=m +CONFIG_ALIM7101_WDT=m +CONFIG_ALIX=y +CONFIG_ALI_FIR=m +CONFIG_ALTERA_STAPL=m +CONFIG_ALTIVEC=y +CONFIG_ALX=m +CONFIG_AM335X_CONTROL_USB=m +CONFIG_AM335X_PHY_USB=m +CONFIG_AMBA_PL08X=y +CONFIG_AMD8111_ETH=m +CONFIG_AMD_IOMMU=y +CONFIG_AMD_IOMMU_STATS=y +CONFIG_AMD_IOMMU_V2=m +CONFIG_AMD_NB=y +CONFIG_AMD_NUMA=y +CONFIG_AMD_PHY=y +CONFIG_AMIGA_PARTITION=y +CONFIG_AMILO_RFKILL=m +# CONFIG_ANDROID is not set +CONFIG_ANON_INODES=y +CONFIG_ANSLCD=m +CONFIG_APB_TIMER=y +CONFIG_APDS9300=m +CONFIG_APDS9802ALS=m +CONFIG_APM=m +# CONFIG_APM_ALLOW_INTS is not set +# CONFIG_APM_CPU_IDLE is not set +# CONFIG_APM_DISPLAY_BLANK is not set +# CONFIG_APM_DO_ENABLE is not set +# CONFIG_APM_IGNORE_USER_SUSPEND is not set +CONFIG_APM_POWER=m +CONFIG_APPLE_AIRPORT=m +CONFIG_APPLE_GMUX=m +CONFIG_APPLICOM=m +CONFIG_AR5523=m +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_BCM is not set +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y +CONFIG_ARCH_CLOCKSOURCE_DATA=y +# CONFIG_ARCH_CLPS711X is not set +CONFIG_ARCH_CPU_PROBE_RELEASE=y +# CONFIG_ARCH_DAVINCI is not set +CONFIG_ARCH_DISCARD_MEMBLOCK=y +# CONFIG_ARCH_DOVE is not set +# CONFIG_ARCH_EBSA110 is not set +CONFIG_ARCH_EMEV2=y +CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y +CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_EXYNOS is not set +CONFIG_ARCH_FLATMEM_ENABLE=y +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_GEMINI is not set +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y +CONFIG_ARCH_HAS_BANDGAP=y +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_CPUFREQ=y +CONFIG_ARCH_HAS_CPU_AUTOPROBE=y +CONFIG_ARCH_HAS_CPU_RELAX=y +CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y +CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y +CONFIG_ARCH_HAS_ILOG2_U32=y +CONFIG_ARCH_HAS_ILOG2_U64=y +CONFIG_ARCH_HAS_OPP=y +CONFIG_ARCH_HAS_RESET_CONTROLLER=y +CONFIG_ARCH_HAS_TICK_BROADCAST=y +CONFIG_ARCH_HAS_WALK_MEMORY=y +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_ARCH_HIBERNATION_HEADER=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_HIGHBANK=y +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_KEYSTONE is not set +# CONFIG_ARCH_KIRKWOOD is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_LPC32XX is not set +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_ARCH_MEMORY_PROBE=y +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_MSM is not set +CONFIG_ARCH_MULTIPLATFORM=y +# CONFIG_ARCH_MULTI_CPU_AUTO is not set +# CONFIG_ARCH_MULTI_V6 is not set +CONFIG_ARCH_MULTI_V6_V7=y +CONFIG_ARCH_MULTI_V7=y +# CONFIG_ARCH_MV78XX0 is not set +# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_NETX is not set +CONFIG_ARCH_OMAP=y +# CONFIG_ARCH_OMAP1 is not set +CONFIG_ARCH_OMAP2PLUS=y +CONFIG_ARCH_OMAP2PLUS_TYPICAL=y +# CONFIG_ARCH_ORION5X is not set +CONFIG_ARCH_PROC_KCORE_TEXT=y +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_REALVIEW is not set +CONFIG_ARCH_REQUIRE_GPIOLIB=y +# CONFIG_ARCH_ROCKCHIP is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_S3C24XX is not set +# CONFIG_ARCH_S3C64XX is not set +# CONFIG_ARCH_S5P64X0 is not set +# CONFIG_ARCH_S5PC100 is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_SHMOBILE is not set +CONFIG_ARCH_SHMOBILE_MULTI=y +# CONFIG_ARCH_SIRF is not set +# CONFIG_ARCH_SOCFPGA is not set +CONFIG_ARCH_SPARSEMEM_ENABLE=y +# CONFIG_ARCH_STI is not set +# CONFIG_ARCH_SUNXI is not set +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_INT128=y +CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARCH_TEGRA_114_SOC=y +CONFIG_ARCH_TEGRA_124_SOC=y +CONFIG_ARCH_TEGRA_2x_SOC=y +CONFIG_ARCH_TEGRA_3x_SOC=y +# CONFIG_ARCH_U8500 is not set +CONFIG_ARCH_USES_NUMA_PROT_NONE=y +CONFIG_ARCH_USES_PG_UNCACHED=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +# CONFIG_ARCH_VERSATILE is not set +CONFIG_ARCH_VEXPRESS=y +CONFIG_ARCH_VEXPRESS_CA9X4=y +CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y +CONFIG_ARCH_VEXPRESS_DCSCB=y +CONFIG_ARCH_VEXPRESS_SPC=y +CONFIG_ARCH_VEXPRESS_TC2_PM=y +CONFIG_ARCH_VIRT=y +# CONFIG_ARCH_W90X900 is not set +CONFIG_ARCH_WANTS_FREEZER_CONTROL=y +CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y +CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y +CONFIG_ARCH_WANT_FRAME_POINTERS=y +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +# CONFIG_ARCH_WM8850 is not set +CONFIG_ARCH_XGENE=y +# CONFIG_ARCH_ZYNQ is not set +CONFIG_ARCNET=m +CONFIG_ARCNET_1051=m +CONFIG_ARCNET_1201=m +CONFIG_ARCNET_CAP=m +CONFIG_ARCNET_COM20020=m +CONFIG_ARCNET_COM20020_CS=m +CONFIG_ARCNET_COM20020_ISA=m +CONFIG_ARCNET_COM20020_PCI=m +CONFIG_ARCNET_COM90xx=m +CONFIG_ARCNET_COM90xxIO=m +CONFIG_ARCNET_RAW=m +CONFIG_ARCNET_RIM_I=m +CONFIG_ARC_EMAC=m +CONFIG_ARM=y +CONFIG_ARM64=y +# CONFIG_ARM64_64K_PAGES is not set +CONFIG_ARM_AMBA=y +CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y +CONFIG_ARM_AT91_ETHER=m +CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND=y +# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER is not set +CONFIG_ARM_BIG_LITTLE_CPUFREQ=m +CONFIG_ARM_BIG_LITTLE_CPUIDLE=y +CONFIG_ARM_CCI=y +CONFIG_ARM_CHARLCD=y +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_ARM_CPU_TOPOLOGY=y +CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8 +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +CONFIG_ARM_DMA_USE_IOMMU=y +CONFIG_ARM_DT_BL_CPUFREQ=m +CONFIG_ARM_ERRATA_430973=y +CONFIG_ARM_ERRATA_643719=y +CONFIG_ARM_ERRATA_720789=y +CONFIG_ARM_ERRATA_754322=y +CONFIG_ARM_ERRATA_754327=y +CONFIG_ARM_ERRATA_764369=y +CONFIG_ARM_ERRATA_773022=y +CONFIG_ARM_ERRATA_775420=y +CONFIG_ARM_ERRATA_798181=y +CONFIG_ARM_GIC=y +CONFIG_ARM_HAS_SG_CHAIN=y +CONFIG_ARM_HIGHBANK_CPUFREQ=y +CONFIG_ARM_HIGHBANK_CPUIDLE=y +CONFIG_ARM_IMX6Q_CPUFREQ=m +# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set +CONFIG_ARM_KPROBES_TEST=m +CONFIG_ARM_L1_CACHE_SHIFT=6 +CONFIG_ARM_L1_CACHE_SHIFT_6=y +CONFIG_ARM_NR_BANKS=8 +CONFIG_ARM_OMAP2PLUS_CPUFREQ=y +CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_ARM_PSCI=y +# CONFIG_ARM_SMMU is not set +CONFIG_ARM_SP805_WATCHDOG=m +CONFIG_ARM_TEGRA_CPUFREQ=y +CONFIG_ARM_THUMB=y +# CONFIG_ARM_THUMBEE is not set +CONFIG_ARM_TIMER_SP804=y +CONFIG_ARM_UNWIND=y +CONFIG_ARM_VEXPRESS_SPC_CPUFREQ=m +CONFIG_ARM_VIRT_EXT=y +CONFIG_ASN1=y +CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_ASUS_LAPTOP=m +CONFIG_ASUS_NB_WMI=m +CONFIG_ASUS_WMI=m +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y +CONFIG_ASYNC_CORE=m +CONFIG_ASYNC_MEMCPY=m +CONFIG_ASYNC_PQ=m +CONFIG_ASYNC_RAID6_RECOV=m +CONFIG_ASYNC_RAID6_TEST=m +CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y +CONFIG_ASYNC_XOR=m +CONFIG_AT76C50X_USB=m +CONFIG_AT803X_PHY=y +CONFIG_ATA=y +CONFIG_ATAGS=y +CONFIG_ATAGS_PROC=y +CONFIG_ATALK=m +CONFIG_ATARI_PARTITION=y +CONFIG_ATA_ACPI=y +CONFIG_ATA_BMDMA=y +CONFIG_ATA_GENERIC=y +CONFIG_ATA_OVER_ETH=m +CONFIG_ATA_SFF=y +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_ATH10K=m +# CONFIG_ATH10K_DEBUG is not set +CONFIG_ATH10K_DEBUGFS=y +CONFIG_ATH10K_PCI=m +CONFIG_ATH10K_TRACING=y +CONFIG_ATH5K=m +# CONFIG_ATH5K_DEBUG is not set +CONFIG_ATH5K_PCI=y +# CONFIG_ATH5K_TRACER is not set +CONFIG_ATH6KL=m +# CONFIG_ATH6KL_DEBUG is not set +CONFIG_ATH6KL_SDIO=m +# CONFIG_ATH6KL_TRACING is not set +CONFIG_ATH6KL_USB=m +CONFIG_ATH9K=m +CONFIG_ATH9K_AHB=y +CONFIG_ATH9K_BTCOEX_SUPPORT=y +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_DEBUGFS=y +CONFIG_ATH9K_HTC=m +CONFIG_ATH9K_HTC_DEBUGFS=y +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_LEGACY_RATE_CONTROL=y +CONFIG_ATH9K_PCI=y +CONFIG_ATH9K_RFKILL=y +CONFIG_ATH_CARDS=m +CONFIG_ATH_COMMON=m +# CONFIG_ATH_DEBUG is not set +CONFIG_ATL1=m +CONFIG_ATL1C=m +CONFIG_ATL1E=m +CONFIG_ATL2=m +CONFIG_ATM=m +CONFIG_ATMEL=m +CONFIG_ATMEL_PWM=m +CONFIG_ATMEL_SSC=m +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_ATM_CLIP=m +# CONFIG_ATM_CLIP_NO_ICMP is not set +CONFIG_ATM_DRIVERS=y +CONFIG_ATM_DUMMY=m +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_FORE200E=m +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_FORE200E_TX_RETRY=16 +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_HE=m +CONFIG_ATM_HE_USE_SUNI=y +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_LANAI=m +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_NICSTAR=m +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set +# CONFIG_ATM_NICSTAR_USE_SUNI is not set +CONFIG_ATM_SOLOS=m +CONFIG_ATM_TCP=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_ATP=m +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_GENERIC=y +CONFIG_AUDIT_TREE=y +CONFIG_AUDIT_WATCH=y +CONFIG_AUFS_BDEV_LOOP=y +# CONFIG_AUFS_BRANCH_MAX_1023 is not set +CONFIG_AUFS_BRANCH_MAX_127=y +# CONFIG_AUFS_BRANCH_MAX_32767 is not set +# CONFIG_AUFS_BRANCH_MAX_511 is not set +CONFIG_AUFS_BR_FUSE=y +CONFIG_AUFS_BR_HFSPLUS=y +CONFIG_AUFS_BR_RAMFS=y +# CONFIG_AUFS_DEBUG is not set +CONFIG_AUFS_EXPORT=y +CONFIG_AUFS_FS=m +# CONFIG_AUFS_HNOTIFY is not set +CONFIG_AUFS_INO_T_64=y +CONFIG_AUFS_POLL=y +# CONFIG_AUFS_RDU is not set +CONFIG_AUFS_SBILIST=y +# CONFIG_AUFS_SHWH is not set +# CONFIG_AUFS_SP_IATTR is not set +CONFIG_AUTOFS4_FS=m +CONFIG_AUTO_ZRELADDR=y +CONFIG_AUXDISPLAY=y +CONFIG_AVERAGE=y +CONFIG_AX25=m +CONFIG_AX25_DAMA_SLAVE=y +CONFIG_AX88796=m +# CONFIG_AX88796_93CX6 is not set +CONFIG_B43=m +CONFIG_B43LEGACY=m +# CONFIG_B43LEGACY_DEBUG is not set +CONFIG_B43LEGACY_DMA=y +CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y +# CONFIG_B43LEGACY_DMA_MODE is not set +CONFIG_B43LEGACY_HWRNG=y +CONFIG_B43LEGACY_LEDS=y +CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y +CONFIG_B43LEGACY_PCI_AUTOSELECT=y +CONFIG_B43LEGACY_PIO=y +# CONFIG_B43LEGACY_PIO_MODE is not set +CONFIG_B43_BCMA=y +CONFIG_B43_BCMA_PIO=y +# CONFIG_B43_DEBUG is not set +CONFIG_B43_HWRNG=y +CONFIG_B43_LEDS=y +CONFIG_B43_PCICORE_AUTOSELECT=y +CONFIG_B43_PCI_AUTOSELECT=y +# CONFIG_B43_PCMCIA is not set +CONFIG_B43_PHY_HT=y +CONFIG_B43_PHY_LP=y +CONFIG_B43_PHY_N=y +CONFIG_B43_PIO=y +# CONFIG_B43_SDIO is not set +CONFIG_B43_SSB=y +CONFIG_B44=m +CONFIG_B44_PCI=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_BACKLIGHT_88PM860X=m +CONFIG_BACKLIGHT_AAT2870=m +CONFIG_BACKLIGHT_ADP5520=m +CONFIG_BACKLIGHT_ADP8860=m +CONFIG_BACKLIGHT_ADP8870=m +CONFIG_BACKLIGHT_APPLE=m +CONFIG_BACKLIGHT_AS3711=m +CONFIG_BACKLIGHT_ATMEL_PWM=m +CONFIG_BACKLIGHT_BD6107=m +CONFIG_BACKLIGHT_CARILLO_RANCH=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_DA903X=m +CONFIG_BACKLIGHT_DA9052=m +CONFIG_BACKLIGHT_GENERIC=m +CONFIG_BACKLIGHT_GPIO=m +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_LM3533=m +CONFIG_BACKLIGHT_LM3630A=m +CONFIG_BACKLIGHT_LM3639=m +CONFIG_BACKLIGHT_LP855X=m +CONFIG_BACKLIGHT_LP8788=m +CONFIG_BACKLIGHT_LV5207LP=m +CONFIG_BACKLIGHT_MAX8925=m +CONFIG_BACKLIGHT_PANDORA=m +CONFIG_BACKLIGHT_PCF50633=m +CONFIG_BACKLIGHT_PWM=m +CONFIG_BACKLIGHT_SAHARA=m +CONFIG_BACKLIGHT_TPS65217=m +CONFIG_BACKLIGHT_WM831X=m +# CONFIG_BACKTRACE_SELF_TEST is not set +CONFIG_BALLOON_COMPACTION=y +CONFIG_BASE_FULL=y +CONFIG_BASE_SMALL=0 +CONFIG_BATMAN_ADV=m +CONFIG_BATMAN_ADV_BLA=y +CONFIG_BATMAN_ADV_DAT=y +# CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_BATMAN_ADV_NC=y +CONFIG_BATTERY_88PM860X=m +CONFIG_BATTERY_BQ27X00_I2C=y +CONFIG_BATTERY_BQ27X00_PLATFORM=y +CONFIG_BATTERY_BQ27x00=m +CONFIG_BATTERY_DA9030=m +CONFIG_BATTERY_DA9052=m +CONFIG_BATTERY_DS2760=m +CONFIG_BATTERY_DS2780=m +CONFIG_BATTERY_DS2781=m +CONFIG_BATTERY_DS2782=m +CONFIG_BATTERY_INTEL_MID=m +CONFIG_BATTERY_MAX17040=m +CONFIG_BATTERY_MAX17042=m +CONFIG_BATTERY_PMU=m +CONFIG_BATTERY_RX51=m +CONFIG_BATTERY_SBS=m +CONFIG_BAYCOM_EPP=m +CONFIG_BAYCOM_PAR=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BCACHE=m +# CONFIG_BCACHE_CLOSURES_DEBUG is not set +# CONFIG_BCACHE_DEBUG is not set +CONFIG_BCH_CONST_M=14 +CONFIG_BCH_CONST_PARAMS=y +CONFIG_BCH_CONST_T=4 +CONFIG_BCM87XX_PHY=y +CONFIG_BCMA=m +CONFIG_BCMA_BLOCKIO=y +# CONFIG_BCMA_DEBUG is not set +CONFIG_BCMA_DRIVER_GMAC_CMN=y +CONFIG_BCMA_DRIVER_GPIO=y +CONFIG_BCMA_HOST_PCI=y +CONFIG_BCMA_HOST_PCI_POSSIBLE=y +CONFIG_BCMA_HOST_SOC=y +CONFIG_BCMA_POSSIBLE=y +CONFIG_BCM_WIMAX=m +# CONFIG_BDI_SWITCH is not set +CONFIG_BE2ISCSI=m +CONFIG_BE2NET=m +# CONFIG_BEFS_DEBUG is not set +CONFIG_BEFS_FS=m +CONFIG_BFS_FS=m +CONFIG_BIG_KEYS=y +CONFIG_BIG_LITTLE=y +CONFIG_BINARY_PRINTF=y +CONFIG_BINFMT_AOUT=m +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_MISC=m +CONFIG_BINFMT_SCRIPT=y +CONFIG_BITREVERSE=y +CONFIG_BLK_CGROUP=y +CONFIG_BLK_CMDLINE_PARSER=y +CONFIG_BLK_CPQ_CISS_DA=m +CONFIG_BLK_DEV=y +CONFIG_BLK_DEV_3W_XXXX_RAID=m +# CONFIG_BLK_DEV_AEC62XX is not set +# CONFIG_BLK_DEV_ALI15X3 is not set +CONFIG_BLK_DEV_AMD74XX=y +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y +# CONFIG_BLK_DEV_CMD64X is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_CRYPTOLOOP=m +# CONFIG_BLK_DEV_CS5520 is not set +# CONFIG_BLK_DEV_CS5530 is not set +CONFIG_BLK_DEV_DAC960=m +CONFIG_BLK_DEV_DM=y +CONFIG_BLK_DEV_DM_BUILTIN=y +CONFIG_BLK_DEV_DRBD=m +CONFIG_BLK_DEV_FD=m +CONFIG_BLK_DEV_GENERIC=y +# CONFIG_BLK_DEV_HD is not set +# CONFIG_BLK_DEV_HPT366 is not set +CONFIG_BLK_DEV_IDECD=y +CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y +CONFIG_BLK_DEV_IDEDMA=y +CONFIG_BLK_DEV_IDEDMA_PCI=y +CONFIG_BLK_DEV_IDEDMA_SFF=y +CONFIG_BLK_DEV_IDEPCI=y +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_IO_TRACE=y +# CONFIG_BLK_DEV_IT8172 is not set +# CONFIG_BLK_DEV_IT8213 is not set +# CONFIG_BLK_DEV_IT821X is not set +# CONFIG_BLK_DEV_JMICRON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +CONFIG_BLK_DEV_MD=y +CONFIG_BLK_DEV_NBD=m +# CONFIG_BLK_DEV_NS87415 is not set +CONFIG_BLK_DEV_NULL_BLK=m +CONFIG_BLK_DEV_NVME=m +# CONFIG_BLK_DEV_OFFBOARD is not set +# CONFIG_BLK_DEV_OPTI621 is not set +CONFIG_BLK_DEV_OSD=m +CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m +# CONFIG_BLK_DEV_PDC202XX_NEW is not set +# CONFIG_BLK_DEV_PDC202XX_OLD is not set +# CONFIG_BLK_DEV_PIIX is not set +# CONFIG_BLK_DEV_PLATFORM is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_BLK_DEV_RBD=m +CONFIG_BLK_DEV_RSXX=m +# CONFIG_BLK_DEV_SC1200 is not set +CONFIG_BLK_DEV_SD=y +# CONFIG_BLK_DEV_SIIMAGE is not set +CONFIG_BLK_DEV_SKD=m +# CONFIG_BLK_DEV_SL82C105 is not set +# CONFIG_BLK_DEV_SLC90E66 is not set +CONFIG_BLK_DEV_SR=y +# CONFIG_BLK_DEV_SR_VENDOR is not set +# CONFIG_BLK_DEV_SVWKS is not set +CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_TC86C001 is not set +CONFIG_BLK_DEV_THROTTLING=y +# CONFIG_BLK_DEV_TRIFLEX is not set +# CONFIG_BLK_DEV_TRM290 is not set +CONFIG_BLK_DEV_UMEM=m +# CONFIG_BLK_DEV_VIA82CXXX is not set +# CONFIG_BLK_DEV_XIP is not set +CONFIG_BLOCK=y +CONFIG_BLOCK_COMPAT=y +CONFIG_BL_SWITCHER=y +CONFIG_BL_SWITCHER_DUMMY_IF=m +CONFIG_BMA180=m +CONFIG_BMAC=m +CONFIG_BMP085=y +CONFIG_BMP085_I2C=m +CONFIG_BMP085_SPI=m +CONFIG_BNA=m +CONFIG_BNX2=m +CONFIG_BNX2X=m +CONFIG_BNX2X_SRIOV=y +CONFIG_BOARD_TPCI200=m +CONFIG_BONDING=m +CONFIG_BOOKE=y +CONFIG_BOOKE_WDT=m +CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=38 +# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0 +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_BOOTX_TEXT is not set +CONFIG_BOOT_PRINTK_DELAY=y +CONFIG_BOUNCE=y +CONFIG_BPCTL=m +CONFIG_BPF_JIT=y +CONFIG_BPQETHER=m +CONFIG_BQL=y +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_BRCMDBG is not set +CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_SDIO=y +CONFIG_BRCMFMAC_USB=y +CONFIG_BRCMSMAC=m +CONFIG_BRCMUTIL=m +CONFIG_BRCM_TRACING=y +CONFIG_BRIDGE=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_IP6=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_NFLOG=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +# CONFIG_BRIDGE_EBT_ULOG is not set +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_NETFILTER=y +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_BROADCOM_PHY=y +CONFIG_BSD_DISKLABEL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_BT=m +CONFIG_BTREE=y +# CONFIG_BTRFS_ASSERT is not set +# CONFIG_BTRFS_DEBUG is not set +CONFIG_BTRFS_FS=m +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +CONFIG_BT_ATH3K=m +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBTSDIO=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_3WIRE=y +CONFIG_BT_HCIUART_ATH3K=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIVHCI=m +CONFIG_BT_HIDP=m +CONFIG_BT_MRVL=m +CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_WILINK=m +CONFIG_BUG=y +CONFIG_BUILDTIME_EXTABLE_SORT=y +CONFIG_C101=m +CONFIG_C293_PCIE=y +CONFIG_C2PORT=m +CONFIG_C2PORT_DURAMAR_2150=m +CONFIG_CACHEFILES=m +# CONFIG_CACHEFILES_DEBUG is not set +# CONFIG_CACHEFILES_HISTOGRAM is not set +CONFIG_CACHE_L2X0=y +CONFIG_CACHE_PL310=y +CONFIG_CAIF=m +# CONFIG_CAIF_DEBUG is not set +CONFIG_CAIF_HSI=m +CONFIG_CAIF_NETDEV=m +CONFIG_CAIF_SPI_SLAVE=m +# CONFIG_CAIF_SPI_SYNC is not set +CONFIG_CAIF_TTY=m +CONFIG_CAIF_USB=m +CONFIG_CAIF_VIRTIO=m +CONFIG_CALGARY_IOMMU=y +CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y +CONFIG_CAN=m +CONFIG_CAN_8DEV_USB=m +CONFIG_CAN_AT91=m +CONFIG_CAN_BCM=m +CONFIG_CAN_CALC_BITTIMING=y +CONFIG_CAN_CC770=m +CONFIG_CAN_CC770_ISA=m +CONFIG_CAN_CC770_PLATFORM=m +CONFIG_CAN_C_CAN=m +CONFIG_CAN_C_CAN_PCI=m +CONFIG_CAN_C_CAN_PLATFORM=m +# CONFIG_CAN_DEBUG_DEVICES is not set +CONFIG_CAN_DEV=m +CONFIG_CAN_EMS_PCI=m +CONFIG_CAN_EMS_PCMCIA=m +CONFIG_CAN_EMS_USB=m +CONFIG_CAN_ESD_USB2=m +CONFIG_CAN_FLEXCAN=m +CONFIG_CAN_GRCAN=m +CONFIG_CAN_GW=m +CONFIG_CAN_JANZ_ICAN3=m +CONFIG_CAN_KVASER_PCI=m +CONFIG_CAN_KVASER_USB=m +CONFIG_CAN_LEDS=y +CONFIG_CAN_MCP251X=m +CONFIG_CAN_MSCAN=m +CONFIG_CAN_PEAK_PCI=m +CONFIG_CAN_PEAK_PCIEC=y +CONFIG_CAN_PEAK_PCMCIA=m +CONFIG_CAN_PEAK_USB=m +CONFIG_CAN_PLX_PCI=m +CONFIG_CAN_RAW=m +CONFIG_CAN_SJA1000=m +CONFIG_CAN_SJA1000_ISA=m +CONFIG_CAN_SJA1000_OF_PLATFORM=m +CONFIG_CAN_SJA1000_PLATFORM=m +CONFIG_CAN_SLCAN=m +CONFIG_CAN_SOFTING=m +CONFIG_CAN_SOFTING_CS=m +CONFIG_CAN_TI_HECC=m +CONFIG_CAN_TSCAN1=m +CONFIG_CAN_VCAN=m +CONFIG_CAPI_AVM=y +CONFIG_CAPI_EICON=y +CONFIG_CAPI_TRACE=y +CONFIG_CARDBUS=y +CONFIG_CARDMAN_4000=m +CONFIG_CARDMAN_4040=m +CONFIG_CARL9170=m +# CONFIG_CARL9170_DEBUGFS is not set +CONFIG_CARL9170_HWRNG=y +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +# CONFIG_CARMINE_DRAM_CUSTOM is not set +CONFIG_CASSINI=m +CONFIG_CB710_CORE=m +# CONFIG_CB710_DEBUG is not set +CONFIG_CB710_DEBUG_ASSUMPTIONS=y +CONFIG_CBE_CPUFREQ_SPU_GOVERNOR=m +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_CC_STACKPROTECTOR=y +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CED1401=m +# CONFIG_CELL_CPU is not set +CONFIG_CEPH_FS=m +CONFIG_CEPH_FSCACHE=y +CONFIG_CEPH_LIB=m +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y +CONFIG_CFAG12864B=m +CONFIG_CFAG12864B_RATE=20 +CONFIG_CFG80211=m +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +CONFIG_CFG80211_DEBUGFS=y +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_INTERNAL_REGDB is not set +# CONFIG_CFG80211_REG_DEBUG is not set +CONFIG_CFG80211_WEXT=y +CONFIG_CFQ_GROUP_IOSCHED=y +CONFIG_CFS_BANDWIDTH=y +CONFIG_CGROUPS=y +CONFIG_CGROUP_CPUACCT=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_HUGETLB=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_SCHED=y +CONFIG_CHARGER_88PM860X=m +CONFIG_CHARGER_BQ2415X=m +CONFIG_CHARGER_BQ24190=m +CONFIG_CHARGER_BQ24735=m +CONFIG_CHARGER_GPIO=m +CONFIG_CHARGER_ISP1704=m +CONFIG_CHARGER_LP8727=m +CONFIG_CHARGER_LP8788=m +CONFIG_CHARGER_MANAGER=y +CONFIG_CHARGER_MAX8903=m +CONFIG_CHARGER_MAX8997=m +CONFIG_CHARGER_MAX8998=m +CONFIG_CHARGER_PCF50633=m +CONFIG_CHARGER_SMB347=m +CONFIG_CHARGER_TPS65090=m +CONFIG_CHARGER_TWL4030=m +CONFIG_CHECKPOINT_RESTORE=y +CONFIG_CHECK_SIGNATURE=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3=m +CONFIG_CHELSIO_T4=m +CONFIG_CHELSIO_T4VF=m +CONFIG_CHROMEOS_LAPTOP=m +CONFIG_CHROME_PLATFORMS=y +CONFIG_CHR_DEV_OSST=m +CONFIG_CHR_DEV_SCH=m +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_ST=m +CONFIG_CICADA_PHY=y +CONFIG_CIFS=m +CONFIG_CIFS_ACL=y +CONFIG_CIFS_DEBUG=y +# CONFIG_CIFS_DEBUG2 is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_FSCACHE=y +CONFIG_CIFS_POSIX=y +CONFIG_CIFS_SMB2=y +CONFIG_CIFS_STATS=y +# CONFIG_CIFS_STATS2 is not set +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CIFS_XATTR=y +CONFIG_CISS_SCSI_TAPE=y +CONFIG_CLEANCACHE=y +CONFIG_CLKBLD_I8253=y +CONFIG_CLKDEV_LOOKUP=y +CONFIG_CLKEVT_I8253=y +CONFIG_CLKSRC_I8253=y +CONFIG_CLKSRC_MMIO=y +CONFIG_CLKSRC_OF=y +CONFIG_CLK_PPC_CORENET=y +CONFIG_CLK_TWL6040=m +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_CLS_U32_MARK=y +# CONFIG_CLS_U32_PERF is not set +CONFIG_CLZ_TAB=y +CONFIG_CM36651=m +CONFIG_CMA=y +CONFIG_CMA_ALIGNMENT=8 +CONFIG_CMA_AREAS=7 +# CONFIG_CMA_DEBUG is not set +CONFIG_CMA_SIZE_MBYTES=16 +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +# CONFIG_CMDLINE_BOOL is not set +# CONFIG_CMDLINE_FORCE is not set +CONFIG_CMDLINE_PARTITION=y +CONFIG_CMM=y +CONFIG_CNIC=m +CONFIG_CODA_FS=m +CONFIG_COMEDI=m +CONFIG_COMEDI_8255=m +CONFIG_COMEDI_8255_PCI=m +CONFIG_COMEDI_ADDI_APCI_035=m +CONFIG_COMEDI_ADDI_APCI_1032=m +CONFIG_COMEDI_ADDI_APCI_1500=m +CONFIG_COMEDI_ADDI_APCI_1516=m +CONFIG_COMEDI_ADDI_APCI_1564=m +CONFIG_COMEDI_ADDI_APCI_16XX=m +CONFIG_COMEDI_ADDI_APCI_2032=m +CONFIG_COMEDI_ADDI_APCI_2200=m +CONFIG_COMEDI_ADDI_APCI_3120=m +CONFIG_COMEDI_ADDI_APCI_3501=m +CONFIG_COMEDI_ADDI_APCI_3XXX=m +CONFIG_COMEDI_ADDI_WATCHDOG=m +CONFIG_COMEDI_ADL_PCI6208=m +CONFIG_COMEDI_ADL_PCI7X3X=m +CONFIG_COMEDI_ADL_PCI8164=m +CONFIG_COMEDI_ADL_PCI9111=m +CONFIG_COMEDI_ADL_PCI9118=m +CONFIG_COMEDI_ADQ12B=m +CONFIG_COMEDI_ADV_PCI1710=m +CONFIG_COMEDI_ADV_PCI1723=m +CONFIG_COMEDI_ADV_PCI1724=m +CONFIG_COMEDI_ADV_PCI_DIO=m +CONFIG_COMEDI_AIO_AIO12_8=m +CONFIG_COMEDI_AIO_IIRO_16=m +CONFIG_COMEDI_AMPLC_DIO200=m +CONFIG_COMEDI_AMPLC_DIO200_ISA=m +CONFIG_COMEDI_AMPLC_DIO200_PCI=m +CONFIG_COMEDI_AMPLC_PC236=m +CONFIG_COMEDI_AMPLC_PC236_ISA=m +CONFIG_COMEDI_AMPLC_PC236_PCI=m +CONFIG_COMEDI_AMPLC_PC263_ISA=m +CONFIG_COMEDI_AMPLC_PC263_PCI=m +CONFIG_COMEDI_AMPLC_PCI224=m +CONFIG_COMEDI_AMPLC_PCI230=m +CONFIG_COMEDI_BOND=m +CONFIG_COMEDI_C6XDIGIO=m +CONFIG_COMEDI_CB_DAS16_CS=m +CONFIG_COMEDI_CB_PCIDAS=m +CONFIG_COMEDI_CB_PCIDAS64=m +CONFIG_COMEDI_CB_PCIDDA=m +CONFIG_COMEDI_CB_PCIMDAS=m +CONFIG_COMEDI_CB_PCIMDDA=m +CONFIG_COMEDI_CONTEC_PCI_DIO=m +CONFIG_COMEDI_DAQBOARD2000=m +CONFIG_COMEDI_DAS08=m +CONFIG_COMEDI_DAS08_CS=m +CONFIG_COMEDI_DAS08_ISA=m +CONFIG_COMEDI_DAS08_PCI=m +CONFIG_COMEDI_DAS16=m +CONFIG_COMEDI_DAS16M1=m +CONFIG_COMEDI_DAS1800=m +CONFIG_COMEDI_DAS6402=m +CONFIG_COMEDI_DAS800=m +# CONFIG_COMEDI_DEBUG is not set +CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB=20480 +CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048 +CONFIG_COMEDI_DMM32AT=m +CONFIG_COMEDI_DT2801=m +CONFIG_COMEDI_DT2811=m +CONFIG_COMEDI_DT2814=m +CONFIG_COMEDI_DT2815=m +CONFIG_COMEDI_DT2817=m +CONFIG_COMEDI_DT282X=m +CONFIG_COMEDI_DT3000=m +CONFIG_COMEDI_DT9812=m +CONFIG_COMEDI_DYNA_PCI10XX=m +CONFIG_COMEDI_FC=m +CONFIG_COMEDI_FL512=m +CONFIG_COMEDI_GSC_HPDI=m +CONFIG_COMEDI_ICP_MULTI=m +CONFIG_COMEDI_II_PCI20KC=m +CONFIG_COMEDI_JR3_PCI=m +CONFIG_COMEDI_KCOMEDILIB=m +CONFIG_COMEDI_KE_COUNTER=m +CONFIG_COMEDI_ME4000=m +CONFIG_COMEDI_ME_DAQ=m +CONFIG_COMEDI_MISC_DRIVERS=y +CONFIG_COMEDI_MITE=m +CONFIG_COMEDI_MPC624=m +CONFIG_COMEDI_MULTIQ3=m +CONFIG_COMEDI_NI_6527=m +CONFIG_COMEDI_NI_65XX=m +CONFIG_COMEDI_NI_660X=m +CONFIG_COMEDI_NI_670X=m +CONFIG_COMEDI_NI_ATMIO=m +CONFIG_COMEDI_NI_ATMIO16D=m +CONFIG_COMEDI_NI_AT_A2150=m +CONFIG_COMEDI_NI_AT_AO=m +CONFIG_COMEDI_NI_DAQ_700_CS=m +CONFIG_COMEDI_NI_DAQ_DIO24_CS=m +CONFIG_COMEDI_NI_LABPC=m +CONFIG_COMEDI_NI_LABPC_CS=m +CONFIG_COMEDI_NI_LABPC_ISA=m +CONFIG_COMEDI_NI_LABPC_ISADMA=m +CONFIG_COMEDI_NI_LABPC_PCI=m +CONFIG_COMEDI_NI_MIO_CS=m +CONFIG_COMEDI_NI_PCIDIO=m +CONFIG_COMEDI_NI_PCIMIO=m +CONFIG_COMEDI_NI_TIO=m +CONFIG_COMEDI_NI_TIOCMD=m +CONFIG_COMEDI_PARPORT=m +CONFIG_COMEDI_PCI_DRIVERS=y +CONFIG_COMEDI_PCL711=m +CONFIG_COMEDI_PCL724=m +CONFIG_COMEDI_PCL726=m +CONFIG_COMEDI_PCL730=m +CONFIG_COMEDI_PCL812=m +CONFIG_COMEDI_PCL816=m +CONFIG_COMEDI_PCL818=m +CONFIG_COMEDI_PCM3724=m +CONFIG_COMEDI_PCMAD=m +CONFIG_COMEDI_PCMCIA_DRIVERS=y +CONFIG_COMEDI_PCMDA12=m +CONFIG_COMEDI_PCMMIO=m +CONFIG_COMEDI_PCMUIO=m +CONFIG_COMEDI_POC=m +CONFIG_COMEDI_QUATECH_DAQP_CS=m +CONFIG_COMEDI_RTD520=m +CONFIG_COMEDI_RTI800=m +CONFIG_COMEDI_RTI802=m +CONFIG_COMEDI_S526=m +CONFIG_COMEDI_S626=m +CONFIG_COMEDI_SERIAL2002=m +CONFIG_COMEDI_SKEL=m +CONFIG_COMEDI_SSV_DNP=m +CONFIG_COMEDI_TEST=m +CONFIG_COMEDI_UNIOXX5=m +CONFIG_COMEDI_USBDUX=m +CONFIG_COMEDI_USBDUXFAST=m +CONFIG_COMEDI_USBDUXSIGMA=m +CONFIG_COMEDI_USB_DRIVERS=y +CONFIG_COMEDI_VMK80XX=m +CONFIG_COMMON_CLK=y +# CONFIG_COMMON_CLK_DEBUG is not set +CONFIG_COMMON_CLK_MAX77686=m +CONFIG_COMMON_CLK_S2MPS11=m +CONFIG_COMMON_CLK_SI5351=m +CONFIG_COMMON_CLK_VERSATILE=y +CONFIG_COMMON_CLK_WM831X=m +CONFIG_COMMON_CLK_XGENE=y +CONFIG_COMPAL_LAPTOP=m +CONFIG_COMPAT=y +CONFIG_COMPAT_BINFMT_ELF=y +# CONFIG_COMPAT_BRK is not set +CONFIG_COMPAT_FOR_U64_ALIGNMENT=y +CONFIG_COMPAT_NETLINK_MESSAGES=y +CONFIG_COMPAT_OLD_SIGACTION=y +# CONFIG_COMPAT_VDSO is not set +# CONFIG_COMPILE_TEST is not set +CONFIG_CONFIGFS_FS=m +CONFIG_CONNECTOR=y +CONFIG_CONSOLE_POLL=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_CONTEXT_TRACKING=y +# CONFIG_CONTEXT_TRACKING_FORCE is not set +CONFIG_COPS=m +CONFIG_COPS_DAYNA=y +CONFIG_COPS_TANGENT=y +CONFIG_CORDIC=m +CONFIG_COREDUMP=y +CONFIG_CORENET_GENERIC=y +CONFIG_COSA=m +# CONFIG_CPA_DEBUG is not set +CONFIG_CPM=y +CONFIG_CPM2=y +CONFIG_CPU5_WDT=m +CONFIG_CPUSETS=y +CONFIG_CPU_32v6K=y +CONFIG_CPU_32v7=y +CONFIG_CPU_ABRT_EV7=y +# CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_CPU_CACHE_V7=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y +# CONFIG_CPU_DCACHE_DISABLE is not set +CONFIG_CPU_FREQ=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_MAPLE=y +CONFIG_CPU_FREQ_PMAC=y +CONFIG_CPU_FREQ_PMAC64=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_HAS_ASID=y +# CONFIG_CPU_ICACHE_DISABLE is not set +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y +CONFIG_CPU_NOTIFIER_ERROR_INJECT=m +CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_PM=y +CONFIG_CPU_RMAP=y +CONFIG_CPU_SUP_AMD=y +CONFIG_CPU_SUP_CENTAUR=y +CONFIG_CPU_SUP_CYRIX_32=y +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_TRANSMETA_32=y +CONFIG_CPU_SUP_UMC_32=y +CONFIG_CPU_THERMAL=y +CONFIG_CPU_TLB_V7=y +CONFIG_CPU_V7=y +CONFIG_CRAMFS=m +CONFIG_CRC16=y +CONFIG_CRC32=y +# CONFIG_CRC32_BIT is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_SELFTEST is not set +# CONFIG_CRC32_SLICEBY4 is not set +CONFIG_CRC32_SLICEBY8=y +CONFIG_CRC7=m +CONFIG_CRC8=m +CONFIG_CRC_CCITT=m +CONFIG_CRC_ITU_T=m +CONFIG_CRC_T10DIF=y +CONFIG_CROSS_COMPILE="" +CONFIG_CROSS_MEMORY_ATTACH=y +CONFIG_CRYPTO=y +CONFIG_CRYPTO_842=m +CONFIG_CRYPTO_ABLK_HELPER=m +CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_586=m +CONFIG_CRYPTO_AES_ARM=m +CONFIG_CRYPTO_AES_ARM_BS=m +CONFIG_CRYPTO_AES_NI_INTEL=m +CONFIG_CRYPTO_AES_X86_64=m +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_ANSI_CPRNG=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_AUTHENC=m +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_BLOWFISH_COMMON=m +CONFIG_CRYPTO_BLOWFISH_X86_64=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m +CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m +CONFIG_CRYPTO_CAMELLIA_X86_64=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST5_AVX_X86_64=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_CAST6_AVX_X86_64=m +CONFIG_CRYPTO_CAST_COMMON=m +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_CMAC=m +CONFIG_CRYPTO_CRC32=m +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32C_INTEL=y +CONFIG_CRYPTO_CRC32_PCLMUL=m +CONFIG_CRYPTO_CRCT10DIF=y +CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m +CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_DEV_FSL_CAAM=m +CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=m +CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=m +# CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set +CONFIG_CRYPTO_DEV_FSL_CAAM_INTC=y +CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD=255 +CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_TIME_THLD=2048 +CONFIG_CRYPTO_DEV_FSL_CAAM_JR=m +CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9 +CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=m +CONFIG_CRYPTO_DEV_GEODE=m +CONFIG_CRYPTO_DEV_HIFN_795X=m +CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y +CONFIG_CRYPTO_DEV_NX=y +CONFIG_CRYPTO_DEV_NX_COMPRESS=m +CONFIG_CRYPTO_DEV_NX_ENCRYPT=m +CONFIG_CRYPTO_DEV_OMAP_AES=m +CONFIG_CRYPTO_DEV_OMAP_SHAM=m +CONFIG_CRYPTO_DEV_PADLOCK=y +CONFIG_CRYPTO_DEV_PADLOCK_AES=m +CONFIG_CRYPTO_DEV_PADLOCK_SHA=m +CONFIG_CRYPTO_DEV_SAHARA=m +CONFIG_CRYPTO_DEV_TALITOS=m +CONFIG_CRYPTO_DEV_TEGRA_AES=m +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GF128MUL=m +CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m +CONFIG_CRYPTO_GLUE_HELPER_X86=m +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_HASH_INFO=y +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_LZ4=m +CONFIG_CRYPTO_LZ4HC=m +CONFIG_CRYPTO_LZO=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_PCBC=m +CONFIG_CRYPTO_PCOMP=m +CONFIG_CRYPTO_PCOMP2=y +CONFIG_CRYPTO_PCRYPT=m +CONFIG_CRYPTO_RMD128=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RMD256=m +CONFIG_CRYPTO_RMD320=m +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_SALSA20_586=m +CONFIG_CRYPTO_SALSA20_X86_64=m +CONFIG_CRYPTO_SEED=m +CONFIG_CRYPTO_SEQIV=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m +CONFIG_CRYPTO_SERPENT_AVX_X86_64=m +CONFIG_CRYPTO_SERPENT_SSE2_586=m +CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA1_ARM=m +CONFIG_CRYPTO_SHA1_PPC=m +CONFIG_CRYPTO_SHA1_SSSE3=m +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA256_SSSE3=m +CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_SHA512_SSSE3=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_586=m +CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m +CONFIG_CRYPTO_TWOFISH_COMMON=m +CONFIG_CRYPTO_TWOFISH_X86_64=m +CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m +CONFIG_CRYPTO_USER=m +CONFIG_CRYPTO_USER_API=m +CONFIG_CRYPTO_USER_API_HASH=m +CONFIG_CRYPTO_USER_API_SKCIPHER=m +CONFIG_CRYPTO_VMAC=m +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_CRYPTO_WP512=m +CONFIG_CRYPTO_XCBC=m +CONFIG_CRYPTO_XTS=m +CONFIG_CRYPTO_ZLIB=m +CONFIG_CRYSTALHD=m +# CONFIG_CS5535_MFGPT is not set +CONFIG_CS89x0=m +CONFIG_CS89x0_PLATFORM=y +CONFIG_CUSE=m +CONFIG_CW1200=m +CONFIG_CW1200_WLAN_SDIO=m +CONFIG_CW1200_WLAN_SPI=m +CONFIG_CXT1E1=m +CONFIG_CYCLADES=m +CONFIG_CYPRESS_FIRMWARE=m +# CONFIG_CYZ_INTR is not set +CONFIG_DA9052_WATCHDOG=m +CONFIG_DA9055_WATCHDOG=m +CONFIG_DAVICOM_PHY=y +CONFIG_DCA=m +CONFIG_DCACHE_WORD_ACCESS=y +CONFIG_DCB=y +CONFIG_DCDBAS=m +CONFIG_DDR=y +CONFIG_DE2104X=m +CONFIG_DE2104X_DSL=0 +CONFIG_DE4X5=m +CONFIG_DEBUGGER=y +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_BLK_CGROUP is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_DEBUG_BOOT_PARAMS is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_CREDENTIALS is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +CONFIG_DEBUG_FS=y +# CONFIG_DEBUG_GPIO is not set +# CONFIG_DEBUG_HIGHMEM is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set +CONFIG_DEBUG_IMX_UART_PORT=1 +CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_INFO_REDUCED is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_LL is not set +CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_NMI_SELFTEST is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_NX_TEST is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_DEBUG_PINCTRL is not set +# CONFIG_DEBUG_PREEMPT is not set +CONFIG_DEBUG_RODATA=y +# CONFIG_DEBUG_RODATA_TEST is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_DEBUG_SET_MODULE_RONX=y +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_SHIRQ is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_STACKOVERFLOW is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set +# CONFIG_DEBUG_TLBFLUSH is not set +# CONFIG_DEBUG_UART_8250 is not set +# CONFIG_DEBUG_UART_PL01X is not set +# CONFIG_DEBUG_USER is not set +# CONFIG_DEBUG_VIRTUAL is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_WRITECOUNT is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +CONFIG_DECNET=m +CONFIG_DECNET_NF_GRABULATOR=m +# CONFIG_DECNET_ROUTER is not set +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_LZ4=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_LZO=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DEFAULT_CUBIC=y +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +CONFIG_DEFAULT_IO_DELAY_TYPE=1 +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 +# CONFIG_DEFAULT_NOOP is not set +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_SECURITY="apparmor" +CONFIG_DEFAULT_SECURITY_APPARMOR=y +# CONFIG_DEFAULT_SECURITY_DAC is not set +# CONFIG_DEFAULT_SECURITY_SELINUX is not set +# CONFIG_DEFAULT_SECURITY_SMACK is not set +# CONFIG_DEFAULT_SECURITY_TOMOYO is not set +# CONFIG_DEFAULT_SECURITY_YAMA is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_DEFXX=m +# CONFIG_DEFXX_MMIO is not set +CONFIG_DELL_LAPTOP=m +CONFIG_DELL_RBU=m +CONFIG_DELL_WMI=m +CONFIG_DELL_WMI_AIO=m +# CONFIG_DEPRECATED_PARAM_STRUCT is not set +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEVFREQ_GOV_PERFORMANCE=y +CONFIG_DEVFREQ_GOV_POWERSAVE=y +CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y +CONFIG_DEVFREQ_GOV_USERSPACE=y +# CONFIG_DEVKMEM is not set +CONFIG_DEVPORT=y +CONFIG_DEVPTS_MULTIPLE_INSTANCES=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DEV_APPLETALK=m +CONFIG_DE_AOC=y +CONFIG_DGAP=m +CONFIG_DGNC=m +CONFIG_DGRP=m +CONFIG_DIRECT_GBPAGES=y +CONFIG_DISPLAY_CONNECTOR_ANALOG_TV=m +CONFIG_DISPLAY_CONNECTOR_DVI=m +CONFIG_DISPLAY_CONNECTOR_HDMI=y +CONFIG_DISPLAY_ENCODER_TFP410=m +CONFIG_DISPLAY_ENCODER_TPD12S015=y +CONFIG_DISPLAY_PANEL_DPI=m +CONFIG_DISPLAY_PANEL_DSI_CM=m +CONFIG_DISPLAY_PANEL_LGPHILIPS_LB035Q02=m +CONFIG_DISPLAY_PANEL_NEC_NL8048HL11=m +CONFIG_DISPLAY_PANEL_SHARP_LS037V7DW01=m +CONFIG_DISPLAY_PANEL_SONY_ACX565AKM=m +CONFIG_DISPLAY_PANEL_TPO_TD028TTEC1=m +CONFIG_DISPLAY_PANEL_TPO_TD043MTEA1=m +CONFIG_DL2K=m +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set +CONFIG_DM9000=m +# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set +CONFIG_DM9102=m +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set +CONFIG_DMAR_TABLE=y +# CONFIG_DMATEST is not set +CONFIG_DMA_ACPI=y +# CONFIG_DMA_API_DEBUG is not set +CONFIG_DMA_CMA=y +CONFIG_DMA_ENGINE=y +CONFIG_DMA_ENGINE_RAID=y +CONFIG_DMA_OF=y +CONFIG_DMA_OMAP=y +CONFIG_DMA_SHARED_BUFFER=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DMI=y +CONFIG_DMIID=y +CONFIG_DMI_SYSFS=m +CONFIG_DM_BIO_PRISON=m +CONFIG_DM_BUFIO=m +CONFIG_DM_CACHE=m +CONFIG_DM_CACHE_CLEANER=m +CONFIG_DM_CACHE_MQ=m +CONFIG_DM_CRYPT=m +# CONFIG_DM_DEBUG is not set +# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +CONFIG_DM_DELAY=m +CONFIG_DM_FLAKEY=m +CONFIG_DM_LOG_USERSPACE=m +CONFIG_DM_MIRROR=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_QL=m +CONFIG_DM_MULTIPATH_ST=m +CONFIG_DM_PERSISTENT_DATA=m +CONFIG_DM_RAID=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_SWITCH=m +CONFIG_DM_THIN_PROVISIONING=m +CONFIG_DM_UEVENT=y +CONFIG_DM_VERITY=m +CONFIG_DM_ZERO=m +CONFIG_DNET=m +CONFIG_DNOTIFY=y +CONFIG_DNS_RESOLVER=y +CONFIG_DONGLE=y +CONFIG_DOUBLEFAULT=y +CONFIG_DPA=y +# CONFIG_DPAA_ETH_UNIT_TESTS is not set +CONFIG_DPA_MAX_FRM_SIZE=1522 +CONFIG_DPA_OFFLINE_PORTS=y +# CONFIG_DPM_WATCHDOG is not set +CONFIG_DQL=y +CONFIG_DRA752_THERMAL=y +CONFIG_DRAGONRISE_FF=y +# CONFIG_DRBD_FAULT_INJECTION is not set +CONFIG_DRM=m +CONFIG_DRM_ARMADA=m +CONFIG_DRM_AST=m +CONFIG_DRM_CIRRUS_QEMU=m +# CONFIG_DRM_EXYNOS is not set +CONFIG_DRM_GEM_CMA_HELPER=y +CONFIG_DRM_GMA3600=y +CONFIG_DRM_GMA500=m +CONFIG_DRM_GMA600=y +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I2C_NXP_TDA998X=m +CONFIG_DRM_I2C_SIL164=m +CONFIG_DRM_I810=m +CONFIG_DRM_I915=m +CONFIG_DRM_I915_BDW=m +CONFIG_DRM_I915_FBDEV=y +CONFIG_DRM_I915_KMS=y +CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT=y +# CONFIG_DRM_I915_UMS is not set +# CONFIG_DRM_IMX is not set +CONFIG_DRM_KMS_CMA_HELPER=y +CONFIG_DRM_KMS_FB_HELPER=y +CONFIG_DRM_KMS_HELPER=m +CONFIG_DRM_LOAD_EDID_FIRMWARE=y +# CONFIG_DRM_MEDFIELD is not set +CONFIG_DRM_MGA=m +# CONFIG_DRM_MGAG200 is not set +CONFIG_DRM_NOUVEAU=m +CONFIG_DRM_NOUVEAU_BACKLIGHT=y +CONFIG_DRM_OMAP=m +CONFIG_DRM_OMAP_NUM_CRTCS=1 +CONFIG_DRM_QXL=m +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_RADEON_UMS=y +CONFIG_DRM_RCAR_DU=m +CONFIG_DRM_RCAR_LVDS=y +CONFIG_DRM_SAVAGE=m +CONFIG_DRM_SHMOBILE=m +CONFIG_DRM_SIS=m +CONFIG_DRM_TDFX=m +# CONFIG_DRM_TEGRA is not set +CONFIG_DRM_TTM=m +CONFIG_DRM_UDL=m +CONFIG_DRM_USB=m +CONFIG_DRM_VIA=m +CONFIG_DRM_VMWGFX=m +CONFIG_DRM_VMWGFX_FBCON=y +CONFIG_DS1682=m +CONFIG_DSCC4=m +CONFIG_DSCC4_PCISYNC=y +CONFIG_DSCC4_PCI_RST=y +# CONFIG_DT3155_CCIR is not set +CONFIG_DT3155_STREAMING=y +CONFIG_DTC=y +CONFIG_DTL=y +CONFIG_DTLK=m +CONFIG_DUMMY=m +CONFIG_DUMMY_CONSOLE=y +CONFIG_DUMMY_IRQ=m +CONFIG_DVB_A8293=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_AF9033=m +CONFIG_DVB_AS102=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_AU8522_DTV=m +CONFIG_DVB_AU8522_V4L=m +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set +CONFIG_DVB_BCM3510=m +CONFIG_DVB_BT8XX=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_CORE=m +CONFIG_DVB_BUDGET_PATCH=m +CONFIG_DVB_CORE=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_CX24117=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_CXD2099=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_DDBRIDGE=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_DIB8000=m +CONFIG_DVB_DM1105=m +CONFIG_DVB_DRXD=m +CONFIG_DVB_DRXK=m +CONFIG_DVB_DS3000=m +# CONFIG_DVB_DUMMY_FE is not set +CONFIG_DVB_DYNAMIC_MINORS=y +CONFIG_DVB_EC100=m +CONFIG_DVB_FIREDTV=m +CONFIG_DVB_FIREDTV_INPUT=y +CONFIG_DVB_HOPPER=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_IT913X_FE=m +CONFIG_DVB_IX2505V=m +CONFIG_DVB_L64781=m +CONFIG_DVB_LG2160=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m +CONFIG_DVB_M88RS2000=m +CONFIG_DVB_MANTIS=m +CONFIG_DVB_MAX_ADAPTERS=8 +CONFIG_DVB_MB86A16=m +CONFIG_DVB_MB86A20S=m +CONFIG_DVB_MT312=m +CONFIG_DVB_MT352=m +CONFIG_DVB_NET=y +CONFIG_DVB_NGENE=m +CONFIG_DVB_NXT200X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_PLL=m +CONFIG_DVB_PLUTO2=m +CONFIG_DVB_PT1=m +CONFIG_DVB_RTL2830=m +CONFIG_DVB_RTL2832=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_S5H1411=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_S921=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STV0297=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV0367=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV6110x=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA10023=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_TDA10071=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA18271C2DD=m +CONFIG_DVB_TDA665x=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TS2020=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_DVB_TUA6100=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_USB=m +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_AF9005=m +CONFIG_DVB_USB_AF9005_REMOTE=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_CXUSB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_DIBUSB_MB=m +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_IT913X=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_V2=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_VES1820=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_ZL10036=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_ZL10353=m +CONFIG_DW_APB_TIMER=y +CONFIG_DW_DMAC=m +CONFIG_DW_DMAC_CORE=m +CONFIG_DW_DMAC_PCI=m +CONFIG_DW_WATCHDOG=m +CONFIG_DX_SEP=m +CONFIG_DYNAMIC_DEBUG=y +CONFIG_DYNAMIC_FTRACE=y +CONFIG_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_E100=m +CONFIG_E1000=m +CONFIG_E1000E=m +# CONFIG_E200 is not set +CONFIG_E500=y +# CONFIG_E5500_CPU is not set +# CONFIG_E6500_CPU is not set +CONFIG_EARLY_PRINTK=y +CONFIG_EARLY_PRINTK_DBGP=y +CONFIG_EARLY_PRINTK_EFI=y +CONFIG_EARLY_PRINTK_INTEL_MID=y +CONFIG_ECHO=m +CONFIG_ECRYPT_FS=y +CONFIG_ECRYPT_FS_MESSAGING=y +CONFIG_EDAC=y +CONFIG_EDAC_AMD64=m +# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set +CONFIG_EDAC_AMD76X=m +CONFIG_EDAC_AMD8111=m +CONFIG_EDAC_AMD8131=m +CONFIG_EDAC_CPC925=m +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_DECODE_MCE=m +CONFIG_EDAC_E752X=m +CONFIG_EDAC_E7XXX=m +CONFIG_EDAC_HIGHBANK_L2=m +CONFIG_EDAC_HIGHBANK_MC=m +CONFIG_EDAC_I3000=m +CONFIG_EDAC_I3200=m +CONFIG_EDAC_I5000=m +CONFIG_EDAC_I5100=m +CONFIG_EDAC_I5400=m +CONFIG_EDAC_I7300=m +CONFIG_EDAC_I7CORE=m +CONFIG_EDAC_I82860=m +CONFIG_EDAC_I82875P=m +CONFIG_EDAC_I82975X=m +CONFIG_EDAC_LEGACY_SYSFS=y +CONFIG_EDAC_MCE_INJ=m +CONFIG_EDAC_MM_EDAC=m +CONFIG_EDAC_MPC85XX=m +CONFIG_EDAC_PASEMI=m +CONFIG_EDAC_R82600=m +CONFIG_EDAC_SBRIDGE=m +CONFIG_EDAC_X38=m +CONFIG_EDD=y +CONFIG_EDD_OFF=y +CONFIG_EEEPC_LAPTOP=m +CONFIG_EEEPC_WMI=m +CONFIG_EEH=y +CONFIG_EEPROM_93CX6=m +CONFIG_EEPROM_93XX46=m +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_AT25=m +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_MAX6875=m +CONFIG_EFI=y +CONFIG_EFIVAR_FS=y +CONFIG_EFI_PARTITION=y +CONFIG_EFI_STUB=y +CONFIG_EFI_VARS=y +CONFIG_EFI_VARS_PSTORE=m +# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set +CONFIG_EFS_FS=m +CONFIG_EHEA=y +CONFIG_EISA=y +CONFIG_EISA_NAMES=y +CONFIG_EISA_PCI_EISA=y +CONFIG_EISA_VIRTUAL_ROOT=y +CONFIG_EISA_VLB_PRIMING=y +CONFIG_EL3=m +CONFIG_ELECTRA_CF=m +CONFIG_ELF_CORE=y +# CONFIG_EMBEDDED is not set +CONFIG_EM_TIMER_STI=y +# CONFIG_ENABLE_MUST_CHECK is not set +# CONFIG_ENABLE_WARN_DEPRECATED is not set +CONFIG_ENC28J60=m +# CONFIG_ENC28J60_WRITEVERIFY is not set +CONFIG_ENCLOSURE_SERVICES=m +CONFIG_ENCRYPTED_KEYS=y +CONFIG_ENIC=m +CONFIG_EPAPR_PARAVIRT=y +CONFIG_EPIC100=m +CONFIG_EPOLL=y +CONFIG_EQUALIZER=m +CONFIG_ESI_DONGLE=m +CONFIG_ET131X=m +CONFIG_ETHERNET=y +CONFIG_ETHOC=m +CONFIG_EUROTECH_WDT=m +CONFIG_EVENTFD=y +CONFIG_EVENT_TRACING=y +CONFIG_EVM=y +CONFIG_EVM_HMAC_VERSION=2 +# CONFIG_EXOFS_DEBUG is not set +CONFIG_EXOFS_FS=m +CONFIG_EXPERT=y +CONFIG_EXPORTFS=y +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +# CONFIG_EXT4_DEBUG is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_EXT4_USE_FOR_EXT23=y +CONFIG_EXTCON=y +CONFIG_EXTCON_ADC_JACK=m +CONFIG_EXTCON_ARIZONA=m +CONFIG_EXTCON_GPIO=m +CONFIG_EXTCON_MAX77693=m +CONFIG_EXTCON_MAX8997=m +CONFIG_EXTCON_PALMAS=m +CONFIG_EXTRA_FIRMWARE="" +CONFIG_EXTRA_TARGETS="" +CONFIG_EXYNOS_ADC=y +# CONFIG_F2FS_CHECK_FS is not set +CONFIG_F2FS_FS=m +CONFIG_F2FS_FS_POSIX_ACL=y +CONFIG_F2FS_FS_SECURITY=y +CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_STAT_FS=y +CONFIG_F71808E_WDT=m +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y +CONFIG_FARSYNC=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_FS=y +# CONFIG_FAULT_INJECTION is not set +# CONFIG_FA_DUMP is not set +CONFIG_FB=y +CONFIG_FB_3DFX=m +CONFIG_FB_3DFX_ACCEL=y +CONFIG_FB_3DFX_I2C=y +CONFIG_FB_ARC=m +CONFIG_FB_ARK=m +CONFIG_FB_ARMCLCD=y +CONFIG_FB_ASILIANT=y +CONFIG_FB_ATY=m +CONFIG_FB_ATY128_BACKLIGHT=y +CONFIG_FB_ATY_BACKLIGHT=y +CONFIG_FB_ATY_CT=y +# CONFIG_FB_ATY_GENERIC_LCD is not set +CONFIG_FB_ATY_GX=y +CONFIG_FB_AUO_K1900=m +CONFIG_FB_AUO_K1901=m +CONFIG_FB_AUO_K190X=m +CONFIG_FB_BROADSHEET=m +CONFIG_FB_CARILLO_RANCH=m +CONFIG_FB_CARMINE=m +CONFIG_FB_CARMINE_DRAM_EVAL=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_CIRRUS=m +CONFIG_FB_CONTROL=y +CONFIG_FB_CT65550=y +CONFIG_FB_CYBER2000=m +CONFIG_FB_CYBER2000_DDC=y +# CONFIG_FB_DA8XX is not set +CONFIG_FB_DEFERRED_IO=y +CONFIG_FB_EFI=y +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_FSL_DIU=m +CONFIG_FB_GEODE=y +CONFIG_FB_GEODE_GX=m +CONFIG_FB_GEODE_GX1=m +CONFIG_FB_GEODE_LX=m +CONFIG_FB_GOLDFISH=m +CONFIG_FB_HECUBA=m +CONFIG_FB_HGA=m +CONFIG_FB_HYPERV=m +CONFIG_FB_I740=m +CONFIG_FB_I810=m +# CONFIG_FB_I810_GTF is not set +CONFIG_FB_IMSTT=y +CONFIG_FB_INTEL=m +# CONFIG_FB_INTEL_DEBUG is not set +# CONFIG_FB_INTEL_I2C is not set +CONFIG_FB_KYRO=m +CONFIG_FB_LE80578=m +CONFIG_FB_MATROX=m +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MB862XX=m +CONFIG_FB_MB862XX_I2C=y +# CONFIG_FB_MB862XX_LIME is not set +CONFIG_FB_MB862XX_PCI_GDC=y +CONFIG_FB_METRONOME=m +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_MX3=y +CONFIG_FB_N411=m +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_NVIDIA=m +CONFIG_FB_NVIDIA_BACKLIGHT=y +# CONFIG_FB_NVIDIA_DEBUG is not set +CONFIG_FB_NVIDIA_I2C=y +CONFIG_FB_OF=y +# CONFIG_FB_OMAP2 is not set +CONFIG_FB_PLATINUM=y +CONFIG_FB_PM2=m +CONFIG_FB_PM2_FIFO_DISCONNECT=y +CONFIG_FB_PM3=m +CONFIG_FB_PS3=y +CONFIG_FB_PS3_DEFAULT_SIZE_M=9 +CONFIG_FB_RADEON_BACKLIGHT=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RIVA=m +CONFIG_FB_RIVA_BACKLIGHT=y +# CONFIG_FB_RIVA_DEBUG is not set +CONFIG_FB_RIVA_I2C=y +CONFIG_FB_S1D13XXX=m +CONFIG_FB_S3=m +CONFIG_FB_S3_DDC=y +CONFIG_FB_SAVAGE=m +# CONFIG_FB_SAVAGE_ACCEL is not set +CONFIG_FB_SAVAGE_I2C=y +CONFIG_FB_SIMPLE=y +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_SM501=m +CONFIG_FB_SM7XX=m +CONFIG_FB_SMSCUFX=m +CONFIG_FB_SSD1307=m +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_TMIO=m +CONFIG_FB_TMIO_ACCELL=y +CONFIG_FB_TRIDENT=m +CONFIG_FB_UVESA=m +CONFIG_FB_VALKYRIE=y +CONFIG_FB_VESA=y +CONFIG_FB_VGA16=m +CONFIG_FB_VIA=m +# CONFIG_FB_VIA_DIRECT_PROCFS is not set +CONFIG_FB_VIA_X_COMPATIBILITY=y +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_VT8623=m +CONFIG_FB_XGI=m +CONFIG_FCOE=m +CONFIG_FCOE_FNIC=m +CONFIG_FDDI=y +CONFIG_FEALNX=m +CONFIG_FEC=y +CONFIG_FHANDLE=y +CONFIG_FIB_RULES=y +CONFIG_FILE_LOCKING=y +CONFIG_FIREWIRE=m +CONFIG_FIREWIRE_NET=m +CONFIG_FIREWIRE_NOSY=m +CONFIG_FIREWIRE_OHCI=m +# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set +CONFIG_FIREWIRE_SBP2=m +CONFIG_FIREWIRE_SERIAL=m +CONFIG_FIRMWARE_EDID=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_FIXED_PHY=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_FLATMEM=y +CONFIG_FLATMEM_MANUAL=y +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_FMAN_MIB_CNT_OVF_IRQ_EN is not set +# CONFIG_FMAN_RESOURCE_ALLOCATION_ALGORITHM is not set +CONFIG_FMC=m +CONFIG_FMC_CHARDEV=m +CONFIG_FMC_FAKEDEV=m +CONFIG_FMC_TRIVIAL=m +CONFIG_FMC_WRITE_EEPROM=m +# CONFIG_FONT_10x18 is not set +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +CONFIG_FONT_8x16=y +CONFIG_FONT_8x8=y +CONFIG_FONT_ACORN_8x8=y +# CONFIG_FONT_MINI_4x6 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# CONFIG_FONT_SUN12x22 is not set +# CONFIG_FONT_SUN8x16 is not set +CONFIG_FONT_SUPPORT=y +CONFIG_FORCEDETH=m +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +CONFIG_FRAME_POINTER=y +CONFIG_FREEZER=y +CONFIG_FRONTSWAP=y +CONFIG_FSCACHE=m +# CONFIG_FSCACHE_DEBUG is not set +# CONFIG_FSCACHE_HISTOGRAM is not set +# CONFIG_FSCACHE_OBJECT_LIST is not set +CONFIG_FSCACHE_STATS=y +CONFIG_FSL_BMAN=y +CONFIG_FSL_BMAN_CONFIG=y +CONFIG_FSL_BMAN_DEBUGFS=m +CONFIG_FSL_BMAN_PORTAL=y +# CONFIG_FSL_BMAN_TEST is not set +CONFIG_FSL_BOOKE=y +CONFIG_FSL_DMA=m +CONFIG_FSL_DPA=y +CONFIG_FSL_DPA_1588=m +CONFIG_FSL_DPA_CAN_WAIT=y +CONFIG_FSL_DPA_CAN_WAIT_SYNC=y +# CONFIG_FSL_DPA_CHECKING is not set +CONFIG_FSL_DPA_HAVE_IRQ=y +CONFIG_FSL_DPA_PIRQ_FAST=y +CONFIG_FSL_DPA_PIRQ_SLOW=y +CONFIG_FSL_DPA_PORTAL_SHARE=y +CONFIG_FSL_DPA_UIO=m +CONFIG_FSL_EMB_PERFMON=y +CONFIG_FSL_EMB_PERF_EVENT=y +CONFIG_FSL_EMB_PERF_EVENT_E500=y +# CONFIG_FSL_FMAN_TEST is not set +CONFIG_FSL_HV_MANAGER=m +CONFIG_FSL_IFC=y +CONFIG_FSL_LBC=y +# CONFIG_FSL_PAMU is not set +CONFIG_FSL_PCI=y +CONFIG_FSL_PME2=y +CONFIG_FSL_PME2_CTRL=y +CONFIG_FSL_PME2_DB=y +CONFIG_FSL_PME2_DB_QOSOUT_PRIORITY=2 +CONFIG_FSL_PME2_PDSRSIZE=131072 +CONFIG_FSL_PME2_PORTAL=y +CONFIG_FSL_PME2_SCAN=y +# CONFIG_FSL_PME2_SCAN_DEBUG is not set +CONFIG_FSL_PME2_SRESIZE=327680 +# CONFIG_FSL_PME2_SRE_AIM is not set +CONFIG_FSL_PME2_SRE_CNR=128 +CONFIG_FSL_PME2_SRE_CTX_SIZE_PER_SESSION=17 +# CONFIG_FSL_PME2_SRE_ESR is not set +CONFIG_FSL_PME2_SRE_MAX_BLOCK_NUMBER=32767 +CONFIG_FSL_PME2_SRE_MAX_INSTRUCTION_LIMIT=65535 +CONFIG_FSL_PME2_STAT_ACCUMULATOR_UPDATE_INTERVAL=3400 +# CONFIG_FSL_PME2_TEST_HIGH is not set +# CONFIG_FSL_PME2_TEST_SCAN is not set +CONFIG_FSL_PQ_MDIO=m +CONFIG_FSL_QMAN=y +CONFIG_FSL_QMAN_BUG_AND_FEATURE_REV1=y +CONFIG_FSL_QMAN_CI_SCHED_CFG_BMAN_W=2 +CONFIG_FSL_QMAN_CI_SCHED_CFG_RW_W=2 +CONFIG_FSL_QMAN_CI_SCHED_CFG_SRCCIV=4 +CONFIG_FSL_QMAN_CI_SCHED_CFG_SRQ_W=3 +CONFIG_FSL_QMAN_CONFIG=y +CONFIG_FSL_QMAN_DEBUGFS=m +CONFIG_FSL_QMAN_DQRR_PREFETCHING=y +CONFIG_FSL_QMAN_FQD_SZ=9 +CONFIG_FSL_QMAN_NULL_FQ_DEMUX=y +CONFIG_FSL_QMAN_PIRQ_DQRR_ITHRESH=12 +CONFIG_FSL_QMAN_PIRQ_IPERIOD=100 +CONFIG_FSL_QMAN_PIRQ_MR_ITHRESH=4 +CONFIG_FSL_QMAN_POLL_LIMIT=32 +CONFIG_FSL_QMAN_PORTAL=y +# CONFIG_FSL_QMAN_PORTAL_DISABLEAUTO_DCA is not set +# CONFIG_FSL_QMAN_TEST is not set +CONFIG_FSL_SOC=y +CONFIG_FSL_SOC_BOOKE=y +CONFIG_FSL_USB2_OTG=m +CONFIG_FSL_XGMAC_MDIO=y +CONFIG_FSNOTIFY=y +CONFIG_FS_ENET=m +CONFIG_FS_ENET_HAS_FCC=y +CONFIG_FS_ENET_HAS_SCC=y +CONFIG_FS_ENET_MDIO_FCC=m +CONFIG_FS_MBCACHE=y +CONFIG_FS_POSIX_ACL=y +CONFIG_FT1000=m +CONFIG_FT1000_PCMCIA=m +CONFIG_FT1000_USB=m +CONFIG_FTGMAC100=m +CONFIG_FTL=m +CONFIG_FTMAC100=m +CONFIG_FTRACE=y +CONFIG_FTRACE_MCOUNT_RECORD=y +# CONFIG_FTRACE_STARTUP_TEST is not set +CONFIG_FTRACE_SYSCALLS=y +# CONFIG_FTR_FIXUP_SELFTEST is not set +CONFIG_FUJITSU_LAPTOP=m +# CONFIG_FUJITSU_LAPTOP_DEBUG is not set +CONFIG_FUJITSU_TABLET=m +CONFIG_FUNCTION_GRAPH_TRACER=y +CONFIG_FUNCTION_PROFILER=y +CONFIG_FUSE_FS=y +CONFIG_FUSION=y +CONFIG_FUSION_CTL=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_LAN=m +CONFIG_FUSION_LOGGING=y +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_SAS=m +CONFIG_FUSION_SPI=m +CONFIG_FUTEX=y +CONFIG_FW_LOADER=y +CONFIG_FW_LOADER_USER_HELPER=y +CONFIG_GACT_PROB=y +CONFIG_GADGET_UAC1=y +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GARP=m +CONFIG_GART_IOMMU=y +# CONFIG_GCOV_KERNEL is not set +# CONFIG_GEF_WDT is not set +CONFIG_GELIC_NET=m +CONFIG_GELIC_WIRELESS=y +CONFIG_GENERIC_ACL=y +CONFIG_GENERIC_ADC_BATTERY=m +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_GENERIC_ATOMIC64=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_GENERIC_CPU=y +CONFIG_GENERIC_CPUFREQ_CPU0=y +# CONFIG_GENERIC_CPU_DEVICES is not set +CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_GENERIC_IO=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_NET_UTILS=y +CONFIG_GENERIC_NVRAM=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_PINCONF=y +CONFIG_GENERIC_SCHED_CLOCK=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GENERIC_TIME_VSYSCALL_OLD=y +CONFIG_GENERIC_TRACER=y +CONFIG_GEOS=y +CONFIG_GFS2_FS=m +CONFIG_GFS2_FS_LOCKING_DLM=y +CONFIG_GIANFAR=m +CONFIG_GIGASET_BASE=m +# CONFIG_GIGASET_CAPI is not set +# CONFIG_GIGASET_DEBUG is not set +# CONFIG_GIGASET_DUMMYLL is not set +CONFIG_GIGASET_I4L=y +CONFIG_GIGASET_M101=m +CONFIG_GIGASET_M105=m +CONFIG_GIRBIL_DONGLE=m +# CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_GP2AP020A00F=m +CONFIG_GPIOLIB=y +CONFIG_GPIO_74X164=m +CONFIG_GPIO_ACPI=y +CONFIG_GPIO_ADNP=m +CONFIG_GPIO_ADP5520=m +CONFIG_GPIO_ADP5588=m +CONFIG_GPIO_AMD8111=m +CONFIG_GPIO_ARIZONA=m +CONFIG_GPIO_BCM_KONA=y +CONFIG_GPIO_CS5535=m +CONFIG_GPIO_DA9052=m +CONFIG_GPIO_DA9055=m +CONFIG_GPIO_DEVRES=y +CONFIG_GPIO_DWAPB=m +# CONFIG_GPIO_EM is not set +CONFIG_GPIO_F7188X=m +CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_GPIO_GE_FPGA=y +CONFIG_GPIO_GRGPIO=m +CONFIG_GPIO_ICH=m +CONFIG_GPIO_INTEL_MID=y +CONFIG_GPIO_INTEL_PMIC=y +CONFIG_GPIO_IT8761E=m +CONFIG_GPIO_JANZ_TTL=m +CONFIG_GPIO_KEMPLD=m +CONFIG_GPIO_LYNXPOINT=y +CONFIG_GPIO_MAX7300=m +CONFIG_GPIO_MAX7301=m +CONFIG_GPIO_MAX730X=m +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_MC33880=m +CONFIG_GPIO_MCP23S08=m +CONFIG_GPIO_ML_IOH=m +CONFIG_GPIO_MPC8XXX=y +CONFIG_GPIO_MSIC=y +CONFIG_GPIO_MXC=y +CONFIG_GPIO_PALMAS=y +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_PCH=m +CONFIG_GPIO_PL061=y +CONFIG_GPIO_RC5T583=y +CONFIG_GPIO_RCAR=m +CONFIG_GPIO_RDC321X=m +CONFIG_GPIO_SCH=m +CONFIG_GPIO_STMPE=y +CONFIG_GPIO_SX150X=y +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_TC3589X=y +CONFIG_GPIO_TIMBERDALE=y +CONFIG_GPIO_TPS6586X=y +CONFIG_GPIO_TPS65910=y +CONFIG_GPIO_TPS65912=m +CONFIG_GPIO_TS5500=m +CONFIG_GPIO_UCB1400=m +CONFIG_GPIO_VIPERBOARD=m +CONFIG_GPIO_VX855=m +CONFIG_GPIO_WM831X=m +CONFIG_GPIO_WM8350=m +CONFIG_GPIO_WM8994=m +CONFIG_GPIO_XILINX=y +CONFIG_GREENASIA_FF=y +CONFIG_HAMACHI=m +CONFIG_HAMRADIO=y +CONFIG_HANGCHECK_TIMER=m +CONFIG_HAPPYMEAL=m +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_HARDLOCKUP_DETECTOR=y +CONFIG_HAS_DMA=y +CONFIG_HAS_FSL_PME=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_KMEMCHECK=y +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_HAVE_ARCH_SOFT_DIRTY=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_ARM_ARCH_TIMER=y +CONFIG_HAVE_ARM_SCU=y +CONFIG_HAVE_ARM_TWD=y +CONFIG_HAVE_ATOMIC_IOMAP=y +CONFIG_HAVE_BPF_JIT=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_HAVE_DEBUG_BUGVERBOSE=y +CONFIG_HAVE_DEBUG_KMEMLEAK=y +CONFIG_HAVE_DEBUG_STACKOVERFLOW=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_FENTRY=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_IDE=y +CONFIG_HAVE_IMX_ANATOP=y +CONFIG_HAVE_IMX_GPC=y +CONFIG_HAVE_IMX_MMDC=y +CONFIG_HAVE_IMX_SRC=y +CONFIG_HAVE_INTEL_TXT=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_KERNEL_BZIP2=y +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZ4=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KPROBES_ON_FTRACE=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_KVM=y +CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y +CONFIG_HAVE_KVM_EVENTFD=y +CONFIG_HAVE_KVM_IRQCHIP=y +CONFIG_HAVE_KVM_IRQ_ROUTING=y +CONFIG_HAVE_KVM_MSI=y +CONFIG_HAVE_LATENCYTOP_SUPPORT=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MEMBLOCK_NODE_MAP=y +CONFIG_HAVE_MEMORYLESS_NODES=y +CONFIG_HAVE_MEMORY_PRESENT=y +CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y +CONFIG_HAVE_MMIOTRACE_SUPPORT=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_HAVE_NET_DSA=y +CONFIG_HAVE_OPROFILE=y +CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_PATA_PLATFORM=y +CONFIG_HAVE_PCSPKR_PLATFORM=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_HAVE_RCU_TABLE_FREE=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_SMP=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_UID16=y +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y +CONFIG_HAVE_USER_RETURN_NOTIFIER=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +# CONFIG_HCALL_STATS is not set +CONFIG_HDLC=m +CONFIG_HDLC_CISCO=m +CONFIG_HDLC_FR=m +CONFIG_HDLC_PPP=m +CONFIG_HDLC_RAW=m +CONFIG_HDLC_RAW_ETH=m +CONFIG_HDLC_X25=m +CONFIG_HDMI=y +CONFIG_HDQ_MASTER_OMAP=m +# CONFIG_HEADERS_CHECK is not set +CONFIG_HERMES=m +CONFIG_HERMES_CACHE_FW_ON_INIT=y +# CONFIG_HERMES_PRISM is not set +CONFIG_HFSPLUS_FS=m +CONFIG_HFSPLUS_FS_POSIX_ACL=y +CONFIG_HFS_FS=m +CONFIG_HIBERNATE_CALLBACKS=y +CONFIG_HID=m +CONFIG_HIDRAW=y +CONFIG_HID_A4TECH=m +CONFIG_HID_ACRUX=m +CONFIG_HID_ACRUX_FF=y +CONFIG_HID_APPLE=m +CONFIG_HID_APPLEIR=m +CONFIG_HID_AUREAL=m +CONFIG_HID_BATTERY_STRENGTH=y +CONFIG_HID_BELKIN=m +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m +CONFIG_HID_CYPRESS=m +CONFIG_HID_DRAGONRISE=m +CONFIG_HID_ELECOM=m +CONFIG_HID_ELO=m +CONFIG_HID_EMS_FF=m +CONFIG_HID_EZKEY=m +CONFIG_HID_GENERIC=m +CONFIG_HID_GREENASIA=m +CONFIG_HID_GYRATION=m +CONFIG_HID_HOLTEK=m +CONFIG_HID_HUION=m +CONFIG_HID_HYPERV_MOUSE=m +CONFIG_HID_ICADE=m +CONFIG_HID_KENSINGTON=m +CONFIG_HID_KEYTOUCH=m +CONFIG_HID_KYE=m +CONFIG_HID_LCPOWER=m +CONFIG_HID_LENOVO_TPKBD=m +CONFIG_HID_LOGITECH=m +CONFIG_HID_LOGITECH_DJ=m +CONFIG_HID_MAGICMOUSE=m +CONFIG_HID_MICROSOFT=m +CONFIG_HID_MONTEREY=m +CONFIG_HID_MULTITOUCH=m +CONFIG_HID_NTRIG=m +CONFIG_HID_ORTEK=m +CONFIG_HID_PANTHERLORD=m +CONFIG_HID_PETALYNX=m +CONFIG_HID_PICOLCD=m +CONFIG_HID_PICOLCD_BACKLIGHT=y +CONFIG_HID_PICOLCD_CIR=y +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PID=y +CONFIG_HID_PRIMAX=m +CONFIG_HID_PRODIKEYS=m +CONFIG_HID_RMI=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_SAITEK=m +CONFIG_HID_SAMSUNG=m +CONFIG_HID_SENSOR_ACCEL_3D=m +CONFIG_HID_SENSOR_ALS=m +CONFIG_HID_SENSOR_GYRO_3D=m +CONFIG_HID_SENSOR_HUB=m +CONFIG_HID_SENSOR_IIO_COMMON=m +CONFIG_HID_SENSOR_IIO_TRIGGER=m +CONFIG_HID_SENSOR_MAGNETOMETER_3D=m +CONFIG_HID_SMARTJOYPLUS=m +CONFIG_HID_SONY=m +CONFIG_HID_SPEEDLINK=m +CONFIG_HID_STEELSERIES=m +CONFIG_HID_SUNPLUS=m +CONFIG_HID_THINGM=m +CONFIG_HID_THRUSTMASTER=m +CONFIG_HID_TIVO=m +CONFIG_HID_TOPSEED=m +CONFIG_HID_TWINHAN=m +CONFIG_HID_UCLOGIC=m +CONFIG_HID_WACOM=m +CONFIG_HID_WALTOP=m +CONFIG_HID_WIIMOTE=m +CONFIG_HID_XINMO=m +CONFIG_HID_ZEROPLUS=m +CONFIG_HID_ZYDACRON=m +CONFIG_HIGHMEM=y +# CONFIG_HIGHMEM4G is not set +CONFIG_HIGHMEM64G=y +CONFIG_HIGHPTE=y +CONFIG_HIGH_RES_TIMERS=y +# CONFIG_HIPPI is not set +CONFIG_HISAX_16_0=y +CONFIG_HISAX_16_3=y +CONFIG_HISAX_1TR6=y +CONFIG_HISAX_ASUSCOM=y +CONFIG_HISAX_AVM_A1=y +CONFIG_HISAX_AVM_A1_CS=m +CONFIG_HISAX_AVM_A1_PCMCIA=y +CONFIG_HISAX_BKM_A4T=y +# CONFIG_HISAX_DEBUG is not set +CONFIG_HISAX_DIEHLDIVA=y +CONFIG_HISAX_ELSA=y +CONFIG_HISAX_ELSA_CS=m +CONFIG_HISAX_ENTERNOW_PCI=y +CONFIG_HISAX_EURO=y +CONFIG_HISAX_FRITZPCI=y +CONFIG_HISAX_FRITZ_PCIPNP=m +CONFIG_HISAX_GAZEL=y +CONFIG_HISAX_HFC4S8S=m +CONFIG_HISAX_HFCS=y +CONFIG_HISAX_HFCUSB=m +CONFIG_HISAX_HFC_PCI=y +CONFIG_HISAX_HFC_SX=y +CONFIG_HISAX_HSTSAPHIR=y +CONFIG_HISAX_ISURF=y +CONFIG_HISAX_IX1MICROR2=y +CONFIG_HISAX_MAX_CARDS=8 +CONFIG_HISAX_MIC=y +CONFIG_HISAX_NETJET=y +CONFIG_HISAX_NETJET_U=y +CONFIG_HISAX_NI1=y +CONFIG_HISAX_NICCY=y +# CONFIG_HISAX_NO_KEYPAD is not set +# CONFIG_HISAX_NO_LLC is not set +# CONFIG_HISAX_NO_SENDCOMPLETE is not set +CONFIG_HISAX_S0BOX=y +CONFIG_HISAX_SCT_QUADRO=y +CONFIG_HISAX_SEDLBAUER=y +CONFIG_HISAX_SEDLBAUER_CS=m +CONFIG_HISAX_SPORTSTER=y +CONFIG_HISAX_ST5481=m +CONFIG_HISAX_TELEINT=y +CONFIG_HISAX_TELESPCI=y +CONFIG_HISAX_TELES_CS=m +CONFIG_HISAX_W6692=y +CONFIG_HMC6352=m +CONFIG_HOLTEK_FF=y +CONFIG_HOSTAP=m +CONFIG_HOSTAP_CS=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTESS_SV11=m +CONFIG_HOTPLUG_CPU=y +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_ACPI=y +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +CONFIG_HOTPLUG_PCI_COMPAQ=m +CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y +CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m +CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m +CONFIG_HOTPLUG_PCI_IBM=m +CONFIG_HOTPLUG_PCI_PCIE=y +CONFIG_HOTPLUG_PCI_RPA=m +CONFIG_HOTPLUG_PCI_RPA_DLPAR=m +CONFIG_HP100=m +CONFIG_HPET=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_HPET_MMAP=y +CONFIG_HPET_MMAP_DEFAULT=y +CONFIG_HPET_TIMER=y +CONFIG_HPFS_FS=m +CONFIG_HPWDT_NMI_DECODING=y +CONFIG_HP_ACCEL=m +CONFIG_HP_ILO=m +CONFIG_HP_WATCHDOG=m +CONFIG_HP_WIRELESS=m +CONFIG_HP_WMI=m +CONFIG_HSI=m +CONFIG_HSI_BOARDINFO=y +CONFIG_HSI_CHAR=m +CONFIG_HSR=m +CONFIG_HTC_EGPIO=y +CONFIG_HTC_I2CPLD=y +CONFIG_HTC_PASIC3=m +CONFIG_HT_IRQ=y +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y +CONFIG_HVC_CONSOLE=y +# CONFIG_HVC_DCC is not set +CONFIG_HVC_DRIVER=y +CONFIG_HVC_IRQ=y +CONFIG_HVC_OPAL=y +CONFIG_HVC_RTAS=y +CONFIG_HVC_XEN=y +CONFIG_HVC_XEN_FRONTEND=y +CONFIG_HWMON=y +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_HWMON_VID=m +CONFIG_HWPOISON_INJECT=m +# CONFIG_HWSPINLOCK_OMAP is not set +CONFIG_HW_CONSOLE=y +CONFIG_HW_PERF_EVENTS=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_AMD=m +# CONFIG_HW_RANDOM_EXYNOS is not set +CONFIG_HW_RANDOM_GEODE=m +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_OMAP=m +CONFIG_HW_RANDOM_OMAP3_ROM=m +CONFIG_HW_RANDOM_PASEMI=y +CONFIG_HW_RANDOM_PSERIES=m +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_TPM=m +CONFIG_HW_RANDOM_VIA=m +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_HW_RANDOM_XGENE=m +CONFIG_HYPERV=m +CONFIG_HYPERVISOR_GUEST=y +CONFIG_HYPERV_BALLOON=m +CONFIG_HYPERV_KEYBOARD=m +CONFIG_HYPERV_NET=m +CONFIG_HYPERV_STORAGE=m +CONFIG_HYPERV_UTILS=m +CONFIG_HYSDN=m +CONFIG_HYSDN_CAPI=y +# CONFIG_HZ_200 is not set +# CONFIG_HZ_300 is not set +# CONFIG_HZ_500 is not set +CONFIG_HZ_FIXED=0 +# CONFIG_HZ_PERIODIC is not set +CONFIG_I2C=y +CONFIG_I2C_ALGOPCA=m +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_ARB_GPIO_CHALLENGE=m +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CBUS_GPIO=m +CONFIG_I2C_CHARDEV=m +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CPM=m +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CORE is not set +CONFIG_I2C_DESIGNWARE_CORE=m +CONFIG_I2C_DESIGNWARE_PCI=m +CONFIG_I2C_DESIGNWARE_PLATFORM=m +CONFIG_I2C_DIOLAN_U2C=m +CONFIG_I2C_EG20T=m +CONFIG_I2C_GPIO=m +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_HID=m +CONFIG_I2C_HYDRA=m +CONFIG_I2C_I801=m +CONFIG_I2C_IMX=y +CONFIG_I2C_ISCH=m +CONFIG_I2C_ISMT=m +CONFIG_I2C_KEMPLD=m +CONFIG_I2C_MPC=m +CONFIG_I2C_MUX=m +CONFIG_I2C_MUX_GPIO=m +CONFIG_I2C_MUX_PCA9541=m +CONFIG_I2C_MUX_PCA954x=m +CONFIG_I2C_MUX_PINCTRL=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_NFORCE2_S4985=m +CONFIG_I2C_NOMADIK=m +CONFIG_I2C_OCORES=m +CONFIG_I2C_OMAP=y +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_PASEMI=m +CONFIG_I2C_PCA_ISA=m +CONFIG_I2C_PCA_PLATFORM=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_POWERMAC=y +# CONFIG_I2C_PXA_PCI is not set +CONFIG_I2C_RCAR=m +CONFIG_I2C_SCMI=m +CONFIG_I2C_SH_MOBILE=m +CONFIG_I2C_SI470X=m +CONFIG_I2C_SI4713=m +CONFIG_I2C_SIMTEC=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_SMBUS=m +CONFIG_I2C_STUB=m +CONFIG_I2C_TAOS_EVM=m +CONFIG_I2C_TEGRA=m +CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VERSATILE=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m +CONFIG_I2C_VIPERBOARD=m +CONFIG_I2C_XILINX=m +CONFIG_I2O=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_BUS=m +CONFIG_I2O_CONFIG=m +# CONFIG_I2O_CONFIG_OLD_IOCTL is not set +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_PROC=m +CONFIG_I2O_SCSI=m +CONFIG_I40E=m +CONFIG_I40EVF=m +CONFIG_I40E_DCB=y +CONFIG_I40E_VXLAN=y +CONFIG_I6300ESB_WDT=m +CONFIG_I7300_IDLE=m +CONFIG_I7300_IDLE_IOAT_CHANNEL=y +CONFIG_I82092=m +CONFIG_I82365=m +CONFIG_I8253_LOCK=y +CONFIG_I8K=m +# CONFIG_IA32_AOUT is not set +CONFIG_IA32_EMULATION=y +CONFIG_IB700_WDT=m +CONFIG_IBMASR=m +CONFIG_IBMVIO=y +CONFIG_IBM_ASM=m +CONFIG_IBM_BSR=m +# CONFIG_IBM_EMAC_EMAC4 is not set +# CONFIG_IBM_EMAC_MAL_CLR_ICINTSTAT is not set +# CONFIG_IBM_EMAC_MAL_COMMON_ERR is not set +# CONFIG_IBM_EMAC_NO_FLOW_CTRL is not set +# CONFIG_IBM_EMAC_RGMII is not set +# CONFIG_IBM_EMAC_TAH is not set +# CONFIG_IBM_EMAC_ZMII is not set +CONFIG_IBM_RTL=m +CONFIG_ICPLUS_PHY=y +CONFIG_ICS932S401=m +CONFIG_ICST=y +CONFIG_IDEAPAD_LAPTOP=m +CONFIG_IDEPCI_PCIBUS_ORDER=y +CONFIG_IDE_ATAPI=y +CONFIG_IDE_GD=y +CONFIG_IDE_GD_ATA=y +# CONFIG_IDE_GD_ATAPI is not set +CONFIG_IDE_PHISON=m +CONFIG_IDE_PROC_FS=y +# CONFIG_IDE_TASK_IOCTL is not set +CONFIG_IDE_TIMINGS=y +CONFIG_IDE_XFER_MODE=y +CONFIG_IE6XX_WDT=m +CONFIG_IEEE802154=m +CONFIG_IEEE802154_6LOWPAN=m +CONFIG_IEEE802154_AT86RF230=m +CONFIG_IEEE802154_DRIVERS=m +# CONFIG_IEEE802154_FAKEHARD is not set +CONFIG_IEEE802154_FAKELB=m +CONFIG_IEEE802154_MRF24J40=m +CONFIG_IFB=m +CONFIG_IGB=m +CONFIG_IGBVF=m +CONFIG_IGB_DCA=y +CONFIG_IGB_HWMON=y +CONFIG_IIO=m +CONFIG_IIO_ADIS_LIB=m +CONFIG_IIO_ADIS_LIB_BUFFER=y +CONFIG_IIO_BUFFER=y +CONFIG_IIO_BUFFER_CB=y +CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 +CONFIG_IIO_INTERRUPT_TRIGGER=m +CONFIG_IIO_KFIFO_BUF=m +CONFIG_IIO_PERIODIC_RTC_TRIGGER=m +CONFIG_IIO_SIMPLE_DUMMY=m +# CONFIG_IIO_SIMPLE_DUMMY_BUFFER is not set +# CONFIG_IIO_SIMPLE_DUMMY_EVENTS is not set +CONFIG_IIO_ST_ACCEL_3AXIS=m +CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m +CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m +CONFIG_IIO_ST_GYRO_3AXIS=m +CONFIG_IIO_ST_GYRO_I2C_3AXIS=m +CONFIG_IIO_ST_GYRO_SPI_3AXIS=m +CONFIG_IIO_ST_MAGN_3AXIS=m +CONFIG_IIO_ST_MAGN_I2C_3AXIS=m +CONFIG_IIO_ST_MAGN_SPI_3AXIS=m +CONFIG_IIO_ST_PRESS=m +CONFIG_IIO_ST_PRESS_I2C=m +CONFIG_IIO_ST_PRESS_SPI=m +CONFIG_IIO_ST_SENSORS_CORE=m +CONFIG_IIO_ST_SENSORS_I2C=m +CONFIG_IIO_ST_SENSORS_SPI=m +CONFIG_IIO_SYSFS_TRIGGER=m +CONFIG_IIO_TRIGGER=y +CONFIG_IIO_TRIGGERED_BUFFER=m +CONFIG_IKCONFIG_PROC=y +CONFIG_IMA_APPRAISE=y +CONFIG_IMA_DEFAULT_HASH="sha1" +CONFIG_IMA_DEFAULT_HASH_SHA1=y +# CONFIG_IMA_DEFAULT_HASH_SHA256 is not set +# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set +# CONFIG_IMA_DEFAULT_HASH_WP512 is not set +CONFIG_IMA_DEFAULT_TEMPLATE="ima-ng" +CONFIG_IMA_LSM_RULES=y +CONFIG_IMA_MEASURE_PCR_IDX=10 +CONFIG_IMA_NG_TEMPLATE=y +# CONFIG_IMA_SIG_TEMPLATE is not set +# CONFIG_IMA_TEMPLATE is not set +# CONFIG_IMX2_WDT is not set +# CONFIG_IMX_DMA is not set +# CONFIG_IMX_SDMA is not set +CONFIG_IMX_THERMAL=m +CONFIG_IMX_WEIM=y +CONFIG_INET=y +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET_AH=m +CONFIG_INET_DCCP_DIAG=m +CONFIG_INET_DIAG=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_LRO=y +CONFIG_INET_TCP_DIAG=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_UDP_DIAG=m +CONFIG_INET_XFRM_MODE_BEET=m +CONFIG_INET_XFRM_MODE_TRANSPORT=m +CONFIG_INET_XFRM_MODE_TUNNEL=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_ADDR_TRANS=y +# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set +CONFIG_INFINIBAND_CXGB3=m +# CONFIG_INFINIBAND_CXGB3_DEBUG is not set +CONFIG_INFINIBAND_CXGB4=m +CONFIG_INFINIBAND_EHCA=m +CONFIG_INFINIBAND_IPATH=m +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_CM=y +# CONFIG_INFINIBAND_IPOIB_DEBUG is not set +CONFIG_INFINIBAND_ISER=m +CONFIG_INFINIBAND_ISERT=m +CONFIG_INFINIBAND_MTHCA=m +# CONFIG_INFINIBAND_MTHCA_DEBUG is not set +CONFIG_INFINIBAND_NES=m +# CONFIG_INFINIBAND_NES_DEBUG is not set +CONFIG_INFINIBAND_OCRDMA=m +CONFIG_INFINIBAND_QIB=m +CONFIG_INFINIBAND_QIB_DCA=y +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_SRPT=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_MEM=y +CONFIG_INFINIBAND_USNIC=m +CONFIG_INFTL=m +CONFIG_INITRAMFS_SOURCE="" +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_INOTIFY_USER=y +CONFIG_INPUT=y +CONFIG_INPUT_88PM80X_ONKEY=m +CONFIG_INPUT_88PM860X_ONKEY=m +CONFIG_INPUT_AD714X=m +CONFIG_INPUT_AD714X_I2C=m +CONFIG_INPUT_AD714X_SPI=m +CONFIG_INPUT_ADBHID=y +CONFIG_INPUT_ADXL34X=m +CONFIG_INPUT_ADXL34X_I2C=m +CONFIG_INPUT_ADXL34X_SPI=m +CONFIG_INPUT_APANEL=m +CONFIG_INPUT_APMPOWER=m +CONFIG_INPUT_ARIZONA_HAPTICS=m +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_ATLAS_BTNS=m +CONFIG_INPUT_BMA150=m +CONFIG_INPUT_CM109=m +CONFIG_INPUT_CMA3000=m +CONFIG_INPUT_CMA3000_I2C=m +CONFIG_INPUT_DA9052_ONKEY=m +CONFIG_INPUT_DA9055_ONKEY=m +CONFIG_INPUT_EVBUG=m +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_FF_MEMLESS=m +CONFIG_INPUT_GP2A=m +CONFIG_INPUT_GPIO_ROTARY_ENCODER=m +CONFIG_INPUT_GPIO_TILT_POLLED=m +CONFIG_INPUT_IMS_PCU=m +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_KEYSPAN_REMOTE=m +CONFIG_INPUT_KXTJ9=m +# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set +CONFIG_INPUT_MATRIXKMAP=m +CONFIG_INPUT_MAX8925_ONKEY=m +CONFIG_INPUT_MC13783_PWRBUTTON=m +CONFIG_INPUT_MISC=y +CONFIG_INPUT_MMA8450=m +CONFIG_INPUT_MOUSE=y +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_MPU3050=m +CONFIG_INPUT_PCAP=m +CONFIG_INPUT_PCF50633_PMU=m +CONFIG_INPUT_PCF8574=m +CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_POLLDEV=m +CONFIG_INPUT_POWERMATE=m +CONFIG_INPUT_RETU_PWRBUTTON=m +CONFIG_INPUT_SPARSEKMAP=m +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_INPUT_TWL4030_PWRBUTTON=m +CONFIG_INPUT_TWL4030_VIBRA=m +CONFIG_INPUT_TWL6040_VIBRA=m +CONFIG_INPUT_UINPUT=y +CONFIG_INPUT_WISTRON_BTNS=m +CONFIG_INPUT_WM831X_ON=m +CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m +CONFIG_INPUT_YEALINK=m +CONFIG_INSTRUCTION_DECODER=y +CONFIG_INTEGRITY=y +CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y +CONFIG_INTEGRITY_AUDIT=y +CONFIG_INTEGRITY_SIGNATURE=y +CONFIG_INTEL_IDLE=y +CONFIG_INTEL_IOATDMA=m +CONFIG_INTEL_IOMMU=y +# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set +CONFIG_INTEL_IOMMU_FLOPPY_WA=y +CONFIG_INTEL_IPS=m +CONFIG_INTEL_MEI=m +CONFIG_INTEL_MEI_ME=m +CONFIG_INTEL_MENLOW=m +CONFIG_INTEL_MFLD_THERMAL=m +CONFIG_INTEL_MIC_CARD=m +CONFIG_INTEL_MIC_HOST=m +CONFIG_INTEL_MID_DMAC=m +CONFIG_INTEL_MID_POWER_BUTTON=m +CONFIG_INTEL_MID_PTI=m +CONFIG_INTEL_OAKTRAIL=m +CONFIG_INTEL_POWERCLAMP=m +CONFIG_INTEL_RAPL=m +CONFIG_INTEL_RST=m +CONFIG_INTEL_SCU_IPC=y +CONFIG_INTEL_SCU_IPC_UTIL=m +CONFIG_INTEL_SCU_WATCHDOG=y +CONFIG_INTEL_SMARTCONNECT=m +CONFIG_INTEL_TXT=y +CONFIG_INTERVAL_TREE_TEST=m +CONFIG_INV_MPU6050_IIO=m +CONFIG_IOMMU_API=y +# CONFIG_IOMMU_DEBUG is not set +CONFIG_IOMMU_HELPER=y +# CONFIG_IOMMU_STRESS is not set +CONFIG_IOSCHED_CFQ=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_NOOP=y +# CONFIG_IO_DELAY_0X80 is not set +CONFIG_IO_DELAY_0XED=y +# CONFIG_IO_DELAY_NONE is not set +CONFIG_IO_DELAY_TYPE_0X80=0 +CONFIG_IO_DELAY_TYPE_0XED=1 +CONFIG_IO_DELAY_TYPE_NONE=3 +CONFIG_IO_DELAY_TYPE_UDELAY=2 +# CONFIG_IO_DELAY_UDELAY is not set +CONFIG_IO_EVENT_IRQ=y +CONFIG_IP1000=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_RPFILTER=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_TARGET_MASQUERADE=m +CONFIG_IP6_NF_TARGET_NPT=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_TARGET_SYNPROXY=m +CONFIG_IPACK_BUS=m +CONFIG_IPC_NS=y +CONFIG_IPDDP=m +CONFIG_IPDDP_ENCAP=y +# CONFIG_IPIC is not set +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_HANDLER=y +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_POWEROFF=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPPP_FILTER=y +CONFIG_IPV6=y +CONFIG_IPV6_GRE=m +CONFIG_IPV6_MIP6=m +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_NDISC_NODETYPE=y +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_IPV6_PIMSM_V2=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_SIT=m +CONFIG_IPV6_SIT_6RD=y +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_TUNNEL=m +CONFIG_IPV6_VTI=m +CONFIG_IPW2100=m +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2100_MONITOR=y +CONFIG_IPW2200=m +# CONFIG_IPW2200_DEBUG is not set +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPWIRELESS=m +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_DCCP=m +# CONFIG_IP_DCCP_CCID2_DEBUG is not set +# CONFIG_IP_DCCP_CCID3 is not set +# CONFIG_IP_DCCP_DEBUG is not set +CONFIG_IP_FIB_TRIE_STATS=y +CONFIG_IP_MROUTE=y +# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set +CONFIG_IP_MULTICAST=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARP_MANGLE=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_RPFILTER=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_SYNPROXY=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_BOOTP is not set +CONFIG_IP_PNP_DHCP=y +# CONFIG_IP_PNP_RARP is not set +CONFIG_IP_ROUTE_CLASSID=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_SCTP=m +CONFIG_IP_SET=m +CONFIG_IP_SET_BITMAP_IP=m +CONFIG_IP_SET_BITMAP_IPMAC=m +CONFIG_IP_SET_BITMAP_PORT=m +CONFIG_IP_SET_HASH_IP=m +CONFIG_IP_SET_HASH_IPPORT=m +CONFIG_IP_SET_HASH_IPPORTIP=m +CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETIFACE=m +CONFIG_IP_SET_HASH_NETNET=m +CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETPORTNET=m +CONFIG_IP_SET_LIST_SET=m +CONFIG_IP_SET_MAX=256 +CONFIG_IP_VS=m +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_FTP=m +CONFIG_IP_VS_IPV6=y +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_NFCT=y +CONFIG_IP_VS_NQ=m +CONFIG_IP_VS_PE_SIP=m +CONFIG_IP_VS_PROTO_AH=y +CONFIG_IP_VS_PROTO_AH_ESP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_SCTP=y +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_SH_TAB_BITS=8 +CONFIG_IP_VS_TAB_BITS=12 +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_WRR=m +CONFIG_IRCOMM=m +CONFIG_IRDA=m +CONFIG_IRDA_CACHE_LAST_LSAP=y +# CONFIG_IRDA_DEBUG is not set +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_ULTRA=y +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRQCHIP=y +# CONFIG_IRQSOFF_TRACER is not set +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_IRQ_REMAP=y +# CONFIG_IRQ_TIME_ACCOUNTING is not set +CONFIG_IRQ_WORK=y +CONFIG_IRTTY_SIR=m +CONFIG_IR_ENE=m +CONFIG_IR_FINTEK=m +CONFIG_IR_GPIO_CIR=m +CONFIG_IR_IGUANA=m +CONFIG_IR_IMON=m +CONFIG_IR_ITE_CIR=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_LIRC_CODEC=m +CONFIG_IR_MCEUSB=m +CONFIG_IR_MCE_KBD_DECODER=m +CONFIG_IR_NEC_DECODER=m +CONFIG_IR_NUVOTON=m +CONFIG_IR_RC5_DECODER=m +CONFIG_IR_RC5_SZ_DECODER=m +CONFIG_IR_RC6_DECODER=m +CONFIG_IR_REDRAT3=m +CONFIG_IR_SANYO_DECODER=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_STREAMZAP=m +CONFIG_IR_TTUSBIR=m +CONFIG_IR_WINBOND_CIR=m +CONFIG_ISAPNP=y +CONFIG_ISA_DMA_API=y +CONFIG_ISCSI_BOOT_SYSFS=m +CONFIG_ISCSI_IBFT=m +CONFIG_ISCSI_IBFT_FIND=y +CONFIG_ISCSI_TARGET=m +CONFIG_ISCSI_TCP=m +CONFIG_ISDN=y +CONFIG_ISDN_AUDIO=y +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_CAPIDRV=m +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_DIVAS=m +CONFIG_ISDN_DIVAS_BRIPCI=y +CONFIG_ISDN_DIVAS_DIVACAPI=m +CONFIG_ISDN_DIVAS_MAINT=m +CONFIG_ISDN_DIVAS_PRIPCI=y +CONFIG_ISDN_DIVAS_USERIDI=m +CONFIG_ISDN_DIVERSION=m +CONFIG_ISDN_DRV_ACT2000=m +CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +CONFIG_ISDN_DRV_AVMB1_B1ISA=m +CONFIG_ISDN_DRV_AVMB1_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m +CONFIG_ISDN_DRV_AVMB1_C4=m +CONFIG_ISDN_DRV_AVMB1_T1ISA=m +CONFIG_ISDN_DRV_AVMB1_T1PCI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_ISDN_DRV_GIGASET=m +CONFIG_ISDN_DRV_HISAX=m +CONFIG_ISDN_DRV_ICN=m +CONFIG_ISDN_DRV_PCBIT=m +CONFIG_ISDN_DRV_SC=m +CONFIG_ISDN_HDLC=m +CONFIG_ISDN_I4L=m +CONFIG_ISDN_MPP=y +CONFIG_ISDN_PPP=y +CONFIG_ISDN_PPP_BSDCOMP=m +CONFIG_ISDN_PPP_VJ=y +CONFIG_ISDN_TTY_FAX=y +CONFIG_ISDN_X25=y +CONFIG_ISI=m +CONFIG_ISL29003=m +CONFIG_ISL29020=m +CONFIG_ISO9660_FS=m +CONFIG_IT8712F_WDT=m +CONFIG_IT87_WDT=m +CONFIG_ITCO_VENDOR_SUPPORT=y +CONFIG_ITCO_WDT=m +CONFIG_ITG3200=m +CONFIG_IWL3945=m +CONFIG_IWL4965=m +CONFIG_IWLDVM=m +CONFIG_IWLEGACY=m +# CONFIG_IWLEGACY_DEBUG is not set +CONFIG_IWLEGACY_DEBUGFS=y +CONFIG_IWLMVM=m +CONFIG_IWLWIFI=m +# CONFIG_IWLWIFI_DEBUG is not set +CONFIG_IWLWIFI_DEBUGFS=y +CONFIG_IWLWIFI_DEVICE_TRACING=y +CONFIG_IWLWIFI_OPMODE_MODULAR=y +CONFIG_IXGB=m +CONFIG_IXGBE=m +CONFIG_IXGBEVF=m +CONFIG_IXGBE_DCA=y +CONFIG_IXGBE_DCB=y +CONFIG_IXGBE_HWMON=y +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_JFFS2_CMODE_FAVOURLZO=y +# CONFIG_JFFS2_CMODE_NONE is not set +# CONFIG_JFFS2_CMODE_PRIORITY is not set +# CONFIG_JFFS2_CMODE_SIZE is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_JFFS2_SUMMARY is not set +CONFIG_JFFS2_ZLIB=y +# CONFIG_JFS_DEBUG is not set +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +CONFIG_JFS_STATISTICS=y +CONFIG_JME=m +CONFIG_JOLIET=y +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_AS5011=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_232=y +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_WALKERA0701=m +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_JOYSTICK_XPAD=m +CONFIG_JOYSTICK_XPAD_FF=y +CONFIG_JOYSTICK_XPAD_LEDS=y +CONFIG_JOYSTICK_ZHENHUA=m +CONFIG_JUMP_LABEL=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +CONFIG_KARMA_PARTITION=y +CONFIG_KDB_CONTINUE_CATASTROPHIC=0 +CONFIG_KDB_KEYBOARD=y +CONFIG_KEMPLD_WDT=m +# CONFIG_KERNEL_BZIP2 is not set +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_LZ4 is not set +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_LZO is not set +CONFIG_KERNEL_MODE_NEON=y +# CONFIG_KERNEL_XZ is not set +CONFIG_KEXEC=y +CONFIG_KEXEC_JUMP=y +CONFIG_KEYBOARD_ADP5520=m +CONFIG_KEYBOARD_ADP5588=m +CONFIG_KEYBOARD_ADP5589=m +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_CROS_EC=m +CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_GPIO_POLLED=m +# CONFIG_KEYBOARD_IMX is not set +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_LM8323=m +CONFIG_KEYBOARD_LM8333=m +CONFIG_KEYBOARD_MATRIX=m +CONFIG_KEYBOARD_MAX7359=m +CONFIG_KEYBOARD_MCS=m +CONFIG_KEYBOARD_MPR121=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_NVEC=m +CONFIG_KEYBOARD_OMAP4=m +CONFIG_KEYBOARD_OPENCORES=m +CONFIG_KEYBOARD_QT1070=m +CONFIG_KEYBOARD_QT2160=m +CONFIG_KEYBOARD_SAMSUNG=m +CONFIG_KEYBOARD_SH_KEYSC=m +CONFIG_KEYBOARD_STMPE=m +CONFIG_KEYBOARD_STOWAWAY=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_TC3589X=m +CONFIG_KEYBOARD_TCA6416=m +CONFIG_KEYBOARD_TCA8418=m +CONFIG_KEYBOARD_TEGRA=m +CONFIG_KEYBOARD_TWL4030=m +CONFIG_KEYBOARD_XTKBD=m +CONFIG_KEYS=y +CONFIG_KEYS_COMPAT=y +CONFIG_KEYS_DEBUG_PROC_KEYS=y +CONFIG_KGDB=y +CONFIG_KGDB_KDB=y +CONFIG_KGDB_LOW_LEVEL_TRAP=y +CONFIG_KGDB_SERIAL_CONSOLE=y +# CONFIG_KGDB_TESTS is not set +CONFIG_KINGSUN_DONGLE=m +CONFIG_KPROBES=y +CONFIG_KPROBES_ON_FTRACE=y +# CONFIG_KPROBES_SANITY_TEST is not set +CONFIG_KPROBE_EVENT=y +CONFIG_KRETPROBES=y +CONFIG_KS0108=m +CONFIG_KS0108_DELAY=2 +CONFIG_KS0108_PORT=0x378 +CONFIG_KS8842=m +CONFIG_KS8851=m +CONFIG_KS8851_MLL=m +CONFIG_KS959_DONGLE=m +CONFIG_KSDAZZLE_DONGLE=m +CONFIG_KSZ884X_PCI=m +CONFIG_KTIME_SCALAR=y +CONFIG_KUSER_HELPERS=y +CONFIG_KVM_AMD=m +CONFIG_KVM_APIC_ARCHITECTURE=y +CONFIG_KVM_ARM_HOST=y +CONFIG_KVM_ARM_MAX_VCPUS=4 +CONFIG_KVM_ARM_TIMER=y +CONFIG_KVM_ARM_VGIC=y +CONFIG_KVM_ASYNC_PF=y +CONFIG_KVM_BOOK3S_64_HANDLER=y +# CONFIG_KVM_BOOK3S_64_HV is not set +CONFIG_KVM_BOOK3S_64_PR=m +CONFIG_KVM_BOOK3S_HANDLER=y +CONFIG_KVM_BOOK3S_PR_POSSIBLE=y +CONFIG_KVM_BOOKE_HV=y +CONFIG_KVM_DEBUG_FS=y +CONFIG_KVM_DEVICE_ASSIGNMENT=y +CONFIG_KVM_E500MC=y +# CONFIG_KVM_EXIT_TIMING is not set +CONFIG_KVM_GUEST=y +CONFIG_KVM_INTEL=m +CONFIG_KVM_MMIO=y +# CONFIG_KVM_MMU_AUDIT is not set +CONFIG_KVM_MPIC=y +CONFIG_KVM_VFIO=y +CONFIG_KVM_XICS=y +CONFIG_KXSD9=m +CONFIG_L2TP=m +CONFIG_L2TP_DEBUGFS=m +CONFIG_L2TP_ETH=m +CONFIG_L2TP_IP=m +CONFIG_L2TP_V3=y +CONFIG_LANCE=m +CONFIG_LANMEDIA=m +CONFIG_LAPB=m +CONFIG_LAPBETHER=m +CONFIG_LATENCYTOP=y +CONFIG_LATTICE_ECP3_CONFIG=m +CONFIG_LBDAF=y +CONFIG_LCD_AMS369FG06=m +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_HX8357=m +CONFIG_LCD_ILI922X=m +CONFIG_LCD_ILI9320=m +CONFIG_LCD_L4F00242T03=m +CONFIG_LCD_LD9040=m +CONFIG_LCD_LMS283GF05=m +CONFIG_LCD_LMS501KF03=m +CONFIG_LCD_LTV350QV=m +CONFIG_LCD_PLATFORM=m +CONFIG_LCD_S6E63M0=m +CONFIG_LCD_TDO24M=m +CONFIG_LCD_VGG2432A4=m +# CONFIG_LDM_DEBUG is not set +CONFIG_LDM_PARTITION=y +CONFIG_LEDS_88PM860X=m +CONFIG_LEDS_ADP5520=m +CONFIG_LEDS_ASIC3=y +CONFIG_LEDS_ATMEL_PWM=m +CONFIG_LEDS_BD2802=m +CONFIG_LEDS_BLINKM=m +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_CLEVO_MAIL=m +CONFIG_LEDS_DA903X=m +CONFIG_LEDS_DA9052=m +CONFIG_LEDS_DAC124S085=m +CONFIG_LEDS_DELL_NETBOOKS=m +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_INTEL_SS4200=m +CONFIG_LEDS_LM3530=m +CONFIG_LEDS_LM3533=m +CONFIG_LEDS_LM355x=m +CONFIG_LEDS_LM3642=m +CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP5521=m +CONFIG_LEDS_LP5523=m +CONFIG_LEDS_LP5562=m +CONFIG_LEDS_LP55XX_COMMON=m +CONFIG_LEDS_LP8501=m +CONFIG_LEDS_LP8788=m +CONFIG_LEDS_LT3593=m +CONFIG_LEDS_MAX8997=m +CONFIG_LEDS_MC13783=m +CONFIG_LEDS_NET48XX=m +CONFIG_LEDS_OT200=m +CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA9532_GPIO=y +CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_PCA963X=m +CONFIG_LEDS_PCA9685=m +CONFIG_LEDS_PWM=m +CONFIG_LEDS_REGULATOR=m +CONFIG_LEDS_TCA6507=m +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_CAMERA=m +CONFIG_LEDS_TRIGGER_CPU=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_LEDS_TRIGGER_GPIO=m +# CONFIG_LEDS_TRIGGER_IDE_DISK is not set +CONFIG_LEDS_TRIGGER_ONESHOT=m +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_TRANSIENT=m +CONFIG_LEDS_WM831X_STATUS=m +CONFIG_LEDS_WM8350=m +CONFIG_LEDS_WRAP=m +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=0 +# CONFIG_LGUEST is not set +# CONFIG_LGUEST_GUEST is not set +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +CONFIG_LIB80211_CRYPT_WEP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_LIBCRC32C=m +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_CS=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_SDIO=m +CONFIG_LIBERTAS_SPI=m +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBFC=m +CONFIG_LIBFCOE=m +CONFIG_LIBIPW=m +# CONFIG_LIBIPW_DEBUG is not set +CONFIG_LINE6_USB=m +# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set +CONFIG_LIRC=m +CONFIG_LIRC_BT829=m +CONFIG_LIRC_IGORPLUGUSB=m +CONFIG_LIRC_IMON=m +CONFIG_LIRC_PARALLEL=m +CONFIG_LIRC_SASEM=m +CONFIG_LIRC_SERIAL=m +CONFIG_LIRC_SERIAL_TRANSMITTER=y +CONFIG_LIRC_SIR=m +CONFIG_LIRC_STAGING=y +CONFIG_LIRC_ZILOG=m +CONFIG_LITELINK_DONGLE=m +# CONFIG_LKDTM is not set +CONFIG_LLC=m +CONFIG_LLC2=m +CONFIG_LNET=m +CONFIG_LNET_MAX_PAYLOAD=1048576 +CONFIG_LNET_SELFTEST=m +CONFIG_LNET_XPRT_IB=m +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_LOCKD=m +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_LOCKD_V4=y +CONFIG_LOCKUP_DETECTOR=y +# CONFIG_LOCK_STAT is not set +# CONFIG_LOGFS is not set +CONFIG_LOGIG940_FF=y +CONFIG_LOGIRUMBLEPAD2_FF=y +CONFIG_LOGITECH_FF=y +CONFIG_LOGIWHEELS_FF=y +# CONFIG_LOGO is not set +CONFIG_LOOPBACK_TARGET=m +CONFIG_LOWMEM_CAM_NUM=3 +CONFIG_LOWMEM_SIZE=0x30000000 +CONFIG_LP8788_ADC=y +CONFIG_LPC_ICH=m +CONFIG_LPC_SCH=m +# CONFIG_LP_CONSOLE is not set +CONFIG_LRU_CACHE=m +CONFIG_LSI_ET1011C_PHY=y +CONFIG_LSM_MMAP_MIN_ADDR=0 +CONFIG_LTE_GDM724X=m +CONFIG_LTPC=m +# CONFIG_LUSTRE_DEBUG_EXPENSIVE_CHECK is not set +CONFIG_LUSTRE_FS=m +CONFIG_LUSTRE_LLITE_LLOOP=y +CONFIG_LUSTRE_OBD_MAX_IOCTL_BUFFER=8192 +CONFIG_LUSTRE_TRANSLATE_ERRNOS=y +CONFIG_LXT_PHY=y +CONFIG_LZ4HC_COMPRESS=m +CONFIG_LZ4_COMPRESS=m +CONFIG_LZ4_DECOMPRESS=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +# CONFIG_M486 is not set +# CONFIG_M586 is not set +# CONFIG_M586MMX is not set +# CONFIG_M586TSC is not set +CONFIG_M686=y +CONFIG_MA600_DONGLE=m +CONFIG_MAC80211=m +CONFIG_MAC80211_DEBUGFS=y +# CONFIG_MAC80211_DEBUG_MENU is not set +CONFIG_MAC80211_HAS_RC=y +CONFIG_MAC80211_HWSIM=m +CONFIG_MAC80211_LEDS=y +CONFIG_MAC80211_MESH=y +CONFIG_MAC80211_MESSAGE_TRACING=y +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +# CONFIG_MAC80211_RC_DEFAULT_PID is not set +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_MINSTREL_HT=y +CONFIG_MAC80211_RC_PID=y +CONFIG_MAC802154=m +CONFIG_MACB=m +CONFIG_MACE=m +# CONFIG_MACE_AAUI_PORT is not set +CONFIG_MACHZ_WDT=m +# CONFIG_MACH_CM_T35 is not set +CONFIG_MACH_CM_T3517=y +# CONFIG_MACH_CRANEBOARD is not set +# CONFIG_MACH_DEVKIT8000 is not set +# CONFIG_MACH_EUKREA_CPUIMX51SD is not set +# CONFIG_MACH_IMX51_DT is not set +CONFIG_MACH_KZM9D=y +# CONFIG_MACH_MX51_BABBAGE is not set +# CONFIG_MACH_NOKIA_RX51 is not set +# CONFIG_MACH_OMAP3517EVM is not set +CONFIG_MACH_OMAP3530_LV_SOM=y +CONFIG_MACH_OMAP3_BEAGLE=y +CONFIG_MACH_OMAP3_PANDORA=y +CONFIG_MACH_OMAP3_TORPEDO=y +CONFIG_MACH_OMAP_3430SDP=y +CONFIG_MACH_OMAP_GENERIC=y +CONFIG_MACH_OMAP_LDP=y +CONFIG_MACH_OVERO=y +CONFIG_MACH_SBC3530=y +CONFIG_MACH_TI8148EVM=y +CONFIG_MACH_TI8168EVM=y +CONFIG_MACH_TOUCHBOOK=y +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +CONFIG_MAC_EMUMOUSEBTN=m +CONFIG_MAC_FLOPPY=m +CONFIG_MAC_PARTITION=y +CONFIG_MAG3110=m +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 +CONFIG_MAILBOX=y +CONFIG_MANTIS_CORE=m +CONFIG_MARVELL_PHY=y +# CONFIG_MATH_EMULATION_FULL is not set +CONFIG_MATH_EMULATION_HW_UNIMPLEMENTED=y +# CONFIG_MATOM is not set +CONFIG_MAX1363=m +CONFIG_MAX517=m +CONFIG_MAX63XX_WATCHDOG=m +CONFIG_MAX8925_POWER=m +# CONFIG_MAXSMP is not set +CONFIG_MAX_RAW_DEVS=256 +# CONFIG_MCORE2 is not set +CONFIG_MCP2120_DONGLE=m +CONFIG_MCP320X=m +CONFIG_MCP3422=m +CONFIG_MCP4725=m +CONFIG_MCPM=y +# CONFIG_MCRUSOE is not set +CONFIG_MCS_FIR=m +# CONFIG_MCYRIXIII is not set +CONFIG_MD=y +CONFIG_MDA_CONSOLE=m +CONFIG_MDIO=m +CONFIG_MDIO_BITBANG=y +CONFIG_MDIO_BUS_MUX=y +CONFIG_MDIO_BUS_MUX_GPIO=y +CONFIG_MDIO_BUS_MUX_MMIOREG=y +CONFIG_MDIO_GPIO=y +CONFIG_MD_AUTODETECT=y +CONFIG_MD_FAULTY=m +CONFIG_MD_LINEAR=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MEDIA_ALTERA_CI=m +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_ATTACH=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_COMMON_OPTIONS=y +# CONFIG_MEDIA_CONTROLLER is not set +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +CONFIG_MEDIA_PARPORT_SUPPORT=y +CONFIG_MEDIA_PCI_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_RC_SUPPORT=y +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_SUPPORT=m +CONFIG_MEDIA_TUNER=m +CONFIG_MEDIA_TUNER_E4000=m +CONFIG_MEDIA_TUNER_FC0011=m +CONFIG_MEDIA_TUNER_FC0012=m +CONFIG_MEDIA_TUNER_FC0013=m +CONFIG_MEDIA_TUNER_FC2580=m +CONFIG_MEDIA_TUNER_IT913X=m +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2063=m +CONFIG_MEDIA_TUNER_MT20XX=m +CONFIG_MEDIA_TUNER_MT2131=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_R820T=m +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_TDA18271=m +CONFIG_MEDIA_TUNER_TDA827X=m +CONFIG_MEDIA_TUNER_TDA8290=m +CONFIG_MEDIA_TUNER_TDA9887=m +CONFIG_MEDIA_TUNER_TEA5761=m +CONFIG_MEDIA_TUNER_TEA5767=m +CONFIG_MEDIA_TUNER_TUA9001=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_USB_SUPPORT=y +# CONFIG_MEFFICEON is not set +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_NEWGEN=y +CONFIG_MEGARAID_SAS=m +# CONFIG_MELAN is not set +CONFIG_MEMCG=y +CONFIG_MEMCG_KMEM=y +CONFIG_MEMCG_SWAP=y +# CONFIG_MEMCG_SWAP_ENABLED is not set +CONFIG_MEMORY=y +CONFIG_MEMORY_FAILURE=y +CONFIG_MEMORY_HOTPLUG=y +CONFIG_MEMORY_HOTPLUG_SPARSE=y +CONFIG_MEMORY_ISOLATION=y +CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m +CONFIG_MEMSTICK=m +# CONFIG_MEMSTICK_DEBUG is not set +CONFIG_MEMSTICK_JMICRON_38X=m +CONFIG_MEMSTICK_R592=m +CONFIG_MEMSTICK_REALTEK_PCI=m +CONFIG_MEMSTICK_TIFM_MS=m +# CONFIG_MEMSTICK_UNSAFE_RESUME is not set +CONFIG_MEMTEST=y +CONFIG_MEM_SOFT_DIRTY=y +CONFIG_MEN_A21_WDT=m +CONFIG_MFD_88PM800=m +CONFIG_MFD_88PM805=m +CONFIG_MFD_88PM860X=y +CONFIG_MFD_AAT2870_CORE=y +CONFIG_MFD_ARIZONA=y +CONFIG_MFD_ARIZONA_I2C=m +CONFIG_MFD_ARIZONA_SPI=m +CONFIG_MFD_AS3711=y +CONFIG_MFD_AS3722=y +CONFIG_MFD_ASIC3=y +CONFIG_MFD_CORE=y +CONFIG_MFD_CROS_EC=m +CONFIG_MFD_CROS_EC_I2C=m +CONFIG_MFD_CROS_EC_SPI=m +CONFIG_MFD_CS5535=m +CONFIG_MFD_DA9052_I2C=y +CONFIG_MFD_DA9052_SPI=y +CONFIG_MFD_DA9055=y +CONFIG_MFD_DA9063=y +CONFIG_MFD_INTEL_MSIC=y +CONFIG_MFD_JANZ_CMODIO=m +CONFIG_MFD_KEMPLD=m +CONFIG_MFD_LM3533=m +CONFIG_MFD_LP8788=y +CONFIG_MFD_MAX77686=y +CONFIG_MFD_MAX77693=y +CONFIG_MFD_MAX8907=m +CONFIG_MFD_MAX8925=y +CONFIG_MFD_MAX8997=y +CONFIG_MFD_MAX8998=y +CONFIG_MFD_MC13783=m +CONFIG_MFD_MC13XXX=m +CONFIG_MFD_MC13XXX_I2C=m +CONFIG_MFD_MC13XXX_SPI=m +CONFIG_MFD_NVEC=m +CONFIG_MFD_OMAP_USB_HOST=y +CONFIG_MFD_PALMAS=y +CONFIG_MFD_PCF50633=m +CONFIG_MFD_RC5T583=y +CONFIG_MFD_RDC321X=m +CONFIG_MFD_RETU=m +CONFIG_MFD_RTSX_PCI=m +CONFIG_MFD_SEC_CORE=y +CONFIG_MFD_SI476X_CORE=m +CONFIG_MFD_SM501=m +# CONFIG_MFD_SM501_GPIO is not set +CONFIG_MFD_SMSC=y +CONFIG_MFD_STMPE=y +CONFIG_MFD_SYSCON=y +CONFIG_MFD_T7L66XB=y +CONFIG_MFD_TC3589X=y +CONFIG_MFD_TC6387XB=y +CONFIG_MFD_TC6393XB=y +CONFIG_MFD_TIMBERDALE=m +CONFIG_MFD_TPS65090=y +CONFIG_MFD_TPS65217=m +CONFIG_MFD_TPS6586X=y +CONFIG_MFD_TPS65910=y +CONFIG_MFD_TPS65912=y +CONFIG_MFD_TPS65912_I2C=y +CONFIG_MFD_TPS65912_SPI=y +CONFIG_MFD_TPS80031=y +CONFIG_MFD_TWL4030_AUDIO=y +CONFIG_MFD_VIPERBOARD=m +CONFIG_MFD_VX855=m +CONFIG_MFD_WL1273_CORE=m +CONFIG_MFD_WM5102=y +CONFIG_MFD_WM5110=y +CONFIG_MFD_WM831X=y +CONFIG_MFD_WM831X_I2C=y +CONFIG_MFD_WM831X_SPI=y +CONFIG_MFD_WM8350=y +CONFIG_MFD_WM8350_I2C=y +CONFIG_MFD_WM8400=y +CONFIG_MFD_WM8994=y +CONFIG_MFD_WM8997=y +# CONFIG_MGEODEGX1 is not set +# CONFIG_MGEODE_LX is not set +CONFIG_MG_DISK=m +CONFIG_MG_DISK_RES=0 +CONFIG_MICREL_KS8995MA=m +CONFIG_MICREL_PHY=y +CONFIG_MICROCODE=y +CONFIG_MICROCODE_AMD=y +CONFIG_MICROCODE_AMD_EARLY=y +CONFIG_MICROCODE_EARLY=y +CONFIG_MICROCODE_INTEL=y +CONFIG_MICROCODE_INTEL_EARLY=y +CONFIG_MICROCODE_INTEL_LIB=y +CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_MIGHT_HAVE_CACHE_L2X0=y +CONFIG_MIGHT_HAVE_PCI=y +CONFIG_MIGRATION=y +CONFIG_MINIX_FS=m +CONFIG_MINIX_SUBPARTITION=y +CONFIG_MISC_FILESYSTEMS=y +CONFIG_MISDN=m +CONFIG_MISDN_AVMFRITZ=m +CONFIG_MISDN_DSP=m +CONFIG_MISDN_HFCMULTI=m +CONFIG_MISDN_HFCPCI=m +CONFIG_MISDN_HFCUSB=m +CONFIG_MISDN_INFINEON=m +CONFIG_MISDN_IPAC=m +CONFIG_MISDN_ISAR=m +CONFIG_MISDN_L1OIP=m +CONFIG_MISDN_NETJET=m +CONFIG_MISDN_SPEEDFAX=m +CONFIG_MISDN_W6692=m +CONFIG_MIXCOMWD=m +# CONFIG_MK6 is not set +# CONFIG_MK7 is not set +# CONFIG_MK8 is not set +CONFIG_MKISS=m +CONFIG_MLX4_CORE=m +CONFIG_MLX4_DEBUG=y +CONFIG_MLX4_EN=m +CONFIG_MLX4_EN_DCB=y +CONFIG_MLX4_EN_VXLAN=y +CONFIG_MLX4_INFINIBAND=m +CONFIG_MLX5_CORE=m +CONFIG_MLX5_INFINIBAND=m +CONFIG_MMC=y +CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_BLOCK_BOUNCE=y +CONFIG_MMC_BLOCK_MINORS=8 +CONFIG_MMC_CB710=m +# CONFIG_MMC_CLKGATE is not set +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_DW=m +CONFIG_MMC_DW_EXYNOS=m +# CONFIG_MMC_DW_IDMAC is not set +CONFIG_MMC_DW_PCI=m +CONFIG_MMC_DW_PLTFM=m +CONFIG_MMC_DW_SOCFPGA=m +# CONFIG_MMC_MXC is not set +CONFIG_MMC_OMAP=m +CONFIG_MMC_OMAP_HS=y +CONFIG_MMC_REALTEK_PCI=m +CONFIG_MMC_RICOH_MMC=y +CONFIG_MMC_SDHCI_ACPI=m +CONFIG_MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER=y +CONFIG_MMC_SDHCI_ESDHC_IMX=y +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +CONFIG_MMC_SDHCI_OF_ESDHC=m +CONFIG_MMC_SDHCI_OF_HLWD=m +CONFIG_MMC_SDHCI_PCI=m +CONFIG_MMC_SDHCI_PXAV2=m +CONFIG_MMC_SDHCI_PXAV3=m +CONFIG_MMC_SDHCI_TEGRA=m +CONFIG_MMC_SDRICOH_CS=m +CONFIG_MMC_SPI=m +# CONFIG_MMC_TEST is not set +CONFIG_MMC_TIFM_SD=m +CONFIG_MMC_TMIO=m +CONFIG_MMC_TMIO_CORE=m +# CONFIG_MMC_UNSAFE_RESUME is not set +CONFIG_MMC_USHC=m +CONFIG_MMC_VIA_SDMMC=m +CONFIG_MMC_VUB300=m +CONFIG_MMC_WBSD=m +CONFIG_MMIOTRACE=y +# CONFIG_MMIOTRACE_TEST is not set +CONFIG_MMU=y +CONFIG_MMU_NOTIFIER=y +CONFIG_MM_OWNER=y +CONFIG_MODULES=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_MODULES_USE_ELF_RELA=y +# CONFIG_MODULE_FORCE_LOAD is not set +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODULE_SIG=y +CONFIG_MODULE_SIG_ALL=y +# CONFIG_MODULE_SIG_FORCE is not set +CONFIG_MODULE_SIG_HASH="sha512" +# CONFIG_MODULE_SIG_SHA1 is not set +# CONFIG_MODULE_SIG_SHA224 is not set +# CONFIG_MODULE_SIG_SHA256 is not set +# CONFIG_MODULE_SIG_SHA384 is not set +CONFIG_MODULE_SIG_SHA512=y +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_CYAPA=m +CONFIG_MOUSE_GPIO=m +# CONFIG_MOUSE_INPORT is not set +CONFIG_MOUSE_LOGIBM=m +CONFIG_MOUSE_PC110PAD=m +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SENTELIC=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_TOUCHKIT=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_SYNAPTICS_I2C=m +CONFIG_MOUSE_SYNAPTICS_USB=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MOVABLE_NODE=y +CONFIG_MOXA_INTELLIO=m +CONFIG_MOXA_SMARTIO=m +# CONFIG_MPENTIUM4 is not set +# CONFIG_MPENTIUMII is not set +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUMM is not set +CONFIG_MPIC=y +CONFIG_MPIC_BROKEN_REGREAD=y +# CONFIG_MPIC_TIMER is not set +# CONFIG_MPIC_WEIRD is not set +CONFIG_MPILIB=y +# CONFIG_MPSC is not set +CONFIG_MRP=m +CONFIG_MSDOS_FS=m +CONFIG_MSDOS_PARTITION=y +# CONFIG_MSI_BITMAP_SELFTEST is not set +CONFIG_MSI_LAPTOP=m +CONFIG_MSI_WMI=m +CONFIG_MSPRO_BLOCK=m +CONFIG_MS_BLOCK=m +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTD_ABSENT=m +CONFIG_MTD_AFS_PARTS=m +CONFIG_MTD_AMD76XROM=m +CONFIG_MTD_AR7_PARTS=m +CONFIG_MTD_BLOCK2MTD=m +CONFIG_MTD_BLOCK_RO=m +CONFIG_MTD_CFI=m +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_CK804XROM=m +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_DATAFLASH=m +CONFIG_MTD_DATAFLASH_OTP=y +# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set +CONFIG_MTD_DOCG3=m +CONFIG_MTD_ESB2ROM=m +CONFIG_MTD_GEN_PROBE=m +CONFIG_MTD_GPIO_ADDR=m +CONFIG_MTD_ICHXROM=m +CONFIG_MTD_IMPA7=m +CONFIG_MTD_INTEL_VR_NOR=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_L440GX=m +CONFIG_MTD_LATCH_ADDR=m +CONFIG_MTD_LPDDR=m +CONFIG_MTD_M25P80=m +CONFIG_MTD_MAP_BANK_WIDTH_1=y +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +CONFIG_MTD_MAP_BANK_WIDTH_2=y +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +CONFIG_MTD_MTDRAM=m +CONFIG_MTD_NAND_CAFE=m +CONFIG_MTD_NAND_CS553X=m +CONFIG_MTD_NAND_DENALI=m +CONFIG_MTD_NAND_DENALI_DT=m +CONFIG_MTD_NAND_DENALI_PCI=m +CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018 +CONFIG_MTD_NAND_DISKONCHIP=m +# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 +# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set +CONFIG_MTD_NAND_DOCG4=m +CONFIG_MTD_NAND_ECC_BCH=y +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND_FSL_ELBC=m +CONFIG_MTD_NAND_FSL_IFC=m +CONFIG_MTD_NAND_FSL_UPM=m +CONFIG_MTD_NAND_GPIO=m +# CONFIG_MTD_NAND_MXC is not set +CONFIG_MTD_NAND_NANDSIM=m +CONFIG_MTD_NAND_OMAP2=y +CONFIG_MTD_NAND_OMAP_BCH=y +CONFIG_MTD_NAND_PASEMI=m +CONFIG_MTD_NAND_PLATFORM=m +CONFIG_MTD_NAND_RICOH=m +CONFIG_MTD_NAND_SOCRATES=m +CONFIG_MTD_NAND_TMIO=m +CONFIG_MTD_NETSC520=m +CONFIG_MTD_NETtel=m +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_2X_PROGRAM=y +CONFIG_MTD_ONENAND_GENERIC=m +CONFIG_MTD_ONENAND_OMAP2=m +# CONFIG_MTD_ONENAND_OTP is not set +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +CONFIG_MTD_OOPS=m +CONFIG_MTD_PCI=m +CONFIG_MTD_PCMCIA=m +# CONFIG_MTD_PCMCIA_ANONYMOUS is not set +CONFIG_MTD_PHRAM=m +CONFIG_MTD_PHYSMAP=m +# CONFIG_MTD_PHYSMAP_COMPAT is not set +CONFIG_MTD_PHYSMAP_OF=m +CONFIG_MTD_PLATRAM=m +CONFIG_MTD_PMC551=m +# CONFIG_MTD_PMC551_BUGFIX is not set +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_QINFO_PROBE=m +CONFIG_MTD_RAM=m +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +CONFIG_MTD_REDBOOT_PARTS=m +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set +# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set +CONFIG_MTD_ROM=m +CONFIG_MTD_SBC_GXX=m +CONFIG_MTD_SC520CDP=m +CONFIG_MTD_SCB2_FLASH=m +CONFIG_MTD_SCx200_DOCFLASH=m +CONFIG_MTD_SLRAM=m +CONFIG_MTD_SPINAND_MT29F=m +CONFIG_MTD_SPINAND_ONDIEECC=y +CONFIG_MTD_SST25L=m +CONFIG_MTD_SWAP=m +# CONFIG_MTD_TESTS is not set +CONFIG_MTD_TS5500=m +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_BEB_LIMIT=20 +CONFIG_MTD_UBI_FASTMAP=y +CONFIG_MTD_UBI_GLUEBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTRR=y +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 +CONFIG_MULTI_IRQ_HANDLER=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_MV643XX_ETH=m +# CONFIG_MVIAC3_2 is not set +# CONFIG_MVIAC7 is not set +CONFIG_MVMDIO=m +CONFIG_MWAVE=m +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_PCIE=m +CONFIG_MWIFIEX_SDIO=m +CONFIG_MWIFIEX_USB=m +# CONFIG_MWINCHIP3D is not set +# CONFIG_MWINCHIPC6 is not set +CONFIG_MWL8K=m +CONFIG_MX3_IPU=y +CONFIG_MX3_IPU_IRQS=4 +# CONFIG_MXC_DEBUG_BOARD is not set +# CONFIG_MXC_IRQ_PRIOR is not set +CONFIG_MXM_WMI=m +# CONFIG_MXS_DMA is not set +CONFIG_MYRI10GE=m +CONFIG_MYRI10GE_DCA=y +CONFIG_N2=m +CONFIG_NAMESPACES=y +CONFIG_NATIONAL_PHY=y +CONFIG_NATSEMI=m +CONFIG_NAU7802=m +CONFIG_NCPFS_EXTRAS=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_OS2_NS=y +CONFIG_NCPFS_PACKET_SIGNING=y +# CONFIG_NCPFS_SMALLDOS is not set +CONFIG_NCPFS_STRONG=y +CONFIG_NCP_FS=m +CONFIG_NE2000=m +CONFIG_NE2K_PCI=m +CONFIG_NEED_MULTIPLE_NODES=y +CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_NEON=y +CONFIG_NET=y +CONFIG_NET5501=y +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETDEVICES=y +CONFIG_NETFILTER=y +CONFIG_NETFILTER_ADVANCED=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_ACCT=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_QUEUE_CT=y +CONFIG_NETFILTER_SYNPROXY=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_CONNMARK=m +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m +CONFIG_NETFILTER_XT_MATCH_CLUSTER=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_HL=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_RATEEST=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_NETFILTER_XT_SET=m +CONFIG_NETFILTER_XT_TARGET_AUDIT=m +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m +CONFIG_NETFILTER_XT_TARGET_CT=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m +CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NETMAP=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_RATEEST=m +CONFIG_NETFILTER_XT_TARGET_REDIRECT=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m +CONFIG_NETFILTER_XT_TARGET_TEE=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETLABEL=y +CONFIG_NETLINK_DIAG=m +CONFIG_NETLINK_MMAP=y +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NETPRIO_CGROUP=m +CONFIG_NETROM=m +CONFIG_NETWORK_FILESYSTEMS=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +CONFIG_NETWORK_SECMARK=y +CONFIG_NETXEN_NIC=m +CONFIG_NET_9P=m +# CONFIG_NET_9P_DEBUG is not set +CONFIG_NET_9P_RDMA=m +CONFIG_NET_9P_VIRTIO=m +CONFIG_NET_ACT_CSUM=m +CONFIG_NET_ACT_GACT=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_NAT=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACT_SKBEDIT=m +CONFIG_NET_CADENCE=y +CONFIG_NET_CALXEDA_XGMAC=m +CONFIG_NET_CLS=y +CONFIG_NET_CLS_ACT=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_BPF=m +CONFIG_NET_CLS_CGROUP=m +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_FW=m +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_U32=m +CONFIG_NET_CORE=y +CONFIG_NET_DCCPPROBE=m +# CONFIG_NET_DROP_MONITOR is not set +CONFIG_NET_DSA=m +CONFIG_NET_DSA_MV88E6060=m +CONFIG_NET_DSA_MV88E6123_61_65=m +CONFIG_NET_DSA_MV88E6131=m +CONFIG_NET_DSA_MV88E6XXX=m +CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y +CONFIG_NET_DSA_TAG_DSA=y +CONFIG_NET_DSA_TAG_EDSA=y +CONFIG_NET_DSA_TAG_TRAILER=y +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_CANID=m +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_IPSET=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_FC=y +CONFIG_NET_FLOW_LIMIT=y +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IPIP=m +CONFIG_NET_IPVTI=m +CONFIG_NET_IP_TUNNEL=m +CONFIG_NET_KEY=m +# CONFIG_NET_KEY_MIGRATE is not set +CONFIG_NET_MPLS_GSO=m +CONFIG_NET_NS=y +CONFIG_NET_PACKET_ENGINE=y +CONFIG_NET_PKTGEN=m +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_NET_RX_BUSY_POLL=y +CONFIG_NET_SB1000=m +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_FIFO=y +CONFIG_NET_SCH_FQ=m +CONFIG_NET_SCH_FQ_CODEL=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_MULTIQ=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_PLUG=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCTPPROBE=m +CONFIG_NET_TCPPROBE=m +CONFIG_NET_TEAM=m +CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m +CONFIG_NET_TEAM_MODE_BROADCAST=m +CONFIG_NET_TEAM_MODE_LOADBALANCE=m +CONFIG_NET_TEAM_MODE_RANDOM=m +CONFIG_NET_TEAM_MODE_ROUNDROBIN=m +CONFIG_NET_VENDOR_3COM=y +CONFIG_NET_VENDOR_8390=y +CONFIG_NET_VENDOR_ADAPTEC=y +CONFIG_NET_VENDOR_ALTEON=y +CONFIG_NET_VENDOR_AMD=y +CONFIG_NET_VENDOR_APPLE=y +CONFIG_NET_VENDOR_ARC=y +CONFIG_NET_VENDOR_ATHEROS=y +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_NET_VENDOR_BROCADE=y +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_NET_VENDOR_CIRRUS=y +CONFIG_NET_VENDOR_CISCO=y +CONFIG_NET_VENDOR_DEC=y +CONFIG_NET_VENDOR_DLINK=y +CONFIG_NET_VENDOR_EMULEX=y +CONFIG_NET_VENDOR_EXAR=y +CONFIG_NET_VENDOR_FARADAY=y +CONFIG_NET_VENDOR_FREESCALE=y +CONFIG_NET_VENDOR_FUJITSU=y +CONFIG_NET_VENDOR_HP=y +CONFIG_NET_VENDOR_I825XX=y +CONFIG_NET_VENDOR_IBM=y +CONFIG_NET_VENDOR_INTEL=y +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_NET_VENDOR_MELLANOX=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_NET_VENDOR_MICROCHIP=y +CONFIG_NET_VENDOR_MYRI=y +CONFIG_NET_VENDOR_NATSEMI=y +CONFIG_NET_VENDOR_NVIDIA=y +CONFIG_NET_VENDOR_OKI=y +CONFIG_NET_VENDOR_PASEMI=y +CONFIG_NET_VENDOR_QLOGIC=y +CONFIG_NET_VENDOR_RDC=y +CONFIG_NET_VENDOR_REALTEK=y +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_NET_VENDOR_SILAN=y +CONFIG_NET_VENDOR_SILICOM=y +CONFIG_NET_VENDOR_SIS=y +CONFIG_NET_VENDOR_SMSC=y +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_NET_VENDOR_SUN=y +CONFIG_NET_VENDOR_TEHUTI=y +CONFIG_NET_VENDOR_TI=y +CONFIG_NET_VENDOR_TOSHIBA=y +CONFIG_NET_VENDOR_VIA=y +CONFIG_NET_VENDOR_WIZNET=y +CONFIG_NET_VENDOR_XILINX=y +CONFIG_NET_VENDOR_XIRCOM=y +CONFIG_NET_XGENE=m +CONFIG_NEW_LEDS=y +CONFIG_NFC=m +CONFIG_NFC_DIGITAL=m +CONFIG_NFC_HCI=m +CONFIG_NFC_MEI_PHY=m +CONFIG_NFC_MICROREAD=m +CONFIG_NFC_MICROREAD_I2C=m +CONFIG_NFC_MICROREAD_MEI=m +CONFIG_NFC_NCI=m +CONFIG_NFC_NCI_SPI=y +CONFIG_NFC_PN533=m +CONFIG_NFC_PN544=m +CONFIG_NFC_PN544_I2C=m +CONFIG_NFC_PN544_MEI=m +CONFIG_NFC_PORT100=m +CONFIG_NFC_SHDLC=y +CONFIG_NFC_SIM=m +CONFIG_NFC_WILINK=m +CONFIG_NFSD=m +# CONFIG_NFSD_FAULT_INJECTION is not set +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_NFSD_V4_SECURITY_LABEL=y +CONFIG_NFS_ACL_SUPPORT=m +CONFIG_NFS_COMMON=y +CONFIG_NFS_DEBUG=y +CONFIG_NFS_FS=m +CONFIG_NFS_FSCACHE=y +CONFIG_NFS_SWAP=y +CONFIG_NFS_USE_KERNEL_DNS=y +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_V2=m +CONFIG_NFS_V3=m +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=m +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" +CONFIG_NFS_V4_1_MIGRATION=y +CONFIG_NFS_V4_2=y +CONFIG_NFS_V4_SECURITY_LABEL=y +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_NFT_CHAIN_NAT_IPV4=m +CONFIG_NFT_CHAIN_NAT_IPV6=m +CONFIG_NFT_CHAIN_ROUTE_IPV4=m +CONFIG_NFT_CHAIN_ROUTE_IPV6=m +CONFIG_NFT_COMPAT=m +CONFIG_NFT_COUNTER=m +CONFIG_NFT_CT=m +CONFIG_NFT_EXTHDR=m +CONFIG_NFT_HASH=m +CONFIG_NFT_LIMIT=m +CONFIG_NFT_LOG=m +CONFIG_NFT_META=m +CONFIG_NFT_NAT=m +CONFIG_NFT_RBTREE=m +CONFIG_NFT_REJECT_IPV4=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_BROADCAST=m +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_IPV6=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_LABELS=y +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_PPTP=m +# CONFIG_NF_CONNTRACK_PROCFS is not set +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_SNMP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CONNTRACK_TIMEOUT=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NF_CT_NETLINK_TIMEOUT=m +CONFIG_NF_CT_PROTO_DCCP=m +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CT_PROTO_UDPLITE=m +CONFIG_NF_DEFRAG_IPV4=m +CONFIG_NF_DEFRAG_IPV6=m +CONFIG_NF_NAT=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_H323=m +CONFIG_NF_NAT_IPV4=m +CONFIG_NF_NAT_IPV6=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_PROTO_DCCP=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_PROTO_SCTP=m +CONFIG_NF_NAT_PROTO_UDPLITE=m +CONFIG_NF_NAT_SIP=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NF_TABLES=m +CONFIG_NF_TABLES_ARP=m +CONFIG_NF_TABLES_BRIDGE=m +CONFIG_NF_TABLES_IPV4=m +CONFIG_NF_TABLES_IPV6=m +CONFIG_NI65=m +CONFIG_NILFS2_FS=m +CONFIG_NIU=m +# CONFIG_NL80211_TESTMODE is not set +CONFIG_NLATTR=y +CONFIG_NLMON=m +CONFIG_NLS=y +CONFIG_NLS_ASCII=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_MAC_CELTIC=m +CONFIG_NLS_MAC_CENTEURO=m +CONFIG_NLS_MAC_CROATIAN=m +CONFIG_NLS_MAC_CYRILLIC=m +CONFIG_NLS_MAC_GAELIC=m +CONFIG_NLS_MAC_GREEK=m +CONFIG_NLS_MAC_ICELAND=m +CONFIG_NLS_MAC_INUIT=m +CONFIG_NLS_MAC_ROMAN=m +CONFIG_NLS_MAC_ROMANIAN=m +CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UTF8=m +CONFIG_NODES_SPAN_OTHER_NODES=y +# CONFIG_NOHIGHMEM is not set +CONFIG_NOP_TRACER=y +CONFIG_NORTEL_HERMES=m +CONFIG_NOTIFIER_ERROR_INJECTION=m +CONFIG_NOUVEAU_DEBUG=5 +CONFIG_NOUVEAU_DEBUG_DEFAULT=3 +CONFIG_NOZOMI=m +CONFIG_NO_BOOTMEM=y +CONFIG_NO_HZ=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_NO_HZ_FULL_ALL is not set +CONFIG_NO_HZ_FULL_SYSIDLE=y +CONFIG_NO_HZ_FULL_SYSIDLE_SMALL=8 +CONFIG_NO_IOPORT=y +CONFIG_NR_IRQS=512 +CONFIG_NS83820=m +CONFIG_NSC_FIR=m +CONFIG_NSC_GPIO=m +CONFIG_NTB=m +CONFIG_NTB_NETDEV=m +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_FS=m +# CONFIG_NTFS_RW is not set +CONFIG_NUMA_BALANCING=y +CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y +# CONFIG_NUMA_EMU is not set +CONFIG_NVEC_PAZ00=m +CONFIG_NVEC_POWER=m +CONFIG_NV_TCO=m +# CONFIG_N_GSM is not set +CONFIG_N_HDLC=m +# CONFIG_OABI_COMPAT is not set +# CONFIG_OCFS2_DEBUG_FS is not set +CONFIG_OCFS2_DEBUG_MASKLOG=y +CONFIG_OCFS2_FS=m +CONFIG_OCFS2_FS_O2CB=m +CONFIG_OCFS2_FS_STATS=y +CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m +CONFIG_OC_ETM=y +CONFIG_OF=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_DYNAMIC=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_EXTCON=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_GPIO=y +CONFIG_OF_IOMMU=y +CONFIG_OF_IRQ=y +CONFIG_OF_MDIO=y +CONFIG_OF_MTD=y +CONFIG_OF_NET=y +CONFIG_OF_PCI=y +CONFIG_OF_PCI_IRQ=y +# CONFIG_OF_RECONFIG_NOTIFIER_ERROR_INJECT is not set +# CONFIG_OF_SELFTEST is not set +CONFIG_OID_REGISTRY=y +CONFIG_OLD_BELKIN_DONGLE=m +CONFIG_OLD_SIGACTION=y +CONFIG_OLD_SIGSUSPEND=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OMAP2PLUS_MBOX=m +CONFIG_OMAP2_DSS=y +# CONFIG_OMAP2_DSS_DEBUG is not set +# CONFIG_OMAP2_DSS_DEBUGFS is not set +CONFIG_OMAP2_DSS_DPI=y +# CONFIG_OMAP2_DSS_DSI is not set +CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0 +CONFIG_OMAP2_DSS_SDI=y +CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y +CONFIG_OMAP2_DSS_VENC=y +CONFIG_OMAP2_VRFB=y +CONFIG_OMAP3_EMU=y +# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set +# CONFIG_OMAP3_SDRC_AC_TIMING is not set +CONFIG_OMAP4_DSS_HDMI=y +CONFIG_OMAP4_DSS_HDMI_AUDIO=y +CONFIG_OMAP4_THERMAL=y +CONFIG_OMAP_32K_TIMER=y +CONFIG_OMAP_CONTROL_USB=y +CONFIG_OMAP_DM_TIMER=y +CONFIG_OMAP_INTERCONNECT=y +CONFIG_OMAP_IOMMU=y +# CONFIG_OMAP_IOVMM is not set +CONFIG_OMAP_MBOX=m +CONFIG_OMAP_MBOX_KFIFO_SIZE=256 +CONFIG_OMAP_MUX=y +# CONFIG_OMAP_MUX_DEBUG is not set +CONFIG_OMAP_MUX_WARNINGS=y +CONFIG_OMAP_OCP2SCP=m +CONFIG_OMAP_PACKAGE_CBB=y +CONFIG_OMAP_PACKAGE_CUS=y +CONFIG_OMAP_PM_NOOP=y +CONFIG_OMAP_REMOTEPROC=m +CONFIG_OMAP_RESET_CLOCKS=y +CONFIG_OMAP_USB2=y +CONFIG_OMAP_USB3=m +CONFIG_OMAP_WATCHDOG=m +CONFIG_OMFS_FS=m +CONFIG_OPENVSWITCH=m +CONFIG_OPENVSWITCH_GRE=y +CONFIG_OPENVSWITCH_VXLAN=y +CONFIG_OPROFILE=m +# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set +CONFIG_OPROFILE_NMI_TIMER=y +CONFIG_OPTIMIZE_INLINING=y +CONFIG_OPTPROBES=y +CONFIG_ORE=m +CONFIG_ORINOCO_USB=m +CONFIG_OSF_PARTITION=y +CONFIG_OUTER_CACHE=y +CONFIG_OUTER_CACHE_SYNC=y +CONFIG_OVERLAYFS_FS=m +CONFIG_P54_COMMON=m +CONFIG_P54_LEDS=y +CONFIG_P54_PCI=m +CONFIG_P54_SPI=m +# CONFIG_P54_SPI_DEFAULT_EEPROM is not set +CONFIG_P54_USB=m +CONFIG_PACKET=y +CONFIG_PACKET_DIAG=m +CONFIG_PADATA=y +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_PANASONIC_LAPTOP=m +CONFIG_PANEL=m +# CONFIG_PANEL_CHANGE_MESSAGE is not set +CONFIG_PANEL_PARPORT=0 +CONFIG_PANEL_PROFILE=5 +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANTHERLORD_FF=y +CONFIG_PARAVIRT=y +CONFIG_PARAVIRT_CLOCK=y +# CONFIG_PARAVIRT_DEBUG is not set +CONFIG_PARAVIRT_SPINLOCKS=y +# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set +CONFIG_PARIDE=m +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_BPCK6=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_EPAT=m +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PG=m +CONFIG_PARIDE_PT=m +CONFIG_PARPORT=m +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_AX88796=m +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_NOT_PC=y +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_PC_FIFO=y +CONFIG_PARPORT_PC_PCMCIA=m +# CONFIG_PARPORT_PC_SUPERIO is not set +CONFIG_PARPORT_SERIAL=m +CONFIG_PARTITION_ADVANCED=y +# CONFIG_PASEMI_MAC is not set +CONFIG_PATA_ACPI=m +CONFIG_PATA_ALI=m +CONFIG_PATA_AMD=m +CONFIG_PATA_ARASAN_CF=m +CONFIG_PATA_ARTOP=m +CONFIG_PATA_ATIIXP=m +CONFIG_PATA_ATP867X=m +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_CMD64X=m +CONFIG_PATA_CS5520=m +CONFIG_PATA_CS5530=m +CONFIG_PATA_CS5535=m +CONFIG_PATA_CS5536=m +CONFIG_PATA_CYPRESS=m +CONFIG_PATA_EFAR=m +CONFIG_PATA_HPT366=m +CONFIG_PATA_HPT37X=m +CONFIG_PATA_HPT3X2N=m +CONFIG_PATA_HPT3X3=m +# CONFIG_PATA_HPT3X3_DMA is not set +# CONFIG_PATA_IMX is not set +CONFIG_PATA_ISAPNP=m +CONFIG_PATA_IT8213=m +CONFIG_PATA_IT821X=m +CONFIG_PATA_JMICRON=m +CONFIG_PATA_LEGACY=m +CONFIG_PATA_MACIO=y +CONFIG_PATA_MARVELL=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_NETCELL=m +CONFIG_PATA_NINJA32=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_NS87415=m +CONFIG_PATA_OF_PLATFORM=m +CONFIG_PATA_OLDPIIX=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_OPTIDMA=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_PDC_OLD=m +CONFIG_PATA_PLATFORM=m +CONFIG_PATA_QDI=m +CONFIG_PATA_RADISYS=m +CONFIG_PATA_RDC=m +CONFIG_PATA_RZ1000=m +CONFIG_PATA_SC1200=m +CONFIG_PATA_SCH=m +CONFIG_PATA_SERVERWORKS=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_TOSHIBA=m +CONFIG_PATA_TRIFLEX=m +CONFIG_PATA_VIA=m +CONFIG_PATA_WINBOND=m +CONFIG_PATA_WINBOND_VLB=m +CONFIG_PC300TOO=m +CONFIG_PC8736x_GPIO=m +CONFIG_PC87413_WDT=m +CONFIG_PCCARD_NONSTATIC=y +CONFIG_PCF50633_ADC=m +CONFIG_PCF50633_GPIO=m +CONFIG_PCH_CAN=m +CONFIG_PCH_DMA=m +CONFIG_PCH_GBE=m +CONFIG_PCH_PHUB=m +CONFIG_PCI=y +CONFIG_PCI200SYN=m +CONFIG_PCIEAER=y +# CONFIG_PCIEAER_INJECT is not set +CONFIG_PCIEASPM=y +# CONFIG_PCIEASPM_DEBUG is not set +CONFIG_PCIEASPM_DEFAULT=y +# CONFIG_PCIEASPM_PERFORMANCE is not set +# CONFIG_PCIEASPM_POWERSAVE is not set +CONFIG_PCIE_DW=y +# CONFIG_PCIE_ECRC is not set +CONFIG_PCIE_PME=y +CONFIG_PCIPCWATCHDOG=m +CONFIG_PCI_ATMEL=m +CONFIG_PCI_ATS=y +CONFIG_PCI_BIOS=y +# CONFIG_PCI_CNB20LE_QUIRK is not set +# CONFIG_PCI_DEBUG is not set +CONFIG_PCI_DIRECT=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_GOANY=y +# CONFIG_PCI_GOBIOS is not set +# CONFIG_PCI_GODIRECT is not set +# CONFIG_PCI_GOMMCONFIG is not set +CONFIG_PCI_IMX6=y +CONFIG_PCI_IOAPIC=y +CONFIG_PCI_IOV=y +CONFIG_PCI_LABEL=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCI_MSI=y +CONFIG_PCI_PASID=y +CONFIG_PCI_PRI=y +CONFIG_PCI_QUIRKS=y +CONFIG_PCI_REALLOC_ENABLE_AUTO=y +CONFIG_PCI_STUB=m +CONFIG_PCI_TEGRA=y +CONFIG_PCI_XEN=y +CONFIG_PCI_XGENE=y +CONFIG_PCI_XGENE_MSI=y +CONFIG_PCMCIA=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_AHA152X=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_PCMCIA_AXNET=m +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_NINJA_SCSI=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_PROBE=y +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_RAYCS=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_PCMCIA_SYM53C500=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_XIRCOM=m +CONFIG_PCNET32=m +CONFIG_PCSPKR_PLATFORM=y +CONFIG_PCWATCHDOG=m +CONFIG_PD6729=m +CONFIG_PDA_POWER=m +CONFIG_PDC_ADMA=m +CONFIG_PERCPU_RWSEM=y +CONFIG_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y +CONFIG_PHANTOM=m +CONFIG_PHONET=m +CONFIG_PHYLIB=y +CONFIG_PHYS_64BIT=y +# CONFIG_PHY_EXYNOS_MIPI_VIDEO is not set +CONFIG_PHY_XGENE=y +# CONFIG_PID_IN_CONTEXTIDR is not set +CONFIG_PID_NS=y +CONFIG_PINCONF=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_AS3722=y +CONFIG_PINCTRL_BAYTRAIL=y +CONFIG_PINCTRL_IMX=y +CONFIG_PINCTRL_IMX6Q=y +CONFIG_PINCTRL_IMX6SL=y +CONFIG_PINCTRL_PALMAS=y +CONFIG_PINCTRL_SINGLE=y +CONFIG_PINCTRL_TEGRA=y +CONFIG_PINCTRL_TEGRA114=y +CONFIG_PINCTRL_TEGRA20=y +CONFIG_PINCTRL_TEGRA30=y +CONFIG_PINCTRL_VF610=y +CONFIG_PINMUX=y +CONFIG_PL310_ERRATA_588369=y +CONFIG_PL310_ERRATA_727915=y +CONFIG_PL310_ERRATA_753970=y +CONFIG_PL310_ERRATA_769419=y +CONFIG_PL320_MBOX=y +CONFIG_PL330_DMA=m +# CONFIG_PLAT_SPEAR is not set +CONFIG_PLAT_VERSATILE=y +CONFIG_PLAT_VERSATILE_CLCD=y +CONFIG_PLAT_VERSATILE_SCHED_CLOCK=y +CONFIG_PLIP=m +CONFIG_PLX_HERMES=m +CONFIG_PM=y +CONFIG_PMAC_APM_EMU=m +CONFIG_PMAC_BACKLIGHT=y +CONFIG_PMAC_BACKLIGHT_LEGACY=y +CONFIG_PMAC_MEDIABAY=y +CONFIG_PMAC_RACKMETER=m +CONFIG_PMAC_SMU=y +CONFIG_PMBUS=m +CONFIG_PMIC_DA9052=y +CONFIG_PM_ADVANCED_DEBUG=y +# CONFIG_PM_AUTOSLEEP is not set +CONFIG_PM_CLK=y +CONFIG_PM_DEVFREQ=y +CONFIG_PM_NOTIFIER_ERROR_INJECT=m +CONFIG_PM_OPP=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_DEBUG=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_STD_PARTITION="" +# CONFIG_PM_TEST_SUSPEND is not set +CONFIG_PM_TRACE=y +CONFIG_PM_TRACE_RTC=y +CONFIG_PM_WAKELOCKS_GC=y +CONFIG_PM_WAKELOCKS_LIMIT=100 +CONFIG_PNFS_BLOCK=m +CONFIG_PNFS_FILE_LAYOUT=m +CONFIG_PNFS_OBJLAYOUT=m +CONFIG_PNP=y +CONFIG_PNPACPI=y +CONFIG_PNPBIOS=y +CONFIG_PNPBIOS_PROC_FS=y +# CONFIG_PNP_DEBUG_MESSAGES is not set +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_POWER3=y +CONFIG_POWER4=y +# CONFIG_POWER4_CPU is not set +# CONFIG_POWER5_CPU is not set +# CONFIG_POWER6_CPU is not set +CONFIG_POWERCAP=y +CONFIG_POWERNV_CPUFREQ=y +CONFIG_POWERNV_MSI=y +CONFIG_POWER_AVS=y +CONFIG_POWER_AVS_OMAP=y +CONFIG_POWER_AVS_OMAP_CLASS3=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_GPIO=y +CONFIG_POWER_RESET_RESTART=y +CONFIG_POWER_RESET_SYSCON=y +CONFIG_POWER_RESET_VEXPRESS=y +# CONFIG_POWER_RESET_XGENE is not set +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_PPA8548=y +CONFIG_PPC=y +CONFIG_PPC32=y +# CONFIG_PPC601_SYNC_FIX is not set +# CONFIG_PPC_82xx is not set +# CONFIG_PPC_83xx is not set +# CONFIG_PPC_86xx is not set +# CONFIG_PPC_8xx is not set +CONFIG_PPC_A2=y +CONFIG_PPC_ADV_DEBUG_DACS=2 +CONFIG_PPC_ADV_DEBUG_DVCS=0 +CONFIG_PPC_ADV_DEBUG_IACS=2 +CONFIG_PPC_ADV_DEBUG_REGS=y +CONFIG_PPC_BOOK3E=y +CONFIG_PPC_BOOK3E_MMU=y +CONFIG_PPC_BOOK3S=y +# CONFIG_PPC_CELLEB is not set +# CONFIG_PPC_CELL_NATIVE is not set +# CONFIG_PPC_CELL_QPACE is not set +CONFIG_PPC_CHROMA=y +CONFIG_PPC_CHRP=y +# CONFIG_PPC_CLOCK is not set +CONFIG_PPC_CORENET_CPUFREQ=m +# CONFIG_PPC_DCR_MMIO is not set +# CONFIG_PPC_DCR_NATIVE is not set +CONFIG_PPC_E500MC=y +# CONFIG_PPC_EARLY_DEBUG is not set +# CONFIG_PPC_EARLY_DEBUG_EHV_BC is not set +# CONFIG_PPC_EMULATED_STATS is not set +CONFIG_PPC_EMULATE_SSTEP=y +CONFIG_PPC_FPU=y +CONFIG_PPC_FSL_BOOK3E=y +CONFIG_PPC_HAVE_PMU_SUPPORT=y +# CONFIG_PPC_IBM_CELL_BLADE is not set +CONFIG_PPC_ICSWX_PID=y +# CONFIG_PPC_ICSWX_USE_SIGILL is not set +CONFIG_PPC_INDIRECT_PIO=y +CONFIG_PPC_IO_WORKAROUNDS=y +CONFIG_PPC_LIB_RHEAP=y +CONFIG_PPC_MMU_NOHASH=y +# CONFIG_PPC_MPC512x is not set +# CONFIG_PPC_MPC52xx is not set +CONFIG_PPC_MSI_BITMAP=y +CONFIG_PPC_NATIVE=y +CONFIG_PPC_OF=y +# CONFIG_PPC_OF_PLATFORM_PCI is not set +CONFIG_PPC_PASEMI_CPUFREQ=y +CONFIG_PPC_PASEMI_IOMMU=y +# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set +CONFIG_PPC_PASEMI_MDIO=y +CONFIG_PPC_PCI_CHOICE=y +CONFIG_PPC_PERF_CTRS=y +CONFIG_PPC_PMAC32_PSURGE=y +CONFIG_PPC_PMAC64=y +CONFIG_PPC_POWERNV=y +CONFIG_PPC_POWERNV_RTAS=y +CONFIG_PPC_PSERIES=y +CONFIG_PPC_PSR2=y +CONFIG_PPC_QEMU_E500=y +CONFIG_PPC_RTAS_DAEMON=y +CONFIG_PPC_SCOM=y +CONFIG_PPC_SMP_MUXED_IPI=y +CONFIG_PPC_STD_MMU=y +CONFIG_PPC_STD_MMU_32=y +CONFIG_PPC_STD_MMU_64=y +CONFIG_PPC_SUBPAGE_PROT=y +CONFIG_PPC_TRANSACTIONAL_MEM=y +CONFIG_PPC_UDBG_16550=y +CONFIG_PPC_WERROR=y +CONFIG_PPDEV=m +CONFIG_PPP=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_SYNC_TTY=m +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_DEBUG is not set +CONFIG_PPTP=m +# CONFIG_PQ2ADS is not set +CONFIG_PREEMPT_COUNT=y +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_NOTIFIERS=y +# CONFIG_PREEMPT_TRACER is not set +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_PRINTER=m +CONFIG_PRINTK=y +CONFIG_PRINTK_TIME=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_PRINT_STACK_DEPTH=64 +CONFIG_PRISM2_USB=m +# CONFIG_PRISM54 is not set +CONFIG_PROCESSOR_SELECT=y +CONFIG_PROC_DEVICETREE=y +CONFIG_PROC_EVENTS=y +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_VMCORE=y +# CONFIG_PROFILE_ALL_BRANCHES is not set +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +CONFIG_PROFILING=y +# CONFIG_PROVE_LOCKING is not set +# CONFIG_PROVE_RCU_DELAY is not set +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +# CONFIG_PS3GELIC_UDBG is not set +# CONFIG_PS3_ADVANCED is not set +CONFIG_PS3_DISK=m +# CONFIG_PS3_DYNAMIC_DMA is not set +CONFIG_PS3_FLASH=m +CONFIG_PS3_HTAB_SIZE=20 +CONFIG_PS3_LPM=m +CONFIG_PS3_PS3AV=y +# CONFIG_PS3_REPOSITORY_WRITE is not set +CONFIG_PS3_ROM=m +CONFIG_PS3_STORAGE=m +CONFIG_PS3_SYS_MANAGER=y +CONFIG_PS3_VRAM=m +CONFIG_PS3_VUART=y +CONFIG_PSERIES_IDLE=y +CONFIG_PSERIES_MSI=y +CONFIG_PSTORE=y +# CONFIG_PSTORE_FTRACE is not set +CONFIG_PTE_64BIT=y +CONFIG_PTP_1588_CLOCK_GIANFAR=m +CONFIG_PTP_1588_CLOCK_PCH=m +CONFIG_PUBLIC_KEY_ALGO_RSA=y +CONFIG_PVPANIC=m +CONFIG_PWM=y +# CONFIG_PWM_IMX is not set +CONFIG_PWM_PCA9685=m +CONFIG_PWM_SYSFS=y +CONFIG_PWM_TEGRA=m +# CONFIG_PWM_TIECAP is not set +# CONFIG_PWM_TIEHRPWM is not set +CONFIG_PWM_TWL=m +CONFIG_PWM_TWL_LED=m +CONFIG_QE_USB=y +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QLA3XXX=m +CONFIG_QLCNIC=m +CONFIG_QLCNIC_DCB=y +CONFIG_QLCNIC_SRIOV=y +CONFIG_QLGE=m +CONFIG_QNX4FS_FS=m +# CONFIG_QNX6FS_DEBUG is not set +CONFIG_QNX6FS_FS=m +CONFIG_QSEMI_PHY=y +# CONFIG_QUICC_ENGINE is not set +CONFIG_QUOTA=y +CONFIG_QUOTACTL=y +CONFIG_QUOTACTL_COMPAT=y +# CONFIG_QUOTA_DEBUG is not set +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_QUOTA_TREE=m +CONFIG_R3964=m +CONFIG_R6040=m +CONFIG_R8169=m +CONFIG_R8187SE=m +CONFIG_R8188EU=m +CONFIG_R8712U=m +CONFIG_R8821AE=m +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_AZTECH=m +CONFIG_RADIO_CADET=m +CONFIG_RADIO_GEMTEK=m +CONFIG_RADIO_ISA=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RADIO_MIROPCM20=m +CONFIG_RADIO_RTRACK=m +CONFIG_RADIO_RTRACK2=m +CONFIG_RADIO_SAA7706H=m +CONFIG_RADIO_SF16FMI=m +CONFIG_RADIO_SF16FMR2=m +CONFIG_RADIO_SHARK=m +CONFIG_RADIO_SHARK2=m +CONFIG_RADIO_SI470X=y +CONFIG_RADIO_SI4713=m +CONFIG_RADIO_SI476X=m +CONFIG_RADIO_TEA575X=m +CONFIG_RADIO_TEA5764=m +CONFIG_RADIO_TEF6862=m +CONFIG_RADIO_TERRATEC=m +CONFIG_RADIO_TIMBERDALE=m +CONFIG_RADIO_TRUST=m +CONFIG_RADIO_TYPHOON=m +CONFIG_RADIO_WL1273=m +CONFIG_RADIO_WL128X=m +CONFIG_RADIO_ZOLTRIX=m +CONFIG_RAID6_PQ=m +CONFIG_RAID_ATTRS=m +# CONFIG_RANDOM32_SELFTEST is not set +CONFIG_RAPIDIO=y +# CONFIG_RAPIDIO_DEBUG is not set +CONFIG_RAPIDIO_DISC_TIMEOUT=30 +CONFIG_RAPIDIO_DMA_ENGINE=y +# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set +CONFIG_RAPIDIO_ENUM_BASIC=m +CONFIG_RATIONAL=y +CONFIG_RAW_DRIVER=m +# CONFIG_RCU_BOOST is not set +# CONFIG_RCU_CPU_STALL_INFO is not set +# CONFIG_RCU_CPU_STALL_VERBOSE is not set +# CONFIG_RCU_FANOUT_EXACT is not set +CONFIG_RCU_FANOUT_LEAF=16 +CONFIG_RCU_NOCB_CPU_ALL=y +CONFIG_RCU_STALL_COMMON=y +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_TRACE is not set +CONFIG_RC_ATI_REMOTE=m +CONFIG_RC_CORE=m +CONFIG_RC_DECODERS=y +CONFIG_RC_DEVICES=y +CONFIG_RC_LOOPBACK=m +CONFIG_RC_MAP=m +CONFIG_RDS=m +# CONFIG_RDS_DEBUG is not set +CONFIG_RDS_RDMA=m +CONFIG_RDS_TCP=m +CONFIG_RD_BZIP2=y +CONFIG_RD_GZIP=y +CONFIG_RD_LZ4=y +CONFIG_RD_LZMA=y +CONFIG_RD_LZO=y +CONFIG_RD_XZ=y +# CONFIG_READABLE_ASM is not set +CONFIG_REALTEK_AUTOPM=y +CONFIG_REALTEK_PHY=y +CONFIG_REED_SOLOMON_DEC16=y +CONFIG_REED_SOLOMON_DEC8=y +CONFIG_REED_SOLOMON_ENC8=y +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_IRQ=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGMAP_SPI=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_88PM800=m +CONFIG_REGULATOR_88PM8607=y +CONFIG_REGULATOR_AAT2870=m +CONFIG_REGULATOR_AB3100=m +CONFIG_REGULATOR_AD5398=m +CONFIG_REGULATOR_ANATOP=m +CONFIG_REGULATOR_ARIZONA=m +CONFIG_REGULATOR_AS3711=m +CONFIG_REGULATOR_AS3722=m +CONFIG_REGULATOR_DA903X=m +CONFIG_REGULATOR_DA9052=m +CONFIG_REGULATOR_DA9055=m +CONFIG_REGULATOR_DA9063=m +CONFIG_REGULATOR_DA9210=m +# CONFIG_REGULATOR_DEBUG is not set +CONFIG_REGULATOR_FAN53555=m +CONFIG_REGULATOR_GPIO=m +CONFIG_REGULATOR_ISL6271A=m +CONFIG_REGULATOR_LP3971=m +CONFIG_REGULATOR_LP3972=m +CONFIG_REGULATOR_LP872X=y +CONFIG_REGULATOR_LP8755=m +CONFIG_REGULATOR_LP8788=y +CONFIG_REGULATOR_MAX1586=m +CONFIG_REGULATOR_MAX77686=m +CONFIG_REGULATOR_MAX77693=m +CONFIG_REGULATOR_MAX8649=m +CONFIG_REGULATOR_MAX8660=m +CONFIG_REGULATOR_MAX8907=m +CONFIG_REGULATOR_MAX8925=m +CONFIG_REGULATOR_MAX8952=m +CONFIG_REGULATOR_MAX8973=m +CONFIG_REGULATOR_MAX8997=m +CONFIG_REGULATOR_MAX8998=m +CONFIG_REGULATOR_MC13783=m +CONFIG_REGULATOR_MC13892=m +CONFIG_REGULATOR_MC13XXX_CORE=m +CONFIG_REGULATOR_PALMAS=m +CONFIG_REGULATOR_PCAP=m +CONFIG_REGULATOR_PCF50633=m +CONFIG_REGULATOR_PFUZE100=m +CONFIG_REGULATOR_RC5T583=m +CONFIG_REGULATOR_S5M8767=m +CONFIG_REGULATOR_TI_ABB=y +CONFIG_REGULATOR_TPS51632=m +CONFIG_REGULATOR_TPS6105X=m +CONFIG_REGULATOR_TPS62360=m +CONFIG_REGULATOR_TPS65023=m +CONFIG_REGULATOR_TPS6507X=m +CONFIG_REGULATOR_TPS65090=m +CONFIG_REGULATOR_TPS65217=m +CONFIG_REGULATOR_TPS6524X=m +CONFIG_REGULATOR_TPS6586X=m +CONFIG_REGULATOR_TPS65910=m +CONFIG_REGULATOR_TPS65912=m +CONFIG_REGULATOR_TPS80031=m +CONFIG_REGULATOR_TWL4030=y +CONFIG_REGULATOR_USERSPACE_CONSUMER=m +CONFIG_REGULATOR_VEXPRESS=m +CONFIG_REGULATOR_VIRTUAL_CONSUMER=m +CONFIG_REGULATOR_WM831X=m +CONFIG_REGULATOR_WM8350=m +CONFIG_REGULATOR_WM8400=m +CONFIG_REGULATOR_WM8994=m +# CONFIG_REISERFS_CHECK is not set +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_REISERFS_FS_XATTR=y +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_RELAY=y +CONFIG_RELOCATABLE=y +CONFIG_REMOTEPROC=m +CONFIG_RESET_CONTROLLER=y +CONFIG_RESOURCE_COUNTERS=y +CONFIG_RETU_WATCHDOG=m +CONFIG_RFD_FTL=m +CONFIG_RFKILL_GPIO=m +CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_LEDS=y +CONFIG_RFKILL_REGULATOR=m +CONFIG_RFS_ACCEL=y +CONFIG_RING_BUFFER=y +CONFIG_RING_BUFFER_ALLOW_SWAP=y +# CONFIG_RING_BUFFER_BENCHMARK is not set +# CONFIG_RING_BUFFER_STARTUP_TEST is not set +CONFIG_RIONET=m +CONFIG_RIONET_RX_SIZE=128 +CONFIG_RIONET_TX_SIZE=128 +CONFIG_ROCKETPORT=m +CONFIG_ROMFS_BACKED_BY_BLOCK=y +# CONFIG_ROMFS_BACKED_BY_BOTH is not set +# CONFIG_ROMFS_BACKED_BY_MTD is not set +CONFIG_ROMFS_FS=m +CONFIG_ROMFS_ON_BLOCK=y +CONFIG_ROSE=m +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_RPMSG=m +CONFIG_RPS=y +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT2500USB=m +CONFIG_RT2800PCI=m +CONFIG_RT2800PCI_RT3290=y +CONFIG_RT2800PCI_RT33XX=y +CONFIG_RT2800PCI_RT35XX=y +CONFIG_RT2800PCI_RT53XX=y +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT3573=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800_LIB=m +CONFIG_RT2800_LIB_MMIO=m +CONFIG_RT2X00=m +# CONFIG_RT2X00_DEBUG is not set +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_LEDS=y +CONFIG_RT2X00_LIB_MMIO=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT61PCI=m +CONFIG_RT73USB=m +CONFIG_RTAS_ERROR_LOGGING=y +CONFIG_RTAS_PROC=y +CONFIG_RTC_CLASS=y +# CONFIG_RTC_DEBUG is not set +CONFIG_RTC_DRV_88PM80X=m +CONFIG_RTC_DRV_88PM860X=m +CONFIG_RTC_DRV_AB3100=m +CONFIG_RTC_DRV_AS3722=m +CONFIG_RTC_DRV_BQ32K=m +CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_DA9052=m +CONFIG_RTC_DRV_DA9055=m +CONFIG_RTC_DRV_DS1286=m +CONFIG_RTC_DRV_DS1305=m +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_DS1374=m +CONFIG_RTC_DRV_DS1390=m +CONFIG_RTC_DRV_DS1511=m +CONFIG_RTC_DRV_DS1553=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_DS1742=m +CONFIG_RTC_DRV_DS2404=m +CONFIG_RTC_DRV_DS3234=m +CONFIG_RTC_DRV_EM3027=m +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_GENERIC=m +CONFIG_RTC_DRV_HID_SENSOR_TIME=m +# CONFIG_RTC_DRV_IMXDI is not set +CONFIG_RTC_DRV_ISL12022=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_LP8788=m +CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_M41T93=m +CONFIG_RTC_DRV_M41T94=m +CONFIG_RTC_DRV_M48T35=m +CONFIG_RTC_DRV_M48T59=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_MAX6900=m +CONFIG_RTC_DRV_MAX6902=m +CONFIG_RTC_DRV_MAX77686=m +CONFIG_RTC_DRV_MAX8907=m +CONFIG_RTC_DRV_MAX8925=m +CONFIG_RTC_DRV_MAX8997=m +CONFIG_RTC_DRV_MAX8998=m +CONFIG_RTC_DRV_MC13XXX=m +CONFIG_RTC_DRV_MOXART=m +CONFIG_RTC_DRV_MSM6242=m +# CONFIG_RTC_DRV_MXC is not set +CONFIG_RTC_DRV_OMAP=y +CONFIG_RTC_DRV_PALMAS=m +CONFIG_RTC_DRV_PCAP=m +CONFIG_RTC_DRV_PCF2123=m +CONFIG_RTC_DRV_PCF2127=m +CONFIG_RTC_DRV_PCF50633=m +CONFIG_RTC_DRV_PCF8523=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_PL030=m +CONFIG_RTC_DRV_PS3=m +CONFIG_RTC_DRV_R9701=m +CONFIG_RTC_DRV_RC5T583=m +CONFIG_RTC_DRV_RP5C01=m +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_RV3029C2=m +CONFIG_RTC_DRV_RX4581=m +CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_RX8581=m +CONFIG_RTC_DRV_S35390A=m +CONFIG_RTC_DRV_S5M=m +CONFIG_RTC_DRV_SNVS=m +CONFIG_RTC_DRV_STK17TA8=m +CONFIG_RTC_DRV_TEGRA=m +# CONFIG_RTC_DRV_TEST is not set +CONFIG_RTC_DRV_TPS6586X=m +CONFIG_RTC_DRV_TPS65910=m +CONFIG_RTC_DRV_TPS80031=m +CONFIG_RTC_DRV_TWL4030=y +CONFIG_RTC_DRV_V3020=m +CONFIG_RTC_DRV_VRTC=m +CONFIG_RTC_DRV_WM831X=m +CONFIG_RTC_DRV_WM8350=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_DRV_XGENE=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_LIB=y +CONFIG_RTC_SYSTOHC=y +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +CONFIG_RTL8188EE=m +CONFIG_RTL8192CE=m +CONFIG_RTL8192CU=m +CONFIG_RTL8192C_COMMON=m +CONFIG_RTL8192DE=m +CONFIG_RTL8192E=m +CONFIG_RTL8192SE=m +CONFIG_RTL8192U=m +CONFIG_RTL8723AE=m +CONFIG_RTL8723BE=m +CONFIG_RTL8723_COMMON=m +CONFIG_RTLBTCOEXIST=m +CONFIG_RTLLIB=m +CONFIG_RTLLIB_CRYPTO_CCMP=m +CONFIG_RTLLIB_CRYPTO_TKIP=m +CONFIG_RTLLIB_CRYPTO_WEP=m +CONFIG_RTLWIFI=m +# CONFIG_RTLWIFI_DEBUG is not set +CONFIG_RTLWIFI_PCI=m +CONFIG_RTLWIFI_USB=m +CONFIG_RTL_CARDS=m +CONFIG_RTS5139=m +# CONFIG_RTS5139_DEBUG is not set +# CONFIG_RT_GROUP_SCHED is not set +CONFIG_RT_MUTEXES=y +# CONFIG_RT_MUTEX_TESTER is not set +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_RXKAD=m +CONFIG_S2IO=m +# CONFIG_SAMPLES is not set +CONFIG_SAMSUNG_LAPTOP=m +CONFIG_SAMSUNG_Q10=m +CONFIG_SAMSUNG_USBPHY=m +CONFIG_SATA_ACARD_AHCI=m +CONFIG_SATA_AHCI=m +CONFIG_SATA_FSL=m +CONFIG_SATA_INIC162X=m +CONFIG_SATA_MV=m +CONFIG_SATA_NV=m +CONFIG_SATA_PMP=y +CONFIG_SATA_PROMISE=m +CONFIG_SATA_QSTOR=m +CONFIG_SATA_RCAR=m +CONFIG_SATA_SIL=m +CONFIG_SATA_SIL24=m +CONFIG_SATA_SIS=m +CONFIG_SATA_SX4=m +CONFIG_SATA_ULI=m +CONFIG_SATA_VIA=m +CONFIG_SATA_VITESSE=m +CONFIG_SATA_ZPODD=y +CONFIG_SBC7240_WDT=m +CONFIG_SBC8360_WDT=m +CONFIG_SBC_EPX_C3_WATCHDOG=m +CONFIG_SBC_FITPC2_WATCHDOG=m +CONFIG_SBE_2T3E3=m +CONFIG_SBE_PMCC4_NCOMM=y +CONFIG_SBNI=m +# CONFIG_SBNI_MULTILINE is not set +CONFIG_SBP_TARGET=m +CONFIG_SBYPASS=m +CONFIG_SC1200_WDT=m +CONFIG_SC520_WDT=m +CONFIG_SC92031=m +CONFIG_SCA3000=m +CONFIG_SCANLOG=m +CONFIG_SCC=m +# CONFIG_SCC_DELAY is not set +# CONFIG_SCC_TRXECHO is not set +CONFIG_SCHEDSTATS=y +CONFIG_SCHED_DEBUG=y +CONFIG_SCHED_HRTICK=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_OMIT_FRAME_POINTER=y +CONFIG_SCHED_TRACER=y +CONFIG_SCSI=y +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_3W_SAS=m +CONFIG_SCSI_7000FASST=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_AHA152X=m +CONFIG_SCSI_AHA1542=m +CONFIG_SCSI_AHA1740=m +CONFIG_SCSI_AIC79XX=m +CONFIG_SCSI_AIC7XXX=m +# CONFIG_SCSI_AIC7XXX_OLD is not set +CONFIG_SCSI_AIC94XX=m +CONFIG_SCSI_ARCMSR=m +CONFIG_SCSI_BFA_FC=m +CONFIG_SCSI_BNX2X_FCOE=m +CONFIG_SCSI_BNX2_ISCSI=m +CONFIG_SCSI_BUSLOGIC=m +CONFIG_SCSI_CHELSIO_FCOE=m +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_CXGB3_ISCSI=m +CONFIG_SCSI_CXGB4_ISCSI=m +CONFIG_SCSI_DC390T=m +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_DH=m +CONFIG_SCSI_DH_ALUA=m +CONFIG_SCSI_DH_EMC=m +CONFIG_SCSI_DH_HP_SW=m +CONFIG_SCSI_DH_RDAC=m +CONFIG_SCSI_DMA=y +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_DTC3280=m +CONFIG_SCSI_EATA=m +CONFIG_SCSI_EATA_LINKED_COMMANDS=y +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_EATA_TAGGED_QUEUE=y +CONFIG_SCSI_ENCLOSURE=m +CONFIG_SCSI_ESAS2R=m +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FC_TGT_ATTRS=y +CONFIG_SCSI_FLASHPOINT=y +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_GDTH=m +CONFIG_SCSI_GENERIC_NCR5380=m +CONFIG_SCSI_GENERIC_NCR5380_MMIO=m +CONFIG_SCSI_GENERIC_NCR53C400=y +CONFIG_SCSI_HPSA=m +CONFIG_SCSI_HPTIOP=m +CONFIG_SCSI_IBMVFC=m +CONFIG_SCSI_IBMVFC_TRACE=y +CONFIG_SCSI_IBMVSCSI=y +CONFIG_SCSI_IMM=m +CONFIG_SCSI_IN2000=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_IPR=m +CONFIG_SCSI_IPR_DUMP=y +CONFIG_SCSI_IPR_TRACE=y +CONFIG_SCSI_IPS=m +CONFIG_SCSI_ISCI=m +CONFIG_SCSI_ISCSI_ATTRS=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_LOWLEVEL=y +CONFIG_SCSI_LOWLEVEL_PCMCIA=y +CONFIG_SCSI_LPFC=m +# CONFIG_SCSI_LPFC_DEBUG_FS is not set +CONFIG_SCSI_MAC53C94=m +CONFIG_SCSI_MESH=m +CONFIG_SCSI_MESH_RESET_DELAY_MS=4000 +CONFIG_SCSI_MESH_SYNC_RATE=5 +CONFIG_SCSI_MOD=y +CONFIG_SCSI_MPT2SAS=m +# CONFIG_SCSI_MPT2SAS_LOGGING is not set +CONFIG_SCSI_MPT2SAS_MAX_SGE=128 +CONFIG_SCSI_MPT3SAS=m +# CONFIG_SCSI_MPT3SAS_LOGGING is not set +CONFIG_SCSI_MPT3SAS_MAX_SGE=128 +CONFIG_SCSI_MULTI_LUN=y +CONFIG_SCSI_MVSAS=m +# CONFIG_SCSI_MVSAS_DEBUG is not set +# CONFIG_SCSI_MVSAS_TASKLET is not set +CONFIG_SCSI_MVUMI=m +CONFIG_SCSI_NCR53C406A=m +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_NSP32=m +# CONFIG_SCSI_OSD_DEBUG is not set +CONFIG_SCSI_OSD_DPRINT_SENSE=1 +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_OSD_ULD=m +CONFIG_SCSI_PAS16=m +CONFIG_SCSI_PM8001=m +CONFIG_SCSI_PMCRAID=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_PROC_FS=y +CONFIG_SCSI_QLA_FC=m +CONFIG_SCSI_QLA_ISCSI=m +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_QLOGIC_FAS=m +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_HOST_SMP=y +CONFIG_SCSI_SAS_LIBSAS=m +CONFIG_SCSI_SCAN_ASYNC=y +CONFIG_SCSI_SIM710=m +CONFIG_SCSI_SRP=m +CONFIG_SCSI_SRP_TGT_ATTRS=y +CONFIG_SCSI_STEX=m +CONFIG_SCSI_SYM53C416=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +CONFIG_SCSI_T128=m +CONFIG_SCSI_TGT=m +CONFIG_SCSI_U14_34F=m +CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y +CONFIG_SCSI_U14_34F_MAX_TAGS=8 +CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y +CONFIG_SCSI_UFSHCD=m +CONFIG_SCSI_UFSHCD_PCI=m +CONFIG_SCSI_UFSHCD_PLATFORM=m +CONFIG_SCSI_ULTRASTOR=m +CONFIG_SCSI_VIRTIO=m +CONFIG_SCTP_COOKIE_HMAC_MD5=y +CONFIG_SCTP_COOKIE_HMAC_SHA1=y +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y +CONFIG_SCx200=m +CONFIG_SCx200HR_TIMER=m +CONFIG_SCx200_ACB=m +CONFIG_SCx200_GPIO=m +# CONFIG_SCx200_I2C is not set +CONFIG_SCx200_WDT=m +CONFIG_SDIO_UART=m +CONFIG_SDLA=m +CONFIG_SEALEVEL_4021=m +CONFIG_SECCOMP=y +CONFIG_SECCOMP_FILTER=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_APPARMOR=y +CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 +CONFIG_SECURITY_APPARMOR_HASH=y +# CONFIG_SECURITY_APPARMOR_STATS is not set +CONFIG_SECURITY_APPARMOR_UNCONFINED_INIT=y +# CONFIG_SECURITY_DMESG_RESTRICT is not set +CONFIG_SECURITY_NETWORK=y +# CONFIG_SECURITY_NETWORK_XFRM is not set +CONFIG_SECURITY_PATH=y +CONFIG_SECURITY_SELINUX=y +CONFIG_SECURITY_SELINUX_AVC_STATS=y +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_DEVELOP=y +CONFIG_SECURITY_SELINUX_DISABLE=y +# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set +CONFIG_SECURITY_SMACK=y +CONFIG_SECURITY_TOMOYO=y +CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init" +CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048 +CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024 +# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set +CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init" +CONFIG_SECURITY_YAMA=y +CONFIG_SECURITY_YAMA_STACKED=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_SENSORS_ABITUGURU=m +CONFIG_SENSORS_ABITUGURU3=m +CONFIG_SENSORS_ACPI_POWER=m +CONFIG_SENSORS_AD7314=m +CONFIG_SENSORS_AD7414=m +CONFIG_SENSORS_AD7418=m +CONFIG_SENSORS_ADCXX=m +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1029=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM1275=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADS1015=m +CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_ADS7871=m +CONFIG_SENSORS_ADT7310=m +CONFIG_SENSORS_ADT7410=m +CONFIG_SENSORS_ADT7411=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_ADT7X10=m +CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_AMS=m +# CONFIG_SENSORS_AMS_I2C is not set +# CONFIG_SENSORS_AMS_PMU is not set +CONFIG_SENSORS_APDS990X=m +CONFIG_SENSORS_APPLESMC=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ASC7621=m +CONFIG_SENSORS_ATK0110=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_BH1770=m +CONFIG_SENSORS_BH1780=m +CONFIG_SENSORS_CORETEMP=m +CONFIG_SENSORS_DA9052_ADC=m +CONFIG_SENSORS_DA9055=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_DS620=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_EMC2103=m +CONFIG_SENSORS_EMC6W201=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_FAM15H_POWER=m +CONFIG_SENSORS_FSCHMD=m +CONFIG_SENSORS_G760A=m +CONFIG_SENSORS_G762=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_GPIO_FAN=m +CONFIG_SENSORS_HDAPS=m +CONFIG_SENSORS_HIH6130=m +CONFIG_SENSORS_HMC5843=m +CONFIG_SENSORS_HTU21=m +CONFIG_SENSORS_I5K_AMB=m +CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_IIO_HWMON=m +CONFIG_SENSORS_INA209=m +CONFIG_SENSORS_INA2XX=m +CONFIG_SENSORS_ISL29018=m +CONFIG_SENSORS_ISL29028=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_JC42=m +CONFIG_SENSORS_K10TEMP=m +CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_LINEAGE=m +CONFIG_SENSORS_LIS3LV02D=m +CONFIG_SENSORS_LIS3_I2C=m +CONFIG_SENSORS_LIS3_SPI=m +CONFIG_SENSORS_LM25066=m +CONFIG_SENSORS_LM3533=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM70=m +CONFIG_SENSORS_LM73=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_LM93=m +CONFIG_SENSORS_LM95234=m +CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_LTC2978=m +CONFIG_SENSORS_LTC4151=m +CONFIG_SENSORS_LTC4215=m +CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_MAX1111=m +CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX16065=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX197=m +CONFIG_SENSORS_MAX34440=m +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6642=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_MAX6697=m +CONFIG_SENSORS_MAX8688=m +CONFIG_SENSORS_MC13783_ADC=m +CONFIG_SENSORS_MCP3021=m +CONFIG_SENSORS_NCT6775=m +CONFIG_SENSORS_NTC_THERMISTOR=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_PMBUS=m +CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_SHT15=m +CONFIG_SENSORS_SHT21=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMM665=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_THMC50=m +CONFIG_SENSORS_TMP102=m +CONFIG_SENSORS_TMP401=m +CONFIG_SENSORS_TMP421=m +CONFIG_SENSORS_TSL2550=m +CONFIG_SENSORS_TSL2563=m +CONFIG_SENSORS_TWL4030_MADC=m +CONFIG_SENSORS_UCD9000=m +CONFIG_SENSORS_UCD9200=m +CONFIG_SENSORS_VEXPRESS=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_VIA_CPUTEMP=m +CONFIG_SENSORS_VT1211=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83791D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83793=m +CONFIG_SENSORS_W83795=m +# CONFIG_SENSORS_W83795_FANCTRL is not set +CONFIG_SENSORS_W83L785TS=m +CONFIG_SENSORS_W83L786NG=m +CONFIG_SENSORS_WM831X=m +CONFIG_SENSORS_WM8350=m +CONFIG_SENSORS_ZL6100=m +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_ACCENT=m +CONFIG_SERIAL_8250_BOCA=m +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_CS=m +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_DW=m +# CONFIG_SERIAL_8250_EM is not set +CONFIG_SERIAL_8250_EXAR_ST16C554=m +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_FOURPORT=m +CONFIG_SERIAL_8250_FSL=y +CONFIG_SERIAL_8250_HUB6=m +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_NR_UARTS=48 +CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_RUNTIME_UARTS=32 +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_ALTERA_JTAGUART=m +CONFIG_SERIAL_ALTERA_UART=m +CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200 +CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4 +CONFIG_SERIAL_AMBA_PL010=m +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_ARC=m +CONFIG_SERIAL_ARC_NR_PORTS=1 +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_CPM=m +CONFIG_SERIAL_ICOM=m +# CONFIG_SERIAL_IFX6X60 is not set +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +CONFIG_SERIAL_IPOCTAL=m +CONFIG_SERIAL_JSM=m +CONFIG_SERIAL_KGDB_NMI=y +CONFIG_SERIAL_MAX3100=m +CONFIG_SERIAL_MAX310X=y +CONFIG_SERIAL_MFD_HSU=m +CONFIG_SERIAL_MRST_MAX3110=m +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_SERIAL_OMAP=y +CONFIG_SERIAL_OMAP_CONSOLE=y +CONFIG_SERIAL_PCH_UART=m +CONFIG_SERIAL_PMACZILOG=y +CONFIG_SERIAL_PMACZILOG_CONSOLE=y +# CONFIG_SERIAL_PMACZILOG_TTYS is not set +CONFIG_SERIAL_RP2=m +CONFIG_SERIAL_RP2_NR_UARTS=32 +CONFIG_SERIAL_SCCNXP=y +CONFIG_SERIAL_SCCNXP_CONSOLE=y +CONFIG_SERIAL_SH_SCI=m +CONFIG_SERIAL_SH_SCI_NR_UARTS=2 +CONFIG_SERIAL_ST_ASC=m +CONFIG_SERIAL_TEGRA=m +CONFIG_SERIAL_TIMBERDALE=m +CONFIG_SERIAL_UARTLITE=m +CONFIG_SERIAL_XILINX_PS_UART=m +CONFIG_SERIO=y +CONFIG_SERIO_AMBAKMI=m +CONFIG_SERIO_CT82C710=m +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_NVEC_PS2=m +CONFIG_SERIO_SERPORT=m +CONFIG_SFC=m +CONFIG_SFC_MCDI_MON=y +CONFIG_SFC_MTD=y +CONFIG_SFC_SRIOV=y +CONFIG_SFI=y +CONFIG_SGI_IOC4=m +CONFIG_SGI_PARTITION=y +CONFIG_SGY_CTS1000=y +CONFIG_SHMEM=y +CONFIG_SHMOBILE_IOMMU=y +# CONFIG_SHMOBILE_IOMMU_ADDRSIZE_1024MB is not set +# CONFIG_SHMOBILE_IOMMU_ADDRSIZE_128MB is not set +CONFIG_SHMOBILE_IOMMU_ADDRSIZE_2048MB=y +# CONFIG_SHMOBILE_IOMMU_ADDRSIZE_256MB is not set +# CONFIG_SHMOBILE_IOMMU_ADDRSIZE_32MB is not set +# CONFIG_SHMOBILE_IOMMU_ADDRSIZE_512MB is not set +# CONFIG_SHMOBILE_IOMMU_ADDRSIZE_64MB is not set +CONFIG_SHMOBILE_IOMMU_L1SIZE=8192 +CONFIG_SHMOBILE_IPMMU=y +CONFIG_SHMOBILE_IPMMU_TLB=y +CONFIG_SHMOBILE_TIMER_HZ=128 +CONFIG_SH_ETH=m +CONFIG_SH_TIMER_CMT=y +CONFIG_SH_TIMER_TMU=y +CONFIG_SIGMATEL_FIR=m +CONFIG_SIGNALFD=y +CONFIG_SIGNATURE=y +CONFIG_SIS190=m +CONFIG_SIS900=m +CONFIG_SKFP=m +CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set +CONFIG_SKGE_GENESIS=y +CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set +# CONFIG_SLAB is not set +CONFIG_SLABINFO=y +CONFIG_SLHC=y +CONFIG_SLICOSS=m +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_MODE_SLIP6=y +CONFIG_SLIP_SMART=y +# CONFIG_SLOB is not set +CONFIG_SLUB=y +CONFIG_SLUB_CPU_PARTIAL=y +CONFIG_SLUB_DEBUG=y +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_SMARTJOYPLUS_FF=y +CONFIG_SMC911X=m +CONFIG_SMC9194=m +CONFIG_SMC_IRCC_FIR=m +CONFIG_SMP=y +CONFIG_SMP_ON_UP=y +CONFIG_SMSC37B787_WDT=m +CONFIG_SMSC911X=m +# CONFIG_SMSC911X_ARCH_HOOKS is not set +CONFIG_SMSC9420=m +CONFIG_SMSC_PHY=y +CONFIG_SMSC_SCH311X_WDT=m +CONFIG_SMS_SDIO_DRV=m +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_SIANO_RC=y +CONFIG_SMS_USB_DRV=m +CONFIG_SM_FTL=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 +CONFIG_SND_AD1816A=m +CONFIG_SND_AD1848=m +CONFIG_SND_AD1889=m +CONFIG_SND_ADLIB=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ALOOP=m +CONFIG_SND_ALS100=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_AM33XX_SOC_EVM=m +CONFIG_SND_AOA=m +CONFIG_SND_AOA_FABRIC_LAYOUT=m +CONFIG_SND_AOA_ONYX=m +CONFIG_SND_AOA_SOUNDBUS=m +CONFIG_SND_AOA_SOUNDBUS_I2S=m +CONFIG_SND_AOA_TAS=m +CONFIG_SND_AOA_TOONIE=m +CONFIG_SND_ARM=y +CONFIG_SND_ARMAACI=m +CONFIG_SND_ASIHPI=m +CONFIG_SND_AT73C213=m +CONFIG_SND_AT73C213_TARGET_BITRATE=48000 +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_ATMEL_SOC=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AW2=m +CONFIG_SND_AZT1605=m +CONFIG_SND_AZT2316=m +CONFIG_SND_AZT2320=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMI8328=m +CONFIG_SND_CMI8330=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_CS4231=m +CONFIG_SND_CS4236=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5530=m +CONFIG_SND_CS5535AUDIO=m +CONFIG_SND_CTXFI=m +CONFIG_SND_DARLA20=m +CONFIG_SND_DARLA24=m +CONFIG_SND_DAVINCI_SOC=m +CONFIG_SND_DAVINCI_SOC_MCASP=m +CONFIG_SND_DEBUG=y +# CONFIG_SND_DEBUG_VERBOSE is not set +CONFIG_SND_DESIGNWARE_I2S=m +CONFIG_SND_DICE=m +CONFIG_SND_DMAENGINE_PCM=y +CONFIG_SND_DMA_SGBUF=y +CONFIG_SND_DRIVERS=y +CONFIG_SND_DUMMY=m +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_ECHO3G=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1688=m +CONFIG_SND_ES18XX=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_ES1968_INPUT=y +CONFIG_SND_ES1968_RADIO=y +CONFIG_SND_FIREWIRE=y +CONFIG_SND_FIREWIRE_LIB=m +CONFIG_SND_FIREWIRE_SPEAKERS=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_GINA20=m +CONFIG_SND_GINA24=m +CONFIG_SND_GUSCLASSIC=m +CONFIG_SND_GUSEXTREME=m +CONFIG_SND_GUSMAX=m +CONFIG_SND_HDA_CODEC_ANALOG=y +CONFIG_SND_HDA_CODEC_CA0110=y +CONFIG_SND_HDA_CODEC_CA0132=y +CONFIG_SND_HDA_CODEC_CA0132_DSP=y +CONFIG_SND_HDA_CODEC_CIRRUS=y +CONFIG_SND_HDA_CODEC_CMEDIA=y +CONFIG_SND_HDA_CODEC_CONEXANT=y +CONFIG_SND_HDA_CODEC_HDMI=y +CONFIG_SND_HDA_CODEC_REALTEK=y +CONFIG_SND_HDA_CODEC_SI3054=y +CONFIG_SND_HDA_CODEC_SIGMATEL=y +CONFIG_SND_HDA_CODEC_VIA=y +CONFIG_SND_HDA_DSP_LOADER=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_I915=y +CONFIG_SND_HDA_INPUT_BEEP=y +CONFIG_SND_HDA_INPUT_BEEP_MODE=0 +CONFIG_SND_HDA_INPUT_JACK=y +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDA_PATCH_LOADER=y +CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 +CONFIG_SND_HDA_PREALLOC_SIZE=64 +CONFIG_SND_HDA_RECONFIG=y +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_HRTIMER=m +CONFIG_SND_HWDEP=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_IMX_SOC=y +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_INDIGODJX=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INDIGOIOX=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_INTERWAVE=m +CONFIG_SND_INTERWAVE_STB=m +CONFIG_SND_ISA=y +CONFIG_SND_ISIGHT=m +CONFIG_SND_JACK=y +CONFIG_SND_JAZZ16=m +CONFIG_SND_KCTL_JACK=y +CONFIG_SND_KORG1212=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_LOLA=m +CONFIG_SND_LX6464ES=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MAESTRO3_INPUT=y +CONFIG_SND_MAX_CARDS=32 +CONFIG_SND_MFLD_MACHINE=m +CONFIG_SND_MIA=m +CONFIG_SND_MIRO=m +CONFIG_SND_MIXART=m +# CONFIG_SND_MIXER_OSS is not set +CONFIG_SND_MONA=m +CONFIG_SND_MPU401=m +CONFIG_SND_MPU401_UART=m +CONFIG_SND_MSND_CLASSIC=m +CONFIG_SND_MSND_PINNACLE=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_NM256=m +CONFIG_SND_OMAP_SOC=y +CONFIG_SND_OMAP_SOC_DMIC=y +CONFIG_SND_OMAP_SOC_HDMI=y +CONFIG_SND_OMAP_SOC_MCBSP=y +CONFIG_SND_OMAP_SOC_MCPDM=y +CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m +CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=y +CONFIG_SND_OMAP_SOC_OMAP_HDMI=y +CONFIG_SND_OMAP_SOC_OMAP_TWL4030=y +CONFIG_SND_OPL3SA2=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_OPL4_LIB=m +CONFIG_SND_OPTI92X_AD1848=m +CONFIG_SND_OPTI92X_CS4231=m +CONFIG_SND_OPTI93X=m +CONFIG_SND_OXYGEN=m +CONFIG_SND_OXYGEN_LIB=m +CONFIG_SND_PCI=y +CONFIG_SND_PCMCIA=y +# CONFIG_SND_PCM_OSS is not set +CONFIG_SND_PCM_XRUN_DEBUG=y +CONFIG_SND_PCSP=m +CONFIG_SND_PCXHR=m +CONFIG_SND_PDAUDIOCF=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_POWERMAC=m +CONFIG_SND_POWERMAC_AUTO_DRC=y +CONFIG_SND_POWERPC_SOC=m +CONFIG_SND_PPC=y +CONFIG_SND_PS3=m +CONFIG_SND_PS3_DEFAULT_START_DELAY=2000 +CONFIG_SND_RAWMIDI=m +CONFIG_SND_RAWMIDI_SEQ=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SB16=m +CONFIG_SND_SB16_CSP=y +CONFIG_SND_SB16_DSP=m +CONFIG_SND_SB8=m +CONFIG_SND_SB8_DSP=m +CONFIG_SND_SBAWE=m +CONFIG_SND_SB_COMMON=m +CONFIG_SND_SC6000=m +CONFIG_SND_SCS1X=m +CONFIG_SND_SEQUENCER=m +# CONFIG_SND_SEQUENCER_OSS is not set +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_SIMPLE_CARD=m +CONFIG_SND_SIS7019=m +CONFIG_SND_SOC_AC97_BUS=y +CONFIG_SND_SOC_ALC5632=m +CONFIG_SND_SOC_DMIC=y +CONFIG_SND_SOC_FSL_SPDIF=m +CONFIG_SND_SOC_FSL_UTILS=m +CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y +CONFIG_SND_SOC_HDMI_CODEC=y +CONFIG_SND_SOC_IMX_AUDMUX=y +CONFIG_SND_SOC_IMX_MC13783=m +CONFIG_SND_SOC_IMX_PCM_DMA=y +CONFIG_SND_SOC_IMX_SGTL5000=y +CONFIG_SND_SOC_IMX_SPDIF=m +CONFIG_SND_SOC_IMX_SSI=m +CONFIG_SND_SOC_IMX_WM8962=m +CONFIG_SND_SOC_MC13783=m +CONFIG_SND_SOC_P1022_DS=m +CONFIG_SND_SOC_P1022_RDK=m +CONFIG_SND_SOC_POWERPC_DMA=m +CONFIG_SND_SOC_RT5640=m +CONFIG_SND_SOC_SGTL5000=y +CONFIG_SND_SOC_SI476X=m +CONFIG_SND_SOC_SN95031=m +CONFIG_SND_SOC_SPDIF=m +CONFIG_SND_SOC_TEGRA=m +CONFIG_SND_SOC_TEGRA20_AC97=m +CONFIG_SND_SOC_TEGRA20_DAS=m +CONFIG_SND_SOC_TEGRA20_I2S=m +CONFIG_SND_SOC_TEGRA20_SPDIF=m +CONFIG_SND_SOC_TEGRA30_AHUB=m +CONFIG_SND_SOC_TEGRA30_I2S=m +CONFIG_SND_SOC_TEGRA_ALC5632=m +CONFIG_SND_SOC_TEGRA_RT5640=m +CONFIG_SND_SOC_TEGRA_TRIMSLICE=m +CONFIG_SND_SOC_TEGRA_WM8753=m +CONFIG_SND_SOC_TEGRA_WM8903=m +CONFIG_SND_SOC_TEGRA_WM9712=m +CONFIG_SND_SOC_TLV320AIC23=m +CONFIG_SND_SOC_TLV320AIC3X=m +CONFIG_SND_SOC_TWL4030=y +CONFIG_SND_SOC_TWL6040=y +CONFIG_SND_SOC_WM8753=m +CONFIG_SND_SOC_WM8776=m +CONFIG_SND_SOC_WM8903=m +CONFIG_SND_SOC_WM8960=m +CONFIG_SND_SOC_WM8962=m +CONFIG_SND_SOC_WM9712=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_SPI=y +CONFIG_SND_SSCAPE=m +CONFIG_SND_SST_PLATFORM=m +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_TRIDENT=m +CONFIG_SND_USB=y +CONFIG_SND_USB_6FIRE=m +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_HIFACE=m +CONFIG_SND_USB_UA101=m +CONFIG_SND_USB_US122L=m +CONFIG_SND_USB_USX2Y=m +# CONFIG_SND_VERBOSE_PRINTK is not set +CONFIG_SND_VERBOSE_PROCFS=y +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_VIRTUOSO=m +CONFIG_SND_VMASTER=y +CONFIG_SND_VX222=m +CONFIG_SND_VXPOCKET=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_WAVEFRONT=m +CONFIG_SND_WSS_LIB=m +CONFIG_SND_YMFPCI=m +# CONFIG_SOC_AM43XX is not set +CONFIG_SOC_BUS=y +CONFIG_SOC_CAMERA=m +CONFIG_SOC_CAMERA_IMX074=m +CONFIG_SOC_CAMERA_MT9M001=m +CONFIG_SOC_CAMERA_MT9M111=m +CONFIG_SOC_CAMERA_MT9T031=m +CONFIG_SOC_CAMERA_MT9T112=m +CONFIG_SOC_CAMERA_MT9V022=m +CONFIG_SOC_CAMERA_OV2640=m +CONFIG_SOC_CAMERA_OV5642=m +CONFIG_SOC_CAMERA_OV6650=m +CONFIG_SOC_CAMERA_OV772X=m +CONFIG_SOC_CAMERA_OV9640=m +CONFIG_SOC_CAMERA_OV9740=m +CONFIG_SOC_CAMERA_PLATFORM=m +CONFIG_SOC_CAMERA_RJ54N1=m +CONFIG_SOC_CAMERA_SCALE_CROP=m +CONFIG_SOC_CAMERA_TW9910=m +CONFIG_SOC_DRA7XX=y +CONFIG_SOC_HAS_OMAP2_SDRC=y +CONFIG_SOC_HAS_REALTIME_COUNTER=y +# CONFIG_SOC_IMX53 is not set +CONFIG_SOC_IMX6Q=y +CONFIG_SOC_IMX6SL=y +CONFIG_SOC_OMAP3430=y +# CONFIG_SOC_OMAP5 is not set +CONFIG_SOC_TI81XX=y +CONFIG_SOC_VF610=y +CONFIG_SOFT_WATCHDOG=m +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_SOLO6X10=m +CONFIG_SONYPI=m +CONFIG_SONYPI_COMPAT=y +CONFIG_SONY_FF=y +CONFIG_SONY_LAPTOP=m +# CONFIG_SOUND_OSS_CORE is not set +# CONFIG_SOUND_PRIME is not set +CONFIG_SP5100_TCO=m +CONFIG_SPARSEMEM=y +CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_STATIC=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSE_IRQ=y +# CONFIG_SPARSE_RCU_POINTER is not set +CONFIG_SPEAKUP=m +CONFIG_SPEAKUP_SYNTH_ACNTPC=m +CONFIG_SPEAKUP_SYNTH_ACNTSA=m +CONFIG_SPEAKUP_SYNTH_APOLLO=m +CONFIG_SPEAKUP_SYNTH_AUDPTR=m +CONFIG_SPEAKUP_SYNTH_BNS=m +CONFIG_SPEAKUP_SYNTH_DECEXT=m +CONFIG_SPEAKUP_SYNTH_DECPC=m +CONFIG_SPEAKUP_SYNTH_DECTLK=m +CONFIG_SPEAKUP_SYNTH_DTLK=m +CONFIG_SPEAKUP_SYNTH_DUMMY=m +CONFIG_SPEAKUP_SYNTH_KEYPC=m +CONFIG_SPEAKUP_SYNTH_LTLK=m +CONFIG_SPEAKUP_SYNTH_SOFT=m +CONFIG_SPEAKUP_SYNTH_SPKOUT=m +CONFIG_SPEAKUP_SYNTH_TXPRT=m +CONFIG_SPI=y +CONFIG_SPI_ALTERA=m +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_DESIGNWARE=m +CONFIG_SPI_DW_MID_DMA=y +CONFIG_SPI_DW_MMIO=m +CONFIG_SPI_DW_PCI=m +CONFIG_SPI_FSL_CPM=y +CONFIG_SPI_FSL_DSPI=m +CONFIG_SPI_FSL_ESPI=y +CONFIG_SPI_FSL_LIB=y +CONFIG_SPI_FSL_SPI=y +CONFIG_SPI_GPIO=m +CONFIG_SPI_IMX=m +CONFIG_SPI_LM70_LLP=m +CONFIG_SPI_MASTER=y +CONFIG_SPI_OC_TINY=m +CONFIG_SPI_OMAP24XX=y +CONFIG_SPI_PL022=m +CONFIG_SPI_PXA2XX=m +CONFIG_SPI_PXA2XX_DMA=y +CONFIG_SPI_SC18IS602=m +CONFIG_SPI_SPIDEV=m +CONFIG_SPI_TEGRA114=m +CONFIG_SPI_TEGRA20_SFLASH=m +CONFIG_SPI_TEGRA20_SLINK=m +CONFIG_SPI_TI_QSPI=m +CONFIG_SPI_TLE62X0=m +CONFIG_SPI_TOPCLIFF_PCH=m +CONFIG_SPI_XCOMM=m +# CONFIG_SPI_XILINX is not set +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_SPU_BASE=y +CONFIG_SPU_FS=m +CONFIG_SPU_FS_64K_LS=y +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set +# CONFIG_SQUASHFS_DECOMP_MULTI is not set +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +CONFIG_SQUASHFS_LZO=y +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_XZ=y +CONFIG_SQUASHFS_ZLIB=y +CONFIG_SSB=m +CONFIG_SSB_B43_PCI_BRIDGE=y +CONFIG_SSB_BLOCKIO=y +# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_GPIO=y +CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_PCIHOST=y +CONFIG_SSB_PCIHOST_POSSIBLE=y +# CONFIG_SSB_PCMCIAHOST is not set +CONFIG_SSB_PCMCIAHOST_POSSIBLE=y +CONFIG_SSB_POSSIBLE=y +CONFIG_SSB_SDIOHOST=y +CONFIG_SSB_SDIOHOST_POSSIBLE=y +# CONFIG_SSB_SILENT is not set +CONFIG_SSB_SPROM=y +CONFIG_SSFDC=m +CONFIG_STACKTRACE=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_STAGING_MEDIA=y +CONFIG_STE10XP=y +CONFIG_STE_MODEM_RPROC=m +# CONFIG_STMMAC_DA is not set +# CONFIG_STMMAC_DEBUG_FS is not set +CONFIG_STMMAC_ETH=m +# CONFIG_STMMAC_PCI is not set +CONFIG_STMMAC_PLATFORM=y +CONFIG_STMPE_I2C=y +CONFIG_STMPE_SPI=y +CONFIG_STMP_DEVICE=y +CONFIG_STOP_MACHINE=y +CONFIG_STP=m +CONFIG_STRICT_DEVMEM=y +# CONFIG_STRIP_ASM_SYMS is not set +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_SUNGEM=m +CONFIG_SUNGEM_PHY=m +CONFIG_SUNRPC=m +CONFIG_SUNRPC_BACKCHANNEL=y +CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_SWAP=y +CONFIG_SUNRPC_XPRT_RDMA=m +CONFIG_SUN_PARTITION=y +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_SWAP=y +CONFIG_SWIOTLB_XEN=y +CONFIG_SWP_EMULATE=y +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_CS=m +CONFIG_SYNCLINK_GT=m +CONFIG_SYN_COOKIES=y +CONFIG_SYSCTL=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_SYSFS=y +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_SYSV68_PARTITION=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_SYSV_FS=m +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_SYS_SUPPORTS_HUGETLBFS=y +CONFIG_TABLET_USB_ACECAD=m +CONFIG_TABLET_USB_AIPTEK=m +CONFIG_TABLET_USB_GTCO=m +CONFIG_TABLET_USB_HANWANG=m +CONFIG_TABLET_USB_KBTAB=m +CONFIG_TABLET_USB_WACOM=m +CONFIG_TARGET_CORE=m +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_TASK_SIZE=0xc0000000 +CONFIG_TASK_XACCT=y +CONFIG_TAU=y +# CONFIG_TAU_AVERAGE is not set +# CONFIG_TAU_INT is not set +CONFIG_TC1100_WMI=m +CONFIG_TCG_ATMEL=m +CONFIG_TCG_INFINEON=m +CONFIG_TCG_NSC=m +CONFIG_TCG_ST33_I2C=m +CONFIG_TCG_TIS=y +CONFIG_TCG_TIS_I2C_ATMEL=m +CONFIG_TCG_TIS_I2C_INFINEON=m +CONFIG_TCG_TIS_I2C_NUVOTON=m +CONFIG_TCG_TPM=y +CONFIG_TCG_XEN=m +CONFIG_TCIC=m +CONFIG_TCM_FC=m +CONFIG_TCM_FILEIO=m +CONFIG_TCM_IBLOCK=m +CONFIG_TCM_PSCSI=m +CONFIG_TCM_QLA2XXX=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BIC=m +CONFIG_TCP_CONG_CUBIC=y +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_ILLINOIS=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_MD5SIG=y +CONFIG_TCS3472=m +CONFIG_TEGRA20_APB_DMA=y +CONFIG_TEGRA20_MC=y +CONFIG_TEGRA30_MC=y +CONFIG_TEGRA_AHB=y +CONFIG_TEGRA_EMC_SCALING_ENABLE=y +CONFIG_TEGRA_HOST1X=m +CONFIG_TEGRA_HOST1X_FIREWALL=y +CONFIG_TEGRA_IOMMU_GART=y +CONFIG_TEGRA_IOMMU_SMMU=y +CONFIG_TEHUTI=m +CONFIG_TEKRAM_DONGLE=m +CONFIG_TELCLOCK=m +# CONFIG_TEST_LIST_SORT is not set +CONFIG_TEST_POWER=m +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_TEXTSEARCH_KMP=m +CONFIG_THERMAL=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +CONFIG_THERMAL_EMULATION=y +CONFIG_THERMAL_GOV_FAIR_SHARE=y +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_GOV_USER_SPACE=y +CONFIG_THERMAL_HWMON=y +CONFIG_THERM_ADT746X=y +CONFIG_THERM_PM72=m +CONFIG_THERM_WINDTUNNEL=m +CONFIG_THINKPAD_ACPI=m +CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y +# CONFIG_THINKPAD_ACPI_DEBUG is not set +CONFIG_THINKPAD_ACPI_DEBUGFACILITIES=y +CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y +# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set +CONFIG_THINKPAD_ACPI_VIDEO=y +CONFIG_THRUSTMASTER_FF=y +# CONFIG_THUMB2_KERNEL is not set +CONFIG_TICK_ONESHOT=y +CONFIG_TIFM_7XX1=m +CONFIG_TIFM_CORE=m +CONFIG_TIMB_DMA=m +CONFIG_TIMERFD=y +CONFIG_TIPC=m +CONFIG_TIPC_MEDIA_IB=y +CONFIG_TIPC_PORTS=8191 +CONFIG_TI_ADC081C=m +CONFIG_TI_AM335X_ADC=m +CONFIG_TI_CPPI41=m +CONFIG_TI_CPSW=y +CONFIG_TI_CPSW_PHY_SEL=y +CONFIG_TI_CPTS=y +CONFIG_TI_DAC7512=m +CONFIG_TI_DAVINCI_CPDMA=y +CONFIG_TI_DAVINCI_EMAC=m +CONFIG_TI_DAVINCI_MDIO=y +CONFIG_TI_EDMA=y +CONFIG_TI_EMIF=m +CONFIG_TI_PRIV_EDMA=y +CONFIG_TI_SOC_THERMAL=m +CONFIG_TI_ST=m +CONFIG_TI_THERMAL=y +CONFIG_TLAN=m +CONFIG_TMD_HERMES=m +CONFIG_TMP006=m +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +CONFIG_TOIM3232_DONGLE=m +CONFIG_TOPSTAR_LAPTOP=m +# CONFIG_TOSHIBA is not set +CONFIG_TOSHIBA_BT_RFKILL=m +CONFIG_TOSHIBA_FIR=m +CONFIG_TOUCHSCREEN_88PM860X=m +CONFIG_TOUCHSCREEN_AD7877=m +CONFIG_TOUCHSCREEN_AD7879=m +CONFIG_TOUCHSCREEN_AD7879_I2C=m +CONFIG_TOUCHSCREEN_AD7879_SPI=m +CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_ATMEL_MXT=m +CONFIG_TOUCHSCREEN_AUO_PIXCIR=m +CONFIG_TOUCHSCREEN_BU21013=m +CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m +CONFIG_TOUCHSCREEN_CY8CTMG110=m +CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m +CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m +CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m +CONFIG_TOUCHSCREEN_CYTTSP_CORE=m +CONFIG_TOUCHSCREEN_CYTTSP_I2C=m +CONFIG_TOUCHSCREEN_CYTTSP_SPI=m +CONFIG_TOUCHSCREEN_DA9034=m +CONFIG_TOUCHSCREEN_DA9052=m +CONFIG_TOUCHSCREEN_DYNAPRO=m +CONFIG_TOUCHSCREEN_EDT_FT5X06=m +CONFIG_TOUCHSCREEN_EETI=m +CONFIG_TOUCHSCREEN_EGALAX=m +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_FUJITSU=m +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_HAMPSHIRE=m +CONFIG_TOUCHSCREEN_HTCPEN=m +CONFIG_TOUCHSCREEN_ILI210X=m +CONFIG_TOUCHSCREEN_INEXIO=m +CONFIG_TOUCHSCREEN_INTEL_MID=m +CONFIG_TOUCHSCREEN_MAX11801=m +CONFIG_TOUCHSCREEN_MC13783=m +CONFIG_TOUCHSCREEN_MCS5000=m +CONFIG_TOUCHSCREEN_MK712=m +CONFIG_TOUCHSCREEN_MMS114=m +CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TOUCHSCREEN_PCAP=m +CONFIG_TOUCHSCREEN_PENMOUNT=m +CONFIG_TOUCHSCREEN_PIXCIR=m +CONFIG_TOUCHSCREEN_ST1232=m +CONFIG_TOUCHSCREEN_STMPE=m +CONFIG_TOUCHSCREEN_SUR40=m +CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m +CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m +CONFIG_TOUCHSCREEN_TOUCHIT213=m +CONFIG_TOUCHSCREEN_TOUCHRIGHT=m +CONFIG_TOUCHSCREEN_TOUCHWIN=m +CONFIG_TOUCHSCREEN_TPS6507X=m +CONFIG_TOUCHSCREEN_TSC2005=m +CONFIG_TOUCHSCREEN_TSC2007=m +CONFIG_TOUCHSCREEN_TSC_SERIO=m +CONFIG_TOUCHSCREEN_UCB1400=m +CONFIG_TOUCHSCREEN_USB_3M=y +CONFIG_TOUCHSCREEN_USB_COMPOSITE=m +CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y +CONFIG_TOUCHSCREEN_USB_E2I=y +CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y +CONFIG_TOUCHSCREEN_USB_EGALAX=y +CONFIG_TOUCHSCREEN_USB_ELO=y +CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y +CONFIG_TOUCHSCREEN_USB_ETURBO=y +CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y +CONFIG_TOUCHSCREEN_USB_GOTOP=y +CONFIG_TOUCHSCREEN_USB_GUNZE=y +CONFIG_TOUCHSCREEN_USB_IDEALTEK=y +CONFIG_TOUCHSCREEN_USB_IRTOUCH=y +CONFIG_TOUCHSCREEN_USB_ITM=y +CONFIG_TOUCHSCREEN_USB_JASTEC=y +CONFIG_TOUCHSCREEN_USB_NEXIO=y +CONFIG_TOUCHSCREEN_USB_PANJIT=y +CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y +CONFIG_TOUCHSCREEN_W90X900=m +CONFIG_TOUCHSCREEN_WACOM_I2C=m +CONFIG_TOUCHSCREEN_WACOM_W8001=m +CONFIG_TOUCHSCREEN_WM831X=m +CONFIG_TOUCHSCREEN_WM9705=y +CONFIG_TOUCHSCREEN_WM9712=y +CONFIG_TOUCHSCREEN_WM9713=y +CONFIG_TOUCHSCREEN_WM97XX=m +CONFIG_TOUCHSCREEN_ZFORCE=m +CONFIG_TPS6105X=m +CONFIG_TPS65010=m +CONFIG_TPS6507X=m +CONFIG_TQM85xx=y +CONFIG_TRACEPOINTS=y +CONFIG_TRACER_MAX_TRACE=y +CONFIG_TRACER_SNAPSHOT=y +# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set +CONFIG_TRACE_CLOCK=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_TRACE_ROUTER=m +CONFIG_TRACE_SINK=m +CONFIG_TRACING=y +CONFIG_TRACING_SUPPORT=y +CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y +# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set +CONFIG_TRANZPORT=m +CONFIG_TREE_PREEMPT_RCU=y +CONFIG_TREE_RCU=y +# CONFIG_TREE_RCU_TRACE is not set +CONFIG_TRUSTED_KEYS=y +CONFIG_TSL2583=m +CONFIG_TSL2x7x=m +CONFIG_TSL4531=m +CONFIG_TTPCI_EEPROM=m +CONFIG_TTY=y +CONFIG_TTY_PRINTK=y +CONFIG_TULIP=m +# CONFIG_TULIP_MMIO is not set +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_NAPI is not set +CONFIG_TUN=y +# CONFIG_TUNE_CELL is not set +CONFIG_TWL4030_MADC=m +CONFIG_TWL4030_POWER=y +CONFIG_TWL4030_USB=m +CONFIG_TWL4030_WATCHDOG=m +CONFIG_TWL6030_GPADC=m +CONFIG_TWL6030_USB=m +CONFIG_TYPHOON=m +# CONFIG_UACCESS_WITH_MEMCPY is not set +CONFIG_UBIFS_FS=m +# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_ZLIB=y +CONFIG_UCB1400_CORE=m +CONFIG_UCS2_STRING=y +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y +CONFIG_UEFI_CPER=y +CONFIG_UEVENT_HELPER_PATH="" +# CONFIG_UFS_DEBUG is not set +CONFIG_UFS_FS=m +# CONFIG_UFS_FS_WRITE is not set +CONFIG_UHID=m +CONFIG_UID16=y +CONFIG_UIDGID_STRICT_TYPE_CHECKS=y +CONFIG_UIO=m +CONFIG_ULI526X=m +CONFIG_ULTRA=m +CONFIG_ULTRIX_PARTITION=y +CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" +CONFIG_UNINLINE_SPIN_UNLOCK=y +CONFIG_UNIX=y +CONFIG_UNIX98_PTYS=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_UNIX_DIAG=m +CONFIG_UPROBES=y +CONFIG_UPROBE_EVENT=y +CONFIG_USB=y +CONFIG_USBIP_CORE=m +# CONFIG_USBIP_DEBUG is not set +CONFIG_USBIP_HOST=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBPCWATCHDOG=m +CONFIG_USB_ACM=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AMD5536UDC=m +CONFIG_USB_AN2720=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_ATM=m +CONFIG_USB_AUDIO=m +CONFIG_USB_BELKIN=y +CONFIG_USB_BTMTK=m +CONFIG_USB_CDC_COMPOSITE=m +CONFIG_USB_CDC_PHONET=m +# CONFIG_USB_CHIPIDEA_DEBUG is not set +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_COMMON=y +CONFIG_USB_CONFIGFS=m +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_OBEX=y +CONFIG_USB_CONFIGFS_PHONET=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CXACRU=m +# CONFIG_USB_DEBUG is not set +CONFIG_USB_DEFAULT_PERSIST=y +CONFIG_USB_DSBR=m +# CONFIG_USB_DUMMY_HCD is not set +CONFIG_USB_DWC2=m +# CONFIG_USB_DWC2_DEBUG is not set +# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set +# CONFIG_USB_DWC3_DEBUG is not set +CONFIG_USB_DWC3_DUAL_ROLE=y +# CONFIG_USB_DWC3_EXYNOS is not set +# CONFIG_USB_DWC3_GADGET is not set +# CONFIG_USB_DWC3_HOST is not set +CONFIG_USB_DWC3_PCI=m +CONFIG_USB_EG20T=m +CONFIG_USB_EHCI_BIG_ENDIAN_DESC=y +CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y +CONFIG_USB_EHCI_FSL=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD_OMAP=y +# CONFIG_USB_EHCI_MXC is not set +CONFIG_USB_EHCI_PCI=y +CONFIG_USB_EHCI_TEGRA=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_ENESTORAGE=m +CONFIG_USB_EPSON2888=y +CONFIG_USB_ETH=m +CONFIG_USB_ETH_EEM=y +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_FOTG210_UDC=m +CONFIG_USB_FSL_MPH_DR_OF=y +CONFIG_USB_FSL_QE=m +CONFIG_USB_FUNCTIONFS=m +CONFIG_USB_FUNCTIONFS_ETH=y +CONFIG_USB_FUNCTIONFS_GENERIC=y +CONFIG_USB_FUNCTIONFS_RNDIS=y +CONFIG_USB_FUSB300=m +CONFIG_USB_F_ACM=m +CONFIG_USB_F_ECM=m +CONFIG_USB_F_EEM=m +CONFIG_USB_F_MASS_STORAGE=m +CONFIG_USB_F_NCM=m +CONFIG_USB_F_OBEX=m +CONFIG_USB_F_PHONET=m +CONFIG_USB_F_RNDIS=m +CONFIG_USB_F_SERIAL=m +CONFIG_USB_F_SS_LB=m +CONFIG_USB_F_SUBSET=m +CONFIG_USB_GADGETFS=m +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_DEBUG_FS is not set +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 +CONFIG_USB_GADGET_TARGET=m +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GL860=m +CONFIG_USB_GOKU=m +CONFIG_USB_GPIO_VBUS=m +CONFIG_USB_GSPCA=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +CONFIG_USB_GSPCA_STK1135=m +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TOPRO=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_G_ACM_MS=m +CONFIG_USB_G_DBGP=m +# CONFIG_USB_G_DBGP_PRINTK is not set +CONFIG_USB_G_DBGP_SERIAL=y +CONFIG_USB_G_HID=m +CONFIG_USB_G_MULTI_CDC=y +CONFIG_USB_G_MULTI_RNDIS=y +CONFIG_USB_G_NCM=m +CONFIG_USB_G_NOKIA=m +CONFIG_USB_G_PRINTER=m +CONFIG_USB_G_SERIAL=m +CONFIG_USB_G_WEBCAM=m +# CONFIG_USB_HCD_TEST_MODE is not set +CONFIG_USB_HID=m +CONFIG_USB_HIDDEV=y +CONFIG_USB_HSO=m +CONFIG_USB_HWA_HCD=m +# CONFIG_USB_IMX21_HCD is not set +CONFIG_USB_INVENTRA_DMA=y +CONFIG_USB_IRDA=m +CONFIG_USB_KBD=m +CONFIG_USB_KC2190=y +CONFIG_USB_KEENE=m +CONFIG_USB_LIBCOMPOSITE=m +CONFIG_USB_M5602=m +# CONFIG_USB_M66592 is not set +CONFIG_USB_MA901=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_MIDI_GADGET=m +CONFIG_USB_MON=m +CONFIG_USB_MOUSE=m +CONFIG_USB_MR800=m +CONFIG_USB_MSI3101=m +CONFIG_USB_MUSB_AM335X_CHILD=m +# CONFIG_USB_MUSB_AM35X is not set +CONFIG_USB_MUSB_DUAL_ROLE=y +# CONFIG_USB_MUSB_GADGET is not set +# CONFIG_USB_MUSB_HOST is not set +CONFIG_USB_MUSB_OMAP2PLUS=m +CONFIG_USB_MUSB_UX500=m +CONFIG_USB_MV_U3D=m +CONFIG_USB_MV_UDC=m +CONFIG_USB_MXS_PHY=y +CONFIG_USB_NET2272=m +CONFIG_USB_NET2272_DMA=y +CONFIG_USB_NET2280=m +CONFIG_USB_NET_AX88179_178A=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_MBIM=m +CONFIG_USB_NET_CDC_NCM=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_NET_CX82310_ETH=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_HUAWEI_CDC_NCM=m +CONFIG_USB_NET_INT51X1=m +CONFIG_USB_NET_KALMIA=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_QMI_WWAN=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_RNDIS_WLAN=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_SR9700=m +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y +CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_OMAP3=y +CONFIG_USB_OHCI_HCD_PCI=y +# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +# CONFIG_USB_OTG_WHITELIST is not set +CONFIG_USB_PHY=y +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_USB_PXA27X=m +CONFIG_USB_R8A66597=m +CONFIG_USB_RENESAS_USBHS=m +CONFIG_USB_RENESAS_USBHS_HCD=m +CONFIG_USB_RENESAS_USBHS_UDC=m +CONFIG_USB_S2255=m +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_DEBUG=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_F81232=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_IUU=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KEYSPAN_MPR=y +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN_USA18X=y +CONFIG_USB_SERIAL_KEYSPAN_USA19=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y +CONFIG_USB_SERIAL_KEYSPAN_USA19W=y +CONFIG_USB_SERIAL_KEYSPAN_USA28=y +CONFIG_USB_SERIAL_KEYSPAN_USA28X=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y +CONFIG_USB_SERIAL_KEYSPAN_USA49W=y +CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_METRO=m +CONFIG_USB_SERIAL_MOS7715_PARPORT=y +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_OPTICON=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_OTI6858=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_QCAUX=m +CONFIG_USB_SERIAL_QT2=m +CONFIG_USB_SERIAL_QUALCOMM=m +CONFIG_USB_SERIAL_QUATECH2=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_SIMPLE=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_SYMBOL=m +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_WISHBONE=m +CONFIG_USB_SERIAL_WWAN=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_XSENS_MT=m +CONFIG_USB_SERIAL_ZTE=m +CONFIG_USB_SI470X=m +CONFIG_USB_SIERRA_NET=m +# CONFIG_USB_SISUSBVGA_CON is not set +CONFIG_USB_SL811_CS=m +CONFIG_USB_SL811_HCD_ISO=y +# CONFIG_USB_SN9C102 is not set +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_STKWEBCAM=m +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STV06XX=m +CONFIG_USB_SWITCH_FSA9480=m +# CONFIG_USB_TI_CPPI41_DMA is not set +CONFIG_USB_U132_HCD=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_ULPI=y +CONFIG_USB_ULPI_VIEWPORT=y +CONFIG_USB_USBNET=m +# CONFIG_USB_UX500_DMA is not set +CONFIG_USB_U_ETHER=m +CONFIG_USB_U_RNDIS=m +CONFIG_USB_U_SERIAL=m +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_VL600=m +CONFIG_USB_WDM=m +CONFIG_USB_WHCI_HCD=m +CONFIG_USB_WPAN_HCD=m +CONFIG_USB_WUSB=m +# CONFIG_USB_WUSB_CBAF_DEBUG is not set +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PLATFORM=m +CONFIG_USB_XUSBATM=m +CONFIG_USB_ZD1201=m +CONFIG_USB_ZERO=m +CONFIG_USB_ZERO_HNPTEST=y +CONFIG_USB_ZR364XX=m +CONFIG_USER_NS=y +CONFIG_USER_RETURN_NOTIFIER=y +CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_USE_OF=y +CONFIG_USE_PERCPU_NUMA_NODE_ID=y +CONFIG_UTS_NS=y +CONFIG_UWB=m +CONFIG_UWB_HWA=m +CONFIG_UWB_I1480U=m +CONFIG_UWB_WHCI=m +CONFIG_V4L2_MEM2MEM_DEV=m +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_V4L_RADIO_ISA_DRIVERS=y +CONFIG_V4L_TEST_DRIVERS=y +CONFIG_VCNL4000=m +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_VERSION_SIGNATURE="" +CONFIG_VETH=m +CONFIG_VEXPRESS_CONFIG=y +CONFIG_VFAT_FS=y +CONFIG_VFIO=m +CONFIG_VFIO_IOMMU_SPAPR_TCE=m +CONFIG_VFIO_PCI=m +CONFIG_VFIO_PCI_VGA=y +CONFIG_VFP=y +CONFIG_VFPv3=y +CONFIG_VF_PIT_TIMER=y +# CONFIG_VGACON_SOFT_SCROLLBACK is not set +CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +CONFIG_VGA_SWITCHEROO=y +CONFIG_VHOST=m +CONFIG_VHOST_NET=m +CONFIG_VHOST_RING=m +CONFIG_VHOST_SCSI=m +CONFIG_VIA_FIR=m +CONFIG_VIA_RHINE=m +CONFIG_VIA_RHINE_MMIO=y +CONFIG_VIA_VELOCITY=m +CONFIG_VIA_WDT=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_DMA_SG=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEOBUF_DMA_CONTIG=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOMODE_HELPERS=y +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m +CONFIG_VIDEO_ADV7180=m +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_V4L2=y +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CAFE_CCIC=m +# CONFIG_VIDEO_CODA is not set +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_CS5345=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_CX18=m +CONFIG_VIDEO_CX18_ALSA=m +CONFIG_VIDEO_CX231XX=m +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_CX231XX_RC=y +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_CX23885=m +CONFIG_VIDEO_CX25821=m +CONFIG_VIDEO_CX25821_ALSA=m +CONFIG_VIDEO_CX25840=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_BLACKBIRD=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_ENABLE_VP3054=y +CONFIG_VIDEO_CX88_MPEG=m +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DM6446_CCDC=m +CONFIG_VIDEO_DT3155=m +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=m +CONFIG_VIDEO_FB_IVTV=m +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_GO7007=m +CONFIG_VIDEO_GO7007_LOADER=m +CONFIG_VIDEO_GO7007_USB=m +CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_IR_I2C=m +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_IVTV_ALSA=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_M52790=m +CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m +CONFIG_VIDEO_MEM2MEM_TESTDEV=m +CONFIG_VIDEO_MEYE=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_MT9V011=m +# CONFIG_VIDEO_MX3 is not set +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_OMAP2_VOUT=m +CONFIG_VIDEO_OMAP2_VOUT_VRFB=y +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_VIDEO_OV7640=m +CONFIG_VIDEO_OV7670=m +CONFIG_VIDEO_PMS=m +CONFIG_VIDEO_PVRUSB2=m +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_PVRUSB2_DVB=y +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_RCAR_VIN=m +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7134_RC=y +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_SAA7164=m +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_SH_MOBILE_CEU=m +CONFIG_VIDEO_SH_MOBILE_CSI2=m +CONFIG_VIDEO_SH_VEU=m +CONFIG_VIDEO_SONY_BTF_MPX=m +CONFIG_VIDEO_STK1160=m +CONFIG_VIDEO_STK1160_AC97=y +CONFIG_VIDEO_STK1160_COMMON=m +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=m +CONFIG_VIDEO_TIMBERDALE=m +CONFIG_VIDEO_TI_VPE=m +# CONFIG_VIDEO_TI_VPE_DEBUG is not set +CONFIG_VIDEO_TLG2300=m +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_ALSA=m +CONFIG_VIDEO_TM6000_DVB=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_TVAUDIO=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_TW2804=m +CONFIG_VIDEO_TW9903=m +CONFIG_VIDEO_TW9906=m +CONFIG_VIDEO_UDA1342=m +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_USBTV=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_V4L2_INT_DEVICE=m +CONFIG_VIDEO_VIA_CAMERA=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_VP27SMPX=m +CONFIG_VIDEO_VPX3220=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIPERBOARD_ADC=m +CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y +CONFIG_VIRTUALIZATION=y +CONFIG_VIRT_CPU_ACCOUNTING=y +CONFIG_VIRT_CPU_ACCOUNTING_NATIVE=y +CONFIG_VIRT_DRIVERS=y +CONFIG_VIRT_TO_BUS=y +CONFIG_VITESSE_PHY=y +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_VLAN_8021Q_MVRP=y +CONFIG_VLSI_FIR=m +CONFIG_VM86=y +CONFIG_VME_BUS=m +CONFIG_VME_CA91CX42=m +CONFIG_VME_PIO2=m +CONFIG_VME_TSI148=m +CONFIG_VME_USER=m +CONFIG_VMIVME_7805=m +# CONFIG_VMSPLIT_1G is not set +# CONFIG_VMSPLIT_2G is not set +CONFIG_VMSPLIT_3G=y +CONFIG_VMWARE_BALLOON=m +CONFIG_VMWARE_PVSCSI=m +CONFIG_VMWARE_VMCI=m +CONFIG_VMWARE_VMCI_VSOCKETS=m +CONFIG_VMXNET3=m +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_VORTEX=m +CONFIG_VSOCKETS=m +CONFIG_VSX=y +CONFIG_VT=y +CONFIG_VT6655=m +CONFIG_VT6656=m +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_VXFS_FS=m +CONFIG_VXGE=m +# CONFIG_VXGE_DEBUG_TRACE_ALL is not set +CONFIG_VXLAN=m +CONFIG_W1=m +CONFIG_W1_CON=y +CONFIG_W1_MASTER_DS1WM=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_GPIO=m +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_MASTER_MXC=m +CONFIG_W1_SLAVE_BQ27000=m +CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2408_READBACK=y +CONFIG_W1_SLAVE_DS2413=m +CONFIG_W1_SLAVE_DS2423=m +CONFIG_W1_SLAVE_DS2431=m +CONFIG_W1_SLAVE_DS2433=m +# CONFIG_W1_SLAVE_DS2433_CRC is not set +CONFIG_W1_SLAVE_DS2760=m +CONFIG_W1_SLAVE_DS2780=m +CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS28E04=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_THERM=m +CONFIG_W35UND=m +CONFIG_W83627HF_WDT=m +CONFIG_W83697HF_WDT=m +CONFIG_W83697UG_WDT=m +CONFIG_W83877F_WDT=m +CONFIG_W83977F_WDT=m +CONFIG_WAFER_WDT=m +CONFIG_WAN=y +CONFIG_WANXL=m +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_RTAS=m +CONFIG_WCN36XX=m +# CONFIG_WCN36XX_DEBUGFS is not set +CONFIG_WD80x3=m +CONFIG_WDT=m +CONFIG_WDTPCI=m +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PRIV=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WIL6210_ISR_COR=y +CONFIG_WIL6210_TRACING=y +CONFIG_WILINK_PLATFORM_DATA=y +CONFIG_WIMAX=m +CONFIG_WIMAX_DEBUG_LEVEL=8 +CONFIG_WIMAX_GDM72XX=m +CONFIG_WIMAX_GDM72XX_K_MODE=y +CONFIG_WIMAX_GDM72XX_QOS=y +CONFIG_WIMAX_GDM72XX_USB=y +CONFIG_WIMAX_GDM72XX_USB_PM=y +CONFIG_WIMAX_GDM72XX_WIMAX2=y +CONFIG_WIMAX_I2400M=m +CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8 +CONFIG_WIMAX_I2400M_USB=m +CONFIG_WINBOND_840=m +CONFIG_WINBOND_FIR=m +CONFIG_WINDFARM=m +CONFIG_WINDFARM_PM112=m +CONFIG_WINDFARM_PM121=m +CONFIG_WINDFARM_PM72=m +CONFIG_WINDFARM_PM81=m +CONFIG_WINDFARM_PM91=m +CONFIG_WINDFARM_RM31=m +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WIZNET_BUS_ANY=y +# CONFIG_WIZNET_BUS_DIRECT is not set +# CONFIG_WIZNET_BUS_INDIRECT is not set +CONFIG_WIZNET_W5100=m +CONFIG_WIZNET_W5300=m +CONFIG_WL1251=m +CONFIG_WL1251_SDIO=m +CONFIG_WL1251_SPI=m +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLAGS49_H2=m +CONFIG_WLAGS49_H25=m +CONFIG_WLAN=y +CONFIG_WLCORE=m +CONFIG_WLCORE_SDIO=m +CONFIG_WLCORE_SPI=m +CONFIG_WL_TI=y +CONFIG_WM831X_BACKUP=m +CONFIG_WM831X_POWER=m +CONFIG_WM831X_WATCHDOG=m +CONFIG_WM8350_POWER=m +CONFIG_WM8350_WATCHDOG=m +CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y +CONFIG_X25=m +CONFIG_X25_ASY=m +CONFIG_X509_CERTIFICATE_PARSER=y +CONFIG_X86=y +CONFIG_X86_16BIT=y +CONFIG_X86_32=y +CONFIG_X86_32_IRIS=m +# CONFIG_X86_32_NON_STANDARD is not set +CONFIG_X86_32_SMP=y +CONFIG_X86_64=y +CONFIG_X86_64_ACPI_NUMA=y +CONFIG_X86_64_SMP=y +CONFIG_X86_ACPI_CPUFREQ=y +CONFIG_X86_ACPI_CPUFREQ_CPB=y +CONFIG_X86_AMD_FREQ_SENSITIVITY=m +# CONFIG_X86_ANCIENT_MCE is not set +CONFIG_X86_APM_BOOT=y +# CONFIG_X86_BIGSMP is not set +CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y +CONFIG_X86_CHECK_BIOS_CORRUPTION=y +CONFIG_X86_CMOV=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_CPUFREQ_NFORCE2=y +CONFIG_X86_CPUID=m +CONFIG_X86_DEBUGCTLMSR=y +# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set +# CONFIG_X86_DECODER_SELFTEST is not set +CONFIG_X86_DEV_DMA_OPS=y +CONFIG_X86_ESPFIX32=y +CONFIG_X86_ESPFIX64=y +CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_E_POWERSAVER is not set +CONFIG_X86_GENERIC=y +# CONFIG_X86_GOLDFISH is not set +CONFIG_X86_GX_SUSPMOD=m +CONFIG_X86_HT=y +CONFIG_X86_INTEL_LPSS=y +CONFIG_X86_INTEL_MID=y +CONFIG_X86_INTEL_PSTATE=y +CONFIG_X86_INTEL_USERCOPY=y +CONFIG_X86_INTERNODE_CACHE_SHIFT=6 +CONFIG_X86_IO_APIC=y +CONFIG_X86_L1_CACHE_SHIFT=6 +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_LONGHAUL=m +CONFIG_X86_LONGRUN=m +CONFIG_X86_MCE=y +CONFIG_X86_MCE_AMD=y +CONFIG_X86_MCE_INJECT=m +CONFIG_X86_MCE_INTEL=y +CONFIG_X86_MCE_THRESHOLD=y +CONFIG_X86_MDFLD=y +CONFIG_X86_MPPARSE=y +CONFIG_X86_MSR=m +CONFIG_X86_NEED_RELOCS=y +CONFIG_X86_NUMACHIP=y +CONFIG_X86_P4_CLOCKMOD=m +CONFIG_X86_PAE=y +CONFIG_X86_PAT=y +CONFIG_X86_PCC_CPUFREQ=y +CONFIG_X86_PKG_TEMP_THERMAL=m +CONFIG_X86_PLATFORM_DEVICES=y +CONFIG_X86_PM_TIMER=y +CONFIG_X86_POWERNOW_K6=m +CONFIG_X86_POWERNOW_K7=m +CONFIG_X86_POWERNOW_K7_ACPI=y +CONFIG_X86_POWERNOW_K8=y +CONFIG_X86_PPRO_FENCE=y +# CONFIG_X86_PTDUMP is not set +# CONFIG_X86_RDC321X is not set +CONFIG_X86_REBOOTFIXUPS=y +CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y +CONFIG_X86_RESERVE_LOW=64 +CONFIG_X86_SMAP=y +CONFIG_X86_SPEEDSTEP_CENTRINO=y +CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y +CONFIG_X86_SPEEDSTEP_ICH=y +CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y +CONFIG_X86_SPEEDSTEP_SMI=y +CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y +# CONFIG_X86_SYSFB is not set +CONFIG_X86_THERMAL_VECTOR=y +CONFIG_X86_TSC=y +CONFIG_X86_USE_PPRO_CHECKSUM=y +# CONFIG_X86_UV is not set +# CONFIG_X86_VERBOSE_BOOTUP is not set +# CONFIG_X86_VSMP is not set +CONFIG_X86_WANT_INTEL_MID=y +CONFIG_X86_X2APIC=y +CONFIG_X86_X32=y +CONFIG_XENFS=m +CONFIG_XEN_ACPI_PROCESSOR=y +CONFIG_XEN_BACKEND=y +CONFIG_XEN_BALLOON=y +CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y +CONFIG_XEN_BLKDEV_BACKEND=m +CONFIG_XEN_BLKDEV_FRONTEND=y +CONFIG_XEN_COMPAT_XENFS=y +# CONFIG_XEN_DEBUG_FS is not set +CONFIG_XEN_DEV_EVTCHN=m +CONFIG_XEN_DOM0=y +CONFIG_XEN_FBDEV_FRONTEND=m +CONFIG_XEN_GNTDEV=m +CONFIG_XEN_GRANT_DEV_ALLOC=m +CONFIG_XEN_HAVE_PVMMU=y +CONFIG_XEN_MCE_LOG=y +CONFIG_XEN_NETDEV_BACKEND=m +CONFIG_XEN_NETDEV_FRONTEND=y +CONFIG_XEN_PCIDEV_BACKEND=m +CONFIG_XEN_PCIDEV_FRONTEND=m +CONFIG_XEN_PRIVCMD=m +CONFIG_XEN_PRIVILEGED_GUEST=y +CONFIG_XEN_PVHVM=y +CONFIG_XEN_SAVE_RESTORE=y +CONFIG_XEN_SCRUB_PAGES=y +CONFIG_XEN_SELFBALLOONING=y +CONFIG_XEN_SYS_HYPERVISOR=y +CONFIG_XEN_TMEM=m +CONFIG_XEN_WDT=m +CONFIG_XEN_XENBUS_FRONTEND=y +CONFIG_XFRM=y +CONFIG_XFRM_ALGO=m +CONFIG_XFRM_IPCOMP=m +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_XFRM_STATISTICS is not set +# CONFIG_XFRM_SUB_POLICY is not set +CONFIG_XFRM_USER=m +# CONFIG_XFS_DEBUG is not set +CONFIG_XFS_FS=m +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_QUOTA=y +CONFIG_XFS_RT=y +# CONFIG_XFS_WARN is not set +# CONFIG_XILINX_EMACLITE is not set +CONFIG_XILINX_LL_TEMAC=m +CONFIG_XILLYBUS=m +CONFIG_XILLYBUS_OF=m +CONFIG_XILLYBUS_PCIE=m +# CONFIG_XMON_DEFAULT is not set +CONFIG_XMON_DISASSEMBLY=y +CONFIG_XO15_EBOOK=m +CONFIG_XOR_BLOCKS=m +CONFIG_XPS=y +CONFIG_XPS_USB_HCD_XILINX=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_BCJ=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_YAM=m +CONFIG_YELLOWFIN=m +CONFIG_YENTA=m +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBUD=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_ZEROPLUS_FF=y +CONFIG_ZISOFS=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZONE_DMA=y +CONFIG_ZRAM=m +# CONFIG_ZRAM_DEBUG is not set +CONFIG_ZSMALLOC=y +CONFIG_ZSWAP=y --- linux-3.13.0.orig/debian.master/config/enforce +++ linux-3.13.0/debian.master/config/enforce @@ -0,0 +1,130 @@ +# +# SECURITY items +# +# Ensure this option is enabled. +value CONFIG_COMPAT_BRK n +value CONFIG_DEVKMEM n +value CONFIG_LSM_MMAP_MIN_ADDR 0 +value CONFIG_SECURITY y +!exists CONFIG_SECURITY_FILE_CAPABILITIES | value CONFIG_SECURITY_FILE_CAPABILITIES y +value CONFIG_SECURITY_SELINUX y +value CONFIG_SECURITY_SMACK y +value CONFIG_SECURITY_YAMA y +value CONFIG_SYN_COOKIES y +value CONFIG_DEFAULT_SECURITY_APPARMOR y +value CONFIG_DEBUG_INFO y +# For architectures which support this option ensure it is enabled. +!exists CONFIG_XEN_ACPI_PROCESSOR | value CONFIG_XEN_ACPI_PROCESSOR y +!exists CONFIG_SECCOMP | value CONFIG_SECCOMP y +!exists CONFIG_HAVE_ARCH_SECCOMP_FILTER | value CONFIG_SECCOMP_FILTER y +!exists CONFIG_CC_STACKPROTECTOR | value CONFIG_CC_STACKPROTECTOR y +!exists CONFIG_DEBUG_RODATA | value CONFIG_DEBUG_RODATA y +!exists CONFIG_DEBUG_SET_MODULE_RONX | value CONFIG_DEBUG_SET_MODULE_RONX y +!exists CONFIG_STRICT_DEVMEM | value CONFIG_STRICT_DEVMEM y +# For architectures which support this option ensure it is disabled. +!exists CONFIG_COMPAT_VDSO | value CONFIG_COMPAT_VDSO n +!exists CONFIG_ACPI_CUSTOM_METHOD | value CONFIG_ACPI_CUSTOM_METHOD n +# Default to 32768 on ARM, 65536 for everything else. +(arch armel armhf &/ value CONFIG_DEFAULT_MMAP_MIN_ADDR 32768) | \ + value CONFIG_DEFAULT_MMAP_MIN_ADDR 65536 + +# upstart requires DEVTMPFS be enabled and mounted by default. +value CONFIG_DEVTMPFS y +value CONFIG_DEVTMPFS_MOUNT y + +# some /dev nodes require POSIX ACLs, like /dev/dsp +value CONFIG_TMPFS_POSIX_ACL y + +# Ramdisk size should be a minimum of 64M +value CONFIG_BLK_DEV_RAM_SIZE 65536 + +# LVM requires dm_mod built in to activate correctly (LP: #560717) +value CONFIG_BLK_DEV_DM y + +# sysfs: ensure all DEPRECATED items are off +!exists CONFIG_SYSFS_DEPRECATED_V2 | value CONFIG_SYSFS_DEPRECATED_V2 n +!exists CONFIG_SYSFS_DEPRECATED | value CONFIG_SYSFS_DEPRECATED n + +# automatically add local version will cause packaging failure +value CONFIG_LOCALVERSION_AUTO n + +# provide framebuffer console form the start +# UbuntuSpec:foundations-m-grub2-boot-framebuffer +value CONFIG_FRAMEBUFFER_CONSOLE y + +# GRUB changes will rely on built in vesafb on x86, +# UbuntuSpec:foundations-m-grub2-boot-framebuffer +#(( arch i386 | arch amd64 ) & value CONFIG_FB_VESA y) | \ +# value CONFIG_FB_VESA m | !exists CONFIG_FB_VESA +#value CONFIG_FB_VESA m | !exists CONFIG_FB_VESA + +# Build in uinput module so that it's always available (LP: 584812) +value CONFIG_INPUT_UINPUT y + +# upstart relies on getting all of the kernel arguments +#value CONFIG_INIT_PASS_ALL_PARAMS y + +# Ensure CONFIG_IPV6 is y, if this is a module we get a module load for +# every ipv6 packet, bad. +value CONFIG_IPV6 y + +# Ensure ECRYPT_FS is y as it cannot be autoloaded and it has complex +# dependancies which can pull it =m at a whim. +value CONFIG_ECRYPT_FS y + +# Ensure CONFIG_EFI_VARS is y as debian-installer relies on having +# access to efivars when installing in EFI mode. See LP:837332 +value CONFIG_EFI_VARS y | !exists CONFIG_EFI_VARS + +# Ensure CONFIG_VFAT_FS is y for arm, needed to ensure we able to replace +# a kernel with the same version. Also needed for EFI based systems. +#(arch armel armhf arm64 i386 amd64 &/ value CONFIG_VFAT_FS y) | \ +# value CONFIG_VFAT_FS m +value CONFIG_VFAT_FS y + +# Ensure CONFIG_GPIO_TWL4030 is y for arm, LP:921934 +(arch armel armhf &/ value CONFIG_GPIO_TWL4030 y) | \ + value CONFIG_GPIO_TWL4030 m | \ + !exists CONFIG_GPIO_TWL4030 + +# Ensure CONFIG_THERM_ADT746X is y for powerpc-smp flavours. +# See LP:923094 +(flavour powerpc-smp &/ value CONFIG_THERM_ADT746X y) | \ + !exists CONFIG_THERM_ADT746X + +# Ensure CONFIG_NVRAM is y for powerpc-smp, LP:942193 +(flavour powerpc-smp powerpc-e500 powerpc-e500mc &/ value CONFIG_NVRAM y) | \ + (flavour powerpc-e500 powerpc-e500mc) | \ + value CONFIG_NVRAM m | \ + !exists CONFIG_NVRAM + +# Ensure CONFIG_STUB_POULSBO is disabled if CONFIG_DRM_PSB is enabled +# See LP:899244 +(!exists CONFIG_DRM_PSB | value CONFIG_DRM_PSB n) | \ +((value CONFIG_DRM_PSB y | value CONFIG_DRM_PSB m) & (value CONFIG_STUB_POULSBO n | !exists CONFIG_STUB_POULSBO)) + +# Ensure CONFIG_B43_BCMA_EXTRA is disabled if CONFIG_BRCMSMAC is enabled. +# Otherwise b43 and brcmsmac will overlap in the hardware they claim to +# support. +(!exists CONFIG_BRCMSMAC | value CONFIG_BRCMSMAC n) | \ +((value CONFIG_BRCMSMAC y | value CONFIG_BRCMSMAC m) & (value CONFIG_B43_BCMA_EXTRA n | !exists CONFIG_B43_BCMA_EXTRA)) + +# CONFIG_I2C_DESIGNWARE_PLATFORM is required by Calxeda Highbank +(flavour highbank &/ value CONFIG_I2C_DESIGNWARE_PLATFORM y) | \ +value CONFIG_I2C_DESIGNWARE_PLATFORM m | \ +!exists CONFIG_I2C_DESIGNWARE_PLATFORM + +# Don't use the generic ehci/ohci code on omap, it doesn't work +((flavour generic & arch armhf &/ value CONFIG_USB_EHCI_HCD_PLATFORM n & value CONFIG_USB_OHCI_HCD_PLATFORM n) | \ + !exists MISSING) + +# CONFIG_DRM_MGAG200, experimental driver hangs boot on HP Proliant Gen8 +# See LP:1042903 +(!exists CONFIG_DRM_MGAG200 | value CONFIG_DRM_MGAG200 n) + +# Required if /init is a shell script. +value CONFIG_BINFMT_SCRIPT y + +# CPUIDLE is a source of instabilities on ECX-1000, leave it off +((flavour generic & arch armhf &/ value CONFIG_CPU_IDLE n) | \ + !exists MISSING) --- linux-3.13.0.orig/debian.master/config/i386/config.common.i386 +++ linux-3.13.0/debian.master/config/i386/config.common.i386 @@ -0,0 +1,315 @@ +# +# Config options for config.common.i386 automatically generated by splitconfig.pl +# +# CONFIG_64BIT is not set +CONFIG_AC97_BUS=m +# CONFIG_AHCI_IMX is not set +CONFIG_AIC79XX_RESET_DELAY_MS=5000 +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_ARCH_RANDOM=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ASYNC_TX_DMA=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_PIIX=y +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_AUDIT_ARCH is not set +CONFIG_BCH=m +CONFIG_COMEDI_ISA_DRIVERS=y +CONFIG_COMPACTION=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +CONFIG_CPU_IDLE=y +CONFIG_CRASH_DUMP=y +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEFAULT_CFQ is not set +CONFIG_DEFAULT_DEADLINE=y +CONFIG_DEFAULT_IOSCHED="deadline" +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +CONFIG_EXYNOS_VIDEO=y +# CONFIG_EZX_PCAP is not set +CONFIG_FB_ATY128=m +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_BOOT_VESA_SUPPORT=y +CONFIG_FB_DDC=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_RADEON=m +CONFIG_FB_SVGALIB=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FB_UDL=m +CONFIG_FB_VOODOO1=m +# CONFIG_FMAN_P1023 is not set +CONFIG_FMAN_P3040_P4080_P5020=y +# CONFIG_FONTS is not set +CONFIG_FRAME_WARN=1024 +CONFIG_FSL_FMAN=y +CONFIG_FUNCTION_TRACER=y +CONFIG_GENERIC_PHY=m +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_TWL6040=m +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set +CONFIG_HAVE_AOUT=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HIBERNATION=y +CONFIG_HOTPLUG_PCI_CPCI=y +CONFIG_HOTPLUG_PCI_SHPC=m +CONFIG_HUGETLB_PAGE=y +# CONFIG_HW_RANDOM_ATMEL is not set +# CONFIG_HZ_100 is not set +CONFIG_I2C_ALGOBIT=m +# CONFIG_IDE is not set +# CONFIG_IKCONFIG is not set +CONFIG_ILLEGAL_POINTER_VALUE=0 +CONFIG_IMA=y +CONFIG_INFINIBAND_AMSO1100=m +CONFIG_INPUT_IDEAPAD_SLIDEBAR=m +CONFIG_IOMMU_SUPPORT=y +CONFIG_IPMI_SI_PROBE_DEFAULTS=y +# CONFIG_IRQ_DOMAIN_DEBUG is not set +CONFIG_ISA=y +CONFIG_KSM=y +CONFIG_KVM=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LIBERTAS_MESH=y +CONFIG_LIS3L02DQ=m +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_MACINTOSH_DRIVERS=y +# CONFIG_MATH_EMULATION is not set +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_TMIO is not set +CONFIG_MII=m +CONFIG_MMC_BLOCK=m +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MTD=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_CMDLINE_PARTS=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_BCH=m +CONFIG_MTD_NAND_ECC=m +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_SM_COMMON=m +CONFIG_MUSB_PIO_ONLY=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NET_TULIP=y +CONFIG_NOP_USB_XCEIV=m +CONFIG_NO_HZ_IDLE=y +CONFIG_NR_CPUS=8 +CONFIG_NVRAM=m +CONFIG_OUTPUT_FORMAT="elf32-i386" +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_PARIDE_EPATC8=y +CONFIG_PATA_SIS=y +CONFIG_PCCARD=m +CONFIG_PCIEPORTBUS=y +CONFIG_PERCPU_TEST=m +CONFIG_PERSISTENT_KEYRINGS=y +CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_PHYSICAL_START=0x1000000 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PMIC_ADP5520=y +CONFIG_PMIC_DA903X=y +CONFIG_PM_DEBUG=y +CONFIG_PM_RUNTIME=y +CONFIG_PM_WAKELOCKS=y +CONFIG_PPS=m +CONFIG_PPS_CLIENT_GPIO=m +CONFIG_PPS_CLIENT_LDISC=m +CONFIG_PPS_CLIENT_PARPORT=m +CONFIG_PROBE_EVENTS=y +# CONFIG_PSTORE_CONSOLE is not set +CONFIG_PSTORE_RAM=m +CONFIG_PTP_1588_CLOCK=m +CONFIG_RAPIDIO_CPS_GEN2=m +CONFIG_RAPIDIO_CPS_XX=m +CONFIG_RAPIDIO_TSI568=m +CONFIG_RAPIDIO_TSI57X=m +CONFIG_RAPIDIO_TSI721=m +CONFIG_RBTREE_TEST=m +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +CONFIG_RCU_FANOUT=32 +CONFIG_RCU_FAST_NO_HZ=y +# CONFIG_RCU_NOCB_CPU is not set +CONFIG_REED_SOLOMON=m +CONFIG_REGULATOR_FIXED_VOLTAGE=m +# CONFIG_REGULATOR_S2MPS11 is not set +CONFIG_REISERFS_FS=m +CONFIG_RFKILL=y +CONFIG_RT2800USB_UNKNOWN=y +# CONFIG_RT2X00_LIB_DEBUGFS is not set +CONFIG_RTC_DRV_CMOS=y +CONFIG_RTC_DRV_DS3232=m +CONFIG_SAMSUNG_USB2PHY=m +CONFIG_SAMSUNG_USB3PHY=m +CONFIG_SATA_AHCI_PLATFORM=m +# CONFIG_SATA_HIGHBANK is not set +CONFIG_SATA_SVW=m +CONFIG_SCHED_AUTOGROUP=y +CONFIG_SCHED_SMT=y +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SENSORS_SCH56XX_COMMON=m +CONFIG_SERIAL_8250_PCI=y +# CONFIG_SERIAL_FSL_LPUART is not set +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_ARC_PS2=m +CONFIG_SERIO_I8042=y +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_PS2MULT=m +CONFIG_SERIO_RAW=m +CONFIG_SND=m +CONFIG_SND_COMPRESS_OFFLOAD=m +CONFIG_SND_EMU10K1_SEQ=m +CONFIG_SND_OPL3_LIB_SEQ=m +CONFIG_SND_OPL4_LIB_SEQ=m +CONFIG_SND_PCM=m +CONFIG_SND_SBAWE_SEQ=m +CONFIG_SND_SOC=m +CONFIG_SND_SOC_I2C_AND_SPI=m +CONFIG_SND_TIMER=m +CONFIG_SOUND=m +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_SPI_PXA2XX_PCI=m +CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y +# CONFIG_SQUASHFS_DECOMP_SINGLE is not set +# CONFIG_SQUASHFS_FILE_CACHE is not set +CONFIG_SQUASHFS_FILE_DIRECT=y +CONFIG_SRAM=y +CONFIG_STACK_TRACER=y +CONFIG_STAGING=y +# CONFIG_STANDALONE is not set +CONFIG_SUNRPC_DEBUG=y +CONFIG_SWIOTLB=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_SYS_HYPERVISOR=y +CONFIG_TEST_KSTRTOX=m +CONFIG_TEST_STRING_HELPERS=m +CONFIG_TICK_CPU_ACCOUNTING=y +CONFIG_TIGON3=m +CONFIG_TIMER_STATS=y +CONFIG_TRANSPARENT_HUGEPAGE=y +# CONFIG_TWL4030_CORE is not set +CONFIG_TWL6040_CORE=y +CONFIG_UIO_AEC=m +CONFIG_UIO_CIF=m +CONFIG_UIO_DMEM_GENIRQ=m +CONFIG_UIO_MF624=m +CONFIG_UIO_NETX=m +CONFIG_UIO_PCI_GENERIC=m +CONFIG_UIO_PDRV_GENIRQ=m +CONFIG_UIO_SERCOS3=m +CONFIG_UNUSED_SYMBOLS=y +CONFIG_USB_ADUTUX=m +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_C67X00_HCD=m +CONFIG_USB_CATC=m +CONFIG_USB_CHIPIDEA=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_DWC3=m +# CONFIG_USB_DWC3_OMAP is not set +CONFIG_USB_DYNAMIC_MINORS=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHSET_TEST_FIXTURE=m +CONFIG_USB_EMI26=m +CONFIG_USB_EMI62=m +CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_FOTG210_HCD=m +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_FUSBH200_HCD=m +CONFIG_USB_GADGET=m +# CONFIG_USB_G_MULTI is not set +CONFIG_USB_HCD_BCMA=m +CONFIG_USB_HCD_SSB=m +CONFIG_USB_HSIC_USB3503=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_IOWARRIOR=m +CONFIG_USB_IPHETH=m +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_ISP1301=m +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_ISP1760_HCD=m +CONFIG_USB_KAWETH=m +CONFIG_USB_LCD=m +CONFIG_USB_LD=m +CONFIG_USB_LED=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_MUSB_HDRC=m +CONFIG_USB_MUSB_TUSB6010=m +CONFIG_USB_OHCI_HCD_PLATFORM=y +# CONFIG_USB_OTG is not set +CONFIG_USB_OXU210HP_HCD=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_PRINTER=m +CONFIG_USB_R8A66597_HCD=m +CONFIG_USB_RCAR_PHY=m +CONFIG_USB_RIO500=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_SERIAL=m +CONFIG_USB_SEVSEG=m +CONFIG_USB_SISUSBVGA=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_STORAGE=m +CONFIG_USB_STORAGE_ALAUDA=m +CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_DATAFAB=m +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_STORAGE_FREECOM=m +CONFIG_USB_STORAGE_ISD200=m +CONFIG_USB_STORAGE_JUMPSHOT=m +CONFIG_USB_STORAGE_KARMA=m +CONFIG_USB_STORAGE_ONETOUCH=m +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_USB_STORAGE_SDDR09=m +CONFIG_USB_STORAGE_SDDR55=m +CONFIG_USB_STORAGE_USBAT=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_TEST=m +CONFIG_USB_TMC=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_USS720=m +CONFIG_USB_WUSB_CBAF=m +CONFIG_USB_YUREX=m +CONFIG_VFIO_IOMMU_TYPE1=m +CONFIG_VGASTATE=m +CONFIG_VGA_CONSOLE=y +CONFIG_VIRTIO=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_NET=y +CONFIG_VIRTIO_PCI=y +CONFIG_WIL6210=m +# CONFIG_WIMAX_GDM72XX_SDIO is not set +CONFIG_X86_MINIMUM_CPU_FAMILY=5 +CONFIG_X86_SPEEDSTEP_LIB=y +CONFIG_XEN=y +CONFIG_XEN_MAX_DOMAIN_MEMORY=64 +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_TEST=m +CONFIG_XZ_DEC_X86=y +# CONFIG_ZONE_DMA32 is not set +CONFIG_ZONE_DMA_FLAG=1 --- linux-3.13.0.orig/debian.master/config/i386/config.flavour.generic +++ linux-3.13.0/debian.master/config/i386/config.flavour.generic @@ -0,0 +1,10 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# +CONFIG_HZ=250 +# CONFIG_HZ_1000 is not set +CONFIG_HZ_250=y +# CONFIG_IRQ_FORCED_THREADING_DEFAULT is not set +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_RCU is not set +CONFIG_PREEMPT_VOLUNTARY=y --- linux-3.13.0.orig/debian.master/config/i386/config.flavour.lowlatency +++ linux-3.13.0/debian.master/config/i386/config.flavour.lowlatency @@ -0,0 +1,10 @@ +# +# Config options for config.flavour.lowlatency automatically generated by splitconfig.pl +# +CONFIG_HZ=1000 +CONFIG_HZ_1000=y +# CONFIG_HZ_250 is not set +CONFIG_IRQ_FORCED_THREADING_DEFAULT=y +CONFIG_PREEMPT=y +CONFIG_PREEMPT_RCU=y +# CONFIG_PREEMPT_VOLUNTARY is not set --- linux-3.13.0.orig/debian.master/config/powerpc/config.common.powerpc +++ linux-3.13.0/debian.master/config/powerpc/config.common.powerpc @@ -0,0 +1,341 @@ +# +# Config options for config.common.powerpc automatically generated by splitconfig.pl +# +CONFIG_64BIT=y +CONFIG_AC97_BUS=m +# CONFIG_AHCI_IMX is not set +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +CONFIG_APM_EMULATION=m +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +# CONFIG_ASYNC_TX_DMA is not set +CONFIG_ATA_PIIX=m +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_AUDIT_ARCH=y +# CONFIG_BATTERY_TWL4030_MADC is not set +CONFIG_BCH=m +# CONFIG_CODE_PATCHING_SELFTEST is not set +# CONFIG_COMEDI_ISA_DRIVERS is not set +CONFIG_COMPACTION=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_CPU_BIG_ENDIAN=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +CONFIG_CPU_IDLE=y +# CONFIG_CPU_LITTLE_ENDIAN is not set +# CONFIG_CRASH_DUMP is not set +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEFAULT_CFQ is not set +CONFIG_DEFAULT_DEADLINE=y +CONFIG_DEFAULT_IOSCHED="deadline" +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +CONFIG_EXYNOS_VIDEO=y +# CONFIG_EZX_PCAP is not set +CONFIG_FB_ATY128=y +CONFIG_FB_BACKLIGHT=y +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_DDC=y +CONFIG_FB_IBM_GXT4500=m +CONFIG_FB_MACMODES=y +CONFIG_FB_RADEON=y +CONFIG_FB_SVGALIB=m +CONFIG_FB_VOODOO1=y +# CONFIG_FONTS is not set +CONFIG_FRAME_WARN=1024 +CONFIG_FUNCTION_TRACER=y +# CONFIG_GENERIC_CSUM is not set +CONFIG_GENERIC_PHY=m +CONFIG_GENERIC_TBSYNC=y +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_TWL4030=m +CONFIG_GPIO_TWL6040=m +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set +# CONFIG_HAVE_AOUT is not set +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set +CONFIG_HOTPLUG_PCI_CPCI=y +CONFIG_HOTPLUG_PCI_SHPC=m +CONFIG_HVCS=y +CONFIG_HVC_OLD_HVSI=y +CONFIG_HVC_UDBG=y +CONFIG_HW_RANDOM_ATMEL=m +CONFIG_HW_RANDOM_POWERNV=y +CONFIG_HZ=250 +# CONFIG_HZ_100 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ_250=y +CONFIG_I2C_ALGOBIT=y +# CONFIG_IBMEBUS is not set +CONFIG_IBMVETH=m +# CONFIG_IDE is not set +# CONFIG_IKCONFIG is not set +# CONFIG_IMA is not set +CONFIG_INFINIBAND_AMSO1100=m +# CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set +CONFIG_IOMMU_SUPPORT=y +CONFIG_IPMI_SI_PROBE_DEFAULTS=y +# CONFIG_IRQ_ALL_CPUS is not set +# CONFIG_IRQ_DOMAIN_DEBUG is not set +# CONFIG_IRQ_FORCED_THREADING_DEFAULT is not set +# CONFIG_ISA is not set +CONFIG_KSM=y +CONFIG_KVM=y +CONFIG_KVM_BOOK3S_64=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LIBERTAS_MESH=y +CONFIG_LIS3L02DQ=m +CONFIG_LOG_BUF_SHIFT=17 +# CONFIG_LPARCFG is not set +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MATH_EMULATION=y +# CONFIG_MEMORY_HOTREMOVE is not set +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_TMIO is not set +CONFIG_MII=m +CONFIG_MMC_BLOCK=m +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MPIC_MSGR=y +CONFIG_MTD=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_CMDLINE_PARTS=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_BCH=m +CONFIG_MTD_NAND_ECC=m +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_OF_PARTS=m +CONFIG_MTD_SM_COMMON=m +CONFIG_MUSB_PIO_ONLY=y +CONFIG_NET_TULIP=y +CONFIG_NODES_SHIFT=8 +CONFIG_NOP_USB_XCEIV=m +CONFIG_NO_HZ_FULL=y +CONFIG_NVRAM=y +# CONFIG_PARIDE_EPATC8 is not set +CONFIG_PATA_SIS=m +CONFIG_PCCARD=m +CONFIG_PCIEPORTBUS=y +CONFIG_PCI_SYSCALL=y +CONFIG_PERCPU_TEST=m +CONFIG_PERSISTENT_KEYRINGS=y +CONFIG_PHYSICAL_ALIGN=0x04000000 +CONFIG_PHYSICAL_START=0x00000000 +CONFIG_PHY_EXYNOS_DP_VIDEO=m +CONFIG_PMIC_ADP5520=y +CONFIG_PMIC_DA903X=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_RUNTIME=y +CONFIG_PM_WAKELOCKS=y +# CONFIG_POWER7_CPU is not set +CONFIG_PPC_4K_PAGES=y +# CONFIG_PPC_64K_PAGES is not set +# CONFIG_PPC_DENORMALISATION is not set +CONFIG_PPC_DISABLE_WERROR=y +CONFIG_PPC_EPAPR_HV_BYTECHAN=y +CONFIG_PPC_ICSWX=y +CONFIG_PPC_MAPLE=y +CONFIG_PPC_PASEMI=y +CONFIG_PPC_PMAC=y +CONFIG_PPC_PS3=y +# CONFIG_PPC_SMLPAR is not set +# CONFIG_PPC_SPLPAR is not set +CONFIG_PPS=m +CONFIG_PPS_CLIENT_GPIO=m +CONFIG_PPS_CLIENT_LDISC=m +CONFIG_PPS_CLIENT_PARPORT=m +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_RCU is not set +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_PROBE_EVENTS=y +CONFIG_PSERIES_ENERGY=m +# CONFIG_PSTORE_CONSOLE is not set +CONFIG_PSTORE_RAM=m +CONFIG_PTP_1588_CLOCK=m +CONFIG_RAPIDIO_CPS_GEN2=y +CONFIG_RAPIDIO_CPS_XX=y +CONFIG_RAPIDIO_TSI568=y +CONFIG_RAPIDIO_TSI57X=y +CONFIG_RAPIDIO_TSI721=y +CONFIG_RBTREE_TEST=m +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +CONFIG_RCU_FAST_NO_HZ=y +CONFIG_RCU_USER_QS=y +CONFIG_REED_SOLOMON=m +CONFIG_REGULATOR_FIXED_VOLTAGE=m +CONFIG_REGULATOR_S2MPS11=m +CONFIG_REISERFS_FS=m +CONFIG_RFKILL=y +CONFIG_RT2800USB_UNKNOWN=y +# CONFIG_RT2X00_LIB_DEBUGFS is not set +# CONFIG_RTAS_FLASH is not set +CONFIG_RTC_DRV_CMOS=m +CONFIG_SAMSUNG_USB2PHY=m +CONFIG_SAMSUNG_USB3PHY=m +CONFIG_SATA_AHCI_PLATFORM=m +# CONFIG_SATA_HIGHBANK is not set +CONFIG_SATA_SVW=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_SCSI_SPI_ATTRS=m +# CONFIG_SENSORS_SCH56XX_COMMON is not set +CONFIG_SERIAL_8250_PCI=m +# CONFIG_SERIAL_FSL_LPUART is not set +CONFIG_SERIAL_OF_PLATFORM=m +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_APBPS2=m +CONFIG_SERIO_ARC_PS2=m +CONFIG_SERIO_I8042=y +CONFIG_SERIO_OLPC_APSP=m +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_PS2MULT=m +CONFIG_SERIO_RAW=m +CONFIG_SERIO_XILINX_XPS_PS2=m +CONFIG_SIMPLE_GPIO=y +CONFIG_SND=m +CONFIG_SND_COMPRESS_OFFLOAD=m +CONFIG_SND_EMU10K1_SEQ=m +CONFIG_SND_OPL3_LIB_SEQ=m +# CONFIG_SND_OPL4_LIB_SEQ is not set +CONFIG_SND_PCM=m +# CONFIG_SND_SBAWE_SEQ is not set +CONFIG_SND_SOC=m +CONFIG_SND_SOC_FSL_SSI=m +CONFIG_SND_SOC_I2C_AND_SPI=m +CONFIG_SND_TIMER=m +CONFIG_SOUND=m +CONFIG_SPAPR_TCE_IOMMU=y +CONFIG_SPI_PXA2XX_PCI=m +CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y +# CONFIG_SQUASHFS_DECOMP_SINGLE is not set +# CONFIG_SQUASHFS_FILE_CACHE is not set +CONFIG_SQUASHFS_FILE_DIRECT=y +CONFIG_SRAM=y +CONFIG_STACK_TRACER=y +CONFIG_STAGING=y +CONFIG_STANDALONE=y +# CONFIG_SUNRPC_DEBUG is not set +CONFIG_SWIOTLB=y +CONFIG_SYSCTL_SYSCALL=y +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_TCG_IBMVTPM=m +CONFIG_TEST_KSTRTOX=m +CONFIG_TEST_STRING_HELPERS=m +CONFIG_TIGON3=m +CONFIG_TIMER_STATS=y +CONFIG_TWL4030_CORE=y +CONFIG_TWL6040_CORE=y +CONFIG_UDBG_RTAS_CONSOLE=y +CONFIG_UIO_AEC=m +CONFIG_UIO_CIF=m +CONFIG_UIO_DMEM_GENIRQ=m +CONFIG_UIO_MF624=m +CONFIG_UIO_NETX=m +CONFIG_UIO_PCI_GENERIC=m +CONFIG_UIO_PDRV_GENIRQ=m +CONFIG_UIO_SERCOS3=m +CONFIG_UNUSED_SYMBOLS=y +CONFIG_USB_ADUTUX=m +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_C67X00_HCD=m +CONFIG_USB_CATC=m +CONFIG_USB_CHIPIDEA=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_DWC3=m +# CONFIG_USB_DWC3_OMAP is not set +CONFIG_USB_DYNAMIC_MINORS=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_EHCI_HCD_PPC_OF=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHSET_TEST_FIXTURE=m +CONFIG_USB_EMI26=m +CONFIG_USB_EMI62=m +CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_FOTG210_HCD=m +CONFIG_USB_FSL_USB2=m +CONFIG_USB_FTDI_ELAN=m +CONFIG_USB_FUSBH200_HCD=m +CONFIG_USB_GADGET=m +# CONFIG_USB_G_MULTI is not set +CONFIG_USB_HCD_BCMA=m +CONFIG_USB_HCD_SSB=m +CONFIG_USB_HSIC_USB3503=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_IOWARRIOR=m +CONFIG_USB_IPHETH=m +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_ISP1301=m +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_ISP1760_HCD=m +CONFIG_USB_KAWETH=m +CONFIG_USB_LCD=m +CONFIG_USB_LD=m +CONFIG_USB_LED=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_MUSB_DSPS=m +CONFIG_USB_MUSB_HDRC=m +CONFIG_USB_MUSB_TUSB6010=m +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_USB_OHCI_HCD_PPC_OF=y +CONFIG_USB_OHCI_HCD_PPC_OF_BE=y +CONFIG_USB_OXU210HP_HCD=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_PRINTER=m +CONFIG_USB_R8A66597_HCD=m +CONFIG_USB_RCAR_PHY=m +CONFIG_USB_RIO500=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_SERIAL=m +CONFIG_USB_SEVSEG=m +CONFIG_USB_SISUSBVGA=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_STORAGE=m +CONFIG_USB_STORAGE_ALAUDA=m +CONFIG_USB_STORAGE_CYPRESS_ATACB=m +CONFIG_USB_STORAGE_DATAFAB=m +CONFIG_USB_STORAGE_ENE_UB6250=m +CONFIG_USB_STORAGE_FREECOM=m +CONFIG_USB_STORAGE_ISD200=m +CONFIG_USB_STORAGE_JUMPSHOT=m +CONFIG_USB_STORAGE_KARMA=m +CONFIG_USB_STORAGE_ONETOUCH=m +CONFIG_USB_STORAGE_REALTEK=m +CONFIG_USB_STORAGE_SDDR09=m +CONFIG_USB_STORAGE_SDDR55=m +CONFIG_USB_STORAGE_USBAT=m +CONFIG_USB_SUPPORT=y +CONFIG_USB_TEST=m +CONFIG_USB_TMC=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_USS720=m +CONFIG_USB_WUSB_CBAF=m +CONFIG_USB_YUREX=m +# CONFIG_VFIO_IOMMU_TYPE1 is not set +CONFIG_VGASTATE=m +CONFIG_VGA_CONSOLE=y +CONFIG_VIRTIO=m +CONFIG_VIRTIO_BALLOON=m +CONFIG_VIRTIO_BLK=m +CONFIG_VIRTIO_CONSOLE=m +CONFIG_VIRTIO_MMIO=m +CONFIG_VIRTIO_NET=m +CONFIG_VIRTIO_PCI=m +CONFIG_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_WIL6210=m +# CONFIG_WIMAX_GDM72XX_SDIO is not set +# CONFIG_XMON is not set +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_TEST=m +CONFIG_XZ_DEC_X86=y +CONFIG_ZONE_DMA_FLAG=1 --- linux-3.13.0.orig/debian.master/config/powerpc/config.flavour.powerpc-e500 +++ linux-3.13.0/debian.master/config/powerpc/config.flavour.powerpc-e500 @@ -0,0 +1,85 @@ +# +# Config options for config.flavour.powerpc-e500 automatically generated by splitconfig.pl +# +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +# CONFIG_ARCH_RANDOM is not set +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_BSC9131_RDB=y +CONFIG_DEFAULT_UIMAGE=y +# CONFIG_EPAPR_BOOT is not set +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FB_UDL=m +CONFIG_FMAN_P1023=y +# CONFIG_FMAN_P3040_P4080_P5020 is not set +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_FSL_FMAN=y +# CONFIG_FSL_QMAN_FQ_LOOKUP is not set +# CONFIG_FSL_RIO is not set +CONFIG_FSL_ULI1575=y +CONFIG_GE_FPGA=y +CONFIG_GE_IMP3A=y +CONFIG_HAS_FSL_QBMAN=y +CONFIG_HAS_RAPIDIO=y +# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set +# CONFIG_HIBERNATION is not set +CONFIG_HUGETLB_PAGE=y +CONFIG_KERNEL_START=0xc0000000 +CONFIG_KSI8560=y +CONFIG_MMIO_NVRAM=y +CONFIG_MPC8536_DS=y +CONFIG_MPC8540_ADS=y +CONFIG_MPC8560_ADS=y +CONFIG_MPC85xx_CDS=y +CONFIG_MPC85xx_DS=y +CONFIG_MPC85xx_MDS=y +CONFIG_MPC85xx_RDB=y +# CONFIG_MPIC_U3_HT_IRQS is not set +# CONFIG_NEED_DMA_MAP_STATE is not set +# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set +# CONFIG_NONSTATIC_KERNEL is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_NR_CPUS=8 +CONFIG_P1010_RDB=y +CONFIG_P1022_DS=y +CONFIG_P1022_RDK=y +CONFIG_P1023_RDS=y +CONFIG_PAGE_OFFSET=0xc0000000 +CONFIG_PHYS_ADDR_T_64BIT=y +# CONFIG_PPC64 is not set +CONFIG_PPC_85xx=y +# CONFIG_PPC_970_NAP is not set +# CONFIG_PPC_BOOK3S_32 is not set +# CONFIG_PPC_CELL is not set +CONFIG_PPC_DOORBELL=y +CONFIG_PPC_EPAPR_HV_PIC=y +CONFIG_PPC_I8259=y +# CONFIG_PPC_ICP_HV is not set +# CONFIG_PPC_ICP_NATIVE is not set +# CONFIG_PPC_ICS_RTAS is not set +CONFIG_PPC_INDIRECT_PCI=y +# CONFIG_PPC_MM_SLICES is not set +# CONFIG_PPC_MPC106 is not set +# CONFIG_PPC_P7_NAP is not set +# CONFIG_PPC_RTAS is not set +# CONFIG_PPC_WSP is not set +# CONFIG_PPC_XICS is not set +CONFIG_RCU_FANOUT=32 +# CONFIG_RCU_NOCB_CPU is not set +CONFIG_RTC_DRV_DS3232=m +CONFIG_SBC8548=y +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_SOCRATES=y +CONFIG_STX_GP3=y +CONFIG_TICK_CPU_ACCOUNTING=y +CONFIG_TQM8540=y +CONFIG_TQM8541=y +CONFIG_TQM8548=y +CONFIG_TQM8555=y +CONFIG_TQM8560=y +CONFIG_USB_OTG=y +CONFIG_WORD_SIZE=32 +CONFIG_XES_MPC85xx=y --- linux-3.13.0.orig/debian.master/config/powerpc/config.flavour.powerpc-e500mc +++ linux-3.13.0/debian.master/config/powerpc/config.flavour.powerpc-e500mc @@ -0,0 +1,85 @@ +# +# Config options for config.flavour.powerpc-e500mc automatically generated by splitconfig.pl +# +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +# CONFIG_ARCH_RANDOM is not set +# CONFIG_ATA_NONSTANDARD is not set +# CONFIG_BSC9131_RDB is not set +CONFIG_DEFAULT_UIMAGE=y +# CONFIG_EPAPR_BOOT is not set +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_FOPS=y +CONFIG_FB_SYS_IMAGEBLIT=y +CONFIG_FB_UDL=y +# CONFIG_FMAN_P1023 is not set +CONFIG_FMAN_P3040_P4080_P5020=y +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_FSL_FMAN=y +# CONFIG_FSL_QMAN_FQ_LOOKUP is not set +CONFIG_FSL_RIO=y +# CONFIG_FSL_ULI1575 is not set +# CONFIG_GE_FPGA is not set +# CONFIG_GE_IMP3A is not set +CONFIG_HAS_FSL_QBMAN=y +CONFIG_HAS_RAPIDIO=y +# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set +# CONFIG_HIBERNATION is not set +CONFIG_HUGETLB_PAGE=y +CONFIG_KERNEL_START=0xc0000000 +# CONFIG_KSI8560 is not set +# CONFIG_MMIO_NVRAM is not set +# CONFIG_MPC8536_DS is not set +# CONFIG_MPC8540_ADS is not set +# CONFIG_MPC8560_ADS is not set +# CONFIG_MPC85xx_CDS is not set +# CONFIG_MPC85xx_DS is not set +# CONFIG_MPC85xx_MDS is not set +# CONFIG_MPC85xx_RDB is not set +# CONFIG_MPIC_U3_HT_IRQS is not set +# CONFIG_NEED_DMA_MAP_STATE is not set +# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set +# CONFIG_NONSTATIC_KERNEL is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_NR_CPUS=8 +# CONFIG_P1010_RDB is not set +# CONFIG_P1022_DS is not set +# CONFIG_P1022_RDK is not set +# CONFIG_P1023_RDS is not set +CONFIG_PAGE_OFFSET=0xc0000000 +CONFIG_PHYS_ADDR_T_64BIT=y +# CONFIG_PPC64 is not set +CONFIG_PPC_85xx=y +# CONFIG_PPC_970_NAP is not set +# CONFIG_PPC_BOOK3S_32 is not set +# CONFIG_PPC_CELL is not set +CONFIG_PPC_DOORBELL=y +CONFIG_PPC_EPAPR_HV_PIC=y +# CONFIG_PPC_I8259 is not set +# CONFIG_PPC_ICP_HV is not set +# CONFIG_PPC_ICP_NATIVE is not set +# CONFIG_PPC_ICS_RTAS is not set +CONFIG_PPC_INDIRECT_PCI=y +# CONFIG_PPC_MM_SLICES is not set +# CONFIG_PPC_MPC106 is not set +# CONFIG_PPC_P7_NAP is not set +# CONFIG_PPC_RTAS is not set +# CONFIG_PPC_WSP is not set +# CONFIG_PPC_XICS is not set +CONFIG_RCU_FANOUT=32 +# CONFIG_RCU_NOCB_CPU is not set +CONFIG_RTC_DRV_DS3232=y +# CONFIG_SBC8548 is not set +CONFIG_SCSI_SRP_ATTRS=m +# CONFIG_SOCRATES is not set +# CONFIG_STX_GP3 is not set +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_TQM8540 is not set +# CONFIG_TQM8541 is not set +# CONFIG_TQM8548 is not set +# CONFIG_TQM8555 is not set +# CONFIG_TQM8560 is not set +CONFIG_USB_OTG=y +CONFIG_WORD_SIZE=32 +# CONFIG_XES_MPC85xx is not set --- linux-3.13.0.orig/debian.master/config/powerpc/config.flavour.powerpc-smp +++ linux-3.13.0/debian.master/config/powerpc/config.flavour.powerpc-smp @@ -0,0 +1,59 @@ +# +# Config options for config.flavour.powerpc-smp automatically generated by splitconfig.pl +# +# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +# CONFIG_ARCH_RANDOM is not set +# CONFIG_ATA_NONSTANDARD is not set +# CONFIG_DEFAULT_UIMAGE is not set +# CONFIG_EPAPR_BOOT is not set +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FB_UDL=m +CONFIG_FORCE_MAX_ZONEORDER=11 +# CONFIG_FSL_FMAN is not set +# CONFIG_FSL_ULI1575 is not set +# CONFIG_GE_FPGA is not set +# CONFIG_HAS_FSL_QBMAN is not set +# CONFIG_HAS_RAPIDIO is not set +# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set +CONFIG_HIBERNATION=y +# CONFIG_HUGETLB_PAGE is not set +CONFIG_KERNEL_START=0xc0000000 +# CONFIG_MMIO_NVRAM is not set +# CONFIG_MPIC_U3_HT_IRQS is not set +# CONFIG_NEED_DMA_MAP_STATE is not set +# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set +# CONFIG_NONSTATIC_KERNEL is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_NR_CPUS=4 +CONFIG_PAGE_OFFSET=0xc0000000 +# CONFIG_PHYS_ADDR_T_64BIT is not set +# CONFIG_PPC64 is not set +# CONFIG_PPC_85xx is not set +# CONFIG_PPC_970_NAP is not set +CONFIG_PPC_BOOK3S_32=y +# CONFIG_PPC_CELL is not set +# CONFIG_PPC_DOORBELL is not set +# CONFIG_PPC_EPAPR_HV_PIC is not set +CONFIG_PPC_I8259=y +# CONFIG_PPC_ICP_HV is not set +# CONFIG_PPC_ICP_NATIVE is not set +# CONFIG_PPC_ICS_RTAS is not set +CONFIG_PPC_INDIRECT_PCI=y +# CONFIG_PPC_MM_SLICES is not set +CONFIG_PPC_MPC106=y +CONFIG_PPC_OF_BOOT_TRAMPOLINE=y +# CONFIG_PPC_P7_NAP is not set +CONFIG_PPC_RTAS=y +# CONFIG_PPC_WSP is not set +# CONFIG_PPC_XICS is not set +CONFIG_RCU_FANOUT=32 +# CONFIG_RCU_NOCB_CPU is not set +CONFIG_RTC_DRV_DS3232=m +CONFIG_SCSI_SRP_ATTRS=m +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_USB_OTG is not set +CONFIG_WORD_SIZE=32 --- linux-3.13.0.orig/debian.master/config/powerpc/config.flavour.powerpc64-emb +++ linux-3.13.0/debian.master/config/powerpc/config.flavour.powerpc64-emb @@ -0,0 +1,67 @@ +# +# Config options for config.flavour.powerpc64-emb automatically generated by splitconfig.pl +# +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +# CONFIG_ARCH_RANDOM is not set +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_DEFAULT_UIMAGE=y +CONFIG_EPAPR_BOOT=y +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_FOPS=y +CONFIG_FB_SYS_IMAGEBLIT=y +CONFIG_FB_UDL=y +CONFIG_FORCE_MAX_ZONEORDER=13 +# CONFIG_FSL_FMAN is not set +CONFIG_FSL_QMAN_FQ_LOOKUP=y +CONFIG_FSL_RIO=y +# CONFIG_FSL_ULI1575 is not set +# CONFIG_GE_FPGA is not set +CONFIG_HAS_FSL_QBMAN=y +CONFIG_HAS_RAPIDIO=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +# CONFIG_HIBERNATION is not set +CONFIG_HUGETLB_PAGE=y +CONFIG_KERNEL_START=0xc000000000000000 +# CONFIG_MMIO_NVRAM is not set +# CONFIG_MPIC_U3_HT_IRQS is not set +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NONSTATIC_KERNEL=y +CONFIG_NO_HZ_IDLE=y +CONFIG_NR_CPUS=8 +# CONFIG_NUMA is not set +CONFIG_PAGE_OFFSET=0xc000000000000000 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PPC64=y +# CONFIG_PPC_970_NAP is not set +CONFIG_PPC_BOOK3E_64=y +# CONFIG_PPC_BOOK3S_64 is not set +# CONFIG_PPC_CELL is not set +CONFIG_PPC_DOORBELL=y +CONFIG_PPC_EPAPR_HV_PIC=y +# CONFIG_PPC_HAS_HASH_64K is not set +# CONFIG_PPC_I8259 is not set +# CONFIG_PPC_ICP_HV is not set +CONFIG_PPC_ICP_NATIVE=y +# CONFIG_PPC_ICS_RTAS is not set +CONFIG_PPC_INDIRECT_PCI=y +# CONFIG_PPC_MM_SLICES is not set +# CONFIG_PPC_MPC106 is not set +# CONFIG_PPC_OF_BOOT_TRAMPOLINE is not set +# CONFIG_PPC_P7_NAP is not set +# CONFIG_PPC_RTAS is not set +CONFIG_PPC_WSP=y +CONFIG_PPC_XICS=y +CONFIG_RCU_FANOUT=32 +# CONFIG_RCU_NOCB_CPU is not set +CONFIG_RTC_DRV_DS3232=y +# CONFIG_SCHED_SMT is not set +# CONFIG_SCOM_DEBUGFS is not set +CONFIG_SCSI_SRP_ATTRS=m +# CONFIG_SPARSEMEM_MANUAL is not set +# CONFIG_TICK_CPU_ACCOUNTING is not set +# CONFIG_U3_DART is not set +CONFIG_USB_OTG=y +CONFIG_WORD_SIZE=64 --- linux-3.13.0.orig/debian.master/config/powerpc/config.flavour.powerpc64-smp +++ linux-3.13.0/debian.master/config/powerpc/config.flavour.powerpc64-smp @@ -0,0 +1,64 @@ +# +# Config options for config.flavour.powerpc64-smp automatically generated by splitconfig.pl +# +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_ARCH_RANDOM=y +CONFIG_ATA_NONSTANDARD=y +# CONFIG_DEFAULT_UIMAGE is not set +CONFIG_EPAPR_BOOT=y +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_FOPS=y +CONFIG_FB_SYS_IMAGEBLIT=y +CONFIG_FB_UDL=m +CONFIG_FORCE_MAX_ZONEORDER=13 +# CONFIG_FSL_FMAN is not set +# CONFIG_FSL_ULI1575 is not set +# CONFIG_GE_FPGA is not set +# CONFIG_HAS_FSL_QBMAN is not set +# CONFIG_HAS_RAPIDIO is not set +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HIBERNATION=y +CONFIG_HUGETLB_PAGE=y +CONFIG_KERNEL_START=0xc000000000000000 +CONFIG_MMIO_NVRAM=y +CONFIG_MPIC_U3_HT_IRQS=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NONSTATIC_KERNEL=y +# CONFIG_NO_HZ_IDLE is not set +CONFIG_NR_CPUS=1024 +CONFIG_NUMA=y +CONFIG_PAGE_OFFSET=0xc000000000000000 +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PPC64=y +CONFIG_PPC_970_NAP=y +# CONFIG_PPC_BOOK3E_64 is not set +CONFIG_PPC_BOOK3S_64=y +CONFIG_PPC_CELL=y +CONFIG_PPC_DOORBELL=y +# CONFIG_PPC_EPAPR_HV_PIC is not set +CONFIG_PPC_HAS_HASH_64K=y +CONFIG_PPC_I8259=y +CONFIG_PPC_ICP_HV=y +CONFIG_PPC_ICP_NATIVE=y +CONFIG_PPC_ICS_RTAS=y +# CONFIG_PPC_INDIRECT_PCI is not set +CONFIG_PPC_MM_SLICES=y +# CONFIG_PPC_MPC106 is not set +CONFIG_PPC_OF_BOOT_TRAMPOLINE=y +CONFIG_PPC_P7_NAP=y +CONFIG_PPC_RTAS=y +# CONFIG_PPC_WSP is not set +CONFIG_PPC_XICS=y +CONFIG_RCU_FANOUT=64 +CONFIG_RCU_NOCB_CPU=y +CONFIG_RTC_DRV_DS3232=m +CONFIG_SCHED_SMT=y +CONFIG_SCOM_DEBUGFS=y +CONFIG_SCSI_SRP_ATTRS=y +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_U3_DART=y +# CONFIG_USB_OTG is not set +CONFIG_WORD_SIZE=64 --- linux-3.13.0.orig/debian.master/config/ppc64el/config.common.ppc64el +++ linux-3.13.0/debian.master/config/ppc64el/config.common.ppc64el @@ -0,0 +1,371 @@ +# +# Config options for config.common.ppc64el automatically generated by splitconfig.pl +# +CONFIG_64BIT=y +# CONFIG_AHCI_IMX is not set +CONFIG_AIC79XX_RESET_DELAY_MS=5000 +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_ARCH_RANDOM=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +# CONFIG_ASYNC_TX_DMA is not set +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_PIIX=m +# CONFIG_ATOMIC64_SELFTEST is not set +CONFIG_AUDIT_ARCH=y +CONFIG_BCH=m +CONFIG_CODE_PATCHING_SELFTEST=y +CONFIG_COMPACTION=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +# CONFIG_CPU_BIG_ENDIAN is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +CONFIG_CPU_IDLE=y +CONFIG_CPU_LITTLE_ENDIAN=y +CONFIG_CRASH_DUMP=y +CONFIG_DEBUG_MEMORY_INIT=y +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +# CONFIG_DEFAULT_UIMAGE is not set +CONFIG_EPAPR_BOOT=y +# CONFIG_EXYNOS_VIDEO is not set +# CONFIG_EZX_PCAP is not set +CONFIG_FB_ATY128=m +CONFIG_FB_BACKLIGHT=y +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_DDC=m +CONFIG_FB_IBM_GXT4500=y +CONFIG_FB_MACMODES=y +CONFIG_FB_RADEON=m +CONFIG_FB_SVGALIB=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_SYS_IMAGEBLIT=m +CONFIG_FB_UDL=m +CONFIG_FB_VOODOO1=m +# CONFIG_FMAN_P1023 is not set +CONFIG_FMAN_P3040_P4080_P5020=y +# CONFIG_FONTS is not set +CONFIG_FORCE_MAX_ZONEORDER=9 +CONFIG_FRAME_WARN=2048 +CONFIG_FSL_FMAN=y +# CONFIG_FSL_ULI1575 is not set +CONFIG_FUNCTION_TRACER=y +CONFIG_GENERIC_CSUM=y +# CONFIG_GENERIC_PHY is not set +# CONFIG_GENERIC_TBSYNC is not set +# CONFIG_GE_FPGA is not set +CONFIG_GPIO_GENERIC=m +# CONFIG_HAS_FSL_QBMAN is not set +# CONFIG_HAS_RAPIDIO is not set +CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y +# CONFIG_HAVE_AOUT is not set +CONFIG_HAVE_BOOTMEM_INFO_NODE=y +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +# CONFIG_HIBERNATION is not set +# CONFIG_HOTPLUG_PCI_CPCI is not set +# CONFIG_HOTPLUG_PCI_SHPC is not set +CONFIG_HUGETLB_PAGE=y +CONFIG_HVCS=m +# CONFIG_HVC_OLD_HVSI is not set +# CONFIG_HVC_UDBG is not set +CONFIG_HW_RANDOM_POWERNV=m +CONFIG_HZ=100 +CONFIG_HZ_100=y +# CONFIG_HZ_1000 is not set +# CONFIG_HZ_250 is not set +CONFIG_I2C_ALGOBIT=m +CONFIG_IBMEBUS=y +CONFIG_IBMVETH=y +CONFIG_IDE=y +CONFIG_IKCONFIG=y +CONFIG_IMA=y +# CONFIG_INFINIBAND_AMSO1100 is not set +CONFIG_INPUT_IDEAPAD_SLIDEBAR=m +CONFIG_IOMMU_SUPPORT=y +CONFIG_IPMI_SI_PROBE_DEFAULTS=y +CONFIG_IRQ_ALL_CPUS=y +CONFIG_IRQ_DOMAIN_DEBUG=y +# CONFIG_IRQ_FORCED_THREADING_DEFAULT is not set +CONFIG_KERNEL_START=0xc000000000000000 +CONFIG_KSM=y +# CONFIG_KVM_BOOK3S_64 is not set +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LIBERTAS_MESH=y +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_LPARCFG=y +# CONFIG_MACINTOSH_DRIVERS is not set +CONFIG_MEMORY_HOTREMOVE=y +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_TMIO is not set +CONFIG_MII=m +CONFIG_MMC_BLOCK=m +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PLTFM=m +# CONFIG_MMIO_NVRAM is not set +# CONFIG_MPIC_MSGR is not set +# CONFIG_MPIC_U3_HT_IRQS is not set +CONFIG_MTD=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_CMDLINE_PARTS=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_BCH=m +CONFIG_MTD_NAND_ECC=m +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_OF_PARTS=m +CONFIG_MTD_SM_COMMON=m +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +# CONFIG_NET_TULIP is not set +CONFIG_NODES_SHIFT=8 +CONFIG_NONSTATIC_KERNEL=y +CONFIG_NOP_USB_XCEIV=m +# CONFIG_NO_HZ_FULL is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_NR_CPUS=2048 +CONFIG_NUMA=y +CONFIG_PAGE_OFFSET=0xc000000000000000 +CONFIG_PARIDE_EPATC8=y +CONFIG_PATA_SIS=m +# CONFIG_PCCARD is not set +# CONFIG_PCIEPORTBUS is not set +CONFIG_PCI_SYSCALL=y +# CONFIG_PERCPU_TEST is not set +# CONFIG_PERSISTENT_KEYRINGS is not set +CONFIG_PHYSICAL_START=0x00000000 +CONFIG_PHYS_ADDR_T_64BIT=y +# CONFIG_PHY_EXYNOS_DP_VIDEO is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_PM_DEBUG is not set +# CONFIG_PM_RUNTIME is not set +# CONFIG_PM_WAKELOCKS is not set +CONFIG_POWER7_CPU=y +CONFIG_PPC64=y +# CONFIG_PPC_4K_PAGES is not set +CONFIG_PPC_64K_PAGES=y +# CONFIG_PPC_970_NAP is not set +# CONFIG_PPC_BOOK3E_64 is not set +CONFIG_PPC_BOOK3S_64=y +# CONFIG_PPC_CELL is not set +CONFIG_PPC_DENORMALISATION=y +# CONFIG_PPC_DISABLE_WERROR is not set +CONFIG_PPC_DOORBELL=y +# CONFIG_PPC_EPAPR_HV_BYTECHAN is not set +# CONFIG_PPC_EPAPR_HV_PIC is not set +CONFIG_PPC_HAS_HASH_64K=y +CONFIG_PPC_I8259=y +CONFIG_PPC_ICP_HV=y +CONFIG_PPC_ICP_NATIVE=y +# CONFIG_PPC_ICSWX is not set +CONFIG_PPC_ICS_RTAS=y +# CONFIG_PPC_INDIRECT_PCI is not set +# CONFIG_PPC_MAPLE is not set +CONFIG_PPC_MM_SLICES=y +# CONFIG_PPC_MPC106 is not set +CONFIG_PPC_OF_BOOT_TRAMPOLINE=y +CONFIG_PPC_P7_NAP=y +# CONFIG_PPC_PASEMI is not set +# CONFIG_PPC_PMAC is not set +# CONFIG_PPC_PS3 is not set +CONFIG_PPC_RTAS=y +CONFIG_PPC_SMLPAR=y +CONFIG_PPC_SPLPAR=y +# CONFIG_PPC_WSP is not set +CONFIG_PPC_XICS=y +CONFIG_PPS=y +# CONFIG_PPS_CLIENT_GPIO is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_PARPORT is not set +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_RCU is not set +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_PROBE_EVENTS=y +CONFIG_PSERIES_ENERGY=y +# CONFIG_PSTORE_CONSOLE is not set +CONFIG_PSTORE_RAM=m +CONFIG_PTP_1588_CLOCK=y +CONFIG_RAPIDIO_CPS_GEN2=m +CONFIG_RAPIDIO_CPS_XX=m +CONFIG_RAPIDIO_TSI568=m +CONFIG_RAPIDIO_TSI57X=m +# CONFIG_RBTREE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=21 +CONFIG_RCU_FANOUT=64 +# CONFIG_RCU_FAST_NO_HZ is not set +# CONFIG_RCU_NOCB_CPU is not set +# CONFIG_RCU_USER_QS is not set +CONFIG_REED_SOLOMON=m +CONFIG_REGULATOR_FIXED_VOLTAGE=m +# CONFIG_REGULATOR_S2MPS11 is not set +CONFIG_REISERFS_FS=y +# CONFIG_RFKILL is not set +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2X00_LIB_DEBUGFS=y +CONFIG_RTAS_FLASH=m +CONFIG_RTC_DRV_CMOS=m +CONFIG_RTC_DRV_DS3232=m +# CONFIG_SAMSUNG_USB2PHY is not set +# CONFIG_SAMSUNG_USB3PHY is not set +CONFIG_SATA_AHCI_PLATFORM=m +# CONFIG_SATA_HIGHBANK is not set +CONFIG_SATA_SVW=m +# CONFIG_SCHED_AUTOGROUP is not set +CONFIG_SCHED_SMT=y +CONFIG_SCOM_DEBUGFS=y +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SCSI_SRP_ATTRS=y +# CONFIG_SENSORS_SCH56XX_COMMON is not set +CONFIG_SERIAL_8250_PCI=y +# CONFIG_SERIAL_FSL_LPUART is not set +CONFIG_SERIAL_OF_PLATFORM=y +# CONFIG_SERIO_ALTERA_PS2 is not set +# CONFIG_SERIO_APBPS2 is not set +# CONFIG_SERIO_ARC_PS2 is not set +CONFIG_SERIO_I8042=y +# CONFIG_SERIO_OLPC_APSP is not set +# CONFIG_SERIO_PARKBD is not set +# CONFIG_SERIO_PCIPS2 is not set +# CONFIG_SERIO_PS2MULT is not set +# CONFIG_SERIO_RAW is not set +# CONFIG_SERIO_XILINX_XPS_PS2 is not set +# CONFIG_SIMPLE_GPIO is not set +# CONFIG_SOUND is not set +# CONFIG_SPAPR_TCE_IOMMU is not set +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPI_PXA2XX_PCI=m +# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set +CONFIG_SQUASHFS_DECOMP_SINGLE=y +CONFIG_SQUASHFS_FILE_CACHE=y +# CONFIG_SQUASHFS_FILE_DIRECT is not set +# CONFIG_SRAM is not set +CONFIG_STACK_TRACER=y +# CONFIG_STAGING is not set +CONFIG_STANDALONE=y +# CONFIG_SUNRPC_DEBUG is not set +# CONFIG_SWIOTLB is not set +# CONFIG_SYSCTL_SYSCALL is not set +# CONFIG_SYS_HYPERVISOR is not set +CONFIG_TCG_IBMVTPM=y +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TICK_CPU_ACCOUNTING is not set +CONFIG_TIGON3=y +# CONFIG_TIMER_STATS is not set +CONFIG_TRANSPARENT_HUGEPAGE=y +# CONFIG_TWL4030_CORE is not set +# CONFIG_TWL6040_CORE is not set +# CONFIG_U3_DART is not set +# CONFIG_UDBG_RTAS_CONSOLE is not set +# CONFIG_UIO_AEC is not set +# CONFIG_UIO_CIF is not set +# CONFIG_UIO_DMEM_GENIRQ is not set +# CONFIG_UIO_MF624 is not set +# CONFIG_UIO_NETX is not set +# CONFIG_UIO_PCI_GENERIC is not set +# CONFIG_UIO_PDRV_GENIRQ is not set +# CONFIG_UIO_SERCOS3 is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_C67X00_HCD is not set +# CONFIG_USB_CATC is not set +# CONFIG_USB_CHIPIDEA is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_DWC3 is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_EHCI_HCD_PLATFORM is not set +# CONFIG_USB_EHCI_HCD_PPC_OF is not set +# CONFIG_USB_EHCI_ROOT_HUB_TT is not set +# CONFIG_USB_EHSET_TEST_FIXTURE is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EZUSB_FX2 is not set +# CONFIG_USB_FOTG210_HCD is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_FUSBH200_HCD is not set +# CONFIG_USB_GADGET is not set +# CONFIG_USB_HCD_BCMA is not set +# CONFIG_USB_HCD_SSB is not set +# CONFIG_USB_HSIC_USB3503 is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_IPHETH is not set +# CONFIG_USB_ISIGHTFW is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_ISP1301 is not set +# CONFIG_USB_ISP1362_HCD is not set +# CONFIG_USB_ISP1760_HCD is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set +# CONFIG_USB_OHCI_HCD_PLATFORM is not set +# CONFIG_USB_OHCI_HCD_PPC_OF is not set +# CONFIG_USB_OHCI_HCD_PPC_OF_BE is not set +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_PRINTER is not set +# CONFIG_USB_R8A66597_HCD is not set +# CONFIG_USB_RCAR_PHY is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_RTL8152 is not set +# CONFIG_USB_SERIAL is not set +# CONFIG_USB_SEVSEG is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_SL811_HCD is not set +CONFIG_USB_STORAGE=m +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_ENE_UB6250 is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_STORAGE_ONETOUCH is not set +# CONFIG_USB_STORAGE_REALTEK is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_USBAT is not set +CONFIG_USB_SUPPORT=y +# CONFIG_USB_TEST is not set +# CONFIG_USB_TMC is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_UHCI_HCD is not set +# CONFIG_USB_USS720 is not set +# CONFIG_USB_WUSB_CBAF is not set +# CONFIG_USB_YUREX is not set +CONFIG_VGASTATE=m +# CONFIG_VGA_CONSOLE is not set +CONFIG_VIRTIO=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_CONSOLE=y +# CONFIG_VIRTIO_MMIO is not set +CONFIG_VIRTIO_NET=y +CONFIG_VIRTIO_PCI=y +# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set +CONFIG_WIL6210=m +CONFIG_WORD_SIZE=64 +CONFIG_XMON=y +# CONFIG_XZ_DEC_ARM is not set +# CONFIG_XZ_DEC_ARMTHUMB is not set +# CONFIG_XZ_DEC_IA64 is not set +# CONFIG_XZ_DEC_SPARC is not set +# CONFIG_XZ_DEC_TEST is not set +# CONFIG_XZ_DEC_X86 is not set +CONFIG_ZONE_DMA_FLAG=1 --- linux-3.13.0.orig/debian.master/config/ppc64el/config.flavour.generic +++ linux-3.13.0/debian.master/config/ppc64el/config.flavour.generic @@ -0,0 +1,3 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# --- linux-3.13.0.orig/debian.master/config/x32/config.common.x32 +++ linux-3.13.0/debian.master/config/x32/config.common.x32 @@ -0,0 +1 @@ +# nothing here yet --- linux-3.13.0.orig/debian.master/config/x32/config.flavour.generic +++ linux-3.13.0/debian.master/config/x32/config.flavour.generic @@ -0,0 +1 @@ +# nothing here yet --- linux-3.13.0.orig/debian.master/control +++ linux-3.13.0/debian.master/control @@ -0,0 +1,975 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.9.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], libelf-dev, libnewt-dev, libiberty-dev, rsync, libdw-dev, libpci-dev, dpkg (>= 1.16.0~ubuntu4), pkg-config, flex, bison, libunwind8-dev, openssl, libaudit-dev, bc, python-dev, gawk, device-tree-compiler [powerpc], u-boot-tools [powerpc], libc6-dev-ppc64 [powerpc] +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-trusty.git +XS-Testsuite: autopkgtest +#XS-Testsuite-Depends: gcc-4.7 binutils + +Package: linux-source-3.13.0 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-3 +Depends: ${misc:Depends}, binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version 3.13.0 with Ubuntu patches + This package provides the source code for the Linux kernel version + 3.13.0. + . + This package is mainly meant for other packages to use, in order to build + custom flavours. + . + If you wish to use this package to create a custom Linux kernel, then it + is suggested that you investigate the package kernel-package, which has + been designed to ease the task of creating kernel image packages. + . + If you are simply trying to build third-party modules for your kernel, + you do not want this package. Install the appropriate linux-headers + package instead. + +Package: linux-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Conflicts: linux-doc-3 +Replaces: linux-doc-3 +Description: Linux kernel specific documentation for version 3.13.0 + This package provides the various documents in the 3.13.0 kernel + Documentation/ subdirectory. These document kernel subsystems, APIs, device + drivers, and so on. See + /usr/share/doc/linux-doc/00-INDEX for a list of what is + contained in each file. + +Package: linux-headers-3.13.0-46 +Architecture: all +Multi-Arch: foreign +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Description: Header files related to Linux kernel version 3.13.0 + This package provides kernel header files for version 3.13.0, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 armhf arm64 x32 powerpc ppc64el +Depends: ${misc:Depends} +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), linux-kernel-headers +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), linux-kernel-headers, libdrm-dev +Provides: linux-kernel-headers +Multi-Arch: same +Description: Linux Kernel Headers for development + This package provides headers from the Linux kernel. These headers + are used by the installed headers for GNU glibc and other system + libraries. They are NOT meant to be used to build third-party modules for + your kernel. Use linux-headers-* packages for that. + +Package: linux-tools-common +Architecture: all +Multi-Arch: foreign +Section: kernel +Priority: optional +Depends: ${misc:Depends} +Replaces: linux-tools (<= 2.6.32-16.25) +Description: Linux kernel version specific tools for version 3.13.0 + This package provides the architecture independent parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version PGKVER. + +Package: linux-tools-3.13.0-46 +Architecture: i386 amd64 armhf arm64 powerpc ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + You probabally want to install linux-tools-3.13.0-46-. + +Package: linux-cloud-tools-common +Architecture: all +Multi-Arch: foreign +Section: kernel +Priority: optional +Breaks: linux-tools-common (<< 3.13.0-8.28), hv-kvp-daemon-init (<< 3.13) +Replaces: linux-tools-common (<< 3.13.0-8.28), hv-kvp-daemon-init (<< 3.13) +Depends: ${misc:Depends} +Description: Linux kernel version specific cloud tools for version 3.13.0 + This package provides the architecture independent parts for kernel + version locked tools for cloud tools for version PGKVER. + +Package: linux-cloud-tools-3.13.0-46 +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-cloud-tools-common +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud tools for version 3.13.0-46 on + 64 bit x86. + You probabally want to install linux-cloud-tools-3.13.0-46-. + + +Package: linux-image-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc [i386 amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [i386 amd64 x32] | grub [i386 amd64 x32] | lilo (>= 19.1) [i386 amd64 x32] | flash-kernel [armhf arm64] | grub-ieee1275 [ppc64el] +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-generic +Description: Linux kernel image for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-generic, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-generic-dbgsym +Architecture: i386 amd64 armhf arm64 ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-generic +XC-Package-Type: udeb +Section: debian-installer +Architecture: i386 amd64 armhf arm64 ppc64el +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-generic-lpae +Architecture: armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel [armhf] +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-generic-lpae +Description: Linux kernel image for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-generic-lpae +Architecture: armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-generic-lpae, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-generic-lpae-dbgsym +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-generic-lpae +XC-Package-Type: udeb +Section: debian-installer +Architecture: armhf +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc [i386 amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [i386 amd64 x32] | grub [i386 amd64 x32] | lilo (>= 19.1) [i386 amd64 x32] | flash-kernel [armhf arm64] +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-lowlatency +Description: Linux kernel image for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Lowlatency processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-lowlatency meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-lowlatency, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Lowlatency processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-lowlatency meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-lowlatency-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-lowlatency +XC-Package-Type: udeb +Section: debian-installer +Architecture: i386 amd64 +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-ieee1275 +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc64-emb +Description: Linux kernel image for version 3.13.0 on 64-bit PowerPC SMP Book3E + This package contains the Linux kernel image for version 3.13.0 on + 64-bit PowerPC SMP Book3E. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP Book3E processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-emb meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc64-emb, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64-bit PowerPC SMP Book3E + This package contains the Linux kernel extra modules for version 3.13.0 on + 64-bit PowerPC SMP Book3E. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP Book3E processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-emb meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64-bit PowerPC SMP Book3E + This package provides kernel header files for version 3.13.0 on + 64-bit PowerPC SMP Book3E. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc64-emb-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64-bit PowerPC SMP Book3E + This package provides a kernel debug image for version 3.13.0 on + 64-bit PowerPC SMP Book3E. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc64-emb +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc64-smp +Description: Linux kernel image for version 3.13.0 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 3.13.0 on + 64-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc64-smp, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64-bit PowerPC SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 64-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64-bit PowerPC SMP + This package provides kernel header files for version 3.13.0 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc64-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64-bit PowerPC SMP + This package provides a kernel debug image for version 3.13.0 on + 64-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc64-smp +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-ieee1275 +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc-e500 +Description: Linux kernel image for version 3.13.0 on 32-bit Freescale Power e500v1 and e500v2 + This package contains the Linux kernel image for version 3.13.0 on + 32-bit Freescale Power e500v1 and e500v2. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit Freescale Power e500v1 and e500v2 processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-e500 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc-e500, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 32-bit Freescale Power e500v1 and e500v2 + This package contains the Linux kernel extra modules for version 3.13.0 on + 32-bit Freescale Power e500v1 and e500v2. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit Freescale Power e500v1 and e500v2 processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-e500 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 32-bit Freescale Power e500v1 and e500v2 + This package provides kernel header files for version 3.13.0 on + 32-bit Freescale Power e500v1 and e500v2. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc-e500-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 32-bit Freescale Power e500v1 and e500v2 + This package provides a kernel debug image for version 3.13.0 on + 32-bit Freescale Power e500v1 and e500v2. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc-e500 +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-ieee1275 +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc-e500mc +Description: Linux kernel image for version 3.13.0 on 32-bit Freescale Power e500mc + This package contains the Linux kernel image for version 3.13.0 on + 32-bit Freescale Power e500mc. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit Freescale Power e500mc processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-e500mc meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc-e500mc, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 32-bit Freescale Power e500mc + This package contains the Linux kernel extra modules for version 3.13.0 on + 32-bit Freescale Power e500mc. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit Freescale Power e500mc processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-e500mc meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 32-bit Freescale Power e500mc + This package provides kernel header files for version 3.13.0 on + 32-bit Freescale Power e500mc. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc-e500mc-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 32-bit Freescale Power e500mc + This package provides a kernel debug image for version 3.13.0 on + 32-bit Freescale Power e500mc. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc-e500mc +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc-smp +Description: Linux kernel image for version 3.13.0 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 3.13.0 on + 32-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc-smp, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 32-bit PowerPC SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 32-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 32-bit PowerPC SMP + This package provides kernel header files for version 3.13.0 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 32-bit PowerPC SMP + This package provides a kernel debug image for version 3.13.0 on + 32-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc-smp +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + --- linux-3.13.0.orig/debian.master/control.d/flavour-control.stub +++ linux-3.13.0/debian.master/control.d/flavour-control.stub @@ -0,0 +1,129 @@ +# Items that get replaced: +# FLAVOUR +# DESC +# ARCH +# SUPPORTED +# TARGET +# BOOTLOADER +# =PROVIDES= +# +# Items marked with =FOO= are optional +# +# This file describes the template for packages that are created for each flavour +# in debian/control.d/vars.* +# +# This file gets edited in a couple of places. See the debian/control.stub rule in +# debian/rules. PGGVER, ABINUM, and SRCPKGNAME are all converted in the +# process of creating debian/control. +# +# The flavour specific strings (ARCH, DESC, etc) are converted using values from the various +# flavour files in debian/control.d/vars.* +# +# XXX: Leave the blank line before the first package!! + +Package: linux-image-PKGVER-ABINUM-FLAVOUR +Architecture: ARCH +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, =PROVIDES= +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: BOOTLOADER +Suggests: fdutils, SRCPKGNAME-doc-PKGVER | SRCPKGNAME-source-PKGVER, SRCPKGNAME-tools, linux-headers-PKGVER-ABINUM-FLAVOUR +Description: Linux kernel image for version PKGVER on DESC + This package contains the Linux kernel image for version PKGVER on + DESC. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports SUPPORTED processors. + . + TARGET + . + You likely do not want to install this package directly. Instead, install + the linux-FLAVOUR meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-PKGVER-ABINUM-FLAVOUR +Architecture: ARCH +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-PKGVER-ABINUM-FLAVOUR, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version PKGVER on DESC + This package contains the Linux kernel extra modules for version PKGVER on + DESC. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports SUPPORTED processors. + . + TARGET + . + You likely do not want to install this package directly. Instead, install + the linux-FLAVOUR meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-PKGVER-ABINUM-FLAVOUR +Architecture: ARCH +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-PKGVER-ABINUM, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version PKGVER on DESC + This package provides kernel header files for version PKGVER on + DESC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-PKGVER-ABINUM/debian.README.gz for details. + +Package: linux-image-PKGVER-ABINUM-FLAVOUR-dbgsym +Architecture: ARCH +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version PKGVER on DESC + This package provides a kernel debug image for version PKGVER on + DESC. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-PKGVER-ABINUM-FLAVOUR +Architecture: ARCH +Section: devel +Priority: optional +Depends: ${misc:Depends}, SRCPKGNAME-tools-PKGVER-ABINUM +Description: Linux kernel version specific tools for version PKGVER-ABINUM + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version PKGVER-ABINUM on + =HUMAN=. + +Package: linux-cloud-tools-PKGVER-ABINUM-FLAVOUR +Architecture: ARCH +Section: devel +Priority: optional +Depends: ${misc:Depends}, SRCPKGNAME-cloud-tools-PKGVER-ABINUM +Description: Linux kernel version specific cloud tools for version PKGVER-ABINUM + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version PKGVER-ABINUM on + =HUMAN=. + +Package: SRCPKGNAME-udebs-FLAVOUR +XC-Package-Type: udeb +Section: debian-installer +Architecture: ARCH +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + --- linux-3.13.0.orig/debian.master/control.d/generic.inclusion-list +++ linux-3.13.0/debian.master/control.d/generic.inclusion-list @@ -0,0 +1,168 @@ +arch/*/{crypto,kernel,oprofile} +arch/*/kvm/kvm.ko +arch/x86/kvm/kvm-intel.ko +arch/x86/kvm/kvm-amd.ko +crypto/* +drivers/acpi/* +drivers/ata/ahci_platform.ko +drivers/ata/ahci.ko +drivers/ata/acard-ahci.ko +drivers/ata/libahci.ko +drivers/block/nbd.ko +drivers/block/floppy.ko +drivers/block/cryptoloop.ko +drivers/block/rbd.ko +drivers/char/hangcheck-timer.ko +drivers/char/hw_random/virtio-rng.ko +drivers/char/ipmi/ipmi_msghandler.ko +drivers/char/lp.ko +drivers/char/nvram.ko +drivers/char/ppdev.ko +drivers/char/raw.ko +drivers/hv/* +drivers/infiniband/core/ib_core.ko +drivers/infiniband/core/ib_addr.ko +drivers/infiniband/core/ib_cm.ko +drivers/infiniband/core/ib_mad.ko +drivers/infiniband/core/ib_sa.ko +drivers/infiniband/core/iw_cm.ko +drivers/infiniband/core/rdma_cm.ko +drivers/input/evbug.ko +drivers/input/gameport/gameport.ko +drivers/input/mouse/psmouse.ko +drivers/input/serio/hyperv-keyboard.ko +drivers/input/serio/serio_raw.ko +drivers/input/serio/serport.ko +drivers/input/joydev.ko +drivers/input/touchscreen/usbtouchscreen.ko +drivers/input/misc/xen-kbdfront.ko +drivers/md/* +drivers/message/fusion* +drivers/misc/vmw_balloon.ko +drivers/misc/vmw_vmci/vmw_vmci.ko +drivers/net/caif/caif_virtio.ko +drivers/net/mii.ko +drivers/net/ethernet/8390/8390.ko +drivers/net/ethernet/realtek/8139too.ko +drivers/net/ethernet/realtek/8139cp.ko +drivers/net/appletalk/ipddp.ko +drivers/net/bonding/bonding.ko +drivers/net/ppp/bsd_comp.ko +drivers/net/dummy.ko +drivers/net/ethernet/intel/e1000/e1000.ko +drivers/net/ethernet/intel/e1000e/e1000e.ko +drivers/net/eql.ko +drivers/net/ifb.ko +drivers/net/ethernet/intel/igbvf/igbvf.ko +drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko +drivers/net/macvlan.ko +drivers/net/macvtap.ko +drivers/net/ethernet/8390/ne2k-pci.ko +drivers/net/netconsole.ko +drivers/net/ethernet/amd/pcnet32.ko +drivers/net/hyperv/hv_netvsc.ko +drivers/net/ppp/* +drivers/net/slip/* +drivers/net/veth.ko +drivers/net/vmxnet3/vmxnet3.ko +drivers/net/vxlan.ko +drivers/net/xen-netback/* +drivers/parport/parport.ko +drivers/parport/parport_pc.ko +drivers/phy/phy-core.ko +drivers/pps/pps_core.ko +drivers/ptp/ptp.ko +drivers/net/ethernet/dec/tulip/* +drivers/scsi/BusLogic.ko +drivers/scsi/device_handler/scsi_dh.ko +drivers/scsi/iscsi_tcp.ko +drivers/scsi/libiscsi.ko +drivers/scsi/libiscsi_tcp.ko +drivers/scsi/libsas/* +drivers/scsi/osd/osd.ko +drivers/scsi/osd/libosd.ko +drivers/scsi/qla1280.ko +drivers/scsi/raid_class.ko +drivers/scsi/scsi_transport_fc.ko +drivers/scsi/scsi_transport_iscsi.ko +drivers/scsi/scsi_transport_sas.ko +drivers/scsi/scsi_tgt.ko +drivers/scsi/vmw_pvscsi.ko +drivers/scsi/hv_storvsc.ko +drivers/scsi/virtio_scsi.ko +drivers/usb/storage/usb-storage.ko +drivers/vhost/vringh.ko +drivers/video/cirrusfb.ko +drivers/video/output.ko +drivers/video/syscopyarea.ko +drivers/video/sysfillrect.ko +drivers/video/sysimgblt.ko +drivers/video/vga16fb.ko +drivers/video/vgastate.ko +drivers/video/xen-fbfront.ko +drivers/video/fb_sys_fops.ko +drivers/watchdog/softdog.ko +drivers/xen/* +fs/9p/* +fs/binfmt_misc.ko +fs/btrfs/* +fs/cachefiles/cachefiles.ko +fs/ceph/* +fs/configfs/* +fs/exofs/libore.ko +fs/ext*/* +fs/fat/* +fs/nls/nls_iso8859-1.ko +fs/isofs/* +fs/cifs/* +fs/xfs/* +fs/ufs/* +fs/squashfs/* +fs/nfs/* +fs/nfsd/* +fs/nfs_common/* +fs/fscache/* +fs/lockd/* +fs/autofs4/autofs4.ko +fs/overlayfs/* +fs/udf/* +lib/* +net/802/* +net/8021q/* +net/9p/* +net/appletalk/* +net/atm/* +net/ax25/* +net/bridge/* +net/can/* +net/core/* +net/ceph/libceph.ko +net/dccp/* +net/decnet/* +net/ieee802154/* +net/ipv4/* +net/ipv6/* +net/ipx/* +net/irda/* +net/key/* +net/lapb/* +net/llc/* +net/netfilter/* +net/netrom/* +net/openvswitch/* +net/phonet/* +net/rose/* +net/rxrpc/* +net/sched/* +net/sctp/* +net/tipc/* +net/vmw_vsock/* +net/x25/* +net/xfrm/* +net/sunrpc/auth_gss/auth_rpcgss.ko +net/sunrpc/auth_gss/rpcsec_gss_krb5.ko +net/sunrpc/sunrpc.ko +sound/soundcore.ko +sound/core/* +sound/pci/snd-ens1370.ko +sound/drivers/pcsp/snd-pcsp.ko --- linux-3.13.0.orig/debian.master/control.d/vars.generic +++ linux-3.13.0/debian.master/control.d/vars.generic @@ -0,0 +1,6 @@ +arch="i386 amd64 armhf arm64 ppc64el" +supported="Generic" +target="Geared toward desktop and server systems." +desc="=HUMAN= SMP" +bootloader="grub-pc [i386 amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [i386 amd64 x32] | grub [i386 amd64 x32] | lilo (>= 19.1) [i386 amd64 x32] | flash-kernel [armhf arm64] | grub-ieee1275 [ppc64el]" +provides="kvm-api-4, redhat-cluster-modules, ivtv-modules" --- linux-3.13.0.orig/debian.master/control.d/vars.generic-lpae +++ linux-3.13.0/debian.master/control.d/vars.generic-lpae @@ -0,0 +1,6 @@ +arch="armhf" +supported="Generic LPAE" +target="Geared toward desktop and server systems." +desc="=HUMAN= SMP" +bootloader="flash-kernel [armhf]" +provides="kvm-api-4, redhat-cluster-modules, ivtv-modules" --- linux-3.13.0.orig/debian.master/control.d/vars.lowlatency +++ linux-3.13.0/debian.master/control.d/vars.lowlatency @@ -0,0 +1,6 @@ +arch="i386 amd64" +supported="Lowlatency" +target="Geared toward desktop and server systems." +desc="=HUMAN= SMP" +bootloader="grub-pc [i386 amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [i386 amd64 x32] | grub [i386 amd64 x32] | lilo (>= 19.1) [i386 amd64 x32] | flash-kernel [armhf arm64]" +provides="kvm-api-4, redhat-cluster-modules, ivtv-modules" --- linux-3.13.0.orig/debian.master/control.d/vars.powerpc-e500 +++ linux-3.13.0/debian.master/control.d/vars.powerpc-e500 @@ -0,0 +1,6 @@ +supported="32-bit Freescale Power e500v1 and e500v2" +target="Geared toward server systems." +desc="32-bit Freescale Power e500v1 and e500v2" +bootloader="grub-ieee1275" +provides="redhat-cluster-modules, ivtv-modules" +arch="powerpc" --- linux-3.13.0.orig/debian.master/control.d/vars.powerpc-e500mc +++ linux-3.13.0/debian.master/control.d/vars.powerpc-e500mc @@ -0,0 +1,6 @@ +supported="32-bit Freescale Power e500mc" +target="Geared toward server systems." +desc="32-bit Freescale Power e500mc" +bootloader="grub-ieee1275" +provides="redhat-cluster-modules, ivtv-modules" +arch="powerpc" --- linux-3.13.0.orig/debian.master/control.d/vars.powerpc-smp +++ linux-3.13.0/debian.master/control.d/vars.powerpc-smp @@ -0,0 +1,6 @@ +supported="32-bit PowerPC SMP" +target="Geared toward desktop or server systems." +desc="32-bit PowerPC SMP" +bootloader="yaboot" +provides="redhat-cluster-modules, ivtv-modules" +arch="powerpc" --- linux-3.13.0.orig/debian.master/control.d/vars.powerpc64-emb +++ linux-3.13.0/debian.master/control.d/vars.powerpc64-emb @@ -0,0 +1,6 @@ +supported="64-bit PowerPC SMP Book3E" +target="Geared toward desktop or server systems." +desc="64-bit PowerPC SMP Book3E" +bootloader="grub-ieee1275" +provides="redhat-cluster-modules, ivtv-modules" +arch="powerpc" --- linux-3.13.0.orig/debian.master/control.d/vars.powerpc64-smp +++ linux-3.13.0/debian.master/control.d/vars.powerpc64-smp @@ -0,0 +1,6 @@ +supported="64-bit PowerPC SMP" +target="Geared toward desktop or server systems." +desc="64-bit PowerPC SMP" +bootloader="yaboot" +provides="redhat-cluster-modules, ivtv-modules" +arch="powerpc" --- linux-3.13.0.orig/debian.master/control.stub +++ linux-3.13.0/debian.master/control.stub @@ -0,0 +1,975 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.9.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], libelf-dev, libnewt-dev, libiberty-dev, rsync, libdw-dev, libpci-dev, dpkg (>= 1.16.0~ubuntu4), pkg-config, flex, bison, libunwind8-dev, openssl, libaudit-dev, bc, python-dev, gawk, device-tree-compiler [powerpc], u-boot-tools [powerpc], libc6-dev-ppc64 [powerpc] +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-trusty.git +XS-Testsuite: autopkgtest +#XS-Testsuite-Depends: gcc-4.7 binutils + +Package: linux-source-3.13.0 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-3 +Depends: ${misc:Depends}, binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version 3.13.0 with Ubuntu patches + This package provides the source code for the Linux kernel version + 3.13.0. + . + This package is mainly meant for other packages to use, in order to build + custom flavours. + . + If you wish to use this package to create a custom Linux kernel, then it + is suggested that you investigate the package kernel-package, which has + been designed to ease the task of creating kernel image packages. + . + If you are simply trying to build third-party modules for your kernel, + you do not want this package. Install the appropriate linux-headers + package instead. + +Package: linux-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Conflicts: linux-doc-3 +Replaces: linux-doc-3 +Description: Linux kernel specific documentation for version 3.13.0 + This package provides the various documents in the 3.13.0 kernel + Documentation/ subdirectory. These document kernel subsystems, APIs, device + drivers, and so on. See + /usr/share/doc/linux-doc/00-INDEX for a list of what is + contained in each file. + +Package: linux-headers-3.13.0-46 +Architecture: all +Multi-Arch: foreign +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Description: Header files related to Linux kernel version 3.13.0 + This package provides kernel header files for version 3.13.0, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 armhf arm64 x32 powerpc ppc64el +Depends: ${misc:Depends} +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), linux-kernel-headers +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), linux-kernel-headers, libdrm-dev +Provides: linux-kernel-headers +Multi-Arch: same +Description: Linux Kernel Headers for development + This package provides headers from the Linux kernel. These headers + are used by the installed headers for GNU glibc and other system + libraries. They are NOT meant to be used to build third-party modules for + your kernel. Use linux-headers-* packages for that. + +Package: linux-tools-common +Architecture: all +Multi-Arch: foreign +Section: kernel +Priority: optional +Depends: ${misc:Depends} +Replaces: linux-tools (<= 2.6.32-16.25) +Description: Linux kernel version specific tools for version 3.13.0 + This package provides the architecture independent parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version PGKVER. + +Package: linux-tools-3.13.0-46 +Architecture: i386 amd64 armhf arm64 powerpc ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + You probabally want to install linux-tools-3.13.0-46-. + +Package: linux-cloud-tools-common +Architecture: all +Multi-Arch: foreign +Section: kernel +Priority: optional +Breaks: linux-tools-common (<< 3.13.0-8.28), hv-kvp-daemon-init (<< 3.13) +Replaces: linux-tools-common (<< 3.13.0-8.28), hv-kvp-daemon-init (<< 3.13) +Depends: ${misc:Depends} +Description: Linux kernel version specific cloud tools for version 3.13.0 + This package provides the architecture independent parts for kernel + version locked tools for cloud tools for version PGKVER. + +Package: linux-cloud-tools-3.13.0-46 +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-cloud-tools-common +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud tools for version 3.13.0-46 on + 64 bit x86. + You probabally want to install linux-cloud-tools-3.13.0-46-. + + +Package: linux-image-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc [i386 amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [i386 amd64 x32] | grub [i386 amd64 x32] | lilo (>= 19.1) [i386 amd64 x32] | flash-kernel [armhf arm64] | grub-ieee1275 [ppc64el] +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-generic +Description: Linux kernel image for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-generic, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-generic-dbgsym +Architecture: i386 amd64 armhf arm64 ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-generic +XC-Package-Type: udeb +Section: debian-installer +Architecture: i386 amd64 armhf arm64 ppc64el +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-generic-lpae +Architecture: armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel [armhf] +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-generic-lpae +Description: Linux kernel image for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-generic-lpae +Architecture: armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-generic-lpae, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-generic-lpae-dbgsym +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-generic-lpae +XC-Package-Type: udeb +Section: debian-installer +Architecture: armhf +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc [i386 amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [i386 amd64 x32] | grub [i386 amd64 x32] | lilo (>= 19.1) [i386 amd64 x32] | flash-kernel [armhf arm64] +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-lowlatency +Description: Linux kernel image for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Lowlatency processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-lowlatency meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-lowlatency, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Lowlatency processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-lowlatency meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-lowlatency-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-lowlatency +XC-Package-Type: udeb +Section: debian-installer +Architecture: i386 amd64 +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-ieee1275 +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc64-emb +Description: Linux kernel image for version 3.13.0 on 64-bit PowerPC SMP Book3E + This package contains the Linux kernel image for version 3.13.0 on + 64-bit PowerPC SMP Book3E. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP Book3E processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-emb meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc64-emb, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64-bit PowerPC SMP Book3E + This package contains the Linux kernel extra modules for version 3.13.0 on + 64-bit PowerPC SMP Book3E. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP Book3E processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-emb meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64-bit PowerPC SMP Book3E + This package provides kernel header files for version 3.13.0 on + 64-bit PowerPC SMP Book3E. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc64-emb-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64-bit PowerPC SMP Book3E + This package provides a kernel debug image for version 3.13.0 on + 64-bit PowerPC SMP Book3E. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc64-emb +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc64-smp +Description: Linux kernel image for version 3.13.0 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 3.13.0 on + 64-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc64-smp, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64-bit PowerPC SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 64-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64-bit PowerPC SMP + This package provides kernel header files for version 3.13.0 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc64-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64-bit PowerPC SMP + This package provides a kernel debug image for version 3.13.0 on + 64-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc64-smp +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-ieee1275 +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc-e500 +Description: Linux kernel image for version 3.13.0 on 32-bit Freescale Power e500v1 and e500v2 + This package contains the Linux kernel image for version 3.13.0 on + 32-bit Freescale Power e500v1 and e500v2. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit Freescale Power e500v1 and e500v2 processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-e500 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc-e500, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 32-bit Freescale Power e500v1 and e500v2 + This package contains the Linux kernel extra modules for version 3.13.0 on + 32-bit Freescale Power e500v1 and e500v2. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit Freescale Power e500v1 and e500v2 processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-e500 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 32-bit Freescale Power e500v1 and e500v2 + This package provides kernel header files for version 3.13.0 on + 32-bit Freescale Power e500v1 and e500v2. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc-e500-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 32-bit Freescale Power e500v1 and e500v2 + This package provides a kernel debug image for version 3.13.0 on + 32-bit Freescale Power e500v1 and e500v2. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc-e500 +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-ieee1275 +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc-e500mc +Description: Linux kernel image for version 3.13.0 on 32-bit Freescale Power e500mc + This package contains the Linux kernel image for version 3.13.0 on + 32-bit Freescale Power e500mc. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit Freescale Power e500mc processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-e500mc meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc-e500mc, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 32-bit Freescale Power e500mc + This package contains the Linux kernel extra modules for version 3.13.0 on + 32-bit Freescale Power e500mc. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit Freescale Power e500mc processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-e500mc meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 32-bit Freescale Power e500mc + This package provides kernel header files for version 3.13.0 on + 32-bit Freescale Power e500mc. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc-e500mc-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 32-bit Freescale Power e500mc + This package provides a kernel debug image for version 3.13.0 on + 32-bit Freescale Power e500mc. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc-e500mc +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc-smp +Description: Linux kernel image for version 3.13.0 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 3.13.0 on + 32-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc-smp, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 32-bit PowerPC SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 32-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 32-bit PowerPC SMP + This package provides kernel header files for version 3.13.0 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 32-bit PowerPC SMP + This package provides a kernel debug image for version 3.13.0 on + 32-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc-smp +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + --- linux-3.13.0.orig/debian.master/control.stub.in +++ linux-3.13.0/debian.master/control.stub.in @@ -0,0 +1,119 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.9.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], libelf-dev, libnewt-dev, libiberty-dev, rsync, libdw-dev, libpci-dev, dpkg (>= 1.16.0~ubuntu4), pkg-config, flex, bison, libunwind8-dev, openssl, libaudit-dev, bc, python-dev, gawk, device-tree-compiler [powerpc], u-boot-tools [powerpc], libc6-dev-ppc64 [powerpc] +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-trusty.git +XS-Testsuite: autopkgtest +#XS-Testsuite-Depends: gcc-4.7 binutils + +Package: SRCPKGNAME-source-PKGVER +Architecture: all +Section: devel +Priority: optional +Provides: SRCPKGNAME-source, SRCPKGNAME-source-3 +Depends: ${misc:Depends}, binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version PKGVER with Ubuntu patches + This package provides the source code for the Linux kernel version + PKGVER. + . + This package is mainly meant for other packages to use, in order to build + custom flavours. + . + If you wish to use this package to create a custom Linux kernel, then it + is suggested that you investigate the package kernel-package, which has + been designed to ease the task of creating kernel image packages. + . + If you are simply trying to build third-party modules for your kernel, + you do not want this package. Install the appropriate linux-headers + package instead. + +Package: SRCPKGNAME-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Conflicts: SRCPKGNAME-doc-3 +Replaces: SRCPKGNAME-doc-3 +Description: Linux kernel specific documentation for version PKGVER + This package provides the various documents in the PKGVER kernel + Documentation/ subdirectory. These document kernel subsystems, APIs, device + drivers, and so on. See + /usr/share/doc/SRCPKGNAME-doc/00-INDEX for a list of what is + contained in each file. + +Package: SRCPKGNAME-headers-PKGVER-ABINUM +Architecture: all +Multi-Arch: foreign +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Description: Header files related to Linux kernel version PKGVER + This package provides kernel header files for version PKGVER, for sites + that want the latest kernel headers. Please read + /usr/share/doc/SRCPKGNAME-headers-PKGVER-ABINUM/debian.README.gz for details + +Package: SRCPKGNAME-libc-dev +Architecture: i386 amd64 armhf arm64 x32 powerpc ppc64el +Depends: ${misc:Depends} +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), SRCPKGNAME-kernel-headers +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), SRCPKGNAME-kernel-headers, libdrm-dev +Provides: SRCPKGNAME-kernel-headers +Multi-Arch: same +Description: Linux Kernel Headers for development + This package provides headers from the Linux kernel. These headers + are used by the installed headers for GNU glibc and other system + libraries. They are NOT meant to be used to build third-party modules for + your kernel. Use SRCPKGNAME-headers-* packages for that. + +Package: SRCPKGNAME-tools-common +Architecture: all +Multi-Arch: foreign +Section: kernel +Priority: optional +Depends: ${misc:Depends} +Replaces: SRCPKGNAME-tools (<= 2.6.32-16.25) +Description: Linux kernel version specific tools for version PKGVER + This package provides the architecture independent parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version PGKVER. + +Package: SRCPKGNAME-tools-PKGVER-ABINUM +Architecture: i386 amd64 armhf arm64 powerpc ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, SRCPKGNAME-tools-common +Description: Linux kernel version specific tools for version PKGVER-ABINUM + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version PKGVER-ABINUM on + =HUMAN=. + You probabally want to install linux-tools-PKGVER-ABINUM-. + +Package: SRCPKGNAME-cloud-tools-common +Architecture: all +Multi-Arch: foreign +Section: kernel +Priority: optional +Breaks: SRCPKGNAME-tools-common (<< 3.13.0-8.28), hv-kvp-daemon-init (<< 3.13) +Replaces: SRCPKGNAME-tools-common (<< 3.13.0-8.28), hv-kvp-daemon-init (<< 3.13) +Depends: ${misc:Depends} +Description: Linux kernel version specific cloud tools for version PKGVER + This package provides the architecture independent parts for kernel + version locked tools for cloud tools for version PGKVER. + +Package: SRCPKGNAME-cloud-tools-PKGVER-ABINUM +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, SRCPKGNAME-cloud-tools-common +Description: Linux kernel version specific cloud tools for version PKGVER-ABINUM + This package provides the architecture dependant parts for kernel + version locked tools for cloud tools for version PKGVER-ABINUM on + =HUMAN=. + You probabally want to install linux-cloud-tools-PKGVER-ABINUM-. + --- linux-3.13.0.orig/debian.master/copyright +++ linux-3.13.0/debian.master/copyright @@ -0,0 +1,29 @@ +This is the Ubuntu prepackaged version of the Linux kernel. +Linux was written by Linus Torvalds +and others. + +This package was put together by the Ubuntu Kernel Team, from +sources retrieved from upstream linux git. +The sources may be found at most Linux ftp sites, including +ftp://ftp.kernel.org/pub/linux/kernel/ + +This package is currently maintained by the +Ubuntu Kernel Team + +Linux is copyrighted by Linus Torvalds and others. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 dated June, 1991. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Ubuntu Linux systems, the complete text of the GNU General +Public License v2 can be found in `/usr/share/common-licenses/GPL-2'. --- linux-3.13.0.orig/debian.master/d-i/exclude-firmware.armhf-generic +++ linux-3.13.0/debian.master/d-i/exclude-firmware.armhf-generic @@ -0,0 +1,2 @@ +nic-modules +scsi-modules --- linux-3.13.0.orig/debian.master/d-i/exclude-firmware.armhf-generic-lpae +++ linux-3.13.0/debian.master/d-i/exclude-firmware.armhf-generic-lpae @@ -0,0 +1,2 @@ +nic-modules +scsi-modules --- linux-3.13.0.orig/debian.master/d-i/exclude-modules.amd64-virtual +++ linux-3.13.0/debian.master/d-i/exclude-modules.amd64-virtual @@ -0,0 +1,14 @@ +pata-modules +firewire-core-modules +plip-modules +usb-modules +pcmcia-storage-modules +input-modules +nic-pcmcia-modules +pcmcia-modules +nic-usb-modules +nfs-modules +speakup-modules +ppp-modules +sata-modules +ipmi-modules --- linux-3.13.0.orig/debian.master/d-i/exclude-modules.arm64-generic +++ linux-3.13.0/debian.master/d-i/exclude-modules.arm64-generic @@ -0,0 +1,11 @@ +serial-modules +pata-modules +firewire-core-modules +floppy-modules +usb-modules +pcmcia-storage-modules +fb-modules +nic-pcmcia-modules +pcmcia-modules +nic-usb-modules +message-modules --- linux-3.13.0.orig/debian.master/d-i/exclude-modules.armhf-generic +++ linux-3.13.0/debian.master/d-i/exclude-modules.armhf-generic @@ -0,0 +1,10 @@ +serial-modules +firewire-core-modules +floppy-modules +pcmcia-storage-modules +fb-modules +nic-pcmcia-modules +pcmcia-modules +pata-modules +message-modules +virtio-modules --- linux-3.13.0.orig/debian.master/d-i/exclude-modules.armhf-generic-lpae +++ linux-3.13.0/debian.master/d-i/exclude-modules.armhf-generic-lpae @@ -0,0 +1,10 @@ +serial-modules +firewire-core-modules +floppy-modules +pcmcia-storage-modules +fb-modules +nic-pcmcia-modules +pcmcia-modules +pata-modules +message-modules +virtio-modules --- linux-3.13.0.orig/debian.master/d-i/exclude-modules.i386-virtual +++ linux-3.13.0/debian.master/d-i/exclude-modules.i386-virtual @@ -0,0 +1,14 @@ +pata-modules +firewire-core-modules +plip-modules +usb-modules +pcmcia-storage-modules +input-modules +nic-pcmcia-modules +pcmcia-modules +nic-usb-modules +nfs-modules +speakup-modules +ppp-modules +sata-modules +ipmi-modules --- linux-3.13.0.orig/debian.master/d-i/exclude-modules.powerpc +++ linux-3.13.0/debian.master/d-i/exclude-modules.powerpc @@ -0,0 +1,7 @@ +efi-modules +fb-modules +acpi-modules +serial-modules +nic-pcmcia-modules +pcmcia-modules +pcmcia-storage-modules --- linux-3.13.0.orig/debian.master/d-i/exclude-modules.ppc64el-generic +++ linux-3.13.0/debian.master/d-i/exclude-modules.ppc64el-generic @@ -0,0 +1,11 @@ +serial-modules +pata-modules +fat-modules +pcmcia-storage-modules +nic-pcmcia-modules +pcmcia-modules +firewire-core-modules +usb-modules +mouse-modules +irda-modules +speakup-modules --- linux-3.13.0.orig/debian.master/d-i/firmware/README.txt +++ linux-3.13.0/debian.master/d-i/firmware/README.txt @@ -0,0 +1,4 @@ +# +# Place the names of udeb modules into this directory that require +# runtime firmware. +# --- linux-3.13.0.orig/debian.master/d-i/firmware/kernel-image +++ linux-3.13.0/debian.master/d-i/firmware/kernel-image @@ -0,0 +1,14 @@ +device-tree/apm-mustang.dtb ? +device-tree/highbank.dtb ? +device-tree/imx6dl-wandboard.dtb ? +device-tree/imx6q-sabrelite.dtb ? +device-tree/imx6q-wandboard.dtb ? +device-tree/omap3-beagle-xm.dtb ? +device-tree/omap4-panda.dtb ? +device-tree/omap4-panda-es.dtb ? +device-tree/tegra20-harmony.dtb ? +device-tree/tegra20-paz00.dtb ? +device-tree/tegra20-seaboard.dtb ? +device-tree/tegra20-trimslice.dtb ? +device-tree/tegra20-ventana.dtb ? +device-tree/tegra20-whistler.dtb ? --- linux-3.13.0.orig/debian.master/d-i/firmware/nic-modules +++ linux-3.13.0/debian.master/d-i/firmware/nic-modules @@ -0,0 +1,14 @@ +e100/d101m_ucode.bin ? +e100/d101s_ucode.bin ? +e100/d102e_ucode.bin ? +bnx2/bnx2-mips-09-6.2.1b.fw ? +bnx2/bnx2-rv2p-06-6.0.15.fw ? +bnx2/bnx2-mips-06-6.2.3.fw ? +bnx2/bnx2-rv2p-09-6.0.17.fw ? +bnx2/bnx2-rv2p-09ax-6.0.17.fw ? +bnx2x/bnx2x-e1h-7.8.17.0.fw ? +bnx2x/bnx2x-e1-7.8.17.0.fw ? +bnx2x/bnx2x-e2-7.8.17.0.fw ? +tigon/tg3_tso5.bin ? +tigon/tg3_tso.bin ? +tigon/tg3.bin ? --- linux-3.13.0.orig/debian.master/d-i/firmware/scsi-modules +++ linux-3.13.0/debian.master/d-i/firmware/scsi-modules @@ -0,0 +1,3 @@ +qlogic/1040.bin ? +qlogic/12160.bin ? +qlogic/1280.bin ? --- linux-3.13.0.orig/debian.master/d-i/kernel-versions +++ linux-3.13.0/debian.master/d-i/kernel-versions @@ -0,0 +1,19 @@ +# arch version flavour installedname suffix bdep +amd64 3.13.0-46 generic 3.13.0-46-generic - + +i386 3.13.0-46 generic 3.13.0-46-generic - + +armhf 3.13.0-46 generic 3.13.0-46-generic - + +armhf 3.13.0-46 generic-lpae 3.13.0-46-generic-lpae - + +arm64 3.13.0-46 generic 3.13.0-46-generic - + +ppc64el 3.13.0-46 generic 3.13.0-46-generic - + +# Ports +# arch version flavour installedname suffix bdep +powerpc 3.13.0-46 powerpc-smp 3.13.0-46-powerpc-smp - +powerpc 3.13.0-46 powerpc64-smp 3.13.0-46-powerpc64-smp - +powerpc 3.13.0-46 powerpc-e500 3.13.0-46-powerpc-e500 - +powerpc 3.13.0-46 powerpc-e500mc 3.13.0-46-powerpc-e500mc - --- linux-3.13.0.orig/debian.master/d-i/kernel-versions.in +++ linux-3.13.0/debian.master/d-i/kernel-versions.in @@ -0,0 +1,19 @@ +# arch version flavour installedname suffix bdep +amd64 PKGVER-ABINUM generic PKGVER-ABINUM-generic - + +i386 PKGVER-ABINUM generic PKGVER-ABINUM-generic - + +armhf PKGVER-ABINUM generic PKGVER-ABINUM-generic - + +armhf PKGVER-ABINUM generic-lpae PKGVER-ABINUM-generic-lpae - + +arm64 PKGVER-ABINUM generic PKGVER-ABINUM-generic - + +ppc64el PKGVER-ABINUM generic PKGVER-ABINUM-generic - + +# Ports +# arch version flavour installedname suffix bdep +powerpc PKGVER-ABINUM powerpc-smp PKGVER-ABINUM-powerpc-smp - +powerpc PKGVER-ABINUM powerpc64-smp PKGVER-ABINUM-powerpc64-smp - +powerpc PKGVER-ABINUM powerpc-e500 PKGVER-ABINUM-powerpc-e500 - +powerpc PKGVER-ABINUM powerpc-e500mc PKGVER-ABINUM-powerpc-e500mc - --- linux-3.13.0.orig/debian.master/d-i/modules-powerpc/block-modules +++ linux-3.13.0/debian.master/d-i/modules-powerpc/block-modules @@ -0,0 +1,31 @@ +aoe +aten +bpck +bpck6 ? +cciss +comm +cpqarray ? +DAC960 +dstr +epat +epia +fit2 +fit3 +friq +frpw +kbic +ktti +nbd +on20 +on26 +paride +pcd +pd +pf +pg +ps3disk ? +ps3vram ? +pt +sx8 +umem +virtio_blk ? --- linux-3.13.0.orig/debian.master/d-i/modules-powerpc/message-modules +++ linux-3.13.0/debian.master/d-i/modules-powerpc/message-modules @@ -0,0 +1,13 @@ +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +i2o_block +i2o_bus +i2o_config ? +i2o_core +i2o_proc +i2o_scsi --- linux-3.13.0.orig/debian.master/d-i/modules-powerpc/nic-modules +++ linux-3.13.0/debian.master/d-i/modules-powerpc/nic-modules @@ -0,0 +1,152 @@ +3c359 ? +3c501 ? +3c503 ? +3c505 ? +3c507 ? +3c509 ? +3c515 ? +3c523 ? +3c527 ? +3c59x ? +8139cp ? +8139too ? +82596 ? +abyss ? +ac3200 ? +adm8211 ? +airo ? +airport ? +amd8111e ? +arc4 ? +arcnet ? +arc-rawmode ? +arc-rimi ? +arlan ? +at1700 ? +atl1 ? +atl1e ? +atl2 ? +atmel ? +atmel_pci ? +b44 ? +bcm43xx ? +bcm43xx-mac80211 ? +bmac ? +bnx2 ? +bnx2x ? +bonding ? +cassini ? +com20020 ? +com20020-pci ? +com90io ? +com90xx ? +cs89x0 ? +de2104x ? +de4x5 ? +de600 ? +de620 ? +defxx ? +depca ? +dl2k ? +dmfe ? +dummy ? +e100 ? +e1000 ? +e1000e ? +e2100 ? +eepro ? +eepro100 ? +eexpress ? +epic100 ? +eql ? +es3210 ? +eth16i ? +ewrk3 ? +fealnx ? +forcedeth ? +igb ? +hamachi ? +hermes ? +hp ? +hp100 ? +hp-plus ? +ibmtr ? +ibmveth ? +ipddp ? +ipw2100 ? +ipw2200 ? +ipw3945 ? +ixgb ? +lance ? +lanstreamer ? +lasi_82596 ? +lne390 ? +lp486e ? +mace ? +mv643xx_eth ? +myri_sbus ? +natsemi ? +ne ? +ne2 ? +ne2k-pci ? +ne3210 ? +netconsole ? +netxen_nic ? +ni5010 ? +ni52 ? +ni65 ? +niu ? +ns83820 ? +olympic ? +orinoco ? +orinoco_pci ? +orinoco_plx ? +orinoco_tmd ? +pcnet32 ? +ps3_gelic ? +r8169 ? +rate_control ? +rfc1051 ? +rfc1201 ? +rrunner ? +rt2400 ? +rt2500 ? +rt61pci ? +s2io ? +shaper ? +sis190 ? +sis900 ? +spidernet ? +skfp ? +skge ? +sk98lin ? +sky2 ? +smc9194 ? +smc-ultra ? +smc-ultra32 ? +starfire ? +strip ? +sunbmac ? +sundance ? +sungem ? +sungem_phy ? +sunhme ? +sunlance ? +sunqe ? +sunvnet ? +tg3 ? +tlan ? +tms380tr ? +tmspci ? +tulip ? +tun ? +typhoon ? +uli526x ? +via-rhine ? +via-velocity ? +virtio_net ? +wavelan ? +wd ? +winbond-840 ? +yellowfin ? +znet ? --- linux-3.13.0.orig/debian.master/d-i/modules-powerpc/scsi-modules +++ linux-3.13.0/debian.master/d-i/modules-powerpc/scsi-modules @@ -0,0 +1,118 @@ +# SCSI +raid_class ? +scsi_transport_spi ? +scsi_transport_fc ? +scsi_transport_iscsi ? +scsi_transport_sas ? +iscsi_tcp ? +libiscsi ? +amiga7xx ? +a3000 ? +a2091 ? +gvp11 ? +mvme147 ? +sgiwd93 ? +cyberstorm ? +cyberstormII ? +blz2060 ? +blz1230 ? +fastlane ? +oktagon_esp_mod ? +atari_scsi ? +mac_scsi ? +mac_esp ? +sun3_scsi ? +mvme16x ? +bvme6000 ? +sim710 ? +advansys ? +psi240i ? +BusLogic ? +dpt_i2o ? +u14-34f ? +ultrastor ? +aha152x ? +aha1542 ? +aha1740 ? +aic7xxx_old ? +ips ? +fd_mcs ? +fdomain ? +in2000 ? +g_NCR5380 ? +g_NCR5380_mmio ? +NCR53c406a ? +NCR_D700 ? +NCR_Q720_mod ? +sym53c416 ? +qlogicfas408 ? +qla1280 ? +pas16 ? +seagate ? +seagate ? +t128 ? +dmx3191d ? +dtc ? +zalon7xx ? +eata_pio ? +wd7000 ? +mca_53c9x ? +ibmmca ? +ibmvfc ? +ibmvscsic ? +eata ? +dc395x ? +tmscsim ? +megaraid ? +atp870u ? +esp ? +gdth ? +initio ? +a100u2w ? +qlogicpti ? +ide-scsi ? +mesh ? +mac53c94 ? +pluto ? +dec_esp ? +3w-xxxx ? +3w-9xxx ? +ppa ? +imm ? +jazz_esp ? +sun3x_esp ? +fcal ? +lasi700 ? +nsp32 ? +ipr ? +hptiop ? +stex ? +osst ? +sg ? +ch ? +scsi_debug ? +aacraid ? +aic7xxx ? +aic79xx ? +aic94xx ? +arcmsr ? +acornscsi_mod ? +arxescsi ? +cumana_1 ? +cumana_2 ? +ecoscsi ? +oak ? +powertec ? +eesox ? +ibmvscsic ? +libsas ? +lpfc ? +megaraid_mm ? +megaraid_mbox ? +megaraid_sas ? +qla2xxx ? +sym53c8xx ? +qla4xxx ? +mvsas ? +sr_mod ? +sd_mod ? --- linux-3.13.0.orig/debian.master/d-i/modules-powerpc/storage-core-modules +++ linux-3.13.0/debian.master/d-i/modules-powerpc/storage-core-modules @@ -0,0 +1,13 @@ +# Core stacks +usb-storage ? + +# Block level + +# Loop modules +cryptoloop + +# Needs to be here for better cdrom initrd layout +isofs + +ps3stor_lib ? +ps3rom ? --- linux-3.13.0.orig/debian.master/d-i/modules/block-modules +++ linux-3.13.0/debian.master/d-i/modules/block-modules @@ -0,0 +1,34 @@ +aoe ? +aten ? +bpck ? +bpck6 ? +cciss ? +comm ? +cpqarray ? +DAC960 ? +dstr ? +epat ? +epia ? +fit2 ? +fit3 ? +friq ? +frpw ? +hpsa ? +kbic ? +ktti ? +nbd ? +nvme ? +on20 ? +on26 ? +paride ? +pcd ? +pd ? +pf ? +pg ? +pt ? +sdhci-tegra ? +sx8 ? +umem ? +virtio_blk ? +xen-blkfront ? +mtip32xx ? --- linux-3.13.0.orig/debian.master/d-i/modules/crypto-modules +++ linux-3.13.0/debian.master/d-i/modules/crypto-modules @@ -0,0 +1,70 @@ +aesni-intel ? +aes-x86_64 ? +af_alg ? +algif_hash ? +algif_skcipher ? +ansi_cprng ? +anubis ? +arc4 ? +async_memcpy ? +async_pq ? +async_raid6_recov ? +async_tx ? +async_xor ? +authenc ? +authencesn ? +blowfish_common ? +blowfish_generic ? +blowfish-x86_64 ? +camellia ? +cast5 ? +cast6 ? +ccm ? +cryptd ? +cryptoloop ? +crypto_null ? +crypto_user ? +ctr ? +cts ? +deflate ? +des_generic ? +fcrypt ? +gcm ? +gf128mul ? +ghash-clmulni-intel ? +ghash-generic ? +khazad ? +lrw ? +lzo ? +md4 ? +michael_mic ? +padlock-aes ? +padlock-sha ? +pcbc ? +pcrypt ? +raid6test ? +rmd128 ? +rmd160 ? +rmd256 ? +rmd320 ? +salsa20_generic ? +salsa20-x86_64 ? +seed ? +seqiv ? +serpent_generic ? +serpent-sse2-x86_64 ? +sha1-ssse3 ? +sha512_generic ? +tcrypt ? +tea ? +tgr192 ? +twofish_common ? +twofish_generic ? +twofish-x86_64 ? +twofish-x86_64-3way ? +vmac ? +wp512 ? +xcbc ? +xor ? +xts ? +zlib ? --- linux-3.13.0.orig/debian.master/d-i/modules/fat-modules +++ linux-3.13.0/debian.master/d-i/modules/fat-modules @@ -0,0 +1,7 @@ +fat ? +vfat ? + +# Supporting modules ? +nls_cp437 ? +nls_iso8859-1 ? +nls_utf8 ? --- linux-3.13.0.orig/debian.master/d-i/modules/fb-modules +++ linux-3.13.0/debian.master/d-i/modules/fb-modules @@ -0,0 +1,3 @@ +fbcon ? +vesafb ? +vga16fb ? --- linux-3.13.0.orig/debian.master/d-i/modules/firewire-core-modules +++ linux-3.13.0/debian.master/d-i/modules/firewire-core-modules @@ -0,0 +1,4 @@ +firewire-core ? +firewire-ohci ? +firewire-sbp2 ? +firewire-net ? --- linux-3.13.0.orig/debian.master/d-i/modules/floppy-modules +++ linux-3.13.0/debian.master/d-i/modules/floppy-modules @@ -0,0 +1 @@ +floppy ? --- linux-3.13.0.orig/debian.master/d-i/modules/fs-core-modules +++ linux-3.13.0/debian.master/d-i/modules/fs-core-modules @@ -0,0 +1,4 @@ +ext2 ? +jfs ? +reiserfs ? +xfs ? --- linux-3.13.0.orig/debian.master/d-i/modules/fs-secondary-modules +++ linux-3.13.0/debian.master/d-i/modules/fs-secondary-modules @@ -0,0 +1,5 @@ +btrfs ? +fuse ? +ntfs ? +hfs ? +hfsplus ? --- linux-3.13.0.orig/debian.master/d-i/modules/input-modules +++ linux-3.13.0/debian.master/d-i/modules/input-modules @@ -0,0 +1,23 @@ +hid-a4tech ? +hid-apple ? +hid-belkin ? +hid-bright ? +hid-cherry ? +hid-chicony ? +hid-cypress ? +hid-dell ? +hid-ezkey ? +hid-generic ? +hid-gyration ? +hid-logitech ? +hid-logitech-dj ? +hid-microsoft ? +hid-monterey ? +hid-petalynx ? +hid-pl ? +hid-samsung ? +hid-sony ? +hid-sunplus ? +hid-tmff ? +hid-zpff ? +usbhid ? --- linux-3.13.0.orig/debian.master/d-i/modules/ipmi-modules +++ linux-3.13.0/debian.master/d-i/modules/ipmi-modules @@ -0,0 +1,5 @@ +ipmi_devintf ? +ipmi_msghandler ? +ipmi_poweroff ? +ipmi_si ? +ipmi_watchdog ? --- linux-3.13.0.orig/debian.master/d-i/modules/irda-modules +++ linux-3.13.0/debian.master/d-i/modules/irda-modules @@ -0,0 +1,30 @@ +act200l-sir ? +actisys-sir ? +ali-ircc ? +donauboe ? +esi-sir ? +girbil-sir ? +ircomm ? +ircomm-tty ? +irda ? +irda-usb ? +irlan ? +irnet ? +irport ? +irtty-sir ? +kingsun-sir ? +ks959-sir ? +ksdazzle-sir ? +litelink-sir ? +ma600-sir ? +mcp2120-sir ? +mcs7780 ? +nsc-ircc ? +old_belkin-sir ? +sir-dev ? +smsc-ircc2 ? +stir4200 ? +tekram-sir ? +via-ircc ? +vlsi_ir ? +w83977af_ir ? --- linux-3.13.0.orig/debian.master/d-i/modules/kernel-image +++ linux-3.13.0/debian.master/d-i/modules/kernel-image @@ -0,0 +1,24 @@ +gpio-pca953x ? +gpio-regulator ? +i2c-mux ? +i2c-mux-pinctrl ? +i2c-tegra ? +max8907 ? +max8907-regulator ? +nvec ? +nvec_kbd ? +nvec_paz00 ? +nvec_power ? +nvec_ps2 ? +palmas-regulator ? +rtc-em3027 ? +rtc-max8907 ? +rtc-palmas ? +rtc-tps6586x ? +rtc-tps65910 ? +tps51632-regulator ? +tps62360-regulator ? +tps65090-charger ? +tps65090-regulator ? +tps6586x-regulator ? +tps65910-regulator ? --- linux-3.13.0.orig/debian.master/d-i/modules/md-modules +++ linux-3.13.0/debian.master/d-i/modules/md-modules @@ -0,0 +1,16 @@ +dm-crypt ? +dm-mirror ? +dm-raid ? +dm-snapshot ? +dm-zero ? +faulty ? +linear ? +multipath ? +raid0 ? +raid1 ? +raid10 ? +raid456 ? + +# Extras +dm-raid45 ? +dm-loop ? --- linux-3.13.0.orig/debian.master/d-i/modules/message-modules +++ linux-3.13.0/debian.master/d-i/modules/message-modules @@ -0,0 +1,15 @@ +mptbase ? +mptctl ? +mptfc ? +mptlan ? +mptsas ? +mpt2sas ? +mpt3sas ? +mptscsih ? +mptspi ? +i2o_block ? +i2o_bus ? +i2o_config ? +i2o_core ? +i2o_proc ? +i2o_scsi ? --- linux-3.13.0.orig/debian.master/d-i/modules/mouse-modules +++ linux-3.13.0/debian.master/d-i/modules/mouse-modules @@ -0,0 +1,2 @@ +psmouse ? +usbmouse ? --- linux-3.13.0.orig/debian.master/d-i/modules/multipath-modules +++ linux-3.13.0/debian.master/d-i/modules/multipath-modules @@ -0,0 +1,2 @@ +dm-multipath ? +dm-round-robin ? --- linux-3.13.0.orig/debian.master/d-i/modules/nfs-modules +++ linux-3.13.0/debian.master/d-i/modules/nfs-modules @@ -0,0 +1,6 @@ +nfs ? +nfs_acl ? +nfsv3 ? +lockd ? +sunrpc ? +cifs ? --- linux-3.13.0.orig/debian.master/d-i/modules/nic-modules +++ linux-3.13.0/debian.master/d-i/modules/nic-modules @@ -0,0 +1,175 @@ +3c359 ? +3c501 ? +3c503 ? +3c505 ? +3c507 ? +3c509 ? +3c515 ? +3c523 ? +3c527 ? +3c59x ? +8139cp ? +8139too ? +82596 ? +abyss ? +ac3200 ? +adm8211 ? +airo ? +airport ? +alx ? +amd8111e ? +arc4 ? +arcnet ? +arc-rawmode ? +arc-rimi ? +arlan ? +at1700 ? +ath5k ? +ath9k ? +ath9k_htc ? +atl1 ? +atl1c ? +atl1e ? +atl2 ? +atmel ? +atmel_pci ? +b44 ? +be2net ? +bmac ? +bnx2 ? +bnx2x ? +bonding ? +brcmfmac ? +brcmsmac ? +xgmac ? +cassini ? +com20020 ? +com20020-pci ? +com90io ? +com90xx ? +cs89x0 ? +de2104x ? +de4x5 ? +de600 ? +de620 ? +defxx ? +depca ? +dl2k ? +dmfe ? +dummy ? +e100 ? +e1000 ? +e1000e ? +e2100 ? +eepro ? +eepro100 ? +eexpress ? +enic ? +epic100 ? +eql ? +es3210 ? +eth16i ? +ewrk3 ? +fealnx ? +forcedeth ? +igb ? +ps3_gelic ? +hamachi ? +hermes ? +hp ? +hp100 ? +hp-plus ? +ibmtr ? +ipddp ? +ipw2100 ? +ipw2200 ? +iwl3945 ? +iwl4965 ? +iwl-legacy ? +iwldvm ? +iwlwifi ? +ixgb ? +ixgbe ? +lance ? +lanstreamer ? +lasi_82596 ? +lne390 ? +lp486e ? +mace ? +mlx4_core ? +mlx4_en ? +mlx5_core ? +mv643xx_eth ? +myri_sbus ? +natsemi ? +ne ? +ne2 ? +ne2k-pci ? +ne3210 ? +netconsole ? +netxen_nic ? +ni5010 ? +ni52 ? +ni65 ? +niu ? +ns83820 ? +olympic ? +orinoco ? +orinoco_pci ? +orinoco_plx ? +orinoco_tmd ? +pcnet32 ? +qlcnic ? +r815x ? +r8169 ? +rate_control ? +rfc1051 ? +rfc1201 ? +rrunner ? +rt2400 ? +rt2400pci ? +rt2500 ? +rt2500pci ? +rt2800pci ? +rt61pci ? +s2io ? +shaper ? +sis190 ? +sis900 ? +spidernet ? +skfp ? +skge ? +sk98lin ? +sky2 ? +smc9194 ? +smc-ultra ? +smc-ultra32 ? +starfire ? +strip ? +sunbmac ? +sundance ? +sungem ? +sungem_phy ? +sunhme ? +sunlance ? +sunqe ? +sunvnet ? +tg3 ? +tlan ? +tms380tr ? +tmspci ? +tulip ? +tun ? +typhoon ? +uli526x ? +via-rhine ? +via-velocity ? +virtio_net ? +wavelan ? +wd ? +winbond-840 ? +yellowfin ? +znet ? +vmxnet3 ? +xen-netfront ? +xgene-enet ? --- linux-3.13.0.orig/debian.master/d-i/modules/nic-pcmcia-modules +++ linux-3.13.0/debian.master/d-i/modules/nic-pcmcia-modules @@ -0,0 +1,19 @@ +3c574_cs ? +3c589_cs ? +airo_cs ? +atmel_cs ? +axnet_cs ? +com20020_cs ? +fmvj18x_cs ? +ibmtr_cs ? +netwave_cs ? +nmclan_cs ? +orinoco_cs ? +pcnet_cs ? +ray_cs ? +smc91c92_cs ? +wavelan_cs ? +wl3501_cs ? +xirc2ps_cs ? +xircom_cb ? +xircom_tulip_cb ? --- linux-3.13.0.orig/debian.master/d-i/modules/nic-shared-modules +++ linux-3.13.0/debian.master/d-i/modules/nic-shared-modules @@ -0,0 +1,26 @@ +# PHY +8390 ? +mii ? + +# CRC modules +crc-ccitt ? +crc-itu-t ? +libcrc32c ? + +# mac80211 stuff +mac80211 ? +cfg80211 ? + +# rt2x00 lib (since rt2x00 is split across usb/pci/cb +rt2x00lib ? +rt2800lib ? + +# Atheros library (since drivers are split across nic-modules/nic-usb-modules) +ath ? + +# Wireless 802.11 modules +lib80211 ? +cfg80211 ? +lib80211_crypt_ccmp ? +lib80211_crypt_tkip ? +lib80211_crypt_wep ? --- linux-3.13.0.orig/debian.master/d-i/modules/nic-usb-modules +++ linux-3.13.0/debian.master/d-i/modules/nic-usb-modules @@ -0,0 +1,32 @@ +catc ? +kaweth ? +pegasus ? +prism2_usb ? +rtl8150 ? +usbnet ? +zd1211rw ? +zd1201 ? +rt2500usb ? +rt73usb ? +rt2570 ? +rt2800usb ? +rt2x00usb ? +cdc_ether ? +asix ? +cdc_eem ? +cdc_ether ? +cdc-phonet ? +cdc_subset ? +dm9601 ? +gl620a ? +hso ? +int51x1 ? +mcs7830 ? +net1080 ? +plusb ? +rndis_host ? +smsc95xx ? +zaurus ? +carl9170 ? +smsc75xx ? +smsc95xx ? --- linux-3.13.0.orig/debian.master/d-i/modules/parport-modules +++ linux-3.13.0/debian.master/d-i/modules/parport-modules @@ -0,0 +1,2 @@ +parport ? +parport_pc ? --- linux-3.13.0.orig/debian.master/d-i/modules/pata-modules +++ linux-3.13.0/debian.master/d-i/modules/pata-modules @@ -0,0 +1,47 @@ +pata_ali.ko ? +pata_amd.ko ? +pata_artop.ko ? +pata_atiixp.ko ? +pata_atp867x.ko ? +pata_cmd640.ko ? +pata_cmd64x.ko ? +pata_cs5520.ko ? +pata_cs5530.ko ? +pata_cs5535.ko ? +pata_cs5536.ko ? +pata_cypress.ko ? +pata_efar.ko ? +pata_hpt366.ko ? +pata_hpt37x.ko ? +pata_hpt3x2n.ko ? +pata_hpt3x3.ko ? +pata_isapnp.ko ? +pata_it8213.ko ? +pata_it821x.ko ? +pata_jmicron.ko ? +pata_legacy.ko ? +pata_macio.ko ? +pata_marvell.ko ? +pata_mpiix.ko ? +pata_netcell.ko ? +pata_ninja32.ko ? +pata_ns87410.ko ? +pata_ns87415.ko ? +pata_oldpiix.ko ? +pata_optidma.ko ? +pata_opti.ko ? +pata_pcmcia.ko ? +pata_pdc2027x.ko ? +pata_pdc202xx_old.ko ? +pata_qdi.ko ? +pata_radisys.ko ? +pata_rdc.ko ? +pata_rz1000.ko ? +pata_sc1200.ko ? +pata_sch.ko ? +pata_serverworks.ko ? +pata_sil680.ko ? +pata_sl82c105.ko ? +pata_triflex.ko ? +pata_via.ko ? +pata_winbond.ko ? --- linux-3.13.0.orig/debian.master/d-i/modules/pcmcia-modules +++ linux-3.13.0/debian.master/d-i/modules/pcmcia-modules @@ -0,0 +1,8 @@ +i82092 ? +i82365 ? +pcmcia ? +pcmcia_core ? +pd6729 ? +rsrc_nonstatic ? +tcic ? +yenta_socket ? --- linux-3.13.0.orig/debian.master/d-i/modules/pcmcia-storage-modules +++ linux-3.13.0/debian.master/d-i/modules/pcmcia-storage-modules @@ -0,0 +1,6 @@ +pata_pcmcia ? +qlogic_cs ? +fdomain_cs ? +aha152x_cs ? +nsp_cs ? +sym53c500_cs ? --- linux-3.13.0.orig/debian.master/d-i/modules/plip-modules +++ linux-3.13.0/debian.master/d-i/modules/plip-modules @@ -0,0 +1 @@ +plip ? --- linux-3.13.0.orig/debian.master/d-i/modules/ppp-modules +++ linux-3.13.0/debian.master/d-i/modules/ppp-modules @@ -0,0 +1,6 @@ +ppp_async ? +ppp_deflate ? +ppp_mppe ? +pppoe ? +pppox ? +ppp_synctty ? --- linux-3.13.0.orig/debian.master/d-i/modules/sata-modules +++ linux-3.13.0/debian.master/d-i/modules/sata-modules @@ -0,0 +1,18 @@ +sata_inic162x.ko ? +sata_mv.ko ? +sata_nv.ko ? +sata_promise.ko ? +sata_qstor.ko ? +sata_sil24.ko ? +sata_sil.ko ? +sata_sis.ko ? +sata_svw.ko ? +sata_sx4.ko ? +sata_uli.ko ? +sata_via.ko ? +sata_vsc.ko ? +ahci_platform ? +ahci ? +ahci_xgene ? +acard-ahci ? +libahci ? --- linux-3.13.0.orig/debian.master/d-i/modules/scsi-modules +++ linux-3.13.0/debian.master/d-i/modules/scsi-modules @@ -0,0 +1,128 @@ +# SCSI +raid_class ? +scsi_transport_spi ? +scsi_transport_fc ? +scsi_transport_iscsi ? +scsi_transport_sas ? +iscsi_tcp ? +libiscsi ? +amiga7xx ? +a3000 ? +a2091 ? +gvp11 ? +mvme147 ? +sgiwd93 ? +cyberstorm ? +cyberstormII ? +blz2060 ? +blz1230 ? +fastlane ? +oktagon_esp_mod ? +atari_scsi ? +mac_scsi ? +mac_esp ? +sun3_scsi ? +mvme16x ? +bvme6000 ? +sim710 ? +advansys ? +psi240i ? +BusLogic ? +dpt_i2o ? +u14-34f ? +ultrastor ? +aha152x ? +aha1542 ? +aha1740 ? +aic7xxx_old ? +ips ? +fd_mcs ? +fdomain ? +fnic ? +in2000 ? +g_NCR5380 ? +g_NCR5380_mmio ? +NCR53c406a ? +NCR_D700 ? +NCR_Q720_mod ? +sym53c416 ? +qlogicfas408 ? +qla1280 ? +pas16 ? +seagate ? +seagate ? +t128 ? +dmx3191d ? +dtc ? +zalon7xx ? +eata_pio ? +wd7000 ? +mca_53c9x ? +ibmmca ? +eata ? +dc395x ? +tmscsim ? +megaraid ? +atp870u ? +esp ? +gdth ? +initio ? +a100u2w ? +qlogicpti ? +ide-scsi ? +mesh ? +mac53c94 ? +pluto ? +dec_esp ? +3w-xxxx ? +3w-9xxx ? +ppa ? +imm ? +jazz_esp ? +sun3x_esp ? +fcal ? +lasi700 ? +nsp32 ? +ipr ? +hptiop ? +stex ? +osst ? +sg ? +ch ? +scsi_debug ? +aacraid ? +aic7xxx ? +aic79xx ? +aic94xx ? +arcmsr ? +acornscsi_mod ? +arxescsi ? +cumana_1 ? +cumana_2 ? +ecoscsi ? +oak ? +powertec ? +eesox ? +ibmvscsic ? +libsas ? +lpfc ? +megaraid_mm ? +megaraid_mbox ? +megaraid_sas ? +qla2xxx ? +sym53c8xx ? +qla4xxx ? +mvsas ? +vmw_pvscsi ? +ums-cypress ? +be2iscsi ? +3w-sas ? +isci ? +mlx4_ib ? +mlx5_ib ? + +# device handlers +scsi_dh_alua ? +scsi_dh_emc ? +scsi_dh_rdac ? +scsi_dh_hp_sw ? --- linux-3.13.0.orig/debian.master/d-i/modules/serial-modules +++ linux-3.13.0/debian.master/d-i/modules/serial-modules @@ -0,0 +1,4 @@ +generic_serial ? +serial_cs ? +synclink_cs ? +hyperv-keyboard ? --- linux-3.13.0.orig/debian.master/d-i/modules/speakup-modules +++ linux-3.13.0/debian.master/d-i/modules/speakup-modules @@ -0,0 +1,16 @@ +speakup ? +speakup_acntpc ? +speakup_acntsa ? +speakup_apollo ? +speakup_audptr ? +speakup_bns ? +speakup_decext ? +speakup_dectlk ? +speakup_dtlk ? +speakup_dummy ? +speakup_keypc ? +speakup_ltlk ? +speakup_soft ? +speakup_spkout ? +speakup_txprt ? +speakup_decpc ? --- linux-3.13.0.orig/debian.master/d-i/modules/squashfs-modules +++ linux-3.13.0/debian.master/d-i/modules/squashfs-modules @@ -0,0 +1 @@ +squashfs ? --- linux-3.13.0.orig/debian.master/d-i/modules/storage-core-modules +++ linux-3.13.0/debian.master/d-i/modules/storage-core-modules @@ -0,0 +1,10 @@ +# Core stacks +usb-storage ? + +# Block level + +# Loop modules +cryptoloop ? + +# Needs to be here for better cdrom initrd layout +isofs ? --- linux-3.13.0.orig/debian.master/d-i/modules/usb-modules +++ linux-3.13.0/debian.master/d-i/modules/usb-modules @@ -0,0 +1,10 @@ +ehci-hcd ? +isp116x-hcd ? +isp1760 ? +ohci-hcd ? +r8a66597-hcd ? +sl811_cs ? +sl811-hcd ? +u132-hcd ? +uhci-hcd ? +xhci-hcd ? --- linux-3.13.0.orig/debian.master/d-i/modules/virtio-modules +++ linux-3.13.0/debian.master/d-i/modules/virtio-modules @@ -0,0 +1,11 @@ +virtio_balloon ? +virtio_pci ? +virtio_ring ? +virtio-rng ? +virtio_scsi ? +hv_vmbus ? +hv_utils ? +hv_netvsc ? +hv_mouse ? +hv_storvsc ? +hv_balloon ? --- linux-3.13.0.orig/debian.master/d-i/modules/vlan-modules +++ linux-3.13.0/debian.master/d-i/modules/vlan-modules @@ -0,0 +1,3 @@ +slp ? +garp ? +8021q ? --- linux-3.13.0.orig/debian.master/d-i/package-list +++ linux-3.13.0/debian.master/d-i/package-list @@ -0,0 +1,202 @@ +Package: kernel-image +Provides: ext3-modules, ext4-modules +Provides_amd64: efi-modules, ext3-modules, ext4-modules +Provides_i386: efi-modules, ext3-modules, ext4-modules +Provides_ppc64el: ext3-modules, ext4-modules, fat-modules + +Package: fat-modules +Depends: kernel-image +Priority: standard +Description: FAT filesystem support + This includes Windows FAT and VFAT support. + +Package: fb-modules +Depends: kernel-image +Priority: standard +Description: Framebuffer modules + +Package: firewire-core-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: Firewire (IEEE-1394) Support + +Package: floppy-modules +Depends: kernel-image +Priority: standard +Description: Floppy driver support + +Package: fs-core-modules +Depends: kernel-image +Priority: standard +Provides: ext2-modules, jfs-modules, reiserfs-modules, xfs-modules +Description: Base filesystem modules + This includes jfs, reiserfs and xfs. + +Package: fs-secondary-modules +Depends: kernel-image, fat-modules +Priority: standard +Provides: btrfs-modules, ntfs-modules, hfs-modules +Description: Extra filesystem modules + This includes support for Windows NTFS and MacOS HFS/HFSPlus + +Package: input-modules +Depends: kernel-image, usb-modules +Priority: standard +Description: Support for various input methods + +Package: irda-modules +Depends: kernel-image, nic-shared-modules +Priority: standard +Description: Support for Infrared protocols + +Package: md-modules +Depends: kernel-image +Priority: standard +Provides: crypto-dm-modules +Description: Multi-device support (raid, device-mapper, lvm) + +Package: nic-modules +Depends: kernel-image, nic-shared-modules, virtio-modules +Priority: standard +Description: Network interface support + +Package: nic-pcmcia-modules +Depends: kernel-image, nic-shared-modules, nic-modules +Priority: standard +Description: PCMCIA network interface support + +Package: nic-usb-modules +Depends: kernel-image, nic-shared-modules, usb-modules +Priority: standard +Description: USB network interface support + +Package: nic-shared-modules +Depends: kernel-image, crypto-modules +Priority: standard +Description: nic shared modules + This package contains modules which support nic modules + +Package: parport-modules +Depends: kernel-image +Priority: standard +Description: Parallel port support + +Package: pata-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: PATA support modules + +Package: pcmcia-modules +Depends: kernel-image +Priority: standard +Description: PCMCIA Modules + +Package: pcmcia-storage-modules +Depends: kernel-image, scsi-modules +Priority: standard +Description: PCMCIA storage support + +Package: plip-modules +Depends: kernel-image, nic-shared-modules, parport-modules +Priority: standard +Description: PLIP (parallel port) networking support + +Package: ppp-modules +Depends: kernel-image, nic-shared-modules, serial-modules +Priority: standard +Description: PPP (serial port) networking support + +Package: sata-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: SATA storage support + +Package: scsi-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: SCSI storage support + +Package: serial-modules +Depends: kernel-image +Priority: standard +Description: Serial port support + +Package: storage-core-modules +Depends: kernel-image +Priority: standard +Provides: loop-modules +Description: Core storage support + Includes core SCSI, LibATA, USB-Storage. Also includes related block + devices for CD, Disk and Tape medium (and IDE Floppy). + +Package: usb-modules +Depends: kernel-image, storage-core-modules +Priority: standard +Description: Core USB support + +Package: nfs-modules +Priority: standard +Depends: kernel-image +Description: NFS filesystem drivers + Includes the NFS client driver, and supporting modules. + +Package: block-modules +Priority: standard +Provides: nbd-modules +Depends: kernel-image, storage-core-modules, parport-modules, virtio-modules +Description: Block storage devices + This package contains the block storage devices, including DAC960 and + paraide. + +Package: message-modules +Priority: standard +Depends: kernel-image, storage-core-modules, scsi-modules +Description: Fusion and i2o storage modules + This package containes the fusion and i2o storage modules. + +Package: crypto-modules +Priority: extra +Depends: kernel-image +Description: crypto modules + This package contains crypto modules. + +Package: virtio-modules +Priority: standard +Depends: kernel-image +Description: VirtIO Modules + Includes modules for VirtIO (virtual machine, generally kvm guests) + +Package: socket-modules +Depends: kernel-image +Priority: standard +Description: Unix socket support + +Package: mouse-modules +Depends: kernel-image, input-modules, usb-modules +Priority: extra +Description: Mouse support + This package contains mouse drivers for the Linux kernel. + +Package: squashfs-modules +Depends: kernel-image +Priority: extra +Description: squashfs modules + This package contains squashfs modules. + +Package: vlan-modules +Depends: kernel-image +Priority: extra +Description: vlan modules + This package contains vlan (8021.Q) modules. + +Package: ipmi-modules +Depends: kernel-image +Priority: standard +Description: ipmi modules + +Package: multipath-modules +Depends: kernel-image +Priority: extra +Description: DM-Multipath support + This package contains modules for device-mapper multipath support. + --- linux-3.13.0.orig/debian.master/etc/getabis +++ linux-3.13.0/debian.master/etc/getabis @@ -0,0 +1,19 @@ +repo_list=( + "http://archive.ubuntu.com/ubuntu/pool/main/l/linux" + "http://ports.ubuntu.com/ubuntu-ports/pool/main/l/linux" + "http://archive.ubuntu.com/ubuntu/pool/universe/l/linux" + "http://ports.ubuntu.com/ubuntu-ports/pool/universe/l/linux" + "http://ppa.launchpad.net/canonical-kernel-team/ppa/ubuntu/pool/main/l/linux" +) + +package_prefixes linux-image linux-image-extra + +getall armhf generic +getall armhf generic-lpae +getall amd64 generic lowlatency +getall i386 generic lowlatency +getall arm64 generic +getall ppc64el generic + +# Ports arches and flavours. +getall powerpc powerpc-smp powerpc64-smp powerpc-e500 powerpc-e500mc powerpc64-emb --- linux-3.13.0.orig/debian.master/etc/kernelconfig +++ linux-3.13.0/debian.master/etc/kernelconfig @@ -0,0 +1,7 @@ +if [ "$variant" = "ports" ]; then + archs="" + family='ports' +else + archs="amd64 i386 armhf arm64 ppc64el powerpc" + family='ubuntu' +fi --- linux-3.13.0.orig/debian.master/rules.d/amd64.mk +++ linux-3.13.0/debian.master/rules.d/amd64.mk @@ -0,0 +1,17 @@ +human_arch = 64 bit x86 +build_arch = x86_64 +header_arch = $(build_arch) +defconfig = defconfig +flavours = generic lowlatency +build_image = bzImage +kernel_file = arch/$(build_arch)/boot/bzImage +install_file = vmlinuz +loader = grub +vdso = vdso_install +no_dumpfile = true +uefi_signed = true +do_tools_cpupower = true +do_tools_perf = true +do_tools_x86 = true +do_tools_hyperv = true +do_extras_package = true --- linux-3.13.0.orig/debian.master/rules.d/arm64.mk +++ linux-3.13.0/debian.master/rules.d/arm64.mk @@ -0,0 +1,19 @@ +human_arch = ARMv8 +build_arch = arm64 +header_arch = arm64 +defconfig = defconfig +flavours = generic +build_image = Image +kernel_file = arch/$(build_arch)/boot/Image +install_file = vmlinuz +no_dumpfile = true + +loader = grub +vdso = vdso_install + +do_tools_cpupower = true +do_tools_perf = true + +dtb_files_generic += apm-mustang.dtb +dtb_files_generic += foundation-v8.dtb +dtb_files_generic += rtsm_ve-aemv8a.dtb --- linux-3.13.0.orig/debian.master/rules.d/armhf.mk +++ linux-3.13.0/debian.master/rules.d/armhf.mk @@ -0,0 +1,35 @@ +human_arch = ARM (hard float) +build_arch = arm +header_arch = arm +defconfig = defconfig +flavours = generic generic-lpae +build_image = zImage +kernel_file = arch/$(build_arch)/boot/zImage +install_file = vmlinuz +no_dumpfile = true + +loader = grub + +do_tools_cpupower = true +do_tools_perf = true + +# Flavour specific configuration. +dtb_files_generic += highbank.dtb +dtb_files_generic += imx6q-sabrelite.dtb +dtb_files_generic += imx6dl-wandboard.dtb +dtb_files_generic += imx6q-wandboard.dtb +dtb_files_generic += omap3-beagle-xm.dtb +dtb_files_generic += omap4-panda.dtb +dtb_files_generic += omap4-panda-es.dtb +dtb_files_generic += tegra20-harmony.dtb +dtb_files_generic += tegra20-paz00.dtb +dtb_files_generic += tegra20-seaboard.dtb +dtb_files_generic += tegra20-trimslice.dtb +dtb_files_generic += tegra20-ventana.dtb +dtb_files_generic += tegra20-whistler.dtb +dtb_files_generic += am335x-bone.dtb +dtb_files_generic += am335x-boneblack.dtb +dtb_files_generic += vexpress-v2p-ca9.dtb + +dtb_files_generic-lpae += highbank.dtb +dtb_files_generic-lpae += vexpress-v2p-ca15-tc1.dtb --- linux-3.13.0.orig/debian.master/rules.d/i386.mk +++ linux-3.13.0/debian.master/rules.d/i386.mk @@ -0,0 +1,15 @@ +human_arch = 32 bit x86 +build_arch = i386 +header_arch = x86_64 +defconfig = defconfig +flavours = generic lowlatency +build_image = bzImage +kernel_file = arch/$(build_arch)/boot/bzImage +install_file = vmlinuz +loader = grub +vdso = vdso_install +no_dumpfile = true +do_tools_cpupower = true +do_tools_perf = true +do_tools_x86 = true +do_extras_package = true --- linux-3.13.0.orig/debian.master/rules.d/powerpc.mk +++ linux-3.13.0/debian.master/rules.d/powerpc.mk @@ -0,0 +1,29 @@ +human_arch = PowerPC (32 bit userspace) +build_arch = powerpc +header_arch = $(build_arch) +defconfig = pmac32_defconfig +flavours = powerpc-smp powerpc64-smp powerpc-e500 powerpc-e500mc powerpc64-emb +build_image = zImage +kernel_file = $(shell if [ ! -f $(builddir)/build-$*/vmlinux.strip ] && \ + [ -f $(builddir)/build-$*/vmlinux.strip.gz ]; then \ + gunzip -c $(builddir)/build-$*/vmlinux.strip.gz \ + > $(builddir)/build-$*/vmlinux.strip; \ + fi && echo vmlinux.strip) +install_file = vmlinux + +# These flavours differ +build_image_powerpc-e500mc = uImage +kernel_file_powerpc-e500mc = arch/powerpc/boot/uImage + +build_image_powerpc-e500 = uImage +kernel_file_powerpc-e500 = arch/powerpc/boot/uImage + +loader = yaboot + +custom_flavours = + +no_dumpfile = true +do_tools_cpupower = true +do_tools_perf = true + +family = ubuntu --- linux-3.13.0.orig/debian.master/rules.d/ppc64el.mk +++ linux-3.13.0/debian.master/rules.d/ppc64el.mk @@ -0,0 +1,17 @@ +human_arch = PowerPC 64el +build_arch = powerpc +header_arch = $(build_arch) +defconfig = pseries_le_defconfig +flavours = generic +build_image = vmlinux.strip +kernel_file = arch/powerpc/boot/vmlinux.strip +install_file = vmlinux +no_dumpfile = true +loader = grub +vdso = vdso_install +do_extras_package = true + +do_tools_cpupower = true +do_tools_perf = true + +#do_flavour_image_package = false --- linux-3.13.0.orig/debian.master/rules.d/x32.mk +++ linux-3.13.0/debian.master/rules.d/x32.mk @@ -0,0 +1,14 @@ +human_arch = 64 bit x86 (32 bit userspace) +build_arch = x86_64 +header_arch = $(build_arch) +defconfig = defconfig +flavours = +build_image = bzImage +kernel_file = arch/$(build_arch)/boot/bzImage +install_file = vmlinuz +loader = grub +vdso = vdso_install +no_dumpfile = true +uefi_signed = true + +do_flavour_image_package = false --- linux-3.13.0.orig/debian/changelog +++ linux-3.13.0/debian/changelog @@ -0,0 +1,18103 @@ +linux (3.13.0-46.77) trusty; urgency=low + + [ Seth Forshee ] + + * Revert "ipv6: fix swapped ipv4/ipv6 mtu_reduced callbacks" + - LP: #1404558 + * Release Tracking Bug + - LP: #1427292 + + -- Seth Forshee Mon, 02 Mar 2015 11:33:20 -0600 + +linux (3.13.0-46.76) trusty; urgency=low + + [ Kamal Mostafa ] + + * Release Tracking Bug + - LP: #1426060 + + [ Upstream Kernel Changes ] + + * clocksource: arch_timer: Only use the virtual counter (CNTVCT) on arm64 + - LP: #1426043 + + -- Kamal Mostafa Thu, 26 Feb 2015 09:53:44 -0800 + +linux (3.13.0-46.75) trusty; urgency=low + + [ Seth Forshee ] + + * Release Tracking Bug + - LP: #1419963 + + [ Andy Whitcroft ] + + * [Debian] arm64 -- build ubuntu drivers + - LP: #1411284 + * hyper-v -- fix comment handing in /etc/network/interfaces + - LP: #1413020 + + [ Kamal Mostafa ] + + * [Packaging] force "dpkg-source -I -i" behavior + + [ Upstream Kernel Changes ] + + * Revert "[SCSI] mpt2sas: Remove phys on topology change." + - LP: #1419838 + * Revert "[SCSI] mpt3sas: Remove phys on topology change" + - LP: #1419838 + * Btrfs: fix transaction abortion when remounting btrfs from RW to RO + - LP: #1411320 + * Btrfs: fix a crash of clone with inline extents's split + - LP: #1413129 + * net/mlx4_en: Add VXLAN ndo calls to the PF net device ops too + - LP: #1407760 + * KVM: x86: SYSENTER emulation is broken + - LP: #1414651 + - CVE-2015-0239 + * powerpc/xmon: Fix another endiannes issue in RTAS call from xmon + - LP: #1415919 + * ipv6: fix swapped ipv4/ipv6 mtu_reduced callbacks + - LP: #1404558, #1419837 + * usb: gadget: at91_udc: move prepare clk into process context + - LP: #1419837 + * KVM: x86: Fix far-jump to non-canonical check + - LP: #1419837 + * x86/tls: Validate TLS entries to protect espfix + - LP: #1419837 + * userns: Check euid no fsuid when establishing an unprivileged uid + mapping + - LP: #1419837 + * userns: Document what the invariant required for safe unprivileged + mappings. + - LP: #1419837 + * userns: Only allow the creator of the userns unprivileged mappings + - LP: #1419837 + * x86_64, switch_to(): Load TLS descriptors before switching DS and ES + - LP: #1419837 + * isofs: Fix infinite looping over CE entries + - LP: #1419837 + * batman-adv: Calculate extra tail size based on queued fragments + - LP: #1419837 + * KEYS: close race between key lookup and freeing + - LP: #1419837 + * isofs: Fix unchecked printing of ER records + - LP: #1419837 + * x86_64, vdso: Fix the vdso address randomization algorithm + - LP: #1419837 + * groups: Consolidate the setgroups permission checks + - LP: #1419837 + * userns: Don't allow setgroups until a gid mapping has been setablished + - LP: #1419837 + * userns: Don't allow unprivileged creation of gid mappings + - LP: #1419837 + * move d_rcu from overlapping d_child to overlapping d_alias + - LP: #1419837 + * deal with deadlock in d_walk() + - LP: #1419837 + * Linux 3.13.11-ckt14 + - LP: #1419837 + * gre: fix the inner mac header in nbma tunnel xmit path + - LP: #1419838 + * netlink: Always copy on mmap TX. + - LP: #1419838 + * netlink: Don't reorder loads/stores before marking mmap netlink frame + as available + - LP: #1419838 + * in6: fix conflict with glibc + - LP: #1419838 + * tg3: tg3_disable_ints using uninitialized mailbox value to disable + interrupts + - LP: #1419838 + * batman-adv: Unify fragment size calculation + - LP: #1419838 + * batman-adv: avoid NULL dereferences and fix if check + - LP: #1419838 + * net: Fix stacked vlan offload features computation + - LP: #1419838 + * net: Reset secmark when scrubbing packet + - LP: #1419838 + * tcp: Do not apply TSO segment limit to non-TSO packets + - LP: #1419838 + * alx: fix alx_poll() + - LP: #1419838 + * team: avoid possible underflow of count_pending value for notify_peers + and mcast_rejoin + - LP: #1419838 + * enic: fix rx skb checksum + - LP: #1419838 + * net/core: Handle csum for CHECKSUM_COMPLETE VXLAN forwarding + - LP: #1419838 + * macvlan: unregister net device when netdev_upper_dev_link() fails + - LP: #1419838 + * netfilter: conntrack: disable generic tracking for known protocols + - LP: #1419838 + * xen-netfront: Fix handling packets on compound pages with skb_linearize + - LP: #1317811, #1419838 + * xen-netfront: use correct linear area after linearizing an skb + - LP: #1317811, #1419838 + * eCryptfs: Force RO mount when encrypted view is enabled + - LP: #1419838 + * smiapp: Take mutex during PLL update in sensor initialisation + - LP: #1419838 + * smiapp-pll: Correct clock debug prints + - LP: #1419838 + * sound: simplify au0828 quirk table + - LP: #1419838 + * sound: Update au0828 quirks table + - LP: #1419838 + * af9005: fix kernel panic on init if compiled without IR + - LP: #1419838 + * writeback: fix a subtle race condition in I_DIRTY clearing + - LP: #1419838 + * usb: renesas_usbhs: gadget: fix NULL pointer dereference in + ep_disable() + - LP: #1419838 + * KVM: s390: flush CPU on load control + - LP: #1419838 + * UBI: Fix double free after do_sync_erase() + - LP: #1419838 + * UBI: Fix invalid vfree() + - LP: #1419838 + * Drivers: hv: vmbus: Fix a race condition when unregistering a device + - LP: #1419838 + * driver core: Fix unbalanced device reference in drivers_probe + - LP: #1419838 + * PCI: Restore detection of read-only BARs + - LP: #1419838 + * scsi: correct return values for .eh_abort_handler implementations + - LP: #1419838 + * drm/radeon: fix typo in CI dpm disable + - LP: #1419838 + * ARM: tegra: Re-add removed SoC id macro to tegra_resume() + - LP: #1419838 + * arm64: Add COMPAT_HWCAP_LPAE + - LP: #1419838 + * genhd: check for int overflow in disk_expand_part_tbl() + - LP: #1419838 + * ftrace/x86: Add frames pointers to trampoline as necessary + - LP: #1419838 + * drm/ttm: Avoid memory allocation from shrinker functions. + - LP: #1419838 + * ASoC: sigmadsp: Refuse to load firmware files with a non-supported + version + - LP: #1419838 + * drm/radeon: work around a hw bug in MGCG on CIK + - LP: #1419838 + * Btrfs: make sure we wait on logged extents when fsycning two subvols + - LP: #1419838 + * Btrfs: do not move em to modified list when unpinning + - LP: #1419838 + * megaraid_sas: corrected return of wait_event from abort frame path + - LP: #1419838 + * ASoC: max98090: Fix ill-defined sidetone route + - LP: #1419838 + * blk-mq: use 'nr_cpu_ids' as highest CPU ID count for hwq <-> cpu map + - LP: #1419838 + * nfs41: fix nfs4_proc_layoutget error handling + - LP: #1419838 + * cdc-acm: memory leak in error case + - LP: #1419838 + * USB: cdc-acm: check for valid interfaces + - LP: #1419838 + * x86/asm/traps: Disable tracing and kprobes in fixup_bad_iret and + sync_regs + - LP: #1419838 + * uvcvideo: Fix destruction order in uvc_delete() + - LP: #1419838 + * HID: i2c-hid: fix race condition reading reports + - LP: #1419838 + * mfd: tc6393xb: Fail ohci suspend if full state restore is required + - LP: #1419838 + * serial: samsung: wait for transfer completion before clock disable + - LP: #1419838 + * mmc: dw_mmc: avoid write to CDTHRCTL on older versions + - LP: #1419838 + * Bluetooth: ath3k: Add support of MCI 13d3:3408 bt device + - LP: #1419838 + * eCryptfs: Remove buggy and unnecessary write in file name decode + routine + - LP: #1419838 + * n_tty: Fix read_buf race condition, increment read_head after pushing + data + - LP: #1419838 + * dm cache: only use overwrite optimisation for promotion when in + writeback mode + - LP: #1419838 + * dm cache: dirty flag was mistakenly being cleared when promoting via + overwrite + - LP: #1419838 + * dm bufio: fix memleak when using a dm_buffer's inline bio + - LP: #1419838 + * ath9k_hw: fix hardware queue allocation + - LP: #1419838 + * ath9k: fix BE/BK queue order + - LP: #1419838 + * ath5k: fix hardware queue index assignment + - LP: #1419838 + * tcm_loop: Fix wrong I_T nexus association + - LP: #1419838 + * iwlwifi: dvm: fix flush support for old firmware + - LP: #1419838 + * iommu/vt-d: Fix an off-by-one bug in __domain_mapping() + - LP: #1419838 + * dm crypt: use memzero_explicit for on-stack buffer + - LP: #1419838 + * mnt: Implicitly add MNT_NODEV on remount when it was implicitly added + by mount + - LP: #1419838 + * mnt: Update unprivileged remount test + - LP: #1419838 + * umount: Disallow unprivileged mount force + - LP: #1419838 + * md/raid56: Don't perform reads to support writes until stripe is ready. + - LP: #1419838 + * md/raid5: avoid livelock caused by non-aligned writes. + - LP: #1419838 + * md/raid5: fetch_block must fetch all the blocks handle_stripe_dirtying + wants. + - LP: #1419838 + * drm/i915: Disallow pin ioctl completely for kms drivers + - LP: #1419838 + * drm/vmwgfx: Don't use memory accounting for kernel-side fence objects + - LP: #1419838 + * drm/vmwgfx: Fix fence event code + - LP: #1419838 + * hp_accel: Add support for HP ZBook 15 + - LP: #1419838 + * drm/radeon: check the right ring in radeon_evict_flags() + - LP: #1419838 + * swiotlb-xen: pass dev_addr to xen_dma_unmap_page and + xen_dma_sync_single_for_cpu + - LP: #1419838 + * swiotlb-xen: call xen_dma_sync_single_for_device when appropriate + - LP: #1419838 + * clocksource: arch_timer: Fix code to use physical timers when requested + - LP: #1419838 + * ALSA: hda - Fix built-in mic at resume on Lenovo Ideapad S210 + - LP: #1419838 + * can: peak_usb: fix memset() usage + - LP: #1419838 + * can: peak_usb: fix cleanup sequence order in case of error during init + - LP: #1419838 + * ALSA: usb-audio: Don't resubmit pending URBs at MIDI error recovery + - LP: #1419838 + * KEYS: Fix stale key registration at error path + - LP: #1419838 + * thermal: Fix error path in thermal_init() + - LP: #1419838 + * blk-mq: Fix a use-after-free + - LP: #1419838 + * fs: nfsd: Fix signedness bug in compare_blob + - LP: #1419838 + * nfsd4: fix xdr4 inclusion of escaped char + - LP: #1419838 + * userns: Rename id_map_mutex to userns_state_mutex + - LP: #1419838 + * drm/i915: Don't complain about stolen conflicts on gen3 + - LP: #1419838 + * ALSA: hda - Add EAPD fixup for ASUS Z99He laptop + - LP: #1419838 + * Btrfs: fix fs corruption on transaction abort if device supports + discard + - LP: #1419838 + * ncpfs: return proper error from NCP_IOC_SETROOT ioctl + - LP: #1419838 + * drivers/rtc/rtc-sirfsoc.c: move hardware initilization earlier in probe + - LP: #1419838 + * rtc: omap: fix missing wakealarm attribute + - LP: #1419838 + * exit: pidns: alloc_pid() leaks pid_namespace if child_reaper is exiting + - LP: #1419838 + * perf/x86/intel/uncore: Make sure only uncore events are collected + - LP: #1419838 + * perf: Fix events installation during moving group + - LP: #1419838 + * KVM: nVMX: Disable unrestricted mode if ept=0 + - LP: #1419838 + * drm/i915: save/restore GMBUS freq across suspend/resume on gen4 + - LP: #1419838 + * pstore-ram: Fix hangs by using write-combine mappings + - LP: #1419838 + * pstore-ram: Allow optional mapping with pgprot_noncached + - LP: #1419838 + * userns: Add a knob to disable setgroups on a per user namespace basis + - LP: #1419838 + * userns: Allow setting gid_maps without privilege when setgroups is + disabled + - LP: #1419838 + * userns: Unbreak the unprivileged remount tests + - LP: #1419838 + * HID: i2c-hid: prevent buffer overflow in early IRQ + - LP: #1419838 + * mac80211: fix multicast LED blinking and counter + - LP: #1419838 + * cfg80211: avoid mem leak on driver hint set + - LP: #1419838 + * mtd: tests: abort torturetest on erase errors + - LP: #1419838 + * tracing/sched: Check preempt_count() for current when reading + task->state + - LP: #1419838 + * iscsi,iser-target: Initiate termination only once + - LP: #1419838 + * iser-target: Fix flush + disconnect completion handling + - LP: #1419838 + * iser-target: Parallelize CM connection establishment + - LP: #1419838 + * iser-target: Fix connected_handler + teardown flow race + - LP: #1419838 + * iser-target: Handle ADDR_CHANGE event for listener cm_id + - LP: #1419838 + * iser-target: Fix implicit termination of connections + - LP: #1419838 + * genirq: Prevent proc race against freeing of irq descriptors + - LP: #1419838 + * x86/tls: Disallow unusual TLS segments + - LP: #1419838 + * powerpc/powernv: Switch off MMU before entering nap/sleep/rvwinkle mode + - LP: #1419838 + * ARC: [nsimosci] move peripherals to match model to FPGA + - LP: #1419838 + * scsi: blacklist RSOC for Microsoft iSCSI target devices + - LP: #1419838 + * rtlwifi: rtl8192ce: Set fw_ready flag + - LP: #1419838 + * iscsi-target: Fail connection on short sendmsg writes + - LP: #1419838 + * mac80211: free management frame keys when removing station + - LP: #1419838 + * ceph: do_sync is never initialized + - LP: #1419838 + * x86/tls: Don't validate lm in set_thread_area() after all + - LP: #1419838 + * ALSA: usb-audio: extend KEF X300A FU 10 tweak to Arcam rPAC + - LP: #1419838 + * mnt: Fix a memory stomp in umount + - LP: #1419838 + * ocfs2: fix journal commit deadlock + - LP: #1419838 + * tick/powerclamp: Remove tick_nohz_idle abuse + - LP: #1419838 + * Linux 3.13.11-ckt15 + - LP: #1419838 + + [ Xiong Zhang ] + + * SAUCE: ubuntu/i915: power on sink if dpcd read fail + - LP: #1416451 + + -- Seth Forshee Mon, 09 Feb 2015 14:08:50 -0600 + +linux (3.13.0-45.74) trusty; urgency=low + + [ Seth Forshee ] + + * Release Tracking Bug + - LP: #1410384 + + [ Jesse Barnes ] + + * SAUCE: drm/i915/vlv: assert and de-assert sideband reset at boot and + resume v3 + - LP: #1401963 + + [ K. Y. Srinivasan ] + + * SAUCE: storvsc: force SPC-3 compliance on win8 and win8 r2 hosts + - LP: #1406867 + + [ Timo Aaltonen ] + + * SAUCE: Switch VLV/BYT to use i915_bdw. + - LP: #1401963 + + [ Upstream Kernel Changes ] + + * Revert "xhci: clear root port wake on bits if controller isn't wake-up + capable" + - LP: #1408779 + * KVM: PPC: BOOK3S: HV: CMA: Reserve cma region only in hypervisor mode + - LP: #1400209 + * e1000e: Fix no connectivity when driver loaded with cable out + - LP: #1400365 + * net/mlx4_core: Enable CQE/EQE stride support + - LP: #1400127 + * net/mlx4_core: Cache line EQE size support + - LP: #1400127 + * net/mlx4_en: Add mlx4_en_get_cqe helper + - LP: #1400127 + * net/mlx4_core: Introduce mlx4_get_module_info for cable module info + reading + - LP: #1400127 + * ethtool, net/mlx4_en: Cable info, get_module_info/eeprom ethtool + support + - LP: #1400127 + * net/mlx4_core: Introduce ACCESS_REG CMD and eth_prot_ctrl dev cap + - LP: #1400127 + * net/mlx4_core: Add ethernet backplane autoneg device capability + - LP: #1400127 + * ethtool, net/mlx4_en: Add 100M, 20G, 56G speeds ethtool reporting + support + - LP: #1400127 + * net/mlx4_en: Use PTYS register to query ethtool settings + - LP: #1400127 + * net/mlx4_en: Use PTYS register to set ethtool settings (Speed) + - LP: #1400127 + * net/mlx4_en: Add support for setting rxvlan offload OFF/ON + - LP: #1400127 + * net/mlx4_en: Add ethtool support for [rx|tx]vlan offload set to OFF/ON + - LP: #1400127 + * net/mlx4_core: Prevent VF from changing port configuration + - LP: #1400127 + * net/mlx4_en: mlx4_en_set_settings() always fails when autoneg is set + - LP: #1400127 + * ipv4: fix nexthop attlen check in fib_nh_match + - LP: #1408779 + * vxlan: fix a use after free in vxlan_encap_bypass + - LP: #1408779 + * vxlan: using pskb_may_pull as early as possible + - LP: #1408779 + * vxlan: fix a free after use + - LP: #1408779 + * ipv4: fix a potential use after free in ip_tunnel_core.c + - LP: #1408779 + * ax88179_178a: fix bonding failure + - LP: #1408779 + * tcp: md5: do not use alloc_percpu() + - LP: #1408779 + * ipv4: dst_entry leak in ip_send_unicast_reply() + - LP: #1408779 + * drivers/net, ipv6: Select IPv6 fragment idents for virtio UFO packets + - LP: #1408779 + * drivers/net: macvtap and tun depend on INET + - LP: #1408779 + * ip6_tunnel: Use ip6_tnl_dev_init as the ndo_init function. + - LP: #1408779 + * vti6: Use vti6_dev_init as the ndo_init function. + - LP: #1408779 + * sit: Use ipip6_tunnel_init as the ndo_init function. + - LP: #1408779 + * gre6: Move the setting of dev->iflink into the ndo_init functions. + - LP: #1408779 + * vxlan: Do not reuse sockets for a different address family + - LP: #1408779 + * net: sctp: fix memory leak in auth key management + - LP: #1408779 + * smsc911x: power-up phydev before doing a software reset. + - LP: #1408779 + * sunvdc: add cdrom and v1.1 protocol support + - LP: #1408779 + * sunvdc: compute vdisk geometry from capacity + - LP: #1408779 + * sunvdc: limit each sg segment to a page + - LP: #1408779 + * vio: fix reuse of vio_dring slot + - LP: #1408779 + * sunvdc: don't call VD_OP_GET_VTOC + - LP: #1408779 + * sparc64: Fix crashes in schizo_pcierr_intr_other(). + - LP: #1408779 + * sparc64: Do irq_{enter,exit}() around generic_smp_call_function*(). + - LP: #1408779 + * sparc32: Implement xchg and atomic_xchg using ATOMIC_HASH locks + - LP: #1408779 + * sparc64: Fix constraints on swab helpers. + - LP: #1408779 + * inetdevice: fixed signed integer overflow + - LP: #1408779 + * ipv4: Fix incorrect error code when adding an unreachable route + - LP: #1408779 + * ieee802154: fix error handling in ieee802154fake_probe() + - LP: #1408779 + * qmi_wwan: Add support for HP lt4112 LTE/HSPA+ Gobi 4G Modem + - LP: #1408779 + * pptp: fix stack info leak in pptp_getname() + - LP: #1408779 + * ipx: fix locking regression in ipx_sendmsg and ipx_recvmsg + - LP: #1408779 + * aio: fix uncorrent dirty pages accouting when truncating AIO ring + buffer + - LP: #1408779 + * spi: dw: Fix dynamic speed change. + - LP: #1408779 + * USB: serial: cp210x: add IDs for CEL MeshConnect USB Stick + - LP: #1408779 + * iio: Fix IIO_EVENT_CODE_EXTRACT_DIR bit mask + - LP: #1408779 + * usb: serial: ftdi_sio: add PIDs for Matrix Orbital products + - LP: #1408779 + * USB: keyspan: fix tty line-status reporting + - LP: #1408779 + * USB: keyspan: fix overrun-error reporting + - LP: #1408779 + * USB: ssu100: fix overrun-error reporting + - LP: #1408779 + * nfsd: correctly define v4.2 support attributes + - LP: #1408779 + * SUNRPC: Fix locking around callback channel reply receive + - LP: #1408779 + * nfsd: Fix slot wake up race in the nfsv4.1 callback code + - LP: #1408779 + * bnx2fc: do not add shared skbs to the fcoe_rx_list + - LP: #1408779 + * scsi: add Intel Multi-Flex to scsi scan blacklist + - LP: #1408779 + * ARM: 8216/1: xscale: correct auxiliary register in suspend/resume + - LP: #1408779 + * USB: xhci: don't start a halted endpoint before its new dequeue is set + - LP: #1408779 + * USB: xhci: Reset a halted endpoint immediately when we encounter a + stall. + - LP: #1408779 + * usb: xhci: rework root port wake bits if controller isn't allowed to + wakeup + - LP: #1408779 + * ALSA: hda - Limit 40bit DMA for AMD HDMI controllers + - LP: #1408779 + * PCI/MSI: Add device flag indicating that 64-bit MSIs don't work + - LP: #1408779 + * gpu/radeon: Set flag to indicate broken 64-bit MSI + - LP: #1408779 + * sound/radeon: Move 64-bit MSI quirk from arch to driver + - LP: #1408779 + * powerpc/powernv: Honor the generic "no_64bit_msi" flag + - LP: #1408779 + * powerpc/pseries: Honor the generic "no_64bit_msi" flag + - LP: #1408779 + * MIPS: Loongson: Make platform serial setup always built-in. + - LP: #1408779 + * net/ping: handle protocol mismatching scenario + - LP: #1408779 + * usb-quirks: Add reset-resume quirk for MS Wireless Laser Mouse 6000 + - LP: #1408779 + * Input: xpad - use proper endpoint type + - LP: #1408779 + * powerpc: 32 bit getcpu VDSO function uses 64 bit instructions + - LP: #1408779 + * ARM: 8222/1: mvebu: enable strex backoff delay + - LP: #1408779 + * ARM: 8226/1: cacheflush: get rid of restarting block + - LP: #1408779 + * staging: r8188eu: Add new device ID for DLink GO-USB-N150 + - LP: #1408779 + * btrfs: zero out left over bytes after processing compression streams + - LP: #1408779 + * smiapp: Only some selection targets are settable + - LP: #1408779 + * i2c: omap: fix NACK and Arbitration Lost irq handling + - LP: #1408779 + * drm/nouveau/gf116: remove copy1 engine + - LP: #1408779 + * drm/i915: More cautious with pch fifo underruns + - LP: #1408779 + * drm/i915: Unlock panel even when LVDS is disabled + - LP: #1408779 + * AHCI: Add DeviceIDs for Sunrise Point-LP SATA controller + - LP: #1408779 + * sata_fsl: fix error handling of irq_of_parse_and_map + - LP: #1408779 + * drm/radeon: kernel panic in drm_calc_vbltimestamp_from_scanoutpos with + 3.18.0-rc6 + - LP: #1408779 + * mm: frontswap: invalidate expired data on a dup-store failure + - LP: #1408779 + * mm/vmpressure.c: fix race in vmpressure_work_fn() + - LP: #1408779 + * drivers/input/evdev.c: don't kfree() a vmalloc address + - LP: #1408779 + * mm: fix swapoff hang after page migration and fork + - LP: #1408779 + * mm: fix anon_vma_clone() error treatment + - LP: #1408779 + * slab: fix nodeid bounds check for non-contiguous node IDs + - LP: #1408779 + * ahci: disable MSI on SAMSUNG 0xa800 SSD + - LP: #1408779 + * i2c: davinci: generate STP always when NACK is received + - LP: #1408779 + * ip_tunnel: the lack of vti_link_ops' dellink() cause kernel panic + - LP: #1408779 + * ipv6: gre: fix wrong skb->protocol in WCCP + - LP: #1408779 + * Fix race condition between vxlan_sock_add and vxlan_sock_release + - LP: #1408779 + * tg3: fix ring init when there are more TX than RX channels + - LP: #1408779 + * net/mlx4_core: Limit count field to 24 bits in qp_alloc_res + - LP: #1408779 + * rtnetlink: release net refcnt on error in do_setlink() + - LP: #1408779 + * net: mvneta: fix Tx interrupt delay + - LP: #1408779 + * net: mvneta: fix race condition in mvneta_tx() + - LP: #1408779 + * net: sctp: use MAX_HEADER for headroom reserve in output path + - LP: #1408779 + * Linux 3.13.11-ckt13 + - LP: #1408779 + * ipv6: fix swapped ipv4/ipv6 mtu_reduced callbacks + - LP: #1404558 + * arm64: Fix machine_shutdown() definition + - LP: #1404335 + * arm64: Fix deadlock scenario with smp_send_stop() + - LP: #1404335 + * iwlwifi: mvm: a few more SKUs for 7260 and 3160 + * iwlwifi: fix and add 7265 series HW IDs + - LP: #1408222 + + -- Seth Forshee Tue, 13 Jan 2015 11:37:56 -0600 + +linux (3.13.0-44.73) trusty; urgency=low + + [ Kamal Mostafa ] + + * Release Tracking Bug + - LP: #1402872 + + [ AceLan Kao ] + + * SAUCE: Add use_native_backlight quirk for HP ProBook 6570b + - LP: #1359010 + + [ Andy Whitcroft ] + + * Revert "SAUCE: (no-up) arm64: optimized copy_to_user and copy_from_user + assembly code" + - LP: #1398596 + * [Config] updateconfigs to balance CONFIG_SCOM_DEBUGFS + + [ Upstream Kernel Changes ] + + * iwlwifi: mvm: fix merge damage + - LP: #1393317 + * iwlwifi: remove IWL_UCODE_TLV_FLAGS_SCHED_SCAN flag + - LP: #1393317 + * iwlwifi: mvm: disable scheduled scan to prevent firmware crash + - LP: #1393317 + * iwlwifi: mvm: enable scheduled scan on newest firmware + - LP: #1393317 + * x86: kvm: use alternatives for VMCALL vs. VMMCALL if kernel text is + read-only + - LP: #1379340 + * phylib: introduce PHY_INTERFACE_MODE_XGMII for 10G PHY + - LP: #1381084 + * of: make of_get_phy_mode parse 'phy-connection-type' + - LP: #1381084 + * xen-netfront: Remove BUGs on paged skb data which crosses a page + boundary + - LP: #1275879 + * ACPI / blacklist: blacklist Win8 OSI for Dell Vostro 3546 + - LP: #1383589 + * powerpc/pseries: Fix endiannes issue in RTAS call from xmon + - LP: #1396235 + * mmc: sdhci-pci-o2micro: Fix Dell E5440 issue + - LP: #1346067 + * mfd: rtsx: Fix PM suspend for 5227 & 5249 + - LP: #1359052 + * drivers:scsi:storvsc: Fix a bug in handling ring buffer failures that + may result in I/O freeze + - LP: #1400289 + * arm64: optimized copy_to_user and copy_from_user assembly code + - LP: #1400349 + * net:socket: set msg_namelen to 0 if msg_name is passed as NULL in + msghdr struct from userland. + - LP: #1335478 + * drm/radeon: initialize sadb to NULL in the audio code + - LP: #1402714 + * powerpc/vphn: NUMA node code expects big-endian + - LP: #1401150 + * ALSA: usb-audio: Fix device_del() sysfs warnings at disconnect + - LP: #1402853 + * ALSA: hda - Add mute LED pin quirk for HP 15 touchsmart + - LP: #1334950, #1402853 + * rcu: Make callers awaken grace-period kthread + - LP: #1402853 + * rcu: Use rcu_gp_kthread_wake() to wake up grace period kthreads + - LP: #1402853 + * net: sctp: fix NULL pointer dereference in af->from_addr_param on + malformed packet + - LP: #1402853 + * KVM: x86: Don't report guest userspace emulation error to userspace + - LP: #1402853 + * [media] ttusb-dec: buffer overflow in ioctl + - LP: #1402853 + * arm64: __clear_user: handle exceptions on strb + - LP: #1402853 + * ARM: pxa: fix hang on startup with DEBUG_LL + - LP: #1402853 + * samsung-laptop: Add broken-acpi-video quirk for NC210/NC110 + - LP: #1402853 + * acer-wmi: Add Aspire 5741 to video_vendor_dmi_table + - LP: #1402853 + * acer-wmi: Add acpi_backlight=video quirk for the Acer KAV80 + - LP: #1402853 + * rbd: Fix error recovery in rbd_obj_read_sync() + - LP: #1402853 + * [media] ds3000: fix LNB supply voltage on Tevii S480 on initialization + - LP: #1402853 + * powerpc: do_notify_resume can be called with bad thread_info flags + argument + - LP: #1402853 + * USB: kobil_sct: fix non-atomic allocation in write path + - LP: #1402853 + * USB: opticon: fix non-atomic allocation in write path + - LP: #1402853 + * regulator: max77693: Fix use of uninitialized regulator config + - LP: #1402853 + * USB: cdc-acm: add device id for GW Instek AFG-2225 + - LP: #1402853 + * usb: Do not allow usb_alloc_streams on unconfigured devices + - LP: #1402853 + * usb-storage: handle a skipped data phase + - LP: #1402853 + * xhci: Switch only Intel Lynx Point-LP ports to EHCI on shutdown. + - LP: #1402853 + * xhci: no switching back on non-ULT Haswell + - LP: #1402853 + * of: Fix overflow bug in string property parsing functions + - LP: #1402853 + * spi: fsl-dspi: Fix CTAR selection + - LP: #1402853 + * Btrfs: fix kfree on list_head in btrfs_lookup_csums_range error cleanup + - LP: #1402853 + * staging:iio:ade7758: Fix NULL pointer deref when enabling buffer + - LP: #1402853 + * staging:iio:ade7758: Fix check if channels are enabled in prenable + - LP: #1402853 + * staging:iio:ade7758: Remove "raw" from channel name + - LP: #1402853 + * USB: cdc-acm: only raise DTR on transitions from B0 + - LP: #1402853 + * serial: Fix divide-by-zero fault in uart_get_divisor() + - LP: #1402853 + * tty: Fix high cpu load if tty is unreleaseable + - LP: #1402853 + * tty: Prevent "read/write wait queue active!" log flooding + - LP: #1402853 + * tty/vt: don't set font mappings on vc not supporting this + - LP: #1402853 + * spi: pxa2xx: toggle clocks on suspend if not disabled by runtime PM + - LP: #1402853 + * sysfs: driver core: Fix glue dir race condition by gdp_mutex + - LP: #1402853 + * i2c: at91: don't account as iowait + - LP: #1402853 + * nfsd: don't try to reuse an expired DRC entry off the list + - LP: #1402853 + * nfsd: don't halt scanning the DRC LRU list when there's an RC_INPROG + entry + - LP: #1402853 + * dm bufio: change __GFP_IO to __GFP_FS in shrinker callbacks + - LP: #1402853 + * xtensa: re-wire umount syscall to sys_oldumount + - LP: #1402853 + * dm raid: ensure superblock's size matches device's logical block size + - LP: #1402853 + * ahci: disable MSI instead of NCQ on Samsung pci-e SSDs on macbooks + - LP: #1402853 + * ahci: Add Device IDs for Intel Sunrise Point PCH + - LP: #1402853 + * power: charger-manager: Fix accessing invalidated power supply after + charger unbind + - LP: #1402853 + * mac80211: use secondary channel offset IE also beacons during CSA + - LP: #1402853 + * mac80211: schedule the actual switch of the station before CSA count 0 + - LP: #1402853 + * mac80211: properly flush delayed scan work on interface removal + - LP: #1402853 + * mac80211: fix use-after-free in defragmentation + - LP: #1402853 + * tun: Fix csum_start with VLAN acceleration + - LP: #1402853 + * macvtap: Fix csum_start when VLAN tags are present + - LP: #1402853 + * dm thin: grab a virtual cell before looking up the mapping + - LP: #1402853 + * KVM: x86: Fix uninitialized op->type for some immediate values + - LP: #1402853 + * crypto: caam - fix missing dma unmap on error path + - LP: #1402853 + * hwrng: pseries - port to new read API and fix stack corruption + - LP: #1402853 + * drm/radeon: set correct CE ram size for CIK + - LP: #1402853 + * drm/radeon: make sure mode init is complete in bandwidth_update + - LP: #1402853 + * drm/radeon: use gart for DMA IB tests + - LP: #1402853 + * drm/radeon: add missing crtc unlock when setting up the MC + - LP: #1402853 + * ALSA: hda_intel: Add Device IDs for Intel Sunrise Point PCH + - LP: #1402853 + * ALSA: hda_intel: Add DeviceIDs for Sunrise Point-LP + - LP: #1402853 + * Input: alps - ignore potential bare packets when device is out of sync + - LP: #1402853 + * Input: alps - allow up to 2 invalid packets without resetting device + - LP: #1402853 + * scsi: only re-lock door after EH on devices that were reset + - LP: #1402853 + * dm btree: fix a recursion depth bug in btree walking code + - LP: #1402853 + * parisc: Use compat layer for msgctl, shmat, shmctl and semtimedop + syscalls + - LP: #1402853 + * ALSA: usb-audio: Fix memory leak in FTU quirk + - LP: #1402853 + * audit: keep inode pinned + - LP: #1402853 + * nfs: fix pnfs direct write memory leak + - LP: #1402853 + * nfs: Fix use of uninitialized variable in nfs_getattr() + - LP: #1402853 + * NFSv4: Ensure that we remove NFSv4.0 delegations when state has expired + - LP: #1402853 + * NFSv4.1: nfs41_clear_delegation_stateid shouldn't trust + NFS_DELEGATED_STATE + - LP: #1402853 + * NFSv4: Fix races between nfs_remove_bad_delegation() and delegation + return + - LP: #1402853 + * NFSv4: Ensure that we call FREE_STATEID when NFSv4.x stateids are + revoked + - LP: #1402853 + * NFS: Don't try to reclaim delegation open state if recovery failed + - LP: #1402853 + * libceph: do not crash on large auth tickets + - LP: #1402853 + * ARM: 8191/1: decompressor: ensure I-side picks up relocated code + - LP: #1402853 + * ARM: 8198/1: make kuser helpers depend on MMU + - LP: #1402853 + * zram: avoid kunmap_atomic() of a NULL pointer + - LP: #1402853 + * Input: alps - ignore bad data on Dell Latitudes E6440 and E7440 + - LP: #1402853 + * firewire: cdev: prevent kernel stack leaking into ioctl arguments + - LP: #1402853 + * md: Always set RECOVERY_NEEDED when clearing RECOVERY_FROZEN + - LP: #1402853 + * nfs: Don't busy-wait on SIGKILL in __nfs_iocounter_wait + - LP: #1402853 + * target: Don't call TFO->write_pending if data_length == 0 + - LP: #1402853 + * vhost-scsi: Take configfs group dependency during + VHOST_SCSI_SET_ENDPOINT + - LP: #1402853 + * srp-target: Retry when QP creation fails with ENOMEM + - LP: #1402853 + * ASoC: fsi: remove unsupported PAUSE flag + - LP: #1402853 + * ASoC: rsnd: remove unsupported PAUSE flag + - LP: #1402853 + * ib_isert: Add max_send_sge=2 minimum for control PDU responses + - LP: #1402853 + * iser-target: Handle DEVICE_REMOVAL event on network portal listener + correctly + - LP: #1402853 + * ASoC: dpcm: Fix race between FE/BE updates and trigger + - LP: #1402853 + * mac80211: Fix regression that triggers a kernel BUG with CCMP + - LP: #1402853 + * rt2x00: do not align payload on modern H/W + - LP: #1402853 + * ath9k: Add version/revision macros for QCA9531 + - LP: #1402853 + * ath9k: Fix RTC_DERIVED_CLK usage + - LP: #1402853 + * ASoC: sgtl5000: Fix SMALL_POP bit definition + - LP: #1402853 + * ALSA: usb-audio: Add ctrl message delay quirk for Marantz/Denon devices + - LP: #1402853 + * bitops: Fix shift overflow in GENMASK macros + - LP: #1402853 + * x86: Require exact match for 'noxsave' command line option + - LP: #1402853 + * drm/i915: drop WaSetupGtModeTdRowDispatch:snb + - LP: #1402853 + * ASoC: wm_adsp: Avoid attempt to free buffers that might still be in use + - LP: #1402853 + * can: dev: avoid calling kfree_skb() from interrupt context + - LP: #1402853 + * can: esd_usb2: fix memory leak on disconnect + - LP: #1402853 + * x86, mm: Set NX across entire PMD at boot + - LP: #1402853 + * of/irq: Drop obsolete 'interrupts' vs 'interrupts-extended' text + - LP: #1402853 + * of/base: Fix PowerPC address parsing hack + - LP: #1402853 + * clockevent: sun4i: Fix race condition in the probe code + - LP: #1402853 + * MIPS: oprofile: Fix backtrace on 64-bit kernel + - LP: #1402853 + * ACPI / PM: Ignore wakeup setting if the ACPI companion can't wake up + - LP: #1402853 + * IB/isert: Adjust CQ size to HW limits + - LP: #1402853 + * drm/radeon: fix endian swapping in vbios fetch for tdp table + - LP: #1402853 + * Linux 3.13.11-ckt12 + - LP: #1402853 + * mm: Remove false WARN_ON from pagecache_isize_extended() + - LP: #1402764 + + -- Kamal Mostafa Mon, 15 Dec 2014 16:00:52 -0800 + +linux (3.13.0-43.72) trusty; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - LP: #1400408 + + [ Upstream Kernel Changes ] + + * x86_64, traps: Fix the espfix64 #DF fixup and rewrite it in C + - LP: #1398795 + - CVE-2014-9090 + * x86_64, traps: Rework bad_iret + - LP: #1398795 + - CVE-2014-9090 + * x86, kvm: Clear paravirt_enabled on KVM guests for espfix32's benefit + - LP: #1400314 + - CVE-2014-8134 + + -- Luis Henriques Mon, 08 Dec 2014 17:27:21 +0000 + +linux (3.13.0-42.71) trusty; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - LP: #1399663 + + [ Upstream Kernel Changes ] + + * x86_64, traps: Stop using IST for #SS + - LP: #1398795 + - CVE-2014-9090 + + -- Luis Henriques Fri, 05 Dec 2014 14:29:10 +0000 + +linux (3.13.0-41.70) trusty; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - LP: #1396112 + + [ Chris J Arges ] + + * [Config] CONFIG_SCOM_DEBUGFS=y for powerpc/powerpc64-smp + ppc64el/generic + - LP: #1395855 + + [ Upstream Kernel Changes ] + + * Revert "KVM: x86: Handle errors when RIP is set during far jumps" + - LP: #1393477 + * Revert "net/macb: add pinctrl consumer support" + - LP: #1393477 + * Revert "iwlwifi: mvm: treat EAPOLs like mgmt frames wrt rate" + - LP: #1393477 + * Revert "ipmi: simplify locking" + - LP: #1383921 + * ACPI / blacklist: add Win8 OSI quirks for some Dell laptop models + - LP: #1339456 + * ACPI / battery: Accelerate battery resume callback + - LP: #838543 + * tools: cpu-hotplug fix unexpected operator error + * netlink: reset network header before passing to taps + - LP: #1393477 + * rtnetlink: fix VF info size + - LP: #1393477 + * myri10ge: check for DMA mapping errors + - LP: #1393477 + * tcp: don't use timestamp from repaired skb-s to calculate RTT (v2) + - LP: #1393477 + * sit: Fix ipip6_tunnel_lookup device matching criteria + - LP: #1393477 + * tcp: fix tcp_release_cb() to dispatch via address family for + mtu_reduced() + - LP: #1393477 + * tcp: fix ssthresh and undo for consecutive short FRTO episodes + - LP: #1393477 + * packet: handle too big packets for PACKET_V3 + - LP: #1393477 + * openvswitch: fix panic with multiple vlan headers + - LP: #1393477 + * vxlan: fix incorrect initializer in union vxlan_addr + - LP: #1393477 + * l2tp: fix race while getting PMTU on PPP pseudo-wire + - LP: #1393477 + * bonding: fix div by zero while enslaving and transmitting + - LP: #1393477 + * bridge: Check if vlan filtering is enabled only once. + - LP: #1393477 + * bridge: Fix br_should_learn to check vlan_enabled + - LP: #1393477 + * net: allow macvlans to move to net namespace + - LP: #1393477 + * tg3: Work around HW/FW limitations with vlan encapsulated frames + - LP: #1393477 + * tg3: Allow for recieve of full-size 8021AD frames + - LP: #1393477 + * xfrm: Generate blackhole routes only from route lookup functions + - LP: #1393477 + * xfrm: Generate queueing routes only from route lookup functions + - LP: #1393477 + * macvtap: Fix race between device delete and open. + - LP: #1393477 + * gro: fix aggregation for skb using frag_list + - LP: #1393477 + * hyperv: Fix a bug in netvsc_start_xmit() + - LP: #1393477 + * ip6_gre: fix flowi6_proto value in xmit path + - LP: #1393477 + * team: avoid race condition in scheduling delayed work + - LP: #1393477 + * sctp: handle association restarts when the socket is closed. + - LP: #1393477 + * tcp: fixing TLP's FIN recovery + - LP: #1393477 + * sparc64: Do not disable interrupts in nmi_cpu_busy() + - LP: #1393477 + * sparc64: Fix pcr_ops initialization and usage bugs. + - LP: #1393477 + * sparc32: dma_alloc_coherent must honour gfp flags + - LP: #1393477 + * sparc64: sun4v TLB error power off events + - LP: #1393477 + * sparc64: Fix corrupted thread fault code. + - LP: #1393477 + * sparc64: find_node adjustment + - LP: #1393477 + * sparc64: Move request_irq() from ldc_bind() to ldc_alloc() + - LP: #1393477 + * sparc: Let memset return the address argument + - LP: #1393477 + * sparc64: Fix reversed start/end in flush_tlb_kernel_range() + - LP: #1393477 + * sparc64: Fix lockdep warnings on reboot on Ultra-5 + - LP: #1393477 + * sparc64: Fix FPU register corruption with AES crypto offload. + - LP: #1393477 + * sparc64: Do not define thread fpregs save area as zero-length array. + - LP: #1393477 + * sparc64: Fix hibernation code refrence to PAGE_OFFSET. + - LP: #1393477 + * sparc64: correctly recognise M6 and M7 cpu type + - LP: #1393477 + * sparc64: support M6 and M7 for building CPU distribution map + - LP: #1393477 + * sparc64: cpu hardware caps support for sparc M6 and M7 + - LP: #1393477 + * sparc64: T5 PMU + - LP: #1393477 + * sparc64: Switch to 4-level page tables. + - LP: #1393477 + * sparc64: Define VA hole at run time, rather than at compile time. + - LP: #1393477 + * sparc64: Adjust KTSB assembler to support larger physical addresses. + - LP: #1393477 + * sparc64: Fix physical memory management regressions with large + max_phys_bits. + - LP: #1393477 + * sparc64: Use kernel page tables for vmemmap. + - LP: #1393477 + * sparc64: Increase MAX_PHYS_ADDRESS_BITS to 53. + - LP: #1393477 + * sparc64: Adjust vmalloc region size based upon available virtual + address bits. + - LP: #1393477 + * sparc64: sparse irq + - LP: #1393477 + * sparc64: Kill unnecessary tables and increase MAX_BANKS. + - LP: #1393477 + * sparc64: Increase size of boot string to 1024 bytes + - LP: #1393477 + * sparc64: Fix register corruption in top-most kernel stack frame during + boot. + - LP: #1393477 + * sparc64: Implement __get_user_pages_fast(). + - LP: #1393477 + * ext4: check EA value offset when loading + - LP: #1393477 + * jbd2: free bh when descriptor block checksum fails + - LP: #1393477 + * ext4: don't check quota format when there are no quota files + - LP: #1393477 + * target: Fix queue full status NULL pointer for SCF_TRANSPORT_TASK_SENSE + - LP: #1393477 + * vfs: fix data corruption when blocksize < pagesize for mmaped data + - LP: #1393477 + * ext4: fix mmap data corruption when blocksize < pagesize + - LP: #1393477 + * ext4: grab missed write_count for EXT4_IOC_SWAP_BOOT + - LP: #1393477 + * qla_target: don't delete changed nacls + - LP: #1393477 + * target: Fix APTPL metadata handling for dynamic MappedLUNs + - LP: #1393477 + * iser-target: Disable TX completion interrupt coalescing + - LP: #1393477 + * ext4: don't orphan or truncate the boot loader inode + - LP: #1393477 + * ext4: add ext4_iget_normal() which is to be used for dir tree lookups + - LP: #1393477 + * ext4: fix reservation overflow in ext4_da_write_begin + - LP: #1393477 + * ext4: Replace open coded mdata csum feature to helper function + - LP: #1393477 + * ext4: move error report out of atomic context in + ext4_init_block_bitmap() + - LP: #1393477 + * ARC: [nsimosci] Allow "headless" models to boot + - LP: #1393477 + * ARC: Update order of registers in KGDB to match GDB 7.5 + - LP: #1393477 + * ext4: check s_chksum_driver when looking for bg csum presence + - LP: #1393477 + * drm/radeon: fix speaker allocation setup + - LP: #1393477 + * drm/radeon: use gart memory for DMA ring tests + - LP: #1393477 + * compiler: define OPTIMIZER_HIDE_VAR() macro + - LP: #1393477 + * random: add and use memzero_explicit() for clearing data + - LP: #1393477 + * ALSA: pcm: use the same dma mmap codepath both for arm and arm64 + - LP: #1393477 + * ALSA: ALC283 codec - Avoid pop noise on headphones during + suspend/resume + - LP: #1393477 + * ALSA: usb-audio: Add support for Steinberg UR22 USB interface + - LP: #1393477 + * ALSA: hda - hdmi: Fix missing ELD change event on plug/unplug + - LP: #1393477 + * arm64: compat: fix compat types affecting struct compat_elf_prpsinfo + - LP: #1393477 + * freezer: Do not freeze tasks killed by OOM killer + - LP: #1393477 + * OOM, PM: OOM killed task shouldn't escape PM suspend + - LP: #1393477 + * qxl: don't create too large primary surface + - LP: #1393477 + * MIPS: tlbex: Properly fix HUGE TLB Refill exception handler + - LP: #1393477 + * drm/cirrus: bind also to qemu-xen-traditional + - LP: #1393477 + * cpufreq: intel_pstate: Fix setting max_perf_pct in performance policy + - LP: #1393477 + * cpufreq: expose scaling_cur_freq sysfs file for set_policy() drivers + - LP: #1393477 + * cpufreq: intel_pstate: Reflect current no_turbo state correctly + - LP: #1393477 + * intel_pstate: Don't lose sysfs settings during cpu offline + - LP: #1393477 + * intel_pstate: Fix BYT frequency reporting + - LP: #1393477 + * intel_pstate: Correct BYT VID values. + - LP: #1393477 + * MIPS: ftrace: Fix a microMIPS build problem + - LP: #1393477 + * kvm: x86: don't kill guest on unknown exit reason + - LP: #1393477 + * kvm: fix excessive pages un-pinning in kvm_iommu_map error path. + - LP: #1393477 + * KVM: x86: use new CS.RPL as CPL during task switch + - LP: #1393477 + * KVM: x86: Handle errors when RIP is set during far jumps + - LP: #1393477 + * KVM: x86: Fix far-jump to non-canonical check + - LP: #1393477 + * staging:iio:ad5933: Fix NULL pointer deref when enabling buffer + - LP: #1393477 + * staging:iio:ad5933: Drop "raw" from channel names + - LP: #1393477 + * iio: st_sensors: Fix buffer copy + - LP: #1393477 + * iio: mxs-lradc: Propagate the real error code on platform_get_irq() + failure + - LP: #1393477 + * iio: adc: mxs-lradc: Disable the clock on probe failure + - LP: #1393477 + * spi: pl022: Fix incorrect dma_unmap_sg + - LP: #1393477 + * mac80211: fix typo in starting baserate for rts_cts_rate_idx + - LP: #1393477 + * usb: dwc3: gadget: fix set_halt() bug with pending transfers + - LP: #1393477 + * usb: gadget: function: acm: make f_acm pass USB20CV Chapter9 + - LP: #1393477 + * ext3: Don't check quota format when there are no quota files + - LP: #1393477 + * quota: Properly return errors from dquot_writeback_dquots() + - LP: #1393477 + * USB: serial: cp210x: add Silicon Labs 358x VID and PID + - LP: #1393477 + * usb: serial: ftdi_sio: add Awinda Station and Dongle products + - LP: #1393477 + * usb: option: add support for Telit LE910 + - LP: #1393477 + * USB: option: add Haier CE81B CDMA modem + - LP: #1393477 + * x86, apic: Handle a bad TSC more gracefully + - LP: #1393477 + * i3200_edac: Report CE events properly + - LP: #1393477 + * i82860_edac: Report CE events properly + - LP: #1393477 + * cpc925_edac: Report UE events properly + - LP: #1393477 + * e7xxx_edac: Report CE events properly + - LP: #1393477 + * scsi: Fix error handling in SCSI_IOCTL_SEND_COMMAND + - LP: #1393477 + * usb: serial: ftdi_sio: add "bricked" FTDI device PID + - LP: #1393477 + * usb: musb: cppi41: restart hrtimer only if not yet done + - LP: #1393477 + * usb: gadget: udc: core: fix kernel oops with soft-connect + - LP: #1393477 + * nfsd4: fix crash on unknown operation number + - LP: #1393477 + * iwlwifi: configure the LTR + - LP: #1393477 + * mac80211: add vif to flush call + - LP: #1393477 + * iwlwifi: dvm: drop non VO frames when flushing + - LP: #1393477 + * usb: dwc3: gadget: Properly initialize LINK TRB + - LP: #1393477 + * Input: i8042 - quirks for Fujitsu Lifebook A544 and Lifebook AH544 + - LP: #1393477 + * posix-timers: Fix stack info leak in timer_create() + - LP: #1393477 + * futex: Fix a race condition between REQUEUE_PI and task death + - LP: #1393477 + * PM / Sleep: fix recovery during resuming from hibernation + - LP: #1393477 + * ALSA: pcm: Zero-clear reserved fields of PCM status ioctl in compat + mode + - LP: #1393477 + * ima: check xattr value length and type in the ima_inode_setxattr() + - LP: #1393477 + * evm: check xattr value length and type in evm_inode_setxattr() + - LP: #1393477 + * drm/radeon/dpm: disable ulv support on SI + - LP: #1393477 + * drm/radeon: dpm fixes for asrock systems + - LP: #1393477 + * drm/radeon: remove invalid pci id + - LP: #1393477 + * x86, pageattr: Prevent overflow in slow_virt_to_phys() for X86_PAE + - LP: #1393477 + * cgroup/kmemleak: add kmemleak_free() for cgroup deallocations. + - LP: #1393477 + * mm: free compound page with correct order + - LP: #1393477 + * mm, thp: fix collapsing of hugepages on madvise + - LP: #1393477 + * lib/bitmap.c: fix undefined shift in __bitmap_shift_{left|right}() + - LP: #1393477 + * ext4: fix overflow when updating superblock backups after resize + - LP: #1393477 + * ext4: fix oops when loading block bitmap failed + - LP: #1393477 + * ext4: enable journal checksum when metadata checksum feature enabled + - LP: #1393477 + * ext4: bail out from make_indexed_dir() on first error + - LP: #1393477 + * PCI: Rename sysfs 'enabled' file back to 'enable' + - LP: #1393477 + * wireless: rt2x00: add new rt2800usb device + - LP: #1393477 + * fs: allow open(dir, O_TMPFILE|..., 0) with mode 0 + - LP: #1393477 + * tracing/syscalls: Ignore numbers outside NR_syscalls' range + - LP: #1393477 + * x86_64, entry: Fix out of bounds read on sysenter + - LP: #1393477 + * ACPI / EC: Add support to disallow QR_EC to be issued when SCI_EVT + isn't set + - LP: #1393477 + * ACPI / EC: Fix regression due to conflicting firmware behavior between + Samsung and Acer. + - LP: #1393477 + * net: sctp: fix skb_over_panic when receiving malformed ASCONF chunks + - LP: #1393477 + * net: sctp: fix panic on duplicate ASCONF chunks + - LP: #1393477 + * net: sctp: fix remote memory pressure from excessive queueing + - LP: #1393477 + * Linux 3.13.11.11 + - LP: #1393477 + * MAINTAINERS: Update APM X-Gene section + - LP: #1381084 + * Documentation: dts: Update section header for APM X-Gene + - LP: #1381084 + * dtb: Add 10GbE node to APM X-Gene SoC device tree + - LP: #1381084 + * drivers: net: xgene: Preparing for adding 10GbE support + - LP: #1381084 + * drivers: net: xgene: Add 10GbE support + - LP: #1381084 + * drivers: net: xgene: Add 10GbE ethtool support + - LP: #1381084 + * dtb: Add SGMII based 1GbE node to APM X-Gene SoC device tree + - LP: #1381216 + * drivers: net: xgene: Preparing for adding SGMII based 1GbE + - LP: #1381216 + * drivers: net: xgene: Add SGMII based 1GbE support + - LP: #1381216 + * drivers: net: xgene: Add SGMII based 1GbE ethtool support + - LP: #1381216 + * drivers: net: xgene: Rewrite buggy loop in xgene_enet_ecc_init() + - LP: #1381216 + * dtb: xgene: fix: Backward compatibility with older firmware + - LP: #1381084, #1381216 + * drivers: net: xgene: Backward compatibility with older firmware + - LP: #1381084, #1381216 + * drivers: net: xgene: fix: Use separate resources + - LP: #1381216 + * HID: Add the transport-driver functions to the HIDP driver. + - LP: #1393764 + * ipc: fix compat msgrcv with negative msgtyp + - LP: #1393355 + + -- Luis Henriques Tue, 25 Nov 2014 12:07:01 +0000 + +linux (3.13.0-40.69) trusty; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - re-used previous tracking bug + + [ Upstream Kernel Changes ] + + * regmap: fix kernel hang on regmap_bulk_write with zero val_count. + + -- Luis Henriques Thu, 13 Nov 2014 17:13:01 +0000 + +linux (3.13.0-40.68) trusty; urgency=low + + [ Brad Figg ] + + * Release Tracking Bug + - LP: #1388943 + * SAUCE: DEP8 test to run our regression tests + - LP: #1385330 + * SAUCE: The very first thing we should do when testing is make sure we + are testing the correct kernel + - LP: #1385330 + + [ dann frazier ] + + * [Config] Disable CONFIG_IPMI_SI_PROBE_DEFAULTS on armhf and arm64 + - LP: #1388952 + + [ Duc Dang ] + + * SAUCE: (no-up) [PCIE] APM X-Gene: Remove debug messages in MSI + interrupt handler path. + - LP: #1382244 + * SAUCE: (no-up) PCI: X-Gene: Fix max payload size and phantom function + configuration + - LP: #1386261 + + [ McAulay, Alistair ] + + * SAUCE: drm/i915: Rework GPU reset sequence to match driver load & thaw + - LP: #1384469 + + [ Timo Aaltonen ] + + * SAUCE: i915_bdw: Fix cherry-pick typo + - LP: #1384469 + + [ Upstream Kernel Changes ] + + * Revert "mac80211: disable uAPSD if all ACs are under ACM" + - LP: #1381234 + * Revert "iwlwifi: dvm: don't enable CTS to self" + - LP: #1381234 + * Revert "lzo: properly check for overruns" + - LP: #1387886 + * drm/i915: provide interface for audio driver to query cdclk + - LP: #1381168 + * regulatory: add NUL to alpha2 + - LP: #1381234 + * percpu: fix pcpu_alloc_pages() failure path + - LP: #1381234 + * percpu: perform tlb flush after pcpu_map_pages() failure + - LP: #1381234 + * cgroup: reject cgroup names with '\n' + - LP: #1381234 + * vfs: add d_is_dir() + - LP: #1381234 + * CIFS: Fix directory rename error + - LP: #1381234 + * usb: phy: twl4030-usb: Fix lost interrupts after ID pin goes down + - LP: #1381234 + * rtlwifi: rtl8192cu: Add new ID + - LP: #1381234 + * CIFS: Fix wrong restart readdir for SMB1 + - LP: #1381234 + * CIFS: Fix wrong filename length for SMB2 + - LP: #1381234 + * ahci: Add Device IDs for Intel 9 Series PCH + - LP: #1381234 + * ata_piix: Add Device IDs for Intel 9 Series PCH + - LP: #1381234 + * USB: zte_ev: fix removed PIDs + - LP: #1381234 + * USB: ftdi_sio: add support for NOVITUS Bono E thermal printer + - LP: #1381234 + * USB: sierra: avoid CDC class functions on "68A3" devices + - LP: #1381234 + * USB: sierra: add 1199:68AA device ID + - LP: #1381234 + * iommu/arm-smmu: fix programming of SMMU_CBn_TCR for stage 1 + - LP: #1381234 + * iommu/arm-smmu: remove pgtable_page_{c,d}tor() + - LP: #1381234 + * usb: gadget: fusb300_udc.h: Fix typo in include guard + - LP: #1381234 + * usb: phy: tegra: Avoid use of sizeof(void) + - LP: #1381234 + * arm64: use irq_set_affinity with force=false when migrating irqs + - LP: #1381234 + * block: Fix dev_t minor allocation lifetime + - LP: #1381234 + * usb: dwc3: core: fix order of PM runtime calls + - LP: #1381234 + * usb: dwc3: core: fix ordering for PHY suspend + - LP: #1381234 + * usb: dwc3: omap: fix ordering for runtime pm calls + - LP: #1381234 + * iommu/fsl: Fix warning resulting from adding PCI device twice + - LP: #1381234 + * ahci: add pcid for Marvel 0x9182 controller + - LP: #1381234 + * drm/i915: Fix EIO/wedged handling in gem fault handler + - LP: #1381234 + * ACPI / RTC: Fix CMOS RTC opregion handler accesses to wrong addresses + - LP: #1381234 + * drm/i915: Evict CS TLBs between batches + - LP: #1381234 + * drm/i915: Wait for vblank before enabling the TV encoder + - LP: #1381234 + * lockd: fix rpcbind crash on lockd startup failure + - LP: #1381234 + * drm/radeon: fix semaphore value init + - LP: #1381234 + * drm/radeon: add connector quirk for fujitsu board + - LP: #1381234 + * imx-drm: ipuv3-plane: fix ipu_plane_dpms() + - LP: #1381234 + * usb: host: xhci: fix compliance mode workaround + - LP: #1381234 + * Input: elantech - fix detection of touchpad on ASUS s301l + - LP: #1381234 + * USB: ftdi_sio: Add support for GE Healthcare Nemo Tracker device + - LP: #1381234 + * uwb: init beacon cache entry before registering uwb device + - LP: #1381234 + * nfs: fix kernel warning when removing proc entry + - LP: #1381234 + * drm/radeon/dpm: set the thermal type properly for special configs + - LP: #1381234 + * dm cache: fix race causing dirty blocks to be marked as clean + - LP: #1381234 + * libceph: gracefully handle large reply messages from the mon + - LP: #1381234 + * Input: serport - add compat handling for SPIOCSTYPE ioctl + - LP: #1381234 + * usb: hub: take hub->hdev reference when processing from eventlist + - LP: #1381234 + * eventpoll: fix uninitialized variable in epoll_ctl + - LP: #1381234 + * kcmp: fix standard comparison bug + - LP: #1381234 + * fsnotify/fdinfo: use named constants instead of hardcoded values + - LP: #1381234 + * fs/notify: don't show f_handle if exportfs_encode_inode_fh failed + - LP: #1381234 + * arm64: flush TLS registers during exec + - LP: #1381234 + * storage: Add single-LUN quirk for Jaz USB Adapter + - LP: #1381234 + * xhci: Fix null pointer dereference if xhci initialization fails + - LP: #1381234 + * usb: xhci: Fix OOPS in xhci error handling code + - LP: #1381234 + * xhci: fix oops when xhci resumes from hibernate with hw lpm capable + devices + - LP: #1381234 + * drm/ast: open key before detect chips + - LP: #1381234 + * drm/ast: AST2000 cannot be detected correctly + - LP: #1381234 + * futex: Unlock hb->lock in futex_wait_requeue_pi() error path + - LP: #1381234 + * jiffies: Fix timeval conversion to jiffies + - LP: #1381234 + * alarmtimer: Return relative times in timer_gettime + - LP: #1381234 + * alarmtimer: Do not signal SIGEV_NONE timers + - LP: #1381234 + * alarmtimer: Lock k_itimer during timer callback + - LP: #1381234 + * parisc: Implement new LWS CAS supporting 64 bit operations. + - LP: #1381234 + * don't bugger nd->seq on set_root_rcu() from follow_dotdot_rcu() + - LP: #1381234 + * be careful with nd->inode in path_init() and follow_dotdot_rcu() + - LP: #1381234 + * iio:inkern: fix overwritten -EPROBE_DEFER in of_iio_channel_get_by_name + - LP: #1381234 + * iio:trigger: modify return value for iio_trigger_get + - LP: #1381234 + * iio: accel: bma180: Fix indio_dev->trig assignment + - LP: #1381234 + * iio: adc: ad_sigma_delta: Fix indio_dev->trig assignment + - LP: #1381234 + * iio: hid_sensor_hub: Fix indio_dev->trig assignment + - LP: #1381234 + * iio: st_sensors: Fix indio_dev->trig assignment + - LP: #1381234 + * iio: gyro: itg3200: Fix indio_dev->trig assignment + - LP: #1381234 + * iio: inv_mpu6050: Fix indio_dev->trig assignment + - LP: #1381234 + * iio: meter: ade7758: Fix indio_dev->trig assignment + - LP: #1381234 + * MIPS: ZBOOT: add missing include + - LP: #1381234 + * spi: fsl: Don't use devm_kzalloc in master->setup callback + - LP: #1381234 + * spi: dw: Don't use devm_kzalloc in master->setup callback + - LP: #1381234 + * ARM: 8133/1: use irq_set_affinity with force=false when migrating irqs + - LP: #1381234 + * cx18: fix kernel oops with tda8290 tuner + - LP: #1381234 + * ASoC: davinci-mcasp: Correct rx format unit configuration + - LP: #1381234 + * spi: sirf: enable RX_IO_DMA_INT interrupt + - LP: #1381234 + * perf: Fix a race condition in perf_remove_from_context() + - LP: #1381234 + * ASoC: samsung-i2s: Maintain CDCLK settings across + i2s_{shutdown/startup} + - LP: #1381234 + * ASoC: samsung-i2s: Check secondary DAI exists before referencing + - LP: #1381234 + * ALSA: hda - Fix invalid pin powermap without jack detection + - LP: #1381234 + * Input: atkbd - do not try 'deactivate' keyboard on any LG laptops + - LP: #1381234 + * Input: i8042 - add Fujitsu U574 to no_timeout dmi table + - LP: #1381234 + * Input: i8042 - add nomux quirk for Avatar AVIU-145A6 + - LP: #1381234 + * iio: adc: at91: don't use the last converted data register + - LP: #1381234 + * iio:magnetometer: bugfix magnetometers gain values + - LP: #1381234 + * drm/i915: Fix SRC_COPY width on 830/845g + - LP: #1381234 + * Target/iser: Get isert_conn reference once got to connected_handler + - LP: #1381234 + * Target/iser: Don't put isert_conn inside disconnected handler + - LP: #1381234 + * ARM: 8148/1: flush TLS and thumbee register state during exec + - LP: #1381234 + * x86, ia64: Move EFI_FB vga_default_device() initialization to + pci_vga_fixup() + - LP: #1381234 + * vgaarb: Don't default exclusively to first video device with mem+io + - LP: #1381234 + * iscsi-target: Fix memory corruption in + iscsit_logout_post_handler_diffcid + - LP: #1381234 + * iscsi-target: avoid NULL pointer in iscsi_copy_param_list failure + - LP: #1381234 + * NFSv4: nfs4_state_manager() vs. nfs_server_remove_lists() + - LP: #1381234 + * NFSv4: Fix another bug in the close/open_downgrade code + - LP: #1381234 + * drm/radeon: don't reset dma on NI/SI init + - LP: #1381234 + * drm/radeon: don't reset sdma on CIK init + - LP: #1381234 + * drm/radeon: don't reset dma on r6xx-evergreen init + - LP: #1381234 + * vgaswitcheroo: add vga_switcheroo_fini_domain_pm_ops + - LP: #1381234 + * drm/radeon/px: fix module unload + - LP: #1381234 + * drm/nouveau/runpm: fix module unload + - LP: #1381234 + * libiscsi: fix potential buffer overrun in __iscsi_conn_send_pdu + - LP: #1381234 + * USB: EHCI: unlink QHs even after the controller has stopped + - LP: #1381234 + * USB: storage: Add quirk for Adaptec USBConnect 2000 USB-to-SCSI Adapter + - LP: #1381234 + * USB: storage: Add quirk for Ariston Technologies iConnect USB to SCSI + adapter + - LP: #1381234 + * USB: storage: Add quirks for Entrega/Xircom USB to SCSI converters + - LP: #1381234 + * drm/nouveau: ltc/gf100-: fix cbc issues on certain boards + - LP: #1381234 + * iwlwifi: increase DEFAULT_MAX_TX_POWER + - LP: #1381234 + * iwlwifi: mvm: treat EAPOLs like mgmt frames wrt rate + - LP: #1381234 + * workqueue: apply __WQ_ORDERED to create_singlethread_workqueue() + - LP: #1381234 + * can: flexcan: mark TX mailbox as TX_INACTIVE + - LP: #1381234 + * can: flexcan: correctly initialize mailboxes + - LP: #1381234 + * can: flexcan: implement workaround for errata ERR005829 + - LP: #1381234 + * can: flexcan: put TX mailbox into TX_INACTIVE mode after tx-complete + - LP: #1381234 + * can: at91_can: add missing prepare and unprepare of the clock + - LP: #1381234 + * IB/qib: Correct reference counting in debugfs qp_stats + - LP: #1381234 + * videobuf2-dma-sg: fix for wrong GFP mask to sg_alloc_table_from_pages + - LP: #1381234 + * vb2: fix plane index sanity check in vb2_plane_cookie() + - LP: #1381234 + * adv7604: fix inverted condition + - LP: #1381234 + * md/raid1: intialise start_next_window for READ case to avoid hang + - LP: #1381234 + * md/raid1: be more cautious where we read-balance during resync. + - LP: #1381234 + * md/raid1: clean up request counts properly in close_sync() + - LP: #1381234 + * md/raid1: make sure resync waits for conflicting writes to complete. + - LP: #1381234 + * md/raid1: Don't use next_resync to determine how far resync has + progressed + - LP: #1381234 + * md/raid1: update next_resync under resync_lock. + - LP: #1381234 + * md/raid1: count resync requests in nr_pending. + - LP: #1381234 + * md/raid1: fix_read_error should act on all non-faulty devices. + - LP: #1381234 + * ALSA: pcm: fix fifo_size frame calculation + - LP: #1381234 + * Fix nasty 32-bit overflow bug in buffer i/o code. + - LP: #1381234 + * drm/radeon/cik: use a separate counter for CP init timeout + - LP: #1381234 + * parisc: Only use -mfast-indirect-calls option for 32-bit kernel builds + - LP: #1381234 + * sched: Fix unreleased llc_shared_mask bit during CPU hotplug + - LP: #1381234 + * MIPS: mcount: Adjust stack pointer for static trace in MIPS32 + - LP: #1381234 + * nilfs2: fix data loss with mmap() + - LP: #1381234 + * ocfs2/dlm: do not get resource spinlock if lockres is new + - LP: #1381234 + * mm, slab: initialize object alignment on cache creation + - LP: #1381234 + * mm: softdirty: keep bit when zapping file pte + - LP: #1381234 + * shmem: fix nlink for rename overwrite directory + - LP: #1381234 + * ARM: 8165/1: alignment: don't break misaligned NEON load/store + - LP: #1381234 + * ASoC: core: fix possible ZERO_SIZE_PTR pointer dereferencing error. + - LP: #1381234 + * cpufreq: integrator: fix integrator_cpufreq_remove return type + - LP: #1381234 + * drm/i915: Flush the PTEs after updating them before suspend + - LP: #1381234 + * ARM: 8178/1: fix set_tls for !CONFIG_KUSER_HELPERS + - LP: #1381234 + * md/raid5: disable 'DISCARD' by default due to safety concerns. + - LP: #1381234 + * mm: migrate: Close race between migration completion and mprotect + - LP: #1381234 + * mm: numa: Do not mark PTEs pte_numa when splitting huge pages + - LP: #1381234 + * Fix problem recognizing symlinks + - LP: #1381234 + * mm: memcontrol: do not iterate uninitialized memcgs + - LP: #1381234 + * perf: fix perf bug in fork() + - LP: #1381234 + * mm: page_alloc: fix zone allocation fairness on UP + - LP: #1381234 + * init/Kconfig: Hide printk log config if CONFIG_PRINTK=n + - LP: #1381234 + * init/Kconfig: Fix HAVE_FUTEX_CMPXCHG to not break up the EXPERT menu + - LP: #1381234 + * genhd: fix leftover might_sleep() in blk_free_devt() + - LP: #1381234 + * Linux 3.13.11.9 + - LP: #1381234 + * NVMe: Initialize device reference count earlier + - LP: #1382221 + * nfs: fix duplicate proc entries + - LP: #1376245 + * xfs: xfs_dir2_block_to_sf temp buffer allocation fails + - LP: #1382333 + * UPSTREAM: kernel: Mark function as static in kernel/seccomp.c + - LP: #1379020 + * ARM: 8087/1: ptrace: reload syscall number after secure_computing() + check + - LP: #1379020 + * seccomp: create internal mode-setting function + - LP: #1379020 + * seccomp: extract check/assign mode helpers + - LP: #1379020 + * seccomp: split mode setting routines + - LP: #1379020 + * seccomp: add "seccomp" syscall + - LP: #1379020 + * ARM: add seccomp syscall + - LP: #1379020 + * MIPS: add seccomp syscall + - LP: #1379020 + * sched: move no_new_privs into new atomic flags + - LP: #1379020 + * seccomp: split filter prep from check and apply + - LP: #1379020 + * seccomp: introduce writer locking + - LP: #1379020 + * seccomp: allow mode setting across threads + - LP: #1379020 + * seccomp: implement SECCOMP_FILTER_FLAG_TSYNC + - LP: #1379020 + * seccomp: Replace BUG(!spin_is_locked()) with assert_spin_lock + - LP: #1379020 + * fs: Add a missing permission check to do_umount + - LP: #1383358 + - CVE-2014-7975 + * mfd: rtsx_pcr: Fix MSI enable error handling + - LP: #1366841 + * xen/balloon: Don't continue ballooning when BP_ECANCELED is encountered + - LP: #1304001 + * Bluetooth: Fix HCI H5 corrupted ack value + - LP: #1387886 + * dmaengine: fix xor sources continuation + - LP: #1387886 + * siano: add support for PCTV 77e + - LP: #1387886 + * em28xx-v4l: give back all active video buffers to the vb2 core properly + on streaming stop + - LP: #1387886 + * em28xx-v4l: fix video buffer field order reporting in progressive mode + - LP: #1387886 + * crypto: caam - fix addressing of struct member + - LP: #1387886 + * x86, fpu: shift drop_init_fpu() from save_xstate_sig() to + handle_signal() + - LP: #1387886 + * x86, fpu: __restore_xstate_sig()->math_state_restore() needs + preempt_disable() + - LP: #1387886 + * KVM: do not bias the generation number in kvm_current_mmio_generation + - LP: #1387886 + * kvm: fix potentially corrupt mmio cache + - LP: #1387886 + * kvm: x86: fix stale mmio cache bug + - LP: #1387886 + * UBIFS: fix free log space calculation + - LP: #1387886 + * Bluetooth: Fix issue with USB suspend in btusb driver + - LP: #1387886 + * mmc: rtsx_pci_sdmmc: fix incorrect last byte in R2 response + - LP: #1387886 + * KVM: s390: unintended fallthrough for external call + - LP: #1387886 + * UBI: add missing kmem_cache_free() in process_pool_aeb error path + - LP: #1387886 + * PCI: Increase IBM ipr SAS Crocodile BARs to at least system page size + - LP: #1387886 + * drbd: compute the end before rb_insert_augmented() + - LP: #1387886 + * Bluetooth: Fix setting correct security level when initiating SMP + - LP: #1387886 + * mmc: tmio: prevent endless loop in tmio_mmc_set_clock() + - LP: #1387886 + * iwlwifi: Add missing PCI IDs for the 7260 series + - LP: #1387886 + * media: usb: uvc: add a quirk for Dell XPS M1330 webcam + - LP: #1387886 + * USB: serial: cp210x: added Ketra N1 wireless interface support + - LP: #1387886 + * USB: cp210x: add support for Seluxit USB dongle + - LP: #1387886 + * PCI: Generate uppercase hex for modalias interface class + - LP: #1387886 + * PCI: mvebu: Fix uninitialized variable in mvebu_get_tgt_attr() + - LP: #1387886 + * xfs: ensure WB_SYNC_ALL writeback handles partial pages correctly + - LP: #1387886 + * v4l2-common: fix overflow in v4l_bound_align_image() + - LP: #1387886 + * USB: Add device quirk for ASUS T100 Base Station keyboard + - LP: #1387886 + * mei: bus: fix possible boundaries violation + - LP: #1387886 + * firmware_class: make sure fw requests contain a name + - LP: #1387886 + * Drivers: hv: vmbus: Cleanup vmbus_post_msg() + - LP: #1387886 + * Drivers: hv: vmbus: Cleanup vmbus_teardown_gpadl() + - LP: #1387886 + * Drivers: hv: vmbus: Cleanup vmbus_establish_gpadl() + - LP: #1387886 + * Drivers: hv: vmbus: Fix a bug in vmbus_open() + - LP: #1387886 + * Drivers: hv: vmbus: Cleanup vmbus_close_internal() + - LP: #1387886 + * Drivers: hv: vmbus: Cleanup hv_post_message() + - LP: #1387886 + * spi: dw-mid: respect 8 bit mode + - LP: #1387886 + * spi: dw-mid: terminate ongoing transfers at exit + - LP: #1387886 + * kvm: don't take vcpu mutex for obviously invalid vcpu ioctls + - LP: #1387886 + * x86/intel/quark: Switch off CR4.PGE so TLB flush uses CR3 instead + - LP: #1387886 + * ARM: at91: fix at91sam9263ek DT mmc pinmuxing settings + - LP: #1387886 + * ARM: at91/PMC: don't forget to write PMC_PCDR register to disable + clocks + - LP: #1387886 + * Fixing lease renewal + - LP: #1387886 + * lockd: Try to reconnect if statd has moved + - LP: #1387886 + * qla2xxx: Use correct offset to req-q-out for reserve calculation + - LP: #1387886 + * power: charger-manager: Fix NULL pointer exception with missing + cm-fuel-gauge + - LP: #1387886 + * rt2800: correct BBP1_TX_POWER_CTRL mask + - LP: #1387886 + * regmap: fix NULL pointer dereference in _regmap_write/read + - LP: #1387886 + * Documentation: lzo: document part of the encoding + - LP: #1387886 + * lzo: check for length overrun in variable length encoding. + - LP: #1387886 + * regmap: debugfs: fix possbile NULL pointer dereference + - LP: #1387886 + * regmap: fix possible ZERO_SIZE_PTR pointer dereferencing error. + - LP: #1387886 + * net_dma: simple removal + - LP: #1387886 + * libata-sff: Fix controllers with no ctl port + - LP: #1387886 + * NFSv4: Fix lock recovery when CREATE_SESSION/SETCLIENTID_CONFIRM fails + - LP: #1387886 + * NFSv4: fix open/lock state recovery error handling + - LP: #1387886 + * tty: omap-serial: fix division by zero + - LP: #1387886 + * serial: 8250: Add Quark X1000 to 8250_pci.c + - LP: #1387886 + * missing data dependency barrier in prepend_name() + - LP: #1387886 + * be2iscsi: check ip buffer before copying + - LP: #1387886 + * framebuffer: fix border color + - LP: #1387886 + * framebuffer: fix screen corruption when copying + - LP: #1387886 + * mpc85xx_edac: Make L2 interrupt shared too + - LP: #1387886 + * NFSv4.1: Fix an NFSv4.1 state renewal regression + - LP: #1387886 + * xen-blkback: fix leak on grant map error path + - LP: #1387886 + * m68k: Disable/restore interrupts in hwreg_present()/hwreg_write() + - LP: #1387886 + * ASoC: tlv320aic3x: fix PLL D configuration + - LP: #1387886 + * dm bufio: update last_accessed when relinking a buffer + - LP: #1387886 + * dm bufio: when done scanning return from __scan immediately + - LP: #1387886 + * dm log userspace: fix memory leak in dm_ulog_tfr_init failure path + - LP: #1387886 + * ecryptfs: avoid to access NULL pointer when write metadata in xattr + - LP: #1387886 + * x86_64, entry: Filter RFLAGS.NT on entry from userspace + - LP: #1387886 + * ASoC: soc-dapm: fix use after free + - LP: #1387886 + * pata_serverworks: disable 64-KB DMA transfers on Broadcom OSB4 IDE + Controller + - LP: #1387886 + * drm/ast: Fix HW cursor image + - LP: #1387886 + * x86: Reject x32 executables if x32 ABI not supported + - LP: #1387886 + * kill wbuf_queued/wbuf_dwork_lock + - LP: #1387886 + * fs: Fix theoretical division by 0 in super_cache_scan(). + - LP: #1387886 + * fs: make cont_expand_zero interruptible + - LP: #1387886 + * fix misuses of f_count() in ppp and netlink + - LP: #1387886 + * block: fix alignment_offset math that assumes io_min is a power-of-2 + - LP: #1387886 + * fanotify: enable close-on-exec on events' fd when requested in + fanotify_init() + - LP: #1387886 + * mm: clear __GFP_FS when PF_MEMALLOC_NOIO is set + - LP: #1387886 + * Input: i8042 - add noloop quirk for Asus X750LN + - LP: #1387886 + * um: ubd: Fix for processes stuck in D state forever + - LP: #1387886 + * kernel: add support for gcc 5 + - LP: #1387886 + * ALSA: emu10k1: Fix deadlock in synth voice lookup + - LP: #1387886 + * libceph: ceph-msgr workqueue needs a resque worker + - LP: #1387886 + * mnt: Prevent pivot_root from creating a loop in the mount tree + - LP: #1387886 + * modules, lock around setting of MODULE_STATE_UNFORMED + - LP: #1387886 + * virtio_pci: fix virtio spec compliance on restore + - LP: #1387886 + * selinux: fix inode security list corruption + - LP: #1387886 + * pstore: Fix duplicate {console,ftrace}-efi entries + - LP: #1387886 + * futex: Ensure get_futex_key_refs() always implies a barrier + - LP: #1387886 + * x86,kvm,vmx: Preserve CR4 across VM entry + - LP: #1387886 + * crypto: caam - remove duplicated sg copy functions + - LP: #1387886 + * Linux 3.13.11.10 + - LP: #1387886 + * ipmi: Turn off default probing of interfaces + - LP: #1388952 + + -- Tim Gardner Wed, 29 Oct 2014 14:39:14 -0400 + +linux (3.13.0-39.66) trusty; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - LP: #1386629 + + [ Upstream Kernel Changes ] + + * KVM: x86: Check non-canonical addresses upon WRMSR + - LP: #1384539 + - CVE-2014-3610 + * KVM: x86: Prevent host from panicking on shared MSR writes. + - LP: #1384539 + - CVE-2014-3610 + * KVM: x86: Improve thread safety in pit + - LP: #1384540 + - CVE-2014-3611 + * KVM: x86: Fix wrong masking on relative jump/call + - LP: #1384545 + - CVE-2014-3647 + * KVM: x86: Warn if guest virtual address space is not 48-bits + - LP: #1384545 + - CVE-2014-3647 + * KVM: x86: Emulator fixes for eip canonical checks on near branches + - LP: #1384545 + - CVE-2014-3647 + * KVM: x86: emulating descriptor load misses long-mode case + - LP: #1384545 + - CVE-2014-3647 + * KVM: x86: Handle errors when RIP is set during far jumps + - LP: #1384545 + - CVE-2014-3647 + * kvm: vmx: handle invvpid vm exit gracefully + - LP: #1384544 + - CVE-2014-3646 + * Input: synaptics - gate forcepad support by DMI check + - LP: #1381815 + + -- Luis Henriques Tue, 28 Oct 2014 10:29:51 +0000 + +linux (3.13.0-38.65) trusty; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - LP: #1379244 + + [ Andy Whitcroft ] + + * Revert "SAUCE: scsi: hyper-v storsvc switch up to SPC-3" + - LP: #1354397 + * [Config] linux-image-extra is additive to linux-image + - LP: #1375310 + * [Config] linux-image-extra postrm is not needed on purge + - LP: #1375310 + + [ Upstream Kernel Changes ] + + * Revert "KVM: x86: Increase the number of fixed MTRR regs to 10" + - LP: #1377564 + * Revert "USB: option,zte_ev: move most ZTE CDMA devices to zte_ev" + - LP: #1377564 + * aufs: bugfix, stop calling security_mmap_file() again + - LP: #1371316 + * ipvs: fix ipv6 hook registration for local replies + - LP: #1349768 + * Drivers: add blist flags + - LP: #1354397 + * sd: fix a bug in deriving the FLUSH_TIMEOUT from the basic I/O timeout + - LP: #1354397 + * drm/i915/bdw: Add 42ms delay for IPS disable + - LP: #1374389 + * drm/i915: add null render states for gen6, gen7 and gen8 + - LP: #1374389 + * drm/i915/bdw: 3D_CHICKEN3 has write mask bits + - LP: #1374389 + * drm/i915/bdw: Disable idle DOP clock gating + - LP: #1374389 + * drm/i915: call lpt_init_clock_gating on BDW too + - LP: #1374389 + * drm/i915: shuffle panel code + - LP: #1374389 + * drm/i915: extract backlight minimum brightness from VBT + - LP: #1374389 + * drm/i915: respect the VBT minimum backlight brightness + - LP: #1374389 + * drm/i915/bdw: Apply workarounds in render ring init function + - LP: #1374389 + * drm/i915/bdw: Cleanup pre prod workarounds + - LP: #1374389 + * drm/i915: Replace hardcoded cacheline size with macro + - LP: #1374389 + * drm/i915: Refactor Broadwell PIPE_CONTROL emission into a helper. + - LP: #1374389 + * drm/i915: Add the WaCsStallBeforeStateCacheInvalidate:bdw workaround. + - LP: #1374389 + * drm/i915/bdw: Remove BDW preproduction W/As until C stepping. + - LP: #1374389 + * mptfusion: enable no_write_same for vmware scsi disks + - LP: #1371591 + * iommu/amd: Fix cleanup_domain for mass device removal + - LP: #1375266 + * cifs: mask off top byte in get_rfc1002_length() + - LP: #1372482 + * Input: synaptics - add support for ForcePads + - LP: #1377564 + * ASoC: pxa-ssp: drop SNDRV_PCM_FMTBIT_S24_LE + - LP: #1377564 + * drm/radeon: add bapm module parameter + - LP: #1377564 + * drm/radeon: Add missing lines to ci_set_thermal_temperature_range + - LP: #1377564 + * drm/radeon: Add ability to get and change dpm state when radeon PX card + is turned off + - LP: #1377564 + * ALSA: hda/realtek - Avoid setting wrong COEF on ALC269 & co + - LP: #1377564 + * of/irq: Fix lookup to use 'interrupts-extended' property first + - LP: #1377564 + * Possible null ptr deref in SMB2_tcon + - LP: #1377564 + * CIFS: Fix SMB2 readdir error handling + - LP: #1377564 + * CIFS: Fix wrong directory attributes after rename + - LP: #1377564 + * md/raid6: avoid data corruption during recovery of double-degraded + RAID6 + - LP: #1377564 + * ARM: dts: i.MX53: fix apparent bug in VPU clks + - LP: #1377564 + * pata_scc: propagate return value of scc_wait_after_reset + - LP: #1377564 + * libata: widen Crucial M550 blacklist matching + - LP: #1377564 + * ALSA: hda - restore the gpio led after resume + - LP: #1358116, #1377564 + * md/raid10: fix memory leak when reshaping a RAID10. + - LP: #1377564 + * md/raid10: Fix memory leak when raid10 reshape completes. + - LP: #1377564 + * MIPS: OCTEON: make get_system_type() thread-safe + - LP: #1377564 + * can: c_can: checking IS_ERR() instead of NULL + - LP: #1377564 + * HID: logitech: perform bounds checking on device_id early enough + - LP: #1377564 + * firmware: Do not use WARN_ON(!spin_is_locked()) + - LP: #1377564 + * drm/radeon: add new KV pci id + - LP: #1377564 + * drm/radeon: add new bonaire pci ids + - LP: #1377564 + * drm/radeon: add additional SI pci ids + - LP: #1377564 + * ibmveth: Fix endian issues with rx_no_buffer statistic + - LP: #1377564 + * spi/omap-mcspi: Fix the spi task hangs waiting dma_rx + - LP: #1377564 + * xtensa: replace IOCTL code definitions with constants + - LP: #1377564 + * xtensa: fix address checks in dma_{alloc,free}_coherent + - LP: #1377564 + * xtensa: fix access to THREAD_RA/THREAD_SP/THREAD_DS + - LP: #1377564 + * xtensa: fix TLBTEMP_BASE_2 region handling in fast_second_level_miss + - LP: #1377564 + * xtensa: fix a6 and a7 handling in fast_syscall_xtensa + - LP: #1377564 + * staging: lustre: Remove circular dependency on header + - LP: #1377564 + * USB: option: reduce interrupt-urb logging verbosity + - LP: #1377564 + * USB: option: add VIA Telecom CDS7 chipset device id + - LP: #1377564 + * USB: zte_ev: remove duplicate Gobi PID + - LP: #1377564 + * USB: zte_ev: remove duplicate Qualcom PID + - LP: #1377564 + * USB: ftdi_sio: add Basic Micro ATOM Nano USB2Serial PID + - LP: #1377564 + * USB: serial: pl2303: add device id for ztek device + - LP: #1377564 + * USB: ftdi_sio: Added PID for new ekey device + - LP: #1377564 + * xhci: Treat not finding the event_seg on COMP_STOP the same as + COMP_STOP_INVAL + - LP: #1377564 + * usb: xhci: amd chipset also needs short TX quirk + - LP: #1377564 + * xhci: rework cycle bit checking for new dequeue pointers + - LP: #1377564 + * spi/pxa2xx: Add ACPI ID for Intel Braswell + - LP: #1377564 + * ALSA: core: fix buffer overflow in snd_info_get_line() + - LP: #1377564 + * HID: logitech-dj: prevent false errors to be shown + - LP: #1377564 + * usb: ehci: using wIndex + 1 for hub port + - LP: #1377564 + * staging/rtl8188eu: add 0df6:0076 Sitecom Europe B.V. + - LP: #1377564 + * staging: r8188eu: Add new USB ID + - LP: #1377564 + * mtd: nand: omap: Fix 1-bit Hamming code scheme, omap_calculate_ecc() + - LP: #1377564 + * trace: Fix epoll hang when we race with new entries + - LP: #1377564 + * cfq-iosched: Fix wrong children_weight calculation + - LP: #1377564 + * USB: sisusb: add device id for Magic Control USB video + - LP: #1377564 + * NFSv4: Fix problems with close in the presence of a delegation + - LP: #1377564 + * usb: hub: Prevent hub autosuspend if usbcore.autosuspend is -1 + - LP: #1377564 + * ARM: 8128/1: abort: don't clear the exclusive monitors + - LP: #1377564 + * ARM: 8129/1: errata: work around Cortex-A15 erratum 830321 using dummy + strex + - LP: #1377564 + * USB: serial: fix potential stack buffer overflow + - LP: #1377564 + * USB: serial: fix potential heap buffer overflow + - LP: #1377564 + * ext4: update i_disksize coherently with block allocation on error path + - LP: #1377564 + * jbd2: fix infinite loop when recovering corrupt journal blocks + - LP: #1377564 + * jbd2: fix descriptor block size handling errors with journal_csum + - LP: #1377564 + * memblock, memhotplug: fix wrong type in memblock_find_in_range_node(). + - LP: #1377564 + * xattr: fix check for simultaneous glibc header inclusion + - LP: #1377564 + * KVM: s390: Fix user triggerable bug in dead code + - LP: #1377564 + * KVM: s390/mm: try a cow on read only pages for key ops + - LP: #1377564 + * regmap: Fix regcache debugfs initialization + - LP: #1377564 + * regmap: Fix handling of volatile registers for format_write() chips + - LP: #1377564 + * ASoC: rt5640: Do not allow regmap to use bulk read-write operations + - LP: #1377564 + * drm/i915: Remove bogus __init annotation from DMI callbacks + - LP: #1377564 + * hwmon: (ds1621) Update zbits after conversion rate change + - LP: #1377564 + * arm64: ptrace: fix compat hardware watchpoint reporting + - LP: #1377564 + * ARM/ARM64: KVM: Nuke Hyp-mode tlbs before enabling MMU + - LP: #1377564 + * arm/arm64: KVM: Complete WFI/WFE instructions + - LP: #1377564 + * get rid of propagate_umount() mistakenly treating slaves as busy. + - LP: #1377564 + * fix EBUSY on umount() from MNT_SHRINKABLE + - LP: #1377564 + * regmap: Don't attempt block writes when syncing cache on single_rw + devices + - LP: #1377564 + * drm/vmwgfx: Fix a potential infinite spin waiting for fifo idle + - LP: #1377564 + * ALSA: hda - Fix digital mic on Acer Aspire 3830TG + - LP: #1377564 + * xfs: don't dirty buffers beyond EOF + - LP: #1377564 + * xfs: don't zero partial page cache pages during O_DIRECT writes + - LP: #1377564 + * xfs: don't zero partial page cache pages during O_DIRECT writes + - LP: #1377564 + * ALSA: hda - Fix COEF setups for ALC1150 codec + - LP: #1377564 + * i2c: rcar: fix MNR interrupt handling + - LP: #1377564 + * i2c: mv64xxx: continue probe when clock-frequency is missing + - LP: #1377564 + * i2c: at91: Fix a race condition during signal handling in + at91_do_twi_xfer. + - LP: #1377564 + * i2c: at91: add bound checking on SMBus block length bytes + - LP: #1377564 + * aio: add missing smp_rmb() in read_events_ring + - LP: #1377564 + * KEYS: Fix use-after-free in assoc_array_gc() + - LP: #1377564 + * ACPI / cpuidle: fix deadlock between cpuidle_lock and cpu_hotplug.lock + - LP: #1377564 + * USB: fix build error with CONFIG_PM_RUNTIME disabled + - LP: #1377564 + * Linux 3.13.11.8 + - LP: #1377564 + * powerpc: Fix kdump hang issue on p8 with relocation on exception + enabled. + - LP: #1352056 + * net-gre-gro: Fix a bug that breaks the forwarding path + - LP: #1377851 + + -- Luis Henriques Thu, 09 Oct 2014 10:31:36 +0100 + +linux (3.13.0-37.64) trusty; urgency=low + + [ Joseph Salisbury ] + + * Release Tracking Bug + - LP: #1372576 + + [ dann frazier ] + + * [Config] CONFIG_HW_RANDOM_XGENE=m on arm64 + + [ Edward Lin ] + + * SAUCE: Add use_native_backlight quirk for Dell Inspiron 5721/3521 + - LP: #1354253, #1354313 + + [ Tim Gardner ] + + * SAUCE: Fix nfs oops stable regression + - LP: #1348670 + * [Config] Add mpt3sas to d-i + - LP: #1368907 + * [Config] CONFIG_X86_16BIT=y + - LP: #1371601 + + [ Timo Aaltonen ] + + * SAUCE: i915_bdw: Rebase to v3.15.8 + - LP: #1359213 + + [ Upstream Kernel Changes ] + + * Revert "x86-64, modify_ldt: Make support for 16-bit segments a runtime + option" + - LP: #1371601 + * mmc: rtsx: add R1-no-CRC mmc command type handle + - LP: #1365378 + * rpc_pipe: remove the clntXX dir if creating the pipe fails + - LP: #1365869 + * sunrpc: add an "info" file for the dummy gssd pipe + - LP: #1365869 + * rpc_pipe: fix cleanup of dummy gssd directory when notification fails + - LP: #1365869 + * hwrng: xgene - add support for APM X-Gene SoC RNG support + - LP: #1365593 + * Documentation: rng: Add X-Gene SoC RNG driver documentation + - LP: #1365593 + * arm64: dts: add random number generator dts node to APM X-Gene + platform. + - LP: #1365593 + * xen/balloon: cancel ballooning if adding new memory failed + - LP: #1304001 + * x86/xen: resume timer irqs early + - LP: #1368724 + * xen/manage: Always freeze/thaw processes when suspend/resuming + - LP: #1368724 + * scsi_transport_sas: move bsg destructor into sas_rphy_remove + - LP: #1368991 + * drm/i915: Enable 5.4Ghz (HBR2) link rate for Displayport 1.2-capable + devices + - LP: #1369633 + * bnx2x: Fix link for KR with swapped polarity lane + - LP: #1370716 + * drm: add DRM_CAPs for cursor size + - LP: #1359213 + * drm/dp: Add AUX channel infrastructure + - LP: #1359213 + * drm/dp: Add drm_dp_dpcd_read_link_status() + - LP: #1359213 + * drm/dp: Add DisplayPort link helpers + - LP: #1359213 + * drm/dp: Allow registering AUX channels as I2C busses + - LP: #1359213 + * drm/dp: let drivers specify the name of the I2C-over-AUX adapter + - LP: #1359213 + * drm/dp: make aux retries less chatty + - LP: #1359213 + * Bluetooth: Enable Atheros 0cf3:311e for firmware upload + - LP: #1371477 + * bnx2x: fix crash during TSO tunneling + - LP: #1371601 + * inetpeer: get rid of ip_id_count + - LP: #1371601 + * ip: make IP identifiers less predictable + - LP: #1371601 + * tcp: Fix integer-overflows in TCP veno + - LP: #1371601 + * tcp: Fix integer-overflow in TCP vegas + - LP: #1371601 + * macvlan: Initialize vlan_features to turn on offload support. + - LP: #1371601 + * net: Correctly set segment mac_len in skb_segment(). + - LP: #1371601 + * iovec: make sure the caller actually wants anything in + memcpy_fromiovecend + - LP: #1371601 + * batman-adv: Fix out-of-order fragmentation support + - LP: #1371601 + * sctp: fix possible seqlock seadlock in sctp_packet_transmit() + - LP: #1371601 + * sparc64: Fix argument sign extension for compat_sys_futex(). + - LP: #1371601 + * sparc64: Make itc_sync_lock raw + - LP: #1371601 + * sparc64: Fix executable bit testing in set_pmd_at() paths. + - LP: #1371601 + * sparc64: Fix huge PMD invalidation. + - LP: #1371601 + * sparc64: Fix bugs in get_user_pages_fast() wrt. THP. + - LP: #1371601 + * sparc64: Fix hex values in comment above pte_modify(). + - LP: #1371601 + * sparc64: Don't use _PAGE_PRESENT in pte_modify() mask. + - LP: #1371601 + * sparc64: Handle 32-bit tasks properly in compute_effective_address(). + - LP: #1371601 + * sparc64: Fix top-level fault handling bugs. + - LP: #1371601 + * sparc64: Fix range check in kern_addr_valid(). + - LP: #1371601 + * sparc64: Use 'ILOG2_4MB' instead of constant '22'. + - LP: #1371601 + * sparc64: Add basic validations to {pud,pmd}_bad(). + - LP: #1371601 + * sparc64: Give more detailed information in {pgd,pmd}_ERROR() and kill + pte_ERROR(). + - LP: #1371601 + * sparc64: Don't bark so loudly about 32-bit tasks generating 64-bit + fault addresses. + - LP: #1371601 + * sparc64: Fix huge TSB mapping on pre-UltraSPARC-III cpus. + - LP: #1371601 + * sparc64: Add membar to Niagara2 memcpy code. + - LP: #1371601 + * sparc64: Do not insert non-valid PTEs into the TSB hash table. + - LP: #1371601 + * sparc64: Guard against flushing openfirmware mappings. + - LP: #1371601 + * bbc-i2c: Fix BBC I2C envctrl on SunBlade 2000 + - LP: #1371601 + * sunsab: Fix detection of BREAK on sunsab serial console + - LP: #1371601 + * sparc64: ldc_connect() should not return EINVAL when handshake is in + progress. + - LP: #1371601 + * arch/sparc/math-emu/math_32.c: drop stray break operator + - LP: #1371601 + * x86-64, espfix: Don't leak bits 31:16 of %esp returning to 16-bit stack + - LP: #1371601 + * x86, espfix: Move espfix definitions into a separate header file + - LP: #1371601 + * x86, espfix: Fix broken header guard + - LP: #1371601 + * x86, espfix: Make espfix64 a Kconfig option, fix UML + - LP: #1371601 + * x86, espfix: Make it possible to disable 16-bit support + - LP: #1371601 + * x86_64/entry/xen: Do not invoke espfix64 on Xen + - LP: #1371601 + * ALSA: usb-audio: fix BOSS ME-25 MIDI regression + - LP: #1371601 + * ASoC: wm8994: Prevent double lock of accdet_lock mutex on wm1811 + - LP: #1371601 + * v4l: vsp1: Remove the unneeded vsp1_video_buffer video field + - LP: #1371601 + * ASoC: max98090: Fix missing free_irq + - LP: #1371601 + * KVM: x86: Inter-privilege level ret emulation is not implemeneted + - LP: #1371601 + * au0828: Only alt setting logic when needed + - LP: #1371601 + * ASoC: pcm: fix dpcm_path_put in dpcm runtime update + - LP: #1371601 + * crypto: ux500 - make interrupt mode plausible + - LP: #1371601 + * Bluetooth: btmrvl: wait for HOST_SLEEP_ENABLE event in suspend + - LP: #1371601 + * ASoC: adau1701: fix adau1701_reg_read() + - LP: #1371601 + * ASoC: wm_adsp: Add missing MODULE_LICENSE + - LP: #1371601 + * regulator: arizona-ldo1: remove bypass functionality + - LP: #1371601 + * ASoC: samsung: Correct I2S DAI suspend/resume ops + - LP: #1371601 + * drm/tilcdc: panel: fix dangling sysfs connector node + - LP: #1371601 + * drm/tilcdc: slave: fix dangling sysfs connector node + - LP: #1371601 + * drm/tilcdc: tfp410: fix dangling sysfs connector node + - LP: #1371601 + * drm/tilcdc: panel: fix leak when unloading the module + - LP: #1371601 + * drm/tilcdc: fix release order on exit + - LP: #1371601 + * drm/tilcdc: fix double kfree + - LP: #1371601 + * ACPICA: Utilities: Fix memory leak in acpi_ut_copy_iobject_to_iobject + - LP: #1371601 + * stable_kernel_rules: Add pointer to netdev-FAQ for network patches + - LP: #1371601 + * USB: ehci-pci: USB host controller support for Intel Quark X1000 + - LP: #1371601 + * debugfs: Fix corrupted loop in debugfs_remove_recursive + - LP: #1371601 + * serial: core: Preserve termios c_cflag for console resume + - LP: #1371601 + * mtd/ftl: fix the double free of the buffers allocated in build_maps() + - LP: #1371601 + * ext4: Fix block zeroing when punching holes in indirect block files + - LP: #1371601 + * ext4: fix punch hole on files with indirect mapping + - LP: #1371601 + * x86: don't exclude low BIOS area when allocating address space for + non-PCI cards + - LP: #1371601 + * PCI: Configure ASPM when enabling device + - LP: #1371601 + * Bluetooth: never linger on process exit + - LP: #1371601 + * ASoC: blackfin: use samples to set silence + - LP: #1371601 + * USB: OHCI: fix bugs in debug routines + - LP: #1371601 + * USB: OHCI: don't lose track of EDs when a controller dies + - LP: #1371601 + * mei: start disconnect request timer consistently + - LP: #1371601 + * mei: fix return value on disconnect timeout + - LP: #1371601 + * USB: Fix persist resume of some SS USB devices + - LP: #1371601 + * media-device: Remove duplicated memset() in media_enum_entities() + - LP: #1371601 + * Bluetooth: Avoid use of session socket after the session gets freed + - LP: #1371601 + * xc5000: Fix get_frequency() + - LP: #1371601 + * xc4000: Fix get_frequency() + - LP: #1371601 + * CAPABILITIES: remove undefined caps from all processes + - LP: #1371601 + * scsi: add a blacklist flag which enables VPD page inquiries + - LP: #1371601 + * bfa: Fix undefined bit shift on big-endian architectures with 32-bit + DMA address + - LP: #1371601 + * hpsa: fix bad -ENOMEM return value in hpsa_big_passthru_ioctl + - LP: #1371601 + * Drivers: scsi: storvsc: Change the limits to reflect the values on the + host + - LP: #1371601 + * Drivers: scsi: storvsc: Set cmd_per_lun to reflect value supported by + the Host + - LP: #1371601 + * Drivers: scsi: storvsc: Filter commands based on the storage protocol + version + - LP: #1371601 + * Drivers: scsi: storvsc: Fix a bug in handling VMBUS protocol version + - LP: #1371601 + * Drivers: scsi: storvsc: Implement a eh_timed_out handler + - LP: #1371601 + * drivers: scsi: storvsc: Set srb_flags in all cases + - LP: #1371601 + * drivers: scsi: storvsc: Correctly handle TEST_UNIT_READY failure + - LP: #1371601 + * x86_64/vsyscall: Fix warn_bad_vsyscall log output + - LP: #1371601 + * KVM: PPC: Book3S PR: Take SRCU read lock around RTAS kvm_read_guest() + call + - LP: #1371601 + * spi: orion: fix incorrect handling of cell-index DT property + - LP: #1371601 + * mfd: omap-usb-host: Fix improper mask use. + - LP: #1371601 + * tpm: Add missing tpm_do_selftest to ST33 I2C driver + - LP: #1371601 + * tpm: missing tpm_chip_put in tpm_get_random() + - LP: #1371601 + * scsi: do not issue SCSI RSOC command to Promise Vtrak E610f + - LP: #1371601 + * hwmon: (ads1015) Fix off-by-one for valid channel index checking + - LP: #1371601 + * ALSA: hda - fix an external mic jack problem on a HP machine + - LP: #1350148, #1371601 + * MIPS: tlbex: Fix a missing statement for HUGETLB + - LP: #1371601 + * MIPS: Prevent user from setting FCSR cause bits + - LP: #1371601 + * KVM: x86: always exit on EOIs for interrupts listed in the IOAPIC redir + table + - LP: #1371601 + * MIPS: Remove BUG_ON(!is_fpu_owner()) in do_ade() + - LP: #1371601 + * MIPS: ptrace: Test correct task's flags in task_user_regset_view() + - LP: #1371601 + * MIPS: asm/reg.h: Make 32- and 64-bit definitions available at the same + time + - LP: #1371601 + * MIPS: ptrace: Change GP regset to use correct core dump register layout + - LP: #1371601 + * md/raid1,raid10: always abort recover on write error. + - LP: #1371601 + * ext4: fix ext4_discard_allocated_blocks() if we can't allocate the pa + struct + - LP: #1371601 + * hwmon: (lm85) Fix various errors on attribute writes + - LP: #1371601 + * hwmon: (lm78) Fix overflow problems seen when writing large temperature + limits + - LP: #1371601 + * hwmon: (amc6821) Fix possible race condition bug + - LP: #1371601 + * MIPS: GIC: Prevent array overrun + - LP: #1371601 + * mnt: Add tests for unprivileged remount cases that have found to be + faulty + - LP: #1371601 + * ARM: OMAP3: Fix choice of omap3_restore_es function in OMAP34XX + rev3.1.2 case. + - LP: #1371601 + * netlabel: fix a problem when setting bits below the previously lowest + bit + - LP: #1371601 + * netlabel: fix the horribly broken catmap functions + - LP: #1371601 + * netlabel: fix the catmap walking functions + - LP: #1371601 + * drivers/i2c/busses: use correct type for dma_map/unmap + - LP: #1371601 + * NFSD: Decrease nfsd_users in nfsd_startup_generic fail + - LP: #1371601 + * MIPS: O32/32-bit: Fix bug which can cause incorrect system call + restarts + - LP: #1371601 + * IB/srp: Fix deadlock between host removal and multipathd + - LP: #1371601 + * USB: serial: ftdi_sio: Annotate the current Xsens PID assignments + - LP: #1371601 + * USB: serial: ftdi_sio: Add support for new Xsens devices + - LP: #1371601 + * USB: devio: fix issue with log flooding + - LP: #1371601 + * CIFS: Fix async reading on reconnects + - LP: #1371601 + * CIFS: Fix STATUS_CANNOT_DELETE error mapping for SMB2 + - LP: #1371601 + * xfs: ensure verifiers are attached to recovered buffers + - LP: #1371601 + * drm/tegra: add MODULE_DEVICE_TABLEs + - LP: #1371601 + * ALSA: virtuoso: add Xonar Essence STX II support + - LP: #1371601 + * hwmon: (gpio-fan) Prevent overflow problem when writing large limits + - LP: #1371601 + * hwmon: (sis5595) Prevent overflow problem when writing large limits + - LP: #1371601 + * NFS: Fix /proc/fs/nfsfs/servers and /proc/fs/nfsfs/volumes + - LP: #1371601 + * drm/ttm: Fix possible division by 0 in ttm_dma_pool_shrink_scan(). + - LP: #1371601 + * drm/ttm: Choose a pool to shrink correctly in + ttm_dma_pool_shrink_scan(). + - LP: #1371601 + * drm/ttm: Use mutex_trylock() to avoid deadlock inside shrinker + functions. + - LP: #1371601 + * drm/ttm: Fix possible stack overflow by recursive shrinker calls. + - LP: #1371601 + * drm/ttm: Pass GFP flags in order to avoid deadlock. + - LP: #1371601 + * powerpc/mm/numa: Fix break placement + - LP: #1371601 + * powerpc/pci: Reorder pci bus/bridge unregistration during PHB removal + - LP: #1371601 + * drm/radeon: load the lm63 driver for an lm64 thermal chip. + - LP: #1371601 + * drm/radeon: set VM base addr using the PFP v2 + - LP: #1371601 + * drm/radeon/atom: add new voltage fetch function for hawaii + - LP: #1371601 + * drm/radeon/dpm: handle voltage info fetching on hawaii + - LP: #1371601 + * drm/radeon: re-enable dpm by default on cayman + - LP: #1371601 + * drm/radeon: re-enable dpm by default on BTC + - LP: #1371601 + * drm/radeon: use packet2 for nop on hawaii with old firmware + - LP: #1371601 + * drm/radeon: tweak ACCEL_WORKING2 query for hawaii + - LP: #1371601 + * KVM: nVMX: fix "acknowledge interrupt on exit" when APICv is in use + - LP: #1371601 + * RDMA/iwcm: Use a default listen backlog if needed + - LP: #1371601 + * x86/efi: Enforce CONFIG_RELOCATABLE for EFI boot stub + - LP: #1371601 + * net: sun4i-emac: fix memory leak on bad packet + - LP: #1371601 + * hwmon: (ads1015) Fix out-of-bounds array access + - LP: #1371601 + * hwmon: (dme1737) Prevent overflow problem when writing large limits + - LP: #1371601 + * s390/locking: Reenable optimistic spinning + - LP: #1371601 + * ring-buffer: Up rb_iter_peek() loop count to 3 + - LP: #1371601 + * ring-buffer: Always reset iterator to reader page + - LP: #1371601 + * kernel/smp.c:on_each_cpu_cond(): fix warning in fallback path + - LP: #1371601 + * drm/i915: read HEAD register back in init_ring_common() to enforce + ordering + - LP: #1371601 + * vm_is_stack: use for_each_thread() rather then buggy + while_each_thread() + - LP: #1371601 + * libceph: set last_piece in ceph_msg_data_pages_cursor_init() correctly + - LP: #1371601 + * drm/nouveau: Bump version from 1.1.1 to 1.1.2 + - LP: #1371601 + * ALSA: usb-audio: fix BOSS ME-25 MIDI regression + - LP: #1371601 + * ALSA: hda/ca0132 - Don't try loading firmware at resume when already + failed + - LP: #1371601 + * carl9170: fix sending URBs with wrong type when using full-speed + - LP: #1371601 + * powerpc/pseries: Failure on removing device node + - LP: #1371601 + * Btrfs: Fix memory corruption by ulist_add_merge() on 32bit arch + - LP: #1371601 + * Btrfs: fix csum tree corruption, duplicate and outdated checksums + - LP: #1371601 + * ext4: fix BUG_ON in mb_free_blocks() + - LP: #1371601 + * x86/espfix/xen: Fix allocation of pages for paravirt page tables + - LP: #1371601 + * Linux 3.13.11.7 + - LP: #1371601 + * HID: magicmouse: sanity check report size in raw_event() callback + - LP: #1370025 + - CVE-2014-3181 + * HID: fix a couple of off-by-ones + - LP: #1370035 + - CVE-2014-3184 + * USB: whiteheat: Added bounds checking for bulk command response + - LP: #1370036 + - CVE-2014-3185 + * HID: picolcd: sanity check report size in raw_event() callback + - LP: #1370038 + - CVE-2014-3186 + * KEYS: Fix termination condition in assoc array garbage collection + - LP: #1370041 + - CVE-2014-3631 + * udf: Fold udf_fill_inode() into __udf_read_inode() + - LP: #1370042 + - CVE-2014-6410 + * udf: Avoid infinite loop when processing indirect ICBs + - LP: #1370042 + - CVE-2014-6410 + * libceph: add process_one_ticket() helper + - LP: #1370044, #1370046, #1370047 + - CVE-2014-6418 + * libceph: do not hard code max auth ticket len + - LP: #1370044, #1370046, #1370047 + - CVE-2014-6418 + + -- Joseph Salisbury Mon, 22 Sep 2014 15:51:07 -0400 + +linux (3.13.0-36.63) trusty; urgency=low + + [ Joseph Salisbury ] + + * Release Tracking Bug + - LP: #1365052 + + [ Feng Kan ] + + * SAUCE: (no-up) irqchip:gic: change access of gicc_ctrl register to read + modify write. + - LP: #1357527 + * SAUCE: (no-up) arm64: optimized copy_to_user and copy_from_user + assembly code + - LP: #1358949 + + [ Ming Lei ] + + * SAUCE: (no-up) Drop APM X-Gene SoC Ethernet driver + - LP: #1360140 + * [Config] Drop XGENE entries + - LP: #1360140 + * [Config] CONFIG_NET_XGENE=m for arm64 + - LP: #1360140 + + [ Stefan Bader ] + + * SAUCE: Add compat macro for skb_get_hash + - LP: #1358162 + * SAUCE: bcache: prevent crash on changing writeback_running + - LP: #1357295 + + [ Suman Tripathi ] + + * SAUCE: (no-up) arm64: Fix the csr-mask for APM X-Gene SoC AHCI SATA PHY + clock DTS node. + - LP: #1359489 + * SAUCE: (no-up) ahci_xgene: Skip the PHY and clock initialization if + already configured by the firmware. + - LP: #1359501 + * SAUCE: (no-up) ahci_xgene: Fix the link down in first attempt for the + APM X-Gene SoC AHCI SATA host controller driver. + - LP: #1359507 + + [ Tuan Phan ] + + * SAUCE: (no-up) pci-xgene-msi: fixed deadlock in irq_set_affinity + - LP: #1359514 + + [ Upstream Kernel Changes ] + + * iwlwifi: mvm: Add a missed beacons threshold + - LP: #1349572 + * mac80211: reset probe_send_count also in HW_CONNECTION_MONITOR case + - LP: #1349572 + * genirq: Add an accessor for IRQ_PER_CPU flag + - LP: #1357527 + * arm64: perf: add support for percpu pmu interrupt + - LP: #1357527 + * cifs: sanity check length of data to send before sending + - LP: #1283101 + * KVM: nVMX: Pass vmexit parameters to nested_vmx_vmexit + - LP: #1329434 + * KVM: nVMX: Rework interception of IRQs and NMIs + - LP: #1329434 + * KVM: vmx: disable APIC virtualization in nested guests + - LP: #1329434 + * HID: Add transport-driver functions to the USB HID interface. + - LP: #1353021 + * ahci_xgene: Removing NCQ support from the APM X-Gene SoC AHCI SATA Host + Controller driver. + - LP: #1358498 + * fold d_kill() and d_free() + - LP: #1354234 + * fold try_prune_one_dentry() + - LP: #1354234 + * new helper: dentry_free() + - LP: #1354234 + * expand the call of dentry_lru_del() in dentry_kill() + - LP: #1354234 + * dentry_kill(): don't try to remove from shrink list + - LP: #1354234 + * don't remove from shrink list in select_collect() + - LP: #1354234 + * more graceful recovery in umount_collect() + - LP: #1354234 + * dcache: don't need rcu in shrink_dentry_list() + - LP: #1354234 + * lift the "already marked killed" case into shrink_dentry_list() + * split dentry_kill() + - LP: #1354234 + * expand dentry_kill(dentry, 0) in shrink_dentry_list() + - LP: #1354234 + * shrink_dentry_list(): take parent's ->d_lock earlier + - LP: #1354234 + * dealing with the rest of shrink_dentry_list() livelock + - LP: #1354234 + * dentry_kill() doesn't need the second argument now + - LP: #1354234 + * dcache: add missing lockdep annotation + - LP: #1354234 + * fs: convert use of typedef ctl_table to struct ctl_table + - LP: #1354234 + * lock_parent: don't step on stale ->d_parent of all-but-freed one + - LP: #1354234 + * tools/testing/selftests/ptrace/peeksiginfo.c: add PAGE_SIZE definition + - LP: #1358855 + * x86, irq, pic: Probe for legacy PIC and set legacy_pic appropriately + - LP: #1317697 + * bnx2x: Fix kernel crash and data miscompare after EEH recovery + - LP: #1353105 + * bnx2x: Adapter not recovery from EEH error injection + - LP: #1353105 + * Fix: module signature vs tracepoints: add new TAINT_UNSIGNED_MODULE + - LP: #1359670 + * bcache: fix crash on shutdown in passthrough mode + - LP: #1357295 + * bcache: fix uninterruptible sleep in writeback thread + - LP: #1357295 + * namespaces: Use task_lock and not rcu to protect nsproxy + - LP: #1328088 + * MAINTAINERS: Add entry for APM X-Gene SoC ethernet driver + - LP: #1360140 + * Documentation: dts: Add bindings for APM X-Gene SoC ethernet driver + - LP: #1360140 + * dts: Add bindings for APM X-Gene SoC ethernet driver + - LP: #1360140 + * drivers: net: Add APM X-Gene SoC ethernet driver support. + - LP: #1360140 + * powerpc/mm: Add new "set" flag argument to pte/pmd update function + - LP: #1357014 + * powerpc/thp: Add write barrier after updating the valid bit + - LP: #1357014 + * powerpc/thp: Don't recompute vsid and ssize in loop on invalidate + - LP: #1357014 + * powerpc/thp: Invalidate old 64K based hash page mapping before insert + of 4k pte + - LP: #1357014 + * powerpc/thp: Handle combo pages in invalidate + - LP: #1357014 + * powerpc/thp: Invalidate with vpn in loop + - LP: #1357014 + * powerpc/thp: Use ACCESS_ONCE when loading pmdp + - LP: #1357014 + * powerpc/mm: Use read barrier when creating real_pte + - LP: #1357014 + * powerpc/thp: Add tracepoints to track hugepage invalidate + - LP: #1357014 + * powerpc: subpage_protect: Increase the array size to take care of 64TB + - LP: #1357014 + * mfd: rtsx: Add set pull control macro and simplify rtl8411 + - LP: #1361086 + * mfd: rtsx: Add support for card reader rtl8402 + - LP: #1361086 + * kvm: iommu: fix the third parameter of kvm_iommu_put_pages + (CVE-2014-3601) + - LP: #1362443 + - CVE-2014-3601 + * isofs: Fix unbounded recursion when processing relocated directories + - LP: #1362447, #1362448 + - CVE-2014-5472 + * net: sctp: inherit auth_capable on INIT collisions + - LP: #1349804 + - CVE-2014-5077 + * blk-mq: fix initializing request's start time + - LP: #1297522 + + [ Vinayak Kale ] + + * SAUCE: (no-up) dt-bindings: Add Potenza PMU binding + - LP: #1357527 + * SAUCE: (no-up) arm64: dts: Add PMU node for APM X-Gene Storm SOC + - LP: #1357527 + + -- Joseph Salisbury Wed, 03 Sep 2014 12:13:43 -0400 + +linux (3.13.0-35.62) trusty; urgency=low + + [ Joseph Salisbury ] + + * Release Tracking Bug + - LP: #1357148 + + [ Brad Figg ] + + * Start new release + + [ dann frazier ] + + * SAUCE: (no-up) Fix build failure on arm64 + - LP: #1353657 + * [debian] Allow for package revisions condusive for branching + + [ David Henningsson ] + + * SAUCE: Call broadwell specific functions from the hda driver + - LP: #1317865 + + [ Edward Lin ] + + * SAUCE: (no-up) Add use native backlight quirk for Dell Inspiron + 5547/5447 + - LP: #1332437 + + [ Imre Deak ] + + * SAUCE: drm/i915: move power domain init earlier during system resume + - LP: #1353405 + + [ Jani Nikula ] + + * SAUCE: drm/i915: use lane count and link rate from VBT as minimums for + eDP + - LP: #1338582 + * SAUCE: drm/i915/dp: force eDP lane count to max available lanes on BDW + - LP: #1338582 + * SAUCE: drm/i915: provide interface for audio driver to query cdclk + - LP: #1188091 + * SAUCE: drm/i915: demote opregion excessive timeout WARN_ONCE to + DRM_INFO_ONCE + - LP: #1351014 + + [ Joseph Salisbury ] + + * [Config] updateconfigs after Linux 3.13.11.6 updates + + [ Luis Henriques ] + + * Revert "[Packaging] linux-udeb-flavour -- standardise on linux prefix" + + [ Ming Lei ] + + * Revert "SAUCE: (no-up) ata: Fix the dma state machine lockup for the + IDENTIFY DEVICE PIO mode command." + - LP: #1335645 + + [ Paulo Zanoni ] + + * SAUCE: drm/i915: consider the source max DP lane count too + - LP: #1338582 + + [ Tim Gardner ] + + * [Config] CONFIG_GPIO_SYSFS=y + - LP: #1342153 + * [Config] CONFIG_KEYS_DEBUG_PROC_KEYS=y + - LP: #1344405 + * [Config] updateconfigs + * [Config] CONFIG_SCSI_IPR_TRACE=y, CONFIG_SCSI_IPR_DUMP=y + - LP: #1343109 + * [Config] CONFIG_CONTEXT_TRACKING_FORCE=n + - LP: #1349028 + + [ Timo Aaltonen ] + + * SAUCE: Fix a typo in hda i915_bdw support. + - LP: #1343140 + + [ Upstream Kernel Changes ] + + * Revert "net/mlx4_en: Fix bad use of dev_id" + - LP: #1347012 + * Revert "ACPI / AC: Remove AC's proc directory." + - LP: #1356913 + * Revert "mac80211: move "bufferable MMPDU" check to fix AP mode scan" + - LP: #1356913 + * mm, pcp: allow restoring percpu_pagelist_fraction default + - LP: #1347088 + * net: Fix permission check in netlink_connect() + - LP: #1312989 + * netlink: Rename netlink_capable netlink_allowed + - LP: #1312989 + * net: Move the permission check in sock_diag_put_filterinfo to + packet_diag_dump + - LP: #1312989 + * net: Add variants of capable for use on on sockets + - LP: #1312989 + * net: Add variants of capable for use on netlink messages + - LP: #1312989 + * net: Use netlink_ns_capable to verify the permisions of netlink + messages + - LP: #1312989 + * netlink: Only check file credentials for implicit destinations + - LP: #1312989 + * igb: fix stats for i210 rx_fifo_errors + - LP: #1338893 + * HID: use multi input quirk for 22b9:2968 + - LP: #1339567 + * crypto/nx: disable NX on little endian builds + - LP: #1338666 + * ACPI / video: Add Dell Inspiron 5737 to the blacklist + - LP: #1250401 + * Input: elantech - deal with clickpads reporting right button events + - LP: #1188025 + * net/mlx4_core: Enforce irq affinity changes immediatly + - LP: #1326108 + * cpumask: Utility function to set n'th cpu - local cpu first + - LP: #1326108 + * net/mlx4_en: Use affinity hint + - LP: #1326108 + * net/mlx4_en: Don't use irq_affinity_notifier to track changes in IRQ + affinity map + - LP: #1326108 + * net/mlx4_en: IRQ affinity hint is not cleared on port down + - LP: #1326108 + * Subject: net: Allow tc changes in user namespaces + - LP: #1344049 + * net-gro: restore frag0 optimization + - LP: #1344323 + * Bluetooth: Fix redundant encryption request for reauthentication + - LP: #1347088 + * Bluetooth: Fix check for connection encryption + - LP: #1347088 + * introduce for_each_thread() to replace the buggy while_each_thread() + - LP: #1347088 + * NFS: Don't declare inode uptodate unless all attributes were checked + - LP: #1347088 + * usb: dwc3: gadget: clear stall when disabling endpoint + - LP: #1347088 + * ACPICA: utstring: Check array index bound before use. + - LP: #1347088 + * mtip32xx: Increase timeout for STANDBY IMMEDIATE command + - LP: #1347088 + * mtip32xx: Remove dfs_parent after pci unregister + - LP: #1347088 + * mtip32xx: Fix ERO and NoSnoop values in PCIe upstream on AMD systems + - LP: #1347088 + * extcon: max77693: Fix two NULL pointer exceptions on missing pdata + - LP: #1347088 + * extcon: max8997: Fix NULL pointer exception on missing pdata + - LP: #1347088 + * builddeb: use $OBJCOPY variable instead of objcopy + - LP: #1347088 + * bluetooth: hci_ldisc: fix deadlock condition + - LP: #1347088 + * powerpc/pseries: Fix overwritten PE state + - LP: #1347088 + * PCI: Add new ID for Intel GPU "spurious interrupt" quirk + - LP: #1347088 + * x86-32, espfix: Remove filter for espfix32 due to race + - LP: #1347088 + * genirq: Sanitize spurious interrupt detection of threaded irqs + - LP: #1347088 + * Drivers: hv: balloon: Ensure pressure reports are posted regularly + - LP: #1347088 + * x86, x32: Use compat shims for io_{setup,submit} + - LP: #1347088 + * iwlwifi: pcie: try to get ownership several times + - LP: #1347088 + * ext4: fix data integrity sync in ordered mode + - LP: #1347088 + * UBIFS: fix an mmap and fsync race condition + - LP: #1347088 + * [media] rtl28xxu: add USB ID for Genius TVGo DVB-T03 + - LP: #1347088 + * [media] rtl28xxu: add 1b80:d395 Peak DVB-T USB + - LP: #1347088 + * [media] rtl28xxu: add [1b80:d39d] Sveon STV20 + - LP: #1347088 + * [media] rtl28xxu: add [1b80:d3af] Sveon STV27 + - LP: #1347088 + * ASoC: max98090: Fix reset at resume time + - LP: #1347088 + * ACPI: Fix conflict between customized DSDT and DSDT local copy + - LP: #1347088 + * PM / OPP: fix incorrect OPP count handling in of_init_opp_table + - LP: #1347088 + * Target/iser: Bail from accept_np if np_thread is trying to close + - LP: #1347088 + * Target/iser: Fix hangs in connection teardown + - LP: #1347088 + * HID: core: fix validation of report id 0 + - LP: #1347088 + * IB/srp: Fix a sporadic crash triggered by cable pulling + - LP: #1347088 + * Target/iser: Improve cm events handling + - LP: #1347088 + * Target/iser: Wait for proper cleanup before unloading + - LP: #1347088 + * mtd: nand: omap: fix BCHx ecc.correct to return detected bit-flips in + erased-page + - LP: #1347088 + * mtd: eLBC NAND: fix subpage write support + - LP: #1347088 + * reiserfs: call truncate_setsize under tailpack mutex + - LP: #1347088 + * ARM: stacktrace: avoid listing stacktrace functions in stacktrace + - LP: #1347088 + * SUNRPC: Fix a module reference leak in svc_handle_xprt + - LP: #1347088 + * [media] uvcvideo: Fix clock param realtime setting + - LP: #1347088 + * [media] ivtv: Fix Oops when no firmware is loaded + - LP: #1347088 + * CIFS: Fix memory leaks in SMB2_open + - LP: #1347088 + * iio:adc:max1363 incorrect resolutions for max11604, max11605, max11610 + and max11611. + - LP: #1347088 + * staging/mt29f_spinand: Terminate of match table + - LP: #1347088 + * mac80211: fix IBSS join by initializing last_scan_completed + - LP: #1347088 + * KVM: lapic: sync highest ISR to hardware apic on EOI + - LP: #1347088 + * s390/time: cast tv_nsec to u64 prior to shift in update_vsyscall + - LP: #1347088 + * ahci: add PCI ID for Marvell 88SE91A0 SATA Controller + - LP: #1347088 + * ext4: fix zeroing of page during writeback + - LP: #1347088 + * ext4: fix wrong assert in ext4_mb_normalize_request() + - LP: #1347088 + * IB/mlx5: add missing padding at end of struct mlx5_ib_create_cq + - LP: #1347088 + * IB/mlx5: add missing padding at end of struct mlx5_ib_create_srq + - LP: #1347088 + * IB/qib: Fix port in pkey change event + - LP: #1347088 + * IB/ipath: Translate legacy diagpkt into newer extended diagpkt + - LP: #1347088 + * mei: me: drop harmful wait optimization + - LP: #1347088 + * mei: me: read H_CSR after asserting reset + - LP: #1347088 + * usb: usbtest: fix unlink write error with pattern 1 + - LP: #1347088 + * s390/lowcore: reserve 96 bytes for IRB in lowcore + - LP: #1347088 + * mac80211: fix a memory leak on sta rate selection table + - LP: #1347088 + * mac80211: don't check netdev state for debugfs read/write + - LP: #1347088 + * mtd: pxa3xx_nand: make the driver work on big-endian systems + - LP: #1347088 + * hv: use correct order when freeing monitor_pages + - LP: #1347088 + * usb: qcserial: add Netgear AirCard 341U + - LP: #1347088 + * usb: qcserial: add additional Sierra Wireless QMI devices + - LP: #1347088 + * IB/umad: Fix error handling + - LP: #1347088 + * RDMA/cxgb4: Add missing padding at end of struct c4iw_create_cq_resp + - LP: #1347088 + * MIPS: KVM: Allocate at least 16KB for exception handlers + - LP: #1347088 + * block: virtio_blk: don't hold spin lock during world switch + - LP: #1347088 + * nfsd: getattr for FATTR4_WORD0_FILES_AVAIL needs the statfs buffer + - LP: #1347088 + * ASoC: tlv320aci3x: Fix custom snd_soc_dapm_put_volsw_aic3x() function + - LP: #1347088 + * UBIFS: Remove incorrect assertion in shrink_tnc() + - LP: #1347088 + * Bluetooth: Fix L2CAP deadlock + - LP: #1347088 + * vgaswitcheroo: switch the mux to the igp on power down when runpm is + enabled + - LP: #1347088 + * drm/radeon: fix typo in radeon_connector_is_dp12_capable() + - LP: #1347088 + * drm/radeon/dp: fix lane/clock setup for dp 1.2 capable devices + - LP: #1347088 + * drm/radeon/atom: fix dithering on certain panels + - LP: #1347088 + * drm/radeon: only apply hdmi bpc pll flags when encoder mode is hdmi + - LP: #1347088 + * ahci: Add Device ID for HighPoint RocketRaid 642L + - LP: #1347088 + * mm: fix sleeping function warning from __put_anon_vma + - LP: #1347088 + * hugetlb: restrict hugepage_migration_support() to x86_64 + - LP: #1347088 + * kthread: fix return value of kthread_create() upon SIGKILL. + - LP: #1347088 + * mm: vmscan: do not throttle based on pfmemalloc reserves if node has no + ZONE_NORMAL + - LP: #1347088 + * memcg: do not hang on OOM when killed by userspace OOM access to memory + reserves + - LP: #1347088 + * mm: page_alloc: use word-based accesses for get/set pageblock bitmaps + - LP: #1347088 + * mm/memory-failure.c-failure: send right signal code to correct thread + - LP: #1347088 + * mm/memory-failure.c: don't let collect_procs() skip over processes for + MF_ACTION_REQUIRED + - LP: #1347088 + * mm/memory-failure.c: support use of a dedicated thread to handle + SIGBUS(BUS_MCEERR_AO) + - LP: #1347088 + * powerpc/serial: Use saner flags when creating legacy ports + - LP: #1347088 + * ALSA: hda/realtek - Add support of ALC891 codec + - LP: #1347088 + * rbd: use reference counts for image requests + - LP: #1347088 + * iscsi-target: Reject mutual authentication with reflected CHAP_C + - LP: #1347088 + * powerpc/mm: Check paca psize is up to date for huge mappings + - LP: #1347088 + * IB/umad: Fix use-after-free on close + - LP: #1347088 + * mm: vmscan: clear kswapd's special reclaim powers before exiting + - LP: #1347088 + * rtc: rtc-at91rm9200: fix infinite wait for ACKUPD irq + - LP: #1347088 + * ptrace: fix fork event messages across pid namespaces + - LP: #1347088 + * idr: fix overflow bug during maximum ID calculation at maximum height + - LP: #1347088 + * Input: elantech - don't set bit 1 of reg_10 when the no_hw_res quirk is + set + - LP: #1347088 + * nfsd4: fix FREE_STATEID lockowner leak + - LP: #1347088 + * Btrfs: fix double free in find_lock_delalloc_range + - LP: #1347088 + * target: Set CMD_T_ACTIVE bit for Task Management Requests + - LP: #1347088 + * target: Use complete_all for se_cmd->t_transport_stop_comp + - LP: #1347088 + * iscsi-target: Fix ABORT_TASK + connection reset iscsi_queue_req memory + leak + - LP: #1347088 + * drm/nv50-/mc: fix kms pageflip events by reordering irq handling order. + - LP: #1347088 + * drm/nouveau/kms/nv04-nv40: fix pageflip events via special case. + - LP: #1347088 + * NFS: populate ->net in mount data when remounting + - LP: #1347088 + * watchdog: kempld-wdt: Use the correct value when configuring the + prescaler with the watchdog + - LP: #1347088 + * watchdog: ath79_wdt: avoid spurious restarts on AR934x + - LP: #1347088 + * watchdog: sp805: Set watchdog_device->timeout from ->set_timeout() + - LP: #1347088 + * fs,userns: Change inode_capable to capable_wrt_inode_uidgid + - LP: #1347088 + * powerpc: Add AT_HWCAP2 to indicate V.CRYPTO category support + - LP: #1347088 + * powerpc: Correct DSCR during TM context switch + - LP: #1347088 + * powerpc: Don't setup CPUs with bad status + - LP: #1347088 + * Target/iscsi: Fix sendtargets response pdu for iser transport + - LP: #1347088 + * target: Report correct response length for some commands + - LP: #1347088 + * dm thin: update discard_granularity to reflect the thin-pool blocksize + - LP: #1347088 + * ALSA: compress: Cancel the optimization of compiler and fix the size of + struct for all platform. + - LP: #1347088 + * hwmon: (ina2xx) Cast to s16 on shunt and current regs + - LP: #1347088 + * evm: prohibit userspace writing 'security.evm' HMAC value + - LP: #1347088 + * ALSA: hda - Add quirk for external mic on Lifebook U904 + - LP: #1328587, #1347088 + * ALSA: hda/realtek - Add more entry for enable HP mute led + - LP: #1347088 + * ALSA: hda/realtek - Add more entry for enable HP mute led + - LP: #1347088 + * staging: iio: tsl2x7x_core: fix proximity treshold + - LP: #1347088 + * iio: Fix endianness issue in ak8975_read_axis() + - LP: #1347088 + * rtmutex: Handle deadlock detection smarter + - LP: #1347088 + * rtmutex: Detect changes in the pi lock chain + - LP: #1347088 + * drm/i915: Disable FBC by default also on Haswell and later + - LP: #1347088 + * drm/i915: Avoid div-by-zero when pixel_multiplier is zero + - LP: #1347088 + * drm/i915: Reorder semaphore deadlock check + - LP: #1347088 + * iio: adc: at91: signedness bug in at91_adc_get_trigger_value_by_name() + - LP: #1347088 + * rtmutex: Plug slow unlock race + - LP: #1347088 + * ACPI / ia64 / sba_iommu: Restore the working initialization ordering + - LP: #1347088 + * epoll: fix use-after-free in eventpoll_release_file + - LP: #1347088 + * drm/nouveau/kms: reference vblank for crtc during pageflip. + - LP: #1347088 + * ARM: mvebu: DT: fix OpenBlocks AX3-4 RAM size + - LP: #1347088 + * USB: EHCI: avoid BIOS handover on the HASEE E200 + - LP: #1347088 + * arm64: Bug fix in stack alignment exception + - LP: #1347088 + * arm64: ptrace: change fs when passing kernel pointer to regset code + - LP: #1347088 + * arm64: uid16: fix __kernel_old_{gid,uid}_t definitions + - LP: #1347088 + * arm64: ptrace: fix empty registers set in prstatus of aarch32 process + core + - LP: #1347088 + * ALSA: control: Protect user controls against concurrent access + - LP: #1347088 + * ALSA: control: Fix replacing user controls + - LP: #1347088 + * ALSA: control: Don't access controls outside of protected regions + - LP: #1347088 + * ALSA: control: Handle numid overflow + - LP: #1347088 + * ALSA: control: Make sure that id->index does not overflow + - LP: #1347088 + * Bluetooth: Fix SSP acceptor just-works confirmation without MITM + - LP: #1347088 + * Bluetooth: Fix setting correct authentication information for SMP STK + - LP: #1347088 + * Bluetooth: Fix indicating discovery state when canceling inquiry + - LP: #1347088 + * Bluetooth: Fix locking of hdev when calling into SMP code + - LP: #1347088 + * Bluetooth: Allow change security level on ATT_CID in slave role + - LP: #1347088 + * rt2x00: disable TKIP on USB + - LP: #1347088 + * b43: fix frequency reported on G-PHY with /new/ firmware + - LP: #1347088 + * rt2x00: fix rfkill regression on rt2500pci + - LP: #1347088 + * blkcg: fix use-after-free in __blkg_release_rcu() by making blkcg_gq + refcnt an atomic_t + - LP: #1347088 + * rbd: handle parent_overlap on writes correctly + - LP: #1347088 + * ALSA: hda - hdmi: call overridden init on resume + - LP: #1347088 + * x86_32, entry: Do syscall exit work on badsys (CVE-2014-4508) + - LP: #1347088 + * hugetlb: fix copy_hugetlb_page_range() to handle migration/hwpoisoned + entry + - LP: #1347088 + * kernel/watchdog.c: remove preemption restrictions when restarting + lockup detector + - LP: #1347088 + * DMA, CMA: fix possible memory leak + - LP: #1347088 + * mm: fix crashes from mbind() merging vmas + - LP: #1347088 + * drm/i915: Hold the table lock whilst walking the file's idr and + counting the objects in debugfs + - LP: #1347088 + * [CIFS] fix mount failure with broken pathnames when smb3 mount with + mapchars option + - LP: #1347088 + * aio: fix aio request leak when events are reaped by userspace + - LP: #1347088 + * aio: fix kernel memory disclosure in io_getevents() introduced in v3.10 + - LP: #1347088 + * nfs: Fix cache_validity check in nfs_write_pageuptodate() + - LP: #1347088 + * powerpc: Don't skip ePAPR spin-table CPUs + - LP: #1347088 + * net: allwinner: emac: Add missing free_irq + - LP: #1347088 + * ALSA: usb-audio: Fix races at disconnection and PCM closing + - LP: #1347088 + * recordmcount/MIPS: Fix possible incorrect mcount_loc table entries in + modules + - LP: #1347088 + * MIPS: MSC: Prevent out-of-bounds writes to MIPS SC ioremap'd region + - LP: #1347088 + * ALSA: hda - restore BCLK M/N values when resuming HSW/BDW display + controller + - LP: #1347088 + * target: Fix left-over se_lun->lun_sep pointer OOPs + - LP: #1347088 + * iscsi-target: Explicily clear login response PDU in exception path + - LP: #1347088 + * efi-pstore: Fix an overflow on 32-bit builds + - LP: #1347088 + * lz4: fix another possible overrun + - LP: #1347088 + * iscsi-target: Avoid rejecting incorrect ITT for Data-Out + - LP: #1347088 + * iscsi-target: fix iscsit_del_np deadlock on unload + - LP: #1347088 + * Linux 3.13.11.5 + - LP: #1347088 + * powerpc/powernv: Fix endianness problems in EEH + - LP: #1340200 + * libahci: export ahci_qc_issue() and ahci_start_fix_rx() + - LP: #1335645 + * ahci_xgene: fix the dma state machine lockup for the IDENTIFY DEVICE + PIO mode command. + - LP: #1335645 + * fix build error in gpio-dwapb patch + - LP: #1348808 + * usb: Check if port status is equal to RxDetect + - LP: #1322409 + * net/mlx4_en: Protect MAC address modification with the state_lock mutex + - LP: #1347012 + * net/mlx4_en: Fix errors in MAC address changing when port is down + - LP: #1347012 + * bonding: Advertize vxlan offload features when supported + - LP: #1347012 + * net/mlx4_core: Fix the error flow when probing with invalid VF + configuration + - LP: #1347012 + * net/mlx4_en: Don't configure the HW vxlan parser when vxlan offloading + isn't set + - LP: #1347012 + * net/mlx4_core: Keep only one driver entry release mlx4_priv + - LP: #1347012 + * net/mlx4_core: Preserve pci_dev_data after __mlx4_remove_one() + - LP: #1347012 + * net/mlx4_core: Defer VF initialization till PF is fully initialized + - LP: #1347012 + * net/mlx4_core: Adjust port number in qp_attach wrapper when detaching + - LP: #1347012 + * net/mlx4_core: Fix slave id computation for single port VF + - LP: #1347012 + * net/mlx4_core: Load the Eth driver first + - LP: #1347012 + * net/mlx4_core: Don't issue PCIe speed/width checks for VFs + - LP: #1347012 + * net/mlx4_core: Add UPDATE_QP SRIOV wrapper support + - LP: #1347012 + * net/mlx4_core: Reset RoCE VF gids when guest driver goes down + - LP: #1347012 + * net/mlx4_en: Reduce memory consumption on kdump kernel + - LP: #1347012 + * net/mlx4_core: Use low memory profile on kdump kernel + - LP: #1347012 + * net/mlx4_en: current_mac isn't updated in port up + - LP: #1347012 + * net/mlx4_en: Disable blueflame using ethtool private flags + - LP: #1347012 + * net/mlx4_en: Fix mac_hash database inconsistency + - LP: #1347012 + * ext4: handle symlink properly with inline_data + - LP: #1349020 + * net/mlx4_en: cq->irq_desc wasn't set in legacy EQ's + - LP: #1354242 + * rtl8821ae: fixup staging driver for revised + ieee80211_is_robust_mgmt_frame + - LP: #1354469 + * ahci_xgene: Fix the watermark threshold for the APM X-Gene SATA host + controller driver. + - LP: #1350087 + * ahci_xgene: Use correct OOB tunning parameters for APM X-Gene SoC AHCI + SATA Host controller driver. + - LP: #1350087 + * sunrpc: create a new dummy pipe for gssd to hold open + - LP: #1327563 + * sunrpc: replace sunrpc_net->gssd_running flag with a more reliable + check + - LP: #1327563 + * nfs: check if gssd is running before attempting to use krb5i auth in + SETCLIENTID call + - LP: #1327563 + * ACPI / PAD: call schedule() when need_resched() is true + - LP: #1356913 + * KVM: ioapic: fix assignment of ioapic->rtc_status.pending_eoi + (CVE-2014-0155) + - LP: #1356913 + * target: Explicitly clear ramdisk_mcp backend pages + - LP: #1356913 + * sctp: Fix sk_ack_backlog wrap-around problem + - LP: #1356913 + * mm: hugetlb: fix copy_hugetlb_page_range() + - LP: #1356913 + * x86_32, entry: Store badsys error code in %eax + - LP: #1356913 + * shmem: fix faulting into a hole while it's punched + - LP: #1356913 + * shmem: fix faulting into a hole, not taking i_mutex + - LP: #1356913 + * shmem: fix splicing from a hole while it's punched + - LP: #1356913 + * ipvs: Fix panic due to non-linear skb + - LP: #1356913 + * ALSA: hda - verify pin:converter connection on unsol event for HSW and + VLV + - LP: #1356913 + * ALSA: hda - verify pin:cvt connection on preparing a stream for Intel + HDMI codec + - LP: #1356913 + * x86/xen: safely map and unmap grant frames when in atomic context + - LP: #1356913 + * ext4: Fix buffer double free in ext4_alloc_branch() + - LP: #1356913 + * ARM: OMAP2+: Fix parser-bug in platform muxing code + - LP: #1356913 + * KVM: x86: Increase the number of fixed MTRR regs to 10 + - LP: #1356913 + * KVM: x86: preserve the high 32-bits of the PAT register + - LP: #1356913 + * usb: musb: ux500: don't propagate the OF node + - LP: #1356913 + * usb: gadget: f_fs: fix NULL pointer dereference when there are no + strings + - LP: #1356913 + * staging: iio/ad7291: fix error code in ad7291_probe() + - LP: #1356913 + * iio: of_iio_channel_get_by_name() returns non-null pointers for error + legs + - LP: #1356913 + * irqchip: spear_shirq: Fix interrupt offset + - LP: #1356913 + * USB: option: add device ID for SpeedUp SU9800 usb 3g modem + - LP: #1356913 + * USB: ftdi_sio: fix null deref at port probe + - LP: #1356913 + * usb: option: add/modify Olivetti Olicard modems + - LP: #1356913 + * scsi_error: fix invalid setting of host byte + - LP: #1356913 + * xhci: Use correct SLOT ID when handling a reset device command + - LP: #1356913 + * xhci: correct burst count field for isoc transfers on 1.0 xhci hosts + - LP: #1356913 + * xhci: clear root port wake on bits if controller isn't wake-up capable + - LP: #1356913 + * xhci: Fix runtime suspended xhci from blocking system suspend. + - LP: #1356913 + * ibmvscsi: Abort init sequence during error recovery + - LP: #1356913 + * ibmvscsi: Add memory barriers for send / receive + - LP: #1356913 + * virtio-scsi: avoid cancelling uninitialized work items + - LP: #1356913 + * virtio-scsi: fix various bad behavior on aborted requests + - LP: #1356913 + * MIPS: KVM: Fix memory leak on VCPU + - LP: #1356913 + * ext4: Fix hole punching for files with indirect blocks + - LP: #1356913 + * usb: musb: Fix panic upon musb_am335x module removal + - LP: #1356913 + * usb: musb: Ensure that cppi41 timer gets armed on premature DMA TX irq + - LP: #1356913 + * nfsd: fix rare symlink decoding bug + - LP: #1356913 + * tools: ffs-test: fix header values endianess + - LP: #1356913 + * usb-storage/SCSI: Add broken_fua blacklist flag + - LP: #1356913 + * drm/radeon/dpm: fix typo in vddci setup for eg/btc + - LP: #1356913 + * drm/radeon/dpm: fix vddci setup typo on cayman + - LP: #1356913 + * tracing: Remove ftrace_stop/start() from reading the trace file + - LP: #1356913 + * usb: chipidea: udc: delete td from req's td list at ep_dequeue + - LP: #1356913 + * drm/radeon/cik: fix typo in EOP packet + - LP: #1356913 + * md: flush writes before starting a recovery. + - LP: #1356913 + * drm/vmwgfx: Fix incorrect write to read-only register v2: + - LP: #1356913 + * mm: page_alloc: fix CMA area initialisation when pageblock > MAX_ORDER + - LP: #1356913 + * /proc/stat: convert to single_open_size() + - LP: #1356913 + * nick kvfree() from apparmor + - LP: #1356913 + * fs/seq_file: fallback to vmalloc allocation + - LP: #1356913 + * lz4: add overrun checks to lz4_uncompress_unknownoutputsize() + - LP: #1356913 + * arm64: mm: Make icache synchronisation logic huge page aware + - LP: #1356913 + * workqueue: fix dev_set_uevent_suppress() imbalance + - LP: #1356913 + * cpuset,mempolicy: fix sleeping function called from invalid context + - LP: #1356913 + * crypto: sha512_ssse3 - fix byte count to bit count conversion + - LP: #1356913 + * thermal: hwmon: Make the check for critical temp valid consistent + - LP: #1356913 + * clk: s2mps11: Fix double free corruption during driver unbind + - LP: #1356913 + * hwmon: (amc6821) Fix permissions for temp2_input + - LP: #1356913 + * hwmon: (adm1029) Ensure the fan_div cache is updated in set_fan_div + - LP: #1356913 + * hwmon: (adm1021) Fix cache problem when writing temperature limits + - LP: #1356913 + * ext4: fix unjournalled bg descriptor while initializing inode bitmap + - LP: #1356913 + * ext4: clarify error count warning messages + - LP: #1356913 + * ext4: clarify ext4_error message in ext4_mb_generate_buddy_error() + - LP: #1356913 + * ext4: disable synchronous transaction batching if max_batch_time==0 + - LP: #1356913 + * intel_pstate: Fix setting VID + - LP: #1356913 + * intel_pstate: don't touch turbo bit if turbo disabled or unavailable. + - LP: #1356913 + * intel_pstate: Set CPU number before accessing MSRs + - LP: #1356913 + * USB: cp210x: add support for Corsair usb dongle + - LP: #1356913 + * usb: option: Add ID for Telewell TW-LTE 4G v2 + - LP: #1356913 + * ACPI / EC: Avoid race condition related to advance_transaction() + - LP: #1356913 + * ACPI / EC: Add asynchronous command byte write support + - LP: #1356913 + * ACPI / EC: Remove duplicated ec_wait_ibf0() waiter + - LP: #1356913 + * ACPI / EC: Fix race condition in ec_transaction_completed() + - LP: #1356913 + * ACPI / battery: Retry to get battery information if failed during + probing + - LP: #1356913 + * hwmon: (adm1031) Fix writes to limit registers + - LP: #1356913 + * workqueue: zero cpumask of wq_numa_possible_cpumask on init + - LP: #1356913 + * hwmon: (emc2103) Clamp limits instead of bailing out + - LP: #1356913 + * arm64: implement TASK_SIZE_OF + - LP: #1356913 + * iio: ti_am335x_adc: Fix: Use same step id at FIFOs both ends + - LP: #1356913 + * cpufreq: Makefile: fix compilation for davinci platform + - LP: #1356913 + * drm/i915: Don't clobber the GTT when it's within stolen memory + - LP: #1356913 + * Drivers: hv: vmbus: Fix a bug in the channel callback dispatch code + - LP: #1356913 + * USB: ftdi_sio: Add extra PID. + - LP: #1356913 + * crypto: caam - fix memleak in caam_jr module + - LP: #1356913 + * dm: allocate a special workqueue for deferred device removal + - LP: #1356913 + * dm io: fix a race condition in the wake up code for sync_io + - LP: #1356913 + * drm/radeon/dp: return -EIO for flags not zero case + - LP: #1356913 + * drm/radeon: fix typo in golden register setup on evergreen + - LP: #1356913 + * drm/radeon: fix typo in ci_stop_dpm() + - LP: #1356913 + * drm/radeon/dpm: Reenabling SS on Cayman + - LP: #1356913 + * powerpc/perf: Add PPMU_ARCH_207S define + - LP: #1356913 + * powerpc/perf: Clear MMCR2 when enabling PMU + - LP: #1356913 + * powerpc/perf: Never program book3s PMCs with values >= 0x80000000 + - LP: #1356913 + * USB: serial: ftdi_sio: Add Infineon Triboard + - LP: #1356913 + * phy: core: Fix error path in phy_create() + - LP: #1356913 + * ext4: fix a potential deadlock in __ext4_es_shrink() + - LP: #1356913 + * parisc: add serial ports of C8000/1GHz machine to hardware database + - LP: #1356913 + * parisc: fix fanotify_mark() syscall on 32bit compat kernel + - LP: #1356913 + * parisc: drop unused defines and header includes + - LP: #1356913 + * clk: spear3xx: Use proper control register offset + - LP: #1356913 + * Bluetooth: Ignore H5 non-link packets in non-active state + - LP: #1356913 + * iwlwifi: update the 7265 series HW IDs + - LP: #1356913 + * mwifiex: fix Tx timeout issue + - LP: #1356913 + * x86, tsc: Fix cpufreq lockup + - LP: #1356913 + * perf/x86/intel: ignore CondChgd bit to avoid false NMI handling + - LP: #1356913 + * perf: Do not allow optimized switch for non-cloned events + - LP: #1356913 + * xen/manage: fix potential deadlock when resuming the console + - LP: #1356913 + * iwlwifi: dvm: don't enable CTS to self + - LP: #1356913 + * iwlwifi: mvm: disable CTS to Self + - LP: #1356913 + * xen/balloon: set ballooned out pages as invalid in p2m + - LP: #1356913 + * mtd: devices: elm: fix elm_context_save() and elm_context_restore() + functions + - LP: #1356913 + * fuse: timeout comparison fix + - LP: #1356913 + * fuse: ignore entry-timeout on LOOKUP_REVAL + - LP: #1356913 + * fuse: handle large user and group ID + - LP: #1356913 + * alarmtimer: Fix bug where relative alarm timers were treated as + absolute + - LP: #1356913 + * irqchip: gic: Add support for cortex a7 compatible string + - LP: #1356913 + * net: mvneta: fix operation in 10 Mbit/s mode + - LP: #1356913 + * net: mvneta: Fix big endian issue in mvneta_txq_desc_csum() + - LP: #1356913 + * igb: Workaround for i210 Errata 25: Slow System Clock + - LP: #1356913 + * x86/efi: Include a .bss section within the PE/COFF headers + - LP: #1356913 + * igb: do a reset on SR-IOV re-init if device is down + - LP: #1356913 + * iio:core: Handle error when mask type is not separate + - LP: #1356913 + * of/irq: do irq resolution in platform_get_irq_byname() + - LP: #1356913 + * platform_get_irq: Revert to platform_get_resource if of_irq_get fails + - LP: #1356913 + * aio: protect reqs_available updates from changes in interrupt handlers + - LP: #1356913 + * hwmon: (da9052) Don't use dash in the name attribute + - LP: #1356913 + * hwmon: (da9055) Don't use dash in the name attribute + - LP: #1356913 + * PM / sleep: Fix request_firmware() error at resume + - LP: #1356913 + * ALSA: hda - Fix broken PM due to incomplete i915 initialization + - LP: #1356913 + * tracing: Add ftrace_trace_stack into __trace_puts/__trace_bputs + - LP: #1356913 + * tracing: Fix graph tracer with stack tracer on other archs + - LP: #1356913 + * tracing: Add TRACE_ITER_PRINTK flag check in __trace_puts/__trace_bputs + - LP: #1356913 + * dm thin metadata: do not allow the data block size to change + - LP: #1356913 + * dm cache metadata: do not allow the data block size to change + - LP: #1356913 + * quota: missing lock in dqcache_shrink_scan() + - LP: #1356913 + * ring-buffer: Fix polling on trace_pipe + - LP: #1356913 + * sched: Fix possible divide by zero in avg_atom() calculation + - LP: #1356913 + * locking/mutex: Disable optimistic spinning on some architectures + - LP: #1356913 + * drm/qxl: return IRQ_NONE if it was not our irq + - LP: #1356913 + * hwmon: (adt7470) Fix writes to temperature limit registers + - LP: #1356913 + * cpufreq: move policy kobj to policy->cpu at resume + - LP: #1356913 + * drm/radeon: avoid leaking edid data + - LP: #1356913 + * drm/radeon: set default bl level to something reasonable + - LP: #1356913 + * usb: chipidea: udc: Disable auto ZLP generation on ep0 + - LP: #1356913 + * irqchip: gic: Fix core ID calculation when topology is read from DT + - LP: #1356913 + * slab_common: fix the check for duplicate slab names + - LP: #1356913 + * xtensa: add fixup for double exception raised in window overflow + - LP: #1356913 + * [media] media: v4l2-core: v4l2-dv-timings.c: Cleaning up code wrong + value used in aspect ratio + - LP: #1356913 + * [media] hdpvr: fix two audio bugs + - LP: #1356913 + * block: don't assume last put of shared tags is for the host + - LP: #1356913 + * blkcg: don't call into policy draining if root_blkg is already gone + - LP: #1356913 + * block: provide compat ioctl for BLKZEROOUT + - LP: #1356913 + * libata: support the ata host which implements a queue depth less than + 32 + - LP: #1356913 + * [media] tda10071: force modulation to QPSK on DVB-S + - LP: #1356913 + * [media] gspca_pac7302: Add new usb-id for Genius i-Look 317 + - LP: #1356913 + * s390/ptrace: fix PSW mask check + - LP: #1356913 + * ahci: add support for the Promise FastTrak TX8660 SATA HBA (ahci mode) + - LP: #1356913 + * Input: fix defuzzing logic + - LP: #1356913 + * tracing: Fix wraparound problems in "uptime" trace clock + - LP: #1356913 + * drm/i915: Reorder the semaphore deadlock check, again + - LP: #1356913 + * libata: introduce ata_host->n_tags to avoid oops on SAS controllers + - LP: #1356913 + * drm/radeon: fix irq ring buffer overflow handling + - LP: #1356913 + * coredump: fix the setting of PF_DUMPCORE + - LP: #1356913 + * fs: umount on symlink leaks mnt count + - LP: #1356913 + * hwmon: (smsc47m192) Fix temperature limit and vrm write operations + - LP: #1356913 + * parisc: Remove SA_RESTORER define + - LP: #1356913 + * drm/radeon: fix cut and paste issue for hawaii. + - LP: #1356913 + * parport: fix menu breakage + - LP: #1356913 + * Fix gcc-4.9.0 miscompilation of load_balance() in scheduler + - LP: #1356913 + * scsi: handle flush errors properly + - LP: #1356913 + * cfg80211: fix mic_failure tracing + - LP: #1356913 + * iio: buffer: Fix demux table creation + - LP: #1356913 + * iio:bma180: Fix scale factors to report correct acceleration units + - LP: #1356913 + * iio:bma180: Missing check for frequency fractional part + - LP: #1356913 + * powerpc/perf: Fix MMCR2 handling for EBB + - LP: #1356913 + * ath9k: fix aggregation session lockup + - LP: #1356913 + * sched_clock: Avoid corrupting hrtimer tree during suspend + - LP: #1356913 + * staging: vt6655: Fix Warning on boot handle_irq_event_percpu. + - LP: #1356913 + * staging: vt6655: Fix disassociated messages every 10 seconds + - LP: #1356913 + * can: c_can_platform: Fix raminit, use devm_ioremap() instead of + devm_ioremap_resource() + - LP: #1356913 + * crypto: arm-aes - fix encryption of unaligned data + - LP: #1356913 + * ARM: fix alignment of keystone page table fixup + - LP: #1356913 + * net: sendmsg: fix NULL pointer dereference + - LP: #1356913 + * mm/page-writeback.c: fix divide by zero in bdi_dirty_limits() + - LP: #1356913 + * mm, thp: do not allow thp faults to avoid cpuset restrictions + - LP: #1356913 + * rapidio/tsi721_dma: fix failure to obtain transaction descriptor + - LP: #1356913 + * memcg: oom_notify use-after-free fix + - LP: #1356913 + * crypto: af_alg - properly label AF_ALG socket + - LP: #1356913 + * printk: rename printk_sched to printk_deferred + - LP: #1356913 + * timer: Fix lock inversion between hrtimer_bases.lock and scheduler + locks + - LP: #1356913 + * dm bufio: fully initialize shrinker + - LP: #1356913 + * dm cache: fix race affecting dirty block count + - LP: #1356913 + * qlcnic: info leak in qlcnic_dcb_peer_app_info() + - LP: #1356913 + * netlink: rate-limit leftover bytes warning and print process name + - LP: #1356913 + * bridge: Prevent insertion of FDB entry with disallowed vlan + - LP: #1356913 + * net: tunnels - enable module autoloading + - LP: #1356913 + * net: fix inet_getid() and ipv6_select_ident() bugs + - LP: #1356913 + * team: fix mtu setting + - LP: #1356913 + * tcp: fix cwnd undo on DSACK in F-RTO + - LP: #1356913 + * sh_eth: use RNC mode for packet reception + - LP: #1356913 + * sh_eth: fix SH7619/771x support + - LP: #1356913 + * net: filter: fix typo in sparc BPF JIT + - LP: #1356913 + * net: filter: fix sparc32 typo + - LP: #1356913 + * net: qmi_wwan: add Olivetti Olicard modems + - LP: #1356913 + * net: force a list_del() in unregister_netdevice_many() + - LP: #1356913 + * ipip, sit: fix ipv4_{update_pmtu,redirect} calls + - LP: #1356913 + * sfc: PIO:Restrict to 64bit arch and use 64-bit writes. + - LP: #1356913 + * ipv4: fix a race in ip4_datagram_release_cb() + - LP: #1356913 + * rtnetlink: fix userspace API breakage for iproute2 < v3.9.0 + - LP: #1356913 + * vxlan: use dev->needed_headroom instead of dev->hard_header_len + - LP: #1356913 + * udp: ipv4: do not waste time in __udp4_lib_mcast_demux_lookup + - LP: #1356913 + * ip_tunnel: fix ip_tunnel_lookup + - LP: #1356913 + * slip: Fix deadlock in write_wakeup + - LP: #1356913 + * slcan: Port write_wakeup deadlock fix from slip + - LP: #1356913 + * net: sctp: propagate sysctl errors from proc_do* properly + - LP: #1356913 + * tcp: fix tcp_match_skb_to_sack() for unaligned SACK at end of an skb + - LP: #1356913 + * net: sctp: check proc_dointvec result in proc_sctp_do_auth + - LP: #1356913 + * 8021q: fix a potential memory leak + - LP: #1356913 + * net: huawei_cdc_ncm: increase command buffer size + - LP: #1356913 + * ipv4: fix dst race in sk_dst_get() + - LP: #1356913 + * ipv4: irq safe sk_dst_[re]set() and ipv4_sk_update_pmtu() fix + - LP: #1356913 + * net: fix sparse warning in sk_dst_set() + - LP: #1356913 + * vlan: free percpu stats in device destructor + - LP: #1356913 + * bnx2x: fix possible panic under memory stress + - LP: #1356913 + * tcp: Fix divide by zero when pushing during tcp-repair + - LP: #1356913 + * ipv4: icmp: Fix pMTU handling for rare case + - LP: #1356913 + * net: qmi_wwan: Add ID for Telewell TW-LTE 4G v2 + - LP: #1356913 + * net: qmi_wwan: add two Sierra Wireless/Netgear devices + - LP: #1356913 + * net: Fix NETDEV_CHANGE notifier usage causing spurious arp flush + - LP: #1356913 + * igmp: fix the problem when mc leave group + - LP: #1356913 + * tcp: fix false undo corner cases + - LP: #1356913 + * appletalk: Fix socket referencing in skb + - LP: #1356913 + * netlink: Fix handling of error from netlink_dump(). + - LP: #1356913 + * be2net: set EQ DB clear-intr bit in be_open() + - LP: #1356913 + * tipc: clear 'next'-pointer of message fragments before reassembly + - LP: #1356913 + * net: sctp: fix information leaks in ulpevent layer + - LP: #1356913 + * net: pppoe: use correct channel MTU when using Multilink PPP + - LP: #1356913 + * sunvnet: clean up objects created in vnet_new() on vnet_exit() + - LP: #1356913 + * net: huawei_cdc_ncm: add "subclass 3" devices + - LP: #1356913 + * dns_resolver: assure that dns_query() result is null-terminated + - LP: #1356913 + * dns_resolver: Null-terminate the right string + - LP: #1356913 + * ipv4: fix buffer overflow in ip_options_compile() + - LP: #1356913 + * x86/xen: no need to explicitly register an NMI callback + - LP: #1356913 + * Linux 3.13.11.6 + - LP: #1356913 + + -- Joseph Salisbury Thu, 14 Aug 2014 17:12:19 -0400 + +linux (3.13.0-34.60) trusty; urgency=low + + [ Brad Figg ] + + * Release Tracking Bug + - LP: #1356396 + + [ Upstream Kernel Changes ] + + * mnt: Only change user settable mount flags in remount + - CVE-2014-5206 + * mnt: Move the test for MNT_LOCK_READONLY from change_mount_flags into + do_remount + - CVE-2014-5206 + * mnt: Correct permission checks in do_remount + - CVE-2014-5207 + * mnt: Change the default remount atime from relatime to the existing + value + - CVE-2014-5207 + + -- Brad Figg Tue, 29 Jul 2014 08:25:07 -0700 + +linux (3.13.0-33.58) trusty; urgency=low + + [ Brad Figg ] + + * Release Tracking Bug + - LP: #1349897 + + [ Upstream Kernel Changes ] + + * mm: numa: do not automatically migrate KSM pages + - LP: #1346917 + * net: fix UDP tunnel GSO of frag_list GRO packets + - LP: #1331219 + * auditsc: audit_krule mask accesses need bounds checking + - LP: #1347088 + * n_tty: Fix buffer overruns with larger-than-4k pastes + - LP: #1208740 + + -- Tim Gardner Fri, 18 Jul 2014 14:57:50 +0000 + +linux (3.13.0-32.57) trusty; urgency=low + + [ Upstream Kernel Changes ] + + * l2tp: Privilege escalation in ppp over l2tp sockets + - LP: #1341472 + - CVE-2014-4943 + + -- Luis Henriques Mon, 14 Jul 2014 10:03:44 +0100 + +linux (3.13.0-32.56) trusty; urgency=low + + [ Luis Henriques ] + + * Merged back Ubuntu-3.13.0-30.55 security release + * Revert "x86_64,ptrace: Enforce RIP <= TASK_SIZE_MAX (CVE-2014-4699)" + - LP: #1337339 + * Release Tracking Bug + - LP: #1338524 + + [ Upstream Kernel Changes ] + + * ptrace,x86: force IRET path after a ptrace_stop() + - LP: #1337339 + - CVE-2014-4699 + * hpsa: add new Smart Array PCI IDs (May 2014) + - LP: #1337516 + + -- Luis Henriques Mon, 07 Jul 2014 11:38:37 +0100 + +linux (3.13.0-31.55) trusty; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - LP: #1336278 + + [ Andy Whitcroft ] + + * [Config] switch hyper-keyboard to virtual + - LP: #1325306 + * [Packaging] linux-udeb-flavour -- standardise on linux prefix + + [ dann frazier ] + + * [Config] CONFIG_GPIO_DWAPB=m + - LP: #1334823 + + [ Feng Kan ] + + * SAUCE: (no-up) arm64: dts: Add Designware GPIO dts binding to APM + X-Gene platform + - LP: #1334823 + + [ John Johansen ] + + * SAUCE: (no-up) apparmor: fix apparmor spams log with warning message + - LP: #1308761 + + [ Kamal Mostafa ] + + * [Config] updateconfigs ACPI_PROCFS_POWER=y after v3.13.11.4 rebase + + [ Loc Ho ] + + * SAUCE: (no-up) phy-xgene: Use correct tuning for Mustang + - LP: #1335636 + + [ Michael Ellerman ] + + * SAUCE: (no-up) powerpc/perf: Ensure all EBB register state is cleared + on fork() + - LP: #1328914 + + [ Ming Lei ] + + * Revert "SAUCE: (no-up) rtc: Add X-Gene SoC Real Time Clock Driver" + - LP: #1274305 + + [ Suman Tripathi ] + + * SAUCE: (no-up) libahci: Implement the function ahci_restart_engine to + restart the port dma engine. + - LP: #1335645 + * SAUCE: (no-up) ata: Fix the dma state machine lockup for the IDENTIFY + DEVICE PIO mode command. + - LP: #1335645 + + [ Tim Gardner ] + + * [Config] CONFIG_POWERNV_CPUFREQ=y for powerpc, ppc64el + - LP: #1324571 + * [Debian] Add UTS_UBUNTU_RELEASE_ABI to utsrelease.h + - LP: #1327619 + * [Config] CONFIG_HAVE_MEMORYLESS_NODES=y + - LP: #1332063 + * [Config] CONFIG_HID_RMI=m + - LP: #1305522 + + [ Upstream Kernel Changes ] + + * Revert "offb: Add palette hack for little endian" + - LP: #1333430 + * Revert "net: mvneta: fix usage as a module on RGMII configurations" + - LP: #1333837 + * Revert "USB: serial: add usbid for dell wwan card to sierra.c" + - LP: #1333837 + * Revert "macvlan : fix checksums error when we are in bridge mode" + - LP: #1333838 + * serial: uart: add hw flow control support configuration + - LP: #1328295 + * mm/numa: Remove BUG_ON() in __handle_mm_fault() + - LP: #1323165 + * Tools: hv: Handle the case when the target file exists correctly + - LP: #1306215 + * Documentation/devicetree/bindings: add documentation for the APM X-Gene + SoC RTC DTS binding + - LP: #1274305 + * drivers/rtc: add APM X-Gene SoC RTC driver + - LP: #1274305 + * arm64: add APM X-Gene SoC RTC DTS entry + - LP: #1274305 + * powerpc/perf: Add Power8 cache & TLB events + - LP: #1328914 + * powerpc/perf: Configure BHRB filter before enabling PMU interrupts + - LP: #1328914 + * powerpc/perf: Define perf_event_print_debug() to print PMU register + values + - LP: #1328914 + * powerpc: Add a cpu feature CPU_FTR_PMAO_BUG + - LP: #1328914 + * powerpc/perf: Add lost exception workaround + - LP: #1328914 + * powerpc/perf: Reject EBB events which specify a sample_type + - LP: #1328914 + * powerpc/perf: Clean up the EBB hash defines a little + - LP: #1328914 + * powerpc/perf: Avoid mutating event in power8_get_constraint() + - LP: #1328914 + * powerpc/perf: Add BHRB constraint and IFM MMCRA handling for EBB + - LP: #1328914 + * powerpc/perf: Enable BHRB access for EBB events + - LP: #1328914 + * powerpc/perf: Fix handling of L3 events with bank == 1 + - LP: #1328914 + * Bluetooth: Add support for Intel Bluetooth device [8087:0a2a] + - LP: #1329184 + * iwlwifi: mvm: disable beacon filtering + - LP: #1293569 + * SUNRPC: Ensure that call_connect times out correctly + - LP: #1322407 + * SUNRPC: Ensure call_connect_status() deals correctly with SOFTCONN + tasks + - LP: #1322407 + * bitops: Fix signedness of compile-time hweight implementations + - LP: #1321791 + * cpumask.h: silence warning with -Wsign-compare + - LP: #1321791 + * fbdev/fb.h: silence warning with -Wsign-compare + - LP: #1321791 + * rtlwifi: make MSI support a module parameter + - LP: #1296591 + * rtlwifi: rtl8188ee: add msi module parameter + - LP: #1296591 + * rtlwifi: rtl8723be: add msi module parameter + - LP: #1296591 + * net: avoid dependency of net_get_random_once on nop patching + - LP: #1330671 + * x86-64, modify_ldt: Make support for 16-bit segments a runtime option + - LP: #1328965 + * ALSA: usb-audio: Prevent printk ratelimiting from spamming kernel log + while DEBUG not defined + - LP: #1319457 + * btrfs: fix defrag 32-bit integer overflow + - LP: #1324953 + * dell-laptop: Only install the i8042 filter when rfkill is active + - LP: #1289238 + * kthread: ensure locality of task_struct allocations + - LP: #1332063 + * slub: search partial list on numa_mem_id(), instead of numa_node_id() + - LP: #1332063 + * powerpc/numa: Enable USE_PERCPU_NUMA_NODE_ID + - LP: #1332063 + * powerpc/numa: Enable CONFIG_HAVE_MEMORYLESS_NODES + - LP: #1332063 + * drm/i915: Allow user modes to exceed DVI 165MHz limit + - LP: #1332220 + * HID: rmi: introduce RMI driver for Synaptics touchpads + - LP: #1305522 + * HID: rmi: do not stop the device at the end of probe + - LP: #1305522 + * HID: rmi: check for the existence of some optional queries before + reading query 12 + - LP: #1305522 + * HID: rmi: do not fetch more than 16 bytes in a query + - LP: #1305522 + * HID: rmi: fix wrong struct field name + - LP: #1305522 + * HID: rmi: fix masks for x and w_x data + - LP: #1305522 + * HID: rmi: do not handle touchscreens through hid-rmi + - LP: #1305522 + * ipv6: Fix regression caused by efe4208 in udp_v6_mcast_next() + - LP: #1332420 + * HID: core: do not scan constant input report + - LP: #1333837 + * drm/radeon: fix audio pin counts for DCE6+ (v2) + - LP: #1333837 + * mac80211: fix software remain-on-channel implementation + - LP: #1333837 + * mac80211: exclude AP_VLAN interfaces from tx power calculation + - LP: #1333837 + * iwlwifi: add new 7265 HW IDs + - LP: #1333837 + * parisc: fix epoll_pwait syscall on compat kernel + - LP: #1333837 + * iwlwifi: add MODULE_FIRMWARE for 7265 + - LP: #1333837 + * dma: edma: fix incorrect SG list handling + - LP: #1333837 + * ALSA: hda/realtek - Add support of ALC288 codec + - LP: #1333837 + * xen/spinlock: Don't enable them unconditionally. + - LP: #1333837 + * tick-common: Fix wrong check in tick_check_replacement() + - LP: #1333837 + * tick-sched: Check tick_nohz_enabled in tick_nohz_switch_to_nohz() + - LP: #1333837 + * ALSA: hda - add headset mic detect quirk for a Dell laptop + - LP: #1297581, #1333837 + * ALSA: hda/realtek - Add headset Mic support for Dell machine + - LP: #1333837 + * staging: r8188eu: Calling rtw_get_stainfo() with a NULL sta_addr will + return NULL + - LP: #1333837 + * cifs: Wait for writebacks to complete before attempting write. + - LP: #1333837 + * mlx4_en: don't use napi_synchronize inside mlx4_en_netpoll + - LP: #1333837 + * mei: ignore client writing state during cb completion + - LP: #1333837 + * staging: r8712u: Fix case where ethtype was never obtained and always + be checked against 0 + - LP: #1333837 + * staging: r8188eu: Fix case where ethtype was never obtained and always + be checked against 0 + - LP: #1333837 + * USB: serial: ftdi_sio: add id for Brainboxes serial cards + - LP: #1333837 + * usb: option driver, add support for Telit UE910v2 + - LP: #1333837 + * USB: cp210x: Add 8281 (Nanotec Plug & Drive) + - LP: #1333837 + * USB: pl2303: add ids for Hewlett-Packard HP POS pole displays + - LP: #1333837 + * USB: usb_wwan: fix handling of missing bulk endpoints + - LP: #1333837 + * USB: fix crash during hotplug of PCI USB controller card + - LP: #1333837 + * USB: cdc-acm: Remove Motorola/Telit H24 serial interfaces from ACM + driver + - LP: #1333837 + * Drivers: hv: vmbus: Negotiate version 3.0 when running on ws2012r2 + hosts + - LP: #1333837 + * serial: omap: Fix missing pm_runtime_resume handling by simplifying + code + - LP: #1333837 + * drm/radeon: disable mclk dpm on R7 260X + - LP: #1333837 + * drm/radeon: fix runpm handling on APUs (v4) + - LP: #1333837 + * drm/radeon: add support for newer mc ucode on SI (v2) + - LP: #1333837 + * drm/radeon: add support for newer mc ucode on CI (v2) + - LP: #1333837 + * drm/radeon: re-enable mclk dpm on R7 260X asics + - LP: #1333837 + * drm/radeon: memory leak on bo reservation failure. v2 + - LP: #1333837 + * drm/radeon/si: make sure mc ucode is loaded before checking the size + - LP: #1333837 + * drm/radeon/ci: make sure mc ucode is loaded before checking the size + - LP: #1333837 + * init/Kconfig: move the trusted keyring config option to general setup + - LP: #1333837 + * mm/hugetlb.c: add cond_resched_lock() in return_unused_surplus_pages() + - LP: #1333837 + * thp: close race between split and zap huge pages + - LP: #1333837 + * coredump: fix va_list corruption + - LP: #1333837 + * powerpc/tm: Disable IRQ in tm_recheckpoint + - LP: #1333837 + * ACPI / EC: Process rather than discard events in acpi_ec_clear + - LP: #1333837 + * ath9k: Fix sequence number assignment for non-data frames + - LP: #1333837 + * xhci: Switch Intel Lynx Point ports to EHCI on shutdown. + - LP: #1333837 + * iio: adc: at91_adc: Repair broken platform_data support + - LP: #1333837 + * iio: querying buffer scan_mask should return 0/1 + - LP: #1333837 + * iio: cm36651: Fix i2c client leak and possible NULL pointer dereference + - LP: #1333837 + * libata: Update queued trim blacklist for M5x0 drives + - LP: #1333837 + * pata_at91: fix ata_host_activate() failure handling + - LP: #1333837 + * ext4: avoid possible overflow in ext4_map_blocks() + - LP: #1333837 + * ext4: FIBMAP ioctl causes BUG_ON due to handle EXT_MAX_BLOCKS + - LP: #1333837 + * ext4: note the error in ext4_end_bio() + - LP: #1333837 + * ext4: fix jbd2 warning under heavy xattr load + - LP: #1333837 + * ext4: move ext4_update_i_disksize() into mpage_map_and_submit_extent() + - LP: #1333837 + * ext4: use i_size_read in ext4_unaligned_aio() + - LP: #1333837 + * locks: allow __break_lease to sleep even when break_time is 0 + - LP: #1333837 + * usb: gadget: zero: Fix SuperSpeed enumeration for alternate setting 1 + - LP: #1333837 + * ahci: do not request irq for dummy port + - LP: #1333837 + * genirq: Allow forcing cpu affinity of interrupts + - LP: #1333837 + * irqchip: Gic: Support forced affinity setting + - LP: #1333837 + * clocksource: Exynos_mct: Use irq_force_affinity() in cpu bringup + - LP: #1333837 + * clocksource: Exynos_mct: Register clock event after request_irq() + - LP: #1333837 + * nfsd: set timeparms.to_maxval in setup_callback_client + - LP: #1333837 + * ahci: Do not receive interrupts sent by dummy ports + - LP: #1333837 + * libata/ahci: accommodate tag ordered controllers + - LP: #1333837 + * drm/radeon: disable dpm on rv770 by default + - LP: #1333837 + * Input: synaptics - add min/max quirk for ThinkPad T431s, L440, L540, S1 + Yoga and X1 + - LP: #1333837 + * drm/radeon: fix count in cik_sdma_ring_test() + - LP: #1333837 + * drm/radeon: properly unregister hwmon interface (v2) + - LP: #1333837 + * drm/radeon/pm: don't walk the crtc list before it has been initialized + (v2) + - LP: #1333837 + * drm/radeon: fix ATPX detection on non-VGA GPUs + - LP: #1333837 + * drm/radeon: don't allow runpm=1 on systems with out ATPX + - LP: #1333837 + * mm: make fixup_user_fault() check the vma access rights too + - LP: #1333837 + * ARM: 8027/1: fix do_div() bug in big-endian systems + - LP: #1333837 + * ARM: 8030/1: ARM : kdump : add arch_crash_save_vmcoreinfo + - LP: #1333837 + * ARM: pxa: hx4700.h: include "irqs.h" for PXA_NR_BUILTIN_GPIO + - LP: #1333837 + * ARM: tegra: remove UART5/UARTE from tegra124.dtsi + - LP: #1333837 + * USB: serial: fix sysfs-attribute removal deadlock + - LP: #1333837 + * 8250_core: Fix unwanted TX chars write + - LP: #1333837 + * serial: 8250: Fix thread unsafe __dma_tx_complete function + - LP: #1333837 + * Btrfs: fix inode caching vs tree log + - LP: #1333837 + * xhci: For streams the css flag most be read from the stream-ctx on ep + stop + - LP: #1333837 + * usb: xhci: Prefer endpoint context dequeue pointer over stopped_trb + - LP: #1333837 + * USB: io_ti: fix firmware download on big-endian machines + - LP: #1333837 + * usb: qcserial: add Sierra Wireless EM7355 + - LP: #1333837 + * usb: qcserial: add Sierra Wireless MC73xx + - LP: #1333837 + * usb: qcserial: add Sierra Wireless MC7305/MC7355 + - LP: #1333837 + * usb: option: add Olivetti Olicard 500 + - LP: #1333837 + * usb: option: add Alcatel L800MA + - LP: #1333837 + * usb: option: add and update a number of CMOTech devices + - LP: #1333837 + * word-at-a-time: avoid undefined behaviour in zero_bytemask macro + - LP: #1333837 + * s390/chsc: fix SEI usage on old FW levels + - LP: #1333837 + * irqchip: armada-370-xp: fix invalid cast of signed value into unsigned + variable + - LP: #1333837 + * irqchip: armada-370-xp: implement the ->check_device() msi_chip + operation + - LP: #1333837 + * irqchip: armada-370-xp: Fix releasing of MSIs + - LP: #1333837 + * ASoC: dapm: Fix widget double free with auto-disable DAPM kcontrol + - LP: #1333837 + * drm/i915: Don't check gmch state on inherited configs + - LP: #1333837 + * drm/vmwgfx: Make sure user-space can't DMA across buffer object + boundaries v2 + - LP: #1333837 + * of/irq: do irq resolution in platform_get_irq + - LP: #1333837 + * s390/bpf,jit: initialize A register if 1st insn is BPF_S_LDX_B_MSH + - LP: #1333837 + * drm/i915: Don't WARN nor handle unexpected hpd interrupts on gmch + platforms + - LP: #1333837 + * module: remove warning about waiting module removal. + - LP: #1333837 + * ALSA: hda - add headset mic detect quirk for a Dell laptop + - LP: #1297581, #1333837 + * arm: KVM: fix possible misalignment of PGDs and bounce page + - LP: #1333837 + * KVM: ARM: vgic: Fix sgi dispatch problem + - LP: #1333837 + * KVM: async_pf: mm->mm_users can not pin apf->mm + - LP: #1333837 + * ftrace/module: Hardcode ftrace_module_init() call into load_module() + - LP: #1333837 + * [SCSI] mpt2sas: Don't disable device twice at suspend. + - LP: #1333837 + * [SCSI] virtio-scsi: Skip setting affinity on uninitialized vq + - LP: #1333837 + * drivercore: deferral race condition fix + - LP: #1333837 + * hrtimer: Prevent all reprogramming if hang detected + - LP: #1333837 + * hrtimer: Prevent remote enqueue of leftmost timers + - LP: #1333837 + * timer: Prevent overflow in apply_slack + - LP: #1333837 + * ARC: !PREEMPT: Ensure Return to kernel mode is IRQ safe + - LP: #1333837 + * aio: fix potential leak in aio_run_iocb(). + - LP: #1333837 + * dm cache: fix writethrough mode quiescing in cache_map + - LP: #1333837 + * fix races between __d_instantiate() and checks of dentry flags + - LP: #1333837 + * net: Fix ns_capable check in sock_diag_put_filterinfo + - LP: #1333837 + * rt2x00: fix beaconing on USB + - LP: #1333837 + * rtlwifi: rtl8188ee: initialize packet_beacon + - LP: #1333837 + * Input: synaptics - add min/max quirk for ThinkPad Edge E431 + - LP: #1333837 + * Input: atkbd - fix keyboard not working on some LG laptops + - LP: #1333837 + * Bluetooth: Fix triggering BR/EDR L2CAP Connect too early + - LP: #1333837 + * drm/i915: Break encoder->crtc link separately in intel_sanitize_crtc() + - LP: #1333837 + * iio:imu:mpu6050: Fixed segfault in Invensens MPU driver due to null + dereference + - LP: #1333837 + * ALSA: hda - add headset mic detect quirk for a Dell laptop + - LP: #1297581, #1333837 + * rtlwifi: rtl8192se: Fix regression due to commit 1bf4bbb + - LP: #1333837 + * rtl8192cu: Fix unbalanced irq enable in error path of rtl92cu_hw_init() + - LP: #1333837 + * drm/radeon/uvd: use lower clocks on old UVD to boot v2 + - LP: #1333837 + * drm/radeon: use pflip irq on R600+ v2 + - LP: #1333837 + * drm/radeon: check buffer relocation offset + - LP: #1333837 + * drm/nouveau/acpi: allow non-optimus setups to load vbios from acpi + - LP: #1333837 + * drm/nouveau: fix another lock unbalance in nouveau_crtc_page_flip + - LP: #1333837 + * ALSA: usb-audio: work around corrupted TEAC UD-H01 feedback data + - LP: #1333837 + * USB: OHCI: fix problem with global suspend on ATI controllers + - LP: #1333837 + * usb: qcserial: add a number of Dell devices + - LP: #1333837 + * usb: storage: shuttle_usbat: fix discs being detected twice + - LP: #1333837 + * fsl-usb: do not test for PHY_CLK_VALID bit on controller version 1.6 + - LP: #1333837 + * tty: serial: 8250_core.c Bug fix for Exar chips. + - LP: #1333837 + * drivers/tty/hvc: don't free hvc_console_setup after init + - LP: #1333837 + * tty: Fix lockless tty buffer race + - LP: #1333837 + * USB: Nokia 305 should be treated as unusual dev + - LP: #1333837 + * USB: Nokia 5300 should be treated as unusual dev + - LP: #1333837 + * HID: add NO_INIT_REPORTS quirk for Synaptics Touch Pad V 103S + - LP: #1333837 + * ALSA: hda - hdmi: Set converter channel count even without sink + - LP: #1333837 + * Input: elantech - fix touchpad initialization on Gigabyte U2442 + - LP: #1333837 + * posix_acl: handle NULL ACL in posix_acl_equiv_mode + - LP: #1333837 + * mm/page-writeback.c: fix divide by zero in pos_ratio_polynom + - LP: #1333837 + * mm: compaction: detect when scanners meet in isolate_freepages + - LP: #1333837 + * mm/compaction: make isolate_freepages start at pageblock boundary + - LP: #1333837 + * autofs: fix lockref lookup + - LP: #1333837 + * libata: Blacklist queued trim for Crucial M500 + - LP: #1333837 + * Linux 3.13.11.3 + - LP: #1333837 + * net: sctp: wake up all assocs if sndbuf policy is per socket + - LP: #1333838 + * net: sctp: test if association is dead in sctp_wake_up_waiters + - LP: #1333838 + * l2tp: take PMTU from tunnel UDP socket + - LP: #1333838 + * net: core: don't account for udp header size when computing seglen + - LP: #1333838 + * bonding: Remove debug_fs files when module init fails + - LP: #1333838 + * bridge: Fix double free and memory leak around br_allowed_ingress + - LP: #1333838 + * ipv6: Limit mtu to 65575 bytes + - LP: #1333838 + * gre: don't allow to add the same tunnel twice + - LP: #1333838 + * vti: don't allow to add the same tunnel twice + - LP: #1333838 + * ipv4: return valid RTA_IIF on ip route get + - LP: #1333838 + * filter: prevent nla extensions to peek beyond the end of the message + - LP: #1333838 + * ip6_gre: don't allow to remove the fb_tunnel_dev + - LP: #1333838 + * vlan: Fix lockdep warning when vlan dev handle notification + - LP: #1333838 + * net: Find the nesting level of a given device by type. + - LP: #1333838 + * net: Allow for more then a single subclass for netif_addr_lock + - LP: #1333838 + * vlan: Fix lockdep warning with stacked vlan devices. + - LP: #1333838 + * macvlan: Fix lockdep warnings with stacked macvlan devices + - LP: #1333838 + * tg3: update rx_jumbo_pending ring param only when jumbo frames are + enabled + - LP: #1333838 + * net: sctp: cache auth_enable per endpoint + - LP: #1333838 + * rtnetlink: Warn when interface's information won't fit in our packet + - LP: #1333838 + * rtnetlink: Only supply IFLA_VF_PORTS information when RTEXT_FILTER_VF + is set + - LP: #1333838 + * ipv6: fib: fix fib dump restart + - LP: #1333838 + * bridge: Handle IFLA_ADDRESS correctly when creating bridge device + - LP: #1333838 + * sctp: reset flowi4_oif parameter on route lookup + - LP: #1333838 + * net: qmi_wwan: add Sierra Wireless EM7355 + - LP: #1333838 + * net: qmi_wwan: add Sierra Wireless MC73xx + - LP: #1333838 + * net: qmi_wwan: add Sierra Wireless MC7305/MC7355 + - LP: #1333838 + * net: qmi_wwan: add Olivetti Olicard 500 + - LP: #1333838 + * net: qmi_wwan: add Alcatel L800MA + - LP: #1333838 + * net: qmi_wwan: add a number of CMOTech devices + - LP: #1333838 + * net: qmi_wwan: add a number of Dell devices + - LP: #1333838 + * slip: fix spinlock variant + - LP: #1333838 + * net: sctp: Potentially-Failed state should not be reached from + unconfirmed state + - LP: #1333838 + * net: sctp: Don't transition to PF state when transport has exhausted + 'Path.Max.Retrans'. + - LP: #1333838 + * mactap: Fix checksum errors for non-gso packets in bridge mode + - LP: #1333838 + * tcp_cubic: fix the range of delayed_ack + - LP: #1333838 + * vsock: Make transport the proto owner + - LP: #1333838 + * net: cdc_ncm: fix buffer overflow + - LP: #1333838 + * ip_tunnel: Set network header properly for IP_ECN_decapsulate() + - LP: #1333838 + * net: cdc_mbim: __vlan_find_dev_deep need rcu_read_lock + - LP: #1333838 + * net: ipv4: ip_forward: fix inverted local_df test + - LP: #1333838 + * net: ipv6: send pkttoobig immediately if orig frag size > mtu + - LP: #1333838 + * ipv4: fib_semantics: increment fib_info_cnt after fib_info allocation + - LP: #1333838 + * net: cdc_mbim: handle unaccelerated VLAN tagged frames + - LP: #1333838 + * macvlan: Don't propagate IFF_ALLMULTI changes on down interfaces. + - LP: #1333838 + * sfc: fix calling of free_irq with already free vector + - LP: #1333838 + * ip6_tunnel: fix potential NULL pointer dereference + - LP: #1333838 + * net: filter: x86: fix JIT address randomization + - LP: #1333838 + * net: filter: s390: fix JIT address randomization + - LP: #1333838 + * ipv6: fix calculation of option len in ip6_append_data + - LP: #1333838 + * rtnetlink: wait for unregistering devices in rtnl_link_unregister() + - LP: #1333838 + * net: gro: make sure skb->cb[] initial content has not to be zero + - LP: #1333838 + * batman-adv: fix reference counting imbalance while sending fragment + - LP: #1333838 + * batman-adv: increase orig refcount when storing ref in gw_node + - LP: #1333838 + * batman-adv: fix local TT check for outgoing arp requests in DAT + - LP: #1333838 + * ip_tunnel: Initialize the fallback device properly + - LP: #1333838 + * ipv4: initialise the itag variable in __mkroute_input + - LP: #1333838 + * net-gro: reset skb->truesize in napi_reuse_skb() + - LP: #1333838 + * netfilter: ipv4: defrag: set local_df flag on defragmented skb + - LP: #1333838 + * ima: introduce ima_kernel_read() + - LP: #1333838 + * ima: audit log files opened with O_DIRECT flag + - LP: #1333838 + * percpu: make pcpu_alloc_chunk() use pcpu_mem_free() instead of kfree() + - LP: #1333838 + * workqueue: fix bugs in wq_update_unbound_numa() failure path + - LP: #1333838 + * [media] fc2580: fix tuning failure on 32-bit arch + - LP: #1333838 + * memory: mvebu-devbus: fix the conversion of the bus width + - LP: #1333838 + * ARM: orion5x: fix target ID for crypto SRAM window + - LP: #1333838 + * workqueue: make rescuer_thread() empty wq->maydays list before exiting + - LP: #1333838 + * workqueue: fix a possible race condition between rescuer and + pwq-release + - LP: #1333838 + * spi: core: Ignore unsupported Dual/Quad Transfer Mode bits + - LP: #1333838 + * device_cgroup: rework device access check and exception checking + - LP: #1333838 + * PCI: mvebu: fix off-by-one in the computed size of the mbus windows + - LP: #1333838 + * bus: mvebu-mbus: allow several windows with the same target/attribute + - LP: #1333838 + * PCI: mvebu: split PCIe BARs into multiple MBus windows when needed + - LP: #1333838 + * ARM: mvebu: fix NOR bus-width in Armada XP GP Device Tree + - LP: #1333838 + * ARM: mvebu: fix NOR bus-width in Armada XP DB Device Tree + - LP: #1333838 + * ARM: mvebu: fix NOR bus-width in Armada XP OpenBlocks AX3 Device Tree + - LP: #1333838 + * crypto: caam - add allocation failure handling in SPRINTFCAT macro + - LP: #1333838 + * ARM: common: edma: Fix xbar mapping + - LP: #1333838 + * clk: Fix double free due to devm_clk_register() + - LP: #1333838 + * [media] media-device: fix infoleak in ioctl media_enum_entities() + - LP: #1333838 + * ARM: dts: kirkwood: fix mislocated pcie-controller nodes + - LP: #1333838 + * device_cgroup: check if exception removal is allowed + - LP: #1333838 + * md: avoid possible spinning md thread at shutdown. + - LP: #1333838 + * ACPI: Remove Kconfig symbol ACPI_PROCFS + - LP: #1333838 + * ACPI: Revert "ACPI: Remove CONFIG_ACPI_PROCFS_POWER and cm_sbsc.c" + - LP: #1333838 + * ACPI: Revert "ACPI / Battery: Remove battery's proc directory" + - LP: #1333838 + * NFSd: Move default initialisers from create_client() to alloc_client() + - LP: #1333838 + * NFSd: call rpc_destroy_wait_queue() from free_client() + - LP: #1333838 + * genirq: Provide irq_force_affinity fallback for non-SMP + - LP: #1333838 + * libata: clean up ZPODD when a port is detached + - LP: #1333838 + * ACPI / blacklist: Add dmi_enable_osi_linux quirk for Asus EEE PC 1015PX + - LP: #1333838 + * ACPI: Revert "ACPI / AC: convert ACPI ac driver to platform bus" + - LP: #1333838 + * ACPI / processor: do not mark present at boot but not onlined CPU as + onlined + - LP: #1333838 + * NFSD: Call ->set_acl with a NULL ACL structure if no entries + - LP: #1333838 + * ALSA: hda - add headset mic detect quirks for three Dell laptops + - LP: #1297581, #1333838 + * gpio: mcp23s08: Bug fix of SPI device tree registration. + - LP: #1333838 + * drm/i915/vlv: reset VLV media force wake request register + - LP: #1333838 + * ARM: dts: i.MX53: Fix ipu register space size + - LP: #1333838 + * mm, thp: close race between mremap() and split_huge_page() + - LP: #1333838 + * intel_pstate: Set turbo VID for BayTrail + - LP: #1333838 + * powerpc/powernv: Reset root port in firmware + - LP: #1333838 + * hrtimer: Set expiry time before switch_hrtimer_base() + - LP: #1333838 + * hwmon: (emc1403) fix inverted store_hyst() + - LP: #1333838 + * hwmon: (emc1403) Fix resource leak on module unload + - LP: #1333838 + * hwmon: (emc1403) Support full range of known chip revision numbers + - LP: #1333838 + * iommu/amd: Fix interrupt remapping for aliased devices + - LP: #1333838 + * ASoC: wm8962: Update register CLASS_D_CONTROL_1 to be non-volatile + - LP: #1333838 + * [media] V4L2: ov7670: fix a wrong index, potentially Oopsing the kernel + from user-space + - LP: #1333838 + * [media] V4L2: fix VIDIOC_CREATE_BUFS in 64- / 32-bit compatibility mode + - LP: #1333838 + * x86, mm, hugetlb: Add missing TLB page invalidation for hugetlb_cow() + - LP: #1333838 + * i2c: designware: Mask all interrupts during i2c controller enable + - LP: #1333838 + * i2c: s3c2410: resume race fix + - LP: #1333838 + * i2c: rcar: bail out on zero length transfers + - LP: #1333838 + * dm crypt: fix cpu hotplug crash by removing per-cpu structure + - LP: #1333838 + * metag: fix memory barriers + - LP: #1333838 + * metag: Reduce maximum stack size to 256MB + - LP: #1333838 + * drm/i915: restore backlight precision when converting from ACPI + - LP: #1333838 + * drm/i915: Increase WM memory latency values on SNB + - LP: #1333838 + * PCI: shpchp: Check bridge's secondary (not primary) bus speed + - LP: #1333838 + * parisc: ratelimit userspace segfault printing + - LP: #1333838 + * parisc: Improve LWS-CAS performance + - LP: #1333838 + * Target/iser: Fix wrong connection requests list addition + - LP: #1333838 + * Target/iser: Fix iscsit_accept_np and rdma_cm racy flow + - LP: #1333838 + * iscsi-target: Change BUG_ON to REJECT in iscsit_process_nop_out + - LP: #1333838 + * tcm_fc: Fix free-after-use regression in ft_free_cmd + - LP: #1333838 + * target: Don't allow setting WC emulation if device doesn't support + - LP: #1333838 + * arm: dts: Fix missing device_type="memory" for ste-ccu8540 + - LP: #1333838 + * mips: dts: Fix missing device_type="memory" property in memory nodes + - LP: #1333838 + * arm64: fix pud_huge() for 2-level pagetables + - LP: #1333838 + * libceph: fix corruption when using page_count 0 page in rbd + - LP: #1333838 + * clk: tegra: use pll_ref as the pll_e parent + - LP: #1333838 + * clk: tegra: Fix wrong value written to PLLE_AUX + - LP: #1333838 + * target: fix memory leak on XCOPY + - LP: #1333838 + * sysfs: make sure read buffer is zeroed + - LP: #1333838 + * cfg80211: free sme on connection failures + - LP: #1333838 + * sched: Sanitize irq accounting madness + - LP: #1333838 + * sched: Use CPUPRI_NR_PRIORITIES instead of MAX_RT_PRIO in cpupri check + - LP: #1333838 + * mac80211: fix suspend vs. association race + - LP: #1333838 + * mac80211: fix on-channel remain-on-channel + - LP: #1333838 + * af_iucv: wrong mapping of sent and confirmed skbs + - LP: #1333838 + * perf: Limit perf_event_attr::sample_period to 63 bits + - LP: #1333838 + * perf: Prevent false warning in perf_swevent_add + - LP: #1333838 + * drm/gf119-/disp: fix nasty bug which can clobber SOR0's clock setup + - LP: #1333838 + * drm/radeon: also try GART for CPU accessed buffers + - LP: #1333838 + * drm/radeon: handle non-VGA class pci devices with ATRM + - LP: #1333838 + * drm/radeon: fix register typo on si + - LP: #1333838 + * drm/radeon: avoid segfault on device open when accel is not working. + - LP: #1333838 + * drm/radeon/pm: don't allow debugfs/sysfs access when PX card is off + (v2) + - LP: #1333838 + * can: peak_pci: prevent use after free at netdev removal + - LP: #1333838 + * nfsd4: remove lockowner when removing lock stateid + - LP: #1333838 + * nfsd4: warn on finding lockowner without stateid's + - LP: #1333838 + * dma: mv_xor: Flush descriptors before activating a channel + - LP: #1333838 + * dmaengine: fix dmaengine_unmap failure + - LP: #1333838 + * hwpoison, hugetlb: lock_page/unlock_page does not match for handling a + free hugepage + - LP: #1333838 + * mm/memory-failure.c: fix memory leak by race between poison and + unpoison + - LP: #1333838 + * ARM: OMAP3: clock: Back-propagate rate change from cam_mclk to dpll4_m5 + on all OMAP3 platforms + - LP: #1333838 + * dmaengine: dw: went back to plain {request,free}_irq() calls + - LP: #1333838 + * ARM: omap5: hwmod_data: Correct IDLEMODE for McPDM + - LP: #1333838 + * Input: synaptics - add min/max quirk for the ThinkPad W540 + - LP: #1333838 + * ARM: OMAP2+: nand: Fix NAND on OMAP2 and OMAP3 boards + - LP: #1333838 + * futex: Add another early deadlock detection check + - LP: #1333838 + * futex: Prevent attaching to kernel threads + - LP: #1333838 + * ARM: OMAP4: Fix the boot regression with CPU_IDLE enabled + - LP: #1333838 + * cpufreq: remove race while accessing cur_policy + - LP: #1333838 + * cpufreq: cpu0: drop wrong devm usage + - LP: #1333838 + * ARM: imx: fix error handling in ipu device registration + - LP: #1333838 + * ALSA: hda - Fix onboard audio on Intel H97/Z97 chipsets + - LP: #1333838 + * ARM: 8051/1: put_user: fix possible data corruption in put_user + - LP: #1333838 + * ARM: 8064/1: fix v7-M signal return + - LP: #1333838 + * Input: synaptics - T540p - unify with other LEN0034 models + - LP: #1333838 + * drm/i915: Only copy back the modified fields to userspace from + execbuffer + - LP: #1333838 + * dm cache: always split discards on cache block boundaries + - LP: #1333838 + * virtio_blk: don't crash, report error if virtqueue is broken. + - LP: #1333838 + * virtio_blk: fix race between start and stop queue + - LP: #1333838 + * powerpc: Fix 64 bit builds with binutils 2.24 + - LP: #1333838 + * powerpc, kexec: Fix "Processor X is stuck" issue during kexec from ST + mode + - LP: #1333838 + * rtmutex: Fix deadlock detector for real + - LP: #1333838 + * drm/radeon: avoid crash if VM command submission isn't available + - LP: #1333838 + * drm/radeon: don't allow RADEON_GEM_DOMAIN_CPU for command submission + - LP: #1333838 + * iwlwifi: mvm: fix setting channel in monitor mode + - LP: #1333838 + * Staging: speakup: Move pasting into a work item + - LP: #1333838 + * USB: Avoid runtime suspend loops for HCDs that can't handle + suspend/resume + - LP: #1333838 + * can: only rename enabled led triggers when changing the netdev name + - LP: #1333838 + * USB: io_ti: fix firmware download on big-endian machines (part 2) + - LP: #1333838 + * USB: ftdi_sio: add NovaTech OrionLXm product ID + - LP: #1333838 + * USB: serial: option: add support for Novatel E371 PCIe card + - LP: #1333838 + * USB: cdc-wdm: properly include types.h + - LP: #1333838 + * md: always set MD_RECOVERY_INTR when aborting a reshape or other + "resync". + - LP: #1333838 + * xhci: delete endpoints from bandwidth list before freeing whole device + - LP: #1333838 + * md: always set MD_RECOVERY_INTR when interrupting a reshape thread. + - LP: #1333838 + * ALSA: hda/analog - Fix silent output on ASUS A8JN + - LP: #1333838 + * drm/radeon/dpm: resume fixes for some systems + - LP: #1333838 + * drm/radeon: use the CP DMA on CIK + - LP: #1333838 + * ALSA: hda/realtek - Correction of fixup codes for PB V7900 laptop + - LP: #1333838 + * ALSA: hda/realtek - Fix COEF widget NID for ALC260 replacer fixup + - LP: #1333838 + * iser-target: Add missing target_put_sess_cmd for ImmedateData failure + - LP: #1333838 + * iscsi-target: Fix wrong buffer / buffer overrun in + iscsi_change_param_value() + - LP: #1333838 + * percpu-refcount: fix usage of this_cpu_ops + - LP: #1333838 + * target: Fix alua_access_state attribute OOPs for un-configured devices + - LP: #1333838 + * mm: rmap: fix use-after-free in __put_anon_vma + - LP: #1333838 + * mm: add !pte_present() check on existing hugetlb_entry callbacks + - LP: #1333838 + * target: Fix NULL pointer dereference for XCOPY in target_put_sess_cmd + - LP: #1333838 + * Linux 3.13.11.4 + - LP: #1333838 + * powerpc/powernv: Infrastructure to read opal messages in generic + format. + - LP: #1334268 + * powerpc/powernv: Infrastructure to support OPAL async completion + - LP: #1334268 + * powerpc/powernv: Enable fetching of platform sensor data + - LP: #1334268 + * powerpc/powernv: Fix endian issues with sensor code + - LP: #1334268 + * powerpc/powernv: Add OPAL message log interface + - LP: #1334268 + * powerpc/powernv: Fix kexec races going back to OPAL + - LP: #1334268 + * powerpc/powernv: Fix little endian issues in OPAL flash code + - LP: #1334268 + * powerpc/powernv: Fix little endian issues with opal_do_notifier calls + - LP: #1334268 + * powerpc/powernv: Fix little endian issues in OPAL error log code + - LP: #1334268 + * powerpc/powernv: Create OPAL sglist helper functions and fix endian + issues + - LP: #1334268 + * powerpc/powernv: Fix little endian issues in OPAL dump code + - LP: #1334268 + * powerpc: Fix error return in rtas_flash module init + - LP: #1334268 + * powerpc/powernv: Increase candidate fw image size + - LP: #1334268 + * powerpc/powernv: Return secondary CPUs to firmware before FW update + - LP: #1334268 + * powerpc/powernv: Pass buffer size to OPAL validate flash call + - LP: #1334268 + * gpio: add a driver for the Synopsys DesignWare APB GPIO block + - LP: #1334823 + * gpio: dwapb: drop irq_setup_generic_chip() + - LP: #1334823 + * gpio: dwapb: use a second irq chip + - LP: #1334823 + * lzo: properly check for overruns + - LP: #1335313 + - CVE-2014-4608 + * lz4: ensure length does not wrap + - LP: #1335314 + - CVE-2014-4611 + * netfilter: nf_nat: fix oops on netns removal + - LP: #1314274 + * ALSA: hda - add device ID for Broadwell display audio controller + - LP: #1188091 + * ALSA: hda - add codec ID for Broadwell display audio codec + - LP: #1188091 + * ALSA: hda/hdmi - apply all Haswell fix-ups to Broadwell display codec + - LP: #1188091 + * ALSA: hda - using POS_FIX_LPIB on Broadwell HDMI Audio + - LP: #1188091 + + -- Luis Henriques Tue, 01 Jul 2014 15:10:43 +0100 + +linux (3.13.0-30.55) trusty; urgency=low + + [ Upstream Kernel Changes ] + + * x86_64,ptrace: Enforce RIP <= TASK_SIZE_MAX (CVE-2014-4699) + - LP: #1337339 + - CVE-2014-4699 + + -- Luis Henriques Thu, 03 Jul 2014 16:15:57 +0100 + +linux (3.13.0-30.54) trusty; urgency=low + + [ Adam Conrad ] + + * [Config] Enable building the sata-modules udeb on ppc64el. + - LP: #1323980 + + [ Anton Blanchard ] + + * SAUCE: (no-up) powerpc: 64bit sendfile is capped at 2GB + - LP: #1328230 + + [ Ben Widawsky ] + + * SAUCE: i915_bdw: drm/i915: Fix PSR programming + - LP: #1321729 + * SAUCE: i915_bdw: drm/i915: Correct PPGTT total size + - LP: #1321729 + + [ Chris Wilson ] + + * SAUCE: i915_bdw: drm/i915: Broadwell expands ACTHD to 64bit + - LP: #1321729 + + [ Damien Lespiau ] + + * SAUCE: i915_bdw: drm/i915/bdw: Implement + Wa4x4STCOptimizationDisable:bdw + - LP: #1321729 + + [ Dave Chiluk ] + + * [Config] Enable CONFIG_IP_VS_IPV6=y + - LP: #1300739 + + [ Kamal Mostafa ] + + * [Config] add debian/gbp.conf + * Release Tracking Bug + - LP: #1328286 + + [ Mika Kuoppala ] + + * SAUCE: i915_bdw: drm/i915: add render state initialization + - LP: #1321729 + + [ Paulo Zanoni ] + + * SAUCE: i915_bdw: drm/i915: fix assert_cursor on BDW + - LP: #1321729 + + [ Steven Rostedt ] + + * SAUCE: i915_bdw: drm/i915: Do not dereference pointers from ring buffer + in evict event + - LP: #1321729 + + [ Tim Gardner ] + + * [Config] CONFIG_POWERNV_CPUFREQ=y for ppc64el + - LP: #1324571 + * [Debian] Treat vdso install as an environment variable + * [Config] Treat vdso install as an environment variable + * [Config] CONFIG_MLX4_DEBUG=y + - LP: #1328256 + * [Config] CONFIG_I40EVF=m, CONFIG_I40E_DCB=y, CONFIG_I40E_VXLAN=y + - LP: #1328037 + + [ Timo Aaltonen ] + + * SAUCE: i915_bdw: Rebase to drm-intel-next-2014-03-07 + fixes + - LP: #1321729 + * SAUCE: i915_bdw: Add BDW specific power well calls + - LP: #1317865 + + [ Upstream Kernel Changes ] + + * drm: expose subpixel order name routine v3 + * drm: dp helper: Add DP test sink CRC definition. + * drm: export cmdline and preferred mode functions from fb helper + * hugetlb: ensure hugepage access is denied if hugepages are not + supported + - LP: #1328251 + * powerpc/powernv: Move SG list structure to header file + - LP: #1326015 + * powerpc/powernv: Read OPAL error log and export it through sysfs + - LP: #1326015 + * powerpc/powernv Platform dump interface + - LP: #1326015 + * pci_regs.h: Add PCI bus link speed and width defines + - LP: #1328037 + * net_tstamp: Add SIOCGHWTSTAMP ioctl to match SIOCSHWTSTAMP + - LP: #1328037 + * PCI/MSI: Add pci_enable_msi_range() and pci_enable_msix_range() + - LP: #1328037 + * net: Change skb_get_rxhash to skb_get_hash + - LP: #1328037 + * net: Add utility functions to clear rxhash + - LP: #1328037 + * net: Add function to set the rxhash + - LP: #1328037 + * i40e: set pf_id based on device and function numbers + - LP: #1328037 + * i40e: register file updates + - LP: #1328037 + * i40e: clear AQ head and tail registers + - LP: #1328037 + * i40e: simplify aq head-tail-len setups + - LP: #1328037 + * i40e: firmware version fields offsets update + - LP: #1328037 + * i40e: allow one more vector for VFs + - LP: #1328037 + * i40e: select reset counters correctly + - LP: #1328037 + * i40e: retry call on timeout + - LP: #1328037 + * i40e: properly add VF MAC addresses + - LP: #1328037 + * i40e: fix debugging messages + - LP: #1328037 + * i40e: default debug mask setting + - LP: #1328037 + * i40e: add interrupt test + - LP: #1328037 + * i40e: add support for triggering EMPR + - LP: #1328037 + * i40e: restrict diag test length + - LP: #1328037 + * i40e: sync header files with hardware + - LP: #1328037 + * i40e: separate TSYNVALID and TSYNINDX fields in Rx descriptor + - LP: #1328037 + * i40e: check multi-bit state correctly + - LP: #1328037 + * i40e: get media type during link info + - LP: #1328037 + * i40e: Add flag for L2 VEB filtering + - LP: #1328037 + * i40e: enable early hardware support + - LP: #1328037 + * i40e: whitespace + - LP: #1328037 + * i40e: Bump version + - LP: #1328037 + * i40e: refactor reset code + - LP: #1328037 + * i40e: Enable all PCTYPEs except FCOE for RSS. + - LP: #1328037 + * i40e: only set up the rings to be used + - LP: #1328037 + * i40e: clear test state bit after all ethtool tests + - LP: #1328037 + * i40e: refactor ethtool tests + - LP: #1328037 + * i40e: add num_VFs message + - LP: #1328037 + * i40e: Add a new variable to track number of pf instances + - LP: #1328037 + * i40e: restrict diag test messages + - LP: #1328037 + * i40e: loopback info and set loopback fix + - LP: #1328037 + * i40e: complain about out-of-range descriptor request + - LP: #1328037 + * i40e: remove and fix confusing define name + - LP: #1328037 + * i40e: Bump version number + - LP: #1328037 + * i40e: fix up some of the ethtool connection reporting + - LP: #1328037 + * i40e: fix pf reset after offline test + - LP: #1328037 + * i40e: Tell the stack about our actual number of queues + - LP: #1328037 + * i40e: init flow control settings to disabled + - LP: #1328037 + * i40e: trivial fixes + - LP: #1328037 + * i40e: use same number of queues as CPUs + - LP: #1328037 + * i40e: reinit flow for the main VSI + - LP: #1328037 + * i40e: function to reconfigure RSS queues and rebuild + - LP: #1328037 + * i40e: Add basic support for get/set channels for RSS + - LP: #1328037 + * i40e: rtnl_lock in reset path fixes + - LP: #1328037 + * i40e: support for suspend and resume + - LP: #1328037 + * i40e: Remove FCoE in i40e_virtchnl_pf.c code + - LP: #1328037 + * i40e: Fix dump output from debugfs calls + - LP: #1328037 + * i40e: prevent null pointer exception in dump descriptor + - LP: #1328037 + * i40e: simplify error messages for dump descriptor + - LP: #1328037 + * i40e: fix up scanf decoders + - LP: #1328037 + * i40e: more print_hex_dump use + - LP: #1328037 + * i40e: Fix wrong mask bits being used in misc interrupt + - LP: #1328037 + * i40e: Bump version number + - LP: #1328037 + * i40e: Fix off by one in i40e_dbg_command_write + - LP: #1328037 + * i40e: make functions static and remove dead code + - LP: #1328037 + * i40evf: main driver core + - LP: #1328037 + * i40evf: transmit and receive functionality + - LP: #1328037 + * i40evf: core ethtool functionality + - LP: #1328037 + * i40evf: virtual channel interface + - LP: #1328037 + * i40evf: driver core headers + - LP: #1328037 + * i40evf: init code and hardware support + - LP: #1328037 + * i40evf: add driver to kernel build system + - LP: #1328037 + * i40evf: A0 silicon specific + - LP: #1328037 + * i40e: using for_each_set_bit to simplify the code + - LP: #1328037 + * i40e: Suppress HMC error to Interrupt message level + - LP: #1328037 + * i40e: Populate and check pci bus speed and width + - LP: #1328037 + * i40e: add wake-on-lan support + - LP: #1328037 + * i40e: fix curly brace use and return type + - LP: #1328037 + * i40e: Implementation of VXLAN ndo's + - LP: #1328037 + * i40e: Rx checksum offload for VXLAN + - LP: #1328037 + * i40e: move i40e_reset_vf + - LP: #1328037 + * i40e: refactor VF reset flow + - LP: #1328037 + * i40e: remove redundant code + - LP: #1328037 + * i40e: remove chatty log messages + - LP: #1328037 + * i40e: fix error return + - LP: #1328037 + * i40e: be more informative + - LP: #1328037 + * i40e: make a define from a large constant + - LP: #1328037 + * i40e: update led set args + - LP: #1328037 + * i40e: report VF MAC addresses correctly + - LP: #1328037 + * i40e: Dump the whole NVM, not half + - LP: #1328037 + * i40e: fix mac address checking + - LP: #1328037 + * i40e: Change the ethtool NVM read method to use AQ + - LP: #1328037 + * i40e: fix constant cast issues + - LP: #1328037 + * i40e: guard against vf message races + - LP: #1328037 + * i40e: add header file flag _I40E_TXRX_H_ + - LP: #1328037 + * i40e: use functions to enable and disable icr 0 + - LP: #1328037 + * i40e: reinit buffer size each time + - LP: #1328037 + * i40e: fix error handling when alloc of vsi array fails + - LP: #1328037 + * i40e: keep allocated memory in structs + - LP: #1328037 + * i40e: catch unset q_vector + - LP: #1328037 + * i40e: Fix ring allocation + - LP: #1328037 + * i40e: I40E_FLAG_MQ_ENABLED is not used + - LP: #1328037 + * i40e: Remove unnecessary prototypes + - LP: #1328037 + * i40e: remove un-necessary io-write + - LP: #1328037 + * i40e: Record dma buffer info for dummy packets + - LP: #1328037 + * i40e: Fix SR-IOV VF port VLAN + - LP: #1328037 + * i40e: fix whitespace + - LP: #1328037 + * i40e: avoid unnecessary register read + - LP: #1328037 + * i40e: Do not enable default port on the VEB + - LP: #1328037 + * i40e: use struct assign instead of memcpy + - LP: #1328037 + * i40e: don't allocate zero size + - LP: #1328037 + * i40e: acknowledge VFLR when disabling SR-IOV + - LP: #1328037 + * i40e: support VFs on PFs other than 0 + - LP: #1328037 + * i40e: Fix VF driver MAC address configuration + - LP: #1328037 + * i40e: use correct struct for get and update vsi params + - LP: #1328037 + * i40e: Hide the Port VLAN VLAN ID + - LP: #1328037 + * i40e: Admin queue shutdown fixes + - LP: #1328037 + * i40e: check asq alive before notify + - LP: #1328037 + * i40e: Do not allow AQ calls from ndo-ops + - LP: #1328037 + * i40e: Expose AQ debugfs hooks + - LP: #1328037 + * i40e: Do not enable broadcast promiscuous by default + - LP: #1328037 + * i40e: Stop accepting any VLAN tag on VLAN 0 filter set + - LP: #1328037 + * i40e: Allow VF to set already assigned MAC address + - LP: #1328037 + * i40e: Bump version + - LP: #1328037 + * i40e: Add code to wait for FW to complete in reset path + - LP: #1328037 + * i40e: update firmware api to 1.1 + - LP: #1328037 + * i40e: Reduce range of interrupt reg in reg test + - LP: #1328037 + * i40e: move PF ID init from PF reset to SC init + - LP: #1328037 + * i40e: check MAC type before any REG access + - LP: #1328037 + * i40e: rework shadow ram read functions + - LP: #1328037 + * i40e: whitespace paren and comment tweaks + - LP: #1328037 + * i40e: Enable/Disable PF switch LB on SR-IOV configure changes + - LP: #1328037 + * i40e: remove redundant AQ enable + - LP: #1328037 + * i40e: correctly setup ARQ descriptors + - LP: #1328037 + * i40e: Re-enable interrupt on ICR0 + - LP: #1328037 + * i40e: use kernel specific defines + - LP: #1328037 + * i40e: Fix GPL header + - LP: #1328037 + * i40e: Fix MAC format in Write MAC address AQ cmd + - LP: #1328037 + * i40e: add a comment on barrier and fix panic on reset + - LP: #1328037 + * i40e: disable packet split + - LP: #1328037 + * i40e: Cleanup reconfig rss path + - LP: #1328037 + * i40e: release NVM resource reservation on startup + - LP: #1328037 + * i40e: remove interrupt on AQ error + - LP: #1328037 + * i40e: accept pf to pf adminq messages + - LP: #1328037 + * i40e: shorten wordy fields + - LP: #1328037 + * i40e: trivial: formatting and checkpatch fixes + - LP: #1328037 + * i40e: fix spelling errors + - LP: #1328037 + * i40e: Add a dummy packet template + - LP: #1328037 + * i40e: Turn flow director off in MFP mode + - LP: #1328037 + * i40e: use assignment instead of memcpy + - LP: #1328037 + * i40e: drop unused macros + - LP: #1328037 + * i40e: Update the Current NVM version Low value + - LP: #1328037 + * i40e: Bump version + - LP: #1328037 + * i40e: fix long lines + - LP: #1328037 + * i40e: Cleanup Doxygen warnings + - LP: #1328037 + * i40e: Setting queue count to 1 using ethtool is valid + - LP: #1328037 + * i40e: do not bail when disabling if Tx queue disable fails + - LP: #1328037 + * i40e: allow VF to remove any MAC filter + - LP: #1328037 + * i40e: check for possible incorrect ipv6 checksum + - LP: #1328037 + * i40e: adjust ITR max and min values + - LP: #1328037 + * i40e: clear qtx_head before enabling Tx queue + - LP: #1328037 + * i40e: call clear_pxe after adminq is initialized + - LP: #1328037 + * i40e: enable PTP + - LP: #1328037 + * i40e: fix log message wording + - LP: #1328037 + * i40e: Bump version + - LP: #1328037 + * i40evf: fix s390 build failure due to implicit prefetch.h + - LP: #1328037 + * i40e: remove extra register write + - LP: #1328037 + * i40e: associate VMDq queue with VM type + - LP: #1328037 + * i40e: make message meaningful + - LP: #1328037 + * i40e: whitespace fixes + - LP: #1328037 + * i40e: trivial cleanup + - LP: #1328037 + * i40e: Bump version number + - LP: #1328037 + * i40e: Warn admin to reload VF driver on port VLAN configuration + - LP: #1328037 + * i40e: Retain MAC filters on port VLAN deletion + - LP: #1328037 + * i40e: Remove autogenerated Module.symvers file. + - LP: #1328037 + * i40e: check desc pointer before printing + - LP: #1328037 + * i40e: updates to AdminQ interface + - LP: #1328037 + * i40e: fix compile warning on checksum_local + - LP: #1328037 + * i40e: Change firmware workaround + - LP: #1328037 + * i40e: whitespace fixes + - LP: #1328037 + * i40e: rename defines + - LP: #1328037 + * i40e: refactor flow director + - LP: #1328037 + * i40e: implement DCB support infastructure + - LP: #1328037 + * i40e: add DCB and DCBNL support + - LP: #1328037 + * i40e: add DCB option to Kconfig + - LP: #1328037 + * i40e: Fix device ID define names to align to standard + - LP: #1328037 + * i40e: Add missing braces to i40e_dcb_need_reconfig() + - LP: #1328037 + * i40e: spelling error + - LP: #1328037 + * i40e: bump driver version + - LP: #1328037 + * i40evf: trivial fixes + - LP: #1328037 + * i40evf: clean up memsets + - LP: #1328037 + * i40e: Setting i40e_down bit for tx_timeout + - LP: #1328037 + * i40e: remove dead code + - LP: #1328037 + * i40e: set VF state to active when reset is complete + - LP: #1328037 + * i40e: reset VFs after PF reset + - LP: #1328037 + * i40e: enable extant VFs + - LP: #1328037 + * i40e: don't handle VF reset on unload + - LP: #1328037 + * i40evf: clean up adapter struct + - LP: #1328037 + * i40evf: fix bogus comment + - LP: #1328037 + * i40evf: don't store unnecessary array of strings + - LP: #1328037 + * i40evf: change type of flags variable + - LP: #1328037 + * i40evf: refactor reset handling + - LP: #1328037 + * net: i40evf: Remove duplicate include + - LP: #1328037 + * i40e: Use pci_enable_msix_range() instead of pci_enable_msix() + - LP: #1328037 + * i40evf: request reset on tx hang + - LP: #1328037 + * i40evf: remove VLAN filters on close + - LP: #1328037 + * i40evf: fix multiple crashes on remove + - LP: #1328037 + * i40evf: get rid of pci_using_dac + - LP: #1328037 + * i40evf: fix up strings in init task + - LP: #1328037 + * i40evf: remove bogus comment + - LP: #1328037 + * i40evf: don't guess device name + - LP: #1328037 + * i40evf: store ring size in ring structs + - LP: #1328037 + * i40evf: update version and copyright date + - LP: #1328037 + * i40evf: remove errant space + - LP: #1328037 + * i40e: remove unnecessary delay + - LP: #1328037 + * i40e: tighten up ring enable/disable flow + - LP: #1328037 + * i40e: Change MSIX to MSI-X + - LP: #1328037 + * i40e and i40evf: Bump driver versions + - LP: #1328037 + * i40evf: Enable the ndo_set_features netdev op + - LP: #1328037 + * i40e: Flow Director sideband accounting + - LP: #1328037 + * i40e: Prevent overflow due to kzalloc + - LP: #1328037 + * i40e/i40evf: i40e implementation for skb_set_hash + - LP: #1328037 + * i40e: clean up comment style + - LP: #1328037 + * i40e: Remove a FW workaround for Number of MSIX vectors + - LP: #1328037 + * i40e: count timeout events + - LP: #1328037 + * i40e: Remove a redundant filter addition + - LP: #1328037 + * i40e: Fix static checker warning + - LP: #1328037 + * i40e: fix nvm version and remove firmware report + - LP: #1328037 + * i40e/i40evf: carefully fill tx ring + - LP: #1328037 + * i40e/i40evf: Bump pf&vf build versions + - LP: #1328037 + * i40e: delete netdev after deleting napi and vectors + - LP: #1328037 + * i40e: Fix a bug in the update logic for FDIR SB filter. + - LP: #1328037 + * i40e/i40evf: Some flow director HW definition fixes + - LP: #1328037 + * i40e: make string references to q be queue + - LP: #1328037 + * i40e: cleanup strings + - LP: #1328037 + * i40e: simplified init string + - LP: #1328037 + * i40e: Fix function comments + - LP: #1328037 + * i40e: Define a new state variable to keep track of feature auto disable + - LP: #1328037 + * i40e: Add code to handle FD table full condition + - LP: #1328037 + * i40e: Bug fix for FDIR replay logic + - LP: #1328037 + * i40e: Let MDD events be handled by MDD handler + - LP: #1328037 + * i40e/i40evf: Use correct number of VF vectors + - LP: #1328037 + * i40e/i40evf: Use dma_set_mask_and_coherent + - LP: #1328037 + * net: Replace u64_stats_fetch_begin_bh to u64_stats_fetch_begin_irq + - LP: #1328037 + * i40e: Don't receive packets when the napi budget == 0 + - LP: #1328037 + * i40evf: Rename i40e_ptype_lookup i40evf_ptype_lookup + - LP: #1328037 + * net/i40e: Avoid double setting of NETIF_F_SG for the HW encapsulation + feature mask + - LP: #1328037 + * i40e: support VF link state ndo + - LP: #1328037 + * i40evf: correctly program RSS HLUT table + - LP: #1328037 + * i40evf: use min_t + - LP: #1328037 + * i40e: Patch to enable Ethtool/netdev feature flag for NTUPLE control + - LP: #1328037 + * i40e: Refactor and cleanup i40e_open(), adding i40e_vsi_open() + - LP: #1328037 + * i40e/i40evf: enable hardware feature head write back + - LP: #1328037 + * i40e/i40evf: reduce context descriptors + - LP: #1328037 + * i40e: potential array underflow in i40e_vc_process_vf_msg() + - LP: #1328037 + * i40e/i40evf: Bump build versions + - LP: #1328037 + * i40e/i40evf: Add EEE LPI stats + - LP: #1328037 + * i40e: Fix a message string + - LP: #1328037 + * i40evf: don't shut down admin queue on error + - LP: #1328037 + * i40evf: clean up init error messages + - LP: #1328037 + * i40e: Delete ATR filter on RST + - LP: #1328037 + * i40evf: fix oops in watchdog handler + - LP: #1328037 + * i40e: Make the alloc and free queue vector calls orthogonal + - LP: #1328037 + * i40e: eeprom integrity check on load and empr + - LP: #1328037 + * i40e: Cleanup in FDIR SB ethtool code + - LP: #1328037 + * i40e: Add functionality for FD SB to drop packets + - LP: #1328037 + * i40evf: remove double space after return + - LP: #1328037 + * i40e: check for netdev before debugfs use + - LP: #1328037 + * i40e/i40evf: Add an FD message level + - LP: #1328037 + * i40e: Use DEBUG_FD message level for an FD message + - LP: #1328037 + * i40e: fix function kernel doc description + - LP: #1328037 + * i40e/i40evf: fix error checking path + - LP: #1328037 + * i40e/i40evf: Remove addressof casts to same type + - LP: #1328037 + * i40e: Remove casts of pointer to same type + - LP: #1328037 + * i40evf: remove open-coded skb_cow_head + - LP: #1328037 + * i40evf: program RSS LUT correctly + - LP: #1328037 + * i40e: remove open-coded skb_cow_head + - LP: #1328037 + * i40e: fix TCP flag replication for hardware offload + - LP: #1328037 + * e1000e/igb/ixgbe/i40e: fix message terminations + - LP: #1328037 + * i40e: fix Timesync Tx interrupt handler code + - LP: #1328037 + * mm: use paravirt friendly ops for NUMA hinting ptes + - LP: #1313450 + + [ Ville Syrjälä ] + + * SAUCE: i915_bdw: drm/i915: Fix scanline counter fixup on BDW + - LP: #1321729 + + -- Kamal Mostafa Mon, 09 Jun 2014 15:09:43 -0700 + +linux (3.13.0-29.53) trusty; urgency=low + + [ Upstream Kernel Changes ] + + * futex-prevent-requeue-pi-on-same-futex.patch futex: Forbid uaddr == + uaddr2 in futex_requeue(..., requeue_pi=1) + - LP: #1326367 + - CVE-2014-3153 + * futex: Validate atomic acquisition in futex_lock_pi_atomic() + - LP: #1326367 + - CVE-2014-3153 + * futex: Always cleanup owner tid in unlock_pi + - LP: #1326367 + - CVE-2014-3153 + * futex: Make lookup_pi_state more robust + - LP: #1326367 + - CVE-2014-3153 + + -- Brad Figg Wed, 04 Jun 2014 08:25:41 -0700 + +linux (3.13.0-29.52) trusty; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - re-used previous tracking bug + + [ Adam Conrad ] + + * [Config] Normalize AHCI configs on powerpc/ppc64el with the rest of the + architectures + - LP: #1323980 + + [ Tanmay Inamdar ] + + * SAUCE: Add MSI/MSI-X driver for APM PCI bus + - LP: #1318977 + + -- Luis Henriques Wed, 28 May 2014 09:38:41 +0100 + +linux (3.13.0-28.51) trusty; urgency=low + + [ Luis Henriques ] + + * Release Tracking Bug + - LP: #1322112 + + [ Adam Lee ] + + * SAUCE: (no-up) rtlwifi: rtl8723be: disable MSI interrupts mode + - LP: #1310512, #1320070 + + [ Andy Whitcroft ] + + * [Packaging] ppc64el is a powerpc kernel arch and needs its quirks + - LP: #1318848 + + [ Ben Collins ] + + * [Config] Switch to grub-ieee1275 as recommended on book3e systems + - LP: #1318629 + + [ Upstream Kernel Changes ] + + * Revert "PCI: Enable INTx in pci_reenable_device() only when MSI/MSI-X + not enabled" + - LP: #1320946 + * Bluetooth: allocate static minor for vhci + - LP: #1317336 + * core, nfqueue, openvswitch: Orphan frags in skb_zerocopy and handle + errors + - LP: #1320946 + * __dentry_path() fixes + - LP: #1320946 + * drm/i915: quirk invert brightness for Acer Aspire 5336 + - LP: #1320946 + * w1: fix w1_send_slave dropping a slave id + - LP: #1320946 + * ARM: 7954/1: mm: remove remaining domain support from ARMv6 + - LP: #1320946 + * matroxfb: restore the registers M_ACCESS and M_PITCH + - LP: #1320946 + * framebuffer: fix cfb_copyarea + - LP: #1320946 + * mach64: use unaligned access + - LP: #1320946 + * mach64: fix cursor when character width is not a multiple of 8 pixels + - LP: #1320946 + * tgafb: fix mode setting with fbset + - LP: #1320946 + * tgafb: fix data copying + - LP: #1320946 + * hvc: ensure hvc_init is only ever called once in hvc_console.c + - LP: #1320946 + * ARM: dts: Keep G3D regulator always on for exynos5250-arndale + - LP: #1320946 + * PCI: mvebu: Fix potential issue in range parsing + - LP: #1320946 + * usb: dwc3: fix wrong bit mask in dwc3_event_devt + - LP: #1320946 + * x86, AVX-512: AVX-512 Feature Detection + - LP: #1320946 + * x86, AVX-512: Enable AVX-512 States Context Switch + - LP: #1320946 + * s390/cio: fix driver callback initialization for ccw consoles + - LP: #1320946 + * ARM: Fix default CPU selection for ARCH_MULTI_V5 + - LP: #1320946 + * omap3isp: preview: Fix the crop margins + - LP: #1320946 + * ACPICA: Restore code that repairs NULL package elements in return + values. + - LP: #1320946 + * media: gspca: sn9c20x: add ID for Genius Look 1320 V2 + - LP: #1320946 + * m88rs2000: add caps FE_CAN_INVERSION_AUTO + - LP: #1320946 + * m88rs2000: prevent frontend crash on continuous transponder scans + - LP: #1320946 + * mmc: sdhci-bcm-kona: fix build errors when built-in + - LP: #1320946 + * usb: musb: avoid NULL pointer dereference + - LP: #1320946 + * uvcvideo: Do not use usb_set_interface on bulk EP + - LP: #1320946 + * drm/i915: Don't clobber CHICKEN_PIPESL_1 on BDW + - LP: #1320946 + * usb: dwc3: fix randconfig build errors + - LP: #1320946 + * usb: gadget: atmel_usba: fix crashed during stopping when DEBUG is + enabled + - LP: #1320946 + * blktrace: fix accounting of partially completed requests + - LP: #1320946 + * rtlwifi: rtl8192cu: Fix too long disable of IRQs + - LP: #1320946 + * rtlwifi: rtl8192se: Fix too long disable of IRQs + - LP: #1320946 + * rtlwifi: rtl8188ee: Fix too long disable of IRQs + - LP: #1320946 + * rtlwifi: rtl8723ae: Fix too long disable of IRQs + - LP: #1320946 + * xhci: Prevent runtime pm from autosuspending during initialization + - LP: #1320946 + * staging:serqt_usb2: Fix sparse warning restricted __le16 degrades to + integer + - LP: #1320946 + * mtd: atmel_nand: Disable subpage NAND write when using Atmel PMECC + - LP: #1320946 + * iwlwifi: dvm: take mutex when sending SYNC BT config command + - LP: #1320946 + * virtio_balloon: don't softlockup on huge balloon changes. + - LP: #1320946 + * arm64: Make DMA coherent and strongly ordered mappings not executable + - LP: #1320946 + * arm64: Do not synchronise I and D caches for special ptes + - LP: #1320946 + * ARM: OMAP2+: INTC: Acknowledge stuck active interrupts + - LP: #1320946 + * ARM: dts: am33xx: correcting dt node unit address for usb + - LP: #1320946 + * mtip32xx: Set queue bounce limit + - LP: #1320946 + * mtip32xx: Unmap the DMA segments before completing the IO request + - LP: #1320946 + * mtip32xx: mtip_async_complete() bug fixes + - LP: #1320946 + * ath9k: fix ready time of the multicast buffer queue + - LP: #1320946 + * KVM: s390: Optimize ucontrol path + - LP: #1320946 + * mei: fix memory leak of pending write cb objects + - LP: #1320946 + * usb: gadget: tcm_usb_gadget: stop format strings + - LP: #1320946 + * usb: phy: Add ulpi IDs for SMSC USB3320 and TI TUSB1210 + - LP: #1320946 + * USB: unbind all interfaces before rebinding any + - LP: #1320946 + * IB/ipath: Fix potential buffer overrun in sending diag packet routine + - LP: #1320946 + * IB/qib: Fix debugfs ordering issue with multiple HCAs + - LP: #1320946 + * IB/qib: add missing braces in do_qib_user_sdma_queue_create() + - LP: #1320946 + * IB/nes: Return an error on ib_copy_from_udata() failure instead of NULL + - LP: #1320946 + * ALSA: hda/realtek - Restore default value for ALC283 + - LP: #1320946 + * mfd: sec-core: Fix possible NULL pointer dereference when i2c_new_dummy + error + - LP: #1320946 + * regulator: arizona-ldo1: Correct default regulator init_data + - LP: #1320946 + * ASoC: cs42l73: Fix mask bits for SOC_VALUE_ENUM_SINGLE + - LP: #1320946 + * ASoC: cs42l52: Fix mask bits for SOC_VALUE_ENUM_SINGLE + - LP: #1320946 + * drm/i915: Do not dereference pointers from ring buffer in evict event + - LP: #1320946 + * mfd: Include all drivers in subsystem menu + - LP: #1320946 + * mfd: max8997: Fix possible NULL pointer dereference on i2c_new_dummy + error + - LP: #1320946 + * mfd: max77686: Fix possible NULL pointer dereference on i2c_new_dummy + error + - LP: #1320946 + * mfd: max8998: Fix possible NULL pointer dereference on i2c_new_dummy + error + - LP: #1320946 + * mfd: max8925: Fix possible NULL pointer dereference on i2c_new_dummy + error + - LP: #1320946 + * mfd: 88pm860x: Fix I2C device resource leak on regmap init fail + - LP: #1320946 + * mfd: 88pm860x: Fix possible NULL pointer dereference on i2c_new_dummy + error + - LP: #1320946 + * mfd: max77693: Fix possible NULL pointer dereference on i2c_new_dummy + error + - LP: #1320946 + * mfd: 88pm800: Fix I2C device resource leak if probe fails + - LP: #1320946 + * mfd: tps65910: Fix possible invalid pointer dereference on + regmap_add_irq_chip fail + - LP: #1320946 + * MIPS: KVM: Pass reserved instruction exceptions to guest + - LP: #1320946 + * ASoC: cs42l51: Fix SOC_DOUBLE_R_SX_TLV shift values for ADC, PCM, and + Analog kcontrols + - LP: #1320946 + * mac80211: fix potential use-after-free + - LP: #1320946 + * mac80211: fix suspend vs. authentication race + - LP: #1320946 + * mac80211: fix WPA with VLAN on AP side with ps-sta again + - LP: #1320946 + * pid: get pid_t ppid of task in init_pid_ns + - LP: #1320946 + * audit: restore order of tty and ses fields in log output + - LP: #1320946 + * audit: convert PPIDs to the inital PID namespace. + - LP: #1320946 + * mfd: kempld-core: Fix potential hang-up during boot + - LP: #1320946 + * drm/i915: Fix unsafe loop iteration over vma whilst unbinding them + - LP: #1320946 + * powerpc/compat: 32-bit little endian machine name is ppcle, not ppc + - LP: #1320946 + * clk: s2mps11: Fix possible NULL pointer dereference + - LP: #1320946 + * spi: efm32: use $vendor,$device scheme for compatible string + - LP: #1320946 + * ALSA: hda - add headset mic detect quirks for three Dell laptops + - LP: #1297581, #1320946 + * KVM: PPC: Book3S HV: Fix KVM hang with CONFIG_KVM_XICS=n + - LP: #1320946 + * gpio: mxs: Allow for recursive enable_irq_wake() call + - LP: #1320946 + * nfsd4: buffer-length check for SUPPATTR_EXCLCREAT + - LP: #1320946 + * nfsd4: session needs room for following op to error out + - LP: #1320946 + * nfsd4: leave reply buffer space for failed setattr + - LP: #1320946 + * nfsd4: fix test_stateid error reply encoding + - LP: #1320946 + * nfsd: notify_change needs elevated write count + - LP: #1320946 + * dm cache: prevent corruption caused by discard_block_size > + cache_block_size + - LP: #1320946 + * dm transaction manager: fix corruption due to non-atomic transaction + commit + - LP: #1320946 + * dm: take care to copy the space map roots before locking the superblock + - LP: #1320946 + * aio: v4 ensure access to ctx->ring_pages is correctly serialised for + migration + - LP: #1320946 + * NFSD: Traverse unconfirmed client through hash-table + - LP: #1320946 + * lockd: ensure we tear down any live sockets when socket creation fails + during lockd_up + - LP: #1320946 + * drm/i915/tv: fix gen4 composite s-video tv-out + - LP: #1320946 + * dm thin: fix dangling bio in process_deferred_bios error path + - LP: #1320946 + * em28xx: fix PCTV 290e LNA oops + - LP: #1320946 + * NFSv4: Fix a use-after-free problem in open() + - LP: #1320946 + * nfsd4: fix setclientid encode size + - LP: #1320946 + * MIPS: Hibernate: Flush TLB entries in swsusp_arch_resume() + - LP: #1320946 + * ALSA: hda - Enable beep for ASUS 1015E + - LP: #1320946 + * nfsd: check passed socket's net matches NFSd superblock's one + - LP: #1320946 + * s390/bitops,atomic: add missing memory barriers + - LP: #1320946 + * IB/mthca: Return an error on ib_copy_to_udata() failure + - LP: #1320946 + * IB/ehca: Returns an error on ib_copy_to_udata() failure + - LP: #1320946 + * drm/qxl: unset a pointer in sync_obj_unref + - LP: #1320946 + * smarter propagate_mnt() + - LP: #1320946 + * don't bother with {get,put}_write_access() on non-regular files + - LP: #1320946 + * reiserfs: fix race in readdir + - LP: #1320946 + * drm/vmwgfx: correct fb_fix_screeninfo.line_length + - LP: #1320946 + * ALSA: hda - Fix silent speaker output due to mute LED fixup + - LP: #1320946 + * drm/radeon: clear needs_reset flag if IB test fails + - LP: #1320946 + * drm/radeon: call drm_edid_to_eld when we update the edid + - LP: #1320946 + * drm/radeon: fix endian swap on hawaii clear state buffer setup + - LP: #1320946 + * drm/radeon: fix typo in spectre_golden_registers + - LP: #1320946 + * sh: fix format string bug in stack tracer + - LP: #1320946 + * ocfs2: dlm: fix lock migration crash + - LP: #1320946 + * ocfs2: dlm: fix recovery hung + - LP: #1320946 + * ocfs2: do not put bh when buffer_uptodate failed + - LP: #1320946 + * ocfs2: fix panic on kfree(xattr->name) + - LP: #1320946 + * xattr: guard against simultaneous glibc header inclusion + - LP: #1320946 + * drm/i915: move power domain init earlier during system resume + - LP: #1320946 + * Skip intel_crt_init for Dell XPS 8700 + - LP: #1320946 + * dm cache: fix a lock-inversion + - LP: #1320946 + * thinkpad_acpi: Fix inconsistent mute LED after resume + - LP: #1320946 + * iser-target: Add missing se_cmd put for WRITE_PENDING in tx_comp_err + - LP: #1320946 + * iscsi-target: Fix ERL=2 ASYNC_EVENT connection pointer bug + - LP: #1320946 + * Target/sbc: Initialize COMPARE_AND_WRITE write_sg scatterlist + - LP: #1320946 + * mm: page_alloc: spill to remote nodes before waking kswapd + - LP: #1320946 + * mm: try_to_unmap_cluster() should lock_page() before mlocking + - LP: #1320946 + * mm: hugetlb: fix softlockup when a large number of hugepages are freed. + - LP: #1320946 + * hung_task: check the value of "sysctl_hung_task_timeout_sec" + - LP: #1320946 + * DRM: armada: fix corruption while loading cursors + - LP: #1320946 + * ALSA: ice1712: Fix boundary checks in PCM pointer ops + - LP: #1320946 + * lib/percpu_counter.c: fix bad percpu counter state during suspend + - LP: #1320946 + * md/raid1: r1buf_pool_alloc: free allocate pages when subsequent + allocation fails. + - LP: #1320946 + * ALSA: hda - add headset mic detect quirk for a Dell laptop + - LP: #1297581, #1320946 + * b43: Fix machine check error due to improper access of + B43_MMIO_PSM_PHY_HDR + - LP: #1320946 + * x86-64, modify_ldt: Ban 16-bit segments on 64-bit kernels + - LP: #1320946 + * target/tcm_fc: Fix use-after-free of ft_tpg + - LP: #1320946 + * ib_srpt: Use correct ib_sg_dma primitives + - LP: #1320946 + * Linux 3.13.11.1 + - LP: #1320946 + * Linux 3.13.11.2 + - LP: #1320946 + * hp-wireless: new driver for hp wireless button for Windows 8 + - LP: #1303737 + * x86, platform: Make HP_WIRELESS option text more descriptive + - LP: #1303737 + * ACPI: blacklist win8 OSI for Dell Inspiron 7737 + - LP: #1288161 + + -- Luis Henriques Thu, 22 May 2014 12:20:44 +0100 + +linux (3.13.0-27.50) trusty; urgency=low + + [ Brad Figg ] + + * Revert "rtlwifi: Set the link state" + + -- Brad Figg Thu, 15 May 2014 10:21:43 -0700 + +linux (3.13.0-27.49) trusty; urgency=low + + [ Brad Figg ] + + * Revert "SAUCE: (no-up) HID: rmi: do not stop the device at the end of + probe" + * Revert "SAUCE: (no-up) HID: rmi: introduce RMI driver for Synaptics + touchpads" + * Revert "[Config] CONFIG_HID_RMI=m" + + -- Brad Figg Wed, 14 May 2014 10:29:07 -0700 + +linux (3.13.0-26.48) trusty; urgency=low + + [ Benjamin Tissoires ] + + * SAUCE: (no-up) HID: rmi: introduce RMI driver for Synaptics touchpads + - LP: #1305522 + * SAUCE: (no-up) HID: rmi: do not stop the device at the end of probe + - LP: #1305522 + + [ Kamal Mostafa ] + + * Merged back Ubuntu-3.13.0-24.47 security release + * Revert "n_tty: Fix n_tty_write crash when echoing in raw mode" + - LP: #1314762 + * Release Tracking Bug + - LP: #1316835 + + [ Tim Gardner ] + + * [Config] CONFIG_HID_RMI=m + - LP: #1305522 + * [Config] CONFIG_CRYPTO_DEV_NX=n for ppc64el + - LP: #1314625 + * [Config] CONFIG_ZSWAP=y + - LP: #1315203 + * Add rpcsec_gss_krb5 to generic inclusion list + - LP: #769527 + + [ Upstream Kernel Changes ] + + * HID: hidraw: make comment more accurate and nicer + - LP: #1305522 + * HID: remove hid_get_raw_report in struct hid_device + - LP: #1305522 + * HID: i2c-hid: implement ll_driver transport-layer callbacks + - LP: #1305522 + * HID: add inliners for ll_driver transport-layer callbacks + - LP: #1305522 + * HID: Add transport-driver callbacks to the hid_ll_driver struct + - LP: #1305522 + * drm/nouveau: fail runtime pm properly. + - LP: #1313986 + * drm/nouveau: don't suspend/resume display on runtime s/r + - LP: #1313986 + * n_tty: Fix n_tty_write crash when echoing in raw mode + - LP: #1314762 + - CVE-2014-0196 + * floppy: ignore kernel-only members in FDRAWCMD ioctl input + - LP: #1316729 + - CVE-2014-1737 + * floppy: don't write kernel-only members to FDRAWCMD ioctl output + - LP: #1316735 + - CVE-2014-1738 + + -- Kamal Mostafa Tue, 06 May 2014 15:30:29 -0700 + +linux (3.13.0-25.47) trusty; urgency=low + + [ Joseph Salisbury ] + + * Release Tracking Bug + - LP: #1313868 + + [ Adam Lee ] + + * [Config] CONFIG_RTL8723BE=m, CONFIG_RTL8723_COMMON=m + - LP: #1240940 + + [ Alex Hung ] + + * SAUCE: (no-up) dell-led: add mic mute led interface + - LP: #1308297 + + [ Andy Whitcroft ] + + * SAUCE: (no-up) powerpc: Increase COMMAND_LINE_SIZE to 2048 from 512. + - LP: #1306677 + + [ Ben Collins ] + + * [Config] Disable PAMU on Freescale kernels + - LP: #1311738 + + [ Tim Gardner ] + + * Revert "SAUCE: x86, hyperv: bypass the timer_irq_works() check" + - LP: #1311683 + * SAUCE: (no-up) ALSA: usb-audio: Suppress repetitive debug messages from + retire_playback_urb() + - LP: #1305133 + * SAUCE: (no-up) 'BUG:' message unnecessarily triggers kerneloops + - LP: #1305480 + * [Config] CONFIG_POWERNV_CPUFREQ=m + - LP: #1309576 + * [Config] CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y for ppc64el + - LP: #1309576 + * [Config] CONFIG_TRANSPARENT_HUGEPAGE=n for arm64 + - LP: #1309221 + * [Config] CONFIG_MEMCG_KMEM=y + - LP: #1309586 + * [Config] CONFIG_CRASH_DUMP=y for ppc64el + - LP: #1312783 + + [ Upstream Kernel Changes ] + + * Revert "rtlwifi: rtl8188ee: enable MSI interrupts mode" + - LP: #1310512 + * mac80211: add length check in ieee80211_is_robust_mgmt_frame() + - LP: #1240940 + * rtlwifi: rtl8723ae: rtl8723-common: Create new driver for common code + - LP: #1240940 + * rtlwifi: rtl8723ae: rtl8723-common: Copy common firmware code + - LP: #1240940 + * rtlwifi: rtl8723ae: rtl8723-common: Copy common dynamic power + management code + - LP: #1240940 + * rtlwifi: rtl8723be: Add new driver + - LP: #1240940 + * selinux: correctly label /proc inodes in use before the policy is + loaded + - LP: #1309007 + * net: sctp: fix skb leakage in COOKIE ECHO path of chunk->auth_chunk + - LP: #1309007 + * bridge: multicast: add sanity check for query source addresses + - LP: #1309007 + * tipc: allow connection shutdown callback to be invoked in advance + - LP: #1309007 + * tipc: fix connection refcount leak + - LP: #1309007 + * tipc: drop subscriber connection id invalidation + - LP: #1309007 + * tipc: fix memory leak during module removal + - LP: #1309007 + * tipc: don't log disabled tasklet handler errors + - LP: #1309007 + * inet: frag: make sure forced eviction removes all frags + - LP: #1309007 + * net: unix: non blocking recvmsg() should not return -EINTR + - LP: #1309007 + * ipv6: Fix exthdrs offload registration. + - LP: #1309007 + * bnx2: Fix shutdown sequence + - LP: #1309007 + * pkt_sched: fq: do not hold qdisc lock while allocating memory + - LP: #1309007 + * Xen-netback: Fix issue caused by using gso_type wrongly + - LP: #1309007 + * vlan: Set correct source MAC address with TX VLAN offload enabled + - LP: #1309007 + * tcp: tcp_release_cb() should release socket ownership + - LP: #1309007 + * bridge: multicast: add sanity check for general query destination + - LP: #1309007 + * bridge: multicast: enable snooping on general queries only + - LP: #1309007 + * net: socket: error on a negative msg_namelen + - LP: #1309007 + * bonding: set correct vlan id for alb xmit path + - LP: #1309007 + * eth: fec: Fix lost promiscuous mode after reconnecting cable + - LP: #1309007 + * ipv6: Avoid unnecessary temporary addresses being generated + - LP: #1309007 + * ipv6: ip6_append_data_mtu do not handle the mtu of the second fragment + properly + - LP: #1309007 + * net: cdc_ncm: fix control message ordering + - LP: #1309007 + * vxlan: fix potential NULL dereference in arp_reduce() + - LP: #1309007 + * vxlan: fix nonfunctional neigh_reduce() + - LP: #1309007 + * tcp: syncookies: do not use getnstimeofday() + - LP: #1309007 + * rtnetlink: fix fdb notification flags + - LP: #1309007 + * ipmr: fix mfc notification flags + - LP: #1309007 + * ip6mr: fix mfc notification flags + - LP: #1309007 + * net: micrel : ks8851-ml: add vdd-supply support + - LP: #1309007 + * netpoll: fix the skb check in pkt_is_ns + - LP: #1309007 + * tipc: fix spinlock recursion bug for failed subscriptions + - LP: #1309007 + * ip_tunnel: Fix dst ref-count. + - LP: #1309007 + * tg3: Do not include vlan acceleration features in vlan_features + - LP: #1309007 + * virtio-net: correct error handling of virtqueue_kick() + - LP: #1309007 + * usbnet: include wait queue head in device structure + - LP: #1309007 + * vlan: Set hard_header_len according to available acceleration + - LP: #1309007 + * vhost: fix total length when packets are too short + - LP: #1309007 + - CVE-2014-0077 + * tcp: fix get_timewait4_sock() delay computation on 64bit + - LP: #1309007 + * xen-netback: remove pointless clause from if statement + - LP: #1309007 + * ipv6: some ipv6 statistic counters failed to disable bh + - LP: #1309007 + * netlink: don't compare the nul-termination in nla_strcmp + - LP: #1309007 + * xen-netback: disable rogue vif in kthread context + - LP: #1309007 + * Call efx_set_channels() before efx->type->dimension_resources() + - LP: #1309007 + * net: vxlan: fix crash when interface is created with no group + - LP: #1309007 + * isdnloop: Validate NUL-terminated strings from user. + - LP: #1309007 + * isdnloop: several buffer overflows + - LP: #1309007 + * powernow-k6: disable cache when changing frequency + - LP: #1309007 + * powernow-k6: correctly initialize default parameters + - LP: #1309007 + * powernow-k6: reorder frequencies + - LP: #1309007 + * ARC: [nsimosci] Change .dts to use generic 8250 UART + - LP: #1309007 + * ARC: [nsimosci] Unbork console + - LP: #1309007 + * futex: Allow architectures to skip futex_atomic_cmpxchg_inatomic() test + - LP: #1309007 + * m68k: Skip futex_atomic_cmpxchg_inatomic() test + - LP: #1309007 + * crypto: ghash-clmulni-intel - use C implementation for setkey() + - LP: #1309007 + * Linux 3.13.10 + - LP: #1309007 + * cpufreq: powernv: cpufreq driver for powernv platform + - LP: #1309576 + * cpufreq: powernv: Use cpufreq_frequency_table.driver_data to store + pstate ids + - LP: #1309576 + * cpufreq: powernv: Select CPUFreq related Kconfig options for powernv + - LP: #1309576 + * support Thinkpad X1 Carbon 2nd generation's adaptive keyboard + - LP: #1309609 + * save and restore adaptive keyboard mode for suspend and,resume + - LP: #1309609 + * user namespace: fix incorrect memory barriers + - LP: #1311683 + * Char: ipmi_bt_sm, fix infinite loop + - LP: #1311683 + * x86, hyperv: Bypass the timer_irq_works() check + - LP: #1311683 + * x86: Adjust irq remapping quirk for older revisions of 5500/5520 + chipsets + - LP: #1311683 + * PCI: designware: Fix RC BAR to be single 64-bit non-prefetchable memory + BAR + - LP: #1311683 + * PCI: designware: Fix iATU programming for cfg1, io and mem viewport + - LP: #1311683 + * ACPI / button: Add ACPI Button event via netlink routine + - LP: #1311683 + * PCI: Enable INTx in pci_reenable_device() only when MSI/MSI-X not + enabled + - LP: #1311683 + * staging: comedi: 8255_pci: initialize MITE data window + - LP: #1311683 + * tty: Set correct tty name in 'active' sysfs attribute + - LP: #1311683 + * tty: Fix low_latency BUG + - LP: #1311683 + * SCSI: sd: don't fail if the device doesn't recognize SYNCHRONIZE CACHE + - LP: #1311683 + * pid_namespace: pidns_get() should check task_active_pid_ns() != NULL + - LP: #1311683 + * Bluetooth: Fix removing Long Term Key + - LP: #1311683 + * ima: restore the original behavior for sending data with ima template + - LP: #1311683 + * backing_dev: fix hung task on sync + - LP: #1311683 + * bdi: avoid oops on device removal + - LP: #1311683 + * xfs: fix directory hash ordering bug + - LP: #1311683 + * Btrfs: skip submitting barrier for missing device + - LP: #1311683 + * Btrfs: fix deadlock with nested trans handles + - LP: #1311683 + * ext4: fix error return from ext4_ext_handle_uninitialized_extents() + - LP: #1311683 + * ext4: fix partial cluster handling for bigalloc file systems + - LP: #1311683 + * ext4: fix premature freeing of partial clusters split across leaf + blocks + - LP: #1311683 + * jffs2: Fix segmentation fault found in stress test + - LP: #1311683 + * jffs2: Fix crash due to truncation of csize + - LP: #1311683 + * jffs2: avoid soft-lockup in jffs2_reserve_space_gc() + - LP: #1311683 + * jffs2: remove from wait queue after schedule() + - LP: #1311683 + * sparc32: fix build failure for arch_jump_label_transform + - LP: #1311683 + * sparc64: don't treat 64-bit syscall return codes as 32-bit + - LP: #1311683 + * sparc64: Make sure %pil interrupts are enabled during hypervisor yield. + - LP: #1311683 + * wait: fix reparent_leader() vs EXIT_DEAD->EXIT_ZOMBIE race + - LP: #1311683 + * exit: call disassociate_ctty() before exit_task_namespaces() + - LP: #1311683 + * Linux 3.13.11 + - LP: #1311683 + * powerpc/le: Enable RTAS events support + - LP: #1312230 + * net: ipv4: current group_info should be put after using. + - CVE-2014-2851 + * powerpc/relocate fix relocate processing in LE mode + - LP: #1312783 + + -- Joseph Salisbury Mon, 28 Apr 2014 15:02:45 -0400 + +linux (3.13.0-24.47) trusty; urgency=low + + [ Peter Hurley ] + + * n_tty: Fix n_tty_write crash when echoing in raw mode + + -- Brad Figg Wed, 30 Apr 2014 15:08:31 -0700 + +linux (3.13.0-24.46) trusty; urgency=low + + [ Andy Whitcroft ] + + * [Config] d-i -- add nvme devices to block-modules udeb + - LP: #1303710 + + [ Paolo Pisati ] + + * [Config] build vexpress a9 dtb + - LP: #1303657 + * [Config] disable HVC_DCC + - LP: #1303657 + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1305158 + * rebase to v3.13.9 + * CONFIG_RTLBTCOEXIST=m + - LP: #1296591 + + [ Upstream Kernel Changes ] + + * HID: Bluetooth: hidp: make sure input buffers are big enough + - LP: #1252874 + * ACPI / video: Add systems that should favour native backlight interface + - LP: #1303419 + * rds: prevent dereference of a NULL device in rds_iw_laddr_check + - LP: #1302222 + - CVE-2014-2678 + * x86/efi: Fix 32-bit fallout + - LP: #1301590 + * drm/nouveau/devinit: tidy up the subdev class definition + - LP: #1158689 + * drm/nouveau/device: provide a way for devinit to mark engines as + disabled + - LP: #1158689 + * drm/nv50-/devinit: prevent use of engines marked as disabled by + hw/vbios + - LP: #1158689 + * rtlwifi: btcoexist: Add new mini driver + - LP: #1296591 + * rtlwifi: Prepare existing drivers for new driver + - LP: #1296591 + * rtlwifi: add MSI interrupts mode support + - LP: #1296591 + * rtlwifi: rtl8188ee: enable MSI interrupts mode + - LP: #1296591 + + [ Upstream Kernel Changes ] + + * rebase to v3.13.9 + + -- Tim Gardner Fri, 04 Apr 2014 09:26:27 -0400 + +linux (3.13.0-23.45) trusty; urgency=low + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1302083 + + [ Emil Goode ] + + * SAUCE: (no-up) brcmsmac: fix deadlock on missing firmware + - LP: #1300416 + + [ Moni Shoua ] + + * SAUCE: (no-up) IB/core: Don't resolve passive side RoCE L2 address in cma req handler + Merged at the request of Mellanox engineers. It shold be making its way upstream. + http://www.spinics.net/lists/linux-rdma/msg19417.html + + [ Or Gerlitz ] + + * [Config] CONFIG_INFINIBAND_USNIC=m + + [ Tim Gardner ] + + * [Config] CONFIG_MLX4_EN_VXLAN=y + + [ Upstream Kernel Changes ] + + * This set of patches essentially updates the infiniband subsystem to 3.14 plus some + bug fixes from 3.15. The initial set of commits were determined using: + + git log --pretty=oneline --reverse v3.13..cd6362befe4cc7bf589a5236d2a780af2d47bcc9 -- drivers/infiniband drivers/net/ethernet/mellanox include/linux/mlx* include/rdma + + A few tree-wide patches were dropped since they were not essential. + This is the list of commits that were actually applied. As you can see there were + a few back ports, but all were simple context collisions and easily resolved. + + (cherry picked from commit 7c6d74d23a33a946bcf08ba2d3e52d31943b7342) + (cherry picked from commit 7b25d81b7ff03bb1893a9c7f97797b891a772deb) + (cherry picked from commit 73e74ab4e0d030f28d640507998156a22d4211f8) + (cherry picked from commit eb17711bc1d6611e934af5b6dabc225936084128) + (cherry picked from commit 8e1a28e8e6797449dfdfa4739002d1e5939355a8) + (cherry picked from commit 84c864038d6d991be81344fc3168ec2c2f7a8d06) + (cherry picked from commit d03a68f8217ea03492e4f7928db222dc6544792a) + (cherry picked from commit be902ab122fcc59ba6a8588e820c31861d75a5a4) + (cherry picked from commit e4b59a1cb6f8feb03f356b0abfd20451f05d7470) + (cherry picked from commit 0276a330617a0cf380f09e5065299078d3d45886) + (cherry picked from commit 982290a7fe36e528af292d3e3b61939b1900bfc6) + (cherry picked from commit c5266d40b0a26546d0ebedb44dd4145088b85cb8) + (cherry picked from commit 7ffdf726cfe0d188907bdbb0e7729fb35a69c219) + (cherry picked from commit 837052d0ccc5a789a578f8b628ba154b63bd51ea) + (cherry picked from commit c0623e587d869b4b18e077d64a8524ea364b5b77) + (cherry picked from commit ad7d4eaed995d76fb24a18e202fdf5072197ff0a) + (cherry picked from commit 2156d9a8ac0202f0158d407063cb850afffd3f56) + (cherry picked from commit b912b2f8fc71df4c3ffa7a9fe2c2227e8bcdaa07) + (cherry picked from commit 9ba75fb0c4b92416b94640b5a043c323a457f14a) + (cherry picked from commit 74b9c3ea847f060c784e86453f1ad77dd05a7a8f) + (cherry picked from commit e6a767582942d6fd9da0ddea673f5a7017a365c7) + (cherry picked from commit fe5e8a1acc7fd877b6706053cf88c418c33fe7a3) + (cherry picked from commit be8348df6efac6b602f2ad3210139bccf0dbe3d7) + (cherry picked from commit e3cf00d0a87f025db5855a43a67c67a41fa79fef) + (cherry picked from commit 8192d4acb5c5376c0f6756f2106ab243036c8c7d) + (cherry picked from commit 301a0dd68e5ddd22d992a58f466b621987d9df3b) + (cherry picked from commit 2183b990b67b761f81c68a18f60df028e080cf05) + (cherry picked from commit 8af94ac66a4d53a96278ecbb9ef2e8592f0d9ba3) + (cherry picked from commit 256d6a6ac52ee02e897cec88ecc96c3ae7f9cb88) + (cherry picked from commit 60b215e8b267f911751a043de63181dab1b69706) + (cherry picked from commit b85caf479b577f000067002259539ad4341d4530) + (cherry picked from commit 3f92bed3d6c073f41efc0777ecd3442aa1f03d20) + (cherry picked from commit 6214105460842759020bdd7f4dbb50afa1be9d17) + (cherry picked from commit c7845bcafe4d2ecd5c479fa64d1b425c21dde17c) + (cherry picked from commit e45e614e4015a489d2f8013eaed45d498d884e86) + (cherry picked from commit 248567f79304b953ea492fb92ade097b62ed09b2) + (cherry picked from commit 6a54d9f9a04ed35e6615a47974c1ef02ff3a62cb) + (cherry picked from commit c5f855e08a97edc107c4a3b73809ed629c1dcac1) + (cherry picked from commit 9f637f7936025aef57f247b11036bad18bb87c06) + (cherry picked from commit c30392ab5bb536fef268c22804dafded15170d14) + (cherry picked from commit 3108bccb3d9afbd32931d775f5dd5ee157eaa5a9) + (cherry picked from commit d9fe40916387bab884e458c99399c149b033506c) + (cherry picked from commit 24e42754f676d34e5c26d6b7b30f36df8004ec08) + (cherry picked from commit c1be5232d21de68f46637e617225b9b7c586451a) + (cherry picked from commit 90f1d1b41b70474bf73d07d4300196901cd81718) + (cherry picked from commit 240ae00e4d834e387f4f09e236130f520e357a70) + (back ported from commit 4de6580360867d44adecb2d05febed1c8d186c82) + (cherry picked from commit 0a9b7d59d5a8e2b97406a29a8a807bbc5ce7092e) + (cherry picked from commit a37a1a428431d3e7e9f53530b5c56ff7867bd487) + (cherry picked from commit c1c98501121eefa0888a42566ec7233a1626f678) + (back ported from commit dd5f03beb4f76ae65d76d8c22a8815e424fc607c) + (cherry picked from commit c9218a9e677856d6647ea82d821f22ccbffc988c) + (cherry picked from commit f088cbb8d8547a89af258a3223657f9a69b811e4) + (cherry picked from commit 4942c0b4b64478ff45c3bbf4d40aebd66de0bcc5) + (cherry picked from commit 2d97436f5b06217beb6c91a0cd0ae0f0d79b61cc) + (cherry picked from commit 5db5765e255de4072eb0e35facfeafce53af001b) + (cherry picked from commit 61f78268936e781a104b4ac06b7e47d760800c40) + (cherry picked from commit 6dcebe614c667fca73aaf0cfbd1e70bc9179538e) + (cherry picked from commit d1db47c5eed89a1c8b60e780aeadd870bb0d3894) + (cherry picked from commit af2e2e35a23e4aeecfe4332a7140c81e0f09b7e3) + (cherry picked from commit 7b85627b9f02f9b0fb2ef5f021807f4251135857) + (back ported from commit d487ee77740ccf79d7dc1935d4daa77887283028) + (cherry picked from commit 297e0dad720664dad44baa2cdd13f871979fb58c) + (cherry picked from commit eb6ab13267be87dcad3e611500b7cb404ed4479c) + (cherry picked from commit a3a5a82627492c8947d8866ddf421e9248088466) + (cherry picked from commit dc87a90f5d61d7f01cfb63d92d5eaa27718e5b19) + (cherry picked from commit 9bd626e79df67b2ba3b0c91a4640ab7bca1af04d) + (cherry picked from commit 40aca6ffcac57dd9c65877a59a8bbb210c4691ca) + (cherry picked from commit 37721d8501a9a1fbe87527c24d127a914b29fd7f) + (cherry picked from commit ed4c54e5b4baf55a7a67a80fa766334855c94854) + (cherry picked from commit 2f85d24e604c1532723c4b5791816b533baed2c3) + (cherry picked from commit 990acea616e99355703b503c1e50fb9c7ddff6b9) + (cherry picked from commit f282651de676d10e395bc7923f0087fbbba12ed7) + (cherry picked from commit 31ab8acbf6618c89fec77f7706df7daaa319feb5) + (cherry picked from commit 9392fa06411cf93885c4cafc8058085d98f52fec) + (cherry picked from commit 27cdef637c25705b433d5c4deeef4cf8dcb75d6a) + (cherry picked from commit 8ce96afa8239f13bdf5ab35839bac46c103bbedc) + (cherry picked from commit 6cd28f044b47aeeba91807d97d6f3ea5a048e88d) + (cherry picked from commit 5462eddd7a78131ccb514d52473625d99769215e) + (cherry picked from commit 05633102d85b50f35325dfbedafcedd6c5b3264c) + (cherry picked from commit 437708c44395a11e474fb33b4fd7f29483118e51) + (cherry picked from commit d9d5713ca628dc211d8b4a1da5fb9e0cfe592b92) + (cherry picked from commit a384b20e417ae0f5f1f359600b4bdcc34265b256) + (cherry picked from commit 298589b1cb626adf4beba6dd8e3cd4b64e8799be) + (cherry picked from commit e08a8761d89b7625144c3fbf0ff9643159135c96) + (cherry picked from commit 0b6e81b91070bdbe0defb9101384ebb26835e401) + (cherry picked from commit 042b9adae899e1b497282d92205d3fef42d5ca8d) + (cherry picked from commit ada388f7afad1e2e87acbfe30600fdaff9bd6327) + (cherry picked from commit 3bdb31f688276505ede23280885948e934304674) + (cherry picked from commit bde51583f49bd87e452e9504d489926638046b11) + (cherry picked from commit db81a5c374b5bd650c5e6ae85d026709751db103) + (cherry picked from commit 05bdb2ab6b09f2306f0afe0f60f4b9abffa7aba4) + (cherry picked from commit 9e9c47d07d447e09a66ee528c3ebad9ba359af6a) + (cherry picked from commit 1bde6e301cf6217da9238086c958f532b16e504d) + (cherry picked from commit 8c8a49148b95c4d7c5f58a6866a30ea02485d7a3) + (cherry picked from commit 57761d8df8efc7cc1227f9bc22e0dda01b0dd91b) + (cherry picked from commit 676687c69697d2081d25afd14ee90937d1fb0c8e) + (cherry picked from commit 9e65dc371b5c8d7476c81353137efc13cc1bdabd) + (cherry picked from commit 78c0f98cc9dd46824fa66f35f14ea24ba733d145) + (cherry picked from commit 1a4c3a3dc5fdeef2a7bdf4ac7d81df58c3c0a51e) + (cherry picked from commit d07875bd0d1517185534b5f9eef469426ba42cb9) + (cherry picked from commit ab576627c8f97c08297d81537be17df161171923) + (cherry picked from commit a80e21b3b2d151d79bb9be42334ab10d40195324) + (cherry picked from commit 9d8abf45944e4f1c18a04070fc3ed2f3ffcbbcb6) + (cherry picked from commit 4196670be786d529ab7f6c18f5077141ce1b787e) + (cherry picked from commit acc4fccf4eff5b29e545995b75de77e60ea44aae) + (cherry picked from commit 4ce5a5744a2f5479e58c6788cbe3987b8071b62e) + (cherry picked from commit ddf8bd349115c2bc85a62e3d94018c9976ac72f7) + (cherry picked from commit 5071456fe244e409adcda7226e5f0b5d1b879fd3) + (cherry picked from commit ad4885d279b63c65347220236d07669a2f59634b) + (cherry picked from commit b4a26a27287a7f81933ba016aeed6c69dd155323) + (cherry picked from commit 0f0132001fd239bb67c1f68436b95cc79de89736) + (cherry picked from commit 6ecde51dd7894ffe2f959cca1fea3ea2b9ee2394) + (cherry picked from commit 0861565f501ce3fcea9394d4b98c02b1f6de6b9e) + (cherry picked from commit f809309a251a13bd97cc189c3fa428782aab9716) + (cherry picked from commit 7d9eacf9457efc6b614665e1095336c11ad83f0d) + (cherry picked from commit fd8b48b22a2b7cdf21f15b01cae379e6159a7eea) + (cherry picked from commit a61d93d92f5c9533898098abb5f187840900aeb5) + (cherry picked from commit 09de3f1313a30d8a22e488c9a5b96a9560cae96d) + (cherry picked from commit 99932d4fc03a13bb3e94938fe25458fabc8f2fc3) + (cherry picked from commit 169a1d85d084edeb0736ad80fe439639ac938dcd) + (cherry picked from commit 367d56f7b4d5ce61e883c64f81786c7a3ae88eea) + (cherry picked from commit 57352ef4f5f19969a50d42e84b274287993b576f) + (cherry picked from commit 97989356af0ec8b1b1658d804892abb354127330) + (cherry picked from commit 56cb456746a15c1025a178466492ca4c373b1a63) + (cherry picked from commit 2a2083f7f3568c0192daa6ac0e6fa35d953f47bd) + (cherry picked from commit 7855bff42ea9938a0853321256f4c8ce3628aa73) + (cherry picked from commit de123268300fd33b7f7668fda3264059daffa6ef) + (cherry picked from commit 299603e8370a93dd5d8e8d800f0dff1ce2c53d36) + (cherry picked from commit bf5a755f5e9186406bbf50f4087100af5bd68e40) + (cherry picked from commit 600adc18eba823f9fd8ed5fec8b04f11dddf3884) + (back ported from commit b582ef0990d457f7ce8ccf827af51a575ca0b4a6) + (cherry picked from commit e27a2f839598e48bb345f9fc86d4d54c3944db50) + (back ported from commit dc01e7d3447793fd9e4090aa9d50c549848b5a18) + (cherry picked from commit b5aaab12b2b4bc4acab7384c17a87f3406e5047d) + (cherry picked from commit 920a0fde5a32fd40b4d3c94ad72f7fc7039db8e3) + (cherry picked from commit 438e38fadca2f6e57eeecc08326c8a95758594d4) + (cherry picked from commit 97a5221f56bad2e1c7e8ab55da4ac4748ef59c64) + (cherry picked from commit 02512482321c531df4abf73943529f8b44d869e2) + (cherry picked from commit bb2146bc883e86b835e30644757a6d4a649a7ce8) + (back ported from commit ca9f9f703950e5cb300526549b4f1b0a6605a5c5) + (cherry picked from commit fd8daa45f2bd9b876e0dbb9503ccc5a5252844f2) + (cherry picked from commit b97b33a3df0439401f80f041eda507d4fffa0dbf) + (cherry picked from commit 93591aaa62f89820f4ae0558f01eaf9a359738da) + (cherry picked from commit 15bffdffccb3204eb1e993f60eee65c439a03136) + (cherry picked from commit 9813337a4b16ea5b1701b1d00f7e410f5decdfa5) + (cherry picked from commit 313c2d375b1c9b648d9d4b96ec1b8185ac6a78c5) + (cherry picked from commit 28d222bbaa5122fb4bb0e607e39ab149a010e587) + (cherry picked from commit ec5709403e6893acb4f7ca40514ebd29c3116836) + (cherry picked from commit 9717218bb2982f5f214d84473c70542f1e42bfd7) + (cherry picked from commit d0ceebd7508d5bf6e81367640959aef7e0de4947) + (cherry picked from commit c120e9e03090b4f9578ca38ef4250ff3805b6e3f) + (cherry picked from commit 6ee51a4e866bbb0921180b457ed16cd172859346) + (cherry picked from commit 9cd593529c8652785bc9962acc79b6b176741f99) + (cherry picked from commit b6ffaeffaea4d92f05f5ba1ef54df407cb7c8517) + (cherry picked from commit 2f5bb473681b88819a9de28ac3a47e7737815a92) + (cherry picked from commit 5ea8bbfc49291b7e23161fe4de0bf3e4a4e34b18) + (cherry picked from commit ceb5433b3a54979216d794e45147d25c24c94999) + (cherry picked from commit aa9a2d51a3e70b15a898bec7dde3ce5726fec641) + (cherry picked from commit e81f44b66b456a7dcfbdeffeb355458cd6a58973) + (cherry picked from commit 7a2cea2aaae2d5eb5c00c49c52180c7c2c66130a) + (cherry picked from commit 05eb23893c2cf9502a9cec0c32e7f1d1ed2895c8) + (cherry picked from commit 38be0a347c91133843474e12baacd252d0fd1c30) + (cherry picked from commit 82373701be26b893eaf7372db0af84235a51998a) + (cherry picked from commit 1ab95d37bcc3ff2d69e3871e4f056bab7aed0b85) + (cherry picked from commit f74462acf8f390528c8b7937f227c6c90d017f3b) + (cherry picked from commit 449fc48866f7d84b0d9a19201de18a4dd4d3488c) + (cherry picked from commit dd41cc3bb90efd455df514899a5d3cf245182eb1) + (cherry picked from commit e471b40321a94f07d13b8a9e4b064885cf08835d) + (cherry picked from commit bfd2793c9559ae73ae021797f1d4b097c27f24be) + (cherry picked from commit b74757944d69f8cd7de5284fc7e8649d965361ab) + (cherry picked from commit d18f141a1a7cfa5ffad8433e43062b05a8d1b82a) + (cherry picked from commit 1b136de120dda625109f2afe1e3d04e256be9ec1) + (cherry picked from commit a66132f3eb514f42c49a3e8f57aab2ccd0360f06) + + * mlx4_core: Roll back round robin bitmap allocation commit for CQs, SRQs, and MPTs + * net/mlx4_core: Remove zeroed out of explicit QUERY_FUNC_CAP fields + * net/mlx4_core: Rename QUERY_FUNC_CAP fields + * net/mlx4_core: Introduce nic_info new flag in QUERY_FUNC_CAP + * net/mlx4_core: Expose physical port id as PF/VF capability + * net/mlx4_en: Implement ndo_get_phys_port_id + * net/mlx4_en: Configure the XPS queue mapping on driver load + * net/mlx4_core: Set CQE/EQE size to 64B by default + * net/mlx4_en: Ignore irrelevant hypervisor events + * net/mlx4_en: Add NAPI support for transmit side + * net/mlx4_core: Check port number for validity before accessing data + * infiniband: slight optimization of addr compare + * net/mlx4_core: Add basic support for TCP/IP offloads under tunneling + * net/mlx4_en: Add netdev support for TCP/IP offloads of vxlan tunneling + * net: mlx4: slight optimization of addr compare + * mlx4_en: Add PTP hardware clock + * mlx4_en: Only cycle port if HW timestamp config changes + * net/mlx4_core: Warn if device doesn't have enough PCI bandwidth + * net/mlx4_en: fix error return code in mlx4_en_get_qp() + * mlx4_en: Select PTP_1588_CLOCK + * net/mlx4_en: call gro handler for encapsulated frames + * RDMA/ocrdma: Fix AV_VALID bit position + * RDMA/ocrdma: Fix OCRDMA_GEN2_FAMILY macro definition + * IB/usnic: Add Cisco VIC low-level hardware driver + * IB/usnic: Change WARN_ON to lockdep_assert_held + * IB/usnic: Add struct usnic_transport_spec + * IB/usnic: Push all forwarding state to usnic_fwd.[hc] + * IB/usnic: Port over main.c and verbs.c to the usnic_fwd.h + * IB/usnic: Port over usnic_ib_qp_grp.[hc] to new usnic_fwd.h + * IB/usnic: Port over sysfs to new usnic_fwd.h + * IB/usnic: Update ABI and Version file for UDP support + * IB/usnic: Add UDP support to usnic_fwd.[hc] + * IB:usnic: Add UDP support to usnic_transport.[hc] + * IB/usnic: Add UDP support in u*verbs.c, u*main.c and u*util.h + * IB/usnic: Add UDP support in usnic_ib_qp_grp.[hc] + * IB/core: Add RDMA_TRANSPORT_USNIC_UDP + * IB/usnic: Remove superflous parentheses + * IB/usnic: Use for_each_sg instead of a for-loop + * IB/usnic: Expose flows via debugfs + * IB/usnic: Fix typo "Ignorning" -> "Ignoring" + * IB/usnic: Append documentation to usnic_transport.h and cleanup + * IB/mlx5: Remove unused code in mr.c + * mlx5_core: Remove dead code + * IB/mlx5: Fix micro UAR allocator + * IB/core: Add flow steering support for IPoIB UD traffic + * IB/core: Add support for IB L2 device-managed steering + * mlx4_core: Add support for steerable IB UD QPs + * IB/mlx4: Enable device-managed steering support for IB ports too + * IB/mlx4: Add mechanism to support flow steering over IB links + * IB/mlx4: Add support for steerable IB UD QPs + * IB/core: Ethernet L2 attributes in verbs/cm structures + * net/mlx4_core: clean up cq_res_start_move_to() + * net/mlx4_core: clean up srq_res_start_move_to() + * IB/usnic: Fix endianness-related warnings + * IB/usnic: Add dependency on CONFIG_INET + * IB/core: Add support for RDMA_NODE_USNIC_UDP + * IB/usnic: Advertise usNIC devices as RDMA_NODE_USNIC_UDP + * IB/usnic: Set userspace/kernel ABI ver to 4 + * IB/usnic: Remove unused variable in usnic_debugfs_exit() + * IB/mlx4: Fix error return code + * IB/cma: IBoE (RoCE) IP-based GID addressing + * IB/mlx4: Use IBoE (RoCE) IP based GIDs in the port GID table + * IB/mlx4: Handle Ethernet L2 parameters for IP based GID addressing + * IB/isert: seperate connection protection domains and dma MRs + * IB/isert: Avoid frwr notation, user fastreg + * IB/isert: Move fastreg descriptor creation to a function + * IB/isert: pass scatterlist instead of cmd to fast_reg_mr routine + * RDMA/ocrdma: Handle Ethernet L2 parameters for IP based GID addressing + * RDMA/ocrdma: Populate GID table with IP based gids + * IB/core: Resolve Ethernet L2 addresses when modifying QP + * IB/core: Make ib_addr a core IB module + * IB/cm: Fix missing unlock on error in cm_init_qp_rtr_attr() + * IB/mlx4: Add dependency INET + * RDMA/ocrdma: Move ocrdma_inetaddr_event outside of "#if CONFIG_IPV6" + * RDMA/ocrdma: Add dependency on INET + * IB/mlx4: Use IS_ENABLED(CONFIG_IPV6) + * IB/usnic: Use GFP_ATOMIC under spinlock + * net/mlx4_core: Remove unnecessary validation for port number + * RDMA/cma: Handle global/non-linklocal IPv6 addresses in cma_check_linklocal() + * IB/core: Fix unused variable warning + * IPoIB: Report operstate consistently when brought up without a link + * RDMA/amso1100: Add check if cache memory was allocated before freeing it + * IB/usnic: Remove unused includes of + * RDMA/cxgb4: Fix gcc warning on 32-bit arch + * mlx5_core: Fix out arg size in access_register command + * IB/mlx5: Clear out struct before create QP command + * mlx5_core: Use mlx5 core style warning + * IB/mlx5: Make sure doorbell record is visible before doorbell + * IB/mlx5: Implement modify CQ + * IB/mlx5: Add support for resize CQ + * mlx5_core: Improve debugfs readability + * mlx5_core: Fix PowerPC support + * IB/mlx5: Allow creation of QPs with zero-length work queues + * IB/mlx5: Abort driver cleanup if teardown hca fails + * IB/mlx5: Remove old field for create mkey mailbox + * IB/mlx5: Verify reserved fields are cleared + * iscsi-target: Convert gfp_t parameter to task state bitmask + * IB/mlx5: Fix RC transport send queue overhead computation + * IB/mlx5: Fix binary compatibility with libmlx5 + * IB/mlx5: Don't set "block multicast loopback" capability + * RDMA/nes: Fix error return code + * RDMA/amso1100: Fix error return code + * iser-target: Fix leak on failure in isert_conn_create_fastreg_pool + * IB/srpt: replace strict_strtoul() with kstrtoul() + * IB/mlx4: Don't allocate range of steerable UD QPs for Ethernet-only device + * IB/mlx4: Make sure GID index 0 is always occupied + * IB/mlx4: Move rtnl locking to the right place + * IB/mlx4: Do IBoE locking earlier when initializing the GID table + * IB/mlx4: Do IBoE GID table resets per-port + * IB/mlx4: Build the port IBoE GID table properly under bonding + * IB: Report using RoCE IP based gids in port caps + * RDMA/cxgb4: Add missing neigh_release in LE-Workaround path + * mlx5: Add include of because of kzalloc()/kfree() use + * IB/mlx5: Remove dependency on X86 + * IB/usnic: Fix smatch endianness error + * IB/iser: Avoid dereferencing iscsi_iser conn object when not bound to iser connection + * IB/iser: Fix use after free in iser_snd_completion() + * RDMA/ocrdma: Fix traffic class shift + * RDMA/ocrdma: Fix load time panic during GID table init + * netdevice: add queue selection fallback handler for ndo_select_queue + * net,IB/mlx: Bump all Mellanox driver versions + * net/mlx4: Support shutdown() interface + * net/mlx4_core: Fix memory access error in mlx4_QUERY_DEV_CAP_wrapper() + * net/mlx4_core: mlx4_init_slave() shouldn't access comm channel before PF is ready + * net/mlx4_core: Fix wrong dump of the vxlan offloads device capability + * net/mlx4_en: Handle vxlan steering rules for mac address changes + * net/mlx4_core: Load the IB driver when the device supports IBoE + * net/mlx4_en: Deregister multicast vxlan steering rules when going down + * net-gro: Prepare GRO stack for the upcoming tunneling support + * net-gre-gro: Add GRE support to the GRO stack + * net: gro: change GRO overflow strategy + * net: Add GRO support for UDP encapsulating protocols + * net: Export gro_find_by_type helpers + * net: Add GRO support for vxlan traffic + * net/udp_offload: Handle static checker complaints + * net/ipv4: Use non-atomic allocation of udp offloads structure instance + * net/vxlan: Go over all candidate streams for GRO matching + * gre_offload: statically build GRE offloading support + * net/mlx4_core: pass pci_device_id.driver_data to __mlx4_init_one during reset + * net/mlx4: Set number of RX rings in a utility function + * net/mlx4: Fix limiting number of IRQ's instead of RSS queues + * net/mlx4_en: Fix bad use of dev_id + * net/mlx4_en: Fix UP limit in ieee_ets->prio_tc + * net/mlx4_en: Verify mlx4_en module parameters + * net/mlx4_en: Pad ethernet packets smaller than 17 bytes + * net/mlx4_en: Move queue stopped/waked counters to be per ring + * net/mlx4: Replace mlx4_en_mac_to_u64() with mlx4_mac_to_u64() + * net/mlx4_en: Fix selftest failing on non 10G link speed + * net/mlx4_core: Fix sparse warning + * net/mlx4_en: Use union for BlueFlame WQE + * net/mlx4_en: Change Connect-X description in kconfig + * net/mlx4_en: mlx4_en_verify_params() can be static + * IB/mlx5_core: remove unreachable function call in module init + * mlx4: Adjust QP1 multiplexing for RoCE/SRIOV + * mlx4_core: For RoCE, allow slaves to set the GID entry at that slave's index + * mlx4: In RoCE allow guests to have multiple GIDS + * mlx4: Add ref counting to port MAC table for RoCE + * mlx4: Implement IP based gids support for RoCE/SRIOV + * mlx4_ib: Fix SIDR support of for UD QPs under SRIOV/RoCE + * mlx4: Activate RoCE/SRIOV + * mlx4: Call dev_kfree_skby_any instead of dev_kfree_skb. + * cxgb4/iw_cxgb4: Treat CPL_ERR_KEEPALV_NEG_ADVICE as negative advice + * cxgb4/iw_cxgb4: Doorbell Drop Avoidance Bug Fixes + * mlx4: Don't receive packets when the napi budget == 0 + * IB/mlx4_ib: Adapt code to use caps.num_ports instead of a constant + * net/mlx4: Add data structures to support N-Ports per VF + * net/mlx4: Add utils for N-Port VFs + * net/mlx4: Adapt code for N-Port VF + * net/mlx4: Adapt num_vfs/probed_vf params for single port VF + * mlx4: Use actual number of PCI functions (PF + VFs) for alias GUID logic + * RDMA/cxgb4: set error code on kmalloc() failure + * net/mlx4: USe one wrapper that returns -EPERM + * mlx4: Add support for CONFIG_DEV command + * net/mlx4: Implement vxlan ndo calls + * net/mlx4: Set proper build dependancy with vxlan + + [ Wen-chien Jesse Sung ] + + * SAUCE: Bluetooth: Give restart command more time to complete its job + - LP: #1301908 + + -- Tim Gardner Thu, 03 Apr 2014 06:06:15 -0600 + +linux (3.13.0-22.44) trusty; urgency=low + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1301562 + + [ dann frazier ] + + * [Config] enable linux-tools on arm64 + https://lists.ubuntu.com/archives/kernel-team/2014-April/041332.html + + [ Greg Kurz ] + + * SAUCE: powerpc/le: Big endian arguments for ppc_rtas() + - LP: #1289518 + + [ Mahesh Salgaonkar ] + + * SAUCE: powerpc/book3s: Fix CFAR clobbering issue in machine check + handler. + - LP: #1301424 + * SAUCE: powerpc/book3s: Recover from MC in sapphire on SCOM read via + MMIO. + - LP: #1301424 + * SAUCE: powerpc/book3s: Fix mc_recoverable_range buffer overrun issue. + - LP: #1301424 + + [ Paolo Pisati ] + + * [Config] armhf: USB_STORAGE=y + https://lists.ubuntu.com/archives/kernel-team/2014-April/041349.html + + [ Stefan Bader ] + + * SAUCE: kvm: Force preempt folding in kvm on i386 + - LP: #1268906 + + [ Tim Gardner ] + + * SAUCE: Drop lttng in favor of lttng-modules + The kernel version was down rev on an rc release. + + [ Tomas Winkler ] + + * SAUCE: (no-up) mei: me: do not load the driver if the FW doesn't + support MEI interface + - LP: #1301118 + + [ Upstream Kernel Changes ] + + * drm/i915: Deprecated UMS support + - LP: #1284816 + * powerpc/book3s: Split the common exception prolog logic into two + section. + - LP: #1301424 + * powerpc/book3s: Introduce exclusive emergency stack for machine check + exception. + - LP: #1301424 + * powerpc/book3s: handle machine check in Linux host. + - LP: #1301424 + * powerpc/book3s: Return from interrupt if coming from evil context. + - LP: #1301424 + * powerpc/book3s: Introduce a early machine check hook in cpu_spec. + - LP: #1301424 + * powerpc/book3s: Add flush_tlb operation in cpu_spec. + - LP: #1301424 + * powerpc/book3s: Flush SLB/TLBs if we get SLB/TLB machine check errors + on power7. + - LP: #1301424 + * powerpc/book3s: Flush SLB/TLBs if we get SLB/TLB machine check errors + on power8. + - LP: #1301424 + * powerpc/book3s: Decode and save machine check event. + - LP: #1301424 + * powerpc/book3s: Queue up and process delayed MCE events. + - LP: #1301424 + * powerpc/powernv: Remove machine check handling in OPAL. + - LP: #1301424 + * powerpc/powernv: Machine check exception handling. + - LP: #1301424 + * powerpc: Fix "attempt to move .org backwards" error + - LP: #1301424 + * powerpc: Fix endian issues in power7/8 machine check handler + - LP: #1301424 + * Move precessing of MCE queued event out from syscall exit path. + - LP: #1301424 + + -- Andy Whitcroft Wed, 02 Apr 2014 15:58:48 +0100 + +linux (3.13.0-21.43) trusty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: kvm: BIOS disabled kvm support should be a warning + - LP: #1300247 + * SAUCE: nouveau: missing outputs should be warnings + - LP: #1300244 + + [ John Johansen ] + + * Revert "SAUCE: Add config option to disable new apparmor 3 semantics" + * Revert "SAUCE: apparmor: fix uninitialized lsm_audit membe" + * Revert "SAUCE: (no-up) apparmor: Fix tasks not subject to, reloaded + policy" + * Revert "SAUCE: apparmor: allocate path lookup buffers during init" + * Revert "SAUCE: apparmor: fix unix domain sockets to be mediated on + connection" + * Revert "SAUCE: (no-up) apparmor: Sync to apparmor 3 - alpha 4 snapshot" + * SAUCE: (no-up) apparmor: Sync to apparmor3 - alpha6 snapshot + - LP: #1298611 + + [ Tetsuo Handa ] + + * SAUCE: kthread: Do not leave kthread_create() immediately upon SIGKILL. + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1300412 + * [Config] updateconfigs after AA patch set + * [Config] CONFIG_ZSWAP=n, CONFIG_ZBUD=n for all arches + * [Config] CONFIG_XILINX_LL_TEMAC=m for powerpc + * [Config] CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y for ppc64el + * [Config] CONFIG_WLAN=y for arm64 + * [Config] CONFIG_VORTEX=m for ppc64el + * [Config] CONFIG_WIMAX=m for ppc64el + * [Config] CONFIG_WATCHDOG=y for ppc64el + * [Config] CONFIG_VME_BUS=m for ppc64el + * [Config] CONFIG_VIRT_DRIVERS=y for ppc64el + * [Config] CONFIG_VIDEO_OUTPUT_CONTROL=m for ppc64el + * [Config] CONFIG_VERSION_SIGNATURE="" for powerpc64-emb + * [Config] CONFIG_UWB=m for ppc64el + + [ Upstream Kernel Changes ] + + * vhost: validate vhost_get_vq_desc return value + - CVE-2014-0055 + * net: use kfree_skb_list() helper + * skbuff: skb_segment: s/frag/nskb_frag/ + * skbuff: skb_segment: s/skb_frag/frag/ + * skbuff: skb_segment: s/skb/head_skb/ + * skbuff: skb_segment: s/fskb/list_skb/ + * skbuff: skb_segment: orphan frags before copying + - CVE-2014-0131 + + [ Upstream Kernel Changes ] + + * rebase to v3.13.8 + + -- Tim Gardner Mon, 31 Mar 2014 12:38:11 -0600 + +linux (3.13.0-20.42) trusty; urgency=low + + [ Adam Conrad ] + + * [Packaging] Set bootloader and loader on ppc64el to grub + + [ Andy Whitcroft ] + + * rebase to v3.13.7 + * [Config] updateconfigs following rebase to v3.13.7 + * cloud-tools -- pull in init scripts for Hyper-V daemons + * cloud-tools -- detect Hyper-V VM to avoid starting + * cloud-tools -- update IF_NAME to DEVICE in hv_* scripts + - LP: #1295401 + * [Config] cloud-tools -- ensure we force older hv-kvp-daemon-init off + * [Config] fix up Breaks/Replaces on linux-cloud-tools-common to fix upgrades + + [ Emmanuel Grumbach ] + + * SAUCE: (no-up) iwlwifi: mvm: disable uAPSD due to bugs in the firmware + + [ James Bottomley ] + + * SAUCE: (no-up) fix our current target reap infrastructure + - LP: #1283604 + * SAUCE: (no-up) dual scan thread bug fix + - LP: #1283604 + + [ K. Y. Srinivasan ] + + * SAUCE: (no-up) Tools: hv: vssdaemon: Ignore VFAT mounts during the + Freeze operation + - LP: #1298192 + + [ Paolo Pisati ] + + * [Config] disable HW_RANDOM_EXYNOS, USB_DWC3_EXYNOS, + PHY_EXYNOS_MIPI_VIDEO + - LP: #1294353 + * [Config] armhf: generic: AHCI_IMX=y, SERIAL_FSL_LPUART=m + - LP: #1294951 + * [Config] armhf: generic: MFD_TI_AM335X_TSCADC and USB_DWC3_OMAP = m + - LP: #1294962 + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1298585 + * [Config] ignore.modules + * SAUCE: i2c-cpm: Add missing includes for powerpc + * [Config] CONFIG_ABX500_CORE=y for ppc64el + * [Config] CONFIG_ALX=m for powerpc + * [Config] CONFIG_ACENIC_OMIT_TIGON_I=n for ppc64el + * [Config] CONFIG_ACORN_PARTITION_*=n for ppc64el + * [Config] CONFIG_ANDROID=n for powerpc + * [Config] CONFIG_ASYNC_RAID6_TEST=m for ppc64el + * [Config] CONFIG_BIG_KEYS=y for ppc64el + * [Config] CONFIG_BLK_DEV_INTEGRITY=y for ppc64el + * [Config] CONFIG_BSD_PROCESS_ACCT=y for ppc64el + * [Config] CONFIG_BLK_DEV_SR_VENDOR=n for ppc64el + * [Config] CONFIG_CFG80211=m for ppc64el + * [Config] CONFIG_CHARGER_BQ24190=m for powerpc + * [Config] CONFIG_CHARGER_BQ24735=m for powerpc + * [Config] CONFIG_EXPERT=y for ppc64el + * [Config] CONFIG_ATA_SFF=y on ppc64el + * [Config] CONFIG_ATA_GENERIC=y for ppc64el, powerpc + * [Config] CONFIG_CHR_DEV_ST=m for ppc64el + * [Config] CONFIG_CHECKPOINT_RESTORE=y for ppc64el + * [Config] CONFIG_CHELSIO_T1_1G=y for ppc64el + * [Config] CONFIG_CHR_DEV_OSST=m for ppc64el + * [Config] CONFIG_CHR_DEV_SCH=m for ppc64el + * [Config] CONFIG_CPU_FREQ_STAT=y for powerpc + * [Config] CONFIG_DDR=y for ppc64el + * [Config] CONFIG_DEBUG_BUGVERBOSE=y for powerpc + * [Config] CONFIG_EXT4_USE_FOR_EXT23=y for powerpc, ppc64el + * [Config] CONFIG_E100=m, CONFIG_E1000=m, CONFIG_E1000E=m for ppc64el + * [Config] CONFIG_EZX_PCAP=n for all arches + * [Config] CONFIG_DYNAMIC_DEBUG=y for powerpc + * [Config] CONFIG_ENABLE_MUST_CHECK=n for ppc64el + * [Config] CONFIG_ENABLE_WARN_DEPRECATED=n for ppc64el + * [Config] CONFIG_FB_3DFX=m for all arches + * [Config] CONFIG_FB_MATROX=m for ppc64el + * [Config] CONFIG_FB_RADEON=m for ppc64el + * [Config] CONFIG_FB_SAVAGE_I2C=y for all arches + * [Config] CONFIG_FIREWIRE=m for ppc64el + * [Config] CONFIG_FTR_FIXUP_SELFTEST=n for ppc64el + * [Config] CONFIG_HAMRADIO=y for ppc64el + * [Config] CONFIG_I2C_CHARDEV=m for ppc64el + * [Config] CONFIG_I2C_MUX=m for ppc64el + * [Config] CONFIG_I2C_STUB=m for ppc64el + * [Config] CONFIG_I2O=m for ppc64el + * [Config] CONFIG_INET_XFRM_MODE_BEET=m, CONFIG_INET_XFRM_MODE_TRANSPORT=m, CONFIG_INET_XFRM_MODE_TUNNEL=m for ppc64el + * [Config] CONFIG_INFINIBAND_IPOIB_DEBUG=n, CONFIG_INFINIBAND_MTHCA_DEBUG=n for ppc64el + * [Config] CONFIG_INFINIBAND_NES=m, CONFIG_INFINIBAND_OCRDMA=m, CONFIG_INFINIBAND_QIB=m for ppc64el + * [Config] CONFIG_INPUT_FF_MEMLESS=m for ppc64el + * [Config] CONFIG_INTERVAL_TREE_TEST=m for ppc64el + * [Config] CONFIG_IPACK_BUS=m for ppc64el + * [Config] CONFIG_ISDN=y for ppc64el + * [Config] CONFIG_ISO9660_FS=m for ppc64el + * [Config] CONFIG_KGDB=y for ppc64el + * [Config] CONFIG_KVM_GUEST=y for ppc64el + * [Config] CONFIG_L2TP_V3=y for powerpc + * [Config] CONFIG_MAILBOX=y for ppc64el + * [Config] CONFIG_MD_LINEAR=m, CONFIG_MD_RAID0=m, CONFIG_MD_RAID1=m for ppc64el + * [Config] CONFIG_MEDIA_SUPPORT=m for ppc64el + * [Config] CONFIG_MEMORY=y for ppc64el + * [Config] CONFIG_MEMSTICK=m for ppc64el + * [Config] CONFIG_MFD_SM501_GPIO=n for ppc64el + * [Config] CONFIG_MLX4_DEBUG=n for ppc64el + * [Config] CONFIG_MMC_BLOCK=m for ppc64el + * [Config] CONFIG_MOUSE_PS2=m for ppc64el + * [Config] CONFIG_NET_9P=m for ppc64el + * [Config] CONFIG_MSDOS_FS=m for ppc64el + * [Config] CONFIG_MSI_BITMAP_SELFTEST=n for ppc64el + * [Config] CONFIG_MTD=m for arm64 + * [Config] CONFIG_NETCONSOLE=m for ppc64el + * [Config] CONFIG_NETFILTER_XT_TARGET_NOTRACK=m for ppc64el + * [Config] CONFIG_NETPOLL_TRAP=n for ppc64el + * [Config] CONFIG_NET_IPIP=m for ppc64el + * [Config] CONFIG_NET_TEAM=m for all arches + * [Config] CONFIG_NFC=m for ppc64el + * [Config] CONFIG_NL80211_TESTMODE=n for all arches + * [Config] CONFIG_NLS_CODEPAGE_437=y for powerpc + * [Config] CONFIG_NLS_ASCII=m, CONFIG_NLS_ISO8859_1=m, CONFIG_NLS_UTF8=m for ppc64el + * [Config] CONFIG_NOP_USB_XCEIV=m for ppc64el + * [Config] CONFIG_NOTIFIER_ERROR_INJECTION=m for ppc64el + * [Config] CONFIG_OPROFILE=m for ppc64el + * [Config] CONFIG_PARPORT_1284=y for ppc64el + * [Config] CONFIG_PARPORT_AX88796=m, CONFIG_PARPORT_PC_FIFO=y, CONFIG_PARPORT_SERIAL=m for ppc64el + * [Config] CONFIG_PCI_IOV=y, CONFIG_PCI_PASID=y, CONFIG_PCI_PRI=y, CONFIG_PCI_REALLOC_ENABLE_AUTO=y, CONFIG_PCI_STUB=m for ppc64el + * [Config] CONFIG_PCNET32=m for ppc64el + * [Config] CONFIG_SCSI_DH_EMC=m for ppc64el + * [Config] CONFIG_SCSI_DH_HP_SW=m for ppc64el + * [Config] CONFIG_SCSI_FC_ATTRS=m for ppc64el + * [Config] CONFIG_SCSI_IPR=m for ppc64el + * [Config] CONFIG_SCSI_LOGGING=y for ppc64el + * [Config] CONFIG_SCSI_OSD_INITIATOR=m for ppc64el + * [Config] CONFIG_SCSI_SCAN_ASYNC=y for ppc64el + * [Config] CONFIG_SCSI_SYM53C8XX_2=m for ppc64el + + [ Timo Aaltonen ] + + * SAUCE: i915_bdw: Provide an ubuntu/i915 driver for Broadwell graphics + - LP: #1294144 + * SAUCE: i915_bdw: Add DP_AUX definitions + - LP: #1294144 + * SAUCE: i915_bdw: Update intel_ips.h file location + - LP: #1294144 + * SAUCE: i915_bdw: Revert "ACPI / i915: replace open-coded _DSM code with + helper functions" + - LP: #1294144 + * SAUCE: i915_bdw: Add an include back to intel_opregion.c + - LP: #1294144 + * SAUCE: i915_bdw: Only support Broadwell with ubuntu/i915 driver + - LP: #1294144 + * SAUCE: i915_bdw: Add i915_bdw_gpu_*() calls for ubuntu/i915 + - LP: #1294144 + * i915_bdw: [Config] Enable CONFIG_DRM_I915_BDW=m, and disable UMS + - LP: #1294144 + * SAUCE: i915_bdw: Rename ubuntu/i915 driver to i915_bdw + - LP: #1294144 + + [ Upstream Kernel Changes ] + + * netfilter: nf_conntrack_dccp: fix skb_header_pointer API usages + - CVE-2014-2523 + * Input: ALPS - add support for "Dolphin" devices + - LP: #1190867 + * x86/mm/pageattr: Lookup address in an arbitrary PGD + - LP: #1297658 + * x86/mm/pageattr: Add a PGD pagetable populating function + - LP: #1297658 + * x86/mm/pageattr: Add a PUD pagetable populating function + - LP: #1297658 + * x86/mm/pageattr: Add a PMD pagetable populating function + - LP: #1297658 + * x86/mm/pageattr: Add a PTE pagetable populating function + - LP: #1297658 + * x86/mm/pageattr: Add a PUD error unwinding path + - LP: #1297658 + * x86/mm/pageattr: Add last levels of error path + - LP: #1297658 + * x86/mm/cpa: Map in an arbitrary pgd + - LP: #1297658 + * x86/efi: Runtime services virtual mapping + - LP: #1297658 + * x86/efi: Check krealloc return value + - LP: #1297658 + * Include apm-mustang.dtb in kernel-image udeb + * drm/i915: add i915_reset_count + - LP: #1294144 + * drm/i915: add i915_get_reset_stats_ioctl + - LP: #1294144 + * drm: add DRM_INFO_ONCE() to print a one-time DRM_INFO() message + - LP: #1294144 + * drm: provide a helper for the encoder possible_crtcs mask + - LP: #1294144 + * drm: Move drm_encoder_crtc_ok() to core + - LP: #1294144 + * drm: Pass the display mode to drm_calc_timestamping_constants() + - LP: #1294144 + * drm: Pass the display mode to drm_calc_vbltimestamp_from_scanoutpos() + - LP: #1294144 + * drm: Pass 'flags' from the caller to .get_scanout_position() + - LP: #1294144 + + [ Upstream Kernel Changes ] + + * rebase to v3.13.7 + - LP: #1268468 + + -- Andy Whitcroft Mon, 24 Mar 2014 10:41:31 +0000 + +linux (3.13.0-19.40) trusty; urgency=low + + [ Tim Gardner ] + + * [Config] Add new mlx modules to d-i + * [Config] Fix d-i spelling error: ahxi_xgene --> ahci_xgene + * [Config] Added Muti-Arch support for linux-headers-PKGVER-ABINUM, + linux-tools-common, and linux-cloud-tools-common + - LP: #1295112 + * Release Tracking Bug + - LP: #1296484 + + [ Upstream Kernel Changes ] + + * Drivers: hv: vmbus: Specify the target CPU that should receive + notification + - LP: #1295813 + + -- Tim Gardner Sun, 23 Mar 2014 19:54:50 -0600 + +linux (3.13.0-19.39) trusty; urgency=low + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1295462 + + [ Andy Whitcroft ] + + * ubuntu: aufs3 -- update update scripting + * ubuntu: AUFS -- update to 75dbb997b5812e16771bec20e92449ba0b1705d9 + + [ Anup Patel ] + + * SAUCE: (no-up) KVM: Documentation: Fix typo for KVM_ARM_VCPU_INIT ioctl + * SAUCE: (no-up) arm64: KVM: Force undefined exception for Guest SMC + intructions + + [ dann frazier ] + + * SAUCE: (no-up) Fix pcie-xgene build failure + + [ Emmanuel Grumbach ] + + * SAUCE: iwlwifi: mvm: send udev event upon firmware error to dump logs + + [ Feng Kan ] + + * SAUCE: (no-up) power: reset: Add generic SYSCON register mapped reset + - LP: #1284433 + * SAUCE: (no-up) arm64: dts: Add X-Gene reboot driver dts node + - LP: #1284433 + + [ Hans de Goede ] + + * SAUCE: (no-up) libahci: Allow drivers to override start_engine + - LP: #1282920 + * SAUCE: (no-up) ahci-platform: Add support for devices with more then 1 + clock + - LP: #1282920 + * SAUCE: (no-up) ahci-platform: Add support for an optional regulator for + sata-target power + - LP: #1282920 + * SAUCE: (no-up) ahci-platform: Add enable_ / disable_resources helper + functions + - LP: #1282920 + * SAUCE: (no-up) ahci-platform: "Library-ise" ahci_probe functionality + - LP: #1282920 + * SAUCE: (no-up) ahci-platform: "Library-ise" suspend / resume + functionality + - LP: #1282920 + + [ Iyappan Subramanian ] + + * SAUCE: (no-up) Documentation: APM X-Gene SoC Ethernet DTS binding + documentation + * SAUCE: (no-up) arm64: dts: APM X-Gene SoC Ethernet device tree nodes + * SAUCE: (no-up) drivers: net: APM X-Gene SoC Ethernet base driver + * SAUCE: (no-up) drivers: net: APM X-Gene SoC Ethernet driver error + handling + * SAUCE: (no-up) drivers: net: APM X-Gene SoC Ethernet driver ethtool + support + + [ Loc Ho ] + + * SAUCE: (no-up) Documentation: Add APM X-Gene SoC 15Gbps Multi-purpose + PHY driver binding documentation + - LP: #1282920 + * SAUCE: (no-up) PHY: add APM X-Gene SoC 15Gbps Multi-purpose PHY driver + - LP: #1282920 + * SAUCE: (no-up) arm64: Add APM X-Gene SoC 15Gbps Multi-purpose PHY DTS + entries + - LP: #1282920 + * SAUCE: (no-up) Documentation: Add documentation for the APM X-Gene SoC + SATA host controller DTS binding + * SAUCE: (no-up) ata: Add APM X-Gene SoC AHCI SATA host controller driver + * SAUCE: (no-up) ata: Fix compiler warning with APM X-Gene host + controller driver + * SAUCE: (no-up) arm64: Add APM X-Gene SoC AHCI SATA host controller DTS + entries + * SAUCE: (no-up) clk: arm64: Fix the clock-names property for pcppll, + socpll, and socplldiv2 + + [ Marc Zyngier ] + + * SAUCE: (no-up) arm64: KVM: force cache clean on page fault when caches + are off + * SAUCE: (no-up) arm64: KVM: allows discrimination of AArch32 sysreg + access + * SAUCE: (no-up) arm64: KVM: trap VM system registers until MMU and + caches are ON + * SAUCE: (no-up) ARM: KVM: introduce kvm_p*d_addr_end + * SAUCE: (no-up) arm64: KVM: flush VM pages before letting the guest + enable caches + * SAUCE: (no-up) ARM: KVM: force cache clean on page fault when caches + are off + + [ Ming Lei ] + + * SAUCE: (no-up) arm64: apm-storm: support ttyS1 + * SAUCE: (no-up) apm: pcie: fix hang when no card connected + + [ Paolo Pisati ] + + * [Config] armhf: generic: disable CPU_IDLE + * [Config] armhf: CPU_FREQ=y + * [Config] armhf: TI_THERMAL=y + + [ Rameshwar Prasad Sahu ] + + * SAUCE: (no-up) rtc: Add X-Gene SoC Real Time Clock Driver + + [ Ravi Patel ] + + * SAUCE: (no-up) Documentation: misc-devices: APM X-Gene SoC QMTM + * SAUCE: (no-up) Documentation: devicetree: bindings for APM X-Gene SoC + QMTM + * SAUCE: (no-up) misc: xgene: base driver for APM X-Gene SoC QMTM + * SAUCE: (no-up) arm64: boot: dts: entries for APM X-Gene SoC QMTM + * SAUCE: (no-up) misc: xgene: error handling for APM X-Gene SoC QMTM + + [ Roger Quadros ] + + * SAUCE: (no-up) ata: ahci_platform: Manage SATA PHY + - LP: #1282920 + * SAUCE: (no-up) ata: ahci_platform: runtime resume the device before use + - LP: #1282920 + + [ Seth Forshee ] + + * SAUCE: iwlwifi: mvm: Free sram dump immediately after using it + * SAUCE: iwlwifi: mvm: Only notify userspace of fw error dump when one is + created + * SAUCE: iwlwifi: mvm: Don't create fw error dump if there's nothing to + dump + + [ Tanmay Inamdar ] + + * SAUCE: (no-up) arm64: PCI(e) arch support + * SAUCE: (no-up) pci: APM X-Gene PCIe controller driver + * SAUCE: (no-up) arm64: dts: APM X-Gene PCIe device tree nodes + * SAUCE: (no-up) dt-bindings: pci: xgene pcie device tree bindings + * SAUCE: (no-up) MAINTAINERS: entry for APM X-Gene PCIe host driver + + [ Tim Gardner ] + + * [Config] CONFIG_POWER_RESET_SYSCON=y for arm64 + * SAUCE: (no-up) Restrict CONFIG_POWER_RESET_SYSCON to arm64 only + * SAUCE: iwlwifi: Fix FTBS for armhf + * [Config] CONFIG_PHY_XGENE=m for arm64 + * [Config] CONFIG_AHCI_XGENE=m for arm64 + * [Config] CONFIG_NET_XGENE=m for arm64 + * [Config] CONFIG_RTC_DRV_XGENE=m for arm64 + * SAUCE: (no-up) Add drivers/phy/phy-core.ko to generic inclusion list + * [Config] Enable PCI for arm64 + * SAUCE: arm64: export __cpu_clear_user_page for modules + * SAUCE: ARCH_HAS_DMA_GET_REQUIRED_MASK=n for arm64 + * [Config] CONFIG_PCI_XGENE=y + * [Config] CONFIG_PHY_XGENE=y for arm64 + * [Config] CONFIG_RTC_DRV_XGENE=y for arm64 + * d-i: Add ahxi_xgene and xgene-enet + + [ Upstream Kernel Changes ] + + * Staging: rtl8821ae: rc.c: fix up function prototypes + * Staging: rtl8821ae: removed unused functions and variables + * Staging: rtl8821ae: add TODO file + * Staging: rtl8812ae: disable due to build errors + * staging: r8821ae: Fix build problems + * staging: r8821ae: Enable build by reverting BROKEN marking + * staging: rtl8821ae: Fixed the size of array to macro as discussed by + Linus + * staging/rtl8821ae: fix build, depends on MAC80211 + * powerpc: Reclaim two unused thread_info flag bits + * powerpc: Don't corrupt transactional state when using FP/VMX in kernel + * powerpc: Fix transactional FP/VMX/VSX unavailable handlers + * Drivers: hv: Ballon: Make pressure posting thread sleep interruptibly + - LP: #1294253 + * mac80211: don't validate unchanged AP bandwidth while tracking + - LP: #1294558 + * phy-core: Don't propagate -ENOSUPP from phy_pm_runtime_get_sync to + caller + * CONFIG_XGENE_QMTM=m for arm64 + + -- Tim Gardner Thu, 20 Mar 2014 21:51:11 -0400 + +linux (3.13.0-18.38) trusty; urgency=low + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1293725 + * [Config] Add hv_balloon to d-i virtio-modules + - LP: #1292216 + + [ Andy Whitcroft ] + + * [Config] d-i -- add virtio_scsi to virtio-modules + - LP: #1288607 + + [ Colin Ian King ] + + * SAUCE: intel_pstate: inform user that thermald is worth considering + + [ dann frazier ] + + * [Config] arm64: KVM=y + + [ Gerd Hoffmann ] + + * SAUCE: vmbus: add missing breaks + - LP: #1287398 + * SAUCE: vmbus: use resource for hyperv mmio region + - LP: #1287398 + * SAUCE: hyperv-fb: add support for generation 2 virtual machines. + - LP: #1287398 + * SAUCE: hyperv-fb: kick off efifb early + - LP: #1287398 + + [ Haiyang Zhang ] + + * SAUCE: hyperv: Change the receive buffer size for legacy hosts + - LP: #1290151 + + [ K. Y. Srinivasan ] + + * SAUCE: Drivers: hv: vmbus: Extract the mmio information from DSDT + - LP: #1287398 + + [ Paolo Pisati ] + + * SAUCE: leds-gpio: of: introduce MODULE_DEVICE_TABLE for module + autoloading + * [Config] amhf: LEDS_TRIGGER_HEARTBEAT=y + + [ Upstream Kernel Changes ] + + * Revert "xhci 1.0: Limit arbitrarily-aligned scatter gather." + - LP: #1293361 + * Revert "USBNET: ax88179_178a: enable tso if usb host supports sg dma" + - LP: #1293361 + * powerpc/tm: Fix crash when forking inside a transaction + * AX88179_178A: Add VID:DID for Lenovo OneLinkDock Gigabit LAN + - LP: #1291890 + * drm/vmwgfx: Fix a surface reference corner-case in legacy emulation + mode + * Input: wacom - scale up touch width and height values for Intuos Pro + * Input: wacom - make sure touch_max is set for touch devices + * Input: wacom - add support for three new Intuos devices + * Input: wacom - add reporting of SW_MUTE_DEVICE events + * Input: wacom - fix wacom->shared guards for dual input devices + * Input: wacom - add support for DTU-1031 + * net: fix for a race condition in the inet frag code + - CVE-2014-0100 + * net: sctp: fix sctp_sf_do_5_1D_ce to verify if we/peer is AUTH capable + - CVE-2014-0101 + * KEYS: Make the keyring cycle detector ignore other keyrings of the same + name + - CVE-2014-0102 + * ipv6: don't set DST_NOCOUNT for remotely added routes + - CVE-2014-2309 + + -- Andy Whitcroft Thu, 13 Mar 2014 10:06:05 +0000 + +linux (3.13.0-17.37) trusty; urgency=low + + [ Andy Whitcroft ] + + * Release Tracking Bug + - LP: #1290484 + * Revert "SAUCE: hv: Add vss daemon to Makefile" + * Revert "SAUCE: (no-up) tools/hv: add basic Makefile" + * Revert "SAUCE: (no-up) hv -- bodge hv_kvp_daemon so it can use the + local linux/hyperv.h" + * Revert "SAUCE: (no-up) hv -- bodge hv_vss_daemon so it can use the + local linux/hyperv.h" + * Revert "SAUCE: SELinux: security_load_policy: Silence frame-larger-than + warning" + * Revert "SAUCE: ARM: OMAP4460: cpuidle: Extend + PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD on cpuidle" + * ubuntu: overlayfs -- use kernel service credentials for copy up and + xattr manipulations + * [Packaging] tools -- hv tools build correctly against the built headers + * [Packaging] cloud-tools -- add the hv_fcopy_daemon to the package + * rebase to v3.13.6 + + [ Anton Blanchard ] + + * SAUCE: ibmveth: Fix endian issues with MAC addresses + + [ Bjarke Istrup Pedersen ] + + * SAUCE: hv: Add hyperv.h to uapi headers + - LP: #1282700 + + [ Fengguang Wu ] + + * SAUCE: Drivers: hv: fcopy_open() can be static + - LP: #1282700 + + [ K. Y. Srinivasan ] + + * SAUCE: Drivers: hv: Implement the file copy service + - LP: #1282700 + + [ Tim Gardner ] + + * SAUCE: (no-up) mei: Fix stable update misapplication + * SAUCE: (no-up) mei_me: Add module parameter to disable MSI + + [ Upstream Kernel Changes ] + + * arm64: KVM: Add Kconfig option for max VCPUs per-Guest + * arm64: KVM: Support X-Gene guest VCPU on APM X-Gene host + * ACPI / EC: Clear stale EC events on Samsung systems + * drm/ttm: Fix TTM object open regression + * SELinux: security_load_policy: Silence frame-larger-than warning + * ARM: OMAP4460: cpuidle: Extend PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD on + cpuidle + + [ Upstream Kernel Changes ] + + * rebase to v3.13.6 + - LP: #1282369 + - LP: #1260303 + + -- Tim Gardner Wed, 05 Mar 2014 06:52:34 -0700 + +linux (3.13.0-16.36) trusty; urgency=low + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1287903 + + [ Andy Whitcroft ] + + * Revert "[Config] lowlatency -- turn CONFIG_IRQ_FORCED_THREADING_DEFAULT + off temporarily" + + [ Chris Bainbridge ] + + * SAUCE: x86: set Pentium M as PAE capable + - LP: #930447 + + [ Dave Jones ] + + * SAUCE: taint: repurpose TAINT_UNSAFE_SMP to TAINT_CPU_OUT_OF_SPEC + - LP: #930447 + + [ Paolo Pisati ] + + * [Config] SND_DAVINCI_SOC && SND_AM33XX_SOC_EVM =m + * [Config] armhf: DRM_TILCDC=m + + [ Philippe Bergheaud ] + + * SAUCE: powerpc: fix xmon disassembler for little-endian + - LP: #1286255 + + [ Tim Gardner ] + + * [Config] CONFIG_MICROCODE_EARLY=y + * [Config] CONFIG_R8821AE=m + * [Config] Add some virtio drivers to -virtual + - LP: #1287401 + * [Config] inclusion-list: vesafb and virtio_balloon are built-in + * SAUCE: vmwgfx: Expose U32_MAX + + [ Upstream Kernel Changes ] + + * Revert "drm/vmwgfx: Fix regression caused by "drm/ttm: make ttm + reservation calls behave like reservation calls"" + * Revert "drm/vmwgfx: Fix the driver for large dma addresses" + * usb: ehci: fix deadlock when threadirqs option is used + - LP: #1274987, #1279081 + * Staging: rtl8812ae: Add Realtek 8821 PCI WIFI driver + - LP: #1287298 + * intel_pstate: Remove periodic P state boost + * intel_pstate: Add trace point to report internal state. + * intel_pstate: Take core C0 time into account for core busy calculation + * intel_pstate: Use LFM bus ratio as min ratio/P state + * intel_pstate: Add support for Baytrail turbo P states + * intel_pstate: Change busy calculation to use fixed point math. + * PM / hibernate: Fix restore hang in freeze_processes() + * ipmi: remove deprecated IRQF_DISABLED + * ipmi: use USEC_PER_SEC instead of 1000000 for more meaningful + * ipmi: fix timeout calculation when bmc is disconnected + * ipmi: Cleanup error return + * ipmi: Add missing rv in ipmi_parisc_probe() + * drm/ttm: ttm object security fixes for render nodes + * drivers: gpu: Mark functions as static in vmwgfx_kms.c + * drivers: gpu: Mark functions as static in vmwgfx_buffer.c + * drivers: gpu: Mark functions as static in vmwgfx_fence.c + * drm/vmwgfx: Fix the driver for large dma addresses + * drm/vmwgfx: Update the svga3d register header file for new device + version + * drm/vmwgfx: Update the driver user-space interface for guest-backed + objects + * drm/vmwgfx: Replace vram_size with prim_bb_mem for calculation of max + resolution + * drm/vmwgfx: Update the svga register definition + * drm/vmwgfx: Adapt capability reporting to new hardware version + * drm/vmwgfx: Add MOB management + * drm/vmwgfx: Hook up MOBs to TTM as a separate memory type + * drm/vmwgfx: Read bounding box memory from the appropriate register + * drm/vmwgfx: Add the possibility to validate a buffer as a MOB + * drm/vmwgfx: Hook up guest-backed queries + * drm/vmwgfx: Detach backing store from its resources when it is evicted + * drm/vmwgfx: Hook up guest-backed contexts + * drm/vmwgfx: Hook up guest-backed surfaces + * drm/vmwgfx: Add guest-backed shaders + * drm/vmwgfx: Validate guest-backed shader const commands + * drm/vmwgfx: Add new unused (by user-space) commands to the verifier + * drm/vmwgfx: Enable 3D for new hardware version + * drm/vmwgfx: Fix up the vmwgfx_drv.h header for new files + * drm/vmwgfx: Extend the command verifier to handle guest-backed on / off + * drm/vmwgfx: Make sure that the multisampling is off + * drm/vmwgfx: Implement a buffer object synccpu ioctl. + * drm/vmwgfx: Add a parameter to get max MOB memory size + * drm/vmwgfx: Block the BIND_SHADERCONSTS command + * drm/vmwgfx: Track context bindings and scrub them upon exiting execbuf + * drm/vmwgfx: Persistent tracking of context bindings + * drm/vmwgfx: Ditch the vmw_dummy_query_bo_prepare function + * drm/vmwgfx: Use the linux DMA api also for MOBs + * drm/vmwgfx: Update otable definitions + * drm/vmwgfx: Fix surface framebuffer check for guest-backed surfaces + * drm/vmwgfx: Implement 64-bit Otable- and MOB binding v2 + * drm/vmwgfx: Silence the device command verifier + * drm/vmwgfx: Invalidate surface on non-readback unbind + * drm/vmwgfx: Fix recently introduced sparse / smatch warnings and errors + * drm/vmwgfx: Don't commit staged bindings if execbuf fails + * drm/vmwgfx: Fix regression caused by "drm/ttm: make ttm reservation + calls behave like reservation calls" + * drm/vmwgfx: Fix SET_SHADER_CONST emulation on guest-backed devices + * drm/vmwgfx: Fix legacy surface reference size copyback + * drm/vmwgfx: Emulate legacy shaders on guest-backed devices v2 + * drm/vmwgfx: Detect old user-space drivers and set up legacy emulation + v2 + * drm/vmwgfx: Reemit context bindings when necessary v2 + * vmwgfx: Fix unitialized stack read in vmw_setup_otable_base + * drm/vmwgfx: Fix a couple of sparse warnings and errors + * drm/vmwgfx: Get maximum mob size from register SVGA_REG_MOB_MAX_SIZE + * drm/vmwgfx: unlock on error path in vmw_execbuf_process() + * drm/vmwgfx: Remove stray const + * drm/vmwgfx: Fix possible integer overflow + * drm/vmwgfx: Fix command defines and checks + * drm/vmwgfx: Remove some unused surface formats + * drm/vmwgfx: Make sure backing mobs are cleared when allocated. Update + driver date. + * drm/vmwgfx: avoid null pointer dereference at failure paths + + -- Tim Gardner Mon, 03 Mar 2014 13:04:10 -0700 + +linux (3.13.0-15.35) trusty; urgency=low + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1287175 + + [ Andy Whitcroft ] + + * [Config] tools -- enable cpupower on ppc64el + * [Config] ppc64el -- enable perf tools + * [Config] powerpc -- enable perf tools + * [Config] ppc64el -- reduce MAX_ORDER with 64k pages + * [Config] ppc64el -- switch to 64K system pages + + [ Benjamin Herrenschmidt ] + + * SAUCE: powerpc/powernv: Add iommu DMA bypass support for IODA2 + + [ Paul Mackerras ] + + * SAUCE: powerpc: Increase stack redzone for 64-bit userspace to 512 + bytes + + [ Upstream Kernel Changes ] + + * perf trace: Fix ioctl 'request' beautifier build problems on !(i386 || + x86_64) arches + * kvm, vmx: Really fix lazy FPU on nested guest + - LP: #1278531 + + -- Tim Gardner Mon, 03 Mar 2014 13:22:56 +0000 + +linux (3.13.0-14.34) trusty; urgency=low + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1285851 + + [ Andy Whitcroft ] + + * [Config] d-i -- add hyperv_keyboard to serial-modules udeb + - LP: #1285434 + + [ Hannes Frederic Sowa ] + + * SAUCE: ipv6: honor IPV6_PKTINFO with v4 mapped addresses on sendmsg + - LP: #1284535 + + [ Jason Wang ] + + * SAUCE: x86, hyperv: bypass the timer_irq_works() check + - LP: #1282693 + + [ Paolo Pisati ] + + * [Config] disable FB_OMAP2, DRM_OMAP=m + + [ Upstream Kernel Changes ] + + * ipv6: make IPV6_RECVPKTINFO work for ipv4 datagrams + - LP: #1284535 + * mei: remove flash_work_queue + * mei: drop redundant list_del_init + * mei: cleanup mei_irq_read_handler + * mei: enable marking internal commands + * mei: me: set dma mask using DMA mapping API + * Documentation/misc-devices/mei/mei-amt-version.c: remove unneeded call + of mei_deinit() + * mei: do not run reset flow from the interrupt thread + * mei: nfc: mei_nfc_free has to be called under lock + * mei: fix syntax in comments and debug output + * mei: revamp mei reset state machine + * mei: limit the number of consecutive resets + * mei: set client's read_cb to NULL when flow control fails + + -- Tim Gardner Wed, 26 Feb 2014 08:43:20 -0500 + +linux (3.13.0-13.33) trusty; urgency=low + + [ Andy Whitcroft ] + + * Release Tracking Bug + - LP: #1284614 + * [Config] powerpc -- CONFIG_SCSI_IBMVSCSI=y + * [Config] CONFIG_RT_GROUP_SCHED=n + - LP: #1284731 + + [ Stefan Bader ] + + * [Config] Revert back to build IPMI as a module on all arches + + [ Tim Gardner ] + + * rebase to v3.13.5 + + [ Upstream Kernel Changes ] + + * cifs: ensure that uncached writes handle unmapped areas correctly + * rebase to v3.13.5 + + -- Andy Whitcroft Tue, 25 Feb 2014 12:15:09 +0000 + +linux (3.13.0-12.32) trusty; urgency=low + + [ Andy Whitcroft ] + + * Release Tracking Bug + - LP: #1283074 + + * Revert "SAUCE: Drivers: hv: vmbus: Specify the target CPU that should + receive notification" + * [Packaging] tools -- clean up generic so it gives more targetted hints + * [Packaging] tools -- fix relative links + * rebase to v3.13.4 + + [ Colin Ian King ] + + * [Config][v2] armhf, arm64, powerpc, ppc64el: IPMI_SI=m + + [ Paolo Pisati ] + + * [Config] armhf: SOC_AM33XX=y + * [Config] armhf: TI_CPSW, TI_CPTS and TI_DAVINCI_[CPDMA|MDIO] = y + * [Config] armhf: RTC_DRV_OMAP=y + * [Config] build beaglebone and bleaglebone black dtbs + + [ Tony Breeds ] + + * SAUCE: powerpc/le: Ensure that the 'stop-self' RTAS token is handled + correctly + - LP: #1282712 + + [ Upstream Kernel Changes ] + + * Drivers: hv: vmbus: Specify the target CPU that should receive + notification + - LP: #1282694 + * Drivers: hv: vmbus: Don't timeout during the initial connection with + host + - LP: #1282694 + * hyperv: Add support for physically discontinuous receive buffer + - LP: #1282695 + * Input: hyperv-keyboard - pass through 0xE1 prefix + - LP: #1282699 + * rebase to v3.13.4 + + -- Andy Whitcroft Fri, 21 Feb 2014 12:51:17 +0000 + +linux (3.13.0-11.31) trusty; urgency=low + + [ Colin Ian King ] + + * [config] Set IPMI suppoort default to "y" + + [ Tim Gardner ] + + * [Config] CONFIG_USER_NS=y for ppc64el + * [Config] CONFIG_RESOURCE_COUNTERS=y for ppc64el + * Release Tracking Bug + - LP: #1282243 + + -- Tim Gardner Wed, 19 Feb 2014 12:04:43 -0500 + +linux (3.13.0-10.30) trusty; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] tools -- fix up do_tools interface which is assumed by + external tooling + + [ Tim Gardner ] + + * [Config] CONFIG_CGROUP_SCHED=y for ppc64el + * [Config] CONFIG_BLK_CGROUP=y for ppc64el + * [Config] CONFIG_USB_XHCI_HCD=y for ppc64el + * [Config] CONFIG_CGROUP_PERF=y for ppc64el + * Release Tracking Bug + - LP: #1281783 + + [ Upstream Kernel Changes ] + + * be2net: Use MCC_CREATE_EXT_V1 cmd for Skyhawk-R + - LP: #1281446 + * be2net: don't set "pport" field when querying "pvid" + - LP: #1281446 + * be2net: Log the profile-id used by FW during driver initialization + - LP: #1281446 + * be2net: do not call be_set/get_fw_log_level() on Skyhawk-R + - LP: #1281446 + * be2net: ignore mac-addr set call for an already programmed mac-addr + - LP: #1281446 + * be2net: fix incorrect setting of cmd_privileges for VFs + - LP: #1281446 + * be2net: Remove "10Gbps" from driver description string + - LP: #1281446 + * be2net: do not use frag index in the RX-compl entry + - LP: #1281446 + * be2net: use GET_MAC_LIST cmd to query mac-address from a pmac-id + - LP: #1281446 + * be2net: cleanup wake-on-lan code + - LP: #1281446 + * be2net: update driver version to 10.0.x + - LP: #1281446 + * be2net: Fix be_vlan_add/rem_vid() routines + - LP: #1281446 + + -- Tim Gardner Tue, 18 Feb 2014 13:13:24 -0700 + +linux (3.13.0-9.29) trusty; urgency=low + + [ Andy Whitcroft ] + + * Release Tracking Bug + - LP: #1280291 + * [Config] lowlatency -- turn CONFIG_IRQ_FORCED_THREADING_DEFAULT off + temporarily + * [Packaging] tools -- split out "cloud only" tools into a cloud tools + package + + [ Paolo Pisati ] + + * [Config] armhf: DISPLAY_CONNECTOR_HDMI && DISPLAY_ENCODER_TPD12S015 =y + + [ Tim Gardner ] + + * rebase to v3.13.3 + + [ Upstream Kernel Changes ] + + * Revert "mmc: sdhci-pci: Fix possibility of chip->fixes being null" + * Revert "mmc: sdhci-pci: Fix BYT sd card getting stuck in runtime + suspend" + * NVMe: Avoid shift operation when writing cq head doorbell + - LP: #1256155 + * NVMe: remove deprecated IRQF_DISABLED + - LP: #1256155 + * NVMe: compat SG_IO ioctl + - LP: #1256155 + * NVMe: Fix lockdep warnings + - LP: #1256155 + * NVMe: Cache dev->pci_dev in a local pointer + - LP: #1256155 + * NVMe: Device resume error handling + - LP: #1256155 + * NVMe: Schedule reset for failed controllers + - LP: #1256155 + * NVMe: Abort timed out commands + - LP: #1256155 + * NVMe: Surprise removal handling + - LP: #1256155 + * NVMe: Async IO queue deletion + - LP: #1256155 + * NVMe: Dynamically allocate partition numbers + - LP: #1256155 + * NVMe: Disable admin queue on init failure + - LP: #1256155 + * NVMe: Add a pci_driver shutdown method + - LP: #1256155 + * NVMe: Include device and queue numbers in interrupt name + - LP: #1256155 + * NVMe: Correct uses of INIT_WORK + - LP: #1256155 + * NVMe: Namespace use after free on surprise removal + - LP: #1256155 + * intel_pstate: Add setting voltage value for baytrail P states. + - LP: #1270736 + * mmc: sdhci-pci: break out definitions to header file + * mmc: sdhci-pci: add support of O2Micro/BayHubTech SD hosts + * mmc: sdhci-pci: Fix BYT sd card getting stuck in runtime suspend + * mmc: sdhci-pci: Fix possibility of chip->fixes being null + + [ Upstream Kernel Changes ] + + * rebase to v3.13.3 + + -- Tim Gardner Thu, 13 Feb 2014 06:08:09 -0700 + +linux (3.13.0-8.28) trusty; urgency=low + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1278963 + + [ Paolo Pisati ] + + * [Config] armhf: RTC_DRV_PL031=y + + [ Serge Hallyn ] + + * SAUCE: Overlayfs: allow unprivileged mounts + + [ Upstream Kernel Changes ] + + * kexec: add sysctl to disable kexec_load + - LP: #1259570 + * SELinux: Fix kernel BUG on empty security contexts. + - CVE-2014-1874 + + -- Tim Gardner Tue, 11 Feb 2014 08:35:39 -0500 + +linux (3.13.0-8.27) trusty; urgency=low + + [ John Johansen ] + + * SAUCE: Add config option to disable new apparmor 3 semantics + -LP: #1270215 + + [ Tim Gardner ] + + * [debian] Fix indep_hdrs_pkg_name + - LP: #1134441 + * Update lttng to 00808267d3ba7cdcddfed7bec7e62a40463c1307 Version 2.4.0-rc3 + * Enabled lttng build + * Don't build lttng for armhf + lttng hates gcc-4.8 for armhf + * Release Tracking Bug + - LP: #1277309 + + [ Upstream Kernel Changes ] + + * rebase to v3.13.2 + - LP: #1260303 + - LP: #1260303 + - LP: #1268468 + + -- Tim Gardner Thu, 06 Feb 2014 09:25:51 -0700 + +linux (3.13.0-7.26) trusty; urgency=low + + [ John Johansen ] + + * SAUCE: apparmor: fix uninitialized lsm_audit membe + - LP: #1268727 + * Add config option to optionally enable new apparmor 3 semantics + + [ Tim Gardner ] + + * [Config] Add lowlatency to getabis + * [Config] CONFIG_SECURITY_APPARMOR_AA3_SEMANTICS=y + - LP: #1270215 + * Release Tracking Bug + - LP: #1276810 + + [ Upstream Kernel Changes ] + + * x86, x32: Correct invalid use of user timespec in the kernel + - LP: #1274349 + - CVE-2014-0038 + + -- Tim Gardner Wed, 05 Feb 2014 15:49:44 -0500 + +linux (3.13.0-7.25) trusty; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: fix fmd headers" + * SAUCE: fix fmd headers + + -- Andy Whitcroft Tue, 04 Feb 2014 09:36:09 +0000 + +linux (3.13.0-7.24) trusty; urgency=low + + [ Stefan Bader ] + + * [Config] Make vmwgfx driver enable the framebuffer device + + [ Tim Gardner ] + + * rebase to v3.13.1 + * [Config] CONFIG_NFS_FS=m for ppc64el + * [Config] CONFIG_X86_SYSFB=n + https://lists.ubuntu.com/archives/kernel-team/2014-February/038166.html + * Release Tracking Bug + - LP: #1275898 + + [ Upstream Kernel Changes ] + + * i2c: piix4: Add support for AMD ML and CZ SMBus changes + - LP: #1272525 + * i2c: piix4: Use different message for AMD Auxiliary SMBus Controller + - LP: #1272525 + * mm: ignore VM_SOFTDIRTY on VMA merging + - LP: #1274917 + * drm/radeon: disable dpm on BTC + - LP: #1266984 + + [ Upstream Kernel Changes ] + + * rebase to v3.13.1 + + -- Tim Gardner Thu, 30 Jan 2014 15:24:48 +0000 + +linux (3.13.0-6.23) trusty; urgency=low + + [ Andy Whitcroft ] + + * [Config] fix up architecture for linux-tools + + -- Andy Whitcroft Thu, 30 Jan 2014 09:00:41 +0000 + +linux (3.13.0-6.22) trusty; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] limit linux-udebs- to matching arch + * [Config] powerpc -- disable perf to fix FTBFS + * [Config] ppc64el -- fix up missing udebs + + -- Andy Whitcroft Wed, 29 Jan 2014 16:00:28 +0000 + +linux (3.13.0-6.21) trusty; urgency=low + + [ Andy Fleming ] + + * SAUCE: net: Add support for handling queueing in hardware + * SAUCE: of_mdio: Add of_phy_attach function + * SAUCE: phylib: Add generic 10G driver + * SAUCE: phylib: Support attaching to gen10g_driver + * SAUCE: phylib: Add Clause 45 read/write functions + + [ Andy Whitcroft ] + + * SAUCE: fix fmd headers + * [Packaging] lowlatency -- merge out of tree flavours + * SAUCE: allow IRQs to be irq-threaded by default via config + * [Config]: enable CONFIG_IRQ_FORCED_THREADING_DEFAULT for lowlatency + * [Config] powerpc -- fix up Build-depends: + * Release Tracking Bug + - LP: #1273747 + + [ Ben Collins ] + + * SAUCE: PPC: PCI: Fix pcibios_io_space_offset() so it works for 32-bit + ptr/64-bit rsrcs + * SAUCE: Revert "phy: vitesse make vsc824x_add_skew static" + * SAUCE: Fixup freescale usb phy driver to work on ppc64 + * SAUCE: xgmac_mdio: Silence read errors + * SAUCE: Provide booke stub for kvmppc_is_bigendian() + * SAUCE: Fix stack overflow on ppc32 + * SAUCE: Use resource_size_t instead of long for PCI resource address + * SAUCE: net/phy: Export function for use by dpaa_eth + * [Packaging] powerpc -- merge out of tree powerpc arch + + [ Bjorn Helgaas ] + + * SAUCE: Revert "EISA: Log device resources in dmesg" + - LP: #1251816 + * SAUCE: Revert "EISA: Initialize device before its resources" + - LP: #1251816 + + [ Emil Medve ] + + * SAUCE: phylib: Minimum hack to get the generic 10G PHY driver to work + with 10G "fixed-link"s + + [ Kumar Gala ] + + * SAUCE: fsl_qbman: Add drivers for Freescale DPAA Qman & Bman + * SAUCE: fsl_pme2: Add support for DPAA PME + * SAUCE: fmd: FMD14 integration + * SAUCE: dpaa_eth: Ethernet driver for Freescale QorIQ DPA Architecture + * SAUCE: powerpc/85xx: Add DPAA/networking support for CoreNet + + [ Madalin Bucur ] + + * SAUCE: net/flow: remove sleeping and deferral mechanism from + flow_cache_flush + * SAUCE: net/phy: abort genphy_read_status when link changes during speed + and duplex reading + + [ Stefan Bader ] + + * [Config] move some VMWare related modules into main package + - LP: #1271669 + + [ Tim Gardner ] + + * [Config] Add r815x to nic-modules + - LP: #1273735 + * [Config] CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y + - LP: #239479 + + [ Upstream Kernel Changes ] + + * mmc: sdhci-pci: break out definitions to header file + - LP: #1239938 + * mmc: sdhci-pci: add support of O2Micro/BayHubTech SD hosts + - LP: #1239938 + * powerpc/book3e: rename interrupt_end_book3e with __end_interrupts + * powerpc/book3e: support CONFIG_RELOCATABLE + * book3e/kexec/kdump: enable kexec for kernel + * book3e/kexec/kdump: create a 1:1 TLB mapping + * book3e/kexec/kdump: introduce a kexec kernel flag + * book3e/kexec/kdump: implement ppc64 kexec specfic + * book3e/kexec/kdump: redefine VIRT_PHYS_OFFSET + * book3e/kexec/kdump: recover "r4 = 0" to create the initial TLB + + -- Andy Whitcroft Tue, 28 Jan 2014 22:59:46 +0000 + +linux (3.13.0-5.20) trusty; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] tools -- do not make symlinks when not making packages + * [Packaging] tools -- tidy up control.stub.in ordering + * [Packaging] tools -- tools-common is shared and not conditional + * rebase to v3.13 + + [ Dirk Brandewie ] + + * SAUCE: intel_pstate: Add setting voltage value for baytrail P states. + + [ KY Srinivasan ] + + * SAUCE: Drivers: hv: vmbus: Specify the target CPU that should receive + notification + + [ Upstream Kernel Changes ] + + * rebase to v3.13 + - LP: #1270603 + + -- Andy Whitcroft Fri, 17 Jan 2014 15:45:31 +0000 + +linux (3.13.0-4.19) trusty; urgency=low + + [ Andy Whitcroft ] + + * [Config] libunwind8-dev is now available for ppc64el + * [Packaging] tools -- make cpupower optional + * [Packaging] tools -- enable correctly for x86 + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1269872 + + [ Upstream Kernel Changes ] + + * SAUCE: ARM: OMAP: hwmod: Add SYSC offsets for AES IP + * SAUCE: ARM: OMAP4: hwmod: Add hwmod data for AES IP + * SAUCE: OMAP: AM33xx: hwmod: Correct AES module SYSC type + * SAUCE: crypto: omap-aes: add error check for pm_runtime_get_sync + + [ Upstream Kernel Changes ] + + * rebase to 85ce70fdf48aa290b4845311c2dd815d7f8d1fa5 + + -- Tim Gardner Wed, 15 Jan 2014 13:23:05 +0000 + +linux (3.13.0-3.18) trusty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.13-rc8 + * [Packaging] efi -- allow EFI signatures on any arch + + [ Tim Gardner ] + + * [Config] Fix vcs-git path + * Release Tracking Bug + - LP: #1268683 + + [ Upstream Kernel Changes ] + + * rebase to v3.13-rc8 + + -- Andy Whitcroft Sun, 12 Jan 2014 11:58:01 +0000 + +linux (3.13.0-2.17) trusty; urgency=low + + [ Andy Whitcroft ] + + * Release Tracking Bug + - LP: #1267809 + * [Config] apply Platform support>>CPUIdle driver>>CPU Idle config + defaults + * [Config] apply Platform support>>CPU Frequency scaling config defaults + * [Config] CONFIG_PARIDE_EPATC8=y + * [Config] apply Device Drivers >> Broadcom specific AMBA config defaults + * [Config] apply Bus options >> PCI support >> RapidIO support >> RapidIO + Switch drivers config defaults + * [Config] apply Cryptographic API config defaults + * [Config] apply Device Drivers >> Common Clock Framework config defaults + * [Config] apply Device Drivers >> Distributed Switch Architecture + drivers config defaults + * [Config] apply Device Drivers >> Graphics support >> Backlight & LCD + device support config defaults + * [Config] apply Device Drivers >> Graphics support >> Support for frame + buffer devices >> Bootup logo config defaults + * annotations -- update in tree annotations + * [Config] apply Bus options >> PCI support >> RapidIO support config + defaults + * [Config] CONFIG_POWER_AVS=y CONFIG_RESET_CONTROLLER=y + * [Config] apply Device Drivers >> 1-wire Bus Masters config defaults + * [Config] apply CAN Device Drivers >> Platform CAN drivers with Netlink + support config defaults + * [Config] apply Device Drivers >> Character devices >> Serial drivers + config defaults + * [Config] apply Device Drivers >> Generic Thermal sysfs driver config + defaults + * [Config] apply Device Drivers >> Character devices >> TPM Hardware + Support config defaults + * [Config] apply Device Drivers >> Character devices config defaults + * [Config] apply Device Drivers >> HID support >> USB HID support >> USB + HID transport layer config defaults + * [Config] apply Device Drivers >> HID support >> HID bus support config + defaults + * [Config] apply Device Drivers >> HID support >> USB HID support config + defaults + * annotations -- update in tree annotations + * [Config] apply Device Drivers >> GPIO Support config defaults + * [Config] update configs for apparmour update + + [ John Johansen ] + + * SAUCE: (no-up) apparmor: Sync to apparmor 3 - alpha 4 snapshot + * SAUCE: apparmor: fix unix domain sockets to be mediated on connection + - LP: #1208988 + * SAUCE: apparmor: allocate path lookup buffers during init + - LP: #1208988 + * SAUCE: (no-up) apparmor: Fix tasks not subject to, reloaded policy + - LP: #1236455 + + [ Tim Gardner ] + + * Revert "[Debian] getabis: Preface module with package name" + * [Config] Added ppc64el to getabis + * [packaging] Bump ABI for every new release + + -- Andy Whitcroft Fri, 10 Jan 2014 11:48:39 +0000 + +linux (3.13.0-1.16) trusty; urgency=low + + * First 3.13 upload. + * Release tracker + - LP: #1266852 + + -- Tim Gardner Tue, 07 Jan 2014 09:21:26 -0700 + +linux (3.13.0-0.15) trusty; urgency=low + + [ Tim Gardner ] + + * rebase to v3.13-rc7 + + [ Upstream Kernel Changes ] + + * rebase to v3.13-rc7 + + -- Tim Gardner Sun, 05 Jan 2014 06:13:33 -0700 + +linux (3.13.0-0.14) trusty; urgency=low + + [ Andy Whitcroft ] + + * rebase to 7a262d2ed9fa42fad8c4f243f8025580b58cf2f6 + + [ Tim Gardner ] + + * Remove ubuntu/dm-raid4-5 in favor of CONFIG_MD_RAID456 + * Update lttng to Version 2.4.0-rc2 + * lttng: Disabled trace_kvm_async_pf_completed + * [Config] CONFIG_IMA=y + - LP: #1244627 + + [ Upstream Kernel Changes ] + + * rebase to 7a262d2ed9fa42fad8c4f243f8025580b58cf2f6 + + -- Tim Gardner Thu, 02 Jan 2014 12:57:13 -0700 + +linux (3.13.0-0.13) trusty; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: aufs3 -- (no-up) aufs3-base.patch + * ubuntu: aufs3 -- (no-up) aufs3-mmap.patch + * ubuntu: aufs3 -- (no-up) aufs3-standalone.patch + * ubuntu: AUFS (no-squash): basic framework and update machinary + * ubuntu: AUFS -- update to 7b136a27b021da9010d8b6c101939dd298e46be7 + * ubuntu: aufs3 -- enable + * ubuntu: aufs3 -- update configs + + -- Andy Whitcroft Thu, 02 Jan 2014 09:41:02 +0000 + +linux (3.13.0-0.12) trusty; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to v3.13-rc6 + + -- Tim Gardner Tue, 31 Dec 2013 06:16:03 -0700 + +linux (3.13.0-0.11) trusty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: suspicious unlocked ->status reading and writing in ipc/sem.c + * [Config] ppc64el -- initial defconfig based -generic flavour + * [Config] initial defconfig for ppc64el + * [Config] ubuntuise ppc64el config + * [Config] ubuntuise ppc64el config part 2 + * [Config] d-i -- update empty udebs list + * [Config] ppc64el -- split extras package + + [ Anton Blanchard ] + + * SAUCE: KVM: PPC: Book3S HV: Add little-endian guest support + + [ Benjamin Herrenschmidt ] + + * SAUCE: powerpc/powernv: Add calls to support little endian + + [ Cédric Le Goater ] + + * SAUCE: KVM: PPC: Book3S: add helper routine to load guest instructions + * SAUCE: KVM: PPC: Book3S: add helper routines to detect endian order + * SAUCE: KVM: PPC: Book3S: MMIO emulation support for little endian + guests + + [ Paul E. McKenney ] + + * SAUCE: powerpc: Make 64-bit non-VMX copy_tofrom_user() bi-endian + + -- Andy Whitcroft Fri, 27 Dec 2013 16:48:55 +0000 + +linux (3.13.0-0.10) trusty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.13-rc5 + * [Config] updateconfigs following rebase to v3.13-rc5 + + [ Upstream Kernel Changes ] + + * rebase to v3.13-rc5 + - LP: #1260303 + - LP: #1260303 + - LP: #1260225 + + -- Andy Whitcroft Mon, 23 Dec 2013 12:48:28 +0000 + +linux (3.13.0-0.9) trusty; urgency=low + + [ Andy Whitcroft ] + + * [Config] d-i -- allow missing firmware + + -- Andy Whitcroft Fri, 20 Dec 2013 17:57:06 +0000 + +linux (3.13.0-0.8) trusty; urgency=low + + [ Andy Whitcroft ] + + * [Config] annotations -- first pass over entire config + * [Config] drop libunwind8-dev from Build-Depends for ppc64el + + [ Tim Gardner ] + + * [Config] Add arm64 device tree files + - LP: #1262901 + + -- Andy Whitcroft Thu, 19 Dec 2013 18:36:43 +0000 + +linux (3.13.0-0.7) trusty; urgency=low + + [ Rajesh B Prathipati ] + + * SAUCE: powerpc: Make unaligned accesses endian-safe for powerpc + + [ Tim Gardner ] + + * [Config] CONFIG_REGULATOR_S2MPS11=n for FTBS + + [ Upstream Kernel Changes ] + + * rebase to v3.13-rc4 + - LP: #1259790 + - LP: #1259437 + - LP: #1259435 + + -- Tim Gardner Fri, 13 Dec 2013 07:56:34 -0700 + +linux (3.13.0-0.6) trusty; urgency=low + + [ Paolo Pisati ] + + * [Config] armhf: arm64: VIRTIO_[BLK|MMIO|NET|CONSOLE|BALLOON]=y + * [Config] i386: amd64: VIRTIO_CONSOLE=y + + [ Tim Gardner ] + + * [Config] CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y + + -- Tim Gardner Sun, 08 Dec 2013 09:22:01 -0700 + +linux (3.13.0-0.5) trusty; urgency=low + + [ Andy Whitcroft ] + + * correct bug listing for v3.13-rc2 rebase + * [Config] ppc64el -- create linux-libc-dev + * [Debian] Improve tools version message + - LP: #1257715 + + [ Serge Hallyn ] + + * SAUCE: fork: Allow CLONE_PARENT after setns(CLONE_NEWPID)] + - LP: #1248590 + * SAUCE: vfs: Fix a regression in mounting proc + + [ Tim Gardner ] + + * [Config] Build-in ohci-pci + - LP: #1244176 + * Rebase to v3.13-rc3 + + [ Upstream Kernel Changes ] + + * Revert "Revert "fork: unify and tighten up CLONE_NEWUSER/CLONE_NEWPID + checks"" + - LP: #1248590 + + [ Upstream Kernel Changes ] + + * rebase to v3.13-rc3 + - LP: #1256840 + - LP: #1256212 + + -- Tim Gardner Sat, 07 Dec 2013 07:55:39 -0700 + +linux (3.13.0-0.4) trusty; urgency=low + + [ Tim Gardner ] + + * Rebase to v3.13-rc2 + + [ Upstream Kernel Changes ] + + * rebase to v3.13-rc2 + + -- Tim Gardner Fri, 29 Nov 2013 23:54:05 -0500 + +linux (3.13.0-0.3) trusty; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: Fix DocBook FTBS" + + [ Tim Gardner ] + + * [Debian] Re-sign modules after debug objcopy + - LP: #1253155 + * [Config] CONFIG_EXT4_USE_FOR_EXT23=y + + [ Upstream Kernel Changes ] + + * doc: fix generation of device-drivers + * rebase to b975dc3689fc6a3718ad288ce080924f9cb7e176 + + -- Tim Gardner Tue, 26 Nov 2013 12:24:42 -0700 + +linux (3.13.0-0.2) trusty; urgency=low + + [ Tim Gardner ] + + * SAUCE: Fix DocBook FTBS + + -- Tim Gardner Mon, 25 Nov 2013 13:24:15 -0700 + +linux (3.13.0-0.1) trusty; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to 7e3528c3660a2e8602abc7858b0994d611f74bc3 + + -- Tim Gardner Tue, 12 Nov 2013 07:28:53 -0700 + +linux (3.13.0-0.0) trusty; urgency=low + + * Major release bump. + + -- Andy Whitcroft Tue, 12 Nov 2013 21:37:52 +0000 + +linux (3.12.0-2.7) trusty; urgency=low + + * Fixed armhf ABI build failure. + * Release tracker + - LP: #1249477 + + -- Tim Gardner Fri, 08 Nov 2013 16:22:45 -0700 + +linux (3.12.0-2.6) trusty; urgency=low + + [ Joseph Salisbury ] + + * SAUCE: tg3: Add support for new 57786 device id. + - LP: #1242610 + + [ Tim Gardner ] + + * [Config] CONFIG_OABI_COMPAT=n + * [Config] add the wandboard to shipped dtb + - LP: #1249421 + * Release tracker + - LP: #1249477 + + -- Tim Gardner Fri, 08 Nov 2013 12:23:18 -0700 + +linux (3.12.0-2.5) trusty; urgency=low + + [ Andy Whitcroft ] + + * rebase to mainline v3.12 + * [Config] updateconfigs following rebase to v3.12 + * postinst -- improve relative symlink detection with missing files + - LP: #1248053 + * postinst -- fix unchanged link detection + * [Config] update configs following addition of apparmor fixes + + [ Anthony Wong ] + + * SAUCE: Work around broken ACPI backlight on Dell Inspiron 5537 + - LP: #1231305 + + [ John Johansen ] + + * SAUCE: (no-up) apparmor: Sync to apparmor 3 - alpha 4 snapshot + * SAUCE: apparmor: fix unix domain sockets to be mediated on connection + - LP: #1208988 + * SAUCE: apparmor: allocate path lookup buffers during init + - LP: #1208988 + + [ Tim Gardner ] + + * [Config] Remove superfluous ubuntu/lttng-modules + + [ Upstream Kernel Changes ] + + * Revert "fork: unify and tighten up CLONE_NEWUSER/CLONE_NEWPID checks" + - LP: #1248590 + + [ Upstream Kernel Changes ] + + * rebase to v3.12 + - LP: #1222850 + + [ Adam Conrad ] + * etc/getabis: Fetch arm64/generic abis as well + + -- Andy Whitcroft Wed, 06 Nov 2013 21:00:21 +0000 + +linux (3.12.0-1.3) trusty; urgency=low + + [ Andy Whitcroft ] + + * [Config] arm64 -- add arch to the configuration handlers + * [Config] arm64 -- add generic flavour + * [Config] arm64 -- default config + * [Config] arm64 -- fix up various FTBFS config options + * SAUCE: arm64: export __copy_in_user to modules + * [Config] arm64 -- disable ABI/module checks + * [Config] arm64 -- enforcer -- add arm64 to the enforcer + * [Config] arm64 -- enable udebs for arm64 + + [ Colin Watson ] + + * [Config] Clean up various udeb Provides + + [ Paolo Pisati ] + + * [Config] AHCI_IMX=y + * [Config] build imx*-wandboard dtbs + + [ Serge Hallyn ] + + * SAUCE: device_cgroup: remove can_attach + + [ Tim Gardner ] + + * rebase to v3.12-rc7 + * SAUCE: KVM: Fix modprobe failure for kvm_intel/kvm_amd + * Release tracker + - LP: #1245932 + + [ Upstream Kernel Changes ] + + * rebase to v3.12-rc7 + - LP: #1180881 + - LP: #1180881 + - LP: #1217957 + + -- Tim Gardner Sun, 27 Oct 2013 22:08:55 -0600 + +linux (3.12.0-0.2) trusty; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: (no-up) scsi: hyper-v storage -- mark as preferring READ + CAPACITY (16) at SPC-2" + * Revert "SAUCE: (no-up) scsi: hyper-v storage -- mark as VPD capable at + SPC-2" + * Revert "SAUCE: (no-up) scsi: add scsi device flag to request READ + CAPACITY (16) be preferred" + * Revert "SAUCE: (no-up) scsi: add scsi device flag to request VPD pages + be used at SPC-2" + * Revert "overlayfs: Update to v19" + * Revert "ubuntu: overlayfs v18 -- -- overlayfs: implement show_options" + * Revert "ubuntu: overlayfs v18 -- -- overlayfs: add statfs support" + * Revert "ubuntu: overlayfs v18 -- -- overlay filesystem" + * Revert "ubuntu: overlayfs v18 -- -- vfs: introduce + clone_private_mount()" + * Revert "ubuntu: overlayfs v18 -- -- vfs: export do_splice_direct() to + modules" + * Revert "ubuntu: overlayfs v18 -- -- overlay: overlay filesystem + documentation" + * ubuntu: overlayfs v20 -- overlayfs: add statfs support + * [Config] fix linux-libc-dev generation for arm64 + * [Config] fix linux-libc-dev generation for x32 + * [Config] add linux-libc-dev generation for ppc64el + + [ Erez Zadok ] + + * ubuntu: overlayfs v20 -- overlayfs: implement show_options + + [ Miklos Szeredi ] + + * ubuntu: overlayfs v20 -- vfs: add i_op->dentry_open() + * ubuntu: overlayfs v20 -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs v20 -- vfs: export __inode_permission() to modules + * ubuntu: overlayfs v20 -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs v20 -- overlay filesystem + * ubuntu: overlayfs v20 -- fs: limit filesystem stacking depth + + [ Neil Brown ] + + * ubuntu: overlayfs v20 -- overlay: overlay filesystem documentation + + [ Paolo Pisati ] + + * [Config] arm: VIRTIO_[BLK|NET|MMIO]=y + + [ Seth Forshee ] + + * SAUCE: (no-up) ACPI: Disable Windows 8 compatibility for some Lenovo + ThinkPads + - LP: #1183856 + + [ Tim Gardner ] + + * [Config] CONFIG_CRYPTO_CRCT10DIF=y, CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m + * rebase to v3.12-rc2 + * updateconfigs + * [Config] disable CONFIG_FB_VESA enforcer check + * [Config] Disable lttng for FTBS + * rebase to v3.12-rc3 + * rebase to v3.12-rc4 + * [Config] CONFIG_ANDROID=n + - LP: #1235161 + * [Config] CONFIG_L2TP_V3=y + - LP: #1235914 + * [Config] CONFIG_USB_OTG=n for all arches + * Release tracker + - LP: #1242811 + + [ Upstream Kernel Changes ] + + * scsi: hyper-v storsvc switch up to SPC-3 + + * rebase to v3.12-rc6 + - LP: #1235977 + - LP: #1235523 + - LP: #1239392 + - LP: #1227491 + + * rebase to v3.12-rc3 + - LP: #1231931 + + * rebase to v3.12-rc2 + - LP: #1213820 + - LP: #1213055 + - LP: #1198030 + + -- Tim Gardner Mon, 23 Sep 2013 07:41:07 -0600 + +linux (3.11.0-8.15) saucy; urgency=low + + [ Tim Gardner ] + + * Release tracker + - LP: #1227969 + + * Update lttng + Updated to git://git.lttng.org/lttng-modules.git 9998f5216f4641a79e158135 + Version 2.3.0+ + + [ Upstream Kernel Changes ] + + * igb: Add additional get_phy_id call for i354 devices + - LP: #1219619 + * igb: Read flow control for i350 from correct EEPROM section + - LP: #1219619 + * timekeeping: Fix HRTICK related deadlock from ntp lock changes + Required for lttng update. + + -- Tim Gardner Thu, 19 Sep 2013 07:41:49 -0600 + +linux (3.11.0-7.14) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] sort out linux-tools naming + - LP: #1205284 + * [Packaging] linux-tools: switch to common generic version helper + + [ Paolo Pisati ] + + * [Config] highbank: ecx1000: CPU_IDLE causes instabilities, disable it + + [ Tim Gardner ] + + * Release tracker + - LP: #1226160 + + [ Tony Lindgren ] + + * SAUCE: ARM: dts: Fix muxing and regulator for wl12xx on the SDIO bus + for pandaboard + + [ Upstream Kernel Changes ] + + * USB: handle LPM errors during device suspend correctly + - LP: #1011415 + * usb: don't check pm qos NO_POWER_OFF flag in usb_port_suspend() + - LP: #1011415 + * usb: Don't fail port power resume on device disconnect. + - LP: #1011415 + + [ Upstream Kernel Changes ] + + * rebase to v3.11.1 + + -- Tim Gardner Wed, 11 Sep 2013 07:30:17 -0600 + +linux (3.11.0-7.13) saucy; urgency=low + + * Release tracker + - LP: #1223545 + + [ Andy Whitcroft ] + + * SAUCE: (no-up) scsi: add scsi device flag to request VPD pages be used at SPC-2 + - LP: #1223499 + * SAUCE: (no-up) scsi: add scsi device flag to request READ CAPACITY (16) be preferred + - LP: #1223499 + * SAUCE: (no-up) scsi: hyper-v storage -- mark as VPD capable at SPC-2 + - LP: #1223499 + * SAUCE: (no-up) scsi: hyper-v storage -- mark as preferring READ CAPACITY (16) at SPC-2 + - LP: #1223499 + + [ Maximiliano Curia ] + + * SAUCE: (no-up) Only let characters through when there are active readers. + - LP: #1208740 + + [ Tim Gardner ] + + * [Debian] getabis: Commit new ABI directory, remove the old + * [Config] CONFIG_EFIVAR_FS=y + - LP: #1223195 + * [Config] CONFIG_EFI_VARS_PSTORE=m, + CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=n + * SAUCE: (no-up) USB: input: cm109.c: Convert high volume dev_err() to dev_err_ratelimited() + - LP: #1222850 + + [ Upstream Kernel Changes ] + + * Intel xhci: refactor EHCI/xHCI port switching + - LP: #1210858 + + -- Tim Gardner Tue, 10 Sep 2013 09:00:19 -0600 + +linux (3.11.0-6.12) saucy; urgency=low + + * Release tracker + - LP: #1222893 + + [ Andy Whitcroft ] + + * Revert "ubuntu: (no-squash) AUFS3 -- aufs3-standalone.patch" + * Revert "ubuntu: (no-squash) AUFS3 -- aufs3-base.patch" + * ubuntu: (no-squash) AUFS3 -- aufs3-base.patch + * ubuntu: (no-squash) AUFS3 -- aufs3-standalone.patch + - LP: #1222407 + + [ Paolo Pisati ] + + * [Config] restore mmc boot on panda + + [ Tyler Hicks ] + + * SAUCE: apparmor: Use shash crypto API interface for profile hashes + - LP: #1216294 + + [ Upstream Kernel Changes ] + + * net: calxedaxgmac: remove NETIF_F_FRAGLIST setting + * net: calxedaxgmac: read correct field in xgmac_desc_get_buf_len + * net: calxedaxgmac: fix race between xgmac_tx_complete and xgmac_tx_err + * net: calxedaxgmac: fix possible skb free before tx complete + * net: calxedaxgmac: update ring buffer tx_head after barriers + * net: calxedaxgmac: fix race with tx queue stop/wake + * net: calxedaxgmac: enable interrupts after napi_enable + * net: calxedaxgmac: fix various errors in xgmac_set_rx_mode + * net: calxedaxgmac: remove some unused statistic counters + * net: calxedaxgmac: fix rx DMA mapping API size mismatches + * net: calxedaxgmac: fix xgmac_xmit DMA mapping error handling + * mfd: rtsx: Read vendor setting from config space + - LP: #1201698 + + -- Tim Gardner Mon, 09 Sep 2013 07:21:06 -0600 + +linux (3.11.0-5.11) saucy; urgency=low + + * Release tracker + - LP: #1221886 + + [ Adam Lee ] + + * SAUCE: Bluetooth: Add support for 04ca:2007 + - LP: #1153448 + * SAUCE: Bluetooth: Add support for 105b:e065 + - LP: #1161261 + + [ Gavin Guo ] + + * SAUCE: Bluetooth: Add support for Broadcom 413c:8143 + - LP: #1166113 + + [ Upstream Kernel Changes ] + + * igb: Reset the link when EEE setting changed + - LP: #1219619 + * igb: Read register for latch_on without return value + - LP: #1219619 + * igb: Added rcu_lock to avoid race + - LP: #1219619 + * igb: don't allow SR-IOV without MSI-X + - LP: #1219619 + * igb: Update MTU so that it is always at least a standard frame size + - LP: #1219619 + * igb: Refactor of init_nvm_params + - LP: #1219619 + * igb: Refactor NVM read functions to accommodate devices with no flash + - LP: #1219619 + * igb: Add device support for flashless SKU of i210 device + - LP: #1219619 + * igb: Fix get_fw_version function for all parts + - LP: #1219619 + * igb: Add macro for size of RETA indirection table + - LP: #1219619 + * igb: Expose RSS indirection table for ethtool + - LP: #1219619 + * igb: Don't look for a PBA in the iNVM when flashless + - LP: #1219619 + * igb: Implementation of 1-sec delay for i210 devices + - LP: #1219619 + * igb: New PHY_ID for i354 device + - LP: #1219619 + * igb: M88E1543 PHY downshift implementation + - LP: #1219619 + * igb: No PHPM support in i354 devices + - LP: #1219619 + * igb: Support to get 2_5G link status for appropriate media type + - LP: #1219619 + * igb: Get speed and duplex for 1G non_copper devices + - LP: #1219619 + * igb: Implementation to report advertised/supported link on i354 devices + - LP: #1219619 + * igb: Update version number + - LP: #1219619 + * Bluetooth: Take proper tty_struct references + - LP: #1189998 + * Bluetooth: Remove the device from the list in the destructor + - LP: #1189998 + * Bluetooth: Move the tty initialization and cleanup out of open/close + - LP: #1189998 + * Bluetooth: Implement .activate, .shutdown and .carrier_raised methods + - LP: #1189998 + * Bluetooth: Fix the reference counting of tty_port + - LP: #1189998 + * Bluetooth: Purge the dlc->tx_queue to avoid circular dependency + - LP: #1189998 + + [ Wen-chien Jesse Sung ] + + * SAUCE: Bluetooth: Support for loading broadcom patchram firmware + - LP: #1065400 + * SAUCE: Bluetooth: Add support for 13d3:3388 and 13d3:3389 + - LP: #1065400 + + -- Tim Gardner Thu, 05 Sep 2013 08:06:17 -0600 + +linux (3.11.0-5.10) saucy; urgency=low + + [ Andy Whitcroft ] + + * Release tracker + - LP: #1220222 + * Revert "[Config] Fix ubuntu directoy Kbuilds" + * Revert "aufs update dropped some Kbuild files" + * Revert "ubuntu: AUFS -- follow rename of loop.h into drivers/block" + * Revert "ubuntu: AUFS -- update to + 8e503d4142c189ed6c47a2177ad2cd058e8d340e" + * Revert "ubuntu: (no-squash) AUFS3 -- aufs3-standalone.patch" + * Revert "ubuntu: (no-squash) AUFS3 -- aufs3-base.patch" + * rebase to v3.11 final + * [Config] clean up ubuntu/Kconfig and ubuntu/Makefile + * ubuntu: AUFS (no-squash): basic framework and update machinary + * ubuntu: (no-squash) AUFS3 -- aufs3-base.patch + * ubuntu: (no-squash) AUFS3 -- aufs3-standalone.patch + * ubuntu: AUFS -- update to 5ac5fe26a90a818218310e208d17688fddb07622 + * ubuntu: (no-squash) AUFS -- enable aufs + * ubuntu: AUFS -- fix remaining d_count references to use accessor + * ubuntu: lttng -- follow rename of pid_ns + * SAUCE: disable stack-protector for ARM compressed bootloader + + [ Paolo Pisati ] + + * [Config] ARM_ATAG_DTB_COMPAT=y + + [ Rob Herring ] + + * [Config] Enable KVM and virtio for armhf generic-lpae + + [ Tim Gardner ] + + * [Config] CONFIG_ARPD=y + * [Config] CONFIG_ZSWAP=y + - LP: #1215379 + + [ Upstream Kernel Changes ] + + * uvcvideo: quirk PROBE_DEF for Dell SP2008WFP monitor. + - LP: #1217957 + * ARM: use phys_addr_t for DMA zone sizes + * ARM: highbank: enable DMA zone for LPAE + * ARM: highbank: select ARCH_HAS_HOLES_MEMORYMODEL + * ARM: highbank: select required errata work-arounds + * DMA: fix AMBA PL08x compilation issue with 64bit DMA address type + * DMA: fix printk warning in AMBA PL08x DMA driver + * ARM: highbank: select ARCH_DMA_ADDR_T_64BIT for LPAE + * ARM: move outer_cache declaration out of ifdef + * ARM: highbank: avoid L2 cache smc calls when PL310 is not present + * ARM: highbank: clean-up some unused includes + * ARM: xen: only set pm function ptrs for Xen guests + + [ Upstream Kernel Changes ] + + * rebase to v3.11 + + -- Andy Whitcroft Tue, 03 Sep 2013 17:08:06 +0100 + +linux (3.11.0-4.9) saucy; urgency=low + + [ Tim Gardner ] + + * rebase to v3.11-rc7 + * Release tracker + - LP: #1216962 + + [ Upstream Kernel Changes ] + + * mwifiex: do not create AP and P2P interfaces upon driver loading + - LP: #1212720 + + -- Tim Gardner Mon, 26 Aug 2013 06:25:35 -0600 + +linux (3.11.0-3.8) saucy; urgency=low + + [ Johannes Berg ] + + * SAUCE: mac80211: ignore (E)CSA in probe response frames + - LP: #1201470 + + -- Tim Gardner Fri, 23 Aug 2013 09:47:36 -0600 + +linux (3.11.0-3.7) saucy; urgency=low + + [ Tim Gardner ] + + * SAUCE: (no-up) hv_vss_daemon -- prevent self-daemonising to allow + upstart to track + * SAUCE: (no-up) hv -- bodge hv_vss_daemon so it can use the local + linux/hyperv.h + * SAUCE: hv: Add vss daemon to Makefile + * [Debian] Add hv_vss_daemon to tools package + - LP: #1213282 + * [Config] Fix ubuntu directoy Kbuilds + - LP: #1181755 + + -- Tim Gardner Tue, 20 Aug 2013 08:34:05 -0600 + +linux (3.11.0-3.6) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] tools: conditionalise x86 and hyper-v tools sensibly + * [Config] tools: enable x86 and hyper-v + + [ John Johansen ] + + * Revert "SAUCE: (no-up) apparmor: Sync to apparmor 3 dev stable + snapshot" + * Revert "SAUCE: (no-up) apparmor: fix apparmor module status for none + root users" + * SAUCE: (no-up) apparmor: Sync to apparmor 3 - alpha 4 snapshot + + [ Joseph Salisbury ] + + * SAUCE: (no-up) intel_ips: blacklist ASUSTek G60JX laptops + - LP: #1210848 + + [ Kamal Mostafa ] + + * [debian] tools: ship 'cpupower' in linux-tools + - LP: #1158668 + * [Config] Build-dep on libpci-dev for cpu tools + - LP: #1158668 + + [ Tim Gardner ] + + * rebase to v3.11-rc6 + * Release tracker + - LP: #1213941 + + -- Tim Gardner Fri, 16 Aug 2013 07:02:07 -0600 + +linux (3.11.0-2.5) saucy; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_PM_DEBUG=y + - LP: #1210539 + * rebase to v3.11-rc5 + * Release tracker + - LP: #1211378 + + -- Tim Gardner Mon, 12 Aug 2013 06:10:39 -0600 + +linux (3.11.0-1.4) saucy; urgency=low + + [ Tim Gardner ] + + * Bump ABI when making changes to the inclusion list lest + you cause conflicts with existing installed kernel + packages. + - LP: #1210331 + + -- Tim Gardner Fri, 09 Aug 2013 03:03:51 +0100 + +linux (3.11.0-0.3) saucy; urgency=low + + [ Tim Gardner ] + + * [Config] Include rbd and kvm in the virtual inclusion list + - LP: #1206961 + * [Config] Removed obsolete inclusion list entries + + -- Tim Gardner Tue, 06 Aug 2013 08:52:14 +0100 + +linux (3.11.0-0.2) saucy; urgency=low + + [ Bruce Allan ] + + * SAUCE: (no-up) e1000e: fix I217/I218 PHY initialization flow + - LP: #1206757 + * SAUCE: (no-up) e1000e: enable support for new device IDs + - LP: #1206757 + + [ John Johansen ] + + * SAUCE: (no-up) apparmor: Sync to apparmor 3 dev stable snapshot + + [ Paolo Pisati ] + + * build vexpress a15 dtb + * [Config] disable Broadcom bcm support (ARCH_BCM) + * [Config] disable Allwinner a1x support (ARCH_SUNXI) + * [Config] disable WonderMedia WM8850 support (ARCH_WM8850) + * [Config] disable Rockchip support (ARCH_ROCKCHIP) + * [Config] disable STMicroelectronics STiH41x SOCs (ARCH_STI) + * [Config] disable TI Keystone, AM43xx and OMAP5 support + * [Config] ARM_APPENDED_DTB=y + + [ Tim Gardner ] + + * rebase to v3.11-rc4 + * overlayfs: Update to v19 + * [Config] Enable overlayfs + * SAUCE: Fix lttng compile errors + + [ Upstream Kernel Changes ] + + * rebase to v3.11-rc4 + - LP: #1163720 + - LP: #1162026 + - LP: #1195636 + - LP: #1195597 + - LP: #1180409 + - LP: #1168430 + + -- Tim Gardner Sun, 04 Aug 2013 03:45:31 -0600 + +linux (3.11.0-0.1) saucy; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to 64ccccf8525fee499625b517c0faadf784c79e93 + - LP: #1163720 + - LP: #1162026 + - LP: #1195636 + - LP: #1195597 + - LP: #1180409 + - LP: #1168430 + + -- Tim Gardner Mon, 08 Jul 2013 08:50:46 -0600 + +linux (3.10.0-2.10) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_INTEL_MEI*=m + - LP: #1196155 + * [Config] CONFIG_DEBUG_INFO=y + + [ Stephen Warren ] + + * [Config] fix Calxeda xgmac module filename + + [ Upstream Kernel Changes ] + + * Revert "serial: 8250_pci: add support for another kind of NetMos + Technology PCI 9835 Multi-I/O Controller" + - LP: #1190967 + * mfd: lpc_ich: Add support for Intel Avoton SoC + - LP: #1196658 + + -- Andy Whitcroft Fri, 05 Jul 2013 18:08:02 +0100 + +linux (3.10.0-2.9) saucy; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.10 + + [ John Johansen ] + + * Revert "SAUCE: (no-up) apparmor: Fix quieting of audit messages for + network mediation" + * Revert "SAUCE: (no-up) apparmor: Fix compile warnings" + * Revert "SAUCE: (no-up) AppArmor: basic networking rules" + * Revert "SAUCE: (no-up) apparmor: Add the ability to mediate mount" + * Revert "SAUCE: (no-up) AppArmor: Add profile introspection file to + interface" + * Revert "SAUCE: (no-up) AppArmor: Disable Add PR_{GET,SET}_NO_NEW_PRIVS + to prevent execve from granting privs" + * SAUCE: (no-up) apparmor: Sync to apparmor 3 dev stable snapshot + + [ Upstream Kernel Changes ] + + * rebase to v3.10 + + -- Andy Whitcroft Mon, 01 Jul 2013 17:42:29 +0100 + +linux (3.10.0-1.8) saucy; urgency=low + + [ Andy Whitcroft ] + + * Release Tracking Bug + - LP: #1195717 + + [ Andy Whitcroft ] + + * Revert "ubuntu: overlayfs -- follow change to do_splice_direct + interface" + * Revert "ubuntu: overlayfs -- expose do_splice_direct prototype" + * Revert "SAUCE: ubuntu: overlayfs -- ovl_path_open should not take path + reference" + * Revert "ubuntu: overlayfs -- add FS_ALIAS" + * Revert "ubuntu: overlayfs -- + overlayfs-copy-up-i_uid-i_gid-from-the-underlying-inode" + * Revert "ubuntu: overlayfs -- ovl-switch-to-inode_permission" + * Revert "ubuntu: overlayfs -- vfs-export-inode_permission-to-modules" + * Revert "ubuntu: overlayfs -- overlayfs-create-new-inode-in-ovl_link" + * Revert "ubuntu: overlayfs -- + overlayfs-fix-possible-leak-in-ovl_new_inode" + * Revert "ubuntu: overlayfs -- fs-limit-filesystem-stacking-depth" + * Revert "ubuntu: overlayfs -- overlay-overlay-filesystem-documentation" + * Revert "ubuntu: overlayfs -- overlayfs-implement-show_options" + * Revert "ubuntu: overlayfs -- overlayfs-add-statfs-support" + * Revert "ubuntu: overlayfs -- overlay filesystem" + * Revert "ubuntu: overlayfs -- vfs-introduce-clone_private_mount" + * Revert "ubuntu: overlayfs -- vfs-export-do_splice_direct-to-modules" + * Revert "ubuntu: overlayfs -- vfs-add-i_op-dentry_open" + * ubuntu: overlayfs v18 -- -- overlayfs: add statfs support + + [ Erez Zadok ] + + * ubuntu: overlayfs v18 -- -- overlayfs: implement show_options + + [ Miklos Szeredi ] + + * ubuntu: overlayfs v18 -- -- vfs: add i_op->dentry_open() + * ubuntu: overlayfs v18 -- -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs v18 -- -- vfs: export __inode_permission() to modules + * ubuntu: overlayfs v18 -- -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs v18 -- -- overlay filesystem + * ubuntu: overlayfs v18 -- -- fs: limit filesystem stacking depth + + [ Neil Brown ] + + * ubuntu: overlayfs v18 -- -- overlay: overlay filesystem documentation + + [ Tim Gardner ] + + * [Config] CONFIG_SUNRPC_DEBUG=y + - LP: #1127319 + + -- Andy Whitcroft Fri, 28 Jun 2013 10:26:52 +0100 + +linux (3.10.0-0.7) saucy; urgency=low + + [ Andy Whitcroft ] + + * autopkgtest: switch Depends: to build-essential + + -- Andy Whitcroft Tue, 25 Jun 2013 08:40:55 +0100 + +linux (3.10.0-0.6) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_ARCH_TEGRA to fix FTBFS on armhf + * SAUCE: ubuntu: overlayfs -- ovl_path_open should not take path reference + - LP: #1098378 + * ubuntu: AUFS -- update to 4f14cef47eb7c23eda7198931fbab1040866b6ee + * ubuntu: overlayfs -- expose do_splice_direct prototype + * ubuntu: overlayfs -- follow change to do_splice_direct interface + * [Config] flip CONFIG_NO_HZ_FULL_ALL off as it is overheating machines + - LP: #1192691 + + [ Stefan Bader ] + + * (d-i) Add dm-snapshot to md-modules + - LP: #1191726 + + [ Tim Gardner ] + + * Release tracker + - LP: #1194149 + * [Config] CONFIG_WIL6210=n for armhf + * [Config] d-i: Add calxedaxgmac to nic-modules + - LP: #1192358 + * [debian] Use dh_strip + - LP: #1192759 + * [Config] Enable perf for armhf + * do_tools=false when cross compiling + * [Config] CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y + - LP: #1108082 + + [ Upstream Kernel Changes ] + + * nsp32: switch reset delay to msleep() as it is tooo long + * alx: add a simple AR816x/AR817x device driver + Plucked from linux-next. replaces ubuntu/alx in favor of + 'to be merged' version in 3.11. + * rebase to v3.10-rc7 + - LP: #1189363 + + -- Tim Gardner Sat, 22 Jun 2013 18:10:31 -0600 + +linux (3.10.0-0.5) saucy; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.10-rc6 + * [Config] updateconfigs following rebase to v3.10-rc6 + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc6 + + -- Andy Whitcroft Mon, 17 Jun 2013 11:12:39 +0100 + +linux (3.10.0-0.4) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Config] updateconfigs following rebase to v3.10-rc4 + + -- Andy Whitcroft Mon, 10 Jun 2013 11:42:28 +0100 + +linux (3.10.0-0.3) saucy; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.10-rc5 + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc5 + - LP: #1186170 + + -- Andy Whitcroft Mon, 10 Jun 2013 09:23:31 +0100 + +linux (3.10.0-0.2) saucy; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.10-rc4 + * [Config] CONFIG_BINFMT_SCRIPT=y to fix booting initramfs scripts + * [Config] enable SND_PCM_DEBUG SND_PCM_XRUN_DEBUG + - LP: #1187744 + * [Config] enforce CONFIG_BINFMT_SCRIPT=y + + [ Dave Chiluk ] + + * SAUCE: ncpfs: fix rmdir returns Device or resource busy + - LP: #1035226 + + [ Tim Gardner ] + + * rebase to v3.10-rc3 + * [Config] sparc be gone + * [Config] ia64 be gone + * d-i: block-modules provides nbd-modules + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc4 + * rebase to v3.10-rc3 + + -- Tim Gardner Tue, 28 May 2013 06:16:46 -0600 + +linux (3.10.0-0.1) saucy; urgency=low + + [ Tim Gardner ] + + * UBUNTU: Disabled lttng + * UBUNTU: Disable aufs for FTBS + * UBUNTU: Disabled alx + * UBUNTU: alx: rename NETIF_F_HW_VLAN_* feature flags to NETIF_F_HW_VLAN_CTAG_* + * UBUNTU: rebase to v3.10-rc2 + * UBUNTU: SAUCE: uvcvideo: quirk PROBE_DEF for Alienware X51 OmniVision webcam + + [ Andy Whitcroft ] + + * UBUNTU: [Config] update standards version to 3.9.4.0 + * UBUNTU: [Config] squash duplicate package description (long and short) + * UBUNTU: [Config] fix up Vcs-git: to point to saucy + * UBUNTU: [Config] drop depenancy on util-linux as is Essential + * UBUNTU: [Config] drop redundant Build-Conficts: + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc2 + - LP: #1180351 + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc1 + - LP: #1172151 + - LP: #1089795 + - LP: #1167270 + - LP: #1128840 + + -- Tim Gardner Tue, 14 May 2013 13:41:07 -0600 + +linux (3.10.0-0.0) saucy; urgency=low + + * Dummy + + -- Tim Gardner Thu, 09 May 2013 20:30:40 +0100 + +linux (3.9.0-2.6) saucy; urgency=low + + [ Tim Gardner ] + + * rebase to v3.9.2 + + -- Tim Gardner Thu, 09 May 2013 20:30:40 +0100 + +linux (3.9.0-1.5) saucy; urgency=low + + [ Tim Gardner ] + + * rebase to v3.9.1 + + -- Tim Gardner Wed, 08 May 2013 12:49:45 -0400 + +linux (3.9.0-0.4) saucy; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: overlayfs -- add FS_ALIAS + + [ Tim Gardner ] + + * Added lttng + - LP: #1175784 + + -- Tim Gardner Thu, 02 May 2013 17:17:13 -0400 + +linux (3.9.0-0.3) saucy; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to v3.9 + + -- Tim Gardner Mon, 29 Apr 2013 18:20:00 -0400 + +linux (3.9.0-0.2) saucy; urgency=low + + [ Tim Gardner ] + + * Enable extras packaging for amd64/i386. + Fixes build depenencies with brittany and linux-meta. + + -- Tim Gardner Mon, 29 Apr 2013 05:37:01 -0600 + +linux (3.9.0-0.1) saucy; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc8 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc7 + - LP: #1128840 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc6 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc5 + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc4 + - LP: #1095315 + - LP: #886975 + - LP: #1086921 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc3 + - LP: #1155016 + - LP: #1103594 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc2 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc1 + - LP: #901105 + - LP: #961286 + - LP: #1011792 + - LP: #1128934 + - LP: #886975 + - LP: #978807 + + -- Tim Gardner Wed, 20 Feb 2013 09:12:39 -0700 + +linux (3.8.0-7.14) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_RCU_USER_QS=n + * [Config] CONFIG_MTD_ONENAND_SIM=n + * annotations: add annotations for CONFIG_CC_STACKPROTECTOR + + [ Upstream Kernel Changes ] + + * rebase to v3.8 + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1130111 + * UBUNTU: SAUCE: rt2x00: rt2x00pci_regbusy_read() - only print register access failure once + - LP: #1128840 + + -- Tim Gardner Mon, 18 Feb 2013 09:25:56 -0700 + +linux (3.8.0-6.13) raring; urgency=low + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1125364 + * Add ahci modules to d-i + - LP: #1124415 + + + [ Chris Wilson ] + + * SAUCE: drm/i915: Wait for pending flips to complete before tearing down + the encoders + - LP: #1097315 + + -- Tim Gardner Wed, 13 Feb 2013 12:16:48 -0700 + +linux (3.8.0-6.12) raring; urgency=low + + [Tim Gardner] + + * perf: NO_LIBPERL=1 + * Fix linux-headers dependency + * Release Tracking Bug + - LP: #1124362 + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_AUFS_EXPORT to allow nfs exports + - LP: #1121699 + + [ Daniel Vetter ] + + * SAUCE: drm/i915: write backlight harder + - LP: #954661 + + -- Tim Gardner Wed, 13 Feb 2013 10:25:11 -0700 + +linux (3.8.0-6.11) raring; urgency=low + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1122071 + * rebase to v3.8-rc7 + * Add libaudit-dev as a build dependency + * Build perf with NO_LIBPYTHON=1 to avoid a python build dependency. + + [ Leann Ogasawara ] + + * [Config] Remove CONFIG_SATA_AHCI annotation + + -- Tim Gardner Fri, 08 Feb 2013 07:41:13 -0500 + +linux (3.8.0-5.10) raring; urgency=low + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1118568 + + * Bump ABI to fix install issue with 3.8.0-4.8. + Moving drivers/ata/*ahci* to linux-image caused an + install conflict with linux-image-extras without an + ABI bump. + + [ Jan Beulich ] + + * SAUCE: xen-pciback: rate limit error messages from + xen_pcibk_enable_msi{, x}() + - LP: #1117336 + - CVE-2013-0231 + + -- Tim Gardner Thu, 07 Feb 2013 05:38:12 -0700 + +linux (3.8.0-4.9) raring; urgency=low + + [ Herton Ronaldo Krzesinski ] + + * d-i: Add mellanox ethernet drivers to nic-modules + - LP: #1015339 + + [ Joseph Salisbury ] + + * SAUCE: ACPI: Add DMI entry for Sony VGN-FW41E_H + - LP: #1113547 + + [ Kamal Mostafa ] + + * SAUCE: alx driver import script + + [ Qualcomm Atheros, Inc ] + + * SAUCE: alx: Update to heads/master + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1117673 + + * [debian] Remove dangling symlink from headers package + - LP: #1112442 + * [config] CONFIG_ALX=m + * [Config] Add alx to d-i nic-modules + * [Config] CONFIG_SATA_AHCI=m + - LP: #1056563 + + -- Leann Ogasawara Tue, 05 Feb 2013 05:54:32 -0800 + +linux (3.8.0-4.8) raring; urgency=low + + [ Allen Ibara ] + + * SAUCE: imx6: dts: Add IMX6Q AHCI support + + [ Andy Whitcroft ] + + * rebase to v3.8-rc6 + * updateconfigs following rebase to v3.8-rc6 + + [Leann Ogasawara] + + * Release Tracking Bug + - LP: #1112573 + + [ Paolo Pisati ] + + * SAUCE: imx6: enable sata clk if SATA_AHCI_PLATFORM + * [Config] SERIAL_AMBA_PL011=y (vexpress serial console) + * [Config] MMC_ARMMMCI=y (vexpress mmc) + * [Config] FB_ARMCLCD=y (vexpress framebuffer) + + [ Seth Forshee ] + + * [Config] CONFIG_MAC80211_MESSAGE_TRACING=y + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc6 + - LP: #1107477 + + -- Leann Ogasawara Fri, 01 Feb 2013 07:20:59 -0800 + +linux (3.8.0-3.7) raring; urgency=low + + [ Andy Green ] + + * SAUCE: ARM: OMAP2+: add cpu id register to MAC address helper + * SAUCE: ARM: omap2 add mac address allocation register api + * SAUCE: ARM: omap2 panda register ethernet and wlan for automatic mac + allocation + + [ Leann Ogasawara ] + + * rebase to v3.8-rc5 + * Release Tracking Bug + - LP: #1111486 + + [ Paolo Pisati ] + + * SAUCE: davinci: vpss: compilation fix + * [Config] enable TI OMAP4 support (Pandaboard/ES) + * [Config] OMAP_USB2=y (since TWL6030_USB depends on it) + * [Config] enable Freescale IMX6 support (SabreLite) + * [Config] SERIAL_IMX_CONSOLE=y + * [Config] MMC_*_IMX=y + * [Config] disable USB_SUSPEND + * [Config] USB_MXS_PHY=y + * [Config] USB_CHIPIDEA=y + * SAUCE: DTB: add support for multiple DTBs + * SAUCE: DTB: build imx6q-sabrelite + * SAUCE: DTB: build beaglexm + * SAUCE: DTB: build panda/panda es + * [Config] disable CPU_FREQ + * [Config] PANEL_TFP410=y (video DVI output) + * [Config] SND_OMAP_SOC*=y + * [Config] SND_IMX_SOC*=y + * [Config] I2C_IMX=y + * [Config] SPI_IMX=m + + [ Stefan Bader ] + + * [Config] Move 9p modules into generic package + - LP: #1107658 + + [ Tony Lindgren ] + + * SAUCE: ARM: OMAP2+: Limit omap initcalls to omap only on multiplatform + kernels + * SAUCE: ARM: OMAP2+: Use omap initcalls + * SAUCE: ARM: OMAP: Fix i2c cmdline initcall for multiplatform + * SAUCE: ARM: OMAP: Fix dmaengine init for multiplatform + * SAUCE: ARM: OMAP2+: Add multiplatform debug_ll support + * SAUCE: ARM: OMAP2+: Disable code that currently does not work with + multiplaform + * SAUCE: ARM: OMAP2+: Enable ARCH_MULTIPLATFORM support + * SAUCE: ARM: OMAP2+: Add minimal support for booting vexpress + * SAUCE: ARM: OMAP2+: Remove now obsolete uncompress.h and debug-macro.S + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc5 + - LP: #1096789 + + -- Leann Ogasawara Thu, 31 Jan 2013 06:44:52 -0800 + +linux (3.8.0-2.6) raring; urgency=low + + [ Adam Conrad ] + + * Fix up linux-tools -> SRCPKGNAME-tools rename + + [ Andy Whitcroft ] + + * [Config] re-disable CONFIG_SOUND_OSS + - LP: #1105230 + + [ Arend van Spriel ] + + * SAUCE: brcmsmac: fix tx status processing + + [Leann Ogasawara] + + * Release Tracking Bug + - LP: #1105104 + + -- Leann Ogasawara Fri, 25 Jan 2013 11:56:30 -0800 + +linux (3.8.0-1.5) raring; urgency=low + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1101235 + + [ Dudley Du ] + + * SAUCE: Input: add support for Cypress PS/2 Trackpads + - LP: #978807 + + [ Kamal Mostafa ] + + * SAUCE: Input: increase struct ps2dev cmdbuf[] to 8 bytes + * SAUCE: Input: Cypress PS/2 Trackpad simulated multitouch + * [Config] Add CONFIG_PS2_CYPRESS + + [ Tim Gardner ] + + * rebase to v3.8-rc4 + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc4 + - LP: #1095315 + - LP: #886975 + - LP: #1086921 + + -- Leann Ogasawara Thu, 17 Jan 2013 10:50:22 -0800 + +linux (3.8.0-0.4) raring; urgency=low + + [ Leann Ogasawara ] + + * [Config] Update CONFIG_TOUCHSCREEN_EGALAX build annotation + * [Config] Update CONFIG_IIO build annotation + * [Config] Update CONFIG_TOUCHSCREEN_EETI annotation + * [Config] Remove CONFIG_SPI_DW_MMIO annotation + * [Config] Remove CONFIG_SPI_PL022 annotation + * [Config] Update CONFIG_EZX_PCAP annotation + * [Config] Update CONFIG_SENSORS_AK8975 annotation + * [Config] Disable CONFIG_DRM_MGAG200 + - LP: #1042903 + + -- Leann Ogasawara Mon, 14 Jan 2013 10:01:50 -0800 + +linux (3.8.0-0.3) raring; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: (no-up) trace: add trace events for open(), exec() and + uselib()" + + [ Scott James Remnant ] + + * SAUCE: (no-up) trace: add trace events for open(), exec() and uselib() + (for v3.7+) + - LP: #1085766, #462111 + + -- Andy Whitcroft Fri, 11 Jan 2013 16:57:27 +0000 + +linux (3.8.0-0.2) raring; urgency=low + + [ Tim Gardner ] + + * [packaging] Add macro to selectively disable building perf + * [packaging] Cannot depend on universe package libaudit-dev + + -- Tim Gardner Thu, 10 Jan 2013 12:43:24 -0700 + +linux (3.8.0-0.1) raring; urgency=low + + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc3 + - LP: #1096789 + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc2 + - LP: #1082357 + - LP: #1075882 + + -- Andy Whitcroft Mon, 17 Dec 2012 10:35:09 +0000 + +linux (3.7.0-7.15) raring; urgency=low + + [ Chris J Arges ] + + * SAUCE: add eeprom_bad_csum_allow module parameter + - LP: #1070182 + + [ Leann Ogasawara ] + + * Add ceph to linux-image for virtual instances + - LP: #1063784 + + [ Serge Hallyn ] + + * SAUCE: net: dev_change_net_namespace: send a KOBJ_REMOVED/KOBJ_ADD + + [ Tim Gardner ] + + * [Config] CONFIG_SLUB_DEBUG=y + - LP: #1090308 + + [ Upstream Kernel Changes ] + + * Revert "[SCSI] sd: Implement support for WRITE SAME" + - LP: #1089818 + + -- Leann Ogasawara Wed, 12 Dec 2012 06:50:20 -0800 + +linux (3.7.0-6.14) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] annotations: all new annotations scheme including defaults + * [Configs] apply annotation updates to main configs (top section) + + [ Leann Ogasawara ] + + * Revert "SAUCE: include and for mmc_core arm + build" + * Revert "SAUCE: [arm] fixup __aeabi_uldivmod undefined build error" + * Temporarily disable module check for build + + [ Stefan Bader ] + + * ubuntu: dm-raid45: Adapt to upstream interface changes + * Re-enable build of dm-raid45 + + [ Tim Gardner ] + + * SAUCE: Moved scripts/fw-to-ihex.sh to debian/scripts/misc + * SAUCE: ACPICA: Fix ACPI mutex object allocation memory leak on error + * SAUCE: drm: Fix possible EDID memory allocation oops + * SAUCE: ttm: Fix possible _manager memory allocation oops + * SAUCE: iwlwifi: iwlagn_request_scan: Fix check for priv->scan_request + * SAUCE: i915: intel_set_mode: Reduce stack allocation from 500 bytes to + 2 pointers + + [ Tomas Hozza ] + + * SAUCE: tools: hv: Netlink source address validation allows DoS + - LP: #1084777 + - CVE-2012-5532 + + [ Upstream Kernel Changes ] + + * rebase to v3.7 + + -- Leann Ogasawara Wed, 05 Dec 2012 14:11:12 -0800 + +linux (3.7.0-5.13) raring; urgency=low + + [ Lino Sanfilippo ] + + * SAUCE: inotify, fanotify: replace fsnotify_put_group() with + fsnotify_destroy_group() + - LP: #922906 + * SAUCE: fsnotify: introduce fsnotify_get_group() + - LP: #922906 + * SAUCE: fsnotify: use reference counting for groups + - LP: #922906 + * SAUCE: fsnotify: take groups mark_lock before mark lock + - LP: #922906 + * SAUCE: fanotify: add an extra flag to mark_remove_from_mask that + indicates wheather a mark should be destroyed + - LP: #922906 + * SAUCE: fsnotify: use a mutex instead of a spinlock to protect a groups + mark list + - LP: #922906 + * SAUCE: fsnotify: pass group to fsnotify_destroy_mark() + - LP: #922906 + * SAUCE: fsnotify: introduce locked versions of fsnotify_add_mark() and + fsnotify_remove_mark() + - LP: #922906 + * SAUCE: fsnotify: dont put marks on temporary list when clearing marks + by group + - LP: #922906 + * SAUCE: fsnotify: change locking order + - LP: #922906 + + [ Tim Gardner ] + + * [Config] CONFIG_NFC_LLCP=y + * [Config] get-firmware: Filter new files through fwinfo + * [Config] CONFIG_MTD_NAND_DOCG4=m for all arches + * [Config] CONFIG_DRM_EXYNOS_HDMI=y + * [Config] CONFIG_XEN=y for all arches + * [Config] CONFIG_SND_OMAP_SOC_ZOOM2=m + * [Config] CONFIG_MMC_DW_EXYNOS=m + * [Config] CONFIG_GPIO_ADNP=m + * [Config] find-obsolete-firmware: Use correct path + * rebase to v3.7-rc8 + - LP: #1084640 + + [ Upstream Kernel Changes ] + + * Revert "VFS: don't do protected {sym,hard}links by default" + - LP: #1084192 + + -- Tim Gardner Wed, 28 Nov 2012 16:07:08 +0000 + +linux (3.7.0-4.12) raring; urgency=low + + [ Tim Gardner ] + + * Revert "[Config] Use -j1 for headers_install" + * Revert "[Config] install-arch-headers needs a valid config" + Strayed into the weeds in search of the root cause of the periodic + build failure. + Fixes powerpc FTBS introduced in -4.11. + * [Config] hmake -j1 + The kernel makefile appears to have parallel dependency + problems for the install_headers target. This appears to be root + cause for a periodic build failure on N-way machines. + + -- Leann Ogasawara Tue, 27 Nov 2012 12:33:06 -0800 + +linux (3.7.0-4.11) raring; urgency=low + + [ Tim Gardner ] + + * [Config] Use -j1 for headers_install + Also fixes a powerpc FTBS introduced by + "[Config] install-arch-headers needs a valid config". + + -- Tim Gardner Tue, 27 Nov 2012 10:19:30 -0700 + +linux (3.7.0-4.10) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] add rebuild-test support for autopkgtest + - LP: #1081500 + * [tests] move build tests out of the way + - LP: #1081500 + * [tests] add an autopkgtest rebuild test + - LP: #1081500 + + [ Tim Gardner ] + + * rebase to v3.7-rc7 + * SAUCE: Remove emi62 files duplicated in linux-firmware + * SAUCE: Remove sb16 files duplicated in linux-firmware + * SAUCE: Remove whiteheat files duplicated in linux-firmware + * SAUCE: Remove yamaha files duplicated in linux-firmware + * SAUCE: Remove dsp56k files used only by m68k + * SAUCE: firmware: Remove last vestiges of dabusb + * SAUCE: Remove vicam files duplicated in linux-firmware + * [Config] install-arch-headers needs a valid config + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc7 + - LP: #1076840 + - LP: #1081466 + + -- Leann Ogasawara Wed, 21 Nov 2012 06:07:23 -0800 + +linux (3.7.0-3.9) raring; urgency=low + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_X86_CPUFREQ_NFORCE2=y + - LP: #1079900 + * Add nfsv3 to nfs-modules udeb + + [ Paolo Pisati ] + + * [Config] SND_OMAP_SOC*=y + - LP: #1019321 + + [ Stefan Bader ] + + * SAUCE: (no-up) xen/netfront: handle compound page fragments on transmit + - LP: #1078926 + + [ Tim Gardner ] + + * Revert "SAUCE: SECCOMP: audit: always report seccomp violations" + - LP: #1079469 + * Revert "SAUCE: omap3 clocks .dev_id = NULL" + * rebase to v3.7-rc6 + * SAUCE: script to detect obsolete firmware + * SAUCE: Remove yam files duplicated in linux-firmware + * SAUCE: Remove tehuti files duplicated in linux-firmware + * SAUCE: Remove matrox files duplicated in linux-firmware + * SAUCE: Remove cxgb3 files duplicated in linux-firmware + * SAUCE: Remove r128 files duplicated in linux-firmware + * SAUCE: Remove acenic files duplicated in linux-firmware + * SAUCE: Remove keyspan files duplicated in linux-firmware + * SAUCE: Remove sun files duplicated in linux-firmware + * SAUCE: Remove radeon files duplicated in linux-firmware + * SAUCE: Update bnx2x firmware to 7.8.2.0 + * [Config] generic.inclusion-list: econet has disappeared + + [ Upstream Kernel Changes ] + + * seccomp: forcing auditing of kill condition + - LP: #1079469 + * rebase to v3.7-rc6 + + -- Leann Ogasawara Tue, 20 Nov 2012 12:28:55 -0800 + +linux (3.7.0-2.8) raring; urgency=low + + [ Andy Whitcroft ] + + * Revert "overlayfs: disable until FTBS is fixed" + * Revert "ubuntu: overlayfs" + * Revert "ubuntu: AUFS" + * ubuntu: overlayfs -- overlayfs: add statfs support + * ubuntu: overlayfs -- ovl: switch to __inode_permission() + * ubuntu: overlayfs -- overlayfs: copy up i_uid/i_gid from the underlying + inode + - LP: #944386 + * ubuntu: AUFS (no-squash): basic framework and update machinary + * ubuntu: AUFS (no-squash) -- aufs3-base.patch + * ubuntu: AUFS (no-squash) -- aufs3-standalone.patch + * ubuntu: AUFS: aufs-update -- follow the uapi header changes + * ubuntu: AUFS -- update to f2873474324d0a31af4340554b9715f51331bc7f + * ubuntu: AUFS (no-squash) -- reenable + - LP: #1079193 + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: add i_op->dentry_open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + * ubuntu: overlayfs -- vfs: export __inode_permission() to modules + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Robin Dong ] + + * ubuntu: overlayfs -- overlayfs: fix possible leak in ovl_new_inode + * ubuntu: overlayfs -- overlayfs: create new inode in ovl_link + + -- Andy Whitcroft Thu, 15 Nov 2012 13:35:12 +0000 + +linux (3.7.0-1.7) raring; urgency=low + + [ Tim Gardner ] + + * [Config] Drop dependency on libaudit-dev + Its a universe package which causes an FTBS on the builders. + libaudit-dev is not strictly required for the perf tools build. + + -- Tim Gardner Wed, 14 Nov 2012 10:08:13 -0700 + +linux (3.7.0-1.6) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] enforce -- switch CONFIG_NVRAM to more readable form + * [Config] better encode the CONFIG_NVRAM constaint + * enforcer -- fix debugging output + + [ Ben Collins ] + + * [Config] Add custom_override rule to allow for alternate kernel + file/install + * [Config] Use SRCPKGNAME as prefix for indep linux headers package + + [ Tim Gardner ] + + * [Config] Dropped armel + * Drop highbank from ABI fetch list + * [Config] Use dh_prep instead of 'dh_clean -k' + * [Config] Build depend on libaudit-dev, libunwind8-dev for tools + * [Config] Document binary-indep dependency chain + * rebase to v3.7-rc5 + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc5 + + -- Tim Gardner Tue, 13 Nov 2012 07:13:37 -0500 + +linux (3.7.0-0.5) raring; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_AMD_IOMMU_V2=m + - LP: #1071520 + * [Config] CONFIG_MTD_ONENAND_SIM=n for armel + Fixes FTBS + + -- Tim Gardner Thu, 08 Nov 2012 15:45:39 -0500 + +linux (3.7.0-0.4) raring; urgency=low + + [ Ben Collins ] + + * [Config] Update enforce rule for CONFIG_NVRAM to better suit flavours + + [ Tim Gardner ] + + * [Config] do_tools=false for arm + + -- Tim Gardner Thu, 08 Nov 2012 05:39:51 -0700 + +linux (3.7.0-0.3) raring; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_DRM_EXYNOS_HDMI=n for armhf + * [Config] CONFIG_MTD_NAND_DOCG4=n for armel/armhf + * [Config] Drop highbank harder + + -- Tim Gardner Wed, 07 Nov 2012 18:11:45 +0000 + +linux (3.7.0-0.2) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] add fs/udf to linux-image to support DVD/CD formats in virtual + instances + - LP: #1066921 + * [Config] drop highbank builds + + [ Jeremy Kerr ] + + * SAUCE: efivarfs: Implement exclusive access for {get, set}_variable + - LP: #1063061 + + [ Leann Ogasawara ] + + * Reinstate dropped.txt from Ubuntu-3.7.0-0.1-rc1 + + [ Tim Gardner ] + + * [Config] Dropped powerpc/ppc64 in favour of the community kernel + * [Config] CONFIG_MODULE_SIG=y for amd64,i386, and highbank + * rebase to v3.7-rc4 + * SAUCE: MODSIGN: Emit error for incorrectly signed module + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc4 + + -- Tim Gardner Mon, 05 Nov 2012 05:35:41 -0700 + +linux (3.7.0-0.1) raring; urgency=low + + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc3 + - LP: #1056078 + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc2 + - LP: #1060729 + - LP: #1059523 + - LP: #1006690 + - LP: #1049623 + - LP: #1046512 + - LP: #1052499 + - LP: #1037642 + - LP: #559939 + - LP: #1052460 + - LP: #939161 + - LP: #1046734 + + -- Tim Gardner Tue, 02 Oct 2012 08:13:07 -0600 + +linux (3.6.0-0.1) UNRELEASED; urgency=low + + + [ Upstream Kernel Changes ] + + * rebase to v3.6 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc7 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc6 + - LP: #1000424 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc5 + - LP: #1040077 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc4 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc3 + - LP: #1038651 + - LP: #1034779 + + -- Leann Ogasawara Tue, 24 Jul 2012 06:37:09 -0700 + +linux (3.5.0-6.6) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION enable IPv6 + experimental features + * SAUCE: highbank -- export clock functions for modules + * [Config] highbank -- reenable CONFIG_TOUCHSCREEN_W90X900 + * [Config] highbank -- renenable CONFIG_SERIO_AMBAKMI + * [Config] highbank -- reenable CONFIG_RFKILL_GPIO + * [Config] highbank -- reenable CONFIG_MMC_SDHCI_PXAV3 + * [Config] highbank -- reenable CONFIG_MMC_SDHCI_PXAV3 + * [Config] highbank -- reenable CONFIG_KEYBOARD_SAMSUNG + * [Config] highbank -- reenable CONFIG_FB_ARMCLCD + * [Config] highbank -- reenable CONFIG_DW_DMAC + * [Config] highbank -- reenable CONFIG_USB_R8A66597_HCD + * [Config] highbank -- reenable CONFIG_USB_MV_UDC + * [Config] highbank -- reenable CONFIG_USB_DWC3 + * [Config] highbank -- reenable CONFIG_SATA_MV + * [Config] highbank -- reenable CONFIG_PATA_ARASAN_CF + * [Config] highbank -- CONFIG_CAN_C_CAN_PLATFORM + * [Config] highbank -- reenable CONFIG_MMC_ARMMMCI + * [Config] highbank -- reenable CONFIG_SERIAL_AMBA_PL010 + * [Config] highbank -- reenable CONFIG_ATMEL_PWM + * [Config] highbank -- enable CONFIG_CHECKPOINT_RESTORE + * [Config] highbank -- enable CONFIG_EXPERT + * [Config] highbank -- enable CONFIG_CHECKPOINT_RESTORE + * [Config] enable CONFIG_USB_DYNAMIC_MINORS + * [Config] enable CONFIG_USB_EHCI_TT_NEWSCHED + * [Config] enable CONFIG_USB_ETH_EEM + * [Config] enable CONFIG_USB_HCD_BCMA/CONFIG_USB_HCD_SSB + * [Config] disable CONFIG_USB_M66592 + * [Config] enable CONFIG_USB_NET2272 + * [Config] enable CONFIG_USB_R8A66597 + * [Config] annotate: CONFIG_USB_OMAP not required for our h/w + * [Config] set CONFIG_USB_MUSB_HDRC=m for omap + * [Config] annotate: CONFIG_USB_G_MULTI fix rule + * [Config] CONFIG_USB_GPIO_VBUS=m for OMAP + * [Config] Enable CONFIG_DRM_AST/_CIRRUS_QEMU/_MGAG200 + * [Config] sync configuration armhf omap -> armel omap + * [Config] annotate: CONFIG_IIO triggers build failures on OMAP4 + * [Config] disable CONFIG_OMAP_IOVMM is deprecated + + [ Bryan Wu ] + + * [Config] change default IO scheduler from CFQ to Deadline + + [ Leann Ogasawara ] + + * Revert "[Config] Temporarily disable CONFIG_MV643XX_ETH on powerpc" + * [Config] Disable CONFIG_MOUSE_INPORT + + [ Tim Gardner ] + + * SAUCE: firmware: Update bnx2x to current firmware version 7.2.51 + * [Config] Add bnx2x firmware to nic-modules udeb + * SAUCE: Add script to convert firmware to ihex format + * SAUCE: firmware: Upgrade bnx2 to current versions + * [Config] Add tigon firmware to nic-modules udeb + * [Config] CONFIG_EARLY_PRINTK_DBGP=y + - LP: #1026761 + * SAUCE: Remove redundant cis firmware + * SAUCE: Remove redundant emi26 firmware + * SAUCE: Remove redundant ttusb-budget firmware + * SAUCE: Remove redundant sun/cassini firmware + * SAUCE: Remove redundant ositech/Xilinx7OD firmware + * SAUCE: Remove redundant 3com/typhoon.bin firmware + * SAUCE: Remove redundant yamaha/ds1 firmware + * SAUCE: Remove redundant keyspan_pda firmware + * rebase to v3.5 + + [ Upstream Kernel Changes ] + + * rebase to v3.5 + - LP: #1027828 + + -- Leann Ogasawara Mon, 23 Jul 2012 05:57:04 -0700 + +linux (3.5.0-5.5) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Config] annotations: initial import of configuration annotations + + [ Bryan Wu ] + + * [Config] enforcer -- add CONFIG_I2C_DESIGNWARE_PLATFORM enforce checker + + [ Leann Ogasawara ] + + * Rebase to v3.5-rc7 + + [ Manoj Iyer ] + + * SAUCE: Bluetooth: btusb: Add vendor specific ID (0a5c:21f4) BCM20702A0 + - LP: #1010281 + + [ Tim Gardner ] + + * [Config] enable CONFIG_I2C_HELPER_AUTO for all flavours as policy + expects + * [Config] CONFIG_I2O_CONFIG_OLD_IOCTL=n + * [Config] CONFIG_BRIDGE_EBT_ULOG=n + * [Config] CONFIG_IP_NF_QUEUE=n + * [Config] CONFIG_MTD_DOC2000=n + * [Config] CONFIG_PRINT_QUOTA_WARNING=n + * [Config] CONFIG_PRISM54=n + * [Config] CONFIG_SCx200_I2C=n + * [Config] CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc7 + + -- Leann Ogasawara Mon, 16 Jul 2012 15:38:41 -0700 + +linux (3.5.0-4.4) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] getabis should be extracting all packages + - LP: #1021174 + * [Config] getabis -- series uses linux-image-extra + - LP: #1021174 + * rebase to v3.5-rc6 + + [ Bryan Wu ] + + * [Config] built-in CONFIG_MICREL_PHY as other PHY drivers for all + flavours + * [Config] sync CONFIG_MOUSE_PS2_ config for all flavours + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_RT2800USB_RT35XX and CONFIG_RT2800USB_RT53XX + - LP: #1019561 + + [ Paolo Pisati ] + + * [Config] SND_OMAP_SOC, SND_OMAP_SOC_MCBSP and SND_OMAP_SOC_OMAP3_BEAGLE =y + - LP: #1019321 + + [ Stefan Bader ] + + * SAUCE: (pre-up) net: dont use __netdev_alloc_skb for bounce buffer + - LP: #1018456 + * (config) Disable ACPI_PROCFS_POWER + + [ Tim Gardner ] + + * [Config] CONFIG_ACPI_BGRT=y + * Extract firmware module info during getabi + - LP: #1021174 + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc6 + + -- Leann Ogasawara Mon, 09 Jul 2012 08:50:20 -0700 + +linux (3.5.0-3.3) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_MEMTEST=y + - LP: #1004535 + * [Config] config-check: add support for a cut operation + * [Config] enforcer -- switch to cut where appropriate + + [ Leann Ogasawara ] + + * Rebase to v3.5-rc5 + * [Config] Updateconfigs after rebase to v3.5-rc5 + + [ Luis Henriques ] + + * SAUCE: ocfs2: Fix NULL pointer dereferrence in + __ocfs2_change_file_space + - LP: #1006012 + + [ Seth Forshee ] + + * SAUCE: (drop after 3.5) drm/i915: ignore pipe select bit when checking + for LVDS register initialization + - LP: #1012800 + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc5 + - LP: #1013183 + - LP: #1017017 + - LP: #884652 + + -- Leann Ogasawara Mon, 02 Jul 2012 06:41:58 -0700 + +linux (3.5.0-2.2) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.5-rc4 + + [ Arend van Spriel ] + + * SAUCE: (drop after 3.5) brcmsmac: fix NULL pointer crash in + brcms_c_regd_init() + - LP: #950320 + + [ Bryan Wu ] + + * [Config] Sync CONFIG_CGROUP_MEM_RES_CTLR_SWAP for ARM + + [ Chris J Arges ] + + * PACKAGING: add .gnu_debuglink sections to .ko files + - LP: #669641 + + [ Leann Ogasawara ] + + * d-i: Add hid-generic to input-modules + - LP: #1017879 + + [ Ming Lei ] + + * SAUCE: Revert "mmc: omap_hsmmc: Enable Auto CMD12" + - LP: #1017717, #225 + + [ Paolo Pisati ] + + * SAUCE: Revert "Fix OMAP EHCI suspend/resume failure (i693)" + - LP: #1017718 + * [Config] Disable generic USB_EHCI_HCD_PLATFORM on omap3 + + [ Seth Forshee ] + + * SAUCE: (drop after 3.5) brcm80211: smac: don't set up tx power limits + during initialization + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: always set channel specified + by mac80211 + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: remove unused code for 40MHz + channels + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: clean up channel.c + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: inform mac80211 of the X2 + regulatory domain + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: enable/disable radio on + regulatory updates + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: use mac80211 channel data for + tx power limits + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: don't validate channels + against internal regulatory data + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: use current regulatory domain + when checking whether OFDM is allowed + - LP: #950320 + + [ Tim Gardner ] + + * [Config] Enable CONFIG_CGROUPS for highbank + - LP: #1014692 + * [Config] FB_OMAP*=y and PANEL_TFP410=y + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc4 + + -- Leann Ogasawara Tue, 26 Jun 2012 06:21:05 -0700 + +linux (3.5.0-1.1) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Config] highbank -- enable CONFIG_RFKILL=y and CONFIG_CAN=m + + [ Leann Ogasawara ] + + * Rebase to v3.5-rc1 + * [Config] Remove USB_DEVICEFS from the config enforcer + * [Config] Updateconfigs after rebase to v3.5-rc1 + * [Config] Temporarily disable CONFIG_MACH_NOKIA_RX51 on arm + * [Config] Temporarily disable CONFIG_TOUCHSCREEN_EETI on arm + * [Config] Temporarily disable CONFIG_TOUCHSCREEN_EGALAX on arm + * [Config] Temporarily disable CONFIG_EZX_PCAP on arm + * [Config] Temporarily disable CONFIG_LIS3L02DQ on arm + * [Config] Temporarily disable CONFIG_TI_CPSW on arm + * [Config] Temporarily disable CONFIG_GPIO_EM on arm + * [Config] Temporarily disable CONFIG_SERIAL_8250_EM on armhf + * [Config] Temporarily disable CONFIG_STMMAC_ETH on armhf + * [Config] Temporarily disable CONFIG_HW_RANDOM_ATMEL on armhf + * Rebase to v3.5-rc2 + * [Config] Updateconfigs after rebase to v3.5-rc2 + * [Config] Temporarily disable CONFIG_MV643XX_ETH on powerpc + * Rebase to v3.5-rc3 + * [Config] Updateconfigs after rebase to v3.5-rc3 + + [ Paul Mundt ] + + * SAUCE: fix bug.h's inclusion of kernel.h + + [ Stefan Bader ] + + * SAUCE: Fix compile failures of dm-raid45 + * [Config] Enable dm-raid45 + * Move dependency on crda to extra package + - LP: #657901 + * SAUCE: Mask CR4 writes on older Xen hypervisors + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc3 + - LP: #993162 + - LP: #925577 + * rebase to v3.5-rc2 + * rebase to v3.5-rc1 + - LP: #955892 + - LP: #978038 + - LP: #987371 + - LP: #929545 + - LP: #942316 + - LP: #903853 + + -- Leann Ogasawara Fri, 08 Jun 2012 14:28:46 -0700 + +linux (3.4.0-5.11) quantal-proposed; urgency=low + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_ARM_LPAE + - LP: #1009061 + + [ Oleksij Rempel ] + + * SAUCE: b43: do not call ieee80211_unregister_hw if we are not registred + - LP: #1008905 + + [ Paolo Pisati ] + + * [Config] omap3: MFD_OMAP_USB_HOST is usb host in omap2+. + - LP: #1009061 + + -- Leann Ogasawara Tue, 05 Jun 2012 08:06:28 -0700 + +linux (3.4.0-4.10) quantal; urgency=low + + [ Leann Ogasawara ] + + * Temporarily disable ABI and module check + + -- Leann Ogasawara Mon, 04 Jun 2012 20:27:31 -0700 + +linux (3.4.0-4.9) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] fix config split to avoid the shared config + * [Config] updateconfigs following split config fix + * [Config] linux-image-extras needs full postinst + * [Config] CONFIG_BLK_DEV_NVME commonise across architectures + * [Config] CONFIG_HP_WATCHDOG enable as module + * [Config] CONFIG_PDC_ADMA is not boot essential + * [Config] CONFIG_XEN_ACPI_PROCESSOR should be enabled on x86 + * [Config] CONFIG_VT6655/CONFIG_VT6656=m + * [Config] CONFIG_TRANZPORT=m commonise + * [Config] CONFIG_R3964=m commonise + * [Config] CONFIG_SCSI_DH=m commonise + * [Config] CONFIG_SCSI_IBMVSCSIS=m commonise + * [Config] CONFIG_AMD_PHY=y phys are not autoloadable + * [Config] CONFIG_SCSI_QLA_ISCSI=m commonise + * [Config] CONFIG_SCSI_SPI_ATTR=m commonise + * [Config] CONFIG_USB_SN9C102 is deprecated disable + * [Config] CONFIG_USB_SI470X=m commonise + * [Config] CONFIG_USB_ET61X251=m commonise + * [Config] CONFIG_RTS_PSTOR=m commonise + * [Config] CONFIG_SCANLOG=m commonise + * [Config] CONFIG_SCSI_SYM53C8XX_2=m commonise + * [Config] CONFIG_SM_FTL=m commonise + * [Config] CONFIG_SOLO6X10=m commonise + * [Config] CONFIG_SND_PCM_OSS=n using pulseaudio emulation instead + * [Config] CONFIG_SPI_DESIGNWARE=m commonise + * [Config] CONFIG_SPI_SPIDEV=m commonise + * [Config] CONFIG_TABLET_USB_WACOM=m commonise + * [Config] CONFIG_TPS65010=m commonise + * [Config] CONFIG_STE10XP=y commonise + * [Config] CONFIG_X25_ASY=m commonise + * [Config] CONFIG_USB_MON=m commonise + * [Config] CONFIG_VME_BUS=m commonise + * [Config] CONFIG_W35UND=m commonise + * [Config] -CONFIG_TCG_TPM=y commonise + * [Config] highbank -- commonise filesystems + * [Config] highbank -- commonise subsystems + * [Config] highbank -- commonise network protocols + * [Config] highbank -- commonise input drivers + * [Config] highbank -- commonise CRYPTO options + * [Config] highbank -- commonise HID options + * [Config] highbank -- commonise sensors options + * [Config] highbank -- commonise EXPORTFS/FHANDLE + * [Config] highbank -- commonise CONFIG_CRYPTO_LZO + * [Config] highbank -- commonise ENCRYPTED_KEYS + * [Config] highbank -- commonise CONFIG_ATALK + * [Config] highbank -- commonise INET/INET6 + * [Config] highbank -- commonise NLS + * [Config] highbank -- commonise BLK/CHR + * [Config] highbank -- CONFIG_EXT2_FS=y boot essential on highbank + * [Config] highbank -- commonise INET/INET6 part 2 + * [Config] highbank -- commonise PHY settings + * [Config] highbank -- commonise CRC settings + * [Config] highbank -- commonise BINFMT settings + * [Config] highbank -- commonise DM settings + * [Config] highbank -- commonise RTC_DRV settings + * [Config] highbank -- commonise KEYBOARD/MOUSE settings + * [Config] highbank -- commonise USB settings + * [Config] highbank -- commonise GPIO settings + * [Config] highbank -- commonise I2C settings + * [Config] highbank -- commonise numerous subsystem selectors + * [Config] highbank -- commonise A-C modules missmatches + * [Config] highbank -- commonise D-F modules missmatches + * [Config] CONFIG_AUDIT_LOGINUID_IMMUTABLE incompatible with upstart + * [Config] highbank -- commonise G-I modules missmatches + * [Config] highbank -- commonise J-L modules missmatches + * [Config] highbank -- commonise M modules missmatches + * [Config] highbank -- commonise N-P modules missmatches + * [Config] highbank -- commonise Q-R modules missmatches + * [Config] highbank -- commonise S modules missmatches -- part 1 + * [Config] highbank -- commonise S modules missmatches -- part 2 + * [Config] highbank -- commonise T modules missmatches + * [Config] highbank -- commonise U-Z modules missmatches + + [ Ike Panhc ] + + * [Config] add highbank flavour + - LP: #1000831 + + [ Mark Langsdorf ] + + * SAUCE: arm highbank: add support for pl320-ipc driver + - LP: #1000831 + + [ Rob Herring ] + + * SAUCE: input: add a key driver for highbank + - LP: #1000831 + * SAUCE: ARM: highbank: Add smc calls to enable/disable the L2 + - LP: #1000831 + * SAUCE: force DMA buffers to non-bufferable on highbank + - LP: #1000831 + * SAUCE: net: calxedaxgmac: fix net timeout recovery + - LP: #1000831 + + [ Tim Gardner ] + + * [Config] CONFIG_IWLWIFI_EXPERIMENTAL_MFP=n + * [Config] CONFIG_PCI_REALLOC_ENABLE_AUTO=y + * [Config] CONFIG_CIFS_EXPERIMENTAL has disappeared + * [Config] Homogenize CIFS configs across all arches + * [Config] armhf should not be skipabi or skipmodules + - LP: #1006913 + + -- Leann Ogasawara Mon, 04 Jun 2012 05:52:49 -0700 + +linux (3.4.0-3.8) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] include include/generated/compile.h + - LP: #942569 + * [Config] fix up postinst to ensure we know which error is which + - LP: #1002388 + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: async_populate_rootfs: fix build warnings + - LP: #1003417 + + [ John Johansen ] + + * Revert "SAUCE: AppArmor: Add the ability to mediate mount" + * SAUCE: apparmor: Add the ability to mediate mount + * SAUCE: AppArmor: basic networking rules + * SAUCE: apparmor: fix profile lookup for unconfined + - LP: #978038, #987371 + * SAUCE: apparmor: fix long path failure due to disconnected path + - LP: #955892 + + [ Mario Limonciello ] + + * SAUCE: dell-laptop: rfkill blacklist Dell XPS 13z, 15 + - LP: #901410 + + [ Stefan Bader ] + + * (config) Built-in xen-acpi-processor + + [ Tim Gardner ] + + * [Config] CONFIG_NET_DSA=m + - LP: #1004148 + * [Config] Ensure CONFIG_XEN_ACPI_PROCESSOR=y for amd64 + + -- Leann Ogasawara Fri, 25 May 2012 11:38:33 -0700 + +linux (3.4.0-3.7) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] drop the virtual flavour in favour of a split generic et al + * [Config] enforcer -- drop IDLE enforcement + * [Config] enable CONFIG_SCSI_VIRTIO=m for amd64 + * [Config] updateconfigs following removal of -virtual + + [ Leann Ogasawara ] + + * Rebase to v3.4 + + [ Seth Forshee ] + + * [Config] disable CONFIG_B43_BCMA_EXTRA + + [ Tim Gardner ] + + * [Config] Check for extras when building udebs + * [Config] Collapsed generic-pae into generic [i386] + + [ Upstream Kernel Changes ] + + * rebase to v3.4 + + -- Leann Ogasawara Mon, 21 May 2012 07:23:47 -0700 + +linux (3.4.0-2.6) quantal; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: overlayfs -- overlayfs: update touch_atime() usage" + * Revert "ubuntu: overlayfs -- overlayfs: switch from d_alloc_root() to + d_make_root()" + * Revert "ubuntu: overlayfs -- overlayfs: follow header cleanup" + * Revert "ubuntu: overlayfs -- overlayfs: apply device cgroup and + security permissions to overlay files" + * Revert "ubuntu: overlayfs -- fs: limit filesystem stacking depth" + * Revert "ubuntu: overlayfs -- overlay: overlay filesystem documentation" + * Revert "ubuntu: overlayfs -- overlayfs: implement show_options" + * Revert "ubuntu: overlayfs -- overlayfs: add statfs support" + * Revert "ubuntu: overlayfs -- overlay filesystem" + * Revert "ubuntu: overlayfs -- vfs: introduce clone_private_mount()" + * Revert "ubuntu: overlayfs -- vfs: export do_splice_direct() to modules" + * Revert "ubuntu: overlayfs -- vfs: add i_op->open()" + * Revert "ubuntu: overlayfs -- vfs: pass struct path to __dentry_open()" + * ubuntu: overlayfs -- overlayfs: add statfs support + * ubuntu: overlayfs -- inode_only_permission: export inode level + permissions checks + * ubuntu: overlayfs -- overlayfs: switch to use inode_only_permissions + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: pass struct path to __dentry_open() + * ubuntu: overlayfs -- vfs: add i_op->open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Robin Dong ] + + * ubuntu: overlayfs -- overlayfs: fix possible leak in ovl_new_inode + * ubuntu: overlayfs -- overlayfs: create new inode in ovl_link + + [ Tim Gardner ] + + * [Config] perarch and indep tools builds need separate build directories + * Prevent upgrading a non-PAE CPU + * perf is not parallel build safe + + -- Leann Ogasawara Wed, 16 May 2012 08:43:18 -0700 + +linux (3.4.0-2.5) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] perarch and indep tools builds need separate build directories + + [ Tim Gardner ] + + * Prevent upgrading a non-PAE CPU + * [Config] build debug + * [Config] perf tools are not parallel build safe + + -- Leann Ogasawara Tue, 15 May 2012 11:37:53 -0700 + +linux (3.4.0-2.4) quantal; urgency=low + + [ Leann Ogasawara ] + + * Revert "SAUCE: fsam7400: use UMH_WAIT_PROC consistently" + * Revert "ubuntu: fsam7400 select CHECK_SIGNATURE and depend on X86" + * Revert "ubuntu: fsam7400: Depend on CHECK_SIGNATURE" + * Revert "ubuntu: fsam7400 -- Cleanup Makefile" + * Revert "ubuntu: fsam7400 -- kill switch for Fujitsu Siemens Amilo M + 7400" + * Revert "ubuntu: omnibook: fix source file newline" + * Revert "ubuntu: omnibook -- update BOM" + * Revert "SAUCE: Make CONFIG_{OMNIBOOK, AVERATEC_5100P, PACKARDBELL_E5} + depend on X86" + * Revert "ubuntu: omnibook -- Added missing BOM file" + * Revert "ubuntu: omnibook -- support Toshiba (HP) netbooks" + * Revert "ubuntu: nx-emu - i386: mmap randomization for executable + mappings" + * Revert "SAUCE: disable_nx should not be in __cpuinitdata section for + X86_32" + * Revert "ubuntu: nx-emu - i386: NX emulation" + * Revert "ubuntu: rfkill drivers -- version 1.3" + * Temporarily disable module check + * [Config] Remove CONFIG_FSAM7400 + * [Config] Remove CONFIG_OMNIBOOK + * [Config] Update configs + * Rebase to v3.4-rc7 + * SAUCE: genirq: export handle_edge_irq() and irq_to_desc() + + [ Tim Gardner ] + + * Updated generic-pae description + * Rebase to v3.4-rc6 + * install-tools depends on build targets + + [ Upstream Kernel Changes ] + + * kconfig: in debug mode some 0 length message prints occur + * rebase to v3.4-rc7 + * rebase to v3.3-rc6 + + -- Leann Ogasawara Mon, 14 May 2012 08:22:56 -0700 + +linux (3.4.0-1.3) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] control.stub is an intermediate product not a dependancy + - LP: #992414 + + [ Leann Ogasawara ] + + * remove i386 generic from getabis + + [ Upstream Kernel Changes ] + + * (pre-stable) b43: only reload config after successful initialization + - LP: #950295 + + -- Leann Ogasawara Wed, 02 May 2012 09:48:14 -0700 + +linux (3.4.0-1.2) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] add build depends for flex, bison and pkg-config + + -- Andy Whitcroft Tue, 01 May 2012 13:15:41 +0100 + +linux (3.4.0-1.1) quantal; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: overlayfs -- overlayfs: apply device cgroup and security + permissions to overlay files + - LP: #915941, #918212 + - CVE-2012-0055 + + [ Leann Ogasawara ] + + * Open Q + * Rebase to v3.4-rc5 + * [Config] Temporarily disable CONFIG_TOUCHSCREEN_EETI on arm + * [Config] Temporarily disable CONFIG_TOUCHSCREEN_EGALAX on arm + * [Config] Temporarily disable CONFIG_EZX_PCAP on arm + * [Config] Temporarily disable CONFIG_MFD_OMAP_USB_HOST on arm + * [Config] Temporarily disable CONFIG_LIS3L02DQ on arm + * [Config] Temporarily disable CONFIG_USB_EHCI_HCD_PLATFORM on arm + * [Config] Temporarily disable CONFIG_TI_CPSW on arm + * [Config] Temporarily disable CONFIG_AX88796 on arm + + [ Upstream Kernel Changes ] + + * vfs: pass struct path to __dentry_open() + * vfs: add i_op->open() + * vfs: export do_splice_direct() to modules + * vfs: introduce clone_private_mount() + * overlay filesystem + * overlayfs: add statfs support + * overlayfs: implement show_options + * overlay: overlay filesystem documentation + * fs: limit filesystem stacking depth + * overlayfs: follow header cleanup + * overlayfs: switch from d_alloc_root() to d_make_root() + * overlayfs: update touch_atime() usage + * rebase to v3.4-rc5 + - LP: #950490 + * rebase to v3.4-rc4 + * rebase to v3.4-rc3 + * rebase to v3.4-rc2 + * rebase to v3.4-rc1 + * rebase to v3.3 + * rebase to v3.3-rc7 + * rebase to v3.3-rc6 + * rebase to v3.3-rc5 + * rebase to v3.3-rc4 + - LP: #900802 + - LP: #930842 + * rebase to v3.3-rc3 + - LP: #924320 + - LP: #923316 + - LP: #923409 + - LP: #918254 + * rebase to v3.3-rc2 + * rebase to v3.3-rc1 + - LP: #795823 + - LP: #909419 + - LP: #910792 + - LP: #878701 + - LP: #724831 + + -- Leann Ogasawara Wed, 25 Jan 2012 06:50:04 -0800 + +linux (3.2.0-10.18) precise; urgency=low + + [ Tim Gardner ] + + * SAUCE: ecryptfs: Print inode on metadata error + + [ Upstream Kernel Changes ] + + * Revert "proc: enable writing to /proc/pid/mem" + - LP: #919115 + - CVE-2012-0056 + * (pre-stable) ALSA: HDA: Use LPIB position fix for Macbook Pro 7, 1 + - LP: #909419 + + -- Andy Whitcroft Tue, 24 Jan 2012 10:15:12 +0000 + +linux (3.2.0-10.17) precise; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: overlayfs -- fs: limit filesystem stacking depth" + * Revert "SAUCE: overlayfs -- overlay: overlay filesystem documentation" + * Revert "SAUCE: overlayfs -- overlayfs: implement show_options" + * Revert "SAUCE: overlayfs -- overlayfs: add statfs support" + * Revert "SAUCE: overlayfs -- overlay filesystem" + * Revert "SAUCE: overlayfs -- vfs: introduce clone_private_mount()" + * Revert "SAUCE: overlayfs -- vfs: export do_splice_direct() to modules" + * Revert "SAUCE: overlayfs -- vfs: add i_op->open()" + * ensure debian/ is not excluded from git by default + * add new scripting to handle buglinks in rebases + * ubuntu: overlayfs -- overlayfs: add statfs support + * ubuntu: overlayfs -- overlayfs: apply device cgroup and security + permissions to overlay files + - LP: #915941, #918212 + - CVE-2012-0055 + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Leann Ogasawara ] + + * Revert "SAUCE: dmar: disable if ricoh multifunction detected" + * [Config] Disable CONFIG_INTEL_IOMMU_DEFAULT_ON + - LP: #907377, #911236 + * [Config] Enable CONFIG_IRQ_REMAP + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: pass struct path to __dentry_open() + * ubuntu: overlayfs -- vfs: add i_op->open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Upstream Kernel Changes ] + + * (pre-stable) x86/PCI: amd: factor out MMCONFIG discovery + - LP: #647043 + * (pre-stable) PNP: work around Dell 1536/1546 BIOS MMCONFIG bug that + breaks USB + - LP: #647043 + + -- Leann Ogasawara Mon, 16 Jan 2012 07:10:08 -0800 + +linux (3.2.0-9.16) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] Enable numerous CONFIG_VIDEO_* cards on ARM + * [Config] pull ARM sound modules =m + * [Config] CONFIG_RTC_DRV_TEST is for testing only + * [Config] CONFIG_USB_DUMMY_HCD is testing only + * [Config] CONFIG_USB_FILE_STORAGE is deprecated + + [ Leann Ogasawara ] + + * Revert "[Config] Temporarily disable CONFIG_CAN_TI_HECC on armel" + * [Config] Enable CONFIG_HW_RANDOM_PASEMI=m + * [Config] Enable CONFIG_MMC_TMIO=m + * [Config] Enable CONFIG_MTD_NAND_FSL_ELBC=m + * [Config] Enable CONFIG_ISI=m + * [Config] Enable CONFIG_MMC=y + * [Config] Enable CONFIG_LIRC_PARALLEL=m + * [Config] Enable CONFIG_MAC_EMUMOUSEBTN=m + * [Config] Enable CONFIG_CHR_DEV_SG=y + * [Config] Enable CONFIG_GPIO_PCA953X=m + * [Config] Enable CONFIG_GPIO_TWL4030=m + * [Config] Enable CONFIG_INET_DIAG=m + * [Config] Enable CONFIG_NLS_ISO8859_1=m + * [Config] Enable CONFIG_NVRAM=m + * [Config] Enable CONFIG_SLIP=m + * [Config] Enable CONFIG_PC300TOO=m + * [Config] Enable CONFIG_TUN=y + * [Config] Enable CONFIG_NET_CLS_CGROUP=m + * [Config] Enable CONFIG_THERMAL=y + * [Config] Enable CONFIG_PPP=y + * [Config] Enable CONFIG_PCI_STUB=m + * Rebase to v3.2.1 + * [Config] Enable CONFIG_RTL8192E=m + * [Config] Enable CONFIG_RTS5139=m + + [ Stefan Bader ] + + * [Config] Make CONFIG_VIRTIO_(NET|BLK)=y + + [ Upstream Kernel Changes ] + + * ARM: restart: add restart hook to machine_desc record + * ARM: restart: allow platforms more flexibility specifying restart mode + * ARM: restart: move reboot failure handing into machine_restart() + * ARM: restart: remove argument to setup_mm_for_reboot() + * ARM: 7159/1: OMAP: Introduce local common.h files + * ARM: restart: only perform setup for restart when soft-restarting + * ARM: 7189/1: OMAP3: Fix build break in cpuidle34xx.c because of irq + function + * ARM: idmap: populate identity map pgd at init time using .init.text + * ARM: suspend: use idmap_pgd instead of suspend_pgd + * ARM: proc-*.S: place cpu_reset functions into .idmap.text section + * ARM: idmap: use idmap_pgd when setting up mm for reboot + * ARM: head.S: only include __turn_mmu_on in the initial identity mapping + * ARM: SMP: use idmap_pgd for mapping MMU enable during secondary booting + * ARM: 7194/1: OMAP: Fix build after a merge between v3.2-rc4 and ARM + restart changes + * ARM: lib: add call_with_stack function for safely changing stack + * ARM: reset: implement soft_restart for jumping to a physical address + * ARM: stop: execute platform callback from cpu_stop code + * ARM: kexec: use soft_restart for branching to the reboot buffer + * ARM: restart: omap: use new restart hook + * topdown mmap support + - LP: #861296 + + [ Upstream Kernel Changes ] + + * Rebase to v3.2.1 + + -- Leann Ogasawara Fri, 13 Jan 2012 20:32:08 +0100 + +linux (3.2.0-8.15) precise; urgency=low + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_ACPI_PROCFS + * Remove server from getabis + * Temporarily disable module check + * [Config] Disable CONFIG_MTD_TESTS + * [Config] Disable CONFIG_X86_E_POWERSAVER + * [Config] Set CONFIG_ARCNET=m + * [Config] Enable CONFIG_ATM_DUMMY=m + * [Config] Enable CONFIG_BLK_DEV_MD=y + * ubuntu: fsam7400 select CHECK_SIGNATURE and depend on X86 + * [Config] Enable CONFIG_BLK_DEV_SD=y + * [Config] Enable CONFIG_BLK_DEV_SR=y + * [Config] Enable CONFIG_BLK_DEV_UB=m + * [Config] Enable CONFIG_COPS=m + * [Config] Enable CONFIG_DVB_USB_EC168=m + * [Config] Enable CONFIG_ENC28J60=m + * [Config] Enable CONFIG_FB_UVESA=m + * [Config] Enable CONFIG_FB_ATY=m + * [Config] Enable CONFIG_BROADCOM_PHY=y + * [Config] Enable CONFIG_CICADA_PHY=y + * [Config] Enable CONFIG_DAVICOM_PHY=y + * [Config] Enable CONFIG_ICPLUS_PHY=y + * [Config] Enable CONFIG_LSI_ET1011C_PHY=y + * [Config] Enable CONFIG_LXT_PHY=y + * [Config] Enable CONFIG_MARVELL_PHY=y + * [Config] Enable CONFIG_NATIONAL_PHY=y + * [Config] Enable CONFIG_QSEMI_PHY=y + * [Config] Enable CONFIG_SMSC_PHY=y + * [Config] Enable CONFIG_VITESSE_PHY=y + * Add 3w-sas to scsi-modules + - LP: #776542 + + [ Mathieu Trudel-Lapierre ] + + * SAUCE: ipv6: make the net.ipv6.conf.all.use_tempaddr sysctl propagate + to interface settings + + [ Paolo Pisati ] + + * Revert "SAUCE: omap3: beagle: if rev unknown, assume xM revision C" + - LP: #912199 + * Revert "SAUCE: omap3: beagle: detect new xM revision B" + - LP: #912199 + * Revert "SAUCE: omap3: beaglexm: fix DVI initialization" + - LP: #912199 + + [ Upstream Kernel Changes ] + + * Bluetooth: Add support for BCM20702A0 [0a5c:21e3] + - LP: #906832 + + -- Leann Ogasawara Fri, 06 Jan 2012 10:02:03 -0800 + +linux (3.2.0-8.14) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_SND_USB_6FIRE + - LP: #912197 + * rebase to mainline v3.2 final release + * updateconfigs following rebase to v3.2 final + * ubuntu: AUFS -- add BOM and automated update script + * ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers + - LP: #684666 + * ubuntu: AUFS -- update aufs-update to track new locations of headers + * ubuntu: AUFS -- clean up the aufs updater and BOM + * ubuntu: AUFS -- documentation on updating aufs2 + * ubuntu: AUFS -- aufs3-base.patch + * ubuntu: AUFS -- aufs3-standalone.patch + * ubuntu: AUFS -- fix undefined __devcgroup_inode_permission + * ubuntu: AUFS -- fix undefined security_path_link + * ubuntu: AUFS -- update to 4cf5db36bcd9748e8e7270022f295f84d1fc2245 + * ubuntu: AUFS -- updateconfigs following update + * ubuntu: AUFS -- suppress benign plink warning messages + - LP: #621195 + * ubuntu: AUFS -- enable in config and makefile + * ubuntu: AUFS -- disable in favor of overlayfs + * [Config] linux-virtual -- should include the extX modules + - LP: #912308 + + [ Tyler Hicks ] + + * SAUCE: eCryptfs: Improve statfs reporting + - LP: #885744 + + [ Upstream Kernel Changes ] + + * rebase to upstream v3.2 + + -- Leann Ogasawara Mon, 26 Dec 2011 20:24:30 -0800 + +linux (3.2.0-7.13) precise; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to upstream 3.2-rc7 + + -- Leann Ogasawara Mon, 19 Dec 2011 09:14:34 -0800 + +linux (3.2.0-6.12) precise; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to upstream v3.2-rc6 + + -- Leann Ogasawara Fri, 16 Dec 2011 10:19:02 -0800 + +linux (3.2.0-5.11) precise; urgency=low + + [ Andy Whitcroft ] + + * enforcer -- allow arch and flavour predicates to take lists + * enforcer -- simplify armel/armhf specific options + * enforcer -- fix incorrectly specified flavour matches + + [ Leann Ogasawara ] + + * [Config] Disable IRQ_REMAP + * [Config] Enable CONFIG_SENSORS_LM95245=m + * [Config] Enable CONFIG_SENSORS_MAX1668=m + * [Config] Enable CONFIG_SENSORS_NTC_THERMISTOR=m + * [Config] Enable CONFIG_SENSORS_MAX6639=m + * [Config] Enable CONFIG_SENSORS_MAX6642=m + * [Config] Enable CONFIG_SENSORS_LINEAGE=m + * [Config] Enable CONFIG_CRYPTO_SALSA20=m + * [Config] Enable CONFIG_PATA_TOSHIBA=m + * [Config] Enable CONFIG_POHMELFS=m + * [Config] Enable CONFIG_NET_PACKET_ENGINE=y + * [Config] Enable CONFIG_PATA_OPTI=m + * add overlayfs to virtual inclusion list + - LP: #903897 + * add veth to virtual inclusion list + - LP: #903897 + * SAUCE: resolve WARNING: at drivers/block/floppy.c:2929 do_fd_request + + [ Paolo Pisati ] + + * [Config] DEFAULT_MMAP_MIN_ADDR=32k on arm + - LP: #903346 + + [ Tim Gardner ] + + * [Config] CONFIG_LOCKUP_DETECTOR=y + - LP: #903615 + + [ Upstream Kernel Changes ] + + * rebase to upstream 55b02d2f + + -- Leann Ogasawara Mon, 12 Dec 2011 07:08:10 -0800 + +linux (3.2.0-4.10) precise; urgency=low + + [ Kyle McMartin ] + + * SAUCE: dmar: disable if ricoh multifunction detected + - LP: #894070 + + [ Seth Forshee ] + + * SAUCE: dell-wmi: Demote unknown WMI event message to pr_debug + - LP: #581312 + + [ Tim Gardner ] + + * Start new release, Bump ABI, rebase to 3.2-rc5 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_SENSORS_AK8975=m + + -- Tim Gardner Sat, 10 Dec 2011 08:57:04 -0700 + +linux (3.2.0-3.9) precise; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: ext4: correct partial write discard size calculation + - LP: #894768 + + [ Leann Ogasawara ] + + * Revert "SAUCE: x86, microcode, AMD: Restrict microcode reporting" + - LP: #892615 + + [ Matthew Garrett ] + + * SAUCE: pci: Rework ASPM disable code + + [ Upstream Kernel Changes ] + + * x86: Fix boot failures on older AMD CPU's + - LP: #892615 + * EHCI : Fix a regression in the ISO scheduler + - LP: #899165 + + -- Leann Ogasawara Mon, 05 Dec 2011 10:37:36 -0800 + +linux (3.2.0-3.8) precise; urgency=low + + [ Andy Whitcroft ] + + * armhf -- add d-i configuration + * armhf -- disable ABI checks for armhf + * armhf -- add arch to getabis config + + -- Andy Whitcroft Sat, 03 Dec 2011 14:22:52 +0000 + +linux (3.2.0-3.7) precise; urgency=low + + [ Stefan Bader ] + + * SAUCE: x86/paravirt: PTE updates in k(un)map_atomic need to be + synchronous, regardless of lazy_mmu mode + - LP: #854050 + + [ Tim Gardner ] + + * rebase to v3.2-rc4 + + -- Leann Ogasawara Fri, 02 Dec 2011 11:53:56 -0800 + +linux (3.2.0-2.6) precise; urgency=low + + [ Andy Whitcroft ] + + * armhf -- fix omap flavour to build on armhf + * [Config] CONFIG_PATA_MACIO=y to fix MAC qemu boot + + [ Borislav Petkov ] + + * SAUCE: x86, microcode, AMD: Restrict microcode reporting + - LP: #892615 + + [ Colin Watson ] + + * Add pata_macio to pata-modules + + [ Tim Gardner ] + + * [Config] Prefer crda over wireless-crda + * [Config] Fix virtual inclusion list. + - LP: #897795 + + -- Leann Ogasawara Wed, 30 Nov 2011 06:09:35 -0800 + +linux (3.2.0-2.5) precise; urgency=low + + [ Paolo Pisati ] + + * [Config] PANEL_DVI=y + + -- Leann Ogasawara Mon, 28 Nov 2011 09:13:24 -0800 + +linux (3.2.0-2.4) precise; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.2-rc3 + + [ Leann Ogasawara ] + + * Revert "SAUCE: xen: Do not use pv spinlocks on HVM" + * Revert "fix ERROR: __devcgroup_inode_permission undefined" + * Revert "olpc_dcon_xo_1_5 needs delay.h" + * Revert "olpc_dcon_xo_1 needs delay.h" + * rebase to 6fe4c6d4 + * [Config] updateconfigs after rebase to 6fe4c6d4 + + [ Tim Gardner ] + + * [Config] Replace wireless-crda with crda,wireless-regdb + - LP: #856421 + * [Config] Relax the dependencies on crda + + [ Upstream Kernel Changes ] + + * (pre-stable) HID: bump maximum global item tag report size to 96 bytes + - LP: #724831 + * Ubuntu: remove coreutils|fileutils package dependency + - LP: #892814 + * iio: iio_event_getfd -- fix ev_int build failure + + [ Upstream Kernel Changes ] + + * Rebase to v3.2-rc3 + + -- Andy Whitcroft Thu, 24 Nov 2011 16:20:45 +0000 + +linux (3.2.0-1.3) precise; urgency=low + + [ Upstream Kernel Changes ] + + * Ubuntu: Add ext2 to fs-core-modules + - LP: #893395 + + -- Leann Ogasawara Mon, 21 Nov 2011 20:42:33 -0800 + +linux (3.2.0-1.2) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_NFC and associated devices + * SAUCE: allow brcmsmac and b43 to both build + + [ Soren Hansen ] + + * Add ixgbe driver to d-i + - LP: #891969 + + -- Leann Ogasawara Mon, 21 Nov 2011 08:33:46 -0800 + +linux (3.2.0-1.1) precise; urgency=low + [ Andy Whitcroft ] + + * armhf -- enable armhf and create the first flavours + * SAUCE: ensure root is ready before running usermodehelpers in it + * [Config] enforcer -- ensure CONFIG_FAT_FS is built-in on arm + + [ Leann Ogasawara ] + + * Temporarily ignore module check + * [Config] Enable PCI_IOV on powerpc + * [Config] Temporarily disable CONFIG_PASEMI_MAC on powerpc + * rebase to v3.2-rc2 + * SAUCE: include for cpuidle34xx arm build + * SAUCE: include for linux/mtd/map.h arm build + * SAUCE: include and for mmc_core arm build + * SAUCE: select ARM_AMBA if OMAP3_EMU + * [Config] updateconfigs after select ARM_AMBA + * [Config] Temporarily disable CONFIG_KVM_BOOK3S_32 on powerpc + * [Config] Enable CONFIG_EXT2_FS=m + * [Config] Build in CONFIG_SATA_AHCI=y + * Resolve linux-image-extra's install dependency + + [ Seth Forshee ] + + * [Config] Enable EVENT_POWER_TRACING_DEPRECATED=y for powertop + * SAUCE: (drop after 3.2) Input: ALPS - move protocol information to + Documentation + * SAUCE: (drop after 3.2) Input: ALPS - add protocol version field in + alps_model_info + * SAUCE: (drop after 3.2) Input: ALPS - remove assumptions about packet + size + * SAUCE: (drop after 3.2) Input: ALPS - add support for protocol versions + 3 and 4 + * SAUCE: (drop after 3.2) Input: ALPS - add semi-MT support for v3 + protocol + * SAUCE: (drop after 3.2) Input: ALPS - add documentation for protocol + versions 3 and 4 + + [ Stefan Bader ] + + * [Config] Built-in xen-netfront and xen-blkfront + * Fix build of dm-raid45 and re-enable it + + [ Tim Gardner ] + + * [Config] CONFIG_USB_XHCI_HCD=y + - LP: #886167 + * [Config] CONFIG_R6040=m + - LP: #650899 + * SAUCE: Add a new entry (413c:8197) to Bluetooth USB device ID table + - LP: #854399 + * [Config] Consolidated amd64 server flavour into generic + * [Config] updateconfigs after rebase to 3.2-rc1 + * [Config] Disabled dm-raid4-5 + * [Config] Disabled ndiswrapper + * [Config] Disable vt6656 + * [Config] exclude ppp-modules for virtual flavour + * [Config] CONFIG_MEMSTICK_R592=m + - LP: #238208 + + [ Upstream Kernel Changes ] + + * CHROMIUM: seccomp_filter: new mode with configurable syscall filters + - LP: #887780 + * CHROMIUM: seccomp_filter: add process state reporting + - LP: #887780 + * CHROMIUM: seccomp_filter: Document what seccomp_filter is and how it + works. + - LP: #887780 + * CHROMIUM: x86: add HAVE_SECCOMP_FILTER and seccomp_execve + - LP: #887780 + * CHROMIUM: arm: select HAVE_SECCOMP_FILTER + - LP: #887780 + * CHROMIUM: seccomp_filters: move to btrees + * CHROMIUM: enable CONFIG_BTREE + * CHROMIUM: seccomp_filter: kill NR_syscall references + * CHROMIUM: seccomp_filters: guard all ftrace wrapper code + * CHROMIUM: seccomp_filters: clean up warnings; kref mistake + * CHROMIUM: seccomp_filter: remove "skip" from copy and add drop helper + * CHROMIUM: seccomp_filter: allow CAP_SYS_ADMIN management of execve + * CHROMIUM: seccomp_filter: inheritance documentation + * CHROMIUM: seccomp_filter: make inherited filters composable + * CHROMIUM: Fix seccomp_t compile error + - LP: #887780 + * CHROMIUM: Fix kref usage + - LP: #887780 + * CHROMIUM: enable CONFIG_SECCOMP_FILTER and CONFIG_HAVE_SECCOMP_FILTER + * rebase to v3.2-rc2 + + -- Leann Ogasawara Mon, 31 Oct 2011 09:24:39 -0400 + +linux (3.1.0-2.3) precise; urgency=low + + [ Tim Gardner ] + + * Add postinit and postrm scripts to the extras package + - LP: #882120 + + -- Leann Ogasawara Fri, 28 Oct 2011 12:48:33 -0700 + +linux (3.1.0-2.2) precise; urgency=low + + [ Andy Whitcroft ] + + * debian: add locking to protect debian/files from parallel update + + [ Leann Ogasawara ] + + * rebase to v3.1 + + [ Upstream Kernel Changes ] + + * rebase to v3.1 + + -- Leann Ogasawara Wed, 19 Oct 2011 07:12:38 -0700 + +linux (3.1.0-1.1) precise; urgency=low + + [ Andiry Xu ] + + * SAUCE: (drop during 3.2 merge) xHCI: AMD isoc link TRB chain bit quirk + - LP: #872811 + + [ Andy Whitcroft ] + + * Revert "ubuntu: compcache -- follow changes to bd_claim/bd_release" + - LP: #832694 + * Revert "ubuntu: compcache -- version 0.5.3" + - LP: #832694 + * [Config] standardise CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + * [Config] Enable CONFIG_MACVTAP=m + - LP: #822601 + * record the compiler in the ABI and check for inconsistant builds + * [Config] move ECRYPT_FS back to =y for all architectures + - LP: #827197 + * [Config] enable CONFIG_DRM_VMWGFX=m + - LP: #698009 + * [Config] re-fix ECRYPT_FS=y + - LP: #827197 + * enforcer -- ensure we have CONFIG_ECRYPT_FS=y + - LP: #827197 + * [Config] dropping compcache configuration options + * [Config] standardise on HZ=250 + * SAUCE: headers_install: fix #include "..." usage for userspace + - LP: #824377 + * make module-inclusion selection retain the left overs + * add a new linux-image-extras package for virtual + + [ Colin Watson ] + + * Deliver more Atheros, Ralink, and iwlagn NIC drivers to d-i + + [ edwin_rong ] + + * SAUCE: Staging: add driver for Realtek RTS5139 cardreader + - LP: #824273 + + [ Greg Kroah-Hartman ] + + * SAUCE: staging: rts5139: add vmalloc.h to some files to fix the build. + - LP: #824273 + + [ Jesse Sung ] + + * SAUCE: Unregister input device only if it is registered + - LP: #839238 + + [ Jiri Kosina ] + + * SAUCE: HID: add MacBookAir4, 2 to hid_have_special_driver[] + + [ Joshua V. Dillon ] + + * SAUCE: HID: add support for MacBookAir4,2 keyboard. + + [ Kees Cook ] + + * [Config] enable and enforce SECCOMP_FILTER on x86 + + [ Keng-Yu Lin ] + + * [Config] Enable CONFIG_RTS5139=m on i386/amd64 + - LP: #824273 + + [ Leann Ogasawara ] + + * Revert "ubuntu: overlayfs -- ovl: make lower mount read-only" + * Revert "ubuntu: overlayfs -- fs: limit filesystem stacking depth" + * Revert "ubuntu: overlayfs -- ovl: improve stack use of lookup and + readdir" + * Revert "ubuntu: overlayfs -- ovl: fix overlayfs over overlayfs" + * Revert "ubuntu: overlayfs -- overlayfs: implement show_options" + * Revert "ubuntu: overlayfs -- overlayfs: add statfs support" + * Revert "ubuntu: overlayfs -- overlay filesystem" + * Revert "ubuntu: overlayfs -- overlay: overlay filesystem documentation" + * Revert "SAUCE: ARM: OMAP: Add macros for comparing silicon revision" + * Revert "SAUCE: OMAP: DSS2: check for both cpu type and revision, rather + than just revision" + * Revert "SAUCE: OMAP: DSS2: enable hsclk in dsi_pll_init for OMAP36XX" + * Revert "ubuntu: fsam7400 disable driver" + - LP: #876030 + * rebase to v3.1-rc1 + * [Config] updateconfigs after rebase to v3.1-rc1 + * rebase to v3.1-rc2 + * [Config] Updateconfigs after rebase to v3.1-rc2 + * ubuntu: Yama - update calls to generic_permission() and + inode->i_op->permission() + * ubuntu: ndiswrapper -- remove netdev_priv macro + * ubuntu: aufs -- Temporarily disable due to build failure + * [Config] Diable INTEL_MID_PTI on armel + * [Config] Temporarily disable CONFIG_FTMAC100 on armel + * [Config] Temporarily disable CONFIG_FTGMAC100 on armel + * [Config] Temporarily disable CONFIG_CAN_TI_HECC on armel + * [Config] Temporarily disable CONFIG_VIDEO_OMAP2_VOUT on armel + * [Config] Set CONFIG_DM_MIRROR=m on amd64, i386, and arm + * [Config] Set CONFIG_DM_MULTIPATH=m on amd64, i386, and arm + * [Config] Set CONFIG_DM_SNAPSHOT=m on amd64, i386, and arm + * [Config] Enable CONFIG_EDAC_AMD8111=m on powerpc + * [Config] Enable CONFIG_EDAC_AMD8131=m on powerpc + * [Config] Enable CONFIG_EDAC_CPC925=m on powerpc + * [Config] Enable CONFIG_EDAC_PASEMI=m on powerpc + * [Config] Enable CONFIG_ECHO=m on powerpc + * [Config] Enable CONFIG_ET131X=m on powerpc + * [Config] Set CONFIG_FB_MATROX=m + * [Config] Enable CONFIG_FB_UDL=m on powerpc + * [Config] Set CONFIG_FB_VIRTUAL=n + * [Config] Enable CONFIG_FB_VGA16=m on powerpc + * [Config] Enable CONFIG_GPIO_MAX732X=m on arm + * [Config] Enable CONFIG_GPIO_PCF857X=m on arm + * [Config] Set CONFIG_HOTPLUG_PCI_FAKE=m + * [Config] Enable CONFIG_HOTPLUG_PCI=y on powerpc + * [Config] Enable CONFIG_HOTPLUG_PCI_CPCI=y on powerpc + * [Config] Enable CONFIG_HP_ILO=m on powerpc-smp + * [Config] Enable CONFIG_I2C_PASEMI=m on powerpc + * [Config] Enable CONFIG_IBM_BSR=m on powerpc + * [Config] Enable CONFIG_IBMVETH=m on powerpc + * [Config] Enable CONFIG_IDE_PHISON=m on powerpc + * [Config] Enable CONFIG_IGB=m on powerpc + * [Config] Enable CONFIG_IIO=m on powerpc + * [Config] Enable CONFIG_INFINIBAND_NES=m + * [Config] Enable CONFIG_IPMI_HANDLER=m on arm + * [Config] Enable CONFIG_IWL3945=m on powerpc + * [Config] Disable CONFIG_KVM_BOOK3S_64 + * [Config] Enable CONFIG_LAPBETHER=m on arm + * [Config] Enable CONFIG_LEDS_GPIO=m on powerpc + * [Config] Enable CONFIG_LEDS_CLEVO_MAIL=m all arch's + * [Config] Enable CONFIG_LEDS_PCA9532=m on powerpc + * [Config] Enable CONFIG_LEDS_PCA955X=m on powerpc + * [Config] Enable CONFIG_LEDS_TRIGGER_DEFAULT_ON=m on powerpc + * [Config] Set CONFIG_LEDS_TRIGGER_HEARTBEAT=m on arm and powerpc + * [Config] Set CONFIG_LEDS_TRIGGER_TIMER=m on powerpc + * [Config] Enable CONFIG_LINE6_USB=m on arm and powerpc + * [Config] Enable CONFIG_MEMSTICK=m on arm + * [Config] Enable CONFIG_MTD_AFS_PARTS=m on arm + * [Config] Enable CONFIG_MTD_ALAUDA=m on arm + * [Config] Enable CONFIG_MTD_AR7_PARTS=m on arm + * [Config] Enable CONFIG_MTD_ARM_INTEGRATOR=m on arm + * [Config] Enable CONFIG_MOXA_SMARTIO=m on powerpc + * [Config] Enable CONFIG_MTD_DATAFLASH=m on arm + * [Config] Enable CONFIG_MTD_GPIO_ADDR=m on arm + * [Config] Enable CONFIG_MTD_IMPA7=m on arm + * [Config] Enable CONFIG_MTD_NAND_GPIO=m on arm + * [Config] Enable CONFIG_MTD_NAND_NANDSIM=m on arm + * [Config] Enable CONFIG_MTD_NAND_PASEMI=m on powerpc + * [Config] Enable CONFIG_MTD_NAND_PLATFORM=m on arm + * [Config] Enable CONFIG_MTD_NAND_TMIO=m on arm + * [Config] Enable CONFIG_MTD_SST25L=m on arm + * [Config] Enable CONFIG_NET_CLS_CGROUP=y on arm + * [Config] Enable CONFIG_NET_CLS_FLOW=m on arm + * [Config] Enable CONFIG_NET_CLS_U32=m on arm + * [Config] Enable CONFIG_NET_DCCPPROBE=m on arm + * [Config] Enable CONFIG_NET_SCH_INGRESS=m on arm + * [Config] Enable CONFIG_NET_TCPPROBE=m on arm + * [Config] Enable CONFIG_PASEMI_MAC=m on powerpc + * [Config] Enable CONFIG_PATA_NS87410=m on powerpc + * [Config] Enable CONFIG_I2C_GPIO=m on powerpc64-smp + * [Config] Enable CONFIG_PANEL=m on powerpc + * [Config] Enable CONFIG_PATA_CMD640_PCI=m on powerpc + * SAUCE: x86: reboot: Make Dell Latitude E6520 use reboot=pci + - LP: #833705 + * [Config] Add CONFIG_EFI_VARS=y to the enforcer + - LP: #837332 + * [Config] Update CONFIG_EFI_VARS enforcer check + * [Config] Add aufs to virtual flavor inclusion list + - LP: #844159 + * SAUCE: x86: reboot: Make Dell Optiplex 790 use reboot=pci + - LP: #818933 + * SAUCE: x86: reboot: Make Dell Optiplex 990 use reboot=pci + - LP: #768039 + * SAUCE: x86: reboot: Make Dell Latitude E6220 use reboot=pci + - LP: #838402 + * [Config] Add igbvf to the virtual flavor inclusion list + - LP: #794570 + * [Config] Add ixgbevf to the virtual inclusion list + - LP: #872411 + * [Config] Transition -generic and -server to be identical + * rebase to v3.1-rc10 + + [ Luke Yelavich ] + + * [Config] Disable legacy IDE drivers on powerpc + + [ Ming Lei ] + + * SAUCE: fireware: add NO_MSI quirks for o2micro controller + - LP: #801719 + * SAUCE: ata_piix: make DVD Drive recognisable on systems with Intel + Sandybridge chipsets(v2) + - LP: #737388, #782389, #794642 + + [ Paolo Pisati ] + + * [Config] Compile-in vfat support for armel + - LP: #853783 + + [ Randy Dunlap ] + + * SAUCE: staging: fix rts5139 depends & build + - LP: #824273 + + [ Rene Bolldorf ] + + * SAUCE: (drop after 3.0) ideapad: Check if acpi already handle backlight + power in 'ideapad_backlight_notify_power' to avoid a page fault + + [ Seth Forshee ] + + * SAUCE: (no-up) Input: elantech - Add v3 hardware support + - LP: #681904 + * SAUCE: (drop after 3.1) usb_storage: Don't freeze in usb-stor-scan + - LP: #810020 + + [ Stefan Bader ] + + * (config) Package macvlan and macvtap for virtual + * [Config] Force perf to use libiberty for demangling + - LP: #783660 + * SAUCE: xen: Do not use pv spinlocks on HVM + - LP: #838026 + + [ Tim Gardner ] + + * [Config] Clean up tools rules + * [Config] Package x86_energy_perf_policy and turbostat + - LP: #797556 + * rebase to v3.1-rc3 + * [Config] Simplify binary-udebs dependencies + * [Config] kernel preparation cannot be parallelized + * [Config] Linearize module/abi checks + * [Config] Linearize and simplify tree preparation rules + * [Config] Build kernel image in parallel with modules + * [Config] Set concurrency for kmake invocations + * [Config] Improve install-arch-headers speed + * [Config] Fix binary-perarch dependencies + * [Config] Removed stamp-flavours target + * [Config] Serialize binary indep targets + * [Config] Use build stamp directly + * [Config] Restore prepare-% target + * rebase to v3.1-rc4 + * rebase to v3.1-rc5 + * [Config] Disable makedumpfile for i386/amd64 + * rebase to v3.1-rc6 + * [Config] Fix binary-% build target + * rebase to v3.1-rc7 + * rebase to v3.1-rc8 + * SAUCE: Add a new entry (413c:8197) to Bluetooth USB device ID table + - LP: #854399 + * [Config] Enable ftrace support in the mac80211 layer + - LP: #865171 + * rebase to v3.1-rc9 + * SAUCE: usb/core/devio.c: Check for printer class specific request + - LP: #872711 + + [ Upstream Kernel Changes ] + + * overlay filesystem + * overlayfs: add statfs support + * overlayfs: implement show_options + * overlay: overlay filesystem documentation + * fs: limit filesystem stacking depth + + [ Will Drewry ] + + * SAUCE: seccomp_filter: new mode with configurable syscall filters + * SAUCE: seccomp_filter: add process state reporting + * SAUCE: seccomp_filter: Document what seccomp_filter is and how it + works. + * SAUCE: seccomp_filter: add HAVE_SECCOMP_FILTER and seccomp_execve + + [ Upstream Kernel Changes ] + + * rebase to v3.1-rc1 + * rebase to v3.1-rc2 + * rebase to v3.1-rc3 + +CONFIG_BLK_DEV_BSGLIB=y + +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 + -CONFIG_VIDEO_OMAP2_VOUT_VRFB=y + * rebase to v3.1-rc4 + * rebase to v3.1-rc5 + * rebase to v3.1-rc6 + * rebase to v3.1-rc7 + * rebase to v3.1-rc8 + * rebase to v3.1-rc9 + * rebase to v3.1-rc10 + + -- Leann Ogasawara Wed, 10 Aug 2011 15:43:38 -0700 + +linux (3.1.0-1.0) oneiric; urgency=low + + [ Leann Ogasawara ] + + * Open P-series + + -- Leann Ogasawara Wed, 10 Aug 2011 13:42:40 -0700 + +linux (3.0.0-8.10) oneiric; urgency=low + + [ Adam Jackson ] + + * SAUCE: drm/i915/pch: Fix integer math bugs in panel fitting + - LP: #753994 + + [ John Johansen ] + + * [Config] Enable missing IPv6 options + + [ Leann Ogasawara ] + + * [Config] Disable config IWLWIFI_DEVICE_SVTOOL + - LP: #819925 + * Rebase to 3.0.1 + + [ Upstream Kernel Changes ] + + * x86, intel, power: Correct the MSR_IA32_ENERGY_PERF_BIAS message + * ALSA: hda - Turn on extra EAPDs on Conexant codecs + - LP: #783582 + * KVM: Remove SMEP bit from CR4_RESERVED_BITS + - LP: #796476 + * KVM: Add SMEP support when setting CR4 + - LP: #796476 + * KVM: Mask function7 ebx against host capability word9 + - LP: #796476 + * KVM: Add instruction fetch checking when walking guest page table + - LP: #796476 + + [ Upstream Kernel Changes ] + + * rebase to v3.0.1 + + -- Leann Ogasawara Fri, 05 Aug 2011 11:32:25 -0700 + +linux (3.0.0-7.9) oneiric; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] add local prefix to oss local change_bits" + * Revert "SAUCE: add tracing for user initiated readahead requests" + * Revert "SAUCE: vfs: Add a trace point in the mark_inode_dirty function" + * Revert "SAUCE: Input: ALPS - Enable Intellimouse mode for Lenovo + Zhaoyang E47" + * Revert "SAUCE: fix documentation strings for struct input_keymap_entry" + * Revert "SAUCE: vt -- fix handoff numbering to 1..n and add range checks + (grub)" + * Revert "SAUCE: vt -- fix handoff numbering to 1..n and add range + checks" + * Revert "SAUCE: vt -- allow grub to request automatic vt_handoff" + * Revert "SAUCE: vt -- maintain bootloader screen mode and content until + vt switch" + * [Config] enable CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 + - LP: #816035 + * ubuntu: Yama: if an underlying filesystem provides a permissions op use + it + * SAUCE: (no-up) add tracing for user initiated readahead requests + * SAUCE: vt -- maintain bootloader screen mode and content until vt + switch + * SAUCE: vt -- allow grub to request automatic vt_handoff + + [ Arjan van de Ven ] + + * SAUCE: (no-up) vfs: Add a trace point in the mark_inode_dirty function + + [ Kees Cook ] + + * Revert "SAUCE: (no-up) Disable building the ACPI debugfs source" + * [Config] enforce ACPI_CUSTOM_METHOD disabled + + [ Keng-Yu Lin ] + + * SAUCE: (no-up) Input: ALPS - Enable Intellimouse mode for Lenovo + Zhaoyang E47 + - LP: #632884, #803005 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_BLK_DEV_CMD64X=m on powerpc + - LP: #513131 + * [Config] Enable CONFIG_RT2800PCI_RT53XX=y + - LP: #815064 + + [ Rezwanul Kabir ] + + * SAUCE: (no-up) Add support for Intellimouse Mode in ALPS touchpad on + Dell E2 series Laptops + - LP: #632884 + + [ Upstream Kernel Changes ] + + * Revert "yama: if an underlying filesystem provides a permissions op use + it" + * Revert "Add support for Intellimouse Mode in ALPS touchpad on Dell E2 + series Laptops" + * Revert "tty: include linux/slab.h for kfree" + * Revert "gpio/ml_ioh_gpio: include linux/slab.h for kfree" + * Revert "pch_dma: add include/slab.h for kfree" + * mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency + - LP: #773524 + * oss: rename local change_bits to avoid powerpc bitsops.h definition + + -- Leann Ogasawara Mon, 25 Jul 2011 09:08:01 -0700 + +linux (3.0.0-7.8) oneiric; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: overlayfs -- overlayfs: add statfs support + * [Config] enable CONFIG_OVERLAYFS + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_ALIM7101_WDT=m on powerpc + * [Config] Enable CONFIG_ASUS_OLED=m on powerpc + * [Config] Disable CONFIG_ATM_DUMMY on arm + * [Config] Enable CONFIG_BLK_DEV_DRBD=m on powerpc + * Temporarily disable module check on arm + * Rebase to 3.0 final + * [Config] Enable CONFIG_CAN_TI_HECC=m on arm + * [Config] Set CONFIG_CDROM_PKTCDVD=m on amd64 and i386 + * [Config] Enable CONFIG_CRYPTO_CCM=m on powerpc + * [Config] Enable CONFIG_CRYPTO_DEV_HIFN_795X=m on powerpc + * [Config] Enable CONFIG_CRYPTO_GCM=m on powerpc + * [Config] Set CRYPTO_LZO=m on powerpc64-smp + * [Config] Enable CONFIG_DM9000=m on arm + * [Config] Set CONFIG_DISPLAY_SUPPORT=m on arm + * [Config] Enable CONFIG_DL2K=m on amd64 and i386 + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: add i_op->open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- ovl: fix overlayfs over overlayfs + * ubuntu: overlayfs -- ovl: improve stack use of lookup and readdir + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + * ubuntu: overlayfs -- ovl: make lower mount read-only + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Tim Gardner ] + + * [Config] Add enic/fnic to udebs + - LP: #801610 + + [ Upstream Kernel Changes ] + + * yama: if an underlying filesystem provides a permissions op use it + + [ Major Kernel Changes ] + + * Rebase to 3.0 final + + -- Leann Ogasawara Thu, 21 Jul 2011 07:01:32 -0700 + +linux (3.0.0-6.7) oneiric; urgency=low + + [ Eagon Yager ] + + * [Config] Fix misspelled 'skipmodule' in arm makefile. + + [ Keng-Yu Lin ] + + * SAUCE: Input: ALPS - Enable Intellimouse mode for Lenovo Zhaoyang E47 + - LP: #632884, #803005 + + [ Leann Ogasawara ] + + * Revert "[Config] Temporarily disable CONFIG_SMC91X on armel-omap" + * Revert "[Config] Temporarily Disable CONFIG_BRCMSMAC on arm" + * Revert "[Config] Temporarily Disable CONFIG_RTL8192SE on powerpc" + * Revert "[Config] Temporarily Disable CONFIG_RTL8192SE on arm" + * Revert "[Config] Temporarily disable CONFIG_BRCMSMAC on powerpc" + * [Config] Set CONFIG_ACPI_PCI_SLOT=m + * [Config] Set CONFIG_ACPI_SBS=m + * [Config] Set CONFIG_ACPI_WMI=m + * [Config] Set CONFIG_AD7150=m on arm + * [Config] Set CONFIG_AD7152=m on arm + * [Config] Drop CONFIG_GPIO_S5PV210 + * [Config] Drop CONFIG_GPIO_S5PC100 + * [Config] Drop CONFIG_GPIO_PLAT_SAMSUNG + * [Config] Drop CONFIG_GPIO_EXYNOS4 + + [ Stefan Bader ] + + * SAUCE: Re-enable RODATA for i386 virtual + - LP: #809838 + + [ Upstream Kernel Changes ] + + * Revert "Quirk to fix suspend/resume on Lenovo Edge 11,13,14,15" + * (drop after 3.0.0) acer-wmi: Add support for Aspire 1830 wlan hotkey + - LP: #771758 + + -- Leann Ogasawara Wed, 20 Jul 2011 06:36:02 -0700 + +linux (3.0.0-5.6) oneiric; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_RTL8192CU=m + * Rebase to -rc7 + + -- Tim Gardner Mon, 11 Jul 2011 22:13:50 +0100 + +linux (3.0.0-4.5) oneiric; urgency=low + + [ Ming Lei ] + + * SAUCE: fix yama_ptracer_del lockdep warning + - LP: #791019 + + [ Seth Forshee ] + + * SAUCE: (drop after 3.0) asus-wmi: Add callback for hotkey filtering + * SAUCE: (drop after 3.0) eeepc-wmi: Add support for T101MT Home/Express Gate key + * SAUCE: (drop after 3.0) asus-wmi: Enable autorepeat for hotkey input device + * [Config] CONFIG_{ASUS,ASUS_NB,EEEPC}_WMI=m + - LP: #805218 + + [ Tim Gardner ] + + * [Config] updateconfigs after rebase to -rc6+ + Rebased against 4dd1b49c6d215dc41ce50c80b4868388b93f31a3 + * Adopt a 3 digit verion, e.g., 3.0.0-x.x + * Revert "UBUNTU: add dependancies for module-init-tools" + This dependency is no longer required for a 3 digit version. + + -- Tim Gardner Tue, 05 Jul 2011 14:03:04 +0100 + +linux (3.0-3.4) oneiric; urgency=low + + [ Keng-Yu Lin ] + + * SAUCE: Revert: "dell-laptop: Toggle the unsupported hardware + killswitch" + - LP: #775281 + + [ Leann Ogasawara ] + + * rebase to v3.0-rc5 + * [Config] updateconfigs after rebase to 3.0-rc5 + + [ Tim Gardner ] + + * [Config] Remove ubuntu/rtl8192se + * [Config] Added armel ABI files + * [Config] Removed armel versatile flavour + * [Config] CONFIG_INTEL_MEI=m + - LP: #716867 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Enable auto-parser as default for Conexant codecs + + [ Upstream Kernel Changes ] + + * rebase to v3.0-rc5 + + -- Leann Ogasawara Thu, 30 Jun 2011 14:27:10 +0100 + +linux (3.0-2.3) oneiric; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update to 0e2bafab74f0d1463383faeb93f9fc5eb8c2c54e + + [ Leann Ogasawara ] + + * rebase to v3.0-rc4 + * [Config] updateconfigs after rebase to 3.0-rc4 + * fix ERROR: __devcgroup_inode_permission undefined + + [ Stefan Bader ] + + * SAUCE: iscsitarget: Remove driver from the kernel + + [ Tim Gardner ] + + * SAUCE: rtl8192se: Force a build for a 2.6/3.0 kernel + * [Config] Add grub-efi as a recommended bootloader for server and + generic + - LP: #800910 + + [ Upstream Kernel Changes ] + + * Fix node_start/end_pfn() definition for mm/page_cgroup.c + + [ Leann Ogasawara ] + + * rebase to v3.0-rc4 + + -- Leann Ogasawara Fri, 24 Jun 2011 11:51:12 -0700 + +linux (3.0-1.2) oneiric; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_CAN_CALC_BITTIMING + + [ Leann Ogasawara ] + + * rebase to v3.0-rc3 + * [Config] updateconfigs after rebase to 3.0-rc3 + + [ Upstream Kernel Changes ] + + * perf: clear out make flags when calling kernel make kernelver + + [ Leann Ogasawara ] + + * rebase to v3.0-rc3 + + -- Leann Ogasawara Tue, 14 Jun 2011 07:25:35 -0700 + +linux (3.0-0.1) oneiric; urgency=low + + [ Andy Whitcroft ] + + * use the packaging version in the kernel + * use the kernels idea of its version for version_signature + * add dependancies for module-init-tools + * update control files to version 3 + * printchanges/insertchanges allow override of prev_release + * correct Vcs-Git: to point to oneiric + + [ Leann Ogasawara ] + + * rebase to v3.0-rc1 + * [Config] updateconfigs after rebase to 3.0-rc1 + * ubuntu: dm-raid4-5 fix up build failure + * [Config] Temporarily Disable CONFIG_GPIO_EXYNOS4 on arm + * [Config] Temporarily Disable CONFIG_GPIO_PLAT_SAMSUNG on arm + * [Config] Temporarily Disable CONFIG_GPIO_S5PC100 on arm + * [Config] Temporarily Disable CONFIG_GPIO_S5PV210 on arm + * [Config] Temporarily disable CONFIG_BRCMSMAC on powerpc + * [Config] Temporarily Disable CONFIG_BRCMSMAC on arm + * [Config] Temporarily Disable CONFIG_RTL8192SE on arm + * [Config] Temporarily Disable CONFIG_RTL8192SE on powerpc + * [Config] Temporarily disable CONFIG_SMC91X on armel-omap + * rebase to v3.0-rc2 + + [ Manoj Iyer ] + + * SAUCE: mmc: Enable MMC card reader for RICOH [1180:e823] + - LP: #790754 + + [ Upstream Kernel Changes ] + + * Revert "x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM + demands it" + * drm/i915: fix regression after clock gating init split + + [ Major Kernel Changes ] + + * rebase from v2.6.39 to v3.0-rc1 + * rebase from v3.0-rc1 to v3.0-rc2 + + -- Andy Whitcroft Thu, 09 Jun 2011 15:18:33 +0100 + +linux (2.6.39-3.10) oneiric; urgency=low + + [ Colin Ian King ] + + * SAUCE: S3 early resume debug via keyboard LEDs + + [ Ingo Molnar ] + + * ubuntu: nx-emu - i386: NX emulation + * ubuntu: nx-emu - i386: mmap randomization for executable mappings + + [ Leann Ogasawara ] + + * Revert "[Config] Disable CONFIG_FT1000 on powerpc64-smp" + * Revert "[Config] Disable CONFIG_DM_RAID45" + * [Config] enable CONFIG_BRCMFMAC=y + * [Config] enable CONFIG_MDIO_BITBANG=m across all arch's and flavors + * [Config] enable CONFIG_VIDEO_OUTPUT_CONTROL=m on armel-omap + + [ Robert Nelson ] + + * SAUCE: omap3: beagle: detect new xM revision B + - LP: #770679 + * SAUCE: omap3: beagle: detect new xM revision C + - LP: #770679 + * SAUCE: omap3: beagle: if rev unknown, assume xM revision C + - LP: #770679 + + [ Stefan Bader ] + + * SAUCE: Convert dm-raid45 to new block plugging + + -- Leann Ogasawara Mon, 23 May 2011 11:46:43 -0700 + +linux (2.6.39-3.9) oneiric; urgency=low + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_SCSI_LPFC_DEBUG_FS + * rebase to v2.6.39 + * [Config] enable CONFIG_LLC2=m across all arch's and flavours + * [Config] enable CONFIG_INPUT_APANEL=m + + [ Thomas Schlichter ] + + * SAUCE: vesafb: mtrr module parameter is uint, not bool + - LP: #778043 + * SAUCE: vesafb: enable mtrr WC by default + - LP: #778043 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc7 to v2.6.39 + + -- Andy Whitcroft Fri, 20 May 2011 09:52:32 +0100 + +linux (2.6.39-2.8) oneiric; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-37" + * Revert "ubuntu: AUFS -- aufs2-base.patch aufs2.1-37" + * Revert "[Config] Disable CONFIG_AUFS_FS" + * ubuntu: AUFS -- aufs2-base.patch aufs2.1-39 + * ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-39 + * ubuntu: AUFS -- update to c6b76974311efc5bf3eddf921cd015b6aae46935 + * ubuntu: AUFS -- clean up the aufs updater and BOM + * ubuntu: AUFS -- documentation on updating aufs2 + + [ Kees Cook ] + + * ubuntu: Yama - LSM hooks + * ubuntu: Yama - create task_free security callback + * ubuntu: Yama - add ptrace relationship tracking interface + * ubuntu: Yama - unconditionally chain to Yama LSM + + [ Leann Ogasawara ] + + * Revert "SAUCE: Fix drivers/staging/easycap FTBS" + * Revert "[Config] Disable CONFIG_EASYCAP" + * ubuntu: fsam7400 disable driver + * ubuntu: omnibook disable driver + * ubuntu: rfkill disable driver + + [ Tim Gardner ] + + * SAUCE: Fix extra reference in fb_open() + + -- Leann Ogasawara Mon, 16 May 2011 09:23:56 -0700 + +linux (2.6.39-2.7) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc7 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc6 to v2.6.39-rc7 + + -- Leann Ogasawara Tue, 10 May 2011 10:18:28 +0200 + +linux (2.6.39-1.6) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc6 + * SAUCE: [arm] fixup __aeabi_uldivmod undefined build error + + [ Tim Gardner ] + + * [Config] updateconfigs after rebase to 2.6.39-rc6 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc5 to v2.6.39-rc6 + - LP: #740126 + + -- Leann Ogasawara Thu, 05 May 2011 09:46:12 -0700 + +linux (2.6.39-0.5) oneiric; urgency=low + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: Revert "x86, hibernate: Initialize mmu_cr4_features during boot" + - LP: #764758 + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc5 + * [Config] updateconfigs following rebase to v2.6.39-rc5 + + [ Paolo Pisati ] + + * [Config] s/USB_MUSB_TUSB6010/USB_MUSB_OMAP2PLUS/ on omap3 to get musb + - LP: #759913 + + [ Stefan Bader ] + + * Include nls_iso8859-1 for virtual images + - LP: #732046 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc4 to v2.6.39-rc5 + + -- Leann Ogasawara Wed, 27 Apr 2011 06:39:42 -0700 + +linux (2.6.39-0.4) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc4 + * [Config] updateconfigs following rebase to v2.6.39-rc4 + * fixup powerpc implicit declaration of function + 'crash_kexec_wait_realmode' + * [Config] Disable CONFIG_FT1000 on powerpc64-smp + + [ Tim Gardner ] + + * [Config] CONFIG_TRANSPARENT_HUGEPAGE=y + - LP: #769503 + * [Config] Add cachefiles.ko to virtual flavour + - LP: #770430 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc3 to v2.6.39-rc4 + + -- Leann Ogasawara Tue, 19 Apr 2011 06:25:20 -0700 + +linux (2.6.39-0.3) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc3 + * crash_kexec_wait_realmode() undefined when !SMP + + [ Tim Gardner ] + + * [Config] CONFIG_PM_ADVANCED_DEBUG=y for i386/amd64 + - LP: #632327 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc2 to v2.6.39-rc3 + + -- Leann Ogasawara Tue, 12 Apr 2011 06:52:24 -0700 + +linux (2.6.39-0.2) oneiric; urgency=low + + [ Gustavo F. Padovan ] + + * SAUCE: Revert "Bluetooth: Add new PID for Atheros 3011" + - LP: #720949 + + [ John Johansen ] + + * AppArmor: Fix masking of capabilities in complain mode + - LP: #748656 + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc2 + * [Config] updateconfigs following rebase to v2.6.39-rc2 + * hv_mouse needs delay.h + * olpc_dcon_xo_1 needs delay.h + * olpc_dcon_xo_1_5 needs delay.h + * Update dropped.txt for Oneiric + + [ Steve Langasek ] + + * [Config] Make linux-libc-dev coinstallable under multiarch + - LP: #750585 + + [ Upstream Kernel Changes ] + + * x86, hibernate: Initialize mmu_cr4_features during boot + - LP: #752870 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc1 to v2.6.39-rc2 + + -- Leann Ogasawara Wed, 06 Apr 2011 11:04:15 -0700 + +linux (2.6.39-0.1) oneiric; urgency=low + + [ Brad Figg ] + + * [Config] Set CONFIG_NR_CPUS=256 for amd64 generic + - LP: #737124 + + [ Henrik Rydberg ] + + * SAUCE: HID: hid-ntrig: add support for 1b96:0006 model + * SAUCE: HID: ntrig: fix suspend/resume on recent models + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: (drop after 2.6.39) v4l: make sure drivers supply a zeroed + struct v4l2_subdev + - LP: #745213 + + [ Kees Cook ] + + * [Config] packaging: adjust perms on vmlinuz as well + * SAUCE: nx-emu: further clarify dmesg reporting + - LP: #745181 + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc1 + * [Config] updateconfigs following rebase to v2.6.39-rc1 + * [Config] Disable CONFIG_DM_RAID45 + * [Config] Disable CONFIG_SCSI_ISCSITARGET + * [Config] Disable CONFIG_EASYCAP + * [Config] Disable CONFIG_AUFS_FS + * update bnx2 firmware files in d-i/firmware/nic-modules + * xhci-pci.c resolve implicit declaration of kzalloc + * [Config] Enable CONFIG_DRM_PSB for only x86 + * [Config] Enable CONFIG_RTS_PSTOR for only x86 + * mfd/asic3: Fix typo, s/irq_data/data/ + + [ Luke Yelavich ] + + * [Config] Disable CONFIG_CRASH_DUMP on 32-bit powerpc kernels + - LP: #745358 + * [Config] Disable CONFIG_DRM_RADEON_KMS on powerpc kernels + * [Config] Build some framebuffer drivers as modules for powerpc kernels. + + [ Manoj Iyer ] + + * SAUCE: thinkpad-acpi: module autoloading for newer Lenovo ThinkPads. + - LP: #745217 + + [ Tim Gardner ] + + * SAUCE: INR_OPEN=4096 + - LP: #663090 + * SAUCE: Increase the default hard limit for open FDs to 4096 + - LP: #663090 + + [ Upstream Kernel Changes ] + + * (drop after 2.6.39-rc1) arm: versatile : Fix typo introduced in irq + namespace cleanup + * (drop after 2.6.39-rc1) [media] staging: altera-jtag needs delay.h + * ALSA: pcm: fix infinite loop in snd_pcm_update_hw_ptr0() + + [ Major Kernel Changes ] + + * rebase from v2.6.38 to v2.6.39-rc1 + + -- Leann Ogasawara Thu, 31 Mar 2011 12:50:10 -0700 + +linux (2.6.39-0.0) oneiric; urgency=low + + [ Leann Ogasawara ] + + * Open Oneiric + + -- Leann Ogasawara Thu, 31 Mar 2011 12:29:23 -0700 + +linux (2.6.38-7.39) natty; urgency=low + + [ Leann Ogasawara ] + + * No change upload. This is just to rebuild with gcc-4.5.2-7ubuntu1. + + -- Leann Ogasawara Thu, 24 Mar 2011 09:27:45 -0700 + +linux (2.6.38-7.38) natty; urgency=low + + [ Leann Ogasawara ] + + * No change upload take 2. 2.6.38-7.37 was accidentally uploaded before + gcc-4.5.2-6ubuntu5 finished building on all arches. + + -- Leann Ogasawara Tue, 22 Mar 2011 06:12:47 -0700 + +linux (2.6.38-7.37) natty; urgency=low + + [ Leann Ogasawara ] + + * No change upload. This is just to rebuild with gcc-4.5.2-6ubuntu5. + + -- Leann Ogasawara Sun, 20 Mar 2011 16:02:48 -0700 + +linux (2.6.38-7.36) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: KLUDGE: work around failed 'shrink-wrap' compiler + optimisation" + * purge last vestiges of maverick + * [Config] switch CONFIG_FB_VESA back to module + + [ Chris Wilson ] + + * SAUCE: drm/i915: Fix pipelined fencing + - LP: #717114 + + [ Loïc Minier ] + + * Include nls_cp437 module in virtual for fat + - LP: #732046 + * Support arch= cross-compilation for any arch + * Fix couple of typos in 0-common-vars.mk + * Enforce DEFAULT_MMAP_MIN_ADDR on armhf + * Add armhf to Debian -> Linux arch map + * Add initial armhf.mk + * Enable common packages for armhf + + [ Upstream Kernel Changes ] + + * Yama: fix default relationship to check thread group + - LP: #737676 + + -- Andy Whitcroft Fri, 18 Mar 2011 18:18:02 +0000 + +linux (2.6.38-7.35) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to 2fbfac4e053861925fa3fffcdc327649b09af54c + * rebase fixes bug #715330 + * [Config] disable CONFIG_SCSI_QLA_ISCSI for powerpc 32bit to fix FTBS + * rebase to v2.6.38 final + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: Apply OPTION_BLACKLIST_SENDSETUP also for ZTE MF626 + - LP: #636091 + + [ Tim Gardner ] + + * [Confg] CONFIG_BOOT_PRINTK_DELAY=y + + [ Upstream Kernel Changes ] + + * Yama: use thread group leader when creating match + - LP: #729839 + * (drop after 2.6.38) ahci: AHCI mode SATA patch for Intel Patsburg SATA + RAID controller + - LP: #735240 + * (drop after v2.6.38) x86, quirk: Fix SB600 revision check + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc8 to v2.6.38 final + - LP: #715330 + + -- Andy Whitcroft Tue, 15 Mar 2011 19:04:19 +0000 + +linux (2.6.38-6.34) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] normalise CONFIG_INTEL_TXT + * SAUCE: KLUDGE: work around failed 'shrink-wrap' compiler optimisation + - LP: #730860 + * rebase to mainline v2.6.38-rc8 + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc7 + fb62c00a6d8942775abc23d1621db1252e2d93d1 + to v2.6.38-rc8 + + -- Andy Whitcroft Tue, 08 Mar 2011 11:54:48 +0000 + +linux (2.6.38-6.33) natty; urgency=low + + [ Andy Whitcroft ] + + * d-i -- enable speakup-modules udeb + - LP: #672699 + * rebase to 493f3358cb289ccf716c5a14fa5bb52ab75943e5 + * [Config] debian PPC64 configuration + * [Config] cleanup powerpc config fixing unexpected inconsistancies + * [Config] resync ppc64 configuration + * SAUCE: match up ENTRY/END naming for 32/64 bit + * rebase to fb62c00a6d8942775abc23d1621db1252e2d93d1 + * [Config] update configs after rebase to + fb62c00a6d8942775abc23d1621db1252e2d93d1 + * [Config] pps_gen_parport no longer built + + [ Corentin Chary ] + + * SAUCE: (drop after 2.6.38) eeepc-wmi: reorder keymap + - LP: #689393 + * SAUCE: (drop after 2.6.38) eeepc-wmi: add wlan key found on 1015P + - LP: #689393 + + [ John Johansen ] + + * SAUCE: Fix aufs calling of security_path_mknod + - LP: #724456 + + [ Kees Cook ] + + * SAUCE: proc: hide kernel addresses via %pK in /proc//stack + + [ Tim Gardner ] + + * rebase to 2.6.38-rc7 + + [ Upstream Kernel Changes ] + + * Revert "drm/i915: fix corruptions on i8xx due to relaxed fencing" + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc6 to v2.6.38-rc7 + + fb62c00a6d8942775abc23d1621db1252e2d93d1 + - LP: #721389 + - LP: #722925 + - LP: #723672 + - LP: #723676 + - LP: #715318 + + -- Andy Whitcroft Mon, 07 Mar 2011 15:33:17 +0000 + +linux (2.6.38-5.32) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to mainline 6f576d57f1fa0d6026b495d8746d56d949989161 + * [Config] updateconfigs following rebase to v2.6.38-rc6 + * [Config] enable CONFIG_DMAR + - LP: #552311 + + [ Upstream Kernel Changes ] + + * drm/i915: skip FDI & PCH enabling for DP_A + - LP: #561802, #600453, #681877 + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc5 to v2.6.38-rc6 + - LP: #718402 + - LP: #719524 + - LP: #721126 + - LP: #719691 + - LP: #722689 + - LP: #722310 + + -- Andy Whitcroft Tue, 22 Feb 2011 13:28:39 +0000 + +linux (2.6.38-4.31) natty; urgency=low + + [ Andy Whitcroft ] + + * add in bugs closed by upstream patches pulled in by rebases + * rebase to 795abaf1e4e188c4171e3cd3dbb11a9fcacaf505 + * [Config] enable CONFIG_VSX to allow use of vector instuctions + * resync with maverick 98defa1c5773a3d7e4c524967eb01d5bae035816 + * rebase to mainline v2.6.38-rc5 + * SAUCE: ecryptfs: read on a directory should return EISDIR if not + supported + - LP: #719691 + + [ Colin Ian King ] + + * SAUCE: Dell All-In-One: Remove need for Dell module alias + + [ Manoj Iyer ] + + * SAUCE: (drop after 2.6.38) add ricoh 0xe823 pci id. + - LP: #717435 + + [ Tim Gardner ] + + * [Config] CONFIG_CRYPTO_CRC32C_INTEL=y + + [ Upstream Kernel Changes ] + + * Quirk to fix suspend/resume on Lenovo Edge 11,13,14,15 + - LP: #702434 + * vfs: fix BUG_ON() in fs/namei.c:1461 + + [ Vladislav P ] + + * SAUCE: Release BTM while sleeping to avoid deadlock. + - LP: #713837 + + [ Major Kernel Changes ] + + * rebase from v2.6.38-rc4 to v2.6.38-rc5 + - LP: #579276 + - LP: #715877 + - LP: #713769 + - LP: #716811 + * resync with Maverick Ubuntu-2.6.35-27.47 + + -- Andy Whitcroft Fri, 11 Feb 2011 17:24:09 +0000 + +linux (2.6.38-3.30) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.38-rc4 + * ppc64 -- add basic architecture + * ubuntu: AUFS -- update to 65835da20b77c98fb538c9114fc31f5de1328230 + + [ Colin Ian King ] + + * SAUCE: Add WMI hotkeys support for Dell All-In-One series + - LP: #676997 + * SAUCE: Add WMI hotkeys support for another Dell All-In-One series + - LP: #701530 + * SAUCE: Dell WMI: Use sparse keymaps and tidy up code. + - LP: #701530 + + [ Dan Rosenberg ] + + * SAUCE: (drop after 2.6.38) Convert net %p usage %pK + + [ Kees Cook ] + + * Revert "SAUCE: kernel: make /proc/kallsyms mode 400 to reduce ease of + attacking" + * SAUCE: (drop after 2.6.38) use %pK for /proc/kallsyms and /proc/modules + + [ Tim Gardner ] + + * [Config] CONFIG_BLK_CGROUP=y + - LP: #706394 + * [Config] CONFIG_DELL_WMI_AIO=m + + [ Upstream Kernel Changes ] + + * drm/i915/lvds: Restore dithering on native modes for gen2/3 + - LP: #711568 + + [ Upstream Kernel Changes ] + + * rebase from v2.6.38-rc3 to v2.6.38-rc4. + - LP: #701271 + - LP: #708521 + - LP: #710371 + + -- Andy Whitcroft Tue, 08 Feb 2011 02:07:18 +0000 + +linux (2.6.38-2.29) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to 1f0324caefd39985e9fe052fac97da31694db31e + * [Config] updateconfigs following rebase to + 1f0324caefd39985e9fe052fac97da31694db31e + * rebase to 70d1f365568e0cdbc9f4ab92428e1830fdb09ab0 + * [Config] reenable HIBERNATE + - LP: #710877 + * rebase to v2.6.38-rc3 + * [Config] reenable CONFIG_CRASH_DUMP + + [ Kamal Mostafa ] + + * SAUCE: rtl8192se: fix source file perms + * SAUCE: rtl8192se: fix source file newline + * SAUCE: omnibook: fix source file newline + + [ Kees Cook ] + + * [Config] packaging: really make System.map mode 0600 + + [ Ricardo Salveti de Araujo ] + + * SAUCE: OMAP3630: PM: don't warn the user with a trace in case of + PM34XX_ERRATUM + + [ Soren Hansen ] + + * SAUCE: nbd: Remove module-level ioctl mutex + + [ Tim Gardner ] + + * SAUCE: Disable building the ACPI debugfs source + + [ Upstream Kernel Changes ] + + * Set physical start and alignment 1M for virtual i386 + - LP: #710754 + + [ Upstream Kernel Changes ] + + * rebase from v2.6.38-rc2 + c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + to v2.6.38-rc3 + - LP: #707902 + + -- Andy Whitcroft Fri, 28 Jan 2011 16:30:32 +0000 + +linux (2.6.38-1.28) natty; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update to b1cee06249dfa0ab30951e7f06490a75c155b620 + + [ Ricardo Salveti de Araujo ] + + * SAUCE: omap3: beaglexm: fix DVI initialization + * [Config] omap: move CONFIG_PANEL_GENERIC_DPI to build in to make + display work at Beagle + + -- Andy Whitcroft Fri, 28 Jan 2011 10:51:57 +0000 + +linux (2.6.38-1.27) natty; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update aufs-update to track new locations of headers + * ubuntu: AUFS -- update to c5021514085a5d96364e096dbd34cadb2251abfd + * SAUCE: ensure root is ready before running usermodehelpers in it + * correct the Vcs linkage to point to natty + * rebase to linux tip e78bf5e6cbe837daa6ab628a5f679548742994d3 + * [Config] update configs following rebase + e78bf5e6cbe837daa6ab628a5f679548742994d3 + * SAUCE: Yama: follow changes to generic_permission + * ubuntu: compcache -- follow changes to bd_claim/bd_release + * ubuntu: iscsitarget -- follow changes to open_bdev_exclusive + * ubuntu: ndiswrapper -- fix interaction between __packed and packed + * ubuntu: AUFS -- update to 806051bcbeec27748aae2b7957726a4e63ff308e + * update package version to match payload version + * rebase to e6f597a1425b5af64917be3448b29e2d5a585ac8 + * rebase to v2.6.38-rc1 + * [Config] updateconfigs following rebase to v2.6.38-rc1 + * SAUCE: x86 fix up jiffies/jiffies_64 handling + * rebase to linus tip 2b1caf6ed7b888c95a1909d343799672731651a5 + * [Config] updateconfigs following rebase to + 2b1caf6ed7b888c95a1909d343799672731651a5 + * [Config] disable CONFIG_TRANSPARENT_HUGEPAGE to fix i386 boot crashes + * ubuntu: AUFS -- suppress benign plink warning messages + - LP: #621195 + * [Config] CONFIG_NR_CPUS=256 for amd64 -server flavour + * rebase to v2.6.38-rc2 + * rebase to mainline d315777b32a4696feb86f2a0c9e9f39c94683649 + * rebase to c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + * [Config] update configs following rebase to + c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + * [Config] disable CONFIG_AD7152 to fix FTBS on armel versatile + * [Config] disable CONFIG_AD7150 to fix FTBS on armel versatile + * [Config] disable CONFIG_RTL8192CE to fix FTBS on armel omap + * [Config] disable CONFIG_MANTIS_CORE to fix FTBS on armel versatile + + [ Kees Cook ] + + * SAUCE: kernel: make /proc/kallsyms mode 400 to reduce ease of attacking + + [ Stefan Bader ] + + * Temporarily disable RODATA for virtual i386 + - LP: #699828 + + [ Tim Gardner ] + + * [Config] CONFIG_NLS_DEFAULT=utf8 + - LP: #683690 + * [Config] CONFIG_HIBERNATION=n + * update bnx2 firmware files in d-i/firmware/nic-modules + + [ Upstream Kernel Changes ] + + * Revert "drm/radeon/bo: add some fallback placements for VRAM only + objects." + * packaging: make System.map mode 0600 + * thinkpad_acpi: Always report scancodes for hotkeys + - LP: #702407 + * sched: tg->se->load should be initialised to tg->shares + * Input: sysrq -- ensure sysrq_enabled and __sysrq_enabled are consistent + * brcm80211: include linux/slab.h for kfree + * pch_dma: add include/slab.h for kfree + * i2c-eg20t: include linux/slab.h for kfree + * gpio/ml_ioh_gpio: include linux/slab.h for kfree + * tty: include linux/slab.h for kfree + * winbond: include linux/delay.h for mdelay et al + + [ Upstream Kernel Changes ] + + * mark the start of v2.6.38 versioning + * rebase v2.6.37 to v2.6.38-rc2 + c723fdab8aa728dc2bf0da6a0de8bb9c3f588d84 + - LP: #689886 + - LP: #702125 + - LP: #608775 + - LP: #215802 + - LP: #686333 + - LP: #677830 + - LP: #677652 + - LP: #696493 + - LP: #697240 + - LP: #689036 + - LP: #705323 + - LP: #686692 + + -- Andy Whitcroft Sun, 09 Jan 2011 13:44:52 +0000 + +linux (2.6.37-12.26) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.37-rc8 + * [Config] armel -- reenable omap flavour + * [Config] disable CONFIG_MACH_OMAP3517EVM to fix FTBS on armel omap + * [Config] disable CONFIG_GPIO_VX855 to fix FTBS on omap armel + * [Config] disable CONFIG_WESTBRIDGE_ASTORIA to fix FTBS on omap armel + * [Config] disable CONFIG_TI_DAVINCI_EMAC to fix FTBS on omap armel + * rebase to mainline 989d873fc5b6a96695b97738dea8d9f02a60f8ab + * [Config] track missing modules + * rebase to v2.6.37 final + + [ Chase Douglas ] + + * SAUCE: (drop after 2.6.37) HID: magicmouse: Don't report REL_{X, Y} for + Magic Trackpad + + [ Stefan Bader ] + + * Revert "SAUCE: blkfront: default to sd devices" + - LP: #684875 + + [ Tim Gardner ] + + * Revert "SAUCE: (no-up) libata: Ignore HPA by default." + - LP: #380138 + * [Config] Added autofs4.ko to -virtual flavour + - LP: #692917 + + [ Upstream Kernel Changes ] + + * Add support for Intellimouse Mode in ALPS touchpad on Dell E2 series + Laptops + - LP: #632884 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc8 + * rebase to mainline 989d873fc5b6a96695b97738dea8d9f02a60f8ab + * rebase to v2.6.37 final + + -- Andy Whitcroft Thu, 23 Dec 2010 18:34:13 +0000 + +linux (2.6.37-11.25) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] d-i -- add hpsa to the list of block devices + - LP: #684304 + * [Config] add vmw-balloon driver to -virtual flavour + - LP: #592039 + * rebase to v2.6.37-rc7 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc7 + + -- Andy Whitcroft Tue, 21 Dec 2010 13:35:28 +0000 + +linux (2.6.37-10.24) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.37-rc6 + * updateconfigs following rebase to v2.6.37-rc6 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc6 + + -- Andy Whitcroft Thu, 16 Dec 2010 12:34:19 +0000 + +linux (2.6.37-9.23) natty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: vt -- fix handoff numbering to 1..n and add range checks + - LP: #689606 + * SAUCE: vt -- fix handoff numbering to 1..n and add range checks (grub) + - LP: #689606 + + [ Kees Cook ] + + * SAUCE: RO/NX protection for loadable kernel, fix ftrace + - LP: #690190 + + -- Andy Whitcroft Wed, 15 Dec 2010 19:29:57 +0000 + +linux (2.6.37-9.22) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.35-rc5 + * [Config] updateconfigs following rebase to v2.6.37-rc5 + * (no-up) add support for installed header files to ubuntu directory + - LP: #684666 + * ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers + - LP: #684666 + * ubuntu: dm-raid4-5 -- follow changes to bio flags + * ubuntu: dm-raid4-5 -- re-enable + * ubuntu: omnibook -- update BOM + * ubuntu: ndiswrapper -- update BOM to match actual version + * ubuntu: ndiswrapper -- follow removal of the BKL and locked ioctl + * ubuntu: ndiswrapper -- re-enable + * ubuntu: iscsitarget -- re-instate copy_io_context + * ubuntu: iscsitarget -- follow changes to semaphore initialisation + * ubuntu: iscsitarget -- convert NIPQUAD to %pI4 + * ubuntu: iscsitarget -- re-enable + + [ Kees Cook ] + + * [Config] update config for CONFIG_DEBUG_SET_MODULE_RONX + + [ Manoj Iyer ] + + * SAUCE: Enable jack sense for Thinkpad Edge 13 + - LP: #685015 + + [ Tim Gardner ] + + * [Config] CONFIG_9P_FSCACHE=y,CONFIG_9P_FS_POSIX_ACL=y + * [Config] CONFIG_CRYPTO_CRC32C=y + - LP: #681819 + * [Config] CONFIG_9P_FSCACHE=n + * [Config] Add nfsd modules to -virtual flavour + - LP: #688070 + + [ Upstream Kernel Changes ] + + * Revert "Staging: zram: work around oops due to startup ordering snafu" + * NFS: Fix panic after nfs_umount() + - LP: #683938 + * x86: Add NX protection for kernel data + * x86: Add RO/NX protection for loadable kernel modules + * x86: Resume trampoline must be executable + * x86: RO/NX protection for loadable kernel, jump_table fix + + [ Upstream Kernel Changes ] + + * rebase to v2.6.37-rc5 + + -- Andy Whitcroft Thu, 09 Dec 2010 18:15:35 +0000 + +linux (2.6.37-8.21) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- include the aufs_types.h file in + linux-libc-headers" + * Revert "(no-up) add support for installed header files to ubuntu + directory" + + -- Andy Whitcroft Sun, 05 Dec 2010 17:33:28 +0000 + +linux (2.6.37-8.20) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] drivers/serial/mfd.c: Fix ARM compile error" + * Revert "SAUCE: Nouveau: Disable acceleration on MacBook Pros" + * Revert "SAUCE: Nouveau: Add quirk framework to disable acceleration" + * Revert "SAUCE: i915 -- disable powersave by default" + * SAUCE: enable Marvell 9128 PCIe SATA controller + - LP: #658521 + * [Config] evtchn has been renamed + * (no-up) add support for installed header files to ubuntu directory + - LP: #684666 + * ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers + - LP: #684666 + + [ Tim Gardner ] + + * [Config] MISS: evtchn, NEW : xen-evtchn + * rebase to v2.6.37-rc4 + + [ Upstream Kernel Changes ] + + * drm/i915: Clean conflicting modesetting registers upon init + - LP: #683775 + * rebase to v2.6.37-rc4 + + -- Andy Whitcroft Fri, 03 Dec 2010 18:42:07 +0000 + +linux (2.6.37-7.19) natty; urgency=low + + [ Tim Gardner ] + + * [Config] Add bnx2 firmware to nic-modules udeb + - LP: #676245 + + -- Andy Whitcroft Fri, 26 Nov 2010 17:53:45 +0000 + +linux (2.6.37-7.18) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] USB: option: Remove duplicate AMOI_VENDOR_ID" + * Revert "SAUCE: Add extra headers to linux-libc-dev" + * Revert "SAUCE: Enable speedstep for sonoma processors." + * [Config] enable CONFIG_BT_HCIUART_ATH3K + * [Config] enable CONFIG_IWLWIFI_DEBUGFS + * [Config] standardise CONFIG_MII + * [Config] standardise CONFIG_PRISM2_USB + * [Config] standardise CONFIG_SCSI_QLA_ISCSI + * [Config] build in CONFIG_AGP + * [Config] build in CONFIG_AGP_INTEL + * [Config] build in CONFIG_AGP_AMD + * [Config] build in CONFIG_AGP_AMD64 + * [Config] build in CONFIG_AGP_NVIDIA + * [Config] build in CONFIG_AGP_VIA + * [Config] disable CONFIG_SCSI_QLA_ISCSI for FTBS (arm) + * (no-up): document the new ## scheme + * [Config] harmonise CONFIG_SERIAL_8250_NR_UARTS + * [Config] update CONFIG_SERIAL_8250_RUNTIME_UARTS=32 + - LP: #675453 + + [ Mathieu J. Poirier ] + + * SAUCE: ARM: Adding vdd_sdi regulator supply to OMAP3EVM + + [ Upstream Kernel Changes ] + + * nx-emu: fix inverted report of disable_nx + + -- Andy Whitcroft Tue, 23 Nov 2010 21:00:39 +0000 + +linux (2.6.37-6.17) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- aufs2-standalone.patch + aufs2.1-36-UNRELEASED-20101103" + * Revert "ubuntu: AUFS -- aufs2-base.patch + aufs2.1-36-UNRELEASED-20101103" + * [Config] standardise CONFIG_BT + * [Config] standardise CONFIG_IRDA + * [Config] standardise CONFIG_LAPB + * [Config] standardise CONFIG_RDS + * [Config] standardise CONFIG_RFKILL + * [Config] standardise CONFIG_TIPC + * [Config] standardise CONFIG_X25 + * [Config] standardise CONFIG_INPUT_EVDEV + * [Config] standardise CONFIG_INPUT_JOYDEV + * [Config] standardise CONFIG_INPUT_JOYSTICK + * [Config] standardise CONFIG_INPUT_TOUCHSCREEN + * [Config] CONFIG_INPUT_TOUCHSCREEN=n for FTBS (arm) + * [Config] CONFIG_IRDA=n for FTBS (arm) + * ubuntu: AUFS -- aufs2-base.patch aufs2.1-37 + * ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-37 + * ubuntu: AUFS -- update to 097bf62d6f49619359d34bf17f242df38562489a + + [ Tim Gardner ] + + * SAUCE: Fix drivers/staging/easycap FTBS + * [Config] CONFIG_EASYCAP=m after fixing FTBS + + [ Upstream Kernel Changes ] + + * Revert "x86: Add NX protection for kernel data" + + -- Andy Whitcroft Mon, 22 Nov 2010 18:09:10 +0000 + +linux (2.6.37-6.16) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Config] update config for CONFIG_DEBUG_SET_MODULE_RONX" + * rebase to v2.6.37-rc3 + + [ Tim Gardner ] + + * [Config] CONFIG_SCHED_AUTOGROUP=y + + [ Upstream Kernel Changes ] + + * Revert "x86: Add RO/NX protection for loadable kernel modules" + * sched: automated per session task groups + * rebase to v2.6.37-rc3 + + -- Andy Whitcroft Mon, 22 Nov 2010 10:11:13 +0000 + +linux (2.6.37-6.15) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] standardise CONFIG_CEPH_FS + * [Config] standardise CONFIG_SCSI_LPFC_DEBUG_FS + * [Config] standardise CONFIG_SCSI_PROC_FS + * [Config] standardise CONFIG_UBIFS_FS + * [Config] standardise CONFIG_USB_GADGET_DEBUG_FS + + [ Kees Cook ] + + * [Config] update config for CONFIG_DEBUG_SET_MODULE_RONX + + [ Manoj Iyer ] + + * SAUCE: Enable jack sense for Thinkpad Edge 11 + - LP: #677210 + * SAUCE: enable rfkill for rtl8192se driver + - LP: #640992 + + [ Tim Gardner ] + + * [Config] CONFIG_EASYCAP=n for FTBS + * Rebase to v2.6.32-rc2+git + + [ Upstream Kernel Changes ] + + * x86: Fix improper large page preservation + * x86: Add NX protection for kernel data + * x86: Add RO/NX protection for loadable kernel modules + + [ Upstream Kernel Changes ] + + * Rebase to Linus 2.6.37-rc2+git + + -- Andy Whitcroft Sat, 20 Nov 2010 11:40:00 +0000 + +linux (2.6.37-5.14) natty; urgency=low + + [ Upstream Kernel Changes ] + + * PCI: fix offset check for sysfs mmapped files + - LP: #676963 + + -- Andy Whitcroft Thu, 18 Nov 2010 18:12:27 +0000 + +linux (2.6.37-5.13) natty; urgency=low + + [ Andy Whitcroft ] + + * rebased to v2.6.37-rc2 + * updateconfigs following rebase to v2.6.37-rc2 + + [ Tim Gardner ] + + * [Config] Added NFS and related modules to virtual flavour + - LP: #659084 + + [ Upstream Kernel Changes ] + + * x86, cpu: Rename verify_cpu_64.S to verify_cpu.S + * x86, cpu: Clear XD_DISABLED flag on Intel to regain NX + * x86, cpu: Call verify_cpu during 32bit CPU startup + * x86, cpu: Only CPU features determine NX capabilities + + [ Upstream Changes ] + + * rebased to v2.67.37-rc2 + + -- Andy Whitcroft Tue, 16 Nov 2010 13:13:29 +0000 + +linux (2.6.37-4.12) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] HID: magicmouse: add param for scroll speed" + * Revert "[Upstream] HID: magicmouse: properly account for scroll + movement in state" + * Revert "[Upstream] HID: magicmouse: disable and add module param for + scroll acceleration" + * Revert "[Upstream] HID: magicmouse: scroll on entire surface, not just + middle of mouse" + + [ Henrik Rydberg ] + + * SAUCE: hid: ntrig: remove sysfs nodes + * SAUCE: hid: ntrig: Setup input filtering manually + * SAUCE: hid: ntrig: New ghost-filtering event logic + + [ Manoj Iyer ] + + * SAUCE: Added quirk to recognize GE0301 3G modem as an interface. + - LP: #348861 + + [ Upstream Kernel Changes ] + + * Revert "mmc: fix all hangs related to mmc/sd card insert/removal during + suspend/resume" + * Revert "[ARM] implement arch_randomize_brk()" + * Revert "ARM: stack protector: change the canary value per task" + * Revert "ARM: initial stack protector (-fstack-protector) support" + * Revert "ALSA: hda - Handle pin NID 0x1a on ALC259/269" + * Revert "ALSA: hda - Handle missing NID 0x1b on ALC259 codec" + * Revert "perf probe: Add kernel source path option" + * hid: ntrig: Support single-touch devices + * hid: ntrig: Mask pen switch events + * net: rtnetlink.h -- only include linux/netdevice.h when used by the + kernel + - LP: #673073 + * Fix userspace build of linux/fs.h + + -- Andy Whitcroft Mon, 15 Nov 2010 19:31:44 +0000 + +linux (2.6.37-3.11) natty; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- update to + b37c575759dc4535ccc03241c584ad5fe69e3b25" + * Revert "ubuntu: AUFS -- track changes to the arguements to fop fsync()" + * Revert "ubuntu: AUFS -- update to standalone 2.6.35-rcN as at 20100601" + * Revert "ubuntu: AUFS -- update to standalone 2.6.34 as at 20100601" + * Revert "ubuntu: AUFS -- aufs2 base patch for linux-2.6.34" + * [Config] Disable intel_idle for -virtual kernels + - LP: #651370 + * [Config] enforcer -- ensure we never enable CONFIG_IMA + * debian -- pass the correct flavour name when checking configs + * [Config] enforcer -- ensure CONFIG_INTEL_IDLE is off for -virtual + * [Config] ensure CONFIG_IPV6=y for powerpc + * [Config] enforcer -- ensure CONFIG_IPV6=y + * ubuntu: AUFS -- aufs2-base.patch aufs2.1-36-UNRELEASED-20101103 + * ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-36-UNRELEASED-20101103 + * ubuntu: AUFS -- update to aufs2.1-36-UNRELEASED-20101103 + * ubuntu: AUFS -- re-enable + * ubuntu: AUFS -- track changes to work queue initialisation + * ubuntu: AUFS -- track changes to llseek in v2.6.37-rc1 + * SAUCE: fbcon -- fix race between open and removal of framebuffers + * SAUCE: fbcon -- fix OOPs triggered by race prevention fixes + - LP: #614008 + * SAUCE: drm -- stop early access to drm devices + + [ Jeremy Kerr ] + + * [Config] Build-in powermac ZILOG serial driver + - LP: #673346 + + [ Kees Cook ] + + * SAUCE: nx-emu: use upstream ASLR when possible + + [ Tim Gardner ] + + * [Config] Use correct be2iscsi module name in d-i/modules/scsi-modules + - LP: #628776 + + [ Upstream Kernel Changes ] + + * i386: NX emulation + * nx-emu: drop exec-shield sysctl, merge with disable_nx + * nx-emu: standardize boottime message prefix + * mmap randomization for executable mappings on 32-bit + * exec-randomization: brk away from exec rand area + + -- Andy Whitcroft Thu, 11 Nov 2010 23:46:37 +0000 + +linux (2.6.37-2.10) natty; urgency=low + + [ Andy Whitcroft ] + + * reinstate armel config changes: + * [Config] CONFIG_GPIO_PCH=n for armel FTBS + * [Config] CONFIG_GPIO_VX855=n for armel FTBS + + -- Andy Whitcroft Wed, 03 Nov 2010 22:20:35 +0000 + +linux (2.6.37-2.9) natty; urgency=low + + [ Andy Whitcroft ] + + * config -- fix genportsconfig + * [Config] move powerpc over from ports to distro + * bump master version number to match contained kernel + * SAUCE: fix documentation strings for struct input_keymap_entry + * usb: gadget: goku_udc: add registered flag bit + + -- Andy Whitcroft Tue, 02 Nov 2010 15:14:11 +0000 + +linux (2.6.36-2.8) natty; urgency=low + + [ Tim Gardner ] + + * [Config]: fix changed CONFIG_SYSFS_DEPRECATED_V2 enforcement rules + * [Config]: TWL4030_CORE=n for FTBS + * [Config]: CONFIG_ATH6K_LEGACY=n for FTBS + * [Config]: CONFIG_SOLO6X10=n for FTBS + * [Config]: CONFIG_GPIO_PCH=n for armel FTBS + * [Config]: CONFIG_GPIO_VX855=n for armel FTBS + * [Config]: CONFIG_DRM_NOUVEAU=n for armel FTBS + * [Config]: CONFIG_LINE6_USB=n for armel FTBS + * [Config]: CONFIG_SENSORS_AK8975=n for armel FTBS + * [Config]: CONFIG_I2C_I801=n for armel FTBS + * UBUNTU: SAUCE: AppArmor: Fix unpack of network tables. + * AppArmor: compatibility patch for v5 interface + * AppArmor: compatibility patch for v5 network controll + * Dropped (pre-stable): input: Support Clickpad devices in ClickZone mode + * Dropped: UBUNTU: SAUCE: libata: Add ALPM power state accounting to the AHCI driver + * Dropped: UBUNTU: SAUCE: Added quirk to recognize GE0301 3G modem as an interface. + * Dropped: hid: 3m: Convert to MT slots + * Dropped: HID: magicmouse: don't allow hidinput to initialize the device + * Dropped: HID: magicmouse: simplify touch data bit manipulation + * Dropped: HID: magicmouse: simplify touch down logic + * Dropped: HID: magicmouse: enable Magic Trackpad support + * Dropped: UBUNTU: SAUCE: hid: ntrig: remove sysfs nodes + * Dropped: UBUNTU: SAUCE: hid: ntrig: Setup input filtering manually + * Dropped: UBUNTU: SAUCE: hid: ntrig: New ghost-filtering event logic + * Dropped: UBUNTU: SAUCE: hid: ntrig: identify firmware version (wiggled) + * Dropped: UBUNTU: (pre-stable): input: Support Clickpad devices in ClickZone mode + * Dropped: UBUNTU: SAUCE: KMS: cache the EDID information of the LVDS + * Dropped: UBUNTU: SAUCE: fbcon -- fix race between open and removal of framebuffers + * Dropped: UBUNTU: SAUCE: fbcon -- fix OOPs triggered by race prevention fixes + * Dropped: UBUNTU: SAUCE: x86: implement cs-limit nx-emulation for ia32 + * Dropped: UBUNTU: SAUCE: x86: more tightly confine cs-limit nx-emulation to ia32 only + * Dropped: UBUNTU: SAUCE: [um] Don't use nx_enabled under UML + * Dropped: UBUNTU: SAUCE: x86: brk away from exec rand area + + [ Upstream Kernel Changes ] + + * rebased against 2.6.27-rc1 + + -- Tim Gardner Fri, 22 Oct 2010 19:35:05 -0600 + +linux (2.6.36-1.7) natty; urgency=low + + [ Andy Whitcroft ] + + * rebased to v2.6.36 final + * [Config] update configs following rebase to v2.6.36 final + * [Config] update ports configs following rebase to v2.6.36 final + + [ Upstream Kernel Changes ] + + * rebased to v2.6.36 final + + -- Andy Whitcroft Thu, 21 Oct 2010 14:28:57 +0100 + +linux (2.6.36-1.6) natty; urgency=low + + [ Upstream Kernel Changes ] + + * drop broadcom staging driver preview: + * Revert "Staging: Add initial release of brcm80211 - Broadcom 802.11n + wireless LAN driver." + + -- Andy Whitcroft Wed, 20 Oct 2010 10:41:25 +0100 + +linux (2.6.36-1.5) natty; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.36-rc8 + * updateconfigs following rebase to v2.6.36-rc8 + * updateportsconfigs following rebase to v2.6.36-rc8 + * config -- simplify the kernelconfig interface + * config -- add new config mode 'dumpconfigs' + + [ Tim Gardner ] + + * Simplify the use of CROSS_COMPILER + + [ Upstream Kernel Changes ] + + * drop broadcom staging driver preview: + * Revert "staging: brcm80211: Make compiling of brcm80211.ko and + brcmfmac.ko mutually exclusive." + * Revert "staging: brcm80211: Fix compile issue when BRCM80211_PCI is not + set." + * Revert "Staging: brcm80211: remove driver specific -W options" + * Revert "Staging: brcm80211: clean up makefile cflag lines" + * Revert "staging: brcm80211: add fullmac driver" + * Revert "staging: brcm80211: use string native library" + * Revert "staging: brcm80211: use native ctype library" + * Revert "staging: brcm80211: fix remaining checkpatch errors." + * Revert "staging: brcm80211: fix "ERROR: trailing whitespace."" + * Revert "staging: brcm80211: fix "ERROR: spaces required around that + ..."" + * Revert "staging: brcm80211: fix "ERROR: spaces prohibited around that + ':' ..."" + * Revert "staging: brcm80211: fix "ERROR: space required before that + ..."" + * Revert "staging: brcm80211: fix "ERROR: space required after that ..."" + * Revert "staging: brcm80211: fix "ERROR: space required after that close + brace"" + * Revert "staging: brcm80211: fix "ERROR: space prohibited before + ...close square bracket"" + * Revert "staging: brcm80211: fix "ERROR: space prohibited after that + ..."" + * Revert "staging: brcm80211: fix "ERROR: need consistent spacing around + '*'"" + * Revert "staging: brcm80211: fix 'ERROR: "(foo*)" should be "(foo *)"'" + * Revert "staging: brcm80211: fix "ERROR: Macros w/ mult. statements ... + do - while loop"" + * Revert "staging: brcm80211: fix "ERROR: Macros w/ complex values ... + parenthesis"" + * Revert "staging: brcm80211: fix "ERROR: do not initialise statics to 0 + or NULL"" + * Revert "staging: brcm80211: fix "ERROR: do not initialise globals to 0 + or NULL"" + * Revert "staging: brcm80211: fix "ERROR: while should follow close brace + '}'"" + * Revert "staging: brcm80211: fix "ERROR: that open brace { ... prev + line"" + * Revert "staging: brcm80211: fix "ERROR: trailing statements should be + on next line"" + * Revert "staging: brcm80211: fix "ERROR: do not use assignment in if + condition"" + * Revert "staging: brcm80211: fix "ERROR: return is not a function, + paren..."" + * Revert "staging: brcm80211: fix "ERROR: open brace '{' following + function dec..."" + * Revert "staging: brcm80211: fix 'ERROR: "foo * bar" should be "foo + *bar"'" + * Revert "staging: brcm80211: Fix URLs for firmware files." + * Revert "staging: brcm80211: use '%pM' format to print MAC address" + * Revert "staging: brcm80211: Add contact info to TODO list." + * Revert "staging: brcm80211: Fix some initialisation failure paths" + * Export dump_{write,seek} to binary loader modules + * rebase to v2.6.36-rc8. + + -- Andy Whitcroft Tue, 19 Oct 2010 18:58:11 +0100 + +linux (2.6.36-0.4) natty; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: perf: increase stack footprint to avoid stack-protector warning + (fixes FTBS on powerpc) + + -- Andy Whitcroft Thu, 14 Oct 2010 13:16:16 +0100 + +linux (2.6.36-0.3) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] disable CONFIG_SCSI_QLA_ISCSI to fix FTBS on powerpc + + -- Andy Whitcroft Thu, 14 Oct 2010 03:01:30 +0100 + +linux (2.6.36-0.2) natty; urgency=low + + [ Andy Whitcroft ] + + * [Config] updateportsconfigs following rebase to 2.6.36-rc7 + (fix FTBS on powerpc) + + -- Andy Whitcroft Wed, 13 Oct 2010 23:25:12 +0100 + +linux (2.6.36-0.1) natty; urgency=low + + [ Andy Whitcroft ] + + * reduce disk usage during buildd builds + - LP: #645653 + * [Config] enforcer -- ensure CONFIG_INIT_PASS_ALL_PARAMS is y + * [Config] armel -- drop omap flavour + + [ Tim Gardner ] + + * Added dropped patch list + * more dropped patches + * [Config] Disable aufs, dmraid-4.5, ndis-wrapper + * [Config] Add support for cross compiling armel + * [Config] CONFIG_SCSI_QLA_ISCSI=n for armel + * [Upstream] drivers/serial/mfd.c: Fix ARM compile error + * [Config]: updateconfigs after adding brcm80211 + * staging: brcm80211: Fix Makefile syntax error + * rebased to v2.6.36-rc7 + + [ Upstream Kernel Changes ] + + * (upstream) IPS driver: don't toggle CPU turbo on unsupported CPUs + * (upstream) IPS driver: verify BIOS provided limits + * intel_ips: Print MCP limit exceeded values. + * Staging: Add initial release of brcm80211 - Broadcom 802.11n wireless + LAN driver. + * staging: brcm80211: Fix some initialisation failure paths + * staging: brcm80211: Add contact info to TODO list. + * staging: brcm80211: use '%pM' format to print MAC address + * staging: brcm80211: Fix URLs for firmware files. + * staging: brcm80211: fix 'ERROR: "foo * bar" should be "foo *bar"' + * staging: brcm80211: fix "ERROR: open brace '{' following function + dec..." + * staging: brcm80211: fix "ERROR: return is not a function, paren..." + * staging: brcm80211: fix "ERROR: do not use assignment in if condition" + * staging: brcm80211: fix "ERROR: trailing statements should be on next + line" + * staging: brcm80211: fix "ERROR: that open brace { ... prev line" + * staging: brcm80211: fix "ERROR: while should follow close brace '}'" + * staging: brcm80211: fix "ERROR: do not initialise globals to 0 or NULL" + * staging: brcm80211: fix "ERROR: do not initialise statics to 0 or NULL" + * staging: brcm80211: fix "ERROR: Macros w/ complex values ... + parenthesis" + * staging: brcm80211: fix "ERROR: Macros w/ mult. statements ... do - + while loop" + * staging: brcm80211: fix 'ERROR: "(foo*)" should be "(foo *)"' + * staging: brcm80211: fix "ERROR: need consistent spacing around '*'" + * staging: brcm80211: fix "ERROR: space prohibited after that ..." + * staging: brcm80211: fix "ERROR: space prohibited before ...close square + bracket" + * staging: brcm80211: fix "ERROR: space required after that close brace" + * staging: brcm80211: fix "ERROR: space required after that ..." + * staging: brcm80211: fix "ERROR: space required before that ..." + * staging: brcm80211: fix "ERROR: spaces prohibited around that ':' ..." + * staging: brcm80211: fix "ERROR: spaces required around that ..." + * staging: brcm80211: fix "ERROR: trailing whitespace." + * staging: brcm80211: fix remaining checkpatch errors. + * staging: brcm80211: use native ctype library + * staging: brcm80211: use string native library + * staging: brcm80211: add fullmac driver + * Staging: brcm80211: clean up makefile cflag lines + * Staging: brcm80211: remove driver specific -W options + * staging: brcm80211: Fix compile issue when BRCM80211_PCI is not set. + * staging: brcm80211: Make compiling of brcm80211.ko and brcmfmac.ko + mutually exclusive. + + -- Andy Whitcroft Tue, 12 Oct 2010 16:00:27 +0100 + +linux (2.6.35-22.33) maverick; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: Add support for Intellimouse Mode in ALPS touchpad on + Dell E2 series Laptops" + - LP: #641320 + + [ Brian Rogers ] + + * SAUCE: ir-core: Fix null dereferences in the protocols sysfs interface + - LP: #624701 + + [ Christopher James Halse Rogers ] + + * SAUCE: Nouveau: Add quirk framework to disable acceleration + - LP: #544088, #546393 + * SAUCE: Nouveau: Disable acceleration on MacBook Pros + - LP: #546393 + + [ John Johansen ] + + * Revert "SAUCE: AppArmor: allow newer tools to load policy on older + kernels" + * SAUCE: AppArmor: allow newer tools to load policy on older kernels + - LP: #639758 + + [ Mathieu J. Poirier ] + + * SAUCE: Adding vdd_sdi regulator supply to OMAP3EVM + + [ Upstream Kernel Changes ] + + * ALSA: HDA: Enable internal speaker on Dell M101z + - LP: #640254 + + -- Leann Ogasawara Fri, 17 Sep 2010 13:21:28 -0700 + +linux (2.6.35-22.32) maverick; urgency=low + + [ Arjan van de Ven ] + + * SAUCE: libata: Add ALPM power state accounting to the AHCI driver + + [ David Henningsson ] + + * SAUCE: ALSA: HDA: Enable internal mic on Dell E6410 and Dell E6510 + - LP: #605047, #628961 + + [ John Johansen ] + + * [Upstream] AppArmor: Fix splitting an fqname into separate namespace + and profile names + - LP: #615947 + * [Upstream] AppArmor: Fix locking from removal of profile namespace + - LP: #615947 + * SAUCE: AppArmor: allow newer tools to load policy on older kernels + - LP: #639758 + * SAUCE: Improve Amazon EBS performance for EC2 + - LP: #634316 + + [ Leann Ogasawara ] + + * Revert "SAUCE: i915 KMS -- blacklist i855" + * Revert "SAUCE: i915 KMS -- blacklist i845g" + * Revert "SAUCE: i915 KMS -- blacklist i830" + * Revert "SAUCE: i915 KMS -- support disabling KMS for known broken + devices" + * execute module-inclusion within a subshell + - LP: #621175 + + [ Upstream Kernel Changes ] + + * (pre-stable) bounce: call flush_dcache_page() after bounce_copy_vec() + - LP: #633227 + * (pre-stable) drm/i915: don't enable self-refresh on Ironlake + - LP: #629711 + * (pre-stable) mm: Move vma_stack_continue into mm.h + * x86, hwmon: Fix unsafe smp_processor_id() in thermal_throttle_add_dev + - LP: #601073 + * PM / Runtime: Make runtime_status attribute not debug-only (v. 2) + * PM / Runtime: Add runtime PM statistics (v3) + * compat: Make compat_alloc_user_space() incorporate the access_ok() + - CVE-2010-3081 + * x86-64, compat: Test %rax for the syscall number, not %eax + - CVE-2010-3301 + * x86-64, compat: Retruncate rax after ia32 syscall entry tracing + - CVE-2010-3301 + + -- Leann Ogasawara Tue, 14 Sep 2010 08:46:49 -0700 + +linux (2.6.35-21.31) maverick; urgency=low + + [ Andy Whitcroft ] + + * bodge linux-libc-dev package version due to ti-omap4 error + * linux-libc-dev -- ensure we can only build this on debian.master + + -- Leann Ogasawara Mon, 13 Sep 2010 09:54:31 -0700 + +linux (2.6.35-21.30) maverick; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: fbcon -- fix OOPs triggered by race prevention fixes + - LP: #614008 + + [ Daniel Lezcano ] + + * SAUCE: fix compilation warning when CONFIG_SECURITY is not set + + [ Henrik Rydberg ] + + * SAUCE: Input: wacom - add fuzz parameters to features + * SAUCE: Input: wacom - collect device quirks into single function + * SAUCE: Input: wacom - add support for the Bamboo Touch trackpad + * SAUCE: Input: wacom - add a quirk for low resolution Bamboo devices + * SAUCE: hid: ntrig: Remove unused device ids + * SAUCE: hid: ntrig: remove sysfs nodes + * SAUCE: hid: ntrig: Correct logic for quirks + * SAUCE: hid: ntrig: zero-initialize ntrig struct + * SAUCE: hid: ntrig: Setup input filtering manually + * SAUCE: hid: ntrig: New ghost-filtering event logic + + [ Leann Ogasawara ] + + * SAUCE: ndiswrapper: Initialize buffer index and check its value + - LP: #613796 + + [ Manoj Iyer ] + + * SAUCE: Add support for Intellimouse Mode in ALPS touchpad on Dell E2 + series Laptops + - LP: #632884 + + [ Ping Cheng ] + + * SAUCE: Input: wacom - parse the Bamboo device family + + [ Rafi Rubin ] + + * SAUCE: hid: ntrig: identify firmware version (wiggled) + + [ Tim Gardner ] + + * [Config] CONFIG_NL80211_TESTMODE=n + + [ Upstream Kernel Changes ] + + * Revert "input: mt: Add support for the Bamboo Touch trackpad" + * e1000e: initial support for 82579 LOMs + * e1000e: correct MAC-PHY interconnect register offset for 82579 + * (pre-stable) ALSA: hda - Add a new hp-laptop model for Conexant 5066, + tested on HP G60 + - LP: #587388 + * DSS2: Don't power off a panel twice + - LP: #588243 + * mmc: build fix: mmc_pm_notify is only available with CONFIG_PM=y + * Input: i8042 - reset keyboard controller wehen resuming from S2R + - LP: #86820 + * ALSA: hda - Fix beep frequency on IDT 92HD73xx and 92HD71Bxx codecs + - LP: #414795 + * agp/intel: Support the extended physical addressing bits on + Sandybridge. + - LP: #632488 + * drm/i915,intel_agp: Add support for Sandybridge D0 + - LP: #632488 + * (pre-stable) intel_agp,i915: Add more sandybridge graphics device ids + - LP: #632488 + * mmc: omap: fix for bus width which improves SD card's peformance. + + -- Leann Ogasawara Tue, 07 Sep 2010 09:58:52 -0700 + +linux (2.6.35-20.29) maverick; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: i915 KMS -- support disabling KMS for known broken devices + - LP: #563277 + * SAUCE: i915 KMS -- blacklist i830 + - LP: #542208, #563277 + * SAUCE: i915 KMS -- blacklist i845g + - LP: #541492, #563277 + * SAUCE: i915 KMS -- blacklist i855 + - LP: #511001, #541511, #563277 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_SENSORS_PKGTEMP=m + - LP: #601073 + * ARM: Temporarily disable module check for armel + * rebase to v2.6.35.4 + * [Config] update configs following rebase to v2.6.35.4 + + [ Ricardo Salveti de Araujo ] + + * [Config] Change CONFIG_LEDS_TRIGGER_HEARTBEAT from module to built-in + in Omap + + [ Tim Gardner ] + + * [Config] Added be2net, be2scsi to udebs + - LP: #628776 + + [ Upstream Kernel Changes ] + + * x86, cpu: Package Level Thermal Control, Power Limit Notification + definitions + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: pkgtemp hwmon driver + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: thermal throttling handler + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: power limit + - LP: #601073 + * x86, hwmon: Package Level Thermal/Power: pkgtemp documentation + - LP: #601073 + * hid: 3m: Adjust to sequential MT HID protocol + * hid: 3m: Convert to MT slots + * hid: 3m: Correct touchscreen emulation + * hid: 3m: Adjust major / minor axes to scale + * input: bcm5974: Adjust major / minor to scale + * HID: magicmouse: don't allow hidinput to initialize the device + * HID: magicmouse: simplify multitouch feature request + * HID: magicmouse: simplify touch data bit manipulation + * HID: magicmouse: simplify touch down logic + * HID: magicmouse: remove timestamp logic + * HID: magicmouse: enable Magic Trackpad support + * HID: magicmouse: Adjust major / minor axes to scale + * mmc: fix all hangs related to mmc/sd card insert/removal during + suspend/resume + - LP: #477106 + * drm/i915: fix VGA plane disable for Ironlake+ + - LP: #602281 + + -- Leann Ogasawara Mon, 30 Aug 2010 08:38:01 -0700 + +linux (2.6.35-19.28) maverick; urgency=low + + [ Leann Ogasawara ] + + * No changes from 2.6.35-19.27. Some armel udebs were accidentally deleted + from the archive and a no-change rebuild was attempted. However, the ABI + did not get bumped and resulted in build failures for 2.6.35-19.27. Fix + up the ABI and re-upload. + + -- Leann Ogasawara Sat, 28 Aug 2010 16:42:27 -0700 + +linux (2.6.35-19.27) maverick; urgency=low + + [ Leann Ogasawara ] + + * No changes from 2.6.35-19.26. Some armel udebs were accidentally deleted + from the archive. + + -- Leann Ogasawara Fri, 27 Aug 2010 08:58:35 -0700 + +linux (2.6.35-19.26) maverick; urgency=low + + [ Upstream Kernel Changes ] + + * ARM: OMAP: Beagle: revision detection + * ARM: OMAP: Beagle: only Cx boards use pin 23 for write protect + * ARM: OMAP: Beagle: no gpio_wp pin connection on xM + + -- Leann Ogasawara Thu, 26 Aug 2010 09:15:09 -0700 + +linux (2.6.35-19.25) maverick; urgency=low + + [ Jarod Wilson ] + + * SAUCE: Bring in staging/lirc from 2.6.36 + - LP: #609234 + * SAUCE: Update ir-core to linuxtv/other which should be merged for + 2.6.36. + - LP: #609234 + * SAUCE: Fix memleaks in imon and mceusb drivers + - LP: #609234 + * SAUCE: Bring in streamzap support from linuxtv/other + - LP: #609234 + + [ Mario Limonciello ] + + * Remove ubuntu/lirc in favor of staging/lirc from 2.6.36 + - LP: #609234 + + [ Mathieu J. Poirier ] + + * SAUCE: ARM: adding i2c eeprom driver to read EDID + - LP: #608279 + + [ Upstream Kernel Changes ] + + * intel_idle: disable module support + - LP: #615265 + * (pre-stable) ALSA: hda - Ensure codec patch files are checked for the + correct codec ID + * (pre-stable) ALSA: hda - Rename iMic to Int Mic on Lenovo NB0763 + - LP: #605101 + * (pre-stable) ALSA: HDA: Use model=auto for LG R510 + - LP: #495134 + * (pre-stable) ALSA: HDA: Add Sony VAIO quirk for ALC269 + - LP: #519066 + * (pre-stable) ALSA: HDA: Fix front mic on Dell Precision M6500 + - LP: #519066 + * input: mt: Initialize slots to unused (rev2) + * input: mt: Add support for the Bamboo Touch trackpad + * hid: Add a hid quirk for input sync override + + -- Leann Ogasawara Mon, 23 Aug 2010 12:42:52 -0700 + +linux (2.6.35-18.24) maverick; urgency=low + + [ Colin Watson ] + + * Pass DEB_MAINT_PARAMS to hook scripts + + [ Leann Ogasawara ] + + * [Config] Add CONFIG_INPUT_UINPUT=y to config enforcer + - LP: #584812 + * rebase to v2.6.35.3 + + [ Upstream Kernel Changes ] + + * (pre-stable) dell-wmi: Add support for eject key on Dell Studio 1555 + - LP: #609234 + * can: add limit for nframes and clean up signed/unsigned variables + - CVE-2010-2959 + * drm: Initialize ioctl struct when no user data is present + - CVE-2010-2803 + * ARM: initial stack protector (-fstack-protector) support + * ARM: stack protector: change the canary value per task + * [ARM] implement arch_randomize_brk() + * [ARM] add address randomization to mmap() + * ARM: fix ASLR of PIE executables + + -- Leann Ogasawara Sun, 22 Aug 2010 19:22:04 -0700 + +linux (2.6.35-17.23) maverick; urgency=low + + [ Jeremy Kerr ] + + * [Config] build-in uinput module + - LP: #584812 + + [ Leann Ogasawara ] + + * Revert "[Config] [FTBS] ia64: Temporarily disable CONFIG_CEPH_FS" + * Revert "[Config] [FTBS] ia64: Temporarily disable gpiolib" + * Revert "[Config] [FTBS] sparc: Temporarily disable + CONFIG_MTD_NAND_DENALI" + * Revert "[Config] [FTBS] sparc: Temporarily disable + CONFIG_MFD_JANZ_CMODIO" + * Revert "[Config] [FTBS] sparc: Temporarily disable + CONFIG_INFINIBAND_QIB" + * [Config] Enable INTEL_IPS + - LP: #601057 + * Remove ia64 support + * [Config] Update portsconfigs after removing ia64 support + * Remove sparc support + * [Config] Update portsconfigs after removing sparc support + + [ Linus Torvalds ] + + * (pre-stable) mm: fix page table unmap for stack guard page properly + + [ Mathieu J. Poirier ] + + * SAUCE: (no-up) ARM: Resetting power_mode to its original value. + - LP: #591941 + + [ Upstream Kernel Changes ] + + * timer: add on-stack deferrable timer interfaces + - LP: #601057 + * x86 platform driver: intelligent power sharing driver + - LP: #601057 + * IPS driver: add GPU busy and turbo checking + - LP: #601057 + * X86: intel_ips, check for kzalloc properly + - LP: #601057 + * ips driver: make it less chatty + - LP: #601057 + + -- Leann Ogasawara Tue, 17 Aug 2010 09:38:08 -0700 + +linux (2.6.35-16.22) maverick; urgency=low + + [ Andy Whitcroft ] + + * debian -- more agressivly clean up after depmod on purge + - LP: #618591 + + [ Henrik Rydberg ] + + * SAUCE: hid: 3m: Simplify touchsreen emulation logic + + [ Leann Ogasawara ] + + * ubuntu: iscsitarget -- version 1.4.20.2 + * ubuntu: rtl8192se -- update to version 0017.0507.2010 + * rebase to v2.6.35.2 + * [Config] update configs following rebase to v2.6.35.2 + * [Config] update ports configs following rebase to v2.6.35.2 + + [ Luke Yelavich ] + + * [Config] Enable new firewire stack on powerpc + + [ Mathieu J. Poirier ] + + * SAUCE: (drop after 2.6.35) ARM: Using gpmc function to init nand flash. + - LP: #608266 + + -- Leann Ogasawara Thu, 12 Aug 2010 09:58:01 -0700 + +linux (2.6.35-15.21) maverick; urgency=low + + [ Luke Yelavich ] + + * [Config] CONFIG_SND_USB_UA101=m for all architectures + + [ Upstream Kernel Changes ] + + * Input: introduce MT event slots + * Input: document the MT event slot protocol + * (pre-stable) sched: Revert nohz_ratelimit() for now + * (pre-stable) drm/radeon/kms: add missing copy from user + - LP: #606081 + + [ Leann Ogasawara ] + + * rebase to v2.6.35.1 + + -- Leann Ogasawara Mon, 09 Aug 2010 09:24:04 -0700 + +linux (2.6.35-14.20) maverick; urgency=low + + [ Andy Whitcroft ] + + * update Vcs-Git to point to maverick repo + * debian -- include the debian packaging in the -source package + - LP: #608674 + * select debian source format 1.0 + * add support for building selected stages of kernel + - LP: #603087 + * cleanup conditional dependancy handling + - LP: #603087 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Handle missing NID 0x1b on ALC259 codec + - LP: #582199, #586418, #588031 + * ALSA: hda - Handle pin NID 0x1a on ALC259/269 + - LP: #582199, #586418, #588031 + * sched: Revert nohz_ratelimit() for now + + -- Leann Ogasawara Tue, 03 Aug 2010 08:46:47 -0700 + +linux (2.6.35-14.19) maverick; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.35 + + -- Leann Ogasawara Sun, 01 Aug 2010 10:35:56 -0700 + +linux (2.6.35-13.18) maverick; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: (no-up) Modularize vesafb -- fix initialisation + * SAUCE: add tracing for user initiated readahead requests + * SAUCE: vt -- maintain bootloader screen mode and content until vt + switch + * SAUCE: vt -- allow grub to request automatic vt_handoff + * SAUCE: fbcon -- fix race between open and removal of framebuffers + * SAUCE: drm -- stop early access to drm devices + + [ Bryan Wu ] + + * CONFIG: compile in OTG driver and Transceiver driver + - LP: #566645 + * remove OTG modules from modules list file + + [ John Johansen ] + + * SAUCE: AppArmor: -- sync to AppArmor mainline 2010-07-27 + - LP: #581525, #599450 + * SAUCE: AppArmor: -- sync to AppArmor mainline 2010-07-29 + * SAUCE: AppArmor 2.4 compatibility patch + * SAUCE: AppArmor: Allow dfa backward compatibility with broken userspace + * SAUCE: fix pv-ops for legacy Xen + * SAUCE: blkfront: default to sd devices + * [Config] Build in drivers required for Xen pv-ops + + [ Leann Ogasawara ] + + * Revert "[Upstream] i915: Use the correct mask to detect i830 aperture + size." + + [ Lee Jones ] + + * SAUCE: ARM: OMAP: Add macros for comparing silicon revision + - LP: #608095 + * SAUCE: OMAP: DSS2: check for both cpu type and revision, rather than + just revision + - LP: #608095 + * SAUCE: OMAP: DSS2: enable hsclk in dsi_pll_init for OMAP36XX + - LP: #608095 + * SAUCE: ARM: OMAP: Beagle: support twl gpio differences on xM + - LP: #608095 + + [ Upstream Kernel Changes ] + + * agp/intel: Use the correct mask to detect i830 aperture size. + - LP: #597075 + + -- Leann Ogasawara Fri, 30 Jul 2010 15:46:59 -0700 + +linux (2.6.35-12.17) maverick; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc6 + * [Config] update configs following rebase to v2.6.35-rc6 + * [Config] update ports configs following rebase to v2.6.35-rc6 + * SAUCE: [FTBS] armel: define KEY_F10 and KEYF11 + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc6 + + -- Leann Ogasawara Fri, 23 Jul 2010 16:16:38 +0200 + +linux (2.6.35-11.16) maverick; urgency=low + + [ Leann Ogasawara ] + + * Bump ABI for new compiler update + + -- Leann Ogasawara Fri, 23 Jul 2010 10:24:58 +0200 + +linux (2.6.35-10.15) maverick; urgency=low + + [ Leann Ogasawara ] + + * Revert "SAUCE: ensure vga16fb loads if no other driver claims the VGA + device" + * [Config] Enable CONFIG_M686=y + - LP: #592495 + + [ Upstream Kernel Changes ] + + * tracing: Add alignment to syscall metadata declarations + + -- Leann Ogasawara Tue, 20 Jul 2010 18:18:49 +0200 + +linux (2.6.35-9.14) maverick; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- add BOM and automated update script + * ubuntu: AUFS -- update to b37c575759dc4535ccc03241c584ad5fe69e3b25 + + [ John Johansen ] + + * [Config] Enable DRBD as a module + + [ Kees Cook ] + + * SAUCE: Yama: verify inode is symlink to avoid bind mounts + - LP: #604407 + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_DRM_VMWGFX (staging driver) + - LP: #606139 + * [Config] ports: Disable CONFIG_DRM_VMWGFX (staging driver) + - LP: #606139 + * [Config] Enable CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y + * [Config] ports: Enable CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y + + [ Lee Jones ] + + * Stop ARM boards crashing when CUPS is loaded + - LP: #601226 + + [ Upstream Kernel Changes ] + + * perf probe: Support tracing an entry of array + * perf probe: Support static and global variables + + -- Leann Ogasawara Fri, 16 Jul 2010 14:38:17 -0700 + +linux (2.6.35-8.13) maverick; urgency=low + + [ Kees Cook ] + + * SAUCE: Yama: check PTRACE using thread group leader + * SAUCE: Yama: search for PTRACE exceptions via thread group leader + - LP: #603716 + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc5 + * [Config] update configs following rebase to v2.6.35-rc5 + + [ Nicolas Pitre ] + + * SAUCE: make ndiswrapper available on X86 only + + [ Tim Gardner ] + + * [Config] Added ums-cypress to udeb + - LP: #576066 + * SAUCE: fix build error with CONFIG_BLK_DEV_INITRD=n + * [Config] CONFIG_NDISWRAPPER=m across all configs + + [ Upstream Kernel Changes ] + + * HID: magicmouse: report last touch up + * rebase to 2.6.35-rc5 + + -- Leann Ogasawara Tue, 13 Jul 2010 18:57:59 -0700 + +linux (2.6.35-7.12) maverick; urgency=low + + [ Tim Gardner ] + + * [Upstream] i915: Use the correct mask to detect i830 aperture size. + - LP: #597075 + + [ Upstream Kernel Changes ] + + * (drop after 2.6.35) drm/radeon/kms: add ioport register access + (squashed) + + -- Tim Gardner Thu, 08 Jul 2010 09:53:13 -0600 + +linux (2.6.35-7.11) maverick; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_X86_MRST=n + + [ Upstream Kernel Changes ] + + * (drop after 2.6.35-rc5) writeback: remove writeback_inodes_wbc + * (drop after 2.6.35-rc5) writeback: split writeback_inodes_wb + * (drop after 2.6.35-rc5) writeback: simplify the write back thread queue + + -- Tim Gardner Tue, 06 Jul 2010 18:39:08 -0600 + +linux (2.6.35-7.10) maverick; urgency=low + + [ Kees Cook ] + + * SAUCE: security: create task_free security callback + * SAUCE: Yama: add PTRACE exception tracking and interface + * SAUCE: security: unconditionally chain to Yama LSM + * Revert "SAUCE: ptrace: restrict ptrace scope to children" + * Revert "SAUCE: fs: block hardlinks to non-accessible sources" + * Revert "SAUCE: fs: block cross-uid sticky symlinks" + * [Upstream] security: Yama LSM + * [Config] Enable CONFIG_SECURITY_YAMA=y + + [ Tim Gardner ] + + * [Config] updateconfigs/updateportsconfigs after rebase to 2.6.35-rc4 + + [ Upstream Kernel Changes ] + + * rebase to 2.6.35-rc4 + + -- Leann Ogasawara Thu, 01 Jul 2010 08:55:57 -0700 + +linux (2.6.35-6.9) maverick; urgency=low + + [ Tim Gardner ] + + * [Upstream] direct_splice_actor() should not use pos in sd + - LP: #588861 + + -- Leann Ogasawara Mon, 28 Jun 2010 12:35:49 -0700 + +linux (2.6.35-6.8) maverick; urgency=low + + [ Mathieu J. Poirier ] + + * ARM: Adding regulator supply for vdds_sdi. + - LP: #597904 + + -- Leann Ogasawara Sun, 27 Jun 2010 16:34:43 -0700 + +linux (2.6.35-6.7) maverick; urgency=low + + [ Alberto Milone ] + + * [Upstream] Add support for the ATIF ACPI method to the radeon driver + + [ Chase Douglas ] + + * [Upstream] HID: magicmouse: scroll on entire surface, not just middle + of mouse + * [Upstream] HID: magicmouse: disable and add module param for scroll + acceleration + * [Upstream] HID: magicmouse: properly account for scroll movement in + state + * [Upstream] HID: magicmouse: add param for scroll speed + * [Upstream] HID: magicmouse: enable horizontal scrolling + + [ Henrik Rydberg ] + + * [Upstream] Input: evdev - convert to dynamic event buffer + * [Upstream] Input: evdev - use driver hint to compute size of event + buffer + * [Upstream] Input: bcm5974 - set the average number of events per MT + event packet + * [Upstream] Input: hid-input - use a larger event buffer for MT devices + * [Upstream] Input: evdev - never leave the client buffer empty after + write + + [ John Johansen ] + + * SAUCE: AppArmor: -- mainline 2010-06-23 + * SAUCE: AppArmor 2.4 compatibility patch + * SAUCE: fs: block hardlinks to non-accessible sources AppArmor portion + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_INTR_REMAP=y + - LP: #597091 + * [Config] Enable CONFIG_X86_X2APIC + - LP: #597091 + + [ Mathieu J. Poirier ] + + * [Config] ARM: Turning off CONFIG_CPU_IDLE on omap + - LP: #594382 + + -- Leann Ogasawara Thu, 24 Jun 2010 12:19:48 -0700 + +linux (2.6.35-5.6) maverick; urgency=low + + [ Amit Kucheria ] + + * [Config] update omap flavour description + + [ Andy Whitcroft ] + + * update to ubuntu-debian:508b7aa34b578c0d1e51bfb571f2bfb824dc65ac + - LP: #570500, #576274 + * SAUCE: add option to hand off all kernel parameters to init + - LP: #586386 + * [Config] enable passing all kernel command line to init + - LP: #586386 + * [Config] disable CONFIG_VMI + - LP: #537601 + * [Config] enable CONFIG_IPV6_SIT_6RD + - LP: #591869 + * [Config] enable CONFIG_VMWARE_BALOON as module + - LP: #592039 + + [ Leann Ogasawara ] + + * Revert "SAUCE: pm: Config option to disable handling of console during + suspend/resume" + - LP: #594885 + * [Config] Remove CONFIG_PM_DISABLE_CONSOLE + * [Config] ports: enable passing all kernel command line to init + - LP: #586386 + * [Config] Enable CONFIG_FB_VESA=y for x86 + * [Config] Add CONFIG_FRAMEBUFFER_CONSOLE=y to config enforcer + * [Config] Add CONFIG_FB_VESA=y for x86 to config enforcer + * [Config] Enable CONFIG_TASK_DELAY_ACCT=y + - LP: #493156 + + [ Mathieu Poirier ] + + * ARM: Adding MosChip MCS7830 to nic-usb + - LP: #584920 + + [ Upstream Kernel Changes ] + + * Revert "[Upstream] docbook: need xmldoclinks for all doc types" + * docbook: need xmldoclinks for all doc types + * perf probe: Add kernel source path option + + -- Leann Ogasawara Thu, 17 Jun 2010 08:05:29 -0700 + +linux (2.6.35-4.5) maverick; urgency=low + + [ Leann Ogasawara ] + + * Revert "[Upstream] (evdev) Use driver hint to compute the evdev buffer + size (rev2)" + * Revert "[Upstream] (evdev) Convert to dynamic event buffer (rev4)" + * Revert "[Upstream] (evdev) Use multi-reader buffer to save space + (rev4)" + * Revert "SAUCE: drivers: Remove some duplicate device entries in various + modules" + * [Upstream] USB: option: Remove duplicate AMOI_VENDOR_ID + * [Upstream] Revert "USB: Adding support for HTC Smartphones to ipaq" + * [Upstream] p54usb: Comment out duplicate Medion MD40900 device id + + [ Tim Gardner ] + + * [Config] CONFIG_NFS_FSCACHE=y + - LP: #440522 + * [Config] CONFIG_FSCACHE_STATS=y, CONFIG_FSCACHE_HISTOGRAM=y + - LP: #440522 + + -- Leann Ogasawara Wed, 16 Jun 2010 08:43:07 -0700 + +linux (2.6.35-3.4) maverick; urgency=low + + [ Andy Whitcroft ] + + * debian -- ensure the version number is clean + + [ Henrik Rydberg ] + + * [Upstream] Introduce MT event slots (rev 5) + * [Upstream] Document the MT event slot protocol (rev5) + * [Upstream] (evdev) Use multi-reader buffer to save space (rev4) + * [Upstream] (evdev) Convert to dynamic event buffer (rev4) + * [Upstream] (evdev) Use driver hint to compute the evdev buffer size + (rev2) + + [ Leann Ogasawara ] + + * Revert "SAUCE: Add MODULE_ALIAS for Dell WMI module" + * Revert "SAUCE: hostap: send events on data interface as well as master + interface" + * Revert "Fix webcam having USB ID 0ac8:303b" + * Revert "SAUCE: toshiba_acpi -- pull in current -dev version of driver" + * rebase to v2.6.35-rc3 + + [ Maxim Levitsky ] + + * [Config] Enable new Smartmedia/xD translation layer + - LP: #202490 + + [ Upstream Kernel Changes ] + + * net: fix deliver_no_wcard regression on loopback device + + [ Upstream changes ] + + * rebased to v2.6.35-rc3 + + -- Leann Ogasawara Thu, 10 Jun 2010 16:15:22 -0700 + +linux (2.6.35-2.3) maverick; urgency=low + + [ Bryan Wu ] + + * CONFIG: enforce -- make sure we disable CONFIG_LOCALVERSION_AUTO + + [ Leann Ogasawara ] + + * [Config] armel: Enable CONFIG_BNX2=m + * [Config] ports: Enable CONFIG_BNX2X=m + * SAUCE: armel: define get_dma_ops to fix FTBS + + [ Tim Gardner ] + + * [Upstream] net: Print num_rx_queues imbalance warning only when there + are allocated queues + - LP: #591416 + + -- Leann Ogasawara Wed, 09 Jun 2010 08:27:41 -0700 + +linux (2.6.35-2.2) maverick; urgency=low + + [ Andy Whitcroft ] + + * [Config] d-i: make armel configuration versatile flavour specific + - LP: #588805 + * [Config] d-i: enable .udebs for omap flavour + - LP: #588805 + + [ Kees Cook ] + + * ptrace: limit scope to attach only (allow read) + - LP: #589656 + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc2 + * [Config] update configs following rebase to v2.6.35-rc2 + * [Config] update port configs following rebase to v2.6.35-rc2 + + [ Lee Jones ] + + * Enable perf to be more helpful when perf_ does not exist. + - LP: #570500 + * 'fdr editconfig' modification. Easily skip over unwanted menuconfigs. + + [ Tim Gardner ] + + * [Config] Update bnx2 udeb firmware files + - LP: #589304 + + [ Upstream changes ] + + * rebased to v2.6.35-rc2 + + -- Leann Ogasawara Mon, 07 Jun 2010 09:45:04 -0700 + +linux (2.6.35-1.1) maverick; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update to standalone 2.6.35-rcN as at 20100601 + - LP: #587888 + * ubuntu: AUFS -- track changes to the arguements to fop fsync() + + [ Leann Ogasawara ] + + * rebase to v2.6.35-rc1 + * [Config] update configs following rebase to v2.6.35-rc1 + * [Config] update port configs following rebase to v2.6.35-rc1 + * SAUCE: lirc: rename usb_buffer_alloc() and usb_buffer_free() + * SAUCE: ndiswrapper: rename usb_buffer_alloc() and usb_buffer_free() + * SAUCE: ndiswrapper: convert multicast list to list_head + * [Config] [FTBS] armel: Temporarily disable CONFIG_GPIO_JANZ_TTL + * [Config] [FTBS] ia64: Temporarily disable gpiolib + * [Config] [FTBS] ia64: Temporarily disable CONFIG_CEPH_FS + * [Config] [FTBS] sparc: Temporarily disable CONFIG_INFINIBAND_QIB + * [Config] [FTBS] sparc: Temporarily disable CONFIG_MFD_JANZ_CMODIO + * [Config] [FTBS] armel: Temporarily disable CONFIG_MFD_JANZ_CMODIO + * [Config] [FTBS] armel: Temporarily disable CONFIG_DT3155 + * [Config] [FTBS] sparc: Temporarily disable CONFIG_MTD_NAND_DENALI + * [Config] [FTBS] armel: Temporarily disable bnx2 + * [Config] [FTBS] armel: Temporarily disable CONFIG_SERIAL_UARTLITE + * SAUCE: [FTBS] armel: Don't include asm/agp.h for ttm + * SAUCE: [FTBS] armel: include linux/dma-mapping.h + * SAUCE: [FTBS] armel: replace omap_set_gpio_debounce with + gpio_set_debounce + + [ Upstream Kernel Changes ] + + * of/usb: fix build error due to of_node pointer move + * n2_crypto: Fix build after of_device/of_platform_driver changes. + * powerpc/fsl-booke: fix the case where we are not in the first page + * powerpc/fsl-booke: Move the entry setup code into a seperate file + * powerpc/kexec: Add support for FSL-BookE + * greth: Fix build after OF device conversions. + + [ Upstream changes ] + + * rebased to v2.6.35-rc1 + + -- Leann Ogasawara Fri, 04 Jun 2010 23:01:52 -0700 + +linux (2.6.35-1.0) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * Null entry. + + -- Leann Ogasawara Wed, 02 Jun 2010 15:17:41 -0700 + +linux (2.6.34-5.14) maverick; urgency=low + + [ Tim Gardner ] + + * [Config] Added module inclusion support + * [Config] Added virtual flavour module inclusion list and d-i package + definitions + + -- Leann Ogasawara Wed, 02 Jun 2010 12:58:14 -0700 + +linux (2.6.34-5.13) maverick; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- aufs2 20091209" + * Revert "ubuntu: AUFS -- export various core functions + (aufs2-standalone.patch)" + * Revert "ubuntu: AUFS -- export various core functions + (aufs2-base.patch)" + * ubuntu: AUFS -- aufs2 base patch for linux-2.6.34 + - LP: #587888 + * ubuntu: AUFS -- aufs2 standalone patch for linux-2.6.34 + - LP: #587888 + * ubuntu: AUFS -- update to standalone 2.6.34 as at 20100601 + - LP: #587888 + * [Config] AUFS -- enable aufs options + - LP: #587888 + + -- Leann Ogasawara Tue, 01 Jun 2010 08:56:43 -0700 + +linux (2.6.34-5.12) maverick; urgency=low + + [ Andy Whitcroft ] + + * enforce -- ensure SYSFS compatibility is disabled + + [ Chase Douglas ] + + * build with libdw-dev for perf probe symbol support + * maverick ftrace configuration changes + + [ Kees Cook ] + + * Revert "SAUCE: x86: brk away from exec rand area" + * Revert "SAUCE: [um] Don't use nx_enabled under UML" + * Revert "SAUCE: [x86] implement cs-limit nx-emulation for ia32" + * SAUCE: x86: implement cs-limit nx-emulation for ia32 + - LP: #369978 + * SAUCE: x86: more tightly confine cs-limit nx-emulation to ia32 only + * SAUCE: x86: brk away from exec rand area + - LP: #452175 + * SAUCE: ptrace: restrict ptrace scope to children + + [ Leann Ogasawara ] + + * Add new omap flavour to getabis + * [Config] Enable CONFIG_FRAMEBUFFER_CONSOLE=y for all archs + - LP: #585490 + * build/modules: Temorarily add ignore.modules + * ubuntu: iscsitarget -- version 1.4.20.1 + + [ Loïc Minier ] + + * SAUCE: [um] Don't use nx_enabled under UML + - LP: #524849 + + -- Leann Ogasawara Fri, 28 May 2010 08:27:17 -0700 + +linux (2.6.34-4.11) maverick; urgency=low + + [ Amit Kucheria ] + + * SAUCE: omap: remove calls to usb_nop_xceiv_register from board files + * [Config] Add support for OMAP-mainline flavour + + [ Andy Whitcroft ] + + * SAUCE: powerpc: fix compile error when ptrace.h is included from + userspace + - LP: #583733 + + [ Chase Douglas ] + + * Revert "SAUCE: Don't register vga16fb framebuffer if other framebuffers + are present" + * Revert "SAUCE: Disable function tracing after hitting __schedule_bug" + * Revert "SAUCE: drm/i915: don't change DRM configuration when releasing + load detect pipe" + + [ Kees Cook ] + + * SAUCE: fs: block cross-uid sticky symlinks + * SAUCE: fs: block hardlinks to non-accessible sources + + [ Koen Kooi ] + + * SAUCE: board-omap3-beagle: add DSS2 support + + [ Leann Ogasawara ] + + * Revert "staging/go7007 -- disable" + * Revert "[Config] staging/winbond -- disable" + * Revert "Disable 4MB page tables for Atom, work around errata AAE44" + * Revert "SAUCE: sync before umount to reduce time taken by ext4 umount" + * Revert "SAUCE: Enable an e1000e Intel Corporation 82567 Gigabit + controller" + * Revert "SAUCE: Fix MODULE_IMPORT/MODULE_EXPORT" + * Revert "SAUCE: Created MODULE_EXPORT/MODULE_IMPORT macros" + * Revert "SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps" + * Revert "SAUCE: r8169: disable TSO by default for RTL8111/8168B + chipsets." + * Revert "[Upstream] b43: Declare all possible firmware files." + * Revert "add Breaks: against hardy lvm2" + * Revert "SAUCE: Guest OS does not recognize a lun with non zero target + id on Vmware ESX Server" + * Revert "SAUCE: Catch nonsense keycodes and silently ignore" + * [Config] Enable CONFIG_ECRYPT_FS=y for ports + * [Config] Enable CONFIG_USB=y for armel and sparc + * [Config] Enable CONFIG_SCSI=y for ia64 and sparc + * [Config] Enable CONFIG_RFKILL=y for ports + * [Config] Enable CONFIG_ATH9K_DEBUGFS=y + * [Config] Enable CONFIG_IWMC3200TOP_DEBUGFS=y + * [Config] Enable CONFIG_RCU_FAST_NO_HZ=y + * [Config] Enable CONFIG_IWLWIFI_DEVICE_TRACING=y + * [Config] Enable CONFIG_LIBERTAS_MESH=y + * [Config] Enable CONFIG_MMC_RICOH_MMC=y + * [Config] CONFIG_RT2800USB_UNKNOWN=y + * [Config] Enable CONFIG_VGA_SWITCHEROO=y + * [Config] Enable CONFIG_CEPH_FS=m + * [Config] Enable CONFIG_CRYPTO_PCRYPT=m + * [Config] Enable CONFIG_EEEPC_WMI=m + * [Config] Enable CONFIG_RT2800PCI=m + * [Config] Enable CONFIG_SCSI_HPSA=m + * [Config] Enable CONFIG_VHOST_NET=m + * [Config] Disable CONFIG_SND_HDA_INPUT_BEEP_MODE by default + - LP: #582350 + * [Config] Disable CONFIG_SOUND_OSS* and CONFIG_SND_*OSS + - LP: #579300 + * [Config] Enable CONFIG_PCIEASPM=y + - LP: #333990 + * [Config] updateconfigs for OMAP flavour + + [ Loïc Minier ] + + * Enable perf tools on armel + + [ Tim Gardner ] + + * SAUCE: Updated ndiswrapper to 1.56 + - LP: #582555 + * [Config] Added virtual flavour + * [Config] Remove support for sub-flavours + * [Config] Removed amd64 preempt flavour + * [Config] updateconfigs, updateportsconfigs after flavour munging + + -- Leann Ogasawara Tue, 25 May 2010 09:34:55 -0700 + +linux (2.6.34-3.10) maverick; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34 + + [ Upstream changes ] + + * rebased to v2.6.34 + + -- Leann Ogasawara Tue, 18 May 2010 17:35:35 -0700 + +linux (2.6.34-2.9) maverick; urgency=low + + [ Leann Ogasawara ] + + * [Config] [FTBS] Disable comedi for armel + + -- Leann Ogasawara Thu, 13 May 2010 23:20:55 +0200 + +linux (2.6.34-2.8) maverick; urgency=low + + [ Leann Ogasawara ] + + * Drop lpia + * [Config] [FTBS] disable KVM + * [Config] [FTBS] disable ipr for armel + + -- Leann Ogasawara Thu, 13 May 2010 16:07:52 +0200 + +linux (2.6.34-2.7) maverick; urgency=low + + [ Leann Ogasawara ] + + * [Config] disable CONFIG_SCSI_IPR on powerpc + * [Config] Remove 386 flavour per UDS discussion + + -- Leann Ogasawara Wed, 12 May 2010 18:26:43 +0200 + +linux (2.6.34-1.6) maverick; urgency=low + + [ Chase Douglas ] + + * enforce CONFIG_TMPFS_POSIX_ACL=y + - LP: #575940 + * don't force module dependency checking + - LP: #577029 + + [ Kees Cook ] + + * SAUCE: mmap_min_addr check CAP_SYS_RAWIO only for write + - LP: #568844 + + [ Leann Ogasawara ] + + * Revert "SAUCE: ata: blacklist FUJITSU MHW2160BH PL" + * rebase to v2.6.34-rc7 + * [Config] update configs following rebase to v2.6.34-rc7 + * [Config] update port configs following rebase to v2.6.34-rc7 + * Add btrfs to the udebs + + [ Tim Gardner ] + + * [Config] Add atl1c to nic-modules udeb + - LP: #557130 + + [ Upstream changes ] + + * rebased to v2.6.34-rc7 + + -- Leann Ogasawara Tue, 11 May 2010 11:29:08 +0200 + +linux (2.6.34-1.5) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc6 + * [Config] update configs following rebase to v2.6.34-rc6 + * [Config] update port configs following rebase to v2.6.34-rc6 + + [ Upstream changes ] + + * rebased to v2.6.34-rc6 + + -- Leann Ogasawara Fri, 30 Apr 2010 15:54:05 +0100 + +linux (2.6.34-1.4) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc5 + * [Config] update ports configs following rebase to v2.6.34-rc5 + + [ Upstream changes ] + + * rebased to v2.6.34-rc5 + + -- Leann Ogasawara Thu, 22 Apr 2010 15:36:12 -0700 + +linux (2.6.34-1.3) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc4 + * [Config] update configs following rebase to v2.6.34-rc4 + * [Config] update port configs following rebase to v2.6.34-rc4 + * ubuntu: dm-raid4-5 -- update to compile with 2.6.34-rc4 + + [ Upstream changes ] + + * rebased to v2.6.34-rc4 + + -- Leann Ogasawara Tue, 13 Apr 2010 18:33:44 -0700 + +linux (2.6.34-1.2) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * Temorarily disable building linux-doc + * rebase to v2.6.34-rc3 + * [Config] update configs following rebase to v2.6.34-rc3 + * [Config] update port configs following rebase to v2.6.34-rc3 + + [ Upstream changes ] + + * rebased to v2.6.34-rc3 + + -- Leann Ogasawara Tue, 30 Mar 2010 16:55:44 -0700 + +linux (2.6.34-1.1) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.34-rc2 + * ubuntu: dm-raid4-5 -- update to compile with 2.6.34-rc2 + * [Config] update port configs following rebase to v2.6.34-rc2 + * [Config] update configs following rebase to v2.6.34-rc2 + + [ Upstream changes ] + + * rebased to v2.6.34-rc2 + + -- Leann Ogasawara Wed, 24 Mar 2010 23:00:39 -0700 + +linux (2.6.33-1.1) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * ubuntu: dm-raid4-5 -- update to compile with 2.6.33 + * ubuntu: lirc -- drop explicit include of linux/autoconf.h + * ubuntu: lirc -- pass kfifo to kfifo_alloc and move spinlock + * ubuntu: lirc -- rename kfifo_put and kfifo_get + * ubuntu: iscsitarget -- rename daddr inet_sock field + * rebased to v2.6.33 + * [Config] update configs following rebase to v2.6.33 + * [Config] update ports configs following rebase to v2.6.33 + + [ Upstream changes ] + + * rebased to v2.6.33 + + -- Leann Ogasawara Tue, 23 Mar 2010 03:55:46 -0700 + +linux (2.6.33-0.0) UNRELEASED; urgency=low + + [ Leann Ogasawara ] + + * Null entry. + + -- Leann Ogasawara Wed, 17 Mar 2010 07:48:56 -0700 + +linux (2.6.32-16.25) lucid; urgency=low + + [ Andy Whitcroft ] + + * linux-tools -- move to Suggests: with explicit seeding + - LP: #534635 + + [ Tim Gardner ] + + * [Config] CONFIG_HID=m + + [ Upstream Kernel Changes ] + + * (pre-stable) sched: Fix SMT scheduler regression in + find_busiest_queue() + * KVM: introduce kvm_vcpu_on_spin + * KVM: VMX: Add support for Pause-Loop Exiting + + -- Andy Whitcroft Tue, 09 Mar 2010 14:13:51 +0000 + +linux (2.6.32-16.24) lucid; urgency=low + + [ Andy Whitcroft ] + + * armel -- perf userspace does not support arm + * ia64 -- libelf-dev/binutils-dev to not provide necessary libraries + + -- Andy Whitcroft Sat, 06 Mar 2010 11:42:12 +0000 + +linux (2.6.32-16.23) lucid; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: PM report driver and device suspend/resume times -- move config + * update to standards version 3.8.4.0 + * printenv -- expose all of the package selectors + * source package -- cleanup source content control + * doc package -- ensure we do build package content on buildd + * lintian -- correct the address in the debian/copyright + * lintian -- update debhelper package version dependancy + * lintian -- fix ghostscript dependancy + * lintian -- add required misc:Depends + * lintian -- move our debhelper compat level to debian/compat + * perf -- build the kernel carried tools + * perf -- add linux-tools carrying the version switches and manuals + * SAUCE: fix up Kconfig for staging drivers + * [Config] enable NOUVEAU etc following drm backport + * update DRM to mainline v2.6.33 + * [Config] Remove AppArmor config options that no longer exist (ports) + * [Config] updateportsconfigs following drm update + + [ John Johansen ] + + * ubuntu: AppArmor -- update to mainline 2010-03-04 + * SAUCE: AppArmor: Reintroduce AppArmor 2.4 compatibility + * SAUCE: AppArmor: replace strim with strstrip for 2.6.32 kernels + * [Config] Remove AppArmor config options that no longer exist + + [ Manoj Iyer ] + + * ubuntu: rtl8192se -- version 2010-0115,0014 + - LP: #530275 + * [Config] added CONFIG_RTL8192SE module. + - LP: #530275 + + [ Tim Gardner ] + + * [Config] Added vmw_pvscsi to d-i/scsi-modules + - LP: #531017 + * [Upstream] netfilter: xt_recent: Add an entry reaper + + [ Upstream Kernel Changes ] + + * Revert "KVM: x86 emulator: Check CPL level during privilege instruction + emulation" + * Revert "KVM: x86 emulator: Fix popf emulation" + * Revert "KVM: x86 emulator: Check IOPL level during io instruction + emulation" + * Revert "KVM: x86 emulator: Add Virtual-8086 mode of emulation" + * Revert "KVM: fix memory access during x86 emulation." + * Add vlan (8021.Q) module package for d-i. + * (pre-stable) drm/i915: blacklist lid status: Sony VGN-BX196VP, Dell + Inspiron 700m + - LP: #515246 + * [Upstream] docbook: need xmldoclinks for all doc types + * x86: set_personality_ia32() misses force_personality32 + * lib: Introduce generic list_sort function + * drm/nv50: Implement ctxprog/state generation. + * drm/nv50: Remove redundant/incorrect ctxvals initialisation. + * (pre-stable) drm/i915: blacklist lid status: Sony VGN-BX196VP, Dell + Inspiron 700m + - LP: #515246 + + -- Andy Whitcroft Fri, 05 Mar 2010 15:40:38 +0000 + +linux (2.6.32-15.22) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Config] added new config option CONFIG_SR_REPORT_TIME_LIMIT" + * Revert "SAUCE: PM report driver and device suspend/resume times." + * [Config] set CONFIG_SR_REPORT_TIME_LIMIT + + [ Manoj Iyer ] + + * SAUCE: PM report driver and device suspend/resume times. + + -- Andy Whitcroft Tue, 02 Mar 2010 01:35:37 +0000 + +linux (2.6.32-15.21) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "(pre-stable) drm/i915: Increase fb alignment to 64k" + * Revert "[Config] lenovo-sl-laptop -- enable" + * Revert "ubuntu: lenovo-sl-laptop -- git tip (b19a08f81f)" + * armel -- cramfs module will no longer be built + * d-i -- make all modules optional + * rename the debug packages to match archive standard + - LP: #527837 + * lenovo-sl-laptop is no longer built + + [ Colin Ian King ] + + * Disable 4MB page tables for Atom, work around errata AAE44 + - LP: #523112 + + [ Colin Watson ] + + * ubuntu: dm-raid4-5: Depend on XOR_BLOCKS + * ubuntu: fsam7400: Depend on CHECK_SIGNATURE + + [ Jesse Barnes ] + + * SAUCE: drm/i915: don't change DRM configuration when releasing load + detect pipe + - LP: #488328 + + [ Loïc Minier ] + + * [Config] armel Update versatile initrd configs + - LP: #524893 + * SAUCE: [um] Don't use nx_enabled under UML + - LP: #524849 + + [ Manoj Iyer ] + + * [Config] added new config option CONFIG_SR_REPORT_TIME_LIMIT + + [ Mario Limonciello ] + + * SAUCE: v3 - Add Dell Business Class Netbook LED driver + + [ Rafael J. Wysocki ] + + * SAUCE: PM report driver and device suspend/resume times. + + [ Surbhi Palande ] + + * Revert "[Upstream] e1000e: enhance frame fragment detection" + - CVE-2009-4538 + * Revert "[Upstream] e1000: enhance frame fragment detection" + - CVE-2009-4536 + + [ Tim Gardner ] + + * [Config] Enabled CONFIG_LEDS_DELL_NETBOOKS=m + * SAUCE: (pre-stable) netfilter: xt_recent: fix buffer overflow + * SAUCE: (pre-stable) netfilter: xt_recent: fix false match + + [ Upstream Kernel Changes ] + + * Revert "(pre-stable) eCryptfs: Add getattr function" + * Fix potential crash with sys_move_pages + * futex_lock_pi() key refcnt fix + * futex: Handle user space corruption gracefully + * futex: Handle futex value corruption gracefully + * Fix race in tty_fasync() properly + * hwmon: (w83781d) Request I/O ports individually for probing + * hwmon: (lm78) Request I/O ports individually for probing + * hwmon: (adt7462) Wrong ADT7462_VOLT_COUNT + * ALSA: ctxfi - fix PTP address initialization + * drm/i915: disable hotplug detect before Ironlake CRT detect + * drm/i915: enable self-refresh on 965 + * drm/i915: Disable SR when more than one pipe is enabled + * drm/i915: Fix DDC on some systems by clearing BIOS GMBUS setup. + * drm/i915: Add HP nx9020/SamsungSX20S to ACPI LID quirk list + * drm/i915: Fix the incorrect DMI string for Samsung SX20S laptop + * drm/i915: Add MALATA PC-81005 to ACPI LID quirk list + * usb: r8a66597-hcd: Flush the D-cache for the pipe-in transfer buffers. + * i2c-tiny-usb: Fix on big-endian systems + * drm/i915: handle FBC and self-refresh better + * drm/i915: Increase fb alignment to 64k + * drm/i915: Update write_domains on active list after flush. + * regulator: Fix display of null constraints for regulators + * ALSA: hda-intel: Avoid divide by zero crash + * CPUFREQ: Fix use after free of struct powernow_k8_data + * freeze_bdev: don't deactivate successfully frozen MS_RDONLY sb + * cciss: Make cciss_seq_show handle holes in the h->drv[] array + * ioat: fix infinite timeout checking in ioat2_quiesce + * resource: add helpers for fetching rlimits + * fs/exec.c: restrict initial stack space expansion to rlimit + * cifs: fix length calculation for converted unicode readdir names + * NFS: Fix a reference leak in nfs_wb_cancel_page() + * NFS: Try to commit unstable writes in nfs_release_page() + * NFSv4: Don't allow posix locking against servers that don't support it + * NFSv4: Ensure that the NFSv4 locking can recover from stateid errors + * NFS: Fix an Oops when truncating a file + * NFS: Fix a umount race + * NFS: Fix a bug in nfs_fscache_release_page() + * NFS: Fix the mapping of the NFSERR_SERVERFAULT error + * md: fix 'degraded' calculation when starting a reshape. + * V4L/DVB: dvb-core: fix initialization of feeds list in demux filter + * Export the symbol of getboottime and mmonotonic_to_bootbased + * kvmclock: count total_sleep_time when updating guest clock + * KVM: PIT: control word is write-only + * tpm_infineon: fix suspend/resume handler for pnp_driver + * amd64_edac: Do not falsely trigger kerneloops + * netfilter: nf_conntrack: fix memory corruption with multiple namespaces + * netfilter: nf_conntrack: per netns nf_conntrack_cachep + * netfilter: nf_conntrack: restrict runtime expect hashsize modifications + * netfilter: xtables: compat out of scope fix + * netfilter: nf_conntrack: fix hash resizing with namespaces + * drm/i915: remove full registers dump debug + * drm/i915: add i915_lp_ring_sync helper + * drm/i915: Don't wait interruptible for possible plane buffer flush + * dasd: remove strings from s390dbf + * crypto: padlock-sha - Add import/export support + * wmi: Free the allocated acpi objects through wmi_get_event_data + * dell-wmi, hp-wmi, msi-wmi: check wmi_get_event_data() return value + * /dev/mem: introduce size_inside_page() + * devmem: check vmalloc address on kmem read/write + * devmem: fix kmem write bug on memory holes + * SCSI: mptfusion : mptscsih_abort return value should be SUCCESS instead + of value 0. + * sh: Couple kernel and user write page perm bits for CONFIG_X2TLB + * ALSA: hda - use WARN_ON_ONCE() for zero-division detection + * dst: call cond_resched() in dst_gc_task() + * ALSA: hda - Improved MacBook (Pro) 5,1 / 5,2 support + * befs: fix leak + * rtc-fm3130: add missing braces + * Call flush_dcache_page after PIO data transfers in libata-sff.c + * ahci: add Acer G725 to broken suspend list + * pktgen: Fix freezing problem + * x86/amd-iommu: Fix IOMMU-API initialization for iommu=pt + * x86/amd-iommu: Fix deassignment of a device from the pt_domain + * x86: Re-get cfg_new in case reuse/move irq_desc + * Staging: fix rtl8187se compilation errors with mac80211 + * ALSA: usb-audio - Avoid Oops after disconnect + * serial: 8250: add serial transmitter fully empty test + * sysfs: sysfs_sd_setattr set iattrs unconditionally + * class: Free the class private data in class_release + * USB: usbfs: only copy the actual data received + * USB: usbfs: properly clean up the as structure on error paths + * rtl8187: Add new device ID + * ACPI: Add NULL pointer check in acpi_bus_start + * ACPI: fix High cpu temperature with 2.6.32 + * drm/radeon/kms: use udelay for short delays + * NFS: Too many GETATTR and ACCESS calls after direct I/O + * eCryptfs: Add getattr function + * b43: Fix throughput regression + * ath9k: Fix sequence numbers for PAE frames + * mac80211: Fix probe request filtering in IBSS mode + * iwlwifi: Fix to set correct ht configuration + * dm stripe: avoid divide by zero with invalid stripe count + * dm log: userspace fix overhead_size calcuations + * Linux 2.6.32.9 + * sfc: Fix SFE4002 initialisation + * sfc: Fix sign of efx_mcdi_poll_reboot() error in efx_mcdi_poll() + * sfc: SFE4002/SFN4112F: Widen temperature and voltage tolerances + * (pre-stable) HID: handle joysticks with large number of buttons + - LP: #492056 + * (pre-stable) HID: extend mask for BUTTON usage page + - LP: #492056 + * PM: Measure device suspend and resume times + * e1000: enhance frame fragment detection + - CVE-2009-4536 + * e1000e: enhance frame fragment detection + - CVE-2009-4538 + * KVM: fix memory access during x86 emulation. + - CVE-2010-0306 + * KVM: x86 emulator: Add Virtual-8086 mode of emulation + - CVE-2010-0306 + * KVM: x86 emulator: Check IOPL level during io instruction emulation + - CVE-2010-0306 + * KVM: x86 emulator: Fix popf emulation + - CVE-2010-0306 + * KVM: x86 emulator: Check CPL level during privilege instruction + emulation + - CVE-2010-0306 + * Input: wacom - ensure the device is initialized properly upon resume + * Input: wacom - add defines for packet lengths of various devices + * Input: wacom - add support for new LCD tablets + - LP: #516777 + + -- Andy Whitcroft Mon, 01 Mar 2010 22:56:28 +0000 + +linux (2.6.32-14.20) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebuild following the GCC update to match compiler for out of tree modules + * Revert "[Config] drbd -- enable" + * Revert "ubuntu: drbd -- version 8.3.1" + * SAUCE: khubd -- switch USB product/manufacturer/serial handling to RCU + - LP: #510937 + + -- Andy Whitcroft Fri, 19 Feb 2010 18:47:18 +0000 + +linux (2.6.32-14.19) lucid; urgency=low + + [ Andy Whitcroft ] + + * ensure we build the source package contents when enabled + - LP: #522308 + * [Config] enable CONFIG_X86_MCE_XEON75XX + * SAUCE: AppArmor -- add linux/kref.h for struct kref + * [Config] enable CONFIG_HID_ORTEK + * enable udeb generation for arm versatile flavour + - LP: #522515 + + [ John Johansen ] + + * ubuntu: AppArmor -- update to mainline 2010-02-18 + - LP: #439560, #496110, #507069 + + [ Johnathon Harris ] + + * SAUCE: HID: add support for Ortek WKB-2000 + - LP: #405390 + + [ Upstream Kernel Changes ] + + * tpm_tis: TPM_STS_DATA_EXPECT workaround + - LP: #490487 + * x86, mce: Xeon75xx specific interface to get corrected memory error + information + * x86, mce: Rename cpu_specific_poll to mce_cpu_specific_poll + * x86, mce: Make xeon75xx memory driver dependent on PCI + * drm/edid: Unify detailed block parsing between base and extension + blocks + - LP: #500999 + * (pre-stable) eCryptfs: Add getattr function + - LP: #390833 + + -- Andy Whitcroft Thu, 18 Feb 2010 19:22:02 +0000 + +linux (2.6.32-13.18) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "enforcer -- make the enforcement configuration common" + * Revert "(pre-stable) Input: ALPS - add interleaved protocol support + (Dell E6x00 series)" + * Revert "(pre-stable) driver-core: fix devtmpfs crash on s390" + * Revert "(pre-stable) Driver-Core: devtmpfs - set root directory mode to + 0755" + * Revert "SAUCE: Adds support for COMPAL JHL90 webcam" + * Revert "SAUCE: fix kernel oops in VirtualBox during paravirt patching" + * Revert "SAUCE: make fc transport removal of target configurable" + * enforcer -- make the enforcement configuration common + * getabis -- add preempt flavour to the list + * [Config] enforce DEVTMPFS options + * [Config] armel -- cleanup to-be builtin modules + * [Config] cleanup ports configs + * [Config] enable CRYPTO_GHASH_CLMUL_NI_INTEL + - LP: #485536 + * add printdebian target to find branch target + * distclean -- do not remove debian.env + * [Config] generic-pae switch to M586TSC + - LP: #519448 + * git-ubuntu-log -- commonise duplicated log handling + * git-ubuntu-log -- tighten up Bug: NNNN matching + * git-ubuntu-log -- sort the bug numbers + + [ Chris Wilson ] + + * (pre-stable) drm/i915: Increase fb alignment to 64k + - LP: #404064 + + [ Eric Miao ] + + * arm -- enable ubuntu/ directory + + [ Huang Ying ] + + * SAUCE: crypto: ghash - Add PCLMULQDQ accelerated implementation + * SAUCE: crypto: ghash-intel - Fix building failure on x86_32 + + [ Loïc Minier ] + + * [Config] cleanup preempt configuration + * [Config] versatile: Fix video output + - LP: #517594 + * [Config] armel DEFAULT_MMAP_MIN_ADDR=32768 + * [Config] Large update to armel/versatile + * [Config] versatile: Add RTC support + * [Config] armel: Enable NEON + * [Config] versatile: Builtin MMC support + * [Config] versatile Builtin SCSI controller + * [Config] armel Disable dma_cache_sync callers + * [Config] armel Disable asm/time.h users + * [Config] armel Disable out of range udelay() + * [Config] armel Disable flush_cache_range() users + * [Config] armel -- Enable ubuntu/ drivers + + [ Steve Conklin ] + + * SAUCE: drm/i915: Add display hotplug event on Ironlake + * SAUCE: drm/i915: Add ACPI OpRegion support for Ironlake + + [ Upstream Kernel Changes ] + + * Revert "[Upstream]: oprofile/x86: add Xeon 7500 series support" + * Revert "Revert "[Bluetooth] Eliminate checks for impossible conditions + in IRQ handler"" + * clockevent: Don't remove broadcast device when cpu is dead + * clockevents: Add missing include to pacify sparse + * ACPI: don't cond_resched if irq is disabled + * be2net: Add support for next generation of BladeEngine device. + * be2net: Add the new PCI IDs to PCI_DEVICE_TABLE. + * mpt2sas: New device SAS2208 support is added + * ar9170: Add support for D-Link DWA 160 A2 + * powerpc/fsl: Add PCI device ids for new QoirQ chips + * davinci: dm646x: Add support for 3.x silicon revision + * Input: ALPS - add interleaved protocol support (Dell E6x00 series) + * Driver-Core: devtmpfs - set root directory mode to 0755 + * driver-core: fix devtmpfs crash on s390 + * vfs: get_sb_single() - do not pass options twice + * ALSA: hda - Add PCI IDs for Nvidia G2xx-series + * V4L/DVB (13569): smsusb: add autodetection support for five additional + Hauppauge USB IDs + * USB: mos7840: add device IDs for B&B electronics devices + * USB: ftdi_sio: add USB device ID's for B&B Electronics line + * V4L/DVB (13168): Add support for Asus Europa Hybrid DVB-T card (SAA7134 + SubVendor ID: 0x1043 Device ID: 0x4847) + * iTCO_wdt: Add support for Intel Ibex Peak + * atl1c:use common_task instead of reset_task and link_chg_task + * atl1e:disable NETIF_F_TSO6 for hardware limit + * V4L/DVB (13680a): DocBook/media: copy images after building HTML + * V4L/DVB (13680b): DocBook/media: create links for included sources + * netfilter: xtables: fix conntrack match v1 ipt-save output + * partitions: read whole sector with EFI GPT header + * partitions: use sector size for EFI GPT + * ALSA: ice1724 - Patch for suspend/resume for ESI Juli@ + * sched: Fix isolcpus boot option + * sched: Fix missing sched tunable recalculation on cpu add/remove + * nohz: Prevent clocksource wrapping during idle + * nfsd: Fix sort_pacl in fs/nfsd/nf4acl.c to actually sort groups + * timers, init: Limit the number of per cpu calibration bootup messages + * PCI: Always set prefetchable base/limit upper32 registers + * iscsi class: modify handling of replacement timeout + * NFS: Revert default r/wsize behavior + * HID: fixup quirk for NCR devices + * scsi_devinfo: update Hitachi entries (v2) + * scsi_dh: create sysfs file, dh_state for all SCSI disk devices + * scsi_transport_fc: remove invalid BUG_ON + * lpfc: fix hang on SGI ia64 platform + * libfc: fix typo in retry check on received PRLI + * libfc: fix ddp in fc_fcp for 0 xid + * fcoe: remove redundant checking of netdev->netdev_ops + * libfc: Fix wrong scsi return status under FC_DATA_UNDRUN + * libfc: lport: fix minor documentation errors + * libfc: don't WARN_ON in lport_timeout for RESET state + * fcoe: initialize return value in fcoe_destroy + * libfc: Fix frags in frame exceeding SKB_MAX_FRAGS in fc_fcp_send_data + * libfc: fix memory corruption caused by double frees and bad error + handling + * libfc: fix free of fc_rport_priv with timer pending + * libfc: remote port gets stuck in restart state without really + restarting + * fcoe, libfc: fix an libfc issue with queue ramp down in libfc + * fcoe: Fix checking san mac address + * fcoe: Fix getting san mac for VLAN interface + * qlge: Remove explicit setting of PCI Dev CTL reg. + * qlge: Set PCIE max read request size. + * qlge: Don't fail open when port is not initialized. + * qlge: Add handler for DCBX firmware event. + * qlge: Bonding fix for mode 6. + * PCI: AER: fix aer inject result in kernel oops + * DMI: allow omitting ident strings in DMI tables + * Input: i8042 - remove identification strings from DMI tables + * Input: i8042 - add Gigabyte M1022M to the noloop list + * Input: i8042 - add Dritek quirk for Acer Aspire 5610. + * ALSA: hda - select IbexPeak handler for Calpella + * ALSA: hda - Fix quirk for Maxdata obook4-1 + * ALSA: hda - Add missing Line-Out and PCM switches as slave + * iTCO_wdt.c - cleanup chipset documentation + * iTCO_wdt: add PCI ID for the Intel EP80579 (Tolapai) SoC + * iTCO_wdt: Add Intel Cougar Point and PCH DeviceIDs + * ahci: disable SNotification capability for ich8 + * ata_piix: fix MWDMA handling on PIIX3 + * md: fix small irregularity with start_ro module parameter + * V4L/DVB (13826): uvcvideo: Fix controls blacklisting + * cio: fix double free in case of probe failure + * cio: dont panic in non-fatal conditions + * netiucv: displayed TX bytes value much too high + * ipc ns: fix memory leak (idr) + * ALSA: hda - Fix HP T5735 automute + * hwmon: (fschmd) Fix a memleak on multiple opens of /dev/watchdog + * UBI: fix memory leak in update path + * UBI: initialise update marker + * ASoC: fix a memory-leak in wm8903 + * mac80211: check that ieee80211_set_power_mgmt only handles STA + interfaces. + * cfg80211: fix channel setting for wext + * KVM: S390: fix potential array overrun in intercept handling + * KVM: only allow one gsi per fd + * KVM: Fix race between APIC TMR and IRR + * KVM: MMU: bail out pagewalk on kvm_read_guest error + * KVM: x86: Fix host_mapping_level() + * KVM: x86: Fix probable memory leak of vcpu->arch.mce_banks + * KVM: x86: Fix leak of free lapic date in kvm_arch_vcpu_init() + * KVM: fix lock imbalance in kvm_*_irq_source_id() + * KVM: only clear irq_source_id if irqchip is present + * IPoIB: Clear ipoib_neigh.dgid in ipoib_neigh_alloc() + * x86: Reenable TSC sync check at boot, even with NONSTOP_TSC + * ACPI: enable C2 and Turbo-mode on Nehalem notebooks on A/C + - LP: #516325 + * iwlwifi: Fix throughput stall issue in HT mode for 5000 + * fnctl: f_modown should call write_lock_irqsave/restore + * x86, msr/cpuid: Pass the number of minors when unregistering MSR and + CPUID drivers. + * Linux 2.6.32.7 + * scsi_lib: Fix bug in completion of bidi commands + * mptsas: Fix issue with chain pools allocation on katmai + * mm: add new 'read_cache_page_gfp()' helper function + * drm/i915: Selectively enable self-reclaim + * firewire: ohci: fix crashes with TSB43AB23 on 64bit systems + * S390: fix single stepped svcs with TRACE_IRQFLAGS=y + * x86: Set hotpluggable nodes in nodes_possible_map + * x86: Remove "x86 CPU features in debugfs" (CONFIG_X86_CPU_DEBUG) + * libata: retry FS IOs even if it has failed with AC_ERR_INVALID + * zcrypt: Do not remove coprocessor for error 8/72 + * dasd: fix possible NULL pointer errors + * ACPI: Add a generic API for _OSC -v2 + * ACPI: Add platform-wide _OSC support. + * ACPI: fix OSC regression that caused aer and pciehp not to load + * ACPI: Advertise to BIOS in _OSC: _OST on _PPC changes + * UBI: fix volume creation input checking + * e1000/e1000e: don't use small hardware rx buffers + * drm/i915: Reload hangcheck timer too for Ironlake + * Fix a leak in affs_fill_super() + * Fix failure exits in bfs_fill_super() + * fix oops in fs/9p late mount failure + * fix leak in romfs_fill_super() + * Fix remount races with symlink handling in affs + * fix affs parse_options() + * Fix failure exit in ipathfs + * mm: fix migratetype bug which slowed swapping + * FDPIC: Respect PT_GNU_STACK exec protection markings when creating + NOMMU stack + * Split 'flush_old_exec' into two functions + * sparc: TIF_ABI_PENDING bit removal + * x86: get rid of the insane TIF_ABI_PENDING bit + * Input: winbond-cir - remove dmesg spam + * x86: Disable HPET MSI on ATI SB700/SB800 + * iwlwifi: set default aggregation frame count limit to 31 + * drm/i915: only enable hotplug for detected outputs + * firewire: core: add_descriptor size check + * SECURITY: selinux, fix update_rlimit_cpu parameter + * regulator: Specify REGULATOR_CHANGE_STATUS for WM835x LED constraints + * x86: Add Dell OptiPlex 760 reboot quirk + - LP: #488319 + * x86: Add quirk for Intel DG45FC board to avoid low memory corruption + * x86/amd-iommu: Fix possible integer overflow + * clocksource: fix compilation if no GENERIC_TIME + * tcp: update the netstamp_needed counter when cloning sockets + * sky2: Fix oops in sky2_xmit_frame() after TX timeout + * net: restore ip source validation + * af_packet: Don't use skb after dev_queue_xmit() + * ax25: netrom: rose: Fix timer oopses + * KVM: allow userspace to adjust kvmclock offset + * oprofile/x86: add Xeon 7500 series support + * oprofile/x86: fix crash when profiling more than 28 events + * libata: retry link resume if necessary + * mm: percpu-vmap fix RCU list walking + * mm: purge fragmented percpu vmap blocks + * block: fix bio_add_page for non trivial merge_bvec_fn case + * Fix 'flush_old_exec()/setup_new_exec()' split + * random: drop weird m_time/a_time manipulation + * random: Remove unused inode variable + * block: fix bugs in bio-integrity mempool usage + * usb: r8a66597-hdc disable interrupts fix + * connector: Delete buggy notification code. + * be2net: Bug fix to support newer generation of BE ASIC + * be2net: Fix memset() arg ordering. + * mm: flush dcache before writing into page to avoid alias + * mac80211: fix NULL pointer dereference when ftrace is enabled + * imxfb: correct location of callbacks in suspend and resume + * mx3fb: some debug and initialisation fixes + * starfire: clean up properly if firmware loading fails + * kernel/cred.c: use kmem_cache_free + * uartlite: fix crash when using as console + * pktcdvd: removing device does not remove its sysfs dir + * ath9k: fix eeprom INI values override for 2GHz-only cards + * ath9k: fix beacon slot/buffer leak + * powerpc: TIF_ABI_PENDING bit removal + * NET: fix oops at bootime in sysctl code + * Linux 2.6.32.8 + + -- Andy Whitcroft Wed, 10 Feb 2010 18:56:52 +0000 + +linux (2.6.32-12.17) lucid; urgency=low + + [ Andy Whitcroft ] + + * restore linux-image prefix -- master + * enforce -- we require SELINUX enabled -- master + * enforce -- ensure APPARMOR is our default LSM -- master + * make doc package completely optional -- master + * make source package completely optional -- master + * make linux-libc-dev completly optional -- master + * convert package disable to a deps list -- master + * allow common headers to switch from indep to arch -- master + * convert binary package disable to a deps list -- master + * add configuration option for a full source build tree -- master + * add support for uImage kernels in package control scripts + * getabis -- cleanup and parameterise repository list -- master + * getabis -- move configuration to etc/getabi -- master + * kernelconfig -- move configuration to etc -- master + * rules -- make debian/debian.env master for branch name + * set the current branch name -- master + * pull back common debian.master files into debian -- master + * enforcer -- make the enforcement configuration common + * insert-changes -- correctly link to debian/rules in DROOT + + [ Colin Watson ] + + * future-proof ddeb handling against buildd changes + + [ Eric Miao ] + + * SAUCE: Make CONFIG_{OMNIBOOK, AVERATEC_5100P, PACKARDBELL_E5} depend on + X86 + + [ Loïc Minier ] + + * Add modules.builtin.bin to prerm rm list + - LP: #516584 + + [ Tim Gardner ] + + * [Config] Implement the amd64 preempt flavour + + [ Upstream Kernel Changes ] + + * syslog: distinguish between /proc/kmsg and syscalls + - LP: #515623 + * sfc: Fix polling for slow MCDI operations + * sfc: Fix conditions for MDIO self-test + * sfc: QT202x: Remove unreliable MMD check at initialisation + * sfc: Add workspace for GMAC bug workaround to MCDI MAC_STATS buffer + * sfc: Use fixed-size buffers for MCDI NVRAM requests + + -- Andy Whitcroft Fri, 05 Feb 2010 07:09:31 +0000 + +linux (2.6.32-12.16) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: acpi battery -- delay first lookup of the battery until + first use" + * SAUCE: acpi battery -- move first lookup asynchronous + - LP: #507211 + * [Config] update configs to cleanup generic configs + * [Config] disable CONFIG_X86_CPU_DEBUG for amd64 + * [Config] enable USER_NS + - LP: #480739, #509808 + + [ Heiko Carstens ] + + * (pre-stable) driver-core: fix devtmpfs crash on s390 + - LP: #512370 + + [ John Johansen ] + + * [Config] for server and virtual flavours make CONFIG_SCSI_SYM53C8XX_2=y + - LP: #494565 + * [Config] VIRTIO=y for server/virtual flavours + - LP: #494565 + + [ Kay Sievers ] + + * (pre-stable) Driver-Core: devtmpfs - set root directory mode to 0755 + - LP: #512370 + + [ Kees Cook ] + + * SAUCE: x86: brk away from exec rand area + - LP: #452175 + + [ Leann Ogasawara ] + + * [Upstream] e1000: enhance frame fragment detection + - CVE-2009-4536 + * [Upstream] e1000e: enhance frame fragment detection + - CVE-2009-4538 + + [ Sebastian Kapfer ] + + * (pre-stable) Input: ALPS - add interleaved protocol support (Dell E6x00 + series) + - LP: #296610 + + [ Upstream Kernel Changes ] + + * inotify: do not reuse watch descriptors + - LP: #485556 + * inotify: only warn once for inotify problems + * revert "drivers/video/s3c-fb.c: fix clock setting for Samsung SoC + Framebuffer" + * memcg: ensure list is empty at rmdir + * drm/i915: remove loop in Ironlake interrupt handler + * block: Fix incorrect reporting of partition alignment + * x86, mce: Thermal monitoring depends on APIC being enabled + * futexes: Remove rw parameter from get_futex_key() + * page allocator: update NR_FREE_PAGES only when necessary + * x86, apic: use physical mode for IBM summit platforms + * edac: i5000_edac critical fix panic out of bounds + * x86: SGI UV: Fix mapping of MMIO registers + * mfd: WM835x GPIO direction register is not locked + * mfd: Correct WM835x ISINK ramp time defines + * ALSA: hda - Fix missing capture mixer for ALC861/660 codecs + * V4L/DVB (13868): gspca - sn9c20x: Fix test of unsigned. + * reiserfs: truncate blocks not used by a write + * HID: add device IDs for new model of Apple Wireless Keyboard + * PCI/cardbus: Add a fixup hook and fix powerpc + * Input: pmouse - move Sentelic probe down the list + * asus-laptop: add Lenovo SL hotkey support + * sched: Fix cpu_clock() in NMIs, on !CONFIG_HAVE_UNSTABLE_SCHED_CLOCK + * sparc64: Fix NMI programming when perf events are active. + * sparc64: Fix Niagara2 perf event handling. + * i2c: Do not use device name after device_unregister + * i2c/pca: Don't use *_interruptible + * serial/8250_pnp: add a new Fujitsu Wacom Tablet PC device + * sched: Fix task priority bug + * vfs: Fix vmtruncate() regression + * Linux 2.6.32.5 + * x86, msr/cpuid: Register enough minors for the MSR and CPUID drivers + * V4L/DVB (13900): gspca - sunplus: Fix bridge exchanges. + * Staging: asus_oled: fix oops in 2.6.32.2 + * Staging: hv: fix smp problems in the hyperv core code + * tty: fix race in tty_fasync + * ecryptfs: use after free + * ecryptfs: initialize private persistent file before dereferencing + pointer + * nozomi: quick fix for the close/close bug + * serial: 8250_pnp: use wildcard for serial Wacom tablets + * usb: serial: fix memory leak in generic driver + * USB: fix bitmask merge error + * USB: Don't use GFP_KERNEL while we cannot reset a storage device + * USB: EHCI: fix handling of unusual interrupt intervals + * USB: EHCI & UHCI: fix race between root-hub suspend and port resume + * USB: add missing delay during remote wakeup + * USB: add speed values for USB 3.0 and wireless controllers + * ACPI: EC: Accelerate query execution + * ACPI: EC: Add wait for irq storm + * SCSI: enclosure: fix oops while iterating enclosure_status array + * drm/i915: Read the response after issuing DDC bus switch command + * drm/i915: try another possible DDC bus for the SDVO device with + multiple outputs + * block: bdev_stack_limits wrapper + * DM: Fix device mapper topology stacking + * x86/PCI/PAT: return EINVAL for pci mmap WC request for !pat_enabled + * USB: fix usbstorage for 2770:915d delivers no FAT + * vmalloc: remove BUG_ON due to racy counting of VM_LAZY_FREE + * perf timechart: Use tid not pid for COMM change + * perf events: Dont report side-band events on each cpu for + per-task-per-cpu events + * perf: Honour event state for aux stream data + * Linux 2.6.32.6 + + -- Andy Whitcroft Wed, 27 Jan 2010 16:40:23 +0000 + +linux (2.6.32-11.15) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "(pre-stable) drm/radeon/kms: fix crtc vblank update for r600" + * Revert "(pre-stable) sched: Fix balance vs hotplug race" + * Revert "[Upstream] acerhdf: Limit modalias matching to supported + boards" + * Revert "[Upstream] mmc: prevent dangling block device from accessing + stale queues" + * Revert "SAUCE: Fix nx_enable reporting" + * Revert "SAUCE: [x86] fix report of cs-limit nx-emulation" + * Revert "SAUCE: [x86] implement cs-limit nx-emulation for ia32" + * SAUCE: i915 -- disable powersave by default + - LP: #492392 + + [ Kees Cook ] + + * SAUCE: [x86] implement cs-limit nx-emulation for ia32 + - LP: #369978 + * SAUCE: [x86] fix report of cs-limit nx-emulation + - LP: #454285 + * SAUCE: Fix nx_enable reporting + - LP: #454285 + + [ Tim Gardner ] + + * [Upstream] b43: Declare all possible firmware files. + - LP: #488636 + * [Config] updateconfigs after adding pvscsi + - LP: #497156 + * [Config] CONFIG_BT=m + + [ Upstream Kernel Changes ] + + * Revert "x86: Side-step lguest problem by only building cmpxchg8b_emu + for pre-Pentium" + * SCSI: ipr: fix EEH recovery + * SCSI: qla2xxx: dpc thread can execute before scsi host has been added + * SCSI: st: fix mdata->page_order handling + * SCSI: fc class: fix fc_transport_init error handling + * sched: Fix task_hot() test order + * x86, cpuid: Add "volatile" to asm in native_cpuid() + * sched: Select_task_rq_fair() must honour SD_LOAD_BALANCE + * clockevents: Prevent clockevent_devices list corruption on cpu hotplug + * pata_hpt3x2n: fix clock turnaround + * pata_cmd64x: fix overclocking of UDMA0-2 modes + * ASoC: wm8974: fix a wrong bit definition + * sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer + * ALSA: hda - Fix missing capsrc_nids for ALC88x + * acerhdf: limit modalias matching to supported + - LP: #435958 + * ACPI: EC: Fix MSI DMI detection + * ACPI: Use the return result of ACPI lid notifier chain correctly + * powerpc: Handle VSX alignment faults correctly in little-endian mode + * ASoC: Do not write to invalid registers on the wm9712. + * drm/radeon: fix build on 64-bit with some compilers. + * USB: emi62: fix crash when trying to load EMI 6|2 firmware + * USB: option: support hi speed for modem Haier CE100 + * USB: Fix a bug on appledisplay.c regarding signedness + * USB: musb: gadget_ep0: avoid SetupEnd interrupt + * Bluetooth: Prevent ill-timed autosuspend in USB driver + * USB: rename usb_configure_device + * USB: fix bugs in usb_(de)authorize_device + * drivers/net/usb: Correct code taking the size of a pointer + * x86: SGI UV: Fix writes to led registers on remote uv hubs + * md: Fix unfortunate interaction with evms + * dma: at_hdmac: correct incompatible type for argument 1 of + 'spin_lock_bh' + * dma-debug: Do not add notifier when dma debugging is disabled. + * dma-debug: Fix bug causing build warning + * cifs: NULL out tcon, pSesInfo, and srvTcp pointers when chasing DFS + referrals + * x86/amd-iommu: Fix initialization failure panic + * ioat3: fix p-disabled q-continuation + * ioat2,3: put channel hardware in known state at init + * KVM: MMU: remove prefault from invlpg handler + * KVM: LAPIC: make sure IRR bitmap is scanned after vm load + * Libertas: fix buffer overflow in lbs_get_essid() + * iwmc3200wifi: fix array out-of-boundary access + * mac80211: fix propagation of failed hardware reconfigurations + * mac80211: fix WMM AP settings application + * mac80211: Fix IBSS merge + * cfg80211: fix race between deauth and assoc response + * ath5k: fix SWI calibration interrupt storm + * ath9k: wake hardware for interface IBSS/AP/Mesh removal + * ath9k: Fix TX queue draining + * ath9k: fix missed error codes in the tx status check + * ath9k: wake hardware during AMPDU TX actions + * ath9k: fix suspend by waking device prior to stop + * ath9k_hw: Fix possible OOB array indexing in gen_timer_index[] on + 64-bit + * ath9k_hw: Fix AR_GPIO_INPUT_EN_VAL_BT_PRIORITY_BB and its shift value + in 0x4054 + * iwl3945: disable power save + * iwl3945: fix panic in iwl3945 driver + * iwlwifi: fix EEPROM/OTP reading endian annotations and a bug + * iwlwifi: fix more eeprom endian bugs + * iwlwifi: fix 40MHz operation setting on cards that do not allow it + * mac80211: fix race with suspend and dynamic_ps_disable_work + * NOMMU: Optimise away the {dac_,}mmap_min_addr tests + * 'sysctl_max_map_count' should be non-negative + * kernel/sysctl.c: fix the incomplete part of + sysctl_max_map_count-should-be-non-negative.patch + * V4L/DVB (13596): ov511.c typo: lock => unlock + * x86/ptrace: make genregs[32]_get/set more robust + * memcg: avoid oom-killing innocent task in case of use_hierarchy + * e100: Fix broken cbs accounting due to missing memset. + * ipv6: reassembly: use seperate reassembly queues for conntrack and + local delivery + * netfilter: fix crashes in bridge netfilter caused by fragment jumps + * hwmon: (sht15) Off-by-one error in array index + incorrect constants + * b43: avoid PPC fault during resume + * Keys: KEYCTL_SESSION_TO_PARENT needs TIF_NOTIFY_RESUME architecture + support + * sched: Fix balance vs hotplug race + * drm/radeon/kms: fix crtc vblank update for r600 + * drm: disable all the possible outputs/crtcs before entering KMS mode + * S390: dasd: support DIAG access for read-only devices + * xen: fix is_disconnected_device/exists_disconnected_device + * xen: improvement to wait_for_devices() + * xen: wait up to 5 minutes for device connetion + * orinoco: fix GFP_KERNEL in orinoco_set_key with interrupts disabled + * udf: Try harder when looking for VAT inode + * Add unlocked version of inode_add_bytes() function + * quota: decouple fs reserved space from quota reservation + * ext4: Convert to generic reserved quota's space management. + * ext4: fix sleep inside spinlock issue with quota and dealloc (#14739) + * x86, msr: Unify rdmsr_on_cpus/wrmsr_on_cpus + * cpumask: use modern cpumask style in drivers/edac/amd64_edac.c + * amd64_edac: unify MCGCTL ECC switching + * x86, msr: Add support for non-contiguous cpumasks + * x86, msr: msrs_alloc/free for CONFIG_SMP=n + * amd64_edac: fix driver instance freeing + * amd64_edac: make driver loading more robust + * amd64_edac: fix forcing module load/unload + * sched: Sched_rt_periodic_timer vs cpu hotplug + * ext4: Update documentation to correct the inode_readahead_blks option + name + * lguest: fix bug in setting guest GDT entry + * vmscan: do not evict inactive pages when skipping an active list scan + * ksm: fix mlockfreed to munlocked + * rt2x00: Disable powersaving for rt61pci and rt2800pci. + * generic_permission: MAY_OPEN is not write access + * Linux 2.6.32.3 + * untangle the do_mremap() mess + * fasync: split 'fasync_helper()' into separate add/remove functions + * ASoC: fix params_rate() macro use in several codecs + * modules: Skip empty sections when exporting section notes + * exofs: simple_write_end does not mark_inode_dirty + * nfsd: make sure data is on disk before calling ->fsync + * sunrpc: fix peername failed on closed listener + * SUNRPC: Fix up an error return value in + gss_import_sec_context_kerberos() + * SUNRPC: Fix the return value in gss_import_sec_context() + * sunrpc: on successful gss error pipe write, don't return error + * drm/i915: Update LVDS connector status when receiving ACPI LID event + * drm/i915: fix order of fence release wrt flushing + * drm/i915: Permit pinning whilst the device is 'suspended' + * drm: remove address mask param for drm_pci_alloc() + * drm/i915: Enable/disable the dithering for LVDS based on VBT setting + * drm/i915: Make the BPC in FDI rx/transcoder be consistent with that in + pipeconf on Ironlake + * drm/i915: Select the correct BPC for LVDS on Ironlake + * drm/i915: fix unused var + * rtc_cmos: convert shutdown to new pnp_driver->shutdown + * drivers/cpuidle/governors/menu.c: fix undefined reference to + `__udivdi3' + * cgroups: fix 2.6.32 regression causing BUG_ON() in cgroup_diput() + * lib/rational.c needs module.h + * dma-debug: allow DMA_BIDIRECTIONAL mappings to be synced with + DMA_FROM_DEVICE and + * kernel/signal.c: fix kernel information leak with print-fatal-signals=1 + * mmc_block: add dev_t initialization check + * mmc_block: fix probe error cleanup bug + * mmc_block: fix queue cleanup + * ALSA: hda - Fix ALC861-VD capture source mixer + * ALSA: ac97: Add Dell Dimension 2400 to Headphone/Line Jack Sense + blacklist + * ALSA: atiixp: Specify codec for Foxconn RC4107MA-RS2 + - LP: #498863 + * ASoC: Fix WM8350 DSP mode B configuration + * netfilter: ebtables: enforce CAP_NET_ADMIN + * netfilter: nf_ct_ftp: fix out of bounds read in update_nl_seq() + * hwmon: (coretemp) Fix TjMax for Atom N450/D410/D510 CPUs + * hwmon: (adt7462) Fix pin 28 monitoring + * quota: Fix dquot_transfer for filesystems different from ext4 + * xen: fix hang on suspend. + * iwlwifi: fix iwl_queue_used bug when read_ptr == write_ptr + * ath5k: Fix eeprom checksum check for custom sized eeproms + * cfg80211: fix syntax error on user regulatory hints + * iwl: off by one bug + * mac80211: add missing sanity checks for action frames + * drm/i915: remove render reclock support + * libertas: Remove carrier signaling from the scan code + * kernel/sysctl.c: fix stable merge error in NOMMU mmap_min_addr + * mac80211: fix skb buffering issue (and fixes to that) + * fix braindamage in audit_tree.c untag_chunk() + * fix more leaks in audit_tree.c tag_chunk() + * module: handle ppc64 relocating kcrctabs when CONFIG_RELOCATABLE=y + * ipv6: skb_dst() can be NULL in ipv6_hop_jumbo(). + * agp/intel-agp: Clear entire GTT on startup + * Linux 2.6.32.4 + * ethtool: Add reset operation + * gro: Name the GRO result enumeration type + * gro: Change all receive functions to return GRO result codes + * sfc: 10Xpress: Initialise pause advertising flags + * sfc: 10Xpress: Report support for pause frames + * sfc: Remove redundant header gmii.h + * sfc: Remove redundant hardware initialisation + * sfc: Rename Falcon-specific board code and types + * sfc: Remove boards.h, moving last remaining declaration to falcon.h + * sfc: Remove versioned bitfield macros + * sfc: Move RX data FIFO thresholds out of struct efx_nic_type + * sfc: Update hardware definitions for Siena + * sfc: Rename register I/O header and functions used by both Falcon and + Siena + * sfc: Eliminate indirect lookups of queue size constants + * sfc: Define DMA address mask explicitly in terms of descriptor field + width + * sfc: Move all TX DMA length limiting into tx.c + * sfc: Change order of device removal to reverse of probe order + * sfc: Remove declarations of nonexistent functions + * sfc: Move efx_xmit_done() declaration into correct stanza + * sfc: Move shared members of struct falcon_nic_data into struct efx_nic + * sfc: Maintain interrupt moderation values in ticks, not microseconds + * sfc: Removed kernel-doc for nonexistent member of efx_phy_operations + * sfc: Remove pointless abstraction of memory BAR number + * sfc: Remove incorrect assertion from efx_pci_remove_main() + * sfc: Remove unnecessary tests of efx->membase + * sfc: Move MTD probe after netdev registration and name allocation + * sfc: Remove unused code for non-autoneg speed/duplex switching + * sfc: Rename 'xfp' file and functions to reflect reality + * sfc: Really allow RX checksum offload to be disabled + * sfc: Feed GRO result into RX allocation policy and interrupt moderation + * sfc: Enable heuristic selection between page and skb RX buffers + * sfc: Remove pointless abstraction of memory BAR number (2) + * sfc: Remove redundant gotos from __efx_rx_packet() + * sfc: Remove ridiculously paranoid assertions + * sfc: Move assertions and buffer cleanup earlier in efx_rx_packet_lro() + * sfc: Record RX queue number on GRO path + * sfc: SFT9001: Reset LED configuration correctly after blinking + * sfc: Use a single blink implementation + * sfc: Rename efx_board::init_leds to init_phy and use for SFN4111T + * sfc: Make board information explicitly Falcon-specific + * sfc: Move definition of struct falcon_nic_data into falcon.h + * sfc: Move struct falcon_board into struct falcon_nic_data + * sfc: Move all I2C stuff into struct falcon_board + * sfc: Gather link state fields in struct efx_nic into new struct + efx_link_state + * sfc: Remove unnecessary casts to struct sk_buff * + * sfc: Remove redundant efx_xmit() function + * sfc: Combine high-level header files + * sfc: Log interrupt and reset type names, not numbers + * sfc: Fix descriptor cache sizes + * sfc: Treat all MAC registers as 128-bit + * sfc: Strengthen EFX_ASSERT_RESET_SERIALISED + * sfc: Comment corrections + * sfc: Remove unused constant + * sfc: Clean up struct falcon_board and struct falcon_board_data + * sfc: Fix bugs in RX queue flushing + * sfc: Remove unused function efx_flush_queues() + * sfc: Only switch Falcon MAC clocks as necessary + * sfc: Hold MAC lock for longer in efx_init_port() + * sfc: Split MAC stats DMA initiation and completion + * sfc: Move Falcon board/PHY/MAC monitoring code to falcon.c + * sfc: Simplify XMAC link polling + * sfc: Change MAC promiscuity and multicast hash at the same time + * sfc: Move inline comment into kernel-doc + * sfc: Do not set net_device::trans_start in self-test + * sfc: Simplify PHY polling + * sfc: QT202x: Reset before reading PHY id + * sfc: Replace MDIO spinlock with mutex + * sfc: Always start Falcon using the XMAC + * sfc: Limit some hardware workarounds to Falcon + * sfc: Remove EFX_WORKAROUND_9141 macro + * sfc: Remove another unused workaround macro + * sfc: Remove some redundant whitespace + * sfc: Decouple NIC revision number from Falcon PCI revision number + * sfc: Move descriptor cache base addresses to struct efx_nic_type + * sfc: Clean up RX event handling + * sfc: Remove redundant writes to INT_ADR_KER + * sfc: Remove duplicate hardware structure definitions + * sfc: Turn pause frame generation on and off at the MAC, not the RX FIFO + * sfc: Move Falcon NIC operations to efx_nic_type + * sfc: Refactor link configuration + * sfc: Generalise link state monitoring + * sfc: Add power-management and wake-on-LAN support + * sfc: Implement ethtool reset operation + * sfc: Add efx_nic_type operation for register self-test + * sfc: Add efx_nic_type operation for NVRAM self-test + * sfc: Add efx_nic_type operation for identity LED control + * sfc: Separate shared NIC code from Falcon-specific and rename + accordingly + * sfc: Fold falcon_probe_nic_variant() into falcon_probe_nic() + * sfc: Extend loopback mode enumeration + * sfc: Remove static PHY data and enumerations + * sfc: Extend MTD driver for use with new NICs + * sfc: Allow for additional checksum offload features + * sfc: Rename falcon.h to nic.h + * sfc: Move shared NIC code from falcon.c to new source file nic.c + * sfc: Add firmware protocol definitions (MCDI) + * sfc: Add support for SFC9000 family (1) + * sfc: Add support for SFC9000 family (2) + * sfc: Implement TSO for TCP/IPv6 + * sfc: Update version, copyright dates, authors + * drivers/net/sfc: Correct code taking the size of a pointer + * sfc: Move PHY software state initialisation from init() into probe() + * sfc: Include XGXS in XMAC link status check except in XGMII loopback + * sfc: Fix DMA mapping cleanup in case of an error in TSO + * sfc: QT2025C: Work around PHY bug + * sfc: QT2025C: Switch into self-configure mode when not in loopback + * sfc: QT2025C: Work around PHY firmware initialisation bug + * sfc: QT2025C: Add error message for suspected bad SFP+ cables + * sfc: Disable TX descriptor prefetch watchdog + * [SCSI] vmw_pvscsi: SCSI driver for VMware's virtual HBA. + - LP: #497156 + + -- Andy Whitcroft Tue, 19 Jan 2010 16:12:47 +0000 + +linux (2.6.32-10.14) lucid; urgency=low + + [ Alex Deucher ] + + * SAUCE: drm/radeon/kms: fix LVDS setup on r4xx + - LP: #493795 + + [ Andy Whitcroft ] + + * Revert "(pre-stable) acpi: Use the ARB_DISABLE for the CPU which model + id is less than 0x0f." + * config-check -- ensure the checks get run at build time + * config-check -- check the processed config during updateconfigs + * config-check -- CONFIG_SECCOMP may not be present + * TUN is now built in ignore + * SAUCE: acpi battery -- delay first lookup of the battery until first + use + * SAUCE: async_populate_rootfs: move rootfs init earlier + * ubuntu: AppArmor -- update to mainline 2010-01-06 + * SAUCE: move RLIMIT_CORE pipe dumper marker to 1 + - LP: #498525 + + [ Dave Airlie ] + + * (pre-stable) drm/radeon/kms: fix crtc vblank update for r600 + + [ Leann Ogasawara ] + + * Add asix to nic-usb-modules file + - LP: #499785 + + [ Peter Zijlstra ] + + * (pre-stable) sched: Fix balance vs hotplug race + + [ Tim Gardner ] + + * [Config] Enable CONFIG_FUNCTION_TRACER + - LP: #497989 + * [Config] Drop lpia from getabis + * [Config] Build in TUN/TAP driver + - LP: #499491 + * [Config] DH_COMPAT=5 + + [ Upstream Kernel Changes ] + + * Revert "(pre-stable) drm/i915: Avoid NULL dereference with + component_only tv_modes" + * Revert "(pre-stable) drm/i915: Fix sync to vblank when VGA output is + turned off" + * USB: usb-storage: fix bug in fill_inquiry + * USB: option: add pid for ZTE + * firewire: ohci: handle receive packets with a data length of zero + * rcu: Prepare for synchronization fixes: clean up for non-NO_HZ handling + of ->completed counter + * rcu: Fix synchronization for rcu_process_gp_end() uses of ->completed + counter + * rcu: Fix note_new_gpnum() uses of ->gpnum + * rcu: Remove inline from forward-referenced functions + * perf_event: Fix invalid type in ioctl definition + * perf_event: Initialize data.period in perf_swevent_hrtimer() + * perf: Don't free perf_mmap_data until work has been done + * PM / Runtime: Fix lockdep warning in __pm_runtime_set_status() + * sched: Check for an idle shared cache in select_task_rq_fair() + * sched: Fix affinity logic in select_task_rq_fair() + * sched: Rate-limit newidle + * sched: Fix and clean up rate-limit newidle code + * x86/amd-iommu: attach devices to pre-allocated domains early + * x86/amd-iommu: un__init iommu_setup_msi + * x86, Calgary IOMMU quirk: Find nearest matching Calgary while walking + up the PCI tree + * x86: Fix iommu=nodac parameter handling + * x86: GART: pci-gart_64.c: Use correct length in strncmp + * x86: ASUS P4S800 reboot=bios quirk + - LP: #366682 + * x86, apic: Enable lapic nmi watchdog on AMD Family 11h + * ssb: Fix range check in sprom write + * ath5k: allow setting txpower to 0 + * ath5k: enable EEPROM checksum check + * hrtimer: Fix /proc/timer_list regression + * ALSA: hrtimer - Fix lock-up + * ALSA: hda - Terradici HDA controllers does not support 64-bit mode + * KVM: x86 emulator: limit instructions to 15 bytes + * KVM: s390: Fix prefix register checking in arch/s390/kvm/sigp.c + * KVM: s390: Make psw available on all exits, not just a subset + * KVM: fix irq_source_id size verification + * KVM: x86: include pvclock MSRs in msrs_to_save + * x86: Prevent GCC 4.4.x (pentium-mmx et al) function prologue wreckage + * x86: Use -maccumulate-outgoing-args for sane mcount prologues + * x86, mce: don't restart timer if disabled + * x86/mce: Set up timer unconditionally + * x86: SGI UV: Fix BAU initialization + * x86: Fix duplicated UV BAU interrupt vector + * x86: Add new Intel CPU cache size descriptors + * x86: Fix typo in Intel CPU cache size descriptor + * pata_hpt{37x|3x2n}: fix timing register masks (take 2) + * s390: clear high-order bits of registers after sam64 + * V4L/DVB: Fix test in copy_reg_bits() + * bsdacct: fix uid/gid misreporting + * UBI: flush wl before clearing update marker + * jbd2: don't wipe the journal on a failed journal checksum + * USB: xhci: Add correct email and files to MAINTAINERS entry. + * USB: musb_gadget_ep0: fix unhandled endpoint 0 IRQs, again + * USB: option.c: add support for D-Link DWM-162-U5 + * USB: usbtmc: repeat usb_bulk_msg until whole message is transfered + * USB: usb-storage: add BAD_SENSE flag + * USB: Close usb_find_interface race v3 + * pxa/em-x270: fix usb hub power up/reset sequence + * hfs: fix a potential buffer overflow + * SUNRPC: IS_ERR/PTR_ERR confusion + * NFS: Fix nfs_migrate_page() + * md/bitmap: protect against bitmap removal while being updated. + * futex: Take mmap_sem for get_user_pages in fault_in_user_writeable + * devpts_get_tty() should validate inode + * debugfs: fix create mutex racy fops and private data + * Driver core: fix race in dev_driver_string + * Serial: Do not read IIR in serial8250_start_tx when UART_BUG_TXEN + * mac80211: Fix bug in computing crc over dynamic IEs in beacon + * mac80211: Fixed bug in mesh portal paths + * mac80211: Revert 'Use correct sign for mesh active path refresh' + * mac80211: fix scan abort sanity checks + * wireless: correctly report signal value for IEEE80211_HW_SIGNAL_UNSPEC + * rtl8187: Fix wrong rfkill switch mask for some models + * x86: Fix bogus warning in apic_noop.apic_write() + * mm: hugetlb: fix hugepage memory leak in mincore() + * mm: hugetlb: fix hugepage memory leak in walk_page_range() + * powerpc/windfarm: Add detection for second cpu pump + * powerpc/therm_adt746x: Record pwm invert bit at module load time] + * powerpc: Fix usage of 64-bit instruction in 32-bit altivec code + * drm/radeon/kms: Add quirk for HIS X1300 board + * drm/radeon/kms: handle vblanks properly with dpms on + * drm/radeon/kms: fix legacy crtc2 dpms + * drm/radeon/kms: fix vram setup on rs600 + * drm/radeon/kms: rs6xx/rs740: clamp vram to aperture size + * drm/ttm: Fix build failure due to missing struct page + * drm/i915: Set the error code after failing to insert new offset into mm + ht. + * drm/i915: Add the missing clonemask for display port on Ironlake + * xen/xenbus: make DEVICE_ATTR()s static + * xen: re-register runstate area earlier on resume. + * xen: restore runstate_info even if !have_vcpu_info_placement + * xen: correctly restore pfn_to_mfn_list_list after resume + * xen: register timer interrupt with IRQF_TIMER + * xen: register runstate on secondary CPUs + * xen: don't call dpm_resume_noirq() with interrupts disabled. + * xen: register runstate info for boot CPU early + * xen: call clock resume notifier on all CPUs + * xen: improve error handling in do_suspend. + * xen: don't leak IRQs over suspend/resume. + * xen: use iret for return from 64b kernel to 32b usermode + * xen: explicitly create/destroy stop_machine workqueues outside + suspend/resume region. + * Xen balloon: fix totalram_pages counting. + * xen: try harder to balloon up under memory pressure. + * dm exception store: free tmp_store on persistent flag error + * dm snapshot: only take lock for statustype info not table + * dm crypt: move private iv fields to structs + * dm crypt: restructure essiv error path + * dm: avoid _hash_lock deadlock + * dm snapshot: cope with chunk size larger than origin + * dm crypt: separate essiv allocation from initialisation + * dm crypt: make wipe message also wipe essiv key + * slc90e66: fix UDMA handling + * tcp: Stalling connections: Fix timeout calculation routine + * ip_fragment: also adjust skb->truesize for packets not owned by a + socket + * b44 WOL setup: one-bit-off stack corruption kernel panic fix + * sparc64: Don't specify IRQF_SHARED for LDC interrupts. + * sparc64: Fix overly strict range type matching for PCI devices. + * sparc64: Fix stack debugging IRQ stack regression. + * sparc: Set UTS_MACHINE correctly. + * b43legacy: avoid PPC fault during resume + * tracing: Fix event format export + * ath9k: Fix TX hang poll routine + * ath9k: fix processing of TX PS null data frames + * ath9k: Fix maximum tx fifo settings for single stream devices + * ath9k: fix tx status reporting + * mac80211: Fix dynamic power save for scanning. + * drm/i915: Fix sync to vblank when VGA output is turned off + * memcg: fix memory.memsw.usage_in_bytes for root cgroup + * thinkpad-acpi: fix default brightness_mode for R50e/R51 + * thinkpad-acpi: preserve rfkill state across suspend/resume + * ipw2100: fix rebooting hang with driver loaded + * matroxfb: fix problems with display stability + * acerhdf: add new BIOS versions + * asus-laptop: change light sens default values. + * vmalloc: conditionalize build of pcpu_get_vm_areas() + * ACPI: Use the ARB_DISABLE for the CPU which model id is less than 0x0f. + * net: Fix userspace RTM_NEWLINK notifications. + * ext3: Fix data / filesystem corruption when write fails to copy data + * V4L/DVB (13116): gspca - ov519: Webcam 041e:4067 added. + * bcm63xx_enet: fix compilation failure after get_stats_count removal + * x86: Under BIOS control, restore AP's APIC_LVTTHMR to the BSP value + * drm/i915: Avoid NULL dereference with component_only tv_modes + * drm/i915: PineView only has LVDS and CRT ports + * drm/i915: Fix LVDS stability issue on Ironlake + * mm: sigbus instead of abusing oom + * ipvs: zero usvc and udest + * jffs2: Fix long-standing bug with symlink garbage collection. + * intel-iommu: Detect DMAR in hyperspace at probe time. + * intel-iommu: Apply BIOS sanity checks for interrupt remapping too. + * intel-iommu: Check for an RMRR which ends before it starts. + * intel-iommu: Fix oops with intel_iommu=igfx_off + * intel-iommu: ignore page table validation in pass through mode + * netfilter: xtables: document minimal required version + * perf_event: Fix incorrect range check on cpu number + * implement early_io{re,un}map for ia64 + * Linux 2.6.32.2 + + -- Andy Whitcroft Thu, 07 Jan 2010 15:28:43 +0000 + +linux (2.6.32-9.13) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_B43_PHY_LP + - LP: #493059 + * include modules.builtin in the binary debs + * config-check -- add a configuration enforcer + * config-check -- add a unit-test suite to the checker + * [Config] Enable CONFIG_SYN_COOKIES for versatile + * [Config] Enable CONFIG_SECURITY_SMACK for ports + * [Config] Enable CONFIG_SECURITY_FILE_CAPABILITIES for ports + * [Config] Disable CONFIG_COMPAT_BRK for ports + * getabis -- add armel versatile to the list + + [ Brad Figg ] + + * SAUCE: Increase the default prealloc buffer for HDA audio devices + (non-modem) + + [ Manoj Iyer ] + + * ubuntu: onmibook -- Added missing BOM file + + [ Tim Gardner ] + + * ubuntu: fsam7400 -- Cleanup Makefile + + [ Upstream Kernel Changes ] + + * Revert "ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT" + * signal: Fix alternate signal stack check + * SCSI: scsi_lib_dma: fix bug with dma maps on nested scsi objects + * SCSI: osd_protocol.h: Add missing #include + * SCSI: megaraid_sas: fix 64 bit sense pointer truncation + * ext4: fix potential buffer head leak when add_dirent_to_buf() returns + ENOSPC + * ext4: avoid divide by zero when trying to mount a corrupted file system + * ext4: fix the returned block count if EXT4_IOC_MOVE_EXT fails + * ext4: fix lock order problem in ext4_move_extents() + * ext4: fix possible recursive locking warning in EXT4_IOC_MOVE_EXT + * ext4: plug a buffer_head leak in an error path of ext4_iget() + * ext4: make sure directory and symlink blocks are revoked + * ext4: fix i_flags access in ext4_da_writepages_trans_blocks() + * ext4: journal all modifications in ext4_xattr_set_handle + * ext4: don't update the superblock in ext4_statfs() + * ext4: fix uninit block bitmap initialization when s_meta_first_bg is + non-zero + * ext4: fix block validity checks so they work correctly with meta_bg + * ext4: avoid issuing unnecessary barriers + * ext4: fix error handling in ext4_ind_get_blocks() + * ext4: make trim/discard optional (and off by default) + * ext4: make "norecovery" an alias for "noload" + * ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT + * ext4: initialize moved_len before calling ext4_move_extents() + * ext4: move_extent_per_page() cleanup + * jbd2: Add ENOMEM checking in and for + jbd2_journal_write_metadata_buffer() + * ext4: Return the PTR_ERR of the correct pointer in + setup_new_group_blocks() + * ext4: Avoid data / filesystem corruption when write fails to copy data + * ext4: wait for log to commit when umounting + * ext4: remove blocks from inode prealloc list on failure + * ext4: ext4_get_reserved_space() must return bytes instead of blocks + * ext4: quota macros cleanup + * ext4: fix incorrect block reservation on quota transfer. + * ext4: Wait for proper transaction commit on fsync + * ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT + * ext4: Fix potential fiemap deadlock (mmap_sem vs. i_data_sem) + * Linux 2.6.32.1 + * kbuild: generate modules.builtin + * (pre-stable) drm/i915: Fix sync to vblank when VGA output is turned off + - LP: #494461 + * (pre-stable) drm/i915: Avoid NULL dereference with component_only + tv_modes + - LP: #494045 + + [ Zhao Yakui ] + + * (pre-stable) acpi: Use the ARB_DISABLE for the CPU which model id is + less than 0x0f. + - LP: #481765 + + -- Andy Whitcroft Thu, 17 Dec 2009 15:41:21 +0000 + +linux (2.6.32-8.12) lucid; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: AppArmor -- add linux/err.h for ERR_PTR + + -- Andy Whitcroft Sat, 12 Dec 2009 10:56:16 +0000 + +linux (2.6.32-8.11) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: default ATI Radeon KMS to off until userspace catches + up" + * Revert "SAUCE: AppArmor: Fix oops there is no tracer and doing unsafe + transition." + * Revert "SAUCE: AppArmor: Fix refcounting bug causing leak of creds" + * Revert "SAUCE: AppArmor: Fix cap audit_caching preemption disabling" + * Revert "SAUCE: AppArmor: Fix Oops when in apparmor_bprm_set_creds" + * Revert "SAUCE: AppArmor: Fix oops after profile removal" + * Revert "SAUCE: AppArmor: AppArmor disallows truncate of deleted files." + * Revert "SAUCE: AppArmor: AppArmor fails to audit change_hat correctly" + * Revert "SAUCE: AppArmor: Policy load and replacement can fail to alloc + mem" + * Revert "SAUCE: AppArmor: AppArmor wrongly reports allow perms as + denied" + * Revert "SAUCE: AppArmor: Fix mediation of "deleted" paths" + * Revert "SAUCE: AppArmor: Fix off by 2 error in getprocattr mem + allocation" + * Revert "SAUCE: AppArmor: Set error code after structure + initialization." + * Revert "AppArmor -- fix pstrace_may_access rename" + * Revert "ubuntu: AppArmor security module" + * Revert "SAUCE: Add config option to set a default LSM" + * Revert "ubuntu: fsam7400 -- sw kill switch driver" + * Revert "[Config] fsam7400 -- enable" + * Revert "[Config] AUFS -- enable" + * Revert "ubuntu: AUFS -- aufs2-30 20090727" + * Revert "ubuntu: AUFS -- export various core functions -- fixes" + * Revert "ubuntu: AUFS -- export various core functions" + * Revert "[Config] ubuntu/iscsitarget -- disable" + * Revert "[Config] iscsitarget -- enable" + * Revert "ubuntu: iscsitarget -- SVN revision r214" + * update Vcs-Git to point to the correct repository + - LP: #493589 + * update build environment overrides to lucid + - LP: #493589 + * [Config] enable CONFIG_DEVTMPFS + * [Config] update all configs following AppArmor 2009-12-08 update + * SAUCE: isapnp_init: make isa PNP scans occur async + * [Config] fsam7400 -- enable + * [Config] omnibook -- enable + * [Config] cleanup CONFIG_AUDIT + * ubuntu: AUFS -- export various core functions (aufs2-base.patch) + * ubuntu: AUFS -- export various core functions (aufs2-standalone.patch) + * ubuntu: AUFS -- aufs2 20091209 + * [Config] AUFS -- enable + * [Config] iscsitarget -- enable + + [ Arjan van de Ven ] + + * SAUCE: KMS: cache the EDID information of the LVDS + + [ Colin Watson ] + + * bnx2: update d-i firmware filenames + - LP: #494052 + * add cdc_ether to nic-usb-modules udeb + - LP: #495060 + + [ John Johansen ] + + * ubuntu: AppArmor -- mainline 2009-10-08 + + [ Manoj Iyer ] + + * ubuntu: fsam7400 -- kill switch for Fujitsu Siemens Amilo M 7400 + * ubuntu: omnibook -- support Toshiba (HP) netbooks + * ubuntu: iscsitarget --- version 1.4.19 + - LP: #494693 + + [ Surbhi Palande ] + + * SAUCE: Make populate_rootfs asynchronous + + [ Tim Gardner ] + + * Parallelize flavour builds and packaging + * [Config] Enable CONFIG_KSM + + [ Upstream Kernel Changes ] + + * Config option to set a default LSM + * LSM: Add security_path_chroot(). + * LSM: Add security_path_chroot(). + * LSM: Move security_path_chmod()/security_path_chown() to after + mutex_lock(). + * ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT + + -- Andy Whitcroft Fri, 11 Dec 2009 17:45:19 +0000 + +linux (2.6.32-7.10) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] disable CONFIG_THUMB2_KERNEL to fix arm FTBFS + + -- Andy Whitcroft Sun, 06 Dec 2009 12:56:48 +0000 + +linux (2.6.32-7.9) lucid; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: set /proc/acpi/video/*/DOS to 4 by default + - LP: #458982 + * SAUCE: ensure vga16fb loads if no other driver claims the VGA device + * [Config] update configs following versatile switch to V7 + * rebased to v2.6.32 + * [Config] update configs following rebase to v2.6.32 + * [Config] update ports configs following rebase to v2.6.32 + * SAUCE: default ATI Radeon KMS to off until userspace catches up + + [ Arjan van de Ven ] + + * SAUCE: vfs: Add a trace point in the mark_inode_dirty function + + [ Leann Ogasawara ] + + * [SCSI] megaraid_sas: remove sysfs poll_mode_io world writeable + permissions + - CVE-2009-3939 + + [ Loic Minier ] + + * SAUCE: select a v7 CPU for versatile + + [ Takashi Iwai ] + + * SAUCE: ALSA: hda - Add power on/off counter + + [ Upstream changes ] + + * rebased to v2.6.32 + + -- Andy Whitcroft Fri, 04 Dec 2009 10:44:50 +0000 + +linux (2.6.32-6.8) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] disable SSB devices for armel + + -- Andy Whitcroft Sat, 28 Nov 2009 12:16:40 +0000 + +linux (2.6.32-6.7) lucid; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: default ATI Radeon KMS to off until userspace catches up" + * Revert "SAUCE: Dell XPS710 reboot quirk" + * Revert "SAUCE: Link acpi-cpufreq.o first" + * Revert "SAUCE: LPIA Logical reset of USB port on resume" + * Revert "SAUCE: LPIA Reboot fix for Intel Crownbeach development boards" + * Revert "SAUCE: Enable HDMI audio codec on Studio XPS 1340" + * Revert "SAUCE: Dell laptop digital mic does not work, PCI 1028:0271" + * Revert "Add Dell Dimension 9200 reboot quirk" + * Revert "SAUCE: Correctly blacklist Thinkpad r40e in ACPI" + * Revert "SAUCE: tulip: Define ULI PCI ID's" + * Revert "SAUCE: Lower warning level of some PCI messages" + * Revert "mac80211: fix two issues in debugfs" + Drop a number of known redundant commits as identified in the Ubuntu + delta review blueprint. + + * reenable armel versatile flavour + * [Config] disable CONFIG_USB_DEVICEFS + + [ Tim Gardner ] + + * [Config] udeb: Add squashfs to fs-core-modules + - LP: #352615 + * [Config] Create a real squashfs udeb + - LP: #352615 + + + -- Andy Whitcroft Fri, 27 Nov 2009 17:31:16 +0000 + +linux (2.6.32-5.6) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.32-rc8 + * update configs following rebase to v2.6.32-rc8 + * update ports configs since rebase to v2.6.32-rc8 + * [Config] enable cgroup options + - LP: #480739 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc8 + + -- Andy Whitcroft Mon, 23 Nov 2009 11:16:14 +0000 + +linux (2.6.32-4.5) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] SERIO_LIBPS2 and SERIO_I8042 must match + * rebase to v2.6.32-rc7 + * resync with Karmic proposed + + [ John Johansen ] + + * SAUCE: AppArmor: Fix oops after profile removal + - LP: #475619 + * SAUCE: AppArmor: Fix Oops when in apparmor_bprm_set_creds + - LP: #437258 + * SAUCE: AppArmor: Fix cap audit_caching preemption disabling + - LP: #479102 + * SAUCE: AppArmor: Fix refcounting bug causing leak of creds + - LP: #479115 + * SAUCE: AppArmor: Fix oops there is no tracer and doing unsafe + transition. + - LP: #480112 + + [ Ubuntu Changes ] + + * resync with Karmic proposed (ddbc670a86a3dee18541a3734149f250ff307adf) + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc7 + + -- Andy Whitcroft Fri, 13 Nov 2009 11:35:13 +0000 + +linux (2.6.32-3.4) lucid; urgency=low + + [ Andy Whitcroft ] + + * [Config] SERIO_LIBPS2 and SERIO_I8042 must match + * [Upstream] add local prefix to oss local change_bits + + [ Upstream Kernel Changes ] + + * mtd/maps: gpio-addr-flash: pull in linux/ headers rather than asm/ + * mtd/maps: gpio-addr-flash: depend on GPIO arch support + + -- Andy Whitcroft Wed, 11 Nov 2009 14:47:04 +0000 + +linux (2.6.32-3.3) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.32-rc6 + * [Config] update configs following rebase to v2.6.32-rc6 + * [Config] update ports configs following rebase to v2.6.32-rc6 + * resync with Karmic Ubuntu-2.6.31-15.49 + * [Config] add module ignores for broken drivers + + [ John Johansen ] + + * SAUCE: AppArmor: AppArmor wrongly reports allow perms as denied + - LP: #453335 + * SAUCE: AppArmor: Policy load and replacement can fail to alloc mem + - LP: #458299 + * SAUCE: AppArmor: AppArmor fails to audit change_hat correctly + - LP: #462824 + * SAUCE: AppArmor: AppArmor disallows truncate of deleted files. + - LP: #451375 + + [ Kees Cook ] + + * SAUCE: Fix nx_enable reporting + - LP: #454285 + + [ Scott James Remnant ] + + * Revert "SAUCE: trace: add trace_event for the open() syscall" + * SAUCE: trace: add trace events for open(), exec() and uselib() + - LP: #462111 + + [ Stefan Bader ] + + * SAUCE: Fix sub-flavour script to not stop on missing directories + - LP: #453073 + + [ Ubuntu Changes ] + + * resync with Karmic Ubuntu-2.6.31-15.49 + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc6 + - LP: #464552 + + -- Andy Whitcroft Tue, 10 Nov 2009 15:00:57 +0000 + +linux (2.6.32-2.2) lucid; urgency=low + + [ Andy Whitcroft ] + + * install the full changelog with the binary package + * changelog -- explicitly note rebases and clean history + * reinstate armel.mk with no flavours + - LP: #449637 + * [Upstream] block: silently error unsupported empty barriers too + - LP: #420423 + * [Config] udate configs following karmic resync + * [Config] update ports configs following karmic resync + * [Upstream] lirc -- follow removal of .id element + + [ Colin Watson ] + + * Use section 'admin' rather than 'base' + * Add more e100 firmware to nic-modules + - LP: #451872 + * Add qla1280 firmware to scsi-modules + - LP: #381037 + + [ John Johansen ] + + * SAUCE: AppArmor: Set error code after structure initialization. + - LP: #427948 + * SAUCE: AppArmor: Fix off by 2 error in getprocattr mem allocation + - LP: #446595 + * SAUCE: AppArmor: Fix mediation of "deleted" paths + + [ Kees Cook ] + + * SAUCE: [x86] fix report of cs-limit nx-emulation + - LP: #454285 + + [ Leann Ogasawara ] + + * SAUCE: (drop after 2.6.31) input: Add support for filtering input + events + - LP: #430809 + * SAUCE: (drop after 2.6.31) dell-laptop: Trigger rfkill updates on wifi + toggle switch press + - LP: #430809 + + [ Luke Yelavich ] + + * SAUCE: Add sr_mod to the scsi-modules udeb for powerpc + * [Config] Add sd_mod to scsi-modules udeb for powerpc + + [ Mario Limonciello ] + + * SAUCE: Update to LIRC 0.8.6 + - LP: #432678 + * SAUCE: dell-laptop: Store the HW switch status internally rather than + requerying every time + - LP: #430809 + * SAUCE: dell-laptop: Blacklist machines not supporting dell-laptop + - LP: #430809 + + [ Stefan Bader ] + + * [Upstream] acerhdf: Limit modalias matching to supported boards + - LP: #435958 + + [ Tim Gardner ] + + * [Upstream] i915: Fix i2c init message + - LP: #409361 + * [Config] Add sym53c8xx.ko to virtual sub-flavour + - LP: #439415 + * [Config] Add d101m_ucode.bin to d-i/firmware/nic-modules + - LP: #439456 + * [Config] Set default I/O scheduler back to CFQ for desktop flavours + - LP: #381300 + * SAUCE: Created MODULE_EXPORT/MODULE_IMPORT macros + - LP: #430694 + * SAUCE: Use MODULE_IMPORT macro to tie intel_agp to i915 + - LP: #430694 + * [Config] CONFIG_GFS2_FS_LOCKING_DLM=y + - LP: #416325 + * SAUCE: Fix MODULE_IMPORT/MODULE_EXPORT + - LP: #430694 + * SAUCE: Raise the default console 'quiet' level to 2 + * [Config] CONFIG_X86_PAT=y + * [Config] Add armel arch to linux-libc-dev arches. + - LP: #449637 + * [Config] CONFIG_X86_MCE + * [Upstream] (drop after 2.6.31) Input: synaptics - add another Protege + M300 to rate blacklist + - LP: #433801 + + [ Upstream Kernel Changes ] + + * sgi-gru: Fix kernel stack buffer overrun, CVE-2009-2584 + * drm/i915: Fix FDI M/N setting according with correct color depth + - LP: #416792 + + -- Andy Whitcroft Thu, 22 Oct 2009 16:53:33 +0100 + +linux (2.6.32-1.1) lucid; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.32-rc3 + * [Config] update configs following rebase to 2.6.32-rc3 + * [Config] update ports configs following rebase to 2.6.32-rc3 + * AppArmor -- fix pstrace_may_access rename + * staging/android -- disable + * ubuntu: dm-raid-45 -- update to compile with 2.6.32 + * ubuntu: drbd -- disable + * staging/comdi -- disable + * staging/go7007 -- disable + * [Config] staging/winbond -- disable + * [Config] ubuntu/iscsitarget -- disable + * [d-i] cbc and ecb are builtin make them optional in udebs + * rebase to v2.6.32-rc5 + * [Config] update configs following rebase to v2.6.32-rc5 + * [Config] update ports configs following rebase to v2.6.31-rc5 + + [ Tim Gardner ] + + * [Config] Add cpio as a build dependency. + + [ Upstream Kernel Changes ] + + * rebase to v2.6.32-rc3 + * rebase to v2.6.32-rc5 + + -- Andy Whitcroft Mon, 05 Oct 2009 15:48:58 +0100 + +linux (2.6.31-11.37) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] Increase kernel log buffer to 256K for amd64 flavours + - LP: #424810 + * [Config] Set HZ=100 for amd64 flavours + - LP: #438234 + * [Upstream] e1000e: Emit notice instead of an error when + pci_enable_pcie_error_reporting() fails + - LP: #436370 + + [ Upstream Kernel Changes ] + + * n_tty: honor opost flag for echoes + * n_tty: move echoctl check and clean up logic + - LP: #438310 + + * Revert "[Upstream] drm/i915: Check that the relocation points to within + the target" - Use upstream cherry-pick. + * drm/i915: Check that the relocation points to within the target + - LP: #429241 + + * drm/i915: fix tiling on IGDNG + * drm/i915: add B43 chipset support + * agp/intel: Add B43 chipset support + Intel request from kernel team mailing list. + + * HID: completely remove apple mightymouse from blacklist + - LP: #428111 + + -- Tim Gardner Mon, 28 Sep 2009 11:47:29 -0600 + +linux (2.6.31-11.36) karmic; urgency=low + + [ Brian Rogers ] + + * SAUCE: (drop after 2.6.31) em28xx: ir-kbd-i2c init data needs a + persistent object + * SAUCE: (drop after 2.6.31) saa7134: ir-kbd-i2c init data needs a + persistent object + + [ Takashi Iwai ] + + * [Upstream] ALSA: hda - Add another entry for Nvidia HDMI device + - LP: #416482 + + [ Tyler Hicks ] + + * SAUCE: (drop after 2.6.31) eCryptfs: Prevent lower dentry from going + negative during unlink + + [ Upstream Kernel Changes ] + + * sg: fix oops in the error path in sg_build_indirect() + * mpt2sas : Rescan topology from Interrupt context instead of work thread + * mpt2sas: Prevent sending command to FW while Host Reset + * mpt2sas: setting SDEV into RUNNING state from Interrupt context + * mpt2sas: Raid 10 Volume is showing as Raid 1E in dmesg + * SCSI: fix oops during scsi scanning + * SCSI: libsrp: fix memory leak in srp_ring_free() + * cfg80211: fix looping soft lockup in find_ie() + * ath5k: write PCU registers on initial reset + * binfmt_elf: fix PT_INTERP bss handling + * TPM: Fixup boot probe timeout for tpm_tis driver + * md: Fix "strchr" [drivers/md/dm-log-userspace.ko] undefined! + * x86/amd-iommu: fix broken check in amd_iommu_flush_all_devices + * fix undefined reference to user_shm_unlock + * perf_counter: Fix buffer overflow in perf_copy_attr() + * perf_counter: Start counting time enabled when group leader gets + enabled + * powerpc/perf_counters: Reduce stack usage of power_check_constraints + * powerpc: Fix bug where perf_counters breaks oprofile + * powerpc/ps3: Workaround for flash memory I/O error + * block: don't assume device has a request list backing in nr_requests + store + * agp/intel: remove restore in resume + * ALSA: cs46xx - Fix minimum period size + * ASoC: Fix WM835x Out4 capture enumeration + * sound: oxygen: work around MCE when changing volume + * mlx4_core: Allocate and map sufficient ICM memory for EQ context + * perf stat: Change noise calculation to use stddev + * x86: Fix x86_model test in es7000_apic_is_cluster() + * x86/i386: Make sure stack-protector segment base is cache aligned + * PCI: apply nv_msi_ht_cap_quirk on resume too + * x86, pat: Fix cacheflush address in change_page_attr_set_clr() + * ARM: 5691/1: fix cache aliasing issues between kmap() and kmap_atomic() + with highmem + * KVM guest: do not batch pte updates from interrupt context + * KVM: Fix coalesced interrupt reporting in IOAPIC + * KVM: VMX: Check cpl before emulating debug register access + * KVM guest: fix bogus wallclock physical address calculation + * KVM: x86: Disallow hypercalls for guest callers in rings > 0 + * KVM: VMX: Fix cr8 exiting control clobbering by EPT + * KVM: x86 emulator: Implement zero-extended immediate decoding + * KVM: MMU: make __kvm_mmu_free_some_pages handle empty list + * KVM: x86 emulator: fix jmp far decoding (opcode 0xea) + * KVM: limit lapic periodic timer frequency + * libata: fix off-by-one error in ata_tf_read_block() + * PCI quirk: update 82576 device ids in SR-IOV quirks list + * PCI: Unhide the SMBus on the Compaq Evo D510 USDT + * powerpc/pseries: Fix to handle slb resize across migration + * Linux 2.6.31.1 + + -- Tim Gardner Thu, 24 Sep 2009 13:04:28 -0600 + +linux (2.6.31-10.35) karmic; urgency=low + + [ Amit Kucheria ] + + * Disable CONFIG_UEVENT_HELPER_PATH + + [ Andy Whitcroft ] + + * [Config] Enable CONFIG_USB_GADGET_DUMMY_HCD + * remove the tlsup driver + * remove lmpcm logitech driver support + + [ Bryan Wu ] + + * Add 3 missing files to prerm remove file list + - LP: #345623, #415832 + + [ Chris Wilson ] + + * [Upstream] drm/i915: Check that the relocation points to within the + target + - LP: #429241 + + [ Luke Yelavich ] + + * [Config] Set CONFIG_EXT4_FS=y on ports architectures + + [ Manoj Iyer ] + + * SAUCE: Added quirk to recognize GE0301 3G modem as an interface. + - LP: #348861 + + [ Tim Gardner ] + + * Revert "[Upstream] ACPI: Add Thinkpad W500, W700, & W700ds to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad R400 & Thinkpad R500 to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad X300 & Thinkpad X301 to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad X200, X200s, X200t to OSI(Linux) white-list" + * Revert "[Upstream] ACPI: Add Thinkpad T400 & Thinkpad T500 to OSI(Linux) white-list" + Upstream suggests that this is not the right approach. + + * [Config] Set default I/O scheduler to DEADLINE + CFQ seems to have some load related problems which are often exacerbated by sreadahead. + - LP: #381300 + + [ ubuntu@tjworld.net ] + + * SAUCE: ipw2200: Enable LED by default + - LP: #21367 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Add support for new AMD HD audio devices + - LP: #430564 + + -- Andy Whitcroft Wed, 16 Sep 2009 15:37:49 +0100 + +linux (2.6.31-10.34) karmic; urgency=low + + [ Ted Tso ] + + * [Upstream] ext3: Don't update superblock write time when filesystem is + read-only + - LP: #427822 + + -- Tim Gardner Tue, 15 Sep 2009 16:00:45 -0600 + +linux (2.6.31-10.33) karmic; urgency=low + + [ Leann Ogasawara ] + + * [Upstream] dvb-usb: fix tuning with Cinergy T2 + - LP: #421258 + + [ Tim Gardner ] + + * [Config] Unconditionally copy files from sub-flavours lists. + (really, really fix it this time) + - LP: #423426 + * [Config] Set CONFIG_CACHEFILES=m for all flavours + + [ Upstream Kernel Changes ] + + * ext4: Don't update superblock write time when filesystem is read-only + - LP: #427822 + + -- Tim Gardner Tue, 15 Sep 2009 07:50:21 -0600 + +linux (2.6.31-10.32) karmic; urgency=low + + [ Eric Miao ] + + * [Config] enable module support for memory stick + - LP: #159951 + + [ Tim Gardner ] + + * [Config] Unconditionally copy files from sub-flavours lists. + - LP: #423426 + + -- Tim Gardner Thu, 10 Sep 2009 15:57:55 -0600 + +linux (2.6.31-10.31) karmic; urgency=low + + [ Andy Whitcroft ] + + * rebase to v2.6.31 final + + [ Colin Watson ] + + * [Config] Recommend grub-pc in linux-image + - LP: #385741 + + [ Ike Panhc ] + + * [Upstream] Pull latest update of lenovo-sl-laptop + + [ Peter Feuerer ] + + * [Upstream] (drop after 2.6.31) acerhdf: fix fan control for AOA150 + model + - LP: #426691 + + [ Tim Gardner ] + + * [Config] De-macro some package names. + + [ Upstream Changes ] + + * rebase to 2.6.31 final. + + -- Andy Whitcroft Thu, 10 Sep 2009 09:38:10 +0100 + +linux (2.6.31-10.30) karmic; urgency=low + + [ Amit Kucheria ] + + * [Config] Enable CONFIG_USB_DEVICEFS + - LP: #417748 + * [Config] Populate the config-update template a bit more + + [ Andy Whitcroft ] + + * rebase to v2.6.31-rc9 + * [Config] update configs following rebase to v2.6.31-rc9 + * [Config] update ports configs following rebase to v2.6.31-rc9 + + [ Colin Ian King ] + + * SAUCE: wireless: hostap, fix oops due to early probing interrupt + - LP: #254837 + + [ Jerone Young ] + + * [Upstream] ACPI: Add Thinkpad T400 & Thinkpad T500 to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad X200, X200s, X200t to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad X300 & Thinkpad X301 to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad R400 & Thinkpad R500 to OSI(Linux) + white-list + - LP: #281732 + * [Upstream] ACPI: Add Thinkpad W500, W700, & W700ds to OSI(Linux) + white-list + - LP: #281732 + + [ John Johansen ] + + * SAUCE: AppArmor: Fix profile attachment for regexp based profile names + - LP: #419308 + * SAUCE: AppArmor: Return the correct error codes on profile + addition/removal + - LP: #408473 + * SAUCE: AppArmor: Fix OOPS in profile listing, and display full list + - LP: #408454 + * SAUCE: AppArmor: Fix mapping of pux to new internal permission format + - LP: #419222 + * SAUCE: AppArmor: Fix change_profile failure + - LP: #401931 + * SAUCE: AppArmor: Tell git to ignore generated include files + - LP: #419505 + + [ Stefan Bader ] + + * [Upstream] acpi: video: Loosen strictness of video bus detection code + - LP: #333386 + * SAUCE: Remove ov511 driver from ubuntu subdirectory + + [ Tim Gardner ] + + * [Config] Exclude char-modules from non-x86 udeb creation + * SAUCE: Notify the ACPI call chain of AC events + * [Config] CONFIG_SATA_VIA=m + - LP: #403385 + * [Config] Build in all phylib support modules. + * [Config] Don't fail when sub-flavour files are missing + - LP: #423426 + * [Config] Set CONFIG_LSM_MMAP_MIN_ADDR=0 + - LP: #423513 + + [ Upstream ] + + * Rebased against v2.6.31-rc9 + + -- Andy Whitcroft Mon, 07 Sep 2009 11:33:45 +0100 + +linux (2.6.31-9.29) karmic; urgency=low + + [ Leann Ogasawara ] + + * [Upstream] agp/intel: support for new chip variant of IGDNG mobile + - LP: #419993 + * [Config] d-i/modules: Add new char-modules file, initialize with + intel-agp + - LP: #420605 + + [ Upstream ] + + * Rebased against 2.6.31-rc8 plus some inotify regression patches: + up through git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + adda766193ea1cf3137484a9521972d080d0b7af. + + -- Tim Gardner Fri, 28 Aug 2009 06:31:30 -0600 + +linux (2.6.31-8.28) karmic; urgency=low + + [ Ike Panhc ] + + * [Config] Let nic-shared-modules depends on crypto-modules + - LP: #360966 + + [ Leann Ogasawara ] + + * [Upstream] (drop after 2.6.31) drm/i915: increase default latency + constant + - LP: #412492 + + [ Mario Limonciello ] + + * [Upstream]: (drop after 2.6.31) dell-laptop: don't change softblock + status if HW switch is disabled + - LP: #418721 + * [Upstream]: (drop after 2.6.31) compal-laptop: Add support for known + Compal made Dell laptops + * [Upstream]: (drop after 2.6.31) compal-laptop: Replace sysfs support + with rfkill support + + [ Tim Gardner ] + + * [Config] Add acpiphp to virtual sub-flavour + - LP: #364916 + * Drop KSM patch set for now because of instabilities with encrypted swap. + - LP: #418781 + + -- Tim Gardner Wed, 26 Aug 2009 08:14:26 -0600 + +linux (2.6.31-7.27) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] updateconfigs updateportsconfigs after 2.6.31-rc7 rebase + * SAUCE: (drop after 2.6.31) Added KSM from mmotm-2009-08-20-19-18 + Replaces previous ksm patches from 2.6.31-6.25 + * [Config] KSM=y + + [ Upstream ] + + * Rebased against v2.6.31-rc7 + + -- Tim Gardner Sat, 22 Aug 2009 20:32:11 -0600 + +linux (2.6.31-6.26) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_AUFS_BR_RAMFS + - LP: #414738 + * split out debian directory ready for abstraction + * add printdebian target to find branch target + * abstracted debian -- debian/files is not abstracted + * abstracted debian -- packages must be built in debian/ + * abstracted debian -- kernel-wedge needs to work in debian/ + * abstracted debian -- ensure we install the copyright file + * abstracted-debian -- drop the debian directories from headers + * abstracted-debian -- drop the debian directories from headers part 2 + * SAUCE: ubuntu-insert-changes -- follow abstracted debian + * [Upstream] aoe: ensure we initialise the request_queue correctly V2 + - LP: #410198 + + [ Luke Yelavich ] + + * [Config] Ports: Disable CONFIG_CPU_FREQ_DEBUG on powerpc-smp + * [Config] Ports: Re-enable windfarm modules on powerpc64-smp + - LP: #413150 + * [Config] Ports: Build all cpu frequency scaling governors into ports + kernels + * [Config] Ports: Build ext2 and ext3 modules into ports kernels + * [Config] Ports: CONFIG_PACKET=y for all ports kernels + * [Config] Ports: Enable PS3 network driver + + [ Stefan Bader ] + + * abstracted debian -- call $(DEBIAN)/rules using make + + [ Tim Gardner ] + + * [Config] Abstract the debian directory + * SAUCE: Improve error reporting in postinst + - LP: #358564 + + -- Tim Gardner Sun, 16 Aug 2009 20:33:28 -0600 + +linux (2.6.31-6.25) karmic; urgency=low + + [ Andy Whitcroft ] + + * script to generate Ubuntu changes from changelog + * [Config] standardise ANDROID options + * [Config] standardise CONFIG_ATM as module + * [Config] standardise CONFIG_LIB80211 as module + * [Config] disable CONFIG_PRINT_QUOTA_WARNING + * [Config] set CONFIG_CRAMFS as module + * [Config] enable CONFIG_DAB and modules + * [Config] set CONFIG_MAC80211_HWSIM as module + * [Config] set CONFIG_NET_CLS_FLOW as module + * [Config] set CONFIG_NF_CONNTRACK_SANE as module + * [Config] set CONFIG_NF_CT_PROTO_DCCP as module + * [Config] set CONFIG_RTC_DRV_DS1511 as module + * [Config] set CONFIG_RTC_DRV_R9701 as module + * [Config] set CONFIG_RTC_DRV_S35390A as module + * [Config] set CONFIG_TOIM3232_DONGLE as module + * [Config] standardise CONFIG_USB_MIDI_GADGET as module + * [Config] standardise CONFIG_USB_G_PRINTER as module + * [Config] standardise CONFIG_USB_SERIAL_IR as module + * [Config] set CONFIG_USB_SERIAL_IUU as module + * [Config] standardise CONFIG_USB_STORAGE_CYPRESS_ATACB as module + * [Config] standardise CONFIG_USB_STORAGE_ONETOUCH as module + * cleanup remains of dm-loop + * drop thinkpad ec and smapi support + * drop appleir + * [Config] update configs following rebase to v2.6.31-rc6 + * rebase to v2.6.31-rc6 + + [ Hugh Dickins ] + + * SAUCE: ksm patch 1, drop after 2.6.31 + * SAUCE: ksm patch 2, drop after 2.6.31 + * SAUCE: ksm patch 3, drop after 2.6.31 + * SAUCE: ksm patch 4, drop after 2.6.31 + * SAUCE: ksm patch 5, drop after 2.6.31 + * SAUCE: ksm patch 7, drop after 2.6.31 + + [ Izik Eidus ] + + * SAUCE: ksm patch 0, drop after 2.6.31 + * SAUCE: ksm patch 6, drop after 2.6.31 + * SAUCE: ksm patch 8, drop after 2.6.31 + * SAUCE: ksm patch 9, drop after 2.6.31 + + [ Luke Yelavich ] + + * [Config] Ports: Re-add PS3 modules to udebs + + [ Michael Casadevall ] + + * [Config] Update SPARC config and d-i files to reflect what can be built + + [ Tim Gardner ] + + * [Config] Removed armel package support + * [Config] Enabled CONFIG_KSM=y + + [ Upstream Kernel Changes ] + + * Rebased against v2.6.31-rc6 + * ARM: Cleanup: Revert "ARM: Add more cache memory types macros" + * ARM: Cleanup: Revert "Do not use OOB with MLC NAND" + * ARM: Cleanup: Revert "ARM: Make ARM arch aware of ubuntu/ drivers" + * ARM: Cleanup: Revert "ARM: IMX51: Make video capture drivers compile" + * ARM: Cleanup: Revert "ARM: IMX51: Fix isl29003 HWMON driver for i2c + changes" + * ARM: Cleanup: Revert "ARM: IMX51: IPU irq handler deadlock fix" + * ARM: Cleanup: Revert "ARM: IMX51: Babbage 2.5 needs a different system + revision" + * ARM: Cleanup: Revert "ARM: IMX51: Compile-in the IMX51 cpufreq driver + by default" + * ARM: Cleanup: Revert "ARM: IMX51: Enable ZONE_DMA for ARCH_MXC" + * ARM: Cleanup: Revert "ARM: IMX51: Make ARCH_MXC auto-enable + ARCH_MXC_CANONICAL" + * ARM: Cleanup: Revert "ARM: IMX51: Unconditionally disable + CONFIG_GPIOLIB" + * ARM: Cleanup: Revert "ARM: IMX51: Minimal changes for USB to work on + 2.6.31" + * ARM: Cleanup: Revert "ARM: IMX51: Fix plat-mxc/timer.c to handle imx51" + * ARM: Cleanup: Revert "ARM: IMX51: Make it compile." + * ARM: Cleanup: Revert "ARM: IMX51: Clean-up the craziness of including + mxc_uart.h _everywhere_" + * ARM: Cleanup: Revert "ARM: IMX51: Move board-mx51* header files to the + correct location" + * ARM: Cleanup: Revert "ARM: IMX51: Changed from snd_card_new to + snd_card_create" + * ARM: Cleanup: Revert "ARM: IMX51: Fix up merge error in Kconfig" + * ARM: Cleanup: Revert "ARM: IMX51: mxc_timer_init prototype" + * ARM: Cleanup: Revert "ARM: IMX51: Removed the mxc_gpio_port structure." + * ARM: Cleanup: Revert "ARM: IMX51: Added external declaration for + mxc_map_io." + * ARM: Cleanup: Revert "ARM: IMX51: Get to bus_id by calling dev_name." + * ARM: Cleanup: Revert "ARM: IMX51: Get to bus_id by calling dev_name." + * ARM: Cleanup: Revert "ARM: IMX51: snd_soc_machine structure replaced + with snd_soc_card." + * ARM: Cleanup: Revert "ARM: IMX51: codec structure was moved to the card + structure" + * ARM: Cleanup: Revert "ARM: IMX51: Hack to add defines for + DMA_MODE_READ/WRITE/MASK" + * ARM: Cleanup: Revert "ARM: IMX51: Add SoC and board support for + Freescale mx51 platform" + * Driver core: add new device to bus's list before probing + * [Upstream] (drop after 2.6.31) ALSA: hda - Reduce click noise at + power-saving + - LP: #381693, #399750, #380892 + + -- Andy Whitcroft Fri, 14 Aug 2009 11:32:23 +0100 + +linux (2.6.31-5.24) karmic; urgency=low + + [ Amit Kucheria ] + + * ARM: IMX51: Make video capture drivers compile + * [Config] IMX51: Config updates + + [ Andy Whitcroft ] + + * remove leftovers of dm-bbr + + [ Leann Ogasawara ] + + * Add pata_cs5535 to pata-modules + - LP: #318805 + + [ Luke Yelavich ] + + * [Config] CONFIG_PPC64=y for powerpc64-smp + * [Config] Set the maximum number of CPUs to 1024 for powerpc64-smp + * [Config] CONFIG_PPC_PS3=y for powerpc64-smp + * [Config] CONFIG_PPC_MAPLE=y on powerpc64-smp + * [Config] CONFIG_PPC_PASEMI=y on powerpc64-smp + * [Config] CONFIG_CPU_FREQ_PMAC64=y on powerpc64-smp + * [Config] Enable all PS3 drivers in powerpc64-smp + + [ Mario Limonciello ] + + * LIRC -- fix lirc-i2c 2.6.31 compilation + + [ Matthew Garrett ] + + * [Upstream] dell-laptop: Fix rfkill state queries + + [ Tim Gardner ] + + * [Config] Ignore armel ABI and module changes + * [Config] Update configs after rebase against 2.6.31-rc5 + + [ Upstream ] + + * Rebased to 2.6.31-rc5 + + -- Andy Whitcroft Tue, 28 Jul 2009 10:10:09 +0100 + +linux (2.6.31-4.23) karmic; urgency=low + + [ Andy Whitcroft ] + + * AUFS -- update to aufs2-30 20090727 + * [Config] enable AUFS FUSE support + + [ Luke Yelavich ] + + * [Config] CONFIG_JFS_FS=m on sparc + + [ Tim Gardner ] + + * [Upstream] dell-laptop: Fix rfkill state setting. + + -- Andy Whitcroft Mon, 27 Jul 2009 11:11:47 +0100 + +linux (2.6.31-4.22) karmic; urgency=low + + [ Amit Kucheria ] + + * ARM: IMX51: Add SoC and board support for Freescale mx51 platform + * ARM: IMX51: Move board-mx51* header files to the correct location + * ARM: IMX51: Clean-up the craziness of including mxc_uart.h _everywhere_ + * ARM: IMX51: Make it compile. + * ARM: IMX51: Unconditionally disable CONFIG_GPIOLIB + * ARM: IMX51: Make ARCH_MXC auto-enable ARCH_MXC_CANONICAL + * ARM: IMX51: Enable ZONE_DMA for ARCH_MXC + * ARM: IMX51: Compile-in the IMX51 cpufreq driver by default + * ARM: IMX51: Fix isl29003 HWMON driver for i2c changes + * ARM: USB: musb: Refer to musb_otg_timer_func under correct #ifdef + * ARM: staging: udlfb: Add vmalloc.h include + * UBUNTU [Config]: Bring imx51 config upto date with other flavours + + [ Brad Figg ] + + * ARM: IMX51: Hack to add defines for DMA_MODE_READ/WRITE/MASK + * ARM: IMX51: codec structure was moved to the card structure + * ARM: IMX51: snd_soc_machine structure replaced with snd_soc_card. + * ARM: IMX51: Get to bus_id by calling dev_name. + * ARM: IMX51: Get to bus_id by calling dev_name. + * ARM: IMX51: Added external declaration for mxc_map_io. + * ARM: IMX51: Removed the mxc_gpio_port structure. + * ARM: IMX51: mxc_timer_init prototype + * ARM: IMX51: Fix up merge error in Kconfig + * ARM: IMX51: Changed from snd_card_new to snd_card_create + + [ Dinh Nguyen ] + + * ARM: IMX51: Fix plat-mxc/timer.c to handle imx51 + * ARM: IMX51: Minimal changes for USB to work on 2.6.31 + * ARM: IMX51: Babbage 2.5 needs a different system revision + * ARM: IMX51: IPU irq handler deadlock fix + + [ Tim Gardner ] + + * [Config] Enabled CONFIG_CAN=m + - LP: #327243 + * [Config] Enabled CONFIG_SERIAL=m + - LP: #397189 + + -- Tim Gardner Fri, 24 Jul 2009 06:19:10 -0600 + +linux (2.6.31-4.21) karmic; urgency=low + + [ Amit Kucheria ] + + * dm-raid-4-5: Add missing brackets around test_bit() + + [ John Johansen ] + + * AppArmor: Fix change_profile failing lpn401931 + * AppArmor: Fix determination of forced AUDIT messages. + * AppArmor: Fix oops in auditing of the policy interface offset + + -- Andy Whitcroft Thu, 23 Jul 2009 19:18:30 +0100 + +linux (2.6.31-4.20) karmic; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: iscsitarget -- update to SVN revision r214 + * SAUCE: iscsitarget -- renable driver + * [Config] consolidate lpia/lpia and i386/generic configs + * [Config] enable CRYPTO modules for all architectures + * [Config] enable cryptoloop + * [Config] enable various filesystems for armel + * [Config] sync i386 generic and generic-pae + * [Config] add the 386 (486 processors and above) flavour + * [Config] re-set DEFAULT_MMAP_MIN_ADDR + - LP: #399914 + * add genconfigs/genportsconfigs to extract the built configs + * updateconfigs -- alter concatenation order allow easier updates + * intelfb -- INTELFB now conflicts with DRM_I915 + * printchanges -- rebase tree does not have stable tags use changelog + * AppArmor: fix argument size missmatch on 64 bit builds + + [ Ike Panhc ] + + * Ship bnx2x firmware in nic-modules udeb + - LP: #360966 + + [ Jeff Mahoney ] + + * AppArmor: fix build failure on ia64 + + [ John Johansen ] + + * AppArmour: ensure apparmor enabled parmater is off if AppArmor fails to + initialize. + * AppArmour: fix auditing of domain transitions to include target profile + information + * AppArmor: fix C99 violation + * AppArmor: revert reporting of create to write permission. + * SAUCE: Add config option to set a default LSM + * [Config] enable AppArmor by default + * AppArmor: Fix NULL pointer dereference oops in profile attachment. + + [ Keith Packard ] + + * SAUCE: drm/i915: Allow frame buffers up to 4096x4096 on 915/945 class + hardware + - LP: #351756 + + [ Luke Yelavich ] + + * [Config] add .o files found in arch/powerpc/lib to all powerpc kernel + header packages + - LP: #355344 + + [ Michael Casadevall ] + + * [Config] update SPARC config files to allow success build + + [ Scott James Remnant ] + + * SAUCE: trace: add trace_event for the open() syscall + + [ Stefan Bader ] + + * SAUCE: jfs: Fix early release of acl in jfs_get_acl + - LP: #396780 + + [ Tim Gardner ] + + * [Upstream] Fix Soltech TA12 volume hotkeys not sending key release + - LP: #397499 + * [Upstream] USB Option driver - Add USB ID for Novatel MC727/U727/USB727 + refresh + - LP: #365291 + * [Config] SSB/B44 are common across all arches/flavours. + + [ Upstream ] + + * Rebased to 2.6.31-rc4 + + -- Andy Whitcroft Thu, 23 Jul 2009 08:41:39 +0100 + +linux (2.6.31-3.19) karmic; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Config] Disabled NDISWRAPPER" + * ndiswrapper -- fix i386 compilation failures on cmpxchg8b + * AUFS -- export various core functions + * AUFS -- export various core functions -- fixes + * AUFS -- core filesystem + * AUFS -- track changes in v2.6.31 + * [Config] Enable AUFS + * droppped 'iwl3945: do not send scan command if channel count zero' as it + is already upstream but failed to auto-drop on rebase. + + [ Eric Paris ] + + * SAUCE: fsnotify: use def_bool in kconfig instead of letting the user + choose + * SAUCE: inotify: check filename before dropping repeat events + * SAUCE: fsnotify: fix inotify tail drop check with path entries + + -- Andy Whitcroft Tue, 14 Jul 2009 12:52:55 +0100 + +linux (2.6.31-3.18) karmic; urgency=low + + [ Andy Whitcroft ] + + * Revert "Add splice-2.6.23.patch from AUFS to export a symbol needed by + AUFS" + * Revert "Add put_filp.patch from AUFS to export a symbol needed by AUFS" + * Revert "Add sec_perm-2.6.24.patch from AUFS - export + security_inode_permission" + * clear out left over AUFS files and modifications + + [ Luke Yelavich ] + + * [Config] Enable CONFIG_USB_ISP116X_HCD on sparc + * SAUCE: Explicitly include header files to allow apparmor to build on + powerpc + * [Config] Enable CONFIG_BLK_DEV_IDECD on powerpc + + [ Tim Gardner ] + + * [Config] Dropped ubuntu/misc/wireless/acx + * [Config] Disabled NDISWRAPPER until the compile issues are fixed. + + [ Upstream ] + + * Rebased to 2.6.31-rc3 + + -- Andy Whitcroft Fri, 10 Jul 2009 18:59:33 +0100 + +linux (2.6.31-2.17) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_BLK_DEV_CRYPTOLOOP=m for sparc + * compcache -- remove redundant Kconfig entries part 2 + * compcache -- clean up CCFLAGS declarations + * [Config] enable AppArmor + * AppArmor: fix operator precidence issue in as_path_link + + [ John Johansen ] + + * AppArmor security module + * AppArmor: Correct mapping of file permissions. + * AppArmor: Turn auditing of ptrace on + + [ Luke Yelavich ] + + * [Config] disable CONFIG_DM_RAID45 on powerpc + + -- Andy Whitcroft Fri, 10 Jul 2009 15:02:05 +0100 + +linux (2.6.31-2.16) karmic; urgency=low + + [ Andy Whitcroft ] + + * compcache -- remove redundant Kconfig entries + added ignore and ignore.modules for all arches since the compcache update + changes the modules names as well as some compcache ABI values. + + [ Manoj Iyer ] + + * SAUCE: updated dm-raid45 module version to 2009.04.24 (2.6.30-rc3) + * SAUCE: update compcache version to 0.5.3 + + [ Tim Gardner ] + + * [Config]: Fix sparc FTBS by adding ignore.modules + + -- Tim Gardner Mon, 06 Jul 2009 13:35:29 -0600 + +linux (2.6.31-2.15) karmic; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: default ATI Radeon KMS to off until userspace catches up + * [Config] Update configs following rebase to 2.6.31-rc2 + * [Config] update ports configs following update to 2.6.31-rc2 + + [ Luke Yelavich ] + + * [Config] powerpc - Disable CONFIG_RDS + + [ Matt Zimmerman ] + + * Rename linux-doc-PKGVER to linux-doc and clean up its description + - LP: #382115 + + [ Upstream Kernel Changes ] + + * rebased to mainline 2.6.31-rc2 + + -- Andy Whitcroft Sat, 04 Jul 2009 17:39:13 +0100 + +linux (2.6.31-1.14) karmic; urgency=low + + [ Andy Whitcroft ] + + * update ndiswrapper to 1.55 + * remove leftovers of gfs + * [Config] powerpc: enable CONFIG_PPC_DISABLE_WERROR + + [ Luke Yelavich ] + + * [Config] re-enable and build the ide-pmac driver into powerpc kernels + * [Config] Build the ServerWorks Frodo / Apple K2 SATA driver into the + kernel + + [ Manoj Iyer ] + + * Remove snd-bt-sco ubuntu driver + + [ Michael Casadevall ] + + * [Config] updates ia64 config and d-i folders to allow succesful build + * [Config] Update powerpc and sparc for 2.6.31 + + [ Upstream Kernel Changes ] + + * intel-iommu: fix Identity Mapping to be arch independent + - LP: #384695 + * ACPI: video: prevent NULL deref in acpi_get_pci_dev() + + -- Andy Whitcroft Tue, 30 Jun 2009 17:47:32 +0100 + +linux (2.6.31-1.13) karmic; urgency=low + + [ Andy Whitcroft ] + + * REBASE: rebased to mainline 2.6.31-rc1 + - "UBUNTU: SAUCE: UHCI USB quirk for resume" + no longer applies, using deprecated interfaces, LPIA only, dropped + - "UBUNTU: SAUCE: Mask off garbage in Dell WMI scan code data" + changes now upstream, dropped + * [Config] Update configs following rebase to 2.6.31-rc1 + * [Config] update ports configs following update to 2.6.31-rc1 + + * [Config] disable broken staging driver CONFIG_STLC45XX + * SAUCE: fix compcache to use updates accessors + * [Config] disable staging driver CONFIG_VT6655 + * SAUCE: fix DRDB to use updates accessors + * [Disable] ndiswrapper needs update + * [Disable] LIRC I2C needs update + * [Disable] CONFIG_LENOVO_SL_LAPTOP needs update + * [Config] disable I2C_DESIGNWARE does not compile + * [Config] disable CONFIG_TLSUP for lpia + * [Config] disable CONFIG_FB_UDL for arm + * SAUCE: disable adding scsi headers to linux-libc-dev + + [ Mario Limonciello ] + + * SAUCE: Add LIRC drivers + + -- Andy Whitcroft Thu, 25 Jun 2009 12:06:22 +0100 + +linux (2.6.30-10.12) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] split out the ports configs into their own family + * [Config] update configs following introduction of ports family + + [ Upstream Kernel Changes ] + + * Revert "Rename linux-doc-PKGVER to linux-doc and clean up its + description". Fixes linux-doc package name conflicts for now. + - LP: #382115 + + -- Tim Gardner Mon, 22 Jun 2009 09:17:14 -0600 + +linux (2.6.30-10.11) karmic; urgency=low + + [ Amit Kucheria ] + + * [Config] Comment splitconfig.pl and misc cleanup + * [Config] Rename all configs to the new naming scheme + * [Config] Splitconfig rework + * [Config] Rename scripts/misc/oldconfig to kernelconfig + * [Config] Fix build system for new config split + * [Config] Run updateconfigs after the splitconfig rework + + [ Andy Whitcroft ] + + * Revert "SAUCE: Default to i915.modeset=0 if CONFIG_DRM_I915_KMS=y" + * [Config] standardise CONFIG_STAGING=y + * [Config] standardise CONFIG_RD_LZMA=y + * [Config] CONFIG_PCI_IOV=y + * [Config] CONFIG_PCI_STUB=m + * [Config] merge kernel configs more agressively + + [ Colin Watson ] + + * [Config] Run kernel-wedge in $(builddir) rather than at the top level + * [Config] Add support for including firmware in udebs + * [Config] Ship bnx2 firmware in nic-modules udeb + - LP: #384861 + + [ Luke Yelavich ] + + * [Config] ports - Import of ports architectures into kernel packaging + infrastructure + * [Config] ports - Do not update ports kernel configurations by default + * [Config] ports - Disable ABI checking for ports architectures + * [Config] ports - Build drivers in ubuntu sub-directory on powerpc + * [Config] ports - Add control.d/vars.* files for ports architectures + * [Config] ports - Add ports architectures for linux-libc-dev + * [Config] ports - Create powerpc specific message-modules and + block-modules udebs + * [Config] ports - Add configuration files for ports architectures + + [ Manoj Iyer ] + + * [Config] Enable CONFIG_BLK_DEV_AEC62XX=m for amd64 and i386 + - LP: #329864 + + [ Michael Casadevall ] + + * [Config] ports - Fix compression of kernels + + [ Stefan Bader ] + + * [Upstream] mmc: prevent dangling block device from accessing stale + queues + - LP: #383668 + + [ Tim Gardner ] + + * [Config] Recommend grub-pc in linux-image + - LP: #385741 + * [Config] Implement i386 generic and generic-pae flavours + * [Config] ports - Add control info after integrating ports arches + * [Config] Removed auto-generated files from git + * [Config] Added netxen_nic to nic-modules + - LP: #389603 + + [ Matt Zimmerman ] + + * Rename linux-doc-PKGVER to linux-doc and clean up its description + - LP: #382115 + + -- Tim Gardner Mon, 15 Jun 2009 14:38:26 -0600 + +linux (2.6.30-9.10) karmic; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_SECURITY_TOMOYO=y (amd64, i386, lpia) + * [Config] CONFIG_KEXEC_JUMP=y (amd64, lpia) + * [Config] CONFIG_LENOVO_SL_LAPTOP=m (amd64, lpia) + * [Config] CONFIG_POHMELFS_CRYPTO=y (i386, amd64) + * [Config] CONFIG_SERIAL_MAX3100=m (i386, amd64, lpia) + * [Config] CONFIG_VIDEO_GO7007=m (amd64, i386) + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30 final + + -- Andy Whitcroft Fri, 05 Jun 2009 11:42:53 +0100 + +linux (2.6.30-8.9) karmic; urgency=low + + [ Andy Whitcroft ] + + * Config update removed the following options: + CONFIG_EDAC_AMD8111=m + CONFIG_EDAC_AMD8131=m + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc8 + + -- Andy Whitcroft Wed, 03 Jun 2009 09:21:13 +0100 + +linux (2.6.30-7.8) karmic; urgency=low + + [ Andy Whitcroft ] + + * Enabled NEW configration options: + Paravirtualization layer for spinlocks (PARAVIRT_SPINLOCKS) [N/y/?] Y + Cisco FNIC Driver (FCOE_FNIC) [N/m/y/?] M + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc7 + + -- Andy Whitcroft Sat, 23 May 2009 23:47:24 +0100 + +linux (2.6.30-6.7) karmic; urgency=low + + [ Andy Whitcroft ] + + * Dropped: UBUNTU: SAUCE: input: Blacklist digitizers from joydev.c (now + upstream) + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc6 + + -- Andy Whitcroft Mon, 18 May 2009 18:05:54 +0100 + +linux (2.6.30-5.6) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] Enable Keyspan USB serial device firmware in kernel module + - LP: #334285 + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc5 + + -- Tim Gardner Mon, 11 May 2009 12:02:16 -0600 + +linux (2.6.30-4.5) karmic; urgency=low + + [ Colin Watson ] + + * Build-Conflict with findutils (= 4.4.1-1ubuntu1), to avoid + /usr/include/asm/* going missing + - LP: #373214 + + -- Stefan Bader Fri, 08 May 2009 11:09:08 +0200 + +linux (2.6.30-3.4) karmic; urgency=low + + [ Kees Cook ] + + * SAUCE: [x86] implement cs-limit nx-emulation for ia32 + - LP: #369978 + + [ Stefan Bader ] + + * SAUCE: input: Blacklist digitizers from joydev.c + - LP: #300143 + + -- Tim Gardner Fri, 01 May 2009 14:00:42 -0600 + +linux (2.6.30-2.3) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] Enabled CC_STACKPROTECTOR=y for all x86en + - LP: #369152 + * SAUCE: Default to i915_modeset=0 if CONFIG_DRM_I915_KMS=y + * [Config] CONFIG_DRM_I915_KMS=y + * [Config] Set CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR to appropriate ARCH + minimums + + [ Upstream Kernel Changes ] + + * rebased to 2.6.30-rc4 + + -- Tim Gardner Thu, 30 Apr 2009 09:17:05 -0600 + +linux (2.6.30-1.2) karmic; urgency=low + + [ Tim Gardner ] + + * [Config] armel: disable staging drivers, fixes FTBS + * [Config] armel imx51: Disable CONFIG_MTD_NAND_MXC, fixes FTBS + + [ Upstream Kernel Changes ] + + * mpt2sas: Change reset_type enum to avoid namespace collision. + Submitted upstream. + + -- Tim Gardner Tue, 28 Apr 2009 16:54:41 -0600 + +linux (2.6.30-1.1) karmic; urgency=low + + * Initial release after rebasing against v2.6.30-rc3 + + -- Tim Gardner Thu, 12 Mar 2009 19:16:07 -0600 --- linux-3.13.0.orig/debian/cloud-tools/hv_get_dhcp_info +++ linux-3.13.0/debian/cloud-tools/hv_get_dhcp_info @@ -0,0 +1,55 @@ +#!/bin/bash + +# This example script retrieves the DHCP state of a given interface. +# In the interest of keeping the KVP daemon code free of distro specific +# information; the kvp daemon code invokes this external script to gather +# DHCP setting for the specific interface. +# +# Input: Name of the interface +# +# Output: The script prints the string "Enabled" to stdout to indicate +# that DHCP is enabled on the interface. If DHCP is not enabled, +# the script prints the string "Disabled" to stdout. +# +# Each Distro is expected to implement this script in a distro specific +# fashion. + +#set -x + +IF_FILE="/etc/network/interfaces" +NMCMD="nmcli" + +function checknetworkmanager { + #Assumes if $NMCMD exists, inteface exists and interface is not + # in $IF_FILE then dhcp is being used by NM + if hash $NMCMD >/dev/null 2>&1 ; then + if $NMCMD dev status |grep -q $1 ; then + echo "Enabled" + else + echo "Disabled" + fi + else + #Give up + echo "Disabled" + fi +} + +if [ -z $1 ] ; then echo "Disabled"; exit; fi + +if [ -e $IF_FILE ]; then + if grep -v -e "^#" $IF_FILE|grep -q $1 ; then + #interface exists so + if grep -q -e $1\.\*dhcp $IF_FILE; then + echo "Enabled"; exit; + else + echo "Disabled"; exit; + fi + else + checknetworkmanager $1 + exit + fi +else + checknetworkmanager $1 + exit +fi + --- linux-3.13.0.orig/debian/cloud-tools/hv_get_dns_info +++ linux-3.13.0/debian/cloud-tools/hv_get_dns_info @@ -0,0 +1,13 @@ +#!/bin/bash + +# This example script parses /etc/resolv.conf to retrive DNS information. +# In the interest of keeping the KVP daemon code free of distro specific +# information; the kvp daemon code invokes this external script to gather +# DNS information. +# This script is expected to print the nameserver values to stdout. +# Each Distro is expected to implement this script in a distro specific +# fashion. For instance on Distros that ship with Network Manager enabled, +# this script can be based on the Network Manager APIs for retrieving DNS +# entries. + +cat /etc/resolv.conf 2>/dev/null | awk '/^nameserver/ { print $2 }' --- linux-3.13.0.orig/debian/cloud-tools/hv_set_ifconfig +++ linux-3.13.0/debian/cloud-tools/hv_set_ifconfig @@ -0,0 +1,242 @@ +#! /usr/bin/env python + +# set interfaces in hv_kvp_daemon style +import fileinput +import sys +import errno +import os +import shutil +import tempfile +import subprocess + +if_filename="/etc/network/interfaces" + +'''Get quiet''' +sys.stdout = open(os.devnull, 'w') +sys.stderr = open(os.devnull, 'w') + +try: + if_file=open(if_filename,"r+") +except IOError as e: + exit(e.errno) +else: + if_file.close() + + +def kvp_dict(file): + return dict(line.strip().split("=") for line in file) + + +#setting the hwaddress to something azure is not expecting is fatal networking + +if len(sys.argv) != 2 : + exit(errno.EINVAL) + +kvp=dict(line.strip().split("=") for line in fileinput.input()) + +if not "HWADDR" in kvp : + exit(errno.EPROTO) + +if not "DEVICE" in kvp : + exit(1) + +output=[] +basename=kvp["DEVICE"] + +if "DHCP" in kvp and kvp["DHCP"]=="yes" : + output += ["auto " + basename] + output += ["iface " + basename + " inet dhcp"] + output += [""] +else: + ''' Matchup the interface specific lines ''' + + '''DNS entries will go with the first interface + and there can be a max of three''' + autolist=[] + dns=[] + if "DNS1" in kvp : + dns+=[kvp["DNS1"]] + if "DNS2" in kvp : + dns+=[kvp["DNS2"]] + if "DNS3" in kvp : + dns+=[kvp["DNS3"]] + + + ''' + No real max for the number of interface + aliases ... + only required is the address (but mate everything up that comes in. ''' + + '''ipv4 first''' + + v4names=[name for name in kvp.keys() if name.startswith("IPADDR")] + v4names.sort() + + v6names=[name for name in kvp.keys() if name.startswith("IPV6ADDR")] + v6names.sort() + + '''IPV6 requires a netmask''' + '''If an ipv6 exists, you'll want to turn off /proc/sys/net/ipv6/conf/all/autoconf with + up echo 0 > /proc/sys/net/ipv6/conf/all/autoconf''' + + '''Counter needs to increment as soon as any interface is set.''' + + + if_count=0 + + for v4 in v4names: + ifname=basename + suffix="" + if if_count : + ifname+=":" + str(if_count) + suffix="_"+str(if_count) + if not ifname in autolist: + autolist += [ifname] + output += [ "iface " + ifname + " inet static"] + output += [ "\t" + "address " + kvp[v4]] + if "NETMASK"+suffix in kvp.keys(): + output += ["\tnetmask " + kvp["NETMASK"+suffix]] + if "GATEWAY"+suffix in kvp.keys(): + output += ["\tgateway " + kvp["GATEWAY"+suffix]] + if not if_count : + output += ["\tdns-nameservers " + ' '.join(dns)] + output += [""] + if_count+=1 + + if6_count=0 + if6_used=0 + for v6 in v6names: + ifname=basename + suffix="" + if if6_used : + ifname+=":" + str(if6_used) + if if6_count : + suffix="_" + str(if6_count) + if not ifname in autolist: + autolist += [ifname] + if "IPV6NETMASK"+suffix in kvp.keys(): + output += [ "iface " + ifname + " inet6 static"] + output += [ "\taddress " + kvp[v6]] + output += [ "\tnetmask " + kvp["IPV6NETMASK"+suffix]] + if "IPV6_DEFAULTGW"+suffix in kvp.keys(): + output += [ "\tgateway " + kvp["IPV6_DEFAULTGW"+suffix] ] + if not if_count : + output += ["\tdns-nameservers " + ' '.join(dns)] + output += [""] + if_count += 1 + if6_used += 1 + if6_count += 1 + + output = ["auto "+" ".join(autolist)] + output +print "===================================" +print output +print "===================================" + + +''' Time to clean out the existing interface file''' + +# Markers. +start_mark = "# The following stanza(s) added by hv_set_ifconfig" +end_mark = "#End of hv_set_ifconfig stanzas" + +f=open(if_filename,"r") +flines=f.readlines() +f.close() +newfile=[] +pitchstanza=0 +inastanza=0 +stanza=[] +prev_line=None +for line in flines: + if line.startswith("auto"): + if inastanza: + if not pitchstanza: + newfile.extend(stanza) + stanza=[] + inastanza=0 + newline="" + autoline=line.strip().split(" ") + for word in autoline: + if (not word == basename) and (not word.startswith(basename+":")): + newline+=word + " " + newline = newline.strip() + if not newline == "auto": + newfile += [newline.strip()] + elif line.startswith(("iface","mapping","source")): + '''Read a stanza''' + '''A Stanza can also start with allow- ie allow-hotplug''' + if inastanza: + if not pitchstanza: + newfile.extend(stanza) + stanza=[] + inastanza=1 + pitchstanza=0 + autoline=line.strip().split(" ") + for word in autoline: + if (word == basename) or (word.startswith(basename+":")): + pitchstanza=1 + if not pitchstanza: + stanza+=[line.strip()] + elif line.strip() in (start_mark, end_mark): + if inastanza: + if not pitchstanza: + newfile.extend(stanza) + stanza=[] + inastanza = 0 + pitchstanza = 0 + # Deduplicate markers. + if line != prev_line: + newfile += [line.strip()] + else: + if inastanza: + if not pitchstanza: + stanza+=[line.strip()] + else: + if not pitchstanza: + newfile += [line.strip()] + prev_line=line + + + +def emit(line): + print(line) + os.write(fd, line + "\n") + +# Insert the new output at the end and inside the existing markers if found. +emitted = False +fd, path = tempfile.mkstemp() +for line in newfile: + if line == end_mark: + emit("\n".join(output)) + emitted = True + emit(line) +if not emitted: + emit(start_mark) + emit("\n".join(output)) + emit(end_mark) +os.close(fd) + +shutil.copy(path,if_filename) +os.chmod(if_filename,0644) +#print "TMPFILE is at: " + path +#print "Copied file is at: " + if_filename + + +try: + retcode = subprocess.call("ifdown "+basename , shell=True) + if retcode < 0: + print >>sys.stderr, "Child was terminated by signal", -retcode + else: + print >>sys.stderr, "Child returned", retcode +except OSError as e: + print >>sys.stderr, "Execution failed:", e + +try: + retcode = subprocess.call("ifup "+basename , shell=True) + if retcode < 0: + print >>sys.stderr, "Child was terminated by signal", -retcode + else: + print >>sys.stderr, "Child returned", retcode +except OSError as e: + print >>sys.stderr, "Execution failed:", e + + --- linux-3.13.0.orig/debian/commit-templates/bumpabi +++ linux-3.13.0/debian/commit-templates/bumpabi @@ -0,0 +1,3 @@ +UBUNTU: Bump ABI + +Ignore: yes --- linux-3.13.0.orig/debian/commit-templates/config-updates +++ linux-3.13.0/debian/commit-templates/config-updates @@ -0,0 +1,15 @@ +# +# This template is used for commit messages that don't need to +# show up in debian/changelog. Administrative stuff like config +# updates, ABI bumps, etc. Setting 'Ignore: yes' prevents +# 'debian/rules insertchanges' from inserting this commit meesage +# as a changelog entry. +# +# Please give a one-line description of the config change followed +# by a detailed explanation if necessary + +UBUNTU: [Config] XXXX + +# BugLink: http://bugs.launchpad.net/bugs/ +# Ignore: yes +# Other text below here. --- linux-3.13.0.orig/debian/commit-templates/external-driver +++ linux-3.13.0/debian/commit-templates/external-driver @@ -0,0 +1,20 @@ +# Ubuntu external driver commit. +# +# NOTE: This gets reformatted for README.Ubuntu-External-Drivers and +# debian/changelog. +# +# This is only needed when a driver is added, updated or removed. It is +# not needed when patches or fixes are applied to the driver. If the +# driver is being removed, add the line: +# +# Removing: yes +# +# to the commit, and you can remove all other tags (except UBUNTU:). +# +UBUNTU: + +ExternalDriver: +Description: +Url: +Mask: +Version: --- linux-3.13.0.orig/debian/commit-templates/missing-modules +++ linux-3.13.0/debian/commit-templates/missing-modules @@ -0,0 +1,3 @@ +UBUNTU: build/modules: Add modules that have intentionally gone missing + +Ignore: yes --- linux-3.13.0.orig/debian/commit-templates/newrelease +++ linux-3.13.0/debian/commit-templates/newrelease @@ -0,0 +1,3 @@ +UBUNTU: Start new release + +Ignore: yes --- linux-3.13.0.orig/debian/commit-templates/sauce-patch +++ linux-3.13.0/debian/commit-templates/sauce-patch @@ -0,0 +1,40 @@ +# Ubuntu commit template. +# +# NOTE: This gets reformatted for debian/changelog +# +# +# SAUCE refers to the fact that this patch might not go upstream, but we need to +# carry it to successive releases. In most cases you DONOT want to use this +# template. +# +# An example of a SAUCE patch is the ACPI DSDT-in-initramfs patch which has been +# refused upstream, but still provides useful functionality to users with broken +# BIOSes. +# +#------------------------------------------------------------------------- +# +# The initial UBUNTU is a flag that this is an Ubuntu commit. It will be +# referenced to the Author in the debian/changelog entry. +# +# The text following is the short message that will be placed in the +# changelog. Extra text on the following lines will be ignored, but left +# in the git commit. Lines with # will be ignored in the commit. +# +# OriginalAuthor allows for alternate attribution. +# +# OriginalLocation allows for a URL or description of where the patch came +# from. +# +# BugLink is a URL to a Malone bug. +# +# Ignore: yes will keep this commit from showing up in the changelog. +# +UBUNTU: SAUCE: + + + +# OriginalAuthor: +# OriginalLocation: +# BugLink: http://bugs.launchpad.net/bugs/ +# Ignore: yes +# Other text below here. --- linux-3.13.0.orig/debian/commit-templates/upstream-patch +++ linux-3.13.0/debian/commit-templates/upstream-patch @@ -0,0 +1,27 @@ +# Ubuntu commit template. +# +# NOTE: This gets reformatted for debian/changelog +# +# The initial UBUNTU is a flag that this is an Ubuntu commit. It will be +# referenced to the Author in the debian/changelog entry. +# +# The text following is the short message that will be placed in the +# changelog. Extra text on the following lines will be ignored, but left +# in the git commit. Lines with # will be ignored in the commit. +# +# OriginalAuthor allows for alternate attribution. +# +# OriginalLocation allows for a URL or description of where the patch came +# from. +# +# BugLink is a URL to a Malone bug. +# +# Ignore: yes will keep this commit from showing up in the changelog. +# +UBUNTU: [Upstream] + +# OriginalAuthor: +# OriginalLocation: +# BugLink: http://bugs.launchpad.net/bugs/ +# Ignore: yes +# Other text below here. --- linux-3.13.0.orig/debian/compat +++ linux-3.13.0/debian/compat @@ -0,0 +1 @@ +5 --- linux-3.13.0.orig/debian/control +++ linux-3.13.0/debian/control @@ -0,0 +1,1354 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.9.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], libelf-dev, libnewt-dev, libiberty-dev, rsync, libdw-dev, libpci-dev, dpkg (>= 1.16.0~ubuntu4), pkg-config, flex, bison, libunwind8-dev, openssl, libaudit-dev, bc, python-dev, gawk, device-tree-compiler [powerpc], u-boot-tools [powerpc], libc6-dev-ppc64 [powerpc] +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-trusty.git +XS-Testsuite: autopkgtest +#XS-Testsuite-Depends: gcc-4.7 binutils + +Package: linux-source-3.13.0 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-3 +Depends: ${misc:Depends}, binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version 3.13.0 with Ubuntu patches + This package provides the source code for the Linux kernel version + 3.13.0. + . + This package is mainly meant for other packages to use, in order to build + custom flavours. + . + If you wish to use this package to create a custom Linux kernel, then it + is suggested that you investigate the package kernel-package, which has + been designed to ease the task of creating kernel image packages. + . + If you are simply trying to build third-party modules for your kernel, + you do not want this package. Install the appropriate linux-headers + package instead. + +Package: linux-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Conflicts: linux-doc-3 +Replaces: linux-doc-3 +Description: Linux kernel specific documentation for version 3.13.0 + This package provides the various documents in the 3.13.0 kernel + Documentation/ subdirectory. These document kernel subsystems, APIs, device + drivers, and so on. See + /usr/share/doc/linux-doc/00-INDEX for a list of what is + contained in each file. + +Package: linux-headers-3.13.0-46 +Architecture: all +Multi-Arch: foreign +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Description: Header files related to Linux kernel version 3.13.0 + This package provides kernel header files for version 3.13.0, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 armhf arm64 x32 powerpc ppc64el +Depends: ${misc:Depends} +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), linux-kernel-headers +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), linux-kernel-headers, libdrm-dev +Provides: linux-kernel-headers +Multi-Arch: same +Description: Linux Kernel Headers for development + This package provides headers from the Linux kernel. These headers + are used by the installed headers for GNU glibc and other system + libraries. They are NOT meant to be used to build third-party modules for + your kernel. Use linux-headers-* packages for that. + +Package: linux-tools-common +Architecture: all +Multi-Arch: foreign +Section: kernel +Priority: optional +Depends: ${misc:Depends} +Replaces: linux-tools (<= 2.6.32-16.25) +Description: Linux kernel version specific tools for version 3.13.0 + This package provides the architecture independent parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version PGKVER. + +Package: linux-tools-3.13.0-46 +Architecture: i386 amd64 armhf arm64 powerpc ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + You probabally want to install linux-tools-3.13.0-46-. + +Package: linux-cloud-tools-common +Architecture: all +Multi-Arch: foreign +Section: kernel +Priority: optional +Breaks: linux-tools-common (<< 3.13.0-8.28), hv-kvp-daemon-init (<< 3.13) +Replaces: linux-tools-common (<< 3.13.0-8.28), hv-kvp-daemon-init (<< 3.13) +Depends: ${misc:Depends} +Description: Linux kernel version specific cloud tools for version 3.13.0 + This package provides the architecture independent parts for kernel + version locked tools for cloud tools for version PGKVER. + +Package: linux-cloud-tools-3.13.0-46 +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-cloud-tools-common +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud tools for version 3.13.0-46 on + 64 bit x86. + You probabally want to install linux-cloud-tools-3.13.0-46-. + + +Package: linux-image-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc [i386 amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [i386 amd64 x32] | grub [i386 amd64 x32] | lilo (>= 19.1) [i386 amd64 x32] | flash-kernel [armhf arm64] | grub-ieee1275 [ppc64el] +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-generic +Description: Linux kernel image for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-generic, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-generic-dbgsym +Architecture: i386 amd64 armhf arm64 ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-generic +XC-Package-Type: udeb +Section: debian-installer +Architecture: i386 amd64 armhf arm64 ppc64el +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-generic-lpae +Architecture: armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel [armhf] +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-generic-lpae +Description: Linux kernel image for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-generic-lpae +Architecture: armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-generic-lpae, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-generic-lpae-dbgsym +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-generic-lpae +XC-Package-Type: udeb +Section: debian-installer +Architecture: armhf +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc [i386 amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [i386 amd64 x32] | grub [i386 amd64 x32] | lilo (>= 19.1) [i386 amd64 x32] | flash-kernel [armhf arm64] +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-lowlatency +Description: Linux kernel image for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Lowlatency processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-lowlatency meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-lowlatency, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Lowlatency processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-lowlatency meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-lowlatency-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-lowlatency +XC-Package-Type: udeb +Section: debian-installer +Architecture: i386 amd64 +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-ieee1275 +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc64-emb +Description: Linux kernel image for version 3.13.0 on 64-bit PowerPC SMP Book3E + This package contains the Linux kernel image for version 3.13.0 on + 64-bit PowerPC SMP Book3E. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP Book3E processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-emb meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc64-emb, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64-bit PowerPC SMP Book3E + This package contains the Linux kernel extra modules for version 3.13.0 on + 64-bit PowerPC SMP Book3E. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP Book3E processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-emb meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64-bit PowerPC SMP Book3E + This package provides kernel header files for version 3.13.0 on + 64-bit PowerPC SMP Book3E. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc64-emb-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64-bit PowerPC SMP Book3E + This package provides a kernel debug image for version 3.13.0 on + 64-bit PowerPC SMP Book3E. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc64-emb +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc64-smp +Description: Linux kernel image for version 3.13.0 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 3.13.0 on + 64-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc64-smp, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64-bit PowerPC SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 64-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64-bit PowerPC SMP + This package provides kernel header files for version 3.13.0 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc64-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64-bit PowerPC SMP + This package provides a kernel debug image for version 3.13.0 on + 64-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc64-smp +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-ieee1275 +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc-e500 +Description: Linux kernel image for version 3.13.0 on 32-bit Freescale Power e500v1 and e500v2 + This package contains the Linux kernel image for version 3.13.0 on + 32-bit Freescale Power e500v1 and e500v2. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit Freescale Power e500v1 and e500v2 processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-e500 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc-e500, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 32-bit Freescale Power e500v1 and e500v2 + This package contains the Linux kernel extra modules for version 3.13.0 on + 32-bit Freescale Power e500v1 and e500v2. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit Freescale Power e500v1 and e500v2 processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-e500 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 32-bit Freescale Power e500v1 and e500v2 + This package provides kernel header files for version 3.13.0 on + 32-bit Freescale Power e500v1 and e500v2. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc-e500-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 32-bit Freescale Power e500v1 and e500v2 + This package provides a kernel debug image for version 3.13.0 on + 32-bit Freescale Power e500v1 and e500v2. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc-e500 +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-ieee1275 +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc-e500mc +Description: Linux kernel image for version 3.13.0 on 32-bit Freescale Power e500mc + This package contains the Linux kernel image for version 3.13.0 on + 32-bit Freescale Power e500mc. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit Freescale Power e500mc processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-e500mc meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc-e500mc, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 32-bit Freescale Power e500mc + This package contains the Linux kernel extra modules for version 3.13.0 on + 32-bit Freescale Power e500mc. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit Freescale Power e500mc processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-e500mc meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 32-bit Freescale Power e500mc + This package provides kernel header files for version 3.13.0 on + 32-bit Freescale Power e500mc. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc-e500mc-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 32-bit Freescale Power e500mc + This package provides a kernel debug image for version 3.13.0 on + 32-bit Freescale Power e500mc. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc-e500mc +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc-smp +Description: Linux kernel image for version 3.13.0 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 3.13.0 on + 32-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc-smp, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 32-bit PowerPC SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 32-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 32-bit PowerPC SMP + This package provides kernel header files for version 3.13.0 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 32-bit PowerPC SMP + This package provides a kernel debug image for version 3.13.0 on + 32-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc-smp +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: kernel-image-3.13.0-46-generic-di +Package-Type: udeb +Provides: kernel-image, efi-modules, ext3-modules, ext4-modules +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: extra +Description: Linux kernel binary image for the Debian installer + This package contains the kernel image for the Debian installer + boot images. It does _not_ provide a usable kernel for your full + Debian system. + +Package: nic-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: nic-modules +Depends: kernel-image-3.13.0-46-generic-di, nic-shared-modules-3.13.0-46-generic-di, virtio-modules-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: Network interface support + +Package: nic-shared-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: nic-shared-modules +Depends: kernel-image-3.13.0-46-generic-di, crypto-modules-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: nic shared modules + This package contains modules which support nic modules + +Package: serial-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: serial-modules +Depends: kernel-image-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: Serial port support + +Package: ppp-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: ppp-modules +Depends: kernel-image-3.13.0-46-generic-di, nic-shared-modules-3.13.0-46-generic-di, serial-modules-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: PPP (serial port) networking support + +Package: pata-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: pata-modules +Depends: kernel-image-3.13.0-46-generic-di, storage-core-modules-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: PATA support modules + +Package: firewire-core-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: firewire-core-modules +Depends: kernel-image-3.13.0-46-generic-di, storage-core-modules-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: Firewire (IEEE-1394) Support + +Package: scsi-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: scsi-modules +Depends: kernel-image-3.13.0-46-generic-di, storage-core-modules-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: SCSI storage support + +Package: plip-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: plip-modules +Depends: kernel-image-3.13.0-46-generic-di, nic-shared-modules-3.13.0-46-generic-di, parport-modules-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: PLIP (parallel port) networking support + +Package: floppy-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: floppy-modules +Depends: kernel-image-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: Floppy driver support + +Package: fat-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: fat-modules +Depends: kernel-image-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: FAT filesystem support + This includes Windows FAT and VFAT support. + +Package: nfs-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: nfs-modules +Depends: kernel-image-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: NFS filesystem drivers + Includes the NFS client driver, and supporting modules. + +Package: md-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: md-modules, crypto-dm-modules +Depends: kernel-image-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: Multi-device support (raid, device-mapper, lvm) + +Package: multipath-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: multipath-modules +Depends: kernel-image-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: extra +Description: DM-Multipath support + This package contains modules for device-mapper multipath support. + +Package: usb-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: usb-modules +Depends: kernel-image-3.13.0-46-generic-di, storage-core-modules-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: Core USB support + +Package: pcmcia-storage-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: pcmcia-storage-modules +Depends: kernel-image-3.13.0-46-generic-di, scsi-modules-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: PCMCIA storage support + +Package: fb-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: fb-modules +Depends: kernel-image-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: Framebuffer modules + +Package: input-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: input-modules +Depends: kernel-image-3.13.0-46-generic-di, usb-modules-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: Support for various input methods + +Package: mouse-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: mouse-modules +Depends: kernel-image-3.13.0-46-generic-di, input-modules-3.13.0-46-generic-di, usb-modules-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: extra +Description: Mouse support + This package contains mouse drivers for the Linux kernel. + +Package: irda-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: irda-modules +Depends: kernel-image-3.13.0-46-generic-di, nic-shared-modules-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: Support for Infrared protocols + +Package: parport-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: parport-modules +Depends: kernel-image-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: Parallel port support + +Package: nic-pcmcia-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: nic-pcmcia-modules +Depends: kernel-image-3.13.0-46-generic-di, nic-shared-modules-3.13.0-46-generic-di, nic-modules-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: PCMCIA network interface support + +Package: pcmcia-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: pcmcia-modules +Depends: kernel-image-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: PCMCIA Modules + +Package: nic-usb-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: nic-usb-modules +Depends: kernel-image-3.13.0-46-generic-di, nic-shared-modules-3.13.0-46-generic-di, usb-modules-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: USB network interface support + +Package: sata-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: sata-modules +Depends: kernel-image-3.13.0-46-generic-di, storage-core-modules-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: SATA storage support + +Package: crypto-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: crypto-modules +Depends: kernel-image-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: extra +Description: crypto modules + This package contains crypto modules. + +Package: squashfs-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: squashfs-modules +Depends: kernel-image-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: extra +Description: squashfs modules + This package contains squashfs modules. + +Package: speakup-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: speakup-modules +Depends: kernel-image-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: extra +Description: speakup modules + This package contains speakup modules. + +Package: virtio-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: virtio-modules +Depends: kernel-image-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: VirtIO Modules + Includes modules for VirtIO (virtual machine, generally kvm guests) + +Package: fs-core-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: fs-core-modules, ext2-modules, jfs-modules, reiserfs-modules, xfs-modules +Depends: kernel-image-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: Base filesystem modules + This includes jfs, reiserfs and xfs. + +Package: fs-secondary-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: fs-secondary-modules, btrfs-modules, ntfs-modules, hfs-modules +Depends: kernel-image-3.13.0-46-generic-di, fat-modules-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: Extra filesystem modules + This includes support for Windows NTFS and MacOS HFS/HFSPlus + +Package: storage-core-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: storage-core-modules, loop-modules +Depends: kernel-image-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: Core storage support + Includes core SCSI, LibATA, USB-Storage. Also includes related block + devices for CD, Disk and Tape medium (and IDE Floppy). + +Package: block-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: block-modules, nbd-modules +Depends: kernel-image-3.13.0-46-generic-di, storage-core-modules-3.13.0-46-generic-di, parport-modules-3.13.0-46-generic-di, virtio-modules-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: Block storage devices + This package contains the block storage devices, including DAC960 and + paraide. + +Package: message-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: message-modules +Depends: kernel-image-3.13.0-46-generic-di, storage-core-modules-3.13.0-46-generic-di, scsi-modules-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: Fusion and i2o storage modules + This package containes the fusion and i2o storage modules. + +Package: vlan-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: vlan-modules +Depends: kernel-image-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: extra +Description: vlan modules + This package contains vlan (8021.Q) modules. + +Package: ipmi-modules-3.13.0-46-generic-di +Package-Type: udeb +Provides: ipmi-modules +Depends: kernel-image-3.13.0-46-generic-di +Architecture: amd64 +Kernel-Version: 3.13.0-46-generic +Section: debian-installer +Priority: standard +Description: ipmi modules --- linux-3.13.0.orig/debian/control-scripts/extra-post +++ linux-3.13.0/debian/control-scripts/extra-post @@ -0,0 +1,14 @@ +#!/bin/sh +set -e + +case "$0::$1" in +*.postinst::configure|*.postrm::remove) + depmod -a -F /boot/System.map-=V =V || true + for dir in "/etc/kernel/postinst.d" "/etc/kernel/postinst.d/=V" + do + if [ -d "$dir" ]; then + run-parts --verbose --exit-on-error --arg="=V" --arg="/boot/=K-=V" "$dir" + fi + done + ;; +esac --- linux-3.13.0.orig/debian/control-scripts/headers-postinst +++ linux-3.13.0/debian/control-scripts/headers-postinst @@ -0,0 +1,126 @@ +#!/usr/bin/perl +# -*- Mode: Cperl -*- +# debian.postinst --- +# Author : Manoj Srivastava ( srivasta@pilgrim.umass.edu ) +# Created On : Sat Apr 27 05:42:43 1996 +# Created On Node : melkor.pilgrim.umass.edu +# Last Modified By : Manoj Srivastava +# Last Modified On : Sat Aug 5 13:20:22 2006 +# Last Machine Used: glaurung.internal.golden-gryphon.com +# Update Count : 45 +# Status : Unknown, Use with caution! +# HISTORY : +# Description : +# +# +# +# arch-tag: 1c716174-2f0a-476d-a626-a1322e62503a +# + + +$|=1; + +# Predefined values: +my $version = "=V"; +my $kimage = "=K"; +my $package_name = "linux-image-$version"; + + +# Ignore all invocations uxcept when called on to configure. +exit 0 unless ($ARGV[0] && $ARGV[0] =~ /configure/); + +#known variables +my $image_dest = "/"; +my $realimageloc = "/boot/"; +my $silent_modules = ''; +my $modules_base = '/lib/modules'; +my $CONF_LOC = '/etc/kernel-img.conf'; +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; + +chdir '/usr/src' or die "Could not chdir to /usr/src:$!"; + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $header_postinst_hook = "$1" if /^\s*header_postinst_hook\s*=\s*(\S+)/ig; + } + close CONF; + } +} + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + die "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + +## Run user hook script here, if any +if (-x "$header_postinst_hook") { + &run_hook("postinst", $header_postinst_hook); +} + +if (-d "/etc/kernel/header_postinst.d") { + print STDERR "Examining /etc/kernel/header_postinst.d.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/header_postinst.d") && + die "Failed to process /etc/kernel/header_postinst.d"; +} + +if (-d "/etc/kernel/header_postinst.d/$version") { + print STDERR "Examining /etc/kernel/header_postinst.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/header_postinst.d/$version") && + die "Failed to process /etc/kernel/header_postinst.d/$version"; +} + +exit 0; + +__END__ --- linux-3.13.0.orig/debian/control-scripts/postinst +++ linux-3.13.0/debian/control-scripts/postinst @@ -0,0 +1,1110 @@ +#! /usr/bin/perl +# OriginalAuthor : Manoj Srivastava ( srivasta@pilgrim.umass.edu ) +# +# Customized for Ubuntu by: Ben Collins + +#use strict; #for debugging +use Cwd 'abs_path'; + +$|=1; + +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; # Should be empty, mostly +my $no_symlink = ""; # Should be empty, mostly +my $reverse_symlink = ""; # Should be empty, mostly +my $do_symlink = "Yes"; # target machine defined +my $do_boot_enable = "Yes"; # target machine defined +my $do_bootfloppy = "Yes"; # target machine defined +my $do_bootloader = "Yes"; # target machine defined +my $move_image = ''; # target machine defined +my $kimage = "=K"; # Should be empty, mostly +my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, nettrom, arcboot or delo +my $image_dir = "/boot"; # where the image is located +my $clobber_modules = ''; # target machine defined +my $relative_links = ""; # target machine defined +my $initrd = "YES"; # initrd kernel +my $do_initrd = ''; # Normally we do not +my $use_hard_links = ''; # hardlinks do not work across fs boundaries +my $postinst_hook = ''; #Normally we do not +my $postrm_hook = ''; #Normally we do not +my $preinst_hook = ''; #Normally we do not +my $prerm_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $kernel_arch = "=B"; +my $ramdisk = "/usr/sbin/update-initramfs"; # List of tools to create initial ram fs. +my $notifier = "/usr/share/update-notifier/notify-reboot-required"; +my $package_name = "linux-image-$version"; +my $explicit_do_loader = 'Yes'; + +my $Loader = "NoLOADER"; # +$Loader = "LILO" if $loader =~ /^lilo/io; +$Loader = "SILO" if $loader =~ /^silo/io; +$Loader = "QUIK" if $loader =~ /^quik/io; +$Loader = "yaboot" if $loader =~ /^yaboot/io; +$Loader = "PALO" if $loader =~ /^palo/io; +$Loader = "NETTROM" if $loader =~ /^nettrom/io; +$Loader = "VMELILO" if $loader =~ /^vmelilo/io; +$Loader = "ZIPL" if $loader =~ /^zipl/io; +$Loader = "ELILO" if $loader =~ /^elilo/io; +$Loader = "ARCBOOT" if $loader =~ /^arcboot/io; +$Loader = "DELO" if $loader =~ /^delo/io; + +# This should not point to /tmp, because of security risks. +my $temp_file_name = "/var/log/$loader" . "_log.$$"; + +#known variables +my $image_dest = "/"; +my $realimageloc = "/$image_dir/"; +my $have_conffile = ""; +my $silent_modules = ''; +my $silent_loader = ''; +my $warn_reboot = 'Yes'; # Warn that we are installing a version of + # the kernel we are running + +my $modules_base = '/lib/modules'; +my $CONF_LOC = '/etc/kernel-img.conf'; + +# Ignore all invocations except when called on to configure. +exit 0 unless $ARGV[0] =~ /configure/; + +my $DEBUG = 0; + +# Do some preliminary sanity checks here to ensure we actually have an +# valid image dir +chdir('/') or die "could not chdir to /:$!\n"; +die "Internal Error: ($image_dir) is not a directory!\n" + unless -d $image_dir; + +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; +die "Internal Error: ($realimageloc) is not a directory!\n" + unless -d $realimageloc; + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig; + $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig; + $reverse_symlink = "" if /^\s*reverse_symlink\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig; + $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig; + $clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig; + $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig; + $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig; + $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig; + $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $explicit_do_loader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig; + $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig; + $silent_modules = '' if /^\s*silent_modules\s*=\s*(no|false|0)\s*$/ig; + $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig; + $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig; + $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig; + $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig; + + $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig; + $clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig; + $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig; + $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig; + $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $explicit_do_loader = "YES" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig; + $do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig; + $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig; + $silent_modules = 'Yes' if /^\s*silent_modules\s*=\s*(yes|true|1)\s*$/ig; + $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig; + $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig; + $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig; + $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig; + + $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig; + $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig; + $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig; + $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig; + $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig; + $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig; + } + close CONF; + $have_conffile = "Yes"; + } +} + + + +# For some versions of kernel-package, we had this warning in the +# postinst, but the rules did not really interpolate the value in. +# Here is a sanity check. +my $pattern = "=" . "I"; +$initrd=~ s/^$pattern$//; + +if ($link_in_boot) { + $image_dest = "/$image_dir/"; # same as realimageloc +} + +# Tack on at least one trainling / +$image_dest = "$image_dest/"; +$image_dest =~ s|^/*|/|o; +$image_dest =~ s|/+$|/|o; + +if (! -d "$image_dest") { + die "Expected Image Destination dir ($image_dest) to be a valid directory!\n"; +} + +# sanity +if (!($do_bootfloppy || $do_bootloader)) { + $do_boot_enable = ''; +} +if ($do_symlink && $no_symlink) { + warn "Both do_symlinks and no_symlinks options enabled; disabling no_symlinks\n"; + $no_symlink = 0; +} + +# most of our work is done in $image_dest (nominally /) +chdir("$image_dest") or die "could not chdir to $image_dest:$!\n"; + +# Paranoid check to make sure that the correct value is put in there +if (! $kimage) { $kimage = "vmlinuz"; } # Hmm. empty +elsif ($kimage =~ m/^b?uImage$/o) { $kimage = "vmlinuz"; } # these produce vmlinuz +elsif ($kimage =~ m/^b?zImage$/o) { $kimage = "vmlinuz"; } # these produce vmlinuz +elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage; } +elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage; } +else { $kimage = "vmlinuz"; } # Default + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + + +die "Internal Error: Could not find image (" . $realimageloc + . "$kimage-$version)\n" unless -e $realimageloc + . "$kimage-$version"; + +# search for the boot loader in the path +my $loader_exec; +($loader_exec = $loader) =~ s|.*/||; +my ($loaderloc) = grep -x, map "$_/$loader_exec", + map { length($_) ? $_ : "." } split /:/, $ENV{PATH}; + + +###################################################################### +###################################################################### +########### Test whether a relative symlinkwould be OK ####### +###################################################################### +###################################################################### +sub test_relative { + my %params = @_; + my $cwd; + + die "Internal Error: Missing Required paramater 'Old Dir' " + unless $params{'Old Dir'}; + die "Internal Error: Missing Required paramater New Dir' " + unless $params{'New Dir'}; + + + die "Internal Error: No such dir $params{'Old Dir'} " + unless -d $params{'Old Dir'}; + die "Internal Error: No such dir $params{'New Dir'} " + unless -d $params{'New Dir'}; + + # If the caller specified a test file, and it does not exist try and find + # another file to use in its stead. As we are installing kernels we can + # use any versioned file from this kernel which should be in the same place. + if (defined $params{'Test File'} and + ! -f $params{'Old Dir'} . '/' . $params{'Test File'}) { + + my @possible = glob($params{'Old Dir'} . "/*$version*"); + if ($#possible >= 0) { + $params{'Test File'} = `basename "$possible[0]"`; + chomp($params{'Test File'}); + warn "Test relative: selected $params{'Test File'}" + if $DEBUG; + } + } + + warn "Test relative: testing $params{'Old Dir'} -> $params{'New Dir'}" + if $DEBUG; + chomp($cwd = `pwd`); + chdir ($params{'New Dir'}) or die "Could not chdir to $params{'New Dir'}:$!"; + my $ok = 0; + $params{'Old Dir'} =~ s|^/*||o; + if (-d $params{'Old Dir'} ) { + if (defined $params{'Test File'}) { + if (-e $params{'Old Dir'} . $params{'Test File'}) { + $ok = 1; + } + } else { + $ok = 1; # well, backward compatibility + } + } + chdir ($cwd) or die "Could not chdir to $params{'New Dir'}:$!"; + return $ok; +} + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +# sub CanonicalizePath { +# my $path = join '/', @_; +# my @work = split '/', $path; +# my @out; +# my $is_absolute; + +# if (@work && $work[0] eq "") { +# $is_absolute = 1; shift @work; +# } + +# while (@work) { +# my $seg = shift @work; +# if ($seg eq "." || $seg eq "") { +# } +# elsif ($seg eq "..") { +# if (@out && $out[-1] ne "..") { +# pop @out; +# } +# else { +# # Leading "..", or "../..", etc. +# push @out, $seg; +# } +# } +# else { +# push @out, $seg; +# } +# } + +# unshift @out, "" if $is_absolute; +# return join('/', @out); +# } +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### + +sub spath { + my %params = @_; + + die "Missing Required paramater 'Old'" unless $params{'Old'}; + die "Missing Required paramater 'New'" unless $params{'New'}; + + my @olddir = split '/', `readlink -q -m $params{'Old'}`; + my @newdir = split '/', `readlink -q -m $params{'New'}`; + my @outdir = @olddir; + + my $out = ''; + my $i; + for ($i = 0; $i <= $#olddir && $i <= $#newdir; $i++) { + $out++ if ($olddir[$i] ne $newdir[$i]); + shift @outdir unless $out; + unshift @outdir, ".." if $out; + } + if ($#newdir > $#olddir) { + for ($i=0; $i < $#newdir; $i++) { + unshift @outdir, ".."; + } + } + return join ('/', @outdir); +} +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### + + +# This routine actually moves the kernel image +# From: $realimageloc/$kimage-$version (/boot/vmlinuz-2.6.12) +# To: $image_dest/$kimage-$version (/vmlinuz-2.6.12) +# Note that the image is moved to a versioned destination, but ordinary +# symlinks we create otherwise are not normally versioned +sub really_move_image { + my $src_dir = $_[0]; + my $target = $_[1]; + my $dest_dir = $_[2]; + + warn "Really move image: src_dir=$src_dir, target=$target,\n destdir=$dest_dir" + if $DEBUG; + if (-e "$target") { + # we should be in dir $dest_dir == $image_dest /, normally + rename("$target", "$target.$$") || + die "failed to move " . $dest_dir . "$target:$!"; + warn "mv $target $target.$$" if $DEBUG; + } + warn "mv -f $src_dir$target $target" if $DEBUG; + my $ret = system("mv -f " . $src_dir . "$target " . + " $target"); + if ($ret) { + die("Failed to move " . $src_dir . "$target to " + . $dest_dir . "$target"); + } + # Ok, now we may clobber the previous .old files + if (-e "$target.$$") { + rename("$target.$$", "$target.old") || + die "failed to move " . $dest_dir . "$target:$!"; + warn "mv $target.$$ $target " if $DEBUG; + } +} + +# Normally called after really_move_image; and only called if we asked for +# reversed link this routine reverses the symbolic link that is notmally +# created. Since the real kernel image has been moved over to +# $image_dest/$kimage-$version. So, this routine links +# From: $image_dest/$kimage-$version (/vmlinuz-2.6.12) +# To: $realimageloc/$kimage-$version (/boot/vmlinuz-2.6.12) +sub really_reverse_link { + my $src_dir = $_[0]; + my $link_name = $_[1]; + my $dest_dir = $_[2]; + warn "Really reverse link: src_dir=$src_dir, link name=$link_name\n" . + "\tdestdir=$dest_dir" if $DEBUG; + + my $Old = $dest_dir; + if (test_relative ('Old Dir' => $Old, 'New Dir' => $src_dir, + 'Test File' => "$link_name")) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$src_dir" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + if ($use_hard_links =~ m/YES/i) { + link($Old . "$link_name", $src_dir . "$link_name") || + die("Failed to link " . $dest_dir . "$link_name to " . $src_dir . + "$link_name:$!"); + warn "ln " . $Old . "$link_name " . $src_dir . "$link_name" if $DEBUG; + } + else { + symlink($Old . "$link_name", $src_dir . "$link_name") || + die("Failed to symbolic-link " . $dest_dir . "$link_name to " . $src_dir + . "$link_name:$!"); + warn "ln -s " . $Old . "$link_name " . $src_dir . "$link_name" if $DEBUG; + } +} + +# This routine is invoked if there is a symbolic link in place +# in $image_dest/$kimage -- so a symlink exists in the destination. +# What we are trying to determine is if we need to move the symbolic link over +# to the the .old location +sub move_p { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + my $force_move = 0; + warn "Move?: kimage=$kimage, image_dest=$image_dest, \n" . + "\timage_name=$image_name, src_dir=$src_dir" if $DEBUG; + + if ($no_symlink || $reverse_symlink) { + # we do not want links, yet we have a symbolic link here! + warn "found a symbolic link in " . $image_dest . "$kimage \n" . + "even though no_symlink is defined\n" if $no_symlink; + warn "found a symbolic link in " . $image_dest . "$kimage \n" . + "even though reverse_symlink is defined\n" if $reverse_symlink; + # make sure we change this state of affairs + $force_move = 1; + return $force_move; + } + + warn "DEBUG: OK. We found symlink, and we should have a symlink here.\n" + if $DEBUG; + my $vmlinuz_target = readlink "$kimage"; + my $real_target = ''; + my $target = `readlink -q -m "${realimageloc}${kimage}-${version}"`; + $real_target = abs_path($vmlinuz_target) if defined($vmlinuz_target); + + if (!defined($vmlinuz_target) || ! -f "$real_target") { + # what, a dangling symlink? + warn "The link " . $image_dest . "$kimage is a dangling link" . + "to $real_target\n"; + $force_move = 1; + return $force_move; + } + + + warn "DEBUG: The link $kimage points to ($vmlinuz_target)\n" if $DEBUG; + warn "DEBUG: ($vmlinuz_target) is really ($real_target)\n" if $DEBUG; + my $cwd; + chomp ($cwd=`pwd`); + if ($vmlinuz_target !~ m|^/|o) { + $vmlinuz_target = $cwd . "/" . $vmlinuz_target; + $vmlinuz_target =~ s|/+|/|o; + } + $vmlinuz_target = `readlink -q -m $vmlinuz_target`; + + if ("$vmlinuz_target" ne "$target") { + warn "DEBUG: We need to handle this.\n" if $DEBUG; + if ($minimal_swap) { + warn "DEBUG: Minimal swap.\n" if $DEBUG; + if (-l "$kimage.old") { + warn "DEBUG: There is an old link at $kimage.old\n" if $DEBUG; + my $old_target = readlink "$kimage.old"; + my $real_old_target = ''; + $real_old_target=abs_path($old_target) if defined ($old_target); + + if ($real_old_target && -f "$real_old_target") { + if ($old_target !~ m|^/|o) { + $old_target = $cwd . "/" . $old_target; + $old_target =~ s|/+|/|o; + } + $old_target = `readlink -q -m $old_target`; + if ("$old_target" ne "$target") { + $force_move = 1; + warn "DEBUG: Old link ($old_target) does not point to us ($target)\n" + if $DEBUG; + } + else { # The .old points to the current + warn "$kimage.old --> $target -- doing nothing"; + $force_move = 0; + } + } + else { + warn "DEBUG: Well, the old link does not exist -- so we move\n" + if $DEBUG; + $force_move = 1; + } + } + else { + warn "DEBUG: No .old link -- OK to move\n" + if $DEBUG; + $force_move = 1; + } + } + else { + warn "DEBUG: ok, minimal swap is no-- so we move.\n" + if $DEBUG; + $force_move = 1; + } + } + else { # already have proper link + warn "$kimage($vmlinuz_target) points to $target ($real_target) -- doing nothing"; + $force_move = 0; + } + return $force_move; +} + + +# This routine moves the symbolic link around (/vmlinuz -> /vmlinuz.old) +# It pays attention to whether we should the fact whether we should be using +# hard links or not. +sub really_move_link { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + warn "really_move_link: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + # don't clobber $kimage.old quite yet + rename("$kimage", "$kimage.$$") || + die "failed to move " . $image_dest . "$kimage:$!"; + warn "mv $kimage $kimage.$$" if $DEBUG; + my $Old = $src_dir; + my $cwd; + + chomp($cwd=`pwd`); + if (test_relative ('Old Dir' => $Old, 'New Dir' => $cwd, + 'Test File' => "$image_name")) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$cwd" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + if ($use_hard_links =~ m/YES/i) { + warn "ln ${Old}${image_name} $kimage" if $DEBUG; + if (! link("${Old}${image_name}", "$kimage")) { + rename("$kimage.$$", "$kimage"); + die("Failed to link ${Old}${image_name} to " . + "${image_dest}${kimage}:$!"); + } + } + else { + warn "ln -s ${Old}${image_name} $kimage" if $DEBUG; + if (! symlink("${Old}${image_name}", "$kimage")) { + rename("$kimage.$$", "$kimage"); + die("Failed to symbolic-link ${Old}${image_name} to " . + "${image_dest}${kimage}:$!"); + } + } + + # Ok, now we may clobber the previous .old file + if (-l "$kimage.old" || ! -e "$kimage.old" ) { + rename("$kimage.$$", "$kimage.old"); + warn "mv $kimage.$$ $kimage.old" if $DEBUG; + } + else { + warn "$kimage.old is not a symlink, not clobbering\n"; + warn "rm $kimage.$$"; + unlink "$kimage.$$" if $DEBUG; + } +} + +# This routine handles a request to do symlinks, but there is no +# symlink file already there. Either we are supposed to use copy, or we are +# installing on a pristine system, or the user does not want symbolic links at +# all. We use a configuration file to tell the last two cases apart, creating +# a config file if needed. +sub handle_missing_link { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + warn "handle_missing_link: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + if ($no_symlink) { + warn "cp -a --backup=t $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("cp -a --backup=t " . $realimageloc . + "$image_name " . " $kimage"); + if ($ret) { + die("Failed to copy " . $realimageloc . "$image_name to " + . $image_dest . "$kimage"); + } + } + elsif ($reverse_symlink) { + warn "mv -f $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("mv -f " . $realimageloc . "$image_name " + . "$kimage"); + if ($ret) { + die("Failed to move " . $realimageloc . "$image_name to " + . $image_dest . "$kimage"); + } + } + else { + if (! $have_conffile) { + my $ret; + my $answer=''; + $do_symlink = "Yes"; + + if (open(CONF, ">$CONF_LOC")) { + print CONF "# Kernel Image management overrides\n"; + print CONF "# See kernel-img.conf(5) for details\n"; + if ($loader =~ /palo/i) { + print CONF "link_in_boot = Yes\n"; + print CONF "do_symlinks = Yes\n"; + print CONF "relative_links = Yes\n"; + print CONF "do_bootloader = No\n"; + } else { + print CONF "do_symlinks = $do_symlink\n"; + } + close CONF; + } + $have_conffile = "Yes"; + } + } + + if (! $no_symlink && $do_symlink =~ /Yes/i) { + my $Old = $realimageloc; + my $New = $image_dest; + my $Name = "$image_name"; + my $Link_Dest = "$kimage"; + + if ($reverse_symlink) { + $Old = $image_dest; + $New = $realimageloc; + $Name = "$kimage"; + $Link_Dest = $realimageloc . "$image_name"; + } + if (test_relative ('Old Dir' => $Old, + 'New Dir' => $New, + 'Test File' => $Name)) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$New" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + symlink($Old . "$Name", "$Link_Dest") || + die("Failed to symbolic-link ${Old}$Name to $Link_Dest:$!"); + warn "ln -s ${Old}$Name $Link_Dest" if $DEBUG; + + } +} + +# This routine handles the rest of the cases, where the user has requested +# non-traditional handling, like using cp, or reverse symlinks, or hard links. +sub handle_non_symlinks { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = $_[2]; + my $src_dir = $_[3]; + warn "handle_non_link: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + # Save the current image. We do this in all four cases + rename("$kimage", "$kimage.$$") || + die "failed to move " . $image_dest . "$kimage:$!"; + warn "mv $kimage $kimage.$$" if $DEBUG; + + ##,#### + # case One + #`#### + if ($no_symlink) { + # Maybe /$image_dest is on a dos system? + warn "cp -a --backup=t $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("cp -a --backup=t " . $realimageloc + . "$image_name " . "$kimage"); + if ($ret) { + if (-e "$kimage.$$") { + rename("$kimage.$$", "$kimage"); + warn "mv $kimage.$$ $kimage" if $DEBUG; + } + die("Failed to copy " . $realimageloc . "$image_name to " + . $image_dest . "$kimage"); + } + } + ##,#### + # case Two + #`#### + elsif ($reverse_symlink) { # Maybe /$image_dest is on a dos system? + warn "mv -f $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("mv -f " . $realimageloc . "$image_name " + . $image_dest . "$kimage"); + if ($ret) { + if (-e "$kimage.$$") { + rename("$kimage.$$", "$kimage"); + warn "mv $kimage.$$ $kimage" if $DEBUG; + } + die("Failed to move " . $realimageloc . "$image_name to " + . $image_dest . "$kimage"); + } + my $Old = $image_dest; + if (test_relative ('Old Dir' => $Old, 'New Dir' => $realimageloc, + 'Test File' => "$kimage")) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$realimageloc" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + if ($use_hard_links =~ m/YES/i) { + warn "ln " . $Old . "$kimage " . $realimageloc . "$image_name" if $DEBUG; + if (! link($Old . "$kimage", $realimageloc . "$image_name")) { + warn "Could not link " . $image_dest . + "$kimage to $image_name :$!"; + } + } + else { + warn "ln -s " . $Old . "$kimage " . $realimageloc . "$image_name" if $DEBUG; + if (! symlink($Old . "$kimage", $realimageloc . "$image_name")) { + warn "Could not symlink " . $image_dest . + "$kimage to $image_name :$!"; + } + } + } + ##,#### + # case Three + #`#### + elsif ($use_hard_links =~ m/YES/i ) { + # Ok then. this ought to be a hard link, and hence fair game + # don't clobber $kimage.old quite yet + my $Old = $realimageloc; + my $cwd; + chomp($cwd=`pwd`); + if (test_relative ('Old Dir' => $Old, 'New Dir' => $cwd, + 'Test File' => "$image_name")) { + $Old =~ s|^/*||o; + } + # Special case is they are in the same dir + my $rel_path = spath('Old' => "$Old", 'New' => "$cwd" ); + $Old ="" if $rel_path =~ m/^\s*$/o; + + warn "ln " . $Old . "$image_name " . "$kimage" if $DEBUG; + if (! link($Old . "$image_name", "$kimage")) { + warn "mv $kimage.$$ $kimage" if $DEBUG; + rename("$kimage.$$", "$kimage"); + die("Failed to link " . $realimageloc . "$image_name to " + . $image_dest . "$kimage"); + } + } + ##,#### + # case Four + #`#### + else { + # We just use cp + warn "cp -a --backup=t $realimageloc$image_name $kimage" if $DEBUG; + my $ret = system("cp -a --backup=t " . $realimageloc + . "$image_name " . "$kimage"); + if ($ret) { + if (-e "$kimage.$$") { + warn "mv $kimage.$$ $kimage" if $DEBUG; + rename("$kimage.$$", "$kimage"); + } + die("Failed to copy " . $realimageloc . "$image_name to " + . $image_dest . "$kimage"); + } + } + # Ok, now we may clobber the previous .old file + warn "mv $kimage.$$ $kimage.old if -e $kimage.$$" if $DEBUG; + rename("$kimage.$$", "$kimage.old") if -e "$kimage.$$"; +} + +# This routine is responsible for setting up the symbolic links +# So, the actual kernel image lives in +# $realimageloc/$image_name (/boot/vmlinuz-2.6.12). +# This routine creates symbolic links in $image_dest/$kimage (/vmlinuz) +sub image_magic { + my $kimage = $_[0]; # Name of the symbolic link + my $image_dest = $_[1]; # The directory the links goes into + my $image_name = "$kimage-$version"; + my $src_dir = $realimageloc; + warn "image_magic: kimage=$kimage, image_dest=$image_dest\n" . + "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG; + + # Well, in any case, if the destination (the symlink we are trying + # to create) is a directory, we should do nothing, except throw a + # diagnostic. + if (-d "$kimage" ) { + die ("Hmm. $kimage is a directory, which I did not expect. I am\n" . + "trying to create a symbolic link with that name linked to \n" . + "$image_dest . Since a directory exists here, my assumptions \n" . + "are way off, and I am aborting.\n" ); + exit (3); + } + + if ($move_image) { # Maybe $image_dest is in on dos, or something? + # source dir, link name, dest dir + really_move_image( $realimageloc, $image_name, $image_dest); + really_reverse_link($realimageloc, $image_name, $image_dest) + if $reverse_symlink; + return; + } + + if (-l "$kimage") { # There is a symbolic link + warn "DEBUG: There is a symlink for $kimage\n" if $DEBUG; + my $force_move = move_p($kimage, $image_dest, $image_name, $src_dir); + + if ($force_move) { + really_move_link($kimage, $image_dest, $image_name, $src_dir); + } + } + elsif (! -e "$kimage") { + # Hmm. Pristine system? How can that be? Installing from scratch? + # Or maybe the user does not want a symbolic link here. + # Possibly they do not want a link here. (we should be in / + # here[$image_dest, really] + handle_missing_link($kimage, $image_dest, $image_name, $src_dir); + } + elsif (-e "$kimage" ) { + # OK, $kimage exists -- but is not a link + handle_non_symlinks($kimage, $image_dest, $image_name, $src_dir); + } +} + +###################################################################### +###################################################################### +###################################################################### +###################################################################### + +# We may not have any modules installed +if ( -d "$modules_base/$version" ) { + print STDERR "Running depmod.\n"; + my $ret = system("depmod -a $version"); + if ($ret) { + print STDERR "Failed to run depmod\n"; + exit(1); + } +} + + + +sub find_initrd_tool { + my $hostversion = shift; + my $version = shift; + print STDERR "Finding valid ramdisk creators.\n"; + my @ramdisks = + grep { + my $args = + "$_ " . + "--supported-host-version=$hostversion " . + "--supported-target-version=$version " . + "1>/dev/null 2>&1" + ; + system($args) == 0; + } + split (/[:,\s]+/, $ramdisk); +} + +# The initrd symlink should probably be in the same dir that the +# symlinks are in +if ($initrd) { + my $success = 0; + + # Update-initramfs is called slightly different than mkinitrd and + # mkinitramfs. XXX It should really be made compatible with this stuff + # some how. + my $upgrading = 1; + if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m//og) { + $upgrading = 0; + } + my $ret = system("$ramdisk " . ($upgrading ? "-u" : "-c") . " -k " . $version . " >&2"); + $success = 1 unless $ret; + die "Failed to create initrd image.\n" unless $success; + if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m//og) { + image_magic("initrd.img", $image_dest); + } + else { + if (! -e "initrd.img") { + handle_missing_link("initrd.img", $image_dest, "initrd.img-$version", + $realimageloc); + } + else { + print STDERR + "Not updating initrd symbolic links since we are being updated/reinstalled \n"; + print STDERR + "($ARGV[1] was configured last, according to dpkg)\n"; + } + } + + if ($initrd && -l "initrd" ) { + unlink "initrd"; + } + + if ($initrd && -l "$image_dir/initrd" && ! $link_in_boot) { + unlink "$image_dir/initrd"; + } +} +else { # Not making an initrd emage + if (-l "initrd.img") { + # Ooh, last image was an initrd image? in any case, we should move it. + my $target = readlink "initrd.img"; + my $real_target = ''; + $real_target = abs_path($target) if defined ($target); + + if (!defined($target) || ! -f "$real_target") { + # Eh. dangling link. can safely be removed. + unlink("initrd.img"); + } else { + if (-l "initrd.img.old" || ! -e "initrd.img.old" ) { + rename("initrd.img", "initrd.img.old"); + } else { + warn "initrd.img.old is not a symlink, not clobbering\n"; + unlink("initrd.img"); + } + } + } +} + +# Warn of a reboot +if (-x $notifier) { + system($notifier); +} + +# Let programs know not to hibernate if the kernel that would be used for +# resume-from-hibernate is likely to differ from the currently running kernel. +system("mountpoint -q /var/run"); +if ($? eq 0) { + system("touch /var/run/do-not-hibernate"); +} + +# Only change the symlinks if we are not being upgraded +if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m//og) { + image_magic($kimage, $image_dest); +} +else { + if (! -e "$kimage") { + handle_missing_link($kimage, $image_dest, "$kimage-$version", + $realimageloc); + } + else { + print STDERR + "Not updating image symbolic links since we are being updated/reinstalled \n"; + print STDERR + "($ARGV[1] was configured last, according to dpkg)\n"; + } +} + +# We used to have System.* files in / +if (-e "/System.map" || -e "/System.old") { + unlink '/System.map' if -e '/System.map'; + unlink '/System.old' if -e '/System.old'; +} + +# creating some info about kernel and initrd +if ($DEBUG) { + my $ksize=sprintf("%.0f",(stat($realimageloc . + "$kimage-$version"))[7]/1024)."kB"; + my $initrdsize=''; + if ($initrd) { + $initrdsize=sprintf("%.0f",(stat($realimageloc . + "initrd.img-$version"))[7]/1024)."kB"; + } + + print STDERR <<"EOMSG"; +A new kernel image has been installed at $realimageloc$kimage-$version + (Size: $ksize) + +Symbolic links, unless otherwise specified, can be found in $image_dest + +EOMSG + ; + + if ($initrd) { + print STDERR <<"EOMSGA"; + + Initial rootdisk image: ${realimageloc}initrd.img-$version (Size: $initrdsize) +EOMSGA + ; + } +} + +# set the env var stem +$ENV{'STEM'} = "linux"; +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + die "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + +my $options; +for (@ARGV) { + s,','\\'',g; + $options .= " '$_'"; +} +$ENV{'DEB_MAINT_PARAMS'}="$options"; + +## Run user hook script here, if any +if ($postinst_hook) { + &run_hook("postinst", $postinst_hook); +} + +if (-d "/etc/kernel/postinst.d") { + print STDERR "Examining /etc/kernel/postinst.d.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postinst.d") && + die "Failed to process /etc/kernel/postinst.d"; +} + +if (-d "/etc/kernel/postinst.d/$version") { + print STDERR "Examining /etc/kernel/postinst.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postinst.d/$version") && + die "Failed to process /etc/kernel/postinst.d/$version"; +} + +LOADER: { + last unless $do_boot_enable; # Exit if explicitly asked to + + last if $loader =~ /silo/i; # SILO does not have to be executed. + last if $loader =~ /yaboot/i; # yaboot does not have to be executed. + last if $loader =~ /milo/i; # MILO does not have to be executed. + last if $loader =~ /nettrom/i; # NETTROM does not have to be executed. + last if $loader =~ /arcboot/i; # ARCBOOT does not have to be executed. + last if $loader =~ /delo/i; # DELO does not have to be executed. + last if $loader =~ /quik/i; # maintainer asked quik invocation to be ignored + + last unless $loaderloc; + last unless -x $loaderloc; + last unless $do_bootloader; + + if (-T "/etc/$loader.conf") { + # Trust and use the existing lilo.conf. + print STDERR "You already have a $Loader configuration in /etc/$loader.conf\n"; + my $ret = &run_lilo(); + exit $ret if $ret; + } +} + + +sub run_lilo (){ + my $ret; + # Try and figure out if the user really wants lilo to be run -- + # since the default is to run the boot laoder, which is ! grub -- but + # the user may be using grub now, and not changed the default. + + # So, if the user has explicitly asked for the loader to be run, or + # if there is no postinst hook, or if there is no grub installed -- + # we are OK. Or else, we ask. + if ($explicit_do_loader || (! ($postinst_hook && -x '/usr/sbin/grub'))) { + print STDERR "Running boot loader as requested\n"; + } else { + print STDERR "Ok, not running $loader\n"; + } + if ($loader =~ /^lilo/io or $loader =~ /vmelilo/io) { + print STDERR "Testing $loader.conf ... \n"; + unlink $temp_file_name; # security + $ret = system("$loaderloc -t >$temp_file_name 2>&1"); + if ($ret) { + print STDERR "Boot loader test failed\n"; + return $ret; + } + unlink "$temp_file_name"; + print STDERR "Testing successful.\n"; + print STDERR "Installing the "; + print STDERR "partition " if $loader =~ /^lilo/io; + print STDERR "boot sector... \n"; + } + + print STDERR "Running $loaderloc ... \n"; + if ($loader =~ /^elilo/io) { + $ret = system("$loaderloc 2>&1 | tee $temp_file_name"); + } else { + $ret = system("$loaderloc >$temp_file_name 2>&1"); + } + if ($ret) { + print STDERR "Boot loader failed to run\n"; + return $ret; + } + unlink $temp_file_name; + print STDERR "Installation successful.\n"; + return 0; +} + +exit 0; + +__END__ + --- linux-3.13.0.orig/debian/control-scripts/postrm +++ linux-3.13.0/debian/control-scripts/postrm @@ -0,0 +1,361 @@ +#! /usr/bin/perl +# -*- Mode: Cperl -*- +# image.postrm --- +# Author : Manoj Srivastava ( srivasta@glaurung.green-gryphon.com ) +# Created On : Sat May 15 11:05:13 1999 +# Created On Node : glaurung.green-gryphon.com +# Last Modified By : Manoj Srivastava +# Last Modified On : Wed Sep 13 11:26:19 2006 +# Last Machine Used: glaurung.internal.golden-gryphon.com +# Update Count : 57 +# Status : Unknown, Use with caution! +# HISTORY : +# Description : +# +# $Id: image.postrm,v 1.31 2003/10/07 16:24:20 srivasta Exp $ +# + + +# +#use strict; #for debugging +use Cwd 'abs_path'; + +$|=1; + +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; # Should be empty, mostly +my $no_symlink = ""; # Should be empty, mostly +my $reverse_symlink = ""; # Should be empty, mostly +my $do_symlink = "Yes"; # target machine defined +my $do_boot_enable = "Yes"; # target machine defined +my $do_bootfloppy = "Yes"; # target machine defined +my $do_bootloader = "Yes"; # target machine defined +my $move_image = ''; # target machine defined +my $kimage = "=K"; # Should be empty, mostly +my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, or nettrom +my $image_dir = "/boot"; # where the image is located +my $clobber_modules = ''; # target machine defined +my $initrd = "YES"; # initrd kernel +my $do_initrd = ''; # Normally, we don't +my $warn_initrd = 'YES'; # Normally we do +my $use_hard_links = ''; # hardlinks do not work across fs boundaries +my $postinst_hook = ''; #Normally we do not +my $postrm_hook = ''; #Normally we do not +my $preinst_hook = ''; #Normally we do not +my $prerm_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $relink_build_link = 'YES'; # There is no harm in checking the link +my $force_build_link = ''; # we shall not create a dangling link +my $kernel_arch = "=B"; +my $ramdisk = "/usr/sbin/update-initramfs"; +my $package_name = "linux-image-$version"; + +my $Loader = "NoLOADER"; # +$Loader = "LILO" if $loader =~ /^lilo/io; +$Loader = "SILO" if $loader =~ /^silo/io; +$Loader = "QUIK" if $loader =~ /^quik/io; +$Loader = "yaboot" if $loader =~ /^yaboot/io; +$Loader = "PALO" if $loader =~ /^palo/io; +$Loader = "NETTROM" if $loader =~ /^nettrom/io; +$Loader = "VMELILO" if $loader =~ /^vmelilo/io; +$Loader = "ZIPL" if $loader =~ /^zipl/io; +$Loader = "ELILO" if $loader =~ /^elilo/io; + + +# This should not point to /tmp, because of security risks. +my $temp_file_name = "/var/log/$loader" . "_log.$$"; + +#known variables +my @boilerplate = (); +my @silotemplate = (); +my @quiktemplate = (); +my @palotemplate = (); +my @vmelilotemplate = (); +my $bootdevice = ''; +my $rootdevice = ''; +my $rootdisk = ''; +my $rootpartition = ''; +my $image_dest = "/"; +my $realimageloc = "/$image_dir/"; +my $have_conffile = ""; +my $CONF_LOC = '/etc/kernel-img.conf'; +my $relative_links = ''; +my $silent_modules = ''; +my $silent_loader = ''; +my $warn_reboot = 'Yes'; # Warn that we are installing a version of + # the kernel we are running + +chdir('/') or die "could not chdir to /:$!\n"; +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; + + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig; + $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig; + $reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig; + $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig; + $clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig; + $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig; + $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig; + $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig; + $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig; + $warn_initrd = '' if /^\s*warn_initrd\s*=\s*(no|false|0)\s*$/ig; + $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig; + $silent_modules = '' if /^\s*silent_modules\s*=\s*(no|false|0)\s*$/ig; + $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig; + $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig; + $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig; + $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig; + $relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig; + $force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig; + + $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig; + $clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig; + $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig; + $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig; + $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig; + $do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig; + $warn_initrd = "Yes" if /^\s*warn_initrd\s*=\s*(yes|true|1)\s*$/ig; + $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig; + $silent_modules = 'Yes' if /^\s*silent_modules\s*=\s*(yes|true|1)\s*$/ig; + $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig; + $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig; + $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig; + $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig; + $relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig; + $force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig; + + $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig; + $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig; + $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig; + $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig; + $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig; + $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig; + } + close CONF; + $have_conffile = "Yes"; + } +} + +if ($link_in_boot) { + $image_dest = "/$image_dir/"; + $image_dest =~ s|^/*|/|o; +} + +$image_dest = "$image_dest/"; +$image_dest =~ s|/+$|/|o; + +# The destdir may be gone by now. +if (-d "$image_dest") { + chdir("$image_dest") or die "could not chdir to $image_dest:$!\n"; +} + +# Paranoid check to make sure that the correct value is put in there +if (! $kimage) {$kimage = "vmlinuz"} # Hmm. empty +elsif ($kimage =~ m/^b?uImage$/o) {$kimage = "vmlinuz"} # these produce vmlinuz +elsif ($kimage =~ m/^b?zImage$/o) {$kimage = "vmlinuz"} # these produce vmlinuz +elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage;} +elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage;} +else {$kimage = "vmlinuz"} # default + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +sub remove_sym_link { + my $bad_image = $_[0]; + + warn "Removing symbolic link $bad_image \n"; + if ($loader =~ /lilo/i) + { + warn "Unless you used the optional flag in lilo, \n"; + } + warn " you may need to re-run your boot loader" . ($loader ? "[$loader]":"") + . "\n"; + # Remove the dangling link + unlink "$bad_image"; +} + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +sub CanonicalizePath { + my $path = join '/', @_; + my @work = split '/', $path; + my @out; + my $is_absolute; + + if (@work && $work[0] eq "") { $is_absolute = 1; shift @work; } + + while (@work) { + my $seg = shift @work; + if ($seg eq "." || $seg eq "") { + } elsif ($seg eq "..") { + if (@out && $out[-1] ne "..") { + pop @out; + } else { + # Leading "..", or "../..", etc. + push @out, $seg; + } + } else { + push @out, $seg; + } + } + + unshift @out, "" if $is_absolute; + return join('/', @out); +} + +###################################################################### +###################################################################### +############ +###################################################################### +###################################################################### +# This removes dangling symlinks. What do we do about hard links? Surely a +# something with the nane $image_dest . "$kimage" ought not to be left behind? +sub image_magic { + my $kimage = $_[0]; + my $image_dest = $_[1]; + + if (-l "$kimage") { + # There is a symbolic link + my $force_move = 0; + my $vmlinuz_target = readlink "$kimage"; + my $real_target = ''; + $real_target = abs_path($vmlinuz_target) if defined ($vmlinuz_target); + if (!defined($vmlinuz_target) || ! -f "$real_target") { + # what, a dangling symlink? + warn "The link " . $image_dest . "$kimage is a damaged link\n"; + # Remove the dangling link + &remove_sym_link("$kimage"); + } + else { + my $canonical_target = CanonicalizePath("$vmlinuz_target"); + if (! -e $canonical_target) { + warn "The link " . $image_dest . "$kimage is a dangling link\n"; + &remove_sym_link("$kimage"); + } + } + } +} + +# set the env var stem +$ENV{'STEM'} = "linux"; + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + warn "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + warn "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + +my $options; +for (@ARGV) { + s,','\\'',g; + $options .= " '$_'"; +} +$ENV{'DEB_MAINT_PARAMS'}="$options"; + +## Run user hook script here, if any +if ($postrm_hook) { + &run_hook("postrm", $postrm_hook); +} +if (-d "/etc/kernel/postrm.d") { + warn "Examining /etc/kernel/postrm.d .\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postrm.d") && + die "Failed to process /etc/kernel/postrm.d"; +} +if (-d "/etc/kernel/postrm.d/$version") { + warn "Examining /etc/kernel/postrm.d/$version .\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version " . + "/etc/kernel/postrm.d/$version") && + die "Failed to process /etc/kernel/postrm.d/$version"; +} + +# check and remove damaged and dangling symlinks +if ($ARGV[0] !~ /upgrade/) { + system("$ramdisk -d -k " . $version . " > /dev/null 2>&1"); + if (-f $realimageloc . "initrd.img-$version.bak") { + unlink $realimageloc . "initrd.img-$version.bak"; + } + image_magic($kimage, $image_dest); + image_magic($kimage . ".old", $image_dest); + image_magic("initrd.img", $image_dest) if $initrd; + image_magic("initrd.img.old", $image_dest) if $initrd; +} + +exit 0; + +__END__ + + + + + + --- linux-3.13.0.orig/debian/control-scripts/preinst +++ linux-3.13.0/debian/control-scripts/preinst @@ -0,0 +1,315 @@ +#! /usr/bin/perl +# -*- Mode: Cperl -*- +# image.preinst --- +# Author : Manoj Srivastava ( srivasta@tiamat.datasync.com ) +# Created On : Sun Jun 14 03:38:02 1998 +# Created On Node : tiamat.datasync.com +# Last Modified By : Manoj Srivastava +# Last Modified On : Sun Sep 24 14:04:42 2006 +# Last Machine Used: glaurung.internal.golden-gryphon.com +# Update Count : 99 +# Status : Unknown, Use with caution! +# HISTORY : +# Description : +# +# + +# +#use strict; #for debugging + +use Debconf::Client::ConfModule qw(:all); +version('2.0'); +my $capb=capb("backup"); + +$|=1; + +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; # Should be empty, mostly +my $no_symlink = ""; # Should be empty, mostly +my $reverse_symlink = ""; # Should be empty, mostly +my $do_symlink = "Yes"; # target machine defined +my $do_boot_enable = "Yes"; # target machine defined +my $do_bootfloppy = "Yes"; # target machine defined +my $do_bootloader = "Yes"; # target machine defined +my $move_image = ''; # target machine defined +my $kimage = "=K"; # Should be empty, mostly +my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, nettrom + # or elilo +my $image_dir = "/boot"; # where the image is located +my $initrd = "YES"; # initrd kernel +my $use_hard_links = ''; # hardlinks do not wirk across fs boundaries +my $postinst_hook = ''; #Normally we do not +my $postrm_hook = ''; #Normally we do not +my $preinst_hook = ''; #Normally we do not +my $prerm_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $relink_src_link = 'YES'; # There is no harm in checking the link +my $relink_build_link = 'YES'; # There is no harm in checking the link +my $force_build_link = ''; # There is no harm in checking the link +my $kernel_arch = "=B"; +my $ramdisk = "/usr/sbin/update-initramfs"; # List of tools to create initial ram fs. +my $package_name = "linux-image-$version"; + +my $Loader = "NoLOADER"; # +$Loader = "LILO" if $loader =~ /^lilo/io; +$Loader = "SILO" if $loader =~ /^silo/io; +$Loader = "QUIK" if $loader =~ /^quik/io; +$Loader = "yaboot" if $loader =~ /^yaboot/io; +$Loader = "PALO" if $loader =~ /^palo/io; +$Loader = "NETTROM" if $loader =~ /^nettrom/io; +$Loader = "VMELILO" if $loader =~ /^vmelilo/io; +$Loader = "ZIPL" if $loader =~ /^zipl/io; +$Loader = "ELILO" if $loader =~ /^elilo/io; + + +#known variables +my @boilerplate = (); +my @silotemplate = (); +my @quiktemplate = (); +my @palotemplate = (); +my @vmelilotemplate = (); +my $bootdevice = ''; +my $rootdevice = ''; +my $rootdisk = ''; +my $rootpartition = ''; +my $image_dest = "/"; +my $realimageloc = "/$image_dir/"; +my $have_conffile = ""; +my $CONF_LOC = '/etc/kernel-img.conf'; +my $relative_links = ''; +my $silent_loader = ''; +my $warn_reboot = ''; # Warn that we are installing a version of + # the kernel we are running + +my $modules_base = '/lib/modules'; + +die "Pre inst Internal error. Aborting." unless $version; + +exit 0 if $ARGV[0] =~ /abort-upgrade/; +exit 1 unless $ARGV[0] =~ /(install|upgrade)/; + +$arch = `uname -i`; +if ($arch =~ m/86/) { + system ("grep -q ' pae ' /proc/cpuinfo"); + if ($?) { + print STDERR "This kernel does not support a non-PAE CPU.\n"; + exit 1; + } +} + +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig; + $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig; + $reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig; + $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig; + $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig; + $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig; + $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig; + $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig; + $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig; + $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig; + $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig; + $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig; + $relink_src_link = '' if /^\s*relink_src_link\s*=\s*(no|false|0)\s*$/ig; + $relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig; + $force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig; + + $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig; + $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig; + $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig; + $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig; + $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig; + $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig; + $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig; + $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig; + $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig; + $relink_src_link = 'Yes' if /^\s*relink_src_link\s*=\s*(yes|true|1)\s*$/ig; + $relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig; + $force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig; + + $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig; + $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig; + $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig; + $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig; + $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig; + $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig; + } + close CONF; + $have_conffile = "Yes"; + $have_conffile = "Yes"; # stop perl complaining + } +} + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + +# About to upgrade this package from version $2 TO THIS VERSION. +# "prerm upgrade" has already been called for the old version of +# this package. + +sub find_initrd_tool { + my $hostversion = shift; + my $version = shift; + my @ramdisks = + grep { + my $args = + "$_ " . + "--supported-host-version=$hostversion " . + "--supported-target-version=$version " . + "1>/dev/null 2>&1" + ; + system($args) == 0; + } + split (/[:,\s]+/, $ramdisk); +} + +sub check { + my $version = shift; + my $lib_modules="$modules_base/$version"; + my $message = ''; + + if (-d "$lib_modules") { + opendir(DIR, $lib_modules) || die "can’t opendir $lib_modules: $!"; + my @children = readdir(DIR); + if ($#children > 1) { + my @dirs = grep { -d "$lib_modules/$_" } @children; + if ($#dirs > 1) { # we have subdirs + my $dir_message=''; + for my $dir (@dirs) { + if ($dir =~/kernel$/) { + $dir_message="An older install was detected.\n"; + } + else { + $dir_message="Module sub-directories were detected.\n" + unless $dir_message; + } + } + $message += $dir_message if $dir_message; + } + + my @links = grep { -l "$lib_modules/$_" } @children; + if ($#links > -1) { + my $links_message = ''; + for my $link (@links) { + next if ($link =~ /^build$/); + next if ($link =~ /^source$/); + $links_message = "Symbolic links were detected in $modules_base/$version.\n"; + } + $message += $links_message if $links_message; + } + my @files = grep { -f "$lib_modules/$_" } @children; + $message += "Additional files also exist in $modules_base/$version.\n" + if ($#files > -1); + } + } + else { $message .= "$lib_modules does not exist. ";} + return $message; +} + +if (-d "$modules_base/$version") { + my $errors=check($version); + warn "Info:\n$errors\n" if $errors; +} + +# set the env var stem +$ENV{'STEM'} = "linux"; + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + die "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + + +my $options; +for (@ARGV) { + s,','\\'',g; + $options .= " '$_'"; +} +$ENV{'DEB_MAINT_PARAMS'}="$options"; + +## Run user hook script here, if any +if (-x "$preinst_hook") { + &run_hook("preinst", $preinst_hook); +} +if (-d "/etc/kernel/preinst.d") { + print STDERR "Examining /etc/kernel/preinst.d/\n"; + system ("run-parts --verbose --exit-on-error --arg=$version" . + " --arg=$realimageloc$kimage-$version" . + " /etc/kernel/preinst.d") && + die "Failed to process /etc/kernel/preinst.d"; +} +if (-d "/etc/kernel/preinst.d/$version") { + print STDERR "Examining /etc/kernel/preinst.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version" . + " --arg=$realimageloc$kimage-$version" . + " /etc/kernel/preinst.d/$version") && + die "Failed to process /etc/kernel/preinst.d/$version"; +} +print STDERR "Done.\n"; + +exit 0; + +__END__ + + --- linux-3.13.0.orig/debian/control-scripts/prerm +++ linux-3.13.0/debian/control-scripts/prerm @@ -0,0 +1,312 @@ +#! /usr/bin/perl +# -*- Mode: Perl -*- +# image.prerm --- +# Author : root ( root@melkor.pilgrim.umass.edu ) +# Created On : Fri May 17 03:28:59 1996 +# Created On Node : melkor.pilgrim.umass.edu +# Last Modified By : Manoj Srivastava +# Last Modified On : Sat Aug 5 13:14:17 2006 +# Last Machine Used: glaurung.internal.golden-gryphon.com +# Update Count : 85 +# Status : Unknown, Use with caution! +# HISTORY : +# Description : +# +# +# $Id: image.prerm,v 1.22 2003/10/07 16:24:20 srivasta Exp $ +# +# +#use strict; + +$|=1; +# Predefined values: +my $version = "=V"; +my $link_in_boot = ""; # Should be empty, mostly +my $no_symlink = ""; # Should be empty, mostly +my $reverse_symlink = ""; # Should be empty, mostly +my $do_symlinks = "Yes"; # target machine defined +my $do_boot_enable = "Yes"; # target machine defined +my $do_bootfloppy = "Yes"; # target machine defined +my $do_bootloader = "Yes"; # target machine defined +my $move_image = ''; # target machine defined +my $kimage = "=K"; # Should be empty, mostly +my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, or nettrom +my $image_dir = "/boot"; # where the image is located +my $clobber_modules = ''; # target machine defined +my $initrd = "YES"; # initrd kernel +my $use_hard_links = ''; # hardlinks do not wirk across fs boundaries +my $postinst_hook = ''; #Normally we do not +my $postrm_hook = ''; #Normally we do not +my $preinst_hook = ''; #Normally we do not +my $prerm_hook = ''; #Normally we do not +my $minimal_swap = ''; # Do not swap symlinks +my $ignore_depmod_err = ''; # normally we do not +my $relink_build_link = 'YES'; # There is no harm in checking the link +my $force_build_link = ''; # There is no harm in checking the link +my $kernel_arch = "=B"; +my $ramdisk = "/usr/sbin/update-initramfs"; +my $package_name = "linux-image-$version"; + +my $Loader = "NoLOADER"; # +$Loader = "LILO" if $loader =~ /^lilo/io; +$Loader = "SILO" if $loader =~ /^silo/io; +$Loader = "QUIK" if $loader =~ /^quik/io; +$Loader = "yaboot" if $loader =~ /^yaboot/io; +$Loader = "PALO" if $loader =~ /^palo/io; +$Loader = "NETTROM" if $loader =~ /^nettrom/io; +$Loader = "VMELILO" if $loader =~ /^vmelilo/io; +$Loader = "ZIPL" if $loader =~ /^zipl/io; +$Loader = "ELILO" if $loader =~ /^elilo/io; + + +# This should not point to /tmp, because of security risks. +my $temp_file_name = "/var/log/$loader" . "_log.$$"; + +#known variables +my $image_dest = "/"; +my $realimageloc = "/$image_dir/"; +my $have_conffile = ""; +my $CONF_LOC = '/etc/kernel-img.conf'; +my $relative_links = ''; +my $silent_loader = ''; +my $warn_reboot = 'Yes'; # Warn that we are installing a version of + # the kernel we are running + +# remove multiple leading slashes; make sure there is at least one. +$realimageloc =~ s|^/*|/|o; +$realimageloc =~ s|/+|/|o; + +my $DEBUG = 0; + +# Variables used +my $image=''; +my $ret=0; +my $seen=''; +my $answer=''; +my $running = ''; +my $WouldInvalidate = 0; + +if ($ARGV[0] && ($ARGV[0] =~ /remove/ || $ARGV[0] =~ /upgrade/)) { + if (-l "/usr/doc/linux-image-$version") { + unlink "/usr/doc/linux-image-$version"; + } +} + +# Ignore all invocations uxcept when called on to remove +exit 0 unless ($ARGV[0] && $ARGV[0] =~ /remove/) ; + +# Paranoid check to make sure that the correct value is put in there +if (! $kimage) { $kimage = "vmlinuz";} # Hmm. empty +elsif ($kimage =~ m/^b?uImage$/o) { $kimage = "vmlinuz";} # these produce vmlinuz +elsif ($kimage =~ m/^b?zImage$/o) { $kimage = "vmlinuz";} # these produce vmlinuz +elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage; } +elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage; } +else { $kimage = "vmlinuz";} # Default + +if (-r "$CONF_LOC" && -f "$CONF_LOC" ) { + if (open(CONF, "$CONF_LOC")) { + while () { + chomp; + s/\#.*$//g; + next if /^\s*$/; + + $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig; + $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig; + $reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig; + $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig; + $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig; + $clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig; + $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig; + $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig; + $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig; + $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig; + $do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig; + $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig; + $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig; + $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig; + $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig; + $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig; + $relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig; + $force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig; + + + $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig; + $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig; + $clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig; + $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig; + $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig; + $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig; + $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig; + $do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig; + $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig; + $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig; + $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig; + $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig; + $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig; + $relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig; + $force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig; + + $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig; + $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig; + $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig; + $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig; + $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig; + $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig; + } + close CONF; + $have_conffile = "Yes"; + } +} + + +$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch; + +#check to see if we are trying to remove a running kernel +# if so we abort right now. +chop($running=`uname -r`); +if ($running eq $version) { + print STDERR "WARN: Proceeding with removing running kernel image.\n"; +} + +#Now, they have an alternate kernel which they are currently running + +# This is just us being nice to lilo users. + +chdir("/") or die "could not chdir to /:$!\n"; + +if (-f "/etc/$loader.conf") { #I know, could be a link, but .. + open (LILO, "/etc/$loader.conf") || &success(); # this is not critical + while () { + chop; + s/\#.*//; # nix the comments + next unless /^\s*image\s*=\s(\S+)/o; + $image = $1; + if ($image && -e $image) { + while (defined($image) && -l $image) { + $image = readlink ($image); + } + if (defined($image) && -e $image) { + $WouldInvalidate |= $image =~ /$kimage-$version/; + } + else { + &success(); # invalid $loader.conf file + } + } + else { + &success(); # invalid $loader.conf file + } + } + close (LILO); + if ($WouldInvalidate) { + print STFERR "WARN: Proceeding with removing running kernel image.\n"; + &success(); + } +} + + +# set the env var stem +$ENV{'STEM'} = "linux"; + +sub exec_script { + my $type = shift; + my $script = shift; + print STDERR "Running $type hook script $script.\n"; + system ("$script $version $realimageloc$kimage-$version") && + print STDERR "User $type hook script [$script] "; + if ($?) { + if ($? == -1) { + print STDERR "failed to execute: $!\n"; + } + elsif ($? & 127) { + printf STDERR "died with signal %d, %s coredump\n", + ($? & 127), ($? & 128) ? 'with' : 'without'; + } + else { + printf STDERR "exited with value %d\n", $? >> 8; + } + exit $? >> 8; + } +} +sub run_hook { + my $type = shift; + my $script = shift; + if ($script =~ m,^/,) { + # Full path provided for the hook script + if (-x "$script") { + &exec_script($type,$script); + } + else { + die "The provided $type hook script [$script] could not be run.\n"; + } + } + else { + # Look for it in a safe path + for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') { + if (-x "$path/$script") { + &exec_script($type, "$path/$script"); + return 0; + } + } + # No luck + print STDERR "Could not find $type hook script [$script].\n"; + die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n"; + } +} + + +my $options; +for (@ARGV) { + s,','\\'',g; + $options .= " '$_'"; +} +$ENV{'DEB_MAINT_PARAMS'}="$options"; + +## Run user hook script here, if any +if (-x "$prerm_hook") { + &run_hook("prerm", $prerm_hook); +} +if (-d "/etc/kernel/prerm.d") { + print STDERR "Examining /etc/kernel/prerm.d.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version " . + "--arg=$realimageloc$kimage-$version /etc/kernel/prerm.d") && + die "Failed to process /etc/kernel/prerm.d"; +} +if (-d "/etc/kernel/prerm.d/$version") { + print STDERR "Examining /etc/kernel/prerm.d/$version.\n"; + system ("run-parts --verbose --exit-on-error --arg=$version" . + " --arg=$realimageloc$kimage-$version " . + "/etc/kernel/prerm.d/$version") && + die "Failed to process /etc/kernel/prerm.d/$version"; +} + +sub success () { + # NOTE: need to keep this list in sync with rules.d/2-binary-arch.mk + my %files_to_keep = ( + 'modules.builtin' => 1, + 'modules.order' => 1, + ); + my $short; + for my $file () { + $short = $file; $short =~ s,.*/,,; + if (!defined $files_to_keep{$short}) { + unlink "$file"; + } + } + exit 0; +} + + + +&success(); +exit 0; +__END__ + + + + + --- linux-3.13.0.orig/debian/control.stub +++ linux-3.13.0/debian/control.stub @@ -0,0 +1,975 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.9.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], libelf-dev, libnewt-dev, libiberty-dev, rsync, libdw-dev, libpci-dev, dpkg (>= 1.16.0~ubuntu4), pkg-config, flex, bison, libunwind8-dev, openssl, libaudit-dev, bc, python-dev, gawk, device-tree-compiler [powerpc], u-boot-tools [powerpc], libc6-dev-ppc64 [powerpc] +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-trusty.git +XS-Testsuite: autopkgtest +#XS-Testsuite-Depends: gcc-4.7 binutils + +Package: linux-source-3.13.0 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-3 +Depends: ${misc:Depends}, binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version 3.13.0 with Ubuntu patches + This package provides the source code for the Linux kernel version + 3.13.0. + . + This package is mainly meant for other packages to use, in order to build + custom flavours. + . + If you wish to use this package to create a custom Linux kernel, then it + is suggested that you investigate the package kernel-package, which has + been designed to ease the task of creating kernel image packages. + . + If you are simply trying to build third-party modules for your kernel, + you do not want this package. Install the appropriate linux-headers + package instead. + +Package: linux-doc +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Conflicts: linux-doc-3 +Replaces: linux-doc-3 +Description: Linux kernel specific documentation for version 3.13.0 + This package provides the various documents in the 3.13.0 kernel + Documentation/ subdirectory. These document kernel subsystems, APIs, device + drivers, and so on. See + /usr/share/doc/linux-doc/00-INDEX for a list of what is + contained in each file. + +Package: linux-headers-3.13.0-46 +Architecture: all +Multi-Arch: foreign +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Description: Header files related to Linux kernel version 3.13.0 + This package provides kernel header files for version 3.13.0, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 armhf arm64 x32 powerpc ppc64el +Depends: ${misc:Depends} +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), linux-kernel-headers +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), linux-kernel-headers, libdrm-dev +Provides: linux-kernel-headers +Multi-Arch: same +Description: Linux Kernel Headers for development + This package provides headers from the Linux kernel. These headers + are used by the installed headers for GNU glibc and other system + libraries. They are NOT meant to be used to build third-party modules for + your kernel. Use linux-headers-* packages for that. + +Package: linux-tools-common +Architecture: all +Multi-Arch: foreign +Section: kernel +Priority: optional +Depends: ${misc:Depends} +Replaces: linux-tools (<= 2.6.32-16.25) +Description: Linux kernel version specific tools for version 3.13.0 + This package provides the architecture independent parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version PGKVER. + +Package: linux-tools-3.13.0-46 +Architecture: i386 amd64 armhf arm64 powerpc ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + You probabally want to install linux-tools-3.13.0-46-. + +Package: linux-cloud-tools-common +Architecture: all +Multi-Arch: foreign +Section: kernel +Priority: optional +Breaks: linux-tools-common (<< 3.13.0-8.28), hv-kvp-daemon-init (<< 3.13) +Replaces: linux-tools-common (<< 3.13.0-8.28), hv-kvp-daemon-init (<< 3.13) +Depends: ${misc:Depends} +Description: Linux kernel version specific cloud tools for version 3.13.0 + This package provides the architecture independent parts for kernel + version locked tools for cloud tools for version PGKVER. + +Package: linux-cloud-tools-3.13.0-46 +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-cloud-tools-common +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud tools for version 3.13.0-46 on + 64 bit x86. + You probabally want to install linux-cloud-tools-3.13.0-46-. + + +Package: linux-image-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc [i386 amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [i386 amd64 x32] | grub [i386 amd64 x32] | lilo (>= 19.1) [i386 amd64 x32] | flash-kernel [armhf arm64] | grub-ieee1275 [ppc64el] +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-generic +Description: Linux kernel image for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-generic, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-generic-dbgsym +Architecture: i386 amd64 armhf arm64 ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-generic +Architecture: i386 amd64 armhf arm64 ppc64el +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-generic +XC-Package-Type: udeb +Section: debian-installer +Architecture: i386 amd64 armhf arm64 ppc64el +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-generic-lpae +Architecture: armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel [armhf] +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-generic-lpae +Description: Linux kernel image for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-generic-lpae +Architecture: armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-generic-lpae, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-generic-lpae-dbgsym +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-generic-lpae +XC-Package-Type: udeb +Section: debian-installer +Architecture: armhf +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc [i386 amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [i386 amd64 x32] | grub [i386 amd64 x32] | lilo (>= 19.1) [i386 amd64 x32] | flash-kernel [armhf arm64] +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-lowlatency +Description: Linux kernel image for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Lowlatency processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-lowlatency meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-lowlatency, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 64 bit x86 SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Lowlatency processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-lowlatency meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-lowlatency-dbgsym +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.13.0 on + 64 bit x86 SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-lowlatency +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-lowlatency +XC-Package-Type: udeb +Section: debian-installer +Architecture: i386 amd64 +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-ieee1275 +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc64-emb +Description: Linux kernel image for version 3.13.0 on 64-bit PowerPC SMP Book3E + This package contains the Linux kernel image for version 3.13.0 on + 64-bit PowerPC SMP Book3E. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP Book3E processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-emb meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc64-emb, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64-bit PowerPC SMP Book3E + This package contains the Linux kernel extra modules for version 3.13.0 on + 64-bit PowerPC SMP Book3E. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP Book3E processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-emb meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64-bit PowerPC SMP Book3E + This package provides kernel header files for version 3.13.0 on + 64-bit PowerPC SMP Book3E. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc64-emb-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64-bit PowerPC SMP Book3E + This package provides a kernel debug image for version 3.13.0 on + 64-bit PowerPC SMP Book3E. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc64-emb +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc64-emb +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc64-smp +Description: Linux kernel image for version 3.13.0 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 3.13.0 on + 64-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc64-smp, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 64-bit PowerPC SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 64-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 64-bit PowerPC SMP + This package provides kernel header files for version 3.13.0 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc64-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 64-bit PowerPC SMP + This package provides a kernel debug image for version 3.13.0 on + 64-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc64-smp +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-ieee1275 +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc-e500 +Description: Linux kernel image for version 3.13.0 on 32-bit Freescale Power e500v1 and e500v2 + This package contains the Linux kernel image for version 3.13.0 on + 32-bit Freescale Power e500v1 and e500v2. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit Freescale Power e500v1 and e500v2 processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-e500 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc-e500, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 32-bit Freescale Power e500v1 and e500v2 + This package contains the Linux kernel extra modules for version 3.13.0 on + 32-bit Freescale Power e500v1 and e500v2. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit Freescale Power e500v1 and e500v2 processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-e500 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 32-bit Freescale Power e500v1 and e500v2 + This package provides kernel header files for version 3.13.0 on + 32-bit Freescale Power e500v1 and e500v2. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc-e500-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 32-bit Freescale Power e500v1 and e500v2 + This package provides a kernel debug image for version 3.13.0 on + 32-bit Freescale Power e500v1 and e500v2. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc-e500 +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc-e500 +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-ieee1275 +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc-e500mc +Description: Linux kernel image for version 3.13.0 on 32-bit Freescale Power e500mc + This package contains the Linux kernel image for version 3.13.0 on + 32-bit Freescale Power e500mc. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit Freescale Power e500mc processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-e500mc meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc-e500mc, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 32-bit Freescale Power e500mc + This package contains the Linux kernel extra modules for version 3.13.0 on + 32-bit Freescale Power e500mc. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit Freescale Power e500mc processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-e500mc meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 32-bit Freescale Power e500mc + This package provides kernel header files for version 3.13.0 on + 32-bit Freescale Power e500mc. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc-e500mc-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 32-bit Freescale Power e500mc + This package provides a kernel debug image for version 3.13.0 on + 32-bit Freescale Power e500mc. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc-e500mc +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc-e500mc +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-3.13.0 | linux-source-3.13.0, linux-tools, linux-headers-3.13.0-46-powerpc-smp +Description: Linux kernel image for version 3.13.0 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 3.13.0 on + 32-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.13.0-46-powerpc-smp, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.13.0 on 32-bit PowerPC SMP + This package contains the Linux kernel extra modules for version 3.13.0 on + 32-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.13.0-46, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.13.0 on 32-bit PowerPC SMP + This package provides kernel header files for version 3.13.0 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.13.0-46/debian.README.gz for details. + +Package: linux-image-3.13.0-46-powerpc-smp-dbgsym +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.13.0 on 32-bit PowerPC SMP + This package provides a kernel debug image for version 3.13.0 on + 32-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. This package also includes the + unstripped modules. + +Package: linux-tools-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.13.0-46 +Description: Linux kernel version specific tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.13.0-46 on + 64 bit x86. + +Package: linux-cloud-tools-3.13.0-46-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-3.13.0-46 +Description: Linux kernel version specific cloud tools for version 3.13.0-46 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 3.13.0-46 on + 64 bit x86. + +Package: linux-udebs-powerpc-smp +XC-Package-Type: udeb +Section: debian-installer +Architecture: powerpc +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + --- linux-3.13.0.orig/debian/copyright +++ linux-3.13.0/debian/copyright @@ -0,0 +1,29 @@ +This is the Ubuntu prepackaged version of the Linux kernel. +Linux was written by Linus Torvalds +and others. + +This package was put together by the Ubuntu Kernel Team, from +sources retrieved from upstream linux git. +The sources may be found at most Linux ftp sites, including +ftp://ftp.kernel.org/pub/linux/kernel/ + +This package is currently maintained by the +Ubuntu Kernel Team + +Linux is copyrighted by Linus Torvalds and others. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 dated June, 1991. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Ubuntu Linux systems, the complete text of the GNU General +Public License v2 can be found in `/usr/share/common-licenses/GPL-2'. --- linux-3.13.0.orig/debian/debian.env +++ linux-3.13.0/debian/debian.env @@ -0,0 +1 @@ +DEBIAN=debian.master --- linux-3.13.0.orig/debian/docs/README.inclusion-list +++ linux-3.13.0/debian/docs/README.inclusion-list @@ -0,0 +1,51 @@ +This README describes the reason for, and the use of, module +inclusion lists. + +The original Hardy release had the notion of sub-flavours, +e.g., a flavour that was constructed as a subset of an existing flavour. +For example, the virtual flavour was extracted from the server flavour using +a subset of the server flavour modules. However, there were some difficult +mainteneance issues with regard to packaging, make rules, and scripts. This +re-implementation of the sub-flavours philosophy is hopefully simpler, +and retrofitable to all releases. + +A module inclusion list looks at the problem of of constructing a package +from the perspective of what modules do we _want_ in the package, as opposed +to what modules we _don't_ want. As the kernel matures, more and more devices are added +which makes the problem of configuration maintenance a real pain in the ass. +If we took the approach of disabling all of the config options that we don't want, +then the differences between flavours will quickly become quite large, making +it difficult to quickly compare the individual flavour configs. Each time a +new config option is added then we also have to make a decision about disabling in +order to continue to keep the minimal number of modules. + +A module inclusion list is applied on a per-flavour basis. For example, +debian./control.d/${flavour}.inclusion-list. For example, the +config for virtual is very close to server and generic, but the inclusion list +causes the virtual package to be constructed with _only_ the modules described +in the inclusion list. + +The inclusion list format is a simple bash regular expression list of files. For example, + +arch/*/{crypto,kernel,oprofile} +drivers/acpi/* +drivers/ata/ahci.ko + +These 3 regular expression forms are suitable for expansion by bash and as inputs to 'find'. +See debian/scripts/module-inclusion for details. + +There are 2 log files created as a side effect of the application of the module +inclusion list; $(flavour).inclusion-list.log and $(flavour).depmod.log. + +$(flavour).inclusion-list.log : This log is created while the inclusion list +modules are being copied. If any are missing, then those warnings go in this log. +While its not considered a fatal error, you should endevour to correct your inclusion +list such that there are no missing modules. + +$(flavour).depmod.log : The log is created as a result of running depmod on the +resulting set of modules. If there are missing symbols then you'll find that information +here. Again, you should modify your inclusion list such that there are no missing +symbols. + +Tim Gardner +June 2, 2010 --- linux-3.13.0.orig/debian/gbp.conf +++ linux-3.13.0/debian/gbp.conf @@ -0,0 +1,2 @@ +[buildpackage] +debian-tag = Ubuntu-%(version)s --- linux-3.13.0.orig/debian/linux-cloud-tools-common.hv-fcopy-daemon.upstart +++ linux-3.13.0/debian/linux-cloud-tools-common.hv-fcopy-daemon.upstart @@ -0,0 +1,22 @@ +# On Azure/Hyper-V systems start the hv_fcopy_daemon +# +description "Hyper-V File Copy Protocol Daemon" +author "Andy Whitcroft " + +start on runlevel [2345] +stop on runlevel [!2345] +console log + +pre-start script + if [ -e "/etc/default/hv-kvp-daemon-init" ]; then + . /etc/default/hv-kvp-daemon-init + fi + [ "$RUN_FCOPY_DAEMON" -eq 0 ] && { stop; exit 0; } + if [ -d /sys/class/dmi/id/. ]; then + read company " + +start on runlevel [2345] +stop on runlevel [!2345] +console log + +pre-start script + if [ -e "/etc/default/hv-kvp-daemon-init" ]; then + . /etc/default/hv-kvp-daemon-init + fi + [ "$RUN_KVP_DAEMON" = 0 ] && { stop; exit 0; } + if [ -d /sys/class/dmi/id/. ]; then + read company " + +start on runlevel [2345] +stop on runlevel [!2345] +console log + +pre-start script + if [ -e "/etc/default/hv-kvp-daemon-init" ]; then + . /etc/default/hv-kvp-daemon-init + fi + [ "$RUN_VSS_DAEMON" -eq 0 ] && { stop; exit 0; } + if [ -d /sys/class/dmi/id/. ]; then + read company +# + +DEBIAN=$(shell awk -F= '($$1 == "DEBIAN") { print $$2 }' $$new; \ + done + flavours="$(wildcard $(DEBIAN)/control.d/vars.* $(DEBIAN)/sub-flavours/*.vars)";\ + for i in $$flavours; do \ + $(SHELL) $(DROOT)/scripts/control-create $$i | \ + sed -e 's/PKGVER/$(release)/g' \ + -e 's/ABINUM/$(abinum)/g' \ + -e 's/SRCPKGNAME/$(src_pkg_name)/g' \ + -e 's/=HUMAN=/$(human_arch)/g' \ + >> $(DEBIAN)/control.stub; \ + done + cp $(DEBIAN)/control.stub $(DEBIAN)/control + +.PHONY: debian/control +debian/control: $(DEBIAN)/control.stub + rm -rf $(builddir)/modules $(builddir)/firmware \ + $(builddir)/kernel-versions $(builddir)/package-list \ + $(builddir)/$(DEBIAN) + mkdir -p $(builddir)/modules/$(arch)/ + cp $(DEBIAN)/d-i/modules/* $(builddir)/modules/$(arch)/ + mkdir -p $(builddir)/firmware/$(arch)/ + cp $(DEBIAN)/d-i/firmware/* $(builddir)/firmware/$(arch)/ + cp $(DEBIAN)/d-i/package-list $(DEBIAN)/d-i/kernel-versions $(builddir)/ + touch $(builddir)/modules/$(arch)/kernel-image + # kernel-wedge needs to poke around in $(DEBIAN)/ + ln -nsf $(CURDIR)/debian $(builddir)/debian + + # Some files may need to differ between architectures + if [ -d $(DEBIAN)/d-i/modules-$(arch) ]; then \ + cp $(DEBIAN)/d-i/modules-$(arch)/* \ + $(builddir)/modules/$(arch)/; \ + fi + if [ -d $(DEBIAN)/d-i/firmware-$(arch) ]; then \ + cp $(DEBIAN)/d-i/firmware-$(arch)/* \ + $(builddir)/firmware/$(arch)/; \ + fi + + # Remove unwanted stuff for this architecture + if [ -r "$(DEBIAN)/d-i/exclude-modules.$(arch)" ]; then \ + (cat $(DEBIAN)/d-i/exclude-modules.$(arch); \ + ls $(builddir)/modules/$(arch)/) | sort | uniq -d | \ + (cd $(builddir)/modules/$(arch)/; xargs rm -f); \ + fi + if [ -r "$(DEBIAN)/d-i/exclude-firmware.$(arch)" ]; then \ + (cat $(DEBIAN)/d-i/exclude-firmware.$(arch); \ + ls $(builddir)/firmware/$(arch)/) | sort | uniq -d | \ + (cd $(builddir)/firmware/$(arch)/; xargs rm -f); \ + fi + + # Per flavour module lists + flavour_modules=`ls $(DEBIAN)/d-i/modules.$(arch)-* 2>/dev/null` \ + || true; \ + if [ "$$flavour_modules" != "" ]; then \ + for flav in $$flavour_modules; do \ + name=`echo $$flav | sed 's/.*\/modules.$(arch)-//'`; \ + mkdir $(builddir)/modules/$(arch)-$$name; \ + (cd $(builddir)/modules/; tar cf - `cat ../$$flav`) | \ + (cd $(builddir)/modules/$(arch)-$$name/; tar xf -); \ + touch $(builddir)/modules/$(arch)-$$name/kernel-image; \ + done; \ + fi + flavour_firmware=`ls $(DEBIAN)/d-i/firmware.$(arch)-* 2>/dev/null` \ + || true; \ + if [ "$$flavour_firmware" != "" ]; then \ + for flav in $$flavour_firmware; do \ + name=`echo $$flav | sed 's/.*\/firmware.$(arch)-//'`; \ + mkdir $(builddir)/firmware/$(arch)-$$name; \ + (cd $(builddir)/firmware/; tar cf - `cat ../$$flav`) | \ + (cd $(builddir)/firmware/$(arch)-$$name/; tar xf -);\ + touch $(builddir)/firmware/$(arch)-$$name/kernel-image; \ + done; \ + fi + + # Some files may need to differ between flavours + flavour_module_dirs=`ls -d $(DEBIAN)/d-i/modules-$(arch)-* 2>/dev/null`\ + || true; \ + if [ "$$flavour_module_dirs" ]; then \ + for flav in $$flavour_module_dirs; do \ + name=`echo $$flav | sed 's/.*\/modules-$(arch)-//'`; \ + [ -d $(builddir)/modules/$(arch)-$$name ] || \ + cp -a $(builddir)/modules/$(arch) \ + modules/$(arch)-$$name; \ + cp $$flav/* $(builddir)/modules/$(arch)-$$name/; \ + done; \ + fi + flavour_firmware_dirs=`ls -d $(DEBIAN)/d-i/firmware-$(arch)-* 2>/dev/null`\ + || true; \ + if [ "$$flavour_firmware_dirs" ]; then \ + for flav in $$flavour_firmware_dirs; do \ + name=`echo $$flav | sed 's/.*\/firmware-$(arch)-//'`; \ + [ -d $(builddir)/firmware/$(arch)-$$name ] || \ + cp -a $(builddir)/firmware/$(arch) \ + firmware/$(arch)-$$name; \ + cp $$flav/* $(builddir)/firmware/$(arch)-$$name/; \ + done; \ + fi + + # Remove unwanted stuff for each flavour + flavour_exclude=`ls $(DEBIAN)/d-i/exclude-modules.$(arch)-* 2>/dev/null`\ + || true; \ + if [ "$$flavour_exclude" ]; then \ + for flav in $$flavour_exclude; do \ + name=`echo $$flav | sed 's/.*\/exclude-modules.$(arch)-//'`;\ + [ -d $(builddir)/modules/$(arch)-$$name ] || \ + cp -a $(builddir)/modules/$(arch) \ + $(builddir)/modules/$(arch)-$$name; \ + (cat $$flav; \ + ls $(builddir)/modules/$(arch)-$$name) | \ + sort | uniq -d | \ + (cd $(builddir)/modules/$(arch)-$$name/; \ + xargs rm -f); \ + done; \ + fi + flavour_exclude=`ls $(DEBIAN)/d-i/exclude-firmware.$(arch)-* 2>/dev/null`\ + || true; \ + if [ "$$flavour_exclude" ]; then \ + for flav in $$flavour_exclude; do \ + name=`echo $$flav | sed 's/.*\/exclude-firmware.$(arch)-//'`;\ + [ -d $(builddir)/firmware/$(arch)-$$name ] || \ + cp -a $(builddir)/firmware/$(arch) \ + $(builddir)/firmware/$(arch)-$$name; \ + (cat $$flav; \ + ls $(builddir)/firmware/$(arch)-$$name) | \ + sort | uniq -d | \ + (cd $(builddir)/firmware/$(arch)-$$name/; \ + xargs rm -f); \ + done; \ + fi + + if [ ! -d $(builddir)/modules/$(build_arch) ]; then \ + mkdir -p $(builddir)/modules/$(build_arch); \ + cp $(builddir)/modules/$(arch)/* \ + $(builddir)/modules/$(build_arch); \ + fi + if [ ! -d $(builddir)/firmware/$(build_arch) ]; then \ + mkdir -p $(builddir)/firmware/$(build_arch); \ + cp $(builddir)/firmware/$(arch)/* \ + $(builddir)/firmware/$(build_arch); \ + fi + + cp $(DEBIAN)/control.stub debian/control.stub + cd $(builddir) && kernel-wedge gen-control > $(CURDIR)/debian/control --- linux-3.13.0.orig/debian/rules.d/0-common-vars.mk +++ linux-3.13.0/debian/rules.d/0-common-vars.mk @@ -0,0 +1,235 @@ +# +# The source package name will be the first token from $(DEBIAN)/changelog +# +src_pkg_name=$(shell sed -n '1s/^\(.*\) (.*).*$$/\1/p' $(DEBIAN)/changelog) + +# Get some version info +release := $(shell sed -n '1s/^$(src_pkg_name).*(\(.*\)-.*).*$$/\1/p' $(DEBIAN)/changelog) +revisions := $(shell sed -n 's/^$(src_pkg_name)\ .*($(release)-\(.*\)).*$$/\1/p' $(DEBIAN)/changelog | tac) +revision ?= $(word $(words $(revisions)),$(revisions)) +prev_revisions := $(filter-out $(revision),0.0 $(revisions)) +prev_revision := $(word $(words $(prev_revisions)),$(prev_revisions)) + +prev_fullver ?= $(shell dpkg-parsechangelog -l$(DEBIAN)/changelog -o1 -c1 | sed -ne 's/^Version: *//p') + +family=ubuntu + +# This is an internally used mechanism for the daily kernel builds. It +# creates packages whose ABI is suffixed with a minimal representation of +# the current git HEAD sha. If .git/HEAD is not present, then it uses the +# uuidgen program, +# +# AUTOBUILD can also be used by anyone wanting to build a custom kernel +# image, or rebuild the entire set of Ubuntu packages using custom patches +# or configs. +AUTOBUILD= + +ifneq ($(AUTOBUILD),) +skipabi = true +skipmodule = true +skipdbg = true +gitver=$(shell if test -f .git/HEAD; then cat .git/HEAD; else uuidgen; fi) +gitverpre=$(shell echo $(gitver) | cut -b -3) +gitverpost=$(shell echo $(gitver) | cut -b 38-40) +abi_suffix = -$(gitverpre)$(gitverpost) +endif + +ifneq ($(NOKERNLOG),) +ubuntu_log_opts += --no-kern-log +endif +ifneq ($(PRINTSHAS),) +ubuntu_log_opts += --print-shas +endif + +# Get the kernels own extra version to be added to the release signature. +raw_kernelversion=$(shell make kernelversion) + +# +# full_build -- are we doing a full buildd style build +# +ifeq ($(wildcard /CurrentlyBuilding),) +full_build?=false +else +full_build?=true +endif + +# +# The debug packages are ginormous, so you probably want to skip +# building them (as a developer). +# +ifeq ($(full_build),false) +skipdbg=true +endif + +abinum := $(shell echo $(revision) | sed -r -e 's/([^\+]*)\.[^\.]+(\+.*)?$$/\1/')$(abi_suffix) +prev_abinum := $(shell echo $(prev_revision) | sed -r -e 's/([^\+]*)\.[^\.]+(\+.*)?$$/\1/')$(abi_suffix) +abi_release := $(release)-$(abinum) + +uploadnum := $(shell echo $(revision) | sed -r -e 's/[^\+]*\.([^\.]+(\+.*)?$$)/\1/') +ifneq ($(full_build),false) + uploadnum := $(uploadnum)-Ubuntu +endif + +# XXX: linux-libc-dev got bumped to -803.N inadvertantly by a ti-omap4 upload +# shift our version higher for this package only. Ensure this only +# occurs for the v2.6.35 kernel so that we do not propogate this into +# any other series. +raw_uploadnum := $(shell echo $(revision) | sed -e 's/.*\.//') +libc_dev_version := +ifeq ($(DEBIAN),debian.master) +ifeq ($(release),2.6.35) +libc_dev_version := -v$(release)-$(shell expr "$(abinum)" + 1000).$(raw_uploadnum) +endif +endif + +DEB_HOST_MULTIARCH = $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) +DEB_HOST_GNU_TYPE = $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE = $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH) +DEB_BUILD_ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH) + +# +# Detect invocations of the form 'fakeroot debian/rules binary arch=armhf' +# within an x86'en schroot. This only gets you part of the way since the +# packaging phase fails, but you can at least compile the kernel quickly. +# +arch := $(DEB_HOST_ARCH) +ifneq ($(arch),$(DEB_HOST_ARCH)) + CROSS_COMPILE ?= $(shell dpkg-architecture -a$(arch) -qDEB_HOST_GNU_TYPE -f 2>/dev/null)- +endif + +# +# Detect invocations of the form 'dpkg-buildpackage -B -aarmhf' within +# an x86'en schroot. This is the only way to build all of the packages +# (except for tools). +# +ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) + CROSS_COMPILE ?= $(DEB_HOST_GNU_TYPE)- +endif + +abidir := $(CURDIR)/$(DEBIAN)/abi/$(release)-$(revision)/$(arch) +prev_abidir := $(CURDIR)/$(DEBIAN)/abi/$(release)-$(prev_revision)/$(arch) +commonconfdir := $(CURDIR)/$(DEBIAN)/config +archconfdir := $(CURDIR)/$(DEBIAN)/config/$(arch) +sharedconfdir := $(CURDIR)/debian.master/config +builddir := $(CURDIR)/debian/build +stampdir := $(CURDIR)/debian/stamps + +# +# The binary package name always starts with linux-image-$KVER-$ABI.$UPLOAD_NUM. There +# are places that you'll find linux-image hard coded, but I guess thats OK since the +# assumption that the binary package always starts with linux-image will never change. +# +bin_pkg_name=linux-image-$(abi_release) +extra_pkg_name=linux-image-extra-$(abi_release) +hdrs_pkg_name=linux-headers-$(abi_release) +indep_hdrs_pkg_name=linux-headers-$(abi_release) + +# +# The generation of content in the doc package depends on both 'AUTOBUILD=' and +# 'do_doc_package_content=true'. There are usually build errors during the development +# cycle, so its OK to leave 'do_doc_package_content=false' until those build +# failures get sorted out. Finally, the doc package doesn't really need to be built +# for developer testing (its kind of slow), so only do it if on a buildd. +do_doc_package=true +do_doc_package_content=true +ifeq ($(full_build),false) +do_doc_package_content=false +endif +doc_pkg_name=$(src_pkg_name)-doc + +# +# Similarly with the linux-source package, you need not build it as a developer. Its +# somewhat I/O intensive and utterly useless. +# +do_source_package=true +do_source_package_content=true +ifeq ($(full_build),false) +do_source_package_content=false +endif + +# linux-libc-dev may not be needed, default to building it. +do_libc_dev_package=true + +# common headers normally is built as an indep package, but may be arch +do_common_headers_indep=true + +# add a 'full source' mode +do_full_source=false + +# build tools +ifneq ($(wildcard $(CURDIR)/tools),) + ifeq ($(do_tools),) + ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) + do_tools=false + endif + endif + do_tools?=true +else + do_tools?=false +endif +tools_pkg_name=$(src_pkg_name)-tools-$(abi_release) +tools_common_pkg_name=$(src_pkg_name)-tools-common +tools_flavour_pkg_name=linux-tools-$(abi_release) +cloud_pkg_name=$(src_pkg_name)-cloud-tools-$(abi_release) +cloud_common_pkg_name=$(src_pkg_name)-cloud-tools-common +cloud_flavour_pkg_name=linux-cloud-tools-$(abi_release) + +# The general flavour specific image package. +do_flavour_image_package=true + +# The general flavour specific header package. +do_flavour_header_package=true + +# Support parallel= in DEB_BUILD_OPTIONS (see #209008) +# +# These 2 environment variables set the -j value of the kernel build. For example, +# CONCURRENCY_LEVEL=16 fakeroot $(DEBIAN)/rules binary-debs +# or +# DEB_BUILD_OPTIONS=parallel=16 fakeroot $(DEBIAN)/rules binary-debs +# +# The default is to use the number of CPUs. +# +COMMA=, +DEB_BUILD_OPTIONS_PARA = $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS)))) +ifneq (,$(DEB_BUILD_OPTIONS_PARA)) + CONCURRENCY_LEVEL := $(DEB_BUILD_OPTIONS_PARA) +endif + +ifeq ($(CONCURRENCY_LEVEL),) + # Check the environment + CONCURRENCY_LEVEL := $(shell echo $$CONCURRENCY_LEVEL) + # No? Then build with the number of CPUs on the host. + ifeq ($(CONCURRENCY_LEVEL),) + CONCURRENCY_LEVEL := $(shell expr `getconf _NPROCESSORS_ONLN` \* 1) + endif + # Oh hell, give 'em one + ifeq ($(CONCURRENCY_LEVEL),) + CONCURRENCY_LEVEL := 1 + endif +endif + +conc_level = -j$(CONCURRENCY_LEVEL) + +# target_flavour is filled in for each step +kmake = make ARCH=$(build_arch) \ + CROSS_COMPILE=$(CROSS_COMPILE) \ + KERNELVERSION=$(abi_release)-$(target_flavour) \ + CONFIG_DEBUG_SECTION_MISMATCH=y \ + KBUILD_BUILD_VERSION="$(uploadnum)" \ + LOCALVERSION= localver-extra= \ + CFLAGS_MODULE="-DPKG_ABI=$(abinum)" +ifneq ($(LOCAL_ENV_CC),) +kmake += CC=$(LOCAL_ENV_CC) DISTCC_HOSTS=$(LOCAL_ENV_DISTCC_HOSTS) +endif + +# Locking is required in parallel builds to prevent loss of contents +# of the debian/files. +lockme_file = $(CURDIR)/debian/.LOCK +lockme_cmd = flock -w 60 +lockme = $(lockme_cmd) $(lockme_file) + +# Checks if a var is overriden by the custom rules. Called with var and +# flavour as arguments. +custom_override = \ + $(shell if [ -n "$($(1)_$(2))" ]; then echo "$($(1)_$(2))"; else echo "$($(1))"; fi) --- linux-3.13.0.orig/debian/rules.d/1-maintainer.mk +++ linux-3.13.0/debian/rules.d/1-maintainer.mk @@ -0,0 +1,127 @@ +# The following targets are for the maintainer only! do not run if you don't +# know what they do. + +.PHONY: printenv updateconfigs printchanges insertchanges startnewrelease diffupstream help updateportsconfigs editportsconfigs + +help: + @echo "These are the targets in addition to the normal $(DEBIAN) ones:" + @echo + @echo " printenv : Print some variables used in the build" + @echo + @echo " updateconfigs : Update core arch configs" + @echo + @echo " editconfigs : Update core arch configs interractively" + @echo " genconfigs : Generate core arch configs in CONFIGS/*" + @echo + @echo " updateportsconfigs : Update ports arch configs" + @echo + @echo " editportsconfigs : Update ports arch configs interactivly" + @echo " genportconfigs : Generate ports arch configs in CONFIGS/*" + @echo + @echo " printchanges : Print the current changelog entries (from git)" + @echo + @echo " insertchanges : Insert current changelog entries (from git)" + @echo + @echo " startnewrelease : Start a new changelog set" + @echo + @echo " diffupstream : Diff stock kernel code against upstream (git)" + @echo + @echo " help : If you are kernel hacking, you need the professional" + @echo " version of this" + @echo + @echo "Environment variables:" + @echo + @echo " NOKERNLOG : Do not add upstream kernel commits to changelog" + @echo " CONCURRENCY_LEVEL=X" + @echo " : Use -jX for kernel compile" + @echo " PRINTSHAS : Include SHAs for commits in changelog" + +printdebian: + @echo "$(DEBIAN)" + +updateconfigs defaultconfigs editconfigs genconfigs dumpconfigs: + dh_testdir; + $(SHELL) $(DROOT)/scripts/misc/kernelconfig $@ + rm -rf build + +updateportsconfigs defaultportsconfigs editportsconfigs genportsconfigs askconfigs: + dh_testdir; + $(SHELL) $(DROOT)/scripts/misc/kernelconfig $@ ports + rm -rf build + +printenv: + dh_testdir + @echo "src package name = $(src_pkg_name)" + @echo "release = $(release)" + @echo "revisions = $(revisions)" + @echo "revision = $(revision)" + @echo "uploadnum = $(uploadnum)" + @echo "prev_revisions = $(prev_revisions)" + @echo "prev_revision = $(prev_revision)" + @echo "abinum = $(abinum)" + @echo "gitver = $(gitver)" + @echo "flavours = $(flavours)" + @echo "skipabi = $(skipabi)" + @echo "skipmodule = $(skipmodule)" + @echo "skipdbg = $(skipdbg)" + @echo "ubuntu_log_opts = $(ubuntu_log_opts)" + @echo "CONCURRENCY_LEVEL = $(CONCURRENCY_LEVEL)" + @echo "bin package name = $(bin_pkg_name)" + @echo "hdr package name = $(hdrs_pkg_name)" + @echo "doc package name = $(doc_pkg_name)" + @echo "do_doc_package = $(do_doc_package)" + @echo "do_doc_package_content = $(do_doc_package_content)" + @echo "do_source_package = $(do_source_package)" + @echo "do_source_package_content = $(do_source_package_content)" + @echo "do_libc_dev_package = $(do_libc_dev_package)" + @echo "do_flavour_image_package = $(do_flavour_image_package)" + @echo "do_flavour_header_package = $(do_flavour_header_package)" + @echo "do_common_headers_indep = $(do_common_headers_indep)" + @echo "do_full_source = $(do_full_source)" + @echo "do_tools = $(do_tools)" + @echo "do_any_tools = $(do_any_tools)" + @echo "do_linux_tools = $(do_linux_tools)" + @echo " do_tools_cpupower = $(do_tools_cpupower)" + @echo " do_tools_perf = $(do_tools_perf)" + @echo " do_tools_x86 = $(do_tools_x86)" + @echo "do_cloud_tools = $(do_cloud_tools)" + @echo " do_tools_hyperv = $(do_tools_hyperv)" + @echo "full_build = $(full_build)" + @echo "libc_dev_version = $(libc_dev_version)" + @echo "DEB_HOST_GNU_TYPE = $(DEB_HOST_GNU_TYPE)" + @echo "DEB_BUILD_GNU_TYPE = $(DEB_BUILD_GNU_TYPE)" + @echo "DEB_HOST_ARCH = $(DEB_HOST_ARCH)" + @echo "DEB_BUILD_ARCH = $(DEB_BUILD_ARCH)" + @echo "arch = $(arch)" + @echo "kmake = $(kmake)" + +printchanges: + @baseCommit=$$(git log --pretty=format:'%H %s' | \ + gawk '/UBUNTU: '".*Ubuntu-`echo $(prev_fullver) | sed 's/+/\\\\+/'`"'$$/ { print $$1; exit }'); \ + git log "$$baseCommit"..HEAD | \ + perl -w -f $(DROOT)/scripts/misc/git-ubuntu-log $(ubuntu_log_opts) + +insertchanges: + @perl -w -f $(DROOT)/scripts/misc/insert-changes.pl $(DROOT) $(DEBIAN) + +diffupstream: + @git diff-tree -p refs/remotes/linux-2.6/master..HEAD $(shell ls | grep -vE '^(ubuntu|$(DEBIAN)|\.git.*)') + +startnewrelease: + dh_testdir + @nextminor=$(shell expr `echo $(revision) | gawk -F. '{print $$2}'` + 1); \ + nextmajor=$(shell expr `echo $(revision) | awk -F. '{print $$1}'` + 1); \ + now="$(shell date -R)"; \ + echo "Creating new changelog set for $(release)-$$nextmajor.$$nextminor..."; \ + echo -e "$(src_pkg_name) ($(release)-$$nextmajor.$$nextminor) UNRELEASED; urgency=low\n" > $(DEBIAN)/changelog.new; \ + echo " CHANGELOG: Do not edit directly. Autogenerated at release." >> \ + $(DEBIAN)/changelog.new; \ + echo " CHANGELOG: Use the printchanges target to see the curent changes." \ + >> $(DEBIAN)/changelog.new; \ + echo " CHANGELOG: Use the insertchanges target to create the final log." \ + >> $(DEBIAN)/changelog.new; \ + echo -e "\n -- $$DEBFULLNAME <$$DEBEMAIL> $$now\n" >> \ + $(DEBIAN)/changelog.new ; \ + cat $(DEBIAN)/changelog >> $(DEBIAN)/changelog.new; \ + mv $(DEBIAN)/changelog.new $(DEBIAN)/changelog + --- linux-3.13.0.orig/debian/rules.d/2-binary-arch.mk +++ linux-3.13.0/debian/rules.d/2-binary-arch.mk @@ -0,0 +1,638 @@ +# We don't want make removing intermediary stamps +.SECONDARY : + +# Prepare the out-of-tree build directory +ifeq ($(do_full_source),true) +build_cd = cd $(builddir)/build-$*; # +build_O = +else +build_cd = +build_O = O=$(builddir)/build-$* +endif + +# Typically supplied from the arch makefile, e.g., debian.master/control.d/armhf.mk +ifneq ($(gcc),) +kmake += CC=$(CROSS_COMPILE)$(gcc) +endif + +$(stampdir)/stamp-prepare-%: config-prepare-check-% + @echo Debug: $@ + @touch $@ +$(stampdir)/stamp-prepare-tree-%: target_flavour = $* +$(stampdir)/stamp-prepare-tree-%: $(commonconfdir)/config.common.$(family) $(archconfdir)/config.common.$(arch) $(archconfdir)/config.flavour.% + @echo Debug: $@ + install -d $(builddir)/build-$* + touch $(builddir)/build-$*/ubuntu-build + [ "$(do_full_source)" != 'true' ] && true || \ + rsync -a --exclude debian --exclude debian.master --exclude $(DEBIAN) * $(builddir)/build-$* + cat $^ | sed -e 's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(release)-$(revision)-$* $(raw_kernelversion)"/' > $(builddir)/build-$*/.config + find $(builddir)/build-$* -name "*.ko" | xargs rm -f + $(build_cd) $(kmake) $(build_O) -j1 silentoldconfig prepare scripts + touch $@ + +# Used by developers as a shortcut to prepare a tree for compilation. +prepare-%: $(stampdir)/stamp-prepare-% + @echo Debug: $@ +# Used by developers to allow efficient pre-building without fakeroot. +build-%: $(stampdir)/stamp-build-% + @echo Debug: $@ + +# Do the actual build, including image and modules +$(stampdir)/stamp-build-%: target_flavour = $* +$(stampdir)/stamp-build-%: bldimg = $(call custom_override,build_image,$*) +$(stampdir)/stamp-build-%: dtb_target = $(dtb_files_$*) +$(stampdir)/stamp-build-%: $(stampdir)/stamp-prepare-% + @echo Debug: $@ build_image $(build_image) bldimg $(bldimg) + $(build_cd) $(kmake) $(build_O) $(conc_level) $(bldimg) modules $(dtb_target) + @touch $@ + +# Install the finished build +install-%: pkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$* +install-%: pkgdir_ex = $(CURDIR)/debian/$(extra_pkg_name)-$* +install-%: bindoc = $(pkgdir)/usr/share/doc/$(bin_pkg_name)-$* +install-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym +install-%: signed = $(CURDIR)/debian/$(bin_pkg_name)-signed +install-%: toolspkgdir = $(CURDIR)/debian/$(tools_flavour_pkg_name)-$* +install-%: cloudpkgdir = $(CURDIR)/debian/$(cloud_flavour_pkg_name)-$* +install-%: basepkg = $(hdrs_pkg_name) +install-%: indeppkg = $(indep_hdrs_pkg_name) +install-%: kernfile = $(call custom_override,kernel_file,$*) +install-%: instfile = $(call custom_override,install_file,$*) +install-%: hdrdir = $(CURDIR)/debian/$(basepkg)-$*/usr/src/$(basepkg)-$* +install-%: target_flavour = $* +install-%: dtb_files = $(dtb_files_$*) +install-%: CONFIG_MODULE_SIG_HASH=sha512 +install-%: MODSECKEY=$(builddir)/build-$*/signing_key.priv +install-%: MODPUBKEY=$(builddir)/build-$*/signing_key.x509 +install-%: checks-% + @echo Debug: $@ kernel_file $(kernel_file) kernfile $(kernfile) install_file $(install_file) instfile $(instfile) + dh_testdir + dh_testroot + dh_clean -k -p$(bin_pkg_name)-$* + dh_clean -k -p$(hdrs_pkg_name)-$* +ifneq ($(skipdbg),true) + dh_clean -k -p$(dbg_pkg_name)-$* +endif + + # The main image + # compress_file logic required because not all architectures + # generate a zImage automatically out of the box +ifeq ($(compress_file),) + install -m600 -D $(builddir)/build-$*/$(kernfile) \ + $(pkgdir)/boot/$(instfile)-$(abi_release)-$* +else + install -d $(pkgdir)/boot + gzip -c9v $(builddir)/build-$*/$(kernfile) > \ + $(pkgdir)/boot/$(instfile)-$(abi_release)-$* + chmod 600 $(pkgdir)/boot/$(instfile)-$(abi_release)-$* +endif + +ifeq ($(uefi_signed),true) + install -d $(signed)/$(release)-$(revision) + # Check to see if this supports handoff, if not do not sign it. + # Check the identification area magic and version >= 0x020b + handoff=`dd if="$(pkgdir)/boot/$(instfile)-$(abi_release)-$*" bs=1 skip=514 count=6 2>/dev/null | od -s | gawk '($$1 == 0 && $$2 == 25672 && $$3 == 21362 && $$4 >= 523) { print "GOOD" }'`; \ + if [ "$$handoff" = "GOOD" ]; then \ + cp -p $(pkgdir)/boot/$(instfile)-$(abi_release)-$* \ + $(signed)/$(release)-$(revision)/$(instfile)-$(abi_release)-$*.efi; \ + fi +endif + + install -m644 $(builddir)/build-$*/.config \ + $(pkgdir)/boot/config-$(abi_release)-$* + install -m644 $(abidir)/$* \ + $(pkgdir)/boot/abi-$(abi_release)-$* + install -m600 $(builddir)/build-$*/System.map \ + $(pkgdir)/boot/System.map-$(abi_release)-$* + if [ "$(dtb_files)" ]; then \ + install -d $(pkgdir)/lib/firmware/$(abi_release)-$*/device-tree; \ + for dtb_file in $(dtb_files); do \ + install -m644 $(builddir)/build-$*/arch/$(build_arch)/boot/dts/$$dtb_file \ + $(pkgdir)/lib/firmware/$(abi_release)-$*/device-tree/$$dtb_file; \ + done \ + fi +ifeq ($(no_dumpfile),) + makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \ + -x $(builddir)/build-$*/vmlinux + chmod 0600 $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* +endif + + $(build_cd) $(kmake) $(build_O) $(conc_level) modules_install $(vdso) \ + INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=$(pkgdir)/ \ + INSTALL_FW_PATH=$(pkgdir)/lib/firmware/$(abi_release)-$* + +ifeq ($(do_extras_package),true) + # + # Remove all modules not in the inclusion list. + # + if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \ + mkdir -p $(pkgdir_ex)/lib/modules/$(abi_release)-$*; \ + mv $(pkgdir)/lib/modules/$(abi_release)-$*/kernel \ + $(pkgdir_ex)/lib/modules/$(abi_release)-$*/kernel; \ + $(SHELL) $(DROOT)/scripts/module-inclusion --master \ + $(pkgdir_ex)/lib/modules/$(abi_release)-$*/kernel \ + $(pkgdir)/lib/modules/$(abi_release)-$*/kernel \ + $(DEBIAN)/control.d/$(target_flavour).inclusion-list 2>&1 | \ + tee $(target_flavour).inclusion-list.log; \ + /sbin/depmod -b $(pkgdir) -ea -F $(pkgdir)/boot/System.map-$(abi_release)-$* \ + $(abi_release)-$* 2>&1 |tee $(target_flavour).depmod.log; \ + if [ `grep -c 'unknown symbol' $(target_flavour).depmod.log` -gt 0 ]; then \ + echo "EE: Unresolved module dependencies in base package!"; \ + exit 1; \ + fi \ + fi +endif + +ifeq ($(no_dumpfile),) + makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \ + -x $(builddir)/build-$*/vmlinux + chmod 0600 $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* +endif + rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/build + rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/source + + # Some initramfs-tools specific modules + install -d $(pkgdir)/lib/modules/$(abi_release)-$*/initrd + if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/video/vesafb.ko ]; then\ + ln -f $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/video/vesafb.ko \ + $(pkgdir)/lib/modules/$(abi_release)-$*/initrd/; \ + fi + + # Now the image scripts + install -d $(pkgdir)/DEBIAN + for script in postinst postrm preinst prerm; do \ + sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(instfile)/g' \ + -e 's/=L/$(loader)/g' -e 's@=B@$(build_arch)@g' \ + $(DROOT)/control-scripts/$$script > $(pkgdir)/DEBIAN/$$script; \ + chmod 755 $(pkgdir)/DEBIAN/$$script; \ + done +ifeq ($(do_extras_package),true) + # Install the postinit/postrm scripts in the extras package. + if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \ + install -d $(pkgdir_ex)/DEBIAN; \ + for script in postinst postrm ; do \ + sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(instfile)/g' \ + -e 's/=L/$(loader)/g' -e 's@=B@$(build_arch)@g' \ + debian/control-scripts/extra-post > $(pkgdir_ex)/DEBIAN/$$script; \ + chmod 755 $(pkgdir_ex)/DEBIAN/$$script; \ + done; \ + fi +endif + + # Install the full changelog. +ifeq ($(do_doc_package),true) + install -d $(bindoc) + cat $(DEBIAN)/changelog $(DEBIAN)/changelog.historical | \ + gzip -9 >$(bindoc)/changelog.Debian.old.gz + chmod 644 $(bindoc)/changelog.Debian.old.gz +endif + +ifneq ($(skipsub),true) + for sub in $($(*)_sub); do \ + if ! (TO=$$sub FROM=$* ABI_RELEASE=$(abi_release) $(SHELL) \ + $(DROOT)/scripts/sub-flavour); then exit 1; fi; \ + /sbin/depmod -b debian/$(bin_pkg_name)-$$sub \ + -ea -F debian/$(bin_pkg_name)-$$sub/boot/System.map-$(abi_release)-$* \ + $(abi_release)-$*; \ + install -d debian/$(bin_pkg_name)-$$sub/DEBIAN; \ + for script in postinst postrm preinst prerm; do \ + sed -e 's/=V/$(abi_release)-$*/g' \ + -e 's/=K/$(instfile)/g' \ + -e 's/=L/$(loader)/g' \ + -e 's@=B@$(build_arch)@g' \ + $(DROOT)/control-scripts/$$script > \ + debian/$(bin_pkg_name)-$$sub/DEBIAN/$$script;\ + chmod 755 debian/$(bin_pkg_name)-$$sub/DEBIAN/$$script;\ + done; \ + done +endif + +ifneq ($(skipdbg),true) + # Debug image is simple + install -m644 -D $(builddir)/build-$*/vmlinux \ + $(dbgpkgdir)/usr/lib/debug/boot/vmlinux-$(abi_release)-$* + $(build_cd) $(kmake) $(build_O) modules_install $(vdso) \ + INSTALL_MOD_PATH=$(dbgpkgdir)/usr/lib/debug + # Add .gnu_debuglink sections to each stripped .ko + # pointing to unstripped verson + find $(pkgdir) -name '*.ko' | sed 's|$(pkgdir)||'| while read module ; do \ + if [[ -f "$(dbgpkgdir)/usr/lib/debug/$$module" ]] ; then \ + $(CROSS_COMPILE)objcopy \ + --add-gnu-debuglink=$(dbgpkgdir)/usr/lib/debug/$$module \ + $(pkgdir)/$$module; \ + scripts/sign-file $(CONFIG_MODULE_SIG_HASH) $(MODSECKEY) $(MODPUBKEY) \ + $(pkgdir)/$$module; \ + fi; \ + done + rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/build + rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/source + rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/modules.* + rm -fr $(dbgpkgdir)/usr/lib/debug/lib/firmware +endif + + # The flavour specific headers image + # TODO: Would be nice if we didn't have to dupe the original builddir + install -d -m755 $(hdrdir) + cat $(builddir)/build-$*/.config | \ + sed -e 's/.*CONFIG_DEBUG_INFO=.*/# CONFIG_DEBUG_INFO is not set/g' > \ + $(hdrdir)/.config + chmod 644 $(hdrdir)/.config + $(kmake) O=$(hdrdir) -j1 silentoldconfig prepare scripts + # We'll symlink this stuff + rm -f $(hdrdir)/Makefile + rm -rf $(hdrdir)/include2 $(hdrdir)/source + # Copy over the compilation version. + cp "$(builddir)/build-$*/include/generated/compile.h" \ + "$(hdrdir)/include/generated/compile.h" + # Add UTS_UBUNTU_RELEASE_ABI since UTS_RELEASE is difficult to parse. + echo "#define UTS_UBUNTU_RELEASE_ABI $(abinum)" >> $(hdrdir)/include/generated/utsrelease.h + # powerpc kernel arch seems to need some .o files for external module linking. Add them in. +ifeq ($(build_arch),powerpc) + mkdir -p $(hdrdir)/arch/powerpc/lib + cp $(builddir)/build-$*/arch/powerpc/lib/*.o $(hdrdir)/arch/powerpc/lib +endif + # Script to symlink everything up + $(SHELL) $(DROOT)/scripts/link-headers "$(hdrdir)" "$(indeppkg)" "$*" + # The build symlink + install -d debian/$(basepkg)-$*/lib/modules/$(abi_release)-$* + ln -s /usr/src/$(basepkg)-$* \ + debian/$(basepkg)-$*/lib/modules/$(abi_release)-$*/build + # And finally the symvers + install -m644 $(builddir)/build-$*/Module.symvers \ + $(hdrdir)/Module.symvers + + # Now the header scripts + install -d $(CURDIR)/debian/$(basepkg)-$*/DEBIAN + for script in postinst; do \ + sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(instfile)/g' \ + $(DROOT)/control-scripts/headers-$$script > \ + $(CURDIR)/debian/$(basepkg)-$*/DEBIAN/$$script; \ + chmod 755 $(CURDIR)/debian/$(basepkg)-$*/DEBIAN/$$script; \ + done + + # At the end of the package prep, call the tests + DPKG_ARCH="$(arch)" KERN_ARCH="$(build_arch)" FLAVOUR="$*" \ + VERSION="$(abi_release)" REVISION="$(revision)" \ + PREV_REVISION="$(prev_revision)" ABI_NUM="$(abinum)" \ + PREV_ABI_NUM="$(prev_abinum)" BUILD_DIR="$(builddir)/build-$*" \ + INSTALL_DIR="$(pkgdir)" SOURCE_DIR="$(CURDIR)" \ + run-parts -v $(DROOT)/tests-build + + # + # Remove files which are generated at installation by postinst, + # except for modules.order and modules.builtin + # + # NOTE: need to keep this list in sync with postrm + # + mkdir $(pkgdir)/lib/modules/$(abi_release)-$*/_ + mv $(pkgdir)/lib/modules/$(abi_release)-$*/modules.order \ + $(pkgdir)/lib/modules/$(abi_release)-$*/_ + if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin ] ; then \ + mv $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin \ + $(pkgdir)/lib/modules/$(abi_release)-$*/_; \ + fi + rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.* + mv $(pkgdir)/lib/modules/$(abi_release)-$*/_/* \ + $(pkgdir)/lib/modules/$(abi_release)-$* + rmdir $(pkgdir)/lib/modules/$(abi_release)-$*/_ + +ifeq ($(do_linux_tools),true) + # Create the linux-tools tool links + install -d $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$* +ifeq ($(do_tools_cpupower),true) + ln -s ../../$(src_pkg_name)-tools-$(abi_release)/cpupower $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$* +endif +ifeq ($(do_tools_perf),true) + ln -s ../../$(src_pkg_name)-tools-$(abi_release)/perf $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$* +endif +ifeq ($(do_tools_x86),true) + ln -s ../../$(src_pkg_name)-tools-$(abi_release)/x86_energy_perf_policy $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$* + ln -s ../../$(src_pkg_name)-tools-$(abi_release)/turbostat $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$* +endif +endif +ifeq ($(do_cloud_tools),true) +ifeq ($(do_tools_hyperv),true) + # Create the linux-hyperv tool links + install -d $(cloudpkgdir)/usr/lib/linux-tools/$(abi_release)-$* + ln -s ../../$(src_pkg_name)-tools-$(abi_release)/hv_kvp_daemon $(cloudpkgdir)/usr/lib/linux-tools/$(abi_release)-$* + ln -s ../../$(src_pkg_name)-tools-$(abi_release)/hv_vss_daemon $(cloudpkgdir)/usr/lib/linux-tools/$(abi_release)-$* + ln -s ../../$(src_pkg_name)-tools-$(abi_release)/hv_fcopy_daemon $(cloudpkgdir)/usr/lib/linux-tools/$(abi_release)-$* +endif +endif + +headers_tmp := $(CURDIR)/debian/tmp-headers +headers_dir := $(CURDIR)/debian/linux-libc-dev + +hmake := $(MAKE) -C $(CURDIR) O=$(headers_tmp) \ + KERNELVERSION=$(abi_release) INSTALL_HDR_PATH=$(headers_tmp)/install \ + SHELL="$(SHELL)" ARCH=$(header_arch) + +install-arch-headers: + @echo Debug: $@ + dh_testdir + dh_testroot + dh_clean -k -plinux-libc-dev + + rm -rf $(headers_tmp) + install -d $(headers_tmp) $(headers_dir)/usr/include/ + + $(hmake) $(defconfig) + mv $(headers_tmp)/.config $(headers_tmp)/.config.old + sed -e 's/^# \(CONFIG_MODVERSIONS\) is not set$$/\1=y/' \ + -e 's/.*CONFIG_LOCALVERSION_AUTO.*/# CONFIG_LOCALVERSION_AUTO is not set/' \ + $(headers_tmp)/.config.old > $(headers_tmp)/.config + $(hmake) silentoldconfig + $(hmake) headers_install + + ( cd $(headers_tmp)/install/include/ && \ + find . -name '.' -o -name '.*' -prune -o -print | \ + cpio -pvd --preserve-modification-time \ + $(headers_dir)/usr/include/ ) + mkdir $(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH) + mv $(headers_dir)/usr/include/asm $(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH)/ + + rm -rf $(headers_tmp) + +binary-arch-headers: install-arch-headers + @echo Debug: $@ + dh_testdir + dh_testroot +ifeq ($(do_libc_dev_package),true) +ifneq ($(DEBIAN),debian.master) + echo "non-master branch building linux-libc-dev, aborting" + exit 1 +endif + dh_installchangelogs -plinux-libc-dev + dh_installdocs -plinux-libc-dev + dh_compress -plinux-libc-dev + dh_fixperms -plinux-libc-dev + dh_installdeb -plinux-libc-dev + $(lockme) dh_gencontrol -plinux-libc-dev -- $(libc_dev_version) + dh_md5sums -plinux-libc-dev + dh_builddeb -plinux-libc-dev +endif + +binary-%: pkgimg = $(bin_pkg_name)-$* +binary-%: pkgimg_ex = $(extra_pkg_name)-$* +binary-%: pkghdr = $(hdrs_pkg_name)-$* +binary-%: dbgpkg = $(bin_pkg_name)-$*-dbgsym +binary-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym +binary-%: pkgtools = $(tools_flavour_pkg_name)-$* +binary-%: pkgcloud = $(cloud_flavour_pkg_name)-$* +binary-%: target_flavour = $* +binary-%: install-% + @echo Debug: $@ + dh_testdir + dh_testroot + + dh_installchangelogs -p$(pkgimg) + dh_installdocs -p$(pkgimg) + dh_compress -p$(pkgimg) + dh_fixperms -p$(pkgimg) -X/boot/ + dh_installdeb -p$(pkgimg) + dh_shlibdeps -p$(pkgimg) + $(lockme) dh_gencontrol -p$(pkgimg) + dh_md5sums -p$(pkgimg) + dh_builddeb -p$(pkgimg) -- -Zbzip2 -z9 + +ifeq ($(do_extras_package),true) + if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \ + dh_installchangelogs -p$(pkgimg_ex); \ + dh_installdocs -p$(pkgimg_ex); \ + dh_compress -p$(pkgimg_ex); \ + dh_fixperms -p$(pkgimg_ex) -X/boot/; \ + dh_installdeb -p$(pkgimg_ex); \ + dh_shlibdeps -p$(pkgimg_ex); \ + $(lockme) dh_gencontrol -p$(pkgimg_ex); \ + dh_md5sums -p$(pkgimg_ex); \ + dh_builddeb -p$(pkgimg_ex) -- -Zbzip2 -z9; \ + fi +endif + + dh_installchangelogs -p$(pkghdr) + dh_installdocs -p$(pkghdr) + dh_compress -p$(pkghdr) + dh_fixperms -p$(pkghdr) + dh_shlibdeps -p$(pkghdr) + dh_installdeb -p$(pkghdr) + $(lockme) dh_gencontrol -p$(pkghdr) + dh_md5sums -p$(pkghdr) + dh_builddeb -p$(pkghdr) + +ifneq ($(skipsub),true) + @set -e; for sub in $($(*)_sub); do \ + pkg=$(bin_pkg_name)-$$sub; \ + dh_installchangelogs -p$$pkg; \ + dh_installdocs -p$$pkg; \ + dh_compress -p$$pkg; \ + dh_fixperms -p$$pkg -X/boot/; \ + dh_shlibdeps -p$$pkg; \ + dh_installdeb -p$$pkg; \ + $(lockme) dh_gencontrol -p$$pkg; \ + dh_md5sums -p$$pkg; \ + dh_builddeb -p$$pkg; \ + done +endif + +ifneq ($(skipdbg),true) + dh_installchangelogs -p$(dbgpkg) + dh_installdocs -p$(dbgpkg) + dh_compress -p$(dbgpkg) + dh_fixperms -p$(dbgpkg) + dh_installdeb -p$(dbgpkg) + $(lockme) dh_gencontrol -p$(dbgpkg) + dh_md5sums -p$(dbgpkg) + dh_builddeb -p$(dbgpkg) + + # Hokay...here's where we do a little twiddling... + # Renaming the debug package prevents it from getting into + # the primary archive, and therefore prevents this very large + # package from being mirrored. It is instead, through some + # archive admin hackery, copied to http://ddebs.ubuntu.com. + # + mv ../$(dbgpkg)_$(release)-$(revision)_$(arch).deb \ + ../$(dbgpkg)_$(release)-$(revision)_$(arch).ddeb + set -e; \ + ( \ + $(lockme_cmd) 9 || exit 1; \ + if grep -qs '^Build-Debug-Symbols: yes$$' /CurrentlyBuilding; then \ + sed -i '/^$(dbgpkg)_/s/\.deb /.ddeb /' debian/files; \ + else \ + grep -v '^$(dbgpkg)_.*$$' debian/files > debian/files.new; \ + mv debian/files.new debian/files; \ + fi; \ + ) 9>$(lockme_file) + # Now, the package wont get into the archive, but it will get put + # into the debug system. +endif + +ifeq ($(do_linux_tools),true) + dh_installchangelogs -p$(pkgtools) + dh_installdocs -p$(pkgtools) + dh_compress -p$(pkgtools) + dh_fixperms -p$(pkgtools) + dh_shlibdeps -p$(pkgtools) + dh_installdeb -p$(pkgtools) + $(lockme) dh_gencontrol -p$(pkgtools) + dh_md5sums -p$(pkgtools) + dh_builddeb -p$(pkgtools) +endif +ifeq ($(do_cloud_tools),true) + dh_installchangelogs -p$(pkgcloud) + dh_installdocs -p$(pkgcloud) + dh_compress -p$(pkgcloud) + dh_fixperms -p$(pkgcloud) + dh_shlibdeps -p$(pkgcloud) + dh_installdeb -p$(pkgcloud) + $(lockme) dh_gencontrol -p$(pkgcloud) + dh_md5sums -p$(pkgcloud) + dh_builddeb -p$(pkgcloud) +endif + +ifneq ($(full_build),false) + # Clean out this flavours build directory. + rm -rf $(builddir)/build-$* + # Clean out the debugging package source directory. + rm -rf $(dbgpkgdir) +endif + +# +# per-architecture packages +# +builddirpa = $(builddir)/tools-perarch + +$(stampdir)/stamp-prepare-perarch: + @echo Debug: $@ +ifeq ($(do_any_tools),true) + rm -rf $(builddirpa) + install -d $(builddirpa) + for i in *; do ln -s $(CURDIR)/$$i $(builddirpa); done + rm $(builddirpa)/tools + rsync -a tools/ $(builddirpa)/tools/ +endif + touch $@ + +$(stampdir)/stamp-build-perarch: $(stampdir)/stamp-prepare-perarch install-arch-headers + @echo Debug: $@ +ifeq ($(do_linux_tools),true) +ifeq ($(do_tools_cpupower),true) + # Allow for multiple installed versions of cpupower and libcpupower.so: + # Override LIB_MIN in order to to generate a versioned .so named + # libcpupower.so.$(abi_release) and link cpupower with that. + make -C $(builddirpa)/tools/power/cpupower \ + CROSS_COMPILE=$(CROSS_COMPILE) \ + LIB_MIN=$(abi_release) CPUFREQ_BENCH=false +endif +ifeq ($(do_tools_perf),true) + cd $(builddirpa)/tools/perf && \ + make prefix=/usr HAVE_CPLUS_DEMANGLE=1 CROSS_COMPILE=$(CROSS_COMPILE) NO_LIBPYTHON=1 NO_LIBPERL=1 PYTHON=python2.7 +endif +ifeq ($(do_tools_x86),true) + cd $(builddirpa)/tools/power/x86/x86_energy_perf_policy && make CROSS_COMPILE=$(CROSS_COMPILE) + cd $(builddirpa)/tools/power/x86/turbostat && make CROSS_COMPILE=$(CROSS_COMPILE) +endif +endif +ifeq ($(do_cloud_tools),true) +ifeq ($(do_tools_hyperv),true) + cd $(builddirpa)/tools/hv && make CFLAGS="-I$(headers_dir)/usr/include -I$(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH)" CROSS_COMPILE=$(CROSS_COMPILE) hv_kvp_daemon hv_vss_daemon hv_fcopy_daemon +endif +endif + @touch $@ + +install-perarch: toolspkgdir = $(CURDIR)/debian/$(tools_pkg_name) +install-perarch: cloudpkgdir = $(CURDIR)/debian/$(cloud_pkg_name) +install-perarch: $(stampdir)/stamp-build-perarch + @echo Debug: $@ + # Add the tools. +ifeq ($(do_linux_tools),true) + install -d $(toolspkgdir)/usr/lib + install -d $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release) + +ifeq ($(do_tools_cpupower),true) + install -m755 $(builddirpa)/tools/power/cpupower/cpupower \ + $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release) + # Install only the full versioned libcpupower.so.$(abi_release), not + # the usual symlinks to it. + install -m644 $(builddirpa)/tools/power/cpupower/libcpupower.so.$(abi_release) \ + $(toolspkgdir)/usr/lib/ +endif +ifeq ($(do_tools_perf),true) + install -m755 $(builddirpa)/tools/perf/perf $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release) +endif +ifeq ($(do_tools_x86),true) + install -m755 $(builddirpa)/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy \ + $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release) + install -m755 $(builddirpa)/tools/power/x86/turbostat/turbostat \ + $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release) +endif +endif +ifeq ($(do_cloud_tools),true) +ifeq ($(do_tools_hyperv),true) + install -d $(cloudpkgdir)/usr/lib + install -d $(cloudpkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release) + install -m755 $(builddirpa)/tools/hv/hv_kvp_daemon \ + $(cloudpkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release) + install -m755 $(builddirpa)/tools/hv/hv_vss_daemon \ + $(cloudpkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release) + install -m755 $(builddirpa)/tools/hv/hv_fcopy_daemon \ + $(cloudpkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release) +endif +endif + +binary-perarch: toolspkg = $(tools_pkg_name) +binary-perarch: cloudpkg = $(cloud_pkg_name) +binary-perarch: install-perarch + @echo Debug: $@ +ifeq ($(do_linux_tools),true) + dh_strip -p$(toolspkg) + dh_installchangelogs -p$(toolspkg) + dh_installdocs -p$(toolspkg) + dh_compress -p$(toolspkg) + dh_fixperms -p$(toolspkg) + dh_shlibdeps -p$(toolspkg) + dh_installdeb -p$(toolspkg) + $(lockme) dh_gencontrol -p$(toolspkg) + dh_md5sums -p$(toolspkg) + dh_builddeb -p$(toolspkg) +endif +ifeq ($(do_cloud_tools),true) + dh_strip -p$(cloudpkg) + dh_installchangelogs -p$(cloudpkg) + dh_installdocs -p$(cloudpkg) + dh_compress -p$(cloudpkg) + dh_fixperms -p$(cloudpkg) + dh_shlibdeps -p$(cloudpkg) + dh_installdeb -p$(cloudpkg) + $(lockme) dh_gencontrol -p$(cloudpkg) + dh_md5sums -p$(cloudpkg) + dh_builddeb -p$(cloudpkg) +endif + +binary-debs: signed = $(CURDIR)/debian/$(bin_pkg_name)-signed +binary-debs: signedv = $(CURDIR)/debian/$(bin_pkg_name)-signed/$(release)-$(revision) +binary-debs: signed_tar = $(src_pkg_name)_$(release)-$(revision)_$(arch).tar.gz +binary-debs: binary-perarch $(addprefix binary-,$(flavours)) + @echo Debug: $@ +ifeq ($(uefi_signed),true) + echo $(release)-$(revision) > $(signedv)/version + cd $(signedv) && ls *.efi >flavours + cd $(signed) && tar czvf ../../../$(signed_tar) . + dpkg-distaddfile $(signed_tar) raw-uefi - +endif + +build-arch-deps-$(do_flavour_image_package) += $(addprefix $(stampdir)/stamp-build-,$(flavours)) +build-arch: $(build-arch-deps-true) + @echo Debug: $@ + +ifeq ($(AUTOBUILD),) +binary-arch-deps-$(do_flavour_image_package) += binary-udebs +else +binary-arch-deps-$(do_flavour_image_package) = binary-debs +endif +binary-arch-deps-$(do_libc_dev_package) += binary-arch-headers +ifneq ($(do_common_headers_indep),true) +binary-arch-deps-$(do_flavour_header_package) += binary-headers +endif +binary-arch: $(binary-arch-deps-true) + @echo Debug: $@ + --- linux-3.13.0.orig/debian/rules.d/3-binary-indep.mk +++ linux-3.13.0/debian/rules.d/3-binary-indep.mk @@ -0,0 +1,163 @@ +build-indep: + @echo Debug: $@ + +# The binary-indep dependency chain is: +# +# install-headers <- install-doc <- install-source <- install-tools <- install-indep <- binary-indep +# install-headers <- binary-headers +# +indep_hdrpkg = $(indep_hdrs_pkg_name) +indep_hdrdir = $(CURDIR)/debian/$(indep_hdrpkg)/usr/src/$(indep_hdrpkg) +install-headers: + @echo Debug: $@ + dh_testdir + dh_testroot + dh_prep + +ifeq ($(do_flavour_header_package),true) + install -d $(indep_hdrdir) + find . -path './debian' -prune -o -path './$(DEBIAN)' -prune \ + -o -path './include/*' -prune \ + -o -path './scripts/*' -prune -o -type f \ + \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \ + -name '*.sh' -o -name '*.pl' -o -name '*.lds' \) \ + -print | cpio -pd --preserve-modification-time $(indep_hdrdir) + cp -a scripts include $(indep_hdrdir) + (find arch -name include -type d -print | \ + xargs -n1 -i: find : -type f) | \ + cpio -pd --preserve-modification-time $(indep_hdrdir) +endif + +docpkg = $(doc_pkg_name) +docdir = $(CURDIR)/debian/$(docpkg)/usr/share/doc/$(docpkg) +install-doc: install-headers + @echo Debug: $@ +ifeq ($(do_doc_package),true) + dh_testdir + dh_testroot + + install -d $(docdir) +ifeq ($(do_doc_package_content),true) + # First the html docs. We skip these for autobuilds + if [ -z "$(AUTOBUILD)" ]; then \ + install -d $(docdir)/$(doc_pkg_name)-tmp; \ + $(kmake) O=$(docdir)/$(doc_pkg_name)-tmp htmldocs; \ + mv $(docdir)/$(doc_pkg_name)-tmp/Documentation/DocBook \ + $(docdir)/html; \ + rm -rf $(docdir)/$(doc_pkg_name)-tmp; \ + fi +endif + # Copy the rest + cp -a Documentation/* $(docdir) + rm -rf $(docdir)/DocBook + find $(docdir) -name .gitignore | xargs rm -f +endif + +srcpkg = $(src_pkg_name)-source-$(release) +srcdir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg) +balldir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg)/$(srcpkg) +install-source: install-doc + @echo Debug: $@ +ifeq ($(do_source_package),true) + + install -d $(srcdir) +ifeq ($(do_source_package_content),true) + find . -path './debian' -prune -o -path './$(DEBIAN)' -prune -o \ + -path './.*' -prune -o -print | \ + cpio -pd --preserve-modification-time $(balldir) + (cd $(srcdir); tar cf - $(srcpkg)) | bzip2 -9c > \ + $(srcdir)/$(srcpkg).tar.bz2 + rm -rf $(balldir) + find './debian' './$(DEBIAN)' \ + -path './debian/linux-*' -prune -o \ + -path './debian/$(src_pkg_name)-*' -prune -o \ + -path './debian/build' -prune -o \ + -path './debian/files' -prune -o \ + -path './debian/stamps' -prune -o \ + -path './debian/tmp' -prune -o \ + -print | \ + cpio -pd --preserve-modification-time $(srcdir) + ln -s $(srcpkg)/$(srcpkg).tar.bz2 $(srcdir)/.. +endif +endif + +install-tools: toolspkg = $(tools_common_pkg_name) +install-tools: toolsbin = $(CURDIR)/debian/$(toolspkg)/usr/bin +install-tools: toolssbin = $(CURDIR)/debian/$(toolspkg)/usr/sbin +install-tools: toolsman = $(CURDIR)/debian/$(toolspkg)/usr/share/man +install-tools: cloudpkg = $(cloud_common_pkg_name) +install-tools: cloudbin = $(CURDIR)/debian/$(cloudpkg)/usr/bin +install-tools: cloudsbin = $(CURDIR)/debian/$(cloudpkg)/usr/sbin +install-tools: cloudman = $(CURDIR)/debian/$(cloudpkg)/usr/share/man +install-tools: install-source $(stampdir)/stamp-build-perarch + @echo Debug: $@ + + rm -rf $(builddir)/tools + install -d $(builddir)/tools + for i in *; do ln -s $(CURDIR)/$$i $(builddir)/tools/; done + rm $(builddir)/tools/tools + rsync -a tools/ $(builddir)/tools/tools/ + + install -d $(toolsbin) + install -d $(toolsman)/man1 + + install -m755 debian/tools/generic $(toolsbin)/cpupower + install -m644 $(CURDIR)/tools/power/cpupower/man/*.1 $(toolsman)/man1/ + + install -m755 debian/tools/generic $(toolsbin)/perf + + install -m755 debian/tools/generic $(toolsbin)/x86_energy_perf_policy + install -m755 debian/tools/generic $(toolsbin)/turbostat + + cd $(builddir)/tools/tools/perf && make man + install -m644 $(builddir)/tools/tools/perf/Documentation/*.1 \ + $(toolsman)/man1 + + install -d $(toolsman)/man8 + install -m644 $(CURDIR)/tools/power/x86/x86_energy_perf_policy/*.8 $(toolsman)/man8 + install -m644 $(CURDIR)/tools/power/x86/turbostat/*.8 $(toolsman)/man8 + + install -d $(cloudsbin) + install -m755 debian/tools/generic $(cloudsbin)/hv_kvp_daemon + install -m755 debian/tools/generic $(cloudsbin)/hv_vss_daemon + install -m755 debian/tools/generic $(cloudsbin)/hv_fcopy_daemon + install -m755 debian/cloud-tools/hv_get_dhcp_info $(cloudsbin) + install -m755 debian/cloud-tools/hv_get_dns_info $(cloudsbin) + install -m755 debian/cloud-tools/hv_set_ifconfig $(cloudsbin) + + install -d $(cloudman)/man8 + install -m644 $(CURDIR)/tools/hv/*.8 $(cloudman)/man8 + + dh_installinit -p$(cloudpkg) --name hv-kvp-daemon + dh_installinit -p$(cloudpkg) --name hv-vss-daemon + dh_installinit -p$(cloudpkg) --name hv-fcopy-daemon + + + +install-indep: install-tools + @echo Debug: $@ + +# This is just to make it easy to call manually. Normally done in +# binary-indep target during builds. +binary-headers: install-headers + @echo Debug: $@ + dh_installchangelogs -p$(indep_hdrpkg) + dh_installdocs -p$(indep_hdrpkg) + dh_compress -p$(indep_hdrpkg) + dh_fixperms -p$(indep_hdrpkg) + dh_installdeb -p$(indep_hdrpkg) + $(lockme) dh_gencontrol -p$(indep_hdrpkg) + dh_md5sums -p$(indep_hdrpkg) + dh_builddeb -p$(indep_hdrpkg) + +binary-indep: install-indep + @echo Debug: $@ + + dh_installchangelogs -i + dh_installdocs -i + dh_compress -i + dh_fixperms -i + dh_installdeb -i + $(lockme) dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i --- linux-3.13.0.orig/debian/rules.d/4-checks.mk +++ linux-3.13.0/debian/rules.d/4-checks.mk @@ -0,0 +1,27 @@ +# Check ABI for package against last release (if not same abinum) +abi-check-%: $(stampdir)/stamp-build-% + @echo Debug: $@ + install -d $(abidir) + sed -e 's/^\(.\+\)[[:space:]]\+\(.\+\)[[:space:]]\(.\+\)$$/\3 \2 \1/' \ + $(builddir)/build-$*/Module.symvers | sort > $(abidir)/$* + @perl -f $(DROOT)/scripts/abi-check "$*" "$(prev_abinum)" "$(abinum)" \ + "$(prev_abidir)" "$(abidir)" "$(skipabi)" + +# Check the module list against the last release (always) +module-check-%: $(stampdir)/stamp-build-% + @echo Debug: $@ + install -d $(abidir) + find $(builddir)/build-$*/ -name \*.ko | \ + sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > $(abidir)/$*.modules + @perl -f $(DROOT)/scripts/module-check "$*" \ + "$(prev_abidir)" "$(abidir)" $(skipmodule) + +checks-%: module-check-% abi-check-% + @echo Debug: $@ + +# Check the config against the known options list. +config-prepare-check-%: $(stampdir)/stamp-prepare-tree-% + @echo Debug: $@ + @perl -f $(DROOT)/scripts/config-check \ + $(builddir)/build-$*/.config "$(arch)" "$*" "$(sharedconfdir)" "$(skipconfig)" + --- linux-3.13.0.orig/debian/rules.d/5-udebs.mk +++ linux-3.13.0/debian/rules.d/5-udebs.mk @@ -0,0 +1,74 @@ +# Do udebs if not disabled in the arch-specific makefile +binary-udebs: binary-debs + @echo Debug: $@ +ifeq ($(disable_d_i),) + @$(MAKE) --no-print-directory -f $(DROOT)/rules DEBIAN=$(DEBIAN) \ + do-binary-udebs +endif + +do-binary-udebs: debian/control + @echo Debug: $@ + dh_testdir + dh_testroot + + # unpack the kernels into a temporary directory + mkdir -p debian/d-i-${arch} + + imagelist=$$(cat $(builddir)/kernel-versions | grep ^${arch} | gawk '{print $$4}') && \ + for i in $$imagelist; do \ + dpkg -x $$(ls ../linux-image-$$i\_$(release)-$(revision)_${arch}.deb) \ + debian/d-i-${arch}; \ + if [ -f ../linux-image-extra-$$i\_$(release)-$(revision)_${arch}.deb ] ; then \ + dpkg -x ../linux-image-extra-$$i\_$(release)-$(revision)_${arch}.deb \ + debian/d-i-${arch}; \ + fi; \ + /sbin/depmod -b debian/d-i-${arch} $$i; \ + done + + # kernel-wedge will error if no modules unless this is touched + touch $(CURDIR)/debian/build/no-modules + + touch ignore-dups + export SOURCEDIR=$(CURDIR)/debian/d-i-${arch} && \ + cd $(builddir) && \ + kernel-wedge install-files && \ + kernel-wedge check + + # Build just the udebs + dilist=$$(dh_listpackages -s | grep "\-di$$") && \ + [ -z "$dilist" ] || \ + for i in $$dilist; do \ + dh_fixperms -p$$i; \ + $(lockme) dh_gencontrol -p$$i; \ + dh_builddeb -p$$i; \ + done + + # Generate the meta-udeb dependancy lists. + @gawk ' \ + /^Package:/ { \ + package=$$2; flavour=""; parch="" } \ + (/Package-Type: udeb/ && package !~ /^'$(src_pkg_name)'-udebs-/) { \ + match(package, "'$(release)'-'$(abinum)'-(.*)-di", bits); \ + flavour = bits[1]; \ + } \ + (/^Architecture:/ && $$0 " " ~ / '$(arch)'/) { \ + parch=$$0; \ + } \ + (flavour != "" && parch != "") { \ + udebs[flavour] = udebs[flavour] package ", "; \ + flavour=""; parch=""; \ + } \ + END { \ + for (flavour in udebs) { \ + package="'$(src_pkg_name)'-udebs-" flavour; \ + file="debian/" package ".substvars"; \ + print("udeb:Depends=" udebs[flavour]) > file; \ + metas="'$(builddir)'/udeb-meta-packages"; \ + print(package) >metas \ + } \ + } \ + ' <$(CURDIR)/debian/control + @while read i; do \ + $(lockme) dh_gencontrol -p$$i; \ + dh_builddeb -p$$i; \ + done <$(builddir)/udeb-meta-packages --- linux-3.13.0.orig/debian/scripts/abi-check +++ linux-3.13.0/debian/scripts/abi-check @@ -0,0 +1,210 @@ +#!/usr/bin/perl -w + +my $flavour = shift; +my $prev_abinum = shift; +my $abinum = shift; +my $prev_abidir = shift; +my $abidir = shift; +my $skipabi = shift; + +my $fail_exit = 1; +my $EE = "EE:"; +my $errors = 0; +my $abiskip = 0; + +my $count; + +print "II: Checking ABI for $flavour...\n"; + +if (-f "$prev_abidir/ignore" + or -f "$prev_abidir/$flavour.ignore" or "$skipabi" eq "true") { + print "WW: Explicitly asked to ignore ABI, running in no-fail mode\n"; + $fail_exit = 0; + $abiskip = 1; + $EE = "WW:"; +} + +if ($prev_abinum != $abinum) { + print "II: Different ABI's, running in no-fail mode\n"; + $fail_exit = 0; + $EE = "WW:"; +} + +if (not -f "$abidir/$flavour" or not -f "$prev_abidir/$flavour") { + print "EE: Previous or current ABI file missing!\n"; + print " $abidir/$flavour\n" if not -f "$abidir/$flavour"; + print " $prev_abidir/$flavour\n" if not -f "$prev_abidir/$flavour"; + + # Exit if the ABI files are missing, but return status based on whether + # skip ABI was indicated. + if ("$abiskip" eq "1") { + exit(0); + } else { + exit(1); + } +} + +my %symbols; +my %symbols_ignore; +my %modules_ignore; +my %module_syms; + +# See if we have any ignores +my $ignore = 0; +print " Reading symbols/modules to ignore..."; + +for $file ("$prev_abidir/../blacklist", "$prev_abidir/../../perm-blacklist") { + if (-f $file) { + open(IGNORE, "< $file") or + die "Could not open $file"; + while () { + chomp; + if ($_ =~ m/M: (.*)/) { + $modules_ignore{$1} = 1; + } else { + $symbols_ignore{$_} = 1; + } + $ignore++; + } + close(IGNORE); + } +} +print "read $ignore symbols/modules.\n"; + +sub is_ignored($$) { + my ($mod, $sym) = @_; + + die "Missing module name in is_ignored()" if not defined($mod); + die "Missing symbol name in is_ignored()" if not defined($sym); + + if (defined($symbols_ignore{$sym}) or defined($modules_ignore{$mod})) { + return 1; + } + return 0; +} + +# Read new syms first +print " Reading new symbols ($abinum)..."; +$count = 0; +open(NEW, "< $abidir/$flavour") or + die "Could not open $abidir/$flavour"; +while () { + chomp; + m/^(\S+)\s(.+)\s(0x[0-9a-f]+)\s(.+)$/; + $symbols{$4}{'type'} = $1; + $symbols{$4}{'loc'} = $2; + $symbols{$4}{'hash'} = $3; + $module_syms{$2} = 0; + $count++; +} +close(NEW); +print "read $count symbols.\n"; + +# Now the old symbols, checking for missing ones +print " Reading old symbols ($prev_abinum)..."; +$count = 0; +open(OLD, "< $prev_abidir/$flavour") or + die "Could not open $prev_abidir/$flavour"; +while () { + chomp; + m/^(\S+)\s(.+)\s(0x[0-9a-f]+)\s(.+)$/; + $symbols{$4}{'old_type'} = $1; + $symbols{$4}{'old_loc'} = $2; + $symbols{$4}{'old_hash'} = $3; + $count++; +} +close(OLD); + +print "read $count symbols.\n"; + +print "II: Checking for missing symbols in new ABI..."; +$count = 0; +foreach $sym (keys(%symbols)) { + if (!defined($symbols{$sym}{'type'})) { + print "\n" if not $count; + printf(" MISS : %s%s\n", $sym, + is_ignored($symbols{$sym}{'old_loc'}, $sym) ? " (ignored)" : ""); + $count++ if !is_ignored($symbols{$sym}{'old_loc'}, $sym); + } +} +print " " if $count; +print "found $count missing symbols\n"; +if ($count) { + print "$EE Symbols gone missing (what did you do!?!)\n"; + $errors++; +} + + +print "II: Checking for new symbols in new ABI..."; +$count = 0; +foreach $sym (keys(%symbols)) { + if (!defined($symbols{$sym}{'old_type'})) { + print "\n" if not $count; + print " NEW : $sym\n"; + $count++; + } +} +print " " if $count; +print "found $count new symbols\n"; +if ($count and $prev_abinum == $abinum) { + print "WW: Found new symbols within same ABI. Not recommended\n"; +} + +print "II: Checking for changes to ABI...\n"; +$count = 0; +my $moved = 0; +my $changed_type = 0; +my $changed_hash = 0; +foreach $sym (keys(%symbols)) { + if (!defined($symbols{$sym}{'old_type'}) or + !defined($symbols{$sym}{'type'})) { + next; + } + + # Changes in location don't hurt us, but log it anyway + if ($symbols{$sym}{'loc'} ne $symbols{$sym}{'old_loc'}) { + printf(" MOVE : %-40s : %s => %s\n", $sym, $symbols{$sym}{'old_loc'}, + $symbols{$sym}{'loc'}); + $moved++; + } + + # Changes to export type are only bad if new type isn't + # EXPORT_SYMBOL. Changing things to GPL are bad. + if ($symbols{$sym}{'type'} ne $symbols{$sym}{'old_type'}) { + printf(" TYPE : %-40s : %s => %s%s\n", $sym, $symbols{$sym}{'old_type'}. + $symbols{$sym}{'type'}, is_ignored($symbols{$sym}{'loc'}, $sym) + ? " (ignored)" : ""); + $changed_type++ if $symbols{$sym}{'type'} ne "EXPORT_SYMBOL" + and !is_ignored($symbols{$sym}{'loc'}, $sym); + } + + # Changes to the hash are always bad + if ($symbols{$sym}{'hash'} ne $symbols{$sym}{'old_hash'}) { + printf(" HASH : %-40s : %s => %s%s\n", $sym, $symbols{$sym}{'old_hash'}, + $symbols{$sym}{'hash'}, is_ignored($symbols{$sym}{'loc'}, $sym) + ? " (ignored)" : ""); + $changed_hash++ if !is_ignored($symbols{$sym}{'loc'}, $sym); + $module_syms{$symbols{$sym}{'loc'}}++; + } +} + +print "WW: $moved symbols changed location\n" if $moved; +print "$EE $changed_type symbols changed export type and weren't ignored\n" if $changed_type; +print "$EE $changed_hash symbols changed hash and weren't ignored\n" if $changed_hash; + +$errors++ if $changed_hash or $changed_type; +if ($changed_hash) { + print "II: Module hash change summary...\n"; + foreach $mod (sort { $module_syms{$b} <=> $module_syms{$a} } keys %module_syms) { + next if ! $module_syms{$mod}; + printf(" %-40s: %d\n", $mod, $module_syms{$mod}); + } +} + +print "II: Done\n"; + +if ($errors) { + exit($fail_exit); +} else { + exit(0); +} --- linux-3.13.0.orig/debian/scripts/config-check +++ linux-3.13.0/debian/scripts/config-check @@ -0,0 +1,413 @@ +#!/usr/bin/perl +# +# check-config -- check the current config for issues +# +use strict; + +my $P = 'check-config'; + +my $test = -1; +if ($ARGV[0] eq '--test') { + $test = $ARGV[1] + 0; +} elsif ($#ARGV != 4) { + die "Usage: $P \n"; +} + +my ($config, $arch, $flavour, $commonconfig, $warn_only) = @ARGV; + +my $checks = "$commonconfig/enforce"; +my %values = (); + +# If we are in overridden then still perform the checks and emit the messages +# but do not return failure. Those items marked FATAL will alway trigger +# failure. +my $fail_exit = 1; +$fail_exit = 0 if ($warn_only eq 'true' || $warn_only eq '1'); +my $exit_val = 0; + +# Predicate execution engine. +sub pred_first { + my ($rest) = @_; + my $depth = 0; + my $off; + my $char; + my $pred; + + for ($off = 0; $off <= length($rest); $off++) { + $char = substr($rest, $off, 1); + if ($char eq '(') { + $depth++; + } elsif ($char eq ')') { + $depth--; + } elsif ($depth == 0 && $char eq '&') { + last; + } elsif ($depth == 0 && $char eq '|') { + last; + } + } + if ($depth > 0) { + die "$P: $rest: missing close parenthesis ')'\n"; + } elsif ($depth < 0) { + die "$P: $rest: missing open parenthesis '('\n"; + } + + ($pred, $rest) = (substr($rest, 0, $off), substr($rest, $off + 1)); + + $pred =~ s/^\s*//; + $pred =~ s/\s*$//; + + #print "pred<$pred> rest<$rest> char<$char>\n"; + ($pred, $rest, $char); +} + +sub pred_do { + my ($pred) = @_; + my (@a) = split(' ', $pred); + my $possible; + + if ($a[0] eq 'arch') { + die "$P: $pred: malformed -- $pred \n" if ($#a < 1); + for $possible (@a[1..$#a]) { + #print " *** ARCH<$flavour ?? $possible>\n"; + return 1 if ($arch eq $possible); + } + return 0; + } elsif ($a[0] eq 'flavour') { + die "$P: $pred: malformed -- $pred \n" if ($#a < 1); + for $possible (@a[1..$#a]) { + #print " *** FLAVOUR<$flavour ?? $possible>\n"; + return 1 if ($flavour eq $possible); + } + return 0; + } elsif ($a[0] eq 'value') { + die "$P: $pred: malformed -- $pred \n" if ($#a != 2); + #print " *** CHECK<$a[1] $a[2] ?? " . $values{$a[1]} . ">\n"; + return ($values{$a[1]} eq $a[2]); + } elsif ($a[0] eq 'exists') { + die "$P: $pred: malformed -- $pred \n" if ($#a != 1); + return (defined $values{$a[1]}); + } else { + die "$P: $pred: unknown predicate\n"; + } + return 1; +} +sub pred_exec { + my ($rest) = @_; + my $pred; + my $cut = 0; + my $res; + my $sep; + + #print "pred_exec<$rest>\n"; + + ($pred, $rest, $sep) = pred_first($rest); + + # Leading ! implies inversion. + if ($pred =~ /^\s*!\s*(.*)$/) { + #print " invert<$1>\n"; + ($cut, $res) = pred_exec($1); + $res = !$res; + + # Leading / implies a CUT operation. + } elsif ($pred =~ /^\s*\/\s*(.*)$/) { + #print " cut<$1>\n"; + ($cut, $res) = pred_exec($1); + $cut = 1; + + # Recurse left for complex expressions. + } elsif ($pred =~ /^\s*\((.*)\)\s*$/) { + #print " left<$1>\n"; + ($cut, $res) = pred_exec($1); + + # Check for common syntax issues. + } elsif ($pred eq '') { + if ($sep eq '&' || $sep eq '|') { + die "$P: $pred$rest: malformed binary operator\n"; + } else { + die "$P: $pred$rest: syntax error\n"; + } + + # A predicate, execute it. + } else { + #print " DO<$pred> sep<$sep>\n"; + $res = pred_do($pred); + } + + #print " pre-return res<$res> sep<$sep>\n"; + if ($sep eq '') { + # + + # Recurse right for binary operators -- note these are lazy. + } elsif ($sep eq '&' || $sep eq '|') { + #print " right<$rest> ? sep<$sep> res<$res>\n"; + if ($rest =~ /^\s*($|\||\&)/) { + die "$P: $pred$rest: malformed binary operator\n"; + } + if ($cut == 0 && (($res && $sep eq '&') || (!$res && $sep eq '|'))) { + #print " right<$rest>\n"; + ($cut, $res) = pred_exec($rest); + } + + } else { + die "$P: $pred$rest: malformed predicate\n"; + } + #warn " return cut<$cut> res<$res> sep<$sep>\n"; + return ($cut, $res); +} + +# +# PREDICATE TESTS +# +my $test_total = 1; +my $test_good = 0; +sub pred_test { + my ($pred, $eres, $eerr) = @_; + my ($cut, $res, $err, $fail); + + $test_total++; + if ($test != 0 && $test != $test_total - 1) { + return; + } + + eval { + ($cut, $res) = pred_exec($pred); + }; + $err = $@; + chomp($err); + + $res = !!$res; + $eres = !!$eres; + + $fail = ''; + if (defined $eres && $res != $eres) { + $fail = "result missmatch, expected $eres returned $res"; + } + if (defined $eerr && $err eq '') { + $fail = "error missmatch, expected '$eerr' returned success"; + } elsif (defined $eerr && $err !~ /$eerr/) { + $fail = "error missmatch, expected '$eerr' returned '$err'"; + } elsif (!defined $eerr && $err ne '') { + $fail = "error missmatch, expected success returned '$err'"; + } + + if ($fail eq '') { + $test_good++; + } else { + print "$pred: $test_total: FAIL: $fail\n"; + } + #print "TEST<$pred> eres<$eres> eerr<$eerr> res<$res> err<$err>\n"; +} +if ($test >= 0) { + $arch = 'MYARCH'; + $flavour = 'MYFLAVOUR'; + %values = ( 'ENABLED' => 'y', 'DISABLED' => 'n' ); + + # Errors. + my $eunkn = 'unknown predicate'; + my $epred = 'malformed'; + my $eclose = 'missing close parenthesis'; + my $eopen = 'missing open parenthesis'; + my $ebinary = 'malformed binary operator'; + + # Basic predicate tests. + print "TEST: $test_total: basic predicate tests ...\n"; + + pred_test('nosuchcommand', undef, $eunkn); + pred_test('arch', undef, $epred); + pred_test('arch MYARCH', 1, undef); + pred_test('arch MYARCH NOTMYARCH', 1, undef); + pred_test('arch NOTMYARCH MYARCH', 1, undef); + pred_test('arch NOTMYARCH NOTMYARCH MYARCH', 1, undef); + pred_test('arch NOTMYARCH MYARCH NOTMYARCH', 1, undef); + pred_test('arch NOTMYARCH', 0, undef); + + pred_test('flavour', undef, $epred); + pred_test('flavour MYFLAVOUR', 1, undef); + pred_test('flavour NOTMYFLAVOUR MYFLAVOUR', 1, undef); + pred_test('flavour NOTMYFLAVOUR NOTMYFLAVOUR MYFLAVOUR', 1, undef); + pred_test('flavour NOTMYFLAVOUR MYFLAVOUR NOTMYFLAVOUR', 1, undef); + pred_test('flavour NOTMYFLAVOUR', 0, undef); + + pred_test('value', undef, $epred); + pred_test('value ENABLED', undef, $epred); + pred_test('value ENABLED ENABLED ENABLED', undef, $epred); + pred_test('value ENABLED y', 1, undef); + pred_test('value ENABLED n', 0, undef); + pred_test('value DISABLED n', 1, undef); + pred_test('value DISABLED y', 0, undef); + + pred_test('exists', undef, $epred); + pred_test('exists ENABLED ENABLED', undef, $epred); + pred_test('exists ENABLED', 1, undef); + pred_test('exists DISABLED', 1, undef); + pred_test('exists MISSING', 0, undef); + + print "TEST: $test_total: inversion tests ...\n"; + pred_test('!exists ENABLED', 0, undef); + pred_test('!exists MISSING', 1, undef); + pred_test('!!exists ENABLED', 1, undef); + pred_test('!!exists MISSING', 0, undef); + pred_test('!!!exists ENABLED', 0, undef); + pred_test('!!!exists MISSING', 1, undef); + + print "TEST: $test_total: parentheses tests ...\n"; + pred_test('(exists ENABLED)', 1, undef); + pred_test('((exists ENABLED))', 1, undef); + pred_test('(((exists ENABLED)))', 1, undef); + pred_test('(exists MISSING)', 0, undef); + pred_test('((exists MISSING))', 0, undef); + pred_test('(((exists MISSING)))', 0, undef); + + pred_test('(!exists ENABLED)', 0, undef); + pred_test('((!exists ENABLED))', 0, undef); + pred_test('(((!exists ENABLED)))', 0, undef); + pred_test('(!exists MISSING)', 1, undef); + pred_test('((!exists MISSING))', 1, undef); + pred_test('(((!exists MISSING)))', 1, undef); + + pred_test('((!(exists ENABLED)))', 0, undef); + pred_test('((!(exists MISSING)))', 1, undef); + pred_test('(!((exists ENABLED)))', 0, undef); + pred_test('(!((exists MISSING)))', 1, undef); + pred_test('!(((exists ENABLED)))', 0, undef); + pred_test('!(((exists MISSING)))', 1, undef); + pred_test('!((!(exists ENABLED)))', 1, undef); + pred_test('!((!(exists MISSING)))', 0, undef); + pred_test('!(!(!(exists ENABLED)))', 0, undef); + pred_test('!(!(!(exists MISSING)))', 1, undef); + + pred_test('(', undef, $eclose); + pred_test('()(', undef, $eclose); + pred_test('(())(', undef, $eclose); + pred_test('((()))(', undef, $eclose); + pred_test('(()', undef, $eclose); + pred_test('((())', undef, $eclose); + pred_test('(((()))', undef, $eclose); + pred_test('(()()', undef, $eclose); + pred_test('((())()', undef, $eclose); + + pred_test(')', undef, $eopen); + pred_test('())', undef, $eopen); + pred_test('(()))', undef, $eopen); + pred_test('((())))', undef, $eopen); + + print "TEST: $test_total: binary and tests ...\n"; + + pred_test('exists ENABLED &', undef, $ebinary); + pred_test('& exists ENABLED', undef, $ebinary); + pred_test('exists ENABLED & & exists ENABLED', undef, $ebinary); + + pred_test('exists MISSING & exists MISSING', 0, undef); + pred_test('exists MISSING & exists ENABLED', 0, undef); + pred_test('exists ENABLED & exists MISSING', 0, undef); + pred_test('exists ENABLED & exists ENABLED', 1, undef); + + pred_test('exists MISSING & exists MISSING & exists MISSING', 0, undef); + pred_test('exists MISSING & exists MISSING & exists ENABLED', 0, undef); + pred_test('exists MISSING & exists ENABLED & exists MISSING', 0, undef); + pred_test('exists MISSING & exists ENABLED & exists ENABLED', 0, undef); + pred_test('exists ENABLED & exists MISSING & exists MISSING', 0, undef); + pred_test('exists ENABLED & exists MISSING & exists ENABLED', 0, undef); + pred_test('exists ENABLED & exists ENABLED & exists MISSING', 0, undef); + pred_test('exists ENABLED & exists ENABLED & exists ENABLED', 1, undef); + + print "TEST: $test_total: binary or tests ...\n"; + + pred_test('exists ENABLED |', undef, $ebinary); + pred_test('| exists ENABLED', undef, $ebinary); + pred_test('exists ENABLED | | exists ENABLED', undef, $ebinary); + + pred_test('exists MISSING | exists MISSING', 0, undef); + pred_test('exists MISSING | exists ENABLED', 1, undef); + pred_test('exists ENABLED | exists MISSING', 1, undef); + pred_test('exists ENABLED | exists ENABLED', 1, undef); + + pred_test('exists MISSING | exists MISSING | exists MISSING', 0, undef); + pred_test('exists MISSING | exists MISSING | exists ENABLED', 1, undef); + pred_test('exists MISSING | exists ENABLED | exists MISSING', 1, undef); + pred_test('exists MISSING | exists ENABLED | exists ENABLED', 1, undef); + pred_test('exists ENABLED | exists MISSING | exists MISSING', 1, undef); + pred_test('exists ENABLED | exists MISSING | exists ENABLED', 1, undef); + pred_test('exists ENABLED | exists ENABLED | exists MISSING', 1, undef); + pred_test('exists ENABLED | exists ENABLED | exists ENABLED', 1, undef); + + print "TEST: $test_total: binary or/and combination tests ...\n"; + + pred_test('exists MISSING | exists MISSING & exists MISSING', 0, undef); + pred_test('exists MISSING | exists MISSING & exists ENABLED', 0, undef); + pred_test('exists MISSING | exists ENABLED & exists MISSING', 0, undef); + pred_test('exists MISSING | exists ENABLED & exists ENABLED', 1, undef); + pred_test('exists ENABLED | exists MISSING & exists MISSING', 1, undef); + pred_test('exists ENABLED | exists MISSING & exists ENABLED', 1, undef); + pred_test('exists ENABLED | exists ENABLED & exists MISSING', 1, undef); + pred_test('exists ENABLED | exists ENABLED & exists ENABLED', 1, undef); + + print "TEST: $test_total: binary and/or combination tests ...\n"; + + pred_test('exists MISSING & exists MISSING | exists MISSING', 0, undef); + pred_test('exists MISSING & exists MISSING | exists ENABLED', 0, undef); + pred_test('exists MISSING & exists ENABLED | exists MISSING', 0, undef); + pred_test('exists MISSING & exists ENABLED | exists ENABLED', 0, undef); + pred_test('exists ENABLED & exists MISSING | exists MISSING', 0, undef); + pred_test('exists ENABLED & exists MISSING | exists ENABLED', 1, undef); + pred_test('exists ENABLED & exists ENABLED | exists MISSING', 1, undef); + pred_test('exists ENABLED & exists ENABLED | exists ENABLED', 1, undef); + + print "TEST: $test_total: cut tests ...\n"; + pred_test('(arch MYARCH & exists MISSING) | exists ENABLED', 1, undef); + pred_test('(arch MYARCH &/ exists MISSING) | exists ENABLED', 0, undef); + + $test_total--; + print "TEST: $test_good/$test_total succeeded\n"; + + exit $exit_val; +} + +# Load up the current configuration values -- FATAL if this fails +print "$P: $config: loading config\n"; +open(CONFIG, "<$config") || die "$P: $config: open failed -- $! -- aborting\n"; +while () { + # Pull out values. + /^#*\s*(CONFIG_\w+)[\s=](.*)$/ or next; + if ($2 eq 'is not set') { + $values{$1} = 'n'; + } else { + $values{$1} = $2; + } +} +close(CONFIG); + +# FATAL: Check if we have an enforcement list. +my $pass = 0; +my $total = 0; +my $line = ''; +print "$P: $checks: loading checks\n"; +open(CHECKS, "<$checks") || die "$P: $checks: open failed -- $! -- aborting\n"; +while () { + /^#/ && next; + chomp; + + $line .= $_; + if ($line =~ /\\$/) { + chop($line); + $line .= " "; + next; + } + $line =~ /^\s*$/ && next; + + #print "CHECK: <$line>\n"; + $total++; + my (undef, $result) = pred_exec($line); + if (!$result) { + print "$P: FAIL: $line\n"; + $exit_val = $fail_exit; + } else { + $pass++; + } + + $line = ''; +} +close(CHECKS); + +print "$P: $pass/$total checks passed -- exit $exit_val\n"; +exit $exit_val; --- linux-3.13.0.orig/debian/scripts/control-create +++ linux-3.13.0/debian/scripts/control-create @@ -0,0 +1,25 @@ +#!/bin/bash + +. debian/debian.env + +vars=$1 + +. $vars + +if [ "$is_sub" = "" ]; then + flavour=$(basename $vars | sed 's/.*\.//') + stub=${DEBIAN}/control.d/flavour-control.stub +else + flavour=$(basename $vars .vars) + stub=${DEBIAN}/sub-flavours/control.stub +fi + +cat $stub | grep -v '^#' | sed \ + -e "s#FLAVOUR#$flavour#g" \ + -e "s#DESC#$desc#g" \ + -e "s#ARCH#$arch#g" \ + -e "s#SUPPORTED#$supported#g" \ + -e "s#TARGET#$target#g" \ + -e "s#BOOTLOADER#$bootloader#g" \ + -e "s#=PROVIDES=#$provides#g" \ + -e "s#=CONFLICTS=#$conflicts#g" --- linux-3.13.0.orig/debian/scripts/link-headers +++ linux-3.13.0/debian/scripts/link-headers @@ -0,0 +1,42 @@ +#!/bin/bash -e + +. debian/debian.env + +hdrdir="$1" +symdir="$2" +flavour="$3" + +echo "Symlinking and copying headers for $flavour..." + +excludes="( -path ./debian -prune -o -path ./${DEBIAN} -prune -o -path ./.git ) -prune -o" + +( +find . $excludes -type f \ + \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \ + -name '*.sh' -o -name '*.pl' -o -name '*.lds' \) -print +find ./include ./scripts -name .gitignore -prune -o -type f -print +find ./include -mindepth 1 -maxdepth 1 $excludes -type d -print +) | ( +while read file; do + dir=$file + lastdir=$file + + if [ -e "$hdrdir/$file" -o -L "$hdrdir/$file" ]; then + continue + fi + + while [ ! -e "$hdrdir/$dir" -a ! -L "$hdrdir/$dir" ]; do + lastdir=$dir + dir=`dirname $dir` + done + # If the last item to exist is a symlink we assume all is good + if [ ! -L "$hdrdir/$dir" ]; then + # Turns things like "./foo" into "../" + deref="`echo -n $lastdir | sed -e 's/^\.//' -e's,/[^/]*,../,g'`" + item="`echo -n $lastdir | sed -e 's/^\.\///'`" + ln -s $deref$symdir/$item $hdrdir/$item + fi +done +) + +exit --- linux-3.13.0.orig/debian/scripts/misc/find-obsolete-firmware +++ linux-3.13.0/debian/scripts/misc/find-obsolete-firmware @@ -0,0 +1,91 @@ +#!/bin/bash +# +# Find all duplicate or obsolete firmware that is being carried +# in the kernel firmware directory. Compare these files against +# the linux-firmware package for the approriate release. For example, +# assuming this is raring, then compare the kernel firmware files +# against the raring branch of linux-firmware. +# +# Example: $0 ~/ubuntu/linux-firmware-raring + +USEAGE="$0 LINUX-FIRMWARE" + +. debian/debian.env + +NFWINFO="`find $DEBIAN -name fwinfo|wc -l`" +if [ ! "$NFWINFO" = "1" ] +then + echo Your repo is hosed. There can only be one fwinfo file. + find $DEBIAN -name fwinfo + exit 1 +fi + +FWINFO="`pwd`/`find $DEBIAN -name fwinfo`" + +if [ "$1" = "" ] +then + echo $USEAGE + exit 1 +fi +FW="$1" + +if [ ! -f $FW/WHENCE ] +then + echo Bogus linux-firmware directory + exit 1 +fi +if ! egrep -q "^firmware:" $FWINFO +then + echo Bogus firmware info file + exit 1 +fi + +# +# Prepare the tree and make firmware. +# +TEE="tee -a" +LO=`pwd`/firmware.txt +LF=`pwd`/lib/firmware +rm -rf debian/build $LF $LO +fakeroot debian/rules clean prepare-generic +cp debian/build/build-generic/.config . +mkdir -p $LF +make firmware_install INSTALL_MOD_PATH=`pwd` + +(cd $LF +find . -type f | while read f +do + BN="`basename $f`" + + if ! grep -q $BN $FWINFO + then + echo "Unused firmware: $f" | $TEE $LO + else + if [ -f $FW/$f ] + then + if ! cmp $FW/$f $f + then + echo "$f differs" | $TEE $LO + else + echo "$f is duplicated" | $TEE $LO + fi + else + echo "$f does not exist in $FW" | $TEE $LO + fi + fi +done) + +# +# Check for firmware files referenced by the kernel +# that do not exist in either location. +# +cat $FWINFO | while read fwi f +do + if [ -s lib/firmware/$f ] || [ -s $FW/$f ] + then + continue + else + echo "Missing firmware $f" | $TEE $LO + fi +done + --- linux-3.13.0.orig/debian/scripts/misc/fw-to-ihex.sh +++ linux-3.13.0/debian/scripts/misc/fw-to-ihex.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +F=$1 +if [ "$F" = "" ] +then + echo You must supply a firmware file. + exit 1 +fi + +echo "unsigned char d[] = {" > $F.c +hexdump -v -e '"\t" 8/1 "0x%02x, " "\n"' $F >> $F.c +echo "};" >> $F.c +sed -i 's/0x .*$//' $F.c + +O="`dirname $F`/`basename $F`.o" +gcc -o $O -c $F.c +objcopy -Oihex $F.o $F.ihex + --- linux-3.13.0.orig/debian/scripts/misc/get-firmware +++ linux-3.13.0/debian/scripts/misc/get-firmware @@ -0,0 +1,62 @@ +#!/bin/bash +# +# Find all files in linux-firmware that are new or different since the previous release +# and copy them into the kernel firmware directory. You should only do this on the +# backport branch since it would be redundant on the released kernel. It assumed you've +# unpacked linux-firmware from each release into separate directories. +# +# Example: $0 ~/ubuntu/linux-firmware-precise ~/ubuntu/linux-firmware-quantal + +if [ "$1" = "" ] || [ "$2" = "" ] || [ ! -f $1/WHENCE ] || [ ! -f $2/WHENCE ] +then + echo You must supply 2 firmware directories. + exit 1 +fi + +if [ ! -f debian/debian.env ] +then + echo You must run this script from the root of the repo + exit 1 +fi +. debian/debian.env + +NFWINFO="`find $DEBIAN -name fwinfo|wc -l`" +if [ ! "$NFWINFO" = "1" ] +then + echo Your repo is hosed. There can only be one fwinfo file. + find $DEBIAN -name fwinfo + exit 1 +fi + +FWINFO="`pwd`/`find $DEBIAN -name fwinfo`" + +CDIR=`pwd` +OFW=$1 +NFW=$2 + +cd $NFW +# +# Find all files in $NFW that are new or different from $1 +# +(find . -type f | egrep -v "debian|git|LICEN|WHEN|READ|Make|configure" | sed 's;\./;;' | \ +while read f +do + if grep -q $f $FWINFO + then + if [ ! -f $OFW/$f ] + then + echo $f + elif ! cmp $f $OFW/$f > /dev/null + then + echo $f + fi + fi +done) |\ +while read f +do + mkdir -p $CDIR/firmware/`dirname $f` + if [ ! -f $CDIR/firmware/`dirname $f`/`basename $f`.ihex ] + then + cp -v $f $CDIR/firmware/`dirname $f` + fi +done --- linux-3.13.0.orig/debian/scripts/misc/getabis +++ linux-3.13.0/debian/scripts/misc/getabis @@ -0,0 +1,130 @@ +#!/bin/bash + +if [ "$#" != "2" ]; then + echo "Usage: $0 " 1>&2 + exit 1 +fi + +if [ "$DEBIAN" = "" ]; then + . debian/debian.env +fi + +ver=$1 +revision=$2 +abi=$(echo $revision | sed -r -e 's/([^\+]*)\.[^\.]+(\+.*)?$/\1/') + +verabi=$ver-$abi +verfull=$ver-$revision + +WGET="wget --tries=1 --timeout=10 --quiet -c" + +abidir="`pwd`/$DEBIAN/abi/$verfull" +tmpdir="`pwd`/abi-tmp-$verfull" +origdir="`pwd`" +fwinfo=$abidir/fwinfo + +test -d $tmpdir || mkdir $tmpdir + +package_prefixes() { + __package_prefixes="$@" +} + +getall() { + arch=$1 + shift + + mkdir -p $abidir/$arch + + for sub in $@; do + if [ -f $abidir/$arch/$sub ]; then + echo "Exists: $sub" + continue + fi + echo -n "Fetching $sub($arch)..." + prefixes="" + filenames="" + cd $tmpdir + for prefix in $__package_prefixes + do + filename=${prefix}-${verabi}-${sub}_${verfull}_${arch}.deb + for r in "${repo_list[@]}" + do + if ! [ -f $filename ]; then + $WGET $r/$filename + fi + if [ -f $filename ]; then + prefixes="$prefixes $prefix" + filenames="$filenames $filename" + break + fi + done + done + if [ "$filenames" != "" ]; then + echo -n "extracting$prefixes..." + for filename in $filenames + do + dpkg-deb --extract $filename tmp + done + find tmp -name "*.ko" | while read f; do + modinfo $f | grep ^firmware >> $fwinfo + done + if [ -f tmp/boot/abi-* ]; then + mv tmp/boot/abi-* $abidir/$arch/$sub + else + echo -n "NO ABI FILE..." + fi + (cd tmp; find lib/modules/$verabi-$sub/kernel -name '*.ko') | \ + sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > \ + $abidir/$arch/$sub.modules + ( + cd tmp; + # Prevent exposing some errors when called by python scripts. SIGPIPE seems to get + # exposed when using the `find ...` form of the command. + ko=$(find lib/modules/$verabi-$sub/kernel \ + -name '*.ko' | head -1) + readelf -p .comment "$ko" | gawk ' + ($1 == "[") { + printf("%s", $3); + for (n=4; n<=NF; n++) { + printf(" %s", $n); + } + print "" + }' | sort -u >$abidir/$arch/$sub.compiler + version=`cat $abidir/$arch/$sub.compiler` + echo -n "$version..." + ) + rm -rf tmp $filenames + echo "done." + else + echo "FAILED." + fi + cd $origdir + done +} + +# MAIN + +# Setup abi directory +mkdir -p $abidir +echo $abi > $abidir/abiname + +# NOTE: The flavours are hardcoded, because they may have changed from the +# current build. + +__package_prefixes="linux-image" + +. $DEBIAN/etc/getabis + +compilers=`cat $abidir/*/*.compiler | sort -u | wc -l` +if [ "$compilers" != 1 ]; then + echo "WARNING: inconsistant compiler versions detected" 1>&2 +fi + +sort < $fwinfo | uniq > fwinfo.tmp +mv fwinfo.tmp $fwinfo + +rmdir $tmpdir + +# Add the new ABI directory, remove the old +git add $abidir +find $DEBIAN/abi/* -maxdepth 0 -type d | grep -v $verfull | while read f; do git rm -r $f;done --- linux-3.13.0.orig/debian/scripts/misc/git-ubuntu-log +++ linux-3.13.0/debian/scripts/misc/git-ubuntu-log @@ -0,0 +1,232 @@ +#!/usr/bin/perl -w + +use strict; +use Text::Wrap; + +my $kernel_auth = "Upstream Kernel Changes"; + +my (%map, @reverts); +my $pstate = 1; +my $no_kern_log = 0; +my $print_shas = 0; +my $first_print = 1; + +while (@ARGV) { + my $opt = $ARGV[0]; + shift; + if ($opt eq "--no-kern-log") { + $no_kern_log = 1; + } elsif ($opt eq "--print-shas") { + $print_shas = 1; + } else { + print STDERR "Unknown options: $opt\n"; + exit(1); + } +} + +sub check_reverts($) { + my ($entry) = @_; + my ($check); + + foreach $check (reverse @reverts) { + my $desc = "Revert \"" . $entry->{'desc'} . "\""; + if ($check->{'desc'} eq $desc) { + @reverts = grep($_->{'desc'} ne $desc, @reverts); + return 1; + } + } + + return 0; +} + +sub add_entry($) { + my ($entry) = @_; + my $key = $entry->{'author'}; + + # store description in array, in email->{desc list} map + if (exists $map{$key}) { + # grab ref + my $obj = $map{$key}; + + # add desc to array + push(@$obj, $entry); + } else { + # create new array, containing 1 item + my @arr = ($entry); + + # store ref to array + $map{$key} = \@arr; + } +} + +sub shortlog_entry($$$$$) { + my ($name, $desc, $bug, $cve, $commit) = @_; + my $entry; + + $desc =~ s#/pub/scm/linux/kernel/git/#/.../#g; + $desc =~ s#\[PATCH\] ##g; + + $desc =~ s#^\s*##g; + $desc =~ s# *UBUNTU: ##g; + + $entry->{'desc'} = $desc; + if ($bug ne '') { + $entry->{'bugno'} = $bug; + } + $entry->{'cve'} = $cve; + $entry->{'commit'} = $commit; + $entry->{'author'} = $name; + + if ($desc =~ /^Revert "/) { + push(@reverts, $entry); + return; + } + + return if check_reverts($entry); + + add_entry($entry); +} + +# sort comparison function +sub by_name($$) { + my ($a, $b) = @_; + + uc($a) cmp uc($b); +} + +sub shortlog_output { + my ($obj, $key, $entry); + + foreach $key (sort by_name keys %map) { + next if $key eq $kernel_auth and $no_kern_log; + + print "\n" unless $first_print; + $first_print = 0; + + # output author + printf " [ %s ]\n\n", $key; + + # output author's 1-line summaries + $obj = $map{$key}; + foreach $entry (reverse @$obj) { + print wrap(" * ", " ", $entry->{'desc'}) . "\n"; + # For non upstream changes, add other info. + if ($key ne $kernel_auth) { + if ($print_shas) { + print " - GIT-SHA " . $entry->{'commit'} . + "\n"; + } + } + if (defined($entry->{'bugno'})) { + print " - LP: #" . $entry->{'bugno'} . "\n"; + } + if (defined($entry->{'cve'})) { + print " - " . $entry->{'cve'} . "\n"; + } + } + } +} + +sub changelog_input { + my ($author, $desc, $commit, $entry, $cve); + + while () { + # get commit + if ($pstate == 1) { + next unless /^commit (.*)/; + + $commit = $1; + + $pstate++; + } + + # get author and email + elsif ($pstate == 2) { + my ($email); + + next unless /^[Aa]uthor:?\s*(.*?)\s*<(.*)>/; + + $author = $1; + $email = $2; + $desc = undef; + $cve = undef; + + # cset author fixups + if (!$author) { + $author = $email; + } + $pstate++; + } + + # skip to blank line + elsif ($pstate == 3) { + next unless /^\s*$/; + $pstate++; + } + + # skip to non-blank line + elsif ($pstate == 4) { + next unless /^\s*?(.*)/; + my $ignore = 0; + my $do_ignore = 0; + my $bug = undef; + my %bugz = (); + my $k; + + # skip lines that are obviously not + # a 1-line cset description + next if /^\s*From: /; + + chomp; + $desc = $1; + + if ($desc =~ /^ *(Revert "|)UBUNTU:/) { + $do_ignore = 1; + } else { + $do_ignore = 0; + $author = $kernel_auth; + $ignore = 1 if $desc =~ /Merge /; + } + while () { + $ignore = 1 if ($do_ignore && /^ *Ignore: yes/i); + if (/^ *Bug: *(#|)([0-9#,\s]*)\s*$/i) { + foreach $k (split('(,|\s)\s*(#|)', $2)) { + $bugz{$k} = 1 if (($k ne '') and ($k =~ /[0-9]+/)); + } + } + elsif (/^ *BugLink: *http.*:\/\/.*\/([0-9]+)/i) { + $bugz{$1} = 1; + } + elsif (/^ *(CVE-.*)/) { + $cve = $1 + } + last if /^commit /; + } + + $bug = join(", #", sort keys(%bugz)); + if (!$ignore) { + &shortlog_entry($author, $desc, $bug, + $cve, $commit, 0); + } + + $pstate = 1; + if ($_ && /^commit (.*)/) { + $commit = $1; + $pstate++; + } + } + + else { + die "invalid parse state $pstate"; + } + } + + foreach $entry (@reverts) { + add_entry($entry); + } +} + +&changelog_input; +&shortlog_output; + +exit(0); --- linux-3.13.0.orig/debian/scripts/misc/insert-changes.pl +++ linux-3.13.0/debian/scripts/misc/insert-changes.pl @@ -0,0 +1,36 @@ +#!/usr/bin/perl -w + +my $debian; +$droot = $ARGV[0] if (defined $ARGV[0]); +$droot = 'debian' if (!defined $droot); +$debian = $ARGV[1] if (defined $ARGV[1]); +$debian = 'debian.master' if (!defined $debian); + +system("make -s -f $droot/rules printchanges > $debian/changes"); + +open(CHANGELOG, "< $debian/changelog") or die "Cannot open changelog"; +open(CHANGES, "< $debian/changes") or die "Cannot open new changes"; +open(NEW, "> $debian/changelog.new") or die "Cannot open new changelog"; + +$printed = 0; + +while () { + if (/^ CHANGELOG: /) { + next if $printed; + + while () { + print NEW; + } + + $printed = 1; + } else { + print NEW; + } +} + +close(NEW); +close(CHANGES); +close(CHANGELOG); + +rename("$debian/changelog.new", "$debian/changelog"); +unlink("$debian/changes"); --- linux-3.13.0.orig/debian/scripts/misc/insert-mainline-changes +++ linux-3.13.0/debian/scripts/misc/insert-mainline-changes @@ -0,0 +1,42 @@ +#!/usr/bin/perl + +if ($#ARGV != 2) { + warn "Usage: $0 \n"; + die " $0 debian.master/changelog v3.2.3 v3.2.2..v3.2.3\n"; +} +my ($changelog, $to, $range) = @ARGV; + +my @changes = (); + +push(@changes, "\n"); +push(@changes, " [ Upstream Kernel Changes ]\n\n"); +push(@changes, " * rebase to $to\n"); + +open(LOG, "git log '$range'|") || die "$0: git log failed: - $!\n"; +while () { + if (m@BugLink: .*launchpad.net/.*/([0-9]+)\s$@) { + push(@changes, " - LP: #$1\n"); + } +} +close(LOG); + +open(CHANGELOG, "< $changelog") or die "Cannot open changelog"; +open(NEW, "> $changelog.new") or die "Cannot open new changelog"; + +$printed = 3; +while () { + if (/^ CHANGELOG: /) { + $printed--; + print NEW; + if ($printed == 0) { + print NEW @changes; + } + next; + } + print NEW; +} + +close(NEW); +close(CHANGELOG); + +rename("$changelog.new", "$changelog"); --- linux-3.13.0.orig/debian/scripts/misc/insert-ubuntu-changes +++ linux-3.13.0/debian/scripts/misc/insert-ubuntu-changes @@ -0,0 +1,58 @@ +#!/usr/bin/perl + +if ($#ARGV != 2) { + die "Usage: $0 \n"; +} +my ($changelog, $end, $start) = @ARGV; + +$end =~ s/.*\.//; +$start =~ s/.*\.//; + +my @changes = (); +my $output = 0; +open(CHG, ") { + if (/^\S+\s+\((.*\.(\d+))\)/) { + if ($2 <= $end) { + last; + } + if ($2 == $start) { + $output = 1; + } + if ($output) { + push(@changes, "\n [ Ubuntu: $1 ]\n\n"); + next; + } + } + next if ($output == 0); + + next if (/^\s*$/); + next if (/^\s--/); + next if (/^\s\s[^\*\s]/); + + push(@changes, $_); +} +close(CHG); + +open(CHANGELOG, "< $changelog") or die "Cannot open changelog"; +open(NEW, "> $changelog.new") or die "Cannot open new changelog"; + +$printed = 3; +while () { + if (/^ CHANGELOG: /) { + $printed--; + print NEW; + if ($printed == 0) { + print NEW @changes; + } + next; + } + print NEW; +} + +close(NEW); +close(CHANGELOG); + +rename("$changelog.new", "$changelog"); --- linux-3.13.0.orig/debian/scripts/misc/kernelconfig +++ linux-3.13.0/debian/scripts/misc/kernelconfig @@ -0,0 +1,172 @@ +#!/bin/bash + +. debian/debian.env + +# Script to merge all configs and run 'make silentoldconfig' on it to wade out bad juju. +# Then split the configs into distro-commmon and flavour-specific parts + +# We have to be in the top level kernel source directory +if [ ! -f MAINTAINERS ] || [ ! -f Makefile ]; then + echo "This does not appear to be the kernel source directory." 1>&2 + exit 1 +fi + +mode=${1:?"Usage: $0 [oldconfig|editconfig]"} +yes=0 +case "$mode" in + update*configs) mode='silentoldconfig' ;; + default*configs) mode='oldconfig'; yes=1 ;; + edit*configs) ;; # All is good + gen*configs) mode='genconfigs' ;; # All is good + dump*configs) mode='config'; yes=1 ;; + *) echo "$0 called with invalid mode" 1>&2 + exit 1 ;; +esac +kerneldir="`pwd`" +confdir="$kerneldir/${DEBIAN}/config" +sharedconfdir="$kerneldir/debian.master/config" +variant="$2" + +. $DEBIAN/etc/kernelconfig + +bindir="`pwd`/${DROOT}/scripts/misc" +common_conf="$confdir/config.common.$family" +tmpdir=`mktemp -d` +mkdir "$tmpdir/CONFIGS" + +if [ "$mode" = "genconfigs" ]; then + keep=1 + mode="oldconfig" + test -d CONFIGS || mkdir CONFIGS +fi + +for arch in $archs; do + rm -rf build + mkdir build + + # Map debian archs to kernel archs + case "$arch" in + ppc64|ppc64el) kernarch="powerpc" ;; + amd64) kernarch="x86_64" ;; + lpia) kernarch="x86" ;; + sparc) kernarch="sparc64" ;; + armel|armhf) kernarch="arm" ;; + *) kernarch="$arch" ;; + esac + + archconfdir=$confdir/$arch + flavourconfigs=$(cd $archconfdir && ls config.flavour.*) + + # Merge configs + # We merge config.common.ubuntu + config.common. + + # config.flavour. + + for config in $flavourconfigs; do + fullconf="$tmpdir/$arch-$config-full" + case $config in + *) + : >"$fullconf" + if [ -f $common_conf ]; then + cat $common_conf >> "$fullconf" + fi + if [ -f $archconfdir/config.common.$arch ]; then + cat $archconfdir/config.common.$arch >> "$fullconf" + fi + cat "$archconfdir/$config" >>"$fullconf" + if [ -f $confdir/OVERRIDES ]; then + cat $confdir/OVERRIDES >> "$fullconf" + fi + ;; + esac + done + + for config in $flavourconfigs; do + if [ -f $archconfdir/$config ]; then + fullconf="$tmpdir/$arch-$config-full" + cat "$fullconf" > build/.config + # Call oldconfig or menuconfig + case "$mode" in + editconfigs) + # Interactively edit config parameters + while : ; do + echo -n "Do you want to edit config: $arch/$config? [Y/n] " + read choice + + case "$choice" in + y* | Y* | "" ) + make O=`pwd`/build ARCH=$kernarch menuconfig + break ;; + n* | N* ) + break ;; + *) + echo "Entry not valid" + esac + done + ;; + *) + echo "* Run $mode (yes=$yes) on $arch/$config ..." + if [ "$yes" -eq 1 ]; then + yes "" | make O=`pwd`/build ARCH=$kernarch "$mode" + else + make O=`pwd`/build ARCH=$kernarch "$mode" + fi ;; + esac + cat build/.config > $archconfdir/$config + cat build/.config > "$tmpdir/CONFIGS/$arch-$config" + if [ "$keep" = "1" ]; then + cat build/.config > CONFIGS/$arch-$config + fi + else + echo "!! Config not found $archconfdir/$config..." + fi + done + + echo "Running splitconfig.pl for $arch" + echo + + # Can we make this more robust by avoiding $tmpdir completely? + # This approach was used for now because I didn't want to change + # splitconfig.pl + (cd $archconfdir; $bindir/splitconfig.pl config.flavour.*; mv config.common \ + config.common.$arch; cp config.common.$arch $tmpdir) +done + +rm -f $common_conf + +# Now run splitconfig.pl on all the config.common. copied to +# $tmpdir +(cd $tmpdir; $bindir/splitconfig.pl *) +( + cd $confdir; + rm -f *-full + grep -v 'is UNMERGABLE' <$tmpdir/config.common >$common_conf + for arch in $archs; do + grep -v 'is UNMERGABLE' <$tmpdir/config.common.$arch \ + >$arch/config.common.$arch + done +) + +echo "" +echo "Running config-check for all configurations ..." +echo "" +fail=0 +for arch in $archs; do + archconfdir=$confdir/$arch + flavourconfigs=$(cd $archconfdir && ls config.flavour.*) + for config in $flavourconfigs; do + flavour="${config##*.}" + if [ -f $archconfdir/$config ]; then + fullconf="$tmpdir/CONFIGS/$arch-$config" + "$bindir/../config-check" "$fullconf" "$arch" "$flavour" "$sharedconfdir" "0" || let "fail=$fail+1" + fi + done +done + +if [ "$fail" != 0 ]; then + echo "" + echo "*** ERROR: $fail config-check failures detected" + echo "" +fi + +rm -rf build + --- linux-3.13.0.orig/debian/scripts/misc/retag +++ linux-3.13.0/debian/scripts/misc/retag @@ -0,0 +1,34 @@ +#!/usr/bin/perl -w + +open(TAGS, "git tag -l |") or die "Could not get list of tags"; +@tags = ; +close(TAGS); + +open(LOGS, "git log --pretty=short |") or die "ERROR: Calling git log"; +my $commit = ""; + +while () { + my $origtag; + + if (m|^commit (.*)$|) { + $commit = $1; + next; + } + + m|\s*UBUNTU: (Ubuntu-2\.6\..*)| or next; + + $tag = $1; + + ($origtag) = grep(/^$tag.orig$/, @tags); + + if (!defined($origtag)) { + print "I: Adding original tag for $tag\n"; + system("git tag -m $tag $tag.orig $tag"); + } + + print "I: Tagging $tag => $commit\n"; + + system("git tag -f -m $tag $tag $commit"); +} + +close(LOGS); --- linux-3.13.0.orig/debian/scripts/misc/splitconfig.pl +++ linux-3.13.0/debian/scripts/misc/splitconfig.pl @@ -0,0 +1,107 @@ +#!/usr/bin/perl -w + +%allconfigs = (); +%common = (); + +print "Reading config's ...\n"; + +for $config (@ARGV) { + # Only config.* + next if $config !~ /^config\..*/; + # Nothing that is disabled, or remnant + next if $config =~ /.*\.(default|disabled|stub)$/; + + %{$allconfigs{$config}} = (); + + print " processing $config ... "; + + open(CONFIG, "< $config"); + + while () { + # Skip comments + /^#*\s*CONFIG_(\w+)[\s=](.*)$/ or next; + + ${$allconfigs{$config}}{$1} = $2; + + $common{$1} = $2; + } + + close(CONFIG); + + print "done.\n"; +} + +print "\n"; + +print "Merging lists ... \n"; + +# %options - pointer to flavour config inside the allconfigs array +for $config (keys(%allconfigs)) { + my %options = %{$allconfigs{$config}}; + + print " processing $config ... "; + + for $key (keys(%common)) { + next if not defined $common{$key}; + + # If we don't have the common option, then it isn't + # common. If we do have that option, it must have the same + # value. EXCEPT where this file does not have a value at all + # which may safely be merged with any other value; the value + # will be elided during recombination of the parts. + if (!defined($options{$key})) { + # Its ok really ... let it merge + } elsif (not defined($options{$key})) { + undef $common{$key}; + } elsif ($common{$key} ne $options{$key}) { + undef $common{$key}; + } + } + + print "done.\n"; +} + +print "\n"; + +print "Creating common config ... "; + +open(COMMON, "> config.common"); +print COMMON "#\n# Common config options automatically generated by splitconfig.pl\n#\n"; + +for $key (sort(keys(%common))) { + if (not defined $common{$key}) { + print COMMON "# CONFIG_$key is UNMERGABLE\n"; + } elsif ($common{$key} eq "is not set") { + print COMMON "# CONFIG_$key is not set\n"; + } else { + print COMMON "CONFIG_$key=$common{$key}\n"; + } +} +close(COMMON); + +print "done.\n\n"; + +print "Creating stub configs ...\n"; + +for $config (keys(%allconfigs)) { + my %options = %{$allconfigs{$config}}; + + print " processing $config ... "; + + open(STUB, "> $config"); + print STUB "#\n# Config options for $config automatically generated by splitconfig.pl\n#\n"; + + for $key (sort(keys(%options))) { + next if defined $common{$key}; + + if ($options{$key} =~ /^is /) { + print STUB "# CONFIG_$key $options{$key}\n"; + } else { + print STUB "CONFIG_$key=$options{$key}\n"; + } + } + + close(STUB); + + print "done.\n"; +} --- linux-3.13.0.orig/debian/scripts/module-check +++ linux-3.13.0/debian/scripts/module-check @@ -0,0 +1,120 @@ +#!/usr/bin/perl -w + +$flavour = shift; +$prev_abidir = shift; +$abidir = shift; +$skipmodule = shift; + +print "II: Checking modules for $flavour..."; + +if (-f "$prev_abidir/ignore.modules" + or -f "$prev_abidir/$flavour.ignore.modules") { + print "explicitly ignoring modules\n"; + exit(0); +} + +if (not -f "$abidir/$flavour.modules" or not -f + "$prev_abidir/$flavour.modules") { + print "previous or current modules file missing!\n"; + print " $abidir/$flavour.modules\n"; + print " $prev_abidir/$flavour.modules\n"; + if (defined($skipmodule)) { + exit(0); + } else { + exit(1); + } +} + +print "\n"; + +my %modules; +my %modules_ignore; +my $missing = 0; +my $new = 0; +my $errors = 0; + +# See if we have any ignores +if (-f "$prev_abidir/../modules.ignore") { + my $ignore = 0; + open(IGNORE, "< $prev_abidir/../modules.ignore") or + die "Could not open $prev_abidir/../modules.ignore"; + print " reading modules to ignore..."; + while () { + chomp; + next if /\s*#/; + $modules_ignore{$_} = 1; + $ignore++; + } + close(IGNORE); + print "read $ignore modules.\n"; +} + +# Read new modules first +print " reading new modules..."; +$new_count = 0; +open(NEW, "< $abidir/$flavour.modules") or + die "Could not open $abidir/$flavour.modules"; +while () { + chomp; + $modules{$_} = 1; + $new_count++; +} +close(NEW); +print "read $new_count modules.\n"; + +# Now the old modules, checking for missing ones +print " reading old modules..."; +$old_count = 0; +open(OLD, "< $prev_abidir/$flavour.modules") or + die "Could not open $prev_abidir/$flavour.modules"; +while () { + chomp; + if (not defined($modules{$_})) { + print "\n" if not $missing; + $missing++; + if (not defined($modules_ignore{$_})) { + print " MISS: $_\n"; + $errors++; + } else { + print " MISS: $_ (ignored)\n"; + } + } else { + $modules{$_}++; + } + $old_count++; +} +close(OLD); +# Check for new modules +foreach $mod (keys(%modules)) { + if ($modules{$mod} < 2) { + print "\n" if not $missing and not $new; + print " NEW : $mod\n"; + $new++; + } +} +if ($new or $missing) { + print " read $old_count modules : new($new) missing($missing)\n"; +} else { + print "read $old_count modules.\n"; +} + + +# Let's see where we stand... +if ($errors) { + if (defined($skipmodule)) { + print "WW: Explicitly asked to ignore failures (probably not good)\n"; + } else { + print "EE: Missing modules (start begging for mercy)\n"; + exit 1 + } +} + +if ($new) { + print "II: New modules (you've been busy, wipe the poop off your nose)\n"; +} else { + print "II: No new modules (hope you're happy, slacker)\n"; +} + +print "II: Done\n"; + +exit(0); --- linux-3.13.0.orig/debian/scripts/module-inclusion +++ linux-3.13.0/debian/scripts/module-inclusion @@ -0,0 +1,60 @@ +#!/bin/bash + +# +# Build a new directory of modules based on an inclusion list. +# The includsion list format must be a bash regular expression. +# +# usage: $0 ROOT INCLUSION_LIST +# example: $0 debian/build/build-virtual \ +# debian/build/build-virtual-ALL debian/build/build-virtual \ +# debian.master/control.d/virtual.inclusion-list +master=0 +if [ "$1" = "--master" ]; then + master=1 + shift +fi + +ROOT=$1 +NROOT=$2 +ILIST=$3 + +# +# Prep a destination directory. +# +mkdir -p ${NROOT} + +# Copy over the framework... +if [ "$master" -eq 1 ]; then + (cd ${ROOT}; find . ! -name "*.ko" -type f) | \ + while read f + do + mkdir -p ${NROOT}/`dirname $f` + mv ${ROOT}/$f ${NROOT}/$f + done +fi + +cat ${ILIST} |while read i +do + # + # 'find' blurts a warning if it cannot find any ko files. + # + if echo "$i" | grep '\*' > /dev/null + then + (cd ${ROOT}; eval find "${i}" -name "*.ko") |while read f + do + mkdir -p ${NROOT}/`dirname $f` + mv ${ROOT}/$f ${NROOT}/$f + done + else + if [ -f "${ROOT}/$i" ] + then + mkdir -p ${NROOT}/`dirname $i` + mv ${ROOT}/$i ${NROOT}/$i + else + echo Warning: Could not find ${ROOT}/$i + fi + fi + +done + +exit 0 --- linux-3.13.0.orig/debian/scripts/sub-flavour +++ linux-3.13.0/debian/scripts/sub-flavour @@ -0,0 +1,69 @@ +#!/bin/bash + +. debian/debian.env + +echo "SUB_PROCESS $FROM => $TO" + +export from_pkg="linux-image-$ABI_RELEASE-$FROM" +export to_pkg="linux-image-$ABI_RELEASE-$TO" + +from_moddir="debian/$from_pkg/lib/modules/$ABI_RELEASE-$FROM" +to_moddir="debian/$to_pkg/lib/modules/$ABI_RELEASE-$FROM" + +install -d "debian/$to_pkg/boot" +install -m644 debian/$from_pkg/boot/config-$ABI_RELEASE-$FROM \ + debian/$to_pkg/boot/ +install -m600 debian/$from_pkg/boot/{vmlinuz,System.map}-$ABI_RELEASE-$FROM \ + debian/$to_pkg/boot/ + +# +# Print some warnings if there are files in the sub-flavours list +# that do not actually exist. +# +cat ${DEBIAN}/sub-flavours/$TO.list | while read line +do +( + cd debian/$from_pkg/lib/modules/$ABI_RELEASE-$FROM/kernel; + # + # If its a wildcard, then check that there are files that match. + # + if echo "$line" | grep '\*' > /dev/null + then + if [ `eval find "$line" -name '*.ko' 2>/dev/null|wc -l` -lt 1 ] + then + echo SUB_INST Warning - No files in $line + fi + # + # Else it should be a single file reference. + # + elif [ ! -f "$line" ] + then + echo SUB_INST Warning - could not find "$line" + fi +) +done + +cat ${DEBIAN}/sub-flavours/$TO.list | while read line; do + ( + cd debian/$from_pkg/lib/modules/$ABI_RELEASE-$FROM/kernel; + if echo "$line" | grep '\*' > /dev/null + then + eval find "$line" -name '*.ko' 2>/dev/null || true + elif [ -f "$line" ] + then + echo "$line" + fi + ); +done | while read mod; do + echo "SUB_INST checking: $mod" + fromdir="/lib/modules/$ABI_RELEASE-$FROM/" + egrep "^($fromdir)?kernel/$mod:" \ + $from_moddir/modules.dep | sed -e "s|^$fromdir||" -e 's/://' -e 's/ /\n/g' | \ + while read m; do + m="${fromdir}$m" + test -f debian/$to_pkg/$m && continue + echo "SUB_INST installing: $m" + install -D -m644 debian/$from_pkg/$m \ + debian/$to_pkg/$m + done +done --- linux-3.13.0.orig/debian/source/format +++ linux-3.13.0/debian/source/format @@ -0,0 +1 @@ +1.0 --- linux-3.13.0.orig/debian/source/options +++ linux-3.13.0/debian/source/options @@ -0,0 +1,3 @@ +# force "dpkg-source -I -i" behavior +diff-ignore +tar-ignore --- linux-3.13.0.orig/debian/stamps/keep-dir +++ linux-3.13.0/debian/stamps/keep-dir @@ -0,0 +1 @@ +Place holder --- linux-3.13.0.orig/debian/tests-build/README +++ linux-3.13.0/debian/tests-build/README @@ -0,0 +1,21 @@ +Scripts placed in this directory get called one at a time by run-parts(8). +The scripts are expected to perform some sort of sanity checks on the +finished build. Scripts will be called once for each flavour. + +Some environment variables are exported to make life a little easier: + +DPKG_ARCH : The dpkg architecture (e.g. "amd64") +KERN_ARCH : The kernel architecture (e.g. "x86_64") +FLAVOUR : The specific flavour for this run (e.g. "generic") +VERSION : The full version of this build (e.g. 2.6.22-1) +REVISION : The exact revision of this build (e.g. 1.3) +PREV_REVISION : The revision prior to this one +ABI_NUM : The specific ABI number for this build (e.g. 2) +PREV_ABI_NUM : The previous ABI number. Can be the same as ABI_NUM. +BUILD_DIR : The directory where this build took place +INSTALL_DIR : The directory where the package is prepared +SOURCE_DIR : Where the main kernel source is + +Scripts are expected to have a zero exit status when no problems occur, +and non-zero when an error occurs that should stop the build. Scripts +should print whatever info they deem needed to deduce the problem. --- linux-3.13.0.orig/debian/tests-build/check-aliases +++ linux-3.13.0/debian/tests-build/check-aliases @@ -0,0 +1,24 @@ +#!/usr/bin/perl -w + +my %map; + +print "Checking for dupe aliases in $ENV{'FLAVOUR'}...\n"; + +$aliases = + "$ENV{'INSTALL_DIR'}/lib/modules/$ENV{'VERSION'}-$ENV{'FLAVOUR'}/modules.alias"; + +open(ALIASES, "< $aliases") or die "Could not open $aliases"; + +while () { + chomp; + my ($junk, $alias, $module) = split; + + if (defined($map{$alias})) { + printf("%s %20s / %-20s : %s \n", ("$map{$alias}" eq "$module") + ? "INT" : " ", $map{$alias}, $module, $alias); + } else { + $map{$alias} = $module; + } +} + +exit(0); --- linux-3.13.0.orig/debian/tests/control +++ linux-3.13.0/debian/tests/control @@ -0,0 +1,7 @@ +Tests: rebuild +Depends: @builddeps@, fakeroot +Restrictions: allow-stderr + +Tests: ubuntu-regression-suite +Depends: build-essential, gcc-multilib, gdb, git, bzr +Restrictions: allow-stderr, isolation-machine, breaks-testbed --- linux-3.13.0.orig/debian/tests/rebuild +++ linux-3.13.0/debian/tests/rebuild @@ -0,0 +1 @@ +#!/bin/true --- linux-3.13.0.orig/debian/tests/ubuntu-regression-suite +++ linux-3.13.0/debian/tests/ubuntu-regression-suite @@ -0,0 +1,19 @@ +#!/bin/sh +set -e + +sver=`dpkg-parsechangelog -SVersion` +read x rver x &2 + exit 1 +fi + +git clone git://kernel.ubuntu.com/ubuntu/kernel-testing +kernel-testing/run-dep8-tests --- linux-3.13.0.orig/debian/tools/generic +++ linux-3.13.0/debian/tools/generic @@ -0,0 +1,60 @@ +#!/bin/bash +full_version=`uname -r` + +# First check for a fully qualified version. +this="/usr/lib/linux-tools/$full_version/`basename $0`" +if [ -f "$this" ]; then + exec "$this" "$@" +fi + +# Removing flavour from version i.e. generic or server. +flavour_abi=${full_version#*-} +flavour=${flavour_abi#*-} +version=${full_version%-$flavour} +this="$0_$version" +if [ -f "$this" ]; then + exec "$this" "$@" +fi + +# Before saucy kernels we had no flavour linkage. +if dpkg --compare-versions "$version" lt "3.11.0"; then + flavour='' +else + flavour="-$flavour" +fi +# Hint at the cloud tools if they exist (trusty and later) +if dpkg --compare-versions "$version" ge "3.13.0"; then + cld="" +else + cld=":" +fi +# Work out if this is an LTS backport or not. +codename=`lsb_release -cs` +case "$codename" in +precise) base='3.2.0-9999' ;; +trusty) base='3.13.0-9999' ;; +*) base='' ;; +esac +std="" +lts=":" +if [ "$base" != "" ]; then + if dpkg --compare-versions "$version" gt "$base"; then + std=":" + lts="" + fi +fi + +# Give them a hint as to what to install. + echo "WARNING: `basename $0` not found for kernel $version" >&2 + echo "" >&2 + echo " You may need to install the following packages for this specific kernel:" >&2 + echo " linux-tools-$version$flavour" >&2 +$cld echo " linux-cloud-tools-$version$flavour" >&2 + echo "" >&2 + echo " You may also want to install one of the following packages to keep up to date:" >&2 +$std echo " linux-tools$flavour" >&2 +$std $cld echo " linux-cloud-tools$flavour" >&2 +$lts echo " linux-tools$flavour-lts-" >&2 +$lts $cld echo " linux-cloud-tools$flavour-lts-" >&2 + +exit 2 --- linux-3.13.0.orig/drivers/Kconfig +++ linux-3.13.0/drivers/Kconfig @@ -170,4 +170,6 @@ source "drivers/powercap/Kconfig" +source "drivers/net/dpa/NetCommSw/Kconfig" + endmenu --- linux-3.13.0.orig/drivers/acpi/Kconfig +++ linux-3.13.0/drivers/acpi/Kconfig @@ -43,18 +43,22 @@ depends on SUSPEND || HIBERNATION default y -config ACPI_PROCFS - bool "Deprecated /proc/acpi files" +config ACPI_PROCFS_POWER + bool "Deprecated power /proc/acpi directories" depends on PROC_FS help For backwards compatibility, this option allows - deprecated /proc/acpi/ files to exist, even when - they have been replaced by functions in /sys. + deprecated power /proc/acpi/ directories to exist, even when + they have been replaced by functions in /sys. + The deprecated directories (and their replacements) include: + /proc/acpi/battery/* (/sys/class/power_supply/*) + /proc/acpi/ac_adapter/* (sys/class/power_supply/*) + This option has no effect on /proc/acpi/ directories + and functions, which do not yet exist in /sys + This option, together with the proc directories, will be + deleted in 2.6.39. - This option has no effect on /proc/acpi/ files - and functions which do not yet exist in /sys. - - Say N to delete /proc/acpi/ files that have moved to /sys/ + Say N to delete power /proc/acpi/ directories that have moved to /sys/ config ACPI_EC_DEBUGFS tristate "EC read/write access through /sys/kernel/debug/ec" --- linux-3.13.0.orig/drivers/acpi/Makefile +++ linux-3.13.0/drivers/acpi/Makefile @@ -47,6 +47,7 @@ acpi-$(CONFIG_X86) += acpi_cmos_rtc.o acpi-$(CONFIG_DEBUG_FS) += debugfs.o acpi-$(CONFIG_ACPI_NUMA) += numa.o +acpi-$(CONFIG_ACPI_PROCFS_POWER) += cm_sbs.o ifdef CONFIG_ACPI_VIDEO acpi-y += video_detect.o endif --- linux-3.13.0.orig/drivers/acpi/ac.c +++ linux-3.13.0/drivers/acpi/ac.c @@ -30,6 +30,10 @@ #include #include #include +#ifdef CONFIG_ACPI_PROCFS_POWER +#include +#include +#endif #include #include #include @@ -52,26 +56,74 @@ MODULE_DESCRIPTION("ACPI AC Adapter Driver"); MODULE_LICENSE("GPL"); + +static int acpi_ac_add(struct acpi_device *device); +static int acpi_ac_remove(struct acpi_device *device); +static void acpi_ac_notify(struct acpi_device *device, u32 event); + +static const struct acpi_device_id ac_device_ids[] = { + {"ACPI0003", 0}, + {"", 0}, +}; +MODULE_DEVICE_TABLE(acpi, ac_device_ids); + +#ifdef CONFIG_PM_SLEEP +static int acpi_ac_resume(struct device *dev); +#endif +static SIMPLE_DEV_PM_OPS(acpi_ac_pm, NULL, acpi_ac_resume); + +#ifdef CONFIG_ACPI_PROCFS_POWER +extern struct proc_dir_entry *acpi_lock_ac_dir(void); +extern void *acpi_unlock_ac_dir(struct proc_dir_entry *acpi_ac_dir); +static int acpi_ac_open_fs(struct inode *inode, struct file *file); +#endif + + static int ac_sleep_before_get_state_ms; +static struct acpi_driver acpi_ac_driver = { + .name = "ac", + .class = ACPI_AC_CLASS, + .ids = ac_device_ids, + .flags = ACPI_DRIVER_ALL_NOTIFY_EVENTS, + .ops = { + .add = acpi_ac_add, + .remove = acpi_ac_remove, + .notify = acpi_ac_notify, + }, + .drv.pm = &acpi_ac_pm, +}; + struct acpi_ac { struct power_supply charger; - struct platform_device *pdev; + struct acpi_device * device; unsigned long long state; }; #define to_acpi_ac(x) container_of(x, struct acpi_ac, charger) +#ifdef CONFIG_ACPI_PROCFS_POWER +static const struct file_operations acpi_ac_fops = { + .owner = THIS_MODULE, + .open = acpi_ac_open_fs, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; +#endif + /* -------------------------------------------------------------------------- AC Adapter Management -------------------------------------------------------------------------- */ static int acpi_ac_get_state(struct acpi_ac *ac) { - acpi_status status; - acpi_handle handle = ACPI_HANDLE(&ac->pdev->dev); + acpi_status status = AE_OK; - status = acpi_evaluate_integer(handle, "_PSR", NULL, + if (!ac) + return -EINVAL; + + status = acpi_evaluate_integer(ac->device->handle, "_PSR", NULL, &ac->state); if (ACPI_FAILURE(status)) { ACPI_EXCEPTION((AE_INFO, status, @@ -112,14 +164,90 @@ POWER_SUPPLY_PROP_ONLINE, }; +#ifdef CONFIG_ACPI_PROCFS_POWER +/* -------------------------------------------------------------------------- + FS Interface (/proc) + -------------------------------------------------------------------------- */ + +static struct proc_dir_entry *acpi_ac_dir; + +static int acpi_ac_seq_show(struct seq_file *seq, void *offset) +{ + struct acpi_ac *ac = seq->private; + + + if (!ac) + return 0; + + if (acpi_ac_get_state(ac)) { + seq_puts(seq, "ERROR: Unable to read AC Adapter state\n"); + return 0; + } + + seq_puts(seq, "state: "); + switch (ac->state) { + case ACPI_AC_STATUS_OFFLINE: + seq_puts(seq, "off-line\n"); + break; + case ACPI_AC_STATUS_ONLINE: + seq_puts(seq, "on-line\n"); + break; + default: + seq_puts(seq, "unknown\n"); + break; + } + + return 0; +} + +static int acpi_ac_open_fs(struct inode *inode, struct file *file) +{ + return single_open(file, acpi_ac_seq_show, PDE_DATA(inode)); +} + +static int acpi_ac_add_fs(struct acpi_ac *ac) +{ + struct proc_dir_entry *entry = NULL; + + printk(KERN_WARNING PREFIX "Deprecated procfs I/F for AC is loaded," + " please retry with CONFIG_ACPI_PROCFS_POWER cleared\n"); + if (!acpi_device_dir(ac->device)) { + acpi_device_dir(ac->device) = + proc_mkdir(acpi_device_bid(ac->device), acpi_ac_dir); + if (!acpi_device_dir(ac->device)) + return -ENODEV; + } + + /* 'state' [R] */ + entry = proc_create_data(ACPI_AC_FILE_STATE, + S_IRUGO, acpi_device_dir(ac->device), + &acpi_ac_fops, ac); + if (!entry) + return -ENODEV; + return 0; +} + +static int acpi_ac_remove_fs(struct acpi_ac *ac) +{ + + if (acpi_device_dir(ac->device)) { + remove_proc_entry(ACPI_AC_FILE_STATE, + acpi_device_dir(ac->device)); + remove_proc_entry(acpi_device_bid(ac->device), acpi_ac_dir); + acpi_device_dir(ac->device) = NULL; + } + + return 0; +} +#endif + /* -------------------------------------------------------------------------- Driver Model -------------------------------------------------------------------------- */ -static void acpi_ac_notify_handler(acpi_handle handle, u32 event, void *data) +static void acpi_ac_notify(struct acpi_device *device, u32 event) { - struct acpi_ac *ac = data; - struct acpi_device *adev; + struct acpi_ac *ac = acpi_driver_data(device); if (!ac) return; @@ -142,11 +270,10 @@ msleep(ac_sleep_before_get_state_ms); acpi_ac_get_state(ac); - adev = ACPI_COMPANION(&ac->pdev->dev); - acpi_bus_generate_netlink_event(adev->pnp.device_class, - dev_name(&ac->pdev->dev), - event, (u32) ac->state); - acpi_notifier_call_chain(adev, event, (u32) ac->state); + acpi_bus_generate_netlink_event(device->pnp.device_class, + dev_name(&device->dev), event, + (u32) ac->state); + acpi_notifier_call_chain(device, event, (u32) ac->state); kobject_uevent(&ac->charger.dev->kobj, KOBJ_CHANGE); } @@ -171,54 +298,53 @@ {}, }; -static int acpi_ac_probe(struct platform_device *pdev) +static int acpi_ac_add(struct acpi_device *device) { int result = 0; struct acpi_ac *ac = NULL; - struct acpi_device *adev; - if (!pdev) - return -EINVAL; - adev = ACPI_COMPANION(&pdev->dev); - if (!adev) - return -ENODEV; + if (!device) + return -EINVAL; ac = kzalloc(sizeof(struct acpi_ac), GFP_KERNEL); if (!ac) return -ENOMEM; - strcpy(acpi_device_name(adev), ACPI_AC_DEVICE_NAME); - strcpy(acpi_device_class(adev), ACPI_AC_CLASS); - ac->pdev = pdev; - platform_set_drvdata(pdev, ac); + ac->device = device; + strcpy(acpi_device_name(device), ACPI_AC_DEVICE_NAME); + strcpy(acpi_device_class(device), ACPI_AC_CLASS); + device->driver_data = ac; result = acpi_ac_get_state(ac); if (result) goto end; - ac->charger.name = acpi_device_bid(adev); + ac->charger.name = acpi_device_bid(device); +#ifdef CONFIG_ACPI_PROCFS_POWER + result = acpi_ac_add_fs(ac); + if (result) + goto end; +#endif ac->charger.type = POWER_SUPPLY_TYPE_MAINS; ac->charger.properties = ac_props; ac->charger.num_properties = ARRAY_SIZE(ac_props); ac->charger.get_property = get_ac_property; - result = power_supply_register(&pdev->dev, &ac->charger); + result = power_supply_register(&ac->device->dev, &ac->charger); if (result) goto end; - result = acpi_install_notify_handler(ACPI_HANDLE(&pdev->dev), - ACPI_ALL_NOTIFY, acpi_ac_notify_handler, ac); - if (result) { - power_supply_unregister(&ac->charger); - goto end; - } printk(KERN_INFO PREFIX "%s [%s] (%s)\n", - acpi_device_name(adev), acpi_device_bid(adev), + acpi_device_name(device), acpi_device_bid(device), ac->state ? "on-line" : "off-line"); end: - if (result) + if (result) { +#ifdef CONFIG_ACPI_PROCFS_POWER + acpi_ac_remove_fs(ac); +#endif kfree(ac); + } dmi_check_system(ac_dmi_table); return result; @@ -233,7 +359,7 @@ if (!dev) return -EINVAL; - ac = platform_get_drvdata(to_platform_device(dev)); + ac = acpi_driver_data(to_acpi_device(dev)); if (!ac) return -EINVAL; @@ -245,44 +371,29 @@ return 0; } #endif -static SIMPLE_DEV_PM_OPS(acpi_ac_pm_ops, NULL, acpi_ac_resume); -static int acpi_ac_remove(struct platform_device *pdev) +static int acpi_ac_remove(struct acpi_device *device) { - struct acpi_ac *ac; + struct acpi_ac *ac = NULL; + - if (!pdev) + if (!device || !acpi_driver_data(device)) return -EINVAL; - acpi_remove_notify_handler(ACPI_HANDLE(&pdev->dev), - ACPI_ALL_NOTIFY, acpi_ac_notify_handler); + ac = acpi_driver_data(device); - ac = platform_get_drvdata(pdev); if (ac->charger.dev) power_supply_unregister(&ac->charger); +#ifdef CONFIG_ACPI_PROCFS_POWER + acpi_ac_remove_fs(ac); +#endif + kfree(ac); return 0; } -static const struct acpi_device_id acpi_ac_match[] = { - { "ACPI0003", 0 }, - { } -}; -MODULE_DEVICE_TABLE(acpi, acpi_ac_match); - -static struct platform_driver acpi_ac_driver = { - .probe = acpi_ac_probe, - .remove = acpi_ac_remove, - .driver = { - .name = "acpi-ac", - .owner = THIS_MODULE, - .pm = &acpi_ac_pm_ops, - .acpi_match_table = ACPI_PTR(acpi_ac_match), - }, -}; - static int __init acpi_ac_init(void) { int result; @@ -290,16 +401,30 @@ if (acpi_disabled) return -ENODEV; - result = platform_driver_register(&acpi_ac_driver); - if (result < 0) +#ifdef CONFIG_ACPI_PROCFS_POWER + acpi_ac_dir = acpi_lock_ac_dir(); + if (!acpi_ac_dir) return -ENODEV; +#endif + + + result = acpi_bus_register_driver(&acpi_ac_driver); + if (result < 0) { +#ifdef CONFIG_ACPI_PROCFS_POWER + acpi_unlock_ac_dir(acpi_ac_dir); +#endif + return -ENODEV; + } return 0; } static void __exit acpi_ac_exit(void) { - platform_driver_unregister(&acpi_ac_driver); + acpi_bus_unregister_driver(&acpi_ac_driver); +#ifdef CONFIG_ACPI_PROCFS_POWER + acpi_unlock_ac_dir(acpi_ac_dir); +#endif } module_init(acpi_ac_init); module_exit(acpi_ac_exit); --- linux-3.13.0.orig/drivers/acpi/acpi_cmos_rtc.c +++ linux-3.13.0/drivers/acpi/acpi_cmos_rtc.c @@ -35,7 +35,7 @@ void *handler_context, void *region_context) { int i; - u8 *value = (u8 *)&value64; + u8 *value = (u8 *)value64; if (address > 0xff || !value64) return AE_BAD_PARAMETER; --- linux-3.13.0.orig/drivers/acpi/acpi_pad.c +++ linux-3.13.0/drivers/acpi/acpi_pad.c @@ -219,8 +219,15 @@ * borrow CPU time from this CPU and cause RT task use > 95% * CPU time. To make 'avoid starvation' work, takes a nap here. */ - if (do_sleep) + if (unlikely(do_sleep)) schedule_timeout_killable(HZ * idle_pct / 100); + + /* If an external event has set the need_resched flag, then + * we need to deal with it, or this loop will continue to + * spin without calling __mwait(). + */ + if (unlikely(need_resched())) + schedule(); } exit_round_robin(tsk_index); --- linux-3.13.0.orig/drivers/acpi/acpi_platform.c +++ linux-3.13.0/drivers/acpi/acpi_platform.c @@ -29,7 +29,6 @@ static const struct acpi_device_id acpi_platform_device_ids[] = { { "PNP0D40" }, - { "ACPI0003" }, { "VPC2004" }, { "BCM4752" }, --- linux-3.13.0.orig/drivers/acpi/acpi_processor.c +++ linux-3.13.0/drivers/acpi/acpi_processor.c @@ -400,7 +400,6 @@ goto err; pr->dev = dev; - dev->offline = pr->flags.need_hotplug_init; /* Trigger the processor driver's .probe() if present. */ if (device_attach(dev) >= 0) --- linux-3.13.0.orig/drivers/acpi/acpica/nsrepair.c +++ linux-3.13.0/drivers/acpi/acpica/nsrepair.c @@ -207,13 +207,30 @@ * this predefined name. Either one return value is expected, or none, * for both methods and other objects. * - * Exit now if there is no return object. Warning if one was expected. + * Try to fix if there was no return object. Warning if failed to fix. */ if (!return_object) { if (expected_btypes && (!(expected_btypes & ACPI_RTYPE_NONE))) { - ACPI_WARN_PREDEFINED((AE_INFO, info->full_pathname, - ACPI_WARN_ALWAYS, - "Missing expected return value")); + if (package_index != ACPI_NOT_PACKAGE_ELEMENT) { + ACPI_WARN_PREDEFINED((AE_INFO, + info->full_pathname, + ACPI_WARN_ALWAYS, + "Found unexpected NULL package element")); + + status = + acpi_ns_repair_null_element(info, + expected_btypes, + package_index, + return_object_ptr); + if (ACPI_SUCCESS(status)) { + return (AE_OK); /* Repair was successful */ + } + } else { + ACPI_WARN_PREDEFINED((AE_INFO, + info->full_pathname, + ACPI_WARN_ALWAYS, + "Missing expected return value")); + } return (AE_AML_NO_RETURN_VALUE); } --- linux-3.13.0.orig/drivers/acpi/acpica/utcopy.c +++ linux-3.13.0/drivers/acpi/acpica/utcopy.c @@ -1001,5 +1001,11 @@ status = acpi_ut_copy_simple_object(source_desc, *dest_desc); } + /* Delete the allocated object if copy failed */ + + if (ACPI_FAILURE(status)) { + acpi_ut_remove_reference(*dest_desc); + } + return_ACPI_STATUS(status); } --- linux-3.13.0.orig/drivers/acpi/acpica/utstring.c +++ linux-3.13.0/drivers/acpi/acpica/utstring.c @@ -353,7 +353,7 @@ } acpi_os_printf("\""); - for (i = 0; string[i] && (i < max_length); i++) { + for (i = 0; (i < max_length) && string[i]; i++) { /* Escape sequences */ --- linux-3.13.0.orig/drivers/acpi/battery.c +++ linux-3.13.0/drivers/acpi/battery.c @@ -34,8 +34,15 @@ #include #include #include +#include #include +#ifdef CONFIG_ACPI_PROCFS_POWER +#include +#include +#include +#endif + #include #include #include @@ -67,6 +74,19 @@ module_param(cache_time, uint, 0644); MODULE_PARM_DESC(cache_time, "cache time in milliseconds"); +#ifdef CONFIG_ACPI_PROCFS_POWER +extern struct proc_dir_entry *acpi_lock_battery_dir(void); +extern void *acpi_unlock_battery_dir(struct proc_dir_entry *acpi_battery_dir); + +enum acpi_battery_files { + info_tag = 0, + state_tag, + alarm_tag, + ACPI_BATTERY_NUMFILES, +}; + +#endif + static const struct acpi_device_id battery_device_ids[] = { {"PNP0C0A", 0}, {"", 0}, @@ -302,6 +322,14 @@ POWER_SUPPLY_PROP_SERIAL_NUMBER, }; +#ifdef CONFIG_ACPI_PROCFS_POWER +inline char *acpi_battery_units(struct acpi_battery *battery) +{ + return (battery->power_unit == ACPI_BATTERY_POWER_UNIT_MA) ? + "mA" : "mW"; +} +#endif + /* -------------------------------------------------------------------------- Battery Management -------------------------------------------------------------------------- */ @@ -672,7 +700,7 @@ } } -static int acpi_battery_update(struct acpi_battery *battery) +static int acpi_battery_update(struct acpi_battery *battery, bool resume) { int result, old_present = acpi_battery_present(battery); result = acpi_battery_get_status(battery); @@ -683,6 +711,10 @@ battery->update_time = 0; return 0; } + + if (resume) + return 0; + if (!battery->update_time || old_present != acpi_battery_present(battery)) { result = acpi_battery_get_info(battery); @@ -720,6 +752,279 @@ } /* -------------------------------------------------------------------------- + FS Interface (/proc) + -------------------------------------------------------------------------- */ + +#ifdef CONFIG_ACPI_PROCFS_POWER +static struct proc_dir_entry *acpi_battery_dir; + +static int acpi_battery_print_info(struct seq_file *seq, int result) +{ + struct acpi_battery *battery = seq->private; + + if (result) + goto end; + + seq_printf(seq, "present: %s\n", + acpi_battery_present(battery) ? "yes" : "no"); + if (!acpi_battery_present(battery)) + goto end; + if (battery->design_capacity == ACPI_BATTERY_VALUE_UNKNOWN) + seq_printf(seq, "design capacity: unknown\n"); + else + seq_printf(seq, "design capacity: %d %sh\n", + battery->design_capacity, + acpi_battery_units(battery)); + + if (battery->full_charge_capacity == ACPI_BATTERY_VALUE_UNKNOWN) + seq_printf(seq, "last full capacity: unknown\n"); + else + seq_printf(seq, "last full capacity: %d %sh\n", + battery->full_charge_capacity, + acpi_battery_units(battery)); + + seq_printf(seq, "battery technology: %srechargeable\n", + (!battery->technology)?"non-":""); + + if (battery->design_voltage == ACPI_BATTERY_VALUE_UNKNOWN) + seq_printf(seq, "design voltage: unknown\n"); + else + seq_printf(seq, "design voltage: %d mV\n", + battery->design_voltage); + seq_printf(seq, "design capacity warning: %d %sh\n", + battery->design_capacity_warning, + acpi_battery_units(battery)); + seq_printf(seq, "design capacity low: %d %sh\n", + battery->design_capacity_low, + acpi_battery_units(battery)); + seq_printf(seq, "cycle count: %i\n", battery->cycle_count); + seq_printf(seq, "capacity granularity 1: %d %sh\n", + battery->capacity_granularity_1, + acpi_battery_units(battery)); + seq_printf(seq, "capacity granularity 2: %d %sh\n", + battery->capacity_granularity_2, + acpi_battery_units(battery)); + seq_printf(seq, "model number: %s\n", battery->model_number); + seq_printf(seq, "serial number: %s\n", battery->serial_number); + seq_printf(seq, "battery type: %s\n", battery->type); + seq_printf(seq, "OEM info: %s\n", battery->oem_info); + end: + if (result) + seq_printf(seq, "ERROR: Unable to read battery info\n"); + return result; +} + +static int acpi_battery_print_state(struct seq_file *seq, int result) +{ + struct acpi_battery *battery = seq->private; + + if (result) + goto end; + + seq_printf(seq, "present: %s\n", + acpi_battery_present(battery) ? "yes" : "no"); + if (!acpi_battery_present(battery)) + goto end; + + seq_printf(seq, "capacity state: %s\n", + (battery->state & 0x04) ? "critical" : "ok"); + if ((battery->state & 0x01) && (battery->state & 0x02)) + seq_printf(seq, + "charging state: charging/discharging\n"); + else if (battery->state & 0x01) + seq_printf(seq, "charging state: discharging\n"); + else if (battery->state & 0x02) + seq_printf(seq, "charging state: charging\n"); + else + seq_printf(seq, "charging state: charged\n"); + + if (battery->rate_now == ACPI_BATTERY_VALUE_UNKNOWN) + seq_printf(seq, "present rate: unknown\n"); + else + seq_printf(seq, "present rate: %d %s\n", + battery->rate_now, acpi_battery_units(battery)); + + if (battery->capacity_now == ACPI_BATTERY_VALUE_UNKNOWN) + seq_printf(seq, "remaining capacity: unknown\n"); + else + seq_printf(seq, "remaining capacity: %d %sh\n", + battery->capacity_now, acpi_battery_units(battery)); + if (battery->voltage_now == ACPI_BATTERY_VALUE_UNKNOWN) + seq_printf(seq, "present voltage: unknown\n"); + else + seq_printf(seq, "present voltage: %d mV\n", + battery->voltage_now); + end: + if (result) + seq_printf(seq, "ERROR: Unable to read battery state\n"); + + return result; +} + +static int acpi_battery_print_alarm(struct seq_file *seq, int result) +{ + struct acpi_battery *battery = seq->private; + + if (result) + goto end; + + if (!acpi_battery_present(battery)) { + seq_printf(seq, "present: no\n"); + goto end; + } + seq_printf(seq, "alarm: "); + if (!battery->alarm) + seq_printf(seq, "unsupported\n"); + else + seq_printf(seq, "%u %sh\n", battery->alarm, + acpi_battery_units(battery)); + end: + if (result) + seq_printf(seq, "ERROR: Unable to read battery alarm\n"); + return result; +} + +static ssize_t acpi_battery_write_alarm(struct file *file, + const char __user * buffer, + size_t count, loff_t * ppos) +{ + int result = 0; + char alarm_string[12] = { '\0' }; + struct seq_file *m = file->private_data; + struct acpi_battery *battery = m->private; + + if (!battery || (count > sizeof(alarm_string) - 1)) + return -EINVAL; + if (!acpi_battery_present(battery)) { + result = -ENODEV; + goto end; + } + if (copy_from_user(alarm_string, buffer, count)) { + result = -EFAULT; + goto end; + } + alarm_string[count] = '\0'; + battery->alarm = simple_strtol(alarm_string, NULL, 0); + result = acpi_battery_set_alarm(battery); + end: + if (!result) + return count; + return result; +} + +typedef int(*print_func)(struct seq_file *seq, int result); + +static print_func acpi_print_funcs[ACPI_BATTERY_NUMFILES] = { + acpi_battery_print_info, + acpi_battery_print_state, + acpi_battery_print_alarm, +}; + +static int acpi_battery_read(int fid, struct seq_file *seq) +{ + struct acpi_battery *battery = seq->private; + int result = acpi_battery_update(battery, false); + return acpi_print_funcs[fid](seq, result); +} + +#define DECLARE_FILE_FUNCTIONS(_name) \ +static int acpi_battery_read_##_name(struct seq_file *seq, void *offset) \ +{ \ + return acpi_battery_read(_name##_tag, seq); \ +} \ +static int acpi_battery_##_name##_open_fs(struct inode *inode, struct file *file) \ +{ \ + return single_open(file, acpi_battery_read_##_name, PDE_DATA(inode)); \ +} + +DECLARE_FILE_FUNCTIONS(info); +DECLARE_FILE_FUNCTIONS(state); +DECLARE_FILE_FUNCTIONS(alarm); + +#undef DECLARE_FILE_FUNCTIONS + +#define FILE_DESCRIPTION_RO(_name) \ + { \ + .name = __stringify(_name), \ + .mode = S_IRUGO, \ + .ops = { \ + .open = acpi_battery_##_name##_open_fs, \ + .read = seq_read, \ + .llseek = seq_lseek, \ + .release = single_release, \ + .owner = THIS_MODULE, \ + }, \ + } + +#define FILE_DESCRIPTION_RW(_name) \ + { \ + .name = __stringify(_name), \ + .mode = S_IFREG | S_IRUGO | S_IWUSR, \ + .ops = { \ + .open = acpi_battery_##_name##_open_fs, \ + .read = seq_read, \ + .llseek = seq_lseek, \ + .write = acpi_battery_write_##_name, \ + .release = single_release, \ + .owner = THIS_MODULE, \ + }, \ + } + +static const struct battery_file { + struct file_operations ops; + umode_t mode; + const char *name; +} acpi_battery_file[] = { + FILE_DESCRIPTION_RO(info), + FILE_DESCRIPTION_RO(state), + FILE_DESCRIPTION_RW(alarm), +}; + +#undef FILE_DESCRIPTION_RO +#undef FILE_DESCRIPTION_RW + +static int acpi_battery_add_fs(struct acpi_device *device) +{ + struct proc_dir_entry *entry = NULL; + int i; + + printk(KERN_WARNING PREFIX "Deprecated procfs I/F for battery is loaded," + " please retry with CONFIG_ACPI_PROCFS_POWER cleared\n"); + if (!acpi_device_dir(device)) { + acpi_device_dir(device) = proc_mkdir(acpi_device_bid(device), + acpi_battery_dir); + if (!acpi_device_dir(device)) + return -ENODEV; + } + + for (i = 0; i < ACPI_BATTERY_NUMFILES; ++i) { + entry = proc_create_data(acpi_battery_file[i].name, + acpi_battery_file[i].mode, + acpi_device_dir(device), + &acpi_battery_file[i].ops, + acpi_driver_data(device)); + if (!entry) + return -ENODEV; + } + return 0; +} + +static void acpi_battery_remove_fs(struct acpi_device *device) +{ + int i; + if (!acpi_device_dir(device)) + return; + for (i = 0; i < ACPI_BATTERY_NUMFILES; ++i) + remove_proc_entry(acpi_battery_file[i].name, + acpi_device_dir(device)); + + remove_proc_entry(acpi_device_bid(device), acpi_battery_dir); + acpi_device_dir(device) = NULL; +} + +#endif + +/* -------------------------------------------------------------------------- Driver Interface -------------------------------------------------------------------------- */ @@ -733,7 +1038,7 @@ old = battery->bat.dev; if (event == ACPI_BATTERY_NOTIFY_INFO) acpi_battery_refresh(battery); - acpi_battery_update(battery); + acpi_battery_update(battery, false); acpi_bus_generate_netlink_event(device->pnp.device_class, dev_name(&device->dev), event, acpi_battery_present(battery)); @@ -747,13 +1052,27 @@ { struct acpi_battery *battery = container_of(nb, struct acpi_battery, pm_nb); + int result; + switch (mode) { case PM_POST_HIBERNATION: case PM_POST_SUSPEND: - if (battery->bat.dev) { - sysfs_remove_battery(battery); - sysfs_add_battery(battery); - } + if (!acpi_battery_present(battery)) + return 0; + + if (!battery->bat.dev) { + result = acpi_battery_get_info(battery); + if (result) + return result; + + result = sysfs_add_battery(battery); + if (result) + return result; + } else + acpi_battery_refresh(battery); + + acpi_battery_init_alarm(battery); + acpi_battery_get_state(battery); break; } @@ -771,6 +1090,28 @@ {}, }; +/* + * Some machines'(E,G Lenovo Z480) ECs are not stable + * during boot up and this causes battery driver fails to be + * probed due to failure of getting battery information + * from EC sometimes. After several retries, the operation + * may work. So add retry code here and 20ms sleep between + * every retries. + */ +static int acpi_battery_update_retry(struct acpi_battery *battery) +{ + int retry, ret; + + for (retry = 5; retry; retry--) { + ret = acpi_battery_update(battery, false); + if (!ret) + break; + + msleep(20); + } + return ret; +} + static int acpi_battery_add(struct acpi_device *device) { int result = 0; @@ -789,10 +1130,21 @@ mutex_init(&battery->sysfs_lock); if (acpi_has_method(battery->device->handle, "_BIX")) set_bit(ACPI_BATTERY_XINFO_PRESENT, &battery->flags); - result = acpi_battery_update(battery); + + result = acpi_battery_update_retry(battery); if (result) goto fail; +#ifdef CONFIG_ACPI_PROCFS_POWER + result = acpi_battery_add_fs(device); +#endif + if (result) { +#ifdef CONFIG_ACPI_PROCFS_POWER + acpi_battery_remove_fs(device); +#endif + goto fail; + } + printk(KERN_INFO PREFIX "%s Slot [%s] (battery %s)\n", ACPI_BATTERY_DEVICE_NAME, acpi_device_bid(device), device->status.battery_present ? "present" : "absent"); @@ -818,6 +1170,9 @@ return -EINVAL; battery = acpi_driver_data(device); unregister_pm_notifier(&battery->pm_nb); +#ifdef CONFIG_ACPI_PROCFS_POWER + acpi_battery_remove_fs(device); +#endif sysfs_remove_battery(battery); mutex_destroy(&battery->lock); mutex_destroy(&battery->sysfs_lock); @@ -839,7 +1194,7 @@ return -EINVAL; battery->update_time = 0; - acpi_battery_update(battery); + acpi_battery_update(battery, true); return 0; } #endif @@ -866,7 +1221,19 @@ if (dmi_check_system(bat_dmi_table)) battery_bix_broken_package = 1; - acpi_bus_register_driver(&acpi_battery_driver); + +#ifdef CONFIG_ACPI_PROCFS_POWER + acpi_battery_dir = acpi_lock_battery_dir(); + if (!acpi_battery_dir) + return; +#endif + if (acpi_bus_register_driver(&acpi_battery_driver) < 0) { +#ifdef CONFIG_ACPI_PROCFS_POWER + acpi_unlock_battery_dir(acpi_battery_dir); +#endif + return; + } + return; } static int __init acpi_battery_init(void) @@ -878,6 +1245,9 @@ static void __exit acpi_battery_exit(void) { acpi_bus_unregister_driver(&acpi_battery_driver); +#ifdef CONFIG_ACPI_PROCFS_POWER + acpi_unlock_battery_dir(acpi_battery_dir); +#endif } module_init(acpi_battery_init); --- linux-3.13.0.orig/drivers/acpi/blacklist.c +++ linux-3.13.0/drivers/acpi/blacklist.c @@ -248,8 +248,8 @@ }, /* - * The following machines have broken backlight support when reporting - * the Windows 2012 OSI, so disable it until their support is fixed. + * The wireless hotkey does not work on those machines when + * returning true for _OSI("Windows 2012") */ { .callback = dmi_disable_osi_win8, @@ -261,14 +261,6 @@ }, { .callback = dmi_disable_osi_win8, - .ident = "Dell Inspiron 15R SE", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), - DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 7520"), - }, - }, - { - .callback = dmi_disable_osi_win8, .ident = "ThinkPad Edge E530", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), @@ -323,6 +315,133 @@ DMI_MATCH(DMI_PRODUCT_VERSION, "2349D15"), }, }, + { + .callback = dmi_disable_osi_win8, + .ident = "Dell Inspiron 7737", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 7737"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Dell Inspiron 7537", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 7537"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Dell Inspiron 5437", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 5437"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Dell Inspiron 3437", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 3437"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Dell Vostro 3446", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 3446"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Dell Vostro 3546", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 3546"), + }, + }, + + /* + * The following Lenovo models have a broken workaround in the + * acpi_video backlight implementation to meet the Windows 8 + * requirement of 101 backlight levels. Reverting to pre-Win8 + * behavior fixes the problem. + */ + { + .callback = dmi_disable_osi_win8, + .ident = "Lenovo ThinkPad L430", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad L430"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Lenovo ThinkPad T430", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T430"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Lenovo ThinkPad T430s", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T430s"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Lenovo ThinkPad T530", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T530"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Lenovo ThinkPad W530", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad W530"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Lenovo ThinkPad X1 Carbon", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X1 Carbon"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Lenovo ThinkPad X230", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X230"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Lenovo ThinkPad Edge E330", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad Edge E330"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Dell Inspiron 5537", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 5537"), + }, + }, /* * BIOS invocation of _OSI(Linux) is almost always a BIOS bug. @@ -383,6 +502,19 @@ DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T500"), }, }, + /* + * Without this this EEEpc exports a non working WMI interface, with + * this it exports a working "good old" eeepc_laptop interface, fixing + * both brightness control, and rfkill not working. + */ + { + .callback = dmi_enable_osi_linux, + .ident = "Asus EEE PC 1015PX", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "1015PX"), + }, + }, {} }; --- linux-3.13.0.orig/drivers/acpi/bus.c +++ linux-3.13.0/drivers/acpi/bus.c @@ -33,6 +33,7 @@ #include #include #include +#include #ifdef CONFIG_X86 #include #endif @@ -56,6 +57,12 @@ #ifdef CONFIG_X86 +#ifdef CONFIG_ACPI_CUSTOM_DSDT +static inline int set_copy_dsdt(const struct dmi_system_id *id) +{ + return 0; +} +#else static int set_copy_dsdt(const struct dmi_system_id *id) { printk(KERN_NOTICE "%s detected - " @@ -63,6 +70,7 @@ acpi_gbl_copy_dsdt_locally = 1; return 0; } +#endif static struct dmi_system_id dsdt_dmi_table[] __initdata = { /* @@ -576,6 +584,14 @@ goto error0; } + /* + * If the system is using ACPI then we can be reasonably + * confident that any regulators are managed by the firmware + * so tell the regulator core it has everything it needs to + * know. + */ + regulator_has_full_constraints(); + return; error0: --- linux-3.13.0.orig/drivers/acpi/button.c +++ linux-3.13.0/drivers/acpi/button.c @@ -302,6 +302,10 @@ input_sync(input); pm_wakeup_event(&device->dev, 0); + acpi_bus_generate_netlink_event( + device->pnp.device_class, + dev_name(&device->dev), + event, ++button->pushed); } break; default: --- linux-3.13.0.orig/drivers/acpi/cm_sbs.c +++ linux-3.13.0/drivers/acpi/cm_sbs.c @@ -0,0 +1,105 @@ +/* + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define PREFIX "ACPI: " + +ACPI_MODULE_NAME("cm_sbs"); +#define ACPI_AC_CLASS "ac_adapter" +#define ACPI_BATTERY_CLASS "battery" +#define _COMPONENT ACPI_SBS_COMPONENT +static struct proc_dir_entry *acpi_ac_dir; +static struct proc_dir_entry *acpi_battery_dir; + +static DEFINE_MUTEX(cm_sbs_mutex); + +static int lock_ac_dir_cnt; +static int lock_battery_dir_cnt; + +struct proc_dir_entry *acpi_lock_ac_dir(void) +{ + mutex_lock(&cm_sbs_mutex); + if (!acpi_ac_dir) + acpi_ac_dir = proc_mkdir(ACPI_AC_CLASS, acpi_root_dir); + if (acpi_ac_dir) { + lock_ac_dir_cnt++; + } else { + printk(KERN_ERR PREFIX + "Cannot create %s\n", ACPI_AC_CLASS); + } + mutex_unlock(&cm_sbs_mutex); + return acpi_ac_dir; +} +EXPORT_SYMBOL(acpi_lock_ac_dir); + +void acpi_unlock_ac_dir(struct proc_dir_entry *acpi_ac_dir_param) +{ + mutex_lock(&cm_sbs_mutex); + if (acpi_ac_dir_param) + lock_ac_dir_cnt--; + if (lock_ac_dir_cnt == 0 && acpi_ac_dir_param && acpi_ac_dir) { + remove_proc_entry(ACPI_AC_CLASS, acpi_root_dir); + acpi_ac_dir = NULL; + } + mutex_unlock(&cm_sbs_mutex); +} +EXPORT_SYMBOL(acpi_unlock_ac_dir); + +struct proc_dir_entry *acpi_lock_battery_dir(void) +{ + mutex_lock(&cm_sbs_mutex); + if (!acpi_battery_dir) { + acpi_battery_dir = + proc_mkdir(ACPI_BATTERY_CLASS, acpi_root_dir); + } + if (acpi_battery_dir) { + lock_battery_dir_cnt++; + } else { + printk(KERN_ERR PREFIX + "Cannot create %s\n", ACPI_BATTERY_CLASS); + } + mutex_unlock(&cm_sbs_mutex); + return acpi_battery_dir; +} +EXPORT_SYMBOL(acpi_lock_battery_dir); + +void acpi_unlock_battery_dir(struct proc_dir_entry *acpi_battery_dir_param) +{ + mutex_lock(&cm_sbs_mutex); + if (acpi_battery_dir_param) + lock_battery_dir_cnt--; + if (lock_battery_dir_cnt == 0 && acpi_battery_dir_param + && acpi_battery_dir) { + remove_proc_entry(ACPI_BATTERY_CLASS, acpi_root_dir); + acpi_battery_dir = NULL; + } + mutex_unlock(&cm_sbs_mutex); + return; +} +EXPORT_SYMBOL(acpi_unlock_battery_dir); --- linux-3.13.0.orig/drivers/acpi/device_pm.c +++ linux-3.13.0/drivers/acpi/device_pm.c @@ -857,7 +857,7 @@ return 0; target_state = acpi_target_system_state(); - wakeup = device_may_wakeup(dev); + wakeup = device_may_wakeup(dev) && acpi_device_can_wakeup(adev); error = __acpi_device_sleep_wake(adev, target_state, wakeup); if (wakeup && error) return error; --- linux-3.13.0.orig/drivers/acpi/ec.c +++ linux-3.13.0/drivers/acpi/ec.c @@ -68,6 +68,8 @@ #define ACPI_EC_DELAY 500 /* Wait 500ms max. during EC ops */ #define ACPI_EC_UDELAY_GLK 1000 /* Wait 1ms max. to get global lock */ #define ACPI_EC_MSI_UDELAY 550 /* Wait 550us for MSI EC */ +#define ACPI_EC_CLEAR_MAX 100 /* Maximum number of events to query + * when trying to clear the EC */ enum { EC_FLAGS_QUERY_PENDING, /* Query is pending */ @@ -77,6 +79,9 @@ EC_FLAGS_BLOCKED, /* Transactions are blocked */ }; +#define ACPI_EC_COMMAND_POLL 0x01 /* Available for command byte */ +#define ACPI_EC_COMMAND_COMPLETE 0x02 /* Completed last byte */ + /* ec.c is compiled in acpi namespace so this shows up as acpi.ec_delay param */ static unsigned int ec_delay __read_mostly = ACPI_EC_DELAY; module_param(ec_delay, uint, 0644); @@ -112,7 +117,7 @@ u8 ri; u8 wlen; u8 rlen; - bool done; + u8 flags; }; struct acpi_ec *boot_ec, *first_ec; @@ -121,6 +126,8 @@ static int EC_FLAGS_MSI; /* Out-of-spec MSI controller */ static int EC_FLAGS_VALIDATE_ECDT; /* ASUStec ECDTs need to be validated */ static int EC_FLAGS_SKIP_DSDT_SCAN; /* Not all BIOS survive early DSDT scan */ +static int EC_FLAGS_CLEAR_ON_RESUME; /* Needs acpi_ec_clear() on boot/resume */ +static int EC_FLAGS_QUERY_HANDSHAKE; /* Needs QR_EC issued when SCI_EVT set */ /* -------------------------------------------------------------------------- Transaction Management @@ -152,69 +159,93 @@ outb(data, ec->data_addr); } -static int ec_transaction_done(struct acpi_ec *ec) +static int ec_transaction_completed(struct acpi_ec *ec) { unsigned long flags; int ret = 0; spin_lock_irqsave(&ec->lock, flags); - if (!ec->curr || ec->curr->done) + if (ec->curr && (ec->curr->flags & ACPI_EC_COMMAND_COMPLETE)) ret = 1; spin_unlock_irqrestore(&ec->lock, flags); return ret; } -static void start_transaction(struct acpi_ec *ec) -{ - ec->curr->irq_count = ec->curr->wi = ec->curr->ri = 0; - ec->curr->done = false; - acpi_ec_write_cmd(ec, ec->curr->command); -} - -static void advance_transaction(struct acpi_ec *ec, u8 status) +static bool advance_transaction(struct acpi_ec *ec) { - unsigned long flags; struct transaction *t; + u8 status; + bool wakeup = false; - spin_lock_irqsave(&ec->lock, flags); + pr_debug("===== %s =====\n", in_interrupt() ? "IRQ" : "TASK"); + status = acpi_ec_read_status(ec); t = ec->curr; if (!t) - goto unlock; - if (t->wlen > t->wi) { - if ((status & ACPI_EC_FLAG_IBF) == 0) - acpi_ec_write_data(ec, - t->wdata[t->wi++]); - else - goto err; - } else if (t->rlen > t->ri) { - if ((status & ACPI_EC_FLAG_OBF) == 1) { - t->rdata[t->ri++] = acpi_ec_read_data(ec); - if (t->rlen == t->ri) - t->done = true; + goto err; + if (t->flags & ACPI_EC_COMMAND_POLL) { + if (t->wlen > t->wi) { + if ((status & ACPI_EC_FLAG_IBF) == 0) + acpi_ec_write_data(ec, t->wdata[t->wi++]); + else + goto err; + } else if (t->rlen > t->ri) { + if ((status & ACPI_EC_FLAG_OBF) == 1) { + t->rdata[t->ri++] = acpi_ec_read_data(ec); + if (t->rlen == t->ri) { + t->flags |= ACPI_EC_COMMAND_COMPLETE; + if (t->command == ACPI_EC_COMMAND_QUERY) + pr_debug("hardware QR_EC completion\n"); + wakeup = true; + } + } else + goto err; + } else if (t->wlen == t->wi && + (status & ACPI_EC_FLAG_IBF) == 0) { + t->flags |= ACPI_EC_COMMAND_COMPLETE; + wakeup = true; + } + return wakeup; + } else { + if (EC_FLAGS_QUERY_HANDSHAKE && + !(status & ACPI_EC_FLAG_SCI) && + (t->command == ACPI_EC_COMMAND_QUERY)) { + t->flags |= ACPI_EC_COMMAND_POLL; + t->rdata[t->ri++] = 0x00; + t->flags |= ACPI_EC_COMMAND_COMPLETE; + pr_debug("software QR_EC completion\n"); + wakeup = true; + } else if ((status & ACPI_EC_FLAG_IBF) == 0) { + acpi_ec_write_cmd(ec, t->command); + t->flags |= ACPI_EC_COMMAND_POLL; } else goto err; - } else if (t->wlen == t->wi && - (status & ACPI_EC_FLAG_IBF) == 0) - t->done = true; - goto unlock; + return wakeup; + } err: /* * If SCI bit is set, then don't think it's a false IRQ * otherwise will take a not handled IRQ as a false one. */ - if (in_interrupt() && !(status & ACPI_EC_FLAG_SCI)) - ++t->irq_count; + if (!(status & ACPI_EC_FLAG_SCI)) { + if (in_interrupt() && t) + ++t->irq_count; + } + return wakeup; +} -unlock: - spin_unlock_irqrestore(&ec->lock, flags); +static void start_transaction(struct acpi_ec *ec) +{ + ec->curr->irq_count = ec->curr->wi = ec->curr->ri = 0; + ec->curr->flags = 0; + (void)advance_transaction(ec); } -static int acpi_ec_sync_query(struct acpi_ec *ec); +static int acpi_ec_sync_query(struct acpi_ec *ec, u8 *data); static int ec_check_sci_sync(struct acpi_ec *ec, u8 state) { if (state & ACPI_EC_FLAG_SCI) { if (!test_and_set_bit(EC_FLAGS_QUERY_PENDING, &ec->flags)) - return acpi_ec_sync_query(ec); + return acpi_ec_sync_query(ec, NULL); } return 0; } @@ -230,15 +261,17 @@ /* don't sleep with disabled interrupts */ if (EC_FLAGS_MSI || irqs_disabled()) { udelay(ACPI_EC_MSI_UDELAY); - if (ec_transaction_done(ec)) + if (ec_transaction_completed(ec)) return 0; } else { if (wait_event_timeout(ec->wait, - ec_transaction_done(ec), + ec_transaction_completed(ec), msecs_to_jiffies(1))) return 0; } - advance_transaction(ec, acpi_ec_read_status(ec)); + spin_lock_irqsave(&ec->lock, flags); + (void)advance_transaction(ec); + spin_unlock_irqrestore(&ec->lock, flags); } while (time_before(jiffies, delay)); pr_debug("controller reset, restart transaction\n"); spin_lock_irqsave(&ec->lock, flags); @@ -270,23 +303,6 @@ return ret; } -static int ec_check_ibf0(struct acpi_ec *ec) -{ - u8 status = acpi_ec_read_status(ec); - return (status & ACPI_EC_FLAG_IBF) == 0; -} - -static int ec_wait_ibf0(struct acpi_ec *ec) -{ - unsigned long delay = jiffies + msecs_to_jiffies(ec_delay); - /* interrupt wait manually if GPE mode is not active */ - while (time_before(jiffies, delay)) - if (wait_event_timeout(ec->wait, ec_check_ibf0(ec), - msecs_to_jiffies(1))) - return 0; - return -ETIME; -} - static int acpi_ec_transaction(struct acpi_ec *ec, struct transaction *t) { int status; @@ -307,12 +323,6 @@ goto unlock; } } - if (ec_wait_ibf0(ec)) { - pr_err("input buffer is not empty, " - "aborting transaction\n"); - status = -ETIME; - goto end; - } pr_debug("transaction start (cmd=0x%02x, addr=0x%02x)\n", t->command, t->wdata ? t->wdata[0] : 0); /* disable GPE during transaction if storm is detected */ @@ -336,7 +346,6 @@ set_bit(EC_FLAGS_GPE_STORM, &ec->flags); } pr_debug("transaction end\n"); -end: if (ec->global_lock) acpi_release_global_lock(glk); unlock: @@ -466,6 +475,27 @@ EXPORT_SYMBOL(ec_get_handle); +/* + * Process _Q events that might have accumulated in the EC. + * Run with locked ec mutex. + */ +static void acpi_ec_clear(struct acpi_ec *ec) +{ + int i, status; + u8 value = 0; + + for (i = 0; i < ACPI_EC_CLEAR_MAX; i++) { + status = acpi_ec_sync_query(ec, &value); + if (status || !value) + break; + } + + if (unlikely(i == ACPI_EC_CLEAR_MAX)) + pr_warn("Warning: Maximum of %d stale EC events cleared\n", i); + else + pr_info("%d stale EC events cleared\n", i); +} + void acpi_ec_block_transactions(void) { struct acpi_ec *ec = first_ec; @@ -489,6 +519,10 @@ mutex_lock(&ec->mutex); /* Allow transactions to be carried out again */ clear_bit(EC_FLAGS_BLOCKED, &ec->flags); + + if (EC_FLAGS_CLEAR_ON_RESUME) + acpi_ec_clear(ec); + mutex_unlock(&ec->mutex); } @@ -578,13 +612,18 @@ kfree(handler); } -static int acpi_ec_sync_query(struct acpi_ec *ec) +static int acpi_ec_sync_query(struct acpi_ec *ec, u8 *data) { u8 value = 0; int status; struct acpi_ec_query_handler *handler, *copy; - if ((status = acpi_ec_query_unlocked(ec, &value))) + + status = acpi_ec_query_unlocked(ec, &value); + if (data) + *data = value; + if (status) return status; + list_for_each_entry(handler, &ec->list, node) { if (value == handler->query_bit) { /* have custom handler for this bit */ @@ -608,7 +647,7 @@ if (!ec) return; mutex_lock(&ec->mutex); - acpi_ec_sync_query(ec); + acpi_ec_sync_query(ec, NULL); mutex_unlock(&ec->mutex); } @@ -627,17 +666,14 @@ static u32 acpi_ec_gpe_handler(acpi_handle gpe_device, u32 gpe_number, void *data) { + unsigned long flags; struct acpi_ec *ec = data; - u8 status = acpi_ec_read_status(ec); - - pr_debug("~~~> interrupt, status:0x%02x\n", status); - advance_transaction(ec, status); - if (ec_transaction_done(ec) && - (acpi_ec_read_status(ec) & ACPI_EC_FLAG_IBF) == 0) { + spin_lock_irqsave(&ec->lock, flags); + if (advance_transaction(ec)) wake_up(&ec->wait); - ec_check_sci(ec, acpi_ec_read_status(ec)); - } + spin_unlock_irqrestore(&ec->lock, flags); + ec_check_sci(ec, acpi_ec_read_status(ec)); return ACPI_INTERRUPT_HANDLED | ACPI_REENABLE_GPE; } @@ -847,6 +883,13 @@ /* EC is fully operational, allow queries */ clear_bit(EC_FLAGS_QUERY_PENDING, &ec->flags); + + /* Clear stale _Q events if hardware might require that */ + if (EC_FLAGS_CLEAR_ON_RESUME) { + mutex_lock(&ec->mutex); + acpi_ec_clear(ec); + mutex_unlock(&ec->mutex); + } return ret; } @@ -948,6 +991,42 @@ return 0; } +/* + * Acer EC firmware refuses to respond QR_EC when SCI_EVT is not set, for + * which case, we complete the QR_EC without issuing it to the firmware. + * https://bugzilla.kernel.org/show_bug.cgi?id=86211 + */ +static int ec_flag_query_handshake(const struct dmi_system_id *id) +{ + pr_debug("Detected the EC firmware requiring QR_EC issued when SCI_EVT set\n"); + EC_FLAGS_QUERY_HANDSHAKE = 1; + return 0; +} + +/* + * On some hardware it is necessary to clear events accumulated by the EC during + * sleep. These ECs stop reporting GPEs until they are manually polled, if too + * many events are accumulated. (e.g. Samsung Series 5/9 notebooks) + * + * https://bugzilla.kernel.org/show_bug.cgi?id=44161 + * + * Ideally, the EC should also be instructed NOT to accumulate events during + * sleep (which Windows seems to do somehow), but the interface to control this + * behaviour is not known at this time. + * + * Models known to be affected are Samsung 530Uxx/535Uxx/540Uxx/550Pxx/900Xxx, + * however it is very likely that other Samsung models are affected. + * + * On systems which don't accumulate _Q events during sleep, this extra check + * should be harmless. + */ +static int ec_clear_on_resume(const struct dmi_system_id *id) +{ + pr_debug("Detected system needing EC poll on resume.\n"); + EC_FLAGS_CLEAR_ON_RESUME = 1; + return 0; +} + static struct dmi_system_id ec_dmi_table[] __initdata = { { ec_skip_dsdt_scan, "Compal JFL92", { @@ -991,6 +1070,12 @@ ec_validate_ecdt, "ASUS hardware", { DMI_MATCH(DMI_SYS_VENDOR, "ASUSTek Computer Inc."), DMI_MATCH(DMI_PRODUCT_NAME, "L4R"),}, NULL}, + { + ec_clear_on_resume, "Samsung hardware", { + DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD.")}, NULL}, + { + ec_flag_query_handshake, "Acer hardware", { + DMI_MATCH(DMI_SYS_VENDOR, "Acer"), }, NULL}, {}, }; --- linux-3.13.0.orig/drivers/acpi/pci_irq.c +++ linux-3.13.0/drivers/acpi/pci_irq.c @@ -432,6 +432,7 @@ pin_name(pin)); } + kfree(entry); return 0; } --- linux-3.13.0.orig/drivers/acpi/processor_idle.c +++ linux-3.13.0/drivers/acpi/processor_idle.c @@ -1089,9 +1089,9 @@ if (pr->id == 0 && cpuidle_get_driver() == &acpi_idle_driver) { - cpuidle_pause_and_lock(); /* Protect against cpu-hotplug */ get_online_cpus(); + cpuidle_pause_and_lock(); /* Disable all cpuidle devices */ for_each_online_cpu(cpu) { @@ -1118,8 +1118,8 @@ cpuidle_enable_device(dev); } } - put_online_cpus(); cpuidle_resume_and_unlock(); + put_online_cpus(); } return 0; --- linux-3.13.0.orig/drivers/acpi/processor_throttling.c +++ linux-3.13.0/drivers/acpi/processor_throttling.c @@ -59,6 +59,12 @@ int target_state; /* target T-state */ }; +struct acpi_processor_throttling_arg { + struct acpi_processor *pr; + int target_state; + bool force; +}; + #define THROTTLING_PRECHANGE (1) #define THROTTLING_POSTCHANGE (2) @@ -1063,16 +1069,24 @@ return 0; } +static long acpi_processor_throttling_fn(void *data) +{ + struct acpi_processor_throttling_arg *arg = data; + struct acpi_processor *pr = arg->pr; + + return pr->throttling.acpi_processor_set_throttling(pr, + arg->target_state, arg->force); +} + int acpi_processor_set_throttling(struct acpi_processor *pr, int state, bool force) { - cpumask_var_t saved_mask; int ret = 0; unsigned int i; struct acpi_processor *match_pr; struct acpi_processor_throttling *p_throttling; + struct acpi_processor_throttling_arg arg; struct throttling_tstate t_state; - cpumask_var_t online_throttling_cpus; if (!pr) return -EINVAL; @@ -1083,14 +1097,6 @@ if ((state < 0) || (state > (pr->throttling.state_count - 1))) return -EINVAL; - if (!alloc_cpumask_var(&saved_mask, GFP_KERNEL)) - return -ENOMEM; - - if (!alloc_cpumask_var(&online_throttling_cpus, GFP_KERNEL)) { - free_cpumask_var(saved_mask); - return -ENOMEM; - } - if (cpu_is_offline(pr->id)) { /* * the cpu pointed by pr->id is offline. Unnecessary to change @@ -1099,17 +1105,15 @@ return -ENODEV; } - cpumask_copy(saved_mask, ¤t->cpus_allowed); t_state.target_state = state; p_throttling = &(pr->throttling); - cpumask_and(online_throttling_cpus, cpu_online_mask, - p_throttling->shared_cpu_map); + /* * The throttling notifier will be called for every * affected cpu in order to get one proper T-state. * The notifier event is THROTTLING_PRECHANGE. */ - for_each_cpu(i, online_throttling_cpus) { + for_each_cpu_and(i, cpu_online_mask, p_throttling->shared_cpu_map) { t_state.cpu = i; acpi_processor_throttling_notifier(THROTTLING_PRECHANGE, &t_state); @@ -1121,21 +1125,18 @@ * it can be called only for the cpu pointed by pr. */ if (p_throttling->shared_type == DOMAIN_COORD_TYPE_SW_ANY) { - /* FIXME: use work_on_cpu() */ - if (set_cpus_allowed_ptr(current, cpumask_of(pr->id))) { - /* Can't migrate to the pr->id CPU. Exit */ - ret = -ENODEV; - goto exit; - } - ret = p_throttling->acpi_processor_set_throttling(pr, - t_state.target_state, force); + arg.pr = pr; + arg.target_state = state; + arg.force = force; + ret = work_on_cpu(pr->id, acpi_processor_throttling_fn, &arg); } else { /* * When the T-state coordination is SW_ALL or HW_ALL, * it is necessary to set T-state for every affected * cpus. */ - for_each_cpu(i, online_throttling_cpus) { + for_each_cpu_and(i, cpu_online_mask, + p_throttling->shared_cpu_map) { match_pr = per_cpu(processors, i); /* * If the pointer is invalid, we will report the @@ -1156,13 +1157,12 @@ "on CPU %d\n", i)); continue; } - t_state.cpu = i; - /* FIXME: use work_on_cpu() */ - if (set_cpus_allowed_ptr(current, cpumask_of(i))) - continue; - ret = match_pr->throttling. - acpi_processor_set_throttling( - match_pr, t_state.target_state, force); + + arg.pr = match_pr; + arg.target_state = state; + arg.force = force; + ret = work_on_cpu(pr->id, acpi_processor_throttling_fn, + &arg); } } /* @@ -1171,17 +1171,12 @@ * affected cpu to update the T-states. * The notifier event is THROTTLING_POSTCHANGE */ - for_each_cpu(i, online_throttling_cpus) { + for_each_cpu_and(i, cpu_online_mask, p_throttling->shared_cpu_map) { t_state.cpu = i; acpi_processor_throttling_notifier(THROTTLING_POSTCHANGE, &t_state); } - /* restore the previous state */ - /* FIXME: use work_on_cpu() */ - set_cpus_allowed_ptr(current, saved_mask); -exit: - free_cpumask_var(online_throttling_cpus); - free_cpumask_var(saved_mask); + return ret; } --- linux-3.13.0.orig/drivers/acpi/resource.c +++ linux-3.13.0/drivers/acpi/resource.c @@ -77,18 +77,24 @@ switch (ares->type) { case ACPI_RESOURCE_TYPE_MEMORY24: memory24 = &ares->data.memory24; + if (!memory24->address_length) + return false; acpi_dev_get_memresource(res, memory24->minimum, memory24->address_length, memory24->write_protect); break; case ACPI_RESOURCE_TYPE_MEMORY32: memory32 = &ares->data.memory32; + if (!memory32->address_length) + return false; acpi_dev_get_memresource(res, memory32->minimum, memory32->address_length, memory32->write_protect); break; case ACPI_RESOURCE_TYPE_FIXED_MEMORY32: fixed_memory32 = &ares->data.fixed_memory32; + if (!fixed_memory32->address_length) + return false; acpi_dev_get_memresource(res, fixed_memory32->address, fixed_memory32->address_length, fixed_memory32->write_protect); @@ -144,12 +150,16 @@ switch (ares->type) { case ACPI_RESOURCE_TYPE_IO: io = &ares->data.io; + if (!io->address_length) + return false; acpi_dev_get_ioresource(res, io->minimum, io->address_length, io->io_decode); break; case ACPI_RESOURCE_TYPE_FIXED_IO: fixed_io = &ares->data.fixed_io; + if (!fixed_io->address_length) + return false; acpi_dev_get_ioresource(res, fixed_io->address, fixed_io->address_length, ACPI_DECODE_10); --- linux-3.13.0.orig/drivers/acpi/sleep.c +++ linux-3.13.0/drivers/acpi/sleep.c @@ -75,6 +75,17 @@ return 0; } +static bool acpi_sleep_state_supported(u8 sleep_state) +{ + acpi_status status; + u8 type_a, type_b; + + status = acpi_get_sleep_type_data(sleep_state, &type_a, &type_b); + return ACPI_SUCCESS(status) && (!acpi_gbl_reduced_hardware + || (acpi_gbl_FADT.sleep_control.address + && acpi_gbl_FADT.sleep_status.address)); +} + #ifdef CONFIG_ACPI_SLEEP static u32 acpi_target_sleep_state = ACPI_STATE_S0; @@ -608,15 +619,9 @@ { int i; - for (i = ACPI_STATE_S1; i < ACPI_STATE_S4; i++) { - acpi_status status; - u8 type_a, type_b; - - status = acpi_get_sleep_type_data(i, &type_a, &type_b); - if (ACPI_SUCCESS(status)) { + for (i = ACPI_STATE_S1; i < ACPI_STATE_S4; i++) + if (acpi_sleep_state_supported(i)) sleep_states[i] = 1; - } - } suspend_set_ops(old_suspend_ordering ? &acpi_suspend_ops_old : &acpi_suspend_ops); @@ -747,11 +752,7 @@ static void acpi_sleep_hibernate_setup(void) { - acpi_status status; - u8 type_a, type_b; - - status = acpi_get_sleep_type_data(ACPI_STATE_S4, &type_a, &type_b); - if (ACPI_FAILURE(status)) + if (!acpi_sleep_state_supported(ACPI_STATE_S4)) return; hibernation_set_ops(old_suspend_ordering ? @@ -800,8 +801,6 @@ int __init acpi_sleep_init(void) { - acpi_status status; - u8 type_a, type_b; char supported[ACPI_S_STATE_COUNT * 3 + 1]; char *pos = supported; int i; @@ -816,8 +815,7 @@ acpi_sleep_suspend_setup(); acpi_sleep_hibernate_setup(); - status = acpi_get_sleep_type_data(ACPI_STATE_S5, &type_a, &type_b); - if (ACPI_SUCCESS(status)) { + if (acpi_sleep_state_supported(ACPI_STATE_S5)) { sleep_states[ACPI_STATE_S5] = 1; pm_power_off_prepare = acpi_power_off_prepare; pm_power_off = acpi_power_off; --- linux-3.13.0.orig/drivers/acpi/video.c +++ linux-3.13.0/drivers/acpi/video.c @@ -82,11 +82,12 @@ module_param(allow_duplicates, bool, 0644); /* - * For Windows 8 systems: if set ture and the GPU driver has - * registered a backlight interface, skip registering ACPI video's. + * For Windows 8 systems: used to decide if video module + * should skip registering backlight interface of its own. */ -static bool use_native_backlight = false; -module_param(use_native_backlight, bool, 0644); +static int use_native_backlight_param = -1; +module_param_named(use_native_backlight, use_native_backlight_param, int, 0444); +static bool use_native_backlight_dmi = false; static int register_count; static struct mutex video_list_lock; @@ -232,9 +233,17 @@ static int acpi_video_switch_brightness(struct acpi_video_device *device, int event); +static bool acpi_video_use_native_backlight(void) +{ + if (use_native_backlight_param != -1) + return use_native_backlight_param; + else + return use_native_backlight_dmi; +} + static bool acpi_video_verify_backlight_support(void) { - if (acpi_osi_is_win8() && use_native_backlight && + if (acpi_osi_is_win8() && acpi_video_use_native_backlight() && backlight_device_registered(BACKLIGHT_RAW)) return false; return acpi_video_backlight_support(); @@ -399,6 +408,12 @@ return 0; } +static int __init video_set_use_native_backlight(const struct dmi_system_id *d) +{ + use_native_backlight_dmi = true; + return 0; +} + static struct dmi_system_id video_dmi_table[] __initdata = { /* * Broken _BQC workaround http://bugzilla.kernel.org/show_bug.cgi?id=13121 @@ -443,6 +458,160 @@ DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 7720"), }, }, + { + .callback = video_set_use_native_backlight, + .ident = "ThinkPad T430s", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T430s"), + }, + }, + { + .callback = video_set_use_native_backlight, + .ident = "ThinkPad X230", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X230"), + }, + }, + { + .callback = video_set_use_native_backlight, + .ident = "ThinkPad X1 Carbon", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X1 Carbon"), + }, + }, + { + .callback = video_set_use_native_backlight, + .ident = "Lenovo Yoga 13", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo IdeaPad Yoga 13"), + }, + }, + { + .callback = video_set_use_native_backlight, + .ident = "Dell Inspiron 7520", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_VERSION, "Inspiron 7520"), + }, + }, + { + .callback = video_set_use_native_backlight, + .ident = "Dell Inspiron 5547", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 5547"), + }, + }, + { + .callback = video_set_use_native_backlight, + .ident = "Dell Inspiron 5447", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 5447"), + }, + }, + { + .callback = video_set_use_native_backlight, + .ident = "Dell Inspiron 5721", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 5721"), + }, + }, + { + .callback = video_set_use_native_backlight, + .ident = "Dell Inspiron 3521", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 3521"), + }, + }, + { + .callback = video_set_use_native_backlight, + .ident = "Acer Aspire 5733Z", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Acer"), + DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5733Z"), + }, + }, + { + .callback = video_set_use_native_backlight, + .ident = "Acer Aspire V5-431", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Acer"), + DMI_MATCH(DMI_PRODUCT_NAME, "Aspire V5-431"), + }, + }, + { + .callback = video_set_use_native_backlight, + .ident = "HP ProBook 4340s", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_VERSION, "HP ProBook 4340s"), + }, + }, + { + .callback = video_set_use_native_backlight, + .ident = "HP ProBook 2013 models", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "HP ProBook "), + DMI_MATCH(DMI_PRODUCT_NAME, " G1"), + }, + }, + { + .callback = video_set_use_native_backlight, + .ident = "HP EliteBook 2013 models", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "HP EliteBook "), + DMI_MATCH(DMI_PRODUCT_NAME, " G1"), + }, + }, + { + .callback = video_set_use_native_backlight, + .ident = "HP ZBook 14", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "HP ZBook 14"), + }, + }, + { + .callback = video_set_use_native_backlight, + .ident = "HP ZBook 15", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "HP ZBook 15"), + }, + }, + { + .callback = video_set_use_native_backlight, + .ident = "HP ZBook 17", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "HP ZBook 17"), + }, + }, + { + .callback = video_set_use_native_backlight, + .ident = "HP EliteBook 8780w", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "HP EliteBook 8780w"), + }, + }, + { + .callback = video_set_use_native_backlight, + .ident = "HP ProBook 6570b", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "HP ProBook 6570b"), + }, + }, {} }; @@ -686,6 +855,7 @@ union acpi_object *o; struct acpi_video_device_brightness *br = NULL; int result = -EINVAL; + u32 value; if (!ACPI_SUCCESS(acpi_video_device_lcd_query_levels(device, &obj))) { ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Could not query available " @@ -716,7 +886,12 @@ printk(KERN_ERR PREFIX "Invalid data\n"); continue; } - br->levels[count] = (u32) o->integer.value; + value = (u32) o->integer.value; + /* Skip duplicate entries */ + if (count > 2 && br->levels[count - 1] == value) + continue; + + br->levels[count] = value; if (br->levels[count] > max_level) max_level = br->levels[count]; --- linux-3.13.0.orig/drivers/acpi/video_detect.c +++ linux-3.13.0/drivers/acpi/video_detect.c @@ -176,6 +176,14 @@ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo IdeaPad Yoga 13"), }, }, + { + .callback = video_detect_force_vendor, + .ident = "Dell Inspiron 5737", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 5737"), + }, + }, { }, }; --- linux-3.13.0.orig/drivers/ata/Kconfig +++ linux-3.13.0/drivers/ata/Kconfig @@ -106,6 +106,13 @@ If unsure, say N. +config AHCI_XGENE + tristate "APM X-Gene 6.0Gbps AHCI SATA host controller support" + depends on SATA_AHCI_PLATFORM && (ARM64 || COMPILE_TEST) + select PHY_XGENE + help + This option enables support for APM X-Gene SoC SATA host controller. + config SATA_FSL tristate "Freescale 3.0Gbps SATA support" depends on FSL_SOC --- linux-3.13.0.orig/drivers/ata/Makefile +++ linux-3.13.0/drivers/ata/Makefile @@ -11,6 +11,7 @@ obj-$(CONFIG_SATA_DWC) += sata_dwc_460ex.o obj-$(CONFIG_SATA_HIGHBANK) += sata_highbank.o libahci.o obj-$(CONFIG_AHCI_IMX) += ahci_imx.o +obj-$(CONFIG_AHCI_XGENE) += ahci_xgene.o # SFF w/ custom DMA obj-$(CONFIG_PDC_ADMA) += pdc_adma.o --- linux-3.13.0.orig/drivers/ata/ahci.c +++ linux-3.13.0/drivers/ata/ahci.c @@ -61,6 +61,8 @@ /* board IDs by feature in alphabetical order */ board_ahci, board_ahci_ign_iferr, + board_ahci_nomsi, + board_ahci_noncq, board_ahci_nosntf, board_ahci_yes_fbs, @@ -119,6 +121,20 @@ .udma_mask = ATA_UDMA6, .port_ops = &ahci_ops, }, + [board_ahci_nomsi] = { + AHCI_HFLAGS (AHCI_HFLAG_NO_MSI), + .flags = AHCI_FLAG_COMMON, + .pio_mask = ATA_PIO4, + .udma_mask = ATA_UDMA6, + .port_ops = &ahci_ops, + }, + [board_ahci_noncq] = { + AHCI_HFLAGS (AHCI_HFLAG_NO_NCQ), + .flags = AHCI_FLAG_COMMON, + .pio_mask = ATA_PIO4, + .udma_mask = ATA_UDMA6, + .port_ops = &ahci_ops, + }, [board_ahci_nosntf] = { AHCI_HFLAGS (AHCI_HFLAG_NO_SNTF), .flags = AHCI_FLAG_COMMON, @@ -296,6 +312,22 @@ { PCI_VDEVICE(INTEL, 0x9c85), board_ahci }, /* Wildcat Point-LP RAID */ { PCI_VDEVICE(INTEL, 0x9c87), board_ahci }, /* Wildcat Point-LP RAID */ { PCI_VDEVICE(INTEL, 0x9c8f), board_ahci }, /* Wildcat Point-LP RAID */ + { PCI_VDEVICE(INTEL, 0x8c82), board_ahci }, /* 9 Series AHCI */ + { PCI_VDEVICE(INTEL, 0x8c83), board_ahci }, /* 9 Series AHCI */ + { PCI_VDEVICE(INTEL, 0x8c84), board_ahci }, /* 9 Series RAID */ + { PCI_VDEVICE(INTEL, 0x8c85), board_ahci }, /* 9 Series RAID */ + { PCI_VDEVICE(INTEL, 0x8c86), board_ahci }, /* 9 Series RAID */ + { PCI_VDEVICE(INTEL, 0x8c87), board_ahci }, /* 9 Series RAID */ + { PCI_VDEVICE(INTEL, 0x8c8e), board_ahci }, /* 9 Series RAID */ + { PCI_VDEVICE(INTEL, 0x8c8f), board_ahci }, /* 9 Series RAID */ + { PCI_VDEVICE(INTEL, 0x9d03), board_ahci }, /* Sunrise Point-LP AHCI */ + { PCI_VDEVICE(INTEL, 0x9d05), board_ahci }, /* Sunrise Point-LP RAID */ + { PCI_VDEVICE(INTEL, 0x9d07), board_ahci }, /* Sunrise Point-LP RAID */ + { PCI_VDEVICE(INTEL, 0xa103), board_ahci }, /* Sunrise Point-H AHCI */ + { PCI_VDEVICE(INTEL, 0xa103), board_ahci }, /* Sunrise Point-H RAID */ + { PCI_VDEVICE(INTEL, 0xa105), board_ahci }, /* Sunrise Point-H RAID */ + { PCI_VDEVICE(INTEL, 0xa107), board_ahci }, /* Sunrise Point-H RAID */ + { PCI_VDEVICE(INTEL, 0xa10f), board_ahci }, /* Sunrise Point-H RAID */ /* JMicron 360/1/3/5/6, match class to avoid IDE function */ { PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, @@ -433,16 +465,23 @@ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x917a), .driver_data = board_ahci_yes_fbs }, /* 88se9172 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9172), + .driver_data = board_ahci_yes_fbs }, /* 88se9182 */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9182), .driver_data = board_ahci_yes_fbs }, /* 88se9172 */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9192), .driver_data = board_ahci_yes_fbs }, /* 88se9172 on some Gigabyte */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a0), + .driver_data = board_ahci_yes_fbs }, { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a3), .driver_data = board_ahci_yes_fbs }, { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9230), .driver_data = board_ahci_yes_fbs }, + { PCI_DEVICE(PCI_VENDOR_ID_TTI, 0x0642), + .driver_data = board_ahci_yes_fbs }, /* Promise */ { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci }, /* PDC42819 */ + { PCI_VDEVICE(PROMISE, 0x3781), board_ahci }, /* FastTrak TX8660 ahci-mode */ /* Asmedia */ { PCI_VDEVICE(ASMEDIA, 0x0601), board_ahci }, /* ASM1060 */ @@ -450,6 +489,13 @@ { PCI_VDEVICE(ASMEDIA, 0x0611), board_ahci }, /* ASM1061 */ { PCI_VDEVICE(ASMEDIA, 0x0612), board_ahci }, /* ASM1062 */ + /* + * Samsung SSDs found on some macbooks. NCQ times out if MSI is + * enabled. https://bugzilla.kernel.org/show_bug.cgi?id=60731 + */ + { PCI_VDEVICE(SAMSUNG, 0x1600), board_ahci_nomsi }, + { PCI_VDEVICE(SAMSUNG, 0xa800), board_ahci_nomsi }, + /* Enmotus */ { PCI_DEVICE(0x1c44, 0x8000), board_ahci }, @@ -562,6 +608,7 @@ unsigned long deadline) { struct ata_port *ap = link->ap; + struct ahci_host_priv *hpriv = ap->host->private_data; bool online; int rc; @@ -572,7 +619,7 @@ rc = sata_link_hardreset(link, sata_ehc_deb_timing(&link->eh_context), deadline, &online, NULL); - ahci_start_engine(ap); + hpriv->start_engine(ap); DPRINTK("EXIT, rc=%d, class=%u\n", rc, *class); @@ -587,6 +634,7 @@ { struct ata_port *ap = link->ap; struct ahci_port_priv *pp = ap->private_data; + struct ahci_host_priv *hpriv = ap->host->private_data; u8 *d2h_fis = pp->rx_fis + RX_FIS_D2H_REG; struct ata_taskfile tf; bool online; @@ -602,7 +650,7 @@ rc = sata_link_hardreset(link, sata_ehc_deb_timing(&link->eh_context), deadline, &online, NULL); - ahci_start_engine(ap); + hpriv->start_engine(ap); /* The pseudo configuration device on SIMG4726 attached to * ASUS P5W-DH Deluxe doesn't send signature FIS after @@ -1155,18 +1203,18 @@ return rc; for (i = 0; i < host->n_ports; i++) { - const char* desc; struct ahci_port_priv *pp = host->ports[i]->private_data; - /* pp is NULL for dummy ports */ - if (pp) - desc = pp->irq_desc; - else - desc = dev_driver_string(host->dev); + /* Do not receive interrupts sent by dummy ports */ + if (!pp) { + disable_irq(irq + i); + continue; + } - rc = devm_request_threaded_irq(host->dev, - irq + i, ahci_hw_interrupt, ahci_thread_fn, IRQF_SHARED, - desc, host->ports[i]); + rc = devm_request_threaded_irq(host->dev, irq + i, + ahci_hw_interrupt, + ahci_thread_fn, IRQF_SHARED, + pp->irq_desc, host->ports[i]); if (rc) goto out_free_irqs; } --- linux-3.13.0.orig/drivers/ata/ahci.h +++ linux-3.13.0/drivers/ata/ahci.h @@ -37,6 +37,8 @@ #include #include +#include +#include /* Enclosure Management Control */ #define EM_CTRL_MSG_TYPE 0x000f0000 @@ -51,6 +53,7 @@ enum { AHCI_MAX_PORTS = 32, + AHCI_MAX_CLKS = 3, AHCI_MAX_SG = 168, /* hardware max is 64K */ AHCI_DMA_BOUNDARY = 0xffffffff, AHCI_MAX_CMDS = 32, @@ -321,8 +324,17 @@ u32 em_loc; /* enclosure management location */ u32 em_buf_sz; /* EM buffer size in byte */ u32 em_msg_type; /* EM message type */ - struct clk *clk; /* Only for platforms supporting clk */ + bool got_runtime_pm; /* Did we do pm_runtime_get? */ + struct clk *clks[AHCI_MAX_CLKS]; /* Optional */ + struct regulator *target_pwr; /* Optional */ + struct phy *phy; /* If platform uses phy */ void *plat_data; /* Other platform data */ + /* + * Optional ahci_start_engine override, if not set this gets set to the + * default ahci_start_engine during ahci_save_initial_config, this can + * be overridden anytime before the host is activated. + */ + void (*start_engine)(struct ata_port *ap); }; extern int ahci_ignore_sss; @@ -356,8 +368,11 @@ int pmp, unsigned long deadline, int (*check_ready)(struct ata_link *link)); +unsigned int ahci_qc_issue(struct ata_queued_cmd *qc); int ahci_stop_engine(struct ata_port *ap); +void ahci_start_fis_rx(struct ata_port *ap); void ahci_start_engine(struct ata_port *ap); +int ahci_restart_engine(struct ata_port *ap); int ahci_check_ready(struct ata_link *link); int ahci_kick_engine(struct ata_port *ap); int ahci_port_resume(struct ata_port *ap); --- linux-3.13.0.orig/drivers/ata/ahci_platform.c +++ linux-3.13.0/drivers/ata/ahci_platform.c @@ -23,6 +23,8 @@ #include #include #include +#include +#include #include "ahci.h" static void ahci_host_stop(struct ata_host *host); @@ -87,78 +89,284 @@ AHCI_SHT("ahci_platform"), }; -static int ahci_probe(struct platform_device *pdev) +/** + * ahci_platform_enable_clks - Enable platform clocks + * @hpriv: host private area to store config values + * + * This function enables all the clks found in hpriv->clks, starting at + * index 0. If any clk fails to enable it disables all the clks already + * enabled in reverse order, and then returns an error. + * + * RETURNS: + * 0 on success otherwise a negative error code + */ +int ahci_platform_enable_clks(struct ahci_host_priv *hpriv) +{ + int c, rc; + + for (c = 0; c < AHCI_MAX_CLKS && hpriv->clks[c]; c++) { + rc = clk_prepare_enable(hpriv->clks[c]); + if (rc) + goto disable_unprepare_clk; + } + return 0; + +disable_unprepare_clk: + while (--c >= 0) + clk_disable_unprepare(hpriv->clks[c]); + return rc; +} +EXPORT_SYMBOL_GPL(ahci_platform_enable_clks); + +/** + * ahci_platform_disable_clks - Disable platform clocks + * @hpriv: host private area to store config values + * + * This function disables all the clks found in hpriv->clks, in reverse + * order of ahci_platform_enable_clks (starting at the end of the array). + */ +void ahci_platform_disable_clks(struct ahci_host_priv *hpriv) +{ + int c; + + for (c = AHCI_MAX_CLKS - 1; c >= 0; c--) + if (hpriv->clks[c]) + clk_disable_unprepare(hpriv->clks[c]); +} +EXPORT_SYMBOL_GPL(ahci_platform_disable_clks); + +/** + * ahci_platform_enable_resources - Enable platform resources + * @hpriv: host private area to store config values + * + * This function enables all ahci_platform managed resources in the + * following order: + * 1) Regulator + * 2) Clocks (through ahci_platform_enable_clks) + * 3) Phy + * + * If resource enabling fails at any point the previous enabled resources + * are disabled in reverse order. + * + * RETURNS: + * 0 on success otherwise a negative error code + */ +int ahci_platform_enable_resources(struct ahci_host_priv *hpriv) { - struct device *dev = &pdev->dev; - struct ahci_platform_data *pdata = dev_get_platdata(dev); - const struct platform_device_id *id = platform_get_device_id(pdev); - struct ata_port_info pi = ahci_port_info[id ? id->driver_data : 0]; - const struct ata_port_info *ppi[] = { &pi, NULL }; - struct ahci_host_priv *hpriv; - struct ata_host *host; - struct resource *mem; - int irq; - int n_ports; - int i; int rc; - mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!mem) { - dev_err(dev, "no mmio space\n"); - return -EINVAL; + if (hpriv->target_pwr) { + rc = regulator_enable(hpriv->target_pwr); + if (rc) + return rc; } - irq = platform_get_irq(pdev, 0); - if (irq <= 0) { - dev_err(dev, "no irq\n"); - return -EINVAL; + rc = ahci_platform_enable_clks(hpriv); + if (rc) + goto disable_regulator; + + if (hpriv->phy) { + rc = phy_init(hpriv->phy); + if (rc) + goto disable_clks; + + rc = phy_power_on(hpriv->phy); + if (rc) { + phy_exit(hpriv->phy); + goto disable_clks; + } } - if (pdata && pdata->ata_port_info) - pi = *pdata->ata_port_info; + return 0; - hpriv = devm_kzalloc(dev, sizeof(*hpriv), GFP_KERNEL); - if (!hpriv) { - dev_err(dev, "can't alloc ahci_host_priv\n"); - return -ENOMEM; +disable_clks: + ahci_platform_disable_clks(hpriv); + +disable_regulator: + if (hpriv->target_pwr) + regulator_disable(hpriv->target_pwr); + return rc; +} +EXPORT_SYMBOL_GPL(ahci_platform_enable_resources); + +/** + * ahci_platform_disable_resources - Disable platform resources + * @hpriv: host private area to store config values + * + * This function disables all ahci_platform managed resources in the + * following order: + * 1) Phy + * 2) Clocks (through ahci_platform_disable_clks) + * 3) Regulator + */ +void ahci_platform_disable_resources(struct ahci_host_priv *hpriv) +{ + if (hpriv->phy) { + phy_power_off(hpriv->phy); + phy_exit(hpriv->phy); } - hpriv->flags |= (unsigned long)pi.private_data; + ahci_platform_disable_clks(hpriv); + + if (hpriv->target_pwr) + regulator_disable(hpriv->target_pwr); +} +EXPORT_SYMBOL_GPL(ahci_platform_disable_resources); + +static void ahci_platform_put_resources(struct device *dev, void *res) +{ + struct ahci_host_priv *hpriv = res; + int c; + + if (hpriv->got_runtime_pm) { + pm_runtime_put_sync(dev); + pm_runtime_disable(dev); + } + + for (c = 0; c < AHCI_MAX_CLKS && hpriv->clks[c]; c++) + clk_put(hpriv->clks[c]); +} - hpriv->mmio = devm_ioremap(dev, mem->start, resource_size(mem)); +/** + * ahci_platform_get_resources - Get platform resources + * @pdev: platform device to get resources for + * + * This function allocates an ahci_host_priv struct, and gets the following + * resources, storing a reference to them inside the returned struct: + * + * 1) mmio registers (IORESOURCE_MEM 0, mandatory) + * 2) regulator for controlling the targets power (optional) + * 3) 0 - AHCI_MAX_CLKS clocks, as specified in the devs devicetree node, + * or for non devicetree enabled platforms a single clock + * 4) phy (optional) + * + * RETURNS: + * The allocated ahci_host_priv on success, otherwise an ERR_PTR value + */ +struct ahci_host_priv *ahci_platform_get_resources( + struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + struct ahci_host_priv *hpriv; + struct clk *clk; + int i, rc = -ENOMEM; + + if (!devres_open_group(dev, NULL, GFP_KERNEL)) + return ERR_PTR(-ENOMEM); + + hpriv = devres_alloc(ahci_platform_put_resources, sizeof(*hpriv), + GFP_KERNEL); + if (!hpriv) + goto err_out; + + devres_add(dev, hpriv); + + hpriv->mmio = devm_ioremap_resource(dev, + platform_get_resource(pdev, IORESOURCE_MEM, 0)); if (!hpriv->mmio) { - dev_err(dev, "can't map %pR\n", mem); - return -ENOMEM; + dev_err(dev, "no mmio space\n"); + goto err_out; } - hpriv->clk = clk_get(dev, NULL); - if (IS_ERR(hpriv->clk)) { - dev_err(dev, "can't get clock\n"); - } else { - rc = clk_prepare_enable(hpriv->clk); - if (rc) { - dev_err(dev, "clock prepare enable failed"); - goto free_clk; + hpriv->target_pwr = devm_regulator_get_optional(dev, "target"); + if (IS_ERR(hpriv->target_pwr)) { + rc = PTR_ERR(hpriv->target_pwr); + if (rc == -EPROBE_DEFER) + goto err_out; + hpriv->target_pwr = NULL; + } + + for (i = 0; i < AHCI_MAX_CLKS; i++) { + /* + * For now we must use clk_get(dev, NULL) for the first clock, + * because some platforms (da850, spear13xx) are not yet + * converted to use devicetree for clocks. For new platforms + * this is equivalent to of_clk_get(dev->of_node, 0). + */ + if (i == 0) + clk = clk_get(dev, NULL); + else + clk = of_clk_get(dev->of_node, i); + + if (IS_ERR(clk)) { + rc = PTR_ERR(clk); + if (rc == -EPROBE_DEFER) + goto err_out; + break; } + hpriv->clks[i] = clk; } - /* - * Some platforms might need to prepare for mmio region access, - * which could be done in the following init call. So, the mmio - * region shouldn't be accessed before init (if provided) has - * returned successfully. - */ - if (pdata && pdata->init) { - rc = pdata->init(dev, hpriv->mmio); - if (rc) - goto disable_unprepare_clk; + hpriv->phy = devm_phy_get(dev, "sata-phy"); + if (IS_ERR(hpriv->phy)) { + rc = PTR_ERR(hpriv->phy); + switch (rc) { + case -ENODEV: + case -ENOSYS: + /* continue normally */ + hpriv->phy = NULL; + break; + + case -EPROBE_DEFER: + goto err_out; + + default: + dev_err(dev, "couldn't get sata-phy\n"); + goto err_out; + } } - ahci_save_initial_config(dev, hpriv, - pdata ? pdata->force_port_map : 0, - pdata ? pdata->mask_port_map : 0); + pm_runtime_enable(dev); + pm_runtime_get_sync(dev); + hpriv->got_runtime_pm = true; + + devres_remove_group(dev, NULL); + return hpriv; + +err_out: + devres_release_group(dev, NULL); + return ERR_PTR(rc); +} +EXPORT_SYMBOL_GPL(ahci_platform_get_resources); + +/** + * ahci_platform_init_host - Bring up an ahci-platform host + * @pdev: platform device pointer for the host + * @hpriv: ahci-host private data for the host + * @pi_template: template for the ata_port_info to use + * @force_port_map: param passed to ahci_save_initial_config + * @mask_port_map: param passed to ahci_save_initial_config + * + * This function does all the usual steps needed to bring up an + * ahci-platform host, note any necessary resources (ie clks, phy, etc.) + * must be initialized / enabled before calling this. + * + * RETURNS: + * 0 on success otherwise a negative error code + */ +int ahci_platform_init_host(struct platform_device *pdev, + struct ahci_host_priv *hpriv, + const struct ata_port_info *pi_template, + unsigned int force_port_map, + unsigned int mask_port_map) +{ + struct device *dev = &pdev->dev; + struct ata_port_info pi = *pi_template; + const struct ata_port_info *ppi[] = { &pi, NULL }; + struct ata_host *host; + int i, irq, n_ports, rc; + + irq = platform_get_irq(pdev, 0); + if (irq <= 0) { + dev_err(dev, "no irq\n"); + return -EINVAL; + } /* prepare host */ + hpriv->flags |= (unsigned long)pi.private_data; + + ahci_save_initial_config(dev, hpriv, force_port_map, mask_port_map); + if (hpriv->cap & HOST_CAP_NCQ) pi.flags |= ATA_FLAG_NCQ; @@ -175,10 +383,8 @@ n_ports = max(ahci_nr_ports(hpriv->cap), fls(hpriv->port_map)); host = ata_host_alloc_pinfo(dev, ppi, n_ports); - if (!host) { - rc = -ENOMEM; - goto pdata_exit; - } + if (!host) + return -ENOMEM; host->private_data = hpriv; @@ -193,7 +399,8 @@ for (i = 0; i < host->n_ports; i++) { struct ata_port *ap = host->ports[i]; - ata_port_desc(ap, "mmio %pR", mem); + ata_port_desc(ap, "mmio %pR", + platform_get_resource(pdev, IORESOURCE_MEM, 0)); ata_port_desc(ap, "port 0x%x", 0x100 + ap->port_no * 0x80); /* set enclosure management message type */ @@ -207,13 +414,53 @@ rc = ahci_reset_controller(host); if (rc) - goto pdata_exit; + return rc; ahci_init_controller(host); ahci_print_info(host, "platform"); - rc = ata_host_activate(host, irq, ahci_interrupt, IRQF_SHARED, - &ahci_platform_sht); + return ata_host_activate(host, irq, ahci_interrupt, IRQF_SHARED, + &ahci_platform_sht); +} +EXPORT_SYMBOL_GPL(ahci_platform_init_host); + +static int ahci_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + struct ahci_platform_data *pdata = dev_get_platdata(dev); + const struct platform_device_id *id = platform_get_device_id(pdev); + const struct ata_port_info *pi_template; + struct ahci_host_priv *hpriv; + int rc; + + hpriv = ahci_platform_get_resources(pdev); + if (IS_ERR(hpriv)) + return PTR_ERR(hpriv); + + rc = ahci_platform_enable_resources(hpriv); + if (rc) + return rc; + + /* + * Some platforms might need to prepare for mmio region access, + * which could be done in the following init call. So, the mmio + * region shouldn't be accessed before init (if provided) has + * returned successfully. + */ + if (pdata && pdata->init) { + rc = pdata->init(dev, hpriv->mmio); + if (rc) + goto disable_resources; + } + + if (pdata && pdata->ata_port_info) + pi_template = pdata->ata_port_info; + else + pi_template = &ahci_port_info[id ? id->driver_data : 0]; + + rc = ahci_platform_init_host(pdev, hpriv, pi_template, + pdata ? pdata->force_port_map : 0, + pdata ? pdata->mask_port_map : 0); if (rc) goto pdata_exit; @@ -221,12 +468,8 @@ pdata_exit: if (pdata && pdata->exit) pdata->exit(dev); -disable_unprepare_clk: - if (!IS_ERR(hpriv->clk)) - clk_disable_unprepare(hpriv->clk); -free_clk: - if (!IS_ERR(hpriv->clk)) - clk_put(hpriv->clk); +disable_resources: + ahci_platform_disable_resources(hpriv); return rc; } @@ -239,21 +482,27 @@ if (pdata && pdata->exit) pdata->exit(dev); - if (!IS_ERR(hpriv->clk)) { - clk_disable_unprepare(hpriv->clk); - clk_put(hpriv->clk); - } + ahci_platform_disable_resources(hpriv); } #ifdef CONFIG_PM_SLEEP -static int ahci_suspend(struct device *dev) +/** + * ahci_platform_suspend_host - Suspend an ahci-platform host + * @dev: device pointer for the host + * + * This function does all the usual steps needed to suspend an + * ahci-platform host, note any necessary resources (ie clks, phy, etc.) + * must be disabled after calling this. + * + * RETURNS: + * 0 on success otherwise a negative error code + */ +int ahci_platform_suspend_host(struct device *dev) { - struct ahci_platform_data *pdata = dev_get_platdata(dev); struct ata_host *host = dev_get_drvdata(dev); struct ahci_host_priv *hpriv = host->private_data; void __iomem *mmio = hpriv->mmio; u32 ctl; - int rc; if (hpriv->flags & AHCI_HFLAG_NO_SUSPEND) { dev_err(dev, "firmware update required for suspend/resume\n"); @@ -270,61 +519,118 @@ writel(ctl, mmio + HOST_CTL); readl(mmio + HOST_CTL); /* flush */ - rc = ata_host_suspend(host, PMSG_SUSPEND); + return ata_host_suspend(host, PMSG_SUSPEND); +} +EXPORT_SYMBOL_GPL(ahci_platform_suspend_host); + +/** + * ahci_platform_resume_host - Resume an ahci-platform host + * @dev: device pointer for the host + * + * This function does all the usual steps needed to resume an ahci-platform + * host, note any necessary resources (ie clks, phy, etc.) must be + * initialized / enabled before calling this. + * + * RETURNS: + * 0 on success otherwise a negative error code + */ +int ahci_platform_resume_host(struct device *dev) +{ + struct ata_host *host = dev_get_drvdata(dev); + int rc; + + if (dev->power.power_state.event == PM_EVENT_SUSPEND) { + rc = ahci_reset_controller(host); + if (rc) + return rc; + + ahci_init_controller(host); + } + + ata_host_resume(host); + + return 0; +} +EXPORT_SYMBOL_GPL(ahci_platform_resume_host); + +/** + * ahci_platform_suspend - Suspend an ahci-platform device + * @dev: the platform device to suspend + * + * This function suspends the host associated with the device, followed by + * disabling all the resources of the device. + * + * RETURNS: + * 0 on success otherwise a negative error code + */ +int ahci_platform_suspend(struct device *dev) +{ + struct ahci_platform_data *pdata = dev_get_platdata(dev); + struct ata_host *host = dev_get_drvdata(dev); + struct ahci_host_priv *hpriv = host->private_data; + int rc; + + rc = ahci_platform_suspend_host(dev); if (rc) return rc; if (pdata && pdata->suspend) return pdata->suspend(dev); - if (!IS_ERR(hpriv->clk)) - clk_disable_unprepare(hpriv->clk); + ahci_platform_disable_resources(hpriv); return 0; } +EXPORT_SYMBOL_GPL(ahci_platform_suspend); -static int ahci_resume(struct device *dev) +/** + * ahci_platform_resume - Resume an ahci-platform device + * @dev: the platform device to resume + * + * This function enables all the resources of the device followed by + * resuming the host associated with the device. + * + * RETURNS: + * 0 on success otherwise a negative error code + */ +int ahci_platform_resume(struct device *dev) { struct ahci_platform_data *pdata = dev_get_platdata(dev); struct ata_host *host = dev_get_drvdata(dev); struct ahci_host_priv *hpriv = host->private_data; int rc; - if (!IS_ERR(hpriv->clk)) { - rc = clk_prepare_enable(hpriv->clk); - if (rc) { - dev_err(dev, "clock prepare enable failed"); - return rc; - } - } + rc = ahci_platform_enable_resources(hpriv); + if (rc) + return rc; if (pdata && pdata->resume) { rc = pdata->resume(dev); if (rc) - goto disable_unprepare_clk; + goto disable_resources; } - if (dev->power.power_state.event == PM_EVENT_SUSPEND) { - rc = ahci_reset_controller(host); - if (rc) - goto disable_unprepare_clk; - - ahci_init_controller(host); - } + rc = ahci_platform_resume_host(dev); + if (rc) + goto disable_resources; - ata_host_resume(host); + /* We resumed so update PM runtime state */ + pm_runtime_disable(dev); + pm_runtime_set_active(dev); + pm_runtime_enable(dev); return 0; -disable_unprepare_clk: - if (!IS_ERR(hpriv->clk)) - clk_disable_unprepare(hpriv->clk); +disable_resources: + ahci_platform_disable_resources(hpriv); return rc; } +EXPORT_SYMBOL_GPL(ahci_platform_resume); #endif -static SIMPLE_DEV_PM_OPS(ahci_pm_ops, ahci_suspend, ahci_resume); +static SIMPLE_DEV_PM_OPS(ahci_pm_ops, ahci_platform_suspend, + ahci_platform_resume); static const struct of_device_id ahci_of_match[] = { { .compatible = "snps,spear-ahci", }, --- linux-3.13.0.orig/drivers/ata/ahci_xgene.c +++ linux-3.13.0/drivers/ata/ahci_xgene.c @@ -0,0 +1,555 @@ +/* + * AppliedMicro X-Gene SoC SATA Host Controller Driver + * + * Copyright (c) 2014, Applied Micro Circuits Corporation + * Author: Loc Ho + * Tuan Phan + * Suman Tripathi + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * NOTE: PM support is not currently available. + * + */ +#include +#include +#include +#include +#include +#include +#include "ahci.h" + +/* Max # of disk per a controller */ +#define MAX_AHCI_CHN_PERCTR 2 + +/* MUX CSR */ +#define SATA_ENET_CONFIG_REG 0x00000000 +#define CFG_SATA_ENET_SELECT_MASK 0x00000001 + +/* SATA core host controller CSR */ +#define SLVRDERRATTRIBUTES 0x00000000 +#define SLVWRERRATTRIBUTES 0x00000004 +#define MSTRDERRATTRIBUTES 0x00000008 +#define MSTWRERRATTRIBUTES 0x0000000c +#define BUSCTLREG 0x00000014 +#define IOFMSTRWAUX 0x00000018 +#define INTSTATUSMASK 0x0000002c +#define ERRINTSTATUS 0x00000030 +#define ERRINTSTATUSMASK 0x00000034 + +/* SATA host AHCI CSR */ +#define PORTCFG 0x000000a4 +#define PORTADDR_SET(dst, src) \ + (((dst) & ~0x0000003f) | (((u32)(src)) & 0x0000003f)) +#define PORTPHY1CFG 0x000000a8 +#define PORTPHY1CFG_FRCPHYRDY_SET(dst, src) \ + (((dst) & ~0x00100000) | (((u32)(src) << 0x14) & 0x00100000)) +#define PORTPHY2CFG 0x000000ac +#define PORTPHY3CFG 0x000000b0 +#define PORTPHY4CFG 0x000000b4 +#define PORTPHY5CFG 0x000000b8 +#define SCTL0 0x0000012C +#define PORTPHY5CFG_RTCHG_SET(dst, src) \ + (((dst) & ~0xfff00000) | (((u32)(src) << 0x14) & 0xfff00000)) +#define PORTAXICFG_EN_CONTEXT_SET(dst, src) \ + (((dst) & ~0x01000000) | (((u32)(src) << 0x18) & 0x01000000)) +#define PORTAXICFG 0x000000bc +#define PORTAXICFG_OUTTRANS_SET(dst, src) \ + (((dst) & ~0x00f00000) | (((u32)(src) << 0x14) & 0x00f00000)) +#define PORTRANSCFG 0x000000c8 +#define PORTRANSCFG_RXWM_SET(dst, src) \ + (((dst) & ~0x0000007f) | (((u32)(src)) & 0x0000007f)) + +/* SATA host controller AXI CSR */ +#define INT_SLV_TMOMASK 0x00000010 + +/* SATA diagnostic CSR */ +#define CFG_MEM_RAM_SHUTDOWN 0x00000070 +#define BLOCK_MEM_RDY 0x00000074 + +/* Max retry for link down */ +#define MAX_LINK_DOWN_RETRY 3 + +struct xgene_ahci_context { + struct ahci_host_priv *hpriv; + struct device *dev; + u8 last_cmd[MAX_AHCI_CHN_PERCTR]; /* tracking the last command issued*/ + void __iomem *csr_core; /* Core CSR address of IP */ + void __iomem *csr_diag; /* Diag CSR address of IP */ + void __iomem *csr_axi; /* AXI CSR address of IP */ + void __iomem *csr_mux; /* MUX CSR address of IP */ +}; + +static int xgene_ahci_init_memram(struct xgene_ahci_context *ctx) +{ + dev_dbg(ctx->dev, "Release memory from shutdown\n"); + writel(0x0, ctx->csr_diag + CFG_MEM_RAM_SHUTDOWN); + readl(ctx->csr_diag + CFG_MEM_RAM_SHUTDOWN); /* Force a barrier */ + msleep(1); /* reset may take up to 1ms */ + if (readl(ctx->csr_diag + BLOCK_MEM_RDY) != 0xFFFFFFFF) { + dev_err(ctx->dev, "failed to release memory from shutdown\n"); + return -ENODEV; + } + return 0; +} + +/** + * xgene_ahci_restart_engine - Restart the dma engine. + * @ap : ATA port of interest + * + * Restarts the dma engine inside the controller. + */ +static int xgene_ahci_restart_engine(struct ata_port *ap) +{ + struct ahci_host_priv *hpriv = ap->host->private_data; + + ahci_stop_engine(ap); + ahci_start_fis_rx(ap); + hpriv->start_engine(ap); + + return 0; +} + +/** + * xgene_ahci_qc_issue - Issue commands to the device + * @qc: Command to issue + * + * Due to Hardware errata for IDENTIFY DEVICE command, the controller cannot + * clear the BSY bit after receiving the PIO setup FIS. This results in the dma + * state machine goes into the CMFatalErrorUpdate state and locks up. By + * restarting the dma engine, it removes the controller out of lock up state. + */ +static unsigned int xgene_ahci_qc_issue(struct ata_queued_cmd *qc) +{ + struct ata_port *ap = qc->ap; + struct ahci_host_priv *hpriv = ap->host->private_data; + struct xgene_ahci_context *ctx = hpriv->plat_data; + int rc = 0; + + if (unlikely(ctx->last_cmd[ap->port_no] == ATA_CMD_ID_ATA)) + xgene_ahci_restart_engine(ap); + + rc = ahci_qc_issue(qc); + + /* Save the last command issued */ + ctx->last_cmd[ap->port_no] = qc->tf.command; + + return rc; +} + +static int xgene_ahci_is_memram_inited(struct xgene_ahci_context *ctx) +{ + void __iomem *diagcsr = ctx->csr_diag; + + if (readl(diagcsr + CFG_MEM_RAM_SHUTDOWN) == 0 && + readl(diagcsr + BLOCK_MEM_RDY) == 0xFFFFFFFF) + return 1; + return 0; +} + +/** + * xgene_ahci_read_id - Read ID data from the specified device + * @dev: device + * @tf: proposed taskfile + * @id: data buffer + * + * This custom read ID function is required due to the fact that the HW + * does not support DEVSLP. + */ +static unsigned int xgene_ahci_read_id(struct ata_device *dev, + struct ata_taskfile *tf, u16 *id) +{ + u32 err_mask; + + err_mask = ata_do_dev_read_id(dev, tf, id); + if (err_mask) + return err_mask; + + /* + * Mask reserved area. Word78 spec of Link Power Management + * bit15-8: reserved + * bit7: NCQ autosence + * bit6: Software settings preservation supported + * bit5: reserved + * bit4: In-order sata delivery supported + * bit3: DIPM requests supported + * bit2: DMA Setup FIS Auto-Activate optimization supported + * bit1: DMA Setup FIX non-Zero buffer offsets supported + * bit0: Reserved + * + * Clear reserved bit 8 (DEVSLP bit) as we don't support DEVSLP + */ + id[ATA_ID_FEATURE_SUPP] &= ~(1 << 8); + + return 0; +} + +static void xgene_ahci_set_phy_cfg(struct xgene_ahci_context *ctx, int channel) +{ + void __iomem *mmio = ctx->hpriv->mmio; + u32 val; + + dev_dbg(ctx->dev, "port configure mmio 0x%p channel %d\n", + mmio, channel); + val = readl(mmio + PORTCFG); + val = PORTADDR_SET(val, channel == 0 ? 2 : 3); + writel(val, mmio + PORTCFG); + readl(mmio + PORTCFG); /* Force a barrier */ + /* Disable fix rate */ + writel(0x0001fffe, mmio + PORTPHY1CFG); + readl(mmio + PORTPHY1CFG); /* Force a barrier */ + writel(0x28183219, mmio + PORTPHY2CFG); + readl(mmio + PORTPHY2CFG); /* Force a barrier */ + writel(0x13081008, mmio + PORTPHY3CFG); + readl(mmio + PORTPHY3CFG); /* Force a barrier */ + writel(0x00480815, mmio + PORTPHY4CFG); + readl(mmio + PORTPHY4CFG); /* Force a barrier */ + /* Set window negotiation */ + val = readl(mmio + PORTPHY5CFG); + val = PORTPHY5CFG_RTCHG_SET(val, 0x300); + writel(val, mmio + PORTPHY5CFG); + readl(mmio + PORTPHY5CFG); /* Force a barrier */ + val = readl(mmio + PORTAXICFG); + val = PORTAXICFG_EN_CONTEXT_SET(val, 0x1); /* Enable context mgmt */ + val = PORTAXICFG_OUTTRANS_SET(val, 0xe); /* Set outstanding */ + writel(val, mmio + PORTAXICFG); + readl(mmio + PORTAXICFG); /* Force a barrier */ + /* Set the watermark threshold of the receive FIFO */ + val = readl(mmio + PORTRANSCFG); + val = PORTRANSCFG_RXWM_SET(val, 0x30); + writel(val, mmio + PORTRANSCFG); +} + +/** + * xgene_ahci_do_hardreset - Issue the actual COMRESET + * @link: link to reset + * @deadline: deadline jiffies for the operation + * @online: Return value to indicate if device online + * + * Due to the limitation of the hardware PHY, a difference set of setting is + * required for each supported disk speed - Gen3 (6.0Gbps), Gen2 (3.0Gbps), + * and Gen1 (1.5Gbps). Otherwise during long IO stress test, the PHY will + * report disparity error and etc. In addition, during COMRESET, there can + * be error reported in the register PORT_SCR_ERR. For SERR_DISPARITY and + * SERR_10B_8B_ERR, the PHY receiver line must be reseted. The following + * algorithm is followed to proper configure the hardware PHY during COMRESET: + * + * Alg Part 1: + * 1. Start the PHY at Gen3 speed (default setting) + * 2. Issue the COMRESET + * 3. If no link, go to Alg Part 3 + * 4. If link up, determine if the negotiated speed matches the PHY + * configured speed + * 5. If they matched, go to Alg Part 2 + * 6. If they do not matched and first time, configure the PHY for the linked + * up disk speed and repeat step 2 + * 7. Go to Alg Part 2 + * + * Alg Part 2: + * 1. On link up, if there are any SERR_DISPARITY and SERR_10B_8B_ERR error + * reported in the register PORT_SCR_ERR, then reset the PHY receiver line + * 2. Go to Alg Part 3 + * + * Alg Part 3: + * 1. Clear any pending from register PORT_SCR_ERR. + * + * NOTE: For the initial version, we will NOT support Gen1/Gen2. In addition + * and until the underlying PHY supports an method to reset the receiver + * line, on detection of SERR_DISPARITY or SERR_10B_8B_ERR errors, + * an warning message will be printed. + */ +static int xgene_ahci_do_hardreset(struct ata_link *link, + unsigned long deadline, bool *online) +{ + const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context); + struct ata_port *ap = link->ap; + struct ahci_host_priv *hpriv = ap->host->private_data; + struct xgene_ahci_context *ctx = hpriv->plat_data; + struct ahci_port_priv *pp = ap->private_data; + u8 *d2h_fis = pp->rx_fis + RX_FIS_D2H_REG; + void __iomem *port_mmio = ahci_port_base(ap); + struct ata_taskfile tf; + int link_down_retry = 0; + int rc; + u32 val, sstatus; + + do { + /* clear D2H reception area to properly wait for D2H FIS */ + ata_tf_init(link->device, &tf); + tf.command = ATA_BUSY; + ata_tf_to_fis(&tf, 0, 0, d2h_fis); + rc = sata_link_hardreset(link, timing, deadline, online, + ahci_check_ready); + if (*online) + break; + + sata_scr_read(link, SCR_STATUS, &sstatus); + } while (link_down_retry++ < MAX_LINK_DOWN_RETRY && + (sstatus & 0xff) == 0x1); + + val = readl(port_mmio + PORT_SCR_ERR); + if (val & (SERR_DISPARITY | SERR_10B_8B_ERR)) + dev_warn(ctx->dev, "link has error\n"); + + /* clear all errors if any pending */ + val = readl(port_mmio + PORT_SCR_ERR); + writel(val, port_mmio + PORT_SCR_ERR); + + return rc; +} + +static int xgene_ahci_hardreset(struct ata_link *link, unsigned int *class, + unsigned long deadline) +{ + struct ata_port *ap = link->ap; + struct ahci_host_priv *hpriv = ap->host->private_data; + void __iomem *port_mmio = ahci_port_base(ap); + bool online; + int rc; + u32 portcmd_saved; + u32 portclb_saved; + u32 portclbhi_saved; + u32 portrxfis_saved; + u32 portrxfishi_saved; + + /* As hardreset resets these CSR, save it to restore later */ + portcmd_saved = readl(port_mmio + PORT_CMD); + portclb_saved = readl(port_mmio + PORT_LST_ADDR); + portclbhi_saved = readl(port_mmio + PORT_LST_ADDR_HI); + portrxfis_saved = readl(port_mmio + PORT_FIS_ADDR); + portrxfishi_saved = readl(port_mmio + PORT_FIS_ADDR_HI); + + ahci_stop_engine(ap); + + rc = xgene_ahci_do_hardreset(link, deadline, &online); + + /* As controller hardreset clears them, restore them */ + writel(portcmd_saved, port_mmio + PORT_CMD); + writel(portclb_saved, port_mmio + PORT_LST_ADDR); + writel(portclbhi_saved, port_mmio + PORT_LST_ADDR_HI); + writel(portrxfis_saved, port_mmio + PORT_FIS_ADDR); + writel(portrxfishi_saved, port_mmio + PORT_FIS_ADDR_HI); + + hpriv->start_engine(ap); + + if (online) + *class = ahci_dev_classify(ap); + + return rc; +} + +static void xgene_ahci_host_stop(struct ata_host *host) +{ + struct ahci_host_priv *hpriv = host->private_data; + + ahci_platform_disable_resources(hpriv); +} + +static struct ata_port_operations xgene_ahci_ops = { + .inherits = &ahci_ops, + .host_stop = xgene_ahci_host_stop, + .hardreset = xgene_ahci_hardreset, + .read_id = xgene_ahci_read_id, + .qc_issue = xgene_ahci_qc_issue, +}; + +static const struct ata_port_info xgene_ahci_port_info = { + AHCI_HFLAGS(AHCI_HFLAG_NO_PMP | AHCI_HFLAG_NO_NCQ), + .flags = AHCI_FLAG_COMMON, + .pio_mask = ATA_PIO4, + .udma_mask = ATA_UDMA6, + .port_ops = &xgene_ahci_ops, +}; + +static int xgene_ahci_hw_init(struct ahci_host_priv *hpriv) +{ + struct xgene_ahci_context *ctx = hpriv->plat_data; + int i; + int rc; + u32 val; + + /* Remove IP RAM out of shutdown */ + rc = xgene_ahci_init_memram(ctx); + if (rc) + return rc; + + for (i = 0; i < MAX_AHCI_CHN_PERCTR; i++) + xgene_ahci_set_phy_cfg(ctx, i); + + /* AXI disable Mask */ + writel(0xffffffff, hpriv->mmio + HOST_IRQ_STAT); + readl(hpriv->mmio + HOST_IRQ_STAT); /* Force a barrier */ + writel(0, ctx->csr_core + INTSTATUSMASK); + val = readl(ctx->csr_core + INTSTATUSMASK); /* Force a barrier */ + dev_dbg(ctx->dev, "top level interrupt mask 0x%X value 0x%08X\n", + INTSTATUSMASK, val); + + writel(0x0, ctx->csr_core + ERRINTSTATUSMASK); + readl(ctx->csr_core + ERRINTSTATUSMASK); /* Force a barrier */ + writel(0x0, ctx->csr_axi + INT_SLV_TMOMASK); + readl(ctx->csr_axi + INT_SLV_TMOMASK); + + /* Enable AXI Interrupt */ + writel(0xffffffff, ctx->csr_core + SLVRDERRATTRIBUTES); + writel(0xffffffff, ctx->csr_core + SLVWRERRATTRIBUTES); + writel(0xffffffff, ctx->csr_core + MSTRDERRATTRIBUTES); + writel(0xffffffff, ctx->csr_core + MSTWRERRATTRIBUTES); + + /* Enable coherency */ + val = readl(ctx->csr_core + BUSCTLREG); + val &= ~0x00000002; /* Enable write coherency */ + val &= ~0x00000001; /* Enable read coherency */ + writel(val, ctx->csr_core + BUSCTLREG); + + val = readl(ctx->csr_core + IOFMSTRWAUX); + val |= (1 << 3); /* Enable read coherency */ + val |= (1 << 9); /* Enable write coherency */ + writel(val, ctx->csr_core + IOFMSTRWAUX); + val = readl(ctx->csr_core + IOFMSTRWAUX); + dev_dbg(ctx->dev, "coherency 0x%X value 0x%08X\n", + IOFMSTRWAUX, val); + + return rc; +} + +static int xgene_ahci_mux_select(struct xgene_ahci_context *ctx) +{ + u32 val; + + /* Check for optional MUX resource */ + if (IS_ERR(ctx->csr_mux)) + return 0; + + val = readl(ctx->csr_mux + SATA_ENET_CONFIG_REG); + val &= ~CFG_SATA_ENET_SELECT_MASK; + writel(val, ctx->csr_mux + SATA_ENET_CONFIG_REG); + val = readl(ctx->csr_mux + SATA_ENET_CONFIG_REG); + return val & CFG_SATA_ENET_SELECT_MASK ? -1 : 0; +} + +static int xgene_ahci_probe(struct platform_device *pdev) +{ + struct device *dev = &pdev->dev; + struct ahci_host_priv *hpriv; + struct xgene_ahci_context *ctx; + struct resource *res; + int rc; + + hpriv = ahci_platform_get_resources(pdev); + if (IS_ERR(hpriv)) + return PTR_ERR(hpriv); + + ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); + if (!ctx) + return -ENOMEM; + + hpriv->plat_data = ctx; + ctx->hpriv = hpriv; + ctx->dev = dev; + + /* Retrieve the IP core resource */ + res = platform_get_resource(pdev, IORESOURCE_MEM, 1); + ctx->csr_core = devm_ioremap_resource(dev, res); + if (IS_ERR(ctx->csr_core)) + return PTR_ERR(ctx->csr_core); + + /* Retrieve the IP diagnostic resource */ + res = platform_get_resource(pdev, IORESOURCE_MEM, 2); + ctx->csr_diag = devm_ioremap_resource(dev, res); + if (IS_ERR(ctx->csr_diag)) + return PTR_ERR(ctx->csr_diag); + + /* Retrieve the IP AXI resource */ + res = platform_get_resource(pdev, IORESOURCE_MEM, 3); + ctx->csr_axi = devm_ioremap_resource(dev, res); + if (IS_ERR(ctx->csr_axi)) + return PTR_ERR(ctx->csr_axi); + + /* Retrieve the optional IP mux resource */ + res = platform_get_resource(pdev, IORESOURCE_MEM, 4); + ctx->csr_mux = devm_ioremap_resource(dev, res); + + dev_dbg(dev, "VAddr 0x%p Mmio VAddr 0x%p\n", ctx->csr_core, + hpriv->mmio); + + /* Select ATA */ + if ((rc = xgene_ahci_mux_select(ctx))) { + dev_err(dev, "SATA mux selection failed error %d\n", rc); + return -ENODEV; + } + + if (xgene_ahci_is_memram_inited(ctx)) { + dev_info(dev, "skip clock and PHY initialization\n"); + goto skip_clk_phy; + } + + /* Due to errata, HW requires full toggle transition */ + rc = ahci_platform_enable_clks(hpriv); + if (rc) + goto disable_resources; + ahci_platform_disable_clks(hpriv); + + rc = ahci_platform_enable_resources(hpriv); + if (rc) + goto disable_resources; + + /* Configure the host controller */ + xgene_ahci_hw_init(hpriv); + +skip_clk_phy: + + /* + * Setup DMA mask. This is preliminary until the DMA range is sorted + * out. + */ + rc = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64)); + if (rc) { + dev_err(dev, "Unable to set dma mask\n"); + goto disable_resources; + } + + rc = ahci_platform_init_host(pdev, hpriv, &xgene_ahci_port_info, 0, 0); + if (rc) + goto disable_resources; + + dev_dbg(dev, "X-Gene SATA host controller initialized\n"); + return 0; + +disable_resources: + ahci_platform_disable_resources(hpriv); + return rc; +} + +static const struct of_device_id xgene_ahci_of_match[] = { + {.compatible = "apm,xgene-ahci"}, + {}, +}; +MODULE_DEVICE_TABLE(of, xgene_ahci_of_match); + +static struct platform_driver xgene_ahci_driver = { + .probe = xgene_ahci_probe, + .remove = ata_platform_remove_one, + .driver = { + .name = "xgene-ahci", + .owner = THIS_MODULE, + .of_match_table = xgene_ahci_of_match, + }, +}; + +module_platform_driver(xgene_ahci_driver); + +MODULE_DESCRIPTION("APM X-Gene AHCI SATA driver"); +MODULE_AUTHOR("Loc Ho "); +MODULE_LICENSE("GPL"); +MODULE_VERSION("0.4"); --- linux-3.13.0.orig/drivers/ata/ata_piix.c +++ linux-3.13.0/drivers/ata/ata_piix.c @@ -340,6 +340,14 @@ { 0x8086, 0x0F21, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_byt }, /* SATA Controller IDE (Coleto Creek) */ { 0x8086, 0x23a6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, + /* SATA Controller IDE (9 Series) */ + { 0x8086, 0x8c88, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_snb }, + /* SATA Controller IDE (9 Series) */ + { 0x8086, 0x8c89, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_snb }, + /* SATA Controller IDE (9 Series) */ + { 0x8086, 0x8c80, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb }, + /* SATA Controller IDE (9 Series) */ + { 0x8086, 0x8c81, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb }, { } /* terminate list */ }; --- linux-3.13.0.orig/drivers/ata/libahci.c +++ linux-3.13.0/drivers/ata/libahci.c @@ -69,7 +69,6 @@ static int ahci_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val); static int ahci_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val); -static unsigned int ahci_qc_issue(struct ata_queued_cmd *qc); static bool ahci_qc_fill_rtf(struct ata_queued_cmd *qc); static int ahci_port_start(struct ata_port *ap); static void ahci_port_stop(struct ata_port *ap); @@ -394,6 +393,9 @@ * * If inconsistent, config values are fixed up by this function. * + * If it is not set already this function sets hpriv->start_engine to + * ahci_start_engine. + * * LOCKING: * None. */ @@ -500,6 +502,9 @@ hpriv->cap = cap; hpriv->cap2 = cap2; hpriv->port_map = port_map; + + if (!hpriv->start_engine) + hpriv->start_engine = ahci_start_engine; } EXPORT_SYMBOL_GPL(ahci_save_initial_config); @@ -603,7 +608,7 @@ } EXPORT_SYMBOL_GPL(ahci_stop_engine); -static void ahci_start_fis_rx(struct ata_port *ap) +void ahci_start_fis_rx(struct ata_port *ap) { void __iomem *port_mmio = ahci_port_base(ap); struct ahci_host_priv *hpriv = ap->host->private_data; @@ -629,6 +634,7 @@ /* flush */ readl(port_mmio + PORT_CMD); } +EXPORT_SYMBOL_GPL(ahci_start_fis_rx); static int ahci_stop_fis_rx(struct ata_port *ap) { @@ -730,6 +736,18 @@ return 0; } +int ahci_restart_engine(struct ata_port *ap) +{ + struct ahci_host_priv *hpriv = ap->host->private_data; + + ahci_stop_engine(ap); + ahci_start_fis_rx(ap); + hpriv->start_engine(ap); + + return 0; +} +EXPORT_SYMBOL_GPL(ahci_restart_engine); + #ifdef CONFIG_PM static void ahci_power_down(struct ata_port *ap) { @@ -766,7 +784,7 @@ /* enable DMA */ if (!(hpriv->flags & AHCI_HFLAG_DELAY_ENGINE)) - ahci_start_engine(ap); + hpriv->start_engine(ap); /* turn on LEDs */ if (ap->flags & ATA_FLAG_EM) { @@ -1234,7 +1252,7 @@ /* restart engine */ out_restart: - ahci_start_engine(ap); + hpriv->start_engine(ap); return rc; } EXPORT_SYMBOL_GPL(ahci_kick_engine); @@ -1426,6 +1444,7 @@ const unsigned long *timing = sata_ehc_deb_timing(&link->eh_context); struct ata_port *ap = link->ap; struct ahci_port_priv *pp = ap->private_data; + struct ahci_host_priv *hpriv = ap->host->private_data; u8 *d2h_fis = pp->rx_fis + RX_FIS_D2H_REG; struct ata_taskfile tf; bool online; @@ -1443,7 +1462,7 @@ rc = sata_link_hardreset(link, timing, deadline, &online, ahci_check_ready); - ahci_start_engine(ap); + hpriv->start_engine(ap); if (online) *class = ahci_dev_classify(ap); @@ -1926,7 +1945,7 @@ } EXPORT_SYMBOL_GPL(ahci_interrupt); -static unsigned int ahci_qc_issue(struct ata_queued_cmd *qc) +unsigned int ahci_qc_issue(struct ata_queued_cmd *qc) { struct ata_port *ap = qc->ap; void __iomem *port_mmio = ahci_port_base(ap); @@ -1955,6 +1974,7 @@ return 0; } +EXPORT_SYMBOL_GPL(ahci_qc_issue); static bool ahci_qc_fill_rtf(struct ata_queued_cmd *qc) { @@ -2007,10 +2027,12 @@ void ahci_error_handler(struct ata_port *ap) { + struct ahci_host_priv *hpriv = ap->host->private_data; + if (!(ap->pflags & ATA_PFLAG_FROZEN)) { /* restart engine */ ahci_stop_engine(ap); - ahci_start_engine(ap); + hpriv->start_engine(ap); } sata_pmp_error_handler(ap); @@ -2031,6 +2053,7 @@ static void ahci_set_aggressive_devslp(struct ata_port *ap, bool sleep) { + struct ahci_host_priv *hpriv = ap->host->private_data; void __iomem *port_mmio = ahci_port_base(ap); struct ata_device *dev = ap->link.device; u32 devslp, dm, dito, mdat, deto; @@ -2094,7 +2117,7 @@ PORT_DEVSLP_ADSE); writel(devslp, port_mmio + PORT_DEVSLP); - ahci_start_engine(ap); + hpriv->start_engine(ap); /* enable device sleep feature for the drive */ err_mask = ata_dev_set_feature(dev, @@ -2106,6 +2129,7 @@ static void ahci_enable_fbs(struct ata_port *ap) { + struct ahci_host_priv *hpriv = ap->host->private_data; struct ahci_port_priv *pp = ap->private_data; void __iomem *port_mmio = ahci_port_base(ap); u32 fbs; @@ -2134,11 +2158,12 @@ } else dev_err(ap->host->dev, "Failed to enable FBS\n"); - ahci_start_engine(ap); + hpriv->start_engine(ap); } static void ahci_disable_fbs(struct ata_port *ap) { + struct ahci_host_priv *hpriv = ap->host->private_data; struct ahci_port_priv *pp = ap->private_data; void __iomem *port_mmio = ahci_port_base(ap); u32 fbs; @@ -2166,7 +2191,7 @@ pp->fbs_enabled = false; } - ahci_start_engine(ap); + hpriv->start_engine(ap); } static void ahci_pmp_attach(struct ata_port *ap) --- linux-3.13.0.orig/drivers/ata/libata-core.c +++ linux-3.13.0/drivers/ata/libata-core.c @@ -2222,6 +2222,16 @@ if (rc) return rc; + /* some WD SATA-1 drives have issues with LPM, turn on NOLPM for them */ + if ((dev->horkage & ATA_HORKAGE_WD_BROKEN_LPM) && + (id[ATA_ID_SATA_CAPABILITY] & 0xe) == 0x2) + dev->horkage |= ATA_HORKAGE_NOLPM; + + if (dev->horkage & ATA_HORKAGE_NOLPM) { + ata_dev_warn(dev, "LPM support broken, forcing max_power\n"); + dev->link->ap->target_lpm_policy = ATA_LPM_MAX_POWER; + } + /* let ACPI work its magic */ rc = ata_acpi_on_devcfg(dev); if (rc) @@ -4165,6 +4175,7 @@ /* Seagate Momentus SpinPoint M8 seem to have FPMDA_AA issues */ { "ST1000LM024 HN-M101MBB", "2AR10001", ATA_HORKAGE_BROKEN_FPDMA_AA }, + { "ST1000LM024 HN-M101MBB", "2BA30001", ATA_HORKAGE_BROKEN_FPDMA_AA }, /* Blacklist entries taken from Silicon Image 3124/3132 Windows driver .inf file - also several Linux problem reports */ @@ -4214,7 +4225,26 @@ /* devices that don't properly handle queued TRIM commands */ { "Micron_M500*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, }, - { "Crucial_CT???M500SSD1", NULL, ATA_HORKAGE_NO_NCQ_TRIM, }, + { "Crucial_CT???M500SSD*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, }, + { "Micron_M550*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, }, + { "Crucial_CT*M550SSD*", NULL, ATA_HORKAGE_NO_NCQ_TRIM, }, + + /* + * Some WD SATA-I drives spin up and down erratically when the link + * is put into the slumber mode. We don't have full list of the + * affected devices. Disable LPM if the device matches one of the + * known prefixes and is SATA-1. As a side effect LPM partial is + * lost too. + * + * https://bugzilla.kernel.org/show_bug.cgi?id=57211 + */ + { "WDC WD800JD-*", NULL, ATA_HORKAGE_WD_BROKEN_LPM }, + { "WDC WD1200JD-*", NULL, ATA_HORKAGE_WD_BROKEN_LPM }, + { "WDC WD1600JD-*", NULL, ATA_HORKAGE_WD_BROKEN_LPM }, + { "WDC WD2000JD-*", NULL, ATA_HORKAGE_WD_BROKEN_LPM }, + { "WDC WD2500JD-*", NULL, ATA_HORKAGE_WD_BROKEN_LPM }, + { "WDC WD3000JD-*", NULL, ATA_HORKAGE_WD_BROKEN_LPM }, + { "WDC WD3200JD-*", NULL, ATA_HORKAGE_WD_BROKEN_LPM }, /* End Marker */ { } @@ -4757,6 +4787,10 @@ * ata_qc_new - Request an available ATA command, for queueing * @ap: target port * + * Some ATA host controllers may implement a queue depth which is less + * than ATA_MAX_QUEUE. So we shouldn't allocate a tag which is beyond + * the hardware limitation. + * * LOCKING: * None. */ @@ -4764,21 +4798,27 @@ static struct ata_queued_cmd *ata_qc_new(struct ata_port *ap) { struct ata_queued_cmd *qc = NULL; - unsigned int i; + unsigned int max_queue = ap->host->n_tags; + unsigned int i, tag; /* no command while frozen */ if (unlikely(ap->pflags & ATA_PFLAG_FROZEN)) return NULL; - /* the last tag is reserved for internal command. */ - for (i = 0; i < ATA_MAX_QUEUE - 1; i++) - if (!test_and_set_bit(i, &ap->qc_allocated)) { - qc = __ata_qc_from_tag(ap, i); + for (i = 0, tag = ap->last_tag + 1; i < max_queue; i++, tag++) { + tag = tag < max_queue ? tag : 0; + + /* the last tag is reserved for internal command. */ + if (tag == ATA_TAG_INTERNAL) + continue; + + if (!test_and_set_bit(tag, &ap->qc_allocated)) { + qc = __ata_qc_from_tag(ap, tag); + qc->tag = tag; + ap->last_tag = tag; break; } - - if (qc) - qc->tag = i; + } return qc; } @@ -6068,6 +6108,7 @@ { spin_lock_init(&host->lock); mutex_init(&host->eh_mutex); + host->n_tags = ATA_MAX_QUEUE - 1; host->dev = dev; host->ops = ops; } @@ -6149,6 +6190,8 @@ { int i, rc; + host->n_tags = clamp(sht->can_queue, 1, ATA_MAX_QUEUE - 1); + /* host must have been started */ if (!(host->flags & ATA_HOST_STARTED)) { dev_err(host->dev, "BUG: trying to register unstarted host\n"); @@ -6294,6 +6337,8 @@ static void ata_port_detach(struct ata_port *ap) { unsigned long flags; + struct ata_link *link; + struct ata_device *dev; if (!ap->ops->error_handler) goto skip_eh; @@ -6313,6 +6358,13 @@ cancel_delayed_work_sync(&ap->hotplug_task); skip_eh: + /* clean up zpodd on port removal */ + ata_for_each_link(link, ap, HOST_FIRST) { + ata_for_each_dev(dev, link, ALL) { + if (zpodd_dev_enabled(dev)) + zpodd_exit(dev); + } + } if (ap->pmp_link) { int i; for (i = 0; i < SATA_PMP_MAX_PORTS; i++) --- linux-3.13.0.orig/drivers/ata/libata-pmp.c +++ linux-3.13.0/drivers/ata/libata-pmp.c @@ -447,8 +447,11 @@ * otherwise. Don't try hard to recover it. */ ap->pmp_link[ap->nr_pmp_links - 1].flags |= ATA_LFLAG_NO_RETRY; - } else if (vendor == 0x197b && devid == 0x2352) { - /* chip found in Thermaltake BlackX Duet, jmicron JMB350? */ + } else if (vendor == 0x197b && (devid == 0x2352 || devid == 0x0325)) { + /* + * 0x2352: found in Thermaltake BlackX Duet, jmicron JMB350? + * 0x0325: jmicron JMB394. + */ ata_for_each_link(link, ap, EDGE) { /* SRST breaks detection and disks get misclassified * LPM disabled to avoid potential problems --- linux-3.13.0.orig/drivers/ata/libata-scsi.c +++ linux-3.13.0/drivers/ata/libata-scsi.c @@ -111,12 +111,14 @@ [ATA_LPM_MIN_POWER] = "min_power", }; -static ssize_t ata_scsi_lpm_store(struct device *dev, +static ssize_t ata_scsi_lpm_store(struct device *device, struct device_attribute *attr, const char *buf, size_t count) { - struct Scsi_Host *shost = class_to_shost(dev); + struct Scsi_Host *shost = class_to_shost(device); struct ata_port *ap = ata_shost_to_port(shost); + struct ata_link *link; + struct ata_device *dev; enum ata_lpm_policy policy; unsigned long flags; @@ -132,10 +134,20 @@ return -EINVAL; spin_lock_irqsave(ap->lock, flags); + + ata_for_each_link(link, ap, EDGE) { + ata_for_each_dev(dev, &ap->link, ENABLED) { + if (dev->horkage & ATA_HORKAGE_NOLPM) { + count = -EOPNOTSUPP; + goto out_unlock; + } + } + } + ap->target_lpm_policy = policy; ata_port_schedule_eh(ap); +out_unlock: spin_unlock_irqrestore(ap->lock, flags); - return count; } --- linux-3.13.0.orig/drivers/ata/libata-sff.c +++ linux-3.13.0/drivers/ata/libata-sff.c @@ -2008,13 +2008,15 @@ DPRINTK("ata%u: bus reset via SRST\n", ap->print_id); - /* software reset. causes dev0 to be selected */ - iowrite8(ap->ctl, ioaddr->ctl_addr); - udelay(20); /* FIXME: flush */ - iowrite8(ap->ctl | ATA_SRST, ioaddr->ctl_addr); - udelay(20); /* FIXME: flush */ - iowrite8(ap->ctl, ioaddr->ctl_addr); - ap->last_ctl = ap->ctl; + if (ap->ioaddr.ctl_addr) { + /* software reset. causes dev0 to be selected */ + iowrite8(ap->ctl, ioaddr->ctl_addr); + udelay(20); /* FIXME: flush */ + iowrite8(ap->ctl | ATA_SRST, ioaddr->ctl_addr); + udelay(20); /* FIXME: flush */ + iowrite8(ap->ctl, ioaddr->ctl_addr); + ap->last_ctl = ap->ctl; + } /* wait the port to become ready */ return ata_sff_wait_after_reset(&ap->link, devmask, deadline); @@ -2215,10 +2217,6 @@ spin_unlock_irqrestore(ap->lock, flags); - /* ignore ata_sff_softreset if ctl isn't accessible */ - if (softreset == ata_sff_softreset && !ap->ioaddr.ctl_addr) - softreset = NULL; - /* ignore built-in hardresets if SCR access is not available */ if ((hardreset == sata_std_hardreset || hardreset == sata_sff_hardreset) && !sata_scr_valid(&ap->link)) --- linux-3.13.0.orig/drivers/ata/pata_at91.c +++ linux-3.13.0/drivers/ata/pata_at91.c @@ -408,12 +408,13 @@ host->private_data = info; - return ata_host_activate(host, gpio_is_valid(irq) ? gpio_to_irq(irq) : 0, - gpio_is_valid(irq) ? ata_sff_interrupt : NULL, - irq_flags, &pata_at91_sht); + ret = ata_host_activate(host, gpio_is_valid(irq) ? gpio_to_irq(irq) : 0, + gpio_is_valid(irq) ? ata_sff_interrupt : NULL, + irq_flags, &pata_at91_sht); + if (ret) + goto err_put; - if (!ret) - return 0; + return 0; err_put: clk_put(info->mck); --- linux-3.13.0.orig/drivers/ata/pata_scc.c +++ linux-3.13.0/drivers/ata/pata_scc.c @@ -586,7 +586,7 @@ * Note: Original code is ata_bus_softreset(). */ -static unsigned int scc_bus_softreset(struct ata_port *ap, unsigned int devmask, +static int scc_bus_softreset(struct ata_port *ap, unsigned int devmask, unsigned long deadline) { struct ata_ioports *ioaddr = &ap->ioaddr; @@ -600,9 +600,7 @@ udelay(20); out_be32(ioaddr->ctl_addr, ap->ctl); - scc_wait_after_reset(&ap->link, devmask, deadline); - - return 0; + return scc_wait_after_reset(&ap->link, devmask, deadline); } /** @@ -619,7 +617,8 @@ { struct ata_port *ap = link->ap; unsigned int slave_possible = ap->flags & ATA_FLAG_SLAVE_POSS; - unsigned int devmask = 0, err_mask; + unsigned int devmask = 0; + int rc; u8 err; DPRINTK("ENTER\n"); @@ -635,9 +634,9 @@ /* issue bus reset */ DPRINTK("about to softreset, devmask=%x\n", devmask); - err_mask = scc_bus_softreset(ap, devmask, deadline); - if (err_mask) { - ata_port_err(ap, "SRST failed (err_mask=0x%x)\n", err_mask); + rc = scc_bus_softreset(ap, devmask, deadline); + if (rc) { + ata_port_err(ap, "SRST failed (err_mask=0x%x)\n", rc); return -EIO; } --- linux-3.13.0.orig/drivers/ata/pata_serverworks.c +++ linux-3.13.0/drivers/ata/pata_serverworks.c @@ -252,12 +252,18 @@ pci_write_config_byte(pdev, 0x54, ultra_cfg); } -static struct scsi_host_template serverworks_sht = { +static struct scsi_host_template serverworks_osb4_sht = { + ATA_BMDMA_SHT(DRV_NAME), + .sg_tablesize = LIBATA_DUMB_MAX_PRD, +}; + +static struct scsi_host_template serverworks_csb_sht = { ATA_BMDMA_SHT(DRV_NAME), }; static struct ata_port_operations serverworks_osb4_port_ops = { .inherits = &ata_bmdma_port_ops, + .qc_prep = ata_bmdma_dumb_qc_prep, .cable_detect = serverworks_cable_detect, .mode_filter = serverworks_osb4_filter, .set_piomode = serverworks_set_piomode, @@ -266,6 +272,7 @@ static struct ata_port_operations serverworks_csb_port_ops = { .inherits = &serverworks_osb4_port_ops, + .qc_prep = ata_bmdma_qc_prep, .mode_filter = serverworks_csb_filter, }; @@ -405,6 +412,7 @@ } }; const struct ata_port_info *ppi[] = { &info[id->driver_data], NULL }; + struct scsi_host_template *sht = &serverworks_csb_sht; int rc; rc = pcim_enable_device(pdev); @@ -418,6 +426,7 @@ /* Select non UDMA capable OSB4 if we can't do fixups */ if (rc < 0) ppi[0] = &info[1]; + sht = &serverworks_osb4_sht; } /* setup CSB5/CSB6 : South Bridge and IDE option RAID */ else if ((pdev->device == PCI_DEVICE_ID_SERVERWORKS_CSB5IDE) || @@ -434,7 +443,7 @@ ppi[1] = &ata_dummy_port_info; } - return ata_pci_bmdma_init_one(pdev, ppi, &serverworks_sht, NULL, 0); + return ata_pci_bmdma_init_one(pdev, ppi, sht, NULL, 0); } #ifdef CONFIG_PM --- linux-3.13.0.orig/drivers/ata/sata_fsl.c +++ linux-3.13.0/drivers/ata/sata_fsl.c @@ -1503,7 +1503,7 @@ host_priv->csr_base = csr_base; irq = irq_of_parse_and_map(ofdev->dev.of_node, 0); - if (irq < 0) { + if (!irq) { dev_err(&ofdev->dev, "invalid irq from platform\n"); goto error_exit_with_cleanup; } --- linux-3.13.0.orig/drivers/ata/sata_highbank.c +++ linux-3.13.0/drivers/ata/sata_highbank.c @@ -404,6 +404,7 @@ static const unsigned long timing[] = { 5, 100, 500}; struct ata_port *ap = link->ap; struct ahci_port_priv *pp = ap->private_data; + struct ahci_host_priv *hpriv = ap->host->private_data; u8 *d2h_fis = pp->rx_fis + RX_FIS_D2H_REG; struct ata_taskfile tf; bool online; @@ -432,7 +433,7 @@ break; } while (!online && retry--); - ahci_start_engine(ap); + hpriv->start_engine(ap); if (online) *class = ahci_dev_classify(ap); --- linux-3.13.0.orig/drivers/ata/sata_mv.c +++ linux-3.13.0/drivers/ata/sata_mv.c @@ -304,6 +304,7 @@ MV5_LTMODE = 0x30, MV5_PHY_CTL = 0x0C, SATA_IFCFG = 0x050, + LP_PHY_CTL = 0x058, MV_M2_PREAMP_MASK = 0x7e0, @@ -431,6 +432,7 @@ MV_HP_CUT_THROUGH = (1 << 10), /* can use EDMA cut-through */ MV_HP_FLAG_SOC = (1 << 11), /* SystemOnChip, no PCI */ MV_HP_QUIRK_LED_BLINK_EN = (1 << 12), /* is led blinking enabled? */ + MV_HP_FIX_LP_PHY_CTL = (1 << 13), /* fix speed in LP_PHY_CTL ? */ /* Port private flags (pp_flags) */ MV_PP_FLAG_EDMA_EN = (1 << 0), /* is EDMA engine enabled? */ @@ -1358,6 +1360,7 @@ if (ofs != 0xffffffffU) { void __iomem *addr = mv_ap_base(link->ap) + ofs; + struct mv_host_priv *hpriv = link->ap->host->private_data; if (sc_reg_in == SCR_CONTROL) { /* * Workaround for 88SX60x1 FEr SATA#26: @@ -1374,6 +1377,18 @@ */ if ((val & 0xf) == 1 || (readl(addr) & 0xf) == 1) val |= 0xf000; + + if (hpriv->hp_flags & MV_HP_FIX_LP_PHY_CTL) { + void __iomem *lp_phy_addr = + mv_ap_base(link->ap) + LP_PHY_CTL; + /* + * Set PHY speed according to SControl speed. + */ + if ((val & 0xf0) == 0x10) + writelfl(0x7, lp_phy_addr); + else + writelfl(0x227, lp_phy_addr); + } } writelfl(val, addr); return 0; @@ -4110,6 +4125,15 @@ if (rc) goto err; + /* + * To allow disk hotplug on Armada 370/XP SoCs, the PHY speed must be + * updated in the LP_PHY_CTL register. + */ + if (pdev->dev.of_node && + of_device_is_compatible(pdev->dev.of_node, + "marvell,armada-370-sata")) + hpriv->hp_flags |= MV_HP_FIX_LP_PHY_CTL; + /* initialize adapter */ rc = mv_init_host(host); if (rc) @@ -4209,6 +4233,7 @@ #ifdef CONFIG_OF static struct of_device_id mv_sata_dt_ids[] = { + { .compatible = "marvell,armada-370-sata", }, { .compatible = "marvell,orion-sata", }, {}, }; --- linux-3.13.0.orig/drivers/ata/sata_sil.c +++ linux-3.13.0/drivers/ata/sata_sil.c @@ -157,6 +157,7 @@ { "ST380011ASL", SIL_QUIRK_MOD15WRITE }, { "ST3120022ASL", SIL_QUIRK_MOD15WRITE }, { "ST3160021ASL", SIL_QUIRK_MOD15WRITE }, + { "TOSHIBA MK2561GSYN", SIL_QUIRK_MOD15WRITE }, { "Maxtor 4D060H3", SIL_QUIRK_UDMA5MAX }, { } }; --- linux-3.13.0.orig/drivers/base/bus.c +++ linux-3.13.0/drivers/base/bus.c @@ -243,13 +243,15 @@ const char *buf, size_t count) { struct device *dev; + int err = -EINVAL; dev = bus_find_device_by_name(bus, NULL, buf); if (!dev) return -ENODEV; - if (bus_rescan_devices_helper(dev, NULL) != 0) - return -EINVAL; - return count; + if (bus_rescan_devices_helper(dev, NULL) == 0) + err = count; + put_device(dev); + return err; } static struct device *next_device(struct klist_iter *i) --- linux-3.13.0.orig/drivers/base/core.c +++ linux-3.13.0/drivers/base/core.c @@ -739,12 +739,12 @@ return &dir->kobj; } +static DEFINE_MUTEX(gdp_mutex); static struct kobject *get_device_parent(struct device *dev, struct device *parent) { if (dev->class) { - static DEFINE_MUTEX(gdp_mutex); struct kobject *kobj = NULL; struct kobject *parent_kobj; struct kobject *k; @@ -808,7 +808,9 @@ glue_dir->kset != &dev->class->p->glue_dirs) return; + mutex_lock(&gdp_mutex); kobject_put(glue_dir); + mutex_unlock(&gdp_mutex); } static void cleanup_device_parent(struct device *dev) --- linux-3.13.0.orig/drivers/base/dd.c +++ linux-3.13.0/drivers/base/dd.c @@ -52,6 +52,7 @@ static LIST_HEAD(deferred_probe_pending_list); static LIST_HEAD(deferred_probe_active_list); static struct workqueue_struct *deferred_wq; +static atomic_t deferred_trigger_count = ATOMIC_INIT(0); /** * deferred_probe_work_func() - Retry probing devices in the active list. @@ -135,6 +136,17 @@ * This functions moves all devices from the pending list to the active * list and schedules the deferred probe workqueue to process them. It * should be called anytime a driver is successfully bound to a device. + * + * Note, there is a race condition in multi-threaded probe. In the case where + * more than one device is probing at the same time, it is possible for one + * probe to complete successfully while another is about to defer. If the second + * depends on the first, then it will get put on the pending list after the + * trigger event has already occured and will be stuck there. + * + * The atomic 'deferred_trigger_count' is used to determine if a successful + * trigger has occurred in the midst of probing a driver. If the trigger count + * changes in the midst of a probe, then deferred processing should be triggered + * again. */ static void driver_deferred_probe_trigger(void) { @@ -147,6 +159,7 @@ * into the active list so they can be retried by the workqueue */ mutex_lock(&deferred_probe_mutex); + atomic_inc(&deferred_trigger_count); list_splice_tail_init(&deferred_probe_pending_list, &deferred_probe_active_list); mutex_unlock(&deferred_probe_mutex); @@ -265,6 +278,7 @@ static int really_probe(struct device *dev, struct device_driver *drv) { int ret = 0; + int local_trigger_count = atomic_read(&deferred_trigger_count); atomic_inc(&probe_count); pr_debug("bus: '%s': %s: probing driver %s with device %s\n", @@ -310,6 +324,9 @@ /* Driver requested deferred probing */ dev_info(dev, "Driver %s requests probe deferral\n", drv->name); driver_deferred_probe_add(dev); + /* Did a trigger occur while probing? Need to re-trigger if yes */ + if (local_trigger_count != atomic_read(&deferred_trigger_count)) + driver_deferred_probe_trigger(); } else if (ret != -ENODEV && ret != -ENXIO) { /* driver matched but the probe failed */ printk(KERN_WARNING --- linux-3.13.0.orig/drivers/base/dma-contiguous.c +++ linux-3.13.0/drivers/base/dma-contiguous.c @@ -155,13 +155,23 @@ base_pfn = pfn; for (j = pageblock_nr_pages; j; --j, pfn++) { WARN_ON_ONCE(!pfn_valid(pfn)); + /* + * alloc_contig_range requires the pfn range + * specified to be in the same zone. Make this + * simple by forcing the entire CMA resv range + * to be in the same zone. + */ if (page_zone(pfn_to_page(pfn)) != zone) - return -EINVAL; + goto err; } init_cma_reserved_pageblock(pfn_to_page(base_pfn)); } while (--i); return 0; + +err: + kfree(cma->bitmap); + return -EINVAL; } static struct cma cma_areas[MAX_CMA_AREAS]; --- linux-3.13.0.orig/drivers/base/firmware_class.c +++ linux-3.13.0/drivers/base/firmware_class.c @@ -1070,6 +1070,9 @@ if (!firmware_p) return -EINVAL; + if (!name || name[0] == '\0') + return -EINVAL; + ret = _request_firmware_prepare(&fw, name, device); if (ret <= 0) /* error or already assigned */ goto out; @@ -1541,6 +1544,7 @@ switch (mode) { case PM_HIBERNATION_PREPARE: case PM_SUSPEND_PREPARE: + case PM_RESTORE_PREPARE: kill_requests_without_uevent(); device_cache_fw_images(); break; --- linux-3.13.0.orig/drivers/base/platform.c +++ linux-3.13.0/drivers/base/platform.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -87,7 +88,16 @@ return -ENXIO; return dev->archdata.irqs[num]; #else - struct resource *r = platform_get_resource(dev, IORESOURCE_IRQ, num); + struct resource *r; + if (IS_ENABLED(CONFIG_OF_IRQ) && dev->dev.of_node) { + int ret; + + ret = of_irq_get(dev->dev.of_node, num); + if (ret >= 0 || ret == -EPROBE_DEFER) + return ret; + } + + r = platform_get_resource(dev, IORESOURCE_IRQ, num); return r ? r->start : -ENXIO; #endif @@ -126,9 +136,17 @@ */ int platform_get_irq_byname(struct platform_device *dev, const char *name) { - struct resource *r = platform_get_resource_byname(dev, IORESOURCE_IRQ, - name); + struct resource *r; + + if (IS_ENABLED(CONFIG_OF_IRQ) && dev->dev.of_node) { + int ret; + + ret = of_irq_get_byname(dev->dev.of_node, name); + if (ret >= 0 || ret == -EPROBE_DEFER) + return ret; + } + r = platform_get_resource_byname(dev, IORESOURCE_IRQ, name); return r ? r->start : -ENXIO; } EXPORT_SYMBOL_GPL(platform_get_irq_byname); --- linux-3.13.0.orig/drivers/base/power/opp.c +++ linux-3.13.0/drivers/base/power/opp.c @@ -735,11 +735,9 @@ unsigned long freq = be32_to_cpup(val++) * 1000; unsigned long volt = be32_to_cpup(val++); - if (dev_pm_opp_add(dev, freq, volt)) { + if (dev_pm_opp_add(dev, freq, volt)) dev_warn(dev, "%s: Failed to add OPP %ld\n", __func__, freq); - continue; - } nr -= 2; } --- linux-3.13.0.orig/drivers/base/regmap/internal.h +++ linux-3.13.0/drivers/base/regmap/internal.h @@ -144,6 +144,9 @@ enum regcache_type type; int (*init)(struct regmap *map); int (*exit)(struct regmap *map); +#ifdef CONFIG_DEBUG_FS + void (*debugfs_init)(struct regmap *map); +#endif int (*read)(struct regmap *map, unsigned int reg, unsigned int *value); int (*write)(struct regmap *map, unsigned int reg, unsigned int value); int (*sync)(struct regmap *map, unsigned int min, unsigned int max); --- linux-3.13.0.orig/drivers/base/regmap/regcache-rbtree.c +++ linux-3.13.0/drivers/base/regmap/regcache-rbtree.c @@ -194,10 +194,6 @@ { debugfs_create_file("rbtree", 0400, map->debugfs, map, &rbtree_fops); } -#else -static void rbtree_debugfs_init(struct regmap *map) -{ -} #endif static int regcache_rbtree_init(struct regmap *map) @@ -222,8 +218,6 @@ goto err; } - rbtree_debugfs_init(map); - return 0; err: @@ -532,6 +526,9 @@ .name = "rbtree", .init = regcache_rbtree_init, .exit = regcache_rbtree_exit, +#ifdef CONFIG_DEBUG_FS + .debugfs_init = rbtree_debugfs_init, +#endif .read = regcache_rbtree_read, .write = regcache_rbtree_write, .sync = regcache_rbtree_sync, --- linux-3.13.0.orig/drivers/base/regmap/regcache.c +++ linux-3.13.0/drivers/base/regmap/regcache.c @@ -701,7 +701,7 @@ unsigned int block_base, unsigned int start, unsigned int end) { - if (regmap_can_raw_write(map)) + if (regmap_can_raw_write(map) && !map->use_single_rw) return regcache_sync_block_raw(map, block, cache_present, block_base, start, end); else --- linux-3.13.0.orig/drivers/base/regmap/regmap-debugfs.c +++ linux-3.13.0/drivers/base/regmap/regmap-debugfs.c @@ -473,6 +473,7 @@ { struct rb_node *next; struct regmap_range_node *range_node; + const char *devname = "dummy"; /* If we don't have the debugfs root yet, postpone init */ if (!regmap_debugfs_root) { @@ -491,12 +492,15 @@ INIT_LIST_HEAD(&map->debugfs_off_cache); mutex_init(&map->cache_lock); + if (map->dev) + devname = dev_name(map->dev); + if (name) { map->debugfs_name = kasprintf(GFP_KERNEL, "%s-%s", - dev_name(map->dev), name); + devname, name); name = map->debugfs_name; } else { - name = dev_name(map->dev); + name = devname; } map->debugfs = debugfs_create_dir(name, regmap_debugfs_root); @@ -538,6 +542,9 @@ next = rb_next(&range_node->node); } + + if (map->cache_ops && map->cache_ops->debugfs_init) + map->cache_ops->debugfs_init(map); } void regmap_debugfs_exit(struct regmap *map) --- linux-3.13.0.orig/drivers/base/regmap/regmap.c +++ linux-3.13.0/drivers/base/regmap/regmap.c @@ -105,7 +105,7 @@ bool regmap_volatile(struct regmap *map, unsigned int reg) { - if (!regmap_readable(map, reg)) + if (!map->format.format_write && !regmap_readable(map, reg)) return false; if (map->volatile_reg) @@ -1308,7 +1308,7 @@ } #ifdef LOG_DEVICE - if (strcmp(dev_name(map->dev), LOG_DEVICE) == 0) + if (map->dev && strcmp(dev_name(map->dev), LOG_DEVICE) == 0) dev_info(map->dev, "%x <= %x\n", reg, val); #endif @@ -1529,6 +1529,11 @@ if (val_bytes == 1) { wval = (void *)val; } else { + if (!val_count) { + ret = -EINVAL; + goto out; + } + wval = kmemdup(val, val_count * val_bytes, GFP_KERNEL); if (!wval) { ret = -ENOMEM; @@ -1727,7 +1732,7 @@ ret = map->reg_read(context, reg, val); if (ret == 0) { #ifdef LOG_DEVICE - if (strcmp(dev_name(map->dev), LOG_DEVICE) == 0) + if (map->dev && strcmp(dev_name(map->dev), LOG_DEVICE) == 0) dev_info(map->dev, "%x => %x\n", reg, *val); #endif --- linux-3.13.0.orig/drivers/block/aoe/aoecmd.c +++ linux-3.13.0/drivers/block/aoe/aoecmd.c @@ -905,7 +905,7 @@ /* Non-zero page count for non-head members of * compound pages is no longer allowed by the kernel. */ - page = compound_trans_head(bv->bv_page); + page = compound_head(bv->bv_page); atomic_inc(&page->_count); } } @@ -918,7 +918,7 @@ int i; bio_for_each_segment(bv, bio, i) { - page = compound_trans_head(bv->bv_page); + page = compound_head(bv->bv_page); atomic_dec(&page->_count); } } --- linux-3.13.0.orig/drivers/block/drbd/drbd_interval.c +++ linux-3.13.0/drivers/block/drbd/drbd_interval.c @@ -79,6 +79,7 @@ drbd_insert_interval(struct rb_root *root, struct drbd_interval *this) { struct rb_node **new = &root->rb_node, *parent = NULL; + sector_t this_end = this->sector + (this->size >> 9); BUG_ON(!IS_ALIGNED(this->size, 512)); @@ -87,6 +88,8 @@ rb_entry(*new, struct drbd_interval, rb); parent = *new; + if (here->end < this_end) + here->end = this_end; if (this->sector < here->sector) new = &(*new)->rb_left; else if (this->sector > here->sector) @@ -99,6 +102,7 @@ return false; } + this->end = this_end; rb_link_node(&this->rb, parent, new); rb_insert_augmented(&this->rb, root, &augment_callbacks); return true; --- linux-3.13.0.orig/drivers/block/floppy.c +++ linux-3.13.0/drivers/block/floppy.c @@ -3053,7 +3053,10 @@ int ret; while (ptr) { - ret = copy_to_user(param, ptr, sizeof(*ptr)); + struct floppy_raw_cmd cmd = *ptr; + cmd.next = NULL; + cmd.kernel_data = NULL; + ret = copy_to_user(param, &cmd, sizeof(cmd)); if (ret) return -EFAULT; param += sizeof(struct floppy_raw_cmd); @@ -3107,10 +3110,11 @@ return -ENOMEM; *rcmd = ptr; ret = copy_from_user(ptr, param, sizeof(*ptr)); - if (ret) - return -EFAULT; ptr->next = NULL; ptr->buffer_length = 0; + ptr->kernel_data = NULL; + if (ret) + return -EFAULT; param += sizeof(struct floppy_raw_cmd); if (ptr->cmd_count > 33) /* the command may now also take up the space @@ -3126,7 +3130,6 @@ for (i = 0; i < 16; i++) ptr->reply[i] = 0; ptr->resultcode = 0; - ptr->kernel_data = NULL; if (ptr->flags & (FD_RAW_READ | FD_RAW_WRITE)) { if (ptr->length <= 0) --- linux-3.13.0.orig/drivers/block/loop.c +++ linux-3.13.0/drivers/block/loop.c @@ -691,6 +691,24 @@ return i && S_ISBLK(i->i_mode) && MAJOR(i->i_rdev) == LOOP_MAJOR; } +/* + * for AUFS + * no get/put for file. + */ +struct file *loop_backing_file(struct super_block *sb) +{ + struct file *ret; + struct loop_device *l; + + ret = NULL; + if (MAJOR(sb->s_dev) == LOOP_MAJOR) { + l = sb->s_bdev->bd_disk->private_data; + ret = l->lo_backing_file; + } + return ret; +} +EXPORT_SYMBOL(loop_backing_file); + /* loop sysfs attributes */ static ssize_t loop_attr_show(struct device *dev, char *page, --- linux-3.13.0.orig/drivers/block/mtip32xx/mtip32xx.c +++ linux-3.13.0/drivers/block/mtip32xx/mtip32xx.c @@ -231,38 +231,45 @@ void *data, int status) { - struct mtip_cmd *command; + struct mtip_cmd *cmd; struct driver_data *dd = data; - int cb_status = status ? -EIO : 0; + int unaligned, cb_status = status ? -EIO : 0; + void (*func)(void *, int); if (unlikely(!dd) || unlikely(!port)) return; - command = &port->commands[tag]; + cmd = &port->commands[tag]; if (unlikely(status == PORT_IRQ_TF_ERR)) { dev_warn(&port->dd->pdev->dev, "Command tag %d failed due to TFE\n", tag); } + /* Clear the active flag */ + atomic_set(&port->commands[tag].active, 0); + /* Upper layer callback */ - if (likely(command->async_callback)) - command->async_callback(command->async_data, cb_status); + func = cmd->async_callback; + if (likely(func && cmpxchg(&cmd->async_callback, func, 0) == func)) { - command->async_callback = NULL; - command->comp_func = NULL; + /* Unmap the DMA scatter list entries */ + dma_unmap_sg(&dd->pdev->dev, + cmd->sg, + cmd->scatter_ents, + cmd->direction); - /* Unmap the DMA scatter list entries */ - dma_unmap_sg(&dd->pdev->dev, - command->sg, - command->scatter_ents, - command->direction); + func(cmd->async_data, cb_status); + unaligned = cmd->unaligned; - /* Clear the allocated and active bits for the command */ - atomic_set(&port->commands[tag].active, 0); - release_slot(port, tag); + /* Clear the allocated bit for the command */ + release_slot(port, tag); - up(&port->cmd_slot); + if (unlikely(unaligned)) + up(&port->cmd_slot_unal); + else + up(&port->cmd_slot); + } } /* @@ -639,11 +646,12 @@ { struct mtip_port *port = (struct mtip_port *) data; struct host_to_dev_fis *fis; - struct mtip_cmd *command; - int tag, cmdto_cnt = 0; + struct mtip_cmd *cmd; + int unaligned, tag, cmdto_cnt = 0; unsigned int bit, group; unsigned int num_command_slots; unsigned long to, tagaccum[SLOTBITS_IN_LONGS]; + void (*func)(void *, int); if (unlikely(!port)) return; @@ -673,8 +681,8 @@ group = tag >> 5; bit = tag & 0x1F; - command = &port->commands[tag]; - fis = (struct host_to_dev_fis *) command->command; + cmd = &port->commands[tag]; + fis = (struct host_to_dev_fis *) cmd->command; set_bit(tag, tagaccum); cmdto_cnt++; @@ -688,27 +696,30 @@ */ writel(1 << bit, port->completed[group]); - /* Call the async completion callback. */ - if (likely(command->async_callback)) - command->async_callback(command->async_data, - -EIO); - command->async_callback = NULL; - command->comp_func = NULL; - - /* Unmap the DMA scatter list entries */ - dma_unmap_sg(&port->dd->pdev->dev, - command->sg, - command->scatter_ents, - command->direction); - - /* - * Clear the allocated bit and active tag for the - * command. - */ + /* Clear the active flag for the command */ atomic_set(&port->commands[tag].active, 0); - release_slot(port, tag); - up(&port->cmd_slot); + func = cmd->async_callback; + if (func && + cmpxchg(&cmd->async_callback, func, 0) == func) { + + /* Unmap the DMA scatter list entries */ + dma_unmap_sg(&port->dd->pdev->dev, + cmd->sg, + cmd->scatter_ents, + cmd->direction); + + func(cmd->async_data, -EIO); + unaligned = cmd->unaligned; + + /* Clear the allocated bit for the command. */ + release_slot(port, tag); + + if (unaligned) + up(&port->cmd_slot_unal); + else + up(&port->cmd_slot); + } } } @@ -1496,6 +1507,37 @@ be16_to_cpus(&buf[i]); } +static void mtip_set_timeout(struct driver_data *dd, + struct host_to_dev_fis *fis, + unsigned int *timeout, u8 erasemode) +{ + switch (fis->command) { + case ATA_CMD_DOWNLOAD_MICRO: + *timeout = 120000; /* 2 minutes */ + break; + case ATA_CMD_SEC_ERASE_UNIT: + case 0xFC: + if (erasemode) + *timeout = ((*(dd->port->identify + 90) * 2) * 60000); + else + *timeout = ((*(dd->port->identify + 89) * 2) * 60000); + break; + case ATA_CMD_STANDBYNOW1: + *timeout = 120000; /* 2 minutes */ + break; + case 0xF7: + case 0xFA: + *timeout = 60000; /* 60 seconds */ + break; + case ATA_CMD_SMART: + *timeout = 15000; /* 15 seconds */ + break; + default: + *timeout = MTIP_IOCTL_COMMAND_TIMEOUT_MS; + break; + } +} + /* * Request the device identity information. * @@ -1605,6 +1647,7 @@ int rv; struct host_to_dev_fis fis; unsigned long start; + unsigned int timeout; /* Build the FIS. */ memset(&fis, 0, sizeof(struct host_to_dev_fis)); @@ -1612,6 +1655,8 @@ fis.opts = 1 << 7; fis.command = ATA_CMD_STANDBYNOW1; + mtip_set_timeout(port->dd, &fis, &timeout, 0); + start = jiffies; rv = mtip_exec_internal_command(port, &fis, @@ -1620,7 +1665,7 @@ 0, 0, GFP_ATOMIC, - 15000); + timeout); dbg_printk(MTIP_DRV_NAME "Time taken to complete standby cmd: %d ms\n", jiffies_to_msecs(jiffies - start)); if (rv) @@ -2159,36 +2204,6 @@ } return rv; } -static void mtip_set_timeout(struct driver_data *dd, - struct host_to_dev_fis *fis, - unsigned int *timeout, u8 erasemode) -{ - switch (fis->command) { - case ATA_CMD_DOWNLOAD_MICRO: - *timeout = 120000; /* 2 minutes */ - break; - case ATA_CMD_SEC_ERASE_UNIT: - case 0xFC: - if (erasemode) - *timeout = ((*(dd->port->identify + 90) * 2) * 60000); - else - *timeout = ((*(dd->port->identify + 89) * 2) * 60000); - break; - case ATA_CMD_STANDBYNOW1: - *timeout = 120000; /* 2 minutes */ - break; - case 0xF7: - case 0xFA: - *timeout = 60000; /* 60 seconds */ - break; - case ATA_CMD_SMART: - *timeout = 15000; /* 15 seconds */ - break; - default: - *timeout = MTIP_IOCTL_COMMAND_TIMEOUT_MS; - break; - } -} /* * Executes a taskfile @@ -4145,6 +4160,7 @@ blk_queue_max_hw_sectors(dd->queue, 0xffff); blk_queue_max_segment_size(dd->queue, 0x400000); blk_queue_io_min(dd->queue, 4096); + blk_queue_bounce_limit(dd->queue, dd->pdev->dma_mask); /* * write back cache is not supported in the device. FUA depends on @@ -4399,6 +4415,57 @@ static DEFINE_HANDLER(6); static DEFINE_HANDLER(7); +static void mtip_disable_link_opts(struct driver_data *dd, struct pci_dev *pdev) +{ + int pos; + unsigned short pcie_dev_ctrl; + + pos = pci_find_capability(pdev, PCI_CAP_ID_EXP); + if (pos) { + pci_read_config_word(pdev, + pos + PCI_EXP_DEVCTL, + &pcie_dev_ctrl); + if (pcie_dev_ctrl & (1 << 11) || + pcie_dev_ctrl & (1 << 4)) { + dev_info(&dd->pdev->dev, + "Disabling ERO/No-Snoop on bridge device %04x:%04x\n", + pdev->vendor, pdev->device); + pcie_dev_ctrl &= ~(PCI_EXP_DEVCTL_NOSNOOP_EN | + PCI_EXP_DEVCTL_RELAX_EN); + pci_write_config_word(pdev, + pos + PCI_EXP_DEVCTL, + pcie_dev_ctrl); + } + } +} + +static void mtip_fix_ero_nosnoop(struct driver_data *dd, struct pci_dev *pdev) +{ + /* + * This workaround is specific to AMD/ATI chipset with a PCI upstream + * device with device id 0x5aXX + */ + if (pdev->bus && pdev->bus->self) { + if (pdev->bus->self->vendor == PCI_VENDOR_ID_ATI && + ((pdev->bus->self->device & 0xff00) == 0x5a00)) { + mtip_disable_link_opts(dd, pdev->bus->self); + } else { + /* Check further up the topology */ + struct pci_dev *parent_dev = pdev->bus->self; + if (parent_dev->bus && + parent_dev->bus->parent && + parent_dev->bus->parent->self && + parent_dev->bus->parent->self->vendor == + PCI_VENDOR_ID_ATI && + (parent_dev->bus->parent->self->device & + 0xff00) == 0x5a00) { + mtip_disable_link_opts(dd, + parent_dev->bus->parent->self); + } + } + } +} + /* * Called for each supported PCI device detected. * @@ -4550,6 +4617,8 @@ goto block_initialize_err; } + mtip_fix_ero_nosnoop(dd, pdev); + /* Initialize the block layer. */ rv = mtip_block_initialize(dd); if (rv < 0) { @@ -4853,13 +4922,13 @@ */ static void __exit mtip_exit(void) { - debugfs_remove_recursive(dfs_parent); - /* Release the allocated major block device number. */ unregister_blkdev(mtip_major, MTIP_DRV_NAME); /* Unregister the PCI driver. */ pci_unregister_driver(&mtip_pci_driver); + + debugfs_remove_recursive(dfs_parent); } MODULE_AUTHOR("Micron Technology, Inc"); --- linux-3.13.0.orig/drivers/block/nbd.c +++ linux-3.13.0/drivers/block/nbd.c @@ -57,7 +57,7 @@ static unsigned int nbds_max = 16; static struct nbd_device *nbd_dev; -static int max_part; +static int max_part = 15; /* * Use just one lock (or at most 1 per NIC). Two arguments for this: --- linux-3.13.0.orig/drivers/block/nvme-core.c +++ linux-3.13.0/drivers/block/nvme-core.c @@ -46,7 +46,6 @@ #define NVME_Q_DEPTH 1024 #define SQ_SIZE(depth) (depth * sizeof(struct nvme_command)) #define CQ_SIZE(depth) (depth * sizeof(struct nvme_completion)) -#define NVME_MINORS 64 #define ADMIN_TIMEOUT (60 * HZ) static int nvme_major; @@ -58,6 +57,17 @@ static DEFINE_SPINLOCK(dev_list_lock); static LIST_HEAD(dev_list); static struct task_struct *nvme_thread; +static struct workqueue_struct *nvme_workq; + +static void nvme_reset_failed_dev(struct work_struct *ws); + +struct async_cmd_info { + struct kthread_work work; + struct kthread_worker *worker; + u32 result; + int status; + void *ctx; +}; /* * An NVM Express queue. Each device has at least two (one for admin @@ -66,6 +76,7 @@ struct nvme_queue { struct device *q_dmadev; struct nvme_dev *dev; + char irqname[24]; /* nvme4294967295-65535\0 */ spinlock_t q_lock; struct nvme_command *sq_cmds; volatile struct nvme_completion *cqes; @@ -80,9 +91,11 @@ u16 sq_head; u16 sq_tail; u16 cq_head; + u16 qid; u8 cq_phase; u8 cqe_seen; u8 q_suspended; + struct async_cmd_info cmdinfo; unsigned long cmdid_data[]; }; @@ -97,6 +110,7 @@ BUILD_BUG_ON(sizeof(struct nvme_delete_queue) != 64); BUILD_BUG_ON(sizeof(struct nvme_features) != 64); BUILD_BUG_ON(sizeof(struct nvme_format_cmd) != 64); + BUILD_BUG_ON(sizeof(struct nvme_abort_cmd) != 64); BUILD_BUG_ON(sizeof(struct nvme_command) != 64); BUILD_BUG_ON(sizeof(struct nvme_id_ctrl) != 4096); BUILD_BUG_ON(sizeof(struct nvme_id_ns) != 4096); @@ -111,6 +125,7 @@ nvme_completion_fn fn; void *ctx; unsigned long timeout; + int aborted; }; static struct nvme_cmd_info *nvme_cmd_info(struct nvme_queue *nvmeq) @@ -154,6 +169,7 @@ info[cmdid].fn = handler; info[cmdid].ctx = ctx; info[cmdid].timeout = jiffies + timeout; + info[cmdid].aborted = 0; return cmdid; } @@ -172,6 +188,7 @@ #define CMD_CTX_COMPLETED (0x310 + CMD_CTX_BASE) #define CMD_CTX_INVALID (0x314 + CMD_CTX_BASE) #define CMD_CTX_FLUSH (0x318 + CMD_CTX_BASE) +#define CMD_CTX_ABORT (0x31C + CMD_CTX_BASE) static void special_completion(struct nvme_dev *dev, void *ctx, struct nvme_completion *cqe) @@ -180,6 +197,10 @@ return; if (ctx == CMD_CTX_FLUSH) return; + if (ctx == CMD_CTX_ABORT) { + ++dev->abort_limit; + return; + } if (ctx == CMD_CTX_COMPLETED) { dev_warn(&dev->pci_dev->dev, "completed id %d twice on queue %d\n", @@ -196,6 +217,15 @@ dev_warn(&dev->pci_dev->dev, "Unknown special completion %p\n", ctx); } +static void async_completion(struct nvme_dev *dev, void *ctx, + struct nvme_completion *cqe) +{ + struct async_cmd_info *cmdinfo = ctx; + cmdinfo->result = le32_to_cpup(&cqe->result); + cmdinfo->status = le16_to_cpup(&cqe->status) >> 1; + queue_kthread_work(cmdinfo->worker, &cmdinfo->work); +} + /* * Called with local interrupts disabled and the q_lock held. May not sleep. */ @@ -775,7 +805,7 @@ if (head == nvmeq->cq_head && phase == nvmeq->cq_phase) return 0; - writel(head, nvmeq->q_db + (1 << nvmeq->dev->db_stride)); + writel(head, nvmeq->q_db + nvmeq->dev->db_stride); nvmeq->cq_head = head; nvmeq->cq_phase = phase; @@ -886,12 +916,34 @@ return cmdinfo.status; } +static int nvme_submit_async_cmd(struct nvme_queue *nvmeq, + struct nvme_command *cmd, + struct async_cmd_info *cmdinfo, unsigned timeout) +{ + int cmdid; + + cmdid = alloc_cmdid_killable(nvmeq, cmdinfo, async_completion, timeout); + if (cmdid < 0) + return cmdid; + cmdinfo->status = -EINTR; + cmd->common.command_id = cmdid; + nvme_submit_cmd(nvmeq, cmd); + return 0; +} + int nvme_submit_admin_cmd(struct nvme_dev *dev, struct nvme_command *cmd, u32 *result) { return nvme_submit_sync_cmd(dev->queues[0], cmd, result, ADMIN_TIMEOUT); } +static int nvme_submit_admin_cmd_async(struct nvme_dev *dev, + struct nvme_command *cmd, struct async_cmd_info *cmdinfo) +{ + return nvme_submit_async_cmd(dev->queues[0], cmd, cmdinfo, + ADMIN_TIMEOUT); +} + static int adapter_delete_queue(struct nvme_dev *dev, u8 opcode, u16 id) { int status; @@ -1002,6 +1054,56 @@ } /** + * nvme_abort_cmd - Attempt aborting a command + * @cmdid: Command id of a timed out IO + * @queue: The queue with timed out IO + * + * Schedule controller reset if the command was already aborted once before and + * still hasn't been returned to the driver, or if this is the admin queue. + */ +static void nvme_abort_cmd(int cmdid, struct nvme_queue *nvmeq) +{ + int a_cmdid; + struct nvme_command cmd; + struct nvme_dev *dev = nvmeq->dev; + struct nvme_cmd_info *info = nvme_cmd_info(nvmeq); + + if (!nvmeq->qid || info[cmdid].aborted) { + if (work_busy(&dev->reset_work)) + return; + list_del_init(&dev->node); + dev_warn(&dev->pci_dev->dev, + "I/O %d QID %d timeout, reset controller\n", cmdid, + nvmeq->qid); + PREPARE_WORK(&dev->reset_work, nvme_reset_failed_dev); + queue_work(nvme_workq, &dev->reset_work); + return; + } + + if (!dev->abort_limit) + return; + + a_cmdid = alloc_cmdid(dev->queues[0], CMD_CTX_ABORT, special_completion, + ADMIN_TIMEOUT); + if (a_cmdid < 0) + return; + + memset(&cmd, 0, sizeof(cmd)); + cmd.abort.opcode = nvme_admin_abort_cmd; + cmd.abort.cid = cmdid; + cmd.abort.sqid = cpu_to_le16(nvmeq->qid); + cmd.abort.command_id = a_cmdid; + + --dev->abort_limit; + info[cmdid].aborted = 1; + info[cmdid].timeout = jiffies + ADMIN_TIMEOUT; + + dev_warn(nvmeq->q_dmadev, "Aborting I/O %d QID %d\n", cmdid, + nvmeq->qid); + nvme_submit_cmd(dev->queues[0], &cmd); +} + +/** * nvme_cancel_ios - Cancel outstanding I/Os * @queue: The queue to cancel I/Os on * @timeout: True to only cancel I/Os which have timed out @@ -1024,7 +1126,12 @@ continue; if (info[cmdid].ctx == CMD_CTX_CANCELLED) continue; - dev_warn(nvmeq->q_dmadev, "Cancelling I/O %d\n", cmdid); + if (timeout && nvmeq->dev->initialized) { + nvme_abort_cmd(cmdid, nvmeq); + continue; + } + dev_warn(nvmeq->q_dmadev, "Cancelling I/O %d QID %d\n", cmdid, + nvmeq->qid); ctx = cancel_cmdid(nvmeq, cmdid, &fn); fn(nvmeq->dev, ctx, &cqe); } @@ -1046,26 +1153,31 @@ kfree(nvmeq); } -static void nvme_free_queues(struct nvme_dev *dev) +static void nvme_free_queues(struct nvme_dev *dev, int lowest) { int i; - for (i = dev->queue_count - 1; i >= 0; i--) { + for (i = dev->queue_count - 1; i >= lowest; i--) { nvme_free_queue(dev->queues[i]); dev->queue_count--; dev->queues[i] = NULL; } } -static void nvme_disable_queue(struct nvme_dev *dev, int qid) +/** + * nvme_suspend_queue - put queue into suspended state + * @nvmeq - queue to suspend + * + * Returns 1 if already suspended, 0 otherwise. + */ +static int nvme_suspend_queue(struct nvme_queue *nvmeq) { - struct nvme_queue *nvmeq = dev->queues[qid]; - int vector = dev->entry[nvmeq->cq_vector].vector; + int vector = nvmeq->dev->entry[nvmeq->cq_vector].vector; spin_lock_irq(&nvmeq->q_lock); if (nvmeq->q_suspended) { spin_unlock_irq(&nvmeq->q_lock); - return; + return 1; } nvmeq->q_suspended = 1; spin_unlock_irq(&nvmeq->q_lock); @@ -1073,18 +1185,35 @@ irq_set_affinity_hint(vector, NULL); free_irq(vector, nvmeq); - /* Don't tell the adapter to delete the admin queue */ - if (qid) { - adapter_delete_sq(dev, qid); - adapter_delete_cq(dev, qid); - } + return 0; +} +static void nvme_clear_queue(struct nvme_queue *nvmeq) +{ spin_lock_irq(&nvmeq->q_lock); nvme_process_cq(nvmeq); nvme_cancel_ios(nvmeq, false); spin_unlock_irq(&nvmeq->q_lock); } +static void nvme_disable_queue(struct nvme_dev *dev, int qid) +{ + struct nvme_queue *nvmeq = dev->queues[qid]; + + if (!nvmeq) + return; + if (nvme_suspend_queue(nvmeq)) + return; + + /* Don't tell the adapter to delete the admin queue. + * Don't tell a removed adapter to delete IO queues. */ + if (qid && readl(&dev->bar->csts) != -1) { + adapter_delete_sq(dev, qid); + adapter_delete_cq(dev, qid); + } + nvme_clear_queue(nvmeq); +} + static struct nvme_queue *nvme_alloc_queue(struct nvme_dev *dev, int qid, int depth, int vector) { @@ -1107,15 +1236,18 @@ nvmeq->q_dmadev = dmadev; nvmeq->dev = dev; + snprintf(nvmeq->irqname, sizeof(nvmeq->irqname), "nvme%dq%d", + dev->instance, qid); spin_lock_init(&nvmeq->q_lock); nvmeq->cq_head = 0; nvmeq->cq_phase = 1; init_waitqueue_head(&nvmeq->sq_full); init_waitqueue_entry(&nvmeq->sq_cong_wait, nvme_thread); bio_list_init(&nvmeq->sq_cong); - nvmeq->q_db = &dev->dbs[qid << (dev->db_stride + 1)]; + nvmeq->q_db = &dev->dbs[qid * 2 * dev->db_stride]; nvmeq->q_depth = depth; nvmeq->cq_vector = vector; + nvmeq->qid = qid; nvmeq->q_suspended = 1; dev->queue_count++; @@ -1134,11 +1266,10 @@ { if (use_threaded_interrupts) return request_threaded_irq(dev->entry[nvmeq->cq_vector].vector, - nvme_irq_check, nvme_irq, - IRQF_DISABLED | IRQF_SHARED, + nvme_irq_check, nvme_irq, IRQF_SHARED, name, nvmeq); return request_irq(dev->entry[nvmeq->cq_vector].vector, nvme_irq, - IRQF_DISABLED | IRQF_SHARED, name, nvmeq); + IRQF_SHARED, name, nvmeq); } static void nvme_init_queue(struct nvme_queue *nvmeq, u16 qid) @@ -1149,7 +1280,7 @@ nvmeq->sq_tail = 0; nvmeq->cq_head = 0; nvmeq->cq_phase = 1; - nvmeq->q_db = &dev->dbs[qid << (dev->db_stride + 1)]; + nvmeq->q_db = &dev->dbs[qid * 2 * dev->db_stride]; memset(nvmeq->cmdid_data, 0, extra); memset((void *)nvmeq->cqes, 0, CQ_SIZE(nvmeq->q_depth)); nvme_cancel_ios(nvmeq, false); @@ -1169,13 +1300,13 @@ if (result < 0) goto release_cq; - result = queue_request_irq(dev, nvmeq, "nvme"); + result = queue_request_irq(dev, nvmeq, nvmeq->irqname); if (result < 0) goto release_sq; - spin_lock(&nvmeq->q_lock); + spin_lock_irq(&nvmeq->q_lock); nvme_init_queue(nvmeq, qid); - spin_unlock(&nvmeq->q_lock); + spin_unlock_irq(&nvmeq->q_lock); return result; @@ -1287,13 +1418,13 @@ if (result) return result; - result = queue_request_irq(dev, nvmeq, "nvme admin"); + result = queue_request_irq(dev, nvmeq, nvmeq->irqname); if (result) return result; - spin_lock(&nvmeq->q_lock); + spin_lock_irq(&nvmeq->q_lock); nvme_init_queue(nvmeq, 0); - spin_unlock(&nvmeq->q_lock); + spin_unlock_irq(&nvmeq->q_lock); return result; } @@ -1569,10 +1700,47 @@ } } +#ifdef CONFIG_COMPAT +static int nvme_compat_ioctl(struct block_device *bdev, fmode_t mode, + unsigned int cmd, unsigned long arg) +{ + struct nvme_ns *ns = bdev->bd_disk->private_data; + + switch (cmd) { + case SG_IO: + return nvme_sg_io32(ns, arg); + } + return nvme_ioctl(bdev, mode, cmd, arg); +} +#else +#define nvme_compat_ioctl NULL +#endif + +static int nvme_open(struct block_device *bdev, fmode_t mode) +{ + struct nvme_ns *ns = bdev->bd_disk->private_data; + struct nvme_dev *dev = ns->dev; + + kref_get(&dev->kref); + return 0; +} + +static void nvme_free_dev(struct kref *kref); + +static void nvme_release(struct gendisk *disk, fmode_t mode) +{ + struct nvme_ns *ns = disk->private_data; + struct nvme_dev *dev = ns->dev; + + kref_put(&dev->kref, nvme_free_dev); +} + static const struct block_device_operations nvme_fops = { .owner = THIS_MODULE, .ioctl = nvme_ioctl, - .compat_ioctl = nvme_ioctl, + .compat_ioctl = nvme_compat_ioctl, + .open = nvme_open, + .release = nvme_release, }; static void nvme_resubmit_bios(struct nvme_queue *nvmeq) @@ -1596,13 +1764,25 @@ static int nvme_kthread(void *data) { - struct nvme_dev *dev; + struct nvme_dev *dev, *next; while (!kthread_should_stop()) { set_current_state(TASK_INTERRUPTIBLE); spin_lock(&dev_list_lock); - list_for_each_entry(dev, &dev_list, node) { + list_for_each_entry_safe(dev, next, &dev_list, node) { int i; + if (readl(&dev->bar->csts) & NVME_CSTS_CFS && + dev->initialized) { + if (work_busy(&dev->reset_work)) + continue; + list_del_init(&dev->node); + dev_warn(&dev->pci_dev->dev, + "Failed status, reset controller\n"); + PREPARE_WORK(&dev->reset_work, + nvme_reset_failed_dev); + queue_work(nvme_workq, &dev->reset_work); + continue; + } for (i = 0; i < dev->queue_count; i++) { struct nvme_queue *nvmeq = dev->queues[i]; if (!nvmeq) @@ -1623,33 +1803,6 @@ return 0; } -static DEFINE_IDA(nvme_index_ida); - -static int nvme_get_ns_idx(void) -{ - int index, error; - - do { - if (!ida_pre_get(&nvme_index_ida, GFP_KERNEL)) - return -1; - - spin_lock(&dev_list_lock); - error = ida_get_new(&nvme_index_ida, &index); - spin_unlock(&dev_list_lock); - } while (error == -EAGAIN); - - if (error) - index = -1; - return index; -} - -static void nvme_put_ns_idx(int index) -{ - spin_lock(&dev_list_lock); - ida_remove(&nvme_index_ida, index); - spin_unlock(&dev_list_lock); -} - static void nvme_config_discard(struct nvme_ns *ns) { u32 logical_block_size = queue_logical_block_size(ns->queue); @@ -1683,7 +1836,7 @@ ns->dev = dev; ns->queue->queuedata = ns; - disk = alloc_disk(NVME_MINORS); + disk = alloc_disk(0); if (!disk) goto out_free_queue; ns->ns_id = nsid; @@ -1696,12 +1849,12 @@ blk_queue_max_hw_sectors(ns->queue, dev->max_hw_sectors); disk->major = nvme_major; - disk->minors = NVME_MINORS; - disk->first_minor = NVME_MINORS * nvme_get_ns_idx(); + disk->first_minor = 0; disk->fops = &nvme_fops; disk->private_data = ns; disk->queue = ns->queue; disk->driverfs_dev = &dev->pci_dev->dev; + disk->flags = GENHD_FL_EXT_DEVT; sprintf(disk->disk_name, "nvme%dn%d", dev->instance, nsid); set_capacity(disk, le64_to_cpup(&id->nsze) << (ns->lba_shift - 9)); @@ -1717,15 +1870,6 @@ return NULL; } -static void nvme_ns_free(struct nvme_ns *ns) -{ - int index = ns->disk->first_minor / NVME_MINORS; - put_disk(ns->disk); - nvme_put_ns_idx(index); - blk_cleanup_queue(ns->queue); - kfree(ns); -} - static int set_queue_count(struct nvme_dev *dev, int count) { int status; @@ -1741,11 +1885,12 @@ static size_t db_bar_size(struct nvme_dev *dev, unsigned nr_io_queues) { - return 4096 + ((nr_io_queues + 1) << (dev->db_stride + 3)); + return 4096 + ((nr_io_queues + 1) * 8 * dev->db_stride); } static int nvme_setup_io_queues(struct nvme_dev *dev) { + struct nvme_queue *adminq = dev->queues[0]; struct pci_dev *pdev = dev->pci_dev; int result, cpu, i, vecs, nr_io_queues, size, q_depth; @@ -1772,7 +1917,7 @@ } /* Deregister the admin queue's interrupt */ - free_irq(dev->entry[0].vector, dev->queues[0]); + free_irq(dev->entry[0].vector, adminq); vecs = nr_io_queues; for (i = 0; i < vecs; i++) @@ -1810,9 +1955,9 @@ */ nr_io_queues = vecs; - result = queue_request_irq(dev, dev->queues[0], "nvme admin"); + result = queue_request_irq(dev, adminq, adminq->irqname); if (result) { - dev->queues[0]->q_suspended = 1; + adminq->q_suspended = 1; goto free_queues; } @@ -1821,9 +1966,9 @@ for (i = dev->queue_count - 1; i > nr_io_queues; i--) { struct nvme_queue *nvmeq = dev->queues[i]; - spin_lock(&nvmeq->q_lock); + spin_lock_irq(&nvmeq->q_lock); nvme_cancel_ios(nvmeq, false); - spin_unlock(&nvmeq->q_lock); + spin_unlock_irq(&nvmeq->q_lock); nvme_free_queue(nvmeq); dev->queue_count--; @@ -1864,7 +2009,7 @@ return 0; free_queues: - nvme_free_queues(dev); + nvme_free_queues(dev, 1); return result; } @@ -1876,6 +2021,7 @@ */ static int nvme_dev_add(struct nvme_dev *dev) { + struct pci_dev *pdev = dev->pci_dev; int res; unsigned nn, i; struct nvme_ns *ns; @@ -1885,8 +2031,7 @@ dma_addr_t dma_addr; int shift = NVME_CAP_MPSMIN(readq(&dev->bar->cap)) + 12; - mem = dma_alloc_coherent(&dev->pci_dev->dev, 8192, &dma_addr, - GFP_KERNEL); + mem = dma_alloc_coherent(&pdev->dev, 8192, &dma_addr, GFP_KERNEL); if (!mem) return -ENOMEM; @@ -1899,13 +2044,14 @@ ctrl = mem; nn = le32_to_cpup(&ctrl->nn); dev->oncs = le16_to_cpup(&ctrl->oncs); + dev->abort_limit = ctrl->acl + 1; memcpy(dev->serial, ctrl->sn, sizeof(ctrl->sn)); memcpy(dev->model, ctrl->mn, sizeof(ctrl->mn)); memcpy(dev->firmware_rev, ctrl->fr, sizeof(ctrl->fr)); if (ctrl->mdts) dev->max_hw_sectors = 1 << (ctrl->mdts + shift - 9); - if ((dev->pci_dev->vendor == PCI_VENDOR_ID_INTEL) && - (dev->pci_dev->device == 0x0953) && ctrl->vs[3]) + if ((pdev->vendor == PCI_VENDOR_ID_INTEL) && + (pdev->device == 0x0953) && ctrl->vs[3]) dev->stripe_size = 1 << (ctrl->vs[3] + shift); id_ns = mem; @@ -1953,16 +2099,21 @@ dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32))) goto disable; - pci_set_drvdata(pdev, dev); dev->bar = ioremap(pci_resource_start(pdev, 0), 8192); if (!dev->bar) goto disable; - - dev->db_stride = NVME_CAP_STRIDE(readq(&dev->bar->cap)); + if (readl(&dev->bar->csts) == -1) { + result = -ENODEV; + goto unmap; + } + dev->db_stride = 1 << NVME_CAP_STRIDE(readq(&dev->bar->cap)); dev->dbs = ((void __iomem *)dev->bar) + 4096; return 0; + unmap: + iounmap(dev->bar); + dev->bar = NULL; disable: pci_release_regions(pdev); disable_pci: @@ -1980,37 +2131,183 @@ if (dev->bar) { iounmap(dev->bar); dev->bar = NULL; + pci_release_regions(dev->pci_dev); } - pci_release_regions(dev->pci_dev); if (pci_is_enabled(dev->pci_dev)) pci_disable_device(dev->pci_dev); } +struct nvme_delq_ctx { + struct task_struct *waiter; + struct kthread_worker *worker; + atomic_t refcount; +}; + +static void nvme_wait_dq(struct nvme_delq_ctx *dq, struct nvme_dev *dev) +{ + dq->waiter = current; + mb(); + + for (;;) { + set_current_state(TASK_KILLABLE); + if (!atomic_read(&dq->refcount)) + break; + if (!schedule_timeout(ADMIN_TIMEOUT) || + fatal_signal_pending(current)) { + set_current_state(TASK_RUNNING); + + nvme_disable_ctrl(dev, readq(&dev->bar->cap)); + nvme_disable_queue(dev, 0); + + send_sig(SIGKILL, dq->worker->task, 1); + flush_kthread_worker(dq->worker); + return; + } + } + set_current_state(TASK_RUNNING); +} + +static void nvme_put_dq(struct nvme_delq_ctx *dq) +{ + atomic_dec(&dq->refcount); + if (dq->waiter) + wake_up_process(dq->waiter); +} + +static struct nvme_delq_ctx *nvme_get_dq(struct nvme_delq_ctx *dq) +{ + atomic_inc(&dq->refcount); + return dq; +} + +static void nvme_del_queue_end(struct nvme_queue *nvmeq) +{ + struct nvme_delq_ctx *dq = nvmeq->cmdinfo.ctx; + + nvme_clear_queue(nvmeq); + nvme_put_dq(dq); +} + +static int adapter_async_del_queue(struct nvme_queue *nvmeq, u8 opcode, + kthread_work_func_t fn) +{ + struct nvme_command c; + + memset(&c, 0, sizeof(c)); + c.delete_queue.opcode = opcode; + c.delete_queue.qid = cpu_to_le16(nvmeq->qid); + + init_kthread_work(&nvmeq->cmdinfo.work, fn); + return nvme_submit_admin_cmd_async(nvmeq->dev, &c, &nvmeq->cmdinfo); +} + +static void nvme_del_cq_work_handler(struct kthread_work *work) +{ + struct nvme_queue *nvmeq = container_of(work, struct nvme_queue, + cmdinfo.work); + nvme_del_queue_end(nvmeq); +} + +static int nvme_delete_cq(struct nvme_queue *nvmeq) +{ + return adapter_async_del_queue(nvmeq, nvme_admin_delete_cq, + nvme_del_cq_work_handler); +} + +static void nvme_del_sq_work_handler(struct kthread_work *work) +{ + struct nvme_queue *nvmeq = container_of(work, struct nvme_queue, + cmdinfo.work); + int status = nvmeq->cmdinfo.status; + + if (!status) + status = nvme_delete_cq(nvmeq); + if (status) + nvme_del_queue_end(nvmeq); +} + +static int nvme_delete_sq(struct nvme_queue *nvmeq) +{ + return adapter_async_del_queue(nvmeq, nvme_admin_delete_sq, + nvme_del_sq_work_handler); +} + +static void nvme_del_queue_start(struct kthread_work *work) +{ + struct nvme_queue *nvmeq = container_of(work, struct nvme_queue, + cmdinfo.work); + allow_signal(SIGKILL); + if (nvme_delete_sq(nvmeq)) + nvme_del_queue_end(nvmeq); +} + +static void nvme_disable_io_queues(struct nvme_dev *dev) +{ + int i; + DEFINE_KTHREAD_WORKER_ONSTACK(worker); + struct nvme_delq_ctx dq; + struct task_struct *kworker_task = kthread_run(kthread_worker_fn, + &worker, "nvme%d", dev->instance); + + if (IS_ERR(kworker_task)) { + dev_err(&dev->pci_dev->dev, + "Failed to create queue del task\n"); + for (i = dev->queue_count - 1; i > 0; i--) + nvme_disable_queue(dev, i); + return; + } + + dq.waiter = NULL; + atomic_set(&dq.refcount, 0); + dq.worker = &worker; + for (i = dev->queue_count - 1; i > 0; i--) { + struct nvme_queue *nvmeq = dev->queues[i]; + + if (nvme_suspend_queue(nvmeq)) + continue; + nvmeq->cmdinfo.ctx = nvme_get_dq(&dq); + nvmeq->cmdinfo.worker = dq.worker; + init_kthread_work(&nvmeq->cmdinfo.work, nvme_del_queue_start); + queue_kthread_work(dq.worker, &nvmeq->cmdinfo.work); + } + nvme_wait_dq(&dq, dev); + kthread_stop(kworker_task); +} + static void nvme_dev_shutdown(struct nvme_dev *dev) { int i; - for (i = dev->queue_count - 1; i >= 0; i--) - nvme_disable_queue(dev, i); + dev->initialized = 0; spin_lock(&dev_list_lock); list_del_init(&dev->node); spin_unlock(&dev_list_lock); - if (dev->bar) + if (!dev->bar || (dev->bar && readl(&dev->bar->csts) == -1)) { + for (i = dev->queue_count - 1; i >= 0; i--) { + struct nvme_queue *nvmeq = dev->queues[i]; + nvme_suspend_queue(nvmeq); + nvme_clear_queue(nvmeq); + } + } else { + nvme_disable_io_queues(dev); nvme_shutdown_ctrl(dev); + nvme_disable_queue(dev, 0); + } nvme_dev_unmap(dev); } static void nvme_dev_remove(struct nvme_dev *dev) { - struct nvme_ns *ns, *next; + struct nvme_ns *ns; - list_for_each_entry_safe(ns, next, &dev->namespaces, list) { - list_del(&ns->list); - del_gendisk(ns->disk); - nvme_ns_free(ns); + list_for_each_entry(ns, &dev->namespaces, list) { + if (ns->disk->flags & GENHD_FL_UP) + del_gendisk(ns->disk); + if (!blk_queue_dying(ns->queue)) + blk_cleanup_queue(ns->queue); } } @@ -2067,14 +2364,22 @@ spin_unlock(&dev_list_lock); } +static void nvme_free_namespaces(struct nvme_dev *dev) +{ + struct nvme_ns *ns, *next; + + list_for_each_entry_safe(ns, next, &dev->namespaces, list) { + list_del(&ns->list); + put_disk(ns->disk); + kfree(ns); + } +} + static void nvme_free_dev(struct kref *kref) { struct nvme_dev *dev = container_of(kref, struct nvme_dev, kref); - nvme_dev_remove(dev); - nvme_dev_shutdown(dev); - nvme_free_queues(dev); - nvme_release_instance(dev); - nvme_release_prp_pools(dev); + + nvme_free_namespaces(dev); kfree(dev->queues); kfree(dev->entry); kfree(dev); @@ -2138,6 +2443,7 @@ return result; disable: + nvme_disable_queue(dev, 0); spin_lock(&dev_list_lock); list_del_init(&dev->node); spin_unlock(&dev_list_lock); @@ -2146,6 +2452,71 @@ return result; } +static int nvme_remove_dead_ctrl(void *arg) +{ + struct nvme_dev *dev = (struct nvme_dev *)arg; + struct pci_dev *pdev = dev->pci_dev; + + if (pci_get_drvdata(pdev)) + pci_stop_and_remove_bus_device(pdev); + kref_put(&dev->kref, nvme_free_dev); + return 0; +} + +static void nvme_remove_disks(struct work_struct *ws) +{ + int i; + struct nvme_dev *dev = container_of(ws, struct nvme_dev, reset_work); + + nvme_dev_remove(dev); + spin_lock(&dev_list_lock); + for (i = dev->queue_count - 1; i > 0; i--) { + BUG_ON(!dev->queues[i] || !dev->queues[i]->q_suspended); + nvme_free_queue(dev->queues[i]); + dev->queue_count--; + dev->queues[i] = NULL; + } + spin_unlock(&dev_list_lock); +} + +static int nvme_dev_resume(struct nvme_dev *dev) +{ + int ret; + + ret = nvme_dev_start(dev); + if (ret && ret != -EBUSY) + return ret; + if (ret == -EBUSY) { + spin_lock(&dev_list_lock); + PREPARE_WORK(&dev->reset_work, nvme_remove_disks); + queue_work(nvme_workq, &dev->reset_work); + spin_unlock(&dev_list_lock); + } + dev->initialized = 1; + return 0; +} + +static void nvme_dev_reset(struct nvme_dev *dev) +{ + nvme_dev_shutdown(dev); + if (nvme_dev_resume(dev)) { + dev_err(&dev->pci_dev->dev, "Device failed to resume\n"); + kref_get(&dev->kref); + if (IS_ERR(kthread_run(nvme_remove_dead_ctrl, dev, "nvme%d", + dev->instance))) { + dev_err(&dev->pci_dev->dev, + "Failed to start controller remove task\n"); + kref_put(&dev->kref, nvme_free_dev); + } + } +} + +static void nvme_reset_failed_dev(struct work_struct *ws) +{ + struct nvme_dev *dev = container_of(ws, struct nvme_dev, reset_work); + nvme_dev_reset(dev); +} + static int nvme_probe(struct pci_dev *pdev, const struct pci_device_id *id) { int result = -ENOMEM; @@ -2164,8 +2535,9 @@ goto free; INIT_LIST_HEAD(&dev->namespaces); + INIT_WORK(&dev->reset_work, nvme_reset_failed_dev); dev->pci_dev = pdev; - + pci_set_drvdata(pdev, dev); result = nvme_set_instance(dev); if (result) goto free; @@ -2174,6 +2546,7 @@ if (result) goto release; + kref_init(&dev->kref); result = nvme_dev_start(dev); if (result) { if (result == -EBUSY) @@ -2195,15 +2568,16 @@ if (result) goto remove; - kref_init(&dev->kref); + dev->initialized = 1; return 0; remove: nvme_dev_remove(dev); + nvme_free_namespaces(dev); shutdown: nvme_dev_shutdown(dev); release_pools: - nvme_free_queues(dev); + nvme_free_queues(dev, 0); nvme_release_prp_pools(dev); release: nvme_release_instance(dev); @@ -2214,10 +2588,28 @@ return result; } +static void nvme_shutdown(struct pci_dev *pdev) +{ + struct nvme_dev *dev = pci_get_drvdata(pdev); + nvme_dev_shutdown(dev); +} + static void nvme_remove(struct pci_dev *pdev) { struct nvme_dev *dev = pci_get_drvdata(pdev); + + spin_lock(&dev_list_lock); + list_del_init(&dev->node); + spin_unlock(&dev_list_lock); + + pci_set_drvdata(pdev, NULL); + flush_work(&dev->reset_work); misc_deregister(&dev->miscdev); + nvme_dev_remove(dev); + nvme_dev_shutdown(dev); + nvme_free_queues(dev, 0); + nvme_release_instance(dev); + nvme_release_prp_pools(dev); kref_put(&dev->kref, nvme_free_dev); } @@ -2241,13 +2633,12 @@ { struct pci_dev *pdev = to_pci_dev(dev); struct nvme_dev *ndev = pci_get_drvdata(pdev); - int ret; - ret = nvme_dev_start(ndev); - /* XXX: should remove gendisks if resume fails */ - if (ret) - nvme_free_queues(ndev); - return ret; + if (nvme_dev_resume(ndev) && !work_busy(&ndev->reset_work)) { + PREPARE_WORK(&ndev->reset_work, nvme_reset_failed_dev); + queue_work(nvme_workq, &ndev->reset_work); + } + return 0; } static SIMPLE_DEV_PM_OPS(nvme_dev_pm_ops, nvme_suspend, nvme_resume); @@ -2274,6 +2665,7 @@ .id_table = nvme_id_table, .probe = nvme_probe, .remove = nvme_remove, + .shutdown = nvme_shutdown, .driver = { .pm = &nvme_dev_pm_ops, }, @@ -2288,9 +2680,14 @@ if (IS_ERR(nvme_thread)) return PTR_ERR(nvme_thread); + result = -ENOMEM; + nvme_workq = create_singlethread_workqueue("nvme"); + if (!nvme_workq) + goto kill_kthread; + result = register_blkdev(nvme_major, "nvme"); if (result < 0) - goto kill_kthread; + goto kill_workq; else if (result > 0) nvme_major = result; @@ -2301,6 +2698,8 @@ unregister_blkdev: unregister_blkdev(nvme_major, "nvme"); + kill_workq: + destroy_workqueue(nvme_workq); kill_kthread: kthread_stop(nvme_thread); return result; @@ -2310,6 +2709,7 @@ { pci_unregister_driver(&nvme_driver); unregister_blkdev(nvme_major, "nvme"); + destroy_workqueue(nvme_workq); kthread_stop(nvme_thread); } --- linux-3.13.0.orig/drivers/block/nvme-scsi.c +++ linux-3.13.0/drivers/block/nvme-scsi.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -3038,6 +3039,152 @@ return retcode; } +#ifdef CONFIG_COMPAT +typedef struct sg_io_hdr32 { + compat_int_t interface_id; /* [i] 'S' for SCSI generic (required) */ + compat_int_t dxfer_direction; /* [i] data transfer direction */ + unsigned char cmd_len; /* [i] SCSI command length ( <= 16 bytes) */ + unsigned char mx_sb_len; /* [i] max length to write to sbp */ + unsigned short iovec_count; /* [i] 0 implies no scatter gather */ + compat_uint_t dxfer_len; /* [i] byte count of data transfer */ + compat_uint_t dxferp; /* [i], [*io] points to data transfer memory + or scatter gather list */ + compat_uptr_t cmdp; /* [i], [*i] points to command to perform */ + compat_uptr_t sbp; /* [i], [*o] points to sense_buffer memory */ + compat_uint_t timeout; /* [i] MAX_UINT->no timeout (unit: millisec) */ + compat_uint_t flags; /* [i] 0 -> default, see SG_FLAG... */ + compat_int_t pack_id; /* [i->o] unused internally (normally) */ + compat_uptr_t usr_ptr; /* [i->o] unused internally */ + unsigned char status; /* [o] scsi status */ + unsigned char masked_status; /* [o] shifted, masked scsi status */ + unsigned char msg_status; /* [o] messaging level data (optional) */ + unsigned char sb_len_wr; /* [o] byte count actually written to sbp */ + unsigned short host_status; /* [o] errors from host adapter */ + unsigned short driver_status; /* [o] errors from software driver */ + compat_int_t resid; /* [o] dxfer_len - actual_transferred */ + compat_uint_t duration; /* [o] time taken by cmd (unit: millisec) */ + compat_uint_t info; /* [o] auxiliary information */ +} sg_io_hdr32_t; /* 64 bytes long (on sparc32) */ + +typedef struct sg_iovec32 { + compat_uint_t iov_base; + compat_uint_t iov_len; +} sg_iovec32_t; + +static int sg_build_iovec(sg_io_hdr_t __user *sgio, void __user *dxferp, u16 iovec_count) +{ + sg_iovec_t __user *iov = (sg_iovec_t __user *) (sgio + 1); + sg_iovec32_t __user *iov32 = dxferp; + int i; + + for (i = 0; i < iovec_count; i++) { + u32 base, len; + + if (get_user(base, &iov32[i].iov_base) || + get_user(len, &iov32[i].iov_len) || + put_user(compat_ptr(base), &iov[i].iov_base) || + put_user(len, &iov[i].iov_len)) + return -EFAULT; + } + + if (put_user(iov, &sgio->dxferp)) + return -EFAULT; + return 0; +} + +int nvme_sg_io32(struct nvme_ns *ns, unsigned long arg) +{ + sg_io_hdr32_t __user *sgio32 = (sg_io_hdr32_t __user *)arg; + sg_io_hdr_t __user *sgio; + u16 iovec_count; + u32 data; + void __user *dxferp; + int err; + int interface_id; + + if (get_user(interface_id, &sgio32->interface_id)) + return -EFAULT; + if (interface_id != 'S') + return -EINVAL; + + if (get_user(iovec_count, &sgio32->iovec_count)) + return -EFAULT; + + { + void __user *top = compat_alloc_user_space(0); + void __user *new = compat_alloc_user_space(sizeof(sg_io_hdr_t) + + (iovec_count * sizeof(sg_iovec_t))); + if (new > top) + return -EINVAL; + + sgio = new; + } + + /* Ok, now construct. */ + if (copy_in_user(&sgio->interface_id, &sgio32->interface_id, + (2 * sizeof(int)) + + (2 * sizeof(unsigned char)) + + (1 * sizeof(unsigned short)) + + (1 * sizeof(unsigned int)))) + return -EFAULT; + + if (get_user(data, &sgio32->dxferp)) + return -EFAULT; + dxferp = compat_ptr(data); + if (iovec_count) { + if (sg_build_iovec(sgio, dxferp, iovec_count)) + return -EFAULT; + } else { + if (put_user(dxferp, &sgio->dxferp)) + return -EFAULT; + } + + { + unsigned char __user *cmdp; + unsigned char __user *sbp; + + if (get_user(data, &sgio32->cmdp)) + return -EFAULT; + cmdp = compat_ptr(data); + + if (get_user(data, &sgio32->sbp)) + return -EFAULT; + sbp = compat_ptr(data); + + if (put_user(cmdp, &sgio->cmdp) || + put_user(sbp, &sgio->sbp)) + return -EFAULT; + } + + if (copy_in_user(&sgio->timeout, &sgio32->timeout, + 3 * sizeof(int))) + return -EFAULT; + + if (get_user(data, &sgio32->usr_ptr)) + return -EFAULT; + if (put_user(compat_ptr(data), &sgio->usr_ptr)) + return -EFAULT; + + err = nvme_sg_io(ns, sgio); + if (err >= 0) { + void __user *datap; + + if (copy_in_user(&sgio32->pack_id, &sgio->pack_id, + sizeof(int)) || + get_user(datap, &sgio->usr_ptr) || + put_user((u32)(unsigned long)datap, + &sgio32->usr_ptr) || + copy_in_user(&sgio32->status, &sgio->status, + (4 * sizeof(unsigned char)) + + (2 * sizeof(unsigned short)) + + (3 * sizeof(int)))) + err = -EFAULT; + } + + return err; +} +#endif + int nvme_sg_get_version_num(int __user *ip) { return put_user(sg_version_num, ip); --- linux-3.13.0.orig/drivers/block/rbd.c +++ linux-3.13.0/drivers/block/rbd.c @@ -1379,6 +1379,14 @@ return test_bit(OBJ_REQ_EXISTS, &obj_request->flags) != 0; } +static bool obj_request_overlaps_parent(struct rbd_obj_request *obj_request) +{ + struct rbd_device *rbd_dev = obj_request->img_request->rbd_dev; + + return obj_request->img_offset < + round_up(rbd_dev->parent_overlap, rbd_obj_bytes(&rbd_dev->header)); +} + static void rbd_obj_request_get(struct rbd_obj_request *obj_request) { dout("%s: obj %p (was %d)\n", __func__, obj_request, @@ -1395,6 +1403,13 @@ kref_put(&obj_request->kref, rbd_obj_request_destroy); } +static void rbd_img_request_get(struct rbd_img_request *img_request) +{ + dout("%s: img %p (was %d)\n", __func__, img_request, + atomic_read(&img_request->kref.refcount)); + kref_get(&img_request->kref); +} + static bool img_request_child_test(struct rbd_img_request *img_request); static void rbd_parent_request_destroy(struct kref *kref); static void rbd_img_request_destroy(struct kref *kref); @@ -2148,6 +2163,7 @@ img_request->next_completion = which; out: spin_unlock_irq(&img_request->completion_lock); + rbd_img_request_put(img_request); if (!more) rbd_img_request_complete(img_request); @@ -2244,6 +2260,7 @@ goto out_partial; obj_request->osd_req = osd_req; obj_request->callback = rbd_img_obj_callback; + rbd_img_request_get(img_request); osd_req_op_extent_init(osd_req, 0, opcode, offset, length, 0, 0); @@ -2666,7 +2683,7 @@ */ if (!img_request_write_test(img_request) || !img_request_layered_test(img_request) || - rbd_dev->parent_overlap <= obj_request->img_offset || + !obj_request_overlaps_parent(obj_request) || ((known = obj_request_known_test(obj_request)) && obj_request_exists_test(obj_request))) { @@ -3203,7 +3220,7 @@ page_count = (u32) calc_pages_for(offset, length); pages = ceph_alloc_page_vector(page_count, GFP_KERNEL); if (IS_ERR(pages)) - ret = PTR_ERR(pages); + return PTR_ERR(pages); ret = -ENOMEM; obj_request = rbd_obj_request_create(object_name, offset, length, --- linux-3.13.0.orig/drivers/block/sunvdc.c +++ linux-3.13.0/drivers/block/sunvdc.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -22,8 +23,8 @@ #define DRV_MODULE_NAME "sunvdc" #define PFX DRV_MODULE_NAME ": " -#define DRV_MODULE_VERSION "1.0" -#define DRV_MODULE_RELDATE "June 25, 2007" +#define DRV_MODULE_VERSION "1.1" +#define DRV_MODULE_RELDATE "February 13, 2013" static char version[] = DRV_MODULE_NAME ".c:v" DRV_MODULE_VERSION " (" DRV_MODULE_RELDATE ")\n"; @@ -32,7 +33,7 @@ MODULE_LICENSE("GPL"); MODULE_VERSION(DRV_MODULE_VERSION); -#define VDC_TX_RING_SIZE 256 +#define VDC_TX_RING_SIZE 512 #define WAITING_FOR_LINK_UP 0x01 #define WAITING_FOR_TX_SPACE 0x02 @@ -65,11 +66,9 @@ u64 operations; u32 vdisk_size; u8 vdisk_type; + u8 vdisk_mtype; char disk_name[32]; - - struct vio_disk_geom geom; - struct vio_disk_vtoc label; }; static inline struct vdc_port *to_vdc_port(struct vio_driver_state *vio) @@ -79,9 +78,16 @@ /* Ordered from largest major to lowest */ static struct vio_version vdc_versions[] = { + { .major = 1, .minor = 1 }, { .major = 1, .minor = 0 }, }; +static inline int vdc_version_supported(struct vdc_port *port, + u16 major, u16 minor) +{ + return port->vio.ver.major == major && port->vio.ver.minor >= minor; +} + #define VDCBLK_NAME "vdisk" static int vdc_major; #define PARTITION_SHIFT 3 @@ -94,18 +100,54 @@ static int vdc_getgeo(struct block_device *bdev, struct hd_geometry *geo) { struct gendisk *disk = bdev->bd_disk; - struct vdc_port *port = disk->private_data; + sector_t nsect = get_capacity(disk); + sector_t cylinders = nsect; - geo->heads = (u8) port->geom.num_hd; - geo->sectors = (u8) port->geom.num_sec; - geo->cylinders = port->geom.num_cyl; + geo->heads = 0xff; + geo->sectors = 0x3f; + sector_div(cylinders, geo->heads * geo->sectors); + geo->cylinders = cylinders; + if ((sector_t)(geo->cylinders + 1) * geo->heads * geo->sectors < nsect) + geo->cylinders = 0xffff; return 0; } +/* Add ioctl/CDROM_GET_CAPABILITY to support cdrom_id in udev + * when vdisk_mtype is VD_MEDIA_TYPE_CD or VD_MEDIA_TYPE_DVD. + * Needed to be able to install inside an ldom from an iso image. + */ +static int vdc_ioctl(struct block_device *bdev, fmode_t mode, + unsigned command, unsigned long argument) +{ + int i; + struct gendisk *disk; + + switch (command) { + case CDROMMULTISESSION: + pr_debug(PFX "Multisession CDs not supported\n"); + for (i = 0; i < sizeof(struct cdrom_multisession); i++) + if (put_user(0, (char __user *)(argument + i))) + return -EFAULT; + return 0; + + case CDROM_GET_CAPABILITY: + disk = bdev->bd_disk; + + if (bdev->bd_disk && (disk->flags & GENHD_FL_CD)) + return 0; + return -EINVAL; + + default: + pr_debug(PFX "ioctl %08x not supported\n", command); + return -EINVAL; + } +} + static const struct block_device_operations vdc_fops = { .owner = THIS_MODULE, .getgeo = vdc_getgeo, + .ioctl = vdc_ioctl, }; static void vdc_finish(struct vio_driver_state *vio, int err, int waiting_for) @@ -165,9 +207,9 @@ struct vio_disk_attr_info *pkt = arg; viodbg(HS, "GOT ATTR stype[0x%x] ops[%llx] disk_size[%llu] disk_type[%x] " - "xfer_mode[0x%x] blksz[%u] max_xfer[%llu]\n", + "mtype[0x%x] xfer_mode[0x%x] blksz[%u] max_xfer[%llu]\n", pkt->tag.stype, pkt->operations, - pkt->vdisk_size, pkt->vdisk_type, + pkt->vdisk_size, pkt->vdisk_type, pkt->vdisk_mtype, pkt->xfer_mode, pkt->vdisk_block_size, pkt->max_xfer_size); @@ -192,8 +234,11 @@ } port->operations = pkt->operations; - port->vdisk_size = pkt->vdisk_size; port->vdisk_type = pkt->vdisk_type; + if (vdc_version_supported(port, 1, 1)) { + port->vdisk_size = pkt->vdisk_size; + port->vdisk_mtype = pkt->vdisk_mtype; + } if (pkt->max_xfer_size < port->max_xfer_size) port->max_xfer_size = pkt->max_xfer_size; port->vdisk_block_size = pkt->vdisk_block_size; @@ -236,7 +281,9 @@ __blk_end_request(req, (desc->status ? -EIO : 0), desc->size); - if (blk_queue_stopped(port->disk->queue)) + /* restart blk queue when ring is half emptied */ + if (blk_queue_stopped(port->disk->queue) && + vdc_tx_dring_avail(dr) * 100 / VDC_TX_RING_SIZE >= 50) blk_start_queue(port->disk->queue); } @@ -388,12 +435,6 @@ for (i = 0; i < nsg; i++) len += sg[i].length; - if (unlikely(vdc_tx_dring_avail(dr) < 1)) { - blk_stop_queue(port->disk->queue); - err = -ENOMEM; - goto out; - } - desc = vio_dring_cur(dr); err = ldc_map_sg(port->vio.lp, sg, nsg, @@ -433,21 +474,32 @@ port->req_id++; dr->prod = (dr->prod + 1) & (VDC_TX_RING_SIZE - 1); } -out: return err; } -static void do_vdc_request(struct request_queue *q) +static void do_vdc_request(struct request_queue *rq) { - while (1) { - struct request *req = blk_fetch_request(q); + struct request *req; - if (!req) + while ((req = blk_peek_request(rq)) != NULL) { + struct vdc_port *port; + struct vio_dring_state *dr; + + port = req->rq_disk->private_data; + dr = &port->vio.drings[VIO_DRIVER_TX_RING]; + if (unlikely(vdc_tx_dring_avail(dr) < 1)) + goto wait; + + blk_start_request(req); + + if (__send_request(req) < 0) { + blk_requeue_request(rq, req); +wait: + /* Avoid pointless unplugs. */ + blk_stop_queue(rq); break; - - if (__send_request(req) < 0) - __blk_end_request_all(req, -EIO); + } } } @@ -656,25 +708,27 @@ if (comp.err) return comp.err; - err = generic_request(port, VD_OP_GET_VTOC, - &port->label, sizeof(port->label)); - if (err < 0) { - printk(KERN_ERR PFX "VD_OP_GET_VTOC returns error %d\n", err); - return err; - } + if (vdc_version_supported(port, 1, 1)) { + /* vdisk_size should be set during the handshake, if it wasn't + * then the underlying disk is reserved by another system + */ + if (port->vdisk_size == -1) + return -ENODEV; + } else { + struct vio_disk_geom geom; - err = generic_request(port, VD_OP_GET_DISKGEOM, - &port->geom, sizeof(port->geom)); - if (err < 0) { - printk(KERN_ERR PFX "VD_OP_GET_DISKGEOM returns " - "error %d\n", err); - return err; + err = generic_request(port, VD_OP_GET_DISKGEOM, + &geom, sizeof(geom)); + if (err < 0) { + printk(KERN_ERR PFX "VD_OP_GET_DISKGEOM returns " + "error %d\n", err); + return err; + } + port->vdisk_size = ((u64)geom.num_cyl * + (u64)geom.num_hd * + (u64)geom.num_sec); } - port->vdisk_size = ((u64)port->geom.num_cyl * - (u64)port->geom.num_hd * - (u64)port->geom.num_sec); - q = blk_init_queue(do_vdc_request, &port->vio.lock); if (!q) { printk(KERN_ERR PFX "%s: Could not allocate queue.\n", @@ -691,6 +745,10 @@ port->disk = g; + /* Each segment in a request is up to an aligned page in size. */ + blk_queue_segment_boundary(q, PAGE_SIZE - 1); + blk_queue_max_segment_size(q, PAGE_SIZE); + blk_queue_max_segments(q, port->ring_cookies); blk_queue_max_hw_sectors(q, port->max_xfer_size); g->major = vdc_major; @@ -704,9 +762,32 @@ set_capacity(g, port->vdisk_size); - printk(KERN_INFO PFX "%s: %u sectors (%u MB)\n", + if (vdc_version_supported(port, 1, 1)) { + switch (port->vdisk_mtype) { + case VD_MEDIA_TYPE_CD: + pr_info(PFX "Virtual CDROM %s\n", port->disk_name); + g->flags |= GENHD_FL_CD; + g->flags |= GENHD_FL_REMOVABLE; + set_disk_ro(g, 1); + break; + + case VD_MEDIA_TYPE_DVD: + pr_info(PFX "Virtual DVD %s\n", port->disk_name); + g->flags |= GENHD_FL_CD; + g->flags |= GENHD_FL_REMOVABLE; + set_disk_ro(g, 1); + break; + + case VD_MEDIA_TYPE_FIXED: + pr_info(PFX "Virtual Hard disk %s\n", port->disk_name); + break; + } + } + + pr_info(PFX "%s: %u sectors (%u MB) protocol %d.%d\n", g->disk_name, - port->vdisk_size, (port->vdisk_size >> (20 - 9))); + port->vdisk_size, (port->vdisk_size >> (20 - 9)), + port->vio.ver.major, port->vio.ver.minor); add_disk(g); @@ -765,6 +846,7 @@ else snprintf(port->disk_name, sizeof(port->disk_name), VDCBLK_NAME "%c", 'a' + ((int)vdev->dev_no % 26)); + port->vdisk_size = -1; err = vio_driver_init(&port->vio, vdev, VDEV_DISK, vdc_versions, ARRAY_SIZE(vdc_versions), --- linux-3.13.0.orig/drivers/block/virtio_blk.c +++ linux-3.13.0/drivers/block/virtio_blk.c @@ -144,11 +144,11 @@ if (unlikely(virtqueue_is_broken(vq))) break; } while (!virtqueue_enable_cb(vq)); - spin_unlock_irqrestore(&vblk->vq_lock, flags); /* In case queue is stopped waiting for more buffers. */ if (req_done) blk_mq_start_stopped_hw_queues(vblk->disk->queue); + spin_unlock_irqrestore(&vblk->vq_lock, flags); } static int virtio_queue_rq(struct blk_mq_hw_ctx *hctx, struct request *req) @@ -158,6 +158,8 @@ unsigned long flags; unsigned int num; const bool last = (req->cmd_flags & REQ_END) != 0; + int err; + bool notify = false; BUG_ON(req->nr_phys_segments + 2 > vblk->sg_elems); @@ -198,17 +200,24 @@ } spin_lock_irqsave(&vblk->vq_lock, flags); - if (__virtblk_add_req(vblk->vq, vbr, vbr->sg, num) < 0) { + err = __virtblk_add_req(vblk->vq, vbr, vbr->sg, num); + if (err) { virtqueue_kick(vblk->vq); - spin_unlock_irqrestore(&vblk->vq_lock, flags); blk_mq_stop_hw_queue(hctx); - return BLK_MQ_RQ_QUEUE_BUSY; + spin_unlock_irqrestore(&vblk->vq_lock, flags); + /* Out of mem doesn't actually happen, since we fall back + * to direct descriptors */ + if (err == -ENOMEM || err == -ENOSPC) + return BLK_MQ_RQ_QUEUE_BUSY; + return BLK_MQ_RQ_QUEUE_ERROR; } - if (last) - virtqueue_kick(vblk->vq); - + if (last && virtqueue_kick_prepare(vblk->vq)) + notify = true; spin_unlock_irqrestore(&vblk->vq_lock, flags); + + if (notify) + virtqueue_notify(vblk->vq); return BLK_MQ_RQ_QUEUE_OK; } --- linux-3.13.0.orig/drivers/block/xen-blkback/blkback.c +++ linux-3.13.0/drivers/block/xen-blkback/blkback.c @@ -755,6 +755,7 @@ BUG_ON(new_map_idx >= segs_to_map); if (unlikely(map[new_map_idx].status != 0)) { pr_debug(DRV_PFX "invalid buffer -- could not remap it\n"); + put_free_pages(blkif, &pages[seg_idx]->page, 1); pages[seg_idx]->handle = BLKBACK_INVALID_HANDLE; ret |= 1; goto next; --- linux-3.13.0.orig/drivers/block/xen-blkfront.c +++ linux-3.13.0/drivers/block/xen-blkfront.c @@ -1356,7 +1356,7 @@ char *type; int len; /* no unplug has been done: do not hook devices != xen vbds */ - if (xen_platform_pci_unplug & XEN_UNPLUG_UNNECESSARY) { + if (xen_has_pv_and_legacy_disk_devices()) { int major; if (!VDEV_IS_EXTENDED(vdevice)) @@ -1904,13 +1904,16 @@ case XenbusStateReconfiguring: case XenbusStateReconfigured: case XenbusStateUnknown: - case XenbusStateClosed: break; case XenbusStateConnected: blkfront_connect(info); break; + case XenbusStateClosed: + if (dev->state == XenbusStateClosed) + break; + /* Missed the backend's Closing state -- fallthrough */ case XenbusStateClosing: blkfront_closing(info); break; @@ -2079,7 +2082,7 @@ if (!xen_domain()) return -ENODEV; - if (xen_hvm_domain() && !xen_platform_pci_unplug) + if (!xen_has_pv_disk_devices()) return -ENODEV; if (register_blkdev(XENVBD_MAJOR, DEV_NAME)) { --- linux-3.13.0.orig/drivers/bluetooth/ath3k.c +++ linux-3.13.0/drivers/bluetooth/ath3k.c @@ -77,6 +77,7 @@ { USB_DEVICE(0x0CF3, 0x3004) }, { USB_DEVICE(0x0CF3, 0x3008) }, { USB_DEVICE(0x0CF3, 0x311D) }, + { USB_DEVICE(0x0CF3, 0x311E) }, { USB_DEVICE(0x0CF3, 0x817a) }, { USB_DEVICE(0x13d3, 0x3375) }, { USB_DEVICE(0x04CA, 0x3004) }, @@ -97,6 +98,7 @@ { USB_DEVICE(0x13d3, 0x3402) }, { USB_DEVICE(0x0cf3, 0x3121) }, { USB_DEVICE(0x0cf3, 0xe003) }, + { USB_DEVICE(0x13d3, 0x3408) }, /* Atheros AR5BBU12 with sflash firmware */ { USB_DEVICE(0x0489, 0xE02C) }, @@ -120,6 +122,7 @@ { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x0cf3, 0x3008), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x0cf3, 0x311D), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0cf3, 0x311E), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x0CF3, 0x817a), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 }, @@ -140,6 +143,7 @@ { USB_DEVICE(0x13d3, 0x3402), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x0cf3, 0x3121), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x0cf3, 0xe003), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3408), .driver_info = BTUSB_ATH3012 }, /* Atheros AR5BBU22 with sflash firmware */ { USB_DEVICE(0x0489, 0xE03C), .driver_info = BTUSB_ATH3012 }, --- linux-3.13.0.orig/drivers/bluetooth/btmrvl_drv.h +++ linux-3.13.0/drivers/bluetooth/btmrvl_drv.h @@ -70,6 +70,7 @@ u8 hs_state; u8 wakeup_tries; wait_queue_head_t cmd_wait_q; + wait_queue_head_t event_hs_wait_q; u8 cmd_complete; bool is_suspended; }; --- linux-3.13.0.orig/drivers/bluetooth/btmrvl_main.c +++ linux-3.13.0/drivers/bluetooth/btmrvl_main.c @@ -115,6 +115,7 @@ adapter->hs_state = HS_ACTIVATED; if (adapter->psmode) adapter->ps_state = PS_SLEEP; + wake_up_interruptible(&adapter->event_hs_wait_q); BT_DBG("HS ACTIVATED!"); } else { BT_DBG("HS Enable failed"); @@ -254,11 +255,31 @@ int btmrvl_enable_hs(struct btmrvl_private *priv) { + struct btmrvl_adapter *adapter = priv->adapter; int ret; ret = btmrvl_send_sync_cmd(priv, BT_CMD_HOST_SLEEP_ENABLE, NULL, 0); - if (ret) + if (ret) { BT_ERR("Host sleep enable command failed\n"); + return ret; + } + + ret = wait_event_interruptible_timeout(adapter->event_hs_wait_q, + adapter->hs_state, + msecs_to_jiffies(WAIT_UNTIL_HS_STATE_CHANGED)); + if (ret < 0) { + BT_ERR("event_hs_wait_q terminated (%d): %d,%d,%d", + ret, adapter->hs_state, adapter->ps_state, + adapter->wakeup_tries); + } else if (!ret) { + BT_ERR("hs_enable timeout: %d,%d,%d", adapter->hs_state, + adapter->ps_state, adapter->wakeup_tries); + ret = -ETIMEDOUT; + } else { + BT_DBG("host sleep enabled: %d,%d,%d", adapter->hs_state, + adapter->ps_state, adapter->wakeup_tries); + ret = 0; + } return ret; } @@ -344,6 +365,7 @@ priv->adapter->ps_state = PS_AWAKE; init_waitqueue_head(&priv->adapter->cmd_wait_q); + init_waitqueue_head(&priv->adapter->event_hs_wait_q); } static void btmrvl_free_adapter(struct btmrvl_private *priv) @@ -716,6 +738,7 @@ hdev = priv->btmrvl_dev.hcidev; wake_up_interruptible(&priv->adapter->cmd_wait_q); + wake_up_interruptible(&priv->adapter->event_hs_wait_q); kthread_stop(priv->main_thread.task); --- linux-3.13.0.orig/drivers/bluetooth/btusb.c +++ linux-3.13.0/drivers/bluetooth/btusb.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -49,6 +50,7 @@ #define BTUSB_WRONG_SCO_MTU 0x40 #define BTUSB_ATH3012 0x80 #define BTUSB_INTEL 0x100 +#define BTUSB_BCM_PATCHRAM 0x800 static const struct usb_device_id btusb_table[] = { /* Generic Bluetooth USB device */ @@ -105,13 +107,20 @@ { USB_DEVICE(0x0b05, 0x17cb) }, { USB_DEVICE(0x04ca, 0x2003) }, { USB_DEVICE(0x0489, 0xe042) }, - { USB_DEVICE(0x413c, 0x8197) }, + { USB_DEVICE(0x13d3, 0x3388), .driver_info = BTUSB_BCM_PATCHRAM }, + { USB_DEVICE(0x13d3, 0x3389), .driver_info = BTUSB_BCM_PATCHRAM }, + { USB_DEVICE(0x413c, 0x8197), .driver_info = BTUSB_BCM_PATCHRAM }, + { USB_DEVICE(0x413c, 0x8143), .driver_info = BTUSB_BCM_PATCHRAM }, + + /* Broadcom BCM43142A0 */ + { USB_DEVICE(0x04ca, 0x2007), .driver_info = BTUSB_BCM_PATCHRAM }, + { USB_DEVICE(0x105b, 0xe065), .driver_info = BTUSB_BCM_PATCHRAM }, /* Foxconn - Hon Hai */ - { USB_VENDOR_AND_INTERFACE_INFO(0x0489, 0xff, 0x01, 0x01) }, + { USB_VENDOR_AND_INTERFACE_INFO(0x0489, 0xff, 0x01, 0x01), .driver_info = BTUSB_BCM_PATCHRAM }, /*Broadcom devices with vendor specific id */ - { USB_VENDOR_AND_INTERFACE_INFO(0x0a5c, 0xff, 0x01, 0x01) }, + { USB_VENDOR_AND_INTERFACE_INFO(0x0a5c, 0xff, 0x01, 0x01), .driver_info = BTUSB_BCM_PATCHRAM }, /* Belkin F8065bf - Broadcom based */ { USB_VENDOR_AND_INTERFACE_INFO(0x050d, 0xff, 0x01, 0x01) }, @@ -144,6 +153,7 @@ { USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x0cf3, 0x3008), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x0cf3, 0x311d), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0cf3, 0x311e), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x0cf3, 0x817a), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x04ca, 0x3004), .driver_info = BTUSB_ATH3012 }, @@ -164,6 +174,7 @@ { USB_DEVICE(0x13d3, 0x3402), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x0cf3, 0x3121), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x0cf3, 0xe003), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x13d3, 0x3408), .driver_info = BTUSB_ATH3012 }, /* Atheros AR5BBU12 with sflash firmware */ { USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE }, @@ -224,6 +235,7 @@ /* Intel Bluetooth device */ { USB_DEVICE(0x8087, 0x07dc), .driver_info = BTUSB_INTEL }, + { USB_DEVICE(0x8087, 0x0a2a), .driver_info = BTUSB_INTEL }, { } /* Terminating entry */ }; @@ -305,6 +317,9 @@ BT_ERR("%s corrupted event packet", hdev->name); hdev->stat.err_rx++; } + } else if (urb->status == -ENOENT) { + /* Avoid suspend failed when usb_kill_urb */ + return; } if (!test_bit(BTUSB_INTR_RUNNING, &data->flags)) @@ -393,6 +408,9 @@ BT_ERR("%s corrupted ACL packet", hdev->name); hdev->stat.err_rx++; } + } else if (urb->status == -ENOENT) { + /* Avoid suspend failed when usb_kill_urb */ + return; } if (!test_bit(BTUSB_BULK_RUNNING, &data->flags)) @@ -487,6 +505,9 @@ hdev->stat.err_rx++; } } + } else if (urb->status == -ENOENT) { + /* Avoid suspend failed when usb_kill_urb */ + return; } if (!test_bit(BTUSB_ISOC_RUNNING, &data->flags)) @@ -1331,6 +1352,72 @@ return 0; } +static int btusb_setup_patchram_packet(struct hci_dev *hdev, u16 opcode, u32 plen, const void *param) +{ + struct sk_buff *skb; + + skb = __hci_cmd_sync(hdev, opcode, plen, param, HCI_INIT_TIMEOUT); + if (IS_ERR(skb)) + return PTR_ERR(skb); + kfree_skb(skb); + return 0; +} + +#define PATCHRAM_NAME_LEN 20 + +static int btusb_setup_patchram(struct hci_dev *hdev) +{ + struct btusb_data *data = hci_get_drvdata(hdev); + struct usb_device *udev = data->udev; + size_t pos = 0; + int err = 0; + char filename[PATCHRAM_NAME_LEN]; + const struct firmware *fw; + u8 val = 0x00; + + snprintf(filename, PATCHRAM_NAME_LEN, "fw-%04x_%04x.hcd", + le16_to_cpu(udev->descriptor.idVendor), + le16_to_cpu(udev->descriptor.idProduct)); + if (request_firmware(&fw, (const char *) filename, &udev->dev) < 0) { + BT_INFO("can't load firmware, may not work correctly"); + return 0; + } + + err = btusb_setup_patchram_packet(hdev, 0x0c03, 1, &val); + if (err) + goto out; + + msleep(300); + err = btusb_setup_patchram_packet(hdev, 0xfc2e, 1, &val); + if (err) + goto out; + + msleep(1000); + while (pos < fw->size) { + size_t len; + len = fw->data[pos + 2] + 3; + if (pos + len > fw->size) { + err = -EINVAL; + goto out; + } + err = btusb_setup_patchram_packet(hdev, le16_to_cpu(*(u16*)(fw->data + pos)), + fw->data[pos + 2] , &fw->data[pos + 3]); + if (err) + goto out; + pos += len; + } + + err = btusb_setup_patchram_packet(hdev, 0x0c03, 1, &val); +out: + release_firmware(fw); + if (err) { + BT_INFO("fail to load firmware"); + return err; + } + BT_INFO("firmware loaded"); + return 0; +} + static int btusb_probe(struct usb_interface *intf, const struct usb_device_id *id) { @@ -1439,6 +1526,9 @@ if (id->driver_info & BTUSB_INTEL) hdev->setup = btusb_setup_intel; + if (id->driver_info & BTUSB_BCM_PATCHRAM) + hdev->setup = btusb_setup_patchram; + /* Interface numbers are hardcoded in the specification */ data->isoc = usb_ifnum_to_if(data->udev, 1); --- linux-3.13.0.orig/drivers/bluetooth/hci_h5.c +++ linux-3.13.0/drivers/bluetooth/hci_h5.c @@ -237,7 +237,7 @@ break; to_remove--; - seq = (seq - 1) % 8; + seq = (seq - 1) & 0x07; } if (seq != h5->rx_ack) @@ -406,6 +406,7 @@ H5_HDR_PKT_TYPE(hdr) != HCI_3WIRE_LINK_PKT) { BT_ERR("Non-link packet received in non-active state"); h5_reset_rx(h5); + return 0; } h5->rx_func = h5_rx_payload; --- linux-3.13.0.orig/drivers/bluetooth/hci_ldisc.c +++ linux-3.13.0/drivers/bluetooth/hci_ldisc.c @@ -118,10 +118,6 @@ int hci_uart_tx_wakeup(struct hci_uart *hu) { - struct tty_struct *tty = hu->tty; - struct hci_dev *hdev = hu->hdev; - struct sk_buff *skb; - if (test_and_set_bit(HCI_UART_SENDING, &hu->tx_state)) { set_bit(HCI_UART_TX_WAKEUP, &hu->tx_state); return 0; @@ -129,6 +125,22 @@ BT_DBG(""); + schedule_work(&hu->write_work); + + return 0; +} + +static void hci_uart_write_work(struct work_struct *work) +{ + struct hci_uart *hu = container_of(work, struct hci_uart, write_work); + struct tty_struct *tty = hu->tty; + struct hci_dev *hdev = hu->hdev; + struct sk_buff *skb; + + /* REVISIT: should we cope with bad skbs or ->write() returning + * and error value ? + */ + restart: clear_bit(HCI_UART_TX_WAKEUP, &hu->tx_state); @@ -153,7 +165,6 @@ goto restart; clear_bit(HCI_UART_SENDING, &hu->tx_state); - return 0; } static void hci_uart_init_work(struct work_struct *work) @@ -281,6 +292,7 @@ tty->receive_room = 65536; INIT_WORK(&hu->init_ready, hci_uart_init_work); + INIT_WORK(&hu->write_work, hci_uart_write_work); spin_lock_init(&hu->rx_lock); @@ -318,6 +330,8 @@ if (hdev) hci_uart_close(hdev); + cancel_work_sync(&hu->write_work); + if (test_and_clear_bit(HCI_UART_PROTO_SET, &hu->flags)) { if (hdev) { if (test_bit(HCI_UART_REGISTERED, &hu->flags)) --- linux-3.13.0.orig/drivers/bluetooth/hci_uart.h +++ linux-3.13.0/drivers/bluetooth/hci_uart.h @@ -68,6 +68,7 @@ unsigned long hdev_flags; struct work_struct init_ready; + struct work_struct write_work; struct hci_uart_proto *proto; void *priv; --- linux-3.13.0.orig/drivers/bluetooth/hci_vhci.c +++ linux-3.13.0/drivers/bluetooth/hci_vhci.c @@ -352,7 +352,7 @@ static struct miscdevice vhci_miscdev= { .name = "vhci", .fops = &vhci_fops, - .minor = MISC_DYNAMIC_MINOR, + .minor = VHCI_MINOR, }; static int __init vhci_init(void) @@ -378,3 +378,4 @@ MODULE_VERSION(VERSION); MODULE_LICENSE("GPL"); MODULE_ALIAS("devname:vhci"); +MODULE_ALIAS_MISCDEV(VHCI_MINOR); --- linux-3.13.0.orig/drivers/bus/mvebu-mbus.c +++ linux-3.13.0/drivers/bus/mvebu-mbus.c @@ -222,12 +222,6 @@ */ if ((u64)base < wend && end > wbase) return 0; - - /* - * Check if target/attribute conflicts - */ - if (target == wtarget && attr == wattr) - return 0; } return 1; --- linux-3.13.0.orig/drivers/cdrom/cdrom.c +++ linux-3.13.0/drivers/cdrom/cdrom.c @@ -289,7 +289,7 @@ /* default compatibility mode */ static bool autoclose=1; static bool autoeject; -static bool lockdoor = 1; +static bool lockdoor = 0; /* will we ever get to use this... sigh. */ static bool check_media_type; /* automatically restart mrw format */ --- linux-3.13.0.orig/drivers/char/hw_random/Kconfig +++ linux-3.13.0/drivers/char/hw_random/Kconfig @@ -352,3 +352,16 @@ module will be called msm-rng. If unsure, say Y. + +config HW_RANDOM_XGENE + tristate "APM X-Gene True Random Number Generator (TRNG) support" + depends on HW_RANDOM && ARCH_XGENE + default HW_RANDOM + ---help--- + This driver provides kernel-side support for the Random Number + Generator hardware found on APM X-Gene SoC. + + To compile this driver as a module, choose M here: the + module will be called xgene_rng. + + If unsure, say Y. --- linux-3.13.0.orig/drivers/char/hw_random/Makefile +++ linux-3.13.0/drivers/char/hw_random/Makefile @@ -30,3 +30,4 @@ obj-$(CONFIG_HW_RANDOM_TPM) += tpm-rng.o obj-$(CONFIG_HW_RANDOM_BCM2835) += bcm2835-rng.o obj-$(CONFIG_HW_RANDOM_MSM) += msm-rng.o +obj-$(CONFIG_HW_RANDOM_XGENE) += xgene-rng.o --- linux-3.13.0.orig/drivers/char/hw_random/pseries-rng.c +++ linux-3.13.0/drivers/char/hw_random/pseries-rng.c @@ -25,18 +25,21 @@ #include -static int pseries_rng_data_read(struct hwrng *rng, u32 *data) +static int pseries_rng_read(struct hwrng *rng, void *data, size_t max, bool wait) { + u64 buffer[PLPAR_HCALL_BUFSIZE]; + size_t size = max < 8 ? max : 8; int rc; - rc = plpar_hcall(H_RANDOM, (unsigned long *)data); + rc = plpar_hcall(H_RANDOM, (unsigned long *)buffer); if (rc != H_SUCCESS) { pr_err_ratelimited("H_RANDOM call failed %d\n", rc); return -EIO; } + memcpy(data, buffer, size); /* The hypervisor interface returns 64 bits */ - return 8; + return size; } /** @@ -55,7 +58,7 @@ static struct hwrng pseries_rng = { .name = KBUILD_MODNAME, - .data_read = pseries_rng_data_read, + .read = pseries_rng_read, }; static int __init pseries_rng_probe(struct vio_dev *dev, --- linux-3.13.0.orig/drivers/char/hw_random/xgene-rng.c +++ linux-3.13.0/drivers/char/hw_random/xgene-rng.c @@ -0,0 +1,423 @@ +/* + * APM X-Gene SoC RNG Driver + * + * Copyright (c) 2014, Applied Micro Circuits Corporation + * Author: Rameshwar Prasad Sahu + * Shamal Winchurkar + * Feng Kan + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define RNG_MAX_DATUM 4 +#define MAX_TRY 100 +#define XGENE_RNG_RETRY_COUNT 20 +#define XGENE_RNG_RETRY_INTERVAL 10 + +/* RNG Registers */ +#define RNG_INOUT_0 0x00 +#define RNG_INTR_STS_ACK 0x10 +#define RNG_CONTROL 0x14 +#define RNG_CONFIG 0x18 +#define RNG_ALARMCNT 0x1c +#define RNG_FROENABLE 0x20 +#define RNG_FRODETUNE 0x24 +#define RNG_ALARMMASK 0x28 +#define RNG_ALARMSTOP 0x2c +#define RNG_OPTIONS 0x78 +#define RNG_EIP_REV 0x7c + +#define MONOBIT_FAIL_MASK BIT(7) +#define POKER_FAIL_MASK BIT(6) +#define LONG_RUN_FAIL_MASK BIT(5) +#define RUN_FAIL_MASK BIT(4) +#define NOISE_FAIL_MASK BIT(3) +#define STUCK_OUT_MASK BIT(2) +#define SHUTDOWN_OFLO_MASK BIT(1) +#define READY_MASK BIT(0) + +#define MAJOR_HW_REV_RD(src) (((src) & 0x0f000000) >> 24) +#define MINOR_HW_REV_RD(src) (((src) & 0x00f00000) >> 20) +#define HW_PATCH_LEVEL_RD(src) (((src) & 0x000f0000) >> 16) +#define MAX_REFILL_CYCLES_SET(dst, src) \ + ((dst & ~0xffff0000) | (((u32)src << 16) & 0xffff0000)) +#define MIN_REFILL_CYCLES_SET(dst, src) \ + ((dst & ~0x000000ff) | (((u32)src) & 0x000000ff)) +#define ALARM_THRESHOLD_SET(dst, src) \ + ((dst & ~0x000000ff) | (((u32)src) & 0x000000ff)) +#define ENABLE_RNG_SET(dst, src) \ + ((dst & ~BIT(10)) | (((u32)src << 10) & BIT(10))) +#define REGSPEC_TEST_MODE_SET(dst, src) \ + ((dst & ~BIT(8)) | (((u32)src << 8) & BIT(8))) +#define MONOBIT_FAIL_MASK_SET(dst, src) \ + ((dst & ~BIT(7)) | (((u32)src << 7) & BIT(7))) +#define POKER_FAIL_MASK_SET(dst, src) \ + ((dst & ~BIT(6)) | (((u32)src << 6) & BIT(6))) +#define LONG_RUN_FAIL_MASK_SET(dst, src) \ + ((dst & ~BIT(5)) | (((u32)src << 5) & BIT(5))) +#define RUN_FAIL_MASK_SET(dst, src) \ + ((dst & ~BIT(4)) | (((u32)src << 4) & BIT(4))) +#define NOISE_FAIL_MASK_SET(dst, src) \ + ((dst & ~BIT(3)) | (((u32)src << 3) & BIT(3))) +#define STUCK_OUT_MASK_SET(dst, src) \ + ((dst & ~BIT(2)) | (((u32)src << 2) & BIT(2))) +#define SHUTDOWN_OFLO_MASK_SET(dst, src) \ + ((dst & ~BIT(1)) | (((u32)src << 1) & BIT(1))) + +struct xgene_rng_dev { + u32 irq; + void __iomem *csr_base; + u32 revision; + u32 datum_size; + u32 failure_cnt; /* Failure count last minute */ + unsigned long failure_ts;/* First failure timestamp */ + struct timer_list failure_timer; + struct device *dev; + struct clk *clk; +}; + +static void xgene_rng_expired_timer(unsigned long arg) +{ + struct xgene_rng_dev *ctx = (struct xgene_rng_dev *) arg; + + /* Clear failure counter as timer expired */ + disable_irq(ctx->irq); + ctx->failure_cnt = 0; + del_timer(&ctx->failure_timer); + enable_irq(ctx->irq); +} + +static void xgene_rng_start_timer(struct xgene_rng_dev *ctx) +{ + ctx->failure_timer.data = (unsigned long) ctx; + ctx->failure_timer.function = xgene_rng_expired_timer; + ctx->failure_timer.expires = jiffies + 120 * HZ; + add_timer(&ctx->failure_timer); +} + +/* + * Initialize or reinit free running oscillators (FROs) + */ +static void xgene_rng_init_fro(struct xgene_rng_dev *ctx, u32 fro_val) +{ + writel(fro_val, ctx->csr_base + RNG_FRODETUNE); + writel(0x00000000, ctx->csr_base + RNG_ALARMMASK); + writel(0x00000000, ctx->csr_base + RNG_ALARMSTOP); + writel(0xFFFFFFFF, ctx->csr_base + RNG_FROENABLE); +} + +static void xgene_rng_chk_overflow(struct xgene_rng_dev *ctx) +{ + u32 val; + + val = readl(ctx->csr_base + RNG_INTR_STS_ACK); + if (val & MONOBIT_FAIL_MASK) + /* + * LFSR detected an out-of-bounds number of 1s after + * checking 20,000 bits (test T1 as specified in the + * AIS-31 standard) + */ + dev_err(ctx->dev, "test monobit failure error 0x%08X\n", val); + if (val & POKER_FAIL_MASK) + /* + * LFSR detected an out-of-bounds value in at least one + * of the 16 poker_count_X counters or an out of bounds sum + * of squares value after checking 20,000 bits (test T2 as + * specified in the AIS-31 standard) + */ + dev_err(ctx->dev, "test poker failure error 0x%08X\n", val); + if (val & LONG_RUN_FAIL_MASK) + /* + * LFSR detected a sequence of 34 identical bits + * (test T4 as specified in the AIS-31 standard) + */ + dev_err(ctx->dev, "test long run failure error 0x%08X\n", val); + if (val & RUN_FAIL_MASK) + /* + * LFSR detected an outof-bounds value for at least one + * of the running counters after checking 20,000 bits + * (test T3 as specified in the AIS-31 standard) + */ + dev_err(ctx->dev, "test run failure error 0x%08X\n", val); + if (val & NOISE_FAIL_MASK) + /* LFSR detected a sequence of 48 identical bits */ + dev_err(ctx->dev, "noise failure error 0x%08X\n", val); + if (val & STUCK_OUT_MASK) + /* + * Detected output data registers generated same value twice + * in a row + */ + dev_err(ctx->dev, "stuck out failure error 0x%08X\n", val); + + if (val & SHUTDOWN_OFLO_MASK) { + u32 frostopped; + + /* FROs shut down after a second error event. Try recover. */ + if (++ctx->failure_cnt == 1) { + /* 1st time, just recover */ + ctx->failure_ts = jiffies; + frostopped = readl(ctx->csr_base + RNG_ALARMSTOP); + xgene_rng_init_fro(ctx, frostopped); + + /* + * We must start a timer to clear out this error + * in case the system timer wrap around + */ + xgene_rng_start_timer(ctx); + } else { + /* 2nd time failure in lesser than 1 minute? */ + if (time_after(ctx->failure_ts + 60 * HZ, jiffies)) { + dev_err(ctx->dev, + "FRO shutdown failure error 0x%08X\n", + val); + } else { + /* 2nd time failure after 1 minutes, recover */ + ctx->failure_ts = jiffies; + ctx->failure_cnt = 1; + /* + * We must start a timer to clear out this + * error in case the system timer wrap + * around + */ + xgene_rng_start_timer(ctx); + } + frostopped = readl(ctx->csr_base + RNG_ALARMSTOP); + xgene_rng_init_fro(ctx, frostopped); + } + } + /* Clear them all */ + writel(val, ctx->csr_base + RNG_INTR_STS_ACK); +} + +static irqreturn_t xgene_rng_irq_handler(int irq, void *id) +{ + struct xgene_rng_dev *ctx = (struct xgene_rng_dev *) id; + + /* RNG Alarm Counter overflow */ + xgene_rng_chk_overflow(ctx); + + return IRQ_HANDLED; +} + +static int xgene_rng_data_present(struct hwrng *rng, int wait) +{ + struct xgene_rng_dev *ctx = (struct xgene_rng_dev *) rng->priv; + u32 i, val = 0; + + for (i = 0; i < XGENE_RNG_RETRY_COUNT; i++) { + val = readl(ctx->csr_base + RNG_INTR_STS_ACK); + if ((val & READY_MASK) || !wait) + break; + udelay(XGENE_RNG_RETRY_INTERVAL); + } + + return (val & READY_MASK); +} + +static int xgene_rng_data_read(struct hwrng *rng, u32 *data) +{ + struct xgene_rng_dev *ctx = (struct xgene_rng_dev *) rng->priv; + int i; + + for (i = 0; i < ctx->datum_size; i++) + data[i] = readl(ctx->csr_base + RNG_INOUT_0 + i * 4); + + /* Clear ready bit to start next transaction */ + writel(READY_MASK, ctx->csr_base + RNG_INTR_STS_ACK); + + return ctx->datum_size << 2; +} + +static void xgene_rng_init_internal(struct xgene_rng_dev *ctx) +{ + u32 val; + + writel(0x00000000, ctx->csr_base + RNG_CONTROL); + + val = MAX_REFILL_CYCLES_SET(0, 10); + val = MIN_REFILL_CYCLES_SET(val, 10); + writel(val, ctx->csr_base + RNG_CONFIG); + + val = ALARM_THRESHOLD_SET(0, 0xFF); + writel(val, ctx->csr_base + RNG_ALARMCNT); + + xgene_rng_init_fro(ctx, 0); + + writel(MONOBIT_FAIL_MASK | + POKER_FAIL_MASK | + LONG_RUN_FAIL_MASK | + RUN_FAIL_MASK | + NOISE_FAIL_MASK | + STUCK_OUT_MASK | + SHUTDOWN_OFLO_MASK | + READY_MASK, ctx->csr_base + RNG_INTR_STS_ACK); + + val = ENABLE_RNG_SET(0, 1); + val = MONOBIT_FAIL_MASK_SET(val, 1); + val = POKER_FAIL_MASK_SET(val, 1); + val = LONG_RUN_FAIL_MASK_SET(val, 1); + val = RUN_FAIL_MASK_SET(val, 1); + val = NOISE_FAIL_MASK_SET(val, 1); + val = STUCK_OUT_MASK_SET(val, 1); + val = SHUTDOWN_OFLO_MASK_SET(val, 1); + writel(val, ctx->csr_base + RNG_CONTROL); +} + +static int xgene_rng_init(struct hwrng *rng) +{ + struct xgene_rng_dev *ctx = (struct xgene_rng_dev *) rng->priv; + + ctx->failure_cnt = 0; + init_timer(&ctx->failure_timer); + + ctx->revision = readl(ctx->csr_base + RNG_EIP_REV); + + dev_dbg(ctx->dev, "Rev %d.%d.%d\n", + MAJOR_HW_REV_RD(ctx->revision), + MINOR_HW_REV_RD(ctx->revision), + HW_PATCH_LEVEL_RD(ctx->revision)); + + dev_dbg(ctx->dev, "Options 0x%08X", + readl(ctx->csr_base + RNG_OPTIONS)); + + xgene_rng_init_internal(ctx); + + ctx->datum_size = RNG_MAX_DATUM; + + return 0; +} + +static struct hwrng xgene_rng_func = { + .name = "xgene-rng", + .init = xgene_rng_init, + .data_present = xgene_rng_data_present, + .data_read = xgene_rng_data_read, +}; + +static int xgene_rng_probe(struct platform_device *pdev) +{ + struct resource *res; + struct xgene_rng_dev *ctx; + int rc = 0; + + ctx = devm_kzalloc(&pdev->dev, sizeof(*ctx), GFP_KERNEL); + if (!ctx) + return -ENOMEM; + + ctx->dev = &pdev->dev; + platform_set_drvdata(pdev, ctx); + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + ctx->csr_base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(ctx->csr_base)) + return PTR_ERR(ctx->csr_base); + + ctx->irq = platform_get_irq(pdev, 0); + if (ctx->irq < 0) { + dev_err(&pdev->dev, "No IRQ resource\n"); + return ctx->irq; + } + + dev_dbg(&pdev->dev, "APM X-Gene RNG BASE %p ALARM IRQ %d", + ctx->csr_base, ctx->irq); + + rc = devm_request_irq(&pdev->dev, ctx->irq, xgene_rng_irq_handler, 0, + dev_name(&pdev->dev), ctx); + if (rc) { + dev_err(&pdev->dev, "Could not request RNG alarm IRQ\n"); + return rc; + } + + /* Enable IP clock */ + ctx->clk = devm_clk_get(&pdev->dev, NULL); + if (IS_ERR(ctx->clk)) { + dev_warn(&pdev->dev, "Couldn't get the clock for RNG\n"); + } else { + rc = clk_prepare_enable(ctx->clk); + if (rc) { + dev_warn(&pdev->dev, + "clock prepare enable failed for RNG"); + return rc; + } + } + + xgene_rng_func.priv = (unsigned long) ctx; + + rc = hwrng_register(&xgene_rng_func); + if (rc) { + dev_err(&pdev->dev, "RNG registering failed error %d\n", rc); + if (!IS_ERR(ctx->clk)) + clk_disable_unprepare(ctx->clk); + return rc; + } + + rc = device_init_wakeup(&pdev->dev, 1); + if (rc) { + dev_err(&pdev->dev, "RNG device_init_wakeup failed error %d\n", + rc); + if (!IS_ERR(ctx->clk)) + clk_disable_unprepare(ctx->clk); + hwrng_unregister(&xgene_rng_func); + return rc; + } + + return 0; +} + +static int xgene_rng_remove(struct platform_device *pdev) +{ + struct xgene_rng_dev *ctx = platform_get_drvdata(pdev); + int rc; + + rc = device_init_wakeup(&pdev->dev, 0); + if (rc) + dev_err(&pdev->dev, "RNG init wakeup failed error %d\n", rc); + if (!IS_ERR(ctx->clk)) + clk_disable_unprepare(ctx->clk); + hwrng_unregister(&xgene_rng_func); + + return rc; +} + +static const struct of_device_id xgene_rng_of_match[] = { + { .compatible = "apm,xgene-rng" }, + { } +}; + +MODULE_DEVICE_TABLE(of, xgene_rng_of_match); + +static struct platform_driver xgene_rng_driver = { + .probe = xgene_rng_probe, + .remove = xgene_rng_remove, + .driver = { + .name = "xgene-rng", + .of_match_table = xgene_rng_of_match, + }, +}; + +module_platform_driver(xgene_rng_driver); +MODULE_DESCRIPTION("APM X-Gene RNG driver"); +MODULE_LICENSE("GPL"); --- linux-3.13.0.orig/drivers/char/ipmi/Kconfig +++ linux-3.13.0/drivers/char/ipmi/Kconfig @@ -50,6 +50,18 @@ Currently, only KCS and SMIC are supported. If you are using IPMI, you should probably say "y" here. +config IPMI_SI_PROBE_DEFAULTS + bool 'Probe for all possible IPMI system interfaces by default' + default n + depends on IPMI_SI + help + Modern systems will usually expose IPMI interfaces via a discoverable + firmware mechanism such as ACPI or DMI. Older systems do not, and so + the driver is forced to probe hardware manually. This may cause boot + delays. Say "n" here to disable this manual probing. IPMI will then + only be available on older systems if the "ipmi_si_intf.trydefaults=1" + boot argument is passed. + config IPMI_WATCHDOG tristate 'IPMI Watchdog Timer' help --- linux-3.13.0.orig/drivers/char/ipmi/ipmi_bt_sm.c +++ linux-3.13.0/drivers/char/ipmi/ipmi_bt_sm.c @@ -201,7 +201,7 @@ } bt->state = BT_STATE_IDLE; /* start here */ bt->complete = BT_STATE_IDLE; /* end here */ - bt->BT_CAP_req2rsp = BT_NORMAL_TIMEOUT * 1000000; + bt->BT_CAP_req2rsp = BT_NORMAL_TIMEOUT * USEC_PER_SEC; bt->BT_CAP_retries = BT_NORMAL_RETRY_LIMIT; /* BT_CAP_outreqs == zero is a flag to read BT Capabilities */ return 3; /* We claim 3 bytes of space; ought to check SPMI table */ @@ -352,7 +352,7 @@ static inline int read_all_bytes(struct si_sm_data *bt) { - unsigned char i; + unsigned int i; /* * length is "framing info", minimum = 4: NetFn, Seq, Cmd, cCode. @@ -613,7 +613,7 @@ HOST2BMC(42); /* Sequence number */ HOST2BMC(3); /* Cmd == Soft reset */ BT_CONTROL(BT_H2B_ATN); - bt->timeout = BT_RESET_DELAY * 1000000; + bt->timeout = BT_RESET_DELAY * USEC_PER_SEC; BT_STATE_CHANGE(BT_STATE_RESET3, SI_SM_CALL_WITH_DELAY); @@ -651,14 +651,14 @@ bt_init_data(bt, bt->io); if ((i == 8) && !BT_CAP[2]) { bt->BT_CAP_outreqs = BT_CAP[3]; - bt->BT_CAP_req2rsp = BT_CAP[6] * 1000000; + bt->BT_CAP_req2rsp = BT_CAP[6] * USEC_PER_SEC; bt->BT_CAP_retries = BT_CAP[7]; } else printk(KERN_WARNING "IPMI BT: using default values\n"); if (!bt->BT_CAP_outreqs) bt->BT_CAP_outreqs = 1; printk(KERN_WARNING "IPMI BT: req2rsp=%ld secs retries=%d\n", - bt->BT_CAP_req2rsp / 1000000L, bt->BT_CAP_retries); + bt->BT_CAP_req2rsp / USEC_PER_SEC, bt->BT_CAP_retries); bt->timeout = bt->BT_CAP_req2rsp; return SI_SM_CALL_WITHOUT_DELAY; --- linux-3.13.0.orig/drivers/char/ipmi/ipmi_kcs_sm.c +++ linux-3.13.0/drivers/char/ipmi/ipmi_kcs_sm.c @@ -118,8 +118,8 @@ #define MAX_KCS_WRITE_SIZE IPMI_MAX_MSG_LENGTH /* Timeouts in microseconds. */ -#define IBF_RETRY_TIMEOUT 5000000 -#define OBF_RETRY_TIMEOUT 5000000 +#define IBF_RETRY_TIMEOUT (5*USEC_PER_SEC) +#define OBF_RETRY_TIMEOUT (5*USEC_PER_SEC) #define MAX_ERROR_RETRIES 10 #define ERROR0_OBF_WAIT_JIFFIES (2*HZ) --- linux-3.13.0.orig/drivers/char/ipmi/ipmi_si_intf.c +++ linux-3.13.0/drivers/char/ipmi/ipmi_si_intf.c @@ -175,6 +175,7 @@ struct si_sm_handlers *handlers; enum si_type si_type; spinlock_t si_lock; + spinlock_t msg_lock; struct list_head xmit_msgs; struct list_head hp_xmit_msgs; struct ipmi_smi_msg *curr_msg; @@ -356,6 +357,13 @@ struct timeval t; #endif + /* + * No need to save flags, we aleady have interrupts off and we + * already hold the SMI lock. + */ + if (!smi_info->run_to_completion) + spin_lock(&(smi_info->msg_lock)); + /* Pick the high priority queue first. */ if (!list_empty(&(smi_info->hp_xmit_msgs))) { entry = smi_info->hp_xmit_msgs.next; @@ -393,6 +401,9 @@ rv = SI_SM_CALL_WITHOUT_DELAY; } out: + if (!smi_info->run_to_completion) + spin_unlock(&(smi_info->msg_lock)); + return rv; } @@ -879,6 +890,19 @@ printk("**Enqueue: %d.%9.9d\n", t.tv_sec, t.tv_usec); #endif + /* + * last_timeout_jiffies is updated here to avoid + * smi_timeout() handler passing very large time_diff + * value to smi_event_handler() that causes + * the send command to abort. + */ + smi_info->last_timeout_jiffies = jiffies; + + mod_timer(&smi_info->si_timer, jiffies + SI_TIMEOUT_JIFFIES); + + if (smi_info->thread) + wake_up_process(smi_info->thread); + if (smi_info->run_to_completion) { /* * If we are running to completion, then throw it in @@ -901,26 +925,15 @@ return; } - spin_lock_irqsave(&smi_info->si_lock, flags); + spin_lock_irqsave(&smi_info->msg_lock, flags); if (priority > 0) list_add_tail(&msg->link, &smi_info->hp_xmit_msgs); else list_add_tail(&msg->link, &smi_info->xmit_msgs); + spin_unlock_irqrestore(&smi_info->msg_lock, flags); + spin_lock_irqsave(&smi_info->si_lock, flags); if (smi_info->si_state == SI_NORMAL && smi_info->curr_msg == NULL) { - /* - * last_timeout_jiffies is updated here to avoid - * smi_timeout() handler passing very large time_diff - * value to smi_event_handler() that causes - * the send command to abort. - */ - smi_info->last_timeout_jiffies = jiffies; - - mod_timer(&smi_info->si_timer, jiffies + SI_TIMEOUT_JIFFIES); - - if (smi_info->thread) - wake_up_process(smi_info->thread); - start_next_msg(smi_info); smi_event_handler(smi_info, 0); } @@ -1024,19 +1037,16 @@ static void poll(void *send_info) { struct smi_info *smi_info = send_info; - unsigned long flags = 0; - int run_to_completion = smi_info->run_to_completion; + unsigned long flags; /* * Make sure there is some delay in the poll loop so we can * drive time forward and timeout things. */ udelay(10); - if (!run_to_completion) - spin_lock_irqsave(&smi_info->si_lock, flags); + spin_lock_irqsave(&smi_info->si_lock, flags); smi_event_handler(smi_info, 10); - if (!run_to_completion) - spin_unlock_irqrestore(&smi_info->si_lock, flags); + spin_unlock_irqrestore(&smi_info->si_lock, flags); } static void request_events(void *send_info) @@ -1230,7 +1240,7 @@ #ifdef CONFIG_PCI static bool si_trypci = 1; #endif -static bool si_trydefaults = 1; +static bool si_trydefaults = IS_ENABLED(CONFIG_IPMI_SI_PROBE_DEFAULTS); static char *si_type[SI_MAX_PARMS]; #define MAX_SI_TYPE_STR 30 static char si_type_str[MAX_SI_TYPE_STR]; @@ -1358,7 +1368,7 @@ if (info->si_type == SI_BT) { rv = request_irq(info->irq, si_bt_irq_handler, - IRQF_SHARED | IRQF_DISABLED, + IRQF_SHARED, DEVICE_NAME, info); if (!rv) @@ -1368,7 +1378,7 @@ } else rv = request_irq(info->irq, si_irq_handler, - IRQF_SHARED | IRQF_DISABLED, + IRQF_SHARED, DEVICE_NAME, info); if (rv) { @@ -1702,8 +1712,10 @@ { struct smi_info *info = kzalloc(sizeof(*info), GFP_KERNEL); - if (info) + if (info) { spin_lock_init(&info->si_lock); + spin_lock_init(&info->msg_lock); + } return info; } @@ -1849,11 +1861,15 @@ info->irq_setup = std_irq_setup; info->slave_addr = ipmb; - if (!add_smi(info)) { - if (try_smi_init(info)) - cleanup_one_si(info); - } else { + rv = add_smi(info); + if (rv) { kfree(info); + goto out; + } + rv = try_smi_init(info); + if (rv) { + cleanup_one_si(info); + goto out; } } else { /* remove */ @@ -2067,6 +2083,7 @@ static int try_init_spmi(struct SPMITable *spmi) { struct smi_info *info; + int rv; if (spmi->IPMIlegacy != 1) { printk(KERN_INFO PFX "Bad SPMI legacy %d\n", spmi->IPMIlegacy); @@ -2141,10 +2158,11 @@ info->io.addr_data, info->io.regsize, info->io.regspacing, info->irq); - if (add_smi(info)) + rv = add_smi(info); + if (rv) kfree(info); - return 0; + return rv; } static void spmi_find_bmc(void) @@ -2178,6 +2196,7 @@ acpi_handle handle; acpi_status status; unsigned long long tmp; + int rv; acpi_dev = pnp_acpi_device(dev); if (!acpi_dev) @@ -2259,10 +2278,11 @@ res, info->io.regsize, info->io.regspacing, info->irq); - if (add_smi(info)) - goto err_free; + rv = add_smi(info); + if (rv) + kfree(info); - return 0; + return rv; err_free: kfree(info); @@ -2566,16 +2586,20 @@ &pdev->resource[0], info->io.regsize, info->io.regspacing, info->irq); - if (add_smi(info)) + rv = add_smi(info); + if (rv) { kfree(info); + pci_disable_device(pdev); + } - return 0; + return rv; } static void ipmi_pci_remove(struct pci_dev *pdev) { struct smi_info *info = pci_get_drvdata(pdev); cleanup_one_si(info); + pci_disable_device(pdev); } static struct pci_device_id ipmi_pci_devices[] = { @@ -2670,9 +2694,10 @@ dev_set_drvdata(&dev->dev, info); - if (add_smi(info)) { + ret = add_smi(info); + if (ret) { kfree(info); - return -EBUSY; + return ret; } #endif return 0; @@ -2711,6 +2736,7 @@ static int ipmi_parisc_probe(struct parisc_device *dev) { struct smi_info *info; + int rv; info = smi_info_alloc(); @@ -2736,9 +2762,10 @@ dev_set_drvdata(&dev->dev, info); - if (add_smi(info)) { + rv = add_smi(info); + if (rv) { kfree(info); - return -EBUSY; + return rv; } return 0; @@ -2773,7 +2800,7 @@ smi_result == SI_SM_CALL_WITH_TICK_DELAY) { schedule_timeout_uninterruptible(1); smi_result = smi_info->handlers->event( - smi_info->si_sm, 100); + smi_info->si_sm, jiffies_to_usecs(1)); } else if (smi_result == SI_SM_CALL_WITHOUT_DELAY) { smi_result = smi_info->handlers->event( smi_info->si_sm, 0); --- linux-3.13.0.orig/drivers/char/ipmi/ipmi_smic_sm.c +++ linux-3.13.0/drivers/char/ipmi/ipmi_smic_sm.c @@ -80,7 +80,7 @@ #define SMIC_MAX_ERROR_RETRIES 3 /* Timeouts in microseconds. */ -#define SMIC_RETRY_TIMEOUT 2000000 +#define SMIC_RETRY_TIMEOUT (2*USEC_PER_SEC) /* SMIC Flags Register Bits */ #define SMIC_RX_DATA_READY 0x80 --- linux-3.13.0.orig/drivers/char/random.c +++ linux-3.13.0/drivers/char/random.c @@ -1063,8 +1063,8 @@ * pool while mixing, and hash one final time. */ sha_transform(hash.w, extract, workspace); - memset(extract, 0, sizeof(extract)); - memset(workspace, 0, sizeof(workspace)); + memzero_explicit(extract, sizeof(extract)); + memzero_explicit(workspace, sizeof(workspace)); /* * In case the hash function has some recognizable output @@ -1076,7 +1076,7 @@ hash.w[2] ^= rol32(hash.w[2], 16); memcpy(out, &hash, EXTRACT_SIZE); - memset(&hash, 0, sizeof(hash)); + memzero_explicit(&hash, sizeof(hash)); } static ssize_t extract_entropy(struct entropy_store *r, void *buf, @@ -1124,7 +1124,7 @@ } /* Wipe data just returned from memory */ - memset(tmp, 0, sizeof(tmp)); + memzero_explicit(tmp, sizeof(tmp)); return ret; } @@ -1162,7 +1162,7 @@ } /* Wipe data just returned from memory */ - memset(tmp, 0, sizeof(tmp)); + memzero_explicit(tmp, sizeof(tmp)); return ret; } --- linux-3.13.0.orig/drivers/char/raw.c +++ linux-3.13.0/drivers/char/raw.c @@ -190,7 +190,7 @@ struct raw_device_data *rawdev; struct block_device *bdev; - if (number <= 0 || number >= MAX_RAW_MINORS) + if (number <= 0 || number >= max_raw_minors) return -EINVAL; rawdev = &raw_devices[number]; --- linux-3.13.0.orig/drivers/char/tpm/tpm-interface.c +++ linux-3.13.0/drivers/char/tpm/tpm-interface.c @@ -1400,13 +1400,13 @@ int err, total = 0, retries = 5; u8 *dest = out; + if (!out || !num_bytes || max > TPM_MAX_RNG_DATA) + return -EINVAL; + chip = tpm_chip_find_get(chip_num); if (chip == NULL) return -ENODEV; - if (!out || !num_bytes || max > TPM_MAX_RNG_DATA) - return -EINVAL; - do { tpm_cmd.header.in = tpm_getrandom_header; tpm_cmd.params.getrandom_in.num_bytes = cpu_to_be32(num_bytes); @@ -1425,6 +1425,7 @@ num_bytes -= recd; } while (retries-- && total < max); + tpm_chip_put(chip); return total ? total : -EIO; } EXPORT_SYMBOL_GPL(tpm_get_random); --- linux-3.13.0.orig/drivers/char/tpm/tpm_i2c_stm_st33.c +++ linux-3.13.0/drivers/char/tpm/tpm_i2c_stm_st33.c @@ -410,6 +410,8 @@ &chip->vendor.read_queue) == 0) { burstcnt = get_burstcount(chip); + if (burstcnt < 0) + return burstcnt; len = min_t(int, burstcnt, count - size); I2C_READ_DATA(client, TPM_DATA_FIFO, buf + size, len); size += len; @@ -451,7 +453,8 @@ static int tpm_stm_i2c_send(struct tpm_chip *chip, unsigned char *buf, size_t len) { - u32 status, burstcnt = 0, i, size; + u32 status, i, size; + int burstcnt = 0; int ret; u8 data; struct i2c_client *client; @@ -482,6 +485,8 @@ for (i = 0; i < len - 1;) { burstcnt = get_burstcount(chip); + if (burstcnt < 0) + return burstcnt; size = min_t(int, len - i - 1, burstcnt); ret = I2C_WRITE_DATA(client, TPM_DATA_FIFO, buf, size); if (ret < 0) @@ -745,6 +750,7 @@ } tpm_get_timeouts(chip); + tpm_do_selftest(chip); dev_info(chip->dev, "TPM I2C Initialized\n"); return 0; --- linux-3.13.0.orig/drivers/char/tpm/tpm_ppi.c +++ linux-3.13.0/drivers/char/tpm/tpm_ppi.c @@ -172,7 +172,7 @@ * is updated with function index from SUBREQ to SUBREQ2 since PPI * version 1.1 */ - if (strcmp(version, "1.1") == -1) + if (strcmp(version, "1.1") < 0) params[2].integer.value = TPM_PPI_FN_SUBREQ; else params[2].integer.value = TPM_PPI_FN_SUBREQ2; @@ -182,7 +182,7 @@ * string/package type. For PPI version 1.0 and 1.1, use buffer type * for compatibility, and use package type since 1.2 according to spec. */ - if (strcmp(version, "1.2") == -1) { + if (strcmp(version, "1.2") < 0) { params[3].type = ACPI_TYPE_BUFFER; params[3].buffer.length = sizeof(req); sscanf(buf, "%d", &req); @@ -248,7 +248,7 @@ * (e.g. Capella with PPI 1.0) need integer/string/buffer type, so for * compatibility, define params[3].type as buffer, if PPI version < 1.2 */ - if (strcmp(version, "1.2") == -1) { + if (strcmp(version, "1.2") < 0) { params[3].type = ACPI_TYPE_BUFFER; params[3].buffer.length = 0; params[3].buffer.pointer = NULL; @@ -390,7 +390,7 @@ kfree(output.pointer); output.length = ACPI_ALLOCATE_BUFFER; output.pointer = NULL; - if (strcmp(version, "1.2") == -1) + if (strcmp(version, "1.2") < 0) return -EPERM; params[2].integer.value = TPM_PPI_FN_GETOPR; --- linux-3.13.0.orig/drivers/char/tpm/xen-tpmfront.c +++ linux-3.13.0/drivers/char/tpm/xen-tpmfront.c @@ -17,6 +17,7 @@ #include #include #include "tpm.h" +#include struct tpm_private { struct tpm_chip *chip; @@ -421,6 +422,9 @@ if (!xen_domain()) return -ENODEV; + if (!xen_has_pv_devices()) + return -ENODEV; + return xenbus_register_frontend(&tpmfront_driver); } module_init(xen_tpmfront_init); --- linux-3.13.0.orig/drivers/clk/clk-s2mps11.c +++ linux-3.13.0/drivers/clk/clk-s2mps11.c @@ -130,7 +130,7 @@ int i; if (!iodev->dev->of_node) - return NULL; + return ERR_PTR(-EINVAL); clk_np = of_find_node_by_name(iodev->dev->of_node, "clocks"); if (!clk_np) { @@ -190,16 +190,13 @@ goto err_reg; } - s2mps11_clk->lookup = devm_kzalloc(&pdev->dev, - sizeof(struct clk_lookup), GFP_KERNEL); + s2mps11_clk->lookup = clkdev_alloc(s2mps11_clk->clk, + s2mps11_name(s2mps11_clk), NULL); if (!s2mps11_clk->lookup) { ret = -ENOMEM; goto err_lup; } - s2mps11_clk->lookup->con_id = s2mps11_name(s2mps11_clk); - s2mps11_clk->lookup->clk = s2mps11_clk->clk; - clkdev_add(s2mps11_clk->lookup); } --- linux-3.13.0.orig/drivers/clk/clk.c +++ linux-3.13.0/drivers/clk/clk.c @@ -1819,9 +1819,28 @@ } EXPORT_SYMBOL_GPL(__clk_register); -static int _clk_register(struct device *dev, struct clk_hw *hw, struct clk *clk) +/** + * clk_register - allocate a new clock, register it and return an opaque cookie + * @dev: device that is registering this clock + * @hw: link to hardware-specific clock data + * + * clk_register is the primary interface for populating the clock tree with new + * clock nodes. It returns a pointer to the newly allocated struct clk which + * cannot be dereferenced by driver code but may be used in conjuction with the + * rest of the clock API. In the event of an error clk_register will return an + * error code; drivers must test for an error code after calling clk_register. + */ +struct clk *clk_register(struct device *dev, struct clk_hw *hw) { int i, ret; + struct clk *clk; + + clk = kzalloc(sizeof(*clk), GFP_KERNEL); + if (!clk) { + pr_err("%s: could not allocate clk\n", __func__); + ret = -ENOMEM; + goto fail_out; + } clk->name = kstrdup(hw->init->name, GFP_KERNEL); if (!clk->name) { @@ -1859,7 +1878,7 @@ ret = __clk_init(dev, clk); if (!ret) - return 0; + return clk; fail_parent_names_copy: while (--i >= 0) @@ -1868,36 +1887,6 @@ fail_parent_names: kfree(clk->name); fail_name: - return ret; -} - -/** - * clk_register - allocate a new clock, register it and return an opaque cookie - * @dev: device that is registering this clock - * @hw: link to hardware-specific clock data - * - * clk_register is the primary interface for populating the clock tree with new - * clock nodes. It returns a pointer to the newly allocated struct clk which - * cannot be dereferenced by driver code but may be used in conjuction with the - * rest of the clock API. In the event of an error clk_register will return an - * error code; drivers must test for an error code after calling clk_register. - */ -struct clk *clk_register(struct device *dev, struct clk_hw *hw) -{ - int ret; - struct clk *clk; - - clk = kzalloc(sizeof(*clk), GFP_KERNEL); - if (!clk) { - pr_err("%s: could not allocate clk\n", __func__); - ret = -ENOMEM; - goto fail_out; - } - - ret = _clk_register(dev, hw, clk); - if (!ret) - return clk; - kfree(clk); fail_out: return ERR_PTR(ret); @@ -1915,7 +1904,7 @@ static void devm_clk_release(struct device *dev, void *res) { - clk_unregister(res); + clk_unregister(*(struct clk **)res); } /** @@ -1930,18 +1919,18 @@ struct clk *devm_clk_register(struct device *dev, struct clk_hw *hw) { struct clk *clk; - int ret; + struct clk **clkp; - clk = devres_alloc(devm_clk_release, sizeof(*clk), GFP_KERNEL); - if (!clk) + clkp = devres_alloc(devm_clk_release, sizeof(*clkp), GFP_KERNEL); + if (!clkp) return ERR_PTR(-ENOMEM); - ret = _clk_register(dev, hw, clk); - if (!ret) { - devres_add(dev, clk); + clk = clk_register(dev, hw); + if (!IS_ERR(clk)) { + *clkp = clk; + devres_add(dev, clkp); } else { - devres_free(clk); - clk = ERR_PTR(ret); + devres_free(clkp); } return clk; --- linux-3.13.0.orig/drivers/clk/spear/spear3xx_clock.c +++ linux-3.13.0/drivers/clk/spear/spear3xx_clock.c @@ -211,7 +211,7 @@ /* array of all spear 320 clock lookups */ #ifdef CONFIG_MACH_SPEAR320 -#define SPEAR320_CONTROL_REG (soc_config_base + 0x0000) +#define SPEAR320_CONTROL_REG (soc_config_base + 0x0010) #define SPEAR320_EXT_CTRL_REG (soc_config_base + 0x0018) #define SPEAR320_UARTX_PCLK_MASK 0x1 --- linux-3.13.0.orig/drivers/clk/tegra/clk-pll.c +++ linux-3.13.0/drivers/clk/tegra/clk-pll.c @@ -1587,12 +1587,14 @@ val_aux = pll_readl(pll_params->aux_reg, pll); if (val & PLL_BASE_ENABLE) { - if (!(val_aux & PLLE_AUX_PLLRE_SEL)) + if ((val_aux & PLLE_AUX_PLLRE_SEL) || + (val_aux & PLLE_AUX_PLLP_SEL)) WARN(1, "pll_e enabled with unsupported parent %s\n", - (val & PLLE_AUX_PLLP_SEL) ? "pllp_out0" : "pll_ref"); + (val_aux & PLLE_AUX_PLLP_SEL) ? "pllp_out0" : + "pll_re_vco"); } else { - val_aux |= PLLE_AUX_PLLRE_SEL; - pll_writel(val, pll_params->aux_reg, pll); + val_aux &= ~(PLLE_AUX_PLLRE_SEL | PLLE_AUX_PLLP_SEL); + pll_writel(val_aux, pll_params->aux_reg, pll); } clk = _tegra_clk_register_pll(pll, name, parent_name, flags, --- linux-3.13.0.orig/drivers/clk/tegra/clk-tegra114.c +++ linux-3.13.0/drivers/clk/tegra/clk-tegra114.c @@ -673,6 +673,7 @@ /* PLLE special case: use cpcon field to store cml divider value */ {336000000, 100000000, 100, 21, 16, 11}, {312000000, 100000000, 200, 26, 24, 13}, + {12000000, 100000000, 200, 1, 24, 13}, {0, 0, 0, 0, 0, 0}, }; @@ -1501,7 +1502,7 @@ clks[pll_re_out] = clk; /* PLLE */ - clk = tegra_clk_register_plle_tegra114("pll_e_out0", "pll_re_vco", + clk = tegra_clk_register_plle_tegra114("pll_e_out0", "pll_ref", clk_base, 0, 100000000, &pll_e_params, pll_e_freq_table, NULL); clk_register_clkdev(clk, "pll_e_out0", NULL); --- linux-3.13.0.orig/drivers/clocksource/arm_arch_timer.c +++ linux-3.13.0/drivers/clocksource/arm_arch_timer.c @@ -426,10 +426,14 @@ u64 start_count; /* Register the CP15 based counter if we have one */ - if (type & ARCH_CP15_TIMER) - arch_timer_read_counter = arch_counter_get_cntvct; - else + if (type & ARCH_CP15_TIMER) { + if (IS_ENABLED(CONFIG_ARM64) || arch_timer_use_virtual) + arch_timer_read_counter = arch_counter_get_cntvct; + else + arch_timer_read_counter = arch_counter_get_cntpct; + } else { arch_timer_read_counter = arch_counter_get_cntvct_mem; + } start_count = arch_timer_read_counter(); clocksource_register_hz(&clocksource_counter, arch_timer_rate); --- linux-3.13.0.orig/drivers/clocksource/exynos_mct.c +++ linux-3.13.0/drivers/clocksource/exynos_mct.c @@ -414,8 +414,6 @@ evt->set_mode = exynos4_tick_set_mode; evt->features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT; evt->rating = 450; - clockevents_config_and_register(evt, clk_rate / (TICK_BASE_CNT + 1), - 0xf, 0x7fffffff); exynos4_mct_write(TICK_BASE_CNT, mevt->base + MCT_L_TCNTB_OFFSET); @@ -428,9 +426,12 @@ evt->irq); return -EIO; } + irq_force_affinity(mct_irqs[MCT_L0_IRQ + cpu], cpumask_of(cpu)); } else { enable_percpu_irq(mct_irqs[MCT_L0_IRQ], 0); } + clockevents_config_and_register(evt, clk_rate / (TICK_BASE_CNT + 1), + 0xf, 0x7fffffff); return 0; } @@ -448,7 +449,6 @@ unsigned long action, void *hcpu) { struct mct_clock_event_device *mevt; - unsigned int cpu; /* * Grab cpu pointer in each case to avoid spurious @@ -459,12 +459,6 @@ mevt = this_cpu_ptr(&percpu_mct_tick); exynos4_local_timer_setup(&mevt->evt); break; - case CPU_ONLINE: - cpu = (unsigned long)hcpu; - if (mct_int_type == MCT_INT_SPI) - irq_set_affinity(mct_irqs[MCT_L0_IRQ + cpu], - cpumask_of(cpu)); - break; case CPU_DYING: mevt = this_cpu_ptr(&percpu_mct_tick); exynos4_local_timer_stop(&mevt->evt); --- linux-3.13.0.orig/drivers/clocksource/sun4i_timer.c +++ linux-3.13.0/drivers/clocksource/sun4i_timer.c @@ -182,6 +182,11 @@ /* Make sure timer is stopped before playing with interrupts */ sun4i_clkevt_time_stop(0); + sun4i_clockevent.cpumask = cpumask_of(0); + + clockevents_config_and_register(&sun4i_clockevent, rate, + TIMER_SYNC_TICKS, 0xffffffff); + ret = setup_irq(irq, &sun4i_timer_irq); if (ret) pr_warn("failed to setup irq %d\n", irq); @@ -189,11 +194,6 @@ /* Enable timer0 interrupt */ val = readl(timer_base + TIMER_IRQ_EN_REG); writel(val | TIMER_IRQ_EN(0), timer_base + TIMER_IRQ_EN_REG); - - sun4i_clockevent.cpumask = cpumask_of(0); - - clockevents_config_and_register(&sun4i_clockevent, rate, - TIMER_SYNC_TICKS, 0xffffffff); } CLOCKSOURCE_OF_DECLARE(sun4i, "allwinner,sun4i-timer", sun4i_timer_init); --- linux-3.13.0.orig/drivers/clocksource/vf_pit_timer.c +++ linux-3.13.0/drivers/clocksource/vf_pit_timer.c @@ -54,7 +54,7 @@ static u64 pit_read_sched_clock(void) { - return __raw_readl(clksrc_base + PITCVAL); + return ~__raw_readl(clksrc_base + PITCVAL); } static int __init pit_clocksource_init(unsigned long rate) --- linux-3.13.0.orig/drivers/connector/cn_proc.c +++ linux-3.13.0/drivers/connector/cn_proc.c @@ -369,7 +369,7 @@ return; /* Can only change if privileged. */ - if (!capable(CAP_NET_ADMIN)) { + if (!__netlink_ns_capable(nsp, &init_user_ns, CAP_NET_ADMIN)) { err = EPERM; goto out; } --- linux-3.13.0.orig/drivers/cpufreq/Kconfig.powerpc +++ linux-3.13.0/drivers/cpufreq/Kconfig.powerpc @@ -54,3 +54,11 @@ help This adds the support for frequency switching on PA Semi PWRficient processors. + +config POWERNV_CPUFREQ + tristate "CPU frequency scaling for IBM POWERNV platform" + depends on PPC_POWERNV + default y + help + This adds support for CPU frequency switching on IBM POWERNV + platform --- linux-3.13.0.orig/drivers/cpufreq/Makefile +++ linux-3.13.0/drivers/cpufreq/Makefile @@ -47,7 +47,7 @@ # LITTLE drivers, so that it is probed last. obj-$(CONFIG_ARM_DT_BL_CPUFREQ) += arm_big_little_dt.o -obj-$(CONFIG_ARCH_DAVINCI_DA850) += davinci-cpufreq.o +obj-$(CONFIG_ARCH_DAVINCI) += davinci-cpufreq.o obj-$(CONFIG_UX500_SOC_DB8500) += dbx500-cpufreq.o obj-$(CONFIG_ARM_EXYNOS_CPUFREQ) += exynos-cpufreq.o obj-$(CONFIG_ARM_EXYNOS4210_CPUFREQ) += exynos4210-cpufreq.o @@ -86,6 +86,7 @@ obj-$(CONFIG_CPU_FREQ_PMAC) += pmac32-cpufreq.o obj-$(CONFIG_CPU_FREQ_PMAC64) += pmac64-cpufreq.o obj-$(CONFIG_PPC_PASEMI_CPUFREQ) += pasemi-cpufreq.o +obj-$(CONFIG_POWERNV_CPUFREQ) += powernv-cpufreq.o ################################################################################## # Other platform drivers --- linux-3.13.0.orig/drivers/cpufreq/cpufreq-cpu0.c +++ linux-3.13.0/drivers/cpufreq/cpufreq-cpu0.c @@ -131,7 +131,7 @@ return -ENOENT; } - cpu_reg = devm_regulator_get_optional(cpu_dev, "cpu0"); + cpu_reg = regulator_get_optional(cpu_dev, "cpu0"); if (IS_ERR(cpu_reg)) { /* * If cpu0 regulator supply node is present, but regulator is @@ -146,23 +146,23 @@ PTR_ERR(cpu_reg)); } - cpu_clk = devm_clk_get(cpu_dev, NULL); + cpu_clk = clk_get(cpu_dev, NULL); if (IS_ERR(cpu_clk)) { ret = PTR_ERR(cpu_clk); pr_err("failed to get cpu0 clock: %d\n", ret); - goto out_put_node; + goto out_put_reg; } ret = of_init_opp_table(cpu_dev); if (ret) { pr_err("failed to init OPP table: %d\n", ret); - goto out_put_node; + goto out_put_clk; } ret = dev_pm_opp_init_cpufreq_table(cpu_dev, &freq_table); if (ret) { pr_err("failed to init cpufreq table: %d\n", ret); - goto out_put_node; + goto out_put_clk; } of_property_read_u32(np, "voltage-tolerance", &voltage_tolerance); @@ -206,6 +206,12 @@ out_free_table: dev_pm_opp_free_cpufreq_table(cpu_dev, &freq_table); +out_put_clk: + if (!IS_ERR(cpu_clk)) + clk_put(cpu_clk); +out_put_reg: + if (!IS_ERR(cpu_reg)) + regulator_put(cpu_reg); out_put_node: of_node_put(np); return ret; --- linux-3.13.0.orig/drivers/cpufreq/cpufreq.c +++ linux-3.13.0/drivers/cpufreq/cpufreq.c @@ -405,7 +405,18 @@ show_one(cpuinfo_transition_latency, cpuinfo.transition_latency); show_one(scaling_min_freq, min); show_one(scaling_max_freq, max); -show_one(scaling_cur_freq, cur); + +static ssize_t show_scaling_cur_freq( + struct cpufreq_policy *policy, char *buf) +{ + ssize_t ret; + + if (cpufreq_driver && cpufreq_driver->setpolicy && cpufreq_driver->get) + ret = sprintf(buf, "%u\n", cpufreq_driver->get(policy->cpu)); + else + ret = sprintf(buf, "%u\n", policy->cur); + return ret; +} static int cpufreq_set_policy(struct cpufreq_policy *policy, struct cpufreq_policy *new_policy); @@ -799,11 +810,11 @@ if (ret) goto err_out_kobj_put; } - if (has_target()) { - ret = sysfs_create_file(&policy->kobj, &scaling_cur_freq.attr); - if (ret) - goto err_out_kobj_put; - } + + ret = sysfs_create_file(&policy->kobj, &scaling_cur_freq.attr); + if (ret) + goto err_out_kobj_put; + if (cpufreq_driver->bios_limit) { ret = sysfs_create_file(&policy->kobj, &bios_limit.attr); if (ret) @@ -1031,10 +1042,12 @@ * the creation of a brand new one. So we need to perform this update * by invoking update_policy_cpu(). */ - if (frozen && cpu != policy->cpu) + if (frozen && cpu != policy->cpu) { update_policy_cpu(policy, cpu); - else + WARN_ON(kobject_move(&policy->kobj, &dev->kobj)); + } else { policy->cpu = cpu; + } policy->governor = CPUFREQ_DEFAULT_GOVERNOR; cpumask_copy(policy->cpus, cpumask_of(cpu)); @@ -1051,7 +1064,7 @@ goto err_set_policy_cpu; } - if (cpufreq_driver->get) { + if (cpufreq_driver->get && !cpufreq_driver->setpolicy) { policy->cur = cpufreq_driver->get(policy->cpu); if (!policy->cur) { pr_err("%s: ->get() failed\n", __func__); @@ -1447,23 +1460,16 @@ */ unsigned int cpufreq_get(unsigned int cpu) { - struct cpufreq_policy *policy = per_cpu(cpufreq_cpu_data, cpu); + struct cpufreq_policy *policy = cpufreq_cpu_get(cpu); unsigned int ret_freq = 0; - if (cpufreq_disabled() || !cpufreq_driver) - return -ENOENT; - - BUG_ON(!policy); - - if (!down_read_trylock(&cpufreq_rwsem)) - return 0; - - down_read(&policy->rwsem); - - ret_freq = __cpufreq_get(cpu); + if (policy) { + down_read(&policy->rwsem); + ret_freq = __cpufreq_get(cpu); + up_read(&policy->rwsem); - up_read(&policy->rwsem); - up_read(&cpufreq_rwsem); + cpufreq_cpu_put(policy); + } return ret_freq; } @@ -2058,7 +2064,7 @@ * BIOS might change freq behind our back * -> ask driver for current freq and notify governors about a change */ - if (cpufreq_driver->get) { + if (cpufreq_driver->get && !cpufreq_driver->setpolicy) { new_policy.cur = cpufreq_driver->get(cpu); if (!policy->cur) { pr_debug("Driver did not initialize current freq"); @@ -2123,6 +2129,20 @@ * REGISTER / UNREGISTER CPUFREQ DRIVER * *********************************************************************/ +static char cpufreq_driver_name[CPUFREQ_NAME_LEN]; + +static int __init cpufreq_driver_setup(char *str) +{ + strlcpy(cpufreq_driver_name, str, CPUFREQ_NAME_LEN); + return 1; +} + +/* + * Set this name to only allow one specific cpu freq driver, e.g., + * cpufreq_driver=powernow-k8 + */ +__setup("cpufreq_driver=", cpufreq_driver_setup); + /** * cpufreq_register_driver - register a CPU Frequency driver * @driver_data: A struct cpufreq_driver containing the values# @@ -2146,7 +2166,13 @@ driver_data->target)) return -EINVAL; - pr_debug("trying to register driver %s\n", driver_data->name); + pr_debug("trying to register driver %s, cpufreq_driver=%s\n", + driver_data->name, cpufreq_driver_name); + + if (cpufreq_driver_name[0]) + if (!driver_data->name || + strcmp(cpufreq_driver_name, driver_data->name)) + return -EINVAL; if (driver_data->setpolicy) driver_data->flags |= CPUFREQ_CONST_LOOPS; --- linux-3.13.0.orig/drivers/cpufreq/cpufreq_governor.c +++ linux-3.13.0/drivers/cpufreq/cpufreq_governor.c @@ -362,6 +362,11 @@ break; case CPUFREQ_GOV_LIMITS: + mutex_lock(&dbs_data->mutex); + if (!cpu_cdbs->cur_policy) { + mutex_unlock(&dbs_data->mutex); + break; + } mutex_lock(&cpu_cdbs->timer_mutex); if (policy->max < cpu_cdbs->cur_policy->cur) __cpufreq_driver_target(cpu_cdbs->cur_policy, @@ -371,6 +376,7 @@ policy->min, CPUFREQ_RELATION_L); dbs_check_cpu(dbs_data, cpu); mutex_unlock(&cpu_cdbs->timer_mutex); + mutex_unlock(&dbs_data->mutex); break; } return 0; --- linux-3.13.0.orig/drivers/cpufreq/integrator-cpufreq.c +++ linux-3.13.0/drivers/cpufreq/integrator-cpufreq.c @@ -212,9 +212,9 @@ return cpufreq_register_driver(&integrator_driver); } -static void __exit integrator_cpufreq_remove(struct platform_device *pdev) +static int __exit integrator_cpufreq_remove(struct platform_device *pdev) { - cpufreq_unregister_driver(&integrator_driver); + return cpufreq_unregister_driver(&integrator_driver); } static const struct of_device_id integrator_cpufreq_match[] = { --- linux-3.13.0.orig/drivers/cpufreq/intel_pstate.c +++ linux-3.13.0/drivers/cpufreq/intel_pstate.c @@ -34,11 +34,16 @@ #define SAMPLE_COUNT 3 -#define BYT_RATIOS 0x66a +#define BYT_RATIOS 0x66a +#define BYT_VIDS 0x66b +#define BYT_TURBO_RATIOS 0x66c +#define BYT_TURBO_VIDS 0x66d -#define FRAC_BITS 8 + +#define FRAC_BITS 6 #define int_tofp(X) ((int64_t)(X) << FRAC_BITS) #define fp_toint(X) ((X) >> FRAC_BITS) +#define FP_ROUNDUP(X) ((X) += 1 << FRAC_BITS) static inline int32_t mul_fp(int32_t x, int32_t y) { @@ -50,10 +55,24 @@ return div_s64((int64_t)x << FRAC_BITS, (int64_t)y); } +static u64 energy_divisor; + +static inline int ceiling_fp(int32_t x) +{ + int mask, ret; + + ret = fp_toint(x); + mask = (1 << FRAC_BITS) - 1; + if (x & mask) + ret += 1; + return ret; +} + struct sample { int32_t core_pct_busy; u64 aperf; u64 mperf; + unsigned long long tsc; int freq; }; @@ -61,9 +80,17 @@ int current_pstate; int min_pstate; int max_pstate; + int scaling; int turbo_pstate; }; +struct vid_data { + int min; + int max; + int turbo; + int32_t ratio; +}; + struct _pid { int setpoint; int32_t integral; @@ -82,12 +109,12 @@ struct timer_list timer; struct pstate_data pstate; + struct vid_data vid; struct _pid pid; - int min_pstate_count; - u64 prev_aperf; u64 prev_mperf; + unsigned long long prev_tsc; int sample_ptr; struct sample samples[SAMPLE_COUNT]; }; @@ -106,7 +133,9 @@ int (*get_max)(void); int (*get_min)(void); int (*get_turbo)(void); - void (*set)(int pstate); + int (*get_scaling)(void); + void (*set)(struct cpudata*, int pstate); + void (*get_vid)(struct cpudata *); }; struct cpu_defaults { @@ -119,6 +148,7 @@ struct perf_limits { int no_turbo; + int turbo_disabled; int max_perf_pct; int min_perf_pct; int32_t max_perf; @@ -129,6 +159,7 @@ static struct perf_limits limits = { .no_turbo = 0, + .turbo_disabled = 0, .max_perf_pct = 100, .max_perf = int_tofp(1), .min_perf_pct = 0, @@ -213,6 +244,18 @@ } } +static inline void update_turbo_state(void) +{ + u64 misc_en; + struct cpudata *cpu; + + cpu = all_cpu_data[0]; + rdmsrl(MSR_IA32_MISC_ENABLE, misc_en); + limits.turbo_disabled = + (misc_en & MSR_IA32_MISC_ENABLE_TURBO_DISABLE || + cpu->pstate.max_pstate == cpu->pstate.turbo_pstate); +} + /************************** debugfs begin ************************/ static int pid_param_set(void *data, u64 val) { @@ -269,6 +312,20 @@ return sprintf(buf, "%u\n", limits.object); \ } +static ssize_t show_no_turbo(struct kobject *kobj, + struct attribute *attr, char *buf) +{ + ssize_t ret; + + update_turbo_state(); + if (limits.turbo_disabled) + ret = sprintf(buf, "%u\n", limits.turbo_disabled); + else + ret = sprintf(buf, "%u\n", limits.no_turbo); + + return ret; +} + static ssize_t store_no_turbo(struct kobject *a, struct attribute *b, const char *buf, size_t count) { @@ -277,7 +334,13 @@ ret = sscanf(buf, "%u", &input); if (ret != 1) return -EINVAL; - limits.no_turbo = clamp_t(int, input, 0 , 1); + + update_turbo_state(); + if (limits.turbo_disabled) { + pr_warn("Turbo disabled by BIOS or unavailable on processor\n"); + return -EPERM; + } + limits.no_turbo = clamp_t(int, input, 0, 1); return count; } @@ -311,7 +374,6 @@ return count; } -show_one(no_turbo, no_turbo); show_one(max_perf_pct, max_perf_pct); show_one(min_perf_pct, min_perf_pct); @@ -348,16 +410,82 @@ { u64 value; rdmsrl(BYT_RATIOS, value); - return value & 0xFF; + return (value >> 8) & 0x7F; } static int byt_get_max_pstate(void) { u64 value; rdmsrl(BYT_RATIOS, value); - return (value >> 16) & 0xFF; + return (value >> 16) & 0x7F; +} + +static int byt_get_turbo_pstate(void) +{ + u64 value; + rdmsrl(BYT_TURBO_RATIOS, value); + return value & 0x7F; +} + +static void byt_set_pstate(struct cpudata *cpudata, int pstate) +{ + u64 val; + int32_t vid_fp; + u32 vid; + + val = pstate << 8; + if (limits.no_turbo && !limits.turbo_disabled) + val |= (u64)1 << 32; + + vid_fp = cpudata->vid.min + mul_fp( + int_tofp(pstate - cpudata->pstate.min_pstate), + cpudata->vid.ratio); + + vid_fp = clamp_t(int32_t, vid_fp, cpudata->vid.min, cpudata->vid.max); + vid = ceiling_fp(vid_fp); + + if (pstate > cpudata->pstate.max_pstate) + vid = cpudata->vid.turbo; + + val |= vid; + + wrmsrl(MSR_IA32_PERF_CTL, val); } +#define BYT_BCLK_FREQS 5 +static int byt_freq_table[BYT_BCLK_FREQS] = { 833, 1000, 1333, 1167, 800}; + +static int byt_get_scaling(void) +{ + u64 value; + int i; + + rdmsrl(MSR_FSB_FREQ, value); + i = value & 0x3; + + BUG_ON(i > BYT_BCLK_FREQS); + + return byt_freq_table[i] * 100; +} + +static void byt_get_vid(struct cpudata *cpudata) +{ + u64 value; + + + rdmsrl(BYT_VIDS, value); + cpudata->vid.min = int_tofp((value >> 8) & 0x7f); + cpudata->vid.max = int_tofp((value >> 16) & 0x7f); + cpudata->vid.ratio = div_fp( + cpudata->vid.max - cpudata->vid.min, + int_tofp(cpudata->pstate.max_pstate - + cpudata->pstate.min_pstate)); + + rdmsrl(BYT_TURBO_VIDS, value); + cpudata->vid.turbo = value & 0x7f; +} + + static int core_get_min_pstate(void) { u64 value; @@ -384,12 +512,17 @@ return ret; } -static void core_set_pstate(int pstate) +static inline int core_get_scaling(void) +{ + return 100000; +} + +static void core_set_pstate(struct cpudata *cpudata, int pstate) { u64 val; val = pstate << 8; - if (limits.no_turbo) + if (limits.no_turbo && !limits.turbo_disabled) val |= (u64)1 << 32; wrmsrl(MSR_IA32_PERF_CTL, val); @@ -408,6 +541,7 @@ .get_max = core_get_max_pstate, .get_min = core_get_min_pstate, .get_turbo = core_get_turbo_pstate, + .get_scaling = core_get_scaling, .set = core_set_pstate, }, }; @@ -424,8 +558,10 @@ .funcs = { .get_max = byt_get_max_pstate, .get_min = byt_get_min_pstate, - .get_turbo = byt_get_max_pstate, - .set = core_set_pstate, + .get_turbo = byt_get_turbo_pstate, + .set = byt_set_pstate, + .get_scaling = byt_get_scaling, + .get_vid = byt_get_vid, }, }; @@ -435,7 +571,8 @@ int max_perf = cpu->pstate.turbo_pstate; int max_perf_adj; int min_perf; - if (limits.no_turbo) + + if (limits.no_turbo || limits.turbo_disabled) max_perf = cpu->pstate.max_pstate; max_perf_adj = fp_toint(mul_fp(int_tofp(max_perf), limits.max_perf)); @@ -451,6 +588,8 @@ { int max_perf, min_perf; + update_turbo_state(); + intel_pstate_get_min_max(cpu, &min_perf, &max_perf); pstate = clamp_t(int, pstate, min_perf, max_perf); @@ -458,11 +597,11 @@ if (pstate == cpu->pstate.current_pstate) return; - trace_cpu_frequency(pstate * 100000, cpu->cpu); + trace_cpu_frequency(pstate * cpu->pstate.scaling, cpu->cpu); cpu->pstate.current_pstate = pstate; - pstate_funcs.set(pstate); + pstate_funcs.set(cpu, pstate); } static inline void intel_pstate_pstate_increase(struct cpudata *cpu, int steps) @@ -487,6 +626,10 @@ cpu->pstate.min_pstate = pstate_funcs.get_min(); cpu->pstate.max_pstate = pstate_funcs.get_max(); cpu->pstate.turbo_pstate = pstate_funcs.get_turbo(); + cpu->pstate.scaling = pstate_funcs.get_scaling(); + + if (pstate_funcs.get_vid) + pstate_funcs.get_vid(cpu); /* * goto max pstate so we don't slow up boot if we are built-in if we are @@ -498,30 +641,50 @@ static inline void intel_pstate_calc_busy(struct cpudata *cpu, struct sample *sample) { - u64 core_pct; - core_pct = div64_u64(int_tofp(sample->aperf * 100), - sample->mperf); - sample->freq = fp_toint(cpu->pstate.max_pstate * core_pct * 1000); + int32_t core_pct; + int32_t c0_pct; + + core_pct = div_fp(int_tofp((sample->aperf)), + int_tofp((sample->mperf))); + core_pct = mul_fp(core_pct, int_tofp(100)); + FP_ROUNDUP(core_pct); + + c0_pct = div_fp(int_tofp(sample->mperf), int_tofp(sample->tsc)); + + sample->freq = fp_toint( + mul_fp(int_tofp( + cpu->pstate.max_pstate * cpu->pstate.scaling / 100), + core_pct)); - sample->core_pct_busy = core_pct; + sample->core_pct_busy = mul_fp(core_pct, c0_pct); } static inline void intel_pstate_sample(struct cpudata *cpu) { u64 aperf, mperf; + unsigned long long tsc; rdmsrl(MSR_IA32_APERF, aperf); rdmsrl(MSR_IA32_MPERF, mperf); + tsc = native_read_tsc(); + + aperf = aperf >> FRAC_BITS; + mperf = mperf >> FRAC_BITS; + tsc = tsc >> FRAC_BITS; + cpu->sample_ptr = (cpu->sample_ptr + 1) % SAMPLE_COUNT; cpu->samples[cpu->sample_ptr].aperf = aperf; cpu->samples[cpu->sample_ptr].mperf = mperf; + cpu->samples[cpu->sample_ptr].tsc = tsc; cpu->samples[cpu->sample_ptr].aperf -= cpu->prev_aperf; cpu->samples[cpu->sample_ptr].mperf -= cpu->prev_mperf; + cpu->samples[cpu->sample_ptr].tsc -= cpu->prev_tsc; intel_pstate_calc_busy(cpu, &cpu->samples[cpu->sample_ptr]); cpu->prev_aperf = aperf; cpu->prev_mperf = mperf; + cpu->prev_tsc = tsc; } static inline void intel_pstate_set_sample_time(struct cpudata *cpu) @@ -540,7 +703,8 @@ core_busy = cpu->samples[cpu->sample_ptr].core_pct_busy; max_pstate = int_tofp(cpu->pstate.max_pstate); current_pstate = int_tofp(cpu->pstate.current_pstate); - return mul_fp(core_busy, div_fp(max_pstate, current_pstate)); + core_busy = mul_fp(core_busy, div_fp(max_pstate, current_pstate)); + return FP_ROUNDUP(core_busy); } static inline void intel_pstate_adjust_busy_pstate(struct cpudata *cpu) @@ -556,6 +720,7 @@ ctl = pid_calc(pid, busy_scaled); steps = abs(ctl); + if (ctl < 0) intel_pstate_pstate_increase(cpu, steps); else @@ -565,17 +730,23 @@ static void intel_pstate_timer_func(unsigned long __data) { struct cpudata *cpu = (struct cpudata *) __data; + struct sample *sample; + u64 energy; intel_pstate_sample(cpu); + + sample = &cpu->samples[cpu->sample_ptr]; + rdmsrl(MSR_PKG_ENERGY_STATUS, energy); + intel_pstate_adjust_busy_pstate(cpu); - if (cpu->pstate.current_pstate == cpu->pstate.min_pstate) { - cpu->min_pstate_count++; - if (!(cpu->min_pstate_count % 5)) { - intel_pstate_set_pstate(cpu, cpu->pstate.max_pstate); - } - } else - cpu->min_pstate_count = 0; + trace_pstate_sample(fp_toint(sample->core_pct_busy), + fp_toint(intel_pstate_get_scaled_busy(cpu)), + cpu->pstate.current_pstate, + sample->mperf, + sample->aperf, + div64_u64(energy, energy_divisor), + sample->freq); intel_pstate_set_sample_time(cpu); } @@ -608,12 +779,15 @@ if (!id) return -ENODEV; - all_cpu_data[cpunum] = kzalloc(sizeof(struct cpudata), GFP_KERNEL); + if (!all_cpu_data[cpunum]) + all_cpu_data[cpunum] = kzalloc(sizeof(struct cpudata), + GFP_KERNEL); if (!all_cpu_data[cpunum]) return -ENOMEM; cpu = all_cpu_data[cpunum]; + cpu->cpu = cpunum; intel_pstate_get_cpu_pstates(cpu); if (!cpu->pstate.current_pstate) { all_cpu_data[cpunum] = NULL; @@ -621,8 +795,6 @@ return -ENODATA; } - cpu->cpu = cpunum; - init_timer_deferrable(&cpu->timer); cpu->timer.function = intel_pstate_timer_func; cpu->timer.data = @@ -663,6 +835,7 @@ if (policy->policy == CPUFREQ_POLICY_PERFORMANCE) { limits.min_perf_pct = 100; limits.min_perf = int_tofp(1); + limits.max_policy_pct = 100; limits.max_perf_pct = 100; limits.max_perf = int_tofp(1); limits.no_turbo = 0; @@ -696,8 +869,6 @@ int cpu = policy->cpu; del_timer(&all_cpu_data[cpu]->timer); - kfree(all_cpu_data[cpu]); - all_cpu_data[cpu] = NULL; return 0; } @@ -712,18 +883,18 @@ cpu = all_cpu_data[policy->cpu]; - if (!limits.no_turbo && - limits.min_perf_pct == 100 && limits.max_perf_pct == 100) + if (limits.min_perf_pct == 100 && limits.max_perf_pct == 100) policy->policy = CPUFREQ_POLICY_PERFORMANCE; else policy->policy = CPUFREQ_POLICY_POWERSAVE; - policy->min = cpu->pstate.min_pstate * 100000; - policy->max = cpu->pstate.turbo_pstate * 100000; + policy->min = cpu->pstate.min_pstate * cpu->pstate.scaling; + policy->max = cpu->pstate.turbo_pstate * cpu->pstate.scaling; /* cpuinfo and default policy values */ - policy->cpuinfo.min_freq = cpu->pstate.min_pstate * 100000; - policy->cpuinfo.max_freq = cpu->pstate.turbo_pstate * 100000; + policy->cpuinfo.min_freq = cpu->pstate.min_pstate * cpu->pstate.scaling; + policy->cpuinfo.max_freq = + cpu->pstate.turbo_pstate * cpu->pstate.scaling; policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL; cpumask_set_cpu(policy->cpu, policy->cpus); @@ -740,7 +911,7 @@ .name = "intel_pstate", }; -static int __initdata no_load; +static int __initdata no_load = 1; static int intel_pstate_msrs_not_valid(void) { @@ -781,7 +952,9 @@ pstate_funcs.get_max = funcs->get_max; pstate_funcs.get_min = funcs->get_min; pstate_funcs.get_turbo = funcs->get_turbo; + pstate_funcs.get_scaling = funcs->get_scaling; pstate_funcs.set = funcs->set; + pstate_funcs.get_vid = funcs->get_vid; } #if IS_ENABLED(CONFIG_ACPI) @@ -855,6 +1028,7 @@ int cpu, rc = 0; const struct x86_cpu_id *id; struct cpu_defaults *cpu_info; + u64 units; if (no_load) return -ENODEV; @@ -888,8 +1062,14 @@ if (rc) goto out; + rdmsrl(MSR_RAPL_POWER_UNIT, units); + energy_divisor = 1 << ((units >> 8) & 0x1f); /* bits{12:8} */ + intel_pstate_debug_expose_params(); intel_pstate_sysfs_expose_params(); + + pr_info("Consider also installing thermald for improved thermal control.\n"); + return rc; out: get_online_cpus(); @@ -913,6 +1093,8 @@ if (!strcmp(str, "disable")) no_load = 1; + else if (!strcmp(str, "enable")) + no_load = 0; return 0; } early_param("intel_pstate", intel_pstate_setup); --- linux-3.13.0.orig/drivers/cpufreq/powernow-k6.c +++ linux-3.13.0/drivers/cpufreq/powernow-k6.c @@ -26,41 +26,108 @@ static unsigned int busfreq; /* FSB, in 10 kHz */ static unsigned int max_multiplier; +static unsigned int param_busfreq = 0; +static unsigned int param_max_multiplier = 0; + +module_param_named(max_multiplier, param_max_multiplier, uint, S_IRUGO); +MODULE_PARM_DESC(max_multiplier, "Maximum multiplier (allowed values: 20 30 35 40 45 50 55 60)"); + +module_param_named(bus_frequency, param_busfreq, uint, S_IRUGO); +MODULE_PARM_DESC(bus_frequency, "Bus frequency in kHz"); /* Clock ratio multiplied by 10 - see table 27 in AMD#23446 */ static struct cpufreq_frequency_table clock_ratio[] = { - {45, /* 000 -> 4.5x */ 0}, + {60, /* 110 -> 6.0x */ 0}, + {55, /* 011 -> 5.5x */ 0}, {50, /* 001 -> 5.0x */ 0}, + {45, /* 000 -> 4.5x */ 0}, {40, /* 010 -> 4.0x */ 0}, - {55, /* 011 -> 5.5x */ 0}, - {20, /* 100 -> 2.0x */ 0}, - {30, /* 101 -> 3.0x */ 0}, - {60, /* 110 -> 6.0x */ 0}, {35, /* 111 -> 3.5x */ 0}, + {30, /* 101 -> 3.0x */ 0}, + {20, /* 100 -> 2.0x */ 0}, {0, CPUFREQ_TABLE_END} }; +static const u8 index_to_register[8] = { 6, 3, 1, 0, 2, 7, 5, 4 }; +static const u8 register_to_index[8] = { 3, 2, 4, 1, 7, 6, 0, 5 }; + +static const struct { + unsigned freq; + unsigned mult; +} usual_frequency_table[] = { + { 400000, 40 }, // 100 * 4 + { 450000, 45 }, // 100 * 4.5 + { 475000, 50 }, // 95 * 5 + { 500000, 50 }, // 100 * 5 + { 506250, 45 }, // 112.5 * 4.5 + { 533500, 55 }, // 97 * 5.5 + { 550000, 55 }, // 100 * 5.5 + { 562500, 50 }, // 112.5 * 5 + { 570000, 60 }, // 95 * 6 + { 600000, 60 }, // 100 * 6 + { 618750, 55 }, // 112.5 * 5.5 + { 660000, 55 }, // 120 * 5.5 + { 675000, 60 }, // 112.5 * 6 + { 720000, 60 }, // 120 * 6 +}; + +#define FREQ_RANGE 3000 /** * powernow_k6_get_cpu_multiplier - returns the current FSB multiplier * - * Returns the current setting of the frequency multiplier. Core clock + * Returns the current setting of the frequency multiplier. Core clock * speed is frequency of the Front-Side Bus multiplied with this value. */ static int powernow_k6_get_cpu_multiplier(void) { - u64 invalue = 0; + unsigned long invalue = 0; u32 msrval; + local_irq_disable(); + msrval = POWERNOW_IOPORT + 0x1; wrmsr(MSR_K6_EPMR, msrval, 0); /* enable the PowerNow port */ invalue = inl(POWERNOW_IOPORT + 0x8); msrval = POWERNOW_IOPORT + 0x0; wrmsr(MSR_K6_EPMR, msrval, 0); /* disable it again */ - return clock_ratio[(invalue >> 5)&7].driver_data; + local_irq_enable(); + + return clock_ratio[register_to_index[(invalue >> 5)&7]].driver_data; } +static void powernow_k6_set_cpu_multiplier(unsigned int best_i) +{ + unsigned long outvalue, invalue; + unsigned long msrval; + unsigned long cr0; + + /* we now need to transform best_i to the BVC format, see AMD#23446 */ + + /* + * The processor doesn't respond to inquiry cycles while changing the + * frequency, so we must disable cache. + */ + local_irq_disable(); + cr0 = read_cr0(); + write_cr0(cr0 | X86_CR0_CD); + wbinvd(); + + outvalue = (1<<12) | (1<<10) | (1<<9) | (index_to_register[best_i]<<5); + + msrval = POWERNOW_IOPORT + 0x1; + wrmsr(MSR_K6_EPMR, msrval, 0); /* enable the PowerNow port */ + invalue = inl(POWERNOW_IOPORT + 0x8); + invalue = invalue & 0x1f; + outvalue = outvalue | invalue; + outl(outvalue, (POWERNOW_IOPORT + 0x8)); + msrval = POWERNOW_IOPORT + 0x0; + wrmsr(MSR_K6_EPMR, msrval, 0); /* disable it again */ + + write_cr0(cr0); + local_irq_enable(); +} /** * powernow_k6_target - set the PowerNow! multiplier @@ -71,8 +138,6 @@ static int powernow_k6_target(struct cpufreq_policy *policy, unsigned int best_i) { - unsigned long outvalue = 0, invalue = 0; - unsigned long msrval; struct cpufreq_freqs freqs; if (clock_ratio[best_i].driver_data > max_multiplier) { @@ -85,35 +150,63 @@ cpufreq_notify_transition(policy, &freqs, CPUFREQ_PRECHANGE); - /* we now need to transform best_i to the BVC format, see AMD#23446 */ - - outvalue = (1<<12) | (1<<10) | (1<<9) | (best_i<<5); - - msrval = POWERNOW_IOPORT + 0x1; - wrmsr(MSR_K6_EPMR, msrval, 0); /* enable the PowerNow port */ - invalue = inl(POWERNOW_IOPORT + 0x8); - invalue = invalue & 0xf; - outvalue = outvalue | invalue; - outl(outvalue , (POWERNOW_IOPORT + 0x8)); - msrval = POWERNOW_IOPORT + 0x0; - wrmsr(MSR_K6_EPMR, msrval, 0); /* disable it again */ + powernow_k6_set_cpu_multiplier(best_i); cpufreq_notify_transition(policy, &freqs, CPUFREQ_POSTCHANGE); return 0; } - static int powernow_k6_cpu_init(struct cpufreq_policy *policy) { unsigned int i, f; + unsigned khz; if (policy->cpu != 0) return -ENODEV; - /* get frequencies */ - max_multiplier = powernow_k6_get_cpu_multiplier(); - busfreq = cpu_khz / max_multiplier; + max_multiplier = 0; + khz = cpu_khz; + for (i = 0; i < ARRAY_SIZE(usual_frequency_table); i++) { + if (khz >= usual_frequency_table[i].freq - FREQ_RANGE && + khz <= usual_frequency_table[i].freq + FREQ_RANGE) { + khz = usual_frequency_table[i].freq; + max_multiplier = usual_frequency_table[i].mult; + break; + } + } + if (param_max_multiplier) { + for (i = 0; (clock_ratio[i].frequency != CPUFREQ_TABLE_END); i++) { + if (clock_ratio[i].driver_data == param_max_multiplier) { + max_multiplier = param_max_multiplier; + goto have_max_multiplier; + } + } + printk(KERN_ERR "powernow-k6: invalid max_multiplier parameter, valid parameters 20, 30, 35, 40, 45, 50, 55, 60\n"); + return -EINVAL; + } + + if (!max_multiplier) { + printk(KERN_WARNING "powernow-k6: unknown frequency %u, cannot determine current multiplier\n", khz); + printk(KERN_WARNING "powernow-k6: use module parameters max_multiplier and bus_frequency\n"); + return -EOPNOTSUPP; + } + +have_max_multiplier: + param_max_multiplier = max_multiplier; + + if (param_busfreq) { + if (param_busfreq >= 50000 && param_busfreq <= 150000) { + busfreq = param_busfreq / 10; + goto have_busfreq; + } + printk(KERN_ERR "powernow-k6: invalid bus_frequency parameter, allowed range 50000 - 150000 kHz\n"); + return -EINVAL; + } + + busfreq = khz / max_multiplier; +have_busfreq: + param_busfreq = busfreq * 10; /* table init */ for (i = 0; (clock_ratio[i].frequency != CPUFREQ_TABLE_END); i++) { @@ -125,7 +218,7 @@ } /* cpuinfo and default policy values */ - policy->cpuinfo.transition_latency = 200000; + policy->cpuinfo.transition_latency = 500000; return cpufreq_table_validate_and_show(policy, clock_ratio); } --- linux-3.13.0.orig/drivers/cpufreq/powernow-k8.c +++ linux-3.13.0/drivers/cpufreq/powernow-k8.c @@ -1081,7 +1081,7 @@ { struct powernow_k8_data *data; struct init_on_cpu init_on_cpu; - int rc; + int rc, cpu; smp_call_function_single(pol->cpu, check_supported_cpu, &rc, 1); if (rc) @@ -1145,7 +1145,9 @@ pr_debug("cpu_init done, current fid 0x%x, vid 0x%x\n", data->currfid, data->currvid); - per_cpu(powernow_data, pol->cpu) = data; + /* Point all the CPUs in this policy to the same data */ + for_each_cpu(cpu, pol->cpus) + per_cpu(powernow_data, cpu) = data; return 0; @@ -1160,6 +1162,7 @@ static int powernowk8_cpu_exit(struct cpufreq_policy *pol) { struct powernow_k8_data *data = per_cpu(powernow_data, pol->cpu); + int cpu; if (!data) return -EINVAL; @@ -1170,7 +1173,8 @@ kfree(data->powernow_table); kfree(data); - per_cpu(powernow_data, pol->cpu) = NULL; + for_each_cpu(cpu, pol->cpus) + per_cpu(powernow_data, cpu) = NULL; return 0; } --- linux-3.13.0.orig/drivers/cpufreq/powernv-cpufreq.c +++ linux-3.13.0/drivers/cpufreq/powernv-cpufreq.c @@ -0,0 +1,341 @@ +/* + * POWERNV cpufreq driver for the IBM POWER processors + * + * (C) Copyright IBM 2014 + * + * Author: Vaidyanathan Srinivasan + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#define pr_fmt(fmt) "powernv-cpufreq: " fmt + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#define POWERNV_MAX_PSTATES 256 + +static struct cpufreq_frequency_table powernv_freqs[POWERNV_MAX_PSTATES+1]; + +/* + * Note: The set of pstates consists of contiguous integers, the + * smallest of which is indicated by powernv_pstate_info.min, the + * largest of which is indicated by powernv_pstate_info.max. + * + * The nominal pstate is the highest non-turbo pstate in this + * platform. This is indicated by powernv_pstate_info.nominal. + */ +static struct powernv_pstate_info { + int min; + int max; + int nominal; + int nr_pstates; +} powernv_pstate_info; + +/* + * Initialize the freq table based on data obtained + * from the firmware passed via device-tree + */ +static int init_powernv_pstates(void) +{ + struct device_node *power_mgt; + int i, pstate_min, pstate_max, pstate_nominal, nr_pstates = 0; + const __be32 *pstate_ids, *pstate_freqs; + u32 len_ids, len_freqs; + + power_mgt = of_find_node_by_path("/ibm,opal/power-mgt"); + if (!power_mgt) { + pr_warn("power-mgt node not found\n"); + return -ENODEV; + } + + if (of_property_read_u32(power_mgt, "ibm,pstate-min", &pstate_min)) { + pr_warn("ibm,pstate-min node not found\n"); + return -ENODEV; + } + + if (of_property_read_u32(power_mgt, "ibm,pstate-max", &pstate_max)) { + pr_warn("ibm,pstate-max node not found\n"); + return -ENODEV; + } + + if (of_property_read_u32(power_mgt, "ibm,pstate-nominal", + &pstate_nominal)) { + pr_warn("ibm,pstate-nominal not found\n"); + return -ENODEV; + } + pr_info("cpufreq pstate min %d nominal %d max %d\n", pstate_min, + pstate_nominal, pstate_max); + + pstate_ids = of_get_property(power_mgt, "ibm,pstate-ids", &len_ids); + if (!pstate_ids) { + pr_warn("ibm,pstate-ids not found\n"); + return -ENODEV; + } + + pstate_freqs = of_get_property(power_mgt, "ibm,pstate-frequencies-mhz", + &len_freqs); + if (!pstate_freqs) { + pr_warn("ibm,pstate-frequencies-mhz not found\n"); + return -ENODEV; + } + + WARN_ON(len_ids != len_freqs); + nr_pstates = min(len_ids, len_freqs) / sizeof(u32); + if (!nr_pstates) { + pr_warn("No PStates found\n"); + return -ENODEV; + } + + pr_debug("NR PStates %d\n", nr_pstates); + for (i = 0; i < nr_pstates; i++) { + u32 id = be32_to_cpu(pstate_ids[i]); + u32 freq = be32_to_cpu(pstate_freqs[i]); + + pr_debug("PState id %d freq %d MHz\n", id, freq); + powernv_freqs[i].frequency = freq * 1000; /* kHz */ + powernv_freqs[i].driver_data = id; + } + /* End of list marker entry */ + powernv_freqs[i].frequency = CPUFREQ_TABLE_END; + + powernv_pstate_info.min = pstate_min; + powernv_pstate_info.max = pstate_max; + powernv_pstate_info.nominal = pstate_nominal; + powernv_pstate_info.nr_pstates = nr_pstates; + + return 0; +} + +/* Returns the CPU frequency corresponding to the pstate_id. */ +static unsigned int pstate_id_to_freq(int pstate_id) +{ + int i; + + i = powernv_pstate_info.max - pstate_id; + BUG_ON(i >= powernv_pstate_info.nr_pstates || i < 0); + + return powernv_freqs[i].frequency; +} + +/* + * cpuinfo_nominal_freq_show - Show the nominal CPU frequency as indicated by + * the firmware + */ +static ssize_t cpuinfo_nominal_freq_show(struct cpufreq_policy *policy, + char *buf) +{ + return sprintf(buf, "%u\n", + pstate_id_to_freq(powernv_pstate_info.nominal)); +} + +struct freq_attr cpufreq_freq_attr_cpuinfo_nominal_freq = + __ATTR_RO(cpuinfo_nominal_freq); + +static struct freq_attr *powernv_cpu_freq_attr[] = { + &cpufreq_freq_attr_scaling_available_freqs, + &cpufreq_freq_attr_cpuinfo_nominal_freq, + NULL, +}; + +/* Helper routines */ + +/* Access helpers to power mgt SPR */ + +static inline unsigned long get_pmspr(unsigned long sprn) +{ + switch (sprn) { + case SPRN_PMCR: + return mfspr(SPRN_PMCR); + + case SPRN_PMICR: + return mfspr(SPRN_PMICR); + + case SPRN_PMSR: + return mfspr(SPRN_PMSR); + } + BUG(); +} + +static inline void set_pmspr(unsigned long sprn, unsigned long val) +{ + switch (sprn) { + case SPRN_PMCR: + mtspr(SPRN_PMCR, val); + return; + + case SPRN_PMICR: + mtspr(SPRN_PMICR, val); + return; + } + BUG(); +} + +/* + * Use objects of this type to query/update + * pstates on a remote CPU via smp_call_function. + */ +struct powernv_smp_call_data { + unsigned int freq; + int pstate_id; +}; + +/* + * powernv_read_cpu_freq: Reads the current frequency on this CPU. + * + * Called via smp_call_function. + * + * Note: The caller of the smp_call_function should pass an argument of + * the type 'struct powernv_smp_call_data *' along with this function. + * + * The current frequency on this CPU will be returned via + * ((struct powernv_smp_call_data *)arg)->freq; + */ +static void powernv_read_cpu_freq(void *arg) +{ + unsigned long pmspr_val; + s8 local_pstate_id; + struct powernv_smp_call_data *freq_data = arg; + + pmspr_val = get_pmspr(SPRN_PMSR); + + /* + * The local pstate id corresponds bits 48..55 in the PMSR. + * Note: Watch out for the sign! + */ + local_pstate_id = (pmspr_val >> 48) & 0xFF; + freq_data->pstate_id = local_pstate_id; + freq_data->freq = pstate_id_to_freq(freq_data->pstate_id); + + pr_debug("cpu %d pmsr %016lX pstate_id %d frequency %d kHz\n", + raw_smp_processor_id(), pmspr_val, freq_data->pstate_id, + freq_data->freq); +} + +/* + * powernv_cpufreq_get: Returns the CPU frequency as reported by the + * firmware for CPU 'cpu'. This value is reported through the sysfs + * file cpuinfo_cur_freq. + */ +unsigned int powernv_cpufreq_get(unsigned int cpu) +{ + struct powernv_smp_call_data freq_data; + + smp_call_function_any(cpu_sibling_mask(cpu), powernv_read_cpu_freq, + &freq_data, 1); + + return freq_data.freq; +} + +/* + * set_pstate: Sets the pstate on this CPU. + * + * This is called via an smp_call_function. + * + * The caller must ensure that freq_data is of the type + * (struct powernv_smp_call_data *) and the pstate_id which needs to be set + * on this CPU should be present in freq_data->pstate_id. + */ +static void set_pstate(void *freq_data) +{ + unsigned long val; + unsigned long pstate_ul = + ((struct powernv_smp_call_data *) freq_data)->pstate_id; + + val = get_pmspr(SPRN_PMCR); + val = val & 0x0000FFFFFFFFFFFFULL; + + pstate_ul = pstate_ul & 0xFF; + + /* Set both global(bits 56..63) and local(bits 48..55) PStates */ + val = val | (pstate_ul << 56) | (pstate_ul << 48); + + pr_debug("Setting cpu %d pmcr to %016lX\n", + raw_smp_processor_id(), val); + set_pmspr(SPRN_PMCR, val); +} + +/* + * powernv_cpufreq_target_index: Sets the frequency corresponding to + * the cpufreq table entry indexed by new_index on the cpus in the + * mask policy->cpus + */ +static int powernv_cpufreq_target_index(struct cpufreq_policy *policy, + unsigned int new_index) +{ + struct powernv_smp_call_data freq_data; + + freq_data.pstate_id = powernv_freqs[new_index].driver_data; + + /* + * Use smp_call_function to send IPI and execute the + * mtspr on target CPU. We could do that without IPI + * if current CPU is within policy->cpus (core) + */ + smp_call_function_any(policy->cpus, set_pstate, &freq_data, 1); + + return 0; +} + +static int powernv_cpufreq_cpu_init(struct cpufreq_policy *policy) +{ + int base, i; + + base = cpu_first_thread_sibling(policy->cpu); + + for (i = 0; i < threads_per_core; i++) + cpumask_set_cpu(base + i, policy->cpus); + + return cpufreq_table_validate_and_show(policy, powernv_freqs); +} + +static struct cpufreq_driver powernv_cpufreq_driver = { + .name = "powernv-cpufreq", + .flags = CPUFREQ_CONST_LOOPS, + .init = powernv_cpufreq_cpu_init, + .verify = cpufreq_generic_frequency_table_verify, + .target_index = powernv_cpufreq_target_index, + .get = powernv_cpufreq_get, + .attr = powernv_cpu_freq_attr, +}; + +static int __init powernv_cpufreq_init(void) +{ + int rc = 0; + + /* Discover pstates from device tree and init */ + rc = init_powernv_pstates(); + if (rc) { + pr_info("powernv-cpufreq disabled. System does not support PState control\n"); + return rc; + } + + return cpufreq_register_driver(&powernv_cpufreq_driver); +} +module_init(powernv_cpufreq_init); + +static void __exit powernv_cpufreq_exit(void) +{ + cpufreq_unregister_driver(&powernv_cpufreq_driver); +} +module_exit(powernv_cpufreq_exit); + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Vaidyanathan Srinivasan "); --- linux-3.13.0.orig/drivers/crypto/Kconfig +++ linux-3.13.0/drivers/crypto/Kconfig @@ -323,7 +323,7 @@ config CRYPTO_DEV_NX bool "Support for IBM Power7+ in-Nest cryptographic acceleration" - depends on PPC64 && IBMVIO + depends on PPC64 && IBMVIO && !CPU_LITTLE_ENDIAN default n help Support for Power7+ in-Nest cryptographic acceleration. --- linux-3.13.0.orig/drivers/crypto/caam/caamhash.c +++ linux-3.13.0/drivers/crypto/caam/caamhash.c @@ -835,8 +835,9 @@ edesc->sec4_sg + sec4_sg_src_index, chained); if (*next_buflen) { - sg_copy_part(next_buf, req->src, to_hash - - *buflen, req->nbytes); + scatterwalk_map_and_copy(next_buf, req->src, + to_hash - *buflen, + *next_buflen, 0); state->current_buf = !state->current_buf; } } else { @@ -869,7 +870,8 @@ kfree(edesc); } } else if (*next_buflen) { - sg_copy(buf + *buflen, req->src, req->nbytes); + scatterwalk_map_and_copy(buf + *buflen, req->src, 0, + req->nbytes, 0); *buflen = *next_buflen; *next_buflen = last_buflen; } @@ -1216,8 +1218,9 @@ src_map_to_sec4_sg(jrdev, req->src, src_nents, edesc->sec4_sg + 1, chained); if (*next_buflen) { - sg_copy_part(next_buf, req->src, to_hash - *buflen, - req->nbytes); + scatterwalk_map_and_copy(next_buf, req->src, + to_hash - *buflen, + *next_buflen, 0); state->current_buf = !state->current_buf; } @@ -1248,7 +1251,8 @@ kfree(edesc); } } else if (*next_buflen) { - sg_copy(buf + *buflen, req->src, req->nbytes); + scatterwalk_map_and_copy(buf + *buflen, req->src, 0, + req->nbytes, 0); *buflen = *next_buflen; *next_buflen = 0; } @@ -1348,9 +1352,9 @@ struct device *jrdev = ctx->jrdev; gfp_t flags = (req->base.flags & (CRYPTO_TFM_REQ_MAY_BACKLOG | CRYPTO_TFM_REQ_MAY_SLEEP)) ? GFP_KERNEL : GFP_ATOMIC; - u8 *next_buf = state->buf_0 + state->current_buf * - CAAM_MAX_HASH_BLOCK_SIZE; - int *next_buflen = &state->buflen_0 + state->current_buf; + u8 *next_buf = state->current_buf ? state->buf_1 : state->buf_0; + int *next_buflen = state->current_buf ? + &state->buflen_1 : &state->buflen_0; int to_hash; u32 *sh_desc = ctx->sh_desc_update_first, *desc; dma_addr_t ptr = ctx->sh_desc_update_first_dma; @@ -1405,7 +1409,8 @@ } if (*next_buflen) - sg_copy_part(next_buf, req->src, to_hash, req->nbytes); + scatterwalk_map_and_copy(next_buf, req->src, to_hash, + *next_buflen, 0); sh_len = desc_len(sh_desc); desc = edesc->hw_desc; @@ -1438,7 +1443,8 @@ state->update = ahash_update_no_ctx; state->finup = ahash_finup_no_ctx; state->final = ahash_final_no_ctx; - sg_copy(next_buf, req->src, req->nbytes); + scatterwalk_map_and_copy(next_buf, req->src, 0, + req->nbytes, 0); } #ifdef DEBUG print_hex_dump(KERN_ERR, "next buf@"__stringify(__LINE__)": ", --- linux-3.13.0.orig/drivers/crypto/caam/error.c +++ linux-3.13.0/drivers/crypto/caam/error.c @@ -16,9 +16,13 @@ char *tmp; \ \ tmp = kmalloc(sizeof(format) + max_alloc, GFP_ATOMIC); \ - sprintf(tmp, format, param); \ - strcat(str, tmp); \ - kfree(tmp); \ + if (likely(tmp)) { \ + sprintf(tmp, format, param); \ + strcat(str, tmp); \ + kfree(tmp); \ + } else { \ + strcat(str, "kmalloc failure in SPRINTFCAT"); \ + } \ } static void report_jump_idx(u32 status, char *outstr) --- linux-3.13.0.orig/drivers/crypto/caam/jr.c +++ linux-3.13.0/drivers/crypto/caam/jr.c @@ -453,8 +453,8 @@ int error; jrdev = &pdev->dev; - jrpriv = kmalloc(sizeof(struct caam_drv_private_jr), - GFP_KERNEL); + jrpriv = devm_kmalloc(jrdev, sizeof(struct caam_drv_private_jr), + GFP_KERNEL); if (!jrpriv) return -ENOMEM; @@ -487,10 +487,8 @@ /* Now do the platform independent part */ error = caam_jr_init(jrdev); /* now turn on hardware */ - if (error) { - kfree(jrpriv); + if (error) return error; - } jrpriv->dev = jrdev; spin_lock(&driver_data.jr_alloc_lock); --- linux-3.13.0.orig/drivers/crypto/caam/key_gen.c +++ linux-3.13.0/drivers/crypto/caam/key_gen.c @@ -51,23 +51,29 @@ u32 *desc; struct split_key_result result; dma_addr_t dma_addr_in, dma_addr_out; - int ret = 0; + int ret = -ENOMEM; desc = kmalloc(CAAM_CMD_SZ * 6 + CAAM_PTR_SZ * 2, GFP_KERNEL | GFP_DMA); if (!desc) { dev_err(jrdev, "unable to allocate key input memory\n"); - return -ENOMEM; + return ret; } - init_job_desc(desc, 0); - dma_addr_in = dma_map_single(jrdev, (void *)key_in, keylen, DMA_TO_DEVICE); if (dma_mapping_error(jrdev, dma_addr_in)) { dev_err(jrdev, "unable to map key input memory\n"); - kfree(desc); - return -ENOMEM; + goto out_free; } + + dma_addr_out = dma_map_single(jrdev, key_out, split_key_pad_len, + DMA_FROM_DEVICE); + if (dma_mapping_error(jrdev, dma_addr_out)) { + dev_err(jrdev, "unable to map key output memory\n"); + goto out_unmap_in; + } + + init_job_desc(desc, 0); append_key(desc, dma_addr_in, keylen, CLASS_2 | KEY_DEST_CLASS_REG); /* Sets MDHA up into an HMAC-INIT */ @@ -84,13 +90,6 @@ * FIFO_STORE with the explicit split-key content store * (0x26 output type) */ - dma_addr_out = dma_map_single(jrdev, key_out, split_key_pad_len, - DMA_FROM_DEVICE); - if (dma_mapping_error(jrdev, dma_addr_out)) { - dev_err(jrdev, "unable to map key output memory\n"); - kfree(desc); - return -ENOMEM; - } append_fifo_store(desc, dma_addr_out, split_key_len, LDST_CLASS_2_CCB | FIFOST_TYPE_SPLIT_KEK); @@ -118,10 +117,10 @@ dma_unmap_single(jrdev, dma_addr_out, split_key_pad_len, DMA_FROM_DEVICE); +out_unmap_in: dma_unmap_single(jrdev, dma_addr_in, keylen, DMA_TO_DEVICE); - +out_free: kfree(desc); - return ret; } EXPORT_SYMBOL(gen_split_key); --- linux-3.13.0.orig/drivers/crypto/caam/sg_sw_sec4.h +++ linux-3.13.0/drivers/crypto/caam/sg_sw_sec4.h @@ -116,57 +116,3 @@ } return nents; } - -/* Map SG page in kernel virtual address space and copy */ -static inline void sg_map_copy(u8 *dest, struct scatterlist *sg, - int len, int offset) -{ - u8 *mapped_addr; - - /* - * Page here can be user-space pinned using get_user_pages - * Same must be kmapped before use and kunmapped subsequently - */ - mapped_addr = kmap_atomic(sg_page(sg)); - memcpy(dest, mapped_addr + offset, len); - kunmap_atomic(mapped_addr); -} - -/* Copy from len bytes of sg to dest, starting from beginning */ -static inline void sg_copy(u8 *dest, struct scatterlist *sg, unsigned int len) -{ - struct scatterlist *current_sg = sg; - int cpy_index = 0, next_cpy_index = current_sg->length; - - while (next_cpy_index < len) { - sg_map_copy(dest + cpy_index, current_sg, current_sg->length, - current_sg->offset); - current_sg = scatterwalk_sg_next(current_sg); - cpy_index = next_cpy_index; - next_cpy_index += current_sg->length; - } - if (cpy_index < len) - sg_map_copy(dest + cpy_index, current_sg, len-cpy_index, - current_sg->offset); -} - -/* Copy sg data, from to_skip to end, to dest */ -static inline void sg_copy_part(u8 *dest, struct scatterlist *sg, - int to_skip, unsigned int end) -{ - struct scatterlist *current_sg = sg; - int sg_index, cpy_index, offset; - - sg_index = current_sg->length; - while (sg_index <= to_skip) { - current_sg = scatterwalk_sg_next(current_sg); - sg_index += current_sg->length; - } - cpy_index = sg_index - to_skip; - offset = current_sg->offset + current_sg->length - cpy_index; - sg_map_copy(dest, current_sg, cpy_index, offset); - if (end - sg_index) { - current_sg = scatterwalk_sg_next(current_sg); - sg_copy(dest + cpy_index, current_sg, end - sg_index); - } -} --- linux-3.13.0.orig/drivers/crypto/omap-aes.c +++ linux-3.13.0/drivers/crypto/omap-aes.c @@ -784,6 +784,7 @@ static int omap_aes_cra_init(struct crypto_tfm *tfm) { struct omap_aes_dev *dd = NULL; + int err; /* Find AES device, currently picks the first device */ spin_lock_bh(&list_lock); @@ -792,7 +793,13 @@ } spin_unlock_bh(&list_lock); - pm_runtime_get_sync(dd->dev); + err = pm_runtime_get_sync(dd->dev); + if (err < 0) { + dev_err(dd->dev, "%s: failed to get_sync(%d)\n", + __func__, err); + return err; + } + tfm->crt_ablkcipher.reqsize = sizeof(struct omap_aes_reqctx); return 0; @@ -1182,7 +1189,12 @@ dd->phys_base = res.start; pm_runtime_enable(dev); - pm_runtime_get_sync(dev); + err = pm_runtime_get_sync(dev); + if (err < 0) { + dev_err(dev, "%s: failed to get_sync(%d)\n", + __func__, err); + goto err_res; + } omap_aes_dma_stop(dd); --- linux-3.13.0.orig/drivers/crypto/ux500/cryp/cryp_core.c +++ linux-3.13.0/drivers/crypto/ux500/cryp/cryp_core.c @@ -190,7 +190,7 @@ static irqreturn_t cryp_interrupt_handler(int irq, void *param) { struct cryp_ctx *ctx; - int i; + int count; struct cryp_device_data *device_data; if (param == NULL) { @@ -215,12 +215,11 @@ if (cryp_pending_irq_src(device_data, CRYP_IRQ_SRC_OUTPUT_FIFO)) { if (ctx->outlen / ctx->blocksize > 0) { - for (i = 0; i < ctx->blocksize / 4; i++) { - *(ctx->outdata) = readl_relaxed( - &device_data->base->dout); - ctx->outdata += 4; - ctx->outlen -= 4; - } + count = ctx->blocksize / 4; + + readsl(&device_data->base->dout, ctx->outdata, count); + ctx->outdata += count; + ctx->outlen -= count; if (ctx->outlen == 0) { cryp_disable_irq_src(device_data, @@ -230,12 +229,12 @@ } else if (cryp_pending_irq_src(device_data, CRYP_IRQ_SRC_INPUT_FIFO)) { if (ctx->datalen / ctx->blocksize > 0) { - for (i = 0 ; i < ctx->blocksize / 4; i++) { - writel_relaxed(ctx->indata, - &device_data->base->din); - ctx->indata += 4; - ctx->datalen -= 4; - } + count = ctx->blocksize / 4; + + writesl(&device_data->base->din, ctx->indata, count); + + ctx->indata += count; + ctx->datalen -= count; if (ctx->datalen == 0) cryp_disable_irq_src(device_data, --- linux-3.13.0.orig/drivers/dma/Kconfig +++ linux-3.13.0/drivers/dma/Kconfig @@ -351,18 +351,6 @@ comment "DMA Clients" depends on DMA_ENGINE -config NET_DMA - bool "Network: TCP receive copy offload" - depends on DMA_ENGINE && NET - default (INTEL_IOATDMA || FSL_DMA) - depends on BROKEN - help - This enables the use of DMA engines in the network stack to - offload receive copy-to-user operations, freeing CPU cycles. - - Say Y here if you enabled INTEL_IOATDMA or FSL_DMA, otherwise - say N. - config ASYNC_TX_DMA bool "Async_tx: Offload support for the async_tx api" depends on DMA_ENGINE --- linux-3.13.0.orig/drivers/dma/Makefile +++ linux-3.13.0/drivers/dma/Makefile @@ -6,7 +6,6 @@ obj-$(CONFIG_DMA_ACPI) += acpi-dma.o obj-$(CONFIG_DMA_OF) += of-dma.o -obj-$(CONFIG_NET_DMA) += iovlock.o obj-$(CONFIG_INTEL_MID_DMAC) += intel_mid_dma.o obj-$(CONFIG_DMATEST) += dmatest.o obj-$(CONFIG_INTEL_IOATDMA) += ioat/ --- linux-3.13.0.orig/drivers/dma/dmaengine.c +++ linux-3.13.0/drivers/dma/dmaengine.c @@ -959,6 +959,7 @@ dma_unmap_page(dev, unmap->addr[i], unmap->len, DMA_BIDIRECTIONAL); } + cnt = unmap->map_cnt; mempool_free(unmap, __get_unmap_pool(cnt)->pool); } @@ -1024,115 +1025,12 @@ memset(unmap, 0, sizeof(*unmap)); kref_init(&unmap->kref); unmap->dev = dev; + unmap->map_cnt = nr; return unmap; } EXPORT_SYMBOL(dmaengine_get_unmap_data); -/** - * dma_async_memcpy_pg_to_pg - offloaded copy from page to page - * @chan: DMA channel to offload copy to - * @dest_pg: destination page - * @dest_off: offset in page to copy to - * @src_pg: source page - * @src_off: offset in page to copy from - * @len: length - * - * Both @dest_page/@dest_off and @src_page/@src_off must be mappable to a bus - * address according to the DMA mapping API rules for streaming mappings. - * Both @dest_page/@dest_off and @src_page/@src_off must stay memory resident - * (kernel memory or locked user space pages). - */ -dma_cookie_t -dma_async_memcpy_pg_to_pg(struct dma_chan *chan, struct page *dest_pg, - unsigned int dest_off, struct page *src_pg, unsigned int src_off, - size_t len) -{ - struct dma_device *dev = chan->device; - struct dma_async_tx_descriptor *tx; - struct dmaengine_unmap_data *unmap; - dma_cookie_t cookie; - unsigned long flags; - - unmap = dmaengine_get_unmap_data(dev->dev, 2, GFP_NOWAIT); - if (!unmap) - return -ENOMEM; - - unmap->to_cnt = 1; - unmap->from_cnt = 1; - unmap->addr[0] = dma_map_page(dev->dev, src_pg, src_off, len, - DMA_TO_DEVICE); - unmap->addr[1] = dma_map_page(dev->dev, dest_pg, dest_off, len, - DMA_FROM_DEVICE); - unmap->len = len; - flags = DMA_CTRL_ACK; - tx = dev->device_prep_dma_memcpy(chan, unmap->addr[1], unmap->addr[0], - len, flags); - - if (!tx) { - dmaengine_unmap_put(unmap); - return -ENOMEM; - } - - dma_set_unmap(tx, unmap); - cookie = tx->tx_submit(tx); - dmaengine_unmap_put(unmap); - - preempt_disable(); - __this_cpu_add(chan->local->bytes_transferred, len); - __this_cpu_inc(chan->local->memcpy_count); - preempt_enable(); - - return cookie; -} -EXPORT_SYMBOL(dma_async_memcpy_pg_to_pg); - -/** - * dma_async_memcpy_buf_to_buf - offloaded copy between virtual addresses - * @chan: DMA channel to offload copy to - * @dest: destination address (virtual) - * @src: source address (virtual) - * @len: length - * - * Both @dest and @src must be mappable to a bus address according to the - * DMA mapping API rules for streaming mappings. - * Both @dest and @src must stay memory resident (kernel memory or locked - * user space pages). - */ -dma_cookie_t -dma_async_memcpy_buf_to_buf(struct dma_chan *chan, void *dest, - void *src, size_t len) -{ - return dma_async_memcpy_pg_to_pg(chan, virt_to_page(dest), - (unsigned long) dest & ~PAGE_MASK, - virt_to_page(src), - (unsigned long) src & ~PAGE_MASK, len); -} -EXPORT_SYMBOL(dma_async_memcpy_buf_to_buf); - -/** - * dma_async_memcpy_buf_to_pg - offloaded copy from address to page - * @chan: DMA channel to offload copy to - * @page: destination page - * @offset: offset in page to copy to - * @kdata: source address (virtual) - * @len: length - * - * Both @page/@offset and @kdata must be mappable to a bus address according - * to the DMA mapping API rules for streaming mappings. - * Both @page/@offset and @kdata must stay memory resident (kernel memory or - * locked user space pages) - */ -dma_cookie_t -dma_async_memcpy_buf_to_pg(struct dma_chan *chan, struct page *page, - unsigned int offset, void *kdata, size_t len) -{ - return dma_async_memcpy_pg_to_pg(chan, page, offset, - virt_to_page(kdata), - (unsigned long) kdata & ~PAGE_MASK, len); -} -EXPORT_SYMBOL(dma_async_memcpy_buf_to_pg); - void dma_async_tx_descriptor_init(struct dma_async_tx_descriptor *tx, struct dma_chan *chan) { --- linux-3.13.0.orig/drivers/dma/dw/core.c +++ linux-3.13.0/drivers/dma/dw/core.c @@ -1546,11 +1546,6 @@ /* Disable BLOCK interrupts as well */ channel_clear_bit(dw, MASK.BLOCK, dw->all_chan_mask); - err = devm_request_irq(chip->dev, chip->irq, dw_dma_interrupt, - IRQF_SHARED, "dw_dmac", dw); - if (err) - return err; - /* Create a pool of consistent memory blocks for hardware descriptors */ dw->desc_pool = dmam_pool_create("dw_dmac_desc_pool", chip->dev, sizeof(struct dw_desc), 4, 0); @@ -1561,6 +1556,11 @@ tasklet_init(&dw->tasklet, dw_dma_tasklet, (unsigned long)dw); + err = request_irq(chip->irq, dw_dma_interrupt, IRQF_SHARED, + "dw_dmac", dw); + if (err) + return err; + INIT_LIST_HEAD(&dw->dma.channels); for (i = 0; i < nr_channels; i++) { struct dw_dma_chan *dwc = &dw->chan[i]; @@ -1663,6 +1663,7 @@ dw_dma_off(dw); dma_async_device_unregister(&dw->dma); + free_irq(chip->irq, dw); tasklet_kill(&dw->tasklet); list_for_each_entry_safe(dwc, _dwc, &dw->dma.channels, --- linux-3.13.0.orig/drivers/dma/edma.c +++ linux-3.13.0/drivers/dma/edma.c @@ -182,11 +182,13 @@ echan->ecc->dummy_slot); } - edma_resume(echan->ch_num); - if (edesc->processed <= MAX_NR_SG) { dev_dbg(dev, "first transfer starting %d\n", echan->ch_num); edma_start(echan->ch_num); + } else { + dev_dbg(dev, "chan: %d: completed %d elements, resuming\n", + echan->ch_num, edesc->processed); + edma_resume(echan->ch_num); } /* --- linux-3.13.0.orig/drivers/dma/ioat/dma.c +++ linux-3.13.0/drivers/dma/ioat/dma.c @@ -77,7 +77,8 @@ attnstatus = readl(instance->reg_base + IOAT_ATTNSTATUS_OFFSET); for_each_set_bit(bit, &attnstatus, BITS_PER_LONG) { chan = ioat_chan_by_index(instance, bit); - tasklet_schedule(&chan->cleanup_task); + if (test_bit(IOAT_RUN, &chan->state)) + tasklet_schedule(&chan->cleanup_task); } writeb(intrctrl, instance->reg_base + IOAT_INTRCTRL_OFFSET); @@ -93,7 +94,8 @@ { struct ioat_chan_common *chan = data; - tasklet_schedule(&chan->cleanup_task); + if (test_bit(IOAT_RUN, &chan->state)) + tasklet_schedule(&chan->cleanup_task); return IRQ_HANDLED; } @@ -116,7 +118,6 @@ chan->timer.function = device->timer_fn; chan->timer.data = data; tasklet_init(&chan->cleanup_task, device->cleanup_fn, data); - tasklet_disable(&chan->cleanup_task); } /** @@ -354,13 +355,49 @@ writel(((u64) chan->completion_dma) >> 32, chan->reg_base + IOAT_CHANCMP_OFFSET_HIGH); - tasklet_enable(&chan->cleanup_task); + set_bit(IOAT_RUN, &chan->state); ioat1_dma_start_null_desc(ioat); /* give chain to dma device */ dev_dbg(to_dev(chan), "%s: allocated %d descriptors\n", __func__, ioat->desccount); return ioat->desccount; } +void ioat_stop(struct ioat_chan_common *chan) +{ + struct ioatdma_device *device = chan->device; + struct pci_dev *pdev = device->pdev; + int chan_id = chan_num(chan); + struct msix_entry *msix; + + /* 1/ stop irq from firing tasklets + * 2/ stop the tasklet from re-arming irqs + */ + clear_bit(IOAT_RUN, &chan->state); + + /* flush inflight interrupts */ + switch (device->irq_mode) { + case IOAT_MSIX: + msix = &device->msix_entries[chan_id]; + synchronize_irq(msix->vector); + break; + case IOAT_MSI: + case IOAT_INTX: + synchronize_irq(pdev->irq); + break; + default: + break; + } + + /* flush inflight timers */ + del_timer_sync(&chan->timer); + + /* flush inflight tasklet runs */ + tasklet_kill(&chan->cleanup_task); + + /* final cleanup now that everything is quiesced and can't re-arm */ + device->cleanup_fn((unsigned long) &chan->common); +} + /** * ioat1_dma_free_chan_resources - release all the descriptors * @chan: the channel to be cleaned @@ -379,9 +416,7 @@ if (ioat->desccount == 0) return; - tasklet_disable(&chan->cleanup_task); - del_timer_sync(&chan->timer); - ioat1_cleanup(ioat); + ioat_stop(chan); /* Delay 100ms after reset to allow internal DMA logic to quiesce * before removing DMA descriptor resources. @@ -526,8 +561,11 @@ static void ioat1_cleanup_event(unsigned long data) { struct ioat_dma_chan *ioat = to_ioat_chan((void *) data); + struct ioat_chan_common *chan = &ioat->base; ioat1_cleanup(ioat); + if (!test_bit(IOAT_RUN, &chan->state)) + return; writew(IOAT_CHANCTRL_RUN, ioat->base.reg_base + IOAT_CHANCTRL_OFFSET); } @@ -1184,7 +1222,6 @@ err = ioat_probe(device); if (err) return err; - ioat_set_tcp_copy_break(4096); err = ioat_register(device); if (err) return err; --- linux-3.13.0.orig/drivers/dma/ioat/dma.h +++ linux-3.13.0/drivers/dma/ioat/dma.h @@ -214,13 +214,6 @@ #define dump_desc_dbg(c, d) \ ({ if (d) __dump_desc_dbg(&c->base, d->hw, &d->txd, desc_id(d)); 0; }) -static inline void ioat_set_tcp_copy_break(unsigned long copybreak) -{ - #ifdef CONFIG_NET_DMA - sysctl_tcp_dma_copybreak = copybreak; - #endif -} - static inline struct ioat_chan_common * ioat_chan_by_index(struct ioatdma_device *device, int index) { @@ -356,6 +349,7 @@ void ioat_kobject_add(struct ioatdma_device *device, struct kobj_type *type); void ioat_kobject_del(struct ioatdma_device *device); int ioat_dma_setup_interrupts(struct ioatdma_device *device); +void ioat_stop(struct ioat_chan_common *chan); extern const struct sysfs_ops ioat_sysfs_ops; extern struct ioat_sysfs_entry ioat_version_attr; extern struct ioat_sysfs_entry ioat_cap_attr; --- linux-3.13.0.orig/drivers/dma/ioat/dma_v2.c +++ linux-3.13.0/drivers/dma/ioat/dma_v2.c @@ -190,8 +190,11 @@ void ioat2_cleanup_event(unsigned long data) { struct ioat2_dma_chan *ioat = to_ioat2_chan((void *) data); + struct ioat_chan_common *chan = &ioat->base; ioat2_cleanup(ioat); + if (!test_bit(IOAT_RUN, &chan->state)) + return; writew(IOAT_CHANCTRL_RUN, ioat->base.reg_base + IOAT_CHANCTRL_OFFSET); } @@ -553,10 +556,10 @@ ioat->issued = 0; ioat->tail = 0; ioat->alloc_order = order; + set_bit(IOAT_RUN, &chan->state); spin_unlock_bh(&ioat->prep_lock); spin_unlock_bh(&chan->cleanup_lock); - tasklet_enable(&chan->cleanup_task); ioat2_start_null_desc(ioat); /* check that we got off the ground */ @@ -566,7 +569,6 @@ } while (i++ < 20 && !is_ioat_active(status) && !is_ioat_idle(status)); if (is_ioat_active(status) || is_ioat_idle(status)) { - set_bit(IOAT_RUN, &chan->state); return 1 << ioat->alloc_order; } else { u32 chanerr = readl(chan->reg_base + IOAT_CHANERR_OFFSET); @@ -809,11 +811,8 @@ if (!ioat->ring) return; - tasklet_disable(&chan->cleanup_task); - del_timer_sync(&chan->timer); - device->cleanup_fn((unsigned long) c); + ioat_stop(chan); device->reset_hw(chan); - clear_bit(IOAT_RUN, &chan->state); spin_lock_bh(&chan->cleanup_lock); spin_lock_bh(&ioat->prep_lock); @@ -900,7 +899,6 @@ err = ioat_probe(device); if (err) return err; - ioat_set_tcp_copy_break(2048); list_for_each_entry(c, &dma->channels, device_node) { chan = to_chan_common(c); --- linux-3.13.0.orig/drivers/dma/ioat/dma_v3.c +++ linux-3.13.0/drivers/dma/ioat/dma_v3.c @@ -464,8 +464,11 @@ static void ioat3_cleanup_event(unsigned long data) { struct ioat2_dma_chan *ioat = to_ioat2_chan((void *) data); + struct ioat_chan_common *chan = &ioat->base; ioat3_cleanup(ioat); + if (!test_bit(IOAT_RUN, &chan->state)) + return; writew(IOAT_CHANCTRL_RUN, ioat->base.reg_base + IOAT_CHANCTRL_OFFSET); } @@ -1652,7 +1655,6 @@ err = ioat_probe(device); if (err) return err; - ioat_set_tcp_copy_break(262144); list_for_each_entry(c, &dma->channels, device_node) { chan = to_chan_common(c); --- linux-3.13.0.orig/drivers/dma/mv_xor.c +++ linux-3.13.0/drivers/dma/mv_xor.c @@ -191,12 +191,10 @@ static void mv_chan_activate(struct mv_xor_chan *chan) { - u32 activation; - dev_dbg(mv_chan_to_devp(chan), " activate chan.\n"); - activation = readl_relaxed(XOR_ACTIVATION(chan)); - activation |= 0x1; - writel_relaxed(activation, XOR_ACTIVATION(chan)); + + /* writel ensures all descriptors are flushed before activation */ + writel(BIT(0), XOR_ACTIVATION(chan)); } static char mv_chan_is_busy(struct mv_xor_chan *chan) --- linux-3.13.0.orig/drivers/dma/ste_dma40.c +++ linux-3.13.0/drivers/dma/ste_dma40.c @@ -1641,6 +1641,7 @@ struct d40_chan *d40c = (struct d40_chan *) data; struct d40_desc *d40d; unsigned long flags; + bool callback_active; dma_async_tx_callback callback; void *callback_param; @@ -1668,6 +1669,7 @@ } /* Callback to client */ + callback_active = !!(d40d->txd.flags & DMA_PREP_INTERRUPT); callback = d40d->txd.callback; callback_param = d40d->txd.callback_param; @@ -1690,7 +1692,7 @@ spin_unlock_irqrestore(&d40c->lock, flags); - if (callback && (d40d->txd.flags & DMA_PREP_INTERRUPT)) + if (callback_active && callback) callback(callback_param); return; --- linux-3.13.0.orig/drivers/edac/cpc925_edac.c +++ linux-3.13.0/drivers/edac/cpc925_edac.c @@ -562,7 +562,7 @@ if (apiexcp & UECC_EXCP_DETECTED) { cpc925_mc_printk(mci, KERN_INFO, "DRAM UECC Fault\n"); - edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, + edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, pfn, offset, 0, csrow, -1, -1, mci->ctl_name, ""); --- linux-3.13.0.orig/drivers/edac/e752x_edac.c +++ linux-3.13.0/drivers/edac/e752x_edac.c @@ -1182,9 +1182,11 @@ pvt->bridge_ck = pci_get_device(PCI_VENDOR_ID_INTEL, pvt->dev_info->err_dev, pvt->bridge_ck); - if (pvt->bridge_ck == NULL) + if (pvt->bridge_ck == NULL) { pvt->bridge_ck = pci_scan_single_device(pdev->bus, PCI_DEVFN(0, 1)); + pci_dev_get(pvt->bridge_ck); + } if (pvt->bridge_ck == NULL) { e752x_printk(KERN_ERR, "error reporting device not found:" --- linux-3.13.0.orig/drivers/edac/e7xxx_edac.c +++ linux-3.13.0/drivers/edac/e7xxx_edac.c @@ -226,7 +226,7 @@ static void process_ce_no_info(struct mem_ctl_info *mci) { edac_dbg(3, "\n"); - edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, 0, 0, 0, -1, -1, -1, + edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, 0, 0, 0, -1, -1, -1, "e7xxx CE log register overflow", ""); } --- linux-3.13.0.orig/drivers/edac/edac_mc.c +++ linux-3.13.0/drivers/edac/edac_mc.c @@ -559,7 +559,8 @@ * * called with the mem_ctls_mutex held */ -static void edac_mc_workq_setup(struct mem_ctl_info *mci, unsigned msec) +static void edac_mc_workq_setup(struct mem_ctl_info *mci, unsigned msec, + bool init) { edac_dbg(0, "\n"); @@ -567,7 +568,9 @@ if (mci->op_state != OP_RUNNING_POLL) return; - INIT_DELAYED_WORK(&mci->work, edac_mc_workq_function); + if (init) + INIT_DELAYED_WORK(&mci->work, edac_mc_workq_function); + mod_delayed_work(edac_workqueue, &mci->work, msecs_to_jiffies(msec)); } @@ -601,7 +604,7 @@ * user space has updated our poll period value, need to * reset our workq delays */ -void edac_mc_reset_delay_period(int value) +void edac_mc_reset_delay_period(unsigned long value) { struct mem_ctl_info *mci; struct list_head *item; @@ -611,7 +614,7 @@ list_for_each(item, &mc_devices) { mci = list_entry(item, struct mem_ctl_info, link); - edac_mc_workq_setup(mci, (unsigned long) value); + edac_mc_workq_setup(mci, value, false); } mutex_unlock(&mem_ctls_mutex); @@ -782,7 +785,7 @@ /* This instance is NOW RUNNING */ mci->op_state = OP_RUNNING_POLL; - edac_mc_workq_setup(mci, edac_mc_get_poll_msec()); + edac_mc_workq_setup(mci, edac_mc_get_poll_msec(), true); } else { mci->op_state = OP_RUNNING_INTERRUPT; } --- linux-3.13.0.orig/drivers/edac/edac_mc_sysfs.c +++ linux-3.13.0/drivers/edac/edac_mc_sysfs.c @@ -52,18 +52,20 @@ static int edac_set_poll_msec(const char *val, struct kernel_param *kp) { - long l; + unsigned long l; int ret; if (!val) return -EINVAL; - ret = kstrtol(val, 0, &l); + ret = kstrtoul(val, 0, &l); if (ret) return ret; - if ((int)l != l) + + if (l < 1000) return -EINVAL; - *((int *)kp->arg) = l; + + *((unsigned long *)kp->arg) = l; /* notify edac_mc engine to reset the poll period */ edac_mc_reset_delay_period(l); --- linux-3.13.0.orig/drivers/edac/edac_module.h +++ linux-3.13.0/drivers/edac/edac_module.h @@ -52,7 +52,7 @@ extern void edac_device_workq_teardown(struct edac_device_ctl_info *edac_dev); extern void edac_device_reset_delay_period(struct edac_device_ctl_info *edac_dev, unsigned long value); -extern void edac_mc_reset_delay_period(int value); +extern void edac_mc_reset_delay_period(unsigned long value); extern void *edac_align_ptr(void **p, unsigned size, int n_elems); --- linux-3.13.0.orig/drivers/edac/i3200_edac.c +++ linux-3.13.0/drivers/edac/i3200_edac.c @@ -242,11 +242,11 @@ -1, -1, "i3000 UE", ""); } else if (log & I3200_ECCERRLOG_CE) { - edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, + edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, 0, 0, eccerrlog_syndrome(log), eccerrlog_row(channel, log), -1, -1, - "i3000 UE", ""); + "i3000 CE", ""); } } } --- linux-3.13.0.orig/drivers/edac/i7300_edac.c +++ linux-3.13.0/drivers/edac/i7300_edac.c @@ -943,33 +943,35 @@ /* Attempt to 'get' the MCH register we want */ pdev = NULL; - while (!pvt->pci_dev_16_1_fsb_addr_map || - !pvt->pci_dev_16_2_fsb_err_regs) { - pdev = pci_get_device(PCI_VENDOR_ID_INTEL, - PCI_DEVICE_ID_INTEL_I7300_MCH_ERR, pdev); - if (!pdev) { - /* End of list, leave */ - i7300_printk(KERN_ERR, - "'system address,Process Bus' " - "device not found:" - "vendor 0x%x device 0x%x ERR funcs " - "(broken BIOS?)\n", - PCI_VENDOR_ID_INTEL, - PCI_DEVICE_ID_INTEL_I7300_MCH_ERR); - goto error; - } - + while ((pdev = pci_get_device(PCI_VENDOR_ID_INTEL, + PCI_DEVICE_ID_INTEL_I7300_MCH_ERR, + pdev))) { /* Store device 16 funcs 1 and 2 */ switch (PCI_FUNC(pdev->devfn)) { case 1: - pvt->pci_dev_16_1_fsb_addr_map = pdev; + if (!pvt->pci_dev_16_1_fsb_addr_map) + pvt->pci_dev_16_1_fsb_addr_map = + pci_dev_get(pdev); break; case 2: - pvt->pci_dev_16_2_fsb_err_regs = pdev; + if (!pvt->pci_dev_16_2_fsb_err_regs) + pvt->pci_dev_16_2_fsb_err_regs = + pci_dev_get(pdev); break; } } + if (!pvt->pci_dev_16_1_fsb_addr_map || + !pvt->pci_dev_16_2_fsb_err_regs) { + /* At least one device was not found */ + i7300_printk(KERN_ERR, + "'system address,Process Bus' device not found:" + "vendor 0x%x device 0x%x ERR funcs (broken BIOS?)\n", + PCI_VENDOR_ID_INTEL, + PCI_DEVICE_ID_INTEL_I7300_MCH_ERR); + goto error; + } + edac_dbg(1, "System Address, processor bus- PCI Bus ID: %s %x:%x\n", pci_name(pvt->pci_dev_16_0_fsb_ctlr), pvt->pci_dev_16_0_fsb_ctlr->vendor, --- linux-3.13.0.orig/drivers/edac/i7core_edac.c +++ linux-3.13.0/drivers/edac/i7core_edac.c @@ -1334,14 +1334,19 @@ * is at addr 8086:2c40, instead of 8086:2c41. So, we need * to probe for the alternate address in case of failure */ - if (dev_descr->dev_id == PCI_DEVICE_ID_INTEL_I7_NONCORE && !pdev) + if (dev_descr->dev_id == PCI_DEVICE_ID_INTEL_I7_NONCORE && !pdev) { + pci_dev_get(*prev); /* pci_get_device will put it */ pdev = pci_get_device(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_I7_NONCORE_ALT, *prev); + } - if (dev_descr->dev_id == PCI_DEVICE_ID_INTEL_LYNNFIELD_NONCORE && !pdev) + if (dev_descr->dev_id == PCI_DEVICE_ID_INTEL_LYNNFIELD_NONCORE && + !pdev) { + pci_dev_get(*prev); /* pci_get_device will put it */ pdev = pci_get_device(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_LYNNFIELD_NONCORE_ALT, *prev); + } if (!pdev) { if (*prev) { --- linux-3.13.0.orig/drivers/edac/i82860_edac.c +++ linux-3.13.0/drivers/edac/i82860_edac.c @@ -124,7 +124,7 @@ dimm->location[0], dimm->location[1], -1, "i82860 UE", ""); else - edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, 1, + edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, 1, info->eap, 0, info->derrsyn, dimm->location[0], dimm->location[1], -1, "i82860 CE", ""); --- linux-3.13.0.orig/drivers/edac/mpc85xx_edac.c +++ linux-3.13.0/drivers/edac/mpc85xx_edac.c @@ -557,7 +557,7 @@ if (edac_op_state == EDAC_OPSTATE_INT) { pdata->irq = irq_of_parse_and_map(op->dev.of_node, 0); res = devm_request_irq(&op->dev, pdata->irq, - mpc85xx_l2_isr, IRQF_DISABLED, + mpc85xx_l2_isr, IRQF_SHARED, "[EDAC] L2 err", edac_dev); if (res < 0) { printk(KERN_ERR --- linux-3.13.0.orig/drivers/eisa/eisa-bus.c +++ linux-3.13.0/drivers/eisa/eisa-bus.c @@ -275,18 +275,19 @@ } if (slot) { + edev->res[i].name = NULL; edev->res[i].start = SLOT_ADDRESS(root, slot) + (i * 0x400); edev->res[i].end = edev->res[i].start + 0xff; edev->res[i].flags = IORESOURCE_IO; } else { + edev->res[i].name = NULL; edev->res[i].start = SLOT_ADDRESS(root, slot) + EISA_VENDOR_ID_OFFSET; edev->res[i].end = edev->res[i].start + 3; edev->res[i].flags = IORESOURCE_IO | IORESOURCE_BUSY; } - dev_printk(KERN_DEBUG, &edev->dev, "%pR\n", &edev->res[i]); if (request_resource(root->res, &edev->res[i])) goto failed; } @@ -326,19 +327,20 @@ return -ENOMEM; } - if (eisa_init_device(root, edev, 0)) { + if (eisa_request_resources(root, edev, 0)) { + dev_warn(root->dev, + "EISA: Cannot allocate resource for mainboard\n"); kfree(edev); if (!root->force_probe) - return -ENODEV; + return -EBUSY; goto force_probe; } - if (eisa_request_resources(root, edev, 0)) { - dev_warn(root->dev, - "EISA: Cannot allocate resource for mainboard\n"); + if (eisa_init_device(root, edev, 0)) { + eisa_release_resources(edev); kfree(edev); if (!root->force_probe) - return -EBUSY; + return -ENODEV; goto force_probe; } @@ -361,11 +363,6 @@ continue; } - if (eisa_init_device(root, edev, i)) { - kfree(edev); - continue; - } - if (eisa_request_resources(root, edev, i)) { dev_warn(root->dev, "Cannot allocate resource for EISA slot %d\n", @@ -373,6 +370,12 @@ kfree(edev); continue; } + + if (eisa_init_device(root, edev, i)) { + eisa_release_resources(edev); + kfree(edev); + continue; + } if (edev->state == (EISA_CONFIG_ENABLED | EISA_CONFIG_FORCED)) enabled_str = " (forced enabled)"; --- linux-3.13.0.orig/drivers/extcon/extcon-gpio.c +++ linux-3.13.0/drivers/extcon/extcon-gpio.c @@ -105,6 +105,12 @@ extcon_data->state_off = pdata->state_off; if (pdata->state_on && pdata->state_off) extcon_data->edev.print_state = extcon_gpio_print_state; + + ret = devm_gpio_request_one(&pdev->dev, extcon_data->gpio, GPIOF_DIR_IN, + pdev->name); + if (ret < 0) + return ret; + if (pdata->debounce) { ret = gpio_set_debounce(extcon_data->gpio, pdata->debounce * 1000); @@ -117,11 +123,6 @@ if (ret < 0) return ret; - ret = devm_gpio_request_one(&pdev->dev, extcon_data->gpio, GPIOF_DIR_IN, - pdev->name); - if (ret < 0) - goto err; - INIT_DELAYED_WORK(&extcon_data->work, gpio_extcon_work); extcon_data->irq = gpio_to_irq(extcon_data->gpio); --- linux-3.13.0.orig/drivers/extcon/extcon-max77693.c +++ linux-3.13.0/drivers/extcon/extcon-max77693.c @@ -1193,7 +1193,7 @@ /* Initialize MUIC register by using platform data or default data */ - if (pdata->muic_data) { + if (pdata && pdata->muic_data) { init_data = pdata->muic_data->init_data; num_init_data = pdata->muic_data->num_init_data; } else { @@ -1226,7 +1226,7 @@ = init_data[i].data; } - if (pdata->muic_data) { + if (pdata && pdata->muic_data) { struct max77693_muic_platform_data *muic_pdata = pdata->muic_data; --- linux-3.13.0.orig/drivers/extcon/extcon-max8997.c +++ linux-3.13.0/drivers/extcon/extcon-max8997.c @@ -715,7 +715,7 @@ goto err_irq; } - if (pdata->muic_pdata) { + if (pdata && pdata->muic_pdata) { struct max8997_muic_platform_data *muic_pdata = pdata->muic_pdata; --- linux-3.13.0.orig/drivers/firewire/core-cdev.c +++ linux-3.13.0/drivers/firewire/core-cdev.c @@ -1637,8 +1637,7 @@ _IOC_SIZE(cmd) > sizeof(buffer)) return -ENOTTY; - if (_IOC_DIR(cmd) == _IOC_READ) - memset(&buffer, 0, _IOC_SIZE(cmd)); + memset(&buffer, 0, sizeof(buffer)); if (_IOC_DIR(cmd) & _IOC_WRITE) if (copy_from_user(&buffer, arg, _IOC_SIZE(cmd))) --- linux-3.13.0.orig/drivers/firewire/core-device.c +++ linux-3.13.0/drivers/firewire/core-device.c @@ -916,7 +916,7 @@ old->config_rom_retries = 0; fw_notice(card, "rediscovered device %s\n", dev_name(dev)); - PREPARE_DELAYED_WORK(&old->work, fw_device_update); + old->workfn = fw_device_update; fw_schedule_device_work(old, 0); if (current_node == card->root_node) @@ -1075,7 +1075,7 @@ if (atomic_cmpxchg(&device->state, FW_DEVICE_INITIALIZING, FW_DEVICE_RUNNING) == FW_DEVICE_GONE) { - PREPARE_DELAYED_WORK(&device->work, fw_device_shutdown); + device->workfn = fw_device_shutdown; fw_schedule_device_work(device, SHUTDOWN_DELAY); } else { fw_notice(card, "created device %s: GUID %08x%08x, S%d00\n", @@ -1196,13 +1196,20 @@ dev_name(&device->device), fw_rcode_string(ret)); gone: atomic_set(&device->state, FW_DEVICE_GONE); - PREPARE_DELAYED_WORK(&device->work, fw_device_shutdown); + device->workfn = fw_device_shutdown; fw_schedule_device_work(device, SHUTDOWN_DELAY); out: if (node_id == card->root_node->node_id) fw_schedule_bm_work(card, 0); } +static void fw_device_workfn(struct work_struct *work) +{ + struct fw_device *device = container_of(to_delayed_work(work), + struct fw_device, work); + device->workfn(work); +} + void fw_node_event(struct fw_card *card, struct fw_node *node, int event) { struct fw_device *device; @@ -1252,7 +1259,8 @@ * power-up after getting plugged in. We schedule the * first config rom scan half a second after bus reset. */ - INIT_DELAYED_WORK(&device->work, fw_device_init); + device->workfn = fw_device_init; + INIT_DELAYED_WORK(&device->work, fw_device_workfn); fw_schedule_device_work(device, INITIAL_DELAY); break; @@ -1268,7 +1276,7 @@ if (atomic_cmpxchg(&device->state, FW_DEVICE_RUNNING, FW_DEVICE_INITIALIZING) == FW_DEVICE_RUNNING) { - PREPARE_DELAYED_WORK(&device->work, fw_device_refresh); + device->workfn = fw_device_refresh; fw_schedule_device_work(device, device->is_local ? 0 : INITIAL_DELAY); } @@ -1283,7 +1291,7 @@ smp_wmb(); /* update node_id before generation */ device->generation = card->generation; if (atomic_read(&device->state) == FW_DEVICE_RUNNING) { - PREPARE_DELAYED_WORK(&device->work, fw_device_update); + device->workfn = fw_device_update; fw_schedule_device_work(device, 0); } break; @@ -1308,7 +1316,7 @@ device = node->data; if (atomic_xchg(&device->state, FW_DEVICE_GONE) == FW_DEVICE_RUNNING) { - PREPARE_DELAYED_WORK(&device->work, fw_device_shutdown); + device->workfn = fw_device_shutdown; fw_schedule_device_work(device, list_empty(&card->link) ? 0 : SHUTDOWN_DELAY); } --- linux-3.13.0.orig/drivers/firewire/net.c +++ linux-3.13.0/drivers/firewire/net.c @@ -929,8 +929,6 @@ if (rcode == RCODE_COMPLETE) { fwnet_transmit_packet_done(ptask); } else { - fwnet_transmit_packet_failed(ptask); - if (printk_timed_ratelimit(&j, 1000) || rcode != last_rcode) { dev_err(&ptask->dev->netdev->dev, "fwnet_write_complete failed: %x (skipped %d)\n", @@ -938,8 +936,10 @@ errors_skipped = 0; last_rcode = rcode; - } else + } else { errors_skipped++; + } + fwnet_transmit_packet_failed(ptask); } } --- linux-3.13.0.orig/drivers/firewire/ohci.c +++ linux-3.13.0/drivers/firewire/ohci.c @@ -290,7 +290,6 @@ #define QUIRK_NO_MSI 0x10 #define QUIRK_TI_SLLZ059 0x20 #define QUIRK_IR_WAKE 0x40 -#define QUIRK_PHY_LCTRL_TIMEOUT 0x80 /* In case of multiple matches in ohci_quirks[], only the first one is used. */ static const struct { @@ -303,10 +302,7 @@ QUIRK_BE_HEADERS}, {PCI_VENDOR_ID_ATT, PCI_DEVICE_ID_AGERE_FW643, 6, - QUIRK_PHY_LCTRL_TIMEOUT | QUIRK_NO_MSI}, - - {PCI_VENDOR_ID_ATT, PCI_ANY_ID, PCI_ANY_ID, - QUIRK_PHY_LCTRL_TIMEOUT}, + QUIRK_NO_MSI}, {PCI_VENDOR_ID_CREATIVE, PCI_DEVICE_ID_CREATIVE_SB1394, PCI_ANY_ID, QUIRK_RESET_PACKET}, @@ -353,7 +349,6 @@ ", disable MSI = " __stringify(QUIRK_NO_MSI) ", TI SLLZ059 erratum = " __stringify(QUIRK_TI_SLLZ059) ", IR wake unreliable = " __stringify(QUIRK_IR_WAKE) - ", phy LCtrl timeout = " __stringify(QUIRK_PHY_LCTRL_TIMEOUT) ")"); #define OHCI_PARAM_DEBUG_AT_AR 1 @@ -2295,9 +2290,6 @@ * TI TSB82AA2 + TSB81BA3(A) cards signal LPS enabled early but * cannot actually use the phy at that time. These need tens of * millisecods pause between LPS write and first phy access too. - * - * But do not wait for 50msec on Agere/LSI cards. Their phy - * arbitration state machine may time out during such a long wait. */ reg_write(ohci, OHCI1394_HCControlSet, @@ -2305,11 +2297,8 @@ OHCI1394_HCControl_postedWriteEnable); flush_writes(ohci); - if (!(ohci->quirks & QUIRK_PHY_LCTRL_TIMEOUT)) + for (lps = 0, i = 0; !lps && i < 3; i++) { msleep(50); - - for (lps = 0, i = 0; !lps && i < 150; i++) { - msleep(1); lps = reg_read(ohci, OHCI1394_HCControlSet) & OHCI1394_HCControl_LPS; } --- linux-3.13.0.orig/drivers/firewire/sbp2.c +++ linux-3.13.0/drivers/firewire/sbp2.c @@ -146,6 +146,7 @@ */ int generation; int retries; + work_func_t workfn; struct delayed_work work; bool has_sdev; bool blocked; @@ -864,7 +865,7 @@ /* set appropriate retry limit(s) in BUSY_TIMEOUT register */ sbp2_set_busy_timeout(lu); - PREPARE_DELAYED_WORK(&lu->work, sbp2_reconnect); + lu->workfn = sbp2_reconnect; sbp2_agent_reset(lu); /* This was a re-login. */ @@ -918,7 +919,7 @@ * If a bus reset happened, sbp2_update will have requeued * lu->work already. Reset the work from reconnect to login. */ - PREPARE_DELAYED_WORK(&lu->work, sbp2_login); + lu->workfn = sbp2_login; } static void sbp2_reconnect(struct work_struct *work) @@ -952,7 +953,7 @@ lu->retries++ >= 5) { dev_err(tgt_dev(tgt), "failed to reconnect\n"); lu->retries = 0; - PREPARE_DELAYED_WORK(&lu->work, sbp2_login); + lu->workfn = sbp2_login; } sbp2_queue_work(lu, DIV_ROUND_UP(HZ, 5)); @@ -972,6 +973,13 @@ sbp2_conditionally_unblock(lu); } +static void sbp2_lu_workfn(struct work_struct *work) +{ + struct sbp2_logical_unit *lu = container_of(to_delayed_work(work), + struct sbp2_logical_unit, work); + lu->workfn(work); +} + static int sbp2_add_logical_unit(struct sbp2_target *tgt, int lun_entry) { struct sbp2_logical_unit *lu; @@ -998,7 +1006,8 @@ lu->blocked = false; ++tgt->dont_block; INIT_LIST_HEAD(&lu->orb_list); - INIT_DELAYED_WORK(&lu->work, sbp2_login); + lu->workfn = sbp2_login; + INIT_DELAYED_WORK(&lu->work, sbp2_lu_workfn); list_add_tail(&lu->link, &tgt->lu_list); return 0; --- linux-3.13.0.orig/drivers/firmware/efi/efi-pstore.c +++ linux-3.13.0/drivers/firmware/efi/efi-pstore.c @@ -40,7 +40,7 @@ static inline u64 generic_id(unsigned long timestamp, unsigned int part, int count) { - return (timestamp * 100 + part) * 1000 + count; + return ((u64) timestamp * 100 + part) * 1000 + count; } static int efi_pstore_read_func(struct efivar_entry *entry, void *data) --- linux-3.13.0.orig/drivers/firmware/efi/vars.c +++ linux-3.13.0/drivers/firmware/efi/vars.c @@ -481,7 +481,7 @@ */ static void efivar_entry_list_del_unlock(struct efivar_entry *entry) { - WARN_ON(!spin_is_locked(&__efivars->lock)); + lockdep_assert_held(&__efivars->lock); list_del(&entry->list); spin_unlock_irq(&__efivars->lock); @@ -507,7 +507,7 @@ const struct efivar_operations *ops = __efivars->ops; efi_status_t status; - WARN_ON(!spin_is_locked(&__efivars->lock)); + lockdep_assert_held(&__efivars->lock); status = ops->set_variable(entry->var.VariableName, &entry->var.VendorGuid, @@ -667,7 +667,7 @@ int strsize1, strsize2; bool found = false; - WARN_ON(!spin_is_locked(&__efivars->lock)); + lockdep_assert_held(&__efivars->lock); list_for_each_entry_safe(entry, n, head, list) { strsize1 = ucs2_strsize(name, 1024); @@ -739,7 +739,7 @@ const struct efivar_operations *ops = __efivars->ops; efi_status_t status; - WARN_ON(!spin_is_locked(&__efivars->lock)); + lockdep_assert_held(&__efivars->lock); status = ops->get_variable(entry->var.VariableName, &entry->var.VendorGuid, --- linux-3.13.0.orig/drivers/gpio/Kconfig +++ linux-3.13.0/drivers/gpio/Kconfig @@ -121,6 +121,15 @@ help Say yes here to support basic platform_device memory-mapped GPIO controllers. +config GPIO_DWAPB + tristate "Synopsys DesignWare APB GPIO driver" + select GPIO_GENERIC + select GENERIC_IRQ_CHIP + depends on OF_GPIO + help + Say Y or M here to build support for the Synopsys DesignWare APB + GPIO block. + config GPIO_IT8761E tristate "IT8761E GPIO support" depends on X86 # unconditional access to IO space. --- linux-3.13.0.orig/drivers/gpio/Makefile +++ linux-3.13.0/drivers/gpio/Makefile @@ -23,6 +23,7 @@ obj-$(CONFIG_GPIO_DA9052) += gpio-da9052.o obj-$(CONFIG_GPIO_DA9055) += gpio-da9055.o obj-$(CONFIG_ARCH_DAVINCI) += gpio-davinci.o +obj-$(CONFIG_GPIO_DWAPB) += gpio-dwapb.o obj-$(CONFIG_GPIO_EM) += gpio-em.o obj-$(CONFIG_GPIO_EP93XX) += gpio-ep93xx.o obj-$(CONFIG_GPIO_F7188X) += gpio-f7188x.o --- linux-3.13.0.orig/drivers/gpio/gpio-dwapb.c +++ linux-3.13.0/drivers/gpio/gpio-dwapb.c @@ -0,0 +1,442 @@ +/* + * Copyright (c) 2011 Jamie Iles + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * All enquiries to support@picochip.com + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define GPIO_SWPORTA_DR 0x00 +#define GPIO_SWPORTA_DDR 0x04 +#define GPIO_SWPORTB_DR 0x0c +#define GPIO_SWPORTB_DDR 0x10 +#define GPIO_SWPORTC_DR 0x18 +#define GPIO_SWPORTC_DDR 0x1c +#define GPIO_SWPORTD_DR 0x24 +#define GPIO_SWPORTD_DDR 0x28 +#define GPIO_INTEN 0x30 +#define GPIO_INTMASK 0x34 +#define GPIO_INTTYPE_LEVEL 0x38 +#define GPIO_INT_POLARITY 0x3c +#define GPIO_INTSTATUS 0x40 +#define GPIO_PORTA_EOI 0x4c +#define GPIO_EXT_PORTA 0x50 +#define GPIO_EXT_PORTB 0x54 +#define GPIO_EXT_PORTC 0x58 +#define GPIO_EXT_PORTD 0x5c + +#define DWAPB_MAX_PORTS 4 +#define GPIO_EXT_PORT_SIZE (GPIO_EXT_PORTB - GPIO_EXT_PORTA) +#define GPIO_SWPORT_DR_SIZE (GPIO_SWPORTB_DR - GPIO_SWPORTA_DR) +#define GPIO_SWPORT_DDR_SIZE (GPIO_SWPORTB_DDR - GPIO_SWPORTA_DDR) + +struct dwapb_gpio; + +struct dwapb_gpio_port { + struct bgpio_chip bgc; + bool is_registered; + struct dwapb_gpio *gpio; +}; + +struct dwapb_gpio { + struct device *dev; + void __iomem *regs; + struct dwapb_gpio_port *ports; + unsigned int nr_ports; + struct irq_domain *domain; +}; + +static int dwapb_gpio_to_irq(struct gpio_chip *gc, unsigned offset) +{ + struct bgpio_chip *bgc = to_bgpio_chip(gc); + struct dwapb_gpio_port *port = container_of(bgc, struct + dwapb_gpio_port, bgc); + struct dwapb_gpio *gpio = port->gpio; + + return irq_find_mapping(gpio->domain, offset); +} + +static void dwapb_toggle_trigger(struct dwapb_gpio *gpio, unsigned int offs) +{ + u32 v = readl(gpio->regs + GPIO_INT_POLARITY); + + if (gpio_get_value(gpio->ports[0].bgc.gc.base + offs)) + v &= ~BIT(offs); + else + v |= BIT(offs); + + writel(v, gpio->regs + GPIO_INT_POLARITY); +} + +static void dwapb_irq_handler(u32 irq, struct irq_desc *desc) +{ + struct dwapb_gpio *gpio = irq_get_handler_data(irq); + struct irq_chip *chip = irq_desc_get_chip(desc); + u32 irq_status = readl_relaxed(gpio->regs + GPIO_INTSTATUS); + + while (irq_status) { + int hwirq = fls(irq_status) - 1; + int gpio_irq = irq_find_mapping(gpio->domain, hwirq); + + generic_handle_irq(gpio_irq); + irq_status &= ~BIT(hwirq); + + if ((irq_get_trigger_type(gpio_irq) & IRQ_TYPE_SENSE_MASK) + == IRQ_TYPE_EDGE_BOTH) + dwapb_toggle_trigger(gpio, hwirq); + } + + if (chip->irq_eoi) + chip->irq_eoi(irq_desc_get_irq_data(desc)); +} + +static void dwapb_irq_enable(struct irq_data *d) +{ + struct irq_chip_generic *igc = irq_data_get_irq_chip_data(d); + struct dwapb_gpio *gpio = igc->private; + struct bgpio_chip *bgc = &gpio->ports[0].bgc; + unsigned long flags; + u32 val; + + spin_lock_irqsave(&bgc->lock, flags); + val = readl(gpio->regs + GPIO_INTEN); + val |= BIT(d->hwirq); + writel(val, gpio->regs + GPIO_INTEN); + spin_unlock_irqrestore(&bgc->lock, flags); +} + +static void dwapb_irq_disable(struct irq_data *d) +{ + struct irq_chip_generic *igc = irq_data_get_irq_chip_data(d); + struct dwapb_gpio *gpio = igc->private; + struct bgpio_chip *bgc = &gpio->ports[0].bgc; + unsigned long flags; + u32 val; + + spin_lock_irqsave(&bgc->lock, flags); + val = readl(gpio->regs + GPIO_INTEN); + val &= ~BIT(d->hwirq); + writel(val, gpio->regs + GPIO_INTEN); + spin_unlock_irqrestore(&bgc->lock, flags); +} + +static unsigned int dwapb_irq_startup(struct irq_data *d) +{ + struct irq_chip_generic *igc = irq_data_get_irq_chip_data(d); + struct dwapb_gpio *gpio = igc->private; + struct bgpio_chip *bgc = &gpio->ports[0].bgc; + + if (gpio_lock_as_irq(&bgc->gc, irqd_to_hwirq(d))) + dev_err(gpio->dev, "unable to lock HW IRQ %lu for IRQ\n", + irqd_to_hwirq(d)); + dwapb_irq_enable(d); + return 0; +} + +static void dwapb_irq_shutdown(struct irq_data *d) +{ + struct irq_chip_generic *igc = irq_data_get_irq_chip_data(d); + struct dwapb_gpio *gpio = igc->private; + struct bgpio_chip *bgc = &gpio->ports[0].bgc; + + dwapb_irq_disable(d); + gpio_unlock_as_irq(&bgc->gc, irqd_to_hwirq(d)); +} + +static int dwapb_irq_set_type(struct irq_data *d, u32 type) +{ + struct irq_chip_generic *igc = irq_data_get_irq_chip_data(d); + struct dwapb_gpio *gpio = igc->private; + struct bgpio_chip *bgc = &gpio->ports[0].bgc; + int bit = d->hwirq; + unsigned long level, polarity, flags; + + if (type & ~(IRQ_TYPE_EDGE_RISING | IRQ_TYPE_EDGE_FALLING | + IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW)) + return -EINVAL; + + spin_lock_irqsave(&bgc->lock, flags); + level = readl(gpio->regs + GPIO_INTTYPE_LEVEL); + polarity = readl(gpio->regs + GPIO_INT_POLARITY); + + switch (type) { + case IRQ_TYPE_EDGE_BOTH: + level |= BIT(bit); + dwapb_toggle_trigger(gpio, bit); + break; + case IRQ_TYPE_EDGE_RISING: + level |= BIT(bit); + polarity |= BIT(bit); + break; + case IRQ_TYPE_EDGE_FALLING: + level |= BIT(bit); + polarity &= ~BIT(bit); + break; + case IRQ_TYPE_LEVEL_HIGH: + level &= ~BIT(bit); + polarity |= BIT(bit); + break; + case IRQ_TYPE_LEVEL_LOW: + level &= ~BIT(bit); + polarity &= ~BIT(bit); + break; + } + + irq_setup_alt_chip(d, type); + + writel(level, gpio->regs + GPIO_INTTYPE_LEVEL); + writel(polarity, gpio->regs + GPIO_INT_POLARITY); + spin_unlock_irqrestore(&bgc->lock, flags); + + return 0; +} + +static void dwapb_configure_irqs(struct dwapb_gpio *gpio, + struct dwapb_gpio_port *port) +{ + struct gpio_chip *gc = &port->bgc.gc; + struct device_node *node = gc->of_node; + struct irq_chip_generic *irq_gc; + unsigned int hwirq, ngpio = gc->ngpio; + struct irq_chip_type *ct; + int err, irq, i; + + irq = irq_of_parse_and_map(node, 0); + if (!irq) { + dev_warn(gpio->dev, "no irq for bank %s\n", + port->bgc.gc.of_node->full_name); + return; + } + + gpio->domain = irq_domain_add_linear(node, ngpio, + &irq_generic_chip_ops, gpio); + if (!gpio->domain) + return; + + err = irq_alloc_domain_generic_chips(gpio->domain, ngpio, 2, + "gpio-dwapb", handle_level_irq, + IRQ_NOREQUEST, 0, + IRQ_GC_INIT_NESTED_LOCK); + if (err) { + dev_info(gpio->dev, "irq_alloc_domain_generic_chips failed\n"); + irq_domain_remove(gpio->domain); + gpio->domain = NULL; + return; + } + + irq_gc = irq_get_domain_generic_chip(gpio->domain, 0); + if (!irq_gc) { + irq_domain_remove(gpio->domain); + gpio->domain = NULL; + return; + } + + irq_gc->reg_base = gpio->regs; + irq_gc->private = gpio; + + for (i = 0; i < 2; i++) { + ct = &irq_gc->chip_types[i]; + ct->chip.irq_ack = irq_gc_ack_set_bit; + ct->chip.irq_mask = irq_gc_mask_set_bit; + ct->chip.irq_unmask = irq_gc_mask_clr_bit; + ct->chip.irq_set_type = dwapb_irq_set_type; + ct->chip.irq_enable = dwapb_irq_enable; + ct->chip.irq_disable = dwapb_irq_disable; + ct->regs.ack = GPIO_PORTA_EOI; + ct->regs.mask = GPIO_INTMASK; + ct->type = IRQ_TYPE_LEVEL_MASK; + } + + irq_gc->chip_types[0].type = IRQ_TYPE_LEVEL_MASK; + irq_gc->chip_types[1].type = IRQ_TYPE_EDGE_BOTH; + irq_gc->chip_types[1].handler = handle_edge_irq; + + irq_set_chained_handler(irq, dwapb_irq_handler); + irq_set_handler_data(irq, gpio); + + for (hwirq = 0 ; hwirq < ngpio ; hwirq++) + irq_create_mapping(gpio->domain, hwirq); + + port->bgc.gc.to_irq = dwapb_gpio_to_irq; +} + +static void dwapb_irq_teardown(struct dwapb_gpio *gpio) +{ + struct dwapb_gpio_port *port = &gpio->ports[0]; + struct gpio_chip *gc = &port->bgc.gc; + unsigned int ngpio = gc->ngpio; + irq_hw_number_t hwirq; + + if (!gpio->domain) + return; + + for (hwirq = 0 ; hwirq < ngpio ; hwirq++) + irq_dispose_mapping(irq_find_mapping(gpio->domain, hwirq)); + + irq_domain_remove(gpio->domain); + gpio->domain = NULL; +} + +static int dwapb_gpio_add_port(struct dwapb_gpio *gpio, + struct device_node *port_np, + unsigned int offs) +{ + struct dwapb_gpio_port *port; + u32 port_idx, ngpio; + void __iomem *dat, *set, *dirout; + int err; + + if (of_property_read_u32(port_np, "reg", &port_idx) || + port_idx >= DWAPB_MAX_PORTS) { + dev_err(gpio->dev, "missing/invalid port index for %s\n", + port_np->full_name); + return -EINVAL; + } + + port = &gpio->ports[offs]; + port->gpio = gpio; + + if (of_property_read_u32(port_np, "snps,nr-gpios", &ngpio)) { + dev_info(gpio->dev, "failed to get number of gpios for %s\n", + port_np->full_name); + ngpio = 32; + } + + dat = gpio->regs + GPIO_EXT_PORTA + (port_idx * GPIO_EXT_PORT_SIZE); + set = gpio->regs + GPIO_SWPORTA_DR + (port_idx * GPIO_SWPORT_DR_SIZE); + dirout = gpio->regs + GPIO_SWPORTA_DDR + + (port_idx * GPIO_SWPORT_DDR_SIZE); + + err = bgpio_init(&port->bgc, gpio->dev, 4, dat, set, NULL, dirout, + NULL, false); + if (err) { + dev_err(gpio->dev, "failed to init gpio chip for %s\n", + port_np->full_name); + return err; + } + + port->bgc.gc.ngpio = ngpio; + port->bgc.gc.of_node = port_np; + + /* + * Only port A can provide interrupts in all configurations of the IP. + */ + if (port_idx == 0 && + of_property_read_bool(port_np, "interrupt-controller")) + dwapb_configure_irqs(gpio, port); + + err = gpiochip_add(&port->bgc.gc); + if (err) + dev_err(gpio->dev, "failed to register gpiochip for %s\n", + port_np->full_name); + else + port->is_registered = true; + + return err; +} + +static void dwapb_gpio_unregister(struct dwapb_gpio *gpio) +{ + unsigned int m; + + for (m = 0; m < gpio->nr_ports; ++m) + if (gpio->ports[m].is_registered) + WARN_ON(gpiochip_remove(&gpio->ports[m].bgc.gc)); +} + +static int dwapb_gpio_probe(struct platform_device *pdev) +{ + struct resource *res; + struct dwapb_gpio *gpio; + struct device_node *np; + int err; + unsigned int offs = 0; + + gpio = devm_kzalloc(&pdev->dev, sizeof(*gpio), GFP_KERNEL); + if (!gpio) + return -ENOMEM; + gpio->dev = &pdev->dev; + + gpio->nr_ports = of_get_child_count(pdev->dev.of_node); + if (!gpio->nr_ports) { + err = -EINVAL; + goto out_err; + } + gpio->ports = devm_kzalloc(&pdev->dev, gpio->nr_ports * + sizeof(*gpio->ports), GFP_KERNEL); + if (!gpio->ports) { + err = -ENOMEM; + goto out_err; + } + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + gpio->regs = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(gpio->regs)) { + err = PTR_ERR(gpio->regs); + goto out_err; + } + + for_each_child_of_node(pdev->dev.of_node, np) { + err = dwapb_gpio_add_port(gpio, np, offs++); + if (err) + goto out_unregister; + } + platform_set_drvdata(pdev, gpio); + + return 0; + +out_unregister: + dwapb_gpio_unregister(gpio); + dwapb_irq_teardown(gpio); + +out_err: + return err; +} + +static int dwapb_gpio_remove(struct platform_device *pdev) +{ + struct dwapb_gpio *gpio = platform_get_drvdata(pdev); + + dwapb_gpio_unregister(gpio); + dwapb_irq_teardown(gpio); + + return 0; +} + +static const struct of_device_id dwapb_of_match[] = { + { .compatible = "snps,dw-apb-gpio" }, + { /* Sentinel */ } +}; +MODULE_DEVICE_TABLE(of, dwapb_of_match); + +static struct platform_driver dwapb_gpio_driver = { + .driver = { + .name = "gpio-dwapb", + .owner = THIS_MODULE, + .of_match_table = of_match_ptr(dwapb_of_match), + }, + .probe = dwapb_gpio_probe, + .remove = dwapb_gpio_remove, +}; + +module_platform_driver(dwapb_gpio_driver); + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Jamie Iles"); +MODULE_DESCRIPTION("Synopsys DesignWare APB GPIO driver"); --- linux-3.13.0.orig/drivers/gpio/gpio-mcp23s08.c +++ linux-3.13.0/drivers/gpio/gpio-mcp23s08.c @@ -656,9 +656,11 @@ dev_err(&spi->dev, "invalid spi-present-mask\n"); return -ENODEV; } - - for (addr = 0; addr < ARRAY_SIZE(pdata->chip); addr++) + for (addr = 0; addr < ARRAY_SIZE(pdata->chip); addr++) { + if ((spi_present_mask & (1 << addr))) + chips++; pullups[addr] = 0; + } } else { type = spi_get_device_id(spi)->driver_data; pdata = dev_get_platdata(&spi->dev); @@ -681,12 +683,12 @@ pullups[addr] = pdata->chip[addr].pullups; } - if (!chips) - return -ENODEV; - base = pdata->base; } + if (!chips) + return -ENODEV; + data = kzalloc(sizeof *data + chips * sizeof(struct mcp23s08), GFP_KERNEL); if (!data) --- linux-3.13.0.orig/drivers/gpio/gpio-mxs.c +++ linux-3.13.0/drivers/gpio/gpio-mxs.c @@ -214,7 +214,8 @@ ct->regs.ack = PINCTRL_IRQSTAT(port) + MXS_CLR; ct->regs.mask = PINCTRL_IRQEN(port); - irq_setup_generic_chip(gc, IRQ_MSK(32), 0, IRQ_NOREQUEST, 0); + irq_setup_generic_chip(gc, IRQ_MSK(32), IRQ_GC_INIT_NESTED_LOCK, + IRQ_NOREQUEST, 0); } static int mxs_gpio_to_irq(struct gpio_chip *gc, unsigned offset) --- linux-3.13.0.orig/drivers/gpu/drm/armada/armada_crtc.c +++ linux-3.13.0/drivers/gpu/drm/armada/armada_crtc.c @@ -678,6 +678,7 @@ base + LCD_SPU_SRAM_WRDAT); writel_relaxed(addr | SRAM_WRITE, base + LCD_SPU_SRAM_CTRL); + readl_relaxed(base + LCD_SPU_HWC_OVSA_HPXL_VLN); addr += 1; if ((addr & 0x00ff) == 0) addr += 0xf00; --- linux-3.13.0.orig/drivers/gpu/drm/armada/armada_drv.c +++ linux-3.13.0/drivers/gpu/drm/armada/armada_drv.c @@ -68,15 +68,7 @@ { struct armada_private *priv = dev->dev_private; - /* - * Yes, we really must jump through these hoops just to store a - * _pointer_ to something into the kfifo. This is utterly insane - * and idiotic, because it kfifo requires the _data_ pointed to by - * the pointer const, not the pointer itself. Not only that, but - * you have to pass a pointer _to_ the pointer you want stored. - */ - const struct drm_framebuffer *silly_api_alert = fb; - WARN_ON(!kfifo_put(&priv->fb_unref, &silly_api_alert)); + WARN_ON(!kfifo_put(&priv->fb_unref, fb)); schedule_work(&priv->fb_unref_work); } --- linux-3.13.0.orig/drivers/gpu/drm/ast/ast_fb.c +++ linux-3.13.0/drivers/gpu/drm/ast/ast_fb.c @@ -65,7 +65,7 @@ * then the BO is being moved and we should * store up the damage until later. */ - if (!in_interrupt()) + if (drm_can_sleep()) ret = ast_bo_reserve(bo, true); if (ret) { if (ret != -EBUSY) --- linux-3.13.0.orig/drivers/gpu/drm/ast/ast_main.c +++ linux-3.13.0/drivers/gpu/drm/ast/ast_main.c @@ -66,6 +66,7 @@ static int ast_detect_chip(struct drm_device *dev) { struct ast_private *ast = dev->dev_private; + ast_open_key(ast); if (dev->pdev->device == PCI_CHIP_AST1180) { ast->chip = AST1100; @@ -100,7 +101,7 @@ } ast->vga2_clone = false; } else { - ast->chip = 2000; + ast->chip = AST2000; DRM_INFO("AST 2000 detected\n"); } } --- linux-3.13.0.orig/drivers/gpu/drm/ast/ast_mode.c +++ linux-3.13.0/drivers/gpu/drm/ast/ast_mode.c @@ -1012,8 +1012,8 @@ srcdata32[1].ul = *((u32 *)(srcxor + 4)) & 0xf0f0f0f0; data32.b[0] = srcdata32[0].b[1] | (srcdata32[0].b[0] >> 4); data32.b[1] = srcdata32[0].b[3] | (srcdata32[0].b[2] >> 4); - data32.b[2] = srcdata32[0].b[1] | (srcdata32[1].b[0] >> 4); - data32.b[3] = srcdata32[0].b[3] | (srcdata32[1].b[2] >> 4); + data32.b[2] = srcdata32[1].b[1] | (srcdata32[1].b[0] >> 4); + data32.b[3] = srcdata32[1].b[3] | (srcdata32[1].b[2] >> 4); writel(data32.ul, dstxor); csum += data32.ul; --- linux-3.13.0.orig/drivers/gpu/drm/cirrus/cirrus_drv.c +++ linux-3.13.0/drivers/gpu/drm/cirrus/cirrus_drv.c @@ -31,6 +31,8 @@ static DEFINE_PCI_DEVICE_TABLE(pciidlist) = { { PCI_VENDOR_ID_CIRRUS, PCI_DEVICE_ID_CIRRUS_5446, 0x1af4, 0x1100, 0, 0, 0 }, + { PCI_VENDOR_ID_CIRRUS, PCI_DEVICE_ID_CIRRUS_5446, PCI_VENDOR_ID_XEN, + 0x0001, 0, 0, 0 }, {0,} }; --- linux-3.13.0.orig/drivers/gpu/drm/cirrus/cirrus_fbdev.c +++ linux-3.13.0/drivers/gpu/drm/cirrus/cirrus_fbdev.c @@ -39,7 +39,7 @@ * then the BO is being moved and we should * store up the damage until later. */ - if (!in_interrupt()) + if (drm_can_sleep()) ret = cirrus_bo_reserve(bo, true); if (ret) { if (ret != -EBUSY) --- linux-3.13.0.orig/drivers/gpu/drm/cirrus/cirrus_mode.c +++ linux-3.13.0/drivers/gpu/drm/cirrus/cirrus_mode.c @@ -273,8 +273,8 @@ sr07 |= 0x11; break; case 16: - sr07 |= 0xc1; - hdr = 0xc0; + sr07 |= 0x17; + hdr = 0xc1; break; case 24: sr07 |= 0x15; --- linux-3.13.0.orig/drivers/gpu/drm/drm_crtc.c +++ linux-3.13.0/drivers/gpu/drm/drm_crtc.c @@ -215,6 +215,16 @@ { DRM_MODE_ENCODER_DSI, "DSI" }, }; +static const struct drm_prop_enum_list drm_subpixel_enum_list[] = +{ + { SubPixelUnknown, "Unknown" }, + { SubPixelHorizontalRGB, "Horizontal RGB" }, + { SubPixelHorizontalBGR, "Horizontal BGR" }, + { SubPixelVerticalRGB, "Vertical RGB" }, + { SubPixelVerticalBGR, "Vertical BGR" }, + { SubPixelNone, "None" }, +}; + void drm_connector_ida_init(void) { int i; @@ -264,6 +274,19 @@ } EXPORT_SYMBOL(drm_get_connector_status_name); +/** + * drm_get_subpixel_order_name - return a string for a given subpixel enum + * @order: enum of subpixel_order + * + * Note you could abuse this and return something out of bounds, but that + * would be a caller error. No unscrubbed user data should make it here. + */ +const char *drm_get_subpixel_order_name(enum subpixel_order order) +{ + return drm_subpixel_enum_list[order].name; +} +EXPORT_SYMBOL(drm_get_subpixel_order_name); + static char printable_char(int c) { return isascii(c) && isprint(c) ? c : '?'; @@ -675,6 +698,29 @@ EXPORT_SYMBOL(drm_crtc_cleanup); /** + * drm_crtc_index - find the index of a registered CRTC + * @crtc: CRTC to find index for + * + * Given a registered CRTC, return the index of that CRTC within a DRM + * device's list of CRTCs. + */ +unsigned int drm_crtc_index(struct drm_crtc *crtc) +{ + unsigned int index = 0; + struct drm_crtc *tmp; + + list_for_each_entry(tmp, &crtc->dev->mode_config.crtc_list, head) { + if (tmp == crtc) + return index; + + index++; + } + + BUG(); +} +EXPORT_SYMBOL(drm_crtc_index); + +/** * drm_mode_probed_add - add a mode to a connector's probed mode list * @connector: connector the new mode * @mode: mode data --- linux-3.13.0.orig/drivers/gpu/drm/drm_crtc_helper.c +++ linux-3.13.0/drivers/gpu/drm/drm_crtc_helper.c @@ -324,35 +324,6 @@ } EXPORT_SYMBOL(drm_helper_disable_unused_functions); -/** - * drm_encoder_crtc_ok - can a given crtc drive a given encoder? - * @encoder: encoder to test - * @crtc: crtc to test - * - * Return false if @encoder can't be driven by @crtc, true otherwise. - */ -static bool drm_encoder_crtc_ok(struct drm_encoder *encoder, - struct drm_crtc *crtc) -{ - struct drm_device *dev; - struct drm_crtc *tmp; - int crtc_mask = 1; - - WARN(!crtc, "checking null crtc?\n"); - - dev = crtc->dev; - - list_for_each_entry(tmp, &dev->mode_config.crtc_list, head) { - if (tmp == crtc) - break; - crtc_mask <<= 1; - } - - if (encoder->possible_crtcs & crtc_mask) - return true; - return false; -} - /* * Check the CRTC we're going to map each output to vs. its current * CRTC. If they don't match, we have to disable the output and the CRTC @@ -536,7 +507,7 @@ * are later needed by vblank and swap-completion * timestamping. They are derived from true hwmode. */ - drm_calc_timestamping_constants(crtc); + drm_calc_timestamping_constants(crtc, &crtc->hwmode); /* FIXME: add subpixel order */ done: --- linux-3.13.0.orig/drivers/gpu/drm/drm_dp_helper.c +++ linux-3.13.0/drivers/gpu/drm/drm_dp_helper.c @@ -346,3 +346,399 @@ } } EXPORT_SYMBOL(drm_dp_bw_code_to_link_rate); + +/** + * DOC: dp helpers + * + * The DisplayPort AUX channel is an abstraction to allow generic, driver- + * independent access to AUX functionality. Drivers can take advantage of + * this by filling in the fields of the drm_dp_aux structure. + * + * Transactions are described using a hardware-independent drm_dp_aux_msg + * structure, which is passed into a driver's .transfer() implementation. + * Both native and I2C-over-AUX transactions are supported. + */ + +static int drm_dp_dpcd_access(struct drm_dp_aux *aux, u8 request, + unsigned int offset, void *buffer, size_t size) +{ + struct drm_dp_aux_msg msg; + unsigned int retry; + int err; + + memset(&msg, 0, sizeof(msg)); + msg.address = offset; + msg.request = request; + msg.buffer = buffer; + msg.size = size; + + /* + * The specification doesn't give any recommendation on how often to + * retry native transactions, so retry 7 times like for I2C-over-AUX + * transactions. + */ + for (retry = 0; retry < 7; retry++) { + err = aux->transfer(aux, &msg); + if (err < 0) { + if (err == -EBUSY) + continue; + + return err; + } + + if (err < size) + return -EPROTO; + + switch (msg.reply & DP_AUX_NATIVE_REPLY_MASK) { + case DP_AUX_NATIVE_REPLY_ACK: + return err; + + case DP_AUX_NATIVE_REPLY_NACK: + return -EIO; + + case DP_AUX_NATIVE_REPLY_DEFER: + usleep_range(400, 500); + break; + } + } + + DRM_DEBUG_KMS("too many retries, giving up\n"); + return -EIO; +} + +/** + * drm_dp_dpcd_read() - read a series of bytes from the DPCD + * @aux: DisplayPort AUX channel + * @offset: address of the (first) register to read + * @buffer: buffer to store the register values + * @size: number of bytes in @buffer + * + * Returns the number of bytes transferred on success, or a negative error + * code on failure. -EIO is returned if the request was NAKed by the sink or + * if the retry count was exceeded. If not all bytes were transferred, this + * function returns -EPROTO. Errors from the underlying AUX channel transfer + * function, with the exception of -EBUSY (which causes the transaction to + * be retried), are propagated to the caller. + */ +ssize_t drm_dp_dpcd_read(struct drm_dp_aux *aux, unsigned int offset, + void *buffer, size_t size) +{ + return drm_dp_dpcd_access(aux, DP_AUX_NATIVE_READ, offset, buffer, + size); +} +EXPORT_SYMBOL(drm_dp_dpcd_read); + +/** + * drm_dp_dpcd_write() - write a series of bytes to the DPCD + * @aux: DisplayPort AUX channel + * @offset: address of the (first) register to write + * @buffer: buffer containing the values to write + * @size: number of bytes in @buffer + * + * Returns the number of bytes transferred on success, or a negative error + * code on failure. -EIO is returned if the request was NAKed by the sink or + * if the retry count was exceeded. If not all bytes were transferred, this + * function returns -EPROTO. Errors from the underlying AUX channel transfer + * function, with the exception of -EBUSY (which causes the transaction to + * be retried), are propagated to the caller. + */ +ssize_t drm_dp_dpcd_write(struct drm_dp_aux *aux, unsigned int offset, + void *buffer, size_t size) +{ + return drm_dp_dpcd_access(aux, DP_AUX_NATIVE_WRITE, offset, buffer, + size); +} +EXPORT_SYMBOL(drm_dp_dpcd_write); + +/** + * drm_dp_dpcd_read_link_status() - read DPCD link status (bytes 0x202-0x207) + * @aux: DisplayPort AUX channel + * @status: buffer to store the link status in (must be at least 6 bytes) + * + * Returns the number of bytes transferred on success or a negative error + * code on failure. + */ +int drm_dp_dpcd_read_link_status(struct drm_dp_aux *aux, + u8 status[DP_LINK_STATUS_SIZE]) +{ + return drm_dp_dpcd_read(aux, DP_LANE0_1_STATUS, status, + DP_LINK_STATUS_SIZE); +} +EXPORT_SYMBOL(drm_dp_dpcd_read_link_status); + +/** + * drm_dp_link_probe() - probe a DisplayPort link for capabilities + * @aux: DisplayPort AUX channel + * @link: pointer to structure in which to return link capabilities + * + * The structure filled in by this function can usually be passed directly + * into drm_dp_link_power_up() and drm_dp_link_configure() to power up and + * configure the link based on the link's capabilities. + * + * Returns 0 on success or a negative error code on failure. + */ +int drm_dp_link_probe(struct drm_dp_aux *aux, struct drm_dp_link *link) +{ + u8 values[3]; + int err; + + memset(link, 0, sizeof(*link)); + + err = drm_dp_dpcd_read(aux, DP_DPCD_REV, values, sizeof(values)); + if (err < 0) + return err; + + link->revision = values[0]; + link->rate = drm_dp_bw_code_to_link_rate(values[1]); + link->num_lanes = values[2] & DP_MAX_LANE_COUNT_MASK; + + if (values[2] & DP_ENHANCED_FRAME_CAP) + link->capabilities |= DP_LINK_CAP_ENHANCED_FRAMING; + + return 0; +} +EXPORT_SYMBOL(drm_dp_link_probe); + +/** + * drm_dp_link_power_up() - power up a DisplayPort link + * @aux: DisplayPort AUX channel + * @link: pointer to a structure containing the link configuration + * + * Returns 0 on success or a negative error code on failure. + */ +int drm_dp_link_power_up(struct drm_dp_aux *aux, struct drm_dp_link *link) +{ + u8 value; + int err; + + /* DP_SET_POWER register is only available on DPCD v1.1 and later */ + if (link->revision < 0x11) + return 0; + + err = drm_dp_dpcd_readb(aux, DP_SET_POWER, &value); + if (err < 0) + return err; + + value &= ~DP_SET_POWER_MASK; + value |= DP_SET_POWER_D0; + + err = drm_dp_dpcd_writeb(aux, DP_SET_POWER, value); + if (err < 0) + return err; + + /* + * According to the DP 1.1 specification, a "Sink Device must exit the + * power saving state within 1 ms" (Section 2.5.3.1, Table 5-52, "Sink + * Control Field" (register 0x600). + */ + usleep_range(1000, 2000); + + return 0; +} +EXPORT_SYMBOL(drm_dp_link_power_up); + +/** + * drm_dp_link_configure() - configure a DisplayPort link + * @aux: DisplayPort AUX channel + * @link: pointer to a structure containing the link configuration + * + * Returns 0 on success or a negative error code on failure. + */ +int drm_dp_link_configure(struct drm_dp_aux *aux, struct drm_dp_link *link) +{ + u8 values[2]; + int err; + + values[0] = drm_dp_link_rate_to_bw_code(link->rate); + values[1] = link->num_lanes; + + if (link->capabilities & DP_LINK_CAP_ENHANCED_FRAMING) + values[1] |= DP_LANE_COUNT_ENHANCED_FRAME_EN; + + err = drm_dp_dpcd_write(aux, DP_LINK_BW_SET, values, sizeof(values)); + if (err < 0) + return err; + + return 0; +} +EXPORT_SYMBOL(drm_dp_link_configure); + +/* + * I2C-over-AUX implementation + */ + +static u32 drm_dp_i2c_functionality(struct i2c_adapter *adapter) +{ + return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL | + I2C_FUNC_SMBUS_READ_BLOCK_DATA | + I2C_FUNC_SMBUS_BLOCK_PROC_CALL | + I2C_FUNC_10BIT_ADDR; +} + +/* + * Transfer a single I2C-over-AUX message and handle various error conditions, + * retrying the transaction as appropriate. + */ +static int drm_dp_i2c_do_msg(struct drm_dp_aux *aux, struct drm_dp_aux_msg *msg) +{ + unsigned int retry; + int err; + + /* + * DP1.2 sections 2.7.7.1.5.6.1 and 2.7.7.1.6.6.1: A DP Source device + * is required to retry at least seven times upon receiving AUX_DEFER + * before giving up the AUX transaction. + */ + for (retry = 0; retry < 7; retry++) { + err = aux->transfer(aux, msg); + if (err < 0) { + if (err == -EBUSY) + continue; + + DRM_DEBUG_KMS("transaction failed: %d\n", err); + return err; + } + + if (err < msg->size) + return -EPROTO; + + switch (msg->reply & DP_AUX_NATIVE_REPLY_MASK) { + case DP_AUX_NATIVE_REPLY_ACK: + /* + * For I2C-over-AUX transactions this isn't enough, we + * need to check for the I2C ACK reply. + */ + break; + + case DP_AUX_NATIVE_REPLY_NACK: + DRM_DEBUG_KMS("native nack\n"); + return -EREMOTEIO; + + case DP_AUX_NATIVE_REPLY_DEFER: + DRM_DEBUG_KMS("native defer"); + /* + * We could check for I2C bit rate capabilities and if + * available adjust this interval. We could also be + * more careful with DP-to-legacy adapters where a + * long legacy cable may force very low I2C bit rates. + * + * For now just defer for long enough to hopefully be + * safe for all use-cases. + */ + usleep_range(500, 600); + continue; + + default: + DRM_ERROR("invalid native reply %#04x\n", msg->reply); + return -EREMOTEIO; + } + + switch (msg->reply & DP_AUX_I2C_REPLY_MASK) { + case DP_AUX_I2C_REPLY_ACK: + /* + * Both native ACK and I2C ACK replies received. We + * can assume the transfer was successful. + */ + return 0; + + case DP_AUX_I2C_REPLY_NACK: + DRM_DEBUG_KMS("I2C nack\n"); + return -EREMOTEIO; + + case DP_AUX_I2C_REPLY_DEFER: + DRM_DEBUG_KMS("I2C defer\n"); + usleep_range(400, 500); + continue; + + default: + DRM_ERROR("invalid I2C reply %#04x\n", msg->reply); + return -EREMOTEIO; + } + } + + DRM_DEBUG_KMS("too many retries, giving up\n"); + return -EREMOTEIO; +} + +static int drm_dp_i2c_xfer(struct i2c_adapter *adapter, struct i2c_msg *msgs, + int num) +{ + struct drm_dp_aux *aux = adapter->algo_data; + unsigned int i, j; + + for (i = 0; i < num; i++) { + struct drm_dp_aux_msg msg; + int err; + + /* + * Many hardware implementations support FIFOs larger than a + * single byte, but it has been empirically determined that + * transferring data in larger chunks can actually lead to + * decreased performance. Therefore each message is simply + * transferred byte-by-byte. + */ + for (j = 0; j < msgs[i].len; j++) { + memset(&msg, 0, sizeof(msg)); + msg.address = msgs[i].addr; + + msg.request = (msgs[i].flags & I2C_M_RD) ? + DP_AUX_I2C_READ : + DP_AUX_I2C_WRITE; + + /* + * All messages except the last one are middle-of- + * transfer messages. + */ + if ((i < num - 1) || (j < msgs[i].len - 1)) + msg.request |= DP_AUX_I2C_MOT; + + msg.buffer = msgs[i].buf + j; + msg.size = 1; + + err = drm_dp_i2c_do_msg(aux, &msg); + if (err < 0) + return err; + } + } + + return num; +} + +static const struct i2c_algorithm drm_dp_i2c_algo = { + .functionality = drm_dp_i2c_functionality, + .master_xfer = drm_dp_i2c_xfer, +}; + +/** + * drm_dp_aux_register_i2c_bus() - register an I2C adapter for I2C-over-AUX + * @aux: DisplayPort AUX channel + * + * Returns 0 on success or a negative error code on failure. + */ +int drm_dp_aux_register_i2c_bus(struct drm_dp_aux *aux) +{ + aux->ddc.algo = &drm_dp_i2c_algo; + aux->ddc.algo_data = aux; + aux->ddc.retries = 3; + + aux->ddc.class = I2C_CLASS_DDC; + aux->ddc.owner = THIS_MODULE; + aux->ddc.dev.parent = aux->dev; + aux->ddc.dev.of_node = aux->dev->of_node; + + strlcpy(aux->ddc.name, aux->name ? aux->name : dev_name(aux->dev), + sizeof(aux->ddc.name)); + + return i2c_add_adapter(&aux->ddc); +} +EXPORT_SYMBOL(drm_dp_aux_register_i2c_bus); + +/** + * drm_dp_aux_unregister_i2c_bus() - unregister an I2C-over-AUX adapter + * @aux: DisplayPort AUX channel + */ +void drm_dp_aux_unregister_i2c_bus(struct drm_dp_aux *aux) +{ + i2c_del_adapter(&aux->ddc); +} +EXPORT_SYMBOL(drm_dp_aux_unregister_i2c_bus); --- linux-3.13.0.orig/drivers/gpu/drm/drm_fb_helper.c +++ linux-3.13.0/drivers/gpu/drm/drm_fb_helper.c @@ -1130,7 +1130,7 @@ return count; } -static struct drm_display_mode *drm_has_preferred_mode(struct drm_fb_helper_connector *fb_connector, int width, int height) +struct drm_display_mode *drm_has_preferred_mode(struct drm_fb_helper_connector *fb_connector, int width, int height) { struct drm_display_mode *mode; @@ -1143,6 +1143,7 @@ } return NULL; } +EXPORT_SYMBOL(drm_has_preferred_mode); static bool drm_has_cmdline_mode(struct drm_fb_helper_connector *fb_connector) { @@ -1151,7 +1152,7 @@ return cmdline_mode->specified; } -static struct drm_display_mode *drm_pick_cmdline_mode(struct drm_fb_helper_connector *fb_helper_conn, +struct drm_display_mode *drm_pick_cmdline_mode(struct drm_fb_helper_connector *fb_helper_conn, int width, int height) { struct drm_cmdline_mode *cmdline_mode; @@ -1191,6 +1192,7 @@ list_add(&mode->head, &fb_helper_conn->connector->modes); return mode; } +EXPORT_SYMBOL(drm_pick_cmdline_mode); static bool drm_connector_enabled(struct drm_connector *connector, bool strict) { --- linux-3.13.0.orig/drivers/gpu/drm/drm_gem.c +++ linux-3.13.0/drivers/gpu/drm/drm_gem.c @@ -129,11 +129,12 @@ { struct file *filp; + drm_gem_private_object_init(dev, obj, size); + filp = shmem_file_setup("drm mm object", size, VM_NORESERVE); if (IS_ERR(filp)) return PTR_ERR(filp); - drm_gem_private_object_init(dev, obj, size); obj->filp = filp; return 0; --- linux-3.13.0.orig/drivers/gpu/drm/drm_ioctl.c +++ linux-3.13.0/drivers/gpu/drm/drm_ioctl.c @@ -296,6 +296,18 @@ case DRM_CAP_ASYNC_PAGE_FLIP: req->value = dev->mode_config.async_page_flip; break; + case DRM_CAP_CURSOR_WIDTH: + if (dev->mode_config.cursor_width) + req->value = dev->mode_config.cursor_width; + else + req->value = 64; + break; + case DRM_CAP_CURSOR_HEIGHT: + if (dev->mode_config.cursor_height) + req->value = dev->mode_config.cursor_height; + else + req->value = 64; + break; default: return -EINVAL; } --- linux-3.13.0.orig/drivers/gpu/drm/drm_irq.c +++ linux-3.13.0/drivers/gpu/drm/drm_irq.c @@ -445,20 +445,22 @@ * adjustments into account. * * @crtc drm_crtc whose timestamp constants should be updated. + * @mode display mode containing the scanout timings * */ -void drm_calc_timestamping_constants(struct drm_crtc *crtc) +void drm_calc_timestamping_constants(struct drm_crtc *crtc, + const struct drm_display_mode *mode) { s64 linedur_ns = 0, pixeldur_ns = 0, framedur_ns = 0; u64 dotclock; /* Dot clock in Hz: */ - dotclock = (u64) crtc->hwmode.clock * 1000; + dotclock = (u64) mode->clock * 1000; /* Fields of interlaced scanout modes are only half a frame duration. * Double the dotclock to get half the frame-/line-/pixelduration. */ - if (crtc->hwmode.flags & DRM_MODE_FLAG_INTERLACE) + if (mode->flags & DRM_MODE_FLAG_INTERLACE) dotclock *= 2; /* Valid dotclock? */ @@ -469,10 +471,9 @@ * nanoseconds: */ pixeldur_ns = (s64) div64_u64(1000000000, dotclock); - linedur_ns = (s64) div64_u64(((u64) crtc->hwmode.crtc_htotal * + linedur_ns = (s64) div64_u64(((u64) mode->crtc_htotal * 1000000000), dotclock); - frame_size = crtc->hwmode.crtc_htotal * - crtc->hwmode.crtc_vtotal; + frame_size = mode->crtc_htotal * mode->crtc_vtotal; framedur_ns = (s64) div64_u64((u64) frame_size * 1000000000, dotclock); } else @@ -484,8 +485,8 @@ crtc->framedur_ns = framedur_ns; DRM_DEBUG("crtc %d: hwmode: htotal %d, vtotal %d, vdisplay %d\n", - crtc->base.id, crtc->hwmode.crtc_htotal, - crtc->hwmode.crtc_vtotal, crtc->hwmode.crtc_vdisplay); + crtc->base.id, mode->crtc_htotal, + mode->crtc_vtotal, mode->crtc_vdisplay); DRM_DEBUG("crtc %d: clock %d kHz framedur %d linedur %d, pixeldur %d\n", crtc->base.id, (int) dotclock/1000, (int) framedur_ns, (int) linedur_ns, (int) pixeldur_ns); @@ -521,6 +522,7 @@ * 0 = Default. * DRM_CALLED_FROM_VBLIRQ = If function is called from vbl irq handler. * @refcrtc: drm_crtc* of crtc which defines scanout timing. + * @mode: mode which defines the scanout timings * * Returns negative value on error, failure or if not supported in current * video mode: @@ -540,11 +542,11 @@ int *max_error, struct timeval *vblank_time, unsigned flags, - struct drm_crtc *refcrtc) + const struct drm_crtc *refcrtc, + const struct drm_display_mode *mode) { ktime_t stime, etime, mono_time_offset; struct timeval tv_etime; - struct drm_display_mode *mode; int vbl_status, vtotal, vdisplay; int vpos, hpos, i; s64 framedur_ns, linedur_ns, pixeldur_ns, delta_ns, duration_ns; @@ -561,7 +563,6 @@ return -EIO; } - mode = &refcrtc->hwmode; vtotal = mode->crtc_vtotal; vdisplay = mode->crtc_vdisplay; @@ -590,7 +591,7 @@ * Get vertical and horizontal scanout position vpos, hpos, * and bounding timestamps stime, etime, pre/post query. */ - vbl_status = dev->driver->get_scanout_position(dev, crtc, &vpos, + vbl_status = dev->driver->get_scanout_position(dev, crtc, flags, &vpos, &hpos, &stime, &etime); /* --- linux-3.13.0.orig/drivers/gpu/drm/gma500/gma_display.c +++ linux-3.13.0/drivers/gpu/drm/gma500/gma_display.c @@ -349,6 +349,7 @@ /* If we didn't get a handle then turn the cursor off */ if (!handle) { temp = CURSOR_MODE_DISABLE; + mutex_lock(&dev->struct_mutex); if (gma_power_begin(dev, false)) { REG_WRITE(control, temp); @@ -365,6 +366,7 @@ gma_crtc->cursor_obj = NULL; } + mutex_unlock(&dev->struct_mutex); return 0; } @@ -374,9 +376,12 @@ return -EINVAL; } + mutex_lock(&dev->struct_mutex); obj = drm_gem_object_lookup(dev, file_priv, handle); - if (!obj) - return -ENOENT; + if (!obj) { + ret = -ENOENT; + goto unlock; + } if (obj->size < width * height * 4) { dev_dbg(dev->dev, "Buffer is too small\n"); @@ -440,10 +445,13 @@ } gma_crtc->cursor_obj = obj; +unlock: + mutex_unlock(&dev->struct_mutex); return ret; unref_cursor: drm_gem_object_unreference(obj); + mutex_unlock(&dev->struct_mutex); return ret; } --- linux-3.13.0.orig/drivers/gpu/drm/i915/Kconfig +++ linux-3.13.0/drivers/gpu/drm/i915/Kconfig @@ -35,12 +35,11 @@ config DRM_I915_KMS bool "Enable modesetting on intel by default" depends on DRM_I915 + default y help - Choose this option if you want kernel modesetting enabled by default, - and you have a new enough userspace to support this. Running old - userspaces with this enabled will cause pain. Note that this causes - the driver to bind to PCI devices, which precludes loading things - like intelfb. + Choose this option if you want kernel modesetting enabled by default. + + If in doubt, say "Y". config DRM_I915_FBDEV bool "Enable legacy fbdev support for the modesettting intel driver" @@ -55,9 +54,12 @@ support. Note that this support also provide the linux console support on top of the intel modesetting driver. + If in doubt, say "Y". + config DRM_I915_PRELIMINARY_HW_SUPPORT bool "Enable preliminary support for prerelease Intel hardware by default" depends on DRM_I915 + default n help Choose this option if you have prerelease Intel hardware and want the i915 driver to support it by default. You can enable such support at @@ -65,3 +67,15 @@ option changes the default for that module option. If in doubt, say "N". + +config DRM_I915_UMS + bool "Enable userspace modesetting on Intel hardware (DEPRECATED)" + depends on DRM_I915 + default n + help + Choose this option if you still need userspace modesetting. + + Userspace modesetting is deprecated for quite some time now, so + enable this only if you have ancient versions of the DDX drivers. + + If in doubt, say "N". --- linux-3.13.0.orig/drivers/gpu/drm/i915/i915_debugfs.c +++ linux-3.13.0/drivers/gpu/drm/i915/i915_debugfs.c @@ -408,7 +408,9 @@ struct file_stats stats; memset(&stats, 0, sizeof(stats)); + spin_lock(&file->table_lock); idr_for_each(&file->object_idr, per_file_stats, &stats); + spin_unlock(&file->table_lock); seq_printf(m, "%s: %u objects, %zu bytes (%zu active, %zu inactive, %zu unbound)\n", get_pid_task(file->pid, PIDTYPE_PID)->comm, stats.count, --- linux-3.13.0.orig/drivers/gpu/drm/i915/i915_dma.c +++ linux-3.13.0/drivers/gpu/drm/i915/i915_dma.c @@ -1679,6 +1679,7 @@ intel_teardown_gmbus(dev); intel_teardown_mchbar(dev); + pm_qos_remove_request(&dev_priv->pm_qos); destroy_workqueue(dev_priv->wq); out_mtrrfree: arch_phys_wc_del(dev_priv->gtt.mtrr); @@ -1910,6 +1911,7 @@ DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_CREATE, i915_gem_context_create_ioctl, DRM_UNLOCKED|DRM_RENDER_ALLOW), DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_DESTROY, i915_gem_context_destroy_ioctl, DRM_UNLOCKED|DRM_RENDER_ALLOW), DRM_IOCTL_DEF_DRV(I915_REG_READ, i915_reg_read_ioctl, DRM_UNLOCKED|DRM_RENDER_ALLOW), + DRM_IOCTL_DEF_DRV(I915_GET_RESET_STATS, i915_get_reset_stats_ioctl, DRM_UNLOCKED|DRM_RENDER_ALLOW), }; int i915_max_ioctl = DRM_ARRAY_SIZE(i915_ioctls); --- linux-3.13.0.orig/drivers/gpu/drm/i915/i915_drv.c +++ linux-3.13.0/drivers/gpu/drm/i915/i915_drv.c @@ -383,11 +383,7 @@ INTEL_IVB_M_IDS(&intel_ivybridge_m_info), \ INTEL_IVB_D_IDS(&intel_ivybridge_d_info), \ INTEL_HSW_D_IDS(&intel_haswell_d_info), \ - INTEL_HSW_M_IDS(&intel_haswell_m_info), \ - INTEL_VLV_M_IDS(&intel_valleyview_m_info), \ - INTEL_VLV_D_IDS(&intel_valleyview_d_info), \ - INTEL_BDW_M_IDS(&intel_broadwell_m_info), \ - INTEL_BDW_D_IDS(&intel_broadwell_d_info) + INTEL_HSW_M_IDS(&intel_haswell_m_info) static const struct pci_device_id pciidlist[] = { /* aka */ INTEL_PCI_IDS, @@ -401,7 +397,7 @@ void intel_detect_pch(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; - struct pci_dev *pch; + struct pci_dev *pch = NULL; /* In all current cases, num_pipes is equivalent to the PCH_NOP setting * (which really amounts to a PCH but no South Display). @@ -422,12 +418,9 @@ * all the ISA bridge devices and check for the first match, instead * of only checking the first one. */ - pch = pci_get_class(PCI_CLASS_BRIDGE_ISA << 8, NULL); - while (pch) { - struct pci_dev *curr = pch; + while ((pch = pci_get_class(PCI_CLASS_BRIDGE_ISA << 8, pch))) { if (pch->vendor == PCI_VENDOR_ID_INTEL) { - unsigned short id; - id = pch->device & INTEL_PCH_DEVICE_ID_MASK; + unsigned short id = pch->device & INTEL_PCH_DEVICE_ID_MASK; dev_priv->pch_id = id; if (id == INTEL_PCH_IBX_DEVICE_ID_TYPE) { @@ -459,18 +452,16 @@ DRM_DEBUG_KMS("Found LynxPoint LP PCH\n"); WARN_ON(!IS_HASWELL(dev)); WARN_ON(!IS_ULT(dev)); - } else { - goto check_next; - } - pci_dev_put(pch); + } else + continue; + break; } -check_next: - pch = pci_get_class(PCI_CLASS_BRIDGE_ISA << 8, curr); - pci_dev_put(curr); } if (!pch) - DRM_DEBUG_KMS("No PCH found?\n"); + DRM_DEBUG_KMS("No PCH found.\n"); + + pci_dev_put(pch); } bool i915_semaphore_is_enabled(struct drm_device *dev) @@ -615,15 +606,20 @@ drm_helper_hpd_irq_event(dev); } +static int i915_drm_thaw_early(struct drm_device *dev) +{ + intel_uncore_early_sanitize(dev); + intel_uncore_sanitize(dev); + intel_power_domains_init_hw(dev); + + return 0; +} + static int __i915_drm_thaw(struct drm_device *dev, bool restore_gtt_mappings) { struct drm_i915_private *dev_priv = dev->dev_private; int error = 0; - intel_uncore_early_sanitize(dev); - - intel_uncore_sanitize(dev); - if (drm_core_check_feature(dev, DRIVER_MODESET) && restore_gtt_mappings) { mutex_lock(&dev->struct_mutex); @@ -631,8 +627,6 @@ mutex_unlock(&dev->struct_mutex); } - intel_power_domains_init_hw(dev); - i915_restore_state(dev); intel_opregion_setup(dev); @@ -699,19 +693,33 @@ return __i915_drm_thaw(dev, true); } -int i915_resume(struct drm_device *dev) +static int i915_resume_early(struct drm_device *dev) { - struct drm_i915_private *dev_priv = dev->dev_private; - int ret; - if (dev->switch_power_state == DRM_SWITCH_POWER_OFF) return 0; + /* + * We have a resume ordering issue with the snd-hda driver also + * requiring our device to be power up. Due to the lack of a + * parent/child relationship we currently solve this with an early + * resume hook. + * + * FIXME: This should be solved with a special hdmi sink device or + * similar so that power domains can be employed. + */ if (pci_enable_device(dev->pdev)) return -EIO; pci_set_master(dev->pdev); + return i915_drm_thaw_early(dev); +} + +int i915_resume(struct drm_device *dev) +{ + struct drm_i915_private *dev_priv = dev->dev_private; + int ret; + /* * Platforms with opregion should have sane BIOS, older ones (gen3 and * earlier) need to restore the GTT mappings since the BIOS might clear @@ -725,6 +733,14 @@ return 0; } +static int i915_resume_legacy(struct drm_device *dev) +{ + i915_resume_early(dev); + i915_resume(dev); + + return 0; +} + /** * i915_reset - reset chip after a hang * @dev: drm device to reset @@ -858,7 +874,6 @@ { struct pci_dev *pdev = to_pci_dev(dev); struct drm_device *drm_dev = pci_get_drvdata(pdev); - int error; if (!drm_dev || !drm_dev->dev_private) { dev_err(dev, "DRM not initialized, aborting suspend.\n"); @@ -868,9 +883,25 @@ if (drm_dev->switch_power_state == DRM_SWITCH_POWER_OFF) return 0; - error = i915_drm_freeze(drm_dev); - if (error) - return error; + return i915_drm_freeze(drm_dev); +} + +static int i915_pm_suspend_late(struct device *dev) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct drm_device *drm_dev = pci_get_drvdata(pdev); + + /* + * We have a suspedn ordering issue with the snd-hda driver also + * requiring our device to be power up. Due to the lack of a + * parent/child relationship we currently solve this with an late + * suspend hook. + * + * FIXME: This should be solved with a special hdmi sink device or + * similar so that power domains can be employed. + */ + if (drm_dev->switch_power_state == DRM_SWITCH_POWER_OFF) + return 0; pci_disable_device(pdev); pci_set_power_state(pdev, PCI_D3hot); @@ -878,6 +909,14 @@ return 0; } +static int i915_pm_resume_early(struct device *dev) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct drm_device *drm_dev = pci_get_drvdata(pdev); + + return i915_resume_early(drm_dev); +} + static int i915_pm_resume(struct device *dev) { struct pci_dev *pdev = to_pci_dev(dev); @@ -899,6 +938,14 @@ return i915_drm_freeze(drm_dev); } +static int i915_pm_thaw_early(struct device *dev) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct drm_device *drm_dev = pci_get_drvdata(pdev); + + return i915_drm_thaw_early(drm_dev); +} + static int i915_pm_thaw(struct device *dev) { struct pci_dev *pdev = to_pci_dev(dev); @@ -917,10 +964,14 @@ static const struct dev_pm_ops i915_pm_ops = { .suspend = i915_pm_suspend, + .suspend_late = i915_pm_suspend_late, + .resume_early = i915_pm_resume_early, .resume = i915_pm_resume, .freeze = i915_pm_freeze, + .thaw_early = i915_pm_thaw_early, .thaw = i915_pm_thaw, .poweroff = i915_pm_poweroff, + .restore_early = i915_pm_resume_early, .restore = i915_pm_resume, }; @@ -961,7 +1012,7 @@ /* Used in place of i915_pm_ops for non-DRIVER_MODESET */ .suspend = i915_suspend, - .resume = i915_resume, + .resume = i915_resume_legacy, .device_is_agp = i915_driver_device_is_agp, .master_create = i915_master_create, @@ -1024,8 +1075,13 @@ driver.driver_features &= ~DRIVER_MODESET; #endif - if (!(driver.driver_features & DRIVER_MODESET)) + if (!(driver.driver_features & DRIVER_MODESET)) { driver.get_vblank_timestamp = NULL; +#ifndef CONFIG_DRM_I915_UMS + /* Silently fail loading to not upset userspace. */ + return 0; +#endif + } return drm_pci_init(&driver, &i915_pci_driver); } --- linux-3.13.0.orig/drivers/gpu/drm/i915/i915_drv.h +++ linux-3.13.0/drivers/gpu/drm/i915/i915_drv.h @@ -317,6 +317,7 @@ u64 fence[I915_MAX_NUM_FENCES]; struct timeval time; struct drm_i915_error_ring { + bool valid; struct drm_i915_error_object { int page_count; u32 gtt_offset; @@ -875,6 +876,7 @@ u32 savePIPEB_LINK_N1; u32 saveMCHBAR_RENDER_STANDBY; u32 savePCH_PORT_HOTPLUG; + u16 saveGCDGMBUS; }; struct intel_gen6_power_mgmt { @@ -1077,34 +1079,30 @@ unsigned long missed_irq_rings; /** - * State variable and reset counter controlling the reset flow + * State variable controlling the reset flow and count * - * Upper bits are for the reset counter. This counter is used by the - * wait_seqno code to race-free noticed that a reset event happened and - * that it needs to restart the entire ioctl (since most likely the - * seqno it waited for won't ever signal anytime soon). + * This is a counter which gets incremented when reset is triggered, + * and again when reset has been handled. So odd values (lowest bit set) + * means that reset is in progress and even values that + * (reset_counter >> 1):th reset was successfully completed. + * + * If reset is not completed succesfully, the I915_WEDGE bit is + * set meaning that hardware is terminally sour and there is no + * recovery. All waiters on the reset_queue will be woken when + * that happens. + * + * This counter is used by the wait_seqno code to notice that reset + * event happened and it needs to restart the entire ioctl (since most + * likely the seqno it waited for won't ever signal anytime soon). * * This is important for lock-free wait paths, where no contended lock * naturally enforces the correct ordering between the bail-out of the * waiter and the gpu reset work code. - * - * Lowest bit controls the reset state machine: Set means a reset is in - * progress. This state will (presuming we don't have any bugs) decay - * into either unset (successful reset) or the special WEDGED value (hw - * terminally sour). All waiters on the reset_queue will be woken when - * that happens. */ atomic_t reset_counter; - /** - * Special values/flags for reset_counter - * - * Note that the code relies on - * I915_WEDGED & I915_RESET_IN_PROGRESS_FLAG - * being true. - */ #define I915_RESET_IN_PROGRESS_FLAG 1 -#define I915_WEDGED 0xffffffff +#define I915_WEDGED (1 << 31) /** * Waitqueue to signal when the reset has completed. Used by clients @@ -2063,12 +2061,17 @@ static inline bool i915_reset_in_progress(struct i915_gpu_error *error) { return unlikely(atomic_read(&error->reset_counter) - & I915_RESET_IN_PROGRESS_FLAG); + & (I915_RESET_IN_PROGRESS_FLAG | I915_WEDGED)); } static inline bool i915_terminally_wedged(struct i915_gpu_error *error) { - return atomic_read(&error->reset_counter) == I915_WEDGED; + return atomic_read(&error->reset_counter) & I915_WEDGED; +} + +static inline u32 i915_reset_count(struct i915_gpu_error *error) +{ + return ((atomic_read(&error->reset_counter) & ~I915_WEDGED) + 1) / 2; } void i915_gem_reset(struct drm_device *dev); @@ -2398,6 +2401,8 @@ extern bool i915_semaphore_is_enabled(struct drm_device *dev); int i915_reg_read_ioctl(struct drm_device *dev, void *data, struct drm_file *file); +int i915_get_reset_stats_ioctl(struct drm_device *dev, void *data, + struct drm_file *file); /* overlay */ extern struct intel_overlay_error_state *intel_overlay_capture_error_state(struct drm_device *dev); --- linux-3.13.0.orig/drivers/gpu/drm/i915/i915_gem.c +++ linux-3.13.0/drivers/gpu/drm/i915/i915_gem.c @@ -1424,10 +1424,13 @@ out: switch (ret) { case -EIO: - /* If this -EIO is due to a gpu hang, give the reset code a - * chance to clean up the mess. Otherwise return the proper - * SIGBUS. */ - if (i915_terminally_wedged(&dev_priv->gpu_error)) + /* + * We eat errors when the gpu is terminally wedged to avoid + * userspace unduly crashing (gl has no provisions for mmaps to + * fail). But any other -EIO isn't ours (e.g. swap in failure) + * and so needs to be reported. + */ + if (!i915_terminally_wedged(&dev_priv->gpu_error)) return VM_FAULT_SIGBUS; case -EAGAIN: /* @@ -3486,7 +3489,7 @@ { struct drm_device *dev = obj->base.dev; drm_i915_private_t *dev_priv = dev->dev_private; - struct i915_vma *vma; + struct i915_vma *vma, *next; int ret; if (obj->cache_level == cache_level) @@ -3497,7 +3500,7 @@ return -EBUSY; } - list_for_each_entry(vma, &obj->vma_list, vma_link) { + list_for_each_entry_safe(vma, next, &obj->vma_list, vma_link) { if (!i915_gem_valid_gtt_space(dev, &vma->node, cache_level)) { ret = i915_vma_unbind(vma); if (ret) @@ -3923,6 +3926,9 @@ struct drm_i915_gem_object *obj; int ret; + if (drm_core_check_feature(dev, DRIVER_MODESET)) + return -ENODEV; + ret = i915_mutex_lock_interruptible(dev); if (ret) return ret; @@ -3976,6 +3982,9 @@ struct drm_i915_gem_object *obj; int ret; + if (drm_core_check_feature(dev, DRIVER_MODESET)) + return -ENODEV; + ret = i915_mutex_lock_interruptible(dev); if (ret) return ret; --- linux-3.13.0.orig/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ linux-3.13.0/drivers/gpu/drm/i915/i915_gem_execbuffer.c @@ -767,9 +767,9 @@ * relocations were valid. */ for (j = 0; j < exec[i].relocation_count; j++) { - if (copy_to_user(&user_relocs[j].presumed_offset, - &invalid_offset, - sizeof(invalid_offset))) { + if (__copy_to_user(&user_relocs[j].presumed_offset, + &invalid_offset, + sizeof(invalid_offset))) { ret = -EFAULT; mutex_lock(&dev->struct_mutex); goto err; @@ -1312,18 +1312,21 @@ ret = i915_gem_do_execbuffer(dev, data, file, &exec2, exec2_list, &dev_priv->gtt.base); if (!ret) { + struct drm_i915_gem_exec_object __user *user_exec_list = + to_user_ptr(args->buffers_ptr); + /* Copy the new buffer offsets back to the user's exec list. */ - for (i = 0; i < args->buffer_count; i++) - exec_list[i].offset = exec2_list[i].offset; - /* ... and back out to userspace */ - ret = copy_to_user(to_user_ptr(args->buffers_ptr), - exec_list, - sizeof(*exec_list) * args->buffer_count); - if (ret) { - ret = -EFAULT; - DRM_DEBUG("failed to copy %d exec entries " - "back to user (%d)\n", - args->buffer_count, ret); + for (i = 0; i < args->buffer_count; i++) { + ret = __copy_to_user(&user_exec_list[i].offset, + &exec2_list[i].offset, + sizeof(user_exec_list[i].offset)); + if (ret) { + ret = -EFAULT; + DRM_DEBUG("failed to copy %d exec entries " + "back to user (%d)\n", + args->buffer_count, ret); + break; + } } } @@ -1371,14 +1374,21 @@ &dev_priv->gtt.base); if (!ret) { /* Copy the new buffer offsets back to the user's exec list. */ - ret = copy_to_user(to_user_ptr(args->buffers_ptr), - exec2_list, - sizeof(*exec2_list) * args->buffer_count); - if (ret) { - ret = -EFAULT; - DRM_DEBUG("failed to copy %d exec entries " - "back to user (%d)\n", - args->buffer_count, ret); + struct drm_i915_gem_exec_object2 *user_exec_list = + to_user_ptr(args->buffers_ptr); + int i; + + for (i = 0; i < args->buffer_count; i++) { + ret = __copy_to_user(&user_exec_list[i].offset, + &exec2_list[i].offset, + sizeof(user_exec_list[i].offset)); + if (ret) { + ret = -EFAULT; + DRM_DEBUG("failed to copy %d exec entries " + "back to user\n", + args->buffer_count); + break; + } } } --- linux-3.13.0.orig/drivers/gpu/drm/i915/i915_gem_gtt.c +++ linux-3.13.0/drivers/gpu/drm/i915/i915_gem_gtt.c @@ -813,6 +813,16 @@ POSTING_READ(RING_FAULT_REG(&dev_priv->ring[RCS])); } +static void i915_ggtt_flush(struct drm_i915_private *dev_priv) +{ + if (INTEL_INFO(dev_priv->dev)->gen < 6) { + intel_gtt_chipset_flush(); + } else { + I915_WRITE(GFX_FLSH_CNTL_GEN6, GFX_FLSH_CNTL_EN); + POSTING_READ(GFX_FLSH_CNTL_GEN6); + } +} + void i915_gem_suspend_gtt_mappings(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; @@ -828,7 +838,9 @@ dev_priv->gtt.base.clear_range(&dev_priv->gtt.base, dev_priv->gtt.base.start / PAGE_SIZE, dev_priv->gtt.base.total / PAGE_SIZE, - false); + true); + + i915_ggtt_flush(dev_priv); } void i915_gem_restore_gtt_mappings(struct drm_device *dev) @@ -849,7 +861,7 @@ i915_gem_gtt_bind_object(obj, obj->cache_level); } - i915_gem_chipset_flush(dev); + i915_ggtt_flush(dev_priv); } int i915_gem_gtt_prepare_object(struct drm_i915_gem_object *obj) --- linux-3.13.0.orig/drivers/gpu/drm/i915/i915_gem_stolen.c +++ linux-3.13.0/drivers/gpu/drm/i915/i915_gem_stolen.c @@ -74,6 +74,50 @@ if (base == 0) return 0; + /* make sure we don't clobber the GTT if it's within stolen memory */ + if (INTEL_INFO(dev)->gen <= 4 && !IS_G33(dev) && !IS_G4X(dev)) { + struct { + u32 start, end; + } stolen[2] = { + { .start = base, .end = base + dev_priv->gtt.stolen_size, }, + { .start = base, .end = base + dev_priv->gtt.stolen_size, }, + }; + u64 gtt_start, gtt_end; + + gtt_start = I915_READ(PGTBL_CTL); + if (IS_GEN4(dev)) + gtt_start = (gtt_start & PGTBL_ADDRESS_LO_MASK) | + (gtt_start & PGTBL_ADDRESS_HI_MASK) << 28; + else + gtt_start &= PGTBL_ADDRESS_LO_MASK; + gtt_end = gtt_start + gtt_total_entries(dev_priv->gtt) * 4; + + if (gtt_start >= stolen[0].start && gtt_start < stolen[0].end) + stolen[0].end = gtt_start; + if (gtt_end > stolen[1].start && gtt_end <= stolen[1].end) + stolen[1].start = gtt_end; + + /* pick the larger of the two chunks */ + if (stolen[0].end - stolen[0].start > + stolen[1].end - stolen[1].start) { + base = stolen[0].start; + dev_priv->gtt.stolen_size = stolen[0].end - stolen[0].start; + } else { + base = stolen[1].start; + dev_priv->gtt.stolen_size = stolen[1].end - stolen[1].start; + } + + if (stolen[0].start != stolen[1].start || + stolen[0].end != stolen[1].end) { + DRM_DEBUG_KMS("GTT within stolen memory at 0x%llx-0x%llx\n", + (unsigned long long) gtt_start, + (unsigned long long) gtt_end - 1); + DRM_DEBUG_KMS("Stolen memory adjusted to 0x%x-0x%x\n", + base, base + (u32) dev_priv->gtt.stolen_size - 1); + } + } + + /* Verify that nothing else uses this physical address. Stolen * memory should be reserved by the BIOS and hidden from the * kernel. So if the region is already marked as busy, something @@ -81,7 +125,11 @@ */ r = devm_request_mem_region(dev->dev, base, dev_priv->gtt.stolen_size, "Graphics Stolen Memory"); - if (r == NULL) { + /* + * GEN3 firmware likes to smash pci bridges into the stolen + * range. Apparently this works. + */ + if (r == NULL && !IS_GEN3(dev)) { DRM_ERROR("conflict detected with stolen region: [0x%08x - 0x%08x]\n", base, base + (uint32_t)dev_priv->gtt.stolen_size); base = 0; @@ -201,6 +249,13 @@ struct drm_i915_private *dev_priv = dev->dev_private; int bios_reserved = 0; +#ifdef CONFIG_INTEL_IOMMU + if (intel_iommu_gfx_mapped) { + DRM_INFO("DMAR active, disabling use of stolen memory\n"); + return 0; + } +#endif + if (dev_priv->gtt.stolen_size == 0) return 0; @@ -250,7 +305,7 @@ } sg = st->sgl; - sg->offset = offset; + sg->offset = 0; sg->length = size; sg_dma_address(sg) = (dma_addr_t)dev_priv->mm.stolen_base + offset; --- linux-3.13.0.orig/drivers/gpu/drm/i915/i915_gpu_error.c +++ linux-3.13.0/drivers/gpu/drm/i915/i915_gpu_error.c @@ -146,7 +146,10 @@ va_list tmp; va_copy(tmp, args); - if (!__i915_error_seek(e, vsnprintf(NULL, 0, f, tmp))) + len = vsnprintf(NULL, 0, f, tmp); + va_end(tmp); + + if (!__i915_error_seek(e, len)) return; } @@ -239,6 +242,9 @@ unsigned ring) { BUG_ON(ring >= I915_NUM_RINGS); /* shut up confused gcc */ + if (!error->ring[ring].valid) + return; + err_printf(m, "%s command stream:\n", ring_str(ring)); err_printf(m, " HEAD: 0x%08x\n", error->head[ring]); err_printf(m, " TAIL: 0x%08x\n", error->tail[ring]); @@ -294,7 +300,6 @@ struct drm_device *dev = error_priv->dev; drm_i915_private_t *dev_priv = dev->dev_private; struct drm_i915_error_state *error = error_priv->error; - struct intel_ring_buffer *ring; int i, j, page, offset, elt; if (!error) { @@ -329,7 +334,7 @@ if (INTEL_INFO(dev)->gen == 7) err_printf(m, "ERR_INT: 0x%08x\n", error->err_int); - for_each_ring(ring, dev_priv, i) + for (i = 0; i < ARRAY_SIZE(error->ring); i++) i915_ring_error_state(m, dev, error, i); if (error->active_bo) @@ -386,8 +391,7 @@ } } - obj = error->ring[i].ctx; - if (obj) { + if ((obj = error->ring[i].ctx)) { err_printf(m, "%s --- HW Context = 0x%08x\n", dev_priv->ring[i].name, obj->gtt_offset); @@ -668,7 +672,8 @@ return NULL; obj = ring->scratch.obj; - if (acthd >= i915_gem_obj_ggtt_offset(obj) && + if (obj != NULL && + acthd >= i915_gem_obj_ggtt_offset(obj) && acthd < i915_gem_obj_ggtt_offset(obj) + obj->base.size) return i915_error_object_create(dev_priv, obj); } @@ -775,11 +780,17 @@ struct drm_i915_error_state *error) { struct drm_i915_private *dev_priv = dev->dev_private; - struct intel_ring_buffer *ring; struct drm_i915_gem_request *request; int i, count; - for_each_ring(ring, dev_priv, i) { + for (i = 0; i < I915_NUM_RINGS; i++) { + struct intel_ring_buffer *ring = &dev_priv->ring[i]; + + if (ring->dev == NULL) + continue; + + error->ring[i].valid = true; + i915_record_ring_state(dev, error, ring); error->ring[i].batchbuffer = --- linux-3.13.0.orig/drivers/gpu/drm/i915/i915_irq.c +++ linux-3.13.0/drivers/gpu/drm/i915/i915_irq.c @@ -567,8 +567,7 @@ vbl_start = mode->crtc_vblank_start * mode->crtc_htotal; } else { - enum transcoder cpu_transcoder = - intel_pipe_to_cpu_transcoder(dev_priv, pipe); + enum transcoder cpu_transcoder = (enum transcoder) pipe; u32 htotal; htotal = ((I915_READ(HTOTAL(cpu_transcoder)) >> 16) & 0x1fff) + 1; @@ -675,7 +674,8 @@ } static int i915_get_crtc_scanoutpos(struct drm_device *dev, int pipe, - int *vpos, int *hpos, ktime_t *stime, ktime_t *etime) + unsigned int flags, int *vpos, int *hpos, + ktime_t *stime, ktime_t *etime) { struct drm_i915_private *dev_priv = dev->dev_private; struct drm_crtc *crtc = dev_priv->pipe_to_crtc_mapping[pipe]; @@ -809,7 +809,8 @@ /* Helper routine in DRM core does all the work: */ return drm_calc_vbltimestamp_from_scanoutpos(dev, pipe, max_error, vblank_time, flags, - crtc); + crtc, + &to_intel_crtc(crtc)->config.adjusted_mode); } static bool intel_hpd_irq_event(struct drm_device *dev, @@ -1235,9 +1236,20 @@ spin_lock(&dev_priv->irq_lock); for (i = 1; i < HPD_NUM_PINS; i++) { - WARN(((hpd[i] & hotplug_trigger) && - dev_priv->hpd_stats[i].hpd_mark != HPD_ENABLED), - "Received HPD interrupt although disabled\n"); + if (hpd[i] & hotplug_trigger && + dev_priv->hpd_stats[i].hpd_mark == HPD_DISABLED) { + /* + * On GMCH platforms the interrupt mask bits only + * prevent irq generation, not the setting of the + * hotplug bits itself. So only WARN about unexpected + * interrupts on saner platforms. + */ + WARN_ONCE(INTEL_INFO(dev)->gen >= 5 && !IS_VALLEYVIEW(dev), + "Received HPD interrupt (0x%08x) on pin %d (0x%08x) although disabled\n", + hotplug_trigger, i, hpd[i]); + + continue; + } if (!(hpd[i] & hotplug_trigger) || dev_priv->hpd_stats[i].hpd_mark != HPD_ENABLED) @@ -1993,7 +2005,7 @@ kobject_uevent_env(&dev->primary->kdev->kobj, KOBJ_CHANGE, reset_done_event); } else { - atomic_set(&error->reset_counter, I915_WEDGED); + atomic_set_mask(I915_WEDGED, &error->reset_counter); } /* @@ -2382,20 +2394,27 @@ { struct drm_i915_private *dev_priv = ring->dev->dev_private; struct intel_ring_buffer *signaller; - u32 seqno, ctl; + u32 seqno; - ring->hangcheck.deadlock = true; + ring->hangcheck.deadlock++; signaller = semaphore_waits_for(ring, &seqno); - if (signaller == NULL || signaller->hangcheck.deadlock) + if (signaller == NULL) return -1; + /* Prevent pathological recursion due to driver bugs */ + if (signaller->hangcheck.deadlock >= I915_NUM_RINGS) + return -1; + + if (i915_seqno_passed(signaller->get_seqno(signaller, false), seqno)) + return 1; + /* cursory check for an unkickable deadlock */ - ctl = I915_READ_CTL(signaller); - if (ctl & RING_WAIT_SEMAPHORE && semaphore_passed(signaller) < 0) + if (I915_READ_CTL(signaller) & RING_WAIT_SEMAPHORE && + semaphore_passed(signaller) < 0) return -1; - return i915_seqno_passed(signaller->get_seqno(signaller, false), seqno); + return 0; } static void semaphore_clear_deadlocks(struct drm_i915_private *dev_priv) @@ -2404,7 +2423,7 @@ int i; for_each_ring(ring, dev_priv, i) - ring->hangcheck.deadlock = false; + ring->hangcheck.deadlock = 0; } static enum intel_ring_hangcheck_action @@ -2761,10 +2780,9 @@ return; if (HAS_PCH_IBX(dev)) { - mask = SDE_GMBUS | SDE_AUX_MASK | SDE_TRANSB_FIFO_UNDER | - SDE_TRANSA_FIFO_UNDER | SDE_POISON; + mask = SDE_GMBUS | SDE_AUX_MASK | SDE_POISON; } else { - mask = SDE_GMBUS_CPT | SDE_AUX_MASK_CPT | SDE_ERROR_CPT; + mask = SDE_GMBUS_CPT | SDE_AUX_MASK_CPT; I915_WRITE(SERR_INT, I915_READ(SERR_INT)); } @@ -2824,20 +2842,19 @@ display_mask = (DE_MASTER_IRQ_CONTROL | DE_GSE_IVB | DE_PCH_EVENT_IVB | DE_PLANEC_FLIP_DONE_IVB | DE_PLANEB_FLIP_DONE_IVB | - DE_PLANEA_FLIP_DONE_IVB | DE_AUX_CHANNEL_A_IVB | - DE_ERR_INT_IVB); + DE_PLANEA_FLIP_DONE_IVB | DE_AUX_CHANNEL_A_IVB); extra_mask = (DE_PIPEC_VBLANK_IVB | DE_PIPEB_VBLANK_IVB | - DE_PIPEA_VBLANK_IVB); + DE_PIPEA_VBLANK_IVB | DE_ERR_INT_IVB); I915_WRITE(GEN7_ERR_INT, I915_READ(GEN7_ERR_INT)); } else { display_mask = (DE_MASTER_IRQ_CONTROL | DE_GSE | DE_PCH_EVENT | DE_PLANEA_FLIP_DONE | DE_PLANEB_FLIP_DONE | DE_AUX_CHANNEL_A | - DE_PIPEB_FIFO_UNDERRUN | DE_PIPEA_FIFO_UNDERRUN | DE_PIPEB_CRC_DONE | DE_PIPEA_CRC_DONE | DE_POISON); - extra_mask = DE_PIPEA_VBLANK | DE_PIPEB_VBLANK | DE_PCU_EVENT; + extra_mask = DE_PIPEA_VBLANK | DE_PIPEB_VBLANK | DE_PCU_EVENT | + DE_PIPEB_FIFO_UNDERRUN | DE_PIPEA_FIFO_UNDERRUN; } dev_priv->irq_mask = ~display_mask; @@ -2953,9 +2970,9 @@ struct drm_device *dev = dev_priv->dev; uint32_t de_pipe_masked = GEN8_PIPE_FLIP_DONE | GEN8_PIPE_CDCLK_CRC_DONE | - GEN8_PIPE_FIFO_UNDERRUN | GEN8_DE_PIPE_IRQ_FAULT_ERRORS; - uint32_t de_pipe_enables = de_pipe_masked | GEN8_PIPE_VBLANK; + uint32_t de_pipe_enables = de_pipe_masked | GEN8_PIPE_VBLANK | + GEN8_PIPE_FIFO_UNDERRUN; int pipe; dev_priv->de_irq_mask[PIPE_A] = ~de_pipe_masked; dev_priv->de_irq_mask[PIPE_B] = ~de_pipe_masked; --- linux-3.13.0.orig/drivers/gpu/drm/i915/i915_reg.h +++ linux-3.13.0/drivers/gpu/drm/i915/i915_reg.h @@ -74,6 +74,7 @@ #define I915_GC_RENDER_CLOCK_200_MHZ (1 << 0) #define I915_GC_RENDER_CLOCK_333_MHZ (4 << 0) #define LBB 0xf4 +#define GCDGMBUS 0xcc /* Graphics reset regs */ #define I965_GDRST 0xc0 /* PCI config register */ @@ -300,16 +301,20 @@ #define GFX_OP_DESTBUFFER_INFO ((0x3<<29)|(0x1d<<24)|(0x8e<<16)|1) #define GFX_OP_DRAWRECT_INFO ((0x3<<29)|(0x1d<<24)|(0x80<<16)|(0x3)) #define GFX_OP_DRAWRECT_INFO_I965 ((0x7900<<16)|0x2) -#define SRC_COPY_BLT_CMD ((2<<29)|(0x43<<22)|4) + +#define COLOR_BLT_CMD (2<<29 | 0x40<<22 | (5-2)) +#define SRC_COPY_BLT_CMD ((2<<29)|(0x43<<22)|4) #define XY_SRC_COPY_BLT_CMD ((2<<29)|(0x53<<22)|6) #define XY_MONO_SRC_COPY_IMM_BLT ((2<<29)|(0x71<<22)|5) -#define XY_SRC_COPY_BLT_WRITE_ALPHA (1<<21) -#define XY_SRC_COPY_BLT_WRITE_RGB (1<<20) +#define BLT_WRITE_A (2<<20) +#define BLT_WRITE_RGB (1<<20) +#define BLT_WRITE_RGBA (BLT_WRITE_RGB | BLT_WRITE_A) #define BLT_DEPTH_8 (0<<24) #define BLT_DEPTH_16_565 (1<<24) #define BLT_DEPTH_16_1555 (2<<24) #define BLT_DEPTH_32 (3<<24) -#define BLT_ROP_GXCOPY (0xcc<<16) +#define BLT_ROP_SRC_COPY (0xcc<<16) +#define BLT_ROP_COLOR_COPY (0xf0<<16) #define XY_SRC_COPY_BLT_SRC_TILED (1<<15) /* 965+ only */ #define XY_SRC_COPY_BLT_DST_TILED (1<<11) /* 965+ only */ #define CMD_OP_DISPLAYBUFFER_INFO ((0x0<<29)|(0x14<<23)|2) @@ -628,6 +633,9 @@ /* * Instruction and interrupt control regs */ +#define PGTBL_CTL 0x02020 +#define PGTBL_ADDRESS_LO_MASK 0xfffff000 /* bits [31:12] */ +#define PGTBL_ADDRESS_HI_MASK 0x000000f0 /* bits [35:32] (gen4) */ #define PGTBL_ER 0x02024 #define RENDER_RING_BASE 0x02000 #define BSD_RING_BASE 0x04000 @@ -2117,9 +2125,13 @@ * Please check the detailed lore in the commit message for for experimental * evidence. */ -#define PORTD_HOTPLUG_LIVE_STATUS (1 << 29) -#define PORTC_HOTPLUG_LIVE_STATUS (1 << 28) -#define PORTB_HOTPLUG_LIVE_STATUS (1 << 27) +#define PORTD_HOTPLUG_LIVE_STATUS_G4X (1 << 29) +#define PORTC_HOTPLUG_LIVE_STATUS_G4X (1 << 28) +#define PORTB_HOTPLUG_LIVE_STATUS_G4X (1 << 27) +/* VLV DP/HDMI bits again match Bspec */ +#define PORTD_HOTPLUG_LIVE_STATUS_VLV (1 << 27) +#define PORTC_HOTPLUG_LIVE_STATUS_VLV (1 << 28) +#define PORTB_HOTPLUG_LIVE_STATUS_VLV (1 << 29) #define PORTD_HOTPLUG_INT_STATUS (3 << 21) #define PORTC_HOTPLUG_INT_STATUS (3 << 19) #define PORTB_HOTPLUG_INT_STATUS (3 << 17) --- linux-3.13.0.orig/drivers/gpu/drm/i915/i915_suspend.c +++ linux-3.13.0/drivers/gpu/drm/i915/i915_suspend.c @@ -397,6 +397,10 @@ intel_disable_gt_powersave(dev); + if (IS_GEN4(dev)) + pci_read_config_word(dev->pdev, GCDGMBUS, + &dev_priv->regfile.saveGCDGMBUS); + /* Cache mode state */ if (INTEL_INFO(dev)->gen < 7) dev_priv->regfile.saveCACHE_MODE_0 = I915_READ(CACHE_MODE_0); @@ -429,6 +433,10 @@ mutex_lock(&dev->struct_mutex); i915_gem_restore_fences(dev); + + if (IS_GEN4(dev)) + pci_write_config_word(dev->pdev, GCDGMBUS, + dev_priv->regfile.saveGCDGMBUS); i915_restore_display(dev); if (!drm_core_check_feature(dev, DRIVER_MODESET)) { --- linux-3.13.0.orig/drivers/gpu/drm/i915/i915_trace.h +++ linux-3.13.0/drivers/gpu/drm/i915/i915_trace.h @@ -238,14 +238,16 @@ TP_ARGS(vm), TP_STRUCT__entry( + __field(u32, dev) __field(struct i915_address_space *, vm) ), TP_fast_assign( + __entry->dev = vm->dev->primary->index; __entry->vm = vm; ), - TP_printk("dev=%d, vm=%p", __entry->vm->dev->primary->index, __entry->vm) + TP_printk("dev=%d, vm=%p", __entry->dev, __entry->vm) ); TRACE_EVENT(i915_gem_ring_sync_to, --- linux-3.13.0.orig/drivers/gpu/drm/i915/intel_bios.c +++ linux-3.13.0/drivers/gpu/drm/i915/intel_bios.c @@ -811,7 +811,7 @@ } } -static int __init intel_no_opregion_vbt_callback(const struct dmi_system_id *id) +static int intel_no_opregion_vbt_callback(const struct dmi_system_id *id) { DRM_DEBUG_KMS("Falling back to manually reading VBT from " "VBIOS ROM for %s\n", --- linux-3.13.0.orig/drivers/gpu/drm/i915/intel_crt.c +++ linux-3.13.0/drivers/gpu/drm/i915/intel_crt.c @@ -749,7 +749,7 @@ .destroy = intel_encoder_destroy, }; -static int __init intel_no_crt_dmi_callback(const struct dmi_system_id *id) +static int intel_no_crt_dmi_callback(const struct dmi_system_id *id) { DRM_INFO("Skipping CRT initialization for %s\n", id->ident); return 1; @@ -764,6 +764,14 @@ DMI_MATCH(DMI_PRODUCT_NAME, "ZGB"), }, }, + { + .callback = intel_no_crt_dmi_callback, + .ident = "DELL XPS 8700", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "XPS 8700"), + }, + }, { } }; --- linux-3.13.0.orig/drivers/gpu/drm/i915/intel_display.c +++ linux-3.13.0/drivers/gpu/drm/i915/intel_display.c @@ -3755,7 +3755,6 @@ ironlake_fdi_disable(crtc); ironlake_disable_pch_transcoder(dev_priv, pipe); - intel_set_pch_fifo_underrun_reporting(dev, pipe, true); if (HAS_PCH_CPT(dev)) { /* disable TRANS_DP_CTL */ @@ -3821,7 +3820,6 @@ if (intel_crtc->config.has_pch_encoder) { lpt_disable_pch_transcoder(dev_priv); - intel_set_pch_fifo_underrun_reporting(dev, TRANSCODER_A, true); intel_ddi_fdi_disable(crtc); } @@ -8335,6 +8333,20 @@ if (ring->id == RCS) len += 6; + /* + * BSpec MI_DISPLAY_FLIP for IVB: + * "The full packet must be contained within the same cache line." + * + * Currently the LRI+SRM+MI_DISPLAY_FLIP all fit within the same + * cacheline, if we ever start emitting more commands before + * the MI_DISPLAY_FLIP we may need to first emit everything else, + * then do the cacheline alignment, and finally emit the + * MI_DISPLAY_FLIP. + */ + ret = intel_ring_cacheline_align(ring); + if (ret) + goto err_unpin; + ret = intel_ring_begin(ring, len); if (ret) goto err_unpin; @@ -9111,11 +9123,22 @@ PIPE_CONF_CHECK_I(pipe_src_w); PIPE_CONF_CHECK_I(pipe_src_h); - PIPE_CONF_CHECK_I(gmch_pfit.control); - /* pfit ratios are autocomputed by the hw on gen4+ */ - if (INTEL_INFO(dev)->gen < 4) - PIPE_CONF_CHECK_I(gmch_pfit.pgm_ratios); - PIPE_CONF_CHECK_I(gmch_pfit.lvds_border_bits); + /* + * FIXME: BIOS likes to set up a cloned config with lvds+external + * screen. Since we don't yet re-compute the pipe config when moving + * just the lvds port away to another pipe the sw tracking won't match. + * + * Proper atomic modesets with recomputed global state will fix this. + * Until then just don't check gmch state for inherited modes. + */ + if (!PIPE_CONF_QUIRK(PIPE_CONFIG_QUIRK_INHERITED_MODE)) { + PIPE_CONF_CHECK_I(gmch_pfit.control); + /* pfit ratios are autocomputed by the hw on gen4+ */ + if (INTEL_INFO(dev)->gen < 4) + PIPE_CONF_CHECK_I(gmch_pfit.pgm_ratios); + PIPE_CONF_CHECK_I(gmch_pfit.lvds_border_bits); + } + PIPE_CONF_CHECK_I(pch_pfit.enabled); if (current_config->pch_pfit.enabled) { PIPE_CONF_CHECK_I(pch_pfit.pos); @@ -9449,7 +9472,8 @@ * are later needed by vblank and swap-completion * timestamping. They are derived from true hwmode. */ - drm_calc_timestamping_constants(crtc); + drm_calc_timestamping_constants(crtc, + &pipe_config->adjusted_mode); } /* FIXME: add subpixel order */ @@ -10556,6 +10580,9 @@ /* Acer Aspire 4736Z */ { 0x2a42, 0x1025, 0x0260, quirk_invert_brightness }, + /* Acer Aspire 5336 */ + { 0x2a42, 0x1025, 0x048a, quirk_invert_brightness }, + /* Dell XPS13 HD Sandy Bridge */ { 0x0116, 0x1028, 0x052e, quirk_no_pcm_pwm_enable }, /* Dell XPS13 HD and XPS13 FHD Ivy Bridge */ @@ -10687,15 +10714,6 @@ intel_disable_fbc(dev); } -static void -intel_connector_break_all_links(struct intel_connector *connector) -{ - connector->base.dpms = DRM_MODE_DPMS_OFF; - connector->base.encoder = NULL; - connector->encoder->connectors_active = false; - connector->encoder->base.crtc = NULL; -} - static void intel_enable_pipe_a(struct drm_device *dev) { struct intel_connector *connector; @@ -10777,8 +10795,17 @@ if (connector->encoder->base.crtc != &crtc->base) continue; - intel_connector_break_all_links(connector); + connector->base.dpms = DRM_MODE_DPMS_OFF; + connector->base.encoder = NULL; } + /* multiple connectors may have the same encoder: + * handle them and break crtc link separately */ + list_for_each_entry(connector, &dev->mode_config.connector_list, + base.head) + if (connector->encoder->base.crtc == &crtc->base) { + connector->encoder->base.crtc = NULL; + connector->encoder->connectors_active = false; + } WARN_ON(crtc->active); crtc->base.enabled = false; @@ -10849,6 +10876,8 @@ drm_get_encoder_name(&encoder->base)); encoder->disable(encoder); } + encoder->base.crtc = NULL; + encoder->connectors_active = false; /* Inconsistent output/port/pipe state happens presumably due to * a bug in one of the get_hw_state functions. Or someplace else @@ -10859,8 +10888,8 @@ base.head) { if (connector->encoder != encoder) continue; - - intel_connector_break_all_links(connector); + connector->base.dpms = DRM_MODE_DPMS_OFF; + connector->base.encoder = NULL; } } /* Enabled encoders without active connectors will be fixed in @@ -10902,6 +10931,8 @@ base.head) { memset(&crtc->config, 0, sizeof(crtc->config)); + crtc->config.quirks |= PIPE_CONFIG_QUIRK_INHERITED_MODE; + crtc->active = dev_priv->display.get_pipe_config(crtc, &crtc->config); --- linux-3.13.0.orig/drivers/gpu/drm/i915/intel_dp.c +++ linux-3.13.0/drivers/gpu/drm/i915/intel_dp.c @@ -96,13 +96,18 @@ intel_dp_max_link_bw(struct intel_dp *intel_dp) { int max_link_bw = intel_dp->dpcd[DP_MAX_LINK_RATE]; + struct drm_device *dev = intel_dp->attached_connector->base.dev; switch (max_link_bw) { case DP_LINK_BW_1_62: case DP_LINK_BW_2_7: break; case DP_LINK_BW_5_4: /* 1.2 capable displays may advertise higher bw */ - max_link_bw = DP_LINK_BW_2_7; + if ((IS_HASWELL(dev) || INTEL_INFO(dev)->gen >= 8) && + intel_dp->dpcd[DP_DPCD_REV] >= 0x12) + max_link_bw = DP_LINK_BW_5_4; + else + max_link_bw = DP_LINK_BW_2_7; break; default: WARN(1, "invalid max DP link bw val %x, using 1.62Gbps\n", @@ -537,6 +542,7 @@ uint8_t msg[20]; int msg_bytes; uint8_t ack; + int retry; if (WARN_ON(send_bytes > 16)) return -E2BIG; @@ -548,18 +554,20 @@ msg[3] = send_bytes - 1; memcpy(&msg[4], send, send_bytes); msg_bytes = send_bytes + 4; - for (;;) { + for (retry = 0; retry < 7; retry++) { ret = intel_dp_aux_ch(intel_dp, msg, msg_bytes, &ack, 1); if (ret < 0) return ret; if ((ack & AUX_NATIVE_REPLY_MASK) == AUX_NATIVE_REPLY_ACK) - break; + return send_bytes; else if ((ack & AUX_NATIVE_REPLY_MASK) == AUX_NATIVE_REPLY_DEFER) - udelay(100); + usleep_range(400, 500); else return -EIO; } - return send_bytes; + + DRM_ERROR("too many retries, giving up\n"); + return -EIO; } /* Write a single byte to the aux channel in native mode */ @@ -581,6 +589,7 @@ int reply_bytes; uint8_t ack; int ret; + int retry; if (WARN_ON(recv_bytes > 19)) return -E2BIG; @@ -594,7 +603,7 @@ msg_bytes = 4; reply_bytes = recv_bytes + 1; - for (;;) { + for (retry = 0; retry < 7; retry++) { ret = intel_dp_aux_ch(intel_dp, msg, msg_bytes, reply, reply_bytes); if (ret == 0) @@ -607,10 +616,13 @@ return ret - 1; } else if ((ack & AUX_NATIVE_REPLY_MASK) == AUX_NATIVE_REPLY_DEFER) - udelay(100); + usleep_range(400, 500); else return -EIO; } + + DRM_ERROR("too many retries, giving up\n"); + return -EIO; } static int @@ -804,9 +816,10 @@ struct intel_connector *intel_connector = intel_dp->attached_connector; int lane_count, clock; int max_lane_count = drm_dp_max_lane_count(intel_dp->dpcd); - int max_clock = intel_dp_max_link_bw(intel_dp) == DP_LINK_BW_2_7 ? 1 : 0; + /* Conveniently, the link BW constants become indices with a shift...*/ + int max_clock = intel_dp_max_link_bw(intel_dp) >> 3; int bpp, mode_rate; - static int bws[2] = { DP_LINK_BW_1_62, DP_LINK_BW_2_7 }; + static int bws[] = { DP_LINK_BW_1_62, DP_LINK_BW_2_7, DP_LINK_BW_5_4 }; int link_avail, link_clock; if (HAS_PCH_SPLIT(dev) && !HAS_DDI(dev) && port != PORT_A) @@ -1627,7 +1640,7 @@ val |= EDP_PSR_LINK_DISABLE; I915_WRITE(EDP_PSR_CTL(dev), val | - IS_BROADWELL(dev) ? 0 : link_entry_time | + (IS_BROADWELL(dev) ? 0 : link_entry_time) | max_sleep_time << EDP_PSR_MAX_SLEEP_TIME_SHIFT | idle_frames << EDP_PSR_IDLE_FRAME_SHIFT | EDP_PSR_ENABLE); @@ -1865,10 +1878,12 @@ mutex_unlock(&dev_priv->dpio_lock); - /* init power sequencer on this pipe and port */ - intel_dp_init_panel_power_sequencer(dev, intel_dp, &power_seq); - intel_dp_init_panel_power_sequencer_registers(dev, intel_dp, - &power_seq); + if (is_edp(intel_dp)) { + /* init power sequencer on this pipe and port */ + intel_dp_init_panel_power_sequencer(dev, intel_dp, &power_seq); + intel_dp_init_panel_power_sequencer_registers(dev, intel_dp, + &power_seq); + } intel_enable_dp(encoder); @@ -2629,10 +2644,15 @@ bool channel_eq = false; int tries, cr_tries; uint32_t DP = intel_dp->DP; + uint32_t training_pattern = DP_TRAINING_PATTERN_2; + + /* Training Pattern 3 for HBR2 ot 1.2 devices that support it*/ + if (intel_dp->link_bw == DP_LINK_BW_5_4 || intel_dp->use_tps3) + training_pattern = DP_TRAINING_PATTERN_3; /* channel equalization */ if (!intel_dp_set_link_train(intel_dp, &DP, - DP_TRAINING_PATTERN_2 | + training_pattern | DP_LINK_SCRAMBLING_DISABLE)) { DRM_ERROR("failed to start channel equalization\n"); return; @@ -2660,7 +2680,7 @@ if (!drm_dp_clock_recovery_ok(link_status, intel_dp->lane_count)) { intel_dp_start_link_train(intel_dp); intel_dp_set_link_train(intel_dp, &DP, - DP_TRAINING_PATTERN_2 | + training_pattern | DP_LINK_SCRAMBLING_DISABLE); cr_tries++; continue; @@ -2676,7 +2696,7 @@ intel_dp_link_down(intel_dp); intel_dp_start_link_train(intel_dp); intel_dp_set_link_train(intel_dp, &DP, - DP_TRAINING_PATTERN_2 | + training_pattern | DP_LINK_SCRAMBLING_DISABLE); tries = 0; cr_tries++; @@ -2818,6 +2838,14 @@ } } + /* Training Pattern 3 support */ + if (intel_dp->dpcd[DP_DPCD_REV] >= 0x12 && + intel_dp->dpcd[DP_MAX_LANE_COUNT] & DP_TPS3_SUPPORTED) { + intel_dp->use_tps3 = true; + DRM_DEBUG_KMS("Displayport TPS3 supported"); + } else + intel_dp->use_tps3 = false; + if (!(intel_dp->dpcd[DP_DOWNSTREAMPORT_PRESENT] & DP_DWN_STRM_PORT_PRESENT)) return true; /* native DP sink */ @@ -3020,18 +3048,34 @@ return status; } - switch (intel_dig_port->port) { - case PORT_B: - bit = PORTB_HOTPLUG_LIVE_STATUS; - break; - case PORT_C: - bit = PORTC_HOTPLUG_LIVE_STATUS; - break; - case PORT_D: - bit = PORTD_HOTPLUG_LIVE_STATUS; - break; - default: - return connector_status_unknown; + if (IS_VALLEYVIEW(dev)) { + switch (intel_dig_port->port) { + case PORT_B: + bit = PORTB_HOTPLUG_LIVE_STATUS_VLV; + break; + case PORT_C: + bit = PORTC_HOTPLUG_LIVE_STATUS_VLV; + break; + case PORT_D: + bit = PORTD_HOTPLUG_LIVE_STATUS_VLV; + break; + default: + return connector_status_unknown; + } + } else { + switch (intel_dig_port->port) { + case PORT_B: + bit = PORTB_HOTPLUG_LIVE_STATUS_G4X; + break; + case PORT_C: + bit = PORTC_HOTPLUG_LIVE_STATUS_G4X; + break; + case PORT_D: + bit = PORTD_HOTPLUG_LIVE_STATUS_G4X; + break; + default: + return connector_status_unknown; + } } if ((I915_READ(PORT_HOTPLUG_STAT) & bit) == 0) --- linux-3.13.0.orig/drivers/gpu/drm/i915/intel_drv.h +++ linux-3.13.0/drivers/gpu/drm/i915/intel_drv.h @@ -207,7 +207,8 @@ * tracked with quirk flags so that fastboot and state checker can act * accordingly. */ -#define PIPE_CONFIG_QUIRK_MODE_SYNC_FLAGS (1<<0) /* unreliable sync mode.flags */ +#define PIPE_CONFIG_QUIRK_MODE_SYNC_FLAGS (1<<0) /* unreliable sync mode.flags */ +#define PIPE_CONFIG_QUIRK_INHERITED_MODE (1<<1) /* mode inherited from firmware */ unsigned long quirks; /* User requested mode, only valid as a starting point to @@ -474,6 +475,7 @@ struct delayed_work panel_vdd_work; bool want_panel_vdd; bool psr_setup_done; + bool use_tps3; struct intel_connector *attached_connector; }; --- linux-3.13.0.orig/drivers/gpu/drm/i915/intel_hdmi.c +++ linux-3.13.0/drivers/gpu/drm/i915/intel_hdmi.c @@ -841,11 +841,11 @@ } } -static int hdmi_portclock_limit(struct intel_hdmi *hdmi) +static int hdmi_portclock_limit(struct intel_hdmi *hdmi, bool respect_dvi_limit) { struct drm_device *dev = intel_hdmi_to_dev(hdmi); - if (IS_G4X(dev)) + if ((respect_dvi_limit && !hdmi->has_hdmi_sink) || IS_G4X(dev)) return 165000; else if (IS_HASWELL(dev) || INTEL_INFO(dev)->gen >= 8) return 300000; @@ -856,7 +856,8 @@ static int intel_hdmi_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode) { - if (mode->clock > hdmi_portclock_limit(intel_attached_hdmi(connector))) + if (mode->clock > hdmi_portclock_limit(intel_attached_hdmi(connector), + true)) return MODE_CLOCK_HIGH; if (mode->clock < 20000) return MODE_CLOCK_LOW; @@ -874,7 +875,7 @@ struct drm_device *dev = encoder->base.dev; struct drm_display_mode *adjusted_mode = &pipe_config->adjusted_mode; int clock_12bpc = pipe_config->adjusted_mode.crtc_clock * 3 / 2; - int portclock_limit = hdmi_portclock_limit(intel_hdmi); + int portclock_limit = hdmi_portclock_limit(intel_hdmi, false); int desired_bpp; if (intel_hdmi->color_range_auto) { @@ -898,8 +899,8 @@ * outputs. We also need to check that the higher clock still fits * within limits. */ - if (pipe_config->pipe_bpp > 8*3 && clock_12bpc <= portclock_limit - && HAS_PCH_SPLIT(dev)) { + if (pipe_config->pipe_bpp > 8*3 && intel_hdmi->has_hdmi_sink && + clock_12bpc <= portclock_limit && HAS_PCH_SPLIT(dev)) { DRM_DEBUG_KMS("picking bpc to 12 for HDMI output\n"); desired_bpp = 12*3; --- linux-3.13.0.orig/drivers/gpu/drm/i915/intel_lvds.c +++ linux-3.13.0/drivers/gpu/drm/i915/intel_lvds.c @@ -533,7 +533,7 @@ .destroy = intel_encoder_destroy, }; -static int __init intel_no_lvds_dmi_callback(const struct dmi_system_id *id) +static int intel_no_lvds_dmi_callback(const struct dmi_system_id *id) { DRM_INFO("Skipping LVDS initialization for %s\n", id->ident); return 1; @@ -945,6 +945,17 @@ int pipe; u8 pin; + /* + * Unlock registers and just leave them unlocked. Do this before + * checking quirk lists to avoid bogus WARNINGs. + */ + if (HAS_PCH_SPLIT(dev)) { + I915_WRITE(PCH_PP_CONTROL, + I915_READ(PCH_PP_CONTROL) | PANEL_UNLOCK_REGS); + } else { + I915_WRITE(PP_CONTROL, + I915_READ(PP_CONTROL) | PANEL_UNLOCK_REGS); + } if (!intel_lvds_supported(dev)) return; @@ -1124,17 +1135,6 @@ DRM_DEBUG_KMS("detected %s-link lvds configuration\n", lvds_encoder->is_dual_link ? "dual" : "single"); - /* - * Unlock registers and just - * leave them unlocked - */ - if (HAS_PCH_SPLIT(dev)) { - I915_WRITE(PCH_PP_CONTROL, - I915_READ(PCH_PP_CONTROL) | PANEL_UNLOCK_REGS); - } else { - I915_WRITE(PP_CONTROL, - I915_READ(PP_CONTROL) | PANEL_UNLOCK_REGS); - } lvds_connector->lid_notifier.notifier_call = intel_lid_notify; if (acpi_lid_notifier_register(&lvds_connector->lid_notifier)) { DRM_DEBUG_KMS("lid notifier registration failed\n"); --- linux-3.13.0.orig/drivers/gpu/drm/i915/intel_panel.c +++ linux-3.13.0/drivers/gpu/drm/i915/intel_panel.c @@ -544,6 +544,7 @@ enum pipe pipe = intel_get_pipe_from_connector(connector); u32 freq; unsigned long flags; + u64 n; if (pipe == INVALID_PIPE) return; @@ -557,10 +558,9 @@ } /* scale to hardware, but be careful to not overflow */ - if (freq < max) - level = level * freq / max; - else - level = freq / max * level; + n = (u64)level * freq; + do_div(n, max); + level = n; dev_priv->backlight.level = level; if (dev_priv->backlight.device) --- linux-3.13.0.orig/drivers/gpu/drm/i915/intel_pm.c +++ linux-3.13.0/drivers/gpu/drm/i915/intel_pm.c @@ -498,8 +498,7 @@ obj = intel_fb->obj; adjusted_mode = &intel_crtc->config.adjusted_mode; - if (i915_enable_fbc < 0 && - INTEL_INFO(dev)->gen <= 7 && !IS_HASWELL(dev)) { + if (i915_enable_fbc < 0) { if (set_no_fbc_reason(dev_priv, FBC_CHIP_DEFAULT)) DRM_DEBUG_KMS("disabled per chip default\n"); goto out_disable; @@ -2563,6 +2562,43 @@ } } +static bool ilk_increase_wm_latency(struct drm_i915_private *dev_priv, + uint16_t wm[5], uint16_t min) +{ + int level, max_level = ilk_wm_max_level(dev_priv->dev); + + if (wm[0] >= min) + return false; + + wm[0] = max(wm[0], min); + for (level = 1; level <= max_level; level++) + wm[level] = max_t(uint16_t, wm[level], DIV_ROUND_UP(min, 5)); + + return true; +} + +static void snb_wm_latency_quirk(struct drm_device *dev) +{ + struct drm_i915_private *dev_priv = dev->dev_private; + bool changed; + + /* + * The BIOS provided WM memory latency values are often + * inadequate for high resolution displays. Adjust them. + */ + changed = ilk_increase_wm_latency(dev_priv, dev_priv->wm.pri_latency, 12) | + ilk_increase_wm_latency(dev_priv, dev_priv->wm.spr_latency, 12) | + ilk_increase_wm_latency(dev_priv, dev_priv->wm.cur_latency, 12); + + if (!changed) + return; + + DRM_DEBUG_KMS("WM latency values increased to avoid potential underruns\n"); + intel_print_wm_latency(dev, "Primary", dev_priv->wm.pri_latency); + intel_print_wm_latency(dev, "Sprite", dev_priv->wm.spr_latency); + intel_print_wm_latency(dev, "Cursor", dev_priv->wm.cur_latency); +} + static void intel_setup_wm_latency(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; @@ -2580,6 +2616,9 @@ intel_print_wm_latency(dev, "Primary", dev_priv->wm.pri_latency); intel_print_wm_latency(dev, "Sprite", dev_priv->wm.spr_latency); intel_print_wm_latency(dev, "Cursor", dev_priv->wm.cur_latency); + + if (IS_GEN6(dev)) + snb_wm_latency_quirk(dev); } static void hsw_compute_wm_parameters(struct drm_crtc *crtc, @@ -5156,11 +5195,6 @@ I915_WRITE(_3D_CHICKEN, _MASKED_BIT_ENABLE(_3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB)); - /* WaSetupGtModeTdRowDispatch:snb */ - if (IS_SNB_GT1(dev)) - I915_WRITE(GEN6_GT_MODE, - _MASKED_BIT_ENABLE(GEN6_TD_FOUR_ROW_DISPATCH_DISABLE)); - I915_WRITE(WM3_LP_ILK, 0); I915_WRITE(WM2_LP_ILK, 0); I915_WRITE(WM1_LP_ILK, 0); @@ -5314,8 +5348,8 @@ /* WaPsrDPRSUnmaskVBlankInSRD */ for_each_pipe(i) { I915_WRITE(CHICKEN_PIPESL_1(i), - I915_READ(CHICKEN_PIPESL_1(i) | - DPRS_MASK_VBLANK_SRD)); + I915_READ(CHICKEN_PIPESL_1(i)) | + DPRS_MASK_VBLANK_SRD); } } @@ -5843,6 +5877,27 @@ } EXPORT_SYMBOL_GPL(i915_release_power_well); +/* + * Private interface for the audio driver to get CDCLK in kHz. + * + * Caller must request power well using i915_request_power_well() prior to + * making the call. + */ +int i915_get_cdclk_freq(void) +{ + struct drm_i915_private *dev_priv; + + if (!hsw_pwr) + return -ENODEV; + + dev_priv = container_of(hsw_pwr, struct drm_i915_private, + power_domains); + + return intel_ddi_get_cdclk_freq(dev_priv); +} +EXPORT_SYMBOL_GPL(i915_get_cdclk_freq); + + int intel_power_domains_init(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; --- linux-3.13.0.orig/drivers/gpu/drm/i915/intel_ringbuffer.c +++ linux-3.13.0/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -473,6 +473,9 @@ } } + /* Enforce ordering by reading HEAD register back */ + I915_READ_HEAD(ring); + /* Initialize the ring. This must happen _after_ we've cleared the ring * registers with the above sequence (the readback of the HEAD registers * also enforces ordering), otherwise the hw might lose the new ring @@ -1177,54 +1180,66 @@ /* Just userspace ABI convention to limit the wa batch bo to a resonable size */ #define I830_BATCH_LIMIT (256*1024) +#define I830_TLB_ENTRIES (2) +#define I830_WA_SIZE max(I830_TLB_ENTRIES*4096, I830_BATCH_LIMIT) static int i830_dispatch_execbuffer(struct intel_ring_buffer *ring, u32 offset, u32 len, unsigned flags) { + u32 cs_offset = ring->scratch.gtt_offset; int ret; - if (flags & I915_DISPATCH_PINNED) { - ret = intel_ring_begin(ring, 4); - if (ret) - return ret; + ret = intel_ring_begin(ring, 6); + if (ret) + return ret; - intel_ring_emit(ring, MI_BATCH_BUFFER); - intel_ring_emit(ring, offset | (flags & I915_DISPATCH_SECURE ? 0 : MI_BATCH_NON_SECURE)); - intel_ring_emit(ring, offset + len - 8); - intel_ring_emit(ring, MI_NOOP); - intel_ring_advance(ring); - } else { - u32 cs_offset = ring->scratch.gtt_offset; + /* Evict the invalid PTE TLBs */ + intel_ring_emit(ring, COLOR_BLT_CMD | BLT_WRITE_RGBA); + intel_ring_emit(ring, BLT_DEPTH_32 | BLT_ROP_COLOR_COPY | 4096); + intel_ring_emit(ring, I830_TLB_ENTRIES << 16 | 4); /* load each page */ + intel_ring_emit(ring, cs_offset); + intel_ring_emit(ring, 0xdeadbeef); + intel_ring_emit(ring, MI_NOOP); + intel_ring_advance(ring); + if ((flags & I915_DISPATCH_PINNED) == 0) { if (len > I830_BATCH_LIMIT) return -ENOSPC; - ret = intel_ring_begin(ring, 9+3); + ret = intel_ring_begin(ring, 6 + 2); if (ret) return ret; - /* Blit the batch (which has now all relocs applied) to the stable batch - * scratch bo area (so that the CS never stumbles over its tlb - * invalidation bug) ... */ - intel_ring_emit(ring, XY_SRC_COPY_BLT_CMD | - XY_SRC_COPY_BLT_WRITE_ALPHA | - XY_SRC_COPY_BLT_WRITE_RGB); - intel_ring_emit(ring, BLT_DEPTH_32 | BLT_ROP_GXCOPY | 4096); - intel_ring_emit(ring, 0); - intel_ring_emit(ring, (DIV_ROUND_UP(len, 4096) << 16) | 1024); + + /* Blit the batch (which has now all relocs applied) to the + * stable batch scratch bo area (so that the CS never + * stumbles over its tlb invalidation bug) ... + */ + intel_ring_emit(ring, SRC_COPY_BLT_CMD | BLT_WRITE_RGBA); + intel_ring_emit(ring, BLT_DEPTH_32 | BLT_ROP_SRC_COPY | 4096); + intel_ring_emit(ring, DIV_ROUND_UP(len, 4096) << 16 | 4096); intel_ring_emit(ring, cs_offset); - intel_ring_emit(ring, 0); intel_ring_emit(ring, 4096); intel_ring_emit(ring, offset); + intel_ring_emit(ring, MI_FLUSH); + intel_ring_emit(ring, MI_NOOP); + intel_ring_advance(ring); /* ... and execute it. */ - intel_ring_emit(ring, MI_BATCH_BUFFER); - intel_ring_emit(ring, cs_offset | (flags & I915_DISPATCH_SECURE ? 0 : MI_BATCH_NON_SECURE)); - intel_ring_emit(ring, cs_offset + len - 8); - intel_ring_advance(ring); + offset = cs_offset; } + ret = intel_ring_begin(ring, 4); + if (ret) + return ret; + + intel_ring_emit(ring, MI_BATCH_BUFFER); + intel_ring_emit(ring, offset | (flags & I915_DISPATCH_SECURE ? 0 : MI_BATCH_NON_SECURE)); + intel_ring_emit(ring, offset + len - 8); + intel_ring_emit(ring, MI_NOOP); + intel_ring_advance(ring); + return 0; } @@ -1611,8 +1626,8 @@ return i915_gem_get_seqno(ring->dev, &ring->outstanding_lazy_seqno); } -static int __intel_ring_begin(struct intel_ring_buffer *ring, - int bytes) +static int __intel_ring_prepare(struct intel_ring_buffer *ring, + int bytes) { int ret; @@ -1628,7 +1643,6 @@ return ret; } - ring->space -= bytes; return 0; } @@ -1643,12 +1657,38 @@ if (ret) return ret; + ret = __intel_ring_prepare(ring, num_dwords * sizeof(uint32_t)); + if (ret) + return ret; + /* Preallocate the olr before touching the ring */ ret = intel_ring_alloc_seqno(ring); if (ret) return ret; - return __intel_ring_begin(ring, num_dwords * sizeof(uint32_t)); + ring->space -= num_dwords * sizeof(uint32_t); + return 0; +} + +/* Align the ring tail to a cacheline boundary */ +int intel_ring_cacheline_align(struct intel_ring_buffer *ring) +{ + int num_dwords = (64 - (ring->tail & 63)) / sizeof(uint32_t); + int ret; + + if (num_dwords == 0) + return 0; + + ret = intel_ring_begin(ring, num_dwords); + if (ret) + return ret; + + while (num_dwords--) + intel_ring_emit(ring, MI_NOOP); + + intel_ring_advance(ring); + + return 0; } void intel_ring_init_seqno(struct intel_ring_buffer *ring, u32 seqno) @@ -1925,7 +1965,7 @@ struct drm_i915_gem_object *obj; int ret; - obj = i915_gem_alloc_object(dev, I830_BATCH_LIMIT); + obj = i915_gem_alloc_object(dev, I830_WA_SIZE); if (obj == NULL) { DRM_ERROR("Failed to allocate batch bo\n"); return -ENOMEM; --- linux-3.13.0.orig/drivers/gpu/drm/i915/intel_ringbuffer.h +++ linux-3.13.0/drivers/gpu/drm/i915/intel_ringbuffer.h @@ -42,11 +42,11 @@ }; struct intel_ring_hangcheck { - bool deadlock; u32 seqno; u32 acthd; int score; enum intel_ring_hangcheck_action action; + int deadlock; }; struct intel_ring_buffer { @@ -233,6 +233,7 @@ void intel_cleanup_ring_buffer(struct intel_ring_buffer *ring); int __must_check intel_ring_begin(struct intel_ring_buffer *ring, int n); +int __must_check intel_ring_cacheline_align(struct intel_ring_buffer *ring); static inline void intel_ring_emit(struct intel_ring_buffer *ring, u32 data) { --- linux-3.13.0.orig/drivers/gpu/drm/i915/intel_sdvo.c +++ linux-3.13.0/drivers/gpu/drm/i915/intel_sdvo.c @@ -1364,7 +1364,9 @@ >> SDVO_PORT_MULTIPLY_SHIFT) + 1; } - dotclock = pipe_config->port_clock / pipe_config->pixel_multiplier; + dotclock = pipe_config->port_clock; + if (pipe_config->pixel_multiplier) + dotclock /= pipe_config->pixel_multiplier; if (HAS_PCH_SPLIT(dev)) ironlake_check_encoder_dotclock(pipe_config, dotclock); --- linux-3.13.0.orig/drivers/gpu/drm/i915/intel_tv.c +++ linux-3.13.0/drivers/gpu/drm/i915/intel_tv.c @@ -854,6 +854,10 @@ struct drm_device *dev = encoder->base.dev; struct drm_i915_private *dev_priv = dev->dev_private; + /* Prevents vblank waits from timing out in intel_tv_detect_type() */ + intel_wait_for_vblank(encoder->base.dev, + to_intel_crtc(encoder->base.crtc)->pipe); + I915_WRITE(TV_CTL, I915_READ(TV_CTL) | TV_ENC_ENABLE); } @@ -1536,9 +1540,14 @@ /* * If the device type is not TV, continue. */ - if (p_child->old.device_type != DEVICE_TYPE_INT_TV && - p_child->old.device_type != DEVICE_TYPE_TV) + switch (p_child->old.device_type) { + case DEVICE_TYPE_INT_TV: + case DEVICE_TYPE_TV: + case DEVICE_TYPE_TV_SVIDEO_COMPOSITE: + break; + default: continue; + } /* Only when the addin_offset is non-zero, it is regarded * as present. */ --- linux-3.13.0.orig/drivers/gpu/drm/i915/intel_uncore.c +++ linux-3.13.0/drivers/gpu/drm/i915/intel_uncore.c @@ -167,6 +167,8 @@ { __raw_i915_write32(dev_priv, FORCEWAKE_VLV, _MASKED_BIT_DISABLE(0xffff)); + __raw_i915_write32(dev_priv, FORCEWAKE_MEDIA_VLV, + _MASKED_BIT_DISABLE(0xffff)); /* something from same cacheline, but !FORCEWAKE_VLV */ __raw_posting_read(dev_priv, FORCEWAKE_ACK_VLV); } @@ -686,6 +688,40 @@ return 0; } + +int i915_get_reset_stats_ioctl(struct drm_device *dev, + void *data, struct drm_file *file) +{ + struct drm_i915_private *dev_priv = dev->dev_private; + struct drm_i915_reset_stats *args = data; + struct i915_ctx_hang_stats *hs; + int ret; + + if (args->ctx_id == DEFAULT_CONTEXT_ID && !capable(CAP_SYS_ADMIN)) + return -EPERM; + + ret = mutex_lock_interruptible(&dev->struct_mutex); + if (ret) + return ret; + + hs = i915_gem_context_get_hang_stats(dev, file, args->ctx_id); + if (IS_ERR(hs)) { + mutex_unlock(&dev->struct_mutex); + return PTR_ERR(hs); + } + + if (capable(CAP_SYS_ADMIN)) + args->reset_count = i915_reset_count(&dev_priv->gpu_error); + else + args->reset_count = 0; + + args->batch_active = hs->batch_active; + args->batch_pending = hs->batch_pending; + + mutex_unlock(&dev->struct_mutex); + + return 0; +} static int i965_reset_complete(struct drm_device *dev) { --- linux-3.13.0.orig/drivers/gpu/drm/mgag200/mgag200_cursor.c +++ linux-3.13.0/drivers/gpu/drm/mgag200/mgag200_cursor.c @@ -22,8 +22,10 @@ { WREG8(MGA_CURPOSXL, 0); WREG8(MGA_CURPOSXH, 0); - mgag200_bo_unpin(mdev->cursor.pixels_1); - mgag200_bo_unpin(mdev->cursor.pixels_2); + if (mdev->cursor.pixels_1->pin_count) + mgag200_bo_unpin(mdev->cursor.pixels_1); + if (mdev->cursor.pixels_2->pin_count) + mgag200_bo_unpin(mdev->cursor.pixels_2); } int mga_crtc_cursor_set(struct drm_crtc *crtc, @@ -32,7 +34,7 @@ uint32_t width, uint32_t height) { - struct drm_device *dev = (struct drm_device *)file_priv->minor->dev; + struct drm_device *dev = crtc->dev; struct mga_device *mdev = (struct mga_device *)dev->dev_private; struct mgag200_bo *pixels_1 = mdev->cursor.pixels_1; struct mgag200_bo *pixels_2 = mdev->cursor.pixels_2; --- linux-3.13.0.orig/drivers/gpu/drm/mgag200/mgag200_fb.c +++ linux-3.13.0/drivers/gpu/drm/mgag200/mgag200_fb.c @@ -41,7 +41,7 @@ * then the BO is being moved and we should * store up the damage until later. */ - if (!in_interrupt()) + if (drm_can_sleep()) ret = mgag200_bo_reserve(bo, true); if (ret) { if (ret != -EBUSY) --- linux-3.13.0.orig/drivers/gpu/drm/mgag200/mgag200_mode.c +++ linux-3.13.0/drivers/gpu/drm/mgag200/mgag200_mode.c @@ -1519,11 +1519,11 @@ (mga_vga_calculate_mode_bandwidth(mode, bpp) > (32700 * 1024))) { return MODE_BANDWIDTH; - } else if (mode->type == G200_EH && + } else if (mdev->type == G200_EH && (mga_vga_calculate_mode_bandwidth(mode, bpp) > (37500 * 1024))) { return MODE_BANDWIDTH; - } else if (mode->type == G200_ER && + } else if (mdev->type == G200_ER && (mga_vga_calculate_mode_bandwidth(mode, bpp) > (55000 * 1024))) { return MODE_BANDWIDTH; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/Makefile +++ linux-3.13.0/drivers/gpu/drm/nouveau/Makefile @@ -71,7 +71,10 @@ nouveau-y += core/subdev/devinit/nv1a.o nouveau-y += core/subdev/devinit/nv20.o nouveau-y += core/subdev/devinit/nv50.o +nouveau-y += core/subdev/devinit/nv84.o +nouveau-y += core/subdev/devinit/nv98.o nouveau-y += core/subdev/devinit/nva3.o +nouveau-y += core/subdev/devinit/nvaf.o nouveau-y += core/subdev/devinit/nvc0.o nouveau-y += core/subdev/fb/base.o nouveau-y += core/subdev/fb/nv04.o --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/core/engine.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/core/engine.c @@ -42,11 +42,24 @@ if (ret) return ret; - if ( parent && - !nouveau_boolopt(nv_device(parent)->cfgopt, iname, enable)) { - if (!enable) - nv_warn(engine, "disabled, %s=1 to enable\n", iname); - return -ENODEV; + if (parent) { + struct nouveau_device *device = nv_device(parent); + int engidx = nv_engidx(nv_object(engine)); + + if (device->disable_mask & (1ULL << engidx)) { + if (!nouveau_boolopt(device->cfgopt, iname, false)) { + nv_debug(engine, "engine disabled by hw/fw\n"); + return -ENODEV; + } + + nv_warn(engine, "ignoring hw/fw engine disable\n"); + } + + if (!nouveau_boolopt(device->cfgopt, iname, enable)) { + if (!enable) + nv_warn(engine, "disabled, %s=1 to enable\n", iname); + return -ENODEV; + } } INIT_LIST_HEAD(&engine->contexts); --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/engine/copy/nvc0.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/engine/copy/nvc0.c @@ -105,9 +105,6 @@ struct nvc0_copy_priv *priv; int ret; - if (nv_rd32(parent, 0x022500) & 0x00000100) - return -ENODEV; - ret = nouveau_falcon_create(parent, engine, oclass, 0x104000, true, "PCE0", "copy0", &priv); *pobject = nv_object(priv); @@ -133,9 +130,6 @@ struct nvc0_copy_priv *priv; int ret; - if (nv_rd32(parent, 0x022500) & 0x00000200) - return -ENODEV; - ret = nouveau_falcon_create(parent, engine, oclass, 0x105000, true, "PCE1", "copy1", &priv); *pobject = nv_object(priv); --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/engine/copy/nve0.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/engine/copy/nve0.c @@ -88,9 +88,6 @@ struct nve0_copy_priv *priv; int ret; - if (nv_rd32(parent, 0x022500) & 0x00000100) - return -ENODEV; - ret = nouveau_engine_create(parent, engine, oclass, true, "PCE0", "copy0", &priv); *pobject = nv_object(priv); @@ -112,9 +109,6 @@ struct nve0_copy_priv *priv; int ret; - if (nv_rd32(parent, 0x022500) & 0x00000200) - return -ENODEV; - ret = nouveau_engine_create(parent, engine, oclass, true, "PCE1", "copy1", &priv); *pobject = nv_object(priv); --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/engine/device/nv04.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/engine/device/nv04.c @@ -49,7 +49,7 @@ device->oclass[NVDEV_SUBDEV_VBIOS ] = &nouveau_bios_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv04_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv04_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv04_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -67,7 +67,7 @@ device->oclass[NVDEV_SUBDEV_VBIOS ] = &nouveau_bios_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv05_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv05_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv04_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/engine/device/nv10.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/engine/device/nv10.c @@ -51,7 +51,7 @@ device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv10_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv10_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv04_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -68,7 +68,7 @@ device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv10_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv10_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv04_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -87,7 +87,7 @@ device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv10_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv10_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv04_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -106,7 +106,7 @@ device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv1a_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv1a_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv04_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -125,7 +125,7 @@ device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv10_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv10_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv04_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -144,7 +144,7 @@ device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv10_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv10_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv04_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -163,7 +163,7 @@ device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv1a_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv1a_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv04_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -182,7 +182,7 @@ device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv10_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv10_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv04_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/engine/device/nv20.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/engine/device/nv20.c @@ -52,7 +52,7 @@ device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv20_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv20_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv04_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -71,7 +71,7 @@ device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv20_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv20_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv04_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -90,7 +90,7 @@ device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv20_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv20_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv04_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -109,7 +109,7 @@ device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv20_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv20_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv04_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/engine/device/nv30.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/engine/device/nv30.c @@ -52,7 +52,7 @@ device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv20_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv20_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv04_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -71,7 +71,7 @@ device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv20_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv20_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv04_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -90,7 +90,7 @@ device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv20_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv20_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -110,7 +110,7 @@ device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv20_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv20_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -130,7 +130,7 @@ device->oclass[NVDEV_SUBDEV_GPIO ] = &nv10_gpio_oclass; device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv04_clock_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv10_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv10_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv04_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/engine/device/nv40.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/engine/device/nv40.c @@ -57,7 +57,7 @@ device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv40_therm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv1a_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv1a_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv40_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -80,7 +80,7 @@ device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv40_therm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv1a_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv1a_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv40_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -103,7 +103,7 @@ device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv40_therm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv1a_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv1a_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv40_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -126,7 +126,7 @@ device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv40_therm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv1a_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv1a_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv40_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -149,7 +149,7 @@ device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv40_therm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv1a_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv1a_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv40_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -172,7 +172,7 @@ device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv40_therm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv1a_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv1a_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv40_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -195,7 +195,7 @@ device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv40_therm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv1a_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv1a_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv40_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -218,7 +218,7 @@ device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv40_therm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv1a_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv1a_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv40_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -241,7 +241,7 @@ device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv40_therm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv1a_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv1a_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv44_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -264,7 +264,7 @@ device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv40_therm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv1a_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv1a_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv44_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -287,7 +287,7 @@ device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv40_therm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv1a_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv1a_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv44_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -310,7 +310,7 @@ device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv40_therm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv1a_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv1a_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv44_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -333,7 +333,7 @@ device->oclass[NVDEV_SUBDEV_I2C ] = &nv4e_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv40_therm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv1a_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv1a_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv44_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -356,7 +356,7 @@ device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv40_therm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv1a_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv1a_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv44_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -379,7 +379,7 @@ device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv40_therm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv1a_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv1a_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv44_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -402,7 +402,7 @@ device->oclass[NVDEV_SUBDEV_I2C ] = &nv04_i2c_oclass; device->oclass[NVDEV_SUBDEV_CLOCK ] = &nv40_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv40_therm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv1a_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv1a_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv44_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv31_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/engine/device/nv50.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/engine/device/nv50.c @@ -65,7 +65,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = nv50_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv50_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv50_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv50_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv50_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv50_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -90,7 +90,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = nv84_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv84_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv50_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv84_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv50_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv50_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -118,7 +118,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = nv84_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv84_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv50_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv84_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv50_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv50_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -146,7 +146,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = nv84_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv84_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv50_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv84_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv50_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv50_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -174,7 +174,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = nv84_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv84_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv50_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv84_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv94_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv94_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -202,7 +202,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = nv84_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv84_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv50_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv84_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv94_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv94_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -230,7 +230,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = nv84_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv84_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv50_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv98_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv98_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv94_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -258,7 +258,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = nv84_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv84_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv50_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv84_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv98_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv94_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -286,7 +286,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = nvaa_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv84_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv50_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv98_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv98_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv94_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -314,7 +314,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = nvaa_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nv84_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nv50_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nv98_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv98_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv94_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -342,7 +342,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nva3_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nva3_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nva3_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nva3_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv98_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv94_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -372,7 +372,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nva3_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nva3_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nva3_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nva3_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv98_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv94_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -401,7 +401,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nva3_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nva3_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nva3_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nva3_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv98_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv94_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -430,7 +430,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nva3_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nva3_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nva3_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nvaf_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nv98_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nv94_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/engine/device/nvc0.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/engine/device/nvc0.c @@ -65,7 +65,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nvc0_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nva3_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nvc0_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nvc0_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nvc0_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nvc0_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -97,7 +97,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nvc0_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nva3_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nvc0_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nvc0_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nvc0_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nvc0_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -129,7 +129,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nvc0_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nva3_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nvc0_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nvc0_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nvc3_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nvc0_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -160,7 +160,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nvc0_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nva3_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nvc0_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nvc0_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nvc0_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nvc0_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -192,7 +192,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nvc0_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nva3_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nvc0_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nvc0_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nvc3_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nvc0_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -212,7 +212,6 @@ device->oclass[NVDEV_ENGINE_BSP ] = &nvc0_bsp_oclass; device->oclass[NVDEV_ENGINE_PPP ] = &nvc0_ppp_oclass; device->oclass[NVDEV_ENGINE_COPY0 ] = &nvc0_copy0_oclass; - device->oclass[NVDEV_ENGINE_COPY1 ] = &nvc0_copy1_oclass; device->oclass[NVDEV_ENGINE_DISP ] = &nva3_disp_oclass; device->oclass[NVDEV_ENGINE_PERFMON] = &nvc0_perfmon_oclass; break; @@ -224,7 +223,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nvc0_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nva3_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nvc0_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nvc0_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nvc3_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nvc0_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -255,7 +254,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nvc0_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nva3_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nvc0_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nvc0_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nvc0_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nvc0_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -287,7 +286,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nvc0_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nvd0_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nvc0_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nvc0_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nvc3_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nvc0_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -318,7 +317,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nvc0_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nvd0_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nvc0_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nvc0_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nvc3_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nvc0_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/engine/device/nve0.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/engine/device/nve0.c @@ -65,7 +65,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nve0_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nvd0_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nvc0_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nvc0_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nvc3_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nvc0_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -98,7 +98,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nve0_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nvd0_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nvc0_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nvc0_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nvc3_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nvc0_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -131,7 +131,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nve0_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nvd0_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nvc0_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nvc0_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nvc3_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nvc0_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -164,7 +164,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nve0_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nvd0_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nvc0_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nvc0_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nvc3_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nvc0_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; @@ -199,7 +199,7 @@ device->oclass[NVDEV_SUBDEV_CLOCK ] = &nve0_clock_oclass; device->oclass[NVDEV_SUBDEV_THERM ] = &nvd0_therm_oclass; device->oclass[NVDEV_SUBDEV_MXM ] = &nv50_mxm_oclass; - device->oclass[NVDEV_SUBDEV_DEVINIT] = &nvc0_devinit_oclass; + device->oclass[NVDEV_SUBDEV_DEVINIT] = nvc0_devinit_oclass; device->oclass[NVDEV_SUBDEV_MC ] = nvc3_mc_oclass; device->oclass[NVDEV_SUBDEV_BUS ] = nvc0_bus_oclass; device->oclass[NVDEV_SUBDEV_TIMER ] = &nv04_timer_oclass; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/engine/disp/nv50.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/engine/disp/nv50.c @@ -1112,7 +1112,7 @@ if (conf != ~0) { if (outp.location == 0 && outp.type == DCB_OUTPUT_DP) { u32 soff = (ffs(outp.or) - 1) * 0x08; - u32 ctrl = nv_rd32(priv, 0x610798 + soff); + u32 ctrl = nv_rd32(priv, 0x610794 + soff); u32 datarate; switch ((ctrl & 0x000f0000) >> 16) { --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/engine/disp/nvd0.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/engine/disp/nvd0.c @@ -687,7 +687,7 @@ } if (outp == 8) - return false; + return conf; data = exec_lookup(priv, head, outp, ctrl, dcb, &ver, &hdr, &cnt, &len, &info1); if (data == 0x0000) @@ -967,9 +967,6 @@ int heads = nv_rd32(parent, 0x022448); int ret; - if (nv_rd32(parent, 0x022500) & 0x00000001) - return -ENODEV; - ret = nouveau_disp_create(parent, engine, oclass, heads, "PDISP", "display", &priv); *pobject = nv_object(priv); --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/engine/disp/nve0.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/engine/disp/nve0.c @@ -54,9 +54,6 @@ int heads = nv_rd32(parent, 0x022448); int ret; - if (nv_rd32(parent, 0x022500) & 0x00000001) - return -ENODEV; - ret = nouveau_disp_create(parent, engine, oclass, heads, "PDISP", "display", &priv); *pobject = nv_object(priv); --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/engine/disp/nvf0.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/engine/disp/nvf0.c @@ -54,9 +54,6 @@ int heads = nv_rd32(parent, 0x022448); int ret; - if (nv_rd32(parent, 0x022500) & 0x00000001) - return -ENODEV; - ret = nouveau_disp_create(parent, engine, oclass, heads, "PDISP", "display", &priv); *pobject = nv_object(priv); --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/engine/falcon.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/engine/falcon.c @@ -56,6 +56,16 @@ nv_wr32(falcon, falcon->addr + addr, data); } +static void * +vmemdup(const void *src, size_t len) +{ + void *p = vmalloc(len); + + if (p) + memcpy(p, src, len); + return p; +} + int _nouveau_falcon_init(struct nouveau_object *object) { @@ -111,7 +121,7 @@ ret = request_firmware(&fw, name, &device->pdev->dev); if (ret == 0) { - falcon->code.data = kmemdup(fw->data, fw->size, GFP_KERNEL); + falcon->code.data = vmemdup(fw->data, fw->size); falcon->code.size = fw->size; falcon->data.data = NULL; falcon->data.size = 0; @@ -134,7 +144,7 @@ return ret; } - falcon->data.data = kmemdup(fw->data, fw->size, GFP_KERNEL); + falcon->data.data = vmemdup(fw->data, fw->size); falcon->data.size = fw->size; release_firmware(fw); if (!falcon->data.data) @@ -149,7 +159,7 @@ return ret; } - falcon->code.data = kmemdup(fw->data, fw->size, GFP_KERNEL); + falcon->code.data = vmemdup(fw->data, fw->size); falcon->code.size = fw->size; release_firmware(fw); if (!falcon->code.data) @@ -235,8 +245,8 @@ if (!suspend) { nouveau_gpuobj_ref(NULL, &falcon->core); if (falcon->external) { - kfree(falcon->data.data); - kfree(falcon->code.data); + vfree(falcon->data.data); + vfree(falcon->code.data); falcon->code.data = NULL; } } --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/include/core/device.h +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/include/core/device.h @@ -70,6 +70,7 @@ const char *dbgopt; const char *name; const char *cname; + u64 disable_mask; enum { NV_04 = 0x04, --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/include/subdev/devinit.h +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/include/subdev/devinit.h @@ -9,7 +9,6 @@ bool post; void (*meminit)(struct nouveau_devinit *); int (*pll_set)(struct nouveau_devinit *, u32 type, u32 freq); - }; static inline struct nouveau_devinit * @@ -18,32 +17,16 @@ return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_DEVINIT]; } -#define nouveau_devinit_create(p,e,o,d) \ - nouveau_devinit_create_((p), (e), (o), sizeof(**d), (void **)d) -#define nouveau_devinit_destroy(p) \ - nouveau_subdev_destroy(&(p)->base) -#define nouveau_devinit_init(p) ({ \ - struct nouveau_devinit *d = (p); \ - _nouveau_devinit_init(nv_object(d)); \ -}) -#define nouveau_devinit_fini(p,s) ({ \ - struct nouveau_devinit *d = (p); \ - _nouveau_devinit_fini(nv_object(d), (s)); \ -}) - -int nouveau_devinit_create_(struct nouveau_object *, struct nouveau_object *, - struct nouveau_oclass *, int, void **); -#define _nouveau_devinit_dtor _nouveau_subdev_dtor -int _nouveau_devinit_init(struct nouveau_object *); -int _nouveau_devinit_fini(struct nouveau_object *, bool suspend); - -extern struct nouveau_oclass nv04_devinit_oclass; -extern struct nouveau_oclass nv05_devinit_oclass; -extern struct nouveau_oclass nv10_devinit_oclass; -extern struct nouveau_oclass nv1a_devinit_oclass; -extern struct nouveau_oclass nv20_devinit_oclass; -extern struct nouveau_oclass nv50_devinit_oclass; -extern struct nouveau_oclass nva3_devinit_oclass; -extern struct nouveau_oclass nvc0_devinit_oclass; +extern struct nouveau_oclass *nv04_devinit_oclass; +extern struct nouveau_oclass *nv05_devinit_oclass; +extern struct nouveau_oclass *nv10_devinit_oclass; +extern struct nouveau_oclass *nv1a_devinit_oclass; +extern struct nouveau_oclass *nv20_devinit_oclass; +extern struct nouveau_oclass *nv50_devinit_oclass; +extern struct nouveau_oclass *nv84_devinit_oclass; +extern struct nouveau_oclass *nv98_devinit_oclass; +extern struct nouveau_oclass *nva3_devinit_oclass; +extern struct nouveau_oclass *nvaf_devinit_oclass; +extern struct nouveau_oclass *nvc0_devinit_oclass; #endif --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/bar/nvc0.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/bar/nvc0.c @@ -198,7 +198,6 @@ nv_mask(priv, 0x000200, 0x00000100, 0x00000000); nv_mask(priv, 0x000200, 0x00000100, 0x00000100); - nv_mask(priv, 0x100c80, 0x00000001, 0x00000000); nv_wr32(priv, 0x001704, 0x80000000 | priv->bar[1].mem->addr >> 12); nv_wr32(priv, 0x001714, 0xc0000000 | priv->bar[0].mem->addr >> 12); --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/clock/nv04.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/clock/nv04.c @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include "pll.h" --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/devinit/base.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/devinit/base.c @@ -24,10 +24,11 @@ #include -#include #include #include +#include "priv.h" + int _nouveau_devinit_fini(struct nouveau_object *object, bool suspend) { @@ -43,12 +44,21 @@ int _nouveau_devinit_init(struct nouveau_object *object) { + struct nouveau_devinit_impl *impl = (void *)object->oclass; struct nouveau_devinit *devinit = (void *)object; - int ret = nouveau_subdev_init(&devinit->base); + int ret; + + ret = nouveau_subdev_init(&devinit->base); if (ret) return ret; - return nvbios_init(&devinit->base, devinit->post); + ret = nvbios_init(&devinit->base, devinit->post); + if (ret) + return ret; + + if (impl->disable) + nv_device(devinit)->disable_mask |= impl->disable(devinit); + return 0; } int @@ -57,6 +67,7 @@ struct nouveau_oclass *oclass, int size, void **pobject) { + struct nouveau_devinit_impl *impl = (void *)oclass; struct nouveau_device *device = nv_device(parent); struct nouveau_devinit *devinit; int ret; @@ -68,5 +79,7 @@ return ret; devinit->post = nouveau_boolopt(device->cfgopt, "NvForcePost", false); + devinit->meminit = impl->meminit; + devinit->pll_set = impl->pll_set; return 0; } --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/devinit/nv04.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/devinit/nv04.c @@ -27,12 +27,7 @@ #include #include "fbmem.h" -#include "priv.h" - -struct nv04_devinit_priv { - struct nouveau_devinit base; - int owner; -}; +#include "nv04.h" static void nv04_devinit_meminit(struct nouveau_devinit *devinit) @@ -438,7 +433,7 @@ nouveau_devinit_destroy(&priv->base); } -static int +int nv04_devinit_ctor(struct nouveau_object *parent, struct nouveau_object *engine, struct nouveau_oclass *oclass, void *data, u32 size, struct nouveau_object **pobject) @@ -451,19 +446,19 @@ if (ret) return ret; - priv->base.meminit = nv04_devinit_meminit; - priv->base.pll_set = nv04_devinit_pll_set; priv->owner = -1; return 0; } -struct nouveau_oclass -nv04_devinit_oclass = { - .handle = NV_SUBDEV(DEVINIT, 0x04), - .ofuncs = &(struct nouveau_ofuncs) { +struct nouveau_oclass * +nv04_devinit_oclass = &(struct nouveau_devinit_impl) { + .base.handle = NV_SUBDEV(DEVINIT, 0x04), + .base.ofuncs = &(struct nouveau_ofuncs) { .ctor = nv04_devinit_ctor, .dtor = nv04_devinit_dtor, .init = nv04_devinit_init, .fini = nv04_devinit_fini, }, -}; + .meminit = nv04_devinit_meminit, + .pll_set = nv04_devinit_pll_set, +}.base; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/devinit/nv04.h +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/devinit/nv04.h @@ -0,0 +1,23 @@ +#ifndef __NVKM_DEVINIT_NV04_H__ +#define __NVKM_DEVINIT_NV04_H__ + +#include "priv.h" + +struct nv04_devinit_priv { + struct nouveau_devinit base; + u8 owner; +}; + +int nv04_devinit_ctor(struct nouveau_object *, struct nouveau_object *, + struct nouveau_oclass *, void *, u32, + struct nouveau_object **); +void nv04_devinit_dtor(struct nouveau_object *); +int nv04_devinit_init(struct nouveau_object *); +int nv04_devinit_fini(struct nouveau_object *, bool); +int nv04_devinit_pll_set(struct nouveau_devinit *, u32, u32); + +void setPLL_single(struct nouveau_devinit *, u32, struct nouveau_pll_vals *); +void setPLL_double_highregs(struct nouveau_devinit *, u32, struct nouveau_pll_vals *); +void setPLL_double_lowregs(struct nouveau_devinit *, u32, struct nouveau_pll_vals *); + +#endif --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/devinit/nv05.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/devinit/nv05.c @@ -29,12 +29,7 @@ #include #include "fbmem.h" -#include "priv.h" - -struct nv05_devinit_priv { - struct nouveau_devinit base; - u8 owner; -}; +#include "nv04.h" static void nv05_devinit_meminit(struct nouveau_devinit *devinit) @@ -49,7 +44,7 @@ { 0x06, 0x00 }, { 0x00, 0x00 } }; - struct nv05_devinit_priv *priv = (void *)devinit; + struct nv04_devinit_priv *priv = (void *)devinit; struct nouveau_bios *bios = nouveau_bios(priv); struct io_mapping *fb; u32 patt = 0xdeadbeef; @@ -130,31 +125,15 @@ fbmem_fini(fb); } -static int -nv05_devinit_ctor(struct nouveau_object *parent, struct nouveau_object *engine, - struct nouveau_oclass *oclass, void *data, u32 size, - struct nouveau_object **pobject) -{ - struct nv05_devinit_priv *priv; - int ret; - - ret = nouveau_devinit_create(parent, engine, oclass, &priv); - *pobject = nv_object(priv); - if (ret) - return ret; - - priv->base.meminit = nv05_devinit_meminit; - priv->base.pll_set = nv04_devinit_pll_set; - return 0; -} - -struct nouveau_oclass -nv05_devinit_oclass = { - .handle = NV_SUBDEV(DEVINIT, 0x05), - .ofuncs = &(struct nouveau_ofuncs) { - .ctor = nv05_devinit_ctor, +struct nouveau_oclass * +nv05_devinit_oclass = &(struct nouveau_devinit_impl) { + .base.handle = NV_SUBDEV(DEVINIT, 0x05), + .base.ofuncs = &(struct nouveau_ofuncs) { + .ctor = nv04_devinit_ctor, .dtor = nv04_devinit_dtor, .init = nv04_devinit_init, .fini = nv04_devinit_fini, }, -}; + .meminit = nv05_devinit_meminit, + .pll_set = nv04_devinit_pll_set, +}.base; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/devinit/nv10.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/devinit/nv10.c @@ -27,17 +27,12 @@ #include #include "fbmem.h" -#include "priv.h" - -struct nv10_devinit_priv { - struct nouveau_devinit base; - u8 owner; -}; +#include "nv04.h" static void nv10_devinit_meminit(struct nouveau_devinit *devinit) { - struct nv10_devinit_priv *priv = (void *)devinit; + struct nv04_devinit_priv *priv = (void *)devinit; static const int mem_width[] = { 0x10, 0x00, 0x20 }; int mem_width_count; uint32_t patt = 0xdeadbeef; @@ -101,31 +96,15 @@ fbmem_fini(fb); } -static int -nv10_devinit_ctor(struct nouveau_object *parent, struct nouveau_object *engine, - struct nouveau_oclass *oclass, void *data, u32 size, - struct nouveau_object **pobject) -{ - struct nv10_devinit_priv *priv; - int ret; - - ret = nouveau_devinit_create(parent, engine, oclass, &priv); - *pobject = nv_object(priv); - if (ret) - return ret; - - priv->base.meminit = nv10_devinit_meminit; - priv->base.pll_set = nv04_devinit_pll_set; - return 0; -} - -struct nouveau_oclass -nv10_devinit_oclass = { - .handle = NV_SUBDEV(DEVINIT, 0x10), - .ofuncs = &(struct nouveau_ofuncs) { - .ctor = nv10_devinit_ctor, +struct nouveau_oclass * +nv10_devinit_oclass = &(struct nouveau_devinit_impl) { + .base.handle = NV_SUBDEV(DEVINIT, 0x10), + .base.ofuncs = &(struct nouveau_ofuncs) { + .ctor = nv04_devinit_ctor, .dtor = nv04_devinit_dtor, .init = nv04_devinit_init, .fini = nv04_devinit_fini, }, -}; + .meminit = nv10_devinit_meminit, + .pll_set = nv04_devinit_pll_set, +}.base; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/devinit/nv1a.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/devinit/nv1a.c @@ -22,37 +22,16 @@ * Authors: Ben Skeggs */ -#include "priv.h" +#include "nv04.h" -struct nv1a_devinit_priv { - struct nouveau_devinit base; - u8 owner; -}; - -static int -nv1a_devinit_ctor(struct nouveau_object *parent, struct nouveau_object *engine, - struct nouveau_oclass *oclass, void *data, u32 size, - struct nouveau_object **pobject) -{ - struct nv1a_devinit_priv *priv; - int ret; - - ret = nouveau_devinit_create(parent, engine, oclass, &priv); - *pobject = nv_object(priv); - if (ret) - return ret; - - priv->base.pll_set = nv04_devinit_pll_set; - return 0; -} - -struct nouveau_oclass -nv1a_devinit_oclass = { - .handle = NV_SUBDEV(DEVINIT, 0x1a), - .ofuncs = &(struct nouveau_ofuncs) { - .ctor = nv1a_devinit_ctor, +struct nouveau_oclass * +nv1a_devinit_oclass = &(struct nouveau_devinit_impl) { + .base.handle = NV_SUBDEV(DEVINIT, 0x1a), + .base.ofuncs = &(struct nouveau_ofuncs) { + .ctor = nv04_devinit_ctor, .dtor = nv04_devinit_dtor, .init = nv04_devinit_init, .fini = nv04_devinit_fini, }, -}; + .pll_set = nv04_devinit_pll_set, +}.base; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/devinit/nv20.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/devinit/nv20.c @@ -24,18 +24,13 @@ * */ -#include "priv.h" +#include "nv04.h" #include "fbmem.h" -struct nv20_devinit_priv { - struct nouveau_devinit base; - u8 owner; -}; - static void nv20_devinit_meminit(struct nouveau_devinit *devinit) { - struct nv20_devinit_priv *priv = (void *)devinit; + struct nv04_devinit_priv *priv = (void *)devinit; struct nouveau_device *device = nv_device(priv); uint32_t mask = (device->chipset >= 0x25 ? 0x300 : 0x900); uint32_t amount, off; @@ -65,31 +60,15 @@ fbmem_fini(fb); } -static int -nv20_devinit_ctor(struct nouveau_object *parent, struct nouveau_object *engine, - struct nouveau_oclass *oclass, void *data, u32 size, - struct nouveau_object **pobject) -{ - struct nv20_devinit_priv *priv; - int ret; - - ret = nouveau_devinit_create(parent, engine, oclass, &priv); - *pobject = nv_object(priv); - if (ret) - return ret; - - priv->base.meminit = nv20_devinit_meminit; - priv->base.pll_set = nv04_devinit_pll_set; - return 0; -} - -struct nouveau_oclass -nv20_devinit_oclass = { - .handle = NV_SUBDEV(DEVINIT, 0x20), - .ofuncs = &(struct nouveau_ofuncs) { - .ctor = nv20_devinit_ctor, +struct nouveau_oclass * +nv20_devinit_oclass = &(struct nouveau_devinit_impl) { + .base.handle = NV_SUBDEV(DEVINIT, 0x20), + .base.ofuncs = &(struct nouveau_ofuncs) { + .ctor = nv04_devinit_ctor, .dtor = nv04_devinit_dtor, .init = nv04_devinit_init, .fini = nv04_devinit_fini, }, -}; + .meminit = nv20_devinit_meminit, + .pll_set = nv04_devinit_pll_set, +}.base; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/devinit/nv50.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/devinit/nv50.c @@ -28,9 +28,9 @@ #include #include -#include "priv.h" +#include "nv50.h" -static int +int nv50_devinit_pll_set(struct nouveau_devinit *devinit, u32 type, u32 freq) { struct nv50_devinit_priv *priv = (void *)devinit; @@ -74,6 +74,19 @@ return 0; } +static u64 +nv50_devinit_disable(struct nouveau_devinit *devinit) +{ + struct nv50_devinit_priv *priv = (void *)devinit; + u32 r001540 = nv_rd32(priv, 0x001540); + u64 disable = 0ULL; + + if (!(r001540 & 0x40000000)) + disable |= (1ULL << NVDEV_ENGINE_MPEG); + + return disable; +} + int nv50_devinit_init(struct nouveau_object *object) { @@ -120,7 +133,7 @@ return 0; } -static int +int nv50_devinit_ctor(struct nouveau_object *parent, struct nouveau_object *engine, struct nouveau_oclass *oclass, void *data, u32 size, struct nouveau_object **pobject) @@ -133,17 +146,18 @@ if (ret) return ret; - priv->base.pll_set = nv50_devinit_pll_set; return 0; } -struct nouveau_oclass -nv50_devinit_oclass = { - .handle = NV_SUBDEV(DEVINIT, 0x50), - .ofuncs = &(struct nouveau_ofuncs) { +struct nouveau_oclass * +nv50_devinit_oclass = &(struct nouveau_devinit_impl) { + .base.handle = NV_SUBDEV(DEVINIT, 0x50), + .base.ofuncs = &(struct nouveau_ofuncs) { .ctor = nv50_devinit_ctor, .dtor = _nouveau_devinit_dtor, .init = nv50_devinit_init, .fini = _nouveau_devinit_fini, }, -}; + .pll_set = nv50_devinit_pll_set, + .disable = nv50_devinit_disable, +}.base; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/devinit/nv50.h +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/devinit/nv50.h @@ -0,0 +1,18 @@ +#ifndef __NVKM_DEVINIT_NV50_H__ +#define __NVKM_DEVINIT_NV50_H__ + +#include "priv.h" + +struct nv50_devinit_priv { + struct nouveau_devinit base; +}; + +int nv50_devinit_ctor(struct nouveau_object *, struct nouveau_object *, + struct nouveau_oclass *, void *, u32, + struct nouveau_object **); +int nv50_devinit_init(struct nouveau_object *); +int nv50_devinit_pll_set(struct nouveau_devinit *, u32, u32); + +int nva3_devinit_pll_set(struct nouveau_devinit *, u32, u32); + +#endif --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/devinit/nv84.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/devinit/nv84.c @@ -0,0 +1,63 @@ +/* + * Copyright 2013 Red Hat Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Authors: Ben Skeggs + */ + +#include "nv50.h" + +static u64 +nv84_devinit_disable(struct nouveau_devinit *devinit) +{ + struct nv50_devinit_priv *priv = (void *)devinit; + u32 r001540 = nv_rd32(priv, 0x001540); + u32 r00154c = nv_rd32(priv, 0x00154c); + u64 disable = 0ULL; + + if (!(r001540 & 0x40000000)) { + disable |= (1ULL << NVDEV_ENGINE_MPEG); + disable |= (1ULL << NVDEV_ENGINE_VP); + disable |= (1ULL << NVDEV_ENGINE_BSP); + disable |= (1ULL << NVDEV_ENGINE_CRYPT); + } + + if (!(r00154c & 0x00000004)) + disable |= (1ULL << NVDEV_ENGINE_DISP); + if (!(r00154c & 0x00000020)) + disable |= (1ULL << NVDEV_ENGINE_BSP); + if (!(r00154c & 0x00000040)) + disable |= (1ULL << NVDEV_ENGINE_CRYPT); + + return disable; +} + +struct nouveau_oclass * +nv84_devinit_oclass = &(struct nouveau_devinit_impl) { + .base.handle = NV_SUBDEV(DEVINIT, 0x84), + .base.ofuncs = &(struct nouveau_ofuncs) { + .ctor = nv50_devinit_ctor, + .dtor = _nouveau_devinit_dtor, + .init = nv50_devinit_init, + .fini = _nouveau_devinit_fini, + }, + .pll_set = nv50_devinit_pll_set, + .disable = nv84_devinit_disable, +}.base; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/devinit/nv98.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/devinit/nv98.c @@ -0,0 +1,62 @@ +/* + * Copyright 2013 Red Hat Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Authors: Ben Skeggs + */ + +#include "nv50.h" + +static u64 +nv98_devinit_disable(struct nouveau_devinit *devinit) +{ + struct nv50_devinit_priv *priv = (void *)devinit; + u32 r001540 = nv_rd32(priv, 0x001540); + u32 r00154c = nv_rd32(priv, 0x00154c); + u64 disable = 0ULL; + + if (!(r001540 & 0x40000000)) { + disable |= (1ULL << NVDEV_ENGINE_VP); + disable |= (1ULL << NVDEV_ENGINE_BSP); + disable |= (1ULL << NVDEV_ENGINE_PPP); + } + + if (!(r00154c & 0x00000004)) + disable |= (1ULL << NVDEV_ENGINE_DISP); + if (!(r00154c & 0x00000020)) + disable |= (1ULL << NVDEV_ENGINE_BSP); + if (!(r00154c & 0x00000040)) + disable |= (1ULL << NVDEV_ENGINE_CRYPT); + + return disable; +} + +struct nouveau_oclass * +nv98_devinit_oclass = &(struct nouveau_devinit_impl) { + .base.handle = NV_SUBDEV(DEVINIT, 0x98), + .base.ofuncs = &(struct nouveau_ofuncs) { + .ctor = nv50_devinit_ctor, + .dtor = _nouveau_devinit_dtor, + .init = nv50_devinit_init, + .fini = _nouveau_devinit_fini, + }, + .pll_set = nv50_devinit_pll_set, + .disable = nv98_devinit_disable, +}.base; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/devinit/nva3.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/devinit/nva3.c @@ -22,12 +22,12 @@ * Authors: Ben Skeggs */ -#include "priv.h" +#include "nv50.h" -static int +int nva3_devinit_pll_set(struct nouveau_devinit *devinit, u32 type, u32 freq) { - struct nva3_devinit_priv *priv = (void *)devinit; + struct nv50_devinit_priv *priv = (void *)devinit; struct nouveau_bios *bios = nouveau_bios(priv); struct nvbios_pll info; int N, fN, M, P; @@ -58,30 +58,38 @@ return ret; } -static int -nva3_devinit_ctor(struct nouveau_object *parent, struct nouveau_object *engine, - struct nouveau_oclass *oclass, void *data, u32 size, - struct nouveau_object **pobject) +static u64 +nva3_devinit_disable(struct nouveau_devinit *devinit) { - struct nv50_devinit_priv *priv; - int ret; + struct nv50_devinit_priv *priv = (void *)devinit; + u32 r001540 = nv_rd32(priv, 0x001540); + u32 r00154c = nv_rd32(priv, 0x00154c); + u64 disable = 0ULL; + + if (!(r001540 & 0x40000000)) { + disable |= (1ULL << NVDEV_ENGINE_VP); + disable |= (1ULL << NVDEV_ENGINE_PPP); + } - ret = nouveau_devinit_create(parent, engine, oclass, &priv); - *pobject = nv_object(priv); - if (ret) - return ret; + if (!(r00154c & 0x00000004)) + disable |= (1ULL << NVDEV_ENGINE_DISP); + if (!(r00154c & 0x00000020)) + disable |= (1ULL << NVDEV_ENGINE_BSP); + if (!(r00154c & 0x00000200)) + disable |= (1ULL << NVDEV_ENGINE_COPY0); - priv->base.pll_set = nva3_devinit_pll_set; - return 0; + return disable; } -struct nouveau_oclass -nva3_devinit_oclass = { - .handle = NV_SUBDEV(DEVINIT, 0xa3), - .ofuncs = &(struct nouveau_ofuncs) { - .ctor = nva3_devinit_ctor, +struct nouveau_oclass * +nva3_devinit_oclass = &(struct nouveau_devinit_impl) { + .base.handle = NV_SUBDEV(DEVINIT, 0xa3), + .base.ofuncs = &(struct nouveau_ofuncs) { + .ctor = nv50_devinit_ctor, .dtor = _nouveau_devinit_dtor, .init = nv50_devinit_init, .fini = _nouveau_devinit_fini, }, -}; + .pll_set = nva3_devinit_pll_set, + .disable = nva3_devinit_disable, +}.base; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/devinit/nvaf.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/devinit/nvaf.c @@ -0,0 +1,63 @@ +/* + * Copyright 2013 Red Hat Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Authors: Ben Skeggs + */ + +#include "nv50.h" + +static u64 +nvaf_devinit_disable(struct nouveau_devinit *devinit) +{ + struct nv50_devinit_priv *priv = (void *)devinit; + u32 r001540 = nv_rd32(priv, 0x001540); + u32 r00154c = nv_rd32(priv, 0x00154c); + u64 disable = 0; + + if (!(r001540 & 0x40000000)) { + disable |= (1ULL << NVDEV_ENGINE_VP); + disable |= (1ULL << NVDEV_ENGINE_PPP); + } + + if (!(r00154c & 0x00000004)) + disable |= (1ULL << NVDEV_ENGINE_DISP); + if (!(r00154c & 0x00000020)) + disable |= (1ULL << NVDEV_ENGINE_BSP); + if (!(r00154c & 0x00000040)) + disable |= (1ULL << NVDEV_ENGINE_VIC); + if (!(r00154c & 0x00000200)) + disable |= (1ULL << NVDEV_ENGINE_COPY0); + + return disable; +} + +struct nouveau_oclass * +nvaf_devinit_oclass = &(struct nouveau_devinit_impl) { + .base.handle = NV_SUBDEV(DEVINIT, 0xaf), + .base.ofuncs = &(struct nouveau_ofuncs) { + .ctor = nv50_devinit_ctor, + .dtor = _nouveau_devinit_dtor, + .init = nv50_devinit_init, + .fini = _nouveau_devinit_fini, + }, + .pll_set = nva3_devinit_pll_set, + .disable = nvaf_devinit_disable, +}.base; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/devinit/nvc0.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/devinit/nvc0.c @@ -22,12 +22,12 @@ * Authors: Ben Skeggs */ -#include "priv.h" +#include "nv50.h" static int nvc0_devinit_pll_set(struct nouveau_devinit *devinit, u32 type, u32 freq) { - struct nvc0_devinit_priv *priv = (void *)devinit; + struct nv50_devinit_priv *priv = (void *)devinit; struct nouveau_bios *bios = nouveau_bios(priv); struct nvbios_pll info; int N, fN, M, P; @@ -59,6 +59,33 @@ return ret; } +static u64 +nvc0_devinit_disable(struct nouveau_devinit *devinit) +{ + struct nv50_devinit_priv *priv = (void *)devinit; + u32 r022500 = nv_rd32(priv, 0x022500); + u64 disable = 0ULL; + + if (r022500 & 0x00000001) + disable |= (1ULL << NVDEV_ENGINE_DISP); + + if (r022500 & 0x00000002) { + disable |= (1ULL << NVDEV_ENGINE_VP); + disable |= (1ULL << NVDEV_ENGINE_PPP); + } + + if (r022500 & 0x00000004) + disable |= (1ULL << NVDEV_ENGINE_BSP); + if (r022500 & 0x00000008) + disable |= (1ULL << NVDEV_ENGINE_VENC); + if (r022500 & 0x00000100) + disable |= (1ULL << NVDEV_ENGINE_COPY0); + if (r022500 & 0x00000200) + disable |= (1ULL << NVDEV_ENGINE_COPY1); + + return disable; +} + static int nvc0_devinit_ctor(struct nouveau_object *parent, struct nouveau_object *engine, struct nouveau_oclass *oclass, void *data, u32 size, @@ -72,19 +99,20 @@ if (ret) return ret; - priv->base.pll_set = nvc0_devinit_pll_set; if (nv_rd32(priv, 0x022500) & 0x00000001) priv->base.post = true; return 0; } -struct nouveau_oclass -nvc0_devinit_oclass = { - .handle = NV_SUBDEV(DEVINIT, 0xc0), - .ofuncs = &(struct nouveau_ofuncs) { +struct nouveau_oclass * +nvc0_devinit_oclass = &(struct nouveau_devinit_impl) { + .base.handle = NV_SUBDEV(DEVINIT, 0xc0), + .base.ofuncs = &(struct nouveau_ofuncs) { .ctor = nvc0_devinit_ctor, .dtor = _nouveau_devinit_dtor, .init = nv50_devinit_init, .fini = _nouveau_devinit_fini, }, -}; + .pll_set = nvc0_devinit_pll_set, + .disable = nvc0_devinit_disable, +}.base; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/devinit/priv.h +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/devinit/priv.h @@ -6,20 +6,30 @@ #include #include -void nv04_devinit_dtor(struct nouveau_object *); -int nv04_devinit_init(struct nouveau_object *); -int nv04_devinit_fini(struct nouveau_object *, bool); -int nv04_devinit_pll_set(struct nouveau_devinit *, u32, u32); - -void setPLL_single(struct nouveau_devinit *, u32, struct nouveau_pll_vals *); -void setPLL_double_highregs(struct nouveau_devinit *, u32, struct nouveau_pll_vals *); -void setPLL_double_lowregs(struct nouveau_devinit *, u32, struct nouveau_pll_vals *); - - -struct nv50_devinit_priv { - struct nouveau_devinit base; +struct nouveau_devinit_impl { + struct nouveau_oclass base; + void (*meminit)(struct nouveau_devinit *); + int (*pll_set)(struct nouveau_devinit *, u32 type, u32 freq); + u64 (*disable)(struct nouveau_devinit *); }; -int nv50_devinit_init(struct nouveau_object *); +#define nouveau_devinit_create(p,e,o,d) \ + nouveau_devinit_create_((p), (e), (o), sizeof(**d), (void **)d) +#define nouveau_devinit_destroy(p) \ + nouveau_subdev_destroy(&(p)->base) +#define nouveau_devinit_init(p) ({ \ + struct nouveau_devinit *d = (p); \ + _nouveau_devinit_init(nv_object(d)); \ +}) +#define nouveau_devinit_fini(p,s) ({ \ + struct nouveau_devinit *d = (p); \ + _nouveau_devinit_fini(nv_object(d), (s)); \ +}) + +int nouveau_devinit_create_(struct nouveau_object *, struct nouveau_object *, + struct nouveau_oclass *, int, void **); +#define _nouveau_devinit_dtor _nouveau_subdev_dtor +int _nouveau_devinit_init(struct nouveau_object *); +int _nouveau_devinit_fini(struct nouveau_object *, bool suspend); #endif --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/fb/nv1a.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/fb/nv1a.c @@ -36,7 +36,7 @@ .fini = _nouveau_fb_fini, }, .base.memtype = nv04_fb_memtype_valid, - .base.ram = &nv10_ram_oclass, + .base.ram = &nv1a_ram_oclass, .tile.regions = 8, .tile.init = nv10_fb_tile_init, .tile.fini = nv10_fb_tile_fini, --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/fb/nvc0.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/fb/nvc0.c @@ -45,6 +45,7 @@ if (priv->r100c10_page) nv_wr32(priv, 0x100c10, priv->r100c10 >> 8); + nv_mask(priv, 0x100c80, 0x00000001, 0x00000000); /* 128KiB lpg */ return 0; } --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/mc/nv50.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/mc/nv50.c @@ -26,6 +26,7 @@ const struct nouveau_mc_intr nv50_mc_intr[] = { + { 0x04000000, NVDEV_ENGINE_DISP }, /* DISP before FIFO, so pageflip-timestamping works! */ { 0x00000001, NVDEV_ENGINE_MPEG }, { 0x00000100, NVDEV_ENGINE_FIFO }, { 0x00001000, NVDEV_ENGINE_GR }, @@ -34,7 +35,6 @@ { 0x00020000, NVDEV_ENGINE_VP }, /* NV84- */ { 0x00100000, NVDEV_SUBDEV_TIMER }, { 0x00200000, NVDEV_SUBDEV_GPIO }, - { 0x04000000, NVDEV_ENGINE_DISP }, { 0x10000000, NVDEV_SUBDEV_BUS }, { 0x80000000, NVDEV_ENGINE_SW }, { 0x0002d101, NVDEV_SUBDEV_FB }, --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/mc/nv98.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/mc/nv98.c @@ -26,6 +26,7 @@ static const struct nouveau_mc_intr nv98_mc_intr[] = { + { 0x04000000, NVDEV_ENGINE_DISP }, /* DISP first, so pageflip timestamps work */ { 0x00000001, NVDEV_ENGINE_PPP }, { 0x00000100, NVDEV_ENGINE_FIFO }, { 0x00001000, NVDEV_ENGINE_GR }, @@ -37,7 +38,6 @@ { 0x00100000, NVDEV_SUBDEV_TIMER }, { 0x00200000, NVDEV_SUBDEV_GPIO }, { 0x00400000, NVDEV_ENGINE_COPY0 }, /* NVA3- */ - { 0x04000000, NVDEV_ENGINE_DISP }, { 0x10000000, NVDEV_SUBDEV_BUS }, { 0x80000000, NVDEV_ENGINE_SW }, { 0x0042d101, NVDEV_SUBDEV_FB }, --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/core/subdev/mc/nvc0.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/core/subdev/mc/nvc0.c @@ -26,6 +26,7 @@ const struct nouveau_mc_intr nvc0_mc_intr[] = { + { 0x04000000, NVDEV_ENGINE_DISP }, /* DISP first, so pageflip timestamps work. */ { 0x00000001, NVDEV_ENGINE_PPP }, { 0x00000020, NVDEV_ENGINE_COPY0 }, { 0x00000040, NVDEV_ENGINE_COPY1 }, @@ -39,7 +40,6 @@ { 0x00200000, NVDEV_SUBDEV_GPIO }, { 0x01000000, NVDEV_SUBDEV_PWR }, { 0x02000000, NVDEV_SUBDEV_LTCG }, - { 0x04000000, NVDEV_ENGINE_DISP }, { 0x10000000, NVDEV_SUBDEV_BUS }, { 0x40000000, NVDEV_SUBDEV_IBUS }, { 0x80000000, NVDEV_ENGINE_SW }, --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/nouveau_acpi.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/nouveau_acpi.c @@ -423,9 +423,6 @@ acpi_status status; acpi_handle dhandle, rom_handle; - if (!nouveau_dsm_priv.dsm_detected && !nouveau_dsm_priv.optimus_detected) - return false; - dhandle = ACPI_HANDLE(&pdev->dev); if (!dhandle) return false; --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/nouveau_bios.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/nouveau_bios.c @@ -352,7 +352,7 @@ /* Apple cards don't have the fp table; the laptops use DDC */ /* The table is also missing on some x86 IGPs */ #ifndef __powerpc__ - NV_ERROR(drm, "Pointer to flat panel table invalid\n"); + NV_WARN(drm, "Pointer to flat panel table invalid\n"); #endif bios->digital_min_front_porch = 0x4b; return 0; @@ -936,7 +936,7 @@ tmdstableptr = ROM16(bios->data[bitentry->offset]); if (!tmdstableptr) { - NV_ERROR(drm, "Pointer to TMDS table invalid\n"); + NV_WARN(drm, "Pointer to TMDS table invalid\n"); return -EINVAL; } --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/nouveau_bo.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -798,25 +798,25 @@ struct ttm_mem_reg *old_mem, struct ttm_mem_reg *new_mem) { struct nouveau_mem *node = old_mem->mm_node; - struct nouveau_bo *nvbo = nouveau_bo(bo); u64 length = (new_mem->num_pages << PAGE_SHIFT); u64 src_offset = node->vma[0].offset; u64 dst_offset = node->vma[1].offset; + int src_tiled = !!node->memtype; + int dst_tiled = !!((struct nouveau_mem *)new_mem->mm_node)->memtype; int ret; while (length) { u32 amount, stride, height; + ret = RING_SPACE(chan, 18 + 6 * (src_tiled + dst_tiled)); + if (ret) + return ret; + amount = min(length, (u64)(4 * 1024 * 1024)); stride = 16 * 4; height = amount / stride; - if (old_mem->mem_type == TTM_PL_VRAM && - nouveau_bo_tile_layout(nvbo)) { - ret = RING_SPACE(chan, 8); - if (ret) - return ret; - + if (src_tiled) { BEGIN_NV04(chan, NvSubCopy, 0x0200, 7); OUT_RING (chan, 0); OUT_RING (chan, 0); @@ -826,19 +826,10 @@ OUT_RING (chan, 0); OUT_RING (chan, 0); } else { - ret = RING_SPACE(chan, 2); - if (ret) - return ret; - BEGIN_NV04(chan, NvSubCopy, 0x0200, 1); OUT_RING (chan, 1); } - if (new_mem->mem_type == TTM_PL_VRAM && - nouveau_bo_tile_layout(nvbo)) { - ret = RING_SPACE(chan, 8); - if (ret) - return ret; - + if (dst_tiled) { BEGIN_NV04(chan, NvSubCopy, 0x021c, 7); OUT_RING (chan, 0); OUT_RING (chan, 0); @@ -848,18 +839,10 @@ OUT_RING (chan, 0); OUT_RING (chan, 0); } else { - ret = RING_SPACE(chan, 2); - if (ret) - return ret; - BEGIN_NV04(chan, NvSubCopy, 0x021c, 1); OUT_RING (chan, 1); } - ret = RING_SPACE(chan, 14); - if (ret) - return ret; - BEGIN_NV04(chan, NvSubCopy, 0x0238, 2); OUT_RING (chan, upper_32_bits(src_offset)); OUT_RING (chan, upper_32_bits(dst_offset)); --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/nouveau_display.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/nouveau_display.c @@ -603,6 +603,14 @@ if (!s) return -ENOMEM; + if (new_bo != old_bo) { + ret = nouveau_bo_pin(new_bo, TTM_PL_FLAG_VRAM); + if (ret) + goto fail_free; + } + + mutex_lock(&chan->cli->mutex); + /* synchronise rendering channel with the kernel's channel */ spin_lock(&new_bo->bo.bdev->fence_lock); fence = nouveau_fence_ref(new_bo->bo.sync_obj); @@ -610,15 +618,8 @@ ret = nouveau_fence_sync(fence, chan); nouveau_fence_unref(&fence); if (ret) - goto fail_free; - - if (new_bo != old_bo) { - ret = nouveau_bo_pin(new_bo, TTM_PL_FLAG_VRAM); - if (ret) - goto fail_free; - } + goto fail_unpin; - mutex_lock(&chan->cli->mutex); ret = ttm_bo_reserve(&old_bo->bo, true, false, false, NULL); if (ret) goto fail_unpin; @@ -629,6 +630,9 @@ fb->bits_per_pixel, fb->pitches[0], crtc->x, crtc->y, new_bo->bo.offset }; + /* Keep vblanks on during flip, for the target crtc of this flip */ + drm_vblank_get(dev, nouveau_crtc(crtc)->index); + /* Emit a page flip */ if (nv_device(drm->device)->card_type >= NV_50) { ret = nv50_display_flip_next(crtc, fb, chan, swap_interval); @@ -657,9 +661,9 @@ } ret = nouveau_page_flip_emit(chan, old_bo, new_bo, s, &fence); - mutex_unlock(&chan->cli->mutex); if (ret) goto fail_unreserve; + mutex_unlock(&chan->cli->mutex); /* Update the crtc struct and cleanup */ crtc->fb = fb; @@ -672,6 +676,7 @@ return 0; fail_unreserve: + drm_vblank_put(dev, nouveau_crtc(crtc)->index); ttm_bo_unreserve(&old_bo->bo); fail_unpin: mutex_unlock(&chan->cli->mutex); @@ -691,6 +696,7 @@ struct drm_device *dev = drm->dev; struct nouveau_page_flip_state *s; unsigned long flags; + int crtcid = -1; spin_lock_irqsave(&dev->event_lock, flags); @@ -701,8 +707,16 @@ } s = list_first_entry(&fctx->flip, struct nouveau_page_flip_state, head); - if (s->event) - drm_send_vblank_event(dev, s->crtc, s->event); + if (s->event) { + /* Vblank timestamps/counts are only correct on >= NV-50 */ + if (nv_device(drm->device)->card_type >= NV_50) + crtcid = s->crtc; + + drm_send_vblank_event(dev, crtcid, s->event); + } + + /* Give up ownership of vblank for page-flipped crtc */ + drm_vblank_put(dev, s->crtc); list_del(&s->head); if (ps) --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/nouveau_drm.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/nouveau_drm.c @@ -376,6 +376,8 @@ if (ret) goto fail_device; + dev->irq_enabled = true; + /* workaround an odd issue on nvc1 by disabling the device's * nosnoop capability. hopefully won't cause issues until a * better fix is found - assuming there is one... @@ -475,6 +477,7 @@ struct nouveau_drm *drm = nouveau_drm(dev); struct nouveau_object *device; + dev->irq_enabled = false; device = drm->client.base.device; drm_put_dev(dev); @@ -483,13 +486,13 @@ } static int -nouveau_do_suspend(struct drm_device *dev) +nouveau_do_suspend(struct drm_device *dev, bool runtime) { struct nouveau_drm *drm = nouveau_drm(dev); struct nouveau_cli *cli; int ret; - if (dev->mode_config.num_crtc) { + if (dev->mode_config.num_crtc && !runtime) { NV_INFO(drm, "suspending display...\n"); ret = nouveau_display_suspend(dev); if (ret) @@ -557,7 +560,7 @@ if (drm_dev->mode_config.num_crtc) nouveau_fbcon_set_suspend(drm_dev, 1); - ret = nouveau_do_suspend(drm_dev); + ret = nouveau_do_suspend(drm_dev, false); if (ret) return ret; @@ -637,7 +640,7 @@ if (drm_dev->mode_config.num_crtc) nouveau_fbcon_set_suspend(drm_dev, 1); - ret = nouveau_do_suspend(drm_dev); + ret = nouveau_do_suspend(drm_dev, false); return ret; } @@ -855,20 +858,23 @@ struct drm_device *drm_dev = pci_get_drvdata(pdev); int ret; - if (nouveau_runtime_pm == 0) - return -EINVAL; + if (nouveau_runtime_pm == 0) { + pm_runtime_forbid(dev); + return -EBUSY; + } /* are we optimus enabled? */ if (nouveau_runtime_pm == -1 && !nouveau_is_optimus() && !nouveau_is_v1_dsm()) { DRM_DEBUG_DRIVER("failing to power off - not optimus\n"); - return -EINVAL; + pm_runtime_forbid(dev); + return -EBUSY; } nv_debug_level(SILENT); drm_kms_helper_poll_disable(drm_dev); vga_switcheroo_set_dynamic_switch(pdev, VGA_SWITCHEROO_OFF); nouveau_switcheroo_optimus_dsm(); - ret = nouveau_do_suspend(drm_dev); + ret = nouveau_do_suspend(drm_dev, true); pci_save_state(pdev); pci_disable_device(pdev); pci_set_power_state(pdev, PCI_D3cold); @@ -894,8 +900,6 @@ pci_set_master(pdev); ret = nouveau_do_resume(drm_dev); - if (drm_dev->mode_config.num_crtc) - nouveau_display_resume(drm_dev); drm_kms_helper_poll_enable(drm_dev); /* do magic */ nv_mask(device, 0x88488, (1 << 25), (1 << 25)); @@ -912,12 +916,15 @@ struct nouveau_drm *drm = nouveau_drm(drm_dev); struct drm_crtc *crtc; - if (nouveau_runtime_pm == 0) + if (nouveau_runtime_pm == 0) { + pm_runtime_forbid(dev); return -EBUSY; + } /* are we optimus enabled? */ if (nouveau_runtime_pm == -1 && !nouveau_is_optimus() && !nouveau_is_v1_dsm()) { DRM_DEBUG_DRIVER("failing to power off - not optimus\n"); + pm_runtime_forbid(dev); return -EBUSY; } --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/nouveau_drm.h +++ linux-3.13.0/drivers/gpu/drm/nouveau/nouveau_drm.h @@ -10,7 +10,7 @@ #define DRIVER_MAJOR 1 #define DRIVER_MINOR 1 -#define DRIVER_PATCHLEVEL 1 +#define DRIVER_PATCHLEVEL 2 /* * 1.1.1: @@ -21,6 +21,8 @@ * to control registers on the MPs to enable performance counters, * and to control the warp error enable mask (OpenGL requires out of * bounds access to local memory to be silently ignored / return 0). + * 1.1.2: + * - fixes multiple bugs in flip completion events and timestamping */ #include --- linux-3.13.0.orig/drivers/gpu/drm/nouveau/nouveau_vga.c +++ linux-3.13.0/drivers/gpu/drm/nouveau/nouveau_vga.c @@ -98,7 +98,16 @@ nouveau_vga_fini(struct nouveau_drm *drm) { struct drm_device *dev = drm->dev; + bool runtime = false; + + if (nouveau_runtime_pm == 1) + runtime = true; + if ((nouveau_runtime_pm == -1) && (nouveau_is_optimus() || nouveau_is_v1_dsm())) + runtime = true; + vga_switcheroo_unregister_client(dev->pdev); + if (runtime && nouveau_is_v1_dsm() && !nouveau_is_optimus()) + vga_switcheroo_fini_domain_pm_ops(drm->dev->dev); vga_client_register(dev->pdev, NULL, NULL, NULL); } --- linux-3.13.0.orig/drivers/gpu/drm/qxl/qxl_display.c +++ linux-3.13.0/drivers/gpu/drm/qxl/qxl_display.c @@ -516,7 +516,6 @@ struct qxl_framebuffer *qfb; struct qxl_bo *bo, *old_bo = NULL; struct qxl_crtc *qcrtc = to_qxl_crtc(crtc); - uint32_t width, height, base_offset; bool recreate_primary = false; int ret; int surf_id; @@ -546,9 +545,10 @@ if (qcrtc->index == 0) recreate_primary = true; - width = mode->hdisplay; - height = mode->vdisplay; - base_offset = 0; + if (bo->surf.stride * bo->surf.height > qdev->vram_size) { + DRM_ERROR("Mode doesn't fit in vram size (vgamem)"); + return -EINVAL; + } ret = qxl_bo_reserve(bo, false); if (ret != 0) @@ -562,10 +562,10 @@ if (recreate_primary) { qxl_io_destroy_primary(qdev); qxl_io_log(qdev, - "recreate primary: %dx%d (was %dx%d,%d,%d)\n", - width, height, bo->surf.width, - bo->surf.height, bo->surf.stride, bo->surf.format); - qxl_io_create_primary(qdev, base_offset, bo); + "recreate primary: %dx%d,%d,%d\n", + bo->surf.width, bo->surf.height, + bo->surf.stride, bo->surf.format); + qxl_io_create_primary(qdev, 0, bo); bo->is_primary = true; surf_id = 0; } else { --- linux-3.13.0.orig/drivers/gpu/drm/qxl/qxl_irq.c +++ linux-3.13.0/drivers/gpu/drm/qxl/qxl_irq.c @@ -33,6 +33,9 @@ pending = xchg(&qdev->ram_header->int_pending, 0); + if (!pending) + return IRQ_NONE; + atomic_inc(&qdev->irq_received); if (pending & QXL_INTERRUPT_DISPLAY) { --- linux-3.13.0.orig/drivers/gpu/drm/qxl/qxl_ttm.c +++ linux-3.13.0/drivers/gpu/drm/qxl/qxl_ttm.c @@ -433,6 +433,7 @@ static void qxl_sync_obj_unref(void **sync_obj) { + *sync_obj = NULL; } static void *qxl_sync_obj_ref(void *sync_obj) --- linux-3.13.0.orig/drivers/gpu/drm/radeon/atombios_crtc.c +++ linux-3.13.0/drivers/gpu/drm/radeon/atombios_crtc.c @@ -209,6 +209,16 @@ atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); } +static const u32 vga_control_regs[6] = +{ + AVIVO_D1VGA_CONTROL, + AVIVO_D2VGA_CONTROL, + EVERGREEN_D3VGA_CONTROL, + EVERGREEN_D4VGA_CONTROL, + EVERGREEN_D5VGA_CONTROL, + EVERGREEN_D6VGA_CONTROL, +}; + static void atombios_blank_crtc(struct drm_crtc *crtc, int state) { struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); @@ -216,13 +226,23 @@ struct radeon_device *rdev = dev->dev_private; int index = GetIndexIntoMasterTable(COMMAND, BlankCRTC); BLANK_CRTC_PS_ALLOCATION args; + u32 vga_control = 0; memset(&args, 0, sizeof(args)); + if (ASIC_IS_DCE8(rdev)) { + vga_control = RREG32(vga_control_regs[radeon_crtc->crtc_id]); + WREG32(vga_control_regs[radeon_crtc->crtc_id], vga_control | 1); + } + args.ucCRTC = radeon_crtc->crtc_id; args.ucBlanking = state; atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); + + if (ASIC_IS_DCE8(rdev)) { + WREG32(vga_control_regs[radeon_crtc->crtc_id], vga_control); + } } static void atombios_powergate_crtc(struct drm_crtc *crtc, int state) @@ -250,8 +270,6 @@ switch (mode) { case DRM_MODE_DPMS_ON: radeon_crtc->enabled = true; - /* adjust pm to dpms changes BEFORE enabling crtcs */ - radeon_pm_compute_clocks(rdev); atombios_enable_crtc(crtc, ATOM_ENABLE); if (ASIC_IS_DCE3(rdev) && !ASIC_IS_DCE6(rdev)) atombios_enable_crtc_memreq(crtc, ATOM_ENABLE); @@ -269,10 +287,10 @@ atombios_enable_crtc_memreq(crtc, ATOM_DISABLE); atombios_enable_crtc(crtc, ATOM_DISABLE); radeon_crtc->enabled = false; - /* adjust pm to dpms changes AFTER disabling crtcs */ - radeon_pm_compute_clocks(rdev); break; } + /* adjust pm to dpms */ + radeon_pm_compute_clocks(rdev); } static void @@ -839,14 +857,16 @@ args.v5.ucMiscInfo = 0; /* HDMI depth, etc. */ if (ss_enabled && (ss->type & ATOM_EXTERNAL_SS_MASK)) args.v5.ucMiscInfo |= PIXEL_CLOCK_V5_MISC_REF_DIV_SRC; - switch (bpc) { - case 8: - default: - args.v5.ucMiscInfo |= PIXEL_CLOCK_V5_MISC_HDMI_24BPP; - break; - case 10: - args.v5.ucMiscInfo |= PIXEL_CLOCK_V5_MISC_HDMI_30BPP; - break; + if (encoder_mode == ATOM_ENCODER_MODE_HDMI) { + switch (bpc) { + case 8: + default: + args.v5.ucMiscInfo |= PIXEL_CLOCK_V5_MISC_HDMI_24BPP; + break; + case 10: + args.v5.ucMiscInfo |= PIXEL_CLOCK_V5_MISC_HDMI_30BPP; + break; + } } args.v5.ucTransmitterID = encoder_id; args.v5.ucEncoderMode = encoder_mode; @@ -861,20 +881,22 @@ args.v6.ucMiscInfo = 0; /* HDMI depth, etc. */ if (ss_enabled && (ss->type & ATOM_EXTERNAL_SS_MASK)) args.v6.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_REF_DIV_SRC; - switch (bpc) { - case 8: - default: - args.v6.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_24BPP; - break; - case 10: - args.v6.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_30BPP; - break; - case 12: - args.v6.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_36BPP; - break; - case 16: - args.v6.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_48BPP; - break; + if (encoder_mode == ATOM_ENCODER_MODE_HDMI) { + switch (bpc) { + case 8: + default: + args.v6.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_24BPP; + break; + case 10: + args.v6.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_30BPP; + break; + case 12: + args.v6.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_36BPP; + break; + case 16: + args.v6.ucMiscInfo |= PIXEL_CLOCK_V6_MISC_HDMI_48BPP; + break; + } } args.v6.ucTransmitterID = encoder_id; args.v6.ucEncoderMode = encoder_mode; @@ -938,11 +960,14 @@ radeon_atombios_get_ppll_ss_info(rdev, &radeon_crtc->ss, ATOM_DP_SS_ID1); - } else + } else { radeon_crtc->ss_enabled = radeon_atombios_get_ppll_ss_info(rdev, &radeon_crtc->ss, ATOM_DP_SS_ID1); + } + /* disable spread spectrum on DCE3 DP */ + radeon_crtc->ss_enabled = false; } break; case ATOM_ENCODER_MODE_LVDS: @@ -1146,7 +1171,7 @@ evergreen_tiling_fields(tiling_flags, &bankw, &bankh, &mtaspect, &tile_split); /* Set NUM_BANKS. */ - if (rdev->family >= CHIP_BONAIRE) { + if (rdev->family >= CHIP_TAHITI) { unsigned tileb, index, num_banks, tile_split_bytes; /* Calculate the macrotile mode index. */ @@ -1164,13 +1189,14 @@ return -EINVAL; } - num_banks = (rdev->config.cik.macrotile_mode_array[index] >> 6) & 0x3; + if (rdev->family >= CHIP_BONAIRE) + num_banks = (rdev->config.cik.macrotile_mode_array[index] >> 6) & 0x3; + else + num_banks = (rdev->config.si.tile_mode_array[index] >> 20) & 0x3; fb_format |= EVERGREEN_GRPH_NUM_BANKS(num_banks); } else { - /* SI and older. */ - if (rdev->family >= CHIP_TAHITI) - tmp = rdev->config.si.tile_config; - else if (rdev->family >= CHIP_CAYMAN) + /* NI and older. */ + if (rdev->family >= CHIP_CAYMAN) tmp = rdev->config.cayman.tile_config; else tmp = rdev->config.evergreen.tile_config; @@ -1743,6 +1769,20 @@ return ATOM_PPLL1; DRM_ERROR("unable to allocate a PPLL\n"); return ATOM_PPLL_INVALID; + } else if (ASIC_IS_DCE41(rdev)) { + /* Don't share PLLs on DCE4.1 chips */ + if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(radeon_crtc->encoder))) { + if (rdev->clock.dp_extclk) + /* skip PPLL programming if using ext clock */ + return ATOM_PPLL_INVALID; + } + pll_in_use = radeon_get_pll_use_mask(crtc); + if (!(pll_in_use & (1 << ATOM_PPLL1))) + return ATOM_PPLL1; + if (!(pll_in_use & (1 << ATOM_PPLL2))) + return ATOM_PPLL2; + DRM_ERROR("unable to allocate a PPLL\n"); + return ATOM_PPLL_INVALID; } else if (ASIC_IS_DCE4(rdev)) { /* in DP mode, the DP ref clock can come from PPLL, DCPLL, or ext clock, * depending on the asic: @@ -1770,7 +1810,7 @@ if (pll != ATOM_PPLL_INVALID) return pll; } - } else if (!ASIC_IS_DCE41(rdev)) { /* Don't share PLLs on DCE4.1 chips */ + } else { /* use the same PPLL for all monitors with the same clock */ pll = radeon_get_shared_nondp_ppll(crtc); if (pll != ATOM_PPLL_INVALID) --- linux-3.13.0.orig/drivers/gpu/drm/radeon/atombios_dp.c +++ linux-3.13.0/drivers/gpu/drm/radeon/atombios_dp.c @@ -123,7 +123,7 @@ /* flags not zero */ if (args.v1.ucReplyStatus == 2) { DRM_DEBUG_KMS("dp_aux_ch flags not zero\n"); - return -EBUSY; + return -EIO; } /* error */ @@ -384,6 +384,19 @@ /***** radeon specific DP functions *****/ +static int radeon_dp_get_max_link_rate(struct drm_connector *connector, + u8 dpcd[DP_DPCD_SIZE]) +{ + int max_link_rate; + + if (radeon_connector_is_dp12_capable(connector)) + max_link_rate = min(drm_dp_max_link_rate(dpcd), 540000); + else + max_link_rate = min(drm_dp_max_link_rate(dpcd), 270000); + + return max_link_rate; +} + /* First get the min lane# when low rate is used according to pixel clock * (prefer low rate), second check max lane# supported by DP panel, * if the max lane# < low rate lane# then use max lane# instead. @@ -393,7 +406,7 @@ int pix_clock) { int bpp = convert_bpc_to_bpp(radeon_get_monitor_bpc(connector)); - int max_link_rate = drm_dp_max_link_rate(dpcd); + int max_link_rate = radeon_dp_get_max_link_rate(connector, dpcd); int max_lane_num = drm_dp_max_lane_count(dpcd); int lane_num; int max_dp_pix_clock; @@ -431,7 +444,7 @@ return 540000; } - return drm_dp_max_link_rate(dpcd); + return radeon_dp_get_max_link_rate(connector, dpcd); } static u8 radeon_dp_encoder_service(struct radeon_device *rdev, --- linux-3.13.0.orig/drivers/gpu/drm/radeon/atombios_encoders.c +++ linux-3.13.0/drivers/gpu/drm/radeon/atombios_encoders.c @@ -183,7 +183,6 @@ struct backlight_properties props; struct radeon_backlight_privdata *pdata; struct radeon_encoder_atom_dig *dig; - u8 backlight_level; char bl_name[16]; /* Mac laptops with multiple GPUs use the gmux driver for backlight @@ -222,12 +221,17 @@ pdata->encoder = radeon_encoder; - backlight_level = radeon_atom_get_backlight_level_from_reg(rdev); - dig = radeon_encoder->enc_priv; dig->bl_dev = bd; bd->props.brightness = radeon_atom_backlight_get_brightness(bd); + /* Set a reasonable default here if the level is 0 otherwise + * fbdev will attempt to turn the backlight on after console + * unblanking and it will try and restore 0 which turns the backlight + * off again. + */ + if (bd->props.brightness == 0) + bd->props.brightness = RADEON_MAX_BL_LEVEL; bd->props.power = FB_BLANK_UNBLANK; backlight_update_status(bd); @@ -1313,7 +1317,7 @@ } if (is_dp) args.v5.ucLaneNum = dp_lane_count; - else if (radeon_encoder->pixel_clock > 165000) + else if (radeon_dig_monitor_is_duallink(encoder, radeon_encoder->pixel_clock)) args.v5.ucLaneNum = 8; else args.v5.ucLaneNum = 4; @@ -1897,8 +1901,11 @@ args.v2.ucEncodeMode = ATOM_ENCODER_MODE_CRT; else args.v2.ucEncodeMode = atombios_get_encoder_mode(encoder); - } else + } else if (radeon_encoder->devices & (ATOM_DEVICE_LCD_SUPPORT)) { + args.v2.ucEncodeMode = ATOM_ENCODER_MODE_LVDS; + } else { args.v2.ucEncodeMode = atombios_get_encoder_mode(encoder); + } switch (radeon_encoder->encoder_id) { case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1: --- linux-3.13.0.orig/drivers/gpu/drm/radeon/ci_dpm.c +++ linux-3.13.0/drivers/gpu/drm/radeon/ci_dpm.c @@ -21,8 +21,10 @@ * */ +#include #include "drmP.h" #include "radeon.h" +#include "radeon_ucode.h" #include "cikd.h" #include "r600_dpm.h" #include "ci_dpm.h" @@ -850,6 +852,9 @@ WREG32_SMC(CG_THERMAL_CTRL, tmp); #endif + rdev->pm.dpm.thermal.min_temp = low_temp; + rdev->pm.dpm.thermal.max_temp = high_temp; + return 0; } @@ -921,7 +926,18 @@ pi->vddc_leakage.count = 0; pi->vddci_leakage.count = 0; - if (radeon_atom_get_leakage_id_from_vbios(rdev, &leakage_id) == 0) { + if (rdev->pm.dpm.platform_caps & ATOM_PP_PLATFORM_CAP_EVV) { + for (i = 0; i < CISLANDS_MAX_LEAKAGE_COUNT; i++) { + virtual_voltage_id = ATOM_VIRTUAL_VOLTAGE_ID0 + i; + if (radeon_atom_get_voltage_evv(rdev, virtual_voltage_id, &vddc) != 0) + continue; + if (vddc != 0 && vddc != virtual_voltage_id) { + pi->vddc_leakage.actual_voltage[pi->vddc_leakage.count] = vddc; + pi->vddc_leakage.leakage_id[pi->vddc_leakage.count] = virtual_voltage_id; + pi->vddc_leakage.count++; + } + } + } else if (radeon_atom_get_leakage_id_from_vbios(rdev, &leakage_id) == 0) { for (i = 0; i < CISLANDS_MAX_LEAKAGE_COUNT; i++) { virtual_voltage_id = ATOM_VIRTUAL_VOLTAGE_ID0 + i; if (radeon_atom_get_leakage_vddc_based_on_leakage_params(rdev, &vddc, &vddci, @@ -1160,7 +1176,7 @@ tmp &= ~GLOBAL_PWRMGT_EN; WREG32_SMC(GENERAL_PWRMGT, tmp); - tmp = RREG32(SCLK_PWRMGT_CNTL); + tmp = RREG32_SMC(SCLK_PWRMGT_CNTL); tmp &= ~DYNAMIC_PM_EN; WREG32_SMC(SCLK_PWRMGT_CNTL, tmp); @@ -4725,7 +4741,7 @@ ci_enable_spread_spectrum(rdev, false); ci_enable_auto_throttle_source(rdev, RADEON_DPM_AUTO_THROTTLE_SRC_THERMAL, false); ci_stop_dpm(rdev); - ci_enable_ds_master_switch(rdev, true); + ci_enable_ds_master_switch(rdev, false); ci_enable_ulv(rdev, false); ci_clear_vc(rdev); ci_reset_to_default(rdev); @@ -5128,6 +5144,12 @@ pi->mclk_dpm_key_disabled = 0; pi->pcie_dpm_key_disabled = 0; + /* mclk dpm is unstable on some R7 260X cards with the old mc ucode */ + if ((rdev->pdev->device == 0x6658) && + (rdev->mc_fw->size == (BONAIRE_MC_UCODE_SIZE * 4))) { + pi->mclk_dpm_key_disabled = 1; + } + pi->caps_sclk_ds = true; pi->mclk_strobe_mode_threshold = 40000; --- linux-3.13.0.orig/drivers/gpu/drm/radeon/cik.c +++ linux-3.13.0/drivers/gpu/drm/radeon/cik.c @@ -38,6 +38,7 @@ MODULE_FIRMWARE("radeon/BONAIRE_ce.bin"); MODULE_FIRMWARE("radeon/BONAIRE_mec.bin"); MODULE_FIRMWARE("radeon/BONAIRE_mc.bin"); +MODULE_FIRMWARE("radeon/BONAIRE_mc2.bin"); MODULE_FIRMWARE("radeon/BONAIRE_rlc.bin"); MODULE_FIRMWARE("radeon/BONAIRE_sdma.bin"); MODULE_FIRMWARE("radeon/BONAIRE_smc.bin"); @@ -46,6 +47,7 @@ MODULE_FIRMWARE("radeon/HAWAII_ce.bin"); MODULE_FIRMWARE("radeon/HAWAII_mec.bin"); MODULE_FIRMWARE("radeon/HAWAII_mc.bin"); +MODULE_FIRMWARE("radeon/HAWAII_mc2.bin"); MODULE_FIRMWARE("radeon/HAWAII_rlc.bin"); MODULE_FIRMWARE("radeon/HAWAII_sdma.bin"); MODULE_FIRMWARE("radeon/HAWAII_smc.bin"); @@ -1095,7 +1097,7 @@ 0x8a14, 0xf000003f, 0x00000007, 0x8b24, 0xffffffff, 0x00ffffff, 0x28350, 0x3f3f3fff, 0x00000082, - 0x28355, 0x0000003f, 0x00000000, + 0x28354, 0x0000003f, 0x00000000, 0x3e78, 0x00000001, 0x00000002, 0x913c, 0xffff03df, 0x00000004, 0xc768, 0x00000008, 0x00000008, @@ -1702,20 +1704,20 @@ const __be32 *fw_data; u32 running, blackout = 0; u32 *io_mc_regs; - int i, ucode_size, regs_size; + int i, regs_size, ucode_size; if (!rdev->mc_fw) return -EINVAL; + ucode_size = rdev->mc_fw->size / 4; + switch (rdev->family) { case CHIP_BONAIRE: io_mc_regs = (u32 *)&bonaire_io_mc_regs; - ucode_size = CIK_MC_UCODE_SIZE; regs_size = BONAIRE_IO_MC_REGS_SIZE; break; case CHIP_HAWAII: io_mc_regs = (u32 *)&hawaii_io_mc_regs; - ucode_size = HAWAII_MC_UCODE_SIZE; regs_size = HAWAII_IO_MC_REGS_SIZE; break; default: @@ -1782,7 +1784,7 @@ const char *chip_name; size_t pfp_req_size, me_req_size, ce_req_size, mec_req_size, rlc_req_size, mc_req_size = 0, - sdma_req_size, smc_req_size = 0; + sdma_req_size, smc_req_size = 0, mc2_req_size = 0; char fw_name[30]; int err; @@ -1796,7 +1798,8 @@ ce_req_size = CIK_CE_UCODE_SIZE * 4; mec_req_size = CIK_MEC_UCODE_SIZE * 4; rlc_req_size = BONAIRE_RLC_UCODE_SIZE * 4; - mc_req_size = CIK_MC_UCODE_SIZE * 4; + mc_req_size = BONAIRE_MC_UCODE_SIZE * 4; + mc2_req_size = BONAIRE_MC2_UCODE_SIZE * 4; sdma_req_size = CIK_SDMA_UCODE_SIZE * 4; smc_req_size = ALIGN(BONAIRE_SMC_UCODE_SIZE, 4); break; @@ -1808,6 +1811,7 @@ mec_req_size = CIK_MEC_UCODE_SIZE * 4; rlc_req_size = BONAIRE_RLC_UCODE_SIZE * 4; mc_req_size = HAWAII_MC_UCODE_SIZE * 4; + mc2_req_size = HAWAII_MC2_UCODE_SIZE * 4; sdma_req_size = CIK_SDMA_UCODE_SIZE * 4; smc_req_size = ALIGN(HAWAII_SMC_UCODE_SIZE, 4); break; @@ -1903,16 +1907,22 @@ /* No SMC, MC ucode on APUs */ if (!(rdev->flags & RADEON_IS_IGP)) { - snprintf(fw_name, sizeof(fw_name), "radeon/%s_mc.bin", chip_name); + snprintf(fw_name, sizeof(fw_name), "radeon/%s_mc2.bin", chip_name); err = request_firmware(&rdev->mc_fw, fw_name, rdev->dev); - if (err) - goto out; - if (rdev->mc_fw->size != mc_req_size) { + if (err) { + snprintf(fw_name, sizeof(fw_name), "radeon/%s_mc.bin", chip_name); + err = request_firmware(&rdev->mc_fw, fw_name, rdev->dev); + if (err) + goto out; + } + if ((rdev->mc_fw->size != mc_req_size) && + (rdev->mc_fw->size != mc2_req_size)){ printk(KERN_ERR "cik_mc: Bogus length %zu in firmware \"%s\"\n", rdev->mc_fw->size, fw_name); err = -EINVAL; } + DRM_INFO("%s: %zu bytes\n", fw_name, rdev->mc_fw->size); snprintf(fw_name, sizeof(fw_name), "radeon/%s_smc.bin", chip_name); err = request_firmware(&rdev->smc_fw, fw_name, rdev->dev); @@ -2209,6 +2219,7 @@ gb_tile_moden = 0; break; } + rdev->config.cik.macrotile_mode_array[reg_offset] = gb_tile_moden; WREG32(GB_MACROTILE_MODE0 + (reg_offset * 4), gb_tile_moden); } } else if (num_pipe_configs == 8) { @@ -3220,6 +3231,7 @@ (rdev->pdev->device == 0x130B) || (rdev->pdev->device == 0x130E) || (rdev->pdev->device == 0x1315) || + (rdev->pdev->device == 0x1318) || (rdev->pdev->device == 0x131B)) { rdev->config.cik.max_cu_per_sh = 4; rdev->config.cik.max_backends_per_se = 1; @@ -3566,8 +3578,6 @@ struct radeon_semaphore *semaphore, bool emit_wait) { -/* TODO: figure out why semaphore cause lockups */ -#if 0 uint64_t addr = semaphore->gpu_addr; unsigned sel = emit_wait ? PACKET3_SEM_SEL_WAIT : PACKET3_SEM_SEL_SIGNAL; @@ -3576,9 +3586,6 @@ radeon_ring_write(ring, (upper_32_bits(addr) & 0xffff) | sel); return true; -#else - return false; -#endif } /** @@ -3898,8 +3905,8 @@ /* init the CE partitions. CE only used for gfx on CIK */ radeon_ring_write(ring, PACKET3(PACKET3_SET_BASE, 2)); radeon_ring_write(ring, PACKET3_BASE_INDEX(CE_PARTITION_BASE)); - radeon_ring_write(ring, 0xc000); - radeon_ring_write(ring, 0xc000); + radeon_ring_write(ring, 0x8000); + radeon_ring_write(ring, 0x8000); /* setup clear context state */ radeon_ring_write(ring, PACKET3(PACKET3_PREAMBLE_CNTL, 0)); @@ -4074,8 +4081,11 @@ { if (enable) WREG32(CP_MEC_CNTL, 0); - else + else { WREG32(CP_MEC_CNTL, (MEC_ME1_HALT | MEC_ME2_HALT)); + rdev->ring[CAYMAN_RING_TYPE_CP1_INDEX].ready = false; + rdev->ring[CAYMAN_RING_TYPE_CP2_INDEX].ready = false; + } udelay(50); } @@ -4317,7 +4327,7 @@ */ static int cik_cp_compute_resume(struct radeon_device *rdev) { - int r, i, idx; + int r, i, j, idx; u32 tmp; bool use_doorbell = true; u64 hqd_gpu_addr; @@ -4436,7 +4446,7 @@ mqd->queue_state.cp_hqd_pq_wptr= 0; if (RREG32(CP_HQD_ACTIVE) & 1) { WREG32(CP_HQD_DEQUEUE_REQUEST, 1); - for (i = 0; i < rdev->usec_timeout; i++) { + for (j = 0; j < rdev->usec_timeout; j++) { if (!(RREG32(CP_HQD_ACTIVE) & 1)) break; udelay(1); @@ -5323,12 +5333,13 @@ void cik_vm_flush(struct radeon_device *rdev, int ridx, struct radeon_vm *vm) { struct radeon_ring *ring = &rdev->ring[ridx]; + int usepfp = (ridx == RADEON_RING_TYPE_GFX_INDEX); if (vm == NULL) return; radeon_ring_write(ring, PACKET3(PACKET3_WRITE_DATA, 3)); - radeon_ring_write(ring, (WRITE_DATA_ENGINE_SEL(0) | + radeon_ring_write(ring, (WRITE_DATA_ENGINE_SEL(usepfp) | WRITE_DATA_DST_SEL(0))); if (vm->id < 8) { radeon_ring_write(ring, @@ -5387,7 +5398,7 @@ radeon_ring_write(ring, 1 << vm->id); /* compute doesn't have PFP */ - if (ridx == RADEON_RING_TYPE_GFX_INDEX) { + if (usepfp) { /* sync PFP to ME, otherwise we might get invalid PFP reads */ radeon_ring_write(ring, PACKET3(PACKET3_PFP_SYNC_ME, 0)); radeon_ring_write(ring, 0x0); @@ -5665,6 +5676,7 @@ } orig = data = RREG32(RLC_CGTT_MGCG_OVERRIDE); + data |= 0x00000001; data &= 0xfffffffd; if (orig != data) WREG32(RLC_CGTT_MGCG_OVERRIDE, data); @@ -5696,7 +5708,7 @@ } } else { orig = data = RREG32(RLC_CGTT_MGCG_OVERRIDE); - data |= 0x00000002; + data |= 0x00000003; if (orig != data) WREG32(RLC_CGTT_MGCG_OVERRIDE, data); @@ -6320,8 +6332,8 @@ buffer[count++] = cpu_to_le32(0x00000000); break; case CHIP_HAWAII: - buffer[count++] = 0x3a00161a; - buffer[count++] = 0x0000002e; + buffer[count++] = cpu_to_le32(0x3a00161a); + buffer[count++] = cpu_to_le32(0x0000002e); break; default: buffer[count++] = cpu_to_le32(0x00000000); @@ -6461,6 +6473,19 @@ WREG32(LB_INTERRUPT_MASK + EVERGREEN_CRTC4_REGISTER_OFFSET, 0); WREG32(LB_INTERRUPT_MASK + EVERGREEN_CRTC5_REGISTER_OFFSET, 0); } + /* pflip */ + if (rdev->num_crtc >= 2) { + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET, 0); + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET, 0); + } + if (rdev->num_crtc >= 4) { + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET, 0); + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET, 0); + } + if (rdev->num_crtc >= 6) { + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET, 0); + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, 0); + } /* dac hotplug */ WREG32(DAC_AUTODETECT_INT_CONTROL, 0); @@ -6817,6 +6842,25 @@ WREG32(LB_INTERRUPT_MASK + EVERGREEN_CRTC5_REGISTER_OFFSET, crtc6); } + if (rdev->num_crtc >= 2) { + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET, + GRPH_PFLIP_INT_MASK); + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET, + GRPH_PFLIP_INT_MASK); + } + if (rdev->num_crtc >= 4) { + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET, + GRPH_PFLIP_INT_MASK); + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET, + GRPH_PFLIP_INT_MASK); + } + if (rdev->num_crtc >= 6) { + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET, + GRPH_PFLIP_INT_MASK); + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, + GRPH_PFLIP_INT_MASK); + } + WREG32(DC_HPD1_INT_CONTROL, hpd1); WREG32(DC_HPD2_INT_CONTROL, hpd2); WREG32(DC_HPD3_INT_CONTROL, hpd3); @@ -6853,6 +6897,29 @@ rdev->irq.stat_regs.cik.disp_int_cont5 = RREG32(DISP_INTERRUPT_STATUS_CONTINUE5); rdev->irq.stat_regs.cik.disp_int_cont6 = RREG32(DISP_INTERRUPT_STATUS_CONTINUE6); + rdev->irq.stat_regs.cik.d1grph_int = RREG32(GRPH_INT_STATUS + + EVERGREEN_CRTC0_REGISTER_OFFSET); + rdev->irq.stat_regs.cik.d2grph_int = RREG32(GRPH_INT_STATUS + + EVERGREEN_CRTC1_REGISTER_OFFSET); + if (rdev->num_crtc >= 4) { + rdev->irq.stat_regs.cik.d3grph_int = RREG32(GRPH_INT_STATUS + + EVERGREEN_CRTC2_REGISTER_OFFSET); + rdev->irq.stat_regs.cik.d4grph_int = RREG32(GRPH_INT_STATUS + + EVERGREEN_CRTC3_REGISTER_OFFSET); + } + if (rdev->num_crtc >= 6) { + rdev->irq.stat_regs.cik.d5grph_int = RREG32(GRPH_INT_STATUS + + EVERGREEN_CRTC4_REGISTER_OFFSET); + rdev->irq.stat_regs.cik.d6grph_int = RREG32(GRPH_INT_STATUS + + EVERGREEN_CRTC5_REGISTER_OFFSET); + } + + if (rdev->irq.stat_regs.cik.d1grph_int & GRPH_PFLIP_INT_OCCURRED) + WREG32(GRPH_INT_STATUS + EVERGREEN_CRTC0_REGISTER_OFFSET, + GRPH_PFLIP_INT_CLEAR); + if (rdev->irq.stat_regs.cik.d2grph_int & GRPH_PFLIP_INT_OCCURRED) + WREG32(GRPH_INT_STATUS + EVERGREEN_CRTC1_REGISTER_OFFSET, + GRPH_PFLIP_INT_CLEAR); if (rdev->irq.stat_regs.cik.disp_int & LB_D1_VBLANK_INTERRUPT) WREG32(LB_VBLANK_STATUS + EVERGREEN_CRTC0_REGISTER_OFFSET, VBLANK_ACK); if (rdev->irq.stat_regs.cik.disp_int & LB_D1_VLINE_INTERRUPT) @@ -6863,6 +6930,12 @@ WREG32(LB_VLINE_STATUS + EVERGREEN_CRTC1_REGISTER_OFFSET, VLINE_ACK); if (rdev->num_crtc >= 4) { + if (rdev->irq.stat_regs.cik.d3grph_int & GRPH_PFLIP_INT_OCCURRED) + WREG32(GRPH_INT_STATUS + EVERGREEN_CRTC2_REGISTER_OFFSET, + GRPH_PFLIP_INT_CLEAR); + if (rdev->irq.stat_regs.cik.d4grph_int & GRPH_PFLIP_INT_OCCURRED) + WREG32(GRPH_INT_STATUS + EVERGREEN_CRTC3_REGISTER_OFFSET, + GRPH_PFLIP_INT_CLEAR); if (rdev->irq.stat_regs.cik.disp_int_cont2 & LB_D3_VBLANK_INTERRUPT) WREG32(LB_VBLANK_STATUS + EVERGREEN_CRTC2_REGISTER_OFFSET, VBLANK_ACK); if (rdev->irq.stat_regs.cik.disp_int_cont2 & LB_D3_VLINE_INTERRUPT) @@ -6874,6 +6947,12 @@ } if (rdev->num_crtc >= 6) { + if (rdev->irq.stat_regs.cik.d5grph_int & GRPH_PFLIP_INT_OCCURRED) + WREG32(GRPH_INT_STATUS + EVERGREEN_CRTC4_REGISTER_OFFSET, + GRPH_PFLIP_INT_CLEAR); + if (rdev->irq.stat_regs.cik.d6grph_int & GRPH_PFLIP_INT_OCCURRED) + WREG32(GRPH_INT_STATUS + EVERGREEN_CRTC5_REGISTER_OFFSET, + GRPH_PFLIP_INT_CLEAR); if (rdev->irq.stat_regs.cik.disp_int_cont4 & LB_D5_VBLANK_INTERRUPT) WREG32(LB_VBLANK_STATUS + EVERGREEN_CRTC4_REGISTER_OFFSET, VBLANK_ACK); if (rdev->irq.stat_regs.cik.disp_int_cont4 & LB_D5_VLINE_INTERRUPT) @@ -6992,6 +7071,7 @@ tmp = RREG32(IH_RB_CNTL); tmp |= IH_WPTR_OVERFLOW_CLEAR; WREG32(IH_RB_CNTL, tmp); + wptr &= ~RB_OVERFLOW; } return (wptr & rdev->ih.ptr_mask); } @@ -7225,6 +7305,15 @@ break; } break; + case 8: /* D1 page flip */ + case 10: /* D2 page flip */ + case 12: /* D3 page flip */ + case 14: /* D4 page flip */ + case 16: /* D5 page flip */ + case 18: /* D6 page flip */ + DRM_DEBUG("IH: D%d flip\n", ((src_id - 8) >> 1) + 1); + radeon_crtc_handle_flip(rdev, (src_id - 8) >> 1); + break; case 42: /* HPD hotplug */ switch (src_data) { case 0: @@ -7489,6 +7578,7 @@ static int cik_startup(struct radeon_device *rdev) { struct radeon_ring *ring; + u32 nop; int r; /* enable pcie gen2/3 link */ @@ -7503,26 +7593,7 @@ cik_mc_program(rdev); - if (rdev->flags & RADEON_IS_IGP) { - if (!rdev->me_fw || !rdev->pfp_fw || !rdev->ce_fw || - !rdev->mec_fw || !rdev->sdma_fw || !rdev->rlc_fw) { - r = cik_init_microcode(rdev); - if (r) { - DRM_ERROR("Failed to load firmware!\n"); - return r; - } - } - } else { - if (!rdev->me_fw || !rdev->pfp_fw || !rdev->ce_fw || - !rdev->mec_fw || !rdev->sdma_fw || !rdev->rlc_fw || - !rdev->mc_fw) { - r = cik_init_microcode(rdev); - if (r) { - DRM_ERROR("Failed to load firmware!\n"); - return r; - } - } - + if (!(rdev->flags & RADEON_IS_IGP)) { r = ci_mc_load_microcode(rdev); if (r) { DRM_ERROR("Failed to load MC firmware!\n"); @@ -7625,10 +7696,16 @@ } cik_irq_set(rdev); + if (rdev->family == CHIP_HAWAII) { + nop = RADEON_CP_PACKET2; + } else { + nop = PACKET3(PACKET3_NOP, 0x3FFF); + } + ring = &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]; r = radeon_ring_init(rdev, ring, ring->ring_size, RADEON_WB_CP_RPTR_OFFSET, CP_RB0_RPTR, CP_RB0_WPTR, - PACKET3(PACKET3_NOP, 0x3FFF)); + nop); if (r) return r; @@ -7637,7 +7714,7 @@ ring = &rdev->ring[CAYMAN_RING_TYPE_CP1_INDEX]; r = radeon_ring_init(rdev, ring, ring->ring_size, RADEON_WB_CP1_RPTR_OFFSET, CP_HQD_PQ_RPTR, CP_HQD_PQ_WPTR, - PACKET3(PACKET3_NOP, 0x3FFF)); + nop); if (r) return r; ring->me = 1; /* first MEC */ @@ -7649,7 +7726,7 @@ ring = &rdev->ring[CAYMAN_RING_TYPE_CP2_INDEX]; r = radeon_ring_init(rdev, ring, ring->ring_size, RADEON_WB_CP2_RPTR_OFFSET, CP_HQD_PQ_RPTR, CP_HQD_PQ_WPTR, - PACKET3(PACKET3_NOP, 0x3FFF)); + nop); if (r) return r; /* dGPU only have 1 MEC */ @@ -7835,6 +7912,27 @@ if (r) return r; + if (rdev->flags & RADEON_IS_IGP) { + if (!rdev->me_fw || !rdev->pfp_fw || !rdev->ce_fw || + !rdev->mec_fw || !rdev->sdma_fw || !rdev->rlc_fw) { + r = cik_init_microcode(rdev); + if (r) { + DRM_ERROR("Failed to load firmware!\n"); + return r; + } + } + } else { + if (!rdev->me_fw || !rdev->pfp_fw || !rdev->ce_fw || + !rdev->mec_fw || !rdev->sdma_fw || !rdev->rlc_fw || + !rdev->mc_fw) { + r = cik_init_microcode(rdev); + if (r) { + DRM_ERROR("Failed to load firmware!\n"); + return r; + } + } + } + ring = &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]; ring->ring_obj = NULL; r600_ring_init(rdev, ring, 1024 * 1024); @@ -8593,6 +8691,9 @@ u32 num_heads = 0, lb_size; int i; + if (!rdev->mode_info.mode_config_initialized) + return; + radeon_update_display_priority(rdev); for (i = 0; i < rdev->num_crtc; i++) { --- linux-3.13.0.orig/drivers/gpu/drm/radeon/cik_sdma.c +++ linux-3.13.0/drivers/gpu/drm/radeon/cik_sdma.c @@ -88,6 +88,35 @@ } /** + * cik_sdma_hdp_flush_ring_emit - emit an hdp flush on the DMA ring + * + * @rdev: radeon_device pointer + * @ridx: radeon ring index + * + * Emit an hdp flush packet on the requested DMA ring. + */ +static void cik_sdma_hdp_flush_ring_emit(struct radeon_device *rdev, + int ridx) +{ + struct radeon_ring *ring = &rdev->ring[ridx]; + u32 extra_bits = (SDMA_POLL_REG_MEM_EXTRA_OP(1) | + SDMA_POLL_REG_MEM_EXTRA_FUNC(3)); /* == */ + u32 ref_and_mask; + + if (ridx == R600_RING_TYPE_DMA_INDEX) + ref_and_mask = SDMA0; + else + ref_and_mask = SDMA1; + + radeon_ring_write(ring, SDMA_PACKET(SDMA_OPCODE_POLL_REG_MEM, 0, extra_bits)); + radeon_ring_write(ring, GPU_HDP_FLUSH_DONE); + radeon_ring_write(ring, GPU_HDP_FLUSH_REQ); + radeon_ring_write(ring, ref_and_mask); /* reference */ + radeon_ring_write(ring, ref_and_mask); /* mask */ + radeon_ring_write(ring, (0xfff << 16) | 10); /* retry count, poll interval */ +} + +/** * cik_sdma_fence_ring_emit - emit a fence on the DMA ring * * @rdev: radeon_device pointer @@ -111,12 +140,7 @@ /* generate an interrupt */ radeon_ring_write(ring, SDMA_PACKET(SDMA_OPCODE_TRAP, 0, 0)); /* flush HDP */ - /* We should be using the new POLL_REG_MEM special op packet here - * but it causes sDMA to hang sometimes - */ - radeon_ring_write(ring, SDMA_PACKET(SDMA_OPCODE_SRBM_WRITE, 0, 0xf000)); - radeon_ring_write(ring, HDP_MEM_COHERENCY_FLUSH_CNTL >> 2); - radeon_ring_write(ring, 0); + cik_sdma_hdp_flush_ring_emit(rdev, fence->ring); } /** @@ -169,6 +193,8 @@ WREG32(SDMA0_GFX_RB_CNTL + reg_offset, rb_cntl); WREG32(SDMA0_GFX_IB_CNTL + reg_offset, 0); } + rdev->ring[R600_RING_TYPE_DMA_INDEX].ready = false; + rdev->ring[CAYMAN_RING_TYPE_DMA1_INDEX].ready = false; } /** @@ -196,6 +222,11 @@ u32 me_cntl, reg_offset; int i; + if (enable == false) { + cik_sdma_gfx_stop(rdev); + cik_sdma_rlc_stop(rdev); + } + for (i = 0; i < 2; i++) { if (i == 0) reg_offset = SDMA0_REGISTER_OFFSET; @@ -323,10 +354,6 @@ if (!rdev->sdma_fw) return -EINVAL; - /* stop the gfx rings and rlc compute queues */ - cik_sdma_gfx_stop(rdev); - cik_sdma_rlc_stop(rdev); - /* halt the MEs */ cik_sdma_enable(rdev, false); @@ -361,13 +388,6 @@ { int r; - /* Reset dma */ - WREG32(SRBM_SOFT_RESET, SOFT_RESET_SDMA | SOFT_RESET_SDMA1); - RREG32(SRBM_SOFT_RESET); - udelay(50); - WREG32(SRBM_SOFT_RESET, 0); - RREG32(SRBM_SOFT_RESET); - r = cik_sdma_load_microcode(rdev); if (r) return r; @@ -395,9 +415,6 @@ */ void cik_sdma_fini(struct radeon_device *rdev) { - /* stop the gfx rings and rlc compute queues */ - cik_sdma_gfx_stop(rdev); - cik_sdma_rlc_stop(rdev); /* halt the MEs */ cik_sdma_enable(rdev, false); radeon_ring_fini(rdev, &rdev->ring[R600_RING_TYPE_DMA_INDEX]); @@ -491,31 +508,34 @@ { unsigned i; int r; - void __iomem *ptr = (void *)rdev->vram_scratch.ptr; + unsigned index; u32 tmp; + u64 gpu_addr; - if (!ptr) { - DRM_ERROR("invalid vram scratch pointer\n"); - return -EINVAL; - } + if (ring->idx == R600_RING_TYPE_DMA_INDEX) + index = R600_WB_DMA_RING_TEST_OFFSET; + else + index = CAYMAN_WB_DMA1_RING_TEST_OFFSET; + + gpu_addr = rdev->wb.gpu_addr + index; tmp = 0xCAFEDEAD; - writel(tmp, ptr); + rdev->wb.wb[index/4] = cpu_to_le32(tmp); - r = radeon_ring_lock(rdev, ring, 4); + r = radeon_ring_lock(rdev, ring, 5); if (r) { DRM_ERROR("radeon: dma failed to lock ring %d (%d).\n", ring->idx, r); return r; } radeon_ring_write(ring, SDMA_PACKET(SDMA_OPCODE_WRITE, SDMA_WRITE_SUB_OPCODE_LINEAR, 0)); - radeon_ring_write(ring, rdev->vram_scratch.gpu_addr & 0xfffffffc); - radeon_ring_write(ring, upper_32_bits(rdev->vram_scratch.gpu_addr) & 0xffffffff); + radeon_ring_write(ring, lower_32_bits(gpu_addr)); + radeon_ring_write(ring, upper_32_bits(gpu_addr)); radeon_ring_write(ring, 1); /* number of DWs to follow */ radeon_ring_write(ring, 0xDEADBEEF); radeon_ring_unlock_commit(rdev, ring); for (i = 0; i < rdev->usec_timeout; i++) { - tmp = readl(ptr); + tmp = le32_to_cpu(rdev->wb.wb[index/4]); if (tmp == 0xDEADBEEF) break; DRM_UDELAY(1); @@ -544,17 +564,20 @@ { struct radeon_ib ib; unsigned i; + unsigned index; int r; - void __iomem *ptr = (void *)rdev->vram_scratch.ptr; u32 tmp = 0; + u64 gpu_addr; - if (!ptr) { - DRM_ERROR("invalid vram scratch pointer\n"); - return -EINVAL; - } + if (ring->idx == R600_RING_TYPE_DMA_INDEX) + index = R600_WB_DMA_RING_TEST_OFFSET; + else + index = CAYMAN_WB_DMA1_RING_TEST_OFFSET; + + gpu_addr = rdev->wb.gpu_addr + index; tmp = 0xCAFEDEAD; - writel(tmp, ptr); + rdev->wb.wb[index/4] = cpu_to_le32(tmp); r = radeon_ib_get(rdev, ring->idx, &ib, NULL, 256); if (r) { @@ -563,8 +586,8 @@ } ib.ptr[0] = SDMA_PACKET(SDMA_OPCODE_WRITE, SDMA_WRITE_SUB_OPCODE_LINEAR, 0); - ib.ptr[1] = rdev->vram_scratch.gpu_addr & 0xfffffffc; - ib.ptr[2] = upper_32_bits(rdev->vram_scratch.gpu_addr) & 0xffffffff; + ib.ptr[1] = lower_32_bits(gpu_addr); + ib.ptr[2] = upper_32_bits(gpu_addr); ib.ptr[3] = 1; ib.ptr[4] = 0xDEADBEEF; ib.length_dw = 5; @@ -581,7 +604,7 @@ return r; } for (i = 0; i < rdev->usec_timeout; i++) { - tmp = readl(ptr); + tmp = le32_to_cpu(rdev->wb.wb[index/4]); if (tmp == 0xDEADBEEF) break; DRM_UDELAY(1); @@ -747,12 +770,7 @@ radeon_ring_write(ring, VMID(0)); /* flush HDP */ - /* We should be using the new POLL_REG_MEM special op packet here - * but it causes sDMA to hang sometimes - */ - radeon_ring_write(ring, SDMA_PACKET(SDMA_OPCODE_SRBM_WRITE, 0, 0xf000)); - radeon_ring_write(ring, HDP_MEM_COHERENCY_FLUSH_CNTL >> 2); - radeon_ring_write(ring, 0); + cik_sdma_hdp_flush_ring_emit(rdev, ridx); /* flush TLB */ radeon_ring_write(ring, SDMA_PACKET(SDMA_OPCODE_SRBM_WRITE, 0, 0xf000)); --- linux-3.13.0.orig/drivers/gpu/drm/radeon/cikd.h +++ linux-3.13.0/drivers/gpu/drm/radeon/cikd.h @@ -871,6 +871,15 @@ # define DC_HPD6_RX_INTERRUPT (1 << 18) #define DISP_INTERRUPT_STATUS_CONTINUE6 0x6780 +/* 0x6858, 0x7458, 0x10058, 0x10c58, 0x11858, 0x12458 */ +#define GRPH_INT_STATUS 0x6858 +# define GRPH_PFLIP_INT_OCCURRED (1 << 0) +# define GRPH_PFLIP_INT_CLEAR (1 << 8) +/* 0x685c, 0x745c, 0x1005c, 0x10c5c, 0x1185c, 0x1245c */ +#define GRPH_INT_CONTROL 0x685c +# define GRPH_PFLIP_INT_MASK (1 << 0) +# define GRPH_PFLIP_INT_TYPE (1 << 8) + #define DAC_AUTODETECT_INT_CONTROL 0x67c8 #define DC_HPD1_INT_STATUS 0x601c @@ -1725,12 +1734,12 @@ #define EOP_TC_WB_ACTION_EN (1 << 15) /* L2 */ #define EOP_TCL1_ACTION_EN (1 << 16) #define EOP_TC_ACTION_EN (1 << 17) /* L2 */ +#define EOP_TCL2_VOLATILE (1 << 24) #define EOP_CACHE_POLICY(x) ((x) << 25) /* 0 - LRU * 1 - Stream * 2 - Bypass */ -#define EOP_TCL2_VOLATILE (1 << 27) #define DATA_SEL(x) ((x) << 29) /* 0 - discard * 1 - send low 32bit data --- linux-3.13.0.orig/drivers/gpu/drm/radeon/cypress_dpm.c +++ linux-3.13.0/drivers/gpu/drm/radeon/cypress_dpm.c @@ -1551,7 +1551,7 @@ table->voltageMaskTable.highMask[RV770_SMC_VOLTAGEMASK_VDDCI] = 0; table->voltageMaskTable.lowMask[RV770_SMC_VOLTAGEMASK_VDDCI] = - cpu_to_be32(eg_pi->vddc_voltage_table.mask_low); + cpu_to_be32(eg_pi->vddci_voltage_table.mask_low); } return 0; --- linux-3.13.0.orig/drivers/gpu/drm/radeon/dce6_afmt.c +++ linux-3.13.0/drivers/gpu/drm/radeon/dce6_afmt.c @@ -155,7 +155,7 @@ struct drm_connector *connector; struct radeon_connector *radeon_connector = NULL; u32 offset, tmp; - u8 *sadb; + u8 *sadb = NULL; int sad_count; if (!dig || !dig->afmt || !dig->afmt->pin) @@ -174,9 +174,9 @@ } sad_count = drm_edid_to_speaker_allocation(radeon_connector->edid, &sadb); - if (sad_count <= 0) { - DRM_ERROR("Couldn't read Speaker Allocation Data Block: %d\n", sad_count); - return; + if (sad_count < 0) { + DRM_DEBUG("Couldn't read Speaker Allocation Data Block: %d\n", sad_count); + sad_count = 0; } /* program the speaker allocation */ @@ -283,7 +283,7 @@ bool enable) { WREG32_ENDPOINT(pin->offset, AZ_F0_CODEC_PIN_CONTROL_HOTPLUG_CONTROL, - AUDIO_ENABLED); + enable ? AUDIO_ENABLED : 0); DRM_INFO("%s audio %d support\n", enable ? "Enabling" : "Disabling", pin->id); } @@ -307,11 +307,17 @@ rdev->audio.enabled = true; - if (ASIC_IS_DCE8(rdev)) + if (ASIC_IS_DCE81(rdev)) /* KV: 4 streams, 7 endpoints */ + rdev->audio.num_pins = 7; + else if (ASIC_IS_DCE83(rdev)) /* KB: 2 streams, 3 endpoints */ + rdev->audio.num_pins = 3; + else if (ASIC_IS_DCE8(rdev)) /* BN/HW: 6 streams, 7 endpoints */ + rdev->audio.num_pins = 7; + else if (ASIC_IS_DCE61(rdev)) /* TN: 4 streams, 6 endpoints */ rdev->audio.num_pins = 6; - else if (ASIC_IS_DCE61(rdev)) - rdev->audio.num_pins = 4; - else + else if (ASIC_IS_DCE64(rdev)) /* OL: 2 streams, 2 endpoints */ + rdev->audio.num_pins = 2; + else /* SI: 6 streams, 6 endpoints */ rdev->audio.num_pins = 6; for (i = 0; i < rdev->audio.num_pins; i++) { --- linux-3.13.0.orig/drivers/gpu/drm/radeon/evergreen.c +++ linux-3.13.0/drivers/gpu/drm/radeon/evergreen.c @@ -188,7 +188,7 @@ 0x8c1c, 0xffffffff, 0x00001010, 0x28350, 0xffffffff, 0x00000000, 0xa008, 0xffffffff, 0x00010000, - 0x5cc, 0xffffffff, 0x00000001, + 0x5c4, 0xffffffff, 0x00000001, 0x9508, 0xffffffff, 0x00000002, 0x913c, 0x0000000f, 0x0000000a }; @@ -475,7 +475,7 @@ 0x8c1c, 0xffffffff, 0x00001010, 0x28350, 0xffffffff, 0x00000000, 0xa008, 0xffffffff, 0x00010000, - 0x5cc, 0xffffffff, 0x00000001, + 0x5c4, 0xffffffff, 0x00000001, 0x9508, 0xffffffff, 0x00000002 }; @@ -634,7 +634,7 @@ static const u32 supersumo_golden_registers[] = { 0x5eb4, 0xffffffff, 0x00000002, - 0x5cc, 0xffffffff, 0x00000001, + 0x5c4, 0xffffffff, 0x00000001, 0x7030, 0xffffffff, 0x00000011, 0x7c30, 0xffffffff, 0x00000011, 0x6104, 0x01000300, 0x00000000, @@ -718,7 +718,7 @@ static const u32 wrestler_golden_registers[] = { 0x5eb4, 0xffffffff, 0x00000002, - 0x5cc, 0xffffffff, 0x00000001, + 0x5c4, 0xffffffff, 0x00000001, 0x7030, 0xffffffff, 0x00000011, 0x7c30, 0xffffffff, 0x00000011, 0x6104, 0x01000300, 0x00000000, @@ -2361,6 +2361,9 @@ u32 num_heads = 0, lb_size; int i; + if (!rdev->mode_info.mode_config_initialized) + return; + radeon_update_display_priority(rdev); for (i = 0; i < rdev->num_crtc; i++) { @@ -2569,6 +2572,7 @@ WREG32(EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i], 1); tmp |= EVERGREEN_CRTC_BLANK_DATA_EN; WREG32(EVERGREEN_CRTC_BLANK_CONTROL + crtc_offsets[i], tmp); + WREG32(EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i], 0); } } else { tmp = RREG32(EVERGREEN_CRTC_CONTROL + crtc_offsets[i]); @@ -4298,8 +4302,8 @@ WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, 0); } - /* only one DAC on DCE6 */ - if (!ASIC_IS_DCE6(rdev)) + /* only one DAC on DCE5 */ + if (!ASIC_IS_DCE5(rdev)) WREG32(DACA_AUTODETECT_INT_CONTROL, 0); WREG32(DACB_AUTODETECT_INT_CONTROL, 0); @@ -4325,7 +4329,6 @@ u32 crtc1 = 0, crtc2 = 0, crtc3 = 0, crtc4 = 0, crtc5 = 0, crtc6 = 0; u32 hpd1, hpd2, hpd3, hpd4, hpd5, hpd6; u32 grbm_int_cntl = 0; - u32 grph1 = 0, grph2 = 0, grph3 = 0, grph4 = 0, grph5 = 0, grph6 = 0; u32 afmt1 = 0, afmt2 = 0, afmt3 = 0, afmt4 = 0, afmt5 = 0, afmt6 = 0; u32 dma_cntl, dma_cntl1 = 0; u32 thermal_int = 0; @@ -4508,15 +4511,21 @@ WREG32(INT_MASK + EVERGREEN_CRTC5_REGISTER_OFFSET, crtc6); } - WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET, grph1); - WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET, grph2); + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET, + GRPH_PFLIP_INT_MASK); + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET, + GRPH_PFLIP_INT_MASK); if (rdev->num_crtc >= 4) { - WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET, grph3); - WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET, grph4); + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET, + GRPH_PFLIP_INT_MASK); + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET, + GRPH_PFLIP_INT_MASK); } if (rdev->num_crtc >= 6) { - WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET, grph5); - WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, grph6); + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET, + GRPH_PFLIP_INT_MASK); + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, + GRPH_PFLIP_INT_MASK); } WREG32(DC_HPD1_INT_CONTROL, hpd1); @@ -4708,6 +4717,7 @@ tmp = RREG32(IH_RB_CNTL); tmp |= IH_WPTR_OVERFLOW_CLEAR; WREG32(IH_RB_CNTL, tmp); + wptr &= ~RB_OVERFLOW; } return (wptr & rdev->ih.ptr_mask); } @@ -4905,6 +4915,15 @@ break; } break; + case 8: /* D1 page flip */ + case 10: /* D2 page flip */ + case 12: /* D3 page flip */ + case 14: /* D4 page flip */ + case 16: /* D5 page flip */ + case 18: /* D6 page flip */ + DRM_DEBUG("IH: D%d flip\n", ((src_id - 8) >> 1) + 1); + radeon_crtc_handle_flip(rdev, (src_id - 8) >> 1); + break; case 42: /* HPD hotplug */ switch (src_data) { case 0: @@ -5110,26 +5129,11 @@ evergreen_mc_program(rdev); if (ASIC_IS_DCE5(rdev)) { - if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw || !rdev->mc_fw) { - r = ni_init_microcode(rdev); - if (r) { - DRM_ERROR("Failed to load firmware!\n"); - return r; - } - } r = ni_mc_load_microcode(rdev); if (r) { DRM_ERROR("Failed to load MC firmware!\n"); return r; } - } else { - if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) { - r = r600_init_microcode(rdev); - if (r) { - DRM_ERROR("Failed to load firmware!\n"); - return r; - } - } } if (rdev->flags & RADEON_IS_AGP) { @@ -5357,6 +5361,24 @@ if (r) return r; + if (ASIC_IS_DCE5(rdev)) { + if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw || !rdev->mc_fw) { + r = ni_init_microcode(rdev); + if (r) { + DRM_ERROR("Failed to load firmware!\n"); + return r; + } + } + } else { + if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) { + r = r600_init_microcode(rdev); + if (r) { + DRM_ERROR("Failed to load firmware!\n"); + return r; + } + } + } + rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ring_obj = NULL; r600_ring_init(rdev, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX], 1024 * 1024); @@ -5418,9 +5440,9 @@ radeon_wb_fini(rdev); radeon_ib_pool_fini(rdev); radeon_irq_kms_fini(rdev); - evergreen_pcie_gart_fini(rdev); uvd_v1_0_fini(rdev); radeon_uvd_fini(rdev); + evergreen_pcie_gart_fini(rdev); r600_vram_scratch_fini(rdev); radeon_gem_fini(rdev); radeon_fence_driver_fini(rdev); --- linux-3.13.0.orig/drivers/gpu/drm/radeon/evergreen_cs.c +++ linux-3.13.0/drivers/gpu/drm/radeon/evergreen_cs.c @@ -967,7 +967,10 @@ if (track->cb_dirty) { tmp = track->cb_target_mask; for (i = 0; i < 8; i++) { - if ((tmp >> (i * 4)) & 0xF) { + u32 format = G_028C70_FORMAT(track->cb_color_info[i]); + + if (format != V_028C70_COLOR_INVALID && + (tmp >> (i * 4)) & 0xF) { /* at least one component is enabled */ if (track->cb_color_bo[i] == NULL) { dev_warn(p->dev, "%s:%d mask 0x%08X | 0x%08X no cb for %d\n", --- linux-3.13.0.orig/drivers/gpu/drm/radeon/evergreen_hdmi.c +++ linux-3.13.0/drivers/gpu/drm/radeon/evergreen_hdmi.c @@ -102,7 +102,7 @@ struct drm_connector *connector; struct radeon_connector *radeon_connector = NULL; u32 tmp; - u8 *sadb; + u8 *sadb = NULL; int sad_count; list_for_each_entry(connector, &encoder->dev->mode_config.connector_list, head) { @@ -118,9 +118,9 @@ } sad_count = drm_edid_to_speaker_allocation(radeon_connector->edid, &sadb); - if (sad_count <= 0) { - DRM_ERROR("Couldn't read Speaker Allocation Data Block: %d\n", sad_count); - return; + if (sad_count < 0) { + DRM_DEBUG("Couldn't read Speaker Allocation Data Block: %d\n", sad_count); + sad_count = 0; } /* program the speaker allocation */ --- linux-3.13.0.orig/drivers/gpu/drm/radeon/evergreen_smc.h +++ linux-3.13.0/drivers/gpu/drm/radeon/evergreen_smc.h @@ -57,7 +57,7 @@ #define EVERGREEN_SMC_FIRMWARE_HEADER_LOCATION 0x100 -#define EVERGREEN_SMC_FIRMWARE_HEADER_softRegisters 0x0 +#define EVERGREEN_SMC_FIRMWARE_HEADER_softRegisters 0x8 #define EVERGREEN_SMC_FIRMWARE_HEADER_stateTable 0xC #define EVERGREEN_SMC_FIRMWARE_HEADER_mcRegisterTable 0x20 --- linux-3.13.0.orig/drivers/gpu/drm/radeon/kv_dpm.c +++ linux-3.13.0/drivers/gpu/drm/radeon/kv_dpm.c @@ -2620,7 +2620,11 @@ if (rdev->family == CHIP_KABINI) pi->high_voltage_t = 4001; - pi->enable_nb_dpm = true; + /* Enabling nb dpm on an asrock system prevents dpm from working */ + if (rdev->pdev->subsystem_vendor == 0x1849) + pi->enable_nb_dpm = false; + else + pi->enable_nb_dpm = true; pi->caps_power_containment = true; pi->caps_cac = true; @@ -2635,7 +2639,19 @@ pi->caps_sclk_ds = true; pi->enable_auto_thermal_throttling = true; pi->disable_nb_ps3_in_battery = false; - pi->bapm_enable = false; + if (radeon_bapm == -1) { + /* There are stability issues reported on with + * bapm enabled on an asrock system. + */ + if (rdev->pdev->subsystem_vendor == 0x1849) + pi->bapm_enable = false; + else + pi->bapm_enable = true; + } else if (radeon_bapm == 0) { + pi->bapm_enable = false; + } else { + pi->bapm_enable = true; + } pi->voltage_drop_t = 0; pi->caps_sclk_throttle_low_notification = false; pi->caps_fps = false; /* true? */ --- linux-3.13.0.orig/drivers/gpu/drm/radeon/ni.c +++ linux-3.13.0/drivers/gpu/drm/radeon/ni.c @@ -1330,13 +1330,12 @@ { struct radeon_ring *ring = &rdev->ring[fence->ring]; u64 addr = rdev->fence_drv[fence->ring].gpu_addr; + u32 cp_coher_cntl = PACKET3_FULL_CACHE_ENA | PACKET3_TC_ACTION_ENA | + PACKET3_SH_ACTION_ENA; /* flush read cache over gart for this vmid */ - radeon_ring_write(ring, PACKET3(PACKET3_SET_CONFIG_REG, 1)); - radeon_ring_write(ring, (CP_COHER_CNTL2 - PACKET3_SET_CONFIG_REG_START) >> 2); - radeon_ring_write(ring, 0); radeon_ring_write(ring, PACKET3(PACKET3_SURFACE_SYNC, 3)); - radeon_ring_write(ring, PACKET3_TC_ACTION_ENA | PACKET3_SH_ACTION_ENA); + radeon_ring_write(ring, PACKET3_ENGINE_ME | cp_coher_cntl); radeon_ring_write(ring, 0xFFFFFFFF); radeon_ring_write(ring, 0); radeon_ring_write(ring, 10); /* poll interval */ @@ -1352,6 +1351,8 @@ void cayman_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib) { struct radeon_ring *ring = &rdev->ring[ib->ring]; + u32 cp_coher_cntl = PACKET3_FULL_CACHE_ENA | PACKET3_TC_ACTION_ENA | + PACKET3_SH_ACTION_ENA; /* set to DX10/11 mode */ radeon_ring_write(ring, PACKET3(PACKET3_MODE_CONTROL, 0)); @@ -1376,14 +1377,11 @@ (ib->vm ? (ib->vm->id << 24) : 0)); /* flush read cache over gart for this vmid */ - radeon_ring_write(ring, PACKET3(PACKET3_SET_CONFIG_REG, 1)); - radeon_ring_write(ring, (CP_COHER_CNTL2 - PACKET3_SET_CONFIG_REG_START) >> 2); - radeon_ring_write(ring, ib->vm ? ib->vm->id : 0); radeon_ring_write(ring, PACKET3(PACKET3_SURFACE_SYNC, 3)); - radeon_ring_write(ring, PACKET3_TC_ACTION_ENA | PACKET3_SH_ACTION_ENA); + radeon_ring_write(ring, PACKET3_ENGINE_ME | cp_coher_cntl); radeon_ring_write(ring, 0xFFFFFFFF); radeon_ring_write(ring, 0); - radeon_ring_write(ring, 10); /* poll interval */ + radeon_ring_write(ring, ((ib->vm ? ib->vm->id : 0) << 24) | 10); /* poll interval */ } static void cayman_cp_enable(struct radeon_device *rdev, bool enable) @@ -1878,23 +1876,7 @@ evergreen_mc_program(rdev); - if (rdev->flags & RADEON_IS_IGP) { - if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) { - r = ni_init_microcode(rdev); - if (r) { - DRM_ERROR("Failed to load firmware!\n"); - return r; - } - } - } else { - if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw || !rdev->mc_fw) { - r = ni_init_microcode(rdev); - if (r) { - DRM_ERROR("Failed to load firmware!\n"); - return r; - } - } - + if (!(rdev->flags & RADEON_IS_IGP)) { r = ni_mc_load_microcode(rdev); if (r) { DRM_ERROR("Failed to load MC firmware!\n"); @@ -2145,6 +2127,24 @@ if (r) return r; + if (rdev->flags & RADEON_IS_IGP) { + if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) { + r = ni_init_microcode(rdev); + if (r) { + DRM_ERROR("Failed to load firmware!\n"); + return r; + } + } + } else { + if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw || !rdev->mc_fw) { + r = ni_init_microcode(rdev); + if (r) { + DRM_ERROR("Failed to load firmware!\n"); + return r; + } + } + } + ring->ring_obj = NULL; r600_ring_init(rdev, ring, 1024 * 1024); --- linux-3.13.0.orig/drivers/gpu/drm/radeon/ni_dma.c +++ linux-3.13.0/drivers/gpu/drm/radeon/ni_dma.c @@ -120,12 +120,6 @@ u32 reg_offset, wb_offset; int i, r; - /* Reset dma */ - WREG32(SRBM_SOFT_RESET, SOFT_RESET_DMA | SOFT_RESET_DMA1); - RREG32(SRBM_SOFT_RESET); - udelay(50); - WREG32(SRBM_SOFT_RESET, 0); - for (i = 0; i < 2; i++) { if (i == 0) { ring = &rdev->ring[R600_RING_TYPE_DMA_INDEX]; --- linux-3.13.0.orig/drivers/gpu/drm/radeon/ni_dpm.c +++ linux-3.13.0/drivers/gpu/drm/radeon/ni_dpm.c @@ -1313,7 +1313,7 @@ table->voltageMaskTable.highMask[NISLANDS_SMC_VOLTAGEMASK_VDDCI] = 0; table->voltageMaskTable.lowMask[NISLANDS_SMC_VOLTAGEMASK_VDDCI] = - cpu_to_be32(eg_pi->vddc_voltage_table.mask_low); + cpu_to_be32(eg_pi->vddci_voltage_table.mask_low); } } @@ -2586,7 +2586,7 @@ if (NISLANDS_DPM2_SQ_RAMP_STI_SIZE > (STI_SIZE_MASK >> STI_SIZE_SHIFT)) enable_sq_ramping = false; - if (NISLANDS_DPM2_SQ_RAMP_LTI_RATIO <= (LTI_RATIO_MASK >> LTI_RATIO_SHIFT)) + if (NISLANDS_DPM2_SQ_RAMP_LTI_RATIO > (LTI_RATIO_MASK >> LTI_RATIO_SHIFT)) enable_sq_ramping = false; for (i = 0; i < state->performance_level_count; i++) { --- linux-3.13.0.orig/drivers/gpu/drm/radeon/nid.h +++ linux-3.13.0/drivers/gpu/drm/radeon/nid.h @@ -1154,6 +1154,7 @@ # define PACKET3_DB_ACTION_ENA (1 << 26) # define PACKET3_SH_ACTION_ENA (1 << 27) # define PACKET3_SX_ACTION_ENA (1 << 28) +# define PACKET3_ENGINE_ME (1 << 31) #define PACKET3_ME_INITIALIZE 0x44 #define PACKET3_ME_INITIALIZE_DEVICE_ID(x) ((x) << 16) #define PACKET3_COND_WRITE 0x45 --- linux-3.13.0.orig/drivers/gpu/drm/radeon/r100.c +++ linux-3.13.0/drivers/gpu/drm/radeon/r100.c @@ -3190,6 +3190,9 @@ uint32_t pixel_bytes1 = 0; uint32_t pixel_bytes2 = 0; + if (!rdev->mode_info.mode_config_initialized) + return; + radeon_update_display_priority(rdev); if (rdev->mode_info.crtcs[0]->base.enabled) { --- linux-3.13.0.orig/drivers/gpu/drm/radeon/r600.c +++ linux-3.13.0/drivers/gpu/drm/radeon/r600.c @@ -2607,14 +2607,17 @@ struct radeon_fence *fence) { struct radeon_ring *ring = &rdev->ring[fence->ring]; + u32 cp_coher_cntl = PACKET3_TC_ACTION_ENA | PACKET3_VC_ACTION_ENA | + PACKET3_SH_ACTION_ENA; + + if (rdev->family >= CHIP_RV770) + cp_coher_cntl |= PACKET3_FULL_CACHE_ENA; if (rdev->wb.use_event) { u64 addr = rdev->fence_drv[fence->ring].gpu_addr; /* flush read cache over gart */ radeon_ring_write(ring, PACKET3(PACKET3_SURFACE_SYNC, 3)); - radeon_ring_write(ring, PACKET3_TC_ACTION_ENA | - PACKET3_VC_ACTION_ENA | - PACKET3_SH_ACTION_ENA); + radeon_ring_write(ring, cp_coher_cntl); radeon_ring_write(ring, 0xFFFFFFFF); radeon_ring_write(ring, 0); radeon_ring_write(ring, 10); /* poll interval */ @@ -2628,9 +2631,7 @@ } else { /* flush read cache over gart */ radeon_ring_write(ring, PACKET3(PACKET3_SURFACE_SYNC, 3)); - radeon_ring_write(ring, PACKET3_TC_ACTION_ENA | - PACKET3_VC_ACTION_ENA | - PACKET3_SH_ACTION_ENA); + radeon_ring_write(ring, cp_coher_cntl); radeon_ring_write(ring, 0xFFFFFFFF); radeon_ring_write(ring, 0); radeon_ring_write(ring, 10); /* poll interval */ @@ -2775,14 +2776,6 @@ r600_mc_program(rdev); - if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) { - r = r600_init_microcode(rdev); - if (r) { - DRM_ERROR("Failed to load firmware!\n"); - return r; - } - } - if (rdev->flags & RADEON_IS_AGP) { r600_agp_enable(rdev); } else { @@ -2970,6 +2963,14 @@ if (r) return r; + if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) { + r = r600_init_microcode(rdev); + if (r) { + DRM_ERROR("Failed to load firmware!\n"); + return r; + } + } + rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ring_obj = NULL; r600_ring_init(rdev, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX], 1024 * 1024); @@ -3420,7 +3421,6 @@ u32 hpd1, hpd2, hpd3, hpd4 = 0, hpd5 = 0, hpd6 = 0; u32 grbm_int_cntl = 0; u32 hdmi0, hdmi1; - u32 d1grph = 0, d2grph = 0; u32 dma_cntl; u32 thermal_int = 0; @@ -3529,8 +3529,8 @@ WREG32(CP_INT_CNTL, cp_int_cntl); WREG32(DMA_CNTL, dma_cntl); WREG32(DxMODE_INT_MASK, mode_int); - WREG32(D1GRPH_INTERRUPT_CONTROL, d1grph); - WREG32(D2GRPH_INTERRUPT_CONTROL, d2grph); + WREG32(D1GRPH_INTERRUPT_CONTROL, DxGRPH_PFLIP_INT_MASK); + WREG32(D2GRPH_INTERRUPT_CONTROL, DxGRPH_PFLIP_INT_MASK); WREG32(GRBM_INT_CNTL, grbm_int_cntl); if (ASIC_IS_DCE3(rdev)) { WREG32(DC_HPD1_INT_CONTROL, hpd1); @@ -3707,6 +3707,7 @@ tmp = RREG32(IH_RB_CNTL); tmp |= IH_WPTR_OVERFLOW_CLEAR; WREG32(IH_RB_CNTL, tmp); + wptr &= ~RB_OVERFLOW; } return (wptr & rdev->ih.ptr_mask); } @@ -3833,6 +3834,14 @@ break; } break; + case 9: /* D1 pflip */ + DRM_DEBUG("IH: D1 flip\n"); + radeon_crtc_handle_flip(rdev, 0); + break; + case 11: /* D2 pflip */ + DRM_DEBUG("IH: D2 flip\n"); + radeon_crtc_handle_flip(rdev, 1); + break; case 19: /* HPD/DAC hotplug */ switch (src_data) { case 0: @@ -3903,6 +3912,10 @@ break; } break; + case 124: /* UVD */ + DRM_DEBUG("IH: UVD int: 0x%08x\n", src_data); + radeon_fence_process(rdev, R600_RING_TYPE_UVD_INDEX); + break; case 176: /* CP_INT in ring buffer */ case 177: /* CP_INT in IB1 */ case 178: /* CP_INT in IB2 */ --- linux-3.13.0.orig/drivers/gpu/drm/radeon/r600_cs.c +++ linux-3.13.0/drivers/gpu/drm/radeon/r600_cs.c @@ -749,7 +749,10 @@ } for (i = 0; i < 8; i++) { - if ((tmp >> (i * 4)) & 0xF) { + u32 format = G_0280A0_FORMAT(track->cb_color_info[i]); + + if (format != V_0280A0_COLOR_INVALID && + (tmp >> (i * 4)) & 0xF) { /* at least one component is enabled */ if (track->cb_color_bo[i] == NULL) { dev_warn(p->dev, "%s:%d mask 0x%08X | 0x%08X no cb for %d\n", --- linux-3.13.0.orig/drivers/gpu/drm/radeon/r600_dma.c +++ linux-3.13.0/drivers/gpu/drm/radeon/r600_dma.c @@ -116,15 +116,6 @@ u32 rb_bufsz; int r; - /* Reset dma */ - if (rdev->family >= CHIP_RV770) - WREG32(SRBM_SOFT_RESET, RV770_SOFT_RESET_DMA); - else - WREG32(SRBM_SOFT_RESET, SOFT_RESET_DMA); - RREG32(SRBM_SOFT_RESET); - udelay(50); - WREG32(SRBM_SOFT_RESET, 0); - WREG32(DMA_SEM_INCOMPLETE_TIMER_CNTL, 0); WREG32(DMA_SEM_WAIT_FAIL_TIMER_CNTL, 0); @@ -236,16 +227,19 @@ { unsigned i; int r; - void __iomem *ptr = (void *)rdev->vram_scratch.ptr; + unsigned index; u32 tmp; + u64 gpu_addr; - if (!ptr) { - DRM_ERROR("invalid vram scratch pointer\n"); - return -EINVAL; - } + if (ring->idx == R600_RING_TYPE_DMA_INDEX) + index = R600_WB_DMA_RING_TEST_OFFSET; + else + index = CAYMAN_WB_DMA1_RING_TEST_OFFSET; + + gpu_addr = rdev->wb.gpu_addr + index; tmp = 0xCAFEDEAD; - writel(tmp, ptr); + rdev->wb.wb[index/4] = cpu_to_le32(tmp); r = radeon_ring_lock(rdev, ring, 4); if (r) { @@ -253,13 +247,13 @@ return r; } radeon_ring_write(ring, DMA_PACKET(DMA_PACKET_WRITE, 0, 0, 1)); - radeon_ring_write(ring, rdev->vram_scratch.gpu_addr & 0xfffffffc); - radeon_ring_write(ring, upper_32_bits(rdev->vram_scratch.gpu_addr) & 0xff); + radeon_ring_write(ring, lower_32_bits(gpu_addr)); + radeon_ring_write(ring, upper_32_bits(gpu_addr) & 0xff); radeon_ring_write(ring, 0xDEADBEEF); radeon_ring_unlock_commit(rdev, ring); for (i = 0; i < rdev->usec_timeout; i++) { - tmp = readl(ptr); + tmp = le32_to_cpu(rdev->wb.wb[index/4]); if (tmp == 0xDEADBEEF) break; DRM_UDELAY(1); @@ -339,17 +333,17 @@ { struct radeon_ib ib; unsigned i; + unsigned index; int r; - void __iomem *ptr = (void *)rdev->vram_scratch.ptr; u32 tmp = 0; + u64 gpu_addr; - if (!ptr) { - DRM_ERROR("invalid vram scratch pointer\n"); - return -EINVAL; - } + if (ring->idx == R600_RING_TYPE_DMA_INDEX) + index = R600_WB_DMA_RING_TEST_OFFSET; + else + index = CAYMAN_WB_DMA1_RING_TEST_OFFSET; - tmp = 0xCAFEDEAD; - writel(tmp, ptr); + gpu_addr = rdev->wb.gpu_addr + index; r = radeon_ib_get(rdev, ring->idx, &ib, NULL, 256); if (r) { @@ -358,8 +352,8 @@ } ib.ptr[0] = DMA_PACKET(DMA_PACKET_WRITE, 0, 0, 1); - ib.ptr[1] = rdev->vram_scratch.gpu_addr & 0xfffffffc; - ib.ptr[2] = upper_32_bits(rdev->vram_scratch.gpu_addr) & 0xff; + ib.ptr[1] = lower_32_bits(gpu_addr); + ib.ptr[2] = upper_32_bits(gpu_addr) & 0xff; ib.ptr[3] = 0xDEADBEEF; ib.length_dw = 4; @@ -375,7 +369,7 @@ return r; } for (i = 0; i < rdev->usec_timeout; i++) { - tmp = readl(ptr); + tmp = le32_to_cpu(rdev->wb.wb[index/4]); if (tmp == 0xDEADBEEF) break; DRM_UDELAY(1); --- linux-3.13.0.orig/drivers/gpu/drm/radeon/r600_dpm.c +++ linux-3.13.0/drivers/gpu/drm/radeon/r600_dpm.c @@ -158,16 +158,18 @@ u32 line_time_us, vblank_lines; u32 vblank_time_us = 0xffffffff; /* if the displays are off, vblank time is max */ - list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { - radeon_crtc = to_radeon_crtc(crtc); - if (crtc->enabled && radeon_crtc->enabled && radeon_crtc->hw_mode.clock) { - line_time_us = (radeon_crtc->hw_mode.crtc_htotal * 1000) / - radeon_crtc->hw_mode.clock; - vblank_lines = radeon_crtc->hw_mode.crtc_vblank_end - - radeon_crtc->hw_mode.crtc_vdisplay + - (radeon_crtc->v_border * 2); - vblank_time_us = vblank_lines * line_time_us; - break; + if (rdev->num_crtc && rdev->mode_info.mode_config_initialized) { + list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { + radeon_crtc = to_radeon_crtc(crtc); + if (crtc->enabled && radeon_crtc->enabled && radeon_crtc->hw_mode.clock) { + line_time_us = (radeon_crtc->hw_mode.crtc_htotal * 1000) / + radeon_crtc->hw_mode.clock; + vblank_lines = radeon_crtc->hw_mode.crtc_vblank_end - + radeon_crtc->hw_mode.crtc_vdisplay + + (radeon_crtc->v_border * 2); + vblank_time_us = vblank_lines * line_time_us; + break; + } } } @@ -181,14 +183,15 @@ struct radeon_crtc *radeon_crtc; u32 vrefresh = 0; - list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { - radeon_crtc = to_radeon_crtc(crtc); - if (crtc->enabled && radeon_crtc->enabled && radeon_crtc->hw_mode.clock) { - vrefresh = radeon_crtc->hw_mode.vrefresh; - break; + if (rdev->num_crtc && rdev->mode_info.mode_config_initialized) { + list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { + radeon_crtc = to_radeon_crtc(crtc); + if (crtc->enabled && radeon_crtc->enabled && radeon_crtc->hw_mode.clock) { + vrefresh = radeon_crtc->hw_mode.vrefresh; + break; + } } } - return vrefresh; } @@ -1190,7 +1193,7 @@ (mode_info->atom_context->bios + data_offset + le16_to_cpu(ext_hdr->usPowerTuneTableOffset)); rdev->pm.dpm.dyn_state.cac_tdp_table->maximum_power_delivery_limit = - ppt->usMaximumPowerDeliveryLimit; + le16_to_cpu(ppt->usMaximumPowerDeliveryLimit); pt = &ppt->power_tune_table; } else { ATOM_PPLIB_POWERTUNE_Table *ppt = (ATOM_PPLIB_POWERTUNE_Table *) --- linux-3.13.0.orig/drivers/gpu/drm/radeon/r600_hdmi.c +++ linux-3.13.0/drivers/gpu/drm/radeon/r600_hdmi.c @@ -326,7 +326,7 @@ struct drm_connector *connector; struct radeon_connector *radeon_connector = NULL; u32 tmp; - u8 *sadb; + u8 *sadb = NULL; int sad_count; /* XXX: setting this register causes hangs on some asics */ --- linux-3.13.0.orig/drivers/gpu/drm/radeon/r600d.h +++ linux-3.13.0/drivers/gpu/drm/radeon/r600d.h @@ -1575,6 +1575,7 @@ # define PACKET3_CP_DMA_CMD_DAIC (1 << 29) #define PACKET3_SURFACE_SYNC 0x43 # define PACKET3_CB0_DEST_BASE_ENA (1 << 6) +# define PACKET3_FULL_CACHE_ENA (1 << 20) /* r7xx+ only */ # define PACKET3_TC_ACTION_ENA (1 << 23) # define PACKET3_VC_ACTION_ENA (1 << 24) # define PACKET3_CB_ACTION_ENA (1 << 25) --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon.h +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon.h @@ -99,6 +99,7 @@ extern int radeon_dpm; extern int radeon_aspm; extern int radeon_runtime_pm; +extern int radeon_bapm; /* * Copy from radeon_drv.h so we don't have to include both and have conflicting @@ -134,6 +135,9 @@ /* R600+ */ #define R600_RING_TYPE_UVD_INDEX 5 +/* number of hw syncs before falling back on blocking */ +#define RADEON_NUM_SYNCS 4 + /* hardcode those limit for now */ #define RADEON_VA_IB_OFFSET (1 << 20) #define RADEON_VA_RESERVED_SIZE (8 << 20) @@ -286,6 +290,9 @@ u16 *vddc, u16 *vddci, u16 virtual_voltage_id, u16 vbios_voltage_id); +int radeon_atom_get_voltage_evv(struct radeon_device *rdev, + u16 virtual_voltage_id, + u16 *voltage); int radeon_atom_round_to_true_voltage(struct radeon_device *rdev, u8 voltage_type, u16 nominal_voltage, @@ -544,7 +551,6 @@ /* * Semaphores. */ -/* everything here is constant */ struct radeon_semaphore { struct radeon_sa_bo *sa_bo; signed waiters; @@ -721,6 +727,12 @@ u32 disp_int_cont4; u32 disp_int_cont5; u32 disp_int_cont6; + u32 d1grph_int; + u32 d2grph_int; + u32 d3grph_int; + u32 d4grph_int; + u32 d5grph_int; + u32 d6grph_int; }; union radeon_irq_stat_regs { @@ -730,7 +742,7 @@ struct cik_irq_stat_regs cik; }; -#define RADEON_MAX_HPD_PINS 6 +#define RADEON_MAX_HPD_PINS 7 #define RADEON_MAX_CRTCS 6 #define RADEON_MAX_AFMT_BLOCKS 7 @@ -1069,6 +1081,8 @@ #define R600_WB_EVENT_OFFSET 3072 #define CIK_WB_CP1_WPTR_OFFSET 3328 #define CIK_WB_CP2_WPTR_OFFSET 3584 +#define R600_WB_DMA_RING_TEST_OFFSET 3588 +#define CAYMAN_WB_DMA1_RING_TEST_OFFSET 3592 /** * struct radeon_pm - power management datas @@ -2229,6 +2243,7 @@ bool have_disp_power_ref; }; +bool radeon_is_px(struct drm_device *dev); int radeon_device_init(struct radeon_device *rdev, struct drm_device *ddev, struct pci_dev *pdev, @@ -2539,6 +2554,9 @@ #define ASIC_IS_DCE64(rdev) ((rdev->family == CHIP_OLAND)) #define ASIC_IS_NODCE(rdev) ((rdev->family == CHIP_HAINAN)) #define ASIC_IS_DCE8(rdev) ((rdev->family >= CHIP_BONAIRE)) +#define ASIC_IS_DCE81(rdev) ((rdev->family == CHIP_KAVERI)) +#define ASIC_IS_DCE82(rdev) ((rdev->family == CHIP_BONAIRE)) +#define ASIC_IS_DCE83(rdev) ((rdev->family == CHIP_KABINI)) #define ASIC_IS_LOMBOK(rdev) ((rdev->ddev->pdev->device == 0x6849) || \ (rdev->ddev->pdev->device == 0x6850) || \ --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_asic.c +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_asic.c @@ -2025,8 +2025,8 @@ .blit_ring_index = RADEON_RING_TYPE_GFX_INDEX, .dma = &cik_copy_dma, .dma_ring_index = R600_RING_TYPE_DMA_INDEX, - .copy = &cik_copy_dma, - .copy_ring_index = R600_RING_TYPE_DMA_INDEX, + .copy = &cik_copy_cpdma, + .copy_ring_index = RADEON_RING_TYPE_GFX_INDEX, }, .surface = { .set_reg = r600_set_surface_reg, --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_atombios.c +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_atombios.c @@ -464,6 +464,13 @@ } } + /* Fujitsu D3003-S2 board lists DVI-I as DVI-I and VGA */ + if ((dev->pdev->device == 0x9805) && + (dev->pdev->subsystem_vendor == 0x1734) && + (dev->pdev->subsystem_device == 0x11bd)) { + if (*connector_type == DRM_MODE_CONNECTOR_VGA) + return false; + } return true; } @@ -1963,7 +1970,7 @@ "adm1032", "adm1030", "max6649", - "lm64", + "lm63", /* lm64 */ "f75375", "asc7xxx", }; @@ -1974,7 +1981,7 @@ "adm1032", "adm1030", "max6649", - "lm64", + "lm63", /* lm64 */ "f75375", "RV6xx", "RV770", @@ -2281,19 +2288,31 @@ (controller->ucFanParameters & ATOM_PP_FANPARAMETERS_NOFAN) ? "without" : "with"); rdev->pm.int_thermal_type = THERMAL_TYPE_KV; - } else if ((controller->ucType == - ATOM_PP_THERMALCONTROLLER_EXTERNAL_GPIO) || - (controller->ucType == - ATOM_PP_THERMALCONTROLLER_ADT7473_WITH_INTERNAL) || - (controller->ucType == - ATOM_PP_THERMALCONTROLLER_EMC2103_WITH_INTERNAL)) { - DRM_INFO("Special thermal controller config\n"); + } else if (controller->ucType == + ATOM_PP_THERMALCONTROLLER_EXTERNAL_GPIO) { + DRM_INFO("External GPIO thermal controller %s fan control\n", + (controller->ucFanParameters & + ATOM_PP_FANPARAMETERS_NOFAN) ? "without" : "with"); + rdev->pm.int_thermal_type = THERMAL_TYPE_EXTERNAL_GPIO; + } else if (controller->ucType == + ATOM_PP_THERMALCONTROLLER_ADT7473_WITH_INTERNAL) { + DRM_INFO("ADT7473 with internal thermal controller %s fan control\n", + (controller->ucFanParameters & + ATOM_PP_FANPARAMETERS_NOFAN) ? "without" : "with"); + rdev->pm.int_thermal_type = THERMAL_TYPE_ADT7473_WITH_INTERNAL; + } else if (controller->ucType == + ATOM_PP_THERMALCONTROLLER_EMC2103_WITH_INTERNAL) { + DRM_INFO("EMC2103 with internal thermal controller %s fan control\n", + (controller->ucFanParameters & + ATOM_PP_FANPARAMETERS_NOFAN) ? "without" : "with"); + rdev->pm.int_thermal_type = THERMAL_TYPE_EMC2103_WITH_INTERNAL; } else if (controller->ucType < ARRAY_SIZE(pp_lib_thermal_controller_names)) { DRM_INFO("Possible %s thermal controller at 0x%02x %s fan control\n", pp_lib_thermal_controller_names[controller->ucType], controller->ucI2cAddress >> 1, (controller->ucFanParameters & ATOM_PP_FANPARAMETERS_NOFAN) ? "without" : "with"); + rdev->pm.int_thermal_type = THERMAL_TYPE_EXTERNAL; i2c_bus = radeon_lookup_i2c_gpio(rdev, controller->ucI2cLine); rdev->pm.i2c_bus = radeon_i2c_lookup(rdev, &i2c_bus); if (rdev->pm.i2c_bus) { @@ -3236,6 +3255,41 @@ return 0; } +union get_voltage_info { + struct _GET_VOLTAGE_INFO_INPUT_PARAMETER_V1_2 in; + struct _GET_EVV_VOLTAGE_INFO_OUTPUT_PARAMETER_V1_2 evv_out; +}; + +int radeon_atom_get_voltage_evv(struct radeon_device *rdev, + u16 virtual_voltage_id, + u16 *voltage) +{ + int index = GetIndexIntoMasterTable(COMMAND, GetVoltageInfo); + u32 entry_id; + u32 count = rdev->pm.dpm.dyn_state.vddc_dependency_on_sclk.count; + union get_voltage_info args; + + for (entry_id = 0; entry_id < count; entry_id++) { + if (rdev->pm.dpm.dyn_state.vddc_dependency_on_sclk.entries[entry_id].v == + virtual_voltage_id) + break; + } + + if (entry_id >= count) + return -EINVAL; + + args.in.ucVoltageType = VOLTAGE_TYPE_VDDC; + args.in.ucVoltageMode = ATOM_GET_VOLTAGE_EVV_VOLTAGE; + args.in.ulSCLKFreq = + cpu_to_le32(rdev->pm.dpm.dyn_state.vddc_dependency_on_sclk.entries[entry_id].clk); + + atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); + + *voltage = le16_to_cpu(args.evv_out.usVoltageLevel); + + return 0; +} + int radeon_atom_get_voltage_gpio_settings(struct radeon_device *rdev, u16 voltage_level, u8 voltage_type, u32 *gpio_value, u32 *gpio_mask) @@ -3944,6 +3998,10 @@ /* tell the bios not to handle mode switching */ bios_6_scratch |= ATOM_S6_ACC_BLOCK_DISPLAY_SWITCH; + /* clear the vbios dpms state */ + if (ASIC_IS_DCE4(rdev)) + bios_2_scratch &= ~ATOM_S2_DEVICE_DPMS_STATE; + if (rdev->family >= CHIP_R600) { WREG32(R600_BIOS_2_SCRATCH, bios_2_scratch); WREG32(R600_BIOS_6_SCRATCH, bios_6_scratch); --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_atpx_handler.c +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_atpx_handler.c @@ -59,7 +59,7 @@ u16 mux; } __packed; -bool radeon_is_px(void) { +bool radeon_has_atpx(void) { return radeon_atpx_priv.atpx_detected; } @@ -219,7 +219,8 @@ memcpy(&output, info->buffer.pointer, size); /* TODO: check version? */ - printk("ATPX version %u\n", output.version); + printk("ATPX version %u, functions 0x%08x\n", + output.version, output.function_bits); radeon_atpx_parse_functions(&atpx->functions, output.function_bits); @@ -525,6 +526,13 @@ vga_count++; has_atpx |= (radeon_atpx_pci_probe_handle(pdev) == true); + } + + /* some newer PX laptops mark the dGPU as a non-VGA display device */ + while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_OTHER << 8, pdev)) != NULL) { + vga_count++; + + has_atpx |= (radeon_atpx_pci_probe_handle(pdev) == true); } if (has_atpx && vga_count == 2) { --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_bios.c +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_bios.c @@ -196,6 +196,20 @@ } } + if (!found) { + while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_OTHER << 8, pdev)) != NULL) { + dhandle = ACPI_HANDLE(&pdev->dev); + if (!dhandle) + continue; + + status = acpi_get_handle(dhandle, "ATRM", &atrm_handle); + if (!ACPI_FAILURE(status)) { + found = true; + break; + } + } + } + if (!found) return false; --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_connectors.c +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_connectors.c @@ -1411,7 +1411,7 @@ struct radeon_device *rdev = dev->dev_private; if (ASIC_IS_DCE5(rdev) && - (rdev->clock.dp_extclk >= 53900) && + (rdev->clock.default_dispclk >= 53900) && radeon_connector_encoder_is_hbr2(connector)) { return true; } --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_cs.c +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_cs.c @@ -97,6 +97,12 @@ uint32_t domain = r->write_domain ? r->write_domain : r->read_domains; + if (domain & RADEON_GEM_DOMAIN_CPU) { + DRM_ERROR("RADEON_GEM_DOMAIN_CPU is not valid " + "for command submission\n"); + return -EINVAL; + } + p->relocs[i].lobj.domain = domain; if (domain == RADEON_GEM_DOMAIN_VRAM) domain |= RADEON_GEM_DOMAIN_GTT; @@ -276,10 +282,17 @@ return -EINVAL; /* we only support VM on some SI+ rings */ - if ((p->rdev->asic->ring[p->ring]->cs_parse == NULL) && - ((p->cs_flags & RADEON_CS_USE_VM) == 0)) { - DRM_ERROR("Ring %d requires VM!\n", p->ring); - return -EINVAL; + if ((p->cs_flags & RADEON_CS_USE_VM) == 0) { + if (p->rdev->asic->ring[p->ring]->cs_parse == NULL) { + DRM_ERROR("Ring %d requires VM!\n", p->ring); + return -EINVAL; + } + } else { + if (p->rdev->asic->ring[p->ring]->ib_parse == NULL) { + DRM_ERROR("VM not supported on ring %d!\n", + p->ring); + return -EINVAL; + } } } --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_device.c +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_device.c @@ -102,11 +102,14 @@ "LAST", }; -#if defined(CONFIG_VGA_SWITCHEROO) -bool radeon_is_px(void); -#else -static inline bool radeon_is_px(void) { return false; } -#endif +bool radeon_is_px(struct drm_device *dev) +{ + struct radeon_device *rdev = dev->dev_private; + + if (rdev->flags & RADEON_IS_PX) + return true; + return false; +} /** * radeon_program_register_sequence - program an array of registers. @@ -1077,7 +1080,7 @@ { struct drm_device *dev = pci_get_drvdata(pdev); - if (radeon_is_px() && state == VGA_SWITCHEROO_OFF) + if (radeon_is_px(dev) && state == VGA_SWITCHEROO_OFF) return; if (state == VGA_SWITCHEROO_ON) { @@ -1298,9 +1301,7 @@ * ignore it */ vga_client_register(rdev->pdev, rdev, NULL, radeon_vga_set_decode); - if (radeon_runtime_pm == 1) - runtime = true; - if ((radeon_runtime_pm == -1) && radeon_is_px()) + if (rdev->flags & RADEON_IS_PX) runtime = true; vga_switcheroo_register_client(rdev->pdev, &radeon_switcheroo_ops, runtime); if (runtime) @@ -1308,7 +1309,7 @@ r = radeon_init(rdev); if (r) - return r; + goto failed; r = radeon_ib_ring_tests(rdev); if (r) @@ -1328,7 +1329,7 @@ radeon_agp_disable(rdev); r = radeon_init(rdev); if (r) - return r; + goto failed; } if ((radeon_testing & 1)) { if (rdev->accel_working) @@ -1349,6 +1350,11 @@ DRM_INFO("radeon: acceleration disabled, skipping benchmarks\n"); } return 0; + +failed: + if (runtime) + vga_switcheroo_fini_domain_pm_ops(rdev->dev); + return r; } static void radeon_debugfs_remove_files(struct radeon_device *rdev); @@ -1369,6 +1375,8 @@ radeon_bo_evict_vram(rdev); radeon_fini(rdev); vga_switcheroo_unregister_client(rdev->pdev); + if (rdev->flags & RADEON_IS_PX) + vga_switcheroo_fini_domain_pm_ops(rdev->dev); vga_client_register(rdev->pdev, NULL, NULL, NULL); if (rdev->rio_mem) pci_iounmap(rdev->pdev, rdev->rio_mem); @@ -1546,6 +1554,11 @@ } drm_kms_helper_poll_enable(dev); + + /* set the power state here in case we are a PX system or headless */ + if ((rdev->pm.pm_method == PM_METHOD_DPM) && rdev->pm.dpm_enabled) + radeon_pm_compute_clocks(rdev); + return 0; } --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_display.c +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_display.c @@ -282,6 +282,10 @@ u32 update_pending; int vpos, hpos; + /* can happen during initialization */ + if (radeon_crtc == NULL) + return; + spin_lock_irqsave(&rdev->ddev->event_lock, flags); work = radeon_crtc->unpin_work; if (work == NULL || @@ -306,7 +310,7 @@ * to complete in this vblank? */ if (update_pending && - (DRM_SCANOUTPOS_VALID & radeon_get_crtc_scanoutpos(rdev->ddev, crtc_id, + (DRM_SCANOUTPOS_VALID & radeon_get_crtc_scanoutpos(rdev->ddev, crtc_id, 0, &vpos, &hpos, NULL, NULL)) && ((vpos >= (99 * rdev->mode_info.crtcs[crtc_id]->base.hwmode.crtc_vdisplay)/100) || (vpos < 0 && !ASIC_IS_AVIVO(rdev)))) { @@ -749,6 +753,10 @@ struct radeon_device *rdev = dev->dev_private; int ret = 0; + /* don't leak the edid if we already fetched it in detect() */ + if (radeon_connector->edid) + goto got_edid; + /* on hw with routers, select right port */ if (radeon_connector->router.ddc_valid) radeon_router_select_ddc_port(radeon_connector); @@ -788,8 +796,10 @@ radeon_connector->edid = radeon_bios_get_hardcoded_edid(rdev); } if (radeon_connector->edid) { +got_edid: drm_mode_connector_update_edid_property(&radeon_connector->base, radeon_connector->edid); ret = drm_add_edid_modes(&radeon_connector->base, radeon_connector->edid); + drm_edid_to_eld(&radeon_connector->base, radeon_connector->edid); return ret; } drm_mode_connector_update_edid_property(&radeon_connector->base, NULL); @@ -1601,6 +1611,7 @@ * * \param dev Device to query. * \param crtc Crtc to query. + * \param flags Flags from caller (DRM_CALLED_FROM_VBLIRQ or 0). * \param *vpos Location where vertical scanout position should be stored. * \param *hpos Location where horizontal scanout position should go. * \param *stime Target location for timestamp taken immediately before @@ -1622,8 +1633,8 @@ * unknown small number of scanlines wrt. real scanout position. * */ -int radeon_get_crtc_scanoutpos(struct drm_device *dev, int crtc, int *vpos, int *hpos, - ktime_t *stime, ktime_t *etime) +int radeon_get_crtc_scanoutpos(struct drm_device *dev, int crtc, unsigned int flags, + int *vpos, int *hpos, ktime_t *stime, ktime_t *etime) { u32 stat_crtc = 0, vbl = 0, position = 0; int vbl_start, vbl_end, vtotal, ret = 0; --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_drv.c +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_drv.c @@ -109,8 +109,10 @@ void radeon_gem_object_close(struct drm_gem_object *obj, struct drm_file *file_priv); extern int radeon_get_crtc_scanoutpos(struct drm_device *dev, int crtc, + unsigned int flags, int *vpos, int *hpos, ktime_t *stime, ktime_t *etime); +extern bool radeon_is_px(struct drm_device *dev); extern const struct drm_ioctl_desc radeon_ioctls_kms[]; extern int radeon_max_kms_ioctl; int radeon_mmap(struct file *filp, struct vm_area_struct *vma); @@ -140,11 +142,9 @@ #if defined(CONFIG_VGA_SWITCHEROO) void radeon_register_atpx_handler(void); void radeon_unregister_atpx_handler(void); -bool radeon_is_px(void); #else static inline void radeon_register_atpx_handler(void) {} static inline void radeon_unregister_atpx_handler(void) {} -static inline bool radeon_is_px(void) { return false; } #endif int radeon_no_wb; @@ -168,6 +168,7 @@ int radeon_dpm = -1; int radeon_aspm = -1; int radeon_runtime_pm = -1; +int radeon_bapm = -1; MODULE_PARM_DESC(no_wb, "Disable AGP writeback for scratch registers"); module_param_named(no_wb, radeon_no_wb, int, 0444); @@ -232,6 +233,9 @@ MODULE_PARM_DESC(runpm, "PX runtime pm (1 = force enable, 0 = disable, -1 = PX only default)"); module_param_named(runpm, radeon_runtime_pm, int, 0444); +MODULE_PARM_DESC(bapm, "BAPM support (1 = enable, 0 = disable, -1 = auto)"); +module_param_named(bapm, radeon_bapm, int, 0444); + static struct pci_device_id pciidlist[] = { radeon_PCI_IDS }; @@ -400,6 +404,9 @@ if (radeon_runtime_pm == 0) return -EINVAL; + if (radeon_runtime_pm == -1 && !radeon_is_px(drm_dev)) + return -EINVAL; + drm_dev->switch_power_state = DRM_SWITCH_POWER_CHANGING; drm_kms_helper_poll_disable(drm_dev); vga_switcheroo_set_dynamic_switch(pdev, VGA_SWITCHEROO_OFF); @@ -419,7 +426,7 @@ struct drm_device *drm_dev = pci_get_drvdata(pdev); int ret; - if (radeon_runtime_pm == 0) + if (!radeon_is_px(drm_dev)) return -EINVAL; drm_dev->switch_power_state = DRM_SWITCH_POWER_CHANGING; @@ -448,7 +455,7 @@ return -EBUSY; /* are we PX enabled? */ - if (radeon_runtime_pm == -1 && !radeon_is_px()) { + if (radeon_runtime_pm == -1 && !radeon_is_px(drm_dev)) { DRM_DEBUG_DRIVER("failing to power off - not px\n"); return -EBUSY; } --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_family.h +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_family.h @@ -115,6 +115,7 @@ RADEON_NEW_MEMMAP = 0x00400000UL, RADEON_IS_PCI = 0x00800000UL, RADEON_IS_IGPGART = 0x01000000UL, + RADEON_IS_PX = 0x02000000UL, }; #endif --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_i2c.c +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_i2c.c @@ -1020,6 +1020,9 @@ /* Add the default buses */ void radeon_i2c_init(struct radeon_device *rdev) { + if (radeon_hw_i2c) + DRM_INFO("hw_i2c forced on, you may experience display detection problems!\n"); + if (rdev->is_atom_bios) radeon_atombios_i2c_init(rdev); else --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_irq_kms.c +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_irq_kms.c @@ -202,6 +202,16 @@ if (rdev->flags & RADEON_IS_AGP) return false; + /* + * Older chips have a HW limitation, they can only generate 40 bits + * of address for "64-bit" MSIs which breaks on some platforms, notably + * IBM POWER servers, so we limit them + */ + if (rdev->family < CHIP_BONAIRE) { + dev_info(rdev->dev, "radeon: MSI limited to 32-bit\n"); + rdev->pdev->no_64bit_msi = 1; + } + /* force MSI on */ if (radeon_msi == 1) return true; --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_kms.c +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_kms.c @@ -33,6 +33,13 @@ #include #include #include + +#if defined(CONFIG_VGA_SWITCHEROO) +bool radeon_has_atpx(void); +#else +static inline bool radeon_has_atpx(void) { return false; } +#endif + /** * radeon_driver_unload_kms - Main unload function for KMS. * @@ -100,6 +107,11 @@ flags |= RADEON_IS_PCI; } + if ((radeon_runtime_pm != 0) && + radeon_has_atpx() && + ((flags & RADEON_IS_IGP) == 0)) + flags |= RADEON_IS_PX; + /* radeon_device_init should report only fatal error * like memory allocation failure or iomapping failure, * or memory manager initialization failure, it must @@ -130,7 +142,7 @@ "Error during ACPI methods call\n"); } - if (radeon_runtime_pm != 0) { + if (radeon_is_px(dev)) { pm_runtime_use_autosuspend(dev->dev); pm_runtime_set_autosuspend_delay(dev->dev, 5000); pm_runtime_set_active(dev->dev); @@ -242,7 +254,14 @@ } break; case RADEON_INFO_ACCEL_WORKING2: - *value = rdev->accel_working; + if (rdev->family == CHIP_HAWAII) { + if (rdev->accel_working) + *value = 2; + else + *value = 0; + } else { + *value = rdev->accel_working; + } break; case RADEON_INFO_TILING_CONFIG: if (rdev->family >= CHIP_BONAIRE) @@ -530,19 +549,29 @@ radeon_vm_init(rdev, &fpriv->vm); - /* map the ib pool buffer read only into - * virtual address space */ - bo_va = radeon_vm_bo_add(rdev, &fpriv->vm, - rdev->ring_tmp_bo.bo); - r = radeon_vm_bo_set_addr(rdev, bo_va, RADEON_VA_IB_OFFSET, - RADEON_VM_PAGE_READABLE | - RADEON_VM_PAGE_SNOOPED); - if (r) { - radeon_vm_fini(rdev, &fpriv->vm); - kfree(fpriv); - return r; - } + if (rdev->accel_working) { + r = radeon_bo_reserve(rdev->ring_tmp_bo.bo, false); + if (r) { + radeon_vm_fini(rdev, &fpriv->vm); + kfree(fpriv); + return r; + } + /* map the ib pool buffer read only into + * virtual address space */ + bo_va = radeon_vm_bo_add(rdev, &fpriv->vm, + rdev->ring_tmp_bo.bo); + r = radeon_vm_bo_set_addr(rdev, bo_va, RADEON_VA_IB_OFFSET, + RADEON_VM_PAGE_READABLE | + RADEON_VM_PAGE_SNOOPED); + + radeon_bo_unreserve(rdev->ring_tmp_bo.bo); + if (r) { + radeon_vm_fini(rdev, &fpriv->vm); + kfree(fpriv); + return r; + } + } file_priv->driver_priv = fpriv; } @@ -570,13 +599,15 @@ struct radeon_bo_va *bo_va; int r; - r = radeon_bo_reserve(rdev->ring_tmp_bo.bo, false); - if (!r) { - bo_va = radeon_vm_bo_find(&fpriv->vm, - rdev->ring_tmp_bo.bo); - if (bo_va) - radeon_vm_bo_rmv(rdev, bo_va); - radeon_bo_unreserve(rdev->ring_tmp_bo.bo); + if (rdev->accel_working) { + r = radeon_bo_reserve(rdev->ring_tmp_bo.bo, false); + if (!r) { + bo_va = radeon_vm_bo_find(&fpriv->vm, + rdev->ring_tmp_bo.bo); + if (bo_va) + radeon_vm_bo_rmv(rdev, bo_va); + radeon_bo_unreserve(rdev->ring_tmp_bo.bo); + } } radeon_vm_fini(rdev, &fpriv->vm); @@ -708,11 +739,13 @@ /* Get associated drm_crtc: */ drmcrtc = &rdev->mode_info.crtcs[crtc]->base; + if (!drmcrtc) + return -EINVAL; /* Helper routine in DRM core does all the work: */ return drm_calc_vbltimestamp_from_scanoutpos(dev, crtc, max_error, vblank_time, flags, - drmcrtc); + drmcrtc, &drmcrtc->hwmode); } #define KMS_INVALID_IOCTL(name) \ --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_mode.h +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_mode.h @@ -766,6 +766,7 @@ int x, int y); extern int radeon_get_crtc_scanoutpos(struct drm_device *dev, int crtc, + unsigned int flags, int *vpos, int *hpos, ktime_t *stime, ktime_t *etime); --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_object.c +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_object.c @@ -586,22 +586,30 @@ rbo = container_of(bo, struct radeon_bo, tbo); radeon_bo_check_tiling(rbo, 0, 0); rdev = rbo->rdev; - if (bo->mem.mem_type == TTM_PL_VRAM) { - size = bo->mem.num_pages << PAGE_SHIFT; - offset = bo->mem.start << PAGE_SHIFT; - if ((offset + size) > rdev->mc.visible_vram_size) { - /* hurrah the memory is not visible ! */ - radeon_ttm_placement_from_domain(rbo, RADEON_GEM_DOMAIN_VRAM); - rbo->placement.lpfn = rdev->mc.visible_vram_size >> PAGE_SHIFT; - r = ttm_bo_validate(bo, &rbo->placement, false, false); - if (unlikely(r != 0)) - return r; - offset = bo->mem.start << PAGE_SHIFT; - /* this should not happen */ - if ((offset + size) > rdev->mc.visible_vram_size) - return -EINVAL; - } + if (bo->mem.mem_type != TTM_PL_VRAM) + return 0; + + size = bo->mem.num_pages << PAGE_SHIFT; + offset = bo->mem.start << PAGE_SHIFT; + if ((offset + size) <= rdev->mc.visible_vram_size) + return 0; + + /* hurrah the memory is not visible ! */ + radeon_ttm_placement_from_domain(rbo, RADEON_GEM_DOMAIN_VRAM); + rbo->placement.lpfn = rdev->mc.visible_vram_size >> PAGE_SHIFT; + r = ttm_bo_validate(bo, &rbo->placement, false, false); + if (unlikely(r == -ENOMEM)) { + radeon_ttm_placement_from_domain(rbo, RADEON_GEM_DOMAIN_GTT); + return ttm_bo_validate(bo, &rbo->placement, false, false); + } else if (unlikely(r != 0)) { + return r; } + + offset = bo->mem.start << PAGE_SHIFT; + /* this should never happen */ + if ((offset + size) > rdev->mc.visible_vram_size) + return -EINVAL; + return 0; } --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_pm.c +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_pm.c @@ -361,6 +361,11 @@ struct drm_device *ddev = dev_get_drvdata(dev); struct radeon_device *rdev = ddev->dev_private; + /* Can't set profile when the card is off */ + if ((rdev->flags & RADEON_IS_PX) && + (ddev->switch_power_state != DRM_SWITCH_POWER_ON)) + return -EINVAL; + mutex_lock(&rdev->pm.mutex); if (rdev->pm.pm_method == PM_METHOD_PROFILE) { if (strncmp("default", buf, strlen("default")) == 0) @@ -409,6 +414,13 @@ struct drm_device *ddev = dev_get_drvdata(dev); struct radeon_device *rdev = ddev->dev_private; + /* Can't set method when the card is off */ + if ((rdev->flags & RADEON_IS_PX) && + (ddev->switch_power_state != DRM_SWITCH_POWER_ON)) { + count = -EINVAL; + goto fail; + } + /* we don't support the legacy modes with dpm */ if (rdev->pm.pm_method == PM_METHOD_DPM) { count = -EINVAL; @@ -472,7 +484,12 @@ goto fail; } mutex_unlock(&rdev->pm.mutex); - radeon_pm_compute_clocks(rdev); + + /* Can't set dpm state when the card is off */ + if (!(rdev->flags & RADEON_IS_PX) || + (ddev->switch_power_state == DRM_SWITCH_POWER_ON)) + radeon_pm_compute_clocks(rdev); + fail: return count; } @@ -485,6 +502,10 @@ struct radeon_device *rdev = ddev->dev_private; enum radeon_dpm_forced_level level = rdev->pm.dpm.forced_level; + if ((rdev->flags & RADEON_IS_PX) && + (ddev->switch_power_state != DRM_SWITCH_POWER_ON)) + return snprintf(buf, PAGE_SIZE, "off\n"); + return snprintf(buf, PAGE_SIZE, "%s\n", (level == RADEON_DPM_FORCED_LEVEL_AUTO) ? "auto" : (level == RADEON_DPM_FORCED_LEVEL_LOW) ? "low" : "high"); @@ -500,6 +521,11 @@ enum radeon_dpm_forced_level level; int ret = 0; + /* Can't force performance level when the card is off */ + if ((rdev->flags & RADEON_IS_PX) && + (ddev->switch_power_state != DRM_SWITCH_POWER_ON)) + return -EINVAL; + mutex_lock(&rdev->pm.mutex); if (strncmp("low", buf, strlen("low")) == 0) { level = RADEON_DPM_FORCED_LEVEL_LOW; @@ -538,8 +564,14 @@ char *buf) { struct radeon_device *rdev = dev_get_drvdata(dev); + struct drm_device *ddev = rdev->ddev; int temp; + /* Can't get temperature when the card is off */ + if ((rdev->flags & RADEON_IS_PX) && + (ddev->switch_power_state != DRM_SWITCH_POWER_ON)) + return -EINVAL; + if (rdev->asic->pm.get_temperature) temp = radeon_get_temperature(rdev); else @@ -603,7 +635,6 @@ static int radeon_hwmon_init(struct radeon_device *rdev) { int err = 0; - struct device *hwmon_dev; switch (rdev->pm.int_thermal_type) { case THERMAL_TYPE_RV6XX: @@ -616,11 +647,11 @@ case THERMAL_TYPE_KV: if (rdev->asic->pm.get_temperature == NULL) return err; - hwmon_dev = hwmon_device_register_with_groups(rdev->dev, - "radeon", rdev, - hwmon_groups); - if (IS_ERR(hwmon_dev)) { - err = PTR_ERR(hwmon_dev); + rdev->pm.int_hwmon_dev = hwmon_device_register_with_groups(rdev->dev, + "radeon", rdev, + hwmon_groups); + if (IS_ERR(rdev->pm.int_hwmon_dev)) { + err = PTR_ERR(rdev->pm.int_hwmon_dev); dev_err(rdev->dev, "Unable to register hwmon device: %d\n", err); } @@ -632,6 +663,12 @@ return err; } +static void radeon_hwmon_fini(struct radeon_device *rdev) +{ + if (rdev->pm.int_hwmon_dev) + hwmon_device_unregister(rdev->pm.int_hwmon_dev); +} + static void radeon_dpm_thermal_work_handler(struct work_struct *work) { struct radeon_device *rdev = @@ -1010,8 +1047,10 @@ rdev->pm.current_clock_mode_index = 0; rdev->pm.current_sclk = rdev->pm.default_sclk; rdev->pm.current_mclk = rdev->pm.default_mclk; - rdev->pm.current_vddc = rdev->pm.power_state[rdev->pm.default_power_state_index].clock_info[0].voltage.voltage; - rdev->pm.current_vddci = rdev->pm.power_state[rdev->pm.default_power_state_index].clock_info[0].voltage.vddci; + if (rdev->pm.power_state) { + rdev->pm.current_vddc = rdev->pm.power_state[rdev->pm.default_power_state_index].clock_info[0].voltage.voltage; + rdev->pm.current_vddci = rdev->pm.power_state[rdev->pm.default_power_state_index].clock_info[0].voltage.vddci; + } if (rdev->pm.pm_method == PM_METHOD_DYNPM && rdev->pm.dynpm_state == DYNPM_STATE_SUSPENDED) { rdev->pm.dynpm_state = DYNPM_STATE_ACTIVE; @@ -1050,7 +1089,6 @@ } } else { rdev->pm.dpm_enabled = true; - radeon_pm_compute_clocks(rdev); } } @@ -1228,7 +1266,7 @@ case CHIP_RV670: case CHIP_RS780: case CHIP_RS880: - case CHIP_CAYMAN: + case CHIP_RV770: case CHIP_BONAIRE: case CHIP_KABINI: case CHIP_KAVERI: @@ -1245,7 +1283,6 @@ else rdev->pm.pm_method = PM_METHOD_PROFILE; break; - case CHIP_RV770: case CHIP_RV730: case CHIP_RV710: case CHIP_RV740: @@ -1260,6 +1297,7 @@ case CHIP_BARTS: case CHIP_TURKS: case CHIP_CAICOS: + case CHIP_CAYMAN: case CHIP_ARUBA: case CHIP_TAHITI: case CHIP_PITCAIRN: @@ -1312,6 +1350,8 @@ device_remove_file(rdev->dev, &dev_attr_power_method); } + radeon_hwmon_fini(rdev); + if (rdev->pm.power_state) kfree(rdev->pm.power_state); } @@ -1331,6 +1371,8 @@ } radeon_dpm_fini(rdev); + radeon_hwmon_fini(rdev); + if (rdev->pm.power_state) kfree(rdev->pm.power_state); } @@ -1356,12 +1398,14 @@ rdev->pm.active_crtcs = 0; rdev->pm.active_crtc_count = 0; - list_for_each_entry(crtc, - &ddev->mode_config.crtc_list, head) { - radeon_crtc = to_radeon_crtc(crtc); - if (radeon_crtc->enabled) { - rdev->pm.active_crtcs |= (1 << radeon_crtc->crtc_id); - rdev->pm.active_crtc_count++; + if (rdev->num_crtc && rdev->mode_info.mode_config_initialized) { + list_for_each_entry(crtc, + &ddev->mode_config.crtc_list, head) { + radeon_crtc = to_radeon_crtc(crtc); + if (radeon_crtc->enabled) { + rdev->pm.active_crtcs |= (1 << radeon_crtc->crtc_id); + rdev->pm.active_crtc_count++; + } } } @@ -1425,12 +1469,14 @@ /* update active crtc counts */ rdev->pm.dpm.new_active_crtcs = 0; rdev->pm.dpm.new_active_crtc_count = 0; - list_for_each_entry(crtc, - &ddev->mode_config.crtc_list, head) { - radeon_crtc = to_radeon_crtc(crtc); - if (crtc->enabled) { - rdev->pm.dpm.new_active_crtcs |= (1 << radeon_crtc->crtc_id); - rdev->pm.dpm.new_active_crtc_count++; + if (rdev->num_crtc && rdev->mode_info.mode_config_initialized) { + list_for_each_entry(crtc, + &ddev->mode_config.crtc_list, head) { + radeon_crtc = to_radeon_crtc(crtc); + if (crtc->enabled) { + rdev->pm.dpm.new_active_crtcs |= (1 << radeon_crtc->crtc_id); + rdev->pm.dpm.new_active_crtc_count++; + } } } @@ -1464,7 +1510,7 @@ */ for (crtc = 0; (crtc < rdev->num_crtc) && in_vbl; crtc++) { if (rdev->pm.active_crtcs & (1 << crtc)) { - vbl_status = radeon_get_crtc_scanoutpos(rdev->ddev, crtc, &vpos, &hpos, NULL, NULL); + vbl_status = radeon_get_crtc_scanoutpos(rdev->ddev, crtc, 0, &vpos, &hpos, NULL, NULL); if ((vbl_status & DRM_SCANOUTPOS_VALID) && !(vbl_status & DRM_SCANOUTPOS_INVBL)) in_vbl = false; @@ -1556,8 +1602,12 @@ struct drm_info_node *node = (struct drm_info_node *) m->private; struct drm_device *dev = node->minor->dev; struct radeon_device *rdev = dev->dev_private; + struct drm_device *ddev = rdev->ddev; - if (rdev->pm.dpm_enabled) { + if ((rdev->flags & RADEON_IS_PX) && + (ddev->switch_power_state != DRM_SWITCH_POWER_ON)) { + seq_printf(m, "PX asic powered off\n"); + } else if (rdev->pm.dpm_enabled) { mutex_lock(&rdev->pm.mutex); if (rdev->asic->dpm.debugfs_print_current_performance_level) radeon_dpm_debugfs_print_current_performance_level(rdev, m); --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_ring.c +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_ring.c @@ -139,7 +139,7 @@ } /* 64 dwords should be enough for fence too */ - r = radeon_ring_lock(rdev, ring, 64 + RADEON_NUM_RINGS * 8); + r = radeon_ring_lock(rdev, ring, 64 + RADEON_NUM_SYNCS * 8); if (r) { dev_err(rdev->dev, "scheduling IB failed (%d).\n", r); return r; @@ -257,6 +257,7 @@ r = radeon_ib_test(rdev, i, ring); if (r) { ring->ready = false; + rdev->needs_reset = false; if (i == RADEON_RING_TYPE_GFX_INDEX) { /* oh, oh, that's really bad */ --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_semaphore.c +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_semaphore.c @@ -34,14 +34,15 @@ int radeon_semaphore_create(struct radeon_device *rdev, struct radeon_semaphore **semaphore) { + uint64_t *cpu_addr; int i, r; *semaphore = kmalloc(sizeof(struct radeon_semaphore), GFP_KERNEL); if (*semaphore == NULL) { return -ENOMEM; } - r = radeon_sa_bo_new(rdev, &rdev->ring_tmp_bo, - &(*semaphore)->sa_bo, 8, 8, true); + r = radeon_sa_bo_new(rdev, &rdev->ring_tmp_bo, &(*semaphore)->sa_bo, + 8 * RADEON_NUM_SYNCS, 8, true); if (r) { kfree(*semaphore); *semaphore = NULL; @@ -49,7 +50,10 @@ } (*semaphore)->waiters = 0; (*semaphore)->gpu_addr = radeon_sa_bo_gpu_addr((*semaphore)->sa_bo); - *((uint64_t*)radeon_sa_bo_cpu_addr((*semaphore)->sa_bo)) = 0; + + cpu_addr = radeon_sa_bo_cpu_addr((*semaphore)->sa_bo); + for (i = 0; i < RADEON_NUM_SYNCS; ++i) + cpu_addr[i] = 0; for (i = 0; i < RADEON_NUM_RINGS; ++i) (*semaphore)->sync_to[i] = NULL; @@ -125,6 +129,7 @@ struct radeon_semaphore *semaphore, int ring) { + unsigned count = 0; int i, r; for (i = 0; i < RADEON_NUM_RINGS; ++i) { @@ -140,6 +145,12 @@ return -EINVAL; } + if (++count > RADEON_NUM_SYNCS) { + /* not enough room, wait manually */ + radeon_fence_wait_locked(fence); + continue; + } + /* allocate enough space for sync command */ r = radeon_ring_alloc(rdev, &rdev->ring[i], 16); if (r) { @@ -164,6 +175,8 @@ radeon_ring_commit(rdev, &rdev->ring[i]); radeon_fence_note_sync(fence, ring); + + semaphore->gpu_addr += 8; } return 0; --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_ttm.c +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_ttm.c @@ -189,7 +189,7 @@ rbo = container_of(bo, struct radeon_bo, tbo); switch (bo->mem.mem_type) { case TTM_PL_VRAM: - if (rbo->rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ready == false) + if (rbo->rdev->ring[radeon_copy_ring_index(rbo->rdev)].ready == false) radeon_ttm_placement_from_domain(rbo, RADEON_GEM_DOMAIN_CPU); else radeon_ttm_placement_from_domain(rbo, RADEON_GEM_DOMAIN_GTT); @@ -712,6 +712,9 @@ DRM_ERROR("Failed initializing VRAM heap.\n"); return r; } + /* Change the size here instead of the init above so only lpfn is affected */ + radeon_ttm_set_active_vram_size(rdev, rdev->mc.visible_vram_size); + r = radeon_bo_create(rdev, 256 * 1024, PAGE_SIZE, true, RADEON_GEM_DOMAIN_VRAM, NULL, &rdev->stollen_vga_memory); --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_ucode.h +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_ucode.h @@ -57,9 +57,14 @@ #define BTC_MC_UCODE_SIZE 6024 #define CAYMAN_MC_UCODE_SIZE 6037 #define SI_MC_UCODE_SIZE 7769 +#define TAHITI_MC_UCODE_SIZE 7808 +#define PITCAIRN_MC_UCODE_SIZE 7775 +#define VERDE_MC_UCODE_SIZE 7875 #define OLAND_MC_UCODE_SIZE 7863 -#define CIK_MC_UCODE_SIZE 7866 +#define BONAIRE_MC_UCODE_SIZE 7866 +#define BONAIRE_MC2_UCODE_SIZE 7948 #define HAWAII_MC_UCODE_SIZE 7933 +#define HAWAII_MC2_UCODE_SIZE 8091 /* SDMA */ #define CIK_SDMA_UCODE_SIZE 1050 --- linux-3.13.0.orig/drivers/gpu/drm/radeon/radeon_uvd.c +++ linux-3.13.0/drivers/gpu/drm/radeon/radeon_uvd.c @@ -91,6 +91,7 @@ case CHIP_VERDE: case CHIP_PITCAIRN: case CHIP_ARUBA: + case CHIP_OLAND: fw_name = FIRMWARE_TAHITI; break; @@ -170,6 +171,8 @@ radeon_bo_unref(&rdev->uvd.vcpu_bo); + radeon_ring_fini(rdev, &rdev->ring[R600_RING_TYPE_UVD_INDEX]); + release_firmware(rdev->uvd_fw); } @@ -462,6 +465,10 @@ cmd = radeon_get_ib_value(p, p->idx) >> 1; if (cmd < 0x4) { + if (end <= start) { + DRM_ERROR("invalid reloc offset %X!\n", offset); + return -EINVAL; + } if ((end - start) < buf_sizes[cmd]) { DRM_ERROR("buffer (%d) to small (%d / %d)!\n", cmd, (unsigned)(end - start), buf_sizes[cmd]); --- linux-3.13.0.orig/drivers/gpu/drm/radeon/rs600.c +++ linux-3.13.0/drivers/gpu/drm/radeon/rs600.c @@ -888,6 +888,9 @@ u32 d1mode_priority_a_cnt, d2mode_priority_a_cnt; /* FIXME: implement full support */ + if (!rdev->mode_info.mode_config_initialized) + return; + radeon_update_display_priority(rdev); if (rdev->mode_info.crtcs[0]->base.enabled) --- linux-3.13.0.orig/drivers/gpu/drm/radeon/rs690.c +++ linux-3.13.0/drivers/gpu/drm/radeon/rs690.c @@ -579,6 +579,9 @@ u32 d1mode_priority_a_cnt, d1mode_priority_b_cnt; u32 d2mode_priority_a_cnt, d2mode_priority_b_cnt; + if (!rdev->mode_info.mode_config_initialized) + return; + radeon_update_display_priority(rdev); if (rdev->mode_info.crtcs[0]->base.enabled) --- linux-3.13.0.orig/drivers/gpu/drm/radeon/rv515.c +++ linux-3.13.0/drivers/gpu/drm/radeon/rv515.c @@ -1271,6 +1271,9 @@ struct drm_display_mode *mode0 = NULL; struct drm_display_mode *mode1 = NULL; + if (!rdev->mode_info.mode_config_initialized) + return; + radeon_update_display_priority(rdev); if (rdev->mode_info.crtcs[0]->base.enabled) --- linux-3.13.0.orig/drivers/gpu/drm/radeon/rv770.c +++ linux-3.13.0/drivers/gpu/drm/radeon/rv770.c @@ -1665,14 +1665,6 @@ rv770_mc_program(rdev); - if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) { - r = r600_init_microcode(rdev); - if (r) { - DRM_ERROR("Failed to load firmware!\n"); - return r; - } - } - if (rdev->flags & RADEON_IS_AGP) { rv770_agp_enable(rdev); } else { @@ -1876,6 +1868,14 @@ if (r) return r; + if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) { + r = r600_init_microcode(rdev); + if (r) { + DRM_ERROR("Failed to load firmware!\n"); + return r; + } + } + rdev->ring[RADEON_RING_TYPE_GFX_INDEX].ring_obj = NULL; r600_ring_init(rdev, &rdev->ring[RADEON_RING_TYPE_GFX_INDEX], 1024 * 1024); @@ -1921,9 +1921,9 @@ radeon_wb_fini(rdev); radeon_ib_pool_fini(rdev); radeon_irq_kms_fini(rdev); - rv770_pcie_gart_fini(rdev); uvd_v1_0_fini(rdev); radeon_uvd_fini(rdev); + rv770_pcie_gart_fini(rdev); r600_vram_scratch_fini(rdev); radeon_gem_fini(rdev); radeon_fence_driver_fini(rdev); --- linux-3.13.0.orig/drivers/gpu/drm/radeon/rv770_dpm.c +++ linux-3.13.0/drivers/gpu/drm/radeon/rv770_dpm.c @@ -2328,12 +2328,6 @@ pi->mclk_ss = radeon_atombios_get_asic_ss_info(rdev, &ss, ASIC_INTERNAL_MEMORY_SS, 0); - /* disable ss, causes hangs on some cayman boards */ - if (rdev->family == CHIP_CAYMAN) { - pi->sclk_ss = false; - pi->mclk_ss = false; - } - if (pi->sclk_ss || pi->mclk_ss) pi->dynamic_ss = true; else @@ -2531,6 +2525,12 @@ (rdev->pdev->subsystem_device == 0x1c42)) switch_limit = 200; + /* RV770 */ + /* mclk switching doesn't seem to work reliably on desktop RV770s */ + if ((rdev->family == CHIP_RV770) && + !(rdev->flags & RADEON_IS_MOBILITY)) + switch_limit = 0xffffffff; /* disable mclk switching */ + if (vblank_time < switch_limit) return true; else --- linux-3.13.0.orig/drivers/gpu/drm/radeon/si.c +++ linux-3.13.0/drivers/gpu/drm/radeon/si.c @@ -39,30 +39,35 @@ MODULE_FIRMWARE("radeon/TAHITI_me.bin"); MODULE_FIRMWARE("radeon/TAHITI_ce.bin"); MODULE_FIRMWARE("radeon/TAHITI_mc.bin"); +MODULE_FIRMWARE("radeon/TAHITI_mc2.bin"); MODULE_FIRMWARE("radeon/TAHITI_rlc.bin"); MODULE_FIRMWARE("radeon/TAHITI_smc.bin"); MODULE_FIRMWARE("radeon/PITCAIRN_pfp.bin"); MODULE_FIRMWARE("radeon/PITCAIRN_me.bin"); MODULE_FIRMWARE("radeon/PITCAIRN_ce.bin"); MODULE_FIRMWARE("radeon/PITCAIRN_mc.bin"); +MODULE_FIRMWARE("radeon/PITCAIRN_mc2.bin"); MODULE_FIRMWARE("radeon/PITCAIRN_rlc.bin"); MODULE_FIRMWARE("radeon/PITCAIRN_smc.bin"); MODULE_FIRMWARE("radeon/VERDE_pfp.bin"); MODULE_FIRMWARE("radeon/VERDE_me.bin"); MODULE_FIRMWARE("radeon/VERDE_ce.bin"); MODULE_FIRMWARE("radeon/VERDE_mc.bin"); +MODULE_FIRMWARE("radeon/VERDE_mc2.bin"); MODULE_FIRMWARE("radeon/VERDE_rlc.bin"); MODULE_FIRMWARE("radeon/VERDE_smc.bin"); MODULE_FIRMWARE("radeon/OLAND_pfp.bin"); MODULE_FIRMWARE("radeon/OLAND_me.bin"); MODULE_FIRMWARE("radeon/OLAND_ce.bin"); MODULE_FIRMWARE("radeon/OLAND_mc.bin"); +MODULE_FIRMWARE("radeon/OLAND_mc2.bin"); MODULE_FIRMWARE("radeon/OLAND_rlc.bin"); MODULE_FIRMWARE("radeon/OLAND_smc.bin"); MODULE_FIRMWARE("radeon/HAINAN_pfp.bin"); MODULE_FIRMWARE("radeon/HAINAN_me.bin"); MODULE_FIRMWARE("radeon/HAINAN_ce.bin"); MODULE_FIRMWARE("radeon/HAINAN_mc.bin"); +MODULE_FIRMWARE("radeon/HAINAN_mc2.bin"); MODULE_FIRMWARE("radeon/HAINAN_rlc.bin"); MODULE_FIRMWARE("radeon/HAINAN_smc.bin"); @@ -1465,36 +1470,33 @@ const __be32 *fw_data; u32 running, blackout = 0; u32 *io_mc_regs; - int i, ucode_size, regs_size; + int i, regs_size, ucode_size; if (!rdev->mc_fw) return -EINVAL; + ucode_size = rdev->mc_fw->size / 4; + switch (rdev->family) { case CHIP_TAHITI: io_mc_regs = (u32 *)&tahiti_io_mc_regs; - ucode_size = SI_MC_UCODE_SIZE; regs_size = TAHITI_IO_MC_REGS_SIZE; break; case CHIP_PITCAIRN: io_mc_regs = (u32 *)&pitcairn_io_mc_regs; - ucode_size = SI_MC_UCODE_SIZE; regs_size = TAHITI_IO_MC_REGS_SIZE; break; case CHIP_VERDE: default: io_mc_regs = (u32 *)&verde_io_mc_regs; - ucode_size = SI_MC_UCODE_SIZE; regs_size = TAHITI_IO_MC_REGS_SIZE; break; case CHIP_OLAND: io_mc_regs = (u32 *)&oland_io_mc_regs; - ucode_size = OLAND_MC_UCODE_SIZE; regs_size = TAHITI_IO_MC_REGS_SIZE; break; case CHIP_HAINAN: io_mc_regs = (u32 *)&hainan_io_mc_regs; - ucode_size = OLAND_MC_UCODE_SIZE; regs_size = TAHITI_IO_MC_REGS_SIZE; break; } @@ -1550,7 +1552,7 @@ const char *chip_name; const char *rlc_chip_name; size_t pfp_req_size, me_req_size, ce_req_size, rlc_req_size, mc_req_size; - size_t smc_req_size; + size_t smc_req_size, mc2_req_size; char fw_name[30]; int err; @@ -1565,6 +1567,7 @@ ce_req_size = SI_CE_UCODE_SIZE * 4; rlc_req_size = SI_RLC_UCODE_SIZE * 4; mc_req_size = SI_MC_UCODE_SIZE * 4; + mc2_req_size = TAHITI_MC_UCODE_SIZE * 4; smc_req_size = ALIGN(TAHITI_SMC_UCODE_SIZE, 4); break; case CHIP_PITCAIRN: @@ -1575,6 +1578,7 @@ ce_req_size = SI_CE_UCODE_SIZE * 4; rlc_req_size = SI_RLC_UCODE_SIZE * 4; mc_req_size = SI_MC_UCODE_SIZE * 4; + mc2_req_size = PITCAIRN_MC_UCODE_SIZE * 4; smc_req_size = ALIGN(PITCAIRN_SMC_UCODE_SIZE, 4); break; case CHIP_VERDE: @@ -1585,6 +1589,7 @@ ce_req_size = SI_CE_UCODE_SIZE * 4; rlc_req_size = SI_RLC_UCODE_SIZE * 4; mc_req_size = SI_MC_UCODE_SIZE * 4; + mc2_req_size = VERDE_MC_UCODE_SIZE * 4; smc_req_size = ALIGN(VERDE_SMC_UCODE_SIZE, 4); break; case CHIP_OLAND: @@ -1594,7 +1599,7 @@ me_req_size = SI_PM4_UCODE_SIZE * 4; ce_req_size = SI_CE_UCODE_SIZE * 4; rlc_req_size = SI_RLC_UCODE_SIZE * 4; - mc_req_size = OLAND_MC_UCODE_SIZE * 4; + mc_req_size = mc2_req_size = OLAND_MC_UCODE_SIZE * 4; smc_req_size = ALIGN(OLAND_SMC_UCODE_SIZE, 4); break; case CHIP_HAINAN: @@ -1604,7 +1609,7 @@ me_req_size = SI_PM4_UCODE_SIZE * 4; ce_req_size = SI_CE_UCODE_SIZE * 4; rlc_req_size = SI_RLC_UCODE_SIZE * 4; - mc_req_size = OLAND_MC_UCODE_SIZE * 4; + mc_req_size = mc2_req_size = OLAND_MC_UCODE_SIZE * 4; smc_req_size = ALIGN(HAINAN_SMC_UCODE_SIZE, 4); break; default: BUG(); @@ -1657,16 +1662,22 @@ err = -EINVAL; } - snprintf(fw_name, sizeof(fw_name), "radeon/%s_mc.bin", chip_name); + snprintf(fw_name, sizeof(fw_name), "radeon/%s_mc2.bin", chip_name); err = request_firmware(&rdev->mc_fw, fw_name, rdev->dev); - if (err) - goto out; - if (rdev->mc_fw->size != mc_req_size) { + if (err) { + snprintf(fw_name, sizeof(fw_name), "radeon/%s_mc.bin", chip_name); + err = request_firmware(&rdev->mc_fw, fw_name, rdev->dev); + if (err) + goto out; + } + if ((rdev->mc_fw->size != mc_req_size) && + (rdev->mc_fw->size != mc2_req_size)) { printk(KERN_ERR "si_mc: Bogus length %zu in firmware \"%s\"\n", rdev->mc_fw->size, fw_name); err = -EINVAL; } + DRM_INFO("%s: %zu bytes\n", fw_name, rdev->mc_fw->size); snprintf(fw_name, sizeof(fw_name), "radeon/%s_smc.bin", chip_name); err = request_firmware(&rdev->smc_fw, fw_name, rdev->dev); @@ -2214,6 +2225,9 @@ u32 num_heads = 0, lb_size; int i; + if (!rdev->mode_info.mode_config_initialized) + return; + radeon_update_display_priority(rdev); for (i = 0; i < rdev->num_crtc; i++) { @@ -4686,7 +4700,7 @@ /* write new base address */ radeon_ring_write(ring, PACKET3(PACKET3_WRITE_DATA, 3)); - radeon_ring_write(ring, (WRITE_DATA_ENGINE_SEL(0) | + radeon_ring_write(ring, (WRITE_DATA_ENGINE_SEL(1) | WRITE_DATA_DST_SEL(0))); if (vm->id < 8) { @@ -5566,7 +5580,7 @@ } if (!ASIC_IS_NODCE(rdev)) { - WREG32(DACA_AUTODETECT_INT_CONTROL, 0); + WREG32(DAC_AUTODETECT_INT_CONTROL, 0); tmp = RREG32(DC_HPD1_INT_CONTROL) & DC_HPDx_INT_POLARITY; WREG32(DC_HPD1_INT_CONTROL, tmp); @@ -5661,7 +5675,6 @@ u32 crtc1 = 0, crtc2 = 0, crtc3 = 0, crtc4 = 0, crtc5 = 0, crtc6 = 0; u32 hpd1 = 0, hpd2 = 0, hpd3 = 0, hpd4 = 0, hpd5 = 0, hpd6 = 0; u32 grbm_int_cntl = 0; - u32 grph1 = 0, grph2 = 0, grph3 = 0, grph4 = 0, grph5 = 0, grph6 = 0; u32 dma_cntl, dma_cntl1; u32 thermal_int = 0; @@ -5800,16 +5813,22 @@ } if (rdev->num_crtc >= 2) { - WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET, grph1); - WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET, grph2); + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET, + GRPH_PFLIP_INT_MASK); + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET, + GRPH_PFLIP_INT_MASK); } if (rdev->num_crtc >= 4) { - WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET, grph3); - WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET, grph4); + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET, + GRPH_PFLIP_INT_MASK); + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET, + GRPH_PFLIP_INT_MASK); } if (rdev->num_crtc >= 6) { - WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET, grph5); - WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, grph6); + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET, + GRPH_PFLIP_INT_MASK); + WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, + GRPH_PFLIP_INT_MASK); } if (!ASIC_IS_NODCE(rdev)) { @@ -5966,6 +5985,7 @@ tmp = RREG32(IH_RB_CNTL); tmp |= IH_WPTR_OVERFLOW_CLEAR; WREG32(IH_RB_CNTL, tmp); + wptr &= ~RB_OVERFLOW; } return (wptr & rdev->ih.ptr_mask); } @@ -6173,6 +6193,15 @@ break; } break; + case 8: /* D1 page flip */ + case 10: /* D2 page flip */ + case 12: /* D3 page flip */ + case 14: /* D4 page flip */ + case 16: /* D5 page flip */ + case 18: /* D6 page flip */ + DRM_DEBUG("IH: D%d flip\n", ((src_id - 8) >> 1) + 1); + radeon_crtc_handle_flip(rdev, (src_id - 8) >> 1); + break; case 42: /* HPD hotplug */ switch (src_data) { case 0: @@ -6222,6 +6251,10 @@ break; } break; + case 124: /* UVD */ + DRM_DEBUG("IH: UVD int: 0x%08x\n", src_data); + radeon_fence_process(rdev, R600_RING_TYPE_UVD_INDEX); + break; case 146: case 147: addr = RREG32(VM_CONTEXT1_PROTECTION_FAULT_ADDR); @@ -6324,15 +6357,6 @@ si_mc_program(rdev); - if (!rdev->me_fw || !rdev->pfp_fw || !rdev->ce_fw || - !rdev->rlc_fw || !rdev->mc_fw) { - r = si_init_microcode(rdev); - if (r) { - DRM_ERROR("Failed to load firmware!\n"); - return r; - } - } - r = si_mc_load_microcode(rdev); if (r) { DRM_ERROR("Failed to load MC firmware!\n"); @@ -6600,6 +6624,15 @@ if (r) return r; + if (!rdev->me_fw || !rdev->pfp_fw || !rdev->ce_fw || + !rdev->rlc_fw || !rdev->mc_fw) { + r = si_init_microcode(rdev); + if (r) { + DRM_ERROR("Failed to load firmware!\n"); + return r; + } + } + ring = &rdev->ring[RADEON_RING_TYPE_GFX_INDEX]; ring->ring_obj = NULL; r600_ring_init(rdev, ring, 1024 * 1024); --- linux-3.13.0.orig/drivers/gpu/drm/radeon/si_dpm.c +++ linux-3.13.0/drivers/gpu/drm/radeon/si_dpm.c @@ -2396,7 +2396,7 @@ if (SISLANDS_DPM2_SQ_RAMP_STI_SIZE > (STI_SIZE_MASK >> STI_SIZE_SHIFT)) enable_sq_ramping = false; - if (NISLANDS_DPM2_SQ_RAMP_LTI_RATIO <= (LTI_RATIO_MASK >> LTI_RATIO_SHIFT)) + if (SISLANDS_DPM2_SQ_RAMP_LTI_RATIO > (LTI_RATIO_MASK >> LTI_RATIO_SHIFT)) enable_sq_ramping = false; for (i = 0; i < state->performance_level_count; i++) { @@ -3591,10 +3591,9 @@ /* Setting this to false forces the performance state to low if the crtcs are disabled. * This can be a problem on PowerXpress systems or if you want to use the card - * for offscreen rendering or compute if there are no crtcs enabled. Set it to - * true for now so that performance scales even if the displays are off. + * for offscreen rendering or compute if there are no crtcs enabled. */ - si_notify_smc_display_change(rdev, true /*rdev->pm.dpm.new_active_crtc_count > 0*/); + si_notify_smc_display_change(rdev, rdev->pm.dpm.new_active_crtc_count > 0); } static void si_enable_spread_spectrum(struct radeon_device *rdev, bool enable) @@ -5414,7 +5413,7 @@ for (i = 0, j = 0; j < si_pi->mc_reg_table.last; j++) { if (si_pi->mc_reg_table.valid_flag & (1 << j)) { - if (i >= SMC_NISLANDS_MC_REGISTER_ARRAY_SIZE) + if (i >= SMC_SISLANDS_MC_REGISTER_ARRAY_SIZE) break; mc_reg_table->address[i].s0 = cpu_to_be16(si_pi->mc_reg_table.mc_reg_address[j].s0); @@ -6225,7 +6224,7 @@ if ((rps->class2 & ATOM_PPLIB_CLASSIFICATION2_ULV) && index == 0) { /* XXX disable for A0 tahiti */ - si_pi->ulv.supported = true; + si_pi->ulv.supported = false; si_pi->ulv.pl = *pl; si_pi->ulv.one_pcie_lane_in_ulv = false; si_pi->ulv.volt_change_delay = SISLANDS_ULVVOLTAGECHANGEDELAY_DFLT; --- linux-3.13.0.orig/drivers/gpu/drm/radeon/sid.h +++ linux-3.13.0/drivers/gpu/drm/radeon/sid.h @@ -102,8 +102,8 @@ #define CG_SPLL_FUNC_CNTL_4 0x60c #define SPLL_CNTL_MODE 0x618 -# define SPLL_REFCLK_SEL(x) ((x) << 8) -# define SPLL_REFCLK_SEL_MASK 0xFF00 +# define SPLL_REFCLK_SEL(x) ((x) << 26) +# define SPLL_REFCLK_SEL_MASK (3 << 26) #define CG_SPLL_SPREAD_SPECTRUM 0x620 #define SSEN (1 << 0) @@ -815,7 +815,7 @@ # define GRPH_PFLIP_INT_MASK (1 << 0) # define GRPH_PFLIP_INT_TYPE (1 << 8) -#define DACA_AUTODETECT_INT_CONTROL 0x66c8 +#define DAC_AUTODETECT_INT_CONTROL 0x67c8 #define DC_HPD1_INT_STATUS 0x601c #define DC_HPD2_INT_STATUS 0x6028 --- linux-3.13.0.orig/drivers/gpu/drm/radeon/trinity_dpm.c +++ linux-3.13.0/drivers/gpu/drm/radeon/trinity_dpm.c @@ -1868,7 +1868,22 @@ for (i = 0; i < SUMO_MAX_HARDWARE_POWERLEVELS; i++) pi->at[i] = TRINITY_AT_DFLT; - pi->enable_bapm = false; + if (radeon_bapm == -1) { + /* There are stability issues reported on with + * bapm enabled when switching between AC and battery + * power. At the same time, some MSI boards hang + * if it's not enabled and dpm is enabled. Just enable + * it for MSI boards right now. + */ + if (rdev->pdev->subsystem_vendor == 0x1462) + pi->enable_bapm = true; + else + pi->enable_bapm = false; + } else if (radeon_bapm == 0) { + pi->enable_bapm = false; + } else { + pi->enable_bapm = true; + } pi->enable_nbps_policy = true; pi->enable_sclk_ds = true; pi->enable_gfx_power_gating = true; --- linux-3.13.0.orig/drivers/gpu/drm/radeon/uvd_v1_0.c +++ linux-3.13.0/drivers/gpu/drm/radeon/uvd_v1_0.c @@ -83,7 +83,10 @@ int r; /* raise clocks while booting up the VCPU */ - radeon_set_uvd_clocks(rdev, 53300, 40000); + if (rdev->family < CHIP_RV740) + radeon_set_uvd_clocks(rdev, 10000, 10000); + else + radeon_set_uvd_clocks(rdev, 53300, 40000); r = uvd_v1_0_start(rdev); if (r) @@ -407,7 +410,10 @@ struct radeon_fence *fence = NULL; int r; - r = radeon_set_uvd_clocks(rdev, 53300, 40000); + if (rdev->family < CHIP_RV740) + r = radeon_set_uvd_clocks(rdev, 10000, 10000); + else + r = radeon_set_uvd_clocks(rdev, 53300, 40000); if (r) { DRM_ERROR("radeon: failed to raise UVD clocks (%d).\n", r); return r; --- linux-3.13.0.orig/drivers/gpu/drm/radeon/uvd_v2_2.c +++ linux-3.13.0/drivers/gpu/drm/radeon/uvd_v2_2.c @@ -153,6 +153,7 @@ chip_id = 0x01000015; break; case CHIP_PITCAIRN: + case CHIP_OLAND: chip_id = 0x01000016; break; case CHIP_ARUBA: --- linux-3.13.0.orig/drivers/gpu/drm/rcar-du/rcar_du_crtc.c +++ linux-3.13.0/drivers/gpu/drm/rcar-du/rcar_du_crtc.c @@ -371,7 +371,6 @@ goto error; rcrtc->plane->format = format; - rcrtc->plane->pitch = crtc->fb->pitches[0]; rcrtc->plane->src_x = x; rcrtc->plane->src_y = y; --- linux-3.13.0.orig/drivers/gpu/drm/rcar-du/rcar_du_plane.c +++ linux-3.13.0/drivers/gpu/drm/rcar-du/rcar_du_plane.c @@ -104,6 +104,15 @@ { struct rcar_du_group *rgrp = plane->group; unsigned int index = plane->hwindex; + u32 mwr; + + /* Memory pitch (expressed in pixels) */ + if (plane->format->planes == 2) + mwr = plane->pitch; + else + mwr = plane->pitch * 8 / plane->format->bpp; + + rcar_du_plane_write(rgrp, index, PnMWR, mwr); /* The Y position is expressed in raster line units and must be doubled * for 32bpp formats, according to the R8A7790 datasheet. No mention of @@ -133,6 +142,8 @@ { struct drm_gem_cma_object *gem; + plane->pitch = fb->pitches[0]; + gem = drm_fb_cma_get_gem_obj(fb, 0); plane->dma[0] = gem->paddr + fb->offsets[0]; @@ -209,7 +220,6 @@ struct rcar_du_group *rgrp = plane->group; u32 ddcr2 = PnDDCR2_CODE; u32 ddcr4; - u32 mwr; /* Data format * @@ -240,14 +250,6 @@ rcar_du_plane_write(rgrp, index, PnDDCR2, ddcr2); rcar_du_plane_write(rgrp, index, PnDDCR4, ddcr4); - /* Memory pitch (expressed in pixels) */ - if (plane->format->planes == 2) - mwr = plane->pitch; - else - mwr = plane->pitch * 8 / plane->format->bpp; - - rcar_du_plane_write(rgrp, index, PnMWR, mwr); - /* Destination position and size */ rcar_du_plane_write(rgrp, index, PnDSXR, plane->width); rcar_du_plane_write(rgrp, index, PnDSYR, plane->height); @@ -309,7 +311,6 @@ rplane->crtc = crtc; rplane->format = format; - rplane->pitch = fb->pitches[0]; rplane->src_x = src_x >> 16; rplane->src_y = src_y >> 16; --- linux-3.13.0.orig/drivers/gpu/drm/tegra/dc.c +++ linux-3.13.0/drivers/gpu/drm/tegra/dc.c @@ -1252,6 +1252,7 @@ { .compatible = "nvidia,tegra20-dc", }, { }, }; +MODULE_DEVICE_TABLE(of, tegra_dc_of_match); struct platform_driver tegra_dc_driver = { .driver = { --- linux-3.13.0.orig/drivers/gpu/drm/tegra/gr2d.c +++ linux-3.13.0/drivers/gpu/drm/tegra/gr2d.c @@ -129,6 +129,7 @@ { .compatible = "nvidia,tegra20-gr2d" }, { }, }; +MODULE_DEVICE_TABLE(of, gr2d_match); static const u32 gr2d_addr_regs[] = { GR2D_UA_BASE_ADDR, --- linux-3.13.0.orig/drivers/gpu/drm/tegra/gr3d.c +++ linux-3.13.0/drivers/gpu/drm/tegra/gr3d.c @@ -127,6 +127,7 @@ { .compatible = "nvidia,tegra20-gr3d" }, { } }; +MODULE_DEVICE_TABLE(of, tegra_gr3d_match); static const u32 gr3d_addr_regs[] = { GR3D_IDX_ATTRIBUTE( 0), --- linux-3.13.0.orig/drivers/gpu/drm/tegra/hdmi.c +++ linux-3.13.0/drivers/gpu/drm/tegra/hdmi.c @@ -1309,6 +1309,7 @@ { .compatible = "nvidia,tegra20-hdmi", .data = &tegra20_hdmi_config }, { }, }; +MODULE_DEVICE_TABLE(of, tegra_hdmi_of_match); static int tegra_hdmi_probe(struct platform_device *pdev) { --- linux-3.13.0.orig/drivers/gpu/drm/tilcdc/tilcdc_drv.c +++ linux-3.13.0/drivers/gpu/drm/tilcdc/tilcdc_drv.c @@ -122,6 +122,7 @@ struct tilcdc_drm_private *priv = dev->dev_private; struct tilcdc_module *mod, *cur; + drm_fbdev_cma_fini(priv->fbdev); drm_kms_helper_poll_fini(dev); drm_mode_config_cleanup(dev); drm_vblank_cleanup(dev); @@ -628,10 +629,10 @@ static void __exit tilcdc_drm_fini(void) { DBG("fini"); - tilcdc_tfp410_fini(); - tilcdc_slave_fini(); - tilcdc_panel_fini(); platform_driver_unregister(&tilcdc_platform_driver); + tilcdc_panel_fini(); + tilcdc_slave_fini(); + tilcdc_tfp410_fini(); } late_initcall(tilcdc_drm_init); --- linux-3.13.0.orig/drivers/gpu/drm/tilcdc/tilcdc_panel.c +++ linux-3.13.0/drivers/gpu/drm/tilcdc/tilcdc_panel.c @@ -151,6 +151,7 @@ static void panel_connector_destroy(struct drm_connector *connector) { struct panel_connector *panel_connector = to_panel_connector(connector); + drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); kfree(panel_connector); } @@ -285,10 +286,8 @@ { struct panel_module *panel_mod = to_panel_module(mod); - if (panel_mod->timings) { + if (panel_mod->timings) display_timings_release(panel_mod->timings); - kfree(panel_mod->timings); - } tilcdc_module_cleanup(mod); kfree(panel_mod->info); --- linux-3.13.0.orig/drivers/gpu/drm/tilcdc/tilcdc_slave.c +++ linux-3.13.0/drivers/gpu/drm/tilcdc/tilcdc_slave.c @@ -166,6 +166,7 @@ static void slave_connector_destroy(struct drm_connector *connector) { struct slave_connector *slave_connector = to_slave_connector(connector); + drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); kfree(slave_connector); } --- linux-3.13.0.orig/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c +++ linux-3.13.0/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c @@ -167,6 +167,7 @@ static void tfp410_connector_destroy(struct drm_connector *connector) { struct tfp410_connector *tfp410_connector = to_tfp410_connector(connector); + drm_sysfs_connector_remove(connector); drm_connector_cleanup(connector); kfree(tfp410_connector); } --- linux-3.13.0.orig/drivers/gpu/drm/ttm/ttm_bo.c +++ linux-3.13.0/drivers/gpu/drm/ttm/ttm_bo.c @@ -351,9 +351,11 @@ moved: if (bo->evicted) { - ret = bdev->driver->invalidate_caches(bdev, bo->mem.placement); - if (ret) - pr_err("Can not flush read caches\n"); + if (bdev->driver->invalidate_caches) { + ret = bdev->driver->invalidate_caches(bdev, bo->mem.placement); + if (ret) + pr_err("Can not flush read caches\n"); + } bo->evicted = false; } --- linux-3.13.0.orig/drivers/gpu/drm/ttm/ttm_object.c +++ linux-3.13.0/drivers/gpu/drm/ttm/ttm_object.c @@ -68,7 +68,7 @@ struct ttm_object_file { struct ttm_object_device *tdev; - rwlock_t lock; + spinlock_t lock; struct list_head ref_list; struct drm_open_hash ref_hash[TTM_REF_NUM]; struct kref refcount; @@ -118,6 +118,7 @@ */ struct ttm_ref_object { + struct rcu_head rcu_head; struct drm_hash_item hash; struct list_head head; struct kref kref; @@ -210,10 +211,9 @@ * call_rcu() or ttm_base_object_kfree(). */ - if (base->refcount_release) { - ttm_object_file_unref(&base->tfile); + ttm_object_file_unref(&base->tfile); + if (base->refcount_release) base->refcount_release(&base); - } } void ttm_base_object_unref(struct ttm_base_object **p_base) @@ -229,32 +229,46 @@ struct ttm_base_object *ttm_base_object_lookup(struct ttm_object_file *tfile, uint32_t key) { - struct ttm_object_device *tdev = tfile->tdev; - struct ttm_base_object *uninitialized_var(base); + struct ttm_base_object *base = NULL; struct drm_hash_item *hash; + struct drm_open_hash *ht = &tfile->ref_hash[TTM_REF_USAGE]; int ret; rcu_read_lock(); - ret = drm_ht_find_item_rcu(&tdev->object_hash, key, &hash); + ret = drm_ht_find_item_rcu(ht, key, &hash); if (likely(ret == 0)) { - base = drm_hash_entry(hash, struct ttm_base_object, hash); - ret = kref_get_unless_zero(&base->refcount) ? 0 : -EINVAL; + base = drm_hash_entry(hash, struct ttm_ref_object, hash)->obj; + if (!kref_get_unless_zero(&base->refcount)) + base = NULL; } rcu_read_unlock(); - if (unlikely(ret != 0)) - return NULL; + return base; +} +EXPORT_SYMBOL(ttm_base_object_lookup); - if (tfile != base->tfile && !base->shareable) { - pr_err("Attempted access of non-shareable object\n"); - ttm_base_object_unref(&base); - return NULL; +struct ttm_base_object * +ttm_base_object_lookup_for_ref(struct ttm_object_device *tdev, uint32_t key) +{ + struct ttm_base_object *base = NULL; + struct drm_hash_item *hash; + struct drm_open_hash *ht = &tdev->object_hash; + int ret; + + rcu_read_lock(); + ret = drm_ht_find_item_rcu(ht, key, &hash); + + if (likely(ret == 0)) { + base = drm_hash_entry(hash, struct ttm_base_object, hash); + if (!kref_get_unless_zero(&base->refcount)) + base = NULL; } + rcu_read_unlock(); return base; } -EXPORT_SYMBOL(ttm_base_object_lookup); +EXPORT_SYMBOL(ttm_base_object_lookup_for_ref); int ttm_ref_object_add(struct ttm_object_file *tfile, struct ttm_base_object *base, @@ -266,21 +280,25 @@ struct ttm_mem_global *mem_glob = tfile->tdev->mem_glob; int ret = -EINVAL; + if (base->tfile != tfile && !base->shareable) + return -EPERM; + if (existed != NULL) *existed = true; while (ret == -EINVAL) { - read_lock(&tfile->lock); - ret = drm_ht_find_item(ht, base->hash.key, &hash); + rcu_read_lock(); + ret = drm_ht_find_item_rcu(ht, base->hash.key, &hash); if (ret == 0) { ref = drm_hash_entry(hash, struct ttm_ref_object, hash); - kref_get(&ref->kref); - read_unlock(&tfile->lock); - break; + if (kref_get_unless_zero(&ref->kref)) { + rcu_read_unlock(); + break; + } } - read_unlock(&tfile->lock); + rcu_read_unlock(); ret = ttm_mem_global_alloc(mem_glob, sizeof(*ref), false, false); if (unlikely(ret != 0)) @@ -297,19 +315,19 @@ ref->ref_type = ref_type; kref_init(&ref->kref); - write_lock(&tfile->lock); - ret = drm_ht_insert_item(ht, &ref->hash); + spin_lock(&tfile->lock); + ret = drm_ht_insert_item_rcu(ht, &ref->hash); if (likely(ret == 0)) { list_add_tail(&ref->head, &tfile->ref_list); kref_get(&base->refcount); - write_unlock(&tfile->lock); + spin_unlock(&tfile->lock); if (existed != NULL) *existed = false; break; } - write_unlock(&tfile->lock); + spin_unlock(&tfile->lock); BUG_ON(ret != -EINVAL); ttm_mem_global_free(mem_glob, sizeof(*ref)); @@ -330,17 +348,17 @@ struct ttm_mem_global *mem_glob = tfile->tdev->mem_glob; ht = &tfile->ref_hash[ref->ref_type]; - (void)drm_ht_remove_item(ht, &ref->hash); + (void)drm_ht_remove_item_rcu(ht, &ref->hash); list_del(&ref->head); - write_unlock(&tfile->lock); + spin_unlock(&tfile->lock); if (ref->ref_type != TTM_REF_USAGE && base->ref_obj_release) base->ref_obj_release(base, ref->ref_type); ttm_base_object_unref(&ref->obj); ttm_mem_global_free(mem_glob, sizeof(*ref)); - kfree(ref); - write_lock(&tfile->lock); + kfree_rcu(ref, rcu_head); + spin_lock(&tfile->lock); } int ttm_ref_object_base_unref(struct ttm_object_file *tfile, @@ -351,15 +369,15 @@ struct drm_hash_item *hash; int ret; - write_lock(&tfile->lock); + spin_lock(&tfile->lock); ret = drm_ht_find_item(ht, key, &hash); if (unlikely(ret != 0)) { - write_unlock(&tfile->lock); + spin_unlock(&tfile->lock); return -EINVAL; } ref = drm_hash_entry(hash, struct ttm_ref_object, hash); kref_put(&ref->kref, ttm_ref_object_release); - write_unlock(&tfile->lock); + spin_unlock(&tfile->lock); return 0; } EXPORT_SYMBOL(ttm_ref_object_base_unref); @@ -372,7 +390,7 @@ struct ttm_object_file *tfile = *p_tfile; *p_tfile = NULL; - write_lock(&tfile->lock); + spin_lock(&tfile->lock); /* * Since we release the lock within the loop, we have to @@ -388,7 +406,7 @@ for (i = 0; i < TTM_REF_NUM; ++i) drm_ht_remove(&tfile->ref_hash[i]); - write_unlock(&tfile->lock); + spin_unlock(&tfile->lock); ttm_object_file_unref(&tfile); } EXPORT_SYMBOL(ttm_object_file_release); @@ -404,7 +422,7 @@ if (unlikely(tfile == NULL)) return NULL; - rwlock_init(&tfile->lock); + spin_lock_init(&tfile->lock); tfile->tdev = tdev; kref_init(&tfile->refcount); INIT_LIST_HEAD(&tfile->ref_list); --- linux-3.13.0.orig/drivers/gpu/drm/ttm/ttm_page_alloc.c +++ linux-3.13.0/drivers/gpu/drm/ttm/ttm_page_alloc.c @@ -297,9 +297,12 @@ * * @pool: to free the pages from * @free_all: If set to true will free all pages in pool + * @use_static: Safe to use static buffer **/ -static int ttm_page_pool_free(struct ttm_page_pool *pool, unsigned nr_free) +static int ttm_page_pool_free(struct ttm_page_pool *pool, unsigned nr_free, + bool use_static) { + static struct page *static_buf[NUM_PAGES_TO_ALLOC]; unsigned long irq_flags; struct page *p; struct page **pages_to_free; @@ -309,8 +312,11 @@ if (NUM_PAGES_TO_ALLOC < nr_free) npages_to_free = NUM_PAGES_TO_ALLOC; - pages_to_free = kmalloc(npages_to_free * sizeof(struct page *), - GFP_KERNEL); + if (use_static) + pages_to_free = static_buf; + else + pages_to_free = kmalloc(npages_to_free * sizeof(struct page *), + GFP_KERNEL); if (!pages_to_free) { pr_err("Failed to allocate memory for pool free operation\n"); return 0; @@ -373,7 +379,8 @@ if (freed_pages) ttm_pages_put(pages_to_free, freed_pages); out: - kfree(pages_to_free); + if (pages_to_free != static_buf) + kfree(pages_to_free); return nr_free; } @@ -382,32 +389,33 @@ * * XXX: (dchinner) Deadlock warning! * - * ttm_page_pool_free() does memory allocation using GFP_KERNEL. that means - * this can deadlock when called a sc->gfp_mask that is not equal to - * GFP_KERNEL. - * * This code is crying out for a shrinker per pool.... */ static unsigned long ttm_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc) { - static atomic_t start_pool = ATOMIC_INIT(0); + static DEFINE_MUTEX(lock); + static unsigned start_pool; unsigned i; - unsigned pool_offset = atomic_add_return(1, &start_pool); + unsigned pool_offset; struct ttm_page_pool *pool; int shrink_pages = sc->nr_to_scan; unsigned long freed = 0; - pool_offset = pool_offset % NUM_POOLS; + if (!mutex_trylock(&lock)) + return SHRINK_STOP; + pool_offset = ++start_pool % NUM_POOLS; /* select start pool in round robin fashion */ for (i = 0; i < NUM_POOLS; ++i) { unsigned nr_free = shrink_pages; if (shrink_pages == 0) break; pool = &_manager->pools[(i + pool_offset)%NUM_POOLS]; - shrink_pages = ttm_page_pool_free(pool, nr_free); + /* OK to use static buffer since global mutex is held. */ + shrink_pages = ttm_page_pool_free(pool, nr_free, true); freed += nr_free - shrink_pages; } + mutex_unlock(&lock); return freed; } @@ -706,7 +714,7 @@ } spin_unlock_irqrestore(&pool->lock, irq_flags); if (npages) - ttm_page_pool_free(pool, npages); + ttm_page_pool_free(pool, npages, false); } /* @@ -845,8 +853,9 @@ pr_info("Finalizing pool allocator\n"); ttm_pool_mm_shrink_fini(_manager); + /* OK to use static buffer since global mutex is no longer used. */ for (i = 0; i < NUM_POOLS; ++i) - ttm_page_pool_free(&_manager->pools[i], FREE_ALL_PAGES); + ttm_page_pool_free(&_manager->pools[i], FREE_ALL_PAGES, true); kobject_put(&_manager->kobj); _manager = NULL; --- linux-3.13.0.orig/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c +++ linux-3.13.0/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c @@ -411,9 +411,12 @@ * * @pool: to free the pages from * @nr_free: If set to true will free all pages in pool + * @use_static: Safe to use static buffer **/ -static unsigned ttm_dma_page_pool_free(struct dma_pool *pool, unsigned nr_free) +static unsigned ttm_dma_page_pool_free(struct dma_pool *pool, unsigned nr_free, + bool use_static) { + static struct page *static_buf[NUM_PAGES_TO_ALLOC]; unsigned long irq_flags; struct dma_page *dma_p, *tmp; struct page **pages_to_free; @@ -430,8 +433,11 @@ npages_to_free, nr_free); } #endif - pages_to_free = kmalloc(npages_to_free * sizeof(struct page *), - GFP_KERNEL); + if (use_static) + pages_to_free = static_buf; + else + pages_to_free = kmalloc(npages_to_free * sizeof(struct page *), + GFP_KERNEL); if (!pages_to_free) { pr_err("%s: Failed to allocate memory for pool free operation\n", @@ -501,7 +507,8 @@ if (freed_pages) ttm_dma_pages_put(pool, &d_pages, pages_to_free, freed_pages); out: - kfree(pages_to_free); + if (pages_to_free != static_buf) + kfree(pages_to_free); return nr_free; } @@ -530,7 +537,8 @@ if (pool->type != type) continue; /* Takes a spinlock.. */ - ttm_dma_page_pool_free(pool, FREE_ALL_PAGES); + /* OK to use static buffer since global mutex is held. */ + ttm_dma_page_pool_free(pool, FREE_ALL_PAGES, true); WARN_ON(((pool->npages_in_use + pool->npages_free) != 0)); /* This code path is called after _all_ references to the * struct device has been dropped - so nobody should be @@ -983,7 +991,7 @@ /* shrink pool if necessary (only on !is_cached pools)*/ if (npages) - ttm_dma_page_pool_free(pool, npages); + ttm_dma_page_pool_free(pool, npages, false); ttm->state = tt_unpopulated; } EXPORT_SYMBOL_GPL(ttm_dma_unpopulate); @@ -993,20 +1001,15 @@ * * XXX: (dchinner) Deadlock warning! * - * ttm_dma_page_pool_free() does GFP_KERNEL memory allocation, and so attention - * needs to be paid to sc->gfp_mask to determine if this can be done or not. - * GFP_KERNEL memory allocation in a GFP_ATOMIC reclaim context woul dbe really - * bad. - * * I'm getting sadder as I hear more pathetical whimpers about needing per-pool * shrinkers */ static unsigned long ttm_dma_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc) { - static atomic_t start_pool = ATOMIC_INIT(0); + static unsigned start_pool; unsigned idx = 0; - unsigned pool_offset = atomic_add_return(1, &start_pool); + unsigned pool_offset; unsigned shrink_pages = sc->nr_to_scan; struct device_pools *p; unsigned long freed = 0; @@ -1014,8 +1017,11 @@ if (list_empty(&_manager->pools)) return SHRINK_STOP; - mutex_lock(&_manager->lock); - pool_offset = pool_offset % _manager->npools; + if (!mutex_trylock(&_manager->lock)) + return SHRINK_STOP; + if (!_manager->npools) + goto out; + pool_offset = ++start_pool % _manager->npools; list_for_each_entry(p, &_manager->pools, pools) { unsigned nr_free; @@ -1027,13 +1033,15 @@ if (++idx < pool_offset) continue; nr_free = shrink_pages; - shrink_pages = ttm_dma_page_pool_free(p->pool, nr_free); + /* OK to use static buffer since global mutex is held. */ + shrink_pages = ttm_dma_page_pool_free(p->pool, nr_free, true); freed += nr_free - shrink_pages; pr_debug("%s: (%s:%d) Asked to shrink %d, have %d more to go\n", p->pool->dev_name, p->pool->name, current->pid, nr_free, shrink_pages); } +out: mutex_unlock(&_manager->lock); return freed; } @@ -1044,7 +1052,8 @@ struct device_pools *p; unsigned long count = 0; - mutex_lock(&_manager->lock); + if (!mutex_trylock(&_manager->lock)) + return 0; list_for_each_entry(p, &_manager->pools, pools) count += p->pool->npages_free; mutex_unlock(&_manager->lock); --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/Makefile +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/Makefile @@ -6,6 +6,6 @@ vmwgfx_fifo.o vmwgfx_irq.o vmwgfx_ldu.o vmwgfx_ttm_glue.o \ vmwgfx_overlay.o vmwgfx_marker.o vmwgfx_gmrid_manager.o \ vmwgfx_fence.o vmwgfx_dmabuf.o vmwgfx_scrn.o vmwgfx_context.o \ - vmwgfx_surface.o vmwgfx_prime.o + vmwgfx_surface.o vmwgfx_prime.o vmwgfx_mob.o vmwgfx_shader.o obj-$(CONFIG_DRM_VMWGFX) := vmwgfx.o --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/svga3d_reg.h +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/svga3d_reg.h @@ -34,6 +34,8 @@ #include "svga_reg.h" +typedef uint32 PPN; +typedef __le64 PPN64; /* * 3D Hardware Version @@ -71,6 +73,9 @@ #define SVGA3D_MAX_CONTEXT_IDS 256 #define SVGA3D_MAX_SURFACE_IDS (32 * 1024) +#define SVGA3D_NUM_TEXTURE_UNITS 32 +#define SVGA3D_NUM_LIGHTS 8 + /* * Surface formats. * @@ -81,6 +86,7 @@ */ typedef enum SVGA3dSurfaceFormat { + SVGA3D_FORMAT_MIN = 0, SVGA3D_FORMAT_INVALID = 0, SVGA3D_X8R8G8B8 = 1, @@ -134,12 +140,6 @@ SVGA3D_RG_S10E5 = 35, SVGA3D_RG_S23E8 = 36, - /* - * Any surface can be used as a buffer object, but SVGA3D_BUFFER is - * the most efficient format to use when creating new surfaces - * expressly for index or vertex data. - */ - SVGA3D_BUFFER = 37, SVGA3D_Z_D24X8 = 38, @@ -159,15 +159,109 @@ /* Video format with alpha */ SVGA3D_AYUV = 45, + SVGA3D_R32G32B32A32_TYPELESS = 46, + SVGA3D_R32G32B32A32_FLOAT = 25, + SVGA3D_R32G32B32A32_UINT = 47, + SVGA3D_R32G32B32A32_SINT = 48, + SVGA3D_R32G32B32_TYPELESS = 49, + SVGA3D_R32G32B32_FLOAT = 50, + SVGA3D_R32G32B32_UINT = 51, + SVGA3D_R32G32B32_SINT = 52, + SVGA3D_R16G16B16A16_TYPELESS = 53, + SVGA3D_R16G16B16A16_FLOAT = 24, + SVGA3D_R16G16B16A16_UNORM = 41, + SVGA3D_R16G16B16A16_UINT = 54, + SVGA3D_R16G16B16A16_SNORM = 55, + SVGA3D_R16G16B16A16_SINT = 56, + SVGA3D_R32G32_TYPELESS = 57, + SVGA3D_R32G32_FLOAT = 36, + SVGA3D_R32G32_UINT = 58, + SVGA3D_R32G32_SINT = 59, + SVGA3D_R32G8X24_TYPELESS = 60, + SVGA3D_D32_FLOAT_S8X24_UINT = 61, + SVGA3D_R32_FLOAT_X8X24_TYPELESS = 62, + SVGA3D_X32_TYPELESS_G8X24_UINT = 63, + SVGA3D_R10G10B10A2_TYPELESS = 64, + SVGA3D_R10G10B10A2_UNORM = 26, + SVGA3D_R10G10B10A2_UINT = 65, + SVGA3D_R11G11B10_FLOAT = 66, + SVGA3D_R8G8B8A8_TYPELESS = 67, + SVGA3D_R8G8B8A8_UNORM = 68, + SVGA3D_R8G8B8A8_UNORM_SRGB = 69, + SVGA3D_R8G8B8A8_UINT = 70, + SVGA3D_R8G8B8A8_SNORM = 28, + SVGA3D_R8G8B8A8_SINT = 71, + SVGA3D_R16G16_TYPELESS = 72, + SVGA3D_R16G16_FLOAT = 35, + SVGA3D_R16G16_UNORM = 40, + SVGA3D_R16G16_UINT = 73, + SVGA3D_R16G16_SNORM = 39, + SVGA3D_R16G16_SINT = 74, + SVGA3D_R32_TYPELESS = 75, + SVGA3D_D32_FLOAT = 76, + SVGA3D_R32_FLOAT = 34, + SVGA3D_R32_UINT = 77, + SVGA3D_R32_SINT = 78, + SVGA3D_R24G8_TYPELESS = 79, + SVGA3D_D24_UNORM_S8_UINT = 80, + SVGA3D_R24_UNORM_X8_TYPELESS = 81, + SVGA3D_X24_TYPELESS_G8_UINT = 82, + SVGA3D_R8G8_TYPELESS = 83, + SVGA3D_R8G8_UNORM = 84, + SVGA3D_R8G8_UINT = 85, + SVGA3D_R8G8_SNORM = 27, + SVGA3D_R8G8_SINT = 86, + SVGA3D_R16_TYPELESS = 87, + SVGA3D_R16_FLOAT = 33, + SVGA3D_D16_UNORM = 8, + SVGA3D_R16_UNORM = 88, + SVGA3D_R16_UINT = 89, + SVGA3D_R16_SNORM = 90, + SVGA3D_R16_SINT = 91, + SVGA3D_R8_TYPELESS = 92, + SVGA3D_R8_UNORM = 93, + SVGA3D_R8_UINT = 94, + SVGA3D_R8_SNORM = 95, + SVGA3D_R8_SINT = 96, + SVGA3D_A8_UNORM = 32, + SVGA3D_R1_UNORM = 97, + SVGA3D_R9G9B9E5_SHAREDEXP = 98, + SVGA3D_R8G8_B8G8_UNORM = 99, + SVGA3D_G8R8_G8B8_UNORM = 100, + SVGA3D_BC1_TYPELESS = 101, + SVGA3D_BC1_UNORM = 15, + SVGA3D_BC1_UNORM_SRGB = 102, + SVGA3D_BC2_TYPELESS = 103, + SVGA3D_BC2_UNORM = 17, + SVGA3D_BC2_UNORM_SRGB = 104, + SVGA3D_BC3_TYPELESS = 105, + SVGA3D_BC3_UNORM = 19, + SVGA3D_BC3_UNORM_SRGB = 106, + SVGA3D_BC4_TYPELESS = 107, SVGA3D_BC4_UNORM = 108, + SVGA3D_BC4_SNORM = 109, + SVGA3D_BC5_TYPELESS = 110, SVGA3D_BC5_UNORM = 111, + SVGA3D_BC5_SNORM = 112, + SVGA3D_B5G6R5_UNORM = 3, + SVGA3D_B5G5R5A1_UNORM = 5, + SVGA3D_B8G8R8A8_UNORM = 2, + SVGA3D_B8G8R8X8_UNORM = 1, + SVGA3D_R10G10B10_XR_BIAS_A2_UNORM = 113, + SVGA3D_B8G8R8A8_TYPELESS = 114, + SVGA3D_B8G8R8A8_UNORM_SRGB = 115, + SVGA3D_B8G8R8X8_TYPELESS = 116, + SVGA3D_B8G8R8X8_UNORM_SRGB = 117, /* Advanced D3D9 depth formats. */ SVGA3D_Z_DF16 = 118, SVGA3D_Z_DF24 = 119, SVGA3D_Z_D24S8_INT = 120, - SVGA3D_FORMAT_MAX + /* Planar video formats. */ + SVGA3D_YV12 = 121, + + SVGA3D_FORMAT_MAX = 122, } SVGA3dSurfaceFormat; typedef uint32 SVGA3dColor; /* a, r, g, b */ @@ -957,15 +1051,21 @@ } SVGA3dCubeFace; typedef enum { + SVGA3D_SHADERTYPE_INVALID = 0, + SVGA3D_SHADERTYPE_MIN = 1, SVGA3D_SHADERTYPE_VS = 1, SVGA3D_SHADERTYPE_PS = 2, - SVGA3D_SHADERTYPE_MAX + SVGA3D_SHADERTYPE_MAX = 3, + SVGA3D_SHADERTYPE_GS = 3, } SVGA3dShaderType; +#define SVGA3D_NUM_SHADERTYPE (SVGA3D_SHADERTYPE_MAX - SVGA3D_SHADERTYPE_MIN) + typedef enum { SVGA3D_CONST_TYPE_FLOAT = 0, SVGA3D_CONST_TYPE_INT = 1, SVGA3D_CONST_TYPE_BOOL = 2, + SVGA3D_CONST_TYPE_MAX } SVGA3dShaderConstType; #define SVGA3D_MAX_SURFACE_FACES 6 @@ -1056,9 +1156,84 @@ #define SVGA_3D_CMD_GENERATE_MIPMAPS SVGA_3D_CMD_BASE + 31 #define SVGA_3D_CMD_ACTIVATE_SURFACE SVGA_3D_CMD_BASE + 40 #define SVGA_3D_CMD_DEACTIVATE_SURFACE SVGA_3D_CMD_BASE + 41 -#define SVGA_3D_CMD_MAX SVGA_3D_CMD_BASE + 42 +#define SVGA_3D_CMD_SCREEN_DMA 1082 +#define SVGA_3D_CMD_SET_UNITY_SURFACE_COOKIE 1083 +#define SVGA_3D_CMD_OPEN_CONTEXT_SURFACE 1084 + +#define SVGA_3D_CMD_LOGICOPS_BITBLT 1085 +#define SVGA_3D_CMD_LOGICOPS_TRANSBLT 1086 +#define SVGA_3D_CMD_LOGICOPS_STRETCHBLT 1087 +#define SVGA_3D_CMD_LOGICOPS_COLORFILL 1088 +#define SVGA_3D_CMD_LOGICOPS_ALPHABLEND 1089 +#define SVGA_3D_CMD_LOGICOPS_CLEARTYPEBLEND 1090 + +#define SVGA_3D_CMD_SET_OTABLE_BASE 1091 +#define SVGA_3D_CMD_READBACK_OTABLE 1092 + +#define SVGA_3D_CMD_DEFINE_GB_MOB 1093 +#define SVGA_3D_CMD_DESTROY_GB_MOB 1094 +#define SVGA_3D_CMD_REDEFINE_GB_MOB 1095 +#define SVGA_3D_CMD_UPDATE_GB_MOB_MAPPING 1096 + +#define SVGA_3D_CMD_DEFINE_GB_SURFACE 1097 +#define SVGA_3D_CMD_DESTROY_GB_SURFACE 1098 +#define SVGA_3D_CMD_BIND_GB_SURFACE 1099 +#define SVGA_3D_CMD_COND_BIND_GB_SURFACE 1100 +#define SVGA_3D_CMD_UPDATE_GB_IMAGE 1101 +#define SVGA_3D_CMD_UPDATE_GB_SURFACE 1102 +#define SVGA_3D_CMD_READBACK_GB_IMAGE 1103 +#define SVGA_3D_CMD_READBACK_GB_SURFACE 1104 +#define SVGA_3D_CMD_INVALIDATE_GB_IMAGE 1105 +#define SVGA_3D_CMD_INVALIDATE_GB_SURFACE 1106 + +#define SVGA_3D_CMD_DEFINE_GB_CONTEXT 1107 +#define SVGA_3D_CMD_DESTROY_GB_CONTEXT 1108 +#define SVGA_3D_CMD_BIND_GB_CONTEXT 1109 +#define SVGA_3D_CMD_READBACK_GB_CONTEXT 1110 +#define SVGA_3D_CMD_INVALIDATE_GB_CONTEXT 1111 + +#define SVGA_3D_CMD_DEFINE_GB_SHADER 1112 +#define SVGA_3D_CMD_DESTROY_GB_SHADER 1113 +#define SVGA_3D_CMD_BIND_GB_SHADER 1114 + +#define SVGA_3D_CMD_SET_OTABLE_BASE64 1115 + +#define SVGA_3D_CMD_BEGIN_GB_QUERY 1116 +#define SVGA_3D_CMD_END_GB_QUERY 1117 +#define SVGA_3D_CMD_WAIT_FOR_GB_QUERY 1118 + +#define SVGA_3D_CMD_NOP 1119 + +#define SVGA_3D_CMD_ENABLE_GART 1120 +#define SVGA_3D_CMD_DISABLE_GART 1121 +#define SVGA_3D_CMD_MAP_MOB_INTO_GART 1122 +#define SVGA_3D_CMD_UNMAP_GART_RANGE 1123 + +#define SVGA_3D_CMD_DEFINE_GB_SCREENTARGET 1124 +#define SVGA_3D_CMD_DESTROY_GB_SCREENTARGET 1125 +#define SVGA_3D_CMD_BIND_GB_SCREENTARGET 1126 +#define SVGA_3D_CMD_UPDATE_GB_SCREENTARGET 1127 + +#define SVGA_3D_CMD_READBACK_GB_IMAGE_PARTIAL 1128 +#define SVGA_3D_CMD_INVALIDATE_GB_IMAGE_PARTIAL 1129 + +#define SVGA_3D_CMD_SET_GB_SHADERCONSTS_INLINE 1130 +#define SVGA_3D_CMD_GB_SCREEN_DMA 1131 +#define SVGA_3D_CMD_BIND_GB_SURFACE_WITH_PITCH 1132 +#define SVGA_3D_CMD_GB_MOB_FENCE 1133 +#define SVGA_3D_CMD_DEFINE_GB_SURFACE_V2 1134 +#define SVGA_3D_CMD_DEFINE_GB_MOB64 1135 +#define SVGA_3D_CMD_REDEFINE_GB_MOB64 1136 +#define SVGA_3D_CMD_NOP_ERROR 1137 + +#define SVGA_3D_CMD_RESERVED1 1138 +#define SVGA_3D_CMD_RESERVED2 1139 +#define SVGA_3D_CMD_RESERVED3 1140 +#define SVGA_3D_CMD_RESERVED4 1141 +#define SVGA_3D_CMD_RESERVED5 1142 -#define SVGA_3D_CMD_FUTURE_MAX 2000 +#define SVGA_3D_CMD_MAX 1142 +#define SVGA_3D_CMD_FUTURE_MAX 3000 /* * Common substructures used in multiple FIFO commands: @@ -1750,6 +1925,507 @@ /* + * Guest-backed surface definitions. + */ + +typedef uint32 SVGAMobId; + +typedef enum SVGAMobFormat { + SVGA3D_MOBFMT_INVALID = SVGA3D_INVALID_ID, + SVGA3D_MOBFMT_PTDEPTH_0 = 0, + SVGA3D_MOBFMT_PTDEPTH_1 = 1, + SVGA3D_MOBFMT_PTDEPTH_2 = 2, + SVGA3D_MOBFMT_RANGE = 3, + SVGA3D_MOBFMT_PTDEPTH64_0 = 4, + SVGA3D_MOBFMT_PTDEPTH64_1 = 5, + SVGA3D_MOBFMT_PTDEPTH64_2 = 6, + SVGA3D_MOBFMT_MAX, +} SVGAMobFormat; + +/* + * Sizes of opaque types. + */ + +#define SVGA3D_OTABLE_MOB_ENTRY_SIZE 16 +#define SVGA3D_OTABLE_CONTEXT_ENTRY_SIZE 8 +#define SVGA3D_OTABLE_SURFACE_ENTRY_SIZE 64 +#define SVGA3D_OTABLE_SHADER_ENTRY_SIZE 16 +#define SVGA3D_OTABLE_SCREEN_TARGET_ENTRY_SIZE 64 +#define SVGA3D_CONTEXT_DATA_SIZE 16384 + +/* + * SVGA3dCmdSetOTableBase -- + * + * This command allows the guest to specify the base PPN of the + * specified object table. + */ + +typedef enum { + SVGA_OTABLE_MOB = 0, + SVGA_OTABLE_MIN = 0, + SVGA_OTABLE_SURFACE = 1, + SVGA_OTABLE_CONTEXT = 2, + SVGA_OTABLE_SHADER = 3, + SVGA_OTABLE_SCREEN_TARGET = 4, + SVGA_OTABLE_DX9_MAX = 5, + SVGA_OTABLE_MAX = 8 +} SVGAOTableType; + +typedef +struct { + SVGAOTableType type; + PPN baseAddress; + uint32 sizeInBytes; + uint32 validSizeInBytes; + SVGAMobFormat ptDepth; +} __packed +SVGA3dCmdSetOTableBase; /* SVGA_3D_CMD_SET_OTABLE_BASE */ + +typedef +struct { + SVGAOTableType type; + PPN64 baseAddress; + uint32 sizeInBytes; + uint32 validSizeInBytes; + SVGAMobFormat ptDepth; +} __packed +SVGA3dCmdSetOTableBase64; /* SVGA_3D_CMD_SET_OTABLE_BASE64 */ + +typedef +struct { + SVGAOTableType type; +} __packed +SVGA3dCmdReadbackOTable; /* SVGA_3D_CMD_READBACK_OTABLE */ + +/* + * Define a memory object (Mob) in the OTable. + */ + +typedef +struct SVGA3dCmdDefineGBMob { + SVGAMobId mobid; + SVGAMobFormat ptDepth; + PPN base; + uint32 sizeInBytes; +} __packed +SVGA3dCmdDefineGBMob; /* SVGA_3D_CMD_DEFINE_GB_MOB */ + + +/* + * Destroys an object in the OTable. + */ + +typedef +struct SVGA3dCmdDestroyGBMob { + SVGAMobId mobid; +} __packed +SVGA3dCmdDestroyGBMob; /* SVGA_3D_CMD_DESTROY_GB_MOB */ + +/* + * Redefine an object in the OTable. + */ + +typedef +struct SVGA3dCmdRedefineGBMob { + SVGAMobId mobid; + SVGAMobFormat ptDepth; + PPN base; + uint32 sizeInBytes; +} __packed +SVGA3dCmdRedefineGBMob; /* SVGA_3D_CMD_REDEFINE_GB_MOB */ + +/* + * Define a memory object (Mob) in the OTable with a PPN64 base. + */ + +typedef +struct SVGA3dCmdDefineGBMob64 { + SVGAMobId mobid; + SVGAMobFormat ptDepth; + PPN64 base; + uint32 sizeInBytes; +} __packed +SVGA3dCmdDefineGBMob64; /* SVGA_3D_CMD_DEFINE_GB_MOB64 */ + +/* + * Redefine an object in the OTable with PPN64 base. + */ + +typedef +struct SVGA3dCmdRedefineGBMob64 { + SVGAMobId mobid; + SVGAMobFormat ptDepth; + PPN64 base; + uint32 sizeInBytes; +} __packed +SVGA3dCmdRedefineGBMob64; /* SVGA_3D_CMD_REDEFINE_GB_MOB64 */ + +/* + * Notification that the page tables have been modified. + */ + +typedef +struct SVGA3dCmdUpdateGBMobMapping { + SVGAMobId mobid; +} __packed +SVGA3dCmdUpdateGBMobMapping; /* SVGA_3D_CMD_UPDATE_GB_MOB_MAPPING */ + +/* + * Define a guest-backed surface. + */ + +typedef +struct SVGA3dCmdDefineGBSurface { + uint32 sid; + SVGA3dSurfaceFlags surfaceFlags; + SVGA3dSurfaceFormat format; + uint32 numMipLevels; + uint32 multisampleCount; + SVGA3dTextureFilter autogenFilter; + SVGA3dSize size; +} __packed +SVGA3dCmdDefineGBSurface; /* SVGA_3D_CMD_DEFINE_GB_SURFACE */ + +/* + * Destroy a guest-backed surface. + */ + +typedef +struct SVGA3dCmdDestroyGBSurface { + uint32 sid; +} __packed +SVGA3dCmdDestroyGBSurface; /* SVGA_3D_CMD_DESTROY_GB_SURFACE */ + +/* + * Bind a guest-backed surface to an object. + */ + +typedef +struct SVGA3dCmdBindGBSurface { + uint32 sid; + SVGAMobId mobid; +} __packed +SVGA3dCmdBindGBSurface; /* SVGA_3D_CMD_BIND_GB_SURFACE */ + +/* + * Conditionally bind a mob to a guest backed surface if testMobid + * matches the currently bound mob. Optionally issue a readback on + * the surface while it is still bound to the old mobid if the mobid + * is changed by this command. + */ + +#define SVGA3D_COND_BIND_GB_SURFACE_FLAG_READBACK (1 << 0) + +typedef +struct{ + uint32 sid; + SVGAMobId testMobid; + SVGAMobId mobid; + uint32 flags; +} __packed +SVGA3dCmdCondBindGBSurface; /* SVGA_3D_CMD_COND_BIND_GB_SURFACE */ + +/* + * Update an image in a guest-backed surface. + * (Inform the device that the guest-contents have been updated.) + */ + +typedef +struct SVGA3dCmdUpdateGBImage { + SVGA3dSurfaceImageId image; + SVGA3dBox box; +} __packed +SVGA3dCmdUpdateGBImage; /* SVGA_3D_CMD_UPDATE_GB_IMAGE */ + +/* + * Update an entire guest-backed surface. + * (Inform the device that the guest-contents have been updated.) + */ + +typedef +struct SVGA3dCmdUpdateGBSurface { + uint32 sid; +} __packed +SVGA3dCmdUpdateGBSurface; /* SVGA_3D_CMD_UPDATE_GB_SURFACE */ + +/* + * Readback an image in a guest-backed surface. + * (Request the device to flush the dirty contents into the guest.) + */ + +typedef +struct SVGA3dCmdReadbackGBImage { + SVGA3dSurfaceImageId image; +} __packed +SVGA3dCmdReadbackGBImage; /* SVGA_3D_CMD_READBACK_GB_IMAGE*/ + +/* + * Readback an entire guest-backed surface. + * (Request the device to flush the dirty contents into the guest.) + */ + +typedef +struct SVGA3dCmdReadbackGBSurface { + uint32 sid; +} __packed +SVGA3dCmdReadbackGBSurface; /* SVGA_3D_CMD_READBACK_GB_SURFACE */ + +/* + * Readback a sub rect of an image in a guest-backed surface. After + * issuing this command the driver is required to issue an update call + * of the same region before issuing any other commands that reference + * this surface or rendering is not guaranteed. + */ + +typedef +struct SVGA3dCmdReadbackGBImagePartial { + SVGA3dSurfaceImageId image; + SVGA3dBox box; + uint32 invertBox; +} __packed +SVGA3dCmdReadbackGBImagePartial; /* SVGA_3D_CMD_READBACK_GB_IMAGE_PARTIAL */ + +/* + * Invalidate an image in a guest-backed surface. + * (Notify the device that the contents can be lost.) + */ + +typedef +struct SVGA3dCmdInvalidateGBImage { + SVGA3dSurfaceImageId image; +} __packed +SVGA3dCmdInvalidateGBImage; /* SVGA_3D_CMD_INVALIDATE_GB_IMAGE */ + +/* + * Invalidate an entire guest-backed surface. + * (Notify the device that the contents if all images can be lost.) + */ + +typedef +struct SVGA3dCmdInvalidateGBSurface { + uint32 sid; +} __packed +SVGA3dCmdInvalidateGBSurface; /* SVGA_3D_CMD_INVALIDATE_GB_SURFACE */ + +/* + * Invalidate a sub rect of an image in a guest-backed surface. After + * issuing this command the driver is required to issue an update call + * of the same region before issuing any other commands that reference + * this surface or rendering is not guaranteed. + */ + +typedef +struct SVGA3dCmdInvalidateGBImagePartial { + SVGA3dSurfaceImageId image; + SVGA3dBox box; + uint32 invertBox; +} __packed +SVGA3dCmdInvalidateGBImagePartial; /* SVGA_3D_CMD_INVALIDATE_GB_IMAGE_PARTIAL */ + +/* + * Define a guest-backed context. + */ + +typedef +struct SVGA3dCmdDefineGBContext { + uint32 cid; +} __packed +SVGA3dCmdDefineGBContext; /* SVGA_3D_CMD_DEFINE_GB_CONTEXT */ + +/* + * Destroy a guest-backed context. + */ + +typedef +struct SVGA3dCmdDestroyGBContext { + uint32 cid; +} __packed +SVGA3dCmdDestroyGBContext; /* SVGA_3D_CMD_DESTROY_GB_CONTEXT */ + +/* + * Bind a guest-backed context. + * + * validContents should be set to 0 for new contexts, + * and 1 if this is an old context which is getting paged + * back on to the device. + * + * For new contexts, it is recommended that the driver + * issue commands to initialize all interesting state + * prior to rendering. + */ + +typedef +struct SVGA3dCmdBindGBContext { + uint32 cid; + SVGAMobId mobid; + uint32 validContents; +} __packed +SVGA3dCmdBindGBContext; /* SVGA_3D_CMD_BIND_GB_CONTEXT */ + +/* + * Readback a guest-backed context. + * (Request that the device flush the contents back into guest memory.) + */ + +typedef +struct SVGA3dCmdReadbackGBContext { + uint32 cid; +} __packed +SVGA3dCmdReadbackGBContext; /* SVGA_3D_CMD_READBACK_GB_CONTEXT */ + +/* + * Invalidate a guest-backed context. + */ +typedef +struct SVGA3dCmdInvalidateGBContext { + uint32 cid; +} __packed +SVGA3dCmdInvalidateGBContext; /* SVGA_3D_CMD_INVALIDATE_GB_CONTEXT */ + +/* + * Define a guest-backed shader. + */ + +typedef +struct SVGA3dCmdDefineGBShader { + uint32 shid; + SVGA3dShaderType type; + uint32 sizeInBytes; +} __packed +SVGA3dCmdDefineGBShader; /* SVGA_3D_CMD_DEFINE_GB_SHADER */ + +/* + * Bind a guest-backed shader. + */ + +typedef struct SVGA3dCmdBindGBShader { + uint32 shid; + SVGAMobId mobid; + uint32 offsetInBytes; +} __packed +SVGA3dCmdBindGBShader; /* SVGA_3D_CMD_BIND_GB_SHADER */ + +/* + * Destroy a guest-backed shader. + */ + +typedef struct SVGA3dCmdDestroyGBShader { + uint32 shid; +} __packed +SVGA3dCmdDestroyGBShader; /* SVGA_3D_CMD_DESTROY_GB_SHADER */ + +typedef +struct { + uint32 cid; + uint32 regStart; + SVGA3dShaderType shaderType; + SVGA3dShaderConstType constType; + + /* + * Followed by a variable number of shader constants. + * + * Note that FLOAT and INT constants are 4-dwords in length, while + * BOOL constants are 1-dword in length. + */ +} __packed +SVGA3dCmdSetGBShaderConstInline; +/* SVGA_3D_CMD_SET_GB_SHADERCONSTS_INLINE */ + +typedef +struct { + uint32 cid; + SVGA3dQueryType type; +} __packed +SVGA3dCmdBeginGBQuery; /* SVGA_3D_CMD_BEGIN_GB_QUERY */ + +typedef +struct { + uint32 cid; + SVGA3dQueryType type; + SVGAMobId mobid; + uint32 offset; +} __packed +SVGA3dCmdEndGBQuery; /* SVGA_3D_CMD_END_GB_QUERY */ + + +/* + * SVGA_3D_CMD_WAIT_FOR_GB_QUERY -- + * + * The semantics of this command are identical to the + * SVGA_3D_CMD_WAIT_FOR_QUERY except that the results are written + * to a Mob instead of a GMR. + */ + +typedef +struct { + uint32 cid; + SVGA3dQueryType type; + SVGAMobId mobid; + uint32 offset; +} __packed +SVGA3dCmdWaitForGBQuery; /* SVGA_3D_CMD_WAIT_FOR_GB_QUERY */ + +typedef +struct { + SVGAMobId mobid; + uint32 fbOffset; + uint32 initalized; +} __packed +SVGA3dCmdEnableGart; /* SVGA_3D_CMD_ENABLE_GART */ + +typedef +struct { + SVGAMobId mobid; + uint32 gartOffset; +} __packed +SVGA3dCmdMapMobIntoGart; /* SVGA_3D_CMD_MAP_MOB_INTO_GART */ + + +typedef +struct { + uint32 gartOffset; + uint32 numPages; +} __packed +SVGA3dCmdUnmapGartRange; /* SVGA_3D_CMD_UNMAP_GART_RANGE */ + + +/* + * Screen Targets + */ +#define SVGA_STFLAG_PRIMARY (1 << 0) + +typedef +struct { + uint32 stid; + uint32 width; + uint32 height; + int32 xRoot; + int32 yRoot; + uint32 flags; +} __packed +SVGA3dCmdDefineGBScreenTarget; /* SVGA_3D_CMD_DEFINE_GB_SCREENTARGET */ + +typedef +struct { + uint32 stid; +} __packed +SVGA3dCmdDestroyGBScreenTarget; /* SVGA_3D_CMD_DESTROY_GB_SCREENTARGET */ + +typedef +struct { + uint32 stid; + SVGA3dSurfaceImageId image; +} __packed +SVGA3dCmdBindGBScreenTarget; /* SVGA_3D_CMD_BIND_GB_SCREENTARGET */ + +typedef +struct { + uint32 stid; + SVGA3dBox box; +} __packed +SVGA3dCmdUpdateGBScreenTarget; /* SVGA_3D_CMD_UPDATE_GB_SCREENTARGET */ + +/* * Capability query index. * * Notes: @@ -1879,10 +2555,41 @@ SVGA3D_DEVCAP_SURFACEFMT_BC5_UNORM = 83, /* - * Don't add new caps into the previous section; the values in this - * enumeration must not change. You can put new values right before - * SVGA3D_DEVCAP_MAX. + * Deprecated. + */ + SVGA3D_DEVCAP_VGPU10 = 84, + + /* + * This contains several SVGA_3D_CAPS_VIDEO_DECODE elements + * ored together, one for every type of video decoding supported. */ + SVGA3D_DEVCAP_VIDEO_DECODE = 85, + + /* + * This contains several SVGA_3D_CAPS_VIDEO_PROCESS elements + * ored together, one for every type of video processing supported. + */ + SVGA3D_DEVCAP_VIDEO_PROCESS = 86, + + SVGA3D_DEVCAP_LINE_AA = 87, /* boolean */ + SVGA3D_DEVCAP_LINE_STIPPLE = 88, /* boolean */ + SVGA3D_DEVCAP_MAX_LINE_WIDTH = 89, /* float */ + SVGA3D_DEVCAP_MAX_AA_LINE_WIDTH = 90, /* float */ + + SVGA3D_DEVCAP_SURFACEFMT_YV12 = 91, + + /* + * Does the host support the SVGA logic ops commands? + */ + SVGA3D_DEVCAP_LOGICOPS = 92, + + /* + * What support does the host have for screen targets? + * + * See the SVGA3D_SCREENTARGET_CAP bits below. + */ + SVGA3D_DEVCAP_SCREENTARGETS = 93, + SVGA3D_DEVCAP_MAX /* This must be the last index. */ } SVGA3dDevCapIndex; @@ -1893,4 +2600,28 @@ float f; } SVGA3dDevCapResult; +typedef enum { + SVGA3DCAPS_RECORD_UNKNOWN = 0, + SVGA3DCAPS_RECORD_DEVCAPS_MIN = 0x100, + SVGA3DCAPS_RECORD_DEVCAPS = 0x100, + SVGA3DCAPS_RECORD_DEVCAPS_MAX = 0x1ff, +} SVGA3dCapsRecordType; + +typedef +struct SVGA3dCapsRecordHeader { + uint32 length; + SVGA3dCapsRecordType type; +} +SVGA3dCapsRecordHeader; + +typedef +struct SVGA3dCapsRecord { + SVGA3dCapsRecordHeader header; + uint32 data[1]; +} +SVGA3dCapsRecord; + + +typedef uint32 SVGA3dCapPair[2]; + #endif /* _SVGA3D_REG_H_ */ --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/svga3d_surfacedefs.h +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/svga3d_surfacedefs.h @@ -38,11 +38,15 @@ #define DIV_ROUND_UP(x, y) (((x) + (y) - 1) / (y)) #define max_t(type, x, y) ((x) > (y) ? (x) : (y)) +#define min_t(type, x, y) ((x) < (y) ? (x) : (y)) #define surf_size_struct SVGA3dSize #define u32 uint32 +#define u64 uint64_t #endif /* __KERNEL__ */ +#define U32_MAX ((u32)~0U) + #include "svga3d_reg.h" /* @@ -704,8 +708,8 @@ static inline u32 clamped_umul32(u32 a, u32 b) { - uint64_t tmp = (uint64_t) a*b; - return (tmp > (uint64_t) ((u32) -1)) ? (u32) -1 : tmp; + u64 tmp = (u64) a*b; + return (tmp > (u64) U32_MAX) ? U32_MAX : tmp; } static inline const struct svga3d_surface_desc * @@ -834,7 +838,7 @@ bool cubemap) { const struct svga3d_surface_desc *desc = svga3dsurface_get_desc(format); - u32 total_size = 0; + u64 total_size = 0; u32 mip; for (mip = 0; mip < num_mip_levels; mip++) { @@ -847,7 +851,7 @@ if (cubemap) total_size *= SVGA3D_MAX_SURFACE_FACES; - return total_size; + return (u32) min_t(u64, total_size, (u64) U32_MAX); } --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/svga_reg.h +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/svga_reg.h @@ -169,7 +169,17 @@ SVGA_REG_TRACES = 45, /* Enable trace-based updates even when FIFO is on */ SVGA_REG_GMRS_MAX_PAGES = 46, /* Maximum number of 4KB pages for all GMRs */ SVGA_REG_MEMORY_SIZE = 47, /* Total dedicated device memory excluding FIFO */ - SVGA_REG_TOP = 48, /* Must be 1 more than the last register */ + SVGA_REG_COMMAND_LOW = 48, /* Lower 32 bits and submits commands */ + SVGA_REG_COMMAND_HIGH = 49, /* Upper 32 bits of command buffer PA */ + SVGA_REG_MAX_PRIMARY_BOUNDING_BOX_MEM = 50, /* Max primary memory */ + SVGA_REG_SUGGESTED_GBOBJECT_MEM_SIZE_KB = 51, /* Suggested limit on mob mem */ + SVGA_REG_DEV_CAP = 52, /* Write dev cap index, read value */ + SVGA_REG_CMD_PREPEND_LOW = 53, + SVGA_REG_CMD_PREPEND_HIGH = 54, + SVGA_REG_SCREENTARGET_MAX_WIDTH = 55, + SVGA_REG_SCREENTARGET_MAX_HEIGHT = 56, + SVGA_REG_MOB_MAX_SIZE = 57, + SVGA_REG_TOP = 58, /* Must be 1 more than the last register */ SVGA_PALETTE_BASE = 1024, /* Base of SVGA color map */ /* Next 768 (== 256*3) registers exist for colormap */ @@ -431,7 +441,10 @@ #define SVGA_CAP_TRACES 0x00200000 #define SVGA_CAP_GMR2 0x00400000 #define SVGA_CAP_SCREEN_OBJECT_2 0x00800000 - +#define SVGA_CAP_COMMAND_BUFFERS 0x01000000 +#define SVGA_CAP_DEAD1 0x02000000 +#define SVGA_CAP_CMD_BUFFERS_2 0x04000000 +#define SVGA_CAP_GBOBJECTS 0x08000000 /* * FIFO register indices. --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c @@ -40,6 +40,10 @@ static uint32_t sys_placement_flags = TTM_PL_FLAG_SYSTEM | TTM_PL_FLAG_CACHED; +static uint32_t sys_ne_placement_flags = TTM_PL_FLAG_SYSTEM | + TTM_PL_FLAG_CACHED | + TTM_PL_FLAG_NO_EVICT; + static uint32_t gmr_placement_flags = VMW_PL_FLAG_GMR | TTM_PL_FLAG_CACHED; @@ -47,6 +51,9 @@ TTM_PL_FLAG_CACHED | TTM_PL_FLAG_NO_EVICT; +static uint32_t mob_placement_flags = VMW_PL_FLAG_MOB | + TTM_PL_FLAG_CACHED; + struct ttm_placement vmw_vram_placement = { .fpfn = 0, .lpfn = 0, @@ -116,16 +123,26 @@ .busy_placement = &sys_placement_flags }; +struct ttm_placement vmw_sys_ne_placement = { + .fpfn = 0, + .lpfn = 0, + .num_placement = 1, + .placement = &sys_ne_placement_flags, + .num_busy_placement = 1, + .busy_placement = &sys_ne_placement_flags +}; + static uint32_t evictable_placement_flags[] = { TTM_PL_FLAG_SYSTEM | TTM_PL_FLAG_CACHED, TTM_PL_FLAG_VRAM | TTM_PL_FLAG_CACHED, - VMW_PL_FLAG_GMR | TTM_PL_FLAG_CACHED + VMW_PL_FLAG_GMR | TTM_PL_FLAG_CACHED, + VMW_PL_FLAG_MOB | TTM_PL_FLAG_CACHED }; struct ttm_placement vmw_evictable_placement = { .fpfn = 0, .lpfn = 0, - .num_placement = 3, + .num_placement = 4, .placement = evictable_placement_flags, .num_busy_placement = 1, .busy_placement = &sys_placement_flags @@ -140,10 +157,21 @@ .busy_placement = gmr_vram_placement_flags }; +struct ttm_placement vmw_mob_placement = { + .fpfn = 0, + .lpfn = 0, + .num_placement = 1, + .num_busy_placement = 1, + .placement = &mob_placement_flags, + .busy_placement = &mob_placement_flags +}; + struct vmw_ttm_tt { struct ttm_dma_tt dma_ttm; struct vmw_private *dev_priv; int gmr_id; + struct vmw_mob *mob; + int mem_type; struct sg_table sgt; struct vmw_sg_table vsgt; uint64_t sg_alloc_size; @@ -244,6 +272,7 @@ viter->dma_address = &__vmw_piter_dma_addr; viter->page = &__vmw_piter_non_sg_page; viter->addrs = vsgt->addrs; + viter->pages = vsgt->pages; break; case vmw_dma_map_populate: case vmw_dma_map_bind: @@ -424,6 +453,63 @@ vmw_tt->mapped = false; } + +/** + * vmw_bo_map_dma - Make sure buffer object pages are visible to the device + * + * @bo: Pointer to a struct ttm_buffer_object + * + * Wrapper around vmw_ttm_map_dma, that takes a TTM buffer object pointer + * instead of a pointer to a struct vmw_ttm_backend as argument. + * Note that the buffer object must be either pinned or reserved before + * calling this function. + */ +int vmw_bo_map_dma(struct ttm_buffer_object *bo) +{ + struct vmw_ttm_tt *vmw_tt = + container_of(bo->ttm, struct vmw_ttm_tt, dma_ttm.ttm); + + return vmw_ttm_map_dma(vmw_tt); +} + + +/** + * vmw_bo_unmap_dma - Make sure buffer object pages are visible to the device + * + * @bo: Pointer to a struct ttm_buffer_object + * + * Wrapper around vmw_ttm_unmap_dma, that takes a TTM buffer object pointer + * instead of a pointer to a struct vmw_ttm_backend as argument. + */ +void vmw_bo_unmap_dma(struct ttm_buffer_object *bo) +{ + struct vmw_ttm_tt *vmw_tt = + container_of(bo->ttm, struct vmw_ttm_tt, dma_ttm.ttm); + + vmw_ttm_unmap_dma(vmw_tt); +} + + +/** + * vmw_bo_sg_table - Return a struct vmw_sg_table object for a + * TTM buffer object + * + * @bo: Pointer to a struct ttm_buffer_object + * + * Returns a pointer to a struct vmw_sg_table object. The object should + * not be freed after use. + * Note that for the device addresses to be valid, the buffer object must + * either be reserved or pinned. + */ +const struct vmw_sg_table *vmw_bo_sg_table(struct ttm_buffer_object *bo) +{ + struct vmw_ttm_tt *vmw_tt = + container_of(bo->ttm, struct vmw_ttm_tt, dma_ttm.ttm); + + return &vmw_tt->vsgt; +} + + static int vmw_ttm_bind(struct ttm_tt *ttm, struct ttm_mem_reg *bo_mem) { struct vmw_ttm_tt *vmw_be = @@ -435,9 +521,27 @@ return ret; vmw_be->gmr_id = bo_mem->start; + vmw_be->mem_type = bo_mem->mem_type; + + switch (bo_mem->mem_type) { + case VMW_PL_GMR: + return vmw_gmr_bind(vmw_be->dev_priv, &vmw_be->vsgt, + ttm->num_pages, vmw_be->gmr_id); + case VMW_PL_MOB: + if (unlikely(vmw_be->mob == NULL)) { + vmw_be->mob = + vmw_mob_create(ttm->num_pages); + if (unlikely(vmw_be->mob == NULL)) + return -ENOMEM; + } - return vmw_gmr_bind(vmw_be->dev_priv, &vmw_be->vsgt, - ttm->num_pages, vmw_be->gmr_id); + return vmw_mob_bind(vmw_be->dev_priv, vmw_be->mob, + &vmw_be->vsgt, ttm->num_pages, + vmw_be->gmr_id); + default: + BUG(); + } + return 0; } static int vmw_ttm_unbind(struct ttm_tt *ttm) @@ -445,7 +549,16 @@ struct vmw_ttm_tt *vmw_be = container_of(ttm, struct vmw_ttm_tt, dma_ttm.ttm); - vmw_gmr_unbind(vmw_be->dev_priv, vmw_be->gmr_id); + switch (vmw_be->mem_type) { + case VMW_PL_GMR: + vmw_gmr_unbind(vmw_be->dev_priv, vmw_be->gmr_id); + break; + case VMW_PL_MOB: + vmw_mob_unbind(vmw_be->dev_priv, vmw_be->mob); + break; + default: + BUG(); + } if (vmw_be->dev_priv->map_mode == vmw_dma_map_bind) vmw_ttm_unmap_dma(vmw_be); @@ -453,6 +566,7 @@ return 0; } + static void vmw_ttm_destroy(struct ttm_tt *ttm) { struct vmw_ttm_tt *vmw_be = @@ -463,9 +577,14 @@ ttm_dma_tt_fini(&vmw_be->dma_ttm); else ttm_tt_fini(ttm); + + if (vmw_be->mob) + vmw_mob_destroy(vmw_be->mob); + kfree(vmw_be); } + static int vmw_ttm_populate(struct ttm_tt *ttm) { struct vmw_ttm_tt *vmw_tt = @@ -500,6 +619,12 @@ struct vmw_private *dev_priv = vmw_tt->dev_priv; struct ttm_mem_global *glob = vmw_mem_glob(dev_priv); + + if (vmw_tt->mob) { + vmw_mob_destroy(vmw_tt->mob); + vmw_tt->mob = NULL; + } + vmw_ttm_unmap_dma(vmw_tt); if (dev_priv->map_mode == vmw_dma_alloc_coherent) { size_t size = @@ -517,7 +642,7 @@ .destroy = vmw_ttm_destroy, }; -struct ttm_tt *vmw_ttm_tt_create(struct ttm_bo_device *bdev, +static struct ttm_tt *vmw_ttm_tt_create(struct ttm_bo_device *bdev, unsigned long size, uint32_t page_flags, struct page *dummy_read_page) { @@ -530,6 +655,7 @@ vmw_be->dma_ttm.ttm.func = &vmw_ttm_func; vmw_be->dev_priv = container_of(bdev, struct vmw_private, bdev); + vmw_be->mob = NULL; if (vmw_be->dev_priv->map_mode == vmw_dma_alloc_coherent) ret = ttm_dma_tt_init(&vmw_be->dma_ttm, bdev, size, page_flags, @@ -546,12 +672,12 @@ return NULL; } -int vmw_invalidate_caches(struct ttm_bo_device *bdev, uint32_t flags) +static int vmw_invalidate_caches(struct ttm_bo_device *bdev, uint32_t flags) { return 0; } -int vmw_init_mem_type(struct ttm_bo_device *bdev, uint32_t type, +static int vmw_init_mem_type(struct ttm_bo_device *bdev, uint32_t type, struct ttm_mem_type_manager *man) { switch (type) { @@ -571,6 +697,7 @@ man->default_caching = TTM_PL_FLAG_CACHED; break; case VMW_PL_GMR: + case VMW_PL_MOB: /* * "Guest Memory Regions" is an aperture like feature with * one slot per bo. There is an upper limit of the number of @@ -589,7 +716,7 @@ return 0; } -void vmw_evict_flags(struct ttm_buffer_object *bo, +static void vmw_evict_flags(struct ttm_buffer_object *bo, struct ttm_placement *placement) { *placement = vmw_sys_placement; @@ -618,6 +745,7 @@ switch (mem->mem_type) { case TTM_PL_SYSTEM: case VMW_PL_GMR: + case VMW_PL_MOB: return 0; case TTM_PL_VRAM: mem->bus.offset = mem->start << PAGE_SHIFT; @@ -677,6 +805,38 @@ VMW_FENCE_WAIT_TIMEOUT); } +/** + * vmw_move_notify - TTM move_notify_callback + * + * @bo: The TTM buffer object about to move. + * @mem: The truct ttm_mem_reg indicating to what memory + * region the move is taking place. + * + * Calls move_notify for all subsystems needing it. + * (currently only resources). + */ +static void vmw_move_notify(struct ttm_buffer_object *bo, + struct ttm_mem_reg *mem) +{ + vmw_resource_move_notify(bo, mem); +} + + +/** + * vmw_swap_notify - TTM move_notify_callback + * + * @bo: The TTM buffer object about to be swapped out. + */ +static void vmw_swap_notify(struct ttm_buffer_object *bo) +{ + struct ttm_bo_device *bdev = bo->bdev; + + spin_lock(&bdev->fence_lock); + ttm_bo_wait(bo, false, false, false); + spin_unlock(&bdev->fence_lock); +} + + struct ttm_bo_driver vmw_bo_driver = { .ttm_tt_create = &vmw_ttm_tt_create, .ttm_tt_populate = &vmw_ttm_populate, @@ -691,8 +851,8 @@ .sync_obj_flush = vmw_sync_obj_flush, .sync_obj_unref = vmw_sync_obj_unref, .sync_obj_ref = vmw_sync_obj_ref, - .move_notify = NULL, - .swap_notify = NULL, + .move_notify = vmw_move_notify, + .swap_notify = vmw_swap_notify, .fault_reserve_notify = &vmw_ttm_fault_reserve_notify, .io_mem_reserve = &vmw_ttm_io_mem_reserve, .io_mem_free = &vmw_ttm_io_mem_free, --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_context.c +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/vmwgfx_context.c @@ -32,12 +32,30 @@ struct vmw_user_context { struct ttm_base_object base; struct vmw_resource res; + struct vmw_ctx_binding_state cbs; }; + + +typedef int (*vmw_scrub_func)(struct vmw_ctx_bindinfo *, bool); + static void vmw_user_context_free(struct vmw_resource *res); static struct vmw_resource * vmw_user_context_base_to_res(struct ttm_base_object *base); +static int vmw_gb_context_create(struct vmw_resource *res); +static int vmw_gb_context_bind(struct vmw_resource *res, + struct ttm_validate_buffer *val_buf); +static int vmw_gb_context_unbind(struct vmw_resource *res, + bool readback, + struct ttm_validate_buffer *val_buf); +static int vmw_gb_context_destroy(struct vmw_resource *res); +static int vmw_context_scrub_shader(struct vmw_ctx_bindinfo *bi, bool rebind); +static int vmw_context_scrub_render_target(struct vmw_ctx_bindinfo *bi, + bool rebind); +static int vmw_context_scrub_texture(struct vmw_ctx_bindinfo *bi, bool rebind); +static void vmw_context_binding_state_scrub(struct vmw_ctx_binding_state *cbs); +static void vmw_context_binding_state_kill(struct vmw_ctx_binding_state *cbs); static uint64_t vmw_user_context_size; static const struct vmw_user_resource_conv user_context_conv = { @@ -62,6 +80,23 @@ .unbind = NULL }; +static const struct vmw_res_func vmw_gb_context_func = { + .res_type = vmw_res_context, + .needs_backup = true, + .may_evict = true, + .type_name = "guest backed contexts", + .backup_placement = &vmw_mob_placement, + .create = vmw_gb_context_create, + .destroy = vmw_gb_context_destroy, + .bind = vmw_gb_context_bind, + .unbind = vmw_gb_context_unbind +}; + +static const vmw_scrub_func vmw_scrub_funcs[vmw_ctx_binding_max] = { + [vmw_ctx_binding_shader] = vmw_context_scrub_shader, + [vmw_ctx_binding_rt] = vmw_context_scrub_render_target, + [vmw_ctx_binding_tex] = vmw_context_scrub_texture }; + /** * Context management: */ @@ -76,6 +111,20 @@ } *cmd; + if (res->func->destroy == vmw_gb_context_destroy) { + mutex_lock(&dev_priv->cmdbuf_mutex); + mutex_lock(&dev_priv->binding_mutex); + (void) vmw_context_binding_state_kill + (&container_of(res, struct vmw_user_context, res)->cbs); + (void) vmw_gb_context_destroy(res); + if (dev_priv->pinned_bo != NULL && + !dev_priv->query_cid_valid) + __vmw_execbuf_release_pinned_bo(dev_priv, NULL); + mutex_unlock(&dev_priv->binding_mutex); + mutex_unlock(&dev_priv->cmdbuf_mutex); + return; + } + vmw_execbuf_release_pinned_bo(dev_priv); cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); if (unlikely(cmd == NULL)) { @@ -92,6 +141,33 @@ vmw_3d_resource_dec(dev_priv, false); } +static int vmw_gb_context_init(struct vmw_private *dev_priv, + struct vmw_resource *res, + void (*res_free) (struct vmw_resource *res)) +{ + int ret; + struct vmw_user_context *uctx = + container_of(res, struct vmw_user_context, res); + + ret = vmw_resource_init(dev_priv, res, true, + res_free, &vmw_gb_context_func); + res->backup_size = SVGA3D_CONTEXT_DATA_SIZE; + + if (unlikely(ret != 0)) { + if (res_free) + res_free(res); + else + kfree(res); + return ret; + } + + memset(&uctx->cbs, 0, sizeof(uctx->cbs)); + INIT_LIST_HEAD(&uctx->cbs.list); + + vmw_resource_activate(res, vmw_hw_context_destroy); + return 0; +} + static int vmw_context_init(struct vmw_private *dev_priv, struct vmw_resource *res, void (*res_free) (struct vmw_resource *res)) @@ -103,6 +179,9 @@ SVGA3dCmdDefineContext body; } *cmd; + if (dev_priv->has_mob) + return vmw_gb_context_init(dev_priv, res, res_free); + ret = vmw_resource_init(dev_priv, res, false, res_free, &vmw_legacy_context_func); @@ -154,6 +233,180 @@ return (ret == 0) ? res : NULL; } + +static int vmw_gb_context_create(struct vmw_resource *res) +{ + struct vmw_private *dev_priv = res->dev_priv; + int ret; + struct { + SVGA3dCmdHeader header; + SVGA3dCmdDefineGBContext body; + } *cmd; + + if (likely(res->id != -1)) + return 0; + + ret = vmw_resource_alloc_id(res); + if (unlikely(ret != 0)) { + DRM_ERROR("Failed to allocate a context id.\n"); + goto out_no_id; + } + + if (unlikely(res->id >= VMWGFX_NUM_GB_CONTEXT)) { + ret = -EBUSY; + goto out_no_fifo; + } + + cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); + if (unlikely(cmd == NULL)) { + DRM_ERROR("Failed reserving FIFO space for context " + "creation.\n"); + ret = -ENOMEM; + goto out_no_fifo; + } + + cmd->header.id = SVGA_3D_CMD_DEFINE_GB_CONTEXT; + cmd->header.size = sizeof(cmd->body); + cmd->body.cid = res->id; + vmw_fifo_commit(dev_priv, sizeof(*cmd)); + (void) vmw_3d_resource_inc(dev_priv, false); + + return 0; + +out_no_fifo: + vmw_resource_release_id(res); +out_no_id: + return ret; +} + +static int vmw_gb_context_bind(struct vmw_resource *res, + struct ttm_validate_buffer *val_buf) +{ + struct vmw_private *dev_priv = res->dev_priv; + struct { + SVGA3dCmdHeader header; + SVGA3dCmdBindGBContext body; + } *cmd; + struct ttm_buffer_object *bo = val_buf->bo; + + BUG_ON(bo->mem.mem_type != VMW_PL_MOB); + + cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); + if (unlikely(cmd == NULL)) { + DRM_ERROR("Failed reserving FIFO space for context " + "binding.\n"); + return -ENOMEM; + } + + cmd->header.id = SVGA_3D_CMD_BIND_GB_CONTEXT; + cmd->header.size = sizeof(cmd->body); + cmd->body.cid = res->id; + cmd->body.mobid = bo->mem.start; + cmd->body.validContents = res->backup_dirty; + res->backup_dirty = false; + vmw_fifo_commit(dev_priv, sizeof(*cmd)); + + return 0; +} + +static int vmw_gb_context_unbind(struct vmw_resource *res, + bool readback, + struct ttm_validate_buffer *val_buf) +{ + struct vmw_private *dev_priv = res->dev_priv; + struct ttm_buffer_object *bo = val_buf->bo; + struct vmw_fence_obj *fence; + struct vmw_user_context *uctx = + container_of(res, struct vmw_user_context, res); + + struct { + SVGA3dCmdHeader header; + SVGA3dCmdReadbackGBContext body; + } *cmd1; + struct { + SVGA3dCmdHeader header; + SVGA3dCmdBindGBContext body; + } *cmd2; + uint32_t submit_size; + uint8_t *cmd; + + + BUG_ON(bo->mem.mem_type != VMW_PL_MOB); + + mutex_lock(&dev_priv->binding_mutex); + vmw_context_binding_state_scrub(&uctx->cbs); + + submit_size = sizeof(*cmd2) + (readback ? sizeof(*cmd1) : 0); + + cmd = vmw_fifo_reserve(dev_priv, submit_size); + if (unlikely(cmd == NULL)) { + DRM_ERROR("Failed reserving FIFO space for context " + "unbinding.\n"); + mutex_unlock(&dev_priv->binding_mutex); + return -ENOMEM; + } + + cmd2 = (void *) cmd; + if (readback) { + cmd1 = (void *) cmd; + cmd1->header.id = SVGA_3D_CMD_READBACK_GB_CONTEXT; + cmd1->header.size = sizeof(cmd1->body); + cmd1->body.cid = res->id; + cmd2 = (void *) (&cmd1[1]); + } + cmd2->header.id = SVGA_3D_CMD_BIND_GB_CONTEXT; + cmd2->header.size = sizeof(cmd2->body); + cmd2->body.cid = res->id; + cmd2->body.mobid = SVGA3D_INVALID_ID; + + vmw_fifo_commit(dev_priv, submit_size); + mutex_unlock(&dev_priv->binding_mutex); + + /* + * Create a fence object and fence the backup buffer. + */ + + (void) vmw_execbuf_fence_commands(NULL, dev_priv, + &fence, NULL); + + vmw_fence_single_bo(bo, fence); + + if (likely(fence != NULL)) + vmw_fence_obj_unreference(&fence); + + return 0; +} + +static int vmw_gb_context_destroy(struct vmw_resource *res) +{ + struct vmw_private *dev_priv = res->dev_priv; + struct { + SVGA3dCmdHeader header; + SVGA3dCmdDestroyGBContext body; + } *cmd; + + if (likely(res->id == -1)) + return 0; + + cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); + if (unlikely(cmd == NULL)) { + DRM_ERROR("Failed reserving FIFO space for context " + "destruction.\n"); + return -ENOMEM; + } + + cmd->header.id = SVGA_3D_CMD_DESTROY_GB_CONTEXT; + cmd->header.size = sizeof(cmd->body); + cmd->body.cid = res->id; + vmw_fifo_commit(dev_priv, sizeof(*cmd)); + if (dev_priv->query_cid == res->id) + dev_priv->query_cid_valid = false; + vmw_resource_release_id(res); + vmw_3d_resource_dec(dev_priv, false); + + return 0; +} + /** * User-space context management: */ @@ -272,3 +525,380 @@ return ret; } + +/** + * vmw_context_scrub_shader - scrub a shader binding from a context. + * + * @bi: single binding information. + * @rebind: Whether to issue a bind instead of scrub command. + */ +static int vmw_context_scrub_shader(struct vmw_ctx_bindinfo *bi, bool rebind) +{ + struct vmw_private *dev_priv = bi->ctx->dev_priv; + struct { + SVGA3dCmdHeader header; + SVGA3dCmdSetShader body; + } *cmd; + + cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); + if (unlikely(cmd == NULL)) { + DRM_ERROR("Failed reserving FIFO space for shader " + "unbinding.\n"); + return -ENOMEM; + } + + cmd->header.id = SVGA_3D_CMD_SET_SHADER; + cmd->header.size = sizeof(cmd->body); + cmd->body.cid = bi->ctx->id; + cmd->body.type = bi->i1.shader_type; + cmd->body.shid = ((rebind) ? bi->res->id : SVGA3D_INVALID_ID); + vmw_fifo_commit(dev_priv, sizeof(*cmd)); + + return 0; +} + +/** + * vmw_context_scrub_render_target - scrub a render target binding + * from a context. + * + * @bi: single binding information. + * @rebind: Whether to issue a bind instead of scrub command. + */ +static int vmw_context_scrub_render_target(struct vmw_ctx_bindinfo *bi, + bool rebind) +{ + struct vmw_private *dev_priv = bi->ctx->dev_priv; + struct { + SVGA3dCmdHeader header; + SVGA3dCmdSetRenderTarget body; + } *cmd; + + cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); + if (unlikely(cmd == NULL)) { + DRM_ERROR("Failed reserving FIFO space for render target " + "unbinding.\n"); + return -ENOMEM; + } + + cmd->header.id = SVGA_3D_CMD_SETRENDERTARGET; + cmd->header.size = sizeof(cmd->body); + cmd->body.cid = bi->ctx->id; + cmd->body.type = bi->i1.rt_type; + cmd->body.target.sid = ((rebind) ? bi->res->id : SVGA3D_INVALID_ID); + cmd->body.target.face = 0; + cmd->body.target.mipmap = 0; + vmw_fifo_commit(dev_priv, sizeof(*cmd)); + + return 0; +} + +/** + * vmw_context_scrub_texture - scrub a texture binding from a context. + * + * @bi: single binding information. + * @rebind: Whether to issue a bind instead of scrub command. + * + * TODO: Possibly complement this function with a function that takes + * a list of texture bindings and combines them to a single command. + */ +static int vmw_context_scrub_texture(struct vmw_ctx_bindinfo *bi, + bool rebind) +{ + struct vmw_private *dev_priv = bi->ctx->dev_priv; + struct { + SVGA3dCmdHeader header; + struct { + SVGA3dCmdSetTextureState c; + SVGA3dTextureState s1; + } body; + } *cmd; + + cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); + if (unlikely(cmd == NULL)) { + DRM_ERROR("Failed reserving FIFO space for texture " + "unbinding.\n"); + return -ENOMEM; + } + + + cmd->header.id = SVGA_3D_CMD_SETTEXTURESTATE; + cmd->header.size = sizeof(cmd->body); + cmd->body.c.cid = bi->ctx->id; + cmd->body.s1.stage = bi->i1.texture_stage; + cmd->body.s1.name = SVGA3D_TS_BIND_TEXTURE; + cmd->body.s1.value = ((rebind) ? bi->res->id : SVGA3D_INVALID_ID); + vmw_fifo_commit(dev_priv, sizeof(*cmd)); + + return 0; +} + +/** + * vmw_context_binding_drop: Stop tracking a context binding + * + * @cb: Pointer to binding tracker storage. + * + * Stops tracking a context binding, and re-initializes its storage. + * Typically used when the context binding is replaced with a binding to + * another (or the same, for that matter) resource. + */ +static void vmw_context_binding_drop(struct vmw_ctx_binding *cb) +{ + list_del(&cb->ctx_list); + if (!list_empty(&cb->res_list)) + list_del(&cb->res_list); + cb->bi.ctx = NULL; +} + +/** + * vmw_context_binding_add: Start tracking a context binding + * + * @cbs: Pointer to the context binding state tracker. + * @bi: Information about the binding to track. + * + * Performs basic checks on the binding to make sure arguments are within + * bounds and then starts tracking the binding in the context binding + * state structure @cbs. + */ +int vmw_context_binding_add(struct vmw_ctx_binding_state *cbs, + const struct vmw_ctx_bindinfo *bi) +{ + struct vmw_ctx_binding *loc; + + switch (bi->bt) { + case vmw_ctx_binding_rt: + if (unlikely((unsigned)bi->i1.rt_type >= SVGA3D_RT_MAX)) { + DRM_ERROR("Illegal render target type %u.\n", + (unsigned) bi->i1.rt_type); + return -EINVAL; + } + loc = &cbs->render_targets[bi->i1.rt_type]; + break; + case vmw_ctx_binding_tex: + if (unlikely((unsigned)bi->i1.texture_stage >= + SVGA3D_NUM_TEXTURE_UNITS)) { + DRM_ERROR("Illegal texture/sampler unit %u.\n", + (unsigned) bi->i1.texture_stage); + return -EINVAL; + } + loc = &cbs->texture_units[bi->i1.texture_stage]; + break; + case vmw_ctx_binding_shader: + if (unlikely((unsigned)bi->i1.shader_type >= + SVGA3D_SHADERTYPE_MAX)) { + DRM_ERROR("Illegal shader type %u.\n", + (unsigned) bi->i1.shader_type); + return -EINVAL; + } + loc = &cbs->shaders[bi->i1.shader_type]; + break; + default: + BUG(); + } + + if (loc->bi.ctx != NULL) + vmw_context_binding_drop(loc); + + loc->bi = *bi; + loc->bi.scrubbed = false; + list_add_tail(&loc->ctx_list, &cbs->list); + INIT_LIST_HEAD(&loc->res_list); + + return 0; +} + +/** + * vmw_context_binding_transfer: Transfer a context binding tracking entry. + * + * @cbs: Pointer to the persistent context binding state tracker. + * @bi: Information about the binding to track. + * + */ +static void vmw_context_binding_transfer(struct vmw_ctx_binding_state *cbs, + const struct vmw_ctx_bindinfo *bi) +{ + struct vmw_ctx_binding *loc; + + switch (bi->bt) { + case vmw_ctx_binding_rt: + loc = &cbs->render_targets[bi->i1.rt_type]; + break; + case vmw_ctx_binding_tex: + loc = &cbs->texture_units[bi->i1.texture_stage]; + break; + case vmw_ctx_binding_shader: + loc = &cbs->shaders[bi->i1.shader_type]; + break; + default: + BUG(); + } + + if (loc->bi.ctx != NULL) + vmw_context_binding_drop(loc); + + if (bi->res != NULL) { + loc->bi = *bi; + list_add_tail(&loc->ctx_list, &cbs->list); + list_add_tail(&loc->res_list, &bi->res->binding_head); + } +} + +/** + * vmw_context_binding_kill - Kill a binding on the device + * and stop tracking it. + * + * @cb: Pointer to binding tracker storage. + * + * Emits FIFO commands to scrub a binding represented by @cb. + * Then stops tracking the binding and re-initializes its storage. + */ +static void vmw_context_binding_kill(struct vmw_ctx_binding *cb) +{ + if (!cb->bi.scrubbed) { + (void) vmw_scrub_funcs[cb->bi.bt](&cb->bi, false); + cb->bi.scrubbed = true; + } + vmw_context_binding_drop(cb); +} + +/** + * vmw_context_binding_state_kill - Kill all bindings associated with a + * struct vmw_ctx_binding state structure, and re-initialize the structure. + * + * @cbs: Pointer to the context binding state tracker. + * + * Emits commands to scrub all bindings associated with the + * context binding state tracker. Then re-initializes the whole structure. + */ +static void vmw_context_binding_state_kill(struct vmw_ctx_binding_state *cbs) +{ + struct vmw_ctx_binding *entry, *next; + + list_for_each_entry_safe(entry, next, &cbs->list, ctx_list) + vmw_context_binding_kill(entry); +} + +/** + * vmw_context_binding_state_scrub - Scrub all bindings associated with a + * struct vmw_ctx_binding state structure. + * + * @cbs: Pointer to the context binding state tracker. + * + * Emits commands to scrub all bindings associated with the + * context binding state tracker. + */ +static void vmw_context_binding_state_scrub(struct vmw_ctx_binding_state *cbs) +{ + struct vmw_ctx_binding *entry; + + list_for_each_entry(entry, &cbs->list, ctx_list) { + if (!entry->bi.scrubbed) { + (void) vmw_scrub_funcs[entry->bi.bt](&entry->bi, false); + entry->bi.scrubbed = true; + } + } +} + +/** + * vmw_context_binding_res_list_kill - Kill all bindings on a + * resource binding list + * + * @head: list head of resource binding list + * + * Kills all bindings associated with a specific resource. Typically + * called before the resource is destroyed. + */ +void vmw_context_binding_res_list_kill(struct list_head *head) +{ + struct vmw_ctx_binding *entry, *next; + + list_for_each_entry_safe(entry, next, head, res_list) + vmw_context_binding_kill(entry); +} + +/** + * vmw_context_binding_res_list_scrub - Scrub all bindings on a + * resource binding list + * + * @head: list head of resource binding list + * + * Scrub all bindings associated with a specific resource. Typically + * called before the resource is evicted. + */ +void vmw_context_binding_res_list_scrub(struct list_head *head) +{ + struct vmw_ctx_binding *entry; + + list_for_each_entry(entry, head, res_list) { + if (!entry->bi.scrubbed) { + (void) vmw_scrub_funcs[entry->bi.bt](&entry->bi, false); + entry->bi.scrubbed = true; + } + } +} + +/** + * vmw_context_binding_state_transfer - Commit staged binding info + * + * @ctx: Pointer to context to commit the staged binding info to. + * @from: Staged binding info built during execbuf. + * + * Transfers binding info from a temporary structure to the persistent + * structure in the context. This can be done once commands + */ +void vmw_context_binding_state_transfer(struct vmw_resource *ctx, + struct vmw_ctx_binding_state *from) +{ + struct vmw_user_context *uctx = + container_of(ctx, struct vmw_user_context, res); + struct vmw_ctx_binding *entry, *next; + + list_for_each_entry_safe(entry, next, &from->list, ctx_list) + vmw_context_binding_transfer(&uctx->cbs, &entry->bi); +} + +/** + * vmw_context_rebind_all - Rebind all scrubbed bindings of a context + * + * @ctx: The context resource + * + * Walks through the context binding list and rebinds all scrubbed + * resources. + */ +int vmw_context_rebind_all(struct vmw_resource *ctx) +{ + struct vmw_ctx_binding *entry; + struct vmw_user_context *uctx = + container_of(ctx, struct vmw_user_context, res); + struct vmw_ctx_binding_state *cbs = &uctx->cbs; + int ret; + + list_for_each_entry(entry, &cbs->list, ctx_list) { + if (likely(!entry->bi.scrubbed)) + continue; + + if (WARN_ON(entry->bi.res == NULL || entry->bi.res->id == + SVGA3D_INVALID_ID)) + continue; + + ret = vmw_scrub_funcs[entry->bi.bt](&entry->bi, true); + if (unlikely(ret != 0)) + return ret; + + entry->bi.scrubbed = false; + } + + return 0; +} + +/** + * vmw_context_binding_list - Return a list of context bindings + * + * @ctx: The context resource + * + * Returns the current list of bindings of the given context. Note that + * this list becomes stale as soon as the dev_priv::binding_mutex is unlocked. + */ +struct list_head *vmw_context_binding_list(struct vmw_resource *ctx) +{ + return &(container_of(ctx, struct vmw_user_context, res)->cbs.list); +} --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c @@ -290,8 +290,7 @@ /** * vmw_bo_pin - Pin or unpin a buffer object without moving it. * - * @bo: The buffer object. Must be reserved, and present either in VRAM - * or GMR memory. + * @bo: The buffer object. Must be reserved. * @pin: Whether to pin or unpin. * */ @@ -303,10 +302,9 @@ int ret; lockdep_assert_held(&bo->resv->lock.base); - BUG_ON(old_mem_type != TTM_PL_VRAM && - old_mem_type != VMW_PL_GMR); - pl_flags = TTM_PL_FLAG_VRAM | VMW_PL_FLAG_GMR | TTM_PL_FLAG_CACHED; + pl_flags = TTM_PL_FLAG_VRAM | VMW_PL_FLAG_GMR | VMW_PL_FLAG_MOB + | TTM_PL_FLAG_SYSTEM | TTM_PL_FLAG_CACHED; if (pin) pl_flags |= TTM_PL_FLAG_NO_EVICT; --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c @@ -112,6 +112,21 @@ #define DRM_IOCTL_VMW_UPDATE_LAYOUT \ DRM_IOW(DRM_COMMAND_BASE + DRM_VMW_UPDATE_LAYOUT, \ struct drm_vmw_update_layout_arg) +#define DRM_IOCTL_VMW_CREATE_SHADER \ + DRM_IOWR(DRM_COMMAND_BASE + DRM_VMW_CREATE_SHADER, \ + struct drm_vmw_shader_create_arg) +#define DRM_IOCTL_VMW_UNREF_SHADER \ + DRM_IOW(DRM_COMMAND_BASE + DRM_VMW_UNREF_SHADER, \ + struct drm_vmw_shader_arg) +#define DRM_IOCTL_VMW_GB_SURFACE_CREATE \ + DRM_IOWR(DRM_COMMAND_BASE + DRM_VMW_GB_SURFACE_CREATE, \ + union drm_vmw_gb_surface_create_arg) +#define DRM_IOCTL_VMW_GB_SURFACE_REF \ + DRM_IOWR(DRM_COMMAND_BASE + DRM_VMW_GB_SURFACE_REF, \ + union drm_vmw_gb_surface_reference_arg) +#define DRM_IOCTL_VMW_SYNCCPU \ + DRM_IOW(DRM_COMMAND_BASE + DRM_VMW_SYNCCPU, \ + struct drm_vmw_synccpu_arg) /** * The core DRM version of this macro doesn't account for @@ -177,6 +192,21 @@ VMW_IOCTL_DEF(VMW_UPDATE_LAYOUT, vmw_kms_update_layout_ioctl, DRM_MASTER | DRM_UNLOCKED), + VMW_IOCTL_DEF(VMW_CREATE_SHADER, + vmw_shader_define_ioctl, + DRM_AUTH | DRM_UNLOCKED), + VMW_IOCTL_DEF(VMW_UNREF_SHADER, + vmw_shader_destroy_ioctl, + DRM_AUTH | DRM_UNLOCKED), + VMW_IOCTL_DEF(VMW_GB_SURFACE_CREATE, + vmw_gb_surface_define_ioctl, + DRM_AUTH | DRM_UNLOCKED), + VMW_IOCTL_DEF(VMW_GB_SURFACE_REF, + vmw_gb_surface_reference_ioctl, + DRM_AUTH | DRM_UNLOCKED), + VMW_IOCTL_DEF(VMW_SYNCCPU, + vmw_user_dmabuf_synccpu_ioctl, + DRM_AUTH | DRM_UNLOCKED), }; static struct pci_device_id vmw_pci_id_list[] = { @@ -189,6 +219,7 @@ static int vmw_force_iommu; static int vmw_restrict_iommu; static int vmw_force_coherent; +static int vmw_restrict_dma_mask; static int vmw_probe(struct pci_dev *, const struct pci_device_id *); static void vmw_master_init(struct vmw_master *); @@ -203,6 +234,8 @@ module_param_named(restrict_iommu, vmw_restrict_iommu, int, 0600); MODULE_PARM_DESC(force_coherent, "Force coherent TTM pages"); module_param_named(force_coherent, vmw_force_coherent, int, 0600); +MODULE_PARM_DESC(restrict_dma_mask, "Restrict DMA mask to 44 bits with IOMMU"); +module_param_named(restrict_dma_mask, vmw_restrict_dma_mask, int, 0600); static void vmw_print_capabilities(uint32_t capabilities) @@ -240,38 +273,52 @@ DRM_INFO(" GMR2.\n"); if (capabilities & SVGA_CAP_SCREEN_OBJECT_2) DRM_INFO(" Screen Object 2.\n"); + if (capabilities & SVGA_CAP_COMMAND_BUFFERS) + DRM_INFO(" Command Buffers.\n"); + if (capabilities & SVGA_CAP_CMD_BUFFERS_2) + DRM_INFO(" Command Buffers 2.\n"); + if (capabilities & SVGA_CAP_GBOBJECTS) + DRM_INFO(" Guest Backed Resources.\n"); } - /** - * vmw_execbuf_prepare_dummy_query - Initialize a query result structure at - * the start of a buffer object. + * vmw_dummy_query_bo_create - create a bo to hold a dummy query result * - * @dev_priv: The device private structure. + * @dev_priv: A device private structure. * - * This function will idle the buffer using an uninterruptible wait, then - * map the first page and initialize a pending occlusion query result structure, - * Finally it will unmap the buffer. + * This function creates a small buffer object that holds the query + * result for dummy queries emitted as query barriers. + * The function will then map the first page and initialize a pending + * occlusion query result structure, Finally it will unmap the buffer. + * No interruptible waits are done within this function. * - * TODO: Since we're only mapping a single page, we should optimize the map - * to use kmap_atomic / iomap_atomic. + * Returns an error if bo creation or initialization fails. */ -static void vmw_dummy_query_bo_prepare(struct vmw_private *dev_priv) +static int vmw_dummy_query_bo_create(struct vmw_private *dev_priv) { + int ret; + struct ttm_buffer_object *bo; struct ttm_bo_kmap_obj map; volatile SVGA3dQueryResult *result; bool dummy; - int ret; - struct ttm_bo_device *bdev = &dev_priv->bdev; - struct ttm_buffer_object *bo = dev_priv->dummy_query_bo; - ttm_bo_reserve(bo, false, false, false, 0); - spin_lock(&bdev->fence_lock); - ret = ttm_bo_wait(bo, false, false, false); - spin_unlock(&bdev->fence_lock); + /* + * Create the bo as pinned, so that a tryreserve will + * immediately succeed. This is because we're the only + * user of the bo currently. + */ + ret = ttm_bo_create(&dev_priv->bdev, + PAGE_SIZE, + ttm_bo_type_device, + &vmw_sys_ne_placement, + 0, false, NULL, + &bo); + if (unlikely(ret != 0)) - (void) vmw_fallback_wait(dev_priv, false, true, 0, false, - 10*HZ); + return ret; + + ret = ttm_bo_reserve(bo, false, true, false, 0); + BUG_ON(ret != 0); ret = ttm_bo_kmap(bo, 0, 1, &map); if (likely(ret == 0)) { @@ -280,34 +327,19 @@ result->state = SVGA3D_QUERYSTATE_PENDING; result->result32 = 0xff; ttm_bo_kunmap(&map); - } else - DRM_ERROR("Dummy query buffer map failed.\n"); + } + vmw_bo_pin(bo, false); ttm_bo_unreserve(bo); -} + if (unlikely(ret != 0)) { + DRM_ERROR("Dummy query buffer map failed.\n"); + ttm_bo_unref(&bo); + } else + dev_priv->dummy_query_bo = bo; -/** - * vmw_dummy_query_bo_create - create a bo to hold a dummy query result - * - * @dev_priv: A device private structure. - * - * This function creates a small buffer object that holds the query - * result for dummy queries emitted as query barriers. - * No interruptible waits are done within this function. - * - * Returns an error if bo creation fails. - */ -static int vmw_dummy_query_bo_create(struct vmw_private *dev_priv) -{ - return ttm_bo_create(&dev_priv->bdev, - PAGE_SIZE, - ttm_bo_type_device, - &vmw_vram_sys_placement, - 0, false, NULL, - &dev_priv->dummy_query_bo); + return ret; } - static int vmw_request_device(struct vmw_private *dev_priv) { int ret; @@ -318,14 +350,24 @@ return ret; } vmw_fence_fifo_up(dev_priv->fman); + if (dev_priv->has_mob) { + ret = vmw_otables_setup(dev_priv); + if (unlikely(ret != 0)) { + DRM_ERROR("Unable to initialize " + "guest Memory OBjects.\n"); + goto out_no_mob; + } + } ret = vmw_dummy_query_bo_create(dev_priv); if (unlikely(ret != 0)) goto out_no_query_bo; - vmw_dummy_query_bo_prepare(dev_priv); return 0; out_no_query_bo: + if (dev_priv->has_mob) + vmw_otables_takedown(dev_priv); +out_no_mob: vmw_fence_fifo_down(dev_priv->fman); vmw_fifo_release(dev_priv, &dev_priv->fifo); return ret; @@ -341,10 +383,13 @@ BUG_ON(dev_priv->pinned_bo != NULL); ttm_bo_unref(&dev_priv->dummy_query_bo); + if (dev_priv->has_mob) + vmw_otables_takedown(dev_priv); vmw_fence_fifo_down(dev_priv->fman); vmw_fifo_release(dev_priv, &dev_priv->fifo); } + /** * Increase the 3d resource refcount. * If the count was prevously zero, initialize the fifo, switching to svga @@ -510,6 +555,33 @@ return 0; } +/** + * vmw_dma_masks - set required page- and dma masks + * + * @dev: Pointer to struct drm-device + * + * With 32-bit we can only handle 32 bit PFNs. Optionally set that + * restriction also for 64-bit systems. + */ +#ifdef CONFIG_INTEL_IOMMU +static int vmw_dma_masks(struct vmw_private *dev_priv) +{ + struct drm_device *dev = dev_priv->dev; + + if (intel_iommu_enabled && + (sizeof(unsigned long) == 4 || vmw_restrict_dma_mask)) { + DRM_INFO("Restricting DMA addresses to 44 bits.\n"); + return dma_set_mask(dev->dev, DMA_BIT_MASK(44)); + } + return 0; +} +#else +static int vmw_dma_masks(struct vmw_private *dev_priv) +{ + return 0; +} +#endif + static int vmw_driver_load(struct drm_device *dev, unsigned long chipset) { struct vmw_private *dev_priv; @@ -532,6 +604,7 @@ mutex_init(&dev_priv->hw_mutex); mutex_init(&dev_priv->cmdbuf_mutex); mutex_init(&dev_priv->release_mutex); + mutex_init(&dev_priv->binding_mutex); rwlock_init(&dev_priv->resource_lock); for (i = vmw_res_context; i < vmw_res_max; ++i) { @@ -578,14 +651,9 @@ vmw_get_initial_size(dev_priv); - if (dev_priv->capabilities & SVGA_CAP_GMR) { - dev_priv->max_gmr_descriptors = - vmw_read(dev_priv, - SVGA_REG_GMR_MAX_DESCRIPTOR_LENGTH); + if (dev_priv->capabilities & SVGA_CAP_GMR2) { dev_priv->max_gmr_ids = vmw_read(dev_priv, SVGA_REG_GMR_MAX_IDS); - } - if (dev_priv->capabilities & SVGA_CAP_GMR2) { dev_priv->max_gmr_pages = vmw_read(dev_priv, SVGA_REG_GMRS_MAX_PAGES); dev_priv->memory_size = @@ -598,23 +666,45 @@ */ dev_priv->memory_size = 512*1024*1024; } + dev_priv->max_mob_pages = 0; + dev_priv->max_mob_size = 0; + if (dev_priv->capabilities & SVGA_CAP_GBOBJECTS) { + uint64_t mem_size = + vmw_read(dev_priv, + SVGA_REG_SUGGESTED_GBOBJECT_MEM_SIZE_KB); + + dev_priv->max_mob_pages = mem_size * 1024 / PAGE_SIZE; + dev_priv->prim_bb_mem = + vmw_read(dev_priv, + SVGA_REG_MAX_PRIMARY_BOUNDING_BOX_MEM); + dev_priv->max_mob_size = + vmw_read(dev_priv, SVGA_REG_MOB_MAX_SIZE); + } else + dev_priv->prim_bb_mem = dev_priv->vram_size; + + ret = vmw_dma_masks(dev_priv); + if (unlikely(ret != 0)) { + mutex_unlock(&dev_priv->hw_mutex); + goto out_err0; + } + + if (unlikely(dev_priv->prim_bb_mem < dev_priv->vram_size)) + dev_priv->prim_bb_mem = dev_priv->vram_size; mutex_unlock(&dev_priv->hw_mutex); vmw_print_capabilities(dev_priv->capabilities); - if (dev_priv->capabilities & SVGA_CAP_GMR) { + if (dev_priv->capabilities & SVGA_CAP_GMR2) { DRM_INFO("Max GMR ids is %u\n", (unsigned)dev_priv->max_gmr_ids); - DRM_INFO("Max GMR descriptors is %u\n", - (unsigned)dev_priv->max_gmr_descriptors); - } - if (dev_priv->capabilities & SVGA_CAP_GMR2) { DRM_INFO("Max number of GMR pages is %u\n", (unsigned)dev_priv->max_gmr_pages); DRM_INFO("Max dedicated hypervisor surface memory is %u kiB\n", (unsigned)dev_priv->memory_size / 1024); } + DRM_INFO("Maximum display memory size is %u kiB\n", + dev_priv->prim_bb_mem / 1024); DRM_INFO("VRAM at 0x%08x size is %u kiB\n", dev_priv->vram_start, dev_priv->vram_size / 1024); DRM_INFO("MMIO at 0x%08x size is %u kiB\n", @@ -649,12 +739,22 @@ dev_priv->has_gmr = true; if (((dev_priv->capabilities & (SVGA_CAP_GMR | SVGA_CAP_GMR2)) == 0) || refuse_dma || ttm_bo_init_mm(&dev_priv->bdev, VMW_PL_GMR, - dev_priv->max_gmr_ids) != 0) { + VMW_PL_GMR) != 0) { DRM_INFO("No GMR memory available. " "Graphics memory resources are very limited.\n"); dev_priv->has_gmr = false; } + if (dev_priv->capabilities & SVGA_CAP_GBOBJECTS) { + dev_priv->has_mob = true; + if (ttm_bo_init_mm(&dev_priv->bdev, VMW_PL_MOB, + VMW_PL_MOB) != 0) { + DRM_INFO("No MOB memory available. " + "3D will be disabled.\n"); + dev_priv->has_mob = false; + } + } + dev_priv->mmio_mtrr = arch_phys_wc_add(dev_priv->mmio_start, dev_priv->mmio_size); @@ -757,6 +857,8 @@ iounmap(dev_priv->mmio_virt); out_err3: arch_phys_wc_del(dev_priv->mmio_mtrr); + if (dev_priv->has_mob) + (void) ttm_bo_clean_mm(&dev_priv->bdev, VMW_PL_MOB); if (dev_priv->has_gmr) (void) ttm_bo_clean_mm(&dev_priv->bdev, VMW_PL_GMR); (void)ttm_bo_clean_mm(&dev_priv->bdev, TTM_PL_VRAM); @@ -801,6 +903,8 @@ ttm_object_device_release(&dev_priv->tdev); iounmap(dev_priv->mmio_virt); arch_phys_wc_del(dev_priv->mmio_mtrr); + if (dev_priv->has_mob) + (void) ttm_bo_clean_mm(&dev_priv->bdev, VMW_PL_MOB); if (dev_priv->has_gmr) (void)ttm_bo_clean_mm(&dev_priv->bdev, VMW_PL_GMR); (void)ttm_bo_clean_mm(&dev_priv->bdev, TTM_PL_VRAM); @@ -840,6 +944,7 @@ drm_master_put(&vmw_fp->locked_master); } + vmw_compat_shader_man_destroy(vmw_fp->shman); ttm_object_file_release(&vmw_fp->tfile); kfree(vmw_fp); } @@ -859,11 +964,17 @@ if (unlikely(vmw_fp->tfile == NULL)) goto out_no_tfile; + vmw_fp->shman = vmw_compat_shader_man_create(dev_priv); + if (IS_ERR(vmw_fp->shman)) + goto out_no_shman; + file_priv->driver_priv = vmw_fp; dev_priv->bdev.dev_mapping = dev->dev_mapping; return 0; +out_no_shman: + ttm_object_file_release(&vmw_fp->tfile); out_no_tfile: kfree(vmw_fp); return ret; --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h @@ -40,9 +40,9 @@ #include #include "vmwgfx_fence.h" -#define VMWGFX_DRIVER_DATE "20120209" +#define VMWGFX_DRIVER_DATE "20140228" #define VMWGFX_DRIVER_MAJOR 2 -#define VMWGFX_DRIVER_MINOR 4 +#define VMWGFX_DRIVER_MINOR 5 #define VMWGFX_DRIVER_PATCHLEVEL 0 #define VMWGFX_FILE_PAGE_OFFSET 0x00100000 #define VMWGFX_FIFO_STATIC_SIZE (1024*1024) @@ -50,19 +50,39 @@ #define VMWGFX_MAX_VALIDATIONS 2048 #define VMWGFX_MAX_DISPLAYS 16 #define VMWGFX_CMD_BOUNCE_INIT_SIZE 32768 +#define VMWGFX_ENABLE_SCREEN_TARGET_OTABLE 0 + +/* + * Perhaps we should have sysfs entries for these. + */ +#define VMWGFX_NUM_GB_CONTEXT 256 +#define VMWGFX_NUM_GB_SHADER 20000 +#define VMWGFX_NUM_GB_SURFACE 32768 +#define VMWGFX_NUM_GB_SCREEN_TARGET VMWGFX_MAX_DISPLAYS +#define VMWGFX_NUM_MOB (VMWGFX_NUM_GB_CONTEXT +\ + VMWGFX_NUM_GB_SHADER +\ + VMWGFX_NUM_GB_SURFACE +\ + VMWGFX_NUM_GB_SCREEN_TARGET) #define VMW_PL_GMR TTM_PL_PRIV0 #define VMW_PL_FLAG_GMR TTM_PL_FLAG_PRIV0 +#define VMW_PL_MOB TTM_PL_PRIV1 +#define VMW_PL_FLAG_MOB TTM_PL_FLAG_PRIV1 #define VMW_RES_CONTEXT ttm_driver_type0 #define VMW_RES_SURFACE ttm_driver_type1 #define VMW_RES_STREAM ttm_driver_type2 #define VMW_RES_FENCE ttm_driver_type3 +#define VMW_RES_SHADER ttm_driver_type4 + +struct vmw_compat_shader_manager; struct vmw_fpriv { struct drm_master *locked_master; struct ttm_object_file *tfile; struct list_head fence_events; + bool gb_aware; + struct vmw_compat_shader_manager *shman; }; struct vmw_dma_buffer { @@ -82,6 +102,7 @@ struct vmw_validate_buffer { struct ttm_validate_buffer base; struct drm_hash_item hash; + bool validate_as_mob; }; struct vmw_res_func; @@ -98,6 +119,7 @@ const struct vmw_res_func *func; struct list_head lru_head; /* Protected by the resource lock */ struct list_head mob_head; /* Protected by @backup reserved */ + struct list_head binding_head; /* Protected by binding_mutex */ void (*res_free) (struct vmw_resource *res); void (*hw_destroy) (struct vmw_resource *res); }; @@ -106,6 +128,7 @@ vmw_res_context, vmw_res_surface, vmw_res_stream, + vmw_res_shader, vmw_res_max }; @@ -154,6 +177,7 @@ }; struct vmw_relocation { + SVGAMobId *mob_loc; SVGAGuestPtr *location; uint32_t index; }; @@ -229,11 +253,77 @@ struct page *(*page)(struct vmw_piter *); }; +/* + * enum vmw_ctx_binding_type - abstract resource to context binding types + */ +enum vmw_ctx_binding_type { + vmw_ctx_binding_shader, + vmw_ctx_binding_rt, + vmw_ctx_binding_tex, + vmw_ctx_binding_max +}; + +/** + * struct vmw_ctx_bindinfo - structure representing a single context binding + * + * @ctx: Pointer to the context structure. NULL means the binding is not + * active. + * @res: Non ref-counted pointer to the bound resource. + * @bt: The binding type. + * @i1: Union of information needed to unbind. + */ +struct vmw_ctx_bindinfo { + struct vmw_resource *ctx; + struct vmw_resource *res; + enum vmw_ctx_binding_type bt; + bool scrubbed; + union { + SVGA3dShaderType shader_type; + SVGA3dRenderTargetType rt_type; + uint32 texture_stage; + } i1; +}; + +/** + * struct vmw_ctx_binding - structure representing a single context binding + * - suitable for tracking in a context + * + * @ctx_list: List head for context. + * @res_list: List head for bound resource. + * @bi: Binding info + */ +struct vmw_ctx_binding { + struct list_head ctx_list; + struct list_head res_list; + struct vmw_ctx_bindinfo bi; +}; + + +/** + * struct vmw_ctx_binding_state - context binding state + * + * @list: linked list of individual bindings. + * @render_targets: Render target bindings. + * @texture_units: Texture units/samplers bindings. + * @shaders: Shader bindings. + * + * Note that this structure also provides storage space for the individual + * struct vmw_ctx_binding objects, so that no dynamic allocation is needed + * for individual bindings. + * + */ +struct vmw_ctx_binding_state { + struct list_head list; + struct vmw_ctx_binding render_targets[SVGA3D_RT_MAX]; + struct vmw_ctx_binding texture_units[SVGA3D_NUM_TEXTURE_UNITS]; + struct vmw_ctx_binding shaders[SVGA3D_SHADERTYPE_MAX]; +}; + struct vmw_sw_context{ struct drm_open_hash res_ht; bool res_ht_initialized; bool kernel; /**< is the called made from the kernel */ - struct ttm_object_file *tfile; + struct vmw_fpriv *fp; struct list_head validate_nodes; struct vmw_relocation relocs[VMWGFX_MAX_RELOCATIONS]; uint32_t cur_reloc; @@ -250,6 +340,8 @@ struct vmw_resource *last_query_ctx; bool needs_post_query_barrier; struct vmw_resource *error_resource; + struct vmw_ctx_binding_state staged_bindings; + struct list_head staged_shaders; }; struct vmw_legacy_display; @@ -281,6 +373,7 @@ unsigned int io_start; uint32_t vram_start; uint32_t vram_size; + uint32_t prim_bb_mem; uint32_t mmio_start; uint32_t mmio_size; uint32_t fb_max_width; @@ -290,11 +383,13 @@ __le32 __iomem *mmio_virt; int mmio_mtrr; uint32_t capabilities; - uint32_t max_gmr_descriptors; uint32_t max_gmr_ids; uint32_t max_gmr_pages; + uint32_t max_mob_pages; + uint32_t max_mob_size; uint32_t memory_size; bool has_gmr; + bool has_mob; struct mutex hw_mutex; /* @@ -370,6 +465,7 @@ struct vmw_sw_context ctx; struct mutex cmdbuf_mutex; + struct mutex binding_mutex; /** * Operating mode. @@ -415,6 +511,12 @@ * DMA mapping stuff. */ enum vmw_dma_map_mode map_mode; + + /* + * Guest Backed stuff + */ + struct ttm_buffer_object *otable_bo; + struct vmw_otable *otables; }; static inline struct vmw_surface *vmw_res_to_srf(struct vmw_resource *res) @@ -471,23 +573,14 @@ * Resource utilities - vmwgfx_resource.c */ struct vmw_user_resource_conv; -extern const struct vmw_user_resource_conv *user_surface_converter; -extern const struct vmw_user_resource_conv *user_context_converter; -extern struct vmw_resource *vmw_context_alloc(struct vmw_private *dev_priv); extern void vmw_resource_unreference(struct vmw_resource **p_res); extern struct vmw_resource *vmw_resource_reference(struct vmw_resource *res); +extern struct vmw_resource * +vmw_resource_reference_unless_doomed(struct vmw_resource *res); extern int vmw_resource_validate(struct vmw_resource *res); extern int vmw_resource_reserve(struct vmw_resource *res, bool no_backup); extern bool vmw_resource_needs_backup(const struct vmw_resource *res); -extern int vmw_context_destroy_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv); -extern int vmw_context_define_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv); -extern int vmw_context_check(struct vmw_private *dev_priv, - struct ttm_object_file *tfile, - int id, - struct vmw_resource **p_res); extern int vmw_user_lookup_handle(struct vmw_private *dev_priv, struct ttm_object_file *tfile, uint32_t handle, @@ -499,18 +592,6 @@ uint32_t handle, const struct vmw_user_resource_conv *converter, struct vmw_resource **p_res); -extern void vmw_surface_res_free(struct vmw_resource *res); -extern int vmw_surface_destroy_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv); -extern int vmw_surface_define_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv); -extern int vmw_surface_reference_ioctl(struct drm_device *dev, void *data, - struct drm_file *file_priv); -extern int vmw_surface_check(struct vmw_private *dev_priv, - struct ttm_object_file *tfile, - uint32_t handle, int *id); -extern int vmw_surface_validate(struct vmw_private *dev_priv, - struct vmw_surface *srf); extern void vmw_dmabuf_bo_free(struct ttm_buffer_object *bo); extern int vmw_dmabuf_init(struct vmw_private *dev_priv, struct vmw_dma_buffer *vmw_bo, @@ -519,10 +600,21 @@ void (*bo_free) (struct ttm_buffer_object *bo)); extern int vmw_user_dmabuf_verify_access(struct ttm_buffer_object *bo, struct ttm_object_file *tfile); +extern int vmw_user_dmabuf_alloc(struct vmw_private *dev_priv, + struct ttm_object_file *tfile, + uint32_t size, + bool shareable, + uint32_t *handle, + struct vmw_dma_buffer **p_dma_buf); +extern int vmw_user_dmabuf_reference(struct ttm_object_file *tfile, + struct vmw_dma_buffer *dma_buf, + uint32_t *handle); extern int vmw_dmabuf_alloc_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv); extern int vmw_dmabuf_unref_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv); +extern int vmw_user_dmabuf_synccpu_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); extern uint32_t vmw_dmabuf_validate_node(struct ttm_buffer_object *bo, uint32_t cur_validate_node); extern void vmw_dmabuf_validate_clear(struct ttm_buffer_object *bo); @@ -622,10 +714,16 @@ extern struct ttm_placement vmw_vram_gmr_placement; extern struct ttm_placement vmw_vram_gmr_ne_placement; extern struct ttm_placement vmw_sys_placement; +extern struct ttm_placement vmw_sys_ne_placement; extern struct ttm_placement vmw_evictable_placement; extern struct ttm_placement vmw_srf_placement; +extern struct ttm_placement vmw_mob_placement; extern struct ttm_bo_driver vmw_bo_driver; extern int vmw_dma_quiescent(struct drm_device *dev); +extern int vmw_bo_map_dma(struct ttm_buffer_object *bo); +extern void vmw_bo_unmap_dma(struct ttm_buffer_object *bo); +extern const struct vmw_sg_table * +vmw_bo_sg_table(struct ttm_buffer_object *bo); extern void vmw_piter_start(struct vmw_piter *viter, const struct vmw_sg_table *vsgt, unsigned long p_offs); @@ -832,6 +930,101 @@ uint32_t handle, uint32_t flags, int *prime_fd); +/* + * MemoryOBject management - vmwgfx_mob.c + */ +struct vmw_mob; +extern int vmw_mob_bind(struct vmw_private *dev_priv, struct vmw_mob *mob, + const struct vmw_sg_table *vsgt, + unsigned long num_data_pages, int32_t mob_id); +extern void vmw_mob_unbind(struct vmw_private *dev_priv, + struct vmw_mob *mob); +extern void vmw_mob_destroy(struct vmw_mob *mob); +extern struct vmw_mob *vmw_mob_create(unsigned long data_pages); +extern int vmw_otables_setup(struct vmw_private *dev_priv); +extern void vmw_otables_takedown(struct vmw_private *dev_priv); + +/* + * Context management - vmwgfx_context.c + */ + +extern const struct vmw_user_resource_conv *user_context_converter; + +extern struct vmw_resource *vmw_context_alloc(struct vmw_private *dev_priv); + +extern int vmw_context_check(struct vmw_private *dev_priv, + struct ttm_object_file *tfile, + int id, + struct vmw_resource **p_res); +extern int vmw_context_define_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); +extern int vmw_context_destroy_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); +extern int vmw_context_binding_add(struct vmw_ctx_binding_state *cbs, + const struct vmw_ctx_bindinfo *ci); +extern void +vmw_context_binding_state_transfer(struct vmw_resource *res, + struct vmw_ctx_binding_state *cbs); +extern void vmw_context_binding_res_list_kill(struct list_head *head); +extern void vmw_context_binding_res_list_scrub(struct list_head *head); +extern int vmw_context_rebind_all(struct vmw_resource *ctx); +extern struct list_head *vmw_context_binding_list(struct vmw_resource *ctx); + +/* + * Surface management - vmwgfx_surface.c + */ + +extern const struct vmw_user_resource_conv *user_surface_converter; + +extern void vmw_surface_res_free(struct vmw_resource *res); +extern int vmw_surface_destroy_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); +extern int vmw_surface_define_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); +extern int vmw_surface_reference_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); +extern int vmw_gb_surface_define_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); +extern int vmw_gb_surface_reference_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); +extern int vmw_surface_check(struct vmw_private *dev_priv, + struct ttm_object_file *tfile, + uint32_t handle, int *id); +extern int vmw_surface_validate(struct vmw_private *dev_priv, + struct vmw_surface *srf); + +/* + * Shader management - vmwgfx_shader.c + */ + +extern const struct vmw_user_resource_conv *user_shader_converter; + +extern int vmw_shader_define_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); +extern int vmw_shader_destroy_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv); +extern int vmw_compat_shader_lookup(struct vmw_compat_shader_manager *man, + SVGA3dShaderType shader_type, + u32 *user_key); +extern void vmw_compat_shaders_commit(struct vmw_compat_shader_manager *man, + struct list_head *list); +extern void vmw_compat_shaders_revert(struct vmw_compat_shader_manager *man, + struct list_head *list); +extern int vmw_compat_shader_remove(struct vmw_compat_shader_manager *man, + u32 user_key, + SVGA3dShaderType shader_type, + struct list_head *list); +extern int vmw_compat_shader_add(struct vmw_compat_shader_manager *man, + u32 user_key, const void *bytecode, + SVGA3dShaderType shader_type, + size_t size, + struct ttm_object_file *tfile, + struct list_head *list); +extern struct vmw_compat_shader_manager * +vmw_compat_shader_man_create(struct vmw_private *dev_priv); +extern void +vmw_compat_shader_man_destroy(struct vmw_compat_shader_manager *man); + /** * Inline helper functions --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c @@ -54,6 +54,8 @@ * @res: Ref-counted pointer to the resource. * @switch_backup: Boolean whether to switch backup buffer on unreserve. * @new_backup: Refcounted pointer to the new backup buffer. + * @staged_bindings: If @res is a context, tracks bindings set up during + * the command batch. Otherwise NULL. * @new_backup_offset: New backup buffer offset if @new_backup is non-NUll. * @first_usage: Set to true the first time the resource is referenced in * the command stream. @@ -65,12 +67,32 @@ struct drm_hash_item hash; struct vmw_resource *res; struct vmw_dma_buffer *new_backup; + struct vmw_ctx_binding_state *staged_bindings; unsigned long new_backup_offset; bool first_usage; bool no_buffer_needed; }; /** + * struct vmw_cmd_entry - Describe a command for the verifier + * + * @user_allow: Whether allowed from the execbuf ioctl. + * @gb_disable: Whether disabled if guest-backed objects are available. + * @gb_enable: Whether enabled iff guest-backed objects are available. + */ +struct vmw_cmd_entry { + int (*func) (struct vmw_private *, struct vmw_sw_context *, + SVGA3dCmdHeader *); + bool user_allow; + bool gb_disable; + bool gb_enable; +}; + +#define VMW_CMD_DEF(_cmd, _func, _user_allow, _gb_disable, _gb_enable) \ + [(_cmd) - SVGA_3D_CMD_BASE] = {(_func), (_user_allow),\ + (_gb_disable), (_gb_enable)} + +/** * vmw_resource_unreserve - unreserve resources previously reserved for * command submission. * @@ -87,6 +109,18 @@ struct vmw_dma_buffer *new_backup = backoff ? NULL : val->new_backup; + /* + * Transfer staged context bindings to the + * persistent context binding tracker. + */ + if (unlikely(val->staged_bindings)) { + if (!backoff) { + vmw_context_binding_state_transfer + (val->res, val->staged_bindings); + } + kfree(val->staged_bindings); + val->staged_bindings = NULL; + } vmw_resource_unreserve(res, new_backup, val->new_backup_offset); vmw_dmabuf_unreference(&val->new_backup); @@ -146,6 +180,44 @@ } /** + * vmw_resource_context_res_add - Put resources previously bound to a context on + * the validation list + * + * @dev_priv: Pointer to a device private structure + * @sw_context: Pointer to a software context used for this command submission + * @ctx: Pointer to the context resource + * + * This function puts all resources that were previously bound to @ctx on + * the resource validation list. This is part of the context state reemission + */ +static int vmw_resource_context_res_add(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + struct vmw_resource *ctx) +{ + struct list_head *binding_list; + struct vmw_ctx_binding *entry; + int ret = 0; + struct vmw_resource *res; + + mutex_lock(&dev_priv->binding_mutex); + binding_list = vmw_context_binding_list(ctx); + + list_for_each_entry(entry, binding_list, ctx_list) { + res = vmw_resource_reference_unless_doomed(entry->bi.res); + if (unlikely(res == NULL)) + continue; + + ret = vmw_resource_val_add(sw_context, entry->bi.res, NULL); + vmw_resource_unreference(&res); + if (unlikely(ret != 0)) + break; + } + + mutex_unlock(&dev_priv->binding_mutex); + return ret; +} + +/** * vmw_resource_relocation_add - Add a relocation to the relocation list * * @list: Pointer to head of relocation list. @@ -201,8 +273,12 @@ { struct vmw_resource_relocation *rel; - list_for_each_entry(rel, list, head) - cb[rel->offset] = rel->res->id; + list_for_each_entry(rel, list, head) { + if (likely(rel->res != NULL)) + cb[rel->offset] = rel->res->id; + else + cb[rel->offset] = SVGA_3D_CMD_NOP; + } } static int vmw_cmd_invalid(struct vmw_private *dev_priv, @@ -224,6 +300,7 @@ * * @sw_context: The software context used for this command submission batch. * @bo: The buffer object to add. + * @validate_as_mob: Validate this buffer as a MOB. * @p_val_node: If non-NULL Will be updated with the validate node number * on return. * @@ -232,6 +309,7 @@ */ static int vmw_bo_to_validate_list(struct vmw_sw_context *sw_context, struct ttm_buffer_object *bo, + bool validate_as_mob, uint32_t *p_val_node) { uint32_t val_node; @@ -244,6 +322,10 @@ &hash) == 0)) { vval_buf = container_of(hash, struct vmw_validate_buffer, hash); + if (unlikely(vval_buf->validate_as_mob != validate_as_mob)) { + DRM_ERROR("Inconsistent buffer usage.\n"); + return -EINVAL; + } val_buf = &vval_buf->base; val_node = vval_buf - sw_context->val_bufs; } else { @@ -266,6 +348,7 @@ val_buf->bo = ttm_bo_reference(bo); val_buf->reserved = false; list_add_tail(&val_buf->head, &sw_context->validate_nodes); + vval_buf->validate_as_mob = validate_as_mob; } sw_context->fence_flags |= DRM_VMW_FENCE_FLAG_EXEC; @@ -302,7 +385,8 @@ struct ttm_buffer_object *bo = &res->backup->base; ret = vmw_bo_to_validate_list - (sw_context, bo, NULL); + (sw_context, bo, + vmw_resource_needs_backup(res), NULL); if (unlikely(ret != 0)) return ret; @@ -339,22 +423,27 @@ } /** - * vmw_cmd_res_check - Check that a resource is present and if so, put it + * vmw_cmd_compat_res_check - Check that a resource is present and if so, put it * on the resource validate list unless it's already there. * * @dev_priv: Pointer to a device private structure. * @sw_context: Pointer to the software context. * @res_type: Resource type. * @converter: User-space visisble type specific information. - * @id: Pointer to the location in the command buffer currently being + * @id: user-space resource id handle. + * @id_loc: Pointer to the location in the command buffer currently being * parsed from where the user-space resource id handle is located. + * @p_val: Pointer to pointer to resource validalidation node. Populated + * on exit. */ -static int vmw_cmd_res_check(struct vmw_private *dev_priv, - struct vmw_sw_context *sw_context, - enum vmw_res_type res_type, - const struct vmw_user_resource_conv *converter, - uint32_t *id, - struct vmw_resource_val_node **p_val) +static int +vmw_cmd_compat_res_check(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + enum vmw_res_type res_type, + const struct vmw_user_resource_conv *converter, + uint32_t id, + uint32_t *id_loc, + struct vmw_resource_val_node **p_val) { struct vmw_res_cache_entry *rcache = &sw_context->res_cache[res_type]; @@ -362,15 +451,22 @@ struct vmw_resource_val_node *node; int ret; - if (*id == SVGA3D_INVALID_ID) + if (id == SVGA3D_INVALID_ID) { + if (p_val) + *p_val = NULL; + if (res_type == vmw_res_context) { + DRM_ERROR("Illegal context invalid id.\n"); + return -EINVAL; + } return 0; + } /* * Fastpath in case of repeated commands referencing the same * resource */ - if (likely(rcache->valid && *id == rcache->handle)) { + if (likely(rcache->valid && id == rcache->handle)) { const struct vmw_resource *res = rcache->res; rcache->node->first_usage = false; @@ -379,28 +475,28 @@ return vmw_resource_relocation_add (&sw_context->res_relocations, res, - id - sw_context->buf_start); + id_loc - sw_context->buf_start); } ret = vmw_user_resource_lookup_handle(dev_priv, - sw_context->tfile, - *id, + sw_context->fp->tfile, + id, converter, &res); if (unlikely(ret != 0)) { DRM_ERROR("Could not find or use resource 0x%08x.\n", - (unsigned) *id); + (unsigned) id); dump_stack(); return ret; } rcache->valid = true; rcache->res = res; - rcache->handle = *id; + rcache->handle = id; ret = vmw_resource_relocation_add(&sw_context->res_relocations, res, - id - sw_context->buf_start); + id_loc - sw_context->buf_start); if (unlikely(ret != 0)) goto out_no_reloc; @@ -411,6 +507,22 @@ rcache->node = node; if (p_val) *p_val = node; + + if (dev_priv->has_mob && node->first_usage && + res_type == vmw_res_context) { + ret = vmw_resource_context_res_add(dev_priv, sw_context, res); + if (unlikely(ret != 0)) + goto out_no_reloc; + node->staged_bindings = + kzalloc(sizeof(*node->staged_bindings), GFP_KERNEL); + if (node->staged_bindings == NULL) { + DRM_ERROR("Failed to allocate context binding " + "information.\n"); + goto out_no_reloc; + } + INIT_LIST_HEAD(&node->staged_bindings->list); + } + vmw_resource_unreference(&res); return 0; @@ -422,6 +534,59 @@ } /** + * vmw_cmd_res_check - Check that a resource is present and if so, put it + * on the resource validate list unless it's already there. + * + * @dev_priv: Pointer to a device private structure. + * @sw_context: Pointer to the software context. + * @res_type: Resource type. + * @converter: User-space visisble type specific information. + * @id_loc: Pointer to the location in the command buffer currently being + * parsed from where the user-space resource id handle is located. + * @p_val: Pointer to pointer to resource validalidation node. Populated + * on exit. + */ +static int +vmw_cmd_res_check(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + enum vmw_res_type res_type, + const struct vmw_user_resource_conv *converter, + uint32_t *id_loc, + struct vmw_resource_val_node **p_val) +{ + return vmw_cmd_compat_res_check(dev_priv, sw_context, res_type, + converter, *id_loc, id_loc, p_val); +} + +/** + * vmw_rebind_contexts - Rebind all resources previously bound to + * referenced contexts. + * + * @sw_context: Pointer to the software context. + * + * Rebind context binding points that have been scrubbed because of eviction. + */ +static int vmw_rebind_contexts(struct vmw_sw_context *sw_context) +{ + struct vmw_resource_val_node *val; + int ret; + + list_for_each_entry(val, &sw_context->resource_list, head) { + if (likely(!val->staged_bindings)) + continue; + + ret = vmw_context_rebind_all(val->res); + if (unlikely(ret != 0)) { + if (ret != -ERESTARTSYS) + DRM_ERROR("Failed to rebind context.\n"); + return ret; + } + } + + return 0; +} + +/** * vmw_cmd_cid_check - Check a command header for valid context information. * * @dev_priv: Pointer to a device private structure. @@ -437,7 +602,7 @@ { struct vmw_cid_cmd { SVGA3dCmdHeader header; - __le32 cid; + uint32_t cid; } *cmd; cmd = container_of(header, struct vmw_cid_cmd, header); @@ -453,17 +618,35 @@ SVGA3dCmdHeader header; SVGA3dCmdSetRenderTarget body; } *cmd; + struct vmw_resource_val_node *ctx_node; + struct vmw_resource_val_node *res_node; int ret; - ret = vmw_cmd_cid_check(dev_priv, sw_context, header); + cmd = container_of(header, struct vmw_sid_cmd, header); + + ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_context, + user_context_converter, &cmd->body.cid, + &ctx_node); if (unlikely(ret != 0)) return ret; - cmd = container_of(header, struct vmw_sid_cmd, header); ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, user_surface_converter, - &cmd->body.target.sid, NULL); - return ret; + &cmd->body.target.sid, &res_node); + if (unlikely(ret != 0)) + return ret; + + if (dev_priv->has_mob) { + struct vmw_ctx_bindinfo bi; + + bi.ctx = ctx_node->res; + bi.res = res_node ? res_node->res : NULL; + bi.bt = vmw_ctx_binding_rt; + bi.i1.rt_type = cmd->body.type; + return vmw_context_binding_add(ctx_node->staged_bindings, &bi); + } + + return 0; } static int vmw_cmd_surface_copy_check(struct vmw_private *dev_priv, @@ -519,11 +702,6 @@ cmd = container_of(header, struct vmw_sid_cmd, header); - if (unlikely(!sw_context->kernel)) { - DRM_ERROR("Kernel only SVGA3d command: %u.\n", cmd->header.id); - return -EPERM; - } - return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, user_surface_converter, &cmd->body.srcImage.sid, NULL); @@ -541,11 +719,6 @@ cmd = container_of(header, struct vmw_sid_cmd, header); - if (unlikely(!sw_context->kernel)) { - DRM_ERROR("Kernel only SVGA3d command: %u.\n", cmd->header.id); - return -EPERM; - } - return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, user_surface_converter, &cmd->body.sid, NULL); @@ -586,7 +759,7 @@ sw_context->needs_post_query_barrier = true; ret = vmw_bo_to_validate_list(sw_context, sw_context->cur_query_bo, - NULL); + dev_priv->has_mob, NULL); if (unlikely(ret != 0)) return ret; } @@ -594,7 +767,7 @@ ret = vmw_bo_to_validate_list(sw_context, dev_priv->dummy_query_bo, - NULL); + dev_priv->has_mob, NULL); if (unlikely(ret != 0)) return ret; @@ -672,6 +845,66 @@ } /** + * vmw_translate_mob_pointer - Prepare to translate a user-space buffer + * handle to a MOB id. + * + * @dev_priv: Pointer to a device private structure. + * @sw_context: The software context used for this command batch validation. + * @id: Pointer to the user-space handle to be translated. + * @vmw_bo_p: Points to a location that, on successful return will carry + * a reference-counted pointer to the DMA buffer identified by the + * user-space handle in @id. + * + * This function saves information needed to translate a user-space buffer + * handle to a MOB id. The translation does not take place immediately, but + * during a call to vmw_apply_relocations(). This function builds a relocation + * list and a list of buffers to validate. The former needs to be freed using + * either vmw_apply_relocations() or vmw_free_relocations(). The latter + * needs to be freed using vmw_clear_validations. + */ +static int vmw_translate_mob_ptr(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + SVGAMobId *id, + struct vmw_dma_buffer **vmw_bo_p) +{ + struct vmw_dma_buffer *vmw_bo = NULL; + struct ttm_buffer_object *bo; + uint32_t handle = *id; + struct vmw_relocation *reloc; + int ret; + + ret = vmw_user_dmabuf_lookup(sw_context->fp->tfile, handle, &vmw_bo); + if (unlikely(ret != 0)) { + DRM_ERROR("Could not find or use MOB buffer.\n"); + return -EINVAL; + } + bo = &vmw_bo->base; + + if (unlikely(sw_context->cur_reloc >= VMWGFX_MAX_RELOCATIONS)) { + DRM_ERROR("Max number relocations per submission" + " exceeded\n"); + ret = -EINVAL; + goto out_no_reloc; + } + + reloc = &sw_context->relocs[sw_context->cur_reloc++]; + reloc->mob_loc = id; + reloc->location = NULL; + + ret = vmw_bo_to_validate_list(sw_context, bo, true, &reloc->index); + if (unlikely(ret != 0)) + goto out_no_reloc; + + *vmw_bo_p = vmw_bo; + return 0; + +out_no_reloc: + vmw_dmabuf_unreference(&vmw_bo); + vmw_bo_p = NULL; + return ret; +} + +/** * vmw_translate_guest_pointer - Prepare to translate a user-space buffer * handle to a valid SVGAGuestPtr * @@ -701,7 +934,7 @@ struct vmw_relocation *reloc; int ret; - ret = vmw_user_dmabuf_lookup(sw_context->tfile, handle, &vmw_bo); + ret = vmw_user_dmabuf_lookup(sw_context->fp->tfile, handle, &vmw_bo); if (unlikely(ret != 0)) { DRM_ERROR("Could not find or use GMR region.\n"); return -EINVAL; @@ -718,7 +951,7 @@ reloc = &sw_context->relocs[sw_context->cur_reloc++]; reloc->location = ptr; - ret = vmw_bo_to_validate_list(sw_context, bo, &reloc->index); + ret = vmw_bo_to_validate_list(sw_context, bo, false, &reloc->index); if (unlikely(ret != 0)) goto out_no_reloc; @@ -732,6 +965,30 @@ } /** + * vmw_cmd_begin_gb_query - validate a SVGA_3D_CMD_BEGIN_GB_QUERY command. + * + * @dev_priv: Pointer to a device private struct. + * @sw_context: The software context used for this command submission. + * @header: Pointer to the command header in the command stream. + */ +static int vmw_cmd_begin_gb_query(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + SVGA3dCmdHeader *header) +{ + struct vmw_begin_gb_query_cmd { + SVGA3dCmdHeader header; + SVGA3dCmdBeginGBQuery q; + } *cmd; + + cmd = container_of(header, struct vmw_begin_gb_query_cmd, + header); + + return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_context, + user_context_converter, &cmd->q.cid, + NULL); +} + +/** * vmw_cmd_begin_query - validate a SVGA_3D_CMD_BEGIN_QUERY command. * * @dev_priv: Pointer to a device private struct. @@ -750,12 +1007,64 @@ cmd = container_of(header, struct vmw_begin_query_cmd, header); + if (unlikely(dev_priv->has_mob)) { + struct { + SVGA3dCmdHeader header; + SVGA3dCmdBeginGBQuery q; + } gb_cmd; + + BUG_ON(sizeof(gb_cmd) != sizeof(*cmd)); + + gb_cmd.header.id = SVGA_3D_CMD_BEGIN_GB_QUERY; + gb_cmd.header.size = cmd->header.size; + gb_cmd.q.cid = cmd->q.cid; + gb_cmd.q.type = cmd->q.type; + + memcpy(cmd, &gb_cmd, sizeof(*cmd)); + return vmw_cmd_begin_gb_query(dev_priv, sw_context, header); + } + return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_context, user_context_converter, &cmd->q.cid, NULL); } /** + * vmw_cmd_end_gb_query - validate a SVGA_3D_CMD_END_GB_QUERY command. + * + * @dev_priv: Pointer to a device private struct. + * @sw_context: The software context used for this command submission. + * @header: Pointer to the command header in the command stream. + */ +static int vmw_cmd_end_gb_query(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + SVGA3dCmdHeader *header) +{ + struct vmw_dma_buffer *vmw_bo; + struct vmw_query_cmd { + SVGA3dCmdHeader header; + SVGA3dCmdEndGBQuery q; + } *cmd; + int ret; + + cmd = container_of(header, struct vmw_query_cmd, header); + ret = vmw_cmd_cid_check(dev_priv, sw_context, header); + if (unlikely(ret != 0)) + return ret; + + ret = vmw_translate_mob_ptr(dev_priv, sw_context, + &cmd->q.mobid, + &vmw_bo); + if (unlikely(ret != 0)) + return ret; + + ret = vmw_query_bo_switch_prepare(dev_priv, &vmw_bo->base, sw_context); + + vmw_dmabuf_unreference(&vmw_bo); + return ret; +} + +/** * vmw_cmd_end_query - validate a SVGA_3D_CMD_END_QUERY command. * * @dev_priv: Pointer to a device private struct. @@ -774,6 +1083,25 @@ int ret; cmd = container_of(header, struct vmw_query_cmd, header); + if (dev_priv->has_mob) { + struct { + SVGA3dCmdHeader header; + SVGA3dCmdEndGBQuery q; + } gb_cmd; + + BUG_ON(sizeof(gb_cmd) != sizeof(*cmd)); + + gb_cmd.header.id = SVGA_3D_CMD_END_GB_QUERY; + gb_cmd.header.size = cmd->header.size; + gb_cmd.q.cid = cmd->q.cid; + gb_cmd.q.type = cmd->q.type; + gb_cmd.q.mobid = cmd->q.guestResult.gmrId; + gb_cmd.q.offset = cmd->q.guestResult.offset; + + memcpy(cmd, &gb_cmd, sizeof(*cmd)); + return vmw_cmd_end_gb_query(dev_priv, sw_context, header); + } + ret = vmw_cmd_cid_check(dev_priv, sw_context, header); if (unlikely(ret != 0)) return ret; @@ -790,7 +1118,40 @@ return ret; } -/* +/** + * vmw_cmd_wait_gb_query - validate a SVGA_3D_CMD_WAIT_GB_QUERY command. + * + * @dev_priv: Pointer to a device private struct. + * @sw_context: The software context used for this command submission. + * @header: Pointer to the command header in the command stream. + */ +static int vmw_cmd_wait_gb_query(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + SVGA3dCmdHeader *header) +{ + struct vmw_dma_buffer *vmw_bo; + struct vmw_query_cmd { + SVGA3dCmdHeader header; + SVGA3dCmdWaitForGBQuery q; + } *cmd; + int ret; + + cmd = container_of(header, struct vmw_query_cmd, header); + ret = vmw_cmd_cid_check(dev_priv, sw_context, header); + if (unlikely(ret != 0)) + return ret; + + ret = vmw_translate_mob_ptr(dev_priv, sw_context, + &cmd->q.mobid, + &vmw_bo); + if (unlikely(ret != 0)) + return ret; + + vmw_dmabuf_unreference(&vmw_bo); + return 0; +} + +/** * vmw_cmd_wait_query - validate a SVGA_3D_CMD_WAIT_QUERY command. * * @dev_priv: Pointer to a device private struct. @@ -809,6 +1170,25 @@ int ret; cmd = container_of(header, struct vmw_query_cmd, header); + if (dev_priv->has_mob) { + struct { + SVGA3dCmdHeader header; + SVGA3dCmdWaitForGBQuery q; + } gb_cmd; + + BUG_ON(sizeof(gb_cmd) != sizeof(*cmd)); + + gb_cmd.header.id = SVGA_3D_CMD_WAIT_FOR_GB_QUERY; + gb_cmd.header.size = cmd->header.size; + gb_cmd.q.cid = cmd->q.cid; + gb_cmd.q.type = cmd->q.type; + gb_cmd.q.mobid = cmd->q.guestResult.gmrId; + gb_cmd.q.offset = cmd->q.guestResult.offset; + + memcpy(cmd, &gb_cmd, sizeof(*cmd)); + return vmw_cmd_wait_gb_query(dev_priv, sw_context, header); + } + ret = vmw_cmd_cid_check(dev_priv, sw_context, header); if (unlikely(ret != 0)) return ret; @@ -834,14 +1214,36 @@ SVGA3dCmdSurfaceDMA dma; } *cmd; int ret; + SVGA3dCmdSurfaceDMASuffix *suffix; + uint32_t bo_size; cmd = container_of(header, struct vmw_dma_cmd, header); + suffix = (SVGA3dCmdSurfaceDMASuffix *)((unsigned long) &cmd->dma + + header->size - sizeof(*suffix)); + + /* Make sure device and verifier stays in sync. */ + if (unlikely(suffix->suffixSize != sizeof(*suffix))) { + DRM_ERROR("Invalid DMA suffix size.\n"); + return -EINVAL; + } + ret = vmw_translate_guest_ptr(dev_priv, sw_context, &cmd->dma.guest.ptr, &vmw_bo); if (unlikely(ret != 0)) return ret; + /* Make sure DMA doesn't cross BO boundaries. */ + bo_size = vmw_bo->base.num_pages * PAGE_SIZE; + if (unlikely(cmd->dma.guest.ptr.offset > bo_size)) { + DRM_ERROR("Invalid DMA offset.\n"); + return -EINVAL; + } + + bo_size -= cmd->dma.guest.ptr.offset; + if (unlikely(suffix->maximumOffset > bo_size)) + suffix->maximumOffset = bo_size; + ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, user_surface_converter, &cmd->dma.host.sid, NULL); @@ -853,7 +1255,8 @@ srf = vmw_res_to_srf(sw_context->res_cache[vmw_res_surface].res); - vmw_kms_cursor_snoop(srf, sw_context->tfile, &vmw_bo->base, header); + vmw_kms_cursor_snoop(srf, sw_context->fp->tfile, &vmw_bo->base, + header); out_no_surface: vmw_dmabuf_unreference(&vmw_bo); @@ -921,15 +1324,22 @@ struct vmw_tex_state_cmd { SVGA3dCmdHeader header; SVGA3dCmdSetTextureState state; - }; + } *cmd; SVGA3dTextureState *last_state = (SVGA3dTextureState *) ((unsigned long) header + header->size + sizeof(header)); SVGA3dTextureState *cur_state = (SVGA3dTextureState *) ((unsigned long) header + sizeof(struct vmw_tex_state_cmd)); + struct vmw_resource_val_node *ctx_node; + struct vmw_resource_val_node *res_node; int ret; - ret = vmw_cmd_cid_check(dev_priv, sw_context, header); + cmd = container_of(header, struct vmw_tex_state_cmd, + header); + + ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_context, + user_context_converter, &cmd->state.cid, + &ctx_node); if (unlikely(ret != 0)) return ret; @@ -939,9 +1349,20 @@ ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, user_surface_converter, - &cur_state->value, NULL); + &cur_state->value, &res_node); if (unlikely(ret != 0)) return ret; + + if (dev_priv->has_mob) { + struct vmw_ctx_bindinfo bi; + + bi.ctx = ctx_node->res; + bi.res = res_node ? res_node->res : NULL; + bi.bt = vmw_ctx_binding_tex; + bi.i1.texture_stage = cur_state->stage; + vmw_context_binding_add(ctx_node->staged_bindings, + &bi); + } } return 0; @@ -971,6 +1392,314 @@ } /** + * vmw_cmd_switch_backup - Utility function to handle backup buffer switching + * + * @dev_priv: Pointer to a device private struct. + * @sw_context: The software context being used for this batch. + * @res_type: The resource type. + * @converter: Information about user-space binding for this resource type. + * @res_id: Pointer to the user-space resource handle in the command stream. + * @buf_id: Pointer to the user-space backup buffer handle in the command + * stream. + * @backup_offset: Offset of backup into MOB. + * + * This function prepares for registering a switch of backup buffers + * in the resource metadata just prior to unreserving. + */ +static int vmw_cmd_switch_backup(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + enum vmw_res_type res_type, + const struct vmw_user_resource_conv + *converter, + uint32_t *res_id, + uint32_t *buf_id, + unsigned long backup_offset) +{ + int ret; + struct vmw_dma_buffer *dma_buf; + struct vmw_resource_val_node *val_node; + + ret = vmw_cmd_res_check(dev_priv, sw_context, res_type, + converter, res_id, &val_node); + if (unlikely(ret != 0)) + return ret; + + ret = vmw_translate_mob_ptr(dev_priv, sw_context, buf_id, &dma_buf); + if (unlikely(ret != 0)) + return ret; + + if (val_node->first_usage) + val_node->no_buffer_needed = true; + + vmw_dmabuf_unreference(&val_node->new_backup); + val_node->new_backup = dma_buf; + val_node->new_backup_offset = backup_offset; + + return 0; +} + +/** + * vmw_cmd_bind_gb_surface - Validate an SVGA_3D_CMD_BIND_GB_SURFACE + * command + * + * @dev_priv: Pointer to a device private struct. + * @sw_context: The software context being used for this batch. + * @header: Pointer to the command header in the command stream. + */ +static int vmw_cmd_bind_gb_surface(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + SVGA3dCmdHeader *header) +{ + struct vmw_bind_gb_surface_cmd { + SVGA3dCmdHeader header; + SVGA3dCmdBindGBSurface body; + } *cmd; + + cmd = container_of(header, struct vmw_bind_gb_surface_cmd, header); + + return vmw_cmd_switch_backup(dev_priv, sw_context, vmw_res_surface, + user_surface_converter, + &cmd->body.sid, &cmd->body.mobid, + 0); +} + +/** + * vmw_cmd_update_gb_image - Validate an SVGA_3D_CMD_UPDATE_GB_IMAGE + * command + * + * @dev_priv: Pointer to a device private struct. + * @sw_context: The software context being used for this batch. + * @header: Pointer to the command header in the command stream. + */ +static int vmw_cmd_update_gb_image(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + SVGA3dCmdHeader *header) +{ + struct vmw_gb_surface_cmd { + SVGA3dCmdHeader header; + SVGA3dCmdUpdateGBImage body; + } *cmd; + + cmd = container_of(header, struct vmw_gb_surface_cmd, header); + + return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, + user_surface_converter, + &cmd->body.image.sid, NULL); +} + +/** + * vmw_cmd_update_gb_surface - Validate an SVGA_3D_CMD_UPDATE_GB_SURFACE + * command + * + * @dev_priv: Pointer to a device private struct. + * @sw_context: The software context being used for this batch. + * @header: Pointer to the command header in the command stream. + */ +static int vmw_cmd_update_gb_surface(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + SVGA3dCmdHeader *header) +{ + struct vmw_gb_surface_cmd { + SVGA3dCmdHeader header; + SVGA3dCmdUpdateGBSurface body; + } *cmd; + + cmd = container_of(header, struct vmw_gb_surface_cmd, header); + + return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, + user_surface_converter, + &cmd->body.sid, NULL); +} + +/** + * vmw_cmd_readback_gb_image - Validate an SVGA_3D_CMD_READBACK_GB_IMAGE + * command + * + * @dev_priv: Pointer to a device private struct. + * @sw_context: The software context being used for this batch. + * @header: Pointer to the command header in the command stream. + */ +static int vmw_cmd_readback_gb_image(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + SVGA3dCmdHeader *header) +{ + struct vmw_gb_surface_cmd { + SVGA3dCmdHeader header; + SVGA3dCmdReadbackGBImage body; + } *cmd; + + cmd = container_of(header, struct vmw_gb_surface_cmd, header); + + return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, + user_surface_converter, + &cmd->body.image.sid, NULL); +} + +/** + * vmw_cmd_readback_gb_surface - Validate an SVGA_3D_CMD_READBACK_GB_SURFACE + * command + * + * @dev_priv: Pointer to a device private struct. + * @sw_context: The software context being used for this batch. + * @header: Pointer to the command header in the command stream. + */ +static int vmw_cmd_readback_gb_surface(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + SVGA3dCmdHeader *header) +{ + struct vmw_gb_surface_cmd { + SVGA3dCmdHeader header; + SVGA3dCmdReadbackGBSurface body; + } *cmd; + + cmd = container_of(header, struct vmw_gb_surface_cmd, header); + + return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, + user_surface_converter, + &cmd->body.sid, NULL); +} + +/** + * vmw_cmd_invalidate_gb_image - Validate an SVGA_3D_CMD_INVALIDATE_GB_IMAGE + * command + * + * @dev_priv: Pointer to a device private struct. + * @sw_context: The software context being used for this batch. + * @header: Pointer to the command header in the command stream. + */ +static int vmw_cmd_invalidate_gb_image(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + SVGA3dCmdHeader *header) +{ + struct vmw_gb_surface_cmd { + SVGA3dCmdHeader header; + SVGA3dCmdInvalidateGBImage body; + } *cmd; + + cmd = container_of(header, struct vmw_gb_surface_cmd, header); + + return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, + user_surface_converter, + &cmd->body.image.sid, NULL); +} + +/** + * vmw_cmd_invalidate_gb_surface - Validate an + * SVGA_3D_CMD_INVALIDATE_GB_SURFACE command + * + * @dev_priv: Pointer to a device private struct. + * @sw_context: The software context being used for this batch. + * @header: Pointer to the command header in the command stream. + */ +static int vmw_cmd_invalidate_gb_surface(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + SVGA3dCmdHeader *header) +{ + struct vmw_gb_surface_cmd { + SVGA3dCmdHeader header; + SVGA3dCmdInvalidateGBSurface body; + } *cmd; + + cmd = container_of(header, struct vmw_gb_surface_cmd, header); + + return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface, + user_surface_converter, + &cmd->body.sid, NULL); +} + + +/** + * vmw_cmd_shader_define - Validate an SVGA_3D_CMD_SHADER_DEFINE + * command + * + * @dev_priv: Pointer to a device private struct. + * @sw_context: The software context being used for this batch. + * @header: Pointer to the command header in the command stream. + */ +static int vmw_cmd_shader_define(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + SVGA3dCmdHeader *header) +{ + struct vmw_shader_define_cmd { + SVGA3dCmdHeader header; + SVGA3dCmdDefineShader body; + } *cmd; + int ret; + size_t size; + + cmd = container_of(header, struct vmw_shader_define_cmd, + header); + + ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_context, + user_context_converter, &cmd->body.cid, + NULL); + if (unlikely(ret != 0)) + return ret; + + if (unlikely(!dev_priv->has_mob)) + return 0; + + size = cmd->header.size - sizeof(cmd->body); + ret = vmw_compat_shader_add(sw_context->fp->shman, + cmd->body.shid, cmd + 1, + cmd->body.type, size, + sw_context->fp->tfile, + &sw_context->staged_shaders); + if (unlikely(ret != 0)) + return ret; + + return vmw_resource_relocation_add(&sw_context->res_relocations, + NULL, &cmd->header.id - + sw_context->buf_start); + + return 0; +} + +/** + * vmw_cmd_shader_destroy - Validate an SVGA_3D_CMD_SHADER_DESTROY + * command + * + * @dev_priv: Pointer to a device private struct. + * @sw_context: The software context being used for this batch. + * @header: Pointer to the command header in the command stream. + */ +static int vmw_cmd_shader_destroy(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + SVGA3dCmdHeader *header) +{ + struct vmw_shader_destroy_cmd { + SVGA3dCmdHeader header; + SVGA3dCmdDestroyShader body; + } *cmd; + int ret; + + cmd = container_of(header, struct vmw_shader_destroy_cmd, + header); + + ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_context, + user_context_converter, &cmd->body.cid, + NULL); + if (unlikely(ret != 0)) + return ret; + + if (unlikely(!dev_priv->has_mob)) + return 0; + + ret = vmw_compat_shader_remove(sw_context->fp->shman, + cmd->body.shid, + cmd->body.type, + &sw_context->staged_shaders); + if (unlikely(ret != 0)) + return ret; + + return vmw_resource_relocation_add(&sw_context->res_relocations, + NULL, &cmd->header.id - + sw_context->buf_start); + + return 0; +} + +/** * vmw_cmd_set_shader - Validate an SVGA_3D_CMD_SET_SHADER * command * @@ -986,18 +1715,105 @@ SVGA3dCmdHeader header; SVGA3dCmdSetShader body; } *cmd; + struct vmw_resource_val_node *ctx_node; int ret; cmd = container_of(header, struct vmw_set_shader_cmd, header); - ret = vmw_cmd_cid_check(dev_priv, sw_context, header); + ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_context, + user_context_converter, &cmd->body.cid, + &ctx_node); + if (unlikely(ret != 0)) + return ret; + + if (dev_priv->has_mob) { + struct vmw_ctx_bindinfo bi; + struct vmw_resource_val_node *res_node; + u32 shid = cmd->body.shid; + + if (shid != SVGA3D_INVALID_ID) + (void) vmw_compat_shader_lookup(sw_context->fp->shman, + cmd->body.type, + &shid); + + ret = vmw_cmd_compat_res_check(dev_priv, sw_context, + vmw_res_shader, + user_shader_converter, + shid, + &cmd->body.shid, &res_node); + if (unlikely(ret != 0)) + return ret; + + bi.ctx = ctx_node->res; + bi.res = res_node ? res_node->res : NULL; + bi.bt = vmw_ctx_binding_shader; + bi.i1.shader_type = cmd->body.type; + return vmw_context_binding_add(ctx_node->staged_bindings, &bi); + } + + return 0; +} + +/** + * vmw_cmd_set_shader_const - Validate an SVGA_3D_CMD_SET_SHADER_CONST + * command + * + * @dev_priv: Pointer to a device private struct. + * @sw_context: The software context being used for this batch. + * @header: Pointer to the command header in the command stream. + */ +static int vmw_cmd_set_shader_const(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + SVGA3dCmdHeader *header) +{ + struct vmw_set_shader_const_cmd { + SVGA3dCmdHeader header; + SVGA3dCmdSetShaderConst body; + } *cmd; + int ret; + + cmd = container_of(header, struct vmw_set_shader_const_cmd, + header); + + ret = vmw_cmd_res_check(dev_priv, sw_context, vmw_res_context, + user_context_converter, &cmd->body.cid, + NULL); if (unlikely(ret != 0)) return ret; + if (dev_priv->has_mob) + header->id = SVGA_3D_CMD_SET_GB_SHADERCONSTS_INLINE; + return 0; } +/** + * vmw_cmd_bind_gb_shader - Validate an SVGA_3D_CMD_BIND_GB_SHADER + * command + * + * @dev_priv: Pointer to a device private struct. + * @sw_context: The software context being used for this batch. + * @header: Pointer to the command header in the command stream. + */ +static int vmw_cmd_bind_gb_shader(struct vmw_private *dev_priv, + struct vmw_sw_context *sw_context, + SVGA3dCmdHeader *header) +{ + struct vmw_bind_gb_shader_cmd { + SVGA3dCmdHeader header; + SVGA3dCmdBindGBShader body; + } *cmd; + + cmd = container_of(header, struct vmw_bind_gb_shader_cmd, + header); + + return vmw_cmd_switch_backup(dev_priv, sw_context, vmw_res_shader, + user_shader_converter, + &cmd->body.shid, &cmd->body.mobid, + cmd->body.offsetInBytes); +} + static int vmw_cmd_check_not_3d(struct vmw_private *dev_priv, struct vmw_sw_context *sw_context, void *buf, uint32_t *size) @@ -1041,50 +1857,173 @@ return 0; } -typedef int (*vmw_cmd_func) (struct vmw_private *, - struct vmw_sw_context *, - SVGA3dCmdHeader *); - -#define VMW_CMD_DEF(cmd, func) \ - [cmd - SVGA_3D_CMD_BASE] = func - -static vmw_cmd_func vmw_cmd_funcs[SVGA_3D_CMD_MAX] = { - VMW_CMD_DEF(SVGA_3D_CMD_SURFACE_DEFINE, &vmw_cmd_invalid), - VMW_CMD_DEF(SVGA_3D_CMD_SURFACE_DESTROY, &vmw_cmd_invalid), - VMW_CMD_DEF(SVGA_3D_CMD_SURFACE_COPY, &vmw_cmd_surface_copy_check), - VMW_CMD_DEF(SVGA_3D_CMD_SURFACE_STRETCHBLT, &vmw_cmd_stretch_blt_check), - VMW_CMD_DEF(SVGA_3D_CMD_SURFACE_DMA, &vmw_cmd_dma), - VMW_CMD_DEF(SVGA_3D_CMD_CONTEXT_DEFINE, &vmw_cmd_invalid), - VMW_CMD_DEF(SVGA_3D_CMD_CONTEXT_DESTROY, &vmw_cmd_invalid), - VMW_CMD_DEF(SVGA_3D_CMD_SETTRANSFORM, &vmw_cmd_cid_check), - VMW_CMD_DEF(SVGA_3D_CMD_SETZRANGE, &vmw_cmd_cid_check), - VMW_CMD_DEF(SVGA_3D_CMD_SETRENDERSTATE, &vmw_cmd_cid_check), +static const struct vmw_cmd_entry vmw_cmd_entries[SVGA_3D_CMD_MAX] = { + VMW_CMD_DEF(SVGA_3D_CMD_SURFACE_DEFINE, &vmw_cmd_invalid, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SURFACE_DESTROY, &vmw_cmd_invalid, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SURFACE_COPY, &vmw_cmd_surface_copy_check, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SURFACE_STRETCHBLT, &vmw_cmd_stretch_blt_check, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SURFACE_DMA, &vmw_cmd_dma, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_CONTEXT_DEFINE, &vmw_cmd_invalid, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_CONTEXT_DESTROY, &vmw_cmd_invalid, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SETTRANSFORM, &vmw_cmd_cid_check, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SETZRANGE, &vmw_cmd_cid_check, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SETRENDERSTATE, &vmw_cmd_cid_check, + true, false, false), VMW_CMD_DEF(SVGA_3D_CMD_SETRENDERTARGET, - &vmw_cmd_set_render_target_check), - VMW_CMD_DEF(SVGA_3D_CMD_SETTEXTURESTATE, &vmw_cmd_tex_state), - VMW_CMD_DEF(SVGA_3D_CMD_SETMATERIAL, &vmw_cmd_cid_check), - VMW_CMD_DEF(SVGA_3D_CMD_SETLIGHTDATA, &vmw_cmd_cid_check), - VMW_CMD_DEF(SVGA_3D_CMD_SETLIGHTENABLED, &vmw_cmd_cid_check), - VMW_CMD_DEF(SVGA_3D_CMD_SETVIEWPORT, &vmw_cmd_cid_check), - VMW_CMD_DEF(SVGA_3D_CMD_SETCLIPPLANE, &vmw_cmd_cid_check), - VMW_CMD_DEF(SVGA_3D_CMD_CLEAR, &vmw_cmd_cid_check), - VMW_CMD_DEF(SVGA_3D_CMD_PRESENT, &vmw_cmd_present_check), - VMW_CMD_DEF(SVGA_3D_CMD_SHADER_DEFINE, &vmw_cmd_cid_check), - VMW_CMD_DEF(SVGA_3D_CMD_SHADER_DESTROY, &vmw_cmd_cid_check), - VMW_CMD_DEF(SVGA_3D_CMD_SET_SHADER, &vmw_cmd_set_shader), - VMW_CMD_DEF(SVGA_3D_CMD_SET_SHADER_CONST, &vmw_cmd_cid_check), - VMW_CMD_DEF(SVGA_3D_CMD_DRAW_PRIMITIVES, &vmw_cmd_draw), - VMW_CMD_DEF(SVGA_3D_CMD_SETSCISSORRECT, &vmw_cmd_cid_check), - VMW_CMD_DEF(SVGA_3D_CMD_BEGIN_QUERY, &vmw_cmd_begin_query), - VMW_CMD_DEF(SVGA_3D_CMD_END_QUERY, &vmw_cmd_end_query), - VMW_CMD_DEF(SVGA_3D_CMD_WAIT_FOR_QUERY, &vmw_cmd_wait_query), - VMW_CMD_DEF(SVGA_3D_CMD_PRESENT_READBACK, &vmw_cmd_ok), + &vmw_cmd_set_render_target_check, true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SETTEXTURESTATE, &vmw_cmd_tex_state, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SETMATERIAL, &vmw_cmd_cid_check, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SETLIGHTDATA, &vmw_cmd_cid_check, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SETLIGHTENABLED, &vmw_cmd_cid_check, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SETVIEWPORT, &vmw_cmd_cid_check, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SETCLIPPLANE, &vmw_cmd_cid_check, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_CLEAR, &vmw_cmd_cid_check, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_PRESENT, &vmw_cmd_present_check, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SHADER_DEFINE, &vmw_cmd_shader_define, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SHADER_DESTROY, &vmw_cmd_shader_destroy, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SET_SHADER, &vmw_cmd_set_shader, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SET_SHADER_CONST, &vmw_cmd_set_shader_const, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_DRAW_PRIMITIVES, &vmw_cmd_draw, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SETSCISSORRECT, &vmw_cmd_cid_check, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_BEGIN_QUERY, &vmw_cmd_begin_query, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_END_QUERY, &vmw_cmd_end_query, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_WAIT_FOR_QUERY, &vmw_cmd_wait_query, + true, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_PRESENT_READBACK, &vmw_cmd_ok, + true, false, false), VMW_CMD_DEF(SVGA_3D_CMD_BLIT_SURFACE_TO_SCREEN, - &vmw_cmd_blt_surf_screen_check), - VMW_CMD_DEF(SVGA_3D_CMD_SURFACE_DEFINE_V2, &vmw_cmd_invalid), - VMW_CMD_DEF(SVGA_3D_CMD_GENERATE_MIPMAPS, &vmw_cmd_invalid), - VMW_CMD_DEF(SVGA_3D_CMD_ACTIVATE_SURFACE, &vmw_cmd_invalid), - VMW_CMD_DEF(SVGA_3D_CMD_DEACTIVATE_SURFACE, &vmw_cmd_invalid), + &vmw_cmd_blt_surf_screen_check, false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SURFACE_DEFINE_V2, &vmw_cmd_invalid, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_GENERATE_MIPMAPS, &vmw_cmd_invalid, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_ACTIVATE_SURFACE, &vmw_cmd_invalid, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_DEACTIVATE_SURFACE, &vmw_cmd_invalid, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SCREEN_DMA, &vmw_cmd_invalid, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SET_UNITY_SURFACE_COOKIE, &vmw_cmd_invalid, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_OPEN_CONTEXT_SURFACE, &vmw_cmd_invalid, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_LOGICOPS_BITBLT, &vmw_cmd_invalid, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_LOGICOPS_TRANSBLT, &vmw_cmd_invalid, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_LOGICOPS_STRETCHBLT, &vmw_cmd_invalid, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_LOGICOPS_COLORFILL, &vmw_cmd_invalid, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_LOGICOPS_ALPHABLEND, &vmw_cmd_invalid, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_LOGICOPS_CLEARTYPEBLEND, &vmw_cmd_invalid, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_SET_OTABLE_BASE, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_READBACK_OTABLE, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_DEFINE_GB_MOB, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_DESTROY_GB_MOB, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_REDEFINE_GB_MOB, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_UPDATE_GB_MOB_MAPPING, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_DEFINE_GB_SURFACE, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_DESTROY_GB_SURFACE, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_BIND_GB_SURFACE, &vmw_cmd_bind_gb_surface, + true, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_COND_BIND_GB_SURFACE, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_UPDATE_GB_IMAGE, &vmw_cmd_update_gb_image, + true, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_UPDATE_GB_SURFACE, + &vmw_cmd_update_gb_surface, true, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_READBACK_GB_IMAGE, + &vmw_cmd_readback_gb_image, true, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_READBACK_GB_SURFACE, + &vmw_cmd_readback_gb_surface, true, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_INVALIDATE_GB_IMAGE, + &vmw_cmd_invalidate_gb_image, true, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_INVALIDATE_GB_SURFACE, + &vmw_cmd_invalidate_gb_surface, true, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_DEFINE_GB_CONTEXT, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_DESTROY_GB_CONTEXT, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_BIND_GB_CONTEXT, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_READBACK_GB_CONTEXT, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_INVALIDATE_GB_CONTEXT, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_DEFINE_GB_SHADER, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_BIND_GB_SHADER, &vmw_cmd_bind_gb_shader, + true, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_DESTROY_GB_SHADER, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_SET_OTABLE_BASE64, &vmw_cmd_invalid, + false, false, false), + VMW_CMD_DEF(SVGA_3D_CMD_BEGIN_GB_QUERY, &vmw_cmd_begin_gb_query, + true, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_END_GB_QUERY, &vmw_cmd_end_gb_query, + true, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_WAIT_FOR_GB_QUERY, &vmw_cmd_wait_gb_query, + true, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_NOP, &vmw_cmd_ok, + true, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_ENABLE_GART, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_DISABLE_GART, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_MAP_MOB_INTO_GART, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_UNMAP_GART_RANGE, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_DEFINE_GB_SCREENTARGET, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_DESTROY_GB_SCREENTARGET, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_BIND_GB_SCREENTARGET, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_UPDATE_GB_SCREENTARGET, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_READBACK_GB_IMAGE_PARTIAL, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_INVALIDATE_GB_IMAGE_PARTIAL, &vmw_cmd_invalid, + false, false, true), + VMW_CMD_DEF(SVGA_3D_CMD_SET_GB_SHADERCONSTS_INLINE, &vmw_cmd_cid_check, + true, false, true) }; static int vmw_cmd_check(struct vmw_private *dev_priv, @@ -1095,6 +2034,8 @@ uint32_t size_remaining = *size; SVGA3dCmdHeader *header = (SVGA3dCmdHeader *) buf; int ret; + const struct vmw_cmd_entry *entry; + bool gb = dev_priv->capabilities & SVGA_CAP_GBOBJECTS; cmd_id = le32_to_cpu(((uint32_t *)buf)[0]); /* Handle any none 3D commands */ @@ -1107,18 +2048,43 @@ cmd_id -= SVGA_3D_CMD_BASE; if (unlikely(*size > size_remaining)) - goto out_err; + goto out_invalid; if (unlikely(cmd_id >= SVGA_3D_CMD_MAX - SVGA_3D_CMD_BASE)) - goto out_err; + goto out_invalid; + + entry = &vmw_cmd_entries[cmd_id]; + if (unlikely(!entry->func)) + goto out_invalid; + + if (unlikely(!entry->user_allow && !sw_context->kernel)) + goto out_privileged; - ret = vmw_cmd_funcs[cmd_id](dev_priv, sw_context, header); + if (unlikely(entry->gb_disable && gb)) + goto out_old; + + if (unlikely(entry->gb_enable && !gb)) + goto out_new; + + ret = entry->func(dev_priv, sw_context, header); if (unlikely(ret != 0)) - goto out_err; + goto out_invalid; return 0; -out_err: - DRM_ERROR("Illegal / Invalid SVGA3D command: %d\n", +out_invalid: + DRM_ERROR("Invalid SVGA3D command: %d\n", + cmd_id + SVGA_3D_CMD_BASE); + return -EINVAL; +out_privileged: + DRM_ERROR("Privileged SVGA3D command: %d\n", + cmd_id + SVGA_3D_CMD_BASE); + return -EPERM; +out_old: + DRM_ERROR("Deprecated (disallowed) SVGA3D command: %d\n", + cmd_id + SVGA_3D_CMD_BASE); + return -EINVAL; +out_new: + DRM_ERROR("SVGA3D command: %d not supported by virtual hardware.\n", cmd_id + SVGA_3D_CMD_BASE); return -EINVAL; } @@ -1174,6 +2140,9 @@ case VMW_PL_GMR: reloc->location->gmrId = bo->mem.start; break; + case VMW_PL_MOB: + *reloc->mob_loc = bo->mem.start; + break; default: BUG(); } @@ -1198,6 +2167,8 @@ list_for_each_entry_safe(val, val_next, list, head) { list_del_init(&val->head); vmw_resource_unreference(&val->res); + if (unlikely(val->staged_bindings)) + kfree(val->staged_bindings); kfree(val); } } @@ -1224,7 +2195,8 @@ } static int vmw_validate_single_buffer(struct vmw_private *dev_priv, - struct ttm_buffer_object *bo) + struct ttm_buffer_object *bo, + bool validate_as_mob) { int ret; @@ -1238,6 +2210,9 @@ dev_priv->dummy_query_bo_pinned)) return 0; + if (validate_as_mob) + return ttm_bo_validate(bo, &vmw_mob_placement, true, false); + /** * Put BO in VRAM if there is space, otherwise as a GMR. * If there is no space in VRAM and GMR ids are all used up, @@ -1259,7 +2234,6 @@ return ret; } - static int vmw_validate_buffers(struct vmw_private *dev_priv, struct vmw_sw_context *sw_context) { @@ -1267,7 +2241,8 @@ int ret; list_for_each_entry(entry, &sw_context->validate_nodes, base.head) { - ret = vmw_validate_single_buffer(dev_priv, entry->base.bo); + ret = vmw_validate_single_buffer(dev_priv, entry->base.bo, + entry->validate_as_mob); if (unlikely(ret != 0)) return ret; } @@ -1461,7 +2436,7 @@ } else sw_context->kernel = true; - sw_context->tfile = vmw_fpriv(file_priv)->tfile; + sw_context->fp = vmw_fpriv(file_priv); sw_context->cur_reloc = 0; sw_context->cur_val_buf = 0; sw_context->fence_flags = 0; @@ -1478,16 +2453,17 @@ goto out_unlock; sw_context->res_ht_initialized = true; } + INIT_LIST_HEAD(&sw_context->staged_shaders); INIT_LIST_HEAD(&resource_list); ret = vmw_cmd_check_all(dev_priv, sw_context, kernel_commands, command_size); if (unlikely(ret != 0)) - goto out_err; + goto out_err_nores; ret = vmw_resources_reserve(sw_context); if (unlikely(ret != 0)) - goto out_err; + goto out_err_nores; ret = ttm_eu_reserve_buffers(&ticket, &sw_context->validate_nodes); if (unlikely(ret != 0)) @@ -1509,11 +2485,23 @@ goto out_err; } + ret = mutex_lock_interruptible(&dev_priv->binding_mutex); + if (unlikely(ret != 0)) { + ret = -ERESTARTSYS; + goto out_err; + } + + if (dev_priv->has_mob) { + ret = vmw_rebind_contexts(sw_context); + if (unlikely(ret != 0)) + goto out_unlock_binding; + } + cmd = vmw_fifo_reserve(dev_priv, command_size); if (unlikely(cmd == NULL)) { DRM_ERROR("Failed reserving fifo space for commands.\n"); ret = -ENOMEM; - goto out_err; + goto out_unlock_binding; } vmw_apply_relocations(sw_context); @@ -1538,6 +2526,8 @@ DRM_ERROR("Fence submission error. Syncing.\n"); vmw_resource_list_unreserve(&sw_context->resource_list, false); + mutex_unlock(&dev_priv->binding_mutex); + ttm_eu_fence_buffer_objects(&ticket, &sw_context->validate_nodes, (void *) fence); @@ -1558,6 +2548,8 @@ } list_splice_init(&sw_context->resource_list, &resource_list); + vmw_compat_shaders_commit(sw_context->fp->shman, + &sw_context->staged_shaders); mutex_unlock(&dev_priv->cmdbuf_mutex); /* @@ -1568,11 +2560,14 @@ return 0; +out_unlock_binding: + mutex_unlock(&dev_priv->binding_mutex); out_err: - vmw_resource_relocations_free(&sw_context->res_relocations); - vmw_free_relocations(sw_context); ttm_eu_backoff_reservation(&ticket, &sw_context->validate_nodes); +out_err_nores: vmw_resource_list_unreserve(&sw_context->resource_list, true); + vmw_resource_relocations_free(&sw_context->res_relocations); + vmw_free_relocations(sw_context); vmw_clear_validations(sw_context); if (unlikely(dev_priv->pinned_bo != NULL && !dev_priv->query_cid_valid)) @@ -1581,6 +2576,8 @@ list_splice_init(&sw_context->resource_list, &resource_list); error_resource = sw_context->error_resource; sw_context->error_resource = NULL; + vmw_compat_shaders_revert(sw_context->fp->shman, + &sw_context->staged_shaders); mutex_unlock(&dev_priv->cmdbuf_mutex); /* --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c @@ -147,7 +147,7 @@ } if (!vmw_kms_validate_mode_vram(vmw_priv, - info->fix.line_length, + var->xres * var->bits_per_pixel/8, var->yoffset + var->yres)) { DRM_ERROR("Requested geom can not fit in framebuffer\n"); return -EINVAL; @@ -162,6 +162,8 @@ struct vmw_private *vmw_priv = par->vmw_priv; int ret; + info->fix.line_length = info->var.xres * info->var.bits_per_pixel/8; + ret = vmw_kms_write_svga(vmw_priv, info->var.xres, info->var.yres, info->fix.line_length, par->bpp, par->depth); --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c @@ -271,7 +271,7 @@ spin_unlock_irq(&fman->lock); } -void vmw_fences_perform_actions(struct vmw_fence_manager *fman, +static void vmw_fences_perform_actions(struct vmw_fence_manager *fman, struct list_head *list) { struct vmw_fence_action *action, *next_action; @@ -485,14 +485,7 @@ static void vmw_fence_destroy(struct vmw_fence_obj *fence) { - struct vmw_fence_manager *fman = fence->fman; - kfree(fence); - /* - * Free kernel space accounting. - */ - ttm_mem_global_free(vmw_mem_glob(fman->dev_priv), - fman->fence_size); } int vmw_fence_create(struct vmw_fence_manager *fman, @@ -500,20 +493,12 @@ uint32_t mask, struct vmw_fence_obj **p_fence) { - struct ttm_mem_global *mem_glob = vmw_mem_glob(fman->dev_priv); struct vmw_fence_obj *fence; int ret; - ret = ttm_mem_global_alloc(mem_glob, fman->fence_size, - false, false); - if (unlikely(ret != 0)) - return ret; - fence = kzalloc(sizeof(*fence), GFP_KERNEL); - if (unlikely(fence == NULL)) { - ret = -ENOMEM; - goto out_no_object; - } + if (unlikely(fence == NULL)) + return -ENOMEM; ret = vmw_fence_obj_init(fman, fence, seqno, mask, vmw_fence_destroy); @@ -525,8 +510,6 @@ out_err_init: kfree(fence); -out_no_object: - ttm_mem_global_free(mem_glob, fman->fence_size); return ret; } @@ -897,7 +880,7 @@ * Note that the action callbacks may be executed before this function * returns. */ -void vmw_fence_obj_add_action(struct vmw_fence_obj *fence, +static void vmw_fence_obj_add_action(struct vmw_fence_obj *fence, struct vmw_fence_action *action) { struct vmw_fence_manager *fman = fence->fman; @@ -993,7 +976,7 @@ struct drm_vmw_event_fence event; }; -int vmw_event_fence_action_create(struct drm_file *file_priv, +static int vmw_event_fence_action_create(struct drm_file *file_priv, struct vmw_fence_obj *fence, uint32_t flags, uint64_t user_data, @@ -1049,6 +1032,8 @@ if (ret != 0) goto out_no_queue; + return 0; + out_no_queue: event->base.destroy(&event->base); out_no_event: @@ -1080,7 +1065,8 @@ */ if (arg->handle) { struct ttm_base_object *base = - ttm_base_object_lookup(vmw_fp->tfile, arg->handle); + ttm_base_object_lookup_for_ref(dev_priv->tdev, + arg->handle); if (unlikely(base == NULL)) { DRM_ERROR("Fence event invalid fence object handle " @@ -1123,17 +1109,10 @@ BUG_ON(fence == NULL); - if (arg->flags & DRM_VMW_FE_FLAG_REQ_TIME) - ret = vmw_event_fence_action_create(file_priv, fence, - arg->flags, - arg->user_data, - true); - else - ret = vmw_event_fence_action_create(file_priv, fence, - arg->flags, - arg->user_data, - true); - + ret = vmw_event_fence_action_create(file_priv, fence, + arg->flags, + arg->user_data, + true); if (unlikely(ret != 0)) { if (ret != -ERESTARTSYS) DRM_ERROR("Failed to attach event to fence.\n"); --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c @@ -35,6 +35,23 @@ uint32_t fifo_min, hwversion; const struct vmw_fifo_state *fifo = &dev_priv->fifo; + if (!(dev_priv->capabilities & SVGA_CAP_3D)) + return false; + + if (dev_priv->capabilities & SVGA_CAP_GBOBJECTS) { + uint32_t result; + + if (!dev_priv->has_mob) + return false; + + mutex_lock(&dev_priv->hw_mutex); + vmw_write(dev_priv, SVGA_REG_DEV_CAP, SVGA3D_DEVCAP_3D); + result = vmw_read(dev_priv, SVGA_REG_DEV_CAP); + mutex_unlock(&dev_priv->hw_mutex); + + return (result != 0); + } + if (!(dev_priv->capabilities & SVGA_CAP_EXTENDED_FIFO)) return false; @@ -163,8 +180,9 @@ mutex_lock(&dev_priv->hw_mutex); + vmw_write(dev_priv, SVGA_REG_SYNC, SVGA_SYNC_GENERIC); while (vmw_read(dev_priv, SVGA_REG_BUSY) != 0) - vmw_write(dev_priv, SVGA_REG_SYNC, SVGA_SYNC_GENERIC); + ; dev_priv->last_read_seqno = ioread32(fifo_mem + SVGA_FIFO_FENCE); @@ -511,24 +529,16 @@ } /** - * vmw_fifo_emit_dummy_query - emits a dummy query to the fifo. + * vmw_fifo_emit_dummy_legacy_query - emits a dummy query to the fifo using + * legacy query commands. * * @dev_priv: The device private structure. * @cid: The hardware context id used for the query. * - * This function is used to emit a dummy occlusion query with - * no primitives rendered between query begin and query end. - * It's used to provide a query barrier, in order to know that when - * this query is finished, all preceding queries are also finished. - * - * A Query results structure should have been initialized at the start - * of the dev_priv->dummy_query_bo buffer object. And that buffer object - * must also be either reserved or pinned when this function is called. - * - * Returns -ENOMEM on failure to reserve fifo space. + * See the vmw_fifo_emit_dummy_query documentation. */ -int vmw_fifo_emit_dummy_query(struct vmw_private *dev_priv, - uint32_t cid) +static int vmw_fifo_emit_dummy_legacy_query(struct vmw_private *dev_priv, + uint32_t cid) { /* * A query wait without a preceding query end will @@ -566,3 +576,75 @@ return 0; } + +/** + * vmw_fifo_emit_dummy_gb_query - emits a dummy query to the fifo using + * guest-backed resource query commands. + * + * @dev_priv: The device private structure. + * @cid: The hardware context id used for the query. + * + * See the vmw_fifo_emit_dummy_query documentation. + */ +static int vmw_fifo_emit_dummy_gb_query(struct vmw_private *dev_priv, + uint32_t cid) +{ + /* + * A query wait without a preceding query end will + * actually finish all queries for this cid + * without writing to the query result structure. + */ + + struct ttm_buffer_object *bo = dev_priv->dummy_query_bo; + struct { + SVGA3dCmdHeader header; + SVGA3dCmdWaitForGBQuery body; + } *cmd; + + cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); + + if (unlikely(cmd == NULL)) { + DRM_ERROR("Out of fifo space for dummy query.\n"); + return -ENOMEM; + } + + cmd->header.id = SVGA_3D_CMD_WAIT_FOR_GB_QUERY; + cmd->header.size = sizeof(cmd->body); + cmd->body.cid = cid; + cmd->body.type = SVGA3D_QUERYTYPE_OCCLUSION; + BUG_ON(bo->mem.mem_type != VMW_PL_MOB); + cmd->body.mobid = bo->mem.start; + cmd->body.offset = 0; + + vmw_fifo_commit(dev_priv, sizeof(*cmd)); + + return 0; +} + + +/** + * vmw_fifo_emit_dummy_gb_query - emits a dummy query to the fifo using + * appropriate resource query commands. + * + * @dev_priv: The device private structure. + * @cid: The hardware context id used for the query. + * + * This function is used to emit a dummy occlusion query with + * no primitives rendered between query begin and query end. + * It's used to provide a query barrier, in order to know that when + * this query is finished, all preceding queries are also finished. + * + * A Query results structure should have been initialized at the start + * of the dev_priv->dummy_query_bo buffer object. And that buffer object + * must also be either reserved or pinned when this function is called. + * + * Returns -ENOMEM on failure to reserve fifo space. + */ +int vmw_fifo_emit_dummy_query(struct vmw_private *dev_priv, + uint32_t cid) +{ + if (dev_priv->has_mob) + return vmw_fifo_emit_dummy_gb_query(dev_priv, cid); + + return vmw_fifo_emit_dummy_legacy_query(dev_priv, cid); +} --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c @@ -125,181 +125,27 @@ } -static void vmw_gmr_free_descriptors(struct device *dev, dma_addr_t desc_dma, - struct list_head *desc_pages) -{ - struct page *page, *next; - struct svga_guest_mem_descriptor *page_virtual; - unsigned int desc_per_page = PAGE_SIZE / - sizeof(struct svga_guest_mem_descriptor) - 1; - - if (list_empty(desc_pages)) - return; - - list_for_each_entry_safe(page, next, desc_pages, lru) { - list_del_init(&page->lru); - - if (likely(desc_dma != DMA_ADDR_INVALID)) { - dma_unmap_page(dev, desc_dma, PAGE_SIZE, - DMA_TO_DEVICE); - } - - page_virtual = kmap_atomic(page); - desc_dma = (dma_addr_t) - le32_to_cpu(page_virtual[desc_per_page].ppn) << - PAGE_SHIFT; - kunmap_atomic(page_virtual); - - __free_page(page); - } -} - -/** - * FIXME: Adjust to the ttm lowmem / highmem storage to minimize - * the number of used descriptors. - * - */ - -static int vmw_gmr_build_descriptors(struct device *dev, - struct list_head *desc_pages, - struct vmw_piter *iter, - unsigned long num_pages, - dma_addr_t *first_dma) -{ - struct page *page; - struct svga_guest_mem_descriptor *page_virtual = NULL; - struct svga_guest_mem_descriptor *desc_virtual = NULL; - unsigned int desc_per_page; - unsigned long prev_pfn; - unsigned long pfn; - int ret; - dma_addr_t desc_dma; - - desc_per_page = PAGE_SIZE / - sizeof(struct svga_guest_mem_descriptor) - 1; - - while (likely(num_pages != 0)) { - page = alloc_page(__GFP_HIGHMEM); - if (unlikely(page == NULL)) { - ret = -ENOMEM; - goto out_err; - } - - list_add_tail(&page->lru, desc_pages); - page_virtual = kmap_atomic(page); - desc_virtual = page_virtual - 1; - prev_pfn = ~(0UL); - - while (likely(num_pages != 0)) { - pfn = vmw_piter_dma_addr(iter) >> PAGE_SHIFT; - - if (pfn != prev_pfn + 1) { - - if (desc_virtual - page_virtual == - desc_per_page - 1) - break; - - (++desc_virtual)->ppn = cpu_to_le32(pfn); - desc_virtual->num_pages = cpu_to_le32(1); - } else { - uint32_t tmp = - le32_to_cpu(desc_virtual->num_pages); - desc_virtual->num_pages = cpu_to_le32(tmp + 1); - } - prev_pfn = pfn; - --num_pages; - vmw_piter_next(iter); - } - - (++desc_virtual)->ppn = DMA_PAGE_INVALID; - desc_virtual->num_pages = cpu_to_le32(0); - kunmap_atomic(page_virtual); - } - - desc_dma = 0; - list_for_each_entry_reverse(page, desc_pages, lru) { - page_virtual = kmap_atomic(page); - page_virtual[desc_per_page].ppn = cpu_to_le32 - (desc_dma >> PAGE_SHIFT); - kunmap_atomic(page_virtual); - desc_dma = dma_map_page(dev, page, 0, PAGE_SIZE, - DMA_TO_DEVICE); - - if (unlikely(dma_mapping_error(dev, desc_dma))) - goto out_err; - } - *first_dma = desc_dma; - - return 0; -out_err: - vmw_gmr_free_descriptors(dev, DMA_ADDR_INVALID, desc_pages); - return ret; -} - -static void vmw_gmr_fire_descriptors(struct vmw_private *dev_priv, - int gmr_id, dma_addr_t desc_dma) -{ - mutex_lock(&dev_priv->hw_mutex); - - vmw_write(dev_priv, SVGA_REG_GMR_ID, gmr_id); - wmb(); - vmw_write(dev_priv, SVGA_REG_GMR_DESCRIPTOR, desc_dma >> PAGE_SHIFT); - mb(); - - mutex_unlock(&dev_priv->hw_mutex); - -} - int vmw_gmr_bind(struct vmw_private *dev_priv, const struct vmw_sg_table *vsgt, unsigned long num_pages, int gmr_id) { - struct list_head desc_pages; - dma_addr_t desc_dma = 0; - struct device *dev = dev_priv->dev->dev; struct vmw_piter data_iter; - int ret; vmw_piter_start(&data_iter, vsgt, 0); if (unlikely(!vmw_piter_next(&data_iter))) return 0; - if (likely(dev_priv->capabilities & SVGA_CAP_GMR2)) - return vmw_gmr2_bind(dev_priv, &data_iter, num_pages, gmr_id); - - if (unlikely(!(dev_priv->capabilities & SVGA_CAP_GMR))) - return -EINVAL; - - if (vsgt->num_regions > dev_priv->max_gmr_descriptors) + if (unlikely(!(dev_priv->capabilities & SVGA_CAP_GMR2))) return -EINVAL; - INIT_LIST_HEAD(&desc_pages); - - ret = vmw_gmr_build_descriptors(dev, &desc_pages, &data_iter, - num_pages, &desc_dma); - if (unlikely(ret != 0)) - return ret; - - vmw_gmr_fire_descriptors(dev_priv, gmr_id, desc_dma); - vmw_gmr_free_descriptors(dev, desc_dma, &desc_pages); - - return 0; + return vmw_gmr2_bind(dev_priv, &data_iter, num_pages, gmr_id); } void vmw_gmr_unbind(struct vmw_private *dev_priv, int gmr_id) { - if (likely(dev_priv->capabilities & SVGA_CAP_GMR2)) { + if (likely(dev_priv->capabilities & SVGA_CAP_GMR2)) vmw_gmr2_unbind(dev_priv, gmr_id); - return; - } - - mutex_lock(&dev_priv->hw_mutex); - vmw_write(dev_priv, SVGA_REG_GMR_ID, gmr_id); - wmb(); - vmw_write(dev_priv, SVGA_REG_GMR_DESCRIPTOR, 0); - mb(); - mutex_unlock(&dev_priv->hw_mutex); } --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c @@ -125,10 +125,21 @@ return -ENOMEM; spin_lock_init(&gman->lock); - gman->max_gmr_pages = dev_priv->max_gmr_pages; gman->used_gmr_pages = 0; ida_init(&gman->gmr_ida); - gman->max_gmr_ids = p_size; + + switch (p_size) { + case VMW_PL_GMR: + gman->max_gmr_ids = dev_priv->max_gmr_ids; + gman->max_gmr_pages = dev_priv->max_gmr_pages; + break; + case VMW_PL_MOB: + gman->max_gmr_ids = VMWGFX_NUM_MOB; + gman->max_gmr_pages = dev_priv->max_mob_pages; + break; + default: + BUG(); + } man->priv = (void *) gman; return 0; } --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c @@ -29,12 +29,18 @@ #include #include "vmwgfx_kms.h" +struct svga_3d_compat_cap { + SVGA3dCapsRecordHeader header; + SVGA3dCapPair pairs[SVGA3D_DEVCAP_MAX]; +}; + int vmw_getparam_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv) { struct vmw_private *dev_priv = vmw_priv(dev); struct drm_vmw_getparam_arg *param = (struct drm_vmw_getparam_arg *)data; + struct vmw_fpriv *vmw_fp = vmw_fpriv(file_priv); switch (param->param) { case DRM_VMW_PARAM_NUM_STREAMS: @@ -53,13 +59,18 @@ param->value = dev_priv->fifo.capabilities; break; case DRM_VMW_PARAM_MAX_FB_SIZE: - param->value = dev_priv->vram_size; + param->value = dev_priv->prim_bb_mem; break; case DRM_VMW_PARAM_FIFO_HW_VERSION: { __le32 __iomem *fifo_mem = dev_priv->mmio_virt; const struct vmw_fifo_state *fifo = &dev_priv->fifo; + if ((dev_priv->capabilities & SVGA_CAP_GBOBJECTS)) { + param->value = SVGA3D_HWVERSION_WS8_B1; + break; + } + param->value = ioread32(fifo_mem + ((fifo->capabilities & @@ -69,7 +80,30 @@ break; } case DRM_VMW_PARAM_MAX_SURF_MEMORY: - param->value = dev_priv->memory_size; + if ((dev_priv->capabilities & SVGA_CAP_GBOBJECTS) && + !vmw_fp->gb_aware) + param->value = dev_priv->max_mob_pages * PAGE_SIZE / 2; + else + param->value = dev_priv->memory_size; + break; + case DRM_VMW_PARAM_3D_CAPS_SIZE: + if ((dev_priv->capabilities & SVGA_CAP_GBOBJECTS) && + vmw_fp->gb_aware) + param->value = SVGA3D_DEVCAP_MAX * sizeof(uint32_t); + else if (dev_priv->capabilities & SVGA_CAP_GBOBJECTS) + param->value = sizeof(struct svga_3d_compat_cap) + + sizeof(uint32_t); + else + param->value = (SVGA_FIFO_3D_CAPS_LAST - + SVGA_FIFO_3D_CAPS + 1) * + sizeof(uint32_t); + break; + case DRM_VMW_PARAM_MAX_MOB_MEMORY: + vmw_fp->gb_aware = true; + param->value = dev_priv->max_mob_pages * PAGE_SIZE; + break; + case DRM_VMW_PARAM_MAX_MOB_SIZE: + param->value = dev_priv->max_mob_size; break; default: DRM_ERROR("Illegal vmwgfx get param request: %d\n", @@ -80,6 +114,38 @@ return 0; } +static int vmw_fill_compat_cap(struct vmw_private *dev_priv, void *bounce, + size_t size) +{ + struct svga_3d_compat_cap *compat_cap = + (struct svga_3d_compat_cap *) bounce; + unsigned int i; + size_t pair_offset = offsetof(struct svga_3d_compat_cap, pairs); + unsigned int max_size; + + if (size < pair_offset) + return -EINVAL; + + max_size = (size - pair_offset) / sizeof(SVGA3dCapPair); + + if (max_size > SVGA3D_DEVCAP_MAX) + max_size = SVGA3D_DEVCAP_MAX; + + compat_cap->header.length = + (pair_offset + max_size * sizeof(SVGA3dCapPair)) / sizeof(u32); + compat_cap->header.type = SVGA3DCAPS_RECORD_DEVCAPS; + + mutex_lock(&dev_priv->hw_mutex); + for (i = 0; i < max_size; ++i) { + vmw_write(dev_priv, SVGA_REG_DEV_CAP, i); + compat_cap->pairs[i][0] = i; + compat_cap->pairs[i][1] = vmw_read(dev_priv, SVGA_REG_DEV_CAP); + } + mutex_unlock(&dev_priv->hw_mutex); + + return 0; +} + int vmw_get_cap_3d_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv) @@ -92,29 +158,58 @@ void __user *buffer = (void __user *)((unsigned long)(arg->buffer)); void *bounce; int ret; + bool gb_objects = !!(dev_priv->capabilities & SVGA_CAP_GBOBJECTS); + struct vmw_fpriv *vmw_fp = vmw_fpriv(file_priv); if (unlikely(arg->pad64 != 0)) { DRM_ERROR("Illegal GET_3D_CAP argument.\n"); return -EINVAL; } - size = (SVGA_FIFO_3D_CAPS_LAST - SVGA_FIFO_3D_CAPS + 1) << 2; + if (gb_objects && vmw_fp->gb_aware) + size = SVGA3D_DEVCAP_MAX * sizeof(uint32_t); + else if (gb_objects) + size = sizeof(struct svga_3d_compat_cap) + sizeof(uint32_t); + else + size = (SVGA_FIFO_3D_CAPS_LAST - SVGA_FIFO_3D_CAPS + 1) * + sizeof(uint32_t); if (arg->max_size < size) size = arg->max_size; - bounce = vmalloc(size); + bounce = vzalloc(size); if (unlikely(bounce == NULL)) { DRM_ERROR("Failed to allocate bounce buffer for 3D caps.\n"); return -ENOMEM; } - fifo_mem = dev_priv->mmio_virt; - memcpy_fromio(bounce, &fifo_mem[SVGA_FIFO_3D_CAPS], size); + if (gb_objects && vmw_fp->gb_aware) { + int i, num; + uint32_t *bounce32 = (uint32_t *) bounce; + + num = size / sizeof(uint32_t); + if (num > SVGA3D_DEVCAP_MAX) + num = SVGA3D_DEVCAP_MAX; + + mutex_lock(&dev_priv->hw_mutex); + for (i = 0; i < num; ++i) { + vmw_write(dev_priv, SVGA_REG_DEV_CAP, i); + *bounce32++ = vmw_read(dev_priv, SVGA_REG_DEV_CAP); + } + mutex_unlock(&dev_priv->hw_mutex); + } else if (gb_objects) { + ret = vmw_fill_compat_cap(dev_priv, bounce, size); + if (unlikely(ret != 0)) + goto out_err; + } else { + fifo_mem = dev_priv->mmio_virt; + memcpy_fromio(bounce, &fifo_mem[SVGA_FIFO_3D_CAPS], size); + } ret = copy_to_user(buffer, bounce, size); if (ret) ret = -EFAULT; +out_err: vfree(bounce); if (unlikely(ret != 0)) --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c @@ -40,7 +40,7 @@ * Clip @num_rects number of @rects against @clip storing the * results in @out_rects and the number of passed rects in @out_num. */ -void vmw_clip_cliprects(struct drm_clip_rect *rects, +static void vmw_clip_cliprects(struct drm_clip_rect *rects, int num_rects, struct vmw_clip_rect clip, SVGASignedRect *out_rects, @@ -423,7 +423,7 @@ struct drm_master *master; }; -void vmw_framebuffer_surface_destroy(struct drm_framebuffer *framebuffer) +static void vmw_framebuffer_surface_destroy(struct drm_framebuffer *framebuffer) { struct vmw_framebuffer_surface *vfbs = vmw_framebuffer_to_vfbs(framebuffer); @@ -589,7 +589,7 @@ return ret; } -int vmw_framebuffer_surface_dirty(struct drm_framebuffer *framebuffer, +static int vmw_framebuffer_surface_dirty(struct drm_framebuffer *framebuffer, struct drm_file *file_priv, unsigned flags, unsigned color, struct drm_clip_rect *clips, @@ -665,9 +665,9 @@ if (unlikely(surface->mip_levels[0] != 1 || surface->num_sizes != 1 || - surface->sizes[0].width < mode_cmd->width || - surface->sizes[0].height < mode_cmd->height || - surface->sizes[0].depth != 1)) { + surface->base_size.width < mode_cmd->width || + surface->base_size.height < mode_cmd->height || + surface->base_size.depth != 1)) { DRM_ERROR("Incompatible surface dimensions " "for requested mode.\n"); return -EINVAL; @@ -754,7 +754,7 @@ struct vmw_dma_buffer *buffer; }; -void vmw_framebuffer_dmabuf_destroy(struct drm_framebuffer *framebuffer) +static void vmw_framebuffer_dmabuf_destroy(struct drm_framebuffer *framebuffer) { struct vmw_framebuffer_dmabuf *vfbd = vmw_framebuffer_to_vfbd(framebuffer); @@ -940,7 +940,7 @@ return ret; } -int vmw_framebuffer_dmabuf_dirty(struct drm_framebuffer *framebuffer, +static int vmw_framebuffer_dmabuf_dirty(struct drm_framebuffer *framebuffer, struct drm_file *file_priv, unsigned flags, unsigned color, struct drm_clip_rect *clips, @@ -1631,7 +1631,7 @@ uint32_t pitch, uint32_t height) { - return ((u64) pitch * (u64) height) < (u64) dev_priv->vram_size; + return ((u64) pitch * (u64) height) < (u64) dev_priv->prim_bb_mem; } @@ -1663,7 +1663,7 @@ * Small shared kms functions. */ -int vmw_du_update_layout(struct vmw_private *dev_priv, unsigned num, +static int vmw_du_update_layout(struct vmw_private *dev_priv, unsigned num, struct drm_vmw_rect *rects) { struct drm_device *dev = dev_priv->dev; --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c @@ -0,0 +1,656 @@ +/************************************************************************** + * + * Copyright © 2012 VMware, Inc., Palo Alto, CA., USA + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + * + **************************************************************************/ + +#include "vmwgfx_drv.h" + +/* + * If we set up the screen target otable, screen objects stop working. + */ + +#define VMW_OTABLE_SETUP_SUB ((VMWGFX_ENABLE_SCREEN_TARGET_OTABLE) ? 0 : 1) + +#ifdef CONFIG_64BIT +#define VMW_PPN_SIZE 8 +#define VMW_MOBFMT_PTDEPTH_0 SVGA3D_MOBFMT_PTDEPTH64_0 +#define VMW_MOBFMT_PTDEPTH_1 SVGA3D_MOBFMT_PTDEPTH64_1 +#define VMW_MOBFMT_PTDEPTH_2 SVGA3D_MOBFMT_PTDEPTH64_2 +#else +#define VMW_PPN_SIZE 4 +#define VMW_MOBFMT_PTDEPTH_0 SVGA3D_MOBFMT_PTDEPTH_0 +#define VMW_MOBFMT_PTDEPTH_1 SVGA3D_MOBFMT_PTDEPTH_1 +#define VMW_MOBFMT_PTDEPTH_2 SVGA3D_MOBFMT_PTDEPTH_2 +#endif + +/* + * struct vmw_mob - Structure containing page table and metadata for a + * Guest Memory OBject. + * + * @num_pages Number of pages that make up the page table. + * @pt_level The indirection level of the page table. 0-2. + * @pt_root_page DMA address of the level 0 page of the page table. + */ +struct vmw_mob { + struct ttm_buffer_object *pt_bo; + unsigned long num_pages; + unsigned pt_level; + dma_addr_t pt_root_page; + uint32_t id; +}; + +/* + * struct vmw_otable - Guest Memory OBject table metadata + * + * @size: Size of the table (page-aligned). + * @page_table: Pointer to a struct vmw_mob holding the page table. + */ +struct vmw_otable { + unsigned long size; + struct vmw_mob *page_table; +}; + +static int vmw_mob_pt_populate(struct vmw_private *dev_priv, + struct vmw_mob *mob); +static void vmw_mob_pt_setup(struct vmw_mob *mob, + struct vmw_piter data_iter, + unsigned long num_data_pages); + +/* + * vmw_setup_otable_base - Issue an object table base setup command to + * the device + * + * @dev_priv: Pointer to a device private structure + * @type: Type of object table base + * @offset Start of table offset into dev_priv::otable_bo + * @otable Pointer to otable metadata; + * + * This function returns -ENOMEM if it fails to reserve fifo space, + * and may block waiting for fifo space. + */ +static int vmw_setup_otable_base(struct vmw_private *dev_priv, + SVGAOTableType type, + unsigned long offset, + struct vmw_otable *otable) +{ + struct { + SVGA3dCmdHeader header; + SVGA3dCmdSetOTableBase64 body; + } *cmd; + struct vmw_mob *mob; + const struct vmw_sg_table *vsgt; + struct vmw_piter iter; + int ret; + + BUG_ON(otable->page_table != NULL); + + vsgt = vmw_bo_sg_table(dev_priv->otable_bo); + vmw_piter_start(&iter, vsgt, offset >> PAGE_SHIFT); + WARN_ON(!vmw_piter_next(&iter)); + + mob = vmw_mob_create(otable->size >> PAGE_SHIFT); + if (unlikely(mob == NULL)) { + DRM_ERROR("Failed creating OTable page table.\n"); + return -ENOMEM; + } + + if (otable->size <= PAGE_SIZE) { + mob->pt_level = VMW_MOBFMT_PTDEPTH_0; + mob->pt_root_page = vmw_piter_dma_addr(&iter); + } else if (vsgt->num_regions == 1) { + mob->pt_level = SVGA3D_MOBFMT_RANGE; + mob->pt_root_page = vmw_piter_dma_addr(&iter); + } else { + ret = vmw_mob_pt_populate(dev_priv, mob); + if (unlikely(ret != 0)) + goto out_no_populate; + + vmw_mob_pt_setup(mob, iter, otable->size >> PAGE_SHIFT); + mob->pt_level += VMW_MOBFMT_PTDEPTH_1 - SVGA3D_MOBFMT_PTDEPTH_1; + } + + cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); + if (unlikely(cmd == NULL)) { + DRM_ERROR("Failed reserving FIFO space for OTable setup.\n"); + ret = -ENOMEM; + goto out_no_fifo; + } + + memset(cmd, 0, sizeof(*cmd)); + cmd->header.id = SVGA_3D_CMD_SET_OTABLE_BASE64; + cmd->header.size = sizeof(cmd->body); + cmd->body.type = type; + cmd->body.baseAddress = cpu_to_le64(mob->pt_root_page >> PAGE_SHIFT); + cmd->body.sizeInBytes = otable->size; + cmd->body.validSizeInBytes = 0; + cmd->body.ptDepth = mob->pt_level; + + /* + * The device doesn't support this, But the otable size is + * determined at compile-time, so this BUG shouldn't trigger + * randomly. + */ + BUG_ON(mob->pt_level == VMW_MOBFMT_PTDEPTH_2); + + vmw_fifo_commit(dev_priv, sizeof(*cmd)); + otable->page_table = mob; + + return 0; + +out_no_fifo: +out_no_populate: + vmw_mob_destroy(mob); + return ret; +} + +/* + * vmw_takedown_otable_base - Issue an object table base takedown command + * to the device + * + * @dev_priv: Pointer to a device private structure + * @type: Type of object table base + * + */ +static void vmw_takedown_otable_base(struct vmw_private *dev_priv, + SVGAOTableType type, + struct vmw_otable *otable) +{ + struct { + SVGA3dCmdHeader header; + SVGA3dCmdSetOTableBase body; + } *cmd; + struct ttm_buffer_object *bo; + + if (otable->page_table == NULL) + return; + + bo = otable->page_table->pt_bo; + cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); + if (unlikely(cmd == NULL)) { + DRM_ERROR("Failed reserving FIFO space for OTable " + "takedown.\n"); + } else { + memset(cmd, 0, sizeof(*cmd)); + cmd->header.id = SVGA_3D_CMD_SET_OTABLE_BASE; + cmd->header.size = sizeof(cmd->body); + cmd->body.type = type; + cmd->body.baseAddress = 0; + cmd->body.sizeInBytes = 0; + cmd->body.validSizeInBytes = 0; + cmd->body.ptDepth = SVGA3D_MOBFMT_INVALID; + vmw_fifo_commit(dev_priv, sizeof(*cmd)); + } + + if (bo) { + int ret; + + ret = ttm_bo_reserve(bo, false, true, false, NULL); + BUG_ON(ret != 0); + + vmw_fence_single_bo(bo, NULL); + ttm_bo_unreserve(bo); + } + + vmw_mob_destroy(otable->page_table); + otable->page_table = NULL; +} + +/* + * vmw_otables_setup - Set up guest backed memory object tables + * + * @dev_priv: Pointer to a device private structure + * + * Takes care of the device guest backed surface + * initialization, by setting up the guest backed memory object tables. + * Returns 0 on success and various error codes on failure. A succesful return + * means the object tables can be taken down using the vmw_otables_takedown + * function. + */ +int vmw_otables_setup(struct vmw_private *dev_priv) +{ + unsigned long offset; + unsigned long bo_size; + struct vmw_otable *otables; + SVGAOTableType i; + int ret; + + otables = kzalloc(SVGA_OTABLE_DX9_MAX * sizeof(*otables), + GFP_KERNEL); + if (unlikely(otables == NULL)) { + DRM_ERROR("Failed to allocate space for otable " + "metadata.\n"); + return -ENOMEM; + } + + otables[SVGA_OTABLE_MOB].size = + VMWGFX_NUM_MOB * SVGA3D_OTABLE_MOB_ENTRY_SIZE; + otables[SVGA_OTABLE_SURFACE].size = + VMWGFX_NUM_GB_SURFACE * SVGA3D_OTABLE_SURFACE_ENTRY_SIZE; + otables[SVGA_OTABLE_CONTEXT].size = + VMWGFX_NUM_GB_CONTEXT * SVGA3D_OTABLE_CONTEXT_ENTRY_SIZE; + otables[SVGA_OTABLE_SHADER].size = + VMWGFX_NUM_GB_SHADER * SVGA3D_OTABLE_SHADER_ENTRY_SIZE; + otables[SVGA_OTABLE_SCREEN_TARGET].size = + VMWGFX_NUM_GB_SCREEN_TARGET * + SVGA3D_OTABLE_SCREEN_TARGET_ENTRY_SIZE; + + bo_size = 0; + for (i = 0; i < SVGA_OTABLE_DX9_MAX; ++i) { + otables[i].size = + (otables[i].size + PAGE_SIZE - 1) & PAGE_MASK; + bo_size += otables[i].size; + } + + ret = ttm_bo_create(&dev_priv->bdev, bo_size, + ttm_bo_type_device, + &vmw_sys_ne_placement, + 0, false, NULL, + &dev_priv->otable_bo); + + if (unlikely(ret != 0)) + goto out_no_bo; + + ret = ttm_bo_reserve(dev_priv->otable_bo, false, true, false, NULL); + BUG_ON(ret != 0); + ret = vmw_bo_driver.ttm_tt_populate(dev_priv->otable_bo->ttm); + if (unlikely(ret != 0)) + goto out_unreserve; + ret = vmw_bo_map_dma(dev_priv->otable_bo); + if (unlikely(ret != 0)) + goto out_unreserve; + + ttm_bo_unreserve(dev_priv->otable_bo); + + offset = 0; + for (i = 0; i < SVGA_OTABLE_DX9_MAX - VMW_OTABLE_SETUP_SUB; ++i) { + ret = vmw_setup_otable_base(dev_priv, i, offset, + &otables[i]); + if (unlikely(ret != 0)) + goto out_no_setup; + offset += otables[i].size; + } + + dev_priv->otables = otables; + return 0; + +out_unreserve: + ttm_bo_unreserve(dev_priv->otable_bo); +out_no_setup: + for (i = 0; i < SVGA_OTABLE_DX9_MAX - VMW_OTABLE_SETUP_SUB; ++i) + vmw_takedown_otable_base(dev_priv, i, &otables[i]); + + ttm_bo_unref(&dev_priv->otable_bo); +out_no_bo: + kfree(otables); + return ret; +} + + +/* + * vmw_otables_takedown - Take down guest backed memory object tables + * + * @dev_priv: Pointer to a device private structure + * + * Take down the Guest Memory Object tables. + */ +void vmw_otables_takedown(struct vmw_private *dev_priv) +{ + SVGAOTableType i; + struct ttm_buffer_object *bo = dev_priv->otable_bo; + int ret; + + for (i = 0; i < SVGA_OTABLE_DX9_MAX - VMW_OTABLE_SETUP_SUB; ++i) + vmw_takedown_otable_base(dev_priv, i, + &dev_priv->otables[i]); + + ret = ttm_bo_reserve(bo, false, true, false, NULL); + BUG_ON(ret != 0); + + vmw_fence_single_bo(bo, NULL); + ttm_bo_unreserve(bo); + + ttm_bo_unref(&dev_priv->otable_bo); + kfree(dev_priv->otables); + dev_priv->otables = NULL; +} + + +/* + * vmw_mob_calculate_pt_pages - Calculate the number of page table pages + * needed for a guest backed memory object. + * + * @data_pages: Number of data pages in the memory object buffer. + */ +static unsigned long vmw_mob_calculate_pt_pages(unsigned long data_pages) +{ + unsigned long data_size = data_pages * PAGE_SIZE; + unsigned long tot_size = 0; + + while (likely(data_size > PAGE_SIZE)) { + data_size = DIV_ROUND_UP(data_size, PAGE_SIZE); + data_size *= VMW_PPN_SIZE; + tot_size += (data_size + PAGE_SIZE - 1) & PAGE_MASK; + } + + return tot_size >> PAGE_SHIFT; +} + +/* + * vmw_mob_create - Create a mob, but don't populate it. + * + * @data_pages: Number of data pages of the underlying buffer object. + */ +struct vmw_mob *vmw_mob_create(unsigned long data_pages) +{ + struct vmw_mob *mob = kzalloc(sizeof(*mob), GFP_KERNEL); + + if (unlikely(mob == NULL)) + return NULL; + + mob->num_pages = vmw_mob_calculate_pt_pages(data_pages); + + return mob; +} + +/* + * vmw_mob_pt_populate - Populate the mob pagetable + * + * @mob: Pointer to the mob the pagetable of which we want to + * populate. + * + * This function allocates memory to be used for the pagetable, and + * adjusts TTM memory accounting accordingly. Returns ENOMEM if + * memory resources aren't sufficient and may cause TTM buffer objects + * to be swapped out by using the TTM memory accounting function. + */ +static int vmw_mob_pt_populate(struct vmw_private *dev_priv, + struct vmw_mob *mob) +{ + int ret; + BUG_ON(mob->pt_bo != NULL); + + ret = ttm_bo_create(&dev_priv->bdev, mob->num_pages * PAGE_SIZE, + ttm_bo_type_device, + &vmw_sys_ne_placement, + 0, false, NULL, &mob->pt_bo); + if (unlikely(ret != 0)) + return ret; + + ret = ttm_bo_reserve(mob->pt_bo, false, true, false, NULL); + + BUG_ON(ret != 0); + ret = vmw_bo_driver.ttm_tt_populate(mob->pt_bo->ttm); + if (unlikely(ret != 0)) + goto out_unreserve; + ret = vmw_bo_map_dma(mob->pt_bo); + if (unlikely(ret != 0)) + goto out_unreserve; + + ttm_bo_unreserve(mob->pt_bo); + + return 0; + +out_unreserve: + ttm_bo_unreserve(mob->pt_bo); + ttm_bo_unref(&mob->pt_bo); + + return ret; +} + +/** + * vmw_mob_assign_ppn - Assign a value to a page table entry + * + * @addr: Pointer to pointer to page table entry. + * @val: The page table entry + * + * Assigns a value to a page table entry pointed to by *@addr and increments + * *@addr according to the page table entry size. + */ +#if (VMW_PPN_SIZE == 8) +static void vmw_mob_assign_ppn(__le32 **addr, dma_addr_t val) +{ + *((__le64 *) *addr) = cpu_to_le64(val >> PAGE_SHIFT); + *addr += 2; +} +#else +static void vmw_mob_assign_ppn(__le32 **addr, dma_addr_t val) +{ + *(*addr)++ = cpu_to_le32(val >> PAGE_SHIFT); +} +#endif + +/* + * vmw_mob_build_pt - Build a pagetable + * + * @data_addr: Array of DMA addresses to the underlying buffer + * object's data pages. + * @num_data_pages: Number of buffer object data pages. + * @pt_pages: Array of page pointers to the page table pages. + * + * Returns the number of page table pages actually used. + * Uses atomic kmaps of highmem pages to avoid TLB thrashing. + */ +static unsigned long vmw_mob_build_pt(struct vmw_piter *data_iter, + unsigned long num_data_pages, + struct vmw_piter *pt_iter) +{ + unsigned long pt_size = num_data_pages * VMW_PPN_SIZE; + unsigned long num_pt_pages = DIV_ROUND_UP(pt_size, PAGE_SIZE); + unsigned long pt_page; + __le32 *addr, *save_addr; + unsigned long i; + struct page *page; + + for (pt_page = 0; pt_page < num_pt_pages; ++pt_page) { + page = vmw_piter_page(pt_iter); + + save_addr = addr = kmap_atomic(page); + + for (i = 0; i < PAGE_SIZE / VMW_PPN_SIZE; ++i) { + vmw_mob_assign_ppn(&addr, + vmw_piter_dma_addr(data_iter)); + if (unlikely(--num_data_pages == 0)) + break; + WARN_ON(!vmw_piter_next(data_iter)); + } + kunmap_atomic(save_addr); + vmw_piter_next(pt_iter); + } + + return num_pt_pages; +} + +/* + * vmw_mob_build_pt - Set up a multilevel mob pagetable + * + * @mob: Pointer to a mob whose page table needs setting up. + * @data_addr Array of DMA addresses to the buffer object's data + * pages. + * @num_data_pages: Number of buffer object data pages. + * + * Uses tail recursion to set up a multilevel mob page table. + */ +static void vmw_mob_pt_setup(struct vmw_mob *mob, + struct vmw_piter data_iter, + unsigned long num_data_pages) +{ + unsigned long num_pt_pages = 0; + struct ttm_buffer_object *bo = mob->pt_bo; + struct vmw_piter save_pt_iter; + struct vmw_piter pt_iter; + const struct vmw_sg_table *vsgt; + int ret; + + ret = ttm_bo_reserve(bo, false, true, false, NULL); + BUG_ON(ret != 0); + + vsgt = vmw_bo_sg_table(bo); + vmw_piter_start(&pt_iter, vsgt, 0); + BUG_ON(!vmw_piter_next(&pt_iter)); + mob->pt_level = 0; + while (likely(num_data_pages > 1)) { + ++mob->pt_level; + BUG_ON(mob->pt_level > 2); + save_pt_iter = pt_iter; + num_pt_pages = vmw_mob_build_pt(&data_iter, num_data_pages, + &pt_iter); + data_iter = save_pt_iter; + num_data_pages = num_pt_pages; + } + + mob->pt_root_page = vmw_piter_dma_addr(&save_pt_iter); + ttm_bo_unreserve(bo); +} + +/* + * vmw_mob_destroy - Destroy a mob, unpopulating first if necessary. + * + * @mob: Pointer to a mob to destroy. + */ +void vmw_mob_destroy(struct vmw_mob *mob) +{ + if (mob->pt_bo) + ttm_bo_unref(&mob->pt_bo); + kfree(mob); +} + +/* + * vmw_mob_unbind - Hide a mob from the device. + * + * @dev_priv: Pointer to a device private. + * @mob_id: Device id of the mob to unbind. + */ +void vmw_mob_unbind(struct vmw_private *dev_priv, + struct vmw_mob *mob) +{ + struct { + SVGA3dCmdHeader header; + SVGA3dCmdDestroyGBMob body; + } *cmd; + int ret; + struct ttm_buffer_object *bo = mob->pt_bo; + + if (bo) { + ret = ttm_bo_reserve(bo, false, true, false, NULL); + /* + * Noone else should be using this buffer. + */ + BUG_ON(ret != 0); + } + + cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); + if (unlikely(cmd == NULL)) { + DRM_ERROR("Failed reserving FIFO space for Memory " + "Object unbinding.\n"); + } else { + cmd->header.id = SVGA_3D_CMD_DESTROY_GB_MOB; + cmd->header.size = sizeof(cmd->body); + cmd->body.mobid = mob->id; + vmw_fifo_commit(dev_priv, sizeof(*cmd)); + } + if (bo) { + vmw_fence_single_bo(bo, NULL); + ttm_bo_unreserve(bo); + } + vmw_3d_resource_dec(dev_priv, false); +} + +/* + * vmw_mob_bind - Make a mob visible to the device after first + * populating it if necessary. + * + * @dev_priv: Pointer to a device private. + * @mob: Pointer to the mob we're making visible. + * @data_addr: Array of DMA addresses to the data pages of the underlying + * buffer object. + * @num_data_pages: Number of data pages of the underlying buffer + * object. + * @mob_id: Device id of the mob to bind + * + * This function is intended to be interfaced with the ttm_tt backend + * code. + */ +int vmw_mob_bind(struct vmw_private *dev_priv, + struct vmw_mob *mob, + const struct vmw_sg_table *vsgt, + unsigned long num_data_pages, + int32_t mob_id) +{ + int ret; + bool pt_set_up = false; + struct vmw_piter data_iter; + struct { + SVGA3dCmdHeader header; + SVGA3dCmdDefineGBMob64 body; + } *cmd; + + mob->id = mob_id; + vmw_piter_start(&data_iter, vsgt, 0); + if (unlikely(!vmw_piter_next(&data_iter))) + return 0; + + if (likely(num_data_pages == 1)) { + mob->pt_level = VMW_MOBFMT_PTDEPTH_0; + mob->pt_root_page = vmw_piter_dma_addr(&data_iter); + } else if (vsgt->num_regions == 1) { + mob->pt_level = SVGA3D_MOBFMT_RANGE; + mob->pt_root_page = vmw_piter_dma_addr(&data_iter); + } else if (unlikely(mob->pt_bo == NULL)) { + ret = vmw_mob_pt_populate(dev_priv, mob); + if (unlikely(ret != 0)) + return ret; + + vmw_mob_pt_setup(mob, data_iter, num_data_pages); + pt_set_up = true; + mob->pt_level += VMW_MOBFMT_PTDEPTH_1 - SVGA3D_MOBFMT_PTDEPTH_1; + } + + (void) vmw_3d_resource_inc(dev_priv, false); + + cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); + if (unlikely(cmd == NULL)) { + DRM_ERROR("Failed reserving FIFO space for Memory " + "Object binding.\n"); + goto out_no_cmd_space; + } + + cmd->header.id = SVGA_3D_CMD_DEFINE_GB_MOB64; + cmd->header.size = sizeof(cmd->body); + cmd->body.mobid = mob_id; + cmd->body.ptDepth = mob->pt_level; + cmd->body.base = cpu_to_le64(mob->pt_root_page >> PAGE_SHIFT); + cmd->body.sizeInBytes = num_data_pages * PAGE_SIZE; + + vmw_fifo_commit(dev_priv, sizeof(*cmd)); + + return 0; + +out_no_cmd_space: + vmw_3d_resource_dec(dev_priv, false); + if (pt_set_up) + ttm_bo_unref(&mob->pt_bo); + + return -ENOMEM; +} --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c @@ -88,6 +88,11 @@ return res; } +struct vmw_resource * +vmw_resource_reference_unless_doomed(struct vmw_resource *res) +{ + return kref_get_unless_zero(&res->kref) ? res : NULL; +} /** * vmw_resource_release_id - release a resource id to the id manager. @@ -136,8 +141,12 @@ vmw_dmabuf_unreference(&res->backup); } - if (likely(res->hw_destroy != NULL)) + if (likely(res->hw_destroy != NULL)) { res->hw_destroy(res); + mutex_lock(&dev_priv->binding_mutex); + vmw_context_binding_res_list_kill(&res->binding_head); + mutex_unlock(&dev_priv->binding_mutex); + } id = res->id; if (res->res_free != NULL) @@ -215,6 +224,7 @@ res->func = func; INIT_LIST_HEAD(&res->lru_head); INIT_LIST_HEAD(&res->mob_head); + INIT_LIST_HEAD(&res->binding_head); res->id = -1; res->backup = NULL; res->backup_offset = 0; @@ -417,8 +427,7 @@ INIT_LIST_HEAD(&vmw_bo->res_list); ret = ttm_bo_init(bdev, &vmw_bo->base, size, - (user) ? ttm_bo_type_device : - ttm_bo_type_kernel, placement, + ttm_bo_type_device, placement, 0, interruptible, NULL, acc_size, NULL, bo_free); return ret; @@ -441,6 +450,21 @@ ttm_bo_unref(&bo); } +static void vmw_user_dmabuf_ref_obj_release(struct ttm_base_object *base, + enum ttm_ref_type ref_type) +{ + struct vmw_user_dma_buffer *user_bo; + user_bo = container_of(base, struct vmw_user_dma_buffer, prime.base); + + switch (ref_type) { + case TTM_REF_SYNCCPU_WRITE: + ttm_bo_synccpu_write_release(&user_bo->dma.base); + break; + default: + BUG(); + } +} + /** * vmw_user_dmabuf_alloc - Allocate a user dma buffer * @@ -471,6 +495,8 @@ } ret = vmw_dmabuf_init(dev_priv, &user_bo->dma, size, + (dev_priv->has_mob) ? + &vmw_sys_placement : &vmw_vram_sys_placement, true, &vmw_user_dmabuf_destroy); if (unlikely(ret != 0)) @@ -482,7 +508,8 @@ &user_bo->prime, shareable, ttm_buffer_type, - &vmw_user_dmabuf_release, NULL); + &vmw_user_dmabuf_release, + &vmw_user_dmabuf_ref_obj_release); if (unlikely(ret != 0)) { ttm_bo_unref(&tmp); goto out_no_base_object; @@ -515,6 +542,130 @@ vmw_user_bo->prime.base.shareable) ? 0 : -EPERM; } +/** + * vmw_user_dmabuf_synccpu_grab - Grab a struct vmw_user_dma_buffer for cpu + * access, idling previous GPU operations on the buffer and optionally + * blocking it for further command submissions. + * + * @user_bo: Pointer to the buffer object being grabbed for CPU access + * @tfile: Identifying the caller. + * @flags: Flags indicating how the grab should be performed. + * + * A blocking grab will be automatically released when @tfile is closed. + */ +static int vmw_user_dmabuf_synccpu_grab(struct vmw_user_dma_buffer *user_bo, + struct ttm_object_file *tfile, + uint32_t flags) +{ + struct ttm_buffer_object *bo = &user_bo->dma.base; + bool existed; + int ret; + + if (flags & drm_vmw_synccpu_allow_cs) { + struct ttm_bo_device *bdev = bo->bdev; + + spin_lock(&bdev->fence_lock); + ret = ttm_bo_wait(bo, false, true, + !!(flags & drm_vmw_synccpu_dontblock)); + spin_unlock(&bdev->fence_lock); + return ret; + } + + ret = ttm_bo_synccpu_write_grab + (bo, !!(flags & drm_vmw_synccpu_dontblock)); + if (unlikely(ret != 0)) + return ret; + + ret = ttm_ref_object_add(tfile, &user_bo->prime.base, + TTM_REF_SYNCCPU_WRITE, &existed); + if (ret != 0 || existed) + ttm_bo_synccpu_write_release(&user_bo->dma.base); + + return ret; +} + +/** + * vmw_user_dmabuf_synccpu_release - Release a previous grab for CPU access, + * and unblock command submission on the buffer if blocked. + * + * @handle: Handle identifying the buffer object. + * @tfile: Identifying the caller. + * @flags: Flags indicating the type of release. + */ +static int vmw_user_dmabuf_synccpu_release(uint32_t handle, + struct ttm_object_file *tfile, + uint32_t flags) +{ + if (!(flags & drm_vmw_synccpu_allow_cs)) + return ttm_ref_object_base_unref(tfile, handle, + TTM_REF_SYNCCPU_WRITE); + + return 0; +} + +/** + * vmw_user_dmabuf_synccpu_release - ioctl function implementing the synccpu + * functionality. + * + * @dev: Identifies the drm device. + * @data: Pointer to the ioctl argument. + * @file_priv: Identifies the caller. + * + * This function checks the ioctl arguments for validity and calls the + * relevant synccpu functions. + */ +int vmw_user_dmabuf_synccpu_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv) +{ + struct drm_vmw_synccpu_arg *arg = + (struct drm_vmw_synccpu_arg *) data; + struct vmw_dma_buffer *dma_buf; + struct vmw_user_dma_buffer *user_bo; + struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + int ret; + + if ((arg->flags & (drm_vmw_synccpu_read | drm_vmw_synccpu_write)) == 0 + || (arg->flags & ~(drm_vmw_synccpu_read | drm_vmw_synccpu_write | + drm_vmw_synccpu_dontblock | + drm_vmw_synccpu_allow_cs)) != 0) { + DRM_ERROR("Illegal synccpu flags.\n"); + return -EINVAL; + } + + switch (arg->op) { + case drm_vmw_synccpu_grab: + ret = vmw_user_dmabuf_lookup(tfile, arg->handle, &dma_buf); + if (unlikely(ret != 0)) + return ret; + + user_bo = container_of(dma_buf, struct vmw_user_dma_buffer, + dma); + ret = vmw_user_dmabuf_synccpu_grab(user_bo, tfile, arg->flags); + vmw_dmabuf_unreference(&dma_buf); + if (unlikely(ret != 0 && ret != -ERESTARTSYS && + ret != -EBUSY)) { + DRM_ERROR("Failed synccpu grab on handle 0x%08x.\n", + (unsigned int) arg->handle); + return ret; + } + break; + case drm_vmw_synccpu_release: + ret = vmw_user_dmabuf_synccpu_release(arg->handle, tfile, + arg->flags); + if (unlikely(ret != 0)) { + DRM_ERROR("Failed synccpu release on handle 0x%08x.\n", + (unsigned int) arg->handle); + return ret; + } + break; + default: + DRM_ERROR("Invalid synccpu operation.\n"); + return -EINVAL; + } + + return 0; +} + int vmw_dmabuf_alloc_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv) { @@ -591,7 +742,8 @@ } int vmw_user_dmabuf_reference(struct ttm_object_file *tfile, - struct vmw_dma_buffer *dma_buf) + struct vmw_dma_buffer *dma_buf, + uint32_t *handle) { struct vmw_user_dma_buffer *user_bo; @@ -599,6 +751,8 @@ return -EINVAL; user_bo = container_of(dma_buf, struct vmw_user_dma_buffer, dma); + + *handle = user_bo->prime.base.hash.key; return ttm_ref_object_add(tfile, &user_bo->prime.base, TTM_REF_USAGE, NULL); } @@ -1291,11 +1445,54 @@ * @mem: The truct ttm_mem_reg indicating to what memory * region the move is taking place. * - * For now does nothing. + * Evicts the Guest Backed hardware resource if the backup + * buffer is being moved out of MOB memory. + * Note that this function should not race with the resource + * validation code as long as it accesses only members of struct + * resource that remain static while bo::res is !NULL and + * while we have @bo reserved. struct resource::backup is *not* a + * static member. The resource validation code will take care + * to set @bo::res to NULL, while having @bo reserved when the + * buffer is no longer bound to the resource, so @bo:res can be + * used to determine whether there is a need to unbind and whether + * it is safe to unbind. */ void vmw_resource_move_notify(struct ttm_buffer_object *bo, struct ttm_mem_reg *mem) { + struct vmw_dma_buffer *dma_buf; + + if (mem == NULL) + return; + + if (bo->destroy != vmw_dmabuf_bo_free && + bo->destroy != vmw_user_dmabuf_destroy) + return; + + dma_buf = container_of(bo, struct vmw_dma_buffer, base); + + if (mem->mem_type != VMW_PL_MOB) { + struct vmw_resource *res, *n; + struct ttm_bo_device *bdev = bo->bdev; + struct ttm_validate_buffer val_buf; + + val_buf.bo = bo; + + list_for_each_entry_safe(res, n, &dma_buf->res_list, mob_head) { + + if (unlikely(res->func->unbind == NULL)) + continue; + + (void) res->func->unbind(res, true, &val_buf); + res->backup_dirty = true; + res->res_dirty = false; + list_del_init(&res->mob_head); + } + + spin_lock(&bdev->fence_lock); + (void) ttm_bo_wait(bo, false, false, false); + spin_unlock(&bdev->fence_lock); + } } /** --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c @@ -0,0 +1,812 @@ +/************************************************************************** + * + * Copyright © 2009-2012 VMware, Inc., Palo Alto, CA., USA + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sub license, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial portions + * of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + * + **************************************************************************/ + +#include "vmwgfx_drv.h" +#include "vmwgfx_resource_priv.h" +#include "ttm/ttm_placement.h" + +#define VMW_COMPAT_SHADER_HT_ORDER 12 + +struct vmw_shader { + struct vmw_resource res; + SVGA3dShaderType type; + uint32_t size; +}; + +struct vmw_user_shader { + struct ttm_base_object base; + struct vmw_shader shader; +}; + +/** + * enum vmw_compat_shader_state - Staging state for compat shaders + */ +enum vmw_compat_shader_state { + VMW_COMPAT_COMMITED, + VMW_COMPAT_ADD, + VMW_COMPAT_DEL +}; + +/** + * struct vmw_compat_shader - Metadata for compat shaders. + * + * @handle: The TTM handle of the guest backed shader. + * @tfile: The struct ttm_object_file the guest backed shader is registered + * with. + * @hash: Hash item for lookup. + * @head: List head for staging lists or the compat shader manager list. + * @state: Staging state. + * + * The structure is protected by the cmdbuf lock. + */ +struct vmw_compat_shader { + u32 handle; + struct ttm_object_file *tfile; + struct drm_hash_item hash; + struct list_head head; + enum vmw_compat_shader_state state; +}; + +/** + * struct vmw_compat_shader_manager - Compat shader manager. + * + * @shaders: Hash table containing staged and commited compat shaders + * @list: List of commited shaders. + * @dev_priv: Pointer to a device private structure. + * + * @shaders and @list are protected by the cmdbuf mutex for now. + */ +struct vmw_compat_shader_manager { + struct drm_open_hash shaders; + struct list_head list; + struct vmw_private *dev_priv; +}; + +static void vmw_user_shader_free(struct vmw_resource *res); +static struct vmw_resource * +vmw_user_shader_base_to_res(struct ttm_base_object *base); + +static int vmw_gb_shader_create(struct vmw_resource *res); +static int vmw_gb_shader_bind(struct vmw_resource *res, + struct ttm_validate_buffer *val_buf); +static int vmw_gb_shader_unbind(struct vmw_resource *res, + bool readback, + struct ttm_validate_buffer *val_buf); +static int vmw_gb_shader_destroy(struct vmw_resource *res); + +static uint64_t vmw_user_shader_size; + +static const struct vmw_user_resource_conv user_shader_conv = { + .object_type = VMW_RES_SHADER, + .base_obj_to_res = vmw_user_shader_base_to_res, + .res_free = vmw_user_shader_free +}; + +const struct vmw_user_resource_conv *user_shader_converter = + &user_shader_conv; + + +static const struct vmw_res_func vmw_gb_shader_func = { + .res_type = vmw_res_shader, + .needs_backup = true, + .may_evict = true, + .type_name = "guest backed shaders", + .backup_placement = &vmw_mob_placement, + .create = vmw_gb_shader_create, + .destroy = vmw_gb_shader_destroy, + .bind = vmw_gb_shader_bind, + .unbind = vmw_gb_shader_unbind +}; + +/** + * Shader management: + */ + +static inline struct vmw_shader * +vmw_res_to_shader(struct vmw_resource *res) +{ + return container_of(res, struct vmw_shader, res); +} + +static void vmw_hw_shader_destroy(struct vmw_resource *res) +{ + (void) vmw_gb_shader_destroy(res); +} + +static int vmw_gb_shader_init(struct vmw_private *dev_priv, + struct vmw_resource *res, + uint32_t size, + uint64_t offset, + SVGA3dShaderType type, + struct vmw_dma_buffer *byte_code, + void (*res_free) (struct vmw_resource *res)) +{ + struct vmw_shader *shader = vmw_res_to_shader(res); + int ret; + + ret = vmw_resource_init(dev_priv, res, true, + res_free, &vmw_gb_shader_func); + + + if (unlikely(ret != 0)) { + if (res_free) + res_free(res); + else + kfree(res); + return ret; + } + + res->backup_size = size; + if (byte_code) { + res->backup = vmw_dmabuf_reference(byte_code); + res->backup_offset = offset; + } + shader->size = size; + shader->type = type; + + vmw_resource_activate(res, vmw_hw_shader_destroy); + return 0; +} + +static int vmw_gb_shader_create(struct vmw_resource *res) +{ + struct vmw_private *dev_priv = res->dev_priv; + struct vmw_shader *shader = vmw_res_to_shader(res); + int ret; + struct { + SVGA3dCmdHeader header; + SVGA3dCmdDefineGBShader body; + } *cmd; + + if (likely(res->id != -1)) + return 0; + + ret = vmw_resource_alloc_id(res); + if (unlikely(ret != 0)) { + DRM_ERROR("Failed to allocate a shader id.\n"); + goto out_no_id; + } + + if (unlikely(res->id >= VMWGFX_NUM_GB_SHADER)) { + ret = -EBUSY; + goto out_no_fifo; + } + + cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); + if (unlikely(cmd == NULL)) { + DRM_ERROR("Failed reserving FIFO space for shader " + "creation.\n"); + ret = -ENOMEM; + goto out_no_fifo; + } + + cmd->header.id = SVGA_3D_CMD_DEFINE_GB_SHADER; + cmd->header.size = sizeof(cmd->body); + cmd->body.shid = res->id; + cmd->body.type = shader->type; + cmd->body.sizeInBytes = shader->size; + vmw_fifo_commit(dev_priv, sizeof(*cmd)); + (void) vmw_3d_resource_inc(dev_priv, false); + + return 0; + +out_no_fifo: + vmw_resource_release_id(res); +out_no_id: + return ret; +} + +static int vmw_gb_shader_bind(struct vmw_resource *res, + struct ttm_validate_buffer *val_buf) +{ + struct vmw_private *dev_priv = res->dev_priv; + struct { + SVGA3dCmdHeader header; + SVGA3dCmdBindGBShader body; + } *cmd; + struct ttm_buffer_object *bo = val_buf->bo; + + BUG_ON(bo->mem.mem_type != VMW_PL_MOB); + + cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); + if (unlikely(cmd == NULL)) { + DRM_ERROR("Failed reserving FIFO space for shader " + "binding.\n"); + return -ENOMEM; + } + + cmd->header.id = SVGA_3D_CMD_BIND_GB_SHADER; + cmd->header.size = sizeof(cmd->body); + cmd->body.shid = res->id; + cmd->body.mobid = bo->mem.start; + cmd->body.offsetInBytes = 0; + res->backup_dirty = false; + vmw_fifo_commit(dev_priv, sizeof(*cmd)); + + return 0; +} + +static int vmw_gb_shader_unbind(struct vmw_resource *res, + bool readback, + struct ttm_validate_buffer *val_buf) +{ + struct vmw_private *dev_priv = res->dev_priv; + struct { + SVGA3dCmdHeader header; + SVGA3dCmdBindGBShader body; + } *cmd; + struct vmw_fence_obj *fence; + + BUG_ON(res->backup->base.mem.mem_type != VMW_PL_MOB); + + cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); + if (unlikely(cmd == NULL)) { + DRM_ERROR("Failed reserving FIFO space for shader " + "unbinding.\n"); + return -ENOMEM; + } + + cmd->header.id = SVGA_3D_CMD_BIND_GB_SHADER; + cmd->header.size = sizeof(cmd->body); + cmd->body.shid = res->id; + cmd->body.mobid = SVGA3D_INVALID_ID; + cmd->body.offsetInBytes = 0; + vmw_fifo_commit(dev_priv, sizeof(*cmd)); + + /* + * Create a fence object and fence the backup buffer. + */ + + (void) vmw_execbuf_fence_commands(NULL, dev_priv, + &fence, NULL); + + vmw_fence_single_bo(val_buf->bo, fence); + + if (likely(fence != NULL)) + vmw_fence_obj_unreference(&fence); + + return 0; +} + +static int vmw_gb_shader_destroy(struct vmw_resource *res) +{ + struct vmw_private *dev_priv = res->dev_priv; + struct { + SVGA3dCmdHeader header; + SVGA3dCmdDestroyGBShader body; + } *cmd; + + if (likely(res->id == -1)) + return 0; + + mutex_lock(&dev_priv->binding_mutex); + vmw_context_binding_res_list_scrub(&res->binding_head); + + cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); + if (unlikely(cmd == NULL)) { + DRM_ERROR("Failed reserving FIFO space for shader " + "destruction.\n"); + mutex_unlock(&dev_priv->binding_mutex); + return -ENOMEM; + } + + cmd->header.id = SVGA_3D_CMD_DESTROY_GB_SHADER; + cmd->header.size = sizeof(cmd->body); + cmd->body.shid = res->id; + vmw_fifo_commit(dev_priv, sizeof(*cmd)); + mutex_unlock(&dev_priv->binding_mutex); + vmw_resource_release_id(res); + vmw_3d_resource_dec(dev_priv, false); + + return 0; +} + +/** + * User-space shader management: + */ + +static struct vmw_resource * +vmw_user_shader_base_to_res(struct ttm_base_object *base) +{ + return &(container_of(base, struct vmw_user_shader, base)-> + shader.res); +} + +static void vmw_user_shader_free(struct vmw_resource *res) +{ + struct vmw_user_shader *ushader = + container_of(res, struct vmw_user_shader, shader.res); + struct vmw_private *dev_priv = res->dev_priv; + + ttm_base_object_kfree(ushader, base); + ttm_mem_global_free(vmw_mem_glob(dev_priv), + vmw_user_shader_size); +} + +/** + * This function is called when user space has no more references on the + * base object. It releases the base-object's reference on the resource object. + */ + +static void vmw_user_shader_base_release(struct ttm_base_object **p_base) +{ + struct ttm_base_object *base = *p_base; + struct vmw_resource *res = vmw_user_shader_base_to_res(base); + + *p_base = NULL; + vmw_resource_unreference(&res); +} + +int vmw_shader_destroy_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv) +{ + struct drm_vmw_shader_arg *arg = (struct drm_vmw_shader_arg *)data; + struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + + return ttm_ref_object_base_unref(tfile, arg->handle, + TTM_REF_USAGE); +} + +static int vmw_shader_alloc(struct vmw_private *dev_priv, + struct vmw_dma_buffer *buffer, + size_t shader_size, + size_t offset, + SVGA3dShaderType shader_type, + struct ttm_object_file *tfile, + u32 *handle) +{ + struct vmw_user_shader *ushader; + struct vmw_resource *res, *tmp; + int ret; + + /* + * Approximate idr memory usage with 128 bytes. It will be limited + * by maximum number_of shaders anyway. + */ + if (unlikely(vmw_user_shader_size == 0)) + vmw_user_shader_size = + ttm_round_pot(sizeof(struct vmw_user_shader)) + 128; + + ret = ttm_mem_global_alloc(vmw_mem_glob(dev_priv), + vmw_user_shader_size, + false, true); + if (unlikely(ret != 0)) { + if (ret != -ERESTARTSYS) + DRM_ERROR("Out of graphics memory for shader " + "creation.\n"); + goto out; + } + + ushader = kzalloc(sizeof(*ushader), GFP_KERNEL); + if (unlikely(ushader == NULL)) { + ttm_mem_global_free(vmw_mem_glob(dev_priv), + vmw_user_shader_size); + ret = -ENOMEM; + goto out; + } + + res = &ushader->shader.res; + ushader->base.shareable = false; + ushader->base.tfile = NULL; + + /* + * From here on, the destructor takes over resource freeing. + */ + + ret = vmw_gb_shader_init(dev_priv, res, shader_size, + offset, shader_type, buffer, + vmw_user_shader_free); + if (unlikely(ret != 0)) + goto out; + + tmp = vmw_resource_reference(res); + ret = ttm_base_object_init(tfile, &ushader->base, false, + VMW_RES_SHADER, + &vmw_user_shader_base_release, NULL); + + if (unlikely(ret != 0)) { + vmw_resource_unreference(&tmp); + goto out_err; + } + + if (handle) + *handle = ushader->base.hash.key; +out_err: + vmw_resource_unreference(&res); +out: + return ret; +} + + +int vmw_shader_define_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv) +{ + struct vmw_private *dev_priv = vmw_priv(dev); + struct drm_vmw_shader_create_arg *arg = + (struct drm_vmw_shader_create_arg *)data; + struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmw_master *vmaster = vmw_master(file_priv->master); + struct vmw_dma_buffer *buffer = NULL; + SVGA3dShaderType shader_type; + int ret; + + if (arg->buffer_handle != SVGA3D_INVALID_ID) { + ret = vmw_user_dmabuf_lookup(tfile, arg->buffer_handle, + &buffer); + if (unlikely(ret != 0)) { + DRM_ERROR("Could not find buffer for shader " + "creation.\n"); + return ret; + } + + if ((u64)buffer->base.num_pages * PAGE_SIZE < + (u64)arg->size + (u64)arg->offset) { + DRM_ERROR("Illegal buffer- or shader size.\n"); + ret = -EINVAL; + goto out_bad_arg; + } + } + + switch (arg->shader_type) { + case drm_vmw_shader_type_vs: + shader_type = SVGA3D_SHADERTYPE_VS; + break; + case drm_vmw_shader_type_ps: + shader_type = SVGA3D_SHADERTYPE_PS; + break; + case drm_vmw_shader_type_gs: + shader_type = SVGA3D_SHADERTYPE_GS; + break; + default: + DRM_ERROR("Illegal shader type.\n"); + ret = -EINVAL; + goto out_bad_arg; + } + + ret = ttm_read_lock(&vmaster->lock, true); + if (unlikely(ret != 0)) + goto out_bad_arg; + + ret = vmw_shader_alloc(dev_priv, buffer, arg->size, arg->offset, + shader_type, tfile, &arg->shader_handle); + + ttm_read_unlock(&vmaster->lock); +out_bad_arg: + vmw_dmabuf_unreference(&buffer); + return ret; +} + +/** + * vmw_compat_shader_lookup - Look up a compat shader + * + * @man: Pointer to the compat shader manager. + * @shader_type: The shader type, that combined with the user_key identifies + * the shader. + * @user_key: On entry, this should be a pointer to the user_key. + * On successful exit, it will contain the guest-backed shader's TTM handle. + * + * Returns 0 on success. Non-zero on failure, in which case the value pointed + * to by @user_key is unmodified. + */ +int vmw_compat_shader_lookup(struct vmw_compat_shader_manager *man, + SVGA3dShaderType shader_type, + u32 *user_key) +{ + struct drm_hash_item *hash; + int ret; + unsigned long key = *user_key | (shader_type << 24); + + ret = drm_ht_find_item(&man->shaders, key, &hash); + if (unlikely(ret != 0)) + return ret; + + *user_key = drm_hash_entry(hash, struct vmw_compat_shader, + hash)->handle; + + return 0; +} + +/** + * vmw_compat_shader_free - Free a compat shader. + * + * @man: Pointer to the compat shader manager. + * @entry: Pointer to a struct vmw_compat_shader. + * + * Frees a struct vmw_compat_shder entry and drops its reference to the + * guest backed shader. + */ +static void vmw_compat_shader_free(struct vmw_compat_shader_manager *man, + struct vmw_compat_shader *entry) +{ + list_del(&entry->head); + WARN_ON(drm_ht_remove_item(&man->shaders, &entry->hash)); + WARN_ON(ttm_ref_object_base_unref(entry->tfile, entry->handle, + TTM_REF_USAGE)); + kfree(entry); +} + +/** + * vmw_compat_shaders_commit - Commit a list of compat shader actions. + * + * @man: Pointer to the compat shader manager. + * @list: Caller's list of compat shader actions. + * + * This function commits a list of compat shader additions or removals. + * It is typically called when the execbuf ioctl call triggering these + * actions has commited the fifo contents to the device. + */ +void vmw_compat_shaders_commit(struct vmw_compat_shader_manager *man, + struct list_head *list) +{ + struct vmw_compat_shader *entry, *next; + + list_for_each_entry_safe(entry, next, list, head) { + list_del(&entry->head); + switch (entry->state) { + case VMW_COMPAT_ADD: + entry->state = VMW_COMPAT_COMMITED; + list_add_tail(&entry->head, &man->list); + break; + case VMW_COMPAT_DEL: + ttm_ref_object_base_unref(entry->tfile, entry->handle, + TTM_REF_USAGE); + kfree(entry); + break; + default: + BUG(); + break; + } + } +} + +/** + * vmw_compat_shaders_revert - Revert a list of compat shader actions + * + * @man: Pointer to the compat shader manager. + * @list: Caller's list of compat shader actions. + * + * This function reverts a list of compat shader additions or removals. + * It is typically called when the execbuf ioctl call triggering these + * actions failed for some reason, and the command stream was never + * submitted. + */ +void vmw_compat_shaders_revert(struct vmw_compat_shader_manager *man, + struct list_head *list) +{ + struct vmw_compat_shader *entry, *next; + int ret; + + list_for_each_entry_safe(entry, next, list, head) { + switch (entry->state) { + case VMW_COMPAT_ADD: + vmw_compat_shader_free(man, entry); + break; + case VMW_COMPAT_DEL: + ret = drm_ht_insert_item(&man->shaders, &entry->hash); + list_del(&entry->head); + list_add_tail(&entry->head, &man->list); + entry->state = VMW_COMPAT_COMMITED; + break; + default: + BUG(); + break; + } + } +} + +/** + * vmw_compat_shader_remove - Stage a compat shader for removal. + * + * @man: Pointer to the compat shader manager + * @user_key: The key that is used to identify the shader. The key is + * unique to the shader type. + * @shader_type: Shader type. + * @list: Caller's list of staged shader actions. + * + * This function stages a compat shader for removal and removes the key from + * the shader manager's hash table. If the shader was previously only staged + * for addition it is completely removed (But the execbuf code may keep a + * reference if it was bound to a context between addition and removal). If + * it was previously commited to the manager, it is staged for removal. + */ +int vmw_compat_shader_remove(struct vmw_compat_shader_manager *man, + u32 user_key, SVGA3dShaderType shader_type, + struct list_head *list) +{ + struct vmw_compat_shader *entry; + struct drm_hash_item *hash; + int ret; + + ret = drm_ht_find_item(&man->shaders, user_key | (shader_type << 24), + &hash); + if (likely(ret != 0)) + return -EINVAL; + + entry = drm_hash_entry(hash, struct vmw_compat_shader, hash); + + switch (entry->state) { + case VMW_COMPAT_ADD: + vmw_compat_shader_free(man, entry); + break; + case VMW_COMPAT_COMMITED: + (void) drm_ht_remove_item(&man->shaders, &entry->hash); + list_del(&entry->head); + entry->state = VMW_COMPAT_DEL; + list_add_tail(&entry->head, list); + break; + default: + BUG(); + break; + } + + return 0; +} + +/** + * vmw_compat_shader_add - Create a compat shader and add the + * key to the manager + * + * @man: Pointer to the compat shader manager + * @user_key: The key that is used to identify the shader. The key is + * unique to the shader type. + * @bytecode: Pointer to the bytecode of the shader. + * @shader_type: Shader type. + * @tfile: Pointer to a struct ttm_object_file that the guest-backed shader is + * to be created with. + * @list: Caller's list of staged shader actions. + * + * Note that only the key is added to the shader manager's hash table. + * The shader is not yet added to the shader manager's list of shaders. + */ +int vmw_compat_shader_add(struct vmw_compat_shader_manager *man, + u32 user_key, const void *bytecode, + SVGA3dShaderType shader_type, + size_t size, + struct ttm_object_file *tfile, + struct list_head *list) +{ + struct vmw_dma_buffer *buf; + struct ttm_bo_kmap_obj map; + bool is_iomem; + struct vmw_compat_shader *compat; + u32 handle; + int ret; + + if (user_key > ((1 << 24) - 1) || (unsigned) shader_type > 16) + return -EINVAL; + + /* Allocate and pin a DMA buffer */ + buf = kzalloc(sizeof(*buf), GFP_KERNEL); + if (unlikely(buf == NULL)) + return -ENOMEM; + + ret = vmw_dmabuf_init(man->dev_priv, buf, size, &vmw_sys_ne_placement, + true, vmw_dmabuf_bo_free); + if (unlikely(ret != 0)) + goto out; + + ret = ttm_bo_reserve(&buf->base, false, true, false, NULL); + if (unlikely(ret != 0)) + goto no_reserve; + + /* Map and copy shader bytecode. */ + ret = ttm_bo_kmap(&buf->base, 0, PAGE_ALIGN(size) >> PAGE_SHIFT, + &map); + if (unlikely(ret != 0)) { + ttm_bo_unreserve(&buf->base); + goto no_reserve; + } + + memcpy(ttm_kmap_obj_virtual(&map, &is_iomem), bytecode, size); + WARN_ON(is_iomem); + + ttm_bo_kunmap(&map); + ret = ttm_bo_validate(&buf->base, &vmw_sys_placement, false, true); + WARN_ON(ret != 0); + ttm_bo_unreserve(&buf->base); + + /* Create a guest-backed shader container backed by the dma buffer */ + ret = vmw_shader_alloc(man->dev_priv, buf, size, 0, shader_type, + tfile, &handle); + vmw_dmabuf_unreference(&buf); + if (unlikely(ret != 0)) + goto no_reserve; + /* + * Create a compat shader structure and stage it for insertion + * in the manager + */ + compat = kzalloc(sizeof(*compat), GFP_KERNEL); + if (compat == NULL) + goto no_compat; + + compat->hash.key = user_key | (shader_type << 24); + ret = drm_ht_insert_item(&man->shaders, &compat->hash); + if (unlikely(ret != 0)) + goto out_invalid_key; + + compat->state = VMW_COMPAT_ADD; + compat->handle = handle; + compat->tfile = tfile; + list_add_tail(&compat->head, list); + + return 0; + +out_invalid_key: + kfree(compat); +no_compat: + ttm_ref_object_base_unref(tfile, handle, TTM_REF_USAGE); +no_reserve: +out: + return ret; +} + +/** + * vmw_compat_shader_man_create - Create a compat shader manager + * + * @dev_priv: Pointer to a device private structure. + * + * Typically done at file open time. If successful returns a pointer to a + * compat shader manager. Otherwise returns an error pointer. + */ +struct vmw_compat_shader_manager * +vmw_compat_shader_man_create(struct vmw_private *dev_priv) +{ + struct vmw_compat_shader_manager *man; + int ret; + + man = kzalloc(sizeof(*man), GFP_KERNEL); + if (man == NULL) + return ERR_PTR(-ENOMEM); + + man->dev_priv = dev_priv; + INIT_LIST_HEAD(&man->list); + ret = drm_ht_create(&man->shaders, VMW_COMPAT_SHADER_HT_ORDER); + if (ret == 0) + return man; + + kfree(man); + return ERR_PTR(ret); +} + +/** + * vmw_compat_shader_man_destroy - Destroy a compat shader manager + * + * @man: Pointer to the shader manager to destroy. + * + * Typically done at file close time. + */ +void vmw_compat_shader_man_destroy(struct vmw_compat_shader_manager *man) +{ + struct vmw_compat_shader *entry, *next; + + mutex_lock(&man->dev_priv->cmdbuf_mutex); + list_for_each_entry_safe(entry, next, &man->list, head) + vmw_compat_shader_free(man, entry); + + mutex_unlock(&man->dev_priv->cmdbuf_mutex); + kfree(man); +} --- linux-3.13.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c +++ linux-3.13.0/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c @@ -41,7 +41,6 @@ struct ttm_prime_object prime; struct vmw_surface srf; uint32_t size; - uint32_t backup_handle; }; /** @@ -68,6 +67,14 @@ struct ttm_validate_buffer *val_buf); static int vmw_legacy_srf_create(struct vmw_resource *res); static int vmw_legacy_srf_destroy(struct vmw_resource *res); +static int vmw_gb_surface_create(struct vmw_resource *res); +static int vmw_gb_surface_bind(struct vmw_resource *res, + struct ttm_validate_buffer *val_buf); +static int vmw_gb_surface_unbind(struct vmw_resource *res, + bool readback, + struct ttm_validate_buffer *val_buf); +static int vmw_gb_surface_destroy(struct vmw_resource *res); + static const struct vmw_user_resource_conv user_surface_conv = { .object_type = VMW_RES_SURFACE, @@ -93,6 +100,18 @@ .unbind = &vmw_legacy_srf_unbind }; +static const struct vmw_res_func vmw_gb_surface_func = { + .res_type = vmw_res_surface, + .needs_backup = true, + .may_evict = true, + .type_name = "guest backed surfaces", + .backup_placement = &vmw_mob_placement, + .create = vmw_gb_surface_create, + .destroy = vmw_gb_surface_destroy, + .bind = vmw_gb_surface_bind, + .unbind = vmw_gb_surface_unbind +}; + /** * struct vmw_surface_dma - SVGA3D DMA command */ @@ -291,6 +310,11 @@ struct vmw_surface *srf; void *cmd; + if (res->func->destroy == vmw_gb_surface_destroy) { + (void) vmw_gb_surface_destroy(res); + return; + } + if (res->id != -1) { cmd = vmw_fifo_reserve(dev_priv, vmw_surface_destroy_size()); @@ -549,12 +573,15 @@ struct vmw_resource *res = &srf->res; BUG_ON(res_free == NULL); - (void) vmw_3d_resource_inc(dev_priv, false); + if (!dev_priv->has_mob) + (void) vmw_3d_resource_inc(dev_priv, false); ret = vmw_resource_init(dev_priv, res, true, res_free, + (dev_priv->has_mob) ? &vmw_gb_surface_func : &vmw_legacy_surface_func); if (unlikely(ret != 0)) { - vmw_3d_resource_dec(dev_priv, false); + if (!dev_priv->has_mob) + vmw_3d_resource_dec(dev_priv, false); res_free(res); return ret; } @@ -750,7 +777,7 @@ srf->base_size = *srf->sizes; srf->autogen_filter = SVGA3D_TEX_FILTER_NONE; - srf->multisample_count = 1; + srf->multisample_count = 0; cur_bo_offset = 0; cur_offset = srf->offsets; @@ -803,6 +830,24 @@ if (unlikely(ret != 0)) goto out_unlock; + /* + * A gb-aware client referencing a shared surface will + * expect a backup buffer to be present. + */ + if (dev_priv->has_mob && req->shareable) { + uint32_t backup_handle; + + ret = vmw_user_dmabuf_alloc(dev_priv, tfile, + res->backup_size, + true, + &backup_handle, + &res->backup); + if (unlikely(ret != 0)) { + vmw_resource_unreference(&res); + goto out_unlock; + } + } + tmp = vmw_resource_reference(&srf->res); ret = ttm_prime_object_init(tfile, res->backup_size, &user_srf->prime, req->shareable, VMW_RES_SURFACE, @@ -843,6 +888,7 @@ int vmw_surface_reference_ioctl(struct drm_device *dev, void *data, struct drm_file *file_priv) { + struct vmw_private *dev_priv = vmw_priv(dev); union drm_vmw_surface_reference_arg *arg = (union drm_vmw_surface_reference_arg *)data; struct drm_vmw_surface_arg *req = &arg->req; @@ -854,7 +900,7 @@ struct ttm_base_object *base; int ret = -EINVAL; - base = ttm_base_object_lookup(tfile, req->sid); + base = ttm_base_object_lookup_for_ref(dev_priv->tdev, req->sid); if (unlikely(base == NULL)) { DRM_ERROR("Could not find surface to reference.\n"); return -EINVAL; @@ -880,8 +926,8 @@ rep->size_addr; if (user_sizes) - ret = copy_to_user(user_sizes, srf->sizes, - srf->num_sizes * sizeof(*srf->sizes)); + ret = copy_to_user(user_sizes, &srf->base_size, + sizeof(srf->base_size)); if (unlikely(ret != 0)) { DRM_ERROR("copy_to_user failed %p %u\n", user_sizes, srf->num_sizes); @@ -892,4 +938,437 @@ ttm_base_object_unref(&base); return ret; +} + +/** + * vmw_surface_define_encode - Encode a surface_define command. + * + * @srf: Pointer to a struct vmw_surface object. + * @cmd_space: Pointer to memory area in which the commands should be encoded. + */ +static int vmw_gb_surface_create(struct vmw_resource *res) +{ + struct vmw_private *dev_priv = res->dev_priv; + struct vmw_surface *srf = vmw_res_to_srf(res); + uint32_t cmd_len, submit_len; + int ret; + struct { + SVGA3dCmdHeader header; + SVGA3dCmdDefineGBSurface body; + } *cmd; + + if (likely(res->id != -1)) + return 0; + + (void) vmw_3d_resource_inc(dev_priv, false); + ret = vmw_resource_alloc_id(res); + if (unlikely(ret != 0)) { + DRM_ERROR("Failed to allocate a surface id.\n"); + goto out_no_id; + } + + if (unlikely(res->id >= VMWGFX_NUM_GB_SURFACE)) { + ret = -EBUSY; + goto out_no_fifo; + } + + cmd_len = sizeof(cmd->body); + submit_len = sizeof(*cmd); + cmd = vmw_fifo_reserve(dev_priv, submit_len); + if (unlikely(cmd == NULL)) { + DRM_ERROR("Failed reserving FIFO space for surface " + "creation.\n"); + ret = -ENOMEM; + goto out_no_fifo; + } + + cmd->header.id = SVGA_3D_CMD_DEFINE_GB_SURFACE; + cmd->header.size = cmd_len; + cmd->body.sid = srf->res.id; + cmd->body.surfaceFlags = srf->flags; + cmd->body.format = cpu_to_le32(srf->format); + cmd->body.numMipLevels = srf->mip_levels[0]; + cmd->body.multisampleCount = srf->multisample_count; + cmd->body.autogenFilter = srf->autogen_filter; + cmd->body.size.width = srf->base_size.width; + cmd->body.size.height = srf->base_size.height; + cmd->body.size.depth = srf->base_size.depth; + vmw_fifo_commit(dev_priv, submit_len); + + return 0; + +out_no_fifo: + vmw_resource_release_id(res); +out_no_id: + vmw_3d_resource_dec(dev_priv, false); + return ret; +} + + +static int vmw_gb_surface_bind(struct vmw_resource *res, + struct ttm_validate_buffer *val_buf) +{ + struct vmw_private *dev_priv = res->dev_priv; + struct { + SVGA3dCmdHeader header; + SVGA3dCmdBindGBSurface body; + } *cmd1; + struct { + SVGA3dCmdHeader header; + SVGA3dCmdUpdateGBSurface body; + } *cmd2; + uint32_t submit_size; + struct ttm_buffer_object *bo = val_buf->bo; + + BUG_ON(bo->mem.mem_type != VMW_PL_MOB); + + submit_size = sizeof(*cmd1) + (res->backup_dirty ? sizeof(*cmd2) : 0); + + cmd1 = vmw_fifo_reserve(dev_priv, submit_size); + if (unlikely(cmd1 == NULL)) { + DRM_ERROR("Failed reserving FIFO space for surface " + "binding.\n"); + return -ENOMEM; + } + + cmd1->header.id = SVGA_3D_CMD_BIND_GB_SURFACE; + cmd1->header.size = sizeof(cmd1->body); + cmd1->body.sid = res->id; + cmd1->body.mobid = bo->mem.start; + if (res->backup_dirty) { + cmd2 = (void *) &cmd1[1]; + cmd2->header.id = SVGA_3D_CMD_UPDATE_GB_SURFACE; + cmd2->header.size = sizeof(cmd2->body); + cmd2->body.sid = res->id; + res->backup_dirty = false; + } + vmw_fifo_commit(dev_priv, submit_size); + + return 0; +} + +static int vmw_gb_surface_unbind(struct vmw_resource *res, + bool readback, + struct ttm_validate_buffer *val_buf) +{ + struct vmw_private *dev_priv = res->dev_priv; + struct ttm_buffer_object *bo = val_buf->bo; + struct vmw_fence_obj *fence; + + struct { + SVGA3dCmdHeader header; + SVGA3dCmdReadbackGBSurface body; + } *cmd1; + struct { + SVGA3dCmdHeader header; + SVGA3dCmdInvalidateGBSurface body; + } *cmd2; + struct { + SVGA3dCmdHeader header; + SVGA3dCmdBindGBSurface body; + } *cmd3; + uint32_t submit_size; + uint8_t *cmd; + + + BUG_ON(bo->mem.mem_type != VMW_PL_MOB); + + submit_size = sizeof(*cmd3) + (readback ? sizeof(*cmd1) : sizeof(*cmd2)); + cmd = vmw_fifo_reserve(dev_priv, submit_size); + if (unlikely(cmd == NULL)) { + DRM_ERROR("Failed reserving FIFO space for surface " + "unbinding.\n"); + return -ENOMEM; + } + + if (readback) { + cmd1 = (void *) cmd; + cmd1->header.id = SVGA_3D_CMD_READBACK_GB_SURFACE; + cmd1->header.size = sizeof(cmd1->body); + cmd1->body.sid = res->id; + cmd3 = (void *) &cmd1[1]; + } else { + cmd2 = (void *) cmd; + cmd2->header.id = SVGA_3D_CMD_INVALIDATE_GB_SURFACE; + cmd2->header.size = sizeof(cmd2->body); + cmd2->body.sid = res->id; + cmd3 = (void *) &cmd2[1]; + } + + cmd3->header.id = SVGA_3D_CMD_BIND_GB_SURFACE; + cmd3->header.size = sizeof(cmd3->body); + cmd3->body.sid = res->id; + cmd3->body.mobid = SVGA3D_INVALID_ID; + + vmw_fifo_commit(dev_priv, submit_size); + + /* + * Create a fence object and fence the backup buffer. + */ + + (void) vmw_execbuf_fence_commands(NULL, dev_priv, + &fence, NULL); + + vmw_fence_single_bo(val_buf->bo, fence); + + if (likely(fence != NULL)) + vmw_fence_obj_unreference(&fence); + + return 0; +} + +static int vmw_gb_surface_destroy(struct vmw_resource *res) +{ + struct vmw_private *dev_priv = res->dev_priv; + struct { + SVGA3dCmdHeader header; + SVGA3dCmdDestroyGBSurface body; + } *cmd; + + if (likely(res->id == -1)) + return 0; + + mutex_lock(&dev_priv->binding_mutex); + vmw_context_binding_res_list_scrub(&res->binding_head); + + cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); + if (unlikely(cmd == NULL)) { + DRM_ERROR("Failed reserving FIFO space for surface " + "destruction.\n"); + mutex_unlock(&dev_priv->binding_mutex); + return -ENOMEM; + } + + cmd->header.id = SVGA_3D_CMD_DESTROY_GB_SURFACE; + cmd->header.size = sizeof(cmd->body); + cmd->body.sid = res->id; + vmw_fifo_commit(dev_priv, sizeof(*cmd)); + mutex_unlock(&dev_priv->binding_mutex); + vmw_resource_release_id(res); + vmw_3d_resource_dec(dev_priv, false); + + return 0; +} + +/** + * vmw_gb_surface_define_ioctl - Ioctl function implementing + * the user surface define functionality. + * + * @dev: Pointer to a struct drm_device. + * @data: Pointer to data copied from / to user-space. + * @file_priv: Pointer to a drm file private structure. + */ +int vmw_gb_surface_define_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv) +{ + struct vmw_private *dev_priv = vmw_priv(dev); + struct vmw_user_surface *user_srf; + struct vmw_surface *srf; + struct vmw_resource *res; + struct vmw_resource *tmp; + union drm_vmw_gb_surface_create_arg *arg = + (union drm_vmw_gb_surface_create_arg *)data; + struct drm_vmw_gb_surface_create_req *req = &arg->req; + struct drm_vmw_gb_surface_create_rep *rep = &arg->rep; + struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + int ret; + uint32_t size; + struct vmw_master *vmaster = vmw_master(file_priv->master); + const struct svga3d_surface_desc *desc; + uint32_t backup_handle; + + if (unlikely(vmw_user_surface_size == 0)) + vmw_user_surface_size = ttm_round_pot(sizeof(*user_srf)) + + 128; + + size = vmw_user_surface_size + 128; + + desc = svga3dsurface_get_desc(req->format); + if (unlikely(desc->block_desc == SVGA3DBLOCKDESC_NONE)) { + DRM_ERROR("Invalid surface format for surface creation.\n"); + return -EINVAL; + } + + ret = ttm_read_lock(&vmaster->lock, true); + if (unlikely(ret != 0)) + return ret; + + ret = ttm_mem_global_alloc(vmw_mem_glob(dev_priv), + size, false, true); + if (unlikely(ret != 0)) { + if (ret != -ERESTARTSYS) + DRM_ERROR("Out of graphics memory for surface" + " creation.\n"); + goto out_unlock; + } + + user_srf = kzalloc(sizeof(*user_srf), GFP_KERNEL); + if (unlikely(user_srf == NULL)) { + ret = -ENOMEM; + goto out_no_user_srf; + } + + srf = &user_srf->srf; + res = &srf->res; + + srf->flags = req->svga3d_flags; + srf->format = req->format; + srf->scanout = req->drm_surface_flags & drm_vmw_surface_flag_scanout; + srf->mip_levels[0] = req->mip_levels; + srf->num_sizes = 1; + srf->sizes = NULL; + srf->offsets = NULL; + user_srf->size = size; + srf->base_size = req->base_size; + srf->autogen_filter = SVGA3D_TEX_FILTER_NONE; + srf->multisample_count = req->multisample_count; + res->backup_size = svga3dsurface_get_serialized_size + (srf->format, srf->base_size, srf->mip_levels[0], + srf->flags & SVGA3D_SURFACE_CUBEMAP); + + user_srf->prime.base.shareable = false; + user_srf->prime.base.tfile = NULL; + + /** + * From this point, the generic resource management functions + * destroy the object on failure. + */ + + ret = vmw_surface_init(dev_priv, srf, vmw_user_surface_free); + if (unlikely(ret != 0)) + goto out_unlock; + + if (req->buffer_handle != SVGA3D_INVALID_ID) { + ret = vmw_user_dmabuf_lookup(tfile, req->buffer_handle, + &res->backup); + } else if (req->drm_surface_flags & + drm_vmw_surface_flag_create_buffer) + ret = vmw_user_dmabuf_alloc(dev_priv, tfile, + res->backup_size, + req->drm_surface_flags & + drm_vmw_surface_flag_shareable, + &backup_handle, + &res->backup); + + if (unlikely(ret != 0)) { + vmw_resource_unreference(&res); + goto out_unlock; + } + + tmp = vmw_resource_reference(&srf->res); + ret = ttm_prime_object_init(tfile, res->backup_size, &user_srf->prime, + req->drm_surface_flags & + drm_vmw_surface_flag_shareable, + VMW_RES_SURFACE, + &vmw_user_surface_base_release, NULL); + + if (unlikely(ret != 0)) { + vmw_resource_unreference(&tmp); + vmw_resource_unreference(&res); + goto out_unlock; + } + + rep->handle = user_srf->prime.base.hash.key; + rep->backup_size = res->backup_size; + if (res->backup) { + rep->buffer_map_handle = + drm_vma_node_offset_addr(&res->backup->base.vma_node); + rep->buffer_size = res->backup->base.num_pages * PAGE_SIZE; + rep->buffer_handle = backup_handle; + } else { + rep->buffer_map_handle = 0; + rep->buffer_size = 0; + rep->buffer_handle = SVGA3D_INVALID_ID; + } + + vmw_resource_unreference(&res); + + ttm_read_unlock(&vmaster->lock); + return 0; +out_no_user_srf: + ttm_mem_global_free(vmw_mem_glob(dev_priv), size); +out_unlock: + ttm_read_unlock(&vmaster->lock); + return ret; +} + +/** + * vmw_gb_surface_reference_ioctl - Ioctl function implementing + * the user surface reference functionality. + * + * @dev: Pointer to a struct drm_device. + * @data: Pointer to data copied from / to user-space. + * @file_priv: Pointer to a drm file private structure. + */ +int vmw_gb_surface_reference_ioctl(struct drm_device *dev, void *data, + struct drm_file *file_priv) +{ + struct vmw_private *dev_priv = vmw_priv(dev); + union drm_vmw_gb_surface_reference_arg *arg = + (union drm_vmw_gb_surface_reference_arg *)data; + struct drm_vmw_surface_arg *req = &arg->req; + struct drm_vmw_gb_surface_ref_rep *rep = &arg->rep; + struct ttm_object_file *tfile = vmw_fpriv(file_priv)->tfile; + struct vmw_surface *srf; + struct vmw_user_surface *user_srf; + struct ttm_base_object *base; + uint32_t backup_handle; + int ret = -EINVAL; + + base = ttm_base_object_lookup_for_ref(dev_priv->tdev, req->sid); + if (unlikely(base == NULL)) { + DRM_ERROR("Could not find surface to reference.\n"); + return -EINVAL; + } + + if (unlikely(ttm_base_object_type(base) != VMW_RES_SURFACE)) + goto out_bad_resource; + + user_srf = container_of(base, struct vmw_user_surface, prime.base); + srf = &user_srf->srf; + if (srf->res.backup == NULL) { + DRM_ERROR("Shared GB surface is missing a backup buffer.\n"); + goto out_bad_resource; + } + + ret = ttm_ref_object_add(tfile, &user_srf->prime.base, + TTM_REF_USAGE, NULL); + if (unlikely(ret != 0)) { + DRM_ERROR("Could not add a reference to a GB surface.\n"); + goto out_bad_resource; + } + + mutex_lock(&dev_priv->cmdbuf_mutex); /* Protect res->backup */ + ret = vmw_user_dmabuf_reference(tfile, srf->res.backup, + &backup_handle); + mutex_unlock(&dev_priv->cmdbuf_mutex); + + if (unlikely(ret != 0)) { + DRM_ERROR("Could not add a reference to a GB surface " + "backup buffer.\n"); + (void) ttm_ref_object_base_unref(vmw_fpriv(file_priv)->tfile, + req->sid, + TTM_REF_USAGE); + goto out_bad_resource; + } + + rep->creq.svga3d_flags = srf->flags; + rep->creq.format = srf->format; + rep->creq.mip_levels = srf->mip_levels[0]; + rep->creq.drm_surface_flags = 0; + rep->creq.multisample_count = srf->multisample_count; + rep->creq.autogen_filter = srf->autogen_filter; + rep->creq.buffer_handle = backup_handle; + rep->creq.base_size = srf->base_size; + rep->crep.handle = user_srf->prime.base.hash.key; + rep->crep.backup_size = srf->res.backup_size; + rep->crep.buffer_handle = backup_handle; + rep->crep.buffer_map_handle = + drm_vma_node_offset_addr(&srf->res.backup->base.vma_node); + rep->crep.buffer_size = srf->res.backup->base.num_pages * PAGE_SIZE; + +out_bad_resource: + ttm_base_object_unref(&base); + + return ret; } --- linux-3.13.0.orig/drivers/gpu/vga/vga_switcheroo.c +++ linux-3.13.0/drivers/gpu/vga/vga_switcheroo.c @@ -623,7 +623,8 @@ ret = dev->bus->pm->runtime_suspend(dev); if (ret) return ret; - + if (vgasr_priv.handler->switchto) + vgasr_priv.handler->switchto(VGA_SWITCHEROO_IGD); vga_switcheroo_power_switch(pdev, VGA_SWITCHEROO_OFF); return 0; } @@ -659,6 +660,12 @@ } EXPORT_SYMBOL(vga_switcheroo_init_domain_pm_ops); +void vga_switcheroo_fini_domain_pm_ops(struct device *dev) +{ + dev->pm_domain = NULL; +} +EXPORT_SYMBOL(vga_switcheroo_fini_domain_pm_ops); + static int vga_switcheroo_runtime_resume_hdmi_audio(struct device *dev) { struct pci_dev *pdev = to_pci_dev(dev); --- linux-3.13.0.orig/drivers/gpu/vga/vgaarb.c +++ linux-3.13.0/drivers/gpu/vga/vgaarb.c @@ -41,6 +41,7 @@ #include #include #include +#include #include @@ -580,8 +581,11 @@ */ #ifndef __ARCH_HAS_VGA_DEFAULT_DEVICE if (vga_default == NULL && - ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK)) + ((vgadev->owns & VGA_RSRC_LEGACY_MASK) == VGA_RSRC_LEGACY_MASK)) { + pr_info("vgaarb: setting as boot device: PCI:%s\n", + pci_name(pdev)); vga_set_default_device(pdev); + } #endif vga_arbiter_check_bridge_sharing(vgadev); @@ -1316,6 +1320,38 @@ pr_info("vgaarb: loaded\n"); list_for_each_entry(vgadev, &vga_list, list) { +#if defined(CONFIG_X86) || defined(CONFIG_IA64) + /* Override I/O based detection done by vga_arbiter_add_pci_device() + * as it may take the wrong device (e.g. on Apple system under EFI). + * + * Select the device owning the boot framebuffer if there is one. + */ + resource_size_t start, end; + int i; + + /* Does firmware framebuffer belong to us? */ + for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) { + if (!(pci_resource_flags(vgadev->pdev, i) & IORESOURCE_MEM)) + continue; + + start = pci_resource_start(vgadev->pdev, i); + end = pci_resource_end(vgadev->pdev, i); + + if (!start || !end) + continue; + + if (screen_info.lfb_base < start || + (screen_info.lfb_base + screen_info.lfb_size) >= end) + continue; + if (!vga_default_device()) + pr_info("vgaarb: setting as boot device: PCI:%s\n", + pci_name(vgadev->pdev)); + else if (vgadev->pdev != vga_default_device()) + pr_info("vgaarb: overriding boot device: PCI:%s\n", + pci_name(vgadev->pdev)); + vga_set_default_device(vgadev->pdev); + } +#endif if (vgadev->bridge_has_one_vga) pr_info("vgaarb: bridge control possible %s\n", pci_name(vgadev->pdev)); else --- linux-3.13.0.orig/drivers/hid/Kconfig +++ linux-3.13.0/drivers/hid/Kconfig @@ -27,7 +27,7 @@ config HID_BATTERY_STRENGTH bool "Battery level reporting for HID devices" - depends on HID && POWER_SUPPLY && HID = POWER_SUPPLY + depends on HID && POWER_SUPPLY default n ---help--- This option adds support of reporting battery strength (for HID devices @@ -645,6 +645,14 @@ ---help--- Support for Sunplus wireless desktop. +config HID_RMI + tristate "Synaptics RMI4 device support" + depends on HID + ---help--- + Support for Synaptics RMI4 touchpads. + Say Y here if you have a Synaptics RMI4 touchpads over i2c-hid or usbhid + and want support for its special functionalities. + config HID_GREENASIA tristate "GreenAsia (Product ID 0x12) game controller support" depends on HID --- linux-3.13.0.orig/drivers/hid/Makefile +++ linux-3.13.0/drivers/hid/Makefile @@ -96,6 +96,7 @@ hid-roccat-arvo.o hid-roccat-isku.o hid-roccat-kone.o \ hid-roccat-koneplus.o hid-roccat-konepure.o hid-roccat-kovaplus.o \ hid-roccat-lua.o hid-roccat-pyra.o hid-roccat-ryos.o hid-roccat-savu.o +obj-$(CONFIG_HID_RMI) += hid-rmi.o obj-$(CONFIG_HID_SAITEK) += hid-saitek.o obj-$(CONFIG_HID_SAMSUNG) += hid-samsung.o obj-$(CONFIG_HID_SMARTJOYPLUS) += hid-sjoy.o --- linux-3.13.0.orig/drivers/hid/hid-cherry.c +++ linux-3.13.0/drivers/hid/hid-cherry.c @@ -28,7 +28,7 @@ static __u8 *ch_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int *rsize) { - if (*rsize >= 17 && rdesc[11] == 0x3c && rdesc[12] == 0x02) { + if (*rsize >= 18 && rdesc[11] == 0x3c && rdesc[12] == 0x02) { hid_info(hdev, "fixing up Cherry Cymotion report descriptor\n"); rdesc[11] = rdesc[16] = 0xff; rdesc[12] = rdesc[17] = 0x03; --- linux-3.13.0.orig/drivers/hid/hid-core.c +++ linux-3.13.0/drivers/hid/hid-core.c @@ -718,6 +718,9 @@ case HID_MAIN_ITEM_TAG_END_COLLECTION: break; case HID_MAIN_ITEM_TAG_INPUT: + /* ignore constant inputs, they will be ignored by hid-input */ + if (data & HID_MAIN_ITEM_CONSTANT) + break; for (i = 0; i < parser->local.usage_index; i++) hid_scan_input_usage(parser, parser->local.usage[i]); break; @@ -776,6 +779,14 @@ (hid->group == HID_GROUP_MULTITOUCH)) hid->group = HID_GROUP_MULTITOUCH_WIN_8; + /* + * Vendor specific handlings + */ + if ((hid->vendor == USB_VENDOR_ID_SYNAPTICS) && + (hid->group == HID_GROUP_GENERIC)) + /* hid-rmi should take care of them, not hid-generic */ + hid->group = HID_GROUP_RMI; + vfree(parser); return 0; } @@ -839,7 +850,17 @@ * ->numbered being checked, which may not always be the case when * drivers go to access report values. */ - report = hid->report_enum[type].report_id_hash[id]; + if (id == 0) { + /* + * Validating on id 0 means we should examine the first + * report in the list. + */ + report = list_entry( + hid->report_enum[type].report_list.next, + struct hid_report, list); + } else { + report = hid->report_enum[type].report_id_hash[id]; + } if (!report) { hid_err(hid, "missing %s %u\n", hid_report_names[type], id); return NULL; --- linux-3.13.0.orig/drivers/hid/hid-ids.h +++ linux-3.13.0/drivers/hid/hid-ids.h @@ -312,6 +312,7 @@ #define USB_VENDOR_ID_ETURBOTOUCH 0x22b9 #define USB_DEVICE_ID_ETURBOTOUCH 0x0006 +#define USB_DEVICE_ID_ETURBOTOUCH_2968 0x2968 #define USB_VENDOR_ID_EZKEY 0x0518 #define USB_DEVICE_ID_BTC_8193 0x0002 @@ -809,6 +810,7 @@ #define USB_DEVICE_ID_SYNAPTICS_DPAD 0x0013 #define USB_DEVICE_ID_SYNAPTICS_LTS1 0x0af8 #define USB_DEVICE_ID_SYNAPTICS_LTS2 0x1d10 +#define USB_DEVICE_ID_SYNAPTICS_TP_V103 0x5710 #define USB_VENDOR_ID_THINGM 0x27b8 #define USB_DEVICE_ID_BLINK1 0x01ed --- linux-3.13.0.orig/drivers/hid/hid-input.c +++ linux-3.13.0/drivers/hid/hid-input.c @@ -350,9 +350,9 @@ ret = -ENOMEM; break; } - ret = dev->hid_get_raw_report(dev, dev->battery_report_id, - buf, 2, - dev->battery_report_type); + ret = hid_hw_raw_request(dev, dev->battery_report_id, buf, 2, + dev->battery_report_type, + HID_REQ_GET_REPORT); if (ret != 2) { ret = -ENODATA; --- linux-3.13.0.orig/drivers/hid/hid-kye.c +++ linux-3.13.0/drivers/hid/hid-kye.c @@ -300,7 +300,7 @@ * - change the button usage range to 4-7 for the extra * buttons */ - if (*rsize >= 74 && + if (*rsize >= 75 && rdesc[61] == 0x05 && rdesc[62] == 0x08 && rdesc[63] == 0x19 && rdesc[64] == 0x08 && rdesc[65] == 0x29 && rdesc[66] == 0x0f && --- linux-3.13.0.orig/drivers/hid/hid-lg.c +++ linux-3.13.0/drivers/hid/hid-lg.c @@ -345,14 +345,14 @@ struct usb_device_descriptor *udesc; __u16 bcdDevice, rev_maj, rev_min; - if ((drv_data->quirks & LG_RDESC) && *rsize >= 90 && rdesc[83] == 0x26 && + if ((drv_data->quirks & LG_RDESC) && *rsize >= 91 && rdesc[83] == 0x26 && rdesc[84] == 0x8c && rdesc[85] == 0x02) { hid_info(hdev, "fixing up Logitech keyboard report descriptor\n"); rdesc[84] = rdesc[89] = 0x4d; rdesc[85] = rdesc[90] = 0x10; } - if ((drv_data->quirks & LG_RDESC_REL_ABS) && *rsize >= 50 && + if ((drv_data->quirks & LG_RDESC_REL_ABS) && *rsize >= 51 && rdesc[32] == 0x81 && rdesc[33] == 0x06 && rdesc[49] == 0x81 && rdesc[50] == 0x06) { hid_info(hdev, --- linux-3.13.0.orig/drivers/hid/hid-logitech-dj.c +++ linux-3.13.0/drivers/hid/hid-logitech-dj.c @@ -237,13 +237,6 @@ return; } - if ((dj_report->device_index < DJ_DEVICE_INDEX_MIN) || - (dj_report->device_index > DJ_DEVICE_INDEX_MAX)) { - dev_err(&djrcv_hdev->dev, "%s: invalid device index:%d\n", - __func__, dj_report->device_index); - return; - } - if (djrcv_dev->paired_dj_devices[dj_report->device_index]) { /* The device is already known. No need to reallocate it. */ dbg_hid("%s: device is already known\n", __func__); @@ -686,7 +679,6 @@ struct dj_receiver_dev *djrcv_dev = hid_get_drvdata(hdev); struct dj_report *dj_report = (struct dj_report *) data; unsigned long flags; - bool report_processed = false; dbg_hid("%s, size:%d\n", __func__, size); @@ -714,27 +706,41 @@ * anything else with it. */ + /* case 1) */ + if (data[0] != REPORT_ID_DJ_SHORT) + return false; + + if ((dj_report->device_index < DJ_DEVICE_INDEX_MIN) || + (dj_report->device_index > DJ_DEVICE_INDEX_MAX)) { + /* + * Device index is wrong, bail out. + * This driver can ignore safely the receiver notifications, + * so ignore those reports too. + */ + if (dj_report->device_index != DJ_RECEIVER_INDEX) + dev_err(&hdev->dev, "%s: invalid device index:%d\n", + __func__, dj_report->device_index); + return false; + } + spin_lock_irqsave(&djrcv_dev->lock, flags); - if (dj_report->report_id == REPORT_ID_DJ_SHORT) { - switch (dj_report->report_type) { - case REPORT_TYPE_NOTIF_DEVICE_PAIRED: - case REPORT_TYPE_NOTIF_DEVICE_UNPAIRED: - logi_dj_recv_queue_notification(djrcv_dev, dj_report); - break; - case REPORT_TYPE_NOTIF_CONNECTION_STATUS: - if (dj_report->report_params[CONNECTION_STATUS_PARAM_STATUS] == - STATUS_LINKLOSS) { - logi_dj_recv_forward_null_report(djrcv_dev, dj_report); - } - break; - default: - logi_dj_recv_forward_report(djrcv_dev, dj_report); + switch (dj_report->report_type) { + case REPORT_TYPE_NOTIF_DEVICE_PAIRED: + case REPORT_TYPE_NOTIF_DEVICE_UNPAIRED: + logi_dj_recv_queue_notification(djrcv_dev, dj_report); + break; + case REPORT_TYPE_NOTIF_CONNECTION_STATUS: + if (dj_report->report_params[CONNECTION_STATUS_PARAM_STATUS] == + STATUS_LINKLOSS) { + logi_dj_recv_forward_null_report(djrcv_dev, dj_report); } - report_processed = true; + break; + default: + logi_dj_recv_forward_report(djrcv_dev, dj_report); } spin_unlock_irqrestore(&djrcv_dev->lock, flags); - return report_processed; + return true; } static int logi_dj_probe(struct hid_device *hdev, --- linux-3.13.0.orig/drivers/hid/hid-logitech-dj.h +++ linux-3.13.0/drivers/hid/hid-logitech-dj.h @@ -27,6 +27,7 @@ #define DJ_MAX_PAIRED_DEVICES 6 #define DJ_MAX_NUMBER_NOTIFICATIONS 8 +#define DJ_RECEIVER_INDEX 0 #define DJ_DEVICE_INDEX_MIN 1 #define DJ_DEVICE_INDEX_MAX 6 --- linux-3.13.0.orig/drivers/hid/hid-magicmouse.c +++ linux-3.13.0/drivers/hid/hid-magicmouse.c @@ -290,6 +290,11 @@ if (size < 4 || ((size - 4) % 9) != 0) return 0; npoints = (size - 4) / 9; + if (npoints > 15) { + hid_warn(hdev, "invalid size value (%d) for TRACKPAD_REPORT_ID\n", + size); + return 0; + } msc->ntouches = 0; for (ii = 0; ii < npoints; ii++) magicmouse_emit_touch(msc, ii, data + ii * 9 + 4); @@ -307,6 +312,11 @@ if (size < 6 || ((size - 6) % 8) != 0) return 0; npoints = (size - 6) / 8; + if (npoints > 15) { + hid_warn(hdev, "invalid size value (%d) for MOUSE_REPORT_ID\n", + size); + return 0; + } msc->ntouches = 0; for (ii = 0; ii < npoints; ii++) magicmouse_emit_touch(msc, ii, data + ii * 8 + 6); --- linux-3.13.0.orig/drivers/hid/hid-monterey.c +++ linux-3.13.0/drivers/hid/hid-monterey.c @@ -24,7 +24,7 @@ static __u8 *mr_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int *rsize) { - if (*rsize >= 30 && rdesc[29] == 0x05 && rdesc[30] == 0x09) { + if (*rsize >= 31 && rdesc[29] == 0x05 && rdesc[30] == 0x09) { hid_info(hdev, "fixing up button/consumer in HID report descriptor\n"); rdesc[30] = 0x0c; } --- linux-3.13.0.orig/drivers/hid/hid-petalynx.c +++ linux-3.13.0/drivers/hid/hid-petalynx.c @@ -25,7 +25,7 @@ static __u8 *pl_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int *rsize) { - if (*rsize >= 60 && rdesc[39] == 0x2a && rdesc[40] == 0xf5 && + if (*rsize >= 62 && rdesc[39] == 0x2a && rdesc[40] == 0xf5 && rdesc[41] == 0x00 && rdesc[59] == 0x26 && rdesc[60] == 0xf9 && rdesc[61] == 0x00) { hid_info(hdev, "fixing up Petalynx Maxter Remote report descriptor\n"); --- linux-3.13.0.orig/drivers/hid/hid-picolcd_core.c +++ linux-3.13.0/drivers/hid/hid-picolcd_core.c @@ -350,6 +350,12 @@ if (!data) return 1; + if (size > 64) { + hid_warn(hdev, "invalid size value (%d) for picolcd raw event\n", + size); + return 0; + } + if (report->id == REPORT_KEY_STATE) { if (data->input_keys) ret = picolcd_raw_keypad(data, report, raw_data+1, size-1); --- linux-3.13.0.orig/drivers/hid/hid-rmi.c +++ linux-3.13.0/drivers/hid/hid-rmi.c @@ -0,0 +1,920 @@ +/* + * Copyright (c) 2013 Andrew Duggan + * Copyright (c) 2013 Synaptics Incorporated + * Copyright (c) 2014 Benjamin Tissoires + * Copyright (c) 2014 Red Hat, Inc + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "hid-ids.h" + +#define RMI_MOUSE_REPORT_ID 0x01 /* Mouse emulation Report */ +#define RMI_WRITE_REPORT_ID 0x09 /* Output Report */ +#define RMI_READ_ADDR_REPORT_ID 0x0a /* Output Report */ +#define RMI_READ_DATA_REPORT_ID 0x0b /* Input Report */ +#define RMI_ATTN_REPORT_ID 0x0c /* Input Report */ +#define RMI_SET_RMI_MODE_REPORT_ID 0x0f /* Feature Report */ + +/* flags */ +#define RMI_READ_REQUEST_PENDING BIT(0) +#define RMI_READ_DATA_PENDING BIT(1) +#define RMI_STARTED BIT(2) + +enum rmi_mode_type { + RMI_MODE_OFF = 0, + RMI_MODE_ATTN_REPORTS = 1, + RMI_MODE_NO_PACKED_ATTN_REPORTS = 2, +}; + +struct rmi_function { + unsigned page; /* page of the function */ + u16 query_base_addr; /* base address for queries */ + u16 command_base_addr; /* base address for commands */ + u16 control_base_addr; /* base address for controls */ + u16 data_base_addr; /* base address for datas */ + unsigned int interrupt_base; /* cross-function interrupt number + * (uniq in the device)*/ + unsigned int interrupt_count; /* number of interrupts */ + unsigned int report_size; /* size of a report */ + unsigned long irq_mask; /* mask of the interrupts + * (to be applied against ATTN IRQ) */ +}; + +/** + * struct rmi_data - stores information for hid communication + * + * @page_mutex: Locks current page to avoid changing pages in unexpected ways. + * @page: Keeps track of the current virtual page + * + * @wait: Used for waiting for read data + * + * @writeReport: output buffer when writing RMI registers + * @readReport: input buffer when reading RMI registers + * + * @input_report_size: size of an input report (advertised by HID) + * @output_report_size: size of an output report (advertised by HID) + * + * @flags: flags for the current device (started, reading, etc...) + * + * @f11: placeholder of internal RMI function F11 description + * @f30: placeholder of internal RMI function F30 description + * + * @max_fingers: maximum finger count reported by the device + * @max_x: maximum x value reported by the device + * @max_y: maximum y value reported by the device + * + * @gpio_led_count: count of GPIOs + LEDs reported by F30 + * @button_count: actual physical buttons count + * @button_mask: button mask used to decode GPIO ATTN reports + * @button_state_mask: pull state of the buttons + * + * @input: pointer to the kernel input device + * + * @reset_work: worker which will be called in case of a mouse report + * @hdev: pointer to the struct hid_device + */ +struct rmi_data { + struct mutex page_mutex; + int page; + + wait_queue_head_t wait; + + u8 *writeReport; + u8 *readReport; + + int input_report_size; + int output_report_size; + + unsigned long flags; + + struct rmi_function f11; + struct rmi_function f30; + + unsigned int max_fingers; + unsigned int max_x; + unsigned int max_y; + unsigned int x_size_mm; + unsigned int y_size_mm; + + unsigned int gpio_led_count; + unsigned int button_count; + unsigned long button_mask; + unsigned long button_state_mask; + + struct input_dev *input; + + struct work_struct reset_work; + struct hid_device *hdev; +}; + +#define RMI_PAGE(addr) (((addr) >> 8) & 0xff) + +static int rmi_write_report(struct hid_device *hdev, u8 *report, int len); + +/** + * rmi_set_page - Set RMI page + * @hdev: The pointer to the hid_device struct + * @page: The new page address. + * + * RMI devices have 16-bit addressing, but some of the physical + * implementations (like SMBus) only have 8-bit addressing. So RMI implements + * a page address at 0xff of every page so we can reliable page addresses + * every 256 registers. + * + * The page_mutex lock must be held when this function is entered. + * + * Returns zero on success, non-zero on failure. + */ +static int rmi_set_page(struct hid_device *hdev, u8 page) +{ + struct rmi_data *data = hid_get_drvdata(hdev); + int retval; + + data->writeReport[0] = RMI_WRITE_REPORT_ID; + data->writeReport[1] = 1; + data->writeReport[2] = 0xFF; + data->writeReport[4] = page; + + retval = rmi_write_report(hdev, data->writeReport, + data->output_report_size); + if (retval != data->output_report_size) { + dev_err(&hdev->dev, + "%s: set page failed: %d.", __func__, retval); + return retval; + } + + data->page = page; + return 0; +} + +static int rmi_set_mode(struct hid_device *hdev, u8 mode) +{ + int ret; + u8 txbuf[2] = {RMI_SET_RMI_MODE_REPORT_ID, mode}; + + ret = hid_hw_raw_request(hdev, RMI_SET_RMI_MODE_REPORT_ID, txbuf, + sizeof(txbuf), HID_FEATURE_REPORT, HID_REQ_SET_REPORT); + if (ret < 0) { + dev_err(&hdev->dev, "unable to set rmi mode to %d (%d)\n", mode, + ret); + return ret; + } + + return 0; +} + +static int rmi_write_report(struct hid_device *hdev, u8 *report, int len) +{ + int ret; + + ret = hid_hw_output_report(hdev, (void *)report, len); + if (ret < 0) { + dev_err(&hdev->dev, "failed to write hid report (%d)\n", ret); + return ret; + } + + return ret; +} + +static int rmi_read_block(struct hid_device *hdev, u16 addr, void *buf, + const int len) +{ + struct rmi_data *data = hid_get_drvdata(hdev); + int ret; + int bytes_read; + int bytes_needed; + int retries; + int read_input_count; + + mutex_lock(&data->page_mutex); + + if (RMI_PAGE(addr) != data->page) { + ret = rmi_set_page(hdev, RMI_PAGE(addr)); + if (ret < 0) + goto exit; + } + + for (retries = 5; retries > 0; retries--) { + data->writeReport[0] = RMI_READ_ADDR_REPORT_ID; + data->writeReport[1] = 0; /* old 1 byte read count */ + data->writeReport[2] = addr & 0xFF; + data->writeReport[3] = (addr >> 8) & 0xFF; + data->writeReport[4] = len & 0xFF; + data->writeReport[5] = (len >> 8) & 0xFF; + + set_bit(RMI_READ_REQUEST_PENDING, &data->flags); + + ret = rmi_write_report(hdev, data->writeReport, + data->output_report_size); + if (ret != data->output_report_size) { + clear_bit(RMI_READ_REQUEST_PENDING, &data->flags); + dev_err(&hdev->dev, + "failed to write request output report (%d)\n", + ret); + goto exit; + } + + bytes_read = 0; + bytes_needed = len; + while (bytes_read < len) { + if (!wait_event_timeout(data->wait, + test_bit(RMI_READ_DATA_PENDING, &data->flags), + msecs_to_jiffies(1000))) { + hid_warn(hdev, "%s: timeout elapsed\n", + __func__); + ret = -EAGAIN; + break; + } + + read_input_count = data->readReport[1]; + memcpy(buf + bytes_read, &data->readReport[2], + read_input_count < bytes_needed ? + read_input_count : bytes_needed); + + bytes_read += read_input_count; + bytes_needed -= read_input_count; + clear_bit(RMI_READ_DATA_PENDING, &data->flags); + } + + if (ret >= 0) { + ret = 0; + break; + } + } + +exit: + clear_bit(RMI_READ_REQUEST_PENDING, &data->flags); + mutex_unlock(&data->page_mutex); + return ret; +} + +static inline int rmi_read(struct hid_device *hdev, u16 addr, void *buf) +{ + return rmi_read_block(hdev, addr, buf, 1); +} + +static void rmi_f11_process_touch(struct rmi_data *hdata, int slot, + u8 finger_state, u8 *touch_data) +{ + int x, y, wx, wy; + int wide, major, minor; + int z; + + input_mt_slot(hdata->input, slot); + input_mt_report_slot_state(hdata->input, MT_TOOL_FINGER, + finger_state == 0x01); + if (finger_state == 0x01) { + x = (touch_data[0] << 4) | (touch_data[2] & 0x0F); + y = (touch_data[1] << 4) | (touch_data[2] >> 4); + wx = touch_data[3] & 0x0F; + wy = touch_data[3] >> 4; + wide = (wx > wy); + major = max(wx, wy); + minor = min(wx, wy); + z = touch_data[4]; + + /* y is inverted */ + y = hdata->max_y - y; + + input_event(hdata->input, EV_ABS, ABS_MT_POSITION_X, x); + input_event(hdata->input, EV_ABS, ABS_MT_POSITION_Y, y); + input_event(hdata->input, EV_ABS, ABS_MT_ORIENTATION, wide); + input_event(hdata->input, EV_ABS, ABS_MT_PRESSURE, z); + input_event(hdata->input, EV_ABS, ABS_MT_TOUCH_MAJOR, major); + input_event(hdata->input, EV_ABS, ABS_MT_TOUCH_MINOR, minor); + } +} + +static void rmi_reset_work(struct work_struct *work) +{ + struct rmi_data *hdata = container_of(work, struct rmi_data, + reset_work); + + /* switch the device to RMI if we receive a generic mouse report */ + rmi_set_mode(hdata->hdev, RMI_MODE_ATTN_REPORTS); +} + +static inline int rmi_schedule_reset(struct hid_device *hdev) +{ + struct rmi_data *hdata = hid_get_drvdata(hdev); + return schedule_work(&hdata->reset_work); +} + +static int rmi_f11_input_event(struct hid_device *hdev, u8 irq, u8 *data, + int size) +{ + struct rmi_data *hdata = hid_get_drvdata(hdev); + int offset; + int i; + + if (size < hdata->f11.report_size) + return 0; + + if (!(irq & hdata->f11.irq_mask)) + return 0; + + offset = (hdata->max_fingers >> 2) + 1; + for (i = 0; i < hdata->max_fingers; i++) { + int fs_byte_position = i >> 2; + int fs_bit_position = (i & 0x3) << 1; + int finger_state = (data[fs_byte_position] >> fs_bit_position) & + 0x03; + + rmi_f11_process_touch(hdata, i, finger_state, + &data[offset + 5 * i]); + } + input_mt_sync_frame(hdata->input); + input_sync(hdata->input); + return hdata->f11.report_size; +} + +static int rmi_f30_input_event(struct hid_device *hdev, u8 irq, u8 *data, + int size) +{ + struct rmi_data *hdata = hid_get_drvdata(hdev); + int i; + int button = 0; + bool value; + + if (!(irq & hdata->f30.irq_mask)) + return 0; + + for (i = 0; i < hdata->gpio_led_count; i++) { + if (test_bit(i, &hdata->button_mask)) { + value = (data[i / 8] >> (i & 0x07)) & BIT(0); + if (test_bit(i, &hdata->button_state_mask)) + value = !value; + input_event(hdata->input, EV_KEY, BTN_LEFT + button++, + value); + } + } + return hdata->f30.report_size; +} + +static int rmi_input_event(struct hid_device *hdev, u8 *data, int size) +{ + struct rmi_data *hdata = hid_get_drvdata(hdev); + unsigned long irq_mask = 0; + unsigned index = 2; + + if (!(test_bit(RMI_STARTED, &hdata->flags))) + return 0; + + irq_mask |= hdata->f11.irq_mask; + irq_mask |= hdata->f30.irq_mask; + + if (data[1] & ~irq_mask) + hid_warn(hdev, "unknown intr source:%02lx %s:%d\n", + data[1] & ~irq_mask, __FILE__, __LINE__); + + if (hdata->f11.interrupt_base < hdata->f30.interrupt_base) { + index += rmi_f11_input_event(hdev, data[1], &data[index], + size - index); + index += rmi_f30_input_event(hdev, data[1], &data[index], + size - index); + } else { + index += rmi_f30_input_event(hdev, data[1], &data[index], + size - index); + index += rmi_f11_input_event(hdev, data[1], &data[index], + size - index); + } + + return 1; +} + +static int rmi_read_data_event(struct hid_device *hdev, u8 *data, int size) +{ + struct rmi_data *hdata = hid_get_drvdata(hdev); + + if (!test_bit(RMI_READ_REQUEST_PENDING, &hdata->flags)) { + hid_err(hdev, "no read request pending\n"); + return 0; + } + + memcpy(hdata->readReport, data, size < hdata->input_report_size ? + size : hdata->input_report_size); + set_bit(RMI_READ_DATA_PENDING, &hdata->flags); + wake_up(&hdata->wait); + + return 1; +} + +static int rmi_raw_event(struct hid_device *hdev, + struct hid_report *report, u8 *data, int size) +{ + switch (data[0]) { + case RMI_READ_DATA_REPORT_ID: + return rmi_read_data_event(hdev, data, size); + case RMI_ATTN_REPORT_ID: + return rmi_input_event(hdev, data, size); + case RMI_MOUSE_REPORT_ID: + rmi_schedule_reset(hdev); + break; + } + + return 0; +} + +static int rmi_post_reset(struct hid_device *hdev) +{ + return rmi_set_mode(hdev, RMI_MODE_ATTN_REPORTS); +} + +static int rmi_post_resume(struct hid_device *hdev) +{ + return rmi_set_mode(hdev, RMI_MODE_ATTN_REPORTS); +} + +#define RMI4_MAX_PAGE 0xff +#define RMI4_PAGE_SIZE 0x0100 + +#define PDT_START_SCAN_LOCATION 0x00e9 +#define PDT_END_SCAN_LOCATION 0x0005 +#define RMI4_END_OF_PDT(id) ((id) == 0x00 || (id) == 0xff) + +struct pdt_entry { + u8 query_base_addr:8; + u8 command_base_addr:8; + u8 control_base_addr:8; + u8 data_base_addr:8; + u8 interrupt_source_count:3; + u8 bits3and4:2; + u8 function_version:2; + u8 bit7:1; + u8 function_number:8; +} __attribute__((__packed__)); + +static inline unsigned long rmi_gen_mask(unsigned irq_base, unsigned irq_count) +{ + return GENMASK(irq_count + irq_base - 1, irq_base); +} + +static void rmi_register_function(struct rmi_data *data, + struct pdt_entry *pdt_entry, int page, unsigned interrupt_count) +{ + struct rmi_function *f = NULL; + u16 page_base = page << 8; + + switch (pdt_entry->function_number) { + case 0x11: + f = &data->f11; + break; + case 0x30: + f = &data->f30; + break; + } + + if (f) { + f->page = page; + f->query_base_addr = page_base | pdt_entry->query_base_addr; + f->command_base_addr = page_base | pdt_entry->command_base_addr; + f->control_base_addr = page_base | pdt_entry->control_base_addr; + f->data_base_addr = page_base | pdt_entry->data_base_addr; + f->interrupt_base = interrupt_count; + f->interrupt_count = pdt_entry->interrupt_source_count; + f->irq_mask = rmi_gen_mask(f->interrupt_base, + f->interrupt_count); + } +} + +static int rmi_scan_pdt(struct hid_device *hdev) +{ + struct rmi_data *data = hid_get_drvdata(hdev); + struct pdt_entry entry; + int page; + bool page_has_function; + int i; + int retval; + int interrupt = 0; + u16 page_start, pdt_start , pdt_end; + + hid_info(hdev, "Scanning PDT...\n"); + + for (page = 0; (page <= RMI4_MAX_PAGE); page++) { + page_start = RMI4_PAGE_SIZE * page; + pdt_start = page_start + PDT_START_SCAN_LOCATION; + pdt_end = page_start + PDT_END_SCAN_LOCATION; + + page_has_function = false; + for (i = pdt_start; i >= pdt_end; i -= sizeof(entry)) { + retval = rmi_read_block(hdev, i, &entry, sizeof(entry)); + if (retval) { + hid_err(hdev, + "Read of PDT entry at %#06x failed.\n", + i); + goto error_exit; + } + + if (RMI4_END_OF_PDT(entry.function_number)) + break; + + page_has_function = true; + + hid_info(hdev, "Found F%02X on page %#04x\n", + entry.function_number, page); + + rmi_register_function(data, &entry, page, interrupt); + interrupt += entry.interrupt_source_count; + } + + if (!page_has_function) + break; + } + + hid_info(hdev, "%s: Done with PDT scan.\n", __func__); + retval = 0; + +error_exit: + return retval; +} + +static int rmi_populate_f11(struct hid_device *hdev) +{ + struct rmi_data *data = hid_get_drvdata(hdev); + u8 buf[20]; + int ret; + bool has_query9; + bool has_query10; + bool has_query11; + bool has_query12; + bool has_physical_props; + unsigned x_size, y_size; + u16 query12_offset; + + if (!data->f11.query_base_addr) { + hid_err(hdev, "No 2D sensor found, giving up.\n"); + return -ENODEV; + } + + /* query 0 contains some useful information */ + ret = rmi_read(hdev, data->f11.query_base_addr, buf); + if (ret) { + hid_err(hdev, "can not get query 0: %d.\n", ret); + return ret; + } + has_query9 = !!(buf[0] & BIT(3)); + has_query11 = !!(buf[0] & BIT(4)); + has_query12 = !!(buf[0] & BIT(5)); + + /* query 1 to get the max number of fingers */ + ret = rmi_read(hdev, data->f11.query_base_addr + 1, buf); + if (ret) { + hid_err(hdev, "can not get NumberOfFingers: %d.\n", ret); + return ret; + } + data->max_fingers = (buf[0] & 0x07) + 1; + if (data->max_fingers > 5) + data->max_fingers = 10; + + data->f11.report_size = data->max_fingers * 5 + + DIV_ROUND_UP(data->max_fingers, 4); + + if (!(buf[0] & BIT(4))) { + hid_err(hdev, "No absolute events, giving up.\n"); + return -ENODEV; + } + + /* query 8 to find out if query 10 exists */ + ret = rmi_read(hdev, data->f11.query_base_addr + 8, buf); + if (ret) { + hid_err(hdev, "can not read gesture information: %d.\n", ret); + return ret; + } + has_query10 = !!(buf[0] & BIT(2)); + + /* + * At least 8 queries are guaranteed to be present in F11 + * +1 for query12. + */ + query12_offset = 9; + + if (has_query9) + ++query12_offset; + + if (has_query10) + ++query12_offset; + + if (has_query11) + ++query12_offset; + + /* query 12 to know if the physical properties are reported */ + if (has_query12) { + ret = rmi_read(hdev, data->f11.query_base_addr + + query12_offset, buf); + if (ret) { + hid_err(hdev, "can not get query 12: %d.\n", ret); + return ret; + } + has_physical_props = !!(buf[0] & BIT(5)); + + if (has_physical_props) { + ret = rmi_read_block(hdev, + data->f11.query_base_addr + + query12_offset + 1, buf, 4); + if (ret) { + hid_err(hdev, "can not read query 15-18: %d.\n", + ret); + return ret; + } + + x_size = buf[0] | (buf[1] << 8); + y_size = buf[2] | (buf[3] << 8); + + data->x_size_mm = DIV_ROUND_CLOSEST(x_size, 10); + data->y_size_mm = DIV_ROUND_CLOSEST(y_size, 10); + + hid_info(hdev, "%s: size in mm: %d x %d\n", + __func__, data->x_size_mm, data->y_size_mm); + } + } + + /* + * retrieve the ctrl registers + * the ctrl register has a size of 20 but a fw bug split it into 16 + 4, + * and there is no way to know if the first 20 bytes are here or not. + * We use only the first 10 bytes, so get only them. + */ + ret = rmi_read_block(hdev, data->f11.control_base_addr, buf, 10); + if (ret) { + hid_err(hdev, "can not read ctrl block of size 10: %d.\n", ret); + return ret; + } + + data->max_x = buf[6] | (buf[7] << 8); + data->max_y = buf[8] | (buf[9] << 8); + + return 0; +} + +static int rmi_populate_f30(struct hid_device *hdev) +{ + struct rmi_data *data = hid_get_drvdata(hdev); + u8 buf[20]; + int ret; + bool has_gpio, has_led; + unsigned bytes_per_ctrl; + u8 ctrl2_addr; + int ctrl2_3_length; + int i; + + /* function F30 is for physical buttons */ + if (!data->f30.query_base_addr) { + hid_err(hdev, "No GPIO/LEDs found, giving up.\n"); + return -ENODEV; + } + + ret = rmi_read_block(hdev, data->f30.query_base_addr, buf, 2); + if (ret) { + hid_err(hdev, "can not get F30 query registers: %d.\n", ret); + return ret; + } + + has_gpio = !!(buf[0] & BIT(3)); + has_led = !!(buf[0] & BIT(2)); + data->gpio_led_count = buf[1] & 0x1f; + + /* retrieve ctrl 2 & 3 registers */ + bytes_per_ctrl = (data->gpio_led_count + 7) / 8; + /* Ctrl0 is present only if both has_gpio and has_led are set*/ + ctrl2_addr = (has_gpio && has_led) ? bytes_per_ctrl : 0; + /* Ctrl1 is always be present */ + ctrl2_addr += bytes_per_ctrl; + ctrl2_3_length = 2 * bytes_per_ctrl; + + data->f30.report_size = bytes_per_ctrl; + + ret = rmi_read_block(hdev, data->f30.control_base_addr + ctrl2_addr, + buf, ctrl2_3_length); + if (ret) { + hid_err(hdev, "can not read ctrl 2&3 block of size %d: %d.\n", + ctrl2_3_length, ret); + return ret; + } + + for (i = 0; i < data->gpio_led_count; i++) { + int byte_position = i >> 3; + int bit_position = i & 0x07; + u8 dir_byte = buf[byte_position]; + u8 data_byte = buf[byte_position + bytes_per_ctrl]; + bool dir = (dir_byte >> bit_position) & BIT(0); + bool dat = (data_byte >> bit_position) & BIT(0); + + if (dir == 0) { + /* input mode */ + if (dat) { + /* actual buttons have pull up resistor */ + data->button_count++; + set_bit(i, &data->button_mask); + set_bit(i, &data->button_state_mask); + } + } + + } + + return 0; +} + +static int rmi_populate(struct hid_device *hdev) +{ + int ret; + + ret = rmi_scan_pdt(hdev); + if (ret) { + hid_err(hdev, "PDT scan failed with code %d.\n", ret); + return ret; + } + + ret = rmi_populate_f11(hdev); + if (ret) { + hid_err(hdev, "Error while initializing F11 (%d).\n", ret); + return ret; + } + + ret = rmi_populate_f30(hdev); + if (ret) + hid_warn(hdev, "Error while initializing F30 (%d).\n", ret); + + return 0; +} + +static void rmi_input_configured(struct hid_device *hdev, struct hid_input *hi) +{ + struct rmi_data *data = hid_get_drvdata(hdev); + struct input_dev *input = hi->input; + int ret; + int res_x, res_y, i; + + data->input = input; + + hid_dbg(hdev, "Opening low level driver\n"); + ret = hid_hw_open(hdev); + if (ret) + return; + + /* Allow incoming hid reports */ + hid_device_io_start(hdev); + + ret = rmi_set_mode(hdev, RMI_MODE_ATTN_REPORTS); + if (ret < 0) { + dev_err(&hdev->dev, "failed to set rmi mode\n"); + goto exit; + } + + ret = rmi_set_page(hdev, 0); + if (ret < 0) { + dev_err(&hdev->dev, "failed to set page select to 0.\n"); + goto exit; + } + + ret = rmi_populate(hdev); + if (ret) + goto exit; + + __set_bit(EV_ABS, input->evbit); + input_set_abs_params(input, ABS_MT_POSITION_X, 1, data->max_x, 0, 0); + input_set_abs_params(input, ABS_MT_POSITION_Y, 1, data->max_y, 0, 0); + + if (data->x_size_mm && data->y_size_mm) { + res_x = (data->max_x - 1) / data->x_size_mm; + res_y = (data->max_y - 1) / data->y_size_mm; + + input_abs_set_res(input, ABS_MT_POSITION_X, res_x); + input_abs_set_res(input, ABS_MT_POSITION_Y, res_y); + } + + input_set_abs_params(input, ABS_MT_ORIENTATION, 0, 1, 0, 0); + input_set_abs_params(input, ABS_MT_PRESSURE, 0, 0xff, 0, 0); + input_set_abs_params(input, ABS_MT_TOUCH_MAJOR, 0, 0x0f, 0, 0); + input_set_abs_params(input, ABS_MT_TOUCH_MINOR, 0, 0x0f, 0, 0); + + input_mt_init_slots(input, data->max_fingers, INPUT_MT_POINTER); + + if (data->button_count) { + __set_bit(EV_KEY, input->evbit); + for (i = 0; i < data->button_count; i++) + __set_bit(BTN_LEFT + i, input->keybit); + + if (data->button_count == 1) + __set_bit(INPUT_PROP_BUTTONPAD, input->propbit); + } + + set_bit(RMI_STARTED, &data->flags); + +exit: + hid_device_io_stop(hdev); + hid_hw_close(hdev); +} + +static int rmi_input_mapping(struct hid_device *hdev, + struct hid_input *hi, struct hid_field *field, + struct hid_usage *usage, unsigned long **bit, int *max) +{ + /* we want to make HID ignore the advertised HID collection */ + return -1; +} + +static int rmi_probe(struct hid_device *hdev, const struct hid_device_id *id) +{ + struct rmi_data *data = NULL; + int ret; + size_t alloc_size; + + data = devm_kzalloc(&hdev->dev, sizeof(struct rmi_data), GFP_KERNEL); + if (!data) + return -ENOMEM; + + INIT_WORK(&data->reset_work, rmi_reset_work); + data->hdev = hdev; + + hid_set_drvdata(hdev, data); + + hdev->quirks |= HID_QUIRK_NO_INIT_REPORTS; + + ret = hid_parse(hdev); + if (ret) { + hid_err(hdev, "parse failed\n"); + return ret; + } + + data->input_report_size = (hdev->report_enum[HID_INPUT_REPORT] + .report_id_hash[RMI_ATTN_REPORT_ID]->size >> 3) + + 1 /* report id */; + data->output_report_size = (hdev->report_enum[HID_OUTPUT_REPORT] + .report_id_hash[RMI_WRITE_REPORT_ID]->size >> 3) + + 1 /* report id */; + + alloc_size = data->output_report_size + data->input_report_size; + + data->writeReport = devm_kzalloc(&hdev->dev, alloc_size, GFP_KERNEL); + if (!data->writeReport) { + ret = -ENOMEM; + return ret; + } + + data->readReport = data->writeReport + data->output_report_size; + + init_waitqueue_head(&data->wait); + + mutex_init(&data->page_mutex); + + ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT); + if (ret) { + hid_err(hdev, "hw start failed\n"); + return ret; + } + + if (!test_bit(RMI_STARTED, &data->flags)) { + hid_hw_stop(hdev); + return -EIO; + } + + return 0; +} + +static void rmi_remove(struct hid_device *hdev) +{ + struct rmi_data *hdata = hid_get_drvdata(hdev); + + clear_bit(RMI_STARTED, &hdata->flags); + + hid_hw_stop(hdev); +} + +static const struct hid_device_id rmi_id[] = { + { HID_DEVICE(HID_BUS_ANY, HID_GROUP_RMI, HID_ANY_ID, HID_ANY_ID) }, + { } +}; +MODULE_DEVICE_TABLE(hid, rmi_id); + +static struct hid_driver rmi_driver = { + .name = "hid-rmi", + .id_table = rmi_id, + .probe = rmi_probe, + .remove = rmi_remove, + .raw_event = rmi_raw_event, + .input_mapping = rmi_input_mapping, + .input_configured = rmi_input_configured, +#ifdef CONFIG_PM + .resume = rmi_post_resume, + .reset_resume = rmi_post_reset, +#endif +}; + +module_hid_driver(rmi_driver); + +MODULE_AUTHOR("Andrew Duggan "); +MODULE_DESCRIPTION("RMI HID driver"); +MODULE_LICENSE("GPL"); --- linux-3.13.0.orig/drivers/hid/hid-sony.c +++ linux-3.13.0/drivers/hid/hid-sony.c @@ -432,7 +432,8 @@ if (!buf) return -ENOMEM; - ret = hdev->hid_get_raw_report(hdev, 0xf2, buf, 17, HID_FEATURE_REPORT); + ret = hid_hw_raw_request(hdev, 0xf2, buf, 17, HID_FEATURE_REPORT, + HID_REQ_GET_REPORT); if (ret < 0) hid_err(hdev, "can't set operational mode\n"); --- linux-3.13.0.orig/drivers/hid/hid-sunplus.c +++ linux-3.13.0/drivers/hid/hid-sunplus.c @@ -24,7 +24,7 @@ static __u8 *sp_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int *rsize) { - if (*rsize >= 107 && rdesc[104] == 0x26 && rdesc[105] == 0x80 && + if (*rsize >= 112 && rdesc[104] == 0x26 && rdesc[105] == 0x80 && rdesc[106] == 0x03) { hid_info(hdev, "fixing up Sunplus Wireless Desktop report descriptor\n"); rdesc[105] = rdesc[110] = 0x03; --- linux-3.13.0.orig/drivers/hid/hidraw.c +++ linux-3.13.0/drivers/hid/hidraw.c @@ -6,7 +6,7 @@ * to work on raw hid events as they want to, and avoids a need to * use a transport-specific userspace libhid/libusb libraries. * - * Copyright (c) 2007 Jiri Kosina + * Copyright (c) 2007-2014 Jiri Kosina */ /* @@ -104,8 +104,11 @@ return ret; } -/* The first byte is expected to be a report number. - * This function is to be called with the minors_lock mutex held */ +/* + * The first byte of the report buffer is expected to be a report number. + * + * This function is to be called with the minors_lock mutex held. + */ static ssize_t hidraw_send_report(struct file *file, const char __user *buffer, size_t count, unsigned char report_type) { unsigned int minor = iminor(file_inode(file)); @@ -157,7 +160,6 @@ return ret; } -/* the first byte is expected to be a report number */ static ssize_t hidraw_write(struct file *file, const char __user *buffer, size_t count, loff_t *ppos) { ssize_t ret; @@ -168,12 +170,15 @@ } -/* This function performs a Get_Report transfer over the control endpoint +/* + * This function performs a Get_Report transfer over the control endpoint * per section 7.2.1 of the HID specification, version 1.1. The first byte * of buffer is the report number to request, or 0x0 if the defice does not * use numbered reports. The report_type parameter can be HID_FEATURE_REPORT - * or HID_INPUT_REPORT. This function is to be called with the minors_lock - * mutex held. */ + * or HID_INPUT_REPORT. + * + * This function is to be called with the minors_lock mutex held. + */ static ssize_t hidraw_get_report(struct file *file, char __user *buffer, size_t count, unsigned char report_type) { unsigned int minor = iminor(file_inode(file)); @@ -184,7 +189,7 @@ dev = hidraw_table[minor]->hid; - if (!dev->hid_get_raw_report) { + if (!dev->ll_driver->raw_request) { ret = -ENODEV; goto out; } @@ -209,14 +214,17 @@ goto out; } - /* Read the first byte from the user. This is the report number, - * which is passed to dev->hid_get_raw_report(). */ + /* + * Read the first byte from the user. This is the report number, + * which is passed to hid_hw_raw_request(). + */ if (copy_from_user(&report_number, buffer, 1)) { ret = -EFAULT; goto out_free; } - ret = dev->hid_get_raw_report(dev, report_number, buf, count, report_type); + ret = hid_hw_raw_request(dev, report_number, buf, count, report_type, + HID_REQ_GET_REPORT); if (ret < 0) goto out_free; @@ -313,13 +321,13 @@ hid_hw_close(hidraw->hid); wake_up_interruptible(&hidraw->wait); } + device_destroy(hidraw_class, + MKDEV(hidraw_major, hidraw->minor)); } else { --hidraw->open; } if (!hidraw->open) { if (!hidraw->exist) { - device_destroy(hidraw_class, - MKDEV(hidraw_major, hidraw->minor)); hidraw_table[hidraw->minor] = NULL; kfree(hidraw); } else { @@ -498,7 +506,7 @@ int minor, result; struct hidraw *dev; - /* we accept any HID device, no matter the applications */ + /* we accept any HID device, all applications */ dev = kzalloc(sizeof(struct hidraw), GFP_KERNEL); if (!dev) --- linux-3.13.0.orig/drivers/hid/i2c-hid/i2c-hid.c +++ linux-3.13.0/drivers/hid/i2c-hid/i2c-hid.c @@ -136,6 +136,7 @@ * descriptor. */ unsigned int bufsize; /* i2c buffer size */ char *inbuf; /* Input buffer */ + char *rawbuf; /* Raw Input buffer */ char *cmdbuf; /* Command buffer */ char *argsbuf; /* Command arguments buffer */ @@ -256,12 +257,21 @@ return 0; } -static int i2c_hid_set_report(struct i2c_client *client, u8 reportType, - u8 reportID, unsigned char *buf, size_t data_len) +/** + * i2c_hid_set_or_send_report: forward an incoming report to the device + * @client: the i2c_client of the device + * @reportType: 0x03 for HID_FEATURE_REPORT ; 0x02 for HID_OUTPUT_REPORT + * @reportID: the report ID + * @buf: the actual data to transfer, without the report ID + * @len: size of buf + * @use_data: true: use SET_REPORT HID command, false: send plain OUTPUT report + */ +static int i2c_hid_set_or_send_report(struct i2c_client *client, u8 reportType, + u8 reportID, unsigned char *buf, size_t data_len, bool use_data) { struct i2c_hid *ihid = i2c_get_clientdata(client); u8 *args = ihid->argsbuf; - const struct i2c_hid_cmd * hidcmd = &hid_set_report_cmd; + const struct i2c_hid_cmd *hidcmd; int ret; u16 dataRegister = le16_to_cpu(ihid->hdesc.wDataRegister); u16 outputRegister = le16_to_cpu(ihid->hdesc.wOutputRegister); @@ -278,6 +288,9 @@ i2c_hid_dbg(ihid, "%s\n", __func__); + if (!use_data && maxOutputLength == 0) + return -ENOSYS; + if (reportID >= 0x0F) { args[index++] = reportID; reportID = 0x0F; @@ -287,9 +300,10 @@ * use the data register for feature reports or if the device does not * support the output register */ - if (reportType == 0x03 || maxOutputLength == 0) { + if (use_data) { args[index++] = dataRegister & 0xFF; args[index++] = dataRegister >> 8; + hidcmd = &hid_set_report_cmd; } else { args[index++] = outputRegister & 0xFF; args[index++] = outputRegister >> 8; @@ -355,7 +369,7 @@ static void i2c_hid_get_input(struct i2c_hid *ihid) { int ret, ret_size; - int size = le16_to_cpu(ihid->hdesc.wMaxInputLength); + int size = ihid->bufsize; ret = i2c_master_recv(ihid->client, ihid->inbuf, size); if (ret != size) { @@ -482,9 +496,11 @@ static void i2c_hid_free_buffers(struct i2c_hid *ihid) { kfree(ihid->inbuf); + kfree(ihid->rawbuf); kfree(ihid->argsbuf); kfree(ihid->cmdbuf); ihid->inbuf = NULL; + ihid->rawbuf = NULL; ihid->cmdbuf = NULL; ihid->argsbuf = NULL; ihid->bufsize = 0; @@ -500,10 +516,11 @@ report_size; /* report */ ihid->inbuf = kzalloc(report_size, GFP_KERNEL); + ihid->rawbuf = kzalloc(report_size, GFP_KERNEL); ihid->argsbuf = kzalloc(args_len, GFP_KERNEL); ihid->cmdbuf = kzalloc(sizeof(union command) + args_len, GFP_KERNEL); - if (!ihid->inbuf || !ihid->argsbuf || !ihid->cmdbuf) { + if (!ihid->inbuf || !ihid->rawbuf || !ihid->argsbuf || !ihid->cmdbuf) { i2c_hid_free_buffers(ihid); return -ENOMEM; } @@ -530,12 +547,12 @@ ret = i2c_hid_get_report(client, report_type == HID_FEATURE_REPORT ? 0x03 : 0x01, - report_number, ihid->inbuf, ask_count); + report_number, ihid->rawbuf, ask_count); if (ret < 0) return ret; - ret_count = ihid->inbuf[0] | (ihid->inbuf[1] << 8); + ret_count = ihid->rawbuf[0] | (ihid->rawbuf[1] << 8); if (ret_count <= 2) return 0; @@ -544,13 +561,13 @@ /* The query buffer contains the size, dropping it in the reply */ count = min(count, ret_count - 2); - memcpy(buf, ihid->inbuf + 2, count); + memcpy(buf, ihid->rawbuf + 2, count); return count; } static int i2c_hid_output_raw_report(struct hid_device *hid, __u8 *buf, - size_t count, unsigned char report_type) + size_t count, unsigned char report_type, bool use_data) { struct i2c_client *client = hid->driver_data; int report_id = buf[0]; @@ -564,9 +581,9 @@ count--; } - ret = i2c_hid_set_report(client, + ret = i2c_hid_set_or_send_report(client, report_type == HID_FEATURE_REPORT ? 0x03 : 0x02, - report_id, buf, count); + report_id, buf, count, use_data); if (report_id && ret >= 0) ret++; /* add report_id to the number of transfered bytes */ @@ -574,6 +591,42 @@ return ret; } +static int __i2c_hid_output_raw_report(struct hid_device *hid, __u8 *buf, + size_t count, unsigned char report_type) +{ + struct i2c_client *client = hid->driver_data; + struct i2c_hid *ihid = i2c_get_clientdata(client); + bool data = true; /* SET_REPORT */ + + if (report_type == HID_OUTPUT_REPORT) + data = le16_to_cpu(ihid->hdesc.wMaxOutputLength) == 0; + + return i2c_hid_output_raw_report(hid, buf, count, report_type, data); +} + +static int i2c_hid_output_report(struct hid_device *hid, __u8 *buf, + size_t count) +{ + return i2c_hid_output_raw_report(hid, buf, count, HID_OUTPUT_REPORT, + false); +} + +static int i2c_hid_raw_request(struct hid_device *hid, unsigned char reportnum, + __u8 *buf, size_t len, unsigned char rtype, + int reqtype) +{ + switch (reqtype) { + case HID_REQ_GET_REPORT: + return i2c_hid_get_raw_report(hid, reportnum, buf, len, rtype); + case HID_REQ_SET_REPORT: + if (buf[0] != reportnum) + return -EINVAL; + return i2c_hid_output_raw_report(hid, buf, len, rtype, true); + default: + return -EIO; + } +} + static void i2c_hid_request(struct hid_device *hid, struct hid_report *rep, int reqtype) { @@ -597,7 +650,7 @@ break; case HID_REQ_SET_REPORT: hid_output_report(rep, buf); - i2c_hid_output_raw_report(hid, buf, len, rep->type); + i2c_hid_output_raw_report(hid, buf, len, rep->type, true); break; } @@ -761,6 +814,8 @@ .close = i2c_hid_close, .power = i2c_hid_power, .request = i2c_hid_request, + .output_report = i2c_hid_output_report, + .raw_request = i2c_hid_raw_request, }; static int i2c_hid_init_irq(struct i2c_client *client) @@ -1005,8 +1060,7 @@ hid->driver_data = client; hid->ll_driver = &i2c_hid_ll_driver; - hid->hid_get_raw_report = i2c_hid_get_raw_report; - hid->hid_output_raw_report = i2c_hid_output_raw_report; + hid->hid_output_raw_report = __i2c_hid_output_raw_report; hid->dev.parent = &client->dev; ACPI_COMPANION_SET(&hid->dev, ACPI_COMPANION(&client->dev)); hid->bus = BUS_I2C; --- linux-3.13.0.orig/drivers/hid/uhid.c +++ linux-3.13.0/drivers/hid/uhid.c @@ -377,7 +377,6 @@ hid->uniq[63] = 0; hid->ll_driver = &uhid_hid_driver; - hid->hid_get_raw_report = uhid_hid_get_raw; hid->hid_output_raw_report = uhid_hid_output_raw; hid->bus = ev->u.create.bus; hid->vendor = ev->u.create.vendor; --- linux-3.13.0.orig/drivers/hid/usbhid/hid-core.c +++ linux-3.13.0/drivers/hid/usbhid/hid-core.c @@ -884,6 +884,38 @@ return ret; } +static int usbhid_set_raw_report(struct hid_device *hid, unsigned int reportnum, + __u8 *buf, size_t count, unsigned char rtype) +{ + struct usbhid_device *usbhid = hid->driver_data; + struct usb_device *dev = hid_to_usb_dev(hid); + struct usb_interface *intf = usbhid->intf; + struct usb_host_interface *interface = intf->cur_altsetting; + int ret, skipped_report_id = 0; + + /* Byte 0 is the report number. Report data starts at byte 1.*/ + buf[0] = reportnum; + if (buf[0] == 0x0) { + /* Don't send the Report ID */ + buf++; + count--; + skipped_report_id = 1; + } + + ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), + HID_REQ_SET_REPORT, + USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE, + ((rtype + 1) << 8) | reportnum, + interface->desc.bInterfaceNumber, buf, count, + USB_CTRL_SET_TIMEOUT); + /* count also the report id, if this was a numbered report. */ + if (ret > 0 && skipped_report_id) + ret++; + + return ret; +} + + static int usbhid_output_raw_report(struct hid_device *hid, __u8 *buf, size_t count, unsigned char report_type) { @@ -936,6 +968,36 @@ return ret; } +static int usbhid_output_report(struct hid_device *hid, __u8 *buf, size_t count) +{ + struct usbhid_device *usbhid = hid->driver_data; + struct usb_device *dev = hid_to_usb_dev(hid); + int actual_length, skipped_report_id = 0, ret; + + if (!usbhid->urbout) + return -EIO; + + if (buf[0] == 0x0) { + /* Don't send the Report ID */ + buf++; + count--; + skipped_report_id = 1; + } + + ret = usb_interrupt_msg(dev, usbhid->urbout->pipe, + buf, count, &actual_length, + USB_CTRL_SET_TIMEOUT); + /* return the number of bytes transferred */ + if (ret == 0) { + ret = actual_length; + /* count also the report id */ + if (skipped_report_id) + ret++; + } + + return ret; +} + static void usbhid_restart_queues(struct usbhid_device *usbhid) { if (usbhid->urbout && !test_bit(HID_OUT_RUNNING, &usbhid->iofl)) @@ -1200,6 +1262,20 @@ } } +static int usbhid_raw_request(struct hid_device *hid, unsigned char reportnum, + __u8 *buf, size_t len, unsigned char rtype, + int reqtype) +{ + switch (reqtype) { + case HID_REQ_GET_REPORT: + return usbhid_get_raw_report(hid, reportnum, buf, len, rtype); + case HID_REQ_SET_REPORT: + return usbhid_set_raw_report(hid, reportnum, buf, len, rtype); + default: + return -EIO; + } +} + static int usbhid_idle(struct hid_device *hid, int report, int idle, int reqtype) { @@ -1223,6 +1299,8 @@ .power = usbhid_power, .request = usbhid_request, .wait = usbhid_wait_io, + .raw_request = usbhid_raw_request, + .output_report = usbhid_output_report, .idle = usbhid_idle, }; @@ -1253,7 +1331,6 @@ usb_set_intfdata(intf, hid); hid->ll_driver = &usb_hid_driver; - hid->hid_get_raw_report = usbhid_get_raw_report; hid->hid_output_raw_report = usbhid_output_raw_report; hid->ff_init = hid_pidff_init; #ifdef CONFIG_USB_HIDDEV --- linux-3.13.0.orig/drivers/hid/usbhid/hid-quirks.c +++ linux-3.13.0/drivers/hid/usbhid/hid-quirks.c @@ -49,6 +49,7 @@ { USB_VENDOR_ID_EMS, USB_DEVICE_ID_EMS_TRIO_LINKER_PLUS_II, HID_QUIRK_MULTI_INPUT }, { USB_VENDOR_ID_ETURBOTOUCH, USB_DEVICE_ID_ETURBOTOUCH, HID_QUIRK_MULTI_INPUT }, + { USB_VENDOR_ID_ETURBOTOUCH, USB_DEVICE_ID_ETURBOTOUCH_2968, HID_QUIRK_MULTI_INPUT }, { USB_VENDOR_ID_GREENASIA, USB_DEVICE_ID_GREENASIA_DUAL_USB_JOYPAD, HID_QUIRK_MULTI_INPUT }, { USB_VENDOR_ID_PANTHERLORD, USB_DEVICE_ID_PANTHERLORD_TWIN_USB_JOYSTICK, HID_QUIRK_MULTI_INPUT | HID_QUIRK_SKIP_OUTPUT_REPORTS }, { USB_VENDOR_ID_PLAYDOTCOM, USB_DEVICE_ID_PLAYDOTCOM_EMS_USBII, HID_QUIRK_MULTI_INPUT }, @@ -115,6 +116,7 @@ { USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_LTS1, HID_QUIRK_NO_INIT_REPORTS }, { USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_LTS2, HID_QUIRK_NO_INIT_REPORTS }, { USB_VENDOR_ID_SIS, USB_DEVICE_ID_SIS_TS, HID_QUIRK_NO_INIT_REPORTS }, + { USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_TP_V103, HID_QUIRK_NO_INIT_REPORTS }, { 0, 0 } }; --- linux-3.13.0.orig/drivers/hv/Makefile +++ linux-3.13.0/drivers/hv/Makefile @@ -5,4 +5,4 @@ hv_vmbus-y := vmbus_drv.o \ hv.o connection.o channel.o \ channel_mgmt.o ring_buffer.o -hv_utils-y := hv_util.o hv_kvp.o hv_snapshot.o +hv_utils-y := hv_util.o hv_kvp.o hv_snapshot.o hv_fcopy.o --- linux-3.13.0.orig/drivers/hv/channel.c +++ linux-3.13.0/drivers/hv/channel.c @@ -164,8 +164,10 @@ ret = vmbus_post_msg(open_msg, sizeof(struct vmbus_channel_open_channel)); - if (ret != 0) + if (ret != 0) { + err = ret; goto error1; + } t = wait_for_completion_timeout(&open_info->waitevent, 5*HZ); if (t == 0) { @@ -209,7 +211,6 @@ { int i; int pagecount; - unsigned long long pfn; struct vmbus_channel_gpadl_header *gpadl_header; struct vmbus_channel_gpadl_body *gpadl_body; struct vmbus_channel_msginfo *msgheader; @@ -219,7 +220,6 @@ int pfnsum, pfncount, pfnleft, pfncurr, pfnsize; pagecount = size >> PAGE_SHIFT; - pfn = virt_to_phys(kbuffer) >> PAGE_SHIFT; /* do we need a gpadl body msg */ pfnsize = MAX_SIZE_CHANNEL_MESSAGE - @@ -248,7 +248,8 @@ gpadl_header->range[0].byte_offset = 0; gpadl_header->range[0].byte_count = size; for (i = 0; i < pfncount; i++) - gpadl_header->range[0].pfn_array[i] = pfn+i; + gpadl_header->range[0].pfn_array[i] = slow_virt_to_phys( + kbuffer + PAGE_SIZE * i) >> PAGE_SHIFT; *msginfo = msgheader; *messagecount = 1; @@ -301,7 +302,9 @@ * so the hypervisor gurantees that this is ok. */ for (i = 0; i < pfncurr; i++) - gpadl_body->pfn[i] = pfn + pfnsum + i; + gpadl_body->pfn[i] = slow_virt_to_phys( + kbuffer + PAGE_SIZE * (pfnsum + i)) >> + PAGE_SHIFT; /* add to msg header */ list_add_tail(&msgbody->msglistentry, @@ -327,7 +330,8 @@ gpadl_header->range[0].byte_offset = 0; gpadl_header->range[0].byte_count = size; for (i = 0; i < pagecount; i++) - gpadl_header->range[0].pfn_array[i] = pfn+i; + gpadl_header->range[0].pfn_array[i] = slow_virt_to_phys( + kbuffer + PAGE_SIZE * i) >> PAGE_SHIFT; *msginfo = msgheader; *messagecount = 1; @@ -344,7 +348,7 @@ * vmbus_establish_gpadl - Estabish a GPADL for the specified buffer * * @channel: a channel - * @kbuffer: from kmalloc + * @kbuffer: from kmalloc or vmalloc * @size: page-size multiple * @gpadl_handle: some funky thing */ @@ -360,7 +364,6 @@ u32 next_gpadl_handle; unsigned long flags; int ret = 0; - int t; next_gpadl_handle = atomic_read(&vmbus_connection.next_gpadl_handle); atomic_inc(&vmbus_connection.next_gpadl_handle); @@ -407,9 +410,7 @@ } } - t = wait_for_completion_timeout(&msginfo->waitevent, 5*HZ); - BUG_ON(t == 0); - + wait_for_completion(&msginfo->waitevent); /* At this point, we received the gpadl created msg */ *gpadl_handle = gpadlmsg->gpadl; @@ -432,7 +433,7 @@ struct vmbus_channel_gpadl_teardown *msg; struct vmbus_channel_msginfo *info; unsigned long flags; - int ret, t; + int ret; info = kmalloc(sizeof(*info) + sizeof(struct vmbus_channel_gpadl_teardown), GFP_KERNEL); @@ -454,11 +455,12 @@ ret = vmbus_post_msg(msg, sizeof(struct vmbus_channel_gpadl_teardown)); - BUG_ON(ret != 0); - t = wait_for_completion_timeout(&info->waitevent, 5*HZ); - BUG_ON(t == 0); + if (ret) + goto post_msg_err; + + wait_for_completion(&info->waitevent); - /* Received a torndown response */ +post_msg_err: spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags); list_del(&info->msglistentry); spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock, flags); @@ -468,7 +470,7 @@ } EXPORT_SYMBOL_GPL(vmbus_teardown_gpadl); -static void vmbus_close_internal(struct vmbus_channel *channel) +static int vmbus_close_internal(struct vmbus_channel *channel) { struct vmbus_channel_close_channel *msg; int ret; @@ -490,11 +492,28 @@ ret = vmbus_post_msg(msg, sizeof(struct vmbus_channel_close_channel)); - BUG_ON(ret != 0); + if (ret) { + pr_err("Close failed: close post msg return is %d\n", ret); + /* + * If we failed to post the close msg, + * it is perhaps better to leak memory. + */ + return ret; + } + /* Tear down the gpadl for the channel's ring buffer */ - if (channel->ringbuffer_gpadlhandle) - vmbus_teardown_gpadl(channel, - channel->ringbuffer_gpadlhandle); + if (channel->ringbuffer_gpadlhandle) { + ret = vmbus_teardown_gpadl(channel, + channel->ringbuffer_gpadlhandle); + if (ret) { + pr_err("Close failed: teardown gpadl return %d\n", ret); + /* + * If we failed to teardown gpadl, + * it is perhaps better to leak memory. + */ + return ret; + } + } /* Cleanup the ring buffers for this channel */ hv_ringbuffer_cleanup(&channel->outbound); @@ -503,7 +522,7 @@ free_pages((unsigned long)channel->ringbuffer_pages, get_order(channel->ringbuffer_pagecount * PAGE_SIZE)); - + return ret; } /* --- linux-3.13.0.orig/drivers/hv/channel_mgmt.c +++ linux-3.13.0/drivers/hv/channel_mgmt.c @@ -202,9 +202,16 @@ unsigned long flags; struct vmbus_channel *primary_channel; struct vmbus_channel_relid_released msg; + struct device *dev; + + if (channel->device_obj) { + dev = get_device(&channel->device_obj->device); + if (dev) { + vmbus_device_unregister(channel->device_obj); + put_device(dev); + } + } - if (channel->device_obj) - vmbus_device_unregister(channel->device_obj); memset(&msg, 0, sizeof(struct vmbus_channel_relid_released)); msg.child_relid = channel->offermsg.child_relid; msg.header.msgtype = CHANNELMSG_RELID_RELEASED; --- linux-3.13.0.orig/drivers/hv/connection.c +++ linux-3.13.0/drivers/hv/connection.c @@ -55,6 +55,9 @@ case (VERSION_WIN8): return VERSION_WIN7; + case (VERSION_WIN8_1): + return VERSION_WIN8; + case (VERSION_WS2008): default: return VERSION_INVAL; @@ -67,7 +70,6 @@ int ret = 0; struct vmbus_channel_initiate_contact *msg; unsigned long flags; - int t; init_completion(&msginfo->waitevent); @@ -78,6 +80,8 @@ msg->interrupt_page = virt_to_phys(vmbus_connection.int_page); msg->monitor_page1 = virt_to_phys(vmbus_connection.monitor_pages[0]); msg->monitor_page2 = virt_to_phys(vmbus_connection.monitor_pages[1]); + if (version == VERSION_WIN8_1) + msg->target_vcpu = hv_context.vp_index[smp_processor_id()]; /* * Add to list before we send the request since we may @@ -100,15 +104,7 @@ } /* Wait for the connection response */ - t = wait_for_completion_timeout(&msginfo->waitevent, 5*HZ); - if (t == 0) { - spin_lock_irqsave(&vmbus_connection.channelmsg_lock, - flags); - list_del(&msginfo->msglistentry); - spin_unlock_irqrestore(&vmbus_connection.channelmsg_lock, - flags); - return -ETIMEDOUT; - } + wait_for_completion(&msginfo->waitevent); spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags); list_del(&msginfo->msglistentry); @@ -228,8 +224,8 @@ vmbus_connection.int_page = NULL; } - free_pages((unsigned long)vmbus_connection.monitor_pages[0], 1); - free_pages((unsigned long)vmbus_connection.monitor_pages[1], 1); + free_pages((unsigned long)vmbus_connection.monitor_pages[0], 0); + free_pages((unsigned long)vmbus_connection.monitor_pages[1], 0); vmbus_connection.monitor_pages[0] = NULL; vmbus_connection.monitor_pages[1] = NULL; @@ -323,9 +319,13 @@ */ do { - hv_begin_read(&channel->inbound); + if (read_state) + hv_begin_read(&channel->inbound); channel->onchannel_callback(arg); - bytes_to_read = hv_end_read(&channel->inbound); + if (read_state) + bytes_to_read = hv_end_read(&channel->inbound); + else + bytes_to_read = 0; } while (read_state && (bytes_to_read != 0)); } else { pr_err("no channel callback for relid - %u\n", relid); @@ -408,10 +408,21 @@ * insufficient resources. Retry the operation a couple of * times before giving up. */ - while (retries < 3) { - ret = hv_post_message(conn_id, 1, buffer, buflen); - if (ret != HV_STATUS_INSUFFICIENT_BUFFERS) + while (retries < 10) { + ret = hv_post_message(conn_id, 1, buffer, buflen); + + switch (ret) { + case HV_STATUS_INSUFFICIENT_BUFFERS: + ret = -ENOMEM; + case -ENOMEM: + break; + case HV_STATUS_SUCCESS: return ret; + default: + pr_err("hv_post_msg() failed; error code:%d\n", ret); + return -EINVAL; + } + retries++; msleep(100); } --- linux-3.13.0.orig/drivers/hv/hv.c +++ linux-3.13.0/drivers/hv/hv.c @@ -31,6 +31,14 @@ #include #include "hyperv_vmbus.h" +#ifndef PKG_ABI +/* + * Preserve the ability to 'make deb-pkg' since PKG_ABI is provided + * by the Ubuntu build rules. + */ +#define PKG_ABI 0 +#endif + /* The one and only */ struct hv_context hv_context = { .synic_initialized = false, @@ -138,6 +146,8 @@ memset(hv_context.synic_event_page, 0, sizeof(void *) * NR_CPUS); memset(hv_context.synic_message_page, 0, sizeof(void *) * NR_CPUS); + memset(hv_context.post_msg_page, 0, + sizeof(void *) * NR_CPUS); memset(hv_context.vp_index, 0, sizeof(int) * NR_CPUS); memset(hv_context.event_dpc, 0, @@ -148,7 +158,7 @@ /* * Write our OS ID. */ - hv_context.guestid = generate_guest_id(0, LINUX_VERSION_CODE, 0); + hv_context.guestid = generate_guest_id(0x80 /*Canonical*/, LINUX_VERSION_CODE, PKG_ABI); wrmsrl(HV_X64_MSR_GUEST_OS_ID, hv_context.guestid); /* See if the hypercall page is already set */ @@ -217,26 +227,18 @@ enum hv_message_type message_type, void *payload, size_t payload_size) { - struct aligned_input { - u64 alignment8; - struct hv_input_post_message msg; - }; struct hv_input_post_message *aligned_msg; u16 status; - unsigned long addr; if (payload_size > HV_MESSAGE_PAYLOAD_BYTE_COUNT) return -EMSGSIZE; - addr = (unsigned long)kmalloc(sizeof(struct aligned_input), GFP_ATOMIC); - if (!addr) - return -ENOMEM; - aligned_msg = (struct hv_input_post_message *) - (ALIGN(addr, HV_HYPERCALL_PARAM_ALIGN)); + hv_context.post_msg_page[get_cpu()]; aligned_msg->connectionid = connection_id; + aligned_msg->reserved = 0; aligned_msg->message_type = message_type; aligned_msg->payload_size = payload_size; memcpy((void *)aligned_msg->payload, payload, payload_size); @@ -244,8 +246,7 @@ status = do_hypercall(HVCALL_POST_MESSAGE, aligned_msg, NULL) & 0xFFFF; - kfree((void *)addr); - + put_cpu(); return status; } @@ -294,6 +295,14 @@ pr_err("Unable to allocate SYNIC event page\n"); goto err; } + + hv_context.post_msg_page[cpu] = + (void *)get_zeroed_page(GFP_ATOMIC); + + if (hv_context.post_msg_page[cpu] == NULL) { + pr_err("Unable to allocate post msg page\n"); + goto err; + } } return 0; @@ -308,6 +317,8 @@ free_page((unsigned long)hv_context.synic_event_page[cpu]); if (hv_context.synic_message_page[cpu]) free_page((unsigned long)hv_context.synic_message_page[cpu]); + if (hv_context.post_msg_page[cpu]) + free_page((unsigned long)hv_context.post_msg_page[cpu]); } void hv_synic_free(void) --- linux-3.13.0.orig/drivers/hv/hv_balloon.c +++ linux-3.13.0/drivers/hv/hv_balloon.c @@ -19,6 +19,7 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #include +#include #include #include #include @@ -459,6 +460,11 @@ */ static uint pressure_report_delay = 45; +/* + * The last time we posted a pressure report to host. + */ +static unsigned long last_post_time; + module_param(hot_add, bool, (S_IRUGO | S_IWUSR)); MODULE_PARM_DESC(hot_add, "If set attempt memory hot_add"); @@ -542,6 +548,7 @@ static struct hv_dynmem_device dm_device; +static void post_status(struct hv_dynmem_device *dm); #ifdef CONFIG_MEMORY_HOTPLUG static void hv_bring_pgs_online(unsigned long start_pfn, unsigned long size) @@ -612,7 +619,7 @@ * have not been "onlined" within the allowed time. */ wait_for_completion_timeout(&dm_device.ol_waitevent, 5*HZ); - + post_status(&dm_device); } return; @@ -951,11 +958,17 @@ { struct dm_status status; struct sysinfo val; + unsigned long now = jiffies; + unsigned long last_post = last_post_time; if (pressure_report_delay > 0) { --pressure_report_delay; return; } + + if (!time_after(now, (last_post_time + HZ))) + return; + si_meminfo(&val); memset(&status, 0, sizeof(struct dm_status)); status.hdr.type = DM_STATUS_REPORT; @@ -983,6 +996,14 @@ if (status.hdr.trans_id != atomic_read(&trans_id)) return; + /* + * If the last post time that we sampled has changed, + * we have raced, don't post the status. + */ + if (last_post != last_post_time) + return; + + last_post_time = jiffies; vmbus_sendpacket(dm->dev->channel, &status, sizeof(struct dm_status), (unsigned long)NULL, @@ -1117,7 +1138,7 @@ if (ret == -EAGAIN) msleep(20); - + post_status(&dm_device); } while (ret == -EAGAIN); if (ret) { @@ -1144,8 +1165,10 @@ struct dm_unballoon_response resp; int i; - for (i = 0; i < range_count; i++) + for (i = 0; i < range_count; i++) { free_balloon_pages(dm, &range_array[i]); + post_status(&dm_device); + } if (req->more_pages == 1) return; @@ -1171,7 +1194,8 @@ int t; while (!kthread_should_stop()) { - t = wait_for_completion_timeout(&dm_device.config_event, 1*HZ); + t = wait_for_completion_interruptible_timeout( + &dm_device.config_event, 1*HZ); /* * The host expects us to post information on the memory * pressure every second. --- linux-3.13.0.orig/drivers/hv/hv_fcopy.c +++ linux-3.13.0/drivers/hv/hv_fcopy.c @@ -0,0 +1,414 @@ +/* + * An implementation of file copy service. + * + * Copyright (C) 2014, Microsoft, Inc. + * + * Author : K. Y. Srinivasan + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published + * by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or + * NON INFRINGEMENT. See the GNU General Public License for more + * details. + * + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "hyperv_vmbus.h" + +#define WIN8_SRV_MAJOR 1 +#define WIN8_SRV_MINOR 1 +#define WIN8_SRV_VERSION (WIN8_SRV_MAJOR << 16 | WIN8_SRV_MINOR) + +/* + * Global state maintained for transaction that is being processed. + * For a class of integration services, including the "file copy service", + * the specified protocol is a "request/response" protocol which means that + * there can only be single outstanding transaction from the host at any + * given point in time. We use this to simplify memory management in this + * driver - we cache and process only one message at a time. + * + * While the request/response protocol is guaranteed by the host, we further + * ensure this by serializing packet processing in this driver - we do not + * read additional packets from the VMBUs until the current packet is fully + * handled. + * + * The transaction "active" state is set when we receive a request from the + * host and we cleanup this state when the transaction is completed - when we + * respond to the host with our response. When the transaction active state is + * set, we defer handling incoming packets. + */ + +static struct { + bool active; /* transaction status - active or not */ + int recv_len; /* number of bytes received. */ + struct hv_fcopy_hdr *fcopy_msg; /* current message */ + struct hv_start_fcopy message; /* sent to daemon */ + struct vmbus_channel *recv_channel; /* chn we got the request */ + u64 recv_req_id; /* request ID. */ + void *fcopy_context; /* for the channel callback */ + struct semaphore read_sema; +} fcopy_transaction; + +static bool opened; /* currently device opened */ + +/* + * Before we can accept copy messages from the host, we need + * to handshake with the user level daemon. This state tracks + * if we are in the handshake phase. + */ +static bool in_hand_shake = true; +static void fcopy_send_data(void); +static void fcopy_respond_to_host(int error); +static void fcopy_work_func(struct work_struct *dummy); +static DECLARE_DELAYED_WORK(fcopy_work, fcopy_work_func); +static u8 *recv_buffer; + +static void fcopy_work_func(struct work_struct *dummy) +{ + /* + * If the timer fires, the user-mode component has not responded; + * process the pending transaction. + */ + fcopy_respond_to_host(HV_E_FAIL); +} + +static int fcopy_handle_handshake(u32 version) +{ + switch (version) { + case FCOPY_CURRENT_VERSION: + break; + default: + /* + * For now we will fail the registration. + * If and when we have multiple versions to + * deal with, we will be backward compatible. + * We will add this code when needed. + */ + return -EINVAL; + } + pr_info("FCP: user-mode registering done. Daemon version: %d\n", + version); + fcopy_transaction.active = false; + if (fcopy_transaction.fcopy_context) + hv_fcopy_onchannelcallback(fcopy_transaction.fcopy_context); + in_hand_shake = false; + return 0; +} + +static void fcopy_send_data(void) +{ + struct hv_start_fcopy *smsg_out = &fcopy_transaction.message; + int operation = fcopy_transaction.fcopy_msg->operation; + struct hv_start_fcopy *smsg_in; + + /* + * The strings sent from the host are encoded in + * in utf16; convert it to utf8 strings. + * The host assures us that the utf16 strings will not exceed + * the max lengths specified. We will however, reserve room + * for the string terminating character - in the utf16s_utf8s() + * function we limit the size of the buffer where the converted + * string is placed to W_MAX_PATH -1 to guarantee + * that the strings can be properly terminated! + */ + + switch (operation) { + case START_FILE_COPY: + memset(smsg_out, 0, sizeof(struct hv_start_fcopy)); + smsg_out->hdr.operation = operation; + smsg_in = (struct hv_start_fcopy *)fcopy_transaction.fcopy_msg; + + utf16s_to_utf8s((wchar_t *)smsg_in->file_name, W_MAX_PATH, + UTF16_LITTLE_ENDIAN, + (__u8 *)smsg_out->file_name, W_MAX_PATH - 1); + + utf16s_to_utf8s((wchar_t *)smsg_in->path_name, W_MAX_PATH, + UTF16_LITTLE_ENDIAN, + (__u8 *)smsg_out->path_name, W_MAX_PATH - 1); + + smsg_out->copy_flags = smsg_in->copy_flags; + smsg_out->file_size = smsg_in->file_size; + break; + + default: + break; + } + up(&fcopy_transaction.read_sema); + return; +} + +/* + * Send a response back to the host. + */ + +static void +fcopy_respond_to_host(int error) +{ + struct icmsg_hdr *icmsghdr; + u32 buf_len; + struct vmbus_channel *channel; + u64 req_id; + + /* + * Copy the global state for completing the transaction. Note that + * only one transaction can be active at a time. This is guaranteed + * by the file copy protocol implemented by the host. Furthermore, + * the "transaction active" state we maintain ensures that there can + * only be one active transaction at a time. + */ + + buf_len = fcopy_transaction.recv_len; + channel = fcopy_transaction.recv_channel; + req_id = fcopy_transaction.recv_req_id; + + fcopy_transaction.active = false; + + icmsghdr = (struct icmsg_hdr *) + &recv_buffer[sizeof(struct vmbuspipe_hdr)]; + + if (channel->onchannel_callback == NULL) + /* + * We have raced with util driver being unloaded; + * silently return. + */ + return; + + icmsghdr->status = error; + icmsghdr->icflags = ICMSGHDRFLAG_TRANSACTION | ICMSGHDRFLAG_RESPONSE; + vmbus_sendpacket(channel, recv_buffer, buf_len, req_id, + VM_PKT_DATA_INBAND, 0); +} + +void hv_fcopy_onchannelcallback(void *context) +{ + struct vmbus_channel *channel = context; + u32 recvlen; + u64 requestid; + struct hv_fcopy_hdr *fcopy_msg; + struct icmsg_hdr *icmsghdr; + struct icmsg_negotiate *negop = NULL; + int util_fw_version; + int fcopy_srv_version; + + if (fcopy_transaction.active) { + /* + * We will defer processing this callback once + * the current transaction is complete. + */ + fcopy_transaction.fcopy_context = context; + return; + } + + vmbus_recvpacket(channel, recv_buffer, PAGE_SIZE * 2, &recvlen, + &requestid); + if (recvlen <= 0) + return; + + icmsghdr = (struct icmsg_hdr *)&recv_buffer[ + sizeof(struct vmbuspipe_hdr)]; + if (icmsghdr->icmsgtype == ICMSGTYPE_NEGOTIATE) { + util_fw_version = UTIL_FW_VERSION; + fcopy_srv_version = WIN8_SRV_VERSION; + vmbus_prep_negotiate_resp(icmsghdr, negop, recv_buffer, + util_fw_version, fcopy_srv_version); + } else { + fcopy_msg = (struct hv_fcopy_hdr *)&recv_buffer[ + sizeof(struct vmbuspipe_hdr) + + sizeof(struct icmsg_hdr)]; + + /* + * Stash away this global state for completing the + * transaction; note transactions are serialized. + */ + + fcopy_transaction.active = true; + fcopy_transaction.recv_len = recvlen; + fcopy_transaction.recv_channel = channel; + fcopy_transaction.recv_req_id = requestid; + fcopy_transaction.fcopy_msg = fcopy_msg; + + /* + * Send the information to the user-level daemon. + */ + fcopy_send_data(); + schedule_delayed_work(&fcopy_work, 5*HZ); + return; + } + icmsghdr->icflags = ICMSGHDRFLAG_TRANSACTION | ICMSGHDRFLAG_RESPONSE; + vmbus_sendpacket(channel, recv_buffer, recvlen, requestid, + VM_PKT_DATA_INBAND, 0); +} + +/* + * Create a char device that can support read/write for passing + * the payload. + */ + +static ssize_t fcopy_read(struct file *file, char __user *buf, + size_t count, loff_t *ppos) +{ + void *src; + size_t copy_size; + int operation; + + /* + * Wait until there is something to be read. + */ + if (down_interruptible(&fcopy_transaction.read_sema)) + return -EINTR; + + /* + * The channel may be rescinded and in this case, we will wakeup the + * the thread blocked on the semaphore and we will use the opened + * state to correctly handle this case. + */ + if (!opened) + return -ENODEV; + + operation = fcopy_transaction.fcopy_msg->operation; + + if (operation == START_FILE_COPY) { + src = &fcopy_transaction.message; + copy_size = sizeof(struct hv_start_fcopy); + if (count < copy_size) + return 0; + } else { + src = fcopy_transaction.fcopy_msg; + copy_size = sizeof(struct hv_do_fcopy); + if (count < copy_size) + return 0; + } + if (copy_to_user(buf, src, copy_size)) + return -EFAULT; + + return copy_size; +} + +static ssize_t fcopy_write(struct file *file, const char __user *buf, + size_t count, loff_t *ppos) +{ + int response = 0; + + if (count != sizeof(int)) + return -EINVAL; + + if (copy_from_user(&response, buf, sizeof(int))) + return -EFAULT; + + if (in_hand_shake) { + if (fcopy_handle_handshake(response)) + return -EINVAL; + return sizeof(int); + } + + /* + * Complete the transaction by forwarding the result + * to the host. But first, cancel the timeout. + */ + if (cancel_delayed_work_sync(&fcopy_work)) + fcopy_respond_to_host(response); + + return sizeof(int); +} + +static int fcopy_open(struct inode *inode, struct file *f) +{ + /* + * The user level daemon that will open this device is + * really an extension of this driver. We can have only + * active open at a time. + */ + if (opened) + return -EBUSY; + + /* + * The daemon is alive; setup the state. + */ + opened = true; + return 0; +} + +static int fcopy_release(struct inode *inode, struct file *f) +{ + /* + * The daemon has exited; reset the state. + */ + in_hand_shake = true; + opened = false; + return 0; +} + + +static const struct file_operations fcopy_fops = { + .read = fcopy_read, + .write = fcopy_write, + .release = fcopy_release, + .open = fcopy_open, +}; + +static struct miscdevice fcopy_misc = { + .minor = MISC_DYNAMIC_MINOR, + .name = "vmbus/hv_fcopy", + .fops = &fcopy_fops, +}; + +static int fcopy_dev_init(void) +{ + return misc_register(&fcopy_misc); +} + +static void fcopy_dev_deinit(void) +{ + + /* + * The device is going away - perhaps because the + * host has rescinded the channel. Setup state so that + * user level daemon can gracefully exit if it is blocked + * on the read semaphore. + */ + opened = false; + /* + * Signal the semaphore as the device is + * going away. + */ + up(&fcopy_transaction.read_sema); + misc_deregister(&fcopy_misc); +} + +int hv_fcopy_init(struct hv_util_service *srv) +{ + recv_buffer = srv->recv_buffer; + + /* + * When this driver loads, the user level daemon that + * processes the host requests may not yet be running. + * Defer processing channel callbacks until the daemon + * has registered. + */ + fcopy_transaction.active = true; + sema_init(&fcopy_transaction.read_sema, 0); + + return fcopy_dev_init(); +} + +void hv_fcopy_deinit(void) +{ + cancel_delayed_work_sync(&fcopy_work); + fcopy_dev_deinit(); +} --- linux-3.13.0.orig/drivers/hv/hv_util.c +++ linux-3.13.0/drivers/hv/hv_util.c @@ -28,6 +28,7 @@ #include #include +#include "hyperv_vmbus.h" #define SD_MAJOR 3 #define SD_MINOR 0 @@ -82,6 +83,12 @@ .util_deinit = hv_vss_deinit, }; +static struct hv_util_service util_fcopy = { + .util_cb = hv_fcopy_onchannelcallback, + .util_init = hv_fcopy_init, + .util_deinit = hv_fcopy_deinit, +}; + static void perform_shutdown(struct work_struct *dummy) { orderly_poweroff(true); @@ -401,6 +408,10 @@ { HV_VSS_GUID, .driver_data = (unsigned long)&util_vss }, + /* File copy GUID */ + { HV_FCOPY_GUID, + .driver_data = (unsigned long)&util_fcopy + }, { }, }; --- linux-3.13.0.orig/drivers/hv/hyperv_vmbus.h +++ linux-3.13.0/drivers/hv/hyperv_vmbus.h @@ -510,6 +510,10 @@ * basis. */ struct tasklet_struct *event_dpc[NR_CPUS]; + /* + * buffer to post messages to the host. + */ + void *post_msg_page[NR_CPUS]; }; extern struct hv_context hv_context; @@ -669,5 +673,9 @@ void vmbus_on_event(unsigned long data); +int hv_fcopy_init(struct hv_util_service *); +void hv_fcopy_deinit(void); +void hv_fcopy_onchannelcallback(void *); + #endif /* _HYPERV_VMBUS_H */ --- linux-3.13.0.orig/drivers/hv/vmbus_drv.c +++ linux-3.13.0/drivers/hv/vmbus_drv.c @@ -46,6 +46,12 @@ static struct completion probe_event; static int irq; +struct resource hyperv_mmio = { + .name = "hyperv mmio", + .flags = IORESOURCE_MEM, +}; +EXPORT_SYMBOL_GPL(hyperv_mmio); + static int vmbus_exists(void) { if (hv_acpi_dev == NULL) @@ -888,18 +894,21 @@ /* - * VMBUS is an acpi enumerated device. Get the the IRQ information - * from DSDT. + * VMBUS is an acpi enumerated device. Get the the information we + * need from DSDT. */ -static acpi_status vmbus_walk_resources(struct acpi_resource *res, void *irq) +static acpi_status vmbus_walk_resources(struct acpi_resource *res, void *ctx) { + switch (res->type) { + case ACPI_RESOURCE_TYPE_IRQ: + irq = res->data.irq.interrupts[0]; + break; - if (res->type == ACPI_RESOURCE_TYPE_IRQ) { - struct acpi_resource_irq *irqp; - irqp = &res->data.irq; - - *((unsigned int *)irq) = irqp->interrupts[0]; + case ACPI_RESOURCE_TYPE_ADDRESS64: + hyperv_mmio.start = res->data.address64.minimum; + hyperv_mmio.end = res->data.address64.maximum; + break; } return AE_OK; @@ -908,18 +917,34 @@ static int vmbus_acpi_add(struct acpi_device *device) { acpi_status result; + int ret_val = -ENODEV; hv_acpi_dev = device; result = acpi_walk_resources(device->handle, METHOD_NAME__CRS, - vmbus_walk_resources, &irq); + vmbus_walk_resources, NULL); - if (ACPI_FAILURE(result)) { - complete(&probe_event); - return -ENODEV; + if (ACPI_FAILURE(result)) + goto acpi_walk_err; + /* + * The parent of the vmbus acpi device (Gen2 firmware) is the VMOD that + * has the mmio ranges. Get that. + */ + if (device->parent) { + result = acpi_walk_resources(device->parent->handle, + METHOD_NAME__CRS, + vmbus_walk_resources, NULL); + + if (ACPI_FAILURE(result)) + goto acpi_walk_err; + if (hyperv_mmio.start && hyperv_mmio.end) + request_resource(&iomem_resource, &hyperv_mmio); } + ret_val = 0; + +acpi_walk_err: complete(&probe_event); - return 0; + return ret_val; } static const struct acpi_device_id vmbus_acpi_device_ids[] = { --- linux-3.13.0.orig/drivers/hwmon/adm1021.c +++ linux-3.13.0/drivers/hwmon/adm1021.c @@ -185,7 +185,7 @@ struct i2c_client *client = to_i2c_client(dev); struct adm1021_data *data = i2c_get_clientdata(client); long temp; - int err; + int reg_val, err; err = kstrtol(buf, 10, &temp); if (err) @@ -193,10 +193,11 @@ temp /= 1000; mutex_lock(&data->update_lock); - data->temp_max[index] = clamp_val(temp, -128, 127); + reg_val = clamp_val(temp, -128, 127); + data->temp_max[index] = reg_val * 1000; if (!read_only) i2c_smbus_write_byte_data(client, ADM1021_REG_TOS_W(index), - data->temp_max[index]); + reg_val); mutex_unlock(&data->update_lock); return count; @@ -210,7 +211,7 @@ struct i2c_client *client = to_i2c_client(dev); struct adm1021_data *data = i2c_get_clientdata(client); long temp; - int err; + int reg_val, err; err = kstrtol(buf, 10, &temp); if (err) @@ -218,10 +219,11 @@ temp /= 1000; mutex_lock(&data->update_lock); - data->temp_min[index] = clamp_val(temp, -128, 127); + reg_val = clamp_val(temp, -128, 127); + data->temp_min[index] = reg_val * 1000; if (!read_only) i2c_smbus_write_byte_data(client, ADM1021_REG_THYST_W(index), - data->temp_min[index]); + reg_val); mutex_unlock(&data->update_lock); return count; --- linux-3.13.0.orig/drivers/hwmon/adm1029.c +++ linux-3.13.0/drivers/hwmon/adm1029.c @@ -232,6 +232,9 @@ /* Update the value */ reg = (reg & 0x3F) | (val << 6); + /* Update the cache */ + data->fan_div[attr->index] = reg; + /* Write value */ i2c_smbus_write_byte_data(client, ADM1029_REG_FAN_DIV[attr->index], reg); --- linux-3.13.0.orig/drivers/hwmon/adm1031.c +++ linux-3.13.0/drivers/hwmon/adm1031.c @@ -365,6 +365,7 @@ if (ret) return ret; + val = clamp_val(val, 0, 127000); mutex_lock(&data->update_lock); data->auto_temp[nr] = AUTO_TEMP_MIN_TO_REG(val, data->auto_temp[nr]); adm1031_write_value(client, ADM1031_REG_AUTO_TEMP(nr), @@ -394,6 +395,7 @@ if (ret) return ret; + val = clamp_val(val, 0, 127000); mutex_lock(&data->update_lock); data->temp_max[nr] = AUTO_TEMP_MAX_TO_REG(val, data->auto_temp[nr], data->pwm[nr]); @@ -696,7 +698,7 @@ if (ret) return ret; - val = clamp_val(val, -55000, nr == 0 ? 127750 : 127875); + val = clamp_val(val, -55000, 127000); mutex_lock(&data->update_lock); data->temp_min[nr] = TEMP_TO_REG(val); adm1031_write_value(client, ADM1031_REG_TEMP_MIN(nr), @@ -717,7 +719,7 @@ if (ret) return ret; - val = clamp_val(val, -55000, nr == 0 ? 127750 : 127875); + val = clamp_val(val, -55000, 127000); mutex_lock(&data->update_lock); data->temp_max[nr] = TEMP_TO_REG(val); adm1031_write_value(client, ADM1031_REG_TEMP_MAX(nr), @@ -738,7 +740,7 @@ if (ret) return ret; - val = clamp_val(val, -55000, nr == 0 ? 127750 : 127875); + val = clamp_val(val, -55000, 127000); mutex_lock(&data->update_lock); data->temp_crit[nr] = TEMP_TO_REG(val); adm1031_write_value(client, ADM1031_REG_TEMP_CRIT(nr), --- linux-3.13.0.orig/drivers/hwmon/ads1015.c +++ linux-3.13.0/drivers/hwmon/ads1015.c @@ -198,7 +198,7 @@ } channel = be32_to_cpup(property); - if (channel > ADS1015_CHANNELS) { + if (channel >= ADS1015_CHANNELS) { dev_err(&client->dev, "invalid channel index %d on %s\n", channel, node->full_name); @@ -212,6 +212,7 @@ dev_err(&client->dev, "invalid gain on %s\n", node->full_name); + return -EINVAL; } } @@ -222,6 +223,7 @@ dev_err(&client->dev, "invalid data_rate on %s\n", node->full_name); + return -EINVAL; } } --- linux-3.13.0.orig/drivers/hwmon/adt7470.c +++ linux-3.13.0/drivers/hwmon/adt7470.c @@ -515,7 +515,7 @@ return -EINVAL; temp = DIV_ROUND_CLOSEST(temp, 1000); - temp = clamp_val(temp, 0, 255); + temp = clamp_val(temp, -128, 127); mutex_lock(&data->lock); data->temp_min[attr->index] = temp; @@ -549,7 +549,7 @@ return -EINVAL; temp = DIV_ROUND_CLOSEST(temp, 1000); - temp = clamp_val(temp, 0, 255); + temp = clamp_val(temp, -128, 127); mutex_lock(&data->lock); data->temp_max[attr->index] = temp; @@ -826,7 +826,7 @@ return -EINVAL; temp = DIV_ROUND_CLOSEST(temp, 1000); - temp = clamp_val(temp, 0, 255); + temp = clamp_val(temp, -128, 127); mutex_lock(&data->lock); data->pwm_tmin[attr->index] = temp; --- linux-3.13.0.orig/drivers/hwmon/amc6821.c +++ linux-3.13.0/drivers/hwmon/amc6821.c @@ -360,11 +360,13 @@ if (config) return config; + mutex_lock(&data->update_lock); config = i2c_smbus_read_byte_data(client, AMC6821_REG_CONF1); if (config < 0) { dev_err(&client->dev, "Error reading configuration register, aborting.\n"); - return config; + count = config; + goto unlock; } switch (val) { @@ -381,14 +383,15 @@ config |= AMC6821_CONF1_FDRC1; break; default: - return -EINVAL; + count = -EINVAL; + goto unlock; } - mutex_lock(&data->update_lock); if (i2c_smbus_write_byte_data(client, AMC6821_REG_CONF1, config)) { dev_err(&client->dev, "Configuration register write error, aborting.\n"); count = -EIO; } +unlock: mutex_unlock(&data->update_lock); return count; } @@ -493,8 +496,9 @@ return -EINVAL; } - data->valid = 0; mutex_lock(&data->update_lock); + data->valid = 0; + switch (ix) { case 0: ptemp[0] = clamp_val(val / 1000, 0, @@ -658,13 +662,14 @@ if (config) return config; + mutex_lock(&data->update_lock); config = i2c_smbus_read_byte_data(client, AMC6821_REG_CONF4); if (config < 0) { dev_err(&client->dev, "Error reading configuration register, aborting.\n"); - return config; + count = config; + goto EXIT; } - mutex_lock(&data->update_lock); switch (val) { case 2: config &= ~AMC6821_CONF4_PSPR; @@ -704,7 +709,7 @@ get_temp_alarm, NULL, IDX_TEMP1_MAX); static SENSOR_DEVICE_ATTR(temp1_crit_alarm, S_IRUGO, get_temp_alarm, NULL, IDX_TEMP1_CRIT); -static SENSOR_DEVICE_ATTR(temp2_input, S_IRUGO | S_IWUSR, +static SENSOR_DEVICE_ATTR(temp2_input, S_IRUGO, get_temp, NULL, IDX_TEMP2_INPUT); static SENSOR_DEVICE_ATTR(temp2_min, S_IRUGO | S_IWUSR, get_temp, set_temp, IDX_TEMP2_MIN); --- linux-3.13.0.orig/drivers/hwmon/da9052-hwmon.c +++ linux-3.13.0/drivers/hwmon/da9052-hwmon.c @@ -194,7 +194,7 @@ struct device_attribute *devattr, char *buf) { - return sprintf(buf, "da9052-hwmon\n"); + return sprintf(buf, "da9052\n"); } static ssize_t show_label(struct device *dev, --- linux-3.13.0.orig/drivers/hwmon/da9055-hwmon.c +++ linux-3.13.0/drivers/hwmon/da9055-hwmon.c @@ -204,7 +204,7 @@ struct device_attribute *devattr, char *buf) { - return sprintf(buf, "da9055-hwmon\n"); + return sprintf(buf, "da9055\n"); } static ssize_t show_label(struct device *dev, --- linux-3.13.0.orig/drivers/hwmon/dme1737.c +++ linux-3.13.0/drivers/hwmon/dme1737.c @@ -247,8 +247,8 @@ u8 pwm_acz[3]; u8 pwm_freq[6]; u8 pwm_rr[2]; - u8 zone_low[3]; - u8 zone_abs[3]; + s8 zone_low[3]; + s8 zone_abs[3]; u8 zone_hyst[2]; u32 alarms; }; @@ -277,7 +277,7 @@ return (reg * nominal + (3 << (res - 3))) / (3 << (res - 2)); } -static inline int IN_TO_REG(int val, int nominal) +static inline int IN_TO_REG(long val, int nominal) { return clamp_val((val * 192 + nominal / 2) / nominal, 0, 255); } @@ -293,7 +293,7 @@ return (reg * 1000) >> (res - 8); } -static inline int TEMP_TO_REG(int val) +static inline int TEMP_TO_REG(long val) { return clamp_val((val < 0 ? val - 500 : val + 500) / 1000, -128, 127); } @@ -308,7 +308,7 @@ return TEMP_RANGE[(reg >> 4) & 0x0f]; } -static int TEMP_RANGE_TO_REG(int val, int reg) +static int TEMP_RANGE_TO_REG(long val, int reg) { int i; @@ -331,7 +331,7 @@ return (((ix == 1) ? reg : reg >> 4) & 0x0f) * 1000; } -static inline int TEMP_HYST_TO_REG(int val, int ix, int reg) +static inline int TEMP_HYST_TO_REG(long val, int ix, int reg) { int hyst = clamp_val((val + 500) / 1000, 0, 15); @@ -347,7 +347,7 @@ return (reg == 0 || reg == 0xffff) ? 0 : 90000 * 60 / reg; } -static inline int FAN_TO_REG(int val, int tpc) +static inline int FAN_TO_REG(long val, int tpc) { if (tpc) { return clamp_val(val / tpc, 0, 0xffff); @@ -379,7 +379,7 @@ return (edge > 0) ? 1 << (edge - 1) : 0; } -static inline int FAN_TYPE_TO_REG(int val, int reg) +static inline int FAN_TYPE_TO_REG(long val, int reg) { int edge = (val == 4) ? 3 : val; @@ -402,7 +402,7 @@ return 1000 + i * 500; } -static int FAN_MAX_TO_REG(int val) +static int FAN_MAX_TO_REG(long val) { int i; @@ -460,7 +460,7 @@ return acz[(reg >> 5) & 0x07]; } -static inline int PWM_ACZ_TO_REG(int val, int reg) +static inline int PWM_ACZ_TO_REG(long val, int reg) { int acz = (val == 4) ? 2 : val - 1; @@ -476,7 +476,7 @@ return PWM_FREQ[reg & 0x0f]; } -static int PWM_FREQ_TO_REG(int val, int reg) +static int PWM_FREQ_TO_REG(long val, int reg) { int i; @@ -510,7 +510,7 @@ return (rr & 0x08) ? PWM_RR[rr & 0x07] : 0; } -static int PWM_RR_TO_REG(int val, int ix, int reg) +static int PWM_RR_TO_REG(long val, int ix, int reg) { int i; @@ -528,7 +528,7 @@ return PWM_RR_FROM_REG(reg, ix) ? 1 : 0; } -static inline int PWM_RR_EN_TO_REG(int val, int ix, int reg) +static inline int PWM_RR_EN_TO_REG(long val, int ix, int reg) { int en = (ix == 1) ? 0x80 : 0x08; @@ -1481,13 +1481,16 @@ const char *buf, size_t count) { struct dme1737_data *data = dev_get_drvdata(dev); - long val; + unsigned long val; int err; - err = kstrtol(buf, 10, &val); + err = kstrtoul(buf, 10, &val); if (err) return err; + if (val > 255) + return -EINVAL; + data->vrm = val; return count; } --- linux-3.13.0.orig/drivers/hwmon/ds1621.c +++ linux-3.13.0/drivers/hwmon/ds1621.c @@ -309,6 +309,7 @@ data->conf |= (resol << DS1621_REG_CONFIG_RESOL_SHIFT); i2c_smbus_write_byte_data(client, DS1621_REG_CONF, data->conf); data->update_interval = ds1721_convrates[resol]; + data->zbits = 7 - resol; mutex_unlock(&data->update_lock); return count; --- linux-3.13.0.orig/drivers/hwmon/emc1403.c +++ linux-3.13.0/drivers/hwmon/emc1403.c @@ -163,7 +163,7 @@ if (retval < 0) goto fail; - hyst = val - retval * 1000; + hyst = retval * 1000 - val; hyst = DIV_ROUND_CLOSEST(hyst, 1000); if (hyst < 0 || hyst > 255) { retval = -ERANGE; @@ -330,7 +330,7 @@ } id = i2c_smbus_read_byte_data(client, THERMAL_REVISION_REG); - if (id != 0x01) + if (id < 0x01 || id > 0x04) return -ENODEV; return 0; @@ -355,9 +355,9 @@ if (id->driver_data) data->groups[1] = &emc1404_group; - hwmon_dev = hwmon_device_register_with_groups(&client->dev, - client->name, data, - data->groups); + hwmon_dev = devm_hwmon_device_register_with_groups(&client->dev, + client->name, data, + data->groups); if (IS_ERR(hwmon_dev)) return PTR_ERR(hwmon_dev); --- linux-3.13.0.orig/drivers/hwmon/emc2103.c +++ linux-3.13.0/drivers/hwmon/emc2103.c @@ -250,9 +250,7 @@ if (result < 0) return result; - val = DIV_ROUND_CLOSEST(val, 1000); - if ((val < -63) || (val > 127)) - return -EINVAL; + val = clamp_val(DIV_ROUND_CLOSEST(val, 1000), -63, 127); mutex_lock(&data->update_lock); data->temp_min[nr] = val; @@ -274,9 +272,7 @@ if (result < 0) return result; - val = DIV_ROUND_CLOSEST(val, 1000); - if ((val < -63) || (val > 127)) - return -EINVAL; + val = clamp_val(DIV_ROUND_CLOSEST(val, 1000), -63, 127); mutex_lock(&data->update_lock); data->temp_max[nr] = val; @@ -390,15 +386,14 @@ { struct emc2103_data *data = emc2103_update_device(dev); struct i2c_client *client = to_i2c_client(dev); - long rpm_target; + unsigned long rpm_target; - int result = kstrtol(buf, 10, &rpm_target); + int result = kstrtoul(buf, 10, &rpm_target); if (result < 0) return result; /* Datasheet states 16384 as maximum RPM target (table 3.2) */ - if ((rpm_target < 0) || (rpm_target > 16384)) - return -EINVAL; + rpm_target = clamp_val(rpm_target, 0, 16384); mutex_lock(&data->update_lock); --- linux-3.13.0.orig/drivers/hwmon/gpio-fan.c +++ linux-3.13.0/drivers/hwmon/gpio-fan.c @@ -173,7 +173,7 @@ return -ENODEV; } -static int rpm_to_speed_index(struct gpio_fan_data *fan_data, int rpm) +static int rpm_to_speed_index(struct gpio_fan_data *fan_data, unsigned long rpm) { struct gpio_fan_speed *speed = fan_data->speed; int i; --- linux-3.13.0.orig/drivers/hwmon/ina2xx.c +++ linux-3.13.0/drivers/hwmon/ina2xx.c @@ -148,7 +148,8 @@ switch (reg) { case INA2XX_SHUNT_VOLTAGE: - val = DIV_ROUND_CLOSEST(data->regs[reg], + /* signed register */ + val = DIV_ROUND_CLOSEST((s16)data->regs[reg], data->config->shunt_div); break; case INA2XX_BUS_VOLTAGE: @@ -160,8 +161,8 @@ val = data->regs[reg] * data->config->power_lsb; break; case INA2XX_CURRENT: - /* LSB=1mA (selected). Is in mA */ - val = data->regs[reg]; + /* signed register, LSB=1mA (selected), in mA */ + val = (s16)data->regs[reg]; break; default: /* programmer goofed */ --- linux-3.13.0.orig/drivers/hwmon/k10temp.c +++ linux-3.13.0/drivers/hwmon/k10temp.c @@ -210,6 +210,7 @@ { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_CNB17H_F3) }, { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_NB_F3) }, { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_M10H_F3) }, + { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_M30H_NB_F3) }, { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_16H_NB_F3) }, {} }; --- linux-3.13.0.orig/drivers/hwmon/lm78.c +++ linux-3.13.0/drivers/hwmon/lm78.c @@ -108,7 +108,7 @@ * TEMP: mC (-128C to +127C) * REG: 1C/bit, two's complement */ -static inline s8 TEMP_TO_REG(int val) +static inline s8 TEMP_TO_REG(long val) { int nval = clamp_val(val, -128000, 127000) ; return nval < 0 ? (nval - 500) / 1000 : (nval + 500) / 1000; --- linux-3.13.0.orig/drivers/hwmon/lm85.c +++ linux-3.13.0/drivers/hwmon/lm85.c @@ -158,7 +158,7 @@ /* Temperature is reported in .001 degC increments */ #define TEMP_TO_REG(val) \ - clamp_val(SCALE(val, 1000, 1), -127, 127) + DIV_ROUND_CLOSEST(clamp_val((val), -127000, 127000), 1000) #define TEMPEXT_FROM_REG(val, ext) \ SCALE(((val) << 4) + (ext), 16, 1000) #define TEMP_FROM_REG(val) ((val) * 1000) @@ -192,7 +192,7 @@ 13300, 16000, 20000, 26600, 32000, 40000, 53300, 80000 }; -static int RANGE_TO_REG(int range) +static int RANGE_TO_REG(long range) { int i; @@ -214,7 +214,7 @@ 11, 15, 22, 29, 35, 44, 59, 88 }; -static int FREQ_TO_REG(const int *map, int freq) +static int FREQ_TO_REG(const int *map, unsigned long freq) { int i; @@ -463,6 +463,9 @@ if (err) return err; + if (val > 255) + return -EINVAL; + data->vrm = val; return count; } --- linux-3.13.0.orig/drivers/hwmon/max1668.c +++ linux-3.13.0/drivers/hwmon/max1668.c @@ -243,7 +243,7 @@ data->temp_min[index] = clamp_val(temp/1000, -128, 127); if (i2c_smbus_write_byte_data(client, MAX1668_REG_LIML_WR(index), - data->temp_max[index])) + data->temp_min[index])) count = -EIO; mutex_unlock(&data->update_lock); --- linux-3.13.0.orig/drivers/hwmon/ntc_thermistor.c +++ linux-3.13.0/drivers/hwmon/ntc_thermistor.c @@ -145,7 +145,7 @@ static int ntc_adc_iio_read(struct ntc_thermistor_platform_data *pdata) { struct iio_channel *channel = pdata->chan; - unsigned int result; + s64 result; int val, ret; ret = iio_read_channel_raw(channel, &val); @@ -155,10 +155,10 @@ } /* unit: mV */ - result = pdata->pullup_uv * val; + result = pdata->pullup_uv * (s64) val; result >>= 12; - return result; + return (int)result; } static const struct of_device_id ntc_match[] = { --- linux-3.13.0.orig/drivers/hwmon/sis5595.c +++ linux-3.13.0/drivers/hwmon/sis5595.c @@ -159,7 +159,7 @@ { return val * 830 + 52120; } -static inline s8 TEMP_TO_REG(int val) +static inline s8 TEMP_TO_REG(long val) { int nval = clamp_val(val, -54120, 157530) ; return nval < 0 ? (nval - 5212 - 415) / 830 : (nval - 5212 + 415) / 830; --- linux-3.13.0.orig/drivers/hwmon/smsc47m192.c +++ linux-3.13.0/drivers/hwmon/smsc47m192.c @@ -86,7 +86,7 @@ */ static inline s8 TEMP_TO_REG(int val) { - return clamp_val(SCALE(val, 1, 1000), -128000, 127000); + return SCALE(clamp_val(val, -128000, 127000), 1, 1000); } static inline int TEMP_FROM_REG(s8 val) @@ -384,6 +384,8 @@ err = kstrtoul(buf, 10, &val); if (err) return err; + if (val > 255) + return -EINVAL; data->vrm = val; return count; --- linux-3.13.0.orig/drivers/i2c/busses/Kconfig +++ linux-3.13.0/drivers/i2c/busses/Kconfig @@ -152,6 +152,7 @@ ATI SB700/SP5100 ATI SB800 AMD Hudson-2 + AMD ML AMD CZ Serverworks OSB4 Serverworks CSB5 @@ -386,7 +387,7 @@ config I2C_CPM tristate "Freescale CPM1 or CPM2 (MPC8xx/826x)" - depends on (CPM1 || CPM2) && OF_I2C + depends on CPM1 || CPM2 help This supports the use of the I2C interface on Freescale processors with CPM1 or CPM2. --- linux-3.13.0.orig/drivers/i2c/busses/i2c-at91.c +++ linux-3.13.0/drivers/i2c/busses/i2c-at91.c @@ -101,6 +101,7 @@ unsigned twi_cwgr_reg; struct at91_twi_pdata *pdata; bool use_dma; + bool recv_len_abort; struct at91_twi_dma dma; }; @@ -210,7 +211,7 @@ struct at91_twi_dev *dev = (struct at91_twi_dev *)data; dma_unmap_single(dev->dev, sg_dma_address(&dev->dma.sg), - dev->buf_len, DMA_MEM_TO_DEV); + dev->buf_len, DMA_TO_DEVICE); at91_twi_write(dev, AT91_TWI_CR, AT91_TWI_STOP); } @@ -267,12 +268,24 @@ *dev->buf = at91_twi_read(dev, AT91_TWI_RHR) & 0xff; --dev->buf_len; + /* return if aborting, we only needed to read RHR to clear RXRDY*/ + if (dev->recv_len_abort) + return; + /* handle I2C_SMBUS_BLOCK_DATA */ if (unlikely(dev->msg->flags & I2C_M_RECV_LEN)) { - dev->msg->flags &= ~I2C_M_RECV_LEN; - dev->buf_len += *dev->buf; - dev->msg->len = dev->buf_len + 1; - dev_dbg(dev->dev, "received block length %d\n", dev->buf_len); + /* ensure length byte is a valid value */ + if (*dev->buf <= I2C_SMBUS_BLOCK_MAX && *dev->buf > 0) { + dev->msg->flags &= ~I2C_M_RECV_LEN; + dev->buf_len += *dev->buf; + dev->msg->len = dev->buf_len + 1; + dev_dbg(dev->dev, "received block length %d\n", + dev->buf_len); + } else { + /* abort and send the stop by reading one more byte */ + dev->recv_len_abort = true; + dev->buf_len = 1; + } } /* send stop if second but last byte has been read */ @@ -289,7 +302,7 @@ struct at91_twi_dev *dev = (struct at91_twi_dev *)data; dma_unmap_single(dev->dev, sg_dma_address(&dev->dma.sg), - dev->buf_len, DMA_DEV_TO_MEM); + dev->buf_len, DMA_FROM_DEVICE); /* The last two bytes have to be read without using dma */ dev->buf += dev->buf_len - 2; @@ -421,8 +434,8 @@ } } - ret = wait_for_completion_interruptible_timeout(&dev->cmd_complete, - dev->adapter.timeout); + ret = wait_for_completion_timeout(&dev->cmd_complete, + dev->adapter.timeout); if (ret == 0) { dev_err(dev->dev, "controller timed out\n"); at91_init_twi_bus(dev); @@ -444,6 +457,12 @@ ret = -EIO; goto error; } + if (dev->recv_len_abort) { + dev_err(dev->dev, "invalid smbus block length recvd\n"); + ret = -EPROTO; + goto error; + } + dev_dbg(dev->dev, "transfer complete\n"); return 0; @@ -500,6 +519,7 @@ dev->buf_len = m_start->len; dev->buf = m_start->buf; dev->msg = m_start; + dev->recv_len_abort = false; ret = at91_do_twi_transfer(dev); --- linux-3.13.0.orig/drivers/i2c/busses/i2c-cpm.c +++ linux-3.13.0/drivers/i2c/busses/i2c-cpm.c @@ -40,8 +40,12 @@ #include #include #include +#include #include +#include #include +#include +#include #include #include --- linux-3.13.0.orig/drivers/i2c/busses/i2c-davinci.c +++ linux-3.13.0/drivers/i2c/busses/i2c-davinci.c @@ -411,11 +411,9 @@ if (dev->cmd_err & DAVINCI_I2C_STR_NACK) { if (msg->flags & I2C_M_IGNORE_NAK) return msg->len; - if (stop) { - w = davinci_i2c_read_reg(dev, DAVINCI_I2C_MDR_REG); - w |= DAVINCI_I2C_MDR_STP; - davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, w); - } + w = davinci_i2c_read_reg(dev, DAVINCI_I2C_MDR_REG); + w |= DAVINCI_I2C_MDR_STP; + davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, w); return -EREMOTEIO; } return -EIO; --- linux-3.13.0.orig/drivers/i2c/busses/i2c-designware-core.c +++ linux-3.13.0/drivers/i2c/busses/i2c-designware-core.c @@ -418,6 +418,9 @@ */ dw_writel(dev, msgs[dev->msg_write_idx].addr | ic_tar, DW_IC_TAR); + /* enforce disabled interrupts (due to HW issues) */ + i2c_dw_disable_int(dev); + /* Enable the adapter */ __i2c_dw_enable(dev, true); --- linux-3.13.0.orig/drivers/i2c/busses/i2c-mv64xxx.c +++ linux-3.13.0/drivers/i2c/busses/i2c-mv64xxx.c @@ -97,7 +97,6 @@ enum { MV64XXX_I2C_ACTION_INVALID, MV64XXX_I2C_ACTION_CONTINUE, - MV64XXX_I2C_ACTION_OFFLOAD_SEND_START, MV64XXX_I2C_ACTION_SEND_START, MV64XXX_I2C_ACTION_SEND_RESTART, MV64XXX_I2C_ACTION_OFFLOAD_RESTART, @@ -204,6 +203,9 @@ unsigned long ctrl_reg; struct i2c_msg *msg = drv_data->msgs; + if (!drv_data->offload_enabled) + return -EOPNOTSUPP; + drv_data->msg = msg; drv_data->byte_posn = 0; drv_data->bytes_left = msg->len; @@ -433,8 +435,7 @@ drv_data->msgs++; drv_data->num_msgs--; - if (!(drv_data->offload_enabled && - mv64xxx_i2c_offload_msg(drv_data))) { + if (mv64xxx_i2c_offload_msg(drv_data) < 0) { drv_data->cntl_bits |= MV64XXX_I2C_REG_CONTROL_START; writel(drv_data->cntl_bits, drv_data->reg_base + drv_data->reg_offsets.control); @@ -458,15 +459,14 @@ drv_data->reg_base + drv_data->reg_offsets.control); break; - case MV64XXX_I2C_ACTION_OFFLOAD_SEND_START: - if (!mv64xxx_i2c_offload_msg(drv_data)) - break; - else - drv_data->action = MV64XXX_I2C_ACTION_SEND_START; - /* FALLTHRU */ case MV64XXX_I2C_ACTION_SEND_START: - writel(drv_data->cntl_bits | MV64XXX_I2C_REG_CONTROL_START, - drv_data->reg_base + drv_data->reg_offsets.control); + /* Can we offload this msg ? */ + if (mv64xxx_i2c_offload_msg(drv_data) < 0) { + /* No, switch to standard path */ + mv64xxx_i2c_prepare_for_io(drv_data, drv_data->msgs); + writel(drv_data->cntl_bits | MV64XXX_I2C_REG_CONTROL_START, + drv_data->reg_base + drv_data->reg_offsets.control); + } break; case MV64XXX_I2C_ACTION_SEND_ADDR_1: @@ -625,15 +625,10 @@ unsigned long flags; spin_lock_irqsave(&drv_data->lock, flags); - if (drv_data->offload_enabled) { - drv_data->action = MV64XXX_I2C_ACTION_OFFLOAD_SEND_START; - drv_data->state = MV64XXX_I2C_STATE_WAITING_FOR_START_COND; - } else { - mv64xxx_i2c_prepare_for_io(drv_data, msg); - drv_data->action = MV64XXX_I2C_ACTION_SEND_START; - drv_data->state = MV64XXX_I2C_STATE_WAITING_FOR_START_COND; - } + drv_data->action = MV64XXX_I2C_ACTION_SEND_START; + drv_data->state = MV64XXX_I2C_STATE_WAITING_FOR_START_COND; + drv_data->send_stop = is_last; drv_data->block = 1; mv64xxx_i2c_do_action(drv_data); @@ -692,6 +687,7 @@ { .compatible = "allwinner,sun4i-i2c", .data = &mv64xxx_i2c_regs_sun4i}, { .compatible = "marvell,mv64xxx-i2c", .data = &mv64xxx_i2c_regs_mv64xxx}, { .compatible = "marvell,mv78230-i2c", .data = &mv64xxx_i2c_regs_mv64xxx}, + { .compatible = "marvell,mv78230-a0-i2c", .data = &mv64xxx_i2c_regs_mv64xxx}, {} }; MODULE_DEVICE_TABLE(of, mv64xxx_i2c_of_match_table); @@ -752,8 +748,7 @@ } tclk = clk_get_rate(drv_data->clk); - rc = of_property_read_u32(np, "clock-frequency", &bus_freq); - if (rc) + if (of_property_read_u32(np, "clock-frequency", &bus_freq)) bus_freq = 100000; /* 100kHz by default */ if (!mv64xxx_find_baud_factors(bus_freq, tclk, @@ -783,6 +778,10 @@ drv_data->errata_delay = true; } + if (of_device_is_compatible(np, "marvell,mv78230-a0-i2c")) { + drv_data->offload_enabled = false; + drv_data->errata_delay = true; + } out: return rc; #endif --- linux-3.13.0.orig/drivers/i2c/busses/i2c-omap.c +++ linux-3.13.0/drivers/i2c/busses/i2c-omap.c @@ -926,14 +926,12 @@ if (stat & OMAP_I2C_STAT_NACK) { err |= OMAP_I2C_STAT_NACK; omap_i2c_ack_stat(dev, OMAP_I2C_STAT_NACK); - break; } if (stat & OMAP_I2C_STAT_AL) { dev_err(dev->dev, "Arbitration lost\n"); err |= OMAP_I2C_STAT_AL; omap_i2c_ack_stat(dev, OMAP_I2C_STAT_AL); - break; } /* --- linux-3.13.0.orig/drivers/i2c/busses/i2c-piix4.c +++ linux-3.13.0/drivers/i2c/busses/i2c-piix4.c @@ -22,7 +22,7 @@ Intel PIIX4, 440MX Serverworks OSB4, CSB5, CSB6, HT-1000, HT-1100 ATI IXP200, IXP300, IXP400, SB600, SB700/SP5100, SB800 - AMD Hudson-2, CZ + AMD Hudson-2, ML, CZ SMSC Victory66 Note: we assume there can only be one device, with one or more @@ -235,7 +235,8 @@ { unsigned short piix4_smba; unsigned short smba_idx = 0xcd6; - u8 smba_en_lo, smba_en_hi, i2ccfg, i2ccfg_offset = 0x10, smb_en; + u8 smba_en_lo, smba_en_hi, smb_en, smb_en_status; + u8 i2ccfg, i2ccfg_offset = 0x10; /* SB800 and later SMBus does not support forcing address */ if (force || force_addr) { @@ -245,7 +246,15 @@ } /* Determine the address of the SMBus areas */ - smb_en = (aux) ? 0x28 : 0x2c; + if ((PIIX4_dev->vendor == PCI_VENDOR_ID_AMD && + PIIX4_dev->device == PCI_DEVICE_ID_AMD_HUDSON2_SMBUS && + PIIX4_dev->revision >= 0x41) || + (PIIX4_dev->vendor == PCI_VENDOR_ID_AMD && + PIIX4_dev->device == 0x790b && + PIIX4_dev->revision >= 0x49)) + smb_en = 0x00; + else + smb_en = (aux) ? 0x28 : 0x2c; if (!request_region(smba_idx, 2, "smba_idx")) { dev_err(&PIIX4_dev->dev, "SMBus base address index region " @@ -258,13 +267,22 @@ smba_en_hi = inb_p(smba_idx + 1); release_region(smba_idx, 2); - if ((smba_en_lo & 1) == 0) { + if (!smb_en) { + smb_en_status = smba_en_lo & 0x10; + piix4_smba = smba_en_hi << 8; + if (aux) + piix4_smba |= 0x20; + } else { + smb_en_status = smba_en_lo & 0x01; + piix4_smba = ((smba_en_hi << 8) | smba_en_lo) & 0xffe0; + } + + if (!smb_en_status) { dev_err(&PIIX4_dev->dev, "Host SMBus controller not enabled!\n"); return -ENODEV; } - piix4_smba = ((smba_en_hi << 8) | smba_en_lo) & 0xffe0; if (acpi_check_region(piix4_smba, SMBIOSIZE, piix4_driver.name)) return -ENODEV; @@ -277,7 +295,8 @@ /* Aux SMBus does not support IRQ information */ if (aux) { dev_info(&PIIX4_dev->dev, - "SMBus Host Controller at 0x%x\n", piix4_smba); + "Auxiliary SMBus Host Controller at 0x%x\n", + piix4_smba); return piix4_smba; } --- linux-3.13.0.orig/drivers/i2c/busses/i2c-rcar.c +++ linux-3.13.0/drivers/i2c/busses/i2c-rcar.c @@ -488,6 +488,9 @@ msr = rcar_i2c_status_get(priv); + /* Only handle interrupts that are currently enabled */ + msr &= rcar_i2c_read(priv, ICMIER); + /* * Arbitration lost */ @@ -503,15 +506,6 @@ } /* - * Stop - */ - if (msr & MST) { - dev_dbg(dev, "Stop\n"); - rcar_i2c_flags_set(priv, ID_DONE); - goto out; - } - - /* * Nack */ if (msr & MNR) { @@ -524,6 +518,12 @@ goto out; } + /* Stop */ + if (msr & MST) { + rcar_i2c_flags_set(priv, ID_DONE); + goto out; + } + /* * recv/send */ @@ -567,6 +567,12 @@ ret = -EINVAL; for (i = 0; i < num; i++) { + /* This HW can't send STOP after address phase */ + if (msgs[i].len == 0) { + ret = -EOPNOTSUPP; + break; + } + /*-------------- spin lock -----------------*/ spin_lock_irqsave(&priv->lock, flags); @@ -631,7 +637,8 @@ static u32 rcar_i2c_func(struct i2c_adapter *adap) { - return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL; + /* This HW can't do SMBUS_QUICK and NOSTART */ + return I2C_FUNC_I2C | (I2C_FUNC_SMBUS_EMUL & ~I2C_FUNC_SMBUS_QUICK); } static const struct i2c_algorithm rcar_i2c_algo = { --- linux-3.13.0.orig/drivers/i2c/busses/i2c-s3c2410.c +++ linux-3.13.0/drivers/i2c/busses/i2c-s3c2410.c @@ -1201,10 +1201,10 @@ struct platform_device *pdev = to_platform_device(dev); struct s3c24xx_i2c *i2c = platform_get_drvdata(pdev); - i2c->suspended = 0; clk_prepare_enable(i2c->clk); s3c24xx_i2c_init(i2c); clk_disable_unprepare(i2c->clk); + i2c->suspended = 0; return 0; } --- linux-3.13.0.orig/drivers/iio/accel/bma180.c +++ linux-3.13.0/drivers/iio/accel/bma180.c @@ -68,13 +68,13 @@ /* Defaults values */ #define BMA180_DEF_PMODE 0 #define BMA180_DEF_BW 20 -#define BMA180_DEF_SCALE 250 +#define BMA180_DEF_SCALE 2452 /* Available values for sysfs */ #define BMA180_FLP_FREQ_AVAILABLE \ "10 20 40 75 150 300" #define BMA180_SCALE_AVAILABLE \ - "0.000130 0.000190 0.000250 0.000380 0.000500 0.000990 0.001980" + "0.001275 0.001863 0.002452 0.003727 0.004903 0.009709 0.019417" struct bma180_data { struct i2c_client *client; @@ -94,7 +94,7 @@ }; static int bw_table[] = { 10, 20, 40, 75, 150, 300 }; /* Hz */ -static int scale_table[] = { 130, 190, 250, 380, 500, 990, 1980 }; +static int scale_table[] = { 1275, 1863, 2452, 3727, 4903, 9709, 19417 }; static int bma180_get_acc_reg(struct bma180_data *data, enum bma180_axis axis) { @@ -376,6 +376,8 @@ mutex_unlock(&data->mutex); return ret; case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY: + if (val2) + return -EINVAL; mutex_lock(&data->mutex); ret = bma180_set_bw(data, val); mutex_unlock(&data->mutex); @@ -564,7 +566,7 @@ trig->ops = &bma180_trigger_ops; iio_trigger_set_drvdata(trig, indio_dev); data->trig = trig; - indio_dev->trig = trig; + indio_dev->trig = iio_trigger_get(trig); ret = iio_trigger_register(trig); if (ret) --- linux-3.13.0.orig/drivers/iio/adc/ad_sigma_delta.c +++ linux-3.13.0/drivers/iio/adc/ad_sigma_delta.c @@ -472,7 +472,7 @@ goto error_free_irq; /* select default trigger */ - indio_dev->trig = sigma_delta->trig; + indio_dev->trig = iio_trigger_get(sigma_delta->trig); return 0; --- linux-3.13.0.orig/drivers/iio/adc/at91_adc.c +++ linux-3.13.0/drivers/iio/adc/at91_adc.c @@ -78,6 +78,7 @@ bool done; int irq; u16 last_value; + int chnb; struct mutex lock; u8 num_channels; void __iomem *reg_base; @@ -151,7 +152,7 @@ disable_irq_nosync(irq); iio_trigger_poll(idev->trig, iio_get_time_ns()); } else { - st->last_value = at91_adc_readl(st, AT91_ADC_LCDR); + st->last_value = at91_adc_readl(st, AT91_ADC_CHAN(st, st->chnb)); st->done = true; wake_up_interruptible(&st->wq_data_avail); } @@ -230,7 +231,7 @@ AT91_ADC_IER_YRDY | AT91_ADC_IER_PRDY; - if (status & st->registers->drdy_mask) + if (status & GENMASK(st->num_channels - 1, 0)) handle_adc_eoc_trigger(irq, idev); if (status & AT91_ADC_IER_PEN) { @@ -322,12 +323,11 @@ return idev->num_channels; } -static u8 at91_adc_get_trigger_value_by_name(struct iio_dev *idev, +static int at91_adc_get_trigger_value_by_name(struct iio_dev *idev, struct at91_adc_trigger *triggers, const char *trigger_name) { struct at91_adc_state *st = iio_priv(idev); - u8 value = 0; int i; for (i = 0; i < st->trigger_number; i++) { @@ -340,15 +340,16 @@ return -ENOMEM; if (strcmp(trigger_name, name) == 0) { - value = triggers[i].value; kfree(name); - break; + if (triggers[i].value == 0) + return -EINVAL; + return triggers[i].value; } kfree(name); } - return value; + return -EINVAL; } static int at91_adc_configure_trigger(struct iio_trigger *trig, bool state) @@ -358,14 +359,14 @@ struct iio_buffer *buffer = idev->buffer; struct at91_adc_reg_desc *reg = st->registers; u32 status = at91_adc_readl(st, reg->trigger_register); - u8 value; + int value; u8 bit; value = at91_adc_get_trigger_value_by_name(idev, st->trigger_list, idev->trig->name); - if (value == 0) - return -EINVAL; + if (value < 0) + return value; if (state) { st->buffer = kmalloc(idev->scan_bytes, GFP_KERNEL); @@ -501,9 +502,10 @@ case IIO_CHAN_INFO_RAW: mutex_lock(&st->lock); + st->chnb = chan->channel; at91_adc_writel(st, AT91_ADC_CHER, AT91_ADC_CH(chan->channel)); - at91_adc_writel(st, AT91_ADC_IER, st->registers->drdy_mask); + at91_adc_writel(st, AT91_ADC_IER, BIT(chan->channel)); at91_adc_writel(st, AT91_ADC_CR, AT91_ADC_START); ret = wait_event_interruptible_timeout(st->wq_data_avail, @@ -520,7 +522,7 @@ at91_adc_writel(st, AT91_ADC_CHDR, AT91_ADC_CH(chan->channel)); - at91_adc_writel(st, AT91_ADC_IDR, st->registers->drdy_mask); + at91_adc_writel(st, AT91_ADC_IDR, BIT(chan->channel)); st->last_value = 0; st->done = false; @@ -765,14 +767,17 @@ if (!pdata) return -EINVAL; + st->caps = (struct at91_adc_caps *) + platform_get_device_id(pdev)->driver_data; + st->use_external = pdata->use_external_triggers; st->vref_mv = pdata->vref; st->channels_mask = pdata->channels_used; - st->num_channels = pdata->num_channels; + st->num_channels = st->caps->num_channels; st->startup_time = pdata->startup_time; st->trigger_number = pdata->trigger_number; st->trigger_list = pdata->trigger_list; - st->registers = pdata->registers; + st->registers = &st->caps->registers; return 0; } @@ -1101,7 +1106,6 @@ return 0; } -#ifdef CONFIG_OF static struct at91_adc_caps at91sam9260_caps = { .calc_startup_ticks = calc_startup_ticks_9260, .num_channels = 4, @@ -1154,11 +1158,27 @@ {}, }; MODULE_DEVICE_TABLE(of, at91_adc_dt_ids); -#endif + +static const struct platform_device_id at91_adc_ids[] = { + { + .name = "at91sam9260-adc", + .driver_data = (unsigned long)&at91sam9260_caps, + }, { + .name = "at91sam9g45-adc", + .driver_data = (unsigned long)&at91sam9g45_caps, + }, { + .name = "at91sam9x5-adc", + .driver_data = (unsigned long)&at91sam9x5_caps, + }, { + /* terminator */ + } +}; +MODULE_DEVICE_TABLE(platform, at91_adc_ids); static struct platform_driver at91_adc_driver = { .probe = at91_adc_probe, .remove = at91_adc_remove, + .id_table = at91_adc_ids, .driver = { .name = DRIVER_NAME, .of_match_table = of_match_ptr(at91_adc_dt_ids), --- linux-3.13.0.orig/drivers/iio/adc/max1363.c +++ linux-3.13.0/drivers/iio/adc/max1363.c @@ -1258,8 +1258,8 @@ .num_modes = ARRAY_SIZE(max1238_mode_list), .default_mode = s0to11, .info = &max1238_info, - .channels = max1238_channels, - .num_channels = ARRAY_SIZE(max1238_channels), + .channels = max1038_channels, + .num_channels = ARRAY_SIZE(max1038_channels), }, [max11605] = { .bits = 8, @@ -1268,8 +1268,8 @@ .num_modes = ARRAY_SIZE(max1238_mode_list), .default_mode = s0to11, .info = &max1238_info, - .channels = max1238_channels, - .num_channels = ARRAY_SIZE(max1238_channels), + .channels = max1038_channels, + .num_channels = ARRAY_SIZE(max1038_channels), }, [max11606] = { .bits = 10, @@ -1318,8 +1318,8 @@ .num_modes = ARRAY_SIZE(max1238_mode_list), .default_mode = s0to11, .info = &max1238_info, - .channels = max1238_channels, - .num_channels = ARRAY_SIZE(max1238_channels), + .channels = max1138_channels, + .num_channels = ARRAY_SIZE(max1138_channels), }, [max11611] = { .bits = 10, @@ -1328,8 +1328,8 @@ .num_modes = ARRAY_SIZE(max1238_mode_list), .default_mode = s0to11, .info = &max1238_info, - .channels = max1238_channels, - .num_channels = ARRAY_SIZE(max1238_channels), + .channels = max1138_channels, + .num_channels = ARRAY_SIZE(max1138_channels), }, [max11612] = { .bits = 12, @@ -1560,7 +1560,7 @@ st->client = client; st->vref_uv = st->chip_info->int_vref_mv * 1000; - vref = devm_regulator_get(&client->dev, "vref"); + vref = devm_regulator_get_optional(&client->dev, "vref"); if (!IS_ERR(vref)) { int vref_uv; --- linux-3.13.0.orig/drivers/iio/adc/ti_am335x_adc.c +++ linux-3.13.0/drivers/iio/adc/ti_am335x_adc.c @@ -342,7 +342,7 @@ if (time_after(jiffies, timeout)) return -EAGAIN; } - map_val = chan->channel + TOTAL_CHANNELS; + map_val = adc_dev->channel_step[chan->scan_index]; /* * When the sub-system is first enabled, --- linux-3.13.0.orig/drivers/iio/common/hid-sensors/hid-sensor-trigger.c +++ linux-3.13.0/drivers/iio/common/hid-sensors/hid-sensor-trigger.c @@ -99,7 +99,8 @@ dev_err(&indio_dev->dev, "Trigger Register Failed\n"); goto error_free_trig; } - indio_dev->trig = attrb->trigger = trig; + attrb->trigger = trig; + indio_dev->trig = iio_trigger_get(trig); return ret; --- linux-3.13.0.orig/drivers/iio/common/st_sensors/st_sensors_buffer.c +++ linux-3.13.0/drivers/iio/common/st_sensors/st_sensors_buffer.c @@ -71,7 +71,7 @@ goto st_sensors_free_memory; } - for (i = 0; i < n * num_data_channels; i++) { + for (i = 0; i < n * byte_for_channel; i++) { if (i < n) buf[i] = rx_array[i]; else --- linux-3.13.0.orig/drivers/iio/common/st_sensors/st_sensors_trigger.c +++ linux-3.13.0/drivers/iio/common/st_sensors/st_sensors_trigger.c @@ -49,7 +49,7 @@ dev_err(&indio_dev->dev, "failed to register iio trigger.\n"); goto iio_trigger_register_error; } - indio_dev->trig = sdata->trig; + indio_dev->trig = iio_trigger_get(sdata->trig); return 0; --- linux-3.13.0.orig/drivers/iio/gyro/Kconfig +++ linux-3.13.0/drivers/iio/gyro/Kconfig @@ -70,7 +70,7 @@ select IIO_TRIGGERED_BUFFER if (IIO_BUFFER) help Say yes here to build support for STMicroelectronics gyroscopes: - L3G4200D, LSM330DL, L3GD20, L3GD20H, LSM330DLC, L3G4IS, LSM330. + L3G4200D, LSM330DL, L3GD20, LSM330DLC, L3G4IS, LSM330. This driver can also be built as a module. If so, these modules will be created: --- linux-3.13.0.orig/drivers/iio/gyro/itg3200_buffer.c +++ linux-3.13.0/drivers/iio/gyro/itg3200_buffer.c @@ -132,7 +132,7 @@ goto error_free_irq; /* select default trigger */ - indio_dev->trig = st->trig; + indio_dev->trig = iio_trigger_get(st->trig); return 0; --- linux-3.13.0.orig/drivers/iio/gyro/st_gyro.h +++ linux-3.13.0/drivers/iio/gyro/st_gyro.h @@ -19,7 +19,6 @@ #define LSM330DL_GYRO_DEV_NAME "lsm330dl_gyro" #define LSM330DLC_GYRO_DEV_NAME "lsm330dlc_gyro" #define L3GD20_GYRO_DEV_NAME "l3gd20" -#define L3GD20H_GYRO_DEV_NAME "l3gd20h" #define L3G4IS_GYRO_DEV_NAME "l3g4is_ui" #define LSM330_GYRO_DEV_NAME "lsm330_gyro" --- linux-3.13.0.orig/drivers/iio/gyro/st_gyro_core.c +++ linux-3.13.0/drivers/iio/gyro/st_gyro_core.c @@ -167,11 +167,10 @@ .wai = ST_GYRO_2_WAI_EXP, .sensors_supported = { [0] = L3GD20_GYRO_DEV_NAME, - [1] = L3GD20H_GYRO_DEV_NAME, - [2] = LSM330D_GYRO_DEV_NAME, - [3] = LSM330DLC_GYRO_DEV_NAME, - [4] = L3G4IS_GYRO_DEV_NAME, - [5] = LSM330_GYRO_DEV_NAME, + [1] = LSM330D_GYRO_DEV_NAME, + [2] = LSM330DLC_GYRO_DEV_NAME, + [3] = L3G4IS_GYRO_DEV_NAME, + [4] = LSM330_GYRO_DEV_NAME, }, .ch = (struct iio_chan_spec *)st_gyro_16bit_channels, .odr = { --- linux-3.13.0.orig/drivers/iio/gyro/st_gyro_i2c.c +++ linux-3.13.0/drivers/iio/gyro/st_gyro_i2c.c @@ -55,7 +55,6 @@ { LSM330DL_GYRO_DEV_NAME }, { LSM330DLC_GYRO_DEV_NAME }, { L3GD20_GYRO_DEV_NAME }, - { L3GD20H_GYRO_DEV_NAME }, { L3G4IS_GYRO_DEV_NAME }, { LSM330_GYRO_DEV_NAME }, {}, --- linux-3.13.0.orig/drivers/iio/gyro/st_gyro_spi.c +++ linux-3.13.0/drivers/iio/gyro/st_gyro_spi.c @@ -54,7 +54,6 @@ { LSM330DL_GYRO_DEV_NAME }, { LSM330DLC_GYRO_DEV_NAME }, { L3GD20_GYRO_DEV_NAME }, - { L3GD20H_GYRO_DEV_NAME }, { L3G4IS_GYRO_DEV_NAME }, { LSM330_GYRO_DEV_NAME }, {}, --- linux-3.13.0.orig/drivers/iio/imu/adis16400.h +++ linux-3.13.0/drivers/iio/imu/adis16400.h @@ -189,6 +189,7 @@ ADIS16300_SCAN_INCLI_X, ADIS16300_SCAN_INCLI_Y, ADIS16400_SCAN_ADC, + ADIS16400_SCAN_TIMESTAMP, }; #ifdef CONFIG_IIO_BUFFER --- linux-3.13.0.orig/drivers/iio/imu/adis16400_core.c +++ linux-3.13.0/drivers/iio/imu/adis16400_core.c @@ -632,7 +632,7 @@ ADIS16400_MAGN_CHAN(Z, ADIS16400_ZMAGN_OUT, 14), ADIS16400_TEMP_CHAN(ADIS16400_TEMP_OUT, 12), ADIS16400_AUX_ADC_CHAN(ADIS16400_AUX_ADC, 12), - IIO_CHAN_SOFT_TIMESTAMP(12) + IIO_CHAN_SOFT_TIMESTAMP(ADIS16400_SCAN_TIMESTAMP), }; static const struct iio_chan_spec adis16448_channels[] = { @@ -659,7 +659,7 @@ }, }, ADIS16400_TEMP_CHAN(ADIS16448_TEMP_OUT, 12), - IIO_CHAN_SOFT_TIMESTAMP(11) + IIO_CHAN_SOFT_TIMESTAMP(ADIS16400_SCAN_TIMESTAMP), }; static const struct iio_chan_spec adis16350_channels[] = { @@ -677,7 +677,7 @@ ADIS16400_MOD_TEMP_CHAN(X, ADIS16350_XTEMP_OUT, 12), ADIS16400_MOD_TEMP_CHAN(Y, ADIS16350_YTEMP_OUT, 12), ADIS16400_MOD_TEMP_CHAN(Z, ADIS16350_ZTEMP_OUT, 12), - IIO_CHAN_SOFT_TIMESTAMP(11) + IIO_CHAN_SOFT_TIMESTAMP(ADIS16400_SCAN_TIMESTAMP), }; static const struct iio_chan_spec adis16300_channels[] = { @@ -690,7 +690,7 @@ ADIS16400_AUX_ADC_CHAN(ADIS16300_AUX_ADC, 12), ADIS16400_INCLI_CHAN(X, ADIS16300_PITCH_OUT, 13), ADIS16400_INCLI_CHAN(Y, ADIS16300_ROLL_OUT, 13), - IIO_CHAN_SOFT_TIMESTAMP(14) + IIO_CHAN_SOFT_TIMESTAMP(ADIS16400_SCAN_TIMESTAMP), }; static const struct iio_chan_spec adis16334_channels[] = { @@ -701,7 +701,7 @@ ADIS16400_ACCEL_CHAN(Y, ADIS16400_YACCL_OUT, 14), ADIS16400_ACCEL_CHAN(Z, ADIS16400_ZACCL_OUT, 14), ADIS16400_TEMP_CHAN(ADIS16350_XTEMP_OUT, 12), - IIO_CHAN_SOFT_TIMESTAMP(8) + IIO_CHAN_SOFT_TIMESTAMP(ADIS16400_SCAN_TIMESTAMP), }; static struct attribute *adis16400_attributes[] = { --- linux-3.13.0.orig/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c +++ linux-3.13.0/drivers/iio/imu/inv_mpu6050/inv_mpu_core.c @@ -661,6 +661,7 @@ { struct inv_mpu6050_state *st; struct iio_dev *indio_dev; + struct inv_mpu6050_platform_data *pdata; int result; if (!i2c_check_functionality(client->adapter, @@ -673,8 +674,10 @@ st = iio_priv(indio_dev); st->client = client; - st->plat_data = *(struct inv_mpu6050_platform_data - *)dev_get_platdata(&client->dev); + pdata = (struct inv_mpu6050_platform_data + *)dev_get_platdata(&client->dev); + if (pdata) + st->plat_data = *pdata; /* power is turned on inside check chip type*/ result = inv_check_and_setup_chip(st, id); if (result) --- linux-3.13.0.orig/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c +++ linux-3.13.0/drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c @@ -135,7 +135,7 @@ ret = iio_trigger_register(st->trig); if (ret) goto error_free_irq; - indio_dev->trig = st->trig; + indio_dev->trig = iio_trigger_get(st->trig); return 0; --- linux-3.13.0.orig/drivers/iio/industrialio-buffer.c +++ linux-3.13.0/drivers/iio/industrialio-buffer.c @@ -136,7 +136,8 @@ int ret; struct iio_dev *indio_dev = dev_to_iio_dev(dev); - ret = test_bit(to_iio_dev_attr(attr)->address, + /* Ensure ret is 0 or 1. */ + ret = !!test_bit(to_iio_dev_attr(attr)->address, indio_dev->buffer->scan_mask); return sprintf(buf, "%d\n", ret); @@ -837,7 +838,8 @@ if (!buffer->scan_mask) return 0; - return test_bit(bit, buffer->scan_mask); + /* Ensure return value is 0 or 1. */ + return !!test_bit(bit, buffer->scan_mask); }; EXPORT_SYMBOL_GPL(iio_scan_mask_query); @@ -922,7 +924,7 @@ /* Now we have the two masks, work from least sig and build up sizes */ for_each_set_bit(out_ind, - indio_dev->active_scan_mask, + buffer->scan_mask, indio_dev->masklength) { in_ind = find_next_bit(indio_dev->active_scan_mask, indio_dev->masklength, --- linux-3.13.0.orig/drivers/iio/industrialio-event.c +++ linux-3.13.0/drivers/iio/industrialio-event.c @@ -362,6 +362,9 @@ &indio_dev->event_interface->dev_attr_list); kfree(postfix); + if ((ret == -EBUSY) && (shared_by != IIO_SEPARATE)) + continue; + if (ret) return ret; --- linux-3.13.0.orig/drivers/iio/inkern.c +++ linux-3.13.0/drivers/iio/inkern.c @@ -178,12 +178,12 @@ index = of_property_match_string(np, "io-channel-names", name); chan = of_iio_channel_get(np, index); - if (!IS_ERR(chan)) + if (!IS_ERR(chan) || PTR_ERR(chan) == -EPROBE_DEFER) break; else if (name && index >= 0) { pr_err("ERROR: could not get IIO channel %s:%s(%i)\n", np->full_name, name ? name : "", index); - return chan; + return NULL; } /* @@ -193,8 +193,9 @@ */ np = np->parent; if (np && !of_get_property(np, "io-channel-ranges", NULL)) - break; + return NULL; } + return chan; } @@ -317,6 +318,7 @@ if (channel != NULL) return channel; } + return iio_channel_get_sys(name, channel_name); } EXPORT_SYMBOL_GPL(iio_channel_get); --- linux-3.13.0.orig/drivers/iio/light/cm36651.c +++ linux-3.13.0/drivers/iio/light/cm36651.c @@ -628,7 +628,19 @@ cm36651->client = client; cm36651->ps_client = i2c_new_dummy(client->adapter, CM36651_I2C_ADDR_PS); + if (!cm36651->ps_client) { + dev_err(&client->dev, "%s: new i2c device failed\n", __func__); + ret = -ENODEV; + goto error_disable_reg; + } + cm36651->ara_client = i2c_new_dummy(client->adapter, CM36651_ARA); + if (!cm36651->ara_client) { + dev_err(&client->dev, "%s: new i2c device failed\n", __func__); + ret = -ENODEV; + goto error_i2c_unregister_ps; + } + mutex_init(&cm36651->lock); indio_dev->dev.parent = &client->dev; indio_dev->channels = cm36651_channels; @@ -640,7 +652,7 @@ ret = cm36651_setup_reg(cm36651); if (ret) { dev_err(&client->dev, "%s: register setup failed\n", __func__); - goto error_disable_reg; + goto error_i2c_unregister_ara; } ret = request_threaded_irq(client->irq, NULL, cm36651_irq_handler, @@ -648,7 +660,7 @@ "cm36651", indio_dev); if (ret) { dev_err(&client->dev, "%s: request irq failed\n", __func__); - goto error_disable_reg; + goto error_i2c_unregister_ara; } ret = iio_device_register(indio_dev); @@ -661,6 +673,10 @@ error_free_irq: free_irq(client->irq, indio_dev); +error_i2c_unregister_ara: + i2c_unregister_device(cm36651->ara_client); +error_i2c_unregister_ps: + i2c_unregister_device(cm36651->ps_client); error_disable_reg: regulator_disable(cm36651->vled_reg); return ret; @@ -674,6 +690,8 @@ iio_device_unregister(indio_dev); regulator_disable(cm36651->vled_reg); free_irq(client->irq, indio_dev); + i2c_unregister_device(cm36651->ps_client); + i2c_unregister_device(cm36651->ara_client); return 0; } --- linux-3.13.0.orig/drivers/iio/magnetometer/ak8975.c +++ linux-3.13.0/drivers/iio/magnetometer/ak8975.c @@ -85,6 +85,7 @@ #define AK8975_MAX_CONVERSION_TIMEOUT 500 #define AK8975_CONVERSION_DONE_POLL_TIME 10 #define AK8975_DATA_READY_TIMEOUT ((100*HZ)/1000) +#define RAW_TO_GAUSS(asa) ((((asa) + 128) * 3000) / 256) /* * Per-instance context data for the device. @@ -265,15 +266,15 @@ * * Since 1uT = 0.01 gauss, our final scale factor becomes: * - * Hadj = H * ((ASA + 128) / 256) * 3/10 * 100 - * Hadj = H * ((ASA + 128) * 30 / 256 + * Hadj = H * ((ASA + 128) / 256) * 3/10 * 1/100 + * Hadj = H * ((ASA + 128) * 0.003) / 256 * * Since ASA doesn't change, we cache the resultant scale factor into the * device context in ak8975_setup(). */ - data->raw_to_gauss[0] = ((data->asa[0] + 128) * 30) >> 8; - data->raw_to_gauss[1] = ((data->asa[1] + 128) * 30) >> 8; - data->raw_to_gauss[2] = ((data->asa[2] + 128) * 30) >> 8; + data->raw_to_gauss[0] = RAW_TO_GAUSS(data->asa[0]); + data->raw_to_gauss[1] = RAW_TO_GAUSS(data->asa[1]); + data->raw_to_gauss[2] = RAW_TO_GAUSS(data->asa[2]); return 0; } @@ -351,8 +352,6 @@ { struct ak8975_data *data = iio_priv(indio_dev); struct i2c_client *client = data->client; - u16 meas_reg; - s16 raw; int ret; mutex_lock(&data->lock); @@ -400,16 +399,11 @@ dev_err(&client->dev, "Read axis data fails\n"); goto exit; } - meas_reg = ret; mutex_unlock(&data->lock); - /* Endian conversion of the measured values. */ - raw = (s16) (le16_to_cpu(meas_reg)); - /* Clamp to valid range. */ - raw = clamp_t(s16, raw, -4096, 4095); - *val = raw; + *val = clamp_t(s16, ret, -4096, 4095); return IIO_VAL_INT; exit: @@ -428,8 +422,9 @@ case IIO_CHAN_INFO_RAW: return ak8975_read_axis(indio_dev, chan->address, val); case IIO_CHAN_INFO_SCALE: - *val = data->raw_to_gauss[chan->address]; - return IIO_VAL_INT; + *val = 0; + *val2 = data->raw_to_gauss[chan->address]; + return IIO_VAL_INT_PLUS_MICRO; } return -EINVAL; } --- linux-3.13.0.orig/drivers/iio/magnetometer/st_magn_core.c +++ linux-3.13.0/drivers/iio/magnetometer/st_magn_core.c @@ -42,7 +42,8 @@ #define ST_MAGN_FS_AVL_5600MG 5600 #define ST_MAGN_FS_AVL_8000MG 8000 #define ST_MAGN_FS_AVL_8100MG 8100 -#define ST_MAGN_FS_AVL_10000MG 10000 +#define ST_MAGN_FS_AVL_12000MG 12000 +#define ST_MAGN_FS_AVL_16000MG 16000 /* CUSTOM VALUES FOR SENSOR 1 */ #define ST_MAGN_1_WAI_EXP 0x3c @@ -69,20 +70,20 @@ #define ST_MAGN_1_FS_AVL_4700_VAL 0x05 #define ST_MAGN_1_FS_AVL_5600_VAL 0x06 #define ST_MAGN_1_FS_AVL_8100_VAL 0x07 -#define ST_MAGN_1_FS_AVL_1300_GAIN_XY 1100 -#define ST_MAGN_1_FS_AVL_1900_GAIN_XY 855 -#define ST_MAGN_1_FS_AVL_2500_GAIN_XY 670 -#define ST_MAGN_1_FS_AVL_4000_GAIN_XY 450 -#define ST_MAGN_1_FS_AVL_4700_GAIN_XY 400 -#define ST_MAGN_1_FS_AVL_5600_GAIN_XY 330 -#define ST_MAGN_1_FS_AVL_8100_GAIN_XY 230 -#define ST_MAGN_1_FS_AVL_1300_GAIN_Z 980 -#define ST_MAGN_1_FS_AVL_1900_GAIN_Z 760 -#define ST_MAGN_1_FS_AVL_2500_GAIN_Z 600 -#define ST_MAGN_1_FS_AVL_4000_GAIN_Z 400 -#define ST_MAGN_1_FS_AVL_4700_GAIN_Z 355 -#define ST_MAGN_1_FS_AVL_5600_GAIN_Z 295 -#define ST_MAGN_1_FS_AVL_8100_GAIN_Z 205 +#define ST_MAGN_1_FS_AVL_1300_GAIN_XY 909 +#define ST_MAGN_1_FS_AVL_1900_GAIN_XY 1169 +#define ST_MAGN_1_FS_AVL_2500_GAIN_XY 1492 +#define ST_MAGN_1_FS_AVL_4000_GAIN_XY 2222 +#define ST_MAGN_1_FS_AVL_4700_GAIN_XY 2500 +#define ST_MAGN_1_FS_AVL_5600_GAIN_XY 3030 +#define ST_MAGN_1_FS_AVL_8100_GAIN_XY 4347 +#define ST_MAGN_1_FS_AVL_1300_GAIN_Z 1020 +#define ST_MAGN_1_FS_AVL_1900_GAIN_Z 1315 +#define ST_MAGN_1_FS_AVL_2500_GAIN_Z 1666 +#define ST_MAGN_1_FS_AVL_4000_GAIN_Z 2500 +#define ST_MAGN_1_FS_AVL_4700_GAIN_Z 2816 +#define ST_MAGN_1_FS_AVL_5600_GAIN_Z 3389 +#define ST_MAGN_1_FS_AVL_8100_GAIN_Z 4878 #define ST_MAGN_1_MULTIREAD_BIT false /* CUSTOM VALUES FOR SENSOR 2 */ @@ -105,10 +106,12 @@ #define ST_MAGN_2_FS_MASK 0x60 #define ST_MAGN_2_FS_AVL_4000_VAL 0x00 #define ST_MAGN_2_FS_AVL_8000_VAL 0x01 -#define ST_MAGN_2_FS_AVL_10000_VAL 0x02 -#define ST_MAGN_2_FS_AVL_4000_GAIN 430 -#define ST_MAGN_2_FS_AVL_8000_GAIN 230 -#define ST_MAGN_2_FS_AVL_10000_GAIN 230 +#define ST_MAGN_2_FS_AVL_12000_VAL 0x02 +#define ST_MAGN_2_FS_AVL_16000_VAL 0x03 +#define ST_MAGN_2_FS_AVL_4000_GAIN 146 +#define ST_MAGN_2_FS_AVL_8000_GAIN 292 +#define ST_MAGN_2_FS_AVL_12000_GAIN 438 +#define ST_MAGN_2_FS_AVL_16000_GAIN 584 #define ST_MAGN_2_MULTIREAD_BIT false #define ST_MAGN_2_OUT_X_L_ADDR 0x28 #define ST_MAGN_2_OUT_Y_L_ADDR 0x2a @@ -266,9 +269,14 @@ .gain = ST_MAGN_2_FS_AVL_8000_GAIN, }, [2] = { - .num = ST_MAGN_FS_AVL_10000MG, - .value = ST_MAGN_2_FS_AVL_10000_VAL, - .gain = ST_MAGN_2_FS_AVL_10000_GAIN, + .num = ST_MAGN_FS_AVL_12000MG, + .value = ST_MAGN_2_FS_AVL_12000_VAL, + .gain = ST_MAGN_2_FS_AVL_12000_GAIN, + }, + [3] = { + .num = ST_MAGN_FS_AVL_16000MG, + .value = ST_MAGN_2_FS_AVL_16000_VAL, + .gain = ST_MAGN_2_FS_AVL_16000_GAIN, }, }, }, --- linux-3.13.0.orig/drivers/infiniband/Kconfig +++ linux-3.13.0/drivers/infiniband/Kconfig @@ -3,6 +3,8 @@ depends on PCI || BROKEN depends on HAS_IOMEM depends on NET + depends on INET + depends on m || IPV6 != m ---help--- Core support for InfiniBand (IB). Make sure to also select any protocols you wish to use as well as drivers for your @@ -38,8 +40,7 @@ config INFINIBAND_ADDR_TRANS bool - depends on INET - depends on !(INFINIBAND = y && IPV6 = m) + depends on INFINIBAND default y source "drivers/infiniband/hw/mthca/Kconfig" @@ -53,6 +54,7 @@ source "drivers/infiniband/hw/mlx5/Kconfig" source "drivers/infiniband/hw/nes/Kconfig" source "drivers/infiniband/hw/ocrdma/Kconfig" +source "drivers/infiniband/hw/usnic/Kconfig" source "drivers/infiniband/ulp/ipoib/Kconfig" --- linux-3.13.0.orig/drivers/infiniband/Makefile +++ linux-3.13.0/drivers/infiniband/Makefile @@ -10,6 +10,7 @@ obj-$(CONFIG_MLX5_INFINIBAND) += hw/mlx5/ obj-$(CONFIG_INFINIBAND_NES) += hw/nes/ obj-$(CONFIG_INFINIBAND_OCRDMA) += hw/ocrdma/ +obj-$(CONFIG_INFINIBAND_USNIC) += hw/usnic/ obj-$(CONFIG_INFINIBAND_IPOIB) += ulp/ipoib/ obj-$(CONFIG_INFINIBAND_SRP) += ulp/srp/ obj-$(CONFIG_INFINIBAND_SRPT) += ulp/srpt/ --- linux-3.13.0.orig/drivers/infiniband/core/Makefile +++ linux-3.13.0/drivers/infiniband/core/Makefile @@ -1,8 +1,9 @@ -infiniband-$(CONFIG_INFINIBAND_ADDR_TRANS) := ib_addr.o rdma_cm.o +infiniband-$(CONFIG_INFINIBAND_ADDR_TRANS) := rdma_cm.o user_access-$(CONFIG_INFINIBAND_ADDR_TRANS) := rdma_ucm.o obj-$(CONFIG_INFINIBAND) += ib_core.o ib_mad.o ib_sa.o \ - ib_cm.o iw_cm.o $(infiniband-y) + ib_cm.o iw_cm.o ib_addr.o \ + $(infiniband-y) obj-$(CONFIG_INFINIBAND_USER_MAD) += ib_umad.o obj-$(CONFIG_INFINIBAND_USER_ACCESS) += ib_uverbs.o ib_ucm.o \ $(user_access-y) --- linux-3.13.0.orig/drivers/infiniband/core/addr.c +++ linux-3.13.0/drivers/infiniband/core/addr.c @@ -86,6 +86,8 @@ } EXPORT_SYMBOL(rdma_addr_size); +static struct rdma_addr_client self; + void rdma_addr_register_client(struct rdma_addr_client *client) { atomic_set(&client->refcount, 1); @@ -119,7 +121,8 @@ } EXPORT_SYMBOL(rdma_copy_addr); -int rdma_translate_ip(struct sockaddr *addr, struct rdma_dev_addr *dev_addr) +int rdma_translate_ip(struct sockaddr *addr, struct rdma_dev_addr *dev_addr, + u16 *vlan_id) { struct net_device *dev; int ret = -EADDRNOTAVAIL; @@ -142,6 +145,8 @@ return ret; ret = rdma_copy_addr(dev_addr, dev, NULL); + if (vlan_id) + *vlan_id = rdma_vlan_dev_vlan_id(dev); dev_put(dev); break; @@ -153,6 +158,8 @@ &((struct sockaddr_in6 *) addr)->sin6_addr, dev, 1)) { ret = rdma_copy_addr(dev_addr, dev, NULL); + if (vlan_id) + *vlan_id = rdma_vlan_dev_vlan_id(dev); break; } } @@ -238,7 +245,7 @@ src_in->sin_addr.s_addr = fl4.saddr; if (rt->dst.dev->flags & IFF_LOOPBACK) { - ret = rdma_translate_ip((struct sockaddr *) dst_in, addr); + ret = rdma_translate_ip((struct sockaddr *)dst_in, addr, NULL); if (!ret) memcpy(addr->dst_dev_addr, addr->src_dev_addr, MAX_ADDR_LEN); goto put; @@ -286,7 +293,7 @@ } if (dst->dev->flags & IFF_LOOPBACK) { - ret = rdma_translate_ip((struct sockaddr *) dst_in, addr); + ret = rdma_translate_ip((struct sockaddr *)dst_in, addr, NULL); if (!ret) memcpy(addr->dst_dev_addr, addr->src_dev_addr, MAX_ADDR_LEN); goto put; @@ -437,6 +444,88 @@ } EXPORT_SYMBOL(rdma_addr_cancel); +struct resolve_cb_context { + struct rdma_dev_addr *addr; + struct completion comp; +}; + +static void resolve_cb(int status, struct sockaddr *src_addr, + struct rdma_dev_addr *addr, void *context) +{ + memcpy(((struct resolve_cb_context *)context)->addr, addr, sizeof(struct + rdma_dev_addr)); + complete(&((struct resolve_cb_context *)context)->comp); +} + +int rdma_addr_find_dmac_by_grh(union ib_gid *sgid, union ib_gid *dgid, u8 *dmac, + u16 *vlan_id) +{ + int ret = 0; + struct rdma_dev_addr dev_addr; + struct resolve_cb_context ctx; + struct net_device *dev; + + union { + struct sockaddr _sockaddr; + struct sockaddr_in _sockaddr_in; + struct sockaddr_in6 _sockaddr_in6; + } sgid_addr, dgid_addr; + + + ret = rdma_gid2ip(&sgid_addr._sockaddr, sgid); + if (ret) + return ret; + + ret = rdma_gid2ip(&dgid_addr._sockaddr, dgid); + if (ret) + return ret; + + memset(&dev_addr, 0, sizeof(dev_addr)); + + ctx.addr = &dev_addr; + init_completion(&ctx.comp); + ret = rdma_resolve_ip(&self, &sgid_addr._sockaddr, &dgid_addr._sockaddr, + &dev_addr, 1000, resolve_cb, &ctx); + if (ret) + return ret; + + wait_for_completion(&ctx.comp); + + memcpy(dmac, dev_addr.dst_dev_addr, ETH_ALEN); + dev = dev_get_by_index(&init_net, dev_addr.bound_dev_if); + if (!dev) + return -ENODEV; + if (vlan_id) + *vlan_id = rdma_vlan_dev_vlan_id(dev); + dev_put(dev); + return ret; +} +EXPORT_SYMBOL(rdma_addr_find_dmac_by_grh); + +int rdma_addr_find_smac_by_sgid(union ib_gid *sgid, u8 *smac, u16 *vlan_id) +{ + int ret = 0; + struct rdma_dev_addr dev_addr; + union { + struct sockaddr _sockaddr; + struct sockaddr_in _sockaddr_in; + struct sockaddr_in6 _sockaddr_in6; + } gid_addr; + + ret = rdma_gid2ip(&gid_addr._sockaddr, sgid); + + if (ret) + return ret; + memset(&dev_addr, 0, sizeof(dev_addr)); + ret = rdma_translate_ip(&gid_addr._sockaddr, &dev_addr, vlan_id); + if (ret) + return ret; + + memcpy(smac, dev_addr.src_dev_addr, ETH_ALEN); + return ret; +} +EXPORT_SYMBOL(rdma_addr_find_smac_by_sgid); + static int netevent_callback(struct notifier_block *self, unsigned long event, void *ctx) { @@ -461,11 +550,13 @@ return -ENOMEM; register_netevent_notifier(&nb); + rdma_addr_register_client(&self); return 0; } static void __exit addr_cleanup(void) { + rdma_addr_unregister_client(&self); unregister_netevent_notifier(&nb); destroy_workqueue(addr_wq); } --- linux-3.13.0.orig/drivers/infiniband/core/cm.c +++ linux-3.13.0/drivers/infiniband/core/cm.c @@ -47,6 +47,7 @@ #include #include #include +#include #include #include @@ -177,6 +178,8 @@ struct ib_ah_attr ah_attr; u16 pkey_index; u8 timeout; + u8 valid; + u8 smac[ETH_ALEN]; }; struct cm_work { @@ -376,6 +379,9 @@ ib_init_ah_from_path(cm_dev->ib_device, port->port_num, path, &av->ah_attr); av->timeout = path->packet_life_time + 1; + memcpy(av->smac, path->smac, sizeof(av->smac)); + + av->valid = 1; return 0; } @@ -1554,6 +1560,9 @@ cm_process_routed_req(req_msg, work->mad_recv_wc->wc); cm_format_paths_from_req(req_msg, &work->path[0], &work->path[1]); + + memcpy(work->path[0].dmac, cm_id_priv->av.ah_attr.dmac, ETH_ALEN); + work->path[0].vlan_id = cm_id_priv->av.ah_attr.vlan_id; ret = cm_init_av_by_path(&work->path[0], &cm_id_priv->av); if (ret) { ib_get_cached_gid(work->port->cm_dev->ib_device, @@ -3500,6 +3509,32 @@ *qp_attr_mask = IB_QP_STATE | IB_QP_AV | IB_QP_PATH_MTU | IB_QP_DEST_QPN | IB_QP_RQ_PSN; qp_attr->ah_attr = cm_id_priv->av.ah_attr; + if (!cm_id_priv->av.valid) { + spin_unlock_irqrestore(&cm_id_priv->lock, flags); + return -EINVAL; + } + if (cm_id_priv->av.ah_attr.vlan_id != 0xffff) { + qp_attr->vlan_id = cm_id_priv->av.ah_attr.vlan_id; + *qp_attr_mask |= IB_QP_VID; + } + if (!is_zero_ether_addr(cm_id_priv->av.smac)) { + memcpy(qp_attr->smac, cm_id_priv->av.smac, + sizeof(qp_attr->smac)); + *qp_attr_mask |= IB_QP_SMAC; + } + if (cm_id_priv->alt_av.valid) { + if (cm_id_priv->alt_av.ah_attr.vlan_id != 0xffff) { + qp_attr->alt_vlan_id = + cm_id_priv->alt_av.ah_attr.vlan_id; + *qp_attr_mask |= IB_QP_ALT_VID; + } + if (!is_zero_ether_addr(cm_id_priv->alt_av.smac)) { + memcpy(qp_attr->alt_smac, + cm_id_priv->alt_av.smac, + sizeof(qp_attr->alt_smac)); + *qp_attr_mask |= IB_QP_ALT_SMAC; + } + } qp_attr->path_mtu = cm_id_priv->path_mtu; qp_attr->dest_qp_num = be32_to_cpu(cm_id_priv->remote_qpn); qp_attr->rq_psn = be32_to_cpu(cm_id_priv->rq_psn); --- linux-3.13.0.orig/drivers/infiniband/core/cma.c +++ linux-3.13.0/drivers/infiniband/core/cma.c @@ -340,7 +340,7 @@ int ret; if (addr->sa_family != AF_IB) { - ret = rdma_translate_ip(addr, dev_addr); + ret = rdma_translate_ip(addr, dev_addr, NULL); } else { cma_translate_ib((struct sockaddr_ib *) addr, dev_addr); ret = 0; @@ -365,7 +365,9 @@ return -EINVAL; mutex_lock(&lock); - iboe_addr_get_sgid(dev_addr, &iboe_gid); + rdma_ip2gid((struct sockaddr *)&id_priv->id.route.addr.src_addr, + &iboe_gid); + memcpy(&gid, dev_addr->src_dev_addr + rdma_addr_gid_offset(dev_addr), sizeof gid); if (listen_id_priv && @@ -603,6 +605,7 @@ { struct ib_qp_attr qp_attr; int qp_attr_mask, ret; + union ib_gid sgid; mutex_lock(&id_priv->qp_mutex); if (!id_priv->id.qp) { @@ -625,6 +628,20 @@ if (ret) goto out; + ret = ib_query_gid(id_priv->id.device, id_priv->id.port_num, + qp_attr.ah_attr.grh.sgid_index, &sgid); + if (ret) + goto out; + + if (rdma_node_get_transport(id_priv->cma_dev->device->node_type) + == RDMA_TRANSPORT_IB && + rdma_port_get_link_layer(id_priv->id.device, id_priv->id.port_num) + == IB_LINK_LAYER_ETHERNET) { + ret = rdma_addr_find_smac_by_sgid(&sgid, qp_attr.smac, NULL); + + if (ret) + goto out; + } if (conn_param) qp_attr.max_dest_rd_atomic = conn_param->responder_resources; ret = ib_modify_qp(id_priv->id.qp, &qp_attr, qp_attr_mask); @@ -725,6 +742,7 @@ else ret = ib_cm_init_qp_attr(id_priv->cm_id.ib, qp_attr, qp_attr_mask); + if (qp_attr->qp_state == IB_QPS_RTR) qp_attr->rq_psn = id_priv->seq_num; break; @@ -1309,13 +1327,13 @@ ret = conn_id->id.event_handler(&conn_id->id, &event); if (ret) goto err3; - /* * Acquire mutex to prevent user executing rdma_destroy_id() * while we're accessing the cm_id. */ mutex_lock(&lock); - if (cma_comp(conn_id, RDMA_CM_CONNECT) && (conn_id->id.qp_type != IB_QPT_UD)) + if (cma_comp(conn_id, RDMA_CM_CONNECT) && + (conn_id->id.qp_type != IB_QPT_UD)) ib_send_cm_mra(cm_id, CMA_CM_MRA_SETTING, NULL, 0); mutex_unlock(&lock); mutex_unlock(&conn_id->handler_mutex); @@ -1474,7 +1492,7 @@ mutex_lock_nested(&conn_id->handler_mutex, SINGLE_DEPTH_NESTING); conn_id->state = RDMA_CM_CONNECT; - ret = rdma_translate_ip(laddr, &conn_id->id.route.addr.dev_addr); + ret = rdma_translate_ip(laddr, &conn_id->id.route.addr.dev_addr, NULL); if (ret) { mutex_unlock(&conn_id->handler_mutex); rdma_destroy_id(new_cm_id); @@ -1873,7 +1891,7 @@ struct cma_work *work; int ret; struct net_device *ndev = NULL; - u16 vid; + work = kzalloc(sizeof *work, GFP_KERNEL); if (!work) @@ -1897,10 +1915,14 @@ goto err2; } - vid = rdma_vlan_dev_vlan_id(ndev); - - iboe_mac_vlan_to_ll(&route->path_rec->sgid, addr->dev_addr.src_dev_addr, vid); - iboe_mac_vlan_to_ll(&route->path_rec->dgid, addr->dev_addr.dst_dev_addr, vid); + route->path_rec->vlan_id = rdma_vlan_dev_vlan_id(ndev); + memcpy(route->path_rec->dmac, addr->dev_addr.dst_dev_addr, ETH_ALEN); + memcpy(route->path_rec->smac, ndev->dev_addr, ndev->addr_len); + + rdma_ip2gid((struct sockaddr *)&id_priv->id.route.addr.src_addr, + &route->path_rec->sgid); + rdma_ip2gid((struct sockaddr *)&id_priv->id.route.addr.dst_addr, + &route->path_rec->dgid); route->path_rec->hop_limit = 1; route->path_rec->reversible = 1; @@ -2063,6 +2085,7 @@ RDMA_CM_ADDR_RESOLVED)) goto out; + memcpy(cma_src_addr(id_priv), src_addr, rdma_addr_size(src_addr)); if (!status && !id_priv->cma_dev) status = cma_acquire_dev(id_priv, NULL); @@ -2072,10 +2095,8 @@ goto out; event.event = RDMA_CM_EVENT_ADDR_ERROR; event.status = status; - } else { - memcpy(cma_src_addr(id_priv), src_addr, rdma_addr_size(src_addr)); + } else event.event = RDMA_CM_EVENT_ADDR_RESOLVED; - } if (id_priv->id.event_handler(&id_priv->id, &event)) { cma_exch(id_priv, RDMA_CM_DESTROYING); @@ -2480,8 +2501,11 @@ return 0; sin6 = (struct sockaddr_in6 *) addr; - if ((ipv6_addr_type(&sin6->sin6_addr) & IPV6_ADDR_LINKLOCAL) && - !sin6->sin6_scope_id) + + if (!(ipv6_addr_type(&sin6->sin6_addr) & IPV6_ADDR_LINKLOCAL)) + return 0; + + if (!sin6->sin6_scope_id) return -EINVAL; dev_addr->bound_dev_if = sin6->sin6_scope_id; @@ -2556,6 +2580,7 @@ if (ret) goto err1; + memcpy(cma_src_addr(id_priv), addr, rdma_addr_size(addr)); if (!cma_any_addr(addr)) { ret = cma_translate_addr(addr, &id->route.addr.dev_addr); if (ret) @@ -2566,7 +2591,6 @@ goto err1; } - memcpy(cma_src_addr(id_priv), addr, rdma_addr_size(addr)); if (!(id_priv->options & (1 << CMA_OPTION_AFONLY))) { if (addr->sa_family == AF_INET) id_priv->afonly = 1; @@ -3295,7 +3319,8 @@ err = -EINVAL; goto out2; } - iboe_addr_get_sgid(dev_addr, &mc->multicast.ib->rec.port_gid); + rdma_ip2gid((struct sockaddr *)&id_priv->id.route.addr.src_addr, + &mc->multicast.ib->rec.port_gid); work->id = id_priv; work->mc = mc; INIT_WORK(&work->work, iboe_mcast_work_handler); --- linux-3.13.0.orig/drivers/infiniband/core/core_priv.h +++ linux-3.13.0/drivers/infiniband/core/core_priv.h @@ -49,4 +49,6 @@ int ib_cache_setup(void); void ib_cache_cleanup(void); +int ib_resolve_eth_l2_attrs(struct ib_qp *qp, + struct ib_qp_attr *qp_attr, int *qp_attr_mask); #endif /* _CORE_PRIV_H */ --- linux-3.13.0.orig/drivers/infiniband/core/iwcm.c +++ linux-3.13.0/drivers/infiniband/core/iwcm.c @@ -46,6 +46,7 @@ #include #include #include +#include #include #include @@ -65,6 +66,20 @@ struct list_head free_list; }; +static unsigned int default_backlog = 256; + +static struct ctl_table_header *iwcm_ctl_table_hdr; +static struct ctl_table iwcm_ctl_table[] = { + { + .procname = "default_backlog", + .data = &default_backlog, + .maxlen = sizeof(default_backlog), + .mode = 0644, + .proc_handler = proc_dointvec, + }, + { } +}; + /* * The following services provide a mechanism for pre-allocating iwcm_work * elements. The design pre-allocates them based on the cm_id type: @@ -334,7 +349,6 @@ { struct iwcm_id_private *cm_id_priv; unsigned long flags; - int ret; cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); /* @@ -350,7 +364,7 @@ cm_id_priv->state = IW_CM_STATE_DESTROYING; spin_unlock_irqrestore(&cm_id_priv->lock, flags); /* destroy the listening endpoint */ - ret = cm_id->device->iwcm->destroy_listen(cm_id); + cm_id->device->iwcm->destroy_listen(cm_id); spin_lock_irqsave(&cm_id_priv->lock, flags); break; case IW_CM_STATE_ESTABLISHED: @@ -426,6 +440,9 @@ cm_id_priv = container_of(cm_id, struct iwcm_id_private, id); + if (!backlog) + backlog = default_backlog; + ret = alloc_work_entries(cm_id_priv, backlog); if (ret) return ret; @@ -1031,11 +1048,20 @@ if (!iwcm_wq) return -ENOMEM; + iwcm_ctl_table_hdr = register_net_sysctl(&init_net, "net/iw_cm", + iwcm_ctl_table); + if (!iwcm_ctl_table_hdr) { + pr_err("iw_cm: couldn't register sysctl paths\n"); + destroy_workqueue(iwcm_wq); + return -ENOMEM; + } + return 0; } static void __exit iw_cm_cleanup(void) { + unregister_net_sysctl_table(iwcm_ctl_table_hdr); destroy_workqueue(iwcm_wq); } --- linux-3.13.0.orig/drivers/infiniband/core/sa_query.c +++ linux-3.13.0/drivers/infiniband/core/sa_query.c @@ -42,7 +42,7 @@ #include #include #include - +#include #include #include #include "sa.h" @@ -556,6 +556,13 @@ ah_attr->grh.hop_limit = rec->hop_limit; ah_attr->grh.traffic_class = rec->traffic_class; } + if (force_grh) { + memcpy(ah_attr->dmac, rec->dmac, ETH_ALEN); + ah_attr->vlan_id = rec->vlan_id; + } else { + ah_attr->vlan_id = 0xffff; + } + return 0; } EXPORT_SYMBOL(ib_init_ah_from_path); @@ -670,6 +677,9 @@ ib_unpack(path_rec_table, ARRAY_SIZE(path_rec_table), mad->data, &rec); + rec.vlan_id = 0xffff; + memset(rec.dmac, 0, ETH_ALEN); + memset(rec.smac, 0, ETH_ALEN); query->callback(status, &rec, query->context); } else query->callback(status, NULL, query->context); --- linux-3.13.0.orig/drivers/infiniband/core/sysfs.c +++ linux-3.13.0/drivers/infiniband/core/sysfs.c @@ -613,6 +613,7 @@ case RDMA_NODE_IB_CA: return sprintf(buf, "%d: CA\n", dev->node_type); case RDMA_NODE_RNIC: return sprintf(buf, "%d: RNIC\n", dev->node_type); case RDMA_NODE_USNIC: return sprintf(buf, "%d: usNIC\n", dev->node_type); + case RDMA_NODE_USNIC_UDP: return sprintf(buf, "%d: usNIC UDP\n", dev->node_type); case RDMA_NODE_IB_SWITCH: return sprintf(buf, "%d: switch\n", dev->node_type); case RDMA_NODE_IB_ROUTER: return sprintf(buf, "%d: router\n", dev->node_type); default: return sprintf(buf, "%d: \n", dev->node_type); --- linux-3.13.0.orig/drivers/infiniband/core/ucma.c +++ linux-3.13.0/drivers/infiniband/core/ucma.c @@ -655,24 +655,14 @@ static void ucma_copy_iboe_route(struct rdma_ucm_query_route_resp *resp, struct rdma_route *route) { - struct rdma_dev_addr *dev_addr; - struct net_device *dev; - u16 vid = 0; resp->num_paths = route->num_paths; switch (route->num_paths) { case 0: - dev_addr = &route->addr.dev_addr; - dev = dev_get_by_index(&init_net, dev_addr->bound_dev_if); - if (dev) { - vid = rdma_vlan_dev_vlan_id(dev); - dev_put(dev); - } - - iboe_mac_vlan_to_ll((union ib_gid *) &resp->ib_route[0].dgid, - dev_addr->dst_dev_addr, vid); - iboe_addr_get_sgid(dev_addr, - (union ib_gid *) &resp->ib_route[0].sgid); + rdma_ip2gid((struct sockaddr *)&route->addr.dst_addr, + (union ib_gid *)&resp->ib_route[0].dgid); + rdma_ip2gid((struct sockaddr *)&route->addr.src_addr, + (union ib_gid *)&resp->ib_route[0].sgid); resp->ib_route[0].pkey = cpu_to_be16(0xffff); break; case 2: --- linux-3.13.0.orig/drivers/infiniband/core/user_mad.c +++ linux-3.13.0/drivers/infiniband/core/user_mad.c @@ -98,7 +98,7 @@ struct ib_umad_device { int start_port, end_port; - struct kref ref; + struct kobject kobj; struct ib_umad_port port[0]; }; @@ -134,14 +134,18 @@ static void ib_umad_add_one(struct ib_device *device); static void ib_umad_remove_one(struct ib_device *device); -static void ib_umad_release_dev(struct kref *ref) +static void ib_umad_release_dev(struct kobject *kobj) { struct ib_umad_device *dev = - container_of(ref, struct ib_umad_device, ref); + container_of(kobj, struct ib_umad_device, kobj); kfree(dev); } +static struct kobj_type ib_umad_dev_ktype = { + .release = ib_umad_release_dev, +}; + static int hdr_size(struct ib_umad_file *file) { return file->use_pkey_index ? sizeof (struct ib_user_mad_hdr) : @@ -780,27 +784,19 @@ { struct ib_umad_port *port; struct ib_umad_file *file; - int ret; + int ret = -ENXIO; port = container_of(inode->i_cdev, struct ib_umad_port, cdev); - if (port) - kref_get(&port->umad_dev->ref); - else - return -ENXIO; mutex_lock(&port->file_mutex); - if (!port->ib_dev) { - ret = -ENXIO; + if (!port->ib_dev) goto out; - } + ret = -ENOMEM; file = kzalloc(sizeof *file, GFP_KERNEL); - if (!file) { - kref_put(&port->umad_dev->ref, ib_umad_release_dev); - ret = -ENOMEM; + if (!file) goto out; - } mutex_init(&file->mutex); spin_lock_init(&file->send_lock); @@ -814,6 +810,13 @@ list_add_tail(&file->port_list, &port->file_list); ret = nonseekable_open(inode, filp); + if (ret) { + list_del(&file->port_list); + kfree(file); + goto out; + } + + kobject_get(&port->umad_dev->kobj); out: mutex_unlock(&port->file_mutex); @@ -852,7 +855,7 @@ mutex_unlock(&file->port->file_mutex); kfree(file); - kref_put(&dev->ref, ib_umad_release_dev); + kobject_put(&dev->kobj); return 0; } @@ -880,10 +883,6 @@ int ret; port = container_of(inode->i_cdev, struct ib_umad_port, sm_cdev); - if (port) - kref_get(&port->umad_dev->ref); - else - return -ENXIO; if (filp->f_flags & O_NONBLOCK) { if (down_trylock(&port->sm_sem)) { @@ -898,17 +897,27 @@ } ret = ib_modify_port(port->ib_dev, port->port_num, 0, &props); - if (ret) { - up(&port->sm_sem); - goto fail; - } + if (ret) + goto err_up_sem; filp->private_data = port; - return nonseekable_open(inode, filp); + ret = nonseekable_open(inode, filp); + if (ret) + goto err_clr_sm_cap; + + kobject_get(&port->umad_dev->kobj); + + return 0; + +err_clr_sm_cap: + swap(props.set_port_cap_mask, props.clr_port_cap_mask); + ib_modify_port(port->ib_dev, port->port_num, 0, &props); + +err_up_sem: + up(&port->sm_sem); fail: - kref_put(&port->umad_dev->ref, ib_umad_release_dev); return ret; } @@ -927,7 +936,7 @@ up(&port->sm_sem); - kref_put(&port->umad_dev->ref, ib_umad_release_dev); + kobject_put(&port->umad_dev->kobj); return ret; } @@ -995,6 +1004,7 @@ } static int ib_umad_init_port(struct ib_device *device, int port_num, + struct ib_umad_device *umad_dev, struct ib_umad_port *port) { int devnum; @@ -1027,6 +1037,7 @@ cdev_init(&port->cdev, &umad_fops); port->cdev.owner = THIS_MODULE; + port->cdev.kobj.parent = &umad_dev->kobj; kobject_set_name(&port->cdev.kobj, "umad%d", port->dev_num); if (cdev_add(&port->cdev, base, 1)) goto err_cdev; @@ -1045,6 +1056,7 @@ base += IB_UMAD_MAX_PORTS; cdev_init(&port->sm_cdev, &umad_sm_fops); port->sm_cdev.owner = THIS_MODULE; + port->sm_cdev.kobj.parent = &umad_dev->kobj; kobject_set_name(&port->sm_cdev.kobj, "issm%d", port->dev_num); if (cdev_add(&port->sm_cdev, base, 1)) goto err_sm_cdev; @@ -1138,7 +1150,7 @@ if (!umad_dev) return; - kref_init(&umad_dev->ref); + kobject_init(&umad_dev->kobj, &ib_umad_dev_ktype); umad_dev->start_port = s; umad_dev->end_port = e; @@ -1146,7 +1158,8 @@ for (i = s; i <= e; ++i) { umad_dev->port[i - s].umad_dev = umad_dev; - if (ib_umad_init_port(device, i, &umad_dev->port[i - s])) + if (ib_umad_init_port(device, i, umad_dev, + &umad_dev->port[i - s])) goto err; } @@ -1158,7 +1171,7 @@ while (--i >= s) ib_umad_kill_port(&umad_dev->port[i - s]); - kref_put(&umad_dev->ref, ib_umad_release_dev); + kobject_put(&umad_dev->kobj); } static void ib_umad_remove_one(struct ib_device *device) @@ -1172,7 +1185,7 @@ for (i = 0; i <= umad_dev->end_port - umad_dev->start_port; ++i) ib_umad_kill_port(&umad_dev->port[i]); - kref_put(&umad_dev->ref, ib_umad_release_dev); + kobject_put(&umad_dev->kobj); } static char *umad_devnode(struct device *dev, umode_t *mode) --- linux-3.13.0.orig/drivers/infiniband/core/uverbs_cmd.c +++ linux-3.13.0/drivers/infiniband/core/uverbs_cmd.c @@ -40,6 +40,7 @@ #include #include "uverbs.h" +#include "core_priv.h" struct uverbs_lock_class { struct lock_class_key key; @@ -1961,6 +1962,9 @@ attr->alt_ah_attr.port_num = cmd.alt_dest.port_num; if (qp->real_qp == qp) { + ret = ib_resolve_eth_l2_attrs(qp, attr, &cmd.attr_mask); + if (ret) + goto out; ret = qp->device->modify_qp(qp, attr, modify_qp_mask(qp->qp_type, cmd.attr_mask), &udata); } else { --- linux-3.13.0.orig/drivers/infiniband/core/verbs.c +++ linux-3.13.0/drivers/infiniband/core/verbs.c @@ -44,6 +44,9 @@ #include #include +#include + +#include "core_priv.h" int ib_rate_to_mult(enum ib_rate rate) { @@ -116,6 +119,8 @@ return RDMA_TRANSPORT_IWARP; case RDMA_NODE_USNIC: return RDMA_TRANSPORT_USNIC; + case RDMA_NODE_USNIC_UDP: + return RDMA_TRANSPORT_USNIC_UDP; default: BUG(); return 0; @@ -133,6 +138,7 @@ return IB_LINK_LAYER_INFINIBAND; case RDMA_TRANSPORT_IWARP: case RDMA_TRANSPORT_USNIC: + case RDMA_TRANSPORT_USNIC_UDP: return IB_LINK_LAYER_ETHERNET; default: return IB_LINK_LAYER_UNSPECIFIED; @@ -192,8 +198,28 @@ u32 flow_class; u16 gid_index; int ret; + int is_eth = (rdma_port_get_link_layer(device, port_num) == + IB_LINK_LAYER_ETHERNET); memset(ah_attr, 0, sizeof *ah_attr); + if (is_eth) { + if (!(wc->wc_flags & IB_WC_GRH)) + return -EPROTOTYPE; + + if (wc->wc_flags & IB_WC_WITH_SMAC && + wc->wc_flags & IB_WC_WITH_VLAN) { + memcpy(ah_attr->dmac, wc->smac, ETH_ALEN); + ah_attr->vlan_id = wc->vlan_id; + } else { + ret = rdma_addr_find_dmac_by_grh(&grh->dgid, &grh->sgid, + ah_attr->dmac, &ah_attr->vlan_id); + if (ret) + return ret; + } + } else { + ah_attr->vlan_id = 0xffff; + } + ah_attr->dlid = wc->slid; ah_attr->sl = wc->sl; ah_attr->src_path_bits = wc->dlid_path_bits; @@ -476,7 +502,9 @@ static const struct { int valid; enum ib_qp_attr_mask req_param[IB_QPT_MAX]; + enum ib_qp_attr_mask req_param_add_eth[IB_QPT_MAX]; enum ib_qp_attr_mask opt_param[IB_QPT_MAX]; + enum ib_qp_attr_mask opt_param_add_eth[IB_QPT_MAX]; } qp_state_table[IB_QPS_ERR + 1][IB_QPS_ERR + 1] = { [IB_QPS_RESET] = { [IB_QPS_RESET] = { .valid = 1 }, @@ -557,6 +585,12 @@ IB_QP_MAX_DEST_RD_ATOMIC | IB_QP_MIN_RNR_TIMER), }, + .req_param_add_eth = { + [IB_QPT_RC] = (IB_QP_SMAC), + [IB_QPT_UC] = (IB_QP_SMAC), + [IB_QPT_XRC_INI] = (IB_QP_SMAC), + [IB_QPT_XRC_TGT] = (IB_QP_SMAC) + }, .opt_param = { [IB_QPT_UD] = (IB_QP_PKEY_INDEX | IB_QP_QKEY), @@ -576,7 +610,21 @@ IB_QP_QKEY), [IB_QPT_GSI] = (IB_QP_PKEY_INDEX | IB_QP_QKEY), - } + }, + .opt_param_add_eth = { + [IB_QPT_RC] = (IB_QP_ALT_SMAC | + IB_QP_VID | + IB_QP_ALT_VID), + [IB_QPT_UC] = (IB_QP_ALT_SMAC | + IB_QP_VID | + IB_QP_ALT_VID), + [IB_QPT_XRC_INI] = (IB_QP_ALT_SMAC | + IB_QP_VID | + IB_QP_ALT_VID), + [IB_QPT_XRC_TGT] = (IB_QP_ALT_SMAC | + IB_QP_VID | + IB_QP_ALT_VID) + } } }, [IB_QPS_RTR] = { @@ -779,7 +827,8 @@ }; int ib_modify_qp_is_ok(enum ib_qp_state cur_state, enum ib_qp_state next_state, - enum ib_qp_type type, enum ib_qp_attr_mask mask) + enum ib_qp_type type, enum ib_qp_attr_mask mask, + enum rdma_link_layer ll) { enum ib_qp_attr_mask req_param, opt_param; @@ -798,6 +847,13 @@ req_param = qp_state_table[cur_state][next_state].req_param[type]; opt_param = qp_state_table[cur_state][next_state].opt_param[type]; + if (ll == IB_LINK_LAYER_ETHERNET) { + req_param |= qp_state_table[cur_state][next_state]. + req_param_add_eth[type]; + opt_param |= qp_state_table[cur_state][next_state]. + opt_param_add_eth[type]; + } + if ((mask & req_param) != req_param) return 0; @@ -808,10 +864,51 @@ } EXPORT_SYMBOL(ib_modify_qp_is_ok); +int ib_resolve_eth_l2_attrs(struct ib_qp *qp, + struct ib_qp_attr *qp_attr, int *qp_attr_mask) +{ + int ret = 0; + union ib_gid sgid; + + if ((*qp_attr_mask & IB_QP_AV) && + (rdma_port_get_link_layer(qp->device, qp_attr->ah_attr.port_num) == IB_LINK_LAYER_ETHERNET)) { + ret = ib_query_gid(qp->device, qp_attr->ah_attr.port_num, + qp_attr->ah_attr.grh.sgid_index, &sgid); + if (ret) + goto out; + if (rdma_link_local_addr((struct in6_addr *)qp_attr->ah_attr.grh.dgid.raw)) { + rdma_get_ll_mac((struct in6_addr *)qp_attr->ah_attr.grh.dgid.raw, qp_attr->ah_attr.dmac); + rdma_get_ll_mac((struct in6_addr *)sgid.raw, qp_attr->smac); + qp_attr->vlan_id = rdma_get_vlan_id(&sgid); + } else { + ret = rdma_addr_find_dmac_by_grh(&sgid, &qp_attr->ah_attr.grh.dgid, + qp_attr->ah_attr.dmac, &qp_attr->vlan_id); + if (ret) + goto out; + ret = rdma_addr_find_smac_by_sgid(&sgid, qp_attr->smac, NULL); + if (ret) + goto out; + } + *qp_attr_mask |= IB_QP_SMAC; + if (qp_attr->vlan_id < 0xFFFF) + *qp_attr_mask |= IB_QP_VID; + } +out: + return ret; +} +EXPORT_SYMBOL(ib_resolve_eth_l2_attrs); + + int ib_modify_qp(struct ib_qp *qp, struct ib_qp_attr *qp_attr, int qp_attr_mask) { + int ret; + + ret = ib_resolve_eth_l2_attrs(qp, qp_attr, &qp_attr_mask); + if (ret) + return ret; + return qp->device->modify_qp(qp->real_qp, qp_attr, qp_attr_mask, NULL); } EXPORT_SYMBOL(ib_modify_qp); --- linux-3.13.0.orig/drivers/infiniband/hw/amso1100/c2.c +++ linux-3.13.0/drivers/infiniband/hw/amso1100/c2.c @@ -1082,6 +1082,7 @@ /* Initialize network device */ if ((netdev = c2_devinit(c2dev, mmio_regs)) == NULL) { + ret = -ENOMEM; iounmap(mmio_regs); goto bail4; } @@ -1151,7 +1152,8 @@ goto bail10; } - if (c2_register_device(c2dev)) + ret = c2_register_device(c2dev); + if (ret) goto bail10; return 0; --- linux-3.13.0.orig/drivers/infiniband/hw/amso1100/c2_intr.c +++ linux-3.13.0/drivers/infiniband/hw/amso1100/c2_intr.c @@ -169,7 +169,8 @@ * We should never get here, as the adapter should * never send us a reply that we're not expecting. */ - vq_repbuf_free(c2dev, host_msg); + if (reply_msg != NULL) + vq_repbuf_free(c2dev, host_msg); pr_debug("handle_vq: UNEXPECTEDLY got NULL req\n"); return; } --- linux-3.13.0.orig/drivers/infiniband/hw/amso1100/c2_rnic.c +++ linux-3.13.0/drivers/infiniband/hw/amso1100/c2_rnic.c @@ -576,7 +576,8 @@ goto bail4; /* Initialize cached the adapter limits */ - if (c2_rnic_query(c2dev, &c2dev->props)) + err = c2_rnic_query(c2dev, &c2dev->props); + if (err) goto bail5; /* Initialize the PD pool */ --- linux-3.13.0.orig/drivers/infiniband/hw/cxgb4/cm.c +++ linux-3.13.0/drivers/infiniband/hw/cxgb4/cm.c @@ -1647,6 +1647,15 @@ status != CPL_ERR_ARP_MISS; } +/* Returns whether a CPL status conveys negative advice. + */ +static int is_neg_adv(unsigned int status) +{ + return status == CPL_ERR_RTX_NEG_ADVICE || + status == CPL_ERR_PERSIST_NEG_ADVICE || + status == CPL_ERR_KEEPALV_NEG_ADVICE; +} + #define ACT_OPEN_RETRY_COUNT 2 static int import_ep(struct c4iw_ep *ep, int iptype, __u8 *peer_ip, @@ -1835,7 +1844,7 @@ PDBG("%s ep %p atid %u status %u errno %d\n", __func__, ep, atid, status, status2errno(status)); - if (status == CPL_ERR_RTX_NEG_ADVICE) { + if (is_neg_adv(status)) { printk(KERN_WARNING MOD "Connection problems for atid %u\n", atid); return 0; @@ -2265,15 +2274,6 @@ return 0; } -/* - * Returns whether an ABORT_REQ_RSS message is a negative advice. - */ -static int is_neg_adv_abort(unsigned int status) -{ - return status == CPL_ERR_RTX_NEG_ADVICE || - status == CPL_ERR_PERSIST_NEG_ADVICE; -} - static int peer_abort(struct c4iw_dev *dev, struct sk_buff *skb) { struct cpl_abort_req_rss *req = cplhdr(skb); @@ -2287,7 +2287,7 @@ unsigned int tid = GET_TID(req); ep = lookup_tid(t, tid); - if (is_neg_adv_abort(req->status)) { + if (is_neg_adv(req->status)) { PDBG("%s neg_adv_abort ep %p tid %u\n", __func__, ep, ep->hwtid); return 0; @@ -3352,6 +3352,7 @@ goto free_dst; } + neigh_release(neigh); step = dev->rdev.lldi.nrxq / dev->rdev.lldi.nchan; rss_qid = dev->rdev.lldi.rxq_ids[pi->port_id * step]; window = (__force u16) htons((__force u16)tcph->window); @@ -3569,7 +3570,7 @@ kfree_skb(skb); return 0; } - if (is_neg_adv_abort(req->status)) { + if (is_neg_adv(req->status)) { PDBG("%s neg_adv_abort ep %p tid %u\n", __func__, ep, ep->hwtid); kfree_skb(skb); --- linux-3.13.0.orig/drivers/infiniband/hw/cxgb4/cq.c +++ linux-3.13.0/drivers/infiniband/hw/cxgb4/cq.c @@ -940,7 +940,8 @@ uresp.gts_key = ucontext->key; ucontext->key += PAGE_SIZE; spin_unlock(&ucontext->mmap_lock); - ret = ib_copy_to_udata(udata, &uresp, sizeof uresp); + ret = ib_copy_to_udata(udata, &uresp, + sizeof(uresp) - sizeof(uresp.reserved)); if (ret) goto err5; --- linux-3.13.0.orig/drivers/infiniband/hw/cxgb4/device.c +++ linux-3.13.0/drivers/infiniband/hw/cxgb4/device.c @@ -64,6 +64,10 @@ static LIST_HEAD(uld_ctx_list); static DEFINE_MUTEX(dev_mutex); +#define DB_FC_RESUME_SIZE 64 +#define DB_FC_RESUME_DELAY 1 +#define DB_FC_DRAIN_THRESH 0 + static struct dentry *c4iw_debugfs_root; struct c4iw_debugfs_data { @@ -282,7 +286,7 @@ .llseek = default_llseek, }; -static char *db_state_str[] = {"NORMAL", "FLOW_CONTROL", "RECOVERY"}; +static char *db_state_str[] = {"NORMAL", "FLOW_CONTROL", "RECOVERY", "STOPPED"}; static int stats_show(struct seq_file *seq, void *v) { @@ -311,9 +315,10 @@ seq_printf(seq, " DB FULL: %10llu\n", dev->rdev.stats.db_full); seq_printf(seq, " DB EMPTY: %10llu\n", dev->rdev.stats.db_empty); seq_printf(seq, " DB DROP: %10llu\n", dev->rdev.stats.db_drop); - seq_printf(seq, " DB State: %s Transitions %llu\n", + seq_printf(seq, " DB State: %s Transitions %llu FC Interruptions %llu\n", db_state_str[dev->db_state], - dev->rdev.stats.db_state_transitions); + dev->rdev.stats.db_state_transitions, + dev->rdev.stats.db_fc_interruptions); seq_printf(seq, "TCAM_FULL: %10llu\n", dev->rdev.stats.tcam_full); seq_printf(seq, "ACT_OFLD_CONN_FAILS: %10llu\n", dev->rdev.stats.act_ofld_conn_fails); @@ -643,6 +648,12 @@ printk(KERN_ERR MOD "error %d initializing ocqp pool\n", err); goto err4; } + rdev->status_page = (struct t4_dev_status_page *) + __get_free_page(GFP_KERNEL); + if (!rdev->status_page) { + pr_err(MOD "error allocating status page\n"); + goto err4; + } return 0; err4: c4iw_rqtpool_destroy(rdev); @@ -656,6 +667,7 @@ static void c4iw_rdev_close(struct c4iw_rdev *rdev) { + free_page((unsigned long)rdev->status_page); c4iw_pblpool_destroy(rdev); c4iw_rqtpool_destroy(rdev); c4iw_destroy_resource(&rdev->resource); @@ -703,18 +715,6 @@ pr_info("%s: On-Chip Queues not supported on this device.\n", pci_name(infop->pdev)); - if (!is_t4(infop->adapter_type)) { - if (!allow_db_fc_on_t5) { - db_fc_threshold = 100000; - pr_info("DB Flow Control Disabled.\n"); - } - - if (!allow_db_coalescing_on_t5) { - db_coalescing_threshold = -1; - pr_info("DB Coalescing Disabled.\n"); - } - } - devp = (struct c4iw_dev *)ib_alloc_device(sizeof(*devp)); if (!devp) { printk(KERN_ERR MOD "Cannot allocate ib device\n"); @@ -749,6 +749,7 @@ spin_lock_init(&devp->lock); mutex_init(&devp->rdev.stats.lock); mutex_init(&devp->db_mutex); + INIT_LIST_HEAD(&devp->db_fc_list); if (c4iw_debugfs_root) { devp->debugfs_root = debugfs_create_dir( @@ -977,13 +978,16 @@ static void stop_queues(struct uld_ctx *ctx) { - spin_lock_irq(&ctx->dev->lock); - if (ctx->dev->db_state == NORMAL) { - ctx->dev->rdev.stats.db_state_transitions++; - ctx->dev->db_state = FLOW_CONTROL; + unsigned long flags; + + spin_lock_irqsave(&ctx->dev->lock, flags); + ctx->dev->rdev.stats.db_state_transitions++; + ctx->dev->db_state = STOPPED; + if (ctx->dev->rdev.flags & T4_STATUS_PAGE_DISABLED) idr_for_each(&ctx->dev->qpidr, disable_qp_db, NULL); - } - spin_unlock_irq(&ctx->dev->lock); + else + ctx->dev->rdev.status_page->db_off = 1; + spin_unlock_irqrestore(&ctx->dev->lock, flags); } static int enable_qp_db(int id, void *p, void *data) @@ -994,15 +998,70 @@ return 0; } +static void resume_rc_qp(struct c4iw_qp *qp) +{ + spin_lock(&qp->lock); + t4_ring_sq_db(&qp->wq, qp->wq.sq.wq_pidx_inc); + qp->wq.sq.wq_pidx_inc = 0; + t4_ring_rq_db(&qp->wq, qp->wq.rq.wq_pidx_inc); + qp->wq.rq.wq_pidx_inc = 0; + spin_unlock(&qp->lock); +} + +static void resume_a_chunk(struct uld_ctx *ctx) +{ + int i; + struct c4iw_qp *qp; + + for (i = 0; i < DB_FC_RESUME_SIZE; i++) { + qp = list_first_entry(&ctx->dev->db_fc_list, struct c4iw_qp, + db_fc_entry); + list_del_init(&qp->db_fc_entry); + resume_rc_qp(qp); + if (list_empty(&ctx->dev->db_fc_list)) + break; + } +} + static void resume_queues(struct uld_ctx *ctx) { spin_lock_irq(&ctx->dev->lock); - if (ctx->dev->qpcnt <= db_fc_threshold && - ctx->dev->db_state == FLOW_CONTROL) { - ctx->dev->db_state = NORMAL; - ctx->dev->rdev.stats.db_state_transitions++; - idr_for_each(&ctx->dev->qpidr, enable_qp_db, NULL); + if (ctx->dev->db_state != STOPPED) + goto out; + ctx->dev->db_state = FLOW_CONTROL; + while (1) { + if (list_empty(&ctx->dev->db_fc_list)) { + WARN_ON(ctx->dev->db_state != FLOW_CONTROL); + ctx->dev->db_state = NORMAL; + ctx->dev->rdev.stats.db_state_transitions++; + if (ctx->dev->rdev.flags & T4_STATUS_PAGE_DISABLED) { + idr_for_each(&ctx->dev->qpidr, enable_qp_db, + NULL); + } else { + ctx->dev->rdev.status_page->db_off = 0; + } + break; + } else { + if (cxgb4_dbfifo_count(ctx->dev->rdev.lldi.ports[0], 1) + < (ctx->dev->rdev.lldi.dbfifo_int_thresh << + DB_FC_DRAIN_THRESH)) { + resume_a_chunk(ctx); + } + if (!list_empty(&ctx->dev->db_fc_list)) { + spin_unlock_irq(&ctx->dev->lock); + if (DB_FC_RESUME_DELAY) { + set_current_state(TASK_UNINTERRUPTIBLE); + schedule_timeout(DB_FC_RESUME_DELAY); + } + spin_lock_irq(&ctx->dev->lock); + if (ctx->dev->db_state != FLOW_CONTROL) + break; + } + } } +out: + if (ctx->dev->db_state != NORMAL) + ctx->dev->rdev.stats.db_fc_interruptions++; spin_unlock_irq(&ctx->dev->lock); } @@ -1028,12 +1087,12 @@ return 0; } -static void deref_qps(struct qp_list qp_list) +static void deref_qps(struct qp_list *qp_list) { int idx; - for (idx = 0; idx < qp_list.idx; idx++) - c4iw_qp_rem_ref(&qp_list.qps[idx]->ibqp); + for (idx = 0; idx < qp_list->idx; idx++) + c4iw_qp_rem_ref(&qp_list->qps[idx]->ibqp); } static void recover_lost_dbs(struct uld_ctx *ctx, struct qp_list *qp_list) @@ -1044,17 +1103,22 @@ for (idx = 0; idx < qp_list->idx; idx++) { struct c4iw_qp *qp = qp_list->qps[idx]; + spin_lock_irq(&qp->rhp->lock); + spin_lock(&qp->lock); ret = cxgb4_sync_txq_pidx(qp->rhp->rdev.lldi.ports[0], qp->wq.sq.qid, t4_sq_host_wq_pidx(&qp->wq), t4_sq_wq_size(&qp->wq)); if (ret) { - printk(KERN_ERR MOD "%s: Fatal error - " + pr_err(KERN_ERR MOD "%s: Fatal error - " "DB overflow recovery failed - " "error syncing SQ qid %u\n", pci_name(ctx->lldi.pdev), qp->wq.sq.qid); + spin_unlock(&qp->lock); + spin_unlock_irq(&qp->rhp->lock); return; } + qp->wq.sq.wq_pidx_inc = 0; ret = cxgb4_sync_txq_pidx(qp->rhp->rdev.lldi.ports[0], qp->wq.rq.qid, @@ -1062,12 +1126,17 @@ t4_rq_wq_size(&qp->wq)); if (ret) { - printk(KERN_ERR MOD "%s: Fatal error - " + pr_err(KERN_ERR MOD "%s: Fatal error - " "DB overflow recovery failed - " "error syncing RQ qid %u\n", pci_name(ctx->lldi.pdev), qp->wq.rq.qid); + spin_unlock(&qp->lock); + spin_unlock_irq(&qp->rhp->lock); return; } + qp->wq.rq.wq_pidx_inc = 0; + spin_unlock(&qp->lock); + spin_unlock_irq(&qp->rhp->lock); /* Wait for the dbfifo to drain */ while (cxgb4_dbfifo_count(qp->rhp->rdev.lldi.ports[0], 1) > 0) { @@ -1083,36 +1152,22 @@ struct qp_list qp_list; int ret; - /* lock out kernel db ringers */ - mutex_lock(&ctx->dev->db_mutex); - - /* put all queues in to recovery mode */ - spin_lock_irq(&ctx->dev->lock); - ctx->dev->db_state = RECOVERY; - ctx->dev->rdev.stats.db_state_transitions++; - idr_for_each(&ctx->dev->qpidr, disable_qp_db, NULL); - spin_unlock_irq(&ctx->dev->lock); - /* slow everybody down */ set_current_state(TASK_UNINTERRUPTIBLE); schedule_timeout(usecs_to_jiffies(1000)); - /* Wait for the dbfifo to completely drain. */ - while (cxgb4_dbfifo_count(ctx->dev->rdev.lldi.ports[0], 1) > 0) { - set_current_state(TASK_UNINTERRUPTIBLE); - schedule_timeout(usecs_to_jiffies(10)); - } - /* flush the SGE contexts */ ret = cxgb4_flush_eq_cache(ctx->dev->rdev.lldi.ports[0]); if (ret) { printk(KERN_ERR MOD "%s: Fatal error - DB overflow recovery failed\n", pci_name(ctx->lldi.pdev)); - goto out; + return; } /* Count active queues so we can build a list of queues to recover */ spin_lock_irq(&ctx->dev->lock); + WARN_ON(ctx->dev->db_state != STOPPED); + ctx->dev->db_state = RECOVERY; idr_for_each(&ctx->dev->qpidr, count_qps, &count); qp_list.qps = kzalloc(count * sizeof *qp_list.qps, GFP_ATOMIC); @@ -1120,7 +1175,7 @@ printk(KERN_ERR MOD "%s: Fatal error - DB overflow recovery failed\n", pci_name(ctx->lldi.pdev)); spin_unlock_irq(&ctx->dev->lock); - goto out; + return; } qp_list.idx = 0; @@ -1133,29 +1188,13 @@ recover_lost_dbs(ctx, &qp_list); /* we're almost done! deref the qps and clean up */ - deref_qps(qp_list); + deref_qps(&qp_list); kfree(qp_list.qps); - /* Wait for the dbfifo to completely drain again */ - while (cxgb4_dbfifo_count(ctx->dev->rdev.lldi.ports[0], 1) > 0) { - set_current_state(TASK_UNINTERRUPTIBLE); - schedule_timeout(usecs_to_jiffies(10)); - } - - /* resume the queues */ spin_lock_irq(&ctx->dev->lock); - if (ctx->dev->qpcnt > db_fc_threshold) - ctx->dev->db_state = FLOW_CONTROL; - else { - ctx->dev->db_state = NORMAL; - idr_for_each(&ctx->dev->qpidr, enable_qp_db, NULL); - } - ctx->dev->rdev.stats.db_state_transitions++; + WARN_ON(ctx->dev->db_state != RECOVERY); + ctx->dev->db_state = STOPPED; spin_unlock_irq(&ctx->dev->lock); - -out: - /* start up kernel db ringers again */ - mutex_unlock(&ctx->dev->db_mutex); } static int c4iw_uld_control(void *handle, enum cxgb4_control control, ...) @@ -1165,9 +1204,7 @@ switch (control) { case CXGB4_CONTROL_DB_FULL: stop_queues(ctx); - mutex_lock(&ctx->dev->rdev.stats.lock); ctx->dev->rdev.stats.db_full++; - mutex_unlock(&ctx->dev->rdev.stats.lock); break; case CXGB4_CONTROL_DB_EMPTY: resume_queues(ctx); --- linux-3.13.0.orig/drivers/infiniband/hw/cxgb4/iw_cxgb4.h +++ linux-3.13.0/drivers/infiniband/hw/cxgb4/iw_cxgb4.h @@ -109,6 +109,7 @@ enum c4iw_rdev_flags { T4_FATAL_ERROR = (1<<0), + T4_STATUS_PAGE_DISABLED = (1<<1), }; struct c4iw_stat { @@ -130,6 +131,7 @@ u64 db_empty; u64 db_drop; u64 db_state_transitions; + u64 db_fc_interruptions; u64 tcam_full; u64 act_ofld_conn_fails; u64 pas_ofld_conn_fails; @@ -150,6 +152,7 @@ unsigned long oc_mw_pa; void __iomem *oc_mw_kva; struct c4iw_stats stats; + struct t4_dev_status_page *status_page; }; static inline int c4iw_fatal_error(struct c4iw_rdev *rdev) @@ -211,7 +214,8 @@ enum db_state { NORMAL = 0, FLOW_CONTROL = 1, - RECOVERY = 2 + RECOVERY = 2, + STOPPED = 3 }; struct c4iw_dev { @@ -225,10 +229,10 @@ struct mutex db_mutex; struct dentry *debugfs_root; enum db_state db_state; - int qpcnt; struct idr hwtid_idr; struct idr atid_idr; struct idr stid_idr; + struct list_head db_fc_list; }; static inline struct c4iw_dev *to_c4iw_dev(struct ib_device *ibdev) @@ -432,6 +436,7 @@ struct c4iw_qp { struct ib_qp ibqp; + struct list_head db_fc_entry; struct c4iw_dev *rhp; struct c4iw_ep *ep; struct c4iw_qp_attributes attr; --- linux-3.13.0.orig/drivers/infiniband/hw/cxgb4/mem.c +++ linux-3.13.0/drivers/infiniband/hw/cxgb4/mem.c @@ -76,7 +76,7 @@ INIT_ULPTX_WR(req, wr_len, 0, 0); req->wr.wr_hi = cpu_to_be32(FW_WR_OP(FW_ULPTX_WR) | (wait ? FW_WR_COMPL(1) : 0)); - req->wr.wr_lo = wait ? (__force __be64)&wr_wait : 0; + req->wr.wr_lo = wait ? (__force __be64)(unsigned long) &wr_wait : 0L; req->wr.wr_mid = cpu_to_be32(FW_WR_LEN16(DIV_ROUND_UP(wr_len, 16))); req->cmd = cpu_to_be32(ULPTX_CMD(ULP_TX_MEM_WRITE)); req->cmd |= cpu_to_be32(V_T5_ULP_MEMIO_ORDER(1)); --- linux-3.13.0.orig/drivers/infiniband/hw/cxgb4/provider.c +++ linux-3.13.0/drivers/infiniband/hw/cxgb4/provider.c @@ -106,15 +106,56 @@ { struct c4iw_ucontext *context; struct c4iw_dev *rhp = to_c4iw_dev(ibdev); + static int warned; + struct c4iw_alloc_ucontext_resp uresp; + int ret = 0; + struct c4iw_mm_entry *mm = NULL; PDBG("%s ibdev %p\n", __func__, ibdev); context = kzalloc(sizeof(*context), GFP_KERNEL); - if (!context) - return ERR_PTR(-ENOMEM); + if (!context) { + ret = -ENOMEM; + goto err; + } + c4iw_init_dev_ucontext(&rhp->rdev, &context->uctx); INIT_LIST_HEAD(&context->mmaps); spin_lock_init(&context->mmap_lock); + + if (udata->outlen < sizeof(uresp)) { + if (!warned++) + pr_err(MOD "Warning - downlevel libcxgb4 (non-fatal), device status page disabled."); + rhp->rdev.flags |= T4_STATUS_PAGE_DISABLED; + } else { + mm = kmalloc(sizeof(*mm), GFP_KERNEL); + if (!mm) { + ret = -ENOMEM; + goto err_free; + } + + uresp.status_page_size = PAGE_SIZE; + + spin_lock(&context->mmap_lock); + uresp.status_page_key = context->key; + context->key += PAGE_SIZE; + spin_unlock(&context->mmap_lock); + + ret = ib_copy_to_udata(udata, &uresp, sizeof(uresp)); + if (ret) + goto err_mm; + + mm->key = uresp.status_page_key; + mm->addr = virt_to_phys(rhp->rdev.status_page); + mm->len = PAGE_SIZE; + insert_mmap(context, mm); + } return &context->ibucontext; +err_mm: + kfree(mm); +err_free: + kfree(context); +err: + return ERR_PTR(ret); } static int c4iw_mmap(struct ib_ucontext *context, struct vm_area_struct *vma) --- linux-3.13.0.orig/drivers/infiniband/hw/cxgb4/qp.c +++ linux-3.13.0/drivers/infiniband/hw/cxgb4/qp.c @@ -638,6 +638,46 @@ wake_up(&(to_c4iw_qp(qp)->wait)); } +static void add_to_fc_list(struct list_head *head, struct list_head *entry) +{ + if (list_empty(entry)) + list_add_tail(entry, head); +} + +static int ring_kernel_sq_db(struct c4iw_qp *qhp, u16 inc) +{ + unsigned long flags; + + spin_lock_irqsave(&qhp->rhp->lock, flags); + spin_lock(&qhp->lock); + if (qhp->rhp->db_state == NORMAL) { + t4_ring_sq_db(&qhp->wq, inc); + } else { + add_to_fc_list(&qhp->rhp->db_fc_list, &qhp->db_fc_entry); + qhp->wq.sq.wq_pidx_inc += inc; + } + spin_unlock(&qhp->lock); + spin_unlock_irqrestore(&qhp->rhp->lock, flags); + return 0; +} + +static int ring_kernel_rq_db(struct c4iw_qp *qhp, u16 inc) +{ + unsigned long flags; + + spin_lock_irqsave(&qhp->rhp->lock, flags); + spin_lock(&qhp->lock); + if (qhp->rhp->db_state == NORMAL) { + t4_ring_rq_db(&qhp->wq, inc); + } else { + add_to_fc_list(&qhp->rhp->db_fc_list, &qhp->db_fc_entry); + qhp->wq.rq.wq_pidx_inc += inc; + } + spin_unlock(&qhp->lock); + spin_unlock_irqrestore(&qhp->rhp->lock, flags); + return 0; +} + int c4iw_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr, struct ib_send_wr **bad_wr) { @@ -750,9 +790,13 @@ t4_sq_produce(&qhp->wq, len16); idx += DIV_ROUND_UP(len16*16, T4_EQ_ENTRY_SIZE); } - if (t4_wq_db_enabled(&qhp->wq)) + if (!qhp->rhp->rdev.status_page->db_off) { t4_ring_sq_db(&qhp->wq, idx); - spin_unlock_irqrestore(&qhp->lock, flag); + spin_unlock_irqrestore(&qhp->lock, flag); + } else { + spin_unlock_irqrestore(&qhp->lock, flag); + ring_kernel_sq_db(qhp, idx); + } return err; } @@ -812,9 +856,13 @@ wr = wr->next; num_wrs--; } - if (t4_wq_db_enabled(&qhp->wq)) + if (!qhp->rhp->rdev.status_page->db_off) { t4_ring_rq_db(&qhp->wq, idx); - spin_unlock_irqrestore(&qhp->lock, flag); + spin_unlock_irqrestore(&qhp->lock, flag); + } else { + spin_unlock_irqrestore(&qhp->lock, flag); + ring_kernel_rq_db(qhp, idx); + } return err; } @@ -1200,35 +1248,6 @@ return ret; } -/* - * Called by the library when the qp has user dbs disabled due to - * a DB_FULL condition. This function will single-thread all user - * DB rings to avoid overflowing the hw db-fifo. - */ -static int ring_kernel_db(struct c4iw_qp *qhp, u32 qid, u16 inc) -{ - int delay = db_delay_usecs; - - mutex_lock(&qhp->rhp->db_mutex); - do { - - /* - * The interrupt threshold is dbfifo_int_thresh << 6. So - * make sure we don't cross that and generate an interrupt. - */ - if (cxgb4_dbfifo_count(qhp->rhp->rdev.lldi.ports[0], 1) < - (qhp->rhp->rdev.lldi.dbfifo_int_thresh << 5)) { - writel(QID(qid) | PIDX(inc), qhp->wq.db); - break; - } - set_current_state(TASK_UNINTERRUPTIBLE); - schedule_timeout(usecs_to_jiffies(delay)); - delay = min(delay << 1, 2000); - } while (1); - mutex_unlock(&qhp->rhp->db_mutex); - return 0; -} - int c4iw_modify_qp(struct c4iw_dev *rhp, struct c4iw_qp *qhp, enum c4iw_qp_attr_mask mask, struct c4iw_qp_attributes *attrs, @@ -1278,11 +1297,11 @@ } if (mask & C4IW_QP_ATTR_SQ_DB) { - ret = ring_kernel_db(qhp, qhp->wq.sq.qid, attrs->sq_db_inc); + ret = ring_kernel_sq_db(qhp, attrs->sq_db_inc); goto out; } if (mask & C4IW_QP_ATTR_RQ_DB) { - ret = ring_kernel_db(qhp, qhp->wq.rq.qid, attrs->rq_db_inc); + ret = ring_kernel_rq_db(qhp, attrs->rq_db_inc); goto out; } @@ -1465,14 +1484,6 @@ return ret; } -static int enable_qp_db(int id, void *p, void *data) -{ - struct c4iw_qp *qp = p; - - t4_enable_wq_db(&qp->wq); - return 0; -} - int c4iw_destroy_qp(struct ib_qp *ib_qp) { struct c4iw_dev *rhp; @@ -1490,22 +1501,15 @@ c4iw_modify_qp(rhp, qhp, C4IW_QP_ATTR_NEXT_STATE, &attrs, 0); wait_event(qhp->wait, !qhp->ep); - spin_lock_irq(&rhp->lock); - remove_handle_nolock(rhp, &rhp->qpidr, qhp->wq.sq.qid); - rhp->qpcnt--; - BUG_ON(rhp->qpcnt < 0); - if (rhp->qpcnt <= db_fc_threshold && rhp->db_state == FLOW_CONTROL) { - rhp->rdev.stats.db_state_transitions++; - rhp->db_state = NORMAL; - idr_for_each(&rhp->qpidr, enable_qp_db, NULL); - } - if (db_coalescing_threshold >= 0) - if (rhp->qpcnt <= db_coalescing_threshold) - cxgb4_enable_db_coalescing(rhp->rdev.lldi.ports[0]); - spin_unlock_irq(&rhp->lock); + remove_handle(rhp, &rhp->qpidr, qhp->wq.sq.qid); atomic_dec(&qhp->refcnt); wait_event(qhp->wait, !atomic_read(&qhp->refcnt)); + spin_lock_irq(&rhp->lock); + if (!list_empty(&qhp->db_fc_entry)) + list_del_init(&qhp->db_fc_entry); + spin_unlock_irq(&rhp->lock); + ucontext = ib_qp->uobject ? to_c4iw_ucontext(ib_qp->uobject->context) : NULL; destroy_qp(&rhp->rdev, &qhp->wq, @@ -1516,14 +1520,6 @@ return 0; } -static int disable_qp_db(int id, void *p, void *data) -{ - struct c4iw_qp *qp = p; - - t4_disable_wq_db(&qp->wq); - return 0; -} - struct ib_qp *c4iw_create_qp(struct ib_pd *pd, struct ib_qp_init_attr *attrs, struct ib_udata *udata) { @@ -1610,20 +1606,7 @@ init_waitqueue_head(&qhp->wait); atomic_set(&qhp->refcnt, 1); - spin_lock_irq(&rhp->lock); - if (rhp->db_state != NORMAL) - t4_disable_wq_db(&qhp->wq); - rhp->qpcnt++; - if (rhp->qpcnt > db_fc_threshold && rhp->db_state == NORMAL) { - rhp->rdev.stats.db_state_transitions++; - rhp->db_state = FLOW_CONTROL; - idr_for_each(&rhp->qpidr, disable_qp_db, NULL); - } - if (db_coalescing_threshold >= 0) - if (rhp->qpcnt > db_coalescing_threshold) - cxgb4_disable_db_coalescing(rhp->rdev.lldi.ports[0]); - ret = insert_handle_nolock(rhp, &rhp->qpidr, qhp, qhp->wq.sq.qid); - spin_unlock_irq(&rhp->lock); + ret = insert_handle(rhp, &rhp->qpidr, qhp, qhp->wq.sq.qid); if (ret) goto err2; @@ -1709,6 +1692,7 @@ } qhp->ibqp.qp_num = qhp->wq.sq.qid; init_timer(&(qhp->timer)); + INIT_LIST_HEAD(&qhp->db_fc_entry); PDBG("%s qhp %p sq_num_entries %d, rq_num_entries %d qpid 0x%0x\n", __func__, qhp, qhp->attr.sq_num_entries, qhp->attr.rq_num_entries, qhp->wq.sq.qid); --- linux-3.13.0.orig/drivers/infiniband/hw/cxgb4/t4.h +++ linux-3.13.0/drivers/infiniband/hw/cxgb4/t4.h @@ -300,6 +300,7 @@ u16 cidx; u16 pidx; u16 wq_pidx; + u16 wq_pidx_inc; u16 flags; short flush_cidx; }; @@ -324,6 +325,7 @@ u16 cidx; u16 pidx; u16 wq_pidx; + u16 wq_pidx_inc; }; struct t4_wq { @@ -609,3 +611,7 @@ ((struct t4_status_page *)&cq->queue[cq->size])->qp_err = 1; } #endif + +struct t4_dev_status_page { + u8 db_off; +}; --- linux-3.13.0.orig/drivers/infiniband/hw/cxgb4/user.h +++ linux-3.13.0/drivers/infiniband/hw/cxgb4/user.h @@ -48,6 +48,7 @@ __u32 cqid; __u32 size; __u32 qid_mask; + __u32 reserved; /* explicit padding (optional for i386) */ }; @@ -70,4 +71,9 @@ __u32 qid_mask; __u32 flags; }; + +struct c4iw_alloc_ucontext_resp { + __u64 status_page_key; + __u32 status_page_size; +}; #endif --- linux-3.13.0.orig/drivers/infiniband/hw/ehca/ehca_cq.c +++ linux-3.13.0/drivers/infiniband/hw/ehca/ehca_cq.c @@ -283,6 +283,7 @@ (my_cq->galpas.user.fw_handle & (PAGE_SIZE - 1)); if (ib_copy_to_udata(udata, &resp, sizeof(resp))) { ehca_err(device, "Copy to udata failed."); + cq = ERR_PTR(-EFAULT); goto create_cq_exit4; } } --- linux-3.13.0.orig/drivers/infiniband/hw/ehca/ehca_qp.c +++ linux-3.13.0/drivers/infiniband/hw/ehca/ehca_qp.c @@ -1329,7 +1329,7 @@ qp_new_state = attr_mask & IB_QP_STATE ? attr->qp_state : qp_cur_state; if (!smi_reset2init && !ib_modify_qp_is_ok(qp_cur_state, qp_new_state, ibqp->qp_type, - attr_mask)) { + attr_mask, IB_LINK_LAYER_UNSPECIFIED)) { ret = -EINVAL; ehca_err(ibqp->device, "Invalid qp transition new_state=%x cur_state=%x " --- linux-3.13.0.orig/drivers/infiniband/hw/ipath/ipath_diag.c +++ linux-3.13.0/drivers/infiniband/hw/ipath/ipath_diag.c @@ -326,7 +326,7 @@ size_t count, loff_t *off) { u32 __iomem *piobuf; - u32 plen, clen, pbufn; + u32 plen, pbufn, maxlen_reserve; struct ipath_diag_pkt odp; struct ipath_diag_xpkt dp; u32 *tmpbuf = NULL; @@ -335,42 +335,24 @@ u64 val; u32 l_state, lt_state; /* LinkState, LinkTrainingState */ - if (count < sizeof(odp)) { - ret = -EINVAL; - goto bail; - } if (count == sizeof(dp)) { if (copy_from_user(&dp, data, sizeof(dp))) { ret = -EFAULT; goto bail; } - } else if (copy_from_user(&odp, data, sizeof(odp))) { - ret = -EFAULT; - goto bail; - } - - /* - * Due to padding/alignment issues (lessened with new struct) - * the old and new structs are the same length. We need to - * disambiguate them, which we can do because odp.len has never - * been less than the total of LRH+BTH+DETH so far, while - * dp.unit (same offset) unit is unlikely to get that high. - * Similarly, dp.data, the pointer to user at the same offset - * as odp.unit, is almost certainly at least one (512byte)page - * "above" NULL. The if-block below can be omitted if compatibility - * between a new driver and older diagnostic code is unimportant. - * compatibility the other direction (new diags, old driver) is - * handled in the diagnostic code, with a warning. - */ - if (dp.unit >= 20 && dp.data < 512) { - /* very probable version mismatch. Fix it up */ - memcpy(&odp, &dp, sizeof(odp)); - /* We got a legacy dp, copy elements to dp */ + } else if (count == sizeof(odp)) { + if (copy_from_user(&odp, data, sizeof(odp))) { + ret = -EFAULT; + goto bail; + } + dp.len = odp.len; dp.unit = odp.unit; dp.data = odp.data; - dp.len = odp.len; - dp.pbc_wd = 0; /* Indicate we need to compute PBC wd */ + dp.pbc_wd = 0; + } else { + ret = -EINVAL; + goto bail; } /* send count must be an exact number of dwords */ @@ -379,7 +361,7 @@ goto bail; } - clen = dp.len >> 2; + plen = dp.len >> 2; dd = ipath_lookup(dp.unit); if (!dd || !(dd->ipath_flags & IPATH_PRESENT) || @@ -422,16 +404,22 @@ goto bail; } - /* need total length before first word written */ - /* +1 word is for the qword padding */ - plen = sizeof(u32) + dp.len; - - if ((plen + 4) > dd->ipath_ibmaxlen) { + /* + * need total length before first word written, plus 2 Dwords. One Dword + * is for padding so we get the full user data when not aligned on + * a word boundary. The other Dword is to make sure we have room for the + * ICRC which gets tacked on later. + */ + maxlen_reserve = 2 * sizeof(u32); + if (dp.len > dd->ipath_ibmaxlen - maxlen_reserve) { ipath_dbg("Pkt len 0x%x > ibmaxlen %x\n", - plen - 4, dd->ipath_ibmaxlen); + dp.len, dd->ipath_ibmaxlen); ret = -EINVAL; - goto bail; /* before writing pbc */ + goto bail; } + + plen = sizeof(u32) + dp.len; + tmpbuf = vmalloc(plen); if (!tmpbuf) { dev_info(&dd->pcidev->dev, "Unable to allocate tmp buffer, " @@ -473,11 +461,11 @@ */ if (dd->ipath_flags & IPATH_PIO_FLUSH_WC) { ipath_flush_wc(); - __iowrite32_copy(piobuf + 2, tmpbuf, clen - 1); + __iowrite32_copy(piobuf + 2, tmpbuf, plen - 1); ipath_flush_wc(); - __raw_writel(tmpbuf[clen - 1], piobuf + clen + 1); + __raw_writel(tmpbuf[plen - 1], piobuf + plen + 1); } else - __iowrite32_copy(piobuf + 2, tmpbuf, clen); + __iowrite32_copy(piobuf + 2, tmpbuf, plen); ipath_flush_wc(); --- linux-3.13.0.orig/drivers/infiniband/hw/ipath/ipath_qp.c +++ linux-3.13.0/drivers/infiniband/hw/ipath/ipath_qp.c @@ -463,7 +463,7 @@ new_state = attr_mask & IB_QP_STATE ? attr->qp_state : cur_state; if (!ib_modify_qp_is_ok(cur_state, new_state, ibqp->qp_type, - attr_mask)) + attr_mask, IB_LINK_LAYER_UNSPECIFIED)) goto inval; if (attr_mask & IB_QP_AV) { --- linux-3.13.0.orig/drivers/infiniband/hw/mlx4/Kconfig +++ linux-3.13.0/drivers/infiniband/hw/mlx4/Kconfig @@ -1,6 +1,6 @@ config MLX4_INFINIBAND tristate "Mellanox ConnectX HCA support" - depends on NETDEVICES && ETHERNET && PCI + depends on NETDEVICES && ETHERNET && PCI && INET select NET_VENDOR_MELLANOX select MLX4_CORE ---help--- --- linux-3.13.0.orig/drivers/infiniband/hw/mlx4/ah.c +++ linux-3.13.0/drivers/infiniband/hw/mlx4/ah.c @@ -39,25 +39,6 @@ #include "mlx4_ib.h" -int mlx4_ib_resolve_grh(struct mlx4_ib_dev *dev, const struct ib_ah_attr *ah_attr, - u8 *mac, int *is_mcast, u8 port) -{ - struct in6_addr in6; - - *is_mcast = 0; - - memcpy(&in6, ah_attr->grh.dgid.raw, sizeof in6); - if (rdma_link_local_addr(&in6)) - rdma_get_ll_mac(&in6, mac); - else if (rdma_is_multicast_addr(&in6)) { - rdma_get_mcast_mac(&in6, mac); - *is_mcast = 1; - } else - return -EINVAL; - - return 0; -} - static struct ib_ah *create_ib_ah(struct ib_pd *pd, struct ib_ah_attr *ah_attr, struct mlx4_ib_ah *ah) { @@ -92,21 +73,18 @@ { struct mlx4_ib_dev *ibdev = to_mdev(pd->device); struct mlx4_dev *dev = ibdev->dev; - union ib_gid sgid; - u8 mac[6]; - int err; int is_mcast; + struct in6_addr in6; u16 vlan_tag; - err = mlx4_ib_resolve_grh(ibdev, ah_attr, mac, &is_mcast, ah_attr->port_num); - if (err) - return ERR_PTR(err); - - memcpy(ah->av.eth.mac, mac, 6); - err = ib_get_cached_gid(pd->device, ah_attr->port_num, ah_attr->grh.sgid_index, &sgid); - if (err) - return ERR_PTR(err); - vlan_tag = rdma_get_vlan_id(&sgid); + memcpy(&in6, ah_attr->grh.dgid.raw, sizeof(in6)); + if (rdma_is_multicast_addr(&in6)) { + is_mcast = 1; + rdma_get_mcast_mac(&in6, ah->av.eth.mac); + } else { + memcpy(ah->av.eth.mac, ah_attr->dmac, ETH_ALEN); + } + vlan_tag = ah_attr->vlan_id; if (vlan_tag < 0x1000) vlan_tag |= (ah_attr->sl & 7) << 13; ah->av.eth.port_pd = cpu_to_be32(to_mpd(pd)->pdn | (ah_attr->port_num << 24)); --- linux-3.13.0.orig/drivers/infiniband/hw/mlx4/alias_GUID.c +++ linux-3.13.0/drivers/infiniband/hw/mlx4/alias_GUID.c @@ -154,7 +154,7 @@ continue; slave_id = (block_num * NUM_ALIAS_GUID_IN_REC) + i ; - if (slave_id >= dev->dev->num_slaves) + if (slave_id >= dev->dev->num_vfs + 1) return; tmp_cur_ag = *(__be64 *)&p_data[i * GUID_REC_SIZE]; form_cache_ag = get_cached_alias_guid(dev, port_num, --- linux-3.13.0.orig/drivers/infiniband/hw/mlx4/cm.c +++ linux-3.13.0/drivers/infiniband/hw/mlx4/cm.c @@ -61,6 +61,11 @@ __be32 remote_comm_id; }; +struct cm_sidr_generic_msg { + struct ib_mad_hdr hdr; + __be32 request_id; +}; + struct cm_req_msg { unsigned char unused[0x60]; union ib_gid primary_path_sgid; @@ -69,28 +74,62 @@ static void set_local_comm_id(struct ib_mad *mad, u32 cm_id) { - struct cm_generic_msg *msg = (struct cm_generic_msg *)mad; - msg->local_comm_id = cpu_to_be32(cm_id); + if (mad->mad_hdr.attr_id == CM_SIDR_REQ_ATTR_ID) { + struct cm_sidr_generic_msg *msg = + (struct cm_sidr_generic_msg *)mad; + msg->request_id = cpu_to_be32(cm_id); + } else if (mad->mad_hdr.attr_id == CM_SIDR_REP_ATTR_ID) { + pr_err("trying to set local_comm_id in SIDR_REP\n"); + return; + } else { + struct cm_generic_msg *msg = (struct cm_generic_msg *)mad; + msg->local_comm_id = cpu_to_be32(cm_id); + } } static u32 get_local_comm_id(struct ib_mad *mad) { - struct cm_generic_msg *msg = (struct cm_generic_msg *)mad; - - return be32_to_cpu(msg->local_comm_id); + if (mad->mad_hdr.attr_id == CM_SIDR_REQ_ATTR_ID) { + struct cm_sidr_generic_msg *msg = + (struct cm_sidr_generic_msg *)mad; + return be32_to_cpu(msg->request_id); + } else if (mad->mad_hdr.attr_id == CM_SIDR_REP_ATTR_ID) { + pr_err("trying to set local_comm_id in SIDR_REP\n"); + return -1; + } else { + struct cm_generic_msg *msg = (struct cm_generic_msg *)mad; + return be32_to_cpu(msg->local_comm_id); + } } static void set_remote_comm_id(struct ib_mad *mad, u32 cm_id) { - struct cm_generic_msg *msg = (struct cm_generic_msg *)mad; - msg->remote_comm_id = cpu_to_be32(cm_id); + if (mad->mad_hdr.attr_id == CM_SIDR_REP_ATTR_ID) { + struct cm_sidr_generic_msg *msg = + (struct cm_sidr_generic_msg *)mad; + msg->request_id = cpu_to_be32(cm_id); + } else if (mad->mad_hdr.attr_id == CM_SIDR_REQ_ATTR_ID) { + pr_err("trying to set remote_comm_id in SIDR_REQ\n"); + return; + } else { + struct cm_generic_msg *msg = (struct cm_generic_msg *)mad; + msg->remote_comm_id = cpu_to_be32(cm_id); + } } static u32 get_remote_comm_id(struct ib_mad *mad) { - struct cm_generic_msg *msg = (struct cm_generic_msg *)mad; - - return be32_to_cpu(msg->remote_comm_id); + if (mad->mad_hdr.attr_id == CM_SIDR_REP_ATTR_ID) { + struct cm_sidr_generic_msg *msg = + (struct cm_sidr_generic_msg *)mad; + return be32_to_cpu(msg->request_id); + } else if (mad->mad_hdr.attr_id == CM_SIDR_REQ_ATTR_ID) { + pr_err("trying to set remote_comm_id in SIDR_REQ\n"); + return -1; + } else { + struct cm_generic_msg *msg = (struct cm_generic_msg *)mad; + return be32_to_cpu(msg->remote_comm_id); + } } static union ib_gid gid_from_req_msg(struct ib_device *ibdev, struct ib_mad *mad) @@ -282,19 +321,21 @@ u32 sl_cm_id; int pv_cm_id = -1; - sl_cm_id = get_local_comm_id(mad); - if (mad->mad_hdr.attr_id == CM_REQ_ATTR_ID || - mad->mad_hdr.attr_id == CM_REP_ATTR_ID) { + mad->mad_hdr.attr_id == CM_REP_ATTR_ID || + mad->mad_hdr.attr_id == CM_SIDR_REQ_ATTR_ID) { + sl_cm_id = get_local_comm_id(mad); id = id_map_alloc(ibdev, slave_id, sl_cm_id); if (IS_ERR(id)) { mlx4_ib_warn(ibdev, "%s: id{slave: %d, sl_cm_id: 0x%x} Failed to id_map_alloc\n", __func__, slave_id, sl_cm_id); return PTR_ERR(id); } - } else if (mad->mad_hdr.attr_id == CM_REJ_ATTR_ID) { + } else if (mad->mad_hdr.attr_id == CM_REJ_ATTR_ID || + mad->mad_hdr.attr_id == CM_SIDR_REP_ATTR_ID) { return 0; } else { + sl_cm_id = get_local_comm_id(mad); id = id_map_get(ibdev, &pv_cm_id, slave_id, sl_cm_id); } @@ -315,14 +356,18 @@ } int mlx4_ib_demux_cm_handler(struct ib_device *ibdev, int port, int *slave, - struct ib_mad *mad) + struct ib_mad *mad) { u32 pv_cm_id; struct id_map_entry *id; - if (mad->mad_hdr.attr_id == CM_REQ_ATTR_ID) { + if (mad->mad_hdr.attr_id == CM_REQ_ATTR_ID || + mad->mad_hdr.attr_id == CM_SIDR_REQ_ATTR_ID) { union ib_gid gid; + if (!slave) + return 0; + gid = gid_from_req_msg(ibdev, mad); *slave = mlx4_ib_find_real_gid(ibdev, port, gid.global.interface_id); if (*slave < 0) { @@ -341,7 +386,8 @@ return -ENOENT; } - *slave = id->slave_id; + if (slave) + *slave = id->slave_id; set_remote_comm_id(mad, id->sl_cm_id); if (mad->mad_hdr.attr_id == CM_DREQ_ATTR_ID) --- linux-3.13.0.orig/drivers/infiniband/hw/mlx4/cq.c +++ linux-3.13.0/drivers/infiniband/hw/mlx4/cq.c @@ -564,7 +564,7 @@ } static int use_tunnel_data(struct mlx4_ib_qp *qp, struct mlx4_ib_cq *cq, struct ib_wc *wc, - unsigned tail, struct mlx4_cqe *cqe) + unsigned tail, struct mlx4_cqe *cqe, int is_eth) { struct mlx4_ib_proxy_sqp_hdr *hdr; @@ -574,12 +574,20 @@ DMA_FROM_DEVICE); hdr = (struct mlx4_ib_proxy_sqp_hdr *) (qp->sqp_proxy_rcv[tail].addr); wc->pkey_index = be16_to_cpu(hdr->tun.pkey_index); - wc->slid = be16_to_cpu(hdr->tun.slid_mac_47_32); - wc->sl = (u8) (be16_to_cpu(hdr->tun.sl_vid) >> 12); wc->src_qp = be32_to_cpu(hdr->tun.flags_src_qp) & 0xFFFFFF; wc->wc_flags |= (hdr->tun.g_ml_path & 0x80) ? (IB_WC_GRH) : 0; wc->dlid_path_bits = 0; + if (is_eth) { + wc->vlan_id = be16_to_cpu(hdr->tun.sl_vid); + memcpy(&(wc->smac[0]), (char *)&hdr->tun.mac_31_0, 4); + memcpy(&(wc->smac[4]), (char *)&hdr->tun.slid_mac_47_32, 2); + wc->wc_flags |= (IB_WC_WITH_VLAN | IB_WC_WITH_SMAC); + } else { + wc->slid = be16_to_cpu(hdr->tun.slid_mac_47_32); + wc->sl = (u8) (be16_to_cpu(hdr->tun.sl_vid) >> 12); + } + return 0; } @@ -594,6 +602,7 @@ struct mlx4_srq *msrq = NULL; int is_send; int is_error; + int is_eth; u32 g_mlpath_rqpn; u16 wqe_ctr; unsigned tail = 0; @@ -778,11 +787,15 @@ break; } + is_eth = (rdma_port_get_link_layer(wc->qp->device, + (*cur_qp)->port) == + IB_LINK_LAYER_ETHERNET); if (mlx4_is_mfunc(to_mdev(cq->ibcq.device)->dev)) { if ((*cur_qp)->mlx4_ib_qp_type & (MLX4_IB_QPT_PROXY_SMI_OWNER | MLX4_IB_QPT_PROXY_SMI | MLX4_IB_QPT_PROXY_GSI)) - return use_tunnel_data(*cur_qp, cq, wc, tail, cqe); + return use_tunnel_data(*cur_qp, cq, wc, tail, + cqe, is_eth); } wc->slid = be16_to_cpu(cqe->rlid); @@ -793,11 +806,21 @@ wc->pkey_index = be32_to_cpu(cqe->immed_rss_invalid) & 0x7f; wc->wc_flags |= mlx4_ib_ipoib_csum_ok(cqe->status, cqe->checksum) ? IB_WC_IP_CSUM_OK : 0; - if (rdma_port_get_link_layer(wc->qp->device, - (*cur_qp)->port) == IB_LINK_LAYER_ETHERNET) + if (is_eth) { wc->sl = be16_to_cpu(cqe->sl_vid) >> 13; - else + if (be32_to_cpu(cqe->vlan_my_qpn) & + MLX4_CQE_VLAN_PRESENT_MASK) { + wc->vlan_id = be16_to_cpu(cqe->sl_vid) & + MLX4_CQE_VID_MASK; + } else { + wc->vlan_id = 0xffff; + } + memcpy(wc->smac, cqe->smac, ETH_ALEN); + wc->wc_flags |= (IB_WC_WITH_VLAN | IB_WC_WITH_SMAC); + } else { wc->sl = be16_to_cpu(cqe->sl_vid) >> 12; + wc->vlan_id = 0xffff; + } } return 0; --- linux-3.13.0.orig/drivers/infiniband/hw/mlx4/mad.c +++ linux-3.13.0/drivers/infiniband/hw/mlx4/mad.c @@ -467,6 +467,7 @@ int ret = 0; u16 tun_pkey_ix; u16 cached_pkey; + u8 is_eth = dev->dev->caps.port_type[port] == MLX4_PORT_TYPE_ETH; if (dest_qpt > IB_QPT_GSI) return -EINVAL; @@ -509,6 +510,10 @@ * The driver will set the force loopback bit in post_send */ memset(&attr, 0, sizeof attr); attr.port_num = port; + if (is_eth) { + memcpy(&attr.grh.dgid.raw[0], &grh->dgid.raw[0], 16); + attr.ah_flags = IB_AH_GRH; + } ah = ib_create_ah(tun_ctx->pd, &attr); if (IS_ERR(ah)) return -ENOMEM; @@ -540,11 +545,36 @@ /* adjust tunnel data */ tun_mad->hdr.pkey_index = cpu_to_be16(tun_pkey_ix); - tun_mad->hdr.sl_vid = cpu_to_be16(((u16)(wc->sl)) << 12); - tun_mad->hdr.slid_mac_47_32 = cpu_to_be16(wc->slid); tun_mad->hdr.flags_src_qp = cpu_to_be32(wc->src_qp & 0xFFFFFF); tun_mad->hdr.g_ml_path = (grh && (wc->wc_flags & IB_WC_GRH)) ? 0x80 : 0; + if (is_eth) { + u16 vlan = 0; + if (mlx4_get_slave_default_vlan(dev->dev, port, slave, &vlan, + NULL)) { + /* VST mode */ + if (vlan != wc->vlan_id) + /* Packet vlan is not the VST-assigned vlan. + * Drop the packet. + */ + goto out; + else + /* Remove the vlan tag before forwarding + * the packet to the VF. + */ + vlan = 0xffff; + } else { + vlan = wc->vlan_id; + } + + tun_mad->hdr.sl_vid = cpu_to_be16(vlan); + memcpy((char *)&tun_mad->hdr.mac_31_0, &(wc->smac[0]), 4); + memcpy((char *)&tun_mad->hdr.slid_mac_47_32, &(wc->smac[4]), 2); + } else { + tun_mad->hdr.sl_vid = cpu_to_be16(((u16)(wc->sl)) << 12); + tun_mad->hdr.slid_mac_47_32 = cpu_to_be16(wc->slid); + } + ib_dma_sync_single_for_device(&dev->ib_dev, tun_qp->tx_ring[tun_tx_ix].buf.map, sizeof (struct mlx4_rcv_tunnel_mad), @@ -580,6 +610,41 @@ int err; int slave; u8 *slave_id; + int is_eth = 0; + + if (rdma_port_get_link_layer(ibdev, port) == IB_LINK_LAYER_INFINIBAND) + is_eth = 0; + else + is_eth = 1; + + if (is_eth) { + if (!(wc->wc_flags & IB_WC_GRH)) { + mlx4_ib_warn(ibdev, "RoCE grh not present.\n"); + return -EINVAL; + } + if (mad->mad_hdr.mgmt_class != IB_MGMT_CLASS_CM) { + mlx4_ib_warn(ibdev, "RoCE mgmt class is not CM\n"); + return -EINVAL; + } + if (mlx4_get_slave_from_roce_gid(dev->dev, port, grh->dgid.raw, &slave)) { + mlx4_ib_warn(ibdev, "failed matching grh\n"); + return -ENOENT; + } + if (slave >= dev->dev->caps.sqp_demux) { + mlx4_ib_warn(ibdev, "slave id: %d is bigger than allowed:%d\n", + slave, dev->dev->caps.sqp_demux); + return -ENOENT; + } + + if (mlx4_ib_demux_cm_handler(ibdev, port, NULL, mad)) + return 0; + + err = mlx4_ib_send_to_slave(dev, slave, port, wc->qp->qp_type, wc, grh, mad); + if (err) + pr_debug("failed sending to slave %d via tunnel qp (%d)\n", + slave, err); + return 0; + } /* Initially assume that this mad is for us */ slave = mlx4_master_func_num(dev->dev); @@ -1076,8 +1141,9 @@ int mlx4_ib_send_to_wire(struct mlx4_ib_dev *dev, int slave, u8 port, - enum ib_qp_type dest_qpt, u16 pkey_index, u32 remote_qpn, - u32 qkey, struct ib_ah_attr *attr, struct ib_mad *mad) + enum ib_qp_type dest_qpt, u16 pkey_index, + u32 remote_qpn, u32 qkey, struct ib_ah_attr *attr, + u8 *s_mac, struct ib_mad *mad) { struct ib_sge list; struct ib_send_wr wr, *bad_wr; @@ -1166,6 +1232,9 @@ wr.num_sge = 1; wr.opcode = IB_WR_SEND; wr.send_flags = IB_SEND_SIGNALED; + if (s_mac) + memcpy(to_mah(ah)->av.eth.s_mac, s_mac, 6); + ret = ib_post_send(send_qp, &wr, &bad_wr); out: @@ -1174,6 +1243,22 @@ return ret; } +static int get_slave_base_gid_ix(struct mlx4_ib_dev *dev, int slave, int port) +{ + if (rdma_port_get_link_layer(&dev->ib_dev, port) == IB_LINK_LAYER_INFINIBAND) + return slave; + return mlx4_get_base_gid_ix(dev->dev, slave, port); +} + +static void fill_in_real_sgid_index(struct mlx4_ib_dev *dev, int slave, int port, + struct ib_ah_attr *ah_attr) +{ + if (rdma_port_get_link_layer(&dev->ib_dev, port) == IB_LINK_LAYER_INFINIBAND) + ah_attr->grh.sgid_index = slave; + else + ah_attr->grh.sgid_index += get_slave_base_gid_ix(dev, slave, port); +} + static void mlx4_ib_multiplex_mad(struct mlx4_ib_demux_pv_ctx *ctx, struct ib_wc *wc) { struct mlx4_ib_dev *dev = to_mdev(ctx->ib_dev); @@ -1184,6 +1269,7 @@ struct ib_ah_attr ah_attr; u8 *slave_id; int slave; + int port; /* Get slave that sent this packet */ if (wc->src_qp < dev->dev->phys_caps.base_proxy_sqpn || @@ -1260,12 +1346,18 @@ memcpy(&ah.av, &tunnel->hdr.av, sizeof (struct mlx4_av)); ah.ibah.device = ctx->ib_dev; mlx4_ib_query_ah(&ah.ibah, &ah_attr); - if ((ah_attr.ah_flags & IB_AH_GRH) && - (ah_attr.grh.sgid_index != slave)) { - mlx4_ib_warn(ctx->ib_dev, "slave:%d accessed invalid sgid_index:%d\n", - slave, ah_attr.grh.sgid_index); + if (ah_attr.ah_flags & IB_AH_GRH) + fill_in_real_sgid_index(dev, slave, ctx->port, &ah_attr); + + port = mlx4_slave_convert_port(dev->dev, slave, ah_attr.port_num); + if (port < 0) return; - } + ah_attr.port_num = port; + memcpy(ah_attr.dmac, tunnel->hdr.mac, 6); + ah_attr.vlan_id = be16_to_cpu(tunnel->hdr.vlan); + /* if slave have default vlan use it */ + mlx4_get_slave_default_vlan(dev->dev, ctx->port, slave, + &ah_attr.vlan_id, &ah_attr.sl); mlx4_ib_send_to_wire(dev, slave, ctx->port, is_proxy_qp0(dev, wc->src_qp, slave) ? @@ -1273,7 +1365,7 @@ be16_to_cpu(tunnel->hdr.pkey_index), be32_to_cpu(tunnel->hdr.remote_qpn), be32_to_cpu(tunnel->hdr.qkey), - &ah_attr, &tunnel->mad); + &ah_attr, wc->smac, &tunnel->mad); } static int mlx4_ib_alloc_pv_bufs(struct mlx4_ib_demux_pv_ctx *ctx, @@ -1850,7 +1942,15 @@ ctx->port = port; ctx->ib_dev = &dev->ib_dev; - for (i = 0; i < dev->dev->caps.sqp_demux; i++) { + for (i = 0; + i < min(dev->dev->caps.sqp_demux, (u16)(dev->dev->num_vfs + 1)); + i++) { + struct mlx4_active_ports actv_ports = + mlx4_get_active_ports(dev->dev, i); + + if (!test_bit(port - 1, actv_ports.ports)) + continue; + ret = alloc_pv_object(dev, i, port, &ctx->tun[i]); if (ret) { ret = -ENOMEM; --- linux-3.13.0.orig/drivers/infiniband/hw/mlx4/main.c +++ linux-3.13.0/drivers/infiniband/hw/mlx4/main.c @@ -39,6 +39,8 @@ #include #include #include +#include +#include #include #include @@ -51,10 +53,11 @@ #include "user.h" #define DRV_NAME MLX4_IB_DRV_NAME -#define DRV_VERSION "1.0" -#define DRV_RELDATE "April 4, 2008" +#define DRV_VERSION "2.2-1" +#define DRV_RELDATE "Feb 2014" #define MLX4_IB_FLOW_MAX_PRIO 0xFFF +#define MLX4_IB_FLOW_QPN_MASK 0xFFFFFF MODULE_AUTHOR("Roland Dreier"); MODULE_DESCRIPTION("Mellanox ConnectX HCA InfiniBand driver"); @@ -92,21 +95,27 @@ static int check_flow_steering_support(struct mlx4_dev *dev) { + int eth_num_ports = 0; int ib_num_ports = 0; - int i; - mlx4_foreach_port(i, dev, MLX4_PORT_TYPE_IB) - ib_num_ports++; + int dmfs = dev->caps.steering_mode == MLX4_STEERING_MODE_DEVICE_MANAGED; - if (dev->caps.steering_mode == MLX4_STEERING_MODE_DEVICE_MANAGED) { - if (ib_num_ports || mlx4_is_mfunc(dev)) { - pr_warn("Device managed flow steering is unavailable " - "for IB ports or in multifunction env.\n"); - return 0; + if (dmfs) { + int i; + mlx4_foreach_port(i, dev, MLX4_PORT_TYPE_ETH) + eth_num_ports++; + mlx4_foreach_port(i, dev, MLX4_PORT_TYPE_IB) + ib_num_ports++; + dmfs &= (!ib_num_ports || + (dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_DMFS_IPOIB)) && + (!eth_num_ports || + (dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_FS_EN)); + if (ib_num_ports && mlx4_is_mfunc(dev)) { + pr_warn("Device managed flow steering is unavailable for IB port in multifunction env.\n"); + dmfs = 0; } - return 1; } - return 0; + return dmfs; } static int mlx4_ib_query_device(struct ib_device *ibdev, @@ -165,7 +174,7 @@ props->device_cap_flags |= IB_DEVICE_MEM_WINDOW_TYPE_2B; else props->device_cap_flags |= IB_DEVICE_MEM_WINDOW_TYPE_2A; - if (check_flow_steering_support(dev->dev)) + if (dev->steering_support == MLX4_STEERING_MODE_DEVICE_MANAGED) props->device_cap_flags |= IB_DEVICE_MANAGED_FLOW_STEERING; } @@ -338,7 +347,7 @@ props->active_width = (((u8 *)mailbox->buf)[5] == 0x40) ? IB_WIDTH_4X : IB_WIDTH_1X; props->active_speed = IB_SPEED_QDR; - props->port_cap_flags = IB_PORT_CM_SUP; + props->port_cap_flags = IB_PORT_CM_SUP | IB_PORT_IP_BASED_GIDS; props->gid_tbl_len = mdev->dev->caps.gid_table_len[port]; props->max_msg_sz = mdev->dev->caps.max_msg_sz; props->pkey_tbl_len = 1; @@ -787,7 +796,6 @@ int mlx4_ib_add_mc(struct mlx4_ib_dev *mdev, struct mlx4_ib_qp *mqp, union ib_gid *gid) { - u8 mac[6]; struct net_device *ndev; int ret = 0; @@ -801,11 +809,7 @@ spin_unlock(&mdev->iboe.lock); if (ndev) { - rdma_get_mcast_mac((struct in6_addr *)gid, mac); - rtnl_lock(); - dev_mc_add(mdev->iboe.netdevs[mqp->port - 1], mac); ret = 1; - rtnl_unlock(); dev_put(ndev); } @@ -819,6 +823,7 @@ }; static int parse_flow_attr(struct mlx4_dev *dev, + u32 qp_num, union ib_flow_spec *ib_spec, struct _rule_hw *mlx4_spec) { @@ -834,6 +839,14 @@ mlx4_spec->eth.vlan_tag = ib_spec->eth.val.vlan_tag; mlx4_spec->eth.vlan_tag_msk = ib_spec->eth.mask.vlan_tag; break; + case IB_FLOW_SPEC_IB: + type = MLX4_NET_TRANS_RULE_ID_IB; + mlx4_spec->ib.l3_qpn = + cpu_to_be32(qp_num); + mlx4_spec->ib.qpn_mask = + cpu_to_be32(MLX4_IB_FLOW_QPN_MASK); + break; + case IB_FLOW_SPEC_IPV4: type = MLX4_NET_TRANS_RULE_ID_IPV4; @@ -865,6 +878,115 @@ return mlx4_hw_rule_sz(dev, type); } +struct default_rules { + __u32 mandatory_fields[IB_FLOW_SPEC_SUPPORT_LAYERS]; + __u32 mandatory_not_fields[IB_FLOW_SPEC_SUPPORT_LAYERS]; + __u32 rules_create_list[IB_FLOW_SPEC_SUPPORT_LAYERS]; + __u8 link_layer; +}; +static const struct default_rules default_table[] = { + { + .mandatory_fields = {IB_FLOW_SPEC_IPV4}, + .mandatory_not_fields = {IB_FLOW_SPEC_ETH}, + .rules_create_list = {IB_FLOW_SPEC_IB}, + .link_layer = IB_LINK_LAYER_INFINIBAND + } +}; + +static int __mlx4_ib_default_rules_match(struct ib_qp *qp, + struct ib_flow_attr *flow_attr) +{ + int i, j, k; + void *ib_flow; + const struct default_rules *pdefault_rules = default_table; + u8 link_layer = rdma_port_get_link_layer(qp->device, flow_attr->port); + + for (i = 0; i < sizeof(default_table)/sizeof(default_table[0]); i++, + pdefault_rules++) { + __u32 field_types[IB_FLOW_SPEC_SUPPORT_LAYERS]; + memset(&field_types, 0, sizeof(field_types)); + + if (link_layer != pdefault_rules->link_layer) + continue; + + ib_flow = flow_attr + 1; + /* we assume the specs are sorted */ + for (j = 0, k = 0; k < IB_FLOW_SPEC_SUPPORT_LAYERS && + j < flow_attr->num_of_specs; k++) { + union ib_flow_spec *current_flow = + (union ib_flow_spec *)ib_flow; + + /* same layer but different type */ + if (((current_flow->type & IB_FLOW_SPEC_LAYER_MASK) == + (pdefault_rules->mandatory_fields[k] & + IB_FLOW_SPEC_LAYER_MASK)) && + (current_flow->type != + pdefault_rules->mandatory_fields[k])) + goto out; + + /* same layer, try match next one */ + if (current_flow->type == + pdefault_rules->mandatory_fields[k]) { + j++; + ib_flow += + ((union ib_flow_spec *)ib_flow)->size; + } + } + + ib_flow = flow_attr + 1; + for (j = 0; j < flow_attr->num_of_specs; + j++, ib_flow += ((union ib_flow_spec *)ib_flow)->size) + for (k = 0; k < IB_FLOW_SPEC_SUPPORT_LAYERS; k++) + /* same layer and same type */ + if (((union ib_flow_spec *)ib_flow)->type == + pdefault_rules->mandatory_not_fields[k]) + goto out; + + return i; + } +out: + return -1; +} + +static int __mlx4_ib_create_default_rules( + struct mlx4_ib_dev *mdev, + struct ib_qp *qp, + const struct default_rules *pdefault_rules, + struct _rule_hw *mlx4_spec) { + int size = 0; + int i; + + for (i = 0; i < sizeof(pdefault_rules->rules_create_list)/ + sizeof(pdefault_rules->rules_create_list[0]); i++) { + int ret; + union ib_flow_spec ib_spec; + switch (pdefault_rules->rules_create_list[i]) { + case 0: + /* no rule */ + continue; + case IB_FLOW_SPEC_IB: + ib_spec.type = IB_FLOW_SPEC_IB; + ib_spec.size = sizeof(struct ib_flow_spec_ib); + + break; + default: + /* invalid rule */ + return -EINVAL; + } + /* We must put empty rule, qpn is being ignored */ + ret = parse_flow_attr(mdev->dev, 0, &ib_spec, + mlx4_spec); + if (ret < 0) { + pr_info("invalid parsing\n"); + return -EINVAL; + } + + mlx4_spec = (void *)mlx4_spec + ret; + size += ret; + } + return size; +} + static int __mlx4_ib_create_flow(struct ib_qp *qp, struct ib_flow_attr *flow_attr, int domain, enum mlx4_net_trans_promisc_mode flow_type, @@ -876,6 +998,7 @@ struct mlx4_ib_dev *mdev = to_mdev(qp->device); struct mlx4_cmd_mailbox *mailbox; struct mlx4_net_trans_rule_hw_ctrl *ctrl; + int default_flow; static const u16 __mlx4_domain[] = { [IB_FLOW_DOMAIN_USER] = MLX4_DOMAIN_UVERBS, @@ -910,8 +1033,21 @@ ib_flow = flow_attr + 1; size += sizeof(struct mlx4_net_trans_rule_hw_ctrl); + /* Add default flows */ + default_flow = __mlx4_ib_default_rules_match(qp, flow_attr); + if (default_flow >= 0) { + ret = __mlx4_ib_create_default_rules( + mdev, qp, default_table + default_flow, + mailbox->buf + size); + if (ret < 0) { + mlx4_free_cmd_mailbox(mdev->dev, mailbox); + return -EINVAL; + } + size += ret; + } for (i = 0; i < flow_attr->num_of_specs; i++) { - ret = parse_flow_attr(mdev->dev, ib_flow, mailbox->buf + size); + ret = parse_flow_attr(mdev->dev, qp->qp_num, ib_flow, + mailbox->buf + size); if (ret < 0) { mlx4_free_cmd_mailbox(mdev->dev, mailbox); return -EINVAL; @@ -1025,6 +1161,8 @@ struct mlx4_ib_qp *mqp = to_mqp(ibqp); u64 reg_id; struct mlx4_ib_steering *ib_steering = NULL; + enum mlx4_protocol prot = (gid->raw[1] == 0x0e) ? + MLX4_PROT_IB_IPV4 : MLX4_PROT_IB_IPV6; if (mdev->dev->caps.steering_mode == MLX4_STEERING_MODE_DEVICE_MANAGED) { @@ -1036,7 +1174,7 @@ err = mlx4_multicast_attach(mdev->dev, &mqp->mqp, gid->raw, mqp->port, !!(mqp->flags & MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK), - MLX4_PROT_IB_IPV6, ®_id); + prot, ®_id); if (err) goto err_malloc; @@ -1055,7 +1193,7 @@ err_add: mlx4_multicast_detach(mdev->dev, &mqp->mqp, gid->raw, - MLX4_PROT_IB_IPV6, reg_id); + prot, reg_id); err_malloc: kfree(ib_steering); @@ -1083,10 +1221,11 @@ int err; struct mlx4_ib_dev *mdev = to_mdev(ibqp->device); struct mlx4_ib_qp *mqp = to_mqp(ibqp); - u8 mac[6]; struct net_device *ndev; struct mlx4_ib_gid_entry *ge; u64 reg_id = 0; + enum mlx4_protocol prot = (gid->raw[1] == 0x0e) ? + MLX4_PROT_IB_IPV4 : MLX4_PROT_IB_IPV6; if (mdev->dev->caps.steering_mode == MLX4_STEERING_MODE_DEVICE_MANAGED) { @@ -1109,7 +1248,7 @@ } err = mlx4_multicast_detach(mdev->dev, &mqp->mqp, gid->raw, - MLX4_PROT_IB_IPV6, reg_id); + prot, reg_id); if (err) return err; @@ -1121,13 +1260,8 @@ if (ndev) dev_hold(ndev); spin_unlock(&mdev->iboe.lock); - rdma_get_mcast_mac((struct in6_addr *)gid, mac); - if (ndev) { - rtnl_lock(); - dev_mc_del(mdev->iboe.netdevs[ge->port - 1], mac); - rtnl_unlock(); + if (ndev) dev_put(ndev); - } list_del(&ge->list); kfree(ge); } else @@ -1223,7 +1357,8 @@ &dev_attr_board_id }; -static void mlx4_addrconf_ifid_eui48(u8 *eui, u16 vlan_id, struct net_device *dev) +static void mlx4_addrconf_ifid_eui48(u8 *eui, u16 vlan_id, + struct net_device *dev) { memcpy(eui, dev->dev_addr, 3); memcpy(eui + 5, dev->dev_addr + 3, 3); @@ -1259,161 +1394,377 @@ MLX4_CMD_WRAPPED); if (err) pr_warn("set port command failed\n"); - else { - memcpy(gw->dev->iboe.gid_table[gw->port - 1], gw->gids, sizeof gw->gids); + else mlx4_ib_dispatch_event(gw->dev, gw->port, IB_EVENT_GID_CHANGE); + + mlx4_free_cmd_mailbox(dev, mailbox); + kfree(gw); +} + +static void reset_gids_task(struct work_struct *work) +{ + struct update_gid_work *gw = + container_of(work, struct update_gid_work, work); + struct mlx4_cmd_mailbox *mailbox; + union ib_gid *gids; + int err; + struct mlx4_dev *dev = gw->dev->dev; + + mailbox = mlx4_alloc_cmd_mailbox(dev); + if (IS_ERR(mailbox)) { + pr_warn("reset gid table failed\n"); + goto free; + } + + gids = mailbox->buf; + memcpy(gids, gw->gids, sizeof(gw->gids)); + + if (mlx4_ib_port_link_layer(&gw->dev->ib_dev, gw->port) == + IB_LINK_LAYER_ETHERNET) { + err = mlx4_cmd(dev, mailbox->dma, + MLX4_SET_PORT_GID_TABLE << 8 | gw->port, + 1, MLX4_CMD_SET_PORT, + MLX4_CMD_TIME_CLASS_B, + MLX4_CMD_WRAPPED); + if (err) + pr_warn(KERN_WARNING + "set port %d command failed\n", gw->port); } mlx4_free_cmd_mailbox(dev, mailbox); +free: kfree(gw); } -static int update_ipv6_gids(struct mlx4_ib_dev *dev, int port, int clear) +static int update_gid_table(struct mlx4_ib_dev *dev, int port, + union ib_gid *gid, int clear, + int default_gid) { - struct net_device *ndev = dev->iboe.netdevs[port - 1]; struct update_gid_work *work; - struct net_device *tmp; int i; - u8 *hits; - int ret; - union ib_gid gid; - int free; - int found; int need_update = 0; - u16 vid; + int free = -1; + int found = -1; + int max_gids; - work = kzalloc(sizeof *work, GFP_ATOMIC); - if (!work) - return -ENOMEM; - - hits = kzalloc(128, GFP_ATOMIC); - if (!hits) { - ret = -ENOMEM; - goto out; - } - - rcu_read_lock(); - for_each_netdev_rcu(&init_net, tmp) { - if (ndev && (tmp == ndev || rdma_vlan_dev_real_dev(tmp) == ndev)) { - gid.global.subnet_prefix = cpu_to_be64(0xfe80000000000000LL); - vid = rdma_vlan_dev_vlan_id(tmp); - mlx4_addrconf_ifid_eui48(&gid.raw[8], vid, ndev); - found = 0; - free = -1; - for (i = 0; i < 128; ++i) { - if (free < 0 && - !memcmp(&dev->iboe.gid_table[port - 1][i], &zgid, sizeof zgid)) - free = i; - if (!memcmp(&dev->iboe.gid_table[port - 1][i], &gid, sizeof gid)) { - hits[i] = 1; - found = 1; + if (default_gid) { + free = 0; + } else { + max_gids = dev->dev->caps.gid_table_len[port]; + for (i = 1; i < max_gids; ++i) { + if (!memcmp(&dev->iboe.gid_table[port - 1][i], gid, + sizeof(*gid))) + found = i; + + if (clear) { + if (found >= 0) { + need_update = 1; + dev->iboe.gid_table[port - 1][found] = + zgid; break; } - } + } else { + if (found >= 0) + break; - if (!found) { - if (tmp == ndev && - (memcmp(&dev->iboe.gid_table[port - 1][0], - &gid, sizeof gid) || - !memcmp(&dev->iboe.gid_table[port - 1][0], - &zgid, sizeof gid))) { - dev->iboe.gid_table[port - 1][0] = gid; - ++need_update; - hits[0] = 1; - } else if (free >= 0) { - dev->iboe.gid_table[port - 1][free] = gid; - hits[free] = 1; - ++need_update; - } + if (free < 0 && + !memcmp(&dev->iboe.gid_table[port - 1][i], + &zgid, sizeof(*gid))) + free = i; } } } - rcu_read_unlock(); - for (i = 0; i < 128; ++i) - if (!hits[i]) { - if (memcmp(&dev->iboe.gid_table[port - 1][i], &zgid, sizeof zgid)) - ++need_update; - dev->iboe.gid_table[port - 1][i] = zgid; - } + if (found == -1 && !clear && free >= 0) { + dev->iboe.gid_table[port - 1][free] = *gid; + need_update = 1; + } - if (need_update) { - memcpy(work->gids, dev->iboe.gid_table[port - 1], sizeof work->gids); - INIT_WORK(&work->work, update_gids_task); - work->port = port; - work->dev = dev; - queue_work(wq, &work->work); - } else - kfree(work); + if (!need_update) + return 0; + + work = kzalloc(sizeof(*work), GFP_ATOMIC); + if (!work) + return -ENOMEM; + + memcpy(work->gids, dev->iboe.gid_table[port - 1], sizeof(work->gids)); + INIT_WORK(&work->work, update_gids_task); + work->port = port; + work->dev = dev; + queue_work(wq, &work->work); - kfree(hits); return 0; +} -out: - kfree(work); - return ret; +static void mlx4_make_default_gid(struct net_device *dev, union ib_gid *gid) +{ + gid->global.subnet_prefix = cpu_to_be64(0xfe80000000000000LL); + mlx4_addrconf_ifid_eui48(&gid->raw[8], 0xffff, dev); } -static void handle_en_event(struct mlx4_ib_dev *dev, int port, unsigned long event) + +static int reset_gid_table(struct mlx4_ib_dev *dev, u8 port) { - switch (event) { - case NETDEV_UP: - case NETDEV_CHANGEADDR: - update_ipv6_gids(dev, port, 0); - break; + struct update_gid_work *work; - case NETDEV_DOWN: - update_ipv6_gids(dev, port, 1); - dev->iboe.netdevs[port - 1] = NULL; - } + work = kzalloc(sizeof(*work), GFP_ATOMIC); + if (!work) + return -ENOMEM; + + memset(dev->iboe.gid_table[port - 1], 0, sizeof(work->gids)); + memset(work->gids, 0, sizeof(work->gids)); + INIT_WORK(&work->work, reset_gids_task); + work->dev = dev; + work->port = port; + queue_work(wq, &work->work); + return 0; } -static void netdev_added(struct mlx4_ib_dev *dev, int port) +static int mlx4_ib_addr_event(int event, struct net_device *event_netdev, + struct mlx4_ib_dev *ibdev, union ib_gid *gid) { - update_ipv6_gids(dev, port, 0); + struct mlx4_ib_iboe *iboe; + int port = 0; + struct net_device *real_dev = rdma_vlan_dev_real_dev(event_netdev) ? + rdma_vlan_dev_real_dev(event_netdev) : + event_netdev; + union ib_gid default_gid; + + mlx4_make_default_gid(real_dev, &default_gid); + + if (!memcmp(gid, &default_gid, sizeof(*gid))) + return 0; + + if (event != NETDEV_DOWN && event != NETDEV_UP) + return 0; + + if ((real_dev != event_netdev) && + (event == NETDEV_DOWN) && + rdma_link_local_addr((struct in6_addr *)gid)) + return 0; + + iboe = &ibdev->iboe; + spin_lock(&iboe->lock); + + for (port = 1; port <= ibdev->dev->caps.num_ports; ++port) + if ((netif_is_bond_master(real_dev) && + (real_dev == iboe->masters[port - 1])) || + (!netif_is_bond_master(real_dev) && + (real_dev == iboe->netdevs[port - 1]))) + update_gid_table(ibdev, port, gid, + event == NETDEV_DOWN, 0); + + spin_unlock(&iboe->lock); + return 0; + } -static void netdev_removed(struct mlx4_ib_dev *dev, int port) +static u8 mlx4_ib_get_dev_port(struct net_device *dev, + struct mlx4_ib_dev *ibdev) { - update_ipv6_gids(dev, port, 1); + u8 port = 0; + struct mlx4_ib_iboe *iboe; + struct net_device *real_dev = rdma_vlan_dev_real_dev(dev) ? + rdma_vlan_dev_real_dev(dev) : dev; + + iboe = &ibdev->iboe; + + for (port = 1; port <= ibdev->dev->caps.num_ports; ++port) + if ((netif_is_bond_master(real_dev) && + (real_dev == iboe->masters[port - 1])) || + (!netif_is_bond_master(real_dev) && + (real_dev == iboe->netdevs[port - 1]))) + break; + + if ((port == 0) || (port > ibdev->dev->caps.num_ports)) + return 0; + else + return port; } -static int mlx4_ib_netdev_event(struct notifier_block *this, unsigned long event, +static int mlx4_ib_inet_event(struct notifier_block *this, unsigned long event, + void *ptr) +{ + struct mlx4_ib_dev *ibdev; + struct in_ifaddr *ifa = ptr; + union ib_gid gid; + struct net_device *event_netdev = ifa->ifa_dev->dev; + + ipv6_addr_set_v4mapped(ifa->ifa_address, (struct in6_addr *)&gid); + + ibdev = container_of(this, struct mlx4_ib_dev, iboe.nb_inet); + + mlx4_ib_addr_event(event, event_netdev, ibdev, &gid); + return NOTIFY_DONE; +} + +#if IS_ENABLED(CONFIG_IPV6) +static int mlx4_ib_inet6_event(struct notifier_block *this, unsigned long event, void *ptr) { - struct net_device *dev = netdev_notifier_info_to_dev(ptr); struct mlx4_ib_dev *ibdev; - struct net_device *oldnd; + struct inet6_ifaddr *ifa = ptr; + union ib_gid *gid = (union ib_gid *)&ifa->addr; + struct net_device *event_netdev = ifa->idev->dev; + + ibdev = container_of(this, struct mlx4_ib_dev, iboe.nb_inet6); + + mlx4_ib_addr_event(event, event_netdev, ibdev, gid); + return NOTIFY_DONE; +} +#endif + +static void mlx4_ib_get_dev_addr(struct net_device *dev, + struct mlx4_ib_dev *ibdev, u8 port) +{ + struct in_device *in_dev; +#if IS_ENABLED(CONFIG_IPV6) + struct inet6_dev *in6_dev; + union ib_gid *pgid; + struct inet6_ifaddr *ifp; +#endif + union ib_gid gid; + + + if ((port == 0) || (port > ibdev->dev->caps.num_ports)) + return; + + /* IPv4 gids */ + in_dev = in_dev_get(dev); + if (in_dev) { + for_ifa(in_dev) { + /*ifa->ifa_address;*/ + ipv6_addr_set_v4mapped(ifa->ifa_address, + (struct in6_addr *)&gid); + update_gid_table(ibdev, port, &gid, 0, 0); + } + endfor_ifa(in_dev); + in_dev_put(in_dev); + } +#if IS_ENABLED(CONFIG_IPV6) + /* IPv6 gids */ + in6_dev = in6_dev_get(dev); + if (in6_dev) { + read_lock_bh(&in6_dev->lock); + list_for_each_entry(ifp, &in6_dev->addr_list, if_list) { + pgid = (union ib_gid *)&ifp->addr; + update_gid_table(ibdev, port, pgid, 0, 0); + } + read_unlock_bh(&in6_dev->lock); + in6_dev_put(in6_dev); + } +#endif +} + +static void mlx4_ib_set_default_gid(struct mlx4_ib_dev *ibdev, + struct net_device *dev, u8 port) +{ + union ib_gid gid; + mlx4_make_default_gid(dev, &gid); + update_gid_table(ibdev, port, &gid, 0, 1); +} + +static int mlx4_ib_init_gid_table(struct mlx4_ib_dev *ibdev) +{ + struct net_device *dev; + struct mlx4_ib_iboe *iboe = &ibdev->iboe; + int i; + + for (i = 1; i <= ibdev->num_ports; ++i) + if (reset_gid_table(ibdev, i)) + return -1; + + read_lock(&dev_base_lock); + spin_lock(&iboe->lock); + + for_each_netdev(&init_net, dev) { + u8 port = mlx4_ib_get_dev_port(dev, ibdev); + if (port) + mlx4_ib_get_dev_addr(dev, ibdev, port); + } + + spin_unlock(&iboe->lock); + read_unlock(&dev_base_lock); + + return 0; +} + +static void mlx4_ib_scan_netdevs(struct mlx4_ib_dev *ibdev) +{ struct mlx4_ib_iboe *iboe; int port; - if (!net_eq(dev_net(dev), &init_net)) - return NOTIFY_DONE; - - ibdev = container_of(this, struct mlx4_ib_dev, iboe.nb); iboe = &ibdev->iboe; spin_lock(&iboe->lock); mlx4_foreach_ib_transport_port(port, ibdev->dev) { - oldnd = iboe->netdevs[port - 1]; + enum ib_port_state port_state = IB_PORT_NOP; + struct net_device *old_master = iboe->masters[port - 1]; + struct net_device *curr_netdev; + struct net_device *curr_master; + iboe->netdevs[port - 1] = mlx4_get_protocol_dev(ibdev->dev, MLX4_PROT_ETH, port); - if (oldnd != iboe->netdevs[port - 1]) { - if (iboe->netdevs[port - 1]) - netdev_added(ibdev, port); - else - netdev_removed(ibdev, port); + if (iboe->netdevs[port - 1]) + mlx4_ib_set_default_gid(ibdev, + iboe->netdevs[port - 1], port); + curr_netdev = iboe->netdevs[port - 1]; + + if (iboe->netdevs[port - 1] && + netif_is_bond_slave(iboe->netdevs[port - 1])) { + iboe->masters[port - 1] = netdev_master_upper_dev_get( + iboe->netdevs[port - 1]); + } else { + iboe->masters[port - 1] = NULL; } - } + curr_master = iboe->masters[port - 1]; - if (dev == iboe->netdevs[0] || - (iboe->netdevs[0] && rdma_vlan_dev_real_dev(dev) == iboe->netdevs[0])) - handle_en_event(ibdev, 1, event); - else if (dev == iboe->netdevs[1] - || (iboe->netdevs[1] && rdma_vlan_dev_real_dev(dev) == iboe->netdevs[1])) - handle_en_event(ibdev, 2, event); + if (curr_netdev) { + port_state = (netif_running(curr_netdev) && netif_carrier_ok(curr_netdev)) ? + IB_PORT_ACTIVE : IB_PORT_DOWN; + mlx4_ib_set_default_gid(ibdev, curr_netdev, port); + } else { + reset_gid_table(ibdev, port); + } + /* if using bonding/team and a slave port is down, we don't the bond IP + * based gids in the table since flows that select port by gid may get + * the down port. + */ + if (curr_master && (port_state == IB_PORT_DOWN)) { + reset_gid_table(ibdev, port); + mlx4_ib_set_default_gid(ibdev, curr_netdev, port); + } + /* if bonding is used it is possible that we add it to masters + * only after IP address is assigned to the net bonding + * interface. + */ + if (curr_master && (old_master != curr_master)) { + reset_gid_table(ibdev, port); + mlx4_ib_set_default_gid(ibdev, curr_netdev, port); + mlx4_ib_get_dev_addr(curr_master, ibdev, port); + } + + if (!curr_master && (old_master != curr_master)) { + reset_gid_table(ibdev, port); + mlx4_ib_set_default_gid(ibdev, curr_netdev, port); + mlx4_ib_get_dev_addr(curr_netdev, ibdev, port); + } + } spin_unlock(&iboe->lock); +} + +static int mlx4_ib_netdev_event(struct notifier_block *this, + unsigned long event, void *ptr) +{ + struct net_device *dev = netdev_notifier_info_to_dev(ptr); + struct mlx4_ib_dev *ibdev; + + if (!net_eq(dev_net(dev), &init_net)) + return NOTIFY_DONE; + + ibdev = container_of(this, struct mlx4_ib_dev, iboe.nb); + mlx4_ib_scan_netdevs(ibdev); return NOTIFY_DONE; } @@ -1533,17 +1884,10 @@ int i, j; int err; struct mlx4_ib_iboe *iboe; + int ib_num_ports = 0; pr_info_once("%s", mlx4_ib_version); - mlx4_foreach_non_ib_transport_port(i, dev) - num_ports++; - - if (mlx4_is_mfunc(dev) && num_ports) { - dev_err(&dev->pdev->dev, "RoCE is not supported over SRIOV as yet\n"); - return NULL; - } - num_ports = 0; mlx4_foreach_ib_transport_port(i, dev) num_ports++; @@ -1682,6 +2026,7 @@ } if (check_flow_steering_support(dev)) { + ibdev->steering_support = MLX4_STEERING_MODE_DEVICE_MANAGED; ibdev->ib_dev.create_flow = mlx4_ib_create_flow; ibdev->ib_dev.destroy_flow = mlx4_ib_destroy_flow; @@ -1707,11 +2052,42 @@ ibdev->counters[i] = -1; } + mlx4_foreach_port(i, dev, MLX4_PORT_TYPE_IB) + ib_num_ports++; + spin_lock_init(&ibdev->sm_lock); mutex_init(&ibdev->cap_mask_mutex); + if (ibdev->steering_support == MLX4_STEERING_MODE_DEVICE_MANAGED && + ib_num_ports) { + ibdev->steer_qpn_count = MLX4_IB_UC_MAX_NUM_QPS; + err = mlx4_qp_reserve_range(dev, ibdev->steer_qpn_count, + MLX4_IB_UC_STEER_QPN_ALIGN, + &ibdev->steer_qpn_base); + if (err) + goto err_counter; + + ibdev->ib_uc_qpns_bitmap = + kmalloc(BITS_TO_LONGS(ibdev->steer_qpn_count) * + sizeof(long), + GFP_KERNEL); + if (!ibdev->ib_uc_qpns_bitmap) { + dev_err(&dev->pdev->dev, "bit map alloc failed\n"); + goto err_steer_qp_release; + } + + bitmap_zero(ibdev->ib_uc_qpns_bitmap, ibdev->steer_qpn_count); + + err = mlx4_FLOW_STEERING_IB_UC_QP_RANGE( + dev, ibdev->steer_qpn_base, + ibdev->steer_qpn_base + + ibdev->steer_qpn_count - 1); + if (err) + goto err_steer_free_bitmap; + } + if (ib_register_device(&ibdev->ib_dev, NULL)) - goto err_counter; + goto err_steer_free_bitmap; if (mlx4_ib_mad_init(ibdev)) goto err_reg; @@ -1719,11 +2095,39 @@ if (mlx4_ib_init_sriov(ibdev)) goto err_mad; - if (dev->caps.flags & MLX4_DEV_CAP_FLAG_IBOE && !iboe->nb.notifier_call) { - iboe->nb.notifier_call = mlx4_ib_netdev_event; - err = register_netdevice_notifier(&iboe->nb); - if (err) - goto err_sriov; + if (dev->caps.flags & MLX4_DEV_CAP_FLAG_IBOE) { + if (!iboe->nb.notifier_call) { + iboe->nb.notifier_call = mlx4_ib_netdev_event; + err = register_netdevice_notifier(&iboe->nb); + if (err) { + iboe->nb.notifier_call = NULL; + goto err_notif; + } + } + if (!iboe->nb_inet.notifier_call) { + iboe->nb_inet.notifier_call = mlx4_ib_inet_event; + err = register_inetaddr_notifier(&iboe->nb_inet); + if (err) { + iboe->nb_inet.notifier_call = NULL; + goto err_notif; + } + } +#if IS_ENABLED(CONFIG_IPV6) + if (!iboe->nb_inet6.notifier_call) { + iboe->nb_inet6.notifier_call = mlx4_ib_inet6_event; + err = register_inet6addr_notifier(&iboe->nb_inet6); + if (err) { + iboe->nb_inet6.notifier_call = NULL; + goto err_notif; + } + } +#endif + for (i = 1 ; i <= ibdev->num_ports ; ++i) + reset_gid_table(ibdev, i); + rtnl_lock(); + mlx4_ib_scan_netdevs(ibdev); + rtnl_unlock(); + mlx4_ib_init_gid_table(ibdev); } for (j = 0; j < ARRAY_SIZE(mlx4_class_attributes); ++j) { @@ -1749,11 +2153,25 @@ return ibdev; err_notif: - if (unregister_netdevice_notifier(&ibdev->iboe.nb)) - pr_warn("failure unregistering notifier\n"); + if (ibdev->iboe.nb.notifier_call) { + if (unregister_netdevice_notifier(&ibdev->iboe.nb)) + pr_warn("failure unregistering notifier\n"); + ibdev->iboe.nb.notifier_call = NULL; + } + if (ibdev->iboe.nb_inet.notifier_call) { + if (unregister_inetaddr_notifier(&ibdev->iboe.nb_inet)) + pr_warn("failure unregistering notifier\n"); + ibdev->iboe.nb_inet.notifier_call = NULL; + } +#if IS_ENABLED(CONFIG_IPV6) + if (ibdev->iboe.nb_inet6.notifier_call) { + if (unregister_inet6addr_notifier(&ibdev->iboe.nb_inet6)) + pr_warn("failure unregistering notifier\n"); + ibdev->iboe.nb_inet6.notifier_call = NULL; + } +#endif flush_workqueue(wq); -err_sriov: mlx4_ib_close_sriov(ibdev); err_mad: @@ -1762,6 +2180,13 @@ err_reg: ib_unregister_device(&ibdev->ib_dev); +err_steer_free_bitmap: + kfree(ibdev->ib_uc_qpns_bitmap); + +err_steer_qp_release: + if (ibdev->steering_support == MLX4_STEERING_MODE_DEVICE_MANAGED) + mlx4_qp_release_range(dev, ibdev->steer_qpn_base, + ibdev->steer_qpn_count); err_counter: for (; i; --i) if (ibdev->counters[i - 1] != -1) @@ -1782,6 +2207,69 @@ return NULL; } +int mlx4_ib_steer_qp_alloc(struct mlx4_ib_dev *dev, int count, int *qpn) +{ + int offset; + + WARN_ON(!dev->ib_uc_qpns_bitmap); + + offset = bitmap_find_free_region(dev->ib_uc_qpns_bitmap, + dev->steer_qpn_count, + get_count_order(count)); + if (offset < 0) + return offset; + + *qpn = dev->steer_qpn_base + offset; + return 0; +} + +void mlx4_ib_steer_qp_free(struct mlx4_ib_dev *dev, u32 qpn, int count) +{ + if (!qpn || + dev->steering_support != MLX4_STEERING_MODE_DEVICE_MANAGED) + return; + + BUG_ON(qpn < dev->steer_qpn_base); + + bitmap_release_region(dev->ib_uc_qpns_bitmap, + qpn - dev->steer_qpn_base, + get_count_order(count)); +} + +int mlx4_ib_steer_qp_reg(struct mlx4_ib_dev *mdev, struct mlx4_ib_qp *mqp, + int is_attach) +{ + int err; + size_t flow_size; + struct ib_flow_attr *flow = NULL; + struct ib_flow_spec_ib *ib_spec; + + if (is_attach) { + flow_size = sizeof(struct ib_flow_attr) + + sizeof(struct ib_flow_spec_ib); + flow = kzalloc(flow_size, GFP_KERNEL); + if (!flow) + return -ENOMEM; + flow->port = mqp->port; + flow->num_of_specs = 1; + flow->size = flow_size; + ib_spec = (struct ib_flow_spec_ib *)(flow + 1); + ib_spec->type = IB_FLOW_SPEC_IB; + ib_spec->size = sizeof(struct ib_flow_spec_ib); + /* Add an empty rule for IB L2 */ + memset(&ib_spec->mask, 0, sizeof(ib_spec->mask)); + + err = __mlx4_ib_create_flow(&mqp->ibqp, flow, + IB_FLOW_DOMAIN_NIC, + MLX4_FS_REGULAR, + &mqp->reg_id); + } else { + err = __mlx4_ib_destroy_flow(mdev->dev, mqp->reg_id); + } + kfree(flow); + return err; +} + static void mlx4_ib_remove(struct mlx4_dev *dev, void *ibdev_ptr) { struct mlx4_ib_dev *ibdev = ibdev_ptr; @@ -1795,6 +2283,26 @@ pr_warn("failure unregistering notifier\n"); ibdev->iboe.nb.notifier_call = NULL; } + + if (ibdev->steering_support == MLX4_STEERING_MODE_DEVICE_MANAGED) { + mlx4_qp_release_range(dev, ibdev->steer_qpn_base, + ibdev->steer_qpn_count); + kfree(ibdev->ib_uc_qpns_bitmap); + } + + if (ibdev->iboe.nb_inet.notifier_call) { + if (unregister_inetaddr_notifier(&ibdev->iboe.nb_inet)) + pr_warn("failure unregistering notifier\n"); + ibdev->iboe.nb_inet.notifier_call = NULL; + } +#if IS_ENABLED(CONFIG_IPV6) + if (ibdev->iboe.nb_inet6.notifier_call) { + if (unregister_inet6addr_notifier(&ibdev->iboe.nb_inet6)) + pr_warn("failure unregistering notifier\n"); + ibdev->iboe.nb_inet6.notifier_call = NULL; + } +#endif + iounmap(ibdev->uar_map); for (p = 0; p < ibdev->num_ports; ++p) if (ibdev->counters[p] != -1) @@ -1815,17 +2323,24 @@ struct mlx4_dev *dev = ibdev->dev; int i; unsigned long flags; + struct mlx4_active_ports actv_ports; + unsigned int ports; + unsigned int first_port; if (!mlx4_is_master(dev)) return; - dm = kcalloc(dev->caps.num_ports, sizeof *dm, GFP_ATOMIC); + actv_ports = mlx4_get_active_ports(dev, slave); + ports = bitmap_weight(actv_ports.ports, dev->caps.num_ports); + first_port = find_first_bit(actv_ports.ports, dev->caps.num_ports); + + dm = kcalloc(ports, sizeof(*dm), GFP_ATOMIC); if (!dm) { pr_err("failed to allocate memory for tunneling qp update\n"); goto out; } - for (i = 0; i < dev->caps.num_ports; i++) { + for (i = 0; i < ports; i++) { dm[i] = kmalloc(sizeof (struct mlx4_ib_demux_work), GFP_ATOMIC); if (!dm[i]) { pr_err("failed to allocate memory for tunneling qp update work struct\n"); @@ -1837,9 +2352,9 @@ } } /* initialize or tear down tunnel QPs for the slave */ - for (i = 0; i < dev->caps.num_ports; i++) { + for (i = 0; i < ports; i++) { INIT_WORK(&dm[i]->work, mlx4_ib_tunnels_update_work); - dm[i]->port = i + 1; + dm[i]->port = first_port + i + 1; dm[i]->slave = slave; dm[i]->do_init = do_init; dm[i]->dev = ibdev; --- linux-3.13.0.orig/drivers/infiniband/hw/mlx4/mcg.c +++ linux-3.13.0/drivers/infiniband/hw/mlx4/mcg.c @@ -215,8 +215,9 @@ } mlx4_ib_query_ah(dev->sm_ah[ctx->port - 1], &ah_attr); spin_unlock(&dev->sm_lock); - return mlx4_ib_send_to_wire(dev, mlx4_master_func_num(dev->dev), ctx->port, - IB_QPT_GSI, 0, 1, IB_QP1_QKEY, &ah_attr, mad); + return mlx4_ib_send_to_wire(dev, mlx4_master_func_num(dev->dev), + ctx->port, IB_QPT_GSI, 0, 1, IB_QP1_QKEY, + &ah_attr, NULL, mad); } static int send_mad_to_slave(int slave, struct mlx4_ib_demux_ctx *ctx, --- linux-3.13.0.orig/drivers/infiniband/hw/mlx4/mlx4_ib.h +++ linux-3.13.0/drivers/infiniband/hw/mlx4/mlx4_ib.h @@ -68,6 +68,8 @@ /*module param to indicate if SM assigns the alias_GUID*/ extern int mlx4_ib_sm_guid_assign; +#define MLX4_IB_UC_STEER_QPN_ALIGN 1 +#define MLX4_IB_UC_MAX_NUM_QPS 256 struct mlx4_ib_ucontext { struct ib_ucontext ibucontext; struct mlx4_uar uar; @@ -153,6 +155,7 @@ enum mlx4_ib_qp_flags { MLX4_IB_QP_LSO = IB_QP_CREATE_IPOIB_UD_LSO, MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK = IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK, + MLX4_IB_QP_NETIF = IB_QP_CREATE_NETIF_QP, MLX4_IB_SRIOV_TUNNEL_QP = 1 << 30, MLX4_IB_SRIOV_SQP = 1 << 31, }; @@ -238,6 +241,22 @@ struct mlx4_rcv_tunnel_hdr tun; } __packed; +struct mlx4_roce_smac_vlan_info { + u64 smac; + int smac_index; + int smac_port; + u64 candidate_smac; + int candidate_smac_index; + int candidate_smac_port; + u16 vid; + int vlan_index; + int vlan_port; + u16 candidate_vid; + int candidate_vlan_index; + int candidate_vlan_port; + int update_vid; +}; + struct mlx4_ib_qp { struct ib_qp ibqp; struct mlx4_qp mqp; @@ -270,7 +289,9 @@ struct list_head gid_list; struct list_head steering_rules; struct mlx4_ib_buf *sqp_proxy_rcv; - + struct mlx4_roce_smac_vlan_info pri; + struct mlx4_roce_smac_vlan_info alt; + u64 reg_id; }; struct mlx4_ib_srq { @@ -428,7 +449,10 @@ struct mlx4_ib_iboe { spinlock_t lock; struct net_device *netdevs[MLX4_MAX_PORTS]; + struct net_device *masters[MLX4_MAX_PORTS]; struct notifier_block nb; + struct notifier_block nb_inet; + struct notifier_block nb_inet6; union ib_gid gid_table[MLX4_MAX_PORTS][128]; }; @@ -494,6 +518,10 @@ struct kobject *dev_ports_parent[MLX4_MFUNC_MAX]; struct mlx4_ib_iov_port iov_ports[MLX4_MAX_PORTS]; struct pkey_mgt pkeys; + unsigned long *ib_uc_qpns_bitmap; + int steer_qpn_count; + int steer_qpn_base; + int steering_support; }; struct ib_event_work { @@ -675,9 +703,6 @@ int __mlx4_ib_query_gid(struct ib_device *ibdev, u8 port, int index, union ib_gid *gid, int netw_view); -int mlx4_ib_resolve_grh(struct mlx4_ib_dev *dev, const struct ib_ah_attr *ah_attr, - u8 *mac, int *is_mcast, u8 port); - static inline bool mlx4_ib_ah_grh_present(struct mlx4_ib_ah *ah) { u8 port = be32_to_cpu(ah->av.ib.port_pd) >> 24 & 3; @@ -712,9 +737,12 @@ int mlx4_ib_send_to_slave(struct mlx4_ib_dev *dev, int slave, u8 port, enum ib_qp_type qpt, struct ib_wc *wc, struct ib_grh *grh, struct ib_mad *mad); + int mlx4_ib_send_to_wire(struct mlx4_ib_dev *dev, int slave, u8 port, enum ib_qp_type dest_qpt, u16 pkey_index, u32 remote_qpn, - u32 qkey, struct ib_ah_attr *attr, struct ib_mad *mad); + u32 qkey, struct ib_ah_attr *attr, u8 *s_mac, + struct ib_mad *mad); + __be64 mlx4_ib_get_new_demux_tid(struct mlx4_ib_demux_ctx *ctx); int mlx4_ib_demux_cm_handler(struct ib_device *ibdev, int port, int *slave, @@ -752,5 +780,9 @@ __be64 mlx4_ib_gen_node_guid(void); +int mlx4_ib_steer_qp_alloc(struct mlx4_ib_dev *dev, int count, int *qpn); +void mlx4_ib_steer_qp_free(struct mlx4_ib_dev *dev, u32 qpn, int count); +int mlx4_ib_steer_qp_reg(struct mlx4_ib_dev *mdev, struct mlx4_ib_qp *mqp, + int is_attach); #endif /* MLX4_IB_H */ --- linux-3.13.0.orig/drivers/infiniband/hw/mlx4/qp.c +++ linux-3.13.0/drivers/infiniband/hw/mlx4/qp.c @@ -90,6 +90,21 @@ MLX4_RAW_QP_MSGMAX = 31, }; +#ifndef ETH_ALEN +#define ETH_ALEN 6 +#endif +static inline u64 mlx4_mac_to_u64(u8 *addr) +{ + u64 mac = 0; + int i; + + for (i = 0; i < ETH_ALEN; i++) { + mac <<= 8; + mac |= addr[i]; + } + return mac; +} + static const __be32 mlx4_ib_opcode[] = { [IB_WR_SEND] = cpu_to_be32(MLX4_OPCODE_SEND), [IB_WR_LSO] = cpu_to_be32(MLX4_OPCODE_LSO), @@ -647,10 +662,14 @@ if (!sqp) return -ENOMEM; qp = &sqp->qp; + qp->pri.vid = 0xFFFF; + qp->alt.vid = 0xFFFF; } else { qp = kzalloc(sizeof (struct mlx4_ib_qp), GFP_KERNEL); if (!qp) return -ENOMEM; + qp->pri.vid = 0xFFFF; + qp->alt.vid = 0xFFFF; } } else qp = *caller_qp; @@ -716,6 +735,14 @@ if (init_attr->create_flags & IB_QP_CREATE_IPOIB_UD_LSO) qp->flags |= MLX4_IB_QP_LSO; + if (init_attr->create_flags & IB_QP_CREATE_NETIF_QP) { + if (dev->steering_support == + MLX4_STEERING_MODE_DEVICE_MANAGED) + qp->flags |= MLX4_IB_QP_NETIF; + else + goto err; + } + err = set_kernel_sq_size(dev, &init_attr->cap, qp_type, qp); if (err) goto err; @@ -765,7 +792,11 @@ if (init_attr->qp_type == IB_QPT_RAW_PACKET) err = mlx4_qp_reserve_range(dev->dev, 1, 1 << 8, &qpn); else - err = mlx4_qp_reserve_range(dev->dev, 1, 1, &qpn); + if (qp->flags & MLX4_IB_QP_NETIF) + err = mlx4_ib_steer_qp_alloc(dev, 1, &qpn); + else + err = mlx4_qp_reserve_range(dev->dev, 1, 1, + &qpn); if (err) goto err_proxy; } @@ -790,8 +821,12 @@ return 0; err_qpn: - if (!sqpn) - mlx4_qp_release_range(dev->dev, qpn, 1); + if (!sqpn) { + if (qp->flags & MLX4_IB_QP_NETIF) + mlx4_ib_steer_qp_free(dev, qpn, 1); + else + mlx4_qp_release_range(dev->dev, qpn, 1); + } err_proxy: if (qp->mlx4_ib_qp_type == MLX4_IB_QPT_PROXY_GSI) free_proxy_bufs(pd->device, qp); @@ -909,11 +944,32 @@ { struct mlx4_ib_cq *send_cq, *recv_cq; - if (qp->state != IB_QPS_RESET) + if (qp->state != IB_QPS_RESET) { if (mlx4_qp_modify(dev->dev, NULL, to_mlx4_state(qp->state), MLX4_QP_STATE_RST, NULL, 0, 0, &qp->mqp)) pr_warn("modify QP %06x to RESET failed.\n", qp->mqp.qpn); + if (qp->pri.smac) { + mlx4_unregister_mac(dev->dev, qp->pri.smac_port, qp->pri.smac); + qp->pri.smac = 0; + } + if (qp->alt.smac) { + mlx4_unregister_mac(dev->dev, qp->alt.smac_port, qp->alt.smac); + qp->alt.smac = 0; + } + if (qp->pri.vid < 0x1000) { + mlx4_unregister_vlan(dev->dev, qp->pri.vlan_port, qp->pri.vid); + qp->pri.vid = 0xFFFF; + qp->pri.candidate_vid = 0xFFFF; + qp->pri.update_vid = 0; + } + if (qp->alt.vid < 0x1000) { + mlx4_unregister_vlan(dev->dev, qp->alt.vlan_port, qp->alt.vid); + qp->alt.vid = 0xFFFF; + qp->alt.candidate_vid = 0xFFFF; + qp->alt.update_vid = 0; + } + } get_cqs(qp, &send_cq, &recv_cq); @@ -932,8 +988,12 @@ mlx4_qp_free(dev->dev, &qp->mqp); - if (!is_sqp(dev, qp) && !is_tunnel_qp(dev, qp)) - mlx4_qp_release_range(dev->dev, qp->mqp.qpn, 1); + if (!is_sqp(dev, qp) && !is_tunnel_qp(dev, qp)) { + if (qp->flags & MLX4_IB_QP_NETIF) + mlx4_ib_steer_qp_free(dev, qp->mqp.qpn, 1); + else + mlx4_qp_release_range(dev->dev, qp->mqp.qpn, 1); + } mlx4_mtt_cleanup(dev->dev, &qp->mtt); @@ -987,9 +1047,16 @@ */ if (init_attr->create_flags & ~(MLX4_IB_QP_LSO | MLX4_IB_QP_BLOCK_MULTICAST_LOOPBACK | - MLX4_IB_SRIOV_TUNNEL_QP | MLX4_IB_SRIOV_SQP)) + MLX4_IB_SRIOV_TUNNEL_QP | + MLX4_IB_SRIOV_SQP | + MLX4_IB_QP_NETIF)) return ERR_PTR(-EINVAL); + if (init_attr->create_flags & IB_QP_CREATE_NETIF_QP) { + if (init_attr->qp_type != IB_QPT_UD) + return ERR_PTR(-EINVAL); + } + if (init_attr->create_flags && (udata || ((init_attr->create_flags & ~MLX4_IB_SRIOV_SQP) && @@ -1015,6 +1082,8 @@ qp = kzalloc(sizeof *qp, GFP_KERNEL); if (!qp) return ERR_PTR(-ENOMEM); + qp->pri.vid = 0xFFFF; + qp->alt.vid = 0xFFFF; /* fall through */ case IB_QPT_UD: { @@ -1144,16 +1213,16 @@ path->sched_queue = (path->sched_queue & 0xbf) | ((port - 1) << 6); } -static int mlx4_set_path(struct mlx4_ib_dev *dev, const struct ib_ah_attr *ah, - struct mlx4_qp_path *path, u8 port) +static int _mlx4_set_path(struct mlx4_ib_dev *dev, const struct ib_ah_attr *ah, + u64 smac, u16 vlan_tag, struct mlx4_qp_path *path, + struct mlx4_roce_smac_vlan_info *smac_info, u8 port) { - int err; int is_eth = rdma_port_get_link_layer(&dev->ib_dev, port) == IB_LINK_LAYER_ETHERNET; - u8 mac[6]; - int is_mcast; - u16 vlan_tag; int vidx; + int smac_index; + int err; + path->grh_mylmc = ah->src_path_bits & 0x7f; path->rlid = cpu_to_be16(ah->dlid); @@ -1182,36 +1251,105 @@ } if (is_eth) { - path->sched_queue = MLX4_IB_DEFAULT_SCHED_QUEUE | - ((port - 1) << 6) | ((ah->sl & 7) << 3); - if (!(ah->ah_flags & IB_AH_GRH)) return -1; - err = mlx4_ib_resolve_grh(dev, ah, mac, &is_mcast, port); - if (err) - return err; - - memcpy(path->dmac, mac, 6); - path->ackto = MLX4_IB_LINK_TYPE_ETH; - /* use index 0 into MAC table for IBoE */ - path->grh_mylmc &= 0x80; + path->sched_queue = MLX4_IB_DEFAULT_SCHED_QUEUE | + ((port - 1) << 6) | ((ah->sl & 7) << 3); - vlan_tag = rdma_get_vlan_id(&dev->iboe.gid_table[port - 1][ah->grh.sgid_index]); + path->feup |= MLX4_FEUP_FORCE_ETH_UP; if (vlan_tag < 0x1000) { - if (mlx4_find_cached_vlan(dev->dev, port, vlan_tag, &vidx)) - return -ENOENT; - - path->vlan_index = vidx; + if (smac_info->vid < 0x1000) { + /* both valid vlan ids */ + if (smac_info->vid != vlan_tag) { + /* different VIDs. unreg old and reg new */ + err = mlx4_register_vlan(dev->dev, port, vlan_tag, &vidx); + if (err) + return err; + smac_info->candidate_vid = vlan_tag; + smac_info->candidate_vlan_index = vidx; + smac_info->candidate_vlan_port = port; + smac_info->update_vid = 1; + path->vlan_index = vidx; + } else { + path->vlan_index = smac_info->vlan_index; + } + } else { + /* no current vlan tag in qp */ + err = mlx4_register_vlan(dev->dev, port, vlan_tag, &vidx); + if (err) + return err; + smac_info->candidate_vid = vlan_tag; + smac_info->candidate_vlan_index = vidx; + smac_info->candidate_vlan_port = port; + smac_info->update_vid = 1; + path->vlan_index = vidx; + } + path->feup |= MLX4_FVL_FORCE_ETH_VLAN; path->fl = 1 << 6; + } else { + /* have current vlan tag. unregister it at modify-qp success */ + if (smac_info->vid < 0x1000) { + smac_info->candidate_vid = 0xFFFF; + smac_info->update_vid = 1; + } } - } else + + /* get smac_index for RoCE use. + * If no smac was yet assigned, register one. + * If one was already assigned, but the new mac differs, + * unregister the old one and register the new one. + */ + if (!smac_info->smac || smac_info->smac != smac) { + /* register candidate now, unreg if needed, after success */ + smac_index = mlx4_register_mac(dev->dev, port, smac); + if (smac_index >= 0) { + smac_info->candidate_smac_index = smac_index; + smac_info->candidate_smac = smac; + smac_info->candidate_smac_port = port; + } else { + return -EINVAL; + } + } else { + smac_index = smac_info->smac_index; + } + + memcpy(path->dmac, ah->dmac, 6); + path->ackto = MLX4_IB_LINK_TYPE_ETH; + /* put MAC table smac index for IBoE */ + path->grh_mylmc = (u8) (smac_index) | 0x80; + } else { path->sched_queue = MLX4_IB_DEFAULT_SCHED_QUEUE | ((port - 1) << 6) | ((ah->sl & 0xf) << 2); + } return 0; } +static int mlx4_set_path(struct mlx4_ib_dev *dev, const struct ib_qp_attr *qp, + enum ib_qp_attr_mask qp_attr_mask, + struct mlx4_ib_qp *mqp, + struct mlx4_qp_path *path, u8 port) +{ + return _mlx4_set_path(dev, &qp->ah_attr, + mlx4_mac_to_u64((u8 *)qp->smac), + (qp_attr_mask & IB_QP_VID) ? qp->vlan_id : 0xffff, + path, &mqp->pri, port); +} + +static int mlx4_set_alt_path(struct mlx4_ib_dev *dev, + const struct ib_qp_attr *qp, + enum ib_qp_attr_mask qp_attr_mask, + struct mlx4_ib_qp *mqp, + struct mlx4_qp_path *path, u8 port) +{ + return _mlx4_set_path(dev, &qp->alt_ah_attr, + mlx4_mac_to_u64((u8 *)qp->alt_smac), + (qp_attr_mask & IB_QP_ALT_VID) ? + qp->alt_vlan_id : 0xffff, + path, &mqp->alt, port); +} + static void update_mcg_macs(struct mlx4_ib_dev *dev, struct mlx4_ib_qp *qp) { struct mlx4_ib_gid_entry *ge, *tmp; @@ -1224,6 +1362,37 @@ } } +static int handle_eth_ud_smac_index(struct mlx4_ib_dev *dev, struct mlx4_ib_qp *qp, u8 *smac, + struct mlx4_qp_context *context) +{ + struct net_device *ndev; + u64 u64_mac; + int smac_index; + + + ndev = dev->iboe.netdevs[qp->port - 1]; + if (ndev) { + smac = ndev->dev_addr; + u64_mac = mlx4_mac_to_u64(smac); + } else { + u64_mac = dev->dev->caps.def_mac[qp->port]; + } + + context->pri_path.sched_queue = MLX4_IB_DEFAULT_SCHED_QUEUE | ((qp->port - 1) << 6); + if (!qp->pri.smac) { + smac_index = mlx4_register_mac(dev->dev, qp->port, u64_mac); + if (smac_index >= 0) { + qp->pri.candidate_smac_index = smac_index; + qp->pri.candidate_smac = u64_mac; + qp->pri.candidate_smac_port = qp->port; + context->pri_path.grh_mylmc = 0x80 | (u8) smac_index; + } else { + return -ENOENT; + } + } + return 0; +} + static int __mlx4_ib_modify_qp(struct ib_qp *ibqp, const struct ib_qp_attr *attr, int attr_mask, enum ib_qp_state cur_state, enum ib_qp_state new_state) @@ -1235,6 +1404,7 @@ struct mlx4_qp_context *context; enum mlx4_qp_optpar optpar = 0; int sqd_event; + int steer_qp = 0; int err = -EINVAL; context = kzalloc(sizeof *context, GFP_KERNEL); @@ -1319,6 +1489,11 @@ optpar |= MLX4_QP_OPTPAR_COUNTER_INDEX; } else context->pri_path.counter_index = 0xff; + + if (qp->flags & MLX4_IB_QP_NETIF) { + mlx4_ib_steer_qp_reg(dev, qp, 1); + steer_qp = 1; + } } if (attr_mask & IB_QP_PKEY_INDEX) { @@ -1329,7 +1504,7 @@ } if (attr_mask & IB_QP_AV) { - if (mlx4_set_path(dev, &attr->ah_attr, &context->pri_path, + if (mlx4_set_path(dev, attr, attr_mask, qp, &context->pri_path, attr_mask & IB_QP_PORT ? attr->port_num : qp->port)) goto out; @@ -1352,8 +1527,9 @@ dev->dev->caps.pkey_table_len[attr->alt_port_num]) goto out; - if (mlx4_set_path(dev, &attr->alt_ah_attr, &context->alt_path, - attr->alt_port_num)) + if (mlx4_set_alt_path(dev, attr, attr_mask, qp, + &context->alt_path, + attr->alt_port_num)) goto out; context->alt_path.pkey_index = attr->alt_pkey_index; @@ -1458,12 +1634,37 @@ context->pri_path.fl = 0x80; context->pri_path.sched_queue |= MLX4_IB_DEFAULT_SCHED_QUEUE; } + if (rdma_port_get_link_layer(&dev->ib_dev, qp->port) == + IB_LINK_LAYER_ETHERNET) { + if (qp->mlx4_ib_qp_type == MLX4_IB_QPT_TUN_GSI || + qp->mlx4_ib_qp_type == MLX4_IB_QPT_GSI) + context->pri_path.feup = 1 << 7; /* don't fsm */ + /* handle smac_index */ + if (qp->mlx4_ib_qp_type == MLX4_IB_QPT_UD || + qp->mlx4_ib_qp_type == MLX4_IB_QPT_PROXY_GSI || + qp->mlx4_ib_qp_type == MLX4_IB_QPT_TUN_GSI) { + err = handle_eth_ud_smac_index(dev, qp, (u8 *)attr->smac, context); + if (err) + return -EINVAL; + } + } } if (qp->ibqp.qp_type == IB_QPT_RAW_PACKET) context->pri_path.ackto = (context->pri_path.ackto & 0xf8) | MLX4_IB_LINK_TYPE_ETH; + if (ibqp->qp_type == IB_QPT_UD && (new_state == IB_QPS_RTR)) { + int is_eth = rdma_port_get_link_layer( + &dev->ib_dev, qp->port) == + IB_LINK_LAYER_ETHERNET; + if (is_eth) { + context->pri_path.ackto = MLX4_IB_LINK_TYPE_ETH; + optpar |= MLX4_QP_OPTPAR_PRIMARY_ADDR_PATH; + } + } + + if (cur_state == IB_QPS_RTS && new_state == IB_QPS_SQD && attr_mask & IB_QP_EN_SQD_ASYNC_NOTIFY && attr->en_sqd_async_notify) sqd_event = 1; @@ -1534,23 +1735,113 @@ * If we moved a kernel QP to RESET, clean up all old CQ * entries and reinitialize the QP. */ - if (new_state == IB_QPS_RESET && !ibqp->uobject) { - mlx4_ib_cq_clean(recv_cq, qp->mqp.qpn, - ibqp->srq ? to_msrq(ibqp->srq): NULL); - if (send_cq != recv_cq) - mlx4_ib_cq_clean(send_cq, qp->mqp.qpn, NULL); - - qp->rq.head = 0; - qp->rq.tail = 0; - qp->sq.head = 0; - qp->sq.tail = 0; - qp->sq_next_wqe = 0; - if (qp->rq.wqe_cnt) - *qp->db.db = 0; + if (new_state == IB_QPS_RESET) { + if (!ibqp->uobject) { + mlx4_ib_cq_clean(recv_cq, qp->mqp.qpn, + ibqp->srq ? to_msrq(ibqp->srq) : NULL); + if (send_cq != recv_cq) + mlx4_ib_cq_clean(send_cq, qp->mqp.qpn, NULL); + + qp->rq.head = 0; + qp->rq.tail = 0; + qp->sq.head = 0; + qp->sq.tail = 0; + qp->sq_next_wqe = 0; + if (qp->rq.wqe_cnt) + *qp->db.db = 0; + + if (qp->flags & MLX4_IB_QP_NETIF) + mlx4_ib_steer_qp_reg(dev, qp, 0); + } + if (qp->pri.smac) { + mlx4_unregister_mac(dev->dev, qp->pri.smac_port, qp->pri.smac); + qp->pri.smac = 0; + } + if (qp->alt.smac) { + mlx4_unregister_mac(dev->dev, qp->alt.smac_port, qp->alt.smac); + qp->alt.smac = 0; + } + if (qp->pri.vid < 0x1000) { + mlx4_unregister_vlan(dev->dev, qp->pri.vlan_port, qp->pri.vid); + qp->pri.vid = 0xFFFF; + qp->pri.candidate_vid = 0xFFFF; + qp->pri.update_vid = 0; + } + + if (qp->alt.vid < 0x1000) { + mlx4_unregister_vlan(dev->dev, qp->alt.vlan_port, qp->alt.vid); + qp->alt.vid = 0xFFFF; + qp->alt.candidate_vid = 0xFFFF; + qp->alt.update_vid = 0; + } } - out: + if (err && steer_qp) + mlx4_ib_steer_qp_reg(dev, qp, 0); kfree(context); + if (qp->pri.candidate_smac) { + if (err) { + mlx4_unregister_mac(dev->dev, qp->pri.candidate_smac_port, qp->pri.candidate_smac); + } else { + if (qp->pri.smac) + mlx4_unregister_mac(dev->dev, qp->pri.smac_port, qp->pri.smac); + qp->pri.smac = qp->pri.candidate_smac; + qp->pri.smac_index = qp->pri.candidate_smac_index; + qp->pri.smac_port = qp->pri.candidate_smac_port; + } + qp->pri.candidate_smac = 0; + qp->pri.candidate_smac_index = 0; + qp->pri.candidate_smac_port = 0; + } + if (qp->alt.candidate_smac) { + if (err) { + mlx4_unregister_mac(dev->dev, qp->alt.candidate_smac_port, qp->alt.candidate_smac); + } else { + if (qp->alt.smac) + mlx4_unregister_mac(dev->dev, qp->alt.smac_port, qp->alt.smac); + qp->alt.smac = qp->alt.candidate_smac; + qp->alt.smac_index = qp->alt.candidate_smac_index; + qp->alt.smac_port = qp->alt.candidate_smac_port; + } + qp->alt.candidate_smac = 0; + qp->alt.candidate_smac_index = 0; + qp->alt.candidate_smac_port = 0; + } + + if (qp->pri.update_vid) { + if (err) { + if (qp->pri.candidate_vid < 0x1000) + mlx4_unregister_vlan(dev->dev, qp->pri.candidate_vlan_port, + qp->pri.candidate_vid); + } else { + if (qp->pri.vid < 0x1000) + mlx4_unregister_vlan(dev->dev, qp->pri.vlan_port, + qp->pri.vid); + qp->pri.vid = qp->pri.candidate_vid; + qp->pri.vlan_port = qp->pri.candidate_vlan_port; + qp->pri.vlan_index = qp->pri.candidate_vlan_index; + } + qp->pri.candidate_vid = 0xFFFF; + qp->pri.update_vid = 0; + } + + if (qp->alt.update_vid) { + if (err) { + if (qp->alt.candidate_vid < 0x1000) + mlx4_unregister_vlan(dev->dev, qp->alt.candidate_vlan_port, + qp->alt.candidate_vid); + } else { + if (qp->alt.vid < 0x1000) + mlx4_unregister_vlan(dev->dev, qp->alt.vlan_port, + qp->alt.vid); + qp->alt.vid = qp->alt.candidate_vid; + qp->alt.vlan_port = qp->alt.candidate_vlan_port; + qp->alt.vlan_index = qp->alt.candidate_vlan_index; + } + qp->alt.candidate_vid = 0xFFFF; + qp->alt.update_vid = 0; + } + return err; } @@ -1561,13 +1852,21 @@ struct mlx4_ib_qp *qp = to_mqp(ibqp); enum ib_qp_state cur_state, new_state; int err = -EINVAL; - + int ll; mutex_lock(&qp->mutex); cur_state = attr_mask & IB_QP_CUR_STATE ? attr->cur_qp_state : qp->state; new_state = attr_mask & IB_QP_STATE ? attr->qp_state : cur_state; - if (!ib_modify_qp_is_ok(cur_state, new_state, ibqp->qp_type, attr_mask)) { + if (cur_state == new_state && cur_state == IB_QPS_RESET) { + ll = IB_LINK_LAYER_UNSPECIFIED; + } else { + int port = attr_mask & IB_QP_PORT ? attr->port_num : qp->port; + ll = rdma_port_get_link_layer(&dev->ib_dev, port); + } + + if (!ib_modify_qp_is_ok(cur_state, new_state, ibqp->qp_type, + attr_mask, ll)) { pr_debug("qpn 0x%x: invalid attribute mask specified " "for transition %d to %d. qp_type %d," " attr_mask 0x%x\n", @@ -1744,9 +2043,9 @@ { struct ib_device *ib_dev = sqp->qp.ibqp.device; struct mlx4_wqe_mlx_seg *mlx = wqe; + struct mlx4_wqe_ctrl_seg *ctrl = wqe; struct mlx4_wqe_inline_seg *inl = wqe + sizeof *mlx; struct mlx4_ib_ah *ah = to_mah(wr->wr.ud.ah); - struct net_device *ndev; union ib_gid sgid; u16 pkey; int send_size; @@ -1770,12 +2069,11 @@ /* When multi-function is enabled, the ib_core gid * indexes don't necessarily match the hw ones, so * we must use our own cache */ - sgid.global.subnet_prefix = - to_mdev(ib_dev)->sriov.demux[sqp->qp.port - 1]. - subnet_prefix; - sgid.global.interface_id = - to_mdev(ib_dev)->sriov.demux[sqp->qp.port - 1]. - guid_cache[ah->av.ib.gid_index]; + err = mlx4_get_roce_gid_from_slave(to_mdev(ib_dev)->dev, + be32_to_cpu(ah->av.ib.port_pd) >> 24, + ah->av.ib.gid_index, &sgid.raw[0]); + if (err) + return err; } else { err = ib_get_cached_gid(ib_dev, be32_to_cpu(ah->av.ib.port_pd) >> 24, @@ -1784,8 +2082,10 @@ return err; } - vlan = rdma_get_vlan_id(&sgid); - is_vlan = vlan < 0x1000; + if (ah->av.eth.vlan != 0xffff) { + vlan = be16_to_cpu(ah->av.eth.vlan) & 0x0fff; + is_vlan = 1; + } } ib_ud_header_init(send_size, !is_eth, is_eth, is_vlan, is_grh, 0, &sqp->ud_header); @@ -1802,6 +2102,9 @@ sqp->ud_header.grh.flow_label = ah->av.ib.sl_tclass_flowlabel & cpu_to_be32(0xfffff); sqp->ud_header.grh.hop_limit = ah->av.ib.hop_limit; + if (is_eth) + memcpy(sqp->ud_header.grh.source_gid.raw, sgid.raw, 16); + else { if (mlx4_is_mfunc(to_mdev(ib_dev)->dev)) { /* When multi-function is enabled, the ib_core gid * indexes don't necessarily match the hw ones, so @@ -1817,6 +2120,7 @@ be32_to_cpu(ah->av.ib.port_pd) >> 24, ah->av.ib.gid_index, &sqp->ud_header.grh.source_gid); + } memcpy(sqp->ud_header.grh.destination_gid.raw, ah->av.ib.dgid, 16); } @@ -1849,16 +2153,23 @@ if (is_eth) { u8 *smac; + struct in6_addr in6; + u16 pcp = (be32_to_cpu(ah->av.ib.sl_tclass_flowlabel) >> 29) << 13; mlx->sched_prio = cpu_to_be16(pcp); memcpy(sqp->ud_header.eth.dmac_h, ah->av.eth.mac, 6); /* FIXME: cache smac value? */ - ndev = to_mdev(sqp->qp.ibqp.device)->iboe.netdevs[sqp->qp.port - 1]; - if (!ndev) - return -ENODEV; - smac = ndev->dev_addr; + memcpy(&ctrl->srcrb_flags16[0], ah->av.eth.mac, 2); + memcpy(&ctrl->imm, ah->av.eth.mac + 2, 4); + memcpy(&in6, sgid.raw, sizeof(in6)); + + if (!mlx4_is_mfunc(to_mdev(ib_dev)->dev)) + smac = to_mdev(sqp->qp.ibqp.device)-> + iboe.netdevs[sqp->qp.port - 1]->dev_addr; + else /* use the src mac of the tunnel */ + smac = ah->av.eth.s_mac; memcpy(sqp->ud_header.eth.smac_h, smac, 6); if (!memcmp(sqp->ud_header.eth.smac_h, sqp->ud_header.eth.dmac_h, 6)) mlx->flags |= cpu_to_be32(MLX4_WQE_CTRL_FORCE_LOOPBACK); @@ -2090,6 +2401,8 @@ hdr.remote_qpn = cpu_to_be32(wr->wr.ud.remote_qpn); hdr.pkey_index = cpu_to_be16(wr->wr.ud.pkey_index); hdr.qkey = cpu_to_be32(wr->wr.ud.remote_qkey); + memcpy(hdr.mac, ah->av.eth.mac, 6); + hdr.vlan = ah->av.eth.vlan; spc = MLX4_INLINE_ALIGN - ((unsigned long) (inl + 1) & (MLX4_INLINE_ALIGN - 1)); @@ -2762,6 +3075,9 @@ if (qp->flags & MLX4_IB_QP_LSO) qp_init_attr->create_flags |= IB_QP_CREATE_IPOIB_UD_LSO; + if (qp->flags & MLX4_IB_QP_NETIF) + qp_init_attr->create_flags |= IB_QP_CREATE_NETIF_QP; + qp_init_attr->sq_sig_type = qp->sq_signal_bits == cpu_to_be32(MLX4_WQE_CTRL_CQ_UPDATE) ? IB_SIGNAL_ALL_WR : IB_SIGNAL_REQ_WR; --- linux-3.13.0.orig/drivers/infiniband/hw/mlx4/sysfs.c +++ linux-3.13.0/drivers/infiniband/hw/mlx4/sysfs.c @@ -582,8 +582,10 @@ p->pkey_group.attrs = alloc_group_attrs(show_port_pkey, store_port_pkey, dev->dev->caps.pkey_table_len[port_num]); - if (!p->pkey_group.attrs) + if (!p->pkey_group.attrs) { + ret = -ENOMEM; goto err_alloc; + } ret = sysfs_create_group(&p->kobj, &p->pkey_group); if (ret) @@ -591,8 +593,10 @@ p->gid_group.name = "gid_idx"; p->gid_group.attrs = alloc_group_attrs(show_port_gid_idx, NULL, 1); - if (!p->gid_group.attrs) + if (!p->gid_group.attrs) { + ret = -ENOMEM; goto err_free_pkey; + } ret = sysfs_create_group(&p->kobj, &p->gid_group); if (ret) @@ -623,6 +627,7 @@ int port; struct kobject *p, *t; struct mlx4_port *mport; + struct mlx4_active_ports actv_ports; get_name(dev, name, slave, sizeof name); @@ -645,7 +650,11 @@ goto err_ports; } + actv_ports = mlx4_get_active_ports(dev->dev, slave); + for (port = 1; port <= dev->dev->caps.num_ports; ++port) { + if (!test_bit(port - 1, actv_ports.ports)) + continue; err = add_port(dev, port, slave); if (err) goto err_add; --- linux-3.13.0.orig/drivers/infiniband/hw/mlx5/Kconfig +++ linux-3.13.0/drivers/infiniband/hw/mlx5/Kconfig @@ -1,6 +1,6 @@ config MLX5_INFINIBAND tristate "Mellanox Connect-IB HCA support" - depends on NETDEVICES && ETHERNET && PCI && X86 + depends on NETDEVICES && ETHERNET && PCI select NET_VENDOR_MELLANOX select MLX5_CORE ---help--- --- linux-3.13.0.orig/drivers/infiniband/hw/mlx5/cq.c +++ linux-3.13.0/drivers/infiniband/hw/mlx5/cq.c @@ -32,6 +32,7 @@ #include #include +#include #include "mlx5_ib.h" #include "user.h" @@ -73,14 +74,24 @@ return get_cqe_from_buf(&cq->buf, n, cq->mcq.cqe_sz); } +static u8 sw_ownership_bit(int n, int nent) +{ + return (n & nent) ? 1 : 0; +} + static void *get_sw_cqe(struct mlx5_ib_cq *cq, int n) { void *cqe = get_cqe(cq, n & cq->ibcq.cqe); struct mlx5_cqe64 *cqe64; cqe64 = (cq->mcq.cqe_sz == 64) ? cqe : cqe + 64; - return ((cqe64->op_own & MLX5_CQE_OWNER_MASK) ^ - !!(n & (cq->ibcq.cqe + 1))) ? NULL : cqe; + + if (likely((cqe64->op_own) >> 4 != MLX5_CQE_INVALID) && + !((cqe64->op_own & MLX5_CQE_OWNER_MASK) ^ !!(n & (cq->ibcq.cqe + 1)))) { + return cqe; + } else { + return NULL; + } } static void *next_cqe_sw(struct mlx5_ib_cq *cq) @@ -351,6 +362,11 @@ qp->sq.last_poll = tail; } +static void free_cq_buf(struct mlx5_ib_dev *dev, struct mlx5_ib_cq_buf *buf) +{ + mlx5_buf_free(&dev->mdev, &buf->buf); +} + static int mlx5_poll_one(struct mlx5_ib_cq *cq, struct mlx5_ib_qp **cur_qp, struct ib_wc *wc) @@ -366,6 +382,7 @@ void *cqe; int idx; +repoll: cqe = next_cqe_sw(cq); if (!cqe) return -EAGAIN; @@ -379,7 +396,18 @@ */ rmb(); - /* TBD: resize CQ */ + opcode = cqe64->op_own >> 4; + if (unlikely(opcode == MLX5_CQE_RESIZE_CQ)) { + if (likely(cq->resize_buf)) { + free_cq_buf(dev, &cq->buf); + cq->buf = *cq->resize_buf; + kfree(cq->resize_buf); + cq->resize_buf = NULL; + goto repoll; + } else { + mlx5_ib_warn(dev, "unexpected resize cqe\n"); + } + } qpn = ntohl(cqe64->sop_drop_qpn) & 0xffffff; if (!*cur_qp || (qpn != (*cur_qp)->ibqp.qp_num)) { @@ -398,7 +426,6 @@ } wc->qp = &(*cur_qp)->ibqp; - opcode = cqe64->op_own >> 4; switch (opcode) { case MLX5_CQE_REQ: wq = &(*cur_qp)->sq; @@ -503,29 +530,35 @@ return err; buf->cqe_size = cqe_size; + buf->nent = nent; return 0; } -static void free_cq_buf(struct mlx5_ib_dev *dev, struct mlx5_ib_cq_buf *buf) -{ - mlx5_buf_free(&dev->mdev, &buf->buf); -} - static int create_cq_user(struct mlx5_ib_dev *dev, struct ib_udata *udata, struct ib_ucontext *context, struct mlx5_ib_cq *cq, int entries, struct mlx5_create_cq_mbox_in **cqb, int *cqe_size, int *index, int *inlen) { struct mlx5_ib_create_cq ucmd; + size_t ucmdlen; int page_shift; int npages; int ncont; int err; - if (ib_copy_from_udata(&ucmd, udata, sizeof(ucmd))) + ucmdlen = + (udata->inlen - sizeof(struct ib_uverbs_cmd_hdr) < + sizeof(ucmd)) ? (sizeof(ucmd) - + sizeof(ucmd.reserved)) : sizeof(ucmd); + + if (ib_copy_from_udata(&ucmd, udata, ucmdlen)) return -EFAULT; + if (ucmdlen == sizeof(ucmd) && + ucmd.reserved != 0) + return -EINVAL; + if (ucmd.cqe_size != 64 && ucmd.cqe_size != 128) return -EINVAL; @@ -576,16 +609,16 @@ ib_umem_release(cq->buf.umem); } -static void init_cq_buf(struct mlx5_ib_cq *cq, int nent) +static void init_cq_buf(struct mlx5_ib_cq *cq, struct mlx5_ib_cq_buf *buf) { int i; void *cqe; struct mlx5_cqe64 *cqe64; - for (i = 0; i < nent; i++) { - cqe = get_cqe(cq, i); - cqe64 = (cq->buf.cqe_size == 64) ? cqe : cqe + 64; - cqe64->op_own = 0xf1; + for (i = 0; i < buf->nent; i++) { + cqe = get_cqe_from_buf(buf, i, buf->cqe_size); + cqe64 = buf->cqe_size == 64 ? cqe : cqe + 64; + cqe64->op_own = MLX5_CQE_INVALID << 4; } } @@ -610,7 +643,7 @@ if (err) goto err_db; - init_cq_buf(cq, entries); + init_cq_buf(cq, &cq->buf); *inlen = sizeof(**cqb) + sizeof(*(*cqb)->pas) * cq->buf.buf.npages; *cqb = mlx5_vzalloc(*inlen); @@ -818,12 +851,266 @@ int mlx5_ib_modify_cq(struct ib_cq *cq, u16 cq_count, u16 cq_period) { - return -ENOSYS; + struct mlx5_modify_cq_mbox_in *in; + struct mlx5_ib_dev *dev = to_mdev(cq->device); + struct mlx5_ib_cq *mcq = to_mcq(cq); + int err; + u32 fsel; + + if (!(dev->mdev.caps.flags & MLX5_DEV_CAP_FLAG_CQ_MODER)) + return -ENOSYS; + + in = kzalloc(sizeof(*in), GFP_KERNEL); + if (!in) + return -ENOMEM; + + in->cqn = cpu_to_be32(mcq->mcq.cqn); + fsel = (MLX5_CQ_MODIFY_PERIOD | MLX5_CQ_MODIFY_COUNT); + in->ctx.cq_period = cpu_to_be16(cq_period); + in->ctx.cq_max_count = cpu_to_be16(cq_count); + in->field_select = cpu_to_be32(fsel); + err = mlx5_core_modify_cq(&dev->mdev, &mcq->mcq, in, sizeof(*in)); + kfree(in); + + if (err) + mlx5_ib_warn(dev, "modify cq 0x%x failed\n", mcq->mcq.cqn); + + return err; +} + +static int resize_user(struct mlx5_ib_dev *dev, struct mlx5_ib_cq *cq, + int entries, struct ib_udata *udata, int *npas, + int *page_shift, int *cqe_size) +{ + struct mlx5_ib_resize_cq ucmd; + struct ib_umem *umem; + int err; + int npages; + struct ib_ucontext *context = cq->buf.umem->context; + + err = ib_copy_from_udata(&ucmd, udata, sizeof(ucmd)); + if (err) + return err; + + if (ucmd.reserved0 || ucmd.reserved1) + return -EINVAL; + + umem = ib_umem_get(context, ucmd.buf_addr, entries * ucmd.cqe_size, + IB_ACCESS_LOCAL_WRITE, 1); + if (IS_ERR(umem)) { + err = PTR_ERR(umem); + return err; + } + + mlx5_ib_cont_pages(umem, ucmd.buf_addr, &npages, page_shift, + npas, NULL); + + cq->resize_umem = umem; + *cqe_size = ucmd.cqe_size; + + return 0; +} + +static void un_resize_user(struct mlx5_ib_cq *cq) +{ + ib_umem_release(cq->resize_umem); +} + +static int resize_kernel(struct mlx5_ib_dev *dev, struct mlx5_ib_cq *cq, + int entries, int cqe_size) +{ + int err; + + cq->resize_buf = kzalloc(sizeof(*cq->resize_buf), GFP_KERNEL); + if (!cq->resize_buf) + return -ENOMEM; + + err = alloc_cq_buf(dev, cq->resize_buf, entries, cqe_size); + if (err) + goto ex; + + init_cq_buf(cq, cq->resize_buf); + + return 0; + +ex: + kfree(cq->resize_buf); + return err; +} + +static void un_resize_kernel(struct mlx5_ib_dev *dev, struct mlx5_ib_cq *cq) +{ + free_cq_buf(dev, cq->resize_buf); + cq->resize_buf = NULL; +} + +static int copy_resize_cqes(struct mlx5_ib_cq *cq) +{ + struct mlx5_ib_dev *dev = to_mdev(cq->ibcq.device); + struct mlx5_cqe64 *scqe64; + struct mlx5_cqe64 *dcqe64; + void *start_cqe; + void *scqe; + void *dcqe; + int ssize; + int dsize; + int i; + u8 sw_own; + + ssize = cq->buf.cqe_size; + dsize = cq->resize_buf->cqe_size; + if (ssize != dsize) { + mlx5_ib_warn(dev, "resize from different cqe size is not supported\n"); + return -EINVAL; + } + + i = cq->mcq.cons_index; + scqe = get_sw_cqe(cq, i); + scqe64 = ssize == 64 ? scqe : scqe + 64; + start_cqe = scqe; + if (!scqe) { + mlx5_ib_warn(dev, "expected cqe in sw ownership\n"); + return -EINVAL; + } + + while ((scqe64->op_own >> 4) != MLX5_CQE_RESIZE_CQ) { + dcqe = get_cqe_from_buf(cq->resize_buf, + (i + 1) & (cq->resize_buf->nent), + dsize); + dcqe64 = dsize == 64 ? dcqe : dcqe + 64; + sw_own = sw_ownership_bit(i + 1, cq->resize_buf->nent); + memcpy(dcqe, scqe, dsize); + dcqe64->op_own = (dcqe64->op_own & ~MLX5_CQE_OWNER_MASK) | sw_own; + + ++i; + scqe = get_sw_cqe(cq, i); + scqe64 = ssize == 64 ? scqe : scqe + 64; + if (!scqe) { + mlx5_ib_warn(dev, "expected cqe in sw ownership\n"); + return -EINVAL; + } + + if (scqe == start_cqe) { + pr_warn("resize CQ failed to get resize CQE, CQN 0x%x\n", + cq->mcq.cqn); + return -ENOMEM; + } + } + ++cq->mcq.cons_index; + return 0; } int mlx5_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata) { - return -ENOSYS; + struct mlx5_ib_dev *dev = to_mdev(ibcq->device); + struct mlx5_ib_cq *cq = to_mcq(ibcq); + struct mlx5_modify_cq_mbox_in *in; + int err; + int npas; + int page_shift; + int inlen; + int uninitialized_var(cqe_size); + unsigned long flags; + + if (!(dev->mdev.caps.flags & MLX5_DEV_CAP_FLAG_RESIZE_CQ)) { + pr_info("Firmware does not support resize CQ\n"); + return -ENOSYS; + } + + if (entries < 1) + return -EINVAL; + + entries = roundup_pow_of_two(entries + 1); + if (entries > dev->mdev.caps.max_cqes + 1) + return -EINVAL; + + if (entries == ibcq->cqe + 1) + return 0; + + mutex_lock(&cq->resize_mutex); + if (udata) { + err = resize_user(dev, cq, entries, udata, &npas, &page_shift, + &cqe_size); + } else { + cqe_size = 64; + err = resize_kernel(dev, cq, entries, cqe_size); + if (!err) { + npas = cq->resize_buf->buf.npages; + page_shift = cq->resize_buf->buf.page_shift; + } + } + + if (err) + goto ex; + + inlen = sizeof(*in) + npas * sizeof(in->pas[0]); + in = mlx5_vzalloc(inlen); + if (!in) { + err = -ENOMEM; + goto ex_resize; + } + + if (udata) + mlx5_ib_populate_pas(dev, cq->resize_umem, page_shift, + in->pas, 0); + else + mlx5_fill_page_array(&cq->resize_buf->buf, in->pas); + + in->field_select = cpu_to_be32(MLX5_MODIFY_CQ_MASK_LOG_SIZE | + MLX5_MODIFY_CQ_MASK_PG_OFFSET | + MLX5_MODIFY_CQ_MASK_PG_SIZE); + in->ctx.log_pg_sz = page_shift - MLX5_ADAPTER_PAGE_SHIFT; + in->ctx.cqe_sz_flags = cqe_sz_to_mlx_sz(cqe_size) << 5; + in->ctx.page_offset = 0; + in->ctx.log_sz_usr_page = cpu_to_be32(ilog2(entries) << 24); + in->hdr.opmod = cpu_to_be16(MLX5_CQ_OPMOD_RESIZE); + in->cqn = cpu_to_be32(cq->mcq.cqn); + + err = mlx5_core_modify_cq(&dev->mdev, &cq->mcq, in, inlen); + if (err) + goto ex_alloc; + + if (udata) { + cq->ibcq.cqe = entries - 1; + ib_umem_release(cq->buf.umem); + cq->buf.umem = cq->resize_umem; + cq->resize_umem = NULL; + } else { + struct mlx5_ib_cq_buf tbuf; + int resized = 0; + + spin_lock_irqsave(&cq->lock, flags); + if (cq->resize_buf) { + err = copy_resize_cqes(cq); + if (!err) { + tbuf = cq->buf; + cq->buf = *cq->resize_buf; + kfree(cq->resize_buf); + cq->resize_buf = NULL; + resized = 1; + } + } + cq->ibcq.cqe = entries - 1; + spin_unlock_irqrestore(&cq->lock, flags); + if (resized) + free_cq_buf(dev, &tbuf); + } + mutex_unlock(&cq->resize_mutex); + + mlx5_vfree(in); + return 0; + +ex_alloc: + mlx5_vfree(in); + +ex_resize: + if (udata) + un_resize_user(cq); + else + un_resize_kernel(dev, cq); +ex: + mutex_unlock(&cq->resize_mutex); + return err; } int mlx5_ib_get_cqe_size(struct mlx5_ib_dev *dev, struct ib_cq *ibcq) --- linux-3.13.0.orig/drivers/infiniband/hw/mlx5/main.c +++ linux-3.13.0/drivers/infiniband/hw/mlx5/main.c @@ -46,8 +46,8 @@ #include "mlx5_ib.h" #define DRIVER_NAME "mlx5_ib" -#define DRIVER_VERSION "1.0" -#define DRIVER_RELDATE "June 2013" +#define DRIVER_VERSION "2.2-1" +#define DRIVER_RELDATE "Feb 2014" MODULE_AUTHOR("Eli Cohen "); MODULE_DESCRIPTION("Mellanox Connect-IB HCA IB driver"); @@ -261,8 +261,7 @@ props->device_cap_flags = IB_DEVICE_CHANGE_PHY_PORT | IB_DEVICE_PORT_ACTIVE_EVENT | IB_DEVICE_SYS_IMAGE_GUID | - IB_DEVICE_RC_RNR_NAK_GEN | - IB_DEVICE_BLOCK_MULTICAST_LOOPBACK; + IB_DEVICE_RC_RNR_NAK_GEN; flags = dev->mdev.caps.flags; if (flags & MLX5_DEV_CAP_FLAG_BAD_PKEY_CNTR) props->device_cap_flags |= IB_DEVICE_BAD_PKEY_CNTR; @@ -536,34 +535,51 @@ struct ib_udata *udata) { struct mlx5_ib_dev *dev = to_mdev(ibdev); - struct mlx5_ib_alloc_ucontext_req req; + struct mlx5_ib_alloc_ucontext_req_v2 req; struct mlx5_ib_alloc_ucontext_resp resp; struct mlx5_ib_ucontext *context; struct mlx5_uuar_info *uuari; struct mlx5_uar *uars; + int gross_uuars; int num_uars; + int ver; int uuarn; int err; int i; + int reqlen; if (!dev->ib_active) return ERR_PTR(-EAGAIN); - err = ib_copy_from_udata(&req, udata, sizeof(req)); + memset(&req, 0, sizeof(req)); + reqlen = udata->inlen - sizeof(struct ib_uverbs_cmd_hdr); + if (reqlen == sizeof(struct mlx5_ib_alloc_ucontext_req)) + ver = 0; + else if (reqlen == sizeof(struct mlx5_ib_alloc_ucontext_req_v2)) + ver = 2; + else + return ERR_PTR(-EINVAL); + + err = ib_copy_from_udata(&req, udata, reqlen); if (err) return ERR_PTR(err); + if (req.flags || req.reserved) + return ERR_PTR(-EINVAL); + if (req.total_num_uuars > MLX5_MAX_UUARS) return ERR_PTR(-ENOMEM); if (req.total_num_uuars == 0) return ERR_PTR(-EINVAL); - req.total_num_uuars = ALIGN(req.total_num_uuars, MLX5_BF_REGS_PER_PAGE); + req.total_num_uuars = ALIGN(req.total_num_uuars, + MLX5_NON_FP_BF_REGS_PER_PAGE); if (req.num_low_latency_uuars > req.total_num_uuars - 1) return ERR_PTR(-EINVAL); - num_uars = req.total_num_uuars / MLX5_BF_REGS_PER_PAGE; + num_uars = req.total_num_uuars / MLX5_NON_FP_BF_REGS_PER_PAGE; + gross_uuars = num_uars * MLX5_BF_REGS_PER_PAGE; resp.qp_tab_size = 1 << dev->mdev.caps.log_max_qp; resp.bf_reg_size = dev->mdev.caps.bf_reg_size; resp.cache_line_size = L1_CACHE_BYTES; @@ -585,7 +601,7 @@ goto out_ctx; } - uuari->bitmap = kcalloc(BITS_TO_LONGS(req.total_num_uuars), + uuari->bitmap = kcalloc(BITS_TO_LONGS(gross_uuars), sizeof(*uuari->bitmap), GFP_KERNEL); if (!uuari->bitmap) { @@ -595,13 +611,13 @@ /* * clear all fast path uuars */ - for (i = 0; i < req.total_num_uuars; i++) { + for (i = 0; i < gross_uuars; i++) { uuarn = i & 3; if (uuarn == 2 || uuarn == 3) set_bit(i, uuari->bitmap); } - uuari->count = kcalloc(req.total_num_uuars, sizeof(*uuari->count), GFP_KERNEL); + uuari->count = kcalloc(gross_uuars, sizeof(*uuari->count), GFP_KERNEL); if (!uuari->count) { err = -ENOMEM; goto out_bitmap; @@ -623,6 +639,7 @@ if (err) goto out_uars; + uuari->ver = ver; uuari->num_low_latency_uuars = req.num_low_latency_uuars; uuari->uars = uars; uuari->num_uars = num_uars; --- linux-3.13.0.orig/drivers/infiniband/hw/mlx5/mlx5_ib.h +++ linux-3.13.0/drivers/infiniband/hw/mlx5/mlx5_ib.h @@ -195,6 +195,7 @@ struct mlx5_buf buf; struct ib_umem *umem; int cqe_size; + int nent; }; enum mlx5_ib_qp_flags { @@ -220,7 +221,7 @@ /* protect resize cq */ struct mutex resize_mutex; - struct mlx5_ib_cq_resize *resize_buf; + struct mlx5_ib_cq_buf *resize_buf; struct ib_umem *resize_umem; int cqe_size; }; @@ -264,7 +265,6 @@ enum ib_wc_status status; struct mlx5_ib_dev *dev; struct mlx5_create_mkey_mbox_out out; - unsigned long start; }; struct mlx5_ib_fast_reg_page_list { --- linux-3.13.0.orig/drivers/infiniband/hw/mlx5/mr.c +++ linux-3.13.0/drivers/infiniband/hw/mlx5/mr.c @@ -146,7 +146,6 @@ spin_lock_irq(&ent->lock); ent->pending++; spin_unlock_irq(&ent->lock); - mr->start = jiffies; err = mlx5_core_create_mkey(&dev->mdev, &mr->mmr, in, sizeof(*in), reg_mr_callback, mr, &mr->out); --- linux-3.13.0.orig/drivers/infiniband/hw/mlx5/qp.c +++ linux-3.13.0/drivers/infiniband/hw/mlx5/qp.c @@ -216,7 +216,9 @@ case IB_QPT_UC: size += sizeof(struct mlx5_wqe_ctrl_seg) + - sizeof(struct mlx5_wqe_raddr_seg); + sizeof(struct mlx5_wqe_raddr_seg) + + sizeof(struct mlx5_wqe_umr_ctrl_seg) + + sizeof(struct mlx5_mkey_seg); break; case IB_QPT_UD: @@ -340,14 +342,57 @@ return 1; } +static int first_med_uuar(void) +{ + return 1; +} + +static int next_uuar(int n) +{ + n++; + + while (((n % 4) & 2)) + n++; + + return n; +} + +static int num_med_uuar(struct mlx5_uuar_info *uuari) +{ + int n; + + n = uuari->num_uars * MLX5_NON_FP_BF_REGS_PER_PAGE - + uuari->num_low_latency_uuars - 1; + + return n >= 0 ? n : 0; +} + +static int max_uuari(struct mlx5_uuar_info *uuari) +{ + return uuari->num_uars * 4; +} + +static int first_hi_uuar(struct mlx5_uuar_info *uuari) +{ + int med; + int i; + int t; + + med = num_med_uuar(uuari); + for (t = 0, i = first_med_uuar();; i = next_uuar(i)) { + t++; + if (t == med) + return next_uuar(i); + } + + return 0; +} + static int alloc_high_class_uuar(struct mlx5_uuar_info *uuari) { - int nuuars = uuari->num_uars * MLX5_BF_REGS_PER_PAGE; - int start_uuar; int i; - start_uuar = nuuars - uuari->num_low_latency_uuars; - for (i = start_uuar; i < nuuars; i++) { + for (i = first_hi_uuar(uuari); i < max_uuari(uuari); i = next_uuar(i)) { if (!test_bit(i, uuari->bitmap)) { set_bit(i, uuari->bitmap); uuari->count[i]++; @@ -360,19 +405,10 @@ static int alloc_med_class_uuar(struct mlx5_uuar_info *uuari) { - int nuuars = uuari->num_uars * MLX5_BF_REGS_PER_PAGE; - int minidx = 1; - int uuarn; - int end; + int minidx = first_med_uuar(); int i; - end = nuuars - uuari->num_low_latency_uuars; - - for (i = 1; i < end; i++) { - uuarn = i & 3; - if (uuarn == 2 || uuarn == 3) - continue; - + for (i = first_med_uuar(); i < first_hi_uuar(uuari); i = next_uuar(i)) { if (uuari->count[i] < uuari->count[minidx]) minidx = i; } @@ -394,11 +430,17 @@ break; case MLX5_IB_LATENCY_CLASS_MEDIUM: - uuarn = alloc_med_class_uuar(uuari); + if (uuari->ver < 2) + uuarn = -ENOMEM; + else + uuarn = alloc_med_class_uuar(uuari); break; case MLX5_IB_LATENCY_CLASS_HIGH: - uuarn = alloc_high_class_uuar(uuari); + if (uuari->ver < 2) + uuarn = -ENOMEM; + else + uuarn = alloc_high_class_uuar(uuari); break; case MLX5_IB_LATENCY_CLASS_FAST_PATH: @@ -489,12 +531,12 @@ { struct mlx5_ib_ucontext *context; struct mlx5_ib_create_qp ucmd; - int page_shift; + int page_shift = 0; int uar_index; int npages; - u32 offset; + u32 offset = 0; int uuarn; - int ncont; + int ncont = 0; int err; err = ib_copy_from_udata(&ucmd, udata, sizeof(ucmd)); @@ -510,11 +552,16 @@ uuarn = alloc_uuar(&context->uuari, MLX5_IB_LATENCY_CLASS_HIGH); if (uuarn < 0) { mlx5_ib_dbg(dev, "failed to allocate low latency UUAR\n"); - mlx5_ib_dbg(dev, "reverting to high latency\n"); - uuarn = alloc_uuar(&context->uuari, MLX5_IB_LATENCY_CLASS_LOW); + mlx5_ib_dbg(dev, "reverting to medium latency\n"); + uuarn = alloc_uuar(&context->uuari, MLX5_IB_LATENCY_CLASS_MEDIUM); if (uuarn < 0) { - mlx5_ib_dbg(dev, "uuar allocation failed\n"); - return uuarn; + mlx5_ib_dbg(dev, "failed to allocate medium latency UUAR\n"); + mlx5_ib_dbg(dev, "reverting to high latency\n"); + uuarn = alloc_uuar(&context->uuari, MLX5_IB_LATENCY_CLASS_LOW); + if (uuarn < 0) { + mlx5_ib_warn(dev, "uuar allocation failed\n"); + return uuarn; + } } } @@ -525,23 +572,29 @@ if (err) goto err_uuar; - qp->umem = ib_umem_get(pd->uobject->context, ucmd.buf_addr, - qp->buf_size, 0, 0); - if (IS_ERR(qp->umem)) { - mlx5_ib_dbg(dev, "umem_get failed\n"); - err = PTR_ERR(qp->umem); - goto err_uuar; + if (ucmd.buf_addr && qp->buf_size) { + qp->umem = ib_umem_get(pd->uobject->context, ucmd.buf_addr, + qp->buf_size, 0, 0); + if (IS_ERR(qp->umem)) { + mlx5_ib_dbg(dev, "umem_get failed\n"); + err = PTR_ERR(qp->umem); + goto err_uuar; + } + } else { + qp->umem = NULL; } - mlx5_ib_cont_pages(qp->umem, ucmd.buf_addr, &npages, &page_shift, - &ncont, NULL); - err = mlx5_ib_get_buf_offset(ucmd.buf_addr, page_shift, &offset); - if (err) { - mlx5_ib_warn(dev, "bad offset\n"); - goto err_umem; + if (qp->umem) { + mlx5_ib_cont_pages(qp->umem, ucmd.buf_addr, &npages, &page_shift, + &ncont, NULL); + err = mlx5_ib_get_buf_offset(ucmd.buf_addr, page_shift, &offset); + if (err) { + mlx5_ib_warn(dev, "bad offset\n"); + goto err_umem; + } + mlx5_ib_dbg(dev, "addr 0x%llx, size %d, npages %d, page_shift %d, ncont %d, offset %d\n", + ucmd.buf_addr, qp->buf_size, npages, page_shift, ncont, offset); } - mlx5_ib_dbg(dev, "addr 0x%llx, size %d, npages %d, page_shift %d, ncont %d, offset %d\n", - ucmd.buf_addr, qp->buf_size, npages, page_shift, ncont, offset); *inlen = sizeof(**in) + sizeof(*(*in)->pas) * ncont; *in = mlx5_vzalloc(*inlen); @@ -549,7 +602,8 @@ err = -ENOMEM; goto err_umem; } - mlx5_ib_populate_pas(dev, qp->umem, page_shift, (*in)->pas, 0); + if (qp->umem) + mlx5_ib_populate_pas(dev, qp->umem, page_shift, (*in)->pas, 0); (*in)->ctx.log_pg_sz_remote_qpn = cpu_to_be32((page_shift - MLX5_ADAPTER_PAGE_SHIFT) << 24); (*in)->ctx.params2 = cpu_to_be32(offset << 6); @@ -580,7 +634,8 @@ mlx5_vfree(*in); err_umem: - ib_umem_release(qp->umem); + if (qp->umem) + ib_umem_release(qp->umem); err_uuar: free_uuar(&context->uuari, uuarn); @@ -593,7 +648,8 @@ context = to_mucontext(pd->uobject->context); mlx5_ib_db_unmap_user(context, &qp->db); - ib_umem_release(qp->umem); + if (qp->umem) + ib_umem_release(qp->umem); free_uuar(&context->uuari, qp->uuarn); } @@ -609,8 +665,8 @@ int err; uuari = &dev->mdev.priv.uuari; - if (init_attr->create_flags & IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK) - qp->flags |= MLX5_IB_QP_BLOCK_MULTICAST_LOOPBACK; + if (init_attr->create_flags) + return -EINVAL; if (init_attr->qp_type == MLX5_IB_QPT_REG_UMR) lc = MLX5_IB_LATENCY_CLASS_FAST_PATH; @@ -1616,7 +1672,8 @@ new_state = attr_mask & IB_QP_STATE ? attr->qp_state : cur_state; if (ibqp->qp_type != MLX5_IB_QPT_REG_UMR && - !ib_modify_qp_is_ok(cur_state, new_state, ibqp->qp_type, attr_mask)) + !ib_modify_qp_is_ok(cur_state, new_state, ibqp->qp_type, attr_mask, + IB_LINK_LAYER_UNSPECIFIED)) goto out; if ((attr_mask & IB_QP_PORT) && @@ -2212,6 +2269,10 @@ qp->db.db[MLX5_SND_DBR] = cpu_to_be32(qp->sq.cur_post); + /* Make sure doorbell record is visible to the HCA before + * we hit doorbell */ + wmb(); + if (bf->need_lock) spin_lock(&bf->lock); --- linux-3.13.0.orig/drivers/infiniband/hw/mlx5/srq.c +++ linux-3.13.0/drivers/infiniband/hw/mlx5/srq.c @@ -35,6 +35,7 @@ #include #include #include +#include #include "mlx5_ib.h" #include "user.h" @@ -78,16 +79,27 @@ { struct mlx5_ib_dev *dev = to_mdev(pd->device); struct mlx5_ib_create_srq ucmd; + size_t ucmdlen; int err; int npages; int page_shift; int ncont; u32 offset; - if (ib_copy_from_udata(&ucmd, udata, sizeof(ucmd))) { + ucmdlen = + (udata->inlen - sizeof(struct ib_uverbs_cmd_hdr) < + sizeof(ucmd)) ? (sizeof(ucmd) - + sizeof(ucmd.reserved)) : sizeof(ucmd); + + if (ib_copy_from_udata(&ucmd, udata, ucmdlen)) { mlx5_ib_dbg(dev, "failed copy udata\n"); return -EFAULT; } + + if (ucmdlen == sizeof(ucmd) && + ucmd.reserved != 0) + return -EINVAL; + srq->wq_sig = !!(ucmd.flags & MLX5_SRQ_FLAG_SIGNATURE); srq->umem = ib_umem_get(pd->uobject->context, ucmd.buf_addr, buf_size, --- linux-3.13.0.orig/drivers/infiniband/hw/mlx5/user.h +++ linux-3.13.0/drivers/infiniband/hw/mlx5/user.h @@ -62,6 +62,13 @@ __u32 num_low_latency_uuars; }; +struct mlx5_ib_alloc_ucontext_req_v2 { + __u32 total_num_uuars; + __u32 num_low_latency_uuars; + __u32 flags; + __u32 reserved; +}; + struct mlx5_ib_alloc_ucontext_resp { __u32 qp_tab_size; __u32 bf_reg_size; @@ -84,6 +91,7 @@ __u64 buf_addr; __u64 db_addr; __u32 cqe_size; + __u32 reserved; /* explicit padding (optional on i386) */ }; struct mlx5_ib_create_cq_resp { @@ -93,12 +101,16 @@ struct mlx5_ib_resize_cq { __u64 buf_addr; + __u16 cqe_size; + __u16 reserved0; + __u32 reserved1; }; struct mlx5_ib_create_srq { __u64 buf_addr; __u64 db_addr; __u32 flags; + __u32 reserved; /* explicit padding (optional on i386) */ }; struct mlx5_ib_create_srq_resp { --- linux-3.13.0.orig/drivers/infiniband/hw/mthca/mthca_provider.c +++ linux-3.13.0/drivers/infiniband/hw/mthca/mthca_provider.c @@ -695,6 +695,7 @@ if (context && ib_copy_to_udata(udata, &cq->cqn, sizeof (__u32))) { mthca_free_cq(to_mdev(ibdev), cq); + err = -EFAULT; goto err_free; } --- linux-3.13.0.orig/drivers/infiniband/hw/mthca/mthca_qp.c +++ linux-3.13.0/drivers/infiniband/hw/mthca/mthca_qp.c @@ -860,7 +860,8 @@ new_state = attr_mask & IB_QP_STATE ? attr->qp_state : cur_state; - if (!ib_modify_qp_is_ok(cur_state, new_state, ibqp->qp_type, attr_mask)) { + if (!ib_modify_qp_is_ok(cur_state, new_state, ibqp->qp_type, attr_mask, + IB_LINK_LAYER_UNSPECIFIED)) { mthca_dbg(dev, "Bad QP transition (transport %d) " "%d->%d with attr 0x%08x\n", qp->transport, cur_state, new_state, --- linux-3.13.0.orig/drivers/infiniband/hw/nes/nes.c +++ linux-3.13.0/drivers/infiniband/hw/nes/nes.c @@ -675,8 +675,11 @@ INIT_DELAYED_WORK(&nesdev->work, nes_recheck_link_status); /* Initialize network devices */ - if ((netdev = nes_netdev_init(nesdev, mmio_regs)) == NULL) + netdev = nes_netdev_init(nesdev, mmio_regs); + if (netdev == NULL) { + ret = -ENOMEM; goto bail7; + } /* Register network device */ ret = register_netdev(netdev); --- linux-3.13.0.orig/drivers/infiniband/hw/nes/nes_cm.c +++ linux-3.13.0/drivers/infiniband/hw/nes/nes_cm.c @@ -1354,8 +1354,7 @@ neigh->ha, ntohl(rt->rt_gateway)); if (arpindex >= 0) { - if (!memcmp(nesadapter->arp_table[arpindex].mac_addr, - neigh->ha, ETH_ALEN)) { + if (ether_addr_equal(nesadapter->arp_table[arpindex].mac_addr, neigh->ha)) { /* Mac address same as in nes_arp_table */ goto out; } --- linux-3.13.0.orig/drivers/infiniband/hw/nes/nes_verbs.c +++ linux-3.13.0/drivers/infiniband/hw/nes/nes_verbs.c @@ -1186,7 +1186,7 @@ nes_free_resource(nesadapter, nesadapter->allocated_qps, qp_num); kfree(nesqp->allocated_buffer); nes_debug(NES_DBG_QP, "ib_copy_from_udata() Failed \n"); - return NULL; + return ERR_PTR(-EFAULT); } if (req.user_wqe_buffers) { virt_wqs = 1; --- linux-3.13.0.orig/drivers/infiniband/hw/ocrdma/Kconfig +++ linux-3.13.0/drivers/infiniband/hw/ocrdma/Kconfig @@ -1,6 +1,6 @@ config INFINIBAND_OCRDMA tristate "Emulex One Connect HCA support" - depends on ETHERNET && NETDEVICES && PCI && (IPV6 || IPV6=n) + depends on ETHERNET && NETDEVICES && PCI && INET && (IPV6 || IPV6=n) select NET_VENDOR_EMULEX select BE2NET ---help--- --- linux-3.13.0.orig/drivers/infiniband/hw/ocrdma/ocrdma.h +++ linux-3.13.0/drivers/infiniband/hw/ocrdma/ocrdma.h @@ -423,5 +423,17 @@ OCRDMA_CQE_WRITE_IMM) ? 1 : 0; } +static inline int ocrdma_resolve_dmac(struct ocrdma_dev *dev, + struct ib_ah_attr *ah_attr, u8 *mac_addr) +{ + struct in6_addr in6; + + memcpy(&in6, ah_attr->grh.dgid.raw, sizeof(in6)); + if (rdma_is_multicast_addr(&in6)) + rdma_get_mcast_mac(&in6, mac_addr); + else + memcpy(mac_addr, ah_attr->dmac, ETH_ALEN); + return 0; +} #endif --- linux-3.13.0.orig/drivers/infiniband/hw/ocrdma/ocrdma_ah.c +++ linux-3.13.0/drivers/infiniband/hw/ocrdma/ocrdma_ah.c @@ -49,7 +49,7 @@ ah->sgid_index = attr->grh.sgid_index; - vlan_tag = rdma_get_vlan_id(&attr->grh.dgid); + vlan_tag = attr->vlan_id; if (!vlan_tag || (vlan_tag > 0xFFF)) vlan_tag = dev->pvid; if (vlan_tag && (vlan_tag < 0x1000)) { @@ -64,7 +64,8 @@ eth_sz = sizeof(struct ocrdma_eth_basic); } memcpy(ð.smac[0], &dev->nic_info.mac_addr[0], ETH_ALEN); - status = ocrdma_resolve_dgid(dev, &attr->grh.dgid, ð.dmac[0]); + memcpy(ð.dmac[0], attr->dmac, ETH_ALEN); + status = ocrdma_resolve_dmac(dev, attr, ð.dmac[0]); if (status) return status; status = ocrdma_query_gid(&dev->ibdev, 1, attr->grh.sgid_index, @@ -84,6 +85,7 @@ memcpy((u8 *)ah->av + eth_sz, &grh, sizeof(struct ocrdma_grh)); if (vlan_enabled) ah->av->valid |= OCRDMA_AV_VLAN_VALID; + ah->av->valid = cpu_to_le32(ah->av->valid); return status; } --- linux-3.13.0.orig/drivers/infiniband/hw/ocrdma/ocrdma_hw.c +++ linux-3.13.0/drivers/infiniband/hw/ocrdma/ocrdma_hw.c @@ -2076,23 +2076,6 @@ return status; } -int ocrdma_resolve_dgid(struct ocrdma_dev *dev, union ib_gid *dgid, - u8 *mac_addr) -{ - struct in6_addr in6; - - memcpy(&in6, dgid, sizeof in6); - if (rdma_is_multicast_addr(&in6)) { - rdma_get_mcast_mac(&in6, mac_addr); - } else if (rdma_link_local_addr(&in6)) { - rdma_get_ll_mac(&in6, mac_addr); - } else { - pr_err("%s() fail to resolve mac_addr.\n", __func__); - return -EINVAL; - } - return 0; -} - static int ocrdma_set_av_params(struct ocrdma_qp *qp, struct ocrdma_modify_qp *cmd, struct ib_qp_attr *attrs) @@ -2126,14 +2109,14 @@ qp->sgid_idx = ah_attr->grh.sgid_index; memcpy(&cmd->params.sgid[0], &sgid.raw[0], sizeof(cmd->params.sgid)); - ocrdma_resolve_dgid(qp->dev, &ah_attr->grh.dgid, &mac_addr[0]); + ocrdma_resolve_dmac(qp->dev, ah_attr, &mac_addr[0]); cmd->params.dmac_b0_to_b3 = mac_addr[0] | (mac_addr[1] << 8) | (mac_addr[2] << 16) | (mac_addr[3] << 24); /* convert them to LE format. */ ocrdma_cpu_to_le32(&cmd->params.dgid[0], sizeof(cmd->params.dgid)); ocrdma_cpu_to_le32(&cmd->params.sgid[0], sizeof(cmd->params.sgid)); cmd->params.vlan_dmac_b4_to_b5 = mac_addr[4] | (mac_addr[5] << 8); - vlan_id = rdma_get_vlan_id(&sgid); + vlan_id = ah_attr->vlan_id; if (vlan_id && (vlan_id < 0x1000)) { cmd->params.vlan_dmac_b4_to_b5 |= vlan_id << OCRDMA_QP_PARAMS_VLAN_SHIFT; --- linux-3.13.0.orig/drivers/infiniband/hw/ocrdma/ocrdma_hw.h +++ linux-3.13.0/drivers/infiniband/hw/ocrdma/ocrdma_hw.h @@ -94,7 +94,6 @@ int ocrdma_mbx_get_link_speed(struct ocrdma_dev *dev, u8 *lnk_speed); int ocrdma_query_config(struct ocrdma_dev *, struct ocrdma_mbx_query_config *config); -int ocrdma_resolve_dgid(struct ocrdma_dev *, union ib_gid *dgid, u8 *mac_addr); int ocrdma_mbx_alloc_pd(struct ocrdma_dev *, struct ocrdma_pd *); int ocrdma_mbx_dealloc_pd(struct ocrdma_dev *, struct ocrdma_pd *); --- linux-3.13.0.orig/drivers/infiniband/hw/ocrdma/ocrdma_main.c +++ linux-3.13.0/drivers/infiniband/hw/ocrdma/ocrdma_main.c @@ -67,46 +67,24 @@ guid[7] = mac_addr[5]; } -static void ocrdma_build_sgid_mac(union ib_gid *sgid, unsigned char *mac_addr, - bool is_vlan, u16 vlan_id) -{ - sgid->global.subnet_prefix = cpu_to_be64(0xfe80000000000000LL); - sgid->raw[8] = mac_addr[0] ^ 2; - sgid->raw[9] = mac_addr[1]; - sgid->raw[10] = mac_addr[2]; - if (is_vlan) { - sgid->raw[11] = vlan_id >> 8; - sgid->raw[12] = vlan_id & 0xff; - } else { - sgid->raw[11] = 0xff; - sgid->raw[12] = 0xfe; - } - sgid->raw[13] = mac_addr[3]; - sgid->raw[14] = mac_addr[4]; - sgid->raw[15] = mac_addr[5]; -} - -static bool ocrdma_add_sgid(struct ocrdma_dev *dev, unsigned char *mac_addr, - bool is_vlan, u16 vlan_id) +static bool ocrdma_add_sgid(struct ocrdma_dev *dev, union ib_gid *new_sgid) { int i; - union ib_gid new_sgid; unsigned long flags; memset(&ocrdma_zero_sgid, 0, sizeof(union ib_gid)); - ocrdma_build_sgid_mac(&new_sgid, mac_addr, is_vlan, vlan_id); spin_lock_irqsave(&dev->sgid_lock, flags); for (i = 0; i < OCRDMA_MAX_SGID; i++) { if (!memcmp(&dev->sgid_tbl[i], &ocrdma_zero_sgid, sizeof(union ib_gid))) { /* found free entry */ - memcpy(&dev->sgid_tbl[i], &new_sgid, + memcpy(&dev->sgid_tbl[i], new_sgid, sizeof(union ib_gid)); spin_unlock_irqrestore(&dev->sgid_lock, flags); return true; - } else if (!memcmp(&dev->sgid_tbl[i], &new_sgid, + } else if (!memcmp(&dev->sgid_tbl[i], new_sgid, sizeof(union ib_gid))) { /* entry already present, no addition is required. */ spin_unlock_irqrestore(&dev->sgid_lock, flags); @@ -117,20 +95,17 @@ return false; } -static bool ocrdma_del_sgid(struct ocrdma_dev *dev, unsigned char *mac_addr, - bool is_vlan, u16 vlan_id) +static bool ocrdma_del_sgid(struct ocrdma_dev *dev, union ib_gid *sgid) { int found = false; int i; - union ib_gid sgid; unsigned long flags; - ocrdma_build_sgid_mac(&sgid, mac_addr, is_vlan, vlan_id); spin_lock_irqsave(&dev->sgid_lock, flags); /* first is default sgid, which cannot be deleted. */ for (i = 1; i < OCRDMA_MAX_SGID; i++) { - if (!memcmp(&dev->sgid_tbl[i], &sgid, sizeof(union ib_gid))) { + if (!memcmp(&dev->sgid_tbl[i], sgid, sizeof(union ib_gid))) { /* found matching entry */ memset(&dev->sgid_tbl[i], 0, sizeof(union ib_gid)); found = true; @@ -141,75 +116,18 @@ return found; } -static void ocrdma_add_default_sgid(struct ocrdma_dev *dev) -{ - /* GID Index 0 - Invariant manufacturer-assigned EUI-64 */ - union ib_gid *sgid = &dev->sgid_tbl[0]; - - sgid->global.subnet_prefix = cpu_to_be64(0xfe80000000000000LL); - ocrdma_get_guid(dev, &sgid->raw[8]); -} - -#if IS_ENABLED(CONFIG_VLAN_8021Q) -static void ocrdma_add_vlan_sgids(struct ocrdma_dev *dev) -{ - struct net_device *netdev, *tmp; - u16 vlan_id; - bool is_vlan; - - netdev = dev->nic_info.netdev; - - rcu_read_lock(); - for_each_netdev_rcu(&init_net, tmp) { - if (netdev == tmp || vlan_dev_real_dev(tmp) == netdev) { - if (!netif_running(tmp) || !netif_oper_up(tmp)) - continue; - if (netdev != tmp) { - vlan_id = vlan_dev_vlan_id(tmp); - is_vlan = true; - } else { - is_vlan = false; - vlan_id = 0; - tmp = netdev; - } - ocrdma_add_sgid(dev, tmp->dev_addr, is_vlan, vlan_id); - } - } - rcu_read_unlock(); -} -#else -static void ocrdma_add_vlan_sgids(struct ocrdma_dev *dev) -{ - -} -#endif /* VLAN */ - -static int ocrdma_build_sgid_tbl(struct ocrdma_dev *dev) -{ - ocrdma_add_default_sgid(dev); - ocrdma_add_vlan_sgids(dev); - return 0; -} - -#if IS_ENABLED(CONFIG_IPV6) - -static int ocrdma_inet6addr_event(struct notifier_block *notifier, - unsigned long event, void *ptr) +static int ocrdma_addr_event(unsigned long event, struct net_device *netdev, + union ib_gid *gid) { - struct inet6_ifaddr *ifa = (struct inet6_ifaddr *)ptr; - struct net_device *netdev = ifa->idev->dev; struct ib_event gid_event; struct ocrdma_dev *dev; bool found = false; bool updated = false; bool is_vlan = false; - u16 vid = 0; is_vlan = netdev->priv_flags & IFF_802_1Q_VLAN; - if (is_vlan) { - vid = vlan_dev_vlan_id(netdev); - netdev = vlan_dev_real_dev(netdev); - } + if (is_vlan) + netdev = rdma_vlan_dev_real_dev(netdev); rcu_read_lock(); list_for_each_entry_rcu(dev, &ocrdma_dev_list, entry) { @@ -222,16 +140,14 @@ if (!found) return NOTIFY_DONE; - if (!rdma_link_local_addr((struct in6_addr *)&ifa->addr)) - return NOTIFY_DONE; mutex_lock(&dev->dev_lock); switch (event) { case NETDEV_UP: - updated = ocrdma_add_sgid(dev, netdev->dev_addr, is_vlan, vid); + updated = ocrdma_add_sgid(dev, gid); break; case NETDEV_DOWN: - updated = ocrdma_del_sgid(dev, netdev->dev_addr, is_vlan, vid); + updated = ocrdma_del_sgid(dev, gid); break; default: break; @@ -247,6 +163,32 @@ return NOTIFY_OK; } +static int ocrdma_inetaddr_event(struct notifier_block *notifier, + unsigned long event, void *ptr) +{ + struct in_ifaddr *ifa = ptr; + union ib_gid gid; + struct net_device *netdev = ifa->ifa_dev->dev; + + ipv6_addr_set_v4mapped(ifa->ifa_address, (struct in6_addr *)&gid); + return ocrdma_addr_event(event, netdev, &gid); +} + +static struct notifier_block ocrdma_inetaddr_notifier = { + .notifier_call = ocrdma_inetaddr_event +}; + +#if IS_ENABLED(CONFIG_IPV6) + +static int ocrdma_inet6addr_event(struct notifier_block *notifier, + unsigned long event, void *ptr) +{ + struct inet6_ifaddr *ifa = (struct inet6_ifaddr *)ptr; + union ib_gid *gid = (union ib_gid *)&ifa->addr; + struct net_device *netdev = ifa->idev->dev; + return ocrdma_addr_event(event, netdev, gid); +} + static struct notifier_block ocrdma_inet6addr_notifier = { .notifier_call = ocrdma_inet6addr_event }; @@ -423,10 +365,6 @@ if (status) goto alloc_err; - status = ocrdma_build_sgid_tbl(dev); - if (status) - goto alloc_err; - status = ocrdma_register_device(dev); if (status) goto alloc_err; @@ -553,6 +491,10 @@ { int status; + status = register_inetaddr_notifier(&ocrdma_inetaddr_notifier); + if (status) + return status; + #if IS_ENABLED(CONFIG_IPV6) status = register_inet6addr_notifier(&ocrdma_inet6addr_notifier); if (status) --- linux-3.13.0.orig/drivers/infiniband/hw/ocrdma/ocrdma_sli.h +++ linux-3.13.0/drivers/infiniband/hw/ocrdma/ocrdma_sli.h @@ -31,7 +31,7 @@ #define Bit(_b) (1 << (_b)) #define OCRDMA_GEN1_FAMILY 0xB -#define OCRDMA_GEN2_FAMILY 0x2 +#define OCRDMA_GEN2_FAMILY 0x0F #define OCRDMA_SUBSYS_ROCE 10 enum { @@ -1694,7 +1694,7 @@ u16 rsvd; } __packed; -#define OCRDMA_AV_VALID Bit(0) +#define OCRDMA_AV_VALID Bit(7) #define OCRDMA_AV_VLAN_VALID Bit(1) struct ocrdma_av { --- linux-3.13.0.orig/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c +++ linux-3.13.0/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c @@ -176,7 +176,7 @@ props->port_cap_flags = IB_PORT_CM_SUP | IB_PORT_REINIT_SUP | - IB_PORT_DEVICE_MGMT_SUP | IB_PORT_VENDOR_CLASS_SUP; + IB_PORT_DEVICE_MGMT_SUP | IB_PORT_VENDOR_CLASS_SUP | IB_PORT_IP_BASED_GIDS; props->gid_tbl_len = OCRDMA_MAX_SGID; props->pkey_tbl_len = 1; props->bad_pkey_cntr = 0; @@ -1326,7 +1326,8 @@ new_qps = old_qps; spin_unlock_irqrestore(&qp->q_lock, flags); - if (!ib_modify_qp_is_ok(old_qps, new_qps, ibqp->qp_type, attr_mask)) { + if (!ib_modify_qp_is_ok(old_qps, new_qps, ibqp->qp_type, attr_mask, + IB_LINK_LAYER_ETHERNET)) { pr_err("%s(%d) invalid attribute mask=0x%x specified for\n" "qpn=0x%x of type=0x%x old_qps=0x%x, new_qps=0x%x\n", __func__, dev->id, attr_mask, qp->id, ibqp->qp_type, @@ -1415,7 +1416,7 @@ OCRDMA_QP_PARAMS_HOP_LMT_MASK) >> OCRDMA_QP_PARAMS_HOP_LMT_SHIFT; qp_attr->ah_attr.grh.traffic_class = (params.tclass_sq_psn & - OCRDMA_QP_PARAMS_SQ_PSN_MASK) >> + OCRDMA_QP_PARAMS_TCLASS_MASK) >> OCRDMA_QP_PARAMS_TCLASS_SHIFT; qp_attr->ah_attr.ah_flags = IB_AH_GRH; --- linux-3.13.0.orig/drivers/infiniband/hw/qib/qib_debugfs.c +++ linux-3.13.0/drivers/infiniband/hw/qib/qib_debugfs.c @@ -193,6 +193,7 @@ struct qib_qp_iter *iter; loff_t n = *pos; + rcu_read_lock(); iter = qib_qp_iter_init(s->private); if (!iter) return NULL; @@ -224,7 +225,7 @@ static void _qp_stats_seq_stop(struct seq_file *s, void *iter_ptr) { - /* nothing for now */ + rcu_read_unlock(); } static int _qp_stats_seq_show(struct seq_file *s, void *iter_ptr) --- linux-3.13.0.orig/drivers/infiniband/hw/qib/qib_file_ops.c +++ linux-3.13.0/drivers/infiniband/hw/qib/qib_file_ops.c @@ -1578,7 +1578,7 @@ struct qib_ctxtdata *rcd = fd->rcd; struct qib_devdata *dd = rcd->dd; - if (dd->flags & QIB_HAS_SEND_DMA) + if (dd->flags & QIB_HAS_SEND_DMA) { fd->pq = qib_user_sdma_queue_create(&dd->pcidev->dev, dd->unit, @@ -1586,6 +1586,7 @@ fd->subctxt); if (!fd->pq) return -ENOMEM; + } return 0; } --- linux-3.13.0.orig/drivers/infiniband/hw/qib/qib_iba7322.c +++ linux-3.13.0/drivers/infiniband/hw/qib/qib_iba7322.c @@ -2395,6 +2395,11 @@ qib_write_kreg_port(ppd, krp_ibcctrl_a, ppd->cpspec->ibcctrl_a); qib_write_kreg(dd, kr_scratch, 0ULL); + /* ensure previous Tx parameters are not still forced */ + qib_write_kreg_port(ppd, krp_tx_deemph_override, + SYM_MASK(IBSD_TX_DEEMPHASIS_OVERRIDE_0, + reset_tx_deemphasis_override)); + if (qib_compat_ddr_negotiate) { ppd->cpspec->ibdeltainprog = 1; ppd->cpspec->ibsymsnap = read_7322_creg32_port(ppd, --- linux-3.13.0.orig/drivers/infiniband/hw/qib/qib_init.c +++ linux-3.13.0/drivers/infiniband/hw/qib/qib_init.c @@ -1097,14 +1097,10 @@ int ret; dd = (struct qib_devdata *) ib_alloc_device(sizeof(*dd) + extra); - if (!dd) { - dd = ERR_PTR(-ENOMEM); - goto bail; - } + if (!dd) + return ERR_PTR(-ENOMEM); -#ifdef CONFIG_DEBUG_FS - qib_dbg_ibdev_init(&dd->verbs_dev); -#endif + INIT_LIST_HEAD(&dd->list); idr_preload(GFP_KERNEL); spin_lock_irqsave(&qib_devs_lock, flags); @@ -1121,11 +1117,6 @@ if (ret < 0) { qib_early_err(&pdev->dev, "Could not allocate unit ID: error %d\n", -ret); -#ifdef CONFIG_DEBUG_FS - qib_dbg_ibdev_exit(&dd->verbs_dev); -#endif - ib_dealloc_device(&dd->verbs_dev.ibdev); - dd = ERR_PTR(ret); goto bail; } @@ -1139,9 +1130,15 @@ qib_early_err(&pdev->dev, "Could not alloc cpulist info, cpu affinity might be wrong\n"); } - -bail: +#ifdef CONFIG_DEBUG_FS + qib_dbg_ibdev_init(&dd->verbs_dev); +#endif return dd; +bail: + if (!list_empty(&dd->list)) + list_del_init(&dd->list); + ib_dealloc_device(&dd->verbs_dev.ibdev); + return ERR_PTR(ret);; } /* --- linux-3.13.0.orig/drivers/infiniband/hw/qib/qib_mad.c +++ linux-3.13.0/drivers/infiniband/hw/qib/qib_mad.c @@ -1028,7 +1028,7 @@ event.event = IB_EVENT_PKEY_CHANGE; event.device = &dd->verbs_dev.ibdev; - event.element.port_num = 1; + event.element.port_num = port; ib_dispatch_event(&event); } return 0; --- linux-3.13.0.orig/drivers/infiniband/hw/qib/qib_qp.c +++ linux-3.13.0/drivers/infiniband/hw/qib/qib_qp.c @@ -585,7 +585,7 @@ new_state = attr_mask & IB_QP_STATE ? attr->qp_state : cur_state; if (!ib_modify_qp_is_ok(cur_state, new_state, ibqp->qp_type, - attr_mask)) + attr_mask, IB_LINK_LAYER_UNSPECIFIED)) goto inval; if (attr_mask & IB_QP_AV) { @@ -1324,7 +1324,6 @@ struct qib_qp *pqp = iter->qp; struct qib_qp *qp; - rcu_read_lock(); for (; n < dev->qp_table_size; n++) { if (pqp) qp = rcu_dereference(pqp->next); @@ -1332,18 +1331,11 @@ qp = rcu_dereference(dev->qp_table[n]); pqp = qp; if (qp) { - if (iter->qp) - atomic_dec(&iter->qp->refcount); - atomic_inc(&qp->refcount); - rcu_read_unlock(); iter->qp = qp; iter->n = n; return 0; } } - rcu_read_unlock(); - if (iter->qp) - atomic_dec(&iter->qp->refcount); return ret; } --- linux-3.13.0.orig/drivers/infiniband/hw/qib/qib_ud.c +++ linux-3.13.0/drivers/infiniband/hw/qib/qib_ud.c @@ -57,13 +57,20 @@ struct qib_sge *sge; struct ib_wc wc; u32 length; + enum ib_qp_type sqptype, dqptype; qp = qib_lookup_qpn(ibp, swqe->wr.wr.ud.remote_qpn); if (!qp) { ibp->n_pkt_drops++; return; } - if (qp->ibqp.qp_type != sqp->ibqp.qp_type || + + sqptype = sqp->ibqp.qp_type == IB_QPT_GSI ? + IB_QPT_UD : sqp->ibqp.qp_type; + dqptype = qp->ibqp.qp_type == IB_QPT_GSI ? + IB_QPT_UD : qp->ibqp.qp_type; + + if (dqptype != sqptype || !(ib_qib_state_ops[qp->state] & QIB_PROCESS_RECV_OK)) { ibp->n_pkt_drops++; goto drop; --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/Kconfig +++ linux-3.13.0/drivers/infiniband/hw/usnic/Kconfig @@ -0,0 +1,10 @@ +config INFINIBAND_USNIC + tristate "Verbs support for Cisco VIC" + depends on NETDEVICES && ETHERNET && INET && PCI && INTEL_IOMMU + select ENIC + select NET_VENDOR_CISCO + select PCI_IOV + select INFINIBAND_USER_ACCESS + ---help--- + This is a low-level driver for Cisco's Virtual Interface + Cards (VICs), including the VIC 1240 and 1280 cards. --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/Makefile +++ linux-3.13.0/drivers/infiniband/hw/usnic/Makefile @@ -0,0 +1,15 @@ +ccflags-y := -Idrivers/net/ethernet/cisco/enic + +obj-$(CONFIG_INFINIBAND_USNIC)+= usnic_verbs.o + +usnic_verbs-y=\ +usnic_fwd.o \ +usnic_transport.o \ +usnic_uiom.o \ +usnic_uiom_interval_tree.o \ +usnic_vnic.o \ +usnic_ib_main.o \ +usnic_ib_qp_grp.o \ +usnic_ib_sysfs.o \ +usnic_ib_verbs.o \ +usnic_debugfs.o \ --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic.h +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef USNIC_H_ +#define USNIC_H_ + +#define DRV_NAME "usnic_verbs" + +#define PCI_DEVICE_ID_CISCO_VIC_USPACE_NIC 0x00cf /* User space NIC */ + +#define DRV_VERSION "1.0.3" +#define DRV_RELDATE "December 19, 2013" + +#endif /* USNIC_H_ */ --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_abi.h +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_abi.h @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + + +#ifndef USNIC_ABI_H +#define USNIC_ABI_H + +/* ABI between userspace and kernel */ +#define USNIC_UVERBS_ABI_VERSION 4 + +#define USNIC_QP_GRP_MAX_WQS 8 +#define USNIC_QP_GRP_MAX_RQS 8 +#define USNIC_QP_GRP_MAX_CQS 16 + +enum usnic_transport_type { + USNIC_TRANSPORT_UNKNOWN = 0, + USNIC_TRANSPORT_ROCE_CUSTOM = 1, + USNIC_TRANSPORT_IPV4_UDP = 2, + USNIC_TRANSPORT_MAX = 3, +}; + +struct usnic_transport_spec { + enum usnic_transport_type trans_type; + union { + struct { + uint16_t port_num; + } usnic_roce; + struct { + uint32_t sock_fd; + } udp; + }; +}; + +struct usnic_ib_create_qp_cmd { + struct usnic_transport_spec spec; +}; + +/*TODO: Future - usnic_modify_qp needs to pass in generic filters */ +struct usnic_ib_create_qp_resp { + u32 vfid; + u32 qp_grp_id; + u64 bar_bus_addr; + u32 bar_len; +/* + * WQ, RQ, CQ are explicity specified bc exposing a generic resources inteface + * expands the scope of ABI to many files. + */ + u32 wq_cnt; + u32 rq_cnt; + u32 cq_cnt; + u32 wq_idx[USNIC_QP_GRP_MAX_WQS]; + u32 rq_idx[USNIC_QP_GRP_MAX_RQS]; + u32 cq_idx[USNIC_QP_GRP_MAX_CQS]; + u32 transport; + u32 reserved[9]; +}; + +#endif /* USNIC_ABI_H */ --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_common_pkt_hdr.h +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_common_pkt_hdr.h @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef USNIC_CMN_PKT_HDR_H +#define USNIC_CMN_PKT_HDR_H + +#define USNIC_ROCE_ETHERTYPE (0x8915) +#define USNIC_ROCE_GRH_VER (8) +#define USNIC_PROTO_VER (1) +#define USNIC_ROCE_GRH_VER_SHIFT (4) + +#endif /* USNIC_COMMON_PKT_HDR_H */ --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_common_util.h +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_common_util.h @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef USNIC_CMN_UTIL_H +#define USNIC_CMN_UTIL_H + +static inline void +usnic_mac_to_gid(const char *const mac, char *raw_gid) +{ + raw_gid[0] = 0xfe; + raw_gid[1] = 0x80; + memset(&raw_gid[2], 0, 6); + raw_gid[8] = mac[0]^2; + raw_gid[9] = mac[1]; + raw_gid[10] = mac[2]; + raw_gid[11] = 0xff; + raw_gid[12] = 0xfe; + raw_gid[13] = mac[3]; + raw_gid[14] = mac[4]; + raw_gid[15] = mac[5]; +} + +static inline void +usnic_mac_ip_to_gid(const char *const mac, const __be32 inaddr, char *raw_gid) +{ + raw_gid[0] = 0xfe; + raw_gid[1] = 0x80; + memset(&raw_gid[2], 0, 2); + memcpy(&raw_gid[4], &inaddr, 4); + raw_gid[8] = mac[0]^2; + raw_gid[9] = mac[1]; + raw_gid[10] = mac[2]; + raw_gid[11] = 0xff; + raw_gid[12] = 0xfe; + raw_gid[13] = mac[3]; + raw_gid[14] = mac[4]; + raw_gid[15] = mac[5]; +} + +static inline void +usnic_write_gid_if_id_from_mac(char *mac, char *raw_gid) +{ + raw_gid[8] = mac[0]^2; + raw_gid[9] = mac[1]; + raw_gid[10] = mac[2]; + raw_gid[11] = 0xff; + raw_gid[12] = 0xfe; + raw_gid[13] = mac[3]; + raw_gid[14] = mac[4]; + raw_gid[15] = mac[5]; +} + +#endif /* USNIC_COMMON_UTIL_H */ --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_debugfs.c +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_debugfs.c @@ -0,0 +1,154 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#include +#include + +#include "usnic.h" +#include "usnic_log.h" +#include "usnic_debugfs.h" +#include "usnic_ib_qp_grp.h" +#include "usnic_transport.h" + +static struct dentry *debugfs_root; +static struct dentry *flows_dentry; + +static ssize_t usnic_debugfs_buildinfo_read(struct file *f, char __user *data, + size_t count, loff_t *ppos) +{ + char buf[500]; + int res; + + if (*ppos > 0) + return 0; + + res = scnprintf(buf, sizeof(buf), + "version: %s\n" + "build date: %s\n", + DRV_VERSION, DRV_RELDATE); + + return simple_read_from_buffer(data, count, ppos, buf, res); +} + +static const struct file_operations usnic_debugfs_buildinfo_ops = { + .owner = THIS_MODULE, + .open = simple_open, + .read = usnic_debugfs_buildinfo_read +}; + +static ssize_t flowinfo_read(struct file *f, char __user *data, + size_t count, loff_t *ppos) +{ + struct usnic_ib_qp_grp_flow *qp_flow; + int n; + int left; + char *ptr; + char buf[512]; + + qp_flow = f->private_data; + ptr = buf; + left = count; + + if (*ppos > 0) + return 0; + + spin_lock(&qp_flow->qp_grp->lock); + n = scnprintf(ptr, left, + "QP Grp ID: %d Transport: %s ", + qp_flow->qp_grp->grp_id, + usnic_transport_to_str(qp_flow->trans_type)); + UPDATE_PTR_LEFT(n, ptr, left); + if (qp_flow->trans_type == USNIC_TRANSPORT_ROCE_CUSTOM) { + n = scnprintf(ptr, left, "Port_Num:%hu\n", + qp_flow->usnic_roce.port_num); + UPDATE_PTR_LEFT(n, ptr, left); + } else if (qp_flow->trans_type == USNIC_TRANSPORT_IPV4_UDP) { + n = usnic_transport_sock_to_str(ptr, left, + qp_flow->udp.sock); + UPDATE_PTR_LEFT(n, ptr, left); + n = scnprintf(ptr, left, "\n"); + UPDATE_PTR_LEFT(n, ptr, left); + } + spin_unlock(&qp_flow->qp_grp->lock); + + return simple_read_from_buffer(data, count, ppos, buf, ptr - buf); +} + +static const struct file_operations flowinfo_ops = { + .owner = THIS_MODULE, + .open = simple_open, + .read = flowinfo_read, +}; + +void usnic_debugfs_init(void) +{ + debugfs_root = debugfs_create_dir(DRV_NAME, NULL); + if (IS_ERR(debugfs_root)) { + usnic_err("Failed to create debugfs root dir, check if debugfs is enabled in kernel configuration\n"); + goto out_clear_root; + } + + flows_dentry = debugfs_create_dir("flows", debugfs_root); + if (IS_ERR_OR_NULL(flows_dentry)) { + usnic_err("Failed to create debugfs flow dir with err %ld\n", + PTR_ERR(flows_dentry)); + goto out_free_root; + } + + debugfs_create_file("build-info", S_IRUGO, debugfs_root, + NULL, &usnic_debugfs_buildinfo_ops); + return; + +out_free_root: + debugfs_remove_recursive(debugfs_root); +out_clear_root: + debugfs_root = NULL; +} + +void usnic_debugfs_exit(void) +{ + if (!debugfs_root) + return; + + debugfs_remove_recursive(debugfs_root); + debugfs_root = NULL; +} + +void usnic_debugfs_flow_add(struct usnic_ib_qp_grp_flow *qp_flow) +{ + if (IS_ERR_OR_NULL(flows_dentry)) + return; + + scnprintf(qp_flow->dentry_name, sizeof(qp_flow->dentry_name), + "%u", qp_flow->flow->flow_id); + qp_flow->dbgfs_dentry = debugfs_create_file(qp_flow->dentry_name, + S_IRUGO, + flows_dentry, + qp_flow, + &flowinfo_ops); + if (IS_ERR_OR_NULL(qp_flow->dbgfs_dentry)) { + usnic_err("Failed to create dbg fs entry for flow %u\n", + qp_flow->flow->flow_id); + } +} + +void usnic_debugfs_flow_remove(struct usnic_ib_qp_grp_flow *qp_flow) +{ + if (!IS_ERR_OR_NULL(qp_flow->dbgfs_dentry)) + debugfs_remove(qp_flow->dbgfs_dentry); +} --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_debugfs.h +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_debugfs.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ +#ifndef USNIC_DEBUGFS_H_ +#define USNIC_DEBUGFS_H_ + +#include "usnic_ib_qp_grp.h" + +void usnic_debugfs_init(void); + +void usnic_debugfs_exit(void); +void usnic_debugfs_flow_add(struct usnic_ib_qp_grp_flow *qp_flow); +void usnic_debugfs_flow_remove(struct usnic_ib_qp_grp_flow *qp_flow); + +#endif /*!USNIC_DEBUGFS_H_ */ --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_fwd.c +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_fwd.c @@ -0,0 +1,350 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ +#include +#include + +#include "enic_api.h" +#include "usnic_common_pkt_hdr.h" +#include "usnic_fwd.h" +#include "usnic_log.h" + +static int usnic_fwd_devcmd_locked(struct usnic_fwd_dev *ufdev, int vnic_idx, + enum vnic_devcmd_cmd cmd, u64 *a0, + u64 *a1) +{ + int status; + struct net_device *netdev = ufdev->netdev; + + lockdep_assert_held(&ufdev->lock); + + status = enic_api_devcmd_proxy_by_index(netdev, + vnic_idx, + cmd, + a0, a1, + 1000); + if (status) { + if (status == ERR_EINVAL && cmd == CMD_DEL_FILTER) { + usnic_dbg("Dev %s vnic idx %u cmd %u already deleted", + ufdev->name, vnic_idx, cmd); + } else { + usnic_err("Dev %s vnic idx %u cmd %u failed with status %d\n", + ufdev->name, vnic_idx, cmd, + status); + } + } else { + usnic_dbg("Dev %s vnic idx %u cmd %u success", + ufdev->name, vnic_idx, cmd); + } + + return status; +} + +static int usnic_fwd_devcmd(struct usnic_fwd_dev *ufdev, int vnic_idx, + enum vnic_devcmd_cmd cmd, u64 *a0, u64 *a1) +{ + int status; + + spin_lock(&ufdev->lock); + status = usnic_fwd_devcmd_locked(ufdev, vnic_idx, cmd, a0, a1); + spin_unlock(&ufdev->lock); + + return status; +} + +struct usnic_fwd_dev *usnic_fwd_dev_alloc(struct pci_dev *pdev) +{ + struct usnic_fwd_dev *ufdev; + + ufdev = kzalloc(sizeof(*ufdev), GFP_KERNEL); + if (!ufdev) + return NULL; + + ufdev->pdev = pdev; + ufdev->netdev = pci_get_drvdata(pdev); + spin_lock_init(&ufdev->lock); + strncpy(ufdev->name, netdev_name(ufdev->netdev), + sizeof(ufdev->name) - 1); + + return ufdev; +} + +void usnic_fwd_dev_free(struct usnic_fwd_dev *ufdev) +{ + kfree(ufdev); +} + +void usnic_fwd_set_mac(struct usnic_fwd_dev *ufdev, char mac[ETH_ALEN]) +{ + spin_lock(&ufdev->lock); + memcpy(&ufdev->mac, mac, sizeof(ufdev->mac)); + spin_unlock(&ufdev->lock); +} + +int usnic_fwd_add_ipaddr(struct usnic_fwd_dev *ufdev, __be32 inaddr) +{ + int status; + + spin_lock(&ufdev->lock); + if (ufdev->inaddr == 0) { + ufdev->inaddr = inaddr; + status = 0; + } else { + status = -EFAULT; + } + spin_unlock(&ufdev->lock); + + return status; +} + +void usnic_fwd_del_ipaddr(struct usnic_fwd_dev *ufdev) +{ + spin_lock(&ufdev->lock); + ufdev->inaddr = 0; + spin_unlock(&ufdev->lock); +} + +void usnic_fwd_carrier_up(struct usnic_fwd_dev *ufdev) +{ + spin_lock(&ufdev->lock); + ufdev->link_up = 1; + spin_unlock(&ufdev->lock); +} + +void usnic_fwd_carrier_down(struct usnic_fwd_dev *ufdev) +{ + spin_lock(&ufdev->lock); + ufdev->link_up = 0; + spin_unlock(&ufdev->lock); +} + +void usnic_fwd_set_mtu(struct usnic_fwd_dev *ufdev, unsigned int mtu) +{ + spin_lock(&ufdev->lock); + ufdev->mtu = mtu; + spin_unlock(&ufdev->lock); +} + +static int usnic_fwd_dev_ready_locked(struct usnic_fwd_dev *ufdev) +{ + lockdep_assert_held(&ufdev->lock); + + if (!ufdev->link_up) + return -EPERM; + + return 0; +} + +static int validate_filter_locked(struct usnic_fwd_dev *ufdev, + struct filter *filter) +{ + + lockdep_assert_held(&ufdev->lock); + + if (filter->type == FILTER_IPV4_5TUPLE) { + if (!(filter->u.ipv4.flags & FILTER_FIELD_5TUP_DST_AD)) + return -EACCES; + if (!(filter->u.ipv4.flags & FILTER_FIELD_5TUP_DST_PT)) + return -EBUSY; + else if (ufdev->inaddr == 0) + return -EINVAL; + else if (filter->u.ipv4.dst_port == 0) + return -ERANGE; + else if (ntohl(ufdev->inaddr) != filter->u.ipv4.dst_addr) + return -EFAULT; + else + return 0; + } + + return 0; +} + +static void fill_tlv(struct filter_tlv *tlv, struct filter *filter, + struct filter_action *action) +{ + tlv->type = CLSF_TLV_FILTER; + tlv->length = sizeof(struct filter); + *((struct filter *)&tlv->val) = *filter; + + tlv = (struct filter_tlv *)((char *)tlv + sizeof(struct filter_tlv) + + sizeof(struct filter)); + tlv->type = CLSF_TLV_ACTION; + tlv->length = sizeof(struct filter_action); + *((struct filter_action *)&tlv->val) = *action; +} + +struct usnic_fwd_flow* +usnic_fwd_alloc_flow(struct usnic_fwd_dev *ufdev, struct filter *filter, + struct usnic_filter_action *uaction) +{ + struct filter_tlv *tlv; + struct pci_dev *pdev; + struct usnic_fwd_flow *flow; + uint64_t a0, a1; + uint64_t tlv_size; + dma_addr_t tlv_pa; + int status; + + pdev = ufdev->pdev; + tlv_size = (2*sizeof(struct filter_tlv) + sizeof(struct filter) + + sizeof(struct filter_action)); + + flow = kzalloc(sizeof(*flow), GFP_ATOMIC); + if (!flow) + return ERR_PTR(-ENOMEM); + + tlv = pci_alloc_consistent(pdev, tlv_size, &tlv_pa); + if (!tlv) { + usnic_err("Failed to allocate memory\n"); + status = -ENOMEM; + goto out_free_flow; + } + + fill_tlv(tlv, filter, &uaction->action); + + spin_lock(&ufdev->lock); + status = usnic_fwd_dev_ready_locked(ufdev); + if (status) { + usnic_err("Forwarding dev %s not ready with status %d\n", + ufdev->name, status); + goto out_free_tlv; + } + + status = validate_filter_locked(ufdev, filter); + if (status) { + usnic_err("Failed to validate filter with status %d\n", + status); + goto out_free_tlv; + } + + /* Issue Devcmd */ + a0 = tlv_pa; + a1 = tlv_size; + status = usnic_fwd_devcmd_locked(ufdev, uaction->vnic_idx, + CMD_ADD_FILTER, &a0, &a1); + if (status) { + usnic_err("VF %s Filter add failed with status:%d", + ufdev->name, status); + status = -EFAULT; + goto out_free_tlv; + } else { + usnic_dbg("VF %s FILTER ID:%llu", ufdev->name, a0); + } + + flow->flow_id = (uint32_t) a0; + flow->vnic_idx = uaction->vnic_idx; + flow->ufdev = ufdev; + +out_free_tlv: + spin_unlock(&ufdev->lock); + pci_free_consistent(pdev, tlv_size, tlv, tlv_pa); + if (!status) + return flow; +out_free_flow: + kfree(flow); + return ERR_PTR(status); +} + +int usnic_fwd_dealloc_flow(struct usnic_fwd_flow *flow) +{ + int status; + u64 a0, a1; + + a0 = flow->flow_id; + + status = usnic_fwd_devcmd(flow->ufdev, flow->vnic_idx, + CMD_DEL_FILTER, &a0, &a1); + if (status) { + if (status == ERR_EINVAL) { + usnic_dbg("Filter %u already deleted for VF Idx %u pf: %s status: %d", + flow->flow_id, flow->vnic_idx, + flow->ufdev->name, status); + } else { + usnic_err("PF %s VF Idx %u Filter: %u FILTER DELETE failed with status %d", + flow->ufdev->name, flow->vnic_idx, + flow->flow_id, status); + } + status = 0; + /* + * Log the error and fake success to the caller because if + * a flow fails to be deleted in the firmware, it is an + * unrecoverable error. + */ + } else { + usnic_dbg("PF %s VF Idx %u Filter: %u FILTER DELETED", + flow->ufdev->name, flow->vnic_idx, + flow->flow_id); + } + + kfree(flow); + return status; +} + +int usnic_fwd_enable_qp(struct usnic_fwd_dev *ufdev, int vnic_idx, int qp_idx) +{ + int status; + struct net_device *pf_netdev; + u64 a0, a1; + + pf_netdev = ufdev->netdev; + a0 = qp_idx; + a1 = CMD_QP_RQWQ; + + status = usnic_fwd_devcmd(ufdev, vnic_idx, CMD_QP_ENABLE, + &a0, &a1); + if (status) { + usnic_err("PF %s VNIC Index %u RQ Index: %u ENABLE Failed with status %d", + netdev_name(pf_netdev), + vnic_idx, + qp_idx, + status); + } else { + usnic_dbg("PF %s VNIC Index %u RQ Index: %u ENABLED", + netdev_name(pf_netdev), + vnic_idx, qp_idx); + } + + return status; +} + +int usnic_fwd_disable_qp(struct usnic_fwd_dev *ufdev, int vnic_idx, int qp_idx) +{ + int status; + u64 a0, a1; + struct net_device *pf_netdev; + + pf_netdev = ufdev->netdev; + a0 = qp_idx; + a1 = CMD_QP_RQWQ; + + status = usnic_fwd_devcmd(ufdev, vnic_idx, CMD_QP_DISABLE, + &a0, &a1); + if (status) { + usnic_err("PF %s VNIC Index %u RQ Index: %u DISABLE Failed with status %d", + netdev_name(pf_netdev), + vnic_idx, + qp_idx, + status); + } else { + usnic_dbg("PF %s VNIC Index %u RQ Index: %u DISABLED", + netdev_name(pf_netdev), + vnic_idx, + qp_idx); + } + + return status; +} --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_fwd.h +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_fwd.h @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef USNIC_FWD_H_ +#define USNIC_FWD_H_ + +#include +#include +#include +#include + +#include "usnic_abi.h" +#include "usnic_common_pkt_hdr.h" +#include "vnic_devcmd.h" + +struct usnic_fwd_dev { + struct pci_dev *pdev; + struct net_device *netdev; + spinlock_t lock; + /* + * The following fields can be read directly off the device. + * However, they should be set by a accessor function, except name, + * which cannot be changed. + */ + bool link_up; + char mac[ETH_ALEN]; + unsigned int mtu; + __be32 inaddr; + char name[IFNAMSIZ+1]; +}; + +struct usnic_fwd_flow { + uint32_t flow_id; + struct usnic_fwd_dev *ufdev; + unsigned int vnic_idx; +}; + +struct usnic_filter_action { + int vnic_idx; + struct filter_action action; +}; + +struct usnic_fwd_dev *usnic_fwd_dev_alloc(struct pci_dev *pdev); +void usnic_fwd_dev_free(struct usnic_fwd_dev *ufdev); + +void usnic_fwd_set_mac(struct usnic_fwd_dev *ufdev, char mac[ETH_ALEN]); +int usnic_fwd_add_ipaddr(struct usnic_fwd_dev *ufdev, __be32 inaddr); +void usnic_fwd_del_ipaddr(struct usnic_fwd_dev *ufdev); +void usnic_fwd_carrier_up(struct usnic_fwd_dev *ufdev); +void usnic_fwd_carrier_down(struct usnic_fwd_dev *ufdev); +void usnic_fwd_set_mtu(struct usnic_fwd_dev *ufdev, unsigned int mtu); + +/* + * Allocate a flow on this forwarding device. Whoever calls this function, + * must monitor netdev events on ufdev's netdevice. If NETDEV_REBOOT or + * NETDEV_DOWN is seen, flow will no longer function and must be + * immediately freed by calling usnic_dealloc_flow. + */ +struct usnic_fwd_flow* +usnic_fwd_alloc_flow(struct usnic_fwd_dev *ufdev, struct filter *filter, + struct usnic_filter_action *action); +int usnic_fwd_dealloc_flow(struct usnic_fwd_flow *flow); +int usnic_fwd_enable_qp(struct usnic_fwd_dev *ufdev, int vnic_idx, int qp_idx); +int usnic_fwd_disable_qp(struct usnic_fwd_dev *ufdev, int vnic_idx, int qp_idx); + +static inline void usnic_fwd_init_usnic_filter(struct filter *filter, + uint32_t usnic_id) +{ + filter->type = FILTER_USNIC_ID; + filter->u.usnic.ethtype = USNIC_ROCE_ETHERTYPE; + filter->u.usnic.flags = FILTER_FIELD_USNIC_ETHTYPE | + FILTER_FIELD_USNIC_ID | + FILTER_FIELD_USNIC_PROTO; + filter->u.usnic.proto_version = (USNIC_ROCE_GRH_VER << + USNIC_ROCE_GRH_VER_SHIFT) | + USNIC_PROTO_VER; + filter->u.usnic.usnic_id = usnic_id; +} + +static inline void usnic_fwd_init_udp_filter(struct filter *filter, + uint32_t daddr, uint16_t dport) +{ + filter->type = FILTER_IPV4_5TUPLE; + filter->u.ipv4.flags = FILTER_FIELD_5TUP_PROTO; + filter->u.ipv4.protocol = PROTO_UDP; + + if (daddr) { + filter->u.ipv4.flags |= FILTER_FIELD_5TUP_DST_AD; + filter->u.ipv4.dst_addr = daddr; + } + + if (dport) { + filter->u.ipv4.flags |= FILTER_FIELD_5TUP_DST_PT; + filter->u.ipv4.dst_port = dport; + } +} + +#endif /* !USNIC_FWD_H_ */ --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_ib.h +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_ib.h @@ -0,0 +1,118 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef USNIC_IB_H_ +#define USNIC_IB_H_ + +#include +#include + +#include + + +#include "usnic.h" +#include "usnic_abi.h" +#include "usnic_vnic.h" + +#define USNIC_IB_PORT_CNT 1 +#define USNIC_IB_NUM_COMP_VECTORS 1 + +extern unsigned int usnic_ib_share_vf; + +struct usnic_ib_ucontext { + struct ib_ucontext ibucontext; + /* Protected by usnic_ib_dev->usdev_lock */ + struct list_head qp_grp_list; + struct list_head link; +}; + +struct usnic_ib_pd { + struct ib_pd ibpd; + struct usnic_uiom_pd *umem_pd; +}; + +struct usnic_ib_mr { + struct ib_mr ibmr; + struct usnic_uiom_reg *umem; +}; + +struct usnic_ib_dev { + struct ib_device ib_dev; + struct pci_dev *pdev; + struct net_device *netdev; + struct usnic_fwd_dev *ufdev; + struct list_head ib_dev_link; + struct list_head vf_dev_list; + struct list_head ctx_list; + struct mutex usdev_lock; + + /* provisioning information */ + struct kref vf_cnt; + unsigned int vf_res_cnt[USNIC_VNIC_RES_TYPE_MAX]; + + /* sysfs vars for QPN reporting */ + struct kobject *qpn_kobj; +}; + +struct usnic_ib_vf { + struct usnic_ib_dev *pf; + spinlock_t lock; + struct usnic_vnic *vnic; + unsigned int qp_grp_ref_cnt; + struct usnic_ib_pd *pd; + struct list_head link; +}; + +static inline +struct usnic_ib_dev *to_usdev(struct ib_device *ibdev) +{ + return container_of(ibdev, struct usnic_ib_dev, ib_dev); +} + +static inline +struct usnic_ib_ucontext *to_ucontext(struct ib_ucontext *ibucontext) +{ + return container_of(ibucontext, struct usnic_ib_ucontext, ibucontext); +} + +static inline +struct usnic_ib_pd *to_upd(struct ib_pd *ibpd) +{ + return container_of(ibpd, struct usnic_ib_pd, ibpd); +} + +static inline +struct usnic_ib_ucontext *to_uucontext(struct ib_ucontext *ibucontext) +{ + return container_of(ibucontext, struct usnic_ib_ucontext, ibucontext); +} + +static inline +struct usnic_ib_mr *to_umr(struct ib_mr *ibmr) +{ + return container_of(ibmr, struct usnic_ib_mr, ibmr); +} +void usnic_ib_log_vf(struct usnic_ib_vf *vf); + +#define UPDATE_PTR_LEFT(N, P, L) \ +do { \ + L -= (N); \ + P += (N); \ +} while (0) + +#endif /* USNIC_IB_H_ */ --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_ib_main.c +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_ib_main.c @@ -0,0 +1,682 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: Upinder Malhi + * Author: Anant Deepak + * Author: Cesare Cantu' + * Author: Jeff Squyres + * Author: Kiran Thirumalai + * Author: Xuyang Wang + * Author: Reese Faucette + * + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "usnic_abi.h" +#include "usnic_common_util.h" +#include "usnic_ib.h" +#include "usnic_ib_qp_grp.h" +#include "usnic_log.h" +#include "usnic_fwd.h" +#include "usnic_debugfs.h" +#include "usnic_ib_verbs.h" +#include "usnic_transport.h" +#include "usnic_uiom.h" +#include "usnic_ib_sysfs.h" + +unsigned int usnic_log_lvl = USNIC_LOG_LVL_ERR; +unsigned int usnic_ib_share_vf = 1; + +static const char usnic_version[] = + DRV_NAME ": Cisco VIC (USNIC) Verbs Driver v" + DRV_VERSION " (" DRV_RELDATE ")\n"; + +static DEFINE_MUTEX(usnic_ib_ibdev_list_lock); +static LIST_HEAD(usnic_ib_ibdev_list); + +/* Callback dump funcs */ +static int usnic_ib_dump_vf_hdr(void *obj, char *buf, int buf_sz) +{ + struct usnic_ib_vf *vf = obj; + return scnprintf(buf, buf_sz, "PF: %s ", vf->pf->ib_dev.name); +} +/* End callback dump funcs */ + +static void usnic_ib_dump_vf(struct usnic_ib_vf *vf, char *buf, int buf_sz) +{ + usnic_vnic_dump(vf->vnic, buf, buf_sz, vf, + usnic_ib_dump_vf_hdr, + usnic_ib_qp_grp_dump_hdr, usnic_ib_qp_grp_dump_rows); +} + +void usnic_ib_log_vf(struct usnic_ib_vf *vf) +{ + char buf[1000]; + usnic_ib_dump_vf(vf, buf, sizeof(buf)); + usnic_dbg("%s\n", buf); +} + +/* Start of netdev section */ +static inline const char *usnic_ib_netdev_event_to_string(unsigned long event) +{ + const char *event2str[] = {"NETDEV_NONE", "NETDEV_UP", "NETDEV_DOWN", + "NETDEV_REBOOT", "NETDEV_CHANGE", + "NETDEV_REGISTER", "NETDEV_UNREGISTER", "NETDEV_CHANGEMTU", + "NETDEV_CHANGEADDR", "NETDEV_GOING_DOWN", "NETDEV_FEAT_CHANGE", + "NETDEV_BONDING_FAILOVER", "NETDEV_PRE_UP", + "NETDEV_PRE_TYPE_CHANGE", "NETDEV_POST_TYPE_CHANGE", + "NETDEV_POST_INT", "NETDEV_UNREGISTER_FINAL", "NETDEV_RELEASE", + "NETDEV_NOTIFY_PEERS", "NETDEV_JOIN" + }; + + if (event >= ARRAY_SIZE(event2str)) + return "UNKNOWN_NETDEV_EVENT"; + else + return event2str[event]; +} + +static void usnic_ib_qp_grp_modify_active_to_err(struct usnic_ib_dev *us_ibdev) +{ + struct usnic_ib_ucontext *ctx; + struct usnic_ib_qp_grp *qp_grp; + enum ib_qp_state cur_state; + int status; + + BUG_ON(!mutex_is_locked(&us_ibdev->usdev_lock)); + + list_for_each_entry(ctx, &us_ibdev->ctx_list, link) { + list_for_each_entry(qp_grp, &ctx->qp_grp_list, link) { + cur_state = qp_grp->state; + if (cur_state == IB_QPS_INIT || + cur_state == IB_QPS_RTR || + cur_state == IB_QPS_RTS) { + status = usnic_ib_qp_grp_modify(qp_grp, + IB_QPS_ERR, + NULL); + if (status) { + usnic_err("Failed to transistion qp grp %u from %s to %s\n", + qp_grp->grp_id, + usnic_ib_qp_grp_state_to_string + (cur_state), + usnic_ib_qp_grp_state_to_string + (IB_QPS_ERR)); + } + } + } + } +} + +static void usnic_ib_handle_usdev_event(struct usnic_ib_dev *us_ibdev, + unsigned long event) +{ + struct net_device *netdev; + struct ib_event ib_event; + + memset(&ib_event, 0, sizeof(ib_event)); + + mutex_lock(&us_ibdev->usdev_lock); + netdev = us_ibdev->netdev; + switch (event) { + case NETDEV_REBOOT: + usnic_info("PF Reset on %s\n", us_ibdev->ib_dev.name); + usnic_ib_qp_grp_modify_active_to_err(us_ibdev); + ib_event.event = IB_EVENT_PORT_ERR; + ib_event.device = &us_ibdev->ib_dev; + ib_event.element.port_num = 1; + ib_dispatch_event(&ib_event); + break; + case NETDEV_UP: + case NETDEV_DOWN: + case NETDEV_CHANGE: + if (!us_ibdev->ufdev->link_up && + netif_carrier_ok(netdev)) { + usnic_fwd_carrier_up(us_ibdev->ufdev); + usnic_info("Link UP on %s\n", us_ibdev->ib_dev.name); + ib_event.event = IB_EVENT_PORT_ACTIVE; + ib_event.device = &us_ibdev->ib_dev; + ib_event.element.port_num = 1; + ib_dispatch_event(&ib_event); + } else if (us_ibdev->ufdev->link_up && + !netif_carrier_ok(netdev)) { + usnic_fwd_carrier_down(us_ibdev->ufdev); + usnic_info("Link DOWN on %s\n", us_ibdev->ib_dev.name); + usnic_ib_qp_grp_modify_active_to_err(us_ibdev); + ib_event.event = IB_EVENT_PORT_ERR; + ib_event.device = &us_ibdev->ib_dev; + ib_event.element.port_num = 1; + ib_dispatch_event(&ib_event); + } else { + usnic_dbg("Ignoring %s on %s\n", + usnic_ib_netdev_event_to_string(event), + us_ibdev->ib_dev.name); + } + break; + case NETDEV_CHANGEADDR: + if (!memcmp(us_ibdev->ufdev->mac, netdev->dev_addr, + sizeof(us_ibdev->ufdev->mac))) { + usnic_dbg("Ignoring addr change on %s\n", + us_ibdev->ib_dev.name); + } else { + usnic_info(" %s old mac: %pM new mac: %pM\n", + us_ibdev->ib_dev.name, + us_ibdev->ufdev->mac, + netdev->dev_addr); + usnic_fwd_set_mac(us_ibdev->ufdev, netdev->dev_addr); + usnic_ib_qp_grp_modify_active_to_err(us_ibdev); + ib_event.event = IB_EVENT_GID_CHANGE; + ib_event.device = &us_ibdev->ib_dev; + ib_event.element.port_num = 1; + ib_dispatch_event(&ib_event); + } + + break; + case NETDEV_CHANGEMTU: + if (us_ibdev->ufdev->mtu != netdev->mtu) { + usnic_info("MTU Change on %s old: %u new: %u\n", + us_ibdev->ib_dev.name, + us_ibdev->ufdev->mtu, netdev->mtu); + usnic_fwd_set_mtu(us_ibdev->ufdev, netdev->mtu); + usnic_ib_qp_grp_modify_active_to_err(us_ibdev); + } else { + usnic_dbg("Ignoring MTU change on %s\n", + us_ibdev->ib_dev.name); + } + break; + default: + usnic_dbg("Ignoring event %s on %s", + usnic_ib_netdev_event_to_string(event), + us_ibdev->ib_dev.name); + } + mutex_unlock(&us_ibdev->usdev_lock); +} + +static int usnic_ib_netdevice_event(struct notifier_block *notifier, + unsigned long event, void *ptr) +{ + struct usnic_ib_dev *us_ibdev; + + struct net_device *netdev = netdev_notifier_info_to_dev(ptr); + + mutex_lock(&usnic_ib_ibdev_list_lock); + list_for_each_entry(us_ibdev, &usnic_ib_ibdev_list, ib_dev_link) { + if (us_ibdev->netdev == netdev) { + usnic_ib_handle_usdev_event(us_ibdev, event); + break; + } + } + mutex_unlock(&usnic_ib_ibdev_list_lock); + + return NOTIFY_DONE; +} + +static struct notifier_block usnic_ib_netdevice_notifier = { + .notifier_call = usnic_ib_netdevice_event +}; +/* End of netdev section */ + +/* Start of inet section */ +static int usnic_ib_handle_inet_event(struct usnic_ib_dev *us_ibdev, + unsigned long event, void *ptr) +{ + struct in_ifaddr *ifa = ptr; + struct ib_event ib_event; + + mutex_lock(&us_ibdev->usdev_lock); + + switch (event) { + case NETDEV_DOWN: + usnic_info("%s via ip notifiers", + usnic_ib_netdev_event_to_string(event)); + usnic_fwd_del_ipaddr(us_ibdev->ufdev); + usnic_ib_qp_grp_modify_active_to_err(us_ibdev); + ib_event.event = IB_EVENT_GID_CHANGE; + ib_event.device = &us_ibdev->ib_dev; + ib_event.element.port_num = 1; + ib_dispatch_event(&ib_event); + break; + case NETDEV_UP: + usnic_fwd_add_ipaddr(us_ibdev->ufdev, ifa->ifa_address); + usnic_info("%s via ip notifiers: ip %pI4", + usnic_ib_netdev_event_to_string(event), + &us_ibdev->ufdev->inaddr); + ib_event.event = IB_EVENT_GID_CHANGE; + ib_event.device = &us_ibdev->ib_dev; + ib_event.element.port_num = 1; + ib_dispatch_event(&ib_event); + break; + default: + usnic_info("Ignoring event %s on %s", + usnic_ib_netdev_event_to_string(event), + us_ibdev->ib_dev.name); + } + mutex_unlock(&us_ibdev->usdev_lock); + + return NOTIFY_DONE; +} + +static int usnic_ib_inetaddr_event(struct notifier_block *notifier, + unsigned long event, void *ptr) +{ + struct usnic_ib_dev *us_ibdev; + struct in_ifaddr *ifa = ptr; + struct net_device *netdev = ifa->ifa_dev->dev; + + mutex_lock(&usnic_ib_ibdev_list_lock); + list_for_each_entry(us_ibdev, &usnic_ib_ibdev_list, ib_dev_link) { + if (us_ibdev->netdev == netdev) { + usnic_ib_handle_inet_event(us_ibdev, event, ptr); + break; + } + } + mutex_unlock(&usnic_ib_ibdev_list_lock); + + return NOTIFY_DONE; +} +static struct notifier_block usnic_ib_inetaddr_notifier = { + .notifier_call = usnic_ib_inetaddr_event +}; +/* End of inet section*/ + +/* Start of PF discovery section */ +static void *usnic_ib_device_add(struct pci_dev *dev) +{ + struct usnic_ib_dev *us_ibdev; + union ib_gid gid; + struct in_ifaddr *in; + struct net_device *netdev; + + usnic_dbg("\n"); + netdev = pci_get_drvdata(dev); + + us_ibdev = (struct usnic_ib_dev *)ib_alloc_device(sizeof(*us_ibdev)); + if (IS_ERR_OR_NULL(us_ibdev)) { + usnic_err("Device %s context alloc failed\n", + netdev_name(pci_get_drvdata(dev))); + return ERR_PTR(us_ibdev ? PTR_ERR(us_ibdev) : -EFAULT); + } + + us_ibdev->ufdev = usnic_fwd_dev_alloc(dev); + if (IS_ERR_OR_NULL(us_ibdev->ufdev)) { + usnic_err("Failed to alloc ufdev for %s with err %ld\n", + pci_name(dev), PTR_ERR(us_ibdev->ufdev)); + goto err_dealloc; + } + + mutex_init(&us_ibdev->usdev_lock); + INIT_LIST_HEAD(&us_ibdev->vf_dev_list); + INIT_LIST_HEAD(&us_ibdev->ctx_list); + + us_ibdev->pdev = dev; + us_ibdev->netdev = pci_get_drvdata(dev); + us_ibdev->ib_dev.owner = THIS_MODULE; + us_ibdev->ib_dev.node_type = RDMA_NODE_USNIC_UDP; + us_ibdev->ib_dev.phys_port_cnt = USNIC_IB_PORT_CNT; + us_ibdev->ib_dev.num_comp_vectors = USNIC_IB_NUM_COMP_VECTORS; + us_ibdev->ib_dev.dma_device = &dev->dev; + us_ibdev->ib_dev.uverbs_abi_ver = USNIC_UVERBS_ABI_VERSION; + strlcpy(us_ibdev->ib_dev.name, "usnic_%d", IB_DEVICE_NAME_MAX); + + us_ibdev->ib_dev.uverbs_cmd_mask = + (1ull << IB_USER_VERBS_CMD_GET_CONTEXT) | + (1ull << IB_USER_VERBS_CMD_QUERY_DEVICE) | + (1ull << IB_USER_VERBS_CMD_QUERY_PORT) | + (1ull << IB_USER_VERBS_CMD_ALLOC_PD) | + (1ull << IB_USER_VERBS_CMD_DEALLOC_PD) | + (1ull << IB_USER_VERBS_CMD_REG_MR) | + (1ull << IB_USER_VERBS_CMD_DEREG_MR) | + (1ull << IB_USER_VERBS_CMD_CREATE_COMP_CHANNEL) | + (1ull << IB_USER_VERBS_CMD_CREATE_CQ) | + (1ull << IB_USER_VERBS_CMD_DESTROY_CQ) | + (1ull << IB_USER_VERBS_CMD_CREATE_QP) | + (1ull << IB_USER_VERBS_CMD_MODIFY_QP) | + (1ull << IB_USER_VERBS_CMD_QUERY_QP) | + (1ull << IB_USER_VERBS_CMD_DESTROY_QP) | + (1ull << IB_USER_VERBS_CMD_ATTACH_MCAST) | + (1ull << IB_USER_VERBS_CMD_DETACH_MCAST) | + (1ull << IB_USER_VERBS_CMD_OPEN_QP); + + us_ibdev->ib_dev.query_device = usnic_ib_query_device; + us_ibdev->ib_dev.query_port = usnic_ib_query_port; + us_ibdev->ib_dev.query_pkey = usnic_ib_query_pkey; + us_ibdev->ib_dev.query_gid = usnic_ib_query_gid; + us_ibdev->ib_dev.get_link_layer = usnic_ib_port_link_layer; + us_ibdev->ib_dev.alloc_pd = usnic_ib_alloc_pd; + us_ibdev->ib_dev.dealloc_pd = usnic_ib_dealloc_pd; + us_ibdev->ib_dev.create_qp = usnic_ib_create_qp; + us_ibdev->ib_dev.modify_qp = usnic_ib_modify_qp; + us_ibdev->ib_dev.query_qp = usnic_ib_query_qp; + us_ibdev->ib_dev.destroy_qp = usnic_ib_destroy_qp; + us_ibdev->ib_dev.create_cq = usnic_ib_create_cq; + us_ibdev->ib_dev.destroy_cq = usnic_ib_destroy_cq; + us_ibdev->ib_dev.reg_user_mr = usnic_ib_reg_mr; + us_ibdev->ib_dev.dereg_mr = usnic_ib_dereg_mr; + us_ibdev->ib_dev.alloc_ucontext = usnic_ib_alloc_ucontext; + us_ibdev->ib_dev.dealloc_ucontext = usnic_ib_dealloc_ucontext; + us_ibdev->ib_dev.mmap = usnic_ib_mmap; + us_ibdev->ib_dev.create_ah = usnic_ib_create_ah; + us_ibdev->ib_dev.destroy_ah = usnic_ib_destroy_ah; + us_ibdev->ib_dev.post_send = usnic_ib_post_send; + us_ibdev->ib_dev.post_recv = usnic_ib_post_recv; + us_ibdev->ib_dev.poll_cq = usnic_ib_poll_cq; + us_ibdev->ib_dev.req_notify_cq = usnic_ib_req_notify_cq; + us_ibdev->ib_dev.get_dma_mr = usnic_ib_get_dma_mr; + + + if (ib_register_device(&us_ibdev->ib_dev, NULL)) + goto err_fwd_dealloc; + + usnic_fwd_set_mtu(us_ibdev->ufdev, us_ibdev->netdev->mtu); + usnic_fwd_set_mac(us_ibdev->ufdev, us_ibdev->netdev->dev_addr); + if (netif_carrier_ok(us_ibdev->netdev)) + usnic_fwd_carrier_up(us_ibdev->ufdev); + + in = ((struct in_device *)(netdev->ip_ptr))->ifa_list; + if (in != NULL) + usnic_fwd_add_ipaddr(us_ibdev->ufdev, in->ifa_address); + + usnic_mac_ip_to_gid(us_ibdev->netdev->perm_addr, + us_ibdev->ufdev->inaddr, &gid.raw[0]); + memcpy(&us_ibdev->ib_dev.node_guid, &gid.global.interface_id, + sizeof(gid.global.interface_id)); + kref_init(&us_ibdev->vf_cnt); + + usnic_info("Added ibdev: %s netdev: %s with mac %pM Link: %u MTU: %u\n", + us_ibdev->ib_dev.name, netdev_name(us_ibdev->netdev), + us_ibdev->ufdev->mac, us_ibdev->ufdev->link_up, + us_ibdev->ufdev->mtu); + return us_ibdev; + +err_fwd_dealloc: + usnic_fwd_dev_free(us_ibdev->ufdev); +err_dealloc: + usnic_err("failed -- deallocing device\n"); + ib_dealloc_device(&us_ibdev->ib_dev); + return NULL; +} + +static void usnic_ib_device_remove(struct usnic_ib_dev *us_ibdev) +{ + usnic_info("Unregistering %s\n", us_ibdev->ib_dev.name); + usnic_ib_sysfs_unregister_usdev(us_ibdev); + usnic_fwd_dev_free(us_ibdev->ufdev); + ib_unregister_device(&us_ibdev->ib_dev); + ib_dealloc_device(&us_ibdev->ib_dev); +} + +static void usnic_ib_undiscover_pf(struct kref *kref) +{ + struct usnic_ib_dev *us_ibdev, *tmp; + struct pci_dev *dev; + bool found = false; + + dev = container_of(kref, struct usnic_ib_dev, vf_cnt)->pdev; + mutex_lock(&usnic_ib_ibdev_list_lock); + list_for_each_entry_safe(us_ibdev, tmp, + &usnic_ib_ibdev_list, ib_dev_link) { + if (us_ibdev->pdev == dev) { + list_del(&us_ibdev->ib_dev_link); + usnic_ib_device_remove(us_ibdev); + found = true; + break; + } + } + + WARN(!found, "Failed to remove PF %s\n", pci_name(dev)); + + mutex_unlock(&usnic_ib_ibdev_list_lock); +} + +static struct usnic_ib_dev *usnic_ib_discover_pf(struct usnic_vnic *vnic) +{ + struct usnic_ib_dev *us_ibdev; + struct pci_dev *parent_pci, *vf_pci; + int err; + + vf_pci = usnic_vnic_get_pdev(vnic); + parent_pci = pci_physfn(vf_pci); + + BUG_ON(!parent_pci); + + mutex_lock(&usnic_ib_ibdev_list_lock); + list_for_each_entry(us_ibdev, &usnic_ib_ibdev_list, ib_dev_link) { + if (us_ibdev->pdev == parent_pci) { + kref_get(&us_ibdev->vf_cnt); + goto out; + } + } + + us_ibdev = usnic_ib_device_add(parent_pci); + if (IS_ERR_OR_NULL(us_ibdev)) { + us_ibdev = us_ibdev ? us_ibdev : ERR_PTR(-EFAULT); + goto out; + } + + err = usnic_ib_sysfs_register_usdev(us_ibdev); + if (err) { + usnic_ib_device_remove(us_ibdev); + us_ibdev = ERR_PTR(err); + goto out; + } + + list_add(&us_ibdev->ib_dev_link, &usnic_ib_ibdev_list); +out: + mutex_unlock(&usnic_ib_ibdev_list_lock); + return us_ibdev; +} +/* End of PF discovery section */ + +/* Start of PCI section */ + +static DEFINE_PCI_DEVICE_TABLE(usnic_ib_pci_ids) = { + {PCI_DEVICE(PCI_VENDOR_ID_CISCO, PCI_DEVICE_ID_CISCO_VIC_USPACE_NIC)}, + {0,} +}; + +static int usnic_ib_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *id) +{ + int err; + struct usnic_ib_dev *pf; + struct usnic_ib_vf *vf; + enum usnic_vnic_res_type res_type; + + vf = kzalloc(sizeof(*vf), GFP_KERNEL); + if (!vf) + return -ENOMEM; + + err = pci_enable_device(pdev); + if (err) { + usnic_err("Failed to enable %s with err %d\n", + pci_name(pdev), err); + goto out_clean_vf; + } + + err = pci_request_regions(pdev, DRV_NAME); + if (err) { + usnic_err("Failed to request region for %s with err %d\n", + pci_name(pdev), err); + goto out_disable_device; + } + + pci_set_master(pdev); + pci_set_drvdata(pdev, vf); + + vf->vnic = usnic_vnic_alloc(pdev); + if (IS_ERR_OR_NULL(vf->vnic)) { + err = vf->vnic ? PTR_ERR(vf->vnic) : -ENOMEM; + usnic_err("Failed to alloc vnic for %s with err %d\n", + pci_name(pdev), err); + goto out_release_regions; + } + + pf = usnic_ib_discover_pf(vf->vnic); + if (IS_ERR_OR_NULL(pf)) { + usnic_err("Failed to discover pf of vnic %s with err%ld\n", + pci_name(pdev), PTR_ERR(pf)); + err = pf ? PTR_ERR(pf) : -EFAULT; + goto out_clean_vnic; + } + + vf->pf = pf; + spin_lock_init(&vf->lock); + mutex_lock(&pf->usdev_lock); + list_add_tail(&vf->link, &pf->vf_dev_list); + /* + * Save max settings (will be same for each VF, easier to re-write than + * to say "if (!set) { set_values(); set=1; } + */ + for (res_type = USNIC_VNIC_RES_TYPE_EOL+1; + res_type < USNIC_VNIC_RES_TYPE_MAX; + res_type++) { + pf->vf_res_cnt[res_type] = usnic_vnic_res_cnt(vf->vnic, + res_type); + } + + mutex_unlock(&pf->usdev_lock); + + usnic_info("Registering usnic VF %s into PF %s\n", pci_name(pdev), + pf->ib_dev.name); + usnic_ib_log_vf(vf); + return 0; + +out_clean_vnic: + usnic_vnic_free(vf->vnic); +out_release_regions: + pci_set_drvdata(pdev, NULL); + pci_clear_master(pdev); + pci_release_regions(pdev); +out_disable_device: + pci_disable_device(pdev); +out_clean_vf: + kfree(vf); + return err; +} + +static void usnic_ib_pci_remove(struct pci_dev *pdev) +{ + struct usnic_ib_vf *vf = pci_get_drvdata(pdev); + struct usnic_ib_dev *pf = vf->pf; + + mutex_lock(&pf->usdev_lock); + list_del(&vf->link); + mutex_unlock(&pf->usdev_lock); + + kref_put(&pf->vf_cnt, usnic_ib_undiscover_pf); + usnic_vnic_free(vf->vnic); + pci_set_drvdata(pdev, NULL); + pci_clear_master(pdev); + pci_release_regions(pdev); + pci_disable_device(pdev); + kfree(vf); + + usnic_info("Removed VF %s\n", pci_name(pdev)); +} + +/* PCI driver entry points */ +static struct pci_driver usnic_ib_pci_driver = { + .name = DRV_NAME, + .id_table = usnic_ib_pci_ids, + .probe = usnic_ib_pci_probe, + .remove = usnic_ib_pci_remove, +}; +/* End of PCI section */ + +/* Start of module section */ +static int __init usnic_ib_init(void) +{ + int err; + + printk_once(KERN_INFO "%s", usnic_version); + + err = usnic_uiom_init(DRV_NAME); + if (err) { + usnic_err("Unable to initalize umem with err %d\n", err); + return err; + } + + if (pci_register_driver(&usnic_ib_pci_driver)) { + usnic_err("Unable to register with PCI\n"); + goto out_umem_fini; + } + + err = register_netdevice_notifier(&usnic_ib_netdevice_notifier); + if (err) { + usnic_err("Failed to register netdev notifier\n"); + goto out_pci_unreg; + } + + err = register_inetaddr_notifier(&usnic_ib_inetaddr_notifier); + if (err) { + usnic_err("Failed to register inet addr notifier\n"); + goto out_unreg_netdev_notifier; + } + + err = usnic_transport_init(); + if (err) { + usnic_err("Failed to initialize transport\n"); + goto out_unreg_inetaddr_notifier; + } + + usnic_debugfs_init(); + + return 0; + +out_unreg_inetaddr_notifier: + unregister_inetaddr_notifier(&usnic_ib_inetaddr_notifier); +out_unreg_netdev_notifier: + unregister_netdevice_notifier(&usnic_ib_netdevice_notifier); +out_pci_unreg: + pci_unregister_driver(&usnic_ib_pci_driver); +out_umem_fini: + usnic_uiom_fini(); + + return err; +} + +static void __exit usnic_ib_destroy(void) +{ + usnic_dbg("\n"); + usnic_debugfs_exit(); + usnic_transport_fini(); + unregister_inetaddr_notifier(&usnic_ib_inetaddr_notifier); + unregister_netdevice_notifier(&usnic_ib_netdevice_notifier); + pci_unregister_driver(&usnic_ib_pci_driver); + usnic_uiom_fini(); +} + +MODULE_DESCRIPTION("Cisco VIC (usNIC) Verbs Driver"); +MODULE_AUTHOR("Upinder Malhi "); +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_VERSION(DRV_VERSION); +module_param(usnic_log_lvl, uint, S_IRUGO | S_IWUSR); +module_param(usnic_ib_share_vf, uint, S_IRUGO | S_IWUSR); +MODULE_PARM_DESC(usnic_log_lvl, " Off=0, Err=1, Info=2, Debug=3"); +MODULE_PARM_DESC(usnic_ib_share_vf, "Off=0, On=1 VF sharing amongst QPs"); +MODULE_DEVICE_TABLE(pci, usnic_ib_pci_ids); + +module_init(usnic_ib_init); +module_exit(usnic_ib_destroy); +/* End of module section */ --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c @@ -0,0 +1,761 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ +#include +#include +#include +#include + +#include "usnic_log.h" +#include "usnic_vnic.h" +#include "usnic_fwd.h" +#include "usnic_uiom.h" +#include "usnic_debugfs.h" +#include "usnic_ib_qp_grp.h" +#include "usnic_ib_sysfs.h" +#include "usnic_transport.h" + +#define DFLT_RQ_IDX 0 + +const char *usnic_ib_qp_grp_state_to_string(enum ib_qp_state state) +{ + switch (state) { + case IB_QPS_RESET: + return "Rst"; + case IB_QPS_INIT: + return "Init"; + case IB_QPS_RTR: + return "RTR"; + case IB_QPS_RTS: + return "RTS"; + case IB_QPS_SQD: + return "SQD"; + case IB_QPS_SQE: + return "SQE"; + case IB_QPS_ERR: + return "ERR"; + default: + return "UNKOWN STATE"; + + } +} + +int usnic_ib_qp_grp_dump_hdr(char *buf, int buf_sz) +{ + return scnprintf(buf, buf_sz, "|QPN\t|State\t|PID\t|VF Idx\t|Fil ID"); +} + +int usnic_ib_qp_grp_dump_rows(void *obj, char *buf, int buf_sz) +{ + struct usnic_ib_qp_grp *qp_grp = obj; + struct usnic_ib_qp_grp_flow *default_flow; + if (obj) { + default_flow = list_first_entry(&qp_grp->flows_lst, + struct usnic_ib_qp_grp_flow, link); + return scnprintf(buf, buf_sz, "|%d\t|%s\t|%d\t|%hu\t|%d", + qp_grp->ibqp.qp_num, + usnic_ib_qp_grp_state_to_string( + qp_grp->state), + qp_grp->owner_pid, + usnic_vnic_get_index(qp_grp->vf->vnic), + default_flow->flow->flow_id); + } else { + return scnprintf(buf, buf_sz, "|N/A\t|N/A\t|N/A\t|N/A\t|N/A"); + } +} + +static struct usnic_vnic_res_chunk * +get_qp_res_chunk(struct usnic_ib_qp_grp *qp_grp) +{ + lockdep_assert_held(&qp_grp->lock); + /* + * The QP res chunk, used to derive qp indices, + * are just indices of the RQs + */ + return usnic_ib_qp_grp_get_chunk(qp_grp, USNIC_VNIC_RES_TYPE_RQ); +} + +static int enable_qp_grp(struct usnic_ib_qp_grp *qp_grp) +{ + + int status; + int i, vnic_idx; + struct usnic_vnic_res_chunk *res_chunk; + struct usnic_vnic_res *res; + + lockdep_assert_held(&qp_grp->lock); + + vnic_idx = usnic_vnic_get_index(qp_grp->vf->vnic); + + res_chunk = get_qp_res_chunk(qp_grp); + if (IS_ERR_OR_NULL(res_chunk)) { + usnic_err("Unable to get qp res with err %ld\n", + PTR_ERR(res_chunk)); + return res_chunk ? PTR_ERR(res_chunk) : -ENOMEM; + } + + for (i = 0; i < res_chunk->cnt; i++) { + res = res_chunk->res[i]; + status = usnic_fwd_enable_qp(qp_grp->ufdev, vnic_idx, + res->vnic_idx); + if (status) { + usnic_err("Failed to enable qp %d of %s:%d\n with err %d\n", + res->vnic_idx, qp_grp->ufdev->name, + vnic_idx, status); + goto out_err; + } + } + + return 0; + +out_err: + for (i--; i >= 0; i--) { + res = res_chunk->res[i]; + usnic_fwd_disable_qp(qp_grp->ufdev, vnic_idx, + res->vnic_idx); + } + + return status; +} + +static int disable_qp_grp(struct usnic_ib_qp_grp *qp_grp) +{ + int i, vnic_idx; + struct usnic_vnic_res_chunk *res_chunk; + struct usnic_vnic_res *res; + int status = 0; + + lockdep_assert_held(&qp_grp->lock); + vnic_idx = usnic_vnic_get_index(qp_grp->vf->vnic); + + res_chunk = get_qp_res_chunk(qp_grp); + if (IS_ERR_OR_NULL(res_chunk)) { + usnic_err("Unable to get qp res with err %ld\n", + PTR_ERR(res_chunk)); + return res_chunk ? PTR_ERR(res_chunk) : -ENOMEM; + } + + for (i = 0; i < res_chunk->cnt; i++) { + res = res_chunk->res[i]; + status = usnic_fwd_disable_qp(qp_grp->ufdev, vnic_idx, + res->vnic_idx); + if (status) { + usnic_err("Failed to disable rq %d of %s:%d\n with err %d\n", + res->vnic_idx, + qp_grp->ufdev->name, + vnic_idx, status); + } + } + + return status; + +} + +static int init_filter_action(struct usnic_ib_qp_grp *qp_grp, + struct usnic_filter_action *uaction) +{ + struct usnic_vnic_res_chunk *res_chunk; + + res_chunk = usnic_ib_qp_grp_get_chunk(qp_grp, USNIC_VNIC_RES_TYPE_RQ); + if (IS_ERR_OR_NULL(res_chunk)) { + usnic_err("Unable to get %s with err %ld\n", + usnic_vnic_res_type_to_str(USNIC_VNIC_RES_TYPE_RQ), + PTR_ERR(res_chunk)); + return res_chunk ? PTR_ERR(res_chunk) : -ENOMEM; + } + + uaction->vnic_idx = usnic_vnic_get_index(qp_grp->vf->vnic); + uaction->action.type = FILTER_ACTION_RQ_STEERING; + uaction->action.u.rq_idx = res_chunk->res[DFLT_RQ_IDX]->vnic_idx; + + return 0; +} + +static struct usnic_ib_qp_grp_flow* +create_roce_custom_flow(struct usnic_ib_qp_grp *qp_grp, + struct usnic_transport_spec *trans_spec) +{ + uint16_t port_num; + int err; + struct filter filter; + struct usnic_filter_action uaction; + struct usnic_ib_qp_grp_flow *qp_flow; + struct usnic_fwd_flow *flow; + enum usnic_transport_type trans_type; + + trans_type = trans_spec->trans_type; + port_num = trans_spec->usnic_roce.port_num; + + /* Reserve Port */ + port_num = usnic_transport_rsrv_port(trans_type, port_num); + if (port_num == 0) + return ERR_PTR(-EINVAL); + + /* Create Flow */ + usnic_fwd_init_usnic_filter(&filter, port_num); + err = init_filter_action(qp_grp, &uaction); + if (err) + goto out_unreserve_port; + + flow = usnic_fwd_alloc_flow(qp_grp->ufdev, &filter, &uaction); + if (IS_ERR_OR_NULL(flow)) { + usnic_err("Unable to alloc flow failed with err %ld\n", + PTR_ERR(flow)); + err = flow ? PTR_ERR(flow) : -EFAULT; + goto out_unreserve_port; + } + + /* Create Flow Handle */ + qp_flow = kzalloc(sizeof(*qp_flow), GFP_ATOMIC); + if (IS_ERR_OR_NULL(qp_flow)) { + err = qp_flow ? PTR_ERR(qp_flow) : -ENOMEM; + goto out_dealloc_flow; + } + qp_flow->flow = flow; + qp_flow->trans_type = trans_type; + qp_flow->usnic_roce.port_num = port_num; + qp_flow->qp_grp = qp_grp; + return qp_flow; + +out_dealloc_flow: + usnic_fwd_dealloc_flow(flow); +out_unreserve_port: + usnic_transport_unrsrv_port(trans_type, port_num); + return ERR_PTR(err); +} + +static void release_roce_custom_flow(struct usnic_ib_qp_grp_flow *qp_flow) +{ + usnic_fwd_dealloc_flow(qp_flow->flow); + usnic_transport_unrsrv_port(qp_flow->trans_type, + qp_flow->usnic_roce.port_num); + kfree(qp_flow); +} + +static struct usnic_ib_qp_grp_flow* +create_udp_flow(struct usnic_ib_qp_grp *qp_grp, + struct usnic_transport_spec *trans_spec) +{ + struct socket *sock; + int sock_fd; + int err; + struct filter filter; + struct usnic_filter_action uaction; + struct usnic_ib_qp_grp_flow *qp_flow; + struct usnic_fwd_flow *flow; + enum usnic_transport_type trans_type; + uint32_t addr; + uint16_t port_num; + int proto; + + trans_type = trans_spec->trans_type; + sock_fd = trans_spec->udp.sock_fd; + + /* Get and check socket */ + sock = usnic_transport_get_socket(sock_fd); + if (IS_ERR_OR_NULL(sock)) + return ERR_CAST(sock); + + err = usnic_transport_sock_get_addr(sock, &proto, &addr, &port_num); + if (err) + goto out_put_sock; + + if (proto != IPPROTO_UDP) { + usnic_err("Protocol for fd %d is not UDP", sock_fd); + err = -EPERM; + goto out_put_sock; + } + + /* Create flow */ + usnic_fwd_init_udp_filter(&filter, addr, port_num); + err = init_filter_action(qp_grp, &uaction); + if (err) + goto out_put_sock; + + flow = usnic_fwd_alloc_flow(qp_grp->ufdev, &filter, &uaction); + if (IS_ERR_OR_NULL(flow)) { + usnic_err("Unable to alloc flow failed with err %ld\n", + PTR_ERR(flow)); + err = flow ? PTR_ERR(flow) : -EFAULT; + goto out_put_sock; + } + + /* Create qp_flow */ + qp_flow = kzalloc(sizeof(*qp_flow), GFP_ATOMIC); + if (IS_ERR_OR_NULL(qp_flow)) { + err = qp_flow ? PTR_ERR(qp_flow) : -ENOMEM; + goto out_dealloc_flow; + } + qp_flow->flow = flow; + qp_flow->trans_type = trans_type; + qp_flow->udp.sock = sock; + qp_flow->qp_grp = qp_grp; + return qp_flow; + +out_dealloc_flow: + usnic_fwd_dealloc_flow(flow); +out_put_sock: + usnic_transport_put_socket(sock); + return ERR_PTR(err); +} + +static void release_udp_flow(struct usnic_ib_qp_grp_flow *qp_flow) +{ + usnic_fwd_dealloc_flow(qp_flow->flow); + usnic_transport_put_socket(qp_flow->udp.sock); + kfree(qp_flow); +} + +static struct usnic_ib_qp_grp_flow* +create_and_add_flow(struct usnic_ib_qp_grp *qp_grp, + struct usnic_transport_spec *trans_spec) +{ + struct usnic_ib_qp_grp_flow *qp_flow; + enum usnic_transport_type trans_type; + + trans_type = trans_spec->trans_type; + switch (trans_type) { + case USNIC_TRANSPORT_ROCE_CUSTOM: + qp_flow = create_roce_custom_flow(qp_grp, trans_spec); + break; + case USNIC_TRANSPORT_IPV4_UDP: + qp_flow = create_udp_flow(qp_grp, trans_spec); + break; + default: + usnic_err("Unsupported transport %u\n", + trans_spec->trans_type); + return ERR_PTR(-EINVAL); + } + + if (!IS_ERR_OR_NULL(qp_flow)) { + list_add_tail(&qp_flow->link, &qp_grp->flows_lst); + usnic_debugfs_flow_add(qp_flow); + } + + + return qp_flow; +} + +static void release_and_remove_flow(struct usnic_ib_qp_grp_flow *qp_flow) +{ + usnic_debugfs_flow_remove(qp_flow); + list_del(&qp_flow->link); + + switch (qp_flow->trans_type) { + case USNIC_TRANSPORT_ROCE_CUSTOM: + release_roce_custom_flow(qp_flow); + break; + case USNIC_TRANSPORT_IPV4_UDP: + release_udp_flow(qp_flow); + break; + default: + WARN(1, "Unsupported transport %u\n", + qp_flow->trans_type); + break; + } +} + +static void release_and_remove_all_flows(struct usnic_ib_qp_grp *qp_grp) +{ + struct usnic_ib_qp_grp_flow *qp_flow, *tmp; + list_for_each_entry_safe(qp_flow, tmp, &qp_grp->flows_lst, link) + release_and_remove_flow(qp_flow); +} + +int usnic_ib_qp_grp_modify(struct usnic_ib_qp_grp *qp_grp, + enum ib_qp_state new_state, + void *data) +{ + int status = 0; + int vnic_idx; + struct ib_event ib_event; + enum ib_qp_state old_state; + struct usnic_transport_spec *trans_spec; + struct usnic_ib_qp_grp_flow *qp_flow; + + old_state = qp_grp->state; + vnic_idx = usnic_vnic_get_index(qp_grp->vf->vnic); + trans_spec = (struct usnic_transport_spec *) data; + + spin_lock(&qp_grp->lock); + switch (new_state) { + case IB_QPS_RESET: + switch (old_state) { + case IB_QPS_RESET: + /* NO-OP */ + break; + case IB_QPS_INIT: + release_and_remove_all_flows(qp_grp); + status = 0; + break; + case IB_QPS_RTR: + case IB_QPS_RTS: + case IB_QPS_ERR: + status = disable_qp_grp(qp_grp); + release_and_remove_all_flows(qp_grp); + break; + default: + status = -EINVAL; + } + break; + case IB_QPS_INIT: + switch (old_state) { + case IB_QPS_RESET: + if (trans_spec) { + qp_flow = create_and_add_flow(qp_grp, + trans_spec); + if (IS_ERR_OR_NULL(qp_flow)) { + status = qp_flow ? PTR_ERR(qp_flow) : -EFAULT; + break; + } + } else { + /* + * Optional to specify filters. + */ + status = 0; + } + break; + case IB_QPS_INIT: + if (trans_spec) { + qp_flow = create_and_add_flow(qp_grp, + trans_spec); + if (IS_ERR_OR_NULL(qp_flow)) { + status = qp_flow ? PTR_ERR(qp_flow) : -EFAULT; + break; + } + } else { + /* + * Doesn't make sense to go into INIT state + * from INIT state w/o adding filters. + */ + status = -EINVAL; + } + break; + case IB_QPS_RTR: + status = disable_qp_grp(qp_grp); + break; + case IB_QPS_RTS: + status = disable_qp_grp(qp_grp); + break; + default: + status = -EINVAL; + } + break; + case IB_QPS_RTR: + switch (old_state) { + case IB_QPS_INIT: + status = enable_qp_grp(qp_grp); + break; + default: + status = -EINVAL; + } + break; + case IB_QPS_RTS: + switch (old_state) { + case IB_QPS_RTR: + /* NO-OP FOR NOW */ + break; + default: + status = -EINVAL; + } + break; + case IB_QPS_ERR: + ib_event.device = &qp_grp->vf->pf->ib_dev; + ib_event.element.qp = &qp_grp->ibqp; + ib_event.event = IB_EVENT_QP_FATAL; + + switch (old_state) { + case IB_QPS_RESET: + qp_grp->ibqp.event_handler(&ib_event, + qp_grp->ibqp.qp_context); + break; + case IB_QPS_INIT: + release_and_remove_all_flows(qp_grp); + qp_grp->ibqp.event_handler(&ib_event, + qp_grp->ibqp.qp_context); + break; + case IB_QPS_RTR: + case IB_QPS_RTS: + status = disable_qp_grp(qp_grp); + release_and_remove_all_flows(qp_grp); + qp_grp->ibqp.event_handler(&ib_event, + qp_grp->ibqp.qp_context); + break; + default: + status = -EINVAL; + } + break; + default: + status = -EINVAL; + } + spin_unlock(&qp_grp->lock); + + if (!status) { + qp_grp->state = new_state; + usnic_info("Transistioned %u from %s to %s", + qp_grp->grp_id, + usnic_ib_qp_grp_state_to_string(old_state), + usnic_ib_qp_grp_state_to_string(new_state)); + } else { + usnic_err("Failed to transistion %u from %s to %s", + qp_grp->grp_id, + usnic_ib_qp_grp_state_to_string(old_state), + usnic_ib_qp_grp_state_to_string(new_state)); + } + + return status; +} + +static struct usnic_vnic_res_chunk** +alloc_res_chunk_list(struct usnic_vnic *vnic, + struct usnic_vnic_res_spec *res_spec, void *owner_obj) +{ + enum usnic_vnic_res_type res_type; + struct usnic_vnic_res_chunk **res_chunk_list; + int err, i, res_cnt, res_lst_sz; + + for (res_lst_sz = 0; + res_spec->resources[res_lst_sz].type != USNIC_VNIC_RES_TYPE_EOL; + res_lst_sz++) { + /* Do Nothing */ + } + + res_chunk_list = kzalloc(sizeof(*res_chunk_list)*(res_lst_sz+1), + GFP_ATOMIC); + if (!res_chunk_list) + return ERR_PTR(-ENOMEM); + + for (i = 0; res_spec->resources[i].type != USNIC_VNIC_RES_TYPE_EOL; + i++) { + res_type = res_spec->resources[i].type; + res_cnt = res_spec->resources[i].cnt; + + res_chunk_list[i] = usnic_vnic_get_resources(vnic, res_type, + res_cnt, owner_obj); + if (IS_ERR_OR_NULL(res_chunk_list[i])) { + err = res_chunk_list[i] ? + PTR_ERR(res_chunk_list[i]) : -ENOMEM; + usnic_err("Failed to get %s from %s with err %d\n", + usnic_vnic_res_type_to_str(res_type), + usnic_vnic_pci_name(vnic), + err); + goto out_free_res; + } + } + + return res_chunk_list; + +out_free_res: + for (i--; i > 0; i--) + usnic_vnic_put_resources(res_chunk_list[i]); + kfree(res_chunk_list); + return ERR_PTR(err); +} + +static void free_qp_grp_res(struct usnic_vnic_res_chunk **res_chunk_list) +{ + int i; + for (i = 0; res_chunk_list[i]; i++) + usnic_vnic_put_resources(res_chunk_list[i]); + kfree(res_chunk_list); +} + +static int qp_grp_and_vf_bind(struct usnic_ib_vf *vf, + struct usnic_ib_pd *pd, + struct usnic_ib_qp_grp *qp_grp) +{ + int err; + struct pci_dev *pdev; + + lockdep_assert_held(&vf->lock); + + pdev = usnic_vnic_get_pdev(vf->vnic); + if (vf->qp_grp_ref_cnt == 0) { + err = usnic_uiom_attach_dev_to_pd(pd->umem_pd, &pdev->dev); + if (err) { + usnic_err("Failed to attach %s to domain\n", + pci_name(pdev)); + return err; + } + vf->pd = pd; + } + vf->qp_grp_ref_cnt++; + + WARN_ON(vf->pd != pd); + qp_grp->vf = vf; + + return 0; +} + +static void qp_grp_and_vf_unbind(struct usnic_ib_qp_grp *qp_grp) +{ + struct pci_dev *pdev; + struct usnic_ib_pd *pd; + + lockdep_assert_held(&qp_grp->vf->lock); + + pd = qp_grp->vf->pd; + pdev = usnic_vnic_get_pdev(qp_grp->vf->vnic); + if (--qp_grp->vf->qp_grp_ref_cnt == 0) { + qp_grp->vf->pd = NULL; + usnic_uiom_detach_dev_from_pd(pd->umem_pd, &pdev->dev); + } + qp_grp->vf = NULL; +} + +static void log_spec(struct usnic_vnic_res_spec *res_spec) +{ + char buf[512]; + usnic_vnic_spec_dump(buf, sizeof(buf), res_spec); + usnic_dbg("%s\n", buf); +} + +static int qp_grp_id_from_flow(struct usnic_ib_qp_grp_flow *qp_flow, + uint32_t *id) +{ + enum usnic_transport_type trans_type = qp_flow->trans_type; + int err; + uint16_t port_num = 0; + + switch (trans_type) { + case USNIC_TRANSPORT_ROCE_CUSTOM: + *id = qp_flow->usnic_roce.port_num; + break; + case USNIC_TRANSPORT_IPV4_UDP: + err = usnic_transport_sock_get_addr(qp_flow->udp.sock, + NULL, NULL, + &port_num); + if (err) + return err; + /* + * Copy port_num to stack first and then to *id, + * so that the short to int cast works for little + * and big endian systems. + */ + *id = port_num; + break; + default: + usnic_err("Unsupported transport %u\n", trans_type); + return -EINVAL; + } + + return 0; +} + +struct usnic_ib_qp_grp * +usnic_ib_qp_grp_create(struct usnic_fwd_dev *ufdev, struct usnic_ib_vf *vf, + struct usnic_ib_pd *pd, + struct usnic_vnic_res_spec *res_spec, + struct usnic_transport_spec *transport_spec) +{ + struct usnic_ib_qp_grp *qp_grp; + int err; + enum usnic_transport_type transport = transport_spec->trans_type; + struct usnic_ib_qp_grp_flow *qp_flow; + + lockdep_assert_held(&vf->lock); + + err = usnic_vnic_res_spec_satisfied(&min_transport_spec[transport], + res_spec); + if (err) { + usnic_err("Spec does not meet miniumum req for transport %d\n", + transport); + log_spec(res_spec); + return ERR_PTR(err); + } + + qp_grp = kzalloc(sizeof(*qp_grp), GFP_ATOMIC); + if (!qp_grp) { + usnic_err("Unable to alloc qp_grp - Out of memory\n"); + return NULL; + } + + qp_grp->res_chunk_list = alloc_res_chunk_list(vf->vnic, res_spec, + qp_grp); + if (IS_ERR_OR_NULL(qp_grp->res_chunk_list)) { + err = qp_grp->res_chunk_list ? + PTR_ERR(qp_grp->res_chunk_list) : -ENOMEM; + usnic_err("Unable to alloc res for %d with err %d\n", + qp_grp->grp_id, err); + goto out_free_qp_grp; + } + + err = qp_grp_and_vf_bind(vf, pd, qp_grp); + if (err) + goto out_free_res; + + INIT_LIST_HEAD(&qp_grp->flows_lst); + spin_lock_init(&qp_grp->lock); + qp_grp->ufdev = ufdev; + qp_grp->state = IB_QPS_RESET; + qp_grp->owner_pid = current->pid; + + qp_flow = create_and_add_flow(qp_grp, transport_spec); + if (IS_ERR_OR_NULL(qp_flow)) { + usnic_err("Unable to create and add flow with err %ld\n", + PTR_ERR(qp_flow)); + err = qp_flow ? PTR_ERR(qp_flow) : -EFAULT; + goto out_qp_grp_vf_unbind; + } + + err = qp_grp_id_from_flow(qp_flow, &qp_grp->grp_id); + if (err) + goto out_release_flow; + qp_grp->ibqp.qp_num = qp_grp->grp_id; + + usnic_ib_sysfs_qpn_add(qp_grp); + + return qp_grp; + +out_release_flow: + release_and_remove_flow(qp_flow); +out_qp_grp_vf_unbind: + qp_grp_and_vf_unbind(qp_grp); +out_free_res: + free_qp_grp_res(qp_grp->res_chunk_list); +out_free_qp_grp: + kfree(qp_grp); + + return ERR_PTR(err); +} + +void usnic_ib_qp_grp_destroy(struct usnic_ib_qp_grp *qp_grp) +{ + + WARN_ON(qp_grp->state != IB_QPS_RESET); + lockdep_assert_held(&qp_grp->vf->lock); + + release_and_remove_all_flows(qp_grp); + usnic_ib_sysfs_qpn_remove(qp_grp); + qp_grp_and_vf_unbind(qp_grp); + free_qp_grp_res(qp_grp->res_chunk_list); + kfree(qp_grp); +} + +struct usnic_vnic_res_chunk* +usnic_ib_qp_grp_get_chunk(struct usnic_ib_qp_grp *qp_grp, + enum usnic_vnic_res_type res_type) +{ + int i; + + for (i = 0; qp_grp->res_chunk_list[i]; i++) { + if (qp_grp->res_chunk_list[i]->type == res_type) + return qp_grp->res_chunk_list[i]; + } + + return ERR_PTR(-EINVAL); +} --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.h +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.h @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef USNIC_IB_QP_GRP_H_ +#define USNIC_IB_QP_GRP_H_ + +#include +#include + +#include "usnic_ib.h" +#include "usnic_abi.h" +#include "usnic_fwd.h" +#include "usnic_vnic.h" + +/* + * The qp group struct represents all the hw resources needed to present a ib_qp + */ +struct usnic_ib_qp_grp { + struct ib_qp ibqp; + enum ib_qp_state state; + int grp_id; + + struct usnic_fwd_dev *ufdev; + struct usnic_ib_ucontext *ctx; + struct list_head flows_lst; + + struct usnic_vnic_res_chunk **res_chunk_list; + + pid_t owner_pid; + struct usnic_ib_vf *vf; + struct list_head link; + + spinlock_t lock; + + struct kobject kobj; +}; + +struct usnic_ib_qp_grp_flow { + struct usnic_fwd_flow *flow; + enum usnic_transport_type trans_type; + union { + struct { + uint16_t port_num; + } usnic_roce; + struct { + struct socket *sock; + } udp; + }; + struct usnic_ib_qp_grp *qp_grp; + struct list_head link; + + /* Debug FS */ + struct dentry *dbgfs_dentry; + char dentry_name[32]; +}; + +static const struct +usnic_vnic_res_spec min_transport_spec[USNIC_TRANSPORT_MAX] = { + { /*USNIC_TRANSPORT_UNKNOWN*/ + .resources = { + {.type = USNIC_VNIC_RES_TYPE_EOL, .cnt = 0,}, + }, + }, + { /*USNIC_TRANSPORT_ROCE_CUSTOM*/ + .resources = { + {.type = USNIC_VNIC_RES_TYPE_WQ, .cnt = 1,}, + {.type = USNIC_VNIC_RES_TYPE_RQ, .cnt = 1,}, + {.type = USNIC_VNIC_RES_TYPE_CQ, .cnt = 1,}, + {.type = USNIC_VNIC_RES_TYPE_EOL, .cnt = 0,}, + }, + }, + { /*USNIC_TRANSPORT_IPV4_UDP*/ + .resources = { + {.type = USNIC_VNIC_RES_TYPE_WQ, .cnt = 1,}, + {.type = USNIC_VNIC_RES_TYPE_RQ, .cnt = 1,}, + {.type = USNIC_VNIC_RES_TYPE_CQ, .cnt = 1,}, + {.type = USNIC_VNIC_RES_TYPE_EOL, .cnt = 0,}, + }, + }, +}; + +const char *usnic_ib_qp_grp_state_to_string(enum ib_qp_state state); +int usnic_ib_qp_grp_dump_hdr(char *buf, int buf_sz); +int usnic_ib_qp_grp_dump_rows(void *obj, char *buf, int buf_sz); +struct usnic_ib_qp_grp * +usnic_ib_qp_grp_create(struct usnic_fwd_dev *ufdev, struct usnic_ib_vf *vf, + struct usnic_ib_pd *pd, + struct usnic_vnic_res_spec *res_spec, + struct usnic_transport_spec *trans_spec); +void usnic_ib_qp_grp_destroy(struct usnic_ib_qp_grp *qp_grp); +int usnic_ib_qp_grp_modify(struct usnic_ib_qp_grp *qp_grp, + enum ib_qp_state new_state, + void *data); +struct usnic_vnic_res_chunk +*usnic_ib_qp_grp_get_chunk(struct usnic_ib_qp_grp *qp_grp, + enum usnic_vnic_res_type type); +static inline +struct usnic_ib_qp_grp *to_uqp_grp(struct ib_qp *ibqp) +{ + return container_of(ibqp, struct usnic_ib_qp_grp, ibqp); +} +#endif /* USNIC_IB_QP_GRP_H_ */ --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_ib_sysfs.c +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_ib_sysfs.c @@ -0,0 +1,341 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#include +#include +#include + +#include +#include + +#include "usnic_common_util.h" +#include "usnic_ib.h" +#include "usnic_ib_qp_grp.h" +#include "usnic_vnic.h" +#include "usnic_ib_verbs.h" +#include "usnic_log.h" + +static ssize_t usnic_ib_show_fw_ver(struct device *device, + struct device_attribute *attr, + char *buf) +{ + struct usnic_ib_dev *us_ibdev = + container_of(device, struct usnic_ib_dev, ib_dev.dev); + struct ethtool_drvinfo info; + + mutex_lock(&us_ibdev->usdev_lock); + us_ibdev->netdev->ethtool_ops->get_drvinfo(us_ibdev->netdev, &info); + mutex_unlock(&us_ibdev->usdev_lock); + + return scnprintf(buf, PAGE_SIZE, "%s\n", info.fw_version); +} + +static ssize_t usnic_ib_show_board(struct device *device, + struct device_attribute *attr, + char *buf) +{ + struct usnic_ib_dev *us_ibdev = + container_of(device, struct usnic_ib_dev, ib_dev.dev); + unsigned short subsystem_device_id; + + mutex_lock(&us_ibdev->usdev_lock); + subsystem_device_id = us_ibdev->pdev->subsystem_device; + mutex_unlock(&us_ibdev->usdev_lock); + + return scnprintf(buf, PAGE_SIZE, "%hu\n", subsystem_device_id); +} + +/* + * Report the configuration for this PF + */ +static ssize_t +usnic_ib_show_config(struct device *device, struct device_attribute *attr, + char *buf) +{ + struct usnic_ib_dev *us_ibdev; + char *ptr; + unsigned left; + unsigned n; + enum usnic_vnic_res_type res_type; + + us_ibdev = container_of(device, struct usnic_ib_dev, ib_dev.dev); + + /* Buffer space limit is 1 page */ + ptr = buf; + left = PAGE_SIZE; + + mutex_lock(&us_ibdev->usdev_lock); + if (atomic_read(&us_ibdev->vf_cnt.refcount) > 0) { + char *busname; + + /* + * bus name seems to come with annoying prefix. + * Remove it if it is predictable + */ + busname = us_ibdev->pdev->bus->name; + if (strncmp(busname, "PCI Bus ", 8) == 0) + busname += 8; + + n = scnprintf(ptr, left, + "%s: %s:%d.%d, %s, %pM, %u VFs\n Per VF:", + us_ibdev->ib_dev.name, + busname, + PCI_SLOT(us_ibdev->pdev->devfn), + PCI_FUNC(us_ibdev->pdev->devfn), + netdev_name(us_ibdev->netdev), + us_ibdev->ufdev->mac, + atomic_read(&us_ibdev->vf_cnt.refcount)); + UPDATE_PTR_LEFT(n, ptr, left); + + for (res_type = USNIC_VNIC_RES_TYPE_EOL; + res_type < USNIC_VNIC_RES_TYPE_MAX; + res_type++) { + if (us_ibdev->vf_res_cnt[res_type] == 0) + continue; + n = scnprintf(ptr, left, " %d %s%s", + us_ibdev->vf_res_cnt[res_type], + usnic_vnic_res_type_to_str(res_type), + (res_type < (USNIC_VNIC_RES_TYPE_MAX - 1)) ? + "," : ""); + UPDATE_PTR_LEFT(n, ptr, left); + } + n = scnprintf(ptr, left, "\n"); + UPDATE_PTR_LEFT(n, ptr, left); + } else { + n = scnprintf(ptr, left, "%s: no VFs\n", + us_ibdev->ib_dev.name); + UPDATE_PTR_LEFT(n, ptr, left); + } + mutex_unlock(&us_ibdev->usdev_lock); + + return ptr - buf; +} + +static ssize_t +usnic_ib_show_iface(struct device *device, struct device_attribute *attr, + char *buf) +{ + struct usnic_ib_dev *us_ibdev; + + us_ibdev = container_of(device, struct usnic_ib_dev, ib_dev.dev); + + return scnprintf(buf, PAGE_SIZE, "%s\n", + netdev_name(us_ibdev->netdev)); +} + +static ssize_t +usnic_ib_show_max_vf(struct device *device, struct device_attribute *attr, + char *buf) +{ + struct usnic_ib_dev *us_ibdev; + + us_ibdev = container_of(device, struct usnic_ib_dev, ib_dev.dev); + + return scnprintf(buf, PAGE_SIZE, "%u\n", + atomic_read(&us_ibdev->vf_cnt.refcount)); +} + +static ssize_t +usnic_ib_show_qp_per_vf(struct device *device, struct device_attribute *attr, + char *buf) +{ + struct usnic_ib_dev *us_ibdev; + int qp_per_vf; + + us_ibdev = container_of(device, struct usnic_ib_dev, ib_dev.dev); + qp_per_vf = max(us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_WQ], + us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_RQ]); + + return scnprintf(buf, PAGE_SIZE, + "%d\n", qp_per_vf); +} + +static ssize_t +usnic_ib_show_cq_per_vf(struct device *device, struct device_attribute *attr, + char *buf) +{ + struct usnic_ib_dev *us_ibdev; + + us_ibdev = container_of(device, struct usnic_ib_dev, ib_dev.dev); + + return scnprintf(buf, PAGE_SIZE, "%d\n", + us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_CQ]); +} + +static DEVICE_ATTR(fw_ver, S_IRUGO, usnic_ib_show_fw_ver, NULL); +static DEVICE_ATTR(board_id, S_IRUGO, usnic_ib_show_board, NULL); +static DEVICE_ATTR(config, S_IRUGO, usnic_ib_show_config, NULL); +static DEVICE_ATTR(iface, S_IRUGO, usnic_ib_show_iface, NULL); +static DEVICE_ATTR(max_vf, S_IRUGO, usnic_ib_show_max_vf, NULL); +static DEVICE_ATTR(qp_per_vf, S_IRUGO, usnic_ib_show_qp_per_vf, NULL); +static DEVICE_ATTR(cq_per_vf, S_IRUGO, usnic_ib_show_cq_per_vf, NULL); + +static struct device_attribute *usnic_class_attributes[] = { + &dev_attr_fw_ver, + &dev_attr_board_id, + &dev_attr_config, + &dev_attr_iface, + &dev_attr_max_vf, + &dev_attr_qp_per_vf, + &dev_attr_cq_per_vf, +}; + +struct qpn_attribute { + struct attribute attr; + ssize_t (*show)(struct usnic_ib_qp_grp *, char *buf); +}; + +/* + * Definitions for supporting QPN entries in sysfs + */ +static ssize_t +usnic_ib_qpn_attr_show(struct kobject *kobj, struct attribute *attr, char *buf) +{ + struct usnic_ib_qp_grp *qp_grp; + struct qpn_attribute *qpn_attr; + + qp_grp = container_of(kobj, struct usnic_ib_qp_grp, kobj); + qpn_attr = container_of(attr, struct qpn_attribute, attr); + + return qpn_attr->show(qp_grp, buf); +} + +static const struct sysfs_ops usnic_ib_qpn_sysfs_ops = { + .show = usnic_ib_qpn_attr_show +}; + +#define QPN_ATTR_RO(NAME) \ +struct qpn_attribute qpn_attr_##NAME = __ATTR_RO(NAME) + +static ssize_t context_show(struct usnic_ib_qp_grp *qp_grp, char *buf) +{ + return scnprintf(buf, PAGE_SIZE, "0x%p\n", qp_grp->ctx); +} + +static ssize_t summary_show(struct usnic_ib_qp_grp *qp_grp, char *buf) +{ + int i, j, n; + int left; + char *ptr; + struct usnic_vnic_res_chunk *res_chunk; + struct usnic_vnic_res *vnic_res; + + left = PAGE_SIZE; + ptr = buf; + + n = scnprintf(ptr, left, + "QPN: %d State: (%s) PID: %u VF Idx: %hu ", + qp_grp->ibqp.qp_num, + usnic_ib_qp_grp_state_to_string(qp_grp->state), + qp_grp->owner_pid, + usnic_vnic_get_index(qp_grp->vf->vnic)); + UPDATE_PTR_LEFT(n, ptr, left); + + for (i = 0; qp_grp->res_chunk_list[i]; i++) { + res_chunk = qp_grp->res_chunk_list[i]; + for (j = 0; j < res_chunk->cnt; j++) { + vnic_res = res_chunk->res[j]; + n = scnprintf(ptr, left, "%s[%d] ", + usnic_vnic_res_type_to_str(vnic_res->type), + vnic_res->vnic_idx); + UPDATE_PTR_LEFT(n, ptr, left); + } + } + + n = scnprintf(ptr, left, "\n"); + UPDATE_PTR_LEFT(n, ptr, left); + + return ptr - buf; +} + +static QPN_ATTR_RO(context); +static QPN_ATTR_RO(summary); + +static struct attribute *usnic_ib_qpn_default_attrs[] = { + &qpn_attr_context.attr, + &qpn_attr_summary.attr, + NULL +}; + +static struct kobj_type usnic_ib_qpn_type = { + .sysfs_ops = &usnic_ib_qpn_sysfs_ops, + .default_attrs = usnic_ib_qpn_default_attrs +}; + +int usnic_ib_sysfs_register_usdev(struct usnic_ib_dev *us_ibdev) +{ + int i; + int err; + for (i = 0; i < ARRAY_SIZE(usnic_class_attributes); ++i) { + err = device_create_file(&us_ibdev->ib_dev.dev, + usnic_class_attributes[i]); + if (err) { + usnic_err("Failed to create device file %d for %s eith err %d", + i, us_ibdev->ib_dev.name, err); + return -EINVAL; + } + } + + /* create kernel object for looking at individual QPs */ + kobject_get(&us_ibdev->ib_dev.dev.kobj); + us_ibdev->qpn_kobj = kobject_create_and_add("qpn", + &us_ibdev->ib_dev.dev.kobj); + if (us_ibdev->qpn_kobj == NULL) { + kobject_put(&us_ibdev->ib_dev.dev.kobj); + return -ENOMEM; + } + + return 0; +} + +void usnic_ib_sysfs_unregister_usdev(struct usnic_ib_dev *us_ibdev) +{ + int i; + for (i = 0; i < ARRAY_SIZE(usnic_class_attributes); ++i) { + device_remove_file(&us_ibdev->ib_dev.dev, + usnic_class_attributes[i]); + } + + kobject_put(us_ibdev->qpn_kobj); +} + +void usnic_ib_sysfs_qpn_add(struct usnic_ib_qp_grp *qp_grp) +{ + struct usnic_ib_dev *us_ibdev; + int err; + + us_ibdev = qp_grp->vf->pf; + + err = kobject_init_and_add(&qp_grp->kobj, &usnic_ib_qpn_type, + kobject_get(us_ibdev->qpn_kobj), + "%d", qp_grp->grp_id); + if (err) { + kobject_put(us_ibdev->qpn_kobj); + return; + } +} + +void usnic_ib_sysfs_qpn_remove(struct usnic_ib_qp_grp *qp_grp) +{ + struct usnic_ib_dev *us_ibdev; + + us_ibdev = qp_grp->vf->pf; + + kobject_put(&qp_grp->kobj); + kobject_put(us_ibdev->qpn_kobj); +} --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_ib_sysfs.h +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_ib_sysfs.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef USNIC_IB_SYSFS_H_ +#define USNIC_IB_SYSFS_H_ + +#include "usnic_ib.h" + +int usnic_ib_sysfs_register_usdev(struct usnic_ib_dev *us_ibdev); +void usnic_ib_sysfs_unregister_usdev(struct usnic_ib_dev *us_ibdev); +void usnic_ib_sysfs_qpn_add(struct usnic_ib_qp_grp *qp_grp); +void usnic_ib_sysfs_qpn_remove(struct usnic_ib_qp_grp *qp_grp); + +#endif /* !USNIC_IB_SYSFS_H_ */ --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_ib_verbs.c +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_ib_verbs.c @@ -0,0 +1,765 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ +#include +#include +#include +#include + +#include +#include + +#include "usnic_abi.h" +#include "usnic_ib.h" +#include "usnic_common_util.h" +#include "usnic_ib_qp_grp.h" +#include "usnic_fwd.h" +#include "usnic_log.h" +#include "usnic_uiom.h" +#include "usnic_transport.h" + +#define USNIC_DEFAULT_TRANSPORT USNIC_TRANSPORT_ROCE_CUSTOM + +static void usnic_ib_fw_string_to_u64(char *fw_ver_str, u64 *fw_ver) +{ + *fw_ver = (u64) *fw_ver_str; +} + +static int usnic_ib_fill_create_qp_resp(struct usnic_ib_qp_grp *qp_grp, + struct ib_udata *udata) +{ + struct usnic_ib_dev *us_ibdev; + struct usnic_ib_create_qp_resp resp; + struct pci_dev *pdev; + struct vnic_dev_bar *bar; + struct usnic_vnic_res_chunk *chunk; + struct usnic_ib_qp_grp_flow *default_flow; + int i, err; + + memset(&resp, 0, sizeof(resp)); + + us_ibdev = qp_grp->vf->pf; + pdev = usnic_vnic_get_pdev(qp_grp->vf->vnic); + if (!pdev) { + usnic_err("Failed to get pdev of qp_grp %d\n", + qp_grp->grp_id); + return -EFAULT; + } + + bar = usnic_vnic_get_bar(qp_grp->vf->vnic, 0); + if (!bar) { + usnic_err("Failed to get bar0 of qp_grp %d vf %s", + qp_grp->grp_id, pci_name(pdev)); + return -EFAULT; + } + + resp.vfid = usnic_vnic_get_index(qp_grp->vf->vnic); + resp.bar_bus_addr = bar->bus_addr; + resp.bar_len = bar->len; + + chunk = usnic_ib_qp_grp_get_chunk(qp_grp, USNIC_VNIC_RES_TYPE_RQ); + if (IS_ERR_OR_NULL(chunk)) { + usnic_err("Failed to get chunk %s for qp_grp %d with err %ld\n", + usnic_vnic_res_type_to_str(USNIC_VNIC_RES_TYPE_RQ), + qp_grp->grp_id, + PTR_ERR(chunk)); + return chunk ? PTR_ERR(chunk) : -ENOMEM; + } + + WARN_ON(chunk->type != USNIC_VNIC_RES_TYPE_RQ); + resp.rq_cnt = chunk->cnt; + for (i = 0; i < chunk->cnt; i++) + resp.rq_idx[i] = chunk->res[i]->vnic_idx; + + chunk = usnic_ib_qp_grp_get_chunk(qp_grp, USNIC_VNIC_RES_TYPE_WQ); + if (IS_ERR_OR_NULL(chunk)) { + usnic_err("Failed to get chunk %s for qp_grp %d with err %ld\n", + usnic_vnic_res_type_to_str(USNIC_VNIC_RES_TYPE_WQ), + qp_grp->grp_id, + PTR_ERR(chunk)); + return chunk ? PTR_ERR(chunk) : -ENOMEM; + } + + WARN_ON(chunk->type != USNIC_VNIC_RES_TYPE_WQ); + resp.wq_cnt = chunk->cnt; + for (i = 0; i < chunk->cnt; i++) + resp.wq_idx[i] = chunk->res[i]->vnic_idx; + + chunk = usnic_ib_qp_grp_get_chunk(qp_grp, USNIC_VNIC_RES_TYPE_CQ); + if (IS_ERR_OR_NULL(chunk)) { + usnic_err("Failed to get chunk %s for qp_grp %d with err %ld\n", + usnic_vnic_res_type_to_str(USNIC_VNIC_RES_TYPE_CQ), + qp_grp->grp_id, + PTR_ERR(chunk)); + return chunk ? PTR_ERR(chunk) : -ENOMEM; + } + + WARN_ON(chunk->type != USNIC_VNIC_RES_TYPE_CQ); + resp.cq_cnt = chunk->cnt; + for (i = 0; i < chunk->cnt; i++) + resp.cq_idx[i] = chunk->res[i]->vnic_idx; + + default_flow = list_first_entry(&qp_grp->flows_lst, + struct usnic_ib_qp_grp_flow, link); + resp.transport = default_flow->trans_type; + + err = ib_copy_to_udata(udata, &resp, sizeof(resp)); + if (err) { + usnic_err("Failed to copy udata for %s", us_ibdev->ib_dev.name); + return err; + } + + return 0; +} + +static struct usnic_ib_qp_grp* +find_free_vf_and_create_qp_grp(struct usnic_ib_dev *us_ibdev, + struct usnic_ib_pd *pd, + struct usnic_transport_spec *trans_spec, + struct usnic_vnic_res_spec *res_spec) +{ + struct usnic_ib_vf *vf; + struct usnic_vnic *vnic; + struct usnic_ib_qp_grp *qp_grp; + struct device *dev, **dev_list; + int i, found = 0; + + BUG_ON(!mutex_is_locked(&us_ibdev->usdev_lock)); + + if (list_empty(&us_ibdev->vf_dev_list)) { + usnic_info("No vfs to allocate\n"); + return NULL; + } + + if (usnic_ib_share_vf) { + /* Try to find resouces on a used vf which is in pd */ + dev_list = usnic_uiom_get_dev_list(pd->umem_pd); + for (i = 0; dev_list[i]; i++) { + dev = dev_list[i]; + vf = pci_get_drvdata(to_pci_dev(dev)); + spin_lock(&vf->lock); + vnic = vf->vnic; + if (!usnic_vnic_check_room(vnic, res_spec)) { + usnic_dbg("Found used vnic %s from %s\n", + us_ibdev->ib_dev.name, + pci_name(usnic_vnic_get_pdev( + vnic))); + found = 1; + break; + } + spin_unlock(&vf->lock); + + } + usnic_uiom_free_dev_list(dev_list); + } + + if (!found) { + /* Try to find resources on an unused vf */ + list_for_each_entry(vf, &us_ibdev->vf_dev_list, link) { + spin_lock(&vf->lock); + vnic = vf->vnic; + if (vf->qp_grp_ref_cnt == 0 && + usnic_vnic_check_room(vnic, res_spec) == 0) { + found = 1; + break; + } + spin_unlock(&vf->lock); + } + } + + if (!found) { + usnic_info("No free qp grp found on %s\n", + us_ibdev->ib_dev.name); + return ERR_PTR(-ENOMEM); + } + + qp_grp = usnic_ib_qp_grp_create(us_ibdev->ufdev, vf, pd, res_spec, + trans_spec); + spin_unlock(&vf->lock); + if (IS_ERR_OR_NULL(qp_grp)) { + usnic_err("Failed to allocate qp_grp\n"); + return ERR_PTR(qp_grp ? PTR_ERR(qp_grp) : -ENOMEM); + } + + return qp_grp; +} + +static void qp_grp_destroy(struct usnic_ib_qp_grp *qp_grp) +{ + struct usnic_ib_vf *vf = qp_grp->vf; + + WARN_ON(qp_grp->state != IB_QPS_RESET); + + spin_lock(&vf->lock); + usnic_ib_qp_grp_destroy(qp_grp); + spin_unlock(&vf->lock); +} + +static void eth_speed_to_ib_speed(int speed, u8 *active_speed, + u8 *active_width) +{ + if (speed <= 10000) { + *active_width = IB_WIDTH_1X; + *active_speed = IB_SPEED_FDR10; + } else if (speed <= 20000) { + *active_width = IB_WIDTH_4X; + *active_speed = IB_SPEED_DDR; + } else if (speed <= 30000) { + *active_width = IB_WIDTH_4X; + *active_speed = IB_SPEED_QDR; + } else if (speed <= 40000) { + *active_width = IB_WIDTH_4X; + *active_speed = IB_SPEED_FDR10; + } else { + *active_width = IB_WIDTH_4X; + *active_speed = IB_SPEED_EDR; + } +} + +static int create_qp_validate_user_data(struct usnic_ib_create_qp_cmd cmd) +{ + if (cmd.spec.trans_type <= USNIC_TRANSPORT_UNKNOWN || + cmd.spec.trans_type >= USNIC_TRANSPORT_MAX) + return -EINVAL; + + return 0; +} + +/* Start of ib callback functions */ + +enum rdma_link_layer usnic_ib_port_link_layer(struct ib_device *device, + u8 port_num) +{ + return IB_LINK_LAYER_ETHERNET; +} + +int usnic_ib_query_device(struct ib_device *ibdev, + struct ib_device_attr *props) +{ + struct usnic_ib_dev *us_ibdev = to_usdev(ibdev); + union ib_gid gid; + struct ethtool_drvinfo info; + struct ethtool_cmd cmd; + int qp_per_vf; + + usnic_dbg("\n"); + mutex_lock(&us_ibdev->usdev_lock); + us_ibdev->netdev->ethtool_ops->get_drvinfo(us_ibdev->netdev, &info); + us_ibdev->netdev->ethtool_ops->get_settings(us_ibdev->netdev, &cmd); + memset(props, 0, sizeof(*props)); + usnic_mac_ip_to_gid(us_ibdev->ufdev->mac, us_ibdev->ufdev->inaddr, + &gid.raw[0]); + memcpy(&props->sys_image_guid, &gid.global.interface_id, + sizeof(gid.global.interface_id)); + usnic_ib_fw_string_to_u64(&info.fw_version[0], &props->fw_ver); + props->max_mr_size = USNIC_UIOM_MAX_MR_SIZE; + props->page_size_cap = USNIC_UIOM_PAGE_SIZE; + props->vendor_id = PCI_VENDOR_ID_CISCO; + props->vendor_part_id = PCI_DEVICE_ID_CISCO_VIC_USPACE_NIC; + props->hw_ver = us_ibdev->pdev->subsystem_device; + qp_per_vf = max(us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_WQ], + us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_RQ]); + props->max_qp = qp_per_vf * + atomic_read(&us_ibdev->vf_cnt.refcount); + props->device_cap_flags = IB_DEVICE_PORT_ACTIVE_EVENT | + IB_DEVICE_SYS_IMAGE_GUID | IB_DEVICE_BLOCK_MULTICAST_LOOPBACK; + props->max_cq = us_ibdev->vf_res_cnt[USNIC_VNIC_RES_TYPE_CQ] * + atomic_read(&us_ibdev->vf_cnt.refcount); + props->max_pd = USNIC_UIOM_MAX_PD_CNT; + props->max_mr = USNIC_UIOM_MAX_MR_CNT; + props->local_ca_ack_delay = 0; + props->max_pkeys = 0; + props->atomic_cap = IB_ATOMIC_NONE; + props->masked_atomic_cap = props->atomic_cap; + props->max_qp_rd_atom = 0; + props->max_qp_init_rd_atom = 0; + props->max_res_rd_atom = 0; + props->max_srq = 0; + props->max_srq_wr = 0; + props->max_srq_sge = 0; + props->max_fast_reg_page_list_len = 0; + props->max_mcast_grp = 0; + props->max_mcast_qp_attach = 0; + props->max_total_mcast_qp_attach = 0; + props->max_map_per_fmr = 0; + /* Owned by Userspace + * max_qp_wr, max_sge, max_sge_rd, max_cqe */ + mutex_unlock(&us_ibdev->usdev_lock); + + return 0; +} + +int usnic_ib_query_port(struct ib_device *ibdev, u8 port, + struct ib_port_attr *props) +{ + struct usnic_ib_dev *us_ibdev = to_usdev(ibdev); + struct ethtool_cmd cmd; + + usnic_dbg("\n"); + + mutex_lock(&us_ibdev->usdev_lock); + us_ibdev->netdev->ethtool_ops->get_settings(us_ibdev->netdev, &cmd); + memset(props, 0, sizeof(*props)); + + props->lid = 0; + props->lmc = 1; + props->sm_lid = 0; + props->sm_sl = 0; + + if (!us_ibdev->ufdev->link_up) { + props->state = IB_PORT_DOWN; + props->phys_state = 3; + } else if (!us_ibdev->ufdev->inaddr) { + props->state = IB_PORT_INIT; + props->phys_state = 4; + } else { + props->state = IB_PORT_ACTIVE; + props->phys_state = 5; + } + + props->port_cap_flags = 0; + props->gid_tbl_len = 1; + props->pkey_tbl_len = 1; + props->bad_pkey_cntr = 0; + props->qkey_viol_cntr = 0; + eth_speed_to_ib_speed(cmd.speed, &props->active_speed, + &props->active_width); + props->max_mtu = IB_MTU_4096; + props->active_mtu = iboe_get_mtu(us_ibdev->ufdev->mtu); + /* Userspace will adjust for hdrs */ + props->max_msg_sz = us_ibdev->ufdev->mtu; + props->max_vl_num = 1; + mutex_unlock(&us_ibdev->usdev_lock); + + return 0; +} + +int usnic_ib_query_qp(struct ib_qp *qp, struct ib_qp_attr *qp_attr, + int qp_attr_mask, + struct ib_qp_init_attr *qp_init_attr) +{ + struct usnic_ib_qp_grp *qp_grp; + struct usnic_ib_vf *vf; + int err; + + usnic_dbg("\n"); + + memset(qp_attr, 0, sizeof(*qp_attr)); + memset(qp_init_attr, 0, sizeof(*qp_init_attr)); + + qp_grp = to_uqp_grp(qp); + vf = qp_grp->vf; + mutex_lock(&vf->pf->usdev_lock); + usnic_dbg("\n"); + qp_attr->qp_state = qp_grp->state; + qp_attr->cur_qp_state = qp_grp->state; + + switch (qp_grp->ibqp.qp_type) { + case IB_QPT_UD: + qp_attr->qkey = 0; + break; + default: + usnic_err("Unexpected qp_type %d\n", qp_grp->ibqp.qp_type); + err = -EINVAL; + goto err_out; + } + + mutex_unlock(&vf->pf->usdev_lock); + return 0; + +err_out: + mutex_unlock(&vf->pf->usdev_lock); + return err; +} + +int usnic_ib_query_gid(struct ib_device *ibdev, u8 port, int index, + union ib_gid *gid) +{ + + struct usnic_ib_dev *us_ibdev = to_usdev(ibdev); + usnic_dbg("\n"); + + if (index > 1) + return -EINVAL; + + mutex_lock(&us_ibdev->usdev_lock); + memset(&(gid->raw[0]), 0, sizeof(gid->raw)); + usnic_mac_ip_to_gid(us_ibdev->ufdev->mac, us_ibdev->ufdev->inaddr, + &gid->raw[0]); + mutex_unlock(&us_ibdev->usdev_lock); + + return 0; +} + +int usnic_ib_query_pkey(struct ib_device *ibdev, u8 port, u16 index, + u16 *pkey) +{ + if (index > 1) + return -EINVAL; + + *pkey = 0xffff; + return 0; +} + +struct ib_pd *usnic_ib_alloc_pd(struct ib_device *ibdev, + struct ib_ucontext *context, + struct ib_udata *udata) +{ + struct usnic_ib_pd *pd; + void *umem_pd; + + usnic_dbg("\n"); + + pd = kzalloc(sizeof(*pd), GFP_KERNEL); + if (!pd) + return ERR_PTR(-ENOMEM); + + umem_pd = pd->umem_pd = usnic_uiom_alloc_pd(); + if (IS_ERR_OR_NULL(umem_pd)) { + kfree(pd); + return ERR_PTR(umem_pd ? PTR_ERR(umem_pd) : -ENOMEM); + } + + usnic_info("domain 0x%p allocated for context 0x%p and device %s\n", + pd, context, ibdev->name); + return &pd->ibpd; +} + +int usnic_ib_dealloc_pd(struct ib_pd *pd) +{ + usnic_info("freeing domain 0x%p\n", pd); + + usnic_uiom_dealloc_pd((to_upd(pd))->umem_pd); + kfree(pd); + return 0; +} + +struct ib_qp *usnic_ib_create_qp(struct ib_pd *pd, + struct ib_qp_init_attr *init_attr, + struct ib_udata *udata) +{ + int err; + struct usnic_ib_dev *us_ibdev; + struct usnic_ib_qp_grp *qp_grp; + struct usnic_ib_ucontext *ucontext; + int cq_cnt; + struct usnic_vnic_res_spec res_spec; + struct usnic_ib_create_qp_cmd cmd; + struct usnic_transport_spec trans_spec; + + usnic_dbg("\n"); + + ucontext = to_uucontext(pd->uobject->context); + us_ibdev = to_usdev(pd->device); + + err = ib_copy_from_udata(&cmd, udata, sizeof(cmd)); + if (err) { + usnic_err("%s: cannot copy udata for create_qp\n", + us_ibdev->ib_dev.name); + return ERR_PTR(-EINVAL); + } + + err = create_qp_validate_user_data(cmd); + if (err) { + usnic_err("%s: Failed to validate user data\n", + us_ibdev->ib_dev.name); + return ERR_PTR(-EINVAL); + } + + if (init_attr->qp_type != IB_QPT_UD) { + usnic_err("%s asked to make a non-UD QP: %d\n", + us_ibdev->ib_dev.name, init_attr->qp_type); + return ERR_PTR(-EINVAL); + } + + trans_spec = cmd.spec; + mutex_lock(&us_ibdev->usdev_lock); + cq_cnt = (init_attr->send_cq == init_attr->recv_cq) ? 1 : 2; + res_spec = min_transport_spec[trans_spec.trans_type]; + usnic_vnic_res_spec_update(&res_spec, USNIC_VNIC_RES_TYPE_CQ, cq_cnt); + qp_grp = find_free_vf_and_create_qp_grp(us_ibdev, to_upd(pd), + &trans_spec, + &res_spec); + if (IS_ERR_OR_NULL(qp_grp)) { + err = qp_grp ? PTR_ERR(qp_grp) : -ENOMEM; + goto out_release_mutex; + } + + err = usnic_ib_fill_create_qp_resp(qp_grp, udata); + if (err) { + err = -EBUSY; + goto out_release_qp_grp; + } + + qp_grp->ctx = ucontext; + list_add_tail(&qp_grp->link, &ucontext->qp_grp_list); + usnic_ib_log_vf(qp_grp->vf); + mutex_unlock(&us_ibdev->usdev_lock); + return &qp_grp->ibqp; + +out_release_qp_grp: + qp_grp_destroy(qp_grp); +out_release_mutex: + mutex_unlock(&us_ibdev->usdev_lock); + return ERR_PTR(err); +} + +int usnic_ib_destroy_qp(struct ib_qp *qp) +{ + struct usnic_ib_qp_grp *qp_grp; + struct usnic_ib_vf *vf; + + usnic_dbg("\n"); + + qp_grp = to_uqp_grp(qp); + vf = qp_grp->vf; + mutex_lock(&vf->pf->usdev_lock); + if (usnic_ib_qp_grp_modify(qp_grp, IB_QPS_RESET, NULL)) { + usnic_err("Failed to move qp grp %u to reset\n", + qp_grp->grp_id); + } + + list_del(&qp_grp->link); + qp_grp_destroy(qp_grp); + mutex_unlock(&vf->pf->usdev_lock); + + return 0; +} + +int usnic_ib_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, + int attr_mask, struct ib_udata *udata) +{ + struct usnic_ib_qp_grp *qp_grp; + int status; + usnic_dbg("\n"); + + qp_grp = to_uqp_grp(ibqp); + + /* TODO: Future Support All States */ + mutex_lock(&qp_grp->vf->pf->usdev_lock); + if ((attr_mask & IB_QP_STATE) && attr->qp_state == IB_QPS_INIT) { + status = usnic_ib_qp_grp_modify(qp_grp, IB_QPS_INIT, NULL); + } else if ((attr_mask & IB_QP_STATE) && attr->qp_state == IB_QPS_RTR) { + status = usnic_ib_qp_grp_modify(qp_grp, IB_QPS_RTR, NULL); + } else if ((attr_mask & IB_QP_STATE) && attr->qp_state == IB_QPS_RTS) { + status = usnic_ib_qp_grp_modify(qp_grp, IB_QPS_RTS, NULL); + } else { + usnic_err("Unexpected combination mask: %u state: %u\n", + attr_mask & IB_QP_STATE, attr->qp_state); + status = -EINVAL; + } + + mutex_unlock(&qp_grp->vf->pf->usdev_lock); + return status; +} + +struct ib_cq *usnic_ib_create_cq(struct ib_device *ibdev, int entries, + int vector, struct ib_ucontext *context, + struct ib_udata *udata) +{ + struct ib_cq *cq; + + usnic_dbg("\n"); + cq = kzalloc(sizeof(*cq), GFP_KERNEL); + if (!cq) + return ERR_PTR(-EBUSY); + + return cq; +} + +int usnic_ib_destroy_cq(struct ib_cq *cq) +{ + usnic_dbg("\n"); + kfree(cq); + return 0; +} + +struct ib_mr *usnic_ib_reg_mr(struct ib_pd *pd, u64 start, u64 length, + u64 virt_addr, int access_flags, + struct ib_udata *udata) +{ + struct usnic_ib_mr *mr; + int err; + + usnic_dbg("start 0x%llx va 0x%llx length 0x%llx\n", start, + virt_addr, length); + + mr = kzalloc(sizeof(*mr), GFP_KERNEL); + if (IS_ERR_OR_NULL(mr)) + return ERR_PTR(mr ? PTR_ERR(mr) : -ENOMEM); + + mr->umem = usnic_uiom_reg_get(to_upd(pd)->umem_pd, start, length, + access_flags, 0); + if (IS_ERR_OR_NULL(mr->umem)) { + err = mr->umem ? PTR_ERR(mr->umem) : -EFAULT; + goto err_free; + } + + mr->ibmr.lkey = mr->ibmr.rkey = 0; + return &mr->ibmr; + +err_free: + kfree(mr); + return ERR_PTR(err); +} + +int usnic_ib_dereg_mr(struct ib_mr *ibmr) +{ + struct usnic_ib_mr *mr = to_umr(ibmr); + + usnic_dbg("va 0x%lx length 0x%zx\n", mr->umem->va, mr->umem->length); + + usnic_uiom_reg_release(mr->umem, ibmr->pd->uobject->context->closing); + kfree(mr); + return 0; +} + +struct ib_ucontext *usnic_ib_alloc_ucontext(struct ib_device *ibdev, + struct ib_udata *udata) +{ + struct usnic_ib_ucontext *context; + struct usnic_ib_dev *us_ibdev = to_usdev(ibdev); + usnic_dbg("\n"); + + context = kmalloc(sizeof(*context), GFP_KERNEL); + if (!context) + return ERR_PTR(-ENOMEM); + + INIT_LIST_HEAD(&context->qp_grp_list); + mutex_lock(&us_ibdev->usdev_lock); + list_add_tail(&context->link, &us_ibdev->ctx_list); + mutex_unlock(&us_ibdev->usdev_lock); + + return &context->ibucontext; +} + +int usnic_ib_dealloc_ucontext(struct ib_ucontext *ibcontext) +{ + struct usnic_ib_ucontext *context = to_uucontext(ibcontext); + struct usnic_ib_dev *us_ibdev = to_usdev(ibcontext->device); + usnic_dbg("\n"); + + mutex_lock(&us_ibdev->usdev_lock); + BUG_ON(!list_empty(&context->qp_grp_list)); + list_del(&context->link); + mutex_unlock(&us_ibdev->usdev_lock); + kfree(context); + return 0; +} + +int usnic_ib_mmap(struct ib_ucontext *context, + struct vm_area_struct *vma) +{ + struct usnic_ib_ucontext *uctx = to_ucontext(context); + struct usnic_ib_dev *us_ibdev; + struct usnic_ib_qp_grp *qp_grp; + struct usnic_ib_vf *vf; + struct vnic_dev_bar *bar; + dma_addr_t bus_addr; + unsigned int len; + unsigned int vfid; + + usnic_dbg("\n"); + + us_ibdev = to_usdev(context->device); + vma->vm_flags |= VM_IO; + vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); + vfid = vma->vm_pgoff; + usnic_dbg("Page Offset %lu PAGE_SHIFT %u VFID %u\n", + vma->vm_pgoff, PAGE_SHIFT, vfid); + + mutex_lock(&us_ibdev->usdev_lock); + list_for_each_entry(qp_grp, &uctx->qp_grp_list, link) { + vf = qp_grp->vf; + if (usnic_vnic_get_index(vf->vnic) == vfid) { + bar = usnic_vnic_get_bar(vf->vnic, 0); + if ((vma->vm_end - vma->vm_start) != bar->len) { + usnic_err("Bar0 Len %lu - Request map %lu\n", + bar->len, + vma->vm_end - vma->vm_start); + mutex_unlock(&us_ibdev->usdev_lock); + return -EINVAL; + } + bus_addr = bar->bus_addr; + len = bar->len; + usnic_dbg("bus: %pa vaddr: %p size: %ld\n", + &bus_addr, bar->vaddr, bar->len); + mutex_unlock(&us_ibdev->usdev_lock); + + return remap_pfn_range(vma, + vma->vm_start, + bus_addr >> PAGE_SHIFT, + len, vma->vm_page_prot); + } + } + + mutex_unlock(&us_ibdev->usdev_lock); + usnic_err("No VF %u found\n", vfid); + return -EINVAL; +} + +/* In ib callbacks section - Start of stub funcs */ +struct ib_ah *usnic_ib_create_ah(struct ib_pd *pd, + struct ib_ah_attr *ah_attr) +{ + usnic_dbg("\n"); + return ERR_PTR(-EPERM); +} + +int usnic_ib_destroy_ah(struct ib_ah *ah) +{ + usnic_dbg("\n"); + return -EINVAL; +} + +int usnic_ib_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr, + struct ib_send_wr **bad_wr) +{ + usnic_dbg("\n"); + return -EINVAL; +} + +int usnic_ib_post_recv(struct ib_qp *ibqp, struct ib_recv_wr *wr, + struct ib_recv_wr **bad_wr) +{ + usnic_dbg("\n"); + return -EINVAL; +} + +int usnic_ib_poll_cq(struct ib_cq *ibcq, int num_entries, + struct ib_wc *wc) +{ + usnic_dbg("\n"); + return -EINVAL; +} + +int usnic_ib_req_notify_cq(struct ib_cq *cq, + enum ib_cq_notify_flags flags) +{ + usnic_dbg("\n"); + return -EINVAL; +} + +struct ib_mr *usnic_ib_get_dma_mr(struct ib_pd *pd, int acc) +{ + usnic_dbg("\n"); + return ERR_PTR(-ENOMEM); +} + + +/* In ib callbacks section - End of stub funcs */ +/* End of ib callbacks section */ --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_ib_verbs.h +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_ib_verbs.h @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef USNIC_IB_VERBS_H_ +#define USNIC_IB_VERBS_H_ + +#include "usnic_ib.h" + +enum rdma_link_layer usnic_ib_port_link_layer(struct ib_device *device, + u8 port_num); +int usnic_ib_query_device(struct ib_device *ibdev, + struct ib_device_attr *props); +int usnic_ib_query_port(struct ib_device *ibdev, u8 port, + struct ib_port_attr *props); +int usnic_ib_query_qp(struct ib_qp *qp, struct ib_qp_attr *qp_attr, + int qp_attr_mask, + struct ib_qp_init_attr *qp_init_attr); +int usnic_ib_query_gid(struct ib_device *ibdev, u8 port, int index, + union ib_gid *gid); +int usnic_ib_query_pkey(struct ib_device *ibdev, u8 port, u16 index, + u16 *pkey); +struct ib_pd *usnic_ib_alloc_pd(struct ib_device *ibdev, + struct ib_ucontext *context, + struct ib_udata *udata); +int usnic_ib_dealloc_pd(struct ib_pd *pd); +struct ib_qp *usnic_ib_create_qp(struct ib_pd *pd, + struct ib_qp_init_attr *init_attr, + struct ib_udata *udata); +int usnic_ib_destroy_qp(struct ib_qp *qp); +int usnic_ib_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, + int attr_mask, struct ib_udata *udata); +struct ib_cq *usnic_ib_create_cq(struct ib_device *ibdev, int entries, + int vector, struct ib_ucontext *context, + struct ib_udata *udata); +int usnic_ib_destroy_cq(struct ib_cq *cq); +struct ib_mr *usnic_ib_reg_mr(struct ib_pd *pd, u64 start, u64 length, + u64 virt_addr, int access_flags, + struct ib_udata *udata); +int usnic_ib_dereg_mr(struct ib_mr *ibmr); +struct ib_ucontext *usnic_ib_alloc_ucontext(struct ib_device *ibdev, + struct ib_udata *udata); +int usnic_ib_dealloc_ucontext(struct ib_ucontext *ibcontext); +int usnic_ib_mmap(struct ib_ucontext *context, + struct vm_area_struct *vma); +struct ib_ah *usnic_ib_create_ah(struct ib_pd *pd, + struct ib_ah_attr *ah_attr); +int usnic_ib_destroy_ah(struct ib_ah *ah); +int usnic_ib_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr, + struct ib_send_wr **bad_wr); +int usnic_ib_post_recv(struct ib_qp *ibqp, struct ib_recv_wr *wr, + struct ib_recv_wr **bad_wr); +int usnic_ib_poll_cq(struct ib_cq *ibcq, int num_entries, + struct ib_wc *wc); +int usnic_ib_req_notify_cq(struct ib_cq *cq, + enum ib_cq_notify_flags flags); +struct ib_mr *usnic_ib_get_dma_mr(struct ib_pd *pd, int acc); +#endif /* !USNIC_IB_VERBS_H */ --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_log.h +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_log.h @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef USNIC_LOG_H_ +#define USNIC_LOG_H_ + +#include "usnic.h" + +extern unsigned int usnic_log_lvl; + +#define USNIC_LOG_LVL_NONE (0) +#define USNIC_LOG_LVL_ERR (1) +#define USNIC_LOG_LVL_INFO (2) +#define USNIC_LOG_LVL_DBG (3) + +#define usnic_printk(lvl, args...) \ + do { \ + printk(lvl "%s:%s:%d: ", DRV_NAME, __func__, \ + __LINE__); \ + printk(args); \ + } while (0) + +#define usnic_dbg(args...) \ + do { \ + if (unlikely(usnic_log_lvl >= USNIC_LOG_LVL_DBG)) { \ + usnic_printk(KERN_INFO, args); \ + } \ +} while (0) + +#define usnic_info(args...) \ +do { \ + if (usnic_log_lvl >= USNIC_LOG_LVL_INFO) { \ + usnic_printk(KERN_INFO, args); \ + } \ +} while (0) + +#define usnic_err(args...) \ + do { \ + if (usnic_log_lvl >= USNIC_LOG_LVL_ERR) { \ + usnic_printk(KERN_ERR, args); \ + } \ + } while (0) +#endif /* !USNIC_LOG_H_ */ --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_transport.c +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_transport.c @@ -0,0 +1,202 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ +#include +#include +#include +#include +#include + +#include "usnic_transport.h" +#include "usnic_log.h" + +/* ROCE */ +static unsigned long *roce_bitmap; +static u16 roce_next_port = 1; +#define ROCE_BITMAP_SZ ((1 << (8 /*CHAR_BIT*/ * sizeof(u16)))/8 /*CHAR BIT*/) +static DEFINE_SPINLOCK(roce_bitmap_lock); + +const char *usnic_transport_to_str(enum usnic_transport_type type) +{ + switch (type) { + case USNIC_TRANSPORT_UNKNOWN: + return "Unknown"; + case USNIC_TRANSPORT_ROCE_CUSTOM: + return "roce custom"; + case USNIC_TRANSPORT_IPV4_UDP: + return "IPv4 UDP"; + case USNIC_TRANSPORT_MAX: + return "Max?"; + default: + return "Not known"; + } +} + +int usnic_transport_sock_to_str(char *buf, int buf_sz, + struct socket *sock) +{ + int err; + uint32_t addr; + uint16_t port; + int proto; + + memset(buf, 0, buf_sz); + err = usnic_transport_sock_get_addr(sock, &proto, &addr, &port); + if (err) + return 0; + + return scnprintf(buf, buf_sz, "Proto:%u Addr:%pI4h Port:%hu", + proto, &addr, port); +} + +/* + * reserve a port number. if "0" specified, we will try to pick one + * starting at roce_next_port. roce_next_port will take on the values + * 1..4096 + */ +u16 usnic_transport_rsrv_port(enum usnic_transport_type type, u16 port_num) +{ + if (type == USNIC_TRANSPORT_ROCE_CUSTOM) { + spin_lock(&roce_bitmap_lock); + if (!port_num) { + port_num = bitmap_find_next_zero_area(roce_bitmap, + ROCE_BITMAP_SZ, + roce_next_port /* start */, + 1 /* nr */, + 0 /* align */); + roce_next_port = (port_num & 4095) + 1; + } else if (test_bit(port_num, roce_bitmap)) { + usnic_err("Failed to allocate port for %s\n", + usnic_transport_to_str(type)); + spin_unlock(&roce_bitmap_lock); + goto out_fail; + } + bitmap_set(roce_bitmap, port_num, 1); + spin_unlock(&roce_bitmap_lock); + } else { + usnic_err("Failed to allocate port - transport %s unsupported\n", + usnic_transport_to_str(type)); + goto out_fail; + } + + usnic_dbg("Allocating port %hu for %s\n", port_num, + usnic_transport_to_str(type)); + return port_num; + +out_fail: + return 0; +} + +void usnic_transport_unrsrv_port(enum usnic_transport_type type, u16 port_num) +{ + if (type == USNIC_TRANSPORT_ROCE_CUSTOM) { + spin_lock(&roce_bitmap_lock); + if (!port_num) { + usnic_err("Unreserved unvalid port num 0 for %s\n", + usnic_transport_to_str(type)); + goto out_roce_custom; + } + + if (!test_bit(port_num, roce_bitmap)) { + usnic_err("Unreserving invalid %hu for %s\n", + port_num, + usnic_transport_to_str(type)); + goto out_roce_custom; + } + bitmap_clear(roce_bitmap, port_num, 1); + usnic_dbg("Freeing port %hu for %s\n", port_num, + usnic_transport_to_str(type)); +out_roce_custom: + spin_unlock(&roce_bitmap_lock); + } else { + usnic_err("Freeing invalid port %hu for %d\n", port_num, type); + } +} + +struct socket *usnic_transport_get_socket(int sock_fd) +{ + struct socket *sock; + int err; + char buf[25]; + + /* sockfd_lookup will internally do a fget */ + sock = sockfd_lookup(sock_fd, &err); + if (!sock) { + usnic_err("Unable to lookup socket for fd %d with err %d\n", + sock_fd, err); + return ERR_PTR(-ENOENT); + } + + usnic_transport_sock_to_str(buf, sizeof(buf), sock); + usnic_dbg("Get sock %s\n", buf); + + return sock; +} + +void usnic_transport_put_socket(struct socket *sock) +{ + char buf[100]; + + usnic_transport_sock_to_str(buf, sizeof(buf), sock); + usnic_dbg("Put sock %s\n", buf); + sockfd_put(sock); +} + +int usnic_transport_sock_get_addr(struct socket *sock, int *proto, + uint32_t *addr, uint16_t *port) +{ + int len; + int err; + struct sockaddr_in sock_addr; + + err = sock->ops->getname(sock, + (struct sockaddr *)&sock_addr, + &len, 0); + if (err) + return err; + + if (sock_addr.sin_family != AF_INET) + return -EINVAL; + + if (proto) + *proto = sock->sk->sk_protocol; + if (port) + *port = ntohs(((struct sockaddr_in *)&sock_addr)->sin_port); + if (addr) + *addr = ntohl(((struct sockaddr_in *) + &sock_addr)->sin_addr.s_addr); + + return 0; +} + +int usnic_transport_init(void) +{ + roce_bitmap = kzalloc(ROCE_BITMAP_SZ, GFP_KERNEL); + if (!roce_bitmap) { + usnic_err("Failed to allocate bit map"); + return -ENOMEM; + } + + /* Do not ever allocate bit 0, hence set it here */ + bitmap_set(roce_bitmap, 0, 1); + return 0; +} + +void usnic_transport_fini(void) +{ + kfree(roce_bitmap); +} --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_transport.h +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_transport.h @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef USNIC_TRANSPORT_H_ +#define USNIC_TRANSPORT_H_ + +#include "usnic_abi.h" + +const char *usnic_transport_to_str(enum usnic_transport_type trans_type); +/* + * Returns number of bytes written, excluding null terminator. If + * nothing was written, the function returns 0. + */ +int usnic_transport_sock_to_str(char *buf, int buf_sz, + struct socket *sock); +/* + * Reserve a port. If "port_num" is set, then the function will try + * to reserve that particular port. + */ +u16 usnic_transport_rsrv_port(enum usnic_transport_type type, u16 port_num); +void usnic_transport_unrsrv_port(enum usnic_transport_type type, u16 port_num); +/* + * Do a fget on the socket refered to by sock_fd and returns the socket. + * Socket will not be destroyed before usnic_transport_put_socket has + * been called. + */ +struct socket *usnic_transport_get_socket(int sock_fd); +void usnic_transport_put_socket(struct socket *sock); +/* + * Call usnic_transport_get_socket before calling *_sock_get_addr + */ +int usnic_transport_sock_get_addr(struct socket *sock, int *proto, + uint32_t *addr, uint16_t *port); +int usnic_transport_init(void); +void usnic_transport_fini(void); +#endif /* !USNIC_TRANSPORT_H */ --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_uiom.c +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_uiom.c @@ -0,0 +1,604 @@ +/* + * Copyright (c) 2005 Topspin Communications. All rights reserved. + * Copyright (c) 2005 Mellanox Technologies. All rights reserved. + * Copyright (c) 2013 Cisco Systems. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * OpenIB.org BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "usnic_log.h" +#include "usnic_uiom.h" +#include "usnic_uiom_interval_tree.h" + +static struct workqueue_struct *usnic_uiom_wq; + +#define USNIC_UIOM_PAGE_CHUNK \ + ((PAGE_SIZE - offsetof(struct usnic_uiom_chunk, page_list)) /\ + ((void *) &((struct usnic_uiom_chunk *) 0)->page_list[1] - \ + (void *) &((struct usnic_uiom_chunk *) 0)->page_list[0])) + +static void usnic_uiom_reg_account(struct work_struct *work) +{ + struct usnic_uiom_reg *umem = container_of(work, + struct usnic_uiom_reg, work); + + down_write(&umem->mm->mmap_sem); + umem->mm->locked_vm -= umem->diff; + up_write(&umem->mm->mmap_sem); + mmput(umem->mm); + kfree(umem); +} + +static int usnic_uiom_dma_fault(struct iommu_domain *domain, + struct device *dev, + unsigned long iova, int flags, + void *token) +{ + usnic_err("Device %s iommu fault domain 0x%pK va 0x%lx flags 0x%x\n", + dev_name(dev), + domain, iova, flags); + return -ENOSYS; +} + +static void usnic_uiom_put_pages(struct list_head *chunk_list, int dirty) +{ + struct usnic_uiom_chunk *chunk, *tmp; + struct page *page; + struct scatterlist *sg; + int i; + dma_addr_t pa; + + list_for_each_entry_safe(chunk, tmp, chunk_list, list) { + for_each_sg(chunk->page_list, sg, chunk->nents, i) { + page = sg_page(sg); + pa = sg_phys(sg); + if (dirty) + set_page_dirty_lock(page); + put_page(page); + usnic_dbg("pa: %pa\n", &pa); + } + kfree(chunk); + } +} + +static int usnic_uiom_get_pages(unsigned long addr, size_t size, int writable, + int dmasync, struct list_head *chunk_list) +{ + struct page **page_list; + struct scatterlist *sg; + struct usnic_uiom_chunk *chunk; + unsigned long locked; + unsigned long lock_limit; + unsigned long cur_base; + unsigned long npages; + int ret; + int off; + int i; + int flags; + dma_addr_t pa; + DEFINE_DMA_ATTRS(attrs); + + if (dmasync) + dma_set_attr(DMA_ATTR_WRITE_BARRIER, &attrs); + + if (!can_do_mlock()) + return -EPERM; + + INIT_LIST_HEAD(chunk_list); + + page_list = (struct page **) __get_free_page(GFP_KERNEL); + if (!page_list) + return -ENOMEM; + + npages = PAGE_ALIGN(size + (addr & ~PAGE_MASK)) >> PAGE_SHIFT; + + down_write(¤t->mm->mmap_sem); + + locked = npages + current->mm->locked_vm; + lock_limit = rlimit(RLIMIT_MEMLOCK) >> PAGE_SHIFT; + + if ((locked > lock_limit) && !capable(CAP_IPC_LOCK)) { + ret = -ENOMEM; + goto out; + } + + flags = IOMMU_READ | IOMMU_CACHE; + flags |= (writable) ? IOMMU_WRITE : 0; + cur_base = addr & PAGE_MASK; + ret = 0; + + while (npages) { + ret = get_user_pages(current, current->mm, cur_base, + min_t(unsigned long, npages, + PAGE_SIZE / sizeof(struct page *)), + 1, !writable, page_list, NULL); + + if (ret < 0) + goto out; + + npages -= ret; + off = 0; + + while (ret) { + chunk = kmalloc(sizeof(*chunk) + + sizeof(struct scatterlist) * + min_t(int, ret, USNIC_UIOM_PAGE_CHUNK), + GFP_KERNEL); + if (!chunk) { + ret = -ENOMEM; + goto out; + } + + chunk->nents = min_t(int, ret, USNIC_UIOM_PAGE_CHUNK); + sg_init_table(chunk->page_list, chunk->nents); + for_each_sg(chunk->page_list, sg, chunk->nents, i) { + sg_set_page(sg, page_list[i + off], + PAGE_SIZE, 0); + pa = sg_phys(sg); + usnic_dbg("va: 0x%lx pa: %pa\n", + cur_base + i*PAGE_SIZE, &pa); + } + cur_base += chunk->nents * PAGE_SIZE; + ret -= chunk->nents; + off += chunk->nents; + list_add_tail(&chunk->list, chunk_list); + } + + ret = 0; + } + +out: + if (ret < 0) + usnic_uiom_put_pages(chunk_list, 0); + else + current->mm->locked_vm = locked; + + up_write(¤t->mm->mmap_sem); + free_page((unsigned long) page_list); + return ret; +} + +static void usnic_uiom_unmap_sorted_intervals(struct list_head *intervals, + struct usnic_uiom_pd *pd) +{ + struct usnic_uiom_interval_node *interval, *tmp; + long unsigned va, size; + + list_for_each_entry_safe(interval, tmp, intervals, link) { + va = interval->start << PAGE_SHIFT; + size = ((interval->last - interval->start) + 1) << PAGE_SHIFT; + while (size > 0) { + /* Workaround for RH 970401 */ + usnic_dbg("va 0x%lx size 0x%lx", va, PAGE_SIZE); + iommu_unmap(pd->domain, va, PAGE_SIZE); + va += PAGE_SIZE; + size -= PAGE_SIZE; + } + } +} + +static void __usnic_uiom_reg_release(struct usnic_uiom_pd *pd, + struct usnic_uiom_reg *uiomr, + int dirty) +{ + int npages; + unsigned long vpn_start, vpn_last; + struct usnic_uiom_interval_node *interval, *tmp; + int writable = 0; + LIST_HEAD(rm_intervals); + + npages = PAGE_ALIGN(uiomr->length + uiomr->offset) >> PAGE_SHIFT; + vpn_start = (uiomr->va & PAGE_MASK) >> PAGE_SHIFT; + vpn_last = vpn_start + npages - 1; + + spin_lock(&pd->lock); + usnic_uiom_remove_interval(&pd->rb_root, vpn_start, + vpn_last, &rm_intervals); + usnic_uiom_unmap_sorted_intervals(&rm_intervals, pd); + + list_for_each_entry_safe(interval, tmp, &rm_intervals, link) { + if (interval->flags & IOMMU_WRITE) + writable = 1; + list_del(&interval->link); + kfree(interval); + } + + usnic_uiom_put_pages(&uiomr->chunk_list, dirty & writable); + spin_unlock(&pd->lock); +} + +static int usnic_uiom_map_sorted_intervals(struct list_head *intervals, + struct usnic_uiom_reg *uiomr) +{ + int i, err; + size_t size; + struct usnic_uiom_chunk *chunk; + struct usnic_uiom_interval_node *interval_node; + dma_addr_t pa; + dma_addr_t pa_start = 0; + dma_addr_t pa_end = 0; + long int va_start = -EINVAL; + struct usnic_uiom_pd *pd = uiomr->pd; + long int va = uiomr->va & PAGE_MASK; + int flags = IOMMU_READ | IOMMU_CACHE; + + flags |= (uiomr->writable) ? IOMMU_WRITE : 0; + chunk = list_first_entry(&uiomr->chunk_list, struct usnic_uiom_chunk, + list); + list_for_each_entry(interval_node, intervals, link) { +iter_chunk: + for (i = 0; i < chunk->nents; i++, va += PAGE_SIZE) { + pa = sg_phys(&chunk->page_list[i]); + if ((va >> PAGE_SHIFT) < interval_node->start) + continue; + + if ((va >> PAGE_SHIFT) == interval_node->start) { + /* First page of the interval */ + va_start = va; + pa_start = pa; + pa_end = pa; + } + + WARN_ON(va_start == -EINVAL); + + if ((pa_end + PAGE_SIZE != pa) && + (pa != pa_start)) { + /* PAs are not contiguous */ + size = pa_end - pa_start + PAGE_SIZE; + usnic_dbg("va 0x%lx pa %pa size 0x%zx flags 0x%x", + va_start, &pa_start, size, flags); + err = iommu_map(pd->domain, va_start, pa_start, + size, flags); + if (err) { + usnic_err("Failed to map va 0x%lx pa 0x%pa size 0x%zx with err %d\n", + va_start, &pa_start, size, err); + goto err_out; + } + va_start = va; + pa_start = pa; + pa_end = pa; + } + + if ((va >> PAGE_SHIFT) == interval_node->last) { + /* Last page of the interval */ + size = pa - pa_start + PAGE_SIZE; + usnic_dbg("va 0x%lx pa %pa size 0x%zx flags 0x%x\n", + va_start, &pa_start, size, flags); + err = iommu_map(pd->domain, va_start, pa_start, + size, flags); + if (err) { + usnic_err("Failed to map va 0x%lx pa %pa size 0x%zx with err %d\n", + va_start, &pa_start, size, err); + goto err_out; + } + break; + } + + if (pa != pa_start) + pa_end += PAGE_SIZE; + } + + if (i == chunk->nents) { + /* + * Hit last entry of the chunk, + * hence advance to next chunk + */ + chunk = list_first_entry(&chunk->list, + struct usnic_uiom_chunk, + list); + goto iter_chunk; + } + } + + return 0; + +err_out: + usnic_uiom_unmap_sorted_intervals(intervals, pd); + return err; +} + +struct usnic_uiom_reg *usnic_uiom_reg_get(struct usnic_uiom_pd *pd, + unsigned long addr, size_t size, + int writable, int dmasync) +{ + struct usnic_uiom_reg *uiomr; + unsigned long va_base, vpn_start, vpn_last; + unsigned long npages; + int offset, err; + LIST_HEAD(sorted_diff_intervals); + + /* + * Intel IOMMU map throws an error if a translation entry is + * changed from read to write. This module may not unmap + * and then remap the entry after fixing the permission + * b/c this open up a small windows where hw DMA may page fault + * Hence, make all entries to be writable. + */ + writable = 1; + + va_base = addr & PAGE_MASK; + offset = addr & ~PAGE_MASK; + npages = PAGE_ALIGN(size + offset) >> PAGE_SHIFT; + vpn_start = (addr & PAGE_MASK) >> PAGE_SHIFT; + vpn_last = vpn_start + npages - 1; + + uiomr = kmalloc(sizeof(*uiomr), GFP_KERNEL); + if (!uiomr) + return ERR_PTR(-ENOMEM); + + uiomr->va = va_base; + uiomr->offset = offset; + uiomr->length = size; + uiomr->writable = writable; + uiomr->pd = pd; + + err = usnic_uiom_get_pages(addr, size, writable, dmasync, + &uiomr->chunk_list); + if (err) { + usnic_err("Failed get_pages vpn [0x%lx,0x%lx] err %d\n", + vpn_start, vpn_last, err); + goto out_free_uiomr; + } + + spin_lock(&pd->lock); + err = usnic_uiom_get_intervals_diff(vpn_start, vpn_last, + (writable) ? IOMMU_WRITE : 0, + IOMMU_WRITE, + &pd->rb_root, + &sorted_diff_intervals); + if (err) { + usnic_err("Failed disjoint interval vpn [0x%lx,0x%lx] err %d\n", + vpn_start, vpn_last, err); + goto out_put_pages; + } + + err = usnic_uiom_map_sorted_intervals(&sorted_diff_intervals, uiomr); + if (err) { + usnic_err("Failed map interval vpn [0x%lx,0x%lx] err %d\n", + vpn_start, vpn_last, err); + goto out_put_intervals; + + } + + err = usnic_uiom_insert_interval(&pd->rb_root, vpn_start, vpn_last, + (writable) ? IOMMU_WRITE : 0); + if (err) { + usnic_err("Failed insert interval vpn [0x%lx,0x%lx] err %d\n", + vpn_start, vpn_last, err); + goto out_unmap_intervals; + } + + usnic_uiom_put_interval_set(&sorted_diff_intervals); + spin_unlock(&pd->lock); + + return uiomr; + +out_unmap_intervals: + usnic_uiom_unmap_sorted_intervals(&sorted_diff_intervals, pd); +out_put_intervals: + usnic_uiom_put_interval_set(&sorted_diff_intervals); +out_put_pages: + usnic_uiom_put_pages(&uiomr->chunk_list, 0); + spin_unlock(&pd->lock); +out_free_uiomr: + kfree(uiomr); + return ERR_PTR(err); +} + +void usnic_uiom_reg_release(struct usnic_uiom_reg *uiomr, int closing) +{ + struct mm_struct *mm; + unsigned long diff; + + __usnic_uiom_reg_release(uiomr->pd, uiomr, 1); + + mm = get_task_mm(current); + if (!mm) { + kfree(uiomr); + return; + } + + diff = PAGE_ALIGN(uiomr->length + uiomr->offset) >> PAGE_SHIFT; + + /* + * We may be called with the mm's mmap_sem already held. This + * can happen when a userspace munmap() is the call that drops + * the last reference to our file and calls our release + * method. If there are memory regions to destroy, we'll end + * up here and not be able to take the mmap_sem. In that case + * we defer the vm_locked accounting to the system workqueue. + */ + if (closing) { + if (!down_write_trylock(&mm->mmap_sem)) { + INIT_WORK(&uiomr->work, usnic_uiom_reg_account); + uiomr->mm = mm; + uiomr->diff = diff; + + queue_work(usnic_uiom_wq, &uiomr->work); + return; + } + } else + down_write(&mm->mmap_sem); + + current->mm->locked_vm -= diff; + up_write(&mm->mmap_sem); + mmput(mm); + kfree(uiomr); +} + +struct usnic_uiom_pd *usnic_uiom_alloc_pd(void) +{ + struct usnic_uiom_pd *pd; + void *domain; + + pd = kzalloc(sizeof(*pd), GFP_KERNEL); + if (!pd) + return ERR_PTR(-ENOMEM); + + pd->domain = domain = iommu_domain_alloc(&pci_bus_type); + if (IS_ERR_OR_NULL(domain)) { + usnic_err("Failed to allocate IOMMU domain with err %ld\n", + PTR_ERR(pd->domain)); + kfree(pd); + return ERR_PTR(domain ? PTR_ERR(domain) : -ENOMEM); + } + + iommu_set_fault_handler(pd->domain, usnic_uiom_dma_fault, NULL); + + spin_lock_init(&pd->lock); + INIT_LIST_HEAD(&pd->devs); + + return pd; +} + +void usnic_uiom_dealloc_pd(struct usnic_uiom_pd *pd) +{ + iommu_domain_free(pd->domain); + kfree(pd); +} + +int usnic_uiom_attach_dev_to_pd(struct usnic_uiom_pd *pd, struct device *dev) +{ + struct usnic_uiom_dev *uiom_dev; + int err; + + uiom_dev = kzalloc(sizeof(*uiom_dev), GFP_ATOMIC); + if (!uiom_dev) + return -ENOMEM; + uiom_dev->dev = dev; + + err = iommu_attach_device(pd->domain, dev); + if (err) + goto out_free_dev; + + if (!iommu_domain_has_cap(pd->domain, IOMMU_CAP_CACHE_COHERENCY)) { + usnic_err("IOMMU of %s does not support cache coherency\n", + dev_name(dev)); + err = -EINVAL; + goto out_detach_device; + } + + spin_lock(&pd->lock); + list_add_tail(&uiom_dev->link, &pd->devs); + pd->dev_cnt++; + spin_unlock(&pd->lock); + + return 0; + +out_detach_device: + iommu_detach_device(pd->domain, dev); +out_free_dev: + kfree(uiom_dev); + return err; +} + +void usnic_uiom_detach_dev_from_pd(struct usnic_uiom_pd *pd, struct device *dev) +{ + struct usnic_uiom_dev *uiom_dev; + int found = 0; + + spin_lock(&pd->lock); + list_for_each_entry(uiom_dev, &pd->devs, link) { + if (uiom_dev->dev == dev) { + found = 1; + break; + } + } + + if (!found) { + usnic_err("Unable to free dev %s - not found\n", + dev_name(dev)); + spin_unlock(&pd->lock); + return; + } + + list_del(&uiom_dev->link); + pd->dev_cnt--; + spin_unlock(&pd->lock); + + return iommu_detach_device(pd->domain, dev); +} + +struct device **usnic_uiom_get_dev_list(struct usnic_uiom_pd *pd) +{ + struct usnic_uiom_dev *uiom_dev; + struct device **devs; + int i = 0; + + spin_lock(&pd->lock); + devs = kcalloc(pd->dev_cnt + 1, sizeof(*devs), GFP_ATOMIC); + if (!devs) { + devs = ERR_PTR(-ENOMEM); + goto out; + } + + list_for_each_entry(uiom_dev, &pd->devs, link) { + devs[i++] = uiom_dev->dev; + } +out: + spin_unlock(&pd->lock); + return devs; +} + +void usnic_uiom_free_dev_list(struct device **devs) +{ + kfree(devs); +} + +int usnic_uiom_init(char *drv_name) +{ + if (!iommu_present(&pci_bus_type)) { + usnic_err("IOMMU required but not present or enabled. USNIC QPs will not function w/o enabling IOMMU\n"); + return -EPERM; + } + + usnic_uiom_wq = create_workqueue(drv_name); + if (!usnic_uiom_wq) { + usnic_err("Unable to alloc wq for drv %s\n", drv_name); + return -ENOMEM; + } + + return 0; +} + +void usnic_uiom_fini(void) +{ + flush_workqueue(usnic_uiom_wq); + destroy_workqueue(usnic_uiom_wq); +} --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_uiom.h +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_uiom.h @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef USNIC_UIOM_H_ +#define USNIC_UIOM_H_ + +#include +#include + +#include "usnic_uiom_interval_tree.h" + +#define USNIC_UIOM_READ (1) +#define USNIC_UIOM_WRITE (2) + +#define USNIC_UIOM_MAX_PD_CNT (1000) +#define USNIC_UIOM_MAX_MR_CNT (1000000) +#define USNIC_UIOM_MAX_MR_SIZE (~0UL) +#define USNIC_UIOM_PAGE_SIZE (PAGE_SIZE) + +struct usnic_uiom_dev { + struct device *dev; + struct list_head link; +}; + +struct usnic_uiom_pd { + struct iommu_domain *domain; + spinlock_t lock; + struct rb_root rb_root; + struct list_head devs; + int dev_cnt; +}; + +struct usnic_uiom_reg { + struct usnic_uiom_pd *pd; + unsigned long va; + size_t length; + int offset; + int page_size; + int writable; + struct list_head chunk_list; + struct work_struct work; + struct mm_struct *mm; + unsigned long diff; +}; + +struct usnic_uiom_chunk { + struct list_head list; + int nents; + struct scatterlist page_list[0]; +}; + +struct usnic_uiom_pd *usnic_uiom_alloc_pd(void); +void usnic_uiom_dealloc_pd(struct usnic_uiom_pd *pd); +int usnic_uiom_attach_dev_to_pd(struct usnic_uiom_pd *pd, struct device *dev); +void usnic_uiom_detach_dev_from_pd(struct usnic_uiom_pd *pd, + struct device *dev); +struct device **usnic_uiom_get_dev_list(struct usnic_uiom_pd *pd); +void usnic_uiom_free_dev_list(struct device **devs); +struct usnic_uiom_reg *usnic_uiom_reg_get(struct usnic_uiom_pd *pd, + unsigned long addr, size_t size, + int access, int dmasync); +void usnic_uiom_reg_release(struct usnic_uiom_reg *uiomr, int closing); +int usnic_uiom_init(char *drv_name); +void usnic_uiom_fini(void); +#endif /* USNIC_UIOM_H_ */ --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.c @@ -0,0 +1,236 @@ +#include +#include +#include +#include + +#include +#include "usnic_uiom_interval_tree.h" + +#define START(node) ((node)->start) +#define LAST(node) ((node)->last) + +#define MAKE_NODE(node, start, end, ref_cnt, flags, err, err_out) \ + do { \ + node = usnic_uiom_interval_node_alloc(start, \ + end, ref_cnt, flags); \ + if (!node) { \ + err = -ENOMEM; \ + goto err_out; \ + } \ + } while (0) + +#define MARK_FOR_ADD(node, list) (list_add_tail(&node->link, list)) + +#define MAKE_NODE_AND_APPEND(node, start, end, ref_cnt, flags, err, \ + err_out, list) \ + do { \ + MAKE_NODE(node, start, end, \ + ref_cnt, flags, err, \ + err_out); \ + MARK_FOR_ADD(node, list); \ + } while (0) + +#define FLAGS_EQUAL(flags1, flags2, mask) \ + (((flags1) & (mask)) == ((flags2) & (mask))) + +static struct usnic_uiom_interval_node* +usnic_uiom_interval_node_alloc(long int start, long int last, int ref_cnt, + int flags) +{ + struct usnic_uiom_interval_node *interval = kzalloc(sizeof(*interval), + GFP_ATOMIC); + if (!interval) + return NULL; + + interval->start = start; + interval->last = last; + interval->flags = flags; + interval->ref_cnt = ref_cnt; + + return interval; +} + +static int interval_cmp(void *priv, struct list_head *a, struct list_head *b) +{ + struct usnic_uiom_interval_node *node_a, *node_b; + + node_a = list_entry(a, struct usnic_uiom_interval_node, link); + node_b = list_entry(b, struct usnic_uiom_interval_node, link); + + /* long to int */ + if (node_a->start < node_b->start) + return -1; + else if (node_a->start > node_b->start) + return 1; + + return 0; +} + +static void +find_intervals_intersection_sorted(struct rb_root *root, unsigned long start, + unsigned long last, + struct list_head *list) +{ + struct usnic_uiom_interval_node *node; + + INIT_LIST_HEAD(list); + + for (node = usnic_uiom_interval_tree_iter_first(root, start, last); + node; + node = usnic_uiom_interval_tree_iter_next(node, start, last)) + list_add_tail(&node->link, list); + + list_sort(NULL, list, interval_cmp); +} + +int usnic_uiom_get_intervals_diff(unsigned long start, unsigned long last, + int flags, int flag_mask, + struct rb_root *root, + struct list_head *diff_set) +{ + struct usnic_uiom_interval_node *interval, *tmp; + int err = 0; + long int pivot = start; + LIST_HEAD(intersection_set); + + INIT_LIST_HEAD(diff_set); + + find_intervals_intersection_sorted(root, start, last, + &intersection_set); + + list_for_each_entry(interval, &intersection_set, link) { + if (pivot < interval->start) { + MAKE_NODE_AND_APPEND(tmp, pivot, interval->start - 1, + 1, flags, err, err_out, + diff_set); + pivot = interval->start; + } + + /* + * Invariant: Set [start, pivot] is either in diff_set or root, + * but not in both. + */ + + if (pivot > interval->last) { + continue; + } else if (pivot <= interval->last && + FLAGS_EQUAL(interval->flags, flags, + flag_mask)) { + pivot = interval->last + 1; + } + } + + if (pivot <= last) + MAKE_NODE_AND_APPEND(tmp, pivot, last, 1, flags, err, err_out, + diff_set); + + return 0; + +err_out: + list_for_each_entry_safe(interval, tmp, diff_set, link) { + list_del(&interval->link); + kfree(interval); + } + + return err; +} + +void usnic_uiom_put_interval_set(struct list_head *intervals) +{ + struct usnic_uiom_interval_node *interval, *tmp; + list_for_each_entry_safe(interval, tmp, intervals, link) + kfree(interval); +} + +int usnic_uiom_insert_interval(struct rb_root *root, unsigned long start, + unsigned long last, int flags) +{ + struct usnic_uiom_interval_node *interval, *tmp; + unsigned long istart, ilast; + int iref_cnt, iflags; + unsigned long lpivot = start; + int err = 0; + LIST_HEAD(to_add); + LIST_HEAD(intersection_set); + + find_intervals_intersection_sorted(root, start, last, + &intersection_set); + + list_for_each_entry(interval, &intersection_set, link) { + /* + * Invariant - lpivot is the left edge of next interval to be + * inserted + */ + istart = interval->start; + ilast = interval->last; + iref_cnt = interval->ref_cnt; + iflags = interval->flags; + + if (istart < lpivot) { + MAKE_NODE_AND_APPEND(tmp, istart, lpivot - 1, iref_cnt, + iflags, err, err_out, &to_add); + } else if (istart > lpivot) { + MAKE_NODE_AND_APPEND(tmp, lpivot, istart - 1, 1, flags, + err, err_out, &to_add); + lpivot = istart; + } else { + lpivot = istart; + } + + if (ilast > last) { + MAKE_NODE_AND_APPEND(tmp, lpivot, last, iref_cnt + 1, + iflags | flags, err, err_out, + &to_add); + MAKE_NODE_AND_APPEND(tmp, last + 1, ilast, iref_cnt, + iflags, err, err_out, &to_add); + } else { + MAKE_NODE_AND_APPEND(tmp, lpivot, ilast, iref_cnt + 1, + iflags | flags, err, err_out, + &to_add); + } + + lpivot = ilast + 1; + } + + if (lpivot <= last) + MAKE_NODE_AND_APPEND(tmp, lpivot, last, 1, flags, err, err_out, + &to_add); + + list_for_each_entry_safe(interval, tmp, &intersection_set, link) { + usnic_uiom_interval_tree_remove(interval, root); + kfree(interval); + } + + list_for_each_entry(interval, &to_add, link) + usnic_uiom_interval_tree_insert(interval, root); + + return 0; + +err_out: + list_for_each_entry_safe(interval, tmp, &to_add, link) + kfree(interval); + + return err; +} + +void usnic_uiom_remove_interval(struct rb_root *root, unsigned long start, + unsigned long last, struct list_head *removed) +{ + struct usnic_uiom_interval_node *interval; + + for (interval = usnic_uiom_interval_tree_iter_first(root, start, last); + interval; + interval = usnic_uiom_interval_tree_iter_next(interval, + start, + last)) { + if (--interval->ref_cnt == 0) + list_add_tail(&interval->link, removed); + } + + list_for_each_entry(interval, removed, link) + usnic_uiom_interval_tree_remove(interval, root); +} + +INTERVAL_TREE_DEFINE(struct usnic_uiom_interval_node, rb, + unsigned long, __subtree_last, + START, LAST, , usnic_uiom_interval_tree) --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.h +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_uiom_interval_tree.h @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef USNIC_UIOM_INTERVAL_TREE_H_ +#define USNIC_UIOM_INTERVAL_TREE_H_ + +#include + +struct usnic_uiom_interval_node { + struct rb_node rb; + struct list_head link; + unsigned long start; + unsigned long last; + unsigned long __subtree_last; + unsigned int ref_cnt; + int flags; +}; + +extern void +usnic_uiom_interval_tree_insert(struct usnic_uiom_interval_node *node, + struct rb_root *root); +extern void +usnic_uiom_interval_tree_remove(struct usnic_uiom_interval_node *node, + struct rb_root *root); +extern struct usnic_uiom_interval_node * +usnic_uiom_interval_tree_iter_first(struct rb_root *root, + unsigned long start, + unsigned long last); +extern struct usnic_uiom_interval_node * +usnic_uiom_interval_tree_iter_next(struct usnic_uiom_interval_node *node, + unsigned long start, unsigned long last); +/* + * Inserts {start...last} into {root}. If there are overlaps, + * nodes will be broken up and merged + */ +int usnic_uiom_insert_interval(struct rb_root *root, + unsigned long start, unsigned long last, + int flags); +/* + * Removed {start...last} from {root}. The nodes removed are returned in + * 'removed.' The caller is responsibile for freeing memory of nodes in + * 'removed.' + */ +void usnic_uiom_remove_interval(struct rb_root *root, + unsigned long start, unsigned long last, + struct list_head *removed); +/* + * Returns {start...last} - {root} (relative complement of {start...last} in + * {root}) in diff_set sorted ascendingly + */ +int usnic_uiom_get_intervals_diff(unsigned long start, + unsigned long last, int flags, + int flag_mask, + struct rb_root *root, + struct list_head *diff_set); +/* Call this to free diff_set returned by usnic_uiom_get_intervals_diff */ +void usnic_uiom_put_interval_set(struct list_head *intervals); +#endif /* USNIC_UIOM_INTERVAL_TREE_H_ */ --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_vnic.c +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_vnic.c @@ -0,0 +1,467 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ +#include +#include +#include + +#include "usnic_ib.h" +#include "vnic_resource.h" +#include "usnic_log.h" +#include "usnic_vnic.h" + +struct usnic_vnic { + struct vnic_dev *vdev; + struct vnic_dev_bar bar[PCI_NUM_RESOURCES]; + struct usnic_vnic_res_chunk chunks[USNIC_VNIC_RES_TYPE_MAX]; + spinlock_t res_lock; +}; + +static enum vnic_res_type _to_vnic_res_type(enum usnic_vnic_res_type res_type) +{ +#define DEFINE_USNIC_VNIC_RES_AT(usnic_vnic_res_t, vnic_res_type, desc, val) \ + vnic_res_type, +#define DEFINE_USNIC_VNIC_RES(usnic_vnic_res_t, vnic_res_type, desc) \ + vnic_res_type, + static enum vnic_res_type usnic_vnic_type_2_vnic_type[] = { + USNIC_VNIC_RES_TYPES}; +#undef DEFINE_USNIC_VNIC_RES +#undef DEFINE_USNIC_VNIC_RES_AT + + if (res_type >= USNIC_VNIC_RES_TYPE_MAX) + return RES_TYPE_MAX; + + return usnic_vnic_type_2_vnic_type[res_type]; +} + +const char *usnic_vnic_res_type_to_str(enum usnic_vnic_res_type res_type) +{ +#define DEFINE_USNIC_VNIC_RES_AT(usnic_vnic_res_t, vnic_res_type, desc, val) \ + desc, +#define DEFINE_USNIC_VNIC_RES(usnic_vnic_res_t, vnic_res_type, desc) \ + desc, + static const char * const usnic_vnic_res_type_desc[] = { + USNIC_VNIC_RES_TYPES}; +#undef DEFINE_USNIC_VNIC_RES +#undef DEFINE_USNIC_VNIC_RES_AT + + if (res_type >= USNIC_VNIC_RES_TYPE_MAX) + return "unknown"; + + return usnic_vnic_res_type_desc[res_type]; + +} + +const char *usnic_vnic_pci_name(struct usnic_vnic *vnic) +{ + return pci_name(usnic_vnic_get_pdev(vnic)); +} + +int usnic_vnic_dump(struct usnic_vnic *vnic, char *buf, + int buf_sz, + void *hdr_obj, + int (*printtitle)(void *, char*, int), + int (*printcols)(char *, int), + int (*printrow)(void *, char *, int)) +{ + struct usnic_vnic_res_chunk *chunk; + struct usnic_vnic_res *res; + struct vnic_dev_bar *bar0; + int i, j, offset; + + offset = 0; + bar0 = usnic_vnic_get_bar(vnic, 0); + offset += scnprintf(buf + offset, buf_sz - offset, + "VF:%hu BAR0 bus_addr=%pa vaddr=0x%p size=%ld ", + usnic_vnic_get_index(vnic), + &bar0->bus_addr, + bar0->vaddr, bar0->len); + if (printtitle) + offset += printtitle(hdr_obj, buf + offset, buf_sz - offset); + offset += scnprintf(buf + offset, buf_sz - offset, "\n"); + offset += scnprintf(buf + offset, buf_sz - offset, + "|RES\t|CTRL_PIN\t\t|IN_USE\t"); + if (printcols) + offset += printcols(buf + offset, buf_sz - offset); + offset += scnprintf(buf + offset, buf_sz - offset, "\n"); + + spin_lock(&vnic->res_lock); + for (i = 0; i < ARRAY_SIZE(vnic->chunks); i++) { + chunk = &vnic->chunks[i]; + for (j = 0; j < chunk->cnt; j++) { + res = chunk->res[j]; + offset += scnprintf(buf + offset, buf_sz - offset, + "|%s[%u]\t|0x%p\t|%u\t", + usnic_vnic_res_type_to_str(res->type), + res->vnic_idx, res->ctrl, !!res->owner); + if (printrow) { + offset += printrow(res->owner, buf + offset, + buf_sz - offset); + } + offset += scnprintf(buf + offset, buf_sz - offset, + "\n"); + } + } + spin_unlock(&vnic->res_lock); + return offset; +} + +void usnic_vnic_res_spec_update(struct usnic_vnic_res_spec *spec, + enum usnic_vnic_res_type trgt_type, + u16 cnt) +{ + int i; + + for (i = 0; i < USNIC_VNIC_RES_TYPE_MAX; i++) { + if (spec->resources[i].type == trgt_type) { + spec->resources[i].cnt = cnt; + return; + } + } + + WARN_ON(1); +} + +int usnic_vnic_res_spec_satisfied(const struct usnic_vnic_res_spec *min_spec, + struct usnic_vnic_res_spec *res_spec) +{ + int found, i, j; + + for (i = 0; i < USNIC_VNIC_RES_TYPE_MAX; i++) { + found = 0; + + for (j = 0; j < USNIC_VNIC_RES_TYPE_MAX; j++) { + if (res_spec->resources[i].type != + min_spec->resources[i].type) + continue; + found = 1; + if (min_spec->resources[i].cnt > + res_spec->resources[i].cnt) + return -EINVAL; + break; + } + + if (!found) + return -EINVAL; + } + return 0; +} + +int usnic_vnic_spec_dump(char *buf, int buf_sz, + struct usnic_vnic_res_spec *res_spec) +{ + enum usnic_vnic_res_type res_type; + int res_cnt; + int i; + int offset = 0; + + for (i = 0; i < USNIC_VNIC_RES_TYPE_MAX; i++) { + res_type = res_spec->resources[i].type; + res_cnt = res_spec->resources[i].cnt; + offset += scnprintf(buf + offset, buf_sz - offset, + "Res: %s Cnt: %d ", + usnic_vnic_res_type_to_str(res_type), + res_cnt); + } + + return offset; +} + +int usnic_vnic_check_room(struct usnic_vnic *vnic, + struct usnic_vnic_res_spec *res_spec) +{ + int i; + enum usnic_vnic_res_type res_type; + int res_cnt; + + for (i = 0; i < USNIC_VNIC_RES_TYPE_MAX; i++) { + res_type = res_spec->resources[i].type; + res_cnt = res_spec->resources[i].cnt; + + if (res_type == USNIC_VNIC_RES_TYPE_EOL) + break; + + if (res_cnt > usnic_vnic_res_free_cnt(vnic, res_type)) + return -EBUSY; + } + + return 0; +} + +int usnic_vnic_res_cnt(struct usnic_vnic *vnic, + enum usnic_vnic_res_type type) +{ + return vnic->chunks[type].cnt; +} + +int usnic_vnic_res_free_cnt(struct usnic_vnic *vnic, + enum usnic_vnic_res_type type) +{ + return vnic->chunks[type].free_cnt; +} + +struct usnic_vnic_res_chunk * +usnic_vnic_get_resources(struct usnic_vnic *vnic, enum usnic_vnic_res_type type, + int cnt, void *owner) +{ + struct usnic_vnic_res_chunk *src, *ret; + struct usnic_vnic_res *res; + int i; + + if (usnic_vnic_res_free_cnt(vnic, type) < cnt || cnt < 1 || !owner) + return ERR_PTR(-EINVAL); + + ret = kzalloc(sizeof(*ret), GFP_ATOMIC); + if (!ret) { + usnic_err("Failed to allocate chunk for %s - Out of memory\n", + usnic_vnic_pci_name(vnic)); + return ERR_PTR(-ENOMEM); + } + + ret->res = kzalloc(sizeof(*(ret->res))*cnt, GFP_ATOMIC); + if (!ret->res) { + usnic_err("Failed to allocate resources for %s. Out of memory\n", + usnic_vnic_pci_name(vnic)); + kfree(ret); + return ERR_PTR(-ENOMEM); + } + + spin_lock(&vnic->res_lock); + src = &vnic->chunks[type]; + for (i = 0; i < src->cnt && ret->cnt < cnt; i++) { + res = src->res[i]; + if (!res->owner) { + src->free_cnt--; + res->owner = owner; + ret->res[ret->cnt++] = res; + } + } + + spin_unlock(&vnic->res_lock); + ret->type = type; + ret->vnic = vnic; + WARN_ON(ret->cnt != cnt); + + return ret; +} + +void usnic_vnic_put_resources(struct usnic_vnic_res_chunk *chunk) +{ + + struct usnic_vnic_res *res; + int i; + struct usnic_vnic *vnic = chunk->vnic; + + spin_lock(&vnic->res_lock); + while ((i = --chunk->cnt) >= 0) { + res = chunk->res[i]; + chunk->res[i] = NULL; + res->owner = NULL; + vnic->chunks[res->type].free_cnt++; + } + spin_unlock(&vnic->res_lock); + + kfree(chunk->res); + kfree(chunk); +} + +u16 usnic_vnic_get_index(struct usnic_vnic *vnic) +{ + return usnic_vnic_get_pdev(vnic)->devfn - 1; +} + +static int usnic_vnic_alloc_res_chunk(struct usnic_vnic *vnic, + enum usnic_vnic_res_type type, + struct usnic_vnic_res_chunk *chunk) +{ + int cnt, err, i; + struct usnic_vnic_res *res; + + cnt = vnic_dev_get_res_count(vnic->vdev, _to_vnic_res_type(type)); + if (cnt < 1) + return -EINVAL; + + chunk->cnt = chunk->free_cnt = cnt; + chunk->res = kzalloc(sizeof(*(chunk->res))*cnt, GFP_KERNEL); + if (!chunk->res) + return -ENOMEM; + + for (i = 0; i < cnt; i++) { + res = kzalloc(sizeof(*res), GFP_KERNEL); + if (!res) { + err = -ENOMEM; + goto fail; + } + res->type = type; + res->vnic_idx = i; + res->vnic = vnic; + res->ctrl = vnic_dev_get_res(vnic->vdev, + _to_vnic_res_type(type), i); + chunk->res[i] = res; + } + + chunk->vnic = vnic; + return 0; +fail: + for (i--; i >= 0; i--) + kfree(chunk->res[i]); + kfree(chunk->res); + return err; +} + +static void usnic_vnic_free_res_chunk(struct usnic_vnic_res_chunk *chunk) +{ + int i; + for (i = 0; i < chunk->cnt; i++) + kfree(chunk->res[i]); + kfree(chunk->res); +} + +static int usnic_vnic_discover_resources(struct pci_dev *pdev, + struct usnic_vnic *vnic) +{ + enum usnic_vnic_res_type res_type; + int i; + int err = 0; + + for (i = 0; i < ARRAY_SIZE(vnic->bar); i++) { + if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM)) + continue; + vnic->bar[i].len = pci_resource_len(pdev, i); + vnic->bar[i].vaddr = pci_iomap(pdev, i, vnic->bar[i].len); + if (!vnic->bar[i].vaddr) { + usnic_err("Cannot memory-map BAR %d, aborting\n", + i); + err = -ENODEV; + goto out_clean_bar; + } + vnic->bar[i].bus_addr = pci_resource_start(pdev, i); + } + + vnic->vdev = vnic_dev_register(NULL, pdev, pdev, vnic->bar, + ARRAY_SIZE(vnic->bar)); + if (!vnic->vdev) { + usnic_err("Failed to register device %s\n", + pci_name(pdev)); + err = -EINVAL; + goto out_clean_bar; + } + + for (res_type = USNIC_VNIC_RES_TYPE_EOL + 1; + res_type < USNIC_VNIC_RES_TYPE_MAX; res_type++) { + err = usnic_vnic_alloc_res_chunk(vnic, res_type, + &vnic->chunks[res_type]); + if (err) { + usnic_err("Failed to alloc res %s with err %d\n", + usnic_vnic_res_type_to_str(res_type), + err); + goto out_clean_chunks; + } + } + + return 0; + +out_clean_chunks: + for (res_type--; res_type > USNIC_VNIC_RES_TYPE_EOL; res_type--) + usnic_vnic_free_res_chunk(&vnic->chunks[res_type]); + vnic_dev_unregister(vnic->vdev); +out_clean_bar: + for (i = 0; i < ARRAY_SIZE(vnic->bar); i++) { + if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM)) + continue; + if (!vnic->bar[i].vaddr) + break; + + iounmap(vnic->bar[i].vaddr); + } + + return err; +} + +struct pci_dev *usnic_vnic_get_pdev(struct usnic_vnic *vnic) +{ + return vnic_dev_get_pdev(vnic->vdev); +} + +struct vnic_dev_bar *usnic_vnic_get_bar(struct usnic_vnic *vnic, + int bar_num) +{ + return (bar_num < ARRAY_SIZE(vnic->bar)) ? &vnic->bar[bar_num] : NULL; +} + +static void usnic_vnic_release_resources(struct usnic_vnic *vnic) +{ + int i; + struct pci_dev *pdev; + enum usnic_vnic_res_type res_type; + + pdev = usnic_vnic_get_pdev(vnic); + + for (res_type = USNIC_VNIC_RES_TYPE_EOL + 1; + res_type < USNIC_VNIC_RES_TYPE_MAX; res_type++) + usnic_vnic_free_res_chunk(&vnic->chunks[res_type]); + + vnic_dev_unregister(vnic->vdev); + + for (i = 0; i < ARRAY_SIZE(vnic->bar); i++) { + if (!(pci_resource_flags(pdev, i) & IORESOURCE_MEM)) + continue; + iounmap(vnic->bar[i].vaddr); + } +} + +struct usnic_vnic *usnic_vnic_alloc(struct pci_dev *pdev) +{ + struct usnic_vnic *vnic; + int err = 0; + + if (!pci_is_enabled(pdev)) { + usnic_err("PCI dev %s is disabled\n", pci_name(pdev)); + return ERR_PTR(-EINVAL); + } + + vnic = kzalloc(sizeof(*vnic), GFP_KERNEL); + if (!vnic) { + usnic_err("Failed to alloc vnic for %s - out of memory\n", + pci_name(pdev)); + return ERR_PTR(-ENOMEM); + } + + spin_lock_init(&vnic->res_lock); + + err = usnic_vnic_discover_resources(pdev, vnic); + if (err) { + usnic_err("Failed to discover %s resources with err %d\n", + pci_name(pdev), err); + goto out_free_vnic; + } + + usnic_dbg("Allocated vnic for %s\n", usnic_vnic_pci_name(vnic)); + + return vnic; + +out_free_vnic: + kfree(vnic); + + return ERR_PTR(err); +} + +void usnic_vnic_free(struct usnic_vnic *vnic) +{ + usnic_vnic_release_resources(vnic); + kfree(vnic); +} --- linux-3.13.0.orig/drivers/infiniband/hw/usnic/usnic_vnic.h +++ linux-3.13.0/drivers/infiniband/hw/usnic/usnic_vnic.h @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2013, Cisco Systems, Inc. All rights reserved. + * + * This program is free software; you may redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#ifndef USNIC_VNIC_H_ +#define USNIC_VNIC_H_ + +#include + +#include "vnic_dev.h" + +/* =USNIC_VNIC_RES_TYPE= =VNIC_RES= =DESC= */ +#define USNIC_VNIC_RES_TYPES \ + DEFINE_USNIC_VNIC_RES_AT(EOL, RES_TYPE_EOL, "EOL", 0) \ + DEFINE_USNIC_VNIC_RES(WQ, RES_TYPE_WQ, "WQ") \ + DEFINE_USNIC_VNIC_RES(RQ, RES_TYPE_RQ, "RQ") \ + DEFINE_USNIC_VNIC_RES(CQ, RES_TYPE_CQ, "CQ") \ + DEFINE_USNIC_VNIC_RES(INTR, RES_TYPE_INTR_CTRL, "INT") \ + DEFINE_USNIC_VNIC_RES(MAX, RES_TYPE_MAX, "MAX")\ + +#define DEFINE_USNIC_VNIC_RES_AT(usnic_vnic_res_t, vnic_res_type, desc, val) \ + USNIC_VNIC_RES_TYPE_##usnic_vnic_res_t = val, +#define DEFINE_USNIC_VNIC_RES(usnic_vnic_res_t, vnic_res_type, desc) \ + USNIC_VNIC_RES_TYPE_##usnic_vnic_res_t, +enum usnic_vnic_res_type { + USNIC_VNIC_RES_TYPES +}; +#undef DEFINE_USNIC_VNIC_RES +#undef DEFINE_USNIC_VNIC_RES_AT + +struct usnic_vnic_res { + enum usnic_vnic_res_type type; + unsigned int vnic_idx; + struct usnic_vnic *vnic; + void __iomem *ctrl; + void *owner; +}; + +struct usnic_vnic_res_chunk { + enum usnic_vnic_res_type type; + int cnt; + int free_cnt; + struct usnic_vnic_res **res; + struct usnic_vnic *vnic; +}; + +struct usnic_vnic_res_desc { + enum usnic_vnic_res_type type; + uint16_t cnt; +}; + +struct usnic_vnic_res_spec { + struct usnic_vnic_res_desc resources[USNIC_VNIC_RES_TYPE_MAX]; +}; + +const char *usnic_vnic_res_type_to_str(enum usnic_vnic_res_type res_type); +const char *usnic_vnic_pci_name(struct usnic_vnic *vnic); +int usnic_vnic_dump(struct usnic_vnic *vnic, char *buf, int buf_sz, + void *hdr_obj, + int (*printtitle)(void *, char*, int), + int (*printcols)(char *, int), + int (*printrow)(void *, char *, int)); +void usnic_vnic_res_spec_update(struct usnic_vnic_res_spec *spec, + enum usnic_vnic_res_type trgt_type, + u16 cnt); +int usnic_vnic_res_spec_satisfied(const struct usnic_vnic_res_spec *min_spec, + struct usnic_vnic_res_spec *res_spec); +int usnic_vnic_spec_dump(char *buf, int buf_sz, + struct usnic_vnic_res_spec *res_spec); +int usnic_vnic_check_room(struct usnic_vnic *vnic, + struct usnic_vnic_res_spec *res_spec); +int usnic_vnic_res_cnt(struct usnic_vnic *vnic, + enum usnic_vnic_res_type type); +int usnic_vnic_res_free_cnt(struct usnic_vnic *vnic, + enum usnic_vnic_res_type type); +struct usnic_vnic_res_chunk * +usnic_vnic_get_resources(struct usnic_vnic *vnic, + enum usnic_vnic_res_type type, + int cnt, + void *owner); +void usnic_vnic_put_resources(struct usnic_vnic_res_chunk *chunk); +struct pci_dev *usnic_vnic_get_pdev(struct usnic_vnic *vnic); +struct vnic_dev_bar *usnic_vnic_get_bar(struct usnic_vnic *vnic, + int bar_num); +struct usnic_vnic *usnic_vnic_alloc(struct pci_dev *pdev); +void usnic_vnic_free(struct usnic_vnic *vnic); +u16 usnic_vnic_get_index(struct usnic_vnic *vnic); + +#endif /*!USNIC_VNIC_H_*/ --- linux-3.13.0.orig/drivers/infiniband/ulp/ipoib/ipoib_main.c +++ linux-3.13.0/drivers/infiniband/ulp/ipoib/ipoib_main.c @@ -104,6 +104,8 @@ ipoib_dbg(priv, "bringing up interface\n"); + netif_carrier_off(dev); + set_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags); if (ipoib_pkey_dev_delay_open(dev)) @@ -1366,8 +1368,6 @@ memcpy(dev->broadcast, ipv4_bcast_addr, INFINIBAND_ALEN); - netif_carrier_off(dev); - priv->dev = dev; spin_lock_init(&priv->lock); --- linux-3.13.0.orig/drivers/infiniband/ulp/ipoib/ipoib_verbs.c +++ linux-3.13.0/drivers/infiniband/ulp/ipoib/ipoib_verbs.c @@ -192,6 +192,9 @@ if (priv->hca_caps & IB_DEVICE_BLOCK_MULTICAST_LOOPBACK) init_attr.create_flags |= IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK; + if (priv->hca_caps & IB_DEVICE_MANAGED_FLOW_STEERING) + init_attr.create_flags |= IB_QP_CREATE_NETIF_QP; + if (dev->features & NETIF_F_SG) init_attr.cap.max_send_sge = MAX_SKB_FRAGS + 1; --- linux-3.13.0.orig/drivers/infiniband/ulp/iser/iser_initiator.c +++ linux-3.13.0/drivers/infiniband/ulp/iser/iser_initiator.c @@ -610,11 +610,12 @@ ib_dma_unmap_single(device->ib_device, tx_desc->dma_addr, ISER_HEADERS_LEN, DMA_TO_DEVICE); kmem_cache_free(ig.desc_cache, tx_desc); + tx_desc = NULL; } atomic_dec(&ib_conn->post_send_buf_count); - if (tx_desc->type == ISCSI_TX_CONTROL) { + if (tx_desc && tx_desc->type == ISCSI_TX_CONTROL) { /* this arithmetic is legal by libiscsi dd_data allocation */ task = (void *) ((long)(void *)tx_desc - sizeof(struct iscsi_task)); --- linux-3.13.0.orig/drivers/infiniband/ulp/iser/iser_verbs.c +++ linux-3.13.0/drivers/infiniband/ulp/iser/iser_verbs.c @@ -652,9 +652,13 @@ /* getting here when the state is UP means that the conn is being * * terminated asynchronously from the iSCSI layer's perspective. */ if (iser_conn_state_comp_exch(ib_conn, ISER_CONN_UP, - ISER_CONN_TERMINATING)) - iscsi_conn_failure(ib_conn->iser_conn->iscsi_conn, - ISCSI_ERR_CONN_FAILED); + ISER_CONN_TERMINATING)){ + if (ib_conn->iser_conn) + iscsi_conn_failure(ib_conn->iser_conn->iscsi_conn, + ISCSI_ERR_CONN_FAILED); + else + iser_err("iscsi_iser connection isn't bound\n"); + } /* Complete the termination process if no posts are pending */ if (ib_conn->post_recv_buf_count == 0 && --- linux-3.13.0.orig/drivers/infiniband/ulp/isert/ib_isert.c +++ linux-3.13.0/drivers/infiniband/ulp/isert/ib_isert.c @@ -28,6 +28,7 @@ #include #include #include +#include #include "isert_proto.h" #include "ib_isert.h" @@ -40,6 +41,7 @@ static LIST_HEAD(device_list); static struct workqueue_struct *isert_rx_wq; static struct workqueue_struct *isert_comp_wq; +static struct workqueue_struct *isert_release_wq; static void isert_unmap_cmd(struct isert_cmd *isert_cmd, struct isert_conn *isert_conn); @@ -47,10 +49,15 @@ isert_map_rdma(struct iscsi_conn *conn, struct iscsi_cmd *cmd, struct isert_rdma_wr *wr); static void -isert_unreg_rdma_frwr(struct isert_cmd *isert_cmd, struct isert_conn *isert_conn); +isert_unreg_rdma(struct isert_cmd *isert_cmd, struct isert_conn *isert_conn); static int -isert_reg_rdma_frwr(struct iscsi_conn *conn, struct iscsi_cmd *cmd, - struct isert_rdma_wr *wr); +isert_reg_rdma(struct iscsi_conn *conn, struct iscsi_cmd *cmd, + struct isert_rdma_wr *wr); +static int +isert_rdma_post_recvl(struct isert_conn *isert_conn); +static int +isert_rdma_accept(struct isert_conn *isert_conn); +struct rdma_cm_id *isert_setup_id(struct isert_np *isert_np); static void isert_qp_event_callback(struct ib_event *e, void *context) @@ -111,9 +118,12 @@ attr.cap.max_recv_wr = ISERT_QP_MAX_RECV_DTOS; /* * FIXME: Use devattr.max_sge - 2 for max_send_sge as - * work-around for RDMA_READ.. + * work-around for RDMA_READs with ConnectX-2. + * + * Also, still make sure to have at least two SGEs for + * outgoing control PDU responses. */ - attr.cap.max_send_sge = device->dev_attr.max_sge - 2; + attr.cap.max_send_sge = max(2, device->dev_attr.max_sge - 2); isert_conn->max_sge = attr.cap.max_send_sge; attr.cap.max_recv_sge = 1; @@ -128,12 +138,18 @@ ret = rdma_create_qp(cma_id, isert_conn->conn_pd, &attr); if (ret) { pr_err("rdma_create_qp failed for cma_id %d\n", ret); - return ret; + goto err; } isert_conn->conn_qp = cma_id->qp; pr_debug("rdma_create_qp() returned success >>>>>>>>>>>>>>>>>>>>>>>>>.\n"); return 0; +err: + mutex_lock(&device_list_mutex); + device->cq_active_qps[min_index]--; + mutex_unlock(&device_list_mutex); + + return ret; } static void @@ -219,19 +235,23 @@ struct isert_cq_desc *cq_desc; struct ib_device_attr *dev_attr; int ret = 0, i, j; + int max_rx_cqe, max_tx_cqe; dev_attr = &device->dev_attr; ret = isert_query_device(ib_dev, dev_attr); if (ret) return ret; + max_rx_cqe = min(ISER_MAX_RX_CQ_LEN, dev_attr->max_cqe); + max_tx_cqe = min(ISER_MAX_TX_CQ_LEN, dev_attr->max_cqe); + /* asign function handlers */ if (dev_attr->device_cap_flags & IB_DEVICE_MEM_MGT_EXTENSIONS) { - device->use_frwr = 1; - device->reg_rdma_mem = isert_reg_rdma_frwr; - device->unreg_rdma_mem = isert_unreg_rdma_frwr; + device->use_fastreg = 1; + device->reg_rdma_mem = isert_reg_rdma; + device->unreg_rdma_mem = isert_unreg_rdma; } else { - device->use_frwr = 0; + device->use_fastreg = 0; device->reg_rdma_mem = isert_map_rdma; device->unreg_rdma_mem = isert_unmap_cmd; } @@ -239,9 +259,10 @@ device->cqs_used = min_t(int, num_online_cpus(), device->ib_device->num_comp_vectors); device->cqs_used = min(ISERT_MAX_CQ, device->cqs_used); - pr_debug("Using %d CQs, device %s supports %d vectors support FRWR %d\n", + pr_debug("Using %d CQs, device %s supports %d vectors support " + "Fast registration %d\n", device->cqs_used, device->ib_device->name, - device->ib_device->num_comp_vectors, device->use_frwr); + device->ib_device->num_comp_vectors, device->use_fastreg); device->cq_desc = kzalloc(sizeof(struct isert_cq_desc) * device->cqs_used, GFP_KERNEL); if (!device->cq_desc) { @@ -250,13 +271,6 @@ } cq_desc = device->cq_desc; - device->dev_pd = ib_alloc_pd(ib_dev); - if (IS_ERR(device->dev_pd)) { - ret = PTR_ERR(device->dev_pd); - pr_err("ib_alloc_pd failed for dev_pd: %d\n", ret); - goto out_cq_desc; - } - for (i = 0; i < device->cqs_used; i++) { cq_desc[i].device = device; cq_desc[i].cq_index = i; @@ -266,7 +280,7 @@ isert_cq_rx_callback, isert_cq_event_callback, (void *)&cq_desc[i], - ISER_MAX_RX_CQ_LEN, i); + max_rx_cqe, i); if (IS_ERR(device->dev_rx_cq[i])) { ret = PTR_ERR(device->dev_rx_cq[i]); device->dev_rx_cq[i] = NULL; @@ -278,7 +292,7 @@ isert_cq_tx_callback, isert_cq_event_callback, (void *)&cq_desc[i], - ISER_MAX_TX_CQ_LEN, i); + max_tx_cqe, i); if (IS_ERR(device->dev_tx_cq[i])) { ret = PTR_ERR(device->dev_tx_cq[i]); device->dev_tx_cq[i] = NULL; @@ -294,13 +308,6 @@ goto out_cq; } - device->dev_mr = ib_get_dma_mr(device->dev_pd, IB_ACCESS_LOCAL_WRITE); - if (IS_ERR(device->dev_mr)) { - ret = PTR_ERR(device->dev_mr); - pr_err("ib_get_dma_mr failed for dev_mr: %d\n", ret); - goto out_cq; - } - return 0; out_cq: @@ -316,9 +323,6 @@ ib_destroy_cq(device->dev_tx_cq[j]); } } - ib_dealloc_pd(device->dev_pd); - -out_cq_desc: kfree(device->cq_desc); return ret; @@ -341,8 +345,6 @@ device->dev_tx_cq[i] = NULL; } - ib_dereg_mr(device->dev_mr); - ib_dealloc_pd(device->dev_pd); kfree(device->cq_desc); } @@ -398,18 +400,18 @@ } static void -isert_conn_free_frwr_pool(struct isert_conn *isert_conn) +isert_conn_free_fastreg_pool(struct isert_conn *isert_conn) { struct fast_reg_descriptor *fr_desc, *tmp; int i = 0; - if (list_empty(&isert_conn->conn_frwr_pool)) + if (list_empty(&isert_conn->conn_fr_pool)) return; - pr_debug("Freeing conn %p frwr pool", isert_conn); + pr_debug("Freeing conn %p fastreg pool", isert_conn); list_for_each_entry_safe(fr_desc, tmp, - &isert_conn->conn_frwr_pool, list) { + &isert_conn->conn_fr_pool, list) { list_del(&fr_desc->list); ib_free_fast_reg_page_list(fr_desc->data_frpl); ib_dereg_mr(fr_desc->data_mr); @@ -417,20 +419,47 @@ ++i; } - if (i < isert_conn->conn_frwr_pool_size) + if (i < isert_conn->conn_fr_pool_size) pr_warn("Pool still has %d regions registered\n", - isert_conn->conn_frwr_pool_size - i); + isert_conn->conn_fr_pool_size - i); +} + +static int +isert_create_fr_desc(struct ib_device *ib_device, struct ib_pd *pd, + struct fast_reg_descriptor *fr_desc) +{ + fr_desc->data_frpl = ib_alloc_fast_reg_page_list(ib_device, + ISCSI_ISER_SG_TABLESIZE); + if (IS_ERR(fr_desc->data_frpl)) { + pr_err("Failed to allocate data frpl err=%ld\n", + PTR_ERR(fr_desc->data_frpl)); + return PTR_ERR(fr_desc->data_frpl); + } + + fr_desc->data_mr = ib_alloc_fast_reg_mr(pd, ISCSI_ISER_SG_TABLESIZE); + if (IS_ERR(fr_desc->data_mr)) { + pr_err("Failed to allocate data frmr err=%ld\n", + PTR_ERR(fr_desc->data_mr)); + ib_free_fast_reg_page_list(fr_desc->data_frpl); + return PTR_ERR(fr_desc->data_mr); + } + pr_debug("Create fr_desc %p page_list %p\n", + fr_desc, fr_desc->data_frpl->page_list); + + fr_desc->valid = true; + + return 0; } static int -isert_conn_create_frwr_pool(struct isert_conn *isert_conn) +isert_conn_create_fastreg_pool(struct isert_conn *isert_conn) { struct fast_reg_descriptor *fr_desc; struct isert_device *device = isert_conn->conn_device; int i, ret; - INIT_LIST_HEAD(&isert_conn->conn_frwr_pool); - isert_conn->conn_frwr_pool_size = 0; + INIT_LIST_HEAD(&isert_conn->conn_fr_pool); + isert_conn->conn_fr_pool_size = 0; for (i = 0; i < ISCSI_DEF_XMIT_CMDS_MAX; i++) { fr_desc = kzalloc(sizeof(*fr_desc), GFP_KERNEL); if (!fr_desc) { @@ -439,48 +468,34 @@ goto err; } - fr_desc->data_frpl = - ib_alloc_fast_reg_page_list(device->ib_device, - ISCSI_ISER_SG_TABLESIZE); - if (IS_ERR(fr_desc->data_frpl)) { - pr_err("Failed to allocate fr_pg_list err=%ld\n", - PTR_ERR(fr_desc->data_frpl)); - ret = PTR_ERR(fr_desc->data_frpl); - goto err; - } - - fr_desc->data_mr = ib_alloc_fast_reg_mr(device->dev_pd, - ISCSI_ISER_SG_TABLESIZE); - if (IS_ERR(fr_desc->data_mr)) { - pr_err("Failed to allocate frmr err=%ld\n", - PTR_ERR(fr_desc->data_mr)); - ret = PTR_ERR(fr_desc->data_mr); - ib_free_fast_reg_page_list(fr_desc->data_frpl); + ret = isert_create_fr_desc(device->ib_device, + isert_conn->conn_pd, fr_desc); + if (ret) { + pr_err("Failed to create fastreg descriptor err=%d\n", + ret); + kfree(fr_desc); goto err; } - pr_debug("Create fr_desc %p page_list %p\n", - fr_desc, fr_desc->data_frpl->page_list); - fr_desc->valid = true; - list_add_tail(&fr_desc->list, &isert_conn->conn_frwr_pool); - isert_conn->conn_frwr_pool_size++; + list_add_tail(&fr_desc->list, &isert_conn->conn_fr_pool); + isert_conn->conn_fr_pool_size++; } - pr_debug("Creating conn %p frwr pool size=%d", - isert_conn, isert_conn->conn_frwr_pool_size); + pr_debug("Creating conn %p fastreg pool size=%d", + isert_conn, isert_conn->conn_fr_pool_size); return 0; err: - isert_conn_free_frwr_pool(isert_conn); + isert_conn_free_fastreg_pool(isert_conn); return ret; } static int isert_connect_request(struct rdma_cm_id *cma_id, struct rdma_cm_event *event) { - struct iscsi_np *np = cma_id->context; - struct isert_np *isert_np = np->np_context; + struct isert_np *isert_np = cma_id->context; + struct iscsi_np *np = isert_np->np; struct isert_conn *isert_conn; struct isert_device *device; struct ib_device *ib_dev = cma_id->device; @@ -497,15 +512,13 @@ isert_conn->state = ISER_CONN_INIT; INIT_LIST_HEAD(&isert_conn->conn_accept_node); init_completion(&isert_conn->conn_login_comp); - init_waitqueue_head(&isert_conn->conn_wait); - init_waitqueue_head(&isert_conn->conn_wait_comp_err); + init_completion(&isert_conn->login_req_comp); + init_completion(&isert_conn->conn_wait); + init_completion(&isert_conn->conn_wait_comp_err); kref_init(&isert_conn->conn_kref); - kref_get(&isert_conn->conn_kref); mutex_init(&isert_conn->conn_mutex); - mutex_init(&isert_conn->conn_comp_mutex); spin_lock_init(&isert_conn->conn_lock); - cma_id->context = isert_conn; isert_conn->conn_cm_id = cma_id; isert_conn->responder_resources = event->param.conn.responder_resources; isert_conn->initiator_depth = event->param.conn.initiator_depth; @@ -558,14 +571,29 @@ } isert_conn->conn_device = device; - isert_conn->conn_pd = device->dev_pd; - isert_conn->conn_mr = device->dev_mr; + isert_conn->conn_pd = ib_alloc_pd(isert_conn->conn_device->ib_device); + if (IS_ERR(isert_conn->conn_pd)) { + ret = PTR_ERR(isert_conn->conn_pd); + pr_err("ib_alloc_pd failed for conn %p: ret=%d\n", + isert_conn, ret); + goto out_pd; + } + + isert_conn->conn_mr = ib_get_dma_mr(isert_conn->conn_pd, + IB_ACCESS_LOCAL_WRITE); + if (IS_ERR(isert_conn->conn_mr)) { + ret = PTR_ERR(isert_conn->conn_mr); + pr_err("ib_get_dma_mr failed for conn %p: ret=%d\n", + isert_conn, ret); + goto out_mr; + } - if (device->use_frwr) { - ret = isert_conn_create_frwr_pool(isert_conn); + if (device->use_fastreg) { + ret = isert_conn_create_fastreg_pool(isert_conn); if (ret) { - pr_err("Conn: %p failed to create frwr_pool\n", isert_conn); - goto out_frwr; + pr_err("Conn: %p failed to create fastreg pool\n", + isert_conn); + goto out_fastreg; } } @@ -573,18 +601,30 @@ if (ret) goto out_conn_dev; + ret = isert_rdma_post_recvl(isert_conn); + if (ret) + goto out_conn_dev; + + ret = isert_rdma_accept(isert_conn); + if (ret) + goto out_conn_dev; + mutex_lock(&isert_np->np_accept_mutex); - list_add_tail(&isert_np->np_accept_list, &isert_conn->conn_accept_node); + list_add_tail(&isert_conn->conn_accept_node, &isert_np->np_accept_list); mutex_unlock(&isert_np->np_accept_mutex); - pr_debug("isert_connect_request() waking up np_accept_wq: %p\n", np); - wake_up(&isert_np->np_accept_wq); + pr_debug("isert_connect_request() up np_sem np: %p\n", np); + up(&isert_np->np_sem); return 0; out_conn_dev: - if (device->use_frwr) - isert_conn_free_frwr_pool(isert_conn); -out_frwr: + if (device->use_fastreg) + isert_conn_free_fastreg_pool(isert_conn); +out_fastreg: + ib_dereg_mr(isert_conn->conn_mr); +out_mr: + ib_dealloc_pd(isert_conn->conn_pd); +out_pd: isert_device_try_release(device); out_rsp_dma_map: ib_dma_unmap_single(ib_dev, isert_conn->login_rsp_dma, @@ -596,6 +636,7 @@ kfree(isert_conn->login_buf); out: kfree(isert_conn); + rdma_reject(cma_id, NULL, 0); return ret; } @@ -608,20 +649,25 @@ pr_debug("Entering isert_connect_release(): >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); - if (device && device->use_frwr) - isert_conn_free_frwr_pool(isert_conn); + if (device && device->use_fastreg) + isert_conn_free_fastreg_pool(isert_conn); + + isert_free_rx_descriptors(isert_conn); + rdma_destroy_id(isert_conn->conn_cm_id); if (isert_conn->conn_qp) { cq_index = ((struct isert_cq_desc *) isert_conn->conn_qp->recv_cq->cq_context)->cq_index; pr_debug("isert_connect_release: cq_index: %d\n", cq_index); + mutex_lock(&device_list_mutex); isert_conn->conn_device->cq_active_qps[cq_index]--; + mutex_unlock(&device_list_mutex); - rdma_destroy_qp(isert_conn->conn_cm_id); + ib_destroy_qp(isert_conn->conn_qp); } - isert_free_rx_descriptors(isert_conn); - rdma_destroy_id(isert_conn->conn_cm_id); + ib_dereg_mr(isert_conn->conn_mr); + ib_dealloc_pd(isert_conn->conn_pd); if (isert_conn->login_buf) { ib_dma_unmap_single(ib_dev, isert_conn->login_rsp_dma, @@ -642,7 +688,19 @@ static void isert_connected_handler(struct rdma_cm_id *cma_id) { - return; + struct isert_conn *isert_conn = cma_id->qp->qp_context; + + pr_info("conn %p\n", isert_conn); + + if (!kref_get_unless_zero(&isert_conn->conn_kref)) { + pr_warn("conn %p connect_release is running\n", isert_conn); + return; + } + + mutex_lock(&isert_conn->conn_mutex); + if (isert_conn->state != ISER_CONN_FULL_FEATURE) + isert_conn->state = ISER_CONN_UP; + mutex_unlock(&isert_conn->conn_mutex); } static void @@ -663,49 +721,102 @@ kref_put(&isert_conn->conn_kref, isert_release_conn_kref); } +/** + * isert_conn_terminate() - Initiate connection termination + * @isert_conn: isert connection struct + * + * Notes: + * In case the connection state is FULL_FEATURE, move state + * to TEMINATING and start teardown sequence (rdma_disconnect). + * In case the connection state is UP, complete flush as well. + * + * This routine must be called with conn_mutex held. Thus it is + * safe to call multiple times. + */ static void -isert_disconnect_work(struct work_struct *work) +isert_conn_terminate(struct isert_conn *isert_conn) { - struct isert_conn *isert_conn = container_of(work, - struct isert_conn, conn_logout_work); - - pr_debug("isert_disconnect_work(): >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); - mutex_lock(&isert_conn->conn_mutex); - isert_conn->state = ISER_CONN_DOWN; + int err; - if (isert_conn->post_recv_buf_count == 0 && - atomic_read(&isert_conn->post_send_buf_count) == 0) { - pr_debug("Calling wake_up(&isert_conn->conn_wait);\n"); - mutex_unlock(&isert_conn->conn_mutex); - goto wake_up; - } - if (!isert_conn->conn_cm_id) { - mutex_unlock(&isert_conn->conn_mutex); - isert_put_conn(isert_conn); - return; + switch (isert_conn->state) { + case ISER_CONN_TERMINATING: + break; + case ISER_CONN_UP: + /* + * No flush completions will occur as we didn't + * get to ISER_CONN_FULL_FEATURE yet, complete + * to allow teardown progress. + */ + complete(&isert_conn->conn_wait_comp_err); + case ISER_CONN_FULL_FEATURE: /* FALLTHRU */ + pr_info("Terminating conn %p state %d\n", + isert_conn, isert_conn->state); + isert_conn->state = ISER_CONN_TERMINATING; + err = rdma_disconnect(isert_conn->conn_cm_id); + if (err) + pr_warn("Failed rdma_disconnect isert_conn %p\n", + isert_conn); + break; + default: + pr_warn("conn %p teminating in state %d\n", + isert_conn, isert_conn->state); } - if (!isert_conn->logout_posted) { - pr_debug("Calling rdma_disconnect for !logout_posted from" - " isert_disconnect_work\n"); - rdma_disconnect(isert_conn->conn_cm_id); - mutex_unlock(&isert_conn->conn_mutex); - iscsit_cause_connection_reinstatement(isert_conn->conn, 0); - goto wake_up; +} + +static int +isert_np_cma_handler(struct isert_np *isert_np, + enum rdma_cm_event_type event) +{ + pr_debug("isert np %p, handling event %d\n", isert_np, event); + + switch (event) { + case RDMA_CM_EVENT_DEVICE_REMOVAL: + isert_np->np_cm_id = NULL; + break; + case RDMA_CM_EVENT_ADDR_CHANGE: + isert_np->np_cm_id = isert_setup_id(isert_np); + if (IS_ERR(isert_np->np_cm_id)) { + pr_err("isert np %p setup id failed: %ld\n", + isert_np, PTR_ERR(isert_np->np_cm_id)); + isert_np->np_cm_id = NULL; + } + break; + default: + pr_err("isert np %p Unexpected event %d\n", + isert_np, event); } + + return -1; +} + +static int +isert_disconnected_handler(struct rdma_cm_id *cma_id, + enum rdma_cm_event_type event) +{ + struct isert_np *isert_np = cma_id->context; + struct isert_conn *isert_conn; + + if (isert_np->np_cm_id == cma_id) + return isert_np_cma_handler(cma_id->context, event); + + isert_conn = cma_id->qp->qp_context; + + mutex_lock(&isert_conn->conn_mutex); + isert_conn_terminate(isert_conn); mutex_unlock(&isert_conn->conn_mutex); -wake_up: - wake_up(&isert_conn->conn_wait); - isert_put_conn(isert_conn); + pr_info("conn %p completing conn_wait\n", isert_conn); + complete(&isert_conn->conn_wait); + + return 0; } static void -isert_disconnected_handler(struct rdma_cm_id *cma_id) +isert_connect_error(struct rdma_cm_id *cma_id) { - struct isert_conn *isert_conn = (struct isert_conn *)cma_id->context; + struct isert_conn *isert_conn = cma_id->qp->qp_context; - INIT_WORK(&isert_conn->conn_logout_work, isert_disconnect_work); - schedule_work(&isert_conn->conn_logout_work); + isert_put_conn(isert_conn); } static int @@ -718,32 +829,30 @@ switch (event->event) { case RDMA_CM_EVENT_CONNECT_REQUEST: - pr_debug("RDMA_CM_EVENT_CONNECT_REQUEST: >>>>>>>>>>>>>>>\n"); ret = isert_connect_request(cma_id, event); + if (ret) + pr_err("isert_cma_handler failed RDMA_CM_EVENT: 0x%08x %d\n", + event->event, ret); break; case RDMA_CM_EVENT_ESTABLISHED: - pr_debug("RDMA_CM_EVENT_ESTABLISHED >>>>>>>>>>>>>>\n"); isert_connected_handler(cma_id); break; - case RDMA_CM_EVENT_DISCONNECTED: - pr_debug("RDMA_CM_EVENT_DISCONNECTED: >>>>>>>>>>>>>>\n"); - isert_disconnected_handler(cma_id); - break; - case RDMA_CM_EVENT_DEVICE_REMOVAL: - case RDMA_CM_EVENT_ADDR_CHANGE: + case RDMA_CM_EVENT_ADDR_CHANGE: /* FALLTHRU */ + case RDMA_CM_EVENT_DISCONNECTED: /* FALLTHRU */ + case RDMA_CM_EVENT_DEVICE_REMOVAL: /* FALLTHRU */ + case RDMA_CM_EVENT_TIMEWAIT_EXIT: /* FALLTHRU */ + ret = isert_disconnected_handler(cma_id, event->event); break; + case RDMA_CM_EVENT_REJECTED: /* FALLTHRU */ + case RDMA_CM_EVENT_UNREACHABLE: /* FALLTHRU */ case RDMA_CM_EVENT_CONNECT_ERROR: + isert_connect_error(cma_id); + break; default: - pr_err("Unknown RDMA CMA event: %d\n", event->event); + pr_err("Unhandled RDMA CMA event: %d\n", event->event); break; } - if (ret != 0) { - pr_err("isert_cma_handler failed RDMA_CM_EVENT: 0x%08x %d\n", - event->event, ret); - dump_stack(); - } - return ret; } @@ -871,16 +980,17 @@ * Coalesce send completion interrupts by only setting IB_SEND_SIGNALED * bit for every ISERT_COMP_BATCH_COUNT number of ib_post_send() calls. */ - mutex_lock(&isert_conn->conn_comp_mutex); - if (coalesce && + mutex_lock(&isert_conn->conn_mutex); + if (coalesce && isert_conn->state == ISER_CONN_FULL_FEATURE && ++isert_conn->conn_comp_batch < ISERT_COMP_BATCH_COUNT) { + tx_desc->llnode_active = true; llist_add(&tx_desc->comp_llnode, &isert_conn->conn_comp_llist); - mutex_unlock(&isert_conn->conn_comp_mutex); + mutex_unlock(&isert_conn->conn_mutex); return; } isert_conn->conn_comp_batch = 0; tx_desc->comp_llnode_batch = llist_del_all(&isert_conn->conn_comp_llist); - mutex_unlock(&isert_conn->conn_comp_mutex); + mutex_unlock(&isert_conn->conn_mutex); send_wr->send_flags = IB_SEND_SIGNALED; } @@ -958,7 +1068,10 @@ if (ret) return ret; - isert_conn->state = ISER_CONN_UP; + /* Now we are in FULL_FEATURE phase */ + mutex_lock(&isert_conn->conn_mutex); + isert_conn->state = ISER_CONN_FULL_FEATURE; + mutex_unlock(&isert_conn->conn_mutex); goto post_send; } @@ -975,18 +1088,17 @@ } static void -isert_rx_login_req(struct iser_rx_desc *rx_desc, int rx_buflen, - struct isert_conn *isert_conn) +isert_rx_login_req(struct isert_conn *isert_conn) { + struct iser_rx_desc *rx_desc = (void *)isert_conn->login_req_buf; + int rx_buflen = isert_conn->login_req_len; struct iscsi_conn *conn = isert_conn->conn; struct iscsi_login *login = conn->conn_login; int size; - if (!login) { - pr_err("conn->conn_login is NULL\n"); - dump_stack(); - return; - } + pr_info("conn %p\n", isert_conn); + + WARN_ON_ONCE(!login); if (login->first_request) { struct iscsi_login_req *login_req = @@ -1024,13 +1136,13 @@ } static struct iscsi_cmd -*isert_allocate_cmd(struct iscsi_conn *conn, gfp_t gfp) +*isert_allocate_cmd(struct iscsi_conn *conn) { struct isert_conn *isert_conn = (struct isert_conn *)conn->context; struct isert_cmd *isert_cmd; struct iscsi_cmd *cmd; - cmd = iscsit_allocate_cmd(conn, gfp); + cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE); if (!cmd) { pr_err("Unable to allocate iscsi_cmd + isert_cmd\n"); return NULL; @@ -1094,6 +1206,8 @@ if (!rc && dump_payload == false && unsol_data) iscsit_set_unsoliticed_dataout(cmd); + else if (dump_payload && imm_data) + target_put_sess_cmd(conn->sess->se_sess, &cmd->se_cmd); return 0; } @@ -1219,7 +1333,7 @@ switch (opcode) { case ISCSI_OP_SCSI_CMD: - cmd = isert_allocate_cmd(conn, GFP_KERNEL); + cmd = isert_allocate_cmd(conn); if (!cmd) break; @@ -1233,7 +1347,7 @@ rx_desc, (unsigned char *)hdr); break; case ISCSI_OP_NOOP_OUT: - cmd = isert_allocate_cmd(conn, GFP_KERNEL); + cmd = isert_allocate_cmd(conn); if (!cmd) break; @@ -1246,7 +1360,7 @@ (unsigned char *)hdr); break; case ISCSI_OP_SCSI_TMFUNC: - cmd = isert_allocate_cmd(conn, GFP_KERNEL); + cmd = isert_allocate_cmd(conn); if (!cmd) break; @@ -1254,7 +1368,7 @@ (unsigned char *)hdr); break; case ISCSI_OP_LOGOUT: - cmd = isert_allocate_cmd(conn, GFP_KERNEL); + cmd = isert_allocate_cmd(conn); if (!cmd) break; @@ -1265,7 +1379,7 @@ HZ); break; case ISCSI_OP_TEXT: - cmd = isert_allocate_cmd(conn, GFP_KERNEL); + cmd = isert_allocate_cmd(conn); if (!cmd) break; @@ -1347,11 +1461,20 @@ hdr->opcode, hdr->itt, hdr->flags, (int)(xfer_len - ISER_HEADERS_LEN)); - if ((char *)desc == isert_conn->login_req_buf) - isert_rx_login_req(desc, xfer_len - ISER_HEADERS_LEN, - isert_conn); - else + if ((char *)desc == isert_conn->login_req_buf) { + isert_conn->login_req_len = xfer_len - ISER_HEADERS_LEN; + if (isert_conn->conn) { + struct iscsi_login *login = isert_conn->conn->conn_login; + + if (login && !login->first_request) + isert_rx_login_req(isert_conn); + } + mutex_lock(&isert_conn->conn_mutex); + complete(&isert_conn->login_req_comp); + mutex_unlock(&isert_conn->conn_mutex); + } else { isert_rx_do_work(desc, isert_conn); + } ib_dma_sync_single_for_device(ib_dev, rx_dma, rx_buflen, DMA_FROM_DEVICE); @@ -1404,25 +1527,25 @@ } static void -isert_unreg_rdma_frwr(struct isert_cmd *isert_cmd, struct isert_conn *isert_conn) +isert_unreg_rdma(struct isert_cmd *isert_cmd, struct isert_conn *isert_conn) { struct isert_rdma_wr *wr = &isert_cmd->rdma_wr; struct ib_device *ib_dev = isert_conn->conn_cm_id->device; LIST_HEAD(unmap_list); - pr_debug("unreg_frwr_cmd: %p\n", isert_cmd); + pr_debug("unreg_fastreg_cmd: %p\n", isert_cmd); if (wr->fr_desc) { - pr_debug("unreg_frwr_cmd: %p free fr_desc %p\n", + pr_debug("unreg_fastreg_cmd: %p free fr_desc %p\n", isert_cmd, wr->fr_desc); spin_lock_bh(&isert_conn->conn_lock); - list_add_tail(&wr->fr_desc->list, &isert_conn->conn_frwr_pool); + list_add_tail(&wr->fr_desc->list, &isert_conn->conn_fr_pool); spin_unlock_bh(&isert_conn->conn_lock); wr->fr_desc = NULL; } if (wr->sge) { - pr_debug("unreg_frwr_cmd: %p unmap_sg op\n", isert_cmd); + pr_debug("unreg_fastreg_cmd: %p unmap_sg op\n", isert_cmd); ib_dma_unmap_sg(ib_dev, wr->sge, wr->num_sge, (wr->iser_ib_op == ISER_IB_RDMA_WRITE) ? DMA_TO_DEVICE : DMA_FROM_DEVICE); @@ -1434,7 +1557,7 @@ } static void -isert_put_cmd(struct isert_cmd *isert_cmd) +isert_put_cmd(struct isert_cmd *isert_cmd, bool comp_err) { struct iscsi_cmd *cmd = isert_cmd->iscsi_cmd; struct isert_conn *isert_conn = isert_cmd->conn; @@ -1447,11 +1570,24 @@ case ISCSI_OP_SCSI_CMD: spin_lock_bh(&conn->cmd_lock); if (!list_empty(&cmd->i_conn_node)) - list_del(&cmd->i_conn_node); + list_del_init(&cmd->i_conn_node); spin_unlock_bh(&conn->cmd_lock); - if (cmd->data_direction == DMA_TO_DEVICE) + if (cmd->data_direction == DMA_TO_DEVICE) { iscsit_stop_dataout_timer(cmd); + /* + * Check for special case during comp_err where + * WRITE_PENDING has been handed off from core, + * but requires an extra target_put_sess_cmd() + * before transport_generic_free_cmd() below. + */ + if (comp_err && + cmd->se_cmd.t_state == TRANSPORT_WRITE_PENDING) { + struct se_cmd *se_cmd = &cmd->se_cmd; + + target_put_sess_cmd(se_cmd->se_sess, se_cmd); + } + } device->unreg_rdma_mem(isert_cmd, isert_conn); transport_generic_free_cmd(&cmd->se_cmd, 0); @@ -1459,7 +1595,7 @@ case ISCSI_OP_SCSI_TMFUNC: spin_lock_bh(&conn->cmd_lock); if (!list_empty(&cmd->i_conn_node)) - list_del(&cmd->i_conn_node); + list_del_init(&cmd->i_conn_node); spin_unlock_bh(&conn->cmd_lock); transport_generic_free_cmd(&cmd->se_cmd, 0); @@ -1469,7 +1605,7 @@ case ISCSI_OP_TEXT: spin_lock_bh(&conn->cmd_lock); if (!list_empty(&cmd->i_conn_node)) - list_del(&cmd->i_conn_node); + list_del_init(&cmd->i_conn_node); spin_unlock_bh(&conn->cmd_lock); /* @@ -1506,7 +1642,7 @@ static void isert_completion_put(struct iser_tx_desc *tx_desc, struct isert_cmd *isert_cmd, - struct ib_device *ib_dev) + struct ib_device *ib_dev, bool comp_err) { if (isert_cmd->pdu_buf_dma != 0) { pr_debug("Calling ib_dma_unmap_single for isert_cmd->pdu_buf_dma\n"); @@ -1516,7 +1652,7 @@ } isert_unmap_tx_desc(tx_desc, ib_dev); - isert_put_cmd(isert_cmd); + isert_put_cmd(isert_cmd, comp_err); } static void @@ -1532,6 +1668,7 @@ iscsit_stop_dataout_timer(cmd); device->unreg_rdma_mem(isert_cmd, isert_conn); cmd->write_data_done = wr->cur_rdma_length; + wr->send_wr_num = 0; pr_debug("Cmd: %p RDMA_READ comp calling execute_cmd\n", isert_cmd); spin_lock_bh(&cmd->istate_lock); @@ -1559,28 +1696,25 @@ iscsit_tmr_post_handler(cmd, cmd->conn); cmd->i_state = ISTATE_SENT_STATUS; - isert_completion_put(&isert_cmd->tx_desc, isert_cmd, ib_dev); + isert_completion_put(&isert_cmd->tx_desc, isert_cmd, ib_dev, false); break; case ISTATE_SEND_REJECT: pr_debug("Got isert_do_control_comp ISTATE_SEND_REJECT: >>>\n"); atomic_dec(&isert_conn->post_send_buf_count); cmd->i_state = ISTATE_SENT_STATUS; - isert_completion_put(&isert_cmd->tx_desc, isert_cmd, ib_dev); + isert_completion_put(&isert_cmd->tx_desc, isert_cmd, ib_dev, false); break; case ISTATE_SEND_LOGOUTRSP: pr_debug("Calling iscsit_logout_post_handler >>>>>>>>>>>>>>\n"); - /* - * Call atomic_dec(&isert_conn->post_send_buf_count) - * from isert_free_conn() - */ - isert_conn->logout_posted = true; + + atomic_dec(&isert_conn->post_send_buf_count); iscsit_logout_post_handler(cmd, cmd->conn); break; case ISTATE_SEND_TEXTRSP: atomic_dec(&isert_conn->post_send_buf_count); cmd->i_state = ISTATE_SENT_STATUS; - isert_completion_put(&isert_cmd->tx_desc, isert_cmd, ib_dev); + isert_completion_put(&isert_cmd->tx_desc, isert_cmd, ib_dev, false); break; default: pr_err("Unknown do_control_comp i_state %d\n", cmd->i_state); @@ -1596,6 +1730,7 @@ struct ib_device *ib_dev) { struct iscsi_cmd *cmd = isert_cmd->iscsi_cmd; + struct isert_rdma_wr *wr = &isert_cmd->rdma_wr; if (cmd->i_state == ISTATE_SEND_TASKMGTRSP || cmd->i_state == ISTATE_SEND_LOGOUTRSP || @@ -1607,10 +1742,10 @@ queue_work(isert_comp_wq, &isert_cmd->comp_work); return; } - atomic_dec(&isert_conn->post_send_buf_count); + atomic_sub(wr->send_wr_num + 1, &isert_conn->post_send_buf_count); cmd->i_state = ISTATE_SENT_STATUS; - isert_completion_put(tx_desc, isert_cmd, ib_dev); + isert_completion_put(tx_desc, isert_cmd, ib_dev, false); } static void @@ -1645,7 +1780,7 @@ case ISER_IB_RDMA_READ: pr_debug("isert_send_completion: Got ISER_IB_RDMA_READ:\n"); - atomic_dec(&isert_conn->post_send_buf_count); + atomic_sub(wr->send_wr_num, &isert_conn->post_send_buf_count); isert_completion_rdma_read(tx_desc, isert_cmd); break; default: @@ -1674,31 +1809,80 @@ } static void -isert_cq_comp_err(struct iser_tx_desc *tx_desc, struct isert_conn *isert_conn) +isert_cq_drain_comp_llist(struct isert_conn *isert_conn, struct ib_device *ib_dev) +{ + struct llist_node *llnode; + struct isert_rdma_wr *wr; + struct iser_tx_desc *t; + + mutex_lock(&isert_conn->conn_mutex); + llnode = llist_del_all(&isert_conn->conn_comp_llist); + isert_conn->conn_comp_batch = 0; + mutex_unlock(&isert_conn->conn_mutex); + + while (llnode) { + t = llist_entry(llnode, struct iser_tx_desc, comp_llnode); + llnode = llist_next(llnode); + wr = &t->isert_cmd->rdma_wr; + + atomic_sub(wr->send_wr_num + 1, &isert_conn->post_send_buf_count); + + isert_completion_put(t, t->isert_cmd, ib_dev, true); + } +} + +static void +isert_cq_tx_comp_err(struct iser_tx_desc *tx_desc, struct isert_conn *isert_conn) { struct ib_device *ib_dev = isert_conn->conn_cm_id->device; + struct isert_cmd *isert_cmd = tx_desc->isert_cmd; + struct llist_node *llnode = tx_desc->comp_llnode_batch; + struct isert_rdma_wr *wr; + struct iser_tx_desc *t; - if (tx_desc) { - struct isert_cmd *isert_cmd = tx_desc->isert_cmd; + while (llnode) { + t = llist_entry(llnode, struct iser_tx_desc, comp_llnode); + llnode = llist_next(llnode); + wr = &t->isert_cmd->rdma_wr; - if (!isert_cmd) - isert_unmap_tx_desc(tx_desc, ib_dev); - else - isert_completion_put(tx_desc, isert_cmd, ib_dev); + atomic_sub(wr->send_wr_num + 1, &isert_conn->post_send_buf_count); + + isert_completion_put(t, t->isert_cmd, ib_dev, true); } + tx_desc->comp_llnode_batch = NULL; - if (isert_conn->post_recv_buf_count == 0 && - atomic_read(&isert_conn->post_send_buf_count) == 0) { - pr_debug("isert_cq_comp_err >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"); - pr_debug("Calling wake_up from isert_cq_comp_err\n"); + if (!isert_cmd) + isert_unmap_tx_desc(tx_desc, ib_dev); + else + isert_completion_put(tx_desc, isert_cmd, ib_dev, true); +} - mutex_lock(&isert_conn->conn_mutex); - if (isert_conn->state != ISER_CONN_DOWN) - isert_conn->state = ISER_CONN_TERMINATING; - mutex_unlock(&isert_conn->conn_mutex); +static void +isert_cq_rx_comp_err(struct isert_conn *isert_conn) +{ + struct ib_device *ib_dev = isert_conn->conn_cm_id->device; + struct iscsi_conn *conn = isert_conn->conn; + + if (isert_conn->post_recv_buf_count) + return; - wake_up(&isert_conn->conn_wait_comp_err); + isert_cq_drain_comp_llist(isert_conn, ib_dev); + + if (conn->sess) { + target_sess_cmd_list_set_waiting(conn->sess->se_sess); + target_wait_for_sess_cmds(conn->sess->se_sess); } + + while (atomic_read(&isert_conn->post_send_buf_count)) + msleep(3000); + + mutex_lock(&isert_conn->conn_mutex); + isert_conn_terminate(isert_conn); + mutex_unlock(&isert_conn->conn_mutex); + + iscsit_cause_connection_reinstatement(isert_conn->conn, 0); + + complete(&isert_conn->conn_wait_comp_err); } static void @@ -1723,8 +1907,14 @@ pr_debug("TX wc.status != IB_WC_SUCCESS >>>>>>>>>>>>>>\n"); pr_debug("TX wc.status: 0x%08x\n", wc.status); pr_debug("TX wc.vendor_err: 0x%08x\n", wc.vendor_err); - atomic_dec(&isert_conn->post_send_buf_count); - isert_cq_comp_err(tx_desc, isert_conn); + + if (wc.wr_id != ISER_FASTREG_LI_WRID) { + if (tx_desc->llnode_active) + continue; + + atomic_dec(&isert_conn->post_send_buf_count); + isert_cq_tx_comp_err(tx_desc, isert_conn); + } } } @@ -1767,7 +1957,7 @@ wc.vendor_err); } isert_conn->post_recv_buf_count--; - isert_cq_comp_err(NULL, isert_conn); + isert_cq_rx_comp_err(isert_conn); } } @@ -1841,7 +2031,7 @@ isert_cmd->tx_desc.num_sge = 2; } - isert_init_send_wr(isert_conn, isert_cmd, send_wr, true); + isert_init_send_wr(isert_conn, isert_cmd, send_wr, false); pr_debug("Posting SCSI Response IB_WR_SEND >>>>>>>>>>>>>>>>>>>>>>\n"); @@ -1948,7 +2138,7 @@ int rc; isert_create_send_desc(isert_conn, isert_cmd, &isert_cmd->tx_desc); - rc = iscsit_build_text_rsp(cmd, conn, hdr); + rc = iscsit_build_text_rsp(cmd, conn, hdr, ISCSI_INFINIBAND); if (rc < 0) return rc; @@ -2163,32 +2353,29 @@ static int isert_fast_reg_mr(struct fast_reg_descriptor *fr_desc, - struct isert_cmd *isert_cmd, struct isert_conn *isert_conn, - struct ib_sge *ib_sge, u32 offset, unsigned int data_len) + struct isert_conn *isert_conn, struct scatterlist *sg_start, + struct ib_sge *ib_sge, u32 sg_nents, u32 offset, + unsigned int data_len) { - struct iscsi_cmd *cmd = isert_cmd->iscsi_cmd; struct ib_device *ib_dev = isert_conn->conn_cm_id->device; - struct scatterlist *sg_start; - u32 sg_off, page_off; struct ib_send_wr fr_wr, inv_wr; struct ib_send_wr *bad_wr, *wr = NULL; + int ret, pagelist_len; + u32 page_off; u8 key; - int ret, sg_nents, pagelist_len; - sg_off = offset / PAGE_SIZE; - sg_start = &cmd->se_cmd.t_data_sg[sg_off]; - sg_nents = min_t(unsigned int, cmd->se_cmd.t_data_nents - sg_off, - ISCSI_ISER_SG_TABLESIZE); + sg_nents = min_t(unsigned int, sg_nents, ISCSI_ISER_SG_TABLESIZE); page_off = offset % PAGE_SIZE; - pr_debug("Cmd: %p use fr_desc %p sg_nents %d sg_off %d offset %u\n", - isert_cmd, fr_desc, sg_nents, sg_off, offset); + pr_debug("Use fr_desc %p sg_nents %d offset %u\n", + fr_desc, sg_nents, offset); pagelist_len = isert_map_fr_pagelist(ib_dev, sg_start, sg_nents, &fr_desc->data_frpl->page_list[0]); if (!fr_desc->valid) { memset(&inv_wr, 0, sizeof(inv_wr)); + inv_wr.wr_id = ISER_FASTREG_LI_WRID; inv_wr.opcode = IB_WR_LOCAL_INV; inv_wr.ex.invalidate_rkey = fr_desc->data_mr->rkey; wr = &inv_wr; @@ -2199,6 +2386,7 @@ /* Prepare FASTREG WR */ memset(&fr_wr, 0, sizeof(fr_wr)); + fr_wr.wr_id = ISER_FASTREG_LI_WRID; fr_wr.opcode = IB_WR_FAST_REG_MR; fr_wr.wr.fast_reg.iova_start = fr_desc->data_frpl->page_list[0] + page_off; @@ -2232,8 +2420,8 @@ } static int -isert_reg_rdma_frwr(struct iscsi_conn *conn, struct iscsi_cmd *cmd, - struct isert_rdma_wr *wr) +isert_reg_rdma(struct iscsi_conn *conn, struct iscsi_cmd *cmd, + struct isert_rdma_wr *wr) { struct se_cmd *se_cmd = &cmd->se_cmd; struct isert_cmd *isert_cmd = iscsit_priv_cmd(cmd); @@ -2251,9 +2439,9 @@ if (wr->iser_ib_op == ISER_IB_RDMA_WRITE) { data_left = se_cmd->data_length; } else { - sg_off = cmd->write_data_done / PAGE_SIZE; - data_left = se_cmd->data_length - cmd->write_data_done; offset = cmd->write_data_done; + sg_off = offset / PAGE_SIZE; + data_left = se_cmd->data_length - cmd->write_data_done; isert_cmd->tx_desc.isert_cmd = isert_cmd; } @@ -2311,16 +2499,16 @@ wr->fr_desc = NULL; } else { spin_lock_irqsave(&isert_conn->conn_lock, flags); - fr_desc = list_first_entry(&isert_conn->conn_frwr_pool, + fr_desc = list_first_entry(&isert_conn->conn_fr_pool, struct fast_reg_descriptor, list); list_del(&fr_desc->list); spin_unlock_irqrestore(&isert_conn->conn_lock, flags); wr->fr_desc = fr_desc; - ret = isert_fast_reg_mr(fr_desc, isert_cmd, isert_conn, - ib_sge, offset, data_len); + ret = isert_fast_reg_mr(fr_desc, isert_conn, sg_start, + ib_sge, sg_nents, offset, data_len); if (ret) { - list_add_tail(&fr_desc->list, &isert_conn->conn_frwr_pool); + list_add_tail(&fr_desc->list, &isert_conn->conn_fr_pool); goto unmap_sg; } } @@ -2362,14 +2550,14 @@ &isert_cmd->tx_desc.iscsi_header); isert_init_tx_hdrs(isert_conn, &isert_cmd->tx_desc); isert_init_send_wr(isert_conn, isert_cmd, - &isert_cmd->tx_desc.send_wr, true); + &isert_cmd->tx_desc.send_wr, false); - atomic_inc(&isert_conn->post_send_buf_count); + atomic_add(wr->send_wr_num + 1, &isert_conn->post_send_buf_count); rc = ib_post_send(isert_conn->conn_qp, wr->send_wr, &wr_failed); if (rc) { pr_warn("ib_post_send() failed for IB_WR_RDMA_WRITE\n"); - atomic_dec(&isert_conn->post_send_buf_count); + atomic_sub(wr->send_wr_num + 1, &isert_conn->post_send_buf_count); } pr_debug("Cmd: %p posted RDMA_WRITE + Response for iSER Data READ\n", isert_cmd); @@ -2397,12 +2585,12 @@ return rc; } - atomic_inc(&isert_conn->post_send_buf_count); + atomic_add(wr->send_wr_num, &isert_conn->post_send_buf_count); rc = ib_post_send(isert_conn->conn_qp, wr->send_wr, &wr_failed); if (rc) { pr_warn("ib_post_send() failed for IB_WR_RDMA_READ\n"); - atomic_dec(&isert_conn->post_send_buf_count); + atomic_sub(wr->send_wr_num, &isert_conn->post_send_buf_count); } pr_debug("Cmd: %p posted RDMA_READ memory for ISER Data WRITE\n", isert_cmd); @@ -2469,13 +2657,51 @@ return ret; } +struct rdma_cm_id * +isert_setup_id(struct isert_np *isert_np) +{ + struct iscsi_np *np = isert_np->np; + struct rdma_cm_id *id; + struct sockaddr *sa; + int ret; + + sa = (struct sockaddr *)&np->np_sockaddr; + pr_debug("ksockaddr: %p, sa: %p\n", &np->np_sockaddr, sa); + + id = rdma_create_id(isert_cma_handler, isert_np, + RDMA_PS_TCP, IB_QPT_RC); + if (IS_ERR(id)) { + pr_err("rdma_create_id() failed: %ld\n", PTR_ERR(id)); + ret = PTR_ERR(id); + goto out; + } + pr_debug("id %p context %p\n", id, id->context); + + ret = rdma_bind_addr(id, sa); + if (ret) { + pr_err("rdma_bind_addr() failed: %d\n", ret); + goto out_id; + } + + ret = rdma_listen(id, ISERT_RDMA_LISTEN_BACKLOG); + if (ret) { + pr_err("rdma_listen() failed: %d\n", ret); + goto out_id; + } + + return id; +out_id: + rdma_destroy_id(id); +out: + return ERR_PTR(ret); +} + static int isert_setup_np(struct iscsi_np *np, struct __kernel_sockaddr_storage *ksockaddr) { struct isert_np *isert_np; struct rdma_cm_id *isert_lid; - struct sockaddr *sa; int ret; isert_np = kzalloc(sizeof(struct isert_np), GFP_KERNEL); @@ -2483,13 +2709,12 @@ pr_err("Unable to allocate struct isert_np\n"); return -ENOMEM; } - init_waitqueue_head(&isert_np->np_accept_wq); + sema_init(&isert_np->np_sem, 0); mutex_init(&isert_np->np_accept_mutex); INIT_LIST_HEAD(&isert_np->np_accept_list); init_completion(&isert_np->np_login_comp); + isert_np->np = np; - sa = (struct sockaddr *)ksockaddr; - pr_debug("ksockaddr: %p, sa: %p\n", ksockaddr, sa); /* * Setup the np->np_sockaddr from the passed sockaddr setup * in iscsi_target_configfs.c code.. @@ -2497,50 +2722,21 @@ memcpy(&np->np_sockaddr, ksockaddr, sizeof(struct __kernel_sockaddr_storage)); - isert_lid = rdma_create_id(isert_cma_handler, np, RDMA_PS_TCP, - IB_QPT_RC); + isert_lid = isert_setup_id(isert_np); if (IS_ERR(isert_lid)) { - pr_err("rdma_create_id() for isert_listen_handler failed: %ld\n", - PTR_ERR(isert_lid)); ret = PTR_ERR(isert_lid); goto out; } - ret = rdma_bind_addr(isert_lid, sa); - if (ret) { - pr_err("rdma_bind_addr() for isert_lid failed: %d\n", ret); - goto out_lid; - } - - ret = rdma_listen(isert_lid, ISERT_RDMA_LISTEN_BACKLOG); - if (ret) { - pr_err("rdma_listen() for isert_lid failed: %d\n", ret); - goto out_lid; - } - isert_np->np_cm_id = isert_lid; np->np_context = isert_np; - pr_debug("Setup isert_lid->context: %p\n", isert_lid->context); return 0; -out_lid: - rdma_destroy_id(isert_lid); out: kfree(isert_np); - return ret; -} -static int -isert_check_accept_queue(struct isert_np *isert_np) -{ - int empty; - - mutex_lock(&isert_np->np_accept_mutex); - empty = list_empty(&isert_np->np_accept_list); - mutex_unlock(&isert_np->np_accept_mutex); - - return empty; + return ret; } static int @@ -2575,7 +2771,15 @@ struct isert_conn *isert_conn = (struct isert_conn *)conn->context; int ret; - pr_debug("isert_get_login_rx before conn_login_comp conn: %p\n", conn); + pr_info("before login_req comp conn: %p\n", isert_conn); + ret = wait_for_completion_interruptible(&isert_conn->login_req_comp); + if (ret) { + pr_err("isert_conn %p interrupted before got login req\n", + isert_conn); + return ret; + } + reinit_completion(&isert_conn->login_req_comp); + /* * For login requests after the first PDU, isert_rx_login_req() will * kick schedule_delayed_work(&conn->login_work) as the packet is @@ -2585,11 +2789,15 @@ if (!login->first_request) return 0; + isert_rx_login_req(isert_conn); + + pr_info("before conn_login_comp conn: %p\n", conn); ret = wait_for_completion_interruptible(&isert_conn->conn_login_comp); if (ret) return ret; - pr_debug("isert_get_login_rx processing login->req: %p\n", login->req); + pr_info("processing login->req: %p\n", login->req); + return 0; } @@ -2635,16 +2843,19 @@ int max_accept = 0, ret; accept_wait: - ret = wait_event_interruptible(isert_np->np_accept_wq, - !isert_check_accept_queue(isert_np) || - np->np_thread_state == ISCSI_NP_THREAD_RESET); + ret = down_interruptible(&isert_np->np_sem); if (max_accept > 5) return -ENODEV; spin_lock_bh(&np->np_thread_lock); - if (np->np_thread_state == ISCSI_NP_THREAD_RESET) { + if (np->np_thread_state >= ISCSI_NP_THREAD_RESET) { spin_unlock_bh(&np->np_thread_lock); - pr_err("ISCSI_NP_THREAD_RESET for isert_accept_np\n"); + pr_debug("np_thread_state %d for isert_accept_np\n", + np->np_thread_state); + /** + * No point in stalling here when np_thread + * is in state RESET/SHUTDOWN/EXIT - bail + **/ return -ENODEV; } spin_unlock_bh(&np->np_thread_lock); @@ -2664,17 +2875,10 @@ isert_conn->conn = conn; max_accept = 0; - ret = isert_rdma_post_recvl(isert_conn); - if (ret) - return ret; - - ret = isert_rdma_accept(isert_conn); - if (ret) - return ret; - isert_set_conn_info(np, conn, isert_conn); - pr_debug("Processing isert_accept_np: isert_conn: %p\n", isert_conn); + pr_debug("Processing isert_conn: %p\n", isert_conn); + return 0; } @@ -2683,69 +2887,58 @@ { struct isert_np *isert_np = (struct isert_np *)np->np_context; - rdma_destroy_id(isert_np->np_cm_id); + if (isert_np->np_cm_id) + rdma_destroy_id(isert_np->np_cm_id); np->np_context = NULL; kfree(isert_np); } -static int isert_check_state(struct isert_conn *isert_conn, int state) +static void isert_release_work(struct work_struct *work) { - int ret; + struct isert_conn *isert_conn = container_of(work, + struct isert_conn, + release_work); + + pr_info("Starting release conn %p\n", isert_conn); + + wait_for_completion(&isert_conn->conn_wait); mutex_lock(&isert_conn->conn_mutex); - ret = (isert_conn->state == state); + isert_conn->state = ISER_CONN_DOWN; mutex_unlock(&isert_conn->conn_mutex); - return ret; + pr_info("Destroying conn %p\n", isert_conn); + isert_put_conn(isert_conn); } -static void isert_free_conn(struct iscsi_conn *conn) +static void isert_wait_conn(struct iscsi_conn *conn) { struct isert_conn *isert_conn = conn->context; - pr_debug("isert_free_conn: Starting \n"); - /* - * Decrement post_send_buf_count for special case when called - * from isert_do_control_comp() -> iscsit_logout_post_handler() - */ - mutex_lock(&isert_conn->conn_mutex); - if (isert_conn->logout_posted) - atomic_dec(&isert_conn->post_send_buf_count); + pr_debug("isert_wait_conn: Starting \n"); - if (isert_conn->conn_cm_id && isert_conn->state != ISER_CONN_DOWN) { - pr_debug("Calling rdma_disconnect from isert_free_conn\n"); - rdma_disconnect(isert_conn->conn_cm_id); - } + mutex_lock(&isert_conn->conn_mutex); /* * Only wait for conn_wait_comp_err if the isert_conn made it * into full feature phase.. */ - if (isert_conn->state == ISER_CONN_UP) { - pr_debug("isert_free_conn: Before wait_event comp_err %d\n", - isert_conn->state); - mutex_unlock(&isert_conn->conn_mutex); - - wait_event(isert_conn->conn_wait_comp_err, - (isert_check_state(isert_conn, ISER_CONN_TERMINATING))); - - wait_event(isert_conn->conn_wait, - (isert_check_state(isert_conn, ISER_CONN_DOWN))); - - isert_put_conn(isert_conn); - return; - } if (isert_conn->state == ISER_CONN_INIT) { mutex_unlock(&isert_conn->conn_mutex); - isert_put_conn(isert_conn); return; } - pr_debug("isert_free_conn: wait_event conn_wait %d\n", - isert_conn->state); + isert_conn_terminate(isert_conn); mutex_unlock(&isert_conn->conn_mutex); - wait_event(isert_conn->conn_wait, - (isert_check_state(isert_conn, ISER_CONN_DOWN))); + wait_for_completion(&isert_conn->conn_wait_comp_err); + + INIT_WORK(&isert_conn->release_work, isert_release_work); + queue_work(isert_release_wq, &isert_conn->release_work); +} + +static void isert_free_conn(struct iscsi_conn *conn) +{ + struct isert_conn *isert_conn = conn->context; isert_put_conn(isert_conn); } @@ -2758,6 +2951,7 @@ .iscsit_setup_np = isert_setup_np, .iscsit_accept_np = isert_accept_np, .iscsit_free_np = isert_free_np, + .iscsit_wait_conn = isert_wait_conn, .iscsit_free_conn = isert_free_conn, .iscsit_get_login_rx = isert_get_login_rx, .iscsit_put_login_tx = isert_put_login_tx, @@ -2785,10 +2979,21 @@ goto destroy_rx_wq; } + isert_release_wq = alloc_workqueue("isert_release_wq", WQ_UNBOUND, + WQ_UNBOUND_MAX_ACTIVE); + if (!isert_release_wq) { + pr_err("Unable to allocate isert_release_wq\n"); + ret = -ENOMEM; + goto destroy_comp_wq; + } + iscsit_register_transport(&iser_target_transport); - pr_debug("iSER_TARGET[0] - Loaded iser_target_transport\n"); + pr_info("iSER_TARGET[0] - Loaded iser_target_transport\n"); + return 0; +destroy_comp_wq: + destroy_workqueue(isert_comp_wq); destroy_rx_wq: destroy_workqueue(isert_rx_wq); return ret; @@ -2796,6 +3001,8 @@ static void __exit isert_exit(void) { + flush_scheduled_work(); + destroy_workqueue(isert_release_wq); destroy_workqueue(isert_comp_wq); destroy_workqueue(isert_rx_wq); iscsit_unregister_transport(&iser_target_transport); --- linux-3.13.0.orig/drivers/infiniband/ulp/isert/ib_isert.h +++ linux-3.13.0/drivers/infiniband/ulp/isert/ib_isert.h @@ -6,6 +6,7 @@ #define ISERT_RDMA_LISTEN_BACKLOG 10 #define ISCSI_ISER_SG_TABLESIZE 256 +#define ISER_FASTREG_LI_WRID 0xffffffffffffffffULL enum isert_desc_type { ISCSI_TX_CONTROL, @@ -22,6 +23,7 @@ enum iser_conn_state { ISER_CONN_INIT, ISER_CONN_UP, + ISER_CONN_FULL_FEATURE, ISER_CONN_TERMINATING, ISER_CONN_DOWN, }; @@ -45,6 +47,7 @@ struct isert_cmd *isert_cmd; struct llist_node *comp_llnode_batch; struct llist_node comp_llnode; + bool llnode_active; struct ib_send_wr send_wr; } __packed; @@ -91,7 +94,6 @@ struct isert_conn { enum iser_conn_state state; - bool logout_posted; int post_recv_buf_count; atomic_t post_send_buf_count; u32 responder_resources; @@ -101,6 +103,7 @@ char *login_req_buf; char *login_rsp_buf; u64 login_req_dma; + int login_req_len; u64 login_rsp_dma; unsigned int conn_rx_desc_head; struct iser_rx_desc *conn_rx_descs; @@ -108,25 +111,25 @@ struct iscsi_conn *conn; struct list_head conn_accept_node; struct completion conn_login_comp; + struct completion login_req_comp; struct iser_tx_desc conn_login_tx_desc; struct rdma_cm_id *conn_cm_id; struct ib_pd *conn_pd; struct ib_mr *conn_mr; struct ib_qp *conn_qp; struct isert_device *conn_device; - struct work_struct conn_logout_work; struct mutex conn_mutex; - wait_queue_head_t conn_wait; - wait_queue_head_t conn_wait_comp_err; + struct completion conn_wait; + struct completion conn_wait_comp_err; struct kref conn_kref; - struct list_head conn_frwr_pool; - int conn_frwr_pool_size; - /* lock to protect frwr_pool */ + struct list_head conn_fr_pool; + int conn_fr_pool_size; + /* lock to protect fastreg pool */ spinlock_t conn_lock; + struct work_struct release_work; #define ISERT_COMP_BATCH_COUNT 8 int conn_comp_batch; struct llist_head conn_comp_llist; - struct mutex conn_comp_mutex; }; #define ISERT_MAX_CQ 64 @@ -139,13 +142,11 @@ }; struct isert_device { - int use_frwr; + int use_fastreg; int cqs_used; int refcount; int cq_active_qps[ISERT_MAX_CQ]; struct ib_device *ib_device; - struct ib_pd *dev_pd; - struct ib_mr *dev_mr; struct ib_cq *dev_rx_cq[ISERT_MAX_CQ]; struct ib_cq *dev_tx_cq[ISERT_MAX_CQ]; struct isert_cq_desc *cq_desc; @@ -159,7 +160,8 @@ }; struct isert_np { - wait_queue_head_t np_accept_wq; + struct iscsi_np *np; + struct semaphore np_sem; struct rdma_cm_id *np_cm_id; struct mutex np_accept_mutex; struct list_head np_accept_list; --- linux-3.13.0.orig/drivers/infiniband/ulp/srp/ib_srp.c +++ linux-3.13.0/drivers/infiniband/ulp/srp/ib_srp.c @@ -120,6 +120,7 @@ static int srp_cm_handler(struct ib_cm_id *cm_id, struct ib_cm_event *event); static struct scsi_transport_template *ib_srp_transport_template; +static struct workqueue_struct *srp_remove_wq; static struct ib_client srp_client = { .name = "srp", @@ -539,7 +540,7 @@ spin_unlock_irq(&target->lock); if (changed) - queue_work(system_long_wq, &target->remove_work); + queue_work(srp_remove_wq, &target->remove_work); return changed; } @@ -1575,6 +1576,12 @@ err_iu: srp_put_tx_iu(target, iu, SRP_IU_CMD); + /* + * Avoid that the loops that iterate over the request ring can + * encounter a dangling SCSI command pointer. + */ + req->scmnd = NULL; + spin_lock_irqsave(&target->lock, flags); list_add(&req->list, &target->free_reqs); @@ -2879,9 +2886,10 @@ spin_unlock(&host->target_lock); /* - * Wait for target port removal tasks. + * Wait for tl_err and target port removal tasks. */ flush_workqueue(system_long_wq); + flush_workqueue(srp_remove_wq); kfree(host); } @@ -2933,16 +2941,22 @@ indirect_sg_entries = cmd_sg_entries; } + srp_remove_wq = create_workqueue("srp_remove"); + if (IS_ERR(srp_remove_wq)) { + ret = PTR_ERR(srp_remove_wq); + goto out; + } + + ret = -ENOMEM; ib_srp_transport_template = srp_attach_transport(&ib_srp_transport_functions); if (!ib_srp_transport_template) - return -ENOMEM; + goto destroy_wq; ret = class_register(&srp_class); if (ret) { pr_err("couldn't register class infiniband_srp\n"); - srp_release_transport(ib_srp_transport_template); - return ret; + goto release_tr; } ib_sa_register_client(&srp_sa_client); @@ -2950,13 +2964,22 @@ ret = ib_register_client(&srp_client); if (ret) { pr_err("couldn't register IB client\n"); - srp_release_transport(ib_srp_transport_template); - ib_sa_unregister_client(&srp_sa_client); - class_unregister(&srp_class); - return ret; + goto unreg_sa; } - return 0; +out: + return ret; + +unreg_sa: + ib_sa_unregister_client(&srp_sa_client); + class_unregister(&srp_class); + +release_tr: + srp_release_transport(ib_srp_transport_template); + +destroy_wq: + destroy_workqueue(srp_remove_wq); + goto out; } static void __exit srp_cleanup_module(void) @@ -2965,6 +2988,7 @@ ib_sa_unregister_client(&srp_sa_client); class_unregister(&srp_class); srp_release_transport(ib_srp_transport_template); + destroy_workqueue(srp_remove_wq); } module_init(srp_init_module); --- linux-3.13.0.orig/drivers/infiniband/ulp/srpt/ib_srpt.c +++ linux-3.13.0/drivers/infiniband/ulp/srpt/ib_srpt.c @@ -1078,6 +1078,7 @@ static int srpt_map_sg_to_ib_sge(struct srpt_rdma_ch *ch, struct srpt_send_ioctx *ioctx) { + struct ib_device *dev = ch->sport->sdev->device; struct se_cmd *cmd; struct scatterlist *sg, *sg_orig; int sg_cnt; @@ -1124,7 +1125,7 @@ db = ioctx->rbufs; tsize = cmd->data_length; - dma_len = sg_dma_len(&sg[0]); + dma_len = ib_sg_dma_len(dev, &sg[0]); riu = ioctx->rdma_ius; /* @@ -1155,7 +1156,8 @@ ++j; if (j < count) { sg = sg_next(sg); - dma_len = sg_dma_len(sg); + dma_len = ib_sg_dma_len( + dev, sg); } } } else { @@ -1192,8 +1194,8 @@ tsize = cmd->data_length; riu = ioctx->rdma_ius; sg = sg_orig; - dma_len = sg_dma_len(&sg[0]); - dma_addr = sg_dma_address(&sg[0]); + dma_len = ib_sg_dma_len(dev, &sg[0]); + dma_addr = ib_sg_dma_address(dev, &sg[0]); /* this second loop is really mapped sg_addres to rdma_iu->ib_sge */ for (i = 0, j = 0; @@ -1216,8 +1218,10 @@ ++j; if (j < count) { sg = sg_next(sg); - dma_len = sg_dma_len(sg); - dma_addr = sg_dma_address(sg); + dma_len = ib_sg_dma_len( + dev, sg); + dma_addr = ib_sg_dma_address( + dev, sg); } } } else { @@ -2087,6 +2091,7 @@ if (!qp_init) goto out; +retry: ch->cq = ib_create_cq(sdev->device, srpt_completion, NULL, ch, ch->rq_size + srp_sq_size, 0); if (IS_ERR(ch->cq)) { @@ -2110,6 +2115,13 @@ ch->qp = ib_create_qp(sdev->pd, qp_init); if (IS_ERR(ch->qp)) { ret = PTR_ERR(ch->qp); + if (ret == -ENOMEM) { + srp_sq_size /= 2; + if (srp_sq_size >= MIN_SRPT_SQ_SIZE) { + ib_destroy_cq(ch->cq); + goto retry; + } + } printk(KERN_ERR "failed to create_qp ret= %d\n", ret); goto err_destroy_cq; } @@ -3666,9 +3678,9 @@ unsigned long val; int ret; - ret = strict_strtoul(page, 0, &val); + ret = kstrtoul(page, 0, &val); if (ret < 0) { - pr_err("strict_strtoul() failed with ret: %d\n", ret); + pr_err("kstrtoul() failed with ret: %d\n", ret); return -EINVAL; } if (val > MAX_SRPT_RDMA_SIZE) { @@ -3706,9 +3718,9 @@ unsigned long val; int ret; - ret = strict_strtoul(page, 0, &val); + ret = kstrtoul(page, 0, &val); if (ret < 0) { - pr_err("strict_strtoul() failed with ret: %d\n", ret); + pr_err("kstrtoul() failed with ret: %d\n", ret); return -EINVAL; } if (val > MAX_SRPT_RSP_SIZE) { @@ -3746,9 +3758,9 @@ unsigned long val; int ret; - ret = strict_strtoul(page, 0, &val); + ret = kstrtoul(page, 0, &val); if (ret < 0) { - pr_err("strict_strtoul() failed with ret: %d\n", ret); + pr_err("kstrtoul() failed with ret: %d\n", ret); return -EINVAL; } if (val > MAX_SRPT_SRQ_SIZE) { @@ -3793,7 +3805,7 @@ unsigned long tmp; int ret; - ret = strict_strtoul(page, 0, &tmp); + ret = kstrtoul(page, 0, &tmp); if (ret < 0) { printk(KERN_ERR "Unable to extract srpt_tpg_store_enable\n"); return -EINVAL; --- linux-3.13.0.orig/drivers/input/evdev.c +++ linux-3.13.0/drivers/input/evdev.c @@ -422,7 +422,7 @@ err_free_client: evdev_detach_client(evdev, client); - kfree(client); + kvfree(client); return error; } --- linux-3.13.0.orig/drivers/input/input.c +++ linux-3.13.0/drivers/input/input.c @@ -257,9 +257,10 @@ } static int input_get_disposition(struct input_dev *dev, - unsigned int type, unsigned int code, int value) + unsigned int type, unsigned int code, int *pval) { int disposition = INPUT_IGNORE_EVENT; + int value = *pval; switch (type) { @@ -357,6 +358,7 @@ break; } + *pval = value; return disposition; } @@ -365,7 +367,7 @@ { int disposition; - disposition = input_get_disposition(dev, type, code, value); + disposition = input_get_disposition(dev, type, code, &value); if ((disposition & INPUT_PASS_TO_DEVICE) && dev->event) dev->event(dev, type, code, value); --- linux-3.13.0.orig/drivers/input/joystick/xpad.c +++ linux-3.13.0/drivers/input/joystick/xpad.c @@ -1002,9 +1002,19 @@ } ep_irq_in = &intf->cur_altsetting->endpoint[1].desc; - usb_fill_bulk_urb(xpad->bulk_out, udev, - usb_sndbulkpipe(udev, ep_irq_in->bEndpointAddress), - xpad->bdata, XPAD_PKT_LEN, xpad_bulk_out, xpad); + if (usb_endpoint_is_bulk_out(ep_irq_in)) { + usb_fill_bulk_urb(xpad->bulk_out, udev, + usb_sndbulkpipe(udev, + ep_irq_in->bEndpointAddress), + xpad->bdata, XPAD_PKT_LEN, + xpad_bulk_out, xpad); + } else { + usb_fill_int_urb(xpad->bulk_out, udev, + usb_sndintpipe(udev, + ep_irq_in->bEndpointAddress), + xpad->bdata, XPAD_PKT_LEN, + xpad_bulk_out, xpad, 0); + } /* * Submit the int URB immediately rather than waiting for open --- linux-3.13.0.orig/drivers/input/keyboard/atkbd.c +++ linux-3.13.0/drivers/input/keyboard/atkbd.c @@ -243,6 +243,12 @@ static void *atkbd_platform_fixup_data; static unsigned int (*atkbd_platform_scancode_fixup)(struct atkbd *, unsigned int); +/* + * Certain keyboards to not like ATKBD_CMD_RESET_DIS and stop responding + * to many commands until full reset (ATKBD_CMD_RESET_BAT) is performed. + */ +static bool atkbd_skip_deactivate; + static ssize_t atkbd_attr_show_helper(struct device *dev, char *buf, ssize_t (*handler)(struct atkbd *, char *)); static ssize_t atkbd_attr_set_helper(struct device *dev, const char *buf, size_t count, @@ -768,7 +774,8 @@ * Make sure nothing is coming from the keyboard and disturbs our * internal state. */ - atkbd_deactivate(atkbd); + if (!atkbd_skip_deactivate) + atkbd_deactivate(atkbd); return 0; } @@ -1638,6 +1645,12 @@ return 1; } +static int __init atkbd_deactivate_fixup(const struct dmi_system_id *id) +{ + atkbd_skip_deactivate = true; + return 1; +} + static const struct dmi_system_id atkbd_dmi_quirk_table[] __initconst = { { .matches = { @@ -1775,6 +1788,12 @@ .callback = atkbd_setup_scancode_fixup, .driver_data = atkbd_oqo_01plus_scancode_fixup, }, + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LG Electronics"), + }, + .callback = atkbd_deactivate_fixup, + }, { } }; --- linux-3.13.0.orig/drivers/input/misc/arizona-haptics.c +++ linux-3.13.0/drivers/input/misc/arizona-haptics.c @@ -77,16 +77,14 @@ return; } + mutex_unlock(dapm_mutex); + ret = snd_soc_dapm_sync(arizona->dapm); if (ret != 0) { dev_err(arizona->dev, "Failed to sync DAPM: %d\n", ret); - mutex_unlock(dapm_mutex); return; } - - mutex_unlock(dapm_mutex); - } else { /* This disable sequence will be a noop if already enabled */ mutex_lock_nested(dapm_mutex, SND_SOC_DAPM_CLASS_RUNTIME); @@ -99,16 +97,15 @@ return; } + mutex_unlock(dapm_mutex); + ret = snd_soc_dapm_sync(arizona->dapm); if (ret != 0) { dev_err(arizona->dev, "Failed to sync DAPM: %d\n", ret); - mutex_unlock(dapm_mutex); return; } - mutex_unlock(dapm_mutex); - ret = regmap_update_bits(arizona->regmap, ARIZONA_HAPTICS_CONTROL_1, ARIZONA_HAP_CTRL_MASK, --- linux-3.13.0.orig/drivers/input/misc/xen-kbdfront.c +++ linux-3.13.0/drivers/input/misc/xen-kbdfront.c @@ -29,6 +29,7 @@ #include #include #include +#include struct xenkbd_info { struct input_dev *kbd; @@ -380,6 +381,9 @@ if (xen_initial_domain()) return -ENODEV; + if (!xen_has_pv_devices()) + return -ENODEV; + return xenbus_register_frontend(&xenkbd_driver); } --- linux-3.13.0.orig/drivers/input/mouse/alps.c +++ linux-3.13.0/drivers/input/mouse/alps.c @@ -277,6 +277,57 @@ } /* + * Process bitmap data for V5 protocols. Return value is null. + * + * The bitmaps don't have enough data to track fingers, so this function + * only generates points representing a bounding box of at most two contacts. + * These two points are returned in x1, y1, x2, and y2. + */ +static void alps_process_bitmap_dolphin(struct alps_data *priv, + struct alps_fields *fields, + int *x1, int *y1, int *x2, int *y2) +{ + int box_middle_x, box_middle_y; + unsigned int x_map, y_map; + unsigned char start_bit, end_bit; + unsigned char x_msb, x_lsb, y_msb, y_lsb; + + x_map = fields->x_map; + y_map = fields->y_map; + + if (!x_map || !y_map) + return; + + /* Get Most-significant and Least-significant bit */ + x_msb = fls(x_map); + x_lsb = ffs(x_map); + y_msb = fls(y_map); + y_lsb = ffs(y_map); + + /* Most-significant bit should never exceed max sensor line number */ + if (x_msb > priv->x_bits || y_msb > priv->y_bits) + return; + + *x1 = *y1 = *x2 = *y2 = 0; + + if (fields->fingers > 1) { + start_bit = priv->x_bits - x_msb; + end_bit = priv->x_bits - x_lsb; + box_middle_x = (priv->x_max * (start_bit + end_bit)) / + (2 * (priv->x_bits - 1)); + + start_bit = y_lsb - 1; + end_bit = y_msb - 1; + box_middle_y = (priv->y_max * (start_bit + end_bit)) / + (2 * (priv->y_bits - 1)); + *x1 = fields->x; + *y1 = fields->y; + *x2 = 2 * box_middle_x - *x1; + *y2 = 2 * box_middle_y - *y1; + } +} + +/* * Process bitmap data from v3 and v4 protocols. Returns the number of * fingers detected. A return value of 0 means at least one of the * bitmaps was empty. @@ -481,7 +532,8 @@ f->ts_middle = !!(p[3] & 0x40); } -static void alps_decode_pinnacle(struct alps_fields *f, unsigned char *p) +static void alps_decode_pinnacle(struct alps_fields *f, unsigned char *p, + struct psmouse *psmouse) { f->first_mp = !!(p[4] & 0x40); f->is_mp = !!(p[0] & 0x40); @@ -502,48 +554,61 @@ alps_decode_buttons_v3(f, p); } -static void alps_decode_rushmore(struct alps_fields *f, unsigned char *p) +static void alps_decode_rushmore(struct alps_fields *f, unsigned char *p, + struct psmouse *psmouse) { - alps_decode_pinnacle(f, p); + alps_decode_pinnacle(f, p, psmouse); f->x_map |= (p[5] & 0x10) << 11; f->y_map |= (p[5] & 0x20) << 6; } -static void alps_decode_dolphin(struct alps_fields *f, unsigned char *p) +static void alps_decode_dolphin(struct alps_fields *f, unsigned char *p, + struct psmouse *psmouse) { + u64 palm_data = 0; + struct alps_data *priv = psmouse->private; + f->first_mp = !!(p[0] & 0x02); f->is_mp = !!(p[0] & 0x20); - f->fingers = ((p[0] & 0x6) >> 1 | + if (!f->is_mp) { + f->x = ((p[1] & 0x7f) | ((p[4] & 0x0f) << 7)); + f->y = ((p[2] & 0x7f) | ((p[4] & 0xf0) << 3)); + f->z = (p[0] & 4) ? 0 : p[5] & 0x7f; + alps_decode_buttons_v3(f, p); + } else { + f->fingers = ((p[0] & 0x6) >> 1 | (p[0] & 0x10) >> 2); - f->x_map = ((p[2] & 0x60) >> 5) | - ((p[4] & 0x7f) << 2) | - ((p[5] & 0x7f) << 9) | - ((p[3] & 0x07) << 16) | - ((p[3] & 0x70) << 15) | - ((p[0] & 0x01) << 22); - f->y_map = (p[1] & 0x7f) | - ((p[2] & 0x1f) << 7); - - f->x = ((p[1] & 0x7f) | ((p[4] & 0x0f) << 7)); - f->y = ((p[2] & 0x7f) | ((p[4] & 0xf0) << 3)); - f->z = (p[0] & 4) ? 0 : p[5] & 0x7f; - alps_decode_buttons_v3(f, p); + palm_data = (p[1] & 0x7f) | + ((p[2] & 0x7f) << 7) | + ((p[4] & 0x7f) << 14) | + ((p[5] & 0x7f) << 21) | + ((p[3] & 0x07) << 28) | + (((u64)p[3] & 0x70) << 27) | + (((u64)p[0] & 0x01) << 34); + + /* Y-profile is stored in P(0) to p(n-1), n = y_bits; */ + f->y_map = palm_data & (BIT(priv->y_bits) - 1); + + /* X-profile is stored in p(n) to p(n+m-1), m = x_bits; */ + f->x_map = (palm_data >> priv->y_bits) & + (BIT(priv->x_bits) - 1); + } } -static void alps_process_touchpad_packet_v3(struct psmouse *psmouse) +static void alps_process_touchpad_packet_v3_v5(struct psmouse *psmouse) { struct alps_data *priv = psmouse->private; unsigned char *packet = psmouse->packet; struct input_dev *dev = psmouse->dev; struct input_dev *dev2 = priv->dev2; int x1 = 0, y1 = 0, x2 = 0, y2 = 0; - int fingers = 0, bmap_fingers; - struct alps_fields f; + int fingers = 0, bmap_fn; + struct alps_fields f = {0}; - priv->decode_fields(&f, packet); + priv->decode_fields(&f, packet, psmouse); /* * There's no single feature of touchpad position and bitmap packets @@ -560,19 +625,38 @@ */ if (f.is_mp) { fingers = f.fingers; - bmap_fingers = alps_process_bitmap(priv, - f.x_map, f.y_map, - &x1, &y1, &x2, &y2); - - /* - * We shouldn't report more than one finger if - * we don't have two coordinates. - */ - if (fingers > 1 && bmap_fingers < 2) - fingers = bmap_fingers; - - /* Now process position packet */ - priv->decode_fields(&f, priv->multi_data); + if (priv->proto_version == ALPS_PROTO_V3) { + bmap_fn = alps_process_bitmap(priv, f.x_map, + f.y_map, &x1, &y1, + &x2, &y2); + + /* + * We shouldn't report more than one finger if + * we don't have two coordinates. + */ + if (fingers > 1 && bmap_fn < 2) + fingers = bmap_fn; + + /* Now process position packet */ + priv->decode_fields(&f, priv->multi_data, + psmouse); + } else { + /* + * Because Dolphin uses position packet's + * coordinate data as Pt1 and uses it to + * calculate Pt2, so we need to do position + * packet decode first. + */ + priv->decode_fields(&f, priv->multi_data, + psmouse); + + /* + * Since Dolphin's finger number is reliable, + * there is no need to compare with bmap_fn. + */ + alps_process_bitmap_dolphin(priv, &f, &x1, &y1, + &x2, &y2); + } } else { priv->multi_packet = 0; } @@ -662,7 +746,7 @@ return; } - alps_process_touchpad_packet_v3(psmouse); + alps_process_touchpad_packet_v3_v5(psmouse); } static void alps_process_packet_v6(struct psmouse *psmouse) @@ -963,7 +1047,13 @@ { struct alps_data *priv = psmouse->private; - if ((psmouse->packet[0] & 0xc8) == 0x08) { /* PS/2 packet */ + /* + * Check if we are dealing with a bare PS/2 packet, presumably from + * a device connected to the external PS/2 port. Because bare PS/2 + * protocol does not have enough constant bits to self-synchronize + * properly we only do this if the device is fully synchronized. + */ + if (!psmouse->out_of_sync_cnt && (psmouse->packet[0] & 0xc8) == 0x08) { if (psmouse->pktcnt == 3) { alps_report_bare_ps2_packet(psmouse, psmouse->packet, true); @@ -987,12 +1077,27 @@ } /* Bytes 2 - pktsize should have 0 in the highest bit */ - if ((priv->proto_version < ALPS_PROTO_V5) && + if (priv->proto_version < ALPS_PROTO_V5 && psmouse->pktcnt >= 2 && psmouse->pktcnt <= psmouse->pktsize && (psmouse->packet[psmouse->pktcnt - 1] & 0x80)) { psmouse_dbg(psmouse, "refusing packet[%i] = %x\n", psmouse->pktcnt - 1, psmouse->packet[psmouse->pktcnt - 1]); + + if (priv->proto_version == ALPS_PROTO_V3 && + psmouse->pktcnt == psmouse->pktsize) { + /* + * Some Dell boxes, such as Latitude E6440 or E7440 + * with closed lid, quite often smash last byte of + * otherwise valid packet with 0xff. Given that the + * next packet is very likely to be valid let's + * report PSMOUSE_FULL_PACKET but not process data, + * rather than reporting PSMOUSE_BAD_DATA and + * filling the logs. + */ + return PSMOUSE_FULL_PACKET; + } + return PSMOUSE_BAD_DATA; } @@ -1709,6 +1814,52 @@ return -1; } +static int alps_dolphin_get_device_area(struct psmouse *psmouse, + struct alps_data *priv) +{ + struct ps2dev *ps2dev = &psmouse->ps2dev; + unsigned char param[4] = {0}; + int num_x_electrode, num_y_electrode; + + if (alps_enter_command_mode(psmouse)) + return -1; + + param[0] = 0x0a; + if (ps2_command(ps2dev, NULL, PSMOUSE_CMD_RESET_WRAP) || + ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETPOLL) || + ps2_command(ps2dev, NULL, PSMOUSE_CMD_SETPOLL) || + ps2_command(ps2dev, ¶m[0], PSMOUSE_CMD_SETRATE) || + ps2_command(ps2dev, ¶m[0], PSMOUSE_CMD_SETRATE)) + return -1; + + if (ps2_command(ps2dev, param, PSMOUSE_CMD_GETINFO)) + return -1; + + /* + * Dolphin's sensor line number is not fixed. It can be calculated + * by adding the device's register value with DOLPHIN_PROFILE_X/YOFFSET. + * Further more, we can get device's x_max and y_max by multiplying + * sensor line number with DOLPHIN_COUNT_PER_ELECTRODE. + * + * e.g. When we get register's sensor_x = 11 & sensor_y = 8, + * real sensor line number X = 11 + 8 = 19, and + * real sensor line number Y = 8 + 1 = 9. + * So, x_max = (19 - 1) * 64 = 1152, and + * y_max = (9 - 1) * 64 = 512. + */ + num_x_electrode = DOLPHIN_PROFILE_XOFFSET + (param[2] & 0x0F); + num_y_electrode = DOLPHIN_PROFILE_YOFFSET + ((param[2] >> 4) & 0x0F); + priv->x_bits = num_x_electrode; + priv->y_bits = num_y_electrode; + priv->x_max = (num_x_electrode - 1) * DOLPHIN_COUNT_PER_ELECTRODE; + priv->y_max = (num_y_electrode - 1) * DOLPHIN_COUNT_PER_ELECTRODE; + + if (alps_exit_command_mode(psmouse)) + return -1; + + return 0; +} + static int alps_hw_init_dolphin_v1(struct psmouse *psmouse) { struct ps2dev *ps2dev = &psmouse->ps2dev; @@ -1763,13 +1914,13 @@ break; case ALPS_PROTO_V5: priv->hw_init = alps_hw_init_dolphin_v1; - priv->process_packet = alps_process_packet_v3; + priv->process_packet = alps_process_touchpad_packet_v3_v5; priv->decode_fields = alps_decode_dolphin; priv->set_abs_params = alps_set_abs_params_mt; priv->nibble_commands = alps_v3_nibble_commands; priv->addr_command = PSMOUSE_CMD_RESET_WRAP; priv->byte0 = 0xc8; - priv->mask0 = 0xc8; + priv->mask0 = 0xd8; priv->flags = 0; priv->x_max = 1360; priv->y_max = 660; @@ -1845,11 +1996,13 @@ if (alps_match_table(psmouse, priv, e7, ec) == 0) { return 0; } else if (e7[0] == 0x73 && e7[1] == 0x03 && e7[2] == 0x50 && - ec[0] == 0x73 && ec[1] == 0x01) { + ec[0] == 0x73 && (ec[1] == 0x01 || ec[1] == 0x02)) { priv->proto_version = ALPS_PROTO_V5; alps_set_defaults(priv); - - return 0; + if (alps_dolphin_get_device_area(psmouse, priv)) + return -EIO; + else + return 0; } else if (ec[0] == 0x88 && ec[1] == 0x08) { priv->proto_version = ALPS_PROTO_V3; alps_set_defaults(priv); @@ -2016,6 +2169,9 @@ /* We are having trouble resyncing ALPS touchpads so disable it for now */ psmouse->resync_time = 0; + /* Allow 2 invalid packets without resetting device */ + psmouse->resetafter = psmouse->pktsize * 2; + return 0; init_fail: --- linux-3.13.0.orig/drivers/input/mouse/alps.h +++ linux-3.13.0/drivers/input/mouse/alps.h @@ -19,6 +19,10 @@ #define ALPS_PROTO_V5 5 #define ALPS_PROTO_V6 6 +#define DOLPHIN_COUNT_PER_ELECTRODE 64 +#define DOLPHIN_PROFILE_XOFFSET 8 /* x-electrode offset */ +#define DOLPHIN_PROFILE_YOFFSET 1 /* y-electrode offset */ + /** * struct alps_model_info - touchpad ID table * @signature: E7 response string to match. @@ -146,7 +150,8 @@ int (*hw_init)(struct psmouse *psmouse); void (*process_packet)(struct psmouse *psmouse); - void (*decode_fields)(struct alps_fields *f, unsigned char *p); + void (*decode_fields)(struct alps_fields *f, unsigned char *p, + struct psmouse *psmouse); void (*set_abs_params)(struct alps_data *priv, struct input_dev *dev1); int prev_fin; --- linux-3.13.0.orig/drivers/input/mouse/cypress_ps2.c +++ linux-3.13.0/drivers/input/mouse/cypress_ps2.c @@ -391,7 +391,9 @@ if (ret < 0) return ret; +#if ( CYPRESS_SIMULATED_MT != 1 ) __set_bit(INPUT_PROP_SEMI_MT, input->propbit); +#endif input_abs_set_res(input, ABS_X, cytp->tp_res_x); input_abs_set_res(input, ABS_Y, cytp->tp_res_y); @@ -410,7 +412,6 @@ __clear_bit(REL_X, input->relbit); __clear_bit(REL_Y, input->relbit); - __set_bit(INPUT_PROP_BUTTONPAD, input->propbit); __set_bit(EV_KEY, input->evbit); __set_bit(BTN_LEFT, input->keybit); __set_bit(BTN_RIGHT, input->keybit); @@ -480,6 +481,22 @@ ((packet[5] & 0x0f) << 8) | packet[7]; if (cytp->mode & CYTP_BIT_ABS_PRESSURE) report_data->contacts[1].z = report_data->contacts[0].z; +#if ( CYPRESS_SIMULATED_MT == 1 ) + /* simulate contact positions for >2 fingers */ + if ( report_data->contact_cnt >= 3 ) { + int i; + for ( i=1; icontact_cnt; i++ ) { + report_data->contacts[i].x = + report_data->contacts[0].x + + 100*(i)*((i%2)?-1:1); + report_data->contacts[i].y = + report_data->contacts[0].y; + if (cytp->mode & CYTP_BIT_ABS_PRESSURE) + report_data->contacts[i].z = + report_data->contacts[0].z; + } + } +#endif } report_data->left = (header_byte & BTN_LEFT_BIT) ? 1 : 0; --- linux-3.13.0.orig/drivers/input/mouse/cypress_ps2.h +++ linux-3.13.0/drivers/input/mouse/cypress_ps2.h @@ -130,7 +130,18 @@ #define RESP_REMOTE_BIT 0x40 #define RESP_SMBUS_BIT 0x80 -#define CYTP_MAX_MT_SLOTS 2 +/* + * CYPRESS_SIMULATED_MT + * set to 1 for simulated multitouch (up to 5 contact points) + * set to 0 for SEMI_MT (only 2 corner points, and count of fingers) + */ +#define CYPRESS_SIMULATED_MT 1 + +#if ( CYPRESS_SIMULATED_MT == 1 ) +# define CYTP_MAX_MT_SLOTS 5 +#else +# define CYTP_MAX_MT_SLOTS 2 +#endif struct cytp_contact { int x; --- linux-3.13.0.orig/drivers/input/mouse/elantech.c +++ linux-3.13.0/drivers/input/mouse/elantech.c @@ -11,6 +11,7 @@ */ #include +#include #include #include #include @@ -472,8 +473,15 @@ input_report_key(dev, BTN_TOOL_FINGER, fingers == 1); input_report_key(dev, BTN_TOOL_DOUBLETAP, fingers == 2); input_report_key(dev, BTN_TOOL_TRIPLETAP, fingers == 3); - input_report_key(dev, BTN_LEFT, packet[0] & 0x01); - input_report_key(dev, BTN_RIGHT, packet[0] & 0x02); + + /* For clickpads map both buttons to BTN_LEFT */ + if (etd->fw_version & 0x001000) { + input_report_key(dev, BTN_LEFT, packet[0] & 0x03); + } else { + input_report_key(dev, BTN_LEFT, packet[0] & 0x01); + input_report_key(dev, BTN_RIGHT, packet[0] & 0x02); + } + input_report_abs(dev, ABS_PRESSURE, pres); input_report_abs(dev, ABS_TOOL_WIDTH, width); @@ -483,9 +491,17 @@ static void elantech_input_sync_v4(struct psmouse *psmouse) { struct input_dev *dev = psmouse->dev; + struct elantech_data *etd = psmouse->private; unsigned char *packet = psmouse->packet; - input_report_key(dev, BTN_LEFT, packet[0] & 0x01); + /* For clickpads map both buttons to BTN_LEFT */ + if (etd->fw_version & 0x001000) { + input_report_key(dev, BTN_LEFT, packet[0] & 0x03); + } else { + input_report_key(dev, BTN_LEFT, packet[0] & 0x01); + input_report_key(dev, BTN_RIGHT, packet[0] & 0x02); + } + input_mt_report_pointer_emulation(dev, true); input_sync(dev); } @@ -830,7 +846,11 @@ break; case 3: - etd->reg_10 = 0x0b; + if (etd->set_hw_resolution) + etd->reg_10 = 0x0b; + else + etd->reg_10 = 0x01; + if (elantech_write_reg(psmouse, 0x10, etd->reg_10)) rc = -1; @@ -984,6 +1004,44 @@ } /* + * Advertise INPUT_PROP_BUTTONPAD for clickpads. The testing of bit 12 in + * fw_version for this is based on the following fw_version & caps table: + * + * Laptop-model: fw_version: caps: buttons: + * Acer S3 0x461f00 10, 13, 0e clickpad + * Acer S7-392 0x581f01 50, 17, 0d clickpad + * Acer V5-131 0x461f02 01, 16, 0c clickpad + * Acer V5-551 0x461f00 ? clickpad + * Asus K53SV 0x450f01 78, 15, 0c 2 hw buttons + * Asus G46VW 0x460f02 00, 18, 0c 2 hw buttons + * Asus G750JX 0x360f00 00, 16, 0c 2 hw buttons + * Asus UX31 0x361f00 20, 15, 0e clickpad + * Asus UX32VD 0x361f02 00, 15, 0e clickpad + * Avatar AVIU-145A2 0x361f00 ? clickpad + * Gigabyte U2442 0x450f01 58, 17, 0c 2 hw buttons + * Lenovo L430 0x350f02 b9, 15, 0c 2 hw buttons (*) + * Samsung NF210 0x150b00 78, 14, 0a 2 hw buttons + * Samsung NP770Z5E 0x575f01 10, 15, 0f clickpad + * Samsung NP700Z5B 0x361f06 21, 15, 0f clickpad + * Samsung NP900X3E-A02 0x575f03 ? clickpad + * Samsung NP-QX410 0x851b00 19, 14, 0c clickpad + * Samsung RC512 0x450f00 08, 15, 0c 2 hw buttons + * Samsung RF710 0x450f00 ? 2 hw buttons + * System76 Pangolin 0x250f01 ? 2 hw buttons + * (*) + 3 trackpoint buttons + */ +static void elantech_set_buttonpad_prop(struct psmouse *psmouse) +{ + struct input_dev *dev = psmouse->dev; + struct elantech_data *etd = psmouse->private; + + if (etd->fw_version & 0x001000) { + __set_bit(INPUT_PROP_BUTTONPAD, dev->propbit); + __clear_bit(BTN_RIGHT, dev->keybit); + } +} + +/* * Set the appropriate event bits for the input subsystem */ static int elantech_set_input_params(struct psmouse *psmouse) @@ -1026,6 +1084,8 @@ __set_bit(INPUT_PROP_SEMI_MT, dev->propbit); /* fall through */ case 3: + if (etd->hw_version == 3) + elantech_set_buttonpad_prop(psmouse); input_set_abs_params(dev, ABS_X, x_min, x_max, 0, 0); input_set_abs_params(dev, ABS_Y, y_min, y_max, 0, 0); if (etd->reports_pressure) { @@ -1047,9 +1107,7 @@ */ psmouse_warn(psmouse, "couldn't query resolution data.\n"); } - /* v4 is clickpad, with only one button. */ - __set_bit(INPUT_PROP_BUTTONPAD, dev->propbit); - __clear_bit(BTN_RIGHT, dev->keybit); + elantech_set_buttonpad_prop(psmouse); __set_bit(BTN_TOOL_QUADTAP, dev->keybit); /* For X to recognize me as touchpad. */ input_set_abs_params(dev, ABS_X, x_min, x_max, 0, 0); @@ -1195,6 +1253,13 @@ if (param[1] == 0) return true; + /* + * Some models have a revision higher then 20. Meaning param[2] may + * be 10 or 20, skip the rates check for these. + */ + if (param[0] == 0x46 && (param[1] & 0xef) == 0x0f && param[2] < 40) + return true; + for (i = 0; i < ARRAY_SIZE(rates); i++) if (param[2] == rates[i]) return false; @@ -1292,6 +1357,23 @@ } /* + * Some hw_version 3 models go into error state when we try to set + * bit 3 and/or bit 1 of r10. + */ +static const struct dmi_system_id no_hw_res_dmi_table[] = { +#if defined(CONFIG_DMI) && defined(CONFIG_X86) + { + /* Gigabyte U2442 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "GIGABYTE"), + DMI_MATCH(DMI_PRODUCT_NAME, "U2442"), + }, + }, +#endif + { } +}; + +/* * determine hardware version and set some properties according to it. */ static int elantech_set_properties(struct elantech_data *etd) @@ -1350,6 +1432,9 @@ */ etd->crc_enabled = ((etd->fw_version & 0x4000) == 0x4000); + /* Enable real hardware resolution on hw_version 3 ? */ + etd->set_hw_resolution = !dmi_check_system(no_hw_res_dmi_table); + return 0; } --- linux-3.13.0.orig/drivers/input/mouse/elantech.h +++ linux-3.13.0/drivers/input/mouse/elantech.h @@ -130,6 +130,7 @@ bool jumpy_cursor; bool reports_pressure; bool crc_enabled; + bool set_hw_resolution; unsigned char hw_version; unsigned int fw_version; unsigned int single_finger_reports; --- linux-3.13.0.orig/drivers/input/mouse/synaptics.c +++ linux-3.13.0/drivers/input/mouse/synaptics.c @@ -265,11 +265,22 @@ * Read touchpad resolution and maximum reported coordinates * Resolution is left zero if touchpad does not support the query */ + +static const int *quirk_min_max; + static int synaptics_resolution(struct psmouse *psmouse) { struct synaptics_data *priv = psmouse->private; unsigned char resp[3]; + if (quirk_min_max) { + priv->x_min = quirk_min_max[0]; + priv->x_max = quirk_min_max[1]; + priv->y_min = quirk_min_max[2]; + priv->y_max = quirk_min_max[3]; + return 0; + } + if (SYN_ID_MAJOR(priv->identity) < 4) return 0; @@ -527,6 +538,8 @@ priv->agm_pending = true; } +static bool is_forcepad; + static int synaptics_parse_hw_state(const unsigned char buf[], struct synaptics_data *priv, struct synaptics_hw_state *hw) @@ -538,10 +551,61 @@ ((buf[0] & 0x04) >> 1) | ((buf[3] & 0x04) >> 2)); + if ((SYN_CAP_ADV_GESTURE(priv->ext_cap_0c) || + SYN_CAP_IMAGE_SENSOR(priv->ext_cap_0c)) && + hw->w == 2) { + synaptics_parse_agm(buf, priv, hw); + return 1; + } + + hw->x = (((buf[3] & 0x10) << 8) | + ((buf[1] & 0x0f) << 8) | + buf[4]); + hw->y = (((buf[3] & 0x20) << 7) | + ((buf[1] & 0xf0) << 4) | + buf[5]); + hw->z = buf[2]; + hw->left = (buf[0] & 0x01) ? 1 : 0; hw->right = (buf[0] & 0x02) ? 1 : 0; - if (SYN_CAP_CLICKPAD(priv->ext_cap_0c)) { + if (is_forcepad) { + /* + * ForcePads, like Clickpads, use middle button + * bits to report primary button clicks. + * Unfortunately they report primary button not + * only when user presses on the pad above certain + * threshold, but also when there are more than one + * finger on the touchpad, which interferes with + * out multi-finger gestures. + */ + if (hw->z == 0) { + /* No contacts */ + priv->press = priv->report_press = false; + } else if (hw->w >= 4 && ((buf[0] ^ buf[3]) & 0x01)) { + /* + * Single-finger touch with pressure above + * the threshold. If pressure stays long + * enough, we'll start reporting primary + * button. We rely on the device continuing + * sending data even if finger does not + * move. + */ + if (!priv->press) { + priv->press_start = jiffies; + priv->press = true; + } else if (time_after(jiffies, + priv->press_start + + msecs_to_jiffies(50))) { + priv->report_press = true; + } + } else { + priv->press = false; + } + + hw->left = priv->report_press; + + } else if (SYN_CAP_CLICKPAD(priv->ext_cap_0c)) { /* * Clickpad's button is transmitted as middle button, * however, since it is primary button, we will report @@ -560,21 +624,6 @@ hw->down = ((buf[0] ^ buf[3]) & 0x02) ? 1 : 0; } - if ((SYN_CAP_ADV_GESTURE(priv->ext_cap_0c) || - SYN_CAP_IMAGE_SENSOR(priv->ext_cap_0c)) && - hw->w == 2) { - synaptics_parse_agm(buf, priv, hw); - return 1; - } - - hw->x = (((buf[3] & 0x10) << 8) | - ((buf[1] & 0x0f) << 8) | - buf[4]); - hw->y = (((buf[3] & 0x20) << 7) | - ((buf[1] & 0xf0) << 4) | - buf[5]); - hw->z = buf[2]; - if (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) && ((buf[0] ^ buf[3]) & 0x02)) { switch (SYN_CAP_MULTI_BUTTON_NO(priv->ext_cap) & ~0x01) { @@ -1317,7 +1366,9 @@ /* Clickpads report only left button */ __clear_bit(BTN_RIGHT, dev->keybit); __clear_bit(BTN_MIDDLE, dev->keybit); - } + } else if (SYN_CAP_CLICKPAD2BTN(priv->ext_cap_0c) || + SYN_CAP_CLICKPAD2BTN2(priv->ext_cap_0c)) + __set_bit(INPUT_PROP_BUTTONPAD, dev->propbit); } static ssize_t synaptics_show_disable_gesture(struct psmouse *psmouse, @@ -1485,10 +1536,130 @@ { } }; +static const struct dmi_system_id min_max_dmi_table[] __initconst = { +#if defined(CONFIG_DMI) + { + /* Lenovo ThinkPad Helix */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad Helix"), + }, + .driver_data = (int []){1024, 5052, 2258, 4832}, + }, + { + /* Lenovo ThinkPad X240 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X240"), + }, + .driver_data = (int []){1232, 5710, 1156, 4696}, + }, + { + /* Lenovo ThinkPad Edge E431 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad Edge E431"), + }, + .driver_data = (int []){1024, 5022, 2508, 4832}, + }, + { + /* Lenovo ThinkPad T431s */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T431"), + }, + .driver_data = (int []){1024, 5112, 2024, 4832}, + }, + { + /* Lenovo ThinkPad T440s */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T440"), + }, + .driver_data = (int []){1024, 5112, 2024, 4832}, + }, + { + /* Lenovo ThinkPad L440 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad L440"), + }, + .driver_data = (int []){1024, 5112, 2024, 4832}, + }, + { + /* Lenovo ThinkPad T540p */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T540"), + }, + .driver_data = (int []){1024, 5112, 2024, 4832}, + }, + { + /* Lenovo ThinkPad L540 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad L540"), + }, + .driver_data = (int []){1024, 5112, 2024, 4832}, + }, + { + /* Lenovo ThinkPad W540 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad W540"), + }, + .driver_data = (int []){1024, 5112, 2024, 4832}, + }, + { + /* Lenovo Yoga S1 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, + "ThinkPad S1 Yoga"), + }, + .driver_data = (int []){1232, 5710, 1156, 4696}, + }, + { + /* Lenovo ThinkPad X1 Carbon Haswell (3rd generation) */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, + "ThinkPad X1 Carbon 2nd"), + }, + .driver_data = (int []){1024, 5112, 2024, 4832}, + }, +#endif + { } +}; + +static const struct dmi_system_id forcepad_dmi_table[] __initconst = { +#if defined(CONFIG_DMI) && defined(CONFIG_X86) + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), + DMI_MATCH(DMI_PRODUCT_NAME, "HP EliteBook Folio 1040 G1"), + }, + }, +#endif + { } +}; + void __init synaptics_module_init(void) { + const struct dmi_system_id *min_max_dmi; + impaired_toshiba_kbc = dmi_check_system(toshiba_dmi_table); broken_olpc_ec = dmi_check_system(olpc_dmi_table); + + min_max_dmi = dmi_first_match(min_max_dmi_table); + if (min_max_dmi) + quirk_min_max = min_max_dmi->driver_data; + + /* + * Unfortunately ForcePad capability is not exported over PS/2, + * so we have to resort to checking DMI. + */ + is_forcepad = dmi_check_system(forcepad_dmi_table); } static int __synaptics_init(struct psmouse *psmouse, bool absolute_mode) --- linux-3.13.0.orig/drivers/input/mouse/synaptics.h +++ linux-3.13.0/drivers/input/mouse/synaptics.h @@ -77,10 +77,13 @@ * for noise. * 2 0x08 image sensor image sensor tracks 5 fingers, but only * reports 2. + * 2 0x01 uniform clickpad whole clickpad moves instead of being + * hinged at the top. * 2 0x20 report min query 0x0f gives min coord reported */ #define SYN_CAP_CLICKPAD(ex0c) ((ex0c) & 0x100000) /* 1-button ClickPad */ #define SYN_CAP_CLICKPAD2BTN(ex0c) ((ex0c) & 0x000100) /* 2-button ClickPad */ +#define SYN_CAP_CLICKPAD2BTN2(ex0c) ((ex0c) & 0x200000) /* 2-button ClickPad */ #define SYN_CAP_MAX_DIMENSIONS(ex0c) ((ex0c) & 0x020000) #define SYN_CAP_MIN_DIMENSIONS(ex0c) ((ex0c) & 0x002000) #define SYN_CAP_ADV_GESTURE(ex0c) ((ex0c) & 0x080000) @@ -177,6 +180,11 @@ */ struct synaptics_hw_state agm; bool agm_pending; /* new AGM packet received */ + + /* ForcePad handling */ + unsigned long press_start; + bool press; + bool report_press; }; void synaptics_module_init(void); --- linux-3.13.0.orig/drivers/input/mousedev.c +++ linux-3.13.0/drivers/input/mousedev.c @@ -67,7 +67,6 @@ struct device dev; struct cdev cdev; bool exist; - bool is_mixdev; struct list_head mixdev_node; bool opened_by_mixdev; @@ -77,6 +76,9 @@ int old_x[4], old_y[4]; int frac_dx, frac_dy; unsigned long touch; + + int (*open_device)(struct mousedev *mousedev); + void (*close_device)(struct mousedev *mousedev); }; enum mousedev_emul { @@ -116,9 +118,6 @@ static struct mousedev *mousedev_mix; static LIST_HEAD(mousedev_mix_list); -static void mixdev_open_devices(void); -static void mixdev_close_devices(void); - #define fx(i) (mousedev->old_x[(mousedev->pkt_count - (i)) & 03]) #define fy(i) (mousedev->old_y[(mousedev->pkt_count - (i)) & 03]) @@ -428,9 +427,7 @@ if (retval) return retval; - if (mousedev->is_mixdev) - mixdev_open_devices(); - else if (!mousedev->exist) + if (!mousedev->exist) retval = -ENODEV; else if (!mousedev->open++) { retval = input_open_device(&mousedev->handle); @@ -446,9 +443,7 @@ { mutex_lock(&mousedev->mutex); - if (mousedev->is_mixdev) - mixdev_close_devices(); - else if (mousedev->exist && !--mousedev->open) + if (mousedev->exist && !--mousedev->open) input_close_device(&mousedev->handle); mutex_unlock(&mousedev->mutex); @@ -459,21 +454,29 @@ * stream. Note that this function is called with mousedev_mix->mutex * held. */ -static void mixdev_open_devices(void) +static int mixdev_open_devices(struct mousedev *mixdev) { - struct mousedev *mousedev; + int error; + + error = mutex_lock_interruptible(&mixdev->mutex); + if (error) + return error; - if (mousedev_mix->open++) - return; + if (!mixdev->open++) { + struct mousedev *mousedev; - list_for_each_entry(mousedev, &mousedev_mix_list, mixdev_node) { - if (!mousedev->opened_by_mixdev) { - if (mousedev_open_device(mousedev)) - continue; + list_for_each_entry(mousedev, &mousedev_mix_list, mixdev_node) { + if (!mousedev->opened_by_mixdev) { + if (mousedev_open_device(mousedev)) + continue; - mousedev->opened_by_mixdev = true; + mousedev->opened_by_mixdev = true; + } } } + + mutex_unlock(&mixdev->mutex); + return 0; } /* @@ -481,19 +484,22 @@ * device. Note that this function is called with mousedev_mix->mutex * held. */ -static void mixdev_close_devices(void) +static void mixdev_close_devices(struct mousedev *mixdev) { - struct mousedev *mousedev; + mutex_lock(&mixdev->mutex); - if (--mousedev_mix->open) - return; + if (!--mixdev->open) { + struct mousedev *mousedev; - list_for_each_entry(mousedev, &mousedev_mix_list, mixdev_node) { - if (mousedev->opened_by_mixdev) { - mousedev->opened_by_mixdev = false; - mousedev_close_device(mousedev); + list_for_each_entry(mousedev, &mousedev_mix_list, mixdev_node) { + if (mousedev->opened_by_mixdev) { + mousedev->opened_by_mixdev = false; + mousedev_close_device(mousedev); + } } } + + mutex_unlock(&mixdev->mutex); } @@ -522,7 +528,7 @@ mousedev_detach_client(mousedev, client); kfree(client); - mousedev_close_device(mousedev); + mousedev->close_device(mousedev); return 0; } @@ -550,7 +556,7 @@ client->mousedev = mousedev; mousedev_attach_client(mousedev, client); - error = mousedev_open_device(mousedev); + error = mousedev->open_device(mousedev); if (error) goto err_free_client; @@ -861,16 +867,21 @@ if (mixdev) { dev_set_name(&mousedev->dev, "mice"); + + mousedev->open_device = mixdev_open_devices; + mousedev->close_device = mixdev_close_devices; } else { int dev_no = minor; /* Normalize device number if it falls into legacy range */ if (dev_no < MOUSEDEV_MINOR_BASE + MOUSEDEV_MINORS) dev_no -= MOUSEDEV_MINOR_BASE; dev_set_name(&mousedev->dev, "mouse%d", dev_no); + + mousedev->open_device = mousedev_open_device; + mousedev->close_device = mousedev_close_device; } mousedev->exist = true; - mousedev->is_mixdev = mixdev; mousedev->handle.dev = input_get_device(dev); mousedev->handle.name = dev_name(&mousedev->dev); mousedev->handle.handler = handler; @@ -919,7 +930,7 @@ device_del(&mousedev->dev); mousedev_cleanup(mousedev); input_free_minor(MINOR(mousedev->dev.devt)); - if (!mousedev->is_mixdev) + if (mousedev != mousedev_mix) input_unregister_handle(&mousedev->handle); put_device(&mousedev->dev); } --- linux-3.13.0.orig/drivers/input/serio/hyperv-keyboard.c +++ linux-3.13.0/drivers/input/serio/hyperv-keyboard.c @@ -160,7 +160,9 @@ if (info & IS_E0) serio_interrupt(kbd_dev->hv_serio, XTKBD_EMUL0, 0); - + if (info & IS_E1) + serio_interrupt(kbd_dev->hv_serio, + XTKBD_EMUL1, 0); scan_code = __le16_to_cpu(ks_msg->make_code); if (info & IS_BREAK) scan_code |= XTKBD_RELEASE; --- linux-3.13.0.orig/drivers/input/serio/i8042-x86ia64io.h +++ linux-3.13.0/drivers/input/serio/i8042-x86ia64io.h @@ -101,6 +101,12 @@ }, { .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "X750LN"), + }, + }, + { + .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Compaq"), DMI_MATCH(DMI_PRODUCT_NAME , "ProLiant"), DMI_MATCH(DMI_PRODUCT_VERSION, "8500"), @@ -458,6 +464,13 @@ DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion dv4 Notebook PC"), }, }, + { + /* Avatar AVIU-145A6 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Intel"), + DMI_MATCH(DMI_PRODUCT_NAME, "IC4I"), + }, + }, { } }; @@ -601,6 +614,30 @@ DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion dv4 Notebook PC"), }, }, + { + /* Fujitsu A544 laptop */ + /* https://bugzilla.redhat.com/show_bug.cgi?id=1111138 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), + DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK A544"), + }, + }, + { + /* Fujitsu AH544 laptop */ + /* https://bugzilla.kernel.org/show_bug.cgi?id=69731 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), + DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK AH544"), + }, + }, + { + /* Fujitsu U574 laptop */ + /* https://bugzilla.kernel.org/show_bug.cgi?id=69731 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), + DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK U574"), + }, + }, { } }; --- linux-3.13.0.orig/drivers/input/serio/serport.c +++ linux-3.13.0/drivers/input/serio/serport.c @@ -21,6 +21,7 @@ #include #include #include +#include MODULE_AUTHOR("Vojtech Pavlik "); MODULE_DESCRIPTION("Input device TTY line discipline"); @@ -196,28 +197,55 @@ return 0; } +static void serport_set_type(struct tty_struct *tty, unsigned long type) +{ + struct serport *serport = tty->disc_data; + + serport->id.proto = type & 0x000000ff; + serport->id.id = (type & 0x0000ff00) >> 8; + serport->id.extra = (type & 0x00ff0000) >> 16; +} + /* * serport_ldisc_ioctl() allows to set the port protocol, and device ID */ -static int serport_ldisc_ioctl(struct tty_struct * tty, struct file * file, unsigned int cmd, unsigned long arg) +static int serport_ldisc_ioctl(struct tty_struct *tty, struct file *file, + unsigned int cmd, unsigned long arg) { - struct serport *serport = (struct serport*) tty->disc_data; - unsigned long type; - if (cmd == SPIOCSTYPE) { + unsigned long type; + if (get_user(type, (unsigned long __user *) arg)) return -EFAULT; - serport->id.proto = type & 0x000000ff; - serport->id.id = (type & 0x0000ff00) >> 8; - serport->id.extra = (type & 0x00ff0000) >> 16; + serport_set_type(tty, type); + return 0; + } + + return -EINVAL; +} + +#ifdef CONFIG_COMPAT +#define COMPAT_SPIOCSTYPE _IOW('q', 0x01, compat_ulong_t) +static long serport_ldisc_compat_ioctl(struct tty_struct *tty, + struct file *file, + unsigned int cmd, unsigned long arg) +{ + if (cmd == COMPAT_SPIOCSTYPE) { + void __user *uarg = compat_ptr(arg); + compat_ulong_t compat_type; + + if (get_user(compat_type, (compat_ulong_t __user *)uarg)) + return -EFAULT; + serport_set_type(tty, compat_type); return 0; } return -EINVAL; } +#endif static void serport_ldisc_write_wakeup(struct tty_struct * tty) { @@ -241,6 +269,9 @@ .close = serport_ldisc_close, .read = serport_ldisc_read, .ioctl = serport_ldisc_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = serport_ldisc_compat_ioctl, +#endif .receive_buf = serport_ldisc_receive, .write_wakeup = serport_ldisc_write_wakeup }; --- linux-3.13.0.orig/drivers/input/tablet/wacom_sys.c +++ linux-3.13.0/drivers/input/tablet/wacom_sys.c @@ -304,7 +304,7 @@ struct usb_device *dev = interface_to_usbdev(intf); char limit = 0; /* result has to be defined as int for some devices */ - int result = 0; + int result = 0, touch_max = 0; int i = 0, usage = WCM_UNDEFINED, finger = 0, pen = 0; unsigned char *report; @@ -351,7 +351,8 @@ if (usage == WCM_DESKTOP) { if (finger) { features->device_type = BTN_TOOL_FINGER; - + /* touch device at least supports one touch point */ + touch_max = 1; switch (features->type) { case TABLETPC2FG: features->pktlen = WACOM_PKGLEN_TPC2FG; @@ -504,6 +505,8 @@ } out: + if (!features->touch_max && touch_max) + features->touch_max = touch_max; result = 0; kfree(report); return result; @@ -1194,12 +1197,15 @@ wacom_wac1->features.device_type = BTN_TOOL_PEN; snprintf(wacom_wac1->name, WACOM_NAME_MAX, "%s (WL) Pen", wacom_wac1->features.name); + wacom_wac1->shared->touch_max = wacom_wac1->features.touch_max; + wacom_wac1->shared->type = wacom_wac1->features.type; error = wacom_register_input(wacom1); if (error) goto fail; /* Touch interface */ - if (wacom_wac1->features.touch_max) { + if (wacom_wac1->features.touch_max || + wacom_wac1->features.type == INTUOSHT) { wacom_wac2->features = *((struct wacom_features *)id->driver_info); wacom_wac2->features.pktlen = WACOM_PKGLEN_BBTOUCH3; @@ -1214,6 +1220,10 @@ error = wacom_register_input(wacom2); if (error) goto fail; + + if (wacom_wac1->features.type == INTUOSHT && + wacom_wac1->features.touch_max) + wacom_wac->shared->touch_input = wacom_wac2->input; } error = wacom_initialize_battery(wacom); @@ -1322,7 +1332,7 @@ * HID descriptor. If this is the touch interface (wMaxPacketSize * of WACOM_PKGLEN_BBTOUCH3), override the table values. */ - if (features->type >= INTUOS5S && features->type <= INTUOSPL) { + if (features->type >= INTUOS5S && features->type <= INTUOSHT) { if (endpoint->wMaxPacketSize == WACOM_PKGLEN_BBTOUCH3) { features->device_type = BTN_TOOL_FINGER; features->pktlen = WACOM_PKGLEN_BBTOUCH3; @@ -1393,6 +1403,11 @@ } } + if (wacom_wac->features.type == INTUOSHT && wacom_wac->features.touch_max) { + if (wacom_wac->features.device_type == BTN_TOOL_FINGER) + wacom_wac->shared->touch_input = wacom_wac->input; + } + return 0; fail5: wacom_destroy_leds(wacom); --- linux-3.13.0.orig/drivers/input/tablet/wacom_wac.c +++ linux-3.13.0/drivers/input/tablet/wacom_wac.c @@ -210,6 +210,62 @@ return 1; } +static int wacom_dtus_irq(struct wacom_wac *wacom) +{ + char *data = wacom->data; + struct input_dev *input = wacom->input; + unsigned short prox, pressure = 0; + + if (data[0] != WACOM_REPORT_DTUS && data[0] != WACOM_REPORT_DTUSPAD) { + dev_dbg(input->dev.parent, + "%s: received unknown report #%d", __func__, data[0]); + return 0; + } else if (data[0] == WACOM_REPORT_DTUSPAD) { + input_report_key(input, BTN_0, (data[1] & 0x01)); + input_report_key(input, BTN_1, (data[1] & 0x02)); + input_report_key(input, BTN_2, (data[1] & 0x04)); + input_report_key(input, BTN_3, (data[1] & 0x08)); + input_report_abs(input, ABS_MISC, + data[1] & 0x0f ? PAD_DEVICE_ID : 0); + /* + * Serial number is required when expresskeys are + * reported through pen interface. + */ + input_event(input, EV_MSC, MSC_SERIAL, 0xf0); + return 1; + } else { + prox = data[1] & 0x80; + if (prox) { + switch ((data[1] >> 3) & 3) { + case 1: /* Rubber */ + wacom->tool[0] = BTN_TOOL_RUBBER; + wacom->id[0] = ERASER_DEVICE_ID; + break; + + case 2: /* Pen */ + wacom->tool[0] = BTN_TOOL_PEN; + wacom->id[0] = STYLUS_DEVICE_ID; + break; + } + } + + input_report_key(input, BTN_STYLUS, data[1] & 0x20); + input_report_key(input, BTN_STYLUS2, data[1] & 0x40); + input_report_abs(input, ABS_X, get_unaligned_be16(&data[3])); + input_report_abs(input, ABS_Y, get_unaligned_be16(&data[5])); + pressure = ((data[1] & 0x03) << 8) | (data[2] & 0xff); + input_report_abs(input, ABS_PRESSURE, pressure); + input_report_key(input, BTN_TOUCH, pressure > 10); + + if (!prox) /* out-prox */ + wacom->id[0] = 0; + input_report_key(input, wacom->tool[0], prox); + input_report_abs(input, ABS_MISC, wacom->id[0]); + input_event(input, EV_MSC, MSC_SERIAL, 1); + return 1; + } +} + static int wacom_graphire_irq(struct wacom_wac *wacom) { struct wacom_features *features = &wacom->features; @@ -331,7 +387,7 @@ /* Enter report */ if ((data[1] & 0xfc) == 0xc0) { - if (features->quirks == WACOM_QUIRK_MULTI_INPUT) + if (features->quirks & WACOM_QUIRK_MULTI_INPUT) wacom->shared->stylus_in_proximity = true; /* serial number of the tool */ @@ -436,7 +492,7 @@ /* Exit report */ if ((data[1] & 0xfe) == 0x80) { - if (features->quirks == WACOM_QUIRK_MULTI_INPUT) + if (features->quirks & WACOM_QUIRK_MULTI_INPUT) wacom->shared->stylus_in_proximity = false; /* @@ -1151,8 +1207,8 @@ int width, height; if (features->type >= INTUOSPS && features->type <= INTUOSPL) { - width = data[5]; - height = data[6]; + width = data[5] * 100; + height = data[6] * 100; } else { /* * "a" is a scaled-down area which we assume is @@ -1176,10 +1232,16 @@ static void wacom_bpt3_button_msg(struct wacom_wac *wacom, unsigned char *data) { struct input_dev *input = wacom->input; + struct wacom_features *features = &wacom->features; - input_report_key(input, BTN_LEFT, (data[1] & 0x08) != 0); + if (features->type == INTUOSHT) { + input_report_key(input, BTN_LEFT, (data[1] & 0x02) != 0); + input_report_key(input, BTN_BACK, (data[1] & 0x08) != 0); + } else { + input_report_key(input, BTN_BACK, (data[1] & 0x02) != 0); + input_report_key(input, BTN_LEFT, (data[1] & 0x08) != 0); + } input_report_key(input, BTN_FORWARD, (data[1] & 0x04) != 0); - input_report_key(input, BTN_BACK, (data[1] & 0x02) != 0); input_report_key(input, BTN_RIGHT, (data[1] & 0x01) != 0); } @@ -1213,13 +1275,23 @@ static int wacom_bpt_pen(struct wacom_wac *wacom) { + struct wacom_features *features = &wacom->features; struct input_dev *input = wacom->input; unsigned char *data = wacom->data; int prox = 0, x = 0, y = 0, p = 0, d = 0, pen = 0, btn1 = 0, btn2 = 0; - if (data[0] != 0x02) + if (data[0] != WACOM_REPORT_PENABLED && data[0] != WACOM_REPORT_USB) return 0; + if (data[0] == WACOM_REPORT_USB) { + if (features->type == INTUOSHT && features->touch_max) { + input_report_switch(wacom->shared->touch_input, + SW_MUTE_DEVICE, data[8] & 0x40); + input_sync(wacom->shared->touch_input); + } + return 0; + } + prox = (data[1] & 0x20) == 0x20; /* @@ -1252,8 +1324,8 @@ * touching and applying pressure; do not report negative * distance. */ - if (data[8] <= wacom->features.distance_max) - d = wacom->features.distance_max - data[8]; + if (data[8] <= features->distance_max) + d = features->distance_max - data[8]; pen = data[1] & 0x01; btn1 = data[1] & 0x02; @@ -1297,13 +1369,20 @@ unsigned char *data = wacom->data; int connected; - if (len != WACOM_PKGLEN_WIRELESS || data[0] != 0x80) + if (len != WACOM_PKGLEN_WIRELESS || data[0] != WACOM_REPORT_WL) return 0; connected = data[1] & 0x01; if (connected) { int pid, battery; + if ((wacom->shared->type == INTUOSHT) && + wacom->shared->touch_max) { + input_report_switch(wacom->shared->touch_input, + SW_MUTE_DEVICE, data[5] & 0x40); + input_sync(wacom->shared->touch_input); + } + pid = get_unaligned_be16(&data[6]); battery = data[5] & 0x3f; if (wacom->pid != pid) { @@ -1348,6 +1427,10 @@ sync = wacom_dtu_irq(wacom_wac); break; + case DTUS: + sync = wacom_dtus_irq(wacom_wac); + break; + case INTUOS: case INTUOS3S: case INTUOS3: @@ -1391,6 +1474,7 @@ break; case BAMBOO_PT: + case INTUOSHT: sync = wacom_bpt_irq(wacom_wac, len); break; @@ -1459,7 +1543,7 @@ /* these device have multiple inputs */ if (features->type >= WIRELESS || - (features->type >= INTUOS5S && features->type <= INTUOSPL) || + (features->type >= INTUOS5S && features->type <= INTUOSHT) || (features->oVid && features->oPid)) features->quirks |= WACOM_QUIRK_MULTI_INPUT; @@ -1538,7 +1622,7 @@ wacom_abs_set_axis(input_dev, wacom_wac); - switch (wacom_wac->features.type) { + switch (features->type) { case WACOM_MO: input_set_abs_params(input_dev, ABS_WHEEL, 0, 71, 0, 0); /* fall through */ @@ -1749,8 +1833,14 @@ /* fall through */ + case DTUS: case PL: case DTU: + if (features->type == DTUS) { + input_set_capability(input_dev, EV_MSC, MSC_SERIAL); + for (i = 0; i < 3; i++) + __set_bit(BTN_0 + i, input_dev->keybit); + } __set_bit(BTN_TOOL_PEN, input_dev->keybit); __set_bit(BTN_TOOL_RUBBER, input_dev->keybit); __set_bit(BTN_STYLUS, input_dev->keybit); @@ -1771,33 +1861,50 @@ __set_bit(INPUT_PROP_POINTER, input_dev->propbit); break; + case INTUOSHT: + if (features->touch_max && + features->device_type == BTN_TOOL_FINGER) { + input_dev->evbit[0] |= BIT_MASK(EV_SW); + __set_bit(SW_MUTE_DEVICE, input_dev->swbit); + } + /* fall through */ + case BAMBOO_PT: __clear_bit(ABS_MISC, input_dev->absbit); - __set_bit(INPUT_PROP_POINTER, input_dev->propbit); - if (features->device_type == BTN_TOOL_FINGER) { - unsigned int flags = INPUT_MT_POINTER; __set_bit(BTN_LEFT, input_dev->keybit); __set_bit(BTN_FORWARD, input_dev->keybit); __set_bit(BTN_BACK, input_dev->keybit); __set_bit(BTN_RIGHT, input_dev->keybit); - if (features->pktlen == WACOM_PKGLEN_BBTOUCH3) { - input_set_abs_params(input_dev, + if (features->touch_max) { + /* touch interface */ + unsigned int flags = INPUT_MT_POINTER; + + __set_bit(INPUT_PROP_POINTER, input_dev->propbit); + if (features->pktlen == WACOM_PKGLEN_BBTOUCH3) { + input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, features->x_max, 0, 0); - input_set_abs_params(input_dev, + input_set_abs_params(input_dev, ABS_MT_TOUCH_MINOR, 0, features->y_max, 0, 0); + } else { + __set_bit(BTN_TOOL_FINGER, input_dev->keybit); + __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit); + flags = 0; + } + input_mt_init_slots(input_dev, features->touch_max, flags); } else { - __set_bit(BTN_TOOL_FINGER, input_dev->keybit); - __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit); - flags = 0; + /* buttons/keys only interface */ + __clear_bit(ABS_X, input_dev->absbit); + __clear_bit(ABS_Y, input_dev->absbit); + __clear_bit(BTN_TOUCH, input_dev->keybit); } - input_mt_init_slots(input_dev, features->touch_max, flags); } else if (features->device_type == BTN_TOOL_PEN) { + __set_bit(INPUT_PROP_POINTER, input_dev->propbit); __set_bit(BTN_TOOL_RUBBER, input_dev->keybit); __set_bit(BTN_TOOL_PEN, input_dev->keybit); __set_bit(BTN_STYLUS, input_dev->keybit); @@ -2055,6 +2162,9 @@ static const struct wacom_features wacom_features_0xF0 = { "Wacom DTU1631", WACOM_PKGLEN_GRAPHIRE, 34623, 19553, 511, 0, DTU, WACOM_INTUOS_RES, WACOM_INTUOS_RES }; +static const struct wacom_features wacom_features_0xFB = + { "Wacom DTU1031", WACOM_PKGLEN_DTUS, 22096, 13960, 511, + 0, DTUS, WACOM_INTUOS_RES, WACOM_INTUOS_RES }; static const struct wacom_features wacom_features_0x57 = { "Wacom DTK2241", WACOM_PKGLEN_INTUOS, 95840, 54260, 2047, 63, DTK, WACOM_INTUOS3_RES, WACOM_INTUOS3_RES}; @@ -2200,6 +2310,17 @@ static const struct wacom_features wacom_features_0x301 = { "Wacom Bamboo One M", WACOM_PKGLEN_BBPEN, 21648, 13530, 1023, 31, BAMBOO_PT, WACOM_INTUOS_RES, WACOM_INTUOS_RES }; +static const struct wacom_features wacom_features_0x302 = + { "Wacom Intuos PT S", WACOM_PKGLEN_BBPEN, 15200, 9500, 1023, + 31, INTUOSHT, WACOM_INTUOS_RES, WACOM_INTUOS_RES, + .touch_max = 16 }; +static const struct wacom_features wacom_features_0x303 = + { "Wacom Intuos PT M", WACOM_PKGLEN_BBPEN, 21600, 13500, 1023, + 31, INTUOSHT, WACOM_INTUOS_RES, WACOM_INTUOS_RES, + .touch_max = 16 }; +static const struct wacom_features wacom_features_0x30E = + { "Wacom Intuos S", WACOM_PKGLEN_BBPEN, 15200, 9500, 1023, + 31, INTUOSHT, WACOM_INTUOS_RES, WACOM_INTUOS_RES }; static const struct wacom_features wacom_features_0x6004 = { "ISD-V4", WACOM_PKGLEN_GRAPHIRE, 12800, 8000, 255, 0, TABLETPC, WACOM_INTUOS_RES, WACOM_INTUOS_RES }; @@ -2337,6 +2458,9 @@ { USB_DEVICE_WACOM(0x10F) }, { USB_DEVICE_WACOM(0x300) }, { USB_DEVICE_WACOM(0x301) }, + { USB_DEVICE_DETAILED(0x302, USB_CLASS_HID, 0, 0) }, + { USB_DEVICE_DETAILED(0x303, USB_CLASS_HID, 0, 0) }, + { USB_DEVICE_DETAILED(0x30E, USB_CLASS_HID, 0, 0) }, { USB_DEVICE_WACOM(0x304) }, { USB_DEVICE_DETAILED(0x314, USB_CLASS_HID, 0, 0) }, { USB_DEVICE_DETAILED(0x315, USB_CLASS_HID, 0, 0) }, @@ -2347,6 +2471,7 @@ { USB_DEVICE_WACOM(0xF8) }, { USB_DEVICE_DETAILED(0xF6, USB_CLASS_HID, 0, 0) }, { USB_DEVICE_WACOM(0xFA) }, + { USB_DEVICE_WACOM(0xFB) }, { USB_DEVICE_WACOM(0x0307) }, { USB_DEVICE_DETAILED(0x0309, USB_CLASS_HID, 0, 0) }, { USB_DEVICE_LENOVO(0x6004) }, --- linux-3.13.0.orig/drivers/input/tablet/wacom_wac.h +++ linux-3.13.0/drivers/input/tablet/wacom_wac.h @@ -12,7 +12,7 @@ #include /* maximum packet length for USB devices */ -#define WACOM_PKGLEN_MAX 64 +#define WACOM_PKGLEN_MAX 68 #define WACOM_NAME_MAX 64 @@ -29,6 +29,7 @@ #define WACOM_PKGLEN_WIRELESS 32 #define WACOM_PKGLEN_MTOUCH 62 #define WACOM_PKGLEN_MTTPC 40 +#define WACOM_PKGLEN_DTUS 68 /* wacom data size per MT contact */ #define WACOM_BYTES_PER_MT_PACKET 11 @@ -47,13 +48,17 @@ #define WACOM_REPORT_INTUOSWRITE 6 #define WACOM_REPORT_INTUOSPAD 12 #define WACOM_REPORT_INTUOS5PAD 3 +#define WACOM_REPORT_DTUSPAD 21 #define WACOM_REPORT_TPC1FG 6 #define WACOM_REPORT_TPC2FG 13 #define WACOM_REPORT_TPCMT 13 #define WACOM_REPORT_TPCHID 15 #define WACOM_REPORT_TPCST 16 +#define WACOM_REPORT_DTUS 17 #define WACOM_REPORT_TPC1FGE 18 #define WACOM_REPORT_24HDT 1 +#define WACOM_REPORT_WL 128 +#define WACOM_REPORT_USB 192 /* device quirks */ #define WACOM_QUIRK_MULTI_INPUT 0x0001 @@ -68,6 +73,7 @@ PTU, PL, DTU, + DTUS, INTUOS, INTUOS3S, INTUOS3, @@ -81,6 +87,7 @@ INTUOSPS, INTUOSPM, INTUOSPL, + INTUOSHT, WACOM_21UX2, WACOM_22HD, DTK, @@ -129,6 +136,10 @@ struct wacom_shared { bool stylus_in_proximity; bool touch_down; + /* for wireless device to access USB interfaces */ + unsigned touch_max; + int type; + struct input_dev *touch_input; }; struct wacom_wac { --- linux-3.13.0.orig/drivers/iommu/amd_iommu.c +++ linux-3.13.0/drivers/iommu/amd_iommu.c @@ -3227,14 +3227,16 @@ static void cleanup_domain(struct protection_domain *domain) { - struct iommu_dev_data *dev_data, *next; + struct iommu_dev_data *entry; unsigned long flags; write_lock_irqsave(&amd_iommu_devtable_lock, flags); - list_for_each_entry_safe(dev_data, next, &domain->dev_list, list) { - __detach_device(dev_data); - atomic_set(&dev_data->bind, 0); + while (!list_empty(&domain->dev_list)) { + entry = list_first_entry(&domain->dev_list, + struct iommu_dev_data, list); + __detach_device(entry); + atomic_set(&entry->bind, 0); } write_unlock_irqrestore(&amd_iommu_devtable_lock, flags); @@ -3999,7 +4001,7 @@ iommu_flush_dte(iommu, devid); if (devid != alias) { irq_lookup_table[alias] = table; - set_dte_irq_entry(devid, table); + set_dte_irq_entry(alias, table); iommu_flush_dte(iommu, alias); } --- linux-3.13.0.orig/drivers/iommu/arm-smmu.c +++ linux-3.13.0/drivers/iommu/arm-smmu.c @@ -78,7 +78,6 @@ #define ARM_SMMU_PTE_CONT_SIZE (PAGE_SIZE * ARM_SMMU_PTE_CONT_ENTRIES) #define ARM_SMMU_PTE_CONT_MASK (~(ARM_SMMU_PTE_CONT_SIZE - 1)) -#define ARM_SMMU_PTE_HWTABLE_SIZE (PTRS_PER_PTE * sizeof(pte_t)) /* Stage-1 PTE */ #define ARM_SMMU_PTE_AP_UNPRIV (((pteval_t)1) << 6) @@ -190,6 +189,9 @@ #define ARM_SMMU_GR1_CBAR(n) (0x0 + ((n) << 2)) #define CBAR_VMID_SHIFT 0 #define CBAR_VMID_MASK 0xff +#define CBAR_S1_BPSHCFG_SHIFT 8 +#define CBAR_S1_BPSHCFG_MASK 3 +#define CBAR_S1_BPSHCFG_NSH 3 #define CBAR_S1_MEMATTR_SHIFT 12 #define CBAR_S1_MEMATTR_MASK 0xf #define CBAR_S1_MEMATTR_WB 0xf @@ -392,7 +394,7 @@ struct arm_smmu_cfg root_cfg; phys_addr_t output_mask; - struct mutex lock; + spinlock_t lock; }; static DEFINE_SPINLOCK(arm_smmu_devices_lock); @@ -631,6 +633,28 @@ return IRQ_HANDLED; } +static void arm_smmu_flush_pgtable(struct arm_smmu_device *smmu, void *addr, + size_t size) +{ + unsigned long offset = (unsigned long)addr & ~PAGE_MASK; + + + /* Ensure new page tables are visible to the hardware walker */ + if (smmu->features & ARM_SMMU_FEAT_COHERENT_WALK) { + dsb(); + } else { + /* + * If the SMMU can't walk tables in the CPU caches, treat them + * like non-coherent DMA since we need to flush the new entries + * all the way out to memory. There's no possibility of + * recursion here as the SMMU table walker will not be wired + * through another SMMU. + */ + dma_map_page(smmu->dev, virt_to_page(addr), offset, size, + DMA_TO_DEVICE); + } +} + static void arm_smmu_init_context_bank(struct arm_smmu_domain *smmu_domain) { u32 reg; @@ -649,11 +673,16 @@ if (smmu->version == 1) reg |= root_cfg->irptndx << CBAR_IRPTNDX_SHIFT; - /* Use the weakest memory type, so it is overridden by the pte */ - if (stage1) - reg |= (CBAR_S1_MEMATTR_WB << CBAR_S1_MEMATTR_SHIFT); - else + /* + * Use the weakest shareability/memory types, so they are + * overridden by the ttbcr/pte. + */ + if (stage1) { + reg |= (CBAR_S1_BPSHCFG_NSH << CBAR_S1_BPSHCFG_SHIFT) | + (CBAR_S1_MEMATTR_WB << CBAR_S1_MEMATTR_SHIFT); + } else { reg |= ARM_SMMU_CB_VMID(root_cfg) << CBAR_VMID_SHIFT; + } writel_relaxed(reg, gr1_base + ARM_SMMU_GR1_CBAR(root_cfg->cbndx)); if (smmu->version > 1) { @@ -714,6 +743,8 @@ } /* TTBR0 */ + arm_smmu_flush_pgtable(smmu, root_cfg->pgd, + PTRS_PER_PGD * sizeof(pgd_t)); reg = __pa(root_cfg->pgd); writel_relaxed(reg, cb_base + ARM_SMMU_CB_TTBR0_LO); reg = (phys_addr_t)__pa(root_cfg->pgd) >> 32; @@ -762,8 +793,11 @@ reg |= TTBCR_EAE | (TTBCR_SH_IS << TTBCR_SH0_SHIFT) | (TTBCR_RGN_WBWA << TTBCR_ORGN0_SHIFT) | - (TTBCR_RGN_WBWA << TTBCR_IRGN0_SHIFT) | - (TTBCR_SL0_LVL_1 << TTBCR_SL0_SHIFT); + (TTBCR_RGN_WBWA << TTBCR_IRGN0_SHIFT); + + if (!stage1) + reg |= (TTBCR_SL0_LVL_1 << TTBCR_SL0_SHIFT); + writel_relaxed(reg, cb_base + ARM_SMMU_CB_TTBCR); /* MAIR0 (stage-1 only) */ @@ -900,7 +934,7 @@ goto out_free_domain; smmu_domain->root_cfg.pgd = pgd; - mutex_init(&smmu_domain->lock); + spin_lock_init(&smmu_domain->lock); domain->priv = smmu_domain; return 0; @@ -912,7 +946,6 @@ static void arm_smmu_free_ptes(pmd_t *pmd) { pgtable_t table = pmd_pgtable(*pmd); - pgtable_page_dtor(table); __free_page(table); } @@ -1137,7 +1170,7 @@ * Sanity check the domain. We don't currently support domains * that cross between different SMMU chains. */ - mutex_lock(&smmu_domain->lock); + spin_lock(&smmu_domain->lock); if (!smmu_domain->leaf_smmu) { /* Now that we have a master, we can finalise the domain */ ret = arm_smmu_init_domain_context(domain, dev); @@ -1152,7 +1185,7 @@ dev_name(device_smmu->dev)); goto err_unlock; } - mutex_unlock(&smmu_domain->lock); + spin_unlock(&smmu_domain->lock); /* Looks ok, so add the device to the domain */ master = find_smmu_master(smmu_domain->leaf_smmu, dev->of_node); @@ -1162,7 +1195,7 @@ return arm_smmu_domain_add_master(smmu_domain, master); err_unlock: - mutex_unlock(&smmu_domain->lock); + spin_unlock(&smmu_domain->lock); return ret; } @@ -1176,23 +1209,6 @@ arm_smmu_domain_remove_master(smmu_domain, master); } -static void arm_smmu_flush_pgtable(struct arm_smmu_device *smmu, void *addr, - size_t size) -{ - unsigned long offset = (unsigned long)addr & ~PAGE_MASK; - - /* - * If the SMMU can't walk tables in the CPU caches, treat them - * like non-coherent DMA since we need to flush the new entries - * all the way out to memory. There's no possibility of recursion - * here as the SMMU table walker will not be wired through another - * SMMU. - */ - if (!(smmu->features & ARM_SMMU_FEAT_COHERENT_WALK)) - dma_map_page(smmu->dev, virt_to_page(addr), offset, size, - DMA_TO_DEVICE); -} - static bool arm_smmu_pte_is_contiguous_range(unsigned long addr, unsigned long end) { @@ -1209,16 +1225,11 @@ if (pmd_none(*pmd)) { /* Allocate a new set of tables */ - pgtable_t table = alloc_page(PGALLOC_GFP); + pgtable_t table = alloc_page(GFP_ATOMIC|__GFP_ZERO); if (!table) return -ENOMEM; - arm_smmu_flush_pgtable(smmu, page_address(table), - ARM_SMMU_PTE_HWTABLE_SIZE); - if (!pgtable_page_ctor(table)) { - __free_page(table); - return -ENOMEM; - } + arm_smmu_flush_pgtable(smmu, page_address(table), PAGE_SIZE); pmd_populate(NULL, pmd, table); arm_smmu_flush_pgtable(smmu, pmd, sizeof(*pmd)); } @@ -1314,9 +1325,15 @@ #ifndef __PAGETABLE_PMD_FOLDED if (pud_none(*pud)) { - pmd = pmd_alloc_one(NULL, addr); + pmd = (pmd_t *)get_zeroed_page(GFP_ATOMIC); if (!pmd) return -ENOMEM; + + arm_smmu_flush_pgtable(smmu, pmd, PAGE_SIZE); + pud_populate(NULL, pud, pmd); + arm_smmu_flush_pgtable(smmu, pud, sizeof(*pud)); + + pmd += pmd_index(addr); } else #endif pmd = pmd_offset(pud, addr); @@ -1325,8 +1342,6 @@ next = pmd_addr_end(addr, end); ret = arm_smmu_alloc_init_pte(smmu, pmd, addr, end, pfn, flags, stage); - pud_populate(NULL, pud, pmd); - arm_smmu_flush_pgtable(smmu, pud, sizeof(*pud)); phys += next - addr; } while (pmd++, addr = next, addr < end); @@ -1343,9 +1358,15 @@ #ifndef __PAGETABLE_PUD_FOLDED if (pgd_none(*pgd)) { - pud = pud_alloc_one(NULL, addr); + pud = (pud_t *)get_zeroed_page(GFP_ATOMIC); if (!pud) return -ENOMEM; + + arm_smmu_flush_pgtable(smmu, pud, PAGE_SIZE); + pgd_populate(NULL, pgd, pud); + arm_smmu_flush_pgtable(smmu, pgd, sizeof(*pgd)); + + pud += pud_index(addr); } else #endif pud = pud_offset(pgd, addr); @@ -1354,8 +1375,6 @@ next = pud_addr_end(addr, end); ret = arm_smmu_alloc_init_pmd(smmu, pud, addr, next, phys, flags, stage); - pgd_populate(NULL, pud, pgd); - arm_smmu_flush_pgtable(smmu, pgd, sizeof(*pgd)); phys += next - addr; } while (pud++, addr = next, addr < end); @@ -1394,7 +1413,7 @@ if (paddr & ~output_mask) return -ERANGE; - mutex_lock(&smmu_domain->lock); + spin_lock(&smmu_domain->lock); pgd += pgd_index(iova); end = iova + size; do { @@ -1410,11 +1429,7 @@ } while (pgd++, iova != end); out_unlock: - mutex_unlock(&smmu_domain->lock); - - /* Ensure new page tables are visible to the hardware walker */ - if (smmu->features & ARM_SMMU_FEAT_COHERENT_WALK) - dsb(); + spin_unlock(&smmu_domain->lock); return ret; } --- linux-3.13.0.orig/drivers/iommu/fsl_pamu_domain.c +++ linux-3.13.0/drivers/iommu/fsl_pamu_domain.c @@ -1050,7 +1050,7 @@ struct iommu_group *group = NULL; struct pci_dev *pdev; const u32 *prop; - int ret, len; + int ret = 0, len; /* * For platform devices we allocate a separate group for @@ -1073,7 +1073,13 @@ if (!group || IS_ERR(group)) return PTR_ERR(group); - ret = iommu_group_add_device(group, dev); + /* + * Check if device has already been added to an iommu group. + * Group could have already been created for a PCI device in + * the iommu_group_get_for_dev path. + */ + if (!dev->iommu_group) + ret = iommu_group_add_device(group, dev); iommu_group_put(group); return ret; --- linux-3.13.0.orig/drivers/iommu/intel-iommu.c +++ linux-3.13.0/drivers/iommu/intel-iommu.c @@ -917,7 +917,7 @@ /* If range covers entire pagetable, free it */ if (!(start_pfn > level_pfn || - last_pfn < level_pfn + level_size(level))) { + last_pfn < level_pfn + level_size(level) - 1)) { dma_clear_pte(pte); domain_flush_cache(domain, pte, sizeof(*pte)); free_pgtable_page(level_pte); @@ -1796,7 +1796,7 @@ struct dma_pte *first_pte = NULL, *pte = NULL; phys_addr_t uninitialized_var(pteval); int addr_width = agaw_to_width(domain->agaw) - VTD_PAGE_SHIFT; - unsigned long sg_res; + unsigned long sg_res = 0; unsigned int largepage_lvl = 0; unsigned long lvl_pages = 0; @@ -1807,10 +1807,8 @@ prot &= DMA_PTE_READ | DMA_PTE_WRITE | DMA_PTE_SNP; - if (sg) - sg_res = 0; - else { - sg_res = nr_pages + 1; + if (!sg) { + sg_res = nr_pages; pteval = ((phys_addr_t)phys_pfn << VTD_PAGE_SHIFT) | prot; } --- linux-3.13.0.orig/drivers/irqchip/irq-armada-370-xp.c +++ linux-3.13.0/drivers/irqchip/irq-armada-370-xp.c @@ -132,8 +132,7 @@ struct msi_desc *desc) { struct msi_msg msg; - irq_hw_number_t hwirq; - int virq; + int virq, hwirq; hwirq = armada_370_xp_alloc_msi(); if (hwirq < 0) @@ -159,8 +158,19 @@ unsigned int irq) { struct irq_data *d = irq_get_irq_data(irq); + unsigned long hwirq = d->hwirq; + irq_dispose_mapping(irq); - armada_370_xp_free_msi(d->hwirq); + armada_370_xp_free_msi(hwirq); +} + +static int armada_370_xp_check_msi_device(struct msi_chip *chip, struct pci_dev *dev, + int nvec, int type) +{ + /* We support MSI, but not MSI-X */ + if (type == PCI_CAP_ID_MSI) + return 0; + return -EINVAL; } static struct irq_chip armada_370_xp_msi_irq_chip = { @@ -201,6 +211,7 @@ msi_chip->setup_irq = armada_370_xp_setup_msi_irq; msi_chip->teardown_irq = armada_370_xp_teardown_msi_irq; + msi_chip->check_device = armada_370_xp_check_msi_device; msi_chip->of_node = node; armada_370_xp_msi_domain = @@ -381,7 +392,7 @@ ARMADA_370_XP_IN_DRBEL_CAUSE_OFFS) & PCI_MSI_DOORBELL_MASK; - writel(~PCI_MSI_DOORBELL_MASK, per_cpu_int_base + + writel(~msimask, per_cpu_int_base + ARMADA_370_XP_IN_DRBEL_CAUSE_OFFS); for (msinr = PCI_MSI_DOORBELL_START; @@ -407,7 +418,7 @@ ARMADA_370_XP_IN_DRBEL_CAUSE_OFFS) & IPI_DOORBELL_MASK; - writel(~IPI_DOORBELL_MASK, per_cpu_int_base + + writel(~ipimask, per_cpu_int_base + ARMADA_370_XP_IN_DRBEL_CAUSE_OFFS); /* Handle all pending doorbells */ --- linux-3.13.0.orig/drivers/irqchip/irq-gic.c +++ linux-3.13.0/drivers/irqchip/irq-gic.c @@ -42,6 +42,7 @@ #include #include +#include #include #include #include @@ -246,10 +247,14 @@ bool force) { void __iomem *reg = gic_dist_base(d) + GIC_DIST_TARGET + (gic_irq(d) & ~3); - unsigned int shift = (gic_irq(d) % 4) * 8; - unsigned int cpu = cpumask_any_and(mask_val, cpu_online_mask); + unsigned int cpu, shift = (gic_irq(d) % 4) * 8; u32 val, mask, bit; + if (!force) + cpu = cpumask_any_and(mask_val, cpu_online_mask); + else + cpu = cpumask_first(mask_val); + if (cpu >= NR_GIC_CPU_IF || cpu >= nr_cpu_ids) return -EINVAL; @@ -418,6 +423,7 @@ void __iomem *dist_base = gic_data_dist_base(gic); void __iomem *base = gic_data_cpu_base(gic); unsigned int cpu_mask, cpu = smp_processor_id(); + unsigned int ctrl_mask; int i; /* @@ -449,13 +455,29 @@ writel_relaxed(0xa0a0a0a0, dist_base + GIC_DIST_PRI + i * 4 / 4); writel_relaxed(0xf0, base + GIC_CPU_PRIMASK); - writel_relaxed(1, base + GIC_CPU_CTRL); + + ctrl_mask = readl(base + GIC_CPU_CTRL); + + /* Mask out the gic v2 bypass bits */ + ctrl_mask &= 0x1e0; + + /* Enable group 0 */ + ctrl_mask |= 0x1; + writel_relaxed(ctrl_mask, base + GIC_CPU_CTRL); } void gic_cpu_if_down(void) { + unsigned int ctrl_mask; void __iomem *cpu_base = gic_data_cpu_base(&gic_data[0]); - writel_relaxed(0, cpu_base + GIC_CPU_CTRL); + + ctrl_mask = readl(cpu_base + GIC_CPU_CTRL); + /* + * Disable grp enable bit, leave the bypass bits alone as changing + * them could leave the system unstable + */ + ctrl_mask &= 0x1e0; + writel_relaxed(ctrl_mask, cpu_base + GIC_CPU_CTRL); } #ifdef CONFIG_CPU_PM @@ -566,6 +588,7 @@ { int i; u32 *ptr; + unsigned int ctrl_mask; void __iomem *dist_base; void __iomem *cpu_base; @@ -590,7 +613,15 @@ writel_relaxed(0xa0a0a0a0, dist_base + GIC_DIST_PRI + i * 4); writel_relaxed(0xf0, cpu_base + GIC_CPU_PRIMASK); - writel_relaxed(1, cpu_base + GIC_CPU_CTRL); + + ctrl_mask = readl(cpu_base + GIC_CPU_CTRL); + + /* Mask out the gic v2 bypass bits */ + ctrl_mask &= 0x1e0; + + /* Enable group 0 */ + ctrl_mask |= 0x1; + writel_relaxed(ctrl_mask, cpu_base + GIC_CPU_CTRL); } static int gic_notifier(struct notifier_block *self, unsigned long cmd, void *v) @@ -899,7 +930,9 @@ } for_each_possible_cpu(cpu) { - unsigned long offset = percpu_offset * cpu_logical_map(cpu); + u32 mpidr = cpu_logical_map(cpu); + u32 core_id = MPIDR_AFFINITY_LEVEL(mpidr, 0); + unsigned long offset = percpu_offset * core_id; *per_cpu_ptr(gic->dist_base.percpu_base, cpu) = dist_base + offset; *per_cpu_ptr(gic->cpu_base.percpu_base, cpu) = cpu_base + offset; } @@ -1006,6 +1039,7 @@ } IRQCHIP_DECLARE(cortex_a15_gic, "arm,cortex-a15-gic", gic_of_init); IRQCHIP_DECLARE(cortex_a9_gic, "arm,cortex-a9-gic", gic_of_init); +IRQCHIP_DECLARE(cortex_a7_gic, "arm,cortex-a7-gic", gic_of_init); IRQCHIP_DECLARE(msm_8660_qgic, "qcom,msm-8660-qgic", gic_of_init); IRQCHIP_DECLARE(msm_qgic2, "qcom,msm-qgic2", gic_of_init); --- linux-3.13.0.orig/drivers/irqchip/irq-metag-ext.c +++ linux-3.13.0/drivers/irqchip/irq-metag-ext.c @@ -515,7 +515,7 @@ * one cpu (the interrupt code doesn't support it), so we just * pick the first cpu we find in 'cpumask'. */ - cpu = cpumask_any(cpumask); + cpu = cpumask_any_and(cpumask, cpu_online_mask); thread = cpu_2_hwthread_id[cpu]; metag_out32(TBI_TRIG_VEC(TBID_SIGNUM_TR2(thread)), vec_addr); --- linux-3.13.0.orig/drivers/irqchip/irq-metag.c +++ linux-3.13.0/drivers/irqchip/irq-metag.c @@ -201,7 +201,7 @@ * one cpu (the interrupt code doesn't support it), so we just * pick the first cpu we find in 'cpumask'. */ - cpu = cpumask_any(cpumask); + cpu = cpumask_any_and(cpumask, cpu_online_mask); thread = cpu_2_hwthread_id[cpu]; metag_out32(TBI_TRIG_VEC(TBID_SIGNUM_TR1(thread)), --- linux-3.13.0.orig/drivers/irqchip/irq-orion.c +++ linux-3.13.0/drivers/irqchip/irq-orion.c @@ -111,7 +111,8 @@ static void orion_bridge_irq_handler(unsigned int irq, struct irq_desc *desc) { struct irq_domain *d = irq_get_handler_data(irq); - struct irq_chip_generic *gc = irq_get_domain_generic_chip(d, irq); + + struct irq_chip_generic *gc = irq_get_domain_generic_chip(d, 0); u32 stat = readl_relaxed(gc->reg_base + ORION_BRIDGE_IRQ_CAUSE) & gc->mask_cache; @@ -123,6 +124,19 @@ } } +/* + * Bridge IRQ_CAUSE is asserted regardless of IRQ_MASK register. + * To avoid interrupt events on stale irqs, we clear them before unmask. + */ +static unsigned int orion_bridge_irq_startup(struct irq_data *d) +{ + struct irq_chip_type *ct = irq_data_get_chip_type(d); + + ct->chip.irq_ack(d); + ct->chip.irq_unmask(d); + return 0; +} + static int __init orion_bridge_irq_init(struct device_node *np, struct device_node *parent) { @@ -143,7 +157,7 @@ } ret = irq_alloc_domain_generic_chips(domain, nrirqs, 1, np->name, - handle_level_irq, clr, 0, IRQ_GC_INIT_MASK_CACHE); + handle_edge_irq, clr, 0, IRQ_GC_INIT_MASK_CACHE); if (ret) { pr_err("%s: unable to alloc irq domain gc\n", np->name); return ret; @@ -176,12 +190,14 @@ gc->chip_types[0].regs.ack = ORION_BRIDGE_IRQ_CAUSE; gc->chip_types[0].regs.mask = ORION_BRIDGE_IRQ_MASK; + gc->chip_types[0].chip.irq_startup = orion_bridge_irq_startup; gc->chip_types[0].chip.irq_ack = irq_gc_ack_clr_bit; gc->chip_types[0].chip.irq_mask = irq_gc_mask_clr_bit; gc->chip_types[0].chip.irq_unmask = irq_gc_mask_set_bit; - /* mask all interrupts */ + /* mask and clear all interrupts */ writel(0, gc->reg_base + ORION_BRIDGE_IRQ_MASK); + writel(0, gc->reg_base + ORION_BRIDGE_IRQ_CAUSE); irq_set_handler_data(irq, domain); irq_set_chained_handler(irq, orion_bridge_irq_handler); --- linux-3.13.0.orig/drivers/irqchip/spear-shirq.c +++ linux-3.13.0/drivers/irqchip/spear-shirq.c @@ -125,7 +125,7 @@ }; static struct spear_shirq spear320_shirq_ras3 = { - .irq_nr = 3, + .irq_nr = 7, .irq_bit_off = 0, .invalid_irq = 1, .regs = { --- linux-3.13.0.orig/drivers/isdn/isdnloop/isdnloop.c +++ linux-3.13.0/drivers/isdn/isdnloop/isdnloop.c @@ -518,9 +518,9 @@ static void isdnloop_fake_err(isdnloop_card *card) { - char buf[60]; + char buf[64]; - sprintf(buf, "E%s", card->omsg); + snprintf(buf, sizeof(buf), "E%s", card->omsg); isdnloop_fake(card, buf, -1); isdnloop_fake(card, "NAK", -1); } @@ -903,6 +903,8 @@ case 7: /* 0x;EAZ */ p += 3; + if (strlen(p) >= sizeof(card->eazlist[0])) + break; strcpy(card->eazlist[ch - 1], p); break; case 8: @@ -1070,6 +1072,12 @@ return -EBUSY; if (copy_from_user((char *) &sdef, (char *) sdefp, sizeof(sdef))) return -EFAULT; + + for (i = 0; i < 3; i++) { + if (!memchr(sdef.num[i], 0, sizeof(sdef.num[i]))) + return -EINVAL; + } + spin_lock_irqsave(&card->isdnloop_lock, flags); switch (sdef.ptype) { case ISDN_PTYPE_EURO: @@ -1127,7 +1135,7 @@ { ulong a; int i; - char cbuf[60]; + char cbuf[80]; isdn_ctrl cmd; isdnloop_cdef cdef; @@ -1192,7 +1200,6 @@ break; if ((c->arg & 255) < ISDNLOOP_BCH) { char *p; - char dial[50]; char dcode[4]; a = c->arg; @@ -1204,10 +1211,10 @@ } else /* Normal Dial */ strcpy(dcode, "CAL"); - strcpy(dial, p); - sprintf(cbuf, "%02d;D%s_R%s,%02d,%02d,%s\n", (int) (a + 1), - dcode, dial, c->parm.setup.si1, - c->parm.setup.si2, c->parm.setup.eazmsn); + snprintf(cbuf, sizeof(cbuf), + "%02d;D%s_R%s,%02d,%02d,%s\n", (int) (a + 1), + dcode, p, c->parm.setup.si1, + c->parm.setup.si2, c->parm.setup.eazmsn); i = isdnloop_writecmd(cbuf, strlen(cbuf), 0, card); } break; --- linux-3.13.0.orig/drivers/leds/dell-led.c +++ linux-3.13.0/drivers/leds/dell-led.c @@ -15,12 +15,15 @@ #include #include #include +#include +#include MODULE_AUTHOR("Louis Davis/Jim Dailey"); MODULE_DESCRIPTION("Dell LED Control Driver"); MODULE_LICENSE("GPL"); #define DELL_LED_BIOS_GUID "F6E4FE6E-909D-47cb-8BAB-C9F6F2F8D396" +#define DELL_APP_GUID "A80593CE-A997-11DA-B012-B622A1EF5492" MODULE_ALIAS("wmi:" DELL_LED_BIOS_GUID); /* Error Result Codes: */ @@ -39,6 +42,149 @@ #define CMD_LED_OFF 17 #define CMD_LED_BLINK 18 +struct app_wmi_args { + u16 class; + u16 selector; + u32 arg1; + u32 arg2; + u32 arg3; + u32 arg4; + u32 res1; + u32 res2; + u32 res3; + u32 res4; + char dummy[92]; +}; + +#define GLOBAL_MIC_MUTE_ENABLE 0x364 +#define GLOBAL_MIC_MUTE_DISABLE 0x365 + +struct dell_bios_data_token { + u16 tokenid; + u16 location; + u16 value; +}; + +struct __attribute__ ((__packed__)) dell_bios_calling_interface { + struct dmi_header header; + u16 cmd_io_addr; + u8 cmd_io_code; + u32 supported_cmds; + struct dell_bios_data_token damap[]; +}; + +static struct dell_bios_data_token dell_mic_tokens[2]; + +static int dell_wmi_perform_query(struct app_wmi_args *args) +{ + struct app_wmi_args *bios_return; + union acpi_object *obj; + struct acpi_buffer input; + struct acpi_buffer output = { ACPI_ALLOCATE_BUFFER, NULL }; + acpi_status status; + u32 rc = -EINVAL; + + input.length = 128; + input.pointer = args; + + status = wmi_evaluate_method(DELL_APP_GUID, 0, 1, &input, &output); + if (!ACPI_SUCCESS(status)) + goto err_out0; + + obj = output.pointer; + if (!obj) + goto err_out0; + + if (obj->type != ACPI_TYPE_BUFFER) + goto err_out1; + + bios_return = (struct app_wmi_args *)obj->buffer.pointer; + rc = bios_return->res1; + if (rc) + goto err_out1; + + memcpy(args, bios_return, sizeof(struct app_wmi_args)); + rc = 0; + + err_out1: + kfree(obj); + err_out0: + return rc; +} + +static void __init find_micmute_tokens(const struct dmi_header *dm, void *dummy) +{ + struct dell_bios_calling_interface *calling_interface; + struct dell_bios_data_token *token; + int token_size = sizeof(struct dell_bios_data_token); + int i = 0; + + if (dm->type == 0xda && dm->length > 17) { + calling_interface = container_of(dm, + struct dell_bios_calling_interface, header); + + token = &calling_interface->damap[i]; + while (token->tokenid != 0xffff) { + if (token->tokenid == GLOBAL_MIC_MUTE_DISABLE) + memcpy(&dell_mic_tokens[0], token, token_size); + else if (token->tokenid == GLOBAL_MIC_MUTE_ENABLE) + memcpy(&dell_mic_tokens[1], token, token_size); + + i++; + token = &calling_interface->damap[i]; + } + } +} + +static int dell_micmute_led_set(int state) +{ + struct app_wmi_args args; + struct dell_bios_data_token *token; + + if (!wmi_has_guid(DELL_APP_GUID)) + return -ENODEV; + + if (state == 0 || state == 1) + token = &dell_mic_tokens[state]; + else + return -EINVAL; + + memset(&args, 0, sizeof(struct app_wmi_args)); + + args.class = 1; + args.arg1 = token->location; + args.arg2 = token->value; + + dell_wmi_perform_query(&args); + + return state; +} + +int dell_app_wmi_led_set(int whichled, int on) +{ + int state = 0; + + switch (whichled) { + case DELL_LED_MICMUTE: + state = dell_micmute_led_set(on); + break; + default: + pr_warn("led type %x is not supported\n", whichled); + break; + } + + return state; +} +EXPORT_SYMBOL_GPL(dell_app_wmi_led_set); + +static int __init dell_micmute_led_init(void) +{ + memset(dell_mic_tokens, 0, sizeof(struct dell_bios_data_token) * 2); + dmi_walk(find_micmute_tokens, NULL); + + return 0; +} + struct bios_args { unsigned char length; unsigned char result_code; @@ -181,21 +327,32 @@ { int error = 0; - if (!wmi_has_guid(DELL_LED_BIOS_GUID)) + if (!wmi_has_guid(DELL_LED_BIOS_GUID) && !wmi_has_guid(DELL_APP_GUID)) return -ENODEV; - error = led_off(); - if (error != 0) - return -ENODEV; + if (wmi_has_guid(DELL_APP_GUID)) + error = dell_micmute_led_init(); - return led_classdev_register(NULL, &dell_led); + if (wmi_has_guid(DELL_LED_BIOS_GUID)) { + error = led_off(); + if (error != 0) + return -ENODEV; + + error = led_classdev_register(NULL, &dell_led); + } + + return error; } static void __exit dell_led_exit(void) { - led_classdev_unregister(&dell_led); + int error = 0; - led_off(); + if (wmi_has_guid(DELL_LED_BIOS_GUID)) { + error = led_off(); + if (error == 0) + led_classdev_unregister(&dell_led); + } } module_init(dell_led_init); --- linux-3.13.0.orig/drivers/leds/leds-gpio.c +++ linux-3.13.0/drivers/leds/leds-gpio.c @@ -224,6 +224,8 @@ { .compatible = "gpio-leds", }, {}, }; + +MODULE_DEVICE_TABLE(of, of_gpio_leds_match); #else /* CONFIG_OF_GPIO */ static struct gpio_leds_priv *gpio_leds_create_of(struct platform_device *pdev) { --- linux-3.13.0.orig/drivers/md/Kconfig +++ linux-3.13.0/drivers/md/Kconfig @@ -176,8 +176,12 @@ source "drivers/md/bcache/Kconfig" +config BLK_DEV_DM_BUILTIN + boolean + config BLK_DEV_DM tristate "Device mapper support" + select BLK_DEV_DM_BUILTIN ---help--- Device-mapper is a low level volume manager. It works by allowing people to specify mappings for ranges of logical sectors. Various --- linux-3.13.0.orig/drivers/md/Makefile +++ linux-3.13.0/drivers/md/Makefile @@ -32,6 +32,7 @@ obj-$(CONFIG_BCACHE) += bcache/ obj-$(CONFIG_BLK_DEV_MD) += md-mod.o obj-$(CONFIG_BLK_DEV_DM) += dm-mod.o +obj-$(CONFIG_BLK_DEV_DM_BUILTIN) += dm-builtin.o obj-$(CONFIG_DM_BUFIO) += dm-bufio.o obj-$(CONFIG_DM_BIO_PRISON) += dm-bio-prison.o obj-$(CONFIG_DM_CRYPT) += dm-crypt.o --- linux-3.13.0.orig/drivers/md/bcache/bcache.h +++ linux-3.13.0/drivers/md/bcache/bcache.h @@ -209,7 +209,9 @@ #define GC_MARK_RECLAIMABLE 0 #define GC_MARK_DIRTY 1 #define GC_MARK_METADATA 2 -BITMASK(GC_SECTORS_USED, struct bucket, gc_mark, 2, 13); +#define GC_SECTORS_USED_SIZE 13 +#define MAX_GC_SECTORS_USED (~(~0ULL << GC_SECTORS_USED_SIZE)) +BITMASK(GC_SECTORS_USED, struct bucket, gc_mark, 2, GC_SECTORS_USED_SIZE); BITMASK(GC_MOVE, struct bucket, gc_mark, 15, 1); #include "journal.h" --- linux-3.13.0.orig/drivers/md/bcache/bset.c +++ linux-3.13.0/drivers/md/bcache/bset.c @@ -955,7 +955,7 @@ *i = iter->data[--iter->used]; } -static void btree_sort_fixup(struct btree_iter *iter) +static struct bkey *btree_sort_fixup(struct btree_iter *iter, struct bkey *tmp) { while (iter->used > 1) { struct btree_iter_set *top = iter->data, *i = top + 1; @@ -983,9 +983,22 @@ } else { /* can't happen because of comparison func */ BUG_ON(!bkey_cmp(&START_KEY(top->k), &START_KEY(i->k))); - bch_cut_back(&START_KEY(i->k), top->k); + + if (bkey_cmp(i->k, top->k) < 0) { + bkey_copy(tmp, top->k); + + bch_cut_back(&START_KEY(i->k), tmp); + bch_cut_front(i->k, top->k); + heap_sift(iter, 0, btree_iter_cmp); + + return tmp; + } else { + bch_cut_back(&START_KEY(i->k), top->k); + } } } + + return NULL; } static void btree_mergesort(struct btree *b, struct bset *out, @@ -993,15 +1006,20 @@ bool fixup, bool remove_stale) { struct bkey *k, *last = NULL; + BKEY_PADDED(k) tmp; bool (*bad)(struct btree *, const struct bkey *) = remove_stale ? bch_ptr_bad : bch_ptr_invalid; while (!btree_iter_end(iter)) { if (fixup && !b->level) - btree_sort_fixup(iter); + k = btree_sort_fixup(iter, &tmp.k); + else + k = NULL; + + if (!k) + k = bch_btree_iter_next(iter); - k = bch_btree_iter_next(iter); if (bad(b, k)) continue; --- linux-3.13.0.orig/drivers/md/bcache/btree.c +++ linux-3.13.0/drivers/md/bcache/btree.c @@ -1163,7 +1163,7 @@ /* guard against overflow */ SET_GC_SECTORS_USED(g, min_t(unsigned, GC_SECTORS_USED(g) + KEY_SIZE(k), - (1 << 14) - 1)); + MAX_GC_SECTORS_USED)); BUG_ON(!GC_SECTORS_USED(g)); } --- linux-3.13.0.orig/drivers/md/bcache/super.c +++ linux-3.13.0/drivers/md/bcache/super.c @@ -1023,6 +1023,9 @@ */ atomic_set(&dc->count, 1); + if (bch_cached_dev_writeback_start(dc)) + return -ENOMEM; + if (BDEV_STATE(&dc->sb) == BDEV_STATE_DIRTY) { bch_sectors_dirty_init(dc); atomic_set(&dc->has_dirty, 1); @@ -1052,7 +1055,8 @@ struct cached_dev *dc = container_of(cl, struct cached_dev, disk.cl); cancel_delayed_work_sync(&dc->writeback_rate_update); - kthread_stop(dc->writeback_thread); + if (!IS_ERR_OR_NULL(dc->writeback_thread)) + kthread_stop(dc->writeback_thread); mutex_lock(&bch_register_lock); --- linux-3.13.0.orig/drivers/md/bcache/writeback.c +++ linux-3.13.0/drivers/md/bcache/writeback.c @@ -239,7 +239,7 @@ if (KEY_START(&w->key) != dc->last_read || jiffies_to_msecs(delay) > 50) while (!kthread_should_stop() && delay) - delay = schedule_timeout_uninterruptible(delay); + delay = schedule_timeout_interruptible(delay); dc->last_read = KEY_OFFSET(&w->key); @@ -436,7 +436,7 @@ while (delay && !kthread_should_stop() && !test_bit(BCACHE_DEV_DETACHING, &dc->disk.flags)) - delay = schedule_timeout_uninterruptible(delay); + delay = schedule_timeout_interruptible(delay); } } @@ -478,7 +478,7 @@ dc->disk.sectors_dirty_last = bcache_dev_sectors_dirty(&dc->disk); } -int bch_cached_dev_writeback_init(struct cached_dev *dc) +void bch_cached_dev_writeback_init(struct cached_dev *dc) { sema_init(&dc->in_flight, 64); init_rwsem(&dc->writeback_lock); @@ -494,14 +494,20 @@ dc->writeback_rate_d_term = 30; dc->writeback_rate_p_term_inverse = 6000; + INIT_DELAYED_WORK(&dc->writeback_rate_update, update_writeback_rate); +} + +int bch_cached_dev_writeback_start(struct cached_dev *dc) +{ dc->writeback_thread = kthread_create(bch_writeback_thread, dc, "bcache_writeback"); if (IS_ERR(dc->writeback_thread)) return PTR_ERR(dc->writeback_thread); - INIT_DELAYED_WORK(&dc->writeback_rate_update, update_writeback_rate); schedule_delayed_work(&dc->writeback_rate_update, dc->writeback_rate_update_seconds * HZ); + bch_writeback_queue(dc); + return 0; } --- linux-3.13.0.orig/drivers/md/bcache/writeback.h +++ linux-3.13.0/drivers/md/bcache/writeback.h @@ -63,7 +63,8 @@ static inline void bch_writeback_queue(struct cached_dev *dc) { - wake_up_process(dc->writeback_thread); + if (!IS_ERR_OR_NULL(dc->writeback_thread)) + wake_up_process(dc->writeback_thread); } static inline void bch_writeback_add(struct cached_dev *dc) @@ -85,6 +86,7 @@ void bcache_dev_sectors_dirty_add(struct cache_set *, unsigned, uint64_t, int); void bch_sectors_dirty_init(struct cached_dev *dc); -int bch_cached_dev_writeback_init(struct cached_dev *); +void bch_cached_dev_writeback_init(struct cached_dev *); +int bch_cached_dev_writeback_start(struct cached_dev *); #endif --- linux-3.13.0.orig/drivers/md/dm-bufio.c +++ linux-3.13.0/drivers/md/dm-bufio.c @@ -463,6 +463,7 @@ c->n_buffers[dirty]++; b->list_mode = dirty; list_move(&b->lru_list, &c->lru[dirty]); + b->last_accessed = jiffies; } /*---------------------------------------------------------------- @@ -529,6 +530,19 @@ end_io(&b->bio, r); } +static void inline_endio(struct bio *bio, int error) +{ + bio_end_io_t *end_fn = bio->bi_private; + + /* + * Reset the bio to free any attached resources + * (e.g. bio integrity profiles). + */ + bio_reset(bio); + + end_fn(bio, error); +} + static void use_inline_bio(struct dm_buffer *b, int rw, sector_t block, bio_end_io_t *end_io) { @@ -540,7 +554,12 @@ b->bio.bi_max_vecs = DM_BUFIO_INLINE_VECS; b->bio.bi_sector = block << b->c->sectors_per_block_bits; b->bio.bi_bdev = b->c->bdev; - b->bio.bi_end_io = end_io; + b->bio.bi_end_io = inline_endio; + /* + * Use of .bi_private isn't a problem here because + * the dm_buffer's inline bio is local to bufio. + */ + b->bio.bi_private = end_io; /* * We assume that if len >= PAGE_SIZE ptr is page-aligned. @@ -1417,9 +1436,9 @@ /* * Test if the buffer is unused and too old, and commit it. - * At if noio is set, we must not do any I/O because we hold - * dm_bufio_clients_lock and we would risk deadlock if the I/O gets rerouted to - * different bufio client. + * And if GFP_NOFS is used, we must not do any I/O because we hold + * dm_bufio_clients_lock and we would risk deadlock if the I/O gets + * rerouted to different bufio client. */ static int __cleanup_old_buffer(struct dm_buffer *b, gfp_t gfp, unsigned long max_jiffies) @@ -1427,7 +1446,7 @@ if (jiffies - b->last_accessed < max_jiffies) return 0; - if (!(gfp & __GFP_IO)) { + if (!(gfp & __GFP_FS)) { if (test_bit(B_READING, &b->state) || test_bit(B_WRITING, &b->state) || test_bit(B_DIRTY, &b->state)) @@ -1455,9 +1474,9 @@ list_for_each_entry_safe_reverse(b, tmp, &c->lru[l], lru_list) { freed += __cleanup_old_buffer(b, gfp_mask, 0); if (!--nr_to_scan) - break; + return freed; + dm_bufio_cond_resched(); } - dm_bufio_cond_resched(); } return freed; } @@ -1469,7 +1488,7 @@ unsigned long freed; c = container_of(shrink, struct dm_bufio_client, shrinker); - if (sc->gfp_mask & __GFP_IO) + if (sc->gfp_mask & __GFP_FS) dm_bufio_lock(c); else if (!dm_bufio_trylock(c)) return SHRINK_STOP; @@ -1486,7 +1505,7 @@ unsigned long count; c = container_of(shrink, struct dm_bufio_client, shrinker); - if (sc->gfp_mask & __GFP_IO) + if (sc->gfp_mask & __GFP_FS) dm_bufio_lock(c); else if (!dm_bufio_trylock(c)) return 0; @@ -1511,7 +1530,7 @@ BUG_ON(block_size < 1 << SECTOR_SHIFT || (block_size & (block_size - 1))); - c = kmalloc(sizeof(*c), GFP_KERNEL); + c = kzalloc(sizeof(*c), GFP_KERNEL); if (!c) { r = -ENOMEM; goto bad_client; --- linux-3.13.0.orig/drivers/md/dm-builtin.c +++ linux-3.13.0/drivers/md/dm-builtin.c @@ -0,0 +1,48 @@ +#include "dm.h" + +/* + * The kobject release method must not be placed in the module itself, + * otherwise we are subject to module unload races. + * + * The release method is called when the last reference to the kobject is + * dropped. It may be called by any other kernel code that drops the last + * reference. + * + * The release method suffers from module unload race. We may prevent the + * module from being unloaded at the start of the release method (using + * increased module reference count or synchronizing against the release + * method), however there is no way to prevent the module from being + * unloaded at the end of the release method. + * + * If this code were placed in the dm module, the following race may + * happen: + * 1. Some other process takes a reference to dm kobject + * 2. The user issues ioctl function to unload the dm device + * 3. dm_sysfs_exit calls kobject_put, however the object is not released + * because of the other reference taken at step 1 + * 4. dm_sysfs_exit waits on the completion + * 5. The other process that took the reference in step 1 drops it, + * dm_kobject_release is called from this process + * 6. dm_kobject_release calls complete() + * 7. a reschedule happens before dm_kobject_release returns + * 8. dm_sysfs_exit continues, the dm device is unloaded, module reference + * count is decremented + * 9. The user unloads the dm module + * 10. The other process that was rescheduled in step 7 continues to run, + * it is now executing code in unloaded module, so it crashes + * + * Note that if the process that takes the foreign reference to dm kobject + * has a low priority and the system is sufficiently loaded with + * higher-priority processes that prevent the low-priority process from + * being scheduled long enough, this bug may really happen. + * + * In order to fix this module unload race, we place the release method + * into a helper code that is compiled directly into the kernel. + */ + +void dm_kobject_release(struct kobject *kobj) +{ + complete(dm_get_completion_from_kobject(kobj)); +} + +EXPORT_SYMBOL(dm_kobject_release); --- linux-3.13.0.orig/drivers/md/dm-cache-metadata.c +++ linux-3.13.0/drivers/md/dm-cache-metadata.c @@ -120,6 +120,12 @@ unsigned policy_version[CACHE_POLICY_VERSION_SIZE]; size_t policy_hint_size; struct dm_cache_statistics stats; + + /* + * Reading the space map root can fail, so we read it into this + * buffer before the superblock is locked and updated. + */ + __u8 metadata_space_map_root[SPACE_MAP_ROOT_SIZE]; }; /*------------------------------------------------------------------- @@ -260,11 +266,31 @@ } } +static int __save_sm_root(struct dm_cache_metadata *cmd) +{ + int r; + size_t metadata_len; + + r = dm_sm_root_size(cmd->metadata_sm, &metadata_len); + if (r < 0) + return r; + + return dm_sm_copy_root(cmd->metadata_sm, &cmd->metadata_space_map_root, + metadata_len); +} + +static void __copy_sm_root(struct dm_cache_metadata *cmd, + struct cache_disk_superblock *disk_super) +{ + memcpy(&disk_super->metadata_space_map_root, + &cmd->metadata_space_map_root, + sizeof(cmd->metadata_space_map_root)); +} + static int __write_initial_superblock(struct dm_cache_metadata *cmd) { int r; struct dm_block *sblock; - size_t metadata_len; struct cache_disk_superblock *disk_super; sector_t bdev_size = i_size_read(cmd->bdev->bd_inode) >> SECTOR_SHIFT; @@ -272,12 +298,16 @@ if (bdev_size > DM_CACHE_METADATA_MAX_SECTORS) bdev_size = DM_CACHE_METADATA_MAX_SECTORS; - r = dm_sm_root_size(cmd->metadata_sm, &metadata_len); + r = dm_tm_pre_commit(cmd->tm); if (r < 0) return r; - r = dm_tm_pre_commit(cmd->tm); - if (r < 0) + /* + * dm_sm_copy_root() can fail. So we need to do it before we start + * updating the superblock. + */ + r = __save_sm_root(cmd); + if (r) return r; r = superblock_lock_zero(cmd, &sblock); @@ -293,10 +323,7 @@ memset(disk_super->policy_version, 0, sizeof(disk_super->policy_version)); disk_super->policy_hint_size = 0; - r = dm_sm_copy_root(cmd->metadata_sm, &disk_super->metadata_space_map_root, - metadata_len); - if (r < 0) - goto bad_locked; + __copy_sm_root(cmd, disk_super); disk_super->mapping_root = cpu_to_le64(cmd->root); disk_super->hint_root = cpu_to_le64(cmd->hint_root); @@ -313,10 +340,6 @@ disk_super->write_misses = cpu_to_le32(0); return dm_tm_commit(cmd->tm, sblock); - -bad_locked: - dm_bm_unlock(sblock); - return r; } static int __format_metadata(struct dm_cache_metadata *cmd) @@ -402,6 +425,15 @@ disk_super = dm_block_data(sblock); + /* Verify the data block size hasn't changed */ + if (le32_to_cpu(disk_super->data_block_size) != cmd->data_block_size) { + DMERR("changing the data block size (from %u to %llu) is not supported", + le32_to_cpu(disk_super->data_block_size), + (unsigned long long)cmd->data_block_size); + r = -EINVAL; + goto bad; + } + r = __check_incompat_features(disk_super, cmd); if (r < 0) goto bad; @@ -530,8 +562,9 @@ disk_super = dm_block_data(sblock); update_flags(disk_super, mutator); read_superblock_fields(cmd, disk_super); + dm_bm_unlock(sblock); - return dm_bm_flush_and_unlock(cmd->bm, sblock); + return dm_bm_flush(cmd->bm); } static int __begin_transaction(struct dm_cache_metadata *cmd) @@ -559,7 +592,6 @@ flags_mutator mutator) { int r; - size_t metadata_len; struct cache_disk_superblock *disk_super; struct dm_block *sblock; @@ -577,8 +609,8 @@ if (r < 0) return r; - r = dm_sm_root_size(cmd->metadata_sm, &metadata_len); - if (r < 0) + r = __save_sm_root(cmd); + if (r) return r; r = superblock_lock(cmd, &sblock); @@ -605,13 +637,7 @@ disk_super->read_misses = cpu_to_le32(cmd->stats.read_misses); disk_super->write_hits = cpu_to_le32(cmd->stats.write_hits); disk_super->write_misses = cpu_to_le32(cmd->stats.write_misses); - - r = dm_sm_copy_root(cmd->metadata_sm, &disk_super->metadata_space_map_root, - metadata_len); - if (r < 0) { - dm_bm_unlock(sblock); - return r; - } + __copy_sm_root(cmd, disk_super); return dm_tm_commit(cmd->tm, sblock); } @@ -1228,22 +1254,12 @@ return 0; } -int dm_cache_begin_hints(struct dm_cache_metadata *cmd, struct dm_cache_policy *policy) +static int save_hint(void *context, dm_cblock_t cblock, dm_oblock_t oblock, uint32_t hint) { + struct dm_cache_metadata *cmd = context; + __le32 value = cpu_to_le32(hint); int r; - down_write(&cmd->root_lock); - r = begin_hints(cmd, policy); - up_write(&cmd->root_lock); - - return r; -} - -static int save_hint(struct dm_cache_metadata *cmd, dm_cblock_t cblock, - uint32_t hint) -{ - int r; - __le32 value = cpu_to_le32(hint); __dm_bless_for_disk(&value); r = dm_array_set_value(&cmd->hint_info, cmd->hint_root, @@ -1253,16 +1269,25 @@ return r; } -int dm_cache_save_hint(struct dm_cache_metadata *cmd, dm_cblock_t cblock, - uint32_t hint) +static int write_hints(struct dm_cache_metadata *cmd, struct dm_cache_policy *policy) { int r; - if (!hints_array_initialized(cmd)) - return 0; + r = begin_hints(cmd, policy); + if (r) { + DMERR("begin_hints failed"); + return r; + } + + return policy_walk_mappings(policy, save_hint, cmd); +} + +int dm_cache_write_hints(struct dm_cache_metadata *cmd, struct dm_cache_policy *policy) +{ + int r; down_write(&cmd->root_lock); - r = save_hint(cmd, cblock, hint); + r = write_hints(cmd, policy); up_write(&cmd->root_lock); return r; --- linux-3.13.0.orig/drivers/md/dm-cache-metadata.h +++ linux-3.13.0/drivers/md/dm-cache-metadata.h @@ -128,14 +128,7 @@ * rather than querying the policy for each cblock, we let it walk its data * structures and fill in the hints in whatever order it wishes. */ - -int dm_cache_begin_hints(struct dm_cache_metadata *cmd, struct dm_cache_policy *p); - -/* - * requests hints for every cblock and stores in the metadata device. - */ -int dm_cache_save_hint(struct dm_cache_metadata *cmd, - dm_cblock_t cblock, uint32_t hint); +int dm_cache_write_hints(struct dm_cache_metadata *cmd, struct dm_cache_policy *p); /* * Query method. Are all the blocks in the cache clean? --- linux-3.13.0.orig/drivers/md/dm-cache-policy-mq.c +++ linux-3.13.0/drivers/md/dm-cache-policy-mq.c @@ -869,7 +869,7 @@ { struct mq_policy *mq = to_mq_policy(p); - kfree(mq->table); + vfree(mq->table); epool_exit(&mq->cache_pool); epool_exit(&mq->pre_cache_pool); kfree(mq); @@ -1224,7 +1224,7 @@ mq->nr_buckets = next_power(from_cblock(cache_size) / 2, 16); mq->hash_bits = ffs(mq->nr_buckets) - 1; - mq->table = kzalloc(sizeof(*mq->table) * mq->nr_buckets, GFP_KERNEL); + mq->table = vzalloc(sizeof(*mq->table) * mq->nr_buckets); if (!mq->table) goto bad_alloc_table; --- linux-3.13.0.orig/drivers/md/dm-cache-target.c +++ linux-3.13.0/drivers/md/dm-cache-target.c @@ -225,7 +225,7 @@ /* * cache_size entries, dirty if set */ - dm_cblock_t nr_dirty; + atomic_t nr_dirty; unsigned long *dirty_bitset; /* @@ -233,7 +233,7 @@ */ dm_dblock_t discard_nr_blocks; unsigned long *discard_bitset; - uint32_t discard_block_size; /* a power of 2 times sectors per block */ + uint32_t discard_block_size; /* * Rather than reconstructing the table line for the status we just @@ -283,6 +283,7 @@ bool tick:1; unsigned req_nr:2; struct dm_deferred_entry *all_io_entry; + struct dm_hook_info hook_info; /* * writethrough fields. These MUST remain at the end of this @@ -291,7 +292,6 @@ */ struct cache *cache; dm_cblock_t cblock; - struct dm_hook_info hook_info; struct dm_bio_details bio_details; }; @@ -487,7 +487,7 @@ static void set_dirty(struct cache *cache, dm_oblock_t oblock, dm_cblock_t cblock) { if (!test_and_set_bit(from_cblock(cblock), cache->dirty_bitset)) { - cache->nr_dirty = to_cblock(from_cblock(cache->nr_dirty) + 1); + atomic_inc(&cache->nr_dirty); policy_set_dirty(cache->policy, oblock); } } @@ -496,8 +496,7 @@ { if (test_and_clear_bit(from_cblock(cblock), cache->dirty_bitset)) { policy_clear_dirty(cache->policy, oblock); - cache->nr_dirty = to_cblock(from_cblock(cache->nr_dirty) - 1); - if (!from_cblock(cache->nr_dirty)) + if (atomic_dec_return(&cache->nr_dirty) == 0) dm_table_event(cache->ti->table); } } @@ -882,8 +881,8 @@ struct cache *cache = mg->cache; if (mg->writeback) { - cell_defer(cache, mg->old_ocell, false); clear_dirty(cache, mg->old_oblock, mg->cblock); + cell_defer(cache, mg->old_ocell, false); cleanup_migration(mg); return; @@ -938,13 +937,17 @@ } } else { - if (mg->requeue_holder) + if (mg->requeue_holder) { + clear_dirty(cache, mg->new_oblock, mg->cblock); cell_defer(cache, mg->new_ocell, true); - else { + } else { + /* + * The block was promoted via an overwrite, so it's dirty. + */ + set_dirty(cache, mg->new_oblock, mg->cblock); bio_endio(mg->new_ocell->holder, 0); cell_defer(cache, mg->new_ocell, false); } - clear_dirty(cache, mg->new_oblock, mg->cblock); cleanup_migration(mg); } } @@ -970,12 +973,13 @@ int r; struct dm_io_region o_region, c_region; struct cache *cache = mg->cache; + sector_t cblock = from_cblock(mg->cblock); o_region.bdev = cache->origin_dev->bdev; o_region.count = cache->sectors_per_block; c_region.bdev = cache->cache_dev->bdev; - c_region.sector = from_cblock(mg->cblock) * cache->sectors_per_block; + c_region.sector = cblock * cache->sectors_per_block; c_region.count = cache->sectors_per_block; if (mg->writeback || mg->demote) { @@ -1049,7 +1053,8 @@ avoid = is_discarded_oblock(cache, mg->new_oblock); - if (!avoid && bio_writes_complete_block(cache, bio)) { + if (writeback_mode(&cache->features) && + !avoid && bio_writes_complete_block(cache, bio)) { issue_overwrite(mg, bio); return; } @@ -2159,35 +2164,6 @@ return 0; } -/* - * We want the discard block size to be a power of two, at least the size - * of the cache block size, and have no more than 2^14 discard blocks - * across the origin. - */ -#define MAX_DISCARD_BLOCKS (1 << 14) - -static bool too_many_discard_blocks(sector_t discard_block_size, - sector_t origin_size) -{ - (void) sector_div(origin_size, discard_block_size); - - return origin_size > MAX_DISCARD_BLOCKS; -} - -static sector_t calculate_discard_block_size(sector_t cache_block_size, - sector_t origin_size) -{ - sector_t discard_block_size; - - discard_block_size = roundup_pow_of_two(cache_block_size); - - if (origin_size) - while (too_many_discard_blocks(discard_block_size, origin_size)) - discard_block_size *= 2; - - return discard_block_size; -} - #define DEFAULT_MIGRATION_THRESHOLD 2048 static int cache_create(struct cache_args *ca, struct cache **result) @@ -2212,6 +2188,8 @@ ti->num_discard_bios = 1; ti->discards_supported = true; ti->discard_zeroes_data_unsupported = true; + /* Discard bios must be split on a block boundary */ + ti->split_discard_bios = true; cache->features = ca->features; ti->per_bio_data_size = get_per_bio_data_size(cache); @@ -2301,7 +2279,7 @@ atomic_set(&cache->quiescing_ack, 0); r = -ENOMEM; - cache->nr_dirty = 0; + atomic_set(&cache->nr_dirty, 0); cache->dirty_bitset = alloc_bitset(from_cblock(cache->cache_size)); if (!cache->dirty_bitset) { *error = "could not allocate dirty bitset"; @@ -2309,9 +2287,7 @@ } clear_bitset(cache->dirty_bitset, from_cblock(cache->cache_size)); - cache->discard_block_size = - calculate_discard_block_size(cache->sectors_per_block, - cache->origin_sectors); + cache->discard_block_size = cache->sectors_per_block; cache->discard_nr_blocks = oblock_to_dblock(cache, cache->origin_blocks); cache->discard_bitset = alloc_bitset(from_dblock(cache->discard_nr_blocks)); if (!cache->discard_bitset) { @@ -2453,20 +2429,18 @@ bool discarded_block; struct dm_bio_prison_cell *cell; struct policy_result lookup_result; - struct per_bio_data *pb; + struct per_bio_data *pb = init_per_bio_data(bio, pb_data_size); - if (from_oblock(block) > from_oblock(cache->origin_blocks)) { + if (unlikely(from_oblock(block) >= from_oblock(cache->origin_blocks))) { /* * This can only occur if the io goes to a partial block at * the end of the origin device. We don't cache these. * Just remap to the origin and carry on. */ - remap_to_origin_clear_discard(cache, bio, block); + remap_to_origin(cache, bio); return DM_MAPIO_REMAPPED; } - pb = init_per_bio_data(bio, pb_data_size); - if (bio->bi_rw & (REQ_FLUSH | REQ_FUA | REQ_DISCARD)) { defer_bio(cache, bio); return DM_MAPIO_SUBMITTED; @@ -2527,6 +2501,7 @@ } else { inc_hit_counter(cache, bio); + pb->all_io_entry = dm_deferred_entry_inc(cache->all_io_ds); if (bio_data_dir(bio) == WRITE && writethrough_mode(&cache->features) && !is_dirty(cache, lookup_result.cblock)) @@ -2621,30 +2596,6 @@ return 0; } -static int save_hint(void *context, dm_cblock_t cblock, dm_oblock_t oblock, - uint32_t hint) -{ - struct cache *cache = context; - return dm_cache_save_hint(cache->cmd, cblock, hint); -} - -static int write_hints(struct cache *cache) -{ - int r; - - r = dm_cache_begin_hints(cache->cmd, cache->policy); - if (r) { - DMERR("dm_cache_begin_hints failed"); - return r; - } - - r = policy_walk_mappings(cache->policy, save_hint, cache); - if (r) - DMERR("policy_walk_mappings failed"); - - return r; -} - /* * returns true on success */ @@ -2662,7 +2613,7 @@ save_stats(cache); - r3 = write_hints(cache); + r3 = dm_cache_write_hints(cache->cmd, cache->policy); if (r3) DMERR("could not write hints"); @@ -2869,7 +2820,7 @@ residency = policy_residency(cache->policy); - DMEMIT("%llu/%llu %u %u %u %u %u %u %llu %u ", + DMEMIT("%llu/%llu %u %u %u %u %u %u %llu %lu ", (unsigned long long)(nr_blocks_metadata - nr_free_blocks_metadata), (unsigned long long)nr_blocks_metadata, (unsigned) atomic_read(&cache->stats.read_hit), @@ -2879,7 +2830,7 @@ (unsigned) atomic_read(&cache->stats.demotion), (unsigned) atomic_read(&cache->stats.promotion), (unsigned long long) from_cblock(residency), - cache->nr_dirty); + (unsigned long) atomic_read(&cache->nr_dirty)); if (writethrough_mode(&cache->features)) DMEMIT("1 writethrough "); @@ -3104,7 +3055,7 @@ /* * FIXME: these limits may be incompatible with the cache device */ - limits->max_discard_sectors = cache->discard_block_size * 1024; + limits->max_discard_sectors = cache->discard_block_size; limits->discard_granularity = cache->discard_block_size << SECTOR_SHIFT; } --- linux-3.13.0.orig/drivers/md/dm-crypt.c +++ linux-3.13.0/drivers/md/dm-crypt.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #include #include @@ -45,6 +44,7 @@ unsigned int idx_out; sector_t cc_sector; atomic_t cc_pending; + struct ablkcipher_request *req; }; /* @@ -113,15 +113,7 @@ enum flags { DM_CRYPT_SUSPENDED, DM_CRYPT_KEY_VALID }; /* - * Duplicated per-CPU state for cipher. - */ -struct crypt_cpu { - struct ablkcipher_request *req; -}; - -/* - * The fields in here must be read only after initialization, - * changing state should be in crypt_cpu. + * The fields in here must be read only after initialization. */ struct crypt_config { struct dm_dev *dev; @@ -152,12 +144,6 @@ sector_t iv_offset; unsigned int iv_size; - /* - * Duplicated per cpu state. Access through - * per_cpu_ptr() only. - */ - struct crypt_cpu __percpu *cpu; - /* ESSIV: struct crypto_cipher *essiv_tfm */ void *iv_private; struct crypto_ablkcipher **tfms; @@ -194,11 +180,6 @@ static void kcryptd_queue_crypt(struct dm_crypt_io *io); static u8 *iv_of_dmreq(struct crypt_config *cc, struct dm_crypt_request *dmreq); -static struct crypt_cpu *this_crypt_config(struct crypt_config *cc) -{ - return this_cpu_ptr(cc->cpu); -} - /* * Use this to access cipher attributes that are the same for each CPU. */ @@ -730,7 +711,7 @@ for (i = 0; i < ((1 << SECTOR_SHIFT) / 8); i++) crypto_xor(data + i * 8, buf, 8); out: - memset(buf, 0, sizeof(buf)); + memzero_explicit(buf, sizeof(buf)); return r; } @@ -914,16 +895,15 @@ static void crypt_alloc_req(struct crypt_config *cc, struct convert_context *ctx) { - struct crypt_cpu *this_cc = this_crypt_config(cc); unsigned key_index = ctx->cc_sector & (cc->tfms_count - 1); - if (!this_cc->req) - this_cc->req = mempool_alloc(cc->req_pool, GFP_NOIO); + if (!ctx->req) + ctx->req = mempool_alloc(cc->req_pool, GFP_NOIO); - ablkcipher_request_set_tfm(this_cc->req, cc->tfms[key_index]); - ablkcipher_request_set_callback(this_cc->req, + ablkcipher_request_set_tfm(ctx->req, cc->tfms[key_index]); + ablkcipher_request_set_callback(ctx->req, CRYPTO_TFM_REQ_MAY_BACKLOG | CRYPTO_TFM_REQ_MAY_SLEEP, - kcryptd_async_done, dmreq_of_req(cc, this_cc->req)); + kcryptd_async_done, dmreq_of_req(cc, ctx->req)); } /* @@ -932,7 +912,6 @@ static int crypt_convert(struct crypt_config *cc, struct convert_context *ctx) { - struct crypt_cpu *this_cc = this_crypt_config(cc); int r; atomic_set(&ctx->cc_pending, 1); @@ -944,7 +923,7 @@ atomic_inc(&ctx->cc_pending); - r = crypt_convert_block(cc, ctx, this_cc->req); + r = crypt_convert_block(cc, ctx, ctx->req); switch (r) { /* async */ @@ -953,7 +932,7 @@ reinit_completion(&ctx->restart); /* fall through*/ case -EINPROGRESS: - this_cc->req = NULL; + ctx->req = NULL; ctx->cc_sector++; continue; @@ -1052,6 +1031,7 @@ io->sector = sector; io->error = 0; io->base_io = NULL; + io->ctx.req = NULL; atomic_set(&io->io_pending, 0); return io; @@ -1077,6 +1057,8 @@ if (!atomic_dec_and_test(&io->io_pending)) return; + if (io->ctx.req) + mempool_free(io->ctx.req, cc->req_pool); mempool_free(io, cc->io_pool); if (likely(!base_io)) @@ -1505,8 +1487,6 @@ static void crypt_dtr(struct dm_target *ti) { struct crypt_config *cc = ti->private; - struct crypt_cpu *cpu_cc; - int cpu; ti->private = NULL; @@ -1518,13 +1498,6 @@ if (cc->crypt_queue) destroy_workqueue(cc->crypt_queue); - if (cc->cpu) - for_each_possible_cpu(cpu) { - cpu_cc = per_cpu_ptr(cc->cpu, cpu); - if (cpu_cc->req) - mempool_free(cpu_cc->req, cc->req_pool); - } - crypt_free_tfms(cc); if (cc->bs) @@ -1543,9 +1516,6 @@ if (cc->dev) dm_put_device(ti, cc->dev); - if (cc->cpu) - free_percpu(cc->cpu); - kzfree(cc->cipher); kzfree(cc->cipher_string); @@ -1601,13 +1571,6 @@ if (tmp) DMWARN("Ignoring unexpected additional cipher options"); - cc->cpu = __alloc_percpu(sizeof(*(cc->cpu)), - __alignof__(struct crypt_cpu)); - if (!cc->cpu) { - ti->error = "Cannot allocate per cpu state"; - goto bad_mem; - } - /* * For compatibility with the original dm-crypt mapping format, if * only the cipher name is supplied, use cbc-plain. @@ -2003,6 +1966,12 @@ return fn(ti, cc->dev, cc->start, ti->len, data); } +static void crypt_io_hints(struct dm_target *ti, + struct queue_limits *limits) +{ + limits->max_write_same_sectors = 0; +} + static struct target_type crypt_target = { .name = "crypt", .version = {1, 13, 0}, @@ -2017,6 +1986,7 @@ .message = crypt_message, .merge = crypt_merge, .iterate_devices = crypt_iterate_devices, + .io_hints = crypt_io_hints, }; static int __init dm_crypt_init(void) --- linux-3.13.0.orig/drivers/md/dm-io.c +++ linux-3.13.0/drivers/md/dm-io.c @@ -10,6 +10,7 @@ #include #include +#include #include #include #include @@ -32,7 +33,7 @@ struct io { unsigned long error_bits; atomic_t count; - struct task_struct *sleeper; + struct completion *wait; struct dm_io_client *client; io_notify_fn callback; void *context; @@ -121,8 +122,8 @@ invalidate_kernel_vmap_range(io->vma_invalidate_address, io->vma_invalidate_size); - if (io->sleeper) - wake_up_process(io->sleeper); + if (io->wait) + complete(io->wait); else { unsigned long r = io->error_bits; @@ -385,6 +386,7 @@ */ volatile char io_[sizeof(struct io) + __alignof__(struct io) - 1]; struct io *io = (struct io *)PTR_ALIGN(&io_, __alignof__(struct io)); + DECLARE_COMPLETION_ONSTACK(wait); if (num_regions > 1 && (rw & RW_MASK) != WRITE) { WARN_ON(1); @@ -393,7 +395,7 @@ io->error_bits = 0; atomic_set(&io->count, 1); /* see dispatch_io() */ - io->sleeper = current; + io->wait = &wait; io->client = client; io->vma_invalidate_address = dp->vma_invalidate_address; @@ -401,15 +403,7 @@ dispatch_io(rw, num_regions, where, dp, io, 1); - while (1) { - set_current_state(TASK_UNINTERRUPTIBLE); - - if (!atomic_read(&io->count)) - break; - - io_schedule(); - } - set_current_state(TASK_RUNNING); + wait_for_completion_io(&wait); if (error_bits) *error_bits = io->error_bits; @@ -432,7 +426,7 @@ io = mempool_alloc(client->pool, GFP_NOIO); io->error_bits = 0; atomic_set(&io->count, 1); /* see dispatch_io() */ - io->sleeper = NULL; + io->wait = NULL; io->client = client; io->callback = fn; io->context = context; --- linux-3.13.0.orig/drivers/md/dm-log-userspace-transfer.c +++ linux-3.13.0/drivers/md/dm-log-userspace-transfer.c @@ -272,7 +272,7 @@ r = cn_add_callback(&ulog_cn_id, "dmlogusr", cn_ulog_callback); if (r) { - cn_del_callback(&ulog_cn_id); + kfree(prealloced_cn_msg); return r; } --- linux-3.13.0.orig/drivers/md/dm-mpath.c +++ linux-3.13.0/drivers/md/dm-mpath.c @@ -1626,8 +1626,11 @@ /* * Only pass ioctls through if the device sizes match exactly. */ - if (!r && ti->len != i_size_read(bdev->bd_inode) >> SECTOR_SHIFT) - r = scsi_verify_blk_ioctl(NULL, cmd); + if (!bdev || ti->len != i_size_read(bdev->bd_inode) >> SECTOR_SHIFT) { + int err = scsi_verify_blk_ioctl(NULL, cmd); + if (err) + r = err; + } if (r == -ENOTCONN && !fatal_signal_pending(current)) queue_work(kmultipathd, &m->process_queued_ios); --- linux-3.13.0.orig/drivers/md/dm-raid.c +++ linux-3.13.0/drivers/md/dm-raid.c @@ -785,8 +785,7 @@ __le32 layout; __le32 stripe_sectors; - __u8 pad[452]; /* Round struct to 512 bytes. */ - /* Always set to 0 when writing. */ + /* Remainder of a logical block is zero-filled when writing (see super_sync()). */ } __packed; static int read_disk_sb(struct md_rdev *rdev, int size) @@ -823,7 +822,7 @@ test_bit(Faulty, &(rs->dev[i].rdev.flags))) failed_devices |= (1ULL << i); - memset(sb, 0, sizeof(*sb)); + memset(sb + 1, 0, rdev->sb_size - sizeof(*sb)); sb->magic = cpu_to_le32(DM_RAID_MAGIC); sb->features = cpu_to_le32(0); /* No features yet */ @@ -858,7 +857,11 @@ uint64_t events_sb, events_refsb; rdev->sb_start = 0; - rdev->sb_size = sizeof(*sb); + rdev->sb_size = bdev_logical_block_size(rdev->meta_bdev); + if (rdev->sb_size < sizeof(*sb) || rdev->sb_size > PAGE_SIZE) { + DMERR("superblock size of a logical block is no longer valid"); + return -EINVAL; + } ret = read_disk_sb(rdev, rdev->sb_size); if (ret) --- linux-3.13.0.orig/drivers/md/dm-sysfs.c +++ linux-3.13.0/drivers/md/dm-sysfs.c @@ -86,6 +86,7 @@ static struct kobj_type dm_ktype = { .sysfs_ops = &dm_sysfs_ops, .default_attrs = dm_attrs, + .release = dm_kobject_release, }; /* @@ -104,5 +105,7 @@ */ void dm_sysfs_exit(struct mapped_device *md) { - kobject_put(dm_kobject(md)); + struct kobject *kobj = dm_kobject(md); + kobject_put(kobj); + wait_for_completion(dm_get_completion_from_kobject(kobj)); } --- linux-3.13.0.orig/drivers/md/dm-thin-metadata.c +++ linux-3.13.0/drivers/md/dm-thin-metadata.c @@ -192,6 +192,13 @@ * operation possible in this state is the closing of the device. */ bool fail_io:1; + + /* + * Reading the space map roots can fail, so we read it into these + * buffers before the superblock is locked and updated. + */ + __u8 data_space_map_root[SPACE_MAP_ROOT_SIZE]; + __u8 metadata_space_map_root[SPACE_MAP_ROOT_SIZE]; }; struct dm_thin_device { @@ -431,26 +438,53 @@ pmd->details_info.value_type.equal = NULL; } +static int save_sm_roots(struct dm_pool_metadata *pmd) +{ + int r; + size_t len; + + r = dm_sm_root_size(pmd->metadata_sm, &len); + if (r < 0) + return r; + + r = dm_sm_copy_root(pmd->metadata_sm, &pmd->metadata_space_map_root, len); + if (r < 0) + return r; + + r = dm_sm_root_size(pmd->data_sm, &len); + if (r < 0) + return r; + + return dm_sm_copy_root(pmd->data_sm, &pmd->data_space_map_root, len); +} + +static void copy_sm_roots(struct dm_pool_metadata *pmd, + struct thin_disk_superblock *disk) +{ + memcpy(&disk->metadata_space_map_root, + &pmd->metadata_space_map_root, + sizeof(pmd->metadata_space_map_root)); + + memcpy(&disk->data_space_map_root, + &pmd->data_space_map_root, + sizeof(pmd->data_space_map_root)); +} + static int __write_initial_superblock(struct dm_pool_metadata *pmd) { int r; struct dm_block *sblock; - size_t metadata_len, data_len; struct thin_disk_superblock *disk_super; sector_t bdev_size = i_size_read(pmd->bdev->bd_inode) >> SECTOR_SHIFT; if (bdev_size > THIN_METADATA_MAX_SECTORS) bdev_size = THIN_METADATA_MAX_SECTORS; - r = dm_sm_root_size(pmd->metadata_sm, &metadata_len); - if (r < 0) - return r; - - r = dm_sm_root_size(pmd->data_sm, &data_len); + r = dm_sm_commit(pmd->data_sm); if (r < 0) return r; - r = dm_sm_commit(pmd->data_sm); + r = save_sm_roots(pmd); if (r < 0) return r; @@ -471,15 +505,7 @@ disk_super->trans_id = 0; disk_super->held_root = 0; - r = dm_sm_copy_root(pmd->metadata_sm, &disk_super->metadata_space_map_root, - metadata_len); - if (r < 0) - goto bad_locked; - - r = dm_sm_copy_root(pmd->data_sm, &disk_super->data_space_map_root, - data_len); - if (r < 0) - goto bad_locked; + copy_sm_roots(pmd, disk_super); disk_super->data_mapping_root = cpu_to_le64(pmd->root); disk_super->device_details_root = cpu_to_le64(pmd->details_root); @@ -488,10 +514,6 @@ disk_super->data_block_size = cpu_to_le32(pmd->data_block_size); return dm_tm_commit(pmd->tm, sblock); - -bad_locked: - dm_bm_unlock(sblock); - return r; } static int __format_metadata(struct dm_pool_metadata *pmd) @@ -591,6 +613,15 @@ disk_super = dm_block_data(sblock); + /* Verify the data block size hasn't changed */ + if (le32_to_cpu(disk_super->data_block_size) != pmd->data_block_size) { + DMERR("changing the data block size (from %u to %llu) is not supported", + le32_to_cpu(disk_super->data_block_size), + (unsigned long long)pmd->data_block_size); + r = -EINVAL; + goto bad_unlock_sblock; + } + r = __check_incompat_features(disk_super, pmd); if (r < 0) goto bad_unlock_sblock; @@ -769,6 +800,10 @@ if (r < 0) return r; + r = save_sm_roots(pmd); + if (r < 0) + return r; + r = superblock_lock(pmd, &sblock); if (r) return r; @@ -780,21 +815,9 @@ disk_super->trans_id = cpu_to_le64(pmd->trans_id); disk_super->flags = cpu_to_le32(pmd->flags); - r = dm_sm_copy_root(pmd->metadata_sm, &disk_super->metadata_space_map_root, - metadata_len); - if (r < 0) - goto out_locked; - - r = dm_sm_copy_root(pmd->data_sm, &disk_super->data_space_map_root, - data_len); - if (r < 0) - goto out_locked; + copy_sm_roots(pmd, disk_super); return dm_tm_commit(pmd->tm, sblock); - -out_locked: - dm_bm_unlock(sblock); - return r; } struct dm_pool_metadata *dm_pool_metadata_open(struct block_device *bdev, @@ -1349,6 +1372,12 @@ return td->id; } +/* + * Check whether @time (of block creation) is older than @td's last snapshot. + * If so then the associated block is shared with the last snapshot device. + * Any block on a device created *after* the device last got snapshotted is + * necessarily not shared. + */ static bool __snapshotted_since(struct dm_thin_device *td, uint32_t time) { return td->snapshotted_time > time; @@ -1458,6 +1487,20 @@ return r; } +int dm_pool_block_is_used(struct dm_pool_metadata *pmd, dm_block_t b, bool *result) +{ + int r; + uint32_t ref_count; + + down_read(&pmd->root_lock); + r = dm_sm_get_count(pmd->data_sm, b, &ref_count); + if (!r) + *result = (ref_count != 0); + up_read(&pmd->root_lock); + + return r; +} + bool dm_thin_changed_this_transaction(struct dm_thin_device *td) { int r; @@ -1468,6 +1511,23 @@ return r; } + +bool dm_pool_changed_this_transaction(struct dm_pool_metadata *pmd) +{ + bool r = false; + struct dm_thin_device *td, *tmp; + + down_read(&pmd->root_lock); + list_for_each_entry_safe(td, tmp, &pmd->thin_devices, list) { + if (td->changed) { + r = td->changed; + break; + } + } + up_read(&pmd->root_lock); + + return r; +} bool dm_thin_aborted_changes(struct dm_thin_device *td) { --- linux-3.13.0.orig/drivers/md/dm-thin-metadata.h +++ linux-3.13.0/drivers/md/dm-thin-metadata.h @@ -161,6 +161,8 @@ */ bool dm_thin_changed_this_transaction(struct dm_thin_device *td); +bool dm_pool_changed_this_transaction(struct dm_pool_metadata *pmd); + bool dm_thin_aborted_changes(struct dm_thin_device *td); int dm_thin_get_highest_mapped_block(struct dm_thin_device *td, @@ -181,6 +183,8 @@ int dm_pool_get_data_dev_size(struct dm_pool_metadata *pmd, dm_block_t *result); +int dm_pool_block_is_used(struct dm_pool_metadata *pmd, dm_block_t b, bool *result); + /* * Returns -ENOSPC if the new size is too small and already allocated * blocks would be lost. --- linux-3.13.0.orig/drivers/md/dm-thin.c +++ linux-3.13.0/drivers/md/dm-thin.c @@ -512,6 +512,7 @@ unsigned quiesced:1; unsigned prepared:1; unsigned pass_discard:1; + unsigned definitely_not_shared:1; struct thin_c *tc; dm_block_t virt_block; @@ -683,7 +684,15 @@ cell_defer_no_holder(tc, m->cell2); if (m->pass_discard) - remap_and_issue(tc, m->bio, m->data_block); + if (m->definitely_not_shared) + remap_and_issue(tc, m->bio, m->data_block); + else { + bool used = false; + if (dm_pool_block_is_used(tc->pool->pmd, m->data_block, &used) || used) + bio_endio(m->bio, 0); + else + remap_and_issue(tc, m->bio, m->data_block); + } else bio_endio(m->bio, 0); @@ -751,13 +760,17 @@ static struct dm_thin_new_mapping *get_next_mapping(struct pool *pool) { - struct dm_thin_new_mapping *r = pool->next_mapping; + struct dm_thin_new_mapping *m = pool->next_mapping; BUG_ON(!pool->next_mapping); + memset(m, 0, sizeof(struct dm_thin_new_mapping)); + INIT_LIST_HEAD(&m->list); + m->bio = NULL; + pool->next_mapping = NULL; - return r; + return m; } static void schedule_copy(struct thin_c *tc, dm_block_t virt_block, @@ -769,15 +782,10 @@ struct pool *pool = tc->pool; struct dm_thin_new_mapping *m = get_next_mapping(pool); - INIT_LIST_HEAD(&m->list); - m->quiesced = 0; - m->prepared = 0; m->tc = tc; m->virt_block = virt_block; m->data_block = data_dest; m->cell = cell; - m->err = 0; - m->bio = NULL; if (!dm_deferred_set_add_work(pool->shared_read_ds, &m->list)) m->quiesced = 1; @@ -840,15 +848,12 @@ struct pool *pool = tc->pool; struct dm_thin_new_mapping *m = get_next_mapping(pool); - INIT_LIST_HEAD(&m->list); m->quiesced = 1; m->prepared = 0; m->tc = tc; m->virt_block = virt_block; m->data_block = data_block; m->cell = cell; - m->err = 0; - m->bio = NULL; /* * If the whole block of data is being overwritten or we are not @@ -1040,12 +1045,12 @@ */ m = get_next_mapping(pool); m->tc = tc; - m->pass_discard = (!lookup_result.shared) && pool->pf.discard_passdown; + m->pass_discard = pool->pf.discard_passdown; + m->definitely_not_shared = !lookup_result.shared; m->virt_block = block; m->data_block = lookup_result.block; m->cell = cell; m->cell2 = cell2; - m->err = 0; m->bio = bio; if (!dm_deferred_set_add_work(pool->all_io_ds, &m->list)) { @@ -1327,9 +1332,9 @@ */ if (ensure_next_mapping(pool)) { spin_lock_irqsave(&pool->lock, flags); + bio_list_add(&pool->deferred_bios, bio); bio_list_merge(&pool->deferred_bios, &bios); spin_unlock_irqrestore(&pool->lock, flags); - break; } @@ -1349,7 +1354,8 @@ bio_list_init(&pool->deferred_flush_bios); spin_unlock_irqrestore(&pool->lock, flags); - if (bio_list_empty(&bios) && !need_commit_due_to_time(pool)) + if (bio_list_empty(&bios) && + !(dm_pool_changed_this_transaction(pool->pmd) && need_commit_due_to_time(pool))) return; if (commit(pool)) { @@ -1390,16 +1396,16 @@ return pool->pf.mode; } -static void set_pool_mode(struct pool *pool, enum pool_mode mode) +static void set_pool_mode(struct pool *pool, enum pool_mode new_mode) { int r; + enum pool_mode old_mode = pool->pf.mode; - pool->pf.mode = mode; - - switch (mode) { + switch (new_mode) { case PM_FAIL: - DMERR("%s: switching pool to failure mode", - dm_device_name(pool->pool_md)); + if (old_mode != new_mode) + DMERR("%s: switching pool to failure mode", + dm_device_name(pool->pool_md)); dm_pool_metadata_read_only(pool->pmd); pool->process_bio = process_bio_fail; pool->process_discard = process_bio_fail; @@ -1408,13 +1414,15 @@ break; case PM_READ_ONLY: - DMERR("%s: switching pool to read-only mode", - dm_device_name(pool->pool_md)); + if (old_mode != new_mode) + DMERR("%s: switching pool to read-only mode", + dm_device_name(pool->pool_md)); r = dm_pool_abort_metadata(pool->pmd); if (r) { DMERR("%s: aborting transaction failed", dm_device_name(pool->pool_md)); - set_pool_mode(pool, PM_FAIL); + new_mode = PM_FAIL; + set_pool_mode(pool, new_mode); } else { dm_pool_metadata_read_only(pool->pmd); pool->process_bio = process_bio_read_only; @@ -1425,6 +1433,9 @@ break; case PM_WRITE: + if (old_mode != new_mode) + DMINFO("%s: switching pool to write mode", + dm_device_name(pool->pool_md)); dm_pool_metadata_read_write(pool->pmd); pool->process_bio = process_bio; pool->process_discard = process_discard; @@ -1432,6 +1443,8 @@ pool->process_prepared_discard = process_prepared_discard; break; } + + pool->pf.mode = new_mode; } /*----------------------------------------------------------------*/ @@ -1491,6 +1504,14 @@ return DM_MAPIO_SUBMITTED; } + /* + * We must hold the virtual cell before doing the lookup, otherwise + * there's a race with discard. + */ + build_virtual_key(tc->td, block, &key); + if (dm_bio_detain(tc->pool->prison, &key, bio, &cell1, &cell_result)) + return DM_MAPIO_SUBMITTED; + r = dm_thin_find_block(td, block, 0, &result); /* @@ -1514,13 +1535,10 @@ * shared flag will be set in their case. */ thin_defer_bio(tc, bio); + cell_defer_no_holder_no_free(tc, &cell1); return DM_MAPIO_SUBMITTED; } - build_virtual_key(tc->td, block, &key); - if (dm_bio_detain(tc->pool->prison, &key, bio, &cell1, &cell_result)) - return DM_MAPIO_SUBMITTED; - build_data_key(tc->td, result.block, &key); if (dm_bio_detain(tc->pool->prison, &key, bio, &cell2, &cell_result)) { cell_defer_no_holder_no_free(tc, &cell1); @@ -1541,6 +1559,7 @@ * of doing so. Just error it. */ bio_io_error(bio); + cell_defer_no_holder_no_free(tc, &cell1); return DM_MAPIO_SUBMITTED; } /* fall through */ @@ -1551,6 +1570,7 @@ * provide the hint to load the metadata into cache. */ thin_defer_bio(tc, bio); + cell_defer_no_holder_no_free(tc, &cell1); return DM_MAPIO_SUBMITTED; default: @@ -1560,6 +1580,7 @@ * pool is switched to fail-io mode. */ bio_io_error(bio); + cell_defer_no_holder_no_free(tc, &cell1); return DM_MAPIO_SUBMITTED; } } @@ -1648,6 +1669,17 @@ enum pool_mode new_mode = pt->adjusted_pf.mode; /* + * Don't change the pool's mode until set_pool_mode() below. + * Otherwise the pool's process_* function pointers may + * not match the desired pool mode. + */ + pt->adjusted_pf.mode = old_mode; + + pool->ti = ti; + pool->pf = pt->adjusted_pf; + pool->low_water_blocks = pt->low_water_blocks; + + /* * If we were in PM_FAIL mode, rollback of metadata failed. We're * not going to recover without a thin_repair. So we never let the * pool move out of the old mode. On the other hand a PM_READ_ONLY @@ -1657,10 +1689,6 @@ if (old_mode == PM_FAIL) new_mode = old_mode; - pool->ti = ti; - pool->low_water_blocks = pt->low_water_blocks; - pool->pf = pt->adjusted_pf; - set_pool_mode(pool, new_mode); return 0; @@ -2675,7 +2703,8 @@ */ if (pt->adjusted_pf.discard_passdown) { data_limits = &bdev_get_queue(pt->data_dev->bdev)->limits; - limits->discard_granularity = data_limits->discard_granularity; + limits->discard_granularity = max(data_limits->discard_granularity, + pool->sectors_per_block << SECTOR_SHIFT); } else limits->discard_granularity = pool->sectors_per_block << SECTOR_SHIFT; } @@ -2828,6 +2857,7 @@ if (get_pool_mode(tc->pool) == PM_FAIL) { ti->error = "Couldn't open thin device, Pool is in fail mode"; + r = -EINVAL; goto bad_thin_open; } @@ -2839,7 +2869,7 @@ r = dm_set_target_max_io_len(ti, tc->pool->sectors_per_block); if (r) - goto bad_thin_open; + goto bad_target_max_io_len; ti->num_flush_bios = 1; ti->flush_supported = true; @@ -2860,6 +2890,8 @@ return 0; +bad_target_max_io_len: + dm_pool_close_thin_device(tc->td); bad_thin_open: __pool_dec(tc->pool); bad_pool_lookup: --- linux-3.13.0.orig/drivers/md/dm.c +++ linux-3.13.0/drivers/md/dm.c @@ -54,6 +54,8 @@ static DECLARE_WORK(deferred_remove_work, do_deferred_remove); +static struct workqueue_struct *deferred_remove_workqueue; + /* * For bio-based dm. * One of these is allocated per bio. @@ -200,8 +202,8 @@ /* forced geometry settings */ struct hd_geometry geometry; - /* sysfs handle */ - struct kobject kobj; + /* kobject and completion */ + struct dm_kobject_holder kobj_holder; /* zero-length flush that will be cloned and submitted to targets */ struct bio flush_bio; @@ -283,16 +285,24 @@ if (r) goto out_free_rq_tio_cache; + deferred_remove_workqueue = alloc_workqueue("kdmremove", WQ_UNBOUND, 1); + if (!deferred_remove_workqueue) { + r = -ENOMEM; + goto out_uevent_exit; + } + _major = major; r = register_blkdev(_major, _name); if (r < 0) - goto out_uevent_exit; + goto out_free_workqueue; if (!_major) _major = r; return 0; +out_free_workqueue: + destroy_workqueue(deferred_remove_workqueue); out_uevent_exit: dm_uevent_exit(); out_free_rq_tio_cache: @@ -306,6 +316,7 @@ static void local_exit(void) { flush_scheduled_work(); + destroy_workqueue(deferred_remove_workqueue); kmem_cache_destroy(_rq_tio_cache); kmem_cache_destroy(_io_cache); @@ -414,7 +425,7 @@ if (atomic_dec_and_test(&md->open_count) && (test_bit(DMF_DEFERRED_REMOVE, &md->flags))) - schedule_work(&deferred_remove_work); + queue_work(deferred_remove_workqueue, &deferred_remove_work); dm_put(md); @@ -2041,6 +2052,7 @@ init_waitqueue_head(&md->wait); INIT_WORK(&md->work, dm_wq_work); init_waitqueue_head(&md->eventq); + init_completion(&md->kobj_holder.completion); md->disk->major = _major; md->disk->first_minor = minor; @@ -2899,23 +2911,18 @@ { return md->disk; } +EXPORT_SYMBOL_GPL(dm_disk); struct kobject *dm_kobject(struct mapped_device *md) { - return &md->kobj; + return &md->kobj_holder.kobj; } -/* - * struct mapped_device should not be exported outside of dm.c - * so use this check to verify that kobj is part of md structure - */ struct mapped_device *dm_get_from_kobject(struct kobject *kobj) { struct mapped_device *md; - md = container_of(kobj, struct mapped_device, kobj); - if (&md->kobj != kobj) - return NULL; + md = container_of(kobj, struct mapped_device, kobj_holder.kobj); if (test_bit(DMF_FREEING, &md->flags) || dm_deleting_md(md)) --- linux-3.13.0.orig/drivers/md/dm.h +++ linux-3.13.0/drivers/md/dm.h @@ -15,6 +15,8 @@ #include #include #include +#include +#include #include "dm-stats.h" @@ -148,12 +150,27 @@ /* * sysfs interface */ +struct dm_kobject_holder { + struct kobject kobj; + struct completion completion; +}; + +static inline struct completion *dm_get_completion_from_kobject(struct kobject *kobj) +{ + return &container_of(kobj, struct dm_kobject_holder, kobj)->completion; +} + int dm_sysfs_init(struct mapped_device *md); void dm_sysfs_exit(struct mapped_device *md); struct kobject *dm_kobject(struct mapped_device *md); struct mapped_device *dm_get_from_kobject(struct kobject *kobj); /* + * The kobject helper + */ +void dm_kobject_release(struct kobject *kobj); + +/* * Targets for linear and striped mappings */ int dm_linear_init(void); --- linux-3.13.0.orig/drivers/md/md.c +++ linux-3.13.0/drivers/md/md.c @@ -5321,6 +5321,7 @@ printk("md: %s still in use.\n",mdname(mddev)); if (did_freeze) { clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); + set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); md_wakeup_thread(mddev->thread); } err = -EBUSY; @@ -5335,6 +5336,8 @@ mddev->ro = 1; set_disk_ro(mddev->gendisk, 1); clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); + set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); + md_wakeup_thread(mddev->thread); sysfs_notify_dirent_safe(mddev->sysfs_state); err = 0; } @@ -5378,6 +5381,7 @@ mutex_unlock(&mddev->open_mutex); if (did_freeze) { clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); + set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); md_wakeup_thread(mddev->thread); } return -EBUSY; @@ -7358,8 +7362,10 @@ /* just incase thread restarts... */ if (test_bit(MD_RECOVERY_DONE, &mddev->recovery)) return; - if (mddev->ro) /* never try to sync a read-only array */ + if (mddev->ro) {/* never try to sync a read-only array */ + set_bit(MD_RECOVERY_INTR, &mddev->recovery); return; + } if (test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) { if (test_bit(MD_RECOVERY_CHECK, &mddev->recovery)) { @@ -7466,6 +7472,19 @@ rdev->recovery_offset < j) j = rdev->recovery_offset; rcu_read_unlock(); + + /* If there is a bitmap, we need to make sure all + * writes that started before we added a spare + * complete before we start doing a recovery. + * Otherwise the write might complete and (via + * bitmap_endwrite) set a bit in the bitmap after the + * recovery has checked that bit and skipped that + * region. + */ + if (mddev->bitmap) { + mddev->pers->quiesce(mddev, 1); + mddev->pers->quiesce(mddev, 0); + } } printk(KERN_INFO "md: %s of RAID array %s\n", desc, mdname(mddev)); @@ -7800,6 +7819,7 @@ /* There is no thread, but we need to call * ->spare_active and clear saved_raid_disk */ + set_bit(MD_RECOVERY_INTR, &mddev->recovery); md_reap_sync_thread(mddev); clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery); goto unlock; @@ -8496,7 +8516,8 @@ if (mddev_trylock(mddev)) { if (mddev->pers) __md_stop_writes(mddev); - mddev->safemode = 2; + if (mddev->persistent) + mddev->safemode = 2; mddev_unlock(mddev); } need_delay = 1; --- linux-3.13.0.orig/drivers/md/persistent-data/dm-block-manager.c +++ linux-3.13.0/drivers/md/persistent-data/dm-block-manager.c @@ -595,25 +595,14 @@ } EXPORT_SYMBOL_GPL(dm_bm_unlock); -int dm_bm_flush_and_unlock(struct dm_block_manager *bm, - struct dm_block *superblock) +int dm_bm_flush(struct dm_block_manager *bm) { - int r; - if (bm->read_only) return -EPERM; - r = dm_bufio_write_dirty_buffers(bm->bufio); - if (unlikely(r)) { - dm_bm_unlock(superblock); - return r; - } - - dm_bm_unlock(superblock); - return dm_bufio_write_dirty_buffers(bm->bufio); } -EXPORT_SYMBOL_GPL(dm_bm_flush_and_unlock); +EXPORT_SYMBOL_GPL(dm_bm_flush); void dm_bm_prefetch(struct dm_block_manager *bm, dm_block_t b) { --- linux-3.13.0.orig/drivers/md/persistent-data/dm-block-manager.h +++ linux-3.13.0/drivers/md/persistent-data/dm-block-manager.h @@ -105,8 +105,7 @@ * * This method always blocks. */ -int dm_bm_flush_and_unlock(struct dm_block_manager *bm, - struct dm_block *superblock); +int dm_bm_flush(struct dm_block_manager *bm); /* * Request data is prefetched into the cache. --- linux-3.13.0.orig/drivers/md/persistent-data/dm-btree-internal.h +++ linux-3.13.0/drivers/md/persistent-data/dm-btree-internal.h @@ -42,6 +42,12 @@ } __packed; +/* + * Locks a block using the btree node validator. + */ +int bn_read_lock(struct dm_btree_info *info, dm_block_t b, + struct dm_block **result); + void inc_children(struct dm_transaction_manager *tm, struct btree_node *n, struct dm_btree_value_type *vt); --- linux-3.13.0.orig/drivers/md/persistent-data/dm-btree-spine.c +++ linux-3.13.0/drivers/md/persistent-data/dm-btree-spine.c @@ -92,7 +92,7 @@ /*----------------------------------------------------------------*/ -static int bn_read_lock(struct dm_btree_info *info, dm_block_t b, +int bn_read_lock(struct dm_btree_info *info, dm_block_t b, struct dm_block **result) { return dm_tm_read_lock(info->tm, b, &btree_node_validator, result); --- linux-3.13.0.orig/drivers/md/persistent-data/dm-btree.c +++ linux-3.13.0/drivers/md/persistent-data/dm-btree.c @@ -828,22 +828,26 @@ * FIXME: We shouldn't use a recursive algorithm when we have limited stack * space. Also this only works for single level trees. */ -static int walk_node(struct ro_spine *s, dm_block_t block, +static int walk_node(struct dm_btree_info *info, dm_block_t block, int (*fn)(void *context, uint64_t *keys, void *leaf), void *context) { int r; unsigned i, nr; + struct dm_block *node; struct btree_node *n; uint64_t keys; - r = ro_step(s, block); - n = ro_node(s); + r = bn_read_lock(info, block, &node); + if (r) + return r; + + n = dm_block_data(node); nr = le32_to_cpu(n->header.nr_entries); for (i = 0; i < nr; i++) { if (le32_to_cpu(n->header.flags) & INTERNAL_NODE) { - r = walk_node(s, value64(n, i), fn, context); + r = walk_node(info, value64(n, i), fn, context); if (r) goto out; } else { @@ -855,7 +859,7 @@ } out: - ro_pop(s); + dm_tm_unlock(info->tm, node); return r; } @@ -863,15 +867,7 @@ int (*fn)(void *context, uint64_t *keys, void *leaf), void *context) { - int r; - struct ro_spine spine; - BUG_ON(info->levels > 1); - - init_ro_spine(&spine, info); - r = walk_node(&spine, root, fn, context); - exit_ro_spine(&spine); - - return r; + return walk_node(info, root, fn, context); } EXPORT_SYMBOL_GPL(dm_btree_walk); --- linux-3.13.0.orig/drivers/md/persistent-data/dm-space-map-common.c +++ linux-3.13.0/drivers/md/persistent-data/dm-space-map-common.c @@ -245,6 +245,10 @@ return -EINVAL; } + /* + * We need to set this before the dm_tm_new_block() call below. + */ + ll->nr_blocks = nr_blocks; for (i = old_blocks; i < blocks; i++) { struct dm_block *b; struct disk_index_entry idx; @@ -252,6 +256,7 @@ r = dm_tm_new_block(ll->tm, &dm_sm_bitmap_validator, &b); if (r < 0) return r; + idx.blocknr = cpu_to_le64(dm_block_location(b)); r = dm_tm_unlock(ll->tm, b); @@ -266,7 +271,6 @@ return r; } - ll->nr_blocks = nr_blocks; return 0; } --- linux-3.13.0.orig/drivers/md/persistent-data/dm-space-map-metadata.c +++ linux-3.13.0/drivers/md/persistent-data/dm-space-map-metadata.c @@ -91,6 +91,69 @@ dm_block_t block; }; +struct bop_ring_buffer { + unsigned begin; + unsigned end; + struct block_op bops[MAX_RECURSIVE_ALLOCATIONS + 1]; +}; + +static void brb_init(struct bop_ring_buffer *brb) +{ + brb->begin = 0; + brb->end = 0; +} + +static bool brb_empty(struct bop_ring_buffer *brb) +{ + return brb->begin == brb->end; +} + +static unsigned brb_next(struct bop_ring_buffer *brb, unsigned old) +{ + unsigned r = old + 1; + return (r >= (sizeof(brb->bops) / sizeof(*brb->bops))) ? 0 : r; +} + +static int brb_push(struct bop_ring_buffer *brb, + enum block_op_type type, dm_block_t b) +{ + struct block_op *bop; + unsigned next = brb_next(brb, brb->end); + + /* + * We don't allow the last bop to be filled, this way we can + * differentiate between full and empty. + */ + if (next == brb->begin) + return -ENOMEM; + + bop = brb->bops + brb->end; + bop->type = type; + bop->block = b; + + brb->end = next; + + return 0; +} + +static int brb_pop(struct bop_ring_buffer *brb, struct block_op *result) +{ + struct block_op *bop; + + if (brb_empty(brb)) + return -ENODATA; + + bop = brb->bops + brb->begin; + result->type = bop->type; + result->block = bop->block; + + brb->begin = brb_next(brb, brb->begin); + + return 0; +} + +/*----------------------------------------------------------------*/ + struct sm_metadata { struct dm_space_map sm; @@ -101,25 +164,20 @@ unsigned recursion_count; unsigned allocated_this_transaction; - unsigned nr_uncommitted; - struct block_op uncommitted[MAX_RECURSIVE_ALLOCATIONS]; + struct bop_ring_buffer uncommitted; struct threshold threshold; }; static int add_bop(struct sm_metadata *smm, enum block_op_type type, dm_block_t b) { - struct block_op *op; + int r = brb_push(&smm->uncommitted, type, b); - if (smm->nr_uncommitted == MAX_RECURSIVE_ALLOCATIONS) { + if (r) { DMERR("too many recursive allocations"); return -ENOMEM; } - op = smm->uncommitted + smm->nr_uncommitted++; - op->type = type; - op->block = b; - return 0; } @@ -158,11 +216,17 @@ return -ENOMEM; } - if (smm->recursion_count == 1 && smm->nr_uncommitted) { - while (smm->nr_uncommitted && !r) { - smm->nr_uncommitted--; - r = commit_bop(smm, smm->uncommitted + - smm->nr_uncommitted); + if (smm->recursion_count == 1) { + while (!brb_empty(&smm->uncommitted)) { + struct block_op bop; + + r = brb_pop(&smm->uncommitted, &bop); + if (r) { + DMERR("bug in bop ring buffer"); + break; + } + + r = commit_bop(smm, &bop); if (r) break; } @@ -217,7 +281,8 @@ static int sm_metadata_get_count(struct dm_space_map *sm, dm_block_t b, uint32_t *result) { - int r, i; + int r; + unsigned i; struct sm_metadata *smm = container_of(sm, struct sm_metadata, sm); unsigned adjustment = 0; @@ -225,8 +290,10 @@ * We may have some uncommitted adjustments to add. This list * should always be really short. */ - for (i = 0; i < smm->nr_uncommitted; i++) { - struct block_op *op = smm->uncommitted + i; + for (i = smm->uncommitted.begin; + i != smm->uncommitted.end; + i = brb_next(&smm->uncommitted, i)) { + struct block_op *op = smm->uncommitted.bops + i; if (op->block != b) continue; @@ -254,7 +321,8 @@ static int sm_metadata_count_is_more_than_one(struct dm_space_map *sm, dm_block_t b, int *result) { - int r, i, adjustment = 0; + int r, adjustment = 0; + unsigned i; struct sm_metadata *smm = container_of(sm, struct sm_metadata, sm); uint32_t rc; @@ -262,8 +330,11 @@ * We may have some uncommitted adjustments to add. This list * should always be really short. */ - for (i = 0; i < smm->nr_uncommitted; i++) { - struct block_op *op = smm->uncommitted + i; + for (i = smm->uncommitted.begin; + i != smm->uncommitted.end; + i = brb_next(&smm->uncommitted, i)) { + + struct block_op *op = smm->uncommitted.bops + i; if (op->block != b) continue; @@ -608,20 +679,38 @@ * Flick into a mode where all blocks get allocated in the new area. */ smm->begin = old_len; - memcpy(&smm->sm, &bootstrap_ops, sizeof(smm->sm)); + memcpy(sm, &bootstrap_ops, sizeof(*sm)); /* * Extend. */ r = sm_ll_extend(&smm->ll, extra_blocks); + if (r) + goto out; /* - * Switch back to normal behaviour. + * We repeatedly increment then commit until the commit doesn't + * allocate any new blocks. */ - memcpy(&smm->sm, &ops, sizeof(smm->sm)); - for (i = old_len; !r && i < smm->begin; i++) - r = sm_ll_inc(&smm->ll, i, &ev); + do { + for (i = old_len; !r && i < smm->begin; i++) { + r = sm_ll_inc(&smm->ll, i, &ev); + if (r) + goto out; + } + old_len = smm->begin; + + r = sm_ll_commit(&smm->ll); + if (r) + goto out; + + } while (old_len != smm->begin); +out: + /* + * Switch back to normal behaviour. + */ + memcpy(sm, &ops, sizeof(*sm)); return r; } @@ -653,7 +742,7 @@ smm->begin = superblock + 1; smm->recursion_count = 0; smm->allocated_this_transaction = 0; - smm->nr_uncommitted = 0; + brb_init(&smm->uncommitted); threshold_init(&smm->threshold); memcpy(&smm->sm, &bootstrap_ops, sizeof(smm->sm)); @@ -695,7 +784,7 @@ smm->begin = 0; smm->recursion_count = 0; smm->allocated_this_transaction = 0; - smm->nr_uncommitted = 0; + brb_init(&smm->uncommitted); threshold_init(&smm->threshold); memcpy(&smm->old_ll, &smm->ll, sizeof(smm->old_ll)); --- linux-3.13.0.orig/drivers/md/persistent-data/dm-transaction-manager.c +++ linux-3.13.0/drivers/md/persistent-data/dm-transaction-manager.c @@ -154,7 +154,7 @@ if (r < 0) return r; - return 0; + return dm_bm_flush(tm->bm); } EXPORT_SYMBOL_GPL(dm_tm_pre_commit); @@ -164,8 +164,9 @@ return -EWOULDBLOCK; wipe_shadow_table(tm); + dm_bm_unlock(root); - return dm_bm_flush_and_unlock(tm->bm, root); + return dm_bm_flush(tm->bm); } EXPORT_SYMBOL_GPL(dm_tm_commit); --- linux-3.13.0.orig/drivers/md/persistent-data/dm-transaction-manager.h +++ linux-3.13.0/drivers/md/persistent-data/dm-transaction-manager.h @@ -38,18 +38,17 @@ /* * We use a 2-phase commit here. * - * i) In the first phase the block manager is told to start flushing, and - * the changes to the space map are written to disk. You should interrogate - * your particular space map to get detail of its root node etc. to be - * included in your superblock. + * i) Make all changes for the transaction *except* for the superblock. + * Then call dm_tm_pre_commit() to flush them to disk. * - * ii) @root will be committed last. You shouldn't use more than the - * first 512 bytes of @root if you wish the transaction to survive a power - * failure. You *must* have a write lock held on @root for both stage (i) - * and (ii). The commit will drop the write lock. + * ii) Lock your superblock. Update. Then call dm_tm_commit() which will + * unlock the superblock and flush it. No other blocks should be updated + * during this period. Care should be taken to never unlock a partially + * updated superblock; perform any operations that could fail *before* you + * take the superblock lock. */ int dm_tm_pre_commit(struct dm_transaction_manager *tm); -int dm_tm_commit(struct dm_transaction_manager *tm, struct dm_block *root); +int dm_tm_commit(struct dm_transaction_manager *tm, struct dm_block *superblock); /* * These methods are the only way to get hold of a writeable block. --- linux-3.13.0.orig/drivers/md/raid1.c +++ linux-3.13.0/drivers/md/raid1.c @@ -97,6 +97,7 @@ struct pool_info *pi = data; struct r1bio *r1_bio; struct bio *bio; + int need_pages; int i, j; r1_bio = r1bio_pool_alloc(gfp_flags, pi); @@ -119,15 +120,15 @@ * RESYNC_PAGES for each bio. */ if (test_bit(MD_RECOVERY_REQUESTED, &pi->mddev->recovery)) - j = pi->raid_disks; + need_pages = pi->raid_disks; else - j = 1; - while(j--) { + need_pages = 1; + for (j = 0; j < need_pages; j++) { bio = r1_bio->bios[j]; bio->bi_vcnt = RESYNC_PAGES; if (bio_alloc_pages(bio, gfp_flags)) - goto out_free_bio; + goto out_free_pages; } /* If not user-requests, copy the page pointers to all bios */ if (!test_bit(MD_RECOVERY_REQUESTED, &pi->mddev->recovery)) { @@ -141,6 +142,14 @@ return r1_bio; +out_free_pages: + while (--j >= 0) { + struct bio_vec *bv; + + bio_for_each_segment_all(bv, r1_bio->bios[j], i) + __free_page(bv->bv_page); + } + out_free_bio: while (++j < pi->raid_disks) bio_put(r1_bio->bios[j]); @@ -533,11 +542,7 @@ has_nonrot_disk = 0; choose_next_idle = 0; - if (conf->mddev->recovery_cp < MaxSector && - (this_sector + sectors >= conf->next_resync)) - choose_first = 1; - else - choose_first = 0; + choose_first = (conf->mddev->recovery_cp < this_sector + sectors); for (disk = 0 ; disk < conf->raid_disks * 2 ; disk++) { sector_t dist; @@ -824,7 +829,7 @@ * there is no normal IO happeing. It must arrange to call * lower_barrier when the particular background IO completes. */ -static void raise_barrier(struct r1conf *conf) +static void raise_barrier(struct r1conf *conf, sector_t sector_nr) { spin_lock_irq(&conf->resync_lock); @@ -834,6 +839,7 @@ /* block any new IO from starting */ conf->barrier++; + conf->next_resync = sector_nr; /* For these conditions we must wait: * A: while the array is in frozen state @@ -842,14 +848,17 @@ * C: next_resync + RESYNC_SECTORS > start_next_window, meaning * next resync will reach to the window which normal bios are * handling. + * D: while there are any active requests in the current window. */ wait_event_lock_irq(conf->wait_barrier, !conf->array_frozen && conf->barrier < RESYNC_DEPTH && + conf->current_window_requests == 0 && (conf->start_next_window >= conf->next_resync + RESYNC_SECTORS), conf->resync_lock); + conf->nr_pending++; spin_unlock_irq(&conf->resync_lock); } @@ -859,6 +868,7 @@ BUG_ON(conf->barrier <= 0); spin_lock_irqsave(&conf->resync_lock, flags); conf->barrier--; + conf->nr_pending--; spin_unlock_irqrestore(&conf->resync_lock, flags); wake_up(&conf->wait_barrier); } @@ -870,12 +880,10 @@ if (conf->array_frozen || !bio) wait = true; else if (conf->barrier && bio_data_dir(bio) == WRITE) { - if (conf->next_resync < RESYNC_WINDOW_SECTORS) - wait = true; - else if ((conf->next_resync - RESYNC_WINDOW_SECTORS - >= bio_end_sector(bio)) || - (conf->next_resync + NEXT_NORMALIO_DISTANCE - <= bio->bi_sector)) + if ((conf->mddev->curr_resync_completed + >= bio_end_sector(bio)) || + (conf->next_resync + NEXT_NORMALIO_DISTANCE + <= bio->bi_sector)) wait = false; else wait = true; @@ -912,8 +920,8 @@ } if (bio && bio_data_dir(bio) == WRITE) { - if (conf->next_resync + NEXT_NORMALIO_DISTANCE - <= bio->bi_sector) { + if (bio->bi_sector >= + conf->mddev->curr_resync_completed) { if (conf->start_next_window == MaxSector) conf->start_next_window = conf->next_resync + @@ -1178,6 +1186,7 @@ atomic_read(&bitmap->behind_writes) == 0); } r1_bio->read_disk = rdisk; + r1_bio->start_next_window = 0; read_bio = bio_clone_mddev(bio, GFP_NOIO, mddev); bio_trim(read_bio, r1_bio->sector - bio->bi_sector, @@ -1491,12 +1500,12 @@ mddev->degraded++; set_bit(Faulty, &rdev->flags); spin_unlock_irqrestore(&conf->device_lock, flags); - /* - * if recovery is running, make sure it aborts. - */ - set_bit(MD_RECOVERY_INTR, &mddev->recovery); } else set_bit(Faulty, &rdev->flags); + /* + * if recovery is running, make sure it aborts. + */ + set_bit(MD_RECOVERY_INTR, &mddev->recovery); set_bit(MD_CHANGE_DEVS, &mddev->flags); printk(KERN_ALERT "md/raid1:%s: Disk failure on %s, disabling device.\n" @@ -1538,8 +1547,13 @@ mempool_destroy(conf->r1buf_pool); conf->r1buf_pool = NULL; + spin_lock_irq(&conf->resync_lock); conf->next_resync = 0; conf->start_next_window = MaxSector; + conf->current_window_requests += + conf->next_window_requests; + conf->next_window_requests = 0; + spin_unlock_irq(&conf->resync_lock); } static int raid1_spare_active(struct mddev *mddev) @@ -1952,11 +1966,15 @@ for (i = 0; i < conf->raid_disks * 2; i++) { int j; int size; + int uptodate; struct bio *b = r1_bio->bios[i]; if (b->bi_end_io != end_sync_read) continue; - /* fixup the bio for reuse */ + /* fixup the bio for reuse, but preserve BIO_UPTODATE */ + uptodate = test_bit(BIO_UPTODATE, &b->bi_flags); bio_reset(b); + if (!uptodate) + clear_bit(BIO_UPTODATE, &b->bi_flags); b->bi_vcnt = vcnt; b->bi_size = r1_bio->sectors << 9; b->bi_sector = r1_bio->sector + @@ -1989,11 +2007,14 @@ int j; struct bio *pbio = r1_bio->bios[primary]; struct bio *sbio = r1_bio->bios[i]; + int uptodate = test_bit(BIO_UPTODATE, &sbio->bi_flags); if (sbio->bi_end_io != end_sync_read) continue; + /* Now we can 'fixup' the BIO_UPTODATE flag */ + set_bit(BIO_UPTODATE, &sbio->bi_flags); - if (test_bit(BIO_UPTODATE, &sbio->bi_flags)) { + if (uptodate) { for (j = vcnt; j-- ; ) { struct page *p, *s; p = pbio->bi_io_vec[j].bv_page; @@ -2008,7 +2029,7 @@ if (j >= 0) atomic64_add(r1_bio->sectors, &mddev->resync_mismatches); if (j < 0 || (test_bit(MD_RECOVERY_CHECK, &mddev->recovery) - && test_bit(BIO_UPTODATE, &sbio->bi_flags))) { + && uptodate)) { /* No need to write to this device. */ sbio->bi_end_io = NULL; rdev_dec_pending(conf->mirrors[i].rdev, mddev); @@ -2133,7 +2154,7 @@ d--; rdev = conf->mirrors[d].rdev; if (rdev && - test_bit(In_sync, &rdev->flags)) + !test_bit(Faulty, &rdev->flags)) r1_sync_page_io(rdev, sect, s, conf->tmppage, WRITE); } @@ -2145,7 +2166,7 @@ d--; rdev = conf->mirrors[d].rdev; if (rdev && - test_bit(In_sync, &rdev->flags)) { + !test_bit(Faulty, &rdev->flags)) { if (r1_sync_page_io(rdev, sect, s, conf->tmppage, READ)) { atomic_add(s, &rdev->corrected_errors); @@ -2522,9 +2543,8 @@ bitmap_cond_end_sync(mddev->bitmap, sector_nr); r1_bio = mempool_alloc(conf->r1buf_pool, GFP_NOIO); - raise_barrier(conf); - conf->next_resync = sector_nr; + raise_barrier(conf, sector_nr); rcu_read_lock(); /* --- linux-3.13.0.orig/drivers/md/raid10.c +++ linux-3.13.0/drivers/md/raid10.c @@ -1698,13 +1698,12 @@ spin_unlock_irqrestore(&conf->device_lock, flags); return; } - if (test_and_clear_bit(In_sync, &rdev->flags)) { + if (test_and_clear_bit(In_sync, &rdev->flags)) mddev->degraded++; - /* - * if recovery is running, make sure it aborts. - */ - set_bit(MD_RECOVERY_INTR, &mddev->recovery); - } + /* + * If recovery is running, make sure it aborts. + */ + set_bit(MD_RECOVERY_INTR, &mddev->recovery); set_bit(Blocked, &rdev->flags); set_bit(Faulty, &rdev->flags); set_bit(MD_CHANGE_DEVS, &mddev->flags); @@ -2968,6 +2967,7 @@ */ if (test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery)) { end_reshape(conf); + close_sync(conf); return 0; } @@ -4422,7 +4422,7 @@ read_bio->bi_private = r10_bio; read_bio->bi_end_io = end_sync_read; read_bio->bi_rw = READ; - read_bio->bi_flags &= ~(BIO_POOL_MASK - 1); + read_bio->bi_flags &= (~0UL << BIO_RESET_BITS); read_bio->bi_flags |= 1 << BIO_UPTODATE; read_bio->bi_vcnt = 0; read_bio->bi_size = 0; --- linux-3.13.0.orig/drivers/md/raid5.c +++ linux-3.13.0/drivers/md/raid5.c @@ -64,6 +64,10 @@ #define cpu_to_group(cpu) cpu_to_node(cpu) #define ANY_GROUP NUMA_NO_NODE +static bool devices_handle_discard_safely = false; +module_param(devices_handle_discard_safely, bool, 0644); +MODULE_PARM_DESC(devices_handle_discard_safely, + "Set to Y if all devices in each array reliably return zeroes on reads from discarded regions"); static struct workqueue_struct *raid5_wq; /* * Stripe cache @@ -292,9 +296,12 @@ BUG_ON(atomic_read(&conf->active_stripes)==0); if (test_bit(STRIPE_HANDLE, &sh->state)) { if (test_bit(STRIPE_DELAYED, &sh->state) && - !test_bit(STRIPE_PREREAD_ACTIVE, &sh->state)) + !test_bit(STRIPE_PREREAD_ACTIVE, &sh->state)) { list_add_tail(&sh->lru, &conf->delayed_list); - else if (test_bit(STRIPE_BIT_DELAY, &sh->state) && + if (atomic_read(&conf->preread_active_stripes) + < IO_THRESHOLD) + md_wakeup_thread(conf->mddev->thread); + } else if (test_bit(STRIPE_BIT_DELAY, &sh->state) && sh->bm_seq - conf->seq_write > 0) list_add_tail(&sh->lru, &conf->bitmap_list); else { @@ -675,8 +682,10 @@ || !conf->inactive_blocked), *(conf->hash_locks + hash)); conf->inactive_blocked = 0; - } else + } else { init_stripe(sh, sector, previous); + atomic_inc(&sh->count); + } } else { spin_lock(&conf->device_lock); if (atomic_read(&sh->count)) { @@ -695,13 +704,11 @@ sh->group = NULL; } } + atomic_inc(&sh->count); spin_unlock(&conf->device_lock); } } while (sh == NULL); - if (sh) - atomic_inc(&sh->count); - spin_unlock_irq(conf->hash_locks + hash); return sh; } @@ -2111,6 +2118,7 @@ set_bit(R5_MadeGoodRepl, &sh->dev[i].flags); } else { if (!uptodate) { + set_bit(STRIPE_DEGRADED, &sh->state); set_bit(WriteErrorSeen, &rdev->flags); set_bit(R5_WriteError, &sh->dev[i].flags); if (!test_and_set_bit(WantReplacement, &rdev->flags)) @@ -2890,8 +2898,14 @@ (s->failed >= 1 && fdev[0]->toread) || (s->failed >= 2 && fdev[1]->toread) || (sh->raid_conf->level <= 5 && s->failed && fdev[0]->towrite && + (!test_bit(R5_Insync, &dev->flags) || test_bit(STRIPE_PREREAD_ACTIVE, &sh->state)) && !test_bit(R5_OVERWRITE, &fdev[0]->flags)) || - (sh->raid_conf->level == 6 && s->failed && s->to_write))) { + ((sh->raid_conf->level == 6 || + sh->sector >= sh->raid_conf->mddev->recovery_cp) + && s->failed && s->to_write && + (s->to_write - s->non_overwrite < + sh->raid_conf->raid_disks - sh->raid_conf->max_degraded) && + (!test_bit(R5_Insync, &dev->flags) || test_bit(STRIPE_PREREAD_ACTIVE, &sh->state))))) { /* we would like to get this block, possibly by computing it, * otherwise read it if the backing disk is insync */ @@ -3090,7 +3104,8 @@ !test_bit(R5_LOCKED, &dev->flags) && !(test_bit(R5_UPTODATE, &dev->flags) || test_bit(R5_Wantcompute, &dev->flags))) { - if (test_bit(R5_Insync, &dev->flags)) rcw++; + if (test_bit(R5_Insync, &dev->flags)) + rcw++; else rcw += 2*disks; } @@ -3111,10 +3126,10 @@ !(test_bit(R5_UPTODATE, &dev->flags) || test_bit(R5_Wantcompute, &dev->flags)) && test_bit(R5_Insync, &dev->flags)) { - if ( - test_bit(STRIPE_PREREAD_ACTIVE, &sh->state)) { - pr_debug("Read_old block " - "%d for r-m-w\n", i); + if (test_bit(STRIPE_PREREAD_ACTIVE, + &sh->state)) { + pr_debug("Read_old block %d for r-m-w\n", + i); set_bit(R5_LOCKED, &dev->flags); set_bit(R5_Wantread, &dev->flags); s->locked++; @@ -3137,10 +3152,9 @@ !(test_bit(R5_UPTODATE, &dev->flags) || test_bit(R5_Wantcompute, &dev->flags))) { rcw++; - if (!test_bit(R5_Insync, &dev->flags)) - continue; /* it's a failed drive */ - if ( - test_bit(STRIPE_PREREAD_ACTIVE, &sh->state)) { + if (test_bit(R5_Insync, &dev->flags) && + test_bit(STRIPE_PREREAD_ACTIVE, + &sh->state)) { pr_debug("Read_old block " "%d for Reconstruct\n", i); set_bit(R5_LOCKED, &dev->flags); @@ -3778,6 +3792,8 @@ set_bit(R5_Wantwrite, &dev->flags); if (prexor) continue; + if (s.failed > 1) + continue; if (!test_bit(R5_Insync, &dev->flags) || ((i == sh->pd_idx || i == sh->qd_idx) && s.failed == 0)) @@ -5511,23 +5527,43 @@ return sectors * (raid_disks - conf->max_degraded); } +static void free_scratch_buffer(struct r5conf *conf, struct raid5_percpu *percpu) +{ + safe_put_page(percpu->spare_page); + kfree(percpu->scribble); + percpu->spare_page = NULL; + percpu->scribble = NULL; +} + +static int alloc_scratch_buffer(struct r5conf *conf, struct raid5_percpu *percpu) +{ + if (conf->level == 6 && !percpu->spare_page) + percpu->spare_page = alloc_page(GFP_KERNEL); + if (!percpu->scribble) + percpu->scribble = kmalloc(conf->scribble_len, GFP_KERNEL); + + if (!percpu->scribble || (conf->level == 6 && !percpu->spare_page)) { + free_scratch_buffer(conf, percpu); + return -ENOMEM; + } + + return 0; +} + static void raid5_free_percpu(struct r5conf *conf) { - struct raid5_percpu *percpu; unsigned long cpu; if (!conf->percpu) return; - get_online_cpus(); - for_each_possible_cpu(cpu) { - percpu = per_cpu_ptr(conf->percpu, cpu); - safe_put_page(percpu->spare_page); - kfree(percpu->scribble); - } #ifdef CONFIG_HOTPLUG_CPU unregister_cpu_notifier(&conf->cpu_notify); #endif + + get_online_cpus(); + for_each_possible_cpu(cpu) + free_scratch_buffer(conf, per_cpu_ptr(conf->percpu, cpu)); put_online_cpus(); free_percpu(conf->percpu); @@ -5554,15 +5590,7 @@ switch (action) { case CPU_UP_PREPARE: case CPU_UP_PREPARE_FROZEN: - if (conf->level == 6 && !percpu->spare_page) - percpu->spare_page = alloc_page(GFP_KERNEL); - if (!percpu->scribble) - percpu->scribble = kmalloc(conf->scribble_len, GFP_KERNEL); - - if (!percpu->scribble || - (conf->level == 6 && !percpu->spare_page)) { - safe_put_page(percpu->spare_page); - kfree(percpu->scribble); + if (alloc_scratch_buffer(conf, percpu)) { pr_err("%s: failed memory allocation for cpu%ld\n", __func__, cpu); return notifier_from_errno(-ENOMEM); @@ -5570,10 +5598,7 @@ break; case CPU_DEAD: case CPU_DEAD_FROZEN: - safe_put_page(percpu->spare_page); - kfree(percpu->scribble); - percpu->spare_page = NULL; - percpu->scribble = NULL; + free_scratch_buffer(conf, per_cpu_ptr(conf->percpu, cpu)); break; default: break; @@ -5585,40 +5610,29 @@ static int raid5_alloc_percpu(struct r5conf *conf) { unsigned long cpu; - struct page *spare_page; - struct raid5_percpu __percpu *allcpus; - void *scribble; - int err; + int err = 0; - allcpus = alloc_percpu(struct raid5_percpu); - if (!allcpus) + conf->percpu = alloc_percpu(struct raid5_percpu); + if (!conf->percpu) return -ENOMEM; - conf->percpu = allcpus; + +#ifdef CONFIG_HOTPLUG_CPU + conf->cpu_notify.notifier_call = raid456_cpu_notify; + conf->cpu_notify.priority = 0; + err = register_cpu_notifier(&conf->cpu_notify); + if (err) + return err; +#endif get_online_cpus(); - err = 0; for_each_present_cpu(cpu) { - if (conf->level == 6) { - spare_page = alloc_page(GFP_KERNEL); - if (!spare_page) { - err = -ENOMEM; - break; - } - per_cpu_ptr(conf->percpu, cpu)->spare_page = spare_page; - } - scribble = kmalloc(conf->scribble_len, GFP_KERNEL); - if (!scribble) { - err = -ENOMEM; + err = alloc_scratch_buffer(conf, per_cpu_ptr(conf->percpu, cpu)); + if (err) { + pr_err("%s: failed memory allocation for cpu%ld\n", + __func__, cpu); break; } - per_cpu_ptr(conf->percpu, cpu)->scribble = scribble; } -#ifdef CONFIG_HOTPLUG_CPU - conf->cpu_notify.notifier_call = raid456_cpu_notify; - conf->cpu_notify.priority = 0; - if (err == 0) - err = register_cpu_notifier(&conf->cpu_notify); -#endif put_online_cpus(); return err; @@ -6113,7 +6127,7 @@ mddev->queue->limits.discard_granularity = stripe; /* * unaligned part of discard request will be ignored, so can't - * guarantee discard_zerors_data + * guarantee discard_zeroes_data */ mddev->queue->limits.discard_zeroes_data = 0; @@ -6138,6 +6152,18 @@ !bdev_get_queue(rdev->bdev)-> limits.discard_zeroes_data) discard_supported = false; + /* Unfortunately, discard_zeroes_data is not currently + * a guarantee - just a hint. So we only allow DISCARD + * if the sysadmin has confirmed that only safe devices + * are in use by setting a module parameter. + */ + if (!devices_handle_discard_safely) { + if (discard_supported) { + pr_info("md/raid456: discard support disabled due to uncertainty.\n"); + pr_info("Set raid456.devices_handle_discard_safely=Y to override.\n"); + } + discard_supported = false; + } } if (discard_supported && --- linux-3.13.0.orig/drivers/media/common/siano/sms-cards.c +++ linux-3.13.0/drivers/media/common/siano/sms-cards.c @@ -157,6 +157,12 @@ .type = SMS_DENVER_2160, .default_mode = DEVICE_MODE_DAB_TDMB, }, + [SMS1XXX_BOARD_PCTV_77E] = { + .name = "Hauppauge microStick 77e", + .type = SMS_NOVA_B0, + .fw[DEVICE_MODE_DVBT_BDA] = SMS_FW_DVB_NOVA_12MHZ_B0, + .default_mode = DEVICE_MODE_DVBT_BDA, + }, }; struct sms_board *sms_get_board(unsigned id) --- linux-3.13.0.orig/drivers/media/common/siano/sms-cards.h +++ linux-3.13.0/drivers/media/common/siano/sms-cards.h @@ -45,6 +45,7 @@ #define SMS1XXX_BOARD_SIANO_RIO 18 #define SMS1XXX_BOARD_SIANO_DENVER_1530 19 #define SMS1XXX_BOARD_SIANO_DENVER_2160 20 +#define SMS1XXX_BOARD_PCTV_77E 21 struct sms_board_gpio_cfg { int lna_vhf_exist; --- linux-3.13.0.orig/drivers/media/dvb-core/dvb-usb-ids.h +++ linux-3.13.0/drivers/media/dvb-core/dvb-usb-ids.h @@ -239,6 +239,7 @@ #define USB_PID_AVERMEDIA_A835B_4835 0x4835 #define USB_PID_AVERMEDIA_1867 0x1867 #define USB_PID_AVERMEDIA_A867 0xa867 +#define USB_PID_AVERMEDIA_H335 0x0335 #define USB_PID_AVERMEDIA_TWINSTAR 0x0825 #define USB_PID_TECHNOTREND_CONNECT_S2400 0x3006 #define USB_PID_TECHNOTREND_CONNECT_S2400_8KEEPROM 0x3009 @@ -358,6 +359,7 @@ #define USB_PID_FRIIO_WHITE 0x0001 #define USB_PID_TVWAY_PLUS 0x0002 #define USB_PID_SVEON_STV20 0xe39d +#define USB_PID_SVEON_STV20_RTL2832U 0xd39d #define USB_PID_SVEON_STV22 0xe401 #define USB_PID_SVEON_STV22_IT9137 0xe411 #define USB_PID_AZUREWAVE_AZ6027 0x3275 @@ -371,4 +373,5 @@ #define USB_PID_CTVDIGDUAL_V2 0xe410 #define USB_PID_PCTV_2002E 0x025c #define USB_PID_PCTV_2002E_SE 0x025d +#define USB_PID_SVEON_STV27 0xd3af #endif --- linux-3.13.0.orig/drivers/media/dvb-frontends/cx24117.c +++ linux-3.13.0/drivers/media/dvb-frontends/cx24117.c @@ -1166,7 +1166,7 @@ switch (demod) { case 0: - dev_err(&state->priv->i2c->dev, + dev_err(&i2c->dev, "%s: Error attaching frontend %d\n", KBUILD_MODNAME, demod); goto error1; --- linux-3.13.0.orig/drivers/media/dvb-frontends/dib8000.c +++ linux-3.13.0/drivers/media/dvb-frontends/dib8000.c @@ -157,15 +157,10 @@ return ret; } -static u16 dib8000_read_word(struct dib8000_state *state, u16 reg) +static u16 __dib8000_read_word(struct dib8000_state *state, u16 reg) { u16 ret; - if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { - dprintk("could not acquire lock"); - return 0; - } - state->i2c_write_buffer[0] = reg >> 8; state->i2c_write_buffer[1] = reg & 0xff; @@ -183,6 +178,21 @@ dprintk("i2c read error on %d", reg); ret = (state->i2c_read_buffer[0] << 8) | state->i2c_read_buffer[1]; + + return ret; +} + +static u16 dib8000_read_word(struct dib8000_state *state, u16 reg) +{ + u16 ret; + + if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { + dprintk("could not acquire lock"); + return 0; + } + + ret = __dib8000_read_word(state, reg); + mutex_unlock(&state->i2c_buffer_lock); return ret; @@ -192,8 +202,15 @@ { u16 rw[2]; - rw[0] = dib8000_read_word(state, reg + 0); - rw[1] = dib8000_read_word(state, reg + 1); + if (mutex_lock_interruptible(&state->i2c_buffer_lock) < 0) { + dprintk("could not acquire lock"); + return 0; + } + + rw[0] = __dib8000_read_word(state, reg + 0); + rw[1] = __dib8000_read_word(state, reg + 1); + + mutex_unlock(&state->i2c_buffer_lock); return ((rw[0] << 16) | (rw[1])); } @@ -2445,7 +2462,8 @@ if (state->revision == 0x8090) internal = dib8000_read32(state, 23) / 1000; - if (state->autosearch_state == AS_SEARCHING_FFT) { + if ((state->revision >= 0x8002) && + (state->autosearch_state == AS_SEARCHING_FFT)) { dib8000_write_word(state, 37, 0x0065); /* P_ctrl_pha_off_max default values */ dib8000_write_word(state, 116, 0x0000); /* P_ana_gain to 0 */ @@ -2481,7 +2499,8 @@ dib8000_write_word(state, 770, (dib8000_read_word(state, 770) & 0xdfff) | (1 << 13)); /* P_restart_ccg = 1 */ dib8000_write_word(state, 770, (dib8000_read_word(state, 770) & 0xdfff) | (0 << 13)); /* P_restart_ccg = 0 */ dib8000_write_word(state, 0, (dib8000_read_word(state, 0) & 0x7ff) | (0 << 15) | (1 << 13)); /* P_restart_search = 0; */ - } else if (state->autosearch_state == AS_SEARCHING_GUARD) { + } else if ((state->revision >= 0x8002) && + (state->autosearch_state == AS_SEARCHING_GUARD)) { c->transmission_mode = TRANSMISSION_MODE_8K; c->guard_interval = GUARD_INTERVAL_1_8; c->inversion = 0; @@ -2583,7 +2602,8 @@ struct dib8000_state *state = fe->demodulator_priv; u16 irq_pending = dib8000_read_word(state, 1284); - if (state->autosearch_state == AS_SEARCHING_FFT) { + if ((state->revision >= 0x8002) && + (state->autosearch_state == AS_SEARCHING_FFT)) { if (irq_pending & 0x1) { dprintk("dib8000_autosearch_irq: max correlation result available"); return 3; --- linux-3.13.0.orig/drivers/media/dvb-frontends/ds3000.c +++ linux-3.13.0/drivers/media/dvb-frontends/ds3000.c @@ -864,6 +864,13 @@ memcpy(&state->frontend.ops, &ds3000_ops, sizeof(struct dvb_frontend_ops)); state->frontend.demodulator_priv = state; + + /* + * Some devices like T480 starts with voltage on. Be sure + * to turn voltage off during init, as this can otherwise + * interfere with Unicable SCR systems. + */ + ds3000_set_voltage(&state->frontend, SEC_VOLTAGE_OFF); return &state->frontend; error3: --- linux-3.13.0.orig/drivers/media/dvb-frontends/m88rs2000.c +++ linux-3.13.0/drivers/media/dvb-frontends/m88rs2000.c @@ -110,28 +110,94 @@ return b1[0]; } +static u32 m88rs2000_get_mclk(struct dvb_frontend *fe) +{ + struct m88rs2000_state *state = fe->demodulator_priv; + u32 mclk; + u8 reg; + /* Must not be 0x00 or 0xff */ + reg = m88rs2000_readreg(state, 0x86); + if (!reg || reg == 0xff) + return 0; + + reg /= 2; + reg += 1; + + mclk = (u32)(reg * RS2000_FE_CRYSTAL_KHZ + 28 / 2) / 28; + + return mclk; +} + +static int m88rs2000_set_carrieroffset(struct dvb_frontend *fe, s16 offset) +{ + struct m88rs2000_state *state = fe->demodulator_priv; + u32 mclk; + s32 tmp; + u8 reg; + int ret; + + mclk = m88rs2000_get_mclk(fe); + if (!mclk) + return -EINVAL; + + tmp = (offset * 4096 + (s32)mclk / 2) / (s32)mclk; + if (tmp < 0) + tmp += 4096; + + /* Carrier Offset */ + ret = m88rs2000_writereg(state, 0x9c, (u8)(tmp >> 4)); + + reg = m88rs2000_readreg(state, 0x9d); + reg &= 0xf; + reg |= (u8)(tmp & 0xf) << 4; + + ret |= m88rs2000_writereg(state, 0x9d, reg); + + return ret; +} + static int m88rs2000_set_symbolrate(struct dvb_frontend *fe, u32 srate) { struct m88rs2000_state *state = fe->demodulator_priv; int ret; - u32 temp; + u64 temp; + u32 mclk; u8 b[3]; if ((srate < 1000000) || (srate > 45000000)) return -EINVAL; + mclk = m88rs2000_get_mclk(fe); + if (!mclk) + return -EINVAL; + temp = srate / 1000; - temp *= 11831; - temp /= 68; - temp -= 3; + temp *= 1 << 24; + + do_div(temp, mclk); b[0] = (u8) (temp >> 16) & 0xff; b[1] = (u8) (temp >> 8) & 0xff; b[2] = (u8) temp & 0xff; + ret = m88rs2000_writereg(state, 0x93, b[2]); ret |= m88rs2000_writereg(state, 0x94, b[1]); ret |= m88rs2000_writereg(state, 0x95, b[0]); + if (srate > 10000000) + ret |= m88rs2000_writereg(state, 0xa0, 0x20); + else + ret |= m88rs2000_writereg(state, 0xa0, 0x60); + + ret |= m88rs2000_writereg(state, 0xa1, 0xe0); + + if (srate > 12000000) + ret |= m88rs2000_writereg(state, 0xa3, 0x20); + else if (srate > 2800000) + ret |= m88rs2000_writereg(state, 0xa3, 0x98); + else + ret |= m88rs2000_writereg(state, 0xa3, 0x90); + deb_info("m88rs2000: m88rs2000_set_symbolrate\n"); return ret; } @@ -261,8 +327,6 @@ struct inittab fe_reset[] = { {DEMOD_WRITE, 0x00, 0x01}, - {DEMOD_WRITE, 0xf1, 0xbf}, - {DEMOD_WRITE, 0x00, 0x01}, {DEMOD_WRITE, 0x20, 0x81}, {DEMOD_WRITE, 0x21, 0x80}, {DEMOD_WRITE, 0x10, 0x33}, @@ -305,9 +369,6 @@ {DEMOD_WRITE, 0x9b, 0x64}, {DEMOD_WRITE, 0x9e, 0x00}, {DEMOD_WRITE, 0x9f, 0xf8}, - {DEMOD_WRITE, 0xa0, 0x20}, - {DEMOD_WRITE, 0xa1, 0xe0}, - {DEMOD_WRITE, 0xa3, 0x38}, {DEMOD_WRITE, 0x98, 0xff}, {DEMOD_WRITE, 0xc0, 0x0f}, {DEMOD_WRITE, 0x89, 0x01}, @@ -540,9 +601,8 @@ struct dtv_frontend_properties *c = &fe->dtv_property_cache; fe_status_t status; int i, ret = 0; - s32 tmp; u32 tuner_freq; - u16 offset = 0; + s16 offset = 0; u8 reg; state->no_lock_count = 0; @@ -567,29 +627,26 @@ if (ret < 0) return -ENODEV; - offset = tuner_freq - c->frequency; - - /* calculate offset assuming 96000kHz*/ - tmp = offset; - tmp *= 65536; + offset = (s16)((s32)tuner_freq - c->frequency); - tmp = (2 * tmp + 96000) / (2 * 96000); - if (tmp < 0) - tmp += 65536; - - offset = tmp & 0xffff; + /* default mclk value 96.4285 * 2 * 1000 = 192857 */ + if (((c->frequency % 192857) >= (192857 - 3000)) || + (c->frequency % 192857) <= 3000) + ret = m88rs2000_writereg(state, 0x86, 0xc2); + else + ret = m88rs2000_writereg(state, 0x86, 0xc6); - ret = m88rs2000_writereg(state, 0x9a, 0x30); - /* Unknown usually 0xc6 sometimes 0xc1 */ - reg = m88rs2000_readreg(state, 0x86); - ret |= m88rs2000_writereg(state, 0x86, reg); - /* Offset lower nibble always 0 */ - ret |= m88rs2000_writereg(state, 0x9c, (offset >> 8)); - ret |= m88rs2000_writereg(state, 0x9d, offset & 0xf0); + ret |= m88rs2000_set_carrieroffset(fe, offset); + if (ret < 0) + return -ENODEV; + /* Reset demod by symbol rate */ + if (c->symbol_rate > 27500000) + ret = m88rs2000_writereg(state, 0xf1, 0xa4); + else + ret = m88rs2000_writereg(state, 0xf1, 0xbf); - /* Reset Demod */ - ret = m88rs2000_tab_set(state, fe_reset); + ret |= m88rs2000_tab_set(state, fe_reset); if (ret < 0) return -ENODEV; @@ -655,6 +712,22 @@ return 0; } +static int m88rs2000_get_tune_settings(struct dvb_frontend *fe, + struct dvb_frontend_tune_settings *tune) +{ + struct dtv_frontend_properties *c = &fe->dtv_property_cache; + + if (c->symbol_rate > 3000000) + tune->min_delay_ms = 2000; + else + tune->min_delay_ms = 3000; + + tune->step_size = c->symbol_rate / 16000; + tune->max_drift = c->symbol_rate / 2000; + + return 0; +} + static int m88rs2000_i2c_gate_ctrl(struct dvb_frontend *fe, int enable) { struct m88rs2000_state *state = fe->demodulator_priv; @@ -686,7 +759,7 @@ .symbol_rate_tolerance = 500, /* ppm */ .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | - FE_CAN_QPSK | + FE_CAN_QPSK | FE_CAN_INVERSION_AUTO | FE_CAN_FEC_AUTO }, @@ -706,6 +779,7 @@ .set_frontend = m88rs2000_set_frontend, .get_frontend = m88rs2000_get_frontend, + .get_tune_settings = m88rs2000_get_tune_settings, }; struct dvb_frontend *m88rs2000_attach(const struct m88rs2000_config *config, --- linux-3.13.0.orig/drivers/media/dvb-frontends/m88rs2000.h +++ linux-3.13.0/drivers/media/dvb-frontends/m88rs2000.h @@ -53,6 +53,8 @@ } #endif /* CONFIG_DVB_M88RS2000 */ +#define RS2000_FE_CRYSTAL_KHZ 27000 + enum { DEMOD_WRITE = 0x1, WRITE_DELAY = 0x10, --- linux-3.13.0.orig/drivers/media/dvb-frontends/nxt200x.c +++ linux-3.13.0/drivers/media/dvb-frontends/nxt200x.c @@ -40,7 +40,7 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt /* Max transfer size done by I2C transfer functions */ -#define MAX_XFER_SIZE 64 +#define MAX_XFER_SIZE 256 #define NXT2002_DEFAULT_FIRMWARE "dvb-fe-nxt2002.fw" #define NXT2004_DEFAULT_FIRMWARE "dvb-fe-nxt2004.fw" --- linux-3.13.0.orig/drivers/media/dvb-frontends/tda10071.c +++ linux-3.13.0/drivers/media/dvb-frontends/tda10071.c @@ -667,6 +667,7 @@ struct dtv_frontend_properties *c = &fe->dtv_property_cache; int ret, i; u8 mode, rolloff, pilot, inversion, div; + fe_modulation_t modulation; dev_dbg(&priv->i2c->dev, "%s: delivery_system=%d modulation=%d " \ "frequency=%d symbol_rate=%d inversion=%d pilot=%d " \ @@ -701,10 +702,13 @@ switch (c->delivery_system) { case SYS_DVBS: + modulation = QPSK; rolloff = 0; pilot = 2; break; case SYS_DVBS2: + modulation = c->modulation; + switch (c->rolloff) { case ROLLOFF_20: rolloff = 2; @@ -749,7 +753,7 @@ for (i = 0, mode = 0xff; i < ARRAY_SIZE(TDA10071_MODCOD); i++) { if (c->delivery_system == TDA10071_MODCOD[i].delivery_system && - c->modulation == TDA10071_MODCOD[i].modulation && + modulation == TDA10071_MODCOD[i].modulation && c->fec_inner == TDA10071_MODCOD[i].fec) { mode = TDA10071_MODCOD[i].val; dev_dbg(&priv->i2c->dev, "%s: mode found=%02x\n", --- linux-3.13.0.orig/drivers/media/i2c/adv7604.c +++ linux-3.13.0/drivers/media/i2c/adv7604.c @@ -1752,7 +1752,7 @@ v4l2_info(sd, "HDCP keys read: %s%s\n", (hdmi_read(sd, 0x04) & 0x20) ? "yes" : "no", (hdmi_read(sd, 0x04) & 0x10) ? "ERROR" : ""); - if (!is_hdmi(sd)) { + if (is_hdmi(sd)) { bool audio_pll_locked = hdmi_read(sd, 0x04) & 0x01; bool audio_sample_packet_detect = hdmi_read(sd, 0x18) & 0x01; bool audio_mute = io_read(sd, 0x65) & 0x40; --- linux-3.13.0.orig/drivers/media/i2c/ov7670.c +++ linux-3.13.0/drivers/media/i2c/ov7670.c @@ -1109,7 +1109,7 @@ * windows that fall outside that. */ for (i = 0; i < n_win_sizes; i++) { - struct ov7670_win_size *win = &info->devtype->win_sizes[index]; + struct ov7670_win_size *win = &info->devtype->win_sizes[i]; if (info->min_width && win->width < info->min_width) continue; if (info->min_height && win->height < info->min_height) --- linux-3.13.0.orig/drivers/media/i2c/smiapp-pll.c +++ linux-3.13.0/drivers/media/i2c/smiapp-pll.c @@ -67,7 +67,7 @@ { dev_dbg(dev, "pre_pll_clk_div\t%d\n", pll->pre_pll_clk_div); dev_dbg(dev, "pll_multiplier \t%d\n", pll->pll_multiplier); - if (pll->flags != SMIAPP_PLL_FLAG_NO_OP_CLOCKS) { + if (!(pll->flags & SMIAPP_PLL_FLAG_NO_OP_CLOCKS)) { dev_dbg(dev, "op_sys_clk_div \t%d\n", pll->op_sys_clk_div); dev_dbg(dev, "op_pix_clk_div \t%d\n", pll->op_pix_clk_div); } @@ -77,7 +77,7 @@ dev_dbg(dev, "ext_clk_freq_hz \t%d\n", pll->ext_clk_freq_hz); dev_dbg(dev, "pll_ip_clk_freq_hz \t%d\n", pll->pll_ip_clk_freq_hz); dev_dbg(dev, "pll_op_clk_freq_hz \t%d\n", pll->pll_op_clk_freq_hz); - if (pll->flags & SMIAPP_PLL_FLAG_NO_OP_CLOCKS) { + if (!(pll->flags & SMIAPP_PLL_FLAG_NO_OP_CLOCKS)) { dev_dbg(dev, "op_sys_clk_freq_hz \t%d\n", pll->op_sys_clk_freq_hz); dev_dbg(dev, "op_pix_clk_freq_hz \t%d\n", --- linux-3.13.0.orig/drivers/media/i2c/smiapp/smiapp-core.c +++ linux-3.13.0/drivers/media/i2c/smiapp/smiapp-core.c @@ -2139,7 +2139,7 @@ ret = smiapp_set_compose(subdev, fh, sel); break; default: - BUG(); + ret = -EINVAL; } mutex_unlock(&sensor->mutex); @@ -2625,7 +2625,9 @@ pll->flags |= SMIAPP_PLL_FLAG_OP_PIX_CLOCK_PER_LANE; pll->scale_n = sensor->limits[SMIAPP_LIMIT_SCALER_N_MIN]; + mutex_lock(&sensor->mutex); rval = smiapp_update_mode(sensor); + mutex_unlock(&sensor->mutex); if (rval) { dev_err(&client->dev, "update mode failed\n"); goto out_nvm_release; --- linux-3.13.0.orig/drivers/media/media-device.c +++ linux-3.13.0/drivers/media/media-device.c @@ -93,6 +93,7 @@ struct media_entity *ent; struct media_entity_desc u_ent; + memset(&u_ent, 0, sizeof(u_ent)); if (copy_from_user(&u_ent.id, &uent->id, sizeof(u_ent.id))) return -EFAULT; @@ -105,8 +106,6 @@ if (ent->name) { strncpy(u_ent.name, ent->name, sizeof(u_ent.name)); u_ent.name[sizeof(u_ent.name) - 1] = '\0'; - } else { - memset(u_ent.name, 0, sizeof(u_ent.name)); } u_ent.type = ent->type; u_ent.revision = ent->revision; --- linux-3.13.0.orig/drivers/media/pci/cx18/cx18-driver.c +++ linux-3.13.0/drivers/media/pci/cx18/cx18-driver.c @@ -327,13 +327,16 @@ struct i2c_client *c; u8 eedata[256]; + memset(tv, 0, sizeof(*tv)); + c = kzalloc(sizeof(*c), GFP_KERNEL); + if (!c) + return; strlcpy(c->name, "cx18 tveeprom tmp", sizeof(c->name)); c->adapter = &cx->i2c_adap[0]; c->addr = 0xa0 >> 1; - memset(tv, 0, sizeof(*tv)); if (tveeprom_read(c, eedata, sizeof(eedata))) goto ret; @@ -1088,6 +1091,7 @@ setup.addr = ADDR_UNSET; setup.type = cx->options.tuner; setup.mode_mask = T_ANALOG_TV; /* matches TV tuners */ + setup.config = NULL; if (cx->options.radio > 0) setup.mode_mask |= T_RADIO; setup.tuner_callback = (setup.type == TUNER_XC2028) ? --- linux-3.13.0.orig/drivers/media/pci/ivtv/ivtv-alsa-pcm.c +++ linux-3.13.0/drivers/media/pci/ivtv/ivtv-alsa-pcm.c @@ -159,6 +159,12 @@ /* Instruct the CX2341[56] to start sending packets */ snd_ivtv_lock(itvsc); + + if (ivtv_init_on_first_open(itv)) { + snd_ivtv_unlock(itvsc); + return -ENXIO; + } + s = &itv->streams[IVTV_ENC_STREAM_TYPE_PCM]; v4l2_fh_init(&item.fh, s->vdev); --- linux-3.13.0.orig/drivers/media/platform/omap3isp/isppreview.c +++ linux-3.13.0/drivers/media/platform/omap3isp/isppreview.c @@ -1079,6 +1079,7 @@ */ static void preview_config_input_size(struct isp_prev_device *prev, u32 active) { + const struct v4l2_mbus_framefmt *format = &prev->formats[PREV_PAD_SINK]; struct isp_device *isp = to_isp_device(prev); unsigned int sph = prev->crop.left; unsigned int eph = prev->crop.left + prev->crop.width - 1; @@ -1086,6 +1087,14 @@ unsigned int elv = prev->crop.top + prev->crop.height - 1; u32 features; + if (format->code != V4L2_MBUS_FMT_Y8_1X8 && + format->code != V4L2_MBUS_FMT_Y10_1X10) { + sph -= 2; + eph += 2; + slv -= 2; + elv += 2; + } + features = (prev->params.params[0].features & active) | (prev->params.params[1].features & ~active); --- linux-3.13.0.orig/drivers/media/platform/s5p-mfc/s5p_mfc.c +++ linux-3.13.0/drivers/media/platform/s5p-mfc/s5p_mfc.c @@ -177,21 +177,6 @@ mutex_unlock(&dev->mfc_mutex); } -static enum s5p_mfc_node_type s5p_mfc_get_node_type(struct file *file) -{ - struct video_device *vdev = video_devdata(file); - - if (!vdev) { - mfc_err("failed to get video_device"); - return MFCNODE_INVALID; - } - if (vdev->index == 0) - return MFCNODE_DECODER; - else if (vdev->index == 1) - return MFCNODE_ENCODER; - return MFCNODE_INVALID; -} - static void s5p_mfc_clear_int_flags(struct s5p_mfc_dev *dev) { mfc_write(dev, 0, S5P_FIMV_RISC_HOST_INT); @@ -705,6 +690,7 @@ /* Open an MFC node */ static int s5p_mfc_open(struct file *file) { + struct video_device *vdev = video_devdata(file); struct s5p_mfc_dev *dev = video_drvdata(file); struct s5p_mfc_ctx *ctx = NULL; struct vb2_queue *q; @@ -742,7 +728,7 @@ /* Mark context as idle */ clear_work_bit_irqsave(ctx); dev->ctx[ctx->num] = ctx; - if (s5p_mfc_get_node_type(file) == MFCNODE_DECODER) { + if (vdev == dev->vfd_dec) { ctx->type = MFCINST_DECODER; ctx->c_ops = get_dec_codec_ops(); s5p_mfc_dec_init(ctx); @@ -752,7 +738,7 @@ mfc_err("Failed to setup mfc controls\n"); goto err_ctrls_setup; } - } else if (s5p_mfc_get_node_type(file) == MFCNODE_ENCODER) { + } else if (vdev == dev->vfd_enc) { ctx->type = MFCINST_ENCODER; ctx->c_ops = get_enc_codec_ops(); /* only for encoder */ @@ -797,10 +783,10 @@ q = &ctx->vq_dst; q->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; q->drv_priv = &ctx->fh; - if (s5p_mfc_get_node_type(file) == MFCNODE_DECODER) { + if (vdev == dev->vfd_dec) { q->io_modes = VB2_MMAP; q->ops = get_dec_queue_ops(); - } else if (s5p_mfc_get_node_type(file) == MFCNODE_ENCODER) { + } else if (vdev == dev->vfd_enc) { q->io_modes = VB2_MMAP | VB2_USERPTR; q->ops = get_enc_queue_ops(); } else { @@ -819,10 +805,10 @@ q->type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE; q->io_modes = VB2_MMAP; q->drv_priv = &ctx->fh; - if (s5p_mfc_get_node_type(file) == MFCNODE_DECODER) { + if (vdev == dev->vfd_dec) { q->io_modes = VB2_MMAP; q->ops = get_dec_queue_ops(); - } else if (s5p_mfc_get_node_type(file) == MFCNODE_ENCODER) { + } else if (vdev == dev->vfd_enc) { q->io_modes = VB2_MMAP | VB2_USERPTR; q->ops = get_enc_queue_ops(); } else { --- linux-3.13.0.orig/drivers/media/platform/s5p-mfc/s5p_mfc_common.h +++ linux-3.13.0/drivers/media/platform/s5p-mfc/s5p_mfc_common.h @@ -115,15 +115,6 @@ }; /** - * enum s5p_mfc_node_type - The type of an MFC device node. - */ -enum s5p_mfc_node_type { - MFCNODE_INVALID = -1, - MFCNODE_DECODER = 0, - MFCNODE_ENCODER = 1, -}; - -/** * enum s5p_mfc_inst_type - The type of an MFC instance. */ enum s5p_mfc_inst_type { --- linux-3.13.0.orig/drivers/media/platform/vsp1/vsp1_video.c +++ linux-3.13.0/drivers/media/platform/vsp1/vsp1_video.c @@ -622,8 +622,6 @@ if (vb->num_planes < format->num_planes) return -EINVAL; - buf->video = video; - for (i = 0; i < vb->num_planes; ++i) { buf->addr[i] = vb2_dma_contig_plane_dma_addr(vb, i); buf->length[i] = vb2_plane_size(vb, i); --- linux-3.13.0.orig/drivers/media/platform/vsp1/vsp1_video.h +++ linux-3.13.0/drivers/media/platform/vsp1/vsp1_video.h @@ -89,7 +89,6 @@ } struct vsp1_video_buffer { - struct vsp1_video *video; struct vb2_buffer buf; struct list_head queue; --- linux-3.13.0.orig/drivers/media/tuners/fc2580.c +++ linux-3.13.0/drivers/media/tuners/fc2580.c @@ -195,7 +195,7 @@ f_ref = 2UL * priv->cfg->clock / r_val; n_val = div_u64_rem(f_vco, f_ref, &k_val); - k_val_reg = 1UL * k_val * (1 << 20) / f_ref; + k_val_reg = div_u64(1ULL * k_val * (1 << 20), f_ref); ret = fc2580_wr_reg(priv, 0x18, r18_val | ((k_val_reg >> 16) & 0xff)); if (ret < 0) @@ -348,8 +348,8 @@ if (ret < 0) goto err; - ret = fc2580_wr_reg(priv, 0x37, 1UL * priv->cfg->clock * \ - fc2580_if_filter_lut[i].mul / 1000000000); + ret = fc2580_wr_reg(priv, 0x37, div_u64(1ULL * priv->cfg->clock * + fc2580_if_filter_lut[i].mul, 1000000000)); if (ret < 0) goto err; --- linux-3.13.0.orig/drivers/media/tuners/fc2580_priv.h +++ linux-3.13.0/drivers/media/tuners/fc2580_priv.h @@ -22,6 +22,7 @@ #define FC2580_PRIV_H #include "fc2580.h" +#include struct fc2580_reg_val { u8 reg; --- linux-3.13.0.orig/drivers/media/tuners/xc4000.c +++ linux-3.13.0/drivers/media/tuners/xc4000.c @@ -93,7 +93,7 @@ struct firmware_description *firm; int firm_size; u32 if_khz; - u32 freq_hz; + u32 freq_hz, freq_offset; u32 bandwidth; u8 video_standard; u8 rf_mode; @@ -1157,14 +1157,14 @@ case SYS_ATSC: dprintk(1, "%s() VSB modulation\n", __func__); priv->rf_mode = XC_RF_MODE_AIR; - priv->freq_hz = c->frequency - 1750000; + priv->freq_offset = 1750000; priv->video_standard = XC4000_DTV6; type = DTV6; break; case SYS_DVBC_ANNEX_B: dprintk(1, "%s() QAM modulation\n", __func__); priv->rf_mode = XC_RF_MODE_CABLE; - priv->freq_hz = c->frequency - 1750000; + priv->freq_offset = 1750000; priv->video_standard = XC4000_DTV6; type = DTV6; break; @@ -1173,23 +1173,23 @@ dprintk(1, "%s() OFDM\n", __func__); if (bw == 0) { if (c->frequency < 400000000) { - priv->freq_hz = c->frequency - 2250000; + priv->freq_offset = 2250000; } else { - priv->freq_hz = c->frequency - 2750000; + priv->freq_offset = 2750000; } priv->video_standard = XC4000_DTV7_8; type = DTV78; } else if (bw <= 6000000) { priv->video_standard = XC4000_DTV6; - priv->freq_hz = c->frequency - 1750000; + priv->freq_offset = 1750000; type = DTV6; } else if (bw <= 7000000) { priv->video_standard = XC4000_DTV7; - priv->freq_hz = c->frequency - 2250000; + priv->freq_offset = 2250000; type = DTV7; } else { priv->video_standard = XC4000_DTV8; - priv->freq_hz = c->frequency - 2750000; + priv->freq_offset = 2750000; type = DTV8; } priv->rf_mode = XC_RF_MODE_AIR; @@ -1200,6 +1200,8 @@ goto fail; } + priv->freq_hz = c->frequency - priv->freq_offset; + dprintk(1, "%s() frequency=%d (compensated)\n", __func__, priv->freq_hz); @@ -1520,7 +1522,7 @@ { struct xc4000_priv *priv = fe->tuner_priv; - *freq = priv->freq_hz; + *freq = priv->freq_hz + priv->freq_offset; if (debug) { mutex_lock(&priv->lock); --- linux-3.13.0.orig/drivers/media/tuners/xc5000.c +++ linux-3.13.0/drivers/media/tuners/xc5000.c @@ -55,7 +55,7 @@ u32 if_khz; u16 xtal_khz; - u32 freq_hz; + u32 freq_hz, freq_offset; u32 bandwidth; u8 video_standard; u8 rf_mode; @@ -755,13 +755,13 @@ case SYS_ATSC: dprintk(1, "%s() VSB modulation\n", __func__); priv->rf_mode = XC_RF_MODE_AIR; - priv->freq_hz = freq - 1750000; + priv->freq_offset = 1750000; priv->video_standard = DTV6; break; case SYS_DVBC_ANNEX_B: dprintk(1, "%s() QAM modulation\n", __func__); priv->rf_mode = XC_RF_MODE_CABLE; - priv->freq_hz = freq - 1750000; + priv->freq_offset = 1750000; priv->video_standard = DTV6; break; case SYS_ISDBT: @@ -776,15 +776,15 @@ switch (bw) { case 6000000: priv->video_standard = DTV6; - priv->freq_hz = freq - 1750000; + priv->freq_offset = 1750000; break; case 7000000: priv->video_standard = DTV7; - priv->freq_hz = freq - 2250000; + priv->freq_offset = 2250000; break; case 8000000: priv->video_standard = DTV8; - priv->freq_hz = freq - 2750000; + priv->freq_offset = 2750000; break; default: printk(KERN_ERR "xc5000 bandwidth not set!\n"); @@ -798,15 +798,15 @@ priv->rf_mode = XC_RF_MODE_CABLE; if (bw <= 6000000) { priv->video_standard = DTV6; - priv->freq_hz = freq - 1750000; + priv->freq_offset = 1750000; b = 6; } else if (bw <= 7000000) { priv->video_standard = DTV7; - priv->freq_hz = freq - 2250000; + priv->freq_offset = 2250000; b = 7; } else { priv->video_standard = DTV7_8; - priv->freq_hz = freq - 2750000; + priv->freq_offset = 2750000; b = 8; } dprintk(1, "%s() Bandwidth %dMHz (%d)\n", __func__, @@ -817,6 +817,8 @@ return -EINVAL; } + priv->freq_hz = freq - priv->freq_offset; + dprintk(1, "%s() frequency=%d (compensated to %d)\n", __func__, freq, priv->freq_hz); @@ -1067,7 +1069,7 @@ { struct xc5000_priv *priv = fe->tuner_priv; dprintk(1, "%s()\n", __func__); - *freq = priv->freq_hz; + *freq = priv->freq_hz + priv->freq_offset; return 0; } --- linux-3.13.0.orig/drivers/media/usb/au0828/au0828-cards.c +++ linux-3.13.0/drivers/media/usb/au0828/au0828-cards.c @@ -36,6 +36,11 @@ au0828_clear(dev, REG_000, 0x10); } +/* + * WARNING: There's a quirks table at sound/usb/quirks-table.h + * that should also be updated every time a new device with V4L2 support + * is added here. + */ struct au0828_board au0828_boards[] = { [AU0828_BOARD_UNKNOWN] = { .name = "Unknown board", --- linux-3.13.0.orig/drivers/media/usb/au0828/au0828-video.c +++ linux-3.13.0/drivers/media/usb/au0828/au0828-video.c @@ -787,11 +787,27 @@ /* * Auvitek au0828 analog stream enable - * Please set interface0 to AS5 before enable the stream */ static int au0828_analog_stream_enable(struct au0828_dev *d) { + struct usb_interface *iface; + int ret; + dprintk(1, "au0828_analog_stream_enable called\n"); + + iface = usb_ifnum_to_if(d->usbdev, 0); + if (iface && iface->cur_altsetting->desc.bAlternateSetting != 5) { + dprintk(1, "Changing intf#0 to alt 5\n"); + /* set au0828 interface0 to AS5 here again */ + ret = usb_set_interface(d->usbdev, 0, 5); + if (ret < 0) { + printk(KERN_INFO "Au0828 can't set alt setting to 5!\n"); + return -EBUSY; + } + } + + /* FIXME: size should be calculated using d->width, d->height */ + au0828_writereg(d, AU0828_SENSORCTRL_VBI_103, 0x00); au0828_writereg(d, 0x106, 0x00); /* set x position */ @@ -1002,15 +1018,6 @@ return -ERESTARTSYS; } if (dev->users == 0) { - /* set au0828 interface0 to AS5 here again */ - ret = usb_set_interface(dev->usbdev, 0, 5); - if (ret < 0) { - mutex_unlock(&dev->lock); - printk(KERN_INFO "Au0828 can't set alternate to 5!\n"); - kfree(fh); - return -EBUSY; - } - au0828_analog_stream_enable(dev); au0828_analog_stream_reset(dev); @@ -1252,13 +1259,6 @@ } } - /* set au0828 interface0 to AS5 here again */ - ret = usb_set_interface(dev->usbdev, 0, 5); - if (ret < 0) { - printk(KERN_INFO "Au0828 can't set alt setting to 5!\n"); - return -EBUSY; - } - au0828_analog_stream_enable(dev); return 0; --- linux-3.13.0.orig/drivers/media/usb/dvb-usb-v2/af9035.c +++ linux-3.13.0/drivers/media/usb/dvb-usb-v2/af9035.c @@ -1539,6 +1539,8 @@ &af9035_props, "TerraTec Cinergy T Stick Dual RC (rev. 2)", NULL) }, { DVB_USB_DEVICE(USB_VID_LEADTEK, 0x6a05, &af9035_props, "Leadtek WinFast DTV Dongle Dual", NULL) }, + { DVB_USB_DEVICE(USB_VID_HAUPPAUGE, 0xf900, + &af9035_props, "Hauppauge WinTV-MiniStick 2", NULL) }, { } }; MODULE_DEVICE_TABLE(usb, af9035_id_table); --- linux-3.13.0.orig/drivers/media/usb/dvb-usb-v2/anysee.c +++ linux-3.13.0/drivers/media/usb/dvb-usb-v2/anysee.c @@ -442,6 +442,7 @@ * IOD[0] ZL10353 1=enabled * IOE[0] tuner 0=enabled * tuner is behind ZL10353 I2C-gate + * tuner is behind TDA10023 I2C-gate * * E7 TC VID=1c73 PID=861f HW=18 FW=0.7 AMTCI=0.5 "anysee-E7TC(LP)" * PCB: 508TC (rev0.6) @@ -956,7 +957,7 @@ if (fe && adap->fe[1]) { /* attach tuner for 2nd FE */ - fe = dvb_attach(dvb_pll_attach, adap->fe[0], + fe = dvb_attach(dvb_pll_attach, adap->fe[1], (0xc0 >> 1), &d->i2c_adap, DVB_PLL_SAMSUNG_DTOS403IH102A); } --- linux-3.13.0.orig/drivers/media/usb/dvb-usb-v2/it913x.c +++ linux-3.13.0/drivers/media/usb/dvb-usb-v2/it913x.c @@ -799,6 +799,9 @@ { DVB_USB_DEVICE(USB_VID_KWORLD_2, USB_PID_CTVDIGDUAL_V2, &it913x_properties, "Digital Dual TV Receiver CTVDIGDUAL_V2", RC_MAP_IT913X_V1) }, + { DVB_USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_H335, + &it913x_properties, "Avermedia H335", + RC_MAP_IT913X_V2) }, {} /* Terminating entry */ }; --- linux-3.13.0.orig/drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.h +++ linux-3.13.0/drivers/media/usb/dvb-usb-v2/mxl111sf-tuner.h @@ -68,7 +68,7 @@ #else static inline struct dvb_frontend *mxl111sf_tuner_attach(struct dvb_frontend *fe, - struct mxl111sf_state *mxl_state + struct mxl111sf_state *mxl_state, struct mxl111sf_tuner_config *cfg) { printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); --- linux-3.13.0.orig/drivers/media/usb/dvb-usb-v2/mxl111sf.c +++ linux-3.13.0/drivers/media/usb/dvb-usb-v2/mxl111sf.c @@ -105,7 +105,7 @@ ret = -EINVAL; } - pr_debug("R: (0x%02x, 0x%02x)\n", addr, *data); + pr_debug("R: (0x%02x, 0x%02x)\n", addr, buf[1]); fail: return ret; } --- linux-3.13.0.orig/drivers/media/usb/dvb-usb-v2/rtl28xxu.c +++ linux-3.13.0/drivers/media/usb/dvb-usb-v2/rtl28xxu.c @@ -1427,6 +1427,14 @@ &rtl2832u_props, "Leadtek WinFast DTV Dongle mini", NULL) }, { DVB_USB_DEVICE(USB_VID_GTEK, USB_PID_CPYTO_REDI_PC50A, &rtl2832u_props, "Crypto ReDi PC 50 A", NULL) }, + { DVB_USB_DEVICE(USB_VID_KYE, 0x707f, + &rtl2832u_props, "Genius TVGo DVB-T03", NULL) }, + { DVB_USB_DEVICE(USB_VID_KWORLD_2, 0xd395, + &rtl2832u_props, "Peak DVB-T USB", NULL) }, + { DVB_USB_DEVICE(USB_VID_KWORLD_2, USB_PID_SVEON_STV20_RTL2832U, + &rtl2832u_props, "Sveon STV20", NULL) }, + { DVB_USB_DEVICE(USB_VID_KWORLD_2, USB_PID_SVEON_STV27, + &rtl2832u_props, "Sveon STV27", NULL) }, { DVB_USB_DEVICE(USB_VID_HANFTEK, 0x0131, &rtl2832u_props, "Astrometa DVB-T2", NULL) }, --- linux-3.13.0.orig/drivers/media/usb/dvb-usb/af9005.c +++ linux-3.13.0/drivers/media/usb/dvb-usb/af9005.c @@ -1081,9 +1081,12 @@ err("usb_register failed. (%d)", result); return result; } +#if IS_MODULE(CONFIG_DVB_USB_AF9005) || defined(CONFIG_DVB_USB_AF9005_REMOTE) + /* FIXME: convert to todays kernel IR infrastructure */ rc_decode = symbol_request(af9005_rc_decode); rc_keys = symbol_request(rc_map_af9005_table); rc_keys_size = symbol_request(rc_map_af9005_table_size); +#endif if (rc_decode == NULL || rc_keys == NULL || rc_keys_size == NULL) { err("af9005_rc_decode function not found, disabling remote"); af9005_properties.rc.legacy.rc_query = NULL; --- linux-3.13.0.orig/drivers/media/usb/dvb-usb/cxusb.c +++ linux-3.13.0/drivers/media/usb/dvb-usb/cxusb.c @@ -149,6 +149,7 @@ int num) { struct dvb_usb_device *d = i2c_get_adapdata(adap); + int ret; int i; if (mutex_lock_interruptible(&d->i2c_mutex) < 0) @@ -173,7 +174,8 @@ if (1 + msg[i].len > sizeof(ibuf)) { warn("i2c rd: len=%d is too big!\n", msg[i].len); - return -EOPNOTSUPP; + ret = -EOPNOTSUPP; + goto unlock; } obuf[0] = 0; obuf[1] = msg[i].len; @@ -193,12 +195,14 @@ if (3 + msg[i].len > sizeof(obuf)) { warn("i2c wr: len=%d is too big!\n", msg[i].len); - return -EOPNOTSUPP; + ret = -EOPNOTSUPP; + goto unlock; } if (1 + msg[i + 1].len > sizeof(ibuf)) { warn("i2c rd: len=%d is too big!\n", msg[i + 1].len); - return -EOPNOTSUPP; + ret = -EOPNOTSUPP; + goto unlock; } obuf[0] = msg[i].len; obuf[1] = msg[i+1].len; @@ -223,7 +227,8 @@ if (2 + msg[i].len > sizeof(obuf)) { warn("i2c wr: len=%d is too big!\n", msg[i].len); - return -EOPNOTSUPP; + ret = -EOPNOTSUPP; + goto unlock; } obuf[0] = msg[i].addr; obuf[1] = msg[i].len; @@ -237,8 +242,14 @@ } } + if (i == num) + ret = num; + else + ret = -EREMOTEIO; + +unlock: mutex_unlock(&d->i2c_mutex); - return i == num ? num : -EREMOTEIO; + return ret; } static u32 cxusb_i2c_func(struct i2c_adapter *adapter) --- linux-3.13.0.orig/drivers/media/usb/dvb-usb/dw2102.c +++ linux-3.13.0/drivers/media/usb/dvb-usb/dw2102.c @@ -301,6 +301,7 @@ static int dw2102_earda_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[], int num) { struct dvb_usb_device *d = i2c_get_adapdata(adap); + int ret; if (!d) return -ENODEV; @@ -316,7 +317,8 @@ if (2 + msg[1].len > sizeof(ibuf)) { warn("i2c rd: len=%d is too big!\n", msg[1].len); - return -EOPNOTSUPP; + ret = -EOPNOTSUPP; + goto unlock; } obuf[0] = msg[0].addr << 1; @@ -340,7 +342,8 @@ if (2 + msg[0].len > sizeof(obuf)) { warn("i2c wr: len=%d is too big!\n", msg[1].len); - return -EOPNOTSUPP; + ret = -EOPNOTSUPP; + goto unlock; } obuf[0] = msg[0].addr << 1; @@ -357,7 +360,8 @@ if (2 + msg[0].len > sizeof(obuf)) { warn("i2c wr: len=%d is too big!\n", msg[1].len); - return -EOPNOTSUPP; + ret = -EOPNOTSUPP; + goto unlock; } obuf[0] = msg[0].addr << 1; @@ -386,15 +390,17 @@ break; } + ret = num; +unlock: mutex_unlock(&d->i2c_mutex); - return num; + return ret; } static int dw2104_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[], int num) { struct dvb_usb_device *d = i2c_get_adapdata(adap); - int len, i, j; + int len, i, j, ret; if (!d) return -ENODEV; @@ -430,7 +436,8 @@ if (2 + msg[j].len > sizeof(ibuf)) { warn("i2c rd: len=%d is too big!\n", msg[j].len); - return -EOPNOTSUPP; + ret = -EOPNOTSUPP; + goto unlock; } dw210x_op_rw(d->udev, 0xc3, @@ -466,7 +473,8 @@ if (2 + msg[j].len > sizeof(obuf)) { warn("i2c wr: len=%d is too big!\n", msg[j].len); - return -EOPNOTSUPP; + ret = -EOPNOTSUPP; + goto unlock; } obuf[0] = msg[j].addr << 1; @@ -481,15 +489,18 @@ } } + ret = num; +unlock: mutex_unlock(&d->i2c_mutex); - return num; + return ret; } static int dw3101_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[], int num) { struct dvb_usb_device *d = i2c_get_adapdata(adap); + int ret; int i; if (!d) @@ -506,7 +517,8 @@ if (2 + msg[1].len > sizeof(ibuf)) { warn("i2c rd: len=%d is too big!\n", msg[1].len); - return -EOPNOTSUPP; + ret = -EOPNOTSUPP; + goto unlock; } obuf[0] = msg[0].addr << 1; obuf[1] = msg[0].len; @@ -530,7 +542,8 @@ if (2 + msg[0].len > sizeof(obuf)) { warn("i2c wr: len=%d is too big!\n", msg[0].len); - return -EOPNOTSUPP; + ret = -EOPNOTSUPP; + goto unlock; } obuf[0] = msg[0].addr << 1; obuf[1] = msg[0].len; @@ -556,9 +569,11 @@ msg[i].flags == 0 ? ">>>" : "<<<"); debug_dump(msg[i].buf, msg[i].len, deb_xfer); } + ret = num; +unlock: mutex_unlock(&d->i2c_mutex); - return num; + return ret; } static int s6x0_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[], @@ -566,7 +581,7 @@ { struct dvb_usb_device *d = i2c_get_adapdata(adap); struct usb_device *udev; - int len, i, j; + int len, i, j, ret; if (!d) return -ENODEV; @@ -618,7 +633,8 @@ if (msg[j].len > sizeof(ibuf)) { warn("i2c rd: len=%d is too big!\n", msg[j].len); - return -EOPNOTSUPP; + ret = -EOPNOTSUPP; + goto unlock; } dw210x_op_rw(d->udev, 0x91, 0, 0, @@ -652,7 +668,8 @@ if (2 + msg[j].len > sizeof(obuf)) { warn("i2c wr: len=%d is too big!\n", msg[j].len); - return -EOPNOTSUPP; + ret = -EOPNOTSUPP; + goto unlock; } obuf[0] = msg[j + 1].len; @@ -671,7 +688,8 @@ if (2 + msg[j].len > sizeof(obuf)) { warn("i2c wr: len=%d is too big!\n", msg[j].len); - return -EOPNOTSUPP; + ret = -EOPNOTSUPP; + goto unlock; } obuf[0] = msg[j].len + 1; obuf[1] = (msg[j].addr << 1); @@ -685,9 +703,11 @@ } } } + ret = num; +unlock: mutex_unlock(&d->i2c_mutex); - return num; + return ret; } static int su3000_i2c_transfer(struct i2c_adapter *adap, struct i2c_msg msg[], --- linux-3.13.0.orig/drivers/media/usb/em28xx/em28xx-dvb.c +++ linux-3.13.0/drivers/media/usb/em28xx/em28xx-dvb.c @@ -693,7 +693,8 @@ static int em28xx_pctv_290e_set_lna(struct dvb_frontend *fe) { struct dtv_frontend_properties *c = &fe->dtv_property_cache; - struct em28xx *dev = fe->dvb->priv; + struct em28xx_i2c_bus *i2c_bus = fe->dvb->priv; + struct em28xx *dev = i2c_bus->dev; #ifdef CONFIG_GPIOLIB struct em28xx_dvb *dvb = dev->dvb; int ret; --- linux-3.13.0.orig/drivers/media/usb/em28xx/em28xx-video.c +++ linux-3.13.0/drivers/media/usb/em28xx/em28xx-video.c @@ -148,7 +148,10 @@ em28xx_isocdbg("[%p/%d] wakeup\n", buf, buf->top_field); buf->vb.v4l2_buf.sequence = dev->field_count++; - buf->vb.v4l2_buf.field = V4L2_FIELD_INTERLACED; + if (dev->progressive) + buf->vb.v4l2_buf.field = V4L2_FIELD_NONE; + else + buf->vb.v4l2_buf.field = V4L2_FIELD_INTERLACED; v4l2_get_timestamp(&buf->vb.v4l2_buf.timestamp); vb2_buffer_done(&buf->vb, VB2_BUF_STATE_DONE); @@ -696,13 +699,16 @@ } spin_lock_irqsave(&dev->slock, flags); + if (dev->usb_ctl.vid_buf != NULL) { + vb2_buffer_done(&dev->usb_ctl.vid_buf->vb, VB2_BUF_STATE_ERROR); + dev->usb_ctl.vid_buf = NULL; + } while (!list_empty(&vidq->active)) { struct em28xx_buffer *buf; buf = list_entry(vidq->active.next, struct em28xx_buffer, list); list_del(&buf->list); vb2_buffer_done(&buf->vb, VB2_BUF_STATE_ERROR); } - dev->usb_ctl.vid_buf = NULL; spin_unlock_irqrestore(&dev->slock, flags); return 0; @@ -724,13 +730,16 @@ } spin_lock_irqsave(&dev->slock, flags); + if (dev->usb_ctl.vbi_buf != NULL) { + vb2_buffer_done(&dev->usb_ctl.vbi_buf->vb, VB2_BUF_STATE_ERROR); + dev->usb_ctl.vbi_buf = NULL; + } while (!list_empty(&vbiq->active)) { struct em28xx_buffer *buf; buf = list_entry(vbiq->active.next, struct em28xx_buffer, list); list_del(&buf->list); vb2_buffer_done(&buf->vb, VB2_BUF_STATE_ERROR); } - dev->usb_ctl.vbi_buf = NULL; spin_unlock_irqrestore(&dev->slock, flags); return 0; --- linux-3.13.0.orig/drivers/media/usb/gspca/pac7302.c +++ linux-3.13.0/drivers/media/usb/gspca/pac7302.c @@ -928,6 +928,7 @@ {USB_DEVICE(0x093a, 0x2620)}, {USB_DEVICE(0x093a, 0x2621)}, {USB_DEVICE(0x093a, 0x2622), .driver_info = FL_VFLIP}, + {USB_DEVICE(0x093a, 0x2623), .driver_info = FL_VFLIP}, {USB_DEVICE(0x093a, 0x2624), .driver_info = FL_VFLIP}, {USB_DEVICE(0x093a, 0x2625)}, {USB_DEVICE(0x093a, 0x2626)}, --- linux-3.13.0.orig/drivers/media/usb/gspca/sn9c20x.c +++ linux-3.13.0/drivers/media/usb/gspca/sn9c20x.c @@ -2359,6 +2359,7 @@ {USB_DEVICE(0x045e, 0x00f4), SN9C20X(OV9650, 0x30, 0)}, {USB_DEVICE(0x145f, 0x013d), SN9C20X(OV7660, 0x21, 0)}, {USB_DEVICE(0x0458, 0x7029), SN9C20X(HV7131R, 0x11, 0)}, + {USB_DEVICE(0x0458, 0x7045), SN9C20X(MT9M112, 0x5d, LED_REVERSE)}, {USB_DEVICE(0x0458, 0x704a), SN9C20X(MT9M112, 0x5d, 0)}, {USB_DEVICE(0x0458, 0x704c), SN9C20X(MT9M112, 0x5d, 0)}, {USB_DEVICE(0xa168, 0x0610), SN9C20X(HV7131R, 0x11, 0)}, --- linux-3.13.0.orig/drivers/media/usb/hdpvr/hdpvr-video.c +++ linux-3.13.0/drivers/media/usb/hdpvr/hdpvr-video.c @@ -82,7 +82,7 @@ } /*=========================================================================*/ -/* bufffer bits */ +/* buffer bits */ /* function expects dev->io_mutex to be hold by caller */ int hdpvr_cancel_queue(struct hdpvr_device *dev) @@ -926,7 +926,7 @@ case V4L2_CID_MPEG_AUDIO_ENCODING: if (dev->flags & HDPVR_FLAG_AC3_CAP) { opt->audio_codec = ctrl->val; - return hdpvr_set_audio(dev, opt->audio_input, + return hdpvr_set_audio(dev, opt->audio_input + 1, opt->audio_codec); } return 0; @@ -1198,7 +1198,7 @@ v4l2_ctrl_new_std_menu(hdl, &hdpvr_ctrl_ops, V4L2_CID_MPEG_AUDIO_ENCODING, ac3 ? V4L2_MPEG_AUDIO_ENCODING_AC3 : V4L2_MPEG_AUDIO_ENCODING_AAC, - 0x7, V4L2_MPEG_AUDIO_ENCODING_AAC); + 0x7, ac3 ? dev->options.audio_codec : V4L2_MPEG_AUDIO_ENCODING_AAC); v4l2_ctrl_new_std_menu(hdl, &hdpvr_ctrl_ops, V4L2_CID_MPEG_VIDEO_ENCODING, V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVC, 0x3, --- linux-3.13.0.orig/drivers/media/usb/siano/smsusb.c +++ linux-3.13.0/drivers/media/usb/siano/smsusb.c @@ -653,6 +653,8 @@ .driver_info = SMS1XXX_BOARD_ZTE_DVB_DATA_CARD }, { USB_DEVICE(0x19D2, 0x0078), .driver_info = SMS1XXX_BOARD_ONDA_MDTV_DATA_CARD }, + { USB_DEVICE(0x2013, 0x0257), + .driver_info = SMS1XXX_BOARD_PCTV_77E }, { } /* Terminating entry */ }; --- linux-3.13.0.orig/drivers/media/usb/ttusb-dec/ttusbdecfe.c +++ linux-3.13.0/drivers/media/usb/ttusb-dec/ttusbdecfe.c @@ -156,6 +156,9 @@ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + if (cmd->msg_len > sizeof(b) - 4) + return -EINVAL; + memcpy(&b[4], cmd->msg, cmd->msg_len); state->config->send_command(fe, 0x72, --- linux-3.13.0.orig/drivers/media/usb/uvc/uvc_driver.c +++ linux-3.13.0/drivers/media/usb/uvc/uvc_driver.c @@ -1603,12 +1603,12 @@ { struct list_head *p, *n; - usb_put_intf(dev->intf); - usb_put_dev(dev->udev); - uvc_status_cleanup(dev); uvc_ctrl_cleanup_device(dev); + usb_put_intf(dev->intf); + usb_put_dev(dev->udev); + if (dev->vdev.dev) v4l2_device_unregister(&dev->vdev); #ifdef CONFIG_MEDIA_CONTROLLER @@ -2209,6 +2209,24 @@ .bInterfaceClass = USB_CLASS_VIDEO, .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_PROBE_DEF }, + /* Alienware X51*/ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x05a9, + .idProduct = 0x2643, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_PROBE_DEF }, + /* Dell XPS M1330 (OmniVision OV7670 webcam) */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x05a9, + .idProduct = 0x7670, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, .driver_info = UVC_QUIRK_PROBE_DEF }, /* Apple Built-In iSight */ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE --- linux-3.13.0.orig/drivers/media/usb/uvc/uvc_video.c +++ linux-3.13.0/drivers/media/usb/uvc/uvc_video.c @@ -361,6 +361,14 @@ * Clocks and timestamps */ +static inline void uvc_video_get_ts(struct timespec *ts) +{ + if (uvc_clock_param == CLOCK_MONOTONIC) + ktime_get_ts(ts); + else + ktime_get_real_ts(ts); +} + static void uvc_video_clock_decode(struct uvc_streaming *stream, struct uvc_buffer *buf, const __u8 *data, int len) @@ -420,7 +428,7 @@ stream->clock.last_sof = dev_sof; host_sof = usb_get_current_frame_number(stream->dev->udev); - ktime_get_ts(&ts); + uvc_video_get_ts(&ts); /* The UVC specification allows device implementations that can't obtain * the USB frame number to keep their own frame counters as long as they @@ -1011,10 +1019,7 @@ return -ENODATA; } - if (uvc_clock_param == CLOCK_MONOTONIC) - ktime_get_ts(&ts); - else - ktime_get_real_ts(&ts); + uvc_video_get_ts(&ts); buf->buf.v4l2_buf.sequence = stream->sequence; buf->buf.v4l2_buf.timestamp.tv_sec = ts.tv_sec; @@ -1847,7 +1852,25 @@ if (!enable) { uvc_uninit_video(stream, 1); - usb_set_interface(stream->dev->udev, stream->intfnum, 0); + if (stream->intf->num_altsetting > 1) { + usb_set_interface(stream->dev->udev, + stream->intfnum, 0); + } else { + /* UVC doesn't specify how to inform a bulk-based device + * when the video stream is stopped. Windows sends a + * CLEAR_FEATURE(HALT) request to the video streaming + * bulk endpoint, mimic the same behaviour. + */ + unsigned int epnum = stream->header.bEndpointAddress + & USB_ENDPOINT_NUMBER_MASK; + unsigned int dir = stream->header.bEndpointAddress + & USB_ENDPOINT_DIR_MASK; + unsigned int pipe; + + pipe = usb_sndbulkpipe(stream->dev->udev, epnum) | dir; + usb_clear_halt(stream->dev->udev, pipe); + } + uvc_queue_enable(&stream->queue, 0); uvc_video_clock_cleanup(stream); return 0; --- linux-3.13.0.orig/drivers/media/v4l2-core/v4l2-common.c +++ linux-3.13.0/drivers/media/v4l2-core/v4l2-common.c @@ -431,16 +431,13 @@ /* Bits that must be zero to be aligned */ unsigned int mask = ~((1 << align) - 1); + /* Clamp to aligned min and max */ + x = clamp(x, (min + ~mask) & mask, max & mask); + /* Round to nearest aligned value */ if (align) x = (x + (1 << (align - 1))) & mask; - /* Clamp to aligned value of min and max */ - if (x < min) - x = (min + ~mask) & mask; - else if (x > max) - x = max & mask; - return x; } --- linux-3.13.0.orig/drivers/media/v4l2-core/v4l2-compat-ioctl32.c +++ linux-3.13.0/drivers/media/v4l2-core/v4l2-compat-ioctl32.c @@ -178,6 +178,9 @@ static int __get_v4l2_format32(struct v4l2_format *kp, struct v4l2_format32 __user *up) { + if (get_user(kp->type, &up->type)) + return -EFAULT; + switch (kp->type) { case V4L2_BUF_TYPE_VIDEO_CAPTURE: case V4L2_BUF_TYPE_VIDEO_OUTPUT: @@ -204,17 +207,16 @@ static int get_v4l2_format32(struct v4l2_format *kp, struct v4l2_format32 __user *up) { - if (!access_ok(VERIFY_READ, up, sizeof(struct v4l2_format32)) || - get_user(kp->type, &up->type)) - return -EFAULT; + if (!access_ok(VERIFY_READ, up, sizeof(struct v4l2_format32))) + return -EFAULT; return __get_v4l2_format32(kp, up); } static int get_v4l2_create32(struct v4l2_create_buffers *kp, struct v4l2_create_buffers32 __user *up) { if (!access_ok(VERIFY_READ, up, sizeof(struct v4l2_create_buffers32)) || - copy_from_user(kp, up, offsetof(struct v4l2_create_buffers32, format.fmt))) - return -EFAULT; + copy_from_user(kp, up, offsetof(struct v4l2_create_buffers32, format))) + return -EFAULT; return __get_v4l2_format32(&kp->format, &up->format); } --- linux-3.13.0.orig/drivers/media/v4l2-core/v4l2-dev.c +++ linux-3.13.0/drivers/media/v4l2-core/v4l2-dev.c @@ -872,8 +872,8 @@ /* Should not happen since we thought this minor was free */ WARN_ON(video_device[vdev->minor] != NULL); - video_device[vdev->minor] = vdev; vdev->index = get_index(vdev); + video_device[vdev->minor] = vdev; mutex_unlock(&videodev_lock); if (vdev->ioctl_ops) --- linux-3.13.0.orig/drivers/media/v4l2-core/v4l2-dv-timings.c +++ linux-3.13.0/drivers/media/v4l2-core/v4l2-dv-timings.c @@ -590,10 +590,10 @@ aspect.denominator = 9; } else if (ratio == 34) { aspect.numerator = 4; - aspect.numerator = 3; + aspect.denominator = 3; } else if (ratio == 68) { aspect.numerator = 15; - aspect.numerator = 9; + aspect.denominator = 9; } else { aspect.numerator = hor_landscape + 99; aspect.denominator = 100; --- linux-3.13.0.orig/drivers/media/v4l2-core/videobuf-dma-contig.c +++ linux-3.13.0/drivers/media/v4l2-core/videobuf-dma-contig.c @@ -66,14 +66,11 @@ static void videobuf_vm_open(struct vm_area_struct *vma) { struct videobuf_mapping *map = vma->vm_private_data; - struct videobuf_queue *q = map->q; - dev_dbg(q->dev, "vm_open %p [count=%u,vma=%08lx-%08lx]\n", + dev_dbg(map->q->dev, "vm_open %p [count=%u,vma=%08lx-%08lx]\n", map, map->count, vma->vm_start, vma->vm_end); - videobuf_queue_lock(q); map->count++; - videobuf_queue_unlock(q); } static void videobuf_vm_close(struct vm_area_struct *vma) @@ -85,11 +82,12 @@ dev_dbg(q->dev, "vm_close %p [count=%u,vma=%08lx-%08lx]\n", map, map->count, vma->vm_start, vma->vm_end); - videobuf_queue_lock(q); - if (!--map->count) { + map->count--; + if (0 == map->count) { struct videobuf_dma_contig_memory *mem; dev_dbg(q->dev, "munmap %p q=%p\n", map, q); + videobuf_queue_lock(q); /* We need first to cancel streams, before unmapping */ if (q->streaming) @@ -128,8 +126,8 @@ kfree(map); + videobuf_queue_unlock(q); } - videobuf_queue_unlock(q); } static const struct vm_operations_struct videobuf_vm_ops = { --- linux-3.13.0.orig/drivers/media/v4l2-core/videobuf-dma-sg.c +++ linux-3.13.0/drivers/media/v4l2-core/videobuf-dma-sg.c @@ -338,14 +338,11 @@ static void videobuf_vm_open(struct vm_area_struct *vma) { struct videobuf_mapping *map = vma->vm_private_data; - struct videobuf_queue *q = map->q; dprintk(2, "vm_open %p [count=%d,vma=%08lx-%08lx]\n", map, map->count, vma->vm_start, vma->vm_end); - videobuf_queue_lock(q); map->count++; - videobuf_queue_unlock(q); } static void videobuf_vm_close(struct vm_area_struct *vma) @@ -358,9 +355,10 @@ dprintk(2, "vm_close %p [count=%d,vma=%08lx-%08lx]\n", map, map->count, vma->vm_start, vma->vm_end); - videobuf_queue_lock(q); - if (!--map->count) { + map->count--; + if (0 == map->count) { dprintk(1, "munmap %p q=%p\n", map, q); + videobuf_queue_lock(q); for (i = 0; i < VIDEO_MAX_FRAME; i++) { if (NULL == q->bufs[i]) continue; @@ -376,9 +374,9 @@ q->bufs[i]->baddr = 0; q->ops->buf_release(q, q->bufs[i]); } + videobuf_queue_unlock(q); kfree(map); } - videobuf_queue_unlock(q); return; } --- linux-3.13.0.orig/drivers/media/v4l2-core/videobuf-vmalloc.c +++ linux-3.13.0/drivers/media/v4l2-core/videobuf-vmalloc.c @@ -54,14 +54,11 @@ static void videobuf_vm_open(struct vm_area_struct *vma) { struct videobuf_mapping *map = vma->vm_private_data; - struct videobuf_queue *q = map->q; dprintk(2, "vm_open %p [count=%u,vma=%08lx-%08lx]\n", map, map->count, vma->vm_start, vma->vm_end); - videobuf_queue_lock(q); map->count++; - videobuf_queue_unlock(q); } static void videobuf_vm_close(struct vm_area_struct *vma) @@ -73,11 +70,12 @@ dprintk(2, "vm_close %p [count=%u,vma=%08lx-%08lx]\n", map, map->count, vma->vm_start, vma->vm_end); - videobuf_queue_lock(q); - if (!--map->count) { + map->count--; + if (0 == map->count) { struct videobuf_vmalloc_memory *mem; dprintk(1, "munmap %p q=%p\n", map, q); + videobuf_queue_lock(q); /* We need first to cancel streams, before unmapping */ if (q->streaming) @@ -116,8 +114,8 @@ kfree(map); + videobuf_queue_unlock(q); } - videobuf_queue_unlock(q); return; } --- linux-3.13.0.orig/drivers/media/v4l2-core/videobuf2-core.c +++ linux-3.13.0/drivers/media/v4l2-core/videobuf2-core.c @@ -885,7 +885,7 @@ { struct vb2_queue *q = vb->vb2_queue; - if (plane_no > vb->num_planes || !vb->planes[plane_no].mem_priv) + if (plane_no >= vb->num_planes || !vb->planes[plane_no].mem_priv) return NULL; return call_memop(q, cookie, vb->planes[plane_no].mem_priv); --- linux-3.13.0.orig/drivers/media/v4l2-core/videobuf2-dma-sg.c +++ linux-3.13.0/drivers/media/v4l2-core/videobuf2-dma-sg.c @@ -112,7 +112,7 @@ goto fail_pages_alloc; ret = sg_alloc_table_from_pages(&buf->sg_table, buf->pages, - buf->num_pages, 0, size, gfp_flags); + buf->num_pages, 0, size, GFP_KERNEL); if (ret) goto fail_table_alloc; --- linux-3.13.0.orig/drivers/memory/mvebu-devbus.c +++ linux-3.13.0/drivers/memory/mvebu-devbus.c @@ -108,8 +108,19 @@ node->full_name); return err; } - /* Convert bit width to byte width */ - r.bus_width /= 8; + + /* + * The bus width is encoded into the register as 0 for 8 bits, + * and 1 for 16 bits, so we do the necessary conversion here. + */ + if (r.bus_width == 8) + r.bus_width = 0; + else if (r.bus_width == 16) + r.bus_width = 1; + else { + dev_err(devbus->dev, "invalid bus width %d\n", r.bus_width); + return -EINVAL; + } err = get_timing_param_ps(devbus, node, "devbus,badr-skew-ps", &r.badr_skew); --- linux-3.13.0.orig/drivers/message/fusion/mptspi.c +++ linux-3.13.0/drivers/message/fusion/mptspi.c @@ -1422,6 +1422,11 @@ goto out_mptspi_probe; } + /* VMWare emulation doesn't properly implement WRITE_SAME + */ + if (pdev->subsystem_vendor == 0x15AD) + sh->no_write_same = 1; + spin_lock_irqsave(&ioc->FreeQlock, flags); /* Attach the SCSI Host to the IOC structure --- linux-3.13.0.orig/drivers/mfd/88pm800.c +++ linux-3.13.0/drivers/mfd/88pm800.c @@ -571,7 +571,7 @@ ret = pm800_pages_init(chip); if (ret) { dev_err(&client->dev, "pm800_pages_init failed!\n"); - goto err_page_init; + goto err_device_init; } ret = device_800_init(chip, pdata); @@ -587,7 +587,6 @@ err_device_init: pm800_pages_exit(chip); -err_page_init: err_subchip_alloc: pm80x_deinit(); out_init: --- linux-3.13.0.orig/drivers/mfd/88pm860x-core.c +++ linux-3.13.0/drivers/mfd/88pm860x-core.c @@ -1179,12 +1179,18 @@ chip->companion_addr = pdata->companion_addr; chip->companion = i2c_new_dummy(chip->client->adapter, chip->companion_addr); + if (!chip->companion) { + dev_err(&client->dev, + "Failed to allocate I2C companion device\n"); + return -ENODEV; + } chip->regmap_companion = regmap_init_i2c(chip->companion, &pm860x_regmap_config); if (IS_ERR(chip->regmap_companion)) { ret = PTR_ERR(chip->regmap_companion); dev_err(&chip->companion->dev, "Failed to allocate register map: %d\n", ret); + i2c_unregister_device(chip->companion); return ret; } i2c_set_clientdata(chip->companion, chip); --- linux-3.13.0.orig/drivers/mfd/Kconfig +++ linux-3.13.0/drivers/mfd/Kconfig @@ -1173,9 +1173,6 @@ in various ST Microelectronics and ST-Ericsson embedded Nomadik series. -endmenu -endif - menu "Multimedia Capabilities Port drivers" depends on ARCH_SA1100 @@ -1206,3 +1203,6 @@ help Platform configuration infrastructure for the ARM Ltd. Versatile Express. + +endmenu +endif --- linux-3.13.0.orig/drivers/mfd/Makefile +++ linux-3.13.0/drivers/mfd/Makefile @@ -12,7 +12,7 @@ obj-$(CONFIG_MFD_CROS_EC_I2C) += cros_ec_i2c.o obj-$(CONFIG_MFD_CROS_EC_SPI) += cros_ec_spi.o -rtsx_pci-objs := rtsx_pcr.o rts5209.o rts5229.o rtl8411.o rts5227.o rts5249.o +rtsx_pci-objs := rtsx_pcr.o rtsx_gops.o rts5209.o rts5229.o rtl8411.o rts5227.o rts5249.o obj-$(CONFIG_MFD_RTSX_PCI) += rtsx_pci.o obj-$(CONFIG_HTC_EGPIO) += htc-egpio.o --- linux-3.13.0.orig/drivers/mfd/da9055-i2c.c +++ linux-3.13.0/drivers/mfd/da9055-i2c.c @@ -53,17 +53,25 @@ return 0; } +/* + * DO NOT change the device Ids. The naming is intentionally specific as both + * the PMIC and CODEC parts of this chip are instantiated separately as I2C + * devices (both have configurable I2C addresses, and are to all intents and + * purposes separate). As a result there are specific DA9055 ids for PMIC + * and CODEC, which must be different to operate together. + */ static struct i2c_device_id da9055_i2c_id[] = { - {"da9055", 0}, + {"da9055-pmic", 0}, { } }; +MODULE_DEVICE_TABLE(i2c, da9055_i2c_id); static struct i2c_driver da9055_i2c_driver = { .probe = da9055_i2c_probe, .remove = da9055_i2c_remove, .id_table = da9055_i2c_id, .driver = { - .name = "da9055", + .name = "da9055-pmic", .owner = THIS_MODULE, }, }; --- linux-3.13.0.orig/drivers/mfd/kempld-core.c +++ linux-3.13.0/drivers/mfd/kempld-core.c @@ -322,9 +322,12 @@ return -ENODEV; } - /* Release hardware mutex if aquired */ - if (!(index_reg & KEMPLD_MUTEX_KEY)) + /* Release hardware mutex if acquired */ + if (!(index_reg & KEMPLD_MUTEX_KEY)) { iowrite8(KEMPLD_MUTEX_KEY, pld->io_index); + /* PXT and COMe-cPC2 boards may require a second release */ + iowrite8(KEMPLD_MUTEX_KEY, pld->io_index); + } mutex_unlock(&pld->lock); --- linux-3.13.0.orig/drivers/mfd/max77686.c +++ linux-3.13.0/drivers/mfd/max77686.c @@ -104,7 +104,7 @@ max77686->irq_gpio = pdata->irq_gpio; max77686->irq = i2c->irq; - max77686->regmap = regmap_init_i2c(i2c, &max77686_regmap_config); + max77686->regmap = devm_regmap_init_i2c(i2c, &max77686_regmap_config); if (IS_ERR(max77686->regmap)) { ret = PTR_ERR(max77686->regmap); dev_err(max77686->dev, "Failed to allocate register map: %d\n", @@ -121,6 +121,10 @@ dev_info(max77686->dev, "device found\n"); max77686->rtc = i2c_new_dummy(i2c->adapter, I2C_ADDR_RTC); + if (!max77686->rtc) { + dev_err(max77686->dev, "Failed to allocate I2C device for RTC\n"); + return -ENODEV; + } i2c_set_clientdata(max77686->rtc, max77686); max77686_irq_init(max77686); --- linux-3.13.0.orig/drivers/mfd/max77693.c +++ linux-3.13.0/drivers/mfd/max77693.c @@ -142,9 +142,18 @@ dev_info(max77693->dev, "device ID: 0x%x\n", reg_data); max77693->muic = i2c_new_dummy(i2c->adapter, I2C_ADDR_MUIC); + if (!max77693->muic) { + dev_err(max77693->dev, "Failed to allocate I2C device for MUIC\n"); + return -ENODEV; + } i2c_set_clientdata(max77693->muic, max77693); max77693->haptic = i2c_new_dummy(i2c->adapter, I2C_ADDR_HAPTIC); + if (!max77693->haptic) { + dev_err(max77693->dev, "Failed to allocate I2C device for Haptic\n"); + ret = -ENODEV; + goto err_i2c_haptic; + } i2c_set_clientdata(max77693->haptic, max77693); /* @@ -178,8 +187,9 @@ max77693_irq_exit(max77693); err_irq: err_regmap_muic: - i2c_unregister_device(max77693->muic); i2c_unregister_device(max77693->haptic); +err_i2c_haptic: + i2c_unregister_device(max77693->muic); return ret; } --- linux-3.13.0.orig/drivers/mfd/max8925-i2c.c +++ linux-3.13.0/drivers/mfd/max8925-i2c.c @@ -181,9 +181,18 @@ mutex_init(&chip->io_lock); chip->rtc = i2c_new_dummy(chip->i2c->adapter, RTC_I2C_ADDR); + if (!chip->rtc) { + dev_err(chip->dev, "Failed to allocate I2C device for RTC\n"); + return -ENODEV; + } i2c_set_clientdata(chip->rtc, chip); chip->adc = i2c_new_dummy(chip->i2c->adapter, ADC_I2C_ADDR); + if (!chip->adc) { + dev_err(chip->dev, "Failed to allocate I2C device for ADC\n"); + i2c_unregister_device(chip->rtc); + return -ENODEV; + } i2c_set_clientdata(chip->adc, chip); device_init_wakeup(&client->dev, 1); --- linux-3.13.0.orig/drivers/mfd/max8997.c +++ linux-3.13.0/drivers/mfd/max8997.c @@ -218,10 +218,26 @@ mutex_init(&max8997->iolock); max8997->rtc = i2c_new_dummy(i2c->adapter, I2C_ADDR_RTC); + if (!max8997->rtc) { + dev_err(max8997->dev, "Failed to allocate I2C device for RTC\n"); + return -ENODEV; + } i2c_set_clientdata(max8997->rtc, max8997); + max8997->haptic = i2c_new_dummy(i2c->adapter, I2C_ADDR_HAPTIC); + if (!max8997->haptic) { + dev_err(max8997->dev, "Failed to allocate I2C device for Haptic\n"); + ret = -ENODEV; + goto err_i2c_haptic; + } i2c_set_clientdata(max8997->haptic, max8997); + max8997->muic = i2c_new_dummy(i2c->adapter, I2C_ADDR_MUIC); + if (!max8997->muic) { + dev_err(max8997->dev, "Failed to allocate I2C device for MUIC\n"); + ret = -ENODEV; + goto err_i2c_muic; + } i2c_set_clientdata(max8997->muic, max8997); pm_runtime_set_active(max8997->dev); @@ -248,7 +264,9 @@ err_mfd: mfd_remove_devices(max8997->dev); i2c_unregister_device(max8997->muic); +err_i2c_muic: i2c_unregister_device(max8997->haptic); +err_i2c_haptic: i2c_unregister_device(max8997->rtc); return ret; } --- linux-3.13.0.orig/drivers/mfd/max8998.c +++ linux-3.13.0/drivers/mfd/max8998.c @@ -215,6 +215,10 @@ mutex_init(&max8998->iolock); max8998->rtc = i2c_new_dummy(i2c->adapter, RTC_I2C_ADDR); + if (!max8998->rtc) { + dev_err(&i2c->dev, "Failed to allocate I2C device for RTC\n"); + return -ENODEV; + } i2c_set_clientdata(max8998->rtc, max8998); max8998_irq_init(max8998); --- linux-3.13.0.orig/drivers/mfd/omap-usb-host.c +++ linux-3.13.0/drivers/mfd/omap-usb-host.c @@ -445,7 +445,7 @@ for (i = 0; i < omap->nports; i++) { if (is_ehci_phy_mode(pdata->port_mode[i])) { - reg &= OMAP_UHH_HOSTCONFIG_ULPI_BYPASS; + reg &= ~OMAP_UHH_HOSTCONFIG_ULPI_BYPASS; break; } } --- linux-3.13.0.orig/drivers/mfd/rtl8411.c +++ linux-3.13.0/drivers/mfd/rtl8411.c @@ -191,24 +191,25 @@ BPP_LDO_POWB, BPP_LDO_SUSPEND); } -static int rtl8411_switch_output_voltage(struct rtsx_pcr *pcr, u8 voltage) +static int rtl8411_do_switch_output_voltage(struct rtsx_pcr *pcr, u8 voltage, + int bpp_tuned18_shift, int bpp_asic_1v8) { u8 mask, val; int err; - mask = (BPP_REG_TUNED18 << BPP_TUNED18_SHIFT_8411) | BPP_PAD_MASK; + mask = (BPP_REG_TUNED18 << bpp_tuned18_shift) | BPP_PAD_MASK; if (voltage == OUTPUT_3V3) { err = rtsx_pci_write_register(pcr, SD30_DRIVE_SEL, 0x07, pcr->sd30_drive_sel_3v3); if (err < 0) return err; - val = (BPP_ASIC_3V3 << BPP_TUNED18_SHIFT_8411) | BPP_PAD_3V3; + val = (BPP_ASIC_3V3 << bpp_tuned18_shift) | BPP_PAD_3V3; } else if (voltage == OUTPUT_1V8) { err = rtsx_pci_write_register(pcr, SD30_DRIVE_SEL, 0x07, pcr->sd30_drive_sel_1v8); if (err < 0) return err; - val = (BPP_ASIC_1V8 << BPP_TUNED18_SHIFT_8411) | BPP_PAD_1V8; + val = (bpp_asic_1v8 << bpp_tuned18_shift) | BPP_PAD_1V8; } else { return -EINVAL; } @@ -216,6 +217,18 @@ return rtsx_pci_write_register(pcr, LDO_CTL, mask, val); } +static int rtl8411_switch_output_voltage(struct rtsx_pcr *pcr, u8 voltage) +{ + return rtl8411_do_switch_output_voltage(pcr, voltage, + BPP_TUNED18_SHIFT_8411, BPP_ASIC_1V8); +} + +static int rtl8402_switch_output_voltage(struct rtsx_pcr *pcr, u8 voltage) +{ + return rtl8411_do_switch_output_voltage(pcr, voltage, + BPP_TUNED18_SHIFT_8402, BPP_ASIC_2V0); +} + static unsigned int rtl8411_cd_deglitch(struct rtsx_pcr *pcr) { unsigned int card_exist; @@ -295,6 +308,22 @@ .force_power_down = rtl8411_force_power_down, }; +static const struct pcr_ops rtl8402_pcr_ops = { + .fetch_vendor_settings = rtl8411_fetch_vendor_settings, + .extra_init_hw = rtl8411_extra_init_hw, + .optimize_phy = NULL, + .turn_on_led = rtl8411_turn_on_led, + .turn_off_led = rtl8411_turn_off_led, + .enable_auto_blink = rtl8411_enable_auto_blink, + .disable_auto_blink = rtl8411_disable_auto_blink, + .card_power_on = rtl8411_card_power_on, + .card_power_off = rtl8411_card_power_off, + .switch_output_voltage = rtl8402_switch_output_voltage, + .cd_deglitch = rtl8411_cd_deglitch, + .conv_clk_and_div_n = rtl8411_conv_clk_and_div_n, + .force_power_down = rtl8411_force_power_down, +}; + static const struct pcr_ops rtl8411b_pcr_ops = { .fetch_vendor_settings = rtl8411b_fetch_vendor_settings, .extra_init_hw = rtl8411b_extra_init_hw, @@ -441,12 +470,10 @@ 0, }; -void rtl8411_init_params(struct rtsx_pcr *pcr) +void rtl8411_init_common_params(struct rtsx_pcr *pcr) { pcr->extra_caps = EXTRA_CAPS_SD_SDR50 | EXTRA_CAPS_SD_SDR104; pcr->num_slots = 2; - pcr->ops = &rtl8411_pcr_ops; - pcr->flags = 0; pcr->card_drive_sel = RTL8411_CARD_DRIVE_DEFAULT; pcr->sd30_drive_sel_1v8 = DRIVER_TYPE_B; @@ -454,47 +481,29 @@ pcr->aspm_en = ASPM_L1_EN; pcr->tx_initial_phase = SET_CLOCK_PHASE(23, 7, 14); pcr->rx_initial_phase = SET_CLOCK_PHASE(4, 3, 10); - pcr->ic_version = rtl8411_get_ic_version(pcr); - pcr->sd_pull_ctl_enable_tbl = rtl8411_sd_pull_ctl_enable_tbl; - pcr->sd_pull_ctl_disable_tbl = rtl8411_sd_pull_ctl_disable_tbl; - pcr->ms_pull_ctl_enable_tbl = rtl8411_ms_pull_ctl_enable_tbl; - pcr->ms_pull_ctl_disable_tbl = rtl8411_ms_pull_ctl_disable_tbl; +} + +void rtl8411_init_params(struct rtsx_pcr *pcr) +{ + rtl8411_init_common_params(pcr); + pcr->ops = &rtl8411_pcr_ops; + set_pull_ctrl_tables(pcr, rtl8411); } void rtl8411b_init_params(struct rtsx_pcr *pcr) { - pcr->extra_caps = EXTRA_CAPS_SD_SDR50 | EXTRA_CAPS_SD_SDR104; - pcr->num_slots = 2; + rtl8411_init_common_params(pcr); pcr->ops = &rtl8411b_pcr_ops; + if (rtl8411b_is_qfn48(pcr)) + set_pull_ctrl_tables(pcr, rtl8411b_qfn48); + else + set_pull_ctrl_tables(pcr, rtl8411b_qfn64); +} - pcr->flags = 0; - pcr->card_drive_sel = RTL8411_CARD_DRIVE_DEFAULT; - pcr->sd30_drive_sel_1v8 = DRIVER_TYPE_B; - pcr->sd30_drive_sel_3v3 = DRIVER_TYPE_D; - pcr->aspm_en = ASPM_L1_EN; - pcr->tx_initial_phase = SET_CLOCK_PHASE(23, 7, 14); - pcr->rx_initial_phase = SET_CLOCK_PHASE(4, 3, 10); - - pcr->ic_version = rtl8411_get_ic_version(pcr); - - if (rtl8411b_is_qfn48(pcr)) { - pcr->sd_pull_ctl_enable_tbl = - rtl8411b_qfn48_sd_pull_ctl_enable_tbl; - pcr->sd_pull_ctl_disable_tbl = - rtl8411b_qfn48_sd_pull_ctl_disable_tbl; - pcr->ms_pull_ctl_enable_tbl = - rtl8411b_qfn48_ms_pull_ctl_enable_tbl; - pcr->ms_pull_ctl_disable_tbl = - rtl8411b_qfn48_ms_pull_ctl_disable_tbl; - } else { - pcr->sd_pull_ctl_enable_tbl = - rtl8411b_qfn64_sd_pull_ctl_enable_tbl; - pcr->sd_pull_ctl_disable_tbl = - rtl8411b_qfn64_sd_pull_ctl_disable_tbl; - pcr->ms_pull_ctl_enable_tbl = - rtl8411b_qfn64_ms_pull_ctl_enable_tbl; - pcr->ms_pull_ctl_disable_tbl = - rtl8411b_qfn64_ms_pull_ctl_disable_tbl; - } +void rtl8402_init_params(struct rtsx_pcr *pcr) +{ + rtl8411_init_common_params(pcr); + pcr->ops = &rtl8402_pcr_ops; + set_pull_ctrl_tables(pcr, rtl8411); } --- linux-3.13.0.orig/drivers/mfd/rts5227.c +++ linux-3.13.0/drivers/mfd/rts5227.c @@ -130,6 +130,12 @@ static int rts5227_optimize_phy(struct rtsx_pcr *pcr) { + int err; + + err = rtsx_gops_pm_reset(pcr); + if (err < 0) + return err; + /* Optimize RX sensitivity */ return rtsx_pci_write_phy_register(pcr, 0x00, 0xBA42); } --- linux-3.13.0.orig/drivers/mfd/rts5249.c +++ linux-3.13.0/drivers/mfd/rts5249.c @@ -130,6 +130,10 @@ { int err; + err = rtsx_gops_pm_reset(pcr); + if (err < 0) + return err; + err = rtsx_pci_write_phy_register(pcr, PHY_REG_REV, PHY_REG_REV_RESV | PHY_REG_REV_RXIDLE_LATCHED | PHY_REG_REV_P1_EN | PHY_REG_REV_RXIDLE_EN | --- linux-3.13.0.orig/drivers/mfd/rtsx_gops.c +++ linux-3.13.0/drivers/mfd/rtsx_gops.c @@ -0,0 +1,37 @@ +/* Driver for Realtek PCI-Express card reader + * + * Copyright(c) 2009-2013 Realtek Semiconductor Corp. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2, or (at your option) any + * later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, see . + * + * Author: + * Micky Ching + */ + +#include +#include "rtsx_pcr.h" + +int rtsx_gops_pm_reset(struct rtsx_pcr *pcr) +{ + int err; + + /* init aspm */ + rtsx_pci_write_register(pcr, ASPM_FORCE_CTL, 0xFF, 0x00); + err = rtsx_pci_update_cfg_byte(pcr, LCTLR, ~LCTLR_ASPM_CTL_MASK, 0x00); + if (err < 0) + return err; + + /* reset PM_CTRL3 before send buffer cmd */ + return rtsx_pci_write_register(pcr, PM_CTRL3, D3_DELINK_MODE_EN, 0x00); +} --- linux-3.13.0.orig/drivers/mfd/rtsx_pcr.c +++ linux-3.13.0/drivers/mfd/rtsx_pcr.c @@ -57,6 +57,7 @@ { PCI_DEVICE(0x10EC, 0x5227), PCI_CLASS_OTHERS << 16, 0xFF0000 }, { PCI_DEVICE(0x10EC, 0x5249), PCI_CLASS_OTHERS << 16, 0xFF0000 }, { PCI_DEVICE(0x10EC, 0x5287), PCI_CLASS_OTHERS << 16, 0xFF0000 }, + { PCI_DEVICE(0x10EC, 0x5286), PCI_CLASS_OTHERS << 16, 0xFF0000 }, { 0, } }; @@ -1061,6 +1062,10 @@ case 0x5287: rtl8411b_init_params(pcr); break; + + case 0x5286: + rtl8402_init_params(pcr); + break; } dev_dbg(&(pcr->pci->dev), "PID: 0x%04x, IC version: 0x%02x\n", @@ -1172,7 +1177,7 @@ pcr->msi_en = msi_en; if (pcr->msi_en) { ret = pci_enable_msi(pcidev); - if (ret < 0) + if (ret) pcr->msi_en = false; } --- linux-3.13.0.orig/drivers/mfd/rtsx_pcr.h +++ linux-3.13.0/drivers/mfd/rtsx_pcr.h @@ -30,6 +30,7 @@ void rts5209_init_params(struct rtsx_pcr *pcr); void rts5229_init_params(struct rtsx_pcr *pcr); void rtl8411_init_params(struct rtsx_pcr *pcr); +void rtl8402_init_params(struct rtsx_pcr *pcr); void rts5227_init_params(struct rtsx_pcr *pcr); void rts5249_init_params(struct rtsx_pcr *pcr); void rtl8411b_init_params(struct rtsx_pcr *pcr); @@ -63,4 +64,15 @@ #define rtl8411_reg_to_sd30_drive_sel_3v3(reg) (((reg) >> 5) & 0x07) #define rtl8411b_reg_to_sd30_drive_sel_3v3(reg) ((reg) & 0x03) +#define set_pull_ctrl_tables(pcr, __device) \ +do { \ + pcr->sd_pull_ctl_enable_tbl = __device##_sd_pull_ctl_enable_tbl; \ + pcr->sd_pull_ctl_disable_tbl = __device##_sd_pull_ctl_disable_tbl; \ + pcr->ms_pull_ctl_enable_tbl = __device##_ms_pull_ctl_enable_tbl; \ + pcr->ms_pull_ctl_disable_tbl = __device##_ms_pull_ctl_disable_tbl; \ +} while (0) + +/* generic operations */ +int rtsx_gops_pm_reset(struct rtsx_pcr *pcr); + #endif --- linux-3.13.0.orig/drivers/mfd/sec-core.c +++ linux-3.13.0/drivers/mfd/sec-core.c @@ -280,6 +280,10 @@ } sec_pmic->rtc = i2c_new_dummy(i2c->adapter, RTC_I2C_ADDR); + if (!sec_pmic->rtc) { + dev_err(&i2c->dev, "Failed to allocate I2C for RTC\n"); + return -ENODEV; + } i2c_set_clientdata(sec_pmic->rtc, sec_pmic); sec_pmic->regmap_rtc = devm_regmap_init_i2c(sec_pmic->rtc, --- linux-3.13.0.orig/drivers/mfd/tc6393xb.c +++ linux-3.13.0/drivers/mfd/tc6393xb.c @@ -263,6 +263,17 @@ return 0; } +static int tc6393xb_ohci_suspend(struct platform_device *dev) +{ + struct tc6393xb_platform_data *tcpd = dev_get_platdata(dev->dev.parent); + + /* We can't properly store/restore OHCI state, so fail here */ + if (tcpd->resume_restore) + return -EBUSY; + + return tc6393xb_ohci_disable(dev); +} + static int tc6393xb_fb_enable(struct platform_device *dev) { struct tc6393xb *tc6393xb = dev_get_drvdata(dev->dev.parent); @@ -403,7 +414,7 @@ .num_resources = ARRAY_SIZE(tc6393xb_ohci_resources), .resources = tc6393xb_ohci_resources, .enable = tc6393xb_ohci_enable, - .suspend = tc6393xb_ohci_disable, + .suspend = tc6393xb_ohci_suspend, .resume = tc6393xb_ohci_enable, .disable = tc6393xb_ohci_disable, }, --- linux-3.13.0.orig/drivers/mfd/tps65910.c +++ linux-3.13.0/drivers/mfd/tps65910.c @@ -255,8 +255,10 @@ ret = regmap_add_irq_chip(tps65910->regmap, tps65910->chip_irq, IRQF_ONESHOT, pdata->irq_base, tps6591x_irqs_chip, &tps65910->irq_data); - if (ret < 0) + if (ret < 0) { dev_warn(tps65910->dev, "Failed to add irq_chip %d\n", ret); + tps65910->chip_irq = 0; + } return ret; } --- linux-3.13.0.orig/drivers/misc/mei/amthif.c +++ linux-3.13.0/drivers/misc/mei/amthif.c @@ -177,7 +177,7 @@ unsigned long timeout; int i; - /* Only Posible if we are in timeout */ + /* Only possible if we are in timeout */ if (!cl || cl != &dev->iamthif_cl) { dev_dbg(&dev->pdev->dev, "bad file ext.\n"); return -ETIMEDOUT; @@ -249,7 +249,7 @@ cb->response_buffer.size); dev_dbg(&dev->pdev->dev, "amthif cb->buf_idx - %lu\n", cb->buf_idx); - /* length is being turncated to PAGE_SIZE, however, + /* length is being truncated to PAGE_SIZE, however, * the buf_idx may point beyond */ length = min_t(size_t, length, (cb->buf_idx - *offset)); @@ -316,6 +316,7 @@ mei_hdr.host_addr = dev->iamthif_cl.host_client_id; mei_hdr.me_addr = dev->iamthif_cl.me_client_id; mei_hdr.reserved = 0; + mei_hdr.internal = 0; dev->iamthif_msg_buf_index += mei_hdr.length; ret = mei_write_message(dev, &mei_hdr, dev->iamthif_msg_buf); if (ret) @@ -477,6 +478,7 @@ mei_hdr.host_addr = cl->host_client_id; mei_hdr.me_addr = cl->me_client_id; mei_hdr.reserved = 0; + mei_hdr.internal = 0; if (*slots >= msg_slots) { mei_hdr.length = len; --- linux-3.13.0.orig/drivers/misc/mei/bus.c +++ linux-3.13.0/drivers/misc/mei/bus.c @@ -71,7 +71,7 @@ dev_dbg(dev, "Device probe\n"); - strncpy(id.name, dev_name(dev), sizeof(id.name)); + strlcpy(id.name, dev_name(dev), sizeof(id.name)); return driver->probe(device, &id); } --- linux-3.13.0.orig/drivers/misc/mei/client.c +++ linux-3.13.0/drivers/misc/mei/client.c @@ -74,23 +74,69 @@ /** - * mei_io_list_flush - removes list entry belonging to cl. + * mei_cl_cmp_id - tells if the clients are the same * - * @list: An instance of our list structure - * @cl: host client + * @cl1: host client 1 + * @cl2: host client 2 + * + * returns true - if the clients has same host and me ids + * false - otherwise */ -void mei_io_list_flush(struct mei_cl_cb *list, struct mei_cl *cl) +static inline bool mei_cl_cmp_id(const struct mei_cl *cl1, + const struct mei_cl *cl2) +{ + return cl1 && cl2 && + (cl1->host_client_id == cl2->host_client_id) && + (cl1->me_client_id == cl2->me_client_id); +} + +/** + * mei_io_list_flush - removes cbs belonging to cl. + * + * @list: an instance of our list structure + * @cl: host client, can be NULL for flushing the whole list + * @free: whether to free the cbs + */ +static void __mei_io_list_flush(struct mei_cl_cb *list, + struct mei_cl *cl, bool free) { struct mei_cl_cb *cb; struct mei_cl_cb *next; + /* enable removing everything if no cl is specified */ list_for_each_entry_safe(cb, next, &list->list, list) { - if (cb->cl && mei_cl_cmp_id(cl, cb->cl)) + if (!cl || (cb->cl && mei_cl_cmp_id(cl, cb->cl))) { list_del(&cb->list); + if (free) + mei_io_cb_free(cb); + } } } /** + * mei_io_list_flush - removes list entry belonging to cl. + * + * @list: An instance of our list structure + * @cl: host client + */ +static inline void mei_io_list_flush(struct mei_cl_cb *list, struct mei_cl *cl) +{ + __mei_io_list_flush(list, cl, false); +} + + +/** + * mei_io_list_free - removes cb belonging to cl and free them + * + * @list: An instance of our list structure + * @cl: host client + */ +static inline void mei_io_list_free(struct mei_cl_cb *list, struct mei_cl *cl) +{ + __mei_io_list_flush(list, cl, true); +} + +/** * mei_io_cb_free - free mei_cb_private related memory * * @cb: mei callback struct @@ -154,7 +200,7 @@ return 0; } /** - * mei_io_cb_alloc_resp_buf - allocate respose buffer + * mei_io_cb_alloc_resp_buf - allocate response buffer * * @cb: io callback structure * @length: size of the buffer @@ -196,8 +242,8 @@ cl_dbg(dev, cl, "remove list entry belonging to cl\n"); mei_io_list_flush(&cl->dev->read_list, cl); - mei_io_list_flush(&cl->dev->write_list, cl); - mei_io_list_flush(&cl->dev->write_waiting_list, cl); + mei_io_list_free(&cl->dev->write_list, cl); + mei_io_list_free(&cl->dev->write_waiting_list, cl); mei_io_list_flush(&cl->dev->ctrl_wr_list, cl); mei_io_list_flush(&cl->dev->ctrl_rd_list, cl); mei_io_list_flush(&cl->dev->amthif_cmd_list, cl); @@ -207,7 +253,7 @@ /** - * mei_cl_init - initializes intialize cl. + * mei_cl_init - initializes cl. * * @cl: host client to be initialized * @dev: mei device @@ -263,10 +309,10 @@ return NULL; } -/** mei_cl_link: allocte host id in the host map +/** mei_cl_link: allocate host id in the host map * * @cl - host client - * @id - fixed host id or -1 for genereting one + * @id - fixed host id or -1 for generic one * * returns 0 on success * -EINVAL on incorrect values @@ -282,19 +328,19 @@ dev = cl->dev; - /* If Id is not asigned get one*/ + /* If Id is not assigned get one*/ if (id == MEI_HOST_CLIENT_ID_ANY) id = find_first_zero_bit(dev->host_clients_map, MEI_CLIENTS_MAX); if (id >= MEI_CLIENTS_MAX) { - dev_err(&dev->pdev->dev, "id exceded %d", MEI_CLIENTS_MAX) ; + dev_err(&dev->pdev->dev, "id exceeded %d", MEI_CLIENTS_MAX); return -EMFILE; } open_handle_count = dev->open_handle_count + dev->iamthif_open_count; if (open_handle_count >= MEI_MAX_OPEN_HANDLE_COUNT) { - dev_err(&dev->pdev->dev, "open_handle_count exceded %d", + dev_err(&dev->pdev->dev, "open_handle_count exceeded %d", MEI_MAX_OPEN_HANDLE_COUNT); return -EMFILE; } @@ -344,8 +390,6 @@ cl->state = MEI_FILE_INITIALIZING; - list_del_init(&cl->link); - return 0; } @@ -372,13 +416,14 @@ } dev->dev_state = MEI_DEV_ENABLED; + dev->reset_count = 0; mutex_unlock(&dev->device_lock); } /** - * mei_cl_disconnect - disconnect host clinet form the me one + * mei_cl_disconnect - disconnect host client from the me one * * @cl: host client * @@ -390,7 +435,7 @@ { struct mei_device *dev; struct mei_cl_cb *cb; - int rets, err; + int rets; if (WARN_ON(!cl || !cl->dev)) return -ENODEV; @@ -414,6 +459,7 @@ cl_err(dev, cl, "failed to disconnect.\n"); goto free; } + cl->timer_count = MEI_CONNECT_TIMEOUT; mdelay(10); /* Wait for hardware disconnection ready */ list_add_tail(&cb->list, &dev->ctrl_rd_list.list); } else { @@ -423,24 +469,18 @@ } mutex_unlock(&dev->device_lock); - err = wait_event_timeout(dev->wait_recvd_msg, + wait_event_timeout(dev->wait_recvd_msg, MEI_FILE_DISCONNECTED == cl->state, mei_secs_to_jiffies(MEI_CL_CONNECT_TIMEOUT)); mutex_lock(&dev->device_lock); + if (MEI_FILE_DISCONNECTED == cl->state) { rets = 0; cl_dbg(dev, cl, "successfully disconnected from FW client.\n"); } else { - rets = -ENODEV; - if (MEI_FILE_DISCONNECTED != cl->state) - cl_err(dev, cl, "wrong status client disconnect.\n"); - - if (err) - cl_dbg(dev, cl, "wait failed disconnect err=%08x\n", - err); - - cl_err(dev, cl, "failed to disconnect from FW client.\n"); + cl_dbg(dev, cl, "timeout on disconnect from FW client.\n"); + rets = -ETIME; } mei_io_list_flush(&dev->ctrl_rd_list, cl); @@ -457,7 +497,7 @@ * * @cl: private data of the file object * - * returns ture if other client is connected, 0 - otherwise. + * returns true if other client is connected, false - otherwise. */ bool mei_cl_is_other_connecting(struct mei_cl *cl) { @@ -481,7 +521,7 @@ } /** - * mei_cl_connect - connect host clinet to the me one + * mei_cl_connect - connect host client to the me one * * @cl: host client * @@ -667,7 +707,6 @@ goto err; cb->fop_type = MEI_FOP_READ; - cl->read_cb = cb; if (dev->hbuf_is_ready) { dev->hbuf_is_ready = false; if (mei_hbm_cl_flow_control_req(dev, cl)) { @@ -679,6 +718,9 @@ } else { list_add_tail(&cb->list, &dev->ctrl_wr_list.list); } + + cl->read_cb = cb; + return rets; err: mei_io_cb_free(cb); @@ -729,6 +771,7 @@ mei_hdr.host_addr = cl->host_client_id; mei_hdr.me_addr = cl->me_client_id; mei_hdr.reserved = 0; + mei_hdr.internal = cb->internal; if (*slots >= msg_slots) { mei_hdr.length = len; @@ -775,7 +818,7 @@ * @cl: host client * @cl: write callback with filled data * - * returns numbe of bytes sent on success, <0 on failure. + * returns number of bytes sent on success, <0 on failure. */ int mei_cl_write(struct mei_cl *cl, struct mei_cl_cb *cb, bool blocking) { @@ -828,6 +871,7 @@ mei_hdr.host_addr = cl->host_client_id; mei_hdr.me_addr = cl->me_client_id; mei_hdr.reserved = 0; + mei_hdr.internal = cb->internal; rets = mei_write_message(dev, &mei_hdr, buf->data); @@ -907,7 +951,6 @@ list_for_each_entry_safe(cl, next, &dev->file_list, link) { cl->state = MEI_FILE_DISCONNECTED; cl->mei_flow_ctrl_creds = 0; - cl->read_cb = NULL; cl->timer_count = 0; } } @@ -940,12 +983,8 @@ */ void mei_cl_all_write_clear(struct mei_device *dev) { - struct mei_cl_cb *cb, *next; - - list_for_each_entry_safe(cb, next, &dev->write_list.list, list) { - list_del(&cb->list); - mei_io_cb_free(cb); - } + mei_io_list_free(&dev->write_list, NULL); + mei_io_list_free(&dev->write_waiting_list, NULL); } --- linux-3.13.0.orig/drivers/misc/mei/client.h +++ linux-3.13.0/drivers/misc/mei/client.h @@ -45,8 +45,6 @@ { INIT_LIST_HEAD(&list->list); } -void mei_io_list_flush(struct mei_cl_cb *list, struct mei_cl *cl); - /* * MEI Host Client Functions */ @@ -61,22 +59,6 @@ int mei_cl_flush_queues(struct mei_cl *cl); struct mei_cl_cb *mei_cl_find_read_cb(struct mei_cl *cl); -/** - * mei_cl_cmp_id - tells if file private data have same id - * - * @fe1: private data of 1. file object - * @fe2: private data of 2. file object - * - * returns true - if ids are the same and not NULL - */ -static inline bool mei_cl_cmp_id(const struct mei_cl *cl1, - const struct mei_cl *cl2) -{ - return cl1 && cl2 && - (cl1->host_client_id == cl2->host_client_id) && - (cl1->me_client_id == cl2->me_client_id); -} - int mei_cl_flow_ctrl_creds(struct mei_cl *cl); --- linux-3.13.0.orig/drivers/misc/mei/debugfs.c +++ linux-3.13.0/drivers/misc/mei/debugfs.c @@ -43,7 +43,7 @@ mutex_lock(&dev->device_lock); - /* if the driver is not enabled the list won't b consitent */ + /* if the driver is not enabled the list won't be consistent */ if (dev->dev_state != MEI_DEV_ENABLED) goto out; @@ -101,7 +101,7 @@ /** * mei_dbgfs_deregister - Remove the debugfs files and directories - * @mei - pointer to mei device private dat + * @mei - pointer to mei device private data */ void mei_dbgfs_deregister(struct mei_device *dev) { --- linux-3.13.0.orig/drivers/misc/mei/hbm.c +++ linux-3.13.0/drivers/misc/mei/hbm.c @@ -28,9 +28,9 @@ * * @dev: the device structure * - * returns none. + * returns 0 on success -ENOMEM on allocation failure */ -static void mei_hbm_me_cl_allocate(struct mei_device *dev) +static int mei_hbm_me_cl_allocate(struct mei_device *dev) { struct mei_me_client *clients; int b; @@ -44,7 +44,7 @@ dev->me_clients_num++; if (dev->me_clients_num == 0) - return; + return 0; kfree(dev->me_clients); dev->me_clients = NULL; @@ -56,12 +56,10 @@ sizeof(struct mei_me_client), GFP_KERNEL); if (!clients) { dev_err(&dev->pdev->dev, "memory allocation for ME clients failed.\n"); - dev->dev_state = MEI_DEV_RESETTING; - mei_reset(dev, 1); - return; + return -ENOMEM; } dev->me_clients = clients; - return; + return 0; } /** @@ -85,12 +83,12 @@ } /** - * same_disconn_addr - tells if they have the same address + * mei_hbm_cl_addr_equal - tells if they have the same address * - * @file: private data of the file object. - * @disconn: disconnection request. + * @cl: - client + * @buf: buffer with cl header * - * returns true if addres are same + * returns true if addresses are the same */ static inline bool mei_hbm_cl_addr_equal(struct mei_cl *cl, void *buf) @@ -128,6 +126,17 @@ return false; } +/** + * mei_hbm_idle - set hbm to idle state + * + * @dev: the device structure + */ +void mei_hbm_idle(struct mei_device *dev) +{ + dev->init_clients_timer = 0; + dev->hbm_state = MEI_HBM_IDLE; +} + int mei_hbm_start_wait(struct mei_device *dev) { int ret; @@ -137,7 +146,7 @@ mutex_unlock(&dev->device_lock); ret = wait_event_interruptible_timeout(dev->wait_recvd_msg, dev->hbm_state == MEI_HBM_IDLE || - dev->hbm_state > MEI_HBM_START, + dev->hbm_state >= MEI_HBM_STARTED, mei_secs_to_jiffies(MEI_INTEROP_TIMEOUT)); mutex_lock(&dev->device_lock); @@ -153,12 +162,15 @@ * mei_hbm_start_req - sends start request message. * * @dev: the device structure + * + * returns 0 on success and < 0 on failure */ int mei_hbm_start_req(struct mei_device *dev) { struct mei_msg_hdr *mei_hdr = &dev->wr_msg.hdr; struct hbm_host_version_request *start_req; const size_t len = sizeof(struct hbm_host_version_request); + int ret; mei_hbm_hdr(mei_hdr, len); @@ -170,12 +182,13 @@ start_req->host_version.minor_version = HBM_MINOR_VERSION; dev->hbm_state = MEI_HBM_IDLE; - if (mei_write_message(dev, mei_hdr, dev->wr_msg.data)) { - dev_err(&dev->pdev->dev, "version message write failed\n"); - dev->dev_state = MEI_DEV_RESETTING; - mei_reset(dev, 1); - return -EIO; + ret = mei_write_message(dev, mei_hdr, dev->wr_msg.data); + if (ret) { + dev_err(&dev->pdev->dev, "version message write failed: ret = %d\n", + ret); + return ret; } + dev->hbm_state = MEI_HBM_START; dev->init_clients_timer = MEI_CLIENTS_INIT_TIMEOUT; return 0; @@ -186,13 +199,15 @@ * * @dev: the device structure * - * returns none. + * returns 0 on success and < 0 on failure */ -static void mei_hbm_enum_clients_req(struct mei_device *dev) +static int mei_hbm_enum_clients_req(struct mei_device *dev) { struct mei_msg_hdr *mei_hdr = &dev->wr_msg.hdr; struct hbm_host_enum_request *enum_req; const size_t len = sizeof(struct hbm_host_enum_request); + int ret; + /* enumerate clients */ mei_hbm_hdr(mei_hdr, len); @@ -200,14 +215,15 @@ memset(enum_req, 0, len); enum_req->hbm_cmd = HOST_ENUM_REQ_CMD; - if (mei_write_message(dev, mei_hdr, dev->wr_msg.data)) { - dev->dev_state = MEI_DEV_RESETTING; - dev_err(&dev->pdev->dev, "enumeration request write failed.\n"); - mei_reset(dev, 1); + ret = mei_write_message(dev, mei_hdr, dev->wr_msg.data); + if (ret) { + dev_err(&dev->pdev->dev, "enumeration request write failed: ret = %d.\n", + ret); + return ret; } dev->hbm_state = MEI_HBM_ENUM_CLIENTS; dev->init_clients_timer = MEI_CLIENTS_INIT_TIMEOUT; - return; + return 0; } /** @@ -215,7 +231,7 @@ * * @dev: the device structure * - * returns none. + * returns 0 on success and < 0 on failure */ static int mei_hbm_prop_req(struct mei_device *dev) @@ -226,7 +242,7 @@ const size_t len = sizeof(struct hbm_props_request); unsigned long next_client_index; unsigned long client_num; - + int ret; client_num = dev->me_client_presentation_num; @@ -253,12 +269,11 @@ prop_req->hbm_cmd = HOST_CLIENT_PROPERTIES_REQ_CMD; prop_req->address = next_client_index; - if (mei_write_message(dev, mei_hdr, dev->wr_msg.data)) { - dev->dev_state = MEI_DEV_RESETTING; - dev_err(&dev->pdev->dev, "properties request write failed\n"); - mei_reset(dev, 1); - - return -EIO; + ret = mei_write_message(dev, mei_hdr, dev->wr_msg.data); + if (ret) { + dev_err(&dev->pdev->dev, "properties request write failed: ret = %d\n", + ret); + return ret; } dev->init_clients_timer = MEI_CLIENTS_INIT_TIMEOUT; @@ -268,7 +283,7 @@ } /** - * mei_hbm_stop_req_prepare - perpare stop request message + * mei_hbm_stop_req_prepare - prepare stop request message * * @dev - mei device * @mei_hdr - mei message header @@ -289,7 +304,7 @@ } /** - * mei_hbm_cl_flow_control_req - sends flow control requst. + * mei_hbm_cl_flow_control_req - sends flow control request. * * @dev: the device structure * @cl: client info @@ -451,7 +466,7 @@ } /** - * mei_hbm_cl_connect_res - connect resposne from the ME + * mei_hbm_cl_connect_res - connect response from the ME * * @dev: the device structure * @rs: connect response bus message @@ -505,8 +520,8 @@ /** - * mei_hbm_fw_disconnect_req - disconnect request initiated by me - * host sends disoconnect response + * mei_hbm_fw_disconnect_req - disconnect request initiated by ME firmware + * host sends disconnect response * * @dev: the device structure. * @disconnect_req: disconnect request bus message from the me @@ -559,8 +574,10 @@ * * @dev: the device structure * @mei_hdr: header of bus message + * + * returns 0 on success and < 0 on failure */ -void mei_hbm_dispatch(struct mei_device *dev, struct mei_msg_hdr *hdr) +int mei_hbm_dispatch(struct mei_device *dev, struct mei_msg_hdr *hdr) { struct mei_bus_message *mei_msg; struct mei_me_client *me_client; @@ -577,8 +594,20 @@ mei_read_slots(dev, dev->rd_msg_buf, hdr->length); mei_msg = (struct mei_bus_message *)dev->rd_msg_buf; + /* ignore spurious message and prevent reset nesting + * hbm is put to idle during system reset + */ + if (dev->hbm_state == MEI_HBM_IDLE) { + dev_dbg(&dev->pdev->dev, "hbm: state is idle ignore spurious messages\n"); + return 0; + } + switch (mei_msg->hbm_cmd) { case HOST_START_RES_CMD: + dev_dbg(&dev->pdev->dev, "hbm: start: response message received.\n"); + + dev->init_clients_timer = 0; + version_res = (struct hbm_host_version_response *)mei_msg; dev_dbg(&dev->pdev->dev, "HBM VERSION: DRIVER=%02d:%02d DEVICE=%02d:%02d\n", @@ -597,73 +626,89 @@ } if (!mei_hbm_version_is_supported(dev)) { - dev_warn(&dev->pdev->dev, "hbm version mismatch: stopping the driver.\n"); + dev_warn(&dev->pdev->dev, "hbm: start: version mismatch - stopping the driver.\n"); - dev->hbm_state = MEI_HBM_STOP; + dev->hbm_state = MEI_HBM_STOPPED; mei_hbm_stop_req_prepare(dev, &dev->wr_msg.hdr, dev->wr_msg.data); - mei_write_message(dev, &dev->wr_msg.hdr, - dev->wr_msg.data); + if (mei_write_message(dev, &dev->wr_msg.hdr, + dev->wr_msg.data)) { + dev_err(&dev->pdev->dev, "hbm: start: failed to send stop request\n"); + return -EIO; + } + break; + } - return; + if (dev->dev_state != MEI_DEV_INIT_CLIENTS || + dev->hbm_state != MEI_HBM_START) { + dev_err(&dev->pdev->dev, "hbm: start: state mismatch, [%d, %d]\n", + dev->dev_state, dev->hbm_state); + return -EPROTO; } - if (dev->dev_state == MEI_DEV_INIT_CLIENTS && - dev->hbm_state == MEI_HBM_START) { - dev->init_clients_timer = 0; - mei_hbm_enum_clients_req(dev); - } else { - dev_err(&dev->pdev->dev, "reset: wrong host start response\n"); - mei_reset(dev, 1); - return; + dev->hbm_state = MEI_HBM_STARTED; + + if (mei_hbm_enum_clients_req(dev)) { + dev_err(&dev->pdev->dev, "hbm: start: failed to send enumeration request\n"); + return -EIO; } wake_up_interruptible(&dev->wait_recvd_msg); - dev_dbg(&dev->pdev->dev, "host start response message received.\n"); break; case CLIENT_CONNECT_RES_CMD: + dev_dbg(&dev->pdev->dev, "hbm: client connect response: message received.\n"); + connect_res = (struct hbm_client_connect_response *) mei_msg; mei_hbm_cl_connect_res(dev, connect_res); - dev_dbg(&dev->pdev->dev, "client connect response message received.\n"); wake_up(&dev->wait_recvd_msg); break; case CLIENT_DISCONNECT_RES_CMD: + dev_dbg(&dev->pdev->dev, "hbm: client disconnect response: message received.\n"); + disconnect_res = (struct hbm_client_connect_response *) mei_msg; mei_hbm_cl_disconnect_res(dev, disconnect_res); - dev_dbg(&dev->pdev->dev, "client disconnect response message received.\n"); wake_up(&dev->wait_recvd_msg); break; case MEI_FLOW_CONTROL_CMD: + dev_dbg(&dev->pdev->dev, "hbm: client flow control response: message received.\n"); + flow_control = (struct hbm_flow_control *) mei_msg; mei_hbm_cl_flow_control_res(dev, flow_control); - dev_dbg(&dev->pdev->dev, "client flow control response message received.\n"); break; case HOST_CLIENT_PROPERTIES_RES_CMD: + dev_dbg(&dev->pdev->dev, "hbm: properties response: message received.\n"); + + dev->init_clients_timer = 0; + + if (dev->me_clients == NULL) { + dev_err(&dev->pdev->dev, "hbm: properties response: mei_clients not allocated\n"); + return -EPROTO; + } + props_res = (struct hbm_props_response *)mei_msg; me_client = &dev->me_clients[dev->me_client_presentation_num]; - if (props_res->status || !dev->me_clients) { - dev_err(&dev->pdev->dev, "reset: properties response hbm wrong status.\n"); - mei_reset(dev, 1); - return; + if (props_res->status) { + dev_err(&dev->pdev->dev, "hbm: properties response: wrong status = %d\n", + props_res->status); + return -EPROTO; } if (me_client->client_id != props_res->address) { - dev_err(&dev->pdev->dev, "reset: host properties response address mismatch\n"); - mei_reset(dev, 1); - return; + dev_err(&dev->pdev->dev, "hbm: properties response: address mismatch %d ?= %d\n", + me_client->client_id, props_res->address); + return -EPROTO; } if (dev->dev_state != MEI_DEV_INIT_CLIENTS || dev->hbm_state != MEI_HBM_CLIENT_PROPERTIES) { - dev_err(&dev->pdev->dev, "reset: unexpected properties response\n"); - mei_reset(dev, 1); - - return; + dev_err(&dev->pdev->dev, "hbm: properties response: state mismatch, [%d, %d]\n", + dev->dev_state, dev->hbm_state); + return -EPROTO; } me_client->props = props_res->client_properties; @@ -671,49 +716,70 @@ dev->me_client_presentation_num++; /* request property for the next client */ - mei_hbm_prop_req(dev); + if (mei_hbm_prop_req(dev)) + return -EIO; break; case HOST_ENUM_RES_CMD: + dev_dbg(&dev->pdev->dev, "hbm: enumeration response: message received\n"); + + dev->init_clients_timer = 0; + enum_res = (struct hbm_host_enum_response *) mei_msg; BUILD_BUG_ON(sizeof(dev->me_clients_map) < sizeof(enum_res->valid_addresses)); memcpy(dev->me_clients_map, enum_res->valid_addresses, sizeof(enum_res->valid_addresses)); - if (dev->dev_state == MEI_DEV_INIT_CLIENTS && - dev->hbm_state == MEI_HBM_ENUM_CLIENTS) { - dev->init_clients_timer = 0; - mei_hbm_me_cl_allocate(dev); - dev->hbm_state = MEI_HBM_CLIENT_PROPERTIES; - /* first property reqeust */ - mei_hbm_prop_req(dev); - } else { - dev_err(&dev->pdev->dev, "reset: unexpected enumeration response hbm.\n"); - mei_reset(dev, 1); - return; + if (dev->dev_state != MEI_DEV_INIT_CLIENTS || + dev->hbm_state != MEI_HBM_ENUM_CLIENTS) { + dev_err(&dev->pdev->dev, "hbm: enumeration response: state mismatch, [%d, %d]\n", + dev->dev_state, dev->hbm_state); + return -EPROTO; + } + + if (mei_hbm_me_cl_allocate(dev)) { + dev_err(&dev->pdev->dev, "hbm: enumeration response: cannot allocate clients array\n"); + return -ENOMEM; } + + dev->hbm_state = MEI_HBM_CLIENT_PROPERTIES; + + /* first property request */ + if (mei_hbm_prop_req(dev)) + return -EIO; + break; case HOST_STOP_RES_CMD: + dev_dbg(&dev->pdev->dev, "hbm: stop response: message received\n"); - if (dev->hbm_state != MEI_HBM_STOP) - dev_err(&dev->pdev->dev, "unexpected stop response hbm.\n"); - dev->dev_state = MEI_DEV_DISABLED; - dev_info(&dev->pdev->dev, "reset: FW stop response.\n"); - mei_reset(dev, 1); + dev->init_clients_timer = 0; + + if (dev->hbm_state != MEI_HBM_STOPPED) { + dev_err(&dev->pdev->dev, "hbm: stop response: state mismatch, [%d, %d]\n", + dev->dev_state, dev->hbm_state); + return -EPROTO; + } + + dev->dev_state = MEI_DEV_POWER_DOWN; + dev_info(&dev->pdev->dev, "hbm: stop response: resetting.\n"); + /* force the reset */ + return -EPROTO; break; case CLIENT_DISCONNECT_REQ_CMD: - /* search for client */ + dev_dbg(&dev->pdev->dev, "hbm: disconnect request: message received\n"); + disconnect_req = (struct hbm_client_connect_request *)mei_msg; mei_hbm_fw_disconnect_req(dev, disconnect_req); break; case ME_STOP_REQ_CMD: + dev_dbg(&dev->pdev->dev, "hbm: stop request: message received\n"); - dev->hbm_state = MEI_HBM_STOP; + dev->hbm_state = MEI_HBM_STOPPED; mei_hbm_stop_req_prepare(dev, &dev->wr_ext_msg.hdr, dev->wr_ext_msg.data); break; @@ -722,5 +788,6 @@ break; } + return 0; } --- linux-3.13.0.orig/drivers/misc/mei/hbm.h +++ linux-3.13.0/drivers/misc/mei/hbm.h @@ -32,13 +32,13 @@ enum mei_hbm_state { MEI_HBM_IDLE = 0, MEI_HBM_START, + MEI_HBM_STARTED, MEI_HBM_ENUM_CLIENTS, MEI_HBM_CLIENT_PROPERTIES, - MEI_HBM_STARTED, - MEI_HBM_STOP, + MEI_HBM_STOPPED, }; -void mei_hbm_dispatch(struct mei_device *dev, struct mei_msg_hdr *hdr); +int mei_hbm_dispatch(struct mei_device *dev, struct mei_msg_hdr *hdr); static inline void mei_hbm_hdr(struct mei_msg_hdr *hdr, size_t length) { @@ -49,6 +49,7 @@ hdr->reserved = 0; } +void mei_hbm_idle(struct mei_device *dev); int mei_hbm_start_req(struct mei_device *dev); int mei_hbm_start_wait(struct mei_device *dev); int mei_hbm_cl_flow_control_req(struct mei_device *dev, struct mei_cl *cl); --- linux-3.13.0.orig/drivers/misc/mei/hw-me-regs.h +++ linux-3.13.0/drivers/misc/mei/hw-me-regs.h @@ -115,6 +115,11 @@ #define MEI_DEV_ID_LPT_HR 0x8CBA /* Lynx Point H Refresh */ #define MEI_DEV_ID_WPT_LP 0x9CBA /* Wildcat Point LP */ + +/* Host Firmware Status Registers in PCI Config Space */ +#define PCI_CFG_HFS_1 0x40 +#define PCI_CFG_HFS_2 0x48 + /* * MEI HW Section */ --- linux-3.13.0.orig/drivers/misc/mei/hw-me.c +++ linux-3.13.0/drivers/misc/mei/hw-me.c @@ -183,9 +183,22 @@ else hcsr &= ~H_IE; + dev->recvd_hw_ready = false; mei_me_reg_write(hw, H_CSR, hcsr); - if (dev->dev_state == MEI_DEV_POWER_DOWN) + /* + * Host reads the H_CSR once to ensure that the + * posted write to H_CSR completes. + */ + hcsr = mei_hcsr_read(hw); + + if ((hcsr & H_RST) == 0) + dev_warn(&dev->pdev->dev, "H_RST is not set = 0x%08X", hcsr); + + if ((hcsr & H_RDY) == H_RDY) + dev_warn(&dev->pdev->dev, "H_RDY is not cleared 0x%08X", hcsr); + + if (intr_enable == false) mei_me_hw_reset_release(dev); return 0; @@ -233,10 +246,6 @@ static int mei_me_hw_ready_wait(struct mei_device *dev) { int err; - if (mei_me_hw_is_ready(dev)) - return 0; - - dev->recvd_hw_ready = false; mutex_unlock(&dev->device_lock); err = wait_event_interruptible_timeout(dev->wait_hw_ready, dev->recvd_hw_ready, @@ -469,7 +478,7 @@ struct mei_device *dev = (struct mei_device *) dev_id; struct mei_cl_cb complete_list; s32 slots; - int rets; + int rets = 0; dev_dbg(&dev->pdev->dev, "function called after ISR to handle the interrupt processing.\n"); /* initialize our complete list */ @@ -482,15 +491,10 @@ mei_clear_interrupts(dev); /* check if ME wants a reset */ - if (!mei_hw_is_ready(dev) && - dev->dev_state != MEI_DEV_RESETTING && - dev->dev_state != MEI_DEV_INITIALIZING && - dev->dev_state != MEI_DEV_POWER_DOWN && - dev->dev_state != MEI_DEV_POWER_UP) { - dev_dbg(&dev->pdev->dev, "FW not ready.\n"); - mei_reset(dev, 1); - mutex_unlock(&dev->device_lock); - return IRQ_HANDLED; + if (!mei_hw_is_ready(dev) && dev->dev_state != MEI_DEV_RESETTING) { + dev_warn(&dev->pdev->dev, "FW not ready: resetting.\n"); + schedule_work(&dev->reset_work); + goto end; } /* check if we need to start the dev */ @@ -500,15 +504,12 @@ dev->recvd_hw_ready = true; wake_up_interruptible(&dev->wait_hw_ready); - - mutex_unlock(&dev->device_lock); - return IRQ_HANDLED; } else { + dev_dbg(&dev->pdev->dev, "Reset Completed.\n"); mei_me_hw_reset_release(dev); - mutex_unlock(&dev->device_lock); - return IRQ_HANDLED; } + goto end; } /* check slots available for reading */ slots = mei_count_full_read_slots(dev); @@ -516,21 +517,23 @@ /* we have urgent data to send so break the read */ if (dev->wr_ext_msg.hdr.length) break; - dev_dbg(&dev->pdev->dev, "slots =%08x\n", slots); - dev_dbg(&dev->pdev->dev, "call mei_irq_read_handler.\n"); + dev_dbg(&dev->pdev->dev, "slots to read = %08x\n", slots); rets = mei_irq_read_handler(dev, &complete_list, &slots); - if (rets) + if (rets && dev->dev_state != MEI_DEV_RESETTING) { + schedule_work(&dev->reset_work); goto end; + } } + rets = mei_irq_write_handler(dev, &complete_list); -end: - dev_dbg(&dev->pdev->dev, "end of bottom half function.\n"); - dev->hbuf_is_ready = mei_hbuf_is_ready(dev); - mutex_unlock(&dev->device_lock); + dev->hbuf_is_ready = mei_hbuf_is_ready(dev); mei_irq_compl_handler(dev, &complete_list); +end: + dev_dbg(&dev->pdev->dev, "interrupt thread end ret = %d\n", rets); + mutex_unlock(&dev->device_lock); return IRQ_HANDLED; } static const struct mei_hw_ops mei_me_hw_ops = { --- linux-3.13.0.orig/drivers/misc/mei/hw.h +++ linux-3.13.0/drivers/misc/mei/hw.h @@ -111,7 +111,8 @@ u32 me_addr:8; u32 host_addr:8; u32 length:9; - u32 reserved:6; + u32 reserved:5; + u32 internal:1; u32 msg_complete:1; } __packed; --- linux-3.13.0.orig/drivers/misc/mei/init.c +++ linux-3.13.0/drivers/misc/mei/init.c @@ -43,41 +43,119 @@ #undef MEI_DEV_STATE } -void mei_device_init(struct mei_device *dev) -{ - /* setup our list array */ - INIT_LIST_HEAD(&dev->file_list); - INIT_LIST_HEAD(&dev->device_list); - mutex_init(&dev->device_lock); - init_waitqueue_head(&dev->wait_hw_ready); - init_waitqueue_head(&dev->wait_recvd_msg); - init_waitqueue_head(&dev->wait_stop_wd); - dev->dev_state = MEI_DEV_INITIALIZING; - mei_io_list_init(&dev->read_list); - mei_io_list_init(&dev->write_list); - mei_io_list_init(&dev->write_waiting_list); - mei_io_list_init(&dev->ctrl_wr_list); - mei_io_list_init(&dev->ctrl_rd_list); +/** + * mei_cancel_work. Cancel mei background jobs + * + * @dev: the device structure + * + * returns 0 on success or < 0 if the reset hasn't succeeded + */ +void mei_cancel_work(struct mei_device *dev) +{ + cancel_work_sync(&dev->init_work); + cancel_work_sync(&dev->reset_work); - INIT_DELAYED_WORK(&dev->timer_work, mei_timer); - INIT_WORK(&dev->init_work, mei_host_client_init); + cancel_delayed_work(&dev->timer_work); +} +EXPORT_SYMBOL_GPL(mei_cancel_work); - INIT_LIST_HEAD(&dev->wd_cl.link); - INIT_LIST_HEAD(&dev->iamthif_cl.link); - mei_io_list_init(&dev->amthif_cmd_list); - mei_io_list_init(&dev->amthif_rd_complete_list); +/** + * mei_reset - resets host and fw. + * + * @dev: the device structure + */ +int mei_reset(struct mei_device *dev) +{ + enum mei_dev_state state = dev->dev_state; + bool interrupts_enabled; + int ret; - bitmap_zero(dev->host_clients_map, MEI_CLIENTS_MAX); - dev->open_handle_count = 0; + if (state != MEI_DEV_INITIALIZING && + state != MEI_DEV_DISABLED && + state != MEI_DEV_POWER_DOWN && + state != MEI_DEV_POWER_UP) + dev_warn(&dev->pdev->dev, "unexpected reset: dev_state = %s\n", + mei_dev_state_str(state)); - /* - * Reserving the first client ID - * 0: Reserved for MEI Bus Message communications + /* we're already in reset, cancel the init timer + * if the reset was called due the hbm protocol error + * we need to call it before hw start + * so the hbm watchdog won't kick in */ - bitmap_set(dev->host_clients_map, 0, 1); + mei_hbm_idle(dev); + + /* enter reset flow */ + interrupts_enabled = state != MEI_DEV_POWER_DOWN; + dev->dev_state = MEI_DEV_RESETTING; + + dev->reset_count++; + if (dev->reset_count > MEI_MAX_CONSEC_RESET) { + dev_err(&dev->pdev->dev, "reset: reached maximal consecutive resets: disabling the device\n"); + dev->dev_state = MEI_DEV_DISABLED; + return -ENODEV; + } + + ret = mei_hw_reset(dev, interrupts_enabled); + /* fall through and remove the sw state even if hw reset has failed */ + + /* no need to clean up software state in case of power up */ + if (state != MEI_DEV_INITIALIZING && + state != MEI_DEV_POWER_UP) { + + /* remove all waiting requests */ + mei_cl_all_write_clear(dev); + + mei_cl_all_disconnect(dev); + + /* wake up all readers and writers so they can be interrupted */ + mei_cl_all_wakeup(dev); + + /* remove entry if already in list */ + dev_dbg(&dev->pdev->dev, "remove iamthif and wd from the file list.\n"); + mei_cl_unlink(&dev->wd_cl); + mei_cl_unlink(&dev->iamthif_cl); + mei_amthif_reset_params(dev); + memset(&dev->wr_ext_msg, 0, sizeof(dev->wr_ext_msg)); + } + + + dev->me_clients_num = 0; + dev->rd_msg_hdr = 0; + dev->wd_pending = false; + + if (ret) { + dev_err(&dev->pdev->dev, "hw_reset failed ret = %d\n", ret); + dev->dev_state = MEI_DEV_DISABLED; + return ret; + } + + if (state == MEI_DEV_POWER_DOWN) { + dev_dbg(&dev->pdev->dev, "powering down: end of reset\n"); + dev->dev_state = MEI_DEV_DISABLED; + return 0; + } + + ret = mei_hw_start(dev); + if (ret) { + dev_err(&dev->pdev->dev, "hw_start failed ret = %d\n", ret); + dev->dev_state = MEI_DEV_DISABLED; + return ret; + } + + dev_dbg(&dev->pdev->dev, "link is established start sending messages.\n"); + + dev->dev_state = MEI_DEV_INIT_CLIENTS; + ret = mei_hbm_start_req(dev); + if (ret) { + dev_err(&dev->pdev->dev, "hbm_start failed ret = %d\n", ret); + dev->dev_state = MEI_DEV_DISABLED; + return ret; + } + + return 0; } -EXPORT_SYMBOL_GPL(mei_device_init); +EXPORT_SYMBOL_GPL(mei_reset); /** * mei_start - initializes host and fw to start work. @@ -90,14 +168,21 @@ { mutex_lock(&dev->device_lock); - /* acknowledge interrupt and stop interupts */ + /* acknowledge interrupt and stop interrupts */ mei_clear_interrupts(dev); mei_hw_config(dev); dev_dbg(&dev->pdev->dev, "reset in start the mei device.\n"); - mei_reset(dev, 1); + dev->dev_state = MEI_DEV_INITIALIZING; + dev->reset_count = 0; + mei_reset(dev); + + if (dev->dev_state == MEI_DEV_DISABLED) { + dev_err(&dev->pdev->dev, "reset failed"); + goto err; + } if (mei_hbm_start_wait(dev)) { dev_err(&dev->pdev->dev, "HBM haven't started"); @@ -132,101 +217,64 @@ EXPORT_SYMBOL_GPL(mei_start); /** - * mei_reset - resets host and fw. + * mei_restart - restart device after suspend * * @dev: the device structure - * @interrupts_enabled: if interrupt should be enabled after reset. + * + * returns 0 on success or -ENODEV if the restart hasn't succeeded */ -void mei_reset(struct mei_device *dev, int interrupts_enabled) +int mei_restart(struct mei_device *dev) { - bool unexpected; - int ret; - - unexpected = (dev->dev_state != MEI_DEV_INITIALIZING && - dev->dev_state != MEI_DEV_DISABLED && - dev->dev_state != MEI_DEV_POWER_DOWN && - dev->dev_state != MEI_DEV_POWER_UP); + int err; - if (unexpected) - dev_warn(&dev->pdev->dev, "unexpected reset: dev_state = %s\n", - mei_dev_state_str(dev->dev_state)); - - ret = mei_hw_reset(dev, interrupts_enabled); - if (ret) { - dev_err(&dev->pdev->dev, "hw reset failed disabling the device\n"); - interrupts_enabled = false; - dev->dev_state = MEI_DEV_DISABLED; - } - - dev->hbm_state = MEI_HBM_IDLE; + mutex_lock(&dev->device_lock); - if (dev->dev_state != MEI_DEV_INITIALIZING && - dev->dev_state != MEI_DEV_POWER_UP) { - if (dev->dev_state != MEI_DEV_DISABLED && - dev->dev_state != MEI_DEV_POWER_DOWN) - dev->dev_state = MEI_DEV_RESETTING; + mei_clear_interrupts(dev); - /* remove all waiting requests */ - mei_cl_all_write_clear(dev); + dev->dev_state = MEI_DEV_POWER_UP; + dev->reset_count = 0; - mei_cl_all_disconnect(dev); + err = mei_reset(dev); - /* wake up all readings so they can be interrupted */ - mei_cl_all_wakeup(dev); - - /* remove entry if already in list */ - dev_dbg(&dev->pdev->dev, "remove iamthif and wd from the file list.\n"); - mei_cl_unlink(&dev->wd_cl); - mei_cl_unlink(&dev->iamthif_cl); - mei_amthif_reset_params(dev); - memset(&dev->wr_ext_msg, 0, sizeof(dev->wr_ext_msg)); - } + mutex_unlock(&dev->device_lock); - /* we're already in reset, cancel the init timer */ - dev->init_clients_timer = 0; + if (err || dev->dev_state == MEI_DEV_DISABLED) + return -ENODEV; - dev->me_clients_num = 0; - dev->rd_msg_hdr = 0; - dev->wd_pending = false; + return 0; +} +EXPORT_SYMBOL_GPL(mei_restart); - if (!interrupts_enabled) { - dev_dbg(&dev->pdev->dev, "intr not enabled end of reset\n"); - return; - } - ret = mei_hw_start(dev); - if (ret) { - dev_err(&dev->pdev->dev, "hw_start failed disabling the device\n"); - dev->dev_state = MEI_DEV_DISABLED; - return; - } +static void mei_reset_work(struct work_struct *work) +{ + struct mei_device *dev = + container_of(work, struct mei_device, reset_work); - dev_dbg(&dev->pdev->dev, "link is established start sending messages.\n"); - /* link is established * start sending messages. */ + mutex_lock(&dev->device_lock); - dev->dev_state = MEI_DEV_INIT_CLIENTS; + mei_reset(dev); - mei_hbm_start_req(dev); + mutex_unlock(&dev->device_lock); + if (dev->dev_state == MEI_DEV_DISABLED) + dev_err(&dev->pdev->dev, "reset failed"); } -EXPORT_SYMBOL_GPL(mei_reset); void mei_stop(struct mei_device *dev) { dev_dbg(&dev->pdev->dev, "stopping the device.\n"); - flush_scheduled_work(); + mei_cancel_work(dev); - mutex_lock(&dev->device_lock); + mei_nfc_host_exit(dev); - cancel_delayed_work(&dev->timer_work); + mutex_lock(&dev->device_lock); mei_wd_stop(dev); - mei_nfc_host_exit(); - dev->dev_state = MEI_DEV_POWER_DOWN; - mei_reset(dev, 0); + mei_reset(dev); mutex_unlock(&dev->device_lock); @@ -236,3 +284,41 @@ +void mei_device_init(struct mei_device *dev) +{ + /* setup our list array */ + INIT_LIST_HEAD(&dev->file_list); + INIT_LIST_HEAD(&dev->device_list); + mutex_init(&dev->device_lock); + init_waitqueue_head(&dev->wait_hw_ready); + init_waitqueue_head(&dev->wait_recvd_msg); + init_waitqueue_head(&dev->wait_stop_wd); + dev->dev_state = MEI_DEV_INITIALIZING; + dev->reset_count = 0; + + mei_io_list_init(&dev->read_list); + mei_io_list_init(&dev->write_list); + mei_io_list_init(&dev->write_waiting_list); + mei_io_list_init(&dev->ctrl_wr_list); + mei_io_list_init(&dev->ctrl_rd_list); + + INIT_DELAYED_WORK(&dev->timer_work, mei_timer); + INIT_WORK(&dev->init_work, mei_host_client_init); + INIT_WORK(&dev->reset_work, mei_reset_work); + + INIT_LIST_HEAD(&dev->wd_cl.link); + INIT_LIST_HEAD(&dev->iamthif_cl.link); + mei_io_list_init(&dev->amthif_cmd_list); + mei_io_list_init(&dev->amthif_rd_complete_list); + + bitmap_zero(dev->host_clients_map, MEI_CLIENTS_MAX); + dev->open_handle_count = 0; + + /* + * Reserving the first client ID + * 0: Reserved for MEI Bus Message communications + */ + bitmap_set(dev->host_clients_map, 0, 1); +} +EXPORT_SYMBOL_GPL(mei_device_init); + --- linux-3.13.0.orig/drivers/misc/mei/interrupt.c +++ linux-3.13.0/drivers/misc/mei/interrupt.c @@ -31,7 +31,7 @@ /** - * mei_irq_compl_handler - dispatch complete handelers + * mei_irq_compl_handler - dispatch complete handlers * for the completed callbacks * * @dev - mei device @@ -301,13 +301,11 @@ struct mei_cl_cb *cmpl_list, s32 *slots) { struct mei_msg_hdr *mei_hdr; - struct mei_cl *cl_pos = NULL; - struct mei_cl *cl_next = NULL; - int ret = 0; + struct mei_cl *cl; + int ret; if (!dev->rd_msg_hdr) { dev->rd_msg_hdr = mei_read_hdr(dev); - dev_dbg(&dev->pdev->dev, "slots =%08x.\n", *slots); (*slots)--; dev_dbg(&dev->pdev->dev, "slots =%08x.\n", *slots); } @@ -315,61 +313,67 @@ dev_dbg(&dev->pdev->dev, MEI_HDR_FMT, MEI_HDR_PRM(mei_hdr)); if (mei_hdr->reserved || !dev->rd_msg_hdr) { - dev_dbg(&dev->pdev->dev, "corrupted message header.\n"); + dev_err(&dev->pdev->dev, "corrupted message header 0x%08X\n", + dev->rd_msg_hdr); ret = -EBADMSG; goto end; } - if (mei_hdr->host_addr || mei_hdr->me_addr) { - list_for_each_entry_safe(cl_pos, cl_next, - &dev->file_list, link) { - dev_dbg(&dev->pdev->dev, - "list_for_each_entry_safe read host" - " client = %d, ME client = %d\n", - cl_pos->host_client_id, - cl_pos->me_client_id); - if (mei_cl_hbm_equal(cl_pos, mei_hdr)) - break; - } - - if (&cl_pos->link == &dev->file_list) { - dev_dbg(&dev->pdev->dev, "corrupted message header\n"); - ret = -EBADMSG; - goto end; - } - } - if (((*slots) * sizeof(u32)) < mei_hdr->length) { - dev_err(&dev->pdev->dev, - "we can't read the message slots =%08x.\n", + if (mei_slots2data(*slots) < mei_hdr->length) { + dev_err(&dev->pdev->dev, "less data available than length=%08x.\n", *slots); /* we can't read the message */ ret = -ERANGE; goto end; } - /* decide where to read the message too */ - if (!mei_hdr->host_addr) { - dev_dbg(&dev->pdev->dev, "call mei_hbm_dispatch.\n"); - mei_hbm_dispatch(dev, mei_hdr); - dev_dbg(&dev->pdev->dev, "end mei_hbm_dispatch.\n"); - } else if (mei_hdr->host_addr == dev->iamthif_cl.host_client_id && - (MEI_FILE_CONNECTED == dev->iamthif_cl.state) && - (dev->iamthif_state == MEI_IAMTHIF_READING)) { + /* HBM message */ + if (mei_hdr->host_addr == 0 && mei_hdr->me_addr == 0) { + ret = mei_hbm_dispatch(dev, mei_hdr); + if (ret) { + dev_dbg(&dev->pdev->dev, "mei_hbm_dispatch failed ret = %d\n", + ret); + goto end; + } + goto reset_slots; + } - dev_dbg(&dev->pdev->dev, "call mei_amthif_irq_read_msg.\n"); - dev_dbg(&dev->pdev->dev, MEI_HDR_FMT, MEI_HDR_PRM(mei_hdr)); + /* find recipient cl */ + list_for_each_entry(cl, &dev->file_list, link) { + if (mei_cl_hbm_equal(cl, mei_hdr)) { + cl_dbg(dev, cl, "got a message\n"); + break; + } + } + + /* if no recipient cl was found we assume corrupted header */ + if (&cl->link == &dev->file_list) { + dev_err(&dev->pdev->dev, "no destination client found 0x%08X\n", + dev->rd_msg_hdr); + ret = -EBADMSG; + goto end; + } + + if (mei_hdr->host_addr == dev->iamthif_cl.host_client_id && + MEI_FILE_CONNECTED == dev->iamthif_cl.state && + dev->iamthif_state == MEI_IAMTHIF_READING) { ret = mei_amthif_irq_read_msg(dev, mei_hdr, cmpl_list); - if (ret) + if (ret) { + dev_err(&dev->pdev->dev, "mei_amthif_irq_read_msg failed = %d\n", + ret); goto end; + } } else { - dev_dbg(&dev->pdev->dev, "call mei_cl_irq_read_msg.\n"); - dev_dbg(&dev->pdev->dev, MEI_HDR_FMT, MEI_HDR_PRM(mei_hdr)); ret = mei_cl_irq_read_msg(dev, mei_hdr, cmpl_list); - if (ret) + if (ret) { + dev_err(&dev->pdev->dev, "mei_cl_irq_read_msg failed = %d\n", + ret); goto end; + } } +reset_slots: /* reset the number of slots and header */ *slots = mei_count_full_read_slots(dev); dev->rd_msg_hdr = 0; @@ -424,8 +428,7 @@ cl->status = 0; list_del(&cb->list); - if (MEI_WRITING == cl->writing_state && - cb->fop_type == MEI_FOP_WRITE && + if (cb->fop_type == MEI_FOP_WRITE && cl != &dev->iamthif_cl) { cl_dbg(dev, cl, "MEI WRITE COMPLETE\n"); cl->writing_state = MEI_WRITE_COMPLETE; @@ -533,7 +536,6 @@ * * @work: pointer to the work_struct structure * - * NOTE: This function is called by timer interrupt work */ void mei_timer(struct work_struct *work) { @@ -548,24 +550,30 @@ mutex_lock(&dev->device_lock); - if (dev->dev_state != MEI_DEV_ENABLED) { - if (dev->dev_state == MEI_DEV_INIT_CLIENTS) { - if (dev->init_clients_timer) { - if (--dev->init_clients_timer == 0) { - dev_err(&dev->pdev->dev, "reset: init clients timeout hbm_state = %d.\n", - dev->hbm_state); - mei_reset(dev, 1); - } + + /* Catch interrupt stalls during HBM init handshake */ + if (dev->dev_state == MEI_DEV_INIT_CLIENTS && + dev->hbm_state != MEI_HBM_IDLE) { + + if (dev->init_clients_timer) { + if (--dev->init_clients_timer == 0) { + dev_err(&dev->pdev->dev, "timer: init clients timeout hbm_state = %d.\n", + dev->hbm_state); + mei_reset(dev); + goto out; } } - goto out; } + + if (dev->dev_state != MEI_DEV_ENABLED) + goto out; + /*** connect/disconnect timeouts ***/ list_for_each_entry_safe(cl_pos, cl_next, &dev->file_list, link) { if (cl_pos->timer_count) { if (--cl_pos->timer_count == 0) { - dev_err(&dev->pdev->dev, "reset: connect/disconnect timeout.\n"); - mei_reset(dev, 1); + dev_err(&dev->pdev->dev, "timer: connect/disconnect timeout.\n"); + mei_reset(dev); goto out; } } @@ -573,8 +581,8 @@ if (dev->iamthif_stall_timer) { if (--dev->iamthif_stall_timer == 0) { - dev_err(&dev->pdev->dev, "reset: amthif hanged.\n"); - mei_reset(dev, 1); + dev_err(&dev->pdev->dev, "timer: amthif hanged.\n"); + mei_reset(dev); dev->iamthif_msg_buf_size = 0; dev->iamthif_msg_buf_index = 0; dev->iamthif_canceled = false; @@ -627,7 +635,8 @@ } } out: - schedule_delayed_work(&dev->timer_work, 2 * HZ); + if (dev->dev_state != MEI_DEV_DISABLED) + schedule_delayed_work(&dev->timer_work, 2 * HZ); mutex_unlock(&dev->device_lock); } --- linux-3.13.0.orig/drivers/misc/mei/main.c +++ linux-3.13.0/drivers/misc/mei/main.c @@ -48,7 +48,7 @@ * * @inode: pointer to inode structure * @file: pointer to file structure - e + * * returns 0 on success, <0 on error */ static int mei_open(struct inode *inode, struct file *file) @@ -653,8 +653,7 @@ goto out; } - if (MEI_WRITE_COMPLETE == cl->writing_state) - mask |= (POLLIN | POLLRDNORM); + mask |= (POLLIN | POLLRDNORM); out: mutex_unlock(&dev->device_lock); --- linux-3.13.0.orig/drivers/misc/mei/mei_dev.h +++ linux-3.13.0/drivers/misc/mei/mei_dev.h @@ -61,11 +61,16 @@ #define MEI_CLIENTS_MAX 256 /* + * maximum number of consecutive resets + */ +#define MEI_MAX_CONSEC_RESET 3 + +/* * Number of File descriptors/handles * that can be opened to the driver. * * Limit to 255: 256 Total Clients - * minus internal client for MEI Bus Messags + * minus internal client for MEI Bus Messages */ #define MEI_MAX_OPEN_HANDLE_COUNT (MEI_CLIENTS_MAX - 1) @@ -178,9 +183,10 @@ unsigned long buf_idx; unsigned long read_time; struct file *file_object; + u32 internal:1; }; -/* MEI client instance carried as file->pirvate_data*/ +/* MEI client instance carried as file->private_data*/ struct mei_cl { struct list_head link; struct mei_device *dev; @@ -326,6 +332,7 @@ /** * struct mei_device - MEI private device struct + * @reset_count - limits the number of consecutive resets * @hbm_state - state of host bus message protocol * @mem_addr - mem mapped base register address @@ -369,6 +376,7 @@ /* * mei device states */ + unsigned long reset_count; enum mei_dev_state dev_state; enum mei_hbm_state hbm_state; u16 init_clients_timer; @@ -427,6 +435,7 @@ bool iamthif_canceled; struct work_struct init_work; + struct work_struct reset_work; /* List of bus devices */ struct list_head device_list; @@ -456,13 +465,25 @@ return DIV_ROUND_UP(sizeof(struct mei_msg_hdr) + length, 4); } +/** + * mei_slots2data- get data in slots - bytes from slots + * @slots - number of available slots + * returns - number of bytes in slots + */ +static inline u32 mei_slots2data(int slots) +{ + return slots * 4; +} + /* * mei init function prototypes */ void mei_device_init(struct mei_device *dev); -void mei_reset(struct mei_device *dev, int interrupts); +int mei_reset(struct mei_device *dev); int mei_start(struct mei_device *dev); +int mei_restart(struct mei_device *dev); void mei_stop(struct mei_device *dev); +void mei_cancel_work(struct mei_device *dev); /* * MEI interrupt functions prototype @@ -510,7 +531,7 @@ * NFC functions */ int mei_nfc_host_init(struct mei_device *dev); -void mei_nfc_host_exit(void); +void mei_nfc_host_exit(struct mei_device *dev); /* * NFC Client UUID @@ -626,9 +647,9 @@ int mei_register(struct mei_device *dev); void mei_deregister(struct mei_device *dev); -#define MEI_HDR_FMT "hdr:host=%02d me=%02d len=%d comp=%1d" +#define MEI_HDR_FMT "hdr:host=%02d me=%02d len=%d internal=%1d comp=%1d" #define MEI_HDR_PRM(hdr) \ (hdr)->host_addr, (hdr)->me_addr, \ - (hdr)->length, (hdr)->msg_complete + (hdr)->length, (hdr)->internal, (hdr)->msg_complete #endif --- linux-3.13.0.orig/drivers/misc/mei/nfc.c +++ linux-3.13.0/drivers/misc/mei/nfc.c @@ -92,7 +92,7 @@ * @cl: NFC host client * @cl_info: NFC info host client * @init_work: perform connection to the info client - * @fw_ivn: NFC Intervace Version Number + * @fw_ivn: NFC Interface Version Number * @vendor_id: NFC manufacturer ID * @radio_type: NFC radio type */ @@ -163,7 +163,7 @@ return 0; default: - dev_err(&dev->pdev->dev, "Unknow radio type 0x%x\n", + dev_err(&dev->pdev->dev, "Unknown radio type 0x%x\n", ndev->radio_type); return -EINVAL; @@ -175,14 +175,14 @@ ndev->bus_name = "pn544"; return 0; default: - dev_err(&dev->pdev->dev, "Unknow radio type 0x%x\n", + dev_err(&dev->pdev->dev, "Unknown radio type 0x%x\n", ndev->radio_type); return -EINVAL; } default: - dev_err(&dev->pdev->dev, "Unknow vendor ID 0x%x\n", + dev_err(&dev->pdev->dev, "Unknown vendor ID 0x%x\n", ndev->vendor_id); return -EINVAL; @@ -428,7 +428,7 @@ mutex_unlock(&dev->device_lock); if (mei_nfc_if_version(ndev) < 0) { - dev_err(&dev->pdev->dev, "Could not get the NFC interfave version"); + dev_err(&dev->pdev->dev, "Could not get the NFC interface version"); goto err; } @@ -469,7 +469,9 @@ return; err: + mutex_lock(&dev->device_lock); mei_nfc_free(ndev); + mutex_unlock(&dev->device_lock); return; } @@ -481,7 +483,7 @@ struct mei_cl *cl_info, *cl = NULL; int i, ret; - /* already initialzed */ + /* already initialized */ if (ndev->cl_info) return 0; @@ -547,12 +549,16 @@ return ret; } -void mei_nfc_host_exit(void) +void mei_nfc_host_exit(struct mei_device *dev) { struct mei_nfc_dev *ndev = &nfc_dev; + cancel_work_sync(&ndev->init_work); + + mutex_lock(&dev->device_lock); if (ndev->cl && ndev->cl->device) mei_cl_remove_device(ndev->cl->device); mei_nfc_free(ndev); + mutex_unlock(&dev->device_lock); } --- linux-3.13.0.orig/drivers/misc/mei/pci-me.c +++ linux-3.13.0/drivers/misc/mei/pci-me.c @@ -43,6 +43,9 @@ #include "hw-me.h" #include "client.h" +static bool disable_msi; +module_param(disable_msi, bool, 0); + /* mei_pci_tbl - PCI Device ID Table */ static DEFINE_PCI_DEVICE_TABLE(mei_me_pci_tbl) = { {PCI_DEVICE(PCI_VENDOR_ID_INTEL, MEI_DEV_ID_82946GZ)}, @@ -100,15 +103,31 @@ const struct pci_device_id *ent) { u32 reg; - if (ent->device == MEI_DEV_ID_PBG_1) { - pci_read_config_dword(pdev, 0x48, ®); - /* make sure that bit 9 is up and bit 10 is down */ - if ((reg & 0x600) == 0x200) { - dev_info(&pdev->dev, "Device doesn't have valid ME Interface\n"); - return false; - } + /* Cougar Point || Patsburg */ + if (ent->device == MEI_DEV_ID_CPT_1 || + ent->device == MEI_DEV_ID_PBG_1) { + pci_read_config_dword(pdev, PCI_CFG_HFS_2, ®); + /* make sure that bit 9 (NM) is up and bit 10 (DM) is down */ + if ((reg & 0x600) == 0x200) + goto no_mei; + } + + /* Lynx Point */ + if (ent->device == MEI_DEV_ID_LPT_H || + ent->device == MEI_DEV_ID_LPT_W || + ent->device == MEI_DEV_ID_LPT_HR) { + /* Read ME FW Status check for SPS Firmware */ + pci_read_config_dword(pdev, PCI_CFG_HFS_1, ®); + /* if bits [19:16] = 15, running SPS Firmware */ + if ((reg & 0xf0000) == 0xf0000) + goto no_mei; } + return true; + +no_mei: + dev_info(&pdev->dev, "Device doesn't have valid ME Interface\n"); + return false; } /** * mei_probe - Device Initialization Routine @@ -144,6 +163,21 @@ dev_err(&pdev->dev, "failed to get pci regions.\n"); goto disable_device; } + + if (dma_set_mask(&pdev->dev, DMA_BIT_MASK(64)) || + dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64))) { + + err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32)); + if (err) + err = dma_set_coherent_mask(&pdev->dev, + DMA_BIT_MASK(32)); + } + if (err) { + dev_err(&pdev->dev, "No usable DMA configuration, aborting\n"); + goto release_regions; + } + + /* allocates and initializes the mei dev structure */ dev = mei_me_dev_init(pdev); if (!dev) { @@ -158,7 +192,8 @@ err = -ENOMEM; goto free_device; } - pci_enable_msi(pdev); + if (!disable_msi) + pci_enable_msi(pdev); /* request and enable interrupt */ if (pci_dev_msi_enabled(pdev)) @@ -197,8 +232,8 @@ return 0; release_irq: + mei_cancel_work(dev); mei_disable_interrupts(dev); - flush_scheduled_work(); free_irq(pdev->irq, dev); disable_msi: pci_disable_msi(pdev); @@ -306,16 +341,14 @@ return err; } - mutex_lock(&dev->device_lock); - dev->dev_state = MEI_DEV_POWER_UP; - mei_clear_interrupts(dev); - mei_reset(dev, 1); - mutex_unlock(&dev->device_lock); + err = mei_restart(dev); + if (err) + return err; /* Start timer if stopped in suspend */ schedule_delayed_work(&dev->timer_work, HZ); - return err; + return 0; } static SIMPLE_DEV_PM_OPS(mei_me_pm_ops, mei_me_pci_suspend, mei_me_pci_resume); #define MEI_ME_PM_OPS (&mei_me_pm_ops) --- linux-3.13.0.orig/drivers/misc/mei/wd.c +++ linux-3.13.0/drivers/misc/mei/wd.c @@ -115,6 +115,7 @@ hdr.me_addr = dev->wd_cl.me_client_id; hdr.msg_complete = 1; hdr.reserved = 0; + hdr.internal = 0; if (!memcmp(dev->wd_data, mei_start_wd_params, MEI_WD_HDR_SIZE)) hdr.length = MEI_WD_START_MSG_SIZE; --- linux-3.13.0.orig/drivers/misc/mic/host/mic_device.h +++ linux-3.13.0/drivers/misc/mic/host/mic_device.h @@ -134,6 +134,8 @@ * @send_intr: Send an interrupt for a particular doorbell on the card. * @ack_interrupt: Hardware specific operations to ack the h/w on * receipt of an interrupt. + * @intr_workarounds: Hardware specific workarounds needed after + * handling an interrupt. * @reset: Reset the remote processor. * @reset_fw_ready: Reset firmware ready field. * @is_fw_ready: Check if firmware is ready for OS download. @@ -149,6 +151,7 @@ void (*write_spad)(struct mic_device *mdev, unsigned int idx, u32 val); void (*send_intr)(struct mic_device *mdev, int doorbell); u32 (*ack_interrupt)(struct mic_device *mdev); + void (*intr_workarounds)(struct mic_device *mdev); void (*reset)(struct mic_device *mdev); void (*reset_fw_ready)(struct mic_device *mdev); bool (*is_fw_ready)(struct mic_device *mdev); --- linux-3.13.0.orig/drivers/misc/mic/host/mic_main.c +++ linux-3.13.0/drivers/misc/mic/host/mic_main.c @@ -115,7 +115,7 @@ struct mic_device *mdev = data; struct mic_bootparam *bootparam = mdev->dp; - mdev->ops->ack_interrupt(mdev); + mdev->ops->intr_workarounds(mdev); switch (bootparam->shutdown_status) { case MIC_HALTED: --- linux-3.13.0.orig/drivers/misc/mic/host/mic_virtio.c +++ linux-3.13.0/drivers/misc/mic/host/mic_virtio.c @@ -156,7 +156,8 @@ static int _mic_virtio_copy(struct mic_vdev *mvdev, struct mic_copy_desc *copy) { - int ret = 0, iovcnt = copy->iovcnt; + int ret = 0; + u32 iovcnt = copy->iovcnt; struct iovec iov; struct iovec __user *u_iov = copy->iov; void __user *ubuf = NULL; @@ -369,7 +370,7 @@ struct mic_vdev *mvdev = data; struct mic_device *mdev = mvdev->mdev; - mdev->ops->ack_interrupt(mdev); + mdev->ops->intr_workarounds(mdev); schedule_work(&mvdev->virtio_bh_work); return IRQ_HANDLED; } --- linux-3.13.0.orig/drivers/misc/mic/host/mic_x100.c +++ linux-3.13.0/drivers/misc/mic/host/mic_x100.c @@ -174,35 +174,38 @@ } /** - * mic_ack_interrupt - Device specific interrupt handling. - * @mdev: pointer to mic_device instance + * mic_x100_ack_interrupt - Read the interrupt sources register and + * clear it. This function will be called in the MSI/INTx case. + * @mdev: Pointer to mic_device instance. * - * Returns: bitmask of doorbell events triggered. + * Returns: bitmask of interrupt sources triggered. */ static u32 mic_x100_ack_interrupt(struct mic_device *mdev) { - u32 reg = 0; - struct mic_mw *mw = &mdev->mmio; u32 sicr0 = MIC_X100_SBOX_BASE_ADDRESS + MIC_X100_SBOX_SICR0; + u32 reg = mic_mmio_read(&mdev->mmio, sicr0); + mic_mmio_write(&mdev->mmio, reg, sicr0); + return reg; +} + +/** + * mic_x100_intr_workarounds - These hardware specific workarounds are + * to be invoked everytime an interrupt is handled. + * @mdev: Pointer to mic_device instance. + * + * Returns: none + */ +static void mic_x100_intr_workarounds(struct mic_device *mdev) +{ + struct mic_mw *mw = &mdev->mmio; /* Clear pending bit array. */ if (MIC_A0_STEP == mdev->stepping) mic_mmio_write(mw, 1, MIC_X100_SBOX_BASE_ADDRESS + MIC_X100_SBOX_MSIXPBACR); - if (mdev->irq_info.num_vectors <= 1) { - reg = mic_mmio_read(mw, sicr0); - - if (unlikely(!reg)) - goto done; - - mic_mmio_write(mw, reg, sicr0); - } - if (mdev->stepping >= MIC_B0_STEP) mdev->intr_ops->enable_interrupts(mdev); -done: - return reg; } /** @@ -553,6 +556,7 @@ .write_spad = mic_x100_write_spad, .send_intr = mic_x100_send_intr, .ack_interrupt = mic_x100_ack_interrupt, + .intr_workarounds = mic_x100_intr_workarounds, .reset = mic_x100_hw_reset, .reset_fw_ready = mic_x100_reset_fw_ready, .is_fw_ready = mic_x100_is_fw_ready, --- linux-3.13.0.orig/drivers/mmc/card/block.c +++ linux-3.13.0/drivers/mmc/card/block.c @@ -1959,6 +1959,7 @@ struct mmc_card *card = md->queue.card; struct mmc_host *host = card->host; unsigned long flags; + unsigned int cmd_flags = req ? req->cmd_flags : 0; if (req && !mq->mqrq_prev->req) /* claim host only for the first request */ @@ -1974,7 +1975,7 @@ } mq->flags &= ~MMC_QUEUE_NEW_REQUEST; - if (req && req->cmd_flags & REQ_DISCARD) { + if (cmd_flags & REQ_DISCARD) { /* complete ongoing async transfer before issuing discard */ if (card->host->areq) mmc_blk_issue_rw_rq(mq, NULL); @@ -1983,7 +1984,7 @@ ret = mmc_blk_issue_secdiscard_rq(mq, req); else ret = mmc_blk_issue_discard_rq(mq, req); - } else if (req && req->cmd_flags & REQ_FLUSH) { + } else if (cmd_flags & REQ_FLUSH) { /* complete ongoing async transfer before issuing flush */ if (card->host->areq) mmc_blk_issue_rw_rq(mq, NULL); @@ -1999,7 +2000,7 @@ out: if ((!req && !(mq->flags & MMC_QUEUE_NEW_REQUEST)) || - (req && (req->cmd_flags & MMC_REQ_SPECIAL_MASK))) + (cmd_flags & MMC_REQ_SPECIAL_MASK)) /* * Release host when there are no more requests * and after special request(discard, flush) is done. --- linux-3.13.0.orig/drivers/mmc/card/queue.c +++ linux-3.13.0/drivers/mmc/card/queue.c @@ -197,7 +197,7 @@ struct mmc_queue_req *mqrq_prev = &mq->mqrq[1]; if (mmc_dev(host)->dma_mask && *mmc_dev(host)->dma_mask) - limit = dma_max_pfn(mmc_dev(host)) << PAGE_SHIFT; + limit = (u64)dma_max_pfn(mmc_dev(host)) << PAGE_SHIFT; mq->card = card; mq->queue = blk_init_queue(mmc_request_fn, lock); --- linux-3.13.0.orig/drivers/mmc/core/sd.c +++ linux-3.13.0/drivers/mmc/core/sd.c @@ -11,6 +11,7 @@ */ #include +#include #include #include #include @@ -45,6 +46,13 @@ 35, 40, 45, 50, 55, 60, 70, 80, }; +static const unsigned int sd_au_size[] = { + 0, SZ_16K / 512, SZ_32K / 512, SZ_64K / 512, + SZ_128K / 512, SZ_256K / 512, SZ_512K / 512, SZ_1M / 512, + SZ_2M / 512, SZ_4M / 512, SZ_8M / 512, (SZ_8M + SZ_4M) / 512, + SZ_16M / 512, (SZ_16M + SZ_8M) / 512, SZ_32M / 512, SZ_64M / 512, +}; + #define UNSTUFF_BITS(resp,start,size) \ ({ \ const int __size = size; \ @@ -216,7 +224,7 @@ static int mmc_read_ssr(struct mmc_card *card) { unsigned int au, es, et, eo; - int err, i, max_au; + int err, i; u32 *ssr; if (!(card->csd.cmdclass & CCC_APP_SPEC)) { @@ -240,26 +248,25 @@ for (i = 0; i < 16; i++) ssr[i] = be32_to_cpu(ssr[i]); - /* SD3.0 increases max AU size to 64MB (0xF) from 4MB (0x9) */ - max_au = card->scr.sda_spec3 ? 0xF : 0x9; - /* * UNSTUFF_BITS only works with four u32s so we have to offset the * bitfield positions accordingly. */ au = UNSTUFF_BITS(ssr, 428 - 384, 4); - if (au > 0 && au <= max_au) { - card->ssr.au = 1 << (au + 4); - es = UNSTUFF_BITS(ssr, 408 - 384, 16); - et = UNSTUFF_BITS(ssr, 402 - 384, 6); - eo = UNSTUFF_BITS(ssr, 400 - 384, 2); - if (es && et) { - card->ssr.erase_timeout = (et * 1000) / es; - card->ssr.erase_offset = eo * 1000; + if (au) { + if (au <= 9 || card->scr.sda_spec3) { + card->ssr.au = sd_au_size[au]; + es = UNSTUFF_BITS(ssr, 408 - 384, 16); + et = UNSTUFF_BITS(ssr, 402 - 384, 6); + if (es && et) { + eo = UNSTUFF_BITS(ssr, 400 - 384, 2); + card->ssr.erase_timeout = (et * 1000) / es; + card->ssr.erase_offset = eo * 1000; + } + } else { + pr_warning("%s: SD Status: Invalid Allocation Unit size.\n", + mmc_hostname(card->host)); } - } else { - pr_warning("%s: SD Status: Invalid Allocation Unit " - "size.\n", mmc_hostname(card->host)); } out: kfree(ssr); --- linux-3.13.0.orig/drivers/mmc/host/Makefile +++ linux-3.13.0/drivers/mmc/host/Makefile @@ -9,6 +9,7 @@ obj-$(CONFIG_MMC_SDHCI) += sdhci.o obj-$(CONFIG_MMC_SDHCI_PCI) += sdhci-pci.o obj-$(subst m,y,$(CONFIG_MMC_SDHCI_PCI)) += sdhci-pci-data.o +obj-$(subst m,y,$(CONFIG_MMC_SDHCI_PCI)) += sdhci-pci-o2micro.o obj-$(CONFIG_MMC_SDHCI_ACPI) += sdhci-acpi.o obj-$(CONFIG_MMC_SDHCI_PXAV3) += sdhci-pxav3.o obj-$(CONFIG_MMC_SDHCI_PXAV2) += sdhci-pxav2.o --- linux-3.13.0.orig/drivers/mmc/host/atmel-mci.c +++ linux-3.13.0/drivers/mmc/host/atmel-mci.c @@ -1192,11 +1192,22 @@ iflags |= ATMCI_CMDRDY; cmd = mrq->cmd; cmdflags = atmci_prepare_command(slot->mmc, cmd); - atmci_send_command(host, cmd, cmdflags); + + /* + * DMA transfer should be started before sending the command to avoid + * unexpected errors especially for read operations in SDIO mode. + * Unfortunately, in PDC mode, command has to be sent before starting + * the transfer. + */ + if (host->submit_data != &atmci_submit_data_dma) + atmci_send_command(host, cmd, cmdflags); if (data) host->submit_data(host, data); + if (host->submit_data == &atmci_submit_data_dma) + atmci_send_command(host, cmd, cmdflags); + if (mrq->stop) { host->stop_cmdr = atmci_prepare_command(slot->mmc, mrq->stop); host->stop_cmdr |= ATMCI_CMDR_STOP_XFER; --- linux-3.13.0.orig/drivers/mmc/host/dw_mmc.c +++ linux-3.13.0/drivers/mmc/host/dw_mmc.c @@ -631,6 +631,13 @@ WARN_ON(!(data->flags & MMC_DATA_READ)); + /* + * CDTHRCTL doesn't exist prior to 240A (in fact that register offset is + * in the FIFO region, so we really shouldn't access it). + */ + if (host->verid < DW_MMC_240A) + return; + if (host->timing != MMC_TIMING_MMC_HS200 && host->timing != MMC_TIMING_UHS_SDR104) goto disable; --- linux-3.13.0.orig/drivers/mmc/host/omap_hsmmc.c +++ linux-3.13.0/drivers/mmc/host/omap_hsmmc.c @@ -1812,7 +1812,7 @@ host->slot_id = 0; host->mapbase = res->start + pdata->reg_offset; host->base = ioremap(host->mapbase, SZ_4K); - host->power_mode = MMC_POWER_OFF; + host->power_mode = -1; host->next_data.cookie = 1; platform_set_drvdata(pdev, host); --- linux-3.13.0.orig/drivers/mmc/host/rtsx_pci_sdmmc.c +++ linux-3.13.0/drivers/mmc/host/rtsx_pci_sdmmc.c @@ -246,6 +246,9 @@ case MMC_RSP_R1: rsp_type = SD_RSP_TYPE_R1; break; + case MMC_RSP_R1 & ~MMC_RSP_CRC: + rsp_type = SD_RSP_TYPE_R1 | SD_NO_CHECK_CRC7; + break; case MMC_RSP_R1B: rsp_type = SD_RSP_TYPE_R1b; break; @@ -339,6 +342,13 @@ } if (rsp_type == SD_RSP_TYPE_R2) { + /* + * The controller offloads the last byte {CRC-7, end bit 1'b1} + * of response type R2. Assign dummy CRC, 0, and end bit to the + * byte(ptr[16], goes into the LSB of resp[3] later). + */ + ptr[16] = 1; + for (i = 0; i < 4; i++) { cmd->resp[i] = get_unaligned_be32(ptr + 1 + i * 4); dev_dbg(sdmmc_dev(host), "cmd->resp[%d] = 0x%08x\n", --- linux-3.13.0.orig/drivers/mmc/host/sdhci-bcm-kona.c +++ linux-3.13.0/drivers/mmc/host/sdhci-bcm-kona.c @@ -314,7 +314,7 @@ return ret; } -static int __exit sdhci_bcm_kona_remove(struct platform_device *pdev) +static int sdhci_bcm_kona_remove(struct platform_device *pdev) { return sdhci_pltfm_unregister(pdev); } --- linux-3.13.0.orig/drivers/mmc/host/sdhci-esdhc-imx.c +++ linux-3.13.0/drivers/mmc/host/sdhci-esdhc-imx.c @@ -558,19 +558,17 @@ struct pltfm_imx_data *imx_data = pltfm_host->priv; struct esdhc_platform_data *boarddata = &imx_data->boarddata; - u32 f_host = clk_get_rate(pltfm_host->clk); - - if (boarddata->f_max && (boarddata->f_max < f_host)) + if (boarddata->f_max && (boarddata->f_max < pltfm_host->clock)) return boarddata->f_max; else - return f_host; + return pltfm_host->clock; } static unsigned int esdhc_pltfm_get_min_clock(struct sdhci_host *host) { struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); - return clk_get_rate(pltfm_host->clk) / 256 / 16; + return pltfm_host->clock / 256 / 16; } static inline void esdhc_pltfm_set_clock(struct sdhci_host *host, @@ -578,7 +576,7 @@ { struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); struct pltfm_imx_data *imx_data = pltfm_host->priv; - unsigned int host_clock = clk_get_rate(pltfm_host->clk); + unsigned int host_clock = pltfm_host->clock; int pre_div = 2; int div = 1; u32 temp, val; @@ -976,7 +974,7 @@ } pltfm_host->clk = imx_data->clk_per; - + pltfm_host->clock = clk_get_rate(pltfm_host->clk); clk_prepare_enable(imx_data->clk_per); clk_prepare_enable(imx_data->clk_ipg); clk_prepare_enable(imx_data->clk_ahb); --- linux-3.13.0.orig/drivers/mmc/host/sdhci-pci-o2micro.c +++ linux-3.13.0/drivers/mmc/host/sdhci-pci-o2micro.c @@ -0,0 +1,319 @@ +/* + * Copyright (C) 2013 BayHub Technology Ltd. + * + * Authors: Peter Guo + * Adam Lee + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include + +#include "sdhci.h" +#include "sdhci-pci.h" +#include "sdhci-pci-o2micro.h" + +void sdhci_pci_o2_fujin2_pci_init(struct sdhci_pci_chip *chip) +{ + u32 scratch_32; + int ret; + /* Improve write performance for SD3.0 */ + ret = pci_read_config_dword(chip->pdev, O2_SD_DEV_CTRL, &scratch_32); + if (ret) + return; + scratch_32 &= ~((1 << 12) | (1 << 13) | (1 << 14)); + pci_write_config_dword(chip->pdev, O2_SD_DEV_CTRL, scratch_32); + + /* Enable Link abnormal reset generating Reset */ + ret = pci_read_config_dword(chip->pdev, O2_SD_MISC_REG5, &scratch_32); + if (ret) + return; + scratch_32 &= ~((1 << 19) | (1 << 11)); + scratch_32 |= (1 << 10); + pci_write_config_dword(chip->pdev, O2_SD_MISC_REG5, scratch_32); + + /* set card power over current protection */ + ret = pci_read_config_dword(chip->pdev, O2_SD_TEST_REG, &scratch_32); + if (ret) + return; + scratch_32 |= (1 << 4); + pci_write_config_dword(chip->pdev, O2_SD_TEST_REG, scratch_32); + + /* adjust the output delay for SD mode */ + pci_write_config_dword(chip->pdev, O2_SD_DELAY_CTRL, 0x00002492); + + /* Set the output voltage setting of Aux 1.2v LDO */ + ret = pci_read_config_dword(chip->pdev, O2_SD_LD0_CTRL, &scratch_32); + if (ret) + return; + scratch_32 &= ~(3 << 12); + pci_write_config_dword(chip->pdev, O2_SD_LD0_CTRL, scratch_32); + + /* Set Max power supply capability of SD host */ + ret = pci_read_config_dword(chip->pdev, O2_SD_CAP_REG0, &scratch_32); + if (ret) + return; + scratch_32 &= ~(0x01FE); + scratch_32 |= 0x00CC; + pci_write_config_dword(chip->pdev, O2_SD_CAP_REG0, scratch_32); + /* Set DLL Tuning Window */ + ret = pci_read_config_dword(chip->pdev, + O2_SD_TUNING_CTRL, &scratch_32); + if (ret) + return; + scratch_32 &= ~(0x000000FF); + scratch_32 |= 0x00000066; + pci_write_config_dword(chip->pdev, O2_SD_TUNING_CTRL, scratch_32); + + /* Set UHS2 T_EIDLE */ + ret = pci_read_config_dword(chip->pdev, + O2_SD_UHS2_L1_CTRL, &scratch_32); + if (ret) + return; + scratch_32 &= ~(0x000000FC); + scratch_32 |= 0x00000084; + pci_write_config_dword(chip->pdev, O2_SD_UHS2_L1_CTRL, scratch_32); + + /* Set UHS2 Termination */ + ret = pci_read_config_dword(chip->pdev, O2_SD_FUNC_REG3, &scratch_32); + if (ret) + return; + scratch_32 &= ~((1 << 21) | (1 << 30)); + + pci_write_config_dword(chip->pdev, O2_SD_FUNC_REG3, scratch_32); + + /* Set L1 Entrance Timer */ + ret = pci_read_config_dword(chip->pdev, O2_SD_CAPS, &scratch_32); + if (ret) + return; + scratch_32 &= ~(0xf0000000); + scratch_32 |= 0x30000000; + pci_write_config_dword(chip->pdev, O2_SD_CAPS, scratch_32); + + ret = pci_read_config_dword(chip->pdev, + O2_SD_MISC_CTRL4, &scratch_32); + if (ret) + return; + scratch_32 &= ~(0x000f0000); + scratch_32 |= 0x00080000; + pci_write_config_dword(chip->pdev, O2_SD_MISC_CTRL4, scratch_32); +} +EXPORT_SYMBOL_GPL(sdhci_pci_o2_fujin2_pci_init); + +int sdhci_pci_o2_probe_slot(struct sdhci_pci_slot *slot) +{ + struct sdhci_pci_chip *chip; + struct sdhci_host *host; + u32 reg; + + chip = slot->chip; + host = slot->host; + switch (chip->pdev->device) { + case PCI_DEVICE_ID_O2_SDS0: + case PCI_DEVICE_ID_O2_SEABIRD0: + case PCI_DEVICE_ID_O2_SEABIRD1: + case PCI_DEVICE_ID_O2_SDS1: + case PCI_DEVICE_ID_O2_FUJIN2: + reg = sdhci_readl(host, O2_SD_VENDOR_SETTING); + if (reg & 0x1) + host->quirks |= SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12; + + if (chip->pdev->device != PCI_DEVICE_ID_O2_FUJIN2) + break; + /* set dll watch dog timer */ + reg = sdhci_readl(host, O2_SD_VENDOR_SETTING2); + reg |= (1 << 12); + sdhci_writel(host, reg, O2_SD_VENDOR_SETTING2); + + break; + default: + break; + } + + return 0; +} +EXPORT_SYMBOL_GPL(sdhci_pci_o2_probe_slot); + +int sdhci_pci_o2_probe(struct sdhci_pci_chip *chip) +{ + int ret; + u8 scratch; + u32 scratch_32; + + switch (chip->pdev->device) { + case PCI_DEVICE_ID_O2_8220: + case PCI_DEVICE_ID_O2_8221: + case PCI_DEVICE_ID_O2_8320: + case PCI_DEVICE_ID_O2_8321: + /* This extra setup is required due to broken ADMA. */ + ret = pci_read_config_byte(chip->pdev, + O2_SD_LOCK_WP, &scratch); + if (ret) + return ret; + scratch &= 0x7f; + pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch); + + /* Set Multi 3 to VCC3V# */ + pci_write_config_byte(chip->pdev, O2_SD_MULTI_VCC3V, 0x08); + + /* Disable CLK_REQ# support after media DET */ + ret = pci_read_config_byte(chip->pdev, + O2_SD_CLKREQ, &scratch); + if (ret) + return ret; + scratch |= 0x20; + pci_write_config_byte(chip->pdev, O2_SD_CLKREQ, scratch); + + /* Choose capabilities, enable SDMA. We have to write 0x01 + * to the capabilities register first to unlock it. + */ + ret = pci_read_config_byte(chip->pdev, O2_SD_CAPS, &scratch); + if (ret) + return ret; + scratch |= 0x01; + pci_write_config_byte(chip->pdev, O2_SD_CAPS, scratch); + pci_write_config_byte(chip->pdev, O2_SD_CAPS, 0x73); + + /* Disable ADMA1/2 */ + pci_write_config_byte(chip->pdev, O2_SD_ADMA1, 0x39); + pci_write_config_byte(chip->pdev, O2_SD_ADMA2, 0x08); + + /* Disable the infinite transfer mode */ + ret = pci_read_config_byte(chip->pdev, + O2_SD_INF_MOD, &scratch); + if (ret) + return ret; + scratch |= 0x08; + pci_write_config_byte(chip->pdev, O2_SD_INF_MOD, scratch); + + /* Lock WP */ + ret = pci_read_config_byte(chip->pdev, + O2_SD_LOCK_WP, &scratch); + if (ret) + return ret; + scratch |= 0x80; + pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch); + break; + case PCI_DEVICE_ID_O2_SDS0: + case PCI_DEVICE_ID_O2_SDS1: + case PCI_DEVICE_ID_O2_FUJIN2: + /* UnLock WP */ + ret = pci_read_config_byte(chip->pdev, + O2_SD_LOCK_WP, &scratch); + if (ret) + return ret; + + scratch &= 0x7f; + pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch); + + /* Set timeout CLK */ + ret = pci_read_config_dword(chip->pdev, + O2_SD_CLK_SETTING, &scratch_32); + if (ret) + return ret; + + scratch_32 &= ~(0xFF00); + scratch_32 |= 0x07E0C800; + pci_write_config_dword(chip->pdev, + O2_SD_CLK_SETTING, scratch_32); + + ret = pci_read_config_dword(chip->pdev, + O2_SD_CLKREQ, &scratch_32); + if (ret) + return ret; + scratch_32 |= 0x3; + pci_write_config_dword(chip->pdev, O2_SD_CLKREQ, scratch_32); + + ret = pci_read_config_dword(chip->pdev, + O2_SD_PLL_SETTING, &scratch_32); + if (ret) + return ret; + + scratch_32 &= ~(0x1F3F070E); + scratch_32 |= 0x18270106; + pci_write_config_dword(chip->pdev, + O2_SD_PLL_SETTING, scratch_32); + + /* Disable UHS1 funciton */ + ret = pci_read_config_dword(chip->pdev, + O2_SD_CAP_REG2, &scratch_32); + if (ret) + return ret; + scratch_32 &= ~(0xE0); + pci_write_config_dword(chip->pdev, + O2_SD_CAP_REG2, scratch_32); + + if (chip->pdev->device == PCI_DEVICE_ID_O2_FUJIN2) + sdhci_pci_o2_fujin2_pci_init(chip); + + /* Lock WP */ + ret = pci_read_config_byte(chip->pdev, + O2_SD_LOCK_WP, &scratch); + if (ret) + return ret; + scratch |= 0x80; + pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch); + break; + case PCI_DEVICE_ID_O2_SEABIRD0: + case PCI_DEVICE_ID_O2_SEABIRD1: + /* UnLock WP */ + ret = pci_read_config_byte(chip->pdev, + O2_SD_LOCK_WP, &scratch); + if (ret) + return ret; + + scratch &= 0x7f; + pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch); + + ret = pci_read_config_dword(chip->pdev, + O2_SD_FUNC_REG0, &scratch_32); + + if ((scratch_32 & 0xff000000) == 0x01000000) { + scratch_32 &= 0x0000FFFF; + scratch_32 |= 0x1F340000; + + pci_write_config_dword(chip->pdev, + O2_SD_PLL_SETTING, scratch_32); + } else { + scratch_32 &= 0x0000FFFF; + scratch_32 |= 0x2c280000; + + pci_write_config_dword(chip->pdev, + O2_SD_PLL_SETTING, scratch_32); + + ret = pci_read_config_dword(chip->pdev, + O2_SD_FUNC_REG4, + &scratch_32); + scratch_32 |= (1 << 22); + pci_write_config_dword(chip->pdev, + O2_SD_FUNC_REG4, scratch_32); + } + + /* Lock WP */ + ret = pci_read_config_byte(chip->pdev, + O2_SD_LOCK_WP, &scratch); + if (ret) + return ret; + scratch |= 0x80; + pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch); + break; + } + + return 0; +} +EXPORT_SYMBOL_GPL(sdhci_pci_o2_probe); + +int sdhci_pci_o2_resume(struct sdhci_pci_chip *chip) +{ + sdhci_pci_o2_probe(chip); + return 0; +} +EXPORT_SYMBOL_GPL(sdhci_pci_o2_resume); --- linux-3.13.0.orig/drivers/mmc/host/sdhci-pci-o2micro.h +++ linux-3.13.0/drivers/mmc/host/sdhci-pci-o2micro.h @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2013 BayHub Technology Ltd. + * + * Authors: Peter Guo + * Adam Lee + * + * This software is licensed under the terms of the GNU General Public + * License version 2, as published by the Free Software Foundation, and + * may be copied, distributed, and modified under those terms. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#ifndef __SDHCI_PCI_O2MICRO_H +#define __SDHCI_PCI_O2MICRO_H + +#include "sdhci-pci.h" + +/* + * O2Micro device IDs + */ + +#define PCI_DEVICE_ID_O2_SDS0 0x8420 +#define PCI_DEVICE_ID_O2_SDS1 0x8421 +#define PCI_DEVICE_ID_O2_FUJIN2 0x8520 +#define PCI_DEVICE_ID_O2_SEABIRD0 0x8620 +#define PCI_DEVICE_ID_O2_SEABIRD1 0x8621 + +/* + * O2Micro device registers + */ + +#define O2_SD_MISC_REG5 0x64 +#define O2_SD_LD0_CTRL 0x68 +#define O2_SD_DEV_CTRL 0x88 +#define O2_SD_LOCK_WP 0xD3 +#define O2_SD_TEST_REG 0xD4 +#define O2_SD_FUNC_REG0 0xDC +#define O2_SD_MULTI_VCC3V 0xEE +#define O2_SD_CLKREQ 0xEC +#define O2_SD_CAPS 0xE0 +#define O2_SD_ADMA1 0xE2 +#define O2_SD_ADMA2 0xE7 +#define O2_SD_INF_MOD 0xF1 +#define O2_SD_MISC_CTRL4 0xFC +#define O2_SD_TUNING_CTRL 0x300 +#define O2_SD_PLL_SETTING 0x304 +#define O2_SD_CLK_SETTING 0x328 +#define O2_SD_CAP_REG2 0x330 +#define O2_SD_CAP_REG0 0x334 +#define O2_SD_UHS1_CAP_SETTING 0x33C +#define O2_SD_DELAY_CTRL 0x350 +#define O2_SD_UHS2_L1_CTRL 0x35C +#define O2_SD_FUNC_REG3 0x3E0 +#define O2_SD_FUNC_REG4 0x3E4 + +#define O2_SD_VENDOR_SETTING 0x110 +#define O2_SD_VENDOR_SETTING2 0x1C8 + +extern void sdhci_pci_o2_fujin2_pci_init(struct sdhci_pci_chip *chip); + +extern int sdhci_pci_o2_probe_slot(struct sdhci_pci_slot *slot); + +extern int sdhci_pci_o2_probe(struct sdhci_pci_chip *chip); + +extern int sdhci_pci_o2_resume(struct sdhci_pci_chip *chip); + +#endif /* __SDHCI_PCI_O2MICRO_H */ --- linux-3.13.0.orig/drivers/mmc/host/sdhci-pci.c +++ linux-3.13.0/drivers/mmc/host/sdhci-pci.c @@ -27,79 +27,8 @@ #include #include "sdhci.h" - -/* - * PCI device IDs - */ -#define PCI_DEVICE_ID_INTEL_PCH_SDIO0 0x8809 -#define PCI_DEVICE_ID_INTEL_PCH_SDIO1 0x880a -#define PCI_DEVICE_ID_INTEL_BYT_EMMC 0x0f14 -#define PCI_DEVICE_ID_INTEL_BYT_SDIO 0x0f15 -#define PCI_DEVICE_ID_INTEL_BYT_SD 0x0f16 -#define PCI_DEVICE_ID_INTEL_BYT_EMMC2 0x0f50 -#define PCI_DEVICE_ID_INTEL_MRFL_MMC 0x1190 -#define PCI_DEVICE_ID_INTEL_CLV_SDIO0 0x08f9 -#define PCI_DEVICE_ID_INTEL_CLV_SDIO1 0x08fa -#define PCI_DEVICE_ID_INTEL_CLV_SDIO2 0x08fb -#define PCI_DEVICE_ID_INTEL_CLV_EMMC0 0x08e5 -#define PCI_DEVICE_ID_INTEL_CLV_EMMC1 0x08e6 - -/* - * PCI registers - */ - -#define PCI_SDHCI_IFPIO 0x00 -#define PCI_SDHCI_IFDMA 0x01 -#define PCI_SDHCI_IFVENDOR 0x02 - -#define PCI_SLOT_INFO 0x40 /* 8 bits */ -#define PCI_SLOT_INFO_SLOTS(x) ((x >> 4) & 7) -#define PCI_SLOT_INFO_FIRST_BAR_MASK 0x07 - -#define MAX_SLOTS 8 - -struct sdhci_pci_chip; -struct sdhci_pci_slot; - -struct sdhci_pci_fixes { - unsigned int quirks; - unsigned int quirks2; - bool allow_runtime_pm; - - int (*probe) (struct sdhci_pci_chip *); - - int (*probe_slot) (struct sdhci_pci_slot *); - void (*remove_slot) (struct sdhci_pci_slot *, int); - - int (*suspend) (struct sdhci_pci_chip *); - int (*resume) (struct sdhci_pci_chip *); -}; - -struct sdhci_pci_slot { - struct sdhci_pci_chip *chip; - struct sdhci_host *host; - struct sdhci_pci_data *data; - - int pci_bar; - int rst_n_gpio; - int cd_gpio; - int cd_irq; - - void (*hw_reset)(struct sdhci_host *host); -}; - -struct sdhci_pci_chip { - struct pci_dev *pdev; - - unsigned int quirks; - unsigned int quirks2; - bool allow_runtime_pm; - const struct sdhci_pci_fixes *fixes; - - int num_slots; /* Slots on controller */ - struct sdhci_pci_slot *slots[MAX_SLOTS]; /* Pointers to host slots */ -}; - +#include "sdhci-pci.h" +#include "sdhci-pci-o2micro.h" /*****************************************************************************\ * * @@ -296,6 +225,7 @@ static const struct sdhci_pci_fixes sdhci_intel_mfd_sd = { .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC, .allow_runtime_pm = true, + .own_cd_for_runtime_pm = true, }; static const struct sdhci_pci_fixes sdhci_intel_mfd_sdio = { @@ -360,6 +290,7 @@ static const struct sdhci_pci_fixes sdhci_intel_byt_sd = { .quirks2 = SDHCI_QUIRK2_CARD_ON_NEEDS_BUS_ON, .allow_runtime_pm = true, + .own_cd_for_runtime_pm = true, }; /* Define Host controllers for Intel Merrifield platform */ @@ -381,6 +312,7 @@ static const struct sdhci_pci_fixes sdhci_intel_mrfl_mmc = { .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC, + .quirks2 = SDHCI_QUIRK2_BROKEN_HS200, .probe_slot = intel_mrfl_mmc_probe_slot, }; @@ -393,65 +325,6 @@ #define O2_SD_ADMA2 0xE7 #define O2_SD_INF_MOD 0xF1 -static int o2_probe(struct sdhci_pci_chip *chip) -{ - int ret; - u8 scratch; - - switch (chip->pdev->device) { - case PCI_DEVICE_ID_O2_8220: - case PCI_DEVICE_ID_O2_8221: - case PCI_DEVICE_ID_O2_8320: - case PCI_DEVICE_ID_O2_8321: - /* This extra setup is required due to broken ADMA. */ - ret = pci_read_config_byte(chip->pdev, O2_SD_LOCK_WP, &scratch); - if (ret) - return ret; - scratch &= 0x7f; - pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch); - - /* Set Multi 3 to VCC3V# */ - pci_write_config_byte(chip->pdev, O2_SD_MULTI_VCC3V, 0x08); - - /* Disable CLK_REQ# support after media DET */ - ret = pci_read_config_byte(chip->pdev, O2_SD_CLKREQ, &scratch); - if (ret) - return ret; - scratch |= 0x20; - pci_write_config_byte(chip->pdev, O2_SD_CLKREQ, scratch); - - /* Choose capabilities, enable SDMA. We have to write 0x01 - * to the capabilities register first to unlock it. - */ - ret = pci_read_config_byte(chip->pdev, O2_SD_CAPS, &scratch); - if (ret) - return ret; - scratch |= 0x01; - pci_write_config_byte(chip->pdev, O2_SD_CAPS, scratch); - pci_write_config_byte(chip->pdev, O2_SD_CAPS, 0x73); - - /* Disable ADMA1/2 */ - pci_write_config_byte(chip->pdev, O2_SD_ADMA1, 0x39); - pci_write_config_byte(chip->pdev, O2_SD_ADMA2, 0x08); - - /* Disable the infinite transfer mode */ - ret = pci_read_config_byte(chip->pdev, O2_SD_INF_MOD, &scratch); - if (ret) - return ret; - scratch |= 0x08; - pci_write_config_byte(chip->pdev, O2_SD_INF_MOD, scratch); - - /* Lock WP */ - ret = pci_read_config_byte(chip->pdev, O2_SD_LOCK_WP, &scratch); - if (ret) - return ret; - scratch |= 0x80; - pci_write_config_byte(chip->pdev, O2_SD_LOCK_WP, scratch); - } - - return 0; -} - static int jmicron_pmos(struct sdhci_pci_chip *chip, int on) { u8 scratch; @@ -642,7 +515,10 @@ } static const struct sdhci_pci_fixes sdhci_o2 = { - .probe = o2_probe, + .probe = sdhci_pci_o2_probe, + .quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC, + .probe_slot = sdhci_pci_o2_probe_slot, + .resume = sdhci_pci_o2_resume, }; static const struct sdhci_pci_fixes sdhci_jmicron = { @@ -1055,6 +931,46 @@ .driver_data = (kernel_ulong_t)&sdhci_o2, }, + { + .vendor = PCI_VENDOR_ID_O2, + .device = PCI_DEVICE_ID_O2_FUJIN2, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .driver_data = (kernel_ulong_t)&sdhci_o2, + }, + + { + .vendor = PCI_VENDOR_ID_O2, + .device = PCI_DEVICE_ID_O2_SDS0, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .driver_data = (kernel_ulong_t)&sdhci_o2, + }, + + { + .vendor = PCI_VENDOR_ID_O2, + .device = PCI_DEVICE_ID_O2_SDS1, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .driver_data = (kernel_ulong_t)&sdhci_o2, + }, + + { + .vendor = PCI_VENDOR_ID_O2, + .device = PCI_DEVICE_ID_O2_SEABIRD0, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .driver_data = (kernel_ulong_t)&sdhci_o2, + }, + + { + .vendor = PCI_VENDOR_ID_O2, + .device = PCI_DEVICE_ID_O2_SEABIRD1, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .driver_data = (kernel_ulong_t)&sdhci_o2, + }, + { /* Generic SD host controller */ PCI_DEVICE_CLASS((PCI_CLASS_SYSTEM_SDHCI << 8), 0xFFFF00) }, @@ -1457,6 +1373,15 @@ sdhci_pci_add_own_cd(slot); + /* + * Check if the chip needs a separate GPIO for card detect to wake up + * from runtime suspend. If it is not there, don't allow runtime PM. + * Note sdhci_pci_add_own_cd() sets slot->cd_gpio to -EINVAL on failure. + */ + if (chip->fixes && chip->fixes->own_cd_for_runtime_pm && + !gpio_is_valid(slot->cd_gpio)) + chip->allow_runtime_pm = false; + return slot; remove: --- linux-3.13.0.orig/drivers/mmc/host/sdhci-pci.h +++ linux-3.13.0/drivers/mmc/host/sdhci-pci.h @@ -0,0 +1,78 @@ +#ifndef __SDHCI_PCI_H +#define __SDHCI_PCI_H + +/* + * PCI device IDs + */ + +#define PCI_DEVICE_ID_INTEL_PCH_SDIO0 0x8809 +#define PCI_DEVICE_ID_INTEL_PCH_SDIO1 0x880a +#define PCI_DEVICE_ID_INTEL_BYT_EMMC 0x0f14 +#define PCI_DEVICE_ID_INTEL_BYT_SDIO 0x0f15 +#define PCI_DEVICE_ID_INTEL_BYT_SD 0x0f16 +#define PCI_DEVICE_ID_INTEL_BYT_EMMC2 0x0f50 +#define PCI_DEVICE_ID_INTEL_MRFL_MMC 0x1190 +#define PCI_DEVICE_ID_INTEL_CLV_SDIO0 0x08f9 +#define PCI_DEVICE_ID_INTEL_CLV_SDIO1 0x08fa +#define PCI_DEVICE_ID_INTEL_CLV_SDIO2 0x08fb +#define PCI_DEVICE_ID_INTEL_CLV_EMMC0 0x08e5 +#define PCI_DEVICE_ID_INTEL_CLV_EMMC1 0x08e6 + +/* + * PCI registers + */ + +#define PCI_SDHCI_IFPIO 0x00 +#define PCI_SDHCI_IFDMA 0x01 +#define PCI_SDHCI_IFVENDOR 0x02 + +#define PCI_SLOT_INFO 0x40 /* 8 bits */ +#define PCI_SLOT_INFO_SLOTS(x) ((x >> 4) & 7) +#define PCI_SLOT_INFO_FIRST_BAR_MASK 0x07 + +#define MAX_SLOTS 8 + +struct sdhci_pci_chip; +struct sdhci_pci_slot; + +struct sdhci_pci_fixes { + unsigned int quirks; + unsigned int quirks2; + bool allow_runtime_pm; + bool own_cd_for_runtime_pm; + + int (*probe) (struct sdhci_pci_chip *); + + int (*probe_slot) (struct sdhci_pci_slot *); + void (*remove_slot) (struct sdhci_pci_slot *, int); + + int (*suspend) (struct sdhci_pci_chip *); + int (*resume) (struct sdhci_pci_chip *); +}; + +struct sdhci_pci_slot { + struct sdhci_pci_chip *chip; + struct sdhci_host *host; + struct sdhci_pci_data *data; + + int pci_bar; + int rst_n_gpio; + int cd_gpio; + int cd_irq; + + void (*hw_reset)(struct sdhci_host *host); +}; + +struct sdhci_pci_chip { + struct pci_dev *pdev; + + unsigned int quirks; + unsigned int quirks2; + bool allow_runtime_pm; + const struct sdhci_pci_fixes *fixes; + + int num_slots; /* Slots on controller */ + struct sdhci_pci_slot *slots[MAX_SLOTS]; /* Pointers to host slots */ +}; + +#endif /* __SDHCI_PCI_H */ --- linux-3.13.0.orig/drivers/mmc/host/sdhci.c +++ linux-3.13.0/drivers/mmc/host/sdhci.c @@ -1845,12 +1845,12 @@ unsigned long timeout; int err = 0; bool requires_tuning_nonuhs = false; + unsigned long flags; host = mmc_priv(mmc); sdhci_runtime_pm_get(host); - disable_irq(host->irq); - spin_lock(&host->lock); + spin_lock_irqsave(&host->lock, flags); ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2); @@ -1870,15 +1870,13 @@ requires_tuning_nonuhs) ctrl |= SDHCI_CTRL_EXEC_TUNING; else { - spin_unlock(&host->lock); - enable_irq(host->irq); + spin_unlock_irqrestore(&host->lock, flags); sdhci_runtime_pm_put(host); return 0; } if (host->ops->platform_execute_tuning) { - spin_unlock(&host->lock); - enable_irq(host->irq); + spin_unlock_irqrestore(&host->lock, flags); err = host->ops->platform_execute_tuning(host, opcode); sdhci_runtime_pm_put(host); return err; @@ -1951,15 +1949,12 @@ host->cmd = NULL; host->mrq = NULL; - spin_unlock(&host->lock); - enable_irq(host->irq); - + spin_unlock_irqrestore(&host->lock, flags); /* Wait for Buffer Read Ready interrupt */ wait_event_interruptible_timeout(host->buf_ready_int, (host->tuning_done == 1), msecs_to_jiffies(50)); - disable_irq(host->irq); - spin_lock(&host->lock); + spin_lock_irqsave(&host->lock, flags); if (!host->tuning_done) { pr_info(DRIVER_NAME ": Timeout waiting for " @@ -2034,8 +2029,7 @@ err = 0; sdhci_clear_set_irqs(host, SDHCI_INT_DATA_AVAIL, ier); - spin_unlock(&host->lock); - enable_irq(host->irq); + spin_unlock_irqrestore(&host->lock, flags); sdhci_runtime_pm_put(host); return err; @@ -3004,7 +2998,8 @@ /* SD3.0: SDR104 is supported so (for eMMC) the caps2 * field can be promoted to support HS200. */ - mmc->caps2 |= MMC_CAP2_HS200; + if (!(host->quirks2 & SDHCI_QUIRK2_BROKEN_HS200)) + mmc->caps2 |= MMC_CAP2_HS200; } else if (caps[1] & SDHCI_SUPPORT_SDR50) mmc->caps |= MMC_CAP_UHS_SDR50; --- linux-3.13.0.orig/drivers/mmc/host/tmio_mmc_pio.c +++ linux-3.13.0/drivers/mmc/host/tmio_mmc_pio.c @@ -1042,6 +1042,15 @@ } /* + * Check the sanity of mmc->f_min to prevent tmio_mmc_set_clock() from + * looping forever... + */ + if (mmc->f_min == 0) { + ret = -EINVAL; + goto host_free; + } + + /* * There are 4 different scenarios for the card detection: * 1) an external gpio irq handles the cd (best for power savings) * 2) internal sdhi irq handles the cd --- linux-3.13.0.orig/drivers/mtd/devices/elm.c +++ linux-3.13.0/drivers/mtd/devices/elm.c @@ -428,6 +428,7 @@ ELM_SYNDROME_FRAGMENT_1 + offset); regs->elm_syndrome_fragment_0[i] = elm_read_reg(info, ELM_SYNDROME_FRAGMENT_0 + offset); + break; default: return -EINVAL; } @@ -466,6 +467,7 @@ regs->elm_syndrome_fragment_1[i]); elm_write_reg(info, ELM_SYNDROME_FRAGMENT_0 + offset, regs->elm_syndrome_fragment_0[i]); + break; default: return -EINVAL; } --- linux-3.13.0.orig/drivers/mtd/ftl.c +++ linux-3.13.0/drivers/mtd/ftl.c @@ -1075,7 +1075,6 @@ return; } - ftl_freepart(partition); kfree(partition); } --- linux-3.13.0.orig/drivers/mtd/nand/atmel_nand.c +++ linux-3.13.0/drivers/mtd/nand/atmel_nand.c @@ -1220,6 +1220,7 @@ goto err; } + nand_chip->options |= NAND_NO_SUBPAGE_WRITE; nand_chip->ecc.read_page = atmel_nand_pmecc_read_page; nand_chip->ecc.write_page = atmel_nand_pmecc_write_page; --- linux-3.13.0.orig/drivers/mtd/nand/fsl_elbc_nand.c +++ linux-3.13.0/drivers/mtd/nand/fsl_elbc_nand.c @@ -724,6 +724,19 @@ return 0; } +/* ECC will be calculated automatically, and errors will be detected in + * waitfunc. + */ +static int fsl_elbc_write_subpage(struct mtd_info *mtd, struct nand_chip *chip, + uint32_t offset, uint32_t data_len, + const uint8_t *buf, int oob_required) +{ + fsl_elbc_write_buf(mtd, buf, mtd->writesize); + fsl_elbc_write_buf(mtd, chip->oob_poi, mtd->oobsize); + + return 0; +} + static int fsl_elbc_chip_init(struct fsl_elbc_mtd *priv) { struct fsl_lbc_ctrl *ctrl = priv->ctrl; @@ -762,6 +775,7 @@ chip->ecc.read_page = fsl_elbc_read_page; chip->ecc.write_page = fsl_elbc_write_page; + chip->ecc.write_subpage = fsl_elbc_write_subpage; /* If CS Base Register selects full hardware ECC then use it */ if ((in_be32(&lbc->bank[priv->bank].br) & BR_DECC) == --- linux-3.13.0.orig/drivers/mtd/nand/mxc_nand.c +++ linux-3.13.0/drivers/mtd/nand/mxc_nand.c @@ -677,7 +677,6 @@ ecc_stat >>= 4; } while (--no_subpages); - mtd->ecc_stats.corrected += ret; pr_debug("%d Symbol Correctable RS-ECC Error\n", ret); return ret; --- linux-3.13.0.orig/drivers/mtd/nand/omap2.c +++ linux-3.13.0/drivers/mtd/nand/omap2.c @@ -933,7 +933,7 @@ u32 val; val = readl(info->reg.gpmc_ecc_config); - if (((val >> ECC_CONFIG_CS_SHIFT) & ~CS_MASK) != info->gpmc_cs) + if (((val >> ECC_CONFIG_CS_SHIFT) & CS_MASK) != info->gpmc_cs) return -EINVAL; /* read ecc result */ @@ -1451,7 +1451,7 @@ /* Check if any error reported */ if (!is_error_reported) - return 0; + return stat; /* Decode BCH error using ELM module */ elm_decode_bch_error_page(info->elm_dev, ecc_vec, err_vec); @@ -1633,6 +1633,7 @@ int i; dma_cap_mask_t mask; unsigned sig; + unsigned oob_index; struct resource *res; struct mtd_part_parser_data ppdata = {}; @@ -1832,11 +1833,14 @@ (mtd->writesize / nand_chip->ecc.size); if (nand_chip->options & NAND_BUSWIDTH_16) - ecclayout->eccpos[0] = BADBLOCK_MARKER_LENGTH; + oob_index = BADBLOCK_MARKER_LENGTH; else - ecclayout->eccpos[0] = 1; - ecclayout->oobfree->offset = ecclayout->eccpos[0] + - ecclayout->eccbytes; + oob_index = 1; + for (i = 0; i < ecclayout->eccbytes; i++, oob_index++) + ecclayout->eccpos[i] = oob_index; + /* no reserved-marker in ecclayout for this ecc-scheme */ + ecclayout->oobfree->offset = + ecclayout->eccpos[ecclayout->eccbytes - 1] + 1; break; case OMAP_ECC_BCH4_CODE_HW_DETECTION_SW: @@ -1853,9 +1857,15 @@ ecclayout->eccbytes = nand_chip->ecc.bytes * (mtd->writesize / nand_chip->ecc.size); - ecclayout->eccpos[0] = BADBLOCK_MARKER_LENGTH; - ecclayout->oobfree->offset = ecclayout->eccpos[0] + - ecclayout->eccbytes; + oob_index = BADBLOCK_MARKER_LENGTH; + for (i = 0; i < ecclayout->eccbytes; i++, oob_index++) { + ecclayout->eccpos[i] = oob_index; + if (((i + 1) % nand_chip->ecc.bytes) == 0) + oob_index++; + } + /* include reserved-marker in ecclayout->oobfree calculation */ + ecclayout->oobfree->offset = 1 + + ecclayout->eccpos[ecclayout->eccbytes - 1] + 1; /* software bch library is used for locating errors */ nand_chip->ecc.priv = nand_bch_init(mtd, nand_chip->ecc.size, @@ -1889,9 +1899,12 @@ ecclayout->eccbytes = nand_chip->ecc.bytes * (mtd->writesize / nand_chip->ecc.size); - ecclayout->eccpos[0] = BADBLOCK_MARKER_LENGTH; - ecclayout->oobfree->offset = ecclayout->eccpos[0] + - ecclayout->eccbytes; + oob_index = BADBLOCK_MARKER_LENGTH; + for (i = 0; i < ecclayout->eccbytes; i++, oob_index++) + ecclayout->eccpos[i] = oob_index; + /* reserved marker already included in ecclayout->eccbytes */ + ecclayout->oobfree->offset = + ecclayout->eccpos[ecclayout->eccbytes - 1] + 1; /* This ECC scheme requires ELM H/W block */ if (is_elm_present(info, pdata->elm_of_node, BCH4_ECC) < 0) { pr_err("nand: error: could not initialize ELM\n"); @@ -1919,9 +1932,15 @@ ecclayout->eccbytes = nand_chip->ecc.bytes * (mtd->writesize / nand_chip->ecc.size); - ecclayout->eccpos[0] = BADBLOCK_MARKER_LENGTH; - ecclayout->oobfree->offset = ecclayout->eccpos[0] + - ecclayout->eccbytes; + oob_index = BADBLOCK_MARKER_LENGTH; + for (i = 0; i < ecclayout->eccbytes; i++, oob_index++) { + ecclayout->eccpos[i] = oob_index; + if (((i + 1) % nand_chip->ecc.bytes) == 0) + oob_index++; + } + /* include reserved-marker in ecclayout->oobfree calculation */ + ecclayout->oobfree->offset = 1 + + ecclayout->eccpos[ecclayout->eccbytes - 1] + 1; /* software bch library is used for locating errors */ nand_chip->ecc.priv = nand_bch_init(mtd, nand_chip->ecc.size, @@ -1962,9 +1981,12 @@ ecclayout->eccbytes = nand_chip->ecc.bytes * (mtd->writesize / nand_chip->ecc.size); - ecclayout->eccpos[0] = BADBLOCK_MARKER_LENGTH; - ecclayout->oobfree->offset = ecclayout->eccpos[0] + - ecclayout->eccbytes; + oob_index = BADBLOCK_MARKER_LENGTH; + for (i = 0; i < ecclayout->eccbytes; i++, oob_index++) + ecclayout->eccpos[i] = oob_index; + /* reserved marker already included in ecclayout->eccbytes */ + ecclayout->oobfree->offset = + ecclayout->eccpos[ecclayout->eccbytes - 1] + 1; break; #else pr_err("nand: error: CONFIG_MTD_NAND_OMAP_BCH not enabled\n"); @@ -1978,11 +2000,8 @@ goto return_error; } - /* populate remaining ECC layout data */ - ecclayout->oobfree->length = mtd->oobsize - (BADBLOCK_MARKER_LENGTH + - ecclayout->eccbytes); - for (i = 1; i < ecclayout->eccbytes; i++) - ecclayout->eccpos[i] = ecclayout->eccpos[0] + i; + /* all OOB bytes from oobfree->offset till end off OOB are free */ + ecclayout->oobfree->length = mtd->oobsize - ecclayout->oobfree->offset; /* check if NAND device's OOB is enough to store ECC signatures */ if (mtd->oobsize < (ecclayout->eccbytes + BADBLOCK_MARKER_LENGTH)) { pr_err("not enough OOB bytes required = %d, available=%d\n", --- linux-3.13.0.orig/drivers/mtd/nand/pxa3xx_nand.c +++ linux-3.13.0/drivers/mtd/nand/pxa3xx_nand.c @@ -110,10 +110,10 @@ /* macros for registers read/write */ #define nand_writel(info, off, val) \ - __raw_writel((val), (info)->mmio_base + (off)) + writel_relaxed((val), (info)->mmio_base + (off)) #define nand_readl(info, off) \ - __raw_readl((info)->mmio_base + (off)) + readl_relaxed((info)->mmio_base + (off)) /* error code and state */ enum { --- linux-3.13.0.orig/drivers/mtd/tests/torturetest.c +++ linux-3.13.0/drivers/mtd/tests/torturetest.c @@ -264,7 +264,9 @@ int i; void *patt; - mtdtest_erase_good_eraseblocks(mtd, bad_ebs, eb, ebcnt); + err = mtdtest_erase_good_eraseblocks(mtd, bad_ebs, eb, ebcnt); + if (err) + goto out; /* Check if the eraseblocks contain only 0xFF bytes */ if (check) { --- linux-3.13.0.orig/drivers/mtd/ubi/fastmap.c +++ linux-3.13.0/drivers/mtd/ubi/fastmap.c @@ -330,6 +330,7 @@ av = tmp_av; else { ubi_err("orphaned volume in fastmap pool!"); + kmem_cache_free(ai->aeb_slab_cache, new_aeb); return UBI_BAD_FASTMAP; } --- linux-3.13.0.orig/drivers/mtd/ubi/upd.c +++ linux-3.13.0/drivers/mtd/ubi/upd.c @@ -133,6 +133,10 @@ ubi_assert(!vol->updating && !vol->changing_leb); vol->updating = 1; + vol->upd_buf = vmalloc(ubi->leb_size); + if (!vol->upd_buf) + return -ENOMEM; + err = set_update_marker(ubi, vol); if (err) return err; @@ -152,14 +156,12 @@ err = clear_update_marker(ubi, vol, 0); if (err) return err; + + vfree(vol->upd_buf); vol->updating = 0; return 0; } - vol->upd_buf = vmalloc(ubi->leb_size); - if (!vol->upd_buf) - return -ENOMEM; - vol->upd_ebs = div_u64(bytes + vol->usable_leb_size - 1, vol->usable_leb_size); vol->upd_bytes = bytes; --- linux-3.13.0.orig/drivers/mtd/ubi/wl.c +++ linux-3.13.0/drivers/mtd/ubi/wl.c @@ -1205,7 +1205,6 @@ err = do_sync_erase(ubi, e1, vol_id, lnum, 0); if (err) { - kmem_cache_free(ubi_wl_entry_slab, e1); if (e2) kmem_cache_free(ubi_wl_entry_slab, e2); goto out_ro; @@ -1219,10 +1218,8 @@ dbg_wl("PEB %d (LEB %d:%d) was put meanwhile, erase", e2->pnum, vol_id, lnum); err = do_sync_erase(ubi, e2, vol_id, lnum, 0); - if (err) { - kmem_cache_free(ubi_wl_entry_slab, e2); + if (err) goto out_ro; - } } dbg_wl("done"); @@ -1258,10 +1255,9 @@ ubi_free_vid_hdr(ubi, vid_hdr); err = do_sync_erase(ubi, e2, vol_id, lnum, torture); - if (err) { - kmem_cache_free(ubi_wl_entry_slab, e2); + if (err) goto out_ro; - } + mutex_unlock(&ubi->move_mutex); return 0; --- linux-3.13.0.orig/drivers/net/Kconfig +++ linux-3.13.0/drivers/net/Kconfig @@ -135,6 +135,7 @@ config MACVTAP tristate "MAC-VLAN based tap driver" depends on MACVLAN + depends on INET help This adds a specialized tap character device driver that is based on the MAC-VLAN network interface, called macvtap. A macvtap device @@ -205,6 +206,7 @@ config TUN tristate "Universal TUN/TAP device driver support" + depends on INET select CRC32 ---help--- TUN/TAP provides packet reception and transmission for user space @@ -341,7 +343,6 @@ The corresponding Linux frontend driver is enabled by the CONFIG_XEN_NETDEV_FRONTEND configuration option. - The backend driver presents a standard network device endpoint for each paravirtual network device to the driver domain network stack. These can then be bridged or routed @@ -353,12 +354,63 @@ will be called xen-netback. config VMXNET3 - tristate "VMware VMXNET3 ethernet driver" - depends on PCI && INET + tristate "VMware VMXNET3 ethernet driver" + depends on PCI && INET + help + This driver supports VMware's vmxnet3 virtual ethernet NIC. + To compile this driver as a module, choose M here: the + module will be called vmxnet3. + +config DPA + bool "Freescale Data Path Frame Manager Ethernet" + depends on FSL_SOC && FSL_BMAN_PORTAL && FSL_QMAN_PORTAL && FSL_FMAN + select PHYLIB + +config DPA_OFFLINE_PORTS + bool "Offline Ports support" + depends on DPA + default y + help + The Offline Parsing / Host Command ports (short: OH ports, of Offline ports) provide + most of the functionality of the regular, online ports, except they receive their + frames from a core or an accelerator on the SoC, via QMan frame queues, + rather than directly from the network. + Offline ports are configured via PCD (Parse-Classify-Distribute) schemes, just like + any online FMan port. They deliver the processed frames to frame queues, according + to the applied PCD configurations. + + Choosing this feature will not impact the functionality and/or performance of the system, + so it is safe to have it. + +config DPA_MAX_FRM_SIZE + int "Maximum L2 frame size" + depends on DPA + range 64 9600 + default "1522" help - This driver supports VMware's vmxnet3 virtual ethernet NIC. - To compile this driver as a module, choose M here: the - module will be called vmxnet3. + Configure this in relation to the maximum possible MTU of your network configuration. In particular, + one would need to increase this value in order to use jumbo frames. DPA_MAX_FRM_SIZE must accomodate + the Ethernet FCS (4 bytes) and one ETH+VLAN header (18 bytes), to a total of 22 bytes in excess of + the desired L3 MTU. + + Note that having too large a DPA_MAX_FRM_SIZE (much larger than the actual MTU) may lead to buffer + exhaustion, especially in the case of badly fragmented datagrams on the Rx path. Conversely, + having a DPA_MAX_FRM_SIZE smaller than the actual MTU will lead to frames being dropped. + + This can be overridden by specifying "fsl_fman_phy_max_frm" in the kernel bootargs: + * in Hypervisor-based scenarios, by adding a "chosen" node with the "bootargs" property specifying + "fsl_fman_phy_max_frm="; + * in non-Hypervisor-based scenarios, via u-boot's env, by modifying the "bootargs" env variable. + +config FSL_DPA_1588 + tristate "IEEE 1588-compliant timestamping" + depends on DPA + default n + +config DPAA_ETH_UNIT_TESTS + bool "Run Unit Tests for DPAA Ethernet" + depends on DPA + default y source "drivers/net/hyperv/Kconfig" --- linux-3.13.0.orig/drivers/net/Makefile +++ linux-3.13.0/drivers/net/Makefile @@ -56,6 +56,7 @@ obj-$(CONFIG_WLAN) += wireless/ obj-$(CONFIG_WIMAX) += wimax/ obj-$(CONFIG_IEEE802154) += ieee802154/ +obj-$(if $(CONFIG_DPA),y) += dpa/ obj-$(CONFIG_VMXNET3) += vmxnet3/ obj-$(CONFIG_XEN_NETDEV_FRONTEND) += xen-netfront.o --- linux-3.13.0.orig/drivers/net/bonding/bond_3ad.c +++ linux-3.13.0/drivers/net/bonding/bond_3ad.c @@ -1806,8 +1806,6 @@ BOND_AD_INFO(bond).agg_select_timer = timeout; } -static u16 aggregator_identifier; - /** * bond_3ad_initialize - initialize a bond's 802.3ad parameters and structures * @bond: bonding struct to work on @@ -1821,7 +1819,7 @@ if (MAC_ADDRESS_COMPARE(&(BOND_AD_INFO(bond).system.sys_mac_addr), bond->dev->dev_addr)) { - aggregator_identifier = 0; + BOND_AD_INFO(bond).aggregator_identifier = 0; BOND_AD_INFO(bond).system.sys_priority = 0xFFFF; BOND_AD_INFO(bond).system.sys_mac_addr = *((struct mac_addr *)bond->dev->dev_addr); @@ -1892,7 +1890,7 @@ ad_initialize_agg(aggregator); aggregator->aggregator_mac_address = *((struct mac_addr *)bond->dev->dev_addr); - aggregator->aggregator_identifier = (++aggregator_identifier); + aggregator->aggregator_identifier = ++BOND_AD_INFO(bond).aggregator_identifier; aggregator->slave = slave; aggregator->is_active = 0; aggregator->num_of_ports = 0; --- linux-3.13.0.orig/drivers/net/bonding/bond_3ad.h +++ linux-3.13.0/drivers/net/bonding/bond_3ad.h @@ -253,6 +253,7 @@ struct ad_bond_info { struct ad_system system; /* 802.3ad system structure */ u32 agg_select_timer; // Timer to select aggregator after all adapter's hand shakes + u16 aggregator_identifier; }; struct ad_slave_info { --- linux-3.13.0.orig/drivers/net/bonding/bond_alb.c +++ linux-3.13.0/drivers/net/bonding/bond_alb.c @@ -731,7 +731,7 @@ client_info->ntt = 0; } - if (!vlan_get_tag(skb, &client_info->vlan_id)) + if (vlan_get_tag(skb, &client_info->vlan_id)) client_info->vlan_id = 0; if (!client_info->assigned) { --- linux-3.13.0.orig/drivers/net/bonding/bond_main.c +++ linux-3.13.0/drivers/net/bonding/bond_main.c @@ -1090,10 +1090,14 @@ NETIF_F_FRAGLIST | NETIF_F_ALL_TSO | \ NETIF_F_HIGHDMA | NETIF_F_LRO) +#define BOND_ENC_FEATURES (NETIF_F_ALL_CSUM | NETIF_F_SG | NETIF_F_RXCSUM |\ + NETIF_F_TSO | NETIF_F_GSO_UDP_TUNNEL) + static void bond_compute_features(struct bonding *bond) { unsigned int flags, dst_release_flag = IFF_XMIT_DST_RELEASE; netdev_features_t vlan_features = BOND_VLAN_FEATURES; + netdev_features_t enc_features = BOND_ENC_FEATURES; struct net_device *bond_dev = bond->dev; struct list_head *iter; struct slave *slave; @@ -1108,6 +1112,9 @@ vlan_features = netdev_increment_features(vlan_features, slave->dev->vlan_features, BOND_VLAN_FEATURES); + enc_features = netdev_increment_features(enc_features, + slave->dev->hw_enc_features, + BOND_ENC_FEATURES); dst_release_flag &= slave->dev->priv_flags; if (slave->dev->hard_header_len > max_hard_header_len) max_hard_header_len = slave->dev->hard_header_len; @@ -1118,6 +1125,7 @@ done: bond_dev->vlan_features = vlan_features; + bond_dev->hw_enc_features = enc_features; bond_dev->hard_header_len = max_hard_header_len; bond_dev->gso_max_segs = gso_max_segs; netif_set_gso_max_size(bond_dev, gso_max_size); @@ -3630,8 +3638,14 @@ else bond_xmit_slave_id(bond, skb, 0); } else { - slave_id = bond_rr_gen_slave_id(bond); - bond_xmit_slave_id(bond, skb, slave_id % bond->slave_cnt); + int slave_cnt = ACCESS_ONCE(bond->slave_cnt); + + if (likely(slave_cnt)) { + slave_id = bond_rr_gen_slave_id(bond); + bond_xmit_slave_id(bond, skb, slave_id % slave_cnt); + } else { + dev_kfree_skb_any(skb); + } } return NETDEV_TX_OK; @@ -3662,8 +3676,13 @@ static int bond_xmit_xor(struct sk_buff *skb, struct net_device *bond_dev) { struct bonding *bond = netdev_priv(bond_dev); + int slave_cnt = ACCESS_ONCE(bond->slave_cnt); - bond_xmit_slave_id(bond, skb, bond_xmit_hash(bond, skb, bond->slave_cnt)); + if (likely(slave_cnt)) + bond_xmit_slave_id(bond, skb, + bond_xmit_hash(bond, skb, bond->slave_cnt)); + else + dev_kfree_skb_any(skb); return NETDEV_TX_OK; } @@ -3733,7 +3752,7 @@ static u16 bond_select_queue(struct net_device *dev, struct sk_buff *skb, - void *accel_priv) + void *accel_priv, select_queue_fallback_t fallback) { /* * This helper function exists to help dev_pick_tx get the correct @@ -3947,6 +3966,7 @@ NETIF_F_HW_VLAN_CTAG_FILTER; bond_dev->hw_features &= ~(NETIF_F_ALL_CSUM & ~NETIF_F_HW_CSUM); + bond_dev->hw_features |= NETIF_F_GSO_UDP_TUNNEL; bond_dev->features |= bond_dev->hw_features; } @@ -4512,6 +4532,7 @@ out: return res; err: + bond_destroy_debugfs(); bond_netlink_fini(); err_link: unregister_pernet_subsys(&bond_net_ops); --- linux-3.13.0.orig/drivers/net/can/at91_can.c +++ linux-3.13.0/drivers/net/can/at91_can.c @@ -1120,7 +1120,9 @@ struct at91_priv *priv = netdev_priv(dev); int err; - clk_enable(priv->clk); + err = clk_prepare_enable(priv->clk); + if (err) + return err; /* check or determine and set bittime */ err = open_candev(dev); @@ -1146,7 +1148,7 @@ out_close: close_candev(dev); out: - clk_disable(priv->clk); + clk_disable_unprepare(priv->clk); return err; } @@ -1163,7 +1165,7 @@ at91_chip_stop(dev, CAN_STATE_STOPPED); free_irq(dev->irq, dev); - clk_disable(priv->clk); + clk_disable_unprepare(priv->clk); close_candev(dev); --- linux-3.13.0.orig/drivers/net/can/c_can/c_can_platform.c +++ linux-3.13.0/drivers/net/can/c_can/c_can_platform.c @@ -194,8 +194,9 @@ priv->instance = pdev->id; res = platform_get_resource(pdev, IORESOURCE_MEM, 1); - priv->raminit_ctrlreg = devm_ioremap_resource(&pdev->dev, res); - if (IS_ERR(priv->raminit_ctrlreg) || (int)priv->instance < 0) + priv->raminit_ctrlreg = devm_ioremap(&pdev->dev, res->start, + resource_size(res)); + if (!priv->raminit_ctrlreg || priv->instance < 0) dev_info(&pdev->dev, "control memory is not used for raminit\n"); else priv->raminit = c_can_hw_raminit; --- linux-3.13.0.orig/drivers/net/can/dev.c +++ linux-3.13.0/drivers/net/can/dev.c @@ -324,19 +324,10 @@ } if (!priv->echo_skb[idx]) { - struct sock *srcsk = skb->sk; - if (atomic_read(&skb->users) != 1) { - struct sk_buff *old_skb = skb; - - skb = skb_clone(old_skb, GFP_ATOMIC); - kfree_skb(old_skb); - if (!skb) - return; - } else - skb_orphan(skb); - - skb->sk = srcsk; + skb = can_create_echo_skb(skb); + if (!skb) + return; /* make settings for echo to reduce code in irq context */ skb->protocol = htons(ETH_P_CAN); @@ -394,7 +385,7 @@ BUG_ON(idx >= priv->echo_skb_max); if (priv->echo_skb[idx]) { - kfree_skb(priv->echo_skb[idx]); + dev_kfree_skb_any(priv->echo_skb[idx]); priv->echo_skb[idx] = NULL; } } --- linux-3.13.0.orig/drivers/net/can/flexcan.c +++ linux-3.13.0/drivers/net/can/flexcan.c @@ -125,7 +125,9 @@ FLEXCAN_ESR_BOFF_INT | FLEXCAN_ESR_ERR_INT) /* FLEXCAN interrupt flag register (IFLAG) bits */ -#define FLEXCAN_TX_BUF_ID 8 +/* Errata ERR005829 step7: Reserve first valid MB */ +#define FLEXCAN_TX_BUF_RESERVED 8 +#define FLEXCAN_TX_BUF_ID 9 #define FLEXCAN_IFLAG_BUF(x) BIT(x) #define FLEXCAN_IFLAG_RX_FIFO_OVERFLOW BIT(7) #define FLEXCAN_IFLAG_RX_FIFO_WARN BIT(6) @@ -136,6 +138,17 @@ /* FLEXCAN message buffers */ #define FLEXCAN_MB_CNT_CODE(x) (((x) & 0xf) << 24) +#define FLEXCAN_MB_CODE_RX_INACTIVE (0x0 << 24) +#define FLEXCAN_MB_CODE_RX_EMPTY (0x4 << 24) +#define FLEXCAN_MB_CODE_RX_FULL (0x2 << 24) +#define FLEXCAN_MB_CODE_RX_OVERRRUN (0x6 << 24) +#define FLEXCAN_MB_CODE_RX_RANSWER (0xa << 24) + +#define FLEXCAN_MB_CODE_TX_INACTIVE (0x8 << 24) +#define FLEXCAN_MB_CODE_TX_ABORT (0x9 << 24) +#define FLEXCAN_MB_CODE_TX_DATA (0xc << 24) +#define FLEXCAN_MB_CODE_TX_TANSWER (0xe << 24) + #define FLEXCAN_MB_CNT_SRR BIT(22) #define FLEXCAN_MB_CNT_IDE BIT(21) #define FLEXCAN_MB_CNT_RTR BIT(20) @@ -144,6 +157,8 @@ #define FLEXCAN_MB_CODE_MASK (0xf0ffffff) +#define FLEXCAN_TIMEOUT_US (50) + /* * FLEXCAN hardware feature flags * @@ -259,6 +274,22 @@ } #endif +static inline int flexcan_transceiver_enable(const struct flexcan_priv *priv) +{ + if (!priv->reg_xceiver) + return 0; + + return regulator_enable(priv->reg_xceiver); +} + +static inline int flexcan_transceiver_disable(const struct flexcan_priv *priv) +{ + if (!priv->reg_xceiver) + return 0; + + return regulator_disable(priv->reg_xceiver); +} + static inline int flexcan_has_and_handle_berr(const struct flexcan_priv *priv, u32 reg_esr) { @@ -266,26 +297,42 @@ (reg_esr & FLEXCAN_ESR_ERR_BUS); } -static inline void flexcan_chip_enable(struct flexcan_priv *priv) +static int flexcan_chip_enable(struct flexcan_priv *priv) { struct flexcan_regs __iomem *regs = priv->base; + unsigned int timeout = FLEXCAN_TIMEOUT_US / 10; u32 reg; reg = flexcan_read(®s->mcr); reg &= ~FLEXCAN_MCR_MDIS; flexcan_write(reg, ®s->mcr); - udelay(10); + while (timeout-- && (flexcan_read(®s->mcr) & FLEXCAN_MCR_LPM_ACK)) + usleep_range(10, 20); + + if (flexcan_read(®s->mcr) & FLEXCAN_MCR_LPM_ACK) + return -ETIMEDOUT; + + return 0; } -static inline void flexcan_chip_disable(struct flexcan_priv *priv) +static int flexcan_chip_disable(struct flexcan_priv *priv) { struct flexcan_regs __iomem *regs = priv->base; + unsigned int timeout = FLEXCAN_TIMEOUT_US / 10; u32 reg; reg = flexcan_read(®s->mcr); reg |= FLEXCAN_MCR_MDIS; flexcan_write(reg, ®s->mcr); + + while (timeout-- && !(flexcan_read(®s->mcr) & FLEXCAN_MCR_LPM_ACK)) + usleep_range(10, 20); + + if (!(flexcan_read(®s->mcr) & FLEXCAN_MCR_LPM_ACK)) + return -ETIMEDOUT; + + return 0; } static int flexcan_get_berr_counter(const struct net_device *dev, @@ -338,6 +385,14 @@ flexcan_write(can_id, ®s->cantxfg[FLEXCAN_TX_BUF_ID].can_id); flexcan_write(ctrl, ®s->cantxfg[FLEXCAN_TX_BUF_ID].can_ctrl); + /* Errata ERR005829 step8: + * Write twice INACTIVE(0x8) code to first MB. + */ + flexcan_write(FLEXCAN_MB_CODE_TX_INACTIVE, + ®s->cantxfg[FLEXCAN_TX_BUF_RESERVED].can_ctrl); + flexcan_write(FLEXCAN_MB_CODE_TX_INACTIVE, + ®s->cantxfg[FLEXCAN_TX_BUF_RESERVED].can_ctrl); + return NETDEV_TX_OK; } @@ -647,6 +702,9 @@ stats->tx_bytes += can_get_echo_skb(dev, 0); stats->tx_packets++; can_led_event(dev, CAN_LED_EVENT_TX); + /* after sending a RTR frame mailbox is in RX mode */ + flexcan_write(FLEXCAN_MB_CODE_TX_INACTIVE, + ®s->cantxfg[FLEXCAN_TX_BUF_ID].can_ctrl); flexcan_write((1 << FLEXCAN_TX_BUF_ID), ®s->iflag1); netif_wake_queue(dev); } @@ -704,9 +762,12 @@ struct flexcan_regs __iomem *regs = priv->base; int err; u32 reg_mcr, reg_ctrl; + int i; /* enable module */ - flexcan_chip_enable(priv); + err = flexcan_chip_enable(priv); + if (err) + return err; /* soft reset */ flexcan_write(FLEXCAN_MCR_SOFTRST, ®s->mcr); @@ -773,8 +834,18 @@ netdev_dbg(dev, "%s: writing ctrl=0x%08x", __func__, reg_ctrl); flexcan_write(reg_ctrl, ®s->ctrl); - /* Abort any pending TX, mark Mailbox as INACTIVE */ - flexcan_write(FLEXCAN_MB_CNT_CODE(0x4), + /* clear and invalidate all mailboxes first */ + for (i = FLEXCAN_TX_BUF_ID; i < ARRAY_SIZE(regs->cantxfg); i++) { + flexcan_write(FLEXCAN_MB_CODE_RX_INACTIVE, + ®s->cantxfg[i].can_ctrl); + } + + /* Errata ERR005829: mark first TX mailbox as INACTIVE */ + flexcan_write(FLEXCAN_MB_CODE_TX_INACTIVE, + ®s->cantxfg[FLEXCAN_TX_BUF_RESERVED].can_ctrl); + + /* mark TX mailbox as INACTIVE */ + flexcan_write(FLEXCAN_MB_CODE_TX_INACTIVE, ®s->cantxfg[FLEXCAN_TX_BUF_ID].can_ctrl); /* acceptance mask/acceptance code (accept everything) */ @@ -785,11 +856,9 @@ if (priv->devtype_data->features & FLEXCAN_HAS_V10_FEATURES) flexcan_write(0x0, ®s->rxfgmask); - if (priv->reg_xceiver) { - err = regulator_enable(priv->reg_xceiver); - if (err) - goto out; - } + err = flexcan_transceiver_enable(priv); + if (err) + goto out; /* synchronize with the can bus */ reg_mcr = flexcan_read(®s->mcr); @@ -824,16 +893,17 @@ struct flexcan_regs __iomem *regs = priv->base; u32 reg; - /* Disable all interrupts */ - flexcan_write(0, ®s->imask1); - /* Disable + halt module */ reg = flexcan_read(®s->mcr); reg |= FLEXCAN_MCR_MDIS | FLEXCAN_MCR_HALT; flexcan_write(reg, ®s->mcr); - if (priv->reg_xceiver) - regulator_disable(priv->reg_xceiver); + /* Disable all interrupts */ + flexcan_write(0, ®s->imask1); + flexcan_write(priv->reg_ctrl_default & ~FLEXCAN_CTRL_ERR_ALL, + ®s->ctrl); + + flexcan_transceiver_disable(priv); priv->can.state = CAN_STATE_STOPPED; return; @@ -863,7 +933,7 @@ /* start chip and queuing */ err = flexcan_chip_start(dev); if (err) - goto out_close; + goto out_free_irq; can_led_event(dev, CAN_LED_EVENT_OPEN); @@ -872,6 +942,8 @@ return 0; + out_free_irq: + free_irq(dev->irq, dev); out_close: close_candev(dev); out_disable_per: @@ -942,12 +1014,16 @@ goto out_disable_ipg; /* select "bus clock", chip must be disabled */ - flexcan_chip_disable(priv); + err = flexcan_chip_disable(priv); + if (err) + goto out_disable_per; reg = flexcan_read(®s->ctrl); reg |= FLEXCAN_CTRL_CLK_SRC; flexcan_write(reg, ®s->ctrl); - flexcan_chip_enable(priv); + err = flexcan_chip_enable(priv); + if (err) + goto out_chip_disable; /* set freeze, halt and activate FIFO, restrict register access */ reg = flexcan_read(®s->mcr); @@ -964,14 +1040,15 @@ if (!(reg & FLEXCAN_MCR_FEN)) { netdev_err(dev, "Could not enable RX FIFO, unsupported core\n"); err = -ENODEV; - goto out_disable_per; + goto out_chip_disable; } err = register_candev(dev); - out_disable_per: /* disable core and turn off clocks */ + out_chip_disable: flexcan_chip_disable(priv); + out_disable_per: clk_disable_unprepare(priv->clk_per); out_disable_ipg: clk_disable_unprepare(priv->clk_ipg); @@ -1101,9 +1178,10 @@ static int flexcan_remove(struct platform_device *pdev) { struct net_device *dev = platform_get_drvdata(pdev); + struct flexcan_priv *priv = netdev_priv(dev); unregister_flexcandev(dev); - + netif_napi_del(&priv->napi); free_candev(dev); return 0; @@ -1114,8 +1192,11 @@ { struct net_device *dev = dev_get_drvdata(device); struct flexcan_priv *priv = netdev_priv(dev); + int err; - flexcan_chip_disable(priv); + err = flexcan_chip_disable(priv); + if (err) + return err; if (netif_running(dev)) { netif_stop_queue(dev); @@ -1136,9 +1217,7 @@ netif_device_attach(dev); netif_start_queue(dev); } - flexcan_chip_enable(priv); - - return 0; + return flexcan_chip_enable(priv); } #endif /* CONFIG_PM_SLEEP */ --- linux-3.13.0.orig/drivers/net/can/janz-ican3.c +++ linux-3.13.0/drivers/net/can/janz-ican3.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include @@ -1134,20 +1135,9 @@ */ static void ican3_put_echo_skb(struct ican3_dev *mod, struct sk_buff *skb) { - struct sock *srcsk = skb->sk; - - if (atomic_read(&skb->users) != 1) { - struct sk_buff *old_skb = skb; - - skb = skb_clone(old_skb, GFP_ATOMIC); - kfree_skb(old_skb); - if (!skb) - return; - } else { - skb_orphan(skb); - } - - skb->sk = srcsk; + skb = can_create_echo_skb(skb); + if (!skb) + return; /* save this skb for tx interrupt echo handling */ skb_queue_tail(&mod->echoq, skb); --- linux-3.13.0.orig/drivers/net/can/led.c +++ linux-3.13.0/drivers/net/can/led.c @@ -97,6 +97,9 @@ if (!priv) return NOTIFY_DONE; + if (!priv->tx_led_trig || !priv->rx_led_trig) + return NOTIFY_DONE; + if (msg == NETDEV_CHANGENAME) { snprintf(name, sizeof(name), "%s-tx", netdev->name); led_trigger_rename_static(name, priv->tx_led_trig); --- linux-3.13.0.orig/drivers/net/can/sja1000/peak_pci.c +++ linux-3.13.0/drivers/net/can/sja1000/peak_pci.c @@ -551,7 +551,7 @@ { struct sja1000_priv *priv; struct peak_pci_chan *chan; - struct net_device *dev; + struct net_device *dev, *prev_dev; void __iomem *cfg_base, *reg_base; u16 sub_sys_id, icr; int i, err, channels; @@ -687,11 +687,13 @@ writew(0x0, cfg_base + PITA_ICR + 2); chan = NULL; - for (dev = pci_get_drvdata(pdev); dev; dev = chan->prev_dev) { - unregister_sja1000dev(dev); - free_sja1000dev(dev); + for (dev = pci_get_drvdata(pdev); dev; dev = prev_dev) { priv = netdev_priv(dev); chan = priv->priv; + prev_dev = chan->prev_dev; + + unregister_sja1000dev(dev); + free_sja1000dev(dev); } /* free any PCIeC resources too */ @@ -725,10 +727,12 @@ /* Loop over all registered devices */ while (1) { + struct net_device *prev_dev = chan->prev_dev; + dev_info(&pdev->dev, "removing device %s\n", dev->name); unregister_sja1000dev(dev); free_sja1000dev(dev); - dev = chan->prev_dev; + dev = prev_dev; if (!dev) { /* do that only for first channel */ --- linux-3.13.0.orig/drivers/net/can/slcan.c +++ linux-3.13.0/drivers/net/can/slcan.c @@ -54,6 +54,7 @@ #include #include #include +#include #include #include @@ -87,6 +88,7 @@ struct tty_struct *tty; /* ptr to TTY structure */ struct net_device *dev; /* easy for intr handling */ spinlock_t lock; + struct work_struct tx_work; /* Flushes transmit buffer */ /* These are pointers to the malloc()ed frame buffers. */ unsigned char rbuff[SLC_MTU]; /* receiver buffer */ @@ -311,34 +313,44 @@ sl->dev->stats.tx_bytes += cf->can_dlc; } -/* - * Called by the driver when there's room for more data. If we have - * more packets to send, we send them here. - */ -static void slcan_write_wakeup(struct tty_struct *tty) +/* Write out any remaining transmit buffer. Scheduled when tty is writable */ +static void slcan_transmit(struct work_struct *work) { + struct slcan *sl = container_of(work, struct slcan, tx_work); int actual; - struct slcan *sl = (struct slcan *) tty->disc_data; + spin_lock_bh(&sl->lock); /* First make sure we're connected. */ - if (!sl || sl->magic != SLCAN_MAGIC || !netif_running(sl->dev)) + if (!sl->tty || sl->magic != SLCAN_MAGIC || !netif_running(sl->dev)) { + spin_unlock_bh(&sl->lock); return; + } - spin_lock(&sl->lock); if (sl->xleft <= 0) { /* Now serial buffer is almost free & we can start * transmission of another packet */ sl->dev->stats.tx_packets++; - clear_bit(TTY_DO_WRITE_WAKEUP, &tty->flags); - spin_unlock(&sl->lock); + clear_bit(TTY_DO_WRITE_WAKEUP, &sl->tty->flags); + spin_unlock_bh(&sl->lock); netif_wake_queue(sl->dev); return; } - actual = tty->ops->write(tty, sl->xhead, sl->xleft); + actual = sl->tty->ops->write(sl->tty, sl->xhead, sl->xleft); sl->xleft -= actual; sl->xhead += actual; - spin_unlock(&sl->lock); + spin_unlock_bh(&sl->lock); +} + +/* + * Called by the driver when there's room for more data. + * Schedule the transmit. + */ +static void slcan_write_wakeup(struct tty_struct *tty) +{ + struct slcan *sl = tty->disc_data; + + schedule_work(&sl->tx_work); } /* Send a can_frame to a TTY queue. */ @@ -524,6 +536,7 @@ sl->magic = SLCAN_MAGIC; sl->dev = dev; spin_lock_init(&sl->lock); + INIT_WORK(&sl->tx_work, slcan_transmit); slcan_devs[i] = dev; return sl; @@ -622,8 +635,12 @@ if (!sl || sl->magic != SLCAN_MAGIC || sl->tty != tty) return; + spin_lock_bh(&sl->lock); tty->disc_data = NULL; sl->tty = NULL; + spin_unlock_bh(&sl->lock); + + flush_work(&sl->tx_work); /* Flush network side */ unregister_netdev(sl->dev); --- linux-3.13.0.orig/drivers/net/can/usb/esd_usb2.c +++ linux-3.13.0/drivers/net/can/usb/esd_usb2.c @@ -1142,6 +1142,7 @@ } } unlink_all_urbs(dev); + kfree(dev); } } --- linux-3.13.0.orig/drivers/net/can/usb/kvaser_usb.c +++ linux-3.13.0/drivers/net/can/usb/kvaser_usb.c @@ -474,6 +474,8 @@ return err; dev->nchannels = msg.u.cardinfo.nchannels; + if (dev->nchannels > MAX_NET_DEVICES) + return -EINVAL; return 0; } --- linux-3.13.0.orig/drivers/net/can/usb/peak_usb/pcan_usb_core.c +++ linux-3.13.0/drivers/net/can/usb/peak_usb/pcan_usb_core.c @@ -734,7 +734,7 @@ dev->cmd_buf = kmalloc(PCAN_USB_MAX_CMD_LEN, GFP_KERNEL); if (!dev->cmd_buf) { err = -ENOMEM; - goto lbl_set_intf_data; + goto lbl_free_candev; } dev->udev = usb_dev; @@ -773,7 +773,7 @@ err = register_candev(netdev); if (err) { dev_err(&intf->dev, "couldn't register CAN device: %d\n", err); - goto lbl_free_cmd_buf; + goto lbl_restore_intf_data; } if (dev->prev_siblings) @@ -786,14 +786,14 @@ if (dev->adapter->dev_init) { err = dev->adapter->dev_init(dev); if (err) - goto lbl_free_cmd_buf; + goto lbl_unregister_candev; } /* set bus off */ if (dev->adapter->dev_set_bus) { err = dev->adapter->dev_set_bus(dev, 0); if (err) - goto lbl_free_cmd_buf; + goto lbl_unregister_candev; } /* get device number early */ @@ -805,11 +805,14 @@ return 0; -lbl_free_cmd_buf: - kfree(dev->cmd_buf); +lbl_unregister_candev: + unregister_candev(netdev); -lbl_set_intf_data: +lbl_restore_intf_data: usb_set_intfdata(intf, dev->prev_siblings); + kfree(dev->cmd_buf); + +lbl_free_candev: free_candev(netdev); return err; --- linux-3.13.0.orig/drivers/net/can/usb/peak_usb/pcan_usb_pro.c +++ linux-3.13.0/drivers/net/can/usb/peak_usb/pcan_usb_pro.c @@ -333,8 +333,6 @@ if (!(dev->state & PCAN_USB_STATE_CONNECTED)) return 0; - memset(req_addr, '\0', req_size); - req_type = USB_TYPE_VENDOR | USB_RECIP_OTHER; switch (req_id) { @@ -345,6 +343,7 @@ default: p = usb_rcvctrlpipe(dev->udev, 0); req_type |= USB_DIR_IN; + memset(req_addr, '\0', req_size); break; } --- linux-3.13.0.orig/drivers/net/can/vcan.c +++ linux-3.13.0/drivers/net/can/vcan.c @@ -46,6 +46,7 @@ #include #include #include +#include #include #include @@ -109,25 +110,23 @@ stats->rx_packets++; stats->rx_bytes += cfd->len; } - kfree_skb(skb); + consume_skb(skb); return NETDEV_TX_OK; } /* perform standard echo handling for CAN network interfaces */ if (loop) { - struct sock *srcsk = skb->sk; - skb = skb_share_check(skb, GFP_ATOMIC); + skb = can_create_echo_skb(skb); if (!skb) return NETDEV_TX_OK; /* receive with packet counting */ - skb->sk = srcsk; vcan_rx(skb, dev); } else { /* no looped packets => no counting */ - kfree_skb(skb); + consume_skb(skb); } return NETDEV_TX_OK; } --- linux-3.13.0.orig/drivers/net/dpa/Makefile +++ linux-3.13.0/drivers/net/dpa/Makefile @@ -0,0 +1,19 @@ +# +# Makefile for the Freescale Ethernet controllers +# +EXTRA_CFLAGS += -DVERSION=\"\" +# +#Include netcomm SW specific definitions +include $(srctree)/drivers/net/dpa/NetCommSw/ncsw_config.mk + +EXTRA_CFLAGS += -I$(NET_DPA) + +#Netcomm SW tree +obj-$(CONFIG_FSL_FMAN) += NetCommSw/ +obj-$(CONFIG_FSL_DPA_1588) += dpaa_1588.o +obj-$(CONFIG_DPA) += fsl-mac.o fsl-dpa.o +obj-$(CONFIG_DPA_OFFLINE_PORTS) += fsl-oh.o + +fsl-dpa-objs := dpa-ethtool.o dpaa_eth.o +fsl-mac-objs := mac.o mac-api.o +fsl-oh-objs := offline_port.o --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Kconfig +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Kconfig @@ -0,0 +1,57 @@ +menu "Frame Manager support" + +menuconfig FSL_FMAN + bool "Freescale Frame Manager (datapath) support" + # depends on PPC_E500MC + default y + ---help--- + If unsure, say Y. + +if FSL_FMAN + +config FSL_FMAN_TEST + bool "FMan test module" + default n + ---help--- + This option compiles test code for FMan. + +menu "FMAN Processor support" +choice + depends on FSL_FMAN + prompt "Processor Type" + +config FMAN_P3040_P4080_P5020 + bool "P3040 P4080 5020" + +config FMAN_P1023 + bool "P1023" + +endchoice +endmenu + +config FMAN_RESOURCE_ALLOCATION_ALGORITHM + bool "Enable FMan dynamic resource allocation algorithm" + default n + ---help--- + Enables algorithm for dynamic resource allocation + +config FMAN_DISABLE_OH_TO_REUSE_RESOURCES + depends on FMAN_RESOURCE_ALLOCATION_ALGORITHM + bool "Disable offline parsing ports to reuse resources" + default n + ---help--- + Redistributes FMan OH's resources to all other ports, + thus enabling other configurations. + +config FMAN_MIB_CNT_OVF_IRQ_EN + bool "Enable the dTSEC MIB counters overflow interrupt" + default n + ---help--- + Enable the dTSEC MIB counters overflow interrupt to get + accurate MIB counters values. Enabled it compensates + for the counters overflow but reduces performance and + triggers error messages in HV setups. + +endif # FSL_FMAN + +endmenu --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Makefile +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Makefile @@ -0,0 +1,13 @@ +# +# Makefile for the Freescale Ethernet controllers +# +EXTRA_CFLAGS += -DVERSION=\"\" +# +#Include netcomm SW specific definitions +include $(srctree)/drivers/net/dpa/NetCommSw/ncsw_config.mk +# +obj-y += etc/ +obj-${CONFIG_FMAN_P3040_P4080_P5020} += integrations/P3040_P4080_P5020/ +obj-${CONFIG_FMAN_P1023} += integrations/P1023/ +obj-y += Peripherals/FM/ +obj-y += src/ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/HC/Makefile +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/HC/Makefile @@ -0,0 +1,15 @@ +# +# Makefile for the Freescale Ethernet controllers +# +EXTRA_CFLAGS += -DVERSION=\"\" +# +#Include netcomm SW specific definitions +include $(srctree)/drivers/net/dpa/NetCommSw/ncsw_config.mk + +NCSW_FM_INC = $(srctree)/drivers/net/dpa/NetCommSw/Peripherals/FM/inc + +EXTRA_CFLAGS += -I$(NCSW_FM_INC) + +obj-y += fsl-ncsw-Hc.o + +fsl-ncsw-Hc-objs := hc.o --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/HC/hc.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/HC/hc.c @@ -0,0 +1,1584 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "std_ext.h" +#include "error_ext.h" +#include "sprint_ext.h" +#include "string_ext.h" + +#include "fm_common.h" +#include "fm_hc.h" + + +#define HC_HCOR_OPCODE_PLCR_PRFL 0x0 +#define HC_HCOR_OPCODE_KG_SCM 0x1 +#define HC_HCOR_OPCODE_SYNC 0x2 +#define HC_HCOR_OPCODE_CC 0x3 +#define HC_HCOR_OPCODE_CC_CAPWAP_REASSM_TIMEOUT 0x5 + +#define HC_HCOR_GBL 0x20000000 + +#define SIZE_OF_HC_FRAME_PORT_REGS (sizeof(t_HcFrame)-sizeof(t_FmPcdKgInterModuleSchemeRegs)+sizeof(t_FmPcdKgPortRegs)) +#define SIZE_OF_HC_FRAME_SCHEME_REGS sizeof(t_HcFrame) +#define SIZE_OF_HC_FRAME_PROFILES_REGS (sizeof(t_HcFrame)-sizeof(t_FmPcdKgInterModuleSchemeRegs)+sizeof(t_FmPcdPlcrInterModuleProfileRegs)) +#define SIZE_OF_HC_FRAME_PROFILE_CNT (sizeof(t_HcFrame)-sizeof(t_FmPcdPlcrInterModuleProfileRegs)+sizeof(uint32_t)) +#define SIZE_OF_HC_FRAME_READ_OR_CC_DYNAMIC 16 + +#define BUILD_FD(len) \ +do { \ + memset(&fmFd, 0, sizeof(t_DpaaFD)); \ + DPAA_FD_SET_ADDR(&fmFd, p_HcFrame); \ + DPAA_FD_SET_OFFSET(&fmFd, 0); \ + DPAA_FD_SET_LENGTH(&fmFd, len); \ +} while (0) + + +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(push,1) +#endif /* defined(__MWERKS__) && ... */ +#define MEM_MAP_START + +/**************************************************************************//** + @Description PCD KG scheme registers +*//***************************************************************************/ +typedef _Packed struct t_FmPcdKgSchemeRegsWithoutCounter { + volatile uint32_t kgse_mode; /**< MODE */ + volatile uint32_t kgse_ekfc; /**< Extract Known Fields Command */ + volatile uint32_t kgse_ekdv; /**< Extract Known Default Value */ + volatile uint32_t kgse_bmch; /**< Bit Mask Command High */ + volatile uint32_t kgse_bmcl; /**< Bit Mask Command Low */ + volatile uint32_t kgse_fqb; /**< Frame Queue Base */ + volatile uint32_t kgse_hc; /**< Hash Command */ + volatile uint32_t kgse_ppc; /**< Policer Profile Command */ + volatile uint32_t kgse_gec[FM_PCD_KG_NUM_OF_GENERIC_REGS]; + /**< Generic Extract Command */ + volatile uint32_t kgse_dv0; /**< KeyGen Scheme Entry Default Value 0 */ + volatile uint32_t kgse_dv1; /**< KeyGen Scheme Entry Default Value 1 */ + volatile uint32_t kgse_ccbs; /**< KeyGen Scheme Entry Coarse Classification Bit*/ + volatile uint32_t kgse_mv; /**< KeyGen Scheme Entry Match vector */ +} _PackedType t_FmPcdKgSchemeRegsWithoutCounter; + +typedef _Packed struct t_FmPcdKgPortRegs { + volatile uint32_t spReg; + volatile uint32_t cppReg; +} _PackedType t_FmPcdKgPortRegs; + +typedef _Packed struct t_HcFrame { + volatile uint32_t opcode; + volatile uint32_t actionReg; + volatile uint32_t extraReg; + volatile uint32_t commandSequence; + union { + t_FmPcdKgInterModuleSchemeRegs schemeRegs; + t_FmPcdKgInterModuleSchemeRegs schemeRegsWithoutCounter; + t_FmPcdPlcrInterModuleProfileRegs profileRegs; + volatile uint32_t singleRegForWrite; /* for writing SP, CPP, profile counter */ + t_FmPcdKgPortRegs portRegsForRead; + volatile uint32_t clsPlanEntries[CLS_PLAN_NUM_PER_GRP]; + t_FmPcdCcCapwapReassmTimeoutParams ccCapwapReassmTimeout; + } hcSpecificData; +} _PackedType t_HcFrame; + +#define MEM_MAP_END +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(pop) +#endif /* defined(__MWERKS__) && ... */ + + +typedef struct t_FmHc { + t_Handle h_FmPcd; + t_Handle h_HcPortDev; + t_FmPcdQmEnqueueCallback *f_QmEnqueue; /**< A callback for enqueuing frames to the QM */ + t_Handle h_QmArg; /**< A handle to the QM module */ + uint8_t padTill16; + + uint32_t seqNum; + volatile bool wait[32]; +} t_FmHc; + + +static __inline__ t_Error EnQFrm(t_FmHc *p_FmHc, t_DpaaFD *p_FmFd, volatile uint32_t *p_SeqNum) +{ + t_Error err = E_OK; + uint32_t savedSeqNum; + uint32_t intFlags; + uint32_t timeout=100; + + intFlags = FmPcdLock(p_FmHc->h_FmPcd); + *p_SeqNum = p_FmHc->seqNum; + savedSeqNum = p_FmHc->seqNum; + p_FmHc->seqNum = (uint32_t)((p_FmHc->seqNum+1)%32); + ASSERT_COND(!p_FmHc->wait[savedSeqNum]); + p_FmHc->wait[savedSeqNum] = TRUE; + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); + DBG(TRACE, ("Send Hc, SeqNum %d, FD@0x%x, fd offset 0x%x", + savedSeqNum,DPAA_FD_GET_ADDR(p_FmFd),DPAA_FD_GET_OFFSET(p_FmFd))); + err = p_FmHc->f_QmEnqueue(p_FmHc->h_QmArg, (void *)p_FmFd); + if(err) + RETURN_ERROR(MINOR, err, ("HC enqueue failed")); + + while (p_FmHc->wait[savedSeqNum] && --timeout) + XX_UDelay(100); + + if (!timeout) + RETURN_ERROR(MINOR, E_TIMEOUT, ("HC Callback, timeout exceeded")); + + return err; +} + +static t_Error CcHcDoDynamicChange(t_FmHc *p_FmHc, t_Handle p_OldPointer, t_Handle p_NewPointer) +{ + t_HcFrame *p_HcFrame; + t_DpaaFD fmFd; + t_Error err = E_OK; + + ASSERT_COND(p_FmHc); + + p_HcFrame = (t_HcFrame *)XX_MallocSmart((sizeof(t_HcFrame) + p_FmHc->padTill16), 0, 16); + if (!p_HcFrame) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("HC Frame obj")); + + memset(p_HcFrame, 0, sizeof(t_HcFrame)); + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_CC); + p_HcFrame->actionReg = FmPcdCcGetNodeAddrOffsetFromNodeInfo(p_FmHc->h_FmPcd, p_NewPointer); + if(p_HcFrame->actionReg == (uint32_t)ILLEGAL_BASE) + { + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Something wrong with base address")); + } + + p_HcFrame->actionReg |= 0xc0000000; + p_HcFrame->extraReg = FmPcdCcGetNodeAddrOffsetFromNodeInfo(p_FmHc->h_FmPcd, p_OldPointer); + if(p_HcFrame->extraReg == (uint32_t)ILLEGAL_BASE) + { + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Something wrong with base address")); + } + + BUILD_FD(SIZE_OF_HC_FRAME_READ_OR_CC_DYNAMIC); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + XX_FreeSmart(p_HcFrame); + + return E_OK; +} + +static t_Error HcDynamicChange(t_FmHc *p_FmHc,t_List *h_OldPointersLst, t_List *h_NewPointersLst, t_Handle *h_Params) +{ + + t_List *p_PosOld, *p_PosNew; + uint16_t i = 0; + t_Error err = E_OK; + uint8_t numOfModifiedPtr; + + SANITY_CHECK_RETURN_ERROR((LIST_NumOfObjs(h_NewPointersLst) == LIST_NumOfObjs(h_OldPointersLst)),E_INVALID_STATE); + + numOfModifiedPtr = (uint8_t)LIST_NumOfObjs(h_NewPointersLst); + p_PosNew = LIST_FIRST(h_NewPointersLst); + p_PosOld = LIST_FIRST(h_OldPointersLst); + for(i = 0; i < numOfModifiedPtr; i++) + { + err = CcHcDoDynamicChange(p_FmHc, p_PosOld, p_PosNew); + if(err) + { + FmPcdCcReleaseModifiedDataStructure(p_FmHc->h_FmPcd, h_OldPointersLst, h_NewPointersLst, i, h_Params); + RETURN_ERROR(MAJOR, err, ("For part of nodes changes are done - situation is danger")); + } + p_PosNew = LIST_NEXT(p_PosNew); + p_PosOld = LIST_NEXT(p_PosOld); + } + + err = FmPcdCcReleaseModifiedDataStructure(p_FmHc->h_FmPcd, h_OldPointersLst, h_NewPointersLst, i, h_Params); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + + return E_OK; +} + + +t_Handle FmHcConfigAndInit(t_FmHcParams *p_FmHcParams) +{ + t_FmHc *p_FmHc; + t_FmPortParams fmPortParam; + t_Error err = E_OK; + + p_FmHc = (t_FmHc *)XX_Malloc(sizeof(t_FmHc)); + if (!p_FmHc) + { + REPORT_ERROR(MINOR, E_NO_MEMORY, ("HC obj")); + return NULL; + } + memset(p_FmHc,0,sizeof(t_FmHc)); + + p_FmHc->h_FmPcd = p_FmHcParams->h_FmPcd; + p_FmHc->f_QmEnqueue = p_FmHcParams->params.f_QmEnqueue; + p_FmHc->h_QmArg = p_FmHcParams->params.h_QmArg; + + if (!FmIsMaster(p_FmHcParams->h_Fm)) + return (t_Handle)p_FmHc; + +/* +TKT056919 - axi12axi0 can hang if read request follows the single byte write on the very next cycle +TKT038900 - FM dma lockup occur due to AXI slave protocol violation +*/ +#ifdef FM_LOCKUP_ALIGNMENT_ERRATA_FMAN_SW004 + p_FmHc->padTill16 = 16 - (sizeof(t_FmHc) % 16); +#endif /* FM_LOCKUP_ALIGNMENT_ERRATA_FMAN_SW004 */ + memset(&fmPortParam, 0, sizeof(fmPortParam)); + fmPortParam.baseAddr = p_FmHcParams->params.portBaseAddr; + fmPortParam.portType = e_FM_PORT_TYPE_OH_HOST_COMMAND; + fmPortParam.portId = p_FmHcParams->params.portId; + fmPortParam.liodnBase = p_FmHcParams->params.liodnBase; + fmPortParam.h_Fm = p_FmHcParams->h_Fm; + + fmPortParam.specificParams.nonRxParams.errFqid = p_FmHcParams->params.errFqid; + fmPortParam.specificParams.nonRxParams.dfltFqid = p_FmHcParams->params.confFqid; + fmPortParam.specificParams.nonRxParams.qmChannel = p_FmHcParams->params.qmChannel; + + p_FmHc->h_HcPortDev = FM_PORT_Config(&fmPortParam); + if(!p_FmHc->h_HcPortDev) + { + REPORT_ERROR(MAJOR, E_INVALID_HANDLE, ("FM HC port!")); + XX_Free(p_FmHc); + return NULL; + } + + /* final init */ + if ((err = FM_PORT_Init(p_FmHc->h_HcPortDev)) != E_OK) + { + REPORT_ERROR(MAJOR, err, ("FM HC port!")); + FmHcFree(p_FmHc); + return NULL; + } + + if ((err = FM_PORT_Enable(p_FmHc->h_HcPortDev)) != E_OK) + { + REPORT_ERROR(MAJOR, err, ("FM HC port!")); + FmHcFree(p_FmHc); + return NULL; + } + + return (t_Handle)p_FmHc; +} + +void FmHcFree(t_Handle h_FmHc) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + + if (!p_FmHc) + return; + + if (p_FmHc->h_HcPortDev) + FM_PORT_Free(p_FmHc->h_HcPortDev); + + XX_Free(p_FmHc); +} + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +t_Error FmHcDumpRegs(t_Handle h_FmHc) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + + SANITY_CHECK_RETURN_ERROR(p_FmHc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmHc->h_HcPortDev, E_INVALID_HANDLE); + + return FM_PORT_DumpRegs(p_FmHc->h_HcPortDev); + +} +#endif /* (defined(DEBUG_ERRORS) && ... */ + +void FmHcTxConf(t_Handle h_FmHc, t_DpaaFD *p_Fd) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_HcFrame *p_HcFrame; + uint32_t intFlags; + + ASSERT_COND(p_FmHc); + + intFlags = FmPcdLock(p_FmHc->h_FmPcd); + p_HcFrame = (t_HcFrame *)PTR_MOVE(DPAA_FD_GET_ADDR(p_Fd), DPAA_FD_GET_OFFSET(p_Fd)); + + DBG(TRACE, ("Hc Conf, SeqNum %d, FD@0x%x, fd offset 0x%x", + p_HcFrame->commandSequence, DPAA_FD_GET_ADDR(p_Fd), DPAA_FD_GET_OFFSET(p_Fd))); + + if (!(p_FmHc->wait[p_HcFrame->commandSequence])) + REPORT_ERROR(MINOR, E_INVALID_FRAME, ("Not an Host-Command frame received!")); + else + p_FmHc->wait[p_HcFrame->commandSequence] = FALSE; + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); +} + +t_Handle FmHcPcdKgSetScheme(t_Handle h_FmHc, t_FmPcdKgSchemeParams *p_Scheme) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_Error err = E_OK; + t_FmPcdKgInterModuleSchemeRegs schemeRegs; + t_HcFrame *p_HcFrame; + t_DpaaFD fmFd; + uint32_t intFlags; + uint8_t physicalSchemeId, relativeSchemeId; + + p_HcFrame = (t_HcFrame *)XX_MallocSmart((sizeof(t_HcFrame) + p_FmHc->padTill16), 0, 16); + if (!p_HcFrame) + { + REPORT_ERROR(MINOR, E_NO_MEMORY, ("HC Frame obj")); + return NULL; + } + + if(!p_Scheme->modify) + { + /* check that schemeId is in range */ + if(p_Scheme->id.relativeSchemeId >= FmPcdKgGetNumOfPartitionSchemes(p_FmHc->h_FmPcd)) + { + REPORT_ERROR(MAJOR, E_NOT_IN_RANGE, ("Scheme is out of range")); + XX_FreeSmart(p_HcFrame); + return NULL; + } + + relativeSchemeId = p_Scheme->id.relativeSchemeId; + + if (FmPcdKgSchemeTryLock(p_FmHc->h_FmPcd, relativeSchemeId, FALSE)) + { + XX_FreeSmart(p_HcFrame); + return NULL; + } + + physicalSchemeId = FmPcdKgGetPhysicalSchemeId(p_FmHc->h_FmPcd, relativeSchemeId); + + memset(p_HcFrame, 0, sizeof(t_HcFrame)); + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_KG_SCM); + p_HcFrame->actionReg = FmPcdKgBuildReadSchemeActionReg(physicalSchemeId); + p_HcFrame->extraReg = 0xFFFFF800; + + BUILD_FD(SIZE_OF_HC_FRAME_READ_OR_CC_DYNAMIC); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + REPORT_ERROR(MINOR, err, NO_MSG); + XX_FreeSmart(p_HcFrame); + return NULL; + } + + /* check if this scheme is already used */ + if (FmPcdKgHwSchemeIsValid(p_HcFrame->hcSpecificData.schemeRegs.kgse_mode)) + { + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + REPORT_ERROR(MAJOR, E_ALREADY_EXISTS, ("Scheme is already used")); + XX_FreeSmart(p_HcFrame); + return NULL; + } + } + else + { + intFlags = FmPcdLock(p_FmHc->h_FmPcd); + physicalSchemeId = (uint8_t)(PTR_TO_UINT(p_Scheme->id.h_Scheme)-1); + relativeSchemeId = FmPcdKgGetRelativeSchemeId(p_FmHc->h_FmPcd, physicalSchemeId); + if( relativeSchemeId == FM_PCD_KG_NUM_OF_SCHEMES) + { + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); + REPORT_ERROR(MAJOR, E_NOT_IN_RANGE, NO_MSG); + XX_FreeSmart(p_HcFrame); + return NULL; + } + err = FmPcdKgSchemeTryLock(p_FmHc->h_FmPcd, relativeSchemeId, TRUE); + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); + if (err) + { + XX_FreeSmart(p_HcFrame); + return NULL; + } + } + + err = FmPcdKgBuildScheme(p_FmHc->h_FmPcd, p_Scheme, &schemeRegs); + if(err) + { + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + REPORT_ERROR(MAJOR, err, NO_MSG); + XX_FreeSmart(p_HcFrame); + return NULL; + } + + memset(p_HcFrame, 0, sizeof(t_HcFrame)); + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_KG_SCM); + p_HcFrame->actionReg = FmPcdKgBuildWriteSchemeActionReg(physicalSchemeId, p_Scheme->schemeCounter.update); + p_HcFrame->extraReg = 0xFFFFF800; + memcpy(&p_HcFrame->hcSpecificData.schemeRegs, &schemeRegs, sizeof(t_FmPcdKgInterModuleSchemeRegs)); + if(!p_Scheme->schemeCounter.update) + { + p_HcFrame->hcSpecificData.schemeRegs.kgse_dv0 = schemeRegs.kgse_dv0; + p_HcFrame->hcSpecificData.schemeRegs.kgse_dv1 = schemeRegs.kgse_dv1; + p_HcFrame->hcSpecificData.schemeRegs.kgse_ccbs = schemeRegs.kgse_ccbs; + p_HcFrame->hcSpecificData.schemeRegs.kgse_mv = schemeRegs.kgse_mv; + } + + BUILD_FD(sizeof(t_HcFrame)); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + REPORT_ERROR(MINOR, err, NO_MSG); + XX_FreeSmart(p_HcFrame); + return NULL; + } + + FmPcdKgValidateSchemeSw(p_FmHc->h_FmPcd, relativeSchemeId); + + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + + XX_FreeSmart(p_HcFrame); + + return (t_Handle)(UINT_TO_PTR(physicalSchemeId + 1)); +} + +t_Error FmHcPcdKgDeleteScheme(t_Handle h_FmHc, t_Handle h_Scheme) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_Error err = E_OK; + t_HcFrame *p_HcFrame; + t_DpaaFD fmFd; + uint8_t relativeSchemeId; + uint8_t physicalSchemeId = (uint8_t)(PTR_TO_UINT(h_Scheme)-1); + + relativeSchemeId = FmPcdKgGetRelativeSchemeId(p_FmHc->h_FmPcd, physicalSchemeId); + + if ((err = FmPcdKgSchemeTryLock(p_FmHc->h_FmPcd, relativeSchemeId, FALSE)) != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + + if(relativeSchemeId == FM_PCD_KG_NUM_OF_SCHEMES) + { + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + RETURN_ERROR(MAJOR, E_NOT_IN_RANGE, NO_MSG); + } + + err = FmPcdKgCheckInvalidateSchemeSw(p_FmHc->h_FmPcd, relativeSchemeId); + if (err) + { + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + p_HcFrame = (t_HcFrame *)XX_MallocSmart((sizeof(t_HcFrame) + p_FmHc->padTill16), 0, 16); + if (!p_HcFrame) + { + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("HC Frame obj")); + } + memset(p_HcFrame, 0, sizeof(t_HcFrame)); + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_KG_SCM); + p_HcFrame->actionReg = FmPcdKgBuildWriteSchemeActionReg(physicalSchemeId, TRUE); + p_HcFrame->extraReg = 0xFFFFF800; + memset(&p_HcFrame->hcSpecificData.schemeRegs, 0, sizeof(t_FmPcdKgInterModuleSchemeRegs)); + + BUILD_FD(sizeof(t_HcFrame)); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + FmPcdKgInvalidateSchemeSw(p_FmHc->h_FmPcd, relativeSchemeId); + + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + + XX_FreeSmart(p_HcFrame); + + return E_OK; +} + +t_Error FmHcPcdKgCcGetSetParams(t_Handle h_FmHc, t_Handle h_Scheme, uint32_t requiredAction) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_Error err = E_OK; + t_HcFrame *p_HcFrame; + t_DpaaFD fmFd; + uint8_t relativeSchemeId; + uint8_t physicalSchemeId = (uint8_t)(PTR_TO_UINT(h_Scheme)-1); + uint32_t tmpReg32 = 0; + + relativeSchemeId = FmPcdKgGetRelativeSchemeId(p_FmHc->h_FmPcd, physicalSchemeId); + if( relativeSchemeId == FM_PCD_KG_NUM_OF_SCHEMES) + RETURN_ERROR(MAJOR, E_NOT_IN_RANGE, NO_MSG); + + if (FmPcdKgSchemeTryLock(p_FmHc->h_FmPcd, relativeSchemeId, FALSE)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Lock of the scheme FAILED")); + + if(!FmPcdKgGetPointedOwners(p_FmHc->h_FmPcd, relativeSchemeId) || + !(FmPcdKgGetRequiredAction(p_FmHc->h_FmPcd, relativeSchemeId) & requiredAction)) + { + + if(requiredAction & UPDATE_NIA_ENQ_WITHOUT_DMA) + { + if((FmPcdKgGetNextEngine(p_FmHc->h_FmPcd, relativeSchemeId) == e_FM_PCD_DONE) && (FmPcdKgGetDoneAction(p_FmHc->h_FmPcd, relativeSchemeId) == e_FM_PCD_ENQ_FRAME)) + + { + p_HcFrame = (t_HcFrame *)XX_MallocSmart((sizeof(t_HcFrame) + p_FmHc->padTill16), 0, 16); + if (!p_HcFrame) + { + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("HC Frame obj")); + } + memset(p_HcFrame, 0, sizeof(t_HcFrame)); + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_KG_SCM); + p_HcFrame->actionReg = FmPcdKgBuildReadSchemeActionReg(physicalSchemeId); + p_HcFrame->extraReg = 0xFFFFF800; + BUILD_FD(SIZE_OF_HC_FRAME_READ_OR_CC_DYNAMIC); + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + /* check if this scheme is already used */ + if (!FmPcdKgHwSchemeIsValid(p_HcFrame->hcSpecificData.schemeRegs.kgse_mode)) + { + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MAJOR, E_ALREADY_EXISTS, ("Scheme is already used")); + } + tmpReg32 = p_HcFrame->hcSpecificData.schemeRegs.kgse_mode; + + ASSERT_COND(tmpReg32 & (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME)); + + p_HcFrame->hcSpecificData.schemeRegs.kgse_mode = tmpReg32 | NIA_BMI_AC_ENQ_FRAME_WITHOUT_DMA; + + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_KG_SCM); + p_HcFrame->actionReg = FmPcdKgBuildWriteSchemeActionReg(physicalSchemeId, FALSE); + p_HcFrame->extraReg = 0x80000000; + + BUILD_FD(sizeof(t_HcFrame)); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + XX_FreeSmart(p_HcFrame); + } + else if (FmPcdKgGetNextEngine(p_FmHc->h_FmPcd, relativeSchemeId) == e_FM_PCD_PLCR) + { + + if((FmPcdKgIsDirectPlcr(p_FmHc->h_FmPcd, relativeSchemeId) == FALSE) || + (FmPcdKgIsDistrOnPlcrProfile(p_FmHc->h_FmPcd, relativeSchemeId) == TRUE)) + { + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("In this situation PP can not be with distribution and has to be shared")); + } + err = FmPcdPlcrCcGetSetParams(p_FmHc->h_FmPcd, FmPcdKgGetRelativeProfileId(p_FmHc->h_FmPcd, relativeSchemeId), requiredAction); + if(err) + { + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + } + } + } + + FmPcdKgUpatePointedOwner(p_FmHc->h_FmPcd, relativeSchemeId,TRUE); + FmPcdKgUpdateRequiredAction(p_FmHc->h_FmPcd, relativeSchemeId,requiredAction); + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + + return E_OK; +} + +uint32_t FmHcPcdKgGetSchemeCounter(t_Handle h_FmHc, t_Handle h_Scheme) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_Error err = E_OK; + t_HcFrame *p_HcFrame; + t_DpaaFD fmFd; + uint32_t retVal; + uint8_t relativeSchemeId; + uint8_t physicalSchemeId = (uint8_t)(PTR_TO_UINT(h_Scheme)-1); + + relativeSchemeId = FmPcdKgGetRelativeSchemeId(p_FmHc->h_FmPcd, physicalSchemeId); + if( relativeSchemeId == FM_PCD_KG_NUM_OF_SCHEMES) + { + REPORT_ERROR(MAJOR, E_NOT_IN_RANGE, NO_MSG); + return 0; + } + + if ((err = FmPcdKgSchemeTryLock(p_FmHc->h_FmPcd, relativeSchemeId, FALSE)) != E_OK) + { + REPORT_ERROR(MAJOR, err, ("Scheme lock")); + return 0; + } + + /* first read scheme and check that it is valid */ + p_HcFrame = (t_HcFrame *)XX_MallocSmart((sizeof(t_HcFrame) + p_FmHc->padTill16), 0, 16); + if (!p_HcFrame) + { + REPORT_ERROR(MINOR, E_NO_MEMORY, ("HC Frame obj")); + return 0; + } + memset(p_HcFrame, 0, sizeof(t_HcFrame)); + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_KG_SCM); + p_HcFrame->actionReg = FmPcdKgBuildReadSchemeActionReg(physicalSchemeId); + p_HcFrame->extraReg = 0xFFFFF800; + + BUILD_FD(SIZE_OF_HC_FRAME_READ_OR_CC_DYNAMIC); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + REPORT_ERROR(MINOR, err, NO_MSG); + XX_FreeSmart(p_HcFrame); + return 0; + } + + if (!FmPcdKgHwSchemeIsValid(p_HcFrame->hcSpecificData.schemeRegs.kgse_mode)) + { + REPORT_ERROR(MAJOR, E_ALREADY_EXISTS, ("Scheme is invalid")); + XX_FreeSmart(p_HcFrame); + return 0; + } + + retVal = p_HcFrame->hcSpecificData.schemeRegs.kgse_spc; + + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + + XX_FreeSmart(p_HcFrame); + + return retVal; +} + +t_Error FmHcPcdKgSetSchemeCounter(t_Handle h_FmHc, t_Handle h_Scheme, uint32_t value) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_Error err = E_OK; + t_HcFrame *p_HcFrame; + t_DpaaFD fmFd; + uint8_t relativeSchemeId, physicalSchemeId = (uint8_t)(PTR_TO_UINT(h_Scheme)-1); + + relativeSchemeId = FmPcdKgGetRelativeSchemeId(p_FmHc->h_FmPcd, physicalSchemeId); + if( relativeSchemeId == FM_PCD_KG_NUM_OF_SCHEMES) + RETURN_ERROR(MAJOR, E_NOT_IN_RANGE, NO_MSG); + + if ((err = FmPcdKgSchemeTryLock(p_FmHc->h_FmPcd, relativeSchemeId, FALSE)) != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + + /* first read scheme and check that it is valid */ + p_HcFrame = (t_HcFrame *)XX_MallocSmart((sizeof(t_HcFrame) + p_FmHc->padTill16), 0, 16); + if (!p_HcFrame) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("HC Frame obj")); + memset(p_HcFrame, 0, sizeof(t_HcFrame)); + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_KG_SCM); + p_HcFrame->actionReg = FmPcdKgBuildReadSchemeActionReg(physicalSchemeId); + p_HcFrame->extraReg = 0xFFFFF800; + + BUILD_FD(SIZE_OF_HC_FRAME_READ_OR_CC_DYNAMIC); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + /* check that scheme is valid */ + if (!FmPcdKgHwSchemeIsValid(p_HcFrame->hcSpecificData.schemeRegs.kgse_mode)) + { + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MAJOR, E_ALREADY_EXISTS, ("Scheme is invalid")); + } + + /* Write scheme back, with modified counter */ + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_KG_SCM); + p_HcFrame->actionReg = FmPcdKgBuildWriteSchemeActionReg(physicalSchemeId, TRUE); + p_HcFrame->extraReg = 0xFFFFF800; + /* write counter */ + p_HcFrame->hcSpecificData.schemeRegs.kgse_spc = value; + + BUILD_FD(sizeof(t_HcFrame)); + + err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence); + + FmPcdKgReleaseSchemeLock(p_FmHc->h_FmPcd, relativeSchemeId); + XX_FreeSmart(p_HcFrame); + + return err; +} + +t_Error FmHcPcdKgSetClsPlan(t_Handle h_FmHc, t_FmPcdKgInterModuleClsPlanSet *p_Set) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_HcFrame *p_HcFrame; + t_DpaaFD fmFd; + uint32_t i; + t_Error err = E_OK; + + ASSERT_COND(p_FmHc); + + p_HcFrame = (t_HcFrame *)XX_MallocSmart((sizeof(t_HcFrame) + p_FmHc->padTill16), 0, 16); + if (!p_HcFrame) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("HC Frame obj")); + + for(i=p_Set->baseEntry;ibaseEntry+p_Set->numOfClsPlanEntries;i+=8) + { + memset(p_HcFrame, 0, sizeof(t_HcFrame)); + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_KG_SCM); + p_HcFrame->actionReg = FmPcdKgBuildWriteClsPlanBlockActionReg((uint8_t)(i / CLS_PLAN_NUM_PER_GRP)); + p_HcFrame->extraReg = 0xFFFFF800; + memcpy((void*)&p_HcFrame->hcSpecificData.clsPlanEntries, (void *)&p_Set->vectors[i-p_Set->baseEntry], CLS_PLAN_NUM_PER_GRP*sizeof(uint32_t)); + + BUILD_FD(sizeof(t_HcFrame)); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MINOR, err, NO_MSG); + } + } + XX_FreeSmart(p_HcFrame); + + return err; +} + +t_Error FmHcPcdKgDeleteClsPlan(t_Handle h_FmHc, uint8_t grpId) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_FmPcdKgInterModuleClsPlanSet *p_ClsPlanSet; + + /* clear clsPlan entries in memory */ + p_ClsPlanSet = (t_FmPcdKgInterModuleClsPlanSet *)XX_Malloc(sizeof(t_FmPcdKgInterModuleClsPlanSet)); + if (!p_ClsPlanSet) + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("memory allocation failed for p_ClsPlanSetd")); + memset(p_ClsPlanSet, 0, sizeof(t_FmPcdKgInterModuleClsPlanSet)); + + p_ClsPlanSet->baseEntry = FmPcdKgGetClsPlanGrpBase(p_FmHc->h_FmPcd, grpId); + p_ClsPlanSet->numOfClsPlanEntries = FmPcdKgGetClsPlanGrpSize(p_FmHc->h_FmPcd, grpId); + ASSERT_COND(p_ClsPlanSet->numOfClsPlanEntries <= FM_PCD_MAX_NUM_OF_CLS_PLANS); + + if (FmHcPcdKgSetClsPlan(p_FmHc, p_ClsPlanSet) != E_OK) + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); + XX_Free(p_ClsPlanSet); + + FmPcdKgDestroyClsPlanGrp(p_FmHc->h_FmPcd, grpId); + + return E_OK; +} + +t_Error FmHcPcdCcCapwapTimeoutReassm(t_Handle h_FmHc, t_FmPcdCcCapwapReassmTimeoutParams *p_CcCapwapReassmTimeoutParams ) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_HcFrame *p_HcFrame; + uint32_t intFlags; + t_DpaaFD fmFd; + t_Error err; + + SANITY_CHECK_RETURN_VALUE(h_FmHc, E_INVALID_HANDLE,0); + + intFlags = FmPcdLock(p_FmHc->h_FmPcd); + p_HcFrame = (t_HcFrame *)XX_MallocSmart((sizeof(t_HcFrame) + p_FmHc->padTill16), 0, 16); + if (!p_HcFrame) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("HC Frame obj")); + memset(p_HcFrame, 0, sizeof(t_HcFrame)); + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_CC_CAPWAP_REASSM_TIMEOUT); + memcpy(&p_HcFrame->hcSpecificData.ccCapwapReassmTimeout, p_CcCapwapReassmTimeoutParams, sizeof(t_FmPcdCcCapwapReassmTimeoutParams)); + BUILD_FD(sizeof(t_HcFrame)); + + err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence); + + XX_FreeSmart(p_HcFrame); + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); + return err; +} + + +t_Error FmHcPcdPlcrCcGetSetParams(t_Handle h_FmHc,uint16_t absoluteProfileId, uint32_t requiredAction) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_HcFrame *p_HcFrame; + t_DpaaFD fmFd; + t_Error err; + uint32_t tmpReg32 = 0; + uint32_t requiredActionTmp, pointedOwnersTmp; + + SANITY_CHECK_RETURN_VALUE(h_FmHc, E_INVALID_HANDLE,0); + + if (absoluteProfileId >= FM_PCD_PLCR_NUM_ENTRIES) + RETURN_ERROR(MAJOR, E_INVALID_VALUE,("Policer profile out of range")); + + if (FmPcdPlcrProfileTryLock(p_FmHc->h_FmPcd, absoluteProfileId, FALSE)) + return ERROR_CODE(E_BUSY); + + + requiredActionTmp = FmPcdPlcrGetRequiredAction(p_FmHc->h_FmPcd, absoluteProfileId); + pointedOwnersTmp = FmPcdPlcrGetPointedOwners(p_FmHc->h_FmPcd, absoluteProfileId); + + if(!pointedOwnersTmp || !(requiredActionTmp & requiredAction)) + { + + if(requiredAction & UPDATE_NIA_ENQ_WITHOUT_DMA) + { + + p_HcFrame = (t_HcFrame *)XX_MallocSmart((sizeof(t_HcFrame) + p_FmHc->padTill16), 0, 16); + if (!p_HcFrame) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("HC Frame obj")); + /* first read scheme and check that it is valid */ + memset(p_HcFrame, 0, sizeof(t_HcFrame)); + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_PLCR_PRFL); + p_HcFrame->actionReg = FmPcdPlcrBuildReadPlcrActionReg(absoluteProfileId); + p_HcFrame->extraReg = 0x00008000; + + BUILD_FD(SIZE_OF_HC_FRAME_READ_OR_CC_DYNAMIC); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, absoluteProfileId); + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + /* check that profile is valid */ + if (!FmPcdPlcrHwProfileIsValid(p_HcFrame->hcSpecificData.profileRegs.fmpl_pemode)) + { + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, absoluteProfileId); + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MAJOR, E_ALREADY_EXISTS, ("Policer is already used")); + } + + tmpReg32 = p_HcFrame->hcSpecificData.profileRegs.fmpl_pegnia; + if(!(tmpReg32 & (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME))) + { + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Next engine of this policer profile has to be assigned to FM_PCD_DONE")); + } + tmpReg32 |= NIA_BMI_AC_ENQ_FRAME_WITHOUT_DMA; + + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_PLCR_PRFL); + p_HcFrame->actionReg = FmPcdPlcrBuildWritePlcrActionReg(absoluteProfileId); + p_HcFrame->actionReg |= FmPcdPlcrBuildNiaProfileReg(TRUE, FALSE, FALSE); + p_HcFrame->extraReg = 0x00008000; + p_HcFrame->hcSpecificData.singleRegForWrite = tmpReg32; + + BUILD_FD(SIZE_OF_HC_FRAME_PROFILE_CNT); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, absoluteProfileId); + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + tmpReg32 = p_HcFrame->hcSpecificData.profileRegs.fmpl_peynia; + if(!(tmpReg32 & (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME))) + { + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Next engine of this policer profile has to be assigned to FM_PCD_DONE")); + } + tmpReg32 |= NIA_BMI_AC_ENQ_FRAME_WITHOUT_DMA; + + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_PLCR_PRFL); + p_HcFrame->actionReg = FmPcdPlcrBuildWritePlcrActionReg(absoluteProfileId); + p_HcFrame->actionReg |= FmPcdPlcrBuildNiaProfileReg(FALSE, TRUE, FALSE); + p_HcFrame->extraReg = 0x00008000; + p_HcFrame->hcSpecificData.singleRegForWrite = tmpReg32; + + BUILD_FD(SIZE_OF_HC_FRAME_PROFILE_CNT); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, absoluteProfileId); + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + tmpReg32 = p_HcFrame->hcSpecificData.profileRegs.fmpl_pernia; + if(!(tmpReg32 & (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME))) + { + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Next engine of this policer profile has to be assigned to FM_PCD_DONE")); + } + tmpReg32 |= NIA_BMI_AC_ENQ_FRAME_WITHOUT_DMA; + + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_PLCR_PRFL); + p_HcFrame->actionReg = FmPcdPlcrBuildWritePlcrActionReg(absoluteProfileId); + p_HcFrame->actionReg |= FmPcdPlcrBuildNiaProfileReg(FALSE, FALSE, TRUE); + p_HcFrame->extraReg = 0x00008000; + p_HcFrame->hcSpecificData.singleRegForWrite = tmpReg32; + + BUILD_FD(SIZE_OF_HC_FRAME_PROFILE_CNT); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, absoluteProfileId); + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MINOR, err, NO_MSG); + } + XX_FreeSmart(p_HcFrame); + } + } + + FmPcdPlcrUpatePointedOwner(p_FmHc->h_FmPcd, absoluteProfileId, TRUE); + FmPcdPlcrUpdateRequiredAction(p_FmHc->h_FmPcd, absoluteProfileId, requiredAction); + + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, absoluteProfileId); + + return E_OK; +} + +t_Handle FmHcPcdPlcrSetProfile(t_Handle h_FmHc,t_FmPcdPlcrProfileParams *p_Profile) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_FmPcdPlcrInterModuleProfileRegs profileRegs; + t_Error err = E_OK; + uint32_t intFlags; + uint16_t profileIndx; + t_HcFrame *p_HcFrame; + t_DpaaFD fmFd; + + if (p_Profile->modify) + { + profileIndx = (uint16_t)(PTR_TO_UINT(p_Profile->id.h_Profile)-1); + if (FmPcdPlcrProfileTryLock(p_FmHc->h_FmPcd, profileIndx, FALSE)) + return NULL; + } + else + { + intFlags = FmPcdLock(p_FmHc->h_FmPcd); + err = FmPcdPlcrGetAbsoluteProfileId(p_FmHc->h_FmPcd, + p_Profile->id.newParams.profileType, + p_Profile->id.newParams.h_FmPort, + p_Profile->id.newParams.relativeProfileId, + &profileIndx); + if (err) + { + REPORT_ERROR(MAJOR, err, NO_MSG); + return NULL; + } + err = FmPcdPlcrProfileTryLock(p_FmHc->h_FmPcd, profileIndx, TRUE); + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); + if (err) + return NULL; + } + + p_HcFrame = (t_HcFrame *)XX_MallocSmart((sizeof(t_HcFrame) + p_FmHc->padTill16), 0, 16); + if (!p_HcFrame) + { + REPORT_ERROR(MINOR, E_NO_MEMORY, ("HC Frame obj")); + return NULL; + } + + if(!p_Profile->modify) + { + memset(p_HcFrame, 0, sizeof(t_HcFrame)); + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_PLCR_PRFL); + p_HcFrame->actionReg = FmPcdPlcrBuildReadPlcrActionReg(profileIndx); + p_HcFrame->extraReg = 0x00008000; + + BUILD_FD(SIZE_OF_HC_FRAME_READ_OR_CC_DYNAMIC); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, profileIndx); + REPORT_ERROR(MINOR, err, NO_MSG); + XX_FreeSmart(p_HcFrame); + return NULL; + } + + /* check if this scheme is already used */ + if (FmPcdPlcrHwProfileIsValid(p_HcFrame->hcSpecificData.profileRegs.fmpl_pemode)) + { + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, profileIndx); + REPORT_ERROR(MAJOR, E_ALREADY_EXISTS, ("Policer is already used")); + XX_FreeSmart(p_HcFrame); + return NULL; + } + } + + memset(&profileRegs, 0, sizeof(t_FmPcdPlcrInterModuleProfileRegs)); + err = FmPcdPlcrBuildProfile(p_FmHc->h_FmPcd, p_Profile, &profileRegs); + if(err) + { + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, profileIndx); + REPORT_ERROR(MAJOR, err, NO_MSG); + XX_FreeSmart(p_HcFrame); + return NULL; + } + + memset(p_HcFrame, 0, sizeof(t_HcFrame)); + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_PLCR_PRFL); + p_HcFrame->actionReg = FmPcdPlcrBuildWritePlcrActionRegs(profileIndx); + p_HcFrame->extraReg = 0x00008000; + memcpy(&p_HcFrame->hcSpecificData.profileRegs, &profileRegs, sizeof(t_FmPcdPlcrInterModuleProfileRegs)); + + BUILD_FD(sizeof(t_HcFrame)); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, profileIndx); + REPORT_ERROR(MINOR, err, NO_MSG); + XX_FreeSmart(p_HcFrame); + return NULL; + } + + FmPcdPlcrValidateProfileSw(p_FmHc->h_FmPcd, profileIndx); + + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, profileIndx); + + XX_FreeSmart(p_HcFrame); + + return UINT_TO_PTR((uint64_t)profileIndx+1); +} + +t_Error FmHcPcdPlcrDeleteProfile(t_Handle h_FmHc, t_Handle h_Profile) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + uint16_t absoluteProfileId = (uint16_t)(PTR_TO_UINT(h_Profile)-1); + t_Error err = E_OK; + t_HcFrame *p_HcFrame; + t_DpaaFD fmFd; + + if (FmPcdPlcrProfileTryLock(p_FmHc->h_FmPcd, absoluteProfileId, FALSE)) + return ERROR_CODE(E_BUSY); + + FmPcdPlcrInvalidateProfileSw(p_FmHc->h_FmPcd, absoluteProfileId); + + p_HcFrame = (t_HcFrame *)XX_MallocSmart((sizeof(t_HcFrame) + p_FmHc->padTill16), 0, 16); + if (!p_HcFrame) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("HC Frame obj")); + memset(p_HcFrame, 0, sizeof(t_HcFrame)); + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_PLCR_PRFL); + p_HcFrame->actionReg = FmPcdPlcrBuildWritePlcrActionReg(absoluteProfileId); + p_HcFrame->actionReg |= 0x00008000; + p_HcFrame->extraReg = 0x00008000; + memset(&p_HcFrame->hcSpecificData.profileRegs, 0, sizeof(t_FmPcdPlcrInterModuleProfileRegs)); + + BUILD_FD(sizeof(t_HcFrame)); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, absoluteProfileId); + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, absoluteProfileId); + + XX_FreeSmart(p_HcFrame); + + return E_OK; +} + +t_Error FmHcPcdPlcrSetProfileCounter(t_Handle h_FmHc, t_Handle h_Profile, e_FmPcdPlcrProfileCounters counter, uint32_t value) +{ + + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + uint16_t absoluteProfileId = (uint16_t)(PTR_TO_UINT(h_Profile)-1); + t_Error err = E_OK; + t_HcFrame *p_HcFrame; + t_DpaaFD fmFd; + + if (FmPcdPlcrProfileTryLock(p_FmHc->h_FmPcd, absoluteProfileId, FALSE)) + return ERROR_CODE(E_BUSY); + + /* first read scheme and check that it is valid */ + p_HcFrame = (t_HcFrame *)XX_MallocSmart((sizeof(t_HcFrame) + p_FmHc->padTill16), 0, 16); + if (!p_HcFrame) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("HC Frame obj")); + memset(p_HcFrame, 0, sizeof(t_HcFrame)); + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_PLCR_PRFL); + p_HcFrame->actionReg = FmPcdPlcrBuildReadPlcrActionReg(absoluteProfileId); + p_HcFrame->extraReg = 0x00008000; + + BUILD_FD(SIZE_OF_HC_FRAME_READ_OR_CC_DYNAMIC); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, absoluteProfileId); + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + /* check that profile is valid */ + if (!FmPcdPlcrHwProfileIsValid(p_HcFrame->hcSpecificData.profileRegs.fmpl_pemode)) + { + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, absoluteProfileId); + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MAJOR, E_ALREADY_EXISTS, ("Policer is already used")); + } + + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_PLCR_PRFL); + p_HcFrame->actionReg = FmPcdPlcrBuildWritePlcrActionReg(absoluteProfileId); + p_HcFrame->actionReg |= FmPcdPlcrBuildCounterProfileReg(counter); + p_HcFrame->extraReg = 0x00008000; + p_HcFrame->hcSpecificData.singleRegForWrite = value; + + BUILD_FD(SIZE_OF_HC_FRAME_PROFILE_CNT); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, absoluteProfileId); + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, absoluteProfileId); + + XX_FreeSmart(p_HcFrame); + + return E_OK; +} + +uint32_t FmHcPcdPlcrGetProfileCounter(t_Handle h_FmHc, t_Handle h_Profile, e_FmPcdPlcrProfileCounters counter) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + uint16_t absoluteProfileId = (uint16_t)(PTR_TO_UINT(h_Profile)-1); + t_Error err = E_OK; + t_HcFrame *p_HcFrame; + t_DpaaFD fmFd; + uint32_t retVal = 0; + + SANITY_CHECK_RETURN_VALUE(h_FmHc, E_INVALID_HANDLE,0); + + if (FmPcdPlcrProfileTryLock(p_FmHc->h_FmPcd, absoluteProfileId, FALSE)) + return 0; + + /* first read scheme and check that it is valid */ + p_HcFrame = (t_HcFrame *)XX_MallocSmart((sizeof(t_HcFrame) + p_FmHc->padTill16), 0, 16); + if (!p_HcFrame) + { + REPORT_ERROR(MINOR, E_NO_MEMORY, ("HC Frame obj")); + return 0; + } + memset(p_HcFrame, 0, sizeof(t_HcFrame)); + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_PLCR_PRFL); + p_HcFrame->actionReg = FmPcdPlcrBuildReadPlcrActionReg(absoluteProfileId); + p_HcFrame->extraReg = 0x00008000; + + BUILD_FD(SIZE_OF_HC_FRAME_READ_OR_CC_DYNAMIC); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, absoluteProfileId); + REPORT_ERROR(MINOR, err, NO_MSG); + XX_FreeSmart(p_HcFrame); + return 0; + } + + /* check that profile is valid */ + if (!FmPcdPlcrHwProfileIsValid(p_HcFrame->hcSpecificData.profileRegs.fmpl_pemode)) + { + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, absoluteProfileId); + XX_FreeSmart(p_HcFrame); + REPORT_ERROR(MAJOR, E_ALREADY_EXISTS, ("invalid Policer profile")); + return 0; + } + + switch (counter) + { + case e_FM_PCD_PLCR_PROFILE_GREEN_PACKET_TOTAL_COUNTER: + retVal = p_HcFrame->hcSpecificData.profileRegs.fmpl_pegpc; + break; + case e_FM_PCD_PLCR_PROFILE_YELLOW_PACKET_TOTAL_COUNTER: + retVal = p_HcFrame->hcSpecificData.profileRegs.fmpl_peypc; + break; + case e_FM_PCD_PLCR_PROFILE_RED_PACKET_TOTAL_COUNTER: + retVal = p_HcFrame->hcSpecificData.profileRegs.fmpl_perpc; + break; + case e_FM_PCD_PLCR_PROFILE_RECOLOURED_YELLOW_PACKET_TOTAL_COUNTER: + retVal = p_HcFrame->hcSpecificData.profileRegs.fmpl_perypc; + break; + case e_FM_PCD_PLCR_PROFILE_RECOLOURED_RED_PACKET_TOTAL_COUNTER: + retVal = p_HcFrame->hcSpecificData.profileRegs.fmpl_perrpc; + break; + default: + REPORT_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + } + + FmPcdPlcrReleaseProfileLock(p_FmHc->h_FmPcd, absoluteProfileId); + + XX_FreeSmart(p_HcFrame); + + return retVal; +} + +t_Error FmHcPcdCcModifyTreeNextEngine(t_Handle h_FmHc, t_Handle h_CcTree, uint8_t grpId, uint8_t index, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_Error err = E_OK; + uint32_t intFlags; + t_List h_OldPointersLst, h_NewPointersLst; + t_Handle h_Params; + + intFlags = FmPcdLock(p_FmHc->h_FmPcd); + err = FmPcdCcTreeTryLock(h_CcTree); + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); + if (err) + return err; + + INIT_LIST(&h_OldPointersLst); + INIT_LIST(&h_NewPointersLst); + + err = FmPcdCcModifyNextEngineParamTree(p_FmHc->h_FmPcd, h_CcTree, grpId, index, p_FmPcdCcNextEngineParams, + &h_OldPointersLst, &h_NewPointersLst, &h_Params); + if(err) + { + FmPcdCcTreeReleaseLock(h_CcTree); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + err = HcDynamicChange(p_FmHc, &h_OldPointersLst, &h_NewPointersLst, &h_Params); + + FmPcdCcTreeReleaseLock(h_CcTree); + + return err; +} + + +t_Error FmHcPcdCcModifyNodeMissNextEngine(t_Handle h_FmHc, t_Handle h_CcNode, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_Handle h_Params; + t_List h_OldPointersLst, h_NewPointersLst; + t_Error err = E_OK; + t_List h_List; + uint32_t intFlags; + + INIT_LIST(&h_List); + + intFlags = FmPcdLock(p_FmHc->h_FmPcd); + + if ((err = FmPcdCcNodeTreeTryLock(p_FmHc->h_FmPcd, h_CcNode, &h_List)) != E_OK) + { + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); + return err; + } + + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); + + INIT_LIST(&h_OldPointersLst); + INIT_LIST(&h_NewPointersLst); + + err = FmPcdCcModifyMissNextEngineParamNode(p_FmHc->h_FmPcd, h_CcNode, p_FmPcdCcNextEngineParams, &h_OldPointersLst, &h_NewPointersLst, &h_Params); + if(err) + { + FmPcdCcNodeTreeReleaseLock(&h_List); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + err = HcDynamicChange(p_FmHc, &h_OldPointersLst, &h_NewPointersLst, &h_Params); + + FmPcdCcNodeTreeReleaseLock(&h_List); + + + return E_OK; +} + +t_Error FmHcPcdCcRemoveKey(t_Handle h_FmHc, t_Handle h_CcNode, uint8_t keyIndex) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_Handle h_Params; + t_List h_OldPointersLst, h_NewPointersLst; + t_Error err = E_OK; + t_List h_List; + uint32_t intFlags; + + INIT_LIST(&h_List); + + intFlags = FmPcdLock(p_FmHc->h_FmPcd); + + if ((err = FmPcdCcNodeTreeTryLock(p_FmHc->h_FmPcd, h_CcNode, &h_List)) != E_OK) + { + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); + return err; + } + + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); + + INIT_LIST(&h_OldPointersLst); + INIT_LIST(&h_NewPointersLst); + + + err = FmPcdCcRemoveKey(p_FmHc->h_FmPcd,h_CcNode,keyIndex, &h_OldPointersLst, &h_NewPointersLst, &h_Params); + if(err) + { + FmPcdCcNodeTreeReleaseLock(&h_List); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + err = HcDynamicChange(p_FmHc, &h_OldPointersLst, &h_NewPointersLst, &h_Params); + + FmPcdCcNodeTreeReleaseLock(&h_List); + + return err; + +} + +t_Error FmHcPcdCcAddKey(t_Handle h_FmHc, t_Handle h_CcNode, uint8_t keyIndex, uint8_t keySize, t_FmPcdCcKeyParams *p_KeyParams) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_Handle h_Params; + t_List h_OldPointersLst, h_NewPointersLst; + t_Error err = E_OK; + t_List h_List; + uint32_t intFlags; + + INIT_LIST(&h_List); + + intFlags = FmPcdLock(p_FmHc->h_FmPcd); + + if ((err = FmPcdCcNodeTreeTryLock(p_FmHc->h_FmPcd, h_CcNode, &h_List)) != E_OK) + { + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); + return err; + } + + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); + + INIT_LIST(&h_OldPointersLst); + INIT_LIST(&h_NewPointersLst); + + + err = FmPcdCcAddKey(p_FmHc->h_FmPcd,h_CcNode,keyIndex,keySize, p_KeyParams, &h_OldPointersLst,&h_NewPointersLst, &h_Params); + if(err) + { + FmPcdCcNodeTreeReleaseLock(&h_List); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + err = HcDynamicChange(p_FmHc, &h_OldPointersLst, &h_NewPointersLst, &h_Params); + + FmPcdCcNodeTreeReleaseLock(&h_List); + + return err; +} + + +t_Error FmHcPcdCcModifyKey(t_Handle h_FmHc, t_Handle h_CcNode, uint8_t keyIndex, uint8_t keySize, uint8_t *p_Key, uint8_t *p_Mask) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_List h_OldPointersLst, h_NewPointersLst; + t_Error err = E_OK; + t_List h_List; + uint32_t intFlags; + t_Handle h_Params; + + UNUSED(keySize); + + INIT_LIST(&h_List); + + intFlags = FmPcdLock(p_FmHc->h_FmPcd); + + if ((err = FmPcdCcNodeTreeTryLock(p_FmHc->h_FmPcd, h_CcNode, &h_List)) != E_OK) + { + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); + return err; + } + + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); + + INIT_LIST(&h_OldPointersLst); + INIT_LIST(&h_NewPointersLst); + + err = FmPcdCcModifyKey(p_FmHc->h_FmPcd, h_CcNode, keyIndex, keySize, p_Key, p_Mask, &h_OldPointersLst,&h_NewPointersLst, &h_Params); + if(err) + { + FmPcdCcNodeTreeReleaseLock(&h_List); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + err = HcDynamicChange(p_FmHc, &h_OldPointersLst, &h_NewPointersLst, &h_Params); + + FmPcdCcNodeTreeReleaseLock(&h_List); + + return err; +} + +t_Error FmHcPcdCcModifyNodeNextEngine(t_Handle h_FmHc, t_Handle h_CcNode, uint8_t keyIndex, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_Error err = E_OK; + t_List h_OldPointersLst, h_NewPointersLst; + t_List h_List; + uint32_t intFlags; + t_Handle h_Params; + + INIT_LIST(&h_List); + + intFlags = FmPcdLock(p_FmHc->h_FmPcd); + + if ((err = FmPcdCcNodeTreeTryLock(p_FmHc->h_FmPcd, h_CcNode, &h_List)) != E_OK) + { + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); + return err; + } + + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); + + INIT_LIST(&h_OldPointersLst); + INIT_LIST(&h_NewPointersLst); + + err = FmPcdCcModiyNextEngineParamNode(p_FmHc->h_FmPcd, h_CcNode, keyIndex, p_FmPcdCcNextEngineParams, &h_OldPointersLst, &h_NewPointersLst, &h_Params); + if(err) + { + FmPcdCcNodeTreeReleaseLock(&h_List); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + err = HcDynamicChange(p_FmHc, &h_OldPointersLst, &h_NewPointersLst, &h_Params); + FmPcdCcNodeTreeReleaseLock(&h_List); + return err; +} + + +t_Error FmHcPcdCcModifyKeyAndNextEngine(t_Handle h_FmHc, t_Handle h_CcNode, uint8_t keyIndex, uint8_t keySize, t_FmPcdCcKeyParams *p_KeyParams) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_List h_OldPointersLst, h_NewPointersLst; + t_Error err = E_OK; + t_List h_List; + uint32_t intFlags; + t_Handle h_Params; + + INIT_LIST(&h_OldPointersLst); + INIT_LIST(&h_NewPointersLst); + INIT_LIST(&h_List); + + intFlags = FmPcdLock(p_FmHc->h_FmPcd); + + if ((err = FmPcdCcNodeTreeTryLock(p_FmHc->h_FmPcd, h_CcNode, &h_List)) != E_OK) + { + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); + return err; + } + + FmPcdUnlock(p_FmHc->h_FmPcd, intFlags); + + + err = FmPcdCcModifyKeyAndNextEngine(p_FmHc->h_FmPcd,h_CcNode,keyIndex,keySize, p_KeyParams, &h_OldPointersLst,&h_NewPointersLst, &h_Params); + if(err) + { + FmPcdCcNodeTreeReleaseLock(&h_List); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + err = HcDynamicChange(p_FmHc, &h_OldPointersLst, &h_NewPointersLst, &h_Params); + + FmPcdCcNodeTreeReleaseLock(&h_List); + + + return err; +} + + +t_Error FmHcKgWriteSp(t_Handle h_FmHc, uint8_t hardwarePortId, uint32_t spReg, bool add) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_HcFrame *p_HcFrame; + t_DpaaFD fmFd; + t_Error err = E_OK; + + ASSERT_COND(p_FmHc); + + p_HcFrame = (t_HcFrame *)XX_MallocSmart((sizeof(t_HcFrame) + p_FmHc->padTill16), 0, 16); + if (!p_HcFrame) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("HC Frame obj")); + memset(p_HcFrame, 0, sizeof(t_HcFrame)); + /* first read SP register */ + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_KG_SCM); + p_HcFrame->actionReg = FmPcdKgBuildReadPortSchemeBindActionReg(hardwarePortId); + p_HcFrame->extraReg = 0xFFFFF800; + + BUILD_FD(SIZE_OF_HC_FRAME_PORT_REGS); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + /* spReg is the first reg, so we can use it both for read and for write */ + if(add) + p_HcFrame->hcSpecificData.portRegsForRead.spReg |= spReg; + else + p_HcFrame->hcSpecificData.portRegsForRead.spReg &= ~spReg; + + p_HcFrame->actionReg = FmPcdKgBuildWritePortSchemeBindActionReg(hardwarePortId); + + BUILD_FD(sizeof(t_HcFrame)); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + XX_FreeSmart(p_HcFrame); + + return E_OK; +} + +t_Error FmHcKgWriteCpp(t_Handle h_FmHc, uint8_t hardwarePortId, uint32_t cppReg) +{ + t_FmHc *p_FmHc = (t_FmHc*)h_FmHc; + t_HcFrame *p_HcFrame; + t_DpaaFD fmFd; + t_Error err = E_OK; + + ASSERT_COND(p_FmHc); + + p_HcFrame = (t_HcFrame *)XX_MallocSmart((sizeof(t_HcFrame) + p_FmHc->padTill16), 0, 16); + if (!p_HcFrame) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("HC Frame obj")); + memset(p_HcFrame, 0, sizeof(t_HcFrame)); + /* first read SP register */ + p_HcFrame->opcode = (uint32_t)(HC_HCOR_GBL | HC_HCOR_OPCODE_KG_SCM); + p_HcFrame->actionReg = FmPcdKgBuildWritePortClsPlanBindActionReg(hardwarePortId); + p_HcFrame->extraReg = 0xFFFFF800; + p_HcFrame->hcSpecificData.singleRegForWrite = cppReg; + + BUILD_FD(sizeof(t_HcFrame)); + + if ((err = EnQFrm(p_FmHc, &fmFd, &p_HcFrame->commandSequence)) != E_OK) + { + XX_FreeSmart(p_HcFrame); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + XX_FreeSmart(p_HcFrame); + + return E_OK; +} + --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/Makefile +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/Makefile @@ -0,0 +1,14 @@ +# +# Makefile for the Freescale Ethernet controllers +# +EXTRA_CFLAGS += -DVERSION=\"\" +# +#Include netcomm SW specific definitions +include $(srctree)/drivers/net/dpa/NetCommSw/ncsw_config.mk +NCSW_FM_INC = $(srctree)/drivers/net/dpa/NetCommSw/Peripherals/FM/inc + +EXTRA_CFLAGS += -I$(NCSW_FM_INC) + +obj-y += fsl-ncsw-MAC.o + +fsl-ncsw-MAC-objs := dtsec.o dtsec_mii_acc.o fm_mac.o tgec.o tgec_mii_acc.o --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/dtsec.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/dtsec.c @@ -0,0 +1,1943 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File dtsec.c + + @Description FM dTSEC ... +*//***************************************************************************/ + +#include "std_ext.h" +#include "error_ext.h" +#include "string_ext.h" +#include "xx_ext.h" +#include "endian_ext.h" +#include "crc_mac_addr_ext.h" +#include "debug_ext.h" + +#include "fm_common.h" +#include "dtsec.h" + + +/*****************************************************************************/ +/* Internal routines */ +/*****************************************************************************/ + +static t_Error CheckInitParameters(t_Dtsec *p_Dtsec) +{ + if(ENET_SPEED_FROM_MODE(p_Dtsec->enetMode) >= e_ENET_SPEED_10000) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Ethernet 1G MAC driver only supports 1G or lower speeds")); + if(p_Dtsec->macId >= FM_MAX_NUM_OF_1G_MACS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("macId can not be greater than the number of 1G MACs")); + if(p_Dtsec->addr == 0) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Ethernet MAC Must have a valid MAC Address")); + if(((p_Dtsec->enetMode == e_ENET_MODE_SGMII_1000) || + (p_Dtsec->enetMode == e_ENET_MODE_RGMII_1000) || + (p_Dtsec->enetMode == e_ENET_MODE_QSGMII_1000)) && + p_Dtsec->p_DtsecDriverParam->halfDuplex) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Ethernet MAC 1G can't work in half duplex")); + if(p_Dtsec->p_DtsecDriverParam->halfDuplex && (p_Dtsec->p_DtsecDriverParam)->loopback) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("LoopBack is not supported in halfDuplex mode")); +#ifdef FM_NO_RX_PREAM_ERRATA_DTSECx1 + if(p_Dtsec->p_DtsecDriverParam->preambleRxEn) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("preambleRxEn")); +#endif /* FM_NO_RX_PREAM_ERRATA_DTSECx1 */ + if(((p_Dtsec->p_DtsecDriverParam)->preambleTxEn || (p_Dtsec->p_DtsecDriverParam)->preambleRxEn) &&( (p_Dtsec->p_DtsecDriverParam)->preambleLength != 0x7)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Preamble length should be 0x7 bytes")); + if((p_Dtsec->p_DtsecDriverParam)->fifoTxWatermarkH<((p_Dtsec->p_DtsecDriverParam)->fifoTxThr+8)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("fifoTxWatermarkH has to be at least 8 larger than fifoTxThr")); + if((p_Dtsec->p_DtsecDriverParam)->halfDuplex && + (p_Dtsec->p_DtsecDriverParam->txTimeStampEn || p_Dtsec->p_DtsecDriverParam->rxTimeStampEn)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("dTSEC in half duplex mode has to be with 1588 timeStamping diable")); + if((p_Dtsec->p_DtsecDriverParam)->actOnRxPauseFrame && (p_Dtsec->p_DtsecDriverParam)->controlFrameAccept ) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Receive control frame are not passed to the system memory so it can not be accept ")); + if((p_Dtsec->p_DtsecDriverParam)->packetAlignmentPadding > MAX_PACKET_ALIGNMENT) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("packetAlignmentPadding can't be greater than %d ",MAX_PACKET_ALIGNMENT )); + if(((p_Dtsec->p_DtsecDriverParam)->nonBackToBackIpg1 > MAX_INTER_PACKET_GAP) || + ((p_Dtsec->p_DtsecDriverParam)->nonBackToBackIpg2 > MAX_INTER_PACKET_GAP) || + ((p_Dtsec->p_DtsecDriverParam)->backToBackIpg > MAX_INTER_PACKET_GAP)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Inter packet gap can't be greater than %d ",MAX_INTER_PACKET_GAP )); + if((p_Dtsec->p_DtsecDriverParam)->alternateBackoffVal > MAX_INTER_PALTERNATE_BEB) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("alternateBackoffVal can't be greater than %d ",MAX_INTER_PALTERNATE_BEB )); + if((p_Dtsec->p_DtsecDriverParam)->maxRetransmission > MAX_RETRANSMISSION) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("maxRetransmission can't be greater than %d ",MAX_RETRANSMISSION )); + if((p_Dtsec->p_DtsecDriverParam)->collisionWindow > MAX_COLLISION_WINDOW) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("collisionWindow can't be greater than %d ",MAX_COLLISION_WINDOW )); + + /* If Auto negotiation process is disabled, need to */ + /* Set up the PHY using the MII Management Interface */ + if (p_Dtsec->p_DtsecDriverParam->tbiPhyAddr > MAX_PHYS) + RETURN_ERROR(MAJOR, E_NOT_IN_RANGE, ("PHY address (should be 0-%d)", MAX_PHYS)); + if(!p_Dtsec->f_Exception) + RETURN_ERROR(MAJOR, E_INVALID_HANDLE, ("uninitialized f_Exception")); + if(!p_Dtsec->f_Event) + RETURN_ERROR(MAJOR, E_INVALID_HANDLE, ("uninitialized f_Event")); + return E_OK; +} + +static uint8_t GetMiiDiv(int32_t refClk) +{ + uint32_t div,tmpClk; + int minRange; + + div = 1; + minRange = (int)(refClk/40 - 1); + + tmpClk = (uint32_t)ABS(refClk/60 - 1); + if (tmpClk < minRange) + { + div = 2; + minRange = (int)tmpClk; + } + tmpClk = (uint32_t)ABS(refClk/60 - 1); + if (tmpClk < minRange) + { + div = 3; + minRange = (int)tmpClk; + } + tmpClk = (uint32_t)ABS(refClk/80 - 1); + if (tmpClk < minRange) + { + div = 4; + minRange = (int)tmpClk; + } + tmpClk = (uint32_t)ABS(refClk/100 - 1); + if (tmpClk < minRange) + { + div = 5; + minRange = (int)tmpClk; + } + tmpClk = (uint32_t)ABS(refClk/140 - 1); + if (tmpClk < minRange) + { + div = 6; + minRange = (int)tmpClk; + } + tmpClk = (uint32_t)ABS(refClk/280 - 1); + if (tmpClk < minRange) + { + div = 7; + minRange = (int)tmpClk; + } + + return (uint8_t)div; +} + +/* ........................................................................... */ + +static void SetDefaultParam(t_DtsecDriverParam *p_DtsecDriverParam) +{ + p_DtsecDriverParam->errorDisabled = DEFAULT_errorDisabled; + + p_DtsecDriverParam->promiscuousEnable = DEFAULT_promiscuousEnable; + + p_DtsecDriverParam->pauseExtended = DEFAULT_pauseExtended; + p_DtsecDriverParam->pauseTime = DEFAULT_pauseTime; + + p_DtsecDriverParam->halfDuplex = DEFAULT_halfDuplex; + p_DtsecDriverParam->halfDulexFlowControlEn = DEFAULT_halfDulexFlowControlEn; + p_DtsecDriverParam->txTimeStampEn = DEFAULT_txTimeStampEn; + p_DtsecDriverParam->rxTimeStampEn = DEFAULT_rxTimeStampEn; + + p_DtsecDriverParam->packetAlignmentPadding = DEFAULT_packetAlignment; + p_DtsecDriverParam->controlFrameAccept = DEFAULT_controlFrameAccept; + p_DtsecDriverParam->groupHashExtend = DEFAULT_groupHashExtend; + p_DtsecDriverParam->broadcReject = DEFAULT_broadcReject; + p_DtsecDriverParam->rxShortFrame = DEFAULT_rxShortFrame; + p_DtsecDriverParam->exactMatch = DEFAULT_exactMatch; + p_DtsecDriverParam->debugMode = DEFAULT_debugMode; + + p_DtsecDriverParam->loopback = DEFAULT_loopback; + p_DtsecDriverParam->tbiPhyAddr = DEFAULT_tbiPhyAddr; + p_DtsecDriverParam->actOnRxPauseFrame = DEFAULT_actOnRxPauseFrame; + p_DtsecDriverParam->actOnTxPauseFrame = DEFAULT_actOnTxPauseFrame; + + p_DtsecDriverParam->preambleLength = DEFAULT_PreAmLength; + p_DtsecDriverParam->preambleRxEn = DEFAULT_PreAmRxEn; + p_DtsecDriverParam->preambleTxEn = DEFAULT_PreAmTxEn; + p_DtsecDriverParam->lengthCheckEnable = DEFAULT_lengthCheckEnable; + p_DtsecDriverParam->padAndCrcEnable = DEFAULT_padAndCrcEnable; + p_DtsecDriverParam->crcEnable = DEFAULT_crcEnable; + + p_DtsecDriverParam->nonBackToBackIpg1 = DEFAULT_nonBackToBackIpg1; + p_DtsecDriverParam->nonBackToBackIpg2 = DEFAULT_nonBackToBackIpg2; + p_DtsecDriverParam->minIfgEnforcement = DEFAULT_minIfgEnforcement; + p_DtsecDriverParam->backToBackIpg = DEFAULT_backToBackIpg; + + p_DtsecDriverParam->alternateBackoffVal = DEFAULT_altBackoffVal; + p_DtsecDriverParam->alternateBackoffEnable = DEFAULT_altBackoffEnable; + p_DtsecDriverParam->backPressureNoBackoff = DEFAULT_backPressureNoBackoff; + p_DtsecDriverParam->noBackoff = DEFAULT_noBackoff; + p_DtsecDriverParam->excessDefer = DEFAULT_excessDefer; + p_DtsecDriverParam->maxRetransmission = DEFAULT_maxRetransmission; + p_DtsecDriverParam->collisionWindow = DEFAULT_collisionWindow; + + p_DtsecDriverParam->maxFrameLength = DEFAULT_maxFrameLength; + + p_DtsecDriverParam->fifoTxThr = DEFAULT_fifoTxThr; + p_DtsecDriverParam->fifoTxWatermarkH = DEFAULT_fifoTxWatermarkH; + + p_DtsecDriverParam->fifoRxWatermarkL = DEFAULT_fifoRxWatermarkL; +} + +static void DtsecException(t_Handle h_Dtsec) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + uint32_t event; + t_DtsecMemMap *p_DtsecMemMap; + + ASSERT_COND(p_Dtsec); + p_DtsecMemMap = p_Dtsec->p_MemMap; + ASSERT_COND(p_DtsecMemMap); + + event = GET_UINT32(p_DtsecMemMap->ievent); + /* handle only MDIO events */ + event &= (IMASK_MMRDEN | IMASK_MMWREN); + if(event) + { + event &= GET_UINT32(p_DtsecMemMap->imask); + + WRITE_UINT32(p_DtsecMemMap->ievent, event); + + if(event & IMASK_MMRDEN) + p_Dtsec->f_Event(p_Dtsec->h_App, e_FM_MAC_EX_1G_MII_MNG_RD_COMPLET); + if(event & IMASK_MMWREN) + p_Dtsec->f_Event(p_Dtsec->h_App, e_FM_MAC_EX_1G_MII_MNG_WR_COMPLET); + } +} + +static void UpdateStatistics(t_Dtsec *p_Dtsec) +{ + t_DtsecMemMap *p_DtsecMemMap = p_Dtsec->p_MemMap; + uint32_t car1 = GET_UINT32(p_DtsecMemMap->car1); + uint32_t car2 = GET_UINT32(p_DtsecMemMap->car2); + + if(car1) + { + WRITE_UINT32(p_DtsecMemMap->car1, car1); + if(car1 & CAR1_TR64) + p_Dtsec->internalStatistics.tr64 += VAL22BIT; + if(car1 & CAR1_TR127) + p_Dtsec->internalStatistics.tr127 += VAL22BIT; + if(car1 & CAR1_TR255) + p_Dtsec->internalStatistics.tr255 += VAL22BIT; + if(car1 & CAR1_TR511) + p_Dtsec->internalStatistics.tr511 += VAL22BIT; + if(car1 & CAR1_TRK1) + p_Dtsec->internalStatistics.tr1k += VAL22BIT; + if(car1 & CAR1_TRMAX) + p_Dtsec->internalStatistics.trmax += VAL22BIT; + if(car1 & CAR1_TRMGV) + p_Dtsec->internalStatistics.trmgv += VAL22BIT; + if(car1 & CAR1_RBYT) + p_Dtsec->internalStatistics.rbyt += (uint64_t)VAL32BIT; + if(car1 & CAR1_RPKT) + p_Dtsec->internalStatistics.rpkt += VAL22BIT; + if(car1 & CAR1_RMCA) + p_Dtsec->internalStatistics.rmca += VAL22BIT; + if(car1 & CAR1_RBCA) + p_Dtsec->internalStatistics.rbca += VAL22BIT; + if(car1 & CAR1_RXPF) + p_Dtsec->internalStatistics.rxpf += VAL16BIT; + if(car1 & CAR1_RALN) + p_Dtsec->internalStatistics.raln += VAL16BIT; + if(car1 & CAR1_RFLR) + p_Dtsec->internalStatistics.rflr += VAL16BIT; + if(car1 & CAR1_RCDE) + p_Dtsec->internalStatistics.rcde += VAL16BIT; + if(car1 & CAR1_RCSE) + p_Dtsec->internalStatistics.rcse += VAL16BIT; + if(car1 & CAR1_RUND) + p_Dtsec->internalStatistics.rund += VAL16BIT; + if(car1 & CAR1_ROVR) + p_Dtsec->internalStatistics.rovr += VAL16BIT; + if(car1 & CAR1_RFRG) + p_Dtsec->internalStatistics.rfrg += VAL16BIT; + if(car1 & CAR1_RJBR) + p_Dtsec->internalStatistics.rjbr += VAL16BIT; + if(car1 & CAR1_RDRP) + p_Dtsec->internalStatistics.rdrp += VAL16BIT; + } + if(car2) + { + WRITE_UINT32(p_DtsecMemMap->car2, car2); + if(car2 & CAR2_TFCS) + p_Dtsec->internalStatistics.tfcs += VAL12BIT; + if(car2 & CAR2_TBYT) + p_Dtsec->internalStatistics.tbyt += (uint64_t)VAL32BIT; + if(car2 & CAR2_TPKT) + p_Dtsec->internalStatistics.tpkt += VAL22BIT; + if(car2 & CAR2_TMCA) + p_Dtsec->internalStatistics.tmca += VAL22BIT; + if(car2 & CAR2_TBCA) + p_Dtsec->internalStatistics.tbca += VAL22BIT; + if(car2 & CAR2_TXPF) + p_Dtsec->internalStatistics.txpf += VAL16BIT; + if(car2 & CAR2_TDRP) + p_Dtsec->internalStatistics.tdrp += VAL16BIT; + } +} + +/* .............................................................................. */ + +static uint16_t DtsecGetMaxFrameLength(t_Handle h_Dtsec) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + + SANITY_CHECK_RETURN_VALUE(p_Dtsec, E_INVALID_HANDLE, 0); + + return (uint16_t)GET_UINT32(p_Dtsec->p_MemMap->maxfrm); +} + +static void DtsecErrException(t_Handle h_Dtsec) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + uint32_t event; + t_DtsecMemMap *p_DtsecMemMap = p_Dtsec->p_MemMap; + + event = GET_UINT32(p_DtsecMemMap->ievent); + /* do not handle MDIO events */ + event &= ~(IMASK_MMRDEN | IMASK_MMWREN); + + event &= GET_UINT32(p_DtsecMemMap->imask); + + WRITE_UINT32(p_DtsecMemMap->ievent, event); + + if(event & IMASK_BREN) + p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_BAB_RX); + if(event & IMASK_RXCEN) + p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_RX_CTL); + if(event & IMASK_MSROEN) + UpdateStatistics(p_Dtsec); + if(event & IMASK_GTSCEN) + p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_GRATEFUL_TX_STP_COMPLET); + if(event & IMASK_BTEN) + p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_BAB_TX); + if(event & IMASK_TXCEN) + p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_TX_CTL); + if(event & IMASK_TXEEN) + p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_TX_ERR); + if(event & IMASK_LCEN) + p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_LATE_COL); + if(event & IMASK_CRLEN) + p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_COL_RET_LMT); + if(event & IMASK_XFUNEN) + { +#ifdef FM_TX_LOCKUP_ERRATA_DTSEC6 + uint32_t tpkt1, tmpReg1, tpkt2, tmpReg2, i; + /* a. Write 0x00E0_0C00 to DTSEC_ID */ + /* This is a read only regidter */ + + /* b. Read and save the value of TPKT */ + tpkt1 = GET_UINT32(p_DtsecMemMap->tpkt); + + /* c. Read the register at dTSEC address offset 0x32C */ + tmpReg1 = GET_UINT32(*(uint32_t*)((uint8_t*)p_DtsecMemMap + 0x32c)); + + /* d. Compare bits [9:15] to bits [25:31] of the register at address offset 0x32C. */ + if((tmpReg1 & 0x007F0000) != (tmpReg1 & 0x0000007F)) + { + /* If they are not equal, save the value of this register and wait for at least + * MAXFRM*16 ns */ + XX_UDelay((uint32_t)(MIN(DtsecGetMaxFrameLength(p_Dtsec)*16/1000, 1))); + } + + /* e. Read and save TPKT again and read the register at dTSEC address offset + 0x32C again*/ + tpkt2 = GET_UINT32(p_DtsecMemMap->tpkt); + tmpReg2 = GET_UINT32(*(uint32_t*)((uint8_t*)p_DtsecMemMap + 0x32c)); + + /* f. Compare the value of TPKT saved in step b to value read in step e. Also + compare bits [9:15] of the register at offset 0x32C saved in step d to the value + of bits [9:15] saved in step e. If the two registers values are unchanged, then + the transmit portion of the dTSEC controller is locked up and the user should + proceed to the recover sequence. */ + if((tpkt1 == tpkt2) && ((tmpReg1 & 0x007F0000) == (tmpReg2 & 0x007F0000))) + { + /* recover sequence */ + + /* a.Write a 1 to RCTRL[GRS]*/ + + WRITE_UINT32(p_DtsecMemMap->rctrl, GET_UINT32(p_DtsecMemMap->rctrl) | RCTRL_GRS); + + /* b.Wait until IEVENT[GRSC]=1, or at least 100 us has elapsed. */ + for(i = 0 ; i < 100 ; i++ ) + { + if(GET_UINT32(p_DtsecMemMap->ievent) & IMASK_GRSCEN) + break; + XX_UDelay(1); + } + if(GET_UINT32(p_DtsecMemMap->ievent) & IMASK_GRSCEN) + WRITE_UINT32(p_DtsecMemMap->ievent, IMASK_GRSCEN); + else + DBG(INFO,("Rx lockup due to dTSEC Tx lockup")); + + + /* c.Write a 1 to bit n of FM_RSTC (offset 0x0CC of FPM)*/ + FmResetMac(p_Dtsec->fmMacControllerDriver.h_Fm, e_FM_MAC_1G, p_Dtsec->fmMacControllerDriver.macId); + + /* d.Wait 4 Tx clocks (32 ns) */ + XX_UDelay(1); + + /* e.Write a 0 to bit n of FM_RSTC. */ + /* cleared by FMAN */ + } + else + { + /* If either value has changed, the dTSEC controller is not locked up and the + controller should be allowed to proceed normally by writing the reset value + of 0x0824_0101 to DTSEC_ID. */ + /* Register is read only */ + } +#endif /* FM_TX_LOCKUP_ERRATA_DTSEC6 */ + + p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_TX_FIFO_UNDRN); + } + if(event & IMASK_MAGEN) + p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_MAG_PCKT); + if(event & IMASK_GRSCEN) + p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_GRATEFUL_RX_STP_COMPLET); + if(event & IMASK_TDPEEN) + p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_TX_DATA_ERR); + if(event & IMASK_RDPEEN) + p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_RX_DATA_ERR); + + /* - masked interrupts */ + ASSERT_COND(!(event & IMASK_ABRTEN)); + ASSERT_COND(!(event & IMASK_IFERREN)); +} + +static void Dtsec1588Exception(t_Handle h_Dtsec) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + uint32_t event; + t_DtsecMemMap *p_DtsecMemMap = p_Dtsec->p_MemMap; + + if (p_Dtsec->ptpTsuEnabled) + { + event = GET_UINT32(p_DtsecMemMap->tmr_pevent); + event &= GET_UINT32(p_DtsecMemMap->tmr_pemask); + if(event) + { + WRITE_UINT32(p_DtsecMemMap->tmr_pevent, event); + ASSERT_COND(event & PEMASK_TSRE); + p_Dtsec->f_Exception(p_Dtsec->h_App, e_FM_MAC_EX_1G_1588_TS_RX_ERR); + } + } +} + +/* ........................................................................... */ + +static void FreeInitResources(t_Dtsec *p_Dtsec) +{ + /*TODO - need to ask why with mdioIrq != 0*/ + if ((p_Dtsec->mdioIrq != 0) && (p_Dtsec->mdioIrq != NO_IRQ)) + { + XX_DisableIntr(p_Dtsec->mdioIrq); + XX_FreeIntr(p_Dtsec->mdioIrq); + } + else if (p_Dtsec->mdioIrq == 0) + FmUnregisterIntr(p_Dtsec->fmMacControllerDriver.h_Fm, e_FM_MOD_1G_MAC, p_Dtsec->macId, e_FM_INTR_TYPE_NORMAL); + FmUnregisterIntr(p_Dtsec->fmMacControllerDriver.h_Fm, e_FM_MOD_1G_MAC, p_Dtsec->macId, e_FM_INTR_TYPE_ERR); + FmUnregisterIntr(p_Dtsec->fmMacControllerDriver.h_Fm, e_FM_MOD_1G_MAC_TMR, p_Dtsec->macId, e_FM_INTR_TYPE_NORMAL); + + /* release the driver's group hash table */ + FreeHashTable(p_Dtsec->p_MulticastAddrHash); + p_Dtsec->p_MulticastAddrHash = NULL; + + /* release the driver's individual hash table */ + FreeHashTable(p_Dtsec->p_UnicastAddrHash); + p_Dtsec->p_UnicastAddrHash = NULL; +} + +/* ........................................................................... */ + +static void HardwareClearAddrInPaddr(t_Dtsec *p_Dtsec, uint8_t paddrNum) +{ + WRITE_UINT32(((t_DtsecMemMap*)p_Dtsec->p_MemMap)->macaddr[paddrNum].exact_match1, 0x0); + WRITE_UINT32(((t_DtsecMemMap*)p_Dtsec->p_MemMap)->macaddr[paddrNum].exact_match2, 0x0); +} + +/* ........................................................................... */ + +static void HardwareAddAddrInPaddr(t_Dtsec *p_Dtsec, uint64_t *p_Addr, uint8_t paddrNum) +{ + uint32_t tmpReg32 = 0; + uint64_t addr = *p_Addr; + t_DtsecMemMap *p_DtsecMemMap = (t_DtsecMemMap*)p_Dtsec->p_MemMap; + + tmpReg32 = (uint32_t)(addr); + SwapUint32P(&tmpReg32); + WRITE_UINT32(p_DtsecMemMap->macaddr[paddrNum].exact_match1, tmpReg32); + + tmpReg32 = (uint32_t)(addr>>32); + SwapUint32P(&tmpReg32); + WRITE_UINT32(p_DtsecMemMap->macaddr[paddrNum].exact_match2, tmpReg32); +} + +/* ........................................................................... */ + +static t_Error GracefulStop(t_Dtsec *p_Dtsec, e_CommMode mode) +{ + t_DtsecMemMap *p_MemMap; + + ASSERT_COND(p_Dtsec); + + p_MemMap= (t_DtsecMemMap*)(p_Dtsec->p_MemMap); + ASSERT_COND(p_MemMap); + + /* Assert the graceful transmit stop bit */ + if (mode & e_COMM_MODE_RX) + WRITE_UINT32(p_MemMap->rctrl, + GET_UINT32(p_MemMap->rctrl) | RCTRL_GRS); + +#ifdef FM_GRS_ERRATA_DTSEC_A002 + XX_UDelay(100); +#endif /* FM_GRS_ERRATA_DTSEC_A002 */ + +#ifdef FM_GTS_ERRATA_DTSEC_A004 + DBG(INFO, ("GTS not supported due to DTSEC_A004 errata.")); +#else /* not FM_GTS_ERRATA_DTSEC_A004 */ + if (mode & e_COMM_MODE_TX) + WRITE_UINT32(p_MemMap->tctrl, + GET_UINT32(p_MemMap->tctrl) | TCTRL_GTS); +#endif /* not FM_GTS_ERRATA_DTSEC_A004 */ + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error GracefulRestart(t_Dtsec *p_Dtsec, e_CommMode mode) +{ + t_DtsecMemMap *p_MemMap; + + ASSERT_COND(p_Dtsec); + + p_MemMap= (t_DtsecMemMap*)(p_Dtsec->p_MemMap); + ASSERT_COND(p_MemMap); + + /* clear the graceful receive stop bit */ + if(mode & e_COMM_MODE_TX) + WRITE_UINT32(p_MemMap->tctrl, + GET_UINT32(p_MemMap->tctrl) & ~TCTRL_GTS); + + if(mode & e_COMM_MODE_RX) + WRITE_UINT32(p_MemMap->rctrl, + GET_UINT32(p_MemMap->rctrl) & ~RCTRL_GRS); + + return E_OK; +} + + +/*****************************************************************************/ +/* dTSEC Configs modification functions */ +/*****************************************************************************/ + + +/* .............................................................................. */ + +static t_Error DtsecConfigLoopback(t_Handle h_Dtsec, bool newVal) +{ + + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); + + p_Dtsec->p_DtsecDriverParam->loopback = newVal; + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error DtsecConfigMaxFrameLength(t_Handle h_Dtsec, uint16_t newVal) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); + + p_Dtsec->p_DtsecDriverParam->maxFrameLength = newVal; + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error DtsecConfigPadAndCrc(t_Handle h_Dtsec, bool newVal) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); + + p_Dtsec->p_DtsecDriverParam->padAndCrcEnable = newVal; + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error DtsecConfigHalfDuplex(t_Handle h_Dtsec, bool newVal) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); + + p_Dtsec->p_DtsecDriverParam->halfDuplex = newVal; + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error DtsecConfigLengthCheck(t_Handle h_Dtsec, bool newVal) +{ +#ifdef FM_LEN_CHECK_ERRATA_FMAN_SW002 +UNUSED(h_Dtsec); + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("LengthCheck!")); + +#else + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); + + p_Dtsec->p_DtsecDriverParam->lengthCheckEnable = newVal; + + return E_OK; +#endif /* FM_LEN_CHECK_ERRATA_FMAN_SW002 */ +} + +static t_Error DtsecConfigException(t_Handle h_Dtsec, e_FmMacExceptions exception, bool enable) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + uint32_t bitMask = 0; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); + + if(exception != e_FM_MAC_EX_1G_1588_TS_RX_ERR) + { + GET_EXCEPTION_FLAG(bitMask, exception); + if(bitMask) + { + if (enable) + p_Dtsec->exceptions |= bitMask; + else + p_Dtsec->exceptions &= ~bitMask; + } + else + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Undefined exception")); + } + else + { + if(!p_Dtsec->ptpTsuEnabled) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Exception valid for 1588 only")); + switch(exception){ + case(e_FM_MAC_EX_1G_1588_TS_RX_ERR): + if(enable) + p_Dtsec->enTsuErrExeption = TRUE; + else + p_Dtsec->enTsuErrExeption = FALSE; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Undefined exception")); + } + } + return E_OK; +} +/*****************************************************************************/ +/* dTSEC Run Time API functions */ +/*****************************************************************************/ + +/* .............................................................................. */ + +static t_Error DtsecEnable(t_Handle h_Dtsec, e_CommMode mode) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + t_DtsecMemMap *p_MemMap ; + uint32_t tmpReg32 = 0; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_INVALID_HANDLE); + + p_MemMap= (t_DtsecMemMap*)(p_Dtsec->p_MemMap); + + tmpReg32 = GET_UINT32(p_MemMap->maccfg1); + if (mode & e_COMM_MODE_RX) + tmpReg32 |= MACCFG1_RX_EN; + if (mode & e_COMM_MODE_TX) + tmpReg32 |= MACCFG1_TX_EN; + WRITE_UINT32(p_MemMap->maccfg1, tmpReg32); + + GracefulRestart(p_Dtsec, mode); + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error DtsecDisable (t_Handle h_Dtsec, e_CommMode mode) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + t_DtsecMemMap *p_MemMap ; + uint32_t tmpReg32 = 0; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_INVALID_HANDLE); + + p_MemMap = (t_DtsecMemMap*)(p_Dtsec->p_MemMap); + + GracefulStop(p_Dtsec, mode); + + tmpReg32 = GET_UINT32(p_MemMap->maccfg1); + if (mode & e_COMM_MODE_RX) + tmpReg32 &= ~MACCFG1_RX_EN; + if (mode & e_COMM_MODE_TX) + tmpReg32 &= ~MACCFG1_TX_EN; + WRITE_UINT32(p_MemMap->maccfg1, tmpReg32); + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error DtsecTxMacPause(t_Handle h_Dtsec, uint16_t pauseTime) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + uint32_t ptv = 0; + t_DtsecMemMap *p_MemMap; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_INVALID_STATE); + + p_MemMap = (t_DtsecMemMap*)(p_Dtsec->p_MemMap); + + if (pauseTime) + { +#ifdef FM_BAD_TX_TS_IN_B_2_B_ERRATA_DTSEC_A003 + { + if (pauseTime <= 320) + RETURN_ERROR(MINOR, E_INVALID_VALUE, + ("This pause-time value of %d is illegal due to errata dTSEC-A003!" + " value should be greater than 320.")); + } +#endif /* FM_BAD_TX_TS_IN_B_2_B_ERRATA_DTSEC_A003 */ + +#ifdef FM_SHORT_PAUSE_TIME_ERRATA_DTSEC1 + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_Dtsec->fmMacControllerDriver.h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + pauseTime += 2; + } +#endif /* FM_SHORT_PAUSE_TIME_ERRATA_DTSEC1 */ + + ptv = GET_UINT32(p_MemMap->ptv); + ptv |= pauseTime; + WRITE_UINT32(p_MemMap->ptv, ptv); + + /* trigger the transmission of a flow-control pause frame */ + WRITE_UINT32(p_MemMap->maccfg1, + GET_UINT32(p_MemMap->maccfg1) | MACCFG1_TX_FLOW); + } + else + { + WRITE_UINT32(p_MemMap->maccfg1, + GET_UINT32(p_MemMap->maccfg1) & ~MACCFG1_TX_FLOW); + } + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error DtsecRxIgnoreMacPause(t_Handle h_Dtsec, bool en) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + t_DtsecMemMap *p_MemMap; + uint32_t tmpReg32; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_INVALID_STATE); + + p_MemMap = (t_DtsecMemMap*)(p_Dtsec->p_MemMap); + + tmpReg32 = GET_UINT32(p_MemMap->maccfg1); + if (en) + tmpReg32 &= ~MACCFG1_RX_FLOW; + else + tmpReg32 |= MACCFG1_RX_FLOW; + WRITE_UINT32(p_MemMap->maccfg1, tmpReg32); + + return E_OK; +} + + +/* .............................................................................. */ + +static t_Error DtsecEnable1588TimeStamp(t_Handle h_Dtsec) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); +#ifdef FM_10_100_SGMII_NO_TS_ERRATA_DTSEC3 + if((p_Dtsec->enetMode == e_ENET_MODE_SGMII_10) || (p_Dtsec->enetMode == e_ENET_MODE_SGMII_100)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("1588TimeStamp in 10/100 SGMII")); +#endif /* FM_10_100_SGMII_NO_TS_ERRATA_DTSEC3 */ + p_Dtsec->ptpTsuEnabled = TRUE; + WRITE_UINT32(p_Dtsec->p_MemMap->rctrl, GET_UINT32(p_Dtsec->p_MemMap->rctrl) | RCTRL_RTSE); + WRITE_UINT32(p_Dtsec->p_MemMap->tctrl, GET_UINT32(p_Dtsec->p_MemMap->tctrl) | TCTRL_TTSE); + + return E_OK; +} + +static t_Error DtsecDisable1588TimeStamp(t_Handle h_Dtsec) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); + + p_Dtsec->ptpTsuEnabled = FALSE; + WRITE_UINT32(p_Dtsec->p_MemMap->rctrl, GET_UINT32(p_Dtsec->p_MemMap->rctrl) & ~RCTRL_RTSE); + WRITE_UINT32(p_Dtsec->p_MemMap->tctrl, GET_UINT32(p_Dtsec->p_MemMap->tctrl) & ~TCTRL_TTSE); + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error DtsecGetStatistics(t_Handle h_Dtsec, t_FmMacStatistics *p_Statistics) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + t_DtsecMemMap *p_DtsecMemMap; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_NULL_POINTER); + SANITY_CHECK_RETURN_ERROR(p_Statistics, E_NULL_POINTER); + + if (p_Dtsec->statisticsLevel == e_FM_MAC_NONE_STATISTICS) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Statistics disabled")); + + p_DtsecMemMap = p_Dtsec->p_MemMap; + memset(p_Statistics, 0xff, sizeof(t_FmMacStatistics)); + + if (p_Dtsec->statisticsLevel == e_FM_MAC_FULL_STATISTICS) + { + p_Statistics->eStatPkts64 = (MASK22BIT & GET_UINT32(p_DtsecMemMap->tr64)) + + p_Dtsec->internalStatistics.tr64; /**< r-10G tr-DT 64 byte frame counter */ + p_Statistics->eStatPkts65to127 = (MASK22BIT & GET_UINT32(p_DtsecMemMap->tr127)) + + p_Dtsec->internalStatistics.tr127; /**< r-10G 65 to 127 byte frame counter */ + p_Statistics->eStatPkts128to255 = (MASK22BIT & GET_UINT32(p_DtsecMemMap->tr255)) + + p_Dtsec->internalStatistics.tr255; /**< r-10G 128 to 255 byte frame counter */ + p_Statistics->eStatPkts256to511 = (MASK22BIT & GET_UINT32(p_DtsecMemMap->tr511)) + + p_Dtsec->internalStatistics.tr511; /**< r-10G 256 to 511 byte frame counter */ + p_Statistics->eStatPkts512to1023 = (MASK22BIT & GET_UINT32(p_DtsecMemMap->tr1k)) + + p_Dtsec->internalStatistics.tr1k; /**< r-10G 512 to 1023 byte frame counter */ + p_Statistics->eStatPkts1024to1518 = (MASK22BIT & GET_UINT32(p_DtsecMemMap->trmax)) + + p_Dtsec->internalStatistics.trmax; /**< r-10G 1024 to 1518 byte frame counter */ + p_Statistics->eStatPkts1519to1522 = (MASK22BIT & GET_UINT32(p_DtsecMemMap->trmgv)) + + p_Dtsec->internalStatistics.trmgv; /**< r-10G 1519 to 1522 byte good frame count */ + /* MIB II */ + p_Statistics->ifInOctets = GET_UINT32(p_DtsecMemMap->rbyt) + + p_Dtsec->internalStatistics.rbyt; /**< Total number of byte received. */ + p_Statistics->ifInPkts = (MASK22BIT & GET_UINT32(p_DtsecMemMap->rpkt)) + + p_Dtsec->internalStatistics.rpkt; /**< Total number of packets received.*/ + p_Statistics->ifInMcastPkts = (MASK22BIT & GET_UINT32(p_DtsecMemMap->rmca)) + + p_Dtsec->internalStatistics.rmca; /**< Total number of multicast frame received*/ + p_Statistics->ifInBcastPkts = (MASK22BIT & GET_UINT32(p_DtsecMemMap->rbca)) + + p_Dtsec->internalStatistics.rbca; /**< Total number of broadcast frame received */ + p_Statistics->ifOutOctets = GET_UINT32(p_DtsecMemMap->tbyt) + + p_Dtsec->internalStatistics.tbyt; /**< Total number of byte sent. */ + p_Statistics->ifOutPkts = (MASK22BIT & GET_UINT32(p_DtsecMemMap->tpkt)) + + p_Dtsec->internalStatistics.tpkt; /**< Total number of packets sent .*/ + p_Statistics->ifOutMcastPkts = (MASK22BIT & GET_UINT32(p_DtsecMemMap->tmca)) + + p_Dtsec->internalStatistics.tmca; /**< Total number of multicast frame sent */ + p_Statistics->ifOutBcastPkts = (MASK22BIT & GET_UINT32(p_DtsecMemMap->tbca)) + + p_Dtsec->internalStatistics.tbca; /**< Total number of multicast frame sent */ + } +/* */ + p_Statistics->eStatFragments = (MASK16BIT & GET_UINT32(p_DtsecMemMap->rfrg)) + + p_Dtsec->internalStatistics.rfrg; /**< Total number of packets that were less than 64 octets long with a wrong CRC.*/ + p_Statistics->eStatJabbers = (MASK16BIT & GET_UINT32(p_DtsecMemMap->rjbr)) + + p_Dtsec->internalStatistics.rjbr; /**< Total number of packets longer than valid maximum length octets */ + + p_Statistics->eStatsDropEvents = (MASK16BIT & GET_UINT32(p_DtsecMemMap->rdrp)) + + p_Dtsec->internalStatistics.rdrp; /**< number of dropped packets due to internal errors of the MAC Client. */ + p_Statistics->eStatCRCAlignErrors = (MASK16BIT & GET_UINT32(p_DtsecMemMap->raln)) + + p_Dtsec->internalStatistics.raln; /**< Incremented when frames of correct length but with CRC error are received.*/ + + p_Statistics->eStatUndersizePkts = (MASK16BIT & GET_UINT32(p_DtsecMemMap->rund)) + + p_Dtsec->internalStatistics.rund; /**< Total number of packets that were less than 64 octets long with a good CRC.*/ + p_Statistics->eStatOversizePkts = (MASK16BIT & GET_UINT32(p_DtsecMemMap->rovr)) + + p_Dtsec->internalStatistics.rovr; /**< T,B.D*/ +/* Pause */ + p_Statistics->reStatPause = (MASK16BIT & GET_UINT32(p_DtsecMemMap->rxpf)) + + p_Dtsec->internalStatistics.rxpf; /**< Pause MAC Control received */ + p_Statistics->teStatPause = (MASK16BIT & GET_UINT32(p_DtsecMemMap->txpf)) + + p_Dtsec->internalStatistics.txpf; /**< Pause MAC Control sent */ + + p_Statistics->ifInDiscards = p_Statistics->eStatsDropEvents; /**< Frames received, but discarded due to problems within the MAC RX. */ + + p_Statistics->ifInErrors = p_Statistics->eStatsDropEvents + + p_Statistics->eStatCRCAlignErrors + + (MASK16BIT & GET_UINT32(p_DtsecMemMap->rflr)) + + p_Dtsec->internalStatistics.rflr + + (MASK16BIT & GET_UINT32(p_DtsecMemMap->rcde)) + + p_Dtsec->internalStatistics.rcde + + (MASK16BIT & GET_UINT32(p_DtsecMemMap->rcse)) + + p_Dtsec->internalStatistics.rcse; + + p_Statistics->ifOutDiscards = (MASK16BIT & GET_UINT32(p_DtsecMemMap->tdrp)) + + p_Dtsec->internalStatistics.tdrp; /**< Frames received, but discarded due to problems within the MAC TX N/A!.*/ + p_Statistics->ifOutErrors = p_Statistics->ifOutDiscards /**< Number of frames transmitted with error: */ + + (MASK12BIT & GET_UINT32(p_DtsecMemMap->tfcs)) + + p_Dtsec->internalStatistics.tfcs; + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error DtsecModifyMacAddress (t_Handle h_Dtsec, t_EnetAddr *p_EnetAddr) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + t_DtsecMemMap *p_DtsecMemMap; + uint32_t tmpReg32 = 0; + uint64_t addr; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_NULL_POINTER); + + p_DtsecMemMap = p_Dtsec->p_MemMap; + /* Initialize MAC Station Address registers (1 & 2) */ + /* Station address have to be swapped (big endian to little endian */ + addr = ((*(uint64_t *)p_EnetAddr) >> 16); + p_Dtsec->addr = addr; + + tmpReg32 = (uint32_t)(addr); + SwapUint32P(&tmpReg32); + WRITE_UINT32(p_DtsecMemMap->macstnaddr1, tmpReg32); + + tmpReg32 = (uint32_t)(addr>>32); + SwapUint32P(&tmpReg32); + WRITE_UINT32(p_DtsecMemMap->macstnaddr2, tmpReg32); + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error DtsecResetCounters (t_Handle h_Dtsec) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + + /* clear HW counters */ + WRITE_UINT32(p_Dtsec->p_MemMap->ecntrl, GET_UINT32(p_Dtsec->p_MemMap->ecntrl) | ECNTRL_CLRCNT); + + /* clear SW counters holding carries */ + memset((char *)&p_Dtsec->internalStatistics, (char)0x0, sizeof(t_InternalStatistics)); + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error DtsecAddExactMatchMacAddress(t_Handle h_Dtsec, t_EnetAddr *p_EthAddr) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *) h_Dtsec; + uint64_t ethAddr; + uint8_t paddrNum; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + + ethAddr = ((*(uint64_t *)p_EthAddr) >> 16); + + if (ethAddr & GROUP_ADDRESS) + /* Multicast address has no effect in PADDR */ + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Multicast address")); + + /* Make sure no PADDR contains this address */ + for (paddrNum = 0; paddrNum < DTSEC_NUM_OF_PADDRS; paddrNum++) + if (p_Dtsec->indAddrRegUsed[paddrNum]) + if (p_Dtsec->paddr[paddrNum] == ethAddr) + RETURN_ERROR(MAJOR, E_ALREADY_EXISTS, NO_MSG); + + /* Find first unused PADDR */ + for (paddrNum = 0; paddrNum < DTSEC_NUM_OF_PADDRS; paddrNum++) + if (!(p_Dtsec->indAddrRegUsed[paddrNum])) + { + /* mark this PADDR as used */ + p_Dtsec->indAddrRegUsed[paddrNum] = TRUE; + /* store address */ + p_Dtsec->paddr[paddrNum] = ethAddr; + + /* put in hardware */ + HardwareAddAddrInPaddr(p_Dtsec, ðAddr, paddrNum); + p_Dtsec->numOfIndAddrInRegs++; + + return E_OK; + } + + /* No free PADDR */ + RETURN_ERROR(MAJOR, E_FULL, NO_MSG); +} + +/* .............................................................................. */ + +static t_Error DtsecDelExactMatchMacAddress(t_Handle h_Dtsec, t_EnetAddr *p_EthAddr) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *) h_Dtsec; + uint64_t ethAddr; + uint8_t paddrNum; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + + ethAddr = ((*(uint64_t *)p_EthAddr) >> 16); + + /* Find used PADDR containing this address */ + for (paddrNum = 0; paddrNum < DTSEC_NUM_OF_PADDRS; paddrNum++) + { + if ((p_Dtsec->indAddrRegUsed[paddrNum]) && + (p_Dtsec->paddr[paddrNum] == ethAddr)) + { + /* mark this PADDR as not used */ + p_Dtsec->indAddrRegUsed[paddrNum] = FALSE; + /* clear in hardware */ + HardwareClearAddrInPaddr(p_Dtsec, paddrNum); + p_Dtsec->numOfIndAddrInRegs--; + + return E_OK; + } + } + + RETURN_ERROR(MAJOR, E_NOT_FOUND, NO_MSG); +} + +/* .............................................................................. */ + +static t_Error DtsecAddHashMacAddress(t_Handle h_Dtsec, t_EnetAddr *p_EthAddr) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + t_DtsecMemMap *p_DtsecMemMap; + uint32_t crc; + uint8_t crcMirror, reg; + uint32_t bitMask; + t_EthHashEntry *p_HashEntry; + uint64_t ethAddr; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_NULL_POINTER); + + p_DtsecMemMap = p_Dtsec->p_MemMap; + + ethAddr = ((*(uint64_t *)p_EthAddr) >> 16); + + /* CRC calculation */ + GET_MAC_ADDR_CRC(ethAddr, crc); + + /* calculate the "crc mirror" */ + crcMirror = MIRROR((uint8_t)crc); + + /* 3 MSB bits define the register */ + reg = (uint8_t)(crcMirror >> 5); + /* 5 LSB bits define the bit within the register */ + bitMask = 0x80000000 >> (crcMirror & 0x1f); + + /* Create element to be added to the driver hash table */ + p_HashEntry = (t_EthHashEntry *)XX_Malloc(sizeof(t_EthHashEntry)); + p_HashEntry->addr = ethAddr; + INIT_LIST(&p_HashEntry->node); + + if (ethAddr & GROUP_ADDRESS) + { + /* Group Address */ + LIST_AddToTail(&(p_HashEntry->node), &(p_Dtsec->p_MulticastAddrHash->p_Lsts[crcMirror])); + /* Set the appropriate bit in GADDR0-7 */ + WRITE_UINT32(p_DtsecMemMap->gaddr[reg], + GET_UINT32(p_DtsecMemMap->gaddr[reg]) | bitMask); + } + else + { + LIST_AddToTail(&(p_HashEntry->node), &(p_Dtsec->p_UnicastAddrHash->p_Lsts[crcMirror])); + /* Set the appropriate bit in IADDR0-7 */ + WRITE_UINT32(p_DtsecMemMap->igaddr[reg], + GET_UINT32(p_DtsecMemMap->igaddr[reg]) | bitMask); + } + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error DtsecDelHashMacAddress(t_Handle h_Dtsec, t_EnetAddr *p_EthAddr) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + t_DtsecMemMap *p_DtsecMemMap; + t_List *p_Pos; + uint32_t crc; + uint8_t crcMirror, reg; + uint32_t bitMask; + t_EthHashEntry *p_HashEntry = NULL; + uint64_t ethAddr; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_NULL_POINTER); + + p_DtsecMemMap = p_Dtsec->p_MemMap; + + ethAddr = ((*(uint64_t *)p_EthAddr) >> 16); + + /* CRC calculation */ + GET_MAC_ADDR_CRC(ethAddr, crc); + + /* calculate the "crc mirror" */ + crcMirror = MIRROR((uint8_t)crc); + + /* 3 MSB bits define the register */ + reg =(uint8_t)( crcMirror >> 5); + /* 5 LSB bits define the bit within the register */ + bitMask = 0x80000000 >> (crcMirror & 0x1f); + + if (ethAddr & GROUP_ADDRESS) + { + /* Group Address */ + LIST_FOR_EACH(p_Pos, &(p_Dtsec->p_MulticastAddrHash->p_Lsts[crcMirror])) + { + p_HashEntry = ETH_HASH_ENTRY_OBJ(p_Pos); + if(p_HashEntry->addr == ethAddr) + { + LIST_DelAndInit(&p_HashEntry->node); + XX_Free(p_HashEntry); + break; + } + } + if(LIST_IsEmpty(&p_Dtsec->p_MulticastAddrHash->p_Lsts[crcMirror])) + WRITE_UINT32(p_DtsecMemMap->gaddr[reg], + GET_UINT32(p_DtsecMemMap->gaddr[reg]) & ~bitMask); + } + else + { + /* Individual Address */ + LIST_FOR_EACH(p_Pos, &(p_Dtsec->p_UnicastAddrHash->p_Lsts[crcMirror])) + { + p_HashEntry = ETH_HASH_ENTRY_OBJ(p_Pos); + if(p_HashEntry->addr == ethAddr) + { + LIST_DelAndInit(&p_HashEntry->node); + XX_Free(p_HashEntry); + break; + } + } + if(LIST_IsEmpty(&p_Dtsec->p_UnicastAddrHash->p_Lsts[crcMirror])) + WRITE_UINT32(p_DtsecMemMap->igaddr[reg], + GET_UINT32(p_DtsecMemMap->igaddr[reg]) & ~bitMask); + } + + /* address does not exist */ + ASSERT_COND(p_HashEntry != NULL); + + return E_OK; +} + + +/* .............................................................................. */ + +static t_Error DtsecSetPromiscuous(t_Handle h_Dtsec, bool newVal) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + t_DtsecMemMap *p_DtsecMemMap; + uint32_t tmpReg32; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_NULL_POINTER); + + p_DtsecMemMap = p_Dtsec->p_MemMap; + + tmpReg32 = GET_UINT32(p_DtsecMemMap->rctrl); + + if (newVal) + tmpReg32 |= RCTRL_PROM; + else + tmpReg32 &= ~RCTRL_PROM; + + WRITE_UINT32(p_DtsecMemMap->rctrl, tmpReg32); + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error DtsecSetStatistics(t_Handle h_Dtsec, e_FmMacStatisticsLevel statisticsLevel) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + t_DtsecMemMap *p_DtsecMemMap; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_NULL_POINTER); + + p_DtsecMemMap = p_Dtsec->p_MemMap; + + p_Dtsec->statisticsLevel = statisticsLevel; + + switch (p_Dtsec->statisticsLevel) + { + case(e_FM_MAC_NONE_STATISTICS): + WRITE_UINT32(p_DtsecMemMap->cam1,0xffffffff); + WRITE_UINT32(p_DtsecMemMap->cam2,0xffffffff); + WRITE_UINT32(p_DtsecMemMap->ecntrl, GET_UINT32(p_DtsecMemMap->ecntrl) & ~ECNTRL_STEN); + WRITE_UINT32(p_DtsecMemMap->imask, GET_UINT32(p_DtsecMemMap->imask) & ~IMASK_MSROEN); + p_Dtsec->exceptions &= ~IMASK_MSROEN; + break; + case(e_FM_MAC_PARTIAL_STATISTICS): + WRITE_UINT32(p_DtsecMemMap->cam1, CAM1_ERRORS_ONLY); + WRITE_UINT32(p_DtsecMemMap->cam2, CAM2_ERRORS_ONLY); + WRITE_UINT32(p_DtsecMemMap->ecntrl, GET_UINT32(p_DtsecMemMap->ecntrl) | ECNTRL_STEN); + WRITE_UINT32(p_DtsecMemMap->imask, GET_UINT32(p_DtsecMemMap->imask) | IMASK_MSROEN); + p_Dtsec->exceptions |= IMASK_MSROEN; + break; + case(e_FM_MAC_FULL_STATISTICS): + WRITE_UINT32(p_DtsecMemMap->cam1,0); + WRITE_UINT32(p_DtsecMemMap->cam2,0); + WRITE_UINT32(p_DtsecMemMap->ecntrl, GET_UINT32(p_DtsecMemMap->ecntrl) | ECNTRL_STEN); + WRITE_UINT32(p_DtsecMemMap->imask, GET_UINT32(p_DtsecMemMap->imask) | IMASK_MSROEN); + p_Dtsec->exceptions |= IMASK_MSROEN; + break; + default: + RETURN_ERROR(MINOR, E_INVALID_SELECTION, NO_MSG); + } + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error DtsecAdjustLink(t_Handle h_Dtsec, e_EnetSpeed speed, bool fullDuplex) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + t_DtsecMemMap *p_DtsecMemMap; + uint32_t tmpReg32; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_HANDLE); + p_DtsecMemMap = p_Dtsec->p_MemMap; + SANITY_CHECK_RETURN_ERROR(p_DtsecMemMap, E_INVALID_HANDLE); + + if (!fullDuplex && + ((speed >= e_ENET_SPEED_1000) || + (ENET_INTERFACE_FROM_MODE(p_Dtsec->enetMode) == e_ENET_IF_SGMII))) + RETURN_ERROR(MAJOR, E_CONFLICT, ("Ethernet interface does not support Half Duplex mode")); + + p_Dtsec->enetMode = MAKE_ENET_MODE(ENET_INTERFACE_FROM_MODE(p_Dtsec->enetMode), speed); + p_Dtsec->halfDuplex = !fullDuplex; + + tmpReg32 = GET_UINT32(p_DtsecMemMap->maccfg2); + if(p_Dtsec->halfDuplex) + tmpReg32 &= ~MACCFG2_FULL_DUPLEX; + else + tmpReg32 |= MACCFG2_FULL_DUPLEX; + + tmpReg32 &= ~(MACCFG2_NIBBLE_MODE | MACCFG2_BYTE_MODE); + if((p_Dtsec->enetMode == e_ENET_MODE_RGMII_10) || + (p_Dtsec->enetMode == e_ENET_MODE_RGMII_100)|| + (p_Dtsec->enetMode == e_ENET_MODE_SGMII_10) || + (p_Dtsec->enetMode == e_ENET_MODE_SGMII_100)) + tmpReg32 |= MACCFG2_NIBBLE_MODE; + else if((p_Dtsec->enetMode == e_ENET_MODE_RGMII_1000) || + (p_Dtsec->enetMode == e_ENET_MODE_SGMII_1000)|| + (p_Dtsec->enetMode == e_ENET_MODE_GMII_1000)) + tmpReg32 |= MACCFG2_BYTE_MODE; + WRITE_UINT32(p_DtsecMemMap->maccfg2, tmpReg32); + + tmpReg32 = GET_UINT32(p_DtsecMemMap->ecntrl); + if (!(tmpReg32 & ECNTRL_CFG_RO)) + { + if ((p_Dtsec->enetMode == e_ENET_MODE_RGMII_100) || + (p_Dtsec->enetMode == e_ENET_MODE_SGMII_100)) + tmpReg32 |= ECNTRL_R100M; + else + tmpReg32 &= ~ECNTRL_R100M; + WRITE_UINT32(p_DtsecMemMap->ecntrl, tmpReg32); + } + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error DtsecGetId(t_Handle h_Dtsec, uint32_t *macId) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_HANDLE); + + *macId = p_Dtsec->macId; + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error DtsecGetVersion(t_Handle h_Dtsec, uint32_t *macVersion) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + t_DtsecMemMap *p_DtsecMemMap; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_NULL_POINTER); + + p_DtsecMemMap = p_Dtsec->p_MemMap; + *macVersion = GET_UINT32(p_DtsecMemMap->tsec_id1); + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error DtsecSetException(t_Handle h_Dtsec, e_FmMacExceptions exception, bool enable) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + uint32_t tmpReg, bitMask = 0; + t_DtsecMemMap *p_DtsecMemMap; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Dtsec->p_DtsecDriverParam, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_NULL_POINTER); + + p_DtsecMemMap = p_Dtsec->p_MemMap; + + if(exception != e_FM_MAC_EX_1G_1588_TS_RX_ERR) + { + GET_EXCEPTION_FLAG(bitMask, exception); + if(bitMask) + { + if (enable) + p_Dtsec->exceptions |= bitMask; + else + p_Dtsec->exceptions &= ~bitMask; + } + else + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Undefined exception")); + + tmpReg = GET_UINT32(p_DtsecMemMap->imask); + if(enable) + tmpReg |= bitMask; + else + tmpReg &= ~bitMask; + WRITE_UINT32(p_DtsecMemMap->imask, tmpReg); + + /* warn if MIB OVFL is disabled and statistic gathering is enabled */ + if((exception == e_FM_MAC_EX_1G_RX_MIB_CNT_OVFL) && + !enable && + (p_Dtsec->statisticsLevel != e_FM_MAC_NONE_STATISTICS)) + DBG(WARNING, ("Disabled MIB counters overflow exceptions. Counters value may be inaccurate due to unregistered overflow")); + + } + else + { + if(!p_Dtsec->ptpTsuEnabled) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Exception valid for 1588 only")); + tmpReg = GET_UINT32(p_DtsecMemMap->tmr_pemask); + switch(exception){ + case(e_FM_MAC_EX_1G_1588_TS_RX_ERR): + if(enable) + { + p_Dtsec->enTsuErrExeption = TRUE; + WRITE_UINT32(p_DtsecMemMap->tmr_pemask, tmpReg | PEMASK_TSRE); + } + else + { + p_Dtsec->enTsuErrExeption = FALSE; + WRITE_UINT32(p_DtsecMemMap->tmr_pemask, tmpReg & ~PEMASK_TSRE); + } + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Undefined exception")); + } + } + + return E_OK; +} + +/* ........................................................................... */ + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +static t_Error DtsecDumpRegs(t_Handle h_Dtsec) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + int i = 0; + + DECLARE_DUMP; + + if (p_Dtsec->p_MemMap) + { + + DUMP_TITLE(p_Dtsec->p_MemMap, ("MAC %d: ", p_Dtsec->macId)); + DUMP_VAR(p_Dtsec->p_MemMap, tsec_id1); + DUMP_VAR(p_Dtsec->p_MemMap, tsec_id2); + DUMP_VAR(p_Dtsec->p_MemMap, ievent); + DUMP_VAR(p_Dtsec->p_MemMap, imask); + DUMP_VAR(p_Dtsec->p_MemMap, edis); + DUMP_VAR(p_Dtsec->p_MemMap, ecntrl); + DUMP_VAR(p_Dtsec->p_MemMap, ptv); + DUMP_VAR(p_Dtsec->p_MemMap, tmr_ctrl); + DUMP_VAR(p_Dtsec->p_MemMap, tmr_pevent); + DUMP_VAR(p_Dtsec->p_MemMap, tmr_pemask); + DUMP_VAR(p_Dtsec->p_MemMap, tctrl); + DUMP_VAR(p_Dtsec->p_MemMap, rctrl); + DUMP_VAR(p_Dtsec->p_MemMap, maccfg1); + DUMP_VAR(p_Dtsec->p_MemMap, maccfg2); + DUMP_VAR(p_Dtsec->p_MemMap, ipgifg); + DUMP_VAR(p_Dtsec->p_MemMap, hafdup); + DUMP_VAR(p_Dtsec->p_MemMap, maxfrm); + + DUMP_VAR(p_Dtsec->p_MemMap, macstnaddr1); + DUMP_VAR(p_Dtsec->p_MemMap, macstnaddr2); + + DUMP_SUBSTRUCT_ARRAY(i, 8) + { + DUMP_VAR(p_Dtsec->p_MemMap, macaddr[i].exact_match1); + DUMP_VAR(p_Dtsec->p_MemMap, macaddr[i].exact_match2); + } + } + + return E_OK; +} +#endif /* (defined(DEBUG_ERRORS) && ... */ + + +/*****************************************************************************/ +/* FM Init & Free API */ +/*****************************************************************************/ + +/* .............................................................................. */ + +static t_Error DtsecInit(t_Handle h_Dtsec) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + t_DtsecDriverParam *p_DtsecDriverParam; + t_DtsecMemMap *p_DtsecMemMap; + int i; + uint32_t tmpReg32; + uint64_t addr; + t_Error err; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_DtsecDriverParam, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MemMap, E_INVALID_STATE); + + CHECK_INIT_PARAMETERS(p_Dtsec, CheckInitParameters); + + p_DtsecDriverParam = p_Dtsec->p_DtsecDriverParam; + p_Dtsec->halfDuplex = p_DtsecDriverParam->halfDuplex; + p_Dtsec->debugMode = p_DtsecDriverParam->debugMode; + p_DtsecMemMap = p_Dtsec->p_MemMap; + + /*************dtsec_id2******************/ + tmpReg32 = GET_UINT32(p_DtsecMemMap->tsec_id2); + + if ((p_Dtsec->enetMode == e_ENET_MODE_RGMII_10) || + (p_Dtsec->enetMode == e_ENET_MODE_RGMII_100) || + (p_Dtsec->enetMode == e_ENET_MODE_RGMII_1000) || + (p_Dtsec->enetMode == e_ENET_MODE_RMII_10) || + (p_Dtsec->enetMode == e_ENET_MODE_RMII_100)) + if(tmpReg32 & ID2_INT_REDUCED_OFF) + { + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("no support for reduced interface in current DTSEC version")); + } + + if ((p_Dtsec->enetMode == e_ENET_MODE_SGMII_10) || + (p_Dtsec->enetMode == e_ENET_MODE_SGMII_100) || + (p_Dtsec->enetMode == e_ENET_MODE_SGMII_1000)|| + (p_Dtsec->enetMode == e_ENET_MODE_MII_10) || + (p_Dtsec->enetMode == e_ENET_MODE_MII_100)) + if(tmpReg32 & ID2_INT_NORMAL_OFF) + { + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("no support for normal interface in current DTSEC version")); + } + /*************dtsec_id2******************/ + + /***************EDIS************************/ + WRITE_UINT32(p_DtsecMemMap->edis, p_DtsecDriverParam->errorDisabled); + /***************EDIS************************/ + + /***************ECNTRL************************/ + tmpReg32 = 0; + if ((p_Dtsec->enetMode == e_ENET_MODE_RGMII_10) || + (p_Dtsec->enetMode == e_ENET_MODE_RGMII_100) || + (p_Dtsec->enetMode == e_ENET_MODE_RGMII_1000) || + (p_Dtsec->enetMode == e_ENET_MODE_GMII_1000)) + tmpReg32 |= ECNTRL_GMIIM; + if ((p_Dtsec->enetMode == e_ENET_MODE_SGMII_10) || + (p_Dtsec->enetMode == e_ENET_MODE_SGMII_100) || + (p_Dtsec->enetMode == e_ENET_MODE_SGMII_1000)) + tmpReg32 |= (ECNTRL_SGMIIM | ECNTRL_TBIM); + if (p_Dtsec->enetMode == e_ENET_MODE_QSGMII_1000) + tmpReg32 |= (ECNTRL_SGMIIM | ECNTRL_TBIM | ECNTRL_QSGMIIM); + if ((p_Dtsec->enetMode == e_ENET_MODE_RGMII_1000) || + (p_Dtsec->enetMode == e_ENET_MODE_RGMII_10)|| + (p_Dtsec->enetMode == e_ENET_MODE_RGMII_100)) + tmpReg32 |= ECNTRL_RPM; + if ((p_Dtsec->enetMode == e_ENET_MODE_RGMII_100) || + (p_Dtsec->enetMode == e_ENET_MODE_SGMII_100) || + (p_Dtsec->enetMode == e_ENET_MODE_RMII_100)) + tmpReg32 |= ECNTRL_R100M; + if ((p_Dtsec->enetMode == e_ENET_MODE_RMII_10) || (p_Dtsec->enetMode == e_ENET_MODE_RMII_100)) + tmpReg32 |= ECNTRL_RMM; + WRITE_UINT32(p_DtsecMemMap->ecntrl, tmpReg32); + /***************ECNTRL************************/ + + /***************PTV************************/ + tmpReg32 = 0; +#ifdef FM_SHORT_PAUSE_TIME_ERRATA_DTSEC1 + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_Dtsec->fmMacControllerDriver.h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + p_DtsecDriverParam->pauseTime += 2; + } +#endif /* FM_SHORT_PAUSE_TIME_ERRATA_DTSEC1 */ + if (p_DtsecDriverParam->pauseTime) + tmpReg32 |= (uint32_t)p_DtsecDriverParam->pauseTime; + + if (p_DtsecDriverParam->pauseExtended) + tmpReg32 |= ((uint32_t)p_DtsecDriverParam->pauseExtended) << PTV_PTE_OFST; + WRITE_UINT32(p_DtsecMemMap->ptv, tmpReg32); + /***************PTV************************/ + + /***************TCTRL************************/ + tmpReg32 = 0; + if(p_DtsecDriverParam->halfDuplex) + { + if(p_DtsecDriverParam->halfDulexFlowControlEn) + tmpReg32 |= TCTRL_THDF; + } + else + { + if(p_DtsecDriverParam->txTimeStampEn) + tmpReg32 |= TCTRL_TTSE; + } + WRITE_UINT32(p_DtsecMemMap->tctrl, tmpReg32); + /***************TCTRL************************/ + + /***************RCTRL************************/ + tmpReg32 = 0; + if (p_DtsecDriverParam->packetAlignmentPadding) + tmpReg32 |= ((uint32_t)(0x0000001f & p_DtsecDriverParam->packetAlignmentPadding)) << 16; + if (p_DtsecDriverParam->controlFrameAccept) + tmpReg32 |= RCTRL_CFA; + if (p_DtsecDriverParam->groupHashExtend) + tmpReg32 |= RCTRL_GHTX; + if(p_DtsecDriverParam->rxTimeStampEn) + tmpReg32 |= RCTRL_RTSE; + if (p_DtsecDriverParam->broadcReject) + tmpReg32 |= RCTRL_BC_REJ; + if (p_DtsecDriverParam->rxShortFrame) + tmpReg32 |= RCTRL_RSF; + if (p_DtsecDriverParam->promiscuousEnable) + tmpReg32 |= RCTRL_PROM; + if (p_DtsecDriverParam->exactMatch) + tmpReg32 |= RCTRL_EMEN; + + WRITE_UINT32(p_DtsecMemMap->rctrl, tmpReg32); + /***************RCTRL************************/ + + /* Assign a Phy Address to the TBI (TBIPA). */ + /* Done also in case that TBI is not selected to avoid */ + /* conflict with the external PHYs Physical address */ + WRITE_UINT32(p_DtsecMemMap->tbipa, p_DtsecDriverParam->tbiPhyAddr); + + /* Reset the management interface */ + WRITE_UINT32(p_Dtsec->p_MiiMemMap->miimcfg, MIIMCFG_RESET_MGMT); + WRITE_UINT32(p_Dtsec->p_MiiMemMap->miimcfg, ~MIIMCFG_RESET_MGMT); + /* Setup the MII Mgmt clock speed */ + WRITE_UINT32(p_Dtsec->p_MiiMemMap->miimcfg, + (uint32_t)GetMiiDiv((int32_t)(((p_Dtsec->fmMacControllerDriver.clkFreq*10)/2)/8))); + + if(p_Dtsec->enetMode == e_ENET_MODE_SGMII_1000) + { + uint16_t tmpReg16; + + /* Configure the TBI PHY Control Register */ + tmpReg16 = PHY_TBICON_SPEED2 | PHY_TBICON_SRESET; + + DTSEC_MII_WritePhyReg(p_Dtsec, p_DtsecDriverParam->tbiPhyAddr, 17, tmpReg16); + + tmpReg16 = PHY_TBICON_SPEED2; + + DTSEC_MII_WritePhyReg(p_Dtsec, p_DtsecDriverParam->tbiPhyAddr, 17, tmpReg16); + + if(!p_DtsecDriverParam->halfDuplex) + tmpReg16 |= PHY_CR_FULLDUPLEX | 0x8000 | PHY_CR_ANE; + + DTSEC_MII_WritePhyReg(p_Dtsec, p_DtsecDriverParam->tbiPhyAddr, 0, tmpReg16); + + tmpReg16 = 0x01a0; + DTSEC_MII_WritePhyReg(p_Dtsec, p_DtsecDriverParam->tbiPhyAddr, 4, tmpReg16); + + tmpReg16 = 0x1340; + DTSEC_MII_WritePhyReg(p_Dtsec, p_DtsecDriverParam->tbiPhyAddr, 0, tmpReg16); + } + + /***************TMR_CTL************************/ + WRITE_UINT32(p_DtsecMemMap->tmr_ctrl, 0); + + if(p_Dtsec->ptpTsuEnabled) + { + tmpReg32 = 0; + if (p_Dtsec->enTsuErrExeption) + tmpReg32 |= PEMASK_TSRE; + WRITE_UINT32(p_DtsecMemMap->tmr_pemask, tmpReg32); + WRITE_UINT32(p_DtsecMemMap->tmr_pevent, tmpReg32); + } + + /***************DEBUG************************/ + tmpReg32 = 0; + if(p_DtsecDriverParam->debugMode) + WRITE_UINT32(p_DtsecMemMap->tsec_id1, TSEC_ID1_DEBUG); + /***************DEBUG************************/ + + /***************MACCFG1***********************/ + WRITE_UINT32(p_DtsecMemMap->maccfg1, MACCFG1_SOFT_RESET); + WRITE_UINT32(p_DtsecMemMap->maccfg1, 0); + tmpReg32 = 0; + if(p_DtsecDriverParam->loopback) + tmpReg32 |= MACCFG1_LOOPBACK; + if(p_DtsecDriverParam->actOnRxPauseFrame) + tmpReg32 |= MACCFG1_RX_FLOW; + if(p_DtsecDriverParam->actOnTxPauseFrame) + tmpReg32 |= MACCFG1_TX_FLOW; + WRITE_UINT32(p_DtsecMemMap->maccfg1, tmpReg32); + /***************MACCFG1***********************/ + + /***************MACCFG2***********************/ + tmpReg32 = 0; + if( (p_Dtsec->enetMode == e_ENET_MODE_RMII_10) || + (p_Dtsec->enetMode == e_ENET_MODE_RMII_100) || + (p_Dtsec->enetMode == e_ENET_MODE_MII_10) || + (p_Dtsec->enetMode == e_ENET_MODE_MII_100) || + (p_Dtsec->enetMode == e_ENET_MODE_RGMII_10) || + (p_Dtsec->enetMode == e_ENET_MODE_RGMII_100)|| + (p_Dtsec->enetMode == e_ENET_MODE_SGMII_10) || + (p_Dtsec->enetMode == e_ENET_MODE_SGMII_100)) + tmpReg32 |= MACCFG2_NIBBLE_MODE; + else if((p_Dtsec->enetMode == e_ENET_MODE_RGMII_1000) || + (p_Dtsec->enetMode == e_ENET_MODE_SGMII_1000)|| + (p_Dtsec->enetMode == e_ENET_MODE_GMII_1000)|| + (p_Dtsec->enetMode == e_ENET_MODE_QSGMII_1000)) + tmpReg32 |= MACCFG2_BYTE_MODE; + + tmpReg32 |= (((uint32_t)p_DtsecDriverParam->preambleLength) & 0x0000000f)<< PREAMBLE_LENGTH_SHIFT; + + if(p_DtsecDriverParam->preambleRxEn) + tmpReg32 |= MACCFG2_PRE_AM_Rx_EN; + if(p_DtsecDriverParam->preambleTxEn) + tmpReg32 |= MACCFG2_PRE_AM_Tx_EN; + if(p_DtsecDriverParam->lengthCheckEnable) + tmpReg32 |= MACCFG2_LENGTH_CHECK; + if(p_DtsecDriverParam->padAndCrcEnable) + tmpReg32 |= MACCFG2_PAD_CRC_EN; + if(p_DtsecDriverParam->crcEnable) + tmpReg32 |= MACCFG2_CRC_EN; + if(!p_DtsecDriverParam->halfDuplex) + tmpReg32 |= MACCFG2_FULL_DUPLEX; + WRITE_UINT32(p_DtsecMemMap->maccfg2, tmpReg32); + /***************MACCFG2***********************/ + + /***************IPGIFG************************/ + tmpReg32 = 0; + ASSERT_COND(p_DtsecDriverParam->nonBackToBackIpg1 <= p_DtsecDriverParam->nonBackToBackIpg2); + tmpReg32 = (uint32_t)((((uint32_t)p_DtsecDriverParam->nonBackToBackIpg1 << + IPGIFG_NON_BACK_TO_BACK_IPG_1_SHIFT) & IPGIFG_NON_BACK_TO_BACK_IPG_1) | + (((uint32_t)p_DtsecDriverParam->nonBackToBackIpg2 << + IPGIFG_NON_BACK_TO_BACK_IPG_2_SHIFT) & IPGIFG_NON_BACK_TO_BACK_IPG_2) | + (((uint32_t)p_DtsecDriverParam->minIfgEnforcement << + IPGIFG_MIN_IFG_ENFORCEMENT_SHIFT) & IPGIFG_MIN_IFG_ENFORCEMENT) | + ((uint32_t)p_DtsecDriverParam->backToBackIpg & IPGIFG_BACK_TO_BACK_IPG)); + WRITE_UINT32(p_DtsecMemMap->ipgifg, tmpReg32); + /***************IPGIFG************************/ + + /***************HAFDUP************************/ + tmpReg32 = 0; + if(p_DtsecDriverParam->alternateBackoffEnable) + { + tmpReg32 = (uint32_t) (HAFDUP_ALT_BEB | (((uint32_t)p_DtsecDriverParam->alternateBackoffVal & 0x0000000f) << + HAFDUP_ALTERNATE_BEB_TRUNCATION_SHIFT)); + } + + if(p_DtsecDriverParam->backPressureNoBackoff) + tmpReg32 |= HAFDUP_BP_NO_BACKOFF; + if(p_DtsecDriverParam->noBackoff) + tmpReg32 |= HAFDUP_NO_BACKOFF; + if(p_DtsecDriverParam->excessDefer) + tmpReg32 |= HAFDUP_EXCESS_DEFER; + tmpReg32 |= (((uint32_t)p_DtsecDriverParam->maxRetransmission << + HAFDUP_RETRANSMISSION_MAX_SHIFT )& HAFDUP_RETRANSMISSION_MAX); + tmpReg32|= ((uint32_t)p_DtsecDriverParam->collisionWindow & HAFDUP_COLLISION_WINDOW); + + WRITE_UINT32(p_DtsecMemMap->hafdup, tmpReg32); + /***************HAFDUP************************/ + + /***************MAXFRM************************/ + /* Initialize MAXFRM */ + WRITE_UINT32(p_DtsecMemMap->maxfrm, + p_DtsecDriverParam->maxFrameLength); + err = FmSetMacMaxFrame(p_Dtsec->fmMacControllerDriver.h_Fm, + e_FM_MAC_1G, + p_Dtsec->fmMacControllerDriver.macId, + p_DtsecDriverParam->maxFrameLength); + if (err) + RETURN_ERROR(MAJOR, err, NO_MSG); + /***************MAXFRM************************/ + + /***************CAM1************************/ + WRITE_UINT32(p_DtsecMemMap->cam1,0xffffffff); + WRITE_UINT32(p_DtsecMemMap->cam2,0xffffffff); + + /***************IMASK************************/ + WRITE_UINT32(p_DtsecMemMap->imask, p_Dtsec->exceptions); + /***************IMASK************************/ + + /***************IEVENT************************/ + WRITE_UINT32(p_DtsecMemMap->ievent, EVENTS_MASK); + + /***************MACSTNADDR1/2*****************/ + /* Initialize MAC Station Address registers (1 & 2) */ + /* Station address have to be swapped (big endian to little endian */ + addr = p_Dtsec->addr; + + tmpReg32 = (uint32_t)(addr); + SwapUint32P(&tmpReg32); + WRITE_UINT32(p_DtsecMemMap->macstnaddr1, tmpReg32); + + tmpReg32 = (uint32_t)(addr>>32); + SwapUint32P(&tmpReg32); + WRITE_UINT32(p_DtsecMemMap->macstnaddr2, tmpReg32); + /***************MACSTNADDR1/2*****************/ + + /***************DEBUG*****************/ + WRITE_UINT32(p_DtsecMemMap->tx_threshold, (uint32_t)(p_DtsecDriverParam->fifoTxThr & 0x7f)); + WRITE_UINT32(p_DtsecMemMap->tx_watermark_high, (uint32_t)(p_DtsecDriverParam->fifoTxWatermarkH & 0x7f)); + WRITE_UINT32(p_DtsecMemMap->rx_watermark_low, (uint32_t)(p_DtsecDriverParam->fifoRxWatermarkL & 0x7f)); + /***************DEBUG*****************/ + + /*****************HASH************************/ + for(i=0 ; iigaddr[i], 0); + /* Initialize GADDRx */ + WRITE_UINT32(p_DtsecMemMap->gaddr[i], 0); + } + + p_Dtsec->p_MulticastAddrHash = AllocHashTable(HASH_TABLE_SIZE); + if(!p_Dtsec->p_MulticastAddrHash) + { + FreeInitResources(p_Dtsec); + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("MC hash table is FAILED")); + } + + p_Dtsec->p_UnicastAddrHash = AllocHashTable(HASH_TABLE_SIZE); + if(!p_Dtsec->p_UnicastAddrHash) + { + FreeInitResources(p_Dtsec); + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("UC hash table is FAILED")); + } + + /* register err intr handler for dtsec to FPM (err)*/ + FmRegisterIntr(p_Dtsec->fmMacControllerDriver.h_Fm, e_FM_MOD_1G_MAC, p_Dtsec->macId, e_FM_INTR_TYPE_ERR, DtsecErrException , p_Dtsec); + /* register 1588 intr handler for TMR to FPM (normal)*/ + FmRegisterIntr(p_Dtsec->fmMacControllerDriver.h_Fm, e_FM_MOD_1G_MAC_TMR, p_Dtsec->macId, e_FM_INTR_TYPE_NORMAL, Dtsec1588Exception , p_Dtsec); + /* register normal intr handler for dtsec to main interrupt controller. */ + if (p_Dtsec->mdioIrq != NO_IRQ) + { + XX_SetIntr(p_Dtsec->mdioIrq, DtsecException, p_Dtsec); + XX_EnableIntr(p_Dtsec->mdioIrq); + } + + XX_Free(p_DtsecDriverParam); + p_Dtsec->p_DtsecDriverParam = NULL; + + err = DtsecSetStatistics(p_Dtsec, e_FM_MAC_FULL_STATISTICS); + if(err) + { + FreeInitResources(p_Dtsec); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + return E_OK; +} + +/* ........................................................................... */ + +static t_Error DtsecFree(t_Handle h_Dtsec) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + + FreeInitResources(p_Dtsec); + + if (p_Dtsec->p_DtsecDriverParam) + { + XX_Free(p_Dtsec->p_DtsecDriverParam); + p_Dtsec->p_DtsecDriverParam = NULL; + } + XX_Free (h_Dtsec); + + return E_OK; +} + +/* .............................................................................. */ + +static void InitFmMacControllerDriver(t_FmMacControllerDriver *p_FmMacControllerDriver) +{ + p_FmMacControllerDriver->f_FM_MAC_Init = DtsecInit; + p_FmMacControllerDriver->f_FM_MAC_Free = DtsecFree; + + p_FmMacControllerDriver->f_FM_MAC_SetStatistics = DtsecSetStatistics; + p_FmMacControllerDriver->f_FM_MAC_ConfigLoopback = DtsecConfigLoopback; + p_FmMacControllerDriver->f_FM_MAC_ConfigMaxFrameLength = DtsecConfigMaxFrameLength; + + p_FmMacControllerDriver->f_FM_MAC_ConfigWan = NULL; /* Not supported on dTSEC */ + + p_FmMacControllerDriver->f_FM_MAC_ConfigPadAndCrc = DtsecConfigPadAndCrc; + p_FmMacControllerDriver->f_FM_MAC_ConfigHalfDuplex = DtsecConfigHalfDuplex; + p_FmMacControllerDriver->f_FM_MAC_ConfigLengthCheck = DtsecConfigLengthCheck; + p_FmMacControllerDriver->f_FM_MAC_ConfigException = DtsecConfigException; + + p_FmMacControllerDriver->f_FM_MAC_Enable = DtsecEnable; + p_FmMacControllerDriver->f_FM_MAC_Disable = DtsecDisable; + + p_FmMacControllerDriver->f_FM_MAC_SetException = DtsecSetException; + + p_FmMacControllerDriver->f_FM_MAC_SetPromiscuous = DtsecSetPromiscuous; + p_FmMacControllerDriver->f_FM_MAC_AdjustLink = DtsecAdjustLink; + + p_FmMacControllerDriver->f_FM_MAC_Enable1588TimeStamp = DtsecEnable1588TimeStamp; + p_FmMacControllerDriver->f_FM_MAC_Disable1588TimeStamp = DtsecDisable1588TimeStamp; + + p_FmMacControllerDriver->f_FM_MAC_SetTxAutoPauseFrames = DtsecTxMacPause; + p_FmMacControllerDriver->f_FM_MAC_SetRxIgnorePauseFrames = DtsecRxIgnoreMacPause; + + p_FmMacControllerDriver->f_FM_MAC_ResetCounters = DtsecResetCounters; + p_FmMacControllerDriver->f_FM_MAC_GetStatistics = DtsecGetStatistics; + + p_FmMacControllerDriver->f_FM_MAC_ModifyMacAddr = DtsecModifyMacAddress; + p_FmMacControllerDriver->f_FM_MAC_AddHashMacAddr = DtsecAddHashMacAddress; + p_FmMacControllerDriver->f_FM_MAC_RemoveHashMacAddr = DtsecDelHashMacAddress; + p_FmMacControllerDriver->f_FM_MAC_AddExactMatchMacAddr = DtsecAddExactMatchMacAddress; + p_FmMacControllerDriver->f_FM_MAC_RemovelExactMatchMacAddr = DtsecDelExactMatchMacAddress; + p_FmMacControllerDriver->f_FM_MAC_GetId = DtsecGetId; + p_FmMacControllerDriver->f_FM_MAC_GetVersion = DtsecGetVersion; + p_FmMacControllerDriver->f_FM_MAC_GetMaxFrameLength = DtsecGetMaxFrameLength; + + p_FmMacControllerDriver->f_FM_MAC_MII_WritePhyReg = DTSEC_MII_WritePhyReg; + p_FmMacControllerDriver->f_FM_MAC_MII_ReadPhyReg = DTSEC_MII_ReadPhyReg; + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) + p_FmMacControllerDriver->f_FM_MAC_DumpRegs = DtsecDumpRegs; +#endif /* (defined(DEBUG_ERRORS) && ... */ +} + + +/*****************************************************************************/ +/* dTSEC Config Main Entry */ +/*****************************************************************************/ + +/* .............................................................................. */ + +t_Handle DTSEC_Config(t_FmMacParams *p_FmMacParam) +{ + t_Dtsec *p_Dtsec; + t_DtsecDriverParam *p_DtsecDriverParam; + uintptr_t baseAddr; + uint8_t i; + + SANITY_CHECK_RETURN_VALUE(p_FmMacParam, E_NULL_POINTER, NULL); + + baseAddr = p_FmMacParam->baseAddr; + /* allocate memory for the UCC GETH data structure. */ + p_Dtsec = (t_Dtsec *) XX_Malloc(sizeof(t_Dtsec)); + if (!p_Dtsec) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("dTSEC driver structure")); + return NULL; + } + /* Zero out * p_Dtsec */ + memset(p_Dtsec, 0, sizeof(t_Dtsec)); + InitFmMacControllerDriver(&p_Dtsec->fmMacControllerDriver); + + /* allocate memory for the dTSEC driver parameters data structure. */ + p_DtsecDriverParam = (t_DtsecDriverParam *) XX_Malloc(sizeof(t_DtsecDriverParam)); + if (!p_DtsecDriverParam) + { + XX_Free(p_Dtsec); + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("dTSEC driver parameters")); + return NULL; + } + /* Zero out */ + memset(p_DtsecDriverParam, 0, sizeof(t_DtsecDriverParam)); + + /* Plant parameter structure pointer */ + p_Dtsec->p_DtsecDriverParam = p_DtsecDriverParam; + + SetDefaultParam(p_DtsecDriverParam); + + for (i=0; i < sizeof(p_FmMacParam->addr); i++) + p_Dtsec->addr |= ((uint64_t)p_FmMacParam->addr[i] << ((5-i) * 8)); + + p_Dtsec->p_MemMap = (t_DtsecMemMap *)UINT_TO_PTR(baseAddr); + p_Dtsec->p_MiiMemMap = (t_MiiAccessMemMap *)UINT_TO_PTR(baseAddr + DTSEC_TO_MII_OFFSET); + p_Dtsec->enetMode = p_FmMacParam->enetMode; + p_Dtsec->macId = p_FmMacParam->macId; + p_Dtsec->exceptions = DEFAULT_exceptions; + p_Dtsec->mdioIrq = p_FmMacParam->mdioIrq; + p_Dtsec->f_Exception = p_FmMacParam->f_Exception; + p_Dtsec->f_Event = p_FmMacParam->f_Event; + p_Dtsec->h_App = p_FmMacParam->h_App; + + return p_Dtsec; +} --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/dtsec.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/dtsec.h @@ -0,0 +1,634 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File dtsec.h + + @Description FM dTSEC ... +*//***************************************************************************/ +#ifndef __DTSEC_H +#define __DTSEC_H + +#include "std_ext.h" +#include "error_ext.h" +#include "list_ext.h" +#include "dtsec_mii_acc.h" +#include "fm_mac.h" + + +#define PEMASK_TSRE 0x00010000 + +#define IMASK_BREN 0x80000000 +#define IMASK_RXCEN 0x40000000 +#define IMASK_MSROEN 0x04000000 +#define IMASK_GTSCEN 0x02000000 +#define IMASK_BTEN 0x01000000 +#define IMASK_TXCEN 0x00800000 +#define IMASK_TXEEN 0x00400000 +#define IMASK_LCEN 0x00040000 +#define IMASK_CRLEN 0x00020000 +#define IMASK_XFUNEN 0x00010000 +#define IMASK_ABRTEN 0x00008000 +#define IMASK_IFERREN 0x00004000 +#define IMASK_MAGEN 0x00000800 +#define IMASK_MMRDEN 0x00000400 +#define IMASK_MMWREN 0x00000200 +#define IMASK_GRSCEN 0x00000100 +#define IMASK_TDPEEN 0x00000002 +#define IMASK_RDPEEN 0x00000001 + +#define EVENTS_MASK ((uint32_t)(IMASK_BREN | \ + IMASK_RXCEN | \ + IMASK_MSROEN | \ + IMASK_GTSCEN | \ + IMASK_BTEN | \ + IMASK_TXCEN | \ + IMASK_TXEEN | \ + IMASK_ABRTEN | \ + IMASK_LCEN | \ + IMASK_CRLEN | \ + IMASK_XFUNEN | \ + IMASK_IFERREN | \ + IMASK_MAGEN | \ + IMASK_MMRDEN | \ + IMASK_MMWREN | \ + IMASK_GRSCEN | \ + IMASK_TDPEEN | \ + IMASK_RDPEEN)) + +#define GET_EXCEPTION_FLAG(bitMask, exception) switch(exception){ \ + case e_FM_MAC_EX_1G_BAB_RX: \ + bitMask = IMASK_BREN; break; \ + case e_FM_MAC_EX_1G_RX_CTL: \ + bitMask = IMASK_RXCEN; break; \ + case e_FM_MAC_EX_1G_GRATEFUL_TX_STP_COMPLET: \ + bitMask = IMASK_GTSCEN ; break; \ + case e_FM_MAC_EX_1G_BAB_TX: \ + bitMask = IMASK_BTEN ; break; \ + case e_FM_MAC_EX_1G_TX_CTL: \ + bitMask = IMASK_TXCEN ; break; \ + case e_FM_MAC_EX_1G_TX_ERR: \ + bitMask = IMASK_TXEEN ; break; \ + case e_FM_MAC_EX_1G_LATE_COL: \ + bitMask = IMASK_LCEN ; break; \ + case e_FM_MAC_EX_1G_COL_RET_LMT: \ + bitMask = IMASK_CRLEN ; break; \ + case e_FM_MAC_EX_1G_TX_FIFO_UNDRN: \ + bitMask = IMASK_XFUNEN ; break; \ + case e_FM_MAC_EX_1G_MAG_PCKT: \ + bitMask = IMASK_MAGEN ; break; \ + case e_FM_MAC_EX_1G_MII_MNG_RD_COMPLET: \ + bitMask = IMASK_MMRDEN; break; \ + case e_FM_MAC_EX_1G_MII_MNG_WR_COMPLET: \ + bitMask = IMASK_MMWREN ; break; \ + case e_FM_MAC_EX_1G_GRATEFUL_RX_STP_COMPLET: \ + bitMask = IMASK_GRSCEN; break; \ + case e_FM_MAC_EX_1G_TX_DATA_ERR: \ + bitMask = IMASK_TDPEEN; break; \ + case e_FM_MAC_EX_1G_RX_MIB_CNT_OVFL: \ + bitMask = IMASK_MSROEN ; break; \ + default: bitMask = 0;break;} + + +#define MAX_PACKET_ALIGNMENT 31 +#define MAX_INTER_PACKET_GAP 0x7f +#define MAX_INTER_PALTERNATE_BEB 0x0f +#define MAX_RETRANSMISSION 0x0f +#define MAX_COLLISION_WINDOW 0x03ff + + +/********************* From mac ext ******************************************/ +typedef uint32_t t_ErrorDisable; + +#define ERROR_DISABLE_TRANSMIT 0x00400000 +#define ERROR_DISABLE_LATE_COLLISION 0x00040000 +#define ERROR_DISABLE_COLLISION_RETRY_LIMIT 0x00020000 +#define ERROR_DISABLE_TxFIFO_UNDERRUN 0x00010000 +#define ERROR_DISABLE_TxABORT 0x00008000 +#define ERROR_DISABLE_INTERFACE 0x00004000 +#define ERROR_DISABLE_TxDATA_PARITY 0x00000002 +#define ERROR_DISABLE_RxDATA_PARITY 0x00000001 + +/*****************************************************************************/ +#define DTSEC_NUM_OF_PADDRS 15 /* number of pattern match registers (entries) */ + +#define GROUP_ADDRESS 0x0000010000000000LL /* Group address bit indication */ + +#define HASH_TABLE_SIZE 256 /* Hash table size (= 32 bits * 8 regs) */ + +#define DTSEC_TO_MII_OFFSET 0x1120 /* number of pattern match registers (entries) */ + +#define DEFAULT_errorDisabled 0 +#define DEFAULT_promiscuousEnable FALSE +#define DEFAULT_pauseExtended 0x0 +#define DEFAULT_pauseTime 0xf000 +#define DEFAULT_halfDuplex FALSE +#define DEFAULT_halfDulexFlowControlEn FALSE +#define DEFAULT_txTimeStampEn FALSE +#define DEFAULT_rxTimeStampEn FALSE +#define DEFAULT_packetAlignment 0 +#define DEFAULT_controlFrameAccept FALSE +#define DEFAULT_groupHashExtend FALSE +#define DEFAULT_broadcReject FALSE +#define DEFAULT_rxShortFrame TRUE +#define DEFAULT_exactMatch FALSE +#define DEFAULT_debugMode FALSE +#define DEFAULT_loopback FALSE +#define DEFAULT_actOnRxPauseFrame TRUE +#define DEFAULT_actOnTxPauseFrame TRUE + +#define DEFAULT_PreAmLength 0x7 +#define DEFAULT_PreAmRxEn FALSE +#define DEFAULT_PreAmTxEn FALSE +#define DEFAULT_lengthCheckEnable FALSE +#define DEFAULT_padAndCrcEnable TRUE +#define DEFAULT_crcEnable FALSE + +#define DEFAULT_nonBackToBackIpg1 0x40 +#define DEFAULT_nonBackToBackIpg2 0x60 +#define DEFAULT_minIfgEnforcement 0x50 +#define DEFAULT_backToBackIpg 0x60 + +#define DEFAULT_altBackoffVal 0x0A +#define DEFAULT_altBackoffEnable FALSE +#define DEFAULT_backPressureNoBackoff FALSE +#define DEFAULT_noBackoff FALSE +#define DEFAULT_excessDefer TRUE +#define DEFAULT_maxRetransmission 0x0F +#define DEFAULT_collisionWindow 0x37 + +#define DEFAULT_maxFrameLength 0x600 + +#define DEFAULT_collisionWindow 0x37 + +#define DEFAULT_fifoTxThr 0x10 +#define DEFAULT_fifoTxWatermarkH 0x7e +#define DEFAULT_fifoRxWatermarkL 0x08 +#define DEFAULT_tbiPhyAddr 5 + +#define DEFAULT_exceptions ((uint32_t)(IMASK_BREN | \ + IMASK_RXCEN | \ + IMASK_BTEN | \ + IMASK_TXCEN | \ + IMASK_TXEEN | \ + IMASK_ABRTEN | \ + IMASK_LCEN | \ + IMASK_CRLEN | \ + IMASK_XFUNEN | \ + IMASK_IFERREN | \ + IMASK_MAGEN | \ + IMASK_TDPEEN | \ + IMASK_RDPEEN)) + + +#define MAX_PHYS 32 /* maximum number of phys */ + +#define DTSEC_ID1_ID 0xffff0000 +#define DTSEC_ID1_REV_MJ 0x0000FF00 +#define DTSEC_ID1_REV_MN 0x000000ff + +#define ID2_INT_REDUCED_OFF 0x00010000 +#define ID2_INT_NORMAL_OFF 0x00020000 + +#define ECNTRL_CLRCNT 0x00004000 +#define ECNTRL_AUTOZ 0x00002000 +#define ECNTRL_STEN 0x00001000 +#define ECNTRL_CFG_RO 0x80000000 +#define ECNTRL_GMIIM 0x00000040 +#define ECNTRL_TBIM 0x00000020 +#define ECNTRL_SGMIIM 0x00000002 +#define ECNTRL_RPM 0x00000010 +#define ECNTRL_R100M 0x00000008 +#define ECNTRL_RMM 0x00000004 +#define ECNTRL_QSGMIIM 0x00000001 + +#define TCTRL_THDF 0x00000800 +#define TCTRL_TTSE 0x00000040 +#define TCTRL_GTS 0x00000020 +#define TCTRL_TFC_PAUSE 0x00000010 + +/* PTV offsets */ +#define PTV_PTE_OFST 16 + +#define RCTRL_CFA 0x00008000 +#define RCTRL_GHTX 0x00000400 +#define RCTRL_RTSE 0x00000040 +#define RCTRL_GRS 0x00000020 +#define RCTRL_BC_REJ 0x00000010 +#define RCTRL_MPROM 0x00000008 +#define RCTRL_RSF 0x00000004 +#define RCTRL_EMEN 0x00000002 +#define RCTRL_UPROM 0x00000001 +#define RCTRL_PROM (RCTRL_UPROM | RCTRL_MPROM) + +#define TMR_CTL_ESFDP 0x00000800 +#define TMR_CTL_ESFDE 0x00000400 + +#define TSEC_ID1_DEBUG 0x00e00c00 +#define DEBUG_ENABLE 0x80000000 +#define DPERROR_Tx_ERROR_ON_SEC 0x00400000 +#define DPERROR_Tx_ERROR_ON_WRITE 0x10000000 +#define DPERROR_Rx_ERROR_ON_SEC 0x00000040 +#define DPERROR_Rx_ERROR_ON_WRITE 0x00001000 +#define DPERROR_STT 0x80000000 +#define DPERROR_STR 0x00008000 + +#define MACCFG1_SOFT_RESET 0x80000000 +#define MACCFG1_LOOPBACK 0x00000100 +#define MACCFG1_RX_FLOW 0x00000020 +#define MACCFG1_TX_FLOW 0x00000010 +#define MACCFG1_TX_EN 0x00000001 +#define MACCFG1_RX_EN 0x00000004 +#define MACCFG1_RESET_RxMC 0x00080000 +#define MACCFG1_RESET_TxMC 0x00040000 +#define MACCFG1_RESET_RxFUN 0x00020000 +#define MACCFG1_RESET_TxFUN 0x00010000 + +#define MACCFG2_NIBBLE_MODE 0x00000100 +#define MACCFG2_BYTE_MODE 0x00000200 +#define MACCFG2_PRE_AM_Rx_EN 0x00000080 +#define MACCFG2_PRE_AM_Tx_EN 0x00000040 +#define MACCFG2_LENGTH_CHECK 0x00000010 +#define MACCFG2_MAGIC_PACKET_EN 0x00000008 +#define MACCFG2_PAD_CRC_EN 0x00000004 +#define MACCFG2_CRC_EN 0x00000002 +#define MACCFG2_FULL_DUPLEX 0x00000001 + +#define PREAMBLE_LENGTH_SHIFT 12 + +#define IPGIFG_NON_BACK_TO_BACK_IPG_1_SHIFT 24 +#define IPGIFG_NON_BACK_TO_BACK_IPG_2_SHIFT 16 +#define IPGIFG_MIN_IFG_ENFORCEMENT_SHIFT 8 + +#define IPGIFG_NON_BACK_TO_BACK_IPG_1 0x7F000000 +#define IPGIFG_NON_BACK_TO_BACK_IPG_2 0x007F0000 +#define IPGIFG_MIN_IFG_ENFORCEMENT 0x0000FF00 +#define IPGIFG_BACK_TO_BACK_IPG 0x0000007F + +#define HAFDUP_ALT_BEB 0x00080000 +#define HAFDUP_BP_NO_BACKOFF 0x00040000 +#define HAFDUP_NO_BACKOFF 0x00020000 +#define HAFDUP_EXCESS_DEFER 0x00010000 +#define HAFDUP_COLLISION_WINDOW 0x000003ff + +#define HAFDUP_ALTERNATE_BEB_TRUNCATION_SHIFT 20 +#define HAFDUP_RETRANSMISSION_MAX_SHIFT 12 +#define HAFDUP_RETRANSMISSION_MAX 0x0000f000 + +#define NUM_OF_HASH_REGS 8 /* Number of hash table registers */ + +#define DEBUG_GET_FIFO_READ_INDEX 0x007f0000 +#define DEBUG_GET_FIFO_WRITE_INDEX 0x0000007f +/* Pause Time Value Register */ +#define PTV_PTE_SHIFT 16 + +#define MASK22BIT 0x003FFFFF +#define MASK16BIT 0x0000FFFF +#define MASK12BIT 0x00000FFF +#define MASK8BIT 0x000000FF + +#define VAL32BIT 0x100000000LL +#define VAL22BIT 0x00400000 +#define VAL16BIT 0x00010000 +#define VAL12BIT 0x00001000 + +/* PHY Control Register */ +#define PHY_CR_LOOPBACK 0x4000 +#define PHY_CR_SPEED0 0x2000 +#define PHY_CR_ANE 0x1000 +#define PHY_CR_FULLDUPLEX 0x0100 +#define PHY_CR_SPEED1 0x0040 + +#define PHY_TBICON_SRESET 0x8000 +#define PHY_TBICON_SPEED2 0x0020 + +/* CAR1/2 bits */ +#define CAR1_TR64 0x80000000 +#define CAR1_TR127 0x40000000 +#define CAR1_TR255 0x20000000 +#define CAR1_TR511 0x10000000 +#define CAR1_TRK1 0x08000000 +#define CAR1_TRMAX 0x04000000 +#define CAR1_TRMGV 0x02000000 + +#define CAR1_RBYT 0x00010000 +#define CAR1_RPKT 0x00008000 +#define CAR1_RMCA 0x00002000 +#define CAR1_RBCA 0x00001000 +#define CAR1_RXPF 0x00000400 +#define CAR1_RALN 0x00000100 +#define CAR1_RFLR 0x00000080 +#define CAR1_RCDE 0x00000040 +#define CAR1_RCSE 0x00000020 +#define CAR1_RUND 0x00000010 +#define CAR1_ROVR 0x00000008 +#define CAR1_RFRG 0x00000004 +#define CAR1_RJBR 0x00000002 +#define CAR1_RDRP 0x00000001 + +#define CAR2_TFCS 0x00040000 +#define CAR2_TBYT 0x00002000 +#define CAR2_TPKT 0x00001000 +#define CAR2_TMCA 0x00000800 +#define CAR2_TBCA 0x00000400 +#define CAR2_TXPF 0x00000200 +#define CAR2_TDRP 0x00000001 + +#define CAM1_ERRORS_ONLY (CAR1_RXPF | \ + CAR1_RALN | \ + CAR1_RFLR | \ + CAR1_RCDE | \ + CAR1_RCSE | \ + CAR1_RUND | \ + CAR1_ROVR | \ + CAR1_RFRG | \ + CAR1_RJBR | \ + CAR1_RDRP) + +#define CAM2_ERRORS_ONLY (CAR2_TFCS | CAR2_TXPF | CAR2_TDRP) + +typedef struct t_InternalStatistics +{ + uint64_t tr64; + uint64_t tr127; + uint64_t tr255; + uint64_t tr511; + uint64_t tr1k; + uint64_t trmax; + uint64_t trmgv; + uint64_t rfrg; + uint64_t rjbr; + uint64_t rdrp; + uint64_t raln; + uint64_t rund; + uint64_t rovr; + uint64_t rxpf; + uint64_t txpf; + uint64_t rbyt; + uint64_t rpkt; + uint64_t rmca; + uint64_t rbca; + uint64_t rflr; + uint64_t rcde; + uint64_t rcse; + uint64_t tbyt; + uint64_t tpkt; + uint64_t tmca; + uint64_t tbca; + uint64_t tdrp; + uint64_t tfcs; +} t_InternalStatistics; + +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(push,1) +#endif /* defined(__MWERKS__) && ... */ +#define MEM_MAP_START + +typedef _Packed struct +{ + uint32_t exact_match1; /* octets 1-4 */ + uint32_t exact_match2; /* octets 5-6 */ +} _PackedType macRegs; + +typedef _Packed struct +{ + volatile uint32_t tsec_id1; /* 0x000 ETSEC_ID register */ + volatile uint32_t tsec_id2; /* 0x004 ETSEC_ID2 register */ + volatile uint32_t ievent; /* 0x008 Interrupt event register */ + volatile uint32_t imask; /* 0x00C Interrupt mask register */ + volatile uint32_t edis; /* 0x010 Error disabled register */ + volatile uint32_t ecntrl; /* 0x014 E control register */ + volatile uint32_t ptv; /* 0x018 Pause time value register */ + volatile uint32_t tbipa; /* 0x01C TBI PHY address register */ + volatile uint32_t tmr_ctrl; /* 0x020 Time-stamp Control register */ + volatile uint32_t tmr_pevent; /* 0x024 Time-stamp event register */ + volatile uint32_t tmr_pemask; /* 0x028 Timer event mask register */ + volatile uint32_t DTSEC_RESERVED2; /* 0x02C */ + volatile uint32_t iobistctl; /* 0x030 IO BIST Control register */ + volatile uint32_t DTSEC_RESERVED3[3]; /* 0x034 */ + + volatile uint32_t tctrl; /* 0x040 Transmit control register */ + volatile uint32_t DTSEC_RESERVED4[3]; /* 0x044-0x04C */ + volatile uint32_t rctrl; /* 0x050 Receive control register */ + volatile uint32_t DTSEC_RESERVED5[11]; /* 0x054- 0x07C */ + + volatile uint32_t igaddr[8]; /* 0x080-0x09C Individual/group address registers 0-7 */ + volatile uint32_t gaddr[8]; /* 0x0A0-0x0BC Group address registers 0-7 */ + volatile uint32_t ETSEC_RESERVED6[16]; /* 0x0C0-0x0FC */ + + volatile uint32_t maccfg1; /* 0x100 MAC configuration #1 */ + volatile uint32_t maccfg2; /* 0x104 MAC configuration #2 */ + volatile uint32_t ipgifg; /* 0x108 IPG/IFG */ + volatile uint32_t hafdup; /* 0x10C Half-duplex */ + volatile uint32_t maxfrm; /* 0x110 Maximum frame */ + volatile uint32_t DTSEC_RESERVED7[3]; /* 0x114-0x11C register */ + t_MiiAccessMemMap miiMemMap; + volatile uint32_t ifctrl; /* 0x138 MII Mgmt:interface control */ + volatile uint32_t ifstat; /* 0x13C Interface status */ + volatile uint32_t macstnaddr1; /* 0x140 Station Address,part 1 */ + volatile uint32_t macstnaddr2; /* 0x144 Station Address,part 2 */ + volatile macRegs macaddr[DTSEC_NUM_OF_PADDRS]; /* 0x148-0x1BC mac exact match addresses 1-15, parts 1-2 */ + volatile uint32_t DTSEC_RESERVED8[16]; /* 0x1C0-0x1FC register */ + + /* RMON MIB REGISTERS */ + /* TRANSMIT and RECEIVE COUNTERS */ + + volatile uint32_t tr64; /* 0x200 transmit and receive 64 byte frame counter */ + volatile uint32_t tr127; /* 0x204 transmit and receive 65 to 127 byte frame counter */ + volatile uint32_t tr255; /* 0x208 transmit and receive 128 to 255 byte frame counter */ + volatile uint32_t tr511; /* 0x20C transmit and receive 256 to 511 byte frame counter */ + volatile uint32_t tr1k; /* 0x210 transmit and receive 512 to 1023 byte frame counter */ + volatile uint32_t trmax; /* 0x214 transmit and receive 1024 to 1518 byte frame counter */ + volatile uint32_t trmgv; /* 0x218 transmit and receive 1519 to 1522 byte good VLAN frame count */ + + /* RECEIVE COUNTERS */ + volatile uint32_t rbyt; /* 0x21C receive byte counter */ + volatile uint32_t rpkt; /* 0x220 receive packet counter */ + volatile uint32_t rfcs; /* 0x224 receive FCS error counter */ + volatile uint32_t rmca; /* 0x228 RMCA receive multicast packet counter */ + volatile uint32_t rbca; /* 0x22C receive broadcast packet counter */ + volatile uint32_t rxcf; /* 0x230 receive control frame packet counter */ + volatile uint32_t rxpf; /* 0x234 receive PAUSE frame packet counter */ + volatile uint32_t rxuo; /* 0x238 receive unknown OP code counter */ + volatile uint32_t raln; /* 0x23C receive alignment error counter */ + volatile uint32_t rflr; /* 0x240 receive frame length error counter */ + volatile uint32_t rcde; /* 0x244 receive code error counter */ + volatile uint32_t rcse; /* 0x248 receive carrier sense error counter */ + volatile uint32_t rund; /* 0x24C receive undersize packet counter */ + volatile uint32_t rovr; /* 0x250 receive oversize packet counter */ + volatile uint32_t rfrg; /* 0x254 receive fragments counter */ + volatile uint32_t rjbr; /* 0x258 receive jabber counter */ + volatile uint32_t rdrp; /* 0x25C receive drop */ + + /* TRANSMIT COUNTERS */ + volatile uint32_t tbyt; /* 0x260 transmit byte counter */ + volatile uint32_t tpkt; /* 0x264 transmit packet counter */ + volatile uint32_t tmca; /* 0x268 transmit multicast packet counter */ + volatile uint32_t tbca; /* 0x26C transmit broadcast packet counter */ + volatile uint32_t txpf; /* 0x270 transmit PAUSE control frame counter */ + volatile uint32_t tdfr; /* 0x274 transmit deferral packet counter */ + volatile uint32_t tedf; /* 0x278 transmit excessive deferral packet counter */ + volatile uint32_t tscl; /* 0x27C transmit single collision packet counter */ + volatile uint32_t tmcl; /* 0x280 transmit multiple collision packet counter */ + volatile uint32_t tlcl; /* 0x284 transmit late collision packet counter */ + volatile uint32_t txcl; /* 0x288 transmit excessive collision packet counter */ + volatile uint32_t tncl; /* 0x28C transmit total collision counter */ + volatile uint32_t DTSEC_RESERVED9; /* 0x290 */ + volatile uint32_t tdrp; /* 0x294 transmit drop frame counter */ + volatile uint32_t tjbr; /* 0x298 transmit jabber frame counter */ + volatile uint32_t tfcs; /* 0x29C transmit FCS error counter */ + volatile uint32_t txcf; /* 0x2A0 transmit control frame counter */ + volatile uint32_t tovr; /* 0x2A4 transmit oversize frame counter */ + volatile uint32_t tund; /* 0x2A8 transmit undersize frame counter */ + volatile uint32_t tfrg; /* 0x2AC transmit fragments frame counter */ + + /* GENERAL REGISTERS */ + volatile uint32_t car1; /* 0x2B0 carry register one register* */ + volatile uint32_t car2; /* 0x2B4 carry register two register* */ + volatile uint32_t cam1; /* 0x2B8 carry register one mask register */ + volatile uint32_t cam2; /* 0x2BC carry register two mask register */ + volatile uint32_t DTSEC_RESERVED10[16]; /* 0x2C0-0x2FC */ + + /* Debug and Factory Test Registers */ + volatile uint32_t debug; /* 0x300 DEBUG - Debug Register */ + volatile uint32_t dperror; /* 0x304 DPERROR - Parity Error Register */ + volatile uint32_t hwassert; /* 0x308 HWASSERT */ + volatile uint32_t RESERVED11; /* 0x30C Reserved */ + volatile uint32_t rx_fifo_ptr; /* 0x310 RXFIFOPTR - Rx FIFO R/W Pointer Register */ + volatile uint32_t rx_fifo_dath; /* 0x314 RXFIFODATH - Rx FIFO Data Register */ + volatile uint32_t rx_fifo_datl; /* 0x318 RXFIFODATL - Rx FIFO Data Register */ + volatile uint32_t rx_fifo_stat; /* 0x31C RXFIFOSTAT - Rx FIFO Status Register */ + volatile uint32_t tx_fifo_ptr; /* 0x320 TXFIFOPTR - Tx FIFO R/W Pointer Register */ + volatile uint32_t tx_fifo_dath; /* 0x324 TXFIFODATH - Rx FIFO Data Register */ + volatile uint32_t tx_fifo_datl; /* 0x328 TXFIFODATL - Rx FIFO Data Register */ + volatile uint32_t tx_fifo_stat; /* 0x32C TXFIFOSTAT - Tx FIFO Status Register */ + volatile uint32_t pkt_rcv_cnt; /* 0x330 PKTRCVCNT - Number of packets accepted and written to Rx FIFO */ + volatile uint32_t RESERVED12[3]; /* 0x334-0x33C Reserved */ + volatile uint32_t tx_threshold; /* 0x340 Transmit threshold; Number of entries (4 bytes units) before starting to transmit to the MAC */ + volatile uint32_t tx_watermark_high;/* 0x344 Transmit watermark high; Number of entries (4 byte units) before de-asserting Ready to packet Interface */ + volatile uint32_t rx_watermark_low; /* 0x348 Receive watermark low; Number of entries (4 byte units) before unloading to packet Interface */ +} _PackedType t_DtsecMemMap; + +#define MEM_MAP_END +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(pop) +#endif /* defined(__MWERKS__) && ... */ + + +typedef struct { + uint32_t errorDisabled; + bool halfDuplex; + uint16_t pauseTime; + uint16_t pauseExtended; + uint8_t tbiPhyAddr; /**< TBI Physical address (1-31) [DEFAULT_tbiPhyAddr] */ + + bool autoZeroCounters; + bool promiscuousEnable; + + bool halfDulexFlowControlEn; + bool txTimeStampEn; + bool rxTimeStampEn; + + uint8_t packetAlignmentPadding; + bool controlFrameAccept; + bool groupHashExtend; + bool broadcReject; + bool rxShortFrame; + bool exactMatch; + + bool debugMode; + + bool loopback; + bool actOnRxPauseFrame; + bool actOnTxPauseFrame; + + uint8_t nonBackToBackIpg1; + uint8_t nonBackToBackIpg2; + uint8_t minIfgEnforcement; + uint8_t backToBackIpg; + + uint8_t preambleLength; + bool preambleRxEn; + bool preambleTxEn; + bool lengthCheckEnable; + bool magicPacketEnable; + bool padAndCrcEnable; + bool crcEnable; + + bool alternateBackoffEnable; + uint8_t alternateBackoffVal; + bool backPressureNoBackoff; + bool noBackoff; + bool excessDefer; + uint8_t maxRetransmission; + uint16_t collisionWindow; + + uint16_t maxFrameLength; + + uint8_t fifoTxThr; + uint8_t fifoTxWatermarkH; + uint8_t fifoRxWatermarkL; +} t_DtsecDriverParam; + +typedef struct { + t_FmMacControllerDriver fmMacControllerDriver; + t_Handle h_App; /**< Handle to the upper layer application */ + t_DtsecMemMap *p_MemMap; /**< pointer to dTSEC memory mapped registers. */ + t_MiiAccessMemMap *p_MiiMemMap; /**< pointer to dTSEC MII memory mapped registers. */ + uint64_t addr; /**< MAC address of device; */ + e_EnetMode enetMode; /**< Ethernet physical interface */ + t_FmMacExceptionCallback *f_Exception; + int mdioIrq; + t_FmMacExceptionCallback *f_Event; + bool indAddrRegUsed[DTSEC_NUM_OF_PADDRS]; /**< Whether a particular individual address recognition register is being used */ + uint64_t paddr[DTSEC_NUM_OF_PADDRS]; /**< MAC address for particular individual address recognition register */ + uint8_t numOfIndAddrInRegs; /**< Number of individual addresses in registers for this station. */ + bool debugMode; + bool halfDuplex; + t_InternalStatistics internalStatistics; + t_EthHash *p_MulticastAddrHash; /* pointer to driver's global address hash table */ + t_EthHash *p_UnicastAddrHash; /* pointer to driver's individual address hash table */ + uint8_t macId; + uint32_t exceptions; + bool ptpTsuEnabled; + bool enTsuErrExeption; + e_FmMacStatisticsLevel statisticsLevel; + + t_DtsecDriverParam *p_DtsecDriverParam; +} t_Dtsec; + + +t_Error DTSEC_MII_WritePhyReg(t_Handle h_Dtsec, uint8_t phyAddr, uint8_t reg, uint16_t data); +t_Error DTSEC_MII_ReadPhyReg(t_Handle h_Dtsec, uint8_t phyAddr, uint8_t reg, uint16_t *p_Data); + + +#endif /* __DTSEC_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/dtsec_mii_acc.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/dtsec_mii_acc.c @@ -0,0 +1,120 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File dtsec_mii_acc.c + + @Description FM dtsec MII register access MAC ... +*//***************************************************************************/ + +#include "error_ext.h" +#include "std_ext.h" +#include "fm_mac.h" +#include "dtsec.h" + + +/*****************************************************************************/ +t_Error DTSEC_MII_WritePhyReg(t_Handle h_Dtsec, + uint8_t phyAddr, + uint8_t reg, + uint16_t data) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + t_MiiAccessMemMap *p_MiiAccess; + uint32_t tmpReg; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MiiMemMap, E_INVALID_HANDLE); + + p_MiiAccess = p_Dtsec->p_MiiMemMap; + + /* Stop the MII management read cycle */ + WRITE_UINT32(p_MiiAccess->miimcom, 0); + /* Dummy read to make sure MIIMCOM is written */ + tmpReg = GET_UINT32(p_MiiAccess->miimcom); + + /* Setting up MII Management Address Register */ + tmpReg = (uint32_t)((phyAddr << MIIMADD_PHY_ADDR_SHIFT) | reg); + WRITE_UINT32(p_MiiAccess->miimadd, tmpReg); + + /* Setting up MII Management Control Register with data */ + WRITE_UINT32(p_MiiAccess->miimcon, (uint32_t)data); + /* Dummy read to make sure MIIMCON is written */ + tmpReg = GET_UINT32(p_MiiAccess->miimcon); + + /* Wait till MII management write is complete */ + while ((GET_UINT32(p_MiiAccess->miimind)) & MIIMIND_BUSY) ; + + return E_OK; +} + +/*****************************************************************************/ +t_Error DTSEC_MII_ReadPhyReg(t_Handle h_Dtsec, + uint8_t phyAddr, + uint8_t reg, + uint16_t *p_Data) +{ + t_Dtsec *p_Dtsec = (t_Dtsec *)h_Dtsec; + t_MiiAccessMemMap *p_MiiAccess; + uint32_t tmpReg; + + SANITY_CHECK_RETURN_ERROR(p_Dtsec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Dtsec->p_MiiMemMap, E_INVALID_HANDLE); + + p_MiiAccess = p_Dtsec->p_MiiMemMap; + + /* Setting up the MII Management Address Register */ + tmpReg = (uint32_t)((phyAddr << MIIMADD_PHY_ADDR_SHIFT) | reg); + WRITE_UINT32(p_MiiAccess->miimadd, tmpReg); + + /* Perform an MII management read cycle */ + WRITE_UINT32(p_MiiAccess->miimcom, MIIMCOM_READ_CYCLE); + /* Dummy read to make sure MIIMCOM is written */ + tmpReg = GET_UINT32(p_MiiAccess->miimcom); + + /* Wait till MII management read is complete */ + while ((GET_UINT32(p_MiiAccess->miimind)) & MIIMIND_BUSY) ; + + /* Read MII management status */ + *p_Data = (uint16_t)GET_UINT32(p_MiiAccess->miimstat); + + WRITE_UINT32(p_MiiAccess->miimcom, 0); + /* Dummy read to make sure MIIMCOM is written */ + tmpReg = GET_UINT32(p_MiiAccess->miimcom); + + if (*p_Data == 0xffff) + RETURN_ERROR(MINOR, E_NO_DEVICE, + ("Read wrong data (0xffff): phyAddr 0x%x, reg 0x%x", + phyAddr, reg)); + + return E_OK; +} --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/dtsec_mii_acc.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/dtsec_mii_acc.h @@ -0,0 +1,78 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __DTSEC_MII_ACC_H +#define __DTSEC_MII_ACC_H + +#include "std_ext.h" + + +/* MII Management Configuration Register */ +#define MIIMCFG_RESET_MGMT 0x80000000 +#define MIIMCFG_MGMT_CLOCK_SELECT 0x00000007 + +/* MII Management Command Register */ +#define MIIMCOM_READ_CYCLE 0x00000001 +#define MIIMCOM_SCAN_CYCLE 0x00000002 + +/* MII Management Address Register */ +#define MIIMADD_PHY_ADDR_SHIFT 8 + +/* MII Management Indicator Register */ +#define MIIMIND_BUSY 0x00000001 + + +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(push,1) +#endif /* defined(__MWERKS__) && ... */ +#define MEM_MAP_START + +/*----------------------------------------------------*/ +/* MII Configuration Control Memory Map Registers */ +/*----------------------------------------------------*/ +typedef _Packed struct t_MiiAccessMemMap +{ + volatile uint32_t miimcfg; /* MII Mgmt:configuration */ + volatile uint32_t miimcom; /* MII Mgmt:command */ + volatile uint32_t miimadd; /* MII Mgmt:address */ + volatile uint32_t miimcon; /* MII Mgmt:control 3 */ + volatile uint32_t miimstat; /* MII Mgmt:status */ + volatile uint32_t miimind; /* MII Mgmt:indicators */ +} _PackedType t_MiiAccessMemMap ; + +#define MEM_MAP_END +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(pop) +#endif /* defined(__MWERKS__) && ... */ + + +#endif /* __DTSEC_MII_ACC_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/fm_mac.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/fm_mac.c @@ -0,0 +1,560 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fm_mac.c + + @Description FM MAC ... +*//***************************************************************************/ +#include "std_ext.h" +#include "string_ext.h" +#include "sprint_ext.h" +#include "error_ext.h" +#include "fm_ext.h" + +#include "fm_common.h" +#include "fm_mac.h" + + +/* ........................................................................... */ + +t_Handle FM_MAC_Config (t_FmMacParams *p_FmMacParam) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver; + + SANITY_CHECK_RETURN_VALUE(p_FmMacParam, E_INVALID_HANDLE, NULL); + + if(ENET_SPEED_FROM_MODE(p_FmMacParam->enetMode) < e_ENET_SPEED_10000) + p_FmMacControllerDriver = (t_FmMacControllerDriver *)DTSEC_Config(p_FmMacParam); + else + p_FmMacControllerDriver = (t_FmMacControllerDriver *)TGEC_Config(p_FmMacParam); + + if (!p_FmMacControllerDriver) + return NULL; + + p_FmMacControllerDriver->h_Fm = p_FmMacParam->h_Fm; + p_FmMacControllerDriver->enetMode = p_FmMacParam->enetMode; + p_FmMacControllerDriver->macId = p_FmMacParam->macId; + p_FmMacControllerDriver->resetOnInit = DEFAULT_resetOnInit; + + return (t_Handle)p_FmMacControllerDriver; +} + +/* ........................................................................... */ + +t_Error FM_MAC_Init (t_Handle h_FmMac) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->resetOnInit && + (FmResetMac(p_FmMacControllerDriver->h_Fm, + ((ENET_INTERFACE_FROM_MODE(p_FmMacControllerDriver->enetMode) == e_ENET_IF_XGMII) ? e_FM_MAC_10G : e_FM_MAC_1G), + p_FmMacControllerDriver->macId) != E_OK)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Can't reset MAC!")); + + if ((p_FmMacControllerDriver->clkFreq = FmGetClockFreq(p_FmMacControllerDriver->h_Fm)) == 0) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Can't get clock for MAC!")); + + if (p_FmMacControllerDriver->f_FM_MAC_Init) + return p_FmMacControllerDriver->f_FM_MAC_Init(h_FmMac); + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_Free (t_Handle h_FmMac) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_Free) + return p_FmMacControllerDriver->f_FM_MAC_Free(h_FmMac); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_ConfigResetOnInit (t_Handle h_FmMac, bool enable) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + p_FmMacControllerDriver->resetOnInit = enable; + + return E_OK; +} + +/* ........................................................................... */ + +t_Error FM_MAC_ConfigLoopback (t_Handle h_FmMac, bool newVal) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_ConfigLoopback) + return p_FmMacControllerDriver->f_FM_MAC_ConfigLoopback(h_FmMac, newVal); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_ConfigMaxFrameLength (t_Handle h_FmMac, uint16_t newVal) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_ConfigMaxFrameLength) + return p_FmMacControllerDriver->f_FM_MAC_ConfigMaxFrameLength(h_FmMac, newVal); + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_ConfigWan (t_Handle h_FmMac, bool flag) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_ConfigWan) + return p_FmMacControllerDriver->f_FM_MAC_ConfigWan(h_FmMac, flag); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_ConfigPadAndCrc (t_Handle h_FmMac, bool newVal) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_ConfigPadAndCrc) + return p_FmMacControllerDriver->f_FM_MAC_ConfigPadAndCrc(h_FmMac, newVal); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_ConfigHalfDuplex (t_Handle h_FmMac, bool newVal) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_ConfigHalfDuplex) + return p_FmMacControllerDriver->f_FM_MAC_ConfigHalfDuplex(h_FmMac,newVal); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_ConfigLengthCheck (t_Handle h_FmMac, bool newVal) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_ConfigLengthCheck) + return p_FmMacControllerDriver->f_FM_MAC_ConfigLengthCheck(h_FmMac,newVal); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_ConfigException (t_Handle h_FmMac, e_FmMacExceptions ex, bool enable) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_ConfigException) + return p_FmMacControllerDriver->f_FM_MAC_ConfigException(h_FmMac, ex, enable); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +#ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 +/* ........................................................................... */ + +t_Error FM_MAC_ConfigSkipFman11Workaround (t_Handle h_FmMac) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_ConfigSkipFman11Workaround) + return p_FmMacControllerDriver->f_FM_MAC_ConfigSkipFman11Workaround(h_FmMac); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} +#endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */ + + +/*****************************************************************************/ +/* Run Time Control */ +/*****************************************************************************/ + +/* ........................................................................... */ + +t_Error FM_MAC_Enable (t_Handle h_FmMac, e_CommMode mode) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_Enable) + return p_FmMacControllerDriver->f_FM_MAC_Enable(h_FmMac, mode); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_Disable (t_Handle h_FmMac, e_CommMode mode) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_Disable) + return p_FmMacControllerDriver->f_FM_MAC_Disable(h_FmMac, mode); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_Enable1588TimeStamp (t_Handle h_FmMac) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_Enable1588TimeStamp) + return p_FmMacControllerDriver->f_FM_MAC_Enable1588TimeStamp(h_FmMac); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_Disable1588TimeStamp (t_Handle h_FmMac) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_Disable1588TimeStamp) + return p_FmMacControllerDriver->f_FM_MAC_Disable1588TimeStamp(h_FmMac); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_SetTxAutoPauseFrames (t_Handle h_FmMac, uint16_t pauseTime) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_SetTxAutoPauseFrames) + return p_FmMacControllerDriver->f_FM_MAC_SetTxAutoPauseFrames(h_FmMac, pauseTime); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_SetRxIgnorePauseFrames (t_Handle h_FmMac, bool en) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_SetRxIgnorePauseFrames) + return p_FmMacControllerDriver->f_FM_MAC_SetRxIgnorePauseFrames(h_FmMac, en); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_ResetCounters (t_Handle h_FmMac) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_ResetCounters) + return p_FmMacControllerDriver->f_FM_MAC_ResetCounters(h_FmMac); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_SetException(t_Handle h_FmMac, e_FmMacExceptions ex, bool enable) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_SetException) + return p_FmMacControllerDriver->f_FM_MAC_SetException(h_FmMac, ex, enable); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_SetStatistics (t_Handle h_FmMac, e_FmMacStatisticsLevel statisticsLevel) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_SetStatistics) + return p_FmMacControllerDriver->f_FM_MAC_SetStatistics(h_FmMac, statisticsLevel); + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_GetStatistics (t_Handle h_FmMac, t_FmMacStatistics *p_Statistics) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_GetStatistics) + return p_FmMacControllerDriver->f_FM_MAC_GetStatistics(h_FmMac, p_Statistics); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_ModifyMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_ModifyMacAddr) + return p_FmMacControllerDriver->f_FM_MAC_ModifyMacAddr(h_FmMac, p_EnetAddr); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_AddHashMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_AddHashMacAddr) + return p_FmMacControllerDriver->f_FM_MAC_AddHashMacAddr(h_FmMac, p_EnetAddr); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_RemoveHashMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_RemoveHashMacAddr) + return p_FmMacControllerDriver->f_FM_MAC_RemoveHashMacAddr(h_FmMac, p_EnetAddr); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_AddExactMatchMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_AddExactMatchMacAddr) + return p_FmMacControllerDriver->f_FM_MAC_AddExactMatchMacAddr(h_FmMac, p_EnetAddr); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_RemovelExactMatchMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_RemovelExactMatchMacAddr) + return p_FmMacControllerDriver->f_FM_MAC_RemovelExactMatchMacAddr(h_FmMac, p_EnetAddr); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_GetVesrion (t_Handle h_FmMac, uint32_t *macVresion) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_GetVersion) + return p_FmMacControllerDriver->f_FM_MAC_GetVersion(h_FmMac, macVresion); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); + +} + +/* ........................................................................... */ + +t_Error FM_MAC_GetId (t_Handle h_FmMac, uint32_t *macId) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_GetId) + return p_FmMacControllerDriver->f_FM_MAC_GetId(h_FmMac, macId); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_SetPromiscuous (t_Handle h_FmMac, bool newVal) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_SetPromiscuous) + return p_FmMacControllerDriver->f_FM_MAC_SetPromiscuous(h_FmMac, newVal); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_AdjustLink(t_Handle h_FmMac, e_EnetSpeed speed, bool fullDuplex) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_AdjustLink) + return p_FmMacControllerDriver->f_FM_MAC_AdjustLink(h_FmMac, speed, fullDuplex); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_MII_WritePhyReg (t_Handle h_FmMac, uint8_t phyAddr, uint8_t reg, uint16_t data) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_MII_WritePhyReg) + return p_FmMacControllerDriver->f_FM_MAC_MII_WritePhyReg(h_FmMac, phyAddr, reg, data); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +t_Error FM_MAC_MII_ReadPhyReg(t_Handle h_FmMac, uint8_t phyAddr, uint8_t reg, uint16_t *p_Data) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_MII_ReadPhyReg) + return p_FmMacControllerDriver->f_FM_MAC_MII_ReadPhyReg(h_FmMac, phyAddr, reg, p_Data); + + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} + +/* ........................................................................... */ + +uint16_t FM_MAC_GetMaxFrameLength(t_Handle h_FmMac) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_VALUE(p_FmMacControllerDriver, E_INVALID_HANDLE, 0); + + if (p_FmMacControllerDriver->f_FM_MAC_GetMaxFrameLength) + return p_FmMacControllerDriver->f_FM_MAC_GetMaxFrameLength(h_FmMac); + + REPORT_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); + return 0; +} + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +/*****************************************************************************/ +t_Error FM_MAC_DumpRegs(t_Handle h_FmMac) +{ + t_FmMacControllerDriver *p_FmMacControllerDriver = (t_FmMacControllerDriver *)h_FmMac; + + SANITY_CHECK_RETURN_ERROR(p_FmMacControllerDriver, E_INVALID_HANDLE); + + if (p_FmMacControllerDriver->f_FM_MAC_DumpRegs) + return p_FmMacControllerDriver->f_FM_MAC_DumpRegs(h_FmMac); + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, NO_MSG); +} +#endif /* (defined(DEBUG_ERRORS) && ... */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/fm_mac.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/fm_mac.h @@ -0,0 +1,197 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fm_mac.h + + @Description FM MAC ... +*//***************************************************************************/ +#ifndef __FM_MAC_H +#define __FM_MAC_H + +#include "std_ext.h" +#include "error_ext.h" +#include "list_ext.h" +#include "fm_mac_ext.h" + + +#define __ERR_MODULE__ MODULE_FM_MAC + + +#define DEFAULT_resetOnInit FALSE + + +typedef struct { + uint64_t addr; /* Ethernet Address */ + t_List node; +} t_EthHashEntry; +#define ETH_HASH_ENTRY_OBJ(ptr) LIST_OBJECT(ptr, t_EthHashEntry, node) + +typedef struct { + uint16_t size; + t_List *p_Lsts; +} t_EthHash; + +typedef struct { + t_Error (*f_FM_MAC_Init) (t_Handle h_FmMac); + t_Error (*f_FM_MAC_Free) (t_Handle h_FmMac); + + t_Error (*f_FM_MAC_SetStatistics) (t_Handle h_FmMac, e_FmMacStatisticsLevel statisticsLevel); + t_Error (*f_FM_MAC_ConfigLoopback) (t_Handle h_FmMac, bool newVal); + t_Error (*f_FM_MAC_ConfigMaxFrameLength) (t_Handle h_FmMac, uint16_t newVal); + t_Error (*f_FM_MAC_ConfigWan) (t_Handle h_FmMac, bool flag); + t_Error (*f_FM_MAC_ConfigPadAndCrc) (t_Handle h_FmMac, bool newVal); + t_Error (*f_FM_MAC_ConfigHalfDuplex) (t_Handle h_FmMac, bool newVal); + t_Error (*f_FM_MAC_ConfigLengthCheck) (t_Handle h_FmMac, bool newVal); + t_Error (*f_FM_MAC_ConfigException) (t_Handle h_FmMac, e_FmMacExceptions, bool enable); +#ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 + t_Error (*f_FM_MAC_ConfigSkipFman11Workaround) (t_Handle h_FmMac); +#endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */ + + t_Error (*f_FM_MAC_SetException) (t_Handle h_FmMac, e_FmMacExceptions ex, bool enable); + + t_Error (*f_FM_MAC_Enable) (t_Handle h_FmMac, e_CommMode mode); + t_Error (*f_FM_MAC_Disable) (t_Handle h_FmMac, e_CommMode mode); + t_Error (*f_FM_MAC_Enable1588TimeStamp) (t_Handle h_FmMac); + t_Error (*f_FM_MAC_Disable1588TimeStamp) (t_Handle h_FmMac); + t_Error (*f_FM_MAC_Reset) (t_Handle h_FmMac, bool wait); + + t_Error (*f_FM_MAC_SetTxAutoPauseFrames) (t_Handle h_FmMac, uint16_t pauseTime); + t_Error (*f_FM_MAC_SetRxIgnorePauseFrames) (t_Handle h_FmMac, bool en); + + t_Error (*f_FM_MAC_ResetCounters) (t_Handle h_FmMac); + t_Error (*f_FM_MAC_GetStatistics) (t_Handle h_FmMac, t_FmMacStatistics *p_Statistics); + + t_Error (*f_FM_MAC_ModifyMacAddr) (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr); + t_Error (*f_FM_MAC_AddHashMacAddr) (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr); + t_Error (*f_FM_MAC_RemoveHashMacAddr) (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr); + t_Error (*f_FM_MAC_AddExactMatchMacAddr) (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr); + t_Error (*f_FM_MAC_RemovelExactMatchMacAddr) (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr); + + t_Error (*f_FM_MAC_SetPromiscuous) (t_Handle h_FmMac, bool newVal); + t_Error (*f_FM_MAC_AdjustLink) (t_Handle h_FmMac, e_EnetSpeed speed, bool fullDuplex); + + t_Error (*f_FM_MAC_GetId) (t_Handle h_FmMac, uint32_t *macId); + + t_Error (*f_FM_MAC_GetVersion) (t_Handle h_FmMac, uint32_t *macVersion); + + uint16_t (*f_FM_MAC_GetMaxFrameLength) (t_Handle h_FmMac); + + t_Error (*f_FM_MAC_MII_WritePhyReg)(t_Handle h_FmMac, uint8_t phyAddr, uint8_t reg, uint16_t data); + t_Error (*f_FM_MAC_MII_ReadPhyReg)(t_Handle h_FmMac, uint8_t phyAddr, uint8_t reg, uint16_t *p_Data); + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) + t_Error (*f_FM_MAC_DumpRegs) (t_Handle h_FmMac); +#endif /* (defined(DEBUG_ERRORS) && ... */ + + t_Handle h_Fm; + e_EnetMode enetMode; + uint8_t macId; + bool resetOnInit; + uint16_t clkFreq; +} t_FmMacControllerDriver; + + +t_Handle DTSEC_Config(t_FmMacParams *p_FmMacParam); +t_Handle TGEC_Config(t_FmMacParams *p_FmMacParams); +uint16_t FM_MAC_GetMaxFrameLength(t_Handle FmMac); + + +/* ........................................................................... */ + +static __inline__ t_EthHashEntry *DequeueAddrFromHashEntry(t_List *p_AddrLst) +{ + t_EthHashEntry *p_HashEntry = NULL; + if (!LIST_IsEmpty(p_AddrLst)) + { + p_HashEntry = ETH_HASH_ENTRY_OBJ(p_AddrLst->p_Next); + LIST_DelAndInit(&p_HashEntry->node); + } + return p_HashEntry; +} + +/* ........................................................................... */ + +static __inline__ void FreeHashTable(t_EthHash *p_Hash) +{ + t_EthHashEntry *p_HashEntry; + int i = 0; + + if (!p_Hash || !p_Hash->p_Lsts) + return; + + for(i=0; isize; i++) + { + p_HashEntry = DequeueAddrFromHashEntry(&p_Hash->p_Lsts[i]); + while (p_HashEntry) + { + XX_Free(p_HashEntry); + p_HashEntry = DequeueAddrFromHashEntry(&p_Hash->p_Lsts[i]); + } + } + + XX_Free(p_Hash->p_Lsts); + XX_Free(p_Hash); +} + +/* ........................................................................... */ + +static __inline__ t_EthHash * AllocHashTable(uint16_t size) +{ + uint32_t i; + t_EthHash *p_Hash; + + /* Allocate address hash table */ + p_Hash = (t_EthHash *)XX_Malloc(size*sizeof(t_EthHash *)); + if (!p_Hash) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("Address hash table")); + return NULL; + } + p_Hash->size = size; + + p_Hash->p_Lsts = (t_List *)XX_Malloc(p_Hash->size*sizeof(t_List)); + if (!p_Hash->p_Lsts) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("Address hash table")); + XX_Free(p_Hash); + return NULL; + } + + for(i=0 ; isize; i++) + INIT_LIST(&p_Hash->p_Lsts[i]); + + return p_Hash; +} + + +#endif /* __FM_MAC_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/tgec.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/tgec.c @@ -0,0 +1,1268 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File tgec.c + + @Description FM 10G MAC ... +*//***************************************************************************/ + +#include "std_ext.h" +#include "string_ext.h" +#include "error_ext.h" +#include "xx_ext.h" +#include "endian_ext.h" +#include "crc_mac_addr_ext.h" +#include "debug_ext.h" + +#include "fm_common.h" +#include "tgec.h" + + +/*****************************************************************************/ +/* Internal routines */ +/*****************************************************************************/ + +static t_Error CheckInitParameters(t_Tgec *p_Tgec) +{ + if(ENET_SPEED_FROM_MODE(p_Tgec->enetMode) < e_ENET_SPEED_10000) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Ethernet 10G MAC driver only support 10G speed")); +#if (FM_MAX_NUM_OF_10G_MACS > 0) + if(p_Tgec->macId >= FM_MAX_NUM_OF_10G_MACS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("macId of 10G can not be greater than 0")); +#endif + if(p_Tgec->addr == 0) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Ethernet 10G MAC Must have a valid MAC Address")); + if(!p_Tgec->f_Exception) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("uninitialized f_Exception")); + if(!p_Tgec->f_Event) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("uninitialized f_Event")); + return E_OK; +} + +/* .............................................................................. */ + +static void SetDefaultParam(t_TgecDriverParam *p_TgecDriverParam) +{ + p_TgecDriverParam->wanModeEnable = DEFAULT_wanModeEnable; + p_TgecDriverParam->promiscuousModeEnable = DEFAULT_promiscuousModeEnable; + p_TgecDriverParam->pauseForwardEnable = DEFAULT_pauseForwardEnable; + p_TgecDriverParam->pauseIgnore = DEFAULT_pauseIgnore; + p_TgecDriverParam->txAddrInsEnable = DEFAULT_txAddrInsEnable; + + p_TgecDriverParam->loopbackEnable = DEFAULT_loopbackEnable; + p_TgecDriverParam->cmdFrameEnable = DEFAULT_cmdFrameEnable; + p_TgecDriverParam->rxErrorDiscard = DEFAULT_rxErrorDiscard; + p_TgecDriverParam->phyTxenaOn = DEFAULT_phyTxenaOn; + p_TgecDriverParam->sendIdleEnable = DEFAULT_sendIdleEnable; + p_TgecDriverParam->noLengthCheckEnable = DEFAULT_noLengthCheckEnable; + p_TgecDriverParam->lgthCheckNostdr = DEFAULT_lgthCheckNostdr; + p_TgecDriverParam->timeStampEnable = DEFAULT_timeStampEnable; + p_TgecDriverParam->rxSfdAny = DEFAULT_rxSfdAny; + p_TgecDriverParam->rxPblFwd = DEFAULT_rxPblFwd; + p_TgecDriverParam->txPblFwd = DEFAULT_txPblFwd; + + p_TgecDriverParam->txIpgLength = DEFAULT_txIpgLength; + p_TgecDriverParam->maxFrameLength = DEFAULT_maxFrameLength; + + p_TgecDriverParam->debugMode = DEFAULT_debugMode; + + p_TgecDriverParam->pauseTime = DEFAULT_pauseTime; + +#ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 + p_TgecDriverParam->skipFman11Workaround = DEFAULT_skipFman11Workaround; +#endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */ +} + +/* ........................................................................... */ + +static void TgecErrException(t_Handle h_Tgec) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + uint32_t event; + t_TgecMemMap *p_TgecMemMap = p_Tgec->p_MemMap; + + event = GET_UINT32(p_TgecMemMap->ievent); + /* do not handle MDIO events */ + event &= ~(IMASK_MDIO_SCAN_EVENTMDIO | IMASK_MDIO_CMD_CMPL); + + event &= GET_UINT32(p_TgecMemMap->imask); + + WRITE_UINT32(p_TgecMemMap->ievent, event); + + if (event & IMASK_REM_FAULT) + p_Tgec->f_Exception(p_Tgec->h_App, e_FM_MAC_EX_10G_REM_FAULT); + if (event & IMASK_LOC_FAULT) + p_Tgec->f_Exception(p_Tgec->h_App, e_FM_MAC_EX_10G_LOC_FAULT); + if (event & IMASK_1TX_ECC_ER) + p_Tgec->f_Exception(p_Tgec->h_App, e_FM_MAC_EX_10G_1TX_ECC_ER); + if (event & IMASK_TX_FIFO_UNFL) + p_Tgec->f_Exception(p_Tgec->h_App, e_FM_MAC_EX_10G_TX_FIFO_UNFL); + if (event & IMASK_TX_FIFO_OVFL) + p_Tgec->f_Exception(p_Tgec->h_App, e_FM_MAC_EX_10G_TX_FIFO_OVFL); + if (event & IMASK_TX_ER) + p_Tgec->f_Exception(p_Tgec->h_App, e_FM_MAC_EX_10G_TX_ER); + if (event & IMASK_RX_FIFO_OVFL) + p_Tgec->f_Exception(p_Tgec->h_App, e_FM_MAC_EX_10G_RX_FIFO_OVFL); + if (event & IMASK_RX_ECC_ER) + p_Tgec->f_Exception(p_Tgec->h_App, e_FM_MAC_EX_10G_RX_ECC_ER); + if (event & IMASK_RX_JAB_FRM) + p_Tgec->f_Exception(p_Tgec->h_App, e_FM_MAC_EX_10G_RX_JAB_FRM); + if (event & IMASK_RX_OVRSZ_FRM) + p_Tgec->f_Exception(p_Tgec->h_App, e_FM_MAC_EX_10G_RX_OVRSZ_FRM); + if (event & IMASK_RX_RUNT_FRM) + p_Tgec->f_Exception(p_Tgec->h_App, e_FM_MAC_EX_10G_RX_RUNT_FRM); + if (event & IMASK_RX_FRAG_FRM) + p_Tgec->f_Exception(p_Tgec->h_App, e_FM_MAC_EX_10G_RX_FRAG_FRM); + if (event & IMASK_RX_LEN_ER) + p_Tgec->f_Exception(p_Tgec->h_App, e_FM_MAC_EX_10G_RX_LEN_ER); + if (event & IMASK_RX_CRC_ER) + p_Tgec->f_Exception(p_Tgec->h_App, e_FM_MAC_EX_10G_RX_CRC_ER); + if (event & IMASK_RX_ALIGN_ER) + p_Tgec->f_Exception(p_Tgec->h_App, e_FM_MAC_EX_10G_RX_ALIGN_ER); +} + +static void TgecException(t_Handle h_Tgec) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + uint32_t event; + t_TgecMemMap *p_TgecMemMap = p_Tgec->p_MemMap; + + event = GET_UINT32(p_TgecMemMap->ievent); + /* handle only MDIO events */ + event &= (IMASK_MDIO_SCAN_EVENTMDIO | IMASK_MDIO_CMD_CMPL); + event &= GET_UINT32(p_TgecMemMap->imask); + + WRITE_UINT32(p_TgecMemMap->ievent, event); + + if(event & IMASK_MDIO_SCAN_EVENTMDIO) + p_Tgec->f_Event(p_Tgec->h_App, e_FM_MAC_EX_10G_MDIO_SCAN_EVENTMDIO); + if(event & IMASK_MDIO_CMD_CMPL) + p_Tgec->f_Event(p_Tgec->h_App, e_FM_MAC_EX_10G_MDIO_CMD_CMPL); +} + +static void FreeInitResources(t_Tgec *p_Tgec) +{ + if ((p_Tgec->mdioIrq != 0) && (p_Tgec->mdioIrq != NO_IRQ)) + { + XX_DisableIntr(p_Tgec->mdioIrq); + XX_FreeIntr(p_Tgec->mdioIrq); + } + else if (p_Tgec->mdioIrq == 0) + REPORT_ERROR(MINOR, E_NOT_SUPPORTED, (NO_MSG)); + FmUnregisterIntr(p_Tgec->fmMacControllerDriver.h_Fm, e_FM_MOD_10G_MAC, p_Tgec->macId, e_FM_INTR_TYPE_ERR); + + /* release the driver's group hash table */ + FreeHashTable(p_Tgec->p_MulticastAddrHash); + p_Tgec->p_MulticastAddrHash = NULL; + + /* release the driver's individual hash table */ + FreeHashTable(p_Tgec->p_UnicastAddrHash); + p_Tgec->p_UnicastAddrHash = NULL; +} + +/* .............................................................................. */ + +static void HardwareClearAddrInPaddr(t_Tgec *p_Tgec, uint8_t paddrNum) +{ + if (paddrNum != 0) + return; /* At this time MAC has only one address */ + + WRITE_UINT32(p_Tgec->p_MemMap->mac_addr_2, 0x0); + WRITE_UINT32(p_Tgec->p_MemMap->mac_addr_3, 0x0); +} + +/* ........................................................................... */ + +static void HardwareAddAddrInPaddr(t_Tgec *p_Tgec, uint64_t *p_Addr, uint8_t paddrNum) +{ + uint32_t tmpReg32 = 0; + uint64_t addr = *p_Addr; + t_TgecMemMap *p_TgecMemMap = p_Tgec->p_MemMap; + + if (paddrNum != 0) + return; /* At this time MAC has only one address */ + + tmpReg32 = (uint32_t)(addr>>16); + SwapUint32P(&tmpReg32); + WRITE_UINT32(p_TgecMemMap->mac_addr_2, tmpReg32); + + tmpReg32 = (uint32_t)(addr); + SwapUint32P(&tmpReg32); + tmpReg32 >>= 16; + WRITE_UINT32(p_TgecMemMap->mac_addr_3, tmpReg32); +} + +/*****************************************************************************/ +/* 10G MAC API routines */ +/*****************************************************************************/ + +/* .............................................................................. */ + +static t_Error TgecEnable(t_Handle h_Tgec, e_CommMode mode) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + t_TgecMemMap *p_MemMap ; + uint32_t tmpReg32 = 0; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_MemMap, E_INVALID_HANDLE); + + p_MemMap= (t_TgecMemMap*)(p_Tgec->p_MemMap); + + tmpReg32 = GET_UINT32(p_MemMap->cmd_conf_ctrl); + + switch (mode) + { + case e_COMM_MODE_NONE: + tmpReg32 &= ~(CMD_CFG_TX_EN | CMD_CFG_RX_EN); + break; + case e_COMM_MODE_RX : + tmpReg32 |= CMD_CFG_RX_EN ; + break; + case e_COMM_MODE_TX : + tmpReg32 |= CMD_CFG_TX_EN ; + break; + case e_COMM_MODE_RX_AND_TX: + tmpReg32 |= (CMD_CFG_TX_EN | CMD_CFG_RX_EN); + break; + } + + WRITE_UINT32(p_MemMap->cmd_conf_ctrl, tmpReg32); + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error TgecDisable (t_Handle h_Tgec, e_CommMode mode) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + t_TgecMemMap *p_MemMap ; + uint32_t tmpReg32 = 0; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_MemMap, E_INVALID_HANDLE); + + p_MemMap= (t_TgecMemMap*)(p_Tgec->p_MemMap); + + tmpReg32 = GET_UINT32(p_MemMap->cmd_conf_ctrl); + switch (mode) + { + case e_COMM_MODE_RX: + tmpReg32 &= ~CMD_CFG_RX_EN; + break; + case e_COMM_MODE_TX: + tmpReg32 &= ~CMD_CFG_TX_EN; + break; + case e_COMM_MODE_RX_AND_TX: + tmpReg32 &= ~(CMD_CFG_TX_EN | CMD_CFG_RX_EN); + break; + default: + RETURN_ERROR(MINOR, E_INVALID_SELECTION, NO_MSG); + } + WRITE_UINT32(p_MemMap->cmd_conf_ctrl, tmpReg32); + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error TgecSetPromiscuous(t_Handle h_Tgec, bool newVal) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + t_TgecMemMap *p_TgecMemMap; + uint32_t tmpReg32; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Tgec->p_TgecDriverParam, E_NULL_POINTER); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_MemMap, E_NULL_POINTER); + + p_TgecMemMap = p_Tgec->p_MemMap; + + tmpReg32 = GET_UINT32(p_TgecMemMap->cmd_conf_ctrl); + + if (newVal) + tmpReg32 |= CMD_CFG_PROMIS_EN; + else + tmpReg32 &= ~CMD_CFG_PROMIS_EN; + + WRITE_UINT32(p_TgecMemMap->cmd_conf_ctrl, tmpReg32); + + return E_OK; +} + + +/*****************************************************************************/ +/* Tgec Configs modification functions */ +/*****************************************************************************/ + +/* .............................................................................. */ + +static t_Error TgecConfigLoopback(t_Handle h_Tgec, bool newVal) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_TgecDriverParam, E_INVALID_STATE); + +#ifdef FM_NO_TGEC_LOOPBACK + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_Tgec->fmMacControllerDriver.h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("no loopback in this chip rev!")); + } +#endif /* FM_NO_TGEC_LOOPBACK */ + + p_Tgec->p_TgecDriverParam->loopbackEnable = newVal; + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error TgecConfigWan(t_Handle h_Tgec, bool newVal) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_TgecDriverParam, E_INVALID_STATE); + + p_Tgec->p_TgecDriverParam->wanModeEnable = newVal; + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error TgecConfigMaxFrameLength(t_Handle h_Tgec, uint16_t newVal) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_TgecDriverParam, E_INVALID_STATE); + + p_Tgec->p_TgecDriverParam->maxFrameLength = newVal; + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error TgecConfigLengthCheck(t_Handle h_Tgec, bool newVal) +{ +#ifdef FM_LEN_CHECK_ERRATA_FMAN_SW002 +UNUSED(h_Tgec); + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("LengthCheck!")); + +#else + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + + UNUSED(newVal); + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_TgecDriverParam, E_INVALID_STATE); + + p_Tgec->p_TgecDriverParam->noLengthCheckEnable = !newVal; + + return E_OK; +#endif /* FM_LEN_CHECK_ERRATA_FMAN_SW002 */ +} + +/* .............................................................................. */ + +static t_Error TgecConfigException(t_Handle h_Tgec, e_FmMacExceptions exception, bool enable) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + uint32_t bitMask = 0; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_TgecDriverParam, E_INVALID_STATE); +#ifdef FM_10G_REM_N_LCL_FLT_EX_ERRATA_10GMAC001 + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_Tgec->fmMacControllerDriver.h_Fm, &revInfo); + if((revInfo.majorRev <=2) && + enable && + ((exception == e_FM_MAC_EX_10G_LOC_FAULT) || (exception == e_FM_MAC_EX_10G_REM_FAULT))) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("e_FM_MAC_EX_10G_LOC_FAULT and e_FM_MAC_EX_10G_REM_FAULT !")); + } +#endif /* FM_10G_REM_N_LCL_FLT_EX_ERRATA_10GMAC001 */ + + GET_EXCEPTION_FLAG(bitMask, exception); + if(bitMask) + { + if (enable) + p_Tgec->exceptions |= bitMask; + else + p_Tgec->exceptions &= ~bitMask; + } + else + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Undefined exception")); + + return E_OK; +} + +#ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 +/* .............................................................................. */ + +static t_Error TgecConfigSkipFman11Workaround(t_Handle h_Tgec) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_TgecDriverParam, E_INVALID_STATE); + + p_Tgec->p_TgecDriverParam->skipFman11Workaround = TRUE; + + return E_OK; +} +#endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */ + + +/*****************************************************************************/ +/* Tgec Run Time API functions */ +/*****************************************************************************/ + +/* .............................................................................. */ + +static t_Error TgecTxMacPause(t_Handle h_Tgec, uint16_t pauseTime) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + uint32_t ptv = 0; + t_TgecMemMap *p_MemMap; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(!p_Tgec->p_TgecDriverParam, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_MemMap, E_INVALID_STATE); + + p_MemMap = (t_TgecMemMap*)(p_Tgec->p_MemMap); + + ptv = (uint32_t)pauseTime; + + WRITE_UINT32(p_MemMap->pause_quant, ptv); + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error TgecRxIgnoreMacPause(t_Handle h_Tgec, bool en) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + t_TgecMemMap *p_MemMap; + uint32_t tmpReg32; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(!p_Tgec->p_TgecDriverParam, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_MemMap, E_INVALID_STATE); + + p_MemMap = (t_TgecMemMap*)(p_Tgec->p_MemMap); + tmpReg32 = GET_UINT32(p_MemMap->cmd_conf_ctrl); + if (en) + tmpReg32 |= CMD_CFG_PAUSE_IGNORE; + else + tmpReg32 &= ~CMD_CFG_PAUSE_IGNORE; + WRITE_UINT32(p_MemMap->cmd_conf_ctrl, tmpReg32); + + return E_OK; +} + +/* Counters handling */ +/* .............................................................................. */ + +static t_Error TgecGetStatistics(t_Handle h_Tgec, t_FmMacStatistics *p_Statistics) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + t_TgecMemMap *p_TgecMemMap; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_NULL_POINTER); + SANITY_CHECK_RETURN_ERROR(p_Statistics, E_NULL_POINTER); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_MemMap, E_NULL_POINTER); + + p_TgecMemMap = p_Tgec->p_MemMap; + + p_Statistics->eStatPkts64 = GET_UINT64(p_TgecMemMap->R64); + p_Statistics->eStatPkts65to127 = GET_UINT64(p_TgecMemMap->R127); + p_Statistics->eStatPkts128to255 = GET_UINT64(p_TgecMemMap->R255); + p_Statistics->eStatPkts256to511 = GET_UINT64(p_TgecMemMap->R511); + p_Statistics->eStatPkts512to1023 = GET_UINT64(p_TgecMemMap->R1023); + p_Statistics->eStatPkts1024to1518 = GET_UINT64(p_TgecMemMap->R1518); + p_Statistics->eStatPkts1519to1522 = GET_UINT64(p_TgecMemMap->R1519X); +/* */ + p_Statistics->eStatFragments = GET_UINT64(p_TgecMemMap->TRFRG); + p_Statistics->eStatJabbers = GET_UINT64(p_TgecMemMap->TRJBR); + + p_Statistics->eStatsDropEvents = GET_UINT64(p_TgecMemMap->RDRP); + p_Statistics->eStatCRCAlignErrors = GET_UINT64(p_TgecMemMap->RALN); + + p_Statistics->eStatUndersizePkts = GET_UINT64(p_TgecMemMap->TRUND); + p_Statistics->eStatOversizePkts = GET_UINT64(p_TgecMemMap->TROVR); +/* Pause */ + p_Statistics->reStatPause = GET_UINT64(p_TgecMemMap->RXPF); + p_Statistics->teStatPause = GET_UINT64(p_TgecMemMap->TXPF); + + +/* MIB II */ + p_Statistics->ifInOctets = GET_UINT64(p_TgecMemMap->ROCT); + p_Statistics->ifInMcastPkts = GET_UINT64(p_TgecMemMap->RMCA); + p_Statistics->ifInBcastPkts = GET_UINT64(p_TgecMemMap->RBCA); + p_Statistics->ifInPkts = GET_UINT64(p_TgecMemMap->RUCA) + + p_Statistics->ifInMcastPkts + + p_Statistics->ifInBcastPkts; + p_Statistics->ifInDiscards = 0; + p_Statistics->ifInErrors = GET_UINT64(p_TgecMemMap->RERR); + + p_Statistics->ifOutOctets = GET_UINT64(p_TgecMemMap->TOCT); + p_Statistics->ifOutMcastPkts = GET_UINT64(p_TgecMemMap->TMCA); + p_Statistics->ifOutBcastPkts = GET_UINT64(p_TgecMemMap->TBCA); + p_Statistics->ifOutPkts = GET_UINT64(p_TgecMemMap->TUCA); + p_Statistics->ifOutDiscards = 0; + p_Statistics->ifOutErrors = GET_UINT64(p_TgecMemMap->TERR); + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error TgecEnable1588TimeStamp(t_Handle h_Tgec) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + t_TgecMemMap *p_TgecMemMap; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Tgec->p_TgecDriverParam, E_INVALID_STATE); + + p_TgecMemMap = p_Tgec->p_MemMap; + SANITY_CHECK_RETURN_ERROR(p_TgecMemMap, E_INVALID_HANDLE); + + WRITE_UINT32(p_TgecMemMap->cmd_conf_ctrl, GET_UINT32(p_TgecMemMap->cmd_conf_ctrl) | CMD_CFG_EN_TIMESTAMP); + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error TgecDisable1588TimeStamp(t_Handle h_Tgec) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + t_TgecMemMap *p_TgecMemMap; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Tgec->p_TgecDriverParam, E_INVALID_STATE); + + p_TgecMemMap = p_Tgec->p_MemMap; + SANITY_CHECK_RETURN_ERROR(p_TgecMemMap, E_INVALID_HANDLE); + + WRITE_UINT32(p_TgecMemMap->cmd_conf_ctrl, GET_UINT32(p_TgecMemMap->cmd_conf_ctrl) & ~CMD_CFG_EN_TIMESTAMP); + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error TgecModifyMacAddress (t_Handle h_Tgec, t_EnetAddr *p_EnetAddr) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + t_TgecMemMap *p_TgecMemMap; + uint32_t tmpReg32 = 0; + uint64_t addr; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_NULL_POINTER); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_MemMap, E_NULL_POINTER); + + p_TgecMemMap = p_Tgec->p_MemMap; + + /* Initialize MAC Station Address registers (1 & 2) */ + /* Station address have to be swapped (big endian to little endian */ + + addr = ((*(uint64_t *)p_EnetAddr) >> 16); + p_Tgec->addr = addr; + + tmpReg32 = (uint32_t)(addr>>16); + SwapUint32P(&tmpReg32); + WRITE_UINT32(p_TgecMemMap->mac_addr_0, tmpReg32); + + tmpReg32 = (uint32_t)(addr); + SwapUint32P(&tmpReg32); + tmpReg32 >>= 16; + WRITE_UINT32(p_TgecMemMap->mac_addr_1, tmpReg32); + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error TgecResetCounters (t_Handle h_Tgec) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + t_TgecMemMap *p_MemMap ; + uint32_t tmpReg32, cmdConfCtrl; + int i; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_MemMap, E_INVALID_HANDLE); + + p_MemMap= (t_TgecMemMap*)(p_Tgec->p_MemMap); + + cmdConfCtrl = GET_UINT32(p_MemMap->cmd_conf_ctrl); + + cmdConfCtrl |= CMD_CFG_STAT_CLR; + + WRITE_UINT32(p_MemMap->cmd_conf_ctrl, cmdConfCtrl); + + for (i=0; i<1000; i++) + { + tmpReg32 = GET_UINT32(p_MemMap->cmd_conf_ctrl); + if (!(tmpReg32 & CMD_CFG_STAT_CLR)) + break; + } + + cmdConfCtrl &= ~CMD_CFG_STAT_CLR; + WRITE_UINT32(p_MemMap->cmd_conf_ctrl, cmdConfCtrl); + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error TgecAddExactMatchMacAddress(t_Handle h_Tgec, t_EnetAddr *p_EthAddr) +{ + t_Tgec *p_Tgec = (t_Tgec *) h_Tgec; + uint64_t ethAddr; + uint8_t paddrNum; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + + ethAddr = ((*(uint64_t *)p_EthAddr) >> 16); + + if (ethAddr & GROUP_ADDRESS) + /* Multicast address has no effect in PADDR */ + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Multicast address")); + + /* Make sure no PADDR contains this address */ + for (paddrNum = 0; paddrNum < TGEC_NUM_OF_PADDRS; paddrNum++) + { + if (p_Tgec->indAddrRegUsed[paddrNum]) + { + if (p_Tgec->paddr[paddrNum] == ethAddr) + { + RETURN_ERROR(MAJOR, E_ALREADY_EXISTS, NO_MSG); + } + } + } + + /* Find first unused PADDR */ + for (paddrNum = 0; paddrNum < TGEC_NUM_OF_PADDRS; paddrNum++) + { + if (!(p_Tgec->indAddrRegUsed[paddrNum])) + { + /* mark this PADDR as used */ + p_Tgec->indAddrRegUsed[paddrNum] = TRUE; + /* store address */ + p_Tgec->paddr[paddrNum] = ethAddr; + + /* put in hardware */ + HardwareAddAddrInPaddr(p_Tgec, ðAddr, paddrNum); + p_Tgec->numOfIndAddrInRegs++; + + return E_OK; + } + } + + /* No free PADDR */ + RETURN_ERROR(MAJOR, E_FULL, NO_MSG); +} + +/* .............................................................................. */ + +static t_Error TgecDelExactMatchMacAddress(t_Handle h_Tgec, t_EnetAddr *p_EthAddr) +{ + t_Tgec *p_Tgec = (t_Tgec *) h_Tgec; + uint64_t ethAddr; + uint8_t paddrNum; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_MemMap, E_INVALID_HANDLE); + + ethAddr = ((*(uint64_t *)p_EthAddr) >> 16); + + /* Find used PADDR containing this address */ + for (paddrNum = 0; paddrNum < TGEC_NUM_OF_PADDRS; paddrNum++) + { + if ((p_Tgec->indAddrRegUsed[paddrNum]) && + (p_Tgec->paddr[paddrNum] == ethAddr)) + { + /* mark this PADDR as not used */ + p_Tgec->indAddrRegUsed[paddrNum] = FALSE; + /* clear in hardware */ + HardwareClearAddrInPaddr(p_Tgec, paddrNum); + p_Tgec->numOfIndAddrInRegs--; + + return E_OK; + } + } + + RETURN_ERROR(MAJOR, E_NOT_FOUND, NO_MSG); +} + +/* .............................................................................. */ + +static t_Error TgecAddHashMacAddress(t_Handle h_Tgec, t_EnetAddr *p_EthAddr) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + t_TgecMemMap *p_TgecMemMap; + t_EthHashEntry *p_HashEntry; + uint32_t crc; + uint32_t hash; + uint64_t ethAddr; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_NULL_POINTER); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_MemMap, E_NULL_POINTER); + + p_TgecMemMap = p_Tgec->p_MemMap; + ethAddr = ((*(uint64_t *)p_EthAddr) >> 16); + + if (!(ethAddr & GROUP_ADDRESS)) + /* Unicast addresses not supported in hash */ + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("Unicast Address")); + + /* CRC calculation */ + GET_MAC_ADDR_CRC(ethAddr, crc); + crc = MIRROR_32(crc); + + hash = (crc >> HASH_CTRL_MCAST_SHIFT) & HASH_ADDR_MASK; /* Take 9 MSB bits */ + + /* Create element to be added to the driver hash table */ + p_HashEntry = (t_EthHashEntry *)XX_Malloc(sizeof(t_EthHashEntry)); + p_HashEntry->addr = ethAddr; + INIT_LIST(&p_HashEntry->node); + + LIST_AddToTail(&(p_HashEntry->node), &(p_Tgec->p_MulticastAddrHash->p_Lsts[hash])); + WRITE_UINT32(p_TgecMemMap->hashtable_ctrl, (hash | HASH_CTRL_MCAST_EN)); + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error TgecDelHashMacAddress(t_Handle h_Tgec, t_EnetAddr *p_EthAddr) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + t_TgecMemMap *p_TgecMemMap; + t_EthHashEntry *p_HashEntry = NULL; + t_List *p_Pos; + uint32_t crc; + uint32_t hash; + uint64_t ethAddr; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_NULL_POINTER); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_MemMap, E_NULL_POINTER); + + p_TgecMemMap = p_Tgec->p_MemMap; + ethAddr = ((*(uint64_t *)p_EthAddr) >> 16); + + /* CRC calculation */ + GET_MAC_ADDR_CRC(ethAddr, crc); + crc = MIRROR_32(crc); + + hash = (crc >> HASH_CTRL_MCAST_SHIFT) & HASH_ADDR_MASK; /* Take 9 MSB bits */ + + LIST_FOR_EACH(p_Pos, &(p_Tgec->p_MulticastAddrHash->p_Lsts[hash])) + { + + p_HashEntry = ETH_HASH_ENTRY_OBJ(p_Pos); + if(p_HashEntry->addr == ethAddr) + { + LIST_DelAndInit(&p_HashEntry->node); + XX_Free(p_HashEntry); + break; + } + } + if(LIST_IsEmpty(&p_Tgec->p_MulticastAddrHash->p_Lsts[hash])) + WRITE_UINT32(p_TgecMemMap->hashtable_ctrl, (hash & ~HASH_CTRL_MCAST_EN)); + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error TgecGetId(t_Handle h_Tgec, uint32_t *macId) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Tgec->p_TgecDriverParam, E_NULL_POINTER); + + UNUSED(p_Tgec); + UNUSED(macId); + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("TgecGetId Not Supported")); +} + +/* .............................................................................. */ + +static t_Error TgecGetVersion(t_Handle h_Tgec, uint32_t *macVersion) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + t_TgecMemMap *p_TgecMemMap; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Tgec->p_TgecDriverParam, E_NULL_POINTER); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_MemMap, E_NULL_POINTER); + + p_TgecMemMap = p_Tgec->p_MemMap; + *macVersion = GET_UINT32(p_TgecMemMap->tgec_id); + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error TgecSetExcpetion(t_Handle h_Tgec, e_FmMacExceptions exception, bool enable) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + uint32_t bitMask = 0, tmpReg; + t_TgecMemMap *p_TgecMemMap; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Tgec->p_TgecDriverParam, E_NULL_POINTER); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_MemMap, E_NULL_POINTER); + + p_TgecMemMap = p_Tgec->p_MemMap; +#ifdef FM_10G_REM_N_LCL_FLT_EX_ERRATA_10GMAC001 + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_Tgec->fmMacControllerDriver.h_Fm, &revInfo); + if((revInfo.majorRev <=2) && + enable && + ((exception == e_FM_MAC_EX_10G_LOC_FAULT) || (exception == e_FM_MAC_EX_10G_REM_FAULT))) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("e_FM_MAC_EX_10G_LOC_FAULT and e_FM_MAC_EX_10G_REM_FAULT !")); + } +#endif /* FM_10G_REM_N_LCL_FLT_EX_ERRATA_10GMAC001 */ + + GET_EXCEPTION_FLAG(bitMask, exception); + if(bitMask) + { + if (enable) + p_Tgec->exceptions |= bitMask; + else + p_Tgec->exceptions &= ~bitMask; + } + else + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Undefined exception")); + + tmpReg = GET_UINT32(p_TgecMemMap->imask); + if(enable) + tmpReg |= bitMask; + else + tmpReg &= ~bitMask; + WRITE_UINT32(p_TgecMemMap->imask, tmpReg); + return E_OK; +} + +/* .............................................................................. */ + +static uint16_t TgecGetMaxFrameLength(t_Handle h_Tgec) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + + SANITY_CHECK_RETURN_VALUE(p_Tgec, E_INVALID_HANDLE, 0); + + return (uint16_t)GET_UINT32(p_Tgec->p_MemMap->maxfrm); +} + +/* .............................................................................. */ + +#ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 +static t_Error TgecTxEccWorkaround(t_Tgec *p_Tgec) +{ + t_Error err; + + XX_Print("Applying 10G tx-ecc error workaround (10GMAC-A004) ..."); + /* enable and set promiscuous */ + WRITE_UINT32(p_Tgec->p_MemMap->cmd_conf_ctrl, CMD_CFG_PROMIS_EN | CMD_CFG_TX_EN | CMD_CFG_RX_EN); + err = Fm10GTxEccWorkaround(p_Tgec->fmMacControllerDriver.h_Fm, p_Tgec->macId); + /* disable */ + WRITE_UINT32(p_Tgec->p_MemMap->cmd_conf_ctrl, 0); + if (err) + XX_Print("FAILED!\n"); + else + XX_Print("done.\n"); + TgecResetCounters (p_Tgec); + + return err; +} +#endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */ + +/* .............................................................................. */ + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +static t_Error TgecDumpRegs(t_Handle h_Tgec) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + + DECLARE_DUMP; + + if (p_Tgec->p_MemMap) + { + DUMP_TITLE(p_Tgec->p_MemMap, ("10G MAC %d: ", p_Tgec->macId)); + DUMP_VAR(p_Tgec->p_MemMap, tgec_id); + DUMP_VAR(p_Tgec->p_MemMap, scratch); + DUMP_VAR(p_Tgec->p_MemMap, cmd_conf_ctrl); + DUMP_VAR(p_Tgec->p_MemMap, mac_addr_0); + DUMP_VAR(p_Tgec->p_MemMap, mac_addr_1); + DUMP_VAR(p_Tgec->p_MemMap, maxfrm); + DUMP_VAR(p_Tgec->p_MemMap, pause_quant); + DUMP_VAR(p_Tgec->p_MemMap, rx_fifo_sections); + DUMP_VAR(p_Tgec->p_MemMap, tx_fifo_sections); + DUMP_VAR(p_Tgec->p_MemMap, rx_fifo_almost_f_e); + DUMP_VAR(p_Tgec->p_MemMap, tx_fifo_almost_f_e); + DUMP_VAR(p_Tgec->p_MemMap, hashtable_ctrl); + DUMP_VAR(p_Tgec->p_MemMap, mdio_cfg_status); + DUMP_VAR(p_Tgec->p_MemMap, mdio_command); + DUMP_VAR(p_Tgec->p_MemMap, mdio_data); + DUMP_VAR(p_Tgec->p_MemMap, mdio_regaddr); + DUMP_VAR(p_Tgec->p_MemMap, status); + DUMP_VAR(p_Tgec->p_MemMap, tx_ipg_len); + DUMP_VAR(p_Tgec->p_MemMap, mac_addr_2); + DUMP_VAR(p_Tgec->p_MemMap, mac_addr_3); + DUMP_VAR(p_Tgec->p_MemMap, rx_fifo_ptr_rd); + DUMP_VAR(p_Tgec->p_MemMap, rx_fifo_ptr_wr); + DUMP_VAR(p_Tgec->p_MemMap, tx_fifo_ptr_rd); + DUMP_VAR(p_Tgec->p_MemMap, tx_fifo_ptr_wr); + DUMP_VAR(p_Tgec->p_MemMap, imask); + DUMP_VAR(p_Tgec->p_MemMap, ievent); + DUMP_VAR(p_Tgec->p_MemMap, udp_port); + DUMP_VAR(p_Tgec->p_MemMap, type_1588v2); + } + + return E_OK; +} +#endif /* (defined(DEBUG_ERRORS) && ... */ + + +/*****************************************************************************/ +/* FM Init & Free API */ +/*****************************************************************************/ + +/* .............................................................................. */ + +static t_Error TgecInit(t_Handle h_Tgec) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + t_TgecDriverParam *p_TgecDriverParam; + t_TgecMemMap *p_MemMap; + uint64_t addr; + uint32_t tmpReg32; + t_Error err; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_TgecDriverParam, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_MemMap, E_INVALID_HANDLE); + +#ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 + if (!p_Tgec->p_TgecDriverParam->skipFman11Workaround && + ((err = TgecTxEccWorkaround(p_Tgec)) != E_OK)) +#ifdef NCSW_LINUX + { + /* the workaround fails in simics, just report and continue initialization */ + REPORT_ERROR(MAJOR, err, ("TgecTxEccWorkaround FAILED, skipping workaround")); + } +#else + { + FreeInitResources(p_Tgec); + RETURN_ERROR(MAJOR, err, ("TgecTxEccWorkaround FAILED")); + } +#endif +#endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */ + + CHECK_INIT_PARAMETERS(p_Tgec, CheckInitParameters); + + p_TgecDriverParam = p_Tgec->p_TgecDriverParam; + p_MemMap = p_Tgec->p_MemMap; + + /* MAC Address */ + addr = p_Tgec->addr; + tmpReg32 = (uint32_t)(addr>>16); + SwapUint32P(&tmpReg32); + WRITE_UINT32(p_MemMap->mac_addr_0, tmpReg32); + + tmpReg32 = (uint32_t)(addr); + SwapUint32P(&tmpReg32); + tmpReg32 >>= 16; + WRITE_UINT32(p_MemMap->mac_addr_1, tmpReg32); + + /* Config */ + tmpReg32 = 0; + if (p_TgecDriverParam->wanModeEnable) + tmpReg32 |= CMD_CFG_WAN_MODE; + if (p_TgecDriverParam->promiscuousModeEnable) + tmpReg32 |= CMD_CFG_PROMIS_EN; + if (p_TgecDriverParam->pauseForwardEnable) + tmpReg32 |= CMD_CFG_PAUSE_FWD; + if (p_TgecDriverParam->pauseIgnore) + tmpReg32 |= CMD_CFG_PAUSE_IGNORE; + if (p_TgecDriverParam->txAddrInsEnable) + tmpReg32 |= CMD_CFG_TX_ADDR_INS; + if (p_TgecDriverParam->loopbackEnable) + tmpReg32 |= CMD_CFG_LOOPBACK_EN; + if (p_TgecDriverParam->cmdFrameEnable) + tmpReg32 |= CMD_CFG_CMD_FRM_EN; + if (p_TgecDriverParam->rxErrorDiscard) + tmpReg32 |= CMD_CFG_RX_ER_DISC; + if (p_TgecDriverParam->phyTxenaOn) + tmpReg32 |= CMD_CFG_PHY_TX_EN; + if (p_TgecDriverParam->sendIdleEnable) + tmpReg32 |= CMD_CFG_SEND_IDLE; + if (p_TgecDriverParam->noLengthCheckEnable) + tmpReg32 |= CMD_CFG_NO_LEN_CHK; + if (p_TgecDriverParam->lgthCheckNostdr) + tmpReg32 |= CMD_CFG_LEN_CHK_NOSTDR; + if (p_TgecDriverParam->timeStampEnable) + tmpReg32 |= CMD_CFG_EN_TIMESTAMP; + if (p_TgecDriverParam->rxSfdAny) + tmpReg32 |= RX_SFD_ANY; + if (p_TgecDriverParam->rxPblFwd) + tmpReg32 |= CMD_CFG_RX_PBL_FWD; + if (p_TgecDriverParam->txPblFwd) + tmpReg32 |= CMD_CFG_TX_PBL_FWD; + tmpReg32 |= 0x40; + WRITE_UINT32(p_MemMap->cmd_conf_ctrl, tmpReg32); + + /* Max Frame Length */ + WRITE_UINT32(p_MemMap->maxfrm, (uint32_t)p_TgecDriverParam->maxFrameLength); + err = FmSetMacMaxFrame(p_Tgec->fmMacControllerDriver.h_Fm, e_FM_MAC_10G, p_Tgec->fmMacControllerDriver.macId, p_TgecDriverParam->maxFrameLength); + if(err) + { + FreeInitResources(p_Tgec); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + /* Pause Time */ + WRITE_UINT32(p_MemMap->pause_quant, p_TgecDriverParam->pauseTime); + +#ifdef FM_TX_FIFO_CORRUPTION_ERRATA_10GMAC_A007 + WRITE_UINT32(p_Tgec->p_MemMap->tx_ipg_len, + (GET_UINT32(p_Tgec->p_MemMap->tx_ipg_len) & ~TX_IPG_LENGTH_MASK) | DEFAULT_txIpgLength); +#endif /* FM_TX_FIFO_CORRUPTION_ERRATA_10GMAC_A007 */ + + /* Configure MII */ + tmpReg32 = GET_UINT32(p_Tgec->p_MiiMemMap->mdio_cfg_status); +#ifdef FM_10G_MDIO_HOLD_ERRATA_XAUI3 + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_Tgec->fmMacControllerDriver.h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + tmpReg32 |= (MIIMCOM_MDIO_HOLD_4_REG_CLK << 2); + } +#endif /* FM_10G_MDIO_HOLD_ERRATA_XAUI3 */ + tmpReg32 &= ~MIIMCOM_DIV_MASK; + /* (one half of fm clock => 2.5Mhz) */ + tmpReg32 |=((((p_Tgec->fmMacControllerDriver.clkFreq*10)/2)/25) << MIIMCOM_DIV_SHIFT); + WRITE_UINT32(p_Tgec->p_MiiMemMap->mdio_cfg_status, tmpReg32); + + p_Tgec->p_MulticastAddrHash = AllocHashTable(HASH_TABLE_SIZE); + if(!p_Tgec->p_MulticastAddrHash) + { + FreeInitResources(p_Tgec); + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("allocation hash table is FAILED")); + } + + p_Tgec->p_UnicastAddrHash = AllocHashTable(HASH_TABLE_SIZE); + if(!p_Tgec->p_UnicastAddrHash) + { + FreeInitResources(p_Tgec); + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("allocation hash table is FAILED")); + } + + /* interrupts */ +#ifdef FM_10G_REM_N_LCL_FLT_EX_ERRATA_10GMAC001 + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_Tgec->fmMacControllerDriver.h_Fm, &revInfo); + if (revInfo.majorRev <=2) + p_Tgec->exceptions &= ~(IMASK_REM_FAULT | IMASK_LOC_FAULT); + } +#endif /* FM_10G_REM_N_LCL_FLT_EX_ERRATA_10GMAC001 */ + WRITE_UINT32(p_MemMap->ievent, EVENTS_MASK); + WRITE_UINT32(p_MemMap->imask, p_Tgec->exceptions); + + FmRegisterIntr(p_Tgec->fmMacControllerDriver.h_Fm, e_FM_MOD_10G_MAC, p_Tgec->macId, e_FM_INTR_TYPE_ERR, TgecErrException , p_Tgec); + if ((p_Tgec->mdioIrq != 0) && (p_Tgec->mdioIrq != NO_IRQ)) + { + XX_SetIntr(p_Tgec->mdioIrq, TgecException, p_Tgec); + XX_EnableIntr(p_Tgec->mdioIrq); + } + else if (p_Tgec->mdioIrq == 0) + REPORT_ERROR(MINOR, E_NOT_SUPPORTED, (NO_MSG)); + + XX_Free(p_TgecDriverParam); + p_Tgec->p_TgecDriverParam = NULL; + + return E_OK; +} + +/* .............................................................................. */ + +static t_Error TgecFree(t_Handle h_Tgec) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + + FreeInitResources(p_Tgec); + + if (p_Tgec->p_TgecDriverParam) + { + XX_Free(p_Tgec->p_TgecDriverParam); + p_Tgec->p_TgecDriverParam = NULL; + } + XX_Free (p_Tgec); + + return E_OK; +} + +/* .............................................................................. */ + +static void InitFmMacControllerDriver(t_FmMacControllerDriver *p_FmMacControllerDriver) +{ + p_FmMacControllerDriver->f_FM_MAC_Init = TgecInit; + p_FmMacControllerDriver->f_FM_MAC_Free = TgecFree; + + p_FmMacControllerDriver->f_FM_MAC_ConfigLoopback = TgecConfigLoopback; + p_FmMacControllerDriver->f_FM_MAC_ConfigMaxFrameLength = TgecConfigMaxFrameLength; + + p_FmMacControllerDriver->f_FM_MAC_ConfigWan = TgecConfigWan; + + p_FmMacControllerDriver->f_FM_MAC_ConfigPadAndCrc = NULL; /* TGEC always works with pad+crc */ + p_FmMacControllerDriver->f_FM_MAC_ConfigHalfDuplex = NULL; /* half-duplex is not supported in xgec */ + p_FmMacControllerDriver->f_FM_MAC_ConfigLengthCheck = TgecConfigLengthCheck; + p_FmMacControllerDriver->f_FM_MAC_ConfigException = TgecConfigException; + +#ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 + p_FmMacControllerDriver->f_FM_MAC_ConfigSkipFman11Workaround= TgecConfigSkipFman11Workaround; +#endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */ + + p_FmMacControllerDriver->f_FM_MAC_SetException = TgecSetExcpetion; + + p_FmMacControllerDriver->f_FM_MAC_Enable1588TimeStamp = TgecEnable1588TimeStamp; + p_FmMacControllerDriver->f_FM_MAC_Disable1588TimeStamp = TgecDisable1588TimeStamp; + + p_FmMacControllerDriver->f_FM_MAC_SetPromiscuous = TgecSetPromiscuous; + p_FmMacControllerDriver->f_FM_MAC_AdjustLink = NULL; + + p_FmMacControllerDriver->f_FM_MAC_Enable = TgecEnable; + p_FmMacControllerDriver->f_FM_MAC_Disable = TgecDisable; + + p_FmMacControllerDriver->f_FM_MAC_SetTxAutoPauseFrames = TgecTxMacPause; + p_FmMacControllerDriver->f_FM_MAC_SetRxIgnorePauseFrames = TgecRxIgnoreMacPause; + + p_FmMacControllerDriver->f_FM_MAC_ResetCounters = TgecResetCounters; + p_FmMacControllerDriver->f_FM_MAC_GetStatistics = TgecGetStatistics; + + p_FmMacControllerDriver->f_FM_MAC_ModifyMacAddr = TgecModifyMacAddress; + p_FmMacControllerDriver->f_FM_MAC_AddHashMacAddr = TgecAddHashMacAddress; + p_FmMacControllerDriver->f_FM_MAC_RemoveHashMacAddr = TgecDelHashMacAddress; + p_FmMacControllerDriver->f_FM_MAC_AddExactMatchMacAddr = TgecAddExactMatchMacAddress; + p_FmMacControllerDriver->f_FM_MAC_RemovelExactMatchMacAddr = TgecDelExactMatchMacAddress; + p_FmMacControllerDriver->f_FM_MAC_GetId = TgecGetId; + p_FmMacControllerDriver->f_FM_MAC_GetVersion = TgecGetVersion; + p_FmMacControllerDriver->f_FM_MAC_GetMaxFrameLength = TgecGetMaxFrameLength; + + p_FmMacControllerDriver->f_FM_MAC_MII_WritePhyReg = TGEC_MII_WritePhyReg; + p_FmMacControllerDriver->f_FM_MAC_MII_ReadPhyReg = TGEC_MII_ReadPhyReg; + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) + p_FmMacControllerDriver->f_FM_MAC_DumpRegs = TgecDumpRegs; +#endif /* (defined(DEBUG_ERRORS) && ... */ +} + + +/*****************************************************************************/ +/* Tgec Config Main Entry */ +/*****************************************************************************/ + +/* .............................................................................. */ + +t_Handle TGEC_Config(t_FmMacParams *p_FmMacParam) +{ + t_Tgec *p_Tgec; + t_TgecDriverParam *p_TgecDriverParam; + uintptr_t baseAddr; + uint8_t i; + + SANITY_CHECK_RETURN_VALUE(p_FmMacParam, E_NULL_POINTER, NULL); + + baseAddr = p_FmMacParam->baseAddr; + /* allocate memory for the UCC GETH data structure. */ + p_Tgec = (t_Tgec *) XX_Malloc(sizeof(t_Tgec)); + if (!p_Tgec) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("10G MAC driver structure")); + return NULL; + } + /* Zero out * p_Tgec */ + memset(p_Tgec, 0, sizeof(t_Tgec)); + InitFmMacControllerDriver(&p_Tgec->fmMacControllerDriver); + + /* allocate memory for the 10G MAC driver parameters data structure. */ + p_TgecDriverParam = (t_TgecDriverParam *) XX_Malloc(sizeof(t_TgecDriverParam)); + if (!p_TgecDriverParam) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("10G MAC driver parameters")); + TgecFree(p_Tgec); + return NULL; + } + /* Zero out */ + memset(p_TgecDriverParam, 0, sizeof(t_TgecDriverParam)); + + /* Plant parameter structure pointer */ + p_Tgec->p_TgecDriverParam = p_TgecDriverParam; + + SetDefaultParam(p_TgecDriverParam); + + for (i=0; i < sizeof(p_FmMacParam->addr); i++) + p_Tgec->addr |= ((uint64_t)p_FmMacParam->addr[i] << ((5-i) * 8)); + + p_Tgec->p_MemMap = (t_TgecMemMap *)UINT_TO_PTR(baseAddr); + p_Tgec->p_MiiMemMap = (t_TgecMiiAccessMemMap *)UINT_TO_PTR(baseAddr + TGEC_TO_MII_OFFSET); + p_Tgec->enetMode = p_FmMacParam->enetMode; + p_Tgec->macId = p_FmMacParam->macId; + p_Tgec->exceptions = DEFAULT_exceptions; + p_Tgec->mdioIrq = p_FmMacParam->mdioIrq; + p_Tgec->f_Exception = p_FmMacParam->f_Exception; + p_Tgec->f_Event = p_FmMacParam->f_Event; + p_Tgec->h_App = p_FmMacParam->h_App; + + return p_Tgec; +} --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/tgec.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/tgec.h @@ -0,0 +1,482 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File tgec.h + + @Description FM 10G MAC ... +*//***************************************************************************/ +#ifndef __TGEC_H +#define __TGEC_H + +#include "std_ext.h" +#include "error_ext.h" +#include "list_ext.h" +#include "tgec_mii_acc.h" +#include "fm_mac.h" + + +/* Interrupt Mask Register (IMASK) */ +#define IMASK_MDIO_SCAN_EVENTMDIO 0x00010000 /* MDIO_SCAN_EVENTMDIO scan event interrupt mask. + * 0 masked + * 1 enabled + */ +#define IMASK_MDIO_CMD_CMPL 0x00008000 /* 16 MDIO_CMD_CMPL MDIO command completion interrupt mask. + * 0 masked + * 1 enabled + */ +#define IMASK_REM_FAULT 0x00004000 /* 17 REM_FAULT Remote fault interrupt mask. + * 0 masked + * 1 enabled + */ +#define IMASK_LOC_FAULT 0x00002000 /* 18 LOC_FAULT Local fault interrupt mask. + * 0 masked + * 1 enabled + */ +#define IMASK_1TX_ECC_ER 0x00001000 /* 19 TX_ECC_ER Transmit frame ECC error interrupt mask. + * 0 masked + * 1 enabled + */ +#define IMASK_TX_FIFO_UNFL 0x00000800 /* 20 TX_FIFO_UNFL Transmit FIFO underflow interrupt mask. + * 0 masked + * 1 enabled + */ +#define IMASK_TX_FIFO_OVFL 0x00000400 /* 21 TX_FIFO_OVFL Transmit FIFO overflow interrupt mask. + * 0 masked + * 1 enabled + */ +#define IMASK_TX_ER 0x00000200 /* 22 TX_ER Transmit frame error interrupt mask. + * 0 masked + * 1 enabled + */ +#define IMASK_RX_FIFO_OVFL 0x00000100 /* 23 RX_FIFO_OVFL Receive FIFO overflow interrupt mask. + * 0 masked + * 1 enabled + */ +#define IMASK_RX_ECC_ER 0x00000080 /* 24 RX_ECC_ER Receive frame ECC error interrupt mask. + * 0 masked + * 1 enabled + */ +#define IMASK_RX_JAB_FRM 0x00000040 /* 25 RX_JAB_FRM Receive jabber frame interrupt mask. + * 0 masked + * 1 enabled + */ +#define IMASK_RX_OVRSZ_FRM 0x00000020 /* 26 RX_OVRSZ_FRM Receive oversized frame interrupt mask. + * 0 masked + * 1 enabled + */ +#define IMASK_RX_RUNT_FRM 0x00000010 /* 27 RX_RUNT_FRM Receive runt frame interrupt mask. + * 0 masked + * 1 enabled + */ +#define IMASK_RX_FRAG_FRM 0x00000008 /* 28 RX_FRAG_FRM Receive fragment frame interrupt mask. + * 0 masked + * 1 enabled + */ +#define IMASK_RX_LEN_ER 0x00000004 /* 29 RX_LEN_ER Receive payload length error interrupt mask. + * 0 masked + * 1 enabled + */ +#define IMASK_RX_CRC_ER 0x00000002 /* 30 RX_CRC_ER Receive CRC error interrupt mask. + * 0 masked + * 1 enabled + */ +#define IMASK_RX_ALIGN_ER 0x00000001 /* 31 RX_ALIGN_ER Receive alignment error interrupt mask. + * 0 masked + * 1 enabled + */ + +#define EVENTS_MASK ((uint32_t)(IMASK_MDIO_SCAN_EVENTMDIO | \ + IMASK_MDIO_CMD_CMPL | \ + IMASK_REM_FAULT | \ + IMASK_LOC_FAULT | \ + IMASK_1TX_ECC_ER | \ + IMASK_TX_FIFO_UNFL | \ + IMASK_TX_FIFO_OVFL | \ + IMASK_TX_ER | \ + IMASK_RX_FIFO_OVFL | \ + IMASK_RX_ECC_ER | \ + IMASK_RX_JAB_FRM | \ + IMASK_RX_OVRSZ_FRM | \ + IMASK_RX_RUNT_FRM | \ + IMASK_RX_FRAG_FRM | \ + IMASK_RX_LEN_ER | \ + IMASK_RX_CRC_ER | \ + IMASK_RX_ALIGN_ER)) + +#define GET_EXCEPTION_FLAG(bitMask, exception) switch(exception){ \ + case e_FM_MAC_EX_10G_MDIO_SCAN_EVENTMDIO: \ + bitMask = IMASK_MDIO_SCAN_EVENTMDIO; break; \ + case e_FM_MAC_EX_10G_MDIO_CMD_CMPL: \ + bitMask = IMASK_MDIO_CMD_CMPL ; break; \ + case e_FM_MAC_EX_10G_REM_FAULT: \ + bitMask = IMASK_REM_FAULT ; break; \ + case e_FM_MAC_EX_10G_LOC_FAULT: \ + bitMask = IMASK_LOC_FAULT ; break; \ + case e_FM_MAC_EX_10G_1TX_ECC_ER: \ + bitMask = IMASK_1TX_ECC_ER ; break; \ + case e_FM_MAC_EX_10G_TX_FIFO_UNFL: \ + bitMask = IMASK_TX_FIFO_UNFL ; break; \ + case e_FM_MAC_EX_10G_TX_FIFO_OVFL: \ + bitMask = IMASK_TX_FIFO_OVFL ; break; \ + case e_FM_MAC_EX_10G_TX_ER: \ + bitMask = IMASK_TX_ER ; break; \ + case e_FM_MAC_EX_10G_RX_FIFO_OVFL: \ + bitMask = IMASK_RX_FIFO_OVFL ; break; \ + case e_FM_MAC_EX_10G_RX_ECC_ER: \ + bitMask = IMASK_RX_ECC_ER ; break; \ + case e_FM_MAC_EX_10G_RX_JAB_FRM: \ + bitMask = IMASK_RX_JAB_FRM ; break; \ + case e_FM_MAC_EX_10G_RX_OVRSZ_FRM: \ + bitMask = IMASK_RX_OVRSZ_FRM ; break; \ + case e_FM_MAC_EX_10G_RX_RUNT_FRM: \ + bitMask = IMASK_RX_RUNT_FRM ; break; \ + case e_FM_MAC_EX_10G_RX_FRAG_FRM: \ + bitMask = IMASK_RX_FRAG_FRM ; break; \ + case e_FM_MAC_EX_10G_RX_LEN_ER: \ + bitMask = IMASK_RX_LEN_ER ; break; \ + case e_FM_MAC_EX_10G_RX_CRC_ER: \ + bitMask = IMASK_RX_CRC_ER ; break; \ + case e_FM_MAC_EX_10G_RX_ALIGN_ER: \ + bitMask = IMASK_RX_ALIGN_ER ; break; \ + default: bitMask = 0;break;} + + +/* Default Config Params */ +#define DEFAULT_wanModeEnable FALSE +#define DEFAULT_promiscuousModeEnable FALSE + + +#define DEFAULT_pauseForwardEnable FALSE +#define DEFAULT_pauseIgnore FALSE +#define DEFAULT_txAddrInsEnable FALSE + +#define DEFAULT_loopbackEnable FALSE +#define DEFAULT_cmdFrameEnable FALSE +#define DEFAULT_rxErrorDiscard FALSE +#define DEFAULT_phyTxenaOn FALSE +#define DEFAULT_sendIdleEnable FALSE +#define DEFAULT_noLengthCheckEnable TRUE +#define DEFAULT_lgthCheckNostdr FALSE +#define DEFAULT_timeStampEnable FALSE +#define DEFAULT_rxSfdAny FALSE +#define DEFAULT_rxPblFwd FALSE +#define DEFAULT_txPblFwd FALSE +#define DEFAULT_txIpgLength 12 + +#define DEFAULT_maxFrameLength 0x600 + +#define DEFAULT_debugMode FALSE +#define DEFAULT_pauseTime 0xf000 +#define DEFAULT_imask 0xf000 +#ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 +#define DEFAULT_skipFman11Workaround FALSE +#endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */ + +#define DEFAULT_exceptions ((uint32_t)(IMASK_MDIO_SCAN_EVENTMDIO | \ + IMASK_REM_FAULT | \ + IMASK_LOC_FAULT | \ + IMASK_1TX_ECC_ER | \ + IMASK_TX_FIFO_UNFL | \ + IMASK_TX_FIFO_OVFL | \ + IMASK_TX_ER | \ + IMASK_RX_FIFO_OVFL | \ + IMASK_RX_ECC_ER | \ + IMASK_RX_JAB_FRM | \ + IMASK_RX_OVRSZ_FRM | \ + IMASK_RX_RUNT_FRM | \ + IMASK_RX_FRAG_FRM | \ + IMASK_RX_CRC_ER | \ + IMASK_RX_ALIGN_ER)) + +#define MAX_PACKET_ALIGNMENT 31 +#define MAX_INTER_PACKET_GAP 0x7f +#define MAX_INTER_PALTERNATE_BEB 0x0f +#define MAX_RETRANSMISSION 0x0f +#define MAX_COLLISION_WINDOW 0x03ff + + +#define TGEC_NUM_OF_PADDRS 1 /* number of pattern match registers (entries) */ + +#define GROUP_ADDRESS 0x0000010000000000LL /* Group address bit indication */ + +#define HASH_TABLE_SIZE 512 /* Hash table size (= 32 bits * 8 regs) */ + +#define TGEC_TO_MII_OFFSET 0x1030 /* Offset from the MEM map to the MDIO mem map */ + +/* 10-gigabit Ethernet MAC Controller ID (10GEC_ID) */ +#define TGEC_ID_ID 0xffff0000 +#define TGEC_ID_MAC_VERSION 0x0000FF00 +#define TGEC_ID_MAC_REV 0x000000ff + +/* Command and Configuration Register (COMMAND_CONFIG) */ +#define CMD_CFG_TX_PBL_FWD 0x00800000 /* 08 Transmit Preamble Forwarding (custom preamble). + */ +#define CMD_CFG_RX_PBL_FWD 0x00400000 /* 09 Receive Preamble Forwarding (custom preamble). + */ +#define RX_SFD_ANY 0x00200000 /* 10 Enables, when set, that any character is allowed at the SFD position of the preamble and the frame will be accepted. + */ +#define CMD_CFG_EN_TIMESTAMP 0x00100000 /* 11 EN_TIMESTAMP IEEE 1588 timeStamp functionality control. + * 0 disabled + * 1 enabled + */ +#define CMD_CFG_TX_ADDR_INS_SEL 0x00080000 /* 12 TX_ADDR_INS_SEL Transmit MAC address select + * 0 insert using first MAC address + * 1 insert using second MAC address + */ +#define CMD_CFG_LEN_CHK_NOSTDR 0x00040000 /* 13 LEN_CHK_NOSTDR + */ +#define CMD_CFG_NO_LEN_CHK 0x00020000 /* 14 NO_LEN_CHK Payload length check disable + * 0 MAC compares the frame payload length with the frame length/type field. + * 1 Payload length check is disabled. + */ +#define CMD_CFG_SEND_IDLE 0x00010000 /* 15 SEND_IDLE Force idle generation + * 0 Normal operation. + * 1 MAC permanently sends XGMII idle sequences even when faults are received. + */ +#define CMD_CFG_PHY_TX_EN 0x00008000 /* 16 PHY_TX_EN PHY transmit enable + * 0 PHY transmit is disabled. + * 1 PHY transmit is enabled. + */ +#define CMD_CFG_RX_ER_DISC 0x00004000 /* 17 RX_ER_DISC Receive error frame discard enable + * 0 Received error frames are processed. + * 1 Any frame received with an error is discarded. + */ +#define CMD_CFG_CMD_FRM_EN 0x00002000 /* 18 CMD_FRM_EN Command frame reception enable + * 0 Only Pause frames are accepted (all other command frames are rejected). + * 1 All command frames are accepted. + */ +#define CMD_CFG_STAT_CLR 0x00001000 /* 19 STAT_CLR Clear statistics + * 0 Normal operations. + * 1 All statistics counters are cleared. + */ +#define CMD_CFG_LOOPBACK_EN 0x00000400 /* 21 LOOPBAC_EN PHY interface loopback enable + * 0 Configure PHY for normal operation. + * 1 Configure PHY for loopback mode. + */ +#define CMD_CFG_TX_ADDR_INS 0x00000200 /* 22 TX_ADDR_INS Transmit source MAC address insertion + * 0 MAC transmits the source MAC address unmodified. + * 1 MAC overwrites the source MAC address with address specified by COMMAND_CONFIG[TX_ADDR_INS_SEL]. + */ +#define CMD_CFG_PAUSE_IGNORE 0x00000100 /* 23 PAUSE_IGNORE Ignore Pause frame quanta + * 0 MAC stops transmit process for the duration specified in the Pause frame quanta of a received Pause frame. + * 1 MAC ignores received Pause frames. + */ +#define CMD_CFG_PAUSE_FWD 0x00000080 /* 24 PAUSE_FWD Terminate/forward received Pause frames + * 0 MAC terminates and discards received Pause frames. + * 1 MAC forwards Pause frames to the user application. + */ +#define CMD_CFG_PROMIS_EN 0x00000010 /* 27 PROMIS_EN Promiscuous operation enable + * 0 Unicast frames with a destination address not matching the core MAC address (defined by registers, MAC_ADDR_0 and MAC_ADDR_1) are rejected. + * 1 All frames are received without any MAC address filtering. + */ +#define CMD_CFG_WAN_MODE 0x00000008 /* 28 WAN_MODE WAN mode enable + * 0 Configure MAC for LAN mode. + * 1 Configure MAC for WAN mode. + */ +#define CMD_CFG_RX_EN 0x00000002 /* 30 RX_EN MAC receive path enable + * 0 MAC receive path is disabled + * 1 MAC receive path is enabled. + */ +#define CMD_CFG_TX_EN 0x00000001 /* 31 TX_EN MAC transmit path enable + * 0 MAC transmit path is disabled + * 1 MAC transmit path is enabled. + */ + +/* Hashtable Control Register (HASHTABLE_CTRL) */ +#define HASH_CTRL_MCAST_SHIFT 23 + +#define HASH_CTRL_MCAST_RD 0x00000400 /* 22 MCAST_READ Entry Multicast frame reception for the hash entry. + * 0 disabled + * 1 enabled + */ +#define HASH_CTRL_MCAST_EN 0x00000200 /* 22 MCAST_EN Multicast frame reception for the hash entry. + * 0 disabled + * 1 enabled + */ +#define HASH_ADDR_MASK 0x000001ff /* 23-31 HASH_ADDR Hash table address code. + */ + +/* Transmit Inter-Packet Gap Length Register (TX_IPG_LENGTH) */ +#define TX_IPG_LENGTH_MASK 0x000003ff + + + +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(push,1) +#endif /* defined(__MWERKS__) && ... */ +#define MEM_MAP_START + +/* + * 10G memory map + */ +typedef _Packed struct { +/* 10Ge General Control and Status */ + volatile uint32_t tgec_id; /* 0x000 10GEC_ID - Controller ID register */ + volatile uint32_t scratch; /* 0x004 */ + volatile uint32_t cmd_conf_ctrl; /* 0x008 COMMAND_CONFIG - Control and configuration register */ + volatile uint32_t mac_addr_0; /* 0x00C MAC_ADDR_0 - Lower 32 bits of the first 48-bit MAC address */ + volatile uint32_t mac_addr_1; /* 0x010 MAC_ADDR_1 - Upper 16 bits of the first 48-bit MAC address */ + volatile uint32_t maxfrm; /* 0x014 MAXFRM - Maximum frame length register */ + volatile uint32_t pause_quant; /* 0x018 PAUSE_QUANT - Pause quanta register */ + volatile uint32_t rx_fifo_sections; /* 0x01c */ + volatile uint32_t tx_fifo_sections; /* 0x020 */ + volatile uint32_t rx_fifo_almost_f_e; /* 0x024 */ + volatile uint32_t tx_fifo_almost_f_e; /* 0x028 */ + volatile uint32_t hashtable_ctrl; /* 0x02C HASHTABLE_CTRL - Hash table control register */ + volatile uint32_t mdio_cfg_status; /* 0x030 */ + volatile uint32_t mdio_command; /* 0x034 */ + volatile uint32_t mdio_data; /* 0x038 */ + volatile uint32_t mdio_regaddr; /* 0x03c */ + volatile uint32_t status; /* 0x040 */ + volatile uint32_t tx_ipg_len; /* 0x044 TX_IPG_LENGTH - Transmitter inter-packet-gap register */ + volatile uint32_t mac_addr_2; /* 0x048 MAC_ADDR_2 - Lower 32 bits of the second 48-bit MAC address */ + volatile uint32_t mac_addr_3; /* 0x04C MAC_ADDR_3 - Upper 16 bits of the second 48-bit MAC address */ + volatile uint32_t rx_fifo_ptr_rd; /* 0x050 */ + volatile uint32_t rx_fifo_ptr_wr; /* 0x054 */ + volatile uint32_t tx_fifo_ptr_rd; /* 0x058 */ + volatile uint32_t tx_fifo_ptr_wr; /* 0x05c */ + volatile uint32_t imask; /* 0x060 IMASK - Interrupt mask register */ + volatile uint32_t ievent; /* 0x064 IEVENT - Interrupt event register */ + volatile uint32_t udp_port; /* 0x068 Defines a UDP Port number. When an UDP/IP frame is received with a matching UDP destination port, the receive status indication pin ff_rx_ts_frm will be asserted.*/ + volatile uint32_t type_1588v2; /* 0x06c Type field for 1588v2 layer 2 frames. IEEE1588 defines the type 0x88f7 for 1588 frames. */ + volatile uint32_t TENGEC_RESERVED4[4]; +/*10Ge Statistics Counter */ + volatile uint64_t TFRM; /* 80 aFramesTransmittedOK */ + volatile uint64_t RFRM; /* 88 aFramesReceivedOK */ + volatile uint64_t RFCS; /* 90 aFrameCheckSequenceErrors */ + volatile uint64_t RALN; /* 98 aAlignmentErrors */ + volatile uint64_t TXPF; /* A0 aPAUSEMACCtrlFramesTransmitted */ + volatile uint64_t RXPF; /* A8 aPAUSEMACCtrlFramesReceived */ + volatile uint64_t RLONG; /* B0 aFrameTooLongErrors */ + volatile uint64_t RFLR; /* B8 aInRangeLengthErrors */ + volatile uint64_t TVLAN; /* C0 VLANTransmittedOK */ + volatile uint64_t RVLAN; /* C8 VLANReceivedOK */ + volatile uint64_t TOCT; /* D0 ifOutOctets */ + volatile uint64_t ROCT; /* D8 ifInOctets */ + volatile uint64_t RUCA; /* E0 ifInUcastPkts */ + volatile uint64_t RMCA; /* E8 ifInMulticastPkts */ + volatile uint64_t RBCA; /* F0 ifInBroadcastPkts */ + volatile uint64_t TERR; /* F8 ifOutErrors */ + volatile uint32_t TENGEC_RESERVED6[2]; + volatile uint64_t TUCA; /* 108 ifOutUcastPkts */ + volatile uint64_t TMCA; /* 110 ifOutMulticastPkts */ + volatile uint64_t TBCA; /* 118 ifOutBroadcastPkts */ + volatile uint64_t RDRP; /* 120 etherStatsDropEvents */ + volatile uint64_t REOCT; /* 128 etherStatsOctets */ + volatile uint64_t RPKT; /* 130 etherStatsPkts */ + volatile uint64_t TRUND; /* 138 etherStatsUndersizePkts */ + volatile uint64_t R64; /* 140 etherStatsPkts64Octets */ + volatile uint64_t R127; /* 148 etherStatsPkts65to127Octets */ + volatile uint64_t R255; /* 150 etherStatsPkts128to255Octets */ + volatile uint64_t R511; /* 158 etherStatsPkts256to511Octets */ + volatile uint64_t R1023; /* 160 etherStatsPkts512to1023Octets */ + volatile uint64_t R1518; /* 168 etherStatsPkts1024to1518Octets */ + volatile uint64_t R1519X; /* 170 etherStatsPkts1519toX */ + volatile uint64_t TROVR; /* 178 etherStatsOversizePkts */ + volatile uint64_t TRJBR; /* 180 etherStatsJabbers */ + volatile uint64_t TRFRG; /* 188 etherStatsFragments */ + volatile uint64_t RERR; /* 190 ifInErrors */ +} _PackedType t_TgecMemMap; + +#define MEM_MAP_END +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(pop) +#endif /* defined(__MWERKS__) && ... */ + + +typedef struct { + bool wanModeEnable; /* WAN Mode Enable. Sets WAN mode (1) or LAN mode (0, default) of operation. */ + bool promiscuousModeEnable; /* Enables MAC promiscuous operation. When set to '1', all frames are received without any MAC address filtering, when set to '0' (Reset value) Unicast Frames with a destination address not matching the Core MAC Address (MAC Address programmed in Registers MAC_ADDR_0 and MAC_ADDR_1 or the MAC address programmed in Registers MAC_ADDR_2 and MAC_ADDR_3 ) are rejected. */ + bool pauseForwardEnable; /* Terminate / Forward Pause Frames. If set to '1' pause frames are forwarded to the user application. When set to '0' (Reset value) pause frames are terminated and discarded within the MAC. */ + bool pauseIgnore; /* Ignore Pause Frame Quanta. If set to '1' received pause frames are ignored by the MAC. When set to '0' (Reset value) the transmit process is stopped for the amount of time specified in the pause quanta received within a pause frame. */ + bool txAddrInsEnable; /* Set Source MAC Address on Transmit. + If set to '1' the MAC overwrites the source MAC address received from the Client Interface with one of the MAC addresses (Refer to section 10.4) + If set to '0' (Reset value), the source MAC address from the Client Interface is transmitted unmodified to the line. */ + bool loopbackEnable; /* PHY Interface Loopback. When set to '1', the signal loop_ena is set to '1', when set to '0' (Reset value) the signal loop_ena is set to '0'. */ + bool cmdFrameEnable; /* Enables reception of all command frames. When set to '1' all Command Frames are accepted, when set to '0' (Reset Value) only Pause Frames are accepted and all other Command Frames are rejected. */ + bool rxErrorDiscard; /* Receive Errored Frame Discard Enable. When set to 1, any frame received with an error is discarded in the Core and not forwarded to the Client interface. When set to 0 (Reset value), errored Frames are forwarded to the Client interface with ff_rx_err asserted. */ + bool phyTxenaOn; /* PHY Transmit Enable. When set to '1', the signal phy_txena is set to '1', when set to '0' (Reset value) the signal phy_txena is set to '0' */ + bool sendIdleEnable; /* Force Idle Generation. When set to '1', the MAC permanently sends XGMII Idle sequences even when faults are received. */ + bool noLengthCheckEnable; /* Payload Length Check Disable. When set to 0 (Reset value), the Core checks the frame's payload length with the Frame Length/Type field, when set to 1, the payload length check is disabled. */ + bool lgthCheckNostdr; /* The Core interprets the Length/Type field differently depending on the value of this Bit */ + bool timeStampEnable; /* This bit selects between enabling and disabling the IEEE 1588 functionality. + 1: IEEE 1588 is enabled. + 0: IEEE 1588 is disabled. */ + bool rxSfdAny; /* Enables, when set, that any character is allowed at the SFD position of the preamble and the frame will be accepted. + If cleared (default) the frame is accepted only if the 8th byte of the preamble contains the SFD value 0xd5. If another value is received, the frame is discarded and the alignment error counter increments. */ + bool rxPblFwd; /* Receive Preamble Forwarding (custom preamble). + If set, the first word (ff_rx_sop) of every received frame contains the preamble of the frame. The frame data starts with the 2nd word from the FIFO. + If the bit is cleared (default) the preamble is removed from the frame before it is written into the receive FIFO. */ + bool txPblFwd; /* Transmit Preamble Forwarding (custom preamble). + If set, the first word written into the TX FIFO is considered as frame preamble. The MAC will not add a preamble in front of the frame. Note that bits 7:0 of the preamble word will still be overwritten with the XGMII start character upon transmission. + If cleared (default) the MAC */ + uint32_t txIpgLength; /*Transmit Inter-Packet-Gap (IPG) value. + A 6-bit value: Depending on LAN or WAN mode of operation (see COMMAND_CONFIG, 19.2.1 page 91) the value has the following meaning: + - LAN Mode: Number of octets in steps of 4. Valid values are 8, 12, 16, ... 100. DIC is fully supported (see 10.6.1 page 49) for any setting. A default of 12 (reset value) must be set to conform to IEEE802.3ae. Warning: When set to 8, PCS layers may not be able to perform clock rate compensation. + - WAN Mode: Stretch factor. Valid values are 4..15. The stretch factor is calculated as (value+1)*8. A default of 12 (reset value) must be set to conform to IEEE 802.3ae (i.e. 13*8=104). A larger value shrinks the IPG (increasing bandwidth). */ +/*.. */ + uint16_t maxFrameLength; + bool debugMode; + uint16_t pauseTime; +#ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 + bool skipFman11Workaround; +#endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */ +} t_TgecDriverParam; + +typedef struct { + t_FmMacControllerDriver fmMacControllerDriver; /**< Upper Mac control block */ + t_Handle h_App; /**< Handle to the upper layer application */ + t_TgecMemMap *p_MemMap; /**< pointer to 10G memory mapped registers. */ + t_TgecMiiAccessMemMap *p_MiiMemMap; /**< pointer to MII memory mapped registers. */ + uint64_t addr; /**< MAC address of device; */ + e_EnetMode enetMode; /**< Ethernet physical interface */ + t_FmMacExceptionCallback *f_Exception; + int mdioIrq; + t_FmMacExceptionCallback *f_Event; + bool indAddrRegUsed[TGEC_NUM_OF_PADDRS]; /**< Whether a particular individual address recognition register is being used */ + uint64_t paddr[TGEC_NUM_OF_PADDRS]; /**< MAC address for particular individual address recognition register */ + uint8_t numOfIndAddrInRegs; /**< Number of individual addresses in registers for this station. */ + t_EthHash *p_MulticastAddrHash; /**< pointer to driver's global address hash table */ + t_EthHash *p_UnicastAddrHash; /**< pointer to driver's individual address hash table */ + bool debugMode; + uint8_t macId; + uint32_t exceptions; + t_TgecDriverParam *p_TgecDriverParam; +} t_Tgec; + + +t_Error TGEC_MII_WritePhyReg(t_Handle h_Tgec, uint8_t phyAddr, uint8_t reg, uint16_t data); +t_Error TGEC_MII_ReadPhyReg(t_Handle h_Tgec, uint8_t phyAddr, uint8_t reg, uint16_t *p_Data); + + +#endif /* __TGEC_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/tgec_mii_acc.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/tgec_mii_acc.c @@ -0,0 +1,121 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +#include "error_ext.h" +#include "std_ext.h" +#include "fm_mac.h" +#include "tgec.h" +#include "xx_ext.h" + + +/*****************************************************************************/ +t_Error TGEC_MII_WritePhyReg(t_Handle h_Tgec, + uint8_t phyAddr, + uint8_t reg, + uint16_t data) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + t_TgecMiiAccessMemMap *p_MiiAccess; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_MiiMemMap, E_INVALID_HANDLE); + + p_MiiAccess = p_Tgec->p_MiiMemMap; + + while ((GET_UINT32(p_MiiAccess->mdio_cfg_status)) & MIIMIND_BUSY) + XX_UDelay (1); + + WRITE_UINT32(p_MiiAccess->mdio_command, phyAddr); + + WRITE_UINT32(p_MiiAccess->mdio_regaddr, reg); + + CORE_MemoryBarrier(); + + while ((GET_UINT32(p_MiiAccess->mdio_cfg_status)) & MIIMIND_BUSY) + XX_UDelay (1); + + WRITE_UINT32(p_MiiAccess->mdio_data, data); + + CORE_MemoryBarrier(); + + while ((GET_UINT32(p_MiiAccess->mdio_data)) & MIIDATA_BUSY) + XX_UDelay (1); + + return E_OK; +} + +/*****************************************************************************/ +t_Error TGEC_MII_ReadPhyReg(t_Handle h_Tgec, + uint8_t phyAddr, + uint8_t reg, + uint16_t *p_Data) +{ + t_Tgec *p_Tgec = (t_Tgec *)h_Tgec; + t_TgecMiiAccessMemMap *p_MiiAccess; + uint32_t cfg_status; + + SANITY_CHECK_RETURN_ERROR(p_Tgec, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Tgec->p_MiiMemMap, E_INVALID_HANDLE); + + p_MiiAccess = p_Tgec->p_MiiMemMap; + + while ((GET_UINT32(p_MiiAccess->mdio_cfg_status)) & MIIMIND_BUSY) + XX_UDelay (1); + + WRITE_UINT32(p_MiiAccess->mdio_command, phyAddr); + + WRITE_UINT32(p_MiiAccess->mdio_regaddr, reg); + + CORE_MemoryBarrier(); + + while ((GET_UINT32(p_MiiAccess->mdio_cfg_status)) & MIIMIND_BUSY) + XX_UDelay (1); + + WRITE_UINT32(p_MiiAccess->mdio_command, (uint32_t)(phyAddr | MIIMCOM_READ_CYCLE)); + + CORE_MemoryBarrier(); + + while ((GET_UINT32(p_MiiAccess->mdio_data)) & MIIDATA_BUSY) + XX_UDelay (1); + + *p_Data = (uint16_t)GET_UINT32(p_MiiAccess->mdio_data); + + cfg_status = GET_UINT32(p_MiiAccess->mdio_cfg_status); + + if (cfg_status & MIIMIND_READ_ERROR) + RETURN_ERROR(MINOR, E_INVALID_VALUE, + ("Read Error: phyAddr 0x%x, dev 0x%x, reg 0x%x, cfg_status 0x%x", + ((phyAddr & 0xe0)>>5), (phyAddr & 0x1f), reg, cfg_status)); + + return E_OK; +} --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/tgec_mii_acc.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/MAC/tgec_mii_acc.h @@ -0,0 +1,81 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __TGEC_MII_ACC_H +#define __TGEC_MII_ACC_H + +#include "std_ext.h" + + +/* MII Management Command Register */ +#define MIIMCOM_READ_POST_INCREMENT 0x00004000 +#define MIIMCOM_READ_CYCLE 0x00008000 +#define MIIMCOM_SCAN_CYCLE 0x00000800 +#define MIIMCOM_PREAMBLE_DISABLE 0x00000400 + +#define MIIMCOM_MDIO_HOLD_1_REG_CLK 0 +#define MIIMCOM_MDIO_HOLD_2_REG_CLK 1 +#define MIIMCOM_MDIO_HOLD_3_REG_CLK 2 +#define MIIMCOM_MDIO_HOLD_4_REG_CLK 3 + +#define MIIMCOM_DIV_MASK 0x0000ff00 +#define MIIMCOM_DIV_SHIFT 8 + +/* MII Management Indicator Register */ +#define MIIMIND_BUSY 0x00000001 +#define MIIMIND_READ_ERROR 0x00000002 + +#define MIIDATA_BUSY 0x80000000 + +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(push,1) +#endif /* defined(__MWERKS__) && ... */ +#define MEM_MAP_START + +/*----------------------------------------------------*/ +/* MII Configuration Control Memory Map Registers */ +/*----------------------------------------------------*/ +typedef _Packed struct t_TgecMiiAccessMemMap +{ + volatile uint32_t mdio_cfg_status; /* 0x030 */ + volatile uint32_t mdio_command; /* 0x034 */ + volatile uint32_t mdio_data; /* 0x038 */ + volatile uint32_t mdio_regaddr; /* 0x03c */ +} _PackedType t_TgecMiiAccessMemMap ; + +#define MEM_MAP_END +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(pop) +#endif /* defined(__MWERKS__) && ... */ + + +#endif /* __TGEC_MII_ACC_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/Makefile +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/Makefile @@ -0,0 +1,21 @@ +# +# Makefile for the Freescale Ethernet controllers +# +EXTRA_CFLAGS += -DVERSION=\"\" +# +#Include netcomm SW specific definitions +include $(srctree)/drivers/net/dpa/NetCommSw/ncsw_config.mk +NCSW_FM_INC = $(srctree)/drivers/net/dpa/NetCommSw/Peripherals/FM/inc + +EXTRA_CFLAGS += -I$(NCSW_FM_INC) + + +obj-y += fsl-ncsw-PFM1.o + +fsl-ncsw-PFM1-objs := fm.o fm_muram.o + +obj-y += MAC/ +obj-y += Pcd/ +obj-y += Port/ +obj-y += HC/ +obj-y += Rtc/ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/Pcd/Makefile +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/Pcd/Makefile @@ -0,0 +1,19 @@ +# +# Makefile for the Freescale Ethernet controllers +# +EXTRA_CFLAGS += -DVERSION=\"\" +# +#Include netcomm SW specific definitions +include $(srctree)/drivers/net/dpa/NetCommSw/ncsw_config.mk + +NCSW_FM_INC = $(srctree)/drivers/net/dpa/NetCommSw/Peripherals/FM/inc + +EXTRA_CFLAGS += -I$(NCSW_FM_INC) + +obj-y += fsl-ncsw-Pcd.o + +fsl-ncsw-Pcd-objs := fm_cc.o fm_kg.o fm_pcd.o fm_plcr.o fm_prs.o + + + + --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/Pcd/fm_cc.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/Pcd/fm_cc.c @@ -0,0 +1,3467 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fm_cc.c + + @Description FM CC ... +*//***************************************************************************/ +#include "std_ext.h" +#include "error_ext.h" +#include "string_ext.h" +#include "debug_ext.h" +#include "fm_pcd_ext.h" +#include "fm_muram_ext.h" + +#include "fm_common.h" +#include "fm_hc.h" +#include "fm_cc.h" + + +#if defined(FM_CAPWAP_SUPPORT) +#define FM_PCD_CC_MANIP +#endif /* defined(FM_CAPWAP_SUPPORT) || ... */ + + +t_Handle FmPcdCcTreeGetSavedManipParams(t_Handle h_FmTree, uint8_t manipIndx) +{ + t_FmPcdCcTree *p_FmPcdCcTree = (t_FmPcdCcTree *)h_FmTree; + + ASSERT_COND(p_FmPcdCcTree); + + return p_FmPcdCcTree->fmPcdCcSavedManipParams[manipIndx]; +} + +void FmPcdCcTreeSetSavedManipParams(t_Handle h_FmTree, t_Handle h_SavedManipParams, uint8_t manipIndx) +{ + t_FmPcdCcTree *p_FmPcdCcTree = (t_FmPcdCcTree *)h_FmTree; + + ASSERT_COND(p_FmPcdCcTree); + + p_FmPcdCcTree->fmPcdCcSavedManipParams[manipIndx] = h_SavedManipParams; +} + +uint8_t FmPcdCcGetParseCode(t_Handle h_CcNode) +{ + t_FmPcdCcNode *p_FmPcdCcNode = (t_FmPcdCcNode *)h_CcNode; + + ASSERT_COND(p_FmPcdCcNode); + return p_FmPcdCcNode->parseCode; +} + +uint8_t FmPcdCcGetOffset(t_Handle h_CcNode) +{ + t_FmPcdCcNode *p_FmPcdCcNode = (t_FmPcdCcNode *)h_CcNode; + + ASSERT_COND(p_FmPcdCcNode); + return p_FmPcdCcNode->offset; +} + +uint16_t FmPcdCcGetNumOfKeys(t_Handle h_CcNode) +{ + t_FmPcdCcNode *p_FmPcdCcNode = (t_FmPcdCcNode *)h_CcNode; + + ASSERT_COND(p_FmPcdCcNode); + return p_FmPcdCcNode->numOfKeys; +} +static void EnqueueNodeInfoToRelevantLst(t_List *p_List, t_CcNodeInformation *p_CcInfo) +{ + t_CcNodeInformation *p_CcInformation; + uint32_t intFlags; + + p_CcInformation = (t_CcNodeInformation *)XX_Malloc(sizeof(t_CcNodeInformation)); + if (p_CcInformation) + { + memset(p_CcInformation, 0, sizeof(t_CcNodeInformation)); + memcpy(p_CcInformation, p_CcInfo, sizeof(t_CcNodeInformation)); + INIT_LIST(&p_CcInformation->node); + + intFlags = XX_DisableAllIntr(); + LIST_AddToTail(&p_CcInformation->node, p_List); + XX_RestoreAllIntr(intFlags); + } + else + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("CC Node Information")); +} + + +static t_CcNodeInformation* FindNodeInfoInReleventLst(t_List *p_List, t_Handle h_Info) +{ + t_CcNodeInformation *p_CcInformation; + t_List *p_Pos; + uint32_t intFlags; + + intFlags = XX_DisableAllIntr(); + for (p_Pos = LIST_FIRST(p_List); p_Pos != (p_List); p_Pos = LIST_NEXT(p_Pos)) + { + p_CcInformation = CC_NODE_F_OBJECT(p_Pos); + ASSERT_COND(p_CcInformation->h_CcNode); + if(p_CcInformation->h_CcNode == h_Info) + { + XX_RestoreAllIntr(intFlags); + return p_CcInformation; + } + } + XX_RestoreAllIntr(intFlags); + return NULL; +} + +static void DequeueNodeInfoFromRelevantLst(t_List *p_List, t_Handle h_Info) +{ + t_CcNodeInformation *p_CcInformation = NULL; + uint32_t intFlags; + t_List *p_Pos; + + intFlags = XX_DisableAllIntr(); + if (LIST_IsEmpty(p_List)) + { + XX_RestoreAllIntr(intFlags); + return; + } + + for (p_Pos = LIST_FIRST(p_List); p_Pos != (p_List); p_Pos = LIST_NEXT(p_Pos)) + { + p_CcInformation = CC_NODE_F_OBJECT(p_Pos); + ASSERT_COND(p_CcInformation->h_CcNode); + if (p_CcInformation->h_CcNode == h_Info) + break; + } + if (p_CcInformation) + LIST_DelAndInit(&p_CcInformation->node); + XX_RestoreAllIntr(intFlags); +} + +static t_Error FmPcdCcSetRequiredAction(t_Handle h_FmPcd, uint32_t requiredAction, t_FmPcdCcNextEngineAndRequiredActionParams *p_CcNextEngineParamsTmp, + t_Handle h_AdTmp, uint16_t numOfEntries, t_Handle h_Tree) +{ + + t_AdOfTypeResult *p_AdTmp = (t_AdOfTypeResult *)h_AdTmp; + uint32_t tmpReg32; + t_Error err; + t_FmPcdCcNode *p_FmPcdCcNode; + int i = 0; + uint16_t tmp = 0; + uint16_t profileId; + uint8_t relativeSchemeId, physicalSchemeId; + t_CcNodeInformation ccNodeInfo; + + for(i = 0; i < numOfEntries; i++) + { + if(i == 0) + h_AdTmp = PTR_MOVE(h_AdTmp, i*FM_PCD_CC_AD_ENTRY_SIZE); + else + h_AdTmp = PTR_MOVE(h_AdTmp, FM_PCD_CC_AD_ENTRY_SIZE); + + if(p_CcNextEngineParamsTmp[i].shadowAction & requiredAction) + continue; + switch(p_CcNextEngineParamsTmp[i].nextEngineParams.nextEngine) + { + case(e_FM_PCD_CC): + if(requiredAction) + { + p_FmPcdCcNode = p_CcNextEngineParamsTmp[i].nextEngineParams.params.ccParams.h_CcNode; + ASSERT_COND(p_FmPcdCcNode); + if(p_FmPcdCcNode->shadowAction == requiredAction) + break; + if((requiredAction & UPDATE_CC_WITH_TREE) && !(p_FmPcdCcNode->shadowAction & UPDATE_CC_WITH_TREE)) + { + + ASSERT_COND(LIST_NumOfObjs(&p_FmPcdCcNode->ccTreesLst) == 0); + if(p_FmPcdCcNode->shadowAction & UPDATE_CC_WITH_DELETE_TREE) + p_FmPcdCcNode->shadowAction &= ~UPDATE_CC_WITH_DELETE_TREE; + memset(&ccNodeInfo, 0, sizeof(t_CcNodeInformation)); + ccNodeInfo.h_CcNode = h_Tree; + EnqueueNodeInfoToRelevantLst(&p_FmPcdCcNode->ccTreesLst, &ccNodeInfo); + p_CcNextEngineParamsTmp[i].shadowAction |= UPDATE_CC_WITH_TREE; + } + if((requiredAction & UPDATE_CC_WITH_DELETE_TREE) && !(p_FmPcdCcNode->shadowAction & UPDATE_CC_WITH_DELETE_TREE)) + { + ASSERT_COND(LIST_NumOfObjs(&p_FmPcdCcNode->ccTreesLst) == 1); + if(p_FmPcdCcNode->shadowAction & UPDATE_CC_WITH_TREE) + p_FmPcdCcNode->shadowAction &= ~UPDATE_CC_WITH_TREE; + DequeueNodeInfoFromRelevantLst(&p_FmPcdCcNode->ccTreesLst, h_Tree); + p_CcNextEngineParamsTmp[i].shadowAction |= UPDATE_CC_WITH_DELETE_TREE; + } + if(p_FmPcdCcNode->nextEngineAndRequiredAction[p_FmPcdCcNode->numOfKeys].nextEngineParams.nextEngine != e_FM_PCD_INVALID) + tmp = (uint8_t)(p_FmPcdCcNode->numOfKeys + 1); + else + tmp = p_FmPcdCcNode->numOfKeys; + err = FmPcdCcSetRequiredAction(h_FmPcd, requiredAction, p_FmPcdCcNode->nextEngineAndRequiredAction, p_FmPcdCcNode->h_AdTable, tmp, h_Tree); + if(err != E_OK) + return err; + p_FmPcdCcNode->shadowAction |= requiredAction; + } + break; + + case(e_FM_PCD_KG): + if((requiredAction & UPDATE_NIA_ENQ_WITHOUT_DMA) && !(p_CcNextEngineParamsTmp[i].shadowAction & UPDATE_NIA_ENQ_WITHOUT_DMA)) + { + physicalSchemeId = (uint8_t)(PTR_TO_UINT(p_CcNextEngineParamsTmp[i].nextEngineParams.params.kgParams.h_DirectScheme)-1); + relativeSchemeId = FmPcdKgGetRelativeSchemeId(h_FmPcd, physicalSchemeId); + if(relativeSchemeId == FM_PCD_KG_NUM_OF_SCHEMES) + RETURN_ERROR(MAJOR, E_NOT_IN_RANGE, NO_MSG); + if (!FmPcdKgIsSchemeValidSw(h_FmPcd, relativeSchemeId)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid direct scheme.")); + if(!KgIsSchemeAlwaysDirect(h_FmPcd, relativeSchemeId)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("For this action scheme has to be direct.")); + err = FmPcdKgCcGetSetParams(h_FmPcd, p_CcNextEngineParamsTmp[i].nextEngineParams.params.kgParams.h_DirectScheme, requiredAction); + if(err != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + p_CcNextEngineParamsTmp[i].shadowAction |= requiredAction; + } + break; + + case(e_FM_PCD_PLCR): + if((requiredAction & UPDATE_NIA_ENQ_WITHOUT_DMA) && !(p_CcNextEngineParamsTmp[i].shadowAction & UPDATE_NIA_ENQ_WITHOUT_DMA)) + { + if(!p_CcNextEngineParamsTmp[i].nextEngineParams.params.plcrParams.overrideParams) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("In this intialization only overrideFqid can be intiizliaes")); + if(!p_CcNextEngineParamsTmp[i].nextEngineParams.params.plcrParams.sharedProfile) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("In this intialization only overrideFqid can be intiizliaes")); + err = FmPcdPlcrGetAbsoluteProfileId(h_FmPcd, e_FM_PCD_PLCR_SHARED, NULL, p_CcNextEngineParamsTmp[i].nextEngineParams.params.plcrParams.newRelativeProfileId, &profileId); + if(err!= E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + err = FmPcdPlcrCcGetSetParams(h_FmPcd, profileId, requiredAction); + if(err != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + p_CcNextEngineParamsTmp[i].shadowAction |= requiredAction; + } + break; + + case(e_FM_PCD_DONE): + if((requiredAction & UPDATE_NIA_ENQ_WITHOUT_DMA) && !(p_CcNextEngineParamsTmp[i].shadowAction & UPDATE_NIA_ENQ_WITHOUT_DMA)) + { + tmpReg32 = GET_UINT32(p_AdTmp->nia); + if((tmpReg32 & (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME)) != (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Next engine was previosely assigned not as PCD_DONE")); + tmpReg32 |= NIA_BMI_AC_ENQ_FRAME_WITHOUT_DMA; + WRITE_UINT32(p_AdTmp->nia, tmpReg32); + p_CcNextEngineParamsTmp[i].shadowAction |= requiredAction; + } + break; + + default: + break; + } + } + + return E_OK; +} + +static t_Error CcUpdateParam(t_Handle h_FmPcd, + t_Handle h_FmPort, + t_FmPcdCcNextEngineAndRequiredActionParams *p_CcNextEngineParams, + uint16_t numOfEntries, + t_Handle h_Ad, + bool validate, + uint16_t level, + t_Handle h_FmTree, + bool modify) +{ + t_CcNodeInformation *p_CcNodeInfo; + t_FmPcdCcNode *p_FmPcdCcNode; + t_Error err; + uint16_t tmp = 0; + int i = 0; + + level++; + + if(numOfEntries) + { + for(i = 0; i < numOfEntries; i++) + { + if(i == 0) + h_Ad = PTR_MOVE(h_Ad, i*FM_PCD_CC_AD_ENTRY_SIZE); + else + h_Ad = PTR_MOVE(h_Ad, FM_PCD_CC_AD_ENTRY_SIZE); + + if(p_CcNextEngineParams[i].nextEngineParams.nextEngine == e_FM_PCD_CC) + { + p_FmPcdCcNode = p_CcNextEngineParams[i].nextEngineParams.params.ccParams.h_CcNode; + ASSERT_COND(p_FmPcdCcNode); + p_CcNodeInfo = FindNodeInfoInReleventLst(&p_FmPcdCcNode->ccTreesLst,h_FmTree); + ASSERT_COND(p_CcNodeInfo); + p_CcNodeInfo->index = level; +#ifdef FM_PCD_CC_MANIP + if(p_CcNextEngineParams[i].nextEngineParams.h_Manip) + { + err = FmPcdManipUpdate(h_FmPcd, h_FmPort, p_CcNextEngineParams[i].nextEngineParams.h_Manip, h_Ad, validate, p_CcNodeInfo->index, h_FmTree, modify); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + } +#endif /* FM_PCD_CC_MANIP */ + + if(p_FmPcdCcNode->nextEngineAndRequiredAction[p_FmPcdCcNode->numOfKeys].nextEngineParams.nextEngine != e_FM_PCD_INVALID) + tmp = (uint8_t)(p_FmPcdCcNode->numOfKeys + 1); + else + tmp = p_FmPcdCcNode->numOfKeys; + + err = CcUpdateParam(h_FmPcd, h_FmPort, p_FmPcdCcNode->nextEngineAndRequiredAction, tmp, p_FmPcdCcNode->h_AdTable, validate,level, h_FmTree, modify); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + } +#ifdef FM_PCD_CC_MANIP + else + { + if(p_CcNextEngineParams[i].nextEngineParams.h_Manip) + { + err = FmPcdManipUpdate(h_FmPcd, h_FmPort, p_CcNextEngineParams[i].nextEngineParams.h_Manip, h_Ad, validate, level,h_FmTree, modify); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + } + } +#endif /* FM_PCD_CC_MANIP */ + } + } + + return E_OK; +} +static bool IsNodeInModifiedState(t_Handle h_CcNode) +{ + t_FmPcdCcNode *p_CcNode = (t_FmPcdCcNode *)h_CcNode; + + ASSERT_COND(p_CcNode); + + return p_CcNode->modifiedState; +} + +static void UpdateNodeWithModifiedState(t_Handle h_CcNode, bool modifiedState) +{ + t_FmPcdCcNode *p_FmPcdCcNode = (t_FmPcdCcNode *)h_CcNode; + + ASSERT_COND(p_FmPcdCcNode); + + p_FmPcdCcNode->modifiedState = modifiedState; +} + +static ccPrivateInfo_t IcDefineCode(t_FmPcdCcNodeParams *p_CcNodeParam) +{ + switch (p_CcNodeParam->extractCcParams.extractNonHdr.action) + { + case(e_FM_PCD_ACTION_EXACT_MATCH): + switch(p_CcNodeParam->extractCcParams.extractNonHdr.src) + { + case(e_FM_PCD_EXTRACT_FROM_KEY): + return CC_PRIVATE_INFO_IC_KEY_EXACT_MATCH; + case(e_FM_PCD_EXTRACT_FROM_HASH): + return CC_PRIVATE_INFO_IC_HASH_EXACT_MATCH; + default: + return CC_PRIVATE_INFO_NONE; + } + case(e_FM_PCD_ACTION_INDEXED_LOOKUP): + switch(p_CcNodeParam->extractCcParams.extractNonHdr.src) + { + case(e_FM_PCD_EXTRACT_FROM_HASH): + return CC_PRIVATE_INFO_IC_HASH_INDEX_LOOKUP; + case(e_FM_PCD_EXTRACT_FROM_FLOW_ID): + return CC_PRIVATE_INFO_IC_DEQ_FQID_INDEX_LOOKUP; + default: + return CC_PRIVATE_INFO_NONE; + } + default: + break; + } + return CC_PRIVATE_INFO_NONE; +} + +static t_CcNodeInformation * DequeueAdditionalInfoFromRelevantLst(t_List *p_List) +{ + t_CcNodeInformation *p_CcNodeInfo = NULL; + uint32_t intFlags; + + intFlags = XX_DisableAllIntr(); + if (!LIST_IsEmpty(p_List)) + { + p_CcNodeInfo = CC_NODE_F_OBJECT(p_List->p_Next); + LIST_DelAndInit(&p_CcNodeInfo->node); + } + XX_RestoreAllIntr(intFlags); + return p_CcNodeInfo; +} + +static void ReleaseLst(t_List *p_List) +{ + t_CcNodeInformation *p_CcNodeInfo = NULL; + + if(!LIST_IsEmpty(p_List)) + { + p_CcNodeInfo = DequeueAdditionalInfoFromRelevantLst(p_List); + while (p_CcNodeInfo) + { + XX_Free(p_CcNodeInfo); + p_CcNodeInfo = DequeueAdditionalInfoFromRelevantLst(p_List); + } + } + LIST_DelAndInit(p_List); +} + +void FmPcdCcTreeReleaseLock(t_Handle h_FmPcdCcTree) +{ + RELEASE_LOCK(((t_FmPcdCcTree *)h_FmPcdCcTree)->lock); +} + +void FmPcdCcNodeTreeReleaseLock(t_List *p_List) +{ + t_List *p_Pos; + t_CcNodeInformation *p_CcNodeInfo; + t_Handle h_FmPcdCcTree; + + LIST_FOR_EACH(p_Pos, p_List) + { + p_CcNodeInfo = CC_NODE_F_OBJECT(p_Pos); + h_FmPcdCcTree = p_CcNodeInfo->h_CcNode; + FmPcdCcTreeReleaseLock(h_FmPcdCcTree); + } + ReleaseLst(p_List); +} + +static void DeleteNode(t_FmPcdCcNode *p_FmPcdCcNode) +{ + if(p_FmPcdCcNode) + { + if(p_FmPcdCcNode->p_GlblMask) + { + XX_Free(p_FmPcdCcNode->p_GlblMask); + p_FmPcdCcNode->p_GlblMask = NULL; + } + if(p_FmPcdCcNode->h_KeysMatchTable) + { + FM_MURAM_FreeMem(FmPcdGetMuramHandle(p_FmPcdCcNode->h_FmPcd), p_FmPcdCcNode->h_KeysMatchTable); + p_FmPcdCcNode->h_KeysMatchTable = NULL; + } + if(p_FmPcdCcNode->h_AdTable) + { + FM_MURAM_FreeMem(FmPcdGetMuramHandle(p_FmPcdCcNode->h_FmPcd), p_FmPcdCcNode->h_AdTable); + p_FmPcdCcNode->h_AdTable = NULL; + } + + ReleaseLst(&p_FmPcdCcNode->ccPrevNodesLst); + ReleaseLst(&p_FmPcdCcNode->ccTreeIdLst); + ReleaseLst(&p_FmPcdCcNode->ccTreesLst); + + XX_Free(p_FmPcdCcNode); + } +} + +static void DeleteTree(t_FmPcdCcTree *p_FmPcdTree, t_FmPcd *p_FmPcd) +{ + if(p_FmPcdTree) + { + if(p_FmPcdTree->ccTreeBaseAddr) + { + FM_MURAM_FreeMem(FmPcdGetMuramHandle(p_FmPcd), UINT_TO_PTR(p_FmPcdTree->ccTreeBaseAddr)); + p_FmPcdTree->ccTreeBaseAddr = 0; + } + + ReleaseLst(&p_FmPcdTree->fmPortsLst); + + XX_Free(p_FmPcdTree); + } +} + +static void UpdateNodeOwner(t_FmPcdCcNode *p_FmPcdCcNode, bool add) +{ + ASSERT_COND(p_FmPcdCcNode); + + if(add) + p_FmPcdCcNode->owners++; + else + { + ASSERT_COND(p_FmPcdCcNode->owners); + p_FmPcdCcNode->owners--; + } +} + +static void GetCcExtractKeySize(uint8_t parseCodeRealSize, uint8_t *parseCodeCcSize) +{ + if((parseCodeRealSize > 0) && (parseCodeRealSize < 2)) + *parseCodeCcSize = 1; + else if(parseCodeRealSize == 2) + *parseCodeCcSize = 2; + else if((parseCodeRealSize > 2) && (parseCodeRealSize <= 4)) + *parseCodeCcSize = 4; + else if((parseCodeRealSize > 4) && (parseCodeRealSize <= 8)) + *parseCodeCcSize = 8; + else if((parseCodeRealSize > 8) && (parseCodeRealSize <= 16)) + *parseCodeCcSize = 16; + else if((parseCodeRealSize > 16) && (parseCodeRealSize <= 24)) + *parseCodeCcSize = 24; + else if((parseCodeRealSize > 24) && (parseCodeRealSize <= 32)) + *parseCodeCcSize = 32; + else if((parseCodeRealSize > 32) && (parseCodeRealSize <= 40)) + *parseCodeCcSize = 40; + else if((parseCodeRealSize > 40) && (parseCodeRealSize <= 48)) + *parseCodeCcSize = 48; + else if((parseCodeRealSize > 48) && (parseCodeRealSize <= 56)) + *parseCodeCcSize = 56; + else + *parseCodeCcSize = 0; +} + +static void GetSizeHeaderField(e_NetHeaderType hdr,t_FmPcdFields field,uint8_t *parseCodeRealSize) +{ + switch(hdr) + { + case (HEADER_TYPE_ETH): + switch(field.eth) + { + case(NET_HEADER_FIELD_ETH_DA): + *parseCodeRealSize = 6; + break; + case(NET_HEADER_FIELD_ETH_SA): + *parseCodeRealSize = 6; + break; + case(NET_HEADER_FIELD_ETH_TYPE): + *parseCodeRealSize = 2; + break; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported1")); + *parseCodeRealSize = CC_SIZE_ILLEGAL; + break; + } + break; + case(HEADER_TYPE_PPPoE): + switch(field.pppoe) + { + case(NET_HEADER_FIELD_PPPoE_PID): + *parseCodeRealSize = 2; + break; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported1")); + *parseCodeRealSize = CC_SIZE_ILLEGAL; + break; + } + break; + case (HEADER_TYPE_VLAN): + switch(field.vlan) + { + case(NET_HEADER_FIELD_VLAN_TCI): + *parseCodeRealSize = 2; + break; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported2")); + *parseCodeRealSize = CC_SIZE_ILLEGAL; + break; + } + break; + case (HEADER_TYPE_MPLS): + switch(field.mpls) + { + case(NET_HEADER_FIELD_MPLS_LABEL_STACK): + *parseCodeRealSize = 4; + break; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported3")); + *parseCodeRealSize = CC_SIZE_ILLEGAL; + break; + } + break; + case (HEADER_TYPE_IPv4): + switch(field.ipv4) + { + case(NET_HEADER_FIELD_IPv4_DST_IP): + case(NET_HEADER_FIELD_IPv4_SRC_IP): + *parseCodeRealSize = 4; + break; + case(NET_HEADER_FIELD_IPv4_TOS): + case(NET_HEADER_FIELD_IPv4_PROTO): + *parseCodeRealSize = 1; + break; + case(NET_HEADER_FIELD_IPv4_DST_IP | NET_HEADER_FIELD_IPv4_SRC_IP): + *parseCodeRealSize = 8; + break; + case(NET_HEADER_FIELD_IPv4_TTL): + *parseCodeRealSize = 1; + break; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported4")); + *parseCodeRealSize = CC_SIZE_ILLEGAL; + break; + } + break; + case (HEADER_TYPE_IPv6): + switch(field.ipv6) + { + case(NET_HEADER_FIELD_IPv6_VER | NET_HEADER_FIELD_IPv6_FL | NET_HEADER_FIELD_IPv6_TC): + *parseCodeRealSize = 4; + break; + case(NET_HEADER_FIELD_IPv6_NEXT_HDR): + case(NET_HEADER_FIELD_IPv6_HOP_LIMIT): + *parseCodeRealSize = 1; + break; + case(NET_HEADER_FIELD_IPv6_DST_IP): + case(NET_HEADER_FIELD_IPv6_SRC_IP): + *parseCodeRealSize = 16; + break; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported5")); + *parseCodeRealSize = CC_SIZE_ILLEGAL; + break; + } + break; + case (HEADER_TYPE_GRE): + switch(field.gre) + { + case(NET_HEADER_FIELD_GRE_TYPE): + *parseCodeRealSize = 2; + break; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported6")); + *parseCodeRealSize = CC_SIZE_ILLEGAL; + break; + } + break; + case (HEADER_TYPE_MINENCAP): + switch(field.minencap) + { + case(NET_HEADER_FIELD_MINENCAP_TYPE): + *parseCodeRealSize = 1; + break; + case(NET_HEADER_FIELD_MINENCAP_DST_IP): + case(NET_HEADER_FIELD_MINENCAP_SRC_IP): + *parseCodeRealSize = 4; + break; + case(NET_HEADER_FIELD_MINENCAP_SRC_IP | NET_HEADER_FIELD_MINENCAP_DST_IP): + *parseCodeRealSize = 8; + break; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported7")); + *parseCodeRealSize = CC_SIZE_ILLEGAL; + break; + } + break; + case (HEADER_TYPE_TCP): + switch(field.tcp) + { + case(NET_HEADER_FIELD_TCP_PORT_SRC): + case(NET_HEADER_FIELD_TCP_PORT_DST): + *parseCodeRealSize = 2; + break; + case(NET_HEADER_FIELD_TCP_PORT_SRC | NET_HEADER_FIELD_TCP_PORT_DST): + *parseCodeRealSize = 4; + break; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported8")); + *parseCodeRealSize = CC_SIZE_ILLEGAL; + break; + } + break; + case (HEADER_TYPE_UDP): + switch(field.udp) + { + case(NET_HEADER_FIELD_UDP_PORT_SRC): + case(NET_HEADER_FIELD_UDP_PORT_DST): + *parseCodeRealSize = 2; + break; + case(NET_HEADER_FIELD_UDP_PORT_SRC | NET_HEADER_FIELD_UDP_PORT_DST): + *parseCodeRealSize = 4; + break; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported9")); + *parseCodeRealSize = CC_SIZE_ILLEGAL; + break; + } + break; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported10")); + *parseCodeRealSize = CC_SIZE_ILLEGAL; + break; + } +} + +static t_Error ValidateNextEngineParams(t_Handle h_FmPcd, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams) +{ + uint16_t absoluteProfileId; + t_Error err = E_OK; + uint8_t relativeSchemeId; + + switch(p_FmPcdCcNextEngineParams->nextEngine) + { + case(e_FM_PCD_INVALID): + err = E_NOT_SUPPORTED; + break; + case(e_FM_PCD_DONE): + if(p_FmPcdCcNextEngineParams->params.enqueueParams.action == e_FM_PCD_ENQ_FRAME) + { + if(p_FmPcdCcNextEngineParams->params.enqueueParams.overrideFqid && + !p_FmPcdCcNextEngineParams->params.enqueueParams.newFqid) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("not defined fqid for control flow for BMI next engine ")); + if(p_FmPcdCcNextEngineParams->params.enqueueParams.newFqid & ~0x00FFFFFF) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("fqidForCtrlFlow must be between 1 and 2^24-1")); + } + break; + case(e_FM_PCD_KG): + relativeSchemeId = FmPcdKgGetRelativeSchemeId(h_FmPcd, (uint8_t)(PTR_TO_UINT(p_FmPcdCcNextEngineParams->params.kgParams.h_DirectScheme)-1)); + if(relativeSchemeId == FM_PCD_KG_NUM_OF_SCHEMES) + RETURN_ERROR(MAJOR, E_NOT_IN_RANGE, NO_MSG); + + if(!FmPcdKgIsSchemeValidSw(h_FmPcd, relativeSchemeId)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("not valid schemeIndex in KG next engine param")); + if(!KgIsSchemeAlwaysDirect(h_FmPcd, relativeSchemeId)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("CC Node may point only to a scheme that is always direct.")); + break; + case(e_FM_PCD_PLCR): + if(p_FmPcdCcNextEngineParams->params.plcrParams.overrideParams) + { + /* if private policer profile, it may be uninitialized yet, therefor no checks are done at this stage */ + if(p_FmPcdCcNextEngineParams->params.plcrParams.sharedProfile) + { + err = FmPcdPlcrGetAbsoluteProfileId(h_FmPcd,e_FM_PCD_PLCR_SHARED,NULL,p_FmPcdCcNextEngineParams->params.plcrParams.newRelativeProfileId, &absoluteProfileId); + if(err) + RETURN_ERROR(MAJOR, err, ("Shared profile offset is out of range")); + if(!FmPcdPlcrIsProfileValid(h_FmPcd, absoluteProfileId)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid profile")); + } + else + { + } + /* TODO - add check according to the revision of the chip. + if(!p_FmPcdCcNextEngineParams->params.plcrParams.newFqid || + (p_FmPcdCcNextEngineParams->params.plcrParams.newFqid & ~0x00FFFFFF)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("newFqid must be between 1 and 2^24-1")); + */ + } + break; + case(e_FM_PCD_CC): + if(!p_FmPcdCcNextEngineParams->params.ccParams.h_CcNode) + RETURN_ERROR(MAJOR, E_NULL_POINTER, ("handler to next Node is NULL")); + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Next engine is not correct")); + } + return err; +} + +static uint8_t GetGenParseCode(e_FmPcdExtractFrom src, uint32_t offset, bool glblMask, uint8_t *parseArrayOffset, bool fromIc, ccPrivateInfo_t icCode) +{ + if(!fromIc) + { + switch(src) + { + case(e_FM_PCD_EXTRACT_FROM_FRAME_START): + if(glblMask) + return CC_PC_GENERIC_WITH_MASK ; + else + return CC_PC_GENERIC_WITHOUT_MASK; + case(e_FM_PCD_EXTRACT_FROM_CURR_END_OF_PARSE): + *parseArrayOffset = CC_PC_PR_NEXT_HEADER_OFFSET; + if(offset) + return CC_PR_OFFSET; + else + return CC_PR_WITHOUT_OFFSET; + default: + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal 'extract from' src")); + return CC_PC_ILLEGAL; + } + } + else + { + switch (icCode) + { + case(CC_PRIVATE_INFO_IC_KEY_EXACT_MATCH): + *parseArrayOffset = 0x50; + return CC_PC_GENERIC_IC_GMASK; + case(CC_PRIVATE_INFO_IC_HASH_EXACT_MATCH): + *parseArrayOffset = 0x48; + return CC_PC_GENERIC_IC_GMASK; + case(CC_PRIVATE_INFO_IC_HASH_INDEX_LOOKUP): + *parseArrayOffset = 0x48; + return CC_PC_GENERIC_IC_HASH_INDEXED; + case(CC_PRIVATE_INFO_IC_DEQ_FQID_INDEX_LOOKUP): + *parseArrayOffset = 0x16; + return CC_PC_GENERIC_IC_HASH_INDEXED; + default: + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal 'extract from' src")); + break; + } + } + return CC_PC_ILLEGAL; +} + +static uint8_t GetFullFieldParseCode(e_NetHeaderType hdr, e_FmPcdHdrIndex index, t_FmPcdFields field) +{ + + switch(hdr) + { + case(HEADER_TYPE_NONE): + ASSERT_COND(FALSE); + return CC_PC_ILLEGAL; + + case(HEADER_TYPE_ETH): + switch(field.eth) + { + case(NET_HEADER_FIELD_ETH_DA): + return CC_PC_FF_MACDST; + case(NET_HEADER_FIELD_ETH_SA): + return CC_PC_FF_MACSRC; + case(NET_HEADER_FIELD_ETH_TYPE): + return CC_PC_FF_ETYPE; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported")); + return CC_PC_ILLEGAL; + } + + case(HEADER_TYPE_VLAN): + switch(field.vlan) + { + case(NET_HEADER_FIELD_VLAN_TCI): + if((index == e_FM_PCD_HDR_INDEX_NONE) || (index == e_FM_PCD_HDR_INDEX_1)) + return CC_PC_FF_TCI1; + if(index == e_FM_PCD_HDR_INDEX_LAST) + return CC_PC_FF_TCI2; + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported")); + return CC_PC_ILLEGAL; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported")); + return CC_PC_ILLEGAL; + } + + case(HEADER_TYPE_MPLS): + switch(field.mpls) + { + case(NET_HEADER_FIELD_MPLS_LABEL_STACK): + if((index == e_FM_PCD_HDR_INDEX_NONE) || (index == e_FM_PCD_HDR_INDEX_1)) + return CC_PC_FF_MPLS1; + if(index == e_FM_PCD_HDR_INDEX_LAST) + return CC_PC_FF_MPLS_LAST; + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Illegal MPLS index")); + return CC_PC_ILLEGAL; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported")); + return CC_PC_ILLEGAL; + } + + case(HEADER_TYPE_IPv4): + switch(field.ipv4) + { + case(NET_HEADER_FIELD_IPv4_DST_IP): + if((index == e_FM_PCD_HDR_INDEX_NONE) || (index == e_FM_PCD_HDR_INDEX_1)) + return CC_PC_FF_IPV4DST1; + if(index == e_FM_PCD_HDR_INDEX_2) + return CC_PC_FF_IPV4DST2; + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Illegal IPv4 index")); + return CC_PC_ILLEGAL; + case(NET_HEADER_FIELD_IPv4_TOS): + if((index == e_FM_PCD_HDR_INDEX_NONE) || (index == e_FM_PCD_HDR_INDEX_1)) + return CC_PC_FF_IPV4IPTOS_TC1; + if(index == e_FM_PCD_HDR_INDEX_2) + return CC_PC_FF_IPV4IPTOS_TC2; + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Illegal IPv4 index")); + return CC_PC_ILLEGAL; + case(NET_HEADER_FIELD_IPv4_PROTO): + if((index == e_FM_PCD_HDR_INDEX_NONE) || (index == e_FM_PCD_HDR_INDEX_1)) + return CC_PC_FF_IPV4PTYPE1; + if(index == e_FM_PCD_HDR_INDEX_2) + return CC_PC_FF_IPV4PTYPE2; + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Illegal IPv4 index")); + return CC_PC_ILLEGAL; + case(NET_HEADER_FIELD_IPv4_SRC_IP): + if((index == e_FM_PCD_HDR_INDEX_NONE) || (index == e_FM_PCD_HDR_INDEX_1)) + return CC_PC_FF_IPV4SRC1; + if(index == e_FM_PCD_HDR_INDEX_2) + return CC_PC_FF_IPV4SRC2; + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Illegal IPv4 index")); + return CC_PC_ILLEGAL; + case(NET_HEADER_FIELD_IPv4_SRC_IP | NET_HEADER_FIELD_IPv4_DST_IP): + if((index == e_FM_PCD_HDR_INDEX_NONE) || (index == e_FM_PCD_HDR_INDEX_1)) + return CC_PC_FF_IPV4SRC1_IPV4DST1; + if(index == e_FM_PCD_HDR_INDEX_2) + return CC_PC_FF_IPV4SRC2_IPV4DST2; + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Illegal IPv4 index")); + return CC_PC_ILLEGAL; + case(NET_HEADER_FIELD_IPv4_TTL): + return CC_PC_FF_IPV4TTL; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported")); + return CC_PC_ILLEGAL; + } + + case(HEADER_TYPE_IPv6): + switch(field.ipv6) + { + case(NET_HEADER_FIELD_IPv6_VER | NET_HEADER_FIELD_IPv6_FL | NET_HEADER_FIELD_IPv6_TC): + if((index == e_FM_PCD_HDR_INDEX_NONE) || (index == e_FM_PCD_HDR_INDEX_1)) + return CC_PC_FF_IPTOS_IPV6TC1_IPV6FLOW1; + if(index == e_FM_PCD_HDR_INDEX_2) + return CC_PC_FF_IPTOS_IPV6TC2_IPV6FLOW2; + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Illegal IPv6 index")); + return CC_PC_ILLEGAL; + case(NET_HEADER_FIELD_IPv6_NEXT_HDR): + if((index == e_FM_PCD_HDR_INDEX_NONE) || (index == e_FM_PCD_HDR_INDEX_1)) + return CC_PC_FF_IPV6PTYPE1; + if(index == e_FM_PCD_HDR_INDEX_2) + return CC_PC_FF_IPV6PTYPE2; + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Illegal IPv6 index")); + return CC_PC_ILLEGAL; + case(NET_HEADER_FIELD_IPv6_DST_IP): + if((index == e_FM_PCD_HDR_INDEX_NONE) || (index == e_FM_PCD_HDR_INDEX_1)) + return CC_PC_FF_IPV6DST1; + if(index == e_FM_PCD_HDR_INDEX_2) + return CC_PC_FF_IPV6DST2; + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Illegal IPv6 index")); + return CC_PC_ILLEGAL; + case(NET_HEADER_FIELD_IPv6_SRC_IP): + if((index == e_FM_PCD_HDR_INDEX_NONE) || (index == e_FM_PCD_HDR_INDEX_1)) + return CC_PC_FF_IPV6SRC1; + if(index == e_FM_PCD_HDR_INDEX_2) + return CC_PC_FF_IPV6SRC2; + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Illegal IPv6 index")); + return CC_PC_ILLEGAL; + case(NET_HEADER_FIELD_IPv6_HOP_LIMIT): + return CC_PC_FF_IPV6HOP_LIMIT; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported")); + return CC_PC_ILLEGAL; + } + + case(HEADER_TYPE_GRE): + switch(field.gre) + { + case(NET_HEADER_FIELD_GRE_TYPE): + return CC_PC_FF_GREPTYPE; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported")); + return CC_PC_ILLEGAL; + } + case(HEADER_TYPE_MINENCAP): + switch(field.minencap) + { + case(NET_HEADER_FIELD_MINENCAP_TYPE): + return CC_PC_FF_MINENCAP_PTYPE; + case(NET_HEADER_FIELD_MINENCAP_DST_IP): + return CC_PC_FF_MINENCAP_IPDST; + case(NET_HEADER_FIELD_MINENCAP_SRC_IP): + return CC_PC_FF_MINENCAP_IPSRC; + case(NET_HEADER_FIELD_MINENCAP_SRC_IP | NET_HEADER_FIELD_MINENCAP_DST_IP): + return CC_PC_FF_MINENCAP_IPSRC_IPDST; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported")); + return CC_PC_ILLEGAL; + } + + case(HEADER_TYPE_TCP): + switch(field.tcp) + { + case(NET_HEADER_FIELD_TCP_PORT_SRC): + return CC_PC_FF_L4PSRC; + case(NET_HEADER_FIELD_TCP_PORT_DST): + return CC_PC_FF_L4PDST; + case(NET_HEADER_FIELD_TCP_PORT_DST | NET_HEADER_FIELD_TCP_PORT_SRC): + return CC_PC_FF_L4PSRC_L4PDST; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported")); + return CC_PC_ILLEGAL; + } + + case(HEADER_TYPE_PPPoE): + switch(field.pppoe) + { + case(NET_HEADER_FIELD_PPPoE_PID): + return CC_PC_FF_PPPPID; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported")); + return CC_PC_ILLEGAL; + } + + case(HEADER_TYPE_UDP): + switch(field.udp) + { + case(NET_HEADER_FIELD_UDP_PORT_SRC): + return CC_PC_FF_L4PSRC; + case(NET_HEADER_FIELD_UDP_PORT_DST): + return CC_PC_FF_L4PDST; + case(NET_HEADER_FIELD_UDP_PORT_DST | NET_HEADER_FIELD_UDP_PORT_SRC): + return CC_PC_FF_L4PSRC_L4PDST; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported")); + return CC_PC_ILLEGAL; + } + + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported")); + return CC_PC_ILLEGAL; + } +} + +static uint8_t GetPrParseCode(e_NetHeaderType hdr, e_FmPcdHdrIndex hdrIndex, uint32_t offset, bool glblMask, uint8_t *parseArrayOffset) +{ + bool offsetRelevant = FALSE; + + if(offset) + offsetRelevant = TRUE; + + switch(hdr){ + case(HEADER_TYPE_NONE): + ASSERT_COND(FALSE); + return CC_PC_ILLEGAL; + case(HEADER_TYPE_ETH): + *parseArrayOffset = (uint8_t)CC_PC_PR_ETH_OFFSET; + break; + case(HEADER_TYPE_USER_DEFINED_SHIM1): + if(offset || glblMask) + *parseArrayOffset = (uint8_t)CC_PC_PR_USER_DEFINED_SHIM1_OFFSET; + else + return CC_PC_PR_SHIM1; + break; + case(HEADER_TYPE_USER_DEFINED_SHIM2): + if(offset || glblMask) + *parseArrayOffset = (uint8_t)CC_PC_PR_USER_DEFINED_SHIM2_OFFSET; + else + return CC_PC_PR_SHIM2; + break; + case(HEADER_TYPE_LLC_SNAP): + *parseArrayOffset = CC_PC_PR_USER_LLC_SNAP_OFFSET; + break; + case(HEADER_TYPE_PPPoE): + *parseArrayOffset = CC_PC_PR_PPPOE_OFFSET; + break; + case(HEADER_TYPE_MPLS): + if((hdrIndex == e_FM_PCD_HDR_INDEX_NONE) || (hdrIndex == e_FM_PCD_HDR_INDEX_1)) + *parseArrayOffset = CC_PC_PR_MPLS1_OFFSET; + else if(hdrIndex == e_FM_PCD_HDR_INDEX_LAST) + *parseArrayOffset = CC_PC_PR_MPLS_LAST_OFFSET; + else + { + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Illegal MPLS header index")); + return CC_PC_ILLEGAL; + } + break; + case(HEADER_TYPE_IPv4): + case(HEADER_TYPE_IPv6): + if((hdrIndex == e_FM_PCD_HDR_INDEX_NONE) || (hdrIndex == e_FM_PCD_HDR_INDEX_1)) + *parseArrayOffset = CC_PC_PR_IP1_OFFSET; + else if(hdrIndex == e_FM_PCD_HDR_INDEX_2) + *parseArrayOffset = CC_PC_PR_IP_LAST_OFFSET; + else + { + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Illegal IP header index")); + return CC_PC_ILLEGAL; + + } + break; + case(HEADER_TYPE_MINENCAP): + *parseArrayOffset = CC_PC_PR_MINENC_OFFSET; + break; + case(HEADER_TYPE_GRE): + *parseArrayOffset = CC_PC_PR_GRE_OFFSET; + break; + case(HEADER_TYPE_TCP): + case(HEADER_TYPE_UDP): + case(HEADER_TYPE_IPSEC_AH): + case(HEADER_TYPE_IPSEC_ESP): + case(HEADER_TYPE_DCCP): + case(HEADER_TYPE_SCTP): + *parseArrayOffset = CC_PC_PR_L4_OFFSET; + break; + + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Illegal IP header for this type of operation")); + return CC_PC_ILLEGAL; + } + + if(offsetRelevant) + return CC_PR_OFFSET; + else + return CC_PR_WITHOUT_OFFSET; +} + +static uint8_t GetFieldParseCode(e_NetHeaderType hdr, t_FmPcdFields field, uint32_t offset, uint8_t *parseArrayOffset, e_FmPcdHdrIndex hdrIndex) +{ + bool offsetRelevant = FALSE; + + if(offset) + offsetRelevant = TRUE; + + switch(hdr) + { + case(HEADER_TYPE_NONE): + ASSERT_COND(FALSE); + case(HEADER_TYPE_ETH): + switch(field.eth) + { + case(NET_HEADER_FIELD_ETH_TYPE): + *parseArrayOffset = CC_PC_PR_ETYPE_LAST_OFFSET; + break; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported")); + return CC_PC_ILLEGAL; + } + break; + case(HEADER_TYPE_VLAN): + switch(field.vlan) + { + case(NET_HEADER_FIELD_VLAN_TCI): + if((hdrIndex == e_FM_PCD_HDR_INDEX_NONE) || (hdrIndex == e_FM_PCD_HDR_INDEX_1)) + *parseArrayOffset = CC_PC_PR_VLAN1_OFFSET; + else if(hdrIndex == e_FM_PCD_HDR_INDEX_LAST) + *parseArrayOffset = CC_PC_PR_VLAN2_OFFSET; + break; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Extraction not supported")); + return CC_PC_ILLEGAL; + } + break; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Illegal header ")); + return CC_PC_ILLEGAL; + } + if(offsetRelevant) + return CC_PR_OFFSET; + else + return CC_PR_WITHOUT_OFFSET; +} + +static void FillAdOfTypeResult(t_Handle p_Ad, t_FmPcd *p_FmPcd, t_FmPcdCcNextEngineParams *p_CcNextEngineParams) +{ + t_AdOfTypeResult *p_AdResult = (t_AdOfTypeResult*)p_Ad; + uint32_t tmp = 0, tmpNia = 0; + uint16_t profileId; + t_Handle p_AdNewPtr = NULL; + + p_AdNewPtr = p_AdResult; + +#ifdef FM_PCD_CC_MANIP + if (p_CcNextEngineParams->h_Manip) + FmPcdManipUpdateAdResultForCc(p_CcNextEngineParams->h_Manip, p_Ad, &p_AdNewPtr); +#endif /* FM_PCD_CC_MANIP */ + + if(p_AdNewPtr) + { + switch(p_CcNextEngineParams->nextEngine) + { + case(e_FM_PCD_DONE): + if(p_CcNextEngineParams->params.enqueueParams.action == e_FM_PCD_ENQ_FRAME) + { + if(p_CcNextEngineParams->params.enqueueParams.overrideFqid) + { + tmp = FM_PCD_AD_RESULT_CONTRL_FLOW_TYPE; + tmp |= p_CcNextEngineParams->params.enqueueParams.newFqid; + } + else + { + tmp = FM_PCD_AD_RESULT_DATA_FLOW_TYPE; + tmp |= FM_PCD_AD_RESULT_PLCR_DIS; + } + } + if(p_CcNextEngineParams->params.enqueueParams.action == e_FM_PCD_DROP_FRAME) + tmpNia |= (NIA_ENG_BMI |NIA_BMI_AC_DISCARD); + else + tmpNia |= (NIA_ENG_BMI |NIA_BMI_AC_ENQ_FRAME); + if(p_CcNextEngineParams->params.enqueueParams.statisticsEn) + tmpNia |= FM_PCD_AD_RESULT_EXTENDED_MODE | FM_PCD_AD_RESULT_STATISTICS_EN; + break; + case(e_FM_PCD_KG): + if(p_CcNextEngineParams->params.kgParams.overrideFqid) + { + tmp = FM_PCD_AD_RESULT_CONTRL_FLOW_TYPE; + tmp |= p_CcNextEngineParams->params.kgParams.newFqid; + } + else + { + tmp = FM_PCD_AD_RESULT_DATA_FLOW_TYPE; + tmp |= FM_PCD_AD_RESULT_PLCR_DIS; + } + tmpNia = NIA_KG_DIRECT; + tmpNia |= NIA_ENG_KG; + tmpNia |= (uint8_t)(PTR_TO_UINT(p_CcNextEngineParams->params.kgParams.h_DirectScheme)-1); + if(p_CcNextEngineParams->params.kgParams.statisticsEn) + tmpNia |= FM_PCD_AD_RESULT_EXTENDED_MODE | FM_PCD_AD_RESULT_STATISTICS_EN; + break; + case(e_FM_PCD_PLCR): + tmp = 0; + if(p_CcNextEngineParams->params.plcrParams.overrideParams) + { + tmp = FM_PCD_AD_RESULT_CONTRL_FLOW_TYPE; + + /* if private policer profile, it may be uninitialized yet, therefor no checks are done at this stage */ + if(p_CcNextEngineParams->params.plcrParams.sharedProfile) + { + tmpNia |= NIA_PLCR_ABSOLUTE; + FmPcdPlcrGetAbsoluteProfileId((t_Handle)p_FmPcd,e_FM_PCD_PLCR_SHARED,NULL,p_CcNextEngineParams->params.plcrParams.newRelativeProfileId, &profileId); + } + else + profileId = p_CcNextEngineParams->params.plcrParams.newRelativeProfileId; + + tmp |= p_CcNextEngineParams->params.plcrParams.newFqid; + WRITE_UINT32(p_AdResult->plcrProfile,(uint32_t)((uint32_t)profileId << FM_PCD_AD_PROFILEID_FOR_CNTRL_SHIFT)); + } + else + tmp = FM_PCD_AD_RESULT_DATA_FLOW_TYPE; + tmpNia |= NIA_ENG_PLCR | p_CcNextEngineParams->params.plcrParams.newRelativeProfileId; + if(p_CcNextEngineParams->params.kgParams.statisticsEn) + tmpNia |= FM_PCD_AD_RESULT_EXTENDED_MODE | FM_PCD_AD_RESULT_STATISTICS_EN; + break; + default: + return; + } + WRITE_UINT32(p_AdResult->fqid, tmp); + +#ifdef FM_PCD_CC_MANIP + if(p_CcNextEngineParams->h_Manip) + { + tmp = GET_UINT32(p_AdResult->plcrProfile); + tmp |= (uint32_t)(XX_VirtToPhys(p_AdNewPtr) - (p_FmPcd->physicalMuramBase)) >> 4; + WRITE_UINT32(p_AdResult->plcrProfile, tmp); + + tmpNia |= FM_PCD_AD_RESULT_EXTENDED_MODE; + tmpNia |= FM_PCD_AD_RESULT_NADEN; + } +#endif /* FM_PCD_CC_MANIP */ + + WRITE_UINT32(p_AdResult->nia, tmpNia); + } +} + +static void FillAdOfTypeContLookup(t_Handle p_Ad, t_Handle h_FmPcd, t_Handle p_FmPcdCcNode, t_Handle h_Manip) +{ + t_FmPcdCcNode *p_Node = (t_FmPcdCcNode *)p_FmPcdCcNode; + t_AdOfTypeContLookup *p_AdContLookup = (t_AdOfTypeContLookup *)p_Ad; + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t tmpReg32; + t_Handle p_AdNewPtr = NULL; + + p_AdNewPtr = p_AdContLookup; + +#ifdef FM_PCD_CC_MANIP + if (h_Manip) + FmPcdManipUpdateAdContLookupForCc(h_Manip, p_Ad, &p_AdNewPtr, (uint32_t)((XX_VirtToPhys(p_Node->h_AdTable) - p_FmPcd->physicalMuramBase))); +#else + UNUSED(h_Manip); +#endif /* FM_PCD_CC_MANIP */ + + if(p_AdNewPtr) + { + tmpReg32 = 0; + tmpReg32 |= FM_PCD_AD_CONT_LOOKUP_TYPE; + tmpReg32 |= p_Node->sizeOfExtraction ? ((p_Node->sizeOfExtraction - 1) << 24) : 0; + tmpReg32 |= (uint32_t)(XX_VirtToPhys(p_Node->h_AdTable) - p_FmPcd->physicalMuramBase); + WRITE_UINT32(p_AdContLookup->ccAdBase, tmpReg32); + + tmpReg32 = 0; + tmpReg32 |= p_Node->numOfKeys << 24; + tmpReg32 |= (p_Node->lclMask ? FM_PCD_AD_CONT_LOOKUP_LCL_MASK : 0); + tmpReg32 |= p_Node->h_KeysMatchTable ? + (uint32_t)(XX_VirtToPhys(p_Node->h_KeysMatchTable) - p_FmPcd->physicalMuramBase) : 0; + WRITE_UINT32(p_AdContLookup->matchTblPtr, tmpReg32); + + tmpReg32 = 0; + tmpReg32 |= p_Node->prsArrayOffset << 24; + tmpReg32 |= p_Node->offset << 16; + tmpReg32 |= p_Node->parseCode; + WRITE_UINT32(p_AdContLookup->pcAndOffsets, tmpReg32); + + Mem2IOCpy32((void*)&p_AdContLookup->gmask, p_Node->p_GlblMask, CC_GLBL_MASK_SIZE); + } +} + +static void NextStepAd(t_Handle p_Ad, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams, t_FmPcd *p_FmPcd) +{ + switch(p_FmPcdCcNextEngineParams->nextEngine) + { + case(e_FM_PCD_KG): + case(e_FM_PCD_PLCR): + case(e_FM_PCD_DONE): + FillAdOfTypeResult(p_Ad, p_FmPcd, p_FmPcdCcNextEngineParams); + break; + case(e_FM_PCD_CC): + FillAdOfTypeContLookup(p_Ad, + p_FmPcd, + p_FmPcdCcNextEngineParams->params.ccParams.h_CcNode, +#ifdef FM_PCD_CC_MANIP + p_FmPcdCcNextEngineParams->h_Manip +#else + NULL +#endif /* FM_PCD_CC_MANIP */ + ); + UpdateNodeOwner (p_FmPcdCcNextEngineParams->params.ccParams.h_CcNode, + TRUE); + break; + default: + return; + } +} + + +static void ReleaseNewNodeCommonPart(t_FmPcdModifyCcKeyAdditionalParams *p_AdditionalInfo) +{ + if(p_AdditionalInfo->p_AdTableNew) + FM_MURAM_FreeMem(FmPcdGetMuramHandle(((t_FmPcdCcNode *)(p_AdditionalInfo->h_CurrentNode))->h_FmPcd), p_AdditionalInfo->p_AdTableNew); + if(p_AdditionalInfo->p_KeysMatchTableNew) + FM_MURAM_FreeMem(FmPcdGetMuramHandle(((t_FmPcdCcNode *)(p_AdditionalInfo->h_CurrentNode))->h_FmPcd), p_AdditionalInfo->p_KeysMatchTableNew); +} + +static t_Error UpdateGblMask(t_FmPcdCcNode *p_FmPcdCcNode, uint8_t keySize, uint8_t *p_Mask) +{ + if (p_Mask && + !p_FmPcdCcNode->glblMaskUpdated && + (keySize <= 4) && + !p_FmPcdCcNode->lclMask ) + { + memcpy(p_FmPcdCcNode->p_GlblMask, p_Mask, (sizeof(uint8_t))*keySize); + p_FmPcdCcNode->glblMaskUpdated = TRUE; + p_FmPcdCcNode->glblMaskSize = 4; + } + else if (p_Mask && + (keySize <= 4) && + !p_FmPcdCcNode->lclMask) + { + if (memcmp(p_FmPcdCcNode->p_GlblMask, p_Mask, keySize) != 0) + { + p_FmPcdCcNode->lclMask = TRUE; + p_FmPcdCcNode->glblMaskSize = 0; + } + } + else if (!p_Mask && (p_FmPcdCcNode->glblMaskUpdated) && (keySize <= 4)) + { + uint32_t tmpMask = 0xffffffff; + if (memcmp(p_FmPcdCcNode->p_GlblMask, &tmpMask, 4) != 0) + { + p_FmPcdCcNode->lclMask = TRUE; + p_FmPcdCcNode->glblMaskSize = 0; + } + } + else if (p_Mask) + { + p_FmPcdCcNode->lclMask = TRUE; + p_FmPcdCcNode->glblMaskSize = 0; + } + + return E_OK; +} + +static t_Error BuildNewNodeCommonPart(t_FmPcdCcNode *p_FmPcdCcNode, + int *size, + t_FmPcdModifyCcKeyAdditionalParams *p_AdditionalInfo) +{ + + p_AdditionalInfo->p_AdTableNew = (t_Handle)FM_MURAM_AllocMem(FmPcdGetMuramHandle(p_FmPcdCcNode->h_FmPcd), + (uint32_t)( (p_AdditionalInfo->numOfKeys+1) * FM_PCD_CC_AD_ENTRY_SIZE), + FM_PCD_CC_AD_TABLE_ALIGN); + if(!p_AdditionalInfo->p_AdTableNew) + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("No memory in MURAM for AD table ")); + + IOMemSet32((uint8_t*)p_AdditionalInfo->p_AdTableNew, 0, (uint32_t)((p_AdditionalInfo->numOfKeys+1) * FM_PCD_CC_AD_ENTRY_SIZE)); + + if(p_FmPcdCcNode->lclMask) + *size = 2 * p_FmPcdCcNode->ccKeySizeAccExtraction; + else + *size = p_FmPcdCcNode->ccKeySizeAccExtraction; + + p_AdditionalInfo->p_KeysMatchTableNew = + (t_Handle)FM_MURAM_AllocMem(FmPcdGetMuramHandle(p_FmPcdCcNode->h_FmPcd), + (uint32_t)(*size * sizeof(uint8_t) * (p_AdditionalInfo->numOfKeys + 1)), + FM_PCD_CC_KEYS_MATCH_TABLE_ALIGN); + if(!p_AdditionalInfo->p_KeysMatchTableNew) + { + FM_MURAM_FreeMem(FmPcdGetMuramHandle(p_FmPcdCcNode->h_FmPcd), p_AdditionalInfo->p_AdTableNew); + p_AdditionalInfo->p_AdTableNew = NULL; + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("No memory in MURAM for KEY MATCH table")); + } + IOMemSet32((uint8_t*)p_AdditionalInfo->p_KeysMatchTableNew, 0, *size * sizeof(uint8_t) * (p_AdditionalInfo->numOfKeys + 1)); + + p_AdditionalInfo->p_AdTableOld = p_FmPcdCcNode->h_AdTable; + p_AdditionalInfo->p_KeysMatchTableOld = p_FmPcdCcNode->h_KeysMatchTable; + + return E_OK; +} + +static t_Error BuildNewNodeAddOrMdfyKeyAndNextEngine(t_Handle h_FmPcd ,t_FmPcdCcNode *p_FmPcdCcNode, uint8_t keyIndex, t_FmPcdCcKeyParams *p_KeyParams,t_FmPcdModifyCcKeyAdditionalParams *p_AdditionalInfo, bool add) +{ + t_Error err = E_OK; + t_Handle p_AdTableNewTmp, p_KeysMatchTableNewTmp; + t_Handle p_KeysMatchTableOldTmp, p_AdTableOldTmp; + int size; + int i = 0, j = 0; + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t requiredAction = 0; + bool prvLclMask; + t_CcNodeInformation *p_CcNodeInformation; + t_List *p_Pos; + + /*check that new NIA is legal*/ + err = ValidateNextEngineParams(h_FmPcd, &p_KeyParams->ccNextEngineParams); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + + prvLclMask = p_FmPcdCcNode->lclMask; + + /*check that new key is not require update of localMask*/ + err = UpdateGblMask(p_FmPcdCcNode, + p_FmPcdCcNode->ccKeySizeAccExtraction, + p_KeyParams->p_Mask); + if (err != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + + /*update internal data structure for next engine per index (index - key)*/ + memcpy(&p_AdditionalInfo->nextEngineAndRequiredAction[keyIndex].nextEngineParams,&p_KeyParams->ccNextEngineParams, sizeof(t_FmPcdCcNextEngineParams)); + + /*update numOfKeys*/ + if(add) + p_AdditionalInfo->numOfKeys = (uint8_t)(p_FmPcdCcNode->numOfKeys + 1); + else + p_AdditionalInfo->numOfKeys = (uint8_t)p_FmPcdCcNode->numOfKeys; + /*function which build in the memory new KeyTbl, AdTbl*/ + err = BuildNewNodeCommonPart(p_FmPcdCcNode, &size, p_AdditionalInfo); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + +#ifdef FM_PCD_CC_MANIP + /*check that manip is legal and what requiredAction is necessary for this manip*/ + if(p_KeyParams->ccNextEngineParams.h_Manip) + { + err = FmPcdManipCheckParamsForCcNextEgine(&p_KeyParams->ccNextEngineParams,&requiredAction); + if(err) + RETURN_ERROR(MAJOR, err, (NO_MSG)); + + } +#endif /* FM_PCD_CC_MANIP */ + + p_AdditionalInfo->nextEngineAndRequiredAction[keyIndex].requiredAction = requiredAction; + + p_AdditionalInfo->nextEngineAndRequiredAction[keyIndex].requiredAction |= UPDATE_CC_WITH_TREE; + + + /*update new Ad and new Key Table according to new requirement*/ + i = 0; + for(j = 0; j < p_AdditionalInfo->numOfKeys; j++) + { + p_AdTableNewTmp = PTR_MOVE(p_AdditionalInfo->p_AdTableNew, j*FM_PCD_CC_AD_ENTRY_SIZE); + if(j == keyIndex) + { + NextStepAd(p_AdTableNewTmp,&p_KeyParams->ccNextEngineParams, p_FmPcd); + p_KeysMatchTableNewTmp = PTR_MOVE(p_AdditionalInfo->p_KeysMatchTableNew, j*size * sizeof(uint8_t)); + Mem2IOCpy32((void*)p_KeysMatchTableNewTmp, p_KeyParams->p_Key, p_FmPcdCcNode->userSizeOfExtraction); + if(p_FmPcdCcNode->lclMask) + { + if(p_KeyParams->p_Mask) + Mem2IOCpy32(PTR_MOVE(p_KeysMatchTableNewTmp, p_FmPcdCcNode->ccKeySizeAccExtraction), p_KeyParams->p_Mask, p_FmPcdCcNode->userSizeOfExtraction); + else if (p_FmPcdCcNode->ccKeySizeAccExtraction > 4) + IOMemSet32(PTR_MOVE(p_KeysMatchTableNewTmp, p_FmPcdCcNode->ccKeySizeAccExtraction), 0xff, p_FmPcdCcNode->userSizeOfExtraction); + else + Mem2IOCpy32(PTR_MOVE(p_KeysMatchTableNewTmp, p_FmPcdCcNode->ccKeySizeAccExtraction),p_FmPcdCcNode->p_GlblMask, p_FmPcdCcNode->userSizeOfExtraction); + } + if(!add) + i++; + } + else + { + p_AdTableOldTmp = PTR_MOVE(p_AdditionalInfo->p_AdTableOld, i*FM_PCD_CC_AD_ENTRY_SIZE); + IO2IOCpy32(p_AdTableNewTmp, p_AdTableOldTmp, FM_PCD_CC_AD_ENTRY_SIZE); + p_KeysMatchTableNewTmp = PTR_MOVE(p_AdditionalInfo->p_KeysMatchTableNew, j*size * sizeof(uint8_t)); + p_KeysMatchTableOldTmp = PTR_MOVE(p_AdditionalInfo->p_KeysMatchTableOld, i*size * sizeof(uint8_t)); + + if(p_FmPcdCcNode->lclMask) + { + if(prvLclMask) + IO2IOCpy32(PTR_MOVE(p_KeysMatchTableNewTmp, p_FmPcdCcNode->ccKeySizeAccExtraction), + PTR_MOVE(p_KeysMatchTableOldTmp, p_FmPcdCcNode->ccKeySizeAccExtraction), + p_FmPcdCcNode->ccKeySizeAccExtraction); + else + { + p_KeysMatchTableOldTmp = PTR_MOVE(p_FmPcdCcNode->h_KeysMatchTable, i*p_FmPcdCcNode->ccKeySizeAccExtraction*sizeof(uint8_t)); + + if (p_FmPcdCcNode->ccKeySizeAccExtraction > 4) + IOMemSet32(PTR_MOVE(p_KeysMatchTableNewTmp, p_FmPcdCcNode->ccKeySizeAccExtraction), 0xff, p_FmPcdCcNode->userSizeOfExtraction); + else + IO2IOCpy32(PTR_MOVE(p_KeysMatchTableNewTmp, p_FmPcdCcNode->ccKeySizeAccExtraction), p_FmPcdCcNode->p_GlblMask, p_FmPcdCcNode->userSizeOfExtraction); + } + } + IO2IOCpy32(p_KeysMatchTableNewTmp, p_KeysMatchTableOldTmp, p_FmPcdCcNode->ccKeySizeAccExtraction); + i++; + } + } + + p_AdTableNewTmp = PTR_MOVE(p_AdditionalInfo->p_AdTableNew, j*FM_PCD_CC_AD_ENTRY_SIZE); + p_AdTableOldTmp = PTR_MOVE(p_AdditionalInfo->p_AdTableOld, i*FM_PCD_CC_AD_ENTRY_SIZE); + IO2IOCpy32(p_AdTableNewTmp, p_AdTableOldTmp, FM_PCD_CC_AD_ENTRY_SIZE); + + + if(!LIST_IsEmpty(&p_FmPcdCcNode->ccTreesLst)) + { + LIST_FOR_EACH(p_Pos, &p_FmPcdCcNode->ccTreesLst) + { + p_CcNodeInformation = CC_NODE_F_OBJECT(p_Pos); + ASSERT_COND(p_CcNodeInformation->h_CcNode); + /*update the manipulation which has to be updated from parameters of the port*/ + /*it's has to be updated with restrictions defined in the function*/ + err = FmPcdCcSetRequiredAction(p_FmPcdCcNode->h_FmPcd, + p_FmPcdCcNode->shadowAction | p_AdditionalInfo->nextEngineAndRequiredAction[keyIndex].requiredAction, + &p_AdditionalInfo->nextEngineAndRequiredAction[keyIndex], + PTR_MOVE(p_AdditionalInfo->p_AdTableNew, keyIndex*FM_PCD_CC_AD_ENTRY_SIZE), + 1, + p_CcNodeInformation->h_CcNode); + if (err) + RETURN_ERROR(MAJOR, err, (NO_MSG)); + + err = CcUpdateParam(p_FmPcdCcNode->h_FmPcd, + NULL, + &p_AdditionalInfo->nextEngineAndRequiredAction[keyIndex], + 1, + PTR_MOVE(p_AdditionalInfo->p_AdTableNew, keyIndex*FM_PCD_CC_AD_ENTRY_SIZE), + TRUE, + p_CcNodeInformation->index, + p_CcNodeInformation->h_CcNode, + TRUE); + if (err) + RETURN_ERROR(MAJOR, err, (NO_MSG)); + } + } + + if(p_FmPcdCcNode->lclMask) + memset(p_FmPcdCcNode->p_GlblMask, 0xff, CC_GLBL_MASK_SIZE * sizeof(uint8_t)); + + + if(p_KeyParams->ccNextEngineParams.nextEngine == e_FM_PCD_CC) + p_AdditionalInfo->h_NodeForAdd = p_KeyParams->ccNextEngineParams.params.ccParams.h_CcNode; + + if(!add) + { + if(p_FmPcdCcNode->nextEngineAndRequiredAction[keyIndex].nextEngineParams.nextEngine == e_FM_PCD_CC) + p_AdditionalInfo->h_NodeForRmv = p_FmPcdCcNode->nextEngineAndRequiredAction[keyIndex].nextEngineParams.params.ccParams.h_CcNode; +#ifdef FM_PCD_CC_MANIP + if(p_FmPcdCcNode->nextEngineAndRequiredAction[keyIndex].nextEngineParams.h_Manip) + p_AdditionalInfo->h_ManipForRmv = p_FmPcdCcNode->nextEngineAndRequiredAction[keyIndex].nextEngineParams.h_Manip; +#endif /* FM_PCD_CC_MANIP */ + } + + return E_OK; +} + +static t_Error BuildNewNodeRemoveKey(t_FmPcdCcNode *p_FmPcdCcNode, uint8_t keyIndex, t_FmPcdModifyCcKeyAdditionalParams *p_AdditionalInfo) +{ + int i = 0, j = 0; + t_Handle p_AdTableNewTmp,p_KeysMatchTableNewTmp; + t_Handle p_KeysMatchTableOldTmp, p_AdTableOldTmp; + int size; + t_Error err = E_OK; + + /*save new numOfKeys*/ + p_AdditionalInfo->numOfKeys = (uint16_t)(p_FmPcdCcNode->numOfKeys - 1); + + /*function which allocates in the memory new KeyTbl, AdTbl*/ + err = BuildNewNodeCommonPart(p_FmPcdCcNode, &size, p_AdditionalInfo); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + + /*update new Ad and new Key Table according to new requirement*/ + for(i = 0, j = 0; j < p_FmPcdCcNode->numOfKeys; i++, j++) + { + if(j == keyIndex) + { + p_AdTableOldTmp = PTR_MOVE(p_AdditionalInfo->p_AdTableOld, j*FM_PCD_CC_AD_ENTRY_SIZE); + j++; + } + if(j == p_FmPcdCcNode->numOfKeys) + break; + p_AdTableNewTmp = PTR_MOVE(p_AdditionalInfo->p_AdTableNew, i*FM_PCD_CC_AD_ENTRY_SIZE); + p_AdTableOldTmp = PTR_MOVE(p_AdditionalInfo->p_AdTableOld, j*FM_PCD_CC_AD_ENTRY_SIZE); + IO2IOCpy32(p_AdTableNewTmp,p_AdTableOldTmp, FM_PCD_CC_AD_ENTRY_SIZE); + p_KeysMatchTableOldTmp = PTR_MOVE(p_AdditionalInfo->p_KeysMatchTableOld, j*size * sizeof(uint8_t)); + p_KeysMatchTableNewTmp = PTR_MOVE(p_AdditionalInfo->p_KeysMatchTableNew, i*size * sizeof(uint8_t)); + IO2IOCpy32(p_KeysMatchTableNewTmp,p_KeysMatchTableOldTmp, size * sizeof(uint8_t)); + } + + p_AdTableNewTmp = PTR_MOVE(p_AdditionalInfo->p_AdTableNew, i*FM_PCD_CC_AD_ENTRY_SIZE); + p_AdTableOldTmp = PTR_MOVE(p_AdditionalInfo->p_AdTableOld, j*FM_PCD_CC_AD_ENTRY_SIZE); + IO2IOCpy32(p_AdTableNewTmp, p_AdTableOldTmp, FM_PCD_CC_AD_ENTRY_SIZE); + + if(p_FmPcdCcNode->nextEngineAndRequiredAction[keyIndex].nextEngineParams.nextEngine == e_FM_PCD_CC) + p_AdditionalInfo->h_NodeForRmv = p_FmPcdCcNode->nextEngineAndRequiredAction[keyIndex].nextEngineParams.params.ccParams.h_CcNode; +#ifdef FM_PCD_CC_MANIP + if(p_FmPcdCcNode->nextEngineAndRequiredAction[keyIndex].nextEngineParams.h_Manip) + p_AdditionalInfo->h_ManipForRmv = p_FmPcdCcNode->nextEngineAndRequiredAction[keyIndex].nextEngineParams.h_Manip; +#endif /* FM_PCD_CC_MANIP */ + + return E_OK; +} + +static t_Error BuildNewNodeModifyKey(t_FmPcdCcNode *p_FmPcdCcNode, uint8_t keyIndex, uint8_t *p_Key, uint8_t *p_Mask,t_FmPcdModifyCcKeyAdditionalParams *p_AdditionalInfo) +{ + t_Error err = E_OK; + t_Handle p_AdTableNewTmp, p_KeysMatchTableNewTmp; + t_Handle p_KeysMatchTableOldTmp, p_AdTableOldTmp; + int size; + int i = 0, j = 0; + bool prvLclMask; + + p_AdditionalInfo->numOfKeys = p_FmPcdCcNode->numOfKeys; + + prvLclMask = p_FmPcdCcNode->lclMask; + + /*check that new key is not require update of localMask*/ + err = UpdateGblMask(p_FmPcdCcNode, + p_FmPcdCcNode->sizeOfExtraction, + p_Mask); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + + /*function which build in the memory new KeyTbl, AdTbl*/ + err = BuildNewNodeCommonPart(p_FmPcdCcNode, &size, p_AdditionalInfo); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + + /*fill the New AdTable and New KeyTable*/ + for(j = 0, i = 0; j < p_AdditionalInfo->numOfKeys; j++, i++) + { + p_AdTableNewTmp = PTR_MOVE(p_AdditionalInfo->p_AdTableNew, j*FM_PCD_CC_AD_ENTRY_SIZE); + p_AdTableOldTmp = PTR_MOVE(p_AdditionalInfo->p_AdTableOld, i*FM_PCD_CC_AD_ENTRY_SIZE); + IO2IOCpy32(p_AdTableNewTmp, p_AdTableOldTmp, FM_PCD_CC_AD_ENTRY_SIZE); + if(j == keyIndex) + { + p_KeysMatchTableNewTmp = PTR_MOVE(p_AdditionalInfo->p_KeysMatchTableNew, j*size * sizeof(uint8_t)); + Mem2IOCpy32(p_KeysMatchTableNewTmp, p_Key, p_FmPcdCcNode->userSizeOfExtraction); + if(p_FmPcdCcNode->lclMask) + { + if(p_Mask) + Mem2IOCpy32(PTR_MOVE(p_KeysMatchTableNewTmp, p_FmPcdCcNode->ccKeySizeAccExtraction), p_Mask, p_FmPcdCcNode->userSizeOfExtraction); + else if (p_FmPcdCcNode->ccKeySizeAccExtraction > 4) + IOMemSet32(PTR_MOVE(p_KeysMatchTableNewTmp, p_FmPcdCcNode->ccKeySizeAccExtraction), 0xff, p_FmPcdCcNode->userSizeOfExtraction); + else + Mem2IOCpy32(PTR_MOVE(p_KeysMatchTableNewTmp, p_FmPcdCcNode->ccKeySizeAccExtraction),p_FmPcdCcNode->p_GlblMask, p_FmPcdCcNode->userSizeOfExtraction); + } + } + else + { + p_KeysMatchTableNewTmp = PTR_MOVE(p_AdditionalInfo->p_KeysMatchTableNew, j*size * sizeof(uint8_t)); + p_KeysMatchTableOldTmp = PTR_MOVE(p_FmPcdCcNode->h_KeysMatchTable, i*size * sizeof(uint8_t)); + if (p_FmPcdCcNode->lclMask) + { + if(prvLclMask) + IO2IOCpy32(PTR_MOVE(p_KeysMatchTableNewTmp, p_FmPcdCcNode->ccKeySizeAccExtraction), + PTR_MOVE(p_KeysMatchTableOldTmp, p_FmPcdCcNode->ccKeySizeAccExtraction), + p_FmPcdCcNode->userSizeOfExtraction); + else + { + p_KeysMatchTableOldTmp = PTR_MOVE(p_FmPcdCcNode->h_KeysMatchTable, i*p_FmPcdCcNode->ccKeySizeAccExtraction * sizeof(uint8_t)); + + if (p_FmPcdCcNode->ccKeySizeAccExtraction > 4) + IOMemSet32(PTR_MOVE(p_KeysMatchTableNewTmp, p_FmPcdCcNode->ccKeySizeAccExtraction), 0xff, p_FmPcdCcNode->userSizeOfExtraction); + else + IO2IOCpy32(PTR_MOVE(p_KeysMatchTableNewTmp, p_FmPcdCcNode->ccKeySizeAccExtraction), p_FmPcdCcNode->p_GlblMask, p_FmPcdCcNode->userSizeOfExtraction); + } + } + IO2IOCpy32((void*)p_KeysMatchTableNewTmp, p_KeysMatchTableOldTmp, p_FmPcdCcNode->ccKeySizeAccExtraction); + } + } + + p_AdTableNewTmp = PTR_MOVE(p_AdditionalInfo->p_AdTableNew, j*FM_PCD_CC_AD_ENTRY_SIZE); + p_AdTableOldTmp = PTR_MOVE(p_FmPcdCcNode->h_AdTable, i*FM_PCD_CC_AD_ENTRY_SIZE); + IO2IOCpy32(p_AdTableNewTmp, p_AdTableOldTmp, FM_PCD_CC_AD_ENTRY_SIZE); + + return E_OK; +} + +static t_Error BuildNewNodeModifyNextEngine(t_Handle h_FmPcd ,t_Handle h_FmPcdCcNodeOrTree, uint16_t keyIndex,t_FmPcdCcNextEngineParams *p_CcNextEngineParams, t_List *h_OldLst, t_List *h_NewLst,t_FmPcdModifyCcKeyAdditionalParams *p_AdditionalInfo) +{ + + t_Error err = E_OK; + uint32_t requiredAction = 0; + t_List *p_Pos; + t_CcNodeInformation *p_CcNodeInformation, ccNodeInfo; + t_Handle p_Ad; + t_FmPcdCcNode *p_FmPcdCcNode1 = NULL; + t_FmPcdCcTree *p_FmPcdCcTree = NULL; + + ASSERT_COND(p_CcNextEngineParams); + /*check that new NIA is legal*/ + err = ValidateNextEngineParams(h_FmPcd, p_CcNextEngineParams); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + + /*update internal data structure for next engine per index (index - key)*/ + memcpy(&p_AdditionalInfo->nextEngineAndRequiredAction[keyIndex].nextEngineParams,p_CcNextEngineParams, sizeof(t_FmPcdCcNextEngineParams)); + +#ifdef FM_PCD_CC_MANIP + /*check that manip is legal and what requiredAction is necessary for this manip*/ + if(p_CcNextEngineParams->h_Manip) + { + err = FmPcdManipCheckParamsForCcNextEgine(p_CcNextEngineParams,&requiredAction); + if(err) + RETURN_ERROR(MAJOR, err, (NO_MSG)); + + } +#endif /* FM_PCD_CC_MANIP */ + + if(!p_AdditionalInfo->tree) + { + p_FmPcdCcNode1 = (t_FmPcdCcNode *)h_FmPcdCcNodeOrTree; + p_Ad = p_FmPcdCcNode1->h_AdTable; + if(p_FmPcdCcNode1->nextEngineAndRequiredAction[keyIndex].nextEngineParams.nextEngine == e_FM_PCD_CC) + p_AdditionalInfo->h_NodeForRmv = p_FmPcdCcNode1->nextEngineAndRequiredAction[keyIndex].nextEngineParams.params.ccParams.h_CcNode; +#ifdef FM_PCD_CC_MANIP + if(p_FmPcdCcNode1->nextEngineAndRequiredAction[keyIndex].nextEngineParams.h_Manip) + p_AdditionalInfo->h_ManipForRmv = p_FmPcdCcNode1->nextEngineAndRequiredAction[keyIndex].nextEngineParams.h_Manip; +#endif /* FM_PCD_CC_MANIP */ + } + else + { + p_FmPcdCcTree = (t_FmPcdCcTree *)h_FmPcdCcNodeOrTree; + p_Ad = UINT_TO_PTR(p_FmPcdCcTree->ccTreeBaseAddr); + if(p_FmPcdCcTree->nextEngineAndRequiredAction[keyIndex].nextEngineParams.nextEngine == e_FM_PCD_CC) + p_AdditionalInfo->h_NodeForRmv = p_FmPcdCcTree->nextEngineAndRequiredAction[keyIndex].nextEngineParams.params.ccParams.h_CcNode; +#ifdef FM_PCD_CC_MANIP + if(p_FmPcdCcTree->nextEngineAndRequiredAction[keyIndex].nextEngineParams.h_Manip) + p_AdditionalInfo->h_ManipForRmv = p_FmPcdCcTree->nextEngineAndRequiredAction[keyIndex].nextEngineParams.h_Manip; +#endif /* FM_PCD_CC_MANIP */ + } + ASSERT_COND(p_Ad); + memset(&ccNodeInfo, 0, sizeof(t_CcNodeInformation)); + ccNodeInfo.h_CcNode = PTR_MOVE(p_Ad, keyIndex * FM_PCD_CC_AD_ENTRY_SIZE); + EnqueueNodeInfoToRelevantLst(h_OldLst, &ccNodeInfo); + + memset(&ccNodeInfo, 0, sizeof(t_CcNodeInformation)); + p_Ad = (t_Handle)FM_MURAM_AllocMem(FmPcdGetMuramHandle(h_FmPcd), + FM_PCD_CC_AD_ENTRY_SIZE, + FM_PCD_CC_AD_TABLE_ALIGN); + + if(!p_Ad) + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("Memory allocation in MURAM FAILED")); + + IOMemSet32((uint8_t *)p_Ad, 0, FM_PCD_CC_AD_ENTRY_SIZE); + if(p_CcNextEngineParams) + NextStepAd(p_Ad,p_CcNextEngineParams, h_FmPcd); + ccNodeInfo.h_CcNode = p_Ad; + EnqueueNodeInfoToRelevantLst(h_NewLst, &ccNodeInfo); + + p_AdditionalInfo->nextEngineAndRequiredAction[keyIndex].requiredAction = requiredAction; + + p_AdditionalInfo->nextEngineAndRequiredAction[keyIndex].requiredAction |= UPDATE_CC_WITH_TREE; + + if(!p_AdditionalInfo->tree) + { + ASSERT_COND(p_FmPcdCcNode1); + if(!LIST_IsEmpty(&p_FmPcdCcNode1->ccTreesLst)) + { + LIST_FOR_EACH(p_Pos, &p_FmPcdCcNode1->ccTreesLst) + { + p_CcNodeInformation = CC_NODE_F_OBJECT(p_Pos); + ASSERT_COND(p_CcNodeInformation->h_CcNode); + /*update the manipulation which has to be updated from parameters of the port*/ + /*it's has to be updated with restrictions defined in the function*/ + err = FmPcdCcSetRequiredAction(p_FmPcdCcNode1->h_FmPcd, p_FmPcdCcNode1->shadowAction | p_AdditionalInfo->nextEngineAndRequiredAction[keyIndex].requiredAction, &p_AdditionalInfo->nextEngineAndRequiredAction[keyIndex], + p_Ad, 1, p_CcNodeInformation->h_CcNode); + if(err) + RETURN_ERROR(MAJOR, err, (NO_MSG)); + err = CcUpdateParam(p_FmPcdCcNode1->h_FmPcd, NULL, &p_AdditionalInfo->nextEngineAndRequiredAction[keyIndex],1, p_Ad, TRUE, p_CcNodeInformation->index, p_CcNodeInformation->h_CcNode, TRUE); + if(err) + RETURN_ERROR(MAJOR, err, (NO_MSG)); + } + } + } + else + { + ASSERT_COND(p_FmPcdCcTree); + err = FmPcdCcSetRequiredAction(h_FmPcd, p_FmPcdCcTree->requiredAction | p_AdditionalInfo->nextEngineAndRequiredAction[keyIndex].requiredAction, &p_AdditionalInfo->nextEngineAndRequiredAction[keyIndex], + p_Ad, 1, (t_Handle)p_FmPcdCcTree); + if(err) + RETURN_ERROR(MAJOR, err, (NO_MSG)); + err = CcUpdateParam(h_FmPcd, NULL, &p_AdditionalInfo->nextEngineAndRequiredAction[keyIndex],1, p_Ad, TRUE, 0, (t_Handle)p_FmPcdCcTree, TRUE); + if(err) + RETURN_ERROR(MAJOR, err, (NO_MSG)); + } + + if(p_CcNextEngineParams->nextEngine == e_FM_PCD_CC) + p_AdditionalInfo->h_NodeForAdd = p_CcNextEngineParams->params.ccParams.h_CcNode; + return E_OK; +} + +static t_Handle BuildNewAd(t_FmPcdModifyCcKeyAdditionalParams *p_FmPcdModifyCcKeyAdditionalParams, + t_FmPcdCcNode *p_FmPcdCcNode, + t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams) +{ + + t_Handle p_Ad; + t_FmPcdCcNode *p_FmPcdCcNodeTmp; + + p_Ad = (t_Handle)FM_MURAM_AllocMem(((t_FmPcd *)(p_FmPcdCcNode->h_FmPcd))->h_FmMuram, + FM_PCD_CC_AD_ENTRY_SIZE, + FM_PCD_CC_AD_TABLE_ALIGN); + if(!p_Ad) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("MURAM for AD")); + return NULL; + } + IOMemSet32(p_Ad, 0, FM_PCD_CC_AD_ENTRY_SIZE); + + p_FmPcdCcNodeTmp = (t_FmPcdCcNode*)XX_Malloc(sizeof(t_FmPcdCcNode)); + if(!p_FmPcdCcNodeTmp) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("p_FmPcdCcNodeTmp")); + return NULL; + } + memset(p_FmPcdCcNodeTmp, 0, sizeof(t_FmPcdCcNode)); + + p_FmPcdCcNodeTmp->numOfKeys = p_FmPcdModifyCcKeyAdditionalParams->numOfKeys; + p_FmPcdCcNodeTmp->h_KeysMatchTable = p_FmPcdModifyCcKeyAdditionalParams->p_KeysMatchTableNew; + p_FmPcdCcNodeTmp->h_AdTable = p_FmPcdModifyCcKeyAdditionalParams->p_AdTableNew; + + p_FmPcdCcNodeTmp->lclMask = p_FmPcdCcNode->lclMask; + p_FmPcdCcNodeTmp->parseCode = p_FmPcdCcNode->parseCode; + p_FmPcdCcNodeTmp->offset = p_FmPcdCcNode->offset; + p_FmPcdCcNodeTmp->prsArrayOffset = p_FmPcdCcNode->prsArrayOffset; + p_FmPcdCcNodeTmp->ctrlFlow = p_FmPcdCcNode->ctrlFlow; + p_FmPcdCcNodeTmp->ccKeySizeAccExtraction = p_FmPcdCcNode->ccKeySizeAccExtraction; + p_FmPcdCcNodeTmp->sizeOfExtraction = p_FmPcdCcNode->sizeOfExtraction; + p_FmPcdCcNodeTmp->glblMaskSize = p_FmPcdCcNode->glblMaskSize; + p_FmPcdCcNodeTmp->p_GlblMask = p_FmPcdCcNode->p_GlblMask; + + if (p_FmPcdCcNextEngineParams->nextEngine == e_FM_PCD_CC) + FillAdOfTypeContLookup(p_Ad, + p_FmPcdCcNode->h_FmPcd, + p_FmPcdCcNodeTmp, +#ifdef FM_PCD_CC_MANIP + p_FmPcdCcNextEngineParams->h_Manip +#else + NULL +#endif /* FM_PCD_CC_MANIP */ + ); + + XX_Free(p_FmPcdCcNodeTmp); + + return p_Ad; +} + +static void UpdateAdPtrOfNodesWhichPointsOnCrntMdfNode(t_FmPcdCcNode *p_CrntMdfNode ,t_FmPcdModifyCcKeyAdditionalParams *p_FmPcdModifyCcKeyAdditionalParams, t_List *h_OldLst, t_List *h_NewLst) +{ + t_CcNodeInformation *p_CcNodeInformation; + t_FmPcdCcNode *p_NodePtrOnCurrentMdfNode = NULL; + t_List *p_Pos; + int i = 0; + t_Handle p_AdTablePtOnCrntCurrentMdfNode, p_AdTableNewModified; + t_CcNodeInformation ccNodeInfo; + + LIST_FOR_EACH(p_Pos, &p_CrntMdfNode->ccPrevNodesLst) + { + p_CcNodeInformation = CC_NODE_F_OBJECT(p_Pos); + p_NodePtrOnCurrentMdfNode = (t_FmPcdCcNode *)p_CcNodeInformation->h_CcNode; + ASSERT_COND(p_NodePtrOnCurrentMdfNode); + /*search in the prev node which exact index points on this current modified node for getting AD */ + for(i = 0; i < p_NodePtrOnCurrentMdfNode->numOfKeys + 1; i++) + { + if(p_NodePtrOnCurrentMdfNode->nextEngineAndRequiredAction[i].nextEngineParams.nextEngine == e_FM_PCD_CC) + { + if(p_NodePtrOnCurrentMdfNode->nextEngineAndRequiredAction[i].nextEngineParams.params.ccParams.h_CcNode == (t_Handle)p_CrntMdfNode) + { + p_AdTablePtOnCrntCurrentMdfNode = PTR_MOVE(p_NodePtrOnCurrentMdfNode->h_AdTable, i*FM_PCD_CC_AD_ENTRY_SIZE); + memset(&ccNodeInfo, 0, sizeof(t_CcNodeInformation)); + ccNodeInfo.h_CcNode = p_AdTablePtOnCrntCurrentMdfNode; + EnqueueNodeInfoToRelevantLst(h_OldLst, &ccNodeInfo); + + p_AdTableNewModified = BuildNewAd(p_FmPcdModifyCcKeyAdditionalParams, p_CrntMdfNode, &p_NodePtrOnCurrentMdfNode->nextEngineAndRequiredAction[i].nextEngineParams); + memset(&ccNodeInfo, 0, sizeof(t_CcNodeInformation)); + ccNodeInfo.h_CcNode = p_AdTableNewModified; + EnqueueNodeInfoToRelevantLst(h_NewLst, &ccNodeInfo); + } + } + } + ASSERT_COND(i != p_NodePtrOnCurrentMdfNode->numOfKeys); + } +} + +static void UpdateAdPtrOfTreesWhichPointsOnCrntMdfNode(t_FmPcdCcNode *p_CrntMdfNode ,t_FmPcdModifyCcKeyAdditionalParams *p_FmPcdModifyCcKeyAdditionalParams, t_List *h_OldLst, t_List *h_NewLst) +{ + t_CcNodeInformation *p_CcNodeInformation; + t_FmPcdCcTree *p_TreePtrOnCurrentMdfNode = NULL; + t_List *p_Pos; + int i = 0; + t_Handle p_AdTableTmp, p_AdTableTmp1; + t_CcNodeInformation ccNodeInfo; + + LIST_FOR_EACH(p_Pos, &p_CrntMdfNode->ccTreeIdLst) + { + p_CcNodeInformation = CC_NODE_F_OBJECT(p_Pos); + p_TreePtrOnCurrentMdfNode = (t_FmPcdCcTree *)p_CcNodeInformation->h_CcNode; + + ASSERT_COND(p_TreePtrOnCurrentMdfNode); + /*search in the trees which exact index points on this current modified node for getting AD + */ + for(i = 0; i < p_TreePtrOnCurrentMdfNode->numOfEntries; i++) + { + if(p_TreePtrOnCurrentMdfNode->nextEngineAndRequiredAction[i].nextEngineParams.nextEngine == e_FM_PCD_CC) + { + if(p_TreePtrOnCurrentMdfNode->nextEngineAndRequiredAction[i].nextEngineParams.params.ccParams.h_CcNode == (t_Handle)p_CrntMdfNode) + { + p_AdTableTmp = UINT_TO_PTR(p_TreePtrOnCurrentMdfNode->ccTreeBaseAddr + i*FM_PCD_CC_AD_ENTRY_SIZE); + memset(&ccNodeInfo, 0, sizeof(t_CcNodeInformation)); + ccNodeInfo.h_CcNode = p_AdTableTmp; + EnqueueNodeInfoToRelevantLst(h_OldLst, &ccNodeInfo); + + p_AdTableTmp1 = BuildNewAd(p_FmPcdModifyCcKeyAdditionalParams, p_CrntMdfNode, &p_TreePtrOnCurrentMdfNode->nextEngineAndRequiredAction[i].nextEngineParams); + memset(&ccNodeInfo, 0, sizeof(t_CcNodeInformation)); + ccNodeInfo.h_CcNode = p_AdTableTmp1; + EnqueueNodeInfoToRelevantLst(h_NewLst, &ccNodeInfo); + } + } + } + ASSERT_COND(i == p_TreePtrOnCurrentMdfNode->numOfEntries); + } +} + +static t_Error ModifyKeyCommonPart1(t_Handle h_FmPcdCcNodeOrTree, uint16_t keyIndex, t_Handle *h_Params, e_ModifyState modifyState, bool check, bool tree) +{ + t_FmPcdModifyCcKeyAdditionalParams *p_FmPcdModifyCcKeyAdditionalParams; + int i = 0, j = 0; + bool wasUpdate = FALSE; + t_FmPcdCcNode *p_FmPcdCcNode = NULL; + t_FmPcdCcTree *p_FmPcdCcTree; + uint16_t numOfKeys; + t_FmPcdCcNextEngineAndRequiredActionParams *p_nextEngineAndRequiredAction = NULL; + + SANITY_CHECK_RETURN_ERROR(h_FmPcdCcNodeOrTree,E_INVALID_HANDLE); + + p_nextEngineAndRequiredAction = XX_Malloc(FM_PCD_MAX_NUM_OF_KEYS * sizeof(*p_nextEngineAndRequiredAction)); + if(!p_nextEngineAndRequiredAction) + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("failed to allocate memory for p_nextEngineAndRequiredAction")); + + memset(p_nextEngineAndRequiredAction, 0, FM_PCD_MAX_NUM_OF_KEYS * sizeof(*p_nextEngineAndRequiredAction)); + + if(!tree) + { + p_FmPcdCcNode = (t_FmPcdCcNode *)h_FmPcdCcNodeOrTree; + numOfKeys = p_FmPcdCcNode->numOfKeys; + + /*node has to be pointed by another node or tree*/ + if (!LIST_NumOfObjs(&p_FmPcdCcNode->ccPrevNodesLst) && + !LIST_NumOfObjs(&p_FmPcdCcNode->ccTreeIdLst)) + { + XX_Free(p_nextEngineAndRequiredAction); + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("node has to be pointed by node or tree")); + } + + if(!LIST_NumOfObjs(&p_FmPcdCcNode->ccTreesLst) || + (LIST_NumOfObjs(&p_FmPcdCcNode->ccTreesLst) != 1)) + { + XX_Free(p_nextEngineAndRequiredAction); + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("node has to be belonging to some tree and only to one tree")); + } + + memcpy(p_nextEngineAndRequiredAction, + p_FmPcdCcNode->nextEngineAndRequiredAction, + FM_PCD_MAX_NUM_OF_KEYS * sizeof(t_FmPcdCcNextEngineAndRequiredActionParams)); + + if(check) + { + if((p_FmPcdCcNode->parseCode == CC_PC_FF_IPV4TTL) || + (p_FmPcdCcNode->parseCode == CC_PC_FF_IPV6HOP_LIMIT) || + (p_FmPcdCcNode->parseCode == CC_PC_GENERIC_IC_HASH_INDEXED)) + { + XX_Free(p_nextEngineAndRequiredAction); + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("nodeId of CC_PC_FF_IPV4TTL or CC_PC_FF_IPV6HOP_LIMIT can not be used for addKey, removeKey, modifyKey")); + } + } + } + else + { + p_FmPcdCcTree = (t_FmPcdCcTree *)h_FmPcdCcNodeOrTree; + numOfKeys = p_FmPcdCcTree->numOfEntries; + memcpy(p_nextEngineAndRequiredAction, + p_FmPcdCcTree->nextEngineAndRequiredAction, + FM_PCD_MAX_NUM_OF_KEYS * sizeof(t_FmPcdCcNextEngineAndRequiredActionParams)); + } + + p_FmPcdModifyCcKeyAdditionalParams = + (t_FmPcdModifyCcKeyAdditionalParams *)XX_Malloc(sizeof(t_FmPcdModifyCcKeyAdditionalParams)); + if(!p_FmPcdModifyCcKeyAdditionalParams) + { + XX_Free(p_nextEngineAndRequiredAction); + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("Allocation of internal data structure FAILED")); + } + memset(p_FmPcdModifyCcKeyAdditionalParams, 0, sizeof(t_FmPcdModifyCcKeyAdditionalParams)); + + p_FmPcdModifyCcKeyAdditionalParams->h_CurrentNode = h_FmPcdCcNodeOrTree; + p_FmPcdModifyCcKeyAdditionalParams->keyIndex = keyIndex; + + while(i < numOfKeys) + { + if((j == keyIndex) && !wasUpdate) + { + if(modifyState == e_MODIFY_STATE_ADD) + j++; + else if(modifyState == e_MODIFY_STATE_REMOVE) + i++; + wasUpdate = TRUE; + } + else + { + memcpy(&p_FmPcdModifyCcKeyAdditionalParams->nextEngineAndRequiredAction[j], &p_nextEngineAndRequiredAction[i], sizeof(t_FmPcdCcNextEngineAndRequiredActionParams)); + i++; + j++; + } + } + + if (keyIndex == numOfKeys) + { + if (modifyState == e_MODIFY_STATE_ADD) + j++; + else if(modifyState == e_MODIFY_STATE_REMOVE) + i++; + } + + memcpy(&p_FmPcdModifyCcKeyAdditionalParams->nextEngineAndRequiredAction[j], &p_nextEngineAndRequiredAction[numOfKeys], sizeof(t_FmPcdCcNextEngineAndRequiredActionParams)); + + XX_Free(p_nextEngineAndRequiredAction); + *h_Params = p_FmPcdModifyCcKeyAdditionalParams; + + return E_OK; +} + +static t_Error UpdatePtrWhichPointOnCrntMdfNode(t_FmPcdCcNode *p_FmPcdCcNode, t_FmPcdModifyCcKeyAdditionalParams *p_FmPcdModifyCcKeyAdditionalParams ,t_List *h_OldLst, t_List *h_NewLst) +{ + if(!LIST_IsEmpty(&p_FmPcdCcNode->ccPrevNodesLst)) + UpdateAdPtrOfNodesWhichPointsOnCrntMdfNode(p_FmPcdCcNode, p_FmPcdModifyCcKeyAdditionalParams, h_OldLst, h_NewLst); + + if(!LIST_IsEmpty(&p_FmPcdCcNode->ccTreeIdLst)) + UpdateAdPtrOfTreesWhichPointsOnCrntMdfNode(p_FmPcdCcNode, p_FmPcdModifyCcKeyAdditionalParams, h_OldLst, h_NewLst); + + return E_OK; +} + +static void FmPcdCcUpdateTreeOwner(t_FmPcdCcTree *p_FmPcdCcTree, bool add) +{ + ASSERT_COND(p_FmPcdCcTree); + + if(add) + p_FmPcdCcTree->owners++; + else + { + ASSERT_COND(p_FmPcdCcTree->owners); + p_FmPcdCcTree->owners--; + } +} + +#ifdef FM_PCD_CC_MANIP +static t_Error CheckAndSetManipParamsWithCcNodeParams(t_FmPcdCcNode *p_FmPcdCcNode) +{ + t_Error err = E_OK; + int i = 0; + + for(i = 0; i < p_FmPcdCcNode->numOfKeys; i++) + { + if(p_FmPcdCcNode->nextEngineAndRequiredAction[i].nextEngineParams.h_Manip) + { + err = FmPcdManipCheckParamsWithCcNodeParams(p_FmPcdCcNode->nextEngineAndRequiredAction[i].nextEngineParams.h_Manip, (t_Handle)p_FmPcdCcNode); + if(err) + return err; + } + } + + return err; +} +#endif /* FM_PCD_CC_MANIP */ + +static t_Error CcUpdateParams(t_Handle h_FmPcd, + t_Handle h_FmPort, + t_Handle h_FmTree, + bool validate) +{ + t_FmPcdCcTree *p_CcTree = (t_FmPcdCcTree *) h_FmTree; + + return CcUpdateParam(h_FmPcd, + h_FmPort, + p_CcTree->nextEngineAndRequiredAction, + p_CcTree->numOfEntries, + UINT_TO_PTR(p_CcTree->ccTreeBaseAddr), + validate, + 0, + h_FmTree, + FALSE); +} + +static t_Error CheckParams(t_Handle h_FmPcd, + t_FmPcdCcNodeParams *p_CcNodeParam, + t_FmPcdCcNode *p_FmPcdCcNode, + bool *isKeyTblAlloc) +{ + int tmp = 0; + t_FmPcdCcKeyParams *p_KeyParams; + t_Error err; + uint32_t requiredAction = 0; + + err = ValidateNextEngineParams(h_FmPcd, &p_CcNodeParam->keysParams.ccNextEngineParamsForMiss); + if(err) + RETURN_ERROR(MAJOR, err, ("For this node MissNextEngineParams are not valid")); + +#ifdef FM_PCD_CC_MANIP + if(p_CcNodeParam->keysParams.ccNextEngineParamsForMiss.h_Manip) + { + err = FmPcdManipCheckParamsForCcNextEgine(&p_CcNodeParam->keysParams.ccNextEngineParamsForMiss, &requiredAction); + if(err) + RETURN_ERROR(MAJOR, err, (NO_MSG)); + } +#endif /* FM_PCD_CC_MANIP */ + + memcpy(&p_FmPcdCcNode->nextEngineAndRequiredAction[p_FmPcdCcNode->numOfKeys].nextEngineParams,&p_CcNodeParam->keysParams.ccNextEngineParamsForMiss, sizeof(t_FmPcdCcNextEngineParams)); + p_FmPcdCcNode->nextEngineAndRequiredAction[p_FmPcdCcNode->numOfKeys].requiredAction = requiredAction; + + for(tmp = 0 ; tmp < p_FmPcdCcNode->numOfKeys; tmp++) + { + p_KeyParams = &p_CcNodeParam->keysParams.keyParams[tmp]; + + if(!p_KeyParams->p_Key) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("p_Key is not initialized")); + + + err = ValidateNextEngineParams(h_FmPcd, &p_KeyParams->ccNextEngineParams); + if(err) + RETURN_ERROR(MAJOR, err, (NO_MSG)); + + err = UpdateGblMask(p_FmPcdCcNode, + p_CcNodeParam->keysParams.keySize, + p_KeyParams->p_Mask); + +#ifdef FM_PCD_CC_MANIP + if(p_KeyParams->ccNextEngineParams.h_Manip) + { + err = FmPcdManipCheckParamsForCcNextEgine(&p_KeyParams->ccNextEngineParams, &requiredAction); + if(err) + RETURN_ERROR(MAJOR, err, (NO_MSG)); + } +#endif /* FM_PCD_CC_MANIP */ + + memcpy(&p_FmPcdCcNode->nextEngineAndRequiredAction[tmp],&p_KeyParams->ccNextEngineParams, sizeof(t_FmPcdCcNextEngineParams)); + p_FmPcdCcNode->nextEngineAndRequiredAction[tmp].requiredAction = requiredAction; + } + + *isKeyTblAlloc = TRUE; + return E_OK; +} + +static t_Error Ipv4TtlOrIpv6HopLimiCheckParams( t_Handle h_FmPcd, + t_FmPcdCcNodeParams *p_CcNodeParam, t_FmPcdCcNode *p_FmPcdCcNode, + bool *isKeyTblAlloc) +{ + int tmp = 0; + t_FmPcdCcKeyParams *p_KeyParams; + t_Error err; + uint8_t key = 0x01; + uint32_t requiredAction = 0; + + if(p_FmPcdCcNode->numOfKeys != 1 ) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("for IPV4TTL and IPV6_HOP_LIMIT has to be only 1 key - TTL = 1, otherwise it's Miss")); + + err = ValidateNextEngineParams(h_FmPcd, &p_CcNodeParam->keysParams.ccNextEngineParamsForMiss); + if(err) + RETURN_ERROR(MAJOR, err, ("For this node MissNextEngineParams are not valid")); + +#ifdef FM_PCD_CC_MANIP + if(p_CcNodeParam->keysParams.ccNextEngineParamsForMiss.h_Manip) + { + err = FmPcdManipCheckParamsForCcNextEgine(&p_CcNodeParam->keysParams.ccNextEngineParamsForMiss, &requiredAction); + if(err) + RETURN_ERROR(MAJOR, err, (NO_MSG)); + } +#endif /* FM_PCD_CC_MANIP */ + + memcpy(&p_FmPcdCcNode->nextEngineAndRequiredAction[p_FmPcdCcNode->numOfKeys].nextEngineParams, &p_CcNodeParam->keysParams.ccNextEngineParamsForMiss, sizeof(t_FmPcdCcNextEngineParams)); + p_FmPcdCcNode->nextEngineAndRequiredAction[p_FmPcdCcNode->numOfKeys].requiredAction = requiredAction; + + for(tmp = 0 ; tmp < p_FmPcdCcNode->numOfKeys; tmp++) + { + p_KeyParams = &p_CcNodeParam->keysParams.keyParams[tmp]; + if(p_KeyParams->p_Mask) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("If node of the type IPV4_TTL or IPV6_HOP_LIMIT p_Mask can not be initialized")); + if(memcmp(p_KeyParams->p_Key, &key, 1) != 0) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("If node of the type IPV4_TTL or IPV6_HOP_LIMIT p_Key has to be 1")); + err = ValidateNextEngineParams(h_FmPcd, &p_KeyParams->ccNextEngineParams); + if(err) + RETURN_ERROR(MAJOR, err, (NO_MSG)); + +#ifdef FM_PCD_CC_MANIP + if(p_KeyParams->ccNextEngineParams.h_Manip) + { + err = FmPcdManipCheckParamsForCcNextEgine(&p_KeyParams->ccNextEngineParams, &requiredAction); + if(err) + RETURN_ERROR(MAJOR, err, (NO_MSG)); + } +#endif /* FM_PCD_CC_MANIP */ + + memcpy(&p_FmPcdCcNode->nextEngineAndRequiredAction[tmp].nextEngineParams, &p_KeyParams->ccNextEngineParams, sizeof(t_FmPcdCcNextEngineParams)); + p_FmPcdCcNode->nextEngineAndRequiredAction[tmp].requiredAction = requiredAction; + } + + *isKeyTblAlloc = FALSE; + return E_OK; +} + +static t_Error IcHashIndexedCheckParams(t_Handle h_FmPcd, + t_FmPcdCcNodeParams *p_CcNodeParam, + t_FmPcdCcNode *p_FmPcdCcNode, + /*uint16_t *ccInfo,*/ + /*t_List *ccNextDifferentNodesLst,*/ + bool *isKeyTblAlloc) +{ + int tmp = 0, countOnes = 0; + t_FmPcdCcKeyParams *p_KeyParams; + t_Error err; + uint16_t glblMask = p_CcNodeParam->extractCcParams.extractNonHdr.icIndxMask; + uint16_t countMask = (uint16_t)(glblMask >> 4); +#ifdef FM_PCD_CC_MANIP + uint32_t requiredAction; +#endif /* FM_PCD_CC_MANIP */ + + if (glblMask & 0x000f) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("icIndxMask has to be with last nibble 0")); + + while (countMask) + { + countOnes++; + countMask=(uint16_t)(countMask>>1); + } + + if (!POWER_OF_2(p_FmPcdCcNode->numOfKeys)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("For Node of the type INDEXED numOfKeys has to be powerOfTwo")); + if (p_FmPcdCcNode->numOfKeys != ((uint32_t)1<keysParams.ccNextEngineParamsForMiss); + if(GET_ERROR_TYPE(err)!= E_NOT_SUPPORTED) + RETURN_ERROR(MAJOR, err, ("MissNextEngineParams for the node of the type IC_INDEX_HASH has to be UnInitialized")); + + for(tmp = 0 ; tmp < p_FmPcdCcNode->numOfKeys; tmp++) + { + p_KeyParams = &p_CcNodeParam->keysParams.keyParams[tmp]; + if(p_KeyParams->p_Mask || p_KeyParams->p_Key) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("For Node of the type IC_HASH_INDEXED p_Key or p_Mask has to be NULL")); + + if((glblMask & (tmp * 16)) == (tmp * 16)) + { + err = ValidateNextEngineParams(h_FmPcd, &p_KeyParams->ccNextEngineParams); + if(err) + RETURN_ERROR(MAJOR, err, ("This index has to be initialized for the node of the type IC_INDEX_HASH according to settings of GlobalMask ")); + +#ifdef FM_PCD_CC_MANIP + if(p_KeyParams->ccNextEngineParams.h_Manip) + { + err = FmPcdManipCheckParamsForCcNextEgine(&p_KeyParams->ccNextEngineParams, &requiredAction); + if(err) + RETURN_ERROR(MAJOR, err, (NO_MSG)); + } + p_FmPcdCcNode->nextEngineAndRequiredAction[tmp].requiredAction = requiredAction; +#endif /* FM_PCD_CC_MANIP */ + + memcpy(&p_FmPcdCcNode->nextEngineAndRequiredAction[tmp].nextEngineParams,&p_KeyParams->ccNextEngineParams, sizeof(t_FmPcdCcNextEngineParams)); + } + else + { + err = ValidateNextEngineParams(h_FmPcd, &p_KeyParams->ccNextEngineParams); + if(GET_ERROR_TYPE(err)!= E_NOT_SUPPORTED) + RETURN_ERROR(MAJOR, err, ("This index has to be UnInitialized for the node of the type IC_INDEX_HASH according to settings of GlobalMask")); + } + } + *isKeyTblAlloc = FALSE; + memcpy(PTR_MOVE(p_FmPcdCcNode->p_GlblMask, 2), &glblMask, 2); + + return E_OK; +} + +t_Error FmPcdCcModifyNextEngineParamTree(t_Handle h_FmPcd, t_Handle h_FmPcdCcTree, uint8_t grpId, uint8_t index, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams, t_List *h_OldLst, t_List *h_NewLst, t_Handle *h_AdditionalParams) +{ + t_FmPcdCcTree *p_FmPcdCcTree = (t_FmPcdCcTree *)h_FmPcdCcTree; + t_Error err = E_OK; + uint16_t keyIndex; + t_FmPcdModifyCcKeyAdditionalParams *p_ModifyKeyParams; + + SANITY_CHECK_RETURN_ERROR((grpId <= 7),E_INVALID_VALUE); + SANITY_CHECK_RETURN_ERROR(h_FmPcdCcTree,E_INVALID_VALUE); + + if(grpId >= p_FmPcdCcTree->numOfGrps) + RETURN_ERROR(MAJOR, E_INVALID_HANDLE, ("grpId you asked > numOfGroup of relevant tree")); + + if(index >= p_FmPcdCcTree->fmPcdGroupParam[grpId].numOfEntriesInGroup) + RETURN_ERROR(MAJOR, E_INVALID_HANDLE, ("index > numOfEntriesInGroup")); + + keyIndex = (uint16_t)(p_FmPcdCcTree->fmPcdGroupParam[grpId].baseGroupEntry + index); + + err = ModifyKeyCommonPart1(h_FmPcdCcTree, keyIndex, h_AdditionalParams, e_MODIFY_STATE_CHANGE, TRUE, TRUE); + if(err) + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); + + p_ModifyKeyParams = (t_FmPcdModifyCcKeyAdditionalParams *)*h_AdditionalParams; + p_ModifyKeyParams->tree = TRUE; + + err = BuildNewNodeModifyNextEngine (h_FmPcd, h_FmPcdCcTree, keyIndex,p_FmPcdCcNextEngineParams, h_OldLst, h_NewLst, p_ModifyKeyParams); + if(err) + { + XX_Free(p_ModifyKeyParams); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + return E_OK; + +} + +t_Error FmPcdCcRemoveKey(t_Handle h_FmPcd, t_Handle h_FmPcdCcNode, uint8_t keyIndex, t_List *h_OldLst, t_List *h_NewLst, t_Handle *h_AdditionalParams) +{ + + t_FmPcdCcNode *p_FmPcdCcNode = (t_FmPcdCcNode *) h_FmPcdCcNode; + t_Error err = E_OK; + t_FmPcdModifyCcKeyAdditionalParams *p_ModifyKeyParams; + + if(keyIndex >= p_FmPcdCcNode->numOfKeys) + RETURN_ERROR(MAJOR, E_INVALID_HANDLE, ("impossible to remove key when numOfKeys <= keyIndex")); + + if(!p_FmPcdCcNode->numOfKeys) + RETURN_ERROR(MAJOR, E_INVALID_HANDLE, ("keyIndex you asked > numOfKeys of relevant node that was initialized")); + + if(p_FmPcdCcNode->h_FmPcd != h_FmPcd) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("handler to FmPcd is diferent from one which was assigned to the node in the Init time")); + + err = ModifyKeyCommonPart1(p_FmPcdCcNode, keyIndex, h_AdditionalParams, e_MODIFY_STATE_REMOVE, TRUE, FALSE); + if(err) + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); + + p_ModifyKeyParams = (t_FmPcdModifyCcKeyAdditionalParams *)*h_AdditionalParams; + err = BuildNewNodeRemoveKey (p_FmPcdCcNode, keyIndex, p_ModifyKeyParams); + if(err) + { + XX_Free(p_ModifyKeyParams); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + err = UpdatePtrWhichPointOnCrntMdfNode(p_FmPcdCcNode, p_ModifyKeyParams, h_OldLst, h_NewLst); + if(err) + { + ReleaseNewNodeCommonPart(p_ModifyKeyParams); + XX_Free(p_ModifyKeyParams); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + return E_OK; + +} + +t_Error FmPcdCcModifyKey(t_Handle h_FmPcd, t_Handle h_FmPcdCcNode, uint8_t keyIndex, uint8_t keySize, uint8_t *p_Key, uint8_t *p_Mask, t_List *h_OldLst, t_List *h_NewLst,t_Handle *h_AdditionalParams) +{ + t_FmPcdCcNode *p_FmPcdCcNode = (t_FmPcdCcNode *)h_FmPcdCcNode; + t_Error err = E_OK; + t_FmPcdModifyCcKeyAdditionalParams *p_ModifyKeyParams; + + if(keyIndex >= p_FmPcdCcNode->numOfKeys) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("keyIndex > previousely cleared last index + 1")); + + if((p_FmPcdCcNode->numOfKeys + 1) > FM_PCD_MAX_NUM_OF_CC_NODES) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("numOfKeys with new key can not be larger than 255")); + + if(keySize != p_FmPcdCcNode->userSizeOfExtraction) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("size for ModifyKey has to be the same as defined in SetNode")); + + if(p_FmPcdCcNode->h_FmPcd != h_FmPcd) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("handler to FmPcd is diferent from one which was assigned to the node in the Init time")); + + err = ModifyKeyCommonPart1(p_FmPcdCcNode, keyIndex, h_AdditionalParams, e_MODIFY_STATE_CHANGE, TRUE, FALSE); + if(err) + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); + + p_ModifyKeyParams = (t_FmPcdModifyCcKeyAdditionalParams *)*h_AdditionalParams; + + err = BuildNewNodeModifyKey (p_FmPcdCcNode, keyIndex, p_Key, p_Mask, p_ModifyKeyParams); + if(err) + { + XX_Free(p_ModifyKeyParams); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + err = UpdatePtrWhichPointOnCrntMdfNode(p_FmPcdCcNode, p_ModifyKeyParams, h_OldLst, h_NewLst); + if(err) + { + ReleaseNewNodeCommonPart(p_ModifyKeyParams); + XX_Free(p_ModifyKeyParams); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + return E_OK; +} + + +t_Error FmPcdCcModiyNextEngineParamNode(t_Handle h_FmPcd,t_Handle h_FmPcdCcNode, uint8_t keyIndex,t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams,t_List *h_OldPointer, t_List *h_NewPointer,t_Handle *h_AdditionalParams) +{ + t_FmPcdCcNode *p_FmPcdCcNode = (t_FmPcdCcNode *)h_FmPcdCcNode; + t_Error err = E_OK; + t_FmPcdModifyCcKeyAdditionalParams *p_ModifyKeyParams; + + SANITY_CHECK_RETURN_ERROR(h_FmPcd,E_INVALID_VALUE); + SANITY_CHECK_RETURN_ERROR(p_FmPcdCcNode,E_INVALID_HANDLE); + + if(keyIndex >= p_FmPcdCcNode->numOfKeys) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("keyIndex > previousely cleared last index + 1")); + + if((p_FmPcdCcNode->numOfKeys + 1) > FM_PCD_MAX_NUM_OF_CC_NODES) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("numOfKeys with new key can not be larger than 255")); + + err = ModifyKeyCommonPart1(p_FmPcdCcNode, keyIndex, h_AdditionalParams, e_MODIFY_STATE_CHANGE, FALSE, FALSE); + if(err) + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); + + p_ModifyKeyParams = (t_FmPcdModifyCcKeyAdditionalParams *)*h_AdditionalParams; + + err = BuildNewNodeModifyNextEngine (h_FmPcd, p_FmPcdCcNode, keyIndex,p_FmPcdCcNextEngineParams, h_OldPointer, h_NewPointer, p_ModifyKeyParams); + if(err) + { + XX_Free(p_ModifyKeyParams); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + return E_OK; +} + +t_Error FmPcdCcModifyMissNextEngineParamNode(t_Handle h_FmPcd,t_Handle h_FmPcdCcNode, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams,t_List *h_OldPointer, t_List *h_NewPointer,t_Handle *h_AdditionalParams) +{ + t_FmPcdCcNode *p_FmPcdCcNode = (t_FmPcdCcNode *)h_FmPcdCcNode; + t_Error err = E_OK; + uint16_t keyIndex; + t_FmPcdModifyCcKeyAdditionalParams *p_ModifyKeyParams; + + SANITY_CHECK_RETURN_ERROR(p_FmPcdCcNode,E_INVALID_VALUE); + + keyIndex = p_FmPcdCcNode->numOfKeys; + + err = ModifyKeyCommonPart1(p_FmPcdCcNode, keyIndex, h_AdditionalParams, e_MODIFY_STATE_CHANGE, TRUE, FALSE); + if(err) + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); + + p_ModifyKeyParams = (t_FmPcdModifyCcKeyAdditionalParams *)*h_AdditionalParams; + + err = BuildNewNodeModifyNextEngine (h_FmPcd, p_FmPcdCcNode, keyIndex,p_FmPcdCcNextEngineParams, h_OldPointer, h_NewPointer, p_ModifyKeyParams); + if(err) + { + XX_Free(p_ModifyKeyParams); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + return E_OK; +} + +t_Error FmPcdCcAddKey(t_Handle h_FmPcd, t_Handle h_FmPcdCcNode, uint8_t keyIndex, uint8_t keySize, t_FmPcdCcKeyParams *p_FmPcdCcKeyParams, t_List *h_OldLst, t_List *h_NewLst, t_Handle *h_AdditionalParams) +{ + t_FmPcdCcNode *p_FmPcdCcNode = (t_FmPcdCcNode *)h_FmPcdCcNode; + t_FmPcdModifyCcKeyAdditionalParams *p_ModifyKeyParams; + t_Error err = E_OK; + + if(keyIndex > p_FmPcdCcNode->numOfKeys) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("keyIndex > previousely cleared last index + 1")); + + if((p_FmPcdCcNode->numOfKeys + 1) > FM_PCD_MAX_NUM_OF_CC_NODES) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("numOfKeys with new key can not be larger than 255")); + + if(keySize != p_FmPcdCcNode->userSizeOfExtraction) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("keySize has to be defined as it was defined in initialization step.")); + + if(p_FmPcdCcNode->h_FmPcd != h_FmPcd) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("handler to FmPcd is diferent from one which was assigned to the node in the Init time")); + + err = ModifyKeyCommonPart1(p_FmPcdCcNode, keyIndex, h_AdditionalParams, e_MODIFY_STATE_ADD, TRUE, FALSE); + if(err) + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); + + p_ModifyKeyParams = (t_FmPcdModifyCcKeyAdditionalParams *)*h_AdditionalParams; + err = BuildNewNodeAddOrMdfyKeyAndNextEngine (h_FmPcd, p_FmPcdCcNode, keyIndex, p_FmPcdCcKeyParams, p_ModifyKeyParams, TRUE); + if(err) + { + XX_Free(p_ModifyKeyParams); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + err = UpdatePtrWhichPointOnCrntMdfNode(p_FmPcdCcNode, p_ModifyKeyParams, h_OldLst, h_NewLst); + if(err) + { + ReleaseNewNodeCommonPart(p_ModifyKeyParams); + XX_Free(p_ModifyKeyParams); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + return E_OK; +} + +t_Error FmPcdCcModifyKeyAndNextEngine(t_Handle h_FmPcd, t_Handle h_FmPcdCcNode, uint8_t keyIndex, uint8_t keySize, t_FmPcdCcKeyParams *p_FmPcdCcKeyParams, t_List *h_OldLst, t_List *h_NewLst, t_Handle *h_AdditionalParams) +{ + t_FmPcdCcNode *p_FmPcdCcNode = (t_FmPcdCcNode *)h_FmPcdCcNode; + t_FmPcdModifyCcKeyAdditionalParams *p_ModifyKeyParams; + t_Error err = E_OK; + + if(keyIndex > p_FmPcdCcNode->numOfKeys) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("keyIndex > previousely cleared last index + 1")); + + if((p_FmPcdCcNode->numOfKeys + 1) > FM_PCD_MAX_NUM_OF_CC_NODES) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("numOfKeys with new key can not be larger than 255")); + + if(keySize != p_FmPcdCcNode->userSizeOfExtraction) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("keySize has to be defined as it was defined in initialization step")); + + if(p_FmPcdCcNode->h_FmPcd != h_FmPcd) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("handler to FmPcd is diferent from one which was assigned to the node in the Init time")); + + err = ModifyKeyCommonPart1(p_FmPcdCcNode, keyIndex, h_AdditionalParams, e_MODIFY_STATE_CHANGE, TRUE, FALSE); + if(err) + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); + + p_ModifyKeyParams = (t_FmPcdModifyCcKeyAdditionalParams *)*h_AdditionalParams; + + err = BuildNewNodeAddOrMdfyKeyAndNextEngine (h_FmPcd, p_FmPcdCcNode, keyIndex, p_FmPcdCcKeyParams, p_ModifyKeyParams, FALSE); + if(err) + { + ReleaseNewNodeCommonPart(p_ModifyKeyParams); + XX_Free(p_ModifyKeyParams); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + err = UpdatePtrWhichPointOnCrntMdfNode(p_FmPcdCcNode, p_ModifyKeyParams, h_OldLst, h_NewLst); + if(err) + { + ReleaseNewNodeCommonPart(p_ModifyKeyParams); + XX_Free(p_ModifyKeyParams); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + return E_OK; +} + +t_Error FmPcdCcReleaseModifiedDataStructure(t_Handle h_FmPcd, t_List *h_FmPcdOldPointersLst, t_List *h_FmPcdNewPointersLst, uint16_t numOfGoodChanges, t_Handle *h_Params) +{ + t_FmPcdModifyCcKeyAdditionalParams *p_CcNewModifyAdditionalParams = (t_FmPcdModifyCcKeyAdditionalParams *)*h_Params; + t_List *p_Pos; + t_Error err = E_OK; + t_CcNodeInformation ccNodeInfo, *p_CcNodeInformation; + t_Handle h_Muram; + t_FmPcdCcNode *p_FmPcdCcNextNode; + t_List *p_UpdateLst; + + UNUSED(numOfGoodChanges); + + SANITY_CHECK_RETURN_ERROR(h_FmPcd,E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_CcNewModifyAdditionalParams->h_CurrentNode,E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(h_FmPcdOldPointersLst,E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(h_FmPcdNewPointersLst,E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR((numOfGoodChanges == LIST_NumOfObjs(h_FmPcdOldPointersLst)),E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR((numOfGoodChanges == LIST_NumOfObjs(h_FmPcdNewPointersLst)),E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR((LIST_NumOfObjs(h_FmPcdOldPointersLst) == LIST_NumOfObjs(h_FmPcdNewPointersLst)),E_INVALID_STATE); + + /*we don't update subtree of the new node with new tree because it was done in the previose stage*/ + if(p_CcNewModifyAdditionalParams->h_NodeForAdd) + { + p_FmPcdCcNextNode = (t_FmPcdCcNode*)p_CcNewModifyAdditionalParams->h_NodeForAdd; + if(!p_CcNewModifyAdditionalParams->tree) + p_UpdateLst = &p_FmPcdCcNextNode->ccPrevNodesLst; + else + p_UpdateLst = &p_FmPcdCcNextNode->ccTreeIdLst; + p_CcNodeInformation = FindNodeInfoInReleventLst(p_UpdateLst, p_CcNewModifyAdditionalParams->h_CurrentNode); + if(p_CcNodeInformation) + p_CcNodeInformation->index++; + else + { + memset(&ccNodeInfo, 0, sizeof(t_CcNodeInformation)); + ccNodeInfo.h_CcNode = (t_Handle)p_CcNewModifyAdditionalParams->h_CurrentNode; + ccNodeInfo.index = 1; + EnqueueNodeInfoToRelevantLst(p_UpdateLst, &ccNodeInfo); + } + } + + if(p_CcNewModifyAdditionalParams->h_NodeForRmv) + { + + p_FmPcdCcNextNode = (t_FmPcdCcNode*)p_CcNewModifyAdditionalParams->h_NodeForRmv; + if(!p_CcNewModifyAdditionalParams->tree) + { + p_UpdateLst = &p_FmPcdCcNextNode->ccPrevNodesLst; + LIST_FOR_EACH(p_Pos, &p_FmPcdCcNextNode->ccTreesLst) + { + p_CcNodeInformation = CC_NODE_F_OBJECT(p_Pos); + ASSERT_COND(p_CcNodeInformation->h_CcNode); + err = FmPcdCcSetRequiredAction(h_FmPcd, + UPDATE_CC_WITH_DELETE_TREE, + &((t_FmPcdCcNode *)(p_CcNewModifyAdditionalParams->h_CurrentNode))->nextEngineAndRequiredAction[p_CcNewModifyAdditionalParams->keyIndex], + PTR_MOVE(((t_FmPcdCcNode *)(p_CcNewModifyAdditionalParams->h_CurrentNode))->h_AdTable, p_CcNewModifyAdditionalParams->keyIndex*FM_PCD_CC_AD_ENTRY_SIZE), + 1, + p_CcNodeInformation->h_CcNode); + } + } + else + { + p_UpdateLst = &p_FmPcdCcNextNode->ccTreeIdLst; + err = FmPcdCcSetRequiredAction(h_FmPcd, + UPDATE_CC_WITH_DELETE_TREE, + &((t_FmPcdCcTree *)(p_CcNewModifyAdditionalParams->h_CurrentNode))->nextEngineAndRequiredAction[p_CcNewModifyAdditionalParams->keyIndex], + UINT_TO_PTR(((t_FmPcdCcTree *)(p_CcNewModifyAdditionalParams->h_CurrentNode))->ccTreeBaseAddr + p_CcNewModifyAdditionalParams->keyIndex*FM_PCD_CC_AD_ENTRY_SIZE), + 1, + p_CcNewModifyAdditionalParams->h_CurrentNode); + } + if(err) + return err; + + /*we remove from the subtree of the removed node tree because it wasn't done in the previose stage*/ + /*update ccPrevNodesLst or ccTreeIdLst of the removed node*/ + /*update of the nodeOwner*/ + p_CcNodeInformation = FindNodeInfoInReleventLst(p_UpdateLst, p_CcNewModifyAdditionalParams->h_CurrentNode); + ASSERT_COND(p_CcNodeInformation); + ASSERT_COND(p_CcNodeInformation->index); + p_CcNodeInformation->index--; + if(p_CcNodeInformation->index == 0) + DequeueNodeInfoFromRelevantLst(p_UpdateLst,p_CcNewModifyAdditionalParams->h_CurrentNode); + ASSERT_COND(LIST_NumOfObjs(&p_FmPcdCcNextNode->ccTreesLst) == 1); + UpdateNodeOwner(p_FmPcdCcNextNode, FALSE); + } + +#ifdef FM_PCD_CC_MANIP + if(p_CcNewModifyAdditionalParams->h_ManipForRmv) + FmPcdManipUpdateOwner(p_CcNewModifyAdditionalParams->h_ManipForRmv, FALSE); +#endif /* FM_PCD_CC_MANIP */ + + h_Muram = FmPcdGetMuramHandle(h_FmPcd); + ASSERT_COND(h_Muram); + + /*we release new AD which was allocated and updated for copy from to actual AD*/ + LIST_FOR_EACH(p_Pos, h_FmPcdNewPointersLst) + { + p_CcNodeInformation = CC_NODE_F_OBJECT(p_Pos); + ASSERT_COND(p_CcNodeInformation->h_CcNode); + FM_MURAM_FreeMem(h_Muram, p_CcNodeInformation->h_CcNode); + + } + + /*free Old data structure if it has to be freed - new data structure was allocated*/ + if(p_CcNewModifyAdditionalParams->p_AdTableOld) + FM_MURAM_FreeMem(h_Muram,p_CcNewModifyAdditionalParams->p_AdTableOld); + if(p_CcNewModifyAdditionalParams->p_KeysMatchTableOld) + FM_MURAM_FreeMem(h_Muram,p_CcNewModifyAdditionalParams->p_KeysMatchTableOld); + + /*update current modified node with changed fields if it's required*/ + if(!p_CcNewModifyAdditionalParams->tree) + { + if(p_CcNewModifyAdditionalParams->p_AdTableNew) + ((t_FmPcdCcNode *)(p_CcNewModifyAdditionalParams->h_CurrentNode))->h_AdTable = p_CcNewModifyAdditionalParams->p_AdTableNew; + if(p_CcNewModifyAdditionalParams->numOfKeys) + ((t_FmPcdCcNode *)(p_CcNewModifyAdditionalParams->h_CurrentNode))->numOfKeys = p_CcNewModifyAdditionalParams->numOfKeys; + if(p_CcNewModifyAdditionalParams->p_KeysMatchTableNew) + ((t_FmPcdCcNode *)(p_CcNewModifyAdditionalParams->h_CurrentNode))->h_KeysMatchTable = p_CcNewModifyAdditionalParams->p_KeysMatchTableNew; + memcpy(((t_FmPcdCcNode *)(p_CcNewModifyAdditionalParams->h_CurrentNode))->nextEngineAndRequiredAction, &p_CcNewModifyAdditionalParams->nextEngineAndRequiredAction, sizeof(t_FmPcdCcNextEngineAndRequiredActionParams) * (FM_PCD_MAX_NUM_OF_KEYS)); + } + else + memcpy(&((t_FmPcdCcTree *)(p_CcNewModifyAdditionalParams->h_CurrentNode))->nextEngineAndRequiredAction, &p_CcNewModifyAdditionalParams->nextEngineAndRequiredAction, sizeof(t_FmPcdCcNextEngineAndRequiredActionParams) * (((t_FmPcdCcTree *)(p_CcNewModifyAdditionalParams->h_CurrentNode))->numOfEntries)); + + ReleaseLst(h_FmPcdOldPointersLst); + ReleaseLst(h_FmPcdNewPointersLst); + XX_Free(p_CcNewModifyAdditionalParams); + + return E_OK; +} + +uint32_t FmPcdCcGetNodeAddrOffsetFromNodeInfo(t_Handle h_FmPcd, t_Handle h_Pointer) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + t_CcNodeInformation *p_CcNodeInfo; + + SANITY_CHECK_RETURN_VALUE(h_FmPcd,E_INVALID_HANDLE, (uint32_t)ILLEGAL_BASE); + + p_CcNodeInfo = CC_NODE_F_OBJECT(h_Pointer); + return (uint32_t)(XX_VirtToPhys(p_CcNodeInfo->h_CcNode) - p_FmPcd->physicalMuramBase); +} + +t_Error FmPcdCcGetGrpParams(t_Handle h_FmPcdCcTree, uint8_t grpId, uint32_t *p_GrpBits, uint8_t *p_GrpBase) +{ + t_FmPcdCcTree *p_FmPcdCcTree = (t_FmPcdCcTree *) h_FmPcdCcTree; + + SANITY_CHECK_RETURN_ERROR(h_FmPcdCcTree, E_INVALID_HANDLE); + + if(grpId >= p_FmPcdCcTree->numOfGrps) + RETURN_ERROR(MAJOR, E_INVALID_HANDLE, ("grpId you asked > numOfGroup of relevant tree")); + *p_GrpBits = p_FmPcdCcTree->fmPcdGroupParam[grpId].totalBitsMask; + *p_GrpBase = p_FmPcdCcTree->fmPcdGroupParam[grpId].baseGroupEntry; + return E_OK; +} + +t_Error FmPcdCcBindTree(t_Handle h_FmPcd, t_Handle h_FmPcdCcTree, uint32_t *p_Offset, t_Handle h_FmPort) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_FmPcdCcTree *p_FmPcdCcTree = (t_FmPcdCcTree *)h_FmPcdCcTree; + t_Error err = E_OK; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd,E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcdCcTree,E_INVALID_STATE); + + FmPcdCcUpdateTreeOwner(p_FmPcdCcTree, TRUE); + + *p_Offset = (uint32_t)(XX_VirtToPhys(UINT_TO_PTR(p_FmPcdCcTree->ccTreeBaseAddr)) - + p_FmPcd->physicalMuramBase); + + err = CcUpdateParams(h_FmPcd, h_FmPort, h_FmPcdCcTree, TRUE); + + return err; +} + +t_Error FmPcdCcUnbindTree(t_Handle h_FmPcd, t_Handle h_FmPcdCcTree) +{ + t_FmPcdCcTree *p_FmPcdCcTree = (t_FmPcdCcTree *)h_FmPcdCcTree; + + UNUSED(h_FmPcd); + + SANITY_CHECK_RETURN_ERROR(p_FmPcdCcTree,E_INVALID_HANDLE); + + FmPcdCcUpdateTreeOwner(p_FmPcdCcTree, FALSE); + + return E_OK; +} + +t_Error FmPcdCcTreeTryLock(t_Handle h_FmPcdCcTree) +{ + if (TRY_LOCK(NULL, &((t_FmPcdCcTree *)h_FmPcdCcTree)->lock)) + return E_OK; + return ERROR_CODE(E_BUSY); +} + +t_Error FmPcdCcNodeTreeTryLock(t_Handle h_FmPcd,t_Handle h_FmPcdCcNode, t_List *p_List) +{ + t_FmPcdCcNode *p_FmPcdCcNode = (t_FmPcdCcNode *)h_FmPcdCcNode; + t_List *p_Pos; + t_CcNodeInformation *p_CcNodeInfo, nodeInfo; + t_Error err = E_OK; + + UNUSED(h_FmPcd); + + if(LIST_IsEmpty(&p_FmPcdCcNode->ccTreesLst)) + RETURN_ERROR(MAJOR, E_NOT_AVAILABLE, ("asked for more nodes in CC than MAX")) ; + LIST_FOR_EACH(p_Pos, &p_FmPcdCcNode->ccTreesLst) + { + p_CcNodeInfo = CC_NODE_F_OBJECT(p_Pos); + ASSERT_COND(p_CcNodeInfo->h_CcNode); + err = FmPcdCcTreeTryLock(p_CcNodeInfo->h_CcNode); + if(err == E_OK) + { + memset(&nodeInfo, 0, sizeof(t_CcNodeInformation)); + nodeInfo.h_CcNode = p_CcNodeInfo->h_CcNode; + EnqueueNodeInfoToRelevantLst(p_List, &nodeInfo); + } + else + FmPcdCcNodeTreeReleaseLock(p_List); + } + + return err; +} + +t_Handle FM_PCD_CcBuildTree(t_Handle h_FmPcd, t_FmPcdCcTreeParams *p_PcdGroupsParam) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + t_Error err = E_OK; + int i = 0, j = 0, k = 0; + t_FmPcdCcTree *p_FmPcdCcTree; + uint8_t numOfEntries; + t_Handle p_CcTreeTmp; + t_FmPcdCcGrpParams *p_FmPcdCcGroupParams; + t_FmPcdCcNextEngineAndRequiredActionParams params[16]; + t_NetEnvParams netEnvParams; + uint8_t lastOne = 0; + uint32_t requiredAction = 0; + t_FmPcdCcNode *p_FmPcdCcNextNode; + t_CcNodeInformation ccNodeInfo, *p_CcInformation; + + SANITY_CHECK_RETURN_VALUE(h_FmPcd,E_INVALID_HANDLE, NULL); + SANITY_CHECK_RETURN_VALUE(p_PcdGroupsParam,E_INVALID_HANDLE, NULL); + + if (p_PcdGroupsParam->numOfGrps > FM_PCD_MAX_NUM_OF_CC_GROUPS) + { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("numOfGrps should not exceed %d", FM_PCD_MAX_NUM_OF_CC_GROUPS)); + return NULL; + } + + p_FmPcdCcTree = (t_FmPcdCcTree*)XX_Malloc(sizeof(t_FmPcdCcTree)); + if(!p_FmPcdCcTree) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("PCD tree structure")); + return NULL; + } + memset(p_FmPcdCcTree, 0, sizeof(t_FmPcdCcTree)) ; + memset(params, 0, 16 * sizeof(t_FmPcdCcNextEngineParams)); + + INIT_LIST(&p_FmPcdCcTree->fmPortsLst); + + numOfEntries = 0; + p_FmPcdCcTree->netEnvId = (uint8_t)(PTR_TO_UINT(p_PcdGroupsParam->h_NetEnv)-1); + for(i = 0; i < p_PcdGroupsParam->numOfGrps; i++) + { + p_FmPcdCcGroupParams = &p_PcdGroupsParam->ccGrpParams[i]; + + if (p_FmPcdCcGroupParams->numOfDistinctionUnits > FM_PCD_MAX_NUM_OF_CC_UNITS) + { + DeleteTree(p_FmPcdCcTree,p_FmPcd); + REPORT_ERROR(MAJOR, E_INVALID_VALUE, + ("numOfDistinctionUnits (group %d) should not exceed %d", i, FM_PCD_MAX_NUM_OF_CC_UNITS)); + return NULL; + } + + p_FmPcdCcTree->fmPcdGroupParam[i].baseGroupEntry = numOfEntries; + p_FmPcdCcTree->fmPcdGroupParam[i].numOfEntriesInGroup =(uint8_t)( 0x01 << p_FmPcdCcGroupParams->numOfDistinctionUnits); + numOfEntries += p_FmPcdCcTree->fmPcdGroupParam[i].numOfEntriesInGroup; + if(numOfEntries > 16) + { + DeleteTree(p_FmPcdCcTree,p_FmPcd); + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("numOfEntries can not be larger than 16")); + return NULL; + } + if(lastOne) + { + if(p_FmPcdCcTree->fmPcdGroupParam[i].numOfEntriesInGroup > lastOne) + { + DeleteTree(p_FmPcdCcTree,p_FmPcd); + REPORT_ERROR(MAJOR, E_CONFLICT, ("numOfEntries per group must be set in descending order")); + return NULL; + } + } + + lastOne = p_FmPcdCcTree->fmPcdGroupParam[i].numOfEntriesInGroup; + + netEnvParams.netEnvId = p_FmPcdCcTree->netEnvId; + netEnvParams.numOfDistinctionUnits = p_FmPcdCcGroupParams->numOfDistinctionUnits; + memcpy(netEnvParams.unitIds, &p_FmPcdCcGroupParams->unitIds, (sizeof(uint8_t)) * p_FmPcdCcGroupParams->numOfDistinctionUnits); + err = PcdGetUnitsVector(p_FmPcd, &netEnvParams); + if(err) + { + DeleteTree(p_FmPcdCcTree,p_FmPcd); + REPORT_ERROR(MAJOR, err, NO_MSG); + return NULL; + } + + p_FmPcdCcTree->fmPcdGroupParam[i].totalBitsMask = netEnvParams.vector; + for(j = 0; j < p_FmPcdCcTree->fmPcdGroupParam[i].numOfEntriesInGroup; j++) + { + err = ValidateNextEngineParams(h_FmPcd,&p_FmPcdCcGroupParams->nextEnginePerEntriesInGrp[j]); + if(err) + { + DeleteTree(p_FmPcdCcTree,p_FmPcd); + REPORT_ERROR(MAJOR, err, (NO_MSG)); + return NULL; + } + +#ifdef FM_PCD_CC_MANIP + if(p_FmPcdCcGroupParams->nextEnginePerEntriesInGrp[j].h_Manip) + { + err = FmPcdManipCheckParamsForCcNextEgine(&p_FmPcdCcGroupParams->nextEnginePerEntriesInGrp[j], &requiredAction); + if(err) + { + DeleteTree(p_FmPcdCcTree,p_FmPcd); + REPORT_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); + return NULL; + } + } +#endif /* FM_PCD_CC_MANIP */ + + memcpy(¶ms[k].nextEngineParams, &p_FmPcdCcGroupParams->nextEnginePerEntriesInGrp[j], sizeof(t_FmPcdCcNextEngineParams)); + requiredAction |= UPDATE_CC_WITH_TREE; + params[k].requiredAction = requiredAction; + k++; + } + } + + p_FmPcdCcTree->numOfEntries = (uint8_t)k; + p_FmPcdCcTree->numOfGrps = p_PcdGroupsParam->numOfGrps; + p_FmPcdCcTree->ccTreeBaseAddr = + PTR_TO_UINT(FM_MURAM_AllocMem(FmPcdGetMuramHandle(h_FmPcd), + (uint32_t)( k * FM_PCD_CC_AD_ENTRY_SIZE), + FM_PCD_CC_AD_TABLE_ALIGN)); + + if(!p_FmPcdCcTree->ccTreeBaseAddr) + { + DeleteTree(p_FmPcdCcTree,p_FmPcd); + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("No memory")); + return NULL; + } + IOMemSet32(UINT_TO_PTR(p_FmPcdCcTree->ccTreeBaseAddr), 0, (uint32_t)(k * FM_PCD_CC_AD_ENTRY_SIZE)); + + p_CcTreeTmp = UINT_TO_PTR(p_FmPcdCcTree->ccTreeBaseAddr); + + j = 0; + for(i = 0; i < numOfEntries; i++) + { + NextStepAd(p_CcTreeTmp,¶ms[i].nextEngineParams,p_FmPcd); + p_CcTreeTmp = PTR_MOVE(p_CcTreeTmp, FM_PCD_CC_AD_ENTRY_SIZE); + memcpy(&p_FmPcdCcTree->nextEngineAndRequiredAction[i], ¶ms[i], sizeof(t_FmPcdCcNextEngineAndRequiredActionParams)); + if(p_FmPcdCcTree->nextEngineAndRequiredAction[i].nextEngineParams.nextEngine== e_FM_PCD_CC) + { + p_FmPcdCcNextNode = (t_FmPcdCcNode*)p_FmPcdCcTree->nextEngineAndRequiredAction[i].nextEngineParams.params.ccParams.h_CcNode; + if(!IsNodeInModifiedState((t_Handle)p_FmPcdCcNextNode)) + { + memset(&ccNodeInfo, 0, sizeof(t_CcNodeInformation)); + ccNodeInfo.h_CcNode = (t_Handle)p_FmPcdCcTree; + ccNodeInfo.index = 1; + EnqueueNodeInfoToRelevantLst(&p_FmPcdCcNextNode->ccTreeIdLst, &ccNodeInfo); + UpdateNodeWithModifiedState((t_Handle)p_FmPcdCcNextNode, TRUE); + } + else + { + p_CcInformation = FindNodeInfoInReleventLst(&p_FmPcdCcNextNode->ccTreeIdLst,(t_Handle)p_FmPcdCcTree); + ASSERT_COND(p_CcInformation); + p_CcInformation->index++; + } + } + } + + FmPcdIncNetEnvOwners(h_FmPcd, p_FmPcdCcTree->netEnvId); + p_CcTreeTmp = UINT_TO_PTR(p_FmPcdCcTree->ccTreeBaseAddr); + + for(i = 0; i < p_FmPcdCcTree->numOfEntries ; i++) + { + if(p_FmPcdCcTree->nextEngineAndRequiredAction[i].nextEngineParams.nextEngine == e_FM_PCD_CC) + { + p_FmPcdCcNextNode = (t_FmPcdCcNode*)p_FmPcdCcTree->nextEngineAndRequiredAction[i].nextEngineParams.params.ccParams.h_CcNode; + + if(IsNodeInModifiedState((t_Handle)p_FmPcdCcNextNode)) + UpdateNodeWithModifiedState((t_Handle)p_FmPcdCcNextNode, FALSE); + } + } + + for(i = 0; i < numOfEntries; i++) + { + if(p_FmPcdCcTree->nextEngineAndRequiredAction[i].requiredAction) + { + err = FmPcdCcSetRequiredAction(h_FmPcd, p_FmPcdCcTree->nextEngineAndRequiredAction[i].requiredAction, &p_FmPcdCcTree->nextEngineAndRequiredAction[i], p_CcTreeTmp,1, p_FmPcdCcTree); + if(err) + { + DeleteTree(p_FmPcdCcTree,p_FmPcd); + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("No memory")); + return NULL; + } + p_CcTreeTmp = PTR_MOVE(p_CcTreeTmp, FM_PCD_CC_AD_ENTRY_SIZE); + } + } + + return p_FmPcdCcTree; +} + +t_Error FM_PCD_CcDeleteTree(t_Handle h_FmPcd, t_Handle h_CcTree) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + t_FmPcdCcTree *p_CcTree = (t_FmPcdCcTree *)h_CcTree; + int i= 0; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_CcTree,E_INVALID_STATE); + + FmPcdDecNetEnvOwners(h_FmPcd, p_CcTree->netEnvId); + + if(p_CcTree->owners) + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("the tree with this ID can not be removed because this tree is occupied, first - unbind this tree")); + + for(i = 0; i numOfEntries; i++) + { + if(p_CcTree->nextEngineAndRequiredAction[i].nextEngineParams.nextEngine == e_FM_PCD_CC) + UpdateNodeOwner(p_CcTree->nextEngineAndRequiredAction[i].nextEngineParams.params.ccParams.h_CcNode, FALSE); + } + +#ifdef FM_PCD_CC_MANIP + for(i = 0; i < p_CcTree->numOfEntries; i++) + { + if(p_CcTree->nextEngineAndRequiredAction[i].nextEngineParams.h_Manip) + FmPcdManipUpdateOwner(p_CcTree->nextEngineAndRequiredAction[i].nextEngineParams.h_Manip, FALSE); + } +#endif /* FM_PCD_CC_MANIP */ + + DeleteTree(p_CcTree, p_FmPcd); + return E_OK; +} + +t_Handle FM_PCD_CcSetNode(t_Handle h_FmPcd, t_FmPcdCcNodeParams *p_CcNodeParam) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *) h_FmPcd; + t_FmPcdCcNode *p_FmPcdCcNode, *p_FmPcdCcNextNode; + t_Error err = E_OK; + int tmp, size; + bool glblMask = FALSE; + t_FmPcdCcKeyParams *p_KeyParams; + t_Handle p_KeysMatchTblTmp; + t_Handle p_AdTableTmp; + bool fullField = FALSE; + ccPrivateInfo_t icCode = CC_PRIVATE_INFO_NONE; + bool isKeyTblAlloc, fromIc = FALSE; + t_CcNodeInformation ccNodeInfo, *p_CcInformation; + + SANITY_CHECK_RETURN_VALUE(h_FmPcd,E_INVALID_HANDLE,NULL); + + /* + if (!p_CcNodeParam->keysParams.keySize || + !p_CcNodeParam->keysParams.numOfKeys) + { + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("At least one key of keySize > 0 must be defined.")); + return NULL; + } + */ + p_FmPcdCcNode = (t_FmPcdCcNode*)XX_Malloc(sizeof(t_FmPcdCcNode)); + if(!p_FmPcdCcNode) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("No memory")); + return NULL; + } + memset(p_FmPcdCcNode, 0, sizeof(t_FmPcdCcNode)); + + p_FmPcdCcNode->p_GlblMask = (t_Handle)XX_Malloc(CC_GLBL_MASK_SIZE * sizeof(uint8_t)); + memset(p_FmPcdCcNode->p_GlblMask, 0, CC_GLBL_MASK_SIZE * sizeof(uint8_t)); + + p_FmPcdCcNode->numOfKeys = p_CcNodeParam->keysParams.numOfKeys; + + p_FmPcdCcNode->h_FmPcd = h_FmPcd; + + INIT_LIST(&p_FmPcdCcNode->ccPrevNodesLst); + INIT_LIST(&p_FmPcdCcNode->ccTreeIdLst); + INIT_LIST(&p_FmPcdCcNode->ccTreesLst); + + if((p_CcNodeParam->extractCcParams.type == e_FM_PCD_EXTRACT_BY_HDR) && + ((p_CcNodeParam->extractCcParams.extractByHdr.hdr == HEADER_TYPE_IPv4) || + (p_CcNodeParam->extractCcParams.extractByHdr.hdr == HEADER_TYPE_IPv6)) && + (p_CcNodeParam->extractCcParams.extractByHdr.type == e_FM_PCD_EXTRACT_FULL_FIELD) && + ((p_CcNodeParam->extractCcParams.extractByHdr.extractByHdrType.fullField.ipv6 == NET_HEADER_FIELD_IPv6_HOP_LIMIT) || + (p_CcNodeParam->extractCcParams.extractByHdr.extractByHdrType.fullField.ipv4 == NET_HEADER_FIELD_IPv4_TTL))) + { + err = Ipv4TtlOrIpv6HopLimiCheckParams(h_FmPcd, p_CcNodeParam, p_FmPcdCcNode, &isKeyTblAlloc); + glblMask = FALSE; + + } + else if((p_CcNodeParam->extractCcParams.type == e_FM_PCD_EXTRACT_NON_HDR) && + ((p_CcNodeParam->extractCcParams.extractNonHdr.src == e_FM_PCD_EXTRACT_FROM_KEY) || + (p_CcNodeParam->extractCcParams.extractNonHdr.src == e_FM_PCD_EXTRACT_FROM_HASH) || + (p_CcNodeParam->extractCcParams.extractNonHdr.src == e_FM_PCD_EXTRACT_FROM_FLOW_ID))) + { + if((p_CcNodeParam->extractCcParams.extractNonHdr.src == e_FM_PCD_EXTRACT_FROM_FLOW_ID) && + (p_CcNodeParam->extractCcParams.extractNonHdr.offset != 0)) + { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("In the case of the extraction from e_FM_PCD_EXTRACT_FROM_FLOW_ID offset has to be 0")); + return NULL; + } + + icCode = IcDefineCode(p_CcNodeParam); + fromIc = TRUE; + if(icCode == CC_PRIVATE_INFO_NONE) + { + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("user asked extraction from IC and field in internal context or action wasn't initialized in the right way")); + return NULL; + } + + if((icCode == CC_PRIVATE_INFO_IC_DEQ_FQID_INDEX_LOOKUP) || (icCode == CC_PRIVATE_INFO_IC_HASH_INDEX_LOOKUP)) + { + err = IcHashIndexedCheckParams(h_FmPcd, p_CcNodeParam, p_FmPcdCcNode, &isKeyTblAlloc); + + glblMask = TRUE; + } + else + { + err = CheckParams(h_FmPcd, p_CcNodeParam,p_FmPcdCcNode, &isKeyTblAlloc); + if(p_FmPcdCcNode->glblMaskSize) + glblMask = TRUE; + } + } + else + { + err = CheckParams(h_FmPcd, p_CcNodeParam,p_FmPcdCcNode, &isKeyTblAlloc); + if(p_FmPcdCcNode->glblMaskSize) + glblMask = TRUE; + } + + if(err) + { + DeleteNode(p_FmPcdCcNode); + REPORT_ERROR(MAJOR, err, NO_MSG); + return NULL; + } + + switch(p_CcNodeParam->extractCcParams.type) + { + case(e_FM_PCD_EXTRACT_BY_HDR): + switch(p_CcNodeParam->extractCcParams.extractByHdr.type) + { + case(e_FM_PCD_EXTRACT_FULL_FIELD): + p_FmPcdCcNode->parseCode = GetFullFieldParseCode(p_CcNodeParam->extractCcParams.extractByHdr.hdr, p_CcNodeParam->extractCcParams.extractByHdr.hdrIndex, + p_CcNodeParam->extractCcParams.extractByHdr.extractByHdrType.fullField); + GetSizeHeaderField(p_CcNodeParam->extractCcParams.extractByHdr.hdr, p_CcNodeParam->extractCcParams.extractByHdr.extractByHdrType.fullField, &p_FmPcdCcNode->sizeOfExtraction); + fullField = TRUE; + if((p_FmPcdCcNode->parseCode != CC_PC_FF_TCI1) && (p_FmPcdCcNode->parseCode != CC_PC_FF_TCI2) && + (p_FmPcdCcNode->parseCode != CC_PC_FF_MPLS1) && (p_FmPcdCcNode->parseCode != CC_PC_FF_MPLS1) && + (p_FmPcdCcNode->parseCode != CC_PC_FF_IPV4IPTOS_TC1) && (p_FmPcdCcNode->parseCode != CC_PC_FF_IPV4IPTOS_TC2) && + (p_FmPcdCcNode->parseCode != CC_PC_FF_IPTOS_IPV6TC1_IPV6FLOW1) && (p_FmPcdCcNode->parseCode != CC_PC_FF_IPTOS_IPV6TC2_IPV6FLOW2) && + glblMask) + { + glblMask = FALSE; + p_FmPcdCcNode->glblMaskSize = 4; + p_FmPcdCcNode->lclMask = TRUE; + } + break; + case(e_FM_PCD_EXTRACT_FROM_HDR): + p_FmPcdCcNode->sizeOfExtraction = p_CcNodeParam->extractCcParams.extractByHdr.extractByHdrType.fromHdr.size; + p_FmPcdCcNode->offset = p_CcNodeParam->extractCcParams.extractByHdr.extractByHdrType.fromHdr.offset; + p_FmPcdCcNode->parseCode = GetPrParseCode(p_CcNodeParam->extractCcParams.extractByHdr.hdr, p_CcNodeParam->extractCcParams.extractByHdr.hdrIndex, + p_FmPcdCcNode->offset,glblMask, &p_FmPcdCcNode->prsArrayOffset); + break; + case(e_FM_PCD_EXTRACT_FROM_FIELD): + p_FmPcdCcNode->offset = p_CcNodeParam->extractCcParams.extractByHdr.extractByHdrType.fromField.offset; + p_FmPcdCcNode->sizeOfExtraction = p_CcNodeParam->extractCcParams.extractByHdr.extractByHdrType.fromField.size; + p_FmPcdCcNode->parseCode = GetFieldParseCode(p_CcNodeParam->extractCcParams.extractByHdr.hdr, p_CcNodeParam->extractCcParams.extractByHdr.extractByHdrType.fromField.field, + p_FmPcdCcNode->offset,&p_FmPcdCcNode->prsArrayOffset, + p_CcNodeParam->extractCcParams.extractByHdr.hdrIndex); + break; + default: + DeleteNode(p_FmPcdCcNode); + REPORT_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + return NULL; + } + break; + case(e_FM_PCD_EXTRACT_NON_HDR): + /* get the field code for the generic extract */ + p_FmPcdCcNode->sizeOfExtraction = p_CcNodeParam->extractCcParams.extractNonHdr.size; + p_FmPcdCcNode->offset = p_CcNodeParam->extractCcParams.extractNonHdr.offset; + p_FmPcdCcNode->parseCode = GetGenParseCode(p_CcNodeParam->extractCcParams.extractNonHdr.src, p_FmPcdCcNode->offset, glblMask, &p_FmPcdCcNode->prsArrayOffset, fromIc,icCode); + + if(p_FmPcdCcNode->parseCode == CC_PC_GENERIC_IC_HASH_INDEXED) + { + if((p_FmPcdCcNode->offset + p_FmPcdCcNode->sizeOfExtraction) > 64) + { + DeleteNode(p_FmPcdCcNode); + REPORT_ERROR(MAJOR, E_INVALID_SELECTION,("when node of the type CC_PC_GENERIC_IC_HASH_INDEXED offset + size can not be bigger then size of HASH 64 bits (8 bytes)")); + return NULL; + } + } + if((p_FmPcdCcNode->parseCode == CC_PC_GENERIC_IC_GMASK) || (p_FmPcdCcNode->parseCode == CC_PC_GENERIC_IC_HASH_INDEXED)) + { + p_FmPcdCcNode->offset += p_FmPcdCcNode->prsArrayOffset; + p_FmPcdCcNode->prsArrayOffset = 0; + } + break; + + default: + DeleteNode(p_FmPcdCcNode); + REPORT_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + return NULL; + } + + if(p_FmPcdCcNode->parseCode == CC_PC_ILLEGAL) + { + DeleteNode(p_FmPcdCcNode); + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("illeagl extraction type")); + return NULL; + } + + if((p_FmPcdCcNode->sizeOfExtraction > FM_PCD_MAX_SIZE_OF_KEY) || !p_FmPcdCcNode->sizeOfExtraction) + { + DeleteNode(p_FmPcdCcNode); + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("sizeOfExatrction can not be greater than 56 and not 0")); + return NULL; + } + + if(p_CcNodeParam->keysParams.keySize != p_FmPcdCcNode->sizeOfExtraction) + { + DeleteNode(p_FmPcdCcNode); + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("keySize has to be equal to sizeOfExtraction")); + return NULL; + } + + + p_FmPcdCcNode->userSizeOfExtraction = p_FmPcdCcNode->sizeOfExtraction; + + if(!glblMask) + memset(p_FmPcdCcNode->p_GlblMask, 0xff, CC_GLBL_MASK_SIZE * sizeof(uint8_t)); + +#ifdef FM_PCD_CC_MANIP + err = CheckAndSetManipParamsWithCcNodeParams(p_FmPcdCcNode); + if(err != E_OK) + { + DeleteNode(p_FmPcdCcNode); + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("keySize has to be equal to sizeOfExtraction")); + return NULL; + } +#endif /* FM_PCD_CC_MANIP */ + + GetCcExtractKeySize(p_FmPcdCcNode->sizeOfExtraction, &p_FmPcdCcNode->ccKeySizeAccExtraction); + + if(p_FmPcdCcNode->lclMask) + size = 2 * p_FmPcdCcNode->ccKeySizeAccExtraction; + else + size = p_FmPcdCcNode->ccKeySizeAccExtraction; + + if(isKeyTblAlloc) + { + p_FmPcdCcNode->h_KeysMatchTable =(t_Handle)FM_MURAM_AllocMem(FmPcdGetMuramHandle(p_FmPcdCcNode->h_FmPcd), + (uint32_t)(size * sizeof(uint8_t) * (p_FmPcdCcNode->numOfKeys + 1)), + FM_PCD_CC_KEYS_MATCH_TABLE_ALIGN); + if(!p_FmPcdCcNode->h_KeysMatchTable) + { + DeleteNode(p_FmPcdCcNode); + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("No memory in MURAM for KEY MATCH table")); + return NULL; + } + IOMemSet32((uint8_t *)p_FmPcdCcNode->h_KeysMatchTable, 0, size * sizeof(uint8_t) * (p_FmPcdCcNode->numOfKeys + 1)); + } + + p_FmPcdCcNode->h_AdTable = (t_Handle)FM_MURAM_AllocMem(FmPcdGetMuramHandle(p_FmPcdCcNode->h_FmPcd), + (uint32_t)( (p_FmPcdCcNode->numOfKeys+1) * FM_PCD_CC_AD_ENTRY_SIZE), + FM_PCD_CC_AD_TABLE_ALIGN); + if(!p_FmPcdCcNode->h_AdTable) + { + DeleteNode(p_FmPcdCcNode); + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("No memory in MURAM for AD table ")); + return NULL; + } + IOMemSet32((uint8_t *)p_FmPcdCcNode->h_AdTable, 0, (uint32_t)((p_FmPcdCcNode->numOfKeys+1) * FM_PCD_CC_AD_ENTRY_SIZE)); + + p_KeysMatchTblTmp = p_FmPcdCcNode->h_KeysMatchTable; + p_AdTableTmp = p_FmPcdCcNode->h_AdTable; + for(tmp = 0 ; tmp < p_FmPcdCcNode->numOfKeys; tmp++) + { + p_KeyParams = &p_CcNodeParam->keysParams.keyParams[tmp]; + + if(p_KeysMatchTblTmp) + { + Mem2IOCpy32((void*)p_KeysMatchTblTmp, p_KeyParams->p_Key, p_FmPcdCcNode->sizeOfExtraction); + + if(p_FmPcdCcNode->lclMask && p_KeyParams->p_Mask) + Mem2IOCpy32(PTR_MOVE(p_KeysMatchTblTmp, p_FmPcdCcNode->ccKeySizeAccExtraction), p_KeyParams->p_Mask, p_FmPcdCcNode->sizeOfExtraction); + else if(p_FmPcdCcNode->lclMask) + IOMemSet32(PTR_MOVE(p_KeysMatchTblTmp, p_FmPcdCcNode->ccKeySizeAccExtraction), 0xff, p_FmPcdCcNode->sizeOfExtraction); + p_KeysMatchTblTmp = PTR_MOVE(p_KeysMatchTblTmp, size * sizeof(uint8_t)); + } + NextStepAd(p_AdTableTmp,&p_KeyParams->ccNextEngineParams, p_FmPcd); + + p_AdTableTmp = PTR_MOVE(p_AdTableTmp, FM_PCD_CC_AD_ENTRY_SIZE); + + } + NextStepAd(p_AdTableTmp,&p_CcNodeParam->keysParams.ccNextEngineParamsForMiss, p_FmPcd); + + if(fullField == TRUE) + p_FmPcdCcNode->sizeOfExtraction = 0; + + + for(tmp = 0; tmp < p_FmPcdCcNode->numOfKeys + 1; tmp++) + { + if(p_FmPcdCcNode->nextEngineAndRequiredAction[tmp].nextEngineParams.nextEngine == e_FM_PCD_CC) + { + p_FmPcdCcNextNode = (t_FmPcdCcNode*)p_FmPcdCcNode->nextEngineAndRequiredAction[tmp].nextEngineParams.params.ccParams.h_CcNode; + + if(!IsNodeInModifiedState((t_Handle)p_FmPcdCcNextNode)) + { + memset(&ccNodeInfo, 0, sizeof(t_CcNodeInformation)); + ccNodeInfo.h_CcNode = (t_Handle)p_FmPcdCcNode; + ccNodeInfo.index = 1; + EnqueueNodeInfoToRelevantLst(&p_FmPcdCcNextNode->ccPrevNodesLst, &ccNodeInfo); + UpdateNodeWithModifiedState((t_Handle)p_FmPcdCcNextNode, TRUE); + } + else + { + p_CcInformation = FindNodeInfoInReleventLst(&p_FmPcdCcNextNode->ccPrevNodesLst,(t_Handle)p_FmPcdCcNode); + ASSERT_COND(p_CcInformation); + p_CcInformation->index++; + } + } + + } + + for(tmp = 0; tmp < p_FmPcdCcNode->numOfKeys + 1; tmp++) + { + if(p_FmPcdCcNode->nextEngineAndRequiredAction[tmp].nextEngineParams.nextEngine == e_FM_PCD_CC) + { + p_FmPcdCcNextNode = (t_FmPcdCcNode*)p_FmPcdCcNode->nextEngineAndRequiredAction[tmp].nextEngineParams.params.ccParams.h_CcNode; + + if(IsNodeInModifiedState((t_Handle)p_FmPcdCcNextNode)) + UpdateNodeWithModifiedState((t_Handle)p_FmPcdCcNextNode, FALSE); + } + } + + p_AdTableTmp = p_FmPcdCcNode->h_AdTable; + for(tmp = 0; tmp < p_FmPcdCcNode->numOfKeys; tmp++) + { + if(p_FmPcdCcNode->nextEngineAndRequiredAction[tmp].requiredAction) + { + + err = FmPcdCcSetRequiredAction(h_FmPcd, p_FmPcdCcNode->nextEngineAndRequiredAction[tmp].requiredAction, &p_FmPcdCcNode->nextEngineAndRequiredAction[tmp], p_AdTableTmp,1, NULL); + if(err) + { + FM_PCD_CcDeleteNode(h_FmPcd, (t_Handle)p_FmPcdCcNode); + REPORT_ERROR(MAJOR, err, NO_MSG); + return NULL; + } + p_AdTableTmp = PTR_MOVE(p_AdTableTmp, FM_PCD_CC_AD_ENTRY_SIZE); + } + } + if(p_FmPcdCcNode->nextEngineAndRequiredAction[tmp].requiredAction) + { + err = FmPcdCcSetRequiredAction(h_FmPcd, p_FmPcdCcNode->nextEngineAndRequiredAction[tmp].requiredAction, &p_FmPcdCcNode->nextEngineAndRequiredAction[tmp], p_AdTableTmp,1, NULL); + if(err) + { + FM_PCD_CcDeleteNode(h_FmPcd, (t_Handle)p_FmPcdCcNode); + REPORT_ERROR(MAJOR, err, NO_MSG); + return NULL; + } + + } + + + return p_FmPcdCcNode; +} + +t_Error FM_PCD_CcDeleteNode(t_Handle h_FmPcd, t_Handle h_CcNode) +{ + t_FmPcdCcNode *p_CcNode = (t_FmPcdCcNode *)h_CcNode; + int i = 0; + + SANITY_CHECK_RETURN_ERROR(h_FmPcd, E_INVALID_HANDLE); + + UNUSED(h_FmPcd); + if(!p_CcNode) + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("the node with this ID is not initialized")); + + if(p_CcNode->owners) + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("the node with this ID can not be removed because this node is occupied, first - unbind this node")); + + for(i = 0; i < p_CcNode->numOfKeys; i++) + { + if(p_CcNode->nextEngineAndRequiredAction[i].nextEngineParams.nextEngine == e_FM_PCD_CC) + UpdateNodeOwner(p_CcNode->nextEngineAndRequiredAction[i].nextEngineParams.params.ccParams.h_CcNode, FALSE); + + } + if(p_CcNode->nextEngineAndRequiredAction[i].nextEngineParams.nextEngine == e_FM_PCD_CC) + UpdateNodeOwner(p_CcNode->nextEngineAndRequiredAction[i].nextEngineParams.params.ccParams.h_CcNode, FALSE); + +#ifdef FM_PCD_CC_MANIP + for(i = 0; i < p_CcNode->numOfKeys; i++) + { + if(p_CcNode->nextEngineAndRequiredAction[i].nextEngineParams.h_Manip) + FmPcdManipUpdateOwner(p_CcNode->nextEngineAndRequiredAction[i].nextEngineParams.h_Manip, FALSE); + } + if(p_CcNode->nextEngineAndRequiredAction[i].nextEngineParams.h_Manip) + FmPcdManipUpdateOwner(p_CcNode->nextEngineAndRequiredAction[i].nextEngineParams.h_Manip, FALSE); +#endif /* FM_PCD_CC_MANIP */ + + DeleteNode(p_CcNode); + + return E_OK; +} + +t_Error FM_PCD_CcNodeAddKey(t_Handle h_FmPcd, t_Handle h_CcNode, uint8_t keyIndex, uint8_t keySize, t_FmPcdCcKeyParams *p_KeyParams) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + + SANITY_CHECK_RETURN_ERROR(h_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->h_Hc, E_INVALID_HANDLE); + + return FmHcPcdCcAddKey(p_FmPcd->h_Hc, h_CcNode, keyIndex, keySize, p_KeyParams); +} + +t_Error FM_PCD_CcNodeRemoveKey(t_Handle h_FmPcd, t_Handle h_CcNode, uint8_t keyIndex) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + + SANITY_CHECK_RETURN_ERROR(h_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->h_Hc, E_INVALID_HANDLE); + + return FmHcPcdCcRemoveKey(p_FmPcd->h_Hc, h_CcNode, keyIndex); +} + +t_Error FM_PCD_CcNodeModifyKey(t_Handle h_FmPcd, t_Handle h_CcNode, uint8_t keyIndex, uint8_t keySize, uint8_t *p_Key, uint8_t *p_Mask) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + + SANITY_CHECK_RETURN_ERROR(h_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->h_Hc, E_INVALID_HANDLE); + + return FmHcPcdCcModifyKey(p_FmPcd->h_Hc, h_CcNode, keyIndex, keySize, p_Key, p_Mask); +} + +t_Error FM_PCD_CcNodeModifyNextEngine(t_Handle h_FmPcd, t_Handle h_CcNode, uint8_t keyIndex, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + + SANITY_CHECK_RETURN_ERROR(h_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->h_Hc, E_INVALID_HANDLE); + + return FmHcPcdCcModifyNodeNextEngine(p_FmPcd->h_Hc, h_CcNode, keyIndex, p_FmPcdCcNextEngineParams); +} + +t_Error FM_PCD_CcNodeModifyMissNextEngine(t_Handle h_FmPcd, t_Handle h_CcNode, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + + SANITY_CHECK_RETURN_ERROR(h_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->h_Hc, E_INVALID_HANDLE); + + return FmHcPcdCcModifyNodeMissNextEngine(p_FmPcd->h_Hc, h_CcNode, p_FmPcdCcNextEngineParams); +} + +t_Error FM_PCD_CcTreeModifyNextEngine(t_Handle h_FmPcd, t_Handle h_CcTree, uint8_t grpId, uint8_t index, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + + SANITY_CHECK_RETURN_ERROR(h_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->h_Hc, E_INVALID_HANDLE); + + return FmHcPcdCcModifyTreeNextEngine(p_FmPcd->h_Hc, h_CcTree, grpId, index, p_FmPcdCcNextEngineParams); +} + +t_Error FM_PCD_CcNodeModifyKeyAndNextEngine(t_Handle h_FmPcd, t_Handle h_CcNode, uint8_t keyIndex, uint8_t keySize, t_FmPcdCcKeyParams *p_KeyParams) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + + SANITY_CHECK_RETURN_ERROR(h_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->h_Hc, E_INVALID_HANDLE); + + return FmHcPcdCcModifyKeyAndNextEngine(p_FmPcd->h_Hc, h_CcNode, keyIndex, keySize, p_KeyParams); +} + +uint32_t FM_PCD_CcNodeGetKeyCounter(t_Handle h_FmPcd, t_Handle h_CcNode, uint8_t keyIndex) +{ + t_FmPcdCcNode *p_FmPcdCcNode = (t_FmPcdCcNode *)h_CcNode; + t_AdOfTypeResult *p_AdResult = NULL; + + SANITY_CHECK_RETURN_ERROR(h_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_VALUE(h_CcNode, E_INVALID_HANDLE, 0); +#ifdef DISABLE_SANITY_CHECKS +UNUSED(h_FmPcd); +#endif /* DISABLE_SANITY_CHECKS */ + + if (keyIndex >= p_FmPcdCcNode->numOfKeys) + { + REPORT_ERROR(MINOR, E_INVALID_STATE, + ("keyIndex > numOfKeys defined for this node")); + return 0; + } + + p_AdResult = PTR_MOVE(p_FmPcdCcNode->h_AdTable, keyIndex*FM_PCD_CC_AD_ENTRY_SIZE); + ASSERT_COND(p_AdResult); + + if (p_FmPcdCcNode->nextEngineAndRequiredAction[keyIndex].nextEngineParams.nextEngine == e_FM_PCD_CC) + { + REPORT_ERROR(MINOR, E_INVALID_STATE, + ("statistics updated only for entries where next engine not CC")); + return 0; + } + + if(((p_FmPcdCcNode->nextEngineAndRequiredAction[keyIndex].nextEngineParams.nextEngine == e_FM_PCD_DONE) && + !p_FmPcdCcNode->nextEngineAndRequiredAction[keyIndex].nextEngineParams.params.enqueueParams.statisticsEn) || + ((p_FmPcdCcNode->nextEngineAndRequiredAction[keyIndex].nextEngineParams.nextEngine == e_FM_PCD_KG) && + !p_FmPcdCcNode->nextEngineAndRequiredAction[keyIndex].nextEngineParams.params.kgParams.statisticsEn) || + ((p_FmPcdCcNode->nextEngineAndRequiredAction[keyIndex].nextEngineParams.nextEngine == e_FM_PCD_PLCR) && + !p_FmPcdCcNode->nextEngineAndRequiredAction[keyIndex].nextEngineParams.params.plcrParams.statisticsEn)) + { + REPORT_ERROR(MINOR, E_INVALID_STATE, + ("statistics wasn't enable")); + return 0; + } + + return GET_UINT32(p_AdResult->res); +} --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/Pcd/fm_cc.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/Pcd/fm_cc.h @@ -0,0 +1,312 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fm_cc.h + + @Description FM PCD CC ... +*//***************************************************************************/ +#ifndef __FM_CC_H +#define __FM_CC_H + +#include "std_ext.h" +#include "error_ext.h" +#include "list_ext.h" + +#include "fm_pcd.h" + + +/***********************************************************************/ +/* Coarse classification defines */ +/***********************************************************************/ + +#define CC_PC_FF_MACDST 0x00 +#define CC_PC_FF_MACSRC 0x01 +#define CC_PC_FF_ETYPE 0x02 + +#define CC_PC_FF_TCI1 0x03 +#define CC_PC_FF_TCI2 0x04 + +#define CC_PC_FF_MPLS1 0x06 +#define CC_PC_FF_MPLS_LAST 0x07 + +#define CC_PC_FF_IPV4DST1 0x08 +#define CC_PC_FF_IPV4DST2 0x16 +#define CC_PC_FF_IPV4IPTOS_TC1 0x09 +#define CC_PC_FF_IPV4IPTOS_TC2 0x17 +#define CC_PC_FF_IPV4PTYPE1 0x0A +#define CC_PC_FF_IPV4PTYPE2 0x18 +#define CC_PC_FF_IPV4SRC1 0x0b +#define CC_PC_FF_IPV4SRC2 0x19 +#define CC_PC_FF_IPV4SRC1_IPV4DST1 0x0c +#define CC_PC_FF_IPV4SRC2_IPV4DST2 0x1a +#define CC_PC_FF_IPV4TTL 0x29 + + +#define CC_PC_FF_IPTOS_IPV6TC1_IPV6FLOW1 0x0d /*TODO - CLASS - what is it? TOS*/ +#define CC_PC_FF_IPTOS_IPV6TC2_IPV6FLOW2 0x1b +#define CC_PC_FF_IPV6PTYPE1 0x0e +#define CC_PC_FF_IPV6PTYPE2 0x1c +#define CC_PC_FF_IPV6DST1 0x0f +#define CC_PC_FF_IPV6DST2 0x1d +#define CC_PC_FF_IPV6SRC1 0x10 +#define CC_PC_FF_IPV6SRC2 0x1e +#define CC_PC_FF_IPV6HOP_LIMIT 0x2a +#define CC_PC_FF_GREPTYPE 0x11 + +#define CC_PC_FF_MINENCAP_PTYPE 0x12 +#define CC_PC_FF_MINENCAP_IPDST 0x13 +#define CC_PC_FF_MINENCAP_IPSRC 0x14 +#define CC_PC_FF_MINENCAP_IPSRC_IPDST 0x15 + +#define CC_PC_FF_L4PSRC 0x1f +#define CC_PC_FF_L4PDST 0x20 +#define CC_PC_FF_L4PSRC_L4PDST 0x21 + +#define CC_PC_FF_PPPPID 0x05 + +#define CC_PC_PR_SHIM1 0x22 +#define CC_PC_PR_SHIM2 0x23 + +#define CC_PC_GENERIC_WITHOUT_MASK 0x27 +#define CC_PC_GENERIC_WITH_MASK 0x28 +#define CC_PC_GENERIC_IC_GMASK 0x2B +#define CC_PC_GENERIC_IC_HASH_INDEXED 0x2C + +#define CC_PR_OFFSET 0x25 +#define CC_PR_WITHOUT_OFFSET 0x26 + +#define CC_PC_PR_ETH_OFFSET 19 +#define CC_PC_PR_USER_DEFINED_SHIM1_OFFSET 16 +#define CC_PC_PR_USER_DEFINED_SHIM2_OFFSET 17 +#define CC_PC_PR_USER_LLC_SNAP_OFFSET 20 +#define CC_PC_PR_VLAN1_OFFSET 21 +#define CC_PC_PR_VLAN2_OFFSET 22 +#define CC_PC_PR_PPPOE_OFFSET 24 +#define CC_PC_PR_MPLS1_OFFSET 25 +#define CC_PC_PR_MPLS_LAST_OFFSET 26 +#define CC_PC_PR_IP1_OFFSET 27 +#define CC_PC_PR_IP_LAST_OFFSET 28 +#define CC_PC_PR_MINENC_OFFSET 28 +#define CC_PC_PR_L4_OFFSET 30 +#define CC_PC_PR_GRE_OFFSET 29 +#define CC_PC_PR_ETYPE_LAST_OFFSET 23 +#define CC_PC_PR_NEXT_HEADER_OFFSET 31 + +#define CC_PC_ILLEGAL 0xff +#define CC_SIZE_ILLEGAL 0 + +#define FM_PCD_CC_KEYS_MATCH_TABLE_ALIGN 16 +#define FM_PCD_CC_AD_TABLE_ALIGN 256 +#define FM_PCD_CC_AD_ENTRY_SIZE 16 +#define FM_PCD_CC_NUM_OF_KEYS 255 + +#define FM_PCD_AD_RESULT_CONTRL_FLOW_TYPE 0x00000000 +#define FM_PCD_AD_RESULT_DATA_FLOW_TYPE 0x80000000 +#define FM_PCD_AD_RESULT_PLCR_DIS 0x20000000 +#define FM_PCD_AD_RESULT_EXTENDED_MODE 0x80000000 +#define FM_PCD_AD_RESULT_NADEN 0x20000000 +#define FM_PCD_AD_RESULT_STATISTICS_EN 0x40000000 + + +#define FM_PCD_AD_CONT_LOOKUP_TYPE 0x40000000 +#define FM_PCD_AD_CONT_LOOKUP_LCL_MASK 0x00800000 + +#define FM_PCD_AD_TYPE_MASK 0xc0000000 +#define FM_PCD_AD_OPCODE_MASK 0x0000000f + +#define FM_PCD_AD_PROFILEID_FOR_CNTRL_SHIFT 16 + +#define GLBL_MASK_FOR_HASH_INDEXED 0xfff00000 +#define CC_GLBL_MASK_SIZE 4 + +typedef uint32_t ccPrivateInfo_t; /**< private info of CC: */ + +#define CC_PRIVATE_INFO_NONE 0 +#define CC_PRIVATE_INFO_IC_HASH_INDEX_LOOKUP 0x80000000 +#define CC_PRIVATE_INFO_IC_HASH_EXACT_MATCH 0x40000000 +#define CC_PRIVATE_INFO_IC_KEY_EXACT_MATCH 0x20000000 +#define CC_PRIVATE_INFO_IC_DEQ_FQID_INDEX_LOOKUP 0x10000000 + +/***********************************************************************/ +/* Memory map */ +/***********************************************************************/ +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(push,1) +#endif /* defined(__MWERKS__) && ... */ +#define MEM_MAP_START + +typedef _Packed struct { + volatile uint32_t fqid; + volatile uint32_t plcrProfile; + volatile uint32_t nia; + volatile uint32_t res; +} _PackedType t_AdOfTypeResult; + +typedef _Packed struct { + volatile uint32_t ccAdBase; + volatile uint32_t matchTblPtr; + volatile uint32_t pcAndOffsets; + volatile uint32_t gmask; +} _PackedType t_AdOfTypeContLookup; + +typedef _Packed union { + volatile t_AdOfTypeResult adResult; + volatile t_AdOfTypeContLookup adContLookup; +} _PackedType t_Ad; + +#define MEM_MAP_END +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(pop) +#endif /* defined(__MWERKS__) && ... */ + + +/***********************************************************************/ +/* Driver's internal structures */ +/***********************************************************************/ + +typedef enum e_ModifyState { + e_MODIFY_STATE_ADD = 0, + e_MODIFY_STATE_REMOVE, + e_MODIFY_STATE_CHANGE +} e_ModifyState; + +typedef struct { + t_FmPcdCcNextEngineParams nextEngineParams; + uint32_t requiredAction; + uint32_t shadowAction; +} t_FmPcdCcNextEngineAndRequiredActionParams; + +typedef struct { + t_Handle p_Ad; + e_FmPcdEngine fmPcdEngine; + bool adAllocated; + bool isTree; + + uint32_t myInfo; + t_List *h_CcNextNodesLst; + t_Handle h_AdditionalInfo; + t_Handle h_Node; +} t_FmPcdModifyCcAdditionalParams; + +typedef struct { + t_Handle p_AdTableNew; + t_Handle p_KeysMatchTableNew; + t_Handle p_AdTableOld; + t_Handle p_KeysMatchTableOld; + uint16_t numOfKeys; + t_Handle h_CurrentNode; + uint16_t keyIndex; + t_Handle h_NodeForAdd; + t_Handle h_NodeForRmv; + t_Handle h_ManipForRmv; + bool tree; + + t_FmPcdCcNextEngineAndRequiredActionParams nextEngineAndRequiredAction[256]; +} t_FmPcdModifyCcKeyAdditionalParams; + +typedef struct { + t_Handle h_Manip; + t_Handle h_CcNode; +} t_CcNextEngineInfo; + +typedef struct { + uint16_t numOfKeys; + bool glblMaskUpdated; + t_Handle p_GlblMask; + bool lclMask; + uint8_t parseCode; + uint8_t offset; + uint8_t prsArrayOffset; + bool ctrlFlow; + uint8_t owners; + + uint8_t ccKeySizeAccExtraction; + uint8_t sizeOfExtraction; + uint8_t glblMaskSize; + + t_Handle h_KeysMatchTable; + t_Handle h_AdTable; + + t_List ccPrevNodesLst; + + t_List ccTreeIdLst; + t_List ccTreesLst; + + t_Handle h_FmPcd; + uint32_t shadowAction; + bool modifiedState; + uint8_t userSizeOfExtraction; + + t_FmPcdCcNextEngineAndRequiredActionParams nextEngineAndRequiredAction[256]; +} t_FmPcdCcNode; + +typedef struct { + t_FmPcdCcNode *p_FmPcdCcNode; + bool occupied; + uint8_t owners; + volatile bool lock; +} t_FmPcdCcNodeArray; + +typedef struct { + uint8_t numOfEntriesInGroup; + uint32_t totalBitsMask; + uint8_t baseGroupEntry; +} t_FmPcdCcGroupParam; + +typedef struct { + uint8_t netEnvId; + uintptr_t ccTreeBaseAddr; + uint8_t numOfGrps; + t_FmPcdCcGroupParam fmPcdGroupParam[FM_PCD_MAX_NUM_OF_CC_GROUPS]; + t_List fmPortsLst; + volatile bool lock; + uint8_t numOfEntries; + uint8_t owners; + t_Handle *fmPcdCcSavedManipParams[256]; + bool modifiedState; + uint32_t requiredAction; + t_FmPcdCcNextEngineAndRequiredActionParams nextEngineAndRequiredAction[FM_PCD_MAX_NUM_OF_KEYS]; +} t_FmPcdCcTree; + +typedef struct { + t_FmPcdCcTree *p_FmPcdCcTree; + bool occupied; + uint8_t owners; + volatile bool lock; +} t_FmPcdCcTreeArray; + + +bool FmPcdManipIsManipNode(t_Handle h_Ad); + + +#endif /* __FM_CC_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/Pcd/fm_kg.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/Pcd/fm_kg.c @@ -0,0 +1,3189 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fm_kg.c + + @Description FM PCD ... +*//***************************************************************************/ +#include "std_ext.h" +#include "error_ext.h" +#include "string_ext.h" +#include "debug_ext.h" +#include "net_ext.h" +#include "fm_port_ext.h" + +#include "fm_common.h" +#include "fm_pcd.h" +#include "fm_hc.h" + +#include "fm_pcd_ipc.h" + + +static t_Error WriteKgarWait(t_FmPcd *p_FmPcd, uint32_t kgar) +{ + WRITE_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->kgar, kgar); + /* Wait for GO to be idle and read error */ + while ((kgar = GET_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->kgar)) & FM_PCD_KG_KGAR_GO) ; + if (kgar & FM_PCD_KG_KGAR_ERR) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Keygen scheme access violation")); + return E_OK; +} + +static e_FmPcdKgExtractDfltSelect GetGenericSwDefault(t_FmPcdKgExtractDflt swDefaults[], uint8_t numOfSwDefaults, uint8_t code) +{ + int i; + + switch(code) + { + case( KG_SCH_GEN_PARSE_RESULT_N_FQID): + case( KG_SCH_GEN_DEFAULT): + case( KG_SCH_GEN_NEXTHDR): + for(i=0 ; i mask 0x1-0x7F */ + if(bitOffset<8) + { + mask = 0; + for(i = 0 ; i < bitOffset ; i++, walking1Mask <<= 1) + mask |= walking1Mask; + } + else + { + mask = 0xFF; + numOfOnesToClear = 0; + if(fqid && bitOffset>24) + /* bitOffset 25-31 --> mask 0xFE-0x80 */ + numOfOnesToClear = (uint8_t)(bitOffset-24); + else + /* bitOffset 9-15 --> mask 0xFE-0x80 */ + if(!fqid && bitOffset>8) + numOfOnesToClear = (uint8_t)(bitOffset-8); + for(i = 0 ; i < numOfOnesToClear ; i++, walking1Mask <<= 1) + mask &= ~walking1Mask; + /* bitOffset 8-24 for FQID, 8 for PP --> no mask (0xFF)*/ + } + return mask; +} + + +t_Error FmPcdKgBuildClsPlanGrp(t_Handle h_FmPcd, t_FmPcdKgInterModuleClsPlanGrpParams *p_Grp, t_FmPcdKgInterModuleClsPlanSet *p_ClsPlanSet) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_FmPcdKgClsPlanGrp *p_ClsPlanGrp; + t_FmPcdIpcKgClsPlanParams kgAlloc; + t_Error err = E_OK; + uint32_t oredVectors = 0; + uint32_t intFlags; + int i, j; + + if (p_Grp->numOfOptions >= FM_PCD_MAX_NUM_OF_OPTIONS(FM_PCD_MAX_NUM_OF_CLS_PLANS)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE,("Too many classification plan basic options selected.")); + + intFlags = FmPcdLock(p_FmPcd); + + /* find a new clsPlan group */ + for(i = 0;ip_FmPcdKg->clsPlanGrps[i].used) + break; + if(i== FM_MAX_NUM_OF_PORTS) + { + FmPcdUnlock(p_FmPcd, intFlags); + RETURN_ERROR(MAJOR, E_FULL,("No classification plan groups available.")); + } + p_FmPcd->p_FmPcdKg->clsPlanGrps[i].used = TRUE; + p_Grp->clsPlanGrpId = (uint8_t)i; + + if(p_Grp->numOfOptions == 0) + p_FmPcd->p_FmPcdKg->emptyClsPlanGrpId = (uint8_t)i; + + if (!TRY_LOCK(NULL, &p_FmPcd->p_FmPcdKg->clsPlanGrps[p_Grp->clsPlanGrpId].lock)) + { + FmPcdUnlock(p_FmPcd, intFlags); + return ERROR_CODE(E_BUSY); + } + FmPcdUnlock(p_FmPcd, intFlags); + + p_ClsPlanGrp = &p_FmPcd->p_FmPcdKg->clsPlanGrps[i]; + p_ClsPlanGrp->netEnvId = p_Grp->netEnvId; + p_ClsPlanGrp->owners = 0; + FmPcdSetClsPlanGrpId(p_FmPcd, p_Grp->netEnvId, p_Grp->clsPlanGrpId); + FmPcdIncNetEnvOwners(p_FmPcd, p_Grp->netEnvId); + + p_ClsPlanGrp->sizeOfGrp = (uint16_t)(1<numOfOptions); + /* a minimal group of 8 is required */ + if(p_ClsPlanGrp->sizeOfGrp < CLS_PLAN_NUM_PER_GRP) + p_ClsPlanGrp->sizeOfGrp = CLS_PLAN_NUM_PER_GRP; + if(p_FmPcd->guestId == NCSW_MASTER_ID) + { + err = KgAllocClsPlanEntries(h_FmPcd, p_ClsPlanGrp->sizeOfGrp, p_FmPcd->guestId, &p_ClsPlanGrp->baseEntry); + + if(err) + { + RELEASE_LOCK(p_FmPcd->p_FmPcdKg->clsPlanGrps[p_Grp->clsPlanGrpId].lock); + RETURN_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + } + + } + else + { + t_FmPcdIpcMsg msg; + uint32_t replyLength; + t_FmPcdIpcReply reply; + + /* in GUEST_PARTITION, we use the IPC, to also set a private driver group if required */ + memset(&reply, 0, sizeof(reply)); + memset(&msg, 0, sizeof(msg)); + memset(&kgAlloc, 0, sizeof(kgAlloc)); + kgAlloc.guestId = p_FmPcd->guestId; + kgAlloc.numOfClsPlanEntries = p_ClsPlanGrp->sizeOfGrp; + msg.msgId = FM_PCD_ALLOC_KG_CLSPLAN; + memcpy(msg.msgBody, &kgAlloc, sizeof(kgAlloc)); + replyLength = (sizeof(uint32_t) + sizeof(p_ClsPlanGrp->baseEntry)); + if ((err = XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId) + sizeof(kgAlloc), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + { + RELEASE_LOCK(p_FmPcd->p_FmPcdKg->clsPlanGrps[p_Grp->clsPlanGrpId].lock); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + if (replyLength != (sizeof(uint32_t) + sizeof(p_ClsPlanGrp->baseEntry))) + { + RELEASE_LOCK(p_FmPcd->p_FmPcdKg->clsPlanGrps[p_Grp->clsPlanGrpId].lock); + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + } + if ((t_Error)reply.error != E_OK) + { + RELEASE_LOCK(p_FmPcd->p_FmPcdKg->clsPlanGrps[p_Grp->clsPlanGrpId].lock); + RETURN_ERROR(MINOR, (t_Error)reply.error, NO_MSG); + } + + p_ClsPlanGrp->baseEntry = *(uint8_t*)(reply.replyBody); + } + + /* build classification plan entries parameters */ + p_ClsPlanSet->baseEntry = p_ClsPlanGrp->baseEntry; + p_ClsPlanSet->numOfClsPlanEntries = p_ClsPlanGrp->sizeOfGrp; + + oredVectors = 0; + for(i = 0; inumOfOptions; i++) + { + oredVectors |= p_Grp->optVectors[i]; + /* save an array of used options - the indexes represent the power of 2 index */ + p_ClsPlanGrp->optArray[i] = p_Grp->options[i]; + } + /* set the classification plan relevant entries so that all bits + * relevant to the list of options is cleared + */ + for(j = 0; jsizeOfGrp; j++) + p_ClsPlanSet->vectors[j] = ~oredVectors; + + for(i = 0; inumOfOptions; i++) + { + /* option i got the place 2^i in the clsPlan array. all entries that + * have bit i set, should have the vector bit cleared. So each option + * has one location that it is exclusive (1,2,4,8...) and represent the + * presence of that option only, and other locations that represent a + * combination of options. + * e.g: + * If ethernet-BC is option 1 it gets entry 2 in the table. Entry 2 + * now represents a frame with ethernet-BC header - so the bit + * representing ethernet-BC should be set and all other option bits + * should be cleared. + * Entries 2,3,6,7,10... also have ethernet-BC and therefore have bit + * vector[1] set, but they also have other bits set: + * 3=1+2, options 0 and 1 + * 6=2+4, options 1 and 2 + * 7=1+2+4, options 0,1,and 2 + * 10=2+8, options 1 and 3 + * etc. + * */ + + /* now for each option (i), we set their bits in all entries (j) + * that contain bit 2^i. + */ + for(j = 0; jsizeOfGrp; j++) + { + if(j & (1<vectors[j] |= p_Grp->optVectors[i]; + } + } + + RELEASE_LOCK(p_FmPcd->p_FmPcdKg->clsPlanGrps[p_Grp->clsPlanGrpId].lock); + + return E_OK; +} + +void FmPcdKgDestroyClsPlanGrp(t_Handle h_FmPcd, uint8_t grpId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_FmPcdIpcKgClsPlanParams kgAlloc; + t_Error err; + t_FmPcdIpcMsg msg; + uint32_t replyLength; + t_FmPcdIpcReply reply; + + /* check that no port is bound to this clsPlan */ + if(p_FmPcd->p_FmPcdKg->clsPlanGrps[grpId].owners) + { + REPORT_ERROR(MINOR, E_INVALID_STATE, ("Trying to delete a clsPlan grp that has ports bound to")); + return; + } + + FmPcdDecNetEnvOwners(p_FmPcd, p_FmPcd->p_FmPcdKg->clsPlanGrps[grpId].netEnvId); + + /* free blocks */ + if(p_FmPcd->guestId == NCSW_MASTER_ID) + { + KgFreeClsPlanEntries(h_FmPcd, + p_FmPcd->p_FmPcdKg->clsPlanGrps[grpId].sizeOfGrp, + p_FmPcd->guestId, + p_FmPcd->p_FmPcdKg->clsPlanGrps[grpId].baseEntry); + } + else /* in GUEST_PARTITION, we use the IPC, to also set a private driver group if required */ + { + memset(&reply, 0, sizeof(reply)); + memset(&msg, 0, sizeof(msg)); + kgAlloc.guestId = p_FmPcd->guestId; + kgAlloc.numOfClsPlanEntries = p_FmPcd->p_FmPcdKg->clsPlanGrps[grpId].sizeOfGrp; + kgAlloc.clsPlanBase = p_FmPcd->p_FmPcdKg->clsPlanGrps[grpId].baseEntry; + msg.msgId = FM_PCD_FREE_KG_CLSPLAN; + memcpy(msg.msgBody, &kgAlloc, sizeof(kgAlloc)); + replyLength = sizeof(uint32_t); + if ((err = XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId) + sizeof(kgAlloc), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + { + REPORT_ERROR(MINOR, err, NO_MSG); + return; + } + if (replyLength != sizeof(uint32_t)) + { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + return; + } + if((t_Error)reply.error != E_OK) + { + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("Free KG clsPlan failed")); + return; + } + } + + if(grpId == p_FmPcd->p_FmPcdKg->emptyClsPlanGrpId) + p_FmPcd->p_FmPcdKg->emptyClsPlanGrpId = ILLEGAL_CLS_PLAN; + /* clear clsPlan driver structure */ + memset(&p_FmPcd->p_FmPcdKg->clsPlanGrps[grpId], 0, sizeof(t_FmPcdKgClsPlanGrp)); +} + +t_Error FmPcdKgBuildBindPortToSchemes(t_Handle h_FmPcd , t_FmPcdKgInterModuleBindPortToSchemes *p_BindPort, uint32_t *p_SpReg, bool add) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t j, schemesPerPortVector = 0; + t_FmPcdKgScheme *p_Scheme; + uint8_t i, relativeSchemeId; + uint32_t tmp, walking1Mask; + uint8_t swPortIndex = 0; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdKg, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE); + + /* for each scheme */ + for(i = 0; inumOfSchemes; i++) + { + relativeSchemeId = FmPcdKgGetRelativeSchemeId(p_FmPcd, p_BindPort->schemesIds[i]); + if(relativeSchemeId >= FM_PCD_KG_NUM_OF_SCHEMES) + RETURN_ERROR(MAJOR, E_NOT_IN_RANGE, NO_MSG); + + if(add) + { + if (!FmPcdKgIsSchemeValidSw(h_FmPcd, relativeSchemeId)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Requested scheme is invalid.")); + + p_Scheme = &p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId]; + /* check netEnvId of the port against the scheme netEnvId */ + if((p_Scheme->netEnvId != p_BindPort->netEnvId) && (p_Scheme->netEnvId != ILLEGAL_NETENV)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Port may not be bound to requested scheme - differ in netEnvId")); + + /* if next engine is private port policer profile, we need to check that it is valid */ + HW_PORT_ID_TO_SW_PORT_INDX(swPortIndex, p_BindPort->hardwarePortId); + if(p_Scheme->nextRelativePlcrProfile) + { + for(j = 0;jnumOfProfiles;j++) + { + ASSERT_COND(p_FmPcd->p_FmPcdPlcr->portsMapping[swPortIndex].h_FmPort); + if(p_Scheme->relativeProfileId+j >= p_FmPcd->p_FmPcdPlcr->portsMapping[swPortIndex].numOfProfiles) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Relative profile not in range")); + if(!FmPcdPlcrIsProfileValid(p_FmPcd, (uint16_t)(p_FmPcd->p_FmPcdPlcr->portsMapping[swPortIndex].profilesBase + p_Scheme->relativeProfileId + j))) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Relative profile not valid.")); + } + } + if(!p_BindPort->useClsPlan) + { + /* if this port does not use clsPlan, it may not be bound to schemes with units that contain + cls plan options. Schemes that are used only directly, should not be checked. + it also may not be bound to schemes that go to CC with units that are options - so we OR + the match vector and the grpBits (= ccUnits) */ + if ((p_Scheme->matchVector != SCHEME_ALWAYS_DIRECT) || p_Scheme->ccUnits) + { + walking1Mask = 0x80000000; + tmp = (p_Scheme->matchVector == SCHEME_ALWAYS_DIRECT)? 0:p_Scheme->matchVector; + tmp |= p_Scheme->ccUnits; + while (tmp) + { + if(tmp & walking1Mask) + { + tmp &= ~walking1Mask; + if(!PcdNetEnvIsUnitWithoutOpts(p_FmPcd, p_Scheme->netEnvId, walking1Mask)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Port (without clsPlan) may not be bound to requested scheme - uses clsPlan options")); + } + walking1Mask >>= 1; + } + } + } + } + /* build vector */ + schemesPerPortVector |= 1 << (31 - p_BindPort->schemesIds[i]); + } + + *p_SpReg = schemesPerPortVector; + + return E_OK; +} + +void FmPcdKgIncSchemeOwners(t_Handle h_FmPcd , t_FmPcdKgInterModuleBindPortToSchemes *p_BindPort) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + int i; + t_FmPcdKgScheme *p_Scheme; + + /* for each scheme - update owners counters */ + for(i = 0; inumOfSchemes; i++) + { + p_Scheme = &p_FmPcd->p_FmPcdKg->schemes[p_BindPort->schemesIds[i]]; + + /* increment owners number */ + p_Scheme->owners++; + } +} + +void FmPcdKgDecSchemeOwners(t_Handle h_FmPcd , t_FmPcdKgInterModuleBindPortToSchemes *p_BindPort) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + int i; + t_FmPcdKgScheme *p_Scheme; + + /* for each scheme - update owners counters */ + for(i = 0; inumOfSchemes; i++) + { + p_Scheme = &p_FmPcd->p_FmPcdKg->schemes[p_BindPort->schemesIds[i]]; + + /* increment owners number */ + ASSERT_COND(p_Scheme->owners); + p_Scheme->owners--; + } +} + +static t_Error KgWriteSp(t_FmPcd *p_FmPcd, uint8_t hardwarePortId, uint32_t spReg, bool add) +{ + t_FmPcdKgPortConfigRegs *p_FmPcdKgPortRegs; + uint32_t tmpKgarReg = 0, tmpKgpeSp, intFlags; + t_Error err = E_OK; + + if (p_FmPcd->h_Hc) + return FmHcKgWriteSp(p_FmPcd->h_Hc, hardwarePortId, spReg, add); + + p_FmPcdKgPortRegs = &p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.portRegs; + + tmpKgarReg = FmPcdKgBuildReadPortSchemeBindActionReg(hardwarePortId); + intFlags = FmPcdLock(p_FmPcd); + err = WriteKgarWait(p_FmPcd, tmpKgarReg); + if(err) + { + FmPcdUnlock(p_FmPcd, intFlags); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + tmpKgpeSp = GET_UINT32(p_FmPcdKgPortRegs->kgoe_sp); + + if(add) + tmpKgpeSp |= spReg; + else /* clear */ + tmpKgpeSp &= ~spReg; + + WRITE_UINT32(p_FmPcdKgPortRegs->kgoe_sp, tmpKgpeSp); + + tmpKgarReg = FmPcdKgBuildWritePortSchemeBindActionReg(hardwarePortId); + + err = WriteKgarWait(p_FmPcd, tmpKgarReg); + FmPcdUnlock(p_FmPcd, intFlags); + return err; +} + +static t_Error KgWriteCpp(t_FmPcd *p_FmPcd, uint8_t hardwarePortId, uint32_t cppReg) +{ + t_FmPcdKgPortConfigRegs *p_FmPcdKgPortRegs; + uint32_t tmpKgarReg, intFlags; + t_Error err; + + if (p_FmPcd->h_Hc) + return FmHcKgWriteCpp(p_FmPcd->h_Hc, hardwarePortId, cppReg); + + p_FmPcdKgPortRegs = &p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.portRegs; + intFlags = FmPcdLock(p_FmPcd); + WRITE_UINT32(p_FmPcdKgPortRegs->kgoe_cpp, cppReg); + + tmpKgarReg = FmPcdKgBuildWritePortClsPlanBindActionReg(hardwarePortId); + err = WriteKgarWait(p_FmPcd, tmpKgarReg); + FmPcdUnlock(p_FmPcd, intFlags); + + return err; +} + +static void FmPcdKgUnbindPortToClsPlanGrp(t_FmPcd *p_FmPcd, uint8_t hardwarePortId) +{ + KgWriteCpp(p_FmPcd, hardwarePortId, 0); +} + +static t_Error KgBindPortToClsPlanGrp(t_FmPcd *p_FmPcd, uint8_t hardwarePortId, uint8_t clsPlanGrpId) +{ + uint32_t tmpKgpeCpp = 0; + + tmpKgpeCpp = FmPcdKgBuildCppReg(p_FmPcd, clsPlanGrpId); + return KgWriteCpp(p_FmPcd, hardwarePortId, tmpKgpeCpp); +} + +t_Error FmPcdKgBindPortToSchemes(t_Handle h_FmPcd , t_FmPcdKgInterModuleBindPortToSchemes *p_SchemeBind) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t spReg; + t_Error err = E_OK; + + err = FmPcdKgBuildBindPortToSchemes(h_FmPcd, p_SchemeBind, &spReg, TRUE); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + + err = KgWriteSp(p_FmPcd, p_SchemeBind->hardwarePortId, spReg, TRUE); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + + FmPcdKgIncSchemeOwners(h_FmPcd, p_SchemeBind); + + return E_OK; +} + +t_Error FmPcdKgUnbindPortToSchemes(t_Handle h_FmPcd , t_FmPcdKgInterModuleBindPortToSchemes *p_SchemeBind) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t spReg; + t_Error err = E_OK; + + err = FmPcdKgBuildBindPortToSchemes(h_FmPcd, p_SchemeBind, &spReg, FALSE); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + + err = KgWriteSp(p_FmPcd, p_SchemeBind->hardwarePortId, spReg, FALSE); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + + FmPcdKgDecSchemeOwners(h_FmPcd, p_SchemeBind); + + return E_OK; +} + +bool FmPcdKgIsSchemeValidSw(t_Handle h_FmPcd, uint8_t schemeId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + return p_FmPcd->p_FmPcdKg->schemes[schemeId].valid; +} + +bool KgIsSchemeAlwaysDirect(t_Handle h_FmPcd, uint8_t schemeId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + if(p_FmPcd->p_FmPcdKg->schemes[schemeId].matchVector == SCHEME_ALWAYS_DIRECT) + return TRUE; + else + return FALSE; +} + +t_Error FmPcdKgAllocSchemes(t_Handle h_FmPcd, uint8_t numOfSchemes, uint8_t guestId, uint8_t *p_SchemesIds) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t intFlags; + uint8_t i,j; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdKg, E_INVALID_HANDLE); + + intFlags = FmPcdLock(p_FmPcd); + for(j=0,i=0;ip_FmPcdKg->schemesMng[i].allocated) + { + p_FmPcd->p_FmPcdKg->schemesMng[i].allocated = TRUE; + p_FmPcd->p_FmPcdKg->schemesMng[i].ownerId = guestId; + p_SchemesIds[j] = i; + j++; + } + } + + if (j != numOfSchemes) + { + /* roll back */ + for(j--; j; j--) + { + p_FmPcd->p_FmPcdKg->schemesMng[p_SchemesIds[j]].allocated = FALSE; + p_FmPcd->p_FmPcdKg->schemesMng[p_SchemesIds[j]].ownerId = 0; + p_SchemesIds[j] = 0; + } + FmPcdUnlock(p_FmPcd, intFlags); + RETURN_ERROR(MAJOR, E_NOT_AVAILABLE, ("No schemes found")); + } + FmPcdUnlock(p_FmPcd, intFlags); + + return E_OK; +} + +t_Error FmPcdKgFreeSchemes(t_Handle h_FmPcd, uint8_t numOfSchemes, uint8_t guestId, uint8_t *p_SchemesIds) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t intFlags; + uint8_t i; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdKg, E_INVALID_HANDLE); + + intFlags = FmPcdLock(p_FmPcd); + + for(i=0;ip_FmPcdKg->schemesMng[p_SchemesIds[i]].allocated) + { + FmPcdUnlock(p_FmPcd, intFlags); + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Scheme was not previously allocated")); + } + if(p_FmPcd->p_FmPcdKg->schemesMng[p_SchemesIds[i]].ownerId != guestId) + { + FmPcdUnlock(p_FmPcd, intFlags); + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Scheme is not owned by caller. ")); + } + p_FmPcd->p_FmPcdKg->schemesMng[p_SchemesIds[i]].allocated = FALSE; + p_FmPcd->p_FmPcdKg->schemesMng[p_SchemesIds[i]].ownerId = 0; + } + + FmPcdUnlock(p_FmPcd, intFlags); + return E_OK; +} + +t_Error KgAllocClsPlanEntries(t_Handle h_FmPcd, uint16_t numOfClsPlanEntries, uint8_t guestId, uint8_t *p_First) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t intFlags; + uint8_t numOfBlocks, blocksFound=0, first=0; + uint8_t i, j; + + intFlags = FmPcdLock(p_FmPcd); + + if(!numOfClsPlanEntries) + { + FmPcdUnlock(p_FmPcd, intFlags); + return E_OK; + } + + if ((numOfClsPlanEntries % CLS_PLAN_NUM_PER_GRP) || (!POWER_OF_2(numOfClsPlanEntries))) + { + FmPcdUnlock(p_FmPcd, intFlags); + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("numOfClsPlanEntries must be a power of 2 and divisible by 8")); + } + + numOfBlocks = (uint8_t)(numOfClsPlanEntries/CLS_PLAN_NUM_PER_GRP); + + /* try to find consequent blocks */ + first = 0; + for(i=0;ip_FmPcdKg->clsPlanBlocksMng[i].allocated) + { + blocksFound++; + i++; + if(blocksFound == numOfBlocks) + break; + } + else + { + blocksFound = 0; + /* advance i to the next aligned address */ + first = i = (uint8_t)(first + numOfBlocks); + } + } + + if(blocksFound == numOfBlocks) + { + *p_First = (uint8_t)(first*CLS_PLAN_NUM_PER_GRP); + for(j = first; jp_FmPcdKg->clsPlanBlocksMng[j].allocated = TRUE; + p_FmPcd->p_FmPcdKg->clsPlanBlocksMng[j].ownerId = guestId; + } + FmPcdUnlock(p_FmPcd, intFlags); + + return E_OK; + } + else + { + FmPcdUnlock(p_FmPcd, intFlags); + RETURN_ERROR(MINOR, E_FULL, ("No recources for clsPlan")); + } +} + +void KgFreeClsPlanEntries(t_Handle h_FmPcd, uint16_t numOfClsPlanEntries, uint8_t guestId, uint8_t base) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t intFlags; + uint8_t numOfBlocks; + uint8_t i, baseBlock; + + UNUSED( guestId); + + intFlags = FmPcdLock(p_FmPcd); + + numOfBlocks = (uint8_t)(numOfClsPlanEntries/CLS_PLAN_NUM_PER_GRP); + ASSERT_COND(!(base%CLS_PLAN_NUM_PER_GRP)); + + baseBlock = (uint8_t)(base/CLS_PLAN_NUM_PER_GRP); + for(i=baseBlock;ip_FmPcdKg->clsPlanBlocksMng[i].allocated); + ASSERT_COND(guestId == p_FmPcd->p_FmPcdKg->clsPlanBlocksMng[i].ownerId); + p_FmPcd->p_FmPcdKg->clsPlanBlocksMng[i].allocated = FALSE; + p_FmPcd->p_FmPcdKg->clsPlanBlocksMng[i].ownerId = 0; + } + FmPcdUnlock(p_FmPcd, intFlags); +} + +void KgEnable(t_FmPcd *p_FmPcd) +{ + t_FmPcdKgRegs *p_Regs = p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs; + + ASSERT_COND(FmIsMaster(p_FmPcd->h_Fm)); + WRITE_UINT32(p_Regs->kggcr,GET_UINT32(p_Regs->kggcr) | FM_PCD_KG_KGGCR_EN); +} + +void KgDisable(t_FmPcd *p_FmPcd) +{ + t_FmPcdKgRegs *p_Regs = p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs; + + ASSERT_COND(FmIsMaster(p_FmPcd->h_Fm)); + WRITE_UINT32(p_Regs->kggcr,GET_UINT32(p_Regs->kggcr) & ~FM_PCD_KG_KGGCR_EN); +} + +void KgSetClsPlan(t_Handle h_FmPcd, t_FmPcdKgInterModuleClsPlanSet *p_Set) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_FmPcdKgClsPlanRegs *p_FmPcdKgPortRegs; + uint32_t tmpKgarReg=0, intFlags; + uint16_t i, j; + + SANITY_CHECK_RETURN(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN(p_FmPcd->p_FmPcdKg, E_INVALID_HANDLE); + + ASSERT_COND(FmIsMaster(p_FmPcd->h_Fm)); + p_FmPcdKgPortRegs = &p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.clsPlanRegs; + + intFlags = FmPcdLock(p_FmPcd); + for(i=p_Set->baseEntry;ibaseEntry+p_Set->numOfClsPlanEntries;i+=8) + { + tmpKgarReg = FmPcdKgBuildWriteClsPlanBlockActionReg((uint8_t)(i / CLS_PLAN_NUM_PER_GRP)); + + for (j = i; j < i+8; j++) + { + ASSERT_COND(IN_RANGE(0, (j - p_Set->baseEntry), FM_PCD_MAX_NUM_OF_CLS_PLANS-1)); + WRITE_UINT32(p_FmPcdKgPortRegs->kgcpe[j % CLS_PLAN_NUM_PER_GRP],p_Set->vectors[j - p_Set->baseEntry]); + } + + if(WriteKgarWait(p_FmPcd, tmpKgarReg) != E_OK) + { + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("WriteKgarWait FAILED")); + return; + } + } + FmPcdUnlock(p_FmPcd, intFlags); +} + +static void PcdKgErrorException(t_Handle h_FmPcd) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + uint32_t event, force, schemeIndexes = 0,index = 0, mask = 0; + + ASSERT_COND(FmIsMaster(p_FmPcd->h_Fm)); + event = GET_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->kgeer); + mask = GET_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->kgeeer); + + schemeIndexes = GET_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->kgseer); + schemeIndexes &= GET_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->kgseeer); + + event &= mask; + + /* clear the forced events */ + force = GET_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->kgfeer); + if(force & event) + WRITE_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->kgfeer, force & ~event); + + WRITE_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->kgeer, event); + WRITE_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->kgseer, schemeIndexes); + + if(event & FM_PCD_KG_DOUBLE_ECC) + p_FmPcd->f_Exception(p_FmPcd->h_App,e_FM_PCD_KG_EXCEPTION_DOUBLE_ECC); + if(event & FM_PCD_KG_KEYSIZE_OVERFLOW) + { + if(schemeIndexes) + { + while(schemeIndexes) + { + if(schemeIndexes & 0x1) + p_FmPcd->f_FmPcdIndexedException(p_FmPcd->h_App,e_FM_PCD_KG_EXCEPTION_KEYSIZE_OVERFLOW, (uint16_t)(31 - index)); + schemeIndexes >>= 1; + index+=1; + } + } + else /* this should happen only when interrupt is forced. */ + p_FmPcd->f_Exception(p_FmPcd->h_App,e_FM_PCD_KG_EXCEPTION_KEYSIZE_OVERFLOW); + } +} + +static t_Error KgInitGuest(t_FmPcd *p_FmPcd) +{ + t_Error err = E_OK; + t_FmPcdIpcKgSchemesParams kgAlloc; + uint32_t replyLength; + t_FmPcdIpcReply reply; + t_FmPcdIpcMsg msg; + + ASSERT_COND(p_FmPcd->guestId != NCSW_MASTER_ID); + + /* in GUEST_PARTITION, we use the IPC */ + memset(&reply, 0, sizeof(reply)); + memset(&msg, 0, sizeof(msg)); + memset(&kgAlloc, 0, sizeof(t_FmPcdIpcKgSchemesParams)); + kgAlloc.numOfSchemes = p_FmPcd->p_FmPcdKg->numOfSchemes; + kgAlloc.guestId = p_FmPcd->guestId; + msg.msgId = FM_PCD_ALLOC_KG_SCHEMES; + memcpy(msg.msgBody, &kgAlloc, sizeof(kgAlloc)); + replyLength = sizeof(uint32_t) + p_FmPcd->p_FmPcdKg->numOfSchemes*sizeof(uint8_t); + if ((err = XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId) + sizeof(kgAlloc), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + if(replyLength != (sizeof(uint32_t) + p_FmPcd->p_FmPcdKg->numOfSchemes*sizeof(uint8_t))) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + memcpy(p_FmPcd->p_FmPcdKg->schemesIds, (uint8_t*)(reply.replyBody),p_FmPcd->p_FmPcdKg->numOfSchemes*sizeof(uint8_t)); + + return (t_Error)reply.error; +} + +static t_Error KgInitMaster(t_FmPcd *p_FmPcd) +{ + t_Error err = E_OK; + t_FmPcdKgRegs *p_Regs = p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs; + int i; + uint8_t hardwarePortId = 0; + uint32_t tmpReg; + + ASSERT_COND(p_FmPcd->guestId == NCSW_MASTER_ID); + + /**********************KGEER******************/ + WRITE_UINT32(p_Regs->kgeer, (FM_PCD_KG_DOUBLE_ECC | FM_PCD_KG_KEYSIZE_OVERFLOW)); + /**********************KGEER******************/ + + /**********************KGEEER******************/ + tmpReg = 0; + if(p_FmPcd->exceptions & FM_PCD_EX_KG_DOUBLE_ECC) + { + FmEnableRamsEcc(p_FmPcd->h_Fm); + tmpReg |= FM_PCD_KG_DOUBLE_ECC; + } + if(p_FmPcd->exceptions & FM_PCD_EX_KG_KEYSIZE_OVERFLOW) + tmpReg |= FM_PCD_KG_KEYSIZE_OVERFLOW; + WRITE_UINT32(p_Regs->kgeeer,tmpReg); + /**********************KGEEER******************/ + + /**********************KGFDOR******************/ + WRITE_UINT32(p_Regs->kgfdor,0); + /**********************KGFDOR******************/ + + /**********************KGGDV0R******************/ + WRITE_UINT32(p_Regs->kggdv0r,0); + /**********************KGGDV0R******************/ + + /**********************KGGDV1R******************/ + WRITE_UINT32(p_Regs->kggdv1r,0); + /**********************KGGDV1R******************/ + + /**********************KGGCR******************/ + WRITE_UINT32(p_Regs->kggcr, NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME); + /**********************KGGCR******************/ + + /* register even if no interrupts enabled, to allow future enablement */ + FmRegisterIntr(p_FmPcd->h_Fm, e_FM_MOD_KG, 0, e_FM_INTR_TYPE_ERR, PcdKgErrorException, p_FmPcd); + + /* clear binding between ports to schemes so that all ports are not bound to any schemes */ + for (i=0;ikgseer, 0xFFFFFFFF); + WRITE_UINT32(p_Regs->kgseeer, 0xFFFFFFFF); + + if(p_FmPcd->p_FmPcdKg->numOfSchemes) + { + err = FmPcdKgAllocSchemes(p_FmPcd, + p_FmPcd->p_FmPcdKg->numOfSchemes, + p_FmPcd->guestId, + p_FmPcd->p_FmPcdKg->schemesIds); + if(err) + RETURN_ERROR(MINOR, err, NO_MSG); + } + + return E_OK; +} + + +/****************************************/ +/* API routines */ +/****************************************/ +t_Error FM_PCD_KgSetAdditionalDataAfterParsing(t_Handle h_FmPcd, uint8_t payloadOffset) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_FmPcdKgRegs *p_Regs; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_NULL_POINTER); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdKg, E_NULL_POINTER); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs, E_NULL_POINTER); + + p_Regs = p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs; + if(!FmIsMaster(p_FmPcd->h_Fm)) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("FM_PCD_KgSetAdditionalDataAfterParsing - guest mode!")); + +/* not needed + if(payloadOffset > 256) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("data exatraction offset from parseing end can not be more than 256")); +*/ + + WRITE_UINT32(p_Regs->kgfdor,payloadOffset); + + return E_OK; +} + +t_Error FM_PCD_KgSetDfltValue(t_Handle h_FmPcd, uint8_t valueId, uint32_t value) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_FmPcdKgRegs *p_Regs; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(((valueId == 0) || (valueId == 1)), E_INVALID_VALUE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_NULL_POINTER); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdKg, E_NULL_POINTER); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs, E_NULL_POINTER); + + p_Regs = p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs; + + if(!FmIsMaster(p_FmPcd->h_Fm)) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("FM_PCD_KgSetDfltValue - guest mode!")); + + if(valueId == 0) + WRITE_UINT32(p_Regs->kggdv0r,value); + else + WRITE_UINT32(p_Regs->kggdv1r,value); + return E_OK; +} + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +t_Error FM_PCD_KgDumpRegs(t_Handle h_FmPcd) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + int i = 0, j = 0; + uint8_t hardwarePortId = 0; + uint32_t tmpKgarReg, intFlags; + t_Error err = E_OK; + t_FmPcdIpcMsg msg; + + DECLARE_DUMP; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdKg, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE); + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + msg.msgId = FM_PCD_KG_DUMP_REGS; + return XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId), + NULL, + NULL, + NULL, + NULL); + } + DUMP_SUBTITLE(("\n")); + DUMP_TITLE(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs, ("FmPcdKgRegs Regs")); + + DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,kggcr); + DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,kgeer); + DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,kgeeer); + DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,kgseer); + DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,kgseeer); + DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,kggsr); + DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,kgtpc); + DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,kgserc); + DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,kgfdor); + DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,kggdv0r); + DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,kggdv1r); + DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,kgfer); + DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,kgfeer); + DUMP_VAR(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs,kgar); + + DUMP_SUBTITLE(("\n")); + intFlags = FmPcdLock(p_FmPcd); + for(j = 0;jp_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs, ("FmPcdKgIndirectAccessSchemeRegs Scheme %d Regs", j)); + + DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs,kgse_mode); + DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs,kgse_ekfc); + DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs,kgse_ekdv); + DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs,kgse_bmch); + DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs,kgse_bmcl); + DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs,kgse_fqb); + DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs,kgse_hc); + DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs,kgse_ppc); + + DUMP_TITLE(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs.kgse_gec, ("kgse_gec")); + DUMP_SUBSTRUCT_ARRAY(i, FM_PCD_KG_NUM_OF_GENERIC_REGS) + { + DUMP_MEMORY(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs.kgse_gec[i], sizeof(uint32_t)); + } + + DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs,kgse_spc); + DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs,kgse_dv0); + DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs,kgse_dv1); + DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs,kgse_ccbs); + DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs,kgse_mv); + } + DUMP_SUBTITLE(("\n")); + + for (i=0;ip_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.portRegs, ("FmPcdKgIndirectAccessPortRegs PCD Port %d regs", hardwarePortId)); + + DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.portRegs, kgoe_sp); + DUMP_VAR(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.portRegs, kgoe_cpp); + } + + DUMP_SUBTITLE(("\n")); + for(j=0;jp_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.clsPlanRegs, ("FmPcdKgIndirectAccessClsPlanRegs Regs group %d", j)); + DUMP_TITLE(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.clsPlanRegs.kgcpe, ("kgcpe")); + + tmpKgarReg = FmPcdKgBuildReadClsPlanBlockActionReg((uint8_t)j); + err = WriteKgarWait(p_FmPcd, tmpKgarReg); + if(err) + RETURN_ERROR(MINOR, err, NO_MSG); + DUMP_SUBSTRUCT_ARRAY(i, 8) + DUMP_MEMORY(&p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.clsPlanRegs.kgcpe[i], sizeof(uint32_t)); + } + FmPcdUnlock(p_FmPcd, intFlags); + + return E_OK; +} +#endif /* (defined(DEBUG_ERRORS) && ... */ + +t_Handle KgConfig( t_FmPcd *p_FmPcd, t_FmPcdParams *p_FmPcdParams) +{ + t_FmPcdKg *p_FmPcdKg; + + UNUSED(p_FmPcd); + + if (p_FmPcdParams->numOfSchemes > FM_PCD_KG_NUM_OF_SCHEMES) + { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, + ("numOfSchemes should not exceed %d", FM_PCD_KG_NUM_OF_SCHEMES)); + return NULL; + } + + p_FmPcdKg = (t_FmPcdKg *)XX_Malloc(sizeof(t_FmPcdKg)); + if (!p_FmPcdKg) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM Keygen allocation FAILED")); + return NULL; + } + memset(p_FmPcdKg, 0, sizeof(t_FmPcdKg)); + + if(FmIsMaster(p_FmPcd->h_Fm)) + { + p_FmPcdKg->p_FmPcdKgRegs = (t_FmPcdKgRegs *)UINT_TO_PTR(FmGetPcdKgBaseAddr(p_FmPcdParams->h_Fm)); + p_FmPcd->exceptions |= DEFAULT_fmPcdKgErrorExceptions; + } + + p_FmPcdKg->numOfSchemes = p_FmPcdParams->numOfSchemes; + if((p_FmPcd->guestId == NCSW_MASTER_ID) && !p_FmPcdKg->numOfSchemes) + { + p_FmPcdKg->numOfSchemes = FM_PCD_KG_NUM_OF_SCHEMES; + DBG(WARNING, ("numOfSchemes was defined 0 by user, re-defined by driver to FM_PCD_KG_NUM_OF_SCHEMES")); + } + + p_FmPcdKg->emptyClsPlanGrpId = ILLEGAL_CLS_PLAN; + + return p_FmPcdKg; +} + +t_Error KgInit(t_FmPcd *p_FmPcd) +{ + if (p_FmPcd->guestId == NCSW_MASTER_ID) + return KgInitMaster(p_FmPcd); + else + return KgInitGuest(p_FmPcd); +} + +t_Error KgFree(t_FmPcd *p_FmPcd) +{ + t_FmPcdIpcKgSchemesParams kgAlloc; + t_Error err = E_OK; + t_FmPcdIpcMsg msg; + uint32_t replyLength; + t_FmPcdIpcReply reply; + + FmUnregisterIntr(p_FmPcd->h_Fm, e_FM_MOD_KG, 0, e_FM_INTR_TYPE_ERR); + + if(p_FmPcd->guestId == NCSW_MASTER_ID) + return FmPcdKgFreeSchemes(p_FmPcd, + p_FmPcd->p_FmPcdKg->numOfSchemes, + p_FmPcd->guestId, + p_FmPcd->p_FmPcdKg->schemesIds); + + /* guest */ + memset(&reply, 0, sizeof(reply)); + memset(&msg, 0, sizeof(msg)); + kgAlloc.numOfSchemes = p_FmPcd->p_FmPcdKg->numOfSchemes; + kgAlloc.guestId = p_FmPcd->guestId; + ASSERT_COND(kgAlloc.numOfSchemes < FM_PCD_KG_NUM_OF_SCHEMES); + memcpy(kgAlloc.schemesIds, p_FmPcd->p_FmPcdKg->schemesIds , (sizeof(uint8_t))*kgAlloc.numOfSchemes); + msg.msgId = FM_PCD_FREE_KG_SCHEMES; + memcpy(msg.msgBody, &kgAlloc, sizeof(kgAlloc)); + replyLength = sizeof(uint32_t); + if ((err = XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId) + sizeof(kgAlloc), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + if (replyLength != sizeof(uint32_t)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + + return (t_Error)reply.error; +} + +t_Error FmPcdKgSetOrBindToClsPlanGrp(t_Handle h_FmPcd, uint8_t hardwarePortId, uint8_t netEnvId, protocolOpt_t *p_OptArray, uint8_t *p_ClsPlanGrpId, bool *p_IsEmptyClsPlanGrp) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + t_FmPcdKgInterModuleClsPlanGrpParams grpParams, *p_GrpParams; + t_FmPcdKgClsPlanGrp *p_ClsPlanGrp; + t_FmPcdKgInterModuleClsPlanSet *p_ClsPlanSet; + t_Error err; + + memset(&grpParams, 0, sizeof(grpParams)); + grpParams.clsPlanGrpId = ILLEGAL_CLS_PLAN; + p_GrpParams = &grpParams; + + p_GrpParams->netEnvId = netEnvId; + err = PcdGetClsPlanGrpParams(h_FmPcd, p_GrpParams); + if(err) + RETURN_ERROR(MINOR,err,NO_MSG); + if(p_GrpParams->grpExists) + *p_ClsPlanGrpId = p_GrpParams->clsPlanGrpId; + else + { + p_ClsPlanSet = (t_FmPcdKgInterModuleClsPlanSet *)XX_Malloc(sizeof(t_FmPcdKgInterModuleClsPlanSet)); + if (!p_ClsPlanSet) + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("memory allocation failed for p_ClsPlanSet")); + memset(p_ClsPlanSet, 0, sizeof(t_FmPcdKgInterModuleClsPlanSet)); + err = FmPcdKgBuildClsPlanGrp(h_FmPcd, p_GrpParams, p_ClsPlanSet); + if (err) + { + XX_Free(p_ClsPlanSet); + RETURN_ERROR(MINOR,err,NO_MSG); + } + *p_ClsPlanGrpId = p_GrpParams->clsPlanGrpId; + + if (p_FmPcd->h_Hc) + { + /* write clsPlan entries to memory */ + err = FmHcPcdKgSetClsPlan(p_FmPcd->h_Hc, p_ClsPlanSet); + if (err) + { + XX_Free(p_ClsPlanSet); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + } + else + /* write clsPlan entries to memory */ + KgSetClsPlan(p_FmPcd, p_ClsPlanSet); + + XX_Free(p_ClsPlanSet); + } + + /* mark if this is an empty classification group */ + if(*p_ClsPlanGrpId == p_FmPcd->p_FmPcdKg->emptyClsPlanGrpId) + *p_IsEmptyClsPlanGrp = TRUE; + else + *p_IsEmptyClsPlanGrp = FALSE; + + p_ClsPlanGrp = &p_FmPcd->p_FmPcdKg->clsPlanGrps[*p_ClsPlanGrpId]; + + /* increment owners number */ + p_ClsPlanGrp->owners++; + + /* copy options array for port */ + memcpy(p_OptArray, &p_FmPcd->p_FmPcdKg->clsPlanGrps[*p_ClsPlanGrpId].optArray, FM_PCD_MAX_NUM_OF_OPTIONS(FM_PCD_MAX_NUM_OF_CLS_PLANS)*sizeof(protocolOpt_t)); + + /* bind port to the new or existing group */ + err = KgBindPortToClsPlanGrp(p_FmPcd, hardwarePortId, p_GrpParams->clsPlanGrpId); + if(err) + RETURN_ERROR(MINOR, err, NO_MSG); + + return E_OK; +} + +t_Error FmPcdKgDeleteOrUnbindPortToClsPlanGrp(t_Handle h_FmPcd, uint8_t hardwarePortId, uint8_t clsPlanGrpId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + t_FmPcdKgClsPlanGrp *p_ClsPlanGrp = &p_FmPcd->p_FmPcdKg->clsPlanGrps[clsPlanGrpId]; + t_FmPcdKgInterModuleClsPlanSet *p_ClsPlanSet; + + FmPcdKgUnbindPortToClsPlanGrp(p_FmPcd, hardwarePortId); + + /* decrement owners number */ + ASSERT_COND(p_ClsPlanGrp->owners); + p_ClsPlanGrp->owners--; + + if(!p_ClsPlanGrp->owners) + { + if (p_FmPcd->h_Hc) + return FmHcPcdKgDeleteClsPlan(p_FmPcd->h_Hc, clsPlanGrpId); + else + { + /* clear clsPlan entries in memory */ + p_ClsPlanSet = (t_FmPcdKgInterModuleClsPlanSet *)XX_Malloc(sizeof(t_FmPcdKgInterModuleClsPlanSet)); + if (!p_ClsPlanSet) + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("memory allocation failed for p_ClsPlanSet")); + memset(p_ClsPlanSet, 0, sizeof(t_FmPcdKgInterModuleClsPlanSet)); + p_ClsPlanSet->baseEntry = p_FmPcd->p_FmPcdKg->clsPlanGrps[clsPlanGrpId].baseEntry; + p_ClsPlanSet->numOfClsPlanEntries = p_FmPcd->p_FmPcdKg->clsPlanGrps[clsPlanGrpId].sizeOfGrp; + KgSetClsPlan(p_FmPcd, p_ClsPlanSet); + XX_Free(p_ClsPlanSet); + FmPcdKgDestroyClsPlanGrp(h_FmPcd, clsPlanGrpId); + } + } + return E_OK; +} + +t_Error FmPcdKgBuildScheme(t_Handle h_FmPcd, t_FmPcdKgSchemeParams *p_Scheme, t_FmPcdKgInterModuleSchemeRegs *p_SchemeRegs) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + uint32_t grpBits = 0; + uint8_t grpBase; + bool direct=TRUE, absolute=FALSE; + uint16_t profileId=0, numOfProfiles=0, relativeProfileId; + t_Error err = E_OK; + int i = 0; + t_NetEnvParams netEnvParams; + uint32_t tmpReg, fqbTmp = 0, ppcTmp = 0, selectTmp, maskTmp, knownTmp, genTmp; + t_FmPcdKgKeyExtractAndHashParams *p_KeyAndHash = NULL; + uint8_t j, curr, idx; + uint8_t id, shift=0, code=0, offset=0, size=0; + t_FmPcdExtractEntry *p_Extract = NULL; + t_FmPcdKgExtractedOrParams *p_ExtractOr; + bool generic = FALSE; + t_KnownFieldsMasks bitMask; + e_FmPcdKgExtractDfltSelect swDefault = (e_FmPcdKgExtractDfltSelect)0; + t_FmPcdKgSchemesExtracts *p_LocalExtractsArray; + uint8_t numOfSwDefaults = 0; + t_FmPcdKgExtractDflt swDefaults[NUM_OF_SW_DEFAULTS]; + uint8_t currGenId = 0, relativeSchemeId; + + if(!p_Scheme->modify) + relativeSchemeId = p_Scheme->id.relativeSchemeId; + else + relativeSchemeId = FmPcdKgGetRelativeSchemeId(p_FmPcd, (uint8_t)(PTR_TO_UINT(p_Scheme->id.h_Scheme)-1)); + + memset(&p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId], 0, sizeof(t_FmPcdKgScheme)); + memset(swDefaults, 0, NUM_OF_SW_DEFAULTS*sizeof(t_FmPcdKgExtractDflt)); + memset(p_SchemeRegs, 0, sizeof(t_FmPcdKgInterModuleSchemeRegs)); + + if (p_Scheme->netEnvParams.numOfDistinctionUnits > FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, + ("numOfDistinctionUnits should not exceed %d", FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS)); + + /* by netEnv parameters, get match vector */ + if(!p_Scheme->alwaysDirect) + { + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].netEnvId = + (uint8_t)(PTR_TO_UINT(p_Scheme->netEnvParams.h_NetEnv)-1); + netEnvParams.netEnvId = p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].netEnvId; + netEnvParams.numOfDistinctionUnits = p_Scheme->netEnvParams.numOfDistinctionUnits; + memcpy(netEnvParams.unitIds, p_Scheme->netEnvParams.unitIds, (sizeof(uint8_t))*p_Scheme->netEnvParams.numOfDistinctionUnits); + err = PcdGetUnitsVector(p_FmPcd, &netEnvParams); + if(err) + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].matchVector = netEnvParams.vector; + } + else + { + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].matchVector = SCHEME_ALWAYS_DIRECT; + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].netEnvId = ILLEGAL_NETENV; + } + + if(p_Scheme->nextEngine == e_FM_PCD_INVALID) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Next Engine of the scheme is not Valid")); + + if(p_Scheme->bypassFqidGeneration) + { +#ifdef FM_KG_NO_BYPASS_FQID_GEN + { + t_FmRevisionInfo revInfo; + + FM_GetRevision(p_FmPcd->h_Fm, &revInfo); + if (revInfo.majorRev != 4) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("bypassFqidGeneration.")); + } +#endif /* FM_KG_NO_BYPASS_FQID_GEN */ + if(p_Scheme->baseFqid) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("baseFqid set for a scheme that does not generate an FQID")); + } + else + if(!p_Scheme->baseFqid) + DBG(WARNING, ("baseFqid is 0.")); + + if(p_Scheme->nextEngine == e_FM_PCD_PLCR) + { + direct = p_Scheme->kgNextEngineParams.plcrProfile.direct; + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].directPlcr = direct; + absolute = (bool)(p_Scheme->kgNextEngineParams.plcrProfile.sharedProfile ? TRUE : FALSE); + if(!direct && absolute) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Indirect policing is not available when profile is shared.")); + + if(direct) + { + profileId = p_Scheme->kgNextEngineParams.plcrProfile.profileSelect.directRelativeProfileId; + numOfProfiles = 1; + } + else + { + profileId = p_Scheme->kgNextEngineParams.plcrProfile.profileSelect.indirectProfile.fqidOffsetRelativeProfileIdBase; + shift = p_Scheme->kgNextEngineParams.plcrProfile.profileSelect.indirectProfile.fqidOffsetShift; + numOfProfiles = p_Scheme->kgNextEngineParams.plcrProfile.profileSelect.indirectProfile.numOfProfiles; + } + } + + if(p_Scheme->nextEngine == e_FM_PCD_CC) + { +#ifdef FM_KG_NO_BYPASS_PLCR_PROFILE_GEN + if((p_Scheme->kgNextEngineParams.cc.plcrNext) && (p_Scheme->kgNextEngineParams.cc.bypassPlcrProfileGeneration)) + { + t_FmRevisionInfo revInfo; + + FM_GetRevision(p_FmPcd->h_Fm, &revInfo); + if (revInfo.majorRev != 4) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("bypassPlcrProfileGeneration.")); + } +#endif /* FM_KG_NO_BYPASS_PLCR_PROFILE_GEN */ + + err = FmPcdCcGetGrpParams(p_Scheme->kgNextEngineParams.cc.h_CcTree, + p_Scheme->kgNextEngineParams.cc.grpId, + &grpBits, + &grpBase); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].ccUnits = grpBits; + + if((p_Scheme->kgNextEngineParams.cc.plcrNext) && + (!p_Scheme->kgNextEngineParams.cc.bypassPlcrProfileGeneration)) + { + if(p_Scheme->kgNextEngineParams.cc.plcrProfile.sharedProfile) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Shared profile may not be used after Coarse classification.")); + absolute = FALSE; + direct = p_Scheme->kgNextEngineParams.cc.plcrProfile.direct; + if(direct) + { + profileId = p_Scheme->kgNextEngineParams.cc.plcrProfile.profileSelect.directRelativeProfileId; + numOfProfiles = 1; + } + else + { + profileId = p_Scheme->kgNextEngineParams.cc.plcrProfile.profileSelect.indirectProfile.fqidOffsetRelativeProfileIdBase; + shift = p_Scheme->kgNextEngineParams.cc.plcrProfile.profileSelect.indirectProfile.fqidOffsetShift; + numOfProfiles = p_Scheme->kgNextEngineParams.cc.plcrProfile.profileSelect.indirectProfile.numOfProfiles; + } + } + } + + /* if policer is used directly after KG, or after CC */ + if((p_Scheme->nextEngine == e_FM_PCD_PLCR) || + ((p_Scheme->nextEngine == e_FM_PCD_CC) && + (p_Scheme->kgNextEngineParams.cc.plcrNext) && + (!p_Scheme->kgNextEngineParams.cc.bypassPlcrProfileGeneration))) + { + /* if private policer profile, it may be uninitialized yet, therefore no checks are done at this stage */ + if(absolute) + { + /* for absolute direct policy only, */ + relativeProfileId = profileId; + err = FmPcdPlcrGetAbsoluteProfileId(h_FmPcd,e_FM_PCD_PLCR_SHARED,NULL, relativeProfileId, &profileId); + if(err) + RETURN_ERROR(MAJOR, err, ("Shared profile not valid offset")); + if(!FmPcdPlcrIsProfileValid(p_FmPcd, profileId)) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Shared profile not valid.")); + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].relativeProfileId = profileId; + } + else + { + /* save relative profile id's for later check */ + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].nextRelativePlcrProfile = TRUE; + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].relativeProfileId = profileId; + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].numOfProfiles = numOfProfiles; + } + } + else + { + /* if policer is NOT going to be used after KG at all than if bypassFqidGeneration + is set, we do not need numOfUsedExtractedOrs and hashDistributionNumOfFqids */ + if(p_Scheme->bypassFqidGeneration && p_Scheme->numOfUsedExtractedOrs) + RETURN_ERROR(MAJOR, E_INVALID_STATE, + ("numOfUsedExtractedOrs is set in a scheme that does not generate FQID or policer profile ID")); + if(p_Scheme->bypassFqidGeneration && + p_Scheme->useHash && + p_Scheme->keyExtractAndHashParams.hashDistributionNumOfFqids) + RETURN_ERROR(MAJOR, E_INVALID_STATE, + ("hashDistributionNumOfFqids is set in a scheme that does not generate FQID or policer profile ID")); + } + + /* configure all 21 scheme registers */ + tmpReg = KG_SCH_MODE_EN; + switch(p_Scheme->nextEngine) + { + case(e_FM_PCD_PLCR): + /* add to mode register - NIA */ + tmpReg |= KG_SCH_MODE_NIA_PLCR; + tmpReg |= NIA_ENG_PLCR; + tmpReg |= (uint32_t)(p_Scheme->kgNextEngineParams.plcrProfile.sharedProfile ? NIA_PLCR_ABSOLUTE:0); + /* initialize policer profile command - */ + /* configure kgse_ppc */ + if(direct) + /* use profileId as base, other fields are 0 */ + p_SchemeRegs->kgse_ppc = (uint32_t)profileId; + else + { + if(shift > MAX_PP_SHIFT) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("fqidOffsetShift may not be larger than %d", MAX_PP_SHIFT)); + + if(!numOfProfiles || !POWER_OF_2(numOfProfiles)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("numOfProfiles must not be 0 and must be a power of 2")); + + ppcTmp = ((uint32_t)shift << KG_SCH_PP_SHIFT_HIGH_SHIFT) & KG_SCH_PP_SHIFT_HIGH; + ppcTmp |= ((uint32_t)shift << KG_SCH_PP_SHIFT_LOW_SHIFT) & KG_SCH_PP_SHIFT_LOW; + ppcTmp |= ((uint32_t)(numOfProfiles-1) << KG_SCH_PP_MASK_SHIFT); + ppcTmp |= (uint32_t)profileId; + + p_SchemeRegs->kgse_ppc = ppcTmp; + } + break; + case(e_FM_PCD_CC): + /* mode reg - define NIA */ + tmpReg |= (NIA_ENG_FM_CTL | NIA_FM_CTL_AC_CC); + + p_SchemeRegs->kgse_ccbs = grpBits; + tmpReg |= (uint32_t)(grpBase << KG_SCH_MODE_CCOBASE_SHIFT); + + if(p_Scheme->kgNextEngineParams.cc.plcrNext) + { + if(!p_Scheme->kgNextEngineParams.cc.bypassPlcrProfileGeneration) + { + /* find out if absolute or relative */ + if(absolute) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("It is illegal to request a shared profile in a scheme that is in a KG->CC->PLCR flow")); + if(direct) + { + /* mask = 0, base = directProfileId */ + p_SchemeRegs->kgse_ppc = (uint32_t)profileId; + } + else + { + if(shift > MAX_PP_SHIFT) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("fqidOffsetShift may not be larger than %d", MAX_PP_SHIFT)); + if(!numOfProfiles || !POWER_OF_2(numOfProfiles)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("numOfProfiles must not be 0 and must be a power of 2")); + + ppcTmp = ((uint32_t)shift << KG_SCH_PP_SHIFT_HIGH_SHIFT) & KG_SCH_PP_SHIFT_HIGH; + ppcTmp |= ((uint32_t)shift << KG_SCH_PP_SHIFT_LOW_SHIFT) & KG_SCH_PP_SHIFT_LOW; + ppcTmp |= ((uint32_t)(numOfProfiles-1) << KG_SCH_PP_MASK_SHIFT); + ppcTmp |= (uint32_t)profileId; + + p_SchemeRegs->kgse_ppc = ppcTmp; + } + } + else + ppcTmp = KG_SCH_PP_NO_GEN; + } + break; + case(e_FM_PCD_DONE): + if(p_Scheme->kgNextEngineParams.doneAction == e_FM_PCD_DROP_FRAME) + tmpReg |= (NIA_ENG_BMI | NIA_BMI_AC_DISCARD); + else + tmpReg |= (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME); + break; + default: + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("Next engine not supported")); + } + p_SchemeRegs->kgse_mode = tmpReg; + + p_SchemeRegs->kgse_mv = p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].matchVector; + + if(p_Scheme->useHash) + { + p_KeyAndHash = &p_Scheme->keyExtractAndHashParams; + + if (p_KeyAndHash->numOfUsedExtracts >= FM_PCD_KG_MAX_NUM_OF_EXTRACTS_PER_KEY) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("numOfUsedExtracts out of range")); + + /* configure kgse_dv0 */ + p_SchemeRegs->kgse_dv0 = p_KeyAndHash->privateDflt0; + + /* configure kgse_dv1 */ + p_SchemeRegs->kgse_dv1 = p_KeyAndHash->privateDflt1; + + if(!p_Scheme->bypassFqidGeneration) + { + if(!p_KeyAndHash->hashDistributionNumOfFqids || !POWER_OF_2(p_KeyAndHash->hashDistributionNumOfFqids)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("hashDistributionNumOfFqids must not be 0 and must be a power of 2")); + if((p_KeyAndHash->hashDistributionNumOfFqids-1) & p_Scheme->baseFqid) + DBG(WARNING, ("baseFqid unaligned. Distribution may result in less than hashDistributionNumOfFqids queues.")); + } + + /* configure kgse_ekdv */ + tmpReg = 0; + for( i=0 ;inumOfUsedDflts ; i++) + { + switch(p_KeyAndHash->dflts[i].type) + { + case(e_FM_PCD_KG_MAC_ADDR): + tmpReg |= (p_KeyAndHash->dflts[i].dfltSelect << KG_SCH_DEF_MAC_ADDR_SHIFT); + break; + case(e_FM_PCD_KG_TCI): + tmpReg |= (p_KeyAndHash->dflts[i].dfltSelect << KG_SCH_DEF_TCI_SHIFT); + break; + case(e_FM_PCD_KG_ENET_TYPE): + tmpReg |= (p_KeyAndHash->dflts[i].dfltSelect << KG_SCH_DEF_ENET_TYPE_SHIFT); + break; + case(e_FM_PCD_KG_PPP_SESSION_ID): + tmpReg |= (p_KeyAndHash->dflts[i].dfltSelect << KG_SCH_DEF_PPP_SESSION_ID_SHIFT); + break; + case(e_FM_PCD_KG_PPP_PROTOCOL_ID): + tmpReg |= (p_KeyAndHash->dflts[i].dfltSelect << KG_SCH_DEF_PPP_PROTOCOL_ID_SHIFT); + break; + case(e_FM_PCD_KG_MPLS_LABEL): + tmpReg |= (p_KeyAndHash->dflts[i].dfltSelect << KG_SCH_DEF_MPLS_LABEL_SHIFT); + break; + case(e_FM_PCD_KG_IP_ADDR): + tmpReg |= (p_KeyAndHash->dflts[i].dfltSelect << KG_SCH_DEF_IP_ADDR_SHIFT); + break; + case(e_FM_PCD_KG_PROTOCOL_TYPE): + tmpReg |= (p_KeyAndHash->dflts[i].dfltSelect << KG_SCH_DEF_PROTOCOL_TYPE_SHIFT); + break; + case(e_FM_PCD_KG_IP_TOS_TC): + tmpReg |= (p_KeyAndHash->dflts[i].dfltSelect << KG_SCH_DEF_IP_TOS_TC_SHIFT); + break; + case(e_FM_PCD_KG_IPV6_FLOW_LABEL): + tmpReg |= (p_KeyAndHash->dflts[i].dfltSelect << KG_SCH_DEF_L4_PORT_SHIFT); + break; + case(e_FM_PCD_KG_IPSEC_SPI): + tmpReg |= (p_KeyAndHash->dflts[i].dfltSelect << KG_SCH_DEF_IPSEC_SPI_SHIFT); + break; + case(e_FM_PCD_KG_L4_PORT): + tmpReg |= (p_KeyAndHash->dflts[i].dfltSelect << KG_SCH_DEF_L4_PORT_SHIFT); + break; + case(e_FM_PCD_KG_TCP_FLAG): + tmpReg |= (p_KeyAndHash->dflts[i].dfltSelect << KG_SCH_DEF_TCP_FLAG_SHIFT); + break; + case(e_FM_PCD_KG_GENERIC_FROM_DATA): + swDefaults[numOfSwDefaults].type = e_FM_PCD_KG_GENERIC_FROM_DATA; + swDefaults[numOfSwDefaults].dfltSelect = p_KeyAndHash->dflts[i].dfltSelect; + numOfSwDefaults ++; + break; + case(e_FM_PCD_KG_GENERIC_FROM_DATA_NO_V): + swDefaults[numOfSwDefaults].type = e_FM_PCD_KG_GENERIC_FROM_DATA_NO_V; + swDefaults[numOfSwDefaults].dfltSelect = p_KeyAndHash->dflts[i].dfltSelect; + numOfSwDefaults ++; + break; + case(e_FM_PCD_KG_GENERIC_NOT_FROM_DATA): + swDefaults[numOfSwDefaults].type = e_FM_PCD_KG_GENERIC_NOT_FROM_DATA; + swDefaults[numOfSwDefaults].dfltSelect = p_KeyAndHash->dflts[i].dfltSelect; + numOfSwDefaults ++; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + } + } + p_SchemeRegs->kgse_ekdv = tmpReg; + + p_LocalExtractsArray = (t_FmPcdKgSchemesExtracts *)XX_Malloc(sizeof(t_FmPcdKgSchemesExtracts)); + if(!p_LocalExtractsArray) + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("No memory")); + + /* configure kgse_ekfc and kgse_gec */ + knownTmp = 0; + for( i=0 ;inumOfUsedExtracts ; i++) + { + p_Extract = &p_KeyAndHash->extractArray[i]; + switch(p_Extract->type) + { + case(e_FM_PCD_KG_EXTRACT_PORT_PRIVATE_INFO): + knownTmp |= KG_SCH_KN_PORT_ID; + /* save in driver structure */ + p_LocalExtractsArray->extractsArray[i].id = GetKnownFieldId(KG_SCH_KN_PORT_ID); + p_LocalExtractsArray->extractsArray[i].known = TRUE; + break; + case(e_FM_PCD_EXTRACT_BY_HDR): + switch(p_Extract->extractByHdr.hdr) + { + case(HEADER_TYPE_UDP_ENCAP_ESP): + switch(p_Extract->extractByHdr.type) + { + case(e_FM_PCD_EXTRACT_FROM_HDR): + /* case where extraction from ESP only */ + if (p_Extract->extractByHdr.extractByHdrType.fromHdr.offset >= UDP_HEADER_SIZE) + { + p_Extract->extractByHdr.hdr = FmPcdGetAliasHdr(p_FmPcd, p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].netEnvId, HEADER_TYPE_UDP_ENCAP_ESP); + p_Extract->extractByHdr.extractByHdrType.fromHdr.offset -= UDP_HEADER_SIZE; + p_Extract->extractByHdr.ignoreProtocolValidation = TRUE; + } + else + { + p_Extract->extractByHdr.hdr = HEADER_TYPE_UDP; + p_Extract->extractByHdr.ignoreProtocolValidation = FALSE; + } + break; + case(e_FM_PCD_EXTRACT_FROM_FIELD): + switch(p_Extract->extractByHdr.extractByHdrType.fromField.field.udpEncapEsp) + { + case(NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_SRC): + case(NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_DST): + case(NET_HEADER_FIELD_UDP_ENCAP_ESP_LEN): + case(NET_HEADER_FIELD_UDP_ENCAP_ESP_CKSUM): + p_Extract->extractByHdr.hdr = HEADER_TYPE_UDP; + break; + case(NET_HEADER_FIELD_UDP_ENCAP_ESP_SPI): + p_Extract->extractByHdr.type = e_FM_PCD_EXTRACT_FROM_HDR; + p_Extract->extractByHdr.hdr = FmPcdGetAliasHdr(p_FmPcd, p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].netEnvId, HEADER_TYPE_UDP_ENCAP_ESP); + p_Extract->extractByHdr.extractByHdrType.fromField.size = p_Extract->extractByHdr.extractByHdrType.fromField.size; + /*p_Extract->extractByHdr.extractByHdrType.fromField.offset += ESP_SPI_OFFSET;*/ + p_Extract->extractByHdr.ignoreProtocolValidation = TRUE; + break; + case(NET_HEADER_FIELD_UDP_ENCAP_ESP_SEQUENCE_NUM): + p_Extract->extractByHdr.type = e_FM_PCD_EXTRACT_FROM_HDR; + p_Extract->extractByHdr.hdr = FmPcdGetAliasHdr(p_FmPcd, p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].netEnvId, HEADER_TYPE_UDP_ENCAP_ESP); + p_Extract->extractByHdr.extractByHdrType.fromField.size = p_Extract->extractByHdr.extractByHdrType.fromField.size; + p_Extract->extractByHdr.extractByHdrType.fromField.offset += ESP_SEQ_NUM_OFFSET; + p_Extract->extractByHdr.ignoreProtocolValidation = TRUE; + break; + } + break; + case(e_FM_PCD_EXTRACT_FULL_FIELD): + switch(p_Extract->extractByHdr.extractByHdrType.fullField.udpEncapEsp) + { + case(NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_SRC): + case(NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_DST): + case(NET_HEADER_FIELD_UDP_ENCAP_ESP_LEN): + case(NET_HEADER_FIELD_UDP_ENCAP_ESP_CKSUM): + p_Extract->extractByHdr.hdr = HEADER_TYPE_UDP; + break; + case(NET_HEADER_FIELD_UDP_ENCAP_ESP_SPI): + p_Extract->extractByHdr.type = e_FM_PCD_EXTRACT_FROM_HDR; + p_Extract->extractByHdr.hdr = FmPcdGetAliasHdr(p_FmPcd, p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].netEnvId, HEADER_TYPE_UDP_ENCAP_ESP); + p_Extract->extractByHdr.extractByHdrType.fromHdr.size = ESP_SPI_SIZE; + p_Extract->extractByHdr.extractByHdrType.fromHdr.offset = ESP_SPI_OFFSET; + p_Extract->extractByHdr.ignoreProtocolValidation = TRUE; + break; + case(NET_HEADER_FIELD_UDP_ENCAP_ESP_SEQUENCE_NUM): + p_Extract->extractByHdr.type = e_FM_PCD_EXTRACT_FROM_HDR; + p_Extract->extractByHdr.hdr = FmPcdGetAliasHdr(p_FmPcd, p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].netEnvId, HEADER_TYPE_UDP_ENCAP_ESP); + p_Extract->extractByHdr.extractByHdrType.fromHdr.size = ESP_SEQ_NUM_SIZE; + p_Extract->extractByHdr.extractByHdrType.fromHdr.offset = ESP_SEQ_NUM_OFFSET; + p_Extract->extractByHdr.ignoreProtocolValidation = TRUE; + break; + } + break; + } + break; + default: + break; + } + switch(p_Extract->extractByHdr.type) + { + case(e_FM_PCD_EXTRACT_FROM_HDR): + generic = TRUE; + /* get the header code for the generic extract */ + code = GetGenHdrCode(p_Extract->extractByHdr.hdr, p_Extract->extractByHdr.hdrIndex, p_Extract->extractByHdr.ignoreProtocolValidation); + /* set generic register fields */ + offset = p_Extract->extractByHdr.extractByHdrType.fromHdr.offset; + size = p_Extract->extractByHdr.extractByHdrType.fromHdr.size; + break; + case(e_FM_PCD_EXTRACT_FROM_FIELD): + generic = TRUE; + /* get the field code for the generic extract */ + code = GetGenFieldCode(p_Extract->extractByHdr.hdr, + p_Extract->extractByHdr.extractByHdrType.fromField.field, p_Extract->extractByHdr.ignoreProtocolValidation,p_Extract->extractByHdr.hdrIndex); + offset = p_Extract->extractByHdr.extractByHdrType.fromField.offset; + size = p_Extract->extractByHdr.extractByHdrType.fromField.size; + break; + case(e_FM_PCD_EXTRACT_FULL_FIELD): + if(!p_Extract->extractByHdr.ignoreProtocolValidation) + { + /* if we have a known field for it - use it, otherwise use generic */ + bitMask = GetKnownProtMask(p_Extract->extractByHdr.hdr, p_Extract->extractByHdr.hdrIndex, + p_Extract->extractByHdr.extractByHdrType.fullField); + if(bitMask) + { + knownTmp |= bitMask; + /* save in driver structure */ + p_LocalExtractsArray->extractsArray[i].id = GetKnownFieldId(bitMask); + p_LocalExtractsArray->extractsArray[i].known = TRUE; + } + else + generic = TRUE; + + } + else + generic = TRUE; + if(generic) + { + /* tmp - till we cover more headers under generic */ + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("Full header selection not supported")); + } + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + } + break; + case(e_FM_PCD_EXTRACT_NON_HDR): + /* use generic */ + generic = TRUE; + offset = 0; + /* get the field code for the generic extract */ + code = GetGenCode(p_Extract->extractNonHdr.src, &offset); + offset += p_Extract->extractNonHdr.offset; + size = p_Extract->extractNonHdr.size; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + } + + if(generic) + { + /* set generic register fields */ + if(currGenId >= FM_PCD_KG_NUM_OF_GENERIC_REGS) + RETURN_ERROR(MAJOR, E_FULL, ("Generic registers are fully used")); + if(!code) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, NO_MSG); + + genTmp = KG_SCH_GEN_VALID; + genTmp |= (uint32_t)(code << KG_SCH_GEN_HT_SHIFT); + genTmp |= offset; + if((size > MAX_KG_SCH_SIZE) || (size < 1)) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("Illegal extraction (size out of range)")); + genTmp |= (uint32_t)((size - 1) << KG_SCH_GEN_SIZE_SHIFT); + swDefault = GetGenericSwDefault(swDefaults, numOfSwDefaults, code); + if(swDefault == e_FM_PCD_KG_DFLT_ILLEGAL) + DBG(WARNING, ("No sw default configured")); + + genTmp |= swDefault << KG_SCH_GEN_DEF_SHIFT; + genTmp |= KG_SCH_GEN_MASK; + p_SchemeRegs->kgse_gec[currGenId] = genTmp; + /* save in driver structure */ + p_LocalExtractsArray->extractsArray[i].id = currGenId++; + p_LocalExtractsArray->extractsArray[i].known = FALSE; + generic = FALSE; + } + } + p_SchemeRegs->kgse_ekfc = knownTmp; + + selectTmp = 0; + maskTmp = 0xFFFFFFFF; + /* configure kgse_bmch, kgse_bmcl and kgse_fqb */ + + if(p_KeyAndHash->numOfUsedMasks >= FM_PCD_KG_NUM_OF_EXTRACT_MASKS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Only %d masks supported", FM_PCD_KG_NUM_OF_EXTRACT_MASKS)); + for( i=0 ;inumOfUsedMasks ; i++) + { + /* Get the relative id of the extract (for known 0-0x1f, for generic 0-7) */ + id = p_LocalExtractsArray->extractsArray[p_KeyAndHash->masks[i].extractArrayIndex].id; + /* Get the shift of the select field (depending on i) */ + GET_MASK_SEL_SHIFT(shift,i); + if (p_LocalExtractsArray->extractsArray[p_KeyAndHash->masks[i].extractArrayIndex].known) + selectTmp |= id << shift; + else + selectTmp |= (id + MASK_FOR_GENERIC_BASE_ID) << shift; + + /* Get the shift of the offset field (depending on i) - may + be in kgse_bmch or in kgse_fqb (depending on i) */ + GET_MASK_OFFSET_SHIFT(shift,i); + if (i<=1) + selectTmp |= p_KeyAndHash->masks[i].offset << shift; + else + fqbTmp |= p_KeyAndHash->masks[i].offset << shift; + + /* Get the shift of the mask field (depending on i) */ + GET_MASK_SHIFT(shift,i); + /* pass all bits */ + maskTmp |= KG_SCH_BITMASK_MASK << shift; + /* clear bits that need masking */ + maskTmp &= ~(0xFF << shift) ; + /* set mask bits */ + maskTmp |= (p_KeyAndHash->masks[i].mask << shift) ; + } + p_SchemeRegs->kgse_bmch = selectTmp; + p_SchemeRegs->kgse_bmcl = maskTmp; + /* kgse_fqb will be written t the end of the routine */ + + /* configure kgse_hc */ + if(p_KeyAndHash->hashShift > MAX_HASH_SHIFT) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("hashShift must not be larger than %d", MAX_HASH_SHIFT)); + if(p_KeyAndHash->hashDistributionFqidsShift > MAX_DIST_FQID_SHIFT) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("hashDistributionFqidsShift must not be larger than %d", MAX_DIST_FQID_SHIFT)); + + tmpReg = 0; + + tmpReg |= ((p_KeyAndHash->hashDistributionNumOfFqids - 1) << p_KeyAndHash->hashDistributionFqidsShift); + tmpReg |= p_KeyAndHash->hashShift << KG_SCH_HASH_CONFIG_SHIFT_SHIFT; + + if(p_KeyAndHash->symmetricHash) + { + if((!!(p_SchemeRegs->kgse_ekfc & KG_SCH_KN_MACSRC) != !!(p_SchemeRegs->kgse_ekfc & KG_SCH_KN_MACDST)) || + (!!(p_SchemeRegs->kgse_ekfc & KG_SCH_KN_IPSRC1) != !!(p_SchemeRegs->kgse_ekfc & KG_SCH_KN_IPDST1)) || + (!!(p_SchemeRegs->kgse_ekfc & KG_SCH_KN_IPSRC2) != !!(p_SchemeRegs->kgse_ekfc & KG_SCH_KN_IPDST2)) || + (!!(p_SchemeRegs->kgse_ekfc & KG_SCH_KN_L4PSRC) != !!(p_SchemeRegs->kgse_ekfc & KG_SCH_KN_L4PDST))) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("symmetricHash set but src/dest extractions missing")); + tmpReg |= KG_SCH_HASH_CONFIG_SYM; + } + p_SchemeRegs->kgse_hc = tmpReg; + + /* build the return array describing the order of the extractions */ + + /* the last currGenId places of the array + are for generic extracts that are always last. + We now sort for the calculation of the order of the known + extractions we sort the known extracts between orderedArray[0] and + orderedArray[p_KeyAndHash->numOfUsedExtracts - currGenId - 1]. + for the calculation of the order of the generic extractions we use: + num_of_generic - currGenId + num_of_known - p_KeyAndHash->numOfUsedExtracts - currGenId + first_generic_index = num_of_known */ + curr = 0; + for (i=0;inumOfUsedExtracts ; i++) + { + if(p_LocalExtractsArray->extractsArray[i].known) + { + ASSERT_COND(curr<(p_KeyAndHash->numOfUsedExtracts - currGenId)); + j = curr; + /* id is the extract id (port id = 0, mac src = 1 etc.). the value in the array is the original + index in the user's extractions array */ + /* we compare the id of the current extract with the id of the extract in the orderedArray[j-1] + location */ + while((j > 0) && (p_LocalExtractsArray->extractsArray[i].id < + p_LocalExtractsArray->extractsArray[p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].orderedArray[j-1]].id)) + { + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].orderedArray[j] = + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].orderedArray[j-1]; + j--; + } + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].orderedArray[j] = (uint8_t)i; + curr++; + } + else + { + /* index is first_generic_index + generic index (id) */ + idx = (uint8_t)(p_KeyAndHash->numOfUsedExtracts - currGenId + p_LocalExtractsArray->extractsArray[i].id); + ASSERT_COND(idx < FM_PCD_KG_MAX_NUM_OF_EXTRACTS_PER_KEY); + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].orderedArray[idx]= (uint8_t)i; + } + } + XX_Free(p_LocalExtractsArray); + p_LocalExtractsArray = NULL; + + } + else + { + /* clear all unused registers: */ + p_SchemeRegs->kgse_ekfc = 0; + p_SchemeRegs->kgse_ekdv = 0; + p_SchemeRegs->kgse_bmch = 0; + p_SchemeRegs->kgse_bmcl = 0; + p_SchemeRegs->kgse_hc = 0; + p_SchemeRegs->kgse_dv0 = 0; + p_SchemeRegs->kgse_dv1 = 0; + } + + if(p_Scheme->bypassFqidGeneration) + p_SchemeRegs->kgse_hc |= KG_SCH_HASH_CONFIG_NO_FQID; + + /* configure kgse_spc */ + if( p_Scheme->schemeCounter.update) + p_SchemeRegs->kgse_spc = p_Scheme->schemeCounter.value; + + + /* check that are enough generic registers */ + if(p_Scheme->numOfUsedExtractedOrs + currGenId > FM_PCD_KG_NUM_OF_GENERIC_REGS) + RETURN_ERROR(MAJOR, E_FULL, ("Generic registers are fully used")); + + /* extracted OR mask on Qid */ + for( i=0 ;inumOfUsedExtractedOrs ; i++) + { + + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].extractedOrs = TRUE; + /* configure kgse_gec[i] */ + p_ExtractOr = &p_Scheme->extractedOrs[i]; + switch(p_ExtractOr->type) + { + case(e_FM_PCD_KG_EXTRACT_PORT_PRIVATE_INFO): + code = KG_SCH_GEN_PARSE_RESULT_N_FQID; + offset = 0; + break; + case(e_FM_PCD_EXTRACT_BY_HDR): + /* get the header code for the generic extract */ + code = GetGenHdrCode(p_ExtractOr->extractByHdr.hdr, p_ExtractOr->extractByHdr.hdrIndex, p_ExtractOr->extractByHdr.ignoreProtocolValidation); + /* set generic register fields */ + offset = p_ExtractOr->extractionOffset; + break; + case(e_FM_PCD_EXTRACT_NON_HDR): + /* get the field code for the generic extract */ + offset = 0; + code = GetGenCode(p_ExtractOr->src, &offset); + offset += p_ExtractOr->extractionOffset; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + } + + /* set generic register fields */ + if(!code) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, NO_MSG); + genTmp = KG_SCH_GEN_EXTRACT_TYPE | KG_SCH_GEN_VALID; + genTmp |= (uint32_t)(code << KG_SCH_GEN_HT_SHIFT); + genTmp |= offset; + if(!!p_ExtractOr->bitOffsetInFqid == !!p_ExtractOr->bitOffsetInPlcrProfile) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, (" extracted byte must effect either FQID or Policer profile")); + + /************************************************************************************ + bitOffsetInFqid and bitOffsetInPolicerProfile are translated to rotate parameter + in the following way: + + Driver API and implementation: + ============================== + FQID: extracted OR byte may be shifted right 1-31 bits to effect parts of the FQID. + if shifted less than 8 bits, or more than 24 bits a mask is set on the bits that + are not overlapping FQID. + ------------------------ + | FQID (24) | + ------------------------ + -------- + | | extracted OR byte + -------- + + Policer Profile: extracted OR byte may be shifted right 1-15 bits to effect parts of the + PP id. Unless shifted exactly 8 bits to overlap the PP id, a mask is set on the bits that + are not overlapping PP id. + + -------- + | PP (8) | + -------- + -------- + | | extracted OR byte + -------- + + HW implementation + ================= + FQID and PP construct a 32 bit word in the way describe below. Extracted byte is located + as the highest byte of that word and may be rotated to effect any part os the FQID or + the PP. + ------------------------ -------- + | FQID (24) || PP (8) | + ------------------------ -------- + -------- + | | extracted OR byte + -------- + + ************************************************************************************/ + + if(p_ExtractOr->bitOffsetInFqid) + { + if(p_ExtractOr->bitOffsetInFqid > MAX_KG_SCH_FQID_BIT_OFFSET ) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal extraction (bitOffsetInFqid out of range)")); + if(p_ExtractOr->bitOffsetInFqid<8) + genTmp |= (uint32_t)((p_ExtractOr->bitOffsetInFqid+24) << KG_SCH_GEN_SIZE_SHIFT); + else + genTmp |= (uint32_t)((p_ExtractOr->bitOffsetInFqid-8) << KG_SCH_GEN_SIZE_SHIFT); + p_ExtractOr->mask &= GetExtractedOrMask(p_ExtractOr->bitOffsetInFqid, TRUE); + } + else /* effect policer profile */ + { + if(p_ExtractOr->bitOffsetInPlcrProfile > MAX_KG_SCH_PP_BIT_OFFSET ) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal extraction (bitOffsetInPlcrProfile out of range)")); + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].bitOffsetInPlcrProfile = p_ExtractOr->bitOffsetInPlcrProfile; + genTmp |= (uint32_t)((p_ExtractOr->bitOffsetInPlcrProfile+16) << KG_SCH_GEN_SIZE_SHIFT); + p_ExtractOr->mask &= GetExtractedOrMask(p_ExtractOr->bitOffsetInPlcrProfile, FALSE); + } + + genTmp |= (uint32_t)(p_ExtractOr->extractionOffset << KG_SCH_GEN_DEF_SHIFT); + /* clear bits that need masking */ + genTmp &= ~KG_SCH_GEN_MASK ; + /* set mask bits */ + genTmp |= (uint32_t)(p_ExtractOr->mask << KG_SCH_GEN_MASK_SHIFT); + p_SchemeRegs->kgse_gec[currGenId++] = genTmp; + + } + /* clear all unused GEC registers */ + for( i=currGenId ;ikgse_gec[i] = 0; + + /* add base Qid for this scheme */ + /* add configuration for kgse_fqb */ + if(p_Scheme->baseFqid & ~0x00FFFFFF) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("baseFqid must be between 1 and 2^24-1")); + + fqbTmp |= p_Scheme->baseFqid; + p_SchemeRegs->kgse_fqb = fqbTmp; + + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].nextEngine = p_Scheme->nextEngine; + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].doneAction = p_Scheme->kgNextEngineParams.doneAction; + return E_OK; +} + +void FmPcdKgValidateSchemeSw(t_Handle h_FmPcd, uint8_t schemeId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + ASSERT_COND(!p_FmPcd->p_FmPcdKg->schemes[schemeId].valid); + + if(p_FmPcd->p_FmPcdKg->schemes[schemeId].netEnvId != ILLEGAL_NETENV) + FmPcdIncNetEnvOwners(p_FmPcd, p_FmPcd->p_FmPcdKg->schemes[schemeId].netEnvId); + p_FmPcd->p_FmPcdKg->schemes[schemeId].valid = TRUE; +} + +void FmPcdKgInvalidateSchemeSw(t_Handle h_FmPcd, uint8_t schemeId) +{ + + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + if(p_FmPcd->p_FmPcdKg->schemes[schemeId].netEnvId != ILLEGAL_NETENV) + FmPcdDecNetEnvOwners(h_FmPcd, p_FmPcd->p_FmPcdKg->schemes[schemeId].netEnvId); + p_FmPcd->p_FmPcdKg->schemes[schemeId].valid = FALSE; +} + +uint32_t FmPcdKgGetRequiredAction(t_Handle h_FmPcd, uint8_t schemeId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + ASSERT_COND(p_FmPcd->p_FmPcdKg->schemes[schemeId].valid); + + return p_FmPcd->p_FmPcdKg->schemes[schemeId].requiredAction; +} + +uint32_t FmPcdKgGetPointedOwners(t_Handle h_FmPcd, uint8_t schemeId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + ASSERT_COND(p_FmPcd->p_FmPcdKg->schemes[schemeId].valid); + + return p_FmPcd->p_FmPcdKg->schemes[schemeId].pointedOwners; +} + +bool FmPcdKgIsDirectPlcr(t_Handle h_FmPcd, uint8_t schemeId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + ASSERT_COND(p_FmPcd->p_FmPcdKg->schemes[schemeId].valid); + + return p_FmPcd->p_FmPcdKg->schemes[schemeId].directPlcr; +} + + +uint16_t FmPcdKgGetRelativeProfileId(t_Handle h_FmPcd, uint8_t schemeId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + ASSERT_COND(p_FmPcd->p_FmPcdKg->schemes[schemeId].valid); + + return p_FmPcd->p_FmPcdKg->schemes[schemeId].relativeProfileId; +} + + +bool FmPcdKgIsDistrOnPlcrProfile(t_Handle h_FmPcd, uint8_t schemeId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + ASSERT_COND(p_FmPcd->p_FmPcdKg->schemes[schemeId].valid); + + if((p_FmPcd->p_FmPcdKg->schemes[schemeId].extractedOrs && + p_FmPcd->p_FmPcdKg->schemes[schemeId].bitOffsetInPlcrProfile) || + p_FmPcd->p_FmPcdKg->schemes[schemeId].nextRelativePlcrProfile) + return TRUE; + else + return FALSE; + +} +void FmPcdKgUpatePointedOwner(t_Handle h_FmPcd, uint8_t schemeId, bool add) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + ASSERT_COND(p_FmPcd->p_FmPcdKg->schemes[schemeId].valid); + + if(add) + p_FmPcd->p_FmPcdKg->schemes[schemeId].pointedOwners++; + else + p_FmPcd->p_FmPcdKg->schemes[schemeId].pointedOwners--; +} + +e_FmPcdEngine FmPcdKgGetNextEngine(t_Handle h_FmPcd, uint8_t schemeId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + ASSERT_COND(p_FmPcd->p_FmPcdKg->schemes[schemeId].valid); + + return p_FmPcd->p_FmPcdKg->schemes[schemeId].nextEngine; +} + +e_FmPcdDoneAction FmPcdKgGetDoneAction(t_Handle h_FmPcd, uint8_t schemeId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + ASSERT_COND(p_FmPcd->p_FmPcdKg->schemes[schemeId].valid); + + return p_FmPcd->p_FmPcdKg->schemes[schemeId].doneAction; +} + +void FmPcdKgUpdateRequiredAction(t_Handle h_FmPcd, uint8_t schemeId, uint32_t requiredAction) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + ASSERT_COND(p_FmPcd->p_FmPcdKg->schemes[schemeId].valid); + + p_FmPcd->p_FmPcdKg->schemes[schemeId].requiredAction = requiredAction; +} + +t_Error FmPcdKgCheckInvalidateSchemeSw(t_Handle h_FmPcd, uint8_t schemeId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + if(schemeId >= FM_PCD_KG_NUM_OF_SCHEMES) + REPORT_ERROR(MAJOR, E_NOT_IN_RANGE, NO_MSG); + + /* check that no port is bound to this scheme */ + if(p_FmPcd->p_FmPcdKg->schemes[schemeId].owners) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Trying to delete a scheme that has ports bound to")); + if(!p_FmPcd->p_FmPcdKg->schemes[schemeId].valid) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Trying to delete an invalid scheme")); + return E_OK; +} + +uint32_t FmPcdKgBuildCppReg(t_Handle h_FmPcd, uint8_t clsPlanGrpId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t tmpKgpeCpp; + + tmpKgpeCpp = (uint32_t)(p_FmPcd->p_FmPcdKg->clsPlanGrps[clsPlanGrpId].baseEntry / 8); + tmpKgpeCpp |= (uint32_t)(((p_FmPcd->p_FmPcdKg->clsPlanGrps[clsPlanGrpId].sizeOfGrp / 8) - 1) << FM_PCD_KG_PE_CPP_MASK_SHIFT); + return tmpKgpeCpp; +} + +bool FmPcdKgHwSchemeIsValid(uint32_t schemeModeReg) +{ + + if(schemeModeReg & KG_SCH_MODE_EN) + return TRUE; + else + return FALSE; +} + +uint32_t FmPcdKgBuildWriteSchemeActionReg(uint8_t schemeId, bool updateCounter) +{ + return (uint32_t)(((uint32_t)schemeId << FM_PCD_KG_KGAR_NUM_SHIFT)| + FM_PCD_KG_KGAR_GO | + FM_PCD_KG_KGAR_WRITE | + FM_PCD_KG_KGAR_SEL_SCHEME_ENTRY | + DUMMY_PORT_ID | + (updateCounter ? FM_PCD_KG_KGAR_SCHEME_WSEL_UPDATE_CNT:0)); + +} + +uint32_t FmPcdKgBuildReadSchemeActionReg(uint8_t schemeId) +{ + return (uint32_t)(((uint32_t)schemeId << FM_PCD_KG_KGAR_NUM_SHIFT)| + FM_PCD_KG_KGAR_GO | + FM_PCD_KG_KGAR_READ | + FM_PCD_KG_KGAR_SEL_SCHEME_ENTRY | + DUMMY_PORT_ID | + FM_PCD_KG_KGAR_SCHEME_WSEL_UPDATE_CNT); + +} + + +uint32_t FmPcdKgBuildWriteClsPlanBlockActionReg(uint8_t grpId) +{ + return (uint32_t)(FM_PCD_KG_KGAR_GO | + FM_PCD_KG_KGAR_WRITE | + FM_PCD_KG_KGAR_SEL_CLS_PLAN_ENTRY | + DUMMY_PORT_ID | + ((uint32_t)grpId << FM_PCD_KG_KGAR_NUM_SHIFT) | + FM_PCD_KG_KGAR_WSEL_MASK); + + + /* if we ever want to write 1 by 1, use: + sel = (uint8_t)(0x01 << (7- (entryId % CLS_PLAN_NUM_PER_GRP)));*/ +} + +uint32_t FmPcdKgBuildReadClsPlanBlockActionReg(uint8_t grpId) +{ + return (uint32_t)(FM_PCD_KG_KGAR_GO | + FM_PCD_KG_KGAR_READ | + FM_PCD_KG_KGAR_SEL_CLS_PLAN_ENTRY | + DUMMY_PORT_ID | + ((uint32_t)grpId << FM_PCD_KG_KGAR_NUM_SHIFT) | + FM_PCD_KG_KGAR_WSEL_MASK); + + + /* if we ever want to write 1 by 1, use: + sel = (uint8_t)(0x01 << (7- (entryId % CLS_PLAN_NUM_PER_GRP)));*/ +} + +uint32_t FmPcdKgBuildWritePortSchemeBindActionReg(uint8_t hardwarePortId) +{ + + return (uint32_t)(FM_PCD_KG_KGAR_GO | + FM_PCD_KG_KGAR_WRITE | + FM_PCD_KG_KGAR_SEL_PORT_ENTRY | + hardwarePortId | + FM_PCD_KG_KGAR_SEL_PORT_WSEL_SP); +} + +uint32_t FmPcdKgBuildReadPortSchemeBindActionReg(uint8_t hardwarePortId) +{ + + return (uint32_t)(FM_PCD_KG_KGAR_GO | + FM_PCD_KG_KGAR_READ | + FM_PCD_KG_KGAR_SEL_PORT_ENTRY | + hardwarePortId | + FM_PCD_KG_KGAR_SEL_PORT_WSEL_SP); +} +uint32_t FmPcdKgBuildWritePortClsPlanBindActionReg(uint8_t hardwarePortId) +{ + + return (uint32_t)(FM_PCD_KG_KGAR_GO | + FM_PCD_KG_KGAR_WRITE | + FM_PCD_KG_KGAR_SEL_PORT_ENTRY | + hardwarePortId | + FM_PCD_KG_KGAR_SEL_PORT_WSEL_CPP); +} + +uint8_t FmPcdKgGetClsPlanGrpBase(t_Handle h_FmPcd, uint8_t clsPlanGrp) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + return p_FmPcd->p_FmPcdKg->clsPlanGrps[clsPlanGrp].baseEntry; +} + +uint16_t FmPcdKgGetClsPlanGrpSize(t_Handle h_FmPcd, uint8_t clsPlanGrp) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + return p_FmPcd->p_FmPcdKg->clsPlanGrps[clsPlanGrp].sizeOfGrp; +} + +uint8_t FmPcdKgGetSchemeSwId(t_Handle h_FmPcd, uint8_t schemeHwId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint8_t i; + + for(i=0;ip_FmPcdKg->numOfSchemes;i++) + if(p_FmPcd->p_FmPcdKg->schemesIds[i] == schemeHwId) + return i; + ASSERT_COND(i!=p_FmPcd->p_FmPcdKg->numOfSchemes); + return FM_PCD_KG_NUM_OF_SCHEMES; +} + +uint8_t FmPcdKgGetNumOfPartitionSchemes(t_Handle h_FmPcd) +{ + return ((t_FmPcd*)h_FmPcd)->p_FmPcdKg->numOfSchemes; +} + +uint8_t FmPcdKgGetPhysicalSchemeId(t_Handle h_FmPcd, uint8_t relativeSchemeId) +{ + return ((t_FmPcd*)h_FmPcd)->p_FmPcdKg->schemesIds[relativeSchemeId]; +} + +uint8_t FmPcdKgGetRelativeSchemeId(t_Handle h_FmPcd, uint8_t schemeId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint8_t i; + + for(i = 0;ip_FmPcdKg->numOfSchemes;i++) + if(p_FmPcd->p_FmPcdKg->schemesIds[i] == schemeId) + return i; + + if(i == p_FmPcd->p_FmPcdKg->numOfSchemes) + REPORT_ERROR(MAJOR, E_NOT_IN_RANGE, ("Scheme is out of partition range")); + + return FM_PCD_KG_NUM_OF_SCHEMES; +} + +t_Error FmPcdKgCcGetSetParams(t_Handle h_FmPcd, t_Handle h_Scheme, uint32_t requiredAction) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint8_t relativeSchemeId, physicalSchemeId; + uint32_t tmpKgarReg, tmpReg32 = 0, intFlags; + t_Error err; + + SANITY_CHECK_RETURN_VALUE(h_FmPcd, E_INVALID_HANDLE, 0); + SANITY_CHECK_RETURN_VALUE(p_FmPcd->p_FmPcdKg, E_INVALID_HANDLE, 0); + SANITY_CHECK_RETURN_VALUE(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE, 0); + + if (p_FmPcd->h_Hc) + return FmHcPcdKgCcGetSetParams(p_FmPcd->h_Hc, h_Scheme, requiredAction); + + physicalSchemeId = (uint8_t)(PTR_TO_UINT(h_Scheme)-1); + + relativeSchemeId = FmPcdKgGetRelativeSchemeId(p_FmPcd, physicalSchemeId); + if(relativeSchemeId >= FM_PCD_KG_NUM_OF_SCHEMES) + RETURN_ERROR(MAJOR, E_NOT_IN_RANGE, NO_MSG); + + if (FmPcdKgSchemeTryLock(p_FmPcd, relativeSchemeId, FALSE)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Lock of the scheme FAILED")); + + if(!p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].pointedOwners || + !(p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].requiredAction & requiredAction)) + { + if(requiredAction & UPDATE_NIA_ENQ_WITHOUT_DMA) + { + switch(p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].nextEngine) + { + case(e_FM_PCD_DONE): + if(p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].doneAction == e_FM_PCD_ENQ_FRAME) + { + tmpKgarReg = FmPcdKgBuildReadSchemeActionReg(physicalSchemeId); + intFlags = FmPcdLock(p_FmPcd); + WriteKgarWait(p_FmPcd, tmpKgarReg); + if (!(GET_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs.kgse_mode) & KG_SCH_MODE_EN)) + { + RELEASE_LOCK(p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].lock); + RETURN_ERROR(MAJOR, E_ALREADY_EXISTS, ("Scheme is Invalid")); + } + tmpReg32 = GET_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs.kgse_mode); + ASSERT_COND(tmpReg32 & (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME)); + WRITE_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs.kgse_mode, tmpReg32 | NIA_BMI_AC_ENQ_FRAME_WITHOUT_DMA); + /* call indirect command for scheme write */ + tmpKgarReg = FmPcdKgBuildWriteSchemeActionReg(physicalSchemeId, FALSE); + WriteKgarWait(p_FmPcd, tmpKgarReg); + FmPcdUnlock(p_FmPcd, intFlags); + } + break; + case(e_FM_PCD_PLCR): + if(!p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].directPlcr || + (p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].extractedOrs && + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].bitOffsetInPlcrProfile) || + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].nextRelativePlcrProfile) + { + RELEASE_LOCK(p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].lock); + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("In this situation PP can not be with distribution and has to be shared")); + } + err = FmPcdPlcrCcGetSetParams(h_FmPcd, p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].relativeProfileId, requiredAction); + if(err) + { + RELEASE_LOCK(p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].lock); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_VALUE,("in this situation the next engine after scheme can be or PLCR or ENQ_FRAME")); + } + } + } + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].pointedOwners += 1; + p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].requiredAction |= requiredAction; + + RELEASE_LOCK(p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].lock); + return E_OK; +} + +t_Error FmPcdKgSchemeTryLock(t_Handle h_FmPcd, uint8_t schemeId, bool intr) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + bool ans; + + if (intr) + ans = TRY_LOCK(NULL, &p_FmPcd->p_FmPcdKg->schemes[schemeId].lock); + else + ans = TRY_LOCK(p_FmPcd->h_Spinlock, &p_FmPcd->p_FmPcdKg->schemes[schemeId].lock); + if (ans) + return E_OK; + return ERROR_CODE(E_BUSY); +} + +void FmPcdKgReleaseSchemeLock(t_Handle h_FmPcd, uint8_t schemeId) +{ + RELEASE_LOCK(((t_FmPcd*)h_FmPcd)->p_FmPcdKg->schemes[schemeId].lock); +} + +t_Handle FM_PCD_KgSetScheme(t_Handle h_FmPcd, t_FmPcdKgSchemeParams *p_Scheme) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t tmpReg; + t_FmPcdKgInterModuleSchemeRegs schemeRegs; + t_FmPcdKgInterModuleSchemeRegs *p_MemRegs; + uint8_t i; + t_Error err = E_OK; + uint32_t tmpKgarReg; + uint32_t intFlags; + uint8_t physicalSchemeId, relativeSchemeId; + + SANITY_CHECK_RETURN_VALUE(p_FmPcd, E_INVALID_HANDLE, NULL); + SANITY_CHECK_RETURN_VALUE(p_FmPcd->p_FmPcdKg, E_INVALID_HANDLE, NULL); + SANITY_CHECK_RETURN_VALUE(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE, NULL); + + if (p_FmPcd->h_Hc) + return FmHcPcdKgSetScheme(p_FmPcd->h_Hc, p_Scheme); + + /* if not called for modification, check first that this scheme is unused */ + if(!p_Scheme->modify) + { + /* check that schemeId is in range */ + if(p_Scheme->id.relativeSchemeId >= p_FmPcd->p_FmPcdKg->numOfSchemes) + { + REPORT_ERROR(MAJOR, E_NOT_IN_RANGE, ("Scheme is out of range")); + return NULL; + } + relativeSchemeId = p_Scheme->id.relativeSchemeId; + + if (FmPcdKgSchemeTryLock(p_FmPcd, relativeSchemeId, FALSE)) + return NULL; + + physicalSchemeId = p_FmPcd->p_FmPcdKg->schemesIds[relativeSchemeId]; + + /* read specified scheme into scheme registers */ + tmpKgarReg = FmPcdKgBuildReadSchemeActionReg(physicalSchemeId); + intFlags = FmPcdLock(p_FmPcd); + WriteKgarWait(p_FmPcd, tmpKgarReg); + tmpReg = GET_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs.kgse_mode); + FmPcdUnlock(p_FmPcd, intFlags); + + if (tmpReg & KG_SCH_MODE_EN) + { + REPORT_ERROR(MAJOR, E_ALREADY_EXISTS, + ("Scheme %d(phys %d) is already used", relativeSchemeId, physicalSchemeId)); + RELEASE_LOCK(p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].lock); + return NULL; + } + } + else + { + SANITY_CHECK_RETURN_VALUE(p_Scheme->id.h_Scheme, E_INVALID_HANDLE, NULL); + + intFlags = FmPcdLock(p_FmPcd); + physicalSchemeId = (uint8_t)(PTR_TO_UINT(p_Scheme->id.h_Scheme)-1); + relativeSchemeId = FmPcdKgGetRelativeSchemeId(p_FmPcd, physicalSchemeId); + + /* check that schemeId is in range */ + if(relativeSchemeId >= FM_PCD_KG_NUM_OF_SCHEMES) + { + REPORT_ERROR(MAJOR, E_NOT_IN_RANGE, NO_MSG); + FmPcdUnlock(p_FmPcd, intFlags); + return NULL; + } + + err = FmPcdKgSchemeTryLock(p_FmPcd, relativeSchemeId, TRUE); + FmPcdUnlock(p_FmPcd, intFlags); + if (err) + return NULL; + } + + err = FmPcdKgBuildScheme(h_FmPcd, p_Scheme, &schemeRegs); + if(err) + { + REPORT_ERROR(MAJOR, err, NO_MSG); + FmPcdKgInvalidateSchemeSw(h_FmPcd, relativeSchemeId); + RELEASE_LOCK(p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].lock); + return NULL; + } + + /* configure all 21 scheme registers */ + p_MemRegs = &p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs; + intFlags = FmPcdLock(p_FmPcd); + WRITE_UINT32(p_MemRegs->kgse_ppc, schemeRegs.kgse_ppc); + WRITE_UINT32(p_MemRegs->kgse_ccbs, schemeRegs.kgse_ccbs); + WRITE_UINT32(p_MemRegs->kgse_mode, schemeRegs.kgse_mode); + WRITE_UINT32(p_MemRegs->kgse_mv, schemeRegs.kgse_mv); + WRITE_UINT32(p_MemRegs->kgse_dv0, schemeRegs.kgse_dv0); + WRITE_UINT32(p_MemRegs->kgse_dv1, schemeRegs.kgse_dv1); + WRITE_UINT32(p_MemRegs->kgse_ekdv, schemeRegs.kgse_ekdv); + WRITE_UINT32(p_MemRegs->kgse_ekfc, schemeRegs.kgse_ekfc); + WRITE_UINT32(p_MemRegs->kgse_bmch, schemeRegs.kgse_bmch); + WRITE_UINT32(p_MemRegs->kgse_bmcl, schemeRegs.kgse_bmcl); + WRITE_UINT32(p_MemRegs->kgse_hc, schemeRegs.kgse_hc); + WRITE_UINT32(p_MemRegs->kgse_spc, schemeRegs.kgse_spc); + WRITE_UINT32(p_MemRegs->kgse_fqb, schemeRegs.kgse_fqb); + for(i=0 ; ikgse_gec[i], schemeRegs.kgse_gec[i]); + + /* call indirect command for scheme write */ + tmpKgarReg = FmPcdKgBuildWriteSchemeActionReg(physicalSchemeId, p_Scheme->schemeCounter.update); + + WriteKgarWait(p_FmPcd, tmpKgarReg); + FmPcdUnlock(p_FmPcd, intFlags); + + FmPcdKgValidateSchemeSw(h_FmPcd, relativeSchemeId); + + RELEASE_LOCK(p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].lock); + + return UINT_TO_PTR((uint64_t)physicalSchemeId+1); +} + +t_Error FM_PCD_KgDeleteScheme(t_Handle h_FmPcd, t_Handle h_Scheme) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint8_t physicalSchemeId; + uint32_t tmpKgarReg, intFlags; + t_Error err = E_OK; + uint8_t relativeSchemeId; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdKg, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE); + + if (p_FmPcd->h_Hc) + return FmHcPcdKgDeleteScheme(p_FmPcd->h_Hc, h_Scheme); + + physicalSchemeId = (uint8_t)(PTR_TO_UINT(h_Scheme)-1); + relativeSchemeId = FmPcdKgGetRelativeSchemeId(p_FmPcd, physicalSchemeId); + + if(relativeSchemeId >= FM_PCD_KG_NUM_OF_SCHEMES) + RETURN_ERROR(MAJOR, E_NOT_IN_RANGE, NO_MSG); + + if ((err = FmPcdKgSchemeTryLock(p_FmPcd, relativeSchemeId, FALSE)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + + /* check that no port is bound to this scheme */ + err = FmPcdKgCheckInvalidateSchemeSw(h_FmPcd, relativeSchemeId); + if(err) + RETURN_ERROR(MINOR, err, NO_MSG); + + intFlags = FmPcdLock(p_FmPcd); + /* clear mode register, including enable bit */ + WRITE_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs.kgse_mode, 0); + + /* call indirect command for scheme write */ + tmpKgarReg = FmPcdKgBuildWriteSchemeActionReg(physicalSchemeId, FALSE); + + WriteKgarWait(p_FmPcd, tmpKgarReg); + FmPcdUnlock(p_FmPcd, intFlags); + + FmPcdKgInvalidateSchemeSw(h_FmPcd, relativeSchemeId); + + RELEASE_LOCK(p_FmPcd->p_FmPcdKg->schemes[relativeSchemeId].lock); + + return E_OK; +} + +uint32_t FM_PCD_KgGetSchemeCounter(t_Handle h_FmPcd, t_Handle h_Scheme) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t tmpKgarReg, spc, intFlags; + uint8_t physicalSchemeId; + + SANITY_CHECK_RETURN_VALUE(h_FmPcd, E_INVALID_HANDLE, 0); + SANITY_CHECK_RETURN_VALUE(p_FmPcd->p_FmPcdKg, E_INVALID_HANDLE, 0); + SANITY_CHECK_RETURN_VALUE(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE, 0); + + if (p_FmPcd->h_Hc) + return FmHcPcdKgGetSchemeCounter(p_FmPcd->h_Hc, h_Scheme); + + physicalSchemeId = (uint8_t)(PTR_TO_UINT(h_Scheme)-1); + + if(FmPcdKgGetRelativeSchemeId(p_FmPcd, physicalSchemeId) == FM_PCD_KG_NUM_OF_SCHEMES) + REPORT_ERROR(MAJOR, E_NOT_IN_RANGE, NO_MSG); + + tmpKgarReg = FmPcdKgBuildReadSchemeActionReg(physicalSchemeId); + intFlags = FmPcdLock(p_FmPcd); + WriteKgarWait(p_FmPcd, tmpKgarReg); + if (!(GET_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs.kgse_mode) & KG_SCH_MODE_EN)) + REPORT_ERROR(MAJOR, E_ALREADY_EXISTS, ("Scheme is Invalid")); + spc = GET_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs.kgse_spc); + FmPcdUnlock(p_FmPcd, intFlags); + + return spc; +} + +t_Error FM_PCD_KgSetSchemeCounter(t_Handle h_FmPcd, t_Handle h_Scheme, uint32_t value) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t tmpKgarReg, intFlags; + uint8_t physicalSchemeId; + + SANITY_CHECK_RETURN_VALUE(h_FmPcd, E_INVALID_HANDLE, 0); + SANITY_CHECK_RETURN_VALUE(p_FmPcd->p_FmPcdKg, E_INVALID_HANDLE, 0); + SANITY_CHECK_RETURN_VALUE(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE, 0); + + if (p_FmPcd->h_Hc) + return FmHcPcdKgSetSchemeCounter(p_FmPcd->h_Hc, h_Scheme, value); + + physicalSchemeId = (uint8_t)(PTR_TO_UINT(h_Scheme)-1); + /* check that schemeId is in range */ + if(FmPcdKgGetRelativeSchemeId(p_FmPcd, physicalSchemeId) == FM_PCD_KG_NUM_OF_SCHEMES) + REPORT_ERROR(MAJOR, E_NOT_IN_RANGE, NO_MSG); + + /* read specified scheme into scheme registers */ + tmpKgarReg = FmPcdKgBuildReadSchemeActionReg(physicalSchemeId); + intFlags = FmPcdLock(p_FmPcd); + WriteKgarWait(p_FmPcd, tmpKgarReg); + if (!(GET_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs.kgse_mode) & KG_SCH_MODE_EN)) + { + FmPcdUnlock(p_FmPcd, intFlags); + RETURN_ERROR(MAJOR, E_ALREADY_EXISTS, ("Scheme is Invalid")); + } + + /* change counter value */ + WRITE_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->indirectAccessRegs.schemeRegs.kgse_spc, value); + + /* call indirect command for scheme write */ + tmpKgarReg = FmPcdKgBuildWriteSchemeActionReg(physicalSchemeId, TRUE); + + WriteKgarWait(p_FmPcd, tmpKgarReg); + FmPcdUnlock(p_FmPcd, intFlags); + + return E_OK; +} + --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/Pcd/fm_pcd.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/Pcd/fm_pcd.c @@ -0,0 +1,1693 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fm_pcd.c + + @Description FM PCD ... +*//***************************************************************************/ +#include "std_ext.h" +#include "error_ext.h" +#include "string_ext.h" +#include "xx_ext.h" +#include "sprint_ext.h" +#include "debug_ext.h" +#include "net_ext.h" +#include "fm_ext.h" +#include "fm_pcd_ext.h" + +#include "fm_common.h" +#include "fm_pcd.h" +#include "fm_pcd_ipc.h" +#include "fm_hc.h" + + +static t_Error CheckFmPcdParameters(t_FmPcd *p_FmPcd) +{ + if(!p_FmPcd->h_Fm) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("h_Fm has to be initialized")); + + if(p_FmPcd->guestId == NCSW_MASTER_ID) + { + if(p_FmPcd->p_FmPcdKg && !p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Something WRONG")); + + if(p_FmPcd->p_FmPcdPlcr && !p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Something WRONG")); + + if(!p_FmPcd->f_Exception) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("f_FmPcdExceptions has to be initialized")); + + if((!p_FmPcd->f_FmPcdIndexedException) && (p_FmPcd->p_FmPcdPlcr || p_FmPcd->p_FmPcdKg)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("f_FmPcdIndexedException has to be initialized")); + + if(p_FmPcd->p_FmPcdDriverParam->prsMaxParseCycleLimit > PRS_MAX_CYCLE_LIMIT) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("prsMaxParseCycleLimit has to be less than 8191")); + } + + return E_OK; +} + +static volatile bool blockingFlag = FALSE; +static void FmPcdIpcMsgCompletionCB(t_Handle h_FmPcd, + uint8_t *p_Msg, + uint8_t *p_Reply, + uint32_t replyLength, + t_Error status) +{ + UNUSED(h_FmPcd);UNUSED(p_Msg);UNUSED(p_Reply);UNUSED(replyLength);UNUSED(status); + blockingFlag = FALSE; +} + +static t_Error FmPcdHandleIpcMsgCB(t_Handle h_FmPcd, + uint8_t *p_Msg, + uint32_t msgLength, + uint8_t *p_Reply, + uint32_t *p_ReplyLength) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_Error err = E_OK; + t_FmPcdIpcMsg *p_IpcMsg = (t_FmPcdIpcMsg*)p_Msg; + t_FmPcdIpcReply *p_IpcReply = (t_FmPcdIpcReply*)p_Reply; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR((msgLength >= sizeof(uint32_t)), E_INVALID_VALUE); + +#ifdef DISABLE_SANITY_CHECKS + UNUSED(msgLength); +#endif /* DISABLE_SANITY_CHECKS */ + + ASSERT_COND(p_Msg); + + memset(p_IpcReply, 0, (sizeof(uint8_t) * FM_PCD_MAX_REPLY_SIZE)); + *p_ReplyLength = 0; + + switch(p_IpcMsg->msgId) + { + case (FM_PCD_MASTER_IS_ALIVE): + *(uint8_t*)(p_IpcReply->replyBody) = 1; + p_IpcReply->error = E_OK; + *p_ReplyLength = sizeof(uint32_t) + sizeof(uint8_t); + break; + case (FM_PCD_MASTER_IS_ENABLED): + /* count partitions registrations */ + if(p_FmPcd->enabled) + p_FmPcd->numOfEnabledGuestPartitionsPcds++; + *(uint8_t*)(p_IpcReply->replyBody) = (uint8_t)p_FmPcd->enabled; + p_IpcReply->error = E_OK; + *p_ReplyLength = sizeof(uint32_t) + sizeof(uint8_t); + break; + case (FM_PCD_GUEST_DISABLE): + if(p_FmPcd->numOfEnabledGuestPartitionsPcds) + { + p_FmPcd->numOfEnabledGuestPartitionsPcds--; + p_IpcReply->error = E_OK; + } + else + { + REPORT_ERROR(MINOR, E_INVALID_STATE,("Trying to disable an unregistered partition")); + p_IpcReply->error = E_INVALID_STATE; + } + *p_ReplyLength = sizeof(uint32_t); + break; + case(FM_PCD_GET_COUNTER): + { + e_FmPcdCounters inCounter; + uint32_t outCounter; + + memcpy((uint8_t*)&inCounter, p_IpcMsg->msgBody, sizeof(uint32_t)); + outCounter = FM_PCD_GetCounter(h_FmPcd, inCounter); + memcpy(p_IpcReply->replyBody, (uint8_t*)&outCounter, sizeof(uint32_t)); + p_IpcReply->error = E_OK; + *p_ReplyLength = sizeof(uint32_t) + sizeof(uint32_t); + break; + } + case (FM_PCD_ALLOC_KG_SCHEMES): + { + t_FmPcdIpcKgSchemesParams ipcSchemesParams; + + memcpy((uint8_t*)&ipcSchemesParams, p_IpcMsg->msgBody, sizeof(t_FmPcdIpcKgSchemesParams)); + err = FmPcdKgAllocSchemes(h_FmPcd, + ipcSchemesParams.numOfSchemes, + ipcSchemesParams.guestId, + p_IpcReply->replyBody); + p_IpcReply->error = err; + *p_ReplyLength = sizeof(uint32_t) + ipcSchemesParams.numOfSchemes*sizeof(uint8_t); + break; + } + case (FM_PCD_FREE_KG_SCHEMES): + { + t_FmPcdIpcKgSchemesParams ipcSchemesParams; + + memcpy((uint8_t*)&ipcSchemesParams, p_IpcMsg->msgBody, sizeof(t_FmPcdIpcKgSchemesParams)); + err = FmPcdKgFreeSchemes(h_FmPcd, + ipcSchemesParams.numOfSchemes, + ipcSchemesParams.guestId, + ipcSchemesParams.schemesIds); + p_IpcReply->error = err; + *p_ReplyLength = sizeof(uint32_t); + break; + } + case (FM_PCD_ALLOC_KG_CLSPLAN): + { + t_FmPcdIpcKgClsPlanParams ipcKgClsPlanParams; + + memcpy((uint8_t*)&ipcKgClsPlanParams, p_IpcMsg->msgBody, sizeof(t_FmPcdIpcKgClsPlanParams)); + err = KgAllocClsPlanEntries(h_FmPcd, + ipcKgClsPlanParams.numOfClsPlanEntries, + ipcKgClsPlanParams.guestId, + p_IpcReply->replyBody); + p_IpcReply->error = err; + *p_ReplyLength = sizeof(uint32_t) + sizeof(uint8_t); + break; + } + case (FM_PCD_FREE_KG_CLSPLAN): + { + t_FmPcdIpcKgClsPlanParams ipcKgClsPlanParams; + + memcpy((uint8_t*)&ipcKgClsPlanParams, p_IpcMsg->msgBody, sizeof(t_FmPcdIpcKgClsPlanParams)); + KgFreeClsPlanEntries(h_FmPcd, + ipcKgClsPlanParams.numOfClsPlanEntries, + ipcKgClsPlanParams.guestId, + ipcKgClsPlanParams.clsPlanBase); + *p_ReplyLength = sizeof(uint32_t); + break; + } + case (FM_PCD_ALLOC_PROFILES): + { + t_FmPcdIpcPlcrAllocParams ipcPlcrAllocParams; + uint16_t profilesBase; + + memcpy((uint8_t*)&ipcPlcrAllocParams, p_IpcMsg->msgBody, sizeof(t_FmPcdIpcPlcrAllocParams)); + err = PlcrAllocProfiles(h_FmPcd, + ipcPlcrAllocParams.hardwarePortId, + ipcPlcrAllocParams.num, + &profilesBase); + memcpy(p_IpcReply->replyBody, (uint8_t*)&profilesBase, sizeof(uint16_t)); + p_IpcReply->error = err; + *p_ReplyLength = sizeof(uint32_t) + sizeof(uint16_t); + break; + } + case (FM_PCD_FREE_PROFILES): + { + t_FmPcdIpcPlcrAllocParams ipcPlcrAllocParams; + + memcpy((uint8_t*)&ipcPlcrAllocParams, p_IpcMsg->msgBody, sizeof(t_FmPcdIpcPlcrAllocParams)); + err = PlcrFreeProfiles(h_FmPcd, + ipcPlcrAllocParams.hardwarePortId, + ipcPlcrAllocParams.num, + ipcPlcrAllocParams.plcrProfilesBase); + p_IpcReply->error = err; + *p_ReplyLength = sizeof(uint32_t); + break; + } + case (FM_PCD_ALLOC_SHARED_PROFILES): + { + uint16_t numOfProfiles; + uint16_t profilesIds[FM_PCD_PLCR_NUM_ENTRIES]; + uint32_t profilesMask[FM_PCD_PLCR_NUM_ENTRIES/32]; + int i; + + memset(profilesMask, 0, FM_PCD_PLCR_NUM_ENTRIES/32 * sizeof(uint32_t)); + memcpy((uint8_t*)&numOfProfiles, p_IpcMsg->msgBody, sizeof(uint16_t)); + err = PlcrAllocSharedProfiles(h_FmPcd, + numOfProfiles, + profilesIds); + p_IpcReply->error = err; + + /* translate the allocated profile id's to a 32bit * 8regs mask */ + for(i = 0;i> (profilesIds[i] % 32)); + + memcpy(p_IpcReply->replyBody, (uint8_t*)&profilesMask, sizeof(profilesMask)); + *p_ReplyLength = sizeof(uint32_t) + sizeof(profilesMask); /* num-of-shared-profiles */ + break; + } + case (FM_PCD_FREE_SHARED_PROFILES): + { + t_FmPcdIpcSharedPlcrAllocParams ipcSharedPlcrAllocParams; + uint16_t profilesIds[FM_PCD_PLCR_NUM_ENTRIES]; + int i,j, index = 0; + uint32_t walking1Mask = 0x80000000; + + memset(profilesIds, 0, FM_PCD_PLCR_NUM_ENTRIES*sizeof(uint16_t)); + memcpy((uint8_t*)&ipcSharedPlcrAllocParams, p_IpcMsg->msgBody, sizeof(t_FmPcdIpcSharedPlcrAllocParams)); + for(i = 0; i>= 1; + } + walking1Mask = 0x80000000; + } + } + + PlcrFreeSharedProfiles(h_FmPcd, + ipcSharedPlcrAllocParams.num, + profilesIds); + break; + } + case(FM_PCD_GET_SW_PRS_OFFSET): + { + t_FmPcdIpcSwPrsLable ipcSwPrsLable; + uint32_t swPrsOffset; + + memcpy((uint8_t*)&ipcSwPrsLable, p_IpcMsg->msgBody, sizeof(t_FmPcdIpcSwPrsLable)); + swPrsOffset = + FmPcdGetSwPrsOffset(h_FmPcd, + (e_NetHeaderType)ipcSwPrsLable.enumHdr, + ipcSwPrsLable.indexPerHdr); + memcpy(p_IpcReply->replyBody, (uint8_t*)&swPrsOffset, sizeof(uint32_t)); + *p_ReplyLength = sizeof(uint32_t) + sizeof(uint32_t); + break; + } + case(FM_PCD_PRS_INC_PORT_STATS): + { + t_FmPcdIpcPrsIncludePort ipcPrsIncludePort; + + memcpy((uint8_t*)&ipcPrsIncludePort, p_IpcMsg->msgBody, sizeof(t_FmPcdIpcPrsIncludePort)); + PrsIncludePortInStatistics(h_FmPcd, + ipcPrsIncludePort.hardwarePortId, + ipcPrsIncludePort.include); + break; + } +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) + case(FM_PCD_DUMP_REGS): + if((err = FM_PCD_DumpRegs(h_FmPcd)) != E_OK) + REPORT_ERROR(MINOR, err, NO_MSG); + break; + case(FM_PCD_KG_DUMP_REGS): + if((err = FM_PCD_KgDumpRegs(h_FmPcd)) != E_OK) + REPORT_ERROR(MINOR, err, NO_MSG); + break; + case(FM_PCD_PLCR_DUMP_REGS): + if((err = FM_PCD_PlcrDumpRegs(h_FmPcd)) != E_OK) + REPORT_ERROR(MINOR, err, NO_MSG); + break; + case(FM_PCD_PLCR_PROFILE_DUMP_REGS): + { + t_Handle h_Profile; + memcpy((uint8_t*)&h_Profile, p_IpcMsg->msgBody, sizeof(t_Handle)); + if((err = FM_PCD_PlcrProfileDumpRegs(h_FmPcd, h_Profile)) != E_OK) + REPORT_ERROR(MINOR, err, NO_MSG); + break; + + } + case(FM_PCD_PRS_DUMP_REGS): + if((err = FM_PCD_PrsDumpRegs(h_FmPcd)) != E_OK) + REPORT_ERROR(MINOR, err, NO_MSG); + break; +#endif /* (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) */ + default: + *p_ReplyLength = 0; + RETURN_ERROR(MINOR, E_INVALID_SELECTION, ("command not found!!!")); + } + return E_OK; +} + +void FmPcdSetClsPlanGrpId(t_FmPcd *p_FmPcd, uint8_t netEnvId, uint8_t clsPlanGrpId) +{ + p_FmPcd->netEnvs[netEnvId].clsPlanGrpId = clsPlanGrpId; +} + +t_Error PcdGetClsPlanGrpParams(t_FmPcd *p_FmPcd, t_FmPcdKgInterModuleClsPlanGrpParams *p_GrpParams) +{ + uint8_t netEnvId = p_GrpParams->netEnvId; + int i, k, j; + + if(p_FmPcd->netEnvs[netEnvId].clsPlanGrpId != ILLEGAL_CLS_PLAN) + { + p_GrpParams->grpExists = TRUE; + p_GrpParams->clsPlanGrpId = p_FmPcd->netEnvs[netEnvId].clsPlanGrpId; + return E_OK; + } + + for (i=0; ((i < FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS) && + (p_FmPcd->netEnvs[netEnvId].units[i].hdrs[0].hdr != HEADER_TYPE_NONE)); i++) + { + for (k=0; ((k < FM_PCD_MAX_NUM_OF_INTERCHANGEABLE_HDRS) && + (p_FmPcd->netEnvs[netEnvId].units[i].hdrs[k].hdr != HEADER_TYPE_NONE)); k++) + { + /* if an option exists, add it to the opts list */ + if(p_FmPcd->netEnvs[netEnvId].units[i].hdrs[k].opt) + { + /* check if this option already exists, add if it doesn't */ + for(j = 0;jnumOfOptions;j++) + { + if(p_GrpParams->options[j] == p_FmPcd->netEnvs[netEnvId].units[i].hdrs[k].opt) + break; + } + p_GrpParams->optVectors[j] |= p_FmPcd->netEnvs[netEnvId].unitsVectors[i]; + if(j == p_GrpParams->numOfOptions) + { + p_GrpParams->options[p_GrpParams->numOfOptions] = p_FmPcd->netEnvs[netEnvId].units[i].hdrs[k].opt; + p_GrpParams->numOfOptions++; + } + } + } + } + + if(p_GrpParams->numOfOptions == 0) + { + if(p_FmPcd->p_FmPcdKg->emptyClsPlanGrpId != ILLEGAL_CLS_PLAN) + { + p_GrpParams->grpExists = TRUE; + p_GrpParams->clsPlanGrpId = p_FmPcd->p_FmPcdKg->emptyClsPlanGrpId; + } + } + + return E_OK; + +} + +t_Error PcdGetVectorForOpt(t_FmPcd *p_FmPcd, uint8_t netEnvId, protocolOpt_t opt, uint32_t *p_Vector) +{ + uint8_t j,k; + + *p_Vector = 0; + + for (j=0; ((j < FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS) && + (p_FmPcd->netEnvs[netEnvId].units[j].hdrs[0].hdr != HEADER_TYPE_NONE)); j++) + { + for (k=0; ((k < FM_PCD_MAX_NUM_OF_INTERCHANGEABLE_HDRS) && + (p_FmPcd->netEnvs[netEnvId].units[j].hdrs[k].hdr != HEADER_TYPE_NONE)); k++) + { + if (p_FmPcd->netEnvs[netEnvId].units[j].hdrs[k].opt == opt) + *p_Vector |= p_FmPcd->netEnvs[netEnvId].unitsVectors[j]; + } + } + + if (!*p_Vector) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Requested option was not defined for this Network Environment Characteristics module")); + else + return E_OK; +} + +t_Error PcdGetUnitsVector(t_FmPcd *p_FmPcd, t_NetEnvParams *p_Params) +{ + int i; + + p_Params->vector = 0; + for(i=0; inumOfDistinctionUnits ;i++) + { + if(p_FmPcd->netEnvs[p_Params->netEnvId].units[p_Params->unitIds[i]].hdrs[0].hdr == HEADER_TYPE_NONE) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Requested unit was not defined for this Network Environment Characteristics module")); + ASSERT_COND(p_FmPcd->netEnvs[p_Params->netEnvId].unitsVectors[p_Params->unitIds[i]]); + p_Params->vector |= p_FmPcd->netEnvs[p_Params->netEnvId].unitsVectors[p_Params->unitIds[i]]; + } + + return E_OK; +} + +bool PcdNetEnvIsUnitWithoutOpts(t_FmPcd *p_FmPcd, uint8_t netEnvId, uint32_t unitVector) +{ + int i=0, k; + /* check whether a given unit may be used by non-clsPlan users. */ + /* first, recognize the unit by its vector */ + while (p_FmPcd->netEnvs[netEnvId].units[i].hdrs[0].hdr != HEADER_TYPE_NONE) + { + if (p_FmPcd->netEnvs[netEnvId].unitsVectors[i] == unitVector) + { + for (k=0; + ((k < FM_PCD_MAX_NUM_OF_INTERCHANGEABLE_HDRS) && + (p_FmPcd->netEnvs[netEnvId].units[i].hdrs[k].hdr != HEADER_TYPE_NONE)); + k++) + /* check that no option exists */ + if((protocolOpt_t)p_FmPcd->netEnvs[netEnvId].units[i].hdrs[k].opt) + return FALSE; + break; + } + i++; + } + /* assert that a unit was found to mach the vector */ + ASSERT_COND(p_FmPcd->netEnvs[netEnvId].units[i].hdrs[0].hdr != HEADER_TYPE_NONE); + + return TRUE; +} +bool FmPcdNetEnvIsHdrExist(t_Handle h_FmPcd, uint8_t netEnvId, e_NetHeaderType hdr) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + int i, k; + + ASSERT_COND(p_FmPcd); + + for (i=0; ((i < FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS) && + (p_FmPcd->netEnvs[netEnvId].units[i].hdrs[0].hdr != HEADER_TYPE_NONE)); i++) + { + for (k=0; ((k < FM_PCD_MAX_NUM_OF_INTERCHANGEABLE_HDRS) && + (p_FmPcd->netEnvs[netEnvId].units[i].hdrs[k].hdr != HEADER_TYPE_NONE)); k++) + if (p_FmPcd->netEnvs[netEnvId].units[i].hdrs[k].hdr == hdr) + return TRUE; + } + for (i=0; ((i < FM_PCD_MAX_NUM_OF_PRIVATE_HDRS) && + (p_FmPcd->netEnvs[netEnvId].aliasHdrs[i].hdr != HEADER_TYPE_NONE)); i++) + { + if (p_FmPcd->netEnvs[netEnvId].aliasHdrs[i].hdr == hdr) + return TRUE; + } + + return FALSE; +} + +e_NetHeaderType FmPcdGetAliasHdr(t_FmPcd *p_FmPcd, uint8_t netEnvId, e_NetHeaderType hdr) +{ + int i; + + ASSERT_COND(p_FmPcd); + + for (i=0; (i < FM_PCD_MAX_NUM_OF_PRIVATE_HDRS) + && (p_FmPcd->netEnvs[netEnvId].aliasHdrs[i].hdr != HEADER_TYPE_NONE); i++) + { + if (p_FmPcd->netEnvs[netEnvId].aliasHdrs[i].hdr == hdr) + return p_FmPcd->netEnvs[netEnvId].aliasHdrs[i].aliasHdr; + } + + return HEADER_TYPE_NONE; +} + +void FmPcdPortRegister(t_Handle h_FmPcd, t_Handle h_FmPort, uint8_t hardwarePortId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint16_t swPortIndex = 0; + + HW_PORT_ID_TO_SW_PORT_INDX(swPortIndex, hardwarePortId); + + p_FmPcd->p_FmPcdPlcr->portsMapping[swPortIndex].h_FmPort = h_FmPort; +} + +uint32_t FmPcdGetLcv(t_Handle h_FmPcd, uint32_t netEnvId, uint8_t hdrNum) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + return p_FmPcd->netEnvs[netEnvId].lcvs[hdrNum]; +} + +uint32_t FmPcdGetMacsecLcv(t_Handle h_FmPcd, uint32_t netEnvId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + return p_FmPcd->netEnvs[netEnvId].macsecVector; +} + +void FmPcdIncNetEnvOwners(t_Handle h_FmPcd, uint8_t netEnvId) +{ + ((t_FmPcd*)h_FmPcd)->netEnvs[netEnvId].owners++; +} + +void FmPcdDecNetEnvOwners(t_Handle h_FmPcd, uint8_t netEnvId) +{ + ASSERT_COND(((t_FmPcd*)h_FmPcd)->netEnvs[netEnvId].owners); + ((t_FmPcd*)h_FmPcd)->netEnvs[netEnvId].owners--; +} + +uint32_t FmPcdLock(t_Handle h_FmPcd) +{ + return XX_LockIntrSpinlock(((t_FmPcd*)h_FmPcd)->h_Spinlock); +} + +void FmPcdUnlock(t_Handle h_FmPcd, uint32_t intFlags) +{ + XX_UnlockIntrSpinlock(((t_FmPcd*)h_FmPcd)->h_Spinlock, intFlags); +} + +t_Handle FmPcdGetHcHandle(t_Handle h_FmPcd) +{ + ASSERT_COND(h_FmPcd); + SANITY_CHECK_RETURN_VALUE(((t_FmPcd*)h_FmPcd)->h_Hc, E_INVALID_HANDLE, NULL); + return ((t_FmPcd*)h_FmPcd)->h_Hc; +} + +/**********************************************************************************************************/ +/* API */ +/**********************************************************************************************************/ + +t_Handle FM_PCD_Config(t_FmPcdParams *p_FmPcdParams) +{ + t_FmPcd *p_FmPcd = NULL; + t_FmPhysAddr physicalMuramBase; + uint8_t i; + + SANITY_CHECK_RETURN_VALUE(p_FmPcdParams, E_INVALID_HANDLE,NULL); + + p_FmPcd = (t_FmPcd *) XX_Malloc(sizeof(t_FmPcd)); + if (!p_FmPcd) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM Pcd")); + return NULL; + } + memset(p_FmPcd, 0, sizeof(t_FmPcd)); + + p_FmPcd->p_FmPcdDriverParam = (t_FmPcdDriverParam *) XX_Malloc(sizeof(t_FmPcdDriverParam)); + if (!p_FmPcd->p_FmPcdDriverParam) + { + XX_Free(p_FmPcd); + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM Pcd Driver Param")); + return NULL; + } + memset(p_FmPcd->p_FmPcdDriverParam, 0, sizeof(t_FmPcdDriverParam)); + + p_FmPcd->h_Fm = p_FmPcdParams->h_Fm; + p_FmPcd->guestId = FmGetGuestId(p_FmPcd->h_Fm); + p_FmPcd->h_FmMuram = FmGetMuramHandle(p_FmPcd->h_Fm); + FmGetPhysicalMuramBase(p_FmPcdParams->h_Fm, &physicalMuramBase); + p_FmPcd->physicalMuramBase = (uint64_t)((uint64_t)(&physicalMuramBase)->low | ((uint64_t)(&physicalMuramBase)->high << 32)); + + for(i = 0; inetEnvs[i].clsPlanGrpId = ILLEGAL_CLS_PLAN; + + if (p_FmPcdParams->useHostCommand) + { + t_FmHcParams hcParams; + + memset(&hcParams, 0, sizeof(hcParams)); + hcParams.h_Fm = p_FmPcd->h_Fm; + hcParams.h_FmPcd = (t_Handle)p_FmPcd; + memcpy((uint8_t*)&hcParams.params, (uint8_t*)&p_FmPcdParams->hc, sizeof(t_FmPcdHcParams)); + p_FmPcd->h_Hc = FmHcConfigAndInit(&hcParams); + if (!p_FmPcd->h_Hc) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM Pcd HC")); + FM_PCD_Free(p_FmPcd); + return NULL; + } + } + else if(p_FmPcd->guestId != NCSW_MASTER_ID) + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("No Host Command defined for a guest partition.")); + + if(p_FmPcdParams->kgSupport) + { + p_FmPcd->p_FmPcdKg = (t_FmPcdKg *)KgConfig(p_FmPcd, p_FmPcdParams); + if(!p_FmPcd->p_FmPcdKg) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM Pcd Keygen")); + FM_PCD_Free(p_FmPcd); + return NULL; + } + } + + if(p_FmPcdParams->plcrSupport) + { + p_FmPcd->p_FmPcdPlcr = (t_FmPcdPlcr *)PlcrConfig(p_FmPcd, p_FmPcdParams); + if(!p_FmPcd->p_FmPcdPlcr) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM Pcd Policer")); + FM_PCD_Free(p_FmPcd); + return NULL; + } + } + + if(p_FmPcdParams->prsSupport) + { + p_FmPcd->p_FmPcdPrs = (t_FmPcdPrs *)PrsConfig(p_FmPcd, p_FmPcdParams); + if(!p_FmPcd->p_FmPcdPrs) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM Pcd Parser")); + FM_PCD_Free(p_FmPcd); + return NULL; + } + } + + p_FmPcd->h_Spinlock = XX_InitSpinlock(); + if (!p_FmPcd->h_Spinlock) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM Pcd spinlock")); + FM_PCD_Free(p_FmPcd); + return NULL; + } + + p_FmPcd->numOfEnabledGuestPartitionsPcds = 0; + + p_FmPcd->f_Exception = p_FmPcdParams->f_Exception; + p_FmPcd->f_FmPcdIndexedException = p_FmPcdParams->f_ExceptionId; + p_FmPcd->h_App = p_FmPcdParams->h_App; + + return p_FmPcd; +} + +t_Error FM_PCD_Init(t_Handle h_FmPcd) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_Error err = E_OK; + t_FmPcdIpcMsg msg; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdDriverParam, E_INVALID_HANDLE); + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + { + uint8_t isMasterAlive = 0; + t_FmPcdIpcReply reply; + uint32_t replyLength; + + memset(p_FmPcd->fmPcdIpcHandlerModuleName, 0, (sizeof(char)) * MODULE_NAME_SIZE); + if(Sprint (p_FmPcd->fmPcdIpcHandlerModuleName, "FM_PCD_%d_%d", FmGetId(p_FmPcd->h_Fm), NCSW_MASTER_ID) != 10) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Sprint failed")); + memset(p_FmPcd->fmPcdModuleName, 0, (sizeof(char)) * MODULE_NAME_SIZE); + if(Sprint (p_FmPcd->fmPcdModuleName, "FM_PCD_%d_%d",FmGetId(p_FmPcd->h_Fm), p_FmPcd->guestId) != (p_FmPcd->guestId<10 ? 10:11)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Sprint failed")); + + p_FmPcd->h_IpcSession = XX_IpcInitSession(p_FmPcd->fmPcdIpcHandlerModuleName, p_FmPcd->fmPcdModuleName); + if (p_FmPcd->h_IpcSession == NULL) + RETURN_ERROR(MAJOR, E_NOT_AVAILABLE, ("FM PCD Guest %d IPC session", p_FmPcd->guestId)); + + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_PCD_MASTER_IS_ALIVE; + msg.msgBody[0] = p_FmPcd->guestId; + blockingFlag = TRUE; + + do + { + replyLength = sizeof(uint32_t) + sizeof(isMasterAlive); + if ((err = XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId)+sizeof(p_FmPcd->guestId), + (uint8_t*)&reply, + &replyLength, + FmPcdIpcMsgCompletionCB, + h_FmPcd)) != E_OK) + REPORT_ERROR(MAJOR, err, NO_MSG); + while(blockingFlag) ; + if(replyLength != (sizeof(uint32_t) + sizeof(isMasterAlive))) + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + isMasterAlive = *(uint8_t*)(reply.replyBody); + } while (!isMasterAlive); + } + + CHECK_INIT_PARAMETERS(p_FmPcd, CheckFmPcdParameters); + + if(p_FmPcd->p_FmPcdKg) + { + err = KgInit(p_FmPcd); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + if(p_FmPcd->p_FmPcdPlcr) + { + err = PlcrInit(p_FmPcd); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + if(p_FmPcd->p_FmPcdPrs) + { + err = PrsInit(p_FmPcd); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + if(p_FmPcd->guestId == NCSW_MASTER_ID) + { + /* register to inter-core messaging mechanism */ + memset(p_FmPcd->fmPcdModuleName, 0, (sizeof(char)) * MODULE_NAME_SIZE); + if(Sprint (p_FmPcd->fmPcdModuleName, "FM_PCD_%d_%d",FmGetId(p_FmPcd->h_Fm),NCSW_MASTER_ID) != 10) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Sprint failed")); + err = XX_IpcRegisterMsgHandler(p_FmPcd->fmPcdModuleName, FmPcdHandleIpcMsgCB, p_FmPcd, FM_PCD_MAX_REPLY_SIZE); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + XX_Free(p_FmPcd->p_FmPcdDriverParam); + p_FmPcd->p_FmPcdDriverParam = NULL; + + FmRegisterPcd(p_FmPcd->h_Fm, p_FmPcd); + + return E_OK; +} + +t_Error FM_PCD_Free(t_Handle h_FmPcd) +{ + t_FmPcd *p_FmPcd =(t_FmPcd *)h_FmPcd; + t_Error err = E_OK; + + if(p_FmPcd->enabled) + FM_PCD_Disable(p_FmPcd); + + if (p_FmPcd->h_Spinlock) + XX_FreeSpinlock(p_FmPcd->h_Spinlock); + + if(p_FmPcd->p_FmPcdDriverParam) + { + XX_Free(p_FmPcd->p_FmPcdDriverParam); + p_FmPcd->p_FmPcdDriverParam = NULL; + } + if(p_FmPcd->p_FmPcdKg) + { + if((err = KgFree(p_FmPcd)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + XX_Free(p_FmPcd->p_FmPcdKg); + p_FmPcd->p_FmPcdKg = NULL; + } + + if(p_FmPcd->p_FmPcdPlcr) + { + if((err = PlcrFree(p_FmPcd)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + XX_Free(p_FmPcd->p_FmPcdPlcr); + p_FmPcd->p_FmPcdPlcr = NULL; + } + + if(p_FmPcd->p_FmPcdPrs) + { + if(p_FmPcd->guestId == NCSW_MASTER_ID) + PrsFree(p_FmPcd); + XX_Free(p_FmPcd->p_FmPcdPrs); + p_FmPcd->p_FmPcdPrs = NULL; + } + + if (p_FmPcd->h_Hc) + { + FmHcFree(p_FmPcd->h_Hc); + p_FmPcd->h_Hc = NULL; + } + + XX_IpcUnregisterMsgHandler(p_FmPcd->fmPcdModuleName); + + FmUnregisterPcd(p_FmPcd->h_Fm); + + XX_Free(p_FmPcd); + return E_OK; +} + +t_Error FM_PCD_Enable(t_Handle h_FmPcd) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_Error err = E_OK; + + SANITY_CHECK_RETURN_ERROR(h_FmPcd, E_INVALID_HANDLE); + + if(p_FmPcd->guestId == NCSW_MASTER_ID) + { + if(p_FmPcd->p_FmPcdKg) + KgEnable(p_FmPcd); + + if(p_FmPcd->p_FmPcdPlcr) + PlcrEnable(p_FmPcd); + + if(p_FmPcd->p_FmPcdPrs) + PrsEnable(p_FmPcd); + + p_FmPcd->enabled = TRUE; + } + else + { + uint8_t enabled; + t_FmPcdIpcMsg msg; + t_FmPcdIpcReply reply; + uint32_t replyLength; + + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_PCD_MASTER_IS_ENABLED; + replyLength = sizeof(uint32_t) + sizeof(enabled); + if ((err = XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + if (replyLength != sizeof(uint32_t) + sizeof(enabled)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + p_FmPcd->enabled = (bool)!!(*(uint8_t*)(reply.replyBody)); + if (!p_FmPcd->enabled) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("FM-PCD master should be enabled first!")); + } + + return E_OK; +} + +t_Error FM_PCD_Disable(t_Handle h_FmPcd) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_Error err = E_OK; + t_FmPcdIpcMsg msg; + t_FmPcdIpcReply reply; + uint32_t replyLength; + + SANITY_CHECK_RETURN_ERROR(h_FmPcd, E_INVALID_HANDLE); + + if(p_FmPcd->guestId == NCSW_MASTER_ID) + { + if(p_FmPcd->numOfEnabledGuestPartitionsPcds != 0) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Trying to disable a master partition PCD while guest partitions are still enabled.")); + + if(p_FmPcd->p_FmPcdKg) + KgDisable(p_FmPcd); + + if(p_FmPcd->p_FmPcdPlcr) + PlcrDisable(p_FmPcd); + + if(p_FmPcd->p_FmPcdPrs) + PrsDisable(p_FmPcd); + + p_FmPcd->enabled = FALSE; + + return E_OK; + } + + memset(&msg, 0, sizeof(msg)); + msg.msgId = FM_PCD_GUEST_DISABLE; + memset(&reply, 0, sizeof(reply)); + replyLength = sizeof(uint32_t); + if ((err = XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + if (replyLength != sizeof(uint32_t)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + + return (t_Error)(reply.error); +} + +t_Handle FM_PCD_SetNetEnvCharacteristics(t_Handle h_FmPcd, t_FmPcdNetEnvParams *p_NetEnvParams) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t intFlags, specialUnits = 0; + uint8_t bitId = 0; + uint8_t i, j, k; + uint8_t netEnvCurrId; + uint8_t ipsecAhUnit = 0,ipsecEspUnit = 0; + bool ipsecAhExists = FALSE, ipsecEspExists = FALSE, shim1Selected = FALSE; + uint8_t hdrNum; + + SANITY_CHECK_RETURN_VALUE(h_FmPcd, E_INVALID_STATE, NULL); + SANITY_CHECK_RETURN_VALUE(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE, NULL); + + intFlags = FmPcdLock(p_FmPcd); + + /* find a new netEnv */ + for(i = 0;inetEnvs[i].used) + break; + + if(i== FM_MAX_NUM_OF_PORTS) + { + REPORT_ERROR(MAJOR, E_FULL,("No more than %d netEnv's allowed.", FM_MAX_NUM_OF_PORTS)); + FmPcdUnlock(p_FmPcd, intFlags); + return NULL; + } + + p_FmPcd->netEnvs[i].used = TRUE; + + if (!TRY_LOCK(NULL, &p_FmPcd->netEnvs[i].lock)) + { + FmPcdUnlock(p_FmPcd, intFlags); + return NULL; + } + FmPcdUnlock(p_FmPcd, intFlags); + + netEnvCurrId = (uint8_t)i; + + /* clear from previous use */ + memset(&p_FmPcd->netEnvs[netEnvCurrId].units, 0, FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS * sizeof(t_FmPcdIntDistinctionUnit)); + memset(&p_FmPcd->netEnvs[netEnvCurrId].aliasHdrs, 0, FM_PCD_MAX_NUM_OF_PRIVATE_HDRS * sizeof(t_FmPcdNetEnvAliases)); + memcpy(&p_FmPcd->netEnvs[netEnvCurrId].units, p_NetEnvParams->units, p_NetEnvParams->numOfDistinctionUnits*sizeof(t_FmPcdIntDistinctionUnit)); + p_FmPcd->netEnvs[netEnvCurrId].clsPlanGrpId = ILLEGAL_CLS_PLAN; + + /* check that header with opt is not interchanged with the same header */ + for (i=0; (i < FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS) + && (p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[0].hdr != HEADER_TYPE_NONE); i++) + { + for (k=0; (k < FM_PCD_MAX_NUM_OF_INTERCHANGEABLE_HDRS) + && (p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[k].hdr != HEADER_TYPE_NONE); k++) + { + /* if an option exists, check that other headers are not the same header + without option */ + if(p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[k].opt) + { + for (j=0; (j < FM_PCD_MAX_NUM_OF_INTERCHANGEABLE_HDRS) + && (p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[j].hdr != HEADER_TYPE_NONE); j++) + if((p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[j].hdr == p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[k].hdr) && + !p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[j].opt) + { + REPORT_ERROR(MINOR, E_FULL, ("Illegal unit - header with opt may not be interchangeable with the same header without opt")); + RELEASE_LOCK(p_FmPcd->netEnvs[netEnvCurrId].lock); + return NULL; + } + } + } + } + + /* IPSEC_AH and IPSEC_SPI can't be 2 units, */ + /* check that header with opt is not interchanged with the same header */ + for(i=0; (i < FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS) + && (p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[0].hdr != HEADER_TYPE_NONE); i++) + { + for(k=0; (k < FM_PCD_MAX_NUM_OF_INTERCHANGEABLE_HDRS) + && (p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[k].hdr != HEADER_TYPE_NONE); k++) + { + /* Some headers pairs may not be defined on different units as the parser + doesn't distinguish */ + if(p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[k].hdr == HEADER_TYPE_IPSEC_AH) + { + if (ipsecEspExists && (ipsecEspUnit != i)) + { + REPORT_ERROR(MINOR, E_INVALID_STATE, ("HEADER_TYPE_IPSEC_AH and HEADER_TYPE_IPSEC_ESP may not be defined in separate units")); + RELEASE_LOCK(p_FmPcd->netEnvs[netEnvCurrId].lock); + return NULL; + } + else + { + ipsecAhUnit = i; + ipsecAhExists = TRUE; + } + } + if(p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[k].hdr == HEADER_TYPE_IPSEC_ESP) + { + if (ipsecAhExists && (ipsecAhUnit != i)) + { + REPORT_ERROR(MINOR, E_INVALID_STATE, ("HEADER_TYPE_IPSEC_AH and HEADER_TYPE_IPSEC_ESP may not be defined in separate units")); + RELEASE_LOCK(p_FmPcd->netEnvs[netEnvCurrId].lock); + return NULL; + } + else + { + ipsecEspUnit = i; + ipsecEspExists = TRUE; + } + } + if(p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[k].hdr == HEADER_TYPE_UDP_ENCAP_ESP) + { + /* TODO - general coding. choose the free shim header */ + p_FmPcd->netEnvs[netEnvCurrId].aliasHdrs[specialUnits].hdr = HEADER_TYPE_UDP_ENCAP_ESP; + p_FmPcd->netEnvs[netEnvCurrId].aliasHdrs[specialUnits++].aliasHdr = HEADER_TYPE_USER_DEFINED_SHIM1; + p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[k].hdr = HEADER_TYPE_USER_DEFINED_SHIM1; + p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[k].opt = 0; + } + } + } + + /* if private header (shim), check that no other headers specified */ + for (i=0; (i < FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS) + && (p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[0].hdr != HEADER_TYPE_NONE); i++) + { + if(IS_PRIVATE_HEADER(p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[0].hdr)) + if(p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[1].hdr != HEADER_TYPE_NONE) + { + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("SHIM header may not be interchanged with other headers")); + RELEASE_LOCK(p_FmPcd->netEnvs[netEnvCurrId].lock); + return NULL; + } + } + + for(i=0; inumOfDistinctionUnits;i++) + { + if (IS_PRIVATE_HEADER(p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[0].hdr)) + switch(p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[0].hdr) + { + case(HEADER_TYPE_USER_DEFINED_SHIM1): + if (shim1Selected) + { + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("SHIM header cannot be selected with UDP_IPSEC_ESP")); + RELEASE_LOCK(p_FmPcd->netEnvs[netEnvCurrId].lock); + return NULL; + } + shim1Selected = TRUE; + p_FmPcd->netEnvs[netEnvCurrId].unitsVectors[i] = 0x00000001; + break; + case(HEADER_TYPE_USER_DEFINED_SHIM2): + p_FmPcd->netEnvs[netEnvCurrId].unitsVectors[i] = 0x00000002; + break; + default: + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Requested SHIM not supported")); + } + else + { + p_FmPcd->netEnvs[netEnvCurrId].unitsVectors[i] = (uint32_t)(0x80000000 >> bitId++); + + if(IS_SPECIAL_HEADER(p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[0].hdr)) + p_FmPcd->netEnvs[netEnvCurrId].macsecVector = p_FmPcd->netEnvs[netEnvCurrId].unitsVectors[i]; + } + } + + /* define a set of hardware parser LCV's according to the defined netenv */ + + /* set an array of LCV's for each header in the netEnv */ + for (i=0; (i < FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS) + && (p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[0].hdr != HEADER_TYPE_NONE); i++) + { + /* private headers have no LCV in the hard parser */ + if (!IS_PRIVATE_HEADER(p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[0].hdr)) + { + for (k=0; (k < FM_PCD_MAX_NUM_OF_INTERCHANGEABLE_HDRS) + && (p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[k].hdr != HEADER_TYPE_NONE); k++) + { + GET_PRS_HDR_NUM(hdrNum, p_FmPcd->netEnvs[netEnvCurrId].units[i].hdrs[k].hdr); + if ((hdrNum == ILLEGAL_HDR_NUM) || (hdrNum == NO_HDR_NUM)) + { + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, NO_MSG); + RELEASE_LOCK(p_FmPcd->netEnvs[netEnvCurrId].lock); + return NULL; + } + p_FmPcd->netEnvs[netEnvCurrId].lcvs[hdrNum] |= p_FmPcd->netEnvs[netEnvCurrId].unitsVectors[i]; + } + } + } + + RELEASE_LOCK(p_FmPcd->netEnvs[netEnvCurrId].lock); + + return UINT_TO_PTR((uint64_t)netEnvCurrId+1); +} + +t_Error FM_PCD_DeleteNetEnvCharacteristics(t_Handle h_FmPcd, t_Handle h_NetEnv) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint8_t netEnvId = (uint8_t)(PTR_TO_UINT(h_NetEnv)-1); + + SANITY_CHECK_RETURN_ERROR(h_FmPcd, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE); + + if (!TRY_LOCK(p_FmPcd->h_Spinlock, &p_FmPcd->netEnvs[netEnvId].lock)) + return ERROR_CODE(E_BUSY); + /* check that no port is bound to this netEnv */ + if(p_FmPcd->netEnvs[netEnvId].owners) + { + RELEASE_LOCK(p_FmPcd->netEnvs[netEnvId].lock); + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Trying to delete a netEnv that has ports/schemes/trees/clsPlanGrps bound to")); + } + p_FmPcd->netEnvs[netEnvId].used= FALSE; + p_FmPcd->netEnvs[netEnvId].clsPlanGrpId = ILLEGAL_CLS_PLAN; + + memset(p_FmPcd->netEnvs[netEnvId].units, 0, sizeof(t_FmPcdIntDistinctionUnit)*FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS); + memset(p_FmPcd->netEnvs[netEnvId].unitsVectors, 0, sizeof(uint32_t)*FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS); + memset(p_FmPcd->netEnvs[netEnvId].lcvs, 0, sizeof(uint32_t)*FM_PCD_PRS_NUM_OF_HDRS); + + RELEASE_LOCK(p_FmPcd->netEnvs[netEnvId].lock); + + return E_OK; +} + +void FM_PCD_HcTxConf(t_Handle h_FmPcd, t_DpaaFD *p_Fd) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + SANITY_CHECK_RETURN(h_FmPcd, E_INVALID_STATE); + + FmHcTxConf(p_FmPcd->h_Hc, p_Fd); +} + +uint32_t FM_PCD_GetCounter(t_Handle h_FmPcd, e_FmPcdCounters counter) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t replyLength, outCounter = 0; + t_FmPcdIpcMsg msg; + t_Error err; + t_FmPcdIpcReply reply; + + SANITY_CHECK_RETURN_VALUE(h_FmPcd, E_INVALID_HANDLE, 0); + SANITY_CHECK_RETURN_VALUE(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE, 0); + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_PCD_GET_COUNTER; + memcpy(msg.msgBody, (uint8_t *)&counter, sizeof(uint32_t)); + replyLength = sizeof(uint32_t) + sizeof(uint32_t); + if ((err = XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId) +sizeof(uint32_t), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + if (replyLength != sizeof(uint32_t) + sizeof(uint32_t)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + + memcpy((uint8_t*)&outCounter, reply.replyBody, sizeof(uint32_t)); + return outCounter; + } + + switch(counter) + { + case(e_FM_PCD_KG_COUNTERS_TOTAL): + if(!p_FmPcd->p_FmPcdKg) + { + REPORT_ERROR(MINOR, E_INVALID_STATE, ("Can't ask for this counters")); + return 0; + } + break; + case(e_FM_PCD_PLCR_COUNTERS_YELLOW): + case(e_FM_PCD_PLCR_COUNTERS_RED): + case(e_FM_PCD_PLCR_COUNTERS_RECOLORED_TO_RED): + case(e_FM_PCD_PLCR_COUNTERS_RECOLORED_TO_YELLOW): + case(e_FM_PCD_PLCR_COUNTERS_TOTAL): + case(e_FM_PCD_PLCR_COUNTERS_LENGTH_MISMATCH): + if(!p_FmPcd->p_FmPcdPlcr) + { + REPORT_ERROR(MINOR, E_INVALID_STATE, ("Can't ask for this counters")); + return 0; + } + /* check that counters are enabled */ + if(!(GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_gcr) & FM_PCD_PLCR_GCR_STEN)) + { + REPORT_ERROR(MINOR, E_INVALID_STATE, ("Requested counter was not enabled")); + return 0; + } + break; + case(e_FM_PCD_PRS_COUNTERS_PARSE_DISPATCH): + case(e_FM_PCD_PRS_COUNTERS_L2_PARSE_RESULT_RETURNED): + case(e_FM_PCD_PRS_COUNTERS_L3_PARSE_RESULT_RETURNED): + case(e_FM_PCD_PRS_COUNTERS_L4_PARSE_RESULT_RETURNED): + case(e_FM_PCD_PRS_COUNTERS_SHIM_PARSE_RESULT_RETURNED): + case(e_FM_PCD_PRS_COUNTERS_L2_PARSE_RESULT_RETURNED_WITH_ERR): + case(e_FM_PCD_PRS_COUNTERS_L3_PARSE_RESULT_RETURNED_WITH_ERR): + case(e_FM_PCD_PRS_COUNTERS_L4_PARSE_RESULT_RETURNED_WITH_ERR): + case(e_FM_PCD_PRS_COUNTERS_SHIM_PARSE_RESULT_RETURNED_WITH_ERR): + case(e_FM_PCD_PRS_COUNTERS_SOFT_PRS_CYCLES): + case(e_FM_PCD_PRS_COUNTERS_SOFT_PRS_STALL_CYCLES): + case(e_FM_PCD_PRS_COUNTERS_HARD_PRS_CYCLE_INCL_STALL_CYCLES): + case(e_FM_PCD_PRS_COUNTERS_MURAM_READ_CYCLES): + case(e_FM_PCD_PRS_COUNTERS_MURAM_READ_STALL_CYCLES): + case(e_FM_PCD_PRS_COUNTERS_MURAM_WRITE_CYCLES): + case(e_FM_PCD_PRS_COUNTERS_MURAM_WRITE_STALL_CYCLES): + case(e_FM_PCD_PRS_COUNTERS_FPM_COMMAND_STALL_CYCLES): + if(!p_FmPcd->p_FmPcdPrs) + { + REPORT_ERROR(MINOR, E_INVALID_STATE, ("Can't ask for this counters")); + return 0; + } + break; + default: + REPORT_ERROR(MINOR, E_INVALID_STATE, ("Unsupported type of counter")); + return 0; + } + switch(counter) + { + case(e_FM_PCD_PRS_COUNTERS_PARSE_DISPATCH): + return GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->pds); + case(e_FM_PCD_PRS_COUNTERS_L2_PARSE_RESULT_RETURNED): + return GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->l2rrs); + case(e_FM_PCD_PRS_COUNTERS_L3_PARSE_RESULT_RETURNED): + return GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->l3rrs); + case(e_FM_PCD_PRS_COUNTERS_L4_PARSE_RESULT_RETURNED): + return GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->l4rrs); + case(e_FM_PCD_PRS_COUNTERS_SHIM_PARSE_RESULT_RETURNED): + return GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->srrs); + case(e_FM_PCD_PRS_COUNTERS_L2_PARSE_RESULT_RETURNED_WITH_ERR): + return GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->l2rres); + case(e_FM_PCD_PRS_COUNTERS_L3_PARSE_RESULT_RETURNED_WITH_ERR): + return GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->l3rres); + case(e_FM_PCD_PRS_COUNTERS_L4_PARSE_RESULT_RETURNED_WITH_ERR): + return GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->l4rres); + case(e_FM_PCD_PRS_COUNTERS_SHIM_PARSE_RESULT_RETURNED_WITH_ERR): + return GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->srres); + case(e_FM_PCD_PRS_COUNTERS_SOFT_PRS_CYCLES): + return GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->spcs); + case(e_FM_PCD_PRS_COUNTERS_SOFT_PRS_STALL_CYCLES): + return GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->spscs); + case(e_FM_PCD_PRS_COUNTERS_HARD_PRS_CYCLE_INCL_STALL_CYCLES): + return GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->hxscs); + case(e_FM_PCD_PRS_COUNTERS_MURAM_READ_CYCLES): + return GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->mrcs); + case(e_FM_PCD_PRS_COUNTERS_MURAM_READ_STALL_CYCLES): + return GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->mrscs); + case(e_FM_PCD_PRS_COUNTERS_MURAM_WRITE_CYCLES): + return GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->mwcs); + case(e_FM_PCD_PRS_COUNTERS_MURAM_WRITE_STALL_CYCLES): + return GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->mwscs); + case(e_FM_PCD_PRS_COUNTERS_FPM_COMMAND_STALL_CYCLES): + return GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->fcscs); + case(e_FM_PCD_KG_COUNTERS_TOTAL): + return GET_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->kgtpc); + + /*Policer statictics*/ + case(e_FM_PCD_PLCR_COUNTERS_YELLOW): + return GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_ypcnt); + case(e_FM_PCD_PLCR_COUNTERS_RED): + return GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_rpcnt); + case(e_FM_PCD_PLCR_COUNTERS_RECOLORED_TO_RED): + return GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_rrpcnt); + case(e_FM_PCD_PLCR_COUNTERS_RECOLORED_TO_YELLOW): + return GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_rypcnt); + case(e_FM_PCD_PLCR_COUNTERS_TOTAL): + return GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_tpcnt); + case(e_FM_PCD_PLCR_COUNTERS_LENGTH_MISMATCH): + return GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_flmcnt); + + default: + REPORT_ERROR(MINOR, E_INVALID_STATE, ("Unsupported type of counter")); + return 0; + } +} + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +t_Error FM_PCD_DumpRegs(t_Handle h_FmPcd) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_FmPcdIpcMsg msg; + + DECLARE_DUMP; + + SANITY_CHECK_RETURN_ERROR(h_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE); + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + msg.msgId = FM_PCD_DUMP_REGS; + return XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId), + NULL, + NULL, + NULL, + NULL); + } + if (p_FmPcd->p_FmPcdKg) + return FM_PCD_KgDumpRegs(h_FmPcd); + if (p_FmPcd->p_FmPcdPlcr) + return FM_PCD_PlcrDumpRegs(h_FmPcd); + if (p_FmPcd->p_FmPcdPrs) + return FM_PCD_PrsDumpRegs(h_FmPcd); + return E_OK; +} + +t_Error FM_PCD_HcDumpRegs(t_Handle h_FmPcd) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + DECLARE_DUMP; + + SANITY_CHECK_RETURN_ERROR(h_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->h_Hc, E_INVALID_STATE); + + return FmHcDumpRegs(p_FmPcd->h_Hc); +} + +#endif /* (defined(DEBUG_ERRORS) && ... */ + +t_Error FM_PCD_ConfigException(t_Handle h_FmPcd, e_FmPcdExceptions exception, bool enable) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t bitMask = 0; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("FM_PCD_ConfigException - guest mode!")); + + GET_FM_PCD_EXCEPTION_FLAG(bitMask, exception); + if(bitMask) + { + if (enable) + p_FmPcd->exceptions |= bitMask; + else + p_FmPcd->exceptions &= ~bitMask; + } + else + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Undefined exception")); + + return E_OK; +} + +t_Error FM_PCD_SetException(t_Handle h_FmPcd, e_FmPcdExceptions exception, bool enable) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t bitMask = 0, tmpReg; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE); + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("FM_PCD_SetException - guest mode!")); + + GET_FM_PCD_EXCEPTION_FLAG(bitMask, exception); + + if(bitMask) + { + if (enable) + p_FmPcd->exceptions |= bitMask; + else + p_FmPcd->exceptions &= ~bitMask; + + switch(exception) + { + case(e_FM_PCD_KG_EXCEPTION_DOUBLE_ECC): + case(e_FM_PCD_KG_EXCEPTION_KEYSIZE_OVERFLOW): + if(!p_FmPcd->p_FmPcdKg) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Can't ask for this interrupt - keygen is not working")); + break; + case(e_FM_PCD_PLCR_EXCEPTION_DOUBLE_ECC): + case(e_FM_PCD_PLCR_EXCEPTION_INIT_ENTRY_ERROR): + case(e_FM_PCD_PLCR_EXCEPTION_PRAM_SELF_INIT_COMPLETE): + case(e_FM_PCD_PLCR_EXCEPTION_ATOMIC_ACTION_COMPLETE): + if(!p_FmPcd->p_FmPcdPlcr) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Can't ask for this interrupt - policer is not working")); + break; + case(e_FM_PCD_PRS_EXCEPTION_DOUBLE_ECC): + case(e_FM_PCD_PRS_EXCEPTION_SINGLE_ECC): + if(!p_FmPcd->p_FmPcdPrs) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Can't ask for this interrupt - parser is not working")); + break; + default: + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Unsupported exception")); + + } + + switch(exception) + { + case(e_FM_PCD_KG_EXCEPTION_DOUBLE_ECC): + tmpReg = GET_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->kgeeer); + if(enable) + tmpReg |= FM_PCD_KG_DOUBLE_ECC; + else + tmpReg &= ~FM_PCD_KG_DOUBLE_ECC; + WRITE_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->kgeeer, tmpReg); + break; + case(e_FM_PCD_KG_EXCEPTION_KEYSIZE_OVERFLOW): + tmpReg = GET_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->kgeeer); + if(enable) + tmpReg |= FM_PCD_KG_KEYSIZE_OVERFLOW; + else + tmpReg &= ~FM_PCD_KG_KEYSIZE_OVERFLOW; + WRITE_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->kgeeer, tmpReg); + break; + case(e_FM_PCD_PRS_EXCEPTION_DOUBLE_ECC): + tmpReg = GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->perer); + if(enable) + tmpReg |= FM_PCD_PRS_DOUBLE_ECC; + else + tmpReg &= ~FM_PCD_PRS_DOUBLE_ECC; + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->perer, tmpReg); + break; + case(e_FM_PCD_PRS_EXCEPTION_SINGLE_ECC): + tmpReg = GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->pever); + if(enable) + tmpReg |= FM_PCD_PRS_SINGLE_ECC; + else + tmpReg &= ~FM_PCD_PRS_SINGLE_ECC; + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->pever, tmpReg); + break; + case(e_FM_PCD_PLCR_EXCEPTION_DOUBLE_ECC): + tmpReg = GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_eier); + if(enable) + tmpReg |= FM_PCD_PLCR_DOUBLE_ECC; + else + tmpReg &= ~FM_PCD_PLCR_DOUBLE_ECC; + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_eier, tmpReg); + break; + case(e_FM_PCD_PLCR_EXCEPTION_INIT_ENTRY_ERROR): + tmpReg = GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_eier); + if(enable) + tmpReg |= FM_PCD_PLCR_INIT_ENTRY_ERROR; + else + tmpReg &= ~FM_PCD_PLCR_INIT_ENTRY_ERROR; + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_eier, tmpReg); + break; + case(e_FM_PCD_PLCR_EXCEPTION_PRAM_SELF_INIT_COMPLETE): + tmpReg = GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_ier); + if(enable) + tmpReg |= FM_PCD_PLCR_PRAM_SELF_INIT_COMPLETE; + else + tmpReg &= ~FM_PCD_PLCR_PRAM_SELF_INIT_COMPLETE; + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_ier, tmpReg); + break; + case(e_FM_PCD_PLCR_EXCEPTION_ATOMIC_ACTION_COMPLETE): + tmpReg = GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_ier); + if(enable) + tmpReg |= FM_PCD_PLCR_ATOMIC_ACTION_COMPLETE; + else + tmpReg &= ~FM_PCD_PLCR_ATOMIC_ACTION_COMPLETE; + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_ier, tmpReg); + break; + default: + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Unsupported exception")); + } + /* for ECC exceptions driver automatically enables ECC mechanism, if disabled. + Driver may disable them automatically, depending on driver's status */ + if(enable && ( (exception == e_FM_PCD_KG_EXCEPTION_DOUBLE_ECC) | + (exception == e_FM_PCD_PLCR_EXCEPTION_DOUBLE_ECC) | + (exception == e_FM_PCD_PRS_EXCEPTION_DOUBLE_ECC) | + (exception == e_FM_PCD_PRS_EXCEPTION_SINGLE_ECC))) + FmEnableRamsEcc(p_FmPcd->h_Fm); + if(!enable && ( (exception == e_FM_PCD_KG_EXCEPTION_DOUBLE_ECC) | + (exception == e_FM_PCD_PLCR_EXCEPTION_DOUBLE_ECC) | + (exception == e_FM_PCD_PRS_EXCEPTION_DOUBLE_ECC) | + (exception == e_FM_PCD_PRS_EXCEPTION_SINGLE_ECC))) + FmDisableRamsEcc(p_FmPcd->h_Fm); + } + else + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Undefined exception")); + + return E_OK; +} + +t_Error FM_PCD_ForceIntr (t_Handle h_FmPcd, e_FmPcdExceptions exception) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + SANITY_CHECK_RETURN_ERROR(h_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE); + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("FM_PCD_ForceIntr - guest mode!")); + + switch(exception) + { + case(e_FM_PCD_KG_EXCEPTION_DOUBLE_ECC): + case(e_FM_PCD_KG_EXCEPTION_KEYSIZE_OVERFLOW): + if(!p_FmPcd->p_FmPcdKg) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Can't ask for this interrupt - keygen is not working")); + break; + case(e_FM_PCD_PLCR_EXCEPTION_DOUBLE_ECC): + case(e_FM_PCD_PLCR_EXCEPTION_INIT_ENTRY_ERROR): + case(e_FM_PCD_PLCR_EXCEPTION_PRAM_SELF_INIT_COMPLETE): + case(e_FM_PCD_PLCR_EXCEPTION_ATOMIC_ACTION_COMPLETE): + if(!p_FmPcd->p_FmPcdPlcr) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Can't ask for this interrupt - policer is not working")); + break; + case(e_FM_PCD_PRS_EXCEPTION_DOUBLE_ECC): + case(e_FM_PCD_PRS_EXCEPTION_SINGLE_ECC): + if(!p_FmPcd->p_FmPcdPrs) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Can't ask for this interrupt -parsrer is not working")); + break; + default: + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Invalid interrupt requested")); + + } + switch(exception) + { + case e_FM_PCD_PRS_EXCEPTION_DOUBLE_ECC: + if (!(p_FmPcd->exceptions & FM_PCD_EX_PRS_DOUBLE_ECC)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("The selected exception is masked")); + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->perfr, FM_PCD_PRS_DOUBLE_ECC); + break; + case e_FM_PCD_PRS_EXCEPTION_SINGLE_ECC: + if (!(p_FmPcd->exceptions & FM_PCD_EX_PRS_SINGLE_ECC)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("The selected exception is masked")); + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->pevfr, FM_PCD_PRS_SINGLE_ECC); + break; + case e_FM_PCD_KG_EXCEPTION_DOUBLE_ECC: + if (!(p_FmPcd->exceptions & FM_PCD_EX_KG_DOUBLE_ECC)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("The selected exception is masked")); + WRITE_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->kgfeer, FM_PCD_KG_DOUBLE_ECC); + break; + case e_FM_PCD_KG_EXCEPTION_KEYSIZE_OVERFLOW: + if (!(p_FmPcd->exceptions & FM_PCD_EX_KG_KEYSIZE_OVERFLOW)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("The selected exception is masked")); + WRITE_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->kgfeer, FM_PCD_KG_KEYSIZE_OVERFLOW); + break; + case e_FM_PCD_PLCR_EXCEPTION_DOUBLE_ECC: + if (!(p_FmPcd->exceptions & FM_PCD_EX_PLCR_DOUBLE_ECC)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("The selected exception is masked")); + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_eifr, FM_PCD_PLCR_DOUBLE_ECC); + break; + case e_FM_PCD_PLCR_EXCEPTION_INIT_ENTRY_ERROR: + if (!(p_FmPcd->exceptions & FM_PCD_EX_PLCR_INIT_ENTRY_ERROR)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("The selected exception is masked")); + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_eifr, FM_PCD_PLCR_INIT_ENTRY_ERROR); + break; + case e_FM_PCD_PLCR_EXCEPTION_PRAM_SELF_INIT_COMPLETE: + if (!(p_FmPcd->exceptions & FM_PCD_EX_PLCR_PRAM_SELF_INIT_COMPLETE)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("The selected exception is masked")); + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_ifr, FM_PCD_PLCR_PRAM_SELF_INIT_COMPLETE); + break; + case e_FM_PCD_PLCR_EXCEPTION_ATOMIC_ACTION_COMPLETE: + if (!(p_FmPcd->exceptions & FM_PCD_EX_PLCR_ATOMIC_ACTION_COMPLETE)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("The selected exception is masked")); + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_ifr, FM_PCD_PLCR_ATOMIC_ACTION_COMPLETE); + break; + default: + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("The selected exception may not be forced")); + } + + return E_OK; +} + + +t_Error FM_PCD_ModifyCounter(t_Handle h_FmPcd, e_FmPcdCounters counter, uint32_t value) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + SANITY_CHECK_RETURN_ERROR(h_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE); + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("FM_PCD_ModifyCounter - guest mode!")); + + switch(counter) + { + case(e_FM_PCD_KG_COUNTERS_TOTAL): + if(!p_FmPcd->p_FmPcdKg) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Can't ask for this counters - keygen is not working")); + break; + case(e_FM_PCD_PLCR_COUNTERS_YELLOW): + case(e_FM_PCD_PLCR_COUNTERS_RED): + case(e_FM_PCD_PLCR_COUNTERS_RECOLORED_TO_RED): + case(e_FM_PCD_PLCR_COUNTERS_RECOLORED_TO_YELLOW): + case(e_FM_PCD_PLCR_COUNTERS_TOTAL): + case(e_FM_PCD_PLCR_COUNTERS_LENGTH_MISMATCH): + if(!p_FmPcd->p_FmPcdPlcr) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Can't ask for this counters - Policer is not working")); + if(!(GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_gcr) & FM_PCD_PLCR_GCR_STEN)) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Requested counter was not enabled")); + break; + case(e_FM_PCD_PRS_COUNTERS_PARSE_DISPATCH): + case(e_FM_PCD_PRS_COUNTERS_L2_PARSE_RESULT_RETURNED): + case(e_FM_PCD_PRS_COUNTERS_L3_PARSE_RESULT_RETURNED): + case(e_FM_PCD_PRS_COUNTERS_L4_PARSE_RESULT_RETURNED): + case(e_FM_PCD_PRS_COUNTERS_SHIM_PARSE_RESULT_RETURNED): + case(e_FM_PCD_PRS_COUNTERS_L2_PARSE_RESULT_RETURNED_WITH_ERR): + case(e_FM_PCD_PRS_COUNTERS_L3_PARSE_RESULT_RETURNED_WITH_ERR): + case(e_FM_PCD_PRS_COUNTERS_L4_PARSE_RESULT_RETURNED_WITH_ERR): + case(e_FM_PCD_PRS_COUNTERS_SHIM_PARSE_RESULT_RETURNED_WITH_ERR): + case(e_FM_PCD_PRS_COUNTERS_SOFT_PRS_CYCLES): + case(e_FM_PCD_PRS_COUNTERS_SOFT_PRS_STALL_CYCLES): + case(e_FM_PCD_PRS_COUNTERS_HARD_PRS_CYCLE_INCL_STALL_CYCLES): + case(e_FM_PCD_PRS_COUNTERS_MURAM_READ_CYCLES): + case(e_FM_PCD_PRS_COUNTERS_MURAM_READ_STALL_CYCLES): + case(e_FM_PCD_PRS_COUNTERS_MURAM_WRITE_CYCLES): + case(e_FM_PCD_PRS_COUNTERS_MURAM_WRITE_STALL_CYCLES): + case(e_FM_PCD_PRS_COUNTERS_FPM_COMMAND_STALL_CYCLES): + if(!p_FmPcd->p_FmPcdPrs) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Unsupported type of counter")); + break; + default: + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Unsupported type of counter")); + } + switch(counter) + { + case(e_FM_PCD_PRS_COUNTERS_PARSE_DISPATCH): + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->pds, value); + break; + case(e_FM_PCD_PRS_COUNTERS_L2_PARSE_RESULT_RETURNED): + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->l2rrs, value); + break; + case(e_FM_PCD_PRS_COUNTERS_L3_PARSE_RESULT_RETURNED): + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->l3rrs, value); + break; + case(e_FM_PCD_PRS_COUNTERS_L4_PARSE_RESULT_RETURNED): + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->l4rrs, value); + break; + case(e_FM_PCD_PRS_COUNTERS_SHIM_PARSE_RESULT_RETURNED): + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->srrs, value); + break; + case(e_FM_PCD_PRS_COUNTERS_L2_PARSE_RESULT_RETURNED_WITH_ERR): + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->l2rres, value); + break; + case(e_FM_PCD_PRS_COUNTERS_L3_PARSE_RESULT_RETURNED_WITH_ERR): + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->l3rres, value); + break; + case(e_FM_PCD_PRS_COUNTERS_L4_PARSE_RESULT_RETURNED_WITH_ERR): + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->l4rres, value); + break; + case(e_FM_PCD_PRS_COUNTERS_SHIM_PARSE_RESULT_RETURNED_WITH_ERR): + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->srres, value); + break; + case(e_FM_PCD_PRS_COUNTERS_SOFT_PRS_CYCLES): + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->spcs, value); + break; + case(e_FM_PCD_PRS_COUNTERS_SOFT_PRS_STALL_CYCLES): + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->spscs, value); + break; + case(e_FM_PCD_PRS_COUNTERS_HARD_PRS_CYCLE_INCL_STALL_CYCLES): + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->hxscs, value); + break; + case(e_FM_PCD_PRS_COUNTERS_MURAM_READ_CYCLES): + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->mrcs, value); + break; + case(e_FM_PCD_PRS_COUNTERS_MURAM_READ_STALL_CYCLES): + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->mrscs, value); + break; + case(e_FM_PCD_PRS_COUNTERS_MURAM_WRITE_CYCLES): + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->mwcs, value); + break; + case(e_FM_PCD_PRS_COUNTERS_MURAM_WRITE_STALL_CYCLES): + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->mwscs, value); + break; + case(e_FM_PCD_PRS_COUNTERS_FPM_COMMAND_STALL_CYCLES): + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->fcscs, value); + break; + case(e_FM_PCD_KG_COUNTERS_TOTAL): + WRITE_UINT32(p_FmPcd->p_FmPcdKg->p_FmPcdKgRegs->kgtpc,value); + break; + + /*Policer counters*/ + case(e_FM_PCD_PLCR_COUNTERS_YELLOW): + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_ypcnt, value); + break; + case(e_FM_PCD_PLCR_COUNTERS_RED): + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_rpcnt, value); + break; + case(e_FM_PCD_PLCR_COUNTERS_RECOLORED_TO_RED): + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_rrpcnt, value); + break; + case(e_FM_PCD_PLCR_COUNTERS_RECOLORED_TO_YELLOW): + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_rypcnt, value); + break; + case(e_FM_PCD_PLCR_COUNTERS_TOTAL): + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_tpcnt, value); + break; + case(e_FM_PCD_PLCR_COUNTERS_LENGTH_MISMATCH): + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_flmcnt, value); + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Unsupported type of counter")); + } + +return E_OK; +} + --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/Pcd/fm_pcd.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/Pcd/fm_pcd.h @@ -0,0 +1,715 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fm_pcd.h + + @Description FM PCD ... +*//***************************************************************************/ +#ifndef __FM_PCD_H +#define __FM_PCD_H + +#include "std_ext.h" +#include "error_ext.h" +#include "list_ext.h" +#include "fm_pcd_ext.h" + + +#define __ERR_MODULE__ MODULE_FM_PCD + + +/**************************************************************************//** + @Group FM_PCD_Runtime_grp FM PCD Runtime Unit + @{ +*//***************************************************************************/ + +/****************************/ +/* Network defines */ +/****************************/ +#define UDP_HEADER_SIZE 8 + +#define ESP_SPI_OFFSET 0 +#define ESP_SPI_SIZE 4 +#define ESP_SEQ_NUM_OFFSET ESP_SPI_SIZE +#define ESP_SEQ_NUM_SIZE 4 + +/****************************/ +/* General defines */ +/****************************/ +#define ILLEGAL_CLS_PLAN 0xff +#define ILLEGAL_NETENV 0xff +/****************************/ +/* Error defines */ +/****************************/ +#define FM_PCD_EX_KG_DOUBLE_ECC 0x80000000 +#define FM_PCD_EX_KG_KEYSIZE_OVERFLOW 0x40000000 + +#define FM_PCD_EX_PLCR_DOUBLE_ECC 0x20000000 +#define FM_PCD_EX_PLCR_INIT_ENTRY_ERROR 0x10000000 +#define FM_PCD_EX_PLCR_PRAM_SELF_INIT_COMPLETE 0x08000000 +#define FM_PCD_EX_PLCR_ATOMIC_ACTION_COMPLETE 0x04000000 + +#define FM_PCD_EX_PRS_DOUBLE_ECC 0x02000000 +#define FM_PCD_EX_PRS_SINGLE_ECC 0x01000000 + +#define GET_FM_PCD_EXCEPTION_FLAG(bitMask, exception) \ +switch(exception){ \ + case e_FM_PCD_KG_EXCEPTION_DOUBLE_ECC: \ + bitMask = FM_PCD_EX_KG_DOUBLE_ECC; break; \ + case e_FM_PCD_PLCR_EXCEPTION_DOUBLE_ECC: \ + bitMask = FM_PCD_EX_PLCR_DOUBLE_ECC; break; \ + case e_FM_PCD_KG_EXCEPTION_KEYSIZE_OVERFLOW: \ + bitMask = FM_PCD_EX_KG_KEYSIZE_OVERFLOW; break; \ + case e_FM_PCD_PLCR_EXCEPTION_INIT_ENTRY_ERROR: \ + bitMask = FM_PCD_EX_PLCR_INIT_ENTRY_ERROR; break; \ + case e_FM_PCD_PLCR_EXCEPTION_PRAM_SELF_INIT_COMPLETE: \ + bitMask = FM_PCD_EX_PLCR_PRAM_SELF_INIT_COMPLETE; break; \ + case e_FM_PCD_PLCR_EXCEPTION_ATOMIC_ACTION_COMPLETE: \ + bitMask = FM_PCD_EX_PLCR_ATOMIC_ACTION_COMPLETE; break; \ + case e_FM_PCD_PRS_EXCEPTION_DOUBLE_ECC: \ + bitMask = FM_PCD_EX_PRS_DOUBLE_ECC; break; \ + case e_FM_PCD_PRS_EXCEPTION_SINGLE_ECC: \ + bitMask = FM_PCD_EX_PRS_SINGLE_ECC; break; \ + default: bitMask = 0;break;} + +/***********************************************************************/ +/* SW parser L4 shells patch */ +/***********************************************************************/ +#ifdef FM_PRS_L4_SHELL_ERRATA_FMANb +#define SW_PRS_L4_PATCH \ +{ 0x31,0x92,0x02,0x1f,0x00,0x32,0x00,0x78, \ + 0x00,0x34,0x32,0xf0,0x00,0x50,0x00,0x0c, \ + 0x28,0x5e,0x83,0x8e,0x29,0x32,0xaf,0x8e, \ + 0x31,0xb2,0x9f,0xff,0x00,0x06,0xaf,0xbf, \ + 0x00,0x06,0x29,0x36,0x00,0x01,0x1b,0xff, \ + 0x32,0xf0,0x00,0x50,0x00,0x08,0x28,0x5e, \ + 0x08,0x99,0x00,0x00,0x9f,0x8e,0x31,0xb2, \ + 0x9f,0xff,0x00,0x06,0x29,0x36,0x00,0x01, \ + 0x1b,0xff,0x32,0xf0,0x00,0x50,0x00,0x04, \ + 0x28,0x5e,0x8f,0x9e,0x29,0x32,0x31,0xb2, \ + 0x8f,0xbf,0x00,0x06,0x29,0x36,0x00,0x01, \ + 0x1b,0xff,0x32,0xf0,0x00,0x50,0x00,0x04, \ + 0x28,0x5e,0x8f,0x9e,0x29,0x32,0x31,0xb2, \ + 0x8f,0xbf,0x00,0x06,0x29,0x36,0x00,0x01, \ + 0x1b,0xff,0x00,0x00,0x00,0x00,0x00,0x00}; + +#define SW_PRS_L4_PATCH_SIZE 120 +#endif /* FM_PRS_L4_SHELL_ERRATA_FMANb */ + +/****************************/ +/* Parser defines */ +/****************************/ +/* masks */ +#define PRS_ERR_CAP 0x80000000 +#define PRS_ERR_TYPE_DOUBLE 0x40000000 +#define PRS_ERR_SINGLE_ECC_CNT_MASK 0x00FF0000 +#define PRS_ERR_ADDR_MASK 0x000001FF +#define FM_PCD_PRS_RPIMAC_EN 0x00000001 +#define FM_PCD_PRS_SINGLE_ECC 0x00004000 +#define FM_PCD_PRS_PORT_IDLE_STS 0xffff0000 +#define FM_PCD_PRS_DOUBLE_ECC 0x00004000 +#define FM_PCD_PRS_PPSC_ALL_PORTS 0xffff0000 + +/* others */ +#define PRS_MAX_CYCLE_LIMIT 8191 +#define PRS_SW_DATA 0x00000800 +#define PRS_REGS_OFFSET 0x00000840 + +#define GET_FM_PCD_PRS_PORT_ID(prsPortId,hardwarePortId) \ + prsPortId = (uint8_t)(hardwarePortId & 0x0f) + +#define GET_FM_PCD_INDEX_FLAG(bitMask, prsPortId) \ + bitMask = 0x80000000>>prsPortId + +/***********************************************************************/ +/* Keygen defines */ +/***********************************************************************/ +/* Masks */ +#define FM_PCD_KG_KGGCR_EN 0x80000000 +#define KG_SCH_GEN_VALID 0x80000000 +#define KG_SCH_GEN_EXTRACT_TYPE 0x00008000 +#define KG_ERR_CAP 0x80000000 +#define KG_ERR_TYPE_DOUBLE 0x40000000 +#define KG_ERR_ADDR_MASK 0x00000FFF +#define FM_PCD_KG_DOUBLE_ECC 0x80000000 +#define FM_PCD_KG_KEYSIZE_OVERFLOW 0x40000000 +#define KG_SCH_MODE_EN 0x80000000 + +/* shifts */ +#define FM_PCD_KG_PE_CPP_MASK_SHIFT 16 +#define FM_PCD_KG_KGAR_WSEL_SHIFT 8 + +/* others */ +#define KG_DOUBLE_MEANING_REGS_OFFSET 0x100 +#define NO_VALIDATION 0x70 +#define KG_ACTION_REG_TO 1024 +#define KG_MAX_PROFILE 255 +#define SCHEME_ALWAYS_DIRECT 0xFFFFFFFF + +typedef struct { + bool known; + uint8_t id; +} t_FmPcdKgSchemesExtractsEntry; + +typedef struct { + t_FmPcdKgSchemesExtractsEntry extractsArray[FM_PCD_KG_MAX_NUM_OF_EXTRACTS_PER_KEY]; +} t_FmPcdKgSchemesExtracts; + +/***********************************************************************/ +/* Policer defines */ +/***********************************************************************/ + +/* masks */ +#define FM_PCD_PLCR_PEMODE_PI 0x80000000 +#define FM_PCD_PLCR_PEMODE_CBLND 0x40000000 +#define FM_PCD_PLCR_PEMODE_ALG_MASK 0x30000000 +#define FM_PCD_PLCR_PEMODE_ALG_RFC2698 0x10000000 +#define FM_PCD_PLCR_PEMODE_ALG_RFC4115 0x20000000 +#define FM_PCD_PLCR_PEMODE_DEFC_MASK 0x0C000000 +#define FM_PCD_PLCR_PEMODE_DEFC_Y 0x04000000 +#define FM_PCD_PLCR_PEMODE_DEFC_R 0x08000000 +#define FM_PCD_PLCR_PEMODE_DEFC_OVERRIDE 0x0C000000 +#define FM_PCD_PLCR_PEMODE_OVCLR_MASK 0x03000000 +#define FM_PCD_PLCR_PEMODE_OVCLR_Y 0x01000000 +#define FM_PCD_PLCR_PEMODE_OVCLR_R 0x02000000 +#define FM_PCD_PLCR_PEMODE_OVCLR_G_NC 0x03000000 +#define FM_PCD_PLCR_PEMODE_PKT 0x00800000 +#define FM_PCD_PLCR_PEMODE_FPP_MASK 0x001F0000 +#define FM_PCD_PLCR_PEMODE_FPP_SHIFT 16 +#define FM_PCD_PLCR_PEMODE_FLS_MASK 0x0000F000 +#define FM_PCD_PLCR_PEMODE_FLS_L2 0x00003000 +#define FM_PCD_PLCR_PEMODE_FLS_L3 0x0000B000 +#define FM_PCD_PLCR_PEMODE_FLS_L4 0x0000E000 +#define FM_PCD_PLCR_PEMODE_FLS_FULL 0x0000F000 +#define FM_PCD_PLCR_PEMODE_RBFLS 0x00000800 +#define FM_PCD_PLCR_PEMODE_TRA 0x00000004 +#define FM_PCD_PLCR_PEMODE_TRB 0x00000002 +#define FM_PCD_PLCR_PEMODE_TRC 0x00000001 +#define FM_PCD_PLCR_DOUBLE_ECC 0x80000000 +#define FM_PCD_PLCR_INIT_ENTRY_ERROR 0x40000000 +#define FM_PCD_PLCR_PRAM_SELF_INIT_COMPLETE 0x80000000 +#define FM_PCD_PLCR_ATOMIC_ACTION_COMPLETE 0x40000000 + +#define FM_PCD_PLCR_NIA_VALID 0x80000000 + +#define FM_PCD_PLCR_GCR_EN 0x80000000 +#define FM_PCD_PLCR_GCR_STEN 0x40000000 +#define FM_PCD_PLCR_GCR_DAR 0x20000000 +#define FM_PCD_PLCR_GCR_DEFNIA 0x00FFFFFF +#define FM_PCD_PLCR_NIA_ABS 0x00000100 + +#define FM_PCD_PLCR_GSR_BSY 0x80000000 +#define FM_PCD_PLCR_GSR_DQS 0x60000000 +#define FM_PCD_PLCR_GSR_RPB 0x20000000 +#define FM_PCD_PLCR_GSR_FQS 0x0C000000 +#define FM_PCD_PLCR_GSR_LPALG 0x0000C000 +#define FM_PCD_PLCR_GSR_LPCA 0x00003000 +#define FM_PCD_PLCR_GSR_LPNUM 0x000000FF + +#define FM_PCD_PLCR_EVR_PSIC 0x80000000 +#define FM_PCD_PLCR_EVR_AAC 0x40000000 + +#define FM_PCD_PLCR_PAR_PSI 0x20000000 +#define FM_PCD_PLCR_PAR_PNUM 0x00FF0000 +/* PWSEL Selctive select options */ +#define FM_PCD_PLCR_PAR_PWSEL_PEMODE 0x00008000 /* 0 */ +#define FM_PCD_PLCR_PAR_PWSEL_PEGNIA 0x00004000 /* 1 */ +#define FM_PCD_PLCR_PAR_PWSEL_PEYNIA 0x00002000 /* 2 */ +#define FM_PCD_PLCR_PAR_PWSEL_PERNIA 0x00001000 /* 3 */ +#define FM_PCD_PLCR_PAR_PWSEL_PECIR 0x00000800 /* 4 */ +#define FM_PCD_PLCR_PAR_PWSEL_PECBS 0x00000400 /* 5 */ +#define FM_PCD_PLCR_PAR_PWSEL_PEPIR_EIR 0x00000200 /* 6 */ +#define FM_PCD_PLCR_PAR_PWSEL_PEPBS_EBS 0x00000100 /* 7 */ +#define FM_PCD_PLCR_PAR_PWSEL_PELTS 0x00000080 /* 8 */ +#define FM_PCD_PLCR_PAR_PWSEL_PECTS 0x00000040 /* 9 */ +#define FM_PCD_PLCR_PAR_PWSEL_PEPTS_ETS 0x00000020 /* 10 */ +#define FM_PCD_PLCR_PAR_PWSEL_PEGPC 0x00000010 /* 11 */ +#define FM_PCD_PLCR_PAR_PWSEL_PEYPC 0x00000008 /* 12 */ +#define FM_PCD_PLCR_PAR_PWSEL_PERPC 0x00000004 /* 13 */ +#define FM_PCD_PLCR_PAR_PWSEL_PERYPC 0x00000002 /* 14 */ +#define FM_PCD_PLCR_PAR_PWSEL_PERRPC 0x00000001 /* 15 */ + +#define FM_PCD_PLCR_PAR_PMR_BRN_1TO1 0x0000 /* - Full bit replacement. {PBNUM[0:N-1] + 1-> 2^N specific locations. */ +#define FM_PCD_PLCR_PAR_PMR_BRN_2TO2 0x1 /* - {PBNUM[0:N-2],PNUM[N-1]}. + 2-> 2^(N-1) base locations. */ +#define FM_PCD_PLCR_PAR_PMR_BRN_4TO4 0x2 /* - {PBNUM[0:N-3],PNUM[N-2:N-1]}. + 4-> 2^(N-2) base locations. */ +#define FM_PCD_PLCR_PAR_PMR_BRN_8TO8 0x3 /* - {PBNUM[0:N-4],PNUM[N-3:N-1]}. + 8->2^(N-3) base locations. */ +#define FM_PCD_PLCR_PAR_PMR_BRN_16TO16 0x4 /* - {PBNUM[0:N-5],PNUM[N-4:N-1]}. + 16-> 2^(N-4) base locations. */ +#define FM_PCD_PLCR_PAR_PMR_BRN_32TO32 0x5 /* {PBNUM[0:N-6],PNUM[N-5:N-1]}. + 32-> 2^(N-5) base locations. */ +#define FM_PCD_PLCR_PAR_PMR_BRN_64TO64 0x6 /* {PBNUM[0:N-7],PNUM[N-6:N-1]}. + 64-> 2^(N-6) base locations. */ +#define FM_PCD_PLCR_PAR_PMR_BRN_128TO128 0x7 /* {PBNUM[0:N-8],PNUM[N-7:N-1]}. + 128-> 2^(N-7) base locations. */ +#define FM_PCD_PLCR_PAR_PMR_BRN_256TO256 0x8 /* - No bit replacement for N=8. {PNUM[N-8:N-1]}. + When N=8 this option maps all 256 profiles by the DISPATCH bus into one group. */ + +#define FM_PCD_PLCR_PMR_V 0x80000000 +#define PLCR_ERR_ECC_CAP 0x80000000 +#define PLCR_ERR_ECC_TYPE_DOUBLE 0x40000000 +#define PLCR_ERR_ECC_PNUM_MASK 0x00000FF0 +#define PLCR_ERR_ECC_OFFSET_MASK 0x0000000F + +#define PLCR_ERR_UNINIT_CAP 0x80000000 +#define PLCR_ERR_UNINIT_NUM_MASK 0x000000FF +#define PLCR_ERR_UNINIT_PID_MASK 0x003f0000 +#define PLCR_ERR_UNINIT_ABSOLUTE_MASK 0x00008000 + +/* shifts */ +#define PLCR_ERR_ECC_PNUM_SHIFT 4 +#define PLCR_ERR_UNINIT_PID_SHIFT 16 + +#define FM_PCD_PLCR_PMR_BRN_SHIFT 16 + +/* others */ +#define WAIT_FOR_PLCR_EVR_AAC \ +{\ + uint32_t count = 0; \ + uint32_t tmpReg32; \ + while (count < FM_PCD_PLCR_POLL) \ + { \ + tmpReg32 = GET_UINT32(p_FmPcdPlcrRegs->fmpl_evr);\ + if (!( tmpReg32 & FM_PCD_PLCR_EVR_AAC)) break;\ + count++;\ + }\ +} + +#define WAIT_FOR_PLCR_PAR_GO \ +{\ + uint32_t count = 0; \ + uint32_t tmpReg32; \ + while (count < FM_PCD_PLCR_POLL) \ + { \ + tmpReg32 = GET_UINT32(p_FmPcdPlcrRegs->fmpl_par);\ + if (!( tmpReg32 & FM_PCD_PLCR_PAR_GO)) break;\ + count++; \ + }\ +} + +#define PLCR_PORT_WINDOW_SIZE(hardwarePortId) + +/****************************/ +/* Defaults */ +/****************************/ +#define DEFAULT_plcrAutoRefresh FALSE +#define DEFAULT_prsMaxParseCycleLimit 0 +#define DEFAULT_fmPcdKgErrorExceptions (FM_PCD_EX_KG_DOUBLE_ECC | FM_PCD_EX_KG_KEYSIZE_OVERFLOW) +#define DEFAULT_fmPcdPlcrErrorExceptions (FM_PCD_EX_PLCR_DOUBLE_ECC | FM_PCD_EX_PLCR_INIT_ENTRY_ERROR) +#define DEFAULT_fmPcdPlcrExceptions 0 +#define DEFAULT_fmPcdPrsErrorExceptions (FM_PCD_EX_PRS_DOUBLE_ECC) + +#define DEFAULT_fmPcdPrsExceptions FM_PCD_EX_PRS_SINGLE_ECC +#define DEFAULT_numOfUsedProfilesPerWindow 16 +#define DEFAULT_numOfSharedPlcrProfiles 4 + +/***********************************************************************/ +/* Memory map */ +/***********************************************************************/ +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(push,1) +#endif /* defined(__MWERKS__) && ... */ +#define MEM_MAP_START + +typedef _Packed struct { + volatile uint32_t kgoe_sp; + volatile uint32_t kgoe_cpp; +} _PackedType t_FmPcdKgPortConfigRegs; + +typedef _Packed struct { + volatile uint32_t kgcpe[8]; +} _PackedType t_FmPcdKgClsPlanRegs; + +typedef _Packed union { + t_FmPcdKgInterModuleSchemeRegs schemeRegs; + t_FmPcdKgPortConfigRegs portRegs; + t_FmPcdKgClsPlanRegs clsPlanRegs; +} _PackedType u_FmPcdKgIndirectAccessRegs; + +typedef _Packed struct { + volatile uint32_t kggcr; + volatile uint32_t res0; + volatile uint32_t res1; + volatile uint32_t kgeer; + volatile uint32_t kgeeer; + volatile uint32_t res2; + volatile uint32_t res3; + volatile uint32_t kgseer; + volatile uint32_t kgseeer; + volatile uint32_t kggsr; + volatile uint32_t kgtpc; + volatile uint32_t kgserc; + volatile uint32_t res4[4]; + volatile uint32_t kgfdor; + volatile uint32_t kggdv0r; + volatile uint32_t kggdv1r; + volatile uint32_t res5[5]; + volatile uint32_t kgfer; + volatile uint32_t kgfeer; + volatile uint32_t res6[38]; + u_FmPcdKgIndirectAccessRegs indirectAccessRegs; + volatile uint32_t res[42]; /*(0xfc-sizeof(u_FmPcdKgIndirectAccessRegs))/4 */ + volatile uint32_t kgar; +} _PackedType t_FmPcdKgRegs; + +typedef _Packed struct { +/* General Configuration and Status Registers */ + volatile uint32_t fmpl_gcr; /* 0x000 FMPL_GCR - FM Policer General Configuration */ + volatile uint32_t fmpl_gsr; /* 0x004 FMPL_GSR - FM Policer Global Status Register */ + volatile uint32_t fmpl_evr; /* 0x008 FMPL_EVR - FM Policer Event Register */ + volatile uint32_t fmpl_ier; /* 0x00C FMPL_IER - FM Policer Interrupt Enable Register */ + volatile uint32_t fmpl_ifr; /* 0x010 FMPL_IFR - FM Policer Interrupt Force Register */ + volatile uint32_t fmpl_eevr; /* 0x014 FMPL_EEVR - FM Policer Error Event Register */ + volatile uint32_t fmpl_eier; /* 0x018 FMPL_EIER - FM Policer Error Interrupt Enable Register */ + volatile uint32_t fmpl_eifr; /* 0x01C FMPL_EIFR - FM Policer Error Interrupt Force Register */ +/* Global Statistic Counters */ + volatile uint32_t fmpl_rpcnt; /* 0x020 FMPL_RPC - FM Policer RED Packets Counter */ + volatile uint32_t fmpl_ypcnt; /* 0x024 FMPL_YPC - FM Policer YELLOW Packets Counter */ + volatile uint32_t fmpl_rrpcnt; /* 0x028 FMPL_RRPC - FM Policer Recolored RED Packet Counter */ + volatile uint32_t fmpl_rypcnt; /* 0x02C FMPL_RYPC - FM Policer Recolored YELLOW Packet Counter */ + volatile uint32_t fmpl_tpcnt; /* 0x030 FMPL_TPC - FM Policer Total Packet Counter */ + volatile uint32_t fmpl_flmcnt; /* 0x034 FMPL_FLMC - FM Policer Frame Length Mismatch Counter */ + volatile uint32_t fmpl_res0[21]; /* 0x038 - 0x08B Reserved */ +/* Profile RAM Access Registers */ + volatile uint32_t fmpl_par; /* 0x08C FMPL_PAR - FM Policer Profile Action Register*/ + t_FmPcdPlcrInterModuleProfileRegs profileRegs; +/* Error Capture Registers */ + volatile uint32_t fmpl_serc; /* 0x100 FMPL_SERC - FM Policer Soft Error Capture */ + volatile uint32_t fmpl_upcr; /* 0x104 FMPL_UPCR - FM Policer Uninitialized Profile Capture Register */ + volatile uint32_t fmpl_res2; /* 0x108 Reserved */ +/* Debug Registers */ + volatile uint32_t fmpl_res3[61]; /* 0x10C-0x200 Reserved Debug*/ +/* Profile Selection Mapping Registers Per Port-ID (n=1-11, 16) */ + volatile uint32_t fmpl_dpmr; /* 0x200 FMPL_DPMR - FM Policer Default Mapping Register */ + volatile uint32_t fmpl_pmr[63]; /*+default 0x204-0x2FF FMPL_PMR1 - FMPL_PMR63, - FM Policer Profile Mapping Registers. + (for port-ID 1-11, only for supported Port-ID registers) */ +} _PackedType t_FmPcdPlcrRegs; + +typedef _Packed struct { + volatile uint32_t rpclim; + volatile uint32_t rpimac; + volatile uint32_t pmeec; + volatile uint32_t res1[5]; + volatile uint32_t pevr; + volatile uint32_t pever; + volatile uint32_t pevfr; + volatile uint32_t perr; + volatile uint32_t perer; + volatile uint32_t perfr; + volatile uint32_t res2[0xA]; + volatile uint32_t ppsc; + volatile uint32_t res3; + volatile uint32_t pds; + volatile uint32_t l2rrs; + volatile uint32_t l3rrs; + volatile uint32_t l4rrs; + volatile uint32_t srrs; + volatile uint32_t l2rres; + volatile uint32_t l3rres; + volatile uint32_t l4rres; + volatile uint32_t srres; + volatile uint32_t spcs; + volatile uint32_t spscs; + volatile uint32_t hxscs; + volatile uint32_t mrcs; + volatile uint32_t mwcs; + volatile uint32_t mrscs; + volatile uint32_t mwscs; + volatile uint32_t fcscs; +} _PackedType t_FmPcdPrsRegs; + +#define MEM_MAP_END +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(pop) +#endif /* defined(__MWERKS__) && ... */ + + +/***********************************************************************/ +/* Driver's internal structures */ +/***********************************************************************/ + +typedef struct { + t_Handle h_Manip; + bool keepRes; + e_FmPcdEngine nextEngine; + uint8_t parseCode; +} t_FmPcdInfoForManip; + +/**************************************************************************//** + @Description A structure of parameters to communicate + between the port and PCD regarding the KG scheme. +*//***************************************************************************/ +typedef struct { + uint8_t netEnvId; /* in */ + uint8_t numOfDistinctionUnits; /* in */ + uint8_t unitIds[FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS]; /* in */ + uint32_t vector; /* out */ +} t_NetEnvParams; + +typedef struct { + volatile bool lock; + bool used; + uint8_t owners; + uint8_t netEnvId; + uint8_t guestId; + uint8_t baseEntry; + uint16_t sizeOfGrp; + protocolOpt_t optArray[FM_PCD_MAX_NUM_OF_OPTIONS(FM_PCD_MAX_NUM_OF_CLS_PLANS)]; +} t_FmPcdKgClsPlanGrp; + +typedef struct { + volatile bool lock; + bool valid; + uint8_t netEnvId; + uint8_t owners; + uint32_t matchVector; + uint32_t ccUnits; + bool nextRelativePlcrProfile; + uint16_t relativeProfileId; + uint16_t numOfProfiles; + t_FmPcdKgKeyOrder orderedArray; + e_FmPcdEngine nextEngine; + e_FmPcdDoneAction doneAction; + uint8_t pointedOwners; + uint32_t requiredAction; + bool extractedOrs; + uint8_t bitOffsetInPlcrProfile; + bool directPlcr; +} t_FmPcdKgScheme; + +typedef struct { + bool allocated; + uint8_t ownerId; /* guestId for KG in multi-partition only, + portId for PLCR in any environment */ +} t_FmPcdAllocMng; + +typedef struct { + t_FmPcdKgRegs *p_FmPcdKgRegs; + uint32_t schemeExceptionsBitMask; + uint8_t numOfSchemes; + uint8_t schemesIds[FM_PCD_KG_NUM_OF_SCHEMES]; + t_FmPcdKgScheme schemes[FM_PCD_KG_NUM_OF_SCHEMES]; + t_FmPcdKgClsPlanGrp clsPlanGrps[FM_MAX_NUM_OF_PORTS]; + uint8_t emptyClsPlanGrpId; + t_FmPcdAllocMng schemesMng[FM_PCD_KG_NUM_OF_SCHEMES]; /* only for MASTER ! */ + t_FmPcdAllocMng clsPlanBlocksMng[FM_PCD_MAX_NUM_OF_CLS_PLANS/CLS_PLAN_NUM_PER_GRP]; +} t_FmPcdKg; + +typedef struct { + uint16_t profilesBase; + uint16_t numOfProfiles; + t_Handle h_FmPort; +} t_FmPcdPlcrMapParam; + +typedef struct { + bool valid; + volatile bool lock; + t_FmPcdAllocMng profilesMng; + uint8_t pointedOwners; + uint32_t requiredAction; + e_FmPcdEngine nextEngineOnGreen; /**< Green next engine type */ + u_FmPcdPlcrNextEngineParams paramsOnGreen; /**< Green next engine params */ + + e_FmPcdEngine nextEngineOnYellow; /**< Yellow next engine type */ + u_FmPcdPlcrNextEngineParams paramsOnYellow; /**< Yellow next engine params */ + + e_FmPcdEngine nextEngineOnRed; /**< Red next engine type */ + u_FmPcdPlcrNextEngineParams paramsOnRed; /**< Red next engine params */ +} t_FmPcdPlcrProfile; + +typedef struct { + t_FmPcdPlcrRegs *p_FmPcdPlcrRegs; + t_FmPcdPlcrProfile profiles[FM_PCD_PLCR_NUM_ENTRIES]; + uint16_t numOfSharedProfiles; + uint16_t sharedProfilesIds[FM_PCD_PLCR_NUM_ENTRIES]; + t_FmPcdPlcrMapParam portsMapping[FM_MAX_NUM_OF_PORTS]; +} t_FmPcdPlcr; + +typedef struct { + uint32_t *p_SwPrsCode; + uint32_t *p_CurrSwPrs; + uint8_t currLabel; + t_FmPcdPrsRegs *p_FmPcdPrsRegs; + t_FmPcdPrsLabelParams labelsTable[FM_PCD_PRS_NUM_OF_LABELS]; + uint32_t fmPcdPrsPortIdStatistics; +} t_FmPcdPrs; + +typedef struct { + struct { + e_NetHeaderType hdr; + protocolOpt_t opt; /* only one option !! */ + } hdrs[FM_PCD_MAX_NUM_OF_INTERCHANGEABLE_HDRS]; +} t_FmPcdIntDistinctionUnit; + +typedef struct { + e_NetHeaderType hdr; + e_NetHeaderType aliasHdr; +} t_FmPcdNetEnvAliases; + +typedef struct { + volatile bool lock; + bool used; + uint8_t owners; + uint8_t clsPlanGrpId; + t_FmPcdIntDistinctionUnit units[FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS]; + uint32_t unitsVectors[FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS]; + uint32_t lcvs[FM_PCD_PRS_NUM_OF_HDRS]; + uint32_t macsecVector; + t_FmPcdNetEnvAliases aliasHdrs[FM_PCD_MAX_NUM_OF_PRIVATE_HDRS]; +} t_FmPcdNetEnv; + +typedef struct { + bool plcrAutoRefresh; + + uint16_t prsMaxParseCycleLimit; +} t_FmPcdDriverParam; + +typedef struct { + t_Handle h_Fm; + t_Handle h_FmMuram; + uint64_t physicalMuramBase; + volatile bool lock; + t_Handle h_Spinlock; + t_Handle h_IpcSession; /* relevant for guest only */ + bool enabled; + uint8_t guestId; /**< Guest Partition Id */ + uint8_t numOfEnabledGuestPartitionsPcds; + char fmPcdModuleName[MODULE_NAME_SIZE]; + char fmPcdIpcHandlerModuleName[MODULE_NAME_SIZE]; /* relevant for guest only - this is the master's name */ + t_FmPcdNetEnv netEnvs[FM_MAX_NUM_OF_PORTS]; + t_FmPcdKg *p_FmPcdKg; + t_FmPcdPlcr *p_FmPcdPlcr; + t_FmPcdPrs *p_FmPcdPrs; + + t_Handle h_Hc; + + uint32_t exceptions; + t_FmPcdExceptionCallback *f_Exception; + t_FmPcdIdExceptionCallback *f_FmPcdIndexedException; + t_Handle h_App; + + t_FmPcdDriverParam *p_FmPcdDriverParam; +} t_FmPcd; + + +/***********************************************************************/ +/* PCD internal routines */ +/***********************************************************************/ + +/**************************************************************************//** + + @Group FM_PCD_InterModule_grp FM PCD Inter-Module Unit + + @Description FM PCD Inter Module functions - + These are not User API routines but routines that may be called + from other modules. This will be the case in a single core environment, + where instead of useing the XX messeging mechanism, the routines may be + called from other modules. In a multicore environment, the other modules may + be run by other cores and therefor these routines may not be called directly. + + @{ +*//***************************************************************************/ + +t_Error PcdGetVectorForOpt(t_FmPcd *p_FmPcd, uint8_t netEnvId, protocolOpt_t opt, uint32_t *p_Vector); +t_Error PcdGetUnitsVector(t_FmPcd *p_FmPcd, t_NetEnvParams *p_Params); +bool PcdNetEnvIsUnitWithoutOpts(t_FmPcd *p_FmPcd, uint8_t netEnvId, uint32_t unitVector); +t_Error PcdGetClsPlanGrpParams(t_FmPcd *p_FmPcd, t_FmPcdKgInterModuleClsPlanGrpParams *p_GrpParams); +void FmPcdSetClsPlanGrpId(t_FmPcd *p_FmPcd, uint8_t netEnvId, uint8_t clsPlanGrpId); +e_NetHeaderType FmPcdGetAliasHdr(t_FmPcd *p_FmPcd, uint8_t netEnvId, e_NetHeaderType hdr); +uint8_t FmPcdNetEnvGetUnitIdForSingleHdr(t_Handle h_FmPcd, uint8_t netEnvId, e_NetHeaderType hdr); + +t_Handle KgConfig( t_FmPcd *p_FmPcd, t_FmPcdParams *p_FmPcdParams); +t_Error KgInit(t_FmPcd *p_FmPcd); +t_Error KgFree(t_FmPcd *p_FmPcd); +void KgSetClsPlan(t_Handle h_FmPcd, t_FmPcdKgInterModuleClsPlanSet *p_Set); +bool KgIsSchemeAlwaysDirect(t_Handle h_FmPcd, uint8_t schemeId); +void KgEnable(t_FmPcd *p_FmPcd); +void KgDisable(t_FmPcd *p_FmPcd); +t_Error KgAllocClsPlanEntries(t_Handle h_FmPcd, uint16_t numOfClsPlanEntries, uint8_t guestId, uint8_t *p_First); +void KgFreeClsPlanEntries(t_Handle h_FmPcd, uint16_t numOfClsPlanEntries, uint8_t guestId, uint8_t base); + +/* only for MULTI partittion */ +t_Error FmPcdKgAllocSchemes(t_Handle h_FmPcd, uint8_t numOfSchemes, uint8_t guestId, uint8_t *p_SchemesIds); +t_Error FmPcdKgFreeSchemes(t_Handle h_FmPcd, uint8_t numOfSchemes, uint8_t guestId, uint8_t *p_SchemesIds); +/* only for SINGLE partittion */ +t_Error KgBindPortToSchemes(t_Handle h_FmPcd , uint8_t hardwarePortId, uint32_t spReg); + +t_Handle PlcrConfig(t_FmPcd *p_FmPcd, t_FmPcdParams *p_FmPcdParams); +t_Error PlcrInit(t_FmPcd *p_FmPcd); +t_Error PlcrFree(t_FmPcd *p_FmPcd); +void PlcrEnable(t_FmPcd *p_FmPcd); +void PlcrDisable(t_FmPcd *p_FmPcd); +t_Error PlcrFreeProfiles(t_FmPcd *p_FmPcd, uint8_t hardwarePortId, uint16_t num, uint16_t base); +t_Error PlcrAllocProfiles(t_FmPcd *p_FmPcd, uint8_t hardwarePortId, uint16_t numOfProfiles, uint16_t *p_Base); +t_Error PlcrAllocSharedProfiles(t_FmPcd *p_FmPcd, uint16_t numOfProfiles, uint16_t *profilesIds); +void PlcrFreeSharedProfiles(t_FmPcd *p_FmPcd, uint16_t numOfProfiles, uint16_t *profilesIds); + +t_Handle PrsConfig(t_FmPcd *p_FmPcd,t_FmPcdParams *p_FmPcdParams); +t_Error PrsInit(t_FmPcd *p_FmPcd); +void PrsEnable(t_FmPcd *p_FmPcd); +void PrsDisable(t_FmPcd *p_FmPcd); +void PrsFree(t_FmPcd *p_FmPcd ); +t_Error PrsIncludePortInStatistics(t_FmPcd *p_FmPcd, uint8_t hardwarePortId, bool include); + +t_Handle FmPcdCcConfig(t_Handle h_FmPcd, t_FmPcdParams *p_FmPcdParams); +t_Error FmPcdCcGetGrpParams(t_Handle treeId, uint8_t grpId, uint32_t *p_GrpBits, uint8_t *p_GrpBase); +uint8_t FmPcdCcGetOffset(t_Handle h_CcNode); +uint8_t FmPcdCcGetParseCode(t_Handle h_CcNode); +uint16_t FmPcdCcGetNumOfKeys(t_Handle h_CcNode); + +void FmPcdManipUpdateOwner(t_Handle h_Manip, bool add); +t_Error FmPcdManipCheckParamsForCcNextEgine(t_FmPcdCcNextEngineParams *p_InfoForManip, uint32_t *requiredAction); +void FmPcdManipUpdateAdResultForCc(t_Handle h_Manip, t_Handle p_Ad, t_Handle *p_AdNew); +void FmPcdManipUpdateAdContLookupForCc(t_Handle h_Manip, t_Handle p_Ad, t_Handle *p_AdNew, uint32_t adTableOffset); +uint32_t FmPcdManipCheckNia(t_Handle h_FmPcd, t_Handle h_Ad); +void FmPcdManipUpdateOwner(t_Handle h_Manip, bool add); +t_Error FmPcdManipCheckParamsWithCcNodeParams(t_Handle h_Manip, t_Handle h_FmPcdCcNode); + +static __inline__ t_Handle FmPcdGetMuramHandle(t_Handle h_FmPcd) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + ASSERT_COND(p_FmPcd); + return p_FmPcd->h_FmMuram; +} + +static __inline__ uint64_t FmPcdGetMuramPhysBase(t_Handle h_FmPcd) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + ASSERT_COND(p_FmPcd); + return p_FmPcd->physicalMuramBase; +} + + +#endif /* __FM_PCD_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/Pcd/fm_pcd_ipc.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/Pcd/fm_pcd_ipc.h @@ -0,0 +1,326 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + @File fm_pcd_ipc.h + + @Description FM PCD Inter-Partition prototypes, structures and definitions. +*//***************************************************************************/ +#ifndef __FM_PCD_IPC_H +#define __FM_PCD_IPC_H + +#include "std_ext.h" + + +/**************************************************************************//** + @Group FM_grp Frame Manager API + + @Description FM API functions, definitions and enums + + @{ +*//***************************************************************************/ + + +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(push,1) +#endif /* defined(__MWERKS__) && ... */ +#define MEM_MAP_START + +/**************************************************************************//** + @Description Structure for getting a sw parser address according to a label + Fields commented 'IN' are passed by the port module to be used + by the FM module. + Fields commented 'OUT' will be filled by FM before returning to port. +*//***************************************************************************/ +typedef _Packed struct t_FmPcdIpcSwPrsLable +{ + uint32_t enumHdr; /**< IN. The existance of this header will envoke + the sw parser code. */ + uint8_t indexPerHdr; /**< IN. Normally 0, if more than one sw parser + attachments for the same header, use this + + index to distinguish between them. */ +} _PackedType t_FmPcdIpcSwPrsLable; + +/**************************************************************************//** + @Description Structure for port-PCD communication. + Fields commented 'IN' are passed by the port module to be used + by the FM module. + Fields commented 'OUT' will be filled by FM before returning to port. + Some fields are optional (depending on configuration) and + will be analized by the port and FM modules accordingly. +*//***************************************************************************/ +typedef struct t_FmPcdIpcKgSchemesParams +{ + uint8_t guestId; /**< IN */ + uint8_t numOfSchemes; /**< IN */ + uint8_t schemesIds[FM_PCD_KG_NUM_OF_SCHEMES]; /**< OUT */ +} _PackedType t_FmPcdIpcKgSchemesParams; + +typedef struct t_FmPcdIpcKgClsPlanParams +{ + uint8_t guestId; /**< IN */ + uint16_t numOfClsPlanEntries; /**< IN */ + uint8_t clsPlanBase; /**< IN in alloc only */ +} _PackedType t_FmPcdIpcKgClsPlanParams; + +typedef _Packed struct t_FmPcdIpcPlcrAllocParams +{ + uint16_t num; + uint8_t hardwarePortId; + uint16_t plcrProfilesBase; +} _PackedType t_FmPcdIpcPlcrAllocParams; + +typedef _Packed struct t_FmPcdIpcSharedPlcrAllocParams +{ + uint16_t num; /**< IN */ + //uint16_t profilesIds[FM_PCD_PLCR_NUM_ENTRIES]; /**< OUT */ + uint32_t sharedProfilesMask[8]; +} _PackedType t_FmPcdIpcSharedPlcrAllocParams; + +typedef _Packed struct t_FmPcdIpcPrsIncludePort +{ + uint8_t hardwarePortId; /* IN */ + bool include; /* IN */ +} _PackedType t_FmPcdIpcPrsIncludePort; + + +#define FM_PCD_MAX_REPLY_SIZE 16 +#define FM_PCD_MAX_MSG_SIZE 36 +#define FM_PCD_MAX_REPLY_BODY_SIZE 36 + +typedef _Packed struct +{ + uint32_t msgId; + uint8_t msgBody[FM_PCD_MAX_MSG_SIZE]; +} _PackedType t_FmPcdIpcMsg; + +typedef _Packed struct t_FmPcdIpcReply +{ + uint32_t error; + uint8_t replyBody[FM_PCD_MAX_REPLY_BODY_SIZE]; +} _PackedType t_FmPcdIpcReply; + +#define MEM_MAP_END +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(pop) +#endif /* defined(__MWERKS__) && ... */ + + + +/**************************************************************************//** + @Function FM_PCD_ALLOC_KG_SCHEMES + + @Description Used by FM PCD front-end in order to allocate KG resources + + @Param[in/out] t_FmPcdIpcKgAllocParams Pointer +*//***************************************************************************/ +#define FM_PCD_ALLOC_KG_SCHEMES 3 + +/**************************************************************************//** + @Function FM_PCD_FREE_KG_SCHEMES + + @Description Used by FM PCD front-end in order to Free KG resources + + @Param[in/out] t_FmPcdIpcKgSchemesParams Pointer +*//***************************************************************************/ +#define FM_PCD_FREE_KG_SCHEMES 4 + +/**************************************************************************//** + @Function FM_PCD_ALLOC_PROFILES + + @Description Used by FM PCD front-end in order to allocate Policer profiles + + @Param[in/out] t_FmPcdIpcKgSchemesParams Pointer +*//***************************************************************************/ +#define FM_PCD_ALLOC_PROFILES 5 + +/**************************************************************************//** + @Function FM_PCD_FREE_PROFILES + + @Description Used by FM PCD front-end in order to Free Policer profiles + + @Param[in/out] t_FmPcdIpcPlcrAllocParams Pointer +*//***************************************************************************/ +#define FM_PCD_FREE_PROFILES 6 + +/**************************************************************************//** + @Function FM_PCD_GET_PHYS_MURAM_BASE + + @Description Used by FM PCD front-end in order to get MURAM base address + + @Param[in/out] t_FmPcdIcPhysAddr Pointer +*//***************************************************************************/ +#define FM_PCD_GET_PHYS_MURAM_BASE 7 + +/**************************************************************************//** + @Function FM_PCD_GET_SW_PRS_OFFSET + + @Description Used by FM front-end to get the SW parser offset of the start of + code relevant to a given label. + + @Param[in/out] t_FmPcdIpcSwPrsLable Pointer +*//***************************************************************************/ +#define FM_PCD_GET_SW_PRS_OFFSET 8 + +/**************************************************************************//** + @Function FM_PCD_ALLOC_SHARED_PROFILES + + @Description Used by FM PCD front-end in order to allocate shared profiles + + @Param[in/out] t_FmPcdIpcSharedPlcrAllocParams Pointer +*//***************************************************************************/ +#define FM_PCD_ALLOC_SHARED_PROFILES 9 + +/**************************************************************************//** + @Function FM_PCD_FREE_SHARED_PROFILES + + @Description Used by FM PCD front-end in order to free shared profiles + + @Param[in/out] t_FmPcdIpcSharedPlcrAllocParams Pointer +*//***************************************************************************/ +#define FM_PCD_FREE_SHARED_PROFILES 10 + +/**************************************************************************//** + @Function FM_PCD_MASTER_IS_ENABLED + + @Description Used by FM front-end in order to verify + PCD enablement. + + @Param[in] bool Pointer +*//***************************************************************************/ +#define FM_PCD_MASTER_IS_ENABLED 15 + +/**************************************************************************//** + @Function FM_PCD_GUEST_DISABLE + + @Description Used by FM front-end to inform back-end when + front-end PCD is disabled + + @Param[in] None +*//***************************************************************************/ +#define FM_PCD_GUEST_DISABLE 16 + +/**************************************************************************//** + @Function FM_PCD_DUMP_REGS + + @Description Used by FM front-end to dump all PCD registers + + @Param[in] None +*//***************************************************************************/ +#define FM_PCD_DUMP_REGS 17 + +/**************************************************************************//** + @Function FM_PCD_KG_DUMP_REGS + + @Description Used by FM front-end to dump KG registers + + @Param[in] None +*//***************************************************************************/ +#define FM_PCD_KG_DUMP_REGS 18 + +/**************************************************************************//** + @Function FM_PCD_PLCR_DUMP_REGS + + @Description Used by FM front-end to dump PLCR registers + + @Param[in] None +*//***************************************************************************/ +#define FM_PCD_PLCR_DUMP_REGS 19 + +/**************************************************************************//** + @Function FM_PCD_PLCR_PROFILE_DUMP_REGS + + @Description Used by FM front-end to dump PLCR specified profile registers + + @Param[in] t_Handle Pointer +*//***************************************************************************/ +#define FM_PCD_PLCR_PROFILE_DUMP_REGS 20 + +/**************************************************************************//** + @Function FM_PCD_PRS_DUMP_REGS + + @Description Used by FM front-end to dump PRS registers + + @Param[in] None +*//***************************************************************************/ +#define FM_PCD_PRS_DUMP_REGS 21 + +/**************************************************************************//** + @Function FM_PCD_FREE_KG_CLSPLAN + + @Description Used by FM PCD front-end in order to Free KG classification plan entries + + @Param[in/out] t_FmPcdIpcKgClsPlanParams Pointer +*//***************************************************************************/ +#define FM_PCD_FREE_KG_CLSPLAN 22 + +/**************************************************************************//** + @Function FM_PCD_ALLOC_KG_CLSPLAN + + @Description Used by FM PCD front-end in order to allocate KG classification plan entries + + @Param[in/out] t_FmPcdIpcKgClsPlanParams Pointer +*//***************************************************************************/ +#define FM_PCD_ALLOC_KG_CLSPLAN 23 + +/**************************************************************************//** + @Function FM_PCD_MASTER_IS_ALIVE + + @Description Used by FM front-end to check that back-end exists + + @Param[in] None +*//***************************************************************************/ +#define FM_PCD_MASTER_IS_ALIVE 24 + +/**************************************************************************//** + @Function FM_PCD_GET_COUNTER + + @Description Used by FM front-end to read PCD counters + + @Param[in/out] t_FmPcdIpcGetCounter Pointer +*//***************************************************************************/ +#define FM_PCD_GET_COUNTER 25 + +/**************************************************************************//** + @Function FM_PCD_PRS_INC_PORT_STATS + + @Description Used by FM front-end to set/clear statistics for port + + @Param[in/out] t_FmPcdIpcPrsIncludePort Pointer +*//***************************************************************************/ +#define FM_PCD_PRS_INC_PORT_STATS 26 +/** @} */ /* end of FM_PCD_IPC_grp group */ +/** @} */ /* end of FM_grp group */ + + +#endif /* __FM_PCD_IPC_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/Pcd/fm_plcr.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/Pcd/fm_plcr.c @@ -0,0 +1,1702 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fm_plcr.c + + @Description FM PCD POLICER... +*//***************************************************************************/ +#include "std_ext.h" +#include "error_ext.h" +#include "string_ext.h" +#include "debug_ext.h" +#include "net_ext.h" +#include "fm_ext.h" + +#include "fm_common.h" +#include "fm_pcd.h" +#include "fm_hc.h" +#include "fm_pcd_ipc.h" + + +static bool FmPcdPlcrIsProfileShared(t_Handle h_FmPcd, uint16_t absoluteProfileId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint16_t i; + + SANITY_CHECK_RETURN_VALUE(p_FmPcd, E_INVALID_HANDLE, FALSE); + + for(i=0;ip_FmPcdPlcr->numOfSharedProfiles;i++) + if(p_FmPcd->p_FmPcdPlcr->sharedProfilesIds[i] == absoluteProfileId) + return TRUE; + return FALSE; +} + +static t_Error SetProfileNia(t_FmPcd *p_FmPcd, e_FmPcdEngine nextEngine, u_FmPcdPlcrNextEngineParams *p_NextEngineParams, uint32_t *nextAction) +{ + uint32_t nia; + uint16_t absoluteProfileId = (uint16_t)(PTR_TO_UINT(p_NextEngineParams->h_Profile)-1); + uint8_t relativeSchemeId, physicatSchemeId; + + nia = FM_PCD_PLCR_NIA_VALID; + + switch (nextEngine) + { + case e_FM_PCD_DONE : + switch (p_NextEngineParams->action) + { + case e_FM_PCD_DROP_FRAME : + nia |= (NIA_ENG_BMI | NIA_BMI_AC_DISCARD); + break; + case e_FM_PCD_ENQ_FRAME: + nia |= (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME); + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + } + break; + case e_FM_PCD_KG: + physicatSchemeId = (uint8_t)(PTR_TO_UINT(p_NextEngineParams->h_DirectScheme)-1); + relativeSchemeId = FmPcdKgGetRelativeSchemeId(p_FmPcd, physicatSchemeId); + if(relativeSchemeId == FM_PCD_KG_NUM_OF_SCHEMES) + RETURN_ERROR(MAJOR, E_NOT_IN_RANGE, NO_MSG); + if (!FmPcdKgIsSchemeValidSw(p_FmPcd, relativeSchemeId)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid direct scheme.")); + if(!KgIsSchemeAlwaysDirect(p_FmPcd, relativeSchemeId)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Policer Profile may point only to a scheme that is always direct.")); + nia |= NIA_ENG_KG | NIA_KG_DIRECT | physicatSchemeId; + break; + case e_FM_PCD_PLCR: + if(!FmPcdPlcrIsProfileShared(p_FmPcd, absoluteProfileId)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Next profile must be a shared profile")); + if(!FmPcdPlcrIsProfileValid(p_FmPcd, absoluteProfileId)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid profile ")); + nia |= NIA_ENG_PLCR | NIA_PLCR_ABSOLUTE | absoluteProfileId; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + } + + *nextAction = nia; + + return E_OK; +} + +static uint32_t FPP_Function(uint32_t fpp) +{ + if(fpp > 15) + return 15 - (0x1f - fpp); + else + return 16 + fpp; +} + +static void GetInfoRateReg(e_FmPcdPlcrRateMode rateMode, + uint32_t rate, + uint64_t tsuInTenthNano, + uint32_t fppShift, + uint64_t *p_Integer, + uint64_t *p_Fraction) +{ + uint64_t tmp, div; + + if(rateMode == e_FM_PCD_PLCR_BYTE_MODE) + { + /* now we calculate the initial integer for the bigger rate */ + /* from Kbps to Bytes/TSU */ + tmp = (uint64_t)rate; + tmp *= 1000; /* kb --> b */ + tmp *= tsuInTenthNano; /* bps --> bpTsu(in 10nano) */ + + div = 1000000000; /* nano */ + div *= 10; /* 10 nano */ + div *= 8; /* bit to byte */ + } + else + { + /* now we calculate the initial integer for the bigger rate */ + /* from Kbps to Bytes/TSU */ + tmp = (uint64_t)rate; + tmp *= tsuInTenthNano; /* bps --> bpTsu(in 10nano) */ + + div = 1000000000; /* nano */ + div *= 10; /* 10 nano */ + } + *p_Integer = (tmp<h_Fm); /* TimeStamp per nano seconds units */ + /* we want the tsu to count 10 nano for better precision normally tsu is 3.9 nano, now we will get 39 */ + tsuInTenthNanos = (uint32_t)(1000*10/(1<comittedInfoRate > p_NonPassthroughAlgParam->peakOrAccessiveInfoRate) + GetInfoRateReg(p_NonPassthroughAlgParam->rateMode, p_NonPassthroughAlgParam->comittedInfoRate, tsuInTenthNanos, 0, &integer, &fraction); + else + GetInfoRateReg(p_NonPassthroughAlgParam->rateMode, p_NonPassthroughAlgParam->peakOrAccessiveInfoRate, tsuInTenthNanos, 0, &integer, &fraction); + + + /* we shift integer, as in cir/pir it is represented by the MSB 16 bits, and + * the LSB bits are for the fraction */ + temp = (uint32_t)((integer<<16) & 0x00000000FFFFFFFF); + /* temp is effected by the rate. For low rates it may be as low as 0, and then we'll + * take max fpp=31. + * For high rates it will never exceed the 32 bit reg (after the 16 shift), as it is + * limited by the 10G physical port. + */ + if(temp != 0) + { + /* count zeroes left of the higher used bit (in order to shift the value such that + * unused bits may be used for fraction). + */ + while ((temp & 0x80000000) == 0) + { + temp = temp << 1; + fppShift++; + } + if(fppShift > 15) + { + REPORT_ERROR(MAJOR, E_INVALID_SELECTION, ("timeStampPeriod to Information rate ratio is too small")); + return; + } + } + else + { + temp = (uint32_t)fraction; /* fraction will alyas be smaller than 2^16 */ + if(!temp) + /* integer and fraction are 0, we set fpp to its max val */ + fppShift = 31; + else + { + /* integer was 0 but fraction is not. fpp is 16 for the integer, + * + all left zeroes of the fraction. */ + fppShift=16; + /* count zeroes left of the higher used bit (in order to shift the value such that + * unused bits may be used for fraction). + */ + while ((temp & 0x8000) == 0) + { + temp = temp << 1; + fppShift++; + } + } + } + + /* + * This means that the FM TS register will now be used so that 'count' bits are for + * fraction and the rest for integer */ + /* now we re-calculate cir */ + GetInfoRateReg(p_NonPassthroughAlgParam->rateMode, p_NonPassthroughAlgParam->comittedInfoRate, tsuInTenthNanos, fppShift, &integer, &fraction); + *cir = (uint32_t)(integer << 16 | (fraction & 0xFFFF)); + GetInfoRateReg(p_NonPassthroughAlgParam->rateMode, p_NonPassthroughAlgParam->peakOrAccessiveInfoRate, tsuInTenthNanos, fppShift, &integer, &fraction); + *pir_eir = (uint32_t)(integer << 16 | (fraction & 0xFFFF)); + + *cbs = p_NonPassthroughAlgParam->comittedBurstSize; + *pbs_ebs = p_NonPassthroughAlgParam->peakOrAccessiveBurstSize; + + /* get fpp as it should be written to reg.*/ + *fpp = FPP_Function(fppShift); + +} + +static void WritePar(t_FmPcd *p_FmPcd, uint32_t par) +{ + t_FmPcdPlcrRegs *p_FmPcdPlcrRegs = p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs; + + ASSERT_COND(FmIsMaster(p_FmPcd->h_Fm)); + WRITE_UINT32(p_FmPcdPlcrRegs->fmpl_par, par); + + while(GET_UINT32(p_FmPcdPlcrRegs->fmpl_par) & FM_PCD_PLCR_PAR_GO) ; + +} + +/*********************************************/ +/*............Policer Exception..............*/ +/*********************************************/ +static void PcdPlcrException(t_Handle h_FmPcd) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + uint32_t event, mask, force; + + ASSERT_COND(FmIsMaster(p_FmPcd->h_Fm)); + event = GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_evr); + mask = GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_ier); + + event &= mask; + + /* clear the forced events */ + force = GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_ifr); + if(force & event) + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_ifr, force & ~event); + + + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_evr, event); + + if(event & FM_PCD_PLCR_PRAM_SELF_INIT_COMPLETE) + p_FmPcd->f_Exception(p_FmPcd->h_App,e_FM_PCD_PLCR_EXCEPTION_PRAM_SELF_INIT_COMPLETE); + if(event & FM_PCD_PLCR_ATOMIC_ACTION_COMPLETE) + p_FmPcd->f_Exception(p_FmPcd->h_App,e_FM_PCD_PLCR_EXCEPTION_ATOMIC_ACTION_COMPLETE); + +} + +/* ..... */ + +static void PcdPlcrErrorException(t_Handle h_FmPcd) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + uint32_t event, force, captureReg, mask; + + ASSERT_COND(FmIsMaster(p_FmPcd->h_Fm)); + event = GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_eevr); + mask = GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_eier); + + event &= mask; + + /* clear the forced events */ + force = GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_eifr); + if(force & event) + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_eifr, force & ~event); + + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_eevr, event); + + if(event & FM_PCD_PLCR_DOUBLE_ECC) + p_FmPcd->f_Exception(p_FmPcd->h_App,e_FM_PCD_PLCR_EXCEPTION_DOUBLE_ECC); + if(event & FM_PCD_PLCR_INIT_ENTRY_ERROR) + { + captureReg = GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_upcr); + /*ASSERT_COND(captureReg & PLCR_ERR_UNINIT_CAP); + p_UnInitCapt->profileNum = (uint8_t)(captureReg & PLCR_ERR_UNINIT_NUM_MASK); + p_UnInitCapt->portId = (uint8_t)((captureReg & PLCR_ERR_UNINIT_PID_MASK) >>PLCR_ERR_UNINIT_PID_SHIFT) ; + p_UnInitCapt->absolute = (bool)(captureReg & PLCR_ERR_UNINIT_ABSOLUTE_MASK);*/ + p_FmPcd->f_FmPcdIndexedException(p_FmPcd->h_App,e_FM_PCD_PLCR_EXCEPTION_INIT_ENTRY_ERROR,(uint16_t)(captureReg & PLCR_ERR_UNINIT_NUM_MASK)); + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_upcr, PLCR_ERR_UNINIT_CAP); + } +} + +void FmPcdPlcrUpatePointedOwner(t_Handle h_FmPcd, uint16_t absoluteProfileId, bool add) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + ASSERT_COND(p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].valid); + + if(add) + p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].pointedOwners++; + else + p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].pointedOwners--; +} + +uint32_t FmPcdPlcrGetPointedOwners(t_Handle h_FmPcd, uint16_t absoluteProfileId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + ASSERT_COND(p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].valid); + + return p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].pointedOwners; +} +uint32_t FmPcdPlcrGetRequiredAction(t_Handle h_FmPcd, uint16_t absoluteProfileId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + ASSERT_COND(p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].valid); + + return p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].requiredAction; +} + +t_Error FmPcdPlcrAllocProfiles(t_Handle h_FmPcd, uint8_t hardwarePortId, uint16_t numOfProfiles) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_FmPcdIpcPlcrAllocParams ipcPlcrParams; + t_Error err = E_OK; + uint16_t base; + uint16_t swPortIndex = 0; + t_FmPcdIpcMsg msg; + uint32_t replyLength; + t_FmPcdIpcReply reply; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + + if(!numOfProfiles) + return E_OK; + + memset(&ipcPlcrParams, 0, sizeof(ipcPlcrParams)); + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + { + /* Alloc resources using IPC messaging */ + memset(&reply, 0, sizeof(reply)); + memset(&msg, 0, sizeof(msg)); + ipcPlcrParams.num = numOfProfiles; + ipcPlcrParams.hardwarePortId = hardwarePortId; + msg.msgId = FM_PCD_ALLOC_PROFILES; + memcpy(msg.msgBody, &ipcPlcrParams, sizeof(ipcPlcrParams)); + replyLength = sizeof(uint32_t) + sizeof(uint16_t); + if ((err = XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId) +sizeof(ipcPlcrParams), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MAJOR, err,NO_MSG); + if (replyLength != sizeof(uint32_t) + sizeof(uint16_t)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + if((t_Error)reply.error != E_OK) + RETURN_ERROR(MAJOR, (t_Error)reply.error, ("PLCR profiles allocation failed")); + + memcpy((uint8_t*)&base, reply.replyBody, sizeof(uint16_t)); + } + else /* master */ + { + err = PlcrAllocProfiles(p_FmPcd, hardwarePortId, numOfProfiles, &base); + if(err) + RETURN_ERROR(MAJOR, err,NO_MSG); + } + HW_PORT_ID_TO_SW_PORT_INDX(swPortIndex, hardwarePortId); + + p_FmPcd->p_FmPcdPlcr->portsMapping[swPortIndex].numOfProfiles = numOfProfiles; + p_FmPcd->p_FmPcdPlcr->portsMapping[swPortIndex].profilesBase = base; + + return E_OK; +} + +t_Error FmPcdPlcrFreeProfiles(t_Handle h_FmPcd, uint8_t hardwarePortId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_FmPcdIpcPlcrAllocParams ipcPlcrParams; + t_Error err = E_OK; + uint16_t swPortIndex = 0; + t_FmPcdIpcMsg msg; + uint32_t replyLength; + t_FmPcdIpcReply reply; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + + HW_PORT_ID_TO_SW_PORT_INDX(swPortIndex, hardwarePortId); + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + { + /* Alloc resources using IPC messaging */ + memset(&reply, 0, sizeof(reply)); + memset(&msg, 0, sizeof(msg)); + ipcPlcrParams.num = p_FmPcd->p_FmPcdPlcr->portsMapping[swPortIndex].numOfProfiles; + ipcPlcrParams.hardwarePortId = hardwarePortId; + ipcPlcrParams.plcrProfilesBase = p_FmPcd->p_FmPcdPlcr->portsMapping[swPortIndex].profilesBase; + msg.msgId = FM_PCD_FREE_PROFILES; + memcpy(msg.msgBody, &ipcPlcrParams, sizeof(ipcPlcrParams)); + replyLength = sizeof(uint32_t); + if ((err = XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId) +sizeof(ipcPlcrParams), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MAJOR, err,NO_MSG); + if (replyLength != sizeof(uint32_t)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + if ((t_Error)reply.error != E_OK) + RETURN_ERROR(MINOR, (t_Error)reply.error, ("PLCR Free Profiles failed")); + } + else /* master */ + { + err = PlcrFreeProfiles(p_FmPcd, hardwarePortId, p_FmPcd->p_FmPcdPlcr->portsMapping[swPortIndex].numOfProfiles, p_FmPcd->p_FmPcdPlcr->portsMapping[swPortIndex].profilesBase); + if(err) + RETURN_ERROR(MAJOR, err,NO_MSG); + } + p_FmPcd->p_FmPcdPlcr->portsMapping[swPortIndex].numOfProfiles = 0; + p_FmPcd->p_FmPcdPlcr->portsMapping[swPortIndex].profilesBase = 0; + + return E_OK; +} + +bool FmPcdPlcrIsProfileValid(t_Handle h_FmPcd, uint16_t absoluteProfileId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_FmPcdPlcr *p_FmPcdPlcr = p_FmPcd->p_FmPcdPlcr; + + return p_FmPcdPlcr->profiles[absoluteProfileId].valid; +} + +t_Error PlcrAllocProfiles(t_FmPcd *p_FmPcd, uint8_t hardwarePortId, uint16_t numOfProfiles, uint16_t *p_Base) +{ + t_FmPcdPlcrRegs *p_Regs = p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs; + uint32_t profilesFound, log2Num, tmpReg32; + uint32_t intFlags; + uint16_t first, i; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + + ASSERT_COND(FmIsMaster(p_FmPcd->h_Fm)); + if(!numOfProfiles) + return E_OK; + + ASSERT_COND(hardwarePortId); + + if (numOfProfiles>FM_PCD_PLCR_NUM_ENTRIES) + RETURN_ERROR(MINOR, E_INVALID_VALUE, ("numProfiles is too big.")); + + if (!POWER_OF_2(numOfProfiles)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("numProfiles must be a power of 2.")); + + intFlags = FmPcdLock(p_FmPcd); + + if(GET_UINT32(p_Regs->fmpl_pmr[hardwarePortId-1]) & FM_PCD_PLCR_PMR_V) + { + FmPcdUnlock(p_FmPcd, intFlags); + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("The requesting port has already an allocated profiles window.")); + } + + first = 0; + profilesFound = 0; + for(i=0;ip_FmPcdPlcr->profiles[i].profilesMng.allocated) + { + profilesFound++; + i++; + if(profilesFound == numOfProfiles) + break; + } + else + { + profilesFound = 0; + /* advance i to the next aligned address */ + first = i = (uint8_t)(first + numOfProfiles); + } + } + if(profilesFound == numOfProfiles) + { + for(i = first; ip_FmPcdPlcr->profiles[i].profilesMng.allocated = TRUE; + p_FmPcd->p_FmPcdPlcr->profiles[i].profilesMng.ownerId = hardwarePortId; + } + } + else + { + FmPcdUnlock(p_FmPcd, intFlags); + RETURN_ERROR(MINOR, E_FULL, ("No profiles.")); + } + + /**********************FMPL_PMRx******************/ + LOG2((uint64_t)numOfProfiles, log2Num); + tmpReg32 = first; + tmpReg32 |= log2Num << 16; + tmpReg32 |= FM_PCD_PLCR_PMR_V; + WRITE_UINT32(p_Regs->fmpl_pmr[hardwarePortId-1], tmpReg32); + + *p_Base = first; + + FmPcdUnlock(p_FmPcd, intFlags); + + return E_OK; +} + +t_Error PlcrAllocSharedProfiles(t_FmPcd *p_FmPcd, uint16_t numOfProfiles, uint16_t *profilesIds) +{ + uint32_t profilesFound; + uint16_t i, k=0; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + + ASSERT_COND(FmIsMaster(p_FmPcd->h_Fm)); + if(!numOfProfiles) + return E_OK; + + if (numOfProfiles>FM_PCD_PLCR_NUM_ENTRIES) + RETURN_ERROR(MINOR, E_INVALID_VALUE, ("numProfiles is too big.")); + + profilesFound = 0; + for(i=0;ip_FmPcdPlcr->profiles[i].profilesMng.allocated) + { + profilesFound++; + profilesIds[k] = i; + k++; + if(profilesFound == numOfProfiles) + break; + } + } + if(profilesFound != numOfProfiles) + RETURN_ERROR(MAJOR, E_INVALID_STATE,NO_MSG); + for(i = 0;ip_FmPcdPlcr->profiles[profilesIds[i]].profilesMng.allocated = TRUE; + p_FmPcd->p_FmPcdPlcr->profiles[profilesIds[i]].profilesMng.ownerId = 0; + } + + return E_OK; +} + +t_Error PlcrFreeProfiles(t_FmPcd *p_FmPcd, uint8_t hardwarePortId, uint16_t numOfProfiles, uint16_t base) +{ + t_FmPcdPlcrRegs *p_Regs = p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs; + uint16_t i; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_HANDLE); + + ASSERT_COND(FmIsMaster(p_FmPcd->h_Fm)); + ASSERT_COND(IN_RANGE(1, hardwarePortId, 63)); + WRITE_UINT32(p_Regs->fmpl_pmr[hardwarePortId-1], 0); + + for(i = base; ip_FmPcdPlcr->profiles[i].profilesMng.ownerId == hardwarePortId); + ASSERT_COND(p_FmPcd->p_FmPcdPlcr->profiles[i].profilesMng.allocated); + + p_FmPcd->p_FmPcdPlcr->profiles[i].profilesMng.allocated = FALSE; + p_FmPcd->p_FmPcdPlcr->profiles[i].profilesMng.ownerId = 0; + } + + return E_OK; +} + +void PlcrFreeSharedProfiles(t_FmPcd *p_FmPcd, uint16_t numOfProfiles, uint16_t *profilesIds) +{ + uint16_t i; + + SANITY_CHECK_RETURN(p_FmPcd, E_INVALID_HANDLE); + + ASSERT_COND(FmIsMaster(p_FmPcd->h_Fm)); + for(i=0;ip_FmPcdPlcr->profiles[profilesIds[i]].profilesMng.allocated); + p_FmPcd->p_FmPcdPlcr->profiles[profilesIds[i]].profilesMng.allocated = FALSE; + } +} + +void PlcrEnable(t_FmPcd *p_FmPcd) +{ + t_FmPcdPlcrRegs *p_Regs = p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs; + + WRITE_UINT32(p_Regs->fmpl_gcr, GET_UINT32(p_Regs->fmpl_gcr) | FM_PCD_PLCR_GCR_EN); +} + +void PlcrDisable(t_FmPcd *p_FmPcd) +{ + t_FmPcdPlcrRegs *p_Regs = p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs; + + WRITE_UINT32(p_Regs->fmpl_gcr, GET_UINT32(p_Regs->fmpl_gcr) & ~FM_PCD_PLCR_GCR_EN); +} + +t_Error FM_PCD_SetPlcrStatistics(t_Handle h_FmPcd, bool enable) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t tmpReg32; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdPlcr, E_INVALID_HANDLE); + + if(!FmIsMaster(p_FmPcd->h_Fm)) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("FM_PCD_SetPlcrStatistics - guest mode!")); + + tmpReg32 = GET_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_gcr); + if(enable) + tmpReg32 |= FM_PCD_PLCR_GCR_STEN; + else + tmpReg32 &= ~FM_PCD_PLCR_GCR_STEN; + + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_gcr, tmpReg32); + return E_OK; +} + +t_Error FM_PCD_ConfigPlcrAutoRefreshMode(t_Handle h_FmPcd, bool enable) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdDriverParam, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdPlcr, E_INVALID_HANDLE); + + if(!FmIsMaster(p_FmPcd->h_Fm)) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("FM_PCD_ConfigPlcrAutoRefreshMode - guest mode!")); + + p_FmPcd->p_FmPcdDriverParam->plcrAutoRefresh = enable; + + return E_OK; +} + + +t_Error FmPcdPlcrBuildProfile(t_Handle h_FmPcd, t_FmPcdPlcrProfileParams *p_Profile, t_FmPcdPlcrInterModuleProfileRegs *p_PlcrRegs) +{ + + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_Error err = E_OK; + uint32_t pemode, gnia, ynia, rnia; + +/* Set G, Y, R Nia */ + err = SetProfileNia(p_FmPcd, p_Profile->nextEngineOnGreen, &(p_Profile->paramsOnGreen), &gnia); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + err = SetProfileNia(p_FmPcd, p_Profile->nextEngineOnYellow, &(p_Profile->paramsOnYellow), &ynia); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + err = SetProfileNia(p_FmPcd, p_Profile->nextEngineOnRed, &(p_Profile->paramsOnRed), &rnia); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + + +/* Mode fmpl_pemode */ + pemode = FM_PCD_PLCR_PEMODE_PI; + + switch (p_Profile->algSelection) + { + case e_FM_PCD_PLCR_PASS_THROUGH: + p_PlcrRegs->fmpl_pecir = 0; + p_PlcrRegs->fmpl_pecbs = 0; + p_PlcrRegs->fmpl_pepepir_eir = 0; + p_PlcrRegs->fmpl_pepbs_ebs = 0; + p_PlcrRegs->fmpl_pelts = 0; + p_PlcrRegs->fmpl_pects = 0; + p_PlcrRegs->fmpl_pepts_ets = 0; + pemode &= ~FM_PCD_PLCR_PEMODE_ALG_MASK; + switch (p_Profile->colorMode) + { + case e_FM_PCD_PLCR_COLOR_BLIND: + pemode |= FM_PCD_PLCR_PEMODE_CBLND; + switch (p_Profile->color.dfltColor) + { + case e_FM_PCD_PLCR_GREEN: + pemode &= ~FM_PCD_PLCR_PEMODE_DEFC_MASK; + break; + case e_FM_PCD_PLCR_YELLOW: + pemode |= FM_PCD_PLCR_PEMODE_DEFC_Y; + break; + case e_FM_PCD_PLCR_RED: + pemode |= FM_PCD_PLCR_PEMODE_DEFC_R; + break; + case e_FM_PCD_PLCR_OVERRIDE: + pemode |= FM_PCD_PLCR_PEMODE_DEFC_OVERRIDE; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + } + + break; + case e_FM_PCD_PLCR_COLOR_AWARE: + pemode &= ~FM_PCD_PLCR_PEMODE_CBLND; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + } + break; + + case e_FM_PCD_PLCR_RFC_2698: + /* Select algorithm MODE[ALG] = "01" */ + pemode |= FM_PCD_PLCR_PEMODE_ALG_RFC2698; + if (p_Profile->nonPassthroughAlgParams.comittedInfoRate > p_Profile->nonPassthroughAlgParams.peakOrAccessiveInfoRate) + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("in RFC2698 Peak rate must be equal or larger than comittedInfoRate.")); + goto cont_rfc; + case e_FM_PCD_PLCR_RFC_4115: + /* Select algorithm MODE[ALG] = "10" */ + pemode |= FM_PCD_PLCR_PEMODE_ALG_RFC4115; +cont_rfc: + /* Select Color-Blind / Color-Aware operation (MODE[CBLND]) */ + switch (p_Profile->colorMode) + { + case e_FM_PCD_PLCR_COLOR_BLIND: + pemode |= FM_PCD_PLCR_PEMODE_CBLND; + break; + case e_FM_PCD_PLCR_COLOR_AWARE: + pemode &= ~FM_PCD_PLCR_PEMODE_CBLND; + /*In color aware more select override color interpretation (MODE[OVCLR]) */ + switch (p_Profile->color.override) + { + case e_FM_PCD_PLCR_GREEN: + pemode &= ~FM_PCD_PLCR_PEMODE_OVCLR_MASK; + break; + case e_FM_PCD_PLCR_YELLOW: + pemode |= FM_PCD_PLCR_PEMODE_OVCLR_Y; + break; + case e_FM_PCD_PLCR_RED: + pemode |= FM_PCD_PLCR_PEMODE_OVCLR_R; + break; + case e_FM_PCD_PLCR_OVERRIDE: + pemode |= FM_PCD_PLCR_PEMODE_OVCLR_G_NC; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + } + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + } + /* Select Measurement Unit Mode to BYTE or PACKET (MODE[PKT]) */ + switch (p_Profile->nonPassthroughAlgParams.rateMode) + { + case e_FM_PCD_PLCR_BYTE_MODE : + pemode &= ~FM_PCD_PLCR_PEMODE_PKT; + switch (p_Profile->nonPassthroughAlgParams.byteModeParams.frameLengthSelection) + { + case e_FM_PCD_PLCR_L2_FRM_LEN: + pemode |= FM_PCD_PLCR_PEMODE_FLS_L2; + break; + case e_FM_PCD_PLCR_L3_FRM_LEN: + pemode |= FM_PCD_PLCR_PEMODE_FLS_L3; + break; + case e_FM_PCD_PLCR_L4_FRM_LEN: + pemode |= FM_PCD_PLCR_PEMODE_FLS_L4; + break; + case e_FM_PCD_PLCR_FULL_FRM_LEN: + pemode |= FM_PCD_PLCR_PEMODE_FLS_FULL; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + } + switch (p_Profile->nonPassthroughAlgParams.byteModeParams.rollBackFrameSelection) + { + case e_FM_PCD_PLCR_ROLLBACK_L2_FRM_LEN: + pemode &= ~FM_PCD_PLCR_PEMODE_RBFLS; + break; + case e_FM_PCD_PLCR_ROLLBACK_FULL_FRM_LEN: + pemode |= FM_PCD_PLCR_PEMODE_RBFLS; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + } + break; + case e_FM_PCD_PLCR_PACKET_MODE : + pemode |= FM_PCD_PLCR_PEMODE_PKT; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + } + /* Select timeStamp floating point position (MODE[FPP]) to fit the actual traffic rates. For PACKET + mode with low traffic rates move the fixed point to the left to increase fraction accuracy. For BYTE + mode with high traffic rates move the fixed point to the right to increase integer accuracy. */ + + /* Configure Traffic Parameters*/ + { + uint32_t cir=0, cbs=0, pir_eir=0, pbs_ebs=0, fpp=0; + + calcRates(h_FmPcd, &p_Profile->nonPassthroughAlgParams, &cir, &cbs, &pir_eir, &pbs_ebs, &fpp); + + /* Set Committed Information Rate (CIR) */ + p_PlcrRegs->fmpl_pecir = cir; + /* Set Committed Burst Size (CBS). */ + p_PlcrRegs->fmpl_pecbs = cbs; + /* Set Peak Information Rate (PIR_EIR used as PIR) */ + p_PlcrRegs->fmpl_pepepir_eir = pir_eir; + /* Set Peak Burst Size (PBS_EBS used as PBS) */ + p_PlcrRegs->fmpl_pepbs_ebs = pbs_ebs; + + /* Initialize the Metering Buckets to be full (write them with 0xFFFFFFFF. */ + /* Peak Rate Token Bucket Size (PTS_ETS used as PTS) */ + p_PlcrRegs->fmpl_pepts_ets = 0xFFFFFFFF; + /* Committed Rate Token Bucket Size (CTS) */ + p_PlcrRegs->fmpl_pects = 0xFFFFFFFF; + + /* Set the FPP based on calculation */ + pemode |= (fpp << FM_PCD_PLCR_PEMODE_FPP_SHIFT); + } + break; /* FM_PCD_PLCR_PEMODE_ALG_RFC2698 , FM_PCD_PLCR_PEMODE_ALG_RFC4115 */ + default: + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + } + + p_PlcrRegs->fmpl_pemode = pemode; + + p_PlcrRegs->fmpl_pegnia = gnia; + p_PlcrRegs->fmpl_peynia = ynia; + p_PlcrRegs->fmpl_pernia = rnia; + + /* Zero Counters */ + p_PlcrRegs->fmpl_pegpc = 0; + p_PlcrRegs->fmpl_peypc = 0; + p_PlcrRegs->fmpl_perpc = 0; + p_PlcrRegs->fmpl_perypc = 0; + p_PlcrRegs->fmpl_perrpc = 0; + + return E_OK; +} + +void FmPcdPlcrValidateProfileSw(t_Handle h_FmPcd, uint16_t absoluteProfileId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + ASSERT_COND(!p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].valid); + p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].valid = TRUE; +} + +void FmPcdPlcrInvalidateProfileSw(t_Handle h_FmPcd, uint16_t absoluteProfileId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + ASSERT_COND(p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].valid); + p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].valid = FALSE; +} + +t_Handle PlcrConfig(t_FmPcd *p_FmPcd, t_FmPcdParams *p_FmPcdParams) +{ + t_FmPcdPlcr *p_FmPcdPlcr; + /*uint8_t i=0;*/ + + UNUSED(p_FmPcd); + UNUSED(p_FmPcdParams); + + p_FmPcdPlcr = (t_FmPcdPlcr *) XX_Malloc(sizeof(t_FmPcdPlcr)); + if (!p_FmPcdPlcr) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM Policer structure allocation FAILED")); + return NULL; + } + memset(p_FmPcdPlcr, 0, sizeof(t_FmPcdPlcr)); + if(p_FmPcd->guestId == NCSW_MASTER_ID) + { + p_FmPcdPlcr->p_FmPcdPlcrRegs = (t_FmPcdPlcrRegs *)UINT_TO_PTR(FmGetPcdPlcrBaseAddr(p_FmPcdParams->h_Fm)); + p_FmPcd->p_FmPcdDriverParam->plcrAutoRefresh = DEFAULT_plcrAutoRefresh; + p_FmPcd->exceptions |= (DEFAULT_fmPcdPlcrExceptions | DEFAULT_fmPcdPlcrErrorExceptions); + } + + p_FmPcdPlcr->numOfSharedProfiles = DEFAULT_numOfSharedPlcrProfiles; + + return p_FmPcdPlcr; +} + +t_Error PlcrInit(t_FmPcd *p_FmPcd) +{ + t_FmPcdDriverParam *p_Param = p_FmPcd->p_FmPcdDriverParam; + t_FmPcdPlcr *p_FmPcdPlcr = p_FmPcd->p_FmPcdPlcr; + uint32_t tmpReg32 = 0; + t_Error err = E_OK; + t_FmPcdPlcrRegs *p_Regs = p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs; + t_FmPcdIpcMsg msg; + uint32_t replyLength; + t_FmPcdIpcReply reply; + + if ((p_FmPcd->guestId != NCSW_MASTER_ID) && + (p_FmPcdPlcr->numOfSharedProfiles)) + { + int i, j, index = 0; + uint32_t walking1Mask = 0x80000000; + uint32_t sharedProfilesMask[FM_PCD_PLCR_NUM_ENTRIES/32]; + + memset(sharedProfilesMask, 0, FM_PCD_PLCR_NUM_ENTRIES/32 * sizeof(uint32_t)); + memset(&reply, 0, sizeof(reply)); + memset(&msg, 0, sizeof(msg)); + msg.msgId = FM_PCD_ALLOC_SHARED_PROFILES; + memcpy(msg.msgBody, (uint8_t *)&p_FmPcdPlcr->numOfSharedProfiles, sizeof(uint16_t)); + replyLength = sizeof(uint32_t) + sizeof(sharedProfilesMask); + if ((err = XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId)+ sizeof(p_FmPcdPlcr->numOfSharedProfiles), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MAJOR, err,NO_MSG); + if (replyLength != (sizeof(uint32_t) + sizeof(sharedProfilesMask))) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + + memcpy(sharedProfilesMask, reply.replyBody, sizeof(sharedProfilesMask)); + /* translate 8 regs of 32 bits masks into an array of up to 256 indexes. */ + for(i = 0; ip_FmPcdPlcr->sharedProfilesIds[index++] = (uint16_t)(i*32+j); + walking1Mask >>= 1; + } + walking1Mask = 0x80000000; + } + } + return (t_Error)reply.error; + } + + if(p_FmPcdPlcr->numOfSharedProfiles) + { + err = PlcrAllocSharedProfiles(p_FmPcd, p_FmPcdPlcr->numOfSharedProfiles, p_FmPcd->p_FmPcdPlcr->sharedProfilesIds); + if(err) + RETURN_ERROR(MAJOR, err,NO_MSG); + } + + /**********************FMPL_GCR******************/ + tmpReg32 = 0; + tmpReg32 |= FM_PCD_PLCR_GCR_STEN; + if(p_Param->plcrAutoRefresh) + tmpReg32 |= FM_PCD_PLCR_GCR_DAR; + tmpReg32 |= NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME; + + WRITE_UINT32(p_Regs->fmpl_gcr, tmpReg32); + /**********************FMPL_GCR******************/ + + /**********************FMPL_EEVR******************/ + WRITE_UINT32(p_Regs->fmpl_eevr, (FM_PCD_PLCR_DOUBLE_ECC | FM_PCD_PLCR_INIT_ENTRY_ERROR)); + /**********************FMPL_EEVR******************/ + /**********************FMPL_EIER******************/ + tmpReg32 = 0; + if(p_FmPcd->exceptions & FM_PCD_EX_PLCR_DOUBLE_ECC) + { + FmEnableRamsEcc(p_FmPcd->h_Fm); + tmpReg32 |= FM_PCD_PLCR_DOUBLE_ECC; + } + if(p_FmPcd->exceptions & FM_PCD_EX_PLCR_INIT_ENTRY_ERROR) + tmpReg32 |= FM_PCD_PLCR_INIT_ENTRY_ERROR; + WRITE_UINT32(p_Regs->fmpl_eier, tmpReg32); + /**********************FMPL_EIER******************/ + + /**********************FMPL_EVR******************/ + WRITE_UINT32(p_Regs->fmpl_evr, (FM_PCD_PLCR_PRAM_SELF_INIT_COMPLETE | FM_PCD_PLCR_ATOMIC_ACTION_COMPLETE)); + /**********************FMPL_EVR******************/ + /**********************FMPL_IER******************/ + tmpReg32 = 0; + if(p_FmPcd->exceptions & FM_PCD_EX_PLCR_PRAM_SELF_INIT_COMPLETE) + tmpReg32 |= FM_PCD_PLCR_PRAM_SELF_INIT_COMPLETE; + if(p_FmPcd->exceptions & FM_PCD_EX_PLCR_ATOMIC_ACTION_COMPLETE ) + tmpReg32 |= FM_PCD_PLCR_ATOMIC_ACTION_COMPLETE; + WRITE_UINT32(p_Regs->fmpl_ier, tmpReg32); + /**********************FMPL_IER******************/ + + /* register even if no interrupts enabled, to allow future enablement */ + FmRegisterIntr(p_FmPcd->h_Fm, e_FM_MOD_PLCR, 0, e_FM_INTR_TYPE_ERR, PcdPlcrErrorException, p_FmPcd); + FmRegisterIntr(p_FmPcd->h_Fm, e_FM_MOD_PLCR, 0, e_FM_INTR_TYPE_NORMAL, PcdPlcrException, p_FmPcd); + + /* driver initializes one DFLT profile at the last entry*/ + /**********************FMPL_DPMR******************/ + tmpReg32 = 0; + WRITE_UINT32(p_Regs->fmpl_dpmr, tmpReg32); + p_FmPcd->p_FmPcdPlcr->profiles[0].profilesMng.allocated = TRUE; + + return E_OK; +} + +t_Error PlcrFree(t_FmPcd *p_FmPcd) +{ + t_Error err; + t_FmPcdIpcSharedPlcrAllocParams ipcSharedPlcrParams; + t_FmPcdIpcMsg msg; + + FmUnregisterIntr(p_FmPcd->h_Fm, e_FM_MOD_PLCR, 0, e_FM_INTR_TYPE_ERR); + FmUnregisterIntr(p_FmPcd->h_Fm, e_FM_MOD_PLCR, 0, e_FM_INTR_TYPE_NORMAL); + + if(p_FmPcd->p_FmPcdPlcr->numOfSharedProfiles) + { + if(p_FmPcd->guestId != NCSW_MASTER_ID) + { + int i; + memset(ipcSharedPlcrParams.sharedProfilesMask, 0, sizeof(ipcSharedPlcrParams.sharedProfilesMask)); + /* Free resources using IPC messaging */ + ipcSharedPlcrParams.num = p_FmPcd->p_FmPcdPlcr->numOfSharedProfiles; + + /* translate the allocated profile id's to a 32bit * 8regs mask */ + for(i = 0;ip_FmPcdPlcr->numOfSharedProfiles;i++) + ipcSharedPlcrParams.sharedProfilesMask[p_FmPcd->p_FmPcdPlcr->sharedProfilesIds[i]/32] |= (0x80000000 >> (p_FmPcd->p_FmPcdPlcr->sharedProfilesIds[i] % 32)); + + memset(&msg, 0, sizeof(msg)); + msg.msgId = FM_PCD_FREE_SHARED_PROFILES; + memcpy(msg.msgBody, &ipcSharedPlcrParams, sizeof(ipcSharedPlcrParams)); + if ((err = XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId)+sizeof(ipcSharedPlcrParams), + NULL, + NULL, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MAJOR, err,NO_MSG); + } + /* else + PlcrFreeSharedProfiles(p_FmPcd, p_FmPcd->p_FmPcdPlcr->numOfSharedProfiles, p_FmPcd->p_FmPcdPlcr->sharedProfilesIds);*/ + } + return E_OK; +} + +t_Error FmPcdPlcrGetAbsoluteProfileId(t_Handle h_FmPcd, + e_FmPcdProfileTypeSelection profileType, + t_Handle h_FmPort, + uint16_t relativeProfile, + uint16_t *p_AbsoluteId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_FmPcdPlcr *p_FmPcdPlcr = p_FmPcd->p_FmPcdPlcr; + uint8_t i; + + switch (profileType) + { + case e_FM_PCD_PLCR_PORT_PRIVATE: + /* get port PCD id from port handle */ + for(i=0;ip_FmPcdPlcr->portsMapping[i].h_FmPort == h_FmPort) + break; + if (i == FM_MAX_NUM_OF_PORTS) + RETURN_ERROR(MAJOR, E_INVALID_STATE , ("Invalid port handle.")); + + if(!p_FmPcd->p_FmPcdPlcr->portsMapping[i].numOfProfiles) + RETURN_ERROR(MAJOR, E_INVALID_SELECTION , ("Port has no allocated profiles")); + if(relativeProfile >= p_FmPcd->p_FmPcdPlcr->portsMapping[i].numOfProfiles) + RETURN_ERROR(MAJOR, E_INVALID_SELECTION , ("Profile id is out of range")); + *p_AbsoluteId = (uint16_t)(p_FmPcd->p_FmPcdPlcr->portsMapping[i].profilesBase + relativeProfile); + break; + case e_FM_PCD_PLCR_SHARED: + if(relativeProfile >= p_FmPcdPlcr->numOfSharedProfiles) + RETURN_ERROR(MAJOR, E_INVALID_SELECTION , ("Profile id is out of range")); + *p_AbsoluteId = (uint16_t)(p_FmPcdPlcr->sharedProfilesIds[relativeProfile]); + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("Invalid policer profile type")); + } + return E_OK; +} + +uint16_t FmPcdPlcrGetPortProfilesBase(t_Handle h_FmPcd, uint8_t hardwarePortId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + uint16_t swPortIndex = 0; + + HW_PORT_ID_TO_SW_PORT_INDX(swPortIndex, hardwarePortId); + + return p_FmPcd->p_FmPcdPlcr->portsMapping[swPortIndex].profilesBase; +} + +uint16_t FmPcdPlcrGetPortNumOfProfiles(t_Handle h_FmPcd, uint8_t hardwarePortId) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + uint16_t swPortIndex = 0; + + HW_PORT_ID_TO_SW_PORT_INDX(swPortIndex, hardwarePortId); + + return p_FmPcd->p_FmPcdPlcr->portsMapping[swPortIndex].numOfProfiles; + +} +uint32_t FmPcdPlcrBuildWritePlcrActionReg(uint16_t absoluteProfileId) +{ + return (uint32_t)(FM_PCD_PLCR_PAR_GO | + ((uint32_t)absoluteProfileId << FM_PCD_PLCR_PAR_PNUM_SHIFT)); +} + +uint32_t FmPcdPlcrBuildWritePlcrActionRegs(uint16_t absoluteProfileId) +{ + return (uint32_t)(FM_PCD_PLCR_PAR_GO | + ((uint32_t)absoluteProfileId << FM_PCD_PLCR_PAR_PNUM_SHIFT) | + FM_PCD_PLCR_PAR_PWSEL_MASK); +} + +bool FmPcdPlcrHwProfileIsValid(uint32_t profileModeReg) +{ + + if(profileModeReg & FM_PCD_PLCR_PEMODE_PI) + return TRUE; + else + return FALSE; +} + +uint32_t FmPcdPlcrBuildReadPlcrActionReg(uint16_t absoluteProfileId) +{ + return (uint32_t)(FM_PCD_PLCR_PAR_GO | + FM_PCD_PLCR_PAR_R | + ((uint32_t)absoluteProfileId << FM_PCD_PLCR_PAR_PNUM_SHIFT) | + FM_PCD_PLCR_PAR_PWSEL_MASK); +} + +uint32_t FmPcdPlcrBuildCounterProfileReg(e_FmPcdPlcrProfileCounters counter) +{ + switch(counter) + { + case(e_FM_PCD_PLCR_PROFILE_GREEN_PACKET_TOTAL_COUNTER): + return FM_PCD_PLCR_PAR_PWSEL_PEGPC; + case(e_FM_PCD_PLCR_PROFILE_YELLOW_PACKET_TOTAL_COUNTER): + return FM_PCD_PLCR_PAR_PWSEL_PEYPC; + case(e_FM_PCD_PLCR_PROFILE_RED_PACKET_TOTAL_COUNTER) : + return FM_PCD_PLCR_PAR_PWSEL_PERPC; + case(e_FM_PCD_PLCR_PROFILE_RECOLOURED_YELLOW_PACKET_TOTAL_COUNTER) : + return FM_PCD_PLCR_PAR_PWSEL_PERYPC; + case(e_FM_PCD_PLCR_PROFILE_RECOLOURED_RED_PACKET_TOTAL_COUNTER) : + return FM_PCD_PLCR_PAR_PWSEL_PERRPC; + default: + REPORT_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + return 0; + } +} + +uint32_t FmPcdPlcrBuildNiaProfileReg(bool green, bool yellow, bool red) +{ + + uint32_t tmpReg32 = 0; + + if(green) + tmpReg32 |= FM_PCD_PLCR_PAR_PWSEL_PEGNIA; + if(yellow) + tmpReg32 |= FM_PCD_PLCR_PAR_PWSEL_PEYNIA; + if(red) + tmpReg32 |= FM_PCD_PLCR_PAR_PWSEL_PERNIA; + + return tmpReg32; +} + +void FmPcdPlcrUpdateRequiredAction(t_Handle h_FmPcd, uint16_t absoluteProfileId, uint32_t requiredAction) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + ASSERT_COND(p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].valid); + + p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].requiredAction = requiredAction; +} + +t_Error FmPcdPlcrProfileTryLock(t_Handle h_FmPcd, uint16_t profileId, bool intr) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + bool ans; + if (intr) + ans = TRY_LOCK(NULL, &p_FmPcd->p_FmPcdPlcr->profiles[profileId].lock); + else + ans = TRY_LOCK(p_FmPcd->h_Spinlock, &p_FmPcd->p_FmPcdPlcr->profiles[profileId].lock); + if (ans) + return E_OK; + return ERROR_CODE(E_BUSY); +} + +void FmPcdPlcrReleaseProfileLock(t_Handle h_FmPcd, uint16_t profileId) +{ + RELEASE_LOCK(((t_FmPcd*)h_FmPcd)->p_FmPcdPlcr->profiles[profileId].lock); +} + +/**************************************************/ +/*............Policer API.........................*/ +/**************************************************/ + +t_Handle FM_PCD_PlcrSetProfile(t_Handle h_FmPcd, + t_FmPcdPlcrProfileParams *p_Profile) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_FmPcdPlcrRegs *p_FmPcdPlcrRegs; + t_FmPcdPlcrInterModuleProfileRegs plcrProfileReg; + uint32_t intFlags; + uint16_t absoluteProfileId; + t_Error err = E_OK; + uint32_t tmpReg32; + + SANITY_CHECK_RETURN_VALUE(p_FmPcd, E_INVALID_HANDLE, NULL); + SANITY_CHECK_RETURN_VALUE(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE, NULL); + SANITY_CHECK_RETURN_VALUE(p_FmPcd->p_FmPcdPlcr, E_INVALID_HANDLE, NULL); + + if (p_FmPcd->h_Hc) + return FmHcPcdPlcrSetProfile(p_FmPcd->h_Hc, p_Profile); + + p_FmPcdPlcrRegs = p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs; + SANITY_CHECK_RETURN_VALUE(p_FmPcdPlcrRegs, E_INVALID_HANDLE, NULL); + + if (p_Profile->modify) + { + absoluteProfileId = (uint16_t)(PTR_TO_UINT(p_Profile->id.h_Profile)-1); + if (absoluteProfileId >= FM_PCD_PLCR_NUM_ENTRIES) + { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("profileId too Big ")); + return NULL; + } + if (FmPcdPlcrProfileTryLock(p_FmPcd, absoluteProfileId, FALSE)) + return NULL; + } + else + { + intFlags = FmPcdLock(p_FmPcd); + err = FmPcdPlcrGetAbsoluteProfileId(h_FmPcd, + p_Profile->id.newParams.profileType, + p_Profile->id.newParams.h_FmPort, + p_Profile->id.newParams.relativeProfileId, + &absoluteProfileId); + if (absoluteProfileId >= FM_PCD_PLCR_NUM_ENTRIES) + { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("profileId too Big ")); + return NULL; + } + if(err) + { + FmPcdUnlock(p_FmPcd, intFlags); + REPORT_ERROR(MAJOR, err, NO_MSG); + return NULL; + } + err = FmPcdPlcrProfileTryLock(p_FmPcd, absoluteProfileId, TRUE); + FmPcdUnlock(p_FmPcd, intFlags); + if (err) + return NULL; + } + + /* if no override, check first that this profile is unused */ + if(!p_Profile->modify) + { + /* read specified profile into profile registers */ + tmpReg32 = FmPcdPlcrBuildReadPlcrActionReg(absoluteProfileId); + intFlags = FmPcdLock(p_FmPcd); + WritePar(p_FmPcd, tmpReg32); + tmpReg32 = GET_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pemode); + FmPcdUnlock(p_FmPcd, intFlags); + if (tmpReg32 & FM_PCD_PLCR_PEMODE_PI) + { + RELEASE_LOCK(p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].lock); + REPORT_ERROR(MAJOR, E_ALREADY_EXISTS, ("Policer Profile is already used")); + return NULL; + } + } + + memset(&plcrProfileReg, 0, sizeof(t_FmPcdPlcrInterModuleProfileRegs)); + + err = FmPcdPlcrBuildProfile(h_FmPcd, p_Profile, &plcrProfileReg); + if(err) + { + RELEASE_LOCK(p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].lock); + REPORT_ERROR(MAJOR, err, NO_MSG); + return NULL; + } + + p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].nextEngineOnGreen = p_Profile->nextEngineOnGreen; + memcpy(&p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].paramsOnGreen, &(p_Profile->paramsOnGreen), sizeof(u_FmPcdPlcrNextEngineParams)); + + p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].nextEngineOnYellow = p_Profile->nextEngineOnYellow; + memcpy(&p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].paramsOnYellow, &(p_Profile->paramsOnYellow), sizeof(u_FmPcdPlcrNextEngineParams)); + + p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].nextEngineOnRed = p_Profile->nextEngineOnRed; + memcpy(&p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].paramsOnRed, &(p_Profile->paramsOnRed), sizeof(u_FmPcdPlcrNextEngineParams)); + + intFlags = FmPcdLock(p_FmPcd); + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pemode , plcrProfileReg.fmpl_pemode); + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pegnia , plcrProfileReg.fmpl_pegnia); + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_peynia , plcrProfileReg.fmpl_peynia); + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pernia , plcrProfileReg.fmpl_pernia); + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pecir , plcrProfileReg.fmpl_pecir); + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pecbs , plcrProfileReg.fmpl_pecbs); + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pepepir_eir,plcrProfileReg.fmpl_pepepir_eir); + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pepbs_ebs,plcrProfileReg.fmpl_pepbs_ebs); + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pelts , plcrProfileReg.fmpl_pelts); + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pects , plcrProfileReg.fmpl_pects); + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pepts_ets,plcrProfileReg.fmpl_pepts_ets); + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pegpc , plcrProfileReg.fmpl_pegpc); + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_peypc , plcrProfileReg.fmpl_peypc); + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_perpc , plcrProfileReg.fmpl_perpc); + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_perypc , plcrProfileReg.fmpl_perypc); + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_perrpc , plcrProfileReg.fmpl_perrpc); + + tmpReg32 = FmPcdPlcrBuildWritePlcrActionRegs(absoluteProfileId); + WritePar(p_FmPcd, tmpReg32); + + FmPcdUnlock(p_FmPcd, intFlags); + + if (!p_Profile->modify) + FmPcdPlcrValidateProfileSw(p_FmPcd,absoluteProfileId); + + RELEASE_LOCK(p_FmPcd->p_FmPcdPlcr->profiles[absoluteProfileId].lock); + + return UINT_TO_PTR((uint64_t)absoluteProfileId+1); +} + +t_Error FM_PCD_PlcrDeleteProfile(t_Handle h_FmPcd, t_Handle h_Profile) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint16_t profileIndx = (uint16_t)(PTR_TO_UINT(h_Profile)-1); + uint32_t tmpReg32, intFlags; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdPlcr, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR((profileIndx < FM_PCD_PLCR_NUM_ENTRIES), E_INVALID_SELECTION); + + if (p_FmPcd->h_Hc) + return FmHcPcdPlcrDeleteProfile(p_FmPcd->h_Hc, h_Profile); + + FmPcdPlcrInvalidateProfileSw(p_FmPcd,profileIndx); + + intFlags = FmPcdLock(p_FmPcd); + WRITE_UINT32(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->profileRegs.fmpl_pemode, ~FM_PCD_PLCR_PEMODE_PI); + + tmpReg32 = FmPcdPlcrBuildWritePlcrActionRegs(profileIndx); + WritePar(p_FmPcd, tmpReg32); + FmPcdUnlock(p_FmPcd, intFlags); + + return E_OK; +} + +/* ......... */ +/***************************************************/ +/*............Policer Profile Counter..............*/ +/***************************************************/ +uint32_t FM_PCD_PlcrGetProfileCounter(t_Handle h_FmPcd, t_Handle h_Profile, e_FmPcdPlcrProfileCounters counter) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint16_t profileIndx = (uint16_t)(PTR_TO_UINT(h_Profile)-1); + t_FmPcdPlcrRegs *p_FmPcdPlcrRegs; + uint32_t intFlags, counterVal = 0; + + SANITY_CHECK_RETURN_VALUE(p_FmPcd, E_INVALID_HANDLE, 0); + SANITY_CHECK_RETURN_VALUE(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE, 0); + SANITY_CHECK_RETURN_VALUE(p_FmPcd->p_FmPcdPlcr, E_INVALID_HANDLE, 0); + + if (p_FmPcd->h_Hc) + return FmHcPcdPlcrGetProfileCounter(p_FmPcd->h_Hc, h_Profile, counter); + + p_FmPcdPlcrRegs = p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs; + SANITY_CHECK_RETURN_VALUE(p_FmPcdPlcrRegs, E_INVALID_HANDLE, 0); + + if (profileIndx >= FM_PCD_PLCR_NUM_ENTRIES) + { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("profileId too Big ")); + return 0; + } + intFlags = FmPcdLock(p_FmPcd); + WritePar(p_FmPcd, FmPcdPlcrBuildReadPlcrActionReg(profileIndx)); + + if(!FmPcdPlcrHwProfileIsValid(GET_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pemode))) + { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Uninitialized profile")); + FmPcdUnlock(p_FmPcd, intFlags); + return 0; + } + + switch (counter) + { + case e_FM_PCD_PLCR_PROFILE_GREEN_PACKET_TOTAL_COUNTER: + counterVal = (GET_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pegpc)); + break; + case e_FM_PCD_PLCR_PROFILE_YELLOW_PACKET_TOTAL_COUNTER: + counterVal = GET_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_peypc); + break; + case e_FM_PCD_PLCR_PROFILE_RED_PACKET_TOTAL_COUNTER: + counterVal = GET_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_perpc); + break; + case e_FM_PCD_PLCR_PROFILE_RECOLOURED_YELLOW_PACKET_TOTAL_COUNTER: + counterVal = GET_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_perypc); + break; + case e_FM_PCD_PLCR_PROFILE_RECOLOURED_RED_PACKET_TOTAL_COUNTER: + counterVal = GET_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_perrpc); + break; + default: + REPORT_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + break; + } + FmPcdUnlock(p_FmPcd, intFlags); + + return counterVal; +} + + +t_Error FmPcdPlcrCcGetSetParams(t_Handle h_FmPcd, uint16_t profileIndx ,uint32_t requiredAction) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + t_FmPcdPlcr *p_FmPcdPlcr = p_FmPcd->p_FmPcdPlcr; + t_FmPcdPlcrRegs *p_FmPcdPlcrRegs = p_FmPcdPlcr->p_FmPcdPlcrRegs; + uint32_t tmpReg32, intFlags; + + if (p_FmPcd->h_Hc) + return FmHcPcdPlcrCcGetSetParams(p_FmPcd->h_Hc, profileIndx, requiredAction); + + if (profileIndx >= FM_PCD_PLCR_NUM_ENTRIES) + RETURN_ERROR(MAJOR, E_INVALID_VALUE,("Policer profile out of range")); + + if (FmPcdPlcrProfileTryLock(p_FmPcd, profileIndx, FALSE)) + RETURN_ERROR(MAJOR, E_INVALID_STATE,("Lock on PP FAILED")); + + intFlags = FmPcdLock(p_FmPcd); + WritePar(p_FmPcd, FmPcdPlcrBuildReadPlcrActionReg(profileIndx)); + + if(!FmPcdPlcrHwProfileIsValid(GET_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pemode))) + { + FmPcdUnlock(p_FmPcd, intFlags); + RELEASE_LOCK(p_FmPcd->p_FmPcdPlcr->profiles[profileIndx].lock); + RETURN_ERROR(MAJOR, E_INVALID_VALUE,("Policer profile is not valid")); + } + + ASSERT_COND(p_FmPcd->p_FmPcdPlcr->profiles[profileIndx].valid); + + if(!p_FmPcd->p_FmPcdPlcr->profiles[profileIndx].pointedOwners || + !(p_FmPcd->p_FmPcdPlcr->profiles[profileIndx].requiredAction & requiredAction)) + { + if(requiredAction & UPDATE_NIA_ENQ_WITHOUT_DMA) + { + if((p_FmPcd->p_FmPcdPlcr->profiles[profileIndx].nextEngineOnGreen!= e_FM_PCD_DONE) || + (p_FmPcd->p_FmPcdPlcr->profiles[profileIndx].nextEngineOnYellow!= e_FM_PCD_DONE) || + (p_FmPcd->p_FmPcdPlcr->profiles[profileIndx].nextEngineOnRed!= e_FM_PCD_DONE)) + { + FmPcdUnlock(p_FmPcd, intFlags); + RETURN_ERROR (MAJOR, E_OK, ("In this case the next engine can be e_FM_PCD_DONE")); + } + + if(p_FmPcd->p_FmPcdPlcr->profiles[profileIndx].paramsOnGreen.action == e_FM_PCD_ENQ_FRAME) + { + tmpReg32 = GET_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pegnia); + if(!(tmpReg32 & (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME))) + { + FmPcdUnlock(p_FmPcd, intFlags); + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Next engine of this policer profile has to be assigned to FM_PCD_DONE")); + } + tmpReg32 |= NIA_BMI_AC_ENQ_FRAME_WITHOUT_DMA; + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pegnia, tmpReg32); + tmpReg32 = FmPcdPlcrBuildWritePlcrActionReg(profileIndx); + tmpReg32 |= FM_PCD_PLCR_PAR_PWSEL_PEGNIA; + WritePar(p_FmPcd, tmpReg32); + } + + if(p_FmPcd->p_FmPcdPlcr->profiles[profileIndx].paramsOnYellow.action == e_FM_PCD_ENQ_FRAME) + { + tmpReg32 = GET_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_peynia); + if(!(tmpReg32 & (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME))) + { + FmPcdUnlock(p_FmPcd, intFlags); + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Next engine of this policer profile has to be assigned to FM_PCD_DONE")); + } + tmpReg32 |= NIA_BMI_AC_ENQ_FRAME_WITHOUT_DMA; + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_peynia, tmpReg32); + tmpReg32 = FmPcdPlcrBuildWritePlcrActionReg(profileIndx); + tmpReg32 |= FM_PCD_PLCR_PAR_PWSEL_PEYNIA; + WritePar(p_FmPcd, tmpReg32); + } + + if(p_FmPcd->p_FmPcdPlcr->profiles[profileIndx].paramsOnRed.action == e_FM_PCD_ENQ_FRAME) + { + tmpReg32 = GET_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pernia); + if(!(tmpReg32 & (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME))) + { + FmPcdUnlock(p_FmPcd, intFlags); + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Next engine of this policer profile has to be assigned to FM_PCD_DONE")); + } + tmpReg32 |= NIA_BMI_AC_ENQ_FRAME_WITHOUT_DMA; + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pernia, tmpReg32); + tmpReg32 = FmPcdPlcrBuildWritePlcrActionReg(profileIndx); + tmpReg32 |= FM_PCD_PLCR_PAR_PWSEL_PERNIA; + WritePar(p_FmPcd, tmpReg32); + } + } + } + FmPcdUnlock(p_FmPcd, intFlags); + + p_FmPcd->p_FmPcdPlcr->profiles[profileIndx].pointedOwners += 1; + p_FmPcd->p_FmPcdPlcr->profiles[profileIndx].requiredAction |= requiredAction; + + RELEASE_LOCK(p_FmPcd->p_FmPcdPlcr->profiles[profileIndx].lock); + + return E_OK; +} + +t_Error FM_PCD_PlcrSetProfileCounter(t_Handle h_FmPcd, t_Handle h_Profile, e_FmPcdPlcrProfileCounters counter, uint32_t value) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint16_t profileIndx = (uint16_t)(PTR_TO_UINT(h_Profile)-1); + t_FmPcdPlcrRegs *p_FmPcdPlcrRegs; + uint32_t tmpReg32, intFlags; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdPlcr, E_INVALID_HANDLE); + + if (p_FmPcd->h_Hc) + return FmHcPcdPlcrSetProfileCounter(p_FmPcd->h_Hc, h_Profile, counter, value); + + p_FmPcdPlcrRegs = p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs; + SANITY_CHECK_RETURN_ERROR(p_FmPcdPlcrRegs, E_INVALID_HANDLE); + + intFlags = FmPcdLock(p_FmPcd); + switch (counter) + { + case e_FM_PCD_PLCR_PROFILE_GREEN_PACKET_TOTAL_COUNTER: + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_pegpc, value); + break; + case e_FM_PCD_PLCR_PROFILE_YELLOW_PACKET_TOTAL_COUNTER: + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_peypc, value); + break; + case e_FM_PCD_PLCR_PROFILE_RED_PACKET_TOTAL_COUNTER: + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_perpc, value); + break; + case e_FM_PCD_PLCR_PROFILE_RECOLOURED_YELLOW_PACKET_TOTAL_COUNTER: + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_perypc ,value); + break; + case e_FM_PCD_PLCR_PROFILE_RECOLOURED_RED_PACKET_TOTAL_COUNTER: + WRITE_UINT32(p_FmPcdPlcrRegs->profileRegs.fmpl_perrpc ,value); + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, NO_MSG); + } + + /* Activate the atomic write action by writing FMPL_PAR with: GO=1, RW=1, PSI=0, PNUM = + * Profile Number, PWSEL=0xFFFF (select all words). + */ + tmpReg32 = FmPcdPlcrBuildWritePlcrActionReg(profileIndx); + tmpReg32 |= FmPcdPlcrBuildCounterProfileReg(counter); + WritePar(p_FmPcd, tmpReg32); + FmPcdUnlock(p_FmPcd, intFlags); + + return E_OK; +} + +t_Error FM_PCD_ConfigPlcrNumOfSharedProfiles(t_Handle h_FmPcd, uint16_t numOfSharedPlcrProfiles) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdDriverParam, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdPlcr, E_INVALID_HANDLE); + + p_FmPcd->p_FmPcdPlcr->numOfSharedProfiles = numOfSharedPlcrProfiles; + + return E_OK; +} + + +/* ... */ + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +t_Error FM_PCD_PlcrDumpRegs(t_Handle h_FmPcd) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + int i = 0; + t_FmPcdIpcMsg msg; + + DECLARE_DUMP; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdPlcr, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE); + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + msg.msgId = FM_PCD_PLCR_DUMP_REGS; + return XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId), + NULL, + NULL, + NULL, + NULL); + } + else + { + DUMP_SUBTITLE(("\n")); + DUMP_TITLE(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs, ("FmPcdPlcrRegs Regs")); + + DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_gcr); + DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_gsr); + DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_evr); + DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_ier); + DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_ifr); + DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_eevr); + DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_eier); + DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_eifr); + DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_rpcnt); + DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_ypcnt); + DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_rrpcnt); + DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_rypcnt); + DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_tpcnt); + DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_flmcnt); + + DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_serc); + DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_upcr); + DUMP_VAR(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs,fmpl_dpmr); + + + DUMP_TITLE(&p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_pmr, ("fmpl_pmr")); + DUMP_SUBSTRUCT_ARRAY(i, 63) + { + DUMP_MEMORY(&p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->fmpl_pmr[i], sizeof(uint32_t)); + } + + return E_OK; + } +} + +t_Error FM_PCD_PlcrProfileDumpRegs(t_Handle h_FmPcd, t_Handle h_Profile) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_FmPcdPlcrInterModuleProfileRegs *p_ProfilesRegs; + uint32_t tmpReg, intFlags; + uint16_t profileIndx = (uint16_t)(PTR_TO_UINT(h_Profile)-1); + t_FmPcdIpcMsg msg; + + DECLARE_DUMP; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdPlcr, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE); + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + msg.msgId = FM_PCD_PLCR_PROFILE_DUMP_REGS; + memcpy(msg.msgBody, (uint8_t *)&h_Profile, sizeof(uint32_t)); + return XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId) + sizeof(uint32_t), + NULL, + NULL, + NULL, + NULL); + } + else + { + DUMP_SUBTITLE(("\n")); + DUMP_TITLE(p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs, ("FmPcdPlcrRegs Profile Regs")); + + p_ProfilesRegs = &p_FmPcd->p_FmPcdPlcr->p_FmPcdPlcrRegs->profileRegs; + + tmpReg = FmPcdPlcrBuildReadPlcrActionReg((uint16_t)profileIndx); + intFlags = FmPcdLock(p_FmPcd); + WritePar(p_FmPcd, tmpReg); + + DUMP_TITLE(p_ProfilesRegs, ("Profile %d regs", profileIndx)); + + DUMP_VAR(p_ProfilesRegs, fmpl_pemode); + DUMP_VAR(p_ProfilesRegs, fmpl_pegnia); + DUMP_VAR(p_ProfilesRegs, fmpl_peynia); + DUMP_VAR(p_ProfilesRegs, fmpl_pernia); + DUMP_VAR(p_ProfilesRegs, fmpl_pecir); + DUMP_VAR(p_ProfilesRegs, fmpl_pecbs); + DUMP_VAR(p_ProfilesRegs, fmpl_pepepir_eir); + DUMP_VAR(p_ProfilesRegs, fmpl_pepbs_ebs); + DUMP_VAR(p_ProfilesRegs, fmpl_pelts); + DUMP_VAR(p_ProfilesRegs, fmpl_pects); + DUMP_VAR(p_ProfilesRegs, fmpl_pepts_ets); + DUMP_VAR(p_ProfilesRegs, fmpl_pegpc); + DUMP_VAR(p_ProfilesRegs, fmpl_peypc); + DUMP_VAR(p_ProfilesRegs, fmpl_perpc); + DUMP_VAR(p_ProfilesRegs, fmpl_perypc); + DUMP_VAR(p_ProfilesRegs, fmpl_perrpc); + FmPcdUnlock(p_FmPcd, intFlags); + + return E_OK; + } +} +#endif /* (defined(DEBUG_ERRORS) && ... */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/Pcd/fm_prs.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/Pcd/fm_prs.c @@ -0,0 +1,517 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fm_pcd.c + + @Description FM PCD ... +*//***************************************************************************/ +#include "std_ext.h" +#include "error_ext.h" +#include "string_ext.h" +#include "debug_ext.h" +#include "net_ext.h" + +#include "fm_common.h" +#include "fm_pcd.h" +#include "fm_pcd_ipc.h" + + +t_Handle PrsConfig(t_FmPcd *p_FmPcd,t_FmPcdParams *p_FmPcdParams) +{ + t_FmPcdPrs *p_FmPcdPrs; + uintptr_t baseAddr; + + UNUSED(p_FmPcd); + UNUSED(p_FmPcdParams); + + p_FmPcdPrs = (t_FmPcdPrs *) XX_Malloc(sizeof(t_FmPcdPrs)); + if (!p_FmPcdPrs) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM Parser structure allocation FAILED")); + return NULL; + } + memset(p_FmPcdPrs, 0, sizeof(t_FmPcdPrs)); + + if (p_FmPcd->guestId == NCSW_MASTER_ID) + { + baseAddr = FmGetPcdPrsBaseAddr(p_FmPcdParams->h_Fm); + p_FmPcdPrs->p_SwPrsCode = (uint32_t *)UINT_TO_PTR(baseAddr); + p_FmPcdPrs->p_FmPcdPrsRegs = (t_FmPcdPrsRegs *)UINT_TO_PTR(baseAddr + PRS_REGS_OFFSET); + } + + p_FmPcdPrs->fmPcdPrsPortIdStatistics = 0; + p_FmPcd->p_FmPcdDriverParam->prsMaxParseCycleLimit = DEFAULT_prsMaxParseCycleLimit; + p_FmPcd->exceptions |= (DEFAULT_fmPcdPrsErrorExceptions | DEFAULT_fmPcdPrsExceptions); + + return p_FmPcdPrs; +} + +static void PcdPrsErrorException(t_Handle h_FmPcd) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + uint32_t event, mask, force; + + ASSERT_COND(p_FmPcd->guestId == NCSW_MASTER_ID); + event = GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->perr); + mask = GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->perer); + + event &= mask; + + /* clear the forced events */ + force = GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->perfr); + if(force & event) + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->perfr, force & ~event); + + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->perr, event); + + DBG(TRACE, ("parser error - 0x%08x\n",event)); + + if(event & FM_PCD_PRS_DOUBLE_ECC) + p_FmPcd->f_Exception(p_FmPcd->h_App,e_FM_PCD_PRS_EXCEPTION_DOUBLE_ECC); +} + +static void PcdPrsException(t_Handle h_FmPcd) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + uint32_t event, force; + + ASSERT_COND(p_FmPcd->guestId == NCSW_MASTER_ID); + event = GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->pevr); + event &= GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->pever); + + ASSERT_COND(event & FM_PCD_PRS_SINGLE_ECC); + + DBG(TRACE, ("parser event - 0x%08x\n",event)); + + /* clear the forced events */ + force = GET_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->pevfr); + if(force & event) + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->pevfr, force & ~event); + + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->pevr, event); + + p_FmPcd->f_Exception(p_FmPcd->h_App,e_FM_PCD_PRS_EXCEPTION_SINGLE_ECC); +} + +static uint32_t GetSwPrsOffset(t_Handle h_FmPcd, e_NetHeaderType hdr, uint8_t indexPerHdr) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + int i; + t_FmPcdPrsLabelParams *p_Label; + + SANITY_CHECK_RETURN_VALUE(p_FmPcd, E_INVALID_HANDLE, 0); + SANITY_CHECK_RETURN_VALUE(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_HANDLE, 0); + + ASSERT_COND(p_FmPcd->guestId == NCSW_MASTER_ID); + ASSERT_COND(p_FmPcd->p_FmPcdPrs->currLabel < FM_PCD_PRS_NUM_OF_LABELS); + + for (i=0; i < p_FmPcd->p_FmPcdPrs->currLabel; i++) + { + p_Label = &p_FmPcd->p_FmPcdPrs->labelsTable[i]; + + if ((hdr == p_Label->hdr) && (indexPerHdr == p_Label->indexPerHdr)) + return p_Label->instructionOffset; + } + + REPORT_ERROR(MAJOR, E_NOT_FOUND, ("Sw Parser attachment Not found")); + return (uint32_t)ILLEGAL_BASE; +} + +t_Error PrsInit(t_FmPcd *p_FmPcd) +{ + t_FmPcdDriverParam *p_Param = p_FmPcd->p_FmPcdDriverParam; + t_FmPcdPrsRegs *p_Regs = p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs; + uint32_t tmpReg; + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + return E_OK; + + ASSERT_COND(p_FmPcd->guestId == NCSW_MASTER_ID); + +#ifdef FM_PRS_MEM_ERRATA_FMAN_SW003 + { + uint32_t i; + uint32_t regsToGlobalOffset = 0x840; + uint32_t firstPortToGlobalOffset = 0x45800; + uint64_t globalAddr = PTR_TO_UINT(p_Regs) - regsToGlobalOffset; + uint32_t firstPortAddr = (uint32_t)(globalAddr - (uint64_t)firstPortToGlobalOffset); + uint32_t portSize = 0x1000; + t_FmRevisionInfo revInfo; + + FM_GetRevision(p_FmPcd->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + { + /* clear all parser memory */ + IOMemSet32(UINT_TO_PTR(globalAddr), 0x00000000, 0x800); + for(i = 0;i<16;i++) + IOMemSet32(UINT_TO_PTR(firstPortAddr+i*portSize), (uint8_t)0x00000000, (uint32_t)0x80); + } + } +#endif /* FM_PRS_MEM_ERRATA_FMAN_SW003 */ + + /**********************RPCLIM******************/ + WRITE_UINT32(p_Regs->rpclim, (uint32_t)p_Param->prsMaxParseCycleLimit); + /**********************FMPL_RPCLIM******************/ + + /* register even if no interrupts enabled, to allow future enablement */ + FmRegisterIntr(p_FmPcd->h_Fm, e_FM_MOD_PRS, 0, e_FM_INTR_TYPE_ERR, PcdPrsErrorException, p_FmPcd); + + /* register even if no interrupts enabled, to allow future enablement */ + FmRegisterIntr(p_FmPcd->h_Fm, e_FM_MOD_PRS, 0, e_FM_INTR_TYPE_NORMAL, PcdPrsException, p_FmPcd); + + /**********************PEVR******************/ + WRITE_UINT32(p_Regs->pevr, (FM_PCD_PRS_SINGLE_ECC | FM_PCD_PRS_PORT_IDLE_STS) ); + /**********************PEVR******************/ + + /**********************PEVER******************/ + if(p_FmPcd->exceptions & FM_PCD_EX_PRS_SINGLE_ECC) + { + FmEnableRamsEcc(p_FmPcd->h_Fm); + WRITE_UINT32(p_Regs->pever, FM_PCD_PRS_SINGLE_ECC); + } + else + WRITE_UINT32(p_Regs->pever, 0); + /**********************PEVER******************/ + + /**********************PERR******************/ + WRITE_UINT32(p_Regs->perr, FM_PCD_PRS_DOUBLE_ECC); + + /**********************PERR******************/ + + /**********************PERER******************/ + tmpReg = 0; + if(p_FmPcd->exceptions & FM_PCD_EX_PRS_DOUBLE_ECC) + { + FmEnableRamsEcc(p_FmPcd->h_Fm); + tmpReg |= FM_PCD_PRS_DOUBLE_ECC; + } + WRITE_UINT32(p_Regs->perer, tmpReg); + /**********************PERER******************/ + + /**********************PPCS******************/ + WRITE_UINT32(p_Regs->ppsc, p_FmPcd->p_FmPcdPrs->fmPcdPrsPortIdStatistics); + /**********************PPCS******************/ + +#ifdef FM_PRS_L4_SHELL_ERRATA_FMANb + { + uint32_t i, j; + t_FmRevisionInfo revInfo; + uint8_t swPrsL4Patch[] = SW_PRS_L4_PATCH; + + FM_GetRevision(p_FmPcd->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + { + /* load sw parser L4 patch */ + for(i=0;ip_FmPcdPrs->p_SwPrsCode+ FM_PCD_PRS_SW_OFFSET/4 + i), tmpReg); + } + p_FmPcd->p_FmPcdPrs->p_CurrSwPrs = FM_PCD_PRS_SW_OFFSET/4 + p_FmPcd->p_FmPcdPrs->p_SwPrsCode+sizeof(swPrsL4Patch)/4; + } + } +#endif /* FM_PRS_L4_SHELL_ERRATA_FMANb */ + + return E_OK; +} + +void PrsFree(t_FmPcd *p_FmPcd ) +{ + ASSERT_COND(p_FmPcd->guestId == NCSW_MASTER_ID); + FmUnregisterIntr(p_FmPcd->h_Fm, e_FM_MOD_PRS, 0, e_FM_INTR_TYPE_ERR); + /* register even if no interrupts enabled, to allow future enablement */ + FmUnregisterIntr(p_FmPcd->h_Fm, e_FM_MOD_PRS, 0, e_FM_INTR_TYPE_NORMAL); +} + +void PrsEnable(t_FmPcd *p_FmPcd ) +{ + t_FmPcdPrsRegs *p_Regs = p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs; + + ASSERT_COND(p_FmPcd->guestId == NCSW_MASTER_ID); + WRITE_UINT32(p_Regs->rpimac, GET_UINT32(p_Regs->rpimac) | FM_PCD_PRS_RPIMAC_EN); +} + +void PrsDisable(t_FmPcd *p_FmPcd ) +{ + t_FmPcdPrsRegs *p_Regs = p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs; + + ASSERT_COND(p_FmPcd->guestId == NCSW_MASTER_ID); + WRITE_UINT32(p_Regs->rpimac, GET_UINT32(p_Regs->rpimac) & ~FM_PCD_PRS_RPIMAC_EN); +} + +t_Error PrsIncludePortInStatistics(t_FmPcd *p_FmPcd, uint8_t hardwarePortId, bool include) +{ + uint32_t bitMask = 0; + uint8_t prsPortId; + + SANITY_CHECK_RETURN_ERROR((hardwarePortId >=1 && hardwarePortId <= 16), E_INVALID_VALUE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdPrs, E_INVALID_HANDLE); + + GET_FM_PCD_PRS_PORT_ID(prsPortId, hardwarePortId); + GET_FM_PCD_INDEX_FLAG(bitMask, prsPortId); + + if(include) + p_FmPcd->p_FmPcdPrs->fmPcdPrsPortIdStatistics |= bitMask; + else + p_FmPcd->p_FmPcdPrs->fmPcdPrsPortIdStatistics &= ~bitMask; + + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->ppsc, p_FmPcd->p_FmPcdPrs->fmPcdPrsPortIdStatistics); + + return E_OK; +} + +t_Error FmPcdPrsIncludePortInStatistics(t_Handle h_FmPcd, uint8_t hardwarePortId, bool include) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + t_FmPcdIpcPrsIncludePort prsIncludePortParams; + t_FmPcdIpcMsg msg; + t_Error err; + + SANITY_CHECK_RETURN_ERROR((hardwarePortId >=1 && hardwarePortId <= 16), E_INVALID_VALUE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdPrs, E_INVALID_HANDLE); + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + { + prsIncludePortParams.hardwarePortId = hardwarePortId; + prsIncludePortParams.include = include; + memset(&msg, 0, sizeof(msg)); + msg.msgId = FM_PCD_PRS_INC_PORT_STATS; + memcpy(msg.msgBody, &prsIncludePortParams, sizeof(prsIncludePortParams)); + if ((err = XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId) +sizeof(prsIncludePortParams), + NULL, + NULL, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + return E_OK; + } + return PrsIncludePortInStatistics(p_FmPcd, hardwarePortId, include); +} + +uint32_t FmPcdGetSwPrsOffset(t_Handle h_FmPcd, e_NetHeaderType hdr, uint8_t indexPerHdr) +{ + t_FmPcd *p_FmPcd = (t_FmPcd *)h_FmPcd; + t_Error err = E_OK; + t_FmPcdIpcSwPrsLable labelParams; + t_FmPcdIpcMsg msg; + uint32_t prsOffset = 0; + t_FmPcdIpcReply reply; + uint32_t replyLength; + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + { + memset(&reply, 0, sizeof(reply)); + memset(&msg, 0, sizeof(msg)); + labelParams.enumHdr = (uint32_t)hdr; + labelParams.indexPerHdr = indexPerHdr; + msg.msgId = FM_PCD_GET_SW_PRS_OFFSET; + memcpy(msg.msgBody, &labelParams, sizeof(labelParams)); + replyLength = sizeof(uint32_t) + sizeof(uint32_t); + if ((err = XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId) +sizeof(labelParams), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + if(replyLength != sizeof(uint32_t) + sizeof(uint32_t)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + + memcpy((uint8_t*)&prsOffset, reply.replyBody, sizeof(uint32_t)); + return prsOffset; + } + + return GetSwPrsOffset(h_FmPcd, hdr, indexPerHdr); +} + +void FM_PCD_SetPrsStatistics(t_Handle h_FmPcd, bool enable) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + SANITY_CHECK_RETURN(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN(p_FmPcd->p_FmPcdPrs, E_INVALID_HANDLE); + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + { + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("FM_PCD_SetPrsStatistics - guest mode!")); + return; + } + if(enable) + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->ppsc, FM_PCD_PRS_PPSC_ALL_PORTS); + else + WRITE_UINT32(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs->ppsc, 0); + +} + +t_Error FM_PCD_PrsLoadSw(t_Handle h_FmPcd, t_FmPcdPrsSwParams *p_SwPrs) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + uint32_t *p_LoadTarget, tmpReg; + int i, j; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdPrs, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_SwPrs, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->enabled, E_INVALID_HANDLE); + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("FM_PCD_PrsLoadSw - guest mode!")); + + if(!p_SwPrs->override) + { + if(p_FmPcd->p_FmPcdPrs->p_CurrSwPrs > p_FmPcd->p_FmPcdPrs->p_SwPrsCode + p_SwPrs->base*2/4) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("SW parser base must be larger than current loaded code")); + } + if(p_SwPrs->size > FM_PCD_SW_PRS_SIZE - FM_PCD_PRS_SW_TAIL_SIZE - p_SwPrs->base*2) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("p_SwPrs->size may not be larger than MAX_SW_PRS_CODE_SIZE")); + if(p_SwPrs->size % 4) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("p_SwPrs->size must be divisible by 4")); + + /* save sw parser labels */ + if(p_SwPrs->override) + p_FmPcd->p_FmPcdPrs->currLabel = 0; + if(p_FmPcd->p_FmPcdPrs->currLabel+ p_SwPrs->numOfLabels > FM_PCD_PRS_NUM_OF_LABELS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Exceeded number of labels allowed ")); + memcpy(&p_FmPcd->p_FmPcdPrs->labelsTable[p_FmPcd->p_FmPcdPrs->currLabel], p_SwPrs->labelsTable, p_SwPrs->numOfLabels*sizeof(t_FmPcdPrsLabelParams)); + p_FmPcd->p_FmPcdPrs->currLabel += p_SwPrs->numOfLabels; + /* load sw parser code */ + p_LoadTarget = p_FmPcd->p_FmPcdPrs->p_SwPrsCode + p_SwPrs->base*2/4; + for(i=0;isize/4;i++) + { + tmpReg = 0; + for(j =0;j<4;j++) + { + tmpReg <<= 8; + tmpReg |= *(p_SwPrs->p_Code+i*4+j); + } + WRITE_UINT32(*(p_LoadTarget + i), tmpReg); + } + p_FmPcd->p_FmPcdPrs->p_CurrSwPrs = p_FmPcd->p_FmPcdPrs->p_SwPrsCode + p_SwPrs->base*2/4 + p_SwPrs->size/4; + + /* copy data parameters */ + for(i=0;ip_FmPcdPrs->p_SwPrsCode+PRS_SW_DATA/4+i), p_SwPrs->swPrsDataParams[i]); + + + /* Clear last 4 bytes */ + WRITE_UINT32(*(p_FmPcd->p_FmPcdPrs->p_SwPrsCode+(PRS_SW_DATA-FM_PCD_PRS_SW_TAIL_SIZE)/4), 0); + + return E_OK; +} + +t_Error FM_PCD_ConfigPrsMaxCycleLimit(t_Handle h_FmPcd,uint16_t value) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdDriverParam, E_INVALID_HANDLE); + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("FM_PCD_ConfigPrsMaxCycleLimit - guest mode!")); + + p_FmPcd->p_FmPcdDriverParam->prsMaxParseCycleLimit = value; + + return E_OK; +} + + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +t_Error FM_PCD_PrsDumpRegs(t_Handle h_FmPcd) +{ + t_FmPcd *p_FmPcd = (t_FmPcd*)h_FmPcd; + t_FmPcdIpcMsg msg; + + DECLARE_DUMP; + + SANITY_CHECK_RETURN_ERROR(p_FmPcd, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPcd->p_FmPcdPrs, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPcd->p_FmPcdDriverParam, E_INVALID_STATE); + + if(p_FmPcd->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + msg.msgId = FM_PCD_PRS_DUMP_REGS; + return XX_IpcSendMessage(p_FmPcd->h_IpcSession, + (uint8_t*)&msg, + sizeof(msg.msgId), + NULL, + NULL, + NULL, + NULL); + } + DUMP_SUBTITLE(("\n")); + DUMP_TITLE(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs, ("FmPcdPrsRegs Regs")); + + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,rpclim); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,rpimac); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,pmeec); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,pevr); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,pever); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,pevfr); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,perr); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,perer); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,perfr); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,ppsc); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,pds); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,l2rrs); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,l3rrs); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,l4rrs); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,srrs); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,l2rres); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,l3rres); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,l4rres); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,srres); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,spcs); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,spscs); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,hxscs); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,mrcs); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,mwcs); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,mrscs); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,mwscs); + DUMP_VAR(p_FmPcd->p_FmPcdPrs->p_FmPcdPrsRegs,fcscs); + + return E_OK; +} +#endif /* (defined(DEBUG_ERRORS) && ... */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/Port/Makefile +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/Port/Makefile @@ -0,0 +1,19 @@ +# +# Makefile for the Freescale Ethernet controllers +# +EXTRA_CFLAGS += -DVERSION=\"\" +# +#Include netcomm SW specific definitions +include $(srctree)/drivers/net/dpa/NetCommSw/ncsw_config.mk + +NCSW_FM_INC = $(srctree)/drivers/net/dpa/NetCommSw/Peripherals/FM/inc + +EXTRA_CFLAGS += -I$(NCSW_FM_INC) + +obj-y += fsl-ncsw-Pcd.o + +fsl-ncsw-Pcd-objs := fm_port.o fm_port_im.o + + + + --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/Port/fm_port.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/Port/fm_port.c @@ -0,0 +1,5060 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fm_port.c + + @Description FM driver routines implementation. +*//***************************************************************************/ +#include "error_ext.h" +#include "std_ext.h" +#include "string_ext.h" +#include "sprint_ext.h" +#include "debug_ext.h" +#include "fm_pcd_ext.h" + +#include "fm_port.h" + + +/****************************************/ +/* static functions */ +/****************************************/ + +static t_Error CheckInitParameters(t_FmPort *p_FmPort) +{ + t_FmPortDriverParam *p_Params = p_FmPort->p_FmPortDriverParam; + t_Error ans = E_OK; + uint32_t unusedMask; + uint8_t i; + uint8_t j; + bool found; + + if (p_FmPort->imEn) + { + if ((ans = FmPortImCheckInitParameters(p_FmPort)) != E_OK) + return ERROR_CODE(ans); + } + else + { + /****************************************/ + /* Rx only */ + /****************************************/ + if((p_FmPort->portType == e_FM_PORT_TYPE_RX) || (p_FmPort->portType == e_FM_PORT_TYPE_RX_10G)) + { + /* external buffer pools */ + if(!p_Params->extBufPools.numOfPoolsUsed) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("extBufPools.numOfPoolsUsed=0. At least one buffer pool must be defined")); + + if(p_Params->extBufPools.numOfPoolsUsed > FM_PORT_MAX_NUM_OF_EXT_POOLS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("numOfPoolsUsed can't be larger than %d", FM_PORT_MAX_NUM_OF_EXT_POOLS)); + + for(i=0;iextBufPools.numOfPoolsUsed;i++) + { + if(p_Params->extBufPools.extBufPool[i].id >= BM_MAX_NUM_OF_POOLS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("extBufPools.extBufPool[%d].id can't be larger than %d", i, BM_MAX_NUM_OF_POOLS)); + if(!p_Params->extBufPools.extBufPool[i].size) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("extBufPools.extBufPool[%d].size is 0", i)); + } + + /* backup BM pools indication is valid only for some chip deriviatives + (limited by the config routine) */ + if(p_Params->p_BackupBmPools) + { + if(p_Params->p_BackupBmPools->numOfBackupPools >= p_Params->extBufPools.numOfPoolsUsed) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("p_BackupBmPools must be smaller than extBufPools.numOfPoolsUsed")); + found = FALSE; + for(i = 0;ip_BackupBmPools->numOfBackupPools;i++) + for(j=0;jextBufPools.numOfPoolsUsed;j++) + if(p_Params->p_BackupBmPools->poolIds[i] == p_Params->extBufPools.extBufPool[j].id) + found = TRUE; + if (!found) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("All p_BackupBmPools.poolIds must be included in extBufPools.extBufPool[n].id")); + } + + /* up to extBufPools.numOfPoolsUsed pools may be defined */ + if(p_Params->bufPoolDepletion.numberOfPoolsModeEnable) + { + if((p_Params->bufPoolDepletion.numOfPools > p_Params->extBufPools.numOfPoolsUsed)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("bufPoolDepletion.numOfPools can't be larger than %d and can't be larger than numOfPoolsUsed", FM_PORT_MAX_NUM_OF_EXT_POOLS)); + + if(!p_Params->bufPoolDepletion.numOfPools) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("bufPoolDepletion.numOfPoolsToConsider can not be 0 when numberOfPoolsModeEnable=TRUE")); + } + /* Check that part of IC that needs copying is small enough to enter start margin */ + if(p_Params->intContext.size + p_Params->intContext.extBufOffset > p_Params->bufMargins.startMargins) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("intContext.size is larger than start margins")); + + if(p_Params->liodnOffset & ~FM_LIODN_OFFSET_MASK) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("liodnOffset is larger than %d", FM_LIODN_OFFSET_MASK+1)); +#ifdef FM_PARTITION_ARRAY + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + { + if(p_Params->liodnOffset >= MAX_LIODN_OFFSET) + { + p_Params->liodnOffset = (uint16_t)(p_Params->liodnOffset & (MAX_LIODN_OFFSET-1)); + DBG(WARNING, ("liodnOffset number is out of rev1 range - MSB bits cleard.")); + } + } + } +#endif /* FM_PARTITION_ARRAY */ + } + + /****************************************/ + /* Non Rx ports */ + /****************************************/ + else + { + if(p_Params->deqSubPortal >= MAX_QMI_DEQ_SUBPORTAL) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, (" deqSubPortal has to be in the range of 0 - %d", MAX_QMI_DEQ_SUBPORTAL)); + + /* to protect HW internal-context from overwrite */ + if((p_Params->intContext.size) && (p_Params->intContext.intContextOffset < MIN_TX_INT_OFFSET)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("non-Rx intContext.intContextOffset can't be smaller than %d", MIN_TX_INT_OFFSET)); + } + + /****************************************/ + /* Rx Or Offline Parsing */ + /****************************************/ + if((p_FmPort->portType == e_FM_PORT_TYPE_RX) || (p_FmPort->portType == e_FM_PORT_TYPE_RX_10G) || (p_FmPort->portType == e_FM_PORT_TYPE_OH_OFFLINE_PARSING)) + { + + if(!p_Params->dfltFqid) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("dfltFqid must be between 1 and 2^24-1")); +#if defined(FM_CAPWAP_SUPPORT) && defined(FM_LOCKUP_ALIGNMENT_ERRATA_FMAN_SW004) + if(p_FmPort->p_FmPortDriverParam->bufferPrefixContent.manipExtraSpace % 16) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("bufferPrefixContent.manipExtraSpace has to be devidable by 16")); +#endif /* defined(FM_CAPWAP_SUPPORT) && ... */ + } + + /****************************************/ + /* All ports */ + /****************************************/ + /* common BMI registers values */ + /* Check that Queue Id is not larger than 2^24, and is not 0 */ + if((p_Params->errFqid & ~0x00FFFFFF) || !p_Params->errFqid) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("errFqid must be between 1 and 2^24-1")); + if(p_Params->dfltFqid & ~0x00FFFFFF) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("dfltFqid must be between 1 and 2^24-1")); + } + + /****************************************/ + /* Rx only */ + /****************************************/ + if((p_FmPort->portType == e_FM_PORT_TYPE_RX) || (p_FmPort->portType == e_FM_PORT_TYPE_RX_10G)) + { + /* Check that divisible by 256 and not larger than 256 */ + if(p_Params->rxFifoPriElevationLevel % BMI_FIFO_UNITS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("rxFifoPriElevationLevel has to be divisible by %d", BMI_FIFO_UNITS)); + if(!p_Params->rxFifoPriElevationLevel || (p_Params->rxFifoPriElevationLevel > BMI_MAX_FIFO_SIZE)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("rxFifoPriElevationLevel has to be in the range of 256 - %d", BMI_MAX_FIFO_SIZE)); + if(p_Params->rxFifoThreshold % BMI_FIFO_UNITS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("rxFifoThreshold has to be divisible by %d", BMI_FIFO_UNITS)); + if(!p_Params->rxFifoThreshold ||(p_Params->rxFifoThreshold > BMI_MAX_FIFO_SIZE)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("rxFifoThreshold has to be in the range of 256 - %d", BMI_MAX_FIFO_SIZE)); + + /* Check that not larger than 16 */ + if(p_Params->cutBytesFromEnd > FRAME_END_DATA_SIZE) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("cutBytesFromEnd can't be larger than %d", FRAME_END_DATA_SIZE)); + + /* Check the margin definition */ + if(p_Params->bufMargins.startMargins > MAX_EXT_BUFFER_OFFSET) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("bufMargins.startMargins can't be larger than %d", MAX_EXT_BUFFER_OFFSET)); + if(p_Params->bufMargins.endMargins > MAX_EXT_BUFFER_OFFSET) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("bufMargins.endMargins can't be larger than %d", MAX_EXT_BUFFER_OFFSET)); + + /* extra FIFO size (allowed only to Rx ports) */ + if(p_FmPort->fifoBufs.extra % BMI_FIFO_UNITS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("fifoBufs.extra has to be divisible by %d", BMI_FIFO_UNITS)); + + if(p_Params->bufPoolDepletion.numberOfPoolsModeEnable && + !p_Params->bufPoolDepletion.numOfPools) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("bufPoolDepletion.numOfPoolsToConsider can not be 0 when numberOfPoolsModeEnable=TRUE")); +#ifdef FM_CSI_CFED_LIMIT + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + + if (revInfo.majorRev == 4) + { + /* Check that not larger than 16 */ + if(p_Params->cutBytesFromEnd + p_Params->cheksumLastBytesIgnore > FRAME_END_DATA_SIZE) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("cheksumLastBytesIgnore + cutBytesFromEnd can't be larger than %d", FRAME_END_DATA_SIZE)); + } + } +#endif /* FM_CSI_CFED_LIMIT */ + + } + + /****************************************/ + /* Non Rx ports */ + /****************************************/ + else + /* extra FIFO size (allowed only to Rx ports) */ + if(p_FmPort->fifoBufs.extra) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, (" No fifoBufs.extra for non Rx ports")); + + /****************************************/ + /* Rx & Tx */ + /****************************************/ + if((p_FmPort->portType == e_FM_PORT_TYPE_TX) || (p_FmPort->portType == e_FM_PORT_TYPE_TX_10G) || + (p_FmPort->portType == e_FM_PORT_TYPE_RX) || (p_FmPort->portType == e_FM_PORT_TYPE_RX_10G)) + { + /* Check that not larger than 16 */ + if(p_Params->cheksumLastBytesIgnore > FRAME_END_DATA_SIZE) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("cheksumLastBytesIgnore can't be larger than %d", FRAME_END_DATA_SIZE)); + } + + /****************************************/ + /* Tx only */ + /****************************************/ + if((p_FmPort->portType == e_FM_PORT_TYPE_TX) || (p_FmPort->portType == e_FM_PORT_TYPE_TX_10G)) + { + /* Check that divisible by 256 and not larger than 256 */ + if(p_Params->txFifoMinFillLevel % BMI_FIFO_UNITS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("txFifoMinFillLevel has to be divisible by %d", BMI_FIFO_UNITS)); + if(p_Params->txFifoMinFillLevel > (BMI_MAX_FIFO_SIZE - 256)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("txFifoMinFillLevel has to be in the range of 0 - %d", BMI_MAX_FIFO_SIZE)); + if(p_Params->txFifoLowComfLevel % BMI_FIFO_UNITS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("txFifoLowComfLevel has to be divisible by %d", BMI_FIFO_UNITS)); + if(!p_Params->txFifoLowComfLevel || (p_Params->txFifoLowComfLevel > BMI_MAX_FIFO_SIZE)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("txFifoLowComfLevel has to be in the range of 256 - %d", BMI_MAX_FIFO_SIZE)); + + /* Check that not larger than 8 */ + if((!p_FmPort->txFifoDeqPipelineDepth) ||( p_FmPort->txFifoDeqPipelineDepth > MAX_FIFO_PIPELINE_DEPTH)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("txFifoDeqPipelineDepth can't be larger than %d", MAX_FIFO_PIPELINE_DEPTH)); + if(p_FmPort->portType == e_FM_PORT_TYPE_TX) + if(p_FmPort->txFifoDeqPipelineDepth > 2) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("txFifoDeqPipelineDepth for !G can't be larger than 2")); + } + else + /****************************************/ + /* Non Tx Ports */ + /****************************************/ + { + /* If discard override was selected , no frames may be discarded. */ + if(p_Params->frmDiscardOverride && p_Params->errorsToDiscard) + RETURN_ERROR(MAJOR, E_CONFLICT, ("errorsToDiscard is not empty, but frmDiscardOverride selected (all discarded frames to be enqueued to error queue).")); + } + + /****************************************/ + /* Rx and Offline parsing */ + /****************************************/ + if((p_FmPort->portType == e_FM_PORT_TYPE_RX) || (p_FmPort->portType == e_FM_PORT_TYPE_RX_10G) + || (p_FmPort->portType == e_FM_PORT_TYPE_OH_OFFLINE_PARSING)) + { + if(p_FmPort->portType == e_FM_PORT_TYPE_OH_OFFLINE_PARSING) + unusedMask = BMI_STATUS_OP_MASK_UNUSED; + else + unusedMask = BMI_STATUS_RX_MASK_UNUSED; + + /* Check that no common bits with BMI_STATUS_MASK_UNUSED */ + if(p_Params->errorsToDiscard & unusedMask) + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("errorsToDiscard contains undefined bits")); + } + + /****************************************/ + /* All ports */ + /****************************************/ + + /* Check that divisible by 16 and not larger than 240 */ + if(p_Params->intContext.intContextOffset >MAX_INT_OFFSET) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("intContext.intContextOffset can't be larger than %d", MAX_INT_OFFSET)); + if(p_Params->intContext.intContextOffset % OFFSET_UNITS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("intContext.intContextOffset has to be divisible by %d", OFFSET_UNITS)); + + /* check that ic size+ic internal offset, does not exceed ic block size */ + if(p_Params->intContext.size + p_Params->intContext.intContextOffset > MAX_IC_SIZE) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("intContext.size + intContext.intContextOffset has to be smaller than %d", MAX_IC_SIZE)); + /* Check that divisible by 16 and not larger than 256 */ + if(p_Params->intContext.size % OFFSET_UNITS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("intContext.size has to be divisible by %d", OFFSET_UNITS)); + + /* Check that divisible by 16 and not larger than 4K */ + if(p_Params->intContext.extBufOffset > MAX_EXT_OFFSET) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("intContext.extBufOffset can't be larger than %d", MAX_EXT_OFFSET)); + if(p_Params->intContext.extBufOffset % OFFSET_UNITS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("intContext.extBufOffset has to be divisible by %d", OFFSET_UNITS)); + + /* common BMI registers values */ + if((!p_FmPort->tasks.num) || (p_FmPort->tasks.num > MAX_NUM_OF_TASKS)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("tasks.num can't be larger than %d", MAX_NUM_OF_TASKS)); + if(p_FmPort->tasks.extra > MAX_NUM_OF_EXTRA_TASKS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("tasks.extra can't be larger than %d", MAX_NUM_OF_EXTRA_TASKS)); + if((!p_FmPort->openDmas.num) || (p_FmPort->openDmas.num > MAX_NUM_OF_DMAS)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("openDmas.num can't be larger than %d", MAX_NUM_OF_DMAS)); + if(p_FmPort->openDmas.extra > MAX_NUM_OF_EXTRA_DMAS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("openDmas.extra can't be larger than %d", MAX_NUM_OF_EXTRA_DMAS)); + if(!p_FmPort->fifoBufs.num || (p_FmPort->fifoBufs.num > BMI_MAX_FIFO_SIZE)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("fifoBufs.num has to be in the range of 256 - %d", BMI_MAX_FIFO_SIZE)); + if(p_FmPort->fifoBufs.num % BMI_FIFO_UNITS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("fifoBufs.num has to be divisible by %d", BMI_FIFO_UNITS)); + + return E_OK; +} + +static void FmPortDriverParamFree(t_FmPort *p_FmPort) +{ + if(p_FmPort->p_FmPortDriverParam) + { + XX_Free(p_FmPort->p_FmPortDriverParam); + p_FmPort->p_FmPortDriverParam = NULL; + } +} + +static t_Error SetExtBufferPools(t_FmPort *p_FmPort) +{ + t_FmPortExtPools *p_ExtBufPools = &p_FmPort->p_FmPortDriverParam->extBufPools; + t_FmPortBufPoolDepletion *p_BufPoolDepletion = &p_FmPort->p_FmPortDriverParam->bufPoolDepletion; + volatile uint32_t *p_ExtBufRegs; + volatile uint32_t *p_BufPoolDepletionReg; + bool rxPort; + bool found; + uint8_t orderedArray[FM_PORT_MAX_NUM_OF_EXT_POOLS]; + uint16_t sizesArray[BM_MAX_NUM_OF_POOLS]; + uint8_t count = 0; + uint8_t numOfPools; + uint16_t bufSize = 0, largestBufSize = 0; + int i=0, j=0, k=0; + uint32_t tmpReg, vector, minFifoSizeRequired=0; + + memset(&orderedArray, 0, sizeof(uint8_t) * FM_PORT_MAX_NUM_OF_EXT_POOLS); + memset(&sizesArray, 0, sizeof(uint16_t) * BM_MAX_NUM_OF_POOLS); + memcpy(&p_FmPort->extBufPools, p_ExtBufPools, sizeof(t_FmPortExtPools)); + + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + p_ExtBufRegs = p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_ebmpi; + p_BufPoolDepletionReg = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_mpd; + rxPort = TRUE; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + p_ExtBufRegs = p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_oebmpi; + p_BufPoolDepletionReg = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ompd; + rxPort = FALSE; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("Not available for port type")); + } + + /* First we copy the external buffers pools information to an ordered local array */ + for(i=0;inumOfPoolsUsed;i++) + { + /* get pool size */ + bufSize = p_ExtBufPools->extBufPool[i].size; + + /* keep sizes in an array according to poolId for direct access */ + sizesArray[p_ExtBufPools->extBufPool[i].id] = bufSize; + + /* save poolId in an ordered array according to size */ + for (j=0;j<=i;j++) + { + /* this is the next free place in the array */ + if (j==i) + orderedArray[i] = p_ExtBufPools->extBufPool[i].id; + else + { + /* find the right place for this poolId */ + if(bufSize < sizesArray[orderedArray[j]]) + { + /* move the poolIds one place ahead to make room for this poolId */ + for(k=i;k>j;k--) + orderedArray[k] = orderedArray[k-1]; + + /* now k==j, this is the place for the new size */ + orderedArray[k] = p_ExtBufPools->extBufPool[i].id; + break; + } + } + } + } + + /* build the register value */ + + for(i=0;inumOfPoolsUsed;i++) + { + tmpReg = BMI_EXT_BUF_POOL_VALID | BMI_EXT_BUF_POOL_EN_COUNTER; + tmpReg |= ((uint32_t)orderedArray[i] << BMI_EXT_BUF_POOL_ID_SHIFT); + tmpReg |= sizesArray[orderedArray[i]]; + /* functionality available only for some deriviatives (limited by config) */ + if(p_FmPort->p_FmPortDriverParam->p_BackupBmPools) + for(j=0;jp_FmPortDriverParam->p_BackupBmPools->numOfBackupPools;j++) + if(orderedArray[i] == p_FmPort->p_FmPortDriverParam->p_BackupBmPools->poolIds[j]) + { + tmpReg |= BMI_EXT_BUF_POOL_BACKUP; + break; + } + WRITE_UINT32(*(p_ExtBufRegs+i), tmpReg); + } + + if(p_FmPort->p_FmPortDriverParam->p_BackupBmPools) + XX_Free(p_FmPort->p_FmPortDriverParam->p_BackupBmPools); + + numOfPools = (uint8_t)(rxPort ? FM_PORT_MAX_NUM_OF_EXT_POOLS:FM_PORT_MAX_NUM_OF_OBSERVED_EXT_POOLS); + + /* clear unused pools */ + for(i=p_ExtBufPools->numOfPoolsUsed;irxPoolsParams.largestBufSize = largestBufSize = sizesArray[orderedArray[p_ExtBufPools->numOfPoolsUsed-1]]; + if((p_FmPort->portType == e_FM_PORT_TYPE_RX) || (p_FmPort->portType == e_FM_PORT_TYPE_RX_10G)) + { +#ifdef FM_FIFO_ALLOCATION_OLD_ALG + t_FmRevisionInfo revInfo; + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + + if(revInfo.majorRev != 4) + { + minFifoSizeRequired = (uint32_t)(((largestBufSize % BMI_FIFO_UNITS) ? + ((largestBufSize/BMI_FIFO_UNITS + 1) * BMI_FIFO_UNITS) : + largestBufSize) + + (7*BMI_FIFO_UNITS)); + } + else +#endif /* FM_FIFO_ALLOCATION_OLD_ALG */ + { + p_FmPort->rxPoolsParams.numOfPools = p_ExtBufPools->numOfPoolsUsed; + if(p_ExtBufPools->numOfPoolsUsed == 1) + minFifoSizeRequired = 8*BMI_FIFO_UNITS; + else + { + uint16_t secondLargestBufSize = sizesArray[orderedArray[p_ExtBufPools->numOfPoolsUsed-2]]; + p_FmPort->rxPoolsParams.secondLargestBufSize = secondLargestBufSize; + minFifoSizeRequired = (uint32_t)(((secondLargestBufSize % BMI_FIFO_UNITS) ? + ((secondLargestBufSize/BMI_FIFO_UNITS + 1) * BMI_FIFO_UNITS) : + secondLargestBufSize) + + (7*BMI_FIFO_UNITS)); + } + } + if(p_FmPort->fifoBufs.num < minFifoSizeRequired) + { + p_FmPort->fifoBufs.num = minFifoSizeRequired; + DBG(INFO, ("FIFO size for Rx port enlarged to %d",minFifoSizeRequired)); + } + } + + /* check if pool size is not too big */ + /* This is a definition problem in which if the fifo for the RX port + is lower than the largest pool size the hardware will allocate scatter gather + buffers even though the frame size can fit in a single buffer. */ + if (largestBufSize > p_FmPort->fifoBufs.num) + DBG(WARNING, ("Frame larger than port Fifo size (%u) will be split to more than a single buffer (S/G) even if shorter than largest buffer size (%u)", + p_FmPort->fifoBufs.num, largestBufSize)); + + /* pool depletion */ + tmpReg = 0; + if(p_BufPoolDepletion->numberOfPoolsModeEnable) + { + /* calculate vector for number of pools depletion */ + found = FALSE; + vector = 0; + count = 0; + for(i=0;ipoolsToConsider[i]) + { + for(j=0;jnumOfPoolsUsed;j++) + { + if (i == orderedArray[j]) + { + vector |= 0x80000000 >> j; + found = TRUE; + count++; + break; + } + } + if (!found) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Pools selected for depletion are not used.")); + else + found = FALSE; + } + } + if (count < p_BufPoolDepletion->numOfPools) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("bufPoolDepletion.numOfPools is larger than the number of pools defined.")); + + /* configure num of pools and vector for number of pools mode */ + tmpReg |= (((uint32_t)p_BufPoolDepletion->numOfPools - 1) << BMI_POOL_DEP_NUM_OF_POOLS_SHIFT); + tmpReg |= vector; + } + + if(p_BufPoolDepletion->singlePoolModeEnable) + { + /* calculate vector for number of pools depletion */ + found = FALSE; + vector = 0; + count = 0; + for(i=0;ipoolsToConsiderForSingleMode[i]) + { + for(j=0;jnumOfPoolsUsed;j++) + { + if (i == orderedArray[j]) + { + vector |= 0x00000080 >> j; + found = TRUE; + count++; + break; + } + } + if (!found) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Pools selected for depletion are not used.")); + else + found = FALSE; + } + } + if (!count) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("No pools defined for single buffer mode pool depletion.")); + + /* configure num of pools and vector for number of pools mode */ + tmpReg |= vector; + } + + WRITE_UINT32(*p_BufPoolDepletionReg, tmpReg); + + return E_OK; +} + +static t_Error ClearPerfCnts(t_FmPort *p_FmPort) +{ + FM_PORT_ModifyCounter(p_FmPort, e_FM_PORT_COUNTERS_TASK_UTIL, 0); + FM_PORT_ModifyCounter(p_FmPort, e_FM_PORT_COUNTERS_QUEUE_UTIL, 0); + FM_PORT_ModifyCounter(p_FmPort, e_FM_PORT_COUNTERS_DMA_UTIL, 0); + FM_PORT_ModifyCounter(p_FmPort, e_FM_PORT_COUNTERS_FIFO_UTIL, 0); + return E_OK; +} + +static t_Error BmiRxPortInit(t_FmPort *p_FmPort) +{ + t_FmPortRxBmiRegs *p_Regs = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs; + uint32_t tmpReg; + t_FmPortDriverParam *p_Params = p_FmPort->p_FmPortDriverParam; + uint32_t errorsToEnq = 0; + t_FmPortPerformanceCnt performanceContersParams; + t_Error err; + + /* check that port is not busy */ + if (GET_UINT32(p_Regs->fmbm_rcfg) & BMI_PORT_CFG_EN) + RETURN_ERROR(MAJOR, E_INVALID_STATE, + ("Port(%d,%d) is already enabled",p_FmPort->portType, p_FmPort->portId)); + + /* Set Config register */ + tmpReg = 0; + if (p_FmPort->imEn) + tmpReg |= BMI_PORT_CFG_IM; + /* No discard - all error frames go to error queue */ + else if (p_Params->frmDiscardOverride) + tmpReg |= BMI_PORT_CFG_FDOVR; + + WRITE_UINT32(p_Regs->fmbm_rcfg, tmpReg); + + /* Configure dma attributes */ + tmpReg = 0; + tmpReg |= (uint32_t)p_Params->dmaSwapData << BMI_DMA_ATTR_SWP_SHIFT; + tmpReg |= (uint32_t)p_Params->dmaIntContextCacheAttr << BMI_DMA_ATTR_IC_CACHE_SHIFT; + tmpReg |= (uint32_t)p_Params->dmaHeaderCacheAttr << BMI_DMA_ATTR_HDR_CACHE_SHIFT; + tmpReg |= (uint32_t)p_Params->dmaScatterGatherCacheAttr << BMI_DMA_ATTR_SG_CACHE_SHIFT; + if(p_Params->dmaWriteOptimize) + tmpReg |= BMI_DMA_ATTR_WRITE_OPTIMIZE; + + WRITE_UINT32(p_Regs->fmbm_rda, tmpReg); + + /* Configure Rx Fifo params */ + tmpReg = 0; + tmpReg |= ((p_Params->rxFifoPriElevationLevel/BMI_FIFO_UNITS - 1) << BMI_RX_FIFO_PRI_ELEVATION_SHIFT); + tmpReg |= ((p_Params->rxFifoThreshold/BMI_FIFO_UNITS - 1) << BMI_RX_FIFO_THRESHOLD_SHIFT); + + WRITE_UINT32(p_Regs->fmbm_rfp, tmpReg); + + { +#ifdef FM_NO_THRESHOLD_REG + t_FmRevisionInfo revInfo; + + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if (revInfo.majorRev > 1) +#endif /* FM_NO_THRESHOLD_REG */ + /* always allow access to the extra resources */ + WRITE_UINT32(p_Regs->fmbm_reth, BMI_RX_FIFO_THRESHOLD_BC); + } + + /* frame end parameters */ + tmpReg = 0; + tmpReg |= ((uint32_t)p_Params->cheksumLastBytesIgnore << BMI_RX_FRAME_END_CS_IGNORE_SHIFT); + tmpReg |= ((uint32_t)p_Params->cutBytesFromEnd<< BMI_RX_FRAME_END_CUT_SHIFT); + + WRITE_UINT32(p_Regs->fmbm_rfed, tmpReg); + + /* IC parameters */ + tmpReg = 0; + tmpReg |= (((uint32_t)p_Params->intContext.extBufOffset/OFFSET_UNITS) << BMI_IC_TO_EXT_SHIFT); + tmpReg |= (((uint32_t)p_Params->intContext.intContextOffset/OFFSET_UNITS) << BMI_IC_FROM_INT_SHIFT); + tmpReg |= (((uint32_t)p_Params->intContext.size/OFFSET_UNITS) << BMI_IC_SIZE_SHIFT); + + WRITE_UINT32(p_Regs->fmbm_ricp, tmpReg); + + if (!p_FmPort->imEn) + { + /* check if the largest external buffer pool is large enough */ + if(p_Params->bufMargins.startMargins + MIN_EXT_BUF_SIZE + p_Params->bufMargins.endMargins > p_FmPort->rxPoolsParams.largestBufSize) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("bufMargins.startMargins (%d) + minimum buf size (64) + bufMargins.endMargins (%d) is larger than maximum external buffer size (%d)", + p_Params->bufMargins.startMargins, p_Params->bufMargins.endMargins, p_FmPort->rxPoolsParams.largestBufSize)); + + /* buffer margins */ + tmpReg = 0; + tmpReg |= (((uint32_t)p_Params->bufMargins.startMargins) << BMI_EXT_BUF_MARG_START_SHIFT); + tmpReg |= (((uint32_t)p_Params->bufMargins.endMargins) << BMI_EXT_BUF_MARG_END_SHIFT); + + WRITE_UINT32(p_Regs->fmbm_rebm, tmpReg); + } + + + if(p_FmPort->internalBufferOffset) + { + tmpReg = (uint32_t)((p_FmPort->internalBufferOffset % OFFSET_UNITS) ? + (p_FmPort->internalBufferOffset/OFFSET_UNITS + 1): + (p_FmPort->internalBufferOffset/OFFSET_UNITS)); + p_FmPort->internalBufferOffset = (uint8_t)(tmpReg * OFFSET_UNITS); + WRITE_UINT32(p_Regs->fmbm_rim, tmpReg << BMI_IM_FOF_SHIFT); + } + + /* NIA */ + if (p_FmPort->imEn) + WRITE_UINT32(p_Regs->fmbm_rfne, NIA_ENG_FM_CTL | NIA_FM_CTL_AC_IND_MODE_RX); + else + { + tmpReg = 0; + if (p_Params->forwardReuseIntContext) + tmpReg |= BMI_PORT_RFNE_FRWD_RPD; + /* L3/L4 checksum verify is enabled by default. */ + /*tmpReg |= BMI_PORT_RFNE_FRWD_DCL4C;*/ + WRITE_UINT32(p_Regs->fmbm_rfne, tmpReg | NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME); + } + WRITE_UINT32(p_Regs->fmbm_rfene, NIA_ENG_QMI_ENQ | NIA_ORDER_RESTOR); + + /* command attribute */ + tmpReg = BMI_CMD_RX_MR_DEF; + if (!p_FmPort->imEn) + { + tmpReg |= BMI_CMD_ATTR_ORDER; + if(p_Params->syncReq) + tmpReg |= BMI_CMD_ATTR_SYNC; + tmpReg |= ((uint32_t)p_Params->color << BMI_CMD_ATTR_COLOR_SHIFT); + } + + WRITE_UINT32(p_Regs->fmbm_rfca, tmpReg); + + /* default queues */ + if (!p_FmPort->imEn) + { + WRITE_UINT32(p_Regs->fmbm_rfqid, p_Params->dfltFqid); + WRITE_UINT32(p_Regs->fmbm_refqid, p_Params->errFqid); + } + + /* set counters */ + WRITE_UINT32(p_Regs->fmbm_rstc, BMI_COUNTERS_EN); + + performanceContersParams.taskCompVal = (uint8_t)p_FmPort->tasks.num; + performanceContersParams.queueCompVal = 1; + performanceContersParams.dmaCompVal =(uint8_t) p_FmPort->openDmas.num; + performanceContersParams.fifoCompVal = p_FmPort->fifoBufs.num; + if((err = FM_PORT_SetPerformanceCountersParams(p_FmPort, &performanceContersParams)) != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + + WRITE_UINT32(p_Regs->fmbm_rpc, BMI_COUNTERS_EN); + + /* error/status mask - check that if discard OV is set, no + discard is required for specific errors.*/ + WRITE_UINT32(p_Regs->fmbm_rfsdm, p_Params->errorsToDiscard); + + errorsToEnq = (RX_ERRS_TO_ENQ & ~p_Params->errorsToDiscard); + WRITE_UINT32(p_Regs->fmbm_rfsem, errorsToEnq); + +#ifdef FM_BMI_TO_RISC_ENQ_ERRATA_FMANc + if((GET_UINT32(p_Regs->fmbm_rfene) && NIA_ENG_MASK)== NIA_ENG_FM_CTL) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("NIA not supported at this stage")); +#endif /* FM_BMI_TO_RISC_ENQ_ERRATA_FMANc */ + + return E_OK; +} + +static t_Error BmiTxPortInit(t_FmPort *p_FmPort) +{ + t_FmPortTxBmiRegs *p_Regs = &p_FmPort->p_FmPortBmiRegs->txPortBmiRegs; + uint32_t tmpReg; + t_FmPortDriverParam *p_Params = p_FmPort->p_FmPortDriverParam; + /*uint32_t rateCountUnit;*/ + t_FmPortPerformanceCnt performanceContersParams; + + /* check that port is not busy */ + if (GET_UINT32(p_Regs->fmbm_tcfg) & BMI_PORT_CFG_EN) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Port is already enabled")); + + tmpReg = 0; + if (p_FmPort->imEn) + tmpReg |= BMI_PORT_CFG_IM; + + WRITE_UINT32(p_Regs->fmbm_tcfg, tmpReg); + + /* Configure dma attributes */ + tmpReg = 0; + tmpReg |= (uint32_t)p_Params->dmaSwapData << BMI_DMA_ATTR_SWP_SHIFT; + tmpReg |= (uint32_t)p_Params->dmaIntContextCacheAttr << BMI_DMA_ATTR_IC_CACHE_SHIFT; + tmpReg |= (uint32_t)p_Params->dmaHeaderCacheAttr << BMI_DMA_ATTR_HDR_CACHE_SHIFT; + tmpReg |= (uint32_t)p_Params->dmaScatterGatherCacheAttr << BMI_DMA_ATTR_SG_CACHE_SHIFT; + + WRITE_UINT32(p_Regs->fmbm_tda, tmpReg); + + /* Configure Tx Fifo params */ + tmpReg = 0; + tmpReg |= ((p_Params->txFifoMinFillLevel/BMI_FIFO_UNITS) << BMI_TX_FIFO_MIN_FILL_SHIFT); + tmpReg |= (((uint32_t)p_FmPort->txFifoDeqPipelineDepth - 1) << BMI_TX_FIFO_PIPELINE_DEPTH_SHIFT); + tmpReg |= ((p_Params->txFifoLowComfLevel/BMI_FIFO_UNITS - 1) << BMI_TX_LOW_COMF_SHIFT); + + WRITE_UINT32(p_Regs->fmbm_tfp, tmpReg); + + /* frame end parameters */ + tmpReg = 0; + tmpReg |= ((uint32_t)p_Params->cheksumLastBytesIgnore << BMI_TX_FRAME_END_CS_IGNORE_SHIFT); + + WRITE_UINT32(p_Regs->fmbm_tfed, tmpReg); + + if (!p_FmPort->imEn) + { + /* IC parameters */ + tmpReg = 0; + tmpReg |= (((uint32_t)p_Params->intContext.extBufOffset/OFFSET_UNITS) << BMI_IC_TO_EXT_SHIFT); + tmpReg |= (((uint32_t)p_Params->intContext.intContextOffset/OFFSET_UNITS) << BMI_IC_FROM_INT_SHIFT); + tmpReg |= (((uint32_t)p_Params->intContext.size/OFFSET_UNITS) << BMI_IC_SIZE_SHIFT); + + WRITE_UINT32(p_Regs->fmbm_ticp, tmpReg); + } + + /* NIA */ + if (p_FmPort->imEn) + { + WRITE_UINT32(p_Regs->fmbm_tfne, NIA_ENG_FM_CTL | NIA_FM_CTL_AC_IND_MODE_TX); + WRITE_UINT32(p_Regs->fmbm_tfene, NIA_ENG_FM_CTL | NIA_FM_CTL_AC_IND_MODE_TX); + } + else + { + WRITE_UINT32(p_Regs->fmbm_tfne, NIA_ENG_QMI_DEQ); + WRITE_UINT32(p_Regs->fmbm_tfene, NIA_ENG_QMI_ENQ | NIA_ORDER_RESTOR); + /* The line bellow is a trick so the FM will not release the buffer + to BM nor will try to enq the frame to QM */ + if(!p_Params->dfltFqid && p_Params->dontReleaseBuf) + { + /* override fmbm_tcfqid 0 with a false non-0 value. This will force FM to + * act acording to tfene. Otherwise, if fmbm_tcfqid is 0 the FM will release + * buffers to BM regardless of fmbm_tfene + */ + WRITE_UINT32(p_Regs->fmbm_tcfqid, 0xFFFFFF); + WRITE_UINT32(p_Regs->fmbm_tfene, NIA_ENG_BMI | NIA_BMI_AC_TX_RELEASE); + } + } + + /* command attribute */ + tmpReg = BMI_CMD_TX_MR_DEF; + if (p_FmPort->imEn) + tmpReg |= BMI_CMD_MR_DEAS; + else + { + tmpReg |= BMI_CMD_ATTR_ORDER; + /* if we set syncReq, we may get stuck when HC command is running */ + /*if(p_Params->syncReq) + tmpReg |= BMI_CMD_ATTR_SYNC;*/ + tmpReg |= ((uint32_t)p_Params->color << BMI_CMD_ATTR_COLOR_SHIFT); + } + + WRITE_UINT32(p_Regs->fmbm_tfca, tmpReg); + + /* default queues */ + if (!p_FmPort->imEn) + { + if(p_Params->dfltFqid || !p_Params->dontReleaseBuf) + WRITE_UINT32(p_Regs->fmbm_tcfqid, p_Params->dfltFqid); + WRITE_UINT32(p_Regs->fmbm_tfeqid, p_Params->errFqid); + } + + /* statistics & performance counters */ + WRITE_UINT32(p_Regs->fmbm_tstc, BMI_COUNTERS_EN); + + performanceContersParams.taskCompVal = (uint8_t)p_FmPort->tasks.num; + performanceContersParams.queueCompVal = 1; + performanceContersParams.dmaCompVal = (uint8_t)p_FmPort->openDmas.num; + performanceContersParams.fifoCompVal = p_FmPort->fifoBufs.num; + FM_PORT_SetPerformanceCountersParams(p_FmPort, &performanceContersParams); + + WRITE_UINT32(p_Regs->fmbm_tpc, BMI_COUNTERS_EN); + + return E_OK; +} + +static t_Error BmiOhPortInit(t_FmPort *p_FmPort) +{ + t_FmPortOhBmiRegs *p_Regs = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs; + uint32_t tmpReg, errorsToEnq = 0; + t_FmPortDriverParam *p_Params = p_FmPort->p_FmPortDriverParam; + t_FmPortPerformanceCnt performanceContersParams; + t_Error err; + + /* check that port is not busy */ + if (GET_UINT32(p_Regs->fmbm_ocfg) & BMI_PORT_CFG_EN) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Port is already enabled")); + + /* Configure dma attributes */ + tmpReg = 0; + tmpReg |= (uint32_t)p_Params->dmaSwapData << BMI_DMA_ATTR_SWP_SHIFT; + tmpReg |= (uint32_t)p_Params->dmaIntContextCacheAttr << BMI_DMA_ATTR_IC_CACHE_SHIFT; + tmpReg |= (uint32_t)p_Params->dmaHeaderCacheAttr << BMI_DMA_ATTR_HDR_CACHE_SHIFT; + tmpReg |= (uint32_t)p_Params->dmaScatterGatherCacheAttr << BMI_DMA_ATTR_SG_CACHE_SHIFT; + if(p_Params->dmaWriteOptimize) + tmpReg |= BMI_DMA_ATTR_WRITE_OPTIMIZE; + + WRITE_UINT32(p_Regs->fmbm_oda, tmpReg); + + /* IC parameters */ + tmpReg = 0; + tmpReg |= (((uint32_t)p_Params->intContext.extBufOffset/OFFSET_UNITS) << BMI_IC_TO_EXT_SHIFT); + tmpReg |= (((uint32_t)p_Params->intContext.intContextOffset/OFFSET_UNITS) << BMI_IC_FROM_INT_SHIFT); + tmpReg |= (((uint32_t)p_Params->intContext.size/OFFSET_UNITS) << BMI_IC_SIZE_SHIFT); + + WRITE_UINT32(p_Regs->fmbm_oicp, tmpReg); + + /* NIA */ + WRITE_UINT32(p_Regs->fmbm_ofdne, NIA_ENG_QMI_DEQ); + + if (p_FmPort->portType==e_FM_PORT_TYPE_OH_HOST_COMMAND) + WRITE_UINT32(p_Regs->fmbm_ofene, NIA_ENG_QMI_ENQ); + else + WRITE_UINT32(p_Regs->fmbm_ofene, NIA_ENG_QMI_ENQ | NIA_ORDER_RESTOR); + + /* command attribute */ + if (p_FmPort->portType==e_FM_PORT_TYPE_OH_HOST_COMMAND) + tmpReg = BMI_CMD_MR_DEAS | BMI_CMD_MR_MA; + else + tmpReg = BMI_CMD_ATTR_ORDER | BMI_CMD_MR_DEAS | BMI_CMD_MR_MA; + + if(p_Params->syncReq) + tmpReg |= BMI_CMD_ATTR_SYNC; + tmpReg |= ((uint32_t)p_Params->color << BMI_CMD_ATTR_COLOR_SHIFT); + WRITE_UINT32(p_Regs->fmbm_ofca, tmpReg); + + /* No discard - all error frames go to error queue */ + if (p_Params->frmDiscardOverride) + tmpReg = BMI_PORT_CFG_FDOVR; + else + tmpReg = 0; + WRITE_UINT32(p_Regs->fmbm_ocfg, tmpReg); + + if(p_FmPort->portType == e_FM_PORT_TYPE_OH_OFFLINE_PARSING) + { + WRITE_UINT32(p_Regs->fmbm_ofsdm, p_Params->errorsToDiscard); + + errorsToEnq = (OP_ERRS_TO_ENQ & ~p_Params->errorsToDiscard); + WRITE_UINT32(p_Regs->fmbm_ofsem, errorsToEnq); + + /* NIA */ + WRITE_UINT32(p_Regs->fmbm_ofne, NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME); + { +#ifdef FM_NO_OP_OBSERVED_POOLS + t_FmRevisionInfo revInfo; + + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if ((revInfo.majorRev == 4) && (p_Params->enBufPoolDepletion)) +#endif /* FM_NO_OP_OBSERVED_POOLS */ + { + /* define external buffer pools */ + err = SetExtBufferPools(p_FmPort); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + } + } + } + else + /* NIA */ + WRITE_UINT32(p_Regs->fmbm_ofne, NIA_ENG_FM_CTL | NIA_FM_CTL_AC_HC); + + /* default queues */ + WRITE_UINT32(p_Regs->fmbm_ofqid, p_Params->dfltFqid); + WRITE_UINT32(p_Regs->fmbm_oefqid, p_Params->errFqid); + + if(p_FmPort->internalBufferOffset) + { + tmpReg = (uint32_t)((p_FmPort->internalBufferOffset % OFFSET_UNITS) ? + (p_FmPort->internalBufferOffset/OFFSET_UNITS + 1): + (p_FmPort->internalBufferOffset/OFFSET_UNITS)); + p_FmPort->internalBufferOffset = (uint8_t)(tmpReg * OFFSET_UNITS); + WRITE_UINT32(p_Regs->fmbm_oim, tmpReg << BMI_IM_FOF_SHIFT); + } + /* statistics & performance counters */ + WRITE_UINT32(p_Regs->fmbm_ostc, BMI_COUNTERS_EN); + + performanceContersParams.taskCompVal = (uint8_t)p_FmPort->tasks.num; + performanceContersParams.queueCompVal = 0; + performanceContersParams.dmaCompVal = (uint8_t)p_FmPort->openDmas.num; + performanceContersParams.fifoCompVal = p_FmPort->fifoBufs.num; + FM_PORT_SetPerformanceCountersParams(p_FmPort, &performanceContersParams); + + WRITE_UINT32(p_Regs->fmbm_opc, BMI_COUNTERS_EN); + + return E_OK; +} + +static t_Error QmiInit(t_FmPort *p_FmPort) +{ + t_FmPortDriverParam *p_Params = NULL; + uint32_t tmpReg; + + p_Params = p_FmPort->p_FmPortDriverParam; + + /* check that port is not busy */ + if(((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && + (p_FmPort->portType != e_FM_PORT_TYPE_RX)) && + (GET_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnc) & QMI_PORT_CFG_EN)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Port is already enabled")); + + /* enable & clear counters */ + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnc, QMI_PORT_CFG_EN_COUNTERS); + + /* The following is done for non-Rx ports only */ + if((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && + (p_FmPort->portType != e_FM_PORT_TYPE_RX)) + { + if((p_FmPort->portType == e_FM_PORT_TYPE_TX_10G) || + (p_FmPort->portType == e_FM_PORT_TYPE_TX)) + { + /* define dequeue NIA */ + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs.fmqm_pndn, NIA_ENG_BMI | NIA_BMI_AC_TX); + /* define enqueue NIA */ + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnen, NIA_ENG_BMI | NIA_BMI_AC_TX_RELEASE); + } + else /* for HC & OP */ + { + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs.fmqm_pndn, NIA_ENG_BMI | NIA_BMI_AC_FETCH); + /* define enqueue NIA */ + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnen, NIA_ENG_BMI | NIA_BMI_AC_RELEASE); + } + + /* configure dequeue */ + tmpReg = 0; + if(p_Params->deqHighPriority) + tmpReg |= QMI_DEQ_CFG_PRI; + + switch(p_Params->deqType) + { + case(e_FM_PORT_DEQ_TYPE1): + tmpReg |= QMI_DEQ_CFG_TYPE1; + break; + case(e_FM_PORT_DEQ_TYPE2): + tmpReg |= QMI_DEQ_CFG_TYPE2; + break; + case(e_FM_PORT_DEQ_TYPE3): + tmpReg |= QMI_DEQ_CFG_TYPE3; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid dequeue type")); + } + +#ifdef FM_QMI_DEQ_OPTIONS_SUPPORT + switch(p_Params->deqPrefetchOption) + { + case(e_FM_PORT_DEQ_NO_PREFETCH): + /* Do nothing - QMI_DEQ_CFG_PREFETCH_WAITING_TNUM | QMI_DEQ_CFG_PREFETCH_1_FRAME = 0 */ + break; + case(e_FM_PORT_DEQ_PARTIAL_PREFETCH): + tmpReg |= QMI_DEQ_CFG_PREFETCH_WAITING_TNUM | QMI_DEQ_CFG_PREFETCH_3_FRAMES; + break; + case(e_FM_PORT_DEQ_FULL_PREFETCH): + tmpReg |= QMI_DEQ_CFG_PREFETCH_NO_TNUM | QMI_DEQ_CFG_PREFETCH_3_FRAMES; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid dequeue prefetch option")); + } +#endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ + + tmpReg |= p_Params->deqByteCnt; + tmpReg |= (uint32_t)p_Params->deqSubPortal << QMI_DEQ_CFG_SUBPORTAL_SHIFT; + + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs.fmqm_pndc, tmpReg); + } + else /* rx port */ + /* define enqueue NIA */ + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnen, NIA_ENG_BMI | NIA_BMI_AC_RELEASE); + + return E_OK; +} + +static t_Error BmiRxPortCheckAndGetCounterPtr(t_FmPort *p_FmPort, e_FmPortCounters counter, volatile uint32_t **p_Ptr) +{ + t_FmPortRxBmiRegs *p_BmiRegs = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs; + + /* check that counters are enabled */ + switch(counter) + { + case(e_FM_PORT_COUNTERS_CYCLE): + case(e_FM_PORT_COUNTERS_TASK_UTIL): + case(e_FM_PORT_COUNTERS_QUEUE_UTIL): + case(e_FM_PORT_COUNTERS_DMA_UTIL): + case(e_FM_PORT_COUNTERS_FIFO_UTIL): + case(e_FM_PORT_COUNTERS_RX_PAUSE_ACTIVATION): + /* performance counters - may be read when disabled */ + break; + case(e_FM_PORT_COUNTERS_FRAME): + case(e_FM_PORT_COUNTERS_DISCARD_FRAME): + case(e_FM_PORT_COUNTERS_RX_BAD_FRAME): + case(e_FM_PORT_COUNTERS_RX_LARGE_FRAME): + case(e_FM_PORT_COUNTERS_RX_FILTER_FRAME): + case(e_FM_PORT_COUNTERS_RX_LIST_DMA_ERR): + case(e_FM_PORT_COUNTERS_RX_OUT_OF_BUFFERS_DISCARD): + case(e_FM_PORT_COUNTERS_DEALLOC_BUF): + if(!(GET_UINT32(p_BmiRegs->fmbm_rstc) & BMI_COUNTERS_EN)) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Requested counter was not enabled")); + break; + default: + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Requested counter is not available for Rx ports")); + } + + /* Set counter */ + switch(counter) + { + case(e_FM_PORT_COUNTERS_CYCLE): + *p_Ptr = &p_BmiRegs->fmbm_rccn; + break; + case(e_FM_PORT_COUNTERS_TASK_UTIL): + *p_Ptr = &p_BmiRegs->fmbm_rtuc; + break; + case(e_FM_PORT_COUNTERS_QUEUE_UTIL): + *p_Ptr = &p_BmiRegs->fmbm_rrquc; + break; + case(e_FM_PORT_COUNTERS_DMA_UTIL): + *p_Ptr = &p_BmiRegs->fmbm_rduc; + break; + case(e_FM_PORT_COUNTERS_FIFO_UTIL): + *p_Ptr = &p_BmiRegs->fmbm_rfuc; + break; + case(e_FM_PORT_COUNTERS_RX_PAUSE_ACTIVATION): + *p_Ptr = &p_BmiRegs->fmbm_rpac; + break; + case(e_FM_PORT_COUNTERS_FRAME): + *p_Ptr = &p_BmiRegs->fmbm_rfrc; + break; + case(e_FM_PORT_COUNTERS_DISCARD_FRAME): + *p_Ptr = &p_BmiRegs->fmbm_rfcd; + break; + case(e_FM_PORT_COUNTERS_RX_BAD_FRAME): + *p_Ptr = &p_BmiRegs->fmbm_rfbc; + break; + case(e_FM_PORT_COUNTERS_RX_LARGE_FRAME): + *p_Ptr = &p_BmiRegs->fmbm_rlfc; + break; + case(e_FM_PORT_COUNTERS_RX_FILTER_FRAME): + *p_Ptr = &p_BmiRegs->fmbm_rffc; + break; + case(e_FM_PORT_COUNTERS_RX_LIST_DMA_ERR): +#ifdef FM_PORT_COUNTERS_ERRATA_FMANg + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("Requested counter is not available in rev1")); + } +#endif /* FM_PORT_COUNTERS_ERRATA_FMANg */ + *p_Ptr = &p_BmiRegs->fmbm_rfldec; + break; + case(e_FM_PORT_COUNTERS_RX_OUT_OF_BUFFERS_DISCARD): + *p_Ptr = &p_BmiRegs->fmbm_rodc; + break; + case(e_FM_PORT_COUNTERS_DEALLOC_BUF): + *p_Ptr = &p_BmiRegs->fmbm_rbdc; + break; + default: + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Requested counter is not available for Rx ports")); + } + + return E_OK; +} + +static t_Error BmiTxPortCheckAndGetCounterPtr(t_FmPort *p_FmPort, e_FmPortCounters counter, volatile uint32_t **p_Ptr) +{ + t_FmPortTxBmiRegs *p_BmiRegs = &p_FmPort->p_FmPortBmiRegs->txPortBmiRegs; + + /* check that counters are enabled */ + switch(counter) + { + case(e_FM_PORT_COUNTERS_CYCLE): + case(e_FM_PORT_COUNTERS_TASK_UTIL): + case(e_FM_PORT_COUNTERS_QUEUE_UTIL): + case(e_FM_PORT_COUNTERS_DMA_UTIL): + case(e_FM_PORT_COUNTERS_FIFO_UTIL): + /* performance counters - may be read when disabled */ + break; + case(e_FM_PORT_COUNTERS_FRAME): + case(e_FM_PORT_COUNTERS_DISCARD_FRAME): + case(e_FM_PORT_COUNTERS_LENGTH_ERR): + case(e_FM_PORT_COUNTERS_UNSUPPRTED_FORMAT): + case(e_FM_PORT_COUNTERS_DEALLOC_BUF): + if(!(GET_UINT32(p_BmiRegs->fmbm_tstc) & BMI_COUNTERS_EN)) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Requested counter was not enabled")); + break; + default: + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Requested counter is not available for Tx ports")); + } + + /* Set counter */ + switch(counter) + { + case(e_FM_PORT_COUNTERS_CYCLE): + *p_Ptr = &p_BmiRegs->fmbm_tccn; + break; + case(e_FM_PORT_COUNTERS_TASK_UTIL): + *p_Ptr = &p_BmiRegs->fmbm_ttuc; + break; + case(e_FM_PORT_COUNTERS_QUEUE_UTIL): + *p_Ptr = &p_BmiRegs->fmbm_ttcquc; + break; + case(e_FM_PORT_COUNTERS_DMA_UTIL): + *p_Ptr = &p_BmiRegs->fmbm_tduc; + break; + case(e_FM_PORT_COUNTERS_FIFO_UTIL): + *p_Ptr = &p_BmiRegs->fmbm_tfuc; + break; + case(e_FM_PORT_COUNTERS_FRAME): + *p_Ptr = &p_BmiRegs->fmbm_tfrc; + break; + case(e_FM_PORT_COUNTERS_DISCARD_FRAME): + *p_Ptr = &p_BmiRegs->fmbm_tfdc; + break; + case(e_FM_PORT_COUNTERS_LENGTH_ERR): + *p_Ptr = &p_BmiRegs->fmbm_tfledc; + break; + case(e_FM_PORT_COUNTERS_UNSUPPRTED_FORMAT): + *p_Ptr = &p_BmiRegs->fmbm_tfufdc; + break; + case(e_FM_PORT_COUNTERS_DEALLOC_BUF): + *p_Ptr = &p_BmiRegs->fmbm_tbdc; + break; + default: + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Requested counter is not available for Tx ports")); + } + + return E_OK; +} + +static t_Error BmiOhPortCheckAndGetCounterPtr(t_FmPort *p_FmPort, e_FmPortCounters counter, volatile uint32_t **p_Ptr) +{ + t_FmPortOhBmiRegs *p_BmiRegs = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs; + + /* check that counters are enabled */ + switch(counter) + { + case(e_FM_PORT_COUNTERS_CYCLE): + case(e_FM_PORT_COUNTERS_TASK_UTIL): + case(e_FM_PORT_COUNTERS_DMA_UTIL): + case(e_FM_PORT_COUNTERS_FIFO_UTIL): + /* performance counters - may be read when disabled */ + break; + case(e_FM_PORT_COUNTERS_FRAME): + case(e_FM_PORT_COUNTERS_DISCARD_FRAME): + case(e_FM_PORT_COUNTERS_RX_LIST_DMA_ERR): + case(e_FM_PORT_COUNTERS_WRED_DISCARD): + case(e_FM_PORT_COUNTERS_LENGTH_ERR): + case(e_FM_PORT_COUNTERS_UNSUPPRTED_FORMAT): + case(e_FM_PORT_COUNTERS_DEALLOC_BUF): + if(!(GET_UINT32(p_BmiRegs->fmbm_ostc) & BMI_COUNTERS_EN)) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Requested counter was not enabled")); + break; + case(e_FM_PORT_COUNTERS_RX_FILTER_FRAME): /* only valid for offline parsing */ + if(p_FmPort->portType == e_FM_PORT_TYPE_OH_HOST_COMMAND) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Requested counter is not available for Host Command ports")); + if(!(GET_UINT32(p_BmiRegs->fmbm_ostc) & BMI_COUNTERS_EN)) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Requested counter was not enabled")); + break; + default: + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Requested counter is not available for O/H ports")); + } + + /* Set counter */ + switch(counter) + { + case(e_FM_PORT_COUNTERS_CYCLE): + *p_Ptr = &p_BmiRegs->fmbm_occn; + break; + case(e_FM_PORT_COUNTERS_TASK_UTIL): + *p_Ptr = &p_BmiRegs->fmbm_otuc; + break; + case(e_FM_PORT_COUNTERS_DMA_UTIL): + *p_Ptr = &p_BmiRegs->fmbm_oduc; + break; + case(e_FM_PORT_COUNTERS_FIFO_UTIL): + *p_Ptr = &p_BmiRegs->fmbm_ofuc; + break; + case(e_FM_PORT_COUNTERS_FRAME): + *p_Ptr = &p_BmiRegs->fmbm_ofrc; + break; + case(e_FM_PORT_COUNTERS_DISCARD_FRAME): + *p_Ptr = &p_BmiRegs->fmbm_ofdc; + break; + case(e_FM_PORT_COUNTERS_RX_FILTER_FRAME): + *p_Ptr = &p_BmiRegs->fmbm_offc; + break; + case(e_FM_PORT_COUNTERS_RX_LIST_DMA_ERR): +#ifdef FM_PORT_COUNTERS_ERRATA_FMANg + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("Requested counter is not available in rev1")); + } +#endif /* FM_PORT_COUNTERS_ERRATA_FMANg */ + *p_Ptr = &p_BmiRegs->fmbm_ofldec; + break; + case(e_FM_PORT_COUNTERS_WRED_DISCARD): + *p_Ptr = &p_BmiRegs->fmbm_ofwdc; + break; + case(e_FM_PORT_COUNTERS_LENGTH_ERR): + *p_Ptr = &p_BmiRegs->fmbm_ofledc; + break; + case(e_FM_PORT_COUNTERS_UNSUPPRTED_FORMAT): + *p_Ptr = &p_BmiRegs->fmbm_ofufdc; + break; + case(e_FM_PORT_COUNTERS_DEALLOC_BUF): + *p_Ptr = &p_BmiRegs->fmbm_obdc; + break; + default: + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Requested counter is not available for O/H ports")); + } + + return E_OK; +} + +static t_Error AdditionalPrsParams(t_FmPort *p_FmPort, t_FmPcdPrsAdditionalHdrParams *p_HdrParams, uint32_t *p_SoftSeqAttachReg) +{ + uint8_t hdrNum, Ipv4HdrNum; + u_FmPcdHdrPrsOpts *p_prsOpts; + uint32_t tmpReg = 0, tmpPrsOffset; + + if(IS_PRIVATE_HEADER(p_HdrParams->hdr) || IS_SPECIAL_HEADER(p_HdrParams->hdr)) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("No additional parameters for private or special headers.")); + + if(p_HdrParams->errDisable) + tmpReg |= PRS_HDR_ERROR_DIS; + + /* Set parser options */ + if(p_HdrParams->usePrsOpts) + { + p_prsOpts = &p_HdrParams->prsOpts; + switch(p_HdrParams->hdr) + { + case(HEADER_TYPE_MPLS): + if(p_prsOpts->mplsPrsOptions.labelInterpretationEnable) + tmpReg |= PRS_HDR_MPLS_LBL_INTER_EN; + GET_PRS_HDR_NUM(hdrNum, p_prsOpts->mplsPrsOptions.nextParse); + if(hdrNum == ILLEGAL_HDR_NUM) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, NO_MSG); + GET_PRS_HDR_NUM(Ipv4HdrNum, HEADER_TYPE_IPv4); + if(hdrNum < Ipv4HdrNum) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, + ("Header must be equal or higher than IPv4")); + tmpReg |= ((uint32_t)hdrNum * PRS_HDR_ENTRY_SIZE) << PRS_HDR_MPLS_NEXT_HDR_SHIFT; + break; + case(HEADER_TYPE_PPPoE): + if(p_prsOpts->pppoePrsOptions.enableMTUCheck) + { +#ifdef FM_PPPOE_NO_MTU_CHECK + t_FmRevisionInfo revInfo; + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("Invalid parser option")); + else +#endif /* FM_PPPOE_NO_MTU_CHECK */ + tmpReg |= PRS_HDR_PPPOE_MTU_CHECK_EN; + } + break; + case(HEADER_TYPE_IPv6): + if(p_prsOpts->ipv6PrsOptions.routingHdrDisable) + tmpReg |= PRS_HDR_IPV6_ROUTE_HDR_DIS; + break; + case(HEADER_TYPE_TCP): + if(p_prsOpts->tcpPrsOptions.padIgnoreChecksum) + tmpReg |= PRS_HDR_TCP_PAD_REMOVAL; + break; + case(HEADER_TYPE_UDP): + if(p_prsOpts->udpPrsOptions.padIgnoreChecksum) + tmpReg |= PRS_HDR_TCP_PAD_REMOVAL; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid header")); + } + } + + /* set software parsing (address is devided in 2 since parser uses 2 byte access. */ + if(p_HdrParams->swPrsEnable) + { + tmpPrsOffset = FmPcdGetSwPrsOffset(p_FmPort->h_FmPcd, p_HdrParams->hdr, p_HdrParams->indexPerHdr); + if(tmpPrsOffset == ILLEGAL_BASE) + RETURN_ERROR(MINOR, E_INVALID_VALUE, NO_MSG); + tmpReg |= (PRS_HDR_SW_PRS_EN | tmpPrsOffset); + } + *p_SoftSeqAttachReg = tmpReg; + + return E_OK; +} + +static uint32_t GetPortSchemeBindParams(t_Handle h_FmPort, t_FmPcdKgInterModuleBindPortToSchemes *p_SchemeBind) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + uint32_t walking1Mask = 0x80000000, tmp; + uint8_t idx = 0; + + p_SchemeBind->netEnvId = p_FmPort->netEnvId; + p_SchemeBind->hardwarePortId = p_FmPort->hardwarePortId; + p_SchemeBind->useClsPlan = p_FmPort->useClsPlan; + p_SchemeBind->numOfSchemes = 0; + tmp = p_FmPort->schemesPerPortVector; + if(tmp) + { + while (tmp) + { + if(tmp & walking1Mask) + { + p_SchemeBind->schemesIds[p_SchemeBind->numOfSchemes] = FmPcdKgGetSchemeSwId(p_FmPort->h_FmPcd, idx); + p_SchemeBind->numOfSchemes++; + tmp &= ~walking1Mask; + } + walking1Mask >>= 1; + idx++; + } + } + + return tmp; +} + +static t_Error BuildBufferStructure(t_FmPort *p_FmPort) +{ + uint32_t tmp; + + ASSERT_COND(p_FmPort); + + /* Align start of internal context data to 16 byte */ + p_FmPort->p_FmPortDriverParam->intContext.extBufOffset = + (uint16_t)((p_FmPort->p_FmPortDriverParam->bufferPrefixContent.privDataSize & (OFFSET_UNITS-1)) ? + ((p_FmPort->p_FmPortDriverParam->bufferPrefixContent.privDataSize + OFFSET_UNITS) & ~(uint16_t)(OFFSET_UNITS-1)) : + p_FmPort->p_FmPortDriverParam->bufferPrefixContent.privDataSize); + + /* Translate margin and intContext params to FM parameters */ +#ifdef FM_INCORRECT_CS_ERRATA_FMAN18 + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + { + uint8_t mod = p_FmPort->p_FmPortDriverParam->bufferPrefixContent.dataAlign % 256; + if(mod) + { + p_FmPort->p_FmPortDriverParam->bufferPrefixContent.dataAlign += (256-mod); + DBG(WARNING,("dataAlign modified to next 256 to conform with FMAN18 errata\n")); + } + } + } +#endif /* FM_INCORRECT_CS_ERRATA_FMAN18 */ + + /* Initialize with illegal value. Later we'll set legal values. */ + p_FmPort->bufferOffsets.prsResultOffset = (uint32_t)ILLEGAL_BASE; + p_FmPort->bufferOffsets.timeStampOffset = (uint32_t)ILLEGAL_BASE; + p_FmPort->bufferOffsets.hashResultOffset= (uint32_t)ILLEGAL_BASE; + p_FmPort->bufferOffsets.pcdInfoOffset = (uint32_t)ILLEGAL_BASE; +#ifdef DEBUG + p_FmPort->bufferOffsets.debugOffset = (uint32_t)ILLEGAL_BASE; +#endif /* DEBUG */ + + /* Internally the driver supports 4 options + 1. prsResult/timestamp/hashResult selection (in fact 8 options, but for simplicity we'll + relate to it as 1). + 2. All IC context (from AD) except debug. + 3. Debug information only. + 4. All IC context (from AD) including debug. + Note, that if user asks for prsResult/timestamp/hashResult and Debug, we give them (4) */ + + /* This 'if' covers options 2 & 4. We copy from beginning of context with or without debug. */ + /* If passAllOtherPCDInfo explicitly requested, or passDebugInfo+prs/ts --> we also take passAllOtherPCDInfo */ + if ((p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passAllOtherPCDInfo) +#ifdef DEBUG + || (p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passDebugInfo && + (p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passPrsResult || + p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passTimeStamp || + p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passHashResult)) +#endif /* DEBUG */ + ) + { +#ifdef DEBUG + if(p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passDebugInfo) + { + p_FmPort->p_FmPortDriverParam->intContext.size = 240; + p_FmPort->bufferOffsets.debugOffset = + (uint32_t)(p_FmPort->p_FmPortDriverParam->intContext.extBufOffset + 128); + } + else +#endif /* DEBUG */ + p_FmPort->p_FmPortDriverParam->intContext.size = 128; /* must be aligned to 16 */ + /* Start copying data after 16 bytes (FD) from the beginning of the internal context */ + p_FmPort->p_FmPortDriverParam->intContext.intContextOffset = 16; + + if (p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passAllOtherPCDInfo) + p_FmPort->bufferOffsets.pcdInfoOffset = p_FmPort->p_FmPortDriverParam->intContext.extBufOffset; + if (p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passPrsResult) + p_FmPort->bufferOffsets.prsResultOffset = + (uint32_t)(p_FmPort->p_FmPortDriverParam->intContext.extBufOffset + 16); + if (p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passTimeStamp) + p_FmPort->bufferOffsets.timeStampOffset = + (uint32_t)(p_FmPort->p_FmPortDriverParam->intContext.extBufOffset + 48); + if (p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passHashResult) + p_FmPort->bufferOffsets.hashResultOffset = + (uint32_t)(p_FmPort->p_FmPortDriverParam->intContext.extBufOffset + 56); + } + else + { +#ifdef DEBUG + if (p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passDebugInfo) + { + /* This case covers option 3 */ + p_FmPort->p_FmPortDriverParam->intContext.size = 112; + p_FmPort->p_FmPortDriverParam->intContext.intContextOffset = 144; + p_FmPort->bufferOffsets.debugOffset = p_FmPort->p_FmPortDriverParam->intContext.extBufOffset; + } + else +#endif /* DEBUG */ + { + /* This case covers the options under 1 */ + /* Copy size must be in 16-byte granularity. */ + p_FmPort->p_FmPortDriverParam->intContext.size = + (uint16_t)((p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passPrsResult ? 32 : 0) + + ((p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passTimeStamp || + p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passHashResult) ? 16 : 0)); + + /* Align start of internal context data to 16 byte */ + p_FmPort->p_FmPortDriverParam->intContext.intContextOffset = + (uint8_t)(p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passPrsResult ? 32 : + ((p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passTimeStamp || + p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passHashResult) ? 64 : 0)); + + if(p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passPrsResult) + p_FmPort->bufferOffsets.prsResultOffset = p_FmPort->p_FmPortDriverParam->intContext.extBufOffset; + if(p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passTimeStamp) + p_FmPort->bufferOffsets.timeStampOffset = p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passPrsResult ? + (p_FmPort->p_FmPortDriverParam->intContext.extBufOffset + sizeof(t_FmPrsResult)) : + p_FmPort->p_FmPortDriverParam->intContext.extBufOffset; + if(p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passHashResult) + /* If PR is not requested, whether TS is requested or not, IC will be copied from TS */ + p_FmPort->bufferOffsets.hashResultOffset = p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passPrsResult ? + (p_FmPort->p_FmPortDriverParam->intContext.extBufOffset + sizeof(t_FmPrsResult) + 8) : + p_FmPort->p_FmPortDriverParam->intContext.extBufOffset + 8; + } + } + + p_FmPort->p_FmPortDriverParam->bufMargins.startMargins = + (uint16_t)(p_FmPort->p_FmPortDriverParam->intContext.extBufOffset + + p_FmPort->p_FmPortDriverParam->intContext.size); +#ifdef FM_CAPWAP_SUPPORT + /* save extra space for manip in both external and internal buffers */ + if(p_FmPort->p_FmPortDriverParam->bufferPrefixContent.manipExtraSpace) + { + if((p_FmPort->p_FmPortDriverParam->bufferPrefixContent.manipExtraSpace + FRAG_EXTRA_SPACE) >= 256) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("p_FmPort->p_FmPortDriverParam->bufferPrefixContent.manipExtraSpace + 32 can not be equal or larger to 256")); + p_FmPort->bufferOffsets.manipOffset = p_FmPort->p_FmPortDriverParam->bufMargins.startMargins; + p_FmPort->p_FmPortDriverParam->bufMargins.startMargins += (p_FmPort->p_FmPortDriverParam->bufferPrefixContent.manipExtraSpace + FRAG_EXTRA_SPACE); + p_FmPort->p_FmPortDriverParam->internalBufferOffset = + (uint8_t)(p_FmPort->p_FmPortDriverParam->bufferPrefixContent.manipExtraSpace + FRAG_EXTRA_SPACE); + } +#endif /* FM_CAPWAP_SUPPORT */ + + /* align data start */ + tmp = (uint32_t)(p_FmPort->p_FmPortDriverParam->bufMargins.startMargins % + p_FmPort->p_FmPortDriverParam->bufferPrefixContent.dataAlign); + if (tmp) + p_FmPort->p_FmPortDriverParam->bufMargins.startMargins += (p_FmPort->p_FmPortDriverParam->bufferPrefixContent.dataAlign-tmp); + p_FmPort->bufferOffsets.dataOffset = p_FmPort->p_FmPortDriverParam->bufMargins.startMargins; + p_FmPort->internalBufferOffset = p_FmPort->p_FmPortDriverParam->internalBufferOffset; + + return E_OK; +} + +static t_Error SetPcd(t_Handle h_FmPort, t_FmPortPcdParams *p_PcdParams) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_Error err = E_OK; + uint32_t tmpReg; + volatile uint32_t *p_BmiNia=NULL; + volatile uint32_t *p_BmiPrsNia=NULL; + volatile uint32_t *p_BmiPrsStartOffset=NULL; + volatile uint32_t *p_BmiInitPrsResult=NULL; + volatile uint32_t *p_BmiCcBase=NULL; + uint8_t hdrNum, L3HdrNum, greHdrNum; + int i; + bool isEmptyClsPlanGrp; + uint32_t tmpHxs[FM_PCD_PRS_NUM_OF_HDRS]; + uint16_t absoluteProfileId; + uint8_t physicalSchemeId; + uint32_t ccTreePhysOffset; + SANITY_CHECK_RETURN_ERROR(h_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + if (p_FmPort->imEn) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for non-independant mode ports only")); + + if ((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && + (p_FmPort->portType != e_FM_PORT_TYPE_RX) && + (p_FmPort->portType != e_FM_PORT_TYPE_OH_OFFLINE_PARSING)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx and offline parsing ports only")); + + p_FmPort->netEnvId = (uint8_t)(PTR_TO_UINT(p_PcdParams->h_NetEnv)-1); + + p_FmPort->pcdEngines = 0; + + /* initialize p_FmPort->pcdEngines field in port's structure */ + switch(p_PcdParams->pcdSupport) + { + case(e_FM_PORT_PCD_SUPPORT_NONE): + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("No PCD configuration required if e_FM_PORT_PCD_SUPPORT_NONE selected")); + case(e_FM_PORT_PCD_SUPPORT_PRS_ONLY): + p_FmPort->pcdEngines |= FM_PCD_PRS; + break; + case(e_FM_PORT_PCD_SUPPORT_PLCR_ONLY): + if (CHECK_FM_CTL_AC_POST_FETCH_PCD(p_FmPort->savedBmiNia)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("parser support is required")); + p_FmPort->pcdEngines |= FM_PCD_PLCR; + break; + case(e_FM_PORT_PCD_SUPPORT_PRS_AND_PLCR): + p_FmPort->pcdEngines |= FM_PCD_PRS; + p_FmPort->pcdEngines |= FM_PCD_PLCR; + break; + case(e_FM_PORT_PCD_SUPPORT_PRS_AND_KG): + p_FmPort->pcdEngines |= FM_PCD_PRS; + p_FmPort->pcdEngines |= FM_PCD_KG; + break; + case(e_FM_PORT_PCD_SUPPORT_PRS_AND_KG_AND_CC): + p_FmPort->pcdEngines |= FM_PCD_PRS; + p_FmPort->pcdEngines |= FM_PCD_CC; + p_FmPort->pcdEngines |= FM_PCD_KG; + break; + case(e_FM_PORT_PCD_SUPPORT_PRS_AND_KG_AND_CC_AND_PLCR): + p_FmPort->pcdEngines |= FM_PCD_PRS; + p_FmPort->pcdEngines |= FM_PCD_KG; + p_FmPort->pcdEngines |= FM_PCD_CC; + p_FmPort->pcdEngines |= FM_PCD_PLCR; + break; + case(e_FM_PORT_PCD_SUPPORT_PRS_AND_KG_AND_PLCR): + p_FmPort->pcdEngines |= FM_PCD_PRS; + p_FmPort->pcdEngines |= FM_PCD_KG; + p_FmPort->pcdEngines |= FM_PCD_PLCR; + break; + +#ifdef FM_CAPWAP_SUPPORT + case(e_FM_PORT_PCD_SUPPORT_CC_ONLY): + if (CHECK_FM_CTL_AC_POST_FETCH_PCD(p_FmPort->savedBmiNia)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("parser support is required")); + p_FmPort->pcdEngines |= FM_PCD_CC; + break; + case(e_FM_PORT_PCD_SUPPORT_CC_AND_KG): + if (CHECK_FM_CTL_AC_POST_FETCH_PCD(p_FmPort->savedBmiNia)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("parser support is required")); + p_FmPort->pcdEngines |= FM_PCD_CC; + p_FmPort->pcdEngines |= FM_PCD_KG; + break; + case(e_FM_PORT_PCD_SUPPORT_CC_AND_KG_AND_PLCR): + if (CHECK_FM_CTL_AC_POST_FETCH_PCD(p_FmPort->savedBmiNia)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("parser support is required")); + p_FmPort->pcdEngines |= FM_PCD_CC; + p_FmPort->pcdEngines |= FM_PCD_KG; + p_FmPort->pcdEngines |= FM_PCD_PLCR; + break; +#endif /* FM_CAPWAP_SUPPORT */ + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("invalid pcdSupport")); + } + + if((p_FmPort->pcdEngines & FM_PCD_PRS) && (p_PcdParams->p_PrsParams->numOfHdrsWithAdditionalParams > FM_PCD_PRS_NUM_OF_HDRS)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Port parser numOfHdrsWithAdditionalParams may not exceed %d", FM_PCD_PRS_NUM_OF_HDRS)); + + /* check that parameters exist for each and only each defined engine */ + if((!!(p_FmPort->pcdEngines & FM_PCD_PRS) != !!p_PcdParams->p_PrsParams) || + (!!(p_FmPort->pcdEngines & FM_PCD_KG) != !!p_PcdParams->p_KgParams) || + (!!(p_FmPort->pcdEngines & FM_PCD_CC) != !!p_PcdParams->p_CcParams)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("PCD initialization structure is not consistant with pcdSupport")); + + /* get PCD registers pointers */ + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + p_BmiNia = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rfne; + p_BmiPrsNia = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rfpne; + p_BmiPrsStartOffset = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rpso; + p_BmiInitPrsResult = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rprai[0]; + p_BmiCcBase = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rccb; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + p_BmiNia = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ofne; + p_BmiPrsNia = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ofpne; + p_BmiPrsStartOffset = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_opso; + p_BmiInitPrsResult = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_oprai[0]; + p_BmiCcBase = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_occb; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid port type")); + } + + if(p_FmPort->pcdEngines & FM_PCD_KG) + { + + if(p_PcdParams->p_KgParams->numOfSchemes == 0) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("For ports using Keygen, at lease one scheme must be bound. ")); + /* for each scheme */ + for(i = 0; ip_KgParams->numOfSchemes; i++) + { + physicalSchemeId = (uint8_t)(PTR_TO_UINT(p_PcdParams->p_KgParams->h_Schemes[i])-1); + /* build vector */ + p_FmPort->schemesPerPortVector |= 1 << (31 - (uint32_t)physicalSchemeId); + } + + err = FmPcdKgSetOrBindToClsPlanGrp(p_FmPort->h_FmPcd, + p_FmPort->hardwarePortId, + p_FmPort->netEnvId, + p_FmPort->optArray, + &p_FmPort->clsPlanGrpId, + &isEmptyClsPlanGrp); + if(err) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("FmPcdKgSetOrBindToClsPlanGrp failed. ")); + + p_FmPort->useClsPlan = !isEmptyClsPlanGrp; + } + + /* set PCD port parameter */ + if(p_FmPort->pcdEngines & FM_PCD_CC) + { + err = FmPcdCcBindTree(p_FmPort->h_FmPcd, p_PcdParams->p_CcParams->h_CcTree, &ccTreePhysOffset, h_FmPort); + if(err) + RETURN_ERROR(MINOR, err, NO_MSG); + + WRITE_UINT32(*p_BmiCcBase, ccTreePhysOffset); + p_FmPort->ccTreeId = p_PcdParams->p_CcParams->h_CcTree; + } + + /***************************/ + /* configure NIA after BMI */ + /***************************/ + if (!CHECK_FM_CTL_AC_POST_FETCH_PCD(p_FmPort->savedBmiNia)) + /* rfne may contain FDCS bits, so first we read them. */ + p_FmPort->savedBmiNia = GET_UINT32(*p_BmiNia) & BMI_RFNE_FDCS_MASK; + + /* If policer is used directly after BMI or PRS */ + if((p_FmPort->pcdEngines & FM_PCD_PLCR) && + ((p_PcdParams->pcdSupport == e_FM_PORT_PCD_SUPPORT_PLCR_ONLY) || + (p_PcdParams->pcdSupport == e_FM_PORT_PCD_SUPPORT_PRS_AND_PLCR))) + { + absoluteProfileId = (uint16_t)(PTR_TO_UINT(p_PcdParams->p_PlcrParams->h_Profile)-1); + + if(!FmPcdPlcrIsProfileValid(p_FmPort->h_FmPcd, absoluteProfileId)) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Private port profile not valid.")); + + tmpReg = (uint32_t)(absoluteProfileId | NIA_PLCR_ABSOLUTE); + + if(p_FmPort->pcdEngines & FM_PCD_PRS) /* e_FM_PCD_SUPPORT_PRS_AND_PLCR */ + { + /* update BMI HPNIA */ + WRITE_UINT32(*p_BmiPrsNia, (uint32_t)(NIA_ENG_PLCR | tmpReg)); + } + else /* e_FM_PCD_SUPPORT_PLCR_ONLY */ + /* update BMI NIA */ + p_FmPort->savedBmiNia |= (uint32_t)(NIA_ENG_PLCR); + } + +#ifdef FM_CAPWAP_SUPPORT + /* if CC is used directly after BMI */ + if((p_PcdParams->pcdSupport == e_FM_PORT_PCD_SUPPORT_CC_ONLY) || + (p_PcdParams->pcdSupport == e_FM_PORT_PCD_SUPPORT_CC_AND_KG) || + (p_PcdParams->pcdSupport == e_FM_PORT_PCD_SUPPORT_CC_AND_KG_AND_PLCR)) + { + if (p_FmPort->portType != e_FM_PORT_TYPE_OH_OFFLINE_PARSING) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("e_FM_PORT_PCD_SUPPORT_CC_xx available for offline parsing ports only")); + p_FmPort->savedBmiNia |= (uint32_t)(NIA_ENG_FM_CTL | NIA_FM_CTL_AC_CC); + /* check that prs start offset == RIM[FOF] */ + } +#endif /* FM_CAPWAP_SUPPORT */ + + if (p_FmPort->pcdEngines & FM_PCD_PRS) + { + ASSERT_COND(p_PcdParams->p_PrsParams); + /* if PRS is used it is always first */ + GET_PRS_HDR_NUM(hdrNum, p_PcdParams->p_PrsParams->firstPrsHdr); + if (hdrNum == ILLEGAL_HDR_NUM) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("Unsupported header.")); + if (!CHECK_FM_CTL_AC_POST_FETCH_PCD(p_FmPort->savedBmiNia)) + p_FmPort->savedBmiNia |= (uint32_t)(NIA_ENG_PRS | (uint32_t)(hdrNum)); + /* set after parser NIA */ + tmpReg = 0; + switch(p_PcdParams->pcdSupport) + { + case(e_FM_PORT_PCD_SUPPORT_PRS_ONLY): + WRITE_UINT32(*p_BmiPrsNia, NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME); + break; + case(e_FM_PORT_PCD_SUPPORT_PRS_AND_KG_AND_CC): + case(e_FM_PORT_PCD_SUPPORT_PRS_AND_KG_AND_CC_AND_PLCR): + tmpReg = NIA_KG_CC_EN; + case(e_FM_PORT_PCD_SUPPORT_PRS_AND_KG): + case(e_FM_PORT_PCD_SUPPORT_PRS_AND_KG_AND_PLCR): + if(p_PcdParams->p_KgParams->directScheme) + { + physicalSchemeId = (uint8_t)(PTR_TO_UINT(p_PcdParams->p_KgParams->h_DirectScheme)-1); + /* check that this scheme was bound to this port */ + for(i=0 ; ip_KgParams->numOfSchemes; i++) + if(p_PcdParams->p_KgParams->h_DirectScheme == p_PcdParams->p_KgParams->h_Schemes[i]) + break; + if(i == p_PcdParams->p_KgParams->numOfSchemes) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Direct scheme is not one of the port selected schemes.")); + tmpReg |= (uint32_t)(NIA_KG_DIRECT | physicalSchemeId); + } + WRITE_UINT32(*p_BmiPrsNia, NIA_ENG_KG | tmpReg); + break; + case(e_FM_PORT_PCD_SUPPORT_PRS_AND_PLCR): + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid PCD support")); + } + + /* set start parsing offset */ + /* WRITE_UINT32(*p_BmiPrsStartOffset, p_PcdParams->p_PrsParams->parsingOffset); */ + + /************************************/ + /* Parser port parameters */ + /************************************/ + /* stop before configuring */ + WRITE_UINT32(p_FmPort->p_FmPortPrsRegs->pcac, PRS_CAC_STOP); + /* wait for parser to be in idle state */ + while(GET_UINT32(p_FmPort->p_FmPortPrsRegs->pcac) & PRS_CAC_ACTIVE) ; + + /* set soft seq attachment register */ + memset(tmpHxs, 0, FM_PCD_PRS_NUM_OF_HDRS*sizeof(uint32_t)); + + /* set protocol options */ + for(i=0;p_FmPort->optArray[i];i++) + switch(p_FmPort->optArray[i]) + { + case(ETH_BROADCAST): + GET_PRS_HDR_NUM(hdrNum, HEADER_TYPE_ETH) + tmpHxs[hdrNum] |= (i+1) << PRS_HDR_ETH_BC_SHIFT; + break; + case(ETH_MULTICAST): + GET_PRS_HDR_NUM(hdrNum, HEADER_TYPE_ETH) + tmpHxs[hdrNum] |= (i+1) << PRS_HDR_ETH_MC_SHIFT; + break; + case(VLAN_STACKED): + GET_PRS_HDR_NUM(hdrNum, HEADER_TYPE_VLAN) + tmpHxs[hdrNum] |= (i+1)<< PRS_HDR_VLAN_STACKED_SHIFT; + break; + case(MPLS_STACKED): + GET_PRS_HDR_NUM(hdrNum, HEADER_TYPE_MPLS) + tmpHxs[hdrNum] |= (i+1) << PRS_HDR_MPLS_STACKED_SHIFT; + break; + case(IPV4_BROADCAST_1): + GET_PRS_HDR_NUM(hdrNum, HEADER_TYPE_IPv4) + tmpHxs[hdrNum] |= (i+1) << PRS_HDR_IPV4_1_BC_SHIFT; + break; + case(IPV4_MULTICAST_1): + GET_PRS_HDR_NUM(hdrNum, HEADER_TYPE_IPv4) + tmpHxs[hdrNum] |= (i+1) << PRS_HDR_IPV4_1_MC_SHIFT; + break; + case(IPV4_UNICAST_2): + GET_PRS_HDR_NUM(hdrNum, HEADER_TYPE_IPv4) + tmpHxs[hdrNum] |= (i+1) << PRS_HDR_IPV4_2_UC_SHIFT; + break; + case(IPV4_MULTICAST_BROADCAST_2): + GET_PRS_HDR_NUM(hdrNum, HEADER_TYPE_IPv4) + tmpHxs[hdrNum] |= (i+1) << PRS_HDR_IPV4_2_MC_BC_SHIFT; + break; + case(IPV6_MULTICAST_1): + GET_PRS_HDR_NUM(hdrNum, HEADER_TYPE_IPv6) + tmpHxs[hdrNum] |= (i+1) << PRS_HDR_IPV6_1_MC_SHIFT; + break; + case(IPV6_UNICAST_2): + GET_PRS_HDR_NUM(hdrNum, HEADER_TYPE_IPv6) + tmpHxs[hdrNum] |= (i+1) << PRS_HDR_IPV6_2_UC_SHIFT; + break; + case(IPV6_MULTICAST_2): + GET_PRS_HDR_NUM(hdrNum, HEADER_TYPE_IPv6) + tmpHxs[hdrNum] |= (i+1) << PRS_HDR_IPV6_2_MC_SHIFT; + break; + } + + if (FmPcdNetEnvIsHdrExist(p_FmPort->h_FmPcd, p_FmPort->netEnvId, HEADER_TYPE_UDP_ENCAP_ESP)) + { + p_PcdParams->p_PrsParams->additionalParams + [p_PcdParams->p_PrsParams->numOfHdrsWithAdditionalParams].hdr = HEADER_TYPE_UDP; + p_PcdParams->p_PrsParams->additionalParams + [p_PcdParams->p_PrsParams->numOfHdrsWithAdditionalParams].swPrsEnable = TRUE; + p_PcdParams->p_PrsParams->numOfHdrsWithAdditionalParams++; + } + + /* set MPLS default next header - HW reset workaround */ + GET_PRS_HDR_NUM(hdrNum, HEADER_TYPE_MPLS) + tmpHxs[hdrNum] |= PRS_HDR_MPLS_LBL_INTER_EN; + GET_PRS_HDR_NUM(L3HdrNum, HEADER_TYPE_USER_DEFINED_L3); + tmpHxs[hdrNum] |= (uint32_t)L3HdrNum << PRS_HDR_MPLS_NEXT_HDR_SHIFT; + + /* for GRE, disable errors */ + GET_PRS_HDR_NUM(greHdrNum, HEADER_TYPE_GRE); + tmpHxs[greHdrNum] |= PRS_HDR_ERROR_DIS; + + /* config additional params for specific headers */ + for(i=0 ; ip_PrsParams->numOfHdrsWithAdditionalParams ; i++) + { + GET_PRS_HDR_NUM(hdrNum, p_PcdParams->p_PrsParams->additionalParams[i].hdr); + if(hdrNum== ILLEGAL_HDR_NUM) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, NO_MSG); + if(hdrNum==NO_HDR_NUM) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Private headers may not use additional parameters")); + + err = AdditionalPrsParams(p_FmPort, &p_PcdParams->p_PrsParams->additionalParams[i], &tmpReg); + if(err) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, NO_MSG); + + tmpHxs[hdrNum] |= tmpReg; + } +#ifdef FM_PRS_L4_SHELL_ERRATA_FMANb + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + { + /* link to sw parser code for L4 shells - only if no other code is applied. */ + GET_PRS_HDR_NUM(hdrNum, HEADER_TYPE_SCTP) + if(!(tmpHxs[hdrNum] & PRS_HDR_SW_PRS_EN)) + tmpHxs[hdrNum] |= (PRS_HDR_SW_PRS_EN | SCTP_SW_PATCH_START); + GET_PRS_HDR_NUM(hdrNum, HEADER_TYPE_DCCP) + if(!(tmpHxs[hdrNum] & PRS_HDR_SW_PRS_EN)) + tmpHxs[hdrNum] |= (PRS_HDR_SW_PRS_EN | DCCP_SW_PATCH_START); + GET_PRS_HDR_NUM(hdrNum, HEADER_TYPE_IPSEC_AH) + if(!(tmpHxs[hdrNum] & PRS_HDR_SW_PRS_EN)) + tmpHxs[hdrNum] |= (PRS_HDR_SW_PRS_EN | IPSEC_SW_PATCH_START); + } + } +#endif /* FM_PRS_L4_SHELL_ERRATA_FMANb */ + + for(i=0 ; ip_FmPortPrsRegs->hdrs[i].lcv, FmPcdGetLcv(p_FmPort->h_FmPcd, p_FmPort->netEnvId, (uint8_t)i)); + /* set HXS register according to default+Additional params+protocol options */ + WRITE_UINT32(p_FmPort->p_FmPortPrsRegs->hdrs[i].softSeqAttach, tmpHxs[i]); + } + + /* set tpid. */ + tmpReg = PRS_TPID_DFLT; + if(p_PcdParams->p_PrsParams->setVlanTpid1) + { + tmpReg &= PRS_TPID2_MASK; + tmpReg |= (uint32_t)p_PcdParams->p_PrsParams->vlanTpid1 << PRS_PCTPID_SHIFT; + } + if(p_PcdParams->p_PrsParams->setVlanTpid2) + { + tmpReg &= PRS_TPID1_MASK; + tmpReg |= (uint32_t)p_PcdParams->p_PrsParams->vlanTpid2; + } + WRITE_UINT32(p_FmPort->p_FmPortPrsRegs->pctpid, tmpReg); + + /* enable parser */ + WRITE_UINT32(p_FmPort->p_FmPortPrsRegs->pcac, 0); + + if(p_PcdParams->p_PrsParams->prsResultPrivateInfo) + p_FmPort->privateInfo = p_PcdParams->p_PrsParams->prsResultPrivateInfo; + + } /* end parser */ + else + p_FmPort->privateInfo = 0; + + WRITE_UINT32(*p_BmiPrsStartOffset, GET_UINT32(*p_BmiPrsStartOffset) + p_FmPort->internalBufferOffset); + + /* set initial parser result - used for all engines */ + for (i=0;iprivateInfo << BMI_PR_PORTID_SHIFT) + | BMI_PRS_RESULT_HIGH)); + else + if (i< FM_PORT_PRS_RESULT_NUM_OF_WORDS/2) + WRITE_UINT32(*(p_BmiInitPrsResult+i), BMI_PRS_RESULT_HIGH); + else + WRITE_UINT32(*(p_BmiInitPrsResult+i), BMI_PRS_RESULT_LOW); + } + + return E_OK; +} + +static t_Error DeletePcd(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_Error err = E_OK; + volatile uint32_t *p_BmiNia=NULL; + + SANITY_CHECK_RETURN_ERROR(h_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + if (p_FmPort->imEn) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for non-independant mode ports only")); + + if ((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && + (p_FmPort->portType != e_FM_PORT_TYPE_RX) && + (p_FmPort->portType != e_FM_PORT_TYPE_OH_OFFLINE_PARSING)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx and offline parsing ports only")); + + if(!p_FmPort->pcdEngines) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("called for non PCD port")); + + /* get PCD registers pointers */ + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + p_BmiNia = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rfne; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + p_BmiNia = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ofne; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid port type")); + } + + if((GET_UINT32(*p_BmiNia) & (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME)) != (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("port has to be detached previousely")); + + /* "cut" PCD out of the port's flow - go to BMI */ + /* WRITE_UINT32(*p_BmiNia, (p_FmPort->savedBmiNia & BMI_RFNE_FDCS_MASK) | (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME)); */ + + if(p_FmPort->pcdEngines | FM_PCD_PRS) + { + /* stop parser */ + WRITE_UINT32(p_FmPort->p_FmPortPrsRegs->pcac, PRS_CAC_STOP); + /* wait for parser to be in idle state */ + while(GET_UINT32(p_FmPort->p_FmPortPrsRegs->pcac) & PRS_CAC_ACTIVE) ; + } + + if(p_FmPort->pcdEngines & FM_PCD_KG) + { + err = FmPcdKgDeleteOrUnbindPortToClsPlanGrp(p_FmPort->h_FmPcd, p_FmPort->hardwarePortId, p_FmPort->clsPlanGrpId); + if(err) + RETURN_ERROR(MINOR, err, NO_MSG); + p_FmPort->useClsPlan = FALSE; + } + + if(p_FmPort->pcdEngines & FM_PCD_CC) + { + /* unbind - we need to get the treeId too */ + err = FmPcdCcUnbindTree(p_FmPort->h_FmPcd, p_FmPort->ccTreeId); + if(err) + RETURN_ERROR(MINOR, err, NO_MSG); + } + + p_FmPort->pcdEngines = 0; + + return E_OK; +} + + +/********************************************/ +/* Inter-module API */ +/********************************************/ +void FmPortSetMacsecLcv(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + volatile uint32_t *p_BmiCfgReg = NULL; + uint32_t macsecEn = BMI_PORT_CFG_EN_MACSEC; + uint32_t lcv, walking1Mask = 0x80000000; + uint8_t cnt = 0; + + SANITY_CHECK_RETURN(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + if((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && (p_FmPort->portType != e_FM_PORT_TYPE_RX)) + { + REPORT_ERROR(MAJOR, E_INVALID_OPERATION, ("The routine is relevant for Rx ports only")); + return; + } + + p_BmiCfgReg = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rcfg; + /* get LCV for MACSEC */ + if ((p_FmPort->h_FmPcd) && ((lcv = FmPcdGetMacsecLcv(p_FmPort->h_FmPcd, p_FmPort->netEnvId))!= 0)) + { + while(!(lcv & walking1Mask)) + { + cnt++; + walking1Mask >>= 1; + } + + macsecEn |= (uint32_t)cnt << BMI_PORT_CFG_MS_SEL_SHIFT; + } + + WRITE_UINT32(*p_BmiCfgReg, GET_UINT32(*p_BmiCfgReg) | macsecEn); +} + +void FmPortSetMacsecCmd(t_Handle h_FmPort, uint8_t dfltSci) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + volatile uint32_t *p_BmiCfgReg = NULL; + uint32_t tmpReg; + + SANITY_CHECK_RETURN(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN(p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + if ((p_FmPort->portType != e_FM_PORT_TYPE_TX_10G) && (p_FmPort->portType != e_FM_PORT_TYPE_TX)) + { + REPORT_ERROR(MAJOR, E_INVALID_OPERATION, ("The routine is relevant for Tx ports only")); + return; + } + + p_BmiCfgReg = &p_FmPort->p_FmPortBmiRegs->txPortBmiRegs.fmbm_tfca; + tmpReg = GET_UINT32(*p_BmiCfgReg) & ~BMI_CMD_ATTR_MACCMD_MASK; + tmpReg |= BMI_CMD_ATTR_MACCMD_SECURED; + tmpReg |= (((uint32_t)dfltSci << BMI_CMD_ATTR_MACCMD_SC_SHIFT) & BMI_CMD_ATTR_MACCMD_SC_MASK); + + WRITE_UINT32(*p_BmiCfgReg, tmpReg); +} + +uint8_t FmPortGetNetEnvId(t_Handle h_FmPort) +{ + return ((t_FmPort*)h_FmPort)->netEnvId; +} + +uint8_t FmPortGetHardwarePortId(t_Handle h_FmPort) +{ + return ((t_FmPort*)h_FmPort)->hardwarePortId; +} + +uint32_t FmPortGetPcdEngines(t_Handle h_FmPort) +{ + return ((t_FmPort*)h_FmPort)->pcdEngines; +} + +t_Error FmPortAttachPCD(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + volatile uint32_t *p_BmiNia=NULL; + +/*TODO - to take care about the chnges that were made in the port because of the previously assigned tree. +pndn, pnen ... maybe were changed because of the Tree requirement*/ + + /* get PCD registers pointers */ + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + p_BmiNia = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rfne; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + p_BmiNia = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ofne; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx and offline parsing ports only")); + } + + if(p_FmPort->requiredAction & UPDATE_FMFP_PRC_WITH_ONE_RISC_ONLY) + if(FmSetNumOfRiscsPerPort(p_FmPort->h_Fm, p_FmPort->hardwarePortId, 1)!= E_OK) + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); + + /* check that current NIA is BMI to BMI */ + if((GET_UINT32(*p_BmiNia) & ~BMI_RFNE_FDCS_MASK) != (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("may be called only for ports in BMI-to-BMI state.")); + + WRITE_UINT32(*p_BmiNia, p_FmPort->savedBmiNia); + + if(p_FmPort->requiredAction & UPDATE_NIA_PNEN) + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnen, p_FmPort->savedQmiPnen); + + if(p_FmPort->requiredAction & UPDATE_NIA_PNDN) + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs.fmqm_pndn, p_FmPort->savedNonRxQmiRegsPndn); + + + return E_OK; +} + +t_Error FmPortGetSetCcParams(t_Handle h_FmPort, t_FmPortGetSetCcParams *p_CcParams) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + int tmpInt; + volatile uint32_t *p_BmiPrsStartOffset = NULL; + + /* this function called from Cc for pass and receive parameters port params between CC and PORT*/ + + if((p_CcParams->getCcParams.type & OFFSET_OF_PR) && (p_FmPort->bufferOffsets.prsResultOffset != ILLEGAL_BASE)) + { + p_CcParams->getCcParams.prOffset = (uint8_t)p_FmPort->bufferOffsets.prsResultOffset; + p_CcParams->getCcParams.type &= ~OFFSET_OF_PR; + } + if(p_CcParams->getCcParams.type & HW_PORT_ID) + { + p_CcParams->getCcParams.hardwarePortId = (uint8_t)p_FmPort->hardwarePortId; + p_CcParams->getCcParams.type &= ~HW_PORT_ID; + } + if((p_CcParams->getCcParams.type & OFFSET_OF_DATA) && (p_FmPort->bufferOffsets.dataOffset != ILLEGAL_BASE)) + { + p_CcParams->getCcParams.dataOffset = (uint16_t)p_FmPort->bufferOffsets.dataOffset; + p_CcParams->getCcParams.type &= ~OFFSET_OF_DATA; + } + if(p_CcParams->getCcParams.type & NUM_OF_TASKS) + { + p_CcParams->getCcParams.numOfTasks = p_FmPort->numOfTasks; + p_CcParams->getCcParams.type &= ~NUM_OF_TASKS; + } + if(p_CcParams->getCcParams.type & BUFFER_POOL_ID_FOR_MANIP) + { + if(p_CcParams->getCcParams.poolIndex < p_FmPort->extBufPools.numOfPoolsUsed) + { + p_CcParams->getCcParams.poolIdForManip = p_FmPort->extBufPools.extBufPool[p_CcParams->getCcParams.poolIndex].id; + p_CcParams->getCcParams.type &= ~BUFFER_POOL_ID_FOR_MANIP; + } + } + + if((p_CcParams->setCcParams.type & UPDATE_FMFP_PRC_WITH_ONE_RISC_ONLY) && !(p_FmPort->requiredAction & UPDATE_FMFP_PRC_WITH_ONE_RISC_ONLY)) + { + p_FmPort->requiredAction |= UPDATE_FMFP_PRC_WITH_ONE_RISC_ONLY; + } + + if((p_CcParams->setCcParams.type & UPDATE_NIA_PNEN) && !(p_FmPort->requiredAction & UPDATE_NIA_PNEN)) + { + p_FmPort->savedQmiPnen = p_CcParams->setCcParams.nia; + p_FmPort->requiredAction |= UPDATE_NIA_PNEN; + } + else if (p_CcParams->setCcParams.type & UPDATE_NIA_PNEN) + { + if(p_FmPort->savedQmiPnen != p_CcParams->setCcParams.nia) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("pnen was defined previously different")); + } + + if((p_CcParams->setCcParams.type & UPDATE_NIA_PNDN) && !(p_FmPort->requiredAction & UPDATE_NIA_PNDN)) + { + p_FmPort->savedNonRxQmiRegsPndn = p_CcParams->setCcParams.nia; + p_FmPort->requiredAction |= UPDATE_NIA_PNDN; + } + else if(p_CcParams->setCcParams.type & UPDATE_NIA_PNDN) + { + if(p_FmPort->savedNonRxQmiRegsPndn != p_CcParams->setCcParams.nia) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("pndn was defined previously different")); + } + + + if((p_CcParams->setCcParams.type & UPDATE_PSO) && !(p_FmPort->requiredAction & UPDATE_PSO)) + { + /* get PCD registers pointers */ + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + p_BmiPrsStartOffset = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rpso; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + p_BmiPrsStartOffset = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_opso; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid port type")); + } + /* set start parsing offset */ + tmpInt = (int)GET_UINT32(*p_BmiPrsStartOffset)+ p_CcParams->setCcParams.psoSize; + if(tmpInt>0) + WRITE_UINT32(*p_BmiPrsStartOffset, (uint32_t)tmpInt); + + p_FmPort->requiredAction |= UPDATE_PSO; + p_FmPort->savedPrsStartOffset = p_CcParams->setCcParams.psoSize; + + } + else if (p_CcParams->setCcParams.type & UPDATE_PSO) + { + if(p_FmPort->savedPrsStartOffset != p_CcParams->setCcParams.psoSize) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("parser start offset was defoned previousley different")); + } + return E_OK; +} +/********************************** End of inter-module routines ********************************/ + +/****************************************/ +/* API Init unit functions */ +/****************************************/ +t_Handle FM_PORT_Config(t_FmPortParams *p_FmPortParams) +{ + t_FmPort *p_FmPort; + uintptr_t baseAddr = p_FmPortParams->baseAddr; + + /* Allocate FM structure */ + p_FmPort = (t_FmPort *) XX_Malloc(sizeof(t_FmPort)); + if (!p_FmPort) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM Port driver structure")); + return NULL; + } + memset(p_FmPort, 0, sizeof(t_FmPort)); + + /* Allocate the FM driver's parameters structure */ + p_FmPort->p_FmPortDriverParam = (t_FmPortDriverParam *)XX_Malloc(sizeof(t_FmPortDriverParam)); + if (!p_FmPort->p_FmPortDriverParam) + { + XX_Free(p_FmPort); + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM Port driver parameters")); + return NULL; + } + memset(p_FmPort->p_FmPortDriverParam, 0, sizeof(t_FmPortDriverParam)); + + /* Initialize FM port parameters which will be kept by the driver */ + p_FmPort->portType = p_FmPortParams->portType; + p_FmPort->portId = p_FmPortParams->portId; + p_FmPort->pcdEngines = FM_PCD_NONE; + p_FmPort->f_Exception = p_FmPortParams->f_Exception; + p_FmPort->h_App = p_FmPortParams->h_App; + p_FmPort->h_Fm = p_FmPortParams->h_Fm; + + /* calculate global portId number */ + SW_PORT_ID_TO_HW_PORT_ID(p_FmPort->hardwarePortId, p_FmPort->portType, p_FmPortParams->portId); + + /* Initialize FM port parameters for initialization phase only */ + p_FmPort->p_FmPortDriverParam->baseAddr = baseAddr; + p_FmPort->p_FmPortDriverParam->bufferPrefixContent.privDataSize = DEFAULT_PORT_bufferPrefixContent_privDataSize; + p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passPrsResult= DEFAULT_PORT_bufferPrefixContent_passPrsResult; + p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passTimeStamp= DEFAULT_PORT_bufferPrefixContent_passTimeStamp; + p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passAllOtherPCDInfo + = DEFAULT_PORT_bufferPrefixContent_passTimeStamp; +#ifdef DEBUG + p_FmPort->p_FmPortDriverParam->bufferPrefixContent.passDebugInfo= DEFAULT_PORT_bufferPrefixContent_debugInfo; +#endif /* DEBUG */ + p_FmPort->p_FmPortDriverParam->bufferPrefixContent.dataAlign = DEFAULT_PORT_bufferPrefixContent_dataAlign; + p_FmPort->p_FmPortDriverParam->dmaSwapData = DEFAULT_PORT_dmaSwapData; + p_FmPort->p_FmPortDriverParam->dmaIntContextCacheAttr = DEFAULT_PORT_dmaIntContextCacheAttr; + p_FmPort->p_FmPortDriverParam->dmaHeaderCacheAttr = DEFAULT_PORT_dmaHeaderCacheAttr; + p_FmPort->p_FmPortDriverParam->dmaScatterGatherCacheAttr = DEFAULT_PORT_dmaScatterGatherCacheAttr; + p_FmPort->p_FmPortDriverParam->dmaWriteOptimize = DEFAULT_PORT_dmaWriteOptimize; + p_FmPort->p_FmPortDriverParam->liodnBase = p_FmPortParams->liodnBase; + + /* resource distribution. */ + p_FmPort->fifoBufs.num = DEFAULT_PORT_sizeOfFifo(p_FmPort->portType); + p_FmPort->fifoBufs.extra = DEFAULT_PORT_extraSizeOfFifo(p_FmPort->portType); + p_FmPort->openDmas.num = DEFAULT_PORT_numOfOpenDmas(p_FmPort->portType); + p_FmPort->openDmas.extra = DEFAULT_PORT_extraNumOfOpenDmas(p_FmPort->portType); + p_FmPort->tasks.num = DEFAULT_PORT_numOfTasks(p_FmPort->portType); + p_FmPort->tasks.extra = DEFAULT_PORT_extraNumOfTasks(p_FmPort->portType); + p_FmPort->numOfTasks = (uint8_t)p_FmPort->tasks.num; +#ifdef FM_PORT_EXCESSIVE_BUDGET_ERRATA_FMANx16 + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + { + p_FmPort->fifoBufs.extra = 0; + p_FmPort->openDmas.extra = 0; + p_FmPort->tasks.extra = 0; + } + } +#endif /* FM_PORT_EXCESSIVE_BUDGET_ERRATA_FMANx16 */ + + p_FmPort->p_FmPortDriverParam->color = DEFAULT_PORT_color; +#ifdef FM_OP_PORT_QMAN_REJECT_ERRATA_FMAN21 + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0) && + (p_FmPort->portType == e_FM_PORT_TYPE_OH_OFFLINE_PARSING)) + p_FmPort->p_FmPortDriverParam->color = e_FM_PORT_COLOR_OVERRIDE; + } +#endif /* FM_OP_PORT_QMAN_REJECT_ERRATA_FMAN21 */ + + if (p_FmPort->portType == e_FM_PORT_TYPE_OH_HOST_COMMAND) + p_FmPort->p_FmPortDriverParam->syncReq = DEFAULT_PORT_syncReqForHc; + else + p_FmPort->p_FmPortDriverParam->syncReq = DEFAULT_PORT_syncReq; + +#ifdef FM_PORT_SYNC_ERRATA_FMAN6 + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0) && + (p_FmPort->portType != e_FM_PORT_TYPE_OH_OFFLINE_PARSING)) + p_FmPort->p_FmPortDriverParam->syncReq = FALSE; + } +#endif /* FM_PORT_SYNC_ERRATA_FMAN6 */ + + /* Port type specific initialization: */ + if ((p_FmPort->portType != e_FM_PORT_TYPE_TX) && + (p_FmPort->portType != e_FM_PORT_TYPE_TX_10G)) + p_FmPort->p_FmPortDriverParam->frmDiscardOverride = DEFAULT_PORT_frmDiscardOverride; + + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX): + case(e_FM_PORT_TYPE_RX_10G): + /* Initialize FM port parameters for initialization phase only */ + p_FmPort->p_FmPortDriverParam->cutBytesFromEnd = DEFAULT_PORT_cutBytesFromEnd; + p_FmPort->p_FmPortDriverParam->enBufPoolDepletion = FALSE; + p_FmPort->p_FmPortDriverParam->frmDiscardOverride = DEFAULT_PORT_frmDiscardOverride; + p_FmPort->p_FmPortDriverParam->rxFifoPriElevationLevel = DEFAULT_PORT_rxFifoPriElevationLevel; + p_FmPort->p_FmPortDriverParam->rxFifoThreshold = DEFAULT_PORT_rxFifoThreshold; + p_FmPort->p_FmPortDriverParam->bufMargins.endMargins = DEFAULT_PORT_BufMargins_endMargins; + p_FmPort->p_FmPortDriverParam->errorsToDiscard = DEFAULT_PORT_errorsToDiscard; + p_FmPort->p_FmPortDriverParam->cheksumLastBytesIgnore = DEFAULT_PORT_cheksumLastBytesIgnore; + p_FmPort->p_FmPortDriverParam->forwardReuseIntContext = DEFAULT_PORT_forwardIntContextReuse; + break; + + case(e_FM_PORT_TYPE_TX): + p_FmPort->txFifoDeqPipelineDepth = DEFAULT_PORT_txFifoDeqPipelineDepth_1G; + p_FmPort->p_FmPortDriverParam->dontReleaseBuf = FALSE; + case(e_FM_PORT_TYPE_TX_10G): + if(p_FmPort->portType == e_FM_PORT_TYPE_TX_10G) + p_FmPort->txFifoDeqPipelineDepth = DEFAULT_PORT_txFifoDeqPipelineDepth_10G; + p_FmPort->p_FmPortDriverParam->cheksumLastBytesIgnore = DEFAULT_PORT_cheksumLastBytesIgnore; + p_FmPort->p_FmPortDriverParam->txFifoMinFillLevel = DEFAULT_PORT_txFifoMinFillLevel; + p_FmPort->p_FmPortDriverParam->txFifoLowComfLevel = DEFAULT_PORT_txFifoLowComfLevel; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + case(e_FM_PORT_TYPE_OH_HOST_COMMAND): + p_FmPort->p_FmPortDriverParam->deqHighPriority = DEFAULT_PORT_deqHighPriority; + p_FmPort->p_FmPortDriverParam->deqType = DEFAULT_PORT_deqType; +#ifdef FM_QMI_DEQ_OPTIONS_SUPPORT + p_FmPort->p_FmPortDriverParam->deqPrefetchOption = DEFAULT_PORT_deqPrefetchOption; +#endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ + p_FmPort->p_FmPortDriverParam->deqByteCnt = DEFAULT_PORT_deqByteCnt; + + if (p_FmPort->portType == e_FM_PORT_TYPE_OH_OFFLINE_PARSING) + p_FmPort->p_FmPortDriverParam->errorsToDiscard = DEFAULT_PORT_errorsToDiscard; + break; + + default: + XX_Free(p_FmPort->p_FmPortDriverParam); + XX_Free(p_FmPort); + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("Invalid port type")); + return NULL; + } +#ifdef FM_QMI_DEQ_OPTIONS_SUPPORT + if (p_FmPort->portType == e_FM_PORT_TYPE_OH_HOST_COMMAND) + p_FmPort->p_FmPortDriverParam->deqPrefetchOption = DEFAULT_PORT_deqPrefetchOption_HC; +#endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ + + if ((p_FmPort->portType == e_FM_PORT_TYPE_OH_OFFLINE_PARSING) || + (p_FmPort->portType == e_FM_PORT_TYPE_OH_HOST_COMMAND)) + p_FmPort->txFifoDeqPipelineDepth = OH_PIPELINE_DEPTH; + + p_FmPort->imEn = p_FmPortParams->independentModeEnable; + + if (p_FmPort->imEn) + { + if ((p_FmPort->portType == e_FM_PORT_TYPE_TX) || + (p_FmPort->portType == e_FM_PORT_TYPE_TX_10G)) + p_FmPort->txFifoDeqPipelineDepth = DEFAULT_PORT_txFifoDeqPipelineDepth_IM; + FmPortConfigIM(p_FmPort, p_FmPortParams); + } + else + { + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX): + case(e_FM_PORT_TYPE_RX_10G): + /* Initialize FM port parameters for initialization phase only */ + memcpy(&p_FmPort->p_FmPortDriverParam->extBufPools, + &p_FmPortParams->specificParams.rxParams.extBufPools, + sizeof(t_FmPortExtPools)); + p_FmPort->p_FmPortDriverParam->errFqid = p_FmPortParams->specificParams.rxParams.errFqid; + p_FmPort->p_FmPortDriverParam->dfltFqid = p_FmPortParams->specificParams.rxParams.dfltFqid; + p_FmPort->p_FmPortDriverParam->liodnOffset = p_FmPortParams->specificParams.rxParams.liodnOffset; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): +#ifdef FM_OP_PARTITION_ERRATA_FMANx8 + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + p_FmPort->p_FmPortDriverParam->liodnOffset = p_FmPortParams->specificParams.nonRxParams.opLiodnOffset; + } +#endif /* FM_OP_PARTITION_ERRATA_FMANx8 */ + case(e_FM_PORT_TYPE_TX): + case(e_FM_PORT_TYPE_TX_10G): + case(e_FM_PORT_TYPE_OH_HOST_COMMAND): + p_FmPort->p_FmPortDriverParam->errFqid = p_FmPortParams->specificParams.nonRxParams.errFqid; + p_FmPort->p_FmPortDriverParam->deqSubPortal = + (uint8_t)(p_FmPortParams->specificParams.nonRxParams.qmChannel & QMI_DEQ_CFG_SUBPORTAL_MASK); + p_FmPort->p_FmPortDriverParam->dfltFqid = p_FmPortParams->specificParams.nonRxParams.dfltFqid; + break; + default: + XX_Free(p_FmPort->p_FmPortDriverParam); + XX_Free(p_FmPort); + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("Invalid port type")); + return NULL; + } + } + + memset(p_FmPort->name, 0, (sizeof(char)) * MODULE_NAME_SIZE); + if(Sprint (p_FmPort->name, "FM-%d-port-%s-%d", + FmGetId(p_FmPort->h_Fm), + ((p_FmPort->portType == e_FM_PORT_TYPE_OH_OFFLINE_PARSING || + (p_FmPort->portType == e_FM_PORT_TYPE_OH_HOST_COMMAND)) ? + "OH" : (p_FmPort->portType == e_FM_PORT_TYPE_RX ? + "1g-RX" : (p_FmPort->portType == e_FM_PORT_TYPE_TX ? + "1g-TX" : (p_FmPort->portType == e_FM_PORT_TYPE_RX_10G ? + "10g-RX" : "10g-TX")))), + p_FmPort->portId) == 0) + { + XX_Free(p_FmPort->p_FmPortDriverParam); + XX_Free(p_FmPort); + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("Sprint failed")); + return NULL; + } + + p_FmPort->h_Spinlock = XX_InitSpinlock(); + if (!p_FmPort->h_Spinlock) + { + XX_Free(p_FmPort->p_FmPortDriverParam); + XX_Free(p_FmPort); + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("Sprint failed")); + return NULL; + } + + return p_FmPort; +} + +/**************************************************************************//** + @Function FM_PORT_Init + + @Description Initializes the FM module + + @Param[in] h_FmPort - FM module descriptor + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error FM_PORT_Init(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_FmPortDriverParam *p_Params; + t_Error err = E_OK; + t_FmInterModulePortInitParams fmParams; + uint32_t minFifoSizeRequired = 0; + + SANITY_CHECK_RETURN_ERROR(h_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + if ((err = BuildBufferStructure(p_FmPort)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + + CHECK_INIT_PARAMETERS(p_FmPort, CheckInitParameters); + + p_Params = p_FmPort->p_FmPortDriverParam; + + /* set memory map pointers */ + p_FmPort->p_FmPortQmiRegs = (t_FmPortQmiRegs *)UINT_TO_PTR(p_Params->baseAddr + QMI_PORT_REGS_OFFSET); + p_FmPort->p_FmPortBmiRegs = (u_FmPortBmiRegs *)UINT_TO_PTR(p_Params->baseAddr + BMI_PORT_REGS_OFFSET); + p_FmPort->p_FmPortPrsRegs = (t_FmPortPrsRegs *)UINT_TO_PTR(p_Params->baseAddr + PRS_PORT_REGS_OFFSET); + + /* For O/H ports, check fifo size and update if necessary */ + if ((p_FmPort->portType == e_FM_PORT_TYPE_OH_OFFLINE_PARSING) || (p_FmPort->portType == e_FM_PORT_TYPE_OH_HOST_COMMAND)) + { + minFifoSizeRequired = (uint32_t)((p_FmPort->txFifoDeqPipelineDepth+4)*BMI_FIFO_UNITS); + if (p_FmPort->fifoBufs.num < minFifoSizeRequired) + { + p_FmPort->fifoBufs.num = minFifoSizeRequired; + DBG(WARNING, ("FIFO size enlarged to %d due to txFifoDeqPipelineDepth size", minFifoSizeRequired)); + } + } + + /* For Rx Ports, call the external Buffer routine which also checks fifo + size and updates it if necessary */ + if(((p_FmPort->portType == e_FM_PORT_TYPE_RX) || (p_FmPort->portType == e_FM_PORT_TYPE_RX_10G)) + && !p_FmPort->imEn) + { + /* define external buffer pools and pool depletion*/ + err = SetExtBufferPools(p_FmPort); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + /************************************************************/ + /* Call FM module routine for communicating parameters */ + /************************************************************/ + memset(&fmParams, 0, sizeof(fmParams)); + fmParams.hardwarePortId = p_FmPort->hardwarePortId; + fmParams.portType = (e_FmPortType)p_FmPort->portType; + fmParams.numOfTasks = (uint8_t)p_FmPort->tasks.num; + fmParams.numOfExtraTasks = (uint8_t)p_FmPort->tasks.extra; + fmParams.numOfOpenDmas = (uint8_t)p_FmPort->openDmas.num; + fmParams.numOfExtraOpenDmas = (uint8_t)p_FmPort->openDmas.extra; + fmParams.sizeOfFifo = p_FmPort->fifoBufs.num; + fmParams.extraSizeOfFifo = p_FmPort->fifoBufs.extra; + fmParams.independentMode = p_FmPort->imEn; + fmParams.liodnOffset = p_Params->liodnOffset; + fmParams.liodnBase = p_Params->liodnBase; + + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + break; + case(e_FM_PORT_TYPE_TX_10G): + case(e_FM_PORT_TYPE_TX): + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + case(e_FM_PORT_TYPE_OH_HOST_COMMAND): + fmParams.deqPipelineDepth = p_FmPort->txFifoDeqPipelineDepth; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); + } + + err = FmGetSetPortParams(p_FmPort->h_Fm, &fmParams); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + + p_FmPort->tasks.num = fmParams.numOfTasks; + p_FmPort->tasks.extra = fmParams.numOfExtraTasks; + p_FmPort->openDmas.num = fmParams.numOfOpenDmas; + p_FmPort->openDmas.extra = fmParams.numOfExtraOpenDmas; + p_FmPort->fifoBufs.num = fmParams.sizeOfFifo; + p_FmPort->fifoBufs.extra = fmParams.extraSizeOfFifo; + + /* get params for use in init */ + p_Params->fmMuramPhysBaseAddr = + (uint64_t)((uint64_t)(fmParams.fmMuramPhysBaseAddr.low) | + ((uint64_t)(fmParams.fmMuramPhysBaseAddr.high) << 32)); + + /**********************/ + /* Init BMI Registers */ + /**********************/ + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + err = BmiRxPortInit(p_FmPort); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + break; + case(e_FM_PORT_TYPE_TX_10G): + case(e_FM_PORT_TYPE_TX): + err = BmiTxPortInit(p_FmPort); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + case(e_FM_PORT_TYPE_OH_HOST_COMMAND): + err = BmiOhPortInit(p_FmPort); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); + } + + /**********************/ + /* Init QMI Registers */ + /**********************/ + if (!p_FmPort->imEn && ((err = QmiInit(p_FmPort)) != E_OK)) + RETURN_ERROR(MAJOR, err, NO_MSG); + + if (p_FmPort->imEn && ((err = FmPortImInit(p_FmPort)) != E_OK)) + RETURN_ERROR(MAJOR, err, NO_MSG); + + FmPortDriverParamFree(p_FmPort); + + return E_OK; +} + +/**************************************************************************//** + @Function FM_PORT_Free + + @Description Frees all resources that were assigned to FM module. + + Calling this routine invalidates the descriptor. + + @Param[in] h_FmPort - FM module descriptor + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error FM_PORT_Free(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_FmInterModulePortFreeParams fmParams; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + + if(p_FmPort->pcdEngines) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Trying to free a port with PCD. FM_PORT_DeletePCD must be called first.")); + + if (p_FmPort->enabled) + { + if (FM_PORT_Disable(p_FmPort) != E_OK) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("FM_PORT_Disable FAILED")); + } + + if (p_FmPort->h_Spinlock) + XX_FreeSpinlock(p_FmPort->h_Spinlock); + + FmPortDriverParamFree(p_FmPort); + + if (p_FmPort->imEn) + FmPortImFree(p_FmPort); + + fmParams.hardwarePortId = p_FmPort->hardwarePortId; + fmParams.portType = (e_FmPortType)p_FmPort->portType; +#ifdef FM_QMI_DEQ_OPTIONS_SUPPORT + fmParams.deqPipelineDepth = p_FmPort->txFifoDeqPipelineDepth; +#endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ + + FmFreePortParams(p_FmPort->h_Fm, &fmParams); + + XX_Free(p_FmPort); + + return E_OK; +} + + +/*************************************************/ +/* API Advanced Init unit functions */ +/*************************************************/ + +t_Error FM_PORT_ConfigDeqHighPriority(t_Handle h_FmPort, bool highPri) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + if((p_FmPort->portType == e_FM_PORT_TYPE_RX_10G) || (p_FmPort->portType == e_FM_PORT_TYPE_RX)) + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("not available for Rx ports")); + + p_FmPort->p_FmPortDriverParam->deqHighPriority = highPri; + + return E_OK; +} + +t_Error FM_PORT_ConfigDeqType(t_Handle h_FmPort, e_FmPortDeqType deqType) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + if((p_FmPort->portType == e_FM_PORT_TYPE_RX_10G) || (p_FmPort->portType == e_FM_PORT_TYPE_RX)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("not available for Rx ports")); + + p_FmPort->p_FmPortDriverParam->deqType = deqType; + + return E_OK; +} + +#ifdef FM_QMI_DEQ_OPTIONS_SUPPORT +t_Error FM_PORT_ConfigDeqPrefetchOption(t_Handle h_FmPort, e_FmPortDeqPrefetchOption deqPrefetchOption) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + if((p_FmPort->portType == e_FM_PORT_TYPE_RX_10G) || (p_FmPort->portType == e_FM_PORT_TYPE_RX)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("not available for Rx ports")); + p_FmPort->p_FmPortDriverParam->deqPrefetchOption = deqPrefetchOption; + return E_OK; +} +#endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ + +t_Error FM_PORT_ConfigBackupPools(t_Handle h_FmPort, t_FmPortBackupBmPools *p_BackupBmPools) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; +#ifdef FM_NO_BACKUP_POOLS + t_FmRevisionInfo revInfo; +#endif /* FM_NO_BACKUP_POOLS */ + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + if((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && (p_FmPort->portType != e_FM_PORT_TYPE_RX)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx ports only")); + +#ifdef FM_NO_BACKUP_POOLS + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if (revInfo.majorRev != 4) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("FM_PORT_ConfigBackupPools")); +#endif /* FM_NO_BACKUP_POOLS */ + + p_FmPort->p_FmPortDriverParam->p_BackupBmPools = (t_FmPortBackupBmPools *)XX_Malloc(sizeof(t_FmPortBackupBmPools)); + if(!p_FmPort->p_FmPortDriverParam->p_BackupBmPools) + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("p_BackupBmPools allocation failed")); + memcpy(p_FmPort->p_FmPortDriverParam->p_BackupBmPools, p_BackupBmPools, sizeof(t_FmPortBackupBmPools)); + + return E_OK; +} + +t_Error FM_PORT_ConfigDeqByteCnt(t_Handle h_FmPort, uint16_t deqByteCnt) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + if((p_FmPort->portType == e_FM_PORT_TYPE_RX_10G) || (p_FmPort->portType == e_FM_PORT_TYPE_RX)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("not available for Rx ports")); + + p_FmPort->p_FmPortDriverParam->deqByteCnt = deqByteCnt; + + return E_OK; +} + +t_Error FM_PORT_ConfigBufferPrefixContent(t_Handle h_FmPort, t_FmPortBufferPrefixContent *p_FmPortBufferPrefixContent) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + memcpy(&p_FmPort->p_FmPortDriverParam->bufferPrefixContent, p_FmPortBufferPrefixContent, sizeof(t_FmPortBufferPrefixContent)); + /* if dataAlign was not initialized by user, we return to driver's deafult */ + if (!p_FmPort->p_FmPortDriverParam->bufferPrefixContent.dataAlign) + p_FmPort->p_FmPortDriverParam->bufferPrefixContent.dataAlign = DEFAULT_PORT_bufferPrefixContent_dataAlign; + + return E_OK; +} + +t_Error FM_PORT_ConfigCheksumLastBytesIgnore(t_Handle h_FmPort, uint8_t cheksumLastBytesIgnore) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + if((p_FmPort->portType == e_FM_PORT_TYPE_OH_OFFLINE_PARSING) || (p_FmPort->portType == e_FM_PORT_TYPE_OH_HOST_COMMAND)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx & Tx ports only")); + + p_FmPort->p_FmPortDriverParam->cheksumLastBytesIgnore = cheksumLastBytesIgnore; + + return E_OK; +} + +t_Error FM_PORT_ConfigCutBytesFromEnd(t_Handle h_FmPort, uint8_t cutBytesFromEnd) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + if((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && (p_FmPort->portType != e_FM_PORT_TYPE_RX)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx ports only")); + + p_FmPort->p_FmPortDriverParam->cutBytesFromEnd = cutBytesFromEnd; + + return E_OK; +} + +t_Error FM_PORT_ConfigPoolDepletion(t_Handle h_FmPort, t_FmPortBufPoolDepletion *p_BufPoolDepletion) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + if((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && (p_FmPort->portType != e_FM_PORT_TYPE_RX)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx ports only")); + + p_FmPort->p_FmPortDriverParam->enBufPoolDepletion = TRUE; + memcpy(&p_FmPort->p_FmPortDriverParam->bufPoolDepletion, p_BufPoolDepletion, sizeof(t_FmPortBufPoolDepletion)); + + return E_OK; +} + +t_Error FM_PORT_ConfigObservedPoolDepletion(t_Handle h_FmPort, t_FmPortObservedBufPoolDepletion *p_FmPortObservedBufPoolDepletion) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + if(p_FmPort->portType != e_FM_PORT_TYPE_OH_OFFLINE_PARSING) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for OP ports only")); + + p_FmPort->p_FmPortDriverParam->enBufPoolDepletion = TRUE; + memcpy(&p_FmPort->p_FmPortDriverParam->bufPoolDepletion, &p_FmPortObservedBufPoolDepletion->poolDepletionParams, sizeof(t_FmPortBufPoolDepletion)); + memcpy(&p_FmPort->p_FmPortDriverParam->extBufPools, &p_FmPortObservedBufPoolDepletion->poolsParams, sizeof(t_FmPortExtPools)); + + return E_OK; +} + +t_Error FM_PORT_ConfigExtBufPools(t_Handle h_FmPort, t_FmPortExtPools *p_FmPortExtPools) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + if(p_FmPort->portType != e_FM_PORT_TYPE_OH_OFFLINE_PARSING) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for OP ports only")); + + memcpy(&p_FmPort->p_FmPortDriverParam->extBufPools, p_FmPortExtPools, sizeof(t_FmPortExtPools)); + + return E_OK; +} + +t_Error FM_PORT_ConfigRxFifoThreshold(t_Handle h_FmPort, uint32_t fifoThreshold) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + if((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && (p_FmPort->portType != e_FM_PORT_TYPE_RX)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx ports only")); + + p_FmPort->p_FmPortDriverParam->rxFifoThreshold = fifoThreshold; + + return E_OK; +} + +t_Error FM_PORT_ConfigRxFifoPriElevationLevel(t_Handle h_FmPort, uint32_t priElevationLevel) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + if((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && (p_FmPort->portType != e_FM_PORT_TYPE_RX)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx ports only")); + + p_FmPort->p_FmPortDriverParam->rxFifoPriElevationLevel = priElevationLevel; + + return E_OK; +} + +t_Error FM_PORT_ConfigTxFifoMinFillLevel(t_Handle h_FmPort, uint32_t minFillLevel) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + if((p_FmPort->portType != e_FM_PORT_TYPE_TX_10G) && (p_FmPort->portType != e_FM_PORT_TYPE_TX)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Tx ports only")); + + p_FmPort->p_FmPortDriverParam->txFifoMinFillLevel = minFillLevel; + + return E_OK; +} + +t_Error FM_PORT_ConfigTxFifoDeqPipelineDepth(t_Handle h_FmPort, uint8_t deqPipelineDepth) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + if ((p_FmPort->portType != e_FM_PORT_TYPE_TX_10G) && + (p_FmPort->portType != e_FM_PORT_TYPE_TX)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Tx ports only")); + if (p_FmPort->imEn) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("Not available for IM ports!")); + + p_FmPort->txFifoDeqPipelineDepth = deqPipelineDepth; + + return E_OK; +} + +t_Error FM_PORT_ConfigTxFifoLowComfLevel(t_Handle h_FmPort, uint32_t fifoLowComfLevel) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + if((p_FmPort->portType != e_FM_PORT_TYPE_TX_10G) && (p_FmPort->portType != e_FM_PORT_TYPE_TX)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Tx ports only")); + + p_FmPort->p_FmPortDriverParam->txFifoLowComfLevel = fifoLowComfLevel; + + return E_OK; +} + +t_Error FM_PORT_ConfigDontReleaseTxBufToBM(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + if((p_FmPort->portType != e_FM_PORT_TYPE_TX_10G) && (p_FmPort->portType != e_FM_PORT_TYPE_TX)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Tx ports only")); + + p_FmPort->p_FmPortDriverParam->dontReleaseBuf = TRUE; + + return E_OK; +} + +t_Error FM_PORT_ConfigDfltColor(t_Handle h_FmPort, e_FmPortColor color) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); +#ifdef FM_OP_PORT_QMAN_REJECT_ERRATA_FMAN21 + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("FM_PORT_ConfigDfltColor!")); + } +#endif /* FM_OP_PORT_QMAN_REJECT_ERRATA_FMAN21 */ + p_FmPort->p_FmPortDriverParam->color = color; + + return E_OK; +} + +t_Error FM_PORT_ConfigSyncReq(t_Handle h_FmPort, bool syncReq) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); +#ifdef FM_PORT_SYNC_ERRATA_FMAN6 + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("port-sync!")); + } +#endif /* FM_PORT_SYNC_ERRATA_FMAN6 */ + + p_FmPort->p_FmPortDriverParam->syncReq = syncReq; + + return E_OK; +} + + +t_Error FM_PORT_ConfigFrmDiscardOverride(t_Handle h_FmPort, bool override) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + if((p_FmPort->portType == e_FM_PORT_TYPE_TX_10G) && (p_FmPort->portType == e_FM_PORT_TYPE_TX)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("not available for Tx ports")); + + p_FmPort->p_FmPortDriverParam->frmDiscardOverride = override; + + return E_OK; +} + +t_Error FM_PORT_ConfigErrorsToDiscard(t_Handle h_FmPort, fmPortFrameErrSelect_t errs) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + if((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && (p_FmPort->portType != e_FM_PORT_TYPE_RX) && + (p_FmPort->portType != e_FM_PORT_TYPE_OH_OFFLINE_PARSING)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx and offline parsing ports only")); + + p_FmPort->p_FmPortDriverParam->errorsToDiscard = errs; + + return E_OK; +} + +t_Error FM_PORT_ConfigDmaSwapData(t_Handle h_FmPort, e_FmPortDmaSwap swapData) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + p_FmPort->p_FmPortDriverParam->dmaSwapData = swapData; + + return E_OK; +} + +t_Error FM_PORT_ConfigDmaIcCacheAttr(t_Handle h_FmPort, e_FmPortDmaCache intContextCacheAttr) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + p_FmPort->p_FmPortDriverParam->dmaIntContextCacheAttr = intContextCacheAttr; + + return E_OK; +} + +t_Error FM_PORT_ConfigDmaHdrAttr(t_Handle h_FmPort, e_FmPortDmaCache headerCacheAttr) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + p_FmPort->p_FmPortDriverParam->dmaHeaderCacheAttr = headerCacheAttr; + + return E_OK; +} + +t_Error FM_PORT_ConfigDmaScatterGatherAttr(t_Handle h_FmPort, e_FmPortDmaCache scatterGatherCacheAttr) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + p_FmPort->p_FmPortDriverParam->dmaScatterGatherCacheAttr = scatterGatherCacheAttr; + + return E_OK; +} + +t_Error FM_PORT_ConfigDmaWriteOptimize(t_Handle h_FmPort, bool optimize) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + if((p_FmPort->portType == e_FM_PORT_TYPE_TX_10G) || (p_FmPort->portType == e_FM_PORT_TYPE_TX)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("Not available for Tx ports")); + + p_FmPort->p_FmPortDriverParam->dmaWriteOptimize = optimize; + + return E_OK; +} + +t_Error FM_PORT_ConfigForwardReuseIntContext(t_Handle h_FmPort, bool forwardReuse) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + if((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && (p_FmPort->portType != e_FM_PORT_TYPE_RX)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx ports only")); + + p_FmPort->p_FmPortDriverParam->forwardReuseIntContext = forwardReuse; + + return E_OK; +} + + +/****************************************************/ +/* PCD Advaced config API */ +/****************************************************/ + +/****************************************************/ +/* API Run-time Control unit functions */ +/****************************************************/ + +t_Error FM_PORT_SetNumOfOpenDmas(t_Handle h_FmPort, t_FmPortRsrc *p_NumOfOpenDmas) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_Error err; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + +#ifdef FM_PORT_EXCESSIVE_BUDGET_ERRATA_FMANx16 + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0) && + (p_NumOfOpenDmas->extra)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("excessive resources")); + } +#endif /* FM_PORT_EXCESSIVE_BUDGET_ERRATA_FMANx16 */ + + if((!p_NumOfOpenDmas->num) || (p_NumOfOpenDmas->num > MAX_NUM_OF_DMAS)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("openDmas-num can't be larger than %d", MAX_NUM_OF_DMAS)); + if(p_NumOfOpenDmas->extra > MAX_NUM_OF_EXTRA_DMAS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("openDmas-extra can't be larger than %d", MAX_NUM_OF_EXTRA_DMAS)); + err = FmSetNumOfOpenDmas(p_FmPort->h_Fm, p_FmPort->hardwarePortId, (uint8_t)p_NumOfOpenDmas->num, (uint8_t)p_NumOfOpenDmas->extra, FALSE); + if(err) + RETURN_ERROR(MINOR, err, NO_MSG); + + memcpy(&p_FmPort->openDmas, p_NumOfOpenDmas, sizeof(t_FmPortRsrc)); + + return E_OK; +} + +t_Error FM_PORT_SetNumOfTasks(t_Handle h_FmPort, t_FmPortRsrc *p_NumOfTasks) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_Error err; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + if (p_FmPort->portType == e_FM_PORT_TYPE_OH_HOST_COMMAND) + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("not available for host command port where number is always 1")); + +#ifdef FM_PORT_EXCESSIVE_BUDGET_ERRATA_FMANx16 + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0) && + (p_NumOfTasks->extra)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("excessive resources")); + } +#endif /* FM_PORT_EXCESSIVE_BUDGET_ERRATA_FMANx16 */ + + if((!p_NumOfTasks->num) || (p_NumOfTasks->num > MAX_NUM_OF_TASKS)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("NumOfTasks-num can't be larger than %d", MAX_NUM_OF_TASKS)); + if(p_NumOfTasks->extra > MAX_NUM_OF_EXTRA_TASKS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("NumOfTasks-extra can't be larger than %d", MAX_NUM_OF_EXTRA_TASKS)); + + err = FmSetNumOfTasks(p_FmPort->h_Fm, p_FmPort->hardwarePortId, (uint8_t)p_NumOfTasks->num, (uint8_t)p_NumOfTasks->extra, FALSE); + if(err) + RETURN_ERROR(MINOR, err, NO_MSG); + + /* update driver's struct */ + memcpy(&p_FmPort->tasks, p_NumOfTasks, sizeof(t_FmPortRsrc)); + return E_OK; +} + +t_Error FM_PORT_SetSizeOfFifo(t_Handle h_FmPort, t_FmPortRsrc *p_SizeOfFifo) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_Error err; + t_FmInterModulePortRxPoolsParams rxPoolsParams; + uint32_t minFifoSizeRequired; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + +#ifdef FM_PORT_EXCESSIVE_BUDGET_ERRATA_FMANx16 + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0) && + (p_SizeOfFifo->extra)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("excessive resources")); + } +#endif /* FM_PORT_EXCESSIVE_BUDGET_ERRATA_FMANx16 */ + if(!p_SizeOfFifo->num || (p_SizeOfFifo->num > BMI_MAX_FIFO_SIZE)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("SizeOfFifo-num has to be in the range of 256 - %d", BMI_MAX_FIFO_SIZE)); + if(p_SizeOfFifo->num % BMI_FIFO_UNITS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("SizeOfFifo-num has to be divisible by %d", BMI_FIFO_UNITS)); + if((p_FmPort->portType == e_FM_PORT_TYPE_RX) || (p_FmPort->portType == e_FM_PORT_TYPE_RX_10G)) + { + /* extra FIFO size (allowed only to Rx ports) */ + if(p_SizeOfFifo->extra % BMI_FIFO_UNITS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("SizeOfFifo-extra has to be divisible by %d", BMI_FIFO_UNITS)); + } + else + if(p_SizeOfFifo->extra) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, (" No SizeOfFifo-extra for non Rx ports")); + + /* For O/H ports, check fifo size and update if necessary */ + if((p_FmPort->portType == e_FM_PORT_TYPE_OH_OFFLINE_PARSING) || (p_FmPort->portType == e_FM_PORT_TYPE_OH_HOST_COMMAND)) + { + minFifoSizeRequired = (uint32_t)((p_FmPort->txFifoDeqPipelineDepth+4)*BMI_FIFO_UNITS); + if (p_FmPort->fifoBufs.num < minFifoSizeRequired) + { + p_FmPort->fifoBufs.num = minFifoSizeRequired; + DBG(INFO, ("FIFO size enlarged to %d", minFifoSizeRequired)); + } + } + memcpy(&rxPoolsParams, &p_FmPort->rxPoolsParams, sizeof(rxPoolsParams)); + err = FmSetSizeOfFifo(p_FmPort->h_Fm, + p_FmPort->hardwarePortId, + p_FmPort->portType, + p_FmPort->imEn, + &p_SizeOfFifo->num, + p_SizeOfFifo->extra, + p_FmPort->txFifoDeqPipelineDepth, + &rxPoolsParams, + FALSE); + if(err) + RETURN_ERROR(MINOR, err, NO_MSG); + + /* update driver's structure AFTER the FM routine, as it may change by the FM. */ + memcpy(&p_FmPort->fifoBufs, p_SizeOfFifo, sizeof(t_FmPortRsrc)); + + return E_OK; +} + +uint32_t FM_PORT_GetBufferDataOffset(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_VALUE(p_FmPort, E_INVALID_HANDLE, 0); + SANITY_CHECK_RETURN_VALUE(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE, 0); + + return p_FmPort->bufferOffsets.dataOffset; +} + +uint8_t * FM_PORT_GetBufferICInfo(t_Handle h_FmPort, char *p_Data) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_VALUE(p_FmPort, E_INVALID_HANDLE, 0); + SANITY_CHECK_RETURN_VALUE(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE, 0); + + if(p_FmPort->bufferOffsets.pcdInfoOffset == ILLEGAL_BASE) + return NULL; + + return (uint8_t *)PTR_MOVE(p_Data, p_FmPort->bufferOffsets.pcdInfoOffset); +} + +#ifdef DEBUG +uint8_t * FM_PORT_GetBufferDebugInfo(t_Handle h_FmPort, char *p_Data) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_VALUE(p_FmPort, E_INVALID_HANDLE, 0); + SANITY_CHECK_RETURN_VALUE(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE, 0); + + if(p_FmPort->bufferOffsets.debugOffset == ILLEGAL_BASE) + return NULL; + + return (uint8_t *)PTR_MOVE(p_Data, p_FmPort->bufferOffsets.debugOffset); +} +#endif /* DEBUG */ + +t_FmPrsResult * FM_PORT_GetBufferPrsResult(t_Handle h_FmPort, char *p_Data) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_VALUE(p_FmPort, E_INVALID_HANDLE, NULL); + SANITY_CHECK_RETURN_VALUE(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE, NULL); + + if(p_FmPort->bufferOffsets.prsResultOffset == ILLEGAL_BASE) + return NULL; + + return (t_FmPrsResult *)PTR_MOVE(p_Data, p_FmPort->bufferOffsets.prsResultOffset); +} + +uint64_t * FM_PORT_GetBufferTimeStamp(t_Handle h_FmPort, char *p_Data) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_VALUE(p_FmPort, E_INVALID_HANDLE, NULL); + SANITY_CHECK_RETURN_VALUE(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE, NULL); + + if(p_FmPort->bufferOffsets.timeStampOffset == ILLEGAL_BASE) + return NULL; + + return (uint64_t *)PTR_MOVE(p_Data, p_FmPort->bufferOffsets.timeStampOffset); +} + +uint8_t * FM_PORT_GetBufferHashResult(t_Handle h_FmPort, char *p_Data) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_VALUE(p_FmPort, E_INVALID_HANDLE, 0); + SANITY_CHECK_RETURN_VALUE(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE, 0); + + if(p_FmPort->bufferOffsets.hashResultOffset == ILLEGAL_BASE) + return NULL; + + return (uint8_t *)PTR_MOVE(p_Data, p_FmPort->bufferOffsets.hashResultOffset); +} + +t_Error FM_PORT_Disable(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + volatile uint32_t *p_BmiCfgReg = NULL; + volatile uint32_t *p_BmiStatusReg = NULL; + bool rxPort = FALSE; + int tries; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + p_BmiCfgReg = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rcfg; + p_BmiStatusReg = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rst; + rxPort = TRUE; + break; + case(e_FM_PORT_TYPE_TX_10G): + case(e_FM_PORT_TYPE_TX): + p_BmiCfgReg = &p_FmPort->p_FmPortBmiRegs->txPortBmiRegs.fmbm_tcfg; + p_BmiStatusReg = &p_FmPort->p_FmPortBmiRegs->txPortBmiRegs.fmbm_tst; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + case(e_FM_PORT_TYPE_OH_HOST_COMMAND): + p_BmiCfgReg = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ocfg; + p_BmiStatusReg = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ost; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid port type")); + } + /* check if port is already disabled */ + if(!(GET_UINT32(*p_BmiCfgReg) & BMI_PORT_CFG_EN)) + { + if (!rxPort && !p_FmPort->imEn) + { + if(!(GET_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnc)& QMI_PORT_CFG_EN)) + /* port is disabled */ + return E_OK; + else + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Inconsistency: Port's QMI is enabled but BMI disabled")); + } + /* port is disabled */ + return E_OK; + } + + /* Disable QMI */ + if (!rxPort && !p_FmPort->imEn) + { + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnc, + GET_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnc) & ~QMI_PORT_CFG_EN); + /* wait for QMI to finish Handling dequeue tnums */ + tries=1000; + while ((GET_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pns) & QMI_PORT_STATUS_DEQ_FD_BSY) && + --tries) + XX_UDelay(1); + if (!tries) + RETURN_ERROR(MINOR, E_BUSY, ("%s: can't disable!", p_FmPort->name)); + } + + /* Disable BMI */ + WRITE_UINT32(*p_BmiCfgReg, GET_UINT32(*p_BmiCfgReg) & ~BMI_PORT_CFG_EN); + + if (p_FmPort->imEn) + FmPortImDisable(p_FmPort); + + tries=5000; + while ((GET_UINT32(*p_BmiStatusReg) & BMI_PORT_STATUS_BSY) && + --tries) + XX_UDelay(1); + + if (!tries) + RETURN_ERROR(MINOR, E_BUSY, ("%s: can't disable!", p_FmPort->name)); + + p_FmPort->enabled = 0; + + return E_OK; +} + +t_Error FM_PORT_Enable(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + volatile uint32_t *p_BmiCfgReg = NULL; + bool rxPort = FALSE; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + p_BmiCfgReg = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rcfg; + rxPort = TRUE; + break; + case(e_FM_PORT_TYPE_TX_10G): + case(e_FM_PORT_TYPE_TX): + p_BmiCfgReg = &p_FmPort->p_FmPortBmiRegs->txPortBmiRegs.fmbm_tcfg; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + case(e_FM_PORT_TYPE_OH_HOST_COMMAND): + p_BmiCfgReg = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ocfg; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid port type")); + } + + /* check if port is already enabled */ + if(GET_UINT32(*p_BmiCfgReg) & BMI_PORT_CFG_EN) + { + if (!rxPort && !p_FmPort->imEn) + { + if(GET_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnc)& QMI_PORT_CFG_EN) + /* port is enabled */ + return E_OK; + else + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Inconsistency: Port's BMI is enabled but QMI disabled")); + } + /* port is enabled */ + return E_OK; + } + + if (p_FmPort->imEn) + FmPortImEnable(p_FmPort); + + /* Enable QMI */ + if (!rxPort && !p_FmPort->imEn) + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnc, + GET_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnc) | QMI_PORT_CFG_EN); + + /* Enable BMI */ + WRITE_UINT32(*p_BmiCfgReg, GET_UINT32(*p_BmiCfgReg) | BMI_PORT_CFG_EN); + + p_FmPort->enabled = 1; + + return E_OK; +} + +t_Error FM_PORT_SetRateLimit(t_Handle h_FmPort, t_FmPortRateLimit *p_RateLimit) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + uint32_t tmpRateLimit, tmpRateLimitScale; + volatile uint32_t *p_RateLimitReg, *p_RateLimitScaleReg; + uint8_t factor, countUnitBit; + uint16_t baseGran; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + if((p_FmPort->portType == e_FM_PORT_TYPE_RX_10G) || (p_FmPort->portType == e_FM_PORT_TYPE_RX) || + (p_FmPort->portType == e_FM_PORT_TYPE_OH_HOST_COMMAND)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Tx and Offline parsing ports only")); + + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_TX_10G): + case(e_FM_PORT_TYPE_TX): + p_RateLimitReg = &p_FmPort->p_FmPortBmiRegs->txPortBmiRegs.fmbm_trlmt; + p_RateLimitScaleReg = &p_FmPort->p_FmPortBmiRegs->txPortBmiRegs.fmbm_trlmts; + baseGran = 16000; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + p_RateLimitReg = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_orlmt; + p_RateLimitScaleReg = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_orlmts; + baseGran = 10000; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid port type")); + } + + countUnitBit = (uint8_t)FmGetTimeStampScale(p_FmPort->h_Fm); /* TimeStamp per nano seconds units */ + /* normally, we use 1 usec as the reference count */ + factor = 1; + /* if ratelimit is too small for a 1usec factor, multiply the factor */ + while (p_RateLimit->rateLimit < baseGran/factor) + { + if (countUnitBit==31) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Rate limit is too small")); + + countUnitBit++; + factor <<= 1; + } + /* if ratelimit is too large for a 1usec factor, it is also larger than max rate*/ + if (p_RateLimit->rateLimit > ((uint32_t)baseGran * (1<<10) * (uint32_t)factor)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Rate limit is too large")); + + tmpRateLimit = (uint32_t)(p_RateLimit->rateLimit*factor/baseGran - 1); + + if(!p_RateLimit->maxBurstSize || (p_RateLimit->maxBurstSize > MAX_BURST_SIZE)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("maxBurstSize must be between 1K and %dk", MAX_BURST_SIZE)); + + tmpRateLimitScale = ((31 - (uint32_t)countUnitBit) << BMI_COUNT_RATE_UNIT_SHIFT) | BMI_RATE_LIMIT_EN; + + if(p_FmPort->portType != e_FM_PORT_TYPE_OH_OFFLINE_PARSING) + tmpRateLimit |= (uint32_t)(p_RateLimit->maxBurstSize - 1) << BMI_MAX_BURST_SHIFT; + else + { +#ifndef FM_NO_ADVANCED_RATE_LIMITER + t_FmRevisionInfo revInfo; + + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if (revInfo.majorRev == 4) + { + switch(p_RateLimit->rateLimitDivider) + { + case(e_FM_PORT_DUAL_RATE_LIMITER_NONE): + break; + case(e_FM_PORT_DUAL_RATE_LIMITER_SCALE_DOWN_BY_2): + tmpRateLimitScale |= BMI_RATE_LIMIT_SCALE_BY_2; + break; + case(e_FM_PORT_DUAL_RATE_LIMITER_SCALE_DOWN_BY_4): + tmpRateLimitScale |= BMI_RATE_LIMIT_SCALE_BY_4; + break; + case(e_FM_PORT_DUAL_RATE_LIMITER_SCALE_DOWN_BY_8): + tmpRateLimitScale |= BMI_RATE_LIMIT_SCALE_BY_8; + break; + default: + break; + } + tmpRateLimit |= BMI_RATE_LIMIT_BURST_SIZE_GRAN; + } + else +#endif /* ! FM_NO_ADVANCED_RATE_LIMITER */ + { + if(p_RateLimit->rateLimitDivider != e_FM_PORT_DUAL_RATE_LIMITER_NONE) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("FM_PORT_ConfigDualRateLimitScaleDown")); + + if(p_RateLimit->maxBurstSize % 1000) + { + p_RateLimit->maxBurstSize = (uint16_t)((p_RateLimit->maxBurstSize/1000)+1); + DBG(WARNING, ("rateLimit.maxBurstSize rounded up to %d", (p_RateLimit->maxBurstSize/1000+1)*1000)); + } + else + p_RateLimit->maxBurstSize = (uint16_t)(p_RateLimit->maxBurstSize/1000); + } + tmpRateLimit |= (uint32_t)(p_RateLimit->maxBurstSize - 1) << BMI_MAX_BURST_SHIFT; + + } + WRITE_UINT32(*p_RateLimitScaleReg, tmpRateLimitScale); + WRITE_UINT32(*p_RateLimitReg, tmpRateLimit); + + return E_OK; +} + +t_Error FM_PORT_DeleteRateLimit(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + volatile uint32_t *p_RateLimitReg, *p_RateLimitScaleReg; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + if((p_FmPort->portType == e_FM_PORT_TYPE_RX_10G) || (p_FmPort->portType == e_FM_PORT_TYPE_RX) || + (p_FmPort->portType == e_FM_PORT_TYPE_OH_HOST_COMMAND)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Tx and Offline parsing ports only")); + + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_TX_10G): + case(e_FM_PORT_TYPE_TX): + p_RateLimitReg = &p_FmPort->p_FmPortBmiRegs->txPortBmiRegs.fmbm_trlmt; + p_RateLimitScaleReg = &p_FmPort->p_FmPortBmiRegs->txPortBmiRegs.fmbm_trlmts; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + p_RateLimitReg = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_orlmt; + p_RateLimitScaleReg = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_orlmts; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid port type")); + } + + WRITE_UINT32(*p_RateLimitScaleReg, 0); + WRITE_UINT32(*p_RateLimitReg, 0); + + return E_OK; +} + + +t_Error FM_PORT_SetFrameQueueCounters(t_Handle h_FmPort, bool enable) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + uint32_t tmpReg; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + tmpReg = GET_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnc); + if(enable) + tmpReg |= QMI_PORT_CFG_EN_COUNTERS ; + else + tmpReg &= ~QMI_PORT_CFG_EN_COUNTERS; + + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnc, tmpReg); + + return E_OK; +} + +t_Error FM_PORT_SetPerformanceCounters(t_Handle h_FmPort, bool enable) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + volatile uint32_t *p_BmiPcReg = NULL; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + p_BmiPcReg = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rpc; + break; + case(e_FM_PORT_TYPE_TX_10G): + case(e_FM_PORT_TYPE_TX): + p_BmiPcReg = &p_FmPort->p_FmPortBmiRegs->txPortBmiRegs.fmbm_tpc; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + case(e_FM_PORT_TYPE_OH_HOST_COMMAND): + p_BmiPcReg = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_opc; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid port type")); + } + + if(enable) + WRITE_UINT32(*p_BmiPcReg, BMI_COUNTERS_EN); + else + WRITE_UINT32(*p_BmiPcReg, 0); + + return E_OK; +} + +t_Error FM_PORT_SetPerformanceCountersParams(t_Handle h_FmPort, t_FmPortPerformanceCnt *p_FmPortPerformanceCnt) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + uint32_t tmpReg; + volatile uint32_t *p_BmiPcpReg = NULL; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + p_BmiPcpReg = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rpcp; + break; + case(e_FM_PORT_TYPE_TX_10G): + case(e_FM_PORT_TYPE_TX): + p_BmiPcpReg = &p_FmPort->p_FmPortBmiRegs->txPortBmiRegs.fmbm_tpcp; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + case(e_FM_PORT_TYPE_OH_HOST_COMMAND): + p_BmiPcpReg = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_opcp; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid port type")); + } + + /* check parameters */ + if (!p_FmPortPerformanceCnt->taskCompVal || + (p_FmPortPerformanceCnt->taskCompVal > p_FmPort->tasks.num)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, + ("performanceCnt.taskCompVal has to be in the range of 1 - %d (current value)!", + p_FmPort->tasks.num)); + if (!p_FmPortPerformanceCnt->dmaCompVal || + (p_FmPortPerformanceCnt->dmaCompVal > p_FmPort->openDmas.num)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, + ("performanceCnt.dmaCompVal has to be in the range of 1 - %d (current value)!", + p_FmPort->openDmas.num)); + if (!p_FmPortPerformanceCnt->fifoCompVal || + (p_FmPortPerformanceCnt->fifoCompVal > p_FmPort->fifoBufs.num)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, + ("performanceCnt.fifoCompVal has to be in the range of 256 - %d (current value)!", + p_FmPort->fifoBufs.num)); + if (p_FmPortPerformanceCnt->fifoCompVal % BMI_FIFO_UNITS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, + ("performanceCnt.fifoCompVal has to be divisible by %d", + BMI_FIFO_UNITS)); + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + if (!p_FmPortPerformanceCnt->queueCompVal || + (p_FmPortPerformanceCnt->queueCompVal > MAX_PERFORMANCE_RX_QUEUE_COMP)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, + ("performanceCnt.queueCompVal for Rx has to be in the range of 1 - %d", + MAX_PERFORMANCE_RX_QUEUE_COMP)); + break; + case(e_FM_PORT_TYPE_TX_10G): + case(e_FM_PORT_TYPE_TX): + if (!p_FmPortPerformanceCnt->queueCompVal || + (p_FmPortPerformanceCnt->queueCompVal > MAX_PERFORMANCE_TX_QUEUE_COMP)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, + ("performanceCnt.queueCompVal for Tx has to be in the range of 1 - %d", + MAX_PERFORMANCE_TX_QUEUE_COMP)); + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + case(e_FM_PORT_TYPE_OH_HOST_COMMAND): + if (p_FmPortPerformanceCnt->queueCompVal) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("performanceCnt.queueCompVal is not relevant for H/O ports.")); + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid port type")); + } + + tmpReg = 0; + tmpReg |= ((uint32_t)(p_FmPortPerformanceCnt->queueCompVal - 1) << BMI_PERFORMANCE_PORT_COMP_SHIFT); + tmpReg |= ((uint32_t)(p_FmPortPerformanceCnt->dmaCompVal- 1) << BMI_PERFORMANCE_DMA_COMP_SHIFT); + tmpReg |= ((uint32_t)(p_FmPortPerformanceCnt->fifoCompVal/BMI_FIFO_UNITS - 1) << BMI_PERFORMANCE_FIFO_COMP_SHIFT); + if ((p_FmPort->portType != e_FM_PORT_TYPE_OH_OFFLINE_PARSING) && (p_FmPort->portType != e_FM_PORT_TYPE_OH_HOST_COMMAND)) + tmpReg |= ((uint32_t)(p_FmPortPerformanceCnt->taskCompVal - 1) << BMI_PERFORMANCE_TASK_COMP_SHIFT); + + WRITE_UINT32(*p_BmiPcpReg, tmpReg); + + return E_OK; +} + +t_Error FM_PORT_AnalyzePerformanceParams(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_FmPortPerformanceCnt currParams, savedParams; + t_Error err; + bool underTest, failed = FALSE; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + + XX_Print("Analyzing Performance parameters for port (type %d, id%d)\n", + p_FmPort->portType, p_FmPort->portId); + + currParams.taskCompVal = (uint8_t)p_FmPort->tasks.num; + if ((p_FmPort->portType == e_FM_PORT_TYPE_OH_OFFLINE_PARSING) || + (p_FmPort->portType == e_FM_PORT_TYPE_OH_HOST_COMMAND)) + currParams.queueCompVal = 0; + else + currParams.queueCompVal = 1; + currParams.dmaCompVal =(uint8_t) p_FmPort->openDmas.num; + currParams.fifoCompVal = p_FmPort->fifoBufs.num; + + FM_PORT_SetPerformanceCounters(p_FmPort, FALSE); + ClearPerfCnts(p_FmPort); + if ((err = FM_PORT_SetPerformanceCountersParams(p_FmPort, &currParams)) != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + FM_PORT_SetPerformanceCounters(p_FmPort, TRUE); + XX_UDelay(1000000); + FM_PORT_SetPerformanceCounters(p_FmPort, FALSE); + if (FM_PORT_GetCounter(p_FmPort, e_FM_PORT_COUNTERS_TASK_UTIL)) + { + XX_Print ("Max num of defined port tasks (%d) utilized - Please enlarge\n",p_FmPort->tasks.num); + failed = TRUE; + } + if (FM_PORT_GetCounter(p_FmPort, e_FM_PORT_COUNTERS_DMA_UTIL)) + { + XX_Print ("Max num of defined port openDmas (%d) utilized - Please enlarge\n",p_FmPort->openDmas.num); + failed = TRUE; + } + if (FM_PORT_GetCounter(p_FmPort, e_FM_PORT_COUNTERS_FIFO_UTIL)) + { + XX_Print ("Max size of defined port fifo (%d) utilized - Please enlarge\n",p_FmPort->fifoBufs.num*BMI_FIFO_UNITS); + failed = TRUE; + } + if (failed) + RETURN_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + + memset(&savedParams, 0, sizeof(savedParams)); + while (TRUE) + { + underTest = FALSE; + if ((currParams.taskCompVal != 1) && !savedParams.taskCompVal) + { + currParams.taskCompVal--; + underTest = TRUE; + } + if ((currParams.dmaCompVal != 1) && !savedParams.dmaCompVal) + { + currParams.dmaCompVal--; + underTest = TRUE; + } + if ((currParams.fifoCompVal != BMI_FIFO_UNITS) && !savedParams.fifoCompVal) + { + currParams.fifoCompVal -= BMI_FIFO_UNITS; + underTest = TRUE; + } + if (!underTest) + break; + + ClearPerfCnts(p_FmPort); + if ((err = FM_PORT_SetPerformanceCountersParams(p_FmPort, &currParams)) != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + FM_PORT_SetPerformanceCounters(p_FmPort, TRUE); + XX_UDelay(1000000); + FM_PORT_SetPerformanceCounters(p_FmPort, FALSE); + + if (!savedParams.taskCompVal && FM_PORT_GetCounter(p_FmPort, e_FM_PORT_COUNTERS_TASK_UTIL)) + savedParams.taskCompVal = (uint8_t)(currParams.taskCompVal+2); + if (!savedParams.dmaCompVal && FM_PORT_GetCounter(p_FmPort, e_FM_PORT_COUNTERS_DMA_UTIL)) + savedParams.dmaCompVal = (uint8_t)(currParams.dmaCompVal+2); + if (!savedParams.fifoCompVal && FM_PORT_GetCounter(p_FmPort, e_FM_PORT_COUNTERS_FIFO_UTIL)) + savedParams.fifoCompVal = currParams.fifoCompVal+2; + } + + XX_Print("best vals: tasks %d, dmas %d, fifos %d\n", + savedParams.taskCompVal, savedParams.dmaCompVal, savedParams.fifoCompVal); + return E_OK; +} + +t_Error FM_PORT_SetStatisticsCounters(t_Handle h_FmPort, bool enable) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + uint32_t tmpReg; + volatile uint32_t *p_BmiStcReg = NULL; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + p_BmiStcReg = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rstc; + break; + case(e_FM_PORT_TYPE_TX_10G): + case(e_FM_PORT_TYPE_TX): + p_BmiStcReg = &p_FmPort->p_FmPortBmiRegs->txPortBmiRegs.fmbm_tstc; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + case(e_FM_PORT_TYPE_OH_HOST_COMMAND): + p_BmiStcReg = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ostc; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid port type")); + } + + tmpReg = GET_UINT32(*p_BmiStcReg); + + if(enable) + tmpReg |= BMI_COUNTERS_EN; + else + tmpReg &= ~BMI_COUNTERS_EN; + + WRITE_UINT32(*p_BmiStcReg, tmpReg); + + return E_OK; +} + +t_Error FM_PORT_SetErrorsRoute(t_Handle h_FmPort, fmPortFrameErrSelect_t errs) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + volatile uint32_t *p_ErrQReg, *p_ErrDiscard; + + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + p_ErrQReg = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rfsem; + p_ErrDiscard = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rfsdm; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + p_ErrQReg = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ofsem; + p_ErrDiscard = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ofsdm; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx and offline parsing ports only")); + } + + if (GET_UINT32(*p_ErrDiscard) & errs) + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("Selectd Errors that were configured to cause frame discard.")); + + WRITE_UINT32(*p_ErrQReg, errs); + + return E_OK; +} + +t_Error FM_PORT_SetAllocBufCounter(t_Handle h_FmPort, uint8_t poolId, bool enable) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + uint32_t tmpReg; + int i; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(poolIdp_FmPortDriverParam, E_INVALID_STATE); + + if((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && (p_FmPort->portType != e_FM_PORT_TYPE_RX)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx ports only")); + + for(i=0 ; i< FM_PORT_MAX_NUM_OF_EXT_POOLS ; i++) + { + tmpReg = GET_UINT32(p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_ebmpi[i]); + if ((uint8_t)((tmpReg & BMI_EXT_BUF_POOL_ID_MASK) >> BMI_EXT_BUF_POOL_ID_SHIFT) == poolId) + { + if(enable) + tmpReg |= BMI_EXT_BUF_POOL_EN_COUNTER; + else + tmpReg &= ~BMI_EXT_BUF_POOL_EN_COUNTER; + WRITE_UINT32(p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_ebmpi[i], tmpReg); + break; + } + } + if (i == FM_PORT_MAX_NUM_OF_EXT_POOLS) + RETURN_ERROR(MINOR, E_INVALID_VALUE,("poolId %d is not included in this ports pools", poolId)); + + return E_OK; +} + +uint32_t FM_PORT_GetCounter(t_Handle h_FmPort, e_FmPortCounters counter) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + bool bmiCounter = FALSE; + volatile uint32_t *p_Reg; + + SANITY_CHECK_RETURN_VALUE(p_FmPort, E_INVALID_HANDLE, 0); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + switch(counter) + { + case(e_FM_PORT_COUNTERS_DEQ_TOTAL): + case(e_FM_PORT_COUNTERS_DEQ_FROM_DEFAULT): + case(e_FM_PORT_COUNTERS_DEQ_CONFIRM ): + /* check that counter is available for the port type */ + if((p_FmPort->portType == e_FM_PORT_TYPE_RX) || (p_FmPort->portType == e_FM_PORT_TYPE_RX_10G)) + { + REPORT_ERROR(MINOR, E_INVALID_STATE, ("Requested counter is not available for Rx ports")); + return 0; + } + bmiCounter = FALSE; + case(e_FM_PORT_COUNTERS_ENQ_TOTAL): + bmiCounter = FALSE; + break; + default: /* BMI counters (or error - will be checked in BMI routine )*/ + bmiCounter = TRUE; + break; + } + + if(bmiCounter) + { + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + if(BmiRxPortCheckAndGetCounterPtr(p_FmPort, counter, &p_Reg)) + { + REPORT_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + return 0; + } + break; + case(e_FM_PORT_TYPE_TX_10G): + case(e_FM_PORT_TYPE_TX): + if(BmiTxPortCheckAndGetCounterPtr(p_FmPort, counter, &p_Reg)) + { + REPORT_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + return 0; + } + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + case(e_FM_PORT_TYPE_OH_HOST_COMMAND): + if(BmiOhPortCheckAndGetCounterPtr(p_FmPort, counter, &p_Reg)) + { + REPORT_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + return 0; + } + break; + default: + REPORT_ERROR(MINOR, E_INVALID_STATE, ("Unsupported port type")); + return 0; + } + return GET_UINT32(*p_Reg); + } + else /* QMI counter */ + { + + /* check that counters are enabled */ + if(!(GET_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnc) & QMI_PORT_CFG_EN_COUNTERS)) + { + REPORT_ERROR(MINOR, E_INVALID_STATE, ("Requested counter was not enabled")); + return 0; + } + + /* Set counter */ + switch(counter) + { + case(e_FM_PORT_COUNTERS_ENQ_TOTAL): + return GET_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnetfc); + case(e_FM_PORT_COUNTERS_DEQ_TOTAL): + return GET_UINT32(p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs.fmqm_pndtfc); + case(e_FM_PORT_COUNTERS_DEQ_FROM_DEFAULT): + return GET_UINT32(p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs.fmqm_pndfdc); + case(e_FM_PORT_COUNTERS_DEQ_CONFIRM): + return GET_UINT32(p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs.fmqm_pndcc); + default: + REPORT_ERROR(MINOR, E_INVALID_STATE, ("Requested counter is not available")); + return 0; + } + } + + return 0; +} + +t_Error FM_PORT_ModifyCounter(t_Handle h_FmPort, e_FmPortCounters counter, uint32_t value) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + bool bmiCounter = FALSE; + volatile uint32_t *p_Reg; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + switch(counter) + { + case(e_FM_PORT_COUNTERS_DEQ_TOTAL): + case(e_FM_PORT_COUNTERS_DEQ_FROM_DEFAULT): + case(e_FM_PORT_COUNTERS_DEQ_CONFIRM ): + /* check that counter is available for the port type */ + if((p_FmPort->portType == e_FM_PORT_TYPE_RX) || (p_FmPort->portType == e_FM_PORT_TYPE_RX_10G)) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Requested counter is not available for Rx ports")); + case(e_FM_PORT_COUNTERS_ENQ_TOTAL): + bmiCounter = FALSE; + break; + default: /* BMI counters (or error - will be checked in BMI routine )*/ + bmiCounter = TRUE; + break; + } + + if(bmiCounter) + { + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + if(BmiRxPortCheckAndGetCounterPtr(p_FmPort, counter, &p_Reg)) + RETURN_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + break; + case(e_FM_PORT_TYPE_TX_10G): + case(e_FM_PORT_TYPE_TX): + if(BmiTxPortCheckAndGetCounterPtr(p_FmPort, counter, &p_Reg)) + RETURN_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + case(e_FM_PORT_TYPE_OH_HOST_COMMAND): + if(BmiOhPortCheckAndGetCounterPtr(p_FmPort, counter, &p_Reg)) + RETURN_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + break; + default: + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Unsupported port type")); + } + WRITE_UINT32(*p_Reg, value); + } + else /* QMI counter */ + { + + /* check that counters are enabled */ + if(!(GET_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnc) & QMI_PORT_CFG_EN_COUNTERS)) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Requested counter was not enabled")); + + /* Set counter */ + switch(counter) + { + case(e_FM_PORT_COUNTERS_ENQ_TOTAL): + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnetfc, value); + break; + case(e_FM_PORT_COUNTERS_DEQ_TOTAL): + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs.fmqm_pndtfc, value); + break; + case(e_FM_PORT_COUNTERS_DEQ_FROM_DEFAULT): + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs.fmqm_pndfdc, value); + break; + case(e_FM_PORT_COUNTERS_DEQ_CONFIRM): + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs.fmqm_pndcc, value); + break; + default: + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Requested counter is not available")); + } + } + + return E_OK; +} + +uint32_t FM_PORT_GetAllocBufCounter(t_Handle h_FmPort, uint8_t poolId) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + uint32_t extPoolReg; + uint8_t tmpPool; + uint8_t i; + + SANITY_CHECK_RETURN_VALUE(p_FmPort, E_INVALID_HANDLE, 0); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + if((p_FmPort->portType != e_FM_PORT_TYPE_RX) && (p_FmPort->portType == e_FM_PORT_TYPE_RX_10G)) + { + REPORT_ERROR(MINOR, E_INVALID_STATE, ("Requested counter is not available for non-Rx ports")); + return 0; + } + + for(i=0;ip_FmPortBmiRegs->rxPortBmiRegs.fmbm_ebmpi[i]); + if (extPoolReg & BMI_EXT_BUF_POOL_VALID) + { + tmpPool = (uint8_t)((extPoolReg & BMI_EXT_BUF_POOL_ID_MASK) >> BMI_EXT_BUF_POOL_ID_SHIFT); + if(tmpPool == poolId) + { + if(extPoolReg & BMI_EXT_BUF_POOL_EN_COUNTER) + return GET_UINT32(p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_acnt[i]); + else + { + REPORT_ERROR(MINOR, E_INVALID_STATE, ("Requested counter is not enabled")); + return 0; + } + } + } + } + REPORT_ERROR(MINOR, E_INVALID_STATE, ("Pool %d is not used", poolId)); + return 0; +} + +t_Error FM_PORT_ModifyAllocBufCounter(t_Handle h_FmPort, uint8_t poolId, uint32_t value) +{ + t_FmPort *p_FmPort = (t_FmPort *)h_FmPort; + uint32_t extPoolReg; + uint8_t tmpPool; + uint8_t i; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + if((p_FmPort->portType != e_FM_PORT_TYPE_RX) && (p_FmPort->portType == e_FM_PORT_TYPE_RX_10G)) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Requested counter is not available for non-Rx ports")); + + + for(i=0;ip_FmPortBmiRegs->rxPortBmiRegs.fmbm_ebmpi[i]); + if (extPoolReg & BMI_EXT_BUF_POOL_VALID) + { + tmpPool = (uint8_t)((extPoolReg & BMI_EXT_BUF_POOL_ID_MASK) >> BMI_EXT_BUF_POOL_ID_SHIFT); + if(tmpPool == poolId) + { + if(extPoolReg & BMI_EXT_BUF_POOL_EN_COUNTER) + { + WRITE_UINT32(p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_acnt[i], value); + return E_OK; + } + else + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Requested counter is not enabled")); + } + } + } + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Pool %d is not used", poolId)); +} + +bool FM_PORT_IsStalled(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_Error err; + bool isStalled; + + SANITY_CHECK_RETURN_VALUE(p_FmPort, E_INVALID_HANDLE, FALSE); + SANITY_CHECK_RETURN_VALUE(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE, FALSE); + + err = FmIsPortStalled(p_FmPort->h_Fm, p_FmPort->hardwarePortId, &isStalled); + if(err != E_OK) + { + REPORT_ERROR(MINOR, err, NO_MSG); + return TRUE; + } + return isStalled; +} + +t_Error FM_PORT_ReleaseStalled(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + return FmResumeStalledPort(p_FmPort->h_Fm, p_FmPort->hardwarePortId); +} + +t_Error FM_PORT_SetRxL4ChecksumVerify(t_Handle h_FmPort, bool l4Checksum) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + uint32_t tmpReg; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + if ((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && + (p_FmPort->portType != e_FM_PORT_TYPE_RX)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx ports only")); + + tmpReg = GET_UINT32(p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rfne); + if (l4Checksum) + tmpReg &= ~BMI_PORT_RFNE_FRWD_DCL4C; + else + tmpReg |= BMI_PORT_RFNE_FRWD_DCL4C; + WRITE_UINT32(p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rfne, tmpReg); + + return E_OK; +} + + +/* API Run-time PCD Control unit functions */ + +t_Error FM_PORT_PcdPlcrAllocProfiles(t_Handle h_FmPort, uint16_t numOfProfiles) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_Error err = E_OK; + + p_FmPort->h_FmPcd = FmGetPcdHandle(p_FmPort->h_Fm); + ASSERT_COND(p_FmPort->h_FmPcd); + + if(numOfProfiles) + { + err = FmPcdPlcrAllocProfiles(p_FmPort->h_FmPcd, p_FmPort->hardwarePortId, numOfProfiles); + if(err) + RETURN_ERROR(MAJOR, err,NO_MSG); + } + FmPcdPortRegister(p_FmPort->h_FmPcd, h_FmPort, p_FmPort->hardwarePortId); + + return E_OK; +} + +t_Error FM_PORT_PcdPlcrFreeProfiles(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_Error err = E_OK; + + err = FmPcdPlcrFreeProfiles(p_FmPort->h_FmPcd, p_FmPort->hardwarePortId); + if(err) + RETURN_ERROR(MAJOR, err,NO_MSG); + return E_OK; +} + +t_Error FM_PORT_PcdKgModifyInitialScheme (t_Handle h_FmPort, t_FmPcdKgSchemeSelect *p_FmPcdKgScheme) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + volatile uint32_t *p_BmiHpnia = NULL; + uint32_t tmpReg; + uint8_t relativeSchemeId; + uint8_t physicalSchemeId; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->pcdEngines & FM_PCD_KG , E_INVALID_STATE); + + tmpReg = (uint32_t)((p_FmPort->pcdEngines & FM_PCD_CC)? NIA_KG_CC_EN:0); + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + p_BmiHpnia = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rfpne; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + p_BmiHpnia = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ofpne; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx and offline parsing ports only")); + } + + if (!TRY_LOCK(p_FmPort->h_Spinlock, &p_FmPort->lock)) + return ERROR_CODE(E_BUSY); + /* if we want to change to direct scheme, we need to check that this scheme is valid */ + if(p_FmPcdKgScheme->direct) + { + physicalSchemeId = (uint8_t)(PTR_TO_UINT(p_FmPcdKgScheme->h_DirectScheme)-1); + /* check that this scheme is bound to this port */ + if(!(p_FmPort->schemesPerPortVector & (uint32_t)(1 << (31 - (uint32_t)physicalSchemeId)))) + { + RELEASE_LOCK(p_FmPort->lock); + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("called with a scheme that is not bound to this port")); + } + + relativeSchemeId = FmPcdKgGetRelativeSchemeId(p_FmPort->h_FmPcd, physicalSchemeId); + if(relativeSchemeId >= FM_PCD_KG_NUM_OF_SCHEMES) + { + RELEASE_LOCK(p_FmPort->lock); + RETURN_ERROR(MAJOR, E_NOT_IN_RANGE, ("called with invalid Scheme ")); + } + + if(!FmPcdKgIsSchemeValidSw(p_FmPort->h_FmPcd, relativeSchemeId)) + { + RELEASE_LOCK(p_FmPort->lock); + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("called with uninitialized Scheme ")); + } + + WRITE_UINT32(*p_BmiHpnia, NIA_ENG_KG | tmpReg | NIA_KG_DIRECT | (uint32_t)physicalSchemeId); + } + else /* change to indirect scheme */ + WRITE_UINT32(*p_BmiHpnia, NIA_ENG_KG | tmpReg); + RELEASE_LOCK(p_FmPort->lock); + + return E_OK; +} + +t_Error FM_PORT_PcdPlcrModifyInitialProfile (t_Handle h_FmPort, t_Handle h_Profile) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + volatile uint32_t *p_BmiNia; + volatile uint32_t *p_BmiHpnia; + uint32_t tmpReg; + uint16_t absoluteProfileId = (uint16_t)(PTR_TO_UINT(h_Profile)-1); + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->pcdEngines & FM_PCD_PLCR , E_INVALID_STATE); + + /* check relevancy of this routine - only when policer is used + directly after BMI or Parser */ + if((p_FmPort->pcdEngines & FM_PCD_KG) || (p_FmPort->pcdEngines & FM_PCD_CC)) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("relevant only when PCD support mode is e_FM_PCD_SUPPORT_PLCR_ONLY or e_FM_PCD_SUPPORT_PRS_AND_PLCR")); + + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + p_BmiNia = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rfne; + p_BmiHpnia = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rfpne; + tmpReg = GET_UINT32(*p_BmiNia) & BMI_RFNE_FDCS_MASK; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + p_BmiNia = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ofne; + p_BmiHpnia = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ofpne; + tmpReg = 0; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx and offline parsing ports only")); + } + + if (!TRY_LOCK(p_FmPort->h_Spinlock, &p_FmPort->lock)) + return ERROR_CODE(E_BUSY); + if(!FmPcdPlcrIsProfileValid(p_FmPort->h_FmPcd, absoluteProfileId)) + { + RELEASE_LOCK(p_FmPort->lock); + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("Invalid profile")); + } + + tmpReg = (uint32_t)(NIA_ENG_PLCR | NIA_PLCR_ABSOLUTE | absoluteProfileId); + + if(p_FmPort->pcdEngines & FM_PCD_PRS) /* e_FM_PCD_SUPPORT_PRS_AND_PLCR */ + { + /* update BMI HPNIA */ + WRITE_UINT32(*p_BmiHpnia, tmpReg); + } + else /* e_FM_PCD_SUPPORT_PLCR_ONLY */ + { + /* rfne may contain FDCS bits, so first we read them. */ + tmpReg |= (GET_UINT32(*p_BmiNia) & BMI_RFNE_FDCS_MASK); + /* update BMI NIA */ + WRITE_UINT32(*p_BmiNia, tmpReg); + } + RELEASE_LOCK(p_FmPort->lock); + + return E_OK; +} + + +t_Error FM_PORT_PcdCcModifyTree (t_Handle h_FmPort, t_Handle h_CcTree) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_Error err = E_OK; + volatile uint32_t *p_BmiCcBase=NULL; + volatile uint32_t *p_BmiNia=NULL; + uint32_t ccTreePhysOffset; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_VALUE); + + if (p_FmPort->imEn) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for non-independant mode ports only")); + + /* get PCD registers pointers */ + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + p_BmiNia = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rfne; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + p_BmiNia = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ofne; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx and offline parsing ports only")); + } + + /* check that current NIA is BMI to BMI */ + if((GET_UINT32(*p_BmiNia) & ~BMI_RFNE_FDCS_MASK) != (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("may be called only for ports in BMI-to-BMI state.")); + +/*TODO - to take care of changes due to previous tree. Maybe in the previous tree where chnged pndn, pnen ... + it has to be returned to the default state - initially*/ + + p_FmPort->requiredAction = 0; + + if(p_FmPort->pcdEngines & FM_PCD_CC) + { + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + p_BmiCcBase = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rccb; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + p_BmiCcBase = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_occb; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid port type")); + } + + if (!TRY_LOCK(p_FmPort->h_Spinlock, &p_FmPort->lock)) + return ERROR_CODE(E_BUSY); + err = FmPcdCcBindTree(p_FmPort->h_FmPcd, h_CcTree, &ccTreePhysOffset, h_FmPort); + if(err) + { + RELEASE_LOCK(p_FmPort->lock); + RETURN_ERROR(MINOR, err, NO_MSG); + } + WRITE_UINT32(*p_BmiCcBase, ccTreePhysOffset); + + p_FmPort->ccTreeId = h_CcTree; + RELEASE_LOCK(p_FmPort->lock); + } + else + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Coarse CLassification not defined for this port.")); + + return E_OK; +} + +t_Error FM_PORT_AttachPCD(t_Handle h_FmPort) +{ + + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_Error err = E_OK; + + SANITY_CHECK_RETURN_ERROR(h_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + if (p_FmPort->imEn) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for non-independant mode ports only")); + + /* TODO - may add here checks for: + SP (or in sw: schemes) + CPP (or in sw clsPlan) + Parser enabled and configured(?) + Tree(?) + Profile - only if direct. + Scheme - only if direct + */ + + if (!TRY_LOCK(p_FmPort->h_Spinlock, &p_FmPort->lock)) + return ERROR_CODE(E_BUSY); + err = FmPortAttachPCD(h_FmPort); + RELEASE_LOCK(p_FmPort->lock); + + return err; +} + +t_Error FM_PORT_DetachPCD(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + volatile uint32_t *p_BmiNia=NULL; + + SANITY_CHECK_RETURN_ERROR(h_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + if (p_FmPort->imEn) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for non-independant mode ports only")); + + /* get PCD registers pointers */ + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + p_BmiNia = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rfne; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + p_BmiNia = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ofne; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx and offline parsing ports only")); + } + + WRITE_UINT32(*p_BmiNia, (p_FmPort->savedBmiNia & BMI_RFNE_FDCS_MASK) | (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME)); + +/*TODO - not atomic - it seems that port has to be disabled*/ + if(p_FmPort->requiredAction & UPDATE_NIA_PNEN) + { + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_TX_10G): + case(e_FM_PORT_TYPE_TX): + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnen, NIA_ENG_BMI | NIA_BMI_AC_TX_RELEASE); + break; + case(e_FM_PORT_TYPE_OH_HOST_COMMAND): + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + case(e_FM_PORT_TYPE_RX): + case(e_FM_PORT_TYPE_RX_10G): + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->fmqm_pnen, NIA_ENG_BMI | NIA_BMI_AC_RELEASE); + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Can not reach this stage")); + } + } + + if(p_FmPort->requiredAction & UPDATE_NIA_PNDN) + { + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_TX_10G): + case(e_FM_PORT_TYPE_TX): + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs.fmqm_pndn, NIA_ENG_BMI | NIA_BMI_AC_TX); + break; + case(e_FM_PORT_TYPE_OH_HOST_COMMAND): + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + WRITE_UINT32(p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs.fmqm_pndn, NIA_ENG_BMI | NIA_BMI_AC_FETCH); + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Can not reach this stage")); + } + } + + + if(p_FmPort->requiredAction & UPDATE_FMFP_PRC_WITH_ONE_RISC_ONLY) + if(FmSetNumOfRiscsPerPort(p_FmPort->h_Fm, p_FmPort->hardwarePortId, 2)!= E_OK) + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); + return E_OK; +} + +t_Error FM_PORT_SetPCD(t_Handle h_FmPort, t_FmPortPcdParams *p_PcdParams) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_FmPcdKgInterModuleBindPortToSchemes schemeBind; + t_Error err = E_OK; + uint8_t i; + + SANITY_CHECK_RETURN_ERROR(h_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + if (p_FmPort->imEn) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for non-independent mode ports only")); + + if (!TRY_LOCK(p_FmPort->h_Spinlock, &p_FmPort->lock)) + return ERROR_CODE(E_BUSY); + p_FmPort->h_FmPcd = FmGetPcdHandle(p_FmPort->h_Fm); + ASSERT_COND(p_FmPort->h_FmPcd); + + err = SetPcd( h_FmPort, p_PcdParams); + if(err) + { + RELEASE_LOCK(p_FmPort->lock); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + if(p_FmPort->pcdEngines & FM_PCD_KG) + { + schemeBind.netEnvId = p_FmPort->netEnvId; + schemeBind.hardwarePortId = p_FmPort->hardwarePortId; + schemeBind.numOfSchemes = p_PcdParams->p_KgParams->numOfSchemes; + schemeBind.useClsPlan = p_FmPort->useClsPlan; + for(i = 0;ip_KgParams->h_Schemes[i])-1); + + err = FmPcdKgBindPortToSchemes(p_FmPort->h_FmPcd, &schemeBind); + if(err) + { + DeletePcd(p_FmPort); + RELEASE_LOCK(p_FmPort->lock); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + } + + if ((p_FmPort->pcdEngines & FM_PCD_PRS) && (p_PcdParams->p_PrsParams->includeInPrsStatistics)) + FmPcdPrsIncludePortInStatistics(p_FmPort->h_FmPcd, p_FmPort->hardwarePortId, TRUE); + + FmPcdIncNetEnvOwners(p_FmPort->h_FmPcd, p_FmPort->netEnvId); + + err = FmPortAttachPCD(h_FmPort); + RELEASE_LOCK(p_FmPort->lock); + + return err; +} + +t_Error FM_PORT_DeletePCD(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_FmPcdKgInterModuleBindPortToSchemes schemeBind; + t_Error err = E_OK; + + SANITY_CHECK_RETURN_ERROR(h_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + + if (p_FmPort->imEn) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for non-independant mode ports only")); + + if (!TRY_LOCK(p_FmPort->h_Spinlock, &p_FmPort->lock)) + return ERROR_CODE(E_BUSY); + + err = FM_PORT_DetachPCD(h_FmPort); + if(err) + { + RELEASE_LOCK(p_FmPort->lock); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + FmPcdDecNetEnvOwners(p_FmPort->h_FmPcd, p_FmPort->netEnvId); + + /* we do it anyway, instead of checking if included */ + if (FmIsMaster(p_FmPort->h_Fm) && + (p_FmPort->pcdEngines & FM_PCD_PRS)) + FmPcdPrsIncludePortInStatistics(p_FmPort->h_FmPcd, p_FmPort->hardwarePortId, FALSE); + + if(p_FmPort->pcdEngines & FM_PCD_KG) + { + /* unbind all schemes */ + p_FmPort->schemesPerPortVector = GetPortSchemeBindParams(p_FmPort, &schemeBind); + + err = FmPcdKgUnbindPortToSchemes(p_FmPort->h_FmPcd, &schemeBind); + if(err) + { + RELEASE_LOCK(p_FmPort->lock); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + } + + err = DeletePcd(h_FmPort); + RELEASE_LOCK(p_FmPort->lock); + + return err; +} + +t_Error FM_PORT_PcdKgBindSchemes (t_Handle h_FmPort, t_FmPcdPortSchemesParams *p_PortScheme) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_FmPcdKgInterModuleBindPortToSchemes schemeBind; + t_Error err = E_OK; + uint32_t tmpScmVec=0; + int i; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->pcdEngines & FM_PCD_KG , E_INVALID_STATE); + + schemeBind.netEnvId = p_FmPort->netEnvId; + schemeBind.hardwarePortId = p_FmPort->hardwarePortId; + schemeBind.numOfSchemes = p_PortScheme->numOfSchemes; + schemeBind.useClsPlan = p_FmPort->useClsPlan; + for (i=0; ih_Schemes[i])-1); + /* build vector */ + tmpScmVec |= 1 << (31 - (uint32_t)schemeBind.schemesIds[i]); + } + + if (!TRY_LOCK(p_FmPort->h_Spinlock, &p_FmPort->lock)) + return ERROR_CODE(E_BUSY); + err = FmPcdKgBindPortToSchemes(p_FmPort->h_FmPcd, &schemeBind); + if (err == E_OK) + p_FmPort->schemesPerPortVector |= tmpScmVec; + RELEASE_LOCK(p_FmPort->lock); + + return err; +} + +t_Error FM_PORT_PcdKgUnbindSchemes (t_Handle h_FmPort, t_FmPcdPortSchemesParams *p_PortScheme) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_FmPcdKgInterModuleBindPortToSchemes schemeBind; + t_Error err = E_OK; + uint32_t tmpScmVec=0; + int i; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->pcdEngines & FM_PCD_KG , E_INVALID_STATE); + + schemeBind.netEnvId = p_FmPort->netEnvId; + schemeBind.hardwarePortId = p_FmPort->hardwarePortId; + schemeBind.numOfSchemes = p_PortScheme->numOfSchemes; + for (i=0; ih_Schemes[i])-1); + /* build vector */ + tmpScmVec |= 1 << (31 - (uint32_t)schemeBind.schemesIds[i]); + } + + if (!TRY_LOCK(p_FmPort->h_Spinlock, &p_FmPort->lock)) + return ERROR_CODE(E_BUSY); + err = FmPcdKgUnbindPortToSchemes(p_FmPort->h_FmPcd, &schemeBind); + if (err == E_OK) + p_FmPort->schemesPerPortVector &= ~tmpScmVec; + RELEASE_LOCK(p_FmPort->lock); + + return err; +} + +t_Error FM_PORT_PcdPrsModifyStartOffset (t_Handle h_FmPort, t_FmPcdPrsStart *p_FmPcdPrsStart) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + volatile uint32_t *p_BmiPrsStartOffset = NULL; + volatile uint32_t *p_BmiNia = NULL; + uint32_t tmpReg; + uint8_t hdrNum; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->pcdEngines & FM_PCD_PRS , E_INVALID_STATE); + + switch(p_FmPort->portType) + { + case(e_FM_PORT_TYPE_RX_10G): + case(e_FM_PORT_TYPE_RX): + p_BmiPrsStartOffset = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rpso; + p_BmiNia = &p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rfne; + tmpReg = GET_UINT32(*p_BmiNia) & BMI_RFNE_FDCS_MASK; + break; + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + p_BmiPrsStartOffset = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_opso; + p_BmiNia = &p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ofne; + tmpReg = 0; + break; + default: + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("available for Rx and offline parsing ports only")); + } + + /* check that current NIA is BMI to BMI */ + if((GET_UINT32(*p_BmiNia) & ~BMI_RFNE_FDCS_MASK) != (NIA_ENG_BMI | NIA_BMI_AC_ENQ_FRAME)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("may be called only for ports in BMI-to-BMI state.")); + + if (!TRY_LOCK(p_FmPort->h_Spinlock, &p_FmPort->lock)) + return ERROR_CODE(E_BUSY); + /* set the first header */ + GET_PRS_HDR_NUM(hdrNum, p_FmPcdPrsStart->firstPrsHdr); + if ((hdrNum == ILLEGAL_HDR_NUM) || (hdrNum == NO_HDR_NUM)) + { + RELEASE_LOCK(p_FmPort->lock); + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("Unsupported header.")); + } + WRITE_UINT32(*p_BmiNia, (uint32_t)(NIA_ENG_PRS | (uint32_t)hdrNum | tmpReg)); + + /* set start parsing offset */ + WRITE_UINT32(*p_BmiPrsStartOffset, (uint32_t)(p_FmPcdPrsStart->parsingOffset + p_FmPort->internalBufferOffset)); + RELEASE_LOCK(p_FmPort->lock); + + return E_OK; +} + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +t_Error FM_PORT_DumpRegs(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_Error err = E_OK; + char arr[30]; + uint8_t flag; + int i=0; + + DECLARE_DUMP; + + SANITY_CHECK_RETURN_ERROR(h_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortQmiRegs, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortBmiRegs, E_INVALID_HANDLE); + + switch (p_FmPort->portType) + { + case (e_FM_PORT_TYPE_OH_OFFLINE_PARSING): + strcpy(arr, "PORT_TYPE_OFFLINE_PARSING"); + flag = 0; + break; + case (e_FM_PORT_TYPE_OH_HOST_COMMAND): + strcpy(arr, "PORT_TYPE_HOST_COMMAND"); + flag = 0; + break; + case (e_FM_PORT_TYPE_RX): + strcpy(arr, "PORT_TYPE_RX"); + flag = 1; + break; + case (e_FM_PORT_TYPE_RX_10G): + strcpy(arr, "PORT_TYPE_RX_10G"); + flag = 1; + break; + case (e_FM_PORT_TYPE_TX): + strcpy(arr, "PORT_TYPE_TX"); + flag = 2; + break; + case (e_FM_PORT_TYPE_TX_10G): + strcpy(arr, "PORT_TYPE_TX_10G"); + flag = 2; + break; + default: + return ERROR_CODE(E_INVALID_VALUE); + } + + DUMP_TITLE(UINT_TO_PTR(p_FmPort->hardwarePortId), ("PortId for %s %d", arr, p_FmPort->portId )); + DUMP_TITLE(p_FmPort->p_FmPortBmiRegs, ("Bmi Port Regs")); + + err = FmDumpPortRegs(p_FmPort->h_Fm, p_FmPort->hardwarePortId); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + + switch(flag) + { + case(0): + + DUMP_SUBTITLE(("\n")); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ocfg); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ost); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_oda); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofdne); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofne); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofca); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofpne); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_opso); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_opp); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_occb); + + DUMP_TITLE(&(p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_oprai), ("fmbm_oprai")); + DUMP_SUBSTRUCT_ARRAY(i, FM_PORT_PRS_RESULT_NUM_OF_WORDS) + { + DUMP_MEMORY(&(p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_oprai[i]), sizeof(uint32_t)); + } + DUMP_SUBTITLE(("\n")); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofqid ); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_oefqid); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofsdm ); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofsem ); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofene ); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_orlmts); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_orlmt); + + { +#ifndef FM_NO_OP_OBSERVED_POOLS + t_FmRevisionInfo revInfo; + + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if (revInfo.majorRev == 4) +#endif /* !FM_NO_OP_OBSERVED_POOLS */ + { + DUMP_TITLE(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_oebmpi, ("fmbm_oebmpi")); + + DUMP_SUBSTRUCT_ARRAY(i, FM_PORT_MAX_NUM_OF_OBSERVED_EXT_POOLS) + { + DUMP_MEMORY(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_oebmpi[i], sizeof(uint32_t)); + } + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ocgm); + } + } + + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ostc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofrc ); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofdc ); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofledc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofufdc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_offc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofwdc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofldec); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_opc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_opcp); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_occn); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_otuc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_oduc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs,fmbm_ofuc); + break; + case(1): + DUMP_SUBTITLE(("\n")); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rcfg); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rst); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rda); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfp); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_reth); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfed); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_ricp); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rebm); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfne); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfca); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfpne); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rpso); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rpp); + + DUMP_TITLE(&(p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rprai), ("fmbm_rprai")); + DUMP_SUBSTRUCT_ARRAY(i, FM_PORT_PRS_RESULT_NUM_OF_WORDS) + { + DUMP_MEMORY(&(p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rprai[i]), sizeof(uint32_t)); + } + DUMP_SUBTITLE(("\n")); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfqid); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_refqid); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfsdm); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfsem); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfene); + DUMP_TITLE(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_ebmpi, ("fmbm_ebmpi")); + DUMP_SUBSTRUCT_ARRAY(i, FM_PORT_MAX_NUM_OF_EXT_POOLS) + { + DUMP_MEMORY(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_ebmpi[i], sizeof(uint32_t)); + } + DUMP_TITLE(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_acnt, ("fmbm_acnt")); + DUMP_SUBSTRUCT_ARRAY(i, FM_PORT_MAX_NUM_OF_EXT_POOLS) + { + DUMP_MEMORY(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_acnt[i], sizeof(uint32_t)); + } + DUMP_TITLE(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_cgm, ("fmbm_cgm")); + DUMP_SUBSTRUCT_ARRAY(i, FM_PORT_NUM_OF_CONGESTION_GRPS/32) + { + DUMP_MEMORY(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_cgm[i], sizeof(uint32_t)); + } + DUMP_SUBTITLE(("\n")); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_mpd); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rstc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfrc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfbc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rlfc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rffc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfcd); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfldec); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rodc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rpc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rpcp); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rccn); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rtuc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rrquc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rduc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rfuc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rpac); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs,fmbm_rdbg); + break; + case(2): + + DUMP_SUBTITLE(("\n")); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tcfg); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tst); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tda); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfp); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfed); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_ticp); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfne); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfca); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tcfqid); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfeqid); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfene); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_trlmts); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_trlmt); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tstc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfrc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfdc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfledc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfufdc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tpc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tpcp); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tccn); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_ttuc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_ttcquc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tduc); + DUMP_VAR(&p_FmPort->p_FmPortBmiRegs->txPortBmiRegs,fmbm_tfuc); + break; + + default: + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Invalid flag")); + } + + DUMP_TITLE(p_FmPort->p_FmPortQmiRegs, ("Qmi Port Regs")); + + DUMP_VAR(p_FmPort->p_FmPortQmiRegs,fmqm_pnc); + DUMP_VAR(p_FmPort->p_FmPortQmiRegs,fmqm_pns); + DUMP_VAR(p_FmPort->p_FmPortQmiRegs,fmqm_pnts); + DUMP_VAR(p_FmPort->p_FmPortQmiRegs,fmqm_pnen); + DUMP_VAR(p_FmPort->p_FmPortQmiRegs,fmqm_pnetfc); + + if(flag !=1) + { + DUMP_VAR(&p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs,fmqm_pndn); + DUMP_VAR(&p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs,fmqm_pndc); + DUMP_VAR(&p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs,fmqm_pndtfc); + DUMP_VAR(&p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs,fmqm_pndfdc); + DUMP_VAR(&p_FmPort->p_FmPortQmiRegs->nonRxQmiRegs,fmqm_pndcc); + } + + return E_OK; +} +#endif /* (defined(DEBUG_ERRORS) && ... */ + +t_Error FM_PORT_AddCongestionGrps(t_Handle h_FmPort, t_FmPortCongestionGrps *p_CongestionGrps) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + bool tmpArray[FM_PORT_NUM_OF_CONGESTION_GRPS], opPort; + int i; + uint8_t mod; + uint32_t tmpReg = 0; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + + { +#ifdef FM_NO_OP_OBSERVED_CGS + t_FmRevisionInfo revInfo; + + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if (revInfo.majorRev != 4) + { + if((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && + (p_FmPort->portType != e_FM_PORT_TYPE_RX)) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("Available for Rx ports only")); + } + else +#endif /* FM_NO_OP_OBSERVED_CGS */ + if((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && + (p_FmPort->portType != e_FM_PORT_TYPE_RX) && + (p_FmPort->portType != e_FM_PORT_TYPE_OH_OFFLINE_PARSING)) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("Available for Rx & OP ports only")); + } + + opPort = (bool)((p_FmPort->portType == e_FM_PORT_TYPE_OH_OFFLINE_PARSING) ? TRUE:FALSE); + + /* to minimize memory access (groups may belong to the same regsiter, and may + be out of order), we first collect all information into a 256 booleans array, + representing each possible group. */ + + memset(&tmpArray, 0, FM_PORT_NUM_OF_CONGESTION_GRPS*sizeof(bool)); + for(i=0;inumOfCongestionGrpsToConsider;i++) + tmpArray[p_CongestionGrps->congestionGrpsToConsider[i]] = TRUE; + + for(i=0;ip_FmPortBmiRegs->ohPortBmiRegs.fmbm_ocgm): + GET_UINT32(p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_cgm[7-i/32]); + + /* set in the register, the bit representing the relevant congestion group. */ + if(tmpArray[i]) + tmpReg |= (0x00000001 << (uint32_t)mod); + + if (mod == 31) /* last in a 32 bunch of congestion groups - write the corresponding register */ + { + if(opPort) + WRITE_UINT32(p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ocgm, tmpReg); + else + WRITE_UINT32(p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_cgm[7-i/32], tmpReg); + } + } + + return E_OK; +} + +t_Error FM_PORT_RemoveCongestionGrps(t_Handle h_FmPort, t_FmPortCongestionGrps *p_CongestionGrps) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + bool tmpArray[FM_PORT_NUM_OF_CONGESTION_GRPS], opPort; + int i; + uint8_t mod; + uint32_t tmpReg = 0; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + + { +#ifdef FM_NO_OP_OBSERVED_CGS + t_FmRevisionInfo revInfo; + + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if (revInfo.majorRev != 4) + { + if((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && + (p_FmPort->portType != e_FM_PORT_TYPE_RX)) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("Available for Rx ports only")); + } + else +#endif /* FM_NO_OP_OBSERVED_CGS */ + if((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && + (p_FmPort->portType != e_FM_PORT_TYPE_RX) && + (p_FmPort->portType != e_FM_PORT_TYPE_OH_OFFLINE_PARSING)) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("Available for Rx & OP ports only")); + } + + opPort = (bool)((p_FmPort->portType == e_FM_PORT_TYPE_OH_OFFLINE_PARSING) ? TRUE:FALSE); + + /* to minimize memory access (groups may belong to the same regsiter, and may + be out of order), we first collect all information into a 256 booleans array, + representing each possible group. */ + memset(&tmpArray, 0, FM_PORT_NUM_OF_CONGESTION_GRPS*sizeof(bool)); + for(i=0;inumOfCongestionGrpsToConsider;i++) + tmpArray[p_CongestionGrps->congestionGrpsToConsider[i]] = TRUE; + + for(i=0;ip_FmPortBmiRegs->ohPortBmiRegs.fmbm_ocgm): + GET_UINT32(p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_cgm[7-i/32]); + + /* set in the register, the bit representing the relevant congestion group. */ + if(tmpArray[i]) + tmpReg &= ~(0x00000001 << (uint32_t)mod); + + if (mod == 31) /* last in a 32 bunch of congestion groups - write the corresponding register */ + { + if(opPort) + WRITE_UINT32(p_FmPort->p_FmPortBmiRegs->ohPortBmiRegs.fmbm_ocgm, tmpReg); + else + WRITE_UINT32(p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_cgm[7-i/32], tmpReg); + } + } + + return E_OK; +} + --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/Port/fm_port.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/Port/fm_port.h @@ -0,0 +1,894 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fm_port.h + + @Description FM Port internal structures and definitions. +*//***************************************************************************/ +#ifndef __FM_PORT_H +#define __FM_PORT_H + +#include "error_ext.h" +#include "std_ext.h" +#include "fm_port_ext.h" + +#include "fm_common.h" + + +#define __ERR_MODULE__ MODULE_FM_PORT + + +#define MIN_EXT_BUF_SIZE 64 +#define DATA_ALIGNMENT 64 +#define MAX_LIODN_OFFSET 64 + +/**************************************************************************//** + @Description Memory Map defines +*//***************************************************************************/ +#define BMI_PORT_REGS_OFFSET 0 +#define QMI_PORT_REGS_OFFSET 0x400 +#define PRS_PORT_REGS_OFFSET 0x800 + +/**************************************************************************//** + @Description defaults +*//***************************************************************************/ +#define DEFAULT_PORT_deqHighPriority TRUE +#define DEFAULT_PORT_deqType e_FM_PORT_DEQ_TYPE1 +#ifdef FM_QMI_DEQ_OPTIONS_SUPPORT +#define DEFAULT_PORT_deqPrefetchOption e_FM_PORT_DEQ_FULL_PREFETCH +#define DEFAULT_PORT_deqPrefetchOption_HC e_FM_PORT_DEQ_NO_PREFETCH +#endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ +#define DEFAULT_PORT_deqByteCnt 2000 +#define DEFAULT_PORT_bufferPrefixContent_privDataSize 0 +#define DEFAULT_PORT_bufferPrefixContent_passPrsResult FALSE +#define DEFAULT_PORT_bufferPrefixContent_passTimeStamp FALSE +#define DEFAULT_PORT_bufferPrefixContent_allOtherPCDInfo FALSE +#ifdef DEBUG +#define DEFAULT_PORT_bufferPrefixContent_debugInfo FALSE +#endif /* DEBUG */ +#define DEFAULT_PORT_bufferPrefixContent_dataAlign DATA_ALIGNMENT +#define DEFAULT_PORT_cheksumLastBytesIgnore 0 +#define DEFAULT_PORT_cutBytesFromEnd 4 +#define DEFAULT_PORT_txFifoMinFillLevel 0 +#define DEFAULT_PORT_txFifoDeqPipelineDepth_IM 2 +#define DEFAULT_PORT_txFifoDeqPipelineDepth_1G 2 +#define DEFAULT_PORT_txFifoDeqPipelineDepth_10G 8 +#define DEFAULT_PORT_txFifoLowComfLevel (5*KILOBYTE) +#define DEFAULT_PORT_rxFifoPriElevationLevel BMI_MAX_FIFO_SIZE +#define DEFAULT_PORT_rxFifoThreshold (BMI_MAX_FIFO_SIZE*3/4) +#define DEFAULT_PORT_frmDiscardOverride FALSE +#define DEFAULT_PORT_dmaSwapData e_FM_PORT_DMA_NO_SWP +#define DEFAULT_PORT_dmaIntContextCacheAttr e_FM_PORT_DMA_NO_STASH +#define DEFAULT_PORT_dmaHeaderCacheAttr e_FM_PORT_DMA_NO_STASH +#define DEFAULT_PORT_dmaScatterGatherCacheAttr e_FM_PORT_DMA_NO_STASH +#define DEFAULT_PORT_dmaWriteOptimize TRUE +#define DEFAULT_PORT_forwardIntContextReuse FALSE +#define DEFAULT_PORT_BufMargins_startMargins 32 +#define DEFAULT_PORT_BufMargins_endMargins 0 +#define DEFAULT_PORT_syncReq TRUE +#define DEFAULT_PORT_syncReqForHc FALSE +#define DEFAULT_PORT_color e_FM_PORT_COLOR_GREEN +#define DEFAULT_PORT_errorsToDiscard FM_PORT_FRM_ERR_CLS_DISCARD +#define DEFAULT_dualRateLimitScaleDown e_FM_PORT_DUAL_RATE_LIMITER_NONE +#define DEFAULT_rateLimitBurstSizeHighGranularity FALSE +#define DEFAULT_exception IM_EV_BSY + +/* Host command port MUST NOT be changed to more than 1 !!! */ +#define DEFAULT_PORT_numOfTasks(type) \ + (uint32_t)((((type) == e_FM_PORT_TYPE_RX_10G) || \ + ((type) == e_FM_PORT_TYPE_TX_10G)) ? 16 : \ + ((((type) == e_FM_PORT_TYPE_RX) || \ + ((type) == e_FM_PORT_TYPE_TX) || \ + ((type) == e_FM_PORT_TYPE_OH_OFFLINE_PARSING)) ? 3 : 1)) + +#define DEFAULT_PORT_extraNumOfTasks(type) \ + (uint32_t)((((type) == e_FM_PORT_TYPE_RX_10G) || \ + ((type) == e_FM_PORT_TYPE_TX_10G)) ? 8 : \ + ((((type) == e_FM_PORT_TYPE_RX) || \ + ((type) == e_FM_PORT_TYPE_TX) || \ + ((type) == e_FM_PORT_TYPE_OH_OFFLINE_PARSING)) ? 2 : 0)) + +#define DEFAULT_PORT_numOfOpenDmas(type) \ + (uint32_t)(((type) == e_FM_PORT_TYPE_TX_10G) ? 8 : \ + (((type) == e_FM_PORT_TYPE_RX_10G) ? 4 : 1)) + +#define DEFAULT_PORT_extraNumOfOpenDmas(type) \ + (uint32_t)((((type) == e_FM_PORT_TYPE_RX_10G) || \ + ((type) == e_FM_PORT_TYPE_TX_10G)) ? 8 : \ + ((((type) == e_FM_PORT_TYPE_RX) || \ + ((type) == e_FM_PORT_TYPE_TX) || \ + ((type) == e_FM_PORT_TYPE_OH_OFFLINE_PARSING)) ? 1 : 0)) + +#if defined(CONFIG_FMAN_RESOURCE_ALLOCATION_ALGORITHM) +/* Let LLD to set minimum fifosize, otherwise fifosize settings will not work */ +#define DEFAULT_PORT_sizeOfFifo(type) \ + (uint32_t)(KILOBYTE) +#else +#define DEFAULT_PORT_sizeOfFifo(type) \ + (uint32_t)((((type) == e_FM_PORT_TYPE_RX_10G) || \ + ((type) == e_FM_PORT_TYPE_TX_10G)) ? (16*KILOBYTE) : \ + ((((type) == e_FM_PORT_TYPE_RX) || \ + ((type) == e_FM_PORT_TYPE_TX) || \ + ((type) == e_FM_PORT_TYPE_OH_OFFLINE_PARSING)) ? (4*KILOBYTE) : (1536))) +#endif + +#define DEFAULT_PORT_extraSizeOfFifo(type) \ + (uint32_t)(((type) == e_FM_PORT_TYPE_RX_10G) ? (8*KILOBYTE) : \ + (((type) == e_FM_PORT_TYPE_RX) ? (4*KILOBYTE) : (0))) + +#define DEFAULT_PORT_txBdRingLength 16 +#define DEFAULT_PORT_rxBdRingLength 128 +#define DEFAULT_PORT_ImfwExtStructsMemId 0 +#define DEFAULT_PORT_ImfwExtStructsMemAttr MEMORY_ATTR_CACHEABLE + +#define OH_PIPELINE_DEPTH 2 + +/**************************************************************************//** + @Description Memory Mapped Registers +*//***************************************************************************/ + +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(push,1) +#endif /* defined(__MWERKS__) && ... */ +#define MEM_MAP_START + +#define FM_PORT_MAX_NUM_OF_EXT_POOLS_ALL_INTEGRATIONS 8 +#define FM_PORT_NUM_OF_CONGESTION_GRPS_ALL_INTEGRATIONS 256 + +typedef _Packed struct +{ + volatile uint32_t fmbm_rcfg; /**< Rx Configuration */ + volatile uint32_t fmbm_rst; /**< Rx Status */ + volatile uint32_t fmbm_rda; /**< Rx DMA attributes*/ + volatile uint32_t fmbm_rfp; /**< Rx FIFO Parameters*/ + volatile uint32_t fmbm_rfed; /**< Rx Frame End Data*/ + volatile uint32_t fmbm_ricp; /**< Rx Internal Context Parameters*/ + volatile uint32_t fmbm_rim; /**< Rx Internal Buffer Margins*/ + volatile uint32_t fmbm_rebm; /**< Rx External Buffer Margins*/ + volatile uint32_t fmbm_rfne; /**< Rx Frame Next Engine*/ + volatile uint32_t fmbm_rfca; /**< Rx Frame Command Attributes.*/ + volatile uint32_t fmbm_rfpne; /**< Rx Frame Parser Next Engine*/ + volatile uint32_t fmbm_rpso; /**< Rx Parse Start Offset*/ + volatile uint32_t fmbm_rpp; /**< Rx Policer Profile */ + volatile uint32_t fmbm_rccb; /**< Rx Coarse Classification Base */ + volatile uint32_t fmbm_reth; /**< Rx Excessive Threshold */ + volatile uint32_t reserved1[1]; /**< (0x03C 0x03F) */ + volatile uint32_t fmbm_rprai[FM_PORT_PRS_RESULT_NUM_OF_WORDS]; + /**< Rx Parse Results Array Initialization*/ + volatile uint32_t fmbm_rfqid; /**< Rx Frame Queue ID*/ + volatile uint32_t fmbm_refqid; /**< Rx Error Frame Queue ID*/ + volatile uint32_t fmbm_rfsdm; /**< Rx Frame Status Discard Mask*/ + volatile uint32_t fmbm_rfsem; /**< Rx Frame Status Error Mask*/ + volatile uint32_t fmbm_rfene; /**< Rx Frame Enqueue Next Engine */ + volatile uint32_t reserved2[0x23];/**< (0x074 0x0FF) */ + volatile uint32_t fmbm_ebmpi[FM_PORT_MAX_NUM_OF_EXT_POOLS_ALL_INTEGRATIONS]; + /**< Buffer Manager pool Information-*/ + volatile uint32_t fmbm_acnt[FM_PORT_MAX_NUM_OF_EXT_POOLS_ALL_INTEGRATIONS]; + /**< Allocate Counter-*/ + volatile uint32_t reserved3[8]; + /**< 0x130/0x140 - 0x15F reserved -*/ + volatile uint32_t fmbm_cgm[FM_PORT_NUM_OF_CONGESTION_GRPS_ALL_INTEGRATIONS/32]; + /**< Congestion Group Map*/ + volatile uint32_t fmbm_mpd; /**< BM Pool Depletion */ + volatile uint32_t reserved4[0x1F];/**< (0x184 0x1FF) */ + volatile uint32_t fmbm_rstc; /**< Rx Statistics Counters*/ + volatile uint32_t fmbm_rfrc; /**< Rx Frame Counter*/ + volatile uint32_t fmbm_rfbc; /**< Rx Bad Frames Counter*/ + volatile uint32_t fmbm_rlfc; /**< Rx Large Frames Counter*/ + volatile uint32_t fmbm_rffc; /**< Rx Filter Frames Counter*/ + volatile uint32_t fmbm_rfcd; /**< Rx Frame Discard Counter*/ + volatile uint32_t fmbm_rfldec; /**< Rx Frames List DMA Error Counter*/ + volatile uint32_t fmbm_rodc; /**< Rx Out of Buffers Discard Counter-*/ + volatile uint32_t fmbm_rbdc; /**< Rx Buffers Deallocate Counter-*/ + volatile uint32_t reserved5[0x17];/**< (0x224 0x27F) */ + volatile uint32_t fmbm_rpc; /**< Rx Performance Counters*/ + volatile uint32_t fmbm_rpcp; /**< Rx Performance Count Parameters*/ + volatile uint32_t fmbm_rccn; /**< Rx Cycle Counter*/ + volatile uint32_t fmbm_rtuc; /**< Rx Tasks Utilization Counter*/ + volatile uint32_t fmbm_rrquc; /**< Rx Receive Queue Utilization Counter*/ + volatile uint32_t fmbm_rduc; /**< Rx DMA Utilization Counter*/ + volatile uint32_t fmbm_rfuc; /**< Rx FIFO Utilization Counter*/ + volatile uint32_t fmbm_rpac; /**< Rx Pause Activation Counter*/ + volatile uint32_t reserved6[0x18];/**< (0x2A0 0x2FF) */ + volatile uint32_t fmbm_rdbg; /**< Rx Debug-*/ +} _PackedType t_FmPortRxBmiRegs; + +typedef _Packed struct +{ + volatile uint32_t fmbm_tcfg; /**< Tx Configuration */ + volatile uint32_t fmbm_tst; /**< Tx Status */ + volatile uint32_t fmbm_tda; /**< Tx DMA attributes */ + volatile uint32_t fmbm_tfp; /**< Tx FIFO Parameters */ + volatile uint32_t fmbm_tfed; /**< Tx Frame End Data */ + volatile uint32_t fmbm_ticp; /**< Tx Internal Context Parameters */ + volatile uint32_t fmbm_tfne; /**< Tx Frame Next Engine. */ + volatile uint32_t fmbm_tfca; /**< Tx Frame Command attribute. */ + volatile uint32_t fmbm_tcfqid; /**< Tx Confirmation Frame Queue ID. */ + volatile uint32_t fmbm_tfeqid; /**< Tx Frame Error Queue ID */ + volatile uint32_t fmbm_tfene; /**< Tx Frame Enqueue Next Engine */ + volatile uint32_t fmbm_trlmts; /**< Tx Rate Limiter Scale */ + volatile uint32_t fmbm_trlmt; /**< Tx Rate Limiter */ + volatile uint32_t reserved0[0x73];/**< (0x038-0x200) */ + volatile uint32_t fmbm_tstc; /**< Tx Statistics Counters */ + volatile uint32_t fmbm_tfrc; /**< Tx Frame Counter */ + volatile uint32_t fmbm_tfdc; /**< Tx Frames Discard Counter */ + volatile uint32_t fmbm_tfledc; /**< Tx Frame Length error discard counter */ + volatile uint32_t fmbm_tfufdc; /**< Tx Frame unsupported format discard Counter */ + volatile uint32_t fmbm_tbdc; /**< Tx Buffers Deallocate Counter */ + volatile uint32_t reserved1[0x1A];/**< (0x218-0x280) */ + volatile uint32_t fmbm_tpc; /**< Tx Performance Counters*/ + volatile uint32_t fmbm_tpcp; /**< Tx Performance Count Parameters*/ + volatile uint32_t fmbm_tccn; /**< Tx Cycle Counter*/ + volatile uint32_t fmbm_ttuc; /**< Tx Tasks Utilization Counter*/ + volatile uint32_t fmbm_ttcquc; /**< Tx Transmit Confirm Queue Utilization Counter*/ + volatile uint32_t fmbm_tduc; /**< Tx DMA Utilization Counter*/ + volatile uint32_t fmbm_tfuc; /**< Tx FIFO Utilization Counter*/ +} _PackedType t_FmPortTxBmiRegs; + +typedef _Packed struct +{ + volatile uint32_t fmbm_ocfg; /**< O/H Configuration */ + volatile uint32_t fmbm_ost; /**< O/H Status */ + volatile uint32_t fmbm_oda; /**< O/H DMA attributes */ + volatile uint32_t fmbm_oicp; /**< O/H Internal Context Parameters */ + volatile uint32_t fmbm_ofdne; /**< O/H Frame Dequeue Next Engine */ + volatile uint32_t fmbm_ofne; /**< O/H Frame Next Engine */ + volatile uint32_t fmbm_ofca; /**< O/H Frame Command Attributes. */ + volatile uint32_t fmbm_ofpne; /**< O/H Frame Parser Next Engine */ + volatile uint32_t fmbm_opso; /**< O/H Parse Start Offset */ + volatile uint32_t fmbm_opp; /**< O/H Policer Profile */ + volatile uint32_t fmbm_occb; /**< O/H Coarse Classification base */ + volatile uint32_t fmbm_oim; /**< O/H Internal margins*/ + volatile uint32_t reserved0[4]; /**< (0x030 - 0x03F) */ + volatile uint32_t fmbm_oprai[FM_PORT_PRS_RESULT_NUM_OF_WORDS]; + /**< O/H Parse Results Array Initialization */ + volatile uint32_t fmbm_ofqid; /**< O/H Frame Queue ID */ + volatile uint32_t fmbm_oefqid; /**< O/H Error Frame Queue ID */ + volatile uint32_t fmbm_ofsdm; /**< O/H Frame Status Discard Mask */ + volatile uint32_t fmbm_ofsem; /**< O/H Frame Status Error Mask */ + volatile uint32_t fmbm_ofene; /**< O/H Frame Enqueue Next Engine */ + volatile uint32_t fmbm_orlmts; /**< O/H Rate Limiter Scale */ + volatile uint32_t fmbm_orlmt; /**< O/H Rate Limiter */ + volatile uint32_t reserved0a[0x21]; + /**< 0x07C - 0x0FF Reserved */ + union + { + volatile uint32_t fmbm_oebmpi[FM_PORT_MAX_NUM_OF_OBSERVED_EXT_POOLS]; + /**< Buffer Manager Observed Pool Information */ + volatile uint32_t reserved0b[0x18]; + }; /**< 0x100 - 0x15F Reserved */ + volatile uint32_t fmbm_ocgm; /**< Observed Congestion Group Map */ + volatile uint32_t reserved0c[0x7];/**< 0x164 - 0x17F Reserved */ + volatile uint32_t fmbm_ompd; /**< Observed BMan Pool Depletion */ + volatile uint32_t reserved0d[0x1F]; + /**< 0x184 - 0x1FF Reserved */ + volatile uint32_t fmbm_ostc; /**< O/H Statistics Counters */ + volatile uint32_t fmbm_ofrc; /**< O/H Frame Counter */ + volatile uint32_t fmbm_ofdc; /**< O/H Frames Discard Counter */ + volatile uint32_t fmbm_ofledc; /**< O/H Frames Length Error Discard Counter */ + volatile uint32_t fmbm_ofufdc; /**< O/H Frames Unsupported Format Discard Counter */ + volatile uint32_t fmbm_offc; /**< O/H Filter Frames Counter */ + volatile uint32_t fmbm_ofwdc; /**< - Rx Frames WRED Discard Counter */ + volatile uint32_t fmbm_ofldec; /**< O/H Frames List DMA Error Counter */ + volatile uint32_t fmbm_obdc; /**< O/H Buffers Deallocate Counter */ + volatile uint32_t reserved2[0x17];/**< (0x218 - 0x27F) */ + volatile uint32_t fmbm_opc; /**< O/H Performance Counters */ + volatile uint32_t fmbm_opcp; /**< O/H Performance Count Parameters */ + volatile uint32_t fmbm_occn; /**< O/H Cycle Counter */ + volatile uint32_t fmbm_otuc; /**< O/H Tasks Utilization Counter */ + volatile uint32_t fmbm_oduc; /**< O/H DMA Utilization Counter */ + volatile uint32_t fmbm_ofuc; /**< O/H FIFO Utilization Counter */ +} _PackedType t_FmPortOhBmiRegs; + +typedef _Packed union +{ + t_FmPortRxBmiRegs rxPortBmiRegs; + t_FmPortTxBmiRegs txPortBmiRegs; + t_FmPortOhBmiRegs ohPortBmiRegs; +} _PackedType u_FmPortBmiRegs; + +typedef _Packed struct +{ + volatile uint32_t reserved1[2]; /**< 0xn024 - 0x02B */ + volatile uint32_t fmqm_pndn; /**< PortID n Dequeue NIA Register */ + volatile uint32_t fmqm_pndc; /**< PortID n Dequeue Config Register */ + volatile uint32_t fmqm_pndtfc; /**< PortID n Dequeue Total Frame Counter */ + volatile uint32_t fmqm_pndfdc; /**< PortID n Dequeue FQID from Default Counter */ + volatile uint32_t fmqm_pndcc; /**< PortID n Dequeue Confirm Counter */ +} _PackedType t_FmPortNonRxQmiRegs; + +typedef _Packed struct +{ + volatile uint32_t fmqm_pnc; /**< PortID n Configuration Register */ + volatile uint32_t fmqm_pns; /**< PortID n Status Register */ + volatile uint32_t fmqm_pnts; /**< PortID n Task Status Register */ + volatile uint32_t reserved0[4]; /**< 0xn00C - 0xn01B */ + volatile uint32_t fmqm_pnen; /**< PortID n Enqueue NIA Register */ + volatile uint32_t fmqm_pnetfc; /**< PortID n Enqueue Total Frame Counter */ + t_FmPortNonRxQmiRegs nonRxQmiRegs; /**< Registers for Tx Hc & Op ports */ +} _PackedType t_FmPortQmiRegs; + +typedef _Packed struct +{ + _Packed struct + { + volatile uint32_t softSeqAttach; /**< Soft Sequence Attachment */ + volatile uint32_t lcv; /**< Line-up Enable Confirmation Mask */ + } _PackedType hdrs[FM_PCD_PRS_NUM_OF_HDRS]; + volatile uint8_t reserved0[0x378]; + volatile uint32_t pcac; /**< Parse Internal Memory Configuration Access Control Register */ + volatile uint32_t pctpid; /**< Parse Internal Memory Configured TPID Register */ +} _PackedType t_FmPortPrsRegs; + +/**************************************************************************//* + @Description Basic buffer descriptor (BD) structure +*//***************************************************************************/ +typedef _Packed struct +{ + volatile uint16_t status; + volatile uint16_t length; + volatile uint8_t reserved0[0x6]; + volatile uint8_t reserved1[0x1]; + volatile t_FmPhysAddr buff; +} _PackedType t_FmImBd; + +typedef _Packed struct +{ + volatile uint16_t gen; /**< tbd */ + volatile uint8_t reserved0[0x1]; + volatile t_FmPhysAddr bdRingBase; /**< tbd */ + volatile uint16_t bdRingSize; /**< tbd */ + volatile uint16_t offsetIn; /**< tbd */ + volatile uint16_t offsetOut; /**< tbd */ + volatile uint8_t reserved1[0x12]; /**< 0x0e - 0x1f */ +} _PackedType t_FmPortImQd; + +typedef _Packed struct +{ + volatile uint32_t mode; /**< Mode register */ + volatile uint32_t rxQdPtr; /**< tbd */ + volatile uint32_t txQdPtr; /**< tbd */ + volatile uint16_t mrblr; /**< tbd */ + volatile uint16_t rxQdBsyCnt; /**< tbd */ + volatile uint8_t reserved0[0x10]; /**< 0x10 - 0x1f */ + t_FmPortImQd rxQd; + t_FmPortImQd txQd; + volatile uint8_t reserved1[0xa0]; /**< 0x60 - 0xff */ +} _PackedType t_FmPortImPram; + +#define MEM_MAP_END +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(pop) +#endif /* defined(__MWERKS__) && ... */ + + +/**************************************************************************//** + @Description Registers bit fields +*//***************************************************************************/ + +/**************************************************************************//** + @Description BMI defines +*//***************************************************************************/ +#define BMI_PORT_CFG_EN 0x80000000 +#define BMI_PORT_CFG_EN_MACSEC 0x00800000 +#define BMI_PORT_CFG_FDOVR 0x02000000 +#define BMI_PORT_CFG_IM 0x01000000 +#define BMI_PORT_STATUS_BSY 0x80000000 +#define BMI_COUNTERS_EN 0x80000000 +#define BMI_DMA_ATTR_WRITE_OPTIMIZE 0x00100000 +#define BMI_PORT_RFNE_FRWD_DCL4C 0x10000000 +#define BMI_PORT_RFNE_FRWD_RPD 0x40000000 +#define BMI_RFNE_FDCS_MASK 0xFF000000 + +#define BMI_CMD_MR_LEAC 0x00200000 +#define BMI_CMD_MR_SLEAC 0x00100000 +#define BMI_CMD_MR_MA 0x00080000 +#define BMI_CMD_MR_DEAS 0x00040000 +#define BMI_CMD_TX_MR_DEF (0) +#define BMI_CMD_RX_MR_DEF (BMI_CMD_MR_LEAC | \ + BMI_CMD_MR_SLEAC | \ + BMI_CMD_MR_MA | \ + BMI_CMD_MR_DEAS) +#define BMI_CMD_ATTR_ORDER 0x80000000 +#define BMI_CMD_ATTR_SYNC 0x02000000 +#define BMI_CMD_ATTR_MACCMD_MASK 0x0000ff00 +#define BMI_CMD_ATTR_MACCMD_OVERRIDE 0x00008000 +#define BMI_CMD_ATTR_MACCMD_SECURED 0x00001000 +#define BMI_CMD_ATTR_MACCMD_SC_MASK 0x00000f00 + +#define BMI_EXT_BUF_POOL_VALID 0x80000000 +#define BMI_EXT_BUF_POOL_EN_COUNTER 0x40000000 +#define BMI_EXT_BUF_POOL_BACKUP 0x20000000 +#define BMI_EXT_BUF_POOL_ID_MASK 0x003F0000 +#define BMI_STATUS_RX_MASK_UNUSED (uint32_t)(~(FM_PORT_FRM_ERR_DMA | \ + FM_PORT_FRM_ERR_PHYSICAL | \ + FM_PORT_FRM_ERR_SIZE | \ + FM_PORT_FRM_ERR_CLS_DISCARD | \ + FM_PORT_FRM_ERR_EXTRACTION | \ + FM_PORT_FRM_ERR_NO_SCHEME | \ + FM_PORT_FRM_ERR_COLOR_RED | \ + FM_PORT_FRM_ERR_COLOR_YELLOW | \ + FM_PORT_FRM_ERR_ILL_PLCR | \ + FM_PORT_FRM_ERR_PLCR_FRAME_LEN | \ + FM_PORT_FRM_ERR_PRS_TIMEOUT | \ + FM_PORT_FRM_ERR_PRS_ILL_INSTRUCT | \ + FM_PORT_FRM_ERR_BLOCK_LIMIT_EXCEEDED | \ + FM_PORT_FRM_ERR_PRS_HDR_ERR | \ + FM_PORT_FRM_ERR_PROCESS_TIMEOUT | \ + FM_PORT_FRM_ERR_KEYSIZE_OVERFLOW)) + +#define BMI_STATUS_OP_MASK_UNUSED (uint32_t)(BMI_STATUS_RX_MASK_UNUSED & \ + ~(FM_PORT_FRM_ERR_LENGTH | \ + FM_PORT_FRM_ERR_UNSUPPORTED_FORMAT)) + +#define BMI_RATE_LIMIT_EN 0x80000000 +#define BMI_RATE_LIMIT_BURST_SIZE_GRAN 0x80000000 +#define BMI_RATE_LIMIT_SCALE_BY_2 0x00000001 +#define BMI_RATE_LIMIT_SCALE_BY_4 0x00000002 +#define BMI_RATE_LIMIT_SCALE_BY_8 0x00000003 + +#define BMI_RX_FIFO_THRESHOLD_BC 0x80000000 + +#define BMI_PRS_RESULT_HIGH 0x00000000 +#define BMI_PRS_RESULT_LOW 0xFFFFFFFF + +#define RX_ERRS_TO_ENQ (FM_PORT_FRM_ERR_DMA | \ + FM_PORT_FRM_ERR_PHYSICAL | \ + FM_PORT_FRM_ERR_SIZE | \ + FM_PORT_FRM_ERR_EXTRACTION | \ + FM_PORT_FRM_ERR_NO_SCHEME | \ + FM_PORT_FRM_ERR_ILL_PLCR | \ + FM_PORT_FRM_ERR_PLCR_FRAME_LEN | \ + FM_PORT_FRM_ERR_PRS_TIMEOUT | \ + FM_PORT_FRM_ERR_PRS_ILL_INSTRUCT | \ + FM_PORT_FRM_ERR_BLOCK_LIMIT_EXCEEDED | \ + FM_PORT_FRM_ERR_PRS_HDR_ERR | \ + FM_PORT_FRM_ERR_PROCESS_TIMEOUT | \ + FM_PORT_FRM_ERR_KEYSIZE_OVERFLOW) + +#ifdef FM_CAPWAP_SUPPORT +#define OP_ERRS_TO_ENQ (RX_ERRS_TO_ENQ | \ + FM_PORT_FRM_ERR_LENGTH | \ + FM_PORT_FRM_ERR_NON_FM | \ + FM_PORT_FRM_ERR_UNSUPPORTED_FORMAT) + +#else +#define OP_ERRS_TO_ENQ (RX_ERRS_TO_ENQ | \ + FM_PORT_FRM_ERR_LENGTH | \ + FM_PORT_FRM_ERR_UNSUPPORTED_FORMAT) +#endif /* FM_CAPWAP_SUPPORT */ + +/* shifts */ +#define BMI_PORT_CFG_MS_SEL_SHIFT 16 +#define BMI_DMA_ATTR_SWP_SHIFT 30 +#define BMI_DMA_ATTR_IC_CACHE_SHIFT 28 +#define BMI_DMA_ATTR_HDR_CACHE_SHIFT 26 +#define BMI_DMA_ATTR_SG_CACHE_SHIFT 24 + +#define BMI_IM_FOF_SHIFT 28 +#define BMI_PR_PORTID_SHIFT 24 + +#define BMI_RX_FIFO_PRI_ELEVATION_SHIFT 16 +#define BMI_RX_FIFO_THRESHOLD_SHIFT 0 + +#define BMI_RX_FRAME_END_CS_IGNORE_SHIFT 24 +#define BMI_RX_FRAME_END_CUT_SHIFT 16 + +#define BMI_IC_TO_EXT_SHIFT 16 +#define BMI_IC_FROM_INT_SHIFT 8 +#define BMI_IC_SIZE_SHIFT 0 + +#define BMI_INT_BUF_MARG_SHIFT 28 + +#define BMI_EXT_BUF_MARG_START_SHIFT 16 +#define BMI_EXT_BUF_MARG_END_SHIFT 0 + +#define BMI_CMD_ATTR_COLOR_SHIFT 26 +#define BMI_CMD_ATTR_COM_MODE_SHIFT 16 +#define BMI_CMD_ATTR_MACCMD_SHIFT 8 +#define BMI_CMD_ATTR_MACCMD_OVERRIDE_SHIFT 15 +#define BMI_CMD_ATTR_MACCMD_SECURED_SHIFT 12 +#define BMI_CMD_ATTR_MACCMD_SC_SHIFT 8 + +#define BMI_POOL_DEP_NUM_OF_POOLS_SHIFT 16 +#define BMI_POOL_DEP_NUM_OF_POOLS_VECTOR_SHIFT 24 + +#define BMI_EXT_BUF_POOL_ID_SHIFT 16 + +#define BMI_TX_FIFO_MIN_FILL_SHIFT 16 +#define BMI_TX_FIFO_PIPELINE_DEPTH_SHIFT 12 +#define BMI_TX_LOW_COMF_SHIFT 0 + +#define BMI_TX_FRAME_END_CS_IGNORE_SHIFT 24 + +#define BMI_PERFORMANCE_TASK_COMP_SHIFT 24 +#define BMI_PERFORMANCE_PORT_COMP_SHIFT 16 +#define BMI_PERFORMANCE_DMA_COMP_SHIFT 12 +#define BMI_PERFORMANCE_FIFO_COMP_SHIFT 0 + +#define BMI_MAX_BURST_SHIFT 16 +#define BMI_COUNT_RATE_UNIT_SHIFT 16 + +/* sizes */ +#define FRAME_END_DATA_SIZE 16 +#define OFFSET_UNITS 16 +#define FRAME_OFFSET_UNITS 16 +#define MAX_EXT_OFFSET 496 +#define MAX_EXT_BUFFER_OFFSET 511 +#define MAX_INT_OFFSET 240 +#define MIN_TX_INT_OFFSET 16 +#define MAX_IC_SIZE 256 +#define MAX_FRAME_OFFSET 64 +#define MAX_FIFO_PIPELINE_DEPTH 8 +#define MAX_PERFORMANCE_TASK_COMP 64 +#define MAX_PERFORMANCE_TX_QUEUE_COMP 8 +#define MAX_PERFORMANCE_RX_QUEUE_COMP 64 +#define MAX_PERFORMANCE_DMA_COMP 16 +#define MAX_NUM_OF_TASKS 64 +#define MAX_NUM_OF_EXTRA_TASKS 8 +#define MAX_NUM_OF_DMAS 16 +#define MAX_NUM_OF_EXTRA_DMAS 8 +#define MAX_BURST_SIZE 1024 +#define FRAG_EXTRA_SPACE 32 + +/**************************************************************************//** + @Description QMI defines +*//***************************************************************************/ +/* masks */ +#define QMI_PORT_CFG_EN 0x80000000 +#define QMI_PORT_CFG_EN_COUNTERS 0x10000000 +#define QMI_PORT_STATUS_DEQ_TNUM_BSY 0x80000000 +#define QMI_PORT_STATUS_DEQ_FD_BSY 0x20000000 + +#define QMI_DEQ_CFG_PREFETCH_NO_TNUM 0x02000000 +#define QMI_DEQ_CFG_PREFETCH_WAITING_TNUM 0 +#define QMI_DEQ_CFG_PREFETCH_1_FRAME 0 +#define QMI_DEQ_CFG_PREFETCH_3_FRAMES 0x01000000 + +#define QMI_DEQ_CFG_PRI 0x80000000 +#define QMI_DEQ_CFG_TYPE1 0x10000000 +#define QMI_DEQ_CFG_TYPE2 0x20000000 +#define QMI_DEQ_CFG_TYPE3 0x30000000 + +#define QMI_DEQ_CFG_SUBPORTAL_MASK 0x1f +#define QMI_DEQ_CFG_SUBPORTAL_SHIFT 20 + +/**************************************************************************//** + @Description PARSER defines +*//***************************************************************************/ +/* masks */ +#define PRS_HDR_ERROR_DIS 0x00000800 +#define PRS_HDR_SW_PRS_EN 0x00000400 +#define PRS_CP_OFFSET_MASK 0x0000000F +#define PRS_TPID1_MASK 0xFFFF0000 +#define PRS_TPID2_MASK 0x0000FFFF +#define PRS_TPID_DFLT 0x91009100 + +#define PRS_HDR_MPLS_LBL_INTER_EN 0x00200000 +#define PRS_HDR_IPV6_ROUTE_HDR_DIS 0x00008000 +#define PRS_HDR_PPPOE_MTU_CHECK_EN 0x80000000 +#define PRS_HDR_UDP_PAD_REMOVAL 0x80000000 +#define PRS_HDR_TCP_PAD_REMOVAL 0x80000000 +#define PRS_CAC_STOP 0x00000001 +#define PRS_CAC_ACTIVE 0x00000100 + +/* shifts */ +#define PRS_PCTPID_SHIFT 16 +#define PRS_HDR_MPLS_NEXT_HDR_SHIFT 22 +#define PRS_HDR_ETH_BC_SHIFT 28 +#define PRS_HDR_ETH_MC_SHIFT 24 +#define PRS_HDR_VLAN_STACKED_SHIFT 16 +#define PRS_HDR_MPLS_STACKED_SHIFT 16 +#define PRS_HDR_IPV4_1_BC_SHIFT 28 +#define PRS_HDR_IPV4_1_MC_SHIFT 24 +#define PRS_HDR_IPV4_2_UC_SHIFT 20 +#define PRS_HDR_IPV4_2_MC_BC_SHIFT 16 +#define PRS_HDR_IPV6_1_MC_SHIFT 24 +#define PRS_HDR_IPV6_2_UC_SHIFT 20 +#define PRS_HDR_IPV6_2_MC_SHIFT 16 + +#define PRS_HDR_ETH_BC_MASK 0x0fffffff +#define PRS_HDR_ETH_MC_MASK 0xf0ffffff +#define PRS_HDR_VLAN_STACKED_MASK 0xfff0ffff +#define PRS_HDR_MPLS_STACKED_MASK 0xfff0ffff +#define PRS_HDR_IPV4_1_BC_MASK 0x0fffffff +#define PRS_HDR_IPV4_1_MC_MASK 0xf0ffffff +#define PRS_HDR_IPV4_2_UC_MASK 0xff0fffff +#define PRS_HDR_IPV4_2_MC_BC_MASK 0xfff0ffff +#define PRS_HDR_IPV6_1_MC_MASK 0xf0ffffff +#define PRS_HDR_IPV6_2_UC_MASK 0xff0fffff +#define PRS_HDR_IPV6_2_MC_MASK 0xfff0ffff + +/* others */ +#define PRS_HDR_ENTRY_SIZE 8 +#define DEFAULT_CLS_PLAN_VECTOR 0xFFFFFFFF + +#define IPSEC_SW_PATCH_START 0x20 +#define SCTP_SW_PATCH_START 0x4D +#define DCCP_SW_PATCH_START 0x41 + +#define IP_FRAG_SW_PATCH_IPv4 0x300 +#define IP_FRAG_SW_PATCH_IPv6_0 0x320 +#define IP_FRAG_SW_PATCH_IPv6_1 0x372 + +/**************************************************************************//** + @Description IM defines +*//***************************************************************************/ +#define BD_R_E 0x80000000 +#define BD_L 0x08000000 + +#define BD_RX_CRE 0x00080000 +#define BD_RX_FTL 0x00040000 +#define BD_RX_FTS 0x00020000 +#define BD_RX_OV 0x00010000 + +#define BD_RX_ERRORS (BD_RX_CRE | BD_RX_FTL | BD_RX_FTS | BD_RX_OV) +#define BD_ERROR_PASS_FRAME BD_RX_ERRORS + +#define FM_IM_SIZEOF_BD sizeof(t_FmImBd) + +#define BD_STATUS_MASK 0xffff0000 +#define BD_LENGTH_MASK 0x0000ffff + +#define BD_STATUS_AND_LENGTH_SET(bd, val) WRITE_UINT32(*(volatile uint32_t*)(bd), (val)) + +#define BD_STATUS_AND_LENGTH(bd) GET_UINT32(*(volatile uint32_t*)(bd)) + +#define BD_GET(id) &p_FmPort->im.p_BdRing[id] + +#define IM_ILEGAL_BD_ID 0xffff + +/* others */ +#define IM_PRAM_ALIGN 0x100 + +/* masks */ +#define IM_MODE_GBL 0x20000000 +#define IM_MODE_BO_MASK 0x18000000 +#define IM_MODE_BO_SHIFT 3 +#define IM_MODE_GRC_STP 0x00800000 + +#define IM_MODE_SET_BO(val) (uint32_t)((val << (31-IM_MODE_BO_SHIFT)) & IM_MODE_BO_MASK) + +#define IM_RXQD_BSYINTM 0x0008 +#define IM_RXQD_RXFINTM 0x0010 +#define IM_RXQD_FPMEVT_SEL_MASK 0x0003 + +#define IM_EV_BSY 0x40000000 +#define IM_EV_RX 0x80000000 + +typedef struct { + t_Handle h_FmMuram; + t_FmPortImPram *p_FmPortImPram; + uint8_t fwExtStructsMemId; + uint32_t fwExtStructsMemAttr; + uint16_t bdRingSize; + t_FmImBd *p_BdRing; + t_Handle *p_BdShadow; + uint16_t currBdId; + uint16_t firstBdOfFrameId; + + /* Rx port parameters */ + uint8_t dataMemId; /**< Memory partition ID for data buffers */ + uint32_t dataMemAttributes; /**< Memory attributes for data buffers */ + t_BufferPoolInfo rxPool; + uint16_t mrblr; + uint16_t rxFrameAccumLength; + t_FmPortImRxStoreCallback *f_RxStore; + + /* Tx port parameters */ + uint32_t txFirstBdStatus; + t_FmPortImTxConfCallback *f_TxConf; +} t_FmMacIm; + +/**************************************************************************//** + @Description structure for defining internal context copying +*//***************************************************************************/ +typedef struct +{ + uint16_t extBufOffset; /**< Offset in External buffer to which internal + context is copied to (Rx) or taken from (Tx, Op). */ + uint8_t intContextOffset; /**< Offset within internal context to copy from + (Rx) or to copy to (Tx, Op). */ + uint16_t size; /**< Internal offset size to be copied */ +} t_FmPortIntContextDataCopy; + +/**************************************************************************//** + @Description struct for defining external buffer margins +*//***************************************************************************/ +typedef struct { + uint16_t startMargins; /**< Number of bytes to be left at the beginning + of the external buffer (must be divisible by 16) */ + uint16_t endMargins; /**< number of bytes to be left at the end + of the external buffer(must be divisible by 16) */ +} t_FmPortBufMargins; + +typedef struct { + uint32_t dataOffset; + uint32_t prsResultOffset; + uint32_t timeStampOffset; + uint32_t hashResultOffset; + uint32_t pcdInfoOffset; + uint32_t manipOffset; +#ifdef DEBUG + uint32_t debugOffset; +#endif /* DEBUG */ +} t_FmPortBufferOffsets; + +typedef struct { + uint32_t dfltFqid; + uint32_t confFqid; + uint32_t errFqid; + uintptr_t baseAddr; + uint8_t deqSubPortal; + bool deqHighPriority; + e_FmPortDeqType deqType; +#ifdef FM_QMI_DEQ_OPTIONS_SUPPORT + e_FmPortDeqPrefetchOption deqPrefetchOption; +#endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ + uint16_t deqByteCnt; + uint8_t cheksumLastBytesIgnore; + uint8_t cutBytesFromEnd; + t_FmPortBufPoolDepletion bufPoolDepletion; + uint8_t pipelineDepth; + uint16_t fifoLowComfLevel; + bool frmDiscardOverride; + bool enRateLimit; + t_FmPortRateLimit rateLimit; + e_FmPortDualRateLimiterScaleDown rateLimitDivider; + bool enBufPoolDepletion; + uint16_t liodnOffset; + uint16_t liodnBase; + t_FmPortExtPools extBufPools; + e_FmPortDmaSwap dmaSwapData; + e_FmPortDmaCache dmaIntContextCacheAttr; + e_FmPortDmaCache dmaHeaderCacheAttr; + e_FmPortDmaCache dmaScatterGatherCacheAttr; + bool dmaReadOptimize; + bool dmaWriteOptimize; + uint32_t txFifoMinFillLevel; + uint32_t txFifoLowComfLevel; + uint32_t rxFifoPriElevationLevel; + uint32_t rxFifoThreshold; + t_FmPortBufMargins bufMargins; + t_FmPortIntContextDataCopy intContext; + bool syncReq; + e_FmPortColor color; + fmPortFrameErrSelect_t errorsToDiscard; + fmPortFrameErrSelect_t errorsToEnq; + uint64_t fmMuramPhysBaseAddr; + bool forwardReuseIntContext; + t_FmPortBufferPrefixContent bufferPrefixContent; + uint8_t internalBufferOffset; + t_FmPortBackupBmPools *p_BackupBmPools; + bool dontReleaseBuf; +} t_FmPortDriverParam; + +typedef struct { + t_Handle h_Fm; + t_Handle h_FmPcd; + uint8_t portId; + e_FmPortType portType; + int enabled; + char name[MODULE_NAME_SIZE]; + uint8_t hardwarePortId; + uint16_t fmClkFreq; + t_FmPortQmiRegs *p_FmPortQmiRegs; + u_FmPortBmiRegs *p_FmPortBmiRegs; + t_FmPortPrsRegs *p_FmPortPrsRegs; + fmPcdEngines_t pcdEngines; + uint32_t savedBmiNia; + uint8_t netEnvId; + uint32_t optArray[FM_PCD_MAX_NUM_OF_OPTIONS(FM_PCD_MAX_NUM_OF_CLS_PLANS)]; + uint32_t lcvs[FM_PCD_PRS_NUM_OF_HDRS]; + uint8_t privateInfo; + uint32_t schemesPerPortVector; + bool useClsPlan; + uint8_t clsPlanGrpId; + t_Handle ccTreeId; + t_Handle completeArg; + void (*f_Complete)(t_Handle arg); + t_FmPortBufferOffsets bufferOffsets; + /* Independent-Mode parameters support */ + bool imEn; + t_FmMacIm im; + uint8_t txFifoDeqPipelineDepth; + volatile bool lock; + t_Handle h_Spinlock; + t_FmPortExceptionCallback *f_Exception; + t_Handle h_App; + uint8_t internalBufferOffset; + uint8_t fmanCtrlEventId; + uint32_t exceptions; + bool polling; + uint8_t numOfTasks; + t_FmPortExtPools extBufPools; + uint32_t requiredAction; + uint32_t savedQmiPnen; + uint32_t savedNonRxQmiRegsPndn; + int savedPrsStartOffset; + t_FmPortRsrc openDmas; + t_FmPortRsrc tasks; + t_FmPortRsrc fifoBufs; + t_FmInterModulePortRxPoolsParams rxPoolsParams; + t_FmPortDriverParam *p_FmPortDriverParam; +} t_FmPort; + +#define CHECK_FM_CTL_AC_POST_FETCH_PCD(savedBmiNia) \ + ((((savedBmiNia) & NIA_ENG_MASK) == NIA_ENG_FM_CTL) && \ + ((((savedBmiNia) & NIA_FM_CTL_AC_MASK) == NIA_FM_CTL_AC_POST_FETCH_PCD) || \ + (((savedBmiNia) & NIA_FM_CTL_AC_MASK) == NIA_FM_CTL_AC_POST_FETCH_PCD_UDP_LEN))) + +void FmPortConfigIM (t_FmPort *p_FmPort, t_FmPortParams *p_FmPortParams); +t_Error FmPortImCheckInitParameters(t_FmPort *p_FmPort); + +t_Error FmPortImInit(t_FmPort *p_FmPort); +void FmPortImFree(t_FmPort *p_FmPort); + +t_Error FmPortImEnable (t_FmPort *p_FmPort); +t_Error FmPortImDisable (t_FmPort *p_FmPort); +t_Error FmPortImRx (t_FmPort *p_FmPort); + +void FmPortSetMacsecLcv(t_Handle h_FmPort); +void FmPortSetMacsecCmd(t_Handle h_FmPort, uint8_t dfltSci); + + +static __inline__ uint8_t * BdBufferGet (t_PhysToVirt *f_PhysToVirt, t_FmImBd *p_Bd) +{ + uint64_t physAddr = (uint64_t)((uint64_t)GET_UINT8(p_Bd->buff.high) << 32); + physAddr |= GET_UINT32(p_Bd->buff.low); + + return (uint8_t *)f_PhysToVirt((physAddress_t)(physAddr)); +} + +static __inline__ void SET_ADDR(volatile t_FmPhysAddr *fmPhysAddr, uint64_t value) +{ + WRITE_UINT8(fmPhysAddr->high,(uint8_t)((value & 0x000000ff00000000LL) >> 32)); + WRITE_UINT32(fmPhysAddr->low,(uint32_t)value); +} + +static __inline__ void BdBufferSet(t_VirtToPhys *f_VirtToPhys, t_FmImBd *p_Bd, uint8_t *p_Buffer) +{ + uint64_t physAddr = (uint64_t)(f_VirtToPhys(p_Buffer)); + SET_ADDR(&p_Bd->buff, physAddr); +} + +static __inline__ uint16_t GetNextBdId(t_FmPort *p_FmPort, uint16_t id) +{ + if (id < p_FmPort->im.bdRingSize-1) + return (uint16_t)(id+1); + else + return 0; +} + + +#endif /* __FM_PORT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/Port/fm_port_im.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/Port/fm_port_im.c @@ -0,0 +1,789 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fm_port_im.c + + @Description FM Port Independent-Mode ... +*//***************************************************************************/ +#include "std_ext.h" +#include "string_ext.h" +#include "error_ext.h" +#include "fm_muram_ext.h" + +#include "fm_port.h" + + +#define TX_CONF_STATUS_UNSENT 0x1 + +#ifdef CORE_8BIT_ACCESS_ERRATA +#undef WRITE_UINT16 +#undef GET_UINT16 + +#define WRITE_UINT16(addr, val) \ + do{ \ + if((int)&(addr) % 4) \ + WRITE_UINT32(*(uint32_t*)(uint32_t)((uint32_t)&addr & ~0x3L), \ + ((GET_UINT32(*(uint32_t*)(uint32_t)((uint32_t)&addr & ~0x3L)) & 0xffff0000) | (uint32_t)val)); \ + else \ + WRITE_UINT32(*(uint32_t*)&addr, \ + ((GET_UINT32(*(uint32_t*)&addr) & 0x0000ffff) | (uint32_t)val<<16)); \ + }while(0); + +#define GET_UINT16(addr) (((uint32_t)&addr%4) ? \ + ((uint16_t)GET_UINT32(*(uint32_t*)(uint32_t)((uint32_t)&addr & ~0x3L))): \ + ((uint16_t)(GET_UINT32(*(uint32_t*)(uint32_t)&addr) >> 16))) +#endif /* CORE_8BIT_ACCESS_ERRATA */ + + +typedef enum e_TxConfType +{ + e_TX_CONF_TYPE_CHECK = 0 /**< check if all the buffers were touched by the muxator, no confirmation callback */ + ,e_TX_CONF_TYPE_CALLBACK = 1 /**< confirm to user all the available sent buffers */ + ,e_TX_CONF_TYPE_FLUSH = 3 /**< confirm all buffers plus the unsent one with an appropriate status */ +} e_TxConfType; + + +static void ImException(t_Handle h_FmPort, uint32_t event) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + ASSERT_COND(((event & IM_EV_RX) && FmIsMaster(p_FmPort->h_Fm)) || + !FmIsMaster(p_FmPort->h_Fm)); + + if (event & IM_EV_RX) + FmPortImRx(p_FmPort); + if ((event & IM_EV_BSY) && p_FmPort->f_Exception) + p_FmPort->f_Exception(p_FmPort->h_App, e_FM_PORT_EXCEPTION_IM_BUSY); +} + + +static t_Error TxConf(t_FmPort *p_FmPort, e_TxConfType confType) +{ + t_Error retVal = E_BUSY; + uint32_t bdStatus; + uint16_t savedStartBdId, confBdId; + + ASSERT_COND(p_FmPort); + + /* + if (confType==e_TX_CONF_TYPE_CHECK) + return (WfqEntryIsQueueEmpty(p_FmPort->im.h_WfqEntry) ? E_OK : E_BUSY); + */ + + confBdId = savedStartBdId = p_FmPort->im.currBdId; + bdStatus = BD_STATUS_AND_LENGTH(BD_GET(confBdId)); + + /* If R bit is set, we don't enter, or we break. + we run till we get to R, or complete the loop */ + while ((!(bdStatus & BD_R_E) || (confType == e_TX_CONF_TYPE_FLUSH)) && (retVal != E_OK)) + { + if (confType & e_TX_CONF_TYPE_CALLBACK) /* if it is confirmation with user callbacks */ + BD_STATUS_AND_LENGTH_SET(BD_GET(confBdId), 0); + + /* case 1: R bit is 0 and Length is set -> confirm! */ + if ((confType & e_TX_CONF_TYPE_CALLBACK) && (bdStatus & BD_LENGTH_MASK)) + { + if (p_FmPort->im.f_TxConf) + { + if ((confType == e_TX_CONF_TYPE_FLUSH) && (bdStatus & BD_R_E)) + p_FmPort->im.f_TxConf(p_FmPort->h_App, + BdBufferGet(XX_PhysToVirt, BD_GET(confBdId)), + TX_CONF_STATUS_UNSENT, + p_FmPort->im.p_BdShadow[confBdId]); + else + p_FmPort->im.f_TxConf(p_FmPort->h_App, + BdBufferGet(XX_PhysToVirt, BD_GET(confBdId)), + 0, + p_FmPort->im.p_BdShadow[confBdId]); + } + } + /* case 2: R bit is 0 and Length is 0 -> not used yet, nop! */ + + confBdId = GetNextBdId(p_FmPort, confBdId); + if (confBdId == savedStartBdId) + retVal = E_OK; + bdStatus = BD_STATUS_AND_LENGTH(BD_GET(confBdId)); + } + + return retVal; +} + +t_Error FmPortImEnable(t_FmPort *p_FmPort) +{ + uint32_t tmpReg = GET_UINT32(p_FmPort->im.p_FmPortImPram->mode); + WRITE_UINT32(p_FmPort->im.p_FmPortImPram->mode, (uint32_t)(tmpReg & ~IM_MODE_GRC_STP)); + return E_OK; +} + +t_Error FmPortImDisable(t_FmPort *p_FmPort) +{ + uint32_t tmpReg = GET_UINT32(p_FmPort->im.p_FmPortImPram->mode); + WRITE_UINT32(p_FmPort->im.p_FmPortImPram->mode, (uint32_t)(tmpReg | IM_MODE_GRC_STP)); + return E_OK; +} + +t_Error FmPortImRx(t_FmPort *p_FmPort) +{ + t_Handle h_CurrUserPriv, h_NewUserPriv; + uint32_t bdStatus; + volatile uint8_t buffPos; + uint16_t length; + uint16_t errors/*, reportErrors*/; + uint8_t *p_CurData, *p_Data; + uint32_t flags; + + ASSERT_COND(p_FmPort); + + flags = XX_LockIntrSpinlock(p_FmPort->h_Spinlock); + if (p_FmPort->lock) + { + XX_UnlockIntrSpinlock(p_FmPort->h_Spinlock, flags); + return E_OK; + } + p_FmPort->lock = TRUE; + XX_UnlockIntrSpinlock(p_FmPort->h_Spinlock, flags); + + bdStatus = BD_STATUS_AND_LENGTH(BD_GET(p_FmPort->im.currBdId)); + + while (!(bdStatus & BD_R_E)) /* while there is data in the Rx BD */ + { + if ((p_Data = p_FmPort->im.rxPool.f_GetBuf(p_FmPort->im.rxPool.h_BufferPool, &h_NewUserPriv)) == NULL) + { + p_FmPort->lock = FALSE; + RETURN_ERROR(MAJOR, E_NOT_AVAILABLE, ("Data buffer")); + } + + if (p_FmPort->im.firstBdOfFrameId == IM_ILEGAL_BD_ID) + p_FmPort->im.firstBdOfFrameId = p_FmPort->im.currBdId; + + errors = 0; + p_CurData = BdBufferGet(p_FmPort->im.rxPool.f_PhysToVirt, BD_GET(p_FmPort->im.currBdId)); + h_CurrUserPriv = p_FmPort->im.p_BdShadow[p_FmPort->im.currBdId]; + length = (uint16_t)((bdStatus & BD_L) ? + ((bdStatus & BD_LENGTH_MASK) - p_FmPort->im.rxFrameAccumLength): + (bdStatus & BD_LENGTH_MASK)); + p_FmPort->im.rxFrameAccumLength += length; + + /* determine whether buffer is first, last, first and last (single */ + /* buffer frame) or middle (not first and not last) */ + buffPos = (uint8_t)((p_FmPort->im.currBdId == p_FmPort->im.firstBdOfFrameId) ? + ((bdStatus & BD_L) ? SINGLE_BUF : FIRST_BUF) : + ((bdStatus & BD_L) ? LAST_BUF : MIDDLE_BUF)); + + if (bdStatus & BD_L) + { + p_FmPort->im.rxFrameAccumLength = 0; + p_FmPort->im.firstBdOfFrameId = IM_ILEGAL_BD_ID; + } + + BdBufferSet(p_FmPort->im.rxPool.f_VirtToPhys, BD_GET(p_FmPort->im.currBdId), p_Data); + + BD_STATUS_AND_LENGTH_SET(BD_GET(p_FmPort->im.currBdId), BD_R_E); + + errors = (uint16_t)((bdStatus & BD_RX_ERRORS) >> 16); + p_FmPort->im.p_BdShadow[p_FmPort->im.currBdId] = h_NewUserPriv; + + p_FmPort->im.currBdId = GetNextBdId(p_FmPort, p_FmPort->im.currBdId); + WRITE_UINT16(p_FmPort->im.p_FmPortImPram->rxQd.offsetOut, (uint16_t)(p_FmPort->im.currBdId<<4)); + /* Pass the buffer if one of the conditions is true: + - There are no errors + - This is a part of a larger frame ( the application has already received some buffers ) + - There is an error, but it was defined to be passed anyway. */ + if ((buffPos != SINGLE_BUF) || !errors || (errors & (uint16_t)(BD_ERROR_PASS_FRAME>>16))) + { + if (p_FmPort->im.f_RxStore(p_FmPort->h_App, + p_CurData, + length, + errors, + buffPos, + h_CurrUserPriv) == e_RX_STORE_RESPONSE_PAUSE) + break; + } + else if (p_FmPort->im.rxPool.f_PutBuf(p_FmPort->im.rxPool.h_BufferPool, + p_CurData, + h_CurrUserPriv)) + { + p_FmPort->lock = FALSE; + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Failed freeing data buffer")); + } + + bdStatus = BD_STATUS_AND_LENGTH(BD_GET(p_FmPort->im.currBdId)); + } + p_FmPort->lock = FALSE; + return E_OK; +} + +void FmPortConfigIM (t_FmPort *p_FmPort, t_FmPortParams *p_FmPortParams) +{ + ASSERT_COND(p_FmPort); + + SANITY_CHECK_RETURN(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + p_FmPort->im.h_FmMuram = p_FmPortParams->specificParams.imRxTxParams.h_FmMuram; + p_FmPort->p_FmPortDriverParam->liodnOffset = p_FmPortParams->specificParams.imRxTxParams.liodnOffset; + p_FmPort->im.dataMemId = p_FmPortParams->specificParams.imRxTxParams.dataMemId; + p_FmPort->im.dataMemAttributes = p_FmPortParams->specificParams.imRxTxParams.dataMemAttributes; + + p_FmPort->im.fwExtStructsMemId = DEFAULT_PORT_ImfwExtStructsMemId; + p_FmPort->im.fwExtStructsMemAttr = DEFAULT_PORT_ImfwExtStructsMemAttr; + + if ((p_FmPort->portType == e_FM_PORT_TYPE_RX) || + (p_FmPort->portType == e_FM_PORT_TYPE_RX_10G)) + { + p_FmPort->im.rxPool.h_BufferPool = p_FmPortParams->specificParams.imRxTxParams.rxPoolParams.h_BufferPool; + p_FmPort->im.rxPool.f_GetBuf = p_FmPortParams->specificParams.imRxTxParams.rxPoolParams.f_GetBuf; + p_FmPort->im.rxPool.f_PutBuf = p_FmPortParams->specificParams.imRxTxParams.rxPoolParams.f_PutBuf; + p_FmPort->im.rxPool.bufferSize = p_FmPortParams->specificParams.imRxTxParams.rxPoolParams.bufferSize; + p_FmPort->im.rxPool.f_PhysToVirt = p_FmPortParams->specificParams.imRxTxParams.rxPoolParams.f_PhysToVirt; + if (!p_FmPort->im.rxPool.f_PhysToVirt) + p_FmPort->im.rxPool.f_PhysToVirt = XX_PhysToVirt; + p_FmPort->im.rxPool.f_VirtToPhys = p_FmPortParams->specificParams.imRxTxParams.rxPoolParams.f_VirtToPhys; + if (!p_FmPort->im.rxPool.f_VirtToPhys) + p_FmPort->im.rxPool.f_VirtToPhys = XX_VirtToPhys; + p_FmPort->im.f_RxStore = p_FmPortParams->specificParams.imRxTxParams.f_RxStore; + + p_FmPort->im.mrblr = 0x8000; + while (p_FmPort->im.mrblr) + { + if (p_FmPort->im.rxPool.bufferSize & p_FmPort->im.mrblr) + break; + p_FmPort->im.mrblr >>= 1; + } + if (p_FmPort->im.mrblr != p_FmPort->im.rxPool.bufferSize) + DBG(WARNING, ("Max-Rx-Buffer-Length set to %d", p_FmPort->im.mrblr)); + p_FmPort->im.bdRingSize = DEFAULT_PORT_rxBdRingLength; + p_FmPort->exceptions = DEFAULT_exception; + if (FmIsMaster(p_FmPort->h_Fm)) + p_FmPort->polling = FALSE; + else + p_FmPort->polling = TRUE; + p_FmPort->fmanCtrlEventId = (uint8_t)NO_IRQ; + } + else + { + p_FmPort->im.f_TxConf = p_FmPortParams->specificParams.imRxTxParams.f_TxConf; + + p_FmPort->im.bdRingSize = DEFAULT_PORT_txBdRingLength; + } +} + +t_Error FmPortImCheckInitParameters(t_FmPort *p_FmPort) +{ + if ((p_FmPort->portType != e_FM_PORT_TYPE_RX) && + (p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && + (p_FmPort->portType != e_FM_PORT_TYPE_TX) && + (p_FmPort->portType != e_FM_PORT_TYPE_TX_10G)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, NO_MSG); + + if ((p_FmPort->portType == e_FM_PORT_TYPE_RX) || + (p_FmPort->portType == e_FM_PORT_TYPE_RX_10G)) + { + if (!POWER_OF_2(p_FmPort->im.mrblr)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("max Rx buffer length must be power of 2!!!")); + if (p_FmPort->im.mrblr < 256) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("max Rx buffer length must at least 256!!!")); + if(p_FmPort->p_FmPortDriverParam->liodnOffset & ~FM_LIODN_OFFSET_MASK) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("liodnOffset is larger than %d", FM_LIODN_OFFSET_MASK+1)); +#ifdef FM_PARTITION_ARRAY + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_FmPort->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + { + if(p_FmPort->p_FmPortDriverParam->liodnOffset >= MAX_LIODN_OFFSET) + { + p_FmPort->p_FmPortDriverParam->liodnOffset = + (uint16_t)(p_FmPort->p_FmPortDriverParam->liodnOffset & (MAX_LIODN_OFFSET-1)); + DBG(WARNING, ("liodnOffset number is out of rev1 range - MSB bits cleard.")); + } + } + } +#endif /* FM_PARTITION_ARRAY */ +/* TODO - add checks */ + } + else + { +/* TODO - add checks */ + } + + return E_OK; +} + +t_Error FmPortImInit(t_FmPort *p_FmPort) +{ + t_FmImBd *p_Bd=NULL; + t_Handle h_BufContext; + uint64_t tmpPhysBase; + uint16_t log2Num; + uint8_t *p_Data/*, *p_Tmp*/; + int i; + t_Error err; + uint16_t tmpReg16; + uint32_t tmpReg32; + + ASSERT_COND(p_FmPort); + + p_FmPort->im.p_FmPortImPram = + (t_FmPortImPram *)FM_MURAM_AllocMem(p_FmPort->im.h_FmMuram, sizeof(t_FmPortImPram), IM_PRAM_ALIGN); + if (!p_FmPort->im.p_FmPortImPram) + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("Independent-Mode Parameter-RAM!!!")); + WRITE_BLOCK(p_FmPort->im.p_FmPortImPram, 0, sizeof(t_FmPortImPram)); + + if ((p_FmPort->portType == e_FM_PORT_TYPE_RX) || + (p_FmPort->portType == e_FM_PORT_TYPE_RX_10G)) + { + p_FmPort->im.p_BdRing = (t_FmImBd *)XX_MallocSmart((uint32_t)(sizeof(t_FmImBd)*p_FmPort->im.bdRingSize), p_FmPort->im.fwExtStructsMemId, 4); + if (!p_FmPort->im.p_BdRing) + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("Independent-Mode Rx BD ring!!!")); + IOMemSet32(p_FmPort->im.p_BdRing, 0, (uint32_t)(sizeof(t_FmImBd)*p_FmPort->im.bdRingSize)); + + p_FmPort->im.p_BdShadow = (t_Handle *)XX_Malloc((uint32_t)(sizeof(t_Handle)*p_FmPort->im.bdRingSize)); + if (!p_FmPort->im.p_BdShadow) + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("Independent-Mode Rx BD shadow!!!")); + memset(p_FmPort->im.p_BdShadow, 0, (uint32_t)(sizeof(t_Handle)*p_FmPort->im.bdRingSize)); + + /* Initialize the Rx-BD ring */ + for (i=0; iim.bdRingSize; i++) + { + p_Bd = BD_GET(i); + BD_STATUS_AND_LENGTH_SET (p_Bd, BD_R_E); + + if ((p_Data = p_FmPort->im.rxPool.f_GetBuf(p_FmPort->im.rxPool.h_BufferPool, &h_BufContext)) == NULL) + RETURN_ERROR(MAJOR, E_NOT_AVAILABLE, ("Data buffer")); + BdBufferSet(p_FmPort->im.rxPool.f_VirtToPhys, p_Bd, p_Data); + p_FmPort->im.p_BdShadow[i] = h_BufContext; + } + + if ((p_FmPort->im.dataMemAttributes & MEMORY_ATTR_CACHEABLE) || + (p_FmPort->im.fwExtStructsMemAttr & MEMORY_ATTR_CACHEABLE)) + WRITE_UINT32(p_FmPort->im.p_FmPortImPram->mode, IM_MODE_GBL | IM_MODE_SET_BO(2)); + else + WRITE_UINT32(p_FmPort->im.p_FmPortImPram->mode, IM_MODE_SET_BO(2)); + + WRITE_UINT32(p_FmPort->im.p_FmPortImPram->rxQdPtr, + (uint32_t)((uint64_t)(XX_VirtToPhys(p_FmPort->im.p_FmPortImPram)) - + p_FmPort->p_FmPortDriverParam->fmMuramPhysBaseAddr + 0x20)); + + LOG2((uint64_t)p_FmPort->im.mrblr, log2Num); + WRITE_UINT16(p_FmPort->im.p_FmPortImPram->mrblr, log2Num); + + /* Initialize Rx QD */ + tmpPhysBase = (uint64_t)(XX_VirtToPhys(p_FmPort->im.p_BdRing)); + SET_ADDR(&p_FmPort->im.p_FmPortImPram->rxQd.bdRingBase, tmpPhysBase); + WRITE_UINT16(p_FmPort->im.p_FmPortImPram->rxQd.bdRingSize, (uint16_t)(sizeof(t_FmImBd)*p_FmPort->im.bdRingSize)); + + /* Update the IM PRAM address in the BMI */ + WRITE_UINT32(p_FmPort->p_FmPortBmiRegs->rxPortBmiRegs.fmbm_rfqid, + (uint32_t)((uint64_t)(XX_VirtToPhys(p_FmPort->im.p_FmPortImPram)) - + p_FmPort->p_FmPortDriverParam->fmMuramPhysBaseAddr)); + if (!p_FmPort->polling || p_FmPort->exceptions) + { + /* Allocate, configure and register interrupts */ + err = FmAllocFmanCtrlEventReg(p_FmPort->h_Fm, &p_FmPort->fmanCtrlEventId); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + + ASSERT_COND(!(p_FmPort->fmanCtrlEventId & ~IM_RXQD_FPMEVT_SEL_MASK)); + tmpReg16 = (uint16_t)(p_FmPort->fmanCtrlEventId & IM_RXQD_FPMEVT_SEL_MASK); + tmpReg32 = 0; + + if(p_FmPort->exceptions & IM_EV_BSY) + { + tmpReg16 |= IM_RXQD_BSYINTM; + tmpReg32 |= IM_EV_BSY; + } + if(!p_FmPort->polling) + { + tmpReg16 |= IM_RXQD_RXFINTM; + tmpReg32 |= IM_EV_RX; + } + WRITE_UINT16(p_FmPort->im.p_FmPortImPram->rxQd.gen, tmpReg16); + + FmRegisterFmanCtrlIntr(p_FmPort->h_Fm, p_FmPort->fmanCtrlEventId, ImException , (t_Handle)p_FmPort); + + FmSetFmanCtrlIntr(p_FmPort->h_Fm, p_FmPort->fmanCtrlEventId, tmpReg32); + } + else + p_FmPort->fmanCtrlEventId = (uint8_t)NO_IRQ; + } + else + { + p_FmPort->im.p_BdRing = (t_FmImBd *)XX_MallocSmart((uint32_t)(sizeof(t_FmImBd)*p_FmPort->im.bdRingSize), p_FmPort->im.fwExtStructsMemId, 4); + if (!p_FmPort->im.p_BdRing) + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("Independent-Mode Tx BD ring!!!")); + IOMemSet32(p_FmPort->im.p_BdRing, 0, (uint32_t)(sizeof(t_FmImBd)*p_FmPort->im.bdRingSize)); + + p_FmPort->im.p_BdShadow = (t_Handle *)XX_Malloc((uint32_t)(sizeof(t_Handle)*p_FmPort->im.bdRingSize)); + if (!p_FmPort->im.p_BdShadow) + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("Independent-Mode Rx BD shadow!!!")); + memset(p_FmPort->im.p_BdShadow, 0, (uint32_t)(sizeof(t_Handle)*p_FmPort->im.bdRingSize)); + p_FmPort->im.firstBdOfFrameId = IM_ILEGAL_BD_ID; + + if ((p_FmPort->im.dataMemAttributes & MEMORY_ATTR_CACHEABLE) || + (p_FmPort->im.fwExtStructsMemAttr & MEMORY_ATTR_CACHEABLE)) + WRITE_UINT32(p_FmPort->im.p_FmPortImPram->mode, IM_MODE_GBL | IM_MODE_SET_BO(2)); + else + WRITE_UINT32(p_FmPort->im.p_FmPortImPram->mode, IM_MODE_SET_BO(2)); + + WRITE_UINT32(p_FmPort->im.p_FmPortImPram->txQdPtr, + (uint32_t)((uint64_t)(XX_VirtToPhys(p_FmPort->im.p_FmPortImPram)) - + p_FmPort->p_FmPortDriverParam->fmMuramPhysBaseAddr + 0x40)); + + /* Initialize Tx QD */ + tmpPhysBase = (uint64_t)(XX_VirtToPhys(p_FmPort->im.p_BdRing)); + SET_ADDR(&p_FmPort->im.p_FmPortImPram->txQd.bdRingBase, tmpPhysBase); + WRITE_UINT16(p_FmPort->im.p_FmPortImPram->txQd.bdRingSize, (uint16_t)(sizeof(t_FmImBd)*p_FmPort->im.bdRingSize)); + + /* Update the IM PRAM address in the BMI */ + WRITE_UINT32(p_FmPort->p_FmPortBmiRegs->txPortBmiRegs.fmbm_tcfqid, + (uint32_t)((uint64_t)(XX_VirtToPhys(p_FmPort->im.p_FmPortImPram)) - + p_FmPort->p_FmPortDriverParam->fmMuramPhysBaseAddr)); + } + + + return E_OK; +} + +void FmPortImFree(t_FmPort *p_FmPort) +{ + uint32_t bdStatus; + uint8_t *p_CurData; + + ASSERT_COND(p_FmPort); + ASSERT_COND(p_FmPort->im.p_FmPortImPram); + + if ((p_FmPort->portType == e_FM_PORT_TYPE_RX) || + (p_FmPort->portType == e_FM_PORT_TYPE_RX_10G)) + { + if (!p_FmPort->polling || p_FmPort->exceptions) + { + /* Deallocate and unregister interrupts */ + FmSetFmanCtrlIntr(p_FmPort->h_Fm, p_FmPort->fmanCtrlEventId, 0); + + FmFreeFmanCtrlEventReg(p_FmPort->h_Fm, p_FmPort->fmanCtrlEventId); + + WRITE_UINT16(p_FmPort->im.p_FmPortImPram->rxQd.gen, 0); + + FmUnregisterFmanCtrlIntr(p_FmPort->h_Fm, p_FmPort->fmanCtrlEventId); + } + /* Try first clean what has received */ + FmPortImRx(p_FmPort); + + /* Now, get rid of the the empty buffer! */ + bdStatus = BD_STATUS_AND_LENGTH(BD_GET(p_FmPort->im.currBdId)); + + while (bdStatus & BD_R_E) /* while there is data in the Rx BD */ + { + p_CurData = BdBufferGet(p_FmPort->im.rxPool.f_PhysToVirt, BD_GET(p_FmPort->im.currBdId)); + + BdBufferSet(p_FmPort->im.rxPool.f_VirtToPhys, BD_GET(p_FmPort->im.currBdId), NULL); + BD_STATUS_AND_LENGTH_SET(BD_GET(p_FmPort->im.currBdId), 0); + + p_FmPort->im.rxPool.f_PutBuf(p_FmPort->im.rxPool.h_BufferPool, + p_CurData, + p_FmPort->im.p_BdShadow[p_FmPort->im.currBdId]); + + p_FmPort->im.currBdId = GetNextBdId(p_FmPort, p_FmPort->im.currBdId); + bdStatus = BD_STATUS_AND_LENGTH(BD_GET(p_FmPort->im.currBdId)); + } + } + else + TxConf(p_FmPort, e_TX_CONF_TYPE_FLUSH); + + FM_MURAM_FreeMem(p_FmPort->im.h_FmMuram, p_FmPort->im.p_FmPortImPram); + + if (p_FmPort->im.p_BdShadow) + XX_Free(p_FmPort->im.p_BdShadow); + + if (p_FmPort->im.p_BdRing) + XX_FreeSmart(p_FmPort->im.p_BdRing); +} + + +t_Error FM_PORT_ConfigIMMaxRxBufLength(t_Handle h_FmPort, uint16_t newVal) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->imEn, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + p_FmPort->im.mrblr = newVal; + + return E_OK; +} + +t_Error FM_PORT_ConfigIMRxBdRingLength(t_Handle h_FmPort, uint16_t newVal) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->imEn, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + p_FmPort->im.bdRingSize = newVal; + + return E_OK; +} + +t_Error FM_PORT_ConfigIMTxBdRingLength(t_Handle h_FmPort, uint16_t newVal) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->imEn, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + p_FmPort->im.bdRingSize = newVal; + + return E_OK; +} + +t_Error FM_PORT_ConfigIMFmanCtrlExternalStructsMemory(t_Handle h_FmPort, + uint8_t memId, + uint32_t memAttributes) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->imEn, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + p_FmPort->im.fwExtStructsMemId = memId; + p_FmPort->im.fwExtStructsMemAttr = memAttributes; + + return E_OK; +} + +t_Error FM_PORT_ConfigIMPolling(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->imEn, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + if((p_FmPort->portType != e_FM_PORT_TYPE_RX_10G) && (p_FmPort->portType != e_FM_PORT_TYPE_RX)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("Available for Rx ports only")); + + if (!FmIsMaster(p_FmPort->h_Fm)) + RETURN_ERROR(MAJOR, E_INVALID_OPERATION, ("Available on master-partition only;" + "in guest-partitions, IM is always in polling!")); + + p_FmPort->polling = TRUE; + + return E_OK; +} + +t_Error FM_PORT_SetIMExceptions(t_Handle h_FmPort, e_FmPortExceptions exception, bool enable) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + t_Error err; + uint16_t tmpReg16; + uint32_t tmpReg32; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->imEn, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + if(exception == e_FM_PORT_EXCEPTION_IM_BUSY) + { + if(enable) + { + p_FmPort->exceptions |= IM_EV_BSY; + if(p_FmPort->fmanCtrlEventId == (uint8_t)NO_IRQ) + { + /* Allocate, configure and register interrupts */ + err = FmAllocFmanCtrlEventReg(p_FmPort->h_Fm, &p_FmPort->fmanCtrlEventId); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + ASSERT_COND(!(p_FmPort->fmanCtrlEventId & ~IM_RXQD_FPMEVT_SEL_MASK)); + + FmRegisterFmanCtrlIntr(p_FmPort->h_Fm, p_FmPort->fmanCtrlEventId, ImException, (t_Handle)p_FmPort); + tmpReg16 = (uint16_t)((p_FmPort->fmanCtrlEventId & IM_RXQD_FPMEVT_SEL_MASK) | IM_RXQD_BSYINTM); + tmpReg32 = IM_EV_BSY; + } + else + { + tmpReg16 = (uint16_t)(GET_UINT16(p_FmPort->im.p_FmPortImPram->rxQd.gen) | IM_RXQD_BSYINTM); + tmpReg32 = FmGetFmanCtrlIntr(p_FmPort->h_Fm, p_FmPort->fmanCtrlEventId) | IM_EV_BSY; + } + + WRITE_UINT16(p_FmPort->im.p_FmPortImPram->rxQd.gen, tmpReg16); + FmSetFmanCtrlIntr(p_FmPort->h_Fm, p_FmPort->fmanCtrlEventId, tmpReg32); + } + else + { + p_FmPort->exceptions &= ~IM_EV_BSY; + if (!p_FmPort->exceptions && p_FmPort->polling) + { + FmFreeFmanCtrlEventReg(p_FmPort->h_Fm, p_FmPort->fmanCtrlEventId); + FmUnregisterFmanCtrlIntr(p_FmPort->h_Fm, p_FmPort->fmanCtrlEventId); + FmSetFmanCtrlIntr(p_FmPort->h_Fm, p_FmPort->fmanCtrlEventId, 0); + WRITE_UINT16(p_FmPort->im.p_FmPortImPram->rxQd.gen, 0); + p_FmPort->fmanCtrlEventId = (uint8_t)NO_IRQ; + } + else + { + tmpReg16 = (uint16_t)(GET_UINT16(p_FmPort->im.p_FmPortImPram->rxQd.gen) & ~IM_RXQD_BSYINTM); + WRITE_UINT16(p_FmPort->im.p_FmPortImPram->rxQd.gen, tmpReg16); + tmpReg32 = FmGetFmanCtrlIntr(p_FmPort->h_Fm, p_FmPort->fmanCtrlEventId) & ~IM_EV_BSY; + FmSetFmanCtrlIntr(p_FmPort->h_Fm, p_FmPort->fmanCtrlEventId, tmpReg32); + } + } + } + else + RETURN_ERROR(MINOR, E_INVALID_SELECTION, ("Invalid exception.")); + + return E_OK; +} + +t_Error FM_PORT_ImTx( t_Handle h_FmPort, + uint8_t *p_Data, + uint16_t length, + bool lastBuffer, + t_Handle h_BufContext) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + uint16_t nextBdId; + uint32_t bdStatus, nextBdStatus; + bool firstBuffer; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->imEn, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + bdStatus = BD_STATUS_AND_LENGTH(BD_GET(p_FmPort->im.currBdId)); + nextBdId = GetNextBdId(p_FmPort, p_FmPort->im.currBdId); + nextBdStatus = BD_STATUS_AND_LENGTH(BD_GET(nextBdId)); + + if (!(bdStatus & BD_R_E) && !(nextBdStatus & BD_R_E)) + { + /* Confirm the current BD - BD is available */ + if ((bdStatus & BD_LENGTH_MASK) && (p_FmPort->im.f_TxConf)) + p_FmPort->im.f_TxConf (p_FmPort->h_App, + BdBufferGet(XX_PhysToVirt, BD_GET(p_FmPort->im.currBdId)), + 0, + p_FmPort->im.p_BdShadow[p_FmPort->im.currBdId]); + + bdStatus = length; + + /* if this is the first BD of a frame */ + if (p_FmPort->im.firstBdOfFrameId == IM_ILEGAL_BD_ID) + { + firstBuffer = TRUE; + p_FmPort->im.txFirstBdStatus = (bdStatus | BD_R_E); + + if (!lastBuffer) + p_FmPort->im.firstBdOfFrameId = p_FmPort->im.currBdId; + } + else + firstBuffer = FALSE; + + BdBufferSet(XX_VirtToPhys, BD_GET(p_FmPort->im.currBdId), p_Data); + p_FmPort->im.p_BdShadow[p_FmPort->im.currBdId] = h_BufContext; + + /* deal with last */ + if (lastBuffer) + { + /* if single buffer frame */ + if (firstBuffer) + BD_STATUS_AND_LENGTH_SET(BD_GET(p_FmPort->im.currBdId), p_FmPort->im.txFirstBdStatus | BD_L); + else + { + /* Set the last BD of the frame */ + BD_STATUS_AND_LENGTH_SET (BD_GET(p_FmPort->im.currBdId), (bdStatus | BD_R_E | BD_L)); + /* Set the first BD of the frame */ + BD_STATUS_AND_LENGTH_SET(BD_GET(p_FmPort->im.firstBdOfFrameId), p_FmPort->im.txFirstBdStatus); + p_FmPort->im.firstBdOfFrameId = IM_ILEGAL_BD_ID; + } + WRITE_UINT16(p_FmPort->im.p_FmPortImPram->txQd.offsetIn, (uint16_t)(GetNextBdId(p_FmPort, p_FmPort->im.currBdId)<<4)); + } + else if (!firstBuffer) /* mid frame buffer */ + BD_STATUS_AND_LENGTH_SET (BD_GET(p_FmPort->im.currBdId), bdStatus | BD_R_E); + + p_FmPort->im.currBdId = GetNextBdId(p_FmPort, p_FmPort->im.currBdId); + } + else + { + /* Discard current frame. Return error. */ + if (p_FmPort->im.firstBdOfFrameId != IM_ILEGAL_BD_ID) + { + /* Error: No free BD */ + /* Response: Discard current frame. Return error. */ + uint16_t cleanBdId = p_FmPort->im.firstBdOfFrameId; + + ASSERT_COND(p_FmPort->im.firstBdOfFrameId != p_FmPort->im.currBdId); + + /* Since firstInFrame is not NULL, one buffer at least has already been + inserted into the BD ring. Using do-while covers the situation of a + frame spanned throughout the whole Tx BD ring (p_CleanBd is incremented + prior to testing whether or not it's equal to TxBd). */ + do + { + BD_STATUS_AND_LENGTH_SET(BD_GET(cleanBdId), 0); + /* Advance BD pointer */ + cleanBdId = GetNextBdId(p_FmPort, cleanBdId); + } while (cleanBdId != p_FmPort->im.currBdId); + + p_FmPort->im.currBdId = cleanBdId; + p_FmPort->im.firstBdOfFrameId = IM_ILEGAL_BD_ID; + } + + return ERROR_CODE(E_FULL); + } + + return E_OK; +} + +void FM_PORT_ImTxConf(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN(p_FmPort->imEn, E_INVALID_STATE); + SANITY_CHECK_RETURN(!p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + TxConf(p_FmPort, e_TX_CONF_TYPE_CALLBACK); +} + +t_Error FM_PORT_ImRx(t_Handle h_FmPort) +{ + t_FmPort *p_FmPort = (t_FmPort*)h_FmPort; + + SANITY_CHECK_RETURN_ERROR(p_FmPort, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmPort->imEn, E_INVALID_STATE); + SANITY_CHECK_RETURN_ERROR(!p_FmPort->p_FmPortDriverParam, E_INVALID_HANDLE); + + return FmPortImRx(p_FmPort); +} --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/Rtc/Makefile +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/Rtc/Makefile @@ -0,0 +1,15 @@ +# +# Makefile for the Freescale Ethernet controllers +# +EXTRA_CFLAGS += -DVERSION=\"\" +# +#Include netcomm SW specific definitions +include $(srctree)/drivers/net/dpa/NetCommSw/ncsw_config.mk + +NCSW_FM_INC = $(srctree)/drivers/net/dpa/NetCommSw/Peripherals/FM/inc + +EXTRA_CFLAGS += -I$(NCSW_FM_INC) + +obj-y += fsl-ncsw-RTC.o + +fsl-ncsw-RTC-objs := fm_rtc.o --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/Rtc/fm_rtc.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/Rtc/fm_rtc.c @@ -0,0 +1,891 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fm_rtc.c + + @Description FM RTC driver implementation. + + @Cautions None +*//***************************************************************************/ + +#include "error_ext.h" +#include "debug_ext.h" +#include "string_ext.h" +#include "part_ext.h" +#include "xx_ext.h" +#include "ncsw_ext.h" + +#include "fm_rtc.h" +#include "fm_common.h" + + +/*****************************************************************************/ +static void SetDefaultParam(t_FmRtc *p_Rtc) +{ + t_FmRtcDriverParam *p_RtcDriverParam = p_Rtc->p_RtcDriverParam; + int i; + + p_Rtc->outputClockDivisor = DEFAULT_outputClockDivisor; + p_Rtc->p_RtcDriverParam->bypass = DEFAULT_bypass; + p_RtcDriverParam->srcClk = DEFAULT_srcClock; + p_RtcDriverParam->invertInputClkPhase = DEFAULT_invertInputClkPhase; + p_RtcDriverParam->invertOutputClkPhase = DEFAULT_invertOutputClkPhase; + p_RtcDriverParam->pulseRealign = DEFAULT_pulseRealign; + for (i=0; i < FM_RTC_NUM_OF_ALARMS; i++) + { + p_RtcDriverParam->alarmPolarity[i] = DEFAULT_alarmPolarity; + } + for (i=0; i < FM_RTC_NUM_OF_EXT_TRIGGERS; i++) + { + p_RtcDriverParam->triggerPolarity[i] = DEFAULT_triggerPolarity; + } + p_Rtc->clockPeriodNanoSec = DEFAULT_clockPeriod; /* 1 usec */ +} + +/*****************************************************************************/ +static t_Error CheckInitParameters(t_FmRtc *p_Rtc) +{ + t_FmRtcDriverParam *p_RtcDriverParam = p_Rtc->p_RtcDriverParam; + int i; + + if ((p_RtcDriverParam->srcClk != e_FM_RTC_SOURCE_CLOCK_EXTERNAL) && + (p_RtcDriverParam->srcClk != e_FM_RTC_SOURCE_CLOCK_SYSTEM) && + (p_RtcDriverParam->srcClk != e_FM_RTC_SOURCE_CLOCK_OSCILATOR)) + RETURN_ERROR(MAJOR, E_INVALID_CLOCK, ("Source clock undefined")); + + if (p_Rtc->outputClockDivisor == 0) + { + RETURN_ERROR(MAJOR, E_INVALID_VALUE, + ("Divisor for output clock (should be positive)")); + } + + for (i=0; i < FM_RTC_NUM_OF_ALARMS; i++) + { + if ((p_RtcDriverParam->alarmPolarity[i] != e_FM_RTC_ALARM_POLARITY_ACTIVE_LOW) && + (p_RtcDriverParam->alarmPolarity[i] != e_FM_RTC_ALARM_POLARITY_ACTIVE_HIGH)) + { + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("Alarm %d signal polarity", i)); + } + } + for (i=0; i < FM_RTC_NUM_OF_EXT_TRIGGERS; i++) + { + if ((p_RtcDriverParam->triggerPolarity[i] != e_FM_RTC_TRIGGER_ON_FALLING_EDGE) && + (p_RtcDriverParam->triggerPolarity[i] != e_FM_RTC_TRIGGER_ON_RISING_EDGE)) + { + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("Trigger %d signal polarity", i)); + } + } + +#ifdef FM_1588_SRC_CLK_ERRATA_FMAN1 + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_Rtc->h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)&& + ((p_RtcDriverParam->srcClk==e_FM_RTC_SOURCE_CLOCK_SYSTEM) && p_RtcDriverParam->invertInputClkPhase)) + RETURN_ERROR(MAJOR, E_NOT_SUPPORTED, ("Can not use invertInputClkPhase when source clock is e_FM_RTC_SOURCE_CLOCK_SYSTEM")); + } +#endif /* FM_1588_SRC_CLK_ERRATA_FMAN1 */ + + return E_OK; +} + +/*****************************************************************************/ +static void RtcExceptions(t_Handle h_FmRtc) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + t_FmRtcMemMap *p_MemMap; + register uint32_t events; + + ASSERT_COND(p_Rtc); + p_MemMap = p_Rtc->p_MemMap; + + /* Get valid events */ + events = GET_UINT32(p_MemMap->tmr_tevent); + events &= GET_UINT32(p_MemMap->tmr_temask); + + /* Clear event bits */ + WRITE_UINT32(p_MemMap->tmr_tevent, events); + + if (events & TMR_TEVENT_ALM1) + { + if(p_Rtc->alarmParams[0].clearOnExpiration) + { + WRITE_UINT32(p_MemMap->tmr_alarm[0].tmr_alarm_l, 0); + WRITE_UINT32(p_MemMap->tmr_temask, GET_UINT32(p_MemMap->tmr_temask) & ~TMR_TEVENT_ALM1); + } + ASSERT_COND(p_Rtc->alarmParams[0].f_AlarmCallback); + p_Rtc->alarmParams[0].f_AlarmCallback(p_Rtc->h_App, 0); + } + if (events & TMR_TEVENT_ALM2) + { + if(p_Rtc->alarmParams[1].clearOnExpiration) + { + WRITE_UINT32(p_MemMap->tmr_alarm[1].tmr_alarm_l, 0); + WRITE_UINT32(p_MemMap->tmr_temask, GET_UINT32(p_MemMap->tmr_temask) & ~TMR_TEVENT_ALM2); + } + ASSERT_COND(p_Rtc->alarmParams[1].f_AlarmCallback); + p_Rtc->alarmParams[1].f_AlarmCallback(p_Rtc->h_App, 1); + } + if (events & TMR_TEVENT_PP1) + { + ASSERT_COND(p_Rtc->periodicPulseParams[0].f_PeriodicPulseCallback); + p_Rtc->periodicPulseParams[0].f_PeriodicPulseCallback(p_Rtc->h_App, 0); + } + if (events & TMR_TEVENT_PP2) + { + ASSERT_COND(p_Rtc->periodicPulseParams[1].f_PeriodicPulseCallback); + p_Rtc->periodicPulseParams[1].f_PeriodicPulseCallback(p_Rtc->h_App, 1); + } + if (events & TMR_TEVENT_ETS1) + { + ASSERT_COND(p_Rtc->externalTriggerParams[0].f_ExternalTriggerCallback); + p_Rtc->externalTriggerParams[0].f_ExternalTriggerCallback(p_Rtc->h_App, 0); + } + if (events & TMR_TEVENT_ETS2) + { + ASSERT_COND(p_Rtc->externalTriggerParams[1].f_ExternalTriggerCallback); + p_Rtc->externalTriggerParams[1].f_ExternalTriggerCallback(p_Rtc->h_App, 1); + } +} + + +/*****************************************************************************/ +t_Handle FM_RTC_Config(t_FmRtcParams *p_FmRtcParam) +{ + t_FmRtc *p_Rtc; + + SANITY_CHECK_RETURN_VALUE(p_FmRtcParam, E_NULL_POINTER, NULL); + + /* Allocate memory for the FM RTC driver parameters */ + p_Rtc = (t_FmRtc *)XX_Malloc(sizeof(t_FmRtc)); + if (!p_Rtc) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM RTC driver structure")); + return NULL; + } + + memset(p_Rtc, 0, sizeof(t_FmRtc)); + + /* Allocate memory for the FM RTC driver parameters */ + p_Rtc->p_RtcDriverParam = (t_FmRtcDriverParam *)XX_Malloc(sizeof(t_FmRtcDriverParam)); + if (!p_Rtc->p_RtcDriverParam) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM RTC driver parameters")); + XX_Free(p_Rtc); + return NULL; + } + + memset(p_Rtc->p_RtcDriverParam, 0, sizeof(t_FmRtcDriverParam)); + + /* Store RTC configuration parameters */ + p_Rtc->h_Fm = p_FmRtcParam->h_Fm; + + /* Set default RTC configuration parameters */ + SetDefaultParam(p_Rtc); + + /* Store RTC parameters in the RTC control structure */ + p_Rtc->p_MemMap = (t_FmRtcMemMap *)UINT_TO_PTR(p_FmRtcParam->baseAddress); + p_Rtc->h_App = p_FmRtcParam->h_App; + + return p_Rtc; +} + +/*****************************************************************************/ +t_Error FM_RTC_Init(t_Handle h_FmRtc) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + t_FmRtcDriverParam *p_RtcDriverParam; + t_FmRtcMemMap *p_MemMap; + uint32_t freqCompensation; + uint32_t tmrCtrl; + int i; + uint64_t tmpDouble; + + p_RtcDriverParam = p_Rtc->p_RtcDriverParam; + p_MemMap = p_Rtc->p_MemMap; + + if(CheckInitParameters(p_Rtc)!=E_OK) + RETURN_ERROR(MAJOR, E_CONFLICT, + ("Init Parameters are not Valid")); + + /* TODO A check must be added here, that no timestamping MAC's + * are working in this stage. */ + WRITE_UINT32(p_MemMap->tmr_ctrl, TMR_CTRL_TMSR); + XX_UDelay(10); + WRITE_UINT32(p_MemMap->tmr_ctrl, 0); + + /* Set the source clock */ + switch (p_RtcDriverParam->srcClk) + { + case e_FM_RTC_SOURCE_CLOCK_SYSTEM: + tmrCtrl = TMR_CTRL_CKSEL_MAC_CLK; + break; + case e_FM_RTC_SOURCE_CLOCK_OSCILATOR: + tmrCtrl = TMR_CTRL_CKSEL_OSC_CLK; + break; + default: + /* Use a clock from the External TMR reference clock.*/ + tmrCtrl = TMR_CTRL_CKSEL_EXT_CLK; + break; + } + + /* whatever period the user picked, the timestamp will advance in '1' every time + * the period passed. */ + tmrCtrl |= ((1 << TMR_CTRL_TCLK_PERIOD_SHIFT) & TMR_CTRL_TCLK_PERIOD_MASK); + + if (p_RtcDriverParam->invertInputClkPhase) + tmrCtrl |= TMR_CTRL_CIPH; + if (p_RtcDriverParam->invertOutputClkPhase) + tmrCtrl |= TMR_CTRL_COPH; + + for (i=0; i < FM_RTC_NUM_OF_ALARMS; i++) + { + if (p_RtcDriverParam->alarmPolarity[i] == e_FM_RTC_ALARM_POLARITY_ACTIVE_LOW) + tmrCtrl |= (TMR_CTRL_ALMP1 >> i); + } + + for (i=0; i < FM_RTC_NUM_OF_EXT_TRIGGERS; i++) + if (p_RtcDriverParam->triggerPolarity[i] == e_FM_RTC_TRIGGER_ON_FALLING_EDGE) + tmrCtrl |= (TMR_CTRL_ETEP1 << i); + + if (!p_RtcDriverParam->timerSlaveMode && p_Rtc->p_RtcDriverParam->bypass) + tmrCtrl |= TMR_CTRL_BYP; + + WRITE_UINT32(p_MemMap->tmr_ctrl, tmrCtrl); + + for (i=0; i < FM_RTC_NUM_OF_ALARMS; i++) + { + /* Clear TMR_ALARM registers */ + WRITE_UINT32(p_MemMap->tmr_alarm[i].tmr_alarm_l, 0xFFFFFFFF); + WRITE_UINT32(p_MemMap->tmr_alarm[i].tmr_alarm_h, 0xFFFFFFFF); + } + + /* Clear TMR_TEVENT */ + WRITE_UINT32(p_MemMap->tmr_tevent, TMR_TEVENT_ALL); + + /* Initialize TMR_TEMASK */ + WRITE_UINT32(p_MemMap->tmr_temask, 0); + + + /* find source clock frequency in Mhz */ + if (p_Rtc->p_RtcDriverParam->srcClk != e_FM_RTC_SOURCE_CLOCK_SYSTEM) + p_Rtc->srcClkFreqMhz = p_Rtc->p_RtcDriverParam->extSrcClkFreq; + else + p_Rtc->srcClkFreqMhz = (uint32_t)(FmGetClockFreq(p_Rtc->h_Fm)/2); + + /* if timer in Master mode Initialize TMR_CTRL */ + /* We want the counter (TMR_CNT) to count in nano-seconds */ + if (!p_RtcDriverParam->timerSlaveMode && p_Rtc->p_RtcDriverParam->bypass) + { + p_Rtc->clockPeriodNanoSec = (1000 / p_Rtc->srcClkFreqMhz); + } + else + { + /* Initialize TMR_ADD with the initial frequency compensation value: + freqCompensation = (2^32 / frequency ratio) */ + /* frequency ratio = sorce clock/rtc clock = + * (p_Rtc->srcClkFreqMhz*1000000))/ 1/(p_Rtc->clockPeriodNanoSec * 1000000000) */ + freqCompensation = (uint32_t)DIV_CEIL(ACCUMULATOR_OVERFLOW * 1000, + p_Rtc->clockPeriodNanoSec * p_Rtc->srcClkFreqMhz); + WRITE_UINT32(p_MemMap->tmr_add, freqCompensation); + } + /* check the legality of the relation between source and destination clocks */ + /* should be larger than 1.0001 */ + tmpDouble = 10000 * (uint64_t)p_Rtc->clockPeriodNanoSec * (uint64_t)p_Rtc->srcClkFreqMhz; + if((tmpDouble) <= 10001) + RETURN_ERROR(MAJOR, E_CONFLICT, + ("Invalid relation between source and destination clocks. Should be larger than 1.0001")); + + + for (i=0; i < 2; i++) + /* Clear TMR_FIPER registers */ + WRITE_UINT32(p_MemMap->tmr_fiper[i], 0xFFFFFFFF); + + /* Initialize TMR_PRSC */ + WRITE_UINT32(p_MemMap->tmr_prsc, p_Rtc->outputClockDivisor); + + /* Clear TMR_OFF */ + WRITE_UINT32(p_MemMap->tmr_off_l, 0); + WRITE_UINT32(p_MemMap->tmr_off_h, 0); + + /* Register the FM RTC interrupt */ + FmRegisterIntr(p_Rtc->h_Fm, e_FM_MOD_TMR, 0, e_FM_INTR_TYPE_NORMAL, RtcExceptions , p_Rtc); + + /* Free parameters structures */ + XX_Free(p_Rtc->p_RtcDriverParam); + p_Rtc->p_RtcDriverParam = NULL; + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_Free(t_Handle h_FmRtc) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + + if (p_Rtc->p_RtcDriverParam) + { + XX_Free(p_Rtc->p_RtcDriverParam); + } + else + { + FM_RTC_Disable(h_FmRtc); + } + + /* Unregister FM RTC interrupt */ + FmUnregisterIntr(p_Rtc->h_Fm, e_FM_MOD_TMR, 0, e_FM_INTR_TYPE_NORMAL); + XX_Free(p_Rtc); + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_ConfigSourceClock(t_Handle h_FmRtc, + e_FmSrcClk srcClk, + uint32_t freqInMhz) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + p_Rtc->p_RtcDriverParam->srcClk = srcClk; + if(srcClk != e_FM_RTC_SOURCE_CLOCK_SYSTEM) + p_Rtc->p_RtcDriverParam->extSrcClkFreq = freqInMhz; + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_ConfigPeriod(t_Handle h_FmRtc, uint32_t period) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + p_Rtc->clockPeriodNanoSec = period; + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_ConfigFrequencyBypass(t_Handle h_FmRtc, bool enabled) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + p_Rtc->p_RtcDriverParam->bypass = enabled; + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_ConfigInvertedInputClockPhase(t_Handle h_FmRtc, bool inverted) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + p_Rtc->p_RtcDriverParam->invertInputClkPhase = inverted; + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_ConfigInvertedOutputClockPhase(t_Handle h_FmRtc, bool inverted) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + p_Rtc->p_RtcDriverParam->invertOutputClkPhase = inverted; + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_ConfigOutputClockDivisor(t_Handle h_FmRtc, uint16_t divisor) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + p_Rtc->outputClockDivisor = divisor; + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_ConfigPulseRealignment(t_Handle h_FmRtc, bool enable) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + p_Rtc->p_RtcDriverParam->pulseRealign = enable; + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_ConfigAlarmPolarity(t_Handle h_FmRtc, + uint8_t alarmId, + e_FmRtcAlarmPolarity alarmPolarity) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + if (alarmId >= FM_RTC_NUM_OF_ALARMS) + { + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("Alarm ID")); + } + + p_Rtc->p_RtcDriverParam->alarmPolarity[alarmId] = alarmPolarity; + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_ConfigExternalTriggerPolarity(t_Handle h_FmRtc, + uint8_t triggerId, + e_FmRtcTriggerPolarity triggerPolarity) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + if (triggerId >= FM_RTC_NUM_OF_EXT_TRIGGERS) + { + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("External trigger ID")); + } + + p_Rtc->p_RtcDriverParam->triggerPolarity[triggerId] = triggerPolarity; + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_Enable(t_Handle h_FmRtc, bool resetClock) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + uint32_t tmrCtrl; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + tmrCtrl = GET_UINT32(p_Rtc->p_MemMap->tmr_ctrl); + + /* TODO A check must be added here, that no timestamping MAC's + * are working in this stage. */ + if (resetClock) + { + WRITE_UINT32(p_Rtc->p_MemMap->tmr_ctrl, (tmrCtrl | TMR_CTRL_TMSR)); + + XX_UDelay(10); + /* Clear TMR_OFF */ + WRITE_UINT32(p_Rtc->p_MemMap->tmr_off_l, 0); + WRITE_UINT32(p_Rtc->p_MemMap->tmr_off_h, 0); + } + + WRITE_UINT32(p_Rtc->p_MemMap->tmr_ctrl, (tmrCtrl | TMR_CTRL_TE)); + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_Disable(t_Handle h_FmRtc) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + uint32_t tmrCtrl; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + /* TODO A check must be added here, that no timestamping MAC's + * are working in this stage. */ + tmrCtrl = GET_UINT32(p_Rtc->p_MemMap->tmr_ctrl); + WRITE_UINT32(p_Rtc->p_MemMap->tmr_ctrl, (tmrCtrl & ~(TMR_CTRL_TE))); + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_SetClockOffset(t_Handle h_FmRtc, int64_t offset) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + /* TMR_OFF_L must be written first */ + WRITE_UINT32(p_Rtc->p_MemMap->tmr_off_l, (uint32_t)offset); + WRITE_UINT32(p_Rtc->p_MemMap->tmr_off_h, (uint32_t)(offset >> 32)); + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_SetAlarm(t_Handle h_FmRtc, t_FmRtcAlarmParams *p_FmRtcAlarmParams) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + t_FmRtcMemMap *p_MemMap; + uint32_t tmpReg; + uint64_t tmpAlarm; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + p_MemMap = p_Rtc->p_MemMap; + + if (p_FmRtcAlarmParams->alarmId >= FM_RTC_NUM_OF_ALARMS) + { + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("Alarm ID")); + } + + if(p_FmRtcAlarmParams->alarmTime < p_Rtc->clockPeriodNanoSec) + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("Alarm time must be equal or larger than RTC period - %d nanoseconds", p_Rtc->clockPeriodNanoSec)); + if(p_FmRtcAlarmParams->alarmTime % (uint64_t)p_Rtc->clockPeriodNanoSec) + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("Alarm time must be a multiple of RTC period - %d nanoseconds", p_Rtc->clockPeriodNanoSec)); + tmpAlarm = p_FmRtcAlarmParams->alarmTime/(uint64_t)p_Rtc->clockPeriodNanoSec; + + /* TMR_ALARM_L must be written first */ + WRITE_UINT32(p_MemMap->tmr_alarm[p_FmRtcAlarmParams->alarmId].tmr_alarm_l, (uint32_t)tmpAlarm); + WRITE_UINT32(p_MemMap->tmr_alarm[p_FmRtcAlarmParams->alarmId].tmr_alarm_h, + (uint32_t)(tmpAlarm >> 32)); + + if (p_FmRtcAlarmParams->f_AlarmCallback) + { + p_Rtc->alarmParams[p_FmRtcAlarmParams->alarmId].f_AlarmCallback = p_FmRtcAlarmParams->f_AlarmCallback; + p_Rtc->alarmParams[p_FmRtcAlarmParams->alarmId].clearOnExpiration = p_FmRtcAlarmParams->clearOnExpiration; + + if(p_FmRtcAlarmParams->alarmId == 0) + tmpReg = TMR_TEVENT_ALM1; + else + tmpReg = TMR_TEVENT_ALM2; + WRITE_UINT32(p_MemMap->tmr_temask, GET_UINT32(p_MemMap->tmr_temask) | tmpReg); + } + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_SetPeriodicPulse(t_Handle h_FmRtc, t_FmRtcPeriodicPulseParams *p_FmRtcPeriodicPulseParams) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + t_FmRtcMemMap *p_MemMap; + uint32_t tmpReg; + uint64_t tmpFiper; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + p_MemMap = p_Rtc->p_MemMap; + + if (p_FmRtcPeriodicPulseParams->periodicPulseId >= FM_RTC_NUM_OF_PERIODIC_PULSES) + { + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("Periodic pulse ID")); + } + if(GET_UINT32(p_MemMap->tmr_ctrl) & TMR_CTRL_TE) + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("Can't set Periodic pulse when RTC is enabled.")); + if(p_FmRtcPeriodicPulseParams->periodicPulsePeriod < p_Rtc->clockPeriodNanoSec) + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("Periodic pulse must be equal or larger than RTC period - %d nanoseconds", p_Rtc->clockPeriodNanoSec)); + if(p_FmRtcPeriodicPulseParams->periodicPulsePeriod % (uint64_t)p_Rtc->clockPeriodNanoSec) + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("Periodic pulse must be a multiple of RTC period - %d nanoseconds", p_Rtc->clockPeriodNanoSec)); + tmpFiper = p_FmRtcPeriodicPulseParams->periodicPulsePeriod/(uint64_t)p_Rtc->clockPeriodNanoSec; + if(tmpFiper & 0xffffffff00000000LL) + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("Periodic pulse/RTC Period must be smaller than 4294967296", p_Rtc->clockPeriodNanoSec)); + + WRITE_UINT32(p_MemMap->tmr_fiper[p_FmRtcPeriodicPulseParams->periodicPulseId], (uint32_t)tmpFiper); + + if (p_FmRtcPeriodicPulseParams->f_PeriodicPulseCallback) + { + p_Rtc->periodicPulseParams[p_FmRtcPeriodicPulseParams->periodicPulseId].f_PeriodicPulseCallback = + p_FmRtcPeriodicPulseParams->f_PeriodicPulseCallback; + + if(p_FmRtcPeriodicPulseParams->periodicPulseId == 0) + tmpReg = TMR_TEVENT_PP1; + else + tmpReg = TMR_TEVENT_PP2; + WRITE_UINT32(p_MemMap->tmr_temask, GET_UINT32(p_MemMap->tmr_temask) | tmpReg); + } + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_ClearPeriodicPulse(t_Handle h_FmRtc, uint8_t periodicPulseId) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + uint32_t tmpReg; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + if (periodicPulseId >= FM_RTC_NUM_OF_PERIODIC_PULSES) + { + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("Periodic pulse ID")); + } + + p_Rtc->periodicPulseParams[periodicPulseId].f_PeriodicPulseCallback = NULL; + + if(periodicPulseId == 0) + tmpReg = TMR_TEVENT_PP1; + else + tmpReg = TMR_TEVENT_PP2; + WRITE_UINT32(p_Rtc->p_MemMap->tmr_temask, GET_UINT32(p_Rtc->p_MemMap->tmr_temask) & ~tmpReg); + + if (GET_UINT32(p_Rtc->p_MemMap->tmr_ctrl) & TMR_CTRL_FS) + WRITE_UINT32(p_Rtc->p_MemMap->tmr_ctrl, GET_UINT32(p_Rtc->p_MemMap->tmr_ctrl) & ~TMR_CTRL_FS); + + WRITE_UINT32(p_Rtc->p_MemMap->tmr_fiper[periodicPulseId], 0xFFFFFFFF); + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_SetExternalTrigger(t_Handle h_FmRtc, t_FmRtcExternalTriggerParams *p_FmRtcExternalTriggerParams) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + uint32_t tmpReg; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + if (p_FmRtcExternalTriggerParams->externalTriggerId >= FM_RTC_NUM_OF_EXT_TRIGGERS) + { + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("External Trigger ID")); + } + + if (p_FmRtcExternalTriggerParams->f_ExternalTriggerCallback) + { + p_Rtc->externalTriggerParams[p_FmRtcExternalTriggerParams->externalTriggerId].f_ExternalTriggerCallback = p_FmRtcExternalTriggerParams->f_ExternalTriggerCallback; + if(p_FmRtcExternalTriggerParams->externalTriggerId == 0) + tmpReg = TMR_TEVENT_ETS1; + else + tmpReg = TMR_TEVENT_ETS2; + WRITE_UINT32(p_Rtc->p_MemMap->tmr_temask, GET_UINT32(p_Rtc->p_MemMap->tmr_temask) | tmpReg); + } + + if(p_FmRtcExternalTriggerParams->usePulseAsInput) + { + if(p_FmRtcExternalTriggerParams->externalTriggerId == 0) + tmpReg = TMR_CTRL_PP1L; + else + tmpReg = TMR_CTRL_PP2L; + WRITE_UINT32(p_Rtc->p_MemMap->tmr_ctrl, GET_UINT32(p_Rtc->p_MemMap->tmr_ctrl) | tmpReg); + } + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_ClearExternalTrigger(t_Handle h_FmRtc, uint8_t externalTriggerId) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + uint32_t tmpReg; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + if (externalTriggerId >= FM_RTC_NUM_OF_EXT_TRIGGERS) + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("External Trigger ID")); + + p_Rtc->externalTriggerParams[externalTriggerId].f_ExternalTriggerCallback = NULL; + + if(externalTriggerId == 0) + tmpReg = TMR_TEVENT_ETS1; + else + tmpReg = TMR_TEVENT_ETS2; + WRITE_UINT32(p_Rtc->p_MemMap->tmr_temask, GET_UINT32(p_Rtc->p_MemMap->tmr_temask) & ~tmpReg); + + if(externalTriggerId == 0) + tmpReg = TMR_CTRL_PP1L; + else + tmpReg = TMR_CTRL_PP2L; + + if (GET_UINT32(p_Rtc->p_MemMap->tmr_ctrl) & tmpReg) + WRITE_UINT32(p_Rtc->p_MemMap->tmr_ctrl, GET_UINT32(p_Rtc->p_MemMap->tmr_ctrl) & ~tmpReg); + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_GetExternalTriggerTimeStamp(t_Handle h_FmRtc, + uint8_t triggerId, + uint64_t *p_TimeStamp) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + uint64_t timeStamp; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + if (triggerId >= FM_RTC_NUM_OF_EXT_TRIGGERS) + { + RETURN_ERROR(MAJOR, E_INVALID_SELECTION, ("External trigger ID")); + } + + timeStamp = (uint64_t)GET_UINT32(p_Rtc->p_MemMap->tmr_etts[triggerId].tmr_etts_l); + timeStamp |= ((uint64_t)GET_UINT32(p_Rtc->p_MemMap->tmr_etts[triggerId].tmr_etts_h) << 32); + + timeStamp = timeStamp*p_Rtc->clockPeriodNanoSec; + *p_TimeStamp = timeStamp; + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_GetCurrentTime(t_Handle h_FmRtc, uint64_t *p_Ts) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + uint64_t time; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + /* TMR_CNT_L must be read first to get an accurate value */ + time = (uint64_t)GET_UINT32(p_Rtc->p_MemMap->tmr_cnt_l); + time |= ((uint64_t)GET_UINT32(p_Rtc->p_MemMap->tmr_cnt_h) << 32); + + time = time*p_Rtc->clockPeriodNanoSec; + + *p_Ts = time; + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_SetCurrentTime(t_Handle h_FmRtc, uint64_t ts) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + ts = ts/p_Rtc->clockPeriodNanoSec; + /* TMR_CNT_L must be written first to get an accurate value */ + WRITE_UINT32(p_Rtc->p_MemMap->tmr_cnt_l, (uint32_t)ts); + WRITE_UINT32(p_Rtc->p_MemMap->tmr_cnt_h, (uint32_t)(ts >> 32)); + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_GetFreqCompensation(t_Handle h_FmRtc, uint32_t *p_Compensation) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + *p_Compensation = (uint32_t) + DIV_CEIL(ACCUMULATOR_OVERFLOW * 1000, + p_Rtc->clockPeriodNanoSec * p_Rtc->srcClkFreqMhz); + + return E_OK; +} + +/*****************************************************************************/ +t_Error FM_RTC_SetFreqCompensation(t_Handle h_FmRtc, uint32_t freqCompensation) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + + SANITY_CHECK_RETURN_ERROR(p_Rtc, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Rtc->p_RtcDriverParam, E_INVALID_STATE); + + /* set the new freqCompensation */ + WRITE_UINT32(p_Rtc->p_MemMap->tmr_add, freqCompensation); + + return E_OK; +} + +/*****************************************************************************/ +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +t_Error FM_RTC_DumpRegs(t_Handle h_FmRtc) +{ + t_FmRtc *p_Rtc = (t_FmRtc *)h_FmRtc; + t_FmRtcMemMap *p_MemMap = p_Rtc->p_MemMap; + int i = 0; + + DECLARE_DUMP; + + if (p_MemMap) + { + + DUMP_TITLE(p_MemMap, ("RTC:")); + DUMP_VAR(p_MemMap, tmr_id); + DUMP_VAR(p_MemMap, tmr_id2); + DUMP_VAR(p_MemMap, tmr_ctrl); + DUMP_VAR(p_MemMap, tmr_tevent); + DUMP_VAR(p_MemMap, tmr_temask); + DUMP_VAR(p_MemMap, tmr_cnt_h); + DUMP_VAR(p_MemMap, tmr_cnt_l); + DUMP_VAR(p_MemMap, tmr_ctrl); + DUMP_VAR(p_MemMap, tmr_add); + DUMP_VAR(p_MemMap, tmr_acc); + DUMP_VAR(p_MemMap, tmr_prsc); + DUMP_VAR(p_MemMap, tmr_off_h); + DUMP_VAR(p_MemMap, tmr_off_l); + + DUMP_SUBSTRUCT_ARRAY(i, 2) + { + DUMP_VAR(p_MemMap, tmr_alarm[i].tmr_alarm_h); + DUMP_VAR(p_MemMap, tmr_alarm[i].tmr_alarm_l); + } + DUMP_SUBSTRUCT_ARRAY(i, 2) + { + DUMP_VAR(p_MemMap, tmr_fiper[i]); + DUMP_VAR(p_MemMap, tmr_fiper[i]); + } + DUMP_SUBSTRUCT_ARRAY(i, 2) + { + DUMP_VAR(p_MemMap, tmr_etts[i].tmr_etts_l); + DUMP_VAR(p_MemMap, tmr_etts[i].tmr_etts_l); + } + } + + return E_OK; +} +#endif /* (defined(DEBUG_ERRORS) && ... */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/Rtc/fm_rtc.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/Rtc/fm_rtc.h @@ -0,0 +1,217 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fm_rtc.h + + @Description Memory map and internal definitions for FM RTC IEEE1588 Timer driver. + + @Cautions None +*//***************************************************************************/ + +#ifndef __FM_RTC_H__ +#define __FM_RTC_H__ + +#include "std_ext.h" +#include "fm_rtc_ext.h" + + +#define __ERR_MODULE__ MODULE_FM_RTC + +/* General definitions */ + +#define NANOSEC_PER_ONE_HZ_TICK 1000000000 +#define MIN_RTC_CLK_FREQ_HZ 1000 +#define MHz 1000000 + +#define ACCUMULATOR_OVERFLOW ((uint64_t)(1LL << 32)) + +/* RTC default values */ +#define DEFAULT_srcClock e_FM_RTC_SOURCE_CLOCK_SYSTEM +#define DEFAULT_bypass FALSE +#define DEFAULT_invertInputClkPhase FALSE +#define DEFAULT_invertOutputClkPhase FALSE +#define DEFAULT_outputClockDivisor 0x00000002 +#define DEFAULT_alarmPolarity e_FM_RTC_ALARM_POLARITY_ACTIVE_HIGH +#define DEFAULT_triggerPolarity e_FM_RTC_TRIGGER_ON_FALLING_EDGE +#define DEFAULT_pulseRealign FALSE +#define DEFAULT_clockPeriod 1000 + +/* FM RTC Registers definitions */ +#define TMR_CTRL_ALMP1 0x80000000 +#define TMR_CTRL_ALMP2 0x40000000 +#define TMR_CTRL_FS 0x10000000 +#define TMR_CTRL_PP1L 0x08000000 +#define TMR_CTRL_PP2L 0x04000000 +#define TMR_CTRL_TCLK_PERIOD_MASK 0x03FF0000 +#define TMR_CTRL_FRD 0x00004000 +#define TMR_CTRL_SLV 0x00002000 +#define TMR_CTRL_ETEP1 0x00000100 +#define TMR_CTRL_COPH 0x00000080 +#define TMR_CTRL_CIPH 0x00000040 +#define TMR_CTRL_TMSR 0x00000020 +#define TMR_CTRL_DBG 0x00000010 +#define TMR_CTRL_BYP 0x00000008 +#define TMR_CTRL_TE 0x00000004 +#define TMR_CTRL_CKSEL_OSC_CLK 0x00000003 +#define TMR_CTRL_CKSEL_MAC_CLK 0x00000001 +#define TMR_CTRL_CKSEL_EXT_CLK 0x00000000 +#define TMR_CTRL_TCLK_PERIOD_SHIFT 16 + +#define TMR_TEVENT_ETS2 0x02000000 +#define TMR_TEVENT_ETS1 0x01000000 +#define TMR_TEVENT_ALM2 0x00020000 +#define TMR_TEVENT_ALM1 0x00010000 +#define TMR_TEVENT_PP1 0x00000080 +#define TMR_TEVENT_PP2 0x00000040 +#define TMR_TEVENT_PP3 0x00000020 +#define TMR_TEVENT_ALL (TMR_TEVENT_ETS2 | TMR_TEVENT_ETS1 | \ + TMR_TEVENT_ALM2 | TMR_TEVENT_ALM1 | \ + TMR_TEVENT_PP1 | TMR_TEVENT_PP2 | TMR_TEVENT_PP3) + +#define TMR_PRSC_OCK_MASK 0x0000FFFF + + +/**************************************************************************//** + @Description Memory Mapped Registers +*//***************************************************************************/ + +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(push,1) +#endif /* defined(__MWERKS__) && ... */ +#define MEM_MAP_START + +/**************************************************************************//** + @Description FM RTC timer alarm +*//***************************************************************************/ +typedef _Packed struct t_TmrAlaram +{ + volatile uint32_t tmr_alarm_h; /**< */ + volatile uint32_t tmr_alarm_l; /**< */ +} _PackedType t_TmrAlaram; + +/**************************************************************************//** + @Description FM RTC timer Ex trigger +*//***************************************************************************/ +typedef _Packed struct t_TmrExtTrigger +{ + volatile uint32_t tmr_etts_h; /**< */ + volatile uint32_t tmr_etts_l; /**< */ +} _PackedType t_TmrExtTrigger; + +typedef _Packed struct +{ + volatile uint32_t tmr_id; /* Module ID and version register */ + volatile uint32_t tmr_id2; /* Module ID and configuration register */ + volatile uint32_t PTP_RESERVED1[30]; + volatile uint32_t tmr_ctrl; /* timer control register */ + volatile uint32_t tmr_tevent; /* timer event register */ + volatile uint32_t tmr_temask; /* timer event mask register */ + volatile uint32_t PTP_RESERVED2[3]; + volatile uint32_t tmr_cnt_h; /* timer counter high register */ + volatile uint32_t tmr_cnt_l; /* timer counter low register */ + volatile uint32_t tmr_add; /* timer drift compensation addend register */ + volatile uint32_t tmr_acc; /* timer accumulator register */ + volatile uint32_t tmr_prsc; /* timer prescale */ + volatile uint32_t PTP_RESERVED3; + volatile uint32_t tmr_off_h; /* timer offset high */ + volatile uint32_t tmr_off_l; /* timer offset low */ + volatile t_TmrAlaram tmr_alarm[FM_RTC_NUM_OF_ALARMS]; /* timer alarm */ + volatile uint32_t PTP_RESERVED4[2]; + volatile uint32_t tmr_fiper[FM_RTC_NUM_OF_PERIODIC_PULSES]; /* timer fixed period interval */ + volatile uint32_t PTP_RESERVED5[2]; + volatile t_TmrExtTrigger tmr_etts[FM_RTC_NUM_OF_EXT_TRIGGERS]; /*time stamp general purpose external */ + volatile uint32_t PTP_RESERVED6[3]; +} _PackedType t_FmRtcMemMap; + +#define MEM_MAP_END +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(pop) +#endif /* defined(__MWERKS__) && ... */ + + +/**************************************************************************//** + @Description RTC FM driver parameters structure. +*//***************************************************************************/ +typedef struct t_FmRtcDriverParam +{ + t_Handle h_Fm; /**< */ + e_FmSrcClk srcClk; /**< */ + uint32_t extSrcClkFreq; /**< */ + uint32_t rtcFreqHz; /**< */ + bool timerSlaveMode; /*Slave/Master Mode*/ + bool invertInputClkPhase; + bool invertOutputClkPhase; + uint32_t eventsMask; + bool bypass; /**< Indicates if frequency compensation is bypassed */ + bool pulseRealign; + e_FmRtcAlarmPolarity alarmPolarity[FM_RTC_NUM_OF_ALARMS]; + e_FmRtcTriggerPolarity triggerPolarity[FM_RTC_NUM_OF_EXT_TRIGGERS]; +} t_FmRtcDriverParam; + +typedef struct t_FmRtcAlarm +{ + t_FmRtcExceptionsCallback *f_AlarmCallback; + bool clearOnExpiration; +} t_FmRtcAlarm; + +typedef struct t_FmRtcPeriodicPulse +{ + t_FmRtcExceptionsCallback *f_PeriodicPulseCallback; +} t_FmRtcPeriodicPulse; + +typedef struct t_FmRtcExternalTrigger +{ + t_FmRtcExceptionsCallback *f_ExternalTriggerCallback; +} t_FmRtcExternalTrigger; + + +/**************************************************************************//** + @Description RTC FM driver control structure. +*//***************************************************************************/ +typedef struct t_FmRtc +{ + t_Part *p_Part; /**< Pointer to the integration device */ + t_Handle h_Fm; + t_Handle h_App; /**< Application handle */ + t_FmRtcMemMap *p_MemMap; /**< Pointer to RTC memory map */ + uint32_t clockPeriodNanoSec; /**< RTC clock period in nano-seconds (for FS mode) */ + uint32_t srcClkFreqMhz; + uint16_t outputClockDivisor; /**< Output clock divisor (for FS mode) */ + t_FmRtcAlarm alarmParams[FM_RTC_NUM_OF_ALARMS]; + t_FmRtcPeriodicPulse periodicPulseParams[FM_RTC_NUM_OF_PERIODIC_PULSES]; + t_FmRtcExternalTrigger externalTriggerParams[FM_RTC_NUM_OF_EXT_TRIGGERS]; + t_FmRtcDriverParam *p_RtcDriverParam; /**< RTC Driver parameters (for Init phase) */ +} t_FmRtc; + + +#endif /* __FM_RTC_H__ */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/fm.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/fm.c @@ -0,0 +1,4605 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fm.c + + @Description FM driver routines implementation. +*//***************************************************************************/ +#include "std_ext.h" +#include "error_ext.h" +#include "xx_ext.h" +#include "string_ext.h" +#include "sprint_ext.h" +#include "debug_ext.h" +#include "fm_muram_ext.h" + +#include "fm_common.h" +#include "fm_ipc.h" +#include "fm.h" + + +/****************************************/ +/* static functions */ +/****************************************/ + +static volatile bool blockingFlag = FALSE; +static void IpcMsgCompletionCB(t_Handle h_Fm, + uint8_t *p_Msg, + uint8_t *p_Reply, + uint32_t replyLength, + t_Error status) +{ + UNUSED(h_Fm);UNUSED(p_Msg);UNUSED(p_Reply);UNUSED(replyLength);UNUSED(status); + blockingFlag = FALSE; +} + +static bool IsFmanCtrlCodeLoaded(t_Fm *p_Fm) +{ + t_FMIramRegs *p_Iram; + + ASSERT_COND(p_Fm); + p_Iram = (t_FMIramRegs *)UINT_TO_PTR(p_Fm->baseAddr + FM_MM_IMEM); + + return (bool)!!(GET_UINT32(p_Iram->iready) & IRAM_READY); +} + +static t_Error CheckFmParameters(t_Fm *p_Fm) +{ + if (IsFmanCtrlCodeLoaded(p_Fm) && !p_Fm->p_FmDriverParam->resetOnInit) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Old FMan CTRL code is loaded; FM must be reset!")); + if(!p_Fm->p_FmDriverParam->dmaAxiDbgNumOfBeats || (p_Fm->p_FmDriverParam->dmaAxiDbgNumOfBeats > DMA_MODE_MAX_AXI_DBG_NUM_OF_BEATS)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("axiDbgNumOfBeats has to be in the range 1 - %d", DMA_MODE_MAX_AXI_DBG_NUM_OF_BEATS)); + if(p_Fm->p_FmDriverParam->dmaCamNumOfEntries % DMA_CAM_UNITS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("dmaCamNumOfEntries has to be divisble by %d", DMA_CAM_UNITS)); + if(!p_Fm->p_FmDriverParam->dmaCamNumOfEntries || (p_Fm->p_FmDriverParam->dmaCamNumOfEntries > DMA_MODE_MAX_CAM_NUM_OF_ENTRIES)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("dmaCamNumOfEntries has to be in the range 1 - %d", DMA_MODE_MAX_CAM_NUM_OF_ENTRIES)); + if(p_Fm->p_FmDriverParam->dmaCommQThresholds.assertEmergency > DMA_THRESH_MAX_COMMQ) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("dmaCommQThresholds.assertEmergency can not be larger than %d", DMA_THRESH_MAX_COMMQ)); + if(p_Fm->p_FmDriverParam->dmaCommQThresholds.clearEmergency > DMA_THRESH_MAX_COMMQ) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("dmaCommQThresholds.clearEmergency can not be larger than %d", DMA_THRESH_MAX_COMMQ)); + if(p_Fm->p_FmDriverParam->dmaCommQThresholds.clearEmergency >= p_Fm->p_FmDriverParam->dmaCommQThresholds.assertEmergency) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("dmaCommQThresholds.clearEmergency must be smaller than dmaCommQThresholds.assertEmergency")); + if(p_Fm->p_FmDriverParam->dmaReadBufThresholds.assertEmergency > DMA_THRESH_MAX_BUF) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("dmaReadBufThresholds.assertEmergency can not be larger than %d", DMA_THRESH_MAX_BUF)); + if(p_Fm->p_FmDriverParam->dmaReadBufThresholds.clearEmergency > DMA_THRESH_MAX_BUF) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("dmaReadBufThresholds.clearEmergency can not be larger than %d", DMA_THRESH_MAX_BUF)); + if(p_Fm->p_FmDriverParam->dmaReadBufThresholds.clearEmergency >= p_Fm->p_FmDriverParam->dmaReadBufThresholds.assertEmergency) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("dmaReadBufThresholds.clearEmergency must be smaller than dmaReadBufThresholds.assertEmergency")); + if(p_Fm->p_FmDriverParam->dmaWriteBufThresholds.assertEmergency > DMA_THRESH_MAX_BUF) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("dmaWriteBufThresholds.assertEmergency can not be larger than %d", DMA_THRESH_MAX_BUF)); + if(p_Fm->p_FmDriverParam->dmaWriteBufThresholds.clearEmergency > DMA_THRESH_MAX_BUF) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("dmaWriteBufThresholds.clearEmergency can not be larger than %d", DMA_THRESH_MAX_BUF)); + if(p_Fm->p_FmDriverParam->dmaWriteBufThresholds.clearEmergency >= p_Fm->p_FmDriverParam->dmaWriteBufThresholds.assertEmergency) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("dmaWriteBufThresholds.clearEmergency must be smaller than dmaWriteBufThresholds.assertEmergency")); + + if(!p_Fm->p_FmStateStruct->fmClkFreq) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("fmClkFreq must be set.")); + if (USEC_TO_CLK(p_Fm->p_FmDriverParam->dmaWatchdog, p_Fm->p_FmStateStruct->fmClkFreq) > DMA_MAX_WATCHDOG) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, + ("dmaWatchdog depends on FM clock. dmaWatchdog(in microseconds) * clk (in Mhz), may not exceed 0x08x", DMA_MAX_WATCHDOG)); + +#ifdef FM_PARTITION_ARRAY + { + t_FmRevisionInfo revInfo; + uint8_t i; + + FM_GetRevision(p_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + for (i=0; ip_FmDriverParam->liodnBasePerPort[i] & ~FM_LIODN_BASE_MASK) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("liodn number is out of range")); + } +#endif /* FM_PARTITION_ARRAY */ + + if(p_Fm->p_FmStateStruct->totalFifoSize % BMI_FIFO_UNITS) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("totalFifoSize number has to be divisible by %d", BMI_FIFO_UNITS)); + if(!p_Fm->p_FmStateStruct->totalFifoSize || (p_Fm->p_FmStateStruct->totalFifoSize > BMI_MAX_FIFO_SIZE)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("totalFifoSize number has to be in the range 256 - %d", BMI_MAX_FIFO_SIZE)); + if(!p_Fm->p_FmStateStruct->totalNumOfTasks || (p_Fm->p_FmStateStruct->totalNumOfTasks > BMI_MAX_NUM_OF_TASKS)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("totalNumOfTasks number has to be in the range 1 - %d", BMI_MAX_NUM_OF_TASKS)); + if(!p_Fm->p_FmStateStruct->maxNumOfOpenDmas || (p_Fm->p_FmStateStruct->maxNumOfOpenDmas > BMI_MAX_NUM_OF_DMAS)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("maxNumOfOpenDmas number has to be in the range 1 - %d", BMI_MAX_NUM_OF_DMAS)); + + if(p_Fm->p_FmDriverParam->thresholds.dispLimit > FPM_MAX_DISP_LIMIT) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("thresholds.dispLimit can't be greater than %d", FPM_MAX_DISP_LIMIT)); + + if(!p_Fm->f_Exception) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Exceptions callback not provided")); + if(!p_Fm->f_BusError) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Exceptions callback not provided")); + + return E_OK; +} + +static void SendIpcIsr(t_Fm *p_Fm, uint32_t macEvent, uint32_t pendingReg) +{ + t_Error err; + t_FmIpcIsr fmIpcIsr; + t_FmIpcMsg msg; + + ASSERT_COND(p_Fm->guestId == NCSW_MASTER_ID); + ASSERT_COND(p_Fm->h_IpcSessions[p_Fm->intrMng[macEvent].guestId]); + if (p_Fm->intrMng[macEvent].guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + msg.msgId = FM_GUEST_ISR; + fmIpcIsr.pendingReg = pendingReg; + fmIpcIsr.boolErr = FALSE; + memcpy(msg.msgBody, &fmIpcIsr, sizeof(fmIpcIsr)); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[p_Fm->intrMng[macEvent].guestId], + (uint8_t*)&msg, + sizeof(msg.msgId) + sizeof(fmIpcIsr), + NULL, + NULL, + NULL, + NULL)) != E_OK) + REPORT_ERROR(MINOR, err, NO_MSG); + return; + } + else + p_Fm->intrMng[macEvent].f_Isr(p_Fm->intrMng[macEvent].h_SrcHandle); +} + +static void BmiErrEvent(t_Fm *p_Fm) +{ + uint32_t event, mask, force; + + event = GET_UINT32(p_Fm->p_FmBmiRegs->fmbm_ievr); + mask = GET_UINT32(p_Fm->p_FmBmiRegs->fmbm_ier); + event &= mask; + + /* clear the forced events */ + force = GET_UINT32(p_Fm->p_FmBmiRegs->fmbm_ifr); + if(force & event) + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_ifr, force & ~event); + + + /* clear the acknowledged events */ + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_ievr, event); + + if(event & BMI_ERR_INTR_EN_PIPELINE_ECC) + p_Fm->f_Exception(p_Fm->h_App,e_FM_EX_BMI_PIPELINE_ECC); + if(event & BMI_ERR_INTR_EN_LIST_RAM_ECC) + p_Fm->f_Exception(p_Fm->h_App,e_FM_EX_BMI_LIST_RAM_ECC); + if(event & BMI_ERR_INTR_EN_STATISTICS_RAM_ECC) + p_Fm->f_Exception(p_Fm->h_App,e_FM_EX_BMI_STATISTICS_RAM_ECC); + if(event & BMI_ERR_INTR_EN_DISPATCH_RAM_ECC) + p_Fm->f_Exception(p_Fm->h_App,e_FM_EX_BMI_DISPATCH_RAM_ECC); +} + +static void QmiErrEvent(t_Fm *p_Fm) +{ + uint32_t event, mask, force; + + event = GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_eie); + mask = GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_eien); + + event &= mask; + + /* clear the forced events */ + force = GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_eif); + if(force & event) + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_eif, force & ~event); + + /* clear the acknowledged events */ + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_eie, event); + + if(event & QMI_ERR_INTR_EN_DOUBLE_ECC) + p_Fm->f_Exception(p_Fm->h_App,e_FM_EX_QMI_DOUBLE_ECC); + if(event & QMI_ERR_INTR_EN_DEQ_FROM_DEF) + p_Fm->f_Exception(p_Fm->h_App,e_FM_EX_QMI_DEQ_FROM_UNKNOWN_PORTID); +} + +static void DmaErrEvent(t_Fm *p_Fm) +{ + uint64_t addr=0; + uint32_t status, mask, tmpReg=0; + uint8_t tnum; + uint8_t hardwarePortId; + uint8_t relativePortId; + uint16_t liodn; + + status = GET_UINT32(p_Fm->p_FmDmaRegs->fmdmsr); + mask = GET_UINT32(p_Fm->p_FmDmaRegs->fmdmmr); + + /* get bus error regs befor clearing BER */ + if ((status & DMA_STATUS_BUS_ERR) && (mask & DMA_MODE_BER)) + { + addr = (uint64_t)GET_UINT32(p_Fm->p_FmDmaRegs->fmdmtal); + addr |= ((uint64_t)(GET_UINT32(p_Fm->p_FmDmaRegs->fmdmtah)) << 32); + + /* get information about the owner of that bus error */ + tmpReg = GET_UINT32(p_Fm->p_FmDmaRegs->fmdmtcid); + } + + /* clear set events */ + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmsr, status); + + if ((status & DMA_STATUS_BUS_ERR) && (mask & DMA_MODE_BER)) + { + hardwarePortId = (uint8_t)(((tmpReg & DMA_TRANSFER_PORTID_MASK) >> DMA_TRANSFER_PORTID_SHIFT)); + HW_PORT_ID_TO_SW_PORT_ID(relativePortId, hardwarePortId); + tnum = (uint8_t)((tmpReg & DMA_TRANSFER_TNUM_MASK) >> DMA_TRANSFER_TNUM_SHIFT); + liodn = (uint16_t)(tmpReg & DMA_TRANSFER_LIODN_MASK); + ASSERT_COND(p_Fm->p_FmStateStruct->portsTypes[hardwarePortId] != e_FM_PORT_TYPE_DUMMY); + p_Fm->f_BusError(p_Fm->h_App, p_Fm->p_FmStateStruct->portsTypes[hardwarePortId], relativePortId, addr, tnum, liodn); + } + if(mask & DMA_MODE_ECC) + { + if (status & DMA_STATUS_READ_ECC) + p_Fm->f_Exception(p_Fm->h_App, e_FM_EX_DMA_READ_ECC); + if (status & DMA_STATUS_SYSTEM_WRITE_ECC) + p_Fm->f_Exception(p_Fm->h_App, e_FM_EX_DMA_SYSTEM_WRITE_ECC); + if (status & DMA_STATUS_FM_WRITE_ECC) + p_Fm->f_Exception(p_Fm->h_App, e_FM_EX_DMA_FM_WRITE_ECC); + } +} + +static void FpmErrEvent(t_Fm *p_Fm) +{ + uint32_t event; + + event = GET_UINT32(p_Fm->p_FmFpmRegs->fpmem); + + /* clear the all occurred events */ + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmem, event); + + if((event & FPM_EV_MASK_DOUBLE_ECC) && (event & FPM_EV_MASK_DOUBLE_ECC_EN)) + p_Fm->f_Exception(p_Fm->h_App,e_FM_EX_FPM_DOUBLE_ECC); + if((event & FPM_EV_MASK_STALL) && (event & FPM_EV_MASK_STALL_EN)) + p_Fm->f_Exception(p_Fm->h_App,e_FM_EX_FPM_STALL_ON_TASKS); + if((event & FPM_EV_MASK_SINGLE_ECC) && (event & FPM_EV_MASK_SINGLE_ECC_EN)) + p_Fm->f_Exception(p_Fm->h_App,e_FM_EX_FPM_SINGLE_ECC); +} + +static void MuramErrIntr(t_Fm *p_Fm) +{ + uint32_t event, mask; + + event = GET_UINT32(p_Fm->p_FmFpmRegs->fmrcr); + mask = GET_UINT32(p_Fm->p_FmFpmRegs->fmrie); + + /* clear MURAM event bit */ + WRITE_UINT32(p_Fm->p_FmFpmRegs->fmrcr, event & ~FPM_RAM_CTL_IRAM_ECC); + + ASSERT_COND(event & FPM_RAM_CTL_MURAM_ECC); + ASSERT_COND(event & FPM_RAM_CTL_RAMS_ECC_EN); + + if ((mask & FPM_MURAM_ECC_ERR_EX_EN)) + p_Fm->f_Exception(p_Fm->h_App, e_FM_EX_MURAM_ECC); +} + +static void IramErrIntr(t_Fm *p_Fm) +{ + uint32_t event, mask; + + event = GET_UINT32(p_Fm->p_FmFpmRegs->fmrcr) ; + mask = GET_UINT32(p_Fm->p_FmFpmRegs->fmrie); + /* clear the acknowledged events (do not clear IRAM event) */ + WRITE_UINT32(p_Fm->p_FmFpmRegs->fmrcr, event & ~FPM_RAM_CTL_MURAM_ECC); + + ASSERT_COND(event & FPM_RAM_CTL_IRAM_ECC); + ASSERT_COND(event & FPM_RAM_CTL_IRAM_ECC_EN); + + if ((mask & FPM_IRAM_ECC_ERR_EX_EN)) + p_Fm->f_Exception(p_Fm->h_App, e_FM_EX_IRAM_ECC); +} + +static void QmiEvent(t_Fm *p_Fm) +{ + uint32_t event, mask, force; + + event = GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_ie); + mask = GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_ien); + + event &= mask; + + /* clear the forced events */ + force = GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_if); + if(force & event) + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_if, force & ~event); + + /* clear the acknowledged events */ + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_ie, event); + + if(event & QMI_INTR_EN_SINGLE_ECC) + p_Fm->f_Exception(p_Fm->h_App,e_FM_EX_QMI_SINGLE_ECC); +} + +static void UnimplementedIsr(t_Handle h_Arg) +{ + UNUSED(h_Arg); + + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Unimplemented Isr!")); +} + +static void UnimplementedFmanCtrlIsr(t_Handle h_Arg, uint32_t event) +{ + UNUSED(h_Arg); UNUSED(event); + + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Unimplemented FmCtl Isr!")); +} + +static void FmEnableTimeStamp(t_Fm *p_Fm) +{ + uint32_t tmpReg; + uint64_t fraction; + uint32_t integer; + uint8_t count1MicroBit = 8; + uint32_t tsFrequency = (uint32_t)(1<p_FmStateStruct->fmClkFreq; + /* we multiply by 2^16 to keep the fraction of the division */ + /* we do not divid back, since we write this value as fraction - see spec */ + fraction = ((tsFrequency << 16) - (integer << 16)*p_Fm->p_FmStateStruct->fmClkFreq)/p_Fm->p_FmStateStruct->fmClkFreq; + /* we check remainder of the division in order to round up if not integer */ + if(((tsFrequency << 16) - (integer << 16)*p_Fm->p_FmStateStruct->fmClkFreq) % p_Fm->p_FmStateStruct->fmClkFreq) + fraction++; + + tmpReg = (integer << FPM_TS_INT_SHIFT) | (uint16_t)fraction; + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmtsc2, tmpReg); + + /* enable timestamp with original clock */ + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmtsc1, FPM_TS_CTL_EN); + + p_Fm->p_FmStateStruct->count1MicroBit = count1MicroBit; + p_Fm->p_FmStateStruct->enabledTimeStamp = TRUE; +} + +static void FreeInitResources(t_Fm *p_Fm) +{ + if (p_Fm->camBaseAddr) + FM_MURAM_FreeMem(p_Fm->h_FmMuram, UINT_TO_PTR(p_Fm->camBaseAddr)); + if (p_Fm->fifoBaseAddr) + FM_MURAM_FreeMem(p_Fm->h_FmMuram, UINT_TO_PTR(p_Fm->fifoBaseAddr)); + if (p_Fm->resAddr) + FM_MURAM_FreeMem(p_Fm->h_FmMuram, UINT_TO_PTR(p_Fm->resAddr)); +} + +static t_Error ClearIRam(t_Fm *p_Fm) +{ + t_FMIramRegs *p_Iram; + int i; + + ASSERT_COND(p_Fm); + p_Iram = (t_FMIramRegs *)UINT_TO_PTR(p_Fm->baseAddr + FM_MM_IMEM); + + /* Enable the auto-increment */ + WRITE_UINT32(p_Iram->iadd, IRAM_IADD_AIE); + while (GET_UINT32(p_Iram->iadd) != IRAM_IADD_AIE) ; + + for (i=0; i < (FM_IRAM_SIZE/4); i++) + WRITE_UINT32(p_Iram->idata, 0xffffffff); + + WRITE_UINT32(p_Iram->iadd, FM_IRAM_SIZE - 4); + CORE_MemoryBarrier(); + while (GET_UINT32(p_Iram->idata) != 0xffffffff) ; + + return E_OK; +} + +static t_Error LoadFmanCtrlCode(t_Fm *p_Fm) +{ + t_FMIramRegs *p_Iram; + int i; + uint32_t tmp; + uint8_t compTo16; + + ASSERT_COND(p_Fm); + p_Iram = (t_FMIramRegs *)UINT_TO_PTR(p_Fm->baseAddr + FM_MM_IMEM); + + /* Enable the auto-increment */ + WRITE_UINT32(p_Iram->iadd, IRAM_IADD_AIE); + while (GET_UINT32(p_Iram->iadd) != IRAM_IADD_AIE) ; + + for (i=0; i < (p_Fm->p_FmDriverParam->firmware.size / 4); i++) + WRITE_UINT32(p_Iram->idata, p_Fm->p_FmDriverParam->firmware.p_Code[i]); + + compTo16 = (uint8_t)(p_Fm->p_FmDriverParam->firmware.size % 16); + if(compTo16) + for (i=0; i < ((16-compTo16) / 4); i++) + WRITE_UINT32(p_Iram->idata, 0xffffffff); + + WRITE_UINT32(p_Iram->iadd,p_Fm->p_FmDriverParam->firmware.size-4); + while(GET_UINT32(p_Iram->iadd) != (p_Fm->p_FmDriverParam->firmware.size-4)) ; + + /* verify that writing has completed */ + while (GET_UINT32(p_Iram->idata) != p_Fm->p_FmDriverParam->firmware.p_Code[(p_Fm->p_FmDriverParam->firmware.size / 4)-1]) ; + + if (p_Fm->p_FmDriverParam->fwVerify) + { + WRITE_UINT32(p_Iram->iadd, IRAM_IADD_AIE); + while (GET_UINT32(p_Iram->iadd) != IRAM_IADD_AIE) ; + for (i=0; i < (p_Fm->p_FmDriverParam->firmware.size / 4); i++) + if ((tmp=GET_UINT32(p_Iram->idata)) != p_Fm->p_FmDriverParam->firmware.p_Code[i]) + RETURN_ERROR(MAJOR, E_WRITE_FAILED, + ("UCode write error : write 0x%x, read 0x%x", + p_Fm->p_FmDriverParam->firmware.p_Code[i],tmp)); + WRITE_UINT32(p_Iram->iadd, 0x0); + } + + /* Enable patch from IRAM */ + WRITE_UINT32(p_Iram->iready, IRAM_READY); + XX_UDelay(1000); + + DBG(INFO, ("FMan-Controller code (ver %d.%d) loaded to IRAM.", + ((uint8_t *)p_Fm->p_FmDriverParam->firmware.p_Code)[5], + ((uint8_t *)p_Fm->p_FmDriverParam->firmware.p_Code)[7])); + + return E_OK; +} + +static void GuestErrorIsr(t_Fm *p_Fm, uint32_t pending) +{ +#define FM_G_CALL_1G_MAC_ERR_ISR(_id) \ +do { \ + p_Fm->intrMng[(e_FmInterModuleEvent)(e_FM_EV_ERR_1G_MAC0+_id)].f_Isr(p_Fm->intrMng[(e_FmInterModuleEvent)(e_FM_EV_ERR_1G_MAC0+_id)].h_SrcHandle);\ +} while (0) +#define FM_G_CALL_10G_MAC_ERR_ISR(_id) \ +do { \ + p_Fm->intrMng[(e_FmInterModuleEvent)(e_FM_EV_ERR_10G_MAC0+_id)].f_Isr(p_Fm->intrMng[(e_FmInterModuleEvent)(e_FM_EV_ERR_10G_MAC0+_id)].h_SrcHandle);\ +} while (0) + + /* error interrupts */ + if (pending & ERR_INTR_EN_1G_MAC0) + FM_G_CALL_1G_MAC_ERR_ISR(0); + if (pending & ERR_INTR_EN_1G_MAC1) + FM_G_CALL_1G_MAC_ERR_ISR(1); + if (pending & ERR_INTR_EN_1G_MAC2) + FM_G_CALL_1G_MAC_ERR_ISR(2); + if (pending & ERR_INTR_EN_1G_MAC3) + FM_G_CALL_1G_MAC_ERR_ISR(3); + if (pending & ERR_INTR_EN_1G_MAC4) + FM_G_CALL_1G_MAC_ERR_ISR(4); + if (pending & ERR_INTR_EN_10G_MAC0) + FM_G_CALL_10G_MAC_ERR_ISR(0); +} + +static void GuestEventIsr(t_Fm *p_Fm, uint32_t pending) +{ +#define FM_G_CALL_1G_MAC_TMR_ISR(_id) \ +do { \ + p_Fm->intrMng[(e_FmInterModuleEvent)(e_FM_EV_1G_MAC0_TMR+_id)].f_Isr(p_Fm->intrMng[(e_FmInterModuleEvent)(e_FM_EV_1G_MAC0_TMR+_id)].h_SrcHandle);\ +} while (0) + + if (pending & INTR_EN_1G_MAC0_TMR) + FM_G_CALL_1G_MAC_TMR_ISR(0); + if (pending & INTR_EN_1G_MAC1_TMR) + FM_G_CALL_1G_MAC_TMR_ISR(1); + if (pending & INTR_EN_1G_MAC2_TMR) + FM_G_CALL_1G_MAC_TMR_ISR(2); + if (pending & INTR_EN_1G_MAC3_TMR) + FM_G_CALL_1G_MAC_TMR_ISR(3); + if (pending & INTR_EN_1G_MAC4_TMR) + FM_G_CALL_1G_MAC_TMR_ISR(4); + if(pending & INTR_EN_TMR) + p_Fm->intrMng[e_FM_EV_TMR].f_Isr(p_Fm->intrMng[e_FM_EV_TMR].h_SrcHandle); +} + + +/****************************************/ +/* Inter-Module functions */ +/****************************************/ +static t_Error FmGuestHandleIpcMsgCB(t_Handle h_Fm, + uint8_t *p_Msg, + uint32_t msgLength, + uint8_t *p_Reply, + uint32_t *p_ReplyLength) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + t_FmIpcMsg *p_IpcMsg = (t_FmIpcMsg*)p_Msg; + + UNUSED(p_Reply); + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR((msgLength > sizeof(uint32_t)), E_INVALID_VALUE); + +#ifdef DISABLE_SANITY_CHECKS + UNUSED(msgLength); +#endif /* DISABLE_SANITY_CHECKS */ + + ASSERT_COND(p_Msg); + + *p_ReplyLength = 0; + + switch(p_IpcMsg->msgId) + { + case (FM_GUEST_ISR): + { + t_FmIpcIsr ipcIsr; + + memcpy((uint8_t*)&ipcIsr, p_IpcMsg->msgBody, sizeof(t_FmIpcIsr)); + if(ipcIsr.boolErr) + GuestErrorIsr(p_Fm, ipcIsr.pendingReg); + else + GuestEventIsr(p_Fm, ipcIsr.pendingReg); + break; + } + default: + *p_ReplyLength = 0; + RETURN_ERROR(MINOR, E_INVALID_SELECTION, ("command not found!!!")); + } + return E_OK; +} + +static t_Error FmHandleIpcMsgCB(t_Handle h_Fm, + uint8_t *p_Msg, + uint32_t msgLength, + uint8_t *p_Reply, + uint32_t *p_ReplyLength) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + t_FmIpcMsg *p_IpcMsg = (t_FmIpcMsg*)p_Msg; + t_FmIpcReply *p_IpcReply = (t_FmIpcReply*)p_Reply; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR((msgLength >= sizeof(uint32_t)), E_INVALID_VALUE); + +#ifdef DISABLE_SANITY_CHECKS + UNUSED(msgLength); +#endif /* DISABLE_SANITY_CHECKS */ + + ASSERT_COND(p_IpcMsg); + + memset(p_IpcReply, 0, (sizeof(uint8_t) * FM_IPC_MAX_REPLY_SIZE)); + *p_ReplyLength = 0; + + switch(p_IpcMsg->msgId) + { + case (FM_GET_SET_PORT_PARAMS): + { + t_FmIpcPortInInitParams ipcInitParams; + t_FmInterModulePortInitParams initParams; + t_FmIpcPhysAddr ipcPhysAddr; + + memcpy((uint8_t*)&ipcInitParams, p_IpcMsg->msgBody, sizeof(t_FmIpcPortInInitParams)); + initParams.hardwarePortId = ipcInitParams.hardwarePortId; + initParams.portType = (e_FmPortType)ipcInitParams.enumPortType; + initParams.independentMode = (bool)(ipcInitParams.boolIndependentMode); + initParams.liodnOffset = ipcInitParams.liodnOffset; + initParams.numOfTasks = ipcInitParams.numOfTasks; + initParams.numOfExtraTasks = ipcInitParams.numOfExtraTasks; + initParams.numOfOpenDmas = ipcInitParams.numOfOpenDmas; + initParams.numOfExtraOpenDmas = ipcInitParams.numOfExtraOpenDmas; + initParams.sizeOfFifo = ipcInitParams.sizeOfFifo; + initParams.extraSizeOfFifo = ipcInitParams.extraSizeOfFifo; + initParams.deqPipelineDepth = ipcInitParams.deqPipelineDepth; + initParams.liodnBase = ipcInitParams.liodnBase; + + p_IpcReply->error = (uint32_t)FmGetSetPortParams(h_Fm, &initParams); + ipcPhysAddr.high = initParams.fmMuramPhysBaseAddr.high; + ipcPhysAddr.low = initParams.fmMuramPhysBaseAddr.low; + memcpy(p_IpcReply->replyBody, (uint8_t*)&ipcPhysAddr, sizeof(t_FmIpcPhysAddr)); + *p_ReplyLength = sizeof(uint32_t) + sizeof(t_FmIpcPhysAddr); + break; + } + case (FM_SET_SIZE_OF_FIFO): + { + t_FmIpcPortFifoParams ipcPortFifoParams; + t_FmInterModulePortRxPoolsParams rxPoolsParams; + + memcpy((uint8_t*)&ipcPortFifoParams, p_IpcMsg->msgBody, sizeof(t_FmIpcPortFifoParams)); + rxPoolsParams.numOfPools = ipcPortFifoParams.numOfPools; + rxPoolsParams.secondLargestBufSize = ipcPortFifoParams.secondLargestBufSize; + rxPoolsParams.largestBufSize = ipcPortFifoParams.largestBufSize; + + p_IpcReply->error = (uint32_t)FmSetSizeOfFifo(h_Fm, ipcPortFifoParams.rsrcParams.hardwarePortId, + (e_FmPortType)ipcPortFifoParams.enumPortType, + (bool)ipcPortFifoParams.boolIndependentMode, + &ipcPortFifoParams.rsrcParams.val, + ipcPortFifoParams.rsrcParams.extra, + ipcPortFifoParams.deqPipelineDepth, + &rxPoolsParams, + (bool)ipcPortFifoParams.boolInitialConfig); + memcpy(p_IpcReply->replyBody, (uint8_t*)&ipcPortFifoParams.rsrcParams.val, sizeof(uint32_t)); + *p_ReplyLength = sizeof(uint32_t) + sizeof(uint32_t); + break; + } + case (FM_SET_NUM_OF_TASKS): + { + t_FmIpcPortRsrcParams ipcPortRsrcParams; + + memcpy((uint8_t*)&ipcPortRsrcParams, p_IpcMsg->msgBody, sizeof(t_FmIpcPortRsrcParams)); + p_IpcReply->error = (uint32_t)FmSetNumOfTasks(h_Fm, ipcPortRsrcParams.hardwarePortId, + (uint8_t)ipcPortRsrcParams.val, + (uint8_t)ipcPortRsrcParams.extra, + (bool)ipcPortRsrcParams.boolInitialConfig); + *p_ReplyLength = sizeof(uint32_t); + break; + } + case (FM_SET_NUM_OF_OPEN_DMAS): + { + t_FmIpcPortRsrcParams ipcPortRsrcParams; + + memcpy((uint8_t*)&ipcPortRsrcParams, p_IpcMsg->msgBody, sizeof(t_FmIpcPortRsrcParams)); + p_IpcReply->error = (uint32_t)FmSetNumOfOpenDmas(h_Fm, ipcPortRsrcParams.hardwarePortId, + (uint8_t)ipcPortRsrcParams.val, + (uint8_t)ipcPortRsrcParams.extra, + (bool)ipcPortRsrcParams.boolInitialConfig); + *p_ReplyLength = sizeof(uint32_t); + break; + } + case (FM_RESUME_STALLED_PORT): + *p_ReplyLength = sizeof(uint32_t); + p_IpcReply->error = (uint32_t)FmResumeStalledPort(h_Fm, p_IpcMsg->msgBody[0]); + break; + case (FM_MASTER_IS_ALIVE): + { + uint8_t guestId = p_IpcMsg->msgBody[0]; + /* build the FM master partition IPC address */ + memset(p_Fm->fmIpcHandlerModuleName[guestId], 0, (sizeof(char)) * MODULE_NAME_SIZE); + if(Sprint (p_Fm->fmIpcHandlerModuleName[guestId], "FM_%d_%d",p_Fm->p_FmStateStruct->fmId, guestId) != (guestId<10 ? 6:7)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Sprint failed")); + p_Fm->h_IpcSessions[guestId] = XX_IpcInitSession(p_Fm->fmIpcHandlerModuleName[guestId], p_Fm->fmModuleName); + if (p_Fm->h_IpcSessions[guestId] == NULL) + RETURN_ERROR(MAJOR, E_NOT_AVAILABLE, ("FM Master IPC session for guest %d", guestId)); + *(uint8_t*)(p_IpcReply->replyBody) = 1; + *p_ReplyLength = sizeof(uint32_t) + sizeof(uint8_t); + break; + } + case (FM_IS_PORT_STALLED): + { + bool tmp; + + p_IpcReply->error = (uint32_t)FmIsPortStalled(h_Fm, p_IpcMsg->msgBody[0], &tmp); + *(uint8_t*)(p_IpcReply->replyBody) = (uint8_t)tmp; + *p_ReplyLength = sizeof(uint32_t) + sizeof(uint8_t); + break; + } + case (FM_RESET_MAC): + { + t_FmIpcMacParams ipcMacParams; + + memcpy((uint8_t*)&ipcMacParams, p_IpcMsg->msgBody, sizeof(t_FmIpcMacParams)); + p_IpcReply->error = (uint32_t)FmResetMac(p_Fm, + (e_FmMacType)(ipcMacParams.enumType), + ipcMacParams.id); + *p_ReplyLength = sizeof(uint32_t); + break; + } + case (FM_SET_MAC_MAX_FRAME): + { + t_Error err; + t_FmIpcMacMaxFrameParams ipcMacMaxFrameParams; + + memcpy((uint8_t*)&ipcMacMaxFrameParams, p_IpcMsg->msgBody, sizeof(t_FmIpcMacMaxFrameParams)); + if ((err = FmSetMacMaxFrame(p_Fm, + (e_FmMacType)(ipcMacMaxFrameParams.macParams.enumType), + ipcMacMaxFrameParams.macParams.id, + ipcMacMaxFrameParams.maxFrameLength)) != E_OK) + REPORT_ERROR(MINOR, err, NO_MSG); + break; + } + case (FM_GET_CLK_FREQ): + memcpy(p_IpcReply->replyBody, (uint8_t*)&p_Fm->p_FmStateStruct->fmClkFreq, sizeof(uint16_t)); + *p_ReplyLength = sizeof(uint32_t) + sizeof(uint16_t); + break; + case (FM_FREE_PORT): + { + t_FmInterModulePortFreeParams portParams; + t_FmIpcPortFreeParams ipcPortParams; + + memcpy((uint8_t*)&ipcPortParams, p_IpcMsg->msgBody, sizeof(t_FmIpcPortFreeParams)); + portParams.hardwarePortId = ipcPortParams.hardwarePortId; + portParams.portType = (e_FmPortType)(ipcPortParams.enumPortType); +#ifdef FM_QMI_DEQ_OPTIONS_SUPPORT + portParams.deqPipelineDepth = ipcPortParams.deqPipelineDepth; +#endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ + FmFreePortParams(h_Fm, &portParams); + break; + } + case (FM_REGISTER_INTR): + { + t_FmIpcRegisterIntr ipcRegIntr; + + memcpy((uint8_t*)&ipcRegIntr, p_IpcMsg->msgBody, sizeof(ipcRegIntr)); + p_Fm->intrMng[ipcRegIntr.event].guestId = ipcRegIntr.guestId; + break; + } +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) + case (FM_DUMP_REGS): + { + t_Error err; + if ((err = FM_DumpRegs(h_Fm)) != E_OK) + REPORT_ERROR(MINOR, err, NO_MSG); + break; + } + case (FM_DUMP_PORT_REGS): + { + t_Error err; + + if ((err = FmDumpPortRegs(h_Fm, p_IpcMsg->msgBody[0])) != E_OK) + REPORT_ERROR(MINOR, err, NO_MSG); + break; + } +#endif /* (defined(DEBUG_ERRORS) && ... */ + case (FM_GET_REV): + { + t_FmRevisionInfo revInfo; + t_FmIpcRevisionInfo ipcRevInfo; + + p_IpcReply->error = (uint32_t)FM_GetRevision(h_Fm, &revInfo); + ipcRevInfo.majorRev = revInfo.majorRev; + ipcRevInfo.minorRev = revInfo.minorRev; + memcpy(p_IpcReply->replyBody, (uint8_t*)&ipcRevInfo, sizeof(t_FmIpcRevisionInfo)); + *p_ReplyLength = sizeof(uint32_t) + sizeof(t_FmIpcRevisionInfo); + break; + } + case (FM_DMA_STAT): + { + t_FmDmaStatus dmaStatus; + t_FmIpcDmaStatus ipcDmaStatus; + + FM_GetDmaStatus(h_Fm, &dmaStatus); + ipcDmaStatus.boolCmqNotEmpty = (uint8_t)dmaStatus.cmqNotEmpty; + ipcDmaStatus.boolBusError = (uint8_t)dmaStatus.busError; + ipcDmaStatus.boolReadBufEccError = (uint8_t)dmaStatus.readBufEccError; + ipcDmaStatus.boolWriteBufEccSysError = (uint8_t)dmaStatus.writeBufEccSysError; + ipcDmaStatus.boolWriteBufEccFmError = (uint8_t)dmaStatus.writeBufEccFmError; + memcpy(p_IpcReply->replyBody, (uint8_t*)&ipcDmaStatus, sizeof(t_FmIpcDmaStatus)); + *p_ReplyLength = sizeof(uint32_t) + sizeof(t_FmIpcDmaStatus); + break; + } + case (FM_ALLOC_FMAN_CTRL_EVENT_REG): + p_IpcReply->error = (uint32_t)FmAllocFmanCtrlEventReg(h_Fm, (uint8_t*)p_IpcReply->replyBody); + *p_ReplyLength = sizeof(uint32_t) + sizeof(uint8_t); + break; + case (FM_FREE_FMAN_CTRL_EVENT_REG): + FmFreeFmanCtrlEventReg(h_Fm, p_IpcMsg->msgBody[0]); + break; + case (FM_GET_TIMESTAMP_SCALE): + { + uint32_t timeStamp = FmGetTimeStampScale(h_Fm); + + memcpy(p_IpcReply->replyBody, (uint8_t*)&timeStamp, sizeof(uint32_t)); + *p_ReplyLength = sizeof(uint32_t) + sizeof(uint32_t); + break; + } + case (FM_GET_COUNTER): + { + e_FmCounters inCounter; + uint32_t outCounter; + + memcpy((uint8_t*)&inCounter, p_IpcMsg->msgBody, sizeof(uint32_t)); + outCounter = FM_GetCounter(h_Fm, inCounter); + memcpy(p_IpcReply->replyBody, (uint8_t*)&outCounter, sizeof(uint32_t)); + *p_ReplyLength = sizeof(uint32_t) + sizeof(uint32_t); + break; + } + case (FM_SET_FMAN_CTRL_EVENTS_ENABLE): + { + t_FmIpcFmanEvents ipcFmanEvents; + + memcpy((uint8_t*)&ipcFmanEvents, p_IpcMsg->msgBody, sizeof(t_FmIpcFmanEvents)); + FmSetFmanCtrlIntr(h_Fm, + ipcFmanEvents.eventRegId, + ipcFmanEvents.enableEvents); + break; + } + case (FM_GET_FMAN_CTRL_EVENTS_ENABLE): + { + uint32_t tmp = FmGetFmanCtrlIntr(h_Fm, p_IpcMsg->msgBody[0]); + + memcpy(p_IpcReply->replyBody, (uint8_t*)&tmp, sizeof(uint32_t)); + *p_ReplyLength = sizeof(uint32_t) + sizeof(uint32_t); + break; + } + case (FM_GET_PHYS_MURAM_BASE): + { + t_FmPhysAddr physAddr; + t_FmIpcPhysAddr ipcPhysAddr; + + FmGetPhysicalMuramBase(h_Fm, &physAddr); + ipcPhysAddr.high = physAddr.high; + ipcPhysAddr.low = physAddr.low; + memcpy(p_IpcReply->replyBody, (uint8_t*)&ipcPhysAddr, sizeof(t_FmIpcPhysAddr)); + *p_ReplyLength = sizeof(uint32_t) + sizeof(t_FmIpcPhysAddr); + break; + } + case (FM_ENABLE_RAM_ECC): + { + t_Error err; + + if (((err = FM_EnableRamsEcc(h_Fm)) != E_OK) || + ((err = FM_SetException(h_Fm, e_FM_EX_IRAM_ECC, TRUE)) != E_OK) || + ((err = FM_SetException(h_Fm, e_FM_EX_MURAM_ECC, TRUE)) != E_OK)) + REPORT_ERROR(MINOR, err, NO_MSG); + break; + } + case (FM_DISABLE_RAM_ECC): + { + t_Error err; + + if (((err = FM_SetException(h_Fm, e_FM_EX_IRAM_ECC, FALSE)) != E_OK) || + ((err = FM_SetException(h_Fm, e_FM_EX_MURAM_ECC, FALSE)) != E_OK) || + ((err = FM_DisableRamsEcc(h_Fm)) != E_OK)) + REPORT_ERROR(MINOR, err, NO_MSG); + break; + } + case (FM_SET_NUM_OF_FMAN_CTRL): + { + t_Error err; + t_FmIpcPortNumOfFmanCtrls ipcPortNumOfFmanCtrls; + + memcpy((uint8_t*)&ipcPortNumOfFmanCtrls, p_IpcMsg->msgBody, sizeof(t_FmIpcPortNumOfFmanCtrls)); + if ((err = FmSetNumOfRiscsPerPort(h_Fm, + ipcPortNumOfFmanCtrls.hardwarePortId, + ipcPortNumOfFmanCtrls.numOfFmanCtrls)) != E_OK) + REPORT_ERROR(MINOR, err, NO_MSG); + break; + } +#ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 + case (FM_10G_TX_ECC_WA): + p_IpcReply->error = (uint32_t)Fm10GTxEccWorkaround(h_Fm, p_IpcMsg->msgBody[0]); + *p_ReplyLength = sizeof(uint32_t); + break; +#endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */ + default: + *p_ReplyLength = 0; + RETURN_ERROR(MINOR, E_INVALID_SELECTION, ("command not found!!!")); + } + return E_OK; +} + +static void ErrorIsrCB(t_Handle h_Fm) +{ +#define FM_M_CALL_1G_MAC_ERR_ISR(_id) \ + { \ + if (p_Fm->guestId != p_Fm->intrMng[(e_FmInterModuleEvent)(e_FM_EV_ERR_1G_MAC0+_id)].guestId) \ + SendIpcIsr(p_Fm, (e_FmInterModuleEvent)(e_FM_EV_ERR_1G_MAC0+_id), pending); \ + else \ + p_Fm->intrMng[(e_FmInterModuleEvent)(e_FM_EV_ERR_1G_MAC0+_id)].f_Isr(p_Fm->intrMng[(e_FmInterModuleEvent)(e_FM_EV_ERR_1G_MAC0+_id)].h_SrcHandle);\ + } + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint32_t pending; + + SANITY_CHECK_RETURN(h_Fm, E_INVALID_HANDLE); + + /* error interrupts */ + pending = GET_UINT32(p_Fm->p_FmFpmRegs->fmepi); + if (!pending) + return; + + if(pending & ERR_INTR_EN_BMI) + BmiErrEvent(p_Fm); + if(pending & ERR_INTR_EN_QMI) + QmiErrEvent(p_Fm); + if(pending & ERR_INTR_EN_FPM) + FpmErrEvent(p_Fm); + if(pending & ERR_INTR_EN_DMA) + DmaErrEvent(p_Fm); + if(pending & ERR_INTR_EN_IRAM) + IramErrIntr(p_Fm); + if(pending & ERR_INTR_EN_MURAM) + MuramErrIntr(p_Fm); + if(pending & ERR_INTR_EN_PRS) + p_Fm->intrMng[e_FM_EV_ERR_PRS].f_Isr(p_Fm->intrMng[e_FM_EV_ERR_PRS].h_SrcHandle); + if(pending & ERR_INTR_EN_PLCR) + p_Fm->intrMng[e_FM_EV_ERR_PLCR].f_Isr(p_Fm->intrMng[e_FM_EV_ERR_PLCR].h_SrcHandle); + if(pending & ERR_INTR_EN_KG) + p_Fm->intrMng[e_FM_EV_ERR_KG].f_Isr(p_Fm->intrMng[e_FM_EV_ERR_KG].h_SrcHandle); + + /* MAC events may belong to different partitions */ + if(pending & ERR_INTR_EN_1G_MAC0) + FM_M_CALL_1G_MAC_ERR_ISR(0); + if(pending & ERR_INTR_EN_1G_MAC1) + FM_M_CALL_1G_MAC_ERR_ISR(1); + if(pending & ERR_INTR_EN_1G_MAC2) + FM_M_CALL_1G_MAC_ERR_ISR(2); + if(pending & ERR_INTR_EN_1G_MAC3) + FM_M_CALL_1G_MAC_ERR_ISR(3); + if(pending & ERR_INTR_EN_1G_MAC4) + FM_M_CALL_1G_MAC_ERR_ISR(4); + if(pending & ERR_INTR_EN_10G_MAC0) + { + if (p_Fm->guestId != p_Fm->intrMng[e_FM_EV_ERR_10G_MAC0].guestId) + SendIpcIsr(p_Fm, e_FM_EV_ERR_10G_MAC0, pending); + else + p_Fm->intrMng[e_FM_EV_ERR_10G_MAC0].f_Isr(p_Fm->intrMng[e_FM_EV_ERR_10G_MAC0].h_SrcHandle); + } +} + + +#ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 +t_Error Fm10GTxEccWorkaround(t_Handle h_Fm, uint8_t macId) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + int timeout = 1000; + t_Error err = E_OK; + t_FmIpcMsg msg; + t_FmIpcReply reply; + uint32_t replyLength; + uint8_t rxHardwarePortId, txHardwarePortId; + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_10G_TX_ECC_WA; + msg.msgBody[0] = macId; + replyLength = sizeof(uint32_t); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId)+sizeof(macId), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + if (replyLength != sizeof(uint32_t)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + return (t_Error)(reply.error); + } + + SANITY_CHECK_RETURN_ERROR((macId == 0), E_NOT_SUPPORTED); + SANITY_CHECK_RETURN_ERROR(IsFmanCtrlCodeLoaded(p_Fm), E_INVALID_STATE); + + SW_PORT_ID_TO_HW_PORT_ID(rxHardwarePortId, e_FM_PORT_TYPE_RX_10G, macId); + SW_PORT_ID_TO_HW_PORT_ID(txHardwarePortId, e_FM_PORT_TYPE_TX_10G, macId); + if ((p_Fm->p_FmStateStruct->portsTypes[rxHardwarePortId] != e_FM_PORT_TYPE_DUMMY) || + (p_Fm->p_FmStateStruct->portsTypes[txHardwarePortId] != e_FM_PORT_TYPE_DUMMY)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, + ("MAC should be initialized prior to rx and tx ports!")); + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmextc, 0x40000000); + CORE_MemoryBarrier(); + while ((GET_UINT32(p_Fm->p_FmFpmRegs->fpmextc) & 0x40000000) && + --timeout) ; + if (!timeout) + return ERROR_CODE(E_TIMEOUT); + return E_OK; +} +#endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */ + +uintptr_t FmGetPcdPrsBaseAddr(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_VALUE(p_Fm, E_INVALID_HANDLE, 0); + + if(p_Fm->guestId != NCSW_MASTER_ID) + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("Guset")); + + return (p_Fm->baseAddr + FM_MM_PRS); +} + +uintptr_t FmGetPcdKgBaseAddr(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_VALUE(p_Fm, E_INVALID_HANDLE, 0); + + if(p_Fm->guestId != NCSW_MASTER_ID) + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("Guset")); + + return (p_Fm->baseAddr + FM_MM_KG); +} + +uintptr_t FmGetPcdPlcrBaseAddr(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_VALUE(p_Fm, E_INVALID_HANDLE, 0); + + if(p_Fm->guestId != NCSW_MASTER_ID) + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("Guset")); + + return (p_Fm->baseAddr + FM_MM_PLCR); +} + +t_Handle FmGetMuramHandle(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_VALUE(p_Fm, E_INVALID_HANDLE, NULL); + + return (p_Fm->h_FmMuram); +} + +void FmGetPhysicalMuramBase(t_Handle h_Fm, t_FmPhysAddr *p_FmPhysAddr) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + t_Error err; + t_FmIpcMsg msg; + t_FmIpcReply reply; + uint32_t replyLength; + t_FmIpcPhysAddr ipcPhysAddr; + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_GET_PHYS_MURAM_BASE; + replyLength = sizeof(uint32_t) + sizeof(t_FmPhysAddr); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + { + REPORT_ERROR(MINOR, err, NO_MSG); + return; + } + if (replyLength != (sizeof(uint32_t) + sizeof(t_FmPhysAddr))) + { + REPORT_ERROR(MINOR, E_INVALID_VALUE,("IPC reply length mismatch")); + return; + } + memcpy((uint8_t*)&ipcPhysAddr, reply.replyBody, sizeof(t_FmIpcPhysAddr)); + p_FmPhysAddr->high = ipcPhysAddr.high; + p_FmPhysAddr->low = ipcPhysAddr.low; + return ; + } + + /* General FM driver initialization */ + p_FmPhysAddr->low = (uint32_t)p_Fm->fmMuramPhysBaseAddr; + p_FmPhysAddr->high = (uint8_t)((p_Fm->fmMuramPhysBaseAddr & 0x000000ff00000000LL) >> 32); +} + +t_Error FmAllocFmanCtrlEventReg(t_Handle h_Fm, uint8_t *p_EventId) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint8_t i; + t_Error err; + t_FmIpcMsg msg; + t_FmIpcReply reply; + uint32_t replyLength; + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_ALLOC_FMAN_CTRL_EVENT_REG; + replyLength = sizeof(uint32_t) + sizeof(uint8_t); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + if (replyLength != (sizeof(uint32_t) + sizeof(uint8_t))) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + + *p_EventId = *(uint8_t*)(reply.replyBody); + + return (t_Error)(reply.error); + } + + for(i=0;iusedEventRegs[i]) + { + p_Fm->usedEventRegs[i] = TRUE; + *p_EventId = i; + break; + } + + if (i==FM_NUM_OF_FMAN_CTRL_EVENT_REGS) + RETURN_ERROR(MAJOR, E_BUSY, ("No resource - Fman controller event register.")); + + return E_OK; +} + +void FmFreeFmanCtrlEventReg(t_Handle h_Fm, uint8_t eventId) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + t_Error err; + t_FmIpcMsg msg; + + if(((t_Fm *)h_Fm)->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + msg.msgId = FM_FREE_FMAN_CTRL_EVENT_REG; + msg.msgBody[0] = eventId; + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId)+sizeof(eventId), + NULL, + NULL, + NULL, + NULL)) != E_OK) + REPORT_ERROR(MINOR, err, NO_MSG); + return; + } + + ((t_Fm*)h_Fm)->usedEventRegs[eventId] = FALSE; +} + +void FmRegisterIntr(t_Handle h_Fm, + e_FmEventModules module, + uint8_t modId, + e_FmIntrType intrType, + void (*f_Isr) (t_Handle h_Arg), + t_Handle h_Arg) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint8_t event= 0; + t_FmIpcRegisterIntr fmIpcRegisterIntr; + t_Error err; + t_FmIpcMsg msg; + + ASSERT_COND(h_Fm); + + GET_FM_MODULE_EVENT(module, modId,intrType, event); + + /* register in local FM structure */ + ASSERT_COND(event != e_FM_EV_DUMMY_LAST); + p_Fm->intrMng[event].f_Isr = f_Isr; + p_Fm->intrMng[event].h_SrcHandle = h_Arg; + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + if(p_Fm->h_IpcSessions[0]) + { + /* register in Master FM structure */ + fmIpcRegisterIntr.event = event; + fmIpcRegisterIntr.guestId = p_Fm->guestId; + memset(&msg, 0, sizeof(msg)); + msg.msgId = FM_REGISTER_INTR; + memcpy(msg.msgBody, &fmIpcRegisterIntr, sizeof(fmIpcRegisterIntr)); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId) + sizeof(fmIpcRegisterIntr), + NULL, + NULL, + NULL, + NULL)) != E_OK) + REPORT_ERROR(MINOR, err, NO_MSG); + } + else + DBG(WARNING,("'Register interrupt' - unavailable - No IPC")); + } + +} + +void FmUnregisterIntr(t_Handle h_Fm, + e_FmEventModules module, + uint8_t modId, + e_FmIntrType intrType) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint8_t event= 0; + + ASSERT_COND(h_Fm); + + GET_FM_MODULE_EVENT(module, modId,intrType, event); + + ASSERT_COND(event != e_FM_EV_DUMMY_LAST); + p_Fm->intrMng[event].f_Isr = UnimplementedIsr; + p_Fm->intrMng[event].h_SrcHandle = NULL; +} + +void FmSetFmanCtrlIntr(t_Handle h_Fm, uint8_t eventRegId, uint32_t enableEvents) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + t_FmIpcFmanEvents fmanCtrl; + t_Error err; + t_FmIpcMsg msg; + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + fmanCtrl.eventRegId = eventRegId; + fmanCtrl.enableEvents = enableEvents; + memset(&msg, 0, sizeof(msg)); + msg.msgId = FM_SET_FMAN_CTRL_EVENTS_ENABLE; + memcpy(msg.msgBody, &fmanCtrl, sizeof(fmanCtrl)); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId)+sizeof(fmanCtrl), + NULL, + NULL, + NULL, + NULL)) != E_OK) + REPORT_ERROR(MINOR, err, NO_MSG); + return; + } + + ASSERT_COND(eventRegId < FM_NUM_OF_FMAN_CTRL_EVENT_REGS); + WRITE_UINT32(p_Fm->p_FmFpmRegs->fmfpfcee[eventRegId], enableEvents); +} + +uint32_t FmGetFmanCtrlIntr(t_Handle h_Fm, uint8_t eventRegId) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + t_Error err; + t_FmIpcMsg msg; + t_FmIpcReply reply; + uint32_t replyLength, ctrlIntr; + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_GET_FMAN_CTRL_EVENTS_ENABLE; + msg.msgBody[0] = eventRegId; + replyLength = sizeof(uint32_t) + sizeof(uint32_t); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId)+sizeof(eventRegId), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + { + REPORT_ERROR(MINOR, err, NO_MSG); + return 0; + } + if (replyLength != (sizeof(uint32_t) + sizeof(uint32_t))) + { + REPORT_ERROR(MINOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + return 0; + } + memcpy((uint8_t*)&ctrlIntr, reply.replyBody, sizeof(uint32_t)); + return ctrlIntr; + } + + return GET_UINT32(p_Fm->p_FmFpmRegs->fmfpfcee[eventRegId]); +} + +void FmRegisterFmanCtrlIntr(t_Handle h_Fm, uint8_t eventRegId, void (*f_Isr) (t_Handle h_Arg, uint32_t event), t_Handle h_Arg) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + ASSERT_COND(eventRegIdguestId != NCSW_MASTER_ID) + { + ASSERT_COND(0); + /* TODO */ + } + + p_Fm->fmanCtrlIntr[eventRegId].f_Isr = f_Isr; + p_Fm->fmanCtrlIntr[eventRegId].h_SrcHandle = h_Arg; +} + +void FmUnregisterFmanCtrlIntr(t_Handle h_Fm, uint8_t eventRegId) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + ASSERT_COND(eventRegIdguestId != NCSW_MASTER_ID) + { + ASSERT_COND(0); + /* TODO */ + } + + p_Fm->fmanCtrlIntr[eventRegId].f_Isr = UnimplementedFmanCtrlIsr; + p_Fm->fmanCtrlIntr[eventRegId].h_SrcHandle = NULL; +} + +void FmRegisterPcd(t_Handle h_Fm, t_Handle h_FmPcd) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + if(p_Fm->h_Pcd) + REPORT_ERROR(MAJOR, E_ALREADY_EXISTS, ("PCD already set")); + + p_Fm->h_Pcd = h_FmPcd; + +} + +void FmUnregisterPcd(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + if(!p_Fm->h_Pcd) + REPORT_ERROR(MAJOR, E_ALREADY_EXISTS, ("No PCD")); + + p_Fm->h_Pcd = NULL; + +} + +t_Handle FmGetPcdHandle(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + return p_Fm->h_Pcd; +} + +uint8_t FmGetId(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_VALUE(p_Fm, E_INVALID_HANDLE, 0xff); + + return p_Fm->p_FmStateStruct->fmId; +} + +t_Error FmSetNumOfRiscsPerPort(t_Handle h_Fm, uint8_t hardwarePortId, uint8_t numOfFmanCtrls) +{ + + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint32_t tmpReg = 0; + t_Error err; + t_FmIpcPortNumOfFmanCtrls params; + t_FmIpcMsg msg; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(((numOfFmanCtrls > 0) && (numOfFmanCtrls < 3)) , E_INVALID_HANDLE); + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + params.hardwarePortId = hardwarePortId; + params.numOfFmanCtrls = numOfFmanCtrls; + msg.msgId = FM_SET_NUM_OF_FMAN_CTRL; + memcpy(msg.msgBody, ¶ms, sizeof(params)); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId) +sizeof(params), + NULL, + NULL, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + + return E_OK; + } + + XX_LockSpinlock(p_Fm->h_Spinlock); + + tmpReg = (uint32_t)(hardwarePortId << FPM_PORT_FM_CTL_PORTID_SHIFT); + + /*TODO - maybe to put CTL# according to another criteria*/ + + if(numOfFmanCtrls == 2) + tmpReg = FPM_PORT_FM_CTL2 | FPM_PORT_FM_CTL1; + + /* order restoration */ + if(hardwarePortId%2) + tmpReg |= (FPM_PORT_FM_CTL1 << FPM_PRC_ORA_FM_CTL_SEL_SHIFT) | FPM_PORT_FM_CTL1; + else + tmpReg |= (FPM_PORT_FM_CTL2 << FPM_PRC_ORA_FM_CTL_SEL_SHIFT) | FPM_PORT_FM_CTL2; + + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmpr, tmpReg); + XX_UnlockSpinlock(p_Fm->h_Spinlock); + + return E_OK; +} + +t_Error FmGetSetPortParams(t_Handle h_Fm,t_FmInterModulePortInitParams *p_PortParams) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint32_t tmpReg; + uint8_t hardwarePortId = p_PortParams->hardwarePortId; + t_FmIpcPortInInitParams portInParams; + t_FmIpcPhysAddr ipcPhysAddr; + t_Error err; + t_FmIpcMsg msg; + t_FmIpcReply reply; + uint32_t replyLength; + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + portInParams.hardwarePortId = p_PortParams->hardwarePortId; + portInParams.enumPortType = (uint32_t)p_PortParams->portType; + portInParams.boolIndependentMode = (uint8_t)p_PortParams->independentMode; + portInParams.liodnOffset = p_PortParams->liodnOffset; + portInParams.numOfTasks = p_PortParams->numOfTasks; + portInParams.numOfExtraTasks = p_PortParams->numOfExtraTasks; + portInParams.numOfOpenDmas = p_PortParams->numOfOpenDmas; + portInParams.numOfExtraOpenDmas = p_PortParams->numOfExtraOpenDmas; + portInParams.sizeOfFifo = p_PortParams->sizeOfFifo; + portInParams.extraSizeOfFifo = p_PortParams->extraSizeOfFifo; + portInParams.deqPipelineDepth = p_PortParams->deqPipelineDepth; + portInParams.liodnBase = p_PortParams->liodnBase; + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_GET_SET_PORT_PARAMS; + memcpy(msg.msgBody, &portInParams, sizeof(portInParams)); + replyLength = (sizeof(uint32_t) + sizeof(p_PortParams->fmMuramPhysBaseAddr)); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId) +sizeof(portInParams), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + if (replyLength != (sizeof(uint32_t) + sizeof(p_PortParams->fmMuramPhysBaseAddr))) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + memcpy((uint8_t*)&ipcPhysAddr, reply.replyBody, sizeof(t_FmIpcPhysAddr)); + p_PortParams->fmMuramPhysBaseAddr.high = ipcPhysAddr.high; + p_PortParams->fmMuramPhysBaseAddr.low = ipcPhysAddr.low; + + return (t_Error)(reply.error); + } + + ASSERT_COND(IN_RANGE(1, hardwarePortId, 63)); + XX_LockSpinlock(p_Fm->h_Spinlock); + + if(p_PortParams->independentMode) + { + /* set port parameters */ + p_Fm->independentMode = p_PortParams->independentMode; + /* disable dispatch limit */ + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmflc, 0); + } + + if(p_PortParams->portType == e_FM_PORT_TYPE_OH_HOST_COMMAND) + { + if(p_Fm->hcPortInitialized) + { + XX_UnlockSpinlock(p_Fm->h_Spinlock); + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Only one host command port is allowed.")); + } + else + p_Fm->hcPortInitialized = TRUE; + } + p_Fm->p_FmStateStruct->portsTypes[hardwarePortId] = p_PortParams->portType; + + err = FmSetNumOfTasks(p_Fm, p_PortParams->hardwarePortId, p_PortParams->numOfTasks, p_PortParams->numOfExtraTasks, TRUE); + if(err) + { + XX_UnlockSpinlock(p_Fm->h_Spinlock); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + +#ifdef FM_QMI_DEQ_OPTIONS_SUPPORT + if((p_PortParams->portType != e_FM_PORT_TYPE_RX) && (p_PortParams->portType != e_FM_PORT_TYPE_RX_10G)) + /* for transmit & O/H ports */ + { + uint8_t enqTh; + uint8_t deqTh; + bool update = FALSE; + + /* update qmi ENQ/DEQ threshold */ + p_Fm->p_FmStateStruct->accumulatedNumOfDeqTnums += p_PortParams->deqPipelineDepth; + tmpReg = GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_gc); + enqTh = (uint8_t)(tmpReg>>8); + /* if enqTh is too big, we reduce it to the max value that is still OK */ + if(enqTh >= (QMI_MAX_NUM_OF_TNUMS - p_Fm->p_FmStateStruct->accumulatedNumOfDeqTnums)) + { + enqTh = (uint8_t)(QMI_MAX_NUM_OF_TNUMS - p_Fm->p_FmStateStruct->accumulatedNumOfDeqTnums - 1); + tmpReg &= ~QMI_CFG_ENQ_MASK; + tmpReg |= ((uint32_t)enqTh << 8); + update = TRUE; + } + + deqTh = (uint8_t)tmpReg; + /* if deqTh is too small, we enlarge it to the min value that is still OK. + deqTh may not be larger than 63 (QMI_MAX_NUM_OF_TNUMS-1). */ + if((deqTh <= p_Fm->p_FmStateStruct->accumulatedNumOfDeqTnums) && (deqTh < QMI_MAX_NUM_OF_TNUMS-1)) + { + deqTh = (uint8_t)(p_Fm->p_FmStateStruct->accumulatedNumOfDeqTnums + 1); + tmpReg &= ~QMI_CFG_DEQ_MASK; + tmpReg |= (uint32_t)deqTh; + update = TRUE; + } + if(update) + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_gc, tmpReg); + } +#endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ + +#ifdef FM_LOW_END_RESTRICTION + if((hardwarePortId==0x1) || (hardwarePortId==0x29)) + { + if(p_Fm->p_FmStateStruct->lowEndRestriction) + { + XX_UnlockSpinlock(p_Fm->h_Spinlock); + RETURN_ERROR(MAJOR, E_NOT_AVAILABLE, ("OP #0 cannot work with Tx Port #1.")); + } + else + p_Fm->p_FmStateStruct->lowEndRestriction = TRUE; + } +#endif /* FM_LOW_END_RESTRICTION */ + + err = FmSetSizeOfFifo(p_Fm, + p_PortParams->hardwarePortId, + p_PortParams->portType, + p_PortParams->independentMode, + &p_PortParams->sizeOfFifo, + p_PortParams->extraSizeOfFifo, + p_PortParams->deqPipelineDepth, + NULL, + TRUE); + if(err) + { + XX_UnlockSpinlock(p_Fm->h_Spinlock); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + err = FmSetNumOfOpenDmas(p_Fm, p_PortParams->hardwarePortId, p_PortParams->numOfOpenDmas, p_PortParams->numOfExtraOpenDmas, TRUE); + if(err) + { + XX_UnlockSpinlock(p_Fm->h_Spinlock); + RETURN_ERROR(MAJOR, err, NO_MSG); + } + + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_ppid[hardwarePortId-1], (uint32_t)p_PortParams->liodnOffset); + + tmpReg = (uint32_t)(hardwarePortId << FPM_PORT_FM_CTL_PORTID_SHIFT); + if(p_PortParams->independentMode) + { + if((p_PortParams->portType==e_FM_PORT_TYPE_RX) || (p_PortParams->portType==e_FM_PORT_TYPE_RX_10G)) + tmpReg |= (FPM_PORT_FM_CTL1 << FPM_PRC_ORA_FM_CTL_SEL_SHIFT) |FPM_PORT_FM_CTL1; + else + tmpReg |= (FPM_PORT_FM_CTL2 << FPM_PRC_ORA_FM_CTL_SEL_SHIFT) |FPM_PORT_FM_CTL2; + } + else + { + tmpReg |= (FPM_PORT_FM_CTL2|FPM_PORT_FM_CTL1); + + /* order restoration */ + if(hardwarePortId%2) + tmpReg |= (FPM_PORT_FM_CTL1 << FPM_PRC_ORA_FM_CTL_SEL_SHIFT); + else + tmpReg |= (FPM_PORT_FM_CTL2 << FPM_PRC_ORA_FM_CTL_SEL_SHIFT); + } + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmpr, tmpReg); + + { +#ifdef FM_PARTITION_ARRAY + t_FmRevisionInfo revInfo; + + FM_GetRevision(p_Fm, &revInfo); + if (revInfo.majorRev >= 2) +#endif /* FM_PARTITION_ARRAY */ + { + /* set LIODN base for this port */ + tmpReg = GET_UINT32(p_Fm->p_FmDmaRegs->fmdmplr[hardwarePortId/2]); + if(hardwarePortId%2) + { + tmpReg &= ~FM_LIODN_BASE_MASK; + tmpReg |= (uint32_t)p_PortParams->liodnBase; + } + else + { + tmpReg &= ~(FM_LIODN_BASE_MASK<< DMA_LIODN_SHIFT); + tmpReg |= (uint32_t)p_PortParams->liodnBase << DMA_LIODN_SHIFT; + } + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmplr[hardwarePortId/2], tmpReg); + } + } + + FmGetPhysicalMuramBase(p_Fm, &p_PortParams->fmMuramPhysBaseAddr); + XX_UnlockSpinlock(p_Fm->h_Spinlock); + + return E_OK; +} + +void FmFreePortParams(t_Handle h_Fm,t_FmInterModulePortFreeParams *p_PortParams) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint32_t tmpReg; + uint8_t hardwarePortId = p_PortParams->hardwarePortId; + uint8_t numOfTasks; + t_Error err; + t_FmIpcPortFreeParams portParams; + t_FmIpcMsg msg; + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + portParams.hardwarePortId = p_PortParams->hardwarePortId; + portParams.enumPortType = (uint32_t)p_PortParams->portType; +#ifdef FM_QMI_DEQ_OPTIONS_SUPPORT + portParams.deqPipelineDepth = p_PortParams->deqPipelineDepth; +#endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ + memset(&msg, 0, sizeof(msg)); + msg.msgId = FM_FREE_PORT; + memcpy(msg.msgBody, &portParams, sizeof(portParams)); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId)+sizeof(portParams), + NULL, + NULL, + NULL, + NULL)) != E_OK) + REPORT_ERROR(MINOR, err, NO_MSG); + return; + } + + ASSERT_COND(IN_RANGE(1, hardwarePortId, 63)); + XX_LockSpinlock(p_Fm->h_Spinlock); + + + if(p_PortParams->portType == e_FM_PORT_TYPE_OH_HOST_COMMAND) + { + ASSERT_COND(p_Fm->hcPortInitialized); + p_Fm->hcPortInitialized = FALSE; + } + + p_Fm->p_FmStateStruct->portsTypes[hardwarePortId] = e_FM_PORT_TYPE_DUMMY; + + tmpReg = GET_UINT32(p_Fm->p_FmBmiRegs->fmbm_pp[hardwarePortId-1]); + /* free numOfTasks */ + numOfTasks = (uint8_t)(((tmpReg & BMI_NUM_OF_TASKS_MASK) >> BMI_NUM_OF_TASKS_SHIFT) + 1); + ASSERT_COND(p_Fm->p_FmStateStruct->accumulatedNumOfTasks >= numOfTasks); + p_Fm->p_FmStateStruct->accumulatedNumOfTasks -= numOfTasks; + + /* free numOfOpenDmas */ + ASSERT_COND(p_Fm->p_FmStateStruct->accumulatedNumOfOpenDmas >= ((tmpReg & BMI_NUM_OF_DMAS_MASK) >> BMI_NUM_OF_DMAS_SHIFT) + 1); + p_Fm->p_FmStateStruct->accumulatedNumOfOpenDmas -= (((tmpReg & BMI_NUM_OF_DMAS_MASK) >> BMI_NUM_OF_DMAS_SHIFT) + 1); + + /* update total num of DMA's with committed number of open DMAS, and max uncommitted pool. */ + tmpReg = GET_UINT32(p_Fm->p_FmBmiRegs->fmbm_cfg2) & ~BMI_CFG2_DMAS_MASK; + tmpReg |= (uint32_t)(p_Fm->p_FmStateStruct->accumulatedNumOfOpenDmas + p_Fm->p_FmStateStruct->extraOpenDmasPoolSize - 1) << BMI_CFG2_DMAS_SHIFT; + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_cfg2, tmpReg); + + /* free sizeOfFifo */ + tmpReg = GET_UINT32(p_Fm->p_FmBmiRegs->fmbm_pfs[hardwarePortId-1]); + ASSERT_COND(p_Fm->p_FmStateStruct->accumulatedFifoSize >= + (((tmpReg & BMI_FIFO_SIZE_MASK) + 1) * BMI_FIFO_UNITS)); + p_Fm->p_FmStateStruct->accumulatedFifoSize -= + (((tmpReg & BMI_FIFO_SIZE_MASK) + 1) * BMI_FIFO_UNITS); + + /* clear registers */ + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_pp[hardwarePortId-1], 0); + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_pfs[hardwarePortId-1], 0); + /* WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_ppid[hardwarePortId-1], 0); */ + +#ifdef FM_PORT_DISABLED_ERRATA_FMANx9 + /* this errata means that when a port is taken down, other port may not use its + * resources for a while as it may still be using it (in case of reject). + */ + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + XX_UDelay(100000); + } +#endif /* FM_PORT_DISABLED_ERRATA_FMANx9 */ + +#ifdef FM_QMI_DEQ_OPTIONS_SUPPORT + if((p_PortParams->portType != e_FM_PORT_TYPE_RX) && (p_PortParams->portType != e_FM_PORT_TYPE_RX_10G)) + /* for transmit & O/H ports */ + { + uint8_t enqTh; + uint8_t deqTh; + + tmpReg = GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_gc); + /* update qmi ENQ/DEQ threshold */ + p_Fm->p_FmStateStruct->accumulatedNumOfDeqTnums -= p_PortParams->deqPipelineDepth; + + /* p_Fm->p_FmStateStruct->accumulatedNumOfDeqTnums is now smaller, + so we can enlarge enqTh */ + enqTh = (uint8_t)(QMI_MAX_NUM_OF_TNUMS - p_Fm->p_FmStateStruct->accumulatedNumOfDeqTnums - 1); + tmpReg &= ~QMI_CFG_ENQ_MASK; + tmpReg |= ((uint32_t)enqTh << QMI_CFG_ENQ_SHIFT); + + /* p_Fm->p_FmStateStruct->accumulatedNumOfDeqTnums is now smaller, + so we can reduce deqTh */ + deqTh = (uint8_t)(p_Fm->p_FmStateStruct->accumulatedNumOfDeqTnums + 1); + tmpReg &= ~QMI_CFG_DEQ_MASK; + tmpReg |= (uint32_t)deqTh; + + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_gc, tmpReg); + } +#endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ + +#ifdef FM_LOW_END_RESTRICTION + if((hardwarePortId==0x1) || (hardwarePortId==0x29)) + p_Fm->p_FmStateStruct->lowEndRestriction = FALSE; +#endif /* FM_LOW_END_RESTRICTION */ + XX_UnlockSpinlock(p_Fm->h_Spinlock); +} + +t_Error FmIsPortStalled(t_Handle h_Fm, uint8_t hardwarePortId, bool *p_IsStalled) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint32_t tmpReg; + t_Error err; + t_FmIpcMsg msg; + t_FmIpcReply reply; + uint32_t replyLength; + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_IS_PORT_STALLED; + msg.msgBody[0] = hardwarePortId; + replyLength = sizeof(uint32_t) + sizeof(uint8_t); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId)+sizeof(hardwarePortId), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + if (replyLength != (sizeof(uint32_t) + sizeof(uint8_t))) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + + *p_IsStalled = (bool)!!(*(uint8_t*)(reply.replyBody)); + + return (t_Error)(reply.error); + } + + tmpReg = GET_UINT32(p_Fm->p_FmFpmRegs->fmfp_ps[hardwarePortId]); + *p_IsStalled = (bool)!!(tmpReg & FPM_PS_STALLED); + + return E_OK; +} + +t_Error FmResumeStalledPort(t_Handle h_Fm, uint8_t hardwarePortId) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint32_t tmpReg; + t_Error err; + bool isStalled; + t_FmIpcMsg msg; + t_FmIpcReply reply; + uint32_t replyLength; + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_RESUME_STALLED_PORT; + msg.msgBody[0] = hardwarePortId; + replyLength = sizeof(uint32_t); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId) + sizeof(hardwarePortId), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + if (replyLength != sizeof(uint32_t)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + return (t_Error)(reply.error); + } + + /* Get port status */ + err = FmIsPortStalled(h_Fm, hardwarePortId, &isStalled); + if(err) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Can't get port status")); + if (!isStalled) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Port is not stalled")); + + tmpReg = (uint32_t)((hardwarePortId << FPM_PORT_FM_CTL_PORTID_SHIFT) | FPM_PRC_REALSE_STALLED); + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmpr, tmpReg); + + return E_OK; +} + +t_Error FmResetMac(t_Handle h_Fm, e_FmMacType type, uint8_t macId) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint32_t bitMask, timeout = 1000; + t_FmIpcMacParams macParams; + t_Error err; + t_FmIpcMsg msg; + t_FmIpcReply reply; + uint32_t replyLength; + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + if(p_Fm->h_IpcSessions[0]) + { + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + macParams.id = macId; + macParams.enumType = (uint32_t)type; + msg.msgId = FM_RESET_MAC; + memcpy(msg.msgBody, &macParams, sizeof(macParams)); + replyLength = sizeof(uint32_t); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId)+sizeof(macParams), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + if (replyLength != sizeof(uint32_t)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + return (t_Error)(reply.error); + } + else + if(!p_Fm->p_FmFpmRegs) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("No IPC and no registers address")); + } + + /* Get the relevant bit mask */ + if (type == e_FM_MAC_10G) + { + switch(macId) + { + case(0): + bitMask = FPM_RSTC_10G0_RESET; + break; + default: + RETURN_ERROR(MINOR, E_INVALID_VALUE, ("Illegal MAC Id")); + } + } + else + { + switch(macId) + { + case(0): + bitMask = FPM_RSTC_1G0_RESET; + break; + case(1): + bitMask = FPM_RSTC_1G1_RESET; + break; + case(2): + bitMask = FPM_RSTC_1G2_RESET; + break; + case(3): + bitMask = FPM_RSTC_1G3_RESET; + break; + case(4): + bitMask = FPM_RSTC_1G4_RESET; + break; + default: + RETURN_ERROR(MINOR, E_INVALID_VALUE, ("Illegal MAC Id")); + } + } + + /* reset */ + WRITE_UINT32(p_Fm->p_FmFpmRegs->fmrstc, bitMask); + while ((GET_UINT32(p_Fm->p_FmFpmRegs->fmrstc) & bitMask) && + --timeout) ; + if (!timeout) + return ERROR_CODE(E_TIMEOUT); + return E_OK; +} + +t_Error FmSetMacMaxFrame(t_Handle h_Fm, e_FmMacType type, uint8_t macId, uint16_t mtu) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + t_FmIpcMacMaxFrameParams macMaxFrameLengthParams; + t_Error err; + t_FmIpcMsg msg; + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + macMaxFrameLengthParams.macParams.id = macId; + macMaxFrameLengthParams.macParams.enumType = (uint32_t)type; + macMaxFrameLengthParams.maxFrameLength = (uint16_t)mtu; + msg.msgId = FM_SET_MAC_MAX_FRAME; + memcpy(msg.msgBody, &macMaxFrameLengthParams, sizeof(macMaxFrameLengthParams)); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId)+sizeof(macMaxFrameLengthParams), + NULL, + NULL, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + return E_OK; + } + +#if (defined(FM_MAX_NUM_OF_10G_MACS) && (FM_MAX_NUM_OF_10G_MACS)) + if (type == e_FM_MAC_10G) + p_Fm->p_FmStateStruct->macMaxFrameLengths10G[macId] = mtu; + else +#else + UNUSED(type); +#endif /* (defined(FM_MAX_NUM_OF_10G_MACS) && ... */ + p_Fm->p_FmStateStruct->macMaxFrameLengths1G[macId] = mtu; + + return E_OK; +} + +uint16_t FmGetClockFreq(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + /* for MC environment: this depends on the + * fact that fmClkFreq was properly initialized at "init". */ + return p_Fm->p_FmStateStruct->fmClkFreq; +} + +uint32_t FmGetTimeStampScale(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + t_Error err; + t_FmIpcMsg msg; + t_FmIpcReply reply; + uint32_t replyLength, timeStamp; + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_GET_TIMESTAMP_SCALE; + replyLength = sizeof(uint32_t) + sizeof(uint32_t); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + if(replyLength != (sizeof(uint32_t) + sizeof(uint32_t))) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + + memcpy((uint8_t*)&timeStamp, reply.replyBody, sizeof(uint32_t)); + return timeStamp; + } + + if(!p_Fm->p_FmStateStruct->enabledTimeStamp) + FmEnableTimeStamp(p_Fm); + + return p_Fm->p_FmStateStruct->count1MicroBit; +} + +bool FmRamsEccIsExternalCtl(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint32_t tmpReg; + + tmpReg = GET_UINT32(p_Fm->p_FmFpmRegs->fmrcr); + if(tmpReg & FPM_RAM_CTL_RAMS_ECC_EN_SRC_SEL) + return TRUE; + else + return FALSE; +} + +t_Error FmEnableRamsEcc(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + + p_Fm->p_FmStateStruct->ramsEccOwners++; + p_Fm->p_FmStateStruct->internalCall = TRUE; + + return FM_EnableRamsEcc(p_Fm); +} + +t_Error FmDisableRamsEcc(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + + ASSERT_COND(p_Fm->p_FmStateStruct->ramsEccOwners); + p_Fm->p_FmStateStruct->ramsEccOwners--; + + if(p_Fm->p_FmStateStruct->ramsEccOwners==0) + { + p_Fm->p_FmStateStruct->internalCall = TRUE; + return FM_DisableRamsEcc(p_Fm); + } + return E_OK; +} + +uint8_t FmGetGuestId(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + return p_Fm->guestId; +} + +bool FmIsMaster(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + return (p_Fm->guestId == NCSW_MASTER_ID); +} + +t_Error FmSetSizeOfFifo(t_Handle h_Fm, + uint8_t hardwarePortId, + e_FmPortType portType, + bool independentMode, + uint32_t *p_SizeOfFifo, + uint32_t extraSizeOfFifo, + uint8_t deqPipelineDepth, + t_FmInterModulePortRxPoolsParams *p_RxPoolsParams, + bool initialConfig) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint8_t relativePortId; + uint16_t macMaxFrameLength = 0, oldVal; + uint32_t minFifoSizeRequired = 0, sizeOfFifo, tmpReg = 0; + t_FmIpcPortFifoParams fifoParams; + t_Error err; + + ASSERT_COND(IN_RANGE(1, hardwarePortId, 63)); + ASSERT_COND(initialConfig || p_RxPoolsParams); + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + t_FmIpcMsg msg; + t_FmIpcReply reply; + uint32_t replyLength; + + ASSERT_COND(p_RxPoolsParams); + + memset(&fifoParams, 0, sizeof(fifoParams)); + fifoParams.rsrcParams.hardwarePortId = hardwarePortId; + fifoParams.rsrcParams.val = *p_SizeOfFifo; + fifoParams.rsrcParams.extra = extraSizeOfFifo; + fifoParams.enumPortType = (uint32_t)portType; + fifoParams.boolIndependentMode = (uint8_t)independentMode; + fifoParams.deqPipelineDepth = deqPipelineDepth; + fifoParams.numOfPools = p_RxPoolsParams->numOfPools; + fifoParams.secondLargestBufSize = p_RxPoolsParams->secondLargestBufSize; + fifoParams.largestBufSize = p_RxPoolsParams->largestBufSize; + fifoParams.boolInitialConfig = (uint8_t)initialConfig; + + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_SET_SIZE_OF_FIFO; + memcpy(msg.msgBody, &fifoParams, sizeof(fifoParams)); + replyLength = sizeof(uint32_t) + sizeof(uint32_t); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId) + sizeof(fifoParams), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + if (replyLength != (sizeof(uint32_t) + sizeof(uint32_t))) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + memcpy((uint8_t*)p_SizeOfFifo, reply.replyBody, sizeof(uint32_t)); + + return (t_Error)(reply.error); + } + sizeOfFifo = *p_SizeOfFifo; + /* if neseccary (cases where frame length is relevant), update sizeOfFifo field. */ + if((portType == e_FM_PORT_TYPE_TX) || ((portType == e_FM_PORT_TYPE_RX) && independentMode)) + { + HW_PORT_ID_TO_SW_PORT_ID(relativePortId, hardwarePortId); + ASSERT_COND(relativePortId < FM_MAX_NUM_OF_1G_MACS); + macMaxFrameLength = p_Fm->p_FmStateStruct->macMaxFrameLengths1G[relativePortId]; + } + +#if (defined(FM_MAX_NUM_OF_10G_MACS) && (FM_MAX_NUM_OF_10G_MACS)) + if((portType == e_FM_PORT_TYPE_TX_10G) || ((portType == e_FM_PORT_TYPE_RX_10G) && independentMode)) + { + HW_PORT_ID_TO_SW_PORT_ID(relativePortId, hardwarePortId); + ASSERT_COND(relativePortId < FM_MAX_NUM_OF_10G_MACS); + macMaxFrameLength = p_Fm->p_FmStateStruct->macMaxFrameLengths10G[relativePortId]; + } +#endif /* (defined(FM_MAX_NUM_OF_10G_MACS) && ... */ + + /*************************/ + /* TX PORTS */ + /*************************/ + if((portType == e_FM_PORT_TYPE_TX) || (portType == e_FM_PORT_TYPE_TX_10G)) + { + if(independentMode) + minFifoSizeRequired = (uint32_t)((macMaxFrameLength % BMI_FIFO_UNITS ? + (macMaxFrameLength/BMI_FIFO_UNITS + 1) * BMI_FIFO_UNITS : + macMaxFrameLength) + + (3*BMI_FIFO_UNITS)); + else + minFifoSizeRequired = (uint32_t)((macMaxFrameLength % BMI_FIFO_UNITS ? + (macMaxFrameLength/BMI_FIFO_UNITS + 1) * BMI_FIFO_UNITS : + macMaxFrameLength) + + (deqPipelineDepth+3)*BMI_FIFO_UNITS); + } + /*************************/ + /* RX IM PORTS */ + /*************************/ + else if(((portType == e_FM_PORT_TYPE_RX) || (portType == e_FM_PORT_TYPE_RX_10G)) && independentMode) + minFifoSizeRequired = (uint32_t)(((macMaxFrameLength % BMI_FIFO_UNITS) ? + ((macMaxFrameLength/BMI_FIFO_UNITS + 1) * BMI_FIFO_UNITS) : + macMaxFrameLength) + + (4*BMI_FIFO_UNITS)); + + /* for Rx (non-Im) ports or OP, buffer pools are relevant for fifo size. + If this routine is called as part of the "GetSet" routine, initialConfig is TRUE + and these checks where done in the port routine. + If it is called by an explicit user request ("SetSizeOfFifo"), than these parameters + should be checked/updated */ + if(!initialConfig && + ((portType == e_FM_PORT_TYPE_OH_OFFLINE_PARSING) || + (((portType == e_FM_PORT_TYPE_RX) || (portType == e_FM_PORT_TYPE_RX_10G)) && !independentMode))) + { + if((portType == e_FM_PORT_TYPE_RX) || (portType == e_FM_PORT_TYPE_RX_10G)) + { + /*************************/ + /* RX non-IM PORTS */ + /*************************/ +#ifdef FM_FIFO_ALLOCATION_OLD_ALG + t_FmRevisionInfo revInfo; + + FM_GetRevision(p_Fm, &revInfo); + if(revInfo.majorRev != 4) + minFifoSizeRequired = (uint32_t)(((p_RxPoolsParams->largestBufSize % BMI_FIFO_UNITS) ? + ((p_RxPoolsParams->largestBufSize/BMI_FIFO_UNITS + 1) * BMI_FIFO_UNITS) : + p_RxPoolsParams->largestBufSize) + + (7*BMI_FIFO_UNITS)); + else +#endif /* FM_FIFO_ALLOCATION_OLD_ALG */ + { + if(p_RxPoolsParams->numOfPools == 1) + minFifoSizeRequired = 8*BMI_FIFO_UNITS; + else + { + minFifoSizeRequired = (uint32_t)(((p_RxPoolsParams->secondLargestBufSize % BMI_FIFO_UNITS) ? + ((p_RxPoolsParams->secondLargestBufSize/BMI_FIFO_UNITS + 1) * BMI_FIFO_UNITS) : + p_RxPoolsParams->secondLargestBufSize) + + (7*BMI_FIFO_UNITS)); + if((sizeOfFifo < minFifoSizeRequired)) + { + DBG(WARNING, ("User set FIFO size for Rx port is not optimized. (not modified by driver)")); + minFifoSizeRequired = 8*BMI_FIFO_UNITS; + } + } + } + } + else + { + /*************************/ + /* OP PORTS */ + /*************************/ + /* check if pool size is not too big */ + if(p_RxPoolsParams->largestBufSize > sizeOfFifo ) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Largest pool size is bigger than ports committed fifo size")); + } + } + + + if (minFifoSizeRequired && (sizeOfFifo < minFifoSizeRequired)) + { + sizeOfFifo = minFifoSizeRequired; + DBG(WARNING, ("FIFO size enlarged to %d for port %#x", minFifoSizeRequired, hardwarePortId)); + } + + if(initialConfig) + oldVal = 0; + else + { + tmpReg = GET_UINT32(p_Fm->p_FmBmiRegs->fmbm_pfs[hardwarePortId-1]); + /* read into oldVal the current extra fifo size */ + oldVal = (uint16_t)((((tmpReg & BMI_EXTRA_FIFO_SIZE_MASK) + 1)*BMI_FIFO_UNITS) >> BMI_EXTRA_FIFO_SIZE_SHIFT); + } + + if(extraSizeOfFifo > oldVal) + p_Fm->p_FmStateStruct->extraFifoPoolSize = MAX(p_Fm->p_FmStateStruct->extraFifoPoolSize, extraSizeOfFifo); + + if(!initialConfig) + /* read into oldVal the current num of tasks */ + oldVal = (uint16_t)(((tmpReg & BMI_FIFO_SIZE_MASK) + 1)*BMI_FIFO_UNITS); + + /* check that there are enough uncommitted fifo size */ + if((p_Fm->p_FmStateStruct->accumulatedFifoSize - oldVal + sizeOfFifo) > + (p_Fm->p_FmStateStruct->totalFifoSize - p_Fm->p_FmStateStruct->extraFifoPoolSize)) + RETURN_ERROR(MAJOR, E_NOT_AVAILABLE, ("Requested fifo size and extra size exceed total FIFO size.")); + else + { + /* update acummulated */ + ASSERT_COND(p_Fm->p_FmStateStruct->accumulatedFifoSize >= oldVal); + p_Fm->p_FmStateStruct->accumulatedFifoSize -= oldVal; + p_Fm->p_FmStateStruct->accumulatedFifoSize += sizeOfFifo; + /* calculate reg */ + tmpReg = (uint32_t)((sizeOfFifo/BMI_FIFO_UNITS - 1) | + ((extraSizeOfFifo/BMI_FIFO_UNITS) << BMI_EXTRA_FIFO_SIZE_SHIFT)); + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_pfs[hardwarePortId-1], tmpReg); + } + *p_SizeOfFifo = sizeOfFifo; + + return E_OK; +} + +t_Error FmSetNumOfTasks(t_Handle h_Fm, + uint8_t hardwarePortId, + uint8_t numOfTasks, + uint8_t numOfExtraTasks, + bool initialConfig) +{ + t_Fm *p_Fm = (t_Fm *)h_Fm; + uint8_t oldVal; + uint32_t tmpReg = 0; + t_FmIpcPortRsrcParams rsrcParams; + t_Error err; + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + t_FmIpcMsg msg; + t_FmIpcReply reply; + uint32_t replyLength; + + rsrcParams.hardwarePortId = hardwarePortId; + rsrcParams.val = numOfTasks; + rsrcParams.extra = numOfExtraTasks; + rsrcParams.boolInitialConfig = (uint8_t)initialConfig; + + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_SET_NUM_OF_TASKS; + memcpy(msg.msgBody, &rsrcParams, sizeof(rsrcParams)); + replyLength = sizeof(uint32_t); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId) + sizeof(rsrcParams), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + if (replyLength != sizeof(uint32_t)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + return (t_Error)(reply.error); + } + + ASSERT_COND(IN_RANGE(1, hardwarePortId, 63)); + + if(initialConfig) + oldVal = 0; + else + { + tmpReg = GET_UINT32(p_Fm->p_FmBmiRegs->fmbm_pp[hardwarePortId-1]); + /* read into oldVal the current extra tasks */ + oldVal = (uint8_t)((tmpReg & BMI_NUM_OF_EXTRA_TASKS_MASK) >> BMI_EXTRA_NUM_OF_TASKS_SHIFT); + } + + if(numOfExtraTasks > oldVal) + p_Fm->p_FmStateStruct->extraTasksPoolSize = (uint8_t)MAX(p_Fm->p_FmStateStruct->extraTasksPoolSize, numOfExtraTasks); + + if(!initialConfig) + /* read into oldVal the current num of tasks */ + oldVal = (uint8_t)(((tmpReg & BMI_NUM_OF_TASKS_MASK) >> BMI_NUM_OF_TASKS_SHIFT) + 1); + + /* check that there are enough uncommitted tasks */ + if((p_Fm->p_FmStateStruct->accumulatedNumOfTasks - oldVal + numOfTasks) > + (p_Fm->p_FmStateStruct->totalNumOfTasks - p_Fm->p_FmStateStruct->extraTasksPoolSize)) + RETURN_ERROR(MAJOR, E_NOT_AVAILABLE, + ("Requested numOfTasks and extra tasks pool for fm%d exceed total numOfTasks.", + p_Fm->p_FmStateStruct->fmId)); + else + { + ASSERT_COND(p_Fm->p_FmStateStruct->accumulatedNumOfTasks >= oldVal); + /* update acummulated */ + p_Fm->p_FmStateStruct->accumulatedNumOfTasks -= oldVal; + p_Fm->p_FmStateStruct->accumulatedNumOfTasks += numOfTasks; + /* calculate reg */ + tmpReg = GET_UINT32(p_Fm->p_FmBmiRegs->fmbm_pp[hardwarePortId-1]) & ~(BMI_NUM_OF_TASKS_MASK | BMI_NUM_OF_EXTRA_TASKS_MASK); + tmpReg |= (uint32_t)(((numOfTasks-1) << BMI_NUM_OF_TASKS_SHIFT) | + (numOfExtraTasks << BMI_EXTRA_NUM_OF_TASKS_SHIFT)); + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_pp[hardwarePortId-1],tmpReg); + } + + return E_OK; +} + +t_Error FmSetNumOfOpenDmas(t_Handle h_Fm, + uint8_t hardwarePortId, + uint8_t numOfOpenDmas, + uint8_t numOfExtraOpenDmas, + bool initialConfig) + +{ + t_Fm *p_Fm = (t_Fm *)h_Fm; + uint8_t oldVal; + uint32_t tmpReg = 0; + t_FmIpcPortRsrcParams rsrcParams; + t_Error err; + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + t_FmIpcMsg msg; + t_FmIpcReply reply; + uint32_t replyLength; + + rsrcParams.hardwarePortId = hardwarePortId; + rsrcParams.val = numOfOpenDmas; + rsrcParams.extra = numOfExtraOpenDmas; + rsrcParams.boolInitialConfig = (uint8_t)initialConfig; + + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_SET_NUM_OF_OPEN_DMAS; + memcpy(msg.msgBody, &rsrcParams, sizeof(rsrcParams)); + replyLength = sizeof(uint32_t); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId) + sizeof(rsrcParams), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + if (replyLength != sizeof(uint32_t)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + return (t_Error)(reply.error); + } + + ASSERT_COND(IN_RANGE(1, hardwarePortId, 63)); + + if(initialConfig) + oldVal = 0; + else + { + tmpReg = GET_UINT32(p_Fm->p_FmBmiRegs->fmbm_pp[hardwarePortId-1]); + /* read into oldVal the current extra tasks */ + oldVal = (uint8_t)((tmpReg & BMI_NUM_OF_EXTRA_DMAS_MASK) >> BMI_EXTRA_NUM_OF_DMAS_SHIFT); + } + + if(numOfExtraOpenDmas > oldVal) + p_Fm->p_FmStateStruct->extraOpenDmasPoolSize = (uint8_t)MAX(p_Fm->p_FmStateStruct->extraOpenDmasPoolSize, numOfExtraOpenDmas); + + if(!initialConfig) + /* read into oldVal the current num of tasks */ + oldVal = (uint8_t)(((tmpReg & BMI_NUM_OF_DMAS_MASK) >> BMI_NUM_OF_DMAS_SHIFT) + 1); + + /* check that there are enough uncommitted open DMA's */ + ASSERT_COND(p_Fm->p_FmStateStruct->accumulatedNumOfOpenDmas >= oldVal); + if((p_Fm->p_FmStateStruct->accumulatedNumOfOpenDmas - oldVal + numOfOpenDmas) > + p_Fm->p_FmStateStruct->maxNumOfOpenDmas) + RETURN_ERROR(MAJOR, E_NOT_AVAILABLE, + ("Requested numOfOpenDmas for fm%d exceeds total numOfOpenDmas.", + p_Fm->p_FmStateStruct->fmId)); + else + { + /* update acummulated */ + p_Fm->p_FmStateStruct->accumulatedNumOfOpenDmas -= oldVal; + p_Fm->p_FmStateStruct->accumulatedNumOfOpenDmas += numOfOpenDmas; + /* calculate reg */ + tmpReg = GET_UINT32(p_Fm->p_FmBmiRegs->fmbm_pp[hardwarePortId-1]) & ~(BMI_NUM_OF_DMAS_MASK | BMI_NUM_OF_EXTRA_DMAS_MASK); + tmpReg |= (uint32_t)(((numOfOpenDmas-1) << BMI_NUM_OF_DMAS_SHIFT) | + (numOfExtraOpenDmas << BMI_EXTRA_NUM_OF_DMAS_SHIFT)); + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_pp[hardwarePortId-1], tmpReg); + + /* update total num of DMA's with committed number of open DMAS, and max uncommitted pool. */ + tmpReg = GET_UINT32(p_Fm->p_FmBmiRegs->fmbm_cfg2) & ~BMI_CFG2_DMAS_MASK; + tmpReg |= (uint32_t)(p_Fm->p_FmStateStruct->accumulatedNumOfOpenDmas + p_Fm->p_FmStateStruct->extraOpenDmasPoolSize - 1) << BMI_CFG2_DMAS_SHIFT; + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_cfg2, tmpReg); + } + + return E_OK; +} + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +t_Error FmDumpPortRegs (t_Handle h_Fm,uint8_t hardwarePortId) +{ + t_Fm *p_Fm = (t_Fm *)h_Fm; + t_FmIpcMsg msg; + t_Error err; + + DECLARE_DUMP; + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + msg.msgId = FM_DUMP_PORT_REGS; + msg.msgBody[0] = hardwarePortId; + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId)+sizeof(hardwarePortId), + NULL, + NULL, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + return E_OK; + } + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + + DUMP_TITLE(&p_Fm->p_FmBmiRegs->fmbm_pp[hardwarePortId-1], ("fmbm_pp for port %u", (hardwarePortId))); + DUMP_MEMORY(&p_Fm->p_FmBmiRegs->fmbm_pp[hardwarePortId-1], sizeof(uint32_t)); + + DUMP_TITLE(&p_Fm->p_FmBmiRegs->fmbm_pfs[hardwarePortId-1], ("fmbm_pfs for port %u", (hardwarePortId ))); + DUMP_MEMORY(&p_Fm->p_FmBmiRegs->fmbm_pfs[hardwarePortId-1], sizeof(uint32_t)); + + DUMP_TITLE(&p_Fm->p_FmBmiRegs->fmbm_ppid[hardwarePortId-1], ("bm_ppid for port %u", (hardwarePortId))); + DUMP_MEMORY(&p_Fm->p_FmBmiRegs->fmbm_ppid[hardwarePortId-1], sizeof(uint32_t)); + + return E_OK; +} +#endif /* (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) */ + + +/*****************************************************************************/ +/* API Init unit functions */ +/*****************************************************************************/ +t_Handle FM_Config(t_FmParams *p_FmParam) +{ + t_Fm *p_Fm; + uint8_t i; + uintptr_t baseAddr; + + SANITY_CHECK_RETURN_VALUE(p_FmParam, E_NULL_POINTER, NULL); + SANITY_CHECK_RETURN_VALUE(((p_FmParam->firmware.p_Code && p_FmParam->firmware.size) || + (!p_FmParam->firmware.p_Code && !p_FmParam->firmware.size)), + E_INVALID_VALUE, NULL); + + baseAddr = p_FmParam->baseAddr; + + /* Allocate FM structure */ + p_Fm = (t_Fm *) XX_Malloc(sizeof(t_Fm)); + if (!p_Fm) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM driver structure")); + return NULL; + } + memset(p_Fm, 0, sizeof(t_Fm)); + + p_Fm->p_FmStateStruct = (t_FmStateStruct *) XX_Malloc(sizeof(t_FmStateStruct)); + if (!p_Fm->p_FmStateStruct) + { + XX_Free(p_Fm); + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM Status structure")); + return NULL; + } + memset(p_Fm->p_FmStateStruct, 0, sizeof(t_FmStateStruct)); + + /* Initialize FM parameters which will be kept by the driver */ + p_Fm->p_FmStateStruct->fmId = p_FmParam->fmId; + p_Fm->guestId = p_FmParam->guestId; + + for(i=0; ip_FmStateStruct->portsTypes[i] = e_FM_PORT_TYPE_DUMMY; + + /* Allocate the FM driver's parameters structure */ + p_Fm->p_FmDriverParam = (t_FmDriverParam *)XX_Malloc(sizeof(t_FmDriverParam)); + if (!p_Fm->p_FmDriverParam) + { + XX_Free(p_Fm->p_FmStateStruct); + XX_Free(p_Fm); + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM driver parameters")); + return NULL; + } + memset(p_Fm->p_FmDriverParam, 0, sizeof(t_FmDriverParam)); + + /* Initialize FM parameters which will be kept by the driver */ + p_Fm->p_FmStateStruct->fmId = p_FmParam->fmId; + p_Fm->h_FmMuram = p_FmParam->h_FmMuram; + p_Fm->h_App = p_FmParam->h_App; + p_Fm->p_FmStateStruct->fmClkFreq = p_FmParam->fmClkFreq; + p_Fm->f_Exception = p_FmParam->f_Exception; + p_Fm->f_BusError = p_FmParam->f_BusError; + p_Fm->p_FmFpmRegs = (t_FmFpmRegs *)UINT_TO_PTR(baseAddr + FM_MM_FPM); + p_Fm->p_FmBmiRegs = (t_FmBmiRegs *)UINT_TO_PTR(baseAddr + FM_MM_BMI); + p_Fm->p_FmQmiRegs = (t_FmQmiRegs *)UINT_TO_PTR(baseAddr + FM_MM_QMI); + p_Fm->p_FmDmaRegs = (t_FmDmaRegs *)UINT_TO_PTR(baseAddr + FM_MM_DMA); + p_Fm->baseAddr = baseAddr; + p_Fm->p_FmStateStruct->irq = p_FmParam->irq; + p_Fm->p_FmStateStruct->errIrq = p_FmParam->errIrq; + p_Fm->hcPortInitialized = FALSE; + p_Fm->independentMode = FALSE; + p_Fm->p_FmStateStruct->ramsEccEnable = FALSE; + p_Fm->p_FmStateStruct->totalNumOfTasks = DEFAULT_totalNumOfTasks; + p_Fm->p_FmStateStruct->totalFifoSize = DEFAULT_totalFifoSize; + p_Fm->p_FmStateStruct->maxNumOfOpenDmas = DEFAULT_maxNumOfOpenDmas; + p_Fm->p_FmStateStruct->extraFifoPoolSize = FM_MAX_NUM_OF_RX_PORTS*BMI_FIFO_UNITS; + p_Fm->p_FmStateStruct->exceptions = DEFAULT_exceptions; + for(i = 0;ip_FmStateStruct->macMaxFrameLengths1G[i] = DEFAULT_mtu; +#if defined(FM_MAX_NUM_OF_10G_MACS) && (FM_MAX_NUM_OF_10G_MACS) + for(i = 0;ip_FmStateStruct->macMaxFrameLengths10G[i] = DEFAULT_mtu; +#endif /*defined(FM_MAX_NUM_OF_10G_MACS) && (FM_MAX_NUM_OF_10G_MACS)*/ + + p_Fm->h_Spinlock = XX_InitSpinlock(); + if (!p_Fm->h_Spinlock) + { + XX_Free(p_Fm->p_FmDriverParam); + XX_Free(p_Fm->p_FmStateStruct); + XX_Free(p_Fm); + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("cant allocate spinlock!")); + return NULL; + } + +#ifdef FM_PARTITION_ARRAY + /* Initialize FM driver parameters parameters (for initialization phase only) */ + memcpy(p_Fm->p_FmDriverParam->liodnBasePerPort, p_FmParam->liodnBasePerPort, FM_SIZE_OF_LIODN_TABLE*sizeof(uint16_t)); +#endif /* FM_PARTITION_ARRAY */ + + /*p_Fm->p_FmDriverParam->numOfPartitions = p_FmParam->numOfPartitions; */ + p_Fm->p_FmDriverParam->enCounters = FALSE; + + p_Fm->p_FmDriverParam->resetOnInit = DEFAULT_resetOnInit; + + p_Fm->p_FmDriverParam->thresholds.dispLimit = DEFAULT_dispLimit; + p_Fm->p_FmDriverParam->thresholds.prsDispTh = DEFAULT_prsDispTh; + p_Fm->p_FmDriverParam->thresholds.plcrDispTh = DEFAULT_plcrDispTh; + p_Fm->p_FmDriverParam->thresholds.kgDispTh = DEFAULT_kgDispTh; + p_Fm->p_FmDriverParam->thresholds.bmiDispTh = DEFAULT_bmiDispTh; + p_Fm->p_FmDriverParam->thresholds.qmiEnqDispTh = DEFAULT_qmiEnqDispTh; + p_Fm->p_FmDriverParam->thresholds.qmiDeqDispTh = DEFAULT_qmiDeqDispTh; + p_Fm->p_FmDriverParam->thresholds.fmCtl1DispTh = DEFAULT_fmCtl1DispTh; + p_Fm->p_FmDriverParam->thresholds.fmCtl2DispTh = DEFAULT_fmCtl2DispTh; + + p_Fm->p_FmDriverParam->dmaStopOnBusError = DEFAULT_dmaStopOnBusError; + + p_Fm->p_FmDriverParam->dmaCacheOverride = DEFAULT_cacheOverride; + p_Fm->p_FmDriverParam->dmaAidMode = DEFAULT_aidMode; + p_Fm->p_FmDriverParam->dmaAidOverride = DEFAULT_aidOverride; + p_Fm->p_FmDriverParam->dmaAxiDbgNumOfBeats = DEFAULT_axiDbgNumOfBeats; + p_Fm->p_FmDriverParam->dmaCamNumOfEntries = DEFAULT_dmaCamNumOfEntries; + p_Fm->p_FmDriverParam->dmaWatchdog = DEFAULT_dmaWatchdog; + + p_Fm->p_FmDriverParam->dmaCommQThresholds.clearEmergency = DEFAULT_dmaCommQLow; + p_Fm->p_FmDriverParam->dmaCommQThresholds.assertEmergency = DEFAULT_dmaCommQHigh; + p_Fm->p_FmDriverParam->dmaReadBufThresholds.clearEmergency = DEFAULT_dmaReadIntBufLow; + p_Fm->p_FmDriverParam->dmaReadBufThresholds.assertEmergency = DEFAULT_dmaReadIntBufHigh; + p_Fm->p_FmDriverParam->dmaWriteBufThresholds.clearEmergency = DEFAULT_dmaWriteIntBufLow; + p_Fm->p_FmDriverParam->dmaWriteBufThresholds.assertEmergency = DEFAULT_dmaWriteIntBufHigh; + p_Fm->p_FmDriverParam->dmaSosEmergency = DEFAULT_dmaSosEmergency; + + p_Fm->p_FmDriverParam->dmaDbgCntMode = DEFAULT_dmaDbgCntMode; + + p_Fm->p_FmDriverParam->dmaEnEmergency = FALSE; + p_Fm->p_FmDriverParam->dmaEnEmergencySmoother = FALSE; + p_Fm->p_FmDriverParam->catastrophicErr = DEFAULT_catastrophicErr; + p_Fm->p_FmDriverParam->dmaErr = DEFAULT_dmaErr; + p_Fm->p_FmDriverParam->haltOnExternalActivation = DEFAULT_haltOnExternalActivation; + p_Fm->p_FmDriverParam->haltOnUnrecoverableEccError = DEFAULT_haltOnUnrecoverableEccError; + p_Fm->p_FmDriverParam->enIramTestMode = FALSE; + p_Fm->p_FmDriverParam->enMuramTestMode = FALSE; + p_Fm->p_FmDriverParam->externalEccRamsEnable = DEFAULT_externalEccRamsEnable; + + p_Fm->p_FmDriverParam->fwVerify = DEFAULT_VerifyUcode; + p_Fm->p_FmDriverParam->firmware.size = p_FmParam->firmware.size; + if (p_Fm->p_FmDriverParam->firmware.size) + { + p_Fm->p_FmDriverParam->firmware.p_Code = (uint32_t *)XX_Malloc(p_Fm->p_FmDriverParam->firmware.size); + if (!p_Fm->p_FmDriverParam->firmware.p_Code) + { + XX_FreeSpinlock(p_Fm->h_Spinlock); + XX_Free(p_Fm->p_FmStateStruct); + XX_Free(p_Fm->p_FmDriverParam); + XX_Free(p_Fm); + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM firmware code")); + return NULL; + } + memcpy(p_Fm->p_FmDriverParam->firmware.p_Code, p_FmParam->firmware.p_Code, p_Fm->p_FmDriverParam->firmware.size); + } + + return p_Fm; +} + +/**************************************************************************//** + @Function FM_Init + + @Description Initializes the FM module + + @Param[in] h_Fm - FM module descriptor + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error FM_Init(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + t_FmDriverParam *p_FmDriverParam = NULL; + t_Error err = E_OK; + uint32_t tmpReg, cfgReg = 0; + int i; + uint16_t periodInFmClocks; + uint8_t remainder; + t_FmRevisionInfo revInfo; + + SANITY_CHECK_RETURN_ERROR(h_Fm, E_INVALID_HANDLE); + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + uint8_t isMasterAlive; + t_FmIpcMsg msg; + t_FmIpcReply reply; + uint32_t replyLength; + + /* build the FM guest partition IPC address */ + if(Sprint (p_Fm->fmModuleName, "FM_%d_%d",p_Fm->p_FmStateStruct->fmId, p_Fm->guestId) != (p_Fm->guestId<10 ? 6:7)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Sprint failed")); + + /* build the FM master partition IPC address */ + memset(p_Fm->fmIpcHandlerModuleName, 0, (sizeof(char)) * MODULE_NAME_SIZE); + if(Sprint (p_Fm->fmIpcHandlerModuleName[0], "FM_%d_%d",p_Fm->p_FmStateStruct->fmId, NCSW_MASTER_ID) != 6) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Sprint failed")); + + for(i=0;iintrMng[i].f_Isr = UnimplementedIsr; + + p_Fm->h_IpcSessions[0] = XX_IpcInitSession(p_Fm->fmIpcHandlerModuleName[0], p_Fm->fmModuleName); + if (p_Fm->h_IpcSessions[0]) + { + err = XX_IpcRegisterMsgHandler(p_Fm->fmModuleName, FmGuestHandleIpcMsgCB, p_Fm, FM_IPC_MAX_REPLY_SIZE); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_MASTER_IS_ALIVE; + msg.msgBody[0] = p_Fm->guestId; + replyLength = sizeof(uint32_t) + sizeof(uint8_t); + do + { + blockingFlag = TRUE; + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId)+sizeof(p_Fm->guestId), + (uint8_t*)&reply, + &replyLength, + IpcMsgCompletionCB, + h_Fm)) != E_OK) + REPORT_ERROR(MINOR, err, NO_MSG); + while(blockingFlag) ; + if(replyLength != (sizeof(uint32_t) + sizeof(uint8_t))) + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + isMasterAlive = *(uint8_t*)(reply.replyBody); + } while (!isMasterAlive); + + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_GET_CLK_FREQ; + replyLength = sizeof(uint32_t) + sizeof(p_Fm->p_FmStateStruct->fmClkFreq); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + if(replyLength != (sizeof(uint32_t) + sizeof(p_Fm->p_FmStateStruct->fmClkFreq))) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + memcpy((uint8_t*)&p_Fm->p_FmStateStruct->fmClkFreq, reply.replyBody, sizeof(uint16_t)); + } + else + { + DBG(WARNING, ("FM Guest mode - without IPC")); + if(!p_Fm->p_FmStateStruct->fmClkFreq ) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("No fmClkFreq configured for guest without IPC")); + if(!p_Fm->baseAddr) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("No baseAddr configured for guest without IPC")); + } + + XX_Free(p_Fm->p_FmDriverParam); + p_Fm->p_FmDriverParam = NULL; + + if ((p_Fm->guestId == NCSW_MASTER_ID) || + (p_Fm->h_IpcSessions[0])) + { + FM_DisableRamsEcc(p_Fm); + FmMuramClear(p_Fm->h_FmMuram); + FM_EnableRamsEcc(p_Fm); + } + + return E_OK; + } + + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + FM_GetRevision(p_Fm, &revInfo); + +#ifdef FM_NO_DISPATCH_RAM_ECC + if (revInfo.majorRev != 4) + p_Fm->p_FmStateStruct->exceptions &= ~FM_EX_BMI_DISPATCH_RAM_ECC; +#endif /* FM_NO_DISPATCH_RAM_ECC */ + +#ifdef FM_RAM_LIST_ERR_IRQ_ERRATA_FMAN8 + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + p_Fm->p_FmStateStruct->exceptions &= ~FM_EX_BMI_LIST_RAM_ECC; +#endif /* FM_RAM_LIST_ERR_IRQ_ERRATA_FMAN8 */ + +#ifdef FM_BMI_PIPELINE_ERR_IRQ_ERRATA_FMAN9 + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + p_Fm->p_FmStateStruct->exceptions &= ~FM_EX_BMI_PIPELINE_ECC; +#endif /* FM_BMI_PIPELINE_ERR_IRQ_ERRATA_FMAN9 */ + +#ifdef FM_QMI_NO_ECC_EXCEPTIONS + if (revInfo.majorRev == 4) + p_Fm->p_FmStateStruct->exceptions &= ~(FM_EX_QMI_SINGLE_ECC | FM_EX_QMI_DOUBLE_ECC); +#endif /* FM_QMI_NO_ECC_EXCEPTIONS */ + + CHECK_INIT_PARAMETERS(p_Fm, CheckFmParameters); + + p_FmDriverParam = p_Fm->p_FmDriverParam; + + FmMuramClear(p_Fm->h_FmMuram); + +#ifdef FM_UCODE_NOT_RESET_ERRATA_BUGZILLA6173 + if (p_FmDriverParam->resetOnInit) + { + t_FMIramRegs *p_Iram = (t_FMIramRegs *)UINT_TO_PTR(p_Fm->baseAddr + FM_MM_IMEM); + uint32_t debug_reg; + + /* write to IRAM first location the debug instruction */ + WRITE_UINT32(p_Iram->iadd, 0); + while (GET_UINT32(p_Iram->iadd) != 0) ; + WRITE_UINT32(p_Iram->idata, FM_UCODE_DEBUG_INSTRUCTION); + + WRITE_UINT32(p_Iram->iadd, 0); + while (GET_UINT32(p_Iram->iadd) != 0) ; + while (GET_UINT32(p_Iram->idata) != FM_UCODE_DEBUG_INSTRUCTION) ; + + /* Enable patch from IRAM */ + WRITE_UINT32(p_Iram->iready, IRAM_READY); + XX_UDelay(100); + + /* reset FMAN */ + WRITE_UINT32(p_Fm->p_FmFpmRegs->fmrstc, FPM_RSTC_FM_RESET); + XX_UDelay(100); + + /* verify breakpoint debug status register */ + debug_reg = GET_UINT32(*(uint32_t *)UINT_TO_PTR(p_Fm->baseAddr + FM_DEBUG_STATUS_REGISTER_OFFSET)); +#ifndef NCSW_LINUX + if(!debug_reg) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Invalid debug status register value = 0")); +#else + if(!debug_reg) + DBG(INFO,("Invalid debug status register value = 0")); +#endif + /*************************************/ + /* Load FMan-Controller code to Iram */ + /*************************************/ + if (ClearIRam(p_Fm) != E_OK) + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); + if (p_Fm->p_FmDriverParam->firmware.p_Code && + (LoadFmanCtrlCode(p_Fm) != E_OK)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); + XX_UDelay(100); + + /* reset FMAN again to start the microcode */ + WRITE_UINT32(p_Fm->p_FmFpmRegs->fmrstc, FPM_RSTC_FM_RESET); + XX_UDelay(1000); + } + else + { +#endif /* FM_UCODE_NOT_RESET_ERRATA_BUGZILLA6173 */ + if(p_FmDriverParam->resetOnInit) + { + WRITE_UINT32(p_Fm->p_FmFpmRegs->fmrstc, FPM_RSTC_FM_RESET); + XX_UDelay(100); + } + + /*************************************/ + /* Load FMan-Controller code to Iram */ + /*************************************/ + if (ClearIRam(p_Fm) != E_OK) + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); + if (p_Fm->p_FmDriverParam->firmware.p_Code && + (LoadFmanCtrlCode(p_Fm) != E_OK)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); +#ifdef FM_UCODE_NOT_RESET_ERRATA_BUGZILLA6173 + } +#endif /* FM_UCODE_NOT_RESET_ERRATA_BUGZILLA6173 */ + +#ifdef FM_CAPWAP_SUPPORT + /* save first 256 byte in MURAM */ + p_Fm->resAddr = PTR_TO_UINT(FM_MURAM_AllocMem(p_Fm->h_FmMuram, 256, 0)); + if (!p_Fm->resAddr) + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("MURAM alloc for reserved Area failed")); + + WRITE_BLOCK(UINT_TO_PTR(p_Fm->resAddr), 0, 256); +#endif /* FM_CAPWAP_SUPPORT */ + + /* General FM driver initialization */ + p_Fm->fmMuramPhysBaseAddr = (uint64_t)(XX_VirtToPhys(UINT_TO_PTR(p_Fm->baseAddr + FM_MM_MURAM))); + for(i=0;iintrMng[i].f_Isr = UnimplementedIsr; + for(i=0;ifmanCtrlIntr[i].f_Isr = UnimplementedFmanCtrlIsr; + + /**********************/ + /* Init DMA Registers */ + /**********************/ + /* clear status reg events */ + tmpReg = (DMA_STATUS_BUS_ERR | DMA_STATUS_READ_ECC | DMA_STATUS_SYSTEM_WRITE_ECC | DMA_STATUS_FM_WRITE_ECC); + /*tmpReg |= (DMA_STATUS_SYSTEM_DPEXT_ECC | DMA_STATUS_FM_DPEXT_ECC | DMA_STATUS_SYSTEM_DPDAT_ECC | DMA_STATUS_FM_DPDAT_ECC | DMA_STATUS_FM_SPDAT_ECC);*/ + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmsr, GET_UINT32(p_Fm->p_FmDmaRegs->fmdmsr) | tmpReg); + + /* configure mode register */ + tmpReg = 0; + tmpReg |= p_FmDriverParam->dmaCacheOverride << DMA_MODE_CACHE_OR_SHIFT; + if(p_FmDriverParam->dmaAidOverride) + tmpReg |= DMA_MODE_AID_OR; + if (p_Fm->p_FmStateStruct->exceptions & FM_EX_DMA_BUS_ERROR) + tmpReg |= DMA_MODE_BER; + if ((p_Fm->p_FmStateStruct->exceptions & FM_EX_DMA_SYSTEM_WRITE_ECC) | (p_Fm->p_FmStateStruct->exceptions & FM_EX_DMA_READ_ECC) | (p_Fm->p_FmStateStruct->exceptions & FM_EX_DMA_FM_WRITE_ECC)) + tmpReg |= DMA_MODE_ECC; + if(p_FmDriverParam->dmaStopOnBusError) + tmpReg |= DMA_MODE_SBER; + tmpReg |= (uint32_t)(p_FmDriverParam->dmaAxiDbgNumOfBeats - 1) << DMA_MODE_AXI_DBG_SHIFT; + if (p_FmDriverParam->dmaEnEmergency) + { + tmpReg |= p_FmDriverParam->dmaEmergency.emergencyBusSelect; + tmpReg |= p_FmDriverParam->dmaEmergency.emergencyLevel << DMA_MODE_EMERGENCY_LEVEL_SHIFT; + if(p_FmDriverParam->dmaEnEmergencySmoother) + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmemsr, p_FmDriverParam->dmaEmergencySwitchCounter); + } + tmpReg |= ((p_FmDriverParam->dmaCamNumOfEntries/DMA_CAM_UNITS) - 1) << DMA_MODE_CEN_SHIFT; + + tmpReg |= DMA_MODE_SECURE_PROT; + tmpReg |= p_FmDriverParam->dmaDbgCntMode << DMA_MODE_DBG_SHIFT; + tmpReg |= p_FmDriverParam->dmaAidMode << DMA_MODE_AID_MODE_SHIFT; + +#ifdef FM_PEDANTIC_DMA + tmpReg |= DMA_MODE_EMERGENCY_READ; +#endif /* FM_PEDANTIC_DMA */ + + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmmr, tmpReg); + + /* configure thresholds register */ + tmpReg = ((uint32_t)p_FmDriverParam->dmaCommQThresholds.assertEmergency << DMA_THRESH_COMMQ_SHIFT) | + ((uint32_t)p_FmDriverParam->dmaReadBufThresholds.assertEmergency << DMA_THRESH_READ_INT_BUF_SHIFT) | + ((uint32_t)p_FmDriverParam->dmaWriteBufThresholds.assertEmergency); + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmtr, tmpReg); + + /* configure hysteresis register */ + tmpReg = ((uint32_t)p_FmDriverParam->dmaCommQThresholds.clearEmergency << DMA_THRESH_COMMQ_SHIFT) | + ((uint32_t)p_FmDriverParam->dmaReadBufThresholds.clearEmergency << DMA_THRESH_READ_INT_BUF_SHIFT) | + ((uint32_t)p_FmDriverParam->dmaWriteBufThresholds.clearEmergency); + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmhy, tmpReg); + + /* configure emergency threshold */ + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmsetr, p_FmDriverParam->dmaSosEmergency); + + /* configure Watchdog */ + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmwcr, USEC_TO_CLK(p_FmDriverParam->dmaWatchdog, p_Fm->p_FmStateStruct->fmClkFreq)); + + /* Allocate MURAM for CAM */ + p_Fm->camBaseAddr = PTR_TO_UINT(FM_MURAM_AllocMem(p_Fm->h_FmMuram, + (uint32_t)(p_FmDriverParam->dmaCamNumOfEntries*DMA_CAM_SIZEOF_ENTRY), + DMA_CAM_ALIGN)); + if (!p_Fm->camBaseAddr ) + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("MURAM alloc for DMA CAM failed")); + + WRITE_BLOCK(UINT_TO_PTR(p_Fm->camBaseAddr), 0, (uint32_t)(p_FmDriverParam->dmaCamNumOfEntries*DMA_CAM_SIZEOF_ENTRY)); + + /* VirtToPhys */ + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmebcr, + (uint32_t)(XX_VirtToPhys(UINT_TO_PTR(p_Fm->camBaseAddr)) - p_Fm->fmMuramPhysBaseAddr)); + +#ifdef FM_PARTITION_ARRAY + { + t_FmRevisionInfo revInfo; + FM_GetRevision(p_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + /* liodn-partitions */ + for (i=0 ; iliodnBasePerPort[i] << DMA_LIODN_SHIFT) | + (uint32_t)p_FmDriverParam->liodnBasePerPort[i+1]); + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmplr[i/2], tmpReg); + } + } +#endif /* FM_PARTITION_ARRAY */ + + /**********************/ + /* Init FPM Registers */ + /**********************/ + tmpReg = (uint32_t)(p_FmDriverParam->thresholds.dispLimit << FPM_DISP_LIMIT_SHIFT); + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmflc, tmpReg); + + tmpReg = (((uint32_t)p_FmDriverParam->thresholds.prsDispTh << FPM_THR1_PRS_SHIFT) | + ((uint32_t)p_FmDriverParam->thresholds.kgDispTh << FPM_THR1_KG_SHIFT) | + ((uint32_t)p_FmDriverParam->thresholds.plcrDispTh << FPM_THR1_PLCR_SHIFT) | + ((uint32_t)p_FmDriverParam->thresholds.bmiDispTh << FPM_THR1_BMI_SHIFT)); + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmdis1, tmpReg); + + tmpReg = (((uint32_t)p_FmDriverParam->thresholds.qmiEnqDispTh << FPM_THR2_QMI_ENQ_SHIFT) | + ((uint32_t)p_FmDriverParam->thresholds.qmiDeqDispTh << FPM_THR2_QMI_DEQ_SHIFT) | + ((uint32_t)p_FmDriverParam->thresholds.fmCtl1DispTh << FPM_THR2_FM_CTL1_SHIFT) | + ((uint32_t)p_FmDriverParam->thresholds.fmCtl2DispTh << FPM_THR2_FM_CTL2_SHIFT)); + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmdis2, tmpReg); + + /* define exceptions and error behavior */ + tmpReg = 0; + /* Clear events */ + tmpReg |= (FPM_EV_MASK_STALL | FPM_EV_MASK_DOUBLE_ECC | FPM_EV_MASK_SINGLE_ECC); + /* enable interrupts */ + if(p_Fm->p_FmStateStruct->exceptions & FM_EX_FPM_STALL_ON_TASKS) + tmpReg |= FPM_EV_MASK_STALL_EN; + if(p_Fm->p_FmStateStruct->exceptions & FM_EX_FPM_SINGLE_ECC) + tmpReg |= FPM_EV_MASK_SINGLE_ECC_EN; + if(p_Fm->p_FmStateStruct->exceptions & FM_EX_FPM_DOUBLE_ECC) + tmpReg |= FPM_EV_MASK_DOUBLE_ECC_EN; + tmpReg |= (p_Fm->p_FmDriverParam->catastrophicErr << FPM_EV_MASK_CAT_ERR_SHIFT); + tmpReg |= (p_Fm->p_FmDriverParam->dmaErr << FPM_EV_MASK_DMA_ERR_SHIFT); + if(!p_Fm->p_FmDriverParam->haltOnExternalActivation) + tmpReg |= FPM_EV_MASK_EXTERNAL_HALT; + if(!p_Fm->p_FmDriverParam->haltOnUnrecoverableEccError) + tmpReg |= FPM_EV_MASK_ECC_ERR_HALT; + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmem, tmpReg); + + /* clear all fmCtls event registers */ + for(i=0;ip_FmFpmRegs->fpmcev[i], 0xFFFFFFFF); + + /* RAM ECC - enable and clear events*/ + /* first we need to clear all parser memory, as it is uninitialized and + may cause ECC errors */ + tmpReg = 0; + /* event bits */ + tmpReg = (FPM_RAM_CTL_MURAM_ECC | FPM_RAM_CTL_IRAM_ECC); + /* Rams enable is not effected by the RCR bit, but by a COP configuration */ + if(p_Fm->p_FmDriverParam->externalEccRamsEnable) + tmpReg |= FPM_RAM_CTL_RAMS_ECC_EN_SRC_SEL; + + /* enable test mode */ + if(p_FmDriverParam->enMuramTestMode) + tmpReg |= FPM_RAM_CTL_MURAM_TEST_ECC; + if(p_FmDriverParam->enIramTestMode) + tmpReg |= FPM_RAM_CTL_IRAM_TEST_ECC; + WRITE_UINT32(p_Fm->p_FmFpmRegs->fmrcr, tmpReg); + + tmpReg = 0; + if(p_Fm->p_FmStateStruct->exceptions & FM_EX_IRAM_ECC) + { + tmpReg |= FPM_IRAM_ECC_ERR_EX_EN; + FmEnableRamsEcc(p_Fm); + } + if(p_Fm->p_FmStateStruct->exceptions & FM_EX_NURAM_ECC) + { + tmpReg |= FPM_MURAM_ECC_ERR_EX_EN; + FmEnableRamsEcc(p_Fm); + } + WRITE_UINT32(p_Fm->p_FmFpmRegs->fmrie, tmpReg); + + /**********************/ + /* Init BMI Registers */ + /**********************/ + + /* define common resources */ + /* allocate MURAM for FIFO according to total size */ + p_Fm->fifoBaseAddr = PTR_TO_UINT(FM_MURAM_AllocMem(p_Fm->h_FmMuram, + p_Fm->p_FmStateStruct->totalFifoSize, + BMI_FIFO_ALIGN)); + if (!p_Fm->fifoBaseAddr) + { + FreeInitResources(p_Fm); + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("MURAM alloc for FIFO failed")); + } + + tmpReg = (uint32_t)(XX_VirtToPhys(UINT_TO_PTR(p_Fm->fifoBaseAddr)) - p_Fm->fmMuramPhysBaseAddr); + tmpReg = tmpReg / BMI_FIFO_ALIGN; + + tmpReg |= ((p_Fm->p_FmStateStruct->totalFifoSize/BMI_FIFO_UNITS - 1) << BMI_CFG1_FIFO_SIZE_SHIFT); + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_cfg1, tmpReg); + + tmpReg = ((uint32_t)(p_Fm->p_FmStateStruct->totalNumOfTasks - 1) << BMI_CFG2_TASKS_SHIFT ); + /* num of DMA's will be dynamically updated when each port is set */ + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_cfg2, tmpReg); + + /* define unmaskable exceptions, enable and clear events */ + tmpReg = 0; + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_ievr, (BMI_ERR_INTR_EN_LIST_RAM_ECC | + BMI_ERR_INTR_EN_PIPELINE_ECC | + BMI_ERR_INTR_EN_STATISTICS_RAM_ECC | + BMI_ERR_INTR_EN_DISPATCH_RAM_ECC)); + if(p_Fm->p_FmStateStruct->exceptions & FM_EX_BMI_LIST_RAM_ECC) + tmpReg |= BMI_ERR_INTR_EN_LIST_RAM_ECC; + if(p_Fm->p_FmStateStruct->exceptions & FM_EX_BMI_PIPELINE_ECC) + tmpReg |= BMI_ERR_INTR_EN_PIPELINE_ECC; + if(p_Fm->p_FmStateStruct->exceptions & FM_EX_BMI_STATISTICS_RAM_ECC) + tmpReg |= BMI_ERR_INTR_EN_STATISTICS_RAM_ECC; + if(p_Fm->p_FmStateStruct->exceptions & FM_EX_BMI_DISPATCH_RAM_ECC) + tmpReg |= BMI_ERR_INTR_EN_DISPATCH_RAM_ECC; + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_ier, tmpReg); + + /**********************/ + /* Init QMI Registers */ + /**********************/ + /* Clear error interrupt events */ + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_eie, (QMI_ERR_INTR_EN_DOUBLE_ECC | QMI_ERR_INTR_EN_DEQ_FROM_DEF)); + tmpReg = 0; + if(p_Fm->p_FmStateStruct->exceptions & FM_EX_QMI_DEQ_FROM_UNKNOWN_PORTID) + tmpReg |= QMI_ERR_INTR_EN_DEQ_FROM_DEF; + if(p_Fm->p_FmStateStruct->exceptions & FM_EX_QMI_DOUBLE_ECC) + tmpReg |= QMI_ERR_INTR_EN_DOUBLE_ECC; + /* enable events */ + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_eien, tmpReg); + + if(p_Fm->p_FmDriverParam->tnumAgingPeriod) + { + /* tnumAgingPeriod is in units of microseconds, p_FmClockFreq is in Mhz */ + periodInFmClocks = (uint16_t)(p_Fm->p_FmDriverParam->tnumAgingPeriod*p_Fm->p_FmStateStruct->fmClkFreq); + /* periodInFmClocks must be a 64 multiply */ + remainder = (uint8_t)(periodInFmClocks % 64); + if (remainder > 64) + tmpReg = (uint32_t)((periodInFmClocks/64) + 1); + else + { + tmpReg = (uint32_t)(periodInFmClocks/64); + if(!tmpReg) + tmpReg = 1; + } + tmpReg <<= QMI_TAPC_TAP; + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_tapc, tmpReg); + + } + tmpReg = 0; + /* Clear interrupt events */ + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_ie, QMI_INTR_EN_SINGLE_ECC); + if(p_Fm->p_FmStateStruct->exceptions & FM_EX_QMI_SINGLE_ECC) + tmpReg |= QMI_INTR_EN_SINGLE_ECC; + /* enable events */ + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_ien, tmpReg); + + /* clear & enable global counters - calculate reg and save for later, + because it's the same reg for QMI enable */ + if(p_Fm->p_FmDriverParam->enCounters) + cfgReg = QMI_CFG_EN_COUNTERS; +#ifdef FM_QMI_DEQ_OPTIONS_SUPPORT + cfgReg |= (uint32_t)(((QMI_DEF_TNUMS_THRESH) << 8) | (uint32_t)QMI_DEF_TNUMS_THRESH); +#endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ + + if (p_Fm->p_FmStateStruct->irq != NO_IRQ) + { + XX_SetIntr(p_Fm->p_FmStateStruct->irq, FM_EventIsr, p_Fm); + XX_EnableIntr(p_Fm->p_FmStateStruct->irq); + } + + if (p_Fm->p_FmStateStruct->errIrq != NO_IRQ) + { + XX_SetIntr(p_Fm->p_FmStateStruct->errIrq, ErrorIsrCB, p_Fm); + XX_EnableIntr(p_Fm->p_FmStateStruct->errIrq); + } + + /* build the FM master partition IPC address */ + if (Sprint (p_Fm->fmModuleName, "FM_%d_%d",p_Fm->p_FmStateStruct->fmId, NCSW_MASTER_ID) != 6) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("Sprint failed")); + + err = XX_IpcRegisterMsgHandler(p_Fm->fmModuleName, FmHandleIpcMsgCB, p_Fm, FM_IPC_MAX_REPLY_SIZE); + if(err) + RETURN_ERROR(MAJOR, err, NO_MSG); + + /**********************/ + /* Enable all modules */ + /**********************/ + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_init, BMI_INIT_START); + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_gc, cfgReg | QMI_CFG_ENQ_EN | QMI_CFG_DEQ_EN); + + if (p_Fm->p_FmDriverParam->firmware.p_Code) + { + XX_Free(p_Fm->p_FmDriverParam->firmware.p_Code); + p_Fm->p_FmDriverParam->firmware.p_Code = NULL; + } + + XX_Free(p_Fm->p_FmDriverParam); + p_Fm->p_FmDriverParam = NULL; + + return E_OK; +} + +/**************************************************************************//** + @Function FM_Free + + @Description Frees all resources that were assigned to FM module. + + Calling this routine invalidates the descriptor. + + @Param[in] h_Fm - FM module descriptor + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error FM_Free(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + + if (p_Fm->guestId != NCSW_MASTER_ID) + { + XX_IpcUnregisterMsgHandler(p_Fm->fmModuleName); + + if(!p_Fm->recoveryMode) + XX_Free(p_Fm->p_FmStateStruct); + + XX_Free(p_Fm); + + return E_OK; + } + + /* disable BMI and QMI */ + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_init, 0); + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_gc, 0); + + /* release BMI resources */ + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_cfg2, 0); + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_cfg1, 0); + + /* disable ECC */ + WRITE_UINT32(p_Fm->p_FmFpmRegs->fmrcr, 0); + + if ((p_Fm->guestId == NCSW_MASTER_ID) && (p_Fm->fmModuleName[0] != 0)) + XX_IpcUnregisterMsgHandler(p_Fm->fmModuleName); + + if (p_Fm->p_FmStateStruct) + { + if (p_Fm->p_FmStateStruct->irq != NO_IRQ) + { + XX_DisableIntr(p_Fm->p_FmStateStruct->irq); + XX_FreeIntr(p_Fm->p_FmStateStruct->irq); + } + if (p_Fm->p_FmStateStruct->errIrq != NO_IRQ) + { + XX_DisableIntr(p_Fm->p_FmStateStruct->errIrq); + XX_FreeIntr(p_Fm->p_FmStateStruct->errIrq); + } + } + + if (p_Fm->h_Spinlock) + XX_FreeSpinlock(p_Fm->h_Spinlock); + + if (p_Fm->p_FmDriverParam) + { + if (p_Fm->p_FmDriverParam->firmware.p_Code) + XX_Free(p_Fm->p_FmDriverParam->firmware.p_Code); + XX_Free(p_Fm->p_FmDriverParam); + p_Fm->p_FmDriverParam = NULL; + } + + FreeInitResources(p_Fm); + + if (!p_Fm->recoveryMode && p_Fm->p_FmStateStruct) + XX_Free(p_Fm->p_FmStateStruct); + + XX_Free(p_Fm); + + return E_OK; +} + +/*************************************************/ +/* API Advanced Init unit functions */ +/*************************************************/ + +t_Error FM_ConfigResetOnInit(t_Handle h_Fm, bool enable) +{ + + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + p_Fm->p_FmDriverParam->resetOnInit = enable; + + return E_OK; +} + + +t_Error FM_ConfigTotalNumOfTasks(t_Handle h_Fm, uint8_t totalNumOfTasks) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + p_Fm->p_FmStateStruct->totalNumOfTasks = totalNumOfTasks; + + return E_OK; +} + +t_Error FM_ConfigTotalFifoSize(t_Handle h_Fm, uint32_t totalFifoSize) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + p_Fm->p_FmStateStruct->totalFifoSize = totalFifoSize; + + return E_OK; +} + +t_Error FM_ConfigMaxNumOfOpenDmas(t_Handle h_Fm, uint8_t maxNumOfOpenDmas) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + p_Fm->p_FmStateStruct->maxNumOfOpenDmas = maxNumOfOpenDmas; + + return E_OK; +} + +t_Error FM_ConfigThresholds(t_Handle h_Fm, t_FmThresholds *p_FmThresholds) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + memcpy(&p_Fm->p_FmDriverParam->thresholds, p_FmThresholds, sizeof(t_FmThresholds)); + + return E_OK; +} + +t_Error FM_ConfigDmaCacheOverride(t_Handle h_Fm, e_FmDmaCacheOverride cacheOverride) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + p_Fm->p_FmDriverParam->dmaCacheOverride = cacheOverride; + + return E_OK; +} + +t_Error FM_ConfigDmaAidOverride(t_Handle h_Fm, bool aidOverride) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + p_Fm->p_FmDriverParam->dmaAidOverride = aidOverride; + + return E_OK; +} + +t_Error FM_ConfigDmaAidMode(t_Handle h_Fm, e_FmDmaAidMode aidMode) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + p_Fm->p_FmDriverParam->dmaAidMode = aidMode; + + return E_OK; +} + +t_Error FM_ConfigDmaAxiDbgNumOfBeats(t_Handle h_Fm, uint8_t axiDbgNumOfBeats) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + p_Fm->p_FmDriverParam->dmaAxiDbgNumOfBeats = axiDbgNumOfBeats; + + return E_OK; +} + +t_Error FM_ConfigDmaCamNumOfEntries(t_Handle h_Fm, uint8_t numOfEntries) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + p_Fm->p_FmDriverParam->dmaCamNumOfEntries = numOfEntries; + + return E_OK; +} + +t_Error FM_ConfigDmaWatchdog(t_Handle h_Fm, uint32_t watchdogValue) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + +#ifdef FM_NO_WATCHDOG + { + t_FmRevisionInfo revInfo; + FM_GetRevision(h_Fm, &revInfo); + if (revInfo.majorRev != 4) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("watchdog!")); + } +#endif /* FM_NO_WATCHDOG */ + + p_Fm->p_FmDriverParam->dmaWatchdog = watchdogValue; + + return E_OK; +} + +t_Error FM_ConfigDmaWriteBufThresholds(t_Handle h_Fm, t_FmDmaThresholds *p_FmDmaThresholds) + +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + memcpy(&p_Fm->p_FmDriverParam->dmaWriteBufThresholds, p_FmDmaThresholds, sizeof(t_FmDmaThresholds)); + + return E_OK; +} + +t_Error FM_ConfigDmaCommQThresholds(t_Handle h_Fm, t_FmDmaThresholds *p_FmDmaThresholds) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + memcpy(&p_Fm->p_FmDriverParam->dmaCommQThresholds, p_FmDmaThresholds, sizeof(t_FmDmaThresholds)); + + return E_OK; +} + +t_Error FM_ConfigDmaReadBufThresholds(t_Handle h_Fm, t_FmDmaThresholds *p_FmDmaThresholds) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + memcpy(&p_Fm->p_FmDriverParam->dmaReadBufThresholds, p_FmDmaThresholds, sizeof(t_FmDmaThresholds)); + + return E_OK; +} + +t_Error FM_ConfigDmaEmergency(t_Handle h_Fm, t_FmDmaEmergency *p_Emergency) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + p_Fm->p_FmDriverParam->dmaEnEmergency = TRUE; + memcpy(&p_Fm->p_FmDriverParam->dmaEmergency, p_Emergency, sizeof(t_FmDmaEmergency)); + + return E_OK; +} + +t_Error FM_ConfigDmaEmergencySmoother(t_Handle h_Fm, uint32_t emergencyCnt) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + if(!p_Fm->p_FmDriverParam->dmaEnEmergency) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("FM_ConfigEnDmaEmergencySmoother may be called only after FM_ConfigEnDmaEmergency")); + + p_Fm->p_FmDriverParam->dmaEnEmergencySmoother = TRUE; + p_Fm->p_FmDriverParam->dmaEmergencySwitchCounter = emergencyCnt; + + return E_OK; +} + +t_Error FM_ConfigDmaDbgCounter(t_Handle h_Fm, e_FmDmaDbgCntMode fmDmaDbgCntMode) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + p_Fm->p_FmDriverParam->dmaDbgCntMode = fmDmaDbgCntMode; + + return E_OK; +} + +t_Error FM_ConfigDmaStopOnBusErr(t_Handle h_Fm, bool stop) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + p_Fm->p_FmDriverParam->dmaStopOnBusError = stop; + + return E_OK; +} + +t_Error FM_ConfigDmaSosEmergencyThreshold(t_Handle h_Fm, uint32_t dmaSosEmergency) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + p_Fm->p_FmDriverParam->dmaSosEmergency = dmaSosEmergency; + + return E_OK; +} + +t_Error FM_ConfigEnableCounters(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + p_Fm->p_FmDriverParam->enCounters = TRUE; + + return E_OK; +} + +t_Error FM_ConfigDmaErr(t_Handle h_Fm, e_FmDmaErr dmaErr) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + p_Fm->p_FmDriverParam->dmaErr = dmaErr; + + return E_OK; +} + +t_Error FM_ConfigCatastrophicErr(t_Handle h_Fm, e_FmCatastrophicErr catastrophicErr) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + p_Fm->p_FmDriverParam->catastrophicErr = catastrophicErr; + + return E_OK; +} + +t_Error FM_ConfigEnableMuramTestMode(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + p_Fm->p_FmDriverParam->enMuramTestMode = TRUE; + + return E_OK; +} + +t_Error FM_ConfigEnableIramTestMode(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + p_Fm->p_FmDriverParam->enIramTestMode = TRUE; + + return E_OK; +} + +t_Error FM_ConfigHaltOnExternalActivation(t_Handle h_Fm, bool enable) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + +#ifdef FM_HALT_SIG_ERRATA_GEN12 + { + t_FmRevisionInfo revInfo; + FM_GetRevision(h_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("HaltOnExternalActivation!")); + } +#endif /* FM_HALT_SIG_ERRATA_GEN12 */ + + p_Fm->p_FmDriverParam->haltOnExternalActivation = enable; + + return E_OK; +} + +t_Error FM_ConfigHaltOnUnrecoverableEccError(t_Handle h_Fm, bool enable) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + +#ifdef FM_ECC_HALT_NO_SYNC_ERRATA_10GMAC_A008 + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("HaltOnEccError!")); +#endif /* FM_ECC_HALT_NO_SYNC_ERRATA_10GMAC_A008 */ + + p_Fm->p_FmDriverParam->haltOnUnrecoverableEccError = enable; + + return E_OK; +} + +t_Error FM_ConfigException(t_Handle h_Fm, e_FmExceptions exception, bool enable) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint32_t bitMask = 0; + t_FmRevisionInfo revInfo; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + + FM_GetRevision(p_Fm, &revInfo); +#ifdef FM_BMI_PIPELINE_ERR_IRQ_ERRATA_FMAN9 + if((exception == e_FM_EX_BMI_PIPELINE_ECC) && (enable)) + { + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + { + REPORT_ERROR(MINOR, E_NOT_SUPPORTED, ("e_FM_EX_BMI_PIPELINE_ECC!")); + return E_OK; + } + } +#endif /* FM_BMI_PIPELINE_ERR_IRQ_ERRATA_FMAN9 */ +#ifdef FM_RAM_LIST_ERR_IRQ_ERRATA_FMAN8 + if((exception == e_FM_EX_BMI_LIST_RAM_ECC) && (enable)) + { + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + { + REPORT_ERROR(MINOR, E_NOT_SUPPORTED, ("e_FM_EX_BMI_LIST_RAM_ECC!")); + return E_OK; + } + } +#endif /* FM_RAM_LIST_ERR_IRQ_ERRATA_FMAN8 */ +#ifdef FM_QMI_NO_ECC_EXCEPTIONS + if(((exception == e_FM_EX_QMI_SINGLE_ECC) || (exception == e_FM_EX_QMI_DOUBLE_ECC)) && + enable) + { + if (revInfo.majorRev == 4) + { + REPORT_ERROR(MINOR, E_NOT_SUPPORTED, ("QMI ECC exception!")); + return E_OK; + } + } +#endif /* FM_QMI_NO_ECC_EXCEPTIONS */ +#ifdef FM_NO_DISPATCH_RAM_ECC + if((exception == e_FM_EX_BMI_DISPATCH_RAM_ECC) && (enable)) + { + if (revInfo.majorRev != 4) + { + REPORT_ERROR(MINOR, E_NOT_SUPPORTED, ("e_FM_EX_BMI_DISPATCH_RAM_ECC!")); + return E_OK; + } + } +#endif /* FM_NO_DISPATCH_RAM_ECC */ + + GET_EXCEPTION_FLAG(bitMask, exception); + if(bitMask) + { + if (enable) + p_Fm->p_FmStateStruct->exceptions |= bitMask; + else + p_Fm->p_FmStateStruct->exceptions &= ~bitMask; + } + else + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Undefined exception")); + + return E_OK; +} + +t_Error FM_ConfigExternalEccRamsEnable(t_Handle h_Fm, bool enable) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + + p_Fm->p_FmDriverParam->externalEccRamsEnable = enable; + + return E_OK; +} + +t_Error FM_ConfigTnumAgingPeriod(t_Handle h_Fm, uint16_t tnumAgingPeriod) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; +#ifdef FM_NO_TNUM_AGING + t_FmRevisionInfo revInfo; +#endif /* FM_NO_TNUM_AGING */ + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + +#ifdef FM_NO_TNUM_AGING + FM_GetRevision(h_Fm, &revInfo); + if (revInfo.majorRev != 4) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("FM_ConfigTnumAgingPeriod!")); +#endif /* FM_NO_TNUM_AGING */ + + p_Fm->p_FmDriverParam->tnumAgingPeriod = tnumAgingPeriod; + + return E_OK; + +} + +/****************************************************/ +/* API Run-time Control uint functions */ +/****************************************************/ +t_Handle FM_GetPcdHandle(t_Handle h_Fm) +{ + SANITY_CHECK_RETURN_VALUE(h_Fm, E_INVALID_HANDLE, NULL); + SANITY_CHECK_RETURN_VALUE(!((t_Fm*)h_Fm)->p_FmDriverParam, E_INVALID_STATE, NULL); + + return ((t_Fm*)h_Fm)->h_Pcd; +} + +void FM_EventIsr(t_Handle h_Fm) +{ +#define FM_M_CALL_1G_MAC_TMR_ISR(_id) \ + { \ + if (p_Fm->guestId != p_Fm->intrMng[(e_FmInterModuleEvent)(e_FM_EV_1G_MAC0_TMR+_id)].guestId) \ + SendIpcIsr(p_Fm, (e_FmInterModuleEvent)(e_FM_EV_1G_MAC0_TMR+_id), pending); \ + else \ + p_Fm->intrMng[(e_FmInterModuleEvent)(e_FM_EV_1G_MAC0_TMR+_id)].f_Isr(p_Fm->intrMng[(e_FmInterModuleEvent)(e_FM_EV_1G_MAC0_TMR+_id)].h_SrcHandle);\ + } + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint32_t pending, event; + + SANITY_CHECK_RETURN(h_Fm, E_INVALID_HANDLE); + + /* normal interrupts */ + pending = GET_UINT32(p_Fm->p_FmFpmRegs->fmnpi); + ASSERT_COND(pending); + if (pending & INTR_EN_BMI) + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("BMI Event - undefined!")); + if (pending & INTR_EN_QMI) + QmiEvent(p_Fm); + if (pending & INTR_EN_PRS) + p_Fm->intrMng[e_FM_EV_PRS].f_Isr(p_Fm->intrMng[e_FM_EV_PRS].h_SrcHandle); + if (pending & INTR_EN_PLCR) + p_Fm->intrMng[e_FM_EV_PLCR].f_Isr(p_Fm->intrMng[e_FM_EV_PLCR].h_SrcHandle); + if (pending & INTR_EN_KG) + p_Fm->intrMng[e_FM_EV_KG].f_Isr(p_Fm->intrMng[e_FM_EV_KG].h_SrcHandle); + if (pending & INTR_EN_TMR) + p_Fm->intrMng[e_FM_EV_TMR].f_Isr(p_Fm->intrMng[e_FM_EV_TMR].h_SrcHandle); + + /* MAC events may belong to different partitions */ + if (pending & INTR_EN_1G_MAC0_TMR) + FM_M_CALL_1G_MAC_TMR_ISR(0); + if (pending & INTR_EN_1G_MAC1_TMR) + FM_M_CALL_1G_MAC_TMR_ISR(1); + if (pending & INTR_EN_1G_MAC2_TMR) + FM_M_CALL_1G_MAC_TMR_ISR(2); + if (pending & INTR_EN_1G_MAC3_TMR) + FM_M_CALL_1G_MAC_TMR_ISR(3); + if (pending & INTR_EN_1G_MAC4_TMR) + FM_M_CALL_1G_MAC_TMR_ISR(4); + + /* IM port events may belong to different partitions */ + if (pending & INTR_EN_REV0) + { + event = GET_UINT32(p_Fm->p_FmFpmRegs->fmfpfcev[0]) & GET_UINT32(p_Fm->p_FmFpmRegs->fmfpfcee[0]); + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmcev[0], event); + if (p_Fm->guestId != p_Fm->intrMng[e_FM_EV_FMAN_CTRL_0].guestId) + /*TODO IPC ISR For Fman Ctrl */ + ASSERT_COND(0); + /* SendIpcIsr(p_Fm, e_FM_EV_FMAN_CTRL_0, pending); */ + else + p_Fm->fmanCtrlIntr[0].f_Isr(p_Fm->fmanCtrlIntr[0].h_SrcHandle, event); + + } + if (pending & INTR_EN_REV1) + { + event = GET_UINT32(p_Fm->p_FmFpmRegs->fmfpfcev[1]) & GET_UINT32(p_Fm->p_FmFpmRegs->fmfpfcee[1]); + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmcev[1], event); + if (p_Fm->guestId != p_Fm->intrMng[e_FM_EV_FMAN_CTRL_1].guestId) + /*TODO IPC ISR For Fman Ctrl */ + ASSERT_COND(0); + /* SendIpcIsr(p_Fm, e_FM_EV_FMAN_CTRL_1, pending); */ + else + p_Fm->fmanCtrlIntr[1].f_Isr(p_Fm->fmanCtrlIntr[1].h_SrcHandle, event); + + } + if (pending & INTR_EN_REV2) + { + event = GET_UINT32(p_Fm->p_FmFpmRegs->fmfpfcev[2]) & GET_UINT32(p_Fm->p_FmFpmRegs->fmfpfcee[2]); + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmcev[2], event); + if (p_Fm->guestId != p_Fm->intrMng[e_FM_EV_FMAN_CTRL_2].guestId) + /*TODO IPC ISR For Fman Ctrl */ + ASSERT_COND(0); + /* SendIpcIsr(p_Fm, e_FM_EV_FMAN_CTRL_2, pending); */ + else + p_Fm->fmanCtrlIntr[2].f_Isr(p_Fm->fmanCtrlIntr[2].h_SrcHandle, event); + } + if (pending & INTR_EN_REV3) + { + event = GET_UINT32(p_Fm->p_FmFpmRegs->fmfpfcev[3]) & GET_UINT32(p_Fm->p_FmFpmRegs->fmfpfcee[3]); + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmcev[3], event); + if (p_Fm->guestId != p_Fm->intrMng[e_FM_EV_FMAN_CTRL_3].guestId) + /*TODO IPC ISR For Fman Ctrl */ + ASSERT_COND(0); + /* SendIpcIsr(p_Fm, e_FM_EV_FMAN_CTRL_2, pendin3); */ + else + p_Fm->fmanCtrlIntr[3].f_Isr(p_Fm->fmanCtrlIntr[3].h_SrcHandle, event); + } +} + +t_Error FM_ErrorIsr(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(h_Fm, E_INVALID_HANDLE); + + /* error interrupts */ + if (GET_UINT32(p_Fm->p_FmFpmRegs->fmepi) == 0) + return ERROR_CODE(E_EMPTY); + + ErrorIsrCB(p_Fm); + return E_OK; +} + +t_Error FM_SetPortsBandwidth(t_Handle h_Fm, t_FmPortsBandwidthParams *p_PortsBandwidth) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + int i; + uint8_t sum; + uint8_t hardwarePortId; + uint32_t tmpRegs[8] = {0,0,0,0,0,0,0,0}; + uint8_t relativePortId, shift, weight, maxPercent = 0; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Fm->p_FmDriverParam, E_INVALID_STATE); + + /* check that all ports add up to 100% */ + sum = 0; + for (i=0;inumOfPorts;i++) + sum +=p_PortsBandwidth->portsBandwidths[i].bandwidth; + if (sum != 100) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Sum of ports bandwidth differ from 100%")); + + /* find highest precent */ + for (i=0;inumOfPorts;i++) + { + if (p_PortsBandwidth->portsBandwidths[i].bandwidth > maxPercent) + maxPercent = p_PortsBandwidth->portsBandwidths[i].bandwidth; + } + + /* calculate weight for each port */ + for (i=0;inumOfPorts;i++) + { + weight = (uint8_t)((p_PortsBandwidth->portsBandwidths[i].bandwidth * PORT_MAX_WEIGHT )/maxPercent); + /* we want even division between 1-to-PORT_MAX_WEIGHT. so if exect division + is not reached, we round up so that: + 0 until maxPercent/PORT_MAX_WEIGHT get "1" + maxPercent/PORT_MAX_WEIGHT+1 until (maxPercent/PORT_MAX_WEIGHT)*2 get "2" + ... + maxPercent - maxPercent/PORT_MAX_WEIGHT until maxPercent get "PORT_MAX_WEIGHT: */ + if ((uint8_t)((p_PortsBandwidth->portsBandwidths[i].bandwidth * PORT_MAX_WEIGHT ) % maxPercent)) + weight++; + + /* find the location of this port within the register */ + SW_PORT_ID_TO_HW_PORT_ID(hardwarePortId, + p_PortsBandwidth->portsBandwidths[i].type, + p_PortsBandwidth->portsBandwidths[i].relativePortId); + relativePortId = (uint8_t)(hardwarePortId % 8); + shift = (uint8_t)(32-4*(relativePortId+1)); + + + if(weight > 1) + /* Add this port to tmpReg */ + /* (each 8 ports result in one register)*/ + tmpRegs[hardwarePortId/8] |= ((weight-1) << shift); + } + + for(i=0;i<8;i++) + if(tmpRegs[i]) + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_arb[i], tmpRegs[i]); + + return E_OK; +} + +t_Error FM_EnableRamsEcc(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint32_t tmpReg; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + t_FmIpcMsg msg; + t_Error err; + + memset(&msg, 0, sizeof(msg)); + msg.msgId = FM_ENABLE_RAM_ECC; + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId), + NULL, + NULL, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + return E_OK; + } + + if(!p_Fm->p_FmStateStruct->internalCall) + p_Fm->p_FmStateStruct->explicitEnable = TRUE; + p_Fm->p_FmStateStruct->internalCall = FALSE; + + if(p_Fm->p_FmStateStruct->ramsEccEnable) + return E_OK; + else + { + tmpReg = GET_UINT32(p_Fm->p_FmFpmRegs->fmrcr); + if(tmpReg & FPM_RAM_CTL_RAMS_ECC_EN_SRC_SEL) + { + DBG(WARNING, ("Rams ECC is configured to be controlled through JTAG")); + WRITE_UINT32(p_Fm->p_FmFpmRegs->fmrcr, tmpReg | FPM_RAM_CTL_IRAM_ECC_EN); + } + else + WRITE_UINT32(p_Fm->p_FmFpmRegs->fmrcr, tmpReg | (FPM_RAM_CTL_RAMS_ECC_EN | FPM_RAM_CTL_IRAM_ECC_EN)); + p_Fm->p_FmStateStruct->ramsEccEnable = TRUE; + } + + return E_OK; +} + +t_Error FM_DisableRamsEcc(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint32_t tmpReg; + bool explicitDisable = FALSE; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Fm->p_FmDriverParam, E_INVALID_HANDLE); + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + t_Error err; + t_FmIpcMsg msg; + + memset(&msg, 0, sizeof(msg)); + msg.msgId = FM_DISABLE_RAM_ECC; + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId), + NULL, + NULL, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + return E_OK; + } + + if(!p_Fm->p_FmStateStruct->internalCall) + explicitDisable = TRUE; + p_Fm->p_FmStateStruct->internalCall = FALSE; + + /* if rams are already disabled, or if rams were explicitly enabled and are + currently called indirectly (not explicitly), ignore this call. */ + if(!p_Fm->p_FmStateStruct->ramsEccEnable || (p_Fm->p_FmStateStruct->explicitEnable && !explicitDisable)) + return E_OK; + else + { + if(p_Fm->p_FmStateStruct->explicitEnable) + /* This is the case were both explicit are TRUE. + Turn off this flag for cases were following ramsEnable + routines are called */ + p_Fm->p_FmStateStruct->explicitEnable = FALSE; + + tmpReg = GET_UINT32(p_Fm->p_FmFpmRegs->fmrcr); + if(tmpReg & FPM_RAM_CTL_RAMS_ECC_EN_SRC_SEL) + { + DBG(WARNING, ("Rams ECC is configured to be controlled through JTAG")); + WRITE_UINT32(p_Fm->p_FmFpmRegs->fmrcr, tmpReg & ~FPM_RAM_CTL_IRAM_ECC_EN); + } + else + WRITE_UINT32(p_Fm->p_FmFpmRegs->fmrcr, tmpReg & ~(FPM_RAM_CTL_RAMS_ECC_EN | FPM_RAM_CTL_IRAM_ECC_EN)); + p_Fm->p_FmStateStruct->ramsEccEnable = FALSE; + } + + return E_OK; +} + +t_Error FM_SetException(t_Handle h_Fm, e_FmExceptions exception, bool enable) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint32_t bitMask = 0; + uint32_t tmpReg; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Fm->p_FmDriverParam, E_INVALID_STATE); + + GET_EXCEPTION_FLAG(bitMask, exception); + if(bitMask) + { + if (enable) + p_Fm->p_FmStateStruct->exceptions |= bitMask; + else + p_Fm->p_FmStateStruct->exceptions &= ~bitMask; + + switch(exception) + { + case(e_FM_EX_DMA_BUS_ERROR): + tmpReg = GET_UINT32(p_Fm->p_FmDmaRegs->fmdmmr); + if(enable) + tmpReg |= DMA_MODE_BER; + else + tmpReg &= ~DMA_MODE_BER; + /* disable bus error */ + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmmr, tmpReg); + break; + case(e_FM_EX_DMA_READ_ECC): + case(e_FM_EX_DMA_SYSTEM_WRITE_ECC): + case(e_FM_EX_DMA_FM_WRITE_ECC): + tmpReg = GET_UINT32(p_Fm->p_FmDmaRegs->fmdmmr); + if(enable) + tmpReg |= DMA_MODE_ECC; + else + tmpReg &= ~DMA_MODE_ECC; + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmmr, tmpReg); + break; + case(e_FM_EX_FPM_STALL_ON_TASKS): + tmpReg = GET_UINT32(p_Fm->p_FmFpmRegs->fpmem); + if(enable) + tmpReg |= FPM_EV_MASK_STALL_EN; + else + tmpReg &= ~FPM_EV_MASK_STALL_EN; + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmem, tmpReg); + break; + case(e_FM_EX_FPM_SINGLE_ECC): + tmpReg = GET_UINT32(p_Fm->p_FmFpmRegs->fpmem); + if(enable) + tmpReg |= FPM_EV_MASK_SINGLE_ECC_EN; + else + tmpReg &= ~FPM_EV_MASK_SINGLE_ECC_EN; + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmem, tmpReg); + break; + case( e_FM_EX_FPM_DOUBLE_ECC): + tmpReg = GET_UINT32(p_Fm->p_FmFpmRegs->fpmem); + if(enable) + tmpReg |= FPM_EV_MASK_DOUBLE_ECC_EN; + else + tmpReg &= ~FPM_EV_MASK_DOUBLE_ECC_EN; + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmem, tmpReg); + break; + case( e_FM_EX_QMI_SINGLE_ECC): + tmpReg = GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_ien); + if(enable) + { +#ifdef FM_QMI_NO_ECC_EXCEPTIONS + t_FmRevisionInfo revInfo; + FM_GetRevision(p_Fm, &revInfo); + if (revInfo.majorRev == 4) + { + REPORT_ERROR(MINOR, E_NOT_SUPPORTED, ("e_FM_EX_QMI_SINGLE_ECC")); + return E_OK; + } +#endif /* FM_QMI_NO_ECC_EXCEPTIONS */ + tmpReg |= QMI_INTR_EN_SINGLE_ECC; + } + else + tmpReg &= ~QMI_INTR_EN_SINGLE_ECC; + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_ien, tmpReg); + break; + case(e_FM_EX_QMI_DOUBLE_ECC): + tmpReg = GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_eien); + if(enable) + { +#ifdef FM_QMI_NO_ECC_EXCEPTIONS + t_FmRevisionInfo revInfo; + FM_GetRevision(p_Fm, &revInfo); + if (revInfo.majorRev == 4) + { + REPORT_ERROR(MINOR, E_NOT_SUPPORTED, ("e_FM_EX_QMI_DOUBLE_ECC")); + return E_OK; + } +#endif /* FM_QMI_NO_ECC_EXCEPTIONS */ + tmpReg |= QMI_ERR_INTR_EN_DOUBLE_ECC; + } + else + tmpReg &= ~QMI_ERR_INTR_EN_DOUBLE_ECC; + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_eien, tmpReg); + break; + case(e_FM_EX_QMI_DEQ_FROM_UNKNOWN_PORTID): + tmpReg = GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_eien); + if(enable) + tmpReg |= QMI_ERR_INTR_EN_DEQ_FROM_DEF; + else + tmpReg &= ~QMI_ERR_INTR_EN_DEQ_FROM_DEF; + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_eien, tmpReg); + break; + case(e_FM_EX_BMI_LIST_RAM_ECC): + tmpReg = GET_UINT32(p_Fm->p_FmBmiRegs->fmbm_ier); + if(enable) + { +#ifdef FM_RAM_LIST_ERR_IRQ_ERRATA_FMAN8 + t_FmRevisionInfo revInfo; + FM_GetRevision(p_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + { + REPORT_ERROR(MINOR, E_NOT_SUPPORTED, ("e_FM_EX_BMI_LIST_RAM_ECC")); + return E_OK; + } +#endif /* FM_RAM_LIST_ERR_IRQ_ERRATA_FMAN8 */ + tmpReg |= BMI_ERR_INTR_EN_LIST_RAM_ECC; + } + else + tmpReg &= ~BMI_ERR_INTR_EN_LIST_RAM_ECC; + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_ier, tmpReg); + break; + case(e_FM_EX_BMI_PIPELINE_ECC): + tmpReg = GET_UINT32(p_Fm->p_FmBmiRegs->fmbm_ier); + if(enable) + { +#ifdef FM_BMI_PIPELINE_ERR_IRQ_ERRATA_FMAN9 + t_FmRevisionInfo revInfo; + FM_GetRevision(p_Fm, &revInfo); + if ((revInfo.majorRev == 1) && (revInfo.minorRev == 0)) + { + REPORT_ERROR(MINOR, E_NOT_SUPPORTED, ("e_FM_EX_BMI_PIPELINE_ECCBMI_LIST_RAM_ECC")); + return E_OK; + } +#endif /* FM_BMI_PIPELINE_ERR_IRQ_ERRATA_FMAN9 */ + tmpReg |= BMI_ERR_INTR_EN_PIPELINE_ECC; + } + else + tmpReg &= ~BMI_ERR_INTR_EN_PIPELINE_ECC; + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_ier, tmpReg); + break; + case(e_FM_EX_BMI_STATISTICS_RAM_ECC): + tmpReg = GET_UINT32(p_Fm->p_FmBmiRegs->fmbm_ier); + if(enable) + tmpReg |= BMI_ERR_INTR_EN_STATISTICS_RAM_ECC; + else + tmpReg &= ~BMI_ERR_INTR_EN_STATISTICS_RAM_ECC; + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_ier, tmpReg); + break; + case(e_FM_EX_BMI_DISPATCH_RAM_ECC): + tmpReg = GET_UINT32(p_Fm->p_FmBmiRegs->fmbm_ier); + if(enable) + { +#ifdef FM_NO_DISPATCH_RAM_ECC + t_FmRevisionInfo revInfo; + FM_GetRevision(p_Fm, &revInfo); + if (revInfo.majorRev != 4) + { + REPORT_ERROR(MINOR, E_NOT_SUPPORTED, ("e_FM_EX_BMI_DISPATCH_RAM_ECC")); + return E_OK; + } +#endif /* FM_NO_DISPATCH_RAM_ECC */ + tmpReg |= BMI_ERR_INTR_EN_DISPATCH_RAM_ECC; + } + else + tmpReg &= ~BMI_ERR_INTR_EN_DISPATCH_RAM_ECC; + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_ier, tmpReg); + break; + case(e_FM_EX_IRAM_ECC): + tmpReg = GET_UINT32(p_Fm->p_FmFpmRegs->fmrie); + if(enable) + { + /* enable ECC if not enabled */ + FmEnableRamsEcc(p_Fm); + /* enable ECC interrupts */ + tmpReg |= FPM_IRAM_ECC_ERR_EX_EN; + } + else + { + /* ECC mechanism may be disabled, depending on driver status */ + FmDisableRamsEcc(p_Fm); + tmpReg &= ~FPM_IRAM_ECC_ERR_EX_EN; + } + WRITE_UINT32(p_Fm->p_FmFpmRegs->fmrie, tmpReg); + break; + + case(e_FM_EX_MURAM_ECC): + tmpReg = GET_UINT32(p_Fm->p_FmFpmRegs->fmrie); + if(enable) + { + /* enable ECC if not enabled */ + FmEnableRamsEcc(p_Fm); + /* enable ECC interrupts */ + tmpReg |= FPM_MURAM_ECC_ERR_EX_EN; + } + else + { + /* ECC mechanism may be disabled, depending on driver status */ + FmDisableRamsEcc(p_Fm); + tmpReg &= ~FPM_MURAM_ECC_ERR_EX_EN; + } + + WRITE_UINT32(p_Fm->p_FmFpmRegs->fmrie, tmpReg); + break; + default: + RETURN_ERROR(MINOR, E_INVALID_SELECTION, NO_MSG); + } + } + else + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Undefined exception")); + + return E_OK; +} + +t_Error FM_GetRevision(t_Handle h_Fm, t_FmRevisionInfo *p_FmRevisionInfo) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint32_t tmpReg; + t_Error err; + t_FmIpcMsg msg; + t_FmIpcReply reply; + uint32_t replyLength; + t_FmIpcRevisionInfo ipcRevInfo; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + + if (p_Fm->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_GET_REV; + replyLength = sizeof(uint32_t) + sizeof(t_FmRevisionInfo); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + if (replyLength != (sizeof(uint32_t) + sizeof(t_FmRevisionInfo))) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + memcpy((uint8_t*)&ipcRevInfo, reply.replyBody, sizeof(t_FmRevisionInfo)); + p_FmRevisionInfo->majorRev = ipcRevInfo.majorRev; + p_FmRevisionInfo->minorRev = ipcRevInfo.minorRev; + return (t_Error)(reply.error); + } + + /* read revision register 1 */ + tmpReg = GET_UINT32(p_Fm->p_FmFpmRegs->fm_ip_rev_1); + p_FmRevisionInfo->majorRev = (uint8_t)((tmpReg & FPM_REV1_MAJOR_MASK) >> FPM_REV1_MAJOR_SHIFT); + p_FmRevisionInfo->minorRev = (uint8_t)((tmpReg & FPM_REV1_MINOR_MASK) >> FPM_REV1_MINOR_SHIFT); + + return E_OK; +} + +uint32_t FM_GetCounter(t_Handle h_Fm, e_FmCounters counter) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + t_Error err; + uint32_t counterValue; + t_FmIpcMsg msg; + t_FmIpcReply reply; + uint32_t replyLength, outCounter; + + SANITY_CHECK_RETURN_VALUE(p_Fm, E_INVALID_HANDLE, 0); + SANITY_CHECK_RETURN_VALUE(!p_Fm->p_FmDriverParam, E_INVALID_STATE, 0); + + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_GET_COUNTER; + memcpy(msg.msgBody, (uint8_t *)&counter, sizeof(uint32_t)); + replyLength = sizeof(uint32_t) + sizeof(uint32_t); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId) +sizeof(counterValue), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + if(replyLength != (sizeof(uint32_t) + sizeof(uint32_t))) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + memcpy((uint8_t*)&outCounter, reply.replyBody, sizeof(uint32_t)); + + return outCounter; + } + + switch(counter) + { + case(e_FM_COUNTERS_ENQ_TOTAL_FRAME): + return GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_etfc); + case(e_FM_COUNTERS_DEQ_TOTAL_FRAME): + return GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_dtfc); + case(e_FM_COUNTERS_DEQ_0): + return GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_dc0); + case(e_FM_COUNTERS_DEQ_1): + return GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_dc1); + case(e_FM_COUNTERS_DEQ_2): + return GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_dc2); + case(e_FM_COUNTERS_DEQ_3): + return GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_dc3); + case(e_FM_COUNTERS_DEQ_FROM_DEFAULT): + return GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_dfdc); + case(e_FM_COUNTERS_DEQ_FROM_CONTEXT): + return GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_dfcc); + case(e_FM_COUNTERS_DEQ_FROM_FD): + return GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_dffc); + case(e_FM_COUNTERS_DEQ_CONFIRM): + return GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_dcc); + case(e_FM_COUNTERS_SEMAPHOR_ENTRY_FULL_REJECT): + return GET_UINT32(p_Fm->p_FmDmaRegs->fmdmsefrc); + case(e_FM_COUNTERS_SEMAPHOR_QUEUE_FULL_REJECT): + return GET_UINT32(p_Fm->p_FmDmaRegs->fmdmsqfrc); + case(e_FM_COUNTERS_SEMAPHOR_SYNC_REJECT): + return GET_UINT32(p_Fm->p_FmDmaRegs->fmdmssrc); + default: + break; + } + /* should never get here */ + ASSERT_COND(FALSE); + + return 0; +} + +t_Error FM_ModifyCounter(t_Handle h_Fm, e_FmCounters counter, uint32_t val) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Fm->p_FmDriverParam, E_INVALID_STATE); + + /* When applicable (when there is an 'enable counters' bit, + check that counters are enabled */ + switch(counter) + { + case(e_FM_COUNTERS_ENQ_TOTAL_FRAME): + case(e_FM_COUNTERS_DEQ_TOTAL_FRAME): + case(e_FM_COUNTERS_DEQ_0): + case(e_FM_COUNTERS_DEQ_1): + case(e_FM_COUNTERS_DEQ_2): + case(e_FM_COUNTERS_DEQ_3): + case(e_FM_COUNTERS_DEQ_FROM_DEFAULT): + case(e_FM_COUNTERS_DEQ_FROM_CONTEXT): + case(e_FM_COUNTERS_DEQ_FROM_FD): + case(e_FM_COUNTERS_DEQ_CONFIRM): + if(!(GET_UINT32(p_Fm->p_FmQmiRegs->fmqm_gc) & QMI_CFG_EN_COUNTERS)) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Requested counter was not enabled")); + break; + default: + break; + } + + /* Set counter */ + switch(counter) + { + case(e_FM_COUNTERS_ENQ_TOTAL_FRAME): + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_etfc, val); + break; + case(e_FM_COUNTERS_DEQ_TOTAL_FRAME): + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_dtfc, val); + break; + case(e_FM_COUNTERS_DEQ_0): + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_dc0, val); + break; + case(e_FM_COUNTERS_DEQ_1): + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_dc1, val); + break; + case(e_FM_COUNTERS_DEQ_2): + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_dc2, val); + break; + case(e_FM_COUNTERS_DEQ_3): + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_dc3, val); + break; + case(e_FM_COUNTERS_DEQ_FROM_DEFAULT): + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_dfdc, val); + break; + case(e_FM_COUNTERS_DEQ_FROM_CONTEXT): + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_dfcc, val); + break; + case(e_FM_COUNTERS_DEQ_FROM_FD): + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_dffc, val); + break; + case(e_FM_COUNTERS_DEQ_CONFIRM): + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_dcc, val); + break; + case(e_FM_COUNTERS_SEMAPHOR_ENTRY_FULL_REJECT): + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmsefrc, val); + break; + case(e_FM_COUNTERS_SEMAPHOR_QUEUE_FULL_REJECT): + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmsqfrc, val); + break; + case(e_FM_COUNTERS_SEMAPHOR_SYNC_REJECT): + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmssrc, val); + break; + default: + break; + } + + return E_OK; +} + +void FM_SetDmaEmergency(t_Handle h_Fm, e_FmDmaMuramPort muramPort, bool enable) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint32_t bitMask; + + SANITY_CHECK_RETURN(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN(!p_Fm->p_FmDriverParam, E_INVALID_STATE); + + bitMask = (uint32_t)((muramPort==e_FM_DMA_MURAM_PORT_WRITE) ? DMA_MODE_EMERGENCY_WRITE : DMA_MODE_EMERGENCY_READ); + + if(enable) + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmmr, GET_UINT32(p_Fm->p_FmDmaRegs->fmdmmr) | bitMask); + else /* disable */ + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmmr, GET_UINT32(p_Fm->p_FmDmaRegs->fmdmmr) & ~bitMask); + + return; +} + +void FM_SetDmaExtBusPri(t_Handle h_Fm, e_FmDmaExtBusPri pri) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN(!p_Fm->p_FmDriverParam, E_INVALID_STATE); + + WRITE_UINT32(p_Fm->p_FmDmaRegs->fmdmmr, GET_UINT32(p_Fm->p_FmDmaRegs->fmdmmr) | ((uint32_t)pri << DMA_MODE_BUS_PRI_SHIFT) ); + + return; +} + +void FM_GetDmaStatus(t_Handle h_Fm, t_FmDmaStatus *p_FmDmaStatus) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint32_t tmpReg; + t_Error err; + t_FmIpcMsg msg; + t_FmIpcReply reply; + uint32_t replyLength; + t_FmIpcDmaStatus ipcDmaStatus; + + SANITY_CHECK_RETURN(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN(!p_Fm->p_FmDriverParam, E_INVALID_STATE); + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + memset(&reply, 0, sizeof(reply)); + msg.msgId = FM_DMA_STAT; + replyLength = sizeof(uint32_t) + sizeof(t_FmIpcDmaStatus); + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId), + (uint8_t*)&reply, + &replyLength, + NULL, + NULL)) != E_OK) + { + REPORT_ERROR(MINOR, err, NO_MSG); + return; + } + if (replyLength != (sizeof(uint32_t) + sizeof(t_FmIpcDmaStatus))) + { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("IPC reply length mismatch")); + return; + } + memcpy((uint8_t*)&ipcDmaStatus, reply.replyBody, sizeof(t_FmIpcDmaStatus)); + + p_FmDmaStatus->cmqNotEmpty = (bool)ipcDmaStatus.boolCmqNotEmpty; /**< Command queue is not empty */ + p_FmDmaStatus->busError = (bool)ipcDmaStatus.boolBusError; /**< Bus error occurred */ + p_FmDmaStatus->readBufEccError = (bool)ipcDmaStatus.boolReadBufEccError; /**< Double ECC error on buffer Read */ + p_FmDmaStatus->writeBufEccSysError =(bool)ipcDmaStatus.boolWriteBufEccSysError; /**< Double ECC error on buffer write from system side */ + p_FmDmaStatus->writeBufEccFmError = (bool)ipcDmaStatus.boolWriteBufEccFmError; /**< Double ECC error on buffer write from FM side */ + return; + } + + tmpReg = GET_UINT32(p_Fm->p_FmDmaRegs->fmdmsr); + + p_FmDmaStatus->cmqNotEmpty = (bool)(tmpReg & DMA_STATUS_CMD_QUEUE_NOT_EMPTY); + p_FmDmaStatus->busError = (bool)(tmpReg & DMA_STATUS_BUS_ERR); + p_FmDmaStatus->readBufEccError = (bool)(tmpReg & DMA_STATUS_READ_ECC); + p_FmDmaStatus->writeBufEccSysError = (bool)(tmpReg & DMA_STATUS_SYSTEM_WRITE_ECC); + p_FmDmaStatus->writeBufEccFmError = (bool)(tmpReg & DMA_STATUS_FM_WRITE_ECC); + return; +} + +t_Error FM_ForceIntr (t_Handle h_Fm, e_FmExceptions exception) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Fm->p_FmDriverParam, E_INVALID_STATE); + + switch(exception) + { + case e_FM_EX_QMI_DEQ_FROM_UNKNOWN_PORTID: + if (!(p_Fm->p_FmStateStruct->exceptions & FM_EX_QMI_DEQ_FROM_UNKNOWN_PORTID)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("The selected exception is masked")); + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_eif, QMI_ERR_INTR_EN_DEQ_FROM_DEF); + break; + case e_FM_EX_QMI_SINGLE_ECC: + if (!(p_Fm->p_FmStateStruct->exceptions & FM_EX_QMI_SINGLE_ECC)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("The selected exception is masked")); + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_if, QMI_INTR_EN_SINGLE_ECC); + break; + case e_FM_EX_QMI_DOUBLE_ECC: + if (!(p_Fm->p_FmStateStruct->exceptions & FM_EX_QMI_DOUBLE_ECC)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("The selected exception is masked")); + WRITE_UINT32(p_Fm->p_FmQmiRegs->fmqm_eif, QMI_ERR_INTR_EN_DOUBLE_ECC); + break; + case e_FM_EX_BMI_LIST_RAM_ECC: + if (!(p_Fm->p_FmStateStruct->exceptions & FM_EX_BMI_LIST_RAM_ECC)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("The selected exception is masked")); + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_ifr, BMI_ERR_INTR_EN_LIST_RAM_ECC); + break; + case e_FM_EX_BMI_PIPELINE_ECC: + if (!(p_Fm->p_FmStateStruct->exceptions & FM_EX_BMI_PIPELINE_ECC)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("The selected exception is masked")); + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_ifr, BMI_ERR_INTR_EN_PIPELINE_ECC); + break; + case e_FM_EX_BMI_STATISTICS_RAM_ECC: + if (!(p_Fm->p_FmStateStruct->exceptions & FM_EX_BMI_STATISTICS_RAM_ECC)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("The selected exception is masked")); + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_ifr, BMI_ERR_INTR_EN_STATISTICS_RAM_ECC); + break; + case e_FM_EX_BMI_DISPATCH_RAM_ECC: + if (!(p_Fm->p_FmStateStruct->exceptions & FM_EX_BMI_DISPATCH_RAM_ECC)) + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("The selected exception is masked")); + WRITE_UINT32(p_Fm->p_FmBmiRegs->fmbm_ifr, BMI_ERR_INTR_EN_DISPATCH_RAM_ECC); + break; + default: + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("The selected exception may not be forced")); + } + + return E_OK; +} + +void FM_Resume(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm*)h_Fm; + uint32_t tmpReg; + + SANITY_CHECK_RETURN(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN(!p_Fm->p_FmDriverParam, E_INVALID_STATE); + + if (p_Fm->guestId == NCSW_MASTER_ID) + { + tmpReg = GET_UINT32(p_Fm->p_FmFpmRegs->fpmem); + /* clear tmpReg event bits in order not to clear standing events */ + tmpReg &= ~(FPM_EV_MASK_DOUBLE_ECC | FPM_EV_MASK_STALL | FPM_EV_MASK_SINGLE_ECC); + WRITE_UINT32(p_Fm->p_FmFpmRegs->fpmem, tmpReg | FPM_EV_MASK_RELEASE_FM); + } + else + ASSERT_COND(0); /* TODO */ +} + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +t_Error FM_DumpRegs(t_Handle h_Fm) +{ + t_Fm *p_Fm = (t_Fm *)h_Fm; + uint8_t i = 0; + t_Error err; + t_FmIpcMsg msg; + + DECLARE_DUMP; + + SANITY_CHECK_RETURN_ERROR(p_Fm, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(!p_Fm->p_FmDriverParam, E_INVALID_STATE); + + + if(p_Fm->guestId != NCSW_MASTER_ID) + { + memset(&msg, 0, sizeof(msg)); + msg.msgId = FM_DUMP_REGS; + if ((err = XX_IpcSendMessage(p_Fm->h_IpcSessions[0], + (uint8_t*)&msg, + sizeof(msg.msgId), + NULL, + NULL, + NULL, + NULL)) != E_OK) + RETURN_ERROR(MINOR, err, NO_MSG); + return E_OK; + } + + + DUMP_SUBTITLE(("\n")); + + DUMP_TITLE(p_Fm->p_FmFpmRegs, ("FmFpmRegs Regs")); + + DUMP_VAR(p_Fm->p_FmFpmRegs,fpmtnc); + DUMP_VAR(p_Fm->p_FmFpmRegs,fpmpr); + DUMP_VAR(p_Fm->p_FmFpmRegs,brkc); + DUMP_VAR(p_Fm->p_FmFpmRegs,fpmflc); + DUMP_VAR(p_Fm->p_FmFpmRegs,fpmdis1); + DUMP_VAR(p_Fm->p_FmFpmRegs,fpmdis2); + DUMP_VAR(p_Fm->p_FmFpmRegs,fmepi); + DUMP_VAR(p_Fm->p_FmFpmRegs,fmrie); + + DUMP_TITLE(&p_Fm->p_FmFpmRegs->fmfpfcev, ("fmfpfcev")); + DUMP_SUBSTRUCT_ARRAY(i, 4) + { + DUMP_MEMORY(&p_Fm->p_FmFpmRegs->fmfpfcev[i], sizeof(uint32_t)); + } + + DUMP_TITLE(&p_Fm->p_FmFpmRegs->fmfpfcee, ("fmfpfcee")); + DUMP_SUBSTRUCT_ARRAY(i, 4) + { + DUMP_MEMORY(&p_Fm->p_FmFpmRegs->fmfpfcee[i], sizeof(uint32_t)); + } + + DUMP_SUBTITLE(("\n")); + DUMP_VAR(p_Fm->p_FmFpmRegs,fpmtsc1); + DUMP_VAR(p_Fm->p_FmFpmRegs,fpmtsc2); + DUMP_VAR(p_Fm->p_FmFpmRegs,fpmtsp); + DUMP_VAR(p_Fm->p_FmFpmRegs,fpmtsf); + DUMP_VAR(p_Fm->p_FmFpmRegs,fmrcr); + DUMP_VAR(p_Fm->p_FmFpmRegs,fpmextc); + DUMP_VAR(p_Fm->p_FmFpmRegs,fpmext1); + DUMP_VAR(p_Fm->p_FmFpmRegs,fpmext2); + + DUMP_TITLE(&p_Fm->p_FmFpmRegs->fpmdrd, ("fpmdrd")); + DUMP_SUBSTRUCT_ARRAY(i, 16) + { + DUMP_MEMORY(&p_Fm->p_FmFpmRegs->fpmdrd[i], sizeof(uint32_t)); + } + + DUMP_SUBTITLE(("\n")); + DUMP_VAR(p_Fm->p_FmFpmRegs,fpmdra); + DUMP_VAR(p_Fm->p_FmFpmRegs,fm_ip_rev_1); + DUMP_VAR(p_Fm->p_FmFpmRegs,fm_ip_rev_2); + DUMP_VAR(p_Fm->p_FmFpmRegs,fmrstc); + DUMP_VAR(p_Fm->p_FmFpmRegs,fmcld); + DUMP_VAR(p_Fm->p_FmFpmRegs,fmnpi); + DUMP_VAR(p_Fm->p_FmFpmRegs,fpmem); + + DUMP_TITLE(&p_Fm->p_FmFpmRegs->fpmcev, ("fpmcev")); + DUMP_SUBSTRUCT_ARRAY(i, 4) + { + DUMP_MEMORY(&p_Fm->p_FmFpmRegs->fpmcev[i], sizeof(uint32_t)); + } + + DUMP_TITLE(&p_Fm->p_FmFpmRegs->fmfp_ps, ("fmfp_ps")); + DUMP_SUBSTRUCT_ARRAY(i, 64) + { + DUMP_MEMORY(&p_Fm->p_FmFpmRegs->fmfp_ps[i], sizeof(uint32_t)); + } + + + DUMP_TITLE(p_Fm->p_FmDmaRegs, ("p_FmDmaRegs Regs")); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmsr); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmmr); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmtr); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmhy); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmsetr); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmtah); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmtal); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmtcid); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmra); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmrd); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmwcr); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmebcr); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmccqdr); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmccqvr1); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmccqvr2); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmcqvr3); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmcqvr4); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmcqvr5); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmsefrc); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmsqfrc); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmssrc); + DUMP_VAR(p_Fm->p_FmDmaRegs,fmdmdcr); + + DUMP_TITLE(&p_Fm->p_FmDmaRegs->fmdmplr, ("fmdmplr")); + + DUMP_SUBSTRUCT_ARRAY(i, FM_SIZE_OF_LIODN_TABLE/2) + { + DUMP_MEMORY(&p_Fm->p_FmDmaRegs->fmdmplr[i], sizeof(uint32_t)); + } + + DUMP_TITLE(p_Fm->p_FmBmiRegs, ("p_FmBmiRegs COMMON Regs")); + DUMP_VAR(p_Fm->p_FmBmiRegs,fmbm_init); + DUMP_VAR(p_Fm->p_FmBmiRegs,fmbm_cfg1); + DUMP_VAR(p_Fm->p_FmBmiRegs,fmbm_cfg2); + DUMP_VAR(p_Fm->p_FmBmiRegs,fmbm_ievr); + DUMP_VAR(p_Fm->p_FmBmiRegs,fmbm_ier); + + DUMP_TITLE(&p_Fm->p_FmBmiRegs->fmbm_arb, ("fmbm_arb")); + DUMP_SUBSTRUCT_ARRAY(i, 8) + { + DUMP_MEMORY(&p_Fm->p_FmBmiRegs->fmbm_arb[i], sizeof(uint32_t)); + } + + + DUMP_TITLE(p_Fm->p_FmQmiRegs, ("p_FmQmiRegs COMMON Regs")); + DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_gc); + DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_eie); + DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_eien); + DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_eif); + DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_ie); + DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_ien); + DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_if); + DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_gs); + DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_ts); + DUMP_VAR(p_Fm->p_FmQmiRegs,fmqm_etfc); + + return E_OK; +} +#endif /* (defined(DEBUG_ERRORS) && ... */ + --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/fm.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/fm.h @@ -0,0 +1,699 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fm.h + + @Description FM internal structures and definitions. +*//***************************************************************************/ +#ifndef __FM_H +#define __FM_H + +#include "error_ext.h" +#include "std_ext.h" +#include "fm_ext.h" +#include "fm_ipc.h" + + +#define __ERR_MODULE__ MODULE_FM + +#define FM_MAX_NUM_OF_HW_PORT_IDS 64 +#define FM_MAX_NUM_OF_GUESTS 100 + +/**************************************************************************//** + @Description Exceptions +*//***************************************************************************/ +#define FM_EX_DMA_BUS_ERROR 0x80000000 /**< DMA bus error. */ +#define FM_EX_DMA_READ_ECC 0x40000000 +#define FM_EX_DMA_SYSTEM_WRITE_ECC 0x20000000 +#define FM_EX_DMA_FM_WRITE_ECC 0x10000000 +#define FM_EX_FPM_STALL_ON_TASKS 0x08000000 /**< Stall of tasks on FPM */ +#define FM_EX_FPM_SINGLE_ECC 0x04000000 /**< Single ECC on FPM */ +#define FM_EX_FPM_DOUBLE_ECC 0x02000000 +#define FM_EX_QMI_SINGLE_ECC 0x01000000 /**< Single ECC on FPM */ +#define FM_EX_QMI_DEQ_FROM_UNKNOWN_PORTID 0x00800000 /**< Dequeu from default queue id */ +#define FM_EX_QMI_DOUBLE_ECC 0x00400000 +#define FM_EX_BMI_LIST_RAM_ECC 0x00200000 +#define FM_EX_BMI_PIPELINE_ECC 0x00100000 +#define FM_EX_BMI_STATISTICS_RAM_ECC 0x00080000 +#define FM_EX_IRAM_ECC 0x00040000 +#define FM_EX_NURAM_ECC 0x00020000 +#define FM_EX_BMI_DISPATCH_RAM_ECC 0x00010000 + +#define GET_EXCEPTION_FLAG(bitMask, exception) switch(exception){ \ + case e_FM_EX_DMA_BUS_ERROR: \ + bitMask = FM_EX_DMA_BUS_ERROR; break; \ + case e_FM_EX_DMA_READ_ECC: \ + bitMask = FM_EX_DMA_READ_ECC; break; \ + case e_FM_EX_DMA_SYSTEM_WRITE_ECC: \ + bitMask = FM_EX_DMA_SYSTEM_WRITE_ECC; break; \ + case e_FM_EX_DMA_FM_WRITE_ECC: \ + bitMask = FM_EX_DMA_FM_WRITE_ECC; break; \ + case e_FM_EX_FPM_STALL_ON_TASKS: \ + bitMask = FM_EX_FPM_STALL_ON_TASKS; break; \ + case e_FM_EX_FPM_SINGLE_ECC: \ + bitMask = FM_EX_FPM_SINGLE_ECC; break; \ + case e_FM_EX_FPM_DOUBLE_ECC: \ + bitMask = FM_EX_FPM_DOUBLE_ECC; break; \ + case e_FM_EX_QMI_SINGLE_ECC: \ + bitMask = FM_EX_QMI_SINGLE_ECC; break; \ + case e_FM_EX_QMI_DOUBLE_ECC: \ + bitMask = FM_EX_QMI_DOUBLE_ECC; break; \ + case e_FM_EX_QMI_DEQ_FROM_UNKNOWN_PORTID: \ + bitMask = FM_EX_QMI_DEQ_FROM_UNKNOWN_PORTID; break; \ + case e_FM_EX_BMI_LIST_RAM_ECC: \ + bitMask = FM_EX_BMI_LIST_RAM_ECC; break; \ + case e_FM_EX_BMI_PIPELINE_ECC: \ + bitMask = FM_EX_BMI_PIPELINE_ECC; break; \ + case e_FM_EX_BMI_STATISTICS_RAM_ECC: \ + bitMask = FM_EX_BMI_STATISTICS_RAM_ECC; break; \ + case e_FM_EX_BMI_DISPATCH_RAM_ECC: \ + bitMask = FM_EX_BMI_DISPATCH_RAM_ECC; break; \ + case e_FM_EX_IRAM_ECC: \ + bitMask = FM_EX_IRAM_ECC; break; \ + case e_FM_EX_MURAM_ECC: \ + bitMask = FM_EX_NURAM_ECC; break; \ + default: bitMask = 0;break;} + +/**************************************************************************//** + @Description defaults +*//***************************************************************************/ +#define DEFAULT_exceptions (FM_EX_DMA_BUS_ERROR |\ + FM_EX_DMA_READ_ECC |\ + FM_EX_DMA_SYSTEM_WRITE_ECC |\ + FM_EX_DMA_FM_WRITE_ECC |\ + FM_EX_FPM_STALL_ON_TASKS |\ + FM_EX_FPM_SINGLE_ECC |\ + FM_EX_FPM_DOUBLE_ECC |\ + FM_EX_QMI_SINGLE_ECC |\ + FM_EX_QMI_DEQ_FROM_UNKNOWN_PORTID|\ + FM_EX_QMI_DOUBLE_ECC |\ + FM_EX_BMI_LIST_RAM_ECC |\ + FM_EX_BMI_PIPELINE_ECC |\ + FM_EX_BMI_STATISTICS_RAM_ECC |\ + FM_EX_BMI_DISPATCH_RAM_ECC |\ + FM_EX_IRAM_ECC |\ + FM_EX_NURAM_ECC ) +#define DEFAULT_totalNumOfTasks (BMI_MAX_NUM_OF_TASKS*3/4) +#define DEFAULT_totalFifoSize (BMI_MAX_FIFO_SIZE*3/4) +#define DEFAULT_maxNumOfOpenDmas (BMI_MAX_NUM_OF_DMAS*3/4) +#define DEFAULT_eccEnable FALSE +#define DEFAULT_dispLimit 0 +#define DEFAULT_prsDispTh 16 +#define DEFAULT_plcrDispTh 16 +#define DEFAULT_kgDispTh 16 +#define DEFAULT_bmiDispTh 16 +#define DEFAULT_qmiEnqDispTh 16 +#define DEFAULT_qmiDeqDispTh 16 +#define DEFAULT_fmCtl1DispTh 16 +#define DEFAULT_fmCtl2DispTh 16 +#define DEFAULT_cacheOverride e_FM_DMA_NO_CACHE_OR +#ifdef FM_PEDANTIC_DMA +#define DEFAULT_aidOverride TRUE +#else +#define DEFAULT_aidOverride FALSE +#endif /* FM_PEDANTIC_DMA */ +#define DEFAULT_aidMode e_FM_DMA_AID_OUT_TNUM +#define DEFAULT_dmaStopOnBusError FALSE +#define DEFAULT_stopAtBusError FALSE +#define DEFAULT_axiDbgNumOfBeats 1 +#define DEFAULT_dmaCamNumOfEntries 32 +#define DEFAULT_dmaCommQLow ((DMA_THRESH_MAX_COMMQ+1)/2) +#define DEFAULT_dmaCommQHigh ((DMA_THRESH_MAX_COMMQ+1)*3/4) +#define DEFAULT_dmaReadIntBufLow ((DMA_THRESH_MAX_BUF+1)/2) +#define DEFAULT_dmaReadIntBufHigh ((DMA_THRESH_MAX_BUF+1)*3/4) +#define DEFAULT_dmaWriteIntBufLow ((DMA_THRESH_MAX_BUF+1)/2) +#define DEFAULT_dmaWriteIntBufHigh ((DMA_THRESH_MAX_BUF+1)*3/4) +#define DEFAULT_dmaSosEmergency 0 +#define DEFAULT_dmaDbgCntMode e_FM_DMA_DBG_NO_CNT +#define DEFAULT_catastrophicErr e_FM_CATASTROPHIC_ERR_STALL_PORT +#define DEFAULT_dmaErr e_FM_DMA_ERR_CATASTROPHIC +#define DEFAULT_resetOnInit FALSE +#define DEFAULT_haltOnExternalActivation FALSE /* do not change! if changed, must be disabled for rev1 ! */ +#define DEFAULT_haltOnUnrecoverableEccError FALSE /* do not change! if changed, must be disabled for rev1 ! */ +#define DEFAULT_externalEccRamsEnable FALSE +#define DEFAULT_VerifyUcode FALSE +#define DEFAULT_tnumAgingPeriod 0 +#define DEFAULT_dmaWatchdog 0 /* disabled */ +#define DEFAULT_mtu 9600 + +/**************************************************************************//** + @Description Modules registers offsets +*//***************************************************************************/ +#define FM_MM_MURAM 0x00000000 +#define FM_MM_BMI 0x00080000 +#define FM_MM_QMI 0x00080400 +#define FM_MM_PRS 0x000c7000 +#define FM_MM_KG 0x000C1000 +#define FM_MM_DMA 0x000C2000 +#define FM_MM_FPM 0x000C3000 +#define FM_MM_PLCR 0x000C0000 +#define FM_MM_IMEM 0x000C4000 + +/**************************************************************************//** + @Description Interrupt Enable/Mask +*//***************************************************************************/ + +/**************************************************************************//** + @Description Memory Mapped Registers +*//***************************************************************************/ + +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(push,1) +#endif /* defined(__MWERKS__) && ... */ +#define MEM_MAP_START + +typedef _Packed struct +{ + volatile uint32_t fpmtnc; /**< FPM TNUM Control */ + volatile uint32_t fpmpr; /**< FPM Port_ID FmCtl Association */ + volatile uint32_t brkc; /**< FPM Breakpoint Control */ + volatile uint32_t fpmflc; /**< FPM Flush Control */ + volatile uint32_t fpmdis1; /**< FPM Dispatch Thresholds1 */ + volatile uint32_t fpmdis2; /**< FPM Dispatch Thresholds2 */ + volatile uint32_t fmepi; /**< FM Error Pending Interrupts */ + volatile uint32_t fmrie; /**< FM Error Interrupt Enable */ + volatile uint32_t fmfpfcev[4]; /**< FPM FMan-Controller Event 1-4 */ + volatile uint8_t res1[16]; /**< reserved */ + volatile uint32_t fmfpfcee[4]; /**< PM FMan-Controller Event 1-4 */ + volatile uint8_t res2[16]; /**< reserved */ + volatile uint32_t fpmtsc1; /**< FPM TimeStamp Control1 */ + volatile uint32_t fpmtsc2; /**< FPM TimeStamp Control2 */ + volatile uint32_t fpmtsp; /**< FPM Time Stamp */ + volatile uint32_t fpmtsf; /**< FPM Time Stamp Fraction */ + volatile uint32_t fmrcr; /**< FM Rams Control */ + volatile uint32_t fpmextc; /**< FPM External Requests Control */ + volatile uint32_t fpmext1; /**< FPM External Requests Config1 */ + volatile uint32_t fpmext2; /**< FPM External Requests Config2 */ + volatile uint32_t fpmdrd[16]; /**< FPM Data_Ram Data 0-15 */ + volatile uint32_t fpmdra; /**< FPM Data Ram Access */ + volatile uint32_t fm_ip_rev_1; /**< FM IP Block Revision 1 */ + volatile uint32_t fm_ip_rev_2; /**< FM IP Block Revision 2 */ + volatile uint32_t fmrstc; /**< FM Reset Command */ + volatile uint32_t fmcld; /**< FM Classifier Debug */ + volatile uint32_t fmnpi; /**< FM Normal Pending Interrupts */ + volatile uint32_t fmfp_exte; /**< FPM External Requests Enable */ + volatile uint32_t fpmem; /**< FPM Event & Mask */ + volatile uint32_t fpmcev[4]; /**< FPM CPU Event 1-4 */ + volatile uint8_t res4[16]; /**< reserved */ + volatile uint32_t fmfp_ps[0x40]; /**< FPM Port Status */ + volatile uint8_t reserved1[0x260]; + volatile uint32_t fpmts[128]; /**< 0x400: FPM Task Status */ +} _PackedType t_FmFpmRegs; + +#define NUM_OF_DBG_TRAPS 3 + +typedef _Packed struct +{ + volatile uint32_t fmbm_init; /**< BMI Initialization */ + volatile uint32_t fmbm_cfg1; /**< BMI Configuration 1 */ + volatile uint32_t fmbm_cfg2; /**< BMI Configuration 2 */ + volatile uint32_t reserved[5]; + volatile uint32_t fmbm_ievr; /**< Interrupt Event Register */ + volatile uint32_t fmbm_ier; /**< Interrupt Enable Register */ + volatile uint32_t fmbm_ifr; /**< Interrupt Force Register */ + volatile uint32_t reserved1[5]; + volatile uint32_t fmbm_arb[8]; /**< BMI Arbitration */ + volatile uint32_t reserved2[12]; + volatile uint32_t fmbm_dtc[NUM_OF_DBG_TRAPS]; /**< BMI Debug Trap Counter */ + volatile uint32_t reserved3; + volatile uint32_t fmbm_dcv[NUM_OF_DBG_TRAPS][4]; /**< BMI Debug Compare Value */ + volatile uint32_t fmbm_dcm[NUM_OF_DBG_TRAPS][4]; /**< BMI Debug Compare Mask */ + volatile uint32_t fmbm_gde; /**< BMI Global Debug Enable */ + volatile uint32_t fmbm_pp[63]; /**< BMI Port Parameters */ + volatile uint32_t reserved4; + volatile uint32_t fmbm_pfs[63]; /**< BMI Port FIFO Size */ + volatile uint32_t reserved5; + volatile uint32_t fmbm_ppid[63]; /**< Port Partition ID */ +} _PackedType t_FmBmiRegs; + +typedef _Packed struct +{ + volatile uint32_t fmqm_gc; /**< General Configuration Register */ + volatile uint32_t Reserved0; + volatile uint32_t fmqm_eie; /**< Error Interrupt Event Register */ + volatile uint32_t fmqm_eien; /**< Error Interrupt Enable Register */ + volatile uint32_t fmqm_eif; /**< Error Interrupt Force Register */ + volatile uint32_t fmqm_ie; /**< Interrupt Event Register */ + volatile uint32_t fmqm_ien; /**< Interrupt Enable Register */ + volatile uint32_t fmqm_if; /**< Interrupt Force Register */ + volatile uint32_t fmqm_gs; /**< Global Status Register */ + volatile uint32_t fmqm_ts; /**< Task Status Register */ + volatile uint32_t fmqm_etfc; /**< Enqueue Total Frame Counter */ + volatile uint32_t fmqm_dtfc; /**< Dequeue Total Frame Counter */ + volatile uint32_t fmqm_dc0; /**< Dequeue Counter 0 */ + volatile uint32_t fmqm_dc1; /**< Dequeue Counter 1 */ + volatile uint32_t fmqm_dc2; /**< Dequeue Counter 2 */ + volatile uint32_t fmqm_dc3; /**< Dequeue Counter 3 */ + volatile uint32_t fmqm_dfdc; /**< Dequeue FQID from Default Counter */ + volatile uint32_t fmqm_dfcc; /**< Dequeue FQID from Context Counter */ + volatile uint32_t fmqm_dffc; /**< Dequeue FQID from FD Counter */ + volatile uint32_t fmqm_dcc; /**< Dequeue Confirm Counter */ + volatile uint32_t Reserved1a[7]; + volatile uint32_t fmqm_tapc; /**< Tnum Aging Period Control */ + volatile uint32_t fmqm_dmcvc; /**< Dequeue MAC Command Valid Counter */ + volatile uint32_t fmqm_difdcc; /**< Dequeue Invalid FD Command Counter */ + volatile uint32_t fmqm_da1v; /**< Dequeue A1 Valid Counter */ + volatile uint32_t Reserved1b; + volatile uint32_t fmqm_dtc; /**< 0x0080 Debug Trap Counter */ + volatile uint32_t fmqm_efddd; /**< 0x0084 Enqueue Frame Descriptor Dynamic Debug */ + volatile uint32_t Reserved3[2]; + _Packed struct { + volatile uint32_t fmqm_dtcfg1; /**< 0x0090 Debug Trap Configuration 1 Register */ + volatile uint32_t fmqm_dtval1; /**< Debug Trap Value 1 Register */ + volatile uint32_t fmqm_dtm1; /**< Debug Trap Mask 1 Register */ + volatile uint32_t fmqm_dtc1; /**< Debug Trap Counter 1 Register */ + volatile uint32_t fmqm_dtcfg2; /**< Debug Trap Configuration 2 Register */ + volatile uint32_t fmqm_dtval2; /**< Debug Trap Value 2 Register */ + volatile uint32_t fmqm_dtm2; /**< Debug Trap Mask 2 Register */ + volatile uint32_t Reserved1; + } _PackedType dbgTraps[NUM_OF_DBG_TRAPS]; +} _PackedType t_FmQmiRegs; + +typedef _Packed struct +{ + volatile uint32_t fmdmsr; /**< FM DMA status register 0x04 */ + volatile uint32_t fmdmmr; /**< FM DMA mode register 0x08 */ + volatile uint32_t fmdmtr; /**< FM DMA bus threshold register 0x0c */ + volatile uint32_t fmdmhy; /**< FM DMA bus hysteresis register 0x10 */ + volatile uint32_t fmdmsetr; /**< FM DMA SOS emergency Threshold Register 0x14 */ + volatile uint32_t fmdmtah; /**< FM DMA transfer bus address high register 0x18 */ + volatile uint32_t fmdmtal; /**< FM DMA transfer bus address low register 0x1C */ + volatile uint32_t fmdmtcid; /**< FM DMA transfer bus communication ID register 0x20 */ + volatile uint32_t fmdmra; /**< FM DMA bus internal ram address register 0x24 */ + volatile uint32_t fmdmrd; /**< FM DMA bus internal ram data register 0x28 */ + volatile uint32_t fmdmwcr; /**< FM DMA CAM watchdog counter value 0x2C */ + volatile uint32_t fmdmebcr; /**< FM DMA CAM base in MURAM register 0x30 */ + volatile uint32_t fmdmccqdr; /**< FM DMA CAM and CMD Queue Debug register 0x34 */ + volatile uint32_t fmdmccqvr1; /**< FM DMA CAM and CMD Queue Value register #1 0x38 */ + volatile uint32_t fmdmccqvr2; /**< FM DMA CAM and CMD Queue Value register #2 0x3C */ + volatile uint32_t fmdmcqvr3; /**< FM DMA CMD Queue Value register #3 0x40 */ + volatile uint32_t fmdmcqvr4; /**< FM DMA CMD Queue Value register #4 0x44 */ + volatile uint32_t fmdmcqvr5; /**< FM DMA CMD Queue Value register #5 0x48 */ + volatile uint32_t fmdmsefrc; /**< FM DMA Semaphore Entry Full Reject Counter 0x50 */ + volatile uint32_t fmdmsqfrc; /**< FM DMA Semaphore Queue Full Reject Counter 0x54 */ + volatile uint32_t fmdmssrc; /**< FM DMA Semaphore SYNC Reject Counter 0x54 */ + volatile uint32_t fmdmdcr; /**< FM DMA Debug Counter */ + volatile uint32_t fmdmemsr; /**< FM DMA Emrgency Smoother Register */ + volatile uint32_t reserved; + volatile uint32_t fmdmplr[FM_SIZE_OF_LIODN_TABLE/2]; + /**< FM DMA PID-LIODN # register */ +} _PackedType t_FmDmaRegs; + +typedef _Packed struct +{ + volatile uint32_t iadd; /**< FM IRAM instruction address register */ + volatile uint32_t idata; /**< FM IRAM instruction data register */ + volatile uint32_t itcfg; /**< FM IRAM timing config register */ + volatile uint32_t iready; /**< FM IRAM ready register */ + volatile uint8_t res[0x80000-0x10]; +} _PackedType t_FMIramRegs; + +#define MEM_MAP_END +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(pop) +#endif /* defined(__MWERKS__) && ... */ + + +/**************************************************************************//** + @Description General defines +*//***************************************************************************/ + +#define FM_DEBUG_STATUS_REGISTER_OFFSET 0x000d1084UL +#define FM_UCODE_DEBUG_INSTRUCTION 0x6ffff805UL + + +/**************************************************************************//** + @Description DMA definitions +*//***************************************************************************/ + +/* masks */ +#define DMA_MODE_AID_OR 0x20000000 +#define DMA_MODE_SBER 0x10000000 +#define DMA_MODE_BER 0x00200000 +#define DMA_MODE_ECC 0x00000020 +#define DMA_MODE_PRIVILEGE_PROT 0x00001000 +#define DMA_MODE_SECURE_PROT 0x00000800 +#define DMA_MODE_EMERGENCY_READ 0x00080000 +#define DMA_MODE_EMERGENCY_WRITE 0x00040000 + +#define DMA_TRANSFER_PORTID_MASK 0xFF000000 +#define DMA_TRANSFER_TNUM_MASK 0x00FF0000 +#define DMA_TRANSFER_LIODN_MASK 0x00000FFF + +#define DMA_HIGH_LIODN_MASK 0x0FFF0000 +#define DMA_LOW_LIODN_MASK 0x00000FFF + +#define DMA_STATUS_CMD_QUEUE_NOT_EMPTY 0x10000000 +#define DMA_STATUS_BUS_ERR 0x08000000 +#define DMA_STATUS_READ_ECC 0x04000000 +#define DMA_STATUS_SYSTEM_WRITE_ECC 0x02000000 +#define DMA_STATUS_FM_WRITE_ECC 0x01000000 +#define DMA_STATUS_SYSTEM_DPEXT_ECC 0x00800000 +#define DMA_STATUS_FM_DPEXT_ECC 0x00400000 +#define DMA_STATUS_SYSTEM_DPDAT_ECC 0x00200000 +#define DMA_STATUS_FM_DPDAT_ECC 0x00100000 +#define DMA_STATUS_FM_SPDAT_ECC 0x00080000 + +#define FM_LIODN_BASE_MASK 0x00000FFF + +/* shifts */ +#define DMA_MODE_CACHE_OR_SHIFT 30 +#define DMA_MODE_BUS_PRI_SHIFT 16 +#define DMA_MODE_AXI_DBG_SHIFT 24 +#define DMA_MODE_CEN_SHIFT 13 +#define DMA_MODE_BUS_PROT_SHIFT 10 +#define DMA_MODE_DBG_SHIFT 7 +#define DMA_MODE_EMERGENCY_LEVEL_SHIFT 6 +#define DMA_MODE_AID_MODE_SHIFT 4 +#define DMA_MODE_MAX_AXI_DBG_NUM_OF_BEATS 16 +#define DMA_MODE_MAX_CAM_NUM_OF_ENTRIES 32 + +#define DMA_THRESH_COMMQ_SHIFT 24 +#define DMA_THRESH_READ_INT_BUF_SHIFT 16 + +#define DMA_LIODN_SHIFT 16 + +#define DMA_TRANSFER_PORTID_SHIFT 24 +#define DMA_TRANSFER_TNUM_SHIFT 16 + +/* sizes */ +#define DMA_MAX_WATCHDOG 0xffffffff + +/* others */ +#define DMA_CAM_SIZEOF_ENTRY 0x40 +#define DMA_CAM_ALIGN 0x1000 +#define DMA_CAM_UNITS 8 + + +/**************************************************************************//** + @Description FPM defines +*//***************************************************************************/ + +/* masks */ +#define FPM_EV_MASK_DOUBLE_ECC 0x80000000 +#define FPM_EV_MASK_STALL 0x40000000 +#define FPM_EV_MASK_SINGLE_ECC 0x20000000 +#define FPM_EV_MASK_RELEASE_FM 0x00010000 +#define FPM_EV_MASK_DOUBLE_ECC_EN 0x00008000 +#define FPM_EV_MASK_STALL_EN 0x00004000 +#define FPM_EV_MASK_SINGLE_ECC_EN 0x00002000 +#define FPM_EV_MASK_EXTERNAL_HALT 0x00000008 +#define FPM_EV_MASK_ECC_ERR_HALT 0x00000004 + +#define FPM_RAM_CTL_RAMS_ECC_EN 0x80000000 +#define FPM_RAM_CTL_IRAM_ECC_EN 0x40000000 +#define FPM_RAM_CTL_MURAM_ECC 0x00008000 +#define FPM_RAM_CTL_IRAM_ECC 0x00004000 +#define FPM_RAM_CTL_MURAM_TEST_ECC 0x20000000 +#define FPM_RAM_CTL_IRAM_TEST_ECC 0x10000000 +#define FPM_RAM_CTL_RAMS_ECC_EN_SRC_SEL 0x08000000 + +#define FPM_IRAM_ECC_ERR_EX_EN 0x00020000 +#define FPM_MURAM_ECC_ERR_EX_EN 0x00040000 + +#define FPM_REV1_MAJOR_MASK 0x0000FF00 +#define FPM_REV1_MINOR_MASK 0x000000FF + +#define FPM_REV2_INTEG_MASK 0x00FF0000 +#define FPM_REV2_ERR_MASK 0x0000FF00 +#define FPM_REV2_CFG_MASK 0x000000FF + +#define FPM_TS_FRACTION_MASK 0x0000FFFF +#define FPM_TS_CTL_EN 0x80000000 + +#define FPM_PORT_FM_CTL1 0x00000001 +#define FPM_PORT_FM_CTL2 0x00000002 +#define FPM_PRC_REALSE_STALLED 0x00800000 + +#define FPM_PS_STALLED 0x00800000 +#define FPM_PS_FM_CTL1_SEL 0x80000000 +#define FPM_PS_FM_CTL2_SEL 0x40000000 +#define FPM_PS_FM_CTL_SEL_MASK (FPM_PS_FM_CTL1_SEL | FPM_PS_FM_CTL2_SEL) + +#define FPM_RSTC_FM_RESET 0x80000000 +#define FPM_RSTC_10G0_RESET 0x04000000 +#define FPM_RSTC_1G0_RESET 0x40000000 +#define FPM_RSTC_1G1_RESET 0x20000000 +#define FPM_RSTC_1G2_RESET 0x10000000 +#define FPM_RSTC_1G3_RESET 0x08000000 +#define FPM_RSTC_1G4_RESET 0x02000000 + + +/* shifts */ +#define FPM_DISP_LIMIT_SHIFT 24 + +#define FPM_THR1_PRS_SHIFT 24 +#define FPM_THR1_KG_SHIFT 16 +#define FPM_THR1_PLCR_SHIFT 8 +#define FPM_THR1_BMI_SHIFT 0 + +#define FPM_THR2_QMI_ENQ_SHIFT 24 +#define FPM_THR2_QMI_DEQ_SHIFT 0 +#define FPM_THR2_FM_CTL1_SHIFT 16 +#define FPM_THR2_FM_CTL2_SHIFT 8 + +#define FPM_EV_MASK_CAT_ERR_SHIFT 1 +#define FPM_EV_MASK_DMA_ERR_SHIFT 0 + +#define FPM_REV1_MAJOR_SHIFT 8 +#define FPM_REV1_MINOR_SHIFT 0 + +#define FPM_REV2_INTEG_SHIFT 16 +#define FPM_REV2_ERR_SHIFT 8 +#define FPM_REV2_CFG_SHIFT 0 + +#define FPM_TS_INT_SHIFT 16 + +#define FPM_PORT_FM_CTL_PORTID_SHIFT 24 + +#define FPM_PS_FM_CTL_SEL_SHIFT 30 +#define FPM_PRC_ORA_FM_CTL_SEL_SHIFT 16 + +/* Interrupts defines */ +#define FPM_EVENT_FM_CTL_0 0x00008000 +#define FPM_EVENT_FM_CTL 0x0000FF00 +#define FPM_EVENT_FM_CTL_BRK 0x00000080 + +/* others */ +#define FPM_MAX_DISP_LIMIT 31 + +/**************************************************************************//** + @Description BMI defines +*//***************************************************************************/ +/* masks */ +#define BMI_INIT_START 0x80000000 +#define BMI_ERR_INTR_EN_PIPELINE_ECC 0x80000000 +#define BMI_ERR_INTR_EN_LIST_RAM_ECC 0x40000000 +#define BMI_ERR_INTR_EN_STATISTICS_RAM_ECC 0x20000000 +#define BMI_ERR_INTR_EN_DISPATCH_RAM_ECC 0x10000000 +#define BMI_NUM_OF_TASKS_MASK 0x3F000000 +#define BMI_NUM_OF_EXTRA_TASKS_MASK 0x000F0000 +#define BMI_NUM_OF_DMAS_MASK 0x00000F00 +#define BMI_NUM_OF_EXTRA_DMAS_MASK 0x0000000F +#define BMI_FIFO_SIZE_MASK 0x000003FF +#define BMI_EXTRA_FIFO_SIZE_MASK 0x03FF0000 +#define BMI_CFG2_DMAS_MASK 0x0000003F + +/* shifts */ +#define BMI_CFG2_TASKS_SHIFT 16 +#define BMI_CFG2_DMAS_SHIFT 0 +#define BMI_CFG1_FIFO_SIZE_SHIFT 16 +#define BMI_FIFO_SIZE_SHIFT 0 +#define BMI_EXTRA_FIFO_SIZE_SHIFT 16 +#define BMI_NUM_OF_TASKS_SHIFT 24 +#define BMI_EXTRA_NUM_OF_TASKS_SHIFT 16 +#define BMI_NUM_OF_DMAS_SHIFT 8 +#define BMI_EXTRA_NUM_OF_DMAS_SHIFT 0 + +/* others */ +#define BMI_FIFO_ALIGN 0x100 + + +/**************************************************************************//** + @Description QMI defines +*//***************************************************************************/ +/* masks */ +#define QMI_CFG_ENQ_EN 0x80000000 +#define QMI_CFG_DEQ_EN 0x40000000 +#define QMI_CFG_EN_COUNTERS 0x10000000 +#define QMI_CFG_SOFT_RESET 0x01000000 +#define QMI_CFG_DEQ_MASK 0x0000003F +#define QMI_CFG_ENQ_MASK 0x00003F00 + +#define QMI_ERR_INTR_EN_DOUBLE_ECC 0x80000000 +#define QMI_ERR_INTR_EN_DEQ_FROM_DEF 0x40000000 +#define QMI_INTR_EN_SINGLE_ECC 0x80000000 + +/* shifts */ +#define QMI_CFG_ENQ_SHIFT 8 +#define QMI_TAPC_TAP 22 + + +/**************************************************************************//** + @Description IRAM defines +*//***************************************************************************/ +/* masks */ +#define IRAM_IADD_AIE 0x80000000 +#define IRAM_READY 0x80000000 + +typedef struct { + void (*f_Isr) (t_Handle h_Arg, uint32_t event); + t_Handle h_SrcHandle; +} t_FmanCtrlIntrSrc; + + +typedef struct +{ + /* uint8_t numOfPartitions; */ + bool resetOnInit; +#ifdef FM_PARTITION_ARRAY + uint16_t liodnBasePerPort[FM_SIZE_OF_LIODN_TABLE]; +#endif + bool enCounters; + t_FmThresholds thresholds; + e_FmDmaCacheOverride dmaCacheOverride; + e_FmDmaAidMode dmaAidMode; + bool dmaAidOverride; + uint8_t dmaAxiDbgNumOfBeats; + uint8_t dmaCamNumOfEntries; + uint32_t dmaWatchdog; + t_FmDmaThresholds dmaCommQThresholds; + t_FmDmaThresholds dmaWriteBufThresholds; + t_FmDmaThresholds dmaReadBufThresholds; + uint32_t dmaSosEmergency; + e_FmDmaDbgCntMode dmaDbgCntMode; + bool dmaStopOnBusError; + bool dmaEnEmergency; + t_FmDmaEmergency dmaEmergency; + bool dmaEnEmergencySmoother; + uint32_t dmaEmergencySwitchCounter; + bool haltOnExternalActivation; + bool haltOnUnrecoverableEccError; + e_FmCatastrophicErr catastrophicErr; + e_FmDmaErr dmaErr; + bool enMuramTestMode; + bool enIramTestMode; + bool externalEccRamsEnable; + uint16_t tnumAgingPeriod; + t_FmPcdFirmwareParams firmware; + bool fwVerify; +} t_FmDriverParam; + +typedef void (t_FmanCtrlIsr)( t_Handle h_Fm, uint32_t event); + +typedef struct +{ +/***************************/ +/* Master/Guest parameters */ +/***************************/ + uint8_t fmId; + e_FmPortType portsTypes[FM_MAX_NUM_OF_HW_PORT_IDS]; + uint16_t fmClkFreq; +/**************************/ +/* Master Only parameters */ +/**************************/ + bool enabledTimeStamp; + uint8_t count1MicroBit; + uint8_t totalNumOfTasks; + uint32_t totalFifoSize; + uint8_t maxNumOfOpenDmas; + uint8_t accumulatedNumOfTasks; + uint32_t accumulatedFifoSize; + uint8_t accumulatedNumOfOpenDmas; +#ifdef FM_QMI_DEQ_OPTIONS_SUPPORT + uint8_t accumulatedNumOfDeqTnums; +#endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ +#ifdef FM_LOW_END_RESTRICTION + bool lowEndRestriction; +#endif /* FM_LOW_END_RESTRICTION */ + uint32_t exceptions; + int irq; + int errIrq; + bool ramsEccEnable; + bool explicitEnable; + bool internalCall; + uint8_t ramsEccOwners; + uint32_t extraFifoPoolSize; + uint8_t extraTasksPoolSize; + uint8_t extraOpenDmasPoolSize; +#if defined(FM_MAX_NUM_OF_10G_MACS) && (FM_MAX_NUM_OF_10G_MACS) + uint16_t macMaxFrameLengths10G[FM_MAX_NUM_OF_10G_MACS]; +#endif /* defined(FM_MAX_NUM_OF_10G_MACS) && (FM_MAX_NUM_OF_10G_MACS) */ + uint16_t macMaxFrameLengths1G[FM_MAX_NUM_OF_1G_MACS]; +} t_FmStateStruct; + +typedef struct +{ +/***************************/ +/* Master/Guest parameters */ +/***************************/ +/* locals for recovery */ + uintptr_t baseAddr; + +/* un-needed for recovery */ + t_Handle h_Pcd; + char fmModuleName[MODULE_NAME_SIZE]; + char fmIpcHandlerModuleName[FM_MAX_NUM_OF_GUESTS][MODULE_NAME_SIZE]; + t_Handle h_IpcSessions[FM_MAX_NUM_OF_GUESTS]; + t_FmIntrSrc intrMng[e_FM_EV_DUMMY_LAST]; /* FM exceptions user callback */ + uint8_t guestId; +/**************************/ +/* Master Only parameters */ +/**************************/ +/* locals for recovery */ + t_FmFpmRegs *p_FmFpmRegs; + t_FmBmiRegs *p_FmBmiRegs; + t_FmQmiRegs *p_FmQmiRegs; + t_FmDmaRegs *p_FmDmaRegs; + t_FmExceptionsCallback *f_Exception; + t_FmBusErrorCallback *f_BusError; + t_Handle h_App; /* Application handle */ + t_Handle h_Spinlock; + bool recoveryMode; + t_FmStateStruct *p_FmStateStruct; + +/* un-needed for recovery */ + t_FmDriverParam *p_FmDriverParam; + t_Handle h_FmMuram; + uint64_t fmMuramPhysBaseAddr; + bool independentMode; + bool hcPortInitialized; + uintptr_t camBaseAddr; /* save for freeing */ + uintptr_t resAddr; + uintptr_t fifoBaseAddr; /* save for freeing */ + t_FmanCtrlIntrSrc fmanCtrlIntr[FM_NUM_OF_FMAN_CTRL_EVENT_REGS]; /* FM exceptions user callback */ + bool usedEventRegs[FM_NUM_OF_FMAN_CTRL_EVENT_REGS]; +} t_Fm; + + +#endif /* __FM_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/fm_ipc.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/fm_ipc.h @@ -0,0 +1,449 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + @File fm_ipc.h + + @Description FM Inter-Partition prototypes, structures and definitions. +*//***************************************************************************/ +#ifndef __FM_IPC_H +#define __FM_IPC_H + +#include "error_ext.h" +#include "std_ext.h" + + +/**************************************************************************//** + @Group FM_grp Frame Manager API + + @Description FM API functions, definitions and enums + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group FM_IPC_grp FM Inter-Partition messaging Unit + + @Description FM Inter-Partition messaging unit API definitions and enums. + + @{ +*//***************************************************************************/ + +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(push,1) +#endif /* defined(__MWERKS__) && ... */ +#define MEM_MAP_START + +/**************************************************************************//** + @Description enum for defining MAC types +*//***************************************************************************/ + +/**************************************************************************//** + @Description A structure of parameters for specifying a MAC. +*//***************************************************************************/ +typedef _Packed struct +{ + uint8_t id; + uint32_t enumType; +} _PackedType t_FmIpcMacParams; + +/**************************************************************************//** + @Description A structure of parameters for specifying a MAC. +*//***************************************************************************/ +typedef _Packed struct +{ + t_FmIpcMacParams macParams; + uint16_t maxFrameLength; +} _PackedType t_FmIpcMacMaxFrameParams; + +/**************************************************************************//** + @Description FM physical Address +*//***************************************************************************/ +typedef _Packed struct t_FmIpcPhysAddr +{ + volatile uint8_t high; + volatile uint32_t low; +} _PackedType t_FmIpcPhysAddr; + +/**************************************************************************//** + @Description Structure for IPC communication during FM_PORT_Init. +*//***************************************************************************/ +typedef _Packed struct t_FmIpcPortInInitParams { + uint8_t hardwarePortId; /**< IN. port Id */ + uint32_t enumPortType; /**< IN. Port type */ + uint8_t boolIndependentMode;/**< IN. TRUE if FM Port operates in independent mode */ + uint16_t liodnOffset; /**< IN. Port's requested resource */ + uint8_t numOfTasks; /**< IN. Port's requested resource */ + uint8_t numOfExtraTasks; /**< IN. Port's requested resource */ + uint8_t numOfOpenDmas; /**< IN. Port's requested resource */ + uint8_t numOfExtraOpenDmas; /**< IN. Port's requested resource */ + uint32_t sizeOfFifo; /**< IN. Port's requested resource */ + uint32_t extraSizeOfFifo; /**< IN. Port's requested resource */ + uint8_t deqPipelineDepth; /**< IN. Port's requested resource */ + uint16_t liodnBase; /**< IN. Irrelevant for P4080 rev 1. + LIODN base for this port, to be + used together with LIODN offset. */ +} _PackedType t_FmIpcPortInInitParams; + + +/**************************************************************************//** + @Description Structure for IPC communication between port and FM + regarding tasks and open DMA resources management. +*//***************************************************************************/ +typedef _Packed struct t_FmIpcPortRsrcParams { + uint8_t hardwarePortId; /**< IN. port Id */ + uint32_t val; /**< IN. Port's requested resource */ + uint32_t extra; /**< IN. Port's requested resource */ + uint8_t boolInitialConfig; +} _PackedType t_FmIpcPortRsrcParams; + + +/**************************************************************************//** + @Description Structure for IPC communication between port and FM + regarding tasks and open DMA resources management. +*//***************************************************************************/ +typedef _Packed struct t_FmIpcPortFifoParams { + t_FmIpcPortRsrcParams rsrcParams; + uint32_t enumPortType; + uint8_t boolIndependentMode; + uint8_t deqPipelineDepth; + uint8_t numOfPools; + uint16_t secondLargestBufSize; + uint16_t largestBufSize; + uint8_t boolInitialConfig; +} _PackedType t_FmIpcPortFifoParams; + +/**************************************************************************//** + @Description Structure for port-FM communication during FM_PORT_Free. +*//***************************************************************************/ +typedef _Packed struct t_FmIpcPortFreeParams { + uint8_t hardwarePortId; /**< IN. port Id */ + uint32_t enumPortType; /**< IN. Port type */ +#ifdef FM_QMI_DEQ_OPTIONS_SUPPORT + uint8_t deqPipelineDepth; /**< IN. Port's requested resource */ +#endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ +} _PackedType t_FmIpcPortFreeParams; + +/**************************************************************************//** + @Description Structure for defining DMA status +*//***************************************************************************/ +typedef _Packed struct t_FmIpcDmaStatus { + uint8_t boolCmqNotEmpty; /**< Command queue is not empty */ + uint8_t boolBusError; /**< Bus error occurred */ + uint8_t boolReadBufEccError; /**< Double ECC error on buffer Read */ + uint8_t boolWriteBufEccSysError; /**< Double ECC error on buffer write from system side */ + uint8_t boolWriteBufEccFmError; /**< Double ECC error on buffer write from FM side */ +} _PackedType t_FmIpcDmaStatus; + +typedef _Packed struct t_FmIpcRegisterIntr +{ + uint8_t guestId; /* IN */ + uint32_t event; /* IN */ +} _PackedType t_FmIpcRegisterIntr; + +typedef _Packed struct t_FmIpcIsr +{ + uint8_t boolErr; /* IN */ + uint32_t pendingReg; /* IN */ +} _PackedType t_FmIpcIsr; + +/**************************************************************************//** + @Description structure for returning revision information +*//***************************************************************************/ +typedef _Packed struct t_FmIpcRevisionInfo { + uint8_t majorRev; /**< OUT: Major revision */ + uint8_t minorRev; /**< OUT: Minor revision */ +} _PackedType t_FmIpcRevisionInfo; + +/**************************************************************************//** + @Description Structure for defining Fm number of Fman controlers +*//***************************************************************************/ +typedef _Packed struct t_FmIpcPortNumOfFmanCtrls { + uint8_t hardwarePortId; /**< IN. port Id */ + uint8_t numOfFmanCtrls; /**< IN. Port type */ +} t_FmIpcPortNumOfFmanCtrls; + +/**************************************************************************//** + @Description structure for setting Fman contriller events +*//***************************************************************************/ +typedef _Packed struct t_FmIpcFmanEvents { + uint8_t eventRegId; /**< IN: Fman controller event register id */ + uint32_t enableEvents; /**< IN/OUT: required enabled events mask */ +} _PackedType t_FmIpcFmanEvents; + +#define FM_IPC_MAX_REPLY_BODY_SIZE 16 +#define FM_IPC_MAX_REPLY_SIZE (FM_IPC_MAX_REPLY_BODY_SIZE + sizeof(uint32_t)) +#define FM_IPC_MAX_MSG_SIZE 30 +typedef _Packed struct t_FmIpcMsg +{ + uint32_t msgId; + uint8_t msgBody[FM_IPC_MAX_MSG_SIZE]; +} _PackedType t_FmIpcMsg; + +typedef _Packed struct t_FmIpcReply +{ + uint32_t error; + uint8_t replyBody[FM_IPC_MAX_REPLY_BODY_SIZE]; +} _PackedType t_FmIpcReply; + +#define MEM_MAP_END +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(pop) +#endif /* defined(__MWERKS__) && ... */ + + +/***************************************************************************/ +/************************ FRONT-END-TO-BACK-END*****************************/ +/***************************************************************************/ + +/**************************************************************************//** + @Function FM_GET_TIMESTAMP_SCALE + + @Description Used by FM front-end. + + @Param[out] uint32_t Pointer +*//***************************************************************************/ +#define FM_GET_TIMESTAMP_SCALE 1 + +/**************************************************************************//** + @Function FM_GET_COUNTER + + @Description Used by FM front-end. + + @Param[in/out] t_FmIpcGetCounter Pointer +*//***************************************************************************/ +#define FM_GET_COUNTER 2 + +/**************************************************************************//** + @Function FM_DUMP_REGS + + @Description Used by FM front-end for the PORT module in order to set and get + parameters in/from master FM module on FM PORT initialization time. + + @Param None +*//***************************************************************************/ +#define FM_DUMP_REGS 3 + +/**************************************************************************//** + @Function FM_GET_SET_PORT_PARAMS + + @Description Used by FM front-end for the PORT module in order to set and get + parameters in/from master FM module on FM PORT initialization time. + + @Param[in/out] t_FmIcPortInitParams Pointer +*//***************************************************************************/ +#define FM_GET_SET_PORT_PARAMS 4 + +/**************************************************************************//** + @Function FM_FREE_PORT + + @Description Used by FM front-end for the PORT module when a port is freed + to free all FM PORT resources. + + @Param[in] uint8_t Pointer +*//***************************************************************************/ +#define FM_FREE_PORT 5 + +/**************************************************************************//** + @Function FM_RESET_MAC + + @Description Used by front-end for the MAC module to reset the MAC registers + + @Param[in] t_FmIpcMacParams Pointer . +*//***************************************************************************/ +#define FM_RESET_MAC 6 + +/**************************************************************************//** + @Function FM_RESUME_STALLED_PORT + + @Description Used by FM front-end for the PORT module in order to + release a stalled FM Port. + + @Param[in] uint8_t Pointer +*//***************************************************************************/ +#define FM_RESUME_STALLED_PORT 7 + +/**************************************************************************//** + @Function FM_IS_PORT_STALLED + + @Description Used by FM front-end for the PORT module in order to check whether + an FM port is stalled. + + @Param[in/out] t_FmIcPortIsStalled Pointer +*//***************************************************************************/ +#define FM_IS_PORT_STALLED 8 + +/**************************************************************************//** + @Function FM_DUMP_PORT_REGS + + @Description Used by FM front-end for the PORT module in order to dump + all port registers. + + @Param[in] uint8_t Pointer +*//***************************************************************************/ +#define FM_DUMP_PORT_REGS 9 + +/**************************************************************************//** + @Function FM_GET_REV + + @Description Used by FM front-end for the PORT module in order to dump + all port registers. + + @Param[in] uint8_t Pointer +*//***************************************************************************/ +#define FM_GET_REV 10 + +/**************************************************************************//** + @Function FM_REGISTER_INTR + + @Description Used by FM front-end to register an interrupt handler to + be called upon interrupt for guest. + + @Param[out] t_FmIpcRegisterIntr Pointer +*//***************************************************************************/ +#define FM_REGISTER_INTR 11 + +/**************************************************************************//** + @Function FM_GET_CLK_FREQ + + @Description Used by FM Front-end to read the FM clock frequency. + + @Param[out] uint32_t Pointer +*//***************************************************************************/ +#define FM_GET_CLK_FREQ 12 + +/**************************************************************************//** + @Function FM_DMA_STAT + + @Description Used by FM front-end to read the FM DMA status. + + @Param[out] t_FmIpcDmaStatus Pointer +*//***************************************************************************/ +#define FM_DMA_STAT 13 + +/**************************************************************************//** + @Function FM_ALLOC_FMAN_CTRL_EVENT_REG + + @Description Used by FM front-end to allocate event register. + + @Param[out] Event register id Pointer +*//***************************************************************************/ +#define FM_ALLOC_FMAN_CTRL_EVENT_REG 14 + +/**************************************************************************//** + @Function FM_FREE_FMAN_CTRL_EVENT_REG + + @Description Used by FM front-end to free locate event register. + + @Param[in] uint8_t Pointer - Event register id +*//***************************************************************************/ +#define FM_FREE_FMAN_CTRL_EVENT_REG 15 + +/**************************************************************************//** + @Function FM_SET_FMAN_CTRL_EVENTS_ENABLE + + @Description Used by FM front-end to enable events in the FPM + Fman controller event register. + + @Param[in] t_FmIpcFmanEvents Pointer +*//***************************************************************************/ +#define FM_SET_FMAN_CTRL_EVENTS_ENABLE 16 + +/**************************************************************************//** + @Function FM_SET_FMAN_CTRL_EVENTS_ENABLE + + @Description Used by FM front-end to enable events in the FPM + Fman controller event register. + + @Param[in/out] t_FmIpcFmanEvents Pointer +*//***************************************************************************/ +#define FM_GET_FMAN_CTRL_EVENTS_ENABLE 17 + +/**************************************************************************//** + @Function FM_SET_MAC_MAX_FRAME + + @Description Used by FM front-end to set MAC's MTU/RTU's in + back-end. + + @Param[in/out] t_FmIpcMacMaxFrameParams Pointer +*//***************************************************************************/ +#define FM_SET_MAC_MAX_FRAME 18 + +/**************************************************************************//** + @Function FM_GET_PHYS_MURAM_BASE + + @Description Used by FM front-end in order to get MURAM base address + + @Param[in/out] t_FmIpcPhysAddr Pointer +*//***************************************************************************/ +#define FM_GET_PHYS_MURAM_BASE 19 + +/**************************************************************************//** + @Function FM_MASTER_IS_ALIVE + + @Description Used by FM front-end in order to verify Master is up + + @Param[in/out] bool +*//***************************************************************************/ +#define FM_MASTER_IS_ALIVE 20 + +#define FM_ENABLE_RAM_ECC 21 +#define FM_DISABLE_RAM_ECC 22 +#define FM_SET_NUM_OF_FMAN_CTRL 23 +#define FM_SET_SIZE_OF_FIFO 24 +#define FM_SET_NUM_OF_TASKS 25 +#define FM_SET_NUM_OF_OPEN_DMAS 26 + +#ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 +#define FM_10G_TX_ECC_WA 100 +#endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */ + +/***************************************************************************/ +/************************ BACK-END-TO-FRONT-END*****************************/ +/***************************************************************************/ + +/**************************************************************************//** + @Function FM_GUEST_ISR + + @Description Used by FM back-end to report an interrupt to the front-end. + + @Param[out] t_FmIpcIsr Pointer +*//***************************************************************************/ +#define FM_GUEST_ISR 1 + + + +/** @} */ /* end of FM_IPC_grp group */ +/** @} */ /* end of FM_grp group */ + + +#endif /* __FM_IPC_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/fm_muram.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/fm_muram.c @@ -0,0 +1,164 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File FM_muram.c + + @Description FM MURAM ... +*//***************************************************************************/ +#include "error_ext.h" +#include "std_ext.h" +#include "mm_ext.h" +#include "string_ext.h" +#include "sprint_ext.h" +#include "fm_muram_ext.h" +#include "fm_common.h" + + +#define __ERR_MODULE__ MODULE_FM_MURAM + + +typedef struct +{ + t_Handle h_Mem; + uintptr_t baseAddr; + uint32_t size; +} t_FmMuram; + + +void FmMuramClear(t_Handle h_FmMuram) +{ + t_FmMuram *p_FmMuram = ( t_FmMuram *)h_FmMuram; + + SANITY_CHECK_RETURN(h_FmMuram, E_INVALID_HANDLE); + IOMemSet32(UINT_TO_PTR(p_FmMuram->baseAddr), 0, p_FmMuram->size); +} + + +t_Handle FM_MURAM_ConfigAndInit(uintptr_t baseAddress, uint32_t size) +{ + t_Handle h_Mem; + t_FmMuram *p_FmMuram; + + if (!baseAddress) + { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("baseAddress 0 is not supported")); + return NULL; + } + + if (baseAddress%4) + { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("baseAddress not 4 bytes aligned!")); + return NULL; + } + + /* Allocate FM MURAM structure */ + p_FmMuram = (t_FmMuram *) XX_Malloc(sizeof(t_FmMuram)); + if (!p_FmMuram) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FM MURAM driver structure")); + return NULL; + } + memset(p_FmMuram, 0, sizeof(t_FmMuram)); + + + if ((MM_Init(&h_Mem, baseAddress, size) != E_OK) || (!h_Mem)) + { + XX_Free(p_FmMuram); + REPORT_ERROR(MAJOR, E_INVALID_HANDLE, ("FM-MURAM partition!!!")); + return NULL; + } + + /* Initialize FM MURAM parameters which will be kept by the driver */ + p_FmMuram->baseAddr = baseAddress; + p_FmMuram->size = size; + p_FmMuram->h_Mem = h_Mem; + + return p_FmMuram; +} + +t_Error FM_MURAM_Free(t_Handle h_FmMuram) +{ + t_FmMuram *p_FmMuram = ( t_FmMuram *)h_FmMuram; + + if (p_FmMuram->h_Mem) + MM_Free(p_FmMuram->h_Mem); + + XX_Free(h_FmMuram); + + return E_OK; +} + +void * FM_MURAM_AllocMem(t_Handle h_FmMuram, uint32_t size, uint32_t align) +{ + t_FmMuram *p_FmMuram = ( t_FmMuram *)h_FmMuram; + uintptr_t addr; + + SANITY_CHECK_RETURN_VALUE(h_FmMuram, E_INVALID_HANDLE, NULL); + SANITY_CHECK_RETURN_VALUE(p_FmMuram->h_Mem, E_INVALID_HANDLE, NULL); + + addr = (uintptr_t)MM_Get(p_FmMuram->h_Mem, size, align ,"FM MURAM"); + + if (addr == ILLEGAL_BASE) + return NULL; + + return UINT_TO_PTR(addr); +} + +void * FM_MURAM_AllocMemForce(t_Handle h_FmMuram, uint64_t base, uint32_t size) +{ + t_FmMuram *p_FmMuram = ( t_FmMuram *)h_FmMuram; + uintptr_t addr; + + SANITY_CHECK_RETURN_VALUE(h_FmMuram, E_INVALID_HANDLE, NULL); + SANITY_CHECK_RETURN_VALUE(p_FmMuram->h_Mem, E_INVALID_HANDLE, NULL); + + addr = (uintptr_t)MM_GetForce(p_FmMuram->h_Mem, base, size, "FM MURAM"); + + if (addr == ILLEGAL_BASE) + return NULL; + + return UINT_TO_PTR(addr); +} + +t_Error FM_MURAM_FreeMem(t_Handle h_FmMuram, void *ptr) +{ + t_FmMuram *p_FmMuram = ( t_FmMuram *)h_FmMuram; + + SANITY_CHECK_RETURN_ERROR(h_FmMuram, E_INVALID_HANDLE); + SANITY_CHECK_RETURN_ERROR(p_FmMuram->h_Mem, E_INVALID_HANDLE); + + if (MM_Put(p_FmMuram->h_Mem, PTR_TO_UINT(ptr)) == 0) + RETURN_ERROR(MINOR, E_INVALID_HANDLE, ("memory pointer!!!")); + + return E_OK; +} --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/inc/fm_common.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/inc/fm_common.h @@ -0,0 +1,1173 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fm_common.h + + @Description FM internal structures and definitions. +*//***************************************************************************/ +#ifndef __FM_COMMON_H +#define __FM_COMMON_H + +#include "error_ext.h" +#include "std_ext.h" +#include "fm_pcd_ext.h" +#include "fm_port_ext.h" + +#define CLS_PLAN_NUM_PER_GRP 8 + + +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(push,1) +#endif /* defined(__MWERKS__) && ... */ +#define MEM_MAP_START + +/**************************************************************************//** + @Description PCD KG scheme registers +*//***************************************************************************/ +typedef _Packed struct t_FmPcdPlcrInterModuleProfileRegs { + volatile uint32_t fmpl_pemode; /* 0x090 FMPL_PEMODE - FM Policer Profile Entry Mode*/ + volatile uint32_t fmpl_pegnia; /* 0x094 FMPL_PEGNIA - FM Policer Profile Entry GREEN Next Invoked Action*/ + volatile uint32_t fmpl_peynia; /* 0x098 FMPL_PEYNIA - FM Policer Profile Entry YELLOW Next Invoked Action*/ + volatile uint32_t fmpl_pernia; /* 0x09C FMPL_PERNIA - FM Policer Profile Entry RED Next Invoked Action*/ + volatile uint32_t fmpl_pecir; /* 0x0A0 FMPL_PECIR - FM Policer Profile Entry Committed Information Rate*/ + volatile uint32_t fmpl_pecbs; /* 0x0A4 FMPL_PECBS - FM Policer Profile Entry Committed Burst Size*/ + volatile uint32_t fmpl_pepepir_eir; /* 0x0A8 FMPL_PEPIR_EIR - FM Policer Profile Entry Peak/Excess Information Rate*/ + volatile uint32_t fmpl_pepbs_ebs; /* 0x0AC FMPL_PEPBS_EBS - FM Policer Profile Entry Peak/Excess Information Rate*/ + volatile uint32_t fmpl_pelts; /* 0x0B0 FMPL_PELTS - FM Policer Profile Entry Last TimeStamp*/ + volatile uint32_t fmpl_pects; /* 0x0B4 FMPL_PECTS - FM Policer Profile Entry Committed Token Status*/ + volatile uint32_t fmpl_pepts_ets; /* 0x0B8 FMPL_PEPTS_ETS - FM Policer Profile Entry Peak/Excess Token Status*/ + volatile uint32_t fmpl_pegpc; /* 0x0BC FMPL_PEGPC - FM Policer Profile Entry GREEN Packet Counter*/ + volatile uint32_t fmpl_peypc; /* 0x0C0 FMPL_PEYPC - FM Policer Profile Entry YELLOW Packet Counter*/ + volatile uint32_t fmpl_perpc; /* 0x0C4 FMPL_PERPC - FM Policer Profile Entry RED Packet Counter */ + volatile uint32_t fmpl_perypc; /* 0x0C8 FMPL_PERYPC - FM Policer Profile Entry Recolored YELLOW Packet Counter*/ + volatile uint32_t fmpl_perrpc; /* 0x0CC FMPL_PERRPC - FM Policer Profile Entry Recolored RED Packet Counter*/ + volatile uint32_t fmpl_res1[12]; /* 0x0D0-0x0FF Reserved */ +} _PackedType t_FmPcdPlcrInterModuleProfileRegs; + +/**************************************************************************//** + @Description PCD KG scheme registers +*//***************************************************************************/ +typedef _Packed struct t_FmPcdKgInterModuleSchemeRegs { + volatile uint32_t kgse_mode; /**< MODE */ + volatile uint32_t kgse_ekfc; /**< Extract Known Fields Command */ + volatile uint32_t kgse_ekdv; /**< Extract Known Default Value */ + volatile uint32_t kgse_bmch; /**< Bit Mask Command High */ + volatile uint32_t kgse_bmcl; /**< Bit Mask Command Low */ + volatile uint32_t kgse_fqb; /**< Frame Queue Base */ + volatile uint32_t kgse_hc; /**< Hash Command */ + volatile uint32_t kgse_ppc; /**< Policer Profile Command */ + volatile uint32_t kgse_gec[FM_PCD_KG_NUM_OF_GENERIC_REGS]; + /**< Generic Extract Command */ + volatile uint32_t kgse_spc; /**< KeyGen Scheme Entry Statistic Packet Counter */ + volatile uint32_t kgse_dv0; /**< KeyGen Scheme Entry Default Value 0 */ + volatile uint32_t kgse_dv1; /**< KeyGen Scheme Entry Default Value 1 */ + volatile uint32_t kgse_ccbs; /**< KeyGen Scheme Entry Coarse Classification Bit*/ + volatile uint32_t kgse_mv; /**< KeyGen Scheme Entry Match vector */ +} _PackedType t_FmPcdKgInterModuleSchemeRegs; + +typedef _Packed struct t_FmPcdCcCapwapReassmTimeoutParams { + volatile uint32_t portIdAndCapwapReassmTbl; + volatile uint32_t fqidForTimeOutFrames; + volatile uint32_t timeoutRequestTime; +}_PackedType t_FmPcdCcCapwapReassmTimeoutParams; + + + +#define MEM_MAP_END +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(pop) +#endif /* defined(__MWERKS__) && ... */ + + +typedef struct { + uint8_t baseEntry; + uint16_t numOfClsPlanEntries; + uint32_t vectors[FM_PCD_MAX_NUM_OF_CLS_PLANS]; +} t_FmPcdKgInterModuleClsPlanSet; + +/**************************************************************************//** + @Description Structure for binding a port to keygen schemes. +*//***************************************************************************/ +typedef struct t_FmPcdKgInterModuleBindPortToSchemes { + uint8_t hardwarePortId; + uint8_t netEnvId; + bool useClsPlan; /**< TRUE if this port uses the clsPlan mechanism */ + uint8_t numOfSchemes; + uint8_t schemesIds[FM_PCD_KG_NUM_OF_SCHEMES]; +} t_FmPcdKgInterModuleBindPortToSchemes; + +typedef struct { + uint32_t nextCcNodeInfo; + t_List node; +} t_CcNodeInfo; + +typedef struct +{ + t_Handle h_CcNode; + uint16_t index; + t_List node; +}t_CcNodeInformation; +#define CC_NODE_F_OBJECT(ptr) LIST_OBJECT(ptr, t_CcNodeInformation, node) + +typedef struct +{ + t_Handle h_Manip; + t_List node; +}t_ManipInfo; +#define CC_NEXT_NODE_F_OBJECT(ptr) LIST_OBJECT(ptr, t_CcNodeInfo, node) + +typedef struct { + uint32_t type; + uint8_t prOffset; + + uint16_t dataOffset; + uint8_t poolIndex; + + uint8_t poolIdForManip; + uint8_t numOfTasks; + + uint8_t hardwarePortId; + +} t_GetCcParams; + +typedef struct { + uint32_t type; + int psoSize; + uint32_t nia; + +} t_SetCcParams; + +typedef struct { + t_GetCcParams getCcParams; + t_SetCcParams setCcParams; +} t_FmPortGetSetCcParams; + + +static __inline__ bool TRY_LOCK(t_Handle h_Spinlock, volatile bool *p_Flag) +{ + uint32_t intFlags; + if (h_Spinlock) + intFlags = XX_LockIntrSpinlock(h_Spinlock); + else + intFlags = XX_DisableAllIntr(); + if (*p_Flag) + { + if (h_Spinlock) + XX_UnlockIntrSpinlock(h_Spinlock, intFlags); + else + XX_RestoreAllIntr(intFlags); + return FALSE; + } + *p_Flag = TRUE; + if (h_Spinlock) + XX_UnlockIntrSpinlock(h_Spinlock, intFlags); + else + XX_RestoreAllIntr(intFlags); + return TRUE; +} + +#define RELEASE_LOCK(_flag) _flag = FALSE; + +/**************************************************************************//** + @Collection Defines used for manipulation CC and BMI + @{ +*//***************************************************************************/ +#define INTERNAL_CONTEXT_OFFSET 0x80000000 +#define OFFSET_OF_PR 0x40000000 +#define BUFFER_POOL_ID_FOR_MANIP 0x20000000 +#define NUM_OF_TASKS 0x10000000 +#define OFFSET_OF_DATA 0x08000000 +#define HW_PORT_ID 0x04000000 + + +#define UPDATE_NIA_PNEN 0x80000000 +#define UPDATE_PSO 0x40000000 +#define UPDATE_NIA_PNDN 0x20000000 +#define UPDATE_FMFP_PRC_WITH_ONE_RISC_ONLY 0x10000000 +/* @} */ + +/**************************************************************************//** + @Collection Defines used for manipulation CC and CC + @{ +*//***************************************************************************/ +#define UPDATE_NIA_ENQ_WITHOUT_DMA 0x80000000 +#define UPDATE_CC_WITH_TREE 0x40000000 +#define UPDATE_CC_WITH_DELETE_TREE 0x20000000 +/* @} */ + +/**************************************************************************//** + @Collection Defines used for enabling/disabling FM interrupts + @{ +*//***************************************************************************/ +typedef uint32_t t_FmBlockErrIntrEnable; + +#define ERR_INTR_EN_DMA 0x00010000 +#define ERR_INTR_EN_FPM 0x80000000 +#define ERR_INTR_EN_BMI 0x00800000 +#define ERR_INTR_EN_QMI 0x00400000 +#define ERR_INTR_EN_PRS 0x00200000 +#define ERR_INTR_EN_KG 0x00100000 +#define ERR_INTR_EN_PLCR 0x00080000 +#define ERR_INTR_EN_MURAM 0x00040000 +#define ERR_INTR_EN_IRAM 0x00020000 +#define ERR_INTR_EN_10G_MAC0 0x00008000 +#define ERR_INTR_EN_1G_MAC0 0x00004000 +#define ERR_INTR_EN_1G_MAC1 0x00002000 +#define ERR_INTR_EN_1G_MAC2 0x00001000 +#define ERR_INTR_EN_1G_MAC3 0x00000800 +#define ERR_INTR_EN_1G_MAC4 0x00000400 +#define ERR_INTR_EN_MACSEC_MAC0 0x00000200 + + +typedef uint32_t t_FmBlockIntrEnable; + +#define INTR_EN_BMI 0x80000000 +#define INTR_EN_QMI 0x40000000 +#define INTR_EN_PRS 0x20000000 +#define INTR_EN_KG 0x10000000 +#define INTR_EN_PLCR 0x08000000 +#define INTR_EN_1G_MAC0_TMR 0x00080000 +#define INTR_EN_1G_MAC1_TMR 0x00040000 +#define INTR_EN_1G_MAC2_TMR 0x00020000 +#define INTR_EN_1G_MAC3_TMR 0x00010000 +#define INTR_EN_1G_MAC4_TMR 0x00000040 +#define INTR_EN_REV0 0x00008000 +#define INTR_EN_REV1 0x00004000 +#define INTR_EN_REV2 0x00002000 +#define INTR_EN_REV3 0x00001000 +#define INTR_EN_BRK 0x00000080 +#define INTR_EN_TMR 0x01000000 +#define INTR_EN_MACSEC_MAC0 0x00000001 +/* @} */ + +#define FM_MAX_NUM_OF_PORTS (FM_MAX_NUM_OF_OH_PORTS + \ + FM_MAX_NUM_OF_1G_RX_PORTS + \ + FM_MAX_NUM_OF_10G_RX_PORTS + \ + FM_MAX_NUM_OF_1G_TX_PORTS + \ + FM_MAX_NUM_OF_10G_TX_PORTS) + +#define MODULE_NAME_SIZE 30 +#define DUMMY_PORT_ID 0 + +#define FM_LIODN_OFFSET_MASK 0x3FF + +/**************************************************************************//** + @Description NIA Description +*//***************************************************************************/ +#define NIA_ORDER_RESTOR 0x00800000 +#define NIA_ENG_FM_CTL 0x00000000 +#define NIA_ENG_PRS 0x00440000 +#define NIA_ENG_KG 0x00480000 +#define NIA_ENG_PLCR 0x004C0000 +#define NIA_ENG_BMI 0x00500000 +#define NIA_ENG_QMI_ENQ 0x00540000 +#define NIA_ENG_QMI_DEQ 0x00580000 +#define NIA_ENG_MASK 0x007C0000 + +#define NIA_FM_CTL_AC_CC 0x00000006 +#define NIA_FM_CTL_AC_HC 0x0000000C +#define NIA_FM_CTL_AC_IND_MODE_TX 0x00000008 +#define NIA_FM_CTL_AC_IND_MODE_RX 0x0000000A +#define NIA_FM_CTL_AC_FRAG 0x0000000e +#define NIA_FM_CTL_AC_PRE_FETCH 0x00000010 +#define NIA_FM_CTL_AC_POST_FETCH_PCD 0x00000012 +#define NIA_FM_CTL_AC_POST_FETCH_PCD_UDP_LEN 0x00000018 +#define NIA_FM_CTL_AC_POST_FETCH_NO_PCD 0x00000012 +#define NIA_FM_CTL_AC_FRAG_CHECK 0x00000014 +#define NIA_FM_CTL_AC_MASK 0x0000001f + +#define NIA_BMI_AC_ENQ_FRAME 0x00000002 +#define NIA_BMI_AC_TX_RELEASE 0x000002C0 +#define NIA_BMI_AC_RELEASE 0x000000C0 +#define NIA_BMI_AC_DISCARD 0x000000C1 +#define NIA_BMI_AC_TX 0x00000274 +#define NIA_BMI_AC_FETCH 0x00000208 +#define NIA_BMI_AC_MASK 0x000003FF + +#define NIA_KG_DIRECT 0x00000100 +#define NIA_KG_CC_EN 0x00000200 +#define NIA_PLCR_ABSOLUTE 0x00008000 + +#define NIA_BMI_AC_ENQ_FRAME_WITHOUT_DMA 0x00000202 + +/**************************************************************************//** + @Description Port Id defines +*//***************************************************************************/ +#define BASE_OH_PORTID 1 +#define BASE_1G_RX_PORTID 8 +#define BASE_10G_RX_PORTID 0x10 +#define BASE_1G_TX_PORTID 0x28 +#define BASE_10G_TX_PORTID 0x30 + +#define FM_PCD_PORT_OH_BASE_INDX 0 +#define FM_PCD_PORT_1G_RX_BASE_INDX (FM_PCD_PORT_OH_BASE_INDX+FM_MAX_NUM_OF_OH_PORTS) +#define FM_PCD_PORT_10G_RX_BASE_INDX (FM_PCD_PORT_1G_RX_BASE_INDX+FM_MAX_NUM_OF_1G_RX_PORTS) +#define FM_PCD_PORT_1G_TX_BASE_INDX (FM_PCD_PORT_10G_RX_BASE_INDX+FM_MAX_NUM_OF_10G_RX_PORTS) +#define FM_PCD_PORT_10G_TX_BASE_INDX (FM_PCD_PORT_1G_TX_BASE_INDX+FM_MAX_NUM_OF_1G_TX_PORTS) + +#if (FM_MAX_NUM_OF_OH_PORTS > 0) +#define CHECK_PORT_ID_OH_PORTS(_relativePortId) \ + if ((_relativePortId) >= FM_MAX_NUM_OF_OH_PORTS) \ + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal OH_PORT port id")) +#else +#define CHECK_PORT_ID_OH_PORTS(_relativePortId) \ + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal OH_PORT port id")) +#endif +#if (FM_MAX_NUM_OF_1G_RX_PORTS > 0) +#define CHECK_PORT_ID_1G_RX_PORTS(_relativePortId) \ + if ((_relativePortId) >= FM_MAX_NUM_OF_1G_RX_PORTS) \ + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal 1G_RX_PORT port id")) +#else +#define CHECK_PORT_ID_1G_RX_PORTS(_relativePortId) \ + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal 1G_RX_PORT port id")) +#endif +#if (FM_MAX_NUM_OF_10G_RX_PORTS > 0) +#define CHECK_PORT_ID_10G_RX_PORTS(_relativePortId) \ + if ((_relativePortId) >= FM_MAX_NUM_OF_10G_RX_PORTS) \ + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal 10G_RX_PORT port id")) +#else +#define CHECK_PORT_ID_10G_RX_PORTS(_relativePortId) \ + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal 10G_RX_PORT port id")) +#endif +#if (FM_MAX_NUM_OF_1G_TX_PORTS > 0) +#define CHECK_PORT_ID_1G_TX_PORTS(_relativePortId) \ + if ((_relativePortId) >= FM_MAX_NUM_OF_1G_TX_PORTS) \ + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal 1G_TX_PORT port id")) +#else +#define CHECK_PORT_ID_1G_TX_PORTS(_relativePortId) \ + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal 1G_TX_PORT port id")) +#endif +#if (FM_MAX_NUM_OF_10G_TX_PORTS > 0) +#define CHECK_PORT_ID_10G_TX_PORTS(_relativePortId) \ + if ((_relativePortId) >= FM_MAX_NUM_OF_10G_TX_PORTS) \ + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal 10G_TX_PORT port id")) +#else +#define CHECK_PORT_ID_10G_TX_PORTS(_relativePortId) \ + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal 10G_TX_PORT port id")) +#endif + + +#define SW_PORT_ID_TO_HW_PORT_ID(_port, _type, _relativePortId) \ +switch(_type) { \ + case(e_FM_PORT_TYPE_OH_OFFLINE_PARSING): \ + case(e_FM_PORT_TYPE_OH_HOST_COMMAND): \ + CHECK_PORT_ID_OH_PORTS(_relativePortId); \ + _port = (uint8_t)(BASE_OH_PORTID + (_relativePortId)); \ + break; \ + case(e_FM_PORT_TYPE_RX): \ + CHECK_PORT_ID_1G_RX_PORTS(_relativePortId); \ + _port = (uint8_t)(BASE_1G_RX_PORTID + (_relativePortId)); \ + break; \ + case(e_FM_PORT_TYPE_RX_10G): \ + CHECK_PORT_ID_10G_RX_PORTS(_relativePortId); \ + _port = (uint8_t)(BASE_10G_RX_PORTID + (_relativePortId)); \ + break; \ + case(e_FM_PORT_TYPE_TX): \ + CHECK_PORT_ID_1G_TX_PORTS(_relativePortId); \ + _port = (uint8_t)(BASE_1G_TX_PORTID + (_relativePortId)); \ + break; \ + case(e_FM_PORT_TYPE_TX_10G): \ + CHECK_PORT_ID_10G_TX_PORTS(_relativePortId); \ + _port = (uint8_t)(BASE_10G_TX_PORTID + (_relativePortId)); \ + break; \ + default: \ + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal port type")); \ + _port = 0; \ + break; \ +} + +#define HW_PORT_ID_TO_SW_PORT_ID(_relativePortId, hardwarePortId) \ +{ if (((hardwarePortId) >= BASE_OH_PORTID) && \ + ((hardwarePortId) < BASE_OH_PORTID+FM_MAX_NUM_OF_OH_PORTS)) \ + _relativePortId = (uint8_t)((hardwarePortId)-BASE_OH_PORTID); \ + else if (((hardwarePortId) >= BASE_10G_TX_PORTID) && \ + ((hardwarePortId) < BASE_10G_TX_PORTID+FM_MAX_NUM_OF_10G_TX_PORTS)) \ + _relativePortId = (uint8_t)((hardwarePortId)-BASE_10G_TX_PORTID); \ + else if (((hardwarePortId) >= BASE_1G_TX_PORTID) && \ + ((hardwarePortId) < BASE_1G_TX_PORTID+FM_MAX_NUM_OF_1G_TX_PORTS)) \ + _relativePortId = (uint8_t)((hardwarePortId)-BASE_1G_TX_PORTID); \ + else if (((hardwarePortId) >= BASE_10G_RX_PORTID) && \ + ((hardwarePortId) < BASE_10G_RX_PORTID+FM_MAX_NUM_OF_10G_RX_PORTS)) \ + _relativePortId = (uint8_t)((hardwarePortId)-BASE_10G_RX_PORTID); \ + else if (((hardwarePortId) >= BASE_1G_RX_PORTID) && \ + ((hardwarePortId) < BASE_1G_RX_PORTID+FM_MAX_NUM_OF_1G_RX_PORTS)) \ + _relativePortId = (uint8_t)((hardwarePortId)-BASE_1G_RX_PORTID); \ + else { \ + _relativePortId = (uint8_t)DUMMY_PORT_ID; \ + ASSERT_COND(TRUE); \ + } \ +} + +#define HW_PORT_ID_TO_SW_PORT_INDX(swPortIndex, hardwarePortId) \ +do { \ + if (((hardwarePortId) >= BASE_OH_PORTID) && ((hardwarePortId) < BASE_OH_PORTID+FM_MAX_NUM_OF_OH_PORTS)) \ + swPortIndex = (uint8_t)((hardwarePortId)-BASE_OH_PORTID+FM_PCD_PORT_OH_BASE_INDX); \ + else if (((hardwarePortId) >= BASE_1G_RX_PORTID) && \ + ((hardwarePortId) < BASE_1G_RX_PORTID+FM_MAX_NUM_OF_1G_RX_PORTS)) \ + swPortIndex = (uint8_t)((hardwarePortId)-BASE_1G_RX_PORTID+FM_PCD_PORT_1G_RX_BASE_INDX); \ + else if (((hardwarePortId) >= BASE_10G_RX_PORTID) && \ + ((hardwarePortId) < BASE_10G_RX_PORTID+FM_MAX_NUM_OF_10G_RX_PORTS)) \ + swPortIndex = (uint8_t)((hardwarePortId)-BASE_10G_RX_PORTID+FM_PCD_PORT_10G_RX_BASE_INDX); \ + else if (((hardwarePortId) >= BASE_1G_TX_PORTID) && \ + ((hardwarePortId) < BASE_1G_TX_PORTID+FM_MAX_NUM_OF_1G_TX_PORTS)) \ + swPortIndex = (uint8_t)((hardwarePortId)-BASE_1G_TX_PORTID+FM_PCD_PORT_1G_TX_BASE_INDX); \ + else if (((hardwarePortId) >= BASE_10G_TX_PORTID) && \ + ((hardwarePortId) < BASE_10G_TX_PORTID+FM_MAX_NUM_OF_10G_TX_PORTS)) \ + swPortIndex = (uint8_t)((hardwarePortId)-BASE_10G_TX_PORTID+FM_PCD_PORT_10G_TX_BASE_INDX); \ + else ASSERT_COND(FALSE); \ +} while (0) + +#define SW_PORT_INDX_TO_HW_PORT_ID(hardwarePortId, swPortIndex) \ +do { \ + if (((swPortIndex) >= FM_PCD_PORT_OH_BASE_INDX) && ((swPortIndex) < FM_PCD_PORT_1G_RX_BASE_INDX)) \ + hardwarePortId = (uint8_t)((swPortIndex)-FM_PCD_PORT_OH_BASE_INDX+BASE_OH_PORTID); \ + else if (((swPortIndex) >= FM_PCD_PORT_1G_RX_BASE_INDX) && ((swPortIndex) < FM_PCD_PORT_10G_RX_BASE_INDX)) \ + hardwarePortId = (uint8_t)((swPortIndex)-FM_PCD_PORT_1G_RX_BASE_INDX+BASE_1G_RX_PORTID); \ + else if (((swPortIndex) >= FM_PCD_PORT_10G_RX_BASE_INDX) && ((swPortIndex) < FM_MAX_NUM_OF_PORTS)) \ + hardwarePortId = (uint8_t)((swPortIndex)-FM_PCD_PORT_10G_RX_BASE_INDX+BASE_10G_RX_PORTID); \ + else if (((swPortIndex) >= FM_PCD_PORT_1G_TX_BASE_INDX) && ((swPortIndex) < FM_PCD_PORT_10G_TX_BASE_INDX)) \ + hardwarePortId = (uint8_t)((swPortIndex)-FM_PCD_PORT_1G_TX_BASE_INDX+BASE_1G_TX_PORTID); \ + else if (((swPortIndex) >= FM_PCD_PORT_10G_TX_BASE_INDX) && ((swPortIndex) < FM_MAX_NUM_OF_PORTS)) \ + hardwarePortId = (uint8_t)((swPortIndex)-FM_PCD_PORT_10G_TX_BASE_INDX+BASE_10G_TX_PORTID); \ + else ASSERT_COND(FALSE); \ +} while (0) + +#define BMI_FIFO_UNITS 0x100 + +typedef struct { + void (*f_Isr) (t_Handle h_Arg); + t_Handle h_SrcHandle; + uint8_t guestId; +} t_FmIntrSrc; + +#define ILLEGAL_HDR_NUM 0xFF +#define NO_HDR_NUM FM_PCD_PRS_NUM_OF_HDRS + +#define IS_PRIVATE_HEADER(hdr) (((hdr) == HEADER_TYPE_USER_DEFINED_SHIM1) || \ + ((hdr) == HEADER_TYPE_USER_DEFINED_SHIM2)) +#define IS_SPECIAL_HEADER(hdr) ((hdr) == HEADER_TYPE_MACSEC) + +#define GET_PRS_HDR_NUM(num, hdr) \ +switch(hdr) \ +{ case(HEADER_TYPE_ETH): num = 0; break; \ + case(HEADER_TYPE_LLC_SNAP): num = 1; break; \ + case(HEADER_TYPE_VLAN): num = 2; break; \ + case(HEADER_TYPE_PPPoE): num = 3; break; \ + case(HEADER_TYPE_MPLS): num = 4; break; \ + case(HEADER_TYPE_IPv4): num = 5; break; \ + case(HEADER_TYPE_IPv6): num = 6; break; \ + case(HEADER_TYPE_GRE): num = 7; break; \ + case(HEADER_TYPE_MINENCAP): num = 8; break; \ + case(HEADER_TYPE_USER_DEFINED_L3): num = 9; break; \ + case(HEADER_TYPE_TCP): num = 10; break; \ + case(HEADER_TYPE_UDP): num = 11; break; \ + case(HEADER_TYPE_IPSEC_AH): \ + case(HEADER_TYPE_IPSEC_ESP): num = 12; break; \ + case(HEADER_TYPE_SCTP): num = 13; break; \ + case(HEADER_TYPE_DCCP): num = 14; break; \ + case(HEADER_TYPE_USER_DEFINED_L4): num = 15; break; \ + case(HEADER_TYPE_USER_DEFINED_SHIM1): \ + case(HEADER_TYPE_USER_DEFINED_SHIM2): \ + case(HEADER_TYPE_MACSEC): \ + num = NO_HDR_NUM; break; \ + default: \ + REPORT_ERROR(MAJOR, E_NOT_SUPPORTED, ("Unsupported header for parser"));\ + num = ILLEGAL_HDR_NUM; break; \ +} + +/***********************************************************************/ +/* Policer defines */ +/***********************************************************************/ +#define FM_PCD_PLCR_PAR_GO 0x80000000 +#define FM_PCD_PLCR_PAR_PWSEL_MASK 0x0000FFFF +#define FM_PCD_PLCR_PAR_R 0x40000000 + +/* shifts */ +#define FM_PCD_PLCR_PAR_PNUM_SHIFT 16 + + +/***********************************************************************/ +/* Keygen defines */ +/***********************************************************************/ +/* maskes */ +#define KG_SCH_PP_SHIFT_HIGH 0x80000000 +#define KG_SCH_PP_NO_GEN 0x10000000 +#define KG_SCH_PP_SHIFT_LOW 0x0000F000 +#define KG_SCH_MODE_NIA_PLCR 0x40000000 +#define KG_SCH_GEN_EXTRACT_TYPE 0x00008000 +#define KG_SCH_BITMASK_MASK 0x000000FF +#define KG_SCH_GEN_VALID 0x80000000 +#define KG_SCH_GEN_MASK 0x00FF0000 +#define FM_PCD_KG_KGAR_ERR 0x20000000 +#define FM_PCD_KG_KGAR_SEL_CLS_PLAN_ENTRY 0x01000000 +#define FM_PCD_KG_KGAR_SEL_PORT_ENTRY 0x02000000 +#define FM_PCD_KG_KGAR_SEL_PORT_WSEL_SP 0x00008000 +#define FM_PCD_KG_KGAR_SEL_PORT_WSEL_CPP 0x00004000 +#define FM_PCD_KG_KGAR_WSEL_MASK 0x0000FF00 +#define KG_SCH_HASH_CONFIG_NO_FQID 0x80000000 +#define KG_SCH_HASH_CONFIG_SYM 0x40000000 + +#define FM_PCD_KG_KGAR_GO 0x80000000 +#define FM_PCD_KG_KGAR_READ 0x40000000 +#define FM_PCD_KG_KGAR_WRITE 0x00000000 +#define FM_PCD_KG_KGAR_SEL_SCHEME_ENTRY 0x00000000 +#define FM_PCD_KG_KGAR_SCHEME_WSEL_UPDATE_CNT 0x00008000 + + +typedef uint32_t t_KnownFieldsMasks; + +#define KG_SCH_KN_PORT_ID 0x80000000 +#define KG_SCH_KN_MACDST 0x40000000 +#define KG_SCH_KN_MACSRC 0x20000000 +#define KG_SCH_KN_TCI1 0x10000000 +#define KG_SCH_KN_TCI2 0x08000000 +#define KG_SCH_KN_ETYPE 0x04000000 +#define KG_SCH_KN_PPPSID 0x02000000 +#define KG_SCH_KN_PPPID 0x01000000 +#define KG_SCH_KN_MPLS1 0x00800000 +#define KG_SCH_KN_MPLS2 0x00400000 +#define KG_SCH_KN_MPLS_LAST 0x00200000 +#define KG_SCH_KN_IPSRC1 0x00100000 +#define KG_SCH_KN_IPDST1 0x00080000 +#define KG_SCH_KN_PTYPE1 0x00040000 +#define KG_SCH_KN_IPTOS_TC1 0x00020000 +#define KG_SCH_KN_IPV6FL1 0x00010000 +#define KG_SCH_KN_IPSRC2 0x00008000 +#define KG_SCH_KN_IPDST2 0x00004000 +#define KG_SCH_KN_PTYPE2 0x00002000 +#define KG_SCH_KN_IPTOS_TC2 0x00001000 +#define KG_SCH_KN_IPV6FL2 0x00000800 +#define KG_SCH_KN_GREPTYPE 0x00000400 +#define KG_SCH_KN_IPSEC_SPI 0x00000200 +#define KG_SCH_KN_IPSEC_NH 0x00000100 +#define KG_SCH_KN_L4PSRC 0x00000004 +#define KG_SCH_KN_L4PDST 0x00000002 +#define KG_SCH_KN_TFLG 0x00000001 + +typedef uint8_t t_GenericCodes; + +#define KG_SCH_GEN_SHIM1 0x70 +#define KG_SCH_GEN_DEFAULT 0x10 +#define KG_SCH_GEN_PARSE_RESULT_N_FQID 0x20 +#define KG_SCH_GEN_START_OF_FRM 0x40 +#define KG_SCH_GEN_SHIM2 0x71 +#define KG_SCH_GEN_IP_PID_NO_V 0x72 +#define KG_SCH_GEN_ETH 0x03 +#define KG_SCH_GEN_ETH_NO_V 0x73 +#define KG_SCH_GEN_SNAP 0x04 +#define KG_SCH_GEN_SNAP_NO_V 0x74 +#define KG_SCH_GEN_VLAN1 0x05 +#define KG_SCH_GEN_VLAN1_NO_V 0x75 +#define KG_SCH_GEN_VLAN2 0x06 +#define KG_SCH_GEN_VLAN2_NO_V 0x76 +#define KG_SCH_GEN_ETH_TYPE 0x07 +#define KG_SCH_GEN_ETH_TYPE_NO_V 0x77 +#define KG_SCH_GEN_PPP 0x08 +#define KG_SCH_GEN_PPP_NO_V 0x78 +#define KG_SCH_GEN_MPLS1 0x09 +#define KG_SCH_GEN_MPLS2 0x19 +#define KG_SCH_GEN_MPLS3 0x29 +#define KG_SCH_GEN_MPLS1_NO_V 0x79 +#define KG_SCH_GEN_MPLS_LAST 0x0a +#define KG_SCH_GEN_MPLS_LAST_NO_V 0x7a +#define KG_SCH_GEN_IPV4 0x0b +#define KG_SCH_GEN_IPV6 0x1b +#define KG_SCH_GEN_L3_NO_V 0x7b +#define KG_SCH_GEN_IPV4_TUNNELED 0x0c +#define KG_SCH_GEN_IPV6_TUNNELED 0x1c +#define KG_SCH_GEN_MIN_ENCAP 0x2c +#define KG_SCH_GEN_IP2_NO_V 0x7c +#define KG_SCH_GEN_GRE 0x0d +#define KG_SCH_GEN_GRE_NO_V 0x7d +#define KG_SCH_GEN_TCP 0x0e +#define KG_SCH_GEN_UDP 0x1e +#define KG_SCH_GEN_IPSEC_AH 0x2e +#define KG_SCH_GEN_SCTP 0x3e +#define KG_SCH_GEN_DCCP 0x4e +#define KG_SCH_GEN_IPSEC_ESP 0x6e +#define KG_SCH_GEN_L4_NO_V 0x7e +#define KG_SCH_GEN_NEXTHDR 0x7f + +/* shifts */ +#define KG_SCH_PP_SHIFT_HIGH_SHIFT 27 +#define KG_SCH_PP_SHIFT_LOW_SHIFT 12 +#define KG_SCH_PP_MASK_SHIFT 16 +#define KG_SCH_MODE_CCOBASE_SHIFT 24 +#define KG_SCH_DEF_MAC_ADDR_SHIFT 30 +#define KG_SCH_DEF_TCI_SHIFT 28 +#define KG_SCH_DEF_ENET_TYPE_SHIFT 26 +#define KG_SCH_DEF_PPP_SESSION_ID_SHIFT 24 +#define KG_SCH_DEF_PPP_PROTOCOL_ID_SHIFT 22 +#define KG_SCH_DEF_MPLS_LABEL_SHIFT 20 +#define KG_SCH_DEF_IP_ADDR_SHIFT 18 +#define KG_SCH_DEF_PROTOCOL_TYPE_SHIFT 16 +#define KG_SCH_DEF_IP_TOS_TC_SHIFT 14 +#define KG_SCH_DEF_IPV6_FLOW_LABEL_SHIFT 12 +#define KG_SCH_DEF_IPSEC_SPI_SHIFT 10 +#define KG_SCH_DEF_L4_PORT_SHIFT 8 +#define KG_SCH_DEF_TCP_FLAG_SHIFT 6 +#define KG_SCH_HASH_CONFIG_SHIFT_SHIFT 24 +#define KG_SCH_GEN_MASK_SHIFT 16 +#define KG_SCH_GEN_HT_SHIFT 8 +#define KG_SCH_GEN_SIZE_SHIFT 24 +#define KG_SCH_GEN_DEF_SHIFT 29 +#define FM_PCD_KG_KGAR_NUM_SHIFT 16 + + +/* others */ +#define NUM_OF_SW_DEFAULTS 3 +#define MAX_PP_SHIFT 15 +#define MAX_KG_SCH_SIZE 16 +#define MASK_FOR_GENERIC_BASE_ID 0x20 +#define MAX_HASH_SHIFT 40 +#define MAX_KG_SCH_FQID_BIT_OFFSET 31 +#define MAX_KG_SCH_PP_BIT_OFFSET 15 +#define MAX_DIST_FQID_SHIFT 23 + +#define GET_MASK_SEL_SHIFT(shift,i) \ +switch(i) { \ + case(0):shift = 26;break; \ + case(1):shift = 20;break; \ + case(2):shift = 10;break; \ + case(3):shift = 4;break; \ + default: \ + RETURN_ERROR(MAJOR, E_INVALID_VALUE, NO_MSG);\ +} + +#define GET_MASK_OFFSET_SHIFT(shift,i) \ +switch(i) { \ + case(0):shift = 16;break; \ + case(1):shift = 0;break; \ + case(2):shift = 28;break; \ + case(3):shift = 24;break; \ + default: \ + RETURN_ERROR(MAJOR, E_INVALID_VALUE, NO_MSG);\ +} + +#define GET_MASK_SHIFT(shift,i) \ +switch(i) { \ + case(0):shift = 24;break; \ + case(1):shift = 16;break; \ + case(2):shift = 8;break; \ + case(3):shift = 0;break; \ + default: \ + RETURN_ERROR(MAJOR, E_INVALID_VALUE, NO_MSG);\ +} + +#define FM_PCD_MAX_NUM_OF_OPTIONS(clsPlanEntries) ((clsPlanEntries==256)? 8:((clsPlanEntries==128)? 7: ((clsPlanEntries==64)? 6: ((clsPlanEntries==32)? 5:0)))) + +typedef struct { + uint16_t num; + uint8_t hardwarePortId; + uint16_t plcrProfilesBase; +} t_FmPortPcdInterModulePlcrParams; + +/**************************************************************************//** + @Description A structure for initializing a keygen classification plan group +*//***************************************************************************/ +typedef struct t_FmPcdKgInterModuleClsPlanGrpParams { + uint8_t netEnvId; /* IN */ + bool grpExists; /* OUT (unused in FmPcdKgBuildClsPlanGrp)*/ + uint8_t clsPlanGrpId; /* OUT */ + bool emptyClsPlanGrp; /* OUT */ + uint8_t numOfOptions; /* OUT in FmPcdGetSetClsPlanGrpParams IN in FmPcdKgBuildClsPlanGrp*/ + protocolOpt_t options[FM_PCD_MAX_NUM_OF_OPTIONS(FM_PCD_MAX_NUM_OF_CLS_PLANS)]; + /* OUT in FmPcdGetSetClsPlanGrpParams IN in FmPcdKgBuildClsPlanGrp*/ + uint32_t optVectors[FM_PCD_MAX_NUM_OF_OPTIONS(FM_PCD_MAX_NUM_OF_CLS_PLANS)]; + /* OUT in FmPcdGetSetClsPlanGrpParams IN in FmPcdKgBuildClsPlanGrp*/ +} t_FmPcdKgInterModuleClsPlanGrpParams; + +typedef struct t_FmInterModulePortRxPoolsParams +{ + uint8_t numOfPools; + uint16_t secondLargestBufSize; + uint16_t largestBufSize; +} t_FmInterModulePortRxPoolsParams; + + +typedef t_Error (t_FmPortGetSetCcParamsCallback) (t_Handle h_FmPort, + t_FmPortGetSetCcParams *p_FmPortGetSetCcParams); + + +t_Handle FmPcdGetHcHandle(t_Handle h_FmPcd); +uint32_t FmPcdGetSwPrsOffset(t_Handle h_FmPcd, e_NetHeaderType hdr, uint8_t indexPerHdr); +uint32_t FmPcdGetLcv(t_Handle h_FmPcd, uint32_t netEnvId, uint8_t hdrNum); +uint32_t FmPcdGetMacsecLcv(t_Handle h_FmPcd, uint32_t netEnvId); +void FmPcdIncNetEnvOwners(t_Handle h_FmPcd, uint8_t netEnvId); +void FmPcdDecNetEnvOwners(t_Handle h_FmPcd, uint8_t netEnvId); +void FmPcdPortRegister(t_Handle h_FmPcd, t_Handle h_FmPort, uint8_t hardwarePortId); +uint32_t FmPcdLock(t_Handle h_FmPcd); +void FmPcdUnlock(t_Handle h_FmPcd, uint32_t intFlags); +bool FmPcdNetEnvIsHdrExist(t_Handle h_FmPcd, uint8_t netEnvId, e_NetHeaderType hdr); +bool FmPcdIsIpFrag(t_Handle h_FmPcd, uint8_t netEnvId); + +t_Error FmPcdCcReleaseModifiedDataStructure(t_Handle h_FmPcd, t_List *h_FmPcdOldPointersLst, t_List *h_FmPcdNewPointersLst, uint16_t numOfGoodChanges, t_Handle *h_Params); +uint32_t FmPcdCcGetNodeAddrOffset(t_Handle h_FmPcd, t_Handle h_Pointer); +t_Error FmPcdCcRemoveKey(t_Handle h_FmPcd, t_Handle h_FmPcdCcNode, uint8_t keyIndex, t_List *h_OldLst, t_List *h_NewLst, t_Handle *h_AdditionalParams); +t_Error FmPcdCcAddKey(t_Handle h_FmPcd, t_Handle h_CcNode, uint8_t keyIndex, uint8_t keySize, t_FmPcdCcKeyParams *p_FmPCdCcKeyParams, t_List *h_OldLst, t_List *h_NewLst, t_Handle *h_Params); +t_Error FmPcdCcModifyKey(t_Handle h_FmPcd, t_Handle h_CcNode, uint8_t keyIndex, uint8_t keySize, uint8_t *p_Key, uint8_t *p_Mask, t_List *h_OldLst, t_List *h_NewLst, t_Handle *h_AdditionalParams); +t_Error FmPcdCcModifyKeyAndNextEngine(t_Handle h_FmPcd, t_Handle h_FmPcdCcNode, uint8_t keyIndex, uint8_t keySize, t_FmPcdCcKeyParams *p_FmPcdCcKeyParams, t_List *h_OldLst, t_List *h_NewLst, t_Handle *h_AdditionalParams); +t_Error FmPcdCcModifyMissNextEngineParamNode(t_Handle h_FmPcd,t_Handle h_FmPcdCcNode, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams,t_List *h_OldPointer, t_List *h_NewPointer,t_Handle *h_AdditionalParams); +t_Error FmPcdCcModifyNextEngineParamTree(t_Handle h_FmPcd, t_Handle h_FmPcdCcTree, uint8_t grpId, uint8_t index, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams, t_List *h_OldLst, t_List *h_NewLst, t_Handle *h_AdditionalParams); +t_Error FmPcdCcModiyNextEngineParamNode(t_Handle h_FmPcd,t_Handle h_FmPcdCcNode, uint8_t keyIndex,t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams,t_List *h_OldPointer, t_List *h_NewPointer,t_Handle *h_AdditionalParams); +uint32_t FmPcdCcGetNodeAddrOffsetFromNodeInfo(t_Handle h_FmPcd, t_Handle h_Pointer); +t_Error FmPcdCcTreeTryLock(t_Handle h_FmPcdCcTree); +t_Error FmPcdCcNodeTreeTryLock(t_Handle h_FmPcd,t_Handle h_FmPcdCcNode, t_List *p_List); +void FmPcdCcTreeReleaseLock(t_Handle h_FmPcdCcTree); +void FmPcdCcNodeTreeReleaseLock(t_List *p_List); +t_Handle FmPcdCcTreeGetSavedManipParams(t_Handle h_FmTree, uint8_t manipIndx); +void FmPcdCcTreeSetSavedManipParams(t_Handle h_FmTree, t_Handle h_SavedManipParams, uint8_t manipIndx); + +bool FmPcdKgIsSchemeValidSw(t_Handle h_FmPcd, uint8_t schemeId); +uint8_t FmPcdKgGetClsPlanGrpBase(t_Handle h_FmPcd, uint8_t clsPlanGrp); +uint16_t FmPcdKgGetClsPlanGrpSize(t_Handle h_FmPcd, uint8_t clsPlanGrp); + +t_Error FmPcdKgBuildScheme(t_Handle h_FmPcd, t_FmPcdKgSchemeParams *p_Scheme, t_FmPcdKgInterModuleSchemeRegs *p_SchemeRegs); +t_Error FmPcdKgBuildClsPlanGrp(t_Handle h_FmPcd, t_FmPcdKgInterModuleClsPlanGrpParams *p_Grp, t_FmPcdKgInterModuleClsPlanSet *p_ClsPlanSet); +uint8_t FmPcdKgGetNumOfPartitionSchemes(t_Handle h_FmPcd); +uint8_t FmPcdKgGetPhysicalSchemeId(t_Handle h_FmPcd, uint8_t schemeId); +uint8_t FmPcdKgGetRelativeSchemeId(t_Handle h_FmPcd, uint8_t schemeId); +void FmPcdKgDestroyClsPlanGrp(t_Handle h_FmPcd, uint8_t grpId); +void FmPcdKgValidateSchemeSw(t_Handle h_FmPcd, uint8_t schemeId); +void FmPcdKgInvalidateSchemeSw(t_Handle h_FmPcd, uint8_t schemeId); +t_Error FmPcdKgCheckInvalidateSchemeSw(t_Handle h_FmPcd, uint8_t schemeId); +t_Error FmPcdKgBuildBindPortToSchemes(t_Handle h_FmPcd , t_FmPcdKgInterModuleBindPortToSchemes *p_BindPortToSchemes, uint32_t *p_SpReg, bool add); +void FmPcdKgIncSchemeOwners(t_Handle h_FmPcd , t_FmPcdKgInterModuleBindPortToSchemes *p_BindPort); +void FmPcdKgDecSchemeOwners(t_Handle h_FmPcd , t_FmPcdKgInterModuleBindPortToSchemes *p_BindPort); +bool FmPcdKgIsDriverClsPlan(t_Handle h_FmPcd); +bool FmPcdKgHwSchemeIsValid(uint32_t schemeModeReg); +uint32_t FmPcdKgBuildCppReg(t_Handle h_FmPcd, uint8_t clsPlanGrpId); +uint32_t FmPcdKgBuildWriteSchemeActionReg(uint8_t schemeId, bool updateCounter); +uint32_t FmPcdKgBuildReadSchemeActionReg(uint8_t schemeId); +uint32_t FmPcdKgBuildWriteClsPlanBlockActionReg(uint8_t grpId); +uint32_t FmPcdKgBuildReadClsPlanBlockActionReg(uint8_t grpId); +uint32_t FmPcdKgBuildWritePortSchemeBindActionReg(uint8_t hardwarePortId); +uint32_t FmPcdKgBuildReadPortSchemeBindActionReg(uint8_t hardwarePortId); +uint32_t FmPcdKgBuildWritePortClsPlanBindActionReg(uint8_t hardwarePortId); +uint8_t FmPcdKgGetSchemeSwId(t_Handle h_FmPcd, uint8_t schemeHwId); +t_Error FmPcdKgSchemeTryLock(t_Handle h_FmPcd, uint8_t schemeId, bool intr); +void FmPcdKgReleaseSchemeLock(t_Handle h_FmPcd, uint8_t schemeId); +void FmPcdKgUpatePointedOwner(t_Handle h_FmPcd, uint8_t schemeId, bool add); + +t_Error FmPcdKgBindPortToSchemes(t_Handle h_FmPcd , t_FmPcdKgInterModuleBindPortToSchemes *p_SchemeBind); +t_Error FmPcdKgUnbindPortToSchemes(t_Handle h_FmPcd , t_FmPcdKgInterModuleBindPortToSchemes *p_SchemeBind); +uint32_t FmPcdKgGetRequiredAction(t_Handle h_FmPcd, uint8_t schemeId); +uint32_t FmPcdKgGetPointedOwners(t_Handle h_FmPcd, uint8_t schemeId); +e_FmPcdDoneAction FmPcdKgGetDoneAction(t_Handle h_FmPcd, uint8_t schemeId); +e_FmPcdEngine FmPcdKgGetNextEngine(t_Handle h_FmPcd, uint8_t schemeId); +void FmPcdKgUpdateRequiredAction(t_Handle h_FmPcd, uint8_t schemeId, uint32_t requiredAction); +bool FmPcdKgIsDirectPlcr(t_Handle h_FmPcd, uint8_t schemeId); +bool FmPcdKgIsDistrOnPlcrProfile(t_Handle h_FmPcd, uint8_t schemeId); +uint16_t FmPcdKgGetRelativeProfileId(t_Handle h_FmPcd, uint8_t schemeId); + +/* FM-PCD parser API routines */ +t_Error FmPcdPrsIncludePortInStatistics(t_Handle p_FmPcd, uint8_t hardwarePortId, bool include); + +/* FM-PCD policer API routines */ +t_Error FmPcdPlcrAllocProfiles(t_Handle h_FmPcd, uint8_t hardwarePortId, uint16_t numOfProfiles); +t_Error FmPcdPlcrFreeProfiles(t_Handle h_FmPcd, uint8_t hardwarePortId); +bool FmPcdPlcrIsProfileValid(t_Handle h_FmPcd, uint16_t absoluteProfileId); +uint16_t FmPcdPlcrGetPortProfilesBase(t_Handle h_FmPcd, uint8_t hardwarePortId); +uint16_t FmPcdPlcrGetPortNumOfProfiles(t_Handle h_FmPcd, uint8_t hardwarePortId); +uint32_t FmPcdPlcrBuildWritePlcrActionRegs(uint16_t absoluteProfileId); +uint32_t FmPcdPlcrBuildCounterProfileReg(e_FmPcdPlcrProfileCounters counter); +uint32_t FmPcdPlcrBuildWritePlcrActionReg(uint16_t absoluteProfileId); +uint32_t FmPcdPlcrBuildReadPlcrActionReg(uint16_t absoluteProfileId); +t_Error FmPcdPlcrBuildProfile(t_Handle h_FmPcd, t_FmPcdPlcrProfileParams *p_Profile, t_FmPcdPlcrInterModuleProfileRegs *p_PlcrRegs); +t_Error FmPcdPlcrGetAbsoluteProfileId(t_Handle h_FmPcd, + e_FmPcdProfileTypeSelection profileType, + t_Handle h_FmPort, + uint16_t relativeProfile, + uint16_t *p_AbsoluteId); +void FmPcdPlcrInvalidateProfileSw(t_Handle h_FmPcd, uint16_t absoluteProfileId); +void FmPcdPlcrValidateProfileSw(t_Handle h_FmPcd, uint16_t absoluteProfileId); +bool FmPcdPlcrHwProfileIsValid(uint32_t profileModeReg); +t_Error FmPcdPlcrProfileTryLock(t_Handle h_FmPcd, uint16_t profileId, bool intr); +void FmPcdPlcrReleaseProfileLock(t_Handle h_FmPcd, uint16_t profileId); +uint32_t FmPcdPlcrGetRequiredAction(t_Handle h_FmPcd, uint16_t absoluteProfileId); +uint32_t FmPcdPlcrGetPointedOwners(t_Handle h_FmPcd, uint16_t absoluteProfileId); +void FmPcdPlcrUpatePointedOwner(t_Handle h_FmPcd, uint16_t absoluteProfileId, bool add); +uint32_t FmPcdPlcrBuildNiaProfileReg(bool green, bool yellow, bool red); +void FmPcdPlcrUpdateRequiredAction(t_Handle h_FmPcd, uint16_t absoluteProfileId, uint32_t requiredAction); + +/* FM-PCD Coarse-Classification API routines */ +uint8_t FmPcdCcGetParseCode(t_Handle h_CcNode); +uint8_t FmPcdCcGetOffset(t_Handle h_CcNode); + +t_Error FmPcdManipUpdate(t_Handle h_FmPcd, t_Handle h_FmPort, t_Handle h_Manip, t_Handle h_Ad, bool validate, int level, t_Handle h_FmTree, bool modify); +t_Error FmPortGetSetCcParams(t_Handle h_FmPort, t_FmPortGetSetCcParams *p_FmPortGetSetCcParams); +uint32_t FmPcdManipGetRequiredAction (t_Handle h_Manip); +t_Error FmPcdCcBindTree(t_Handle h_FmPcd, t_Handle h_CcTree, uint32_t *p_Offset,t_Handle h_FmPort); +t_Error FmPcdCcUnbindTree(t_Handle h_FmPcd, t_Handle h_CcTree); + +t_Error FmPcdPlcrCcGetSetParams(t_Handle h_FmPcd, uint16_t profileIndx,uint32_t requiredAction); +t_Error FmPcdKgCcGetSetParams(t_Handle h_FmPcd, t_Handle h_Scheme, uint32_t requiredAction); + +uint8_t FmPortGetNetEnvId(t_Handle h_FmPort); +uint8_t FmPortGetHardwarePortId(t_Handle h_FmPort); +uint32_t FmPortGetPcdEngines(t_Handle h_FmPort); +void FmPortPcdKgSwUnbindClsPlanGrp (t_Handle h_FmPort); +t_Error FmPortAttachPCD(t_Handle h_FmPort); +t_Error FmPcdKgSetOrBindToClsPlanGrp(t_Handle h_FmPcd, uint8_t hardwarePortId, uint8_t netEnvId, protocolOpt_t *p_OptArray, uint8_t *p_ClsPlanGrpId, bool *p_IsEmptyClsPlanGrp); +t_Error FmPcdKgDeleteOrUnbindPortToClsPlanGrp(t_Handle h_FmPcd, uint8_t hardwarePortId, uint8_t clsPlanGrpId); + + +/**************************************************************************//** + @Function FmRegisterIntr + + @Description Used to register an inter-module event handler to be processed by FM + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] mod The module that causes the event + @Param[in] modId Module id - if more than 1 instansiation of this + mode exists,0 otherwise. + @Param[in] intrType Interrupt type (error/normal) selection. + @Param[in] f_Isr The interrupt service routine. + @Param[in] h_Arg Argument to be passed to f_Isr. + + @Return None. +*//***************************************************************************/ +void FmRegisterIntr(t_Handle h_Fm, + e_FmEventModules mod, + uint8_t modId, + e_FmIntrType intrType, + void (*f_Isr) (t_Handle h_Arg), + t_Handle h_Arg); + +/**************************************************************************//** + @Function FmUnregisterIntr + + @Description Used to un-register an inter-module event handler that was processed by FM + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] mod The module that causes the event + @Param[in] modId Module id - if more than 1 instansiation of this + mode exists,0 otherwise. + @Param[in] intrType Interrupt type (error/normal) selection. + + @Return None. +*//***************************************************************************/ +void FmUnregisterIntr(t_Handle h_Fm, + e_FmEventModules mod, + uint8_t modId, + e_FmIntrType intrType); + +/**************************************************************************//** + @Function FmRegisterFmCtlIntr + + @Description Used to register to one of the fmCtl events in the FM module + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] eventRegId FmCtl event id (0-7). + @Param[in] f_Isr The interrupt service routine. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +void FmRegisterFmCtlIntr(t_Handle h_Fm, uint8_t eventRegId, void (*f_Isr) (t_Handle h_Fm, uint32_t event)); + + +/**************************************************************************//** + @Description enum for defining MAC types +*//***************************************************************************/ +typedef enum e_FmMacType { + e_FM_MAC_10G = 0, /**< 10G MAC */ + e_FM_MAC_1G /**< 1G MAC */ +} e_FmMacType; + +/**************************************************************************//** + @Description Structure for port-FM communication during FM_PORT_Init. + Fields commented 'IN' are passed by the port module to be used + by the FM module. + Fields commented 'OUT' will be filled by FM before returning to port. + Some fields are optional (depending on configuration) and + will be analized by the port and FM modules accordingly. +*//***************************************************************************/ +typedef struct t_FmInterModulePortInitParams { + uint8_t hardwarePortId; /**< IN. port Id */ + e_FmPortType portType; /**< IN. Port type */ + bool independentMode; /**< IN. TRUE if FM Port operates in independent mode */ + uint16_t liodnOffset; /**< IN. Port's requested resource */ + uint8_t numOfTasks; /**< IN. Port's requested resource */ + uint8_t numOfExtraTasks; /**< IN. Port's requested resource */ + uint8_t numOfOpenDmas; /**< IN. Port's requested resource */ + uint8_t numOfExtraOpenDmas; /**< IN. Port's requested resource */ + uint32_t sizeOfFifo; /**< IN. Port's requested resource */ + uint32_t extraSizeOfFifo; /**< IN. Port's requested resource */ + uint8_t deqPipelineDepth; /**< IN. Port's requested resource */ + uint16_t liodnBase; /**< IN. Irrelevant for P4080 rev 1. + LIODN base for this port, to be + used together with LIODN offset. */ + t_FmPhysAddr fmMuramPhysBaseAddr;/**< OUT. FM-MURAM physical address*/ +} t_FmInterModulePortInitParams; + +/**************************************************************************//** + @Description Structure for port-FM communication during FM_PORT_Free. +*//***************************************************************************/ +typedef struct t_FmInterModulePortFreeParams { + uint8_t hardwarePortId; /**< IN. port Id */ + e_FmPortType portType; /**< IN. Port type */ +#ifdef FM_QMI_DEQ_OPTIONS_SUPPORT + uint8_t deqPipelineDepth; /**< IN. Port's requested resource */ +#endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ +} t_FmInterModulePortFreeParams; + +/**************************************************************************//** + @Function FmGetPcdPrsBaseAddr + + @Description Get the base address of the Parser from the FM module + + @Param[in] h_Fm A handle to an FM Module. + + @Return Base address. +*//***************************************************************************/ +uintptr_t FmGetPcdPrsBaseAddr(t_Handle h_Fm); + +/**************************************************************************//** + @Function FmGetPcdKgBaseAddr + + @Description Get the base address of the Keygen from the FM module + + @Param[in] h_Fm A handle to an FM Module. + + @Return Base address. +*//***************************************************************************/ +uintptr_t FmGetPcdKgBaseAddr(t_Handle h_Fm); + +/**************************************************************************//** + @Function FmGetPcdPlcrBaseAddr + + @Description Get the base address of the Policer from the FM module + + @Param[in] h_Fm A handle to an FM Module. + + @Return Base address. +*//***************************************************************************/ +uintptr_t FmGetPcdPlcrBaseAddr(t_Handle h_Fm); + +/**************************************************************************//** + @Function FmGetMuramHandle + + @Description Get the handle of the MURAM from the FM module + + @Param[in] h_Fm A handle to an FM Module. + + @Return MURAM module handle. +*//***************************************************************************/ +t_Handle FmGetMuramHandle(t_Handle h_Fm); + +/**************************************************************************//** + @Function FmGetPhysicalMuramBase + + @Description Get the physical base address of the MURAM from the FM module + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] fmPhysAddr Physical MURAM base + + @Return Physical base address. +*//***************************************************************************/ +void FmGetPhysicalMuramBase(t_Handle h_Fm, t_FmPhysAddr *fmPhysAddr); + +/**************************************************************************//** + @Function FmGetTimeStampScale + + @Description Used internally by other modules in order to get the timeStamp + period as requested by the application. + + @Param[in] h_Fm A handle to an FM Module. + + @Return TimeStamp period in nanoseconds. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +uint32_t FmGetTimeStampScale(t_Handle h_Fm); + +/**************************************************************************//** + @Function FmResumeStalledPort + + @Description Used internally by FM port to release a stalled port. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] hardwarePortId HW port id. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +t_Error FmResumeStalledPort(t_Handle h_Fm, uint8_t hardwarePortId); + +/**************************************************************************//** + @Function FmIsPortStalled + + @Description Used internally by FM port to read the port's status. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] hardwarePortId HW port id. + @Param[in] p_IsStalled A pointer to the boolean port stalled state + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +t_Error FmIsPortStalled(t_Handle h_Fm, uint8_t hardwarePortId, bool *p_IsStalled); + +/**************************************************************************//** + @Function FmResetMac + + @Description Used by MAC driver to reset the MAC registers + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] type MAC type. + @Param[in] macId MAC id - according to type. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +t_Error FmResetMac(t_Handle h_Fm, e_FmMacType type, uint8_t macId); + +/**************************************************************************//** + @Function FmGetClockFreq + + @Description Used by MAC driver to get the FM clock frequency + + @Param[in] h_Fm A handle to an FM Module. + + @Return clock-freq on success; 0 otherwise. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +uint16_t FmGetClockFreq(t_Handle h_Fm); + +/**************************************************************************//** + @Function FmGetId + + @Description Used by PCD driver to read rhe FM id + + @Param[in] h_Fm A handle to an FM Module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +uint8_t FmGetId(t_Handle h_Fm); + +/**************************************************************************//** + @Function FmGetSetPortParams + + @Description Used by FM-PORT driver to pass and receive parameters between + PORT and FM modules. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in,out] p_PortParams A structure of FM Port parameters. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +t_Error FmGetSetPortParams(t_Handle h_Fm,t_FmInterModulePortInitParams *p_PortParams); + +/**************************************************************************//** + @Function FmFreePortParams + + @Description Used by FM-PORT driver to free port's resources within the FM. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in,out] p_PortParams A structure of FM Port parameters. + + @Return None. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +void FmFreePortParams(t_Handle h_Fm,t_FmInterModulePortFreeParams *p_PortParams); + +/**************************************************************************//** + @Function FmSetPortToWorkWithOneRiscOnly + + @Description Used by FM-PORT driver to pass parameter between + PORT and FM modules for working with number of RISC.. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in,out] p_PortParams A structure of FM Port parameters. + + @Return None. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +t_Error FmSetNumOfRiscsPerPort(t_Handle h_Fm, uint8_t hardwarePortId, uint8_t numOfFmanCtrls); + + +void FmRegisterPcd(t_Handle h_Fm, t_Handle h_FmPcd); +void FmUnregisterPcd(t_Handle h_Fm); +t_Handle FmGetPcdHandle(t_Handle h_Fm); +bool FmRamsEccIsExternalCtl(t_Handle h_Fm); +t_Error FmEnableRamsEcc(t_Handle h_Fm); +t_Error FmDisableRamsEcc(t_Handle h_Fm); +void FmGetRevision(t_Handle h_Fm, t_FmRevisionInfo *p_FmRevisionInfo); +t_Error FmAllocFmanCtrlEventReg(t_Handle h_Fm, uint8_t *p_EventId); +void FmFreeFmanCtrlEventReg(t_Handle h_Fm, uint8_t eventId); +void FmSetFmanCtrlIntr(t_Handle h_Fm, uint8_t eventRegId, uint32_t enableEvents); +uint32_t FmGetFmanCtrlIntr(t_Handle h_Fm, uint8_t eventRegId); +void FmRegisterFmanCtrlIntr(t_Handle h_Fm, uint8_t eventRegId, void (*f_Isr) (t_Handle h_Fm, uint32_t event), t_Handle h_Arg); +void FmUnregisterFmanCtrlIntr(t_Handle h_Fm, uint8_t eventRegId); +t_Error FmSetMacMaxFrame(t_Handle h_Fm, e_FmMacType type, uint8_t macId, uint16_t mtu); +bool FmIsMaster(t_Handle h_Fm); +uint8_t FmGetGuestId(t_Handle h_Fm); +#ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 +t_Error Fm10GTxEccWorkaround(t_Handle h_Fm, uint8_t macId); +#endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */ + +void FmMuramClear(t_Handle h_FmMuram); +t_Error FmSetNumOfOpenDmas(t_Handle h_Fm, + uint8_t hardwarePortId, + uint8_t numOfOpenDmas, + uint8_t numOfExtraOpenDmas, + bool initialConfig); +t_Error FmSetNumOfTasks(t_Handle h_Fm, + uint8_t hardwarePortId, + uint8_t numOfTasks, + uint8_t numOfExtraTasks, + bool initialConfig); +t_Error FmSetSizeOfFifo(t_Handle h_Fm, + uint8_t hardwarePortId, + e_FmPortType portType, + bool independentMode, + uint32_t *p_SizeOfFifo, + uint32_t extraSizeOfFifo, + uint8_t deqPipelineDepth, + t_FmInterModulePortRxPoolsParams *p_RxPoolsParams, + bool initialConfig); + + +#endif /* __FM_COMMON_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/Peripherals/FM/inc/fm_hc.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/Peripherals/FM/inc/fm_hc.h @@ -0,0 +1,86 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __FM_HC_H +#define __FM_HC_H + +#include "std_ext.h" +#include "error_ext.h" + + +#define __ERR_MODULE__ MODULE_FM_PCD + + +typedef struct t_FmHcParams { + t_Handle h_Fm; + t_Handle h_FmPcd; + t_FmPcdHcParams params; +} t_FmHcParams; + + +t_Handle FmHcConfigAndInit(t_FmHcParams *p_FmHcParams); +void FmHcFree(t_Handle h_FmHc); +t_Error FmHcDumpRegs(t_Handle h_FmHc); + +void FmHcTxConf(t_Handle h_FmHc, t_DpaaFD *p_Fd); + +t_Handle FmHcPcdKgSetScheme(t_Handle h_FmHc, t_FmPcdKgSchemeParams *p_Scheme); +t_Error FmHcPcdKgDeleteScheme(t_Handle h_FmHc, t_Handle h_Scheme); +t_Error FmHcPcdCcCapwapTimeoutReassm(t_Handle h_FmHc, t_FmPcdCcCapwapReassmTimeoutParams *p_CcCapwapReassmTimeoutParams ); +t_Error FmHcPcdKgSetClsPlan(t_Handle h_FmHc, t_FmPcdKgInterModuleClsPlanSet *p_Set); +t_Error FmHcPcdKgDeleteClsPlan(t_Handle h_FmHc, uint8_t clsPlanGrpId); + +t_Error FmHcPcdKgSetSchemeCounter(t_Handle h_FmHc, t_Handle h_Scheme, uint32_t value); +uint32_t FmHcPcdKgGetSchemeCounter(t_Handle h_FmHc, t_Handle h_Scheme); + +t_Error FmHcPcdCcModifyTreeNextEngine(t_Handle h_FmHc, t_Handle h_CcTree, uint8_t grpId, uint8_t index, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams); +t_Error FmHcPcdCcModifyNodeNextEngine(t_Handle h_FmHc, t_Handle h_CcNode, uint8_t keyIndex, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams); +t_Error FmHcPcdCcModifyNodeMissNextEngine(t_Handle h_FmHc, t_Handle h_CcNode, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams); +t_Error FmHcPcdCcRemoveKey(t_Handle h_FmHc, t_Handle h_CcNode, uint8_t keyIndex); +t_Error FmHcPcdCcAddKey(t_Handle h_FmHc, t_Handle h_CcNode, uint8_t keyIndex, uint8_t keySize, t_FmPcdCcKeyParams *p_KeyParams); +t_Error FmHcPcdCcModifyKeyAndNextEngine(t_Handle h_FmHc, t_Handle h_CcNode, uint8_t keyIndex, uint8_t keySize, t_FmPcdCcKeyParams *p_KeyParams); +t_Error FmHcPcdCcModifyKey(t_Handle h_FmHc, t_Handle h_CcNode, uint8_t keyIndex, uint8_t keySize, uint8_t *p_Key, uint8_t *p_Mask); + +t_Handle FmHcPcdPlcrSetProfile(t_Handle h_FmHc,t_FmPcdPlcrProfileParams *p_Profile); +t_Error FmHcPcdPlcrDeleteProfile(t_Handle h_FmHc, t_Handle h_Profile); + +t_Error FmHcPcdPlcrSetProfileCounter(t_Handle h_FmHc, t_Handle h_Profile, e_FmPcdPlcrProfileCounters counter, uint32_t value); +uint32_t FmHcPcdPlcrGetProfileCounter(t_Handle h_FmHc, t_Handle h_Profile, e_FmPcdPlcrProfileCounters counter); + +t_Error FmHcKgWriteSp(t_Handle h_FmHc, uint8_t hardwarePortId, uint32_t spReg, bool add); +t_Error FmHcKgWriteCpp(t_Handle h_FmHc, uint8_t hardwarePortId, uint32_t cppReg); + +t_Error FmHcPcdKgCcGetSetParams(t_Handle h_FmHc, t_Handle h_Scheme, uint32_t requiredAction); +t_Error FmHcPcdPlcrCcGetSetParams(t_Handle h_FmHc,uint16_t absoluteProfileId, uint32_t requiredAction); + + +#endif /* __FM_HC_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/etc/Makefile +++ linux-3.13.0/drivers/net/dpa/NetCommSw/etc/Makefile @@ -0,0 +1,11 @@ +# +# Makefile for the Freescale Ethernet controllers +# +EXTRA_CFLAGS += -DVERSION=\"\" +# +#Include netcomm SW specific definitions +include $(srctree)/drivers/net/dpa/NetCommSw/ncsw_config.mk + +obj-y += fsl-ncsw-etc.o + +fsl-ncsw-etc-objs := mm.o memcpy.o sprint.o list.o error.o --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/etc/error.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/etc/error.c @@ -0,0 +1,118 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + + @File error.c + + @Description General errors and events reporting utilities. +*//***************************************************************************/ + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) + +const char *dbgLevelStrings[] = +{ + "CRITICAL" + ,"MAJOR" + ,"MINOR" + ,"WARNING" + ,"INFO" + ,"TRACE" +}; + +const char *errTypeStrings[] = +{ + "Invalid State" /* E_INVALID_STATE */ + ,"Invalid Operation" /* E_INVALID_OPERATION */ + ,"Unsupported Operation" /* E_NOT_SUPPORTED */ + ,"No Device" /* E_NO_DEVICE */ + ,"Invalid Handle" /* E_INVALID_HANDLE */ + ,"Invalid ID" /* E_INVALID_ID */ + ,"Unexpected NULL Pointer" /* E_NULL_POINTER */ + ,"Invalid Value" /* E_INVALID_VALUE */ + ,"Invalid Selection" /* E_INVALID_SELECTION */ + ,"Invalid Communication Mode" /* E_INVALID_COMM_MODE */ + ,"Invalid Byte Order" /* E_INVALID_BYTE_ORDER */ + ,"Invalid Memory Type" /* E_INVALID_MEMORY_TYPE */ + ,"Invalid Interrupt Queue" /* E_INVALID_INTR_QUEUE */ + ,"Invalid Priority" /* E_INVALID_PRIORITY */ + ,"Invalid Clock" /* E_INVALID_CLOCK */ + ,"Invalid Rate" /* E_INVALID_RATE */ + ,"Invalid Address" /* E_INVALID_ADDRESS */ + ,"Invalid Bus" /* E_INVALID_BUS */ + ,"Conflict In Bus Selection" /* E_BUS_CONFLICT */ + ,"Conflict In Settings" /* E_CONFLICT */ + ,"Incorrect Alignment" /* E_NOT_ALIGNED */ + ,"Value Out Of Range" /* E_NOT_IN_RANGE */ + ,"Invalid Frame" /* E_INVALID_FRAME */ + ,"Frame Is Empty" /* E_EMPTY_FRAME */ + ,"Buffer Is Empty" /* E_EMPTY_BUFFER */ + ,"Memory Allocation Failed" /* E_NO_MEMORY */ + ,"Resource Not Found" /* E_NOT_FOUND */ + ,"Resource Is Unavailable" /* E_NOT_AVAILABLE */ + ,"Resource Already Exists" /* E_ALREADY_EXISTS */ + ,"Resource Is Full" /* E_FULL */ + ,"Resource Is Empty" /* E_EMPTY */ + ,"Resource Is Busy" /* E_BUSY */ + ,"Resource Already Free" /* E_ALREADY_FREE */ + ,"Read Access Failed" /* E_READ_FAILED */ + ,"Write Access Failed" /* E_WRITE_FAILED */ + ,"Send Operation Failed" /* E_SEND_FAILED */ + ,"Receive Operation Failed" /* E_RECEIVE_FAILED */ + ,"Operation Timed Out" /* E_TIMEOUT */ +}; + + +#if (defined(REPORT_EVENTS) && (REPORT_EVENTS > 0)) + +const char *eventStrings[] = +{ + "Rx Discard" /* EV_RX_DISCARD */ + ,"Rx Error" /* EV_RX_ERROR */ + ,"Tx Error" /* EV_TX_ERROR */ + ,"No Buffer Objects" /* EV_NO_BUFFERS */ + ,"No MB-Frame Objects" /* EV_NO_MB_FRAMES */ + ,"No SB-Frame Objects" /* EV_NO_SB_FRAMES */ + ,"Tx Queue Is Full" /* EV_TX_QUEUE_FULL */ + ,"Rx Queue Is Full" /* EV_RX_QUEUE_FULL */ + ,"Interrupts Queue Is Full" /* EV_INTR_QUEUE_FULL */ + ,"Data Buffer Is Unavailable" /* EV_NO_DATA_BUFFER */ + ,"Objects Pool Is Empty" /* EV_OBJ_POOL_EMPTY */ + ,"Illegal bus access" /* EV_BUS_ERROR */ + ,"PTP Tx Timestamps Queue Is Full" /* EV_PTP_TXTS_QUEUE_FULL */ + ,"PTP Rx Timestamps Queue Is Full" /* EV_PTP_RXTS_QUEUE_FULL */ +}; + +#endif /* (defined(REPORT_EVENTS) && (REPORT_EVENTS > 0)) */ + +#endif /* (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) */ + --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/etc/list.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/etc/list.c @@ -0,0 +1,70 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + + @File list.c + + @Description Implementation of list. +*//***************************************************************************/ +#include "std_ext.h" +#include "list_ext.h" + + +void LIST_Append(t_List *p_NewList, t_List *p_Head) +{ + t_List *p_First = LIST_FIRST(p_NewList); + + if (p_First != p_NewList) + { + t_List *p_Last = LIST_LAST(p_NewList); + t_List *p_Cur = LIST_NEXT(p_Head); + + LIST_PREV(p_First) = p_Head; + LIST_FIRST(p_Head) = p_First; + LIST_NEXT(p_Last) = p_Cur; + LIST_LAST(p_Cur) = p_Last; + } +} + + +int LIST_NumOfObjs(t_List *p_List) +{ + t_List *p_Tmp; + int numOfObjs = 0; + + if (!LIST_IsEmpty(p_List)) + LIST_FOR_EACH(p_Tmp, p_List) + numOfObjs++; + + return numOfObjs; +} --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/etc/memcpy.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/etc/memcpy.c @@ -0,0 +1,665 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +#include "std_ext.h" +#include "xx_ext.h" +#include "memcpy_ext.h" + + +#ifdef CORE_8BIT_ACCESS_ERRATA +static void MY_MY_WRITE_UINT8(uint8_t *addr, uint8_t val) +{ + uint32_t newAddr, newVal; + newAddr = (uint32_t)addr & ~0x3L; + switch ((uint32_t)addr%4) + { + case (0): + newVal = GET_UINT32(*(uint32_t*)newAddr); + newVal = (newVal & 0x00ffffff) | (((uint32_t)val)<<24); + WRITE_UINT32(*(uint32_t*)newAddr, newVal); + break; + case (1): + newVal = GET_UINT32(*(uint32_t*)newAddr); + newVal = (newVal & 0xff00ffff) | (((uint32_t)val)<<16); + WRITE_UINT32(*(uint32_t*)newAddr, newVal); + break; + case (2): + newVal = GET_UINT32(*(uint32_t*)newAddr); + newVal = (newVal & 0xffff00ff) | (((uint32_t)val)<<8); + WRITE_UINT32(*(uint32_t*)newAddr, newVal); + break; + case (3): + newVal = GET_UINT32(*(uint32_t*)newAddr); + newVal = (newVal & 0xffffff00) | val; + WRITE_UINT32(*(uint32_t*)newAddr, newVal); + break; + } +} + +static uint8_t MY_MY_GET_UINT8(uint8_t *addr) +{ + uint32_t newAddr, newVal=0; + newAddr = (uint32_t)addr & ~0x3L; + switch ((uint32_t)addr%4) + { + case (0): + newVal = GET_UINT32(*(uint32_t*)newAddr); + newVal = (newVal & 0xff000000)>>24; + break; + case (1): + newVal = GET_UINT32(*(uint32_t*)newAddr); + newVal = (newVal & 0x00ff0000)>>16; + break; + case (2): + newVal = GET_UINT32(*(uint32_t*)newAddr); + newVal = (newVal & 0x0000ff00)>>8; + break; + case (3): + newVal = GET_UINT32(*(uint32_t*)newAddr); + newVal = (newVal & 0x000000ff); + break; + } + + return (uint8_t)newVal; +} + +#define MY_WRITE_UINT8(addr,val) MY_MY_WRITE_UINT8(&addr,val) +#define MY_GET_UINT8(addr) MY_MY_GET_UINT8(&addr) +#else +#define MY_WRITE_UINT8 WRITE_UINT8 +#define MY_GET_UINT8 GET_UINT8 +#endif /* CORE_8BIT_ACCESS_ERRATA */ + + +void * MemCpy32(void* pDst,void* pSrc, uint32_t size) +{ + uint32_t leftAlign; + uint32_t rightAlign; + uint32_t lastWord; + uint32_t currWord; + uint32_t *p_Src32; + uint32_t *p_Dst32; + uint8_t *p_Src8; + uint8_t *p_Dst8; + + p_Src8 = (uint8_t*)(pSrc); + p_Dst8 = (uint8_t*)(pDst); + /* first copy byte by byte till the source first alignment + * this step is necessary to ensure we do not even try to access + * data which is before the source buffer, hence it is not ours. + */ + while((PTR_TO_UINT(p_Src8) & 3) && size) /* (pSrc mod 4) > 0 and size > 0 */ + { + *p_Dst8++ = *p_Src8++; + size--; + } + + /* align destination (possibly disaligning source)*/ + while((PTR_TO_UINT(p_Dst8) & 3) && size) /* (pDst mod 4) > 0 and size > 0 */ + { + *p_Dst8++ = *p_Src8++; + size--; + } + + /* dest is aligned and source is not necessarily aligned */ + leftAlign = (uint32_t)((PTR_TO_UINT(p_Src8) & 3) << 3); /* leftAlign = (pSrc mod 4)*8 */ + rightAlign = 32 - leftAlign; + + + if (leftAlign == 0) + { + /* source is also aligned */ + p_Src32 = (uint32_t*)(p_Src8); + p_Dst32 = (uint32_t*)(p_Dst8); + while (size >> 2) /* size >= 4 */ + { + *p_Dst32++ = *p_Src32++; + size -= 4; + } + p_Src8 = (uint8_t*)(p_Src32); + p_Dst8 = (uint8_t*)(p_Dst32); + } + else + { + /* source is not aligned (destination is aligned)*/ + p_Src32 = (uint32_t*)(p_Src8 - (leftAlign >> 3)); + p_Dst32 = (uint32_t*)(p_Dst8); + lastWord = *p_Src32++; + while(size >> 3) /* size >= 8 */ + { + currWord = *p_Src32; + *p_Dst32 = (lastWord << leftAlign) | (currWord >> rightAlign); + lastWord = currWord; + p_Src32++; + p_Dst32++; + size -= 4; + } + p_Dst8 = (uint8_t*)(p_Dst32); + p_Src8 = (uint8_t*)(p_Src32) - 4 + (leftAlign >> 3); + } + + /* complete the left overs */ + while (size--) + *p_Dst8++ = *p_Src8++; + + return pDst; +} + +void * IO2IOCpy32(void* pDst,void* pSrc, uint32_t size) +{ + uint32_t leftAlign; + uint32_t rightAlign; + uint32_t lastWord; + uint32_t currWord; + uint32_t *p_Src32; + uint32_t *p_Dst32; + uint8_t *p_Src8; + uint8_t *p_Dst8; + + p_Src8 = (uint8_t*)(pSrc); + p_Dst8 = (uint8_t*)(pDst); + /* first copy byte by byte till the source first alignment + * this step is necessary to ensure we do not even try to access + * data which is before the source buffer, hence it is not ours. + */ + while((PTR_TO_UINT(p_Src8) & 3) && size) /* (pSrc mod 4) > 0 and size > 0 */ + { + MY_WRITE_UINT8(*p_Dst8, MY_GET_UINT8(*p_Src8)); + p_Dst8++;p_Src8++; + size--; + } + + /* align destination (possibly disaligning source)*/ + while((PTR_TO_UINT(p_Dst8) & 3) && size) /* (pDst mod 4) > 0 and size > 0 */ + { + MY_WRITE_UINT8(*p_Dst8, MY_GET_UINT8(*p_Src8)); + p_Dst8++;p_Src8++; + size--; + } + + /* dest is aligned and source is not necessarily aligned */ + leftAlign = (uint32_t)((PTR_TO_UINT(p_Src8) & 3) << 3); /* leftAlign = (pSrc mod 4)*8 */ + rightAlign = 32 - leftAlign; + + if (leftAlign == 0) + { + /* source is also aligned */ + p_Src32 = (uint32_t*)(p_Src8); + p_Dst32 = (uint32_t*)(p_Dst8); + while (size >> 2) /* size >= 4 */ + { + WRITE_UINT32(*p_Dst32, GET_UINT32(*p_Src32)); + p_Dst32++;p_Src32++; + size -= 4; + } + p_Src8 = (uint8_t*)(p_Src32); + p_Dst8 = (uint8_t*)(p_Dst32); + } + else + { + /* source is not aligned (destination is aligned)*/ + p_Src32 = (uint32_t*)(p_Src8 - (leftAlign >> 3)); + p_Dst32 = (uint32_t*)(p_Dst8); + lastWord = GET_UINT32(*p_Src32); + p_Src32++; + while(size >> 3) /* size >= 8 */ + { + currWord = GET_UINT32(*p_Src32); + WRITE_UINT32(*p_Dst32, (lastWord << leftAlign) | (currWord >> rightAlign)); + lastWord = currWord; + p_Src32++;p_Dst32++; + size -= 4; + } + p_Dst8 = (uint8_t*)(p_Dst32); + p_Src8 = (uint8_t*)(p_Src32) - 4 + (leftAlign >> 3); + } + + /* complete the left overs */ + while (size--) + { + MY_WRITE_UINT8(*p_Dst8, MY_GET_UINT8(*p_Src8)); + p_Dst8++;p_Src8++; + } + + return pDst; +} + +void * Mem2IOCpy32(void* pDst,void* pSrc, uint32_t size) +{ + uint32_t leftAlign; + uint32_t rightAlign; + uint32_t lastWord; + uint32_t currWord; + uint32_t *p_Src32; + uint32_t *p_Dst32; + uint8_t *p_Src8; + uint8_t *p_Dst8; + + p_Src8 = (uint8_t*)(pSrc); + p_Dst8 = (uint8_t*)(pDst); + /* first copy byte by byte till the source first alignment + * this step is necessary to ensure we do not even try to access + * data which is before the source buffer, hence it is not ours. + */ + while((PTR_TO_UINT(p_Src8) & 3) && size) /* (pSrc mod 4) > 0 and size > 0 */ + { + MY_WRITE_UINT8(*p_Dst8, *p_Src8); + p_Dst8++;p_Src8++; + size--; + } + + /* align destination (possibly disaligning source)*/ + while((PTR_TO_UINT(p_Dst8) & 3) && size) /* (pDst mod 4) > 0 and size > 0 */ + { + MY_WRITE_UINT8(*p_Dst8, *p_Src8); + p_Dst8++;p_Src8++; + size--; + } + + /* dest is aligned and source is not necessarily aligned */ + leftAlign = (uint32_t)((PTR_TO_UINT(p_Src8) & 3) << 3); /* leftAlign = (pSrc mod 4)*8 */ + rightAlign = 32 - leftAlign; + + if (leftAlign == 0) + { + /* source is also aligned */ + p_Src32 = (uint32_t*)(p_Src8); + p_Dst32 = (uint32_t*)(p_Dst8); + while (size >> 2) /* size >= 4 */ + { + WRITE_UINT32(*p_Dst32, *p_Src32); + p_Dst32++;p_Src32++; + size -= 4; + } + p_Src8 = (uint8_t*)(p_Src32); + p_Dst8 = (uint8_t*)(p_Dst32); + } + else + { + /* source is not aligned (destination is aligned)*/ + p_Src32 = (uint32_t*)(p_Src8 - (leftAlign >> 3)); + p_Dst32 = (uint32_t*)(p_Dst8); + lastWord = *p_Src32++; + while(size >> 3) /* size >= 8 */ + { + currWord = *p_Src32; + WRITE_UINT32(*p_Dst32, (lastWord << leftAlign) | (currWord >> rightAlign)); + lastWord = currWord; + p_Src32++;p_Dst32++; + size -= 4; + } + p_Dst8 = (uint8_t*)(p_Dst32); + p_Src8 = (uint8_t*)(p_Src32) - 4 + (leftAlign >> 3); + } + + /* complete the left overs */ + while (size--) + { + MY_WRITE_UINT8(*p_Dst8, *p_Src8); + p_Dst8++;p_Src8++; + } + + return pDst; +} + +void * IO2MemCpy32(void* pDst,void* pSrc, uint32_t size) +{ + uint32_t leftAlign; + uint32_t rightAlign; + uint32_t lastWord; + uint32_t currWord; + uint32_t *p_Src32; + uint32_t *p_Dst32; + uint8_t *p_Src8; + uint8_t *p_Dst8; + + p_Src8 = (uint8_t*)(pSrc); + p_Dst8 = (uint8_t*)(pDst); + /* first copy byte by byte till the source first alignment + * this step is necessary to ensure we do not even try to access + * data which is before the source buffer, hence it is not ours. + */ + while((PTR_TO_UINT(p_Src8) & 3) && size) /* (pSrc mod 4) > 0 and size > 0 */ + { + *p_Dst8 = MY_GET_UINT8(*p_Src8); + p_Dst8++;p_Src8++; + size--; + } + + /* align destination (possibly disaligning source)*/ + while((PTR_TO_UINT(p_Dst8) & 3) && size) /* (pDst mod 4) > 0 and size > 0 */ + { + *p_Dst8 = MY_GET_UINT8(*p_Src8); + p_Dst8++;p_Src8++; + size--; + } + + /* dest is aligned and source is not necessarily aligned */ + leftAlign = (uint32_t)((PTR_TO_UINT(p_Src8) & 3) << 3); /* leftAlign = (pSrc mod 4)*8 */ + rightAlign = 32 - leftAlign; + + if (leftAlign == 0) + { + /* source is also aligned */ + p_Src32 = (uint32_t*)(p_Src8); + p_Dst32 = (uint32_t*)(p_Dst8); + while (size >> 2) /* size >= 4 */ + { + *p_Dst32 = GET_UINT32(*p_Src32); + p_Dst32++;p_Src32++; + size -= 4; + } + p_Src8 = (uint8_t*)(p_Src32); + p_Dst8 = (uint8_t*)(p_Dst32); + } + else + { + /* source is not aligned (destination is aligned)*/ + p_Src32 = (uint32_t*)(p_Src8 - (leftAlign >> 3)); + p_Dst32 = (uint32_t*)(p_Dst8); + lastWord = GET_UINT32(*p_Src32); + p_Src32++; + while(size >> 3) /* size >= 8 */ + { + currWord = GET_UINT32(*p_Src32); + *p_Dst32 = (lastWord << leftAlign) | (currWord >> rightAlign); + lastWord = currWord; + p_Src32++;p_Dst32++; + size -= 4; + } + p_Dst8 = (uint8_t*)(p_Dst32); + p_Src8 = (uint8_t*)(p_Src32) - 4 + (leftAlign >> 3); + } + + /* complete the left overs */ + while (size--) + { + *p_Dst8 = MY_GET_UINT8(*p_Src8); + p_Dst8++;p_Src8++; + } + + return pDst; +} + +void * MemCpy64(void* pDst,void* pSrc, uint32_t size) +{ + uint32_t leftAlign; + uint32_t rightAlign; + uint64_t lastWord; + uint64_t currWord; + uint64_t *pSrc64; + uint64_t *pDst64; + uint8_t *p_Src8; + uint8_t *p_Dst8; + + p_Src8 = (uint8_t*)(pSrc); + p_Dst8 = (uint8_t*)(pDst); + /* first copy byte by byte till the source first alignment + * this step is necessarily to ensure we do not even try to access + * data which is before the source buffer, hence it is not ours. + */ + while((PTR_TO_UINT(p_Src8) & 7) && size) /* (pSrc mod 8) > 0 and size > 0 */ + { + *p_Dst8++ = *p_Src8++; + size--; + } + + /* align destination (possibly disaligning source)*/ + while((PTR_TO_UINT(p_Dst8) & 7) && size) /* (pDst mod 8) > 0 and size > 0 */ + { + *p_Dst8++ = *p_Src8++; + size--; + } + + /* dest is aligned and source is not necessarily aligned */ + leftAlign = (uint32_t)((PTR_TO_UINT(p_Src8) & 7) << 3); /* leftAlign = (pSrc mod 8)*8 */ + rightAlign = 64 - leftAlign; + + + if (leftAlign == 0) + { + /* source is also aligned */ + pSrc64 = (uint64_t*)(p_Src8); + pDst64 = (uint64_t*)(p_Dst8); + while (size >> 3) /* size >= 8 */ + { + *pDst64++ = *pSrc64++; + size -= 8; + } + p_Src8 = (uint8_t*)(pSrc64); + p_Dst8 = (uint8_t*)(pDst64); + } + else + { + /* source is not aligned (destination is aligned)*/ + pSrc64 = (uint64_t*)(p_Src8 - (leftAlign >> 3)); + pDst64 = (uint64_t*)(p_Dst8); + lastWord = *pSrc64++; + while(size >> 4) /* size >= 16 */ + { + currWord = *pSrc64; + *pDst64 = (lastWord << leftAlign) | (currWord >> rightAlign); + lastWord = currWord; + pSrc64++; + pDst64++; + size -= 8; + } + p_Dst8 = (uint8_t*)(pDst64); + p_Src8 = (uint8_t*)(pSrc64) - 8 + (leftAlign >> 3); + } + + /* complete the left overs */ + while (size--) + *p_Dst8++ = *p_Src8++; + + return pDst; +} + +void * MemSet32(void* pDst, uint8_t val, uint32_t size) +{ + uint32_t val32; + uint32_t *p_Dst32; + uint8_t *p_Dst8; + + p_Dst8 = (uint8_t*)(pDst); + + /* generate four 8-bit val's in 32-bit container */ + val32 = (uint32_t) val; + val32 |= (val32 << 8); + val32 |= (val32 << 16); + + /* align destination to 32 */ + while((PTR_TO_UINT(p_Dst8) & 3) && size) /* (pDst mod 4) > 0 and size > 0 */ + { + *p_Dst8++ = val; + size--; + } + + /* 32-bit chunks */ + p_Dst32 = (uint32_t*)(p_Dst8); + while (size >> 2) /* size >= 4 */ + { + *p_Dst32++ = val32; + size -= 4; + } + + /* complete the leftovers */ + p_Dst8 = (uint8_t*)(p_Dst32); + while (size--) + *p_Dst8++ = val; + + return pDst; +} + +void * IOMemSet32(void* pDst, uint8_t val, uint32_t size) +{ + uint32_t val32; + uint32_t *p_Dst32; + uint8_t *p_Dst8; + + p_Dst8 = (uint8_t*)(pDst); + + /* generate four 8-bit val's in 32-bit container */ + val32 = (uint32_t) val; + val32 |= (val32 << 8); + val32 |= (val32 << 16); + + /* align destination to 32 */ + while((PTR_TO_UINT(p_Dst8) & 3) && size) /* (pDst mod 4) > 0 and size > 0 */ + { + MY_WRITE_UINT8(*p_Dst8, val); + p_Dst8++; + size--; + } + + /* 32-bit chunks */ + p_Dst32 = (uint32_t*)(p_Dst8); + while (size >> 2) /* size >= 4 */ + { + WRITE_UINT32(*p_Dst32, val32); + p_Dst32++; + size -= 4; + } + + /* complete the leftovers */ + p_Dst8 = (uint8_t*)(p_Dst32); + while (size--) + { + MY_WRITE_UINT8(*p_Dst8, val); + p_Dst8++; + } + + return pDst; +} + +void * MemSet64(void* pDst, uint8_t val, uint32_t size) +{ + uint64_t val64; + uint64_t *pDst64; + uint8_t *p_Dst8; + + p_Dst8 = (uint8_t*)(pDst); + + /* generate four 8-bit val's in 32-bit container */ + val64 = (uint64_t) val; + val64 |= (val64 << 8); + val64 |= (val64 << 16); + val64 |= (val64 << 24); + val64 |= (val64 << 32); + + /* align destination to 64 */ + while((PTR_TO_UINT(p_Dst8) & 7) && size) /* (pDst mod 8) > 0 and size > 0 */ + { + *p_Dst8++ = val; + size--; + } + + /* 64-bit chunks */ + pDst64 = (uint64_t*)(p_Dst8); + while (size >> 4) /* size >= 8 */ + { + *pDst64++ = val64; + size -= 8; + } + + /* complete the leftovers */ + p_Dst8 = (uint8_t*)(pDst64); + while (size--) + *p_Dst8++ = val; + + return pDst; +} + +void MemDisp(uint8_t *p, int size) +{ + uint32_t space = (uint32_t)(PTR_TO_UINT(p) & 0x3); + uint8_t *p_Limit; + + if (space) + { + p_Limit = (p - space + 4); + + XX_Print("0x%08X: ", (p - space)); + + while (space--) + { + XX_Print("--"); + } + while (size && (p < p_Limit)) + { + XX_Print("%02x", *(uint8_t*)p); + size--; + p++; + } + + XX_Print(" "); + p_Limit += 12; + + while ((size > 3) && (p < p_Limit)) + { + XX_Print("%08x ", *(uint32_t*)p); + size -= 4; + p += 4; + } + XX_Print("\r\n"); + } + + while (size > 15) + { + XX_Print("0x%08X: %08x %08x %08x %08x\r\n", + p, *(uint32_t *)p, *(uint32_t *)(p + 4), + *(uint32_t *)(p + 8), *(uint32_t *)(p + 12)); + size -= 16; + p += 16; + } + + if (size) + { + XX_Print("0x%08X: ", p); + + while (size > 3) + { + XX_Print("%08x ", *(uint32_t *)p); + size -= 4; + p += 4; + } + while (size) + { + XX_Print("%02x", *(uint8_t *)p); + size--; + p++; + } + + XX_Print("\r\n"); + } +} --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/etc/mm.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/etc/mm.c @@ -0,0 +1,1109 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "string_ext.h" +#include "error_ext.h" +#include "std_ext.h" +#include "sprint_ext.h" +#include "part_ext.h" +#include "xx_ext.h" + +#include "mm.h" + + + + +/********************************************************************** + * MM internal routines set * + **********************************************************************/ + +/**************************************************************** + * Routine: CreateBusyBlock + * + * Description: + * Initializes a new busy block of "size" bytes and started + * rom "base" address. Each busy block has a name that + * specified the purpose of the memory allocation. + * + * Arguments: + * base - base address of the busy block + * size - size of the busy block + * name - name that specified the busy block + * + * Return value: + * A pointer to new created structure returned on success; + * Otherwise, NULL. + ****************************************************************/ +static t_BusyBlock * CreateBusyBlock(uint64_t base, uint64_t size, char *name) +{ + t_BusyBlock *p_BusyBlock; + uint32_t n; + + p_BusyBlock = (t_BusyBlock *)XX_Malloc(sizeof(t_BusyBlock)); + if ( !p_BusyBlock ) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, NO_MSG); + return NULL; + } + + p_BusyBlock->base = base; + p_BusyBlock->end = base + size; + + n = strlen(name); + if (n >= MM_MAX_NAME_LEN) + n = MM_MAX_NAME_LEN - 1; + strncpy(p_BusyBlock->name, name, MM_MAX_NAME_LEN-1); + p_BusyBlock->name[n] = '\0'; + p_BusyBlock->p_Next = 0; + + return p_BusyBlock; +} + +/**************************************************************** + * Routine: CreateNewBlock + * + * Description: + * Initializes a new memory block of "size" bytes and started + * from "base" address. + * + * Arguments: + * base - base address of the memory block + * size - size of the memory block + * + * Return value: + * A pointer to new created structure returned on success; + * Otherwise, NULL. + ****************************************************************/ +static t_MemBlock * CreateNewBlock(uint64_t base, uint64_t size) +{ + t_MemBlock *p_MemBlock; + + p_MemBlock = (t_MemBlock *)XX_Malloc(sizeof(t_MemBlock)); + if ( !p_MemBlock ) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, NO_MSG); + return NULL; + } + + p_MemBlock->base = base; + p_MemBlock->end = base+size; + p_MemBlock->p_Next = 0; + + return p_MemBlock; +} + +/**************************************************************** + * Routine: CreateFreeBlock + * + * Description: + * Initializes a new free block of of "size" bytes and + * started from "base" address. + * + * Arguments: + * base - base address of the free block + * size - size of the free block + * + * Return value: + * A pointer to new created structure returned on success; + * Otherwise, NULL. + ****************************************************************/ +static t_FreeBlock * CreateFreeBlock(uint64_t base, uint64_t size) +{ + t_FreeBlock *p_FreeBlock; + + p_FreeBlock = (t_FreeBlock *)XX_Malloc(sizeof(t_FreeBlock)); + if ( !p_FreeBlock ) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, NO_MSG); + return NULL; + } + + p_FreeBlock->base = base; + p_FreeBlock->end = base + size; + p_FreeBlock->p_Next = 0; + + return p_FreeBlock; +} + +/**************************************************************** + * Routine: AddFree + * + * Description: + * Adds a new free block to the free lists. It updates each + * free list to include a new free block. + * Note, that all free block in each free list are ordered + * by their base address. + * + * Arguments: + * p_MM - pointer to the MM object + * base - base address of a given free block + * end - end address of a given free block + * + * Return value: + * + * + ****************************************************************/ +static t_Error AddFree(t_MM *p_MM, uint64_t base, uint64_t end) +{ + t_FreeBlock *p_PrevB, *p_CurrB, *p_NewB; + uint64_t alignment; + uint64_t alignBase; + int i; + + /* Updates free lists to include a just released block */ + for (i=0; i <= MM_MAX_ALIGNMENT; i++) + { + p_PrevB = p_NewB = 0; + p_CurrB = p_MM->freeBlocks[i]; + + alignment = (uint64_t)(0x1 << i); + alignBase = MAKE_ALIGNED(base, alignment); + + /* Goes to the next free list if there is no block to free */ + if (alignBase >= end) + continue; + + /* Looks for a free block that should be updated */ + while ( p_CurrB ) + { + if ( alignBase <= p_CurrB->end ) + { + if ( end > p_CurrB->end ) + { + t_FreeBlock *p_NextB; + while ( p_CurrB->p_Next && end > p_CurrB->p_Next->end ) + { + p_NextB = p_CurrB->p_Next; + p_CurrB->p_Next = p_CurrB->p_Next->p_Next; + XX_Free(p_NextB); + } + + p_NextB = p_CurrB->p_Next; + if ( !p_NextB || (p_NextB && end < p_NextB->base) ) + { + p_CurrB->end = end; + } + else + { + p_CurrB->end = p_NextB->end; + p_CurrB->p_Next = p_NextB->p_Next; + XX_Free(p_NextB); + } + } + else if ( (end < p_CurrB->base) && ((end-alignBase) >= alignment) ) + { + if ((p_NewB = CreateFreeBlock(alignBase, end-alignBase)) == NULL) + RETURN_ERROR(MAJOR, E_NO_MEMORY, NO_MSG); + + p_NewB->p_Next = p_CurrB; + if (p_PrevB) + p_PrevB->p_Next = p_NewB; + else + p_MM->freeBlocks[i] = p_NewB; + break; + } + + if ((alignBase < p_CurrB->base) && (end >= p_CurrB->base)) + { + p_CurrB->base = alignBase; + } + + /* if size of the free block is less then alignment + * deletes that free block from the free list. */ + if ( (p_CurrB->end - p_CurrB->base) < alignment) + { + if ( p_PrevB ) + p_PrevB->p_Next = p_CurrB->p_Next; + else + p_MM->freeBlocks[i] = p_CurrB->p_Next; + XX_Free(p_CurrB); + } + break; + } + else + { + p_PrevB = p_CurrB; + p_CurrB = p_CurrB->p_Next; + } + } + + /* If no free block found to be updated, insert a new free block + * to the end of the free list. + */ + if ( !p_CurrB && ((((uint64_t)(end-base)) & ((uint64_t)(alignment-1))) == 0) ) + { + if ((p_NewB = CreateFreeBlock(alignBase, end-base)) == NULL) + RETURN_ERROR(MAJOR, E_NO_MEMORY, NO_MSG); + + if (p_PrevB) + p_PrevB->p_Next = p_NewB; + else + p_MM->freeBlocks[i] = p_NewB; + } + + /* Update boundaries of the new free block */ + if ((alignment == 1) && !p_NewB) + { + if ( p_CurrB && base > p_CurrB->base ) + base = p_CurrB->base; + if ( p_CurrB && end < p_CurrB->end ) + end = p_CurrB->end; + } + } + + return (E_OK); +} + +/**************************************************************** + * Routine: CutFree + * + * Description: + * Cuts a free block from holdBase to holdEnd from the free lists. + * That is, it updates all free lists of the MM object do + * not include a block of memory from holdBase to holdEnd. + * For each free lists it seek for a free block that holds + * either holdBase or holdEnd. If such block is found it updates it. + * + * Arguments: + * p_MM - pointer to the MM object + * holdBase - base address of the allocated block + * holdEnd - end address of the allocated block + * + * Return value: + * E_OK is returned on success, + * otherwise returns an error code. + * + ****************************************************************/ +static t_Error CutFree(t_MM *p_MM, uint64_t holdBase, uint64_t holdEnd) +{ + t_FreeBlock *p_PrevB, *p_CurrB, *p_NewB; + uint64_t alignBase, base, end; + uint64_t alignment; + int i; + + for (i=0; i <= MM_MAX_ALIGNMENT; i++) + { + p_PrevB = p_NewB = 0; + p_CurrB = p_MM->freeBlocks[i]; + + alignment = (uint64_t)(0x1 << i); + alignBase = MAKE_ALIGNED(holdEnd, alignment); + + while ( p_CurrB ) + { + base = p_CurrB->base; + end = p_CurrB->end; + + if ( (holdBase <= base) && (holdEnd <= end) && (holdEnd > base) ) + { + if ( alignBase >= end || + (alignBase < end && ((end-alignBase) < alignment)) ) + { + if (p_PrevB) + p_PrevB->p_Next = p_CurrB->p_Next; + else + p_MM->freeBlocks[i] = p_CurrB->p_Next; + XX_Free(p_CurrB); + } + else + { + p_CurrB->base = alignBase; + } + break; + } + else if ( (holdBase > base) && (holdEnd <= end) ) + { + if ( (holdBase-base) >= alignment ) + { + if ( (alignBase < end) && ((end-alignBase) >= alignment) ) + { + if ((p_NewB = CreateFreeBlock(alignBase, end-alignBase)) == NULL) + RETURN_ERROR(MAJOR, E_NO_MEMORY, NO_MSG); + p_NewB->p_Next = p_CurrB->p_Next; + p_CurrB->p_Next = p_NewB; + } + p_CurrB->end = holdBase; + } + else if ( (alignBase < end) && ((end-alignBase) >= alignment) ) + { + p_CurrB->base = alignBase; + } + else + { + if (p_PrevB) + p_PrevB->p_Next = p_CurrB->p_Next; + else + p_MM->freeBlocks[i] = p_CurrB->p_Next; + XX_Free(p_CurrB); + } + break; + } + else + { + p_PrevB = p_CurrB; + p_CurrB = p_CurrB->p_Next; + } + } + } + + return (E_OK); +} + +/**************************************************************** + * Routine: AddBusy + * + * Description: + * Adds a new busy block to the list of busy blocks. Note, + * that all busy blocks are ordered by their base address in + * the busy list. + * + * Arguments: + * MM - handler to the MM object + * p_NewBusyB - pointer to the a busy block + * + * Return value: + * None. + * + ****************************************************************/ +static void AddBusy(t_MM *p_MM, t_BusyBlock *p_NewBusyB) +{ + t_BusyBlock *p_CurrBusyB, *p_PrevBusyB; + + /* finds a place of a new busy block in the list of busy blocks */ + p_PrevBusyB = 0; + p_CurrBusyB = p_MM->busyBlocks; + + while ( p_CurrBusyB && p_NewBusyB->base > p_CurrBusyB->base ) + { + p_PrevBusyB = p_CurrBusyB; + p_CurrBusyB = p_CurrBusyB->p_Next; + } + + /* insert the new busy block into the list of busy blocks */ + if ( p_CurrBusyB ) + p_NewBusyB->p_Next = p_CurrBusyB; + if ( p_PrevBusyB ) + p_PrevBusyB->p_Next = p_NewBusyB; + else + p_MM->busyBlocks = p_NewBusyB; +} + +/**************************************************************** + * Routine: CutBusy + * + * Description: + * Cuts a block from base to end from the list of busy blocks. + * This is done by updating the list of busy blocks do not + * include a given block, that block is going to be free. If a + * given block is a part of some other busy block, so that + * busy block is updated. If there are number of busy blocks + * included in the given block, so all that blocks are removed + * from the busy list and the end blocks are updated. + * If the given block devides some block into two parts, a new + * busy block is added to the busy list. + * + * Arguments: + * p_MM - pointer to the MM object + * base - base address of a given busy block + * end - end address of a given busy block + * + * Return value: + * E_OK on success, E_NOMEMORY otherwise. + * + ****************************************************************/ +static t_Error CutBusy(t_MM *p_MM, uint64_t base, uint64_t end) +{ + t_BusyBlock *p_CurrB, *p_PrevB, *p_NewB; + + p_CurrB = p_MM->busyBlocks; + p_PrevB = p_NewB = 0; + + while ( p_CurrB ) + { + if ( base < p_CurrB->end ) + { + if ( end > p_CurrB->end ) + { + t_BusyBlock *p_NextB; + while ( p_CurrB->p_Next && end >= p_CurrB->p_Next->end ) + { + p_NextB = p_CurrB->p_Next; + p_CurrB->p_Next = p_CurrB->p_Next->p_Next; + XX_Free(p_NextB); + } + + p_NextB = p_CurrB->p_Next; + if ( p_NextB && end > p_NextB->base ) + { + p_NextB->base = end; + } + } + + if ( base <= p_CurrB->base ) + { + if ( end < p_CurrB->end && end > p_CurrB->base ) + { + p_CurrB->base = end; + } + else if ( end >= p_CurrB->end ) + { + if ( p_PrevB ) + p_PrevB->p_Next = p_CurrB->p_Next; + else + p_MM->busyBlocks = p_CurrB->p_Next; + XX_Free(p_CurrB); + } + } + else + { + if ( end < p_CurrB->end && end > p_CurrB->base ) + { + if ((p_NewB = CreateBusyBlock(end, + p_CurrB->end-end, + p_CurrB->name)) == NULL) + RETURN_ERROR(MAJOR, E_NO_MEMORY, NO_MSG); + p_NewB->p_Next = p_CurrB->p_Next; + p_CurrB->p_Next = p_NewB; + } + p_CurrB->end = base; + } + break; + } + else + { + p_PrevB = p_CurrB; + p_CurrB = p_CurrB->p_Next; + } + } + + return (E_OK); +} + +/**************************************************************** + * Routine: MmGetGreaterAlignment + * + * Description: + * Allocates a block of memory according to the given size + * and the alignment. That routine is called from the MM_Get + * routine if the required alignment is greater then MM_MAX_ALIGNMENT. + * In that case, it goes over free blocks of 64 byte align list + * and checks if it has the required size of bytes of the required + * alignment. If no blocks found returns ILLEGAL_BASE. + * After the block is found and data is allocated, it calls + * the internal CutFree routine to update all free lists + * do not include a just allocated block. Of course, each + * free list contains a free blocks with the same alignment. + * It is also creates a busy block that holds + * information about an allocated block. + * + * Arguments: + * MM - handle to the MM object + * size - size of the MM + * alignment - index as a power of two defines + * a required alignment that is greater then 64. + * name - the name that specifies an allocated block. + * + * Return value: + * base address of an allocated block. + * ILLEGAL_BASE if can't allocate a block + * + ****************************************************************/ +static uint64_t MmGetGreaterAlignment(t_MM *p_MM, uint64_t size, uint64_t alignment, char* name) +{ + t_FreeBlock *p_FreeB; + t_BusyBlock *p_NewBusyB; + uint64_t holdBase, holdEnd, alignBase = 0; + + /* goes over free blocks of the 64 byte alignment list + and look for a block of the suitable size and + base address according to the alignment. */ + p_FreeB = p_MM->freeBlocks[MM_MAX_ALIGNMENT]; + + while ( p_FreeB ) + { + alignBase = MAKE_ALIGNED(p_FreeB->base, alignment); + + /* the block is found if the aligned base inside the block + * and has the anough size. */ + if ( alignBase >= p_FreeB->base && + alignBase < p_FreeB->end && + size <= (p_FreeB->end - alignBase) ) + break; + else + p_FreeB = p_FreeB->p_Next; + } + + /* If such block isn't found */ + if ( !p_FreeB ) + return (uint64_t)(ILLEGAL_BASE); + + holdBase = alignBase; + holdEnd = alignBase + size; + + /* init a new busy block */ + if ((p_NewBusyB = CreateBusyBlock(holdBase, size, name)) == NULL) + return (uint64_t)(ILLEGAL_BASE); + + /* calls Update routine to update a lists of free blocks */ + if ( CutFree ( p_MM, holdBase, holdEnd ) != E_OK ) + return (uint64_t)(ILLEGAL_BASE); + + /* insert the new busy block into the list of busy blocks */ + AddBusy ( p_MM, p_NewBusyB ); + + return (holdBase); +} + + +/********************************************************************** + * MM API routines set * + **********************************************************************/ + +/*****************************************************************************/ +t_Error MM_Init(t_Handle *h_MM, uint64_t base, uint64_t size) +{ + t_MM *p_MM; + uint64_t newBase, newSize; + int i; + + if (!size) + { + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Size (should be positive)")); + } + + /* Initializes a new MM object */ + p_MM = (t_MM *)XX_Malloc(sizeof(t_MM)); + if (!p_MM) + { + RETURN_ERROR(MAJOR, E_NO_MEMORY, NO_MSG); + } + + p_MM->h_Spinlock = XX_InitSpinlock(); + if (!p_MM->h_Spinlock) + { + XX_Free(p_MM); + RETURN_ERROR(MAJOR, E_NO_MEMORY, ("MM spinlock!")); + } + + /* initializes a new memory block */ + if ((p_MM->memBlocks = CreateNewBlock(base, size)) == NULL) + RETURN_ERROR(MAJOR, E_NO_MEMORY, NO_MSG); + + /* A busy list is empty */ + p_MM->busyBlocks = 0; + + /*Initializes a new free block for each free list*/ + for (i=0; i <= MM_MAX_ALIGNMENT; i++) + { + newBase = MAKE_ALIGNED( base, (0x1 << i) ); + newSize = size - (newBase - base); + + if ((p_MM->freeBlocks[i] = CreateFreeBlock(newBase, newSize)) == NULL) + RETURN_ERROR(MAJOR, E_NO_MEMORY, NO_MSG); + } + + *h_MM = p_MM; + + return (E_OK); +} + +/*****************************************************************************/ +void MM_Free(t_Handle h_MM) +{ + t_MM *p_MM = (t_MM *)h_MM; + t_MemBlock *p_MemBlock; + t_BusyBlock *p_BusyBlock; + t_FreeBlock *p_FreeBlock; + void *p_Block; + int i; + + ASSERT_COND(p_MM); + + /* release memory allocated for busy blocks */ + p_BusyBlock = p_MM->busyBlocks; + while ( p_BusyBlock ) + { + p_Block = p_BusyBlock; + p_BusyBlock = p_BusyBlock->p_Next; + XX_Free(p_Block); + } + + /* release memory allocated for free blocks */ + for (i=0; i <= MM_MAX_ALIGNMENT; i++) + { + p_FreeBlock = p_MM->freeBlocks[i]; + while ( p_FreeBlock ) + { + p_Block = p_FreeBlock; + p_FreeBlock = p_FreeBlock->p_Next; + XX_Free(p_Block); + } + } + + /* release memory allocated for memory blocks */ + p_MemBlock = p_MM->memBlocks; + while ( p_MemBlock ) + { + p_Block = p_MemBlock; + p_MemBlock = p_MemBlock->p_Next; + XX_Free(p_Block); + } + + if (p_MM->h_Spinlock) + XX_FreeSpinlock(p_MM->h_Spinlock); + + /* release memory allocated for MM object itself */ + XX_Free(p_MM); +} + +/*****************************************************************************/ +uint64_t MM_Get(t_Handle h_MM, uint64_t size, uint64_t alignment, char* name) +{ + t_MM *p_MM = (t_MM *)h_MM; + t_FreeBlock *p_FreeB; + t_BusyBlock *p_NewBusyB; + uint64_t holdBase, holdEnd, j, i = 0; + uint32_t intFlags; + + SANITY_CHECK_RETURN_VALUE(p_MM, E_INVALID_HANDLE, (uint64_t)ILLEGAL_BASE); + + /* checks that alignment value is greater then zero */ + if (alignment == 0) + { + alignment = 1; + } + + j = alignment; + + /* checks if alignment is a power of two, if it correct and if the + required size is multiple of the given alignment. */ + while ((j & 0x1) == 0) + { + i++; + j = j >> 1; + } + + /* if the given alignment isn't power of two, returns an error */ + if (j != 1) + { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("alignment (should be power of 2)")); + return (uint64_t)ILLEGAL_BASE; + } + + if (i > MM_MAX_ALIGNMENT) + { + return (MmGetGreaterAlignment(p_MM, size, alignment, name)); + } + + intFlags = XX_LockIntrSpinlock(p_MM->h_Spinlock); + /* look for a block of the size greater or equal to the required size. */ + p_FreeB = p_MM->freeBlocks[i]; + while ( p_FreeB && (p_FreeB->end - p_FreeB->base) < size ) + p_FreeB = p_FreeB->p_Next; + + /* If such block is found */ + if ( !p_FreeB ) + { + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + return (uint64_t)(ILLEGAL_BASE); + } + + holdBase = p_FreeB->base; + holdEnd = holdBase + size; + + /* init a new busy block */ + if ((p_NewBusyB = CreateBusyBlock(holdBase, size, name)) == NULL) + { + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + return (uint64_t)(ILLEGAL_BASE); + } + + /* calls Update routine to update a lists of free blocks */ + if ( CutFree ( p_MM, holdBase, holdEnd ) != E_OK ) + { + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + return (uint64_t)(ILLEGAL_BASE); + } + + /* insert the new busy block into the list of busy blocks */ + AddBusy ( p_MM, p_NewBusyB ); + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + + return (holdBase); +} + +/*****************************************************************************/ +uint64_t MM_GetForce(t_Handle h_MM, uint64_t base, uint64_t size, char* name) +{ + t_MM *p_MM = (t_MM *)h_MM; + t_FreeBlock *p_FreeB; + t_BusyBlock *p_NewBusyB; + uint32_t intFlags; + bool blockIsFree = FALSE; + + ASSERT_COND(p_MM); + + intFlags = XX_LockIntrSpinlock(p_MM->h_Spinlock); + p_FreeB = p_MM->freeBlocks[0]; /* The biggest free blocks are in the + free list with alignment 1 */ + + while ( p_FreeB ) + { + if ( base >= p_FreeB->base && (base+size) <= p_FreeB->end ) + { + blockIsFree = TRUE; + break; + } + else + p_FreeB = p_FreeB->p_Next; + } + + if ( !blockIsFree ) + { + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + return (uint64_t)(ILLEGAL_BASE); + } + + /* init a new busy block */ + if ((p_NewBusyB = CreateBusyBlock(base, size, name)) == NULL) + { + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + return (uint64_t)(ILLEGAL_BASE); + } + + /* calls Update routine to update a lists of free blocks */ + if ( CutFree ( p_MM, base, base+size ) != E_OK ) + { + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + return (uint64_t)(ILLEGAL_BASE); + } + + /* insert the new busy block into the list of busy blocks */ + AddBusy ( p_MM, p_NewBusyB ); + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + + return (base); +} + +/*****************************************************************************/ +uint64_t MM_GetForceMin(t_Handle h_MM, uint64_t size, uint64_t alignment, uint64_t min, char* name) +{ + t_MM *p_MM = (t_MM *)h_MM; + t_FreeBlock *p_FreeB; + t_BusyBlock *p_NewBusyB; + uint64_t holdBase, holdEnd, j = alignment, i=0; + uint32_t intFlags; + + ASSERT_COND(p_MM); + + /* checks if alignment is a power of two, if it correct and if the + required size is multiple of the given alignment. */ + while ((j & 0x1) == 0) + { + i++; + j = j >> 1; + } + + if ( (j != 1) || (i > MM_MAX_ALIGNMENT) ) + { + return (uint64_t)(ILLEGAL_BASE); + } + + intFlags = XX_LockIntrSpinlock(p_MM->h_Spinlock); + p_FreeB = p_MM->freeBlocks[i]; + + /* look for the first block that contains the minimum + base address. If the whole required size may be fit + into it, use that block, otherwise look for the next + block of size greater or equal to the required size. */ + while ( p_FreeB && (min >= p_FreeB->end)) + p_FreeB = p_FreeB->p_Next; + + /* If such block is found */ + if ( !p_FreeB ) + { + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + return (uint64_t)(ILLEGAL_BASE); + } + + /* if this block is large enough, use this block */ + holdBase = ( min <= p_FreeB->base ) ? p_FreeB->base : min; + if ((holdBase + size) <= p_FreeB->end ) + { + holdEnd = holdBase + size; + } + else + { + p_FreeB = p_FreeB->p_Next; + while ( p_FreeB && ((p_FreeB->end - p_FreeB->base) < size) ) + p_FreeB = p_FreeB->p_Next; + + /* If such block is found */ + if ( !p_FreeB ) + { + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + return (uint64_t)(ILLEGAL_BASE); + } + + holdBase = p_FreeB->base; + holdEnd = holdBase + size; + } + + /* init a new busy block */ + if ((p_NewBusyB = CreateBusyBlock(holdBase, size, name)) == NULL) + { + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + return (uint64_t)(ILLEGAL_BASE); + } + + /* calls Update routine to update a lists of free blocks */ + if ( CutFree( p_MM, holdBase, holdEnd ) != E_OK ) + { + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + return (uint64_t)(ILLEGAL_BASE); + } + + /* insert the new busy block into the list of busy blocks */ + AddBusy( p_MM, p_NewBusyB ); + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + + return (holdBase); +} + +/*****************************************************************************/ +uint64_t MM_Put(t_Handle h_MM, uint64_t base) +{ + t_MM *p_MM = (t_MM *)h_MM; + t_BusyBlock *p_BusyB, *p_PrevBusyB; + uint64_t size; + uint32_t intFlags; + + ASSERT_COND(p_MM); + + /* Look for a busy block that have the given base value. + * That block will be returned back to the memory. + */ + p_PrevBusyB = 0; + + intFlags = XX_LockIntrSpinlock(p_MM->h_Spinlock); + p_BusyB = p_MM->busyBlocks; + while ( p_BusyB && base != p_BusyB->base ) + { + p_PrevBusyB = p_BusyB; + p_BusyB = p_BusyB->p_Next; + } + + if ( !p_BusyB ) + { + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + return (uint64_t)(0); + } + + if ( AddFree( p_MM, p_BusyB->base, p_BusyB->end ) != E_OK ) + { + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + return (uint64_t)(0); + } + + /* removes a busy block form the list of busy blocks */ + if ( p_PrevBusyB ) + p_PrevBusyB->p_Next = p_BusyB->p_Next; + else + p_MM->busyBlocks = p_BusyB->p_Next; + + size = p_BusyB->end - p_BusyB->base; + + XX_Free(p_BusyB); + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + + return (size); +} + +/*****************************************************************************/ +uint64_t MM_PutForce(t_Handle h_MM, uint64_t base, uint64_t size) +{ + t_MM *p_MM = (t_MM *)h_MM; + uint64_t end = base + size; + uint32_t intFlags; + + ASSERT_COND(p_MM); + + intFlags = XX_LockIntrSpinlock(p_MM->h_Spinlock); + if ( CutBusy( p_MM, base, end ) != E_OK ) + { + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + return (uint64_t)(0); + } + + if ( AddFree ( p_MM, base, end ) != E_OK ) + { + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + return (uint64_t)(0); + } + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + + return (size); +} + +/*****************************************************************************/ +t_Error MM_Add(t_Handle h_MM, uint64_t base, uint64_t size) +{ + t_MM *p_MM = (t_MM *)h_MM; + t_MemBlock *p_MemB, *p_NewMemB; + t_Error errCode; + uint32_t intFlags; + + ASSERT_COND(p_MM); + + /* find a last block in the list of memory blocks to insert a new + * memory block + */ + intFlags = XX_LockIntrSpinlock(p_MM->h_Spinlock); + p_MemB = p_MM->memBlocks; + while ( p_MemB->p_Next ) + { + if ( base >= p_MemB->base && base < p_MemB->end ) + { + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + RETURN_ERROR(MAJOR, E_ALREADY_EXISTS, NO_MSG); + } + p_MemB = p_MemB->p_Next; + } + /* check for a last memory block */ + if ( base >= p_MemB->base && base < p_MemB->end ) + { + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + RETURN_ERROR(MAJOR, E_ALREADY_EXISTS, NO_MSG); + } + + /* create a new memory block */ + if ((p_NewMemB = CreateNewBlock(base, size)) == NULL) + { + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + RETURN_ERROR(MAJOR, E_NO_MEMORY, NO_MSG); + } + + /* append a new memory block to the end of the list of memory blocks */ + p_MemB->p_Next = p_NewMemB; + + /* add a new free block to the free lists */ + errCode = AddFree(p_MM, base, base+size); + if (errCode) + { + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + p_MemB->p_Next = 0; + XX_Free(p_NewMemB); + return ((t_Error)errCode); + } + XX_UnlockIntrSpinlock(p_MM->h_Spinlock, intFlags); + + return (E_OK); +} + +/*****************************************************************************/ +uint64_t MM_GetMemBlock(t_Handle h_MM, int index) +{ + t_MM *p_MM = (t_MM*)h_MM; + t_MemBlock *p_MemBlock; + int i; + + ASSERT_COND(p_MM); + + p_MemBlock = p_MM->memBlocks; + for (i=0; i < index; i++) + p_MemBlock = p_MemBlock->p_Next; + + if ( p_MemBlock ) + return (p_MemBlock->base); + else + return (uint64_t)ILLEGAL_BASE; +} + +/*****************************************************************************/ +uint64_t MM_GetBase(t_Handle h_MM) +{ + t_MM *p_MM = (t_MM*)h_MM; + t_MemBlock *p_MemBlock; + + ASSERT_COND(p_MM); + + p_MemBlock = p_MM->memBlocks; + return p_MemBlock->base; +} + +/*****************************************************************************/ +bool MM_InRange(t_Handle h_MM, uint64_t addr) +{ + t_MM *p_MM = (t_MM*)h_MM; + t_MemBlock *p_MemBlock; + + ASSERT_COND(p_MM); + + p_MemBlock = p_MM->memBlocks; + + if ((addr >= p_MemBlock->base) && (addr < p_MemBlock->end)) + return TRUE; + else + return FALSE; +} + +/*****************************************************************************/ +void MM_Dump(t_Handle h_MM, void *buff) +{ + t_MM *p_MM = (t_MM *)h_MM; + t_FreeBlock *p_FreeB; + t_BusyBlock *p_BusyB; + int i; + + p_BusyB = p_MM->busyBlocks; + Sprint(buff, "List of busy blocks:\n"); + while (p_BusyB) + { + Sprint(buff, "\t0x%p: (%s: b=0x%lx, e=0x%lx)\n", + p_BusyB, p_BusyB->name, p_BusyB->base, p_BusyB->end ); + p_BusyB = p_BusyB->p_Next; + } + + Sprint(buff, "\nLists of free blocks according to alignment:\n"); + for (i=0; i <= MM_MAX_ALIGNMENT; i++) + { + Sprint(buff, "%d alignment:\n", (0x1 << i)); + p_FreeB = p_MM->freeBlocks[i]; + while (p_FreeB) + { + Sprint(buff, "\t0x%p: (b=0x%lx, e=0x%lx)\n", + p_FreeB, p_FreeB->base, p_FreeB->end); + p_FreeB = p_FreeB->p_Next; + } + Sprint(buff, "\n"); + } +} --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/etc/mm.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/etc/mm.h @@ -0,0 +1,101 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************** + * + * File: mm.h + * + * + * Description: + * MM (Memory Management) object definitions. + * It also includes definitions of the Free Block, Busy Block + * and Memory Block structures used by the MM object. + * + ****************************************************************/ + +#ifndef __MM_H +#define __MM_H + + +#include "mm_ext.h" + +#define __ERR_MODULE__ MODULE_MM + + +#define MAKE_ALIGNED(addr, align) \ + (((uint64_t)(addr) + ((align) - 1)) & (~(((uint64_t)align) - 1))) + + +/* t_MemBlock data stucutre defines parameters of the Memory Block */ +typedef struct t_MemBlock +{ + struct t_MemBlock *p_Next; /* Pointer to the next memory block */ + + uint64_t base; /* Base address of the memory block */ + uint64_t end; /* End address of the memory block */ +} t_MemBlock; + + +/* t_FreeBlock data stucutre defines parameters of the Free Block */ +typedef struct t_FreeBlock +{ + struct t_FreeBlock *p_Next; /* Pointer to the next free block */ + + uint64_t base; /* Base address of the block */ + uint64_t end; /* End address of the block */ +} t_FreeBlock; + + +/* t_BusyBlock data stucutre defines parameters of the Busy Block */ +typedef struct t_BusyBlock +{ + struct t_BusyBlock *p_Next; /* Pointer to the next free block */ + + uint64_t base; /* Base address of the block */ + uint64_t end; /* End address of the block */ + char name[MM_MAX_NAME_LEN]; /* That block of memory was allocated for + something specified by the Name */ +} t_BusyBlock; + + +/* t_MM data structure defines parameters of the MM object */ +typedef struct t_MM +{ + t_MemBlock *memBlocks; /* List of memory blocks (Memory list) */ + t_BusyBlock *busyBlocks; /* List of busy blocks (Busy list) */ + t_FreeBlock *freeBlocks[MM_MAX_ALIGNMENT + 1]; + /* Alignment lists of free blocks (Free lists) */ + t_Handle h_Spinlock; +} t_MM; + + +#endif /* __MM_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/etc/sprint.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/etc/sprint.c @@ -0,0 +1,81 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/*------------------------------------------------------*/ +/* File: sprint.c */ +/* */ +/* Description: */ +/* Debug routines (externals) */ +/*------------------------------------------------------*/ +#include "string_ext.h" +#include "stdlib_ext.h" +#include "ctype_ext.h" +#include "stdarg_ext.h" +#include "sprint_ext.h" +#include "std_ext.h" +#include "xx_ext.h" + + +int Sprint(char * buf, const char *fmt, ...) +{ + va_list args; + int i; + + va_start(args, fmt); + i=vsprintf(buf,fmt,args); + va_end(args); + return i; +} + +int Snprint(char * buf, uint32_t size, const char *fmt, ...) +{ + va_list args; + int i; + + va_start(args, fmt); + i=vsnprintf(buf,size,fmt,args); + va_end(args); + return i; +} + +#ifndef NCSW_VXWORKS +int Sscan(const char * buf, const char * fmt, ...) +{ + va_list args; + int i; + + va_start(args,fmt); + i = vsscanf(buf,fmt,args); + va_end(args); + return i; +} +#endif /* NCSW_VXWORKS */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/Peripherals/crc_mac_addr_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/Peripherals/crc_mac_addr_ext.h @@ -0,0 +1,363 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/*------------------------------------------------------*/ +/* */ +/* File: crc_mac_addr_ext.h */ +/* */ +/* Description: */ +/* Define a macro that calculate the crc value of */ +/* an Ethernet MAC address (48 bitd address */ +/*------------------------------------------------------*/ + +#ifndef __crc_mac_addr_ext_h +#define __crc_mac_addr_ext_h + +#include "std_ext.h" + + +static uint32_t crc_table[256] = +{ + 0x00000000, + 0x77073096, + 0xee0e612c, + 0x990951ba, + 0x076dc419, + 0x706af48f, + 0xe963a535, + 0x9e6495a3, + 0x0edb8832, + 0x79dcb8a4, + 0xe0d5e91e, + 0x97d2d988, + 0x09b64c2b, + 0x7eb17cbd, + 0xe7b82d07, + 0x90bf1d91, + 0x1db71064, + 0x6ab020f2, + 0xf3b97148, + 0x84be41de, + 0x1adad47d, + 0x6ddde4eb, + 0xf4d4b551, + 0x83d385c7, + 0x136c9856, + 0x646ba8c0, + 0xfd62f97a, + 0x8a65c9ec, + 0x14015c4f, + 0x63066cd9, + 0xfa0f3d63, + 0x8d080df5, + 0x3b6e20c8, + 0x4c69105e, + 0xd56041e4, + 0xa2677172, + 0x3c03e4d1, + 0x4b04d447, + 0xd20d85fd, + 0xa50ab56b, + 0x35b5a8fa, + 0x42b2986c, + 0xdbbbc9d6, + 0xacbcf940, + 0x32d86ce3, + 0x45df5c75, + 0xdcd60dcf, + 0xabd13d59, + 0x26d930ac, + 0x51de003a, + 0xc8d75180, + 0xbfd06116, + 0x21b4f4b5, + 0x56b3c423, + 0xcfba9599, + 0xb8bda50f, + 0x2802b89e, + 0x5f058808, + 0xc60cd9b2, + 0xb10be924, + 0x2f6f7c87, + 0x58684c11, + 0xc1611dab, + 0xb6662d3d, + 0x76dc4190, + 0x01db7106, + 0x98d220bc, + 0xefd5102a, + 0x71b18589, + 0x06b6b51f, + 0x9fbfe4a5, + 0xe8b8d433, + 0x7807c9a2, + 0x0f00f934, + 0x9609a88e, + 0xe10e9818, + 0x7f6a0dbb, + 0x086d3d2d, + 0x91646c97, + 0xe6635c01, + 0x6b6b51f4, + 0x1c6c6162, + 0x856530d8, + 0xf262004e, + 0x6c0695ed, + 0x1b01a57b, + 0x8208f4c1, + 0xf50fc457, + 0x65b0d9c6, + 0x12b7e950, + 0x8bbeb8ea, + 0xfcb9887c, + 0x62dd1ddf, + 0x15da2d49, + 0x8cd37cf3, + 0xfbd44c65, + 0x4db26158, + 0x3ab551ce, + 0xa3bc0074, + 0xd4bb30e2, + 0x4adfa541, + 0x3dd895d7, + 0xa4d1c46d, + 0xd3d6f4fb, + 0x4369e96a, + 0x346ed9fc, + 0xad678846, + 0xda60b8d0, + 0x44042d73, + 0x33031de5, + 0xaa0a4c5f, + 0xdd0d7cc9, + 0x5005713c, + 0x270241aa, + 0xbe0b1010, + 0xc90c2086, + 0x5768b525, + 0x206f85b3, + 0xb966d409, + 0xce61e49f, + 0x5edef90e, + 0x29d9c998, + 0xb0d09822, + 0xc7d7a8b4, + 0x59b33d17, + 0x2eb40d81, + 0xb7bd5c3b, + 0xc0ba6cad, + 0xedb88320, + 0x9abfb3b6, + 0x03b6e20c, + 0x74b1d29a, + 0xead54739, + 0x9dd277af, + 0x04db2615, + 0x73dc1683, + 0xe3630b12, + 0x94643b84, + 0x0d6d6a3e, + 0x7a6a5aa8, + 0xe40ecf0b, + 0x9309ff9d, + 0x0a00ae27, + 0x7d079eb1, + 0xf00f9344, + 0x8708a3d2, + 0x1e01f268, + 0x6906c2fe, + 0xf762575d, + 0x806567cb, + 0x196c3671, + 0x6e6b06e7, + 0xfed41b76, + 0x89d32be0, + 0x10da7a5a, + 0x67dd4acc, + 0xf9b9df6f, + 0x8ebeeff9, + 0x17b7be43, + 0x60b08ed5, + 0xd6d6a3e8, + 0xa1d1937e, + 0x38d8c2c4, + 0x4fdff252, + 0xd1bb67f1, + 0xa6bc5767, + 0x3fb506dd, + 0x48b2364b, + 0xd80d2bda, + 0xaf0a1b4c, + 0x36034af6, + 0x41047a60, + 0xdf60efc3, + 0xa867df55, + 0x316e8eef, + 0x4669be79, + 0xcb61b38c, + 0xbc66831a, + 0x256fd2a0, + 0x5268e236, + 0xcc0c7795, + 0xbb0b4703, + 0x220216b9, + 0x5505262f, + 0xc5ba3bbe, + 0xb2bd0b28, + 0x2bb45a92, + 0x5cb36a04, + 0xc2d7ffa7, + 0xb5d0cf31, + 0x2cd99e8b, + 0x5bdeae1d, + 0x9b64c2b0, + 0xec63f226, + 0x756aa39c, + 0x026d930a, + 0x9c0906a9, + 0xeb0e363f, + 0x72076785, + 0x05005713, + 0x95bf4a82, + 0xe2b87a14, + 0x7bb12bae, + 0x0cb61b38, + 0x92d28e9b, + 0xe5d5be0d, + 0x7cdcefb7, + 0x0bdbdf21, + 0x86d3d2d4, + 0xf1d4e242, + 0x68ddb3f8, + 0x1fda836e, + 0x81be16cd, + 0xf6b9265b, + 0x6fb077e1, + 0x18b74777, + 0x88085ae6, + 0xff0f6a70, + 0x66063bca, + 0x11010b5c, + 0x8f659eff, + 0xf862ae69, + 0x616bffd3, + 0x166ccf45, + 0xa00ae278, + 0xd70dd2ee, + 0x4e048354, + 0x3903b3c2, + 0xa7672661, + 0xd06016f7, + 0x4969474d, + 0x3e6e77db, + 0xaed16a4a, + 0xd9d65adc, + 0x40df0b66, + 0x37d83bf0, + 0xa9bcae53, + 0xdebb9ec5, + 0x47b2cf7f, + 0x30b5ffe9, + 0xbdbdf21c, + 0xcabac28a, + 0x53b39330, + 0x24b4a3a6, + 0xbad03605, + 0xcdd70693, + 0x54de5729, + 0x23d967bf, + 0xb3667a2e, + 0xc4614ab8, + 0x5d681b02, + 0x2a6f2b94, + 0xb40bbe37, + 0xc30c8ea1, + 0x5a05df1b, + 0x2d02ef8d +}; + + +#define GET_MAC_ADDR_CRC(addr, crc) \ +{ \ + uint32_t i; \ + uint8_t data; \ + \ + /* CRC calculation */ \ + crc = 0xffffffff; \ + for (i=0; i < 6; i++) \ + { \ + data = (uint8_t)(addr >> ((5-i)*8)); \ + crc = crc^data; \ + crc = crc_table[crc&0xff] ^ (crc>>8); \ + } \ +} \ + +/* Define a macro for getting the mirrored value of */ +/* a byte size number. (0x11010011 --> 0x11001011) */ +/* Sometimes the mirrored value of the CRC is required */ +static __inline__ uint8_t GetMirror(uint8_t n) +{ + uint8_t mirror[16] = + { + 0x00, + 0x08, + 0x04, + 0x0c, + 0x02, + 0x0a, + 0x06, + 0x0e, + 0x01, + 0x09, + 0x05, + 0x0d, + 0x03, + 0x0b, + 0x07, + 0x0f + }; + return ((uint8_t)(((mirror[n & 0x0f] << 4) | (mirror[n >> 4])))); +} + +static __inline__ uint32_t GetMirror32(uint32_t n) +{ + return (((uint32_t)GetMirror((uint8_t)(n))<<24) | + ((uint32_t)GetMirror((uint8_t)(n>>8))<<16) | + ((uint32_t)GetMirror((uint8_t)(n>>16))<<8) | + ((uint32_t)GetMirror((uint8_t)(n>>24)))); +} + +#define MIRROR GetMirror +#define MIRROR_32 GetMirror32 + + +#endif /* __crc_mac_addr_ext_h */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/Peripherals/dpaa_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/Peripherals/dpaa_ext.h @@ -0,0 +1,206 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File dpaa_ext.h + + @Description DPAA Application Programming Interface. +*//***************************************************************************/ +#ifndef __DPAA_EXT_H +#define __DPAA_EXT_H + +#include "std_ext.h" +#include "error_ext.h" + + +/**************************************************************************//** + @Group DPAA_grp Data Path Acceleration Architecture API + + @Description DPAA API functions, definitions and enums. + + @{ +*//***************************************************************************/ + +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(push,1) +#endif /* defined(__MWERKS__) && ... */ +#define MEM_MAP_START + +/**************************************************************************//** + @Description Frame descriptor +*//***************************************************************************/ +typedef _Packed struct t_DpaaFD { + volatile uint32_t id; /**< FD id */ + volatile uint32_t addrl; /**< Data Address */ + volatile uint32_t length; /**< Frame length */ + volatile uint32_t status; /**< FD status */ +} _PackedType t_DpaaFD; + +/**************************************************************************//** + @Description enum for defining frame format +*//***************************************************************************/ +typedef enum e_DpaaFDFormatType { + e_DPAA_FD_FORMAT_TYPE_SHORT_SBSF = 0x0, /**< Simple frame Single buffer; Offset and + small length (9b OFFSET, 20b LENGTH) */ + e_DPAA_FD_FORMAT_TYPE_LONG_SBSF = 0x2, /**< Simple frame, single buffer; big length + (29b LENGTH ,No OFFSET) */ + e_DPAA_FD_FORMAT_TYPE_SHORT_MBSF = 0x4, /**< Simple frame, Scatter Gather table; Offset + and small length (9b OFFSET, 20b LENGTH) */ + e_DPAA_FD_FORMAT_TYPE_LONG_MBSF = 0x6, /**< Simple frame, Scatter Gather table; + big length (29b LENGTH ,No OFFSET) */ + e_DPAA_FD_FORMAT_TYPE_COMPOUND = 0x1, /**< Compound Frame (29b CONGESTION-WEIGHT + No LENGTH or OFFSET) */ + e_DPAA_FD_FORMAT_TYPE_DUMMY +} e_DpaaFDFormatType; + +/**************************************************************************//** + @Collection Frame descriptor macros +*//***************************************************************************/ +#define DPAA_FD_DD_MASK 0xc0000000 /**< FD DD field mask */ +#define DPAA_FD_PID_MASK 0x3f000000 /**< FD PID field mask */ +#define DPAA_FD_ELIODN_MASK 0x0000f000 /**< FD ELIODN field mask */ +#define DPAA_FD_BPID_MASK 0x00ff0000 /**< FD BPID field mask */ +#define DPAA_FD_ADDRH_MASK 0x000000ff /**< FD ADDRH field mask */ +#define DPAA_FD_ADDRL_MASK 0xffffffff /**< FD ADDRL field mask */ +#define DPAA_FD_FORMAT_MASK 0xe0000000 /**< FD FORMAT field mask */ +#define DPAA_FD_OFFSET_MASK 0x1ff00000 /**< FD OFFSET field mask */ +#define DPAA_FD_LENGTH_MASK 0x000fffff /**< FD LENGTH field mask */ + +#define DPAA_FD_GET_DD(fd) ((((t_DpaaFD *)fd)->id & DPAA_FD_DD_MASK) >> (31-1)) /**< Macro to get FD DD field */ +#define DPAA_FD_GET_PID(fd) (((((t_DpaaFD *)fd)->id & DPAA_FD_PID_MASK) >> (31-7)) | \ + ((((t_DpaaFD *)fd)->id & DPAA_FD_ELIODN_MASK) >> (31-19-6))) /**< Macro to get FD PID field */ +#define DPAA_FD_GET_BPID(fd) ((((t_DpaaFD *)fd)->id & DPAA_FD_BPID_MASK) >> (31-15)) /**< Macro to get FD BPID field */ +#define DPAA_FD_GET_ADDRH(fd) (((t_DpaaFD *)fd)->id & DPAA_FD_ADDRH_MASK) /**< Macro to get FD ADDRH field */ +#define DPAA_FD_GET_ADDRL(fd) ((t_DpaaFD *)fd)->addrl /**< Macro to get FD ADDRL field */ +#define DPAA_FD_GET_PHYS_ADDR(fd) ((physAddress_t)(((uint64_t)DPAA_FD_GET_ADDRH(fd) << 32) | (uint64_t)DPAA_FD_GET_ADDRL(fd))) /**< Macro to get FD ADDR field */ +#define DPAA_FD_GET_FORMAT(fd) ((((t_DpaaFD *)fd)->length & DPAA_FD_FORMAT_MASK) >> (31-2)) /**< Macro to get FD FORMAT field */ +#define DPAA_FD_GET_OFFSET(fd) ((((t_DpaaFD *)fd)->length & DPAA_FD_OFFSET_MASK) >> (31-11)) /**< Macro to get FD OFFSET field */ +#define DPAA_FD_GET_LENGTH(fd) (((t_DpaaFD *)fd)->length & DPAA_FD_LENGTH_MASK) /**< Macro to get FD LENGTH field */ +#define DPAA_FD_GET_STATUS(fd) ((t_DpaaFD *)fd)->status /**< Macro to get FD STATUS field */ +#define DPAA_FD_GET_ADDR(fd) XX_PhysToVirt(DPAA_FD_GET_PHYS_ADDR(fd)) + +#define DPAA_FD_SET_DD(fd,val) (((t_DpaaFD *)fd)->id = ((((t_DpaaFD *)fd)->id & ~DPAA_FD_DD_MASK) | (((val) << (31-1)) & DPAA_FD_DD_MASK ))) /**< Macro to set FD DD field */ + /**< Macro to set FD PID field or LIODN offset*/ +#define DPAA_FD_SET_PID(fd,val) (((t_DpaaFD *)fd)->id = ((((t_DpaaFD *)fd)->id & ~(DPAA_FD_PID_MASK|DPAA_FD_ELIODN_MASK)) | ((((val) << (31-7)) & DPAA_FD_PID_MASK) | ((((val)>>6) << (31-19)) & DPAA_FD_ELIODN_MASK)))) +#define DPAA_FD_SET_BPID(fd,val) (((t_DpaaFD *)fd)->id = ((((t_DpaaFD *)fd)->id & ~DPAA_FD_BPID_MASK) | (((val) << (31-15)) & DPAA_FD_BPID_MASK))) /**< Macro to set FD BPID field */ +#define DPAA_FD_SET_ADDRH(fd,val) (((t_DpaaFD *)fd)->id = ((((t_DpaaFD *)fd)->id & ~DPAA_FD_ADDRH_MASK) | ((val) & DPAA_FD_ADDRH_MASK))) /**< Macro to set FD ADDRH field */ +#define DPAA_FD_SET_ADDRL(fd,val) ((t_DpaaFD *)fd)->addrl = (val) /**< Macro to set FD ADDRL field */ +#define DPAA_FD_SET_ADDR(fd,val) \ +do { \ + uint64_t physAddr = (uint64_t)(XX_VirtToPhys(val)); \ + DPAA_FD_SET_ADDRH(fd, ((uint32_t)(physAddr >> 32))); \ + DPAA_FD_SET_ADDRL(fd, (uint32_t)physAddr); \ +} while (0) /**< Macro to set FD ADDR field */ +#define DPAA_FD_SET_FORMAT(fd,val) (((t_DpaaFD *)fd)->length = ((((t_DpaaFD *)fd)->length & ~DPAA_FD_FORMAT_MASK) | (((val) << (31-2))& DPAA_FD_FORMAT_MASK))) /**< Macro to set FD FORMAT field */ +#define DPAA_FD_SET_OFFSET(fd,val) (((t_DpaaFD *)fd)->length = ((((t_DpaaFD *)fd)->length & ~DPAA_FD_OFFSET_MASK) | (((val) << (31-11))& DPAA_FD_OFFSET_MASK) )) /**< Macro to set FD OFFSET field */ +#define DPAA_FD_SET_LENGTH(fd,val) (((t_DpaaFD *)fd)->length = (((t_DpaaFD *)fd)->length & ~DPAA_FD_LENGTH_MASK) | ((val) & DPAA_FD_LENGTH_MASK)) /**< Macro to set FD LENGTH field */ +#define DPAA_FD_SET_STATUS(fd,val) ((t_DpaaFD *)fd)->status = (val) /**< Macro to set FD STATUS field */ +/* @} */ + +/**************************************************************************//** + @Description Frame Scatter/Gather Table Entry +*//***************************************************************************/ +typedef _Packed struct t_DpaaSGTE { + volatile uint32_t addrh; /**< Buffer Address high */ + volatile uint32_t addrl; /**< Buffer Address low */ + volatile uint32_t length; /**< Buffer length */ + volatile uint32_t offset; /**< SGTE offset */ +} _PackedType t_DpaaSGTE; + +#define DPAA_NUM_OF_SG_TABLE_ENTRY 16 + +/**************************************************************************//** + @Description Frame Scatter/Gather Table +*//***************************************************************************/ +typedef _Packed struct t_DpaaSGT { + t_DpaaSGTE tableEntry[DPAA_NUM_OF_SG_TABLE_ENTRY]; + /**< structure that hold the information about + a single S/G entry. */ +} _PackedType t_DpaaSGT; + +/**************************************************************************//** + @Description Compound Frame Table +*//***************************************************************************/ +typedef _Packed struct t_DpaaCompTbl { + t_DpaaSGTE outputBuffInfo; /**< structure that holds the information about + the compound-frame output buffer; + NOTE: this may point to a S/G table */ + t_DpaaSGTE inputBuffInfo; /**< structure that holds the information about + the compound-frame input buffer; + NOTE: this may point to a S/G table */ +} _PackedType t_DpaaCompTbl; + +/**************************************************************************//** + @Collection Frame Scatter/Gather Table Entry macros +*//***************************************************************************/ +#define DPAA_SGTE_ADDRH_MASK 0x000000ff /**< SGTE ADDRH field mask */ +#define DPAA_SGTE_ADDRL_MASK 0xffffffff /**< SGTE ADDRL field mask */ +#define DPAA_SGTE_E_MASK 0x80000000 /**< SGTE Extension field mask */ +#define DPAA_SGTE_F_MASK 0x40000000 /**< SGTE Final field mask */ +#define DPAA_SGTE_LENGTH_MASK 0x3fffffff /**< SGTE LENGTH field mask */ +#define DPAA_SGTE_BPID_MASK 0x00ff0000 /**< SGTE BPID field mask */ +#define DPAA_SGTE_OFFSET_MASK 0x00001fff /**< SGTE OFFSET field mask */ + +#define DPAA_SGTE_GET_ADDRH(sgte) (((t_DpaaSGTE *)sgte)->addrh & DPAA_SGTE_ADDRH_MASK) /**< Macro to get SGTE ADDRH field */ +#define DPAA_SGTE_GET_ADDRL(sgte) ((t_DpaaSGTE *)sgte)->addrl /**< Macro to get SGTE ADDRL field */ +#define DPAA_SGTE_GET_PHYS_ADDR(sgte) ((physAddress_t)(((uint64_t)DPAA_SGTE_GET_ADDRH(sgte) << 32) | (uint64_t)DPAA_SGTE_GET_ADDRL(sgte))) /**< Macro to get FD ADDR field */ +#define DPAA_SGTE_GET_EXTENSION(sgte) ((((t_DpaaSGTE *)sgte)->length & DPAA_SGTE_E_MASK) >> (31-0)) /**< Macro to get SGTE EXTENSION field */ +#define DPAA_SGTE_GET_FINAL(sgte) ((((t_DpaaSGTE *)sgte)->length & DPAA_SGTE_F_MASK) >> (31-1)) /**< Macro to get SGTE FINAL field */ +#define DPAA_SGTE_GET_LENGTH(sgte) (((t_DpaaSGTE *)sgte)->length & DPAA_SGTE_LENGTH_MASK) /**< Macro to get SGTE LENGTH field */ +#define DPAA_SGTE_GET_BPID(sgte) ((((t_DpaaSGTE *)sgte)->offset & DPAA_SGTE_BPID_MASK) >> (31-15)) /**< Macro to get SGTE BPID field */ +#define DPAA_SGTE_GET_OFFSET(sgte) (((t_DpaaSGTE *)sgte)->offset & DPAA_SGTE_OFFSET_MASK) /**< Macro to get SGTE OFFSET field */ +#define DPAA_SGTE_GET_ADDR(sgte) XX_PhysToVirt(DPAA_SGTE_GET_PHYS_ADDR(sgte)) + +#define DPAA_SGTE_SET_ADDRH(sgte,val) (((t_DpaaSGTE *)sgte)->addrh = ((((t_DpaaSGTE *)sgte)->addrh & ~DPAA_SGTE_ADDRH_MASK) | ((val) & DPAA_SGTE_ADDRH_MASK))) /**< Macro to set SGTE ADDRH field */ +#define DPAA_SGTE_SET_ADDRL(sgte,val) ((t_DpaaSGTE *)sgte)->addrl = (val) /**< Macro to set SGTE ADDRL field */ +#define DPAA_SGTE_SET_ADDR(sgte,val) \ +do { \ + uint64_t physAddr = (uint64_t)(XX_VirtToPhys(val)); \ + DPAA_SGTE_SET_ADDRH(sgte, ((uint32_t)(physAddr >> 32))); \ + DPAA_SGTE_SET_ADDRL(sgte, (uint32_t)physAddr); \ +} while (0) /**< Macro to set SGTE ADDR field */ +#define DPAA_SGTE_SET_EXTENSION(sgte,val) (((t_DpaaSGTE *)sgte)->length = ((((t_DpaaSGTE *)sgte)->length & ~DPAA_SGTE_E_MASK) | (((val) << (31-0))& DPAA_SGTE_E_MASK))) /**< Macro to set SGTE EXTENSION field */ +#define DPAA_SGTE_SET_FINAL(sgte,val) (((t_DpaaSGTE *)sgte)->length = ((((t_DpaaSGTE *)sgte)->length & ~DPAA_SGTE_F_MASK) | (((val) << (31-1))& DPAA_SGTE_F_MASK))) /**< Macro to set SGTE FINAL field */ +#define DPAA_SGTE_SET_LENGTH(sgte,val) (((t_DpaaSGTE *)sgte)->length = (((t_DpaaSGTE *)sgte)->length & ~DPAA_SGTE_LENGTH_MASK) | ((val) & DPAA_SGTE_LENGTH_MASK)) /**< Macro to set SGTE LENGTH field */ +#define DPAA_SGTE_SET_BPID(sgte,val) (((t_DpaaSGTE *)sgte)->offset = ((((t_DpaaSGTE *)sgte)->offset & ~DPAA_SGTE_BPID_MASK) | (((val) << (31-15))& DPAA_SGTE_BPID_MASK))) /**< Macro to set SGTE BPID field */ +#define DPAA_SGTE_SET_OFFSET(sgte,val) (((t_DpaaSGTE *)sgte)->offset = ((((t_DpaaSGTE *)sgte)->offset & ~DPAA_SGTE_OFFSET_MASK) | (((val) << (31-31))& DPAA_SGTE_OFFSET_MASK) )) /**< Macro to set SGTE OFFSET field */ +/* @} */ + +#define MEM_MAP_END +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(pop) +#endif /* defined(__MWERKS__) && ... */ + +/** @} */ /* end of DPAA_grp group */ + + +#endif /* __DPAA_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/Peripherals/fm_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/Peripherals/fm_ext.h @@ -0,0 +1,1347 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + @File fm_ext.h + + @Description FM Application Programming Interface. +*//***************************************************************************/ +#ifndef __FM_EXT +#define __FM_EXT + +#include "error_ext.h" +#include "std_ext.h" +#include "dpaa_ext.h" + + +/**************************************************************************//** + @Group FM_grp Frame Manager API + + @Description FM API functions, definitions and enums. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group FM_lib_grp FM library + + @Description FM API functions, definitions and enums + The FM module is the main driver module and is a mandatory module + for FM driver users. Before any further module initialization, + this module must be initialized. + The FM is a "singletone" module. It is responsible of the common + HW modules: FPM, DMA, common QMI, common BMI initializations and + run-time control routines. This module must be initialized always + when working with any of the FM modules. + NOTE - We assumes that the FML will be initialize only by core No. 0! + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Description enum for defining port types +*//***************************************************************************/ +typedef enum e_FmPortType { + e_FM_PORT_TYPE_OH_OFFLINE_PARSING = 0, /**< Offline parsing port (id's: 0-6, share id's with + host command, so must have exclusive id) */ + e_FM_PORT_TYPE_OH_HOST_COMMAND, /**< Host command port (id's: 0-6, share id's with + offline parsing ports, so must have exclusive id) */ + e_FM_PORT_TYPE_RX, /**< 1G Rx port (id's: 0-3) */ + e_FM_PORT_TYPE_RX_10G, /**< 10G Rx port (id's: 0) */ + e_FM_PORT_TYPE_TX, /**< 1G Tx port (id's: 0-3) */ + e_FM_PORT_TYPE_TX_10G, /**< 10G Tx port (id's: 0) */ + e_FM_PORT_TYPE_DUMMY +} e_FmPortType; + +/**************************************************************************//** + @Collection General FM defines +*//***************************************************************************/ +#define FM_MAX_NUM_OF_PARTITIONS 64 /**< Maximum number of partitions */ +#define FM_PHYS_ADDRESS_SIZE 6 /**< FM Physical address size */ +/* @} */ + + +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(push,1) +#endif /* defined(__MWERKS__) && ... */ +#define MEM_MAP_START + +/**************************************************************************//** + @Description FM physical Address +*//***************************************************************************/ +typedef _Packed struct t_FmPhysAddr { + volatile uint8_t high; /**< High part of the physical address */ + volatile uint32_t low; /**< Low part of the physical address */ +} _PackedType t_FmPhysAddr; + +/**************************************************************************//** + @Description Parse results memory layout +*//***************************************************************************/ +typedef _Packed struct t_FmPrsResult { + volatile uint8_t lpid; /**< Logical port id */ + volatile uint8_t shimr; /**< Shim header result */ + volatile uint16_t l2r; /**< Layer 2 result */ + volatile uint16_t l3r; /**< Layer 3 result */ + volatile uint8_t l4r; /**< Layer 4 result */ + volatile uint8_t cplan; /**< Classification plan id */ + volatile uint16_t nxthdr; /**< Next Header */ + volatile uint16_t cksum; /**< Checksum */ + volatile uint32_t lcv; /**< LCV */ + volatile uint8_t shim_off[3]; /**< Shim offset */ + volatile uint8_t eth_off; /**< ETH offset */ + volatile uint8_t llc_snap_off; /**< LLC_SNAP offset */ + volatile uint8_t vlan_off[2]; /**< VLAN offset */ + volatile uint8_t etype_off; /**< ETYPE offset */ + volatile uint8_t pppoe_off; /**< PPP offset */ + volatile uint8_t mpls_off[2]; /**< MPLS offset */ + volatile uint8_t ip_off[2]; /**< IP offset */ + volatile uint8_t gre_off; /**< GRE offset */ + volatile uint8_t l4_off; /**< Layer 4 offset */ + volatile uint8_t nxthdr_off; /**< Parser end point */ +} _PackedType t_FmPrsResult; + +/**************************************************************************//** + @Collection FM Parser results +*//***************************************************************************/ +#define FM_PR_L2_VLAN_STACK 0x00000100 /**< Parse Result: VLAN stack */ +#define FM_PR_L2_ETHERNET 0x00008000 /**< Parse Result: Ethernet*/ +#define FM_PR_L2_VLAN 0x00004000 /**< Parse Result: VLAN */ +#define FM_PR_L2_LLC_SNAP 0x00002000 /**< Parse Result: LLC_SNAP */ +#define FM_PR_L2_MPLS 0x00001000 /**< Parse Result: MPLS */ +#define FM_PR_L2_PPPoE 0x00000800 /**< Parse Result: PPPoE */ +/* @} */ + +/**************************************************************************//** + @Collection FM Frame descriptor macros +*//***************************************************************************/ +#define FM_FD_CMD_FCO 0x80000000 /**< Frame queue Context Override */ +#define FM_FD_CMD_RPD 0x40000000 /**< Read Prepended Data */ +#define FM_FD_CMD_UPD 0x20000000 /**< Update Prepended Data */ +#define FM_FD_CMD_DTC 0x10000000 /**< Do L4 Checksum */ +#define FM_FD_CMD_DCL4C 0x10000000 /**< Didn't calculate L4 Checksum */ +#define FM_FD_CMD_CFQ 0x00ffffff /**< Confirmation Frame Queue */ + +#define FM_FD_TX_STATUS_ERR_MASK 0x07000000 /**< TX Error FD bits */ +#define FM_FD_RX_STATUS_ERR_MASK 0x070ee3f8 /**< RX Error FD bits */ +/* @} */ + +/**************************************************************************//** + @Description Context A +*//***************************************************************************/ +typedef _Packed struct t_FmContextA { + volatile uint32_t command; /**< ContextA Command */ + volatile uint8_t res0[4]; /**< ContextA Reserved bits */ +} _PackedType t_FmContextA; + +/**************************************************************************//** + @Description Context B +*//***************************************************************************/ +typedef uint32_t t_FmContextB; + +/**************************************************************************//** + @Collection Context A macros +*//***************************************************************************/ +#define FM_CONTEXTA_OVERRIDE_MASK 0x80000000 +#define FM_CONTEXTA_ICMD_MASK 0x40000000 +#define FM_CONTEXTA_A1_VALID_MASK 0x20000000 +#define FM_CONTEXTA_MACCMD_MASK 0x00ff0000 +#define FM_CONTEXTA_MACCMD_VALID_MASK 0x00800000 +#define FM_CONTEXTA_MACCMD_SECURED_MASK 0x00100000 +#define FM_CONTEXTA_MACCMD_SC_MASK 0x000f0000 +#define FM_CONTEXTA_A1_MASK 0x0000ffff + +#define FM_CONTEXTA_GET_OVERRIDE(contextA) ((((t_FmContextA *)contextA)->command & FM_CONTEXTA_OVERRIDE_MASK) >> (31-0)) +#define FM_CONTEXTA_GET_ICMD(contextA) ((((t_FmContextA *)contextA)->command & FM_CONTEXTA_ICMD_MASK) >> (31-1)) +#define FM_CONTEXTA_GET_A1_VALID(contextA) ((((t_FmContextA *)contextA)->command & FM_CONTEXTA_A1_VALID_MASK) >> (31-2)) +#define FM_CONTEXTA_GET_A1(contextA) ((((t_FmContextA *)contextA)->command & FM_CONTEXTA_A1_MASK) >> (31-31)) +#define FM_CONTEXTA_GET_MACCMD(contextA) ((((t_FmContextA *)contextA)->command & FM_CONTEXTA_MACCMD_MASK) >> (31-15)) +#define FM_CONTEXTA_GET_MACCMD_VALID(contextA) ((((t_FmContextA *)contextA)->command & FM_CONTEXTA_MACCMD_VALID_MASK) >> (31-8)) +#define FM_CONTEXTA_GET_MACCMD_SECURED(contextA) ((((t_FmContextA *)contextA)->command & FM_CONTEXTA_MACCMD_SECURED_MASK) >> (31-11)) +#define FM_CONTEXTA_GET_MACCMD_SECURE_CHANNEL(contextA) ((((t_FmContextA *)contextA)->command & FM_CONTEXTA_MACCMD_SC_MASK) >> (31-15)) + +#define FM_CONTEXTA_SET_OVERRIDE(contextA,val) (((t_FmContextA *)contextA)->command = (uint32_t)((((t_FmContextA *)contextA)->command & ~FM_CONTEXTA_OVERRIDE_MASK) | (((uint32_t)(val) << (31-0)) & FM_CONTEXTA_OVERRIDE_MASK) )) +#define FM_CONTEXTA_SET_ICMD(contextA,val) (((t_FmContextA *)contextA)->command = (uint32_t)((((t_FmContextA *)contextA)->command & ~FM_CONTEXTA_ICMD_MASK) | (((val) << (31-1)) & FM_CONTEXTA_ICMD_MASK) )) +#define FM_CONTEXTA_SET_A1_VALID(contextA,val) (((t_FmContextA *)contextA)->command = (uint32_t)((((t_FmContextA *)contextA)->command & ~FM_CONTEXTA_A1_VALID_MASK) | (((val) << (31-2)) & FM_CONTEXTA_A1_VALID_MASK) )) +#define FM_CONTEXTA_SET_A1(contextA,val) (((t_FmContextA *)contextA)->command = (uint32_t)((((t_FmContextA *)contextA)->command & ~FM_CONTEXTA_A1_MASK) | (((val) << (31-31)) & FM_CONTEXTA_A1_MASK) )) +#define FM_CONTEXTA_SET_MACCMD(contextA,val) (((t_FmContextA *)contextA)->command = (uint32_t)((((t_FmContextA *)contextA)->command & ~FM_CONTEXTA_MACCMD_MASK) | (((val) << (31-15)) & FM_CONTEXTA_MACCMD_MASK) )) +#define FM_CONTEXTA_SET_MACCMD_VALID(contextA,val) (((t_FmContextA *)contextA)->command = (uint32_t)((((t_FmContextA *)contextA)->command & ~FM_CONTEXTA_MACCMD_VALID_MASK) | (((val) << (31-8)) & FM_CONTEXTA_MACCMD_VALID_MASK) )) +#define FM_CONTEXTA_SET_MACCMD_SECURED(contextA,val) (((t_FmContextA *)contextA)->command = (uint32_t)((((t_FmContextA *)contextA)->command & ~FM_CONTEXTA_MACCMD_SECURED_MASK) | (((val) << (31-11)) & FM_CONTEXTA_MACCMD_SECURED_MASK) )) +#define FM_CONTEXTA_SET_MACCMD_SECURE_CHANNEL(contextA,val) (((t_FmContextA *)contextA)->command = (uint32_t)((((t_FmContextA *)contextA)->command & ~FM_CONTEXTA_MACCMD_SC_MASK) | (((val) << (31-15)) & FM_CONTEXTA_MACCMD_SC_MASK) )) +/* @} */ + +/**************************************************************************//** + @Collection Context B macros +*//***************************************************************************/ +#define FM_CONTEXTB_FQID_MASK 0x00ffffff + +#define FM_CONTEXTB_GET_FQID(contextB) (*((t_FmContextB *)contextB) & FM_CONTEXTB_FQID_MASK) +#define FM_CONTEXTB_SET_FQID(contextB,val) (*((t_FmContextB *)contextB) = ((*((t_FmContextB *)contextB) & ~FM_CONTEXTB_FQID_MASK) | ((val) & FM_CONTEXTB_FQID_MASK))) +/* @} */ + +#define MEM_MAP_END +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(pop) +#endif /* defined(__MWERKS__) && ... */ + + +/**************************************************************************//** + @Description FM Exceptions +*//***************************************************************************/ +typedef enum e_FmExceptions { + e_FM_EX_DMA_BUS_ERROR, /**< DMA bus error. */ + e_FM_EX_DMA_READ_ECC, /**< Read Buffer ECC error */ + e_FM_EX_DMA_SYSTEM_WRITE_ECC, /**< Write Buffer ECC error on system side */ + e_FM_EX_DMA_FM_WRITE_ECC, /**< Write Buffer ECC error on FM side */ + e_FM_EX_FPM_STALL_ON_TASKS, /**< Stall of tasks on FPM */ + e_FM_EX_FPM_SINGLE_ECC, /**< Single ECC on FPM. */ + e_FM_EX_FPM_DOUBLE_ECC, /**< Double ECC error on FPM ram access */ + e_FM_EX_QMI_SINGLE_ECC, /**< Single ECC on QMI. */ + e_FM_EX_QMI_DOUBLE_ECC, /**< Double bit ECC occurred on QMI */ + e_FM_EX_QMI_DEQ_FROM_UNKNOWN_PORTID,/**< Dequeu from unknown port id */ + e_FM_EX_BMI_LIST_RAM_ECC, /**< Linked List RAM ECC error */ + e_FM_EX_BMI_PIPELINE_ECC, /**< Pipeline Table ECC Error */ + e_FM_EX_BMI_STATISTICS_RAM_ECC, /**< Statistics Count RAM ECC Error Enable */ + e_FM_EX_BMI_DISPATCH_RAM_ECC, /**< Dispatch RAM ECC Error Enable */ + e_FM_EX_IRAM_ECC, /**< Double bit ECC occurred on IRAM*/ + e_FM_EX_MURAM_ECC /**< Double bit ECC occurred on MURAM*/ +} e_FmExceptions; + +/**************************************************************************//** + @Group FM_init_grp FM Initialization Unit + + @Description FM Initialization Unit + + Initialization Flow + Initialization of the FM Module will be carried out by the application + according to the following sequence: + a. Calling the configuration routine with basic parameters. + b. Calling the advance initialization routines to change driver's defaults. + c. Calling the initialization routine. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Function t_FmExceptionsCallback + + @Description Exceptions user callback routine, will be called upon an + exception passing the exception identification. + + @Param[in] h_App - User's application descriptor. + @Param[in] exception - The exception. +*//***************************************************************************/ +typedef void (t_FmExceptionsCallback) (t_Handle h_App, + e_FmExceptions exception); + +/**************************************************************************//** + @Function t_FmBusErrorCallback + + @Description Bus error user callback routine, will be called upon a + bus error, passing parameters describing the errors and the owner. + + @Param[in] h_App - User's application descriptor. + @Param[in] portType - Port type (e_FmPortType) + @Param[in] portId - Port id - relative to type. + @Param[in] addr - Address that caused the error + @Param[in] tnum - Owner of error + @Param[in] liodn - Logical IO device number +*//***************************************************************************/ +typedef void (t_FmBusErrorCallback) (t_Handle h_App, + e_FmPortType portType, + uint8_t portId, + uint64_t addr, + uint8_t tnum, + uint16_t liodn); + +/**************************************************************************//** + @Description structure for defining Ucode patch for loading. +*//***************************************************************************/ +typedef struct t_FmPcdFirmwareParams { + uint32_t size; /**< Size of uCode */ + uint32_t *p_Code; /**< A pointer to the uCode */ +} t_FmPcdFirmwareParams; + +/**************************************************************************//** + @Description structure representing FM initialization parameters +*//***************************************************************************/ +#define FM_SIZE_OF_LIODN_TABLE 64 +typedef struct t_FmParams { + uint8_t fmId; /**< Index of the FM */ + + uint8_t guestId; /**< FM Partition Id */ + + uintptr_t baseAddr; /**< Relevant when guestId = NCSW_MASSTER_ID only. + A pointer to base of memory mapped FM registers (virtual); + NOTE that this should include ALL common regs of the FM including + the PCD regs area. */ + t_Handle h_FmMuram; /**< Relevant when guestId = NCSW_MASSTER_ID only. + A handle of an initialized MURAM object, + to be used by the FM */ + uint16_t fmClkFreq; /**< Relevant when guestId = NCSW_MASSTER_ID only. + In Mhz */ +#ifdef FM_PARTITION_ARRAY + uint16_t liodnBasePerPort[FM_SIZE_OF_LIODN_TABLE]; + /**< Relevant when guestId = NCSW_MASSTER_ID only. + For each partition, LIODN should be configured here. */ +#endif /* FM_PARTITION_ARRAY */ + t_FmExceptionsCallback *f_Exception; /**< Relevant when guestId = NCSW_MASSTER_ID only. + An application callback routine to + handle exceptions.*/ + t_FmBusErrorCallback *f_BusError; /**< Relevant when guestId = NCSW_MASSTER_ID only. + An application callback routine to + handle exceptions.*/ + t_Handle h_App; /**< Relevant when guestId = NCSW_MASSTER_ID only. + A handle to an application layer object; This handle will + be passed by the driver upon calling the above callbacks */ + int irq; /**< Relevant when guestId = NCSW_MASSTER_ID only. + FM interrupt source for normal events */ + int errIrq; /**< Relevant when guestId = NCSW_MASSTER_ID only. + FM interrupt source for errors */ + t_FmPcdFirmwareParams firmware; /**< Relevant when guestId = NCSW_MASSTER_ID only. + Ucode */ +} t_FmParams; + + +/**************************************************************************//** + @Function FM_Config + + @Description Creates descriptor for the FM module. + + The routine returns a handle (descriptor) to the FM object. + This descriptor must be passed as first parameter to all other + FM function calls. + + No actual initialization or configuration of FM hardware is + done by this routine. + + @Param[in] p_FmParams - A pointer to data structure of parameters + + @Return Handle to FM object, or NULL for Failure. +*//***************************************************************************/ +t_Handle FM_Config(t_FmParams *p_FmParams); + +/**************************************************************************//** + @Function FM_Init + + @Description Initializes the FM module + + @Param[in] h_Fm - FM module descriptor + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error FM_Init(t_Handle h_Fm); + +/**************************************************************************//** + @Function FM_Free + + @Description Frees all resources that were assigned to FM module. + + Calling this routine invalidates the descriptor. + + @Param[in] h_Fm - FM module descriptor + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error FM_Free(t_Handle h_Fm); + + +/**************************************************************************//** + @Group FM_advanced_init_grp FM Advanced Configuration Unit + + @Description Configuration functions used to change default values; + Note: Advanced init routines are not available for guest partition. + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Description DMA debug mode +*//***************************************************************************/ +typedef enum e_FmDmaDbgCntMode { + e_FM_DMA_DBG_NO_CNT = 0, /**< No counting */ + e_FM_DMA_DBG_CNT_DONE, /**< Count DONE commands */ + e_FM_DMA_DBG_CNT_COMM_Q_EM, /**< count command queue emergency signals */ + e_FM_DMA_DBG_CNT_INT_READ_EM, /**< Count Internal Read buffer emergency signal */ + e_FM_DMA_DBG_CNT_INT_WRITE_EM, /**< Count Internal Write buffer emergency signal */ + e_FM_DMA_DBG_CNT_FPM_WAIT, /**< Count FPM WAIT signal */ + e_FM_DMA_DBG_CNT_SIGLE_BIT_ECC, /**< Single bit ECC errors. */ + e_FM_DMA_DBG_CNT_RAW_WAR_PROT /**< Number of times there was a need for RAW & WAR protection. */ +} e_FmDmaDbgCntMode; + +/**************************************************************************//** + @Description DMA Cache Override +*//***************************************************************************/ +typedef enum e_FmDmaCacheOverride { + e_FM_DMA_NO_CACHE_OR = 0, /**< No override of the Cache field */ + e_FM_DMA_NO_STASH_DATA, /**< Data should not be stashed in system level cache */ + e_FM_DMA_MAY_STASH_DATA, /**< Data may be stashed in system level cache */ + e_FM_DMA_STASH_DATA /**< Data should be stashed in system level cache */ +} e_FmDmaCacheOverride; + +/**************************************************************************//** + @Description DMA External Bus Priority +*//***************************************************************************/ +typedef enum e_FmDmaExtBusPri { + e_FM_DMA_EXT_BUS_NORMAL = 0, /**< Normal priority */ + e_FM_DMA_EXT_BUS_EBS, /**< AXI extended bus service priority */ + e_FM_DMA_EXT_BUS_SOS, /**< AXI sos priority */ + e_FM_DMA_EXT_BUS_EBS_AND_SOS /**< AXI ebs + sos priority */ +} e_FmDmaExtBusPri; + +/**************************************************************************//** + @Description enum for choosing the field that will be output on AID +*//***************************************************************************/ +typedef enum e_FmDmaAidMode { + e_FM_DMA_AID_OUT_PORT_ID = 0, /**< 4 LSB of PORT_ID */ + e_FM_DMA_AID_OUT_TNUM /**< 4 LSB of TNUM */ +} e_FmDmaAidMode; + +/**************************************************************************//** + @Description FPM Catasrophic error behaviour +*//***************************************************************************/ +typedef enum e_FmCatastrophicErr { + e_FM_CATASTROPHIC_ERR_STALL_PORT = 0, /**< Port_ID is stalled (only reset can release it) */ + e_FM_CATASTROPHIC_ERR_STALL_TASK /**< Only errornous task is stalled */ +} e_FmCatastrophicErr; + +/**************************************************************************//** + @Description FPM DMA error behaviour +*//***************************************************************************/ +typedef enum e_FmDmaErr { + e_FM_DMA_ERR_CATASTROPHIC = 0, /**< Dma error is treated as a catastrophic error */ + e_FM_DMA_ERR_REPORT /**< Dma error is just reported */ +} e_FmDmaErr; + +/**************************************************************************//** + @Description DMA Emergency level by BMI emergency signal +*//***************************************************************************/ +typedef enum e_FmDmaEmergencyLevel { + e_FM_DMA_EM_EBS = 0, /**< EBS emergency */ + e_FM_DMA_EM_SOS /**< SOS emergency */ +} e_FmDmaEmergencyLevel; + +/**************************************************************************//** + @Collection DMA emergency options +*//***************************************************************************/ +typedef uint32_t fmEmergencyBus_t; /**< DMA emergency options */ + +#define FM_DMA_MURAM_READ_EMERGENCY 0x00800000 /**< Enable emergency for MURAM1 */ +#define FM_DMA_MURAM_WRITE_EMERGENCY 0x00400000 /**< Enable emergency for MURAM2 */ +#define FM_DMA_EXT_BUS_EMERGENCY 0x00100000 /**< Enable emergency for external bus */ +/* @} */ + +/**************************************************************************//** + @Description A structure for defining DMA emergency level +*//***************************************************************************/ +typedef struct t_FmDmaEmergency { + fmEmergencyBus_t emergencyBusSelect; /**< An OR of the busses where emergency + should be enabled */ + e_FmDmaEmergencyLevel emergencyLevel; /**< EBS/SOS */ +} t_FmDmaEmergency; + +/**************************************************************************//** + @Description structure for defining FM threshold +*//***************************************************************************/ +typedef struct t_FmThresholds { + uint8_t dispLimit; /**< The number of times a frames may + be passed in the FM before assumed to + be looping. */ + uint8_t prsDispTh; /**< This is the number pf packets that may be + queued in the parser dispatch queue*/ + uint8_t plcrDispTh; /**< This is the number pf packets that may be + queued in the policer dispatch queue*/ + uint8_t kgDispTh; /**< This is the number pf packets that may be + queued in the keygen dispatch queue*/ + uint8_t bmiDispTh; /**< This is the number pf packets that may be + queued in the BMI dispatch queue*/ + uint8_t qmiEnqDispTh; /**< This is the number pf packets that may be + queued in the QMI enqueue dispatch queue*/ + uint8_t qmiDeqDispTh; /**< This is the number pf packets that may be + queued in the QMI dequeue dispatch queue*/ + uint8_t fmCtl1DispTh; /**< This is the number pf packets that may be + queued in fmCtl1 dispatch queue*/ + uint8_t fmCtl2DispTh; /**< This is the number pf packets that may be + queued in fmCtl2 dispatch queue*/ +} t_FmThresholds; + + +/**************************************************************************//** + @Description structure for defining DMA thresholds +*//***************************************************************************/ +typedef struct t_FmDmaThresholds { + uint8_t assertEmergency; /**< When this value is reached, + assert emergency (Threshold)*/ + uint8_t clearEmergency; /**< After emergency is asserted, it is held + until this value is reached (Hystheresis) */ +} t_FmDmaThresholds; + + +/**************************************************************************//** + @Function FM_ConfigResetOnInit + + @Description Tell the driver whether to reset the FM before initialization or + not. It changes the default configuration [FALSE]. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] enable When TRUE, FM will be reset before any initialization. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigResetOnInit(t_Handle h_Fm, bool enable); + +/**************************************************************************//** + @Function FM_ConfigTotalNumOfTasks + + @Description Change the total number of tasks from its default + configuration [BMI_MAX_NUM_OF_TASKS] + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] totalNumOfTasks The selected new value. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigTotalNumOfTasks(t_Handle h_Fm, uint8_t totalNumOfTasks); + +/**************************************************************************//** + @Function FM_ConfigTotalFifoSize + + @Description Change the total Fifo size from its default + configuration [BMI_MAX_FIFO_SIZE] + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] totalFifoSize The selected new value. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigTotalFifoSize(t_Handle h_Fm, uint32_t totalFifoSize); + +/**************************************************************************//** + @Function FM_ConfigMaxNumOfOpenDmas + + @Description Change the maximum allowed open DMA's for this FM from its default + configuration [BMI_MAX_NUM_OF_DMAS] + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] maxNumOfOpenDmas The selected new value. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigMaxNumOfOpenDmas(t_Handle h_Fm, uint8_t maxNumOfOpenDmas); + +/**************************************************************************//** + @Function FM_ConfigThresholds + + @Description Calling this routine changes the internal driver data base + from its default FM threshold configuration: + dispLimit: [0] + prsDispTh: [16] + plcrDispTh: [16] + kgDispTh: [16] + bmiDispTh: [16] + qmiEnqDispTh: [16] + qmiDeqDispTh: [16] + fmCtl1DispTh: [16] + fmCtl2DispTh: [16] + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] p_FmThresholds A structure of threshold parameters. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigThresholds(t_Handle h_Fm, t_FmThresholds *p_FmThresholds); + + /**************************************************************************//** + @Function FM_ConfigDmaCacheOverride + + @Description Calling this routine changes the internal driver data base + from its default configuration of cache override mode [e_FM_DMA_NO_CACHE_OR] + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] cacheOverride The selected new value. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigDmaCacheOverride(t_Handle h_Fm, e_FmDmaCacheOverride cacheOverride); + +/**************************************************************************//** + @Function FM_ConfigDmaAidOverride + + @Description Calling this routine changes the internal driver data base + from its default configuration of aid override mode [TRUE] + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] aidOverride The selected new value. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigDmaAidOverride(t_Handle h_Fm, bool aidOverride); + +/**************************************************************************//** + @Function FM_ConfigDmaAidMode + + @Description Calling this routine changes the internal driver data base + from its default configuration of aid mode [e_FM_DMA_AID_OUT_TNUM] + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] aidMode The selected new value. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigDmaAidMode(t_Handle h_Fm, e_FmDmaAidMode aidMode); + +/**************************************************************************//** + @Function FM_ConfigDmaAxiDbgNumOfBeats + + @Description Calling this routine changes the internal driver data base + from its default configuration of axi debug [1] + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] axiDbgNumOfBeats The selected new value. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigDmaAxiDbgNumOfBeats(t_Handle h_Fm, uint8_t axiDbgNumOfBeats); + +/**************************************************************************//** + @Function FM_ConfigDmaCamNumOfEntries + + @Description Calling this routine changes the internal driver data base + from its default configuration of number of CAM entries [32] + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] numOfEntries The selected new value. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigDmaCamNumOfEntries(t_Handle h_Fm, uint8_t numOfEntries); + +/**************************************************************************//** + @Function FM_ConfigDmaWatchdog + + @Description Calling this routine changes the internal driver data base + from its default watchdog configuration, which is disabled + [0]. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] watchDogValue The selected new value - in microseconds. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigDmaWatchdog(t_Handle h_Fm, uint32_t watchDogValue); + +/**************************************************************************//** + @Function FM_ConfigDmaWriteBufThresholds + + @Description Calling this routine changes the internal driver data base + from its default configuration of DMA write buffer threshold + assertEmergency: [DMA_THRESH_MAX_BUF] + clearEmergency: [DMA_THRESH_MAX_BUF] + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] p_FmDmaThresholds A structure of thresholds to define emergency behavior - + When 'assertEmergency' value is reached, emergency is asserted, + then it is held until 'clearEmergency' value is reached. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigDmaWriteBufThresholds(t_Handle h_Fm, t_FmDmaThresholds *p_FmDmaThresholds); + + /**************************************************************************//** + @Function FM_ConfigDmaCommQThresholds + + @Description Calling this routine changes the internal driver data base + from its default configuration of DMA command queue threshold + assertEmergency: [DMA_THRESH_MAX_COMMQ] + clearEmergency: [DMA_THRESH_MAX_COMMQ] + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] p_FmDmaThresholds A structure of thresholds to define emergency behavior - + When 'assertEmergency' value is reached, emergency is asserted, + then it is held until 'clearEmergency' value is reached.. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigDmaCommQThresholds(t_Handle h_Fm, t_FmDmaThresholds *p_FmDmaThresholds); + +/**************************************************************************//** + @Function FM_ConfigDmaReadBufThresholds + + @Description Calling this routine changes the internal driver data base + from its default configuration of DMA read buffer threshold + assertEmergency: [DMA_THRESH_MAX_BUF] + clearEmergency: [DMA_THRESH_MAX_BUF] + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] p_FmDmaThresholds A structure of thresholds to define emergency behavior - + When 'assertEmergency' value is reached, emergency is asserted, + then it is held until 'clearEmergency' value is reached.. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigDmaReadBufThresholds(t_Handle h_Fm, t_FmDmaThresholds *p_FmDmaThresholds); + +/**************************************************************************//** + @Function FM_ConfigDmaSosEmergencyThreshold + + @Description Calling this routine changes the internal driver data base + from its default dma SOS emergency configuration [0] + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] dmaSosEmergency The selected new value. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigDmaSosEmergencyThreshold(t_Handle h_Fm, uint32_t dmaSosEmergency); + +/**************************************************************************//** + @Function FM_ConfigEnableCounters + + @Description Calling this routine changes the internal driver data base + from its default counters configuration where counters are disabled. + + @Param[in] h_Fm A handle to an FM Module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigEnableCounters(t_Handle h_Fm); + +/**************************************************************************//** + @Function FM_ConfigDmaDbgCounter + + @Description Calling this routine changes the internal driver data base + from its default DMA debug counters configuration [e_FM_DMA_DBG_NO_CNT] + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] fmDmaDbgCntMode An enum selecting the debug counter mode. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigDmaDbgCounter(t_Handle h_Fm, e_FmDmaDbgCntMode fmDmaDbgCntMode); + +/**************************************************************************//** + @Function FM_ConfigDmaStopOnBusErr + + @Description Calling this routine changes the internal driver data base + from its default selection of bus error behavior [FALSE] + + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] stop TRUE to stop on bus error, FALSE to continue. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). + Only if bus error is enabled. +*//***************************************************************************/ +t_Error FM_ConfigDmaStopOnBusErr(t_Handle h_Fm, bool stop); + +/**************************************************************************//** + @Function FM_ConfigDmaEmergency + + @Description Calling this routine changes the internal driver data base + from its default selection of DMA emergency where's it's disabled. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] p_Emergency An OR mask of all required options. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigDmaEmergency(t_Handle h_Fm, t_FmDmaEmergency *p_Emergency); + +/**************************************************************************//** + @Function FM_ConfigDmaEmergencySmoother + + @Description sets the minimum amount of DATA beats transferred on the AXI + READ and WRITE ports before lowering the emergency level. + By default smother is disabled. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] emergencyCnt emergency switching counter. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigDmaEmergencySmoother(t_Handle h_Fm, uint32_t emergencyCnt); + +/**************************************************************************//** + @Function FM_ConfigDmaErr + + @Description Calling this routine changes the internal driver data base + from its default DMA error treatment [e_FM_DMA_ERR_CATASTROPHIC] + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] dmaErr The selected new choice. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigDmaErr(t_Handle h_Fm, e_FmDmaErr dmaErr); + +/**************************************************************************//** + @Function FM_ConfigCatastrophicErr + + @Description Calling this routine changes the internal driver data base + from its default behavior on catastrophic error [e_FM_CATASTROPHIC_ERR_STALL_PORT] + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] catastrophicErr The selected new choice. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigCatastrophicErr(t_Handle h_Fm, e_FmCatastrophicErr catastrophicErr); + +/**************************************************************************//** + @Function FM_ConfigEnableMuramTestMode + + @Description Calling this routine changes the internal driver data base + from its default selection of test mode where it's disabled. + + @Param[in] h_Fm A handle to an FM Module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigEnableMuramTestMode(t_Handle h_Fm); + +/**************************************************************************//** + @Function FM_ConfigEnableIramTestMode + + @Description Calling this routine changes the internal driver data base + from its default selection of test mode where it's disabled. + + @Param[in] h_Fm A handle to an FM Module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigEnableIramTestMode(t_Handle h_Fm); + +/**************************************************************************//** + @Function FM_ConfigHaltOnExternalActivation + + @Description Calling this routine changes the internal driver data base + from its default selection of FM behaviour on external halt + activation [FALSE]. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] enable TRUE to enable halt on external halt + activation. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigHaltOnExternalActivation(t_Handle h_Fm, bool enable); + +/**************************************************************************//** + @Function FM_ConfigHaltOnUnrecoverableEccError + + @Description Calling this routine changes the internal driver data base + from its default selection of FM behaviour on unrecoverable + Ecc error [FALSE]. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] enable TRUE to enable halt on unrecoverable Ecc error + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigHaltOnUnrecoverableEccError(t_Handle h_Fm, bool enable); + +/**************************************************************************//** + @Function FM_ConfigException + + @Description Calling this routine changes the internal driver data base + from its default selection of exceptions enablement. + By default all exceptions are enabled. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] exception The exception to be selected. + @Param[in] enable TRUE to enable interrupt, FALSE to mask it. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigException(t_Handle h_Fm, e_FmExceptions exception, bool enable); + +/**************************************************************************//** + @Function FM_ConfigExternalEccRamsEnable + + @Description Calling this routine changes the internal driver data base + from its default [FALSE]. + When this option is enabled Rams ECC enable is not effected + by the FPM RCR bit, but by a JTAG. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] enable TRUE to enable this option. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigExternalEccRamsEnable(t_Handle h_Fm, bool enable); + +/**************************************************************************//** + @Function FM_ConfigTnumAgingPeriod + + @Description Calling this routine changes the internal driver data base + from its default configuration for aging of dequeue TNUM's + in the QMI.[0] + Note that this functionality is not available in all chips. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] tnumAgingPeriod Tnum Aging Period in microseconds. + Note that period is recalculated in units of + 64 FM clocks. Driver will pick the closest + possible period. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_ConfigTnumAgingPeriod(t_Handle h_Fm, uint16_t tnumAgingPeriod); + +/** @} */ /* end of FM_advanced_init_grp group */ +/** @} */ /* end of FM_init_grp group */ + + +/**************************************************************************//** + @Group FM_runtime_control_grp FM Runtime Control Unit + + @Description FM Runtime control unit API functions, definitions and enums. + The FM driver provides a set of control routines for each module. + These routines may only be called after the module was fully + initialized (both configuration and initialization routines were + called). They are typically used to get information from hardware + (status, counters/statistics, revision etc.), to modify a current + state or to force/enable a required action. Run-time control may + be called whenever necessary and as many times as needed. + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Collection General FM defines. +*//***************************************************************************/ +#define FM_MAX_NUM_OF_VALID_PORTS (FM_MAX_NUM_OF_OH_PORTS + \ + FM_MAX_NUM_OF_1G_RX_PORTS + \ + FM_MAX_NUM_OF_10G_RX_PORTS + \ + FM_MAX_NUM_OF_1G_TX_PORTS + \ + FM_MAX_NUM_OF_10G_TX_PORTS) +/* @} */ + +/**************************************************************************//** + @Description Structure for Port bandwidth requirement. Port is identified + by type and relative id. +*//***************************************************************************/ +typedef struct t_FmPortBandwidth { + e_FmPortType type; /**< FM port type */ + uint8_t relativePortId; /**< Type relative port id */ + uint8_t bandwidth; /**< bandwidth - (in term of percents) */ +} t_FmPortBandwidth; + +/**************************************************************************//** + @Description A Structure containing an array of Port bandwidth requirements. + The user should state the ports requiring bandwidth in terms of + percentage - i.e. all port's bandwidths in the array must add + up to 100. +*//***************************************************************************/ +typedef struct t_FmPortsBandwidthParams { + uint8_t numOfPorts; /**< num of ports listed in the array below */ + t_FmPortBandwidth portsBandwidths[FM_MAX_NUM_OF_VALID_PORTS]; + /**< for each port, it's bandwidth (all port's + bandwidths must add up to 100.*/ +} t_FmPortsBandwidthParams; + +/**************************************************************************//** + @Description DMA Emergency control on MURAM +*//***************************************************************************/ +typedef enum e_FmDmaMuramPort { + e_FM_DMA_MURAM_PORT_WRITE, /**< MURAM write port */ + e_FM_DMA_MURAM_PORT_READ /**< MURAM read port */ +} e_FmDmaMuramPort; + +/**************************************************************************//** + @Description enum for defining FM counters +*//***************************************************************************/ +typedef enum e_FmCounters { + e_FM_COUNTERS_ENQ_TOTAL_FRAME = 0, /**< QMI total enqueued frames counter */ + e_FM_COUNTERS_DEQ_TOTAL_FRAME, /**< QMI total dequeued frames counter */ + e_FM_COUNTERS_DEQ_0, /**< QMI 0 frames from QMan counter */ + e_FM_COUNTERS_DEQ_1, /**< QMI 1 frames from QMan counter */ + e_FM_COUNTERS_DEQ_2, /**< QMI 2 frames from QMan counter */ + e_FM_COUNTERS_DEQ_3, /**< QMI 3 frames from QMan counter */ + e_FM_COUNTERS_DEQ_FROM_DEFAULT, /**< QMI dequeue from default queue counter */ + e_FM_COUNTERS_DEQ_FROM_CONTEXT, /**< QMI dequeue from FQ context counter */ + e_FM_COUNTERS_DEQ_FROM_FD, /**< QMI dequeue from FD command field counter */ + e_FM_COUNTERS_DEQ_CONFIRM, /**< QMI dequeue confirm counter */ + e_FM_COUNTERS_SEMAPHOR_ENTRY_FULL_REJECT, /**< DMA semaphor reject due to full entry counter */ + e_FM_COUNTERS_SEMAPHOR_QUEUE_FULL_REJECT, /**< DMA semaphor reject due to full CAM queue counter */ + e_FM_COUNTERS_SEMAPHOR_SYNC_REJECT /**< DMA semaphor reject due to sync counter */ +} e_FmCounters; + +/**************************************************************************//** + @Description structure for returning revision information +*//***************************************************************************/ +typedef struct t_FmRevisionInfo { + uint8_t majorRev; /**< Major revision */ + uint8_t minorRev; /**< Minor revision */ +} t_FmRevisionInfo; + +/**************************************************************************//** + @Description struct for defining DMA status +*//***************************************************************************/ +typedef struct t_FmDmaStatus { + bool cmqNotEmpty; /**< Command queue is not empty */ + bool busError; /**< Bus error occurred */ + bool readBufEccError; /**< Double ECC error on buffer Read */ + bool writeBufEccSysError; /**< Double ECC error on buffer write from system side */ + bool writeBufEccFmError; /**< Double ECC error on buffer write from FM side */ +} t_FmDmaStatus; + + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +/**************************************************************************//** + @Function FM_DumpRegs + + @Description Dumps all FM registers + + @Param[in] h_Fm A handle to an FM Module. + + @Return E_OK on success; + + @Cautions Allowed only FM_Init(). +*//***************************************************************************/ +t_Error FM_DumpRegs(t_Handle h_Fm); +#endif /* (defined(DEBUG_ERRORS) && ... */ + +/**************************************************************************//** + @Function FM_SetException + + @Description Calling this routine enables/disables the specified exception. + Note: Not available for guest partition. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] exception The exception to be selected. + @Param[in] enable TRUE to enable interrupt, FALSE to mask it. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +t_Error FM_SetException(t_Handle h_Fm, e_FmExceptions exception, bool enable); + +/**************************************************************************//** + @Function FM_SetPortsBandwidth + + @Description Sets relative weights between ports when accessing common resources. + Note: Not available for guest partition. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] p_PortsBandwidth A structure of ports bandwidths in percentage, i.e. + total must equal 100. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +t_Error FM_SetPortsBandwidth(t_Handle h_Fm, t_FmPortsBandwidthParams *p_PortsBandwidth); + +/**************************************************************************//** + @Function FM_EnableRamsEcc + + @Description Enables ECC mechanism for all the different FM RAM's; E.g. IRAM, + MURAM, Parser, Keygen, Policer, etc. + Note: + If FM_ConfigExternalEccRamsEnable was called to enable external + setting of ECC, this routine effects IRAM ECC only. + This routine is also called by the driver if an ECC exception is + enabled. + Note: Not available for guest partition. + + @Param[in] h_Fm A handle to an FM Module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_EnableRamsEcc(t_Handle h_Fm); + +/**************************************************************************//** + @Function FM_DisableRamsEcc + + @Description Disables ECC mechanism for all the different FM RAM's; E.g. IRAM, + MURAM, Parser, Keygen, Policer, etc. + Note: + If FM_ConfigExternalEccRamsEnable was called to enable external + setting of ECC, this routine effects IRAM ECC only. + In opposed to FM_EnableRamsEcc, this routine must be called + explicitly to disable all Rams ECC. + Note: Not available for guest partition. + + + @Param[in] h_Fm A handle to an FM Module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Config() and before FM_Init(). +*//***************************************************************************/ +t_Error FM_DisableRamsEcc(t_Handle h_Fm); + +/**************************************************************************//** + @Function FM_GetRevision + + @Description Returns the FM revision + + @Param[in] h_Fm A handle to an FM Module. + @Param[out] p_FmRevisionInfo A structure of revision information parameters. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +t_Error FM_GetRevision(t_Handle h_Fm, t_FmRevisionInfo *p_FmRevisionInfo); + +/**************************************************************************//** + @Function FM_GetCounter + + @Description Reads one of the FM counters. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] counter The requested counter. + + @Return Counter's current value. + + @Cautions Allowed only following FM_Init(). + Note that it is user's responsibility to call this routine only + for enabled counters, and there will be no indication if a + disabled counter is accessed. +*//***************************************************************************/ +uint32_t FM_GetCounter(t_Handle h_Fm, e_FmCounters counter); + +/**************************************************************************//** + @Function FM_ModifyCounter + + @Description Sets a value to an enabled counter. Use "0" to reset the counter. + Note: Not available for guest partition. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] counter The requested counter. + @Param[in] val The requested value to be written into the counter. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +t_Error FM_ModifyCounter(t_Handle h_Fm, e_FmCounters counter, uint32_t val); + +/**************************************************************************//** + @Function FM_Resume + + @Description Release FM after halt FM command or after unrecoverable ECC error. + Note: Not available for guest partition. + + @Param[in] h_Fm A handle to an FM Module. + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +void FM_Resume(t_Handle h_Fm); + +/**************************************************************************//** + @Function FM_SetDmaEmergency + + @Description Manual emergency set + Note: Not available for guest partition. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] muramPort MURAM direction select. + @Param[in] enable TRUE to manually enable emergency, FALSE to disable. + + @Return None. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +void FM_SetDmaEmergency(t_Handle h_Fm, e_FmDmaMuramPort muramPort, bool enable); + +/**************************************************************************//** + @Function FM_SetDmaExtBusPri + + @Description Manual emergency set + Note: Not available for guest partition. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] pri External bus priority select + + @Return None. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +void FM_SetDmaExtBusPri(t_Handle h_Fm, e_FmDmaExtBusPri pri); + +/**************************************************************************//** + @Function FM_ForceIntr + + @Description Causes an interrupt event on the requested source. + Note: Not available for guest partition. + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] exception An exception to be forced. + + @Return E_OK on success; Error code if the exception is not enabled, + or is not able to create interrupt. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +t_Error FM_ForceIntr (t_Handle h_Fm, e_FmExceptions exception); + +/**************************************************************************//** + @Function FM_GetDmaStatus + + @Description Reads the DMA current status + + @Param[in] h_Fm A handle to an FM Module. + @Param[out] p_FmDmaStatus A structure of DMA status parameters. + + @Return None + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +void FM_GetDmaStatus(t_Handle h_Fm, t_FmDmaStatus *p_FmDmaStatus); + +/**************************************************************************//** + @Function FM_GetPcdHandle + + @Description Used by FMC in order to get PCD handle + + @Param[in] h_Fm A handle to an FM Module. + + @Return A handle to the PCD module, NULL if uninitialized. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +t_Handle FM_GetPcdHandle(t_Handle h_Fm); + +/**************************************************************************//** + @Function FM_ErrorIsr + Note: Not available for guest partition. + + @Description FM interrupt-service-routine for errors. + + @Param[in] h_Fm A handle to an FM Module. + + @Return E_OK on success; E_EMPTY if no errors found in register, other + error code otherwise. + + @Cautions Allowed only following FM_Init(). + This routine should NOT be called from guest-partition + (i.e. guestId != NCSW_MASTER_ID) +*//***************************************************************************/ +t_Error FM_ErrorIsr(t_Handle h_Fm); + +/**************************************************************************//** + @Function FM_EventIsr + Note: Not available for guest partition. + + @Description FM interrupt-service-routine for normal events. + + @Param[in] h_Fm A handle to an FM Module. + + @Cautions Allowed only following FM_Init(). + This routine should NOT be called from guest-partition + (i.e. guestId != NCSW_MASTER_ID) +*//***************************************************************************/ +void FM_EventIsr(t_Handle h_Fm); + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +/**************************************************************************//** + @Function FmDumpPortRegs + + @Description Dumps FM port registers which are part of FM common registers + + @Param[in] h_Fm A handle to an FM Module. + @Param[in] hardwarePortId HW port id. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only FM_Init(). +*//***************************************************************************/ +t_Error FmDumpPortRegs(t_Handle h_Fm,uint8_t hardwarePortId); +#endif /* (defined(DEBUG_ERRORS) && ... */ + + +/** @} */ /* end of FM_runtime_control_grp group */ +/** @} */ /* end of FM_lib_grp group */ +/** @} */ /* end of FM_grp group */ + +#endif /* __FM_EXT */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/Peripherals/fm_mac_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/Peripherals/fm_mac_ext.h @@ -0,0 +1,713 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + @File fm_mac_ext.h + + @Description FM MAC ... +*//***************************************************************************/ +#ifndef __FM_MAC_EXT_H +#define __FM_MAC_EXT_H + +#include "std_ext.h" +#include "enet_ext.h" + + +/**************************************************************************//** + + @Group FM_grp Frame Manager API + + @Description FM API functions, definitions and enums + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group FM_mac_grp FM MAC + + @Description FM MAC API functions, definitions and enums + + @{ +*//***************************************************************************/ + + +/**************************************************************************//** + @Description FM MAC Exceptions +*//***************************************************************************/ +typedef enum e_FmMacExceptions { + e_FM_MAC_EX_10G_MDIO_SCAN_EVENTMDIO = 0 + ,e_FM_MAC_EX_10G_MDIO_CMD_CMPL + ,e_FM_MAC_EX_10G_REM_FAULT + ,e_FM_MAC_EX_10G_LOC_FAULT + ,e_FM_MAC_EX_10G_1TX_ECC_ER + ,e_FM_MAC_EX_10G_TX_FIFO_UNFL + ,e_FM_MAC_EX_10G_TX_FIFO_OVFL + ,e_FM_MAC_EX_10G_TX_ER + ,e_FM_MAC_EX_10G_RX_FIFO_OVFL + ,e_FM_MAC_EX_10G_RX_ECC_ER + ,e_FM_MAC_EX_10G_RX_JAB_FRM + ,e_FM_MAC_EX_10G_RX_OVRSZ_FRM + ,e_FM_MAC_EX_10G_RX_RUNT_FRM + ,e_FM_MAC_EX_10G_RX_FRAG_FRM + ,e_FM_MAC_EX_10G_RX_LEN_ER + ,e_FM_MAC_EX_10G_RX_CRC_ER + ,e_FM_MAC_EX_10G_RX_ALIGN_ER + ,e_FM_MAC_EX_1G_BAB_RX + ,e_FM_MAC_EX_1G_RX_CTL + ,e_FM_MAC_EX_1G_GRATEFUL_TX_STP_COMPLET + ,e_FM_MAC_EX_1G_BAB_TX + ,e_FM_MAC_EX_1G_TX_CTL + ,e_FM_MAC_EX_1G_TX_ERR + ,e_FM_MAC_EX_1G_LATE_COL + ,e_FM_MAC_EX_1G_COL_RET_LMT + ,e_FM_MAC_EX_1G_TX_FIFO_UNDRN + ,e_FM_MAC_EX_1G_MAG_PCKT + ,e_FM_MAC_EX_1G_MII_MNG_RD_COMPLET + ,e_FM_MAC_EX_1G_MII_MNG_WR_COMPLET + ,e_FM_MAC_EX_1G_GRATEFUL_RX_STP_COMPLET + ,e_FM_MAC_EX_1G_TX_DATA_ERR + ,e_FM_MAC_EX_1G_RX_DATA_ERR + ,e_FM_MAC_EX_1G_1588_TS_RX_ERR + ,e_FM_MAC_EX_1G_RX_MIB_CNT_OVFL +} e_FmMacExceptions; + +/**************************************************************************//** + @Description TM MAC statistics level +*//***************************************************************************/ +typedef enum e_FmMacStatisticsLevel { + e_FM_MAC_NONE_STATISTICS = 0, /**< No statistics */ + e_FM_MAC_PARTIAL_STATISTICS, /**< Only error counters are available. Optimized for performance */ + e_FM_MAC_FULL_STATISTICS /**< All counters available. Not optimized for performance */ +} e_FmMacStatisticsLevel; + + +/**************************************************************************//** + @Function t_FmMacExceptionCallback + + @Description Fm Mac Exception Callback from FM MAC to the user + + @Param[in] h_App - Handle to the upper layer handler + + @Param[in] exceptions - The exception that occurred + + + @Return void. +*//***************************************************************************/ +typedef void (t_FmMacExceptionCallback)(t_Handle h_App, e_FmMacExceptions exceptions); + + +/**************************************************************************//** + @Description TM MAC statistics rfc3635 +*//***************************************************************************/ +typedef struct t_FmMacStatistics { +/* RMON */ + uint64_t eStatPkts64; /**< r-10G tr-DT 64 byte frame counter */ + uint64_t eStatPkts65to127; /**< r-10G 65 to 127 byte frame counter */ + uint64_t eStatPkts128to255; /**< r-10G 128 to 255 byte frame counter */ + uint64_t eStatPkts256to511; /**< r-10G 256 to 511 byte frame counter */ + uint64_t eStatPkts512to1023; /**< r-10G 512 to 1023 byte frame counter */ + uint64_t eStatPkts1024to1518; /**< r-10G 1024 to 1518 byte frame counter */ + uint64_t eStatPkts1519to1522; /**< r-10G 1519 to 1522 byte good frame count */ +/* */ + uint64_t eStatFragments; /**< Total number of packets that were less than 64 octets long with a wrong CRC.*/ + uint64_t eStatJabbers; /**< Total number of packets longer than valid maximum length octets */ + uint64_t eStatsDropEvents; /**< number of dropped packets due to internal errors of the MAC Client. */ + uint64_t eStatCRCAlignErrors; /**< Incremented when frames of correct length but with CRC error are received.*/ + uint64_t eStatUndersizePkts; /**< Total number of packets that were less than 64 octets long with a good CRC.*/ + uint64_t eStatOversizePkts; /**< T,B.D*/ +/* Pause */ + uint64_t teStatPause; /**< Pause MAC Control received */ + uint64_t reStatPause; /**< Pause MAC Control sent */ + +/* MIB II */ + uint64_t ifInOctets; /**< Total number of byte received. */ + uint64_t ifInPkts; /**< Total number of packets received.*/ + uint64_t ifInMcastPkts; /**< Total number of multicast frame received*/ + uint64_t ifInBcastPkts; /**< Total number of broadcast frame received */ + uint64_t ifInDiscards; /**< Frames received, but discarded due to problems within the MAC RX. */ + uint64_t ifInErrors; /**< Number of frames received with error: + - FIFO Overflow Error + - CRC Error + - Frame Too Long Error + - Alignment Error + - The dedicated Error Code (0xfe, not a code error) was received */ + uint64_t ifOutOctets; /**< Total number of byte sent. */ + uint64_t ifOutPkts; /**< Total number of packets sent .*/ + uint64_t ifOutMcastPkts; /**< Total number of multicast frame sent */ + uint64_t ifOutBcastPkts; /**< Total number of multicast frame sent */ + uint64_t ifOutDiscards; /**< Frames received, but discarded due to problems within the MAC TX N/A!.*/ + uint64_t ifOutErrors; /**< Number of frames transmitted with error: + - FIFO Overflow Error + - FIFO Underflow Error + - Other */ +} t_FmMacStatistics; + + +/**************************************************************************//** + @Group FM_mac_init_grp Initialization Unit + + @Description FM MAC Initialization Unit + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Description FM MAC config input +*//***************************************************************************/ +typedef struct t_FmMacParams { + uintptr_t baseAddr; /**< Base of memory mapped FM MAC registers */ + t_EnetAddr addr; /**< MAC address of device; First octet is sent first */ + uint8_t macId; /**< MAC ID <10G 0> */ + e_EnetMode enetMode; /**< Ethernet operation mode (MAC-PHY interface and speed) */ + t_Handle h_Fm; /**< A handle to the FM object this port related to */ + int mdioIrq; /**< MDIO exceptions interrupt source - not valid for all + MACs; MUST be set to 'NO_IRQ' for MACs that don't have + mdio-irq, or for polling */ + t_FmMacExceptionCallback *f_Event; /**< MDIO Events Callback Routine */ + t_FmMacExceptionCallback *f_Exception; /**< Exception Callback Routine */ + t_Handle h_App; /**< A handle to an application layer object; This handle will + be passed by the driver upon calling the above callbacks */ +} t_FmMacParams; + + +/**************************************************************************//** + @Function FM_MAC_Config + + @Description Creates descriptor for the FM MAC module. + + The routine returns a handle (descriptor) to the FM MAC object. + This descriptor must be passed as first parameter to all other + FM MAC function calls. + + No actual initialization or configuration of FM MAC hardware is + done by this routine. + + @Param[in] p_FmMacParam - Pointer to data structure of parameters + + @Retval Handle to FM MAC object, or NULL for Failure. +*//***************************************************************************/ +t_Handle FM_MAC_Config (t_FmMacParams *p_FmMacParam); + +/**************************************************************************//** + @Function FM_MAC_Init + + @Description Initializes the FM MAC module + + @Param[in] h_FmMac - FM module descriptor + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error FM_MAC_Init (t_Handle h_FmMac); + +/**************************************************************************//** + @Function FM_Free + + @Description Frees all resources that were assigned to FM MAC module. + + Calling this routine invalidates the descriptor. + + @Param[in] h_FmMac - FM module descriptor + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error FM_MAC_Free (t_Handle h_FmMac); + + +/**************************************************************************//** + @Group FM_mac_advanced_init_grp Advanced Configuration Unit + + @Description Configuration functions used to change default values. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Function FM_MAC_ConfigResetOnInit + + @Description Tell the driver whether to reset the FM MAC before initialization or + not. It changes the default configuration [FALSE]. + + @Param[in] h_FmMac A handle to a FM MAC Module. + @Param[in] enable When TRUE, FM will be reset before any initialization. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Config() and before FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_ConfigResetOnInit (t_Handle h_FmMac, bool enable); + +/**************************************************************************//** + @Function FM_MAC_ConfigLoopback + + @Description Enable/Disable internal loopback mode + + @Param[in] h_FmMac A handle to a FM MAC Module. + @Param[in] enable TRUE to enable or FALSE to disable. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Config() and before FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_ConfigLoopback (t_Handle h_FmMac, bool enable); + +/**************************************************************************//** + @Function FM_MAC_ConfigMaxFrameLength + + @Description Setup maximum Frame Length + + @Param[in] h_FmMac A handle to a FM MAC Module. + @Param[in] newVal MAX Frame length + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Config() and before FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_ConfigMaxFrameLength (t_Handle h_FmMac, uint16_t newVal); + +/**************************************************************************//** + @Function FM_MAC_ConfigWan + + @Description ENABLE WAN mode in 10G MAC + + @Param[in] h_FmMac A handle to a FM MAC Module. + @Param[in] enable TRUE to enable or FALSE to disable. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Config() and before FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_ConfigWan (t_Handle h_FmMac, bool enable); + +/**************************************************************************//** + @Function FM_MAC_ConfigPadAndCrc + + @Description Config PAD and CRC mode + + @Param[in] h_FmMac A handle to a FM MAC Module. + @Param[in] enable TRUE to enable or FALSE to disable. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Config() and before FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_ConfigPadAndCrc (t_Handle h_FmMac, bool enable); + +/**************************************************************************//** + @Function FM_MAC_ConfigHalfDuplex + + @Description Config Half Duplex Mode + + @Param[in] h_FmMac A handle to a FM MAC Module. + @Param[in] enable TRUE to enable or FALSE to disable. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Config() and before FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_ConfigHalfDuplex (t_Handle h_FmMac, bool enable); + +/**************************************************************************//** + @Function FM_MAC_ConfigLengthCheck + + @Description Configure thef frame length checking. + + @Param[in] h_FmMac A handle to a FM MAC Module. + @Param[in] enable TRUE to enable or FALSE to disable. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Config() and before FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_ConfigLengthCheck (t_Handle h_FmMac, bool enable); + +/**************************************************************************//** + @Function FM_MAC_ConfigException + + @Description Change Exception selection from default + + @Param[in] h_FmMac A handle to a FM MAC Module. + @Param[in] ex Type of the desired exceptions + @Param[in] enable TRUE to enable the specified exception, FALSE to disable it. + + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Config() and before FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_ConfigException(t_Handle h_FmMac, e_FmMacExceptions ex, bool enable); + +#ifdef FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 +t_Error FM_MAC_ConfigSkipFman11Workaround (t_Handle h_FmMac); +#endif /* FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 */ +/** @} */ /* end of FM_mac_advanced_init_grp group */ +/** @} */ /* end of FM_mac_init_grp group */ + + +/**************************************************************************//** + @Group FM_mac_runtime_control_grp Runtime Control Unit + + @Description FM MAC Runtime control unit API functions, definitions and enums. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Function FM_MAC_Enable + + @Description Enable the MAC + + @Param[in] h_FmMac A handle to a FM MAC Module. + @Param[in] mode Mode of operation (RX, TX, Both) + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_Enable (t_Handle h_FmMac, e_CommMode mode); + +/**************************************************************************//** + @Function FM_MAC_Disable + + @Description DISABLE the MAC + + @Param[in] h_FmMac A handle to a FM MAC Module. + @Param[in] mode Define what part to Disable (RX, TX or BOTH) + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_Disable (t_Handle h_FmMac, e_CommMode mode); + +/**************************************************************************//** + @Function FM_MAC_Enable1588TimeStamp + + @Description Enables the TSU operation. + + @Param[in] h_Fm - Handle to the PTP as returned from the FM_MAC_PtpConfig. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_Enable1588TimeStamp(t_Handle h_Fm); + +/**************************************************************************//** + @Function FM_MAC_Disable1588TimeStamp + + @Description Disables the TSU operation. + + @Param[in] h_Fm - Handle to the PTP as returned from the FM_MAC_PtpConfig. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_Disable1588TimeStamp(t_Handle h_Fm); + +/**************************************************************************//** + @Function FM_MAC_SetTxAutoPauseFrames + + @Description Enable/Disable transmition of Pause-Frames. + + @Param[in] h_FmMac A handle to a FM MAC Module. + @Param[in] pauseTime Pause quanta value used with transmitted pause frames. + Each quanta represents a 512 bit-times; Note that '0' + as an input here will be used as disabling the + transmission of the pause-frames. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_SetTxAutoPauseFrames (t_Handle h_FmMac, uint16_t pauseTime); + +/**************************************************************************//** + @Function FM_MAC_SetRxIgnorePauseFrames + + @Description Enable/Disable ignoring of Pause-Frames. + + @Param[in] h_FmMac A handle to a FM MAC Module. + @Param[in] en boolean indicates whether to ignore the incoming pause + frames or not. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_SetRxIgnorePauseFrames (t_Handle h_FmMac, bool en); + +/**************************************************************************//** + @Function FM_MAC_ResetCounters + + @Description reset all statistics counters + + @Param[in] h_FmMac A handle to a FM MAC Module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_ResetCounters (t_Handle h_FmMac); + +/**************************************************************************//** + @Function FM_MAC_SetException + + @Description Enable/Disable a specific Exception + + @Param[in] h_FmMac A handle to a FM MAC Module. + @Param[in] ex Type of the desired exceptions + @Param[in] enable TRUE to enable the specified exception, FALSE to disable it. + + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_SetException(t_Handle h_FmMac, e_FmMacExceptions ex, bool enable); + +/**************************************************************************//** + @Function FM_MAC_SetStatistics + + @Description Define Statistics level. + Where applicable, the routine also enables the MIB counters + overflow interrupt in order to keep counters accurate + and account for overflows. + + @Param[in] h_FmMac A handle to a FM MAC Module. + @Param[in] statisticsLevel Full statistics level provides all standard counters but may + reduce performance. Partial statistics provides only special + event counters (errors etc.). If selected, regular counters (such as + byte/packet) will be invalid and will return -1. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_SetStatistics (t_Handle h_FmMac, e_FmMacStatisticsLevel statisticsLevel); + +/**************************************************************************//** + @Function FM_MAC_GetStatistics + + @Description get all statistics counters + + @Param[in] h_FmMac A handle to a FM MAC Module. + @Param[in] p_Statistics Staructure with statistics + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_Init(). +*//***************************************************************************/ +t_Error FM_MAC_GetStatistics (t_Handle h_FmMac, t_FmMacStatistics *p_Statistics); + +/**************************************************************************//** + @Function FM_MAC_ModifyMacAddr + + @Description Replace the main MAC Address + + @Param[in] h_FmMac - A handle to a FM Module. + @Param[in] p_EnetAddr - Ethernet Mac address + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only after FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_ModifyMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr); + +/**************************************************************************//** + @Function FM_MAC_AddHashMacAddr + + @Description Add an Address to the hash table. This is for filter purpose only. + + @Param[in] h_FmMac - A handle to a FM Module. + @Param[in] p_EnetAddr - Ethernet Mac address + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Init(). It is a filter only address. + @Cautions Some address need to be filterd out in upper FM blocks. +*//***************************************************************************/ +t_Error FM_MAC_AddHashMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr); + +/**************************************************************************//** + @Function FM_MAC_RemoveHashMacAddr + + @Description Delete an Address to the hash table. This is for filter purpose only. + + @Param[in] h_FmMac - A handle to a FM Module. + @Param[in] p_EnetAddr - Ethernet Mac address + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_RemoveHashMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr); + +/**************************************************************************//** + @Function FM_MAC_AddExactMatchMacAddr + + @Description Add a unicast or multicast mac address for exact-match filtering + (8 on dTSEC, 2 for 10G-MAC) + + @Param[in] h_FmMac - A handle to a FM Module. + @Param[in] p_EnetAddr - MAC Address to ADD + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only after FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_AddExactMatchMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr); + +/**************************************************************************//** + @Function FM_MAC_RemovelExactMatchMacAddr + + @Description Remove a uni cast or multi cast mac address. + + @Param[in] h_FmMac - A handle to a FM Module. + @Param[in] p_EnetAddr - MAC Address to remove + + @Return E_OK on success; Error code otherwise.. + + @Cautions Allowed only after FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_RemovelExactMatchMacAddr (t_Handle h_FmMac, t_EnetAddr *p_EnetAddr); + +/**************************************************************************//** + @Function FM_MAC_SetPromiscuous + + @Description Enable/Disable MAC Promiscuous mode for ALL mac addresses. + + @Param[in] h_FmMac - A handle to a FM MAC Module. + @Param[in] enable - TRUE to enable or FALSE to disable. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only after FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_SetPromiscuous (t_Handle h_FmMac, bool enable); + +/**************************************************************************//** + @Function FM_MAC_AdjustLink + + @Description Adjusts the Ethernet link with new speed/duplex setup. + + @Param[in] h_FmMac - A handle to a FM Module. + @Param[in] speed - Ethernet speed. + @Param[in] fullDuplex - TRUE for Full-Duplex mode; + FALSE for Half-Duplex mode. + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error FM_MAC_AdjustLink(t_Handle h_FmMac, e_EnetSpeed speed, bool fullDuplex); + +/**************************************************************************//** + @Function FM_MAC_GetId + + @Description Return the MAC ID + + @Param[in] h_FmMac - A handle to a FM Module. + @Param[out] p_MacId - MAC ID of device + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only after FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_GetId (t_Handle h_FmMac, uint32_t *p_MacId); + +/**************************************************************************//** + @Function FM_MAC_GetVesrion + + @Description Return Mac HW chip version + + @Param[in] h_FmMac - A handle to a FM Module. + @Param[out] p_MacVresion - Mac version as defined by the chip + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only after FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_GetVesrion (t_Handle h_FmMac, uint32_t *p_MacVresion); + +/**************************************************************************//** + @Function FM_MAC_MII_WritePhyReg + + @Description Write data into Phy Register + + @Param[in] h_FmMac - A handle to a FM Module. + @Param[in] phyAddr - Phy Address on the MII bus + @Param[in] reg - Register Number. + @Param[in] data - Data to write. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only after FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_MII_WritePhyReg (t_Handle h_FmMac, uint8_t phyAddr, uint8_t reg, uint16_t data); + +/**************************************************************************//** + @Function FM_MAC_MII_ReadPhyReg + + @Description Read data from Phy Register + + @Param[in] h_FmMac - A handle to a FM Module. + @Param[in] phyAddr - Phy Address on the MII bus + @Param[in] reg - Register Number. + @Param[out] p_Data - Data from PHY. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only after FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_MII_ReadPhyReg(t_Handle h_FmMac, uint8_t phyAddr, uint8_t reg, uint16_t *p_Data); + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +/**************************************************************************//** + @Function FM_MAC_DumpRegs + + @Description Dump internal registers + + @Param[in] h_FmMac - A handle to a FM Module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only after FM_MAC_Init(). +*//***************************************************************************/ +t_Error FM_MAC_DumpRegs(t_Handle h_FmMac); +#endif /* (defined(DEBUG_ERRORS) && ... */ + +/** @} */ /* end of FM_mac_runtime_control_grp group */ +/** @} */ /* end of FM_mac_grp group */ +/** @} */ /* end of FM_grp group */ + + + +#endif /* __FM_MAC_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/Peripherals/fm_muram_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/Peripherals/fm_muram_ext.h @@ -0,0 +1,158 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + @File fm_muram_ext.h + + @Description FM MURAM Application Programming Interface. +*//***************************************************************************/ +#ifndef __FM_MURAM_EXT +#define __FM_MURAM_EXT + +#include "error_ext.h" +#include "std_ext.h" + + +/**************************************************************************//** + + @Group FM_grp Frame Manager API + + @Description FM API functions, definitions and enums + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group FM_muram_grp FM MURAM + + @Description FM MURAM API functions, definitions and enums + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group FM_muram_init_grp FM MURAM Initialization + + @Description FM MURAM initialization API functions, definitions and enums + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Function FM_MURAM_ConfigAndInit + + @Description Creates partition in the MURAM. + + The routine returns a handle (descriptor) to the MURAM partition. + This descriptor must be passed as first parameter to all other + FM-MURAM function calls. + + No actual initialization or configuration of FM_MURAM hardware is + done by this routine. + + @Param[in] baseAddress - Pointer to base of memory mapped FM-MURAM. + @Param[in] size - Size of the FM-MURAM partition. + + @Return Handle to FM-MURAM object, or NULL for Failure. +*//***************************************************************************/ +t_Handle FM_MURAM_ConfigAndInit(uintptr_t baseAddress, uint32_t size); + +/**************************************************************************//** + @Function FM_MURAM_Free + + @Description Frees all resources that were assigned to FM-MURAM module. + + Calling this routine invalidates the descriptor. + + @Param[in] h_FmMuram - FM-MURAM module descriptor. + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error FM_MURAM_Free(t_Handle h_FmMuram); + +/** @} */ /* end of FM_muram_init_grp group */ + + +/**************************************************************************//** + @Group FM_muram_ctrl_grp FM MURAM Control + + @Description FM MURAM control API functions, definitions and enums + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Function FM_MURAM_AllocMem + + @Description Allocate some memory from FM-MURAM partition. + + @Param[in] h_FmMuram - FM-MURAM module descriptor. + @Param[in] size - size of the memory to be allocated. + @Param[in] align - Alignment of the memory. + + @Return address of the allocated memory; NULL otherwise. +*//***************************************************************************/ +void * FM_MURAM_AllocMem(t_Handle h_FmMuram, uint32_t size, uint32_t align); + +/**************************************************************************//** + @Function FM_MURAM_AllocMemForce + + @Description Allocate some specific memory from FM-MURAM partition (according + to base). + + @Param[in] h_FmMuram - FM-MURAM module descriptor. + @Param[in] base - the desired base-address to be allocated. + @Param[in] size - size of the memory to be allocated. + + @Return address of the allocated memory; NULL otherwise. +*//***************************************************************************/ +void * FM_MURAM_AllocMemForce(t_Handle h_FmMuram, uint64_t base, uint32_t size); + +/**************************************************************************//** + @Function FM_MURAM_FreeMem + + @Description Free an allocated memory from FM-MURAM partition. + + @Param[in] h_FmMuram - FM-MURAM module descriptor. + @Param[in] ptr - A pointer to an allocated memory. + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error FM_MURAM_FreeMem(t_Handle h_FmMuram, void *ptr); + +/** @} */ /* end of FM_muram_ctrl_grp group */ +/** @} */ /* end of FM_muram_grp group */ +/** @} */ /* end of FM_grp group */ + + + +#endif /* __FM_MURAM_EXT */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/Peripherals/fm_pcd_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/Peripherals/fm_pcd_ext.h @@ -0,0 +1,2160 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + @File fm_pcd_ext.h + + @Description FM PCD ... +*//***************************************************************************/ +#ifndef __FM_PCD_EXT +#define __FM_PCD_EXT + +#include "std_ext.h" +#include "net_ext.h" +#include "list_ext.h" +#include "fm_ext.h" + + +/**************************************************************************//** + + @Group FM_grp Frame Manager API + + @Description FM API functions, definitions and enums + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group FM_PCD_grp FM PCD + + @Description FM PCD API functions, definitions and enums + + The FM PCD module is responsible for the initialization of all + global classifying FM modules. This includes the parser general and + common registers, the key generator global and common registers, + and the Policer global and common registers. + In addition, the FM PCD SW module will initialize all required + key generator schemes, coarse classification flows, and Policer + profiles. When An FM module is configured to work with one of these + entities, it will register to it using the FM PORT API. The PCD + module will manage the PCD resources - i.e. resource management of + Keygen schemes, etc. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Collection General PCD defines +*//***************************************************************************/ +typedef uint32_t fmPcdEngines_t; /**< options as defined below: */ + +#define FM_PCD_NONE 0 /**< No PCD Engine indicated */ +#define FM_PCD_PRS 0x80000000 /**< Parser indicated */ +#define FM_PCD_KG 0x40000000 /**< Keygen indicated */ +#define FM_PCD_CC 0x20000000 /**< Coarse classification indicated */ +#define FM_PCD_PLCR 0x10000000 /**< Policer indicated */ +#define FM_PCD_MANIP 0x08000000 /**< Manipulation indicated */ + +#define FM_PCD_MAX_NUM_OF_PRIVATE_HDRS 2 /**< Number of units/headers saved for user */ + +#define FM_PCD_PRS_NUM_OF_HDRS 16 /**< Number of headers supported by HW parser */ +#define FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS (32 - FM_PCD_MAX_NUM_OF_PRIVATE_HDRS) + /**< number of distinction units is limited by + register size (32), - reserved bits for + private headers. */ + +#define FM_PCD_MAX_NUM_OF_INTERCHANGEABLE_HDRS 4 /**< Maximum number of interchangeable headers in a distinction unit */ +#define FM_PCD_KG_NUM_OF_GENERIC_REGS 8 /**< Total number of generic KG registers */ +#define FM_PCD_KG_MAX_NUM_OF_EXTRACTS_PER_KEY 35 /**< Max number allowed on any configuration. + For reason of HW implementation, in most + cases less than this will be allowed. The + driver will return error in initialization + time if resource is overused. */ +#define FM_PCD_KG_NUM_OF_EXTRACT_MASKS 4 /**< Total number of masks allowed on KG extractions. */ +#define FM_PCD_KG_NUM_OF_DEFAULT_GROUPS 16 /**< Number of default value logical groups */ + +#define FM_PCD_PRS_NUM_OF_LABELS 32 /**< Max number of SW parser label */ +#define FM_PCD_SW_PRS_SIZE 0x00000800 /**< Total size of sw parser area */ +#define FM_PCD_PRS_SW_OFFSET 0x00000040 /**< Size of illegal addresses at the beginning + of the SW parser area */ +#define FM_PCD_PRS_SW_PATCHES_SIZE 0x00000200 /**< Number of bytes saved for patches */ +#define FM_PCD_PRS_SW_TAIL_SIZE 4 /**< Number of bytes that must be cleared at + the end of the SW parser area */ +#define FM_SW_PRS_MAX_IMAGE_SIZE (FM_PCD_SW_PRS_SIZE-FM_PCD_PRS_SW_OFFSET-FM_PCD_PRS_SW_TAIL_SIZE-FM_PCD_PRS_SW_PATCHES_SIZE) + /**< Max possible size of SW parser code */ + +#define FM_PCD_MAX_MANIP_INSRT_TEMPLATE_SIZE 128 /**< Max possible size of insertion template for + insert manipulation*/ +/* @} */ + + +/**************************************************************************//** + @Group FM_PCD_init_grp FM PCD Initialization Unit + + @Description FM PCD Initialization Unit + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Description PCD counters +*//***************************************************************************/ +typedef enum e_FmPcdCounters { + e_FM_PCD_KG_COUNTERS_TOTAL, /**< Policer counter */ + e_FM_PCD_PLCR_COUNTERS_YELLOW, /**< Policer counter */ + e_FM_PCD_PLCR_COUNTERS_RED, /**< Policer counter */ + e_FM_PCD_PLCR_COUNTERS_RECOLORED_TO_RED, /**< Policer counter */ + e_FM_PCD_PLCR_COUNTERS_RECOLORED_TO_YELLOW, /**< Policer counter */ + e_FM_PCD_PLCR_COUNTERS_TOTAL, /**< Policer counter */ + e_FM_PCD_PLCR_COUNTERS_LENGTH_MISMATCH, /**< Policer counter */ + e_FM_PCD_PRS_COUNTERS_PARSE_DISPATCH, /**< Parser counter */ + e_FM_PCD_PRS_COUNTERS_L2_PARSE_RESULT_RETURNED, /**< Parser counter */ + e_FM_PCD_PRS_COUNTERS_L3_PARSE_RESULT_RETURNED, /**< Parser counter */ + e_FM_PCD_PRS_COUNTERS_L4_PARSE_RESULT_RETURNED, /**< Parser counter */ + e_FM_PCD_PRS_COUNTERS_SHIM_PARSE_RESULT_RETURNED, /**< Parser counter */ + e_FM_PCD_PRS_COUNTERS_L2_PARSE_RESULT_RETURNED_WITH_ERR, /**< Parser counter */ + e_FM_PCD_PRS_COUNTERS_L3_PARSE_RESULT_RETURNED_WITH_ERR, /**< Parser counter */ + e_FM_PCD_PRS_COUNTERS_L4_PARSE_RESULT_RETURNED_WITH_ERR, /**< Parser counter */ + e_FM_PCD_PRS_COUNTERS_SHIM_PARSE_RESULT_RETURNED_WITH_ERR, /**< Parser counter */ + e_FM_PCD_PRS_COUNTERS_SOFT_PRS_CYCLES, /**< Parser counter */ + e_FM_PCD_PRS_COUNTERS_SOFT_PRS_STALL_CYCLES, /**< Parser counter */ + e_FM_PCD_PRS_COUNTERS_HARD_PRS_CYCLE_INCL_STALL_CYCLES, /**< Parser counter */ + e_FM_PCD_PRS_COUNTERS_MURAM_READ_CYCLES, /**< MURAM counter */ + e_FM_PCD_PRS_COUNTERS_MURAM_READ_STALL_CYCLES, /**< MURAM counter */ + e_FM_PCD_PRS_COUNTERS_MURAM_WRITE_CYCLES, /**< MURAM counter */ + e_FM_PCD_PRS_COUNTERS_MURAM_WRITE_STALL_CYCLES, /**< MURAM counter */ + e_FM_PCD_PRS_COUNTERS_FPM_COMMAND_STALL_CYCLES /**< FPM counter */ +} e_FmPcdCounters; + +/**************************************************************************//** + @Description PCD interrupts +*//***************************************************************************/ +typedef enum e_FmPcdExceptions { + e_FM_PCD_KG_EXCEPTION_DOUBLE_ECC, /**< Keygen ECC error */ + e_FM_PCD_PLCR_EXCEPTION_DOUBLE_ECC, /**< Read Buffer ECC error */ + e_FM_PCD_KG_EXCEPTION_KEYSIZE_OVERFLOW, /**< Write Buffer ECC error on system side */ + e_FM_PCD_PLCR_EXCEPTION_INIT_ENTRY_ERROR, /**< Write Buffer ECC error on FM side */ + e_FM_PCD_PLCR_EXCEPTION_PRAM_SELF_INIT_COMPLETE, /**< Self init complete */ + e_FM_PCD_PLCR_EXCEPTION_ATOMIC_ACTION_COMPLETE, /**< Atomic action complete */ + e_FM_PCD_PRS_EXCEPTION_DOUBLE_ECC, /**< Parser ECC error */ + e_FM_PCD_PRS_EXCEPTION_SINGLE_ECC /**< Parser single ECC */ +} e_FmPcdExceptions; + + +/**************************************************************************//** + @Description Exceptions user callback routine, will be called upon an + exception passing the exception identification. + + @Param[in] h_App - User's application descriptor. + @Param[in] exception - The exception. + *//***************************************************************************/ +typedef void (t_FmPcdExceptionCallback) (t_Handle h_App, e_FmPcdExceptions exception); + +/**************************************************************************//** + @Description Exceptions user callback routine, will be called upon an exception + passing the exception identification. + + @Param[in] h_App - User's application descriptor. + @Param[in] exception - The exception. + @Param[in] index - id of the relevant source (may be scheme or profile id). + *//***************************************************************************/ +typedef void (t_FmPcdIdExceptionCallback) ( t_Handle h_App, + e_FmPcdExceptions exception, + uint16_t index); + +/**************************************************************************//** + @Description A callback for enqueuing frame onto a QM queue. + + @Param[in] h_App - User's application descriptor. + @Param[in] p_Fd - Frame descriptor for the frame. + + @Return E_OK on success; Error code otherwise. + *//***************************************************************************/ +typedef t_Error (t_FmPcdQmEnqueueCallback) (t_Handle h_QmArg, void *p_Fd); + +/**************************************************************************//** + @Description A structure for Host-Command + When using Host command for PCD functionalities, a dedicated port + must be used. If this routine is called for a PCD in a single partition + environment, or it is the Master partition in a Multi partition + environment, The port will be initialized by the PCD driver + initialization routine. + *//***************************************************************************/ +typedef struct t_FmPcdHcParams { + uintptr_t portBaseAddr; /**< Host-Command Port Virtual Address of + memory mapped registers.*/ + uint8_t portId; /**< Host-Command Port Id (0-6 relative + to Host-Command/Offline parsing ports) */ + uint16_t liodnBase; /**< Irrelevant for P4080 rev 1. LIODN base for this port, to be + used together with LIODN offset. */ + uint32_t errFqid; /**< Host-Command Port Error Queue Id. */ + uint32_t confFqid; /**< Host-Command Port Confirmation queue Id. */ + uint32_t qmChannel; /**< Host-Command port - QM-channel dedicated to + this port will be used by the FM for dequeue. */ + t_FmPcdQmEnqueueCallback *f_QmEnqueue; /**< Call back routine for enqueuing a frame to the QM */ + t_Handle h_QmArg; /**< A handle of the QM module */ +} t_FmPcdHcParams; + +/**************************************************************************//** + @Description The main structure for PCD initialization + *//***************************************************************************/ +typedef struct t_FmPcdParams { + bool prsSupport; /**< TRUE if Parser will be used for any + of the FM ports */ + bool ccSupport; /**< TRUE if Coarse Classification will be used for any + of the FM ports */ + bool kgSupport; /**< TRUE if Keygen will be used for any + of the FM ports */ + bool plcrSupport; /**< TRUE if Policer will be used for any + of the FM ports */ + t_Handle h_Fm; /**< A handle to the FM module */ + uint8_t numOfSchemes; /**< Number of schemes dedicated to this partition. */ + bool useHostCommand; /**< Optional for single partition, Mandatory for Multi partition */ + t_FmPcdHcParams hc; /**< Relevant only if useHostCommand=TRUE. + Host Command parameters. */ + + t_FmPcdExceptionCallback *f_Exception; /**< Relevant for master (or single) partition only: Callback routine + to be called of PCD exception */ + t_FmPcdIdExceptionCallback *f_ExceptionId; /**< Relevant for master (or single) partition only: Callback routine + to be used for a single scheme and + profile exceptions */ + t_Handle h_App; /**< Relevant for master (or single) partition only: A handle to an + application layer object; This handle will + be passed by the driver upon calling the above callbacks */ +} t_FmPcdParams; + + +/**************************************************************************//** + @Function FM_PCD_Config + + @Description Basic configuration of the PCD module. + Creates descriptor for the FM PCD module. + + @Param[in] p_FmPcdParams A structure of parameters for the initialization of PCD. + + @Return A handle to the initialized module. +*//***************************************************************************/ +t_Handle FM_PCD_Config(t_FmPcdParams *p_FmPcdParams); + +/**************************************************************************//** + @Function FM_PCD_Init + + @Description Initialization of the PCD module. + + @Param[in] h_FmPcd - FM PCD module descriptor. + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error FM_PCD_Init(t_Handle h_FmPcd); + +/**************************************************************************//** + @Function FM_PCD_Free + + @Description Frees all resources that were assigned to FM module. + + Calling this routine invalidates the descriptor. + + @Param[in] h_FmPcd - FM PCD module descriptor. + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error FM_PCD_Free(t_Handle h_FmPcd); + +/**************************************************************************//** + @Group FM_PCD_advanced_init_grp FM PCD Advanced Configuration Unit + + @Description Configuration functions used to change default values. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Function FM_PCD_ConfigPlcrNumOfSharedProfiles + + @Description Calling this routine changes the internal driver data base + from its default selection of exceptions enablement. + [4]. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] numOfSharedPlcrProfiles Number of profiles to + be shared between ports on this partition + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error FM_PCD_ConfigPlcrNumOfSharedProfiles(t_Handle h_FmPcd, uint16_t numOfSharedPlcrProfiles); + +/**************************************************************************//** + @Function FM_PCD_ConfigException + + @Description Calling this routine changes the internal driver data base + from its default selection of exceptions enablement. + By default all exceptions are enabled. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] exception The exception to be selected. + @Param[in] enable TRUE to enable interrupt, FALSE to mask it. + + @Return E_OK on success; Error code otherwise. + + @Cautions Not available for guest partition. +*//***************************************************************************/ +t_Error FM_PCD_ConfigException(t_Handle h_FmPcd, e_FmPcdExceptions exception, bool enable); + +/**************************************************************************//** + @Function FM_PCD_ConfigPlcrAutoRefreshMode + + @Description Calling this routine changes the internal driver data base + from its default selection of exceptions enablement. + By default autorefresh is enabled. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] enable TRUE to enable, FALSE to disable + + @Return E_OK on success; Error code otherwise. + + @Cautions Not available for guest partition. +*//***************************************************************************/ +t_Error FM_PCD_ConfigPlcrAutoRefreshMode(t_Handle h_FmPcd, bool enable); + +/**************************************************************************//** + @Function FM_PCD_ConfigPrsMaxCycleLimit + + @Description Calling this routine changes the internal data structure for + the maximum parsing time from its default value + [0]. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] value 0 to disable the mechanism, or new + maximum parsing time. + + @Return E_OK on success; Error code otherwise. + + @Cautions Not available for guest partition. +*//***************************************************************************/ +t_Error FM_PCD_ConfigPrsMaxCycleLimit(t_Handle h_FmPcd,uint16_t value); + +/** @} */ /* end of FM_PCD_advanced_init_grp group */ +/** @} */ /* end of FM_PCD_init_grp group */ + + +/**************************************************************************//** + @Group FM_PCD_Runtime_grp FM PCD Runtime Unit + + @Description FM PCD Runtime Unit + + The runtime control allows creation of PCD infrastructure modules + such as Network Environment Characteristics, Classification Plan + Groups and Coarse Classification Trees. + It also allows on-the-fly initialization, modification and removal + of PCD modules such as Keygen schemes, coarse classification nodes + and Policer profiles. + + + In order to explain the programming model of the PCD driver interface + a few terms should be explained, and will be used below. + * Distinction Header - One of the 16 protocols supported by the FM parser, + or one of the shim headers (1 or 2). May be a header with a special + option (see below). + * Interchangeable Headers Group- This is a group of Headers recognized + by either one of them. For example, if in a specific context the user + chooses to treat IPv4 and IPV6 in the same way, they may create an + interchangeable Headers Unit consisting of these 2 headers. + * A Distinction Unit - a Distinction Header or an Interchangeable Headers + Group. + * Header with special option - applies to ethernet, mpls, vlan, ipv4 and + ipv6, includes multicast, broadcast and other protocol specific options. + In terms of hardware it relates to the options available in the classification + plan. + * Network Environment Characteristics - a set of Distinction Units that define + the total recognizable header selection for a certain environment. This is + NOT the list of all headers that will ever appear in a flow, but rather + everything that needs distinction in a flow, where distinction is made by keygen + schemes and coarse classification action descriptors. + + The PCD runtime modules initialization is done in stages. The first stage after + initializing the PCD module itself is to establish a Network Flows Environment + Definition. The application may choose to establish one or more such environments. + Later, when needed, the application will have to state, for some of its modules, + to which single environment it belongs. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Description A structure for sw parser labels + *//***************************************************************************/ +typedef struct t_FmPcdPrsLabelParams { + uint32_t instructionOffset; /**< SW parser label instruction offset (2 bytes + resolution), relative to Parser RAM. */ + e_NetHeaderType hdr; /**< The existance of this header will envoke + the sw parser code. */ + uint8_t indexPerHdr; /**< Normally 0, if more than one sw parser + attachments for the same header, use this + index to distinguish between them. */ +} t_FmPcdPrsLabelParams; + +/**************************************************************************//** + @Description A structure for sw parser + *//***************************************************************************/ +typedef struct t_FmPcdPrsSwParams { + bool override; /**< FALSE to invoke a check that nothing else + was loaded to this address, including + internal patches. + TRUE to override any existing code.*/ + uint32_t size; /**< SW parser code size */ + uint16_t base; /**< SW parser base (in instruction counts! + must be larger than 0x20)*/ + uint8_t *p_Code; /**< SW parser code */ + uint32_t swPrsDataParams[FM_PCD_PRS_NUM_OF_HDRS]; + /**< SW parser data (parameters) */ + uint8_t numOfLabels; /**< Number of labels for SW parser. */ + t_FmPcdPrsLabelParams labelsTable[FM_PCD_PRS_NUM_OF_LABELS]; + /**< SW parser labels table, containing + numOfLabels entries */ +} t_FmPcdPrsSwParams; + + +/**************************************************************************//** + @Function FM_PCD_Enable + + @Description This routine should be called after PCD is initialized for enabling all + PCD engines according to their existing configuration. + + @Param[in] h_FmPcd FM PCD module descriptor. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_Init() and when PCD is disabled. +*//***************************************************************************/ +t_Error FM_PCD_Enable(t_Handle h_FmPcd); + +/**************************************************************************//** + @Function FM_PCD_Disable + + @Description This routine may be called when PCD is enabled in order to + disable all PCD engines. It may be called + only when none of the ports in the system are using the PCD. + + @Param[in] h_FmPcd FM PCD module descriptor. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_Init() and when PCD is enabled. +*//***************************************************************************/ +t_Error FM_PCD_Disable(t_Handle h_FmPcd); + + +/**************************************************************************//** + @Function FM_PCD_GetCounter + + @Description Reads one of the FM PCD counters. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] counter The requested counter. + + @Return Counter's current value. + + @Cautions Allowed only following FM_PCD_Init(). + Note that it is user's responsibility to call this routine only + for enabled counters, and there will be no indication if a + disabled counter is accessed. +*//***************************************************************************/ +uint32_t FM_PCD_GetCounter(t_Handle h_FmPcd, e_FmPcdCounters counter); + +/**************************************************************************//** +@Function FM_PCD_PrsLoadSw + +@Description This routine may be called in order to load software parsing code. + + +@Param[in] h_FmPcd FM PCD module descriptor. +@Param[in] p_SwPrs A pointer to a structure of software + parser parameters, including the software + parser image. + +@Return E_OK on success; Error code otherwise. + +@Cautions Allowed only following FM_PCD_Init() and when PCD is disabled. + Not available for guest partition. +*//***************************************************************************/ +t_Error FM_PCD_PrsLoadSw(t_Handle h_FmPcd, t_FmPcdPrsSwParams *p_SwPrs); + +/**************************************************************************//** + @Function FM_PCD_KgSetDfltValue + + @Description Calling this routine sets a global default value to be used + by the keygen when parser does not recognize a required + field/header. + By default default values are 0. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] valueId 0,1 - one of 2 global default values. + @Param[in] value The requested default value. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_Init() and when PCD is disabled. + Not available for guest partition. +*//***************************************************************************/ +t_Error FM_PCD_KgSetDfltValue(t_Handle h_FmPcd, uint8_t valueId, uint32_t value); + +/**************************************************************************//** + @Function FM_PCD_KgSetAdditionalDataAfterParsing + + @Description Calling this routine allows the keygen to access data past + the parser finishing point. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] payloadOffset the number of bytes beyond the parser location. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_Init() and when PCD is disabled. + Not available for guest partition. +*//***************************************************************************/ +t_Error FM_PCD_KgSetAdditionalDataAfterParsing(t_Handle h_FmPcd, uint8_t payloadOffset); + +/**************************************************************************//** + @Function FM_PCD_SetException + + @Description Calling this routine enables/disables PCD interrupts. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] exception The exception to be selected. + @Param[in] enable TRUE to enable interrupt, FALSE to mask it. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). + Not available for guest partition. +*//***************************************************************************/ +t_Error FM_PCD_SetException(t_Handle h_FmPcd, e_FmPcdExceptions exception, bool enable); + +/**************************************************************************//** + @Function FM_PCD_ModifyCounter + + @Description Sets a value to an enabled counter. Use "0" to reset the counter. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] counter The requested counter. + @Param[in] value The requested value to be written into the counter. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). + Not available for guest partition. +*//***************************************************************************/ +t_Error FM_PCD_ModifyCounter(t_Handle h_FmPcd, e_FmPcdCounters counter, uint32_t value); + +/**************************************************************************//** + @Function FM_PCD_SetPlcrStatistics + + @Description This routine may be used to enable/disable policer statistics + counter. By default the statistics is enabled. + + @Param[in] h_FmPcd FM PCD module descriptor + @Param[in] enable TRUE to enable, FALSE to disable. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). + Not available for guest partition. +*//***************************************************************************/ +t_Error FM_PCD_SetPlcrStatistics(t_Handle h_FmPcd, bool enable); + +/**************************************************************************//** + @Function FM_PCD_SetPrsStatistics + + @Description Defines whether to gather parser statistics including all ports. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] enable TRUE to enable, FALSE to disable. + + @Return None + + @Cautions Allowed only following FM_PCD_Init(). + Not available for guest partition. +*//***************************************************************************/ +void FM_PCD_SetPrsStatistics(t_Handle h_FmPcd, bool enable); + +/**************************************************************************//** + @Function FM_PCD_ForceIntr + + @Description Causes an interrupt event on the requested source. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] exception An exception to be forced. + + @Return E_OK on success; Error code if the exception is not enabled, + or is not able to create interrupt. + + @Cautions Allowed only following FM_PCD_Init(). + Not available for guest partition. +*//***************************************************************************/ +t_Error FM_PCD_ForceIntr (t_Handle h_FmPcd, e_FmPcdExceptions exception); + +/**************************************************************************//** + @Function FM_PCD_HcTxConf + + @Description This routine should be called to confirm frames that were + received on the HC confirmation queue. + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in] p_Fd Frame descriptor of the received frame. + + @Cautions Allowed only following FM_PCD_Init(). Allowed only if 'useHostCommand' + option was selected in the initialization. +*//***************************************************************************/ +void FM_PCD_HcTxConf(t_Handle h_FmPcd, t_DpaaFD *p_Fd); + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +/**************************************************************************//** + @Function FM_PCD_DumpRegs + + @Description Dumps all PCD registers + + @Param[in] h_FmPcd A handle to an FM PCD Module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Error FM_PCD_DumpRegs(t_Handle h_FmPcd); + +/**************************************************************************//** + @Function FM_PCD_KgDumpRegs + + @Description Dumps all PCD KG registers + + @Param[in] h_FmPcd A handle to an FM PCD Module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Error FM_PCD_KgDumpRegs(t_Handle h_FmPcd); + +/**************************************************************************//** + @Function FM_PCD_PlcrDumpRegs + + @Description Dumps all PCD Plcr registers + + @Param[in] h_FmPcd A handle to an FM PCD Module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Error FM_PCD_PlcrDumpRegs(t_Handle h_FmPcd); + +/**************************************************************************//** + @Function FM_PCD_PlcrProfileDumpRegs + + @Description Dumps all PCD Plcr registers + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in] h_Profile A handle to a profile. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Error FM_PCD_PlcrProfileDumpRegs(t_Handle h_FmPcd, t_Handle h_Profile); + +/**************************************************************************//** + @Function FM_PCD_PrsDumpRegs + + @Description Dumps all PCD Prs registers + + @Param[in] h_FmPcd A handle to an FM PCD Module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Error FM_PCD_PrsDumpRegs(t_Handle h_FmPcd); + +/**************************************************************************//** + @Function FM_PCD_HcDumpRegs + + @Description Dumps HC Port registers + + @Param[in] h_FmPcd A handle to an FM PCD Module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Error FM_PCD_HcDumpRegs(t_Handle h_FmPcd); +#endif /* (defined(DEBUG_ERRORS) && ... */ + + + +/**************************************************************************//** + @Group FM_PCD_Runtime_tree_buildgrp FM PCD Tree building Unit + + @Description FM PCD Runtime Unit + + This group contains routines for setting, deleting and modifying + PCD resources, for defining the total PCD tree. + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Collection Definitions of coarse classification + parameters as required by keygen (when coarse classification + is the next engine after this scheme). +*//***************************************************************************/ +#define FM_PCD_MAX_NUM_OF_CC_NODES 255 +#define FM_PCD_MAX_NUM_OF_CC_TREES 8 +#define FM_PCD_MAX_NUM_OF_CC_GROUPS 16 +#define FM_PCD_MAX_NUM_OF_CC_UNITS 4 +#define FM_PCD_MAX_NUM_OF_KEYS 256 +#define FM_PCD_MAX_SIZE_OF_KEY 56 +#define FM_PCD_MAX_NUM_OF_CC_ENTRIES_IN_GRP 16 +/* @} */ + +/**************************************************************************//** + @Collection A set of definitions to allow protocol + special option description. +*//***************************************************************************/ +typedef uint32_t protocolOpt_t; /**< A general type to define a protocol option. */ + +typedef protocolOpt_t ethProtocolOpt_t; /**< Ethernet protocol options. */ +#define ETH_BROADCAST 0x80000000 /**< Ethernet Broadcast. */ +#define ETH_MULTICAST 0x40000000 /**< Ethernet Multicast. */ + +typedef protocolOpt_t vlanProtocolOpt_t; /**< Vlan protocol options. */ +#define VLAN_STACKED 0x20000000 /**< Vlan Stacked. */ + +typedef protocolOpt_t mplsProtocolOpt_t; /**< MPLS protocol options. */ +#define MPLS_STACKED 0x10000000 /**< MPLS Stacked. */ + +typedef protocolOpt_t ipv4ProtocolOpt_t; /**< IPv4 protocol options. */ +#define IPV4_BROADCAST_1 0x08000000 /**< IPv4 Broadcast. */ +#define IPV4_MULTICAST_1 0x04000000 /**< IPv4 Multicast. */ +#define IPV4_UNICAST_2 0x02000000 /**< Tunneled IPv4 - Unicast. */ +#define IPV4_MULTICAST_BROADCAST_2 0x01000000 /**< Tunneled IPv4 - Broadcast/Multicast. */ + +typedef protocolOpt_t ipv6ProtocolOpt_t; /**< IPv6 protocol options. */ +#define IPV6_MULTICAST_1 0x00800000 /**< IPv6 Multicast. */ +#define IPV6_UNICAST_2 0x00400000 /**< Tunneled IPv6 - Unicast. */ +#define IPV6_MULTICAST_2 0x00200000 /**< Tunneled IPv6 - Multicast. */ +/* @} */ + +/**************************************************************************//** + @Description A type used for returning the order of the key extraction. + each value in this array represents the index of the extraction + command as defined by the user in the initialization extraction array. + The valid size of this array is the user define number of extractions + required (also marked by the second '0' in this array). +*//***************************************************************************/ +typedef uint8_t t_FmPcdKgKeyOrder [FM_PCD_KG_MAX_NUM_OF_EXTRACTS_PER_KEY]; + +/**************************************************************************//** + @Description All PCD engines +*//***************************************************************************/ +typedef enum e_FmPcdEngine { + e_FM_PCD_INVALID = 0, /**< Invalid PCD engine indicated*/ + e_FM_PCD_DONE, /**< No PCD Engine indicated */ + e_FM_PCD_KG, /**< Keygen indicated */ + e_FM_PCD_CC, /**< Coarse classification indicated */ + e_FM_PCD_PLCR, /**< Policer indicated */ + e_FM_PCD_PRS /**< Parser indicated */ +} e_FmPcdEngine; + +/**************************************************************************//** + @Description An enum for selecting extraction by header types +*//***************************************************************************/ +typedef enum e_FmPcdExtractByHdrType { + e_FM_PCD_EXTRACT_FROM_HDR, /**< Extract bytes from header */ + e_FM_PCD_EXTRACT_FROM_FIELD, /**< Extract bytes from header field */ + e_FM_PCD_EXTRACT_FULL_FIELD /**< Extract a full field */ +} e_FmPcdExtractByHdrType; + +/**************************************************************************//** + @Description An enum for selecting extraction source + (when it is not the header) +*//***************************************************************************/ +typedef enum e_FmPcdExtractFrom { + e_FM_PCD_EXTRACT_FROM_FRAME_START, /**< KG & CC: Extract from beginning of frame */ + e_FM_PCD_EXTRACT_FROM_DFLT_VALUE, /**< KG only: Extract from a default value */ + e_FM_PCD_EXTRACT_FROM_CURR_END_OF_PARSE, /**< KG only: Extract from the point where parsing had finished */ + e_FM_PCD_EXTRACT_FROM_KEY, /**< CC only: Field where saved KEY */ + e_FM_PCD_EXTRACT_FROM_HASH, /**< CC only: Field where saved HASH */ + e_FM_PCD_EXTRACT_FROM_PARSE_RESULT, /**< KG & CC: Extract from the parser result */ + e_FM_PCD_EXTRACT_FROM_ENQ_FQID, /**< KG & CC: Extract from enqueue FQID */ + e_FM_PCD_EXTRACT_FROM_FLOW_ID /**< CC only: Field where saved Dequeue FQID */ +} e_FmPcdExtractFrom; + +/**************************************************************************//** + @Description An enum for selecting extraction type +*//***************************************************************************/ +typedef enum e_FmPcdExtractType { + e_FM_PCD_EXTRACT_BY_HDR, /**< Extract according to header */ + e_FM_PCD_EXTRACT_NON_HDR, /**< Extract from data that is not the header */ + e_FM_PCD_KG_EXTRACT_PORT_PRIVATE_INFO /**< Extract private info as specified by user */ +} e_FmPcdExtractType; + +/**************************************************************************//** + @Description An enum for selecting a default +*//***************************************************************************/ +typedef enum e_FmPcdKgExtractDfltSelect { + e_FM_PCD_KG_DFLT_GBL_0, /**< Default selection is KG register 0 */ + e_FM_PCD_KG_DFLT_GBL_1, /**< Default selection is KG register 1 */ + e_FM_PCD_KG_DFLT_PRIVATE_0, /**< Default selection is a per scheme register 0 */ + e_FM_PCD_KG_DFLT_PRIVATE_1, /**< Default selection is a per scheme register 1 */ + e_FM_PCD_KG_DFLT_ILLEGAL /**< Illegal selection */ +} e_FmPcdKgExtractDfltSelect; + +/**************************************************************************//** + @Description An enum defining all default groups - + each group shares a default value, one of 4 user + initialized values. +*//***************************************************************************/ +typedef enum e_FmPcdKgKnownFieldsDfltTypes { + e_FM_PCD_KG_MAC_ADDR, /**< MAC Address */ + e_FM_PCD_KG_TCI, /**< TCI field */ + e_FM_PCD_KG_ENET_TYPE, /**< ENET Type */ + e_FM_PCD_KG_PPP_SESSION_ID, /**< PPP Session id */ + e_FM_PCD_KG_PPP_PROTOCOL_ID, /**< PPP Protocol id */ + e_FM_PCD_KG_MPLS_LABEL, /**< MPLS label */ + e_FM_PCD_KG_IP_ADDR, /**< IP addr */ + e_FM_PCD_KG_PROTOCOL_TYPE, /**< Protocol type */ + e_FM_PCD_KG_IP_TOS_TC, /**< TOS or TC */ + e_FM_PCD_KG_IPV6_FLOW_LABEL, /**< IPV6 flow label */ + e_FM_PCD_KG_IPSEC_SPI, /**< IPSEC SPI */ + e_FM_PCD_KG_L4_PORT, /**< L4 Port */ + e_FM_PCD_KG_TCP_FLAG, /**< TCP Flag */ + e_FM_PCD_KG_GENERIC_FROM_DATA, /**< grouping implemented by sw, + any data extraction that is not the full + field described above */ + e_FM_PCD_KG_GENERIC_FROM_DATA_NO_V, /**< grouping implemented by sw, + any data extraction without validation */ + e_FM_PCD_KG_GENERIC_NOT_FROM_DATA /**< grouping implemented by sw, + extraction from parser result or + direct use of default value */ +} e_FmPcdKgKnownFieldsDfltTypes; + +/**************************************************************************//** + @Description enum for defining header index when headers may repeat +*//***************************************************************************/ +typedef enum e_FmPcdHdrIndex { + e_FM_PCD_HDR_INDEX_NONE = 0, /**< used when multiple headers not used, also + to specify regular IP (not tunneled). */ + e_FM_PCD_HDR_INDEX_1, /**< may be used for VLAN, MPLS, tunneled IP */ + e_FM_PCD_HDR_INDEX_2, /**< may be used for MPLS, tunneled IP */ + e_FM_PCD_HDR_INDEX_3, /**< may be used for MPLS */ + e_FM_PCD_HDR_INDEX_LAST = 0xFF /**< may be used for VLAN, MPLS */ +} e_FmPcdHdrIndex; + +/**************************************************************************//** + @Description A structure for selcting the policer profile functional type +*//***************************************************************************/ +typedef enum e_FmPcdProfileTypeSelection { + e_FM_PCD_PLCR_PORT_PRIVATE, /**< Port dedicated profile */ + e_FM_PCD_PLCR_SHARED /**< Shared profile (shared within partition) */ +} e_FmPcdProfileTypeSelection; + +/**************************************************************************//** + @Description A structure for selcting the policer profile algorithem +*//***************************************************************************/ +typedef enum e_FmPcdPlcrAlgorithmSelection { + e_FM_PCD_PLCR_PASS_THROUGH, /**< Policer pass through */ + e_FM_PCD_PLCR_RFC_2698, /**< Policer algorythm RFC 2698 */ + e_FM_PCD_PLCR_RFC_4115 /**< Policer algorythm RFC 4115 */ +} e_FmPcdPlcrAlgorithmSelection; + +/**************************************************************************//** + @Description A structure for selcting the policer profile color mode +*//***************************************************************************/ +typedef enum e_FmPcdPlcrColorMode { + e_FM_PCD_PLCR_COLOR_BLIND, /**< Color blind */ + e_FM_PCD_PLCR_COLOR_AWARE /**< Color aware */ +} e_FmPcdPlcrColorMode; + +/**************************************************************************//** + @Description A structure for selcting the policer profile color functional mode +*//***************************************************************************/ +typedef enum e_FmPcdPlcrColor { + e_FM_PCD_PLCR_GREEN, /**< Green */ + e_FM_PCD_PLCR_YELLOW, /**< Yellow */ + e_FM_PCD_PLCR_RED, /**< Red */ + e_FM_PCD_PLCR_OVERRIDE /**< Color override */ +} e_FmPcdPlcrColor; + +/**************************************************************************//** + @Description A structure for selcting the policer profile packet frame length selector +*//***************************************************************************/ +typedef enum e_FmPcdPlcrFrameLengthSelect { + e_FM_PCD_PLCR_L2_FRM_LEN, /**< L2 frame length */ + e_FM_PCD_PLCR_L3_FRM_LEN, /**< L3 frame length */ + e_FM_PCD_PLCR_L4_FRM_LEN, /**< L4 frame length */ + e_FM_PCD_PLCR_FULL_FRM_LEN /**< Full frame length */ +} e_FmPcdPlcrFrameLengthSelect; + +/**************************************************************************//** + @Description An enum for selecting rollback frame +*//***************************************************************************/ +typedef enum e_FmPcdPlcrRollBackFrameSelect { + e_FM_PCD_PLCR_ROLLBACK_L2_FRM_LEN, /**< Rollback L2 frame length */ + e_FM_PCD_PLCR_ROLLBACK_FULL_FRM_LEN /**< Rollback Full frame length */ +} e_FmPcdPlcrRollBackFrameSelect; + +/**************************************************************************//** + @Description A structure for selcting the policer profile packet or byte mode +*//***************************************************************************/ +typedef enum e_FmPcdPlcrRateMode { + e_FM_PCD_PLCR_BYTE_MODE, /**< Byte mode */ + e_FM_PCD_PLCR_PACKET_MODE /**< Packet mode */ +} e_FmPcdPlcrRateMode; + +/**************************************************************************//** + @Description An enum for defining action of frame +*//***************************************************************************/ +typedef enum e_FmPcdDoneAction { + e_FM_PCD_ENQ_FRAME = 0, /**< Enqueue frame */ + e_FM_PCD_DROP_FRAME /**< Drop frame */ +} e_FmPcdDoneAction; + +/**************************************************************************//** + @Description A structure for selecting the policer counter +*//***************************************************************************/ +typedef enum e_FmPcdPlcrProfileCounters { + e_FM_PCD_PLCR_PROFILE_GREEN_PACKET_TOTAL_COUNTER, /**< Green packets counter */ + e_FM_PCD_PLCR_PROFILE_YELLOW_PACKET_TOTAL_COUNTER, /**< Yellow packets counter */ + e_FM_PCD_PLCR_PROFILE_RED_PACKET_TOTAL_COUNTER, /**< Red packets counter */ + e_FM_PCD_PLCR_PROFILE_RECOLOURED_YELLOW_PACKET_TOTAL_COUNTER, /**< Recolored yellow packets counter */ + e_FM_PCD_PLCR_PROFILE_RECOLOURED_RED_PACKET_TOTAL_COUNTER /**< Recolored red packets counter */ +} e_FmPcdPlcrProfileCounters; + +/**************************************************************************//** + @Description A structure for selecting action +*//***************************************************************************/ +typedef enum e_FmPcdAction { + e_FM_PCD_ACTION_NONE, /**< NONE */ + e_FM_PCD_ACTION_EXACT_MATCH, /**< Exact match on the selected extraction*/ + e_FM_PCD_ACTION_INDEXED_LOOKUP /**< Indexed lookup on the selected extraction*/ +} e_FmPcdAction; + +#if defined(FM_CAPWAP_SUPPORT) +/**************************************************************************//** + @Description An enum for selecting type of insert manipulation +*//***************************************************************************/ +typedef enum e_FmPcdManipInsrtType { + e_FM_PCD_MANIP_INSRT_NONE = 0, /**< No insertion */ + e_FM_PCD_MANIP_INSRT_TO_START_OF_FRAME_INT_FRAME_HDR, /**< Insert internal frame header to start of frame */ + e_FM_PCD_MANIP_INSRT_TO_START_OF_FRAME_TEMPLATE /**< Insert template to start of frame*/ +} e_FmPcdManipInsrtType; + +/**************************************************************************//** + @Description An enum for selecting type of remove manipulation +*//***************************************************************************/ +typedef enum e_FmPcdManipRmvParamsType { + e_FM_PCD_MANIP_RMV_NONE = 0, /**< No remove */ + e_FM_PCD_MANIP_RMV_FROM_START_OF_FRAME_TILL_SPECIFIC_LOCATION, /**< Remove from start of frame till (excluding) specified indication */ + e_FM_PCD_MANIP_RMV_FROM_START_OF_FRAME_INCLUDE_SPECIFIC_LOCATION, /**< Remove from start of frame till (including) specified indication */ + e_FM_PCD_MANIP_RMV_INT_FRAME_HDR /**< Remove internal frame header to start of frame */ +} e_FmPcdManipRmvParamsType; + +/**************************************************************************//** + @Description An enum for selecting type of location +*//***************************************************************************/ +typedef enum e_FmPcdManipLocateType { + e_FM_PCD_MANIP_LOC_BY_HDR = 0, /**< Locate according to header */ + e_FM_PCD_MANIP_LOC_NON_HDR /**< Locate from data that is not the header */ +} e_FmPcdManipLocateType; + +/**************************************************************************//** + @Description An enum for selecting type of Timeout mode +*//***************************************************************************/ +typedef enum e_FmPcdManipReassemTimeOutMode { + e_FM_PCD_MANIP_TIME_OUT_BETWEEN_FRAMES, /**< limits the time of the reassm process from the first frag to the last */ + e_FM_PCD_MANIP_TIME_OUT_BETWEEN_FRAG /**< limits the time of receiving the fragment */ +} e_FmPcdManipReassemTimeOutMode; + +/**************************************************************************//** + @Description An enum for selecting type of WaysNumber mode +*//***************************************************************************/ +typedef enum e_FmPcdManipReassemWaysNumber { + e_FM_PCD_MANIP_ONE_WAY_HASH = 1, /**< -------------- */ + e_FM_PCD_MANIP_TWO_WAYS_HASH, /**< -------------- */ + e_FM_PCD_MANIP_THREE_WAYS_HASH, /**< -------------- */ + e_FM_PCD_MANIP_FOUR_WAYS_HASH, /**< four ways hash */ + e_FM_PCD_MANIP_FIVE_WAYS_HASH, /**< -------------- */ + e_FM_PCD_MANIP_SIX_WAYS_HASH, /**< -------------- */ + e_FM_PCD_MANIP_SEVEN_WAYS_HASH, /**< -------------- */ + e_FM_PCD_MANIP_EIGHT_WAYS_HASH /**< eight ways hash*/ +} e_FmPcdManipReassemWaysNumber; + +/**************************************************************************//** + @Description An enum for selecting type of statistics mode +*//***************************************************************************/ +typedef enum e_FmPcdStatsType { + e_FM_PCD_STATS_PER_FLOWID = 0 /**< type where flowId used as index for getting statistics */ +} e_FmPcdStatsType; + +#endif /* FM_CAPWAP_SUPPORT */ + + +/**************************************************************************//** + @Description A Union of protocol dependent special options +*//***************************************************************************/ +typedef union u_FmPcdHdrProtocolOpt { + ethProtocolOpt_t ethOpt; /**< Ethernet options */ + vlanProtocolOpt_t vlanOpt; /**< Vlan options */ + mplsProtocolOpt_t mplsOpt; /**< MPLS options */ + ipv4ProtocolOpt_t ipv4Opt; /**< IPv4 options */ + ipv6ProtocolOpt_t ipv6Opt; /**< IPv6 options */ +} u_FmPcdHdrProtocolOpt; + +/**************************************************************************//** + @Description A union holding all known protocol fields +*//***************************************************************************/ +typedef union t_FmPcdFields { + headerFieldEth_t eth; /**< eth */ + headerFieldVlan_t vlan; /**< vlan */ + headerFieldLlcSnap_t llcSnap; /**< llcSnap */ + headerFieldPppoe_t pppoe; /**< pppoe */ + headerFieldMpls_t mpls; /**< mpls */ + headerFieldIpv4_t ipv4; /**< ipv4 */ + headerFieldIpv6_t ipv6; /**< ipv6 */ + headerFieldUdp_t udp; /**< udp */ + headerFieldTcp_t tcp; /**< tcp */ + headerFieldSctp_t sctp; /**< sctp */ + headerFieldDccp_t dccp; /**< dccp */ + headerFieldGre_t gre; /**< gre */ + headerFieldMinencap_t minencap; /**< minencap */ + headerFieldIpsecAh_t ipsecAh; /**< ipsecAh */ + headerFieldIpsecEsp_t ipsecEsp; /**< ipsecEsp */ + headerFieldUdpEncapEsp_t udpEncapEsp; /**< udpEncapEsp */ +} t_FmPcdFields; + +/**************************************************************************//** + @Description structure for defining header extraction for key generation +*//***************************************************************************/ +typedef struct t_FmPcdFromHdr { + uint8_t size; /**< Size in byte */ + uint8_t offset; /**< Byte offset */ +} t_FmPcdFromHdr; + +/**************************************************************************//** + @Description structure for defining field extraction for key generation +*//***************************************************************************/ +typedef struct t_FmPcdFromField { + t_FmPcdFields field; /**< Field selection */ + uint8_t size; /**< Size in byte */ + uint8_t offset; /**< Byte offset */ +} t_FmPcdFromField; + +/**************************************************************************//** + @Description A structure of parameters used to define a single network + environment unit. + A unit should be defined if it will later be used by one or + more PCD engines to distinguich between flows. +*//***************************************************************************/ +typedef struct t_FmPcdDistinctionUnit { + struct { + e_NetHeaderType hdr; /**< One of the headers supported by the FM */ + u_FmPcdHdrProtocolOpt opt; /**< only one option !! */ + } hdrs[FM_PCD_MAX_NUM_OF_INTERCHANGEABLE_HDRS]; +} t_FmPcdDistinctionUnit; + +/**************************************************************************//** + @Description A structure of parameters used to define the different + units supported by a specific PCD Network Environment + Characteristics module. Each unit represent + a protocol or a group of protocols that may be used later + by the different PCD engined to distinguich between flows. +*//***************************************************************************/ +typedef struct t_FmPcdNetEnvParams { + uint8_t numOfDistinctionUnits; /**< Number of different units to be identified */ + t_FmPcdDistinctionUnit units[FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS]; /**< An array of numOfDistinctionUnits of the + different units to be identified */ +} t_FmPcdNetEnvParams; + +/**************************************************************************//** + @Description structure for defining a single extraction action + when creating a key +*//***************************************************************************/ +typedef struct t_FmPcdExtractEntry { + e_FmPcdExtractType type; /**< Extraction type select */ + union { + struct { + e_NetHeaderType hdr; /**< Header selection */ + bool ignoreProtocolValidation; + /**< Ignore protocol validation */ + e_FmPcdHdrIndex hdrIndex; /**< Relevant only for MPLS, VLAN and tunneled + IP. Otherwise should be cleared.*/ + e_FmPcdExtractByHdrType type; /**< Header extraction type select */ + union { + t_FmPcdFromHdr fromHdr; /**< Extract bytes from header parameters */ + t_FmPcdFromField fromField; /**< Extract bytes from field parameters*/ + t_FmPcdFields fullField; /**< Extract full filed parameters*/ + } extractByHdrType; + } extractByHdr; /**< used when type = e_FM_PCD_KG_EXTRACT_BY_HDR */ + struct { + e_FmPcdExtractFrom src; /**< Non-header extraction source */ + e_FmPcdAction action; /**< Relevant for CC Only */ + uint16_t icIndxMask; /**< Relevant only for CC where + action=e_FM_PCD_ACTION_INDEXED_LOOKUP */ + uint8_t offset; /**< Byte offset */ + uint8_t size; /**< Size in byte */ + } extractNonHdr; /**< used when type = e_FM_PCD_KG_EXTRACT_NON_HDR */ + }; +} t_FmPcdExtractEntry; + +/**************************************************************************//** + @Description A structure for defining masks for each extracted + field in the key. +*//***************************************************************************/ +typedef struct t_FmPcdKgExtractMask { + uint8_t extractArrayIndex; /**< Index in the extraction array, as initialized by user */ + uint8_t offset; /**< Byte offset */ + uint8_t mask; /**< A byte mask (selected bits will be used) */ +} t_FmPcdKgExtractMask; + +/**************************************************************************//** + @Description A structure for defining default selection per groups + of fields +*//***************************************************************************/ +typedef struct t_FmPcdKgExtractDflt { + e_FmPcdKgKnownFieldsDfltTypes type; /**< Default type select*/ + e_FmPcdKgExtractDfltSelect dfltSelect; /**< Default register select */ +} t_FmPcdKgExtractDflt; + +/**************************************************************************//** + @Description A structure for defining all parameters needed for + generation a key and using a hash function +*//***************************************************************************/ +typedef struct t_FmPcdKgKeyExtractAndHashParams { + uint32_t privateDflt0; /**< Scheme default register 0 */ + uint32_t privateDflt1; /**< Scheme default register 1 */ + uint8_t numOfUsedExtracts; /**< defines the valid size of the following array */ + t_FmPcdExtractEntry extractArray [FM_PCD_KG_MAX_NUM_OF_EXTRACTS_PER_KEY]; /**< An array of extractions definition. */ + uint8_t numOfUsedDflts; /**< defines the valid size of the following array */ + t_FmPcdKgExtractDflt dflts[FM_PCD_KG_NUM_OF_DEFAULT_GROUPS]; + /**< For each extraction used in this scheme, specify the required + default register to be used when header is not found. + types not specified in this array will get undefined value. */ + uint8_t numOfUsedMasks; /**< defines the valid size of the following array */ + t_FmPcdKgExtractMask masks[FM_PCD_KG_NUM_OF_EXTRACT_MASKS]; + uint8_t hashShift; /**< hash result right shift. Select the 24 bits out of the 64 hash + result. 0 means using the 24 LSB's, otherwise use the + 24 LSB's after shifting right.*/ + uint32_t hashDistributionNumOfFqids; /**< must be > 1 and a power of 2. Represents the range + of queues for the key and hash functionality */ + uint8_t hashDistributionFqidsShift; /**< selects the FQID bits that will be effected by the hash */ + bool symmetricHash; /**< TRUE to generate the same hash for frames with swapped source and + destination fields on all layers; If TRUE, driver will check that for + all layers, if SRC extraction is selected, DST extraction must also be + selected, and vice versa. */ +} t_FmPcdKgKeyExtractAndHashParams; + +/**************************************************************************//** + @Description A structure of parameters for defining a single + Fqid mask (extracted OR). +*//***************************************************************************/ +typedef struct t_FmPcdKgExtractedOrParams { + e_FmPcdExtractType type; /**< Extraction type select */ + union { + struct { /**< used when type = e_FM_PCD_KG_EXTRACT_BY_HDR */ + e_NetHeaderType hdr; + e_FmPcdHdrIndex hdrIndex; /**< Relevant only for MPLS, VLAN and tunneled + IP. Otherwise should be cleared.*/ + bool ignoreProtocolValidation; + /**< continue extraction even if protocol is not recognized */ + } extractByHdr; + e_FmPcdExtractFrom src; /**< used when type = e_FM_PCD_KG_EXTRACT_NON_HDR */ + }; + uint8_t extractionOffset; /**< Offset for extraction (in bytes). */ + e_FmPcdKgExtractDfltSelect dfltValue; /**< Select register from which extraction is taken if + field not found */ + uint8_t mask; /**< Extraction mask (specified bits are used) */ + uint8_t bitOffsetInFqid; /**< 0-31, Selects which bits of the 24 FQID bits to effect using + the extracted byte; Assume byte is placed as the 8 MSB's in + a 32 bit word where the lower bits + are the FQID; i.e if bitOffsetInFqid=1 than its LSB + will effect the FQID MSB, if bitOffsetInFqid=24 than the + extracted byte will effect the 8 LSB's of the FQID, + if bitOffsetInFqid=31 than the byte's MSB will effect + the FQID's LSB; 0 means - no effect on FQID; + Note that one, and only one of + bitOffsetInFqid or bitOffsetInPlcrProfile must be set (i.e, + extracted byte must effect either FQID or Policer profile).*/ + uint8_t bitOffsetInPlcrProfile; + /**< 0-15, Selects which bits of the 8 policer profile id bits to + effect using the extracted byte; Assume byte is placed + as the 8 MSB's in a 16 bit word where the lower bits + are the policer profile id; i.e if bitOffsetInPlcrProfile=1 + than its LSB will effect the profile MSB, if bitOffsetInFqid=8 + than the extracted byte will effect the whole policer profile id, + if bitOffsetInFqid=15 than the byte's MSB will effect + the Policer Profile id's LSB; + 0 means - no effect on policer profile; Note that one, and only one of + bitOffsetInFqid or bitOffsetInPlcrProfile must be set (i.e, + extracted byte must effect either FQID or Policer profile).*/ +} t_FmPcdKgExtractedOrParams; + +/**************************************************************************//** + @Description A structure for configuring scheme counter +*//***************************************************************************/ +typedef struct t_FmPcdKgSchemeCounter { + bool update; /**< FALSE to keep the current counter state + and continue from that point, TRUE to update/reset + the counter when the scheme is written. */ + uint32_t value; /**< If update=TRUE, this value will be written into the + counter. clear this field to reset the counter. */ +} t_FmPcdKgSchemeCounter; + +/**************************************************************************//** + @Description A structure for defining policer profile + parameters as required by keygen (when policer + is the next engine after this scheme). +*//***************************************************************************/ +typedef struct t_FmPcdKgPlcrProfile { + bool sharedProfile; /**< TRUE if this profile is shared between ports + (i.e. managed by master partition) May not be TRUE + if profile is after Coarse Classification*/ + bool direct; /**< if TRUE, directRelativeProfileId only selects the profile + id, if FALSE fqidOffsetRelativeProfileIdBase is used + together with fqidOffsetShift and numOfProfiles + parameters, to define a range of profiles from + which the keygen result will determine the + destination policer profile. */ + union { + uint16_t directRelativeProfileId; /**< Used if 'direct' is TRUE, to select policer profile. + This parameter should + indicate the policer profile offset within the port's + policer profiles or SHARED window. */ + struct { + uint8_t fqidOffsetShift; /**< shift of KG results without the qid base */ + uint8_t fqidOffsetRelativeProfileIdBase; + /**< OR of KG results without the qid base + This parameter should indicate the policer profile + offset within the port's policer profiles window or + SHARED window depends on sharedProfile */ + uint8_t numOfProfiles; /**< Range of profiles starting at base */ + } indirectProfile; + } profileSelect; +} t_FmPcdKgPlcrProfile; + +/**************************************************************************//** + @Description A structure for CC parameters if CC is the next engine after KG +*//***************************************************************************/ +typedef struct t_FmPcdKgCc { + t_Handle h_CcTree; /**< A handle to a CC Tree */ + uint8_t grpId; /**< CC group id within the CC tree */ + bool plcrNext; /**< TRUE if after CC, in case of data frame, + policing is required. */ + bool bypassPlcrProfileGeneration; + /**< TRUE to bypass keygen policer profile + generation (profile selected is the one selected at + port initialization). */ + t_FmPcdKgPlcrProfile plcrProfile; /**< only if plcrNext=TRUE and bypassPlcrProfileGeneration=FALSE */ +} t_FmPcdKgCc; + +/**************************************************************************//** + @Description A structure for initializing a keygen single scheme +*//***************************************************************************/ +typedef struct t_FmPcdKgSchemeParams { + bool modify; /**< TRUE to change an existing scheme */ + union + { + uint8_t relativeSchemeId; /**< if modify=FALSE:Partition relative scheme id */ + t_Handle h_Scheme; /**< if modify=TRUE: a handle of the existing scheme */ + }id; + bool alwaysDirect; /**< This scheme is reached only directly, i.e. no need for match vector. Keygen will ignore + it when matching */ + struct { /**< HL Relevant only if alwaysDirect = FALSE */ + t_Handle h_NetEnv; /**< A handle to the Network environment as returned + by FM_PCD_SetNetEnvCharacteristics() */ + uint8_t numOfDistinctionUnits; /**< Number of netenv units listed in unitIds array */ + uint8_t unitIds[FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS]; + /**< Indexes as passed to SetNetEnvCharacteristics array*/ + } netEnvParams; + bool useHash; /**< use the KG Hash functionality */ + t_FmPcdKgKeyExtractAndHashParams keyExtractAndHashParams; + /**< used only if useHash = TRUE */ + bool bypassFqidGeneration; /**< Normally - FALSE, TRUE to avoid FQID update in the IC; + In such a case FQID after KG will be the default FQID + defined for the relevant port, or the FQID defined by CC + in cases where CC was the previous engine. */ + uint32_t baseFqid; /**< Base FQID; Relevant only if bypassFqidGeneration = FALSE; + If hash is used and an even distribution is expected + according to hashDistributionNumOfFqids, baseFqid must be aligned to + hashDistributionNumOfFqids. */ + uint8_t numOfUsedExtractedOrs; /**< Number of Fqid masks listed in extractedOrs array*/ + t_FmPcdKgExtractedOrParams extractedOrs[FM_PCD_KG_NUM_OF_GENERIC_REGS]; + /**< IN: FM_PCD_KG_NUM_OF_GENERIC_REGS + registers are shared between qidMasks + functionality and some of the extraction + actions; Normally only some will be used + for qidMask. Driver will return error if + resource is full at initialization time. */ + e_FmPcdEngine nextEngine; /**< may be BMI, PLCR or CC */ + union { /**< depends on nextEngine */ + e_FmPcdDoneAction doneAction; /**< Used when next engine is BMI (done) */ + t_FmPcdKgPlcrProfile plcrProfile; /**< Used when next engine is PLCR */ + t_FmPcdKgCc cc; /**< Used when next engine is CC */ + } kgNextEngineParams; + t_FmPcdKgSchemeCounter schemeCounter; /**< A structure of parameters for updating + the scheme counter */ +} t_FmPcdKgSchemeParams; + +/**************************************************************************//** + @Description A structure for defining CC params when CC is the + next engine after a CC node. +*//***************************************************************************/ +typedef struct t_FmPcdCcNextCcParams { + t_Handle h_CcNode; /**< A handle of the next CC node */ +} t_FmPcdCcNextCcParams; + +/**************************************************************************//** + @Description A structure for defining PLCR params when PLCR is the + next engine after a CC node. +*//***************************************************************************/ +typedef struct t_FmPcdCcNextPlcrParams { + bool overrideParams; /**< TRUE if CC override previously decided parameters*/ + bool sharedProfile; /**< Relevant only if overrideParams=TRUE: + TRUE if this profile is shared between ports */ + uint16_t newRelativeProfileId; /**< Relevant only if overrideParams=TRUE: + (otherwise profile id is taken from keygen); + This parameter should indicate the policer + profile offset within the port's + policer profiles or from SHARED window.*/ + uint32_t newFqid; /**< Relevant only if overrideParams=TRUE: + FQID for enqueuing the frame; + In earlier chips if policer next engine is KEYGEN, + this parameter can be 0, because the KEYGEN + always decides the enqueue FQID.*/ + bool statisticsEn; /**< In the case of TRUE Statistic counter is + incremented for each received frame passed through + this Coarse Classification entry.*/ +} t_FmPcdCcNextPlcrParams; + +/**************************************************************************//** + @Description A structure for defining enqueue params when BMI is the + next engine after a CC node. +*//***************************************************************************/ +typedef struct t_FmPcdCcNextEnqueueParams { + + e_FmPcdDoneAction action; /**< Action - when next engine is BMI (done) */ + bool overrideFqid; /**< TRUE if CC override previously decided Fqid(by Keygen), + relevant if action = e_FM_PCD_ENQ_FRAME */ + uint32_t newFqid; /**< Valid if overrideFqid=TRUE, FQID for enqueuing the frame + (otherwise FQID is taken from keygen), + relevant if action = e_FM_PCD_ENQ_FRAME*/ + bool statisticsEn; /**< In the case of TRUE Statistic counter is + incremented for each received frame passed through + this Coarse Classification entry.*/ +} t_FmPcdCcNextEnqueueParams; + +/**************************************************************************//** + @Description A structure for defining KG params when KG is the + next engine after a CC node. +*//***************************************************************************/ +typedef struct t_FmPcdCcNextKgParams { + bool overrideFqid; /**< TRUE if CC override previously decided Fqid (by keygen), + Note - this parameters irrelevant for earlier chips*/ + uint32_t newFqid; /**< Valid if overrideFqid=TRUE, FQID for enqueuing the frame + (otherwise FQID is taken from keygen), + Note - this parameters irrelevant for earlier chips*/ + t_Handle h_DirectScheme; /**< Direct scheme handle to go to. */ + bool statisticsEn; /**< In the case of TRUE Statistic counter is + incremented for each received frame passed through + this Coarse Classification entry.*/ +} t_FmPcdCcNextKgParams; + +/**************************************************************************//** + @Description A structure for defining next engine params after a CC node. +*//***************************************************************************/ +typedef struct t_FmPcdCcNextEngineParams { + e_FmPcdEngine nextEngine; /**< User has to initialize parameters + according to nextEngine definition */ + union { + t_FmPcdCcNextCcParams ccParams; /**< Parameters in case next engine is CC */ + t_FmPcdCcNextPlcrParams plcrParams; /**< Parameters in case next engine is PLCR */ + t_FmPcdCcNextEnqueueParams enqueueParams; /**< Parameters in case next engine is BMI */ + t_FmPcdCcNextKgParams kgParams; /**< Parameters in case next engine is KG */ + } params; +#if defined(FM_CAPWAP_SUPPORT) + t_Handle h_Manip; /**< Handler to headerManip. + Relevant if next engine of the type result + (e_FM_PCD_PLCR, e_FM_PCD_KG, e_FM_PCD_DONE) */ +#endif /* defined(FM_CAPWAP_SUPPORT) || ... */ +} t_FmPcdCcNextEngineParams; + +/**************************************************************************//** + @Description A structure for defining a single CC Key parameters +*//***************************************************************************/ +typedef struct t_FmPcdCcKeyParams { + uint8_t *p_Key; /**< pointer to the key of the size defined in keySize*/ + uint8_t *p_Mask; /**< pointer to the Mask per key of the size defined + in keySize. p_Key and p_Mask (if defined) has to be + of the same size defined in the keySize */ + t_FmPcdCcNextEngineParams ccNextEngineParams; + /**< parameters for the next for the defined Key in + the p_Key */ +} t_FmPcdCcKeyParams; + +/**************************************************************************//** + @Description A structure for defining CC Keys parameters +*//***************************************************************************/ +typedef struct t_KeysParams { + uint8_t numOfKeys; /**< Number Of relevant Keys */ + uint8_t keySize; /**< size of the key - in the case of the extraction of + the type FULL_FIELD keySize has to be as standard size of the relevant + key. In the another type of extraction keySize has to be as size of extraction. + In the case of action = e_FM_PCD_ACTION_INDEXED_LOOKUP the size of keySize has to be 2*/ + t_FmPcdCcKeyParams keyParams[FM_PCD_MAX_NUM_OF_KEYS]; + /**< it's array with numOfKeys entries each entry in + the array of the type t_FmPcdCcKeyParams */ + t_FmPcdCcNextEngineParams ccNextEngineParamsForMiss; + /**< parameters for the next step of + unfound (or undefined) key . Not relevant in the case + of action = e_FM_PCD_ACTION_INDEXED_LOOKUP*/ +} t_KeysParams; + +/**************************************************************************//** + @Description A structure for defining the CC node params +*//***************************************************************************/ +typedef struct t_FmPcdCcNodeParams { + t_FmPcdExtractEntry extractCcParams; /**< params which defines extraction parameters */ + t_KeysParams keysParams; /**< params which defines Keys parameters of the + extraction defined in extractCcParams */ +} t_FmPcdCcNodeParams; + +/**************************************************************************//** + @Description A structure for defining each CC tree group in term of + NetEnv units and the action to be taken in each case. + the unitIds list must be in order from lower to higher indexes. + + t_FmPcdCcNextEngineParams is a list of 2^numOfDistinctionUnits + structures where each defines the next action to be taken for + each units combination. for example: + numOfDistinctionUnits = 2 + unitIds = {1,3} + p_NextEnginePerEntriesInGrp[0] = t_FmPcdCcNextEngineParams for the case that + unit 1 - not found; unit 3 - not found; + p_NextEnginePerEntriesInGrp[1] = t_FmPcdCcNextEngineParams for the case that + unit 1 - not found; unit 3 - found; + p_NextEnginePerEntriesInGrp[2] = t_FmPcdCcNextEngineParams for the case that + unit 1 - found; unit 3 - not found; + p_NextEnginePerEntriesInGrp[3] = t_FmPcdCcNextEngineParams for the case that + unit 1 - found; unit 3 - found; +*//***************************************************************************/ +typedef struct t_FmPcdCcGrpParams { + uint8_t numOfDistinctionUnits; /**< up to 4 */ + uint8_t unitIds[FM_PCD_MAX_NUM_OF_CC_UNITS]; + /**< Indexes of the units as defined in + FM_PCD_SetNetEnvCharacteristics() */ + t_FmPcdCcNextEngineParams nextEnginePerEntriesInGrp[FM_PCD_MAX_NUM_OF_CC_ENTRIES_IN_GRP]; + /**< Max size is 16 - if only one group used */ +} t_FmPcdCcGrpParams; + +/**************************************************************************//** + @Description A structure for defining the CC tree groups +*//***************************************************************************/ +typedef struct t_FmPcdCcTreeParams { + t_Handle h_NetEnv; /**< A handle to the Network environment as returned + by FM_PCD_SetNetEnvCharacteristics() */ + uint8_t numOfGrps; /**< Number of CC groups within the CC tree */ + t_FmPcdCcGrpParams ccGrpParams[FM_PCD_MAX_NUM_OF_CC_GROUPS]; /**< Parameters for each group. */ +} t_FmPcdCcTreeParams; + +/**************************************************************************//** + @Description A structure for defining parameters for byte rate +*//***************************************************************************/ +typedef struct t_FmPcdPlcrByteRateModeParams { + e_FmPcdPlcrFrameLengthSelect frameLengthSelection; /**< Frame length selection */ + e_FmPcdPlcrRollBackFrameSelect rollBackFrameSelection; /**< relevant option only e_FM_PCD_PLCR_L2_FRM_LEN, + e_FM_PCD_PLCR_FULL_FRM_LEN */ +} t_FmPcdPlcrByteRateModeParams; + +/**************************************************************************//** + @Description A structure for selcting the policer profile RFC-2698 or + RFC-4115 parameters +*//***************************************************************************/ +typedef struct t_FmPcdPlcrNonPassthroughAlgParams { + e_FmPcdPlcrRateMode rateMode; /**< Byte / Packet */ + t_FmPcdPlcrByteRateModeParams byteModeParams; /**< Valid for Byte NULL for Packet */ + uint32_t comittedInfoRate; /**< KBits/Sec or Packets/Sec */ + uint32_t comittedBurstSize; /**< Bytes/Packets */ + uint32_t peakOrAccessiveInfoRate; /**< KBits/Sec or Packets/Sec */ + uint32_t peakOrAccessiveBurstSize; /**< Bytes/Packets */ +} t_FmPcdPlcrNonPassthroughAlgParams; + +/**************************************************************************//** + @Description A union for defining Policer next engine parameters +*//***************************************************************************/ +typedef union u_FmPcdPlcrNextEngineParams { + e_FmPcdDoneAction action; /**< Action - when next engine is BMI (done) */ + t_Handle h_Profile; /**< Policer profile handle - used when next engine + is PLCR, must be a SHARED profile */ + t_Handle h_DirectScheme; /**< Direct scheme select - when next engine is Keygen */ +} u_FmPcdPlcrNextEngineParams; + +/**************************************************************************//** + @Description A structure for selecting the policer profile entry parameters +*//***************************************************************************/ +typedef struct t_FmPcdPlcrProfileParams { + bool modify; /**< TRUE to change an existing profile */ + union { + struct { + e_FmPcdProfileTypeSelection profileType; /**< Type of policer profile */ + t_Handle h_FmPort; /**< Relevant for per-port profiles only */ + uint16_t relativeProfileId; /**< Profile id - relative to shared group or to port */ + } newParams; /**< use it when modify=FALSE */ + t_Handle h_Profile; /**< A handle to a profile - use it when modify=TRUE */ + } id; + e_FmPcdPlcrAlgorithmSelection algSelection; /**< Profile Algorithm PASS_THROUGH, RFC_2698, RFC_4115 */ + e_FmPcdPlcrColorMode colorMode; /**< COLOR_BLIND, COLOR_AWARE */ + + union { + e_FmPcdPlcrColor dfltColor; /**< For Color-Blind Pass-Through mode. the policer will re-color + any incoming packet with the default value. */ + e_FmPcdPlcrColor override; /**< For Color-Aware modes. The profile response to a + pre-color value of 2'b11. */ + } color; + + t_FmPcdPlcrNonPassthroughAlgParams nonPassthroughAlgParams; /**< RFC2698 or RFC4115 params */ + + e_FmPcdEngine nextEngineOnGreen; /**< Green next engine type */ + u_FmPcdPlcrNextEngineParams paramsOnGreen; /**< Green next engine params */ + + e_FmPcdEngine nextEngineOnYellow; /**< Yellow next engine type */ + u_FmPcdPlcrNextEngineParams paramsOnYellow; /**< Yellow next engine params */ + + e_FmPcdEngine nextEngineOnRed; /**< Red next engine type */ + u_FmPcdPlcrNextEngineParams paramsOnRed; /**< Red next engine params */ + + bool trapProfileOnFlowA; /**< Trap on flow A */ + bool trapProfileOnFlowB; /**< Trap on flow B */ + bool trapProfileOnFlowC; /**< Trap on flow C */ +} t_FmPcdPlcrProfileParams; + +#if defined(FM_CAPWAP_SUPPORT) +/**************************************************************************//** + @Description A structure for selecting the location of manipulation +*//***************************************************************************/ +typedef struct t_FmPcdManipLocationParams { + e_FmPcdManipLocateType type; /**< location of manipulation type select */ + struct { /**< used when type = e_FM_PCD_MANIP_BY_HDR */ + e_NetHeaderType hdr; /**< Header selection */ + e_FmPcdHdrIndex hdrIndex; /**< Relevant only for MPLS, VLAN and tunneled + IP. Otherwise should be cleared. */ + bool byField; /**< TRUE if the location of manipulation is according to some field in the specific header*/ + t_FmPcdFields fullField; /**< Relevant only when byField = TRUE: Extract field */ + } manipByHdr; +} t_FmPcdManipLocationParams; + +/**************************************************************************//** + @Description structure for defining insert manipulation + of the type e_FM_PCD_MANIP_INSRT_TO_START_OF_FRAME_TEMPLATE +*//***************************************************************************/ +typedef struct t_FmPcdManipInsrtByTemplateParams { + uint8_t size; /**< size of insert template to the start of the frame. */ + uint8_t hdrTemplate[FM_PCD_MAX_MANIP_INSRT_TEMPLATE_SIZE]; + /**< array of the insertion template. */ + + bool modifyOuterIp; /**< TRUE if user want to modify some fields in outer IP. */ + struct { + uint16_t ipOuterOffset; /**< offset of outer IP in the insert template, relevant if modifyOuterIp = TRUE.*/ + uint16_t dscpEcn; /**< value of dscpEcn in IP outer, relevant if modifyOuterIp = TRUE. + in IPV4 dscpEcn only byte - it has to be adjusted to the right*/ + bool udpPresent; /**< TRUE if UDP is present in the insert template, relevant if modifyOuterIp = TRUE.*/ + uint8_t udpOffset; /**< offset in the insert template of UDP, relevant if modifyOuterIp = TRUE and udpPresent=TRUE.*/ + uint8_t ipIdentGenId; /**< Used by FMan-CTRL to calculate IP-identification field,relevant if modifyOuterIp = TRUE.*/ + bool recalculateLength; /**< TRUE if recalculate length has to be performed due to the engines in the path which can change the frame later, relevant if modifyOuterIp = TRUE.*/ + struct { + uint8_t blockSize; /**< The CAAM block-size; Used by FMan-CTRL to calculate the IP-total-len field.*/ + uint8_t extraBytesAddedAlignedToBlockSize; /**< Used by FMan-CTRL to calculate the IP-total-len field and UDP length*/ + uint8_t extraBytesAddedNotAlignedToBlockSize;/**< Used by FMan-CTRL to calculate the IP-total-len field and UDP length.*/ + } recalculateLengthParams; /**< recalculate length parameters - relevant if modifyOuterIp = TRUE and recalculateLength = TRUE */ + } modifyOuterIpParams; /**< Outer IP modification parameters - ignored if modifyOuterIp is FALSE */ + + bool modifyOuterVlan; /**< TRUE if user wants to modify vpri field in the outer VLAN header*/ + struct { + uint8_t vpri; /**< value of vpri, relevant if modifyOuterVlan = TRUE + vpri only 3 bits, it has to be adjusted to the right*/ + } modifyOuterVlanParams; +} t_FmPcdManipInsrtByTemplateParams; +#endif /* defined(FM_CAPWAP_SUPPORT) || ... */ + + +#ifdef FM_CAPWAP_SUPPORT +/**************************************************************************//** + @Description structure for defining CAPWAP fragmentation +*//***************************************************************************/ +typedef struct t_CapwapFragmentationParams { + uint16_t sizeForFragmentation; /**< if length of the frame is greater than this value, CAPWAP fragmentation will be executed.*/ + bool headerOptionsCompr; /**< TRUE - first fragment include the CAPWAP header options field, + and all other fragments exclude the CAPWAP options field, + FALSE - all fragments include CAPWAP header options field. */ +} t_CapwapFragmentationParams; + +/**************************************************************************//** + @Description structure for defining CAPWAP Re-assembly +*//***************************************************************************/ +typedef struct t_CapwapReassemblyParams { + uint16_t maxNumFramesInProcess; /**< Number of frames which can be processed by Reassembly in the same time. + It has to be power of 2. + In the case numOfFramesPerHashEntry == e_FM_PCD_MANIP_FOUR_WAYS_HASH, + maxNumFramesInProcess has to be in the range of 4 - 512, + In the case numOfFramesPerHashEntry == e_FM_PCD_MANIP_EIGHT_WAYS_HASH, + maxNumFramesInProcess has to be in the range of 8 - 2048 */ + bool haltOnDuplicationFrag; /**< In the case of TRUE, Reassembly process halted due to duplicated fragment, + and all processed fragments passed for enqueue with error indication. + In the case of FALSE, only duplicated fragment passed for enqueue with error indication */ + + e_FmPcdManipReassemTimeOutMode timeOutMode; /**< Expiration delay initialized by Reassembly process */ + uint32_t fqidForTimeOutFrames; /**< Fqid in which time out frames will enqueue during Time Out Process */ + uint32_t timeoutRoutineRequestTime; + /**< Represents the time interval in microseconds between consecutive + timeout routine requests It has to be power of 2. */ + uint32_t timeoutThresholdForReassmProcess; + /**< Represents the time interval in microseconds which defines + if opened frame (at least one fragment was processed but not all the fragments)is found as too old*/ + + e_FmPcdManipReassemWaysNumber numOfFramesPerHashEntry;/**< Number of frames per hash entry needed for reassembly process */ +} t_CapwapReassemblyParams; +#endif /* FM_CAPWAP_SUPPORT */ + + +#if defined(FM_CAPWAP_SUPPORT) +/**************************************************************************//** + @Description structure for defining fragmentation/reassembly +*//***************************************************************************/ +typedef struct t_FmPcdManipFragOrReasmParams { + bool frag; /**< TRUE if using the structure for fragmentation, + otherwise this structure is used for reassembly */ + uint8_t extBufPoolIndx; /**< Index of the buffer pool ID which was configured for port + and can be used for manipulation; + NOTE: This field is relevant only for CAPWAP fragmentation + and reassembly */ + e_NetHeaderType hdr; /**< Header selection */ + union { +#ifdef FM_CAPWAP_SUPPORT + t_CapwapFragmentationParams capwapFragParams; /**< Structure for CAPWAP fragmentation, relevant if frag = TRUE, hdr = HEADER_TYPE_CAPWAP */ + t_CapwapReassemblyParams capwapReasmParams; /**< Structure for CAPWAP reassembly, relevant if frag = FALSE, hdr = HEADER_TYPE_CAPWAP */ +#endif /* FM_CAPWAP_SUPPORT */ + }; +} t_FmPcdManipFragOrReasmParams; + +/**************************************************************************//** + @Description structure for defining insert manipulation +*//***************************************************************************/ +typedef struct t_FmPcdManipInsrtParams { + e_FmPcdManipInsrtType type; /**< Type of insert manipulation */ + union { + t_FmPcdManipInsrtByTemplateParams insrtByTemplateParams; + /**< parameters for insert manipulation, relevant if + type = e_FM_PCD_MANIP_INSRT_TO_START_OF_FRAME_TEMPLATE */ + }; +} t_FmPcdManipInsrtParams; + +/**************************************************************************//** + @Description structure for defining remove manipulation +*//***************************************************************************/ +typedef struct t_FmPcdManipRmvParams { + e_FmPcdManipRmvParamsType type; /**< Type of remove manipulation */ + t_FmPcdManipLocationParams rmvSpecificLocationParams; + /**< Specified location of remove manipulation; + This params should be initialized in cases: + - e_FM_PCD_MANIP_RMV_FROM_START_OF_FRAME_TILL_SPECIFIC_LOCATION + - e_FM_PCD_MANIP_RMV_FROM_START_OF_FRAME_INCLUDE_SPECIFIC_LOCATION */ +} t_FmPcdManipRmvParams; + +/**************************************************************************//** + @Description structure for defining manipulation +*//***************************************************************************/ +typedef struct t_FmPcdManipParams { + bool rmv; /**< TRUE, if defined remove manipulation */ + t_FmPcdManipRmvParams rmvParams; /**< Parameters for remove manipulation, relevant if rmv = TRUE */ + + bool insrt; /**< TRUE, if defined insert manipulation */ + t_FmPcdManipInsrtParams insrtParams; /**< Parameters for insert manipulation, relevant if insrt = TRUE */ + + bool fragOrReasm; /**< TRUE, if defined fragmentation/reassembly manipulation */ + t_FmPcdManipFragOrReasmParams fragOrReasmParams; /**< Parameters for fragmentation/reassembly manipulation, relevant if fragOrReasm = TRUE */ + + /**< General parameters */ + bool treatFdStatusFieldsAsErrors; + /**< Set to TRUE when the port that is using this manip is chained + to SEC (i.e. the traffic was forwarded from SEC) */ +} t_FmPcdManipParams; + +/**************************************************************************//** + @Description structure for defining statistics node +*//***************************************************************************/ +typedef struct t_FmPcdStatsParams { + e_FmPcdStatsType type; /**< type of statistics node */ +} t_FmPcdStatsParams; +#endif /* defined(FM_CAPWAP_SUPPORT) || ... */ + + +/**************************************************************************//** + @Function FM_PCD_SetNetEnvCharacteristics + + @Description Define a set of Network Environment Characteristics. + When setting an environment it is important to understand its + application. It is not meant to describe the flows that will run + on the ports using this environment, but what the user means TO DO + with the PCD mechanisms in order to parse-classify-distribute those + frames. + By specifying a distinction unit, the user means it would use that option + for distinction between frames at either a keygen scheme keygen or a coarse + classification action descriptor. Using interchangeable headers to define a + unit means that the user is indifferent to which of the interchangeable + headers is present in the frame, and they want the distinction to be based + on the presence of either one of them. + Depending on context, there are limitations to the use of environments. A + port using the PCD functionality is bound to an environment. Some or even + all ports may share an environment but also an environment per port is + possible. When initializing a scheme, a classification plan group (see below), + or a coarse classification tree, one of the initialized environments must be + stated and related to. When a port is bound to a scheme, a classification + plan group, or a coarse classification tree, it MUST be bound to the same + environment. + The different PCD modules, may relate (for flows definition) ONLY on + distinction units as defined by their environment. When initializing a + scheme for example, it may not choose to select IPV4 as a match for + recognizing flows unless it was defined in the relating environment. In + fact, to guide the user through the configuration of the PCD, each module's + characterization in terms of flows is not done using protocol names, but using + environment indexes. + In terms of HW implementation, the list of distinction units sets the LCV vectors + and later used for match vector, classification plan vectors and coarse classification + indexing. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] p_NetEnvParams A structure of parameters for the initialization of + the network environment. + + @Return A handle to the initialized object on success; NULL code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Handle FM_PCD_SetNetEnvCharacteristics(t_Handle h_FmPcd, t_FmPcdNetEnvParams *p_NetEnvParams); + +/**************************************************************************//** + @Function FM_PCD_DeleteNetEnvCharacteristics + + @Description Deletes a set of Network Environment Characteristics. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] h_NetEnv A handle to the Network environment. + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error FM_PCD_DeleteNetEnvCharacteristics(t_Handle h_FmPcd, t_Handle h_NetEnv); + +/**************************************************************************//** + @Function FM_PCD_KgSetScheme + + @Description Initializing or modifying and enabling a scheme for the keygen. + This routine should be called for adding or modifying a scheme. + When a scheme needs modifying, the API requires that it will be + rewritten. In such a case 'modify' should be TRUE. If the + routine is called for a valid scheme and 'modify' is FALSE, + it will return error. + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in,out] p_Scheme A structure of parameters for defining the scheme + + @Return A handle to the initialized scheme on success; NULL code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Handle FM_PCD_KgSetScheme (t_Handle h_FmPcd, + t_FmPcdKgSchemeParams *p_Scheme); + +/**************************************************************************//** + @Function FM_PCD_KgDeleteScheme + + @Description Deleting an initialized scheme. + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in] h_Scheme scheme handle as returned by FM_PCD_KgSetScheme + + @Return E_OK on success; Error code otherwise. + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Error FM_PCD_KgDeleteScheme(t_Handle h_FmPcd, t_Handle h_Scheme); + +/**************************************************************************//** + @Function FM_PCD_KgGetSchemeCounter + + @Description Reads scheme packet counter. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] h_Scheme scheme handle as returned by FM_PCD_KgSetScheme. + + @Return Counter's current value. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +uint32_t FM_PCD_KgGetSchemeCounter(t_Handle h_FmPcd, t_Handle h_Scheme); + +/**************************************************************************//** + @Function FM_PCD_KgSetSchemeCounter + + @Description Writes scheme packet counter. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] h_Scheme scheme handle as returned by FM_PCD_KgSetScheme. + @Param[in] value New scheme counter value - typically '0' for + resetting the counter. + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Error FM_PCD_KgSetSchemeCounter(t_Handle h_FmPcd, t_Handle h_Scheme, uint32_t value); + +/**************************************************************************//** + @Function FM_PCD_CcBuildTree + + @Description This routine must be called to define a complete coarse + classification tree. This is the way to define coarse + classification to a certain flow - the keygen schemes + may point only to trees defined in this way. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] p_FmPcdCcTreeParams A structure of parameters to define the tree. + + @Return A handle to the initialized object on success; NULL code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Handle FM_PCD_CcBuildTree (t_Handle h_FmPcd, + t_FmPcdCcTreeParams *p_FmPcdCcTreeParams); + +/**************************************************************************//** + @Function FM_PCD_CcDeleteTree + + @Description Deleting an built tree. + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in] h_CcTree A handle to a CC tree. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Error FM_PCD_CcDeleteTree(t_Handle h_FmPcd, t_Handle h_CcTree); + +/**************************************************************************//** + @Function FM_PCD_CcSetNode + + @Description This routine should be called for each CC (coarse classification) + node. The whole CC tree should be built bottom up so that each + node points to already defined nodes. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] p_CcNodeParam A structure of parameters defining the CC node + + @Return A handle to the initialized object on success; NULL code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Handle FM_PCD_CcSetNode(t_Handle h_FmPcd, + t_FmPcdCcNodeParams *p_CcNodeParam); + +/**************************************************************************//** + @Function FM_PCD_CcDeleteNode + + @Description Deleting an built node. + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in] h_CcNode A handle to a CC node. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Error FM_PCD_CcDeleteNode(t_Handle h_FmPcd, t_Handle h_CcNode); + +/**************************************************************************//** + @Function FM_PCD_CcTreeModifyNextEngine + + @Description Modify the Next Engine Parameters in the entry of the tree. + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in] h_CcTree A handle to the tree + @Param[in] grpId A Group index in the tree + @Param[in] index Entry index in the group defined by grpId + @Param[in] p_FmPcdCcNextEngineParams A structure for defining new next engine params + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_CcBuildTree(). +*//***************************************************************************/ +t_Error FM_PCD_CcTreeModifyNextEngine(t_Handle h_FmPcd, t_Handle h_CcTree, uint8_t grpId, uint8_t index, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams); + +/**************************************************************************//** + @Function FM_PCD_CcNodeModifyNextEngine + + @Description Modify the Next Engine Parameters in the relevant key entry of the node. + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in] h_CcNode A handle to the node + @Param[in] keyIndex Key index for Next Engine Params modifications + @Param[in] p_FmPcdCcNextEngineParams A structure for defining new next engine params + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_CcSetNode(). +*//***************************************************************************/ +t_Error FM_PCD_CcNodeModifyNextEngine(t_Handle h_FmPcd, t_Handle h_CcNode, uint8_t keyIndex, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams); + +/**************************************************************************//** + @Function FM_PCD_CcNodeModifyMissNextEngine + + @Description Modify the Next Engine Parameters of the Miss key case of the node. + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in] h_CcNode A handle to the node + @Param[in] p_FmPcdCcNextEngineParams A structure for defining new next engine params + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_CcSetNode(). +*//***************************************************************************/ +t_Error FM_PCD_CcNodeModifyMissNextEngine(t_Handle h_FmPcd, t_Handle h_CcNode, t_FmPcdCcNextEngineParams *p_FmPcdCcNextEngineParams); + +/**************************************************************************//** + @Function FM_PCD_CcNodeRemoveKey + + @Description Remove the key (include Next Engine Parameters of this key) defined by the index of the relevant node . + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in] h_CcNode A handle to the node + @Param[in] keyIndex Key index for removing + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_CcSetNode() not only of the relevant node but also + the node that points to this node +*//***************************************************************************/ +t_Error FM_PCD_CcNodeRemoveKey(t_Handle h_FmPcd, t_Handle h_CcNode, uint8_t keyIndex); + +/**************************************************************************//** + @Function FM_PCD_CcNodeAddKey + + @Description Add the key(include Next Engine Parameters of this key)in the index defined by the keyIndex . + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in] h_CcNode A handle to the node + @Param[in] keyIndex Key index for adding + @Param[in] keySize Key size of added key + @Param[in] p_KeyParams A pointer to the parameters includes new key with Next Engine Parameters + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_CcSetNode() not only of the relevant node but also + the node that points to this node +*//***************************************************************************/ +t_Error FM_PCD_CcNodeAddKey(t_Handle h_FmPcd, t_Handle h_CcNode, uint8_t keyIndex, uint8_t keySize, t_FmPcdCcKeyParams *p_KeyParams); + +/**************************************************************************//** + @Function FM_PCD_CcNodeModifyKeyAndNextEngine + + @Description Modify the key and Next Engine Parameters of this key in the index defined by the keyIndex . + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in] h_CcNode A handle to the node + @Param[in] keyIndex Key index for adding + @Param[in] keySize Key size of added key + @Param[in] p_KeyParams A pointer to the parameters includes modified key and modified Next Engine Parameters + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_CcSetNode() not only of the relevant node but also + the node that points to this node +*//***************************************************************************/ +t_Error FM_PCD_CcNodeModifyKeyAndNextEngine(t_Handle h_FmPcd, t_Handle h_CcNode, uint8_t keyIndex, uint8_t keySize, t_FmPcdCcKeyParams *p_KeyParams); + +/**************************************************************************//** + @Function FM_PCD_CcNodeModifyKey + + @Description Modify the key in the index defined by the keyIndex . + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in] h_CcNode A handle to the node + @Param[in] keyIndex Key index for adding + @Param[in] keySize Key size of added key + @Param[in] p_Key A pointer to the new key + @Param[in] p_Mask A pointer to the new mask if relevant, otherwise pointer to NULL + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_CcSetNode() not only of the relevant node but also + the node that points to this node +*//***************************************************************************/ +t_Error FM_PCD_CcNodeModifyKey(t_Handle h_FmPcd, t_Handle h_CcNode, uint8_t keyIndex, uint8_t keySize, uint8_t *p_Key, uint8_t *p_Mask); + +/**************************************************************************//** + @Function FM_PCD_CcNodeGetKeyCounter + + @Description This routine may be used to get a counter of specific key in a CC + Node; This counter reflects how many frames passed that were matched + this key. + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in] h_CcNode A handle to the node + @Param[in] keyIndex Key index for adding + + @Return The specific key counter. + + @Cautions Allowed only following FM_PCD_CcSetNode() not only of the relevant node but also + the node that points to this node +*//***************************************************************************/ +uint32_t FM_PCD_CcNodeGetKeyCounter(t_Handle h_FmPcd, t_Handle h_CcNode, uint8_t keyIndex); + +/**************************************************************************//** + @Function FM_PCD_PlcrSetProfile + + @Description Sets a profile entry in the policer profile table. + The routine overrides any existing value. + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in] p_Profile A structure of parameters for defining a + policer profile entry. + + @Return A handle to the initialized object on success; NULL code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Handle FM_PCD_PlcrSetProfile(t_Handle h_FmPcd, + t_FmPcdPlcrProfileParams *p_Profile); + +/**************************************************************************//** + @Function FM_PCD_PlcrDeleteProfile + + @Description Delete a profile entry in the policer profile table. + The routine set entry to invalid. + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in] h_Profile A handle to the profile. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Error FM_PCD_PlcrDeleteProfile(t_Handle h_FmPcd, t_Handle h_Profile); + +/**************************************************************************//** + @Function FM_PCD_PlcrGetProfileCounter + + @Description Sets an entry in the classification plan. + The routine overrides any existing value. + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in] h_Profile A handle to the profile. + @Param[in] counter Counter selector. + + @Return specific counter value. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +uint32_t FM_PCD_PlcrGetProfileCounter(t_Handle h_FmPcd, t_Handle h_Profile, e_FmPcdPlcrProfileCounters counter); + +/**************************************************************************//** + @Function FM_PCD_PlcrSetProfileCounter + + @Description Sets an entry in the classification plan. + The routine overrides any existing value. + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in] h_Profile A handle to the profile. + @Param[in] counter Counter selector. + @Param[in] value value to set counter with. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Error FM_PCD_PlcrSetProfileCounter(t_Handle h_FmPcd, t_Handle h_Profile, e_FmPcdPlcrProfileCounters counter, uint32_t value); + +#if defined(FM_CAPWAP_SUPPORT) +/**************************************************************************//** + @Function FM_PCD_ManipSetNode + + @Description This routine should be called for defining a manipulation + node. A manipulation node must be defined before the CC node + that precedes it. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] p_FmPcdManipParams A structure of parameters defining the manipulation + + @Return A handle to the initialized object on success; NULL code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Handle FM_PCD_ManipSetNode(t_Handle h_FmPcd, t_FmPcdManipParams *p_FmPcdManipParams); + +/**************************************************************************//** + @Function FM_PCD_ManipDeleteNode + + @Description Delete an existing manip node. + + @Param[in] h_FmPcd A handle to an FM PCD Module. + @Param[in] h_HdrManipNode A handle to a Manip node. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Error FM_PCD_ManipDeleteNode(t_Handle h_FmPcd, t_Handle h_HdrManipNode); +#endif /* defined(FM_CAPWAP_SUPPORT) || ... */ + + +#ifdef FM_CAPWAP_SUPPORT +/**************************************************************************//** + @Function FM_PCD_StatisticsSetNode + + @Description This routine should be called for defining a statistics + node. + + @Param[in] h_FmPcd FM PCD module descriptor. + @Param[in] p_FmPcdstatsParams A structure of parameters defining the statistics + + @Return A handle to the initialized object on success; NULL code otherwise. + + @Cautions Allowed only following FM_PCD_Init(). +*//***************************************************************************/ +t_Handle FM_PCD_StatisticsSetNode(t_Handle h_FmPcd, t_FmPcdStatsParams *p_FmPcdstatsParams); +#endif /* FM_CAPWAP_SUPPORT */ + +/** @} */ /* end of FM_PCD_Runtime_tree_buildgrp group */ +/** @} */ /* end of FM_PCD_Runtime_grp group */ +/** @} */ /* end of FM_PCD_grp group */ +/** @} */ /* end of FM_grp group */ + + + +#endif /* __FM_PCD_EXT */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/Peripherals/fm_port_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/Peripherals/fm_port_ext.h @@ -0,0 +1,2196 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + @File fm_port_ext.h + + @Description FM-Port Application Programming Interface. +*//***************************************************************************/ +#ifndef __FM_PORT_EXT +#define __FM_PORT_EXT + +#include "error_ext.h" +#include "std_ext.h" +#include "fm_pcd_ext.h" +#include "fm_ext.h" +#include "net_ext.h" + + +/**************************************************************************//** + + @Group FM_grp Frame Manager API + + @Description FM API functions, definitions and enums + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group FM_PORT_grp FM Port + + @Description FM Port API + + The FM uses a general module called "port" to represent a Tx port + (MAC), an Rx port (MAC), offline parsing flow or host command + flow. There may be up to 17 (may change) ports in an FM - 5 Tx + ports (4 for the 1G MACs, 1 for the 10G MAC), 5 Rx Ports, and 7 + Host command/Offline parsing ports. The SW driver manages these + ports as sub-modules of the FM, i.e. after an FM is initialized, + its ports may be initialized and operated upon. + + The port is initialized aware of its type, but other functions on + a port may be indifferent to its type. When necessary, the driver + verifies coherency and returns error if applicable. + + On initialization, user specifies the port type and it's index + (relative to the port's type). Host command and Offline parsing + ports share the same id range, I.e user may not initialized host + command port 0 and offline parsing port 0. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Description An enum for defining port PCD modes. + This enum defines the superset of PCD engines support - i.e. not + all engines have to be used, but all have to be enabled. The real + flow of a specific frame depends on the PCD configuration and the + frame headers and payload. +*//***************************************************************************/ +typedef enum e_FmPortPcdSupport { + e_FM_PORT_PCD_SUPPORT_NONE = 0, /**< BMI to BMI, PCD is not used */ + e_FM_PORT_PCD_SUPPORT_PRS_ONLY, /**< Use only Parser */ + e_FM_PORT_PCD_SUPPORT_PLCR_ONLY, /**< Use only Policer */ + e_FM_PORT_PCD_SUPPORT_PRS_AND_PLCR, /**< Use Parser and Policer */ + e_FM_PORT_PCD_SUPPORT_PRS_AND_KG, /**< Use Parser and Keygen */ + e_FM_PORT_PCD_SUPPORT_PRS_AND_KG_AND_CC, /**< Use Parser, Keygen and Coarse Classification */ + e_FM_PORT_PCD_SUPPORT_PRS_AND_KG_AND_CC_AND_PLCR, + /**< Use all PCD engines */ + e_FM_PORT_PCD_SUPPORT_PRS_AND_KG_AND_PLCR /**< Use Parser, Keygen and Policer */ +#ifdef FM_CAPWAP_SUPPORT + , + e_FM_PORT_PCD_SUPPORT_CC_ONLY, /**< Use only Coarse Classification */ + e_FM_PORT_PCD_SUPPORT_CC_AND_KG, /**< Use Coarse Classification,and Keygen */ + e_FM_PORT_PCD_SUPPORT_CC_AND_KG_AND_PLCR /**< Use Coarse Classification, Keygen and Policer */ +#endif /* FM_CAPWAP_SUPPORT */ +} e_FmPortPcdSupport; + +/**************************************************************************//** + @Description Port interrupts +*//***************************************************************************/ +typedef enum e_FmPortExceptions { + e_FM_PORT_EXCEPTION_IM_BUSY /**< Independent-Mode Rx-BUSY */ +} e_FmPortExceptions; + + +/**************************************************************************//** + @Collection General FM Port defines +*//***************************************************************************/ +#define FM_PORT_PRS_RESULT_NUM_OF_WORDS 8 /**< Number of 4 bytes words in parser result */ +/* @} */ + +/**************************************************************************//** + @Collection FM Frame error +*//***************************************************************************/ +typedef uint32_t fmPortFrameErrSelect_t; /**< typedef for defining Frame Descriptor errors */ + +#define FM_PORT_FRM_ERR_UNSUPPORTED_FORMAT 0x04000000 /**< Offline parsing only! Unsupported Format */ +#define FM_PORT_FRM_ERR_LENGTH 0x02000000 /**< Offline parsing only! Length Error */ +#define FM_PORT_FRM_ERR_DMA 0x01000000 /**< DMA Data error */ +#ifdef FM_CAPWAP_SUPPORT +#define FM_PORT_FRM_ERR_NON_FM 0x00400000 /**< non Frame-Manager error; probably come from SEC that + was chained to FM */ +#endif /* FM_CAPWAP_SUPPORT */ +#define FM_PORT_FRM_ERR_PHYSICAL 0x00080000 /**< Rx FIFO overflow, FCS error, code error, running disparity + error (SGMII and TBI modes), FIFO parity error. PHY + Sequence error, PHY error control character detected. */ +#define FM_PORT_FRM_ERR_SIZE 0x00040000 /**< Frame too long OR Frame size exceeds max_length_frame */ +#define FM_PORT_FRM_ERR_CLS_DISCARD 0x00020000 /**< classification discard */ +#define FM_PORT_FRM_ERR_EXTRACTION 0x00008000 /**< Extract Out of Frame */ +#define FM_PORT_FRM_ERR_NO_SCHEME 0x00004000 /**< No Scheme Selected */ +#define FM_PORT_FRM_ERR_KEYSIZE_OVERFLOW 0x00002000 /**< Keysize Overflow */ +#define FM_PORT_FRM_ERR_COLOR_YELLOW 0x00000400 /**< Frame color is yellow */ +#define FM_PORT_FRM_ERR_COLOR_RED 0x00000800 /**< Frame color is red */ +#define FM_PORT_FRM_ERR_ILL_PLCR 0x00000200 /**< Illegal Policer Profile selected */ +#define FM_PORT_FRM_ERR_PLCR_FRAME_LEN 0x00000100 /**< Policer frame length error */ +#define FM_PORT_FRM_ERR_PRS_TIMEOUT 0x00000080 /**< Parser Time out Exceed */ +#define FM_PORT_FRM_ERR_PRS_ILL_INSTRUCT 0x00000040 /**< Invalid Soft Parser instruction */ +#define FM_PORT_FRM_ERR_PRS_HDR_ERR 0x00000020 /**< Header error was identified during parsing */ +#define FM_PORT_FRM_ERR_BLOCK_LIMIT_EXCEEDED 0x00000008 /**< Frame parsed beyind 256 first bytes */ +#define FM_PORT_FRM_ERR_PROCESS_TIMEOUT 0x00000001 /**< FPM Frame Processing Timeout Exceeded */ +/* @} */ + + + +/**************************************************************************//** + @Group FM_PORT_init_grp FM Port Initialization Unit + + @Description FM Port Initialization Unit + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Description Exceptions user callback routine, will be called upon an + exception passing the exception identification. + + @Param[in] h_App - User's application descriptor. + @Param[in] exception - The exception. + *//***************************************************************************/ +typedef void (t_FmPortExceptionCallback) (t_Handle h_App, e_FmPortExceptions exception); + +/**************************************************************************//** + @Description User callback function called by driver with received data. + + User provides this function. Driver invokes it. + + @Param[in] h_App Application's handle originally specified to + the API Config function + @Param[in] p_Data A pointer to data received + @Param[in] length length of received data + @Param[in] status receive status and errors + @Param[in] position position of buffer in frame + @Param[in] h_BufContext A handle of the user acossiated with this buffer + + @Retval e_RX_STORE_RESPONSE_CONTINUE - order the driver to continue Rx + operation for all ready data. + @Retval e_RX_STORE_RESPONSE_PAUSE - order the driver to stop Rx operation. +*//***************************************************************************/ +typedef e_RxStoreResponse (t_FmPortImRxStoreCallback) (t_Handle h_App, + uint8_t *p_Data, + uint16_t length, + uint16_t status, + uint8_t position, + t_Handle h_BufContext); + +/**************************************************************************//** + @Description User callback function called by driver when transmit completed. + + User provides this function. Driver invokes it. + + @Param[in] h_App Application's handle originally specified to + the API Config function + @Param[in] p_Data A pointer to data received + @Param[in] status transmit status and errors + @Param[in] lastBuffer is last buffer in frame + @Param[in] h_BufContext A handle of the user acossiated with this buffer + *//***************************************************************************/ +typedef void (t_FmPortImTxConfCallback) (t_Handle h_App, + uint8_t *p_Data, + uint16_t status, + t_Handle h_BufContext); + +/**************************************************************************//** + @Description A structure of information about each of the external + buffer pools used by the port, +*//***************************************************************************/ +typedef struct t_FmPortExtPoolParams { + uint8_t id; /**< External buffer pool id */ + uint16_t size; /**< External buffer pool buffer size */ +} t_FmPortExtPoolParams; + +/**************************************************************************//** + @Description A structure for informing the driver about the external + buffer pools allocated in the BM and used by this port. +*//***************************************************************************/ +typedef struct t_FmPortExtPools { + uint8_t numOfPoolsUsed; /**< Number of pools use by this port */ + t_FmPortExtPoolParams extBufPool[FM_PORT_MAX_NUM_OF_EXT_POOLS]; + /**< Parameters for each port */ +} t_FmPortExtPools; + +/**************************************************************************//** + @Description structure for additional Rx port parameters +*//***************************************************************************/ +typedef struct t_FmPortRxParams { + uint32_t errFqid; /**< Error Queue Id. */ + uint32_t dfltFqid; /**< Default Queue Id. */ + uint16_t liodnOffset; /**< Port's LIODN offset. */ + t_FmPortExtPools extBufPools; /**< Which external buffer pools are used + (up to FM_PORT_MAX_NUM_OF_EXT_POOLS), and their sizes. */ +} t_FmPortRxParams; + +/**************************************************************************//** + @Description structure for additional non-Rx port parameters +*//***************************************************************************/ +typedef struct t_FmPortNonRxParams { + uint32_t errFqid; /**< Error Queue Id. */ + uint32_t dfltFqid; /**< For Tx and HC - Default Confirmation queue, + 0 means no Tx confirmation for processed + frames. For OP - default Rx queue. */ + uint32_t qmChannel; /**< QM-channel dedicated to this port; will be used + by the FM for dequeue. */ +#ifdef FM_OP_PARTITION_ERRATA_FMANx8 + uint16_t opLiodnOffset; /**< For Offline Parsing ports only. Port's LIODN offset. */ +#endif /* FM_OP_PARTITION_ERRATA_FMANx8 */ +} t_FmPortNonRxParams; + +/**************************************************************************//** + @Description structure for additional Rx port parameters +*//***************************************************************************/ +typedef struct t_FmPortImRxTxParams { + t_Handle h_FmMuram; /**< A handle of the FM-MURAM partition */ + uint16_t liodnOffset; /**< For Rx ports only. Port's LIODN Offset. */ + uint8_t dataMemId; /**< Memory partition ID for data buffers */ + uint32_t dataMemAttributes; /**< Memory attributes for data buffers */ + t_BufferPoolInfo rxPoolParams; /**< For Rx ports only. */ + t_FmPortImRxStoreCallback *f_RxStore; /**< For Rx ports only. */ + t_FmPortImTxConfCallback *f_TxConf; /**< For Tx ports only. */ +} t_FmPortImRxTxParams; + +/**************************************************************************//** + @Description Union for additional parameters depending on port type +*//***************************************************************************/ +typedef union u_FmPortSpecificParams { + t_FmPortImRxTxParams imRxTxParams; /**< Rx/Tx Independent-Mode port parameter structure */ + t_FmPortRxParams rxParams; /**< Rx port parameters structure */ + t_FmPortNonRxParams nonRxParams; /**< Non-Rx port parameters structure */ +} u_FmPortSpecificParams; + +/**************************************************************************//** + @Description structure representing FM initialization parameters +*//***************************************************************************/ +typedef struct t_FmPortParams { + uintptr_t baseAddr; /**< Virtual Address of memory mapped FM Port registers.*/ + t_Handle h_Fm; /**< A handle to the FM object this port related to */ + e_FmPortType portType; /**< Port type */ + uint8_t portId; /**< Port Id - relative to type */ + bool independentModeEnable; + /**< This port is Independent-Mode - Used for Rx/Tx ports only! */ + uint16_t liodnBase; /**< Irrelevant for P4080 rev 1. LIODN base for this port, to be + used together with LIODN offset. */ + u_FmPortSpecificParams specificParams; /**< Additional parameters depending on port + type. */ + + t_FmPortExceptionCallback *f_Exception; /**< Callback routine to be called of PCD exception */ + t_Handle h_App; /**< A handle to an application layer object; This handle will + be passed by the driver upon calling the above callbacks */ +} t_FmPortParams; + + +/**************************************************************************//** + @Function FM_PORT_Config + + @Description Creates descriptor for the FM PORT module. + + The routine returns a handle (descriptor) to the FM PORT object. + This descriptor must be passed as first parameter to all other + FM PORT function calls. + + No actual initialization or configuration of FM hardware is + done by this routine. + + @Param[in] p_FmPortParams - Pointer to data structure of parameters + + @Retval Handle to FM object, or NULL for Failure. +*//***************************************************************************/ +t_Handle FM_PORT_Config(t_FmPortParams *p_FmPortParams); + +/**************************************************************************//** + @Function FM_PORT_Init + + @Description Initializes the FM PORT module + + @Param[in] h_FmPort - FM PORT module descriptor + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error FM_PORT_Init(t_Handle h_FmPort); + +/**************************************************************************//** + @Function FM_PORT_Free + + @Description Frees all resources that were assigned to FM PORT module. + + Calling this routine invalidates the descriptor. + + @Param[in] h_FmPort - FM PORT module descriptor + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error FM_PORT_Free(t_Handle h_FmPort); + + +/**************************************************************************//** + @Group FM_PORT_advanced_init_grp FM Port Advanced Configuration Unit + + @Description Configuration functions used to change default values. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Description enum for defining QM frame dequeue +*//***************************************************************************/ +typedef enum e_FmPortDeqType { + e_FM_PORT_DEQ_TYPE1, /**< Dequeue from the SP channel - with priority precedence, + and Intra-Class Scheduling respected. */ + e_FM_PORT_DEQ_TYPE2, /**< Dequeue from the SP channel - with active FQ precedence, + and Intra-Class Scheduling respected. */ + e_FM_PORT_DEQ_TYPE3 /**< Dequeue from the SP channel - with active FQ precedence, + and override Intra-Class Scheduling */ +} e_FmPortDeqType; + +#ifdef FM_QMI_DEQ_OPTIONS_SUPPORT +/**************************************************************************//** + @Description enum for defining QM frame dequeue +*//***************************************************************************/ +typedef enum e_FmPortDeqPrefetchOption { + e_FM_PORT_DEQ_NO_PREFETCH, /**< QMI preforms a dequeue action for a single frame + only when a dedicated portID Tnum is waiting. */ + e_FM_PORT_DEQ_PARTIAL_PREFETCH, /**< QMI preforms a dequeue action for 3 frames when + one dedicated portId tnum is waiting. */ + e_FM_PORT_DEQ_FULL_PREFETCH /**< QMI preforms a dequeue action for 3 frames when + no dedicated portId tnums are waiting. */ + +} e_FmPortDeqPrefetchOption; +#endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ + +/**************************************************************************//** + @Description enum for defining port DMA swap mode +*//***************************************************************************/ +typedef enum e_FmPortDmaSwap { + e_FM_PORT_DMA_NO_SWP, /**< No swap, transfer data as is.*/ + e_FM_PORT_DMA_SWP_PPC_LE, /**< The transferred data should be swapped + in PowerPc Little Endian mode. */ + e_FM_PORT_DMA_SWP_BE /**< The transferred data should be swapped + in Big Endian mode */ +} e_FmPortDmaSwap; + +/**************************************************************************//** + @Description enum for defining port DMA cache attributes +*//***************************************************************************/ +typedef enum e_FmPortDmaCache { + e_FM_PORT_DMA_NO_STASH = 0, /**< Cacheable, no Allocate (No Stashing) */ + e_FM_PORT_DMA_STASH = 1 /**< Cacheable and Allocate (Stashing on) */ +} e_FmPortDmaCache; + +/**************************************************************************//** + @Description enum for defining port default color +*//***************************************************************************/ +typedef enum e_FmPortColor { + e_FM_PORT_COLOR_GREEN, /**< Default port color is green */ + e_FM_PORT_COLOR_YELLOW, /**< Default port color is yellow */ + e_FM_PORT_COLOR_RED, /**< Default port color is red */ + e_FM_PORT_COLOR_OVERRIDE /**< Ignore color */ +} e_FmPortColor; + +/**************************************************************************//** + @Description struct for defining Dual Tx rate limiting scale +*//***************************************************************************/ +typedef enum e_FmPortDualRateLimiterScaleDown { + e_FM_PORT_DUAL_RATE_LIMITER_NONE = 0, /**< Use only single rate limiter */ + e_FM_PORT_DUAL_RATE_LIMITER_SCALE_DOWN_BY_2, /**< Divide high rate limiter by 2 */ + e_FM_PORT_DUAL_RATE_LIMITER_SCALE_DOWN_BY_4, /**< Divide high rate limiter by 4 */ + e_FM_PORT_DUAL_RATE_LIMITER_SCALE_DOWN_BY_8 /**< Divide high rate limiter by 8 */ +} e_FmPortDualRateLimiterScaleDown; + + +/**************************************************************************//** + @Description struct for defining FM port resources +*//***************************************************************************/ +typedef struct t_FmPortRsrc { + uint32_t num; /**< Committed required resource */ + uint32_t extra; /**< Extra (not committed) required resource */ +} t_FmPortRsrc; + +/**************************************************************************//** + @Description struct for defining pool depletion criteria +*//***************************************************************************/ +typedef struct t_FmPortBufPoolDepletion { + bool numberOfPoolsModeEnable; /**< select mode in which pause frames will be sent after + a number of pools are depleted */ + uint8_t numOfPools; /**< the minimum number of depleted pools that will + invoke pause frames transmission. */ + bool poolsToConsider[BM_MAX_NUM_OF_POOLS]; + /**< For each pool, TRUE if it should be considered for + depletion (Note - this pool must be used by this port!) */ + bool singlePoolModeEnable; /**< select mode in which pause frames will be sent after + a single of pools are depleted */ + bool poolsToConsiderForSingleMode[BM_MAX_NUM_OF_POOLS]; + /**< For each pool, TRUE if it should be considered for + depletion (Note - this pool must be used by this port!) */ +} t_FmPortBufPoolDepletion; + +/**************************************************************************//** + @Description struct for defining observed pool depletion +*//***************************************************************************/ +typedef struct t_FmPortObservedBufPoolDepletion { + t_FmPortBufPoolDepletion poolDepletionParams;/**< parameters to define pool depletion */ + t_FmPortExtPools poolsParams; /**< Which external buffer pools are observed + (up to FM_PORT_MAX_NUM_OF_OBSERVED_EXT_POOLS), + and their sizes. */ +} t_FmPortObservedBufPoolDepletion; + +/**************************************************************************//** + @Description struct for defining Tx rate limiting +*//***************************************************************************/ +typedef struct t_FmPortRateLimit { + uint16_t maxBurstSize; /**< in kBytes for Tx ports, in frames + for offline parsing ports. (note that + for early chips burst size is + rounded up to a multiply of 1000 frames).*/ + uint32_t rateLimit; /**< in Kb/sec for Tx ports, in frame/sec for + offline parsing ports. Rate limit refers to + data rate (rather than line rate). */ + e_FmPortDualRateLimiterScaleDown rateLimitDivider; /**< For offline parsing ports only. Not-valid + for some earlier chip revisions */ +} t_FmPortRateLimit; + +/**************************************************************************//** + @Description struct for defining define the parameters of + the Rx port performance counters +*//***************************************************************************/ +typedef struct t_FmPortPerformanceCnt { + uint8_t taskCompVal; /**< Task compare value */ + uint8_t queueCompVal; /**< Rx queue/Tx confirm queue compare + value (unused for H/O) */ + uint8_t dmaCompVal; /**< Dma compare value */ + uint32_t fifoCompVal; /**< Fifo compare value (in bytes) */ +} t_FmPortPerformanceCnt; + +/**************************************************************************//** + @Description struct for defining buffer content. +*//***************************************************************************/ +typedef struct t_FmPortBufferPrefixContent { + uint16_t privDataSize; /**< Number of bytes to be left at the beginning + of the external buffer */ + bool passPrsResult; /**< TRUE to pass the parse result to/from the FM */ + bool passTimeStamp; /**< TRUE to pass the timeStamp to/from the FM */ + bool passHashResult; /**< TRUE to pass the KG hash result to/from the FM */ + bool passAllOtherPCDInfo;/**< Add all other Internal-Context information: + AD, hash-result, key, etc. */ + uint16_t dataAlign; /**< 0 to use driver's default alignment, other value + for selecting a data alignment (must be a + power of 2) */ +#ifdef DEBUG + bool passDebugInfo; /**< Debug-information */ +#endif /* DEBUG */ +#ifdef FM_CAPWAP_SUPPORT + uint8_t manipExtraSpace; /**< Maximum extra size needed (insertion-size minus removal-size) */ +#endif /* FM_CAPWAP_SUPPORT */ +} t_FmPortBufferPrefixContent; + +/**************************************************************************//** + @Description struct for defining backup Bm Pools. +*//***************************************************************************/ +typedef struct t_FmPortBackupBmPools { + uint8_t numOfBackupPools; /**< Number of BM backup pools - + must be smaller than the total number of + pools defined for the specified port.*/ + uint8_t poolIds[FM_PORT_MAX_NUM_OF_EXT_POOLS]; + /**< numOfBackupPools pool id's, specifying which + pools should be used only as backup. Pool + id's specified here must be a subset of the + pools used by the specified port.*/ +} t_FmPortBackupBmPools; + + +/**************************************************************************//** + @Function FM_PORT_ConfigDeqHighPriority + + @Description Calling this routine changes the dequeue priority in the + internal driver data base from its default configuration + [TRUE] + + May be used for Non-Rx ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] highPri TRUE to select high priority, FALSE for normal operation. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigDeqHighPriority(t_Handle h_FmPort, bool highPri); + +/**************************************************************************//** + @Function FM_PORT_ConfigDeqType + + @Description Calling this routine changes the dequeue type parameter in the + internal driver data base from its default configuration + [e_FM_PORT_DEQ_TYPE1]. + + May be used for Non-Rx ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] deqType According to QM definition. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigDeqType(t_Handle h_FmPort, e_FmPortDeqType deqType); + +#ifdef FM_QMI_DEQ_OPTIONS_SUPPORT +/**************************************************************************//** + @Function FM_PORT_ConfigDeqPrefetchOption + + @Description Calling this routine changes the dequeue prefetch option parameter in the + internal driver data base from its default configuration + [e_FM_PORT_DEQ_FULL_PREFETCH] + Note: Available for some chips only + + May be used for Non-Rx ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] deqPrefetchOption New option + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigDeqPrefetchOption(t_Handle h_FmPort, e_FmPortDeqPrefetchOption deqPrefetchOption); +#endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ + +/**************************************************************************//** + @Function FM_PORT_ConfigDeqByteCnt + + @Description Calling this routine changes the dequeue byte count parameter in + the internal driver data base from its default configuration [2000]. + + May be used for Non-Rx ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] deqByteCnt New byte count + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigDeqByteCnt(t_Handle h_FmPort, uint16_t deqByteCnt); + +/**************************************************************************//** + @Function FM_PORT_ConfigTxFifoMinFillLevel + + @Description Calling this routine changes the fifo minimum + fill level parameter in the internal driver data base + from its default configuration [0] + + May be used for Tx ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] minFillLevel New value + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigTxFifoMinFillLevel(t_Handle h_FmPort, uint32_t minFillLevel); + +/**************************************************************************//** + @Function FM_PORT_ConfigTxFifoDeqPipelineDepth + + @Description Calling this routine changes the fifo dequeue + pipeline depth parameter in the internal driver data base + + from its default configuration: 1G ports: [2], + 10G port: [8] + + May be used for Tx ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] deqPipelineDepth New value + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigTxFifoDeqPipelineDepth(t_Handle h_FmPort, uint8_t deqPipelineDepth); + +/**************************************************************************//** + @Function FM_PORT_ConfigTxFifoLowComfLevel + + @Description Calling this routine changes the fifo low comfort level + parameter in internal driver data base + from its default configuration [5] + + May be used for Tx ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] fifoLowComfLevel New value + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigTxFifoLowComfLevel(t_Handle h_FmPort, uint32_t fifoLowComfLevel); + +/**************************************************************************//** + @Function FM_PORT_ConfigRxFifoThreshold + + @Description Calling this routine changes the threshold of the FIFO + fill level parameter in the internal driver data base + from its default configuration [BMI_MAX_FIFO_SIZE] + + If the total number of buffers which are + currently in use and associated with the + specific RX port exceed this threshold, the + BMI will signal the MAC to send a pause frame + over the link. + + May be used for Rx ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] fifoThreshold New value + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigRxFifoThreshold(t_Handle h_FmPort, uint32_t fifoThreshold); + +/**************************************************************************//** + @Function FM_PORT_ConfigRxFifoPriElevationLevel + + @Description Calling this routine changes the priority elevation level + parameter in the internal driver data base from its default + configuration [BMI_MAX_FIFO_SIZE] + + If the total number of buffers which are currently in use and + associated with the specific RX port exceed the amount specified + in priElevationLevel, BMI will signal the main FM's DMA to + elevate the FM priority on the system bus. + + May be used for Rx ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] priElevationLevel New value + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigRxFifoPriElevationLevel(t_Handle h_FmPort, uint32_t priElevationLevel); + +/**************************************************************************//** + @Function FM_PORT_ConfigBufferPrefixContent + + @Description Defines the structure, size and content of the application buffer. + The prefix will + In Tx ports, if 'passPrsResult', the application + should set a value to their offsets in the prefix of + the FM will save the first 'privDataSize', than, + depending on 'passPrsResult' and 'passTimeStamp', copy parse result + and timeStamp, and the packet itself (in this order), to the + application buffer, and to offset. + Calling this routine changes the buffer margins definitions + in the internal driver data base from its default + configuration: Data size: [0] + Pass Parser result: [FALSE]. + Pass timestamp: [FALSE]. + + May be used for all ports + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in,out] p_FmPortBufferPrefixContent A structure of parameters describing the + structure of the buffer. + Out parameter: Start margin - offset + of data from start of external buffer. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigBufferPrefixContent(t_Handle h_FmPort, t_FmPortBufferPrefixContent *p_FmPortBufferPrefixContent); + + +/**************************************************************************//** + @Function FM_PORT_ConfigCheksumLastBytesIgnore + + @Description Calling this routine changes the number of checksum bytes to ignore + parameter in the internal driver data base from its default configuration + [0] + + May be used by Tx & Rx ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] cheksumLastBytesIgnore New value + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigCheksumLastBytesIgnore(t_Handle h_FmPort, uint8_t cheksumLastBytesIgnore); + +/**************************************************************************//** + @Function FM_PORT_ConfigCutBytesFromEnd + + @Description Calling this routine changes the number of bytes to cut from a + frame's end parameter in the internal driver data base + from its default configuration [4] + Note that if the result of (frame length before chop - cutBytesFromEnd) is + less than 14 bytes, the chop operation is not executed. + + May be used for Rx ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] cutBytesFromEnd New value + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigCutBytesFromEnd(t_Handle h_FmPort, uint8_t cutBytesFromEnd); + +/**************************************************************************//** + @Function FM_PORT_ConfigPoolDepletion + + @Description Calling this routine enables pause frame generation depending on the + depletion status of BM pools. It also defines the conditions to activate + this functionality. By default, this functionality is disabled. + + May be used for Rx ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] p_BufPoolDepletion A structure of pool depletion parameters + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigPoolDepletion(t_Handle h_FmPort, t_FmPortBufPoolDepletion *p_BufPoolDepletion); + +/**************************************************************************//** + @Function FM_PORT_ConfigObservedPoolDepletion + + @Description Calling this routine enables a mechanism to stop port enqueue + depending on the depletion status of selected BM pools. + It also defines the conditions to activate + this functionality. By default, this functionality is disabled. + + Note: Available for some chips only + + May be used for Offline Parsing ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] p_FmPortObservedBufPoolDepletion A structure of parameters for pool depletion. + + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigObservedPoolDepletion(t_Handle h_FmPort, t_FmPortObservedBufPoolDepletion *p_FmPortObservedBufPoolDepletion); + +/**************************************************************************//** + @Function FM_PORT_ConfigExtBufPools + + @Description This routine should be called for offline parsing ports + that internally use BM buffer pools. In such cases, e.g. for fragmentation and + re-assembly, the FM needs new BM buffers. By calling this routine the user + specifies the BM buffer pools that should be used. + + Note: Available for some chips only + + May be used for Offline Parsing ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] p_FmPortExtPools A structure of parameters for the external pools. + + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigExtBufPools(t_Handle h_FmPort, t_FmPortExtPools *p_FmPortExtPools); + +/**************************************************************************//** + @Function FM_PORT_ConfigBackupPools + + @Description Calling this routine allows the configuration of some of the BM pools + defined for this port as backup pools. + A pool configured to be a backup pool will be used only if all other + enabled non-backup pools are depleted. + + May be used for Rx ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] p_FmPortBackupBmPools An array of pool id's. All pools specified here will + be defined as backup pools. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigBackupPools(t_Handle h_FmPort, t_FmPortBackupBmPools *p_FmPortBackupBmPools); + +/**************************************************************************//** + @Function FM_PORT_ConfigFrmDiscardOverride + + @Description Calling this routine changes the error frames destination parameter + in the internal driver data base from its default configuration: + override = [FALSE] + + May be used for Rx and offline parsing ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] override TRUE to override dicarding of error frames and + enqueueing them to error queue. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigFrmDiscardOverride(t_Handle h_FmPort, bool override); + +/**************************************************************************//** + @Function FM_PORT_ConfigErrorsToDiscard + + @Description Calling this routine changes the behaviour on error parameter + in the internal driver data base from its default configuration: + [FM_PORT_FRM_ERR_CLS_DISCARD]. + If a requested error was previously defined as "ErrorsToEnqueue" it's + definition will change and the frame will be discarded. + Errors that were not defined either as "ErrorsToEnqueue" nor as + "ErrorsToDiscard", will be forwarded to CPU. + + + May be used for Rx and offline parsing ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] errs A list of errors to discard + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigErrorsToDiscard(t_Handle h_FmPort, fmPortFrameErrSelect_t errs); + +/**************************************************************************//** + @Function FM_PORT_ConfigDmaSwapData + + @Description Calling this routine changes the DMA swap data aparameter + in the internal driver data base from its default + configuration [e_FM_PORT_DMA_NO_SWP] + + May be used for all port types + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] swapData New selection + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigDmaSwapData(t_Handle h_FmPort, e_FmPortDmaSwap swapData); + +/**************************************************************************//** + @Function FM_PORT_ConfigDmaIcCacheAttr + + @Description Calling this routine changes the internal context cache + attribute parameter in the internal driver data base + from its default configuration [e_FM_PORT_DMA_NO_STASH] + + May be used for all port types + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] intContextCacheAttr New selection + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigDmaIcCacheAttr(t_Handle h_FmPort, e_FmPortDmaCache intContextCacheAttr); + +/**************************************************************************//** + @Function FM_PORT_ConfigDmaHdrAttr + + @Description Calling this routine changes the header cache + attribute parameter in the internal driver data base + from its default configuration [e_FM_PORT_DMA_NO_STASH] + + May be used for all port types + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] headerCacheAttr New selection + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigDmaHdrAttr(t_Handle h_FmPort, e_FmPortDmaCache headerCacheAttr); + +/**************************************************************************//** + @Function FM_PORT_ConfigDmaScatterGatherAttr + + @Description Calling this routine changes the scatter gather cache + attribute parameter in the internal driver data base + from its default configuration [e_FM_PORT_DMA_NO_STASH] + + May be used for all port types + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] scatterGatherCacheAttr New selection + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigDmaScatterGatherAttr(t_Handle h_FmPort, e_FmPortDmaCache scatterGatherCacheAttr); + +/**************************************************************************//** + @Function FM_PORT_ConfigDmaWriteOptimize + + @Description Calling this routine changes the write optimization + parameter in the internal driver data base + from its default configuration: optimize = [TRUE] + + May be used for non-Tx port types + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] optimize TRUE to enable optimization, FALSE for normal operation + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigDmaWriteOptimize(t_Handle h_FmPort, bool optimize); + +/**************************************************************************//** + @Function FM_PORT_ConfigDfltColor + + @Description Calling this routine changes the internal default color parameter + in the internal driver data base + from its default configuration [e_FM_PORT_COLOR_GREEN] + + May be used for all port types + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] color New selection + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigDfltColor(t_Handle h_FmPort, e_FmPortColor color); + +/**************************************************************************//** + @Function FM_PORT_ConfigSyncReq + + @Description Calling this routine changes the synchronization attribute parameter + in the internal driver data base from its default configuration: + syncReq = [TRUE] + + May be used for all port types + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] syncReq TRUE to request synchronization, FALSE otherwize. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigSyncReq(t_Handle h_FmPort, bool syncReq); + +/**************************************************************************//** + @Function FM_PORT_ConfigForwardReuseIntContext + + @Description This routine is relevant for Rx ports that are routed to offline + parsing. It changes the internal context reuse option + in the internal driver data base from its default configuration: + reuse = [FALSE] + + May be used for Rx ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] reuse TRUE to reuse internal context on frames + forwarded to offline parsing. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigForwardReuseIntContext(t_Handle h_FmPort, bool reuse); + +/**************************************************************************//** + @Function FM_PORT_ConfigDontReleaseTxBufToBM + + @Description This routine should be called if no Tx confirmation + is done, and yet buffers should not be released to the BM. + Normally, buffers are returned using the Tx confirmation + process. When Tx confirmation is not used (defFqid=0), + buffers are typically released to the BM. This routine + may be called to avoid this behavior and not release the + buffers. + + May be used for Tx ports only + + @Param[in] h_FmPort A handle to a FM Port module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ConfigDontReleaseTxBufToBM(t_Handle h_FmPort); + +/**************************************************************************//** + @Function FM_PORT_ConfigIMMaxRxBufLength + + @Description Changes the maximum receive buffer length from its default + configuration: Closest rounded down power of 2 value of the + data buffer size. + + The maximum receive buffer length directly affects the structure + of received frames (single- or multi-buffered) and the performance + of both the FM and the driver. + + The selection between single- or multi-buffered frames should be + done according to the characteristics of the specific application. + The recommended mode is to use a single data buffer per packet, + as this mode provides the best performance. However, the user can + select to use multiple data buffers per packet. + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] newVal Maximum receive buffer length (in bytes). + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). + This routine is to be used only if Independent-Mode is enabled. +*//***************************************************************************/ +t_Error FM_PORT_ConfigIMMaxRxBufLength(t_Handle h_FmPort, uint16_t newVal); + +/**************************************************************************//** + @Function FM_PORT_ConfigIMRxBdRingLength + + @Description Changes the receive BD ring length from its default + configuration:[128] + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] newVal The desired BD ring length. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). + This routine is to be used only if Independent-Mode is enabled. +*//***************************************************************************/ +t_Error FM_PORT_ConfigIMRxBdRingLength(t_Handle h_FmPort, uint16_t newVal); + +/**************************************************************************//** + @Function FM_PORT_ConfigIMTxBdRingLength + + @Description Changes the transmit BD ring length from its default + configuration:[16] + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] newVal The desired BD ring length. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). + This routine is to be used only if Independent-Mode is enabled. +*//***************************************************************************/ +t_Error FM_PORT_ConfigIMTxBdRingLength(t_Handle h_FmPort, uint16_t newVal); + +/**************************************************************************//** + @Function FM_PORT_ConfigIMFmanCtrlExternalStructsMemory + + @Description Configures memory partition and attributes for FMan-Controller + data structures (e.g. BD rings). + Calling this routine changes the internal driver data base + from its default configuration + [0 , MEMORY_ATTR_CACHEABLE]. + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] memId Memory partition ID. + @Param[in] memAttributes Memory attributes mask (a combination of MEMORY_ATTR_x flags). + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error FM_PORT_ConfigIMFmanCtrlExternalStructsMemory(t_Handle h_FmPort, + uint8_t memId, + uint32_t memAttributes); + +/**************************************************************************//** + @Function FM_PORT_ConfigIMPolling + + @Description Changes the Rx flow from interrupt driven (default) to polling. + + @Param[in] h_FmPort A handle to a FM Port module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). + This routine is to be used only if Independent-Mode is enabled. +*//***************************************************************************/ +t_Error FM_PORT_ConfigIMPolling(t_Handle h_FmPort); + +/** @} */ /* end of FM_PORT_advanced_init_grp group */ +/** @} */ /* end of FM_PORT_init_grp group */ + + +/**************************************************************************//** + @Group FM_PORT_runtime_control_grp FM Port Runtime Control Unit + + @Description FM Port Runtime control unit API functions, definitions and enums. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Description enum for defining FM Port counters +*//***************************************************************************/ +typedef enum e_FmPortCounters { + e_FM_PORT_COUNTERS_CYCLE, /**< BMI performance counter */ + e_FM_PORT_COUNTERS_TASK_UTIL, /**< BMI performance counter */ + e_FM_PORT_COUNTERS_QUEUE_UTIL, /**< BMI performance counter */ + e_FM_PORT_COUNTERS_DMA_UTIL, /**< BMI performance counter */ + e_FM_PORT_COUNTERS_FIFO_UTIL, /**< BMI performance counter */ + e_FM_PORT_COUNTERS_RX_PAUSE_ACTIVATION, /**< BMI Rx only performance counter */ + e_FM_PORT_COUNTERS_FRAME, /**< BMI statistics counter */ + e_FM_PORT_COUNTERS_DISCARD_FRAME, /**< BMI statistics counter */ + e_FM_PORT_COUNTERS_DEALLOC_BUF, /**< BMI deallocate buffer statistics counter */ + e_FM_PORT_COUNTERS_RX_BAD_FRAME, /**< BMI Rx only statistics counter */ + e_FM_PORT_COUNTERS_RX_LARGE_FRAME, /**< BMI Rx only statistics counter */ + e_FM_PORT_COUNTERS_RX_OUT_OF_BUFFERS_DISCARD, /**< BMI Rx only statistics counter */ + e_FM_PORT_COUNTERS_RX_FILTER_FRAME, /**< BMI Rx & OP only statistics counter */ + e_FM_PORT_COUNTERS_RX_LIST_DMA_ERR, /**< BMI Rx, OP & HC only statistics counter */ + e_FM_PORT_COUNTERS_WRED_DISCARD, /**< BMI OP & HC only statistics counter */ + e_FM_PORT_COUNTERS_LENGTH_ERR, /**< BMI non-Rx statistics counter */ + e_FM_PORT_COUNTERS_UNSUPPRTED_FORMAT, /**< BMI non-Rx statistics counter */ + e_FM_PORT_COUNTERS_DEQ_TOTAL, /**< QMI counter */ + e_FM_PORT_COUNTERS_ENQ_TOTAL, /**< QMI counter */ + e_FM_PORT_COUNTERS_DEQ_FROM_DEFAULT, /**< QMI counter */ + e_FM_PORT_COUNTERS_DEQ_CONFIRM /**< QMI counter */ +} e_FmPortCounters; + +/**************************************************************************//** + @Description Structure for Port id parameters. + Fields commented 'IN' are passed by the port module to be used + by the FM module. + Fields commented 'OUT' will be filled by FM before returning to port. +*//***************************************************************************/ +typedef struct t_FmPortCongestionGrps { + uint16_t numOfCongestionGrpsToConsider; /**< The number of required congestion groups + to define the size of the following array */ + uint8_t congestionGrpsToConsider[FM_PORT_NUM_OF_CONGESTION_GRPS]; + /**< An array of 'numOfCongestionGrpsToConsider' + describing the groups */ +} t_FmPortCongestionGrps; + + + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +/**************************************************************************//** + @Function FM_PORT_DumpRegs + + @Description Dump all regs. + + Calling this routine invalidates the descriptor. + + @Param[in] h_FmPort - FM PORT module descriptor + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_DumpRegs(t_Handle h_FmPort); +#endif /* (defined(DEBUG_ERRORS) && ... */ + +/**************************************************************************//** + @Function FM_PORT_GetBufferDataOffset + + @Description Relevant for Rx ports. + Returns the data offset from the beginning of the data buffer + + @Param[in] h_FmPort - FM PORT module descriptor + + @Return data offset. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +uint32_t FM_PORT_GetBufferDataOffset(t_Handle h_FmPort); + +/**************************************************************************//** + @Function FM_PORT_GetBufferICInfo + + @Description Returns the Internal Context offset from the beginning of the data buffer + + @Param[in] h_FmPort - FM PORT module descriptor + @Param[in] p_Data - A pointer to the data buffer. + + @Return Internal context info pointer on success, NULL if 'allOtherInfo' was not + configured for this port. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +uint8_t * FM_PORT_GetBufferICInfo(t_Handle h_FmPort, char *p_Data); + +#ifdef DEBUG +/**************************************************************************//** + @Function FM_PORT_GetBufferDebugInfo + + @Description Returns the debug info offset from the beginning of the data buffer + + @Param[in] h_FmPort - FM PORT module descriptor + @Param[in] p_Data - A pointer to the data buffer. + + @Return Debug info pointer on success, NULL if 'passDebugInfo' was not + configured for this port. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +uint8_t * FM_PORT_GetBufferDebugInfo(t_Handle h_FmPort, char *p_Data); +#endif /* DEBUG */ + +/**************************************************************************//** + @Function FM_PORT_GetBufferPrsResult + + @Description Returns the pointer to the parse result in the data buffer. + In Rx ports this is relevant after reception, if parse + result is configured to be part of the data passed to the + application. For non Rx ports it may be used to get the pointer + of the area in the buffer where parse result should be + initialized - if so configured. + See FM_PORT_ConfigBufferPrefixContent for data buffer prefix + configuration. + + @Param[in] h_FmPort - FM PORT module descriptor + @Param[in] p_Data - A pointer to the data buffer. + + @Return Parse result pointer on success, NULL if parse result was not + configured for this port. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_FmPrsResult * FM_PORT_GetBufferPrsResult(t_Handle h_FmPort, char *p_Data); + +/**************************************************************************//** + @Function FM_PORT_GetBufferTimeStamp + + @Description Returns the time stamp in the data buffer. + Relevant for Rx ports for getting the buffer time stamp. + See FM_PORT_ConfigBufferPrefixContent for data buffer prefix + configuration. + + @Param[in] h_FmPort - FM PORT module descriptor + @Param[in] p_Data - A pointer to the data buffer. + + @Return A pointer to the hash result on success, NULL otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +uint64_t * FM_PORT_GetBufferTimeStamp(t_Handle h_FmPort, char *p_Data); + +/**************************************************************************//** + @Function FM_PORT_GetBufferHashResult + + @Description Given a data buffer, on the condition that hash result was defined + as a part of the buffer content (see FM_PORT_ConfigBufferPrefixContent) + this routine will return the pointer to the hash result location in the + buffer prefix. + + @Param[in] h_FmPort - FM PORT module descriptor + @Param[in] p_Data - A pointer to the data buffer. + + @Return A pointer to the hash result on success, NULL otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +uint8_t * FM_PORT_GetBufferHashResult(t_Handle h_FmPort, char *p_Data); + +/**************************************************************************//** + @Function FM_PORT_Disable + + @Description Gracefully disable an FM port. The port will not start new tasks after all + tasks associated with the port are terminated. + + @Param[in] h_FmPort A handle to a FM Port module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). + This is a blocking routine, it returns after port is + gracefully stopped, i.e. the port will not except new frames, + but it will finish all frames or tasks which were already began +*//***************************************************************************/ +t_Error FM_PORT_Disable(t_Handle h_FmPort); + +/**************************************************************************//** + @Function FM_PORT_Enable + + @Description A runtime routine provided to allow disable/enable of port. + + @Param[in] h_FmPort A handle to a FM Port module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_Enable(t_Handle h_FmPort); + +/**************************************************************************//** + @Function FM_PORT_SetRateLimit + + @Description Calling this routine enables rate limit algorithm. + By default, this functionality is disabled. + Note that rate-limit mechanism uses the FM time stamp. + The selected rate limit specified here would be + rounded DOWN to the nearest 16M. + + May be used for Tx and offline parsing ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] p_RateLimit A structure of rate limit parameters + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_SetRateLimit(t_Handle h_FmPort, t_FmPortRateLimit *p_RateLimit); + +/**************************************************************************//** + @Function FM_PORT_DeleteRateLimit + + @Description Calling this routine disables and clears rate limit + initialization. + + May be used for Tx and offline parsing ports only + + @Param[in] h_FmPort A handle to a FM Port module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_DeleteRateLimit(t_Handle h_FmPort); + +/**************************************************************************//** + @Function FM_PORT_SetStatisticsCounters + + @Description Calling this routine enables/disables port's statistics counters. + By default, counters are enabled. + + May be used for all port types + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] enable TRUE to enable, FALSE to disable. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_SetStatisticsCounters(t_Handle h_FmPort, bool enable); + +/**************************************************************************//** + @Function FM_PORT_SetFrameQueueCounters + + @Description Calling this routine enables/disables port's enqueue/dequeue counters. + By default, counters are enabled. + + May be used for all ports + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] enable TRUE to enable, FALSE to disable. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_SetFrameQueueCounters(t_Handle h_FmPort, bool enable); + +/**************************************************************************//** + @Function FM_PORT_SetPerformanceCounters + + @Description Calling this routine enables/disables port's performance counters. + By default, counters are enabled. + + May be used for all port types + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] enable TRUE to enable, FALSE to disable. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_SetPerformanceCounters(t_Handle h_FmPort, bool enable); + +/**************************************************************************//** + @Function FM_PORT_SetPerformanceCounters + + @Description Calling this routine defines port's performance + counters parameters. + + May be used for all port types + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] p_FmPortPerformanceCnt A pointer to a structure of performance + counters parameters. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_SetPerformanceCountersParams(t_Handle h_FmPort, t_FmPortPerformanceCnt *p_FmPortPerformanceCnt); + +/**************************************************************************//** + @Function FM_PORT_AnalyzePerformanceParams + + @Description User may call this routine to so the driver will analyze if the + basic performance parameters are correct and also the driver may + suggest of improvments; The basic parameters are FIFO sizes, number + of DMAs and number of TNUMs for the port. + + May be used for all port types + + @Param[in] h_FmPort A handle to a FM Port module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_AnalyzePerformanceParams(t_Handle h_FmPort); + +/**************************************************************************//** + @Function FM_PORT_SetNumOfOpenDmas + + @Description Calling this routine updates the number of open DMA requested for + this port. + + + May be used for all port types. + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] p_NumOfOpenDmas A structure of resource requested parameters + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_SetNumOfOpenDmas(t_Handle h_FmPort, t_FmPortRsrc *p_NumOfOpenDmas); + +/**************************************************************************//** + @Function FM_PORT_SetNumOfTasks + + @Description Calling this routine updates the number of tasks requested for + this port. + + May be used for all port types. + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] p_NumOfTasks A structure of resource requested parameters + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_SetNumOfTasks(t_Handle h_FmPort, t_FmPortRsrc *p_NumOfTasks); + +/**************************************************************************//** + @Function FM_PORT_SetSizeOfFifo + + @Description Calling this routine updates the Fifo size resource requested for + this port. + + May be used for all port types - note that only Rx has 'extra' + fifo size. For other ports 'extra' field must be disabled. + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] p_SizeOfFifo A structure of resource requested parameters + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_SetSizeOfFifo(t_Handle h_FmPort, t_FmPortRsrc *p_SizeOfFifo); + +/**************************************************************************//** + @Function FM_PORT_SetAllocBufCounter + + @Description Calling this routine enables/disables BM pool allocate + buffer counters. + By default, counters are enabled. + + May be used for Rx ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] poolId BM pool id. + @Param[in] enable TRUE to enable, FALSE to disable. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_SetAllocBufCounter(t_Handle h_FmPort, uint8_t poolId, bool enable); + +/**************************************************************************//** + @Function FM_PORT_GetCounter + + @Description Reads one of the FM PORT counters. + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] fmPortCounter The requested counter. + + @Return Counter's current value. + + @Cautions Allowed only following FM_PORT_Init(). + Note that it is user's responsibility to call this routine only + for enabled counters, and there will be no indication if a + disabled counter is accessed. +*//***************************************************************************/ +uint32_t FM_PORT_GetCounter(t_Handle h_FmPort, e_FmPortCounters fmPortCounter); + +/**************************************************************************//** + @Function FM_PORT_ModifyCounter + + @Description Sets a value to an enabled counter. Use "0" to reset the counter. + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] fmPortCounter The requested counter. + @Param[in] value The requested value to be written into the counter. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ModifyCounter(t_Handle h_FmPort, e_FmPortCounters fmPortCounter, uint32_t value); + +/**************************************************************************//** + @Function FM_PORT_GetAllocBufCounter + + @Description Reads one of the FM PORT buffer counters. + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] poolId The requested pool. + + @Return Counter's current value. + + @Cautions Allowed only following FM_PORT_Init(). + Note that it is user's responsibility to call this routine only + for enabled counters, and there will be no indication if a + disabled counter is accessed. +*//***************************************************************************/ +uint32_t FM_PORT_GetAllocBufCounter(t_Handle h_FmPort, uint8_t poolId); + +/**************************************************************************//** + @Function FM_PORT_ModifyAllocBufCounter + + @Description Sets a value to an enabled counter. Use "0" to reset the counter. + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] poolId The requested pool. + @Param[in] value The requested value to be written into the counter. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ModifyAllocBufCounter(t_Handle h_FmPort, uint8_t poolId, uint32_t value); + +/**************************************************************************//** + @Function FM_PORT_AddCongestionGrps + + @Description This routine effects the corresponding Tx port. + It should be called in order to enable pause + frame transmission in case of congestion in one or more + of the congestion groups relevant to this port. + Each call to this routine may add one or more congestion + groups to be considered relevant to this port. + + May be used for Rx, or RX+OP ports only (depending on chip) + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] p_CongestionGrps A pointer to an array of congestion groups + id's to consider. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_AddCongestionGrps(t_Handle h_FmPort, t_FmPortCongestionGrps *p_CongestionGrps); + +/**************************************************************************//** + @Function FM_PORT_RemoveCongestionGrps + + @Description This routine effects the corresponding Tx port. It should be + called when congestion groups were + defined for this port and are no longer relevant, or pause + frames transmitting is not required on their behalf. + Each call to this routine may remove one or more congestion + groups to be considered relevant to this port. + + May be used for Rx, or RX+OP ports only (depending on chip) + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] p_CongestionGrps A pointer to an array of congestion groups + id's to consider. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_RemoveCongestionGrps(t_Handle h_FmPort, t_FmPortCongestionGrps *p_CongestionGrps); + +/**************************************************************************//** + @Function FM_PORT_IsStalled + + @Description A routine for checking whether the specified port is stalled. + + @Param[in] h_FmPort A handle to a FM Port module. + + @Return TRUE if port is stalled, FALSE otherwize + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +bool FM_PORT_IsStalled(t_Handle h_FmPort); + +/**************************************************************************//** + @Function FM_PORT_ReleaseStalled + + @Description This routine may be called in case the port was stalled and may + now be released. + + @Param[in] h_FmPort A handle to a FM Port module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_ReleaseStalled(t_Handle h_FmPort); + +/**************************************************************************//** + @Function FM_PORT_SetRxL4ChecksumVerify + + @Description This routine is relevant for Rx ports (1G and 10G). The routine + set/clear the L3/L4 checksum verification (on RX side). + Note that this takes affect only if hw-parser is enabled! + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] l4Checksum boolean indicates whether to do L3/L4 checksum + on frames or not. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_SetRxL4ChecksumVerify(t_Handle h_FmPort, bool l4Checksum); + +/**************************************************************************//** + @Function FM_PORT_SetErrorsRoute + + @Description Errors selected for this routine will cause a frame with that error + to be enqueued to error queue. + Errors not selected for this routine will cause a frame with that error + to be enqueued to the one of the other port queues. + By default all errors are defined to be enqueued to error queue. + Errors that were configured to be discarded (at initialization) + may not be selected here. + + May be used for Rx and offline parsing ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] errs A list of errors to enqueue to error queue + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Config() and before FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_SetErrorsRoute(t_Handle h_FmPort, fmPortFrameErrSelect_t errs); + +/**************************************************************************//** + @Function FM_PORT_SetIMExceptions + + @Description Calling this routine enables/disables FM PORT interrupts. + Note: Not available for guest partition. + + @Param[in] h_FmPort FM PORT module descriptor. + @Param[in] exception The exception to be selected. + @Param[in] enable TRUE to enable interrupt, FALSE to mask it. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_SetIMExceptions(t_Handle h_FmPort, e_FmPortExceptions exception, bool enable); + + + +/**************************************************************************//** + @Group FM_PORT_pcd_runtime_control_grp FM Port PCD Runtime Control Unit + + @Description FM Port PCD Runtime control unit API functions, definitions and enums. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Description A structure defining the KG scheme after the parser. + This is relevant only to change scheme selection mode - from + direct to indirect and vice versa, or when the scheme is selected directly, + to select the scheme id. + +*//***************************************************************************/ +typedef struct t_FmPcdKgSchemeSelect { + bool direct; /**< TRUE to use 'h_Scheme' directly, FALSE to use LCV.*/ + t_Handle h_DirectScheme; /**< Relevant for 'direct'=TRUE only. + 'h_DirectScheme' selects the scheme after parser. */ +} t_FmPcdKgSchemeSelect; + +/**************************************************************************//** + @Description A structure of scheme parameters +*//***************************************************************************/ +typedef struct t_FmPcdPortSchemesParams { + uint8_t numOfSchemes; /**< Number of schemes for port to be bound to. */ + t_Handle h_Schemes[FM_PCD_KG_NUM_OF_SCHEMES]; /**< Array of 'numOfSchemes' schemes for the + port to be bound to */ +} t_FmPcdPortSchemesParams; + +/**************************************************************************//** + @Description Union for defining port protocol parameters for parser +*//***************************************************************************/ +typedef union u_FmPcdHdrPrsOpts { + /* MPLS */ + struct { + bool labelInterpretationEnable; /**< When this bit is set, the last MPLS label will be + interpreted as described in HW spec table. When the bit + is cleared, the parser will advance to MPLS next parse */ + e_NetHeaderType nextParse; /**< must be equal or higher than IPv4 */ + } mplsPrsOptions; + /* VLAN */ + struct { + uint16_t tagProtocolId1; /**< User defined Tag Protocol Identifier, to be recognized + on VLAN TAG on top of 0x8100 and 0x88A8 */ + uint16_t tagProtocolId2; /**< User defined Tag Protocol Identifier, to be recognized + on VLAN TAG on top of 0x8100 and 0x88A8 */ + } vlanPrsOptions; + /* PPP */ + struct{ + bool enableMTUCheck; /**< Check validity of MTU according to RFC2516 */ + } pppoePrsOptions; + + /* IPV6 */ + struct{ + bool routingHdrDisable; /**< Disable routing header */ + } ipv6PrsOptions; + + /* UDP */ + struct{ + bool padIgnoreChecksum; /**< TRUE to ignore pad in checksum */ + } udpPrsOptions; + + /* TCP */ + struct { + bool padIgnoreChecksum; /**< TRUE to ignore pad in checksum */ + } tcpPrsOptions; +} u_FmPcdHdrPrsOpts; + +/**************************************************************************//** + @Description A structure for defining each header for the parser +*//***************************************************************************/ +typedef struct t_FmPcdPrsAdditionalHdrParams { + e_NetHeaderType hdr; /**< Selected header */ + bool errDisable; /**< TRUE to disable error indication */ + bool swPrsEnable; /**< Enable jump to SW parser when this + header is recognized by the HW parser. */ + uint8_t indexPerHdr; /**< Normally 0, if more than one sw parser + attachments exists for the same header, + (in the main sw parser code) use this + index to distinguish between them. */ + bool usePrsOpts; /**< TRUE to use parser options. */ + u_FmPcdHdrPrsOpts prsOpts; /**< A union according to header type, + defining the parser options selected.*/ +} t_FmPcdPrsAdditionalHdrParams; + +/**************************************************************************//** + @Description struct for defining port PCD parameters +*//***************************************************************************/ +typedef struct t_FmPortPcdPrsParams { + uint8_t prsResultPrivateInfo; /**< The private info provides a method of inserting + port information into the parser result. This information + may be extracted by Keygen and be used for frames + distribution when a per-port distinction is required, + it may also be used as a port logical id for analyzing + incoming frames. */ + uint8_t parsingOffset; /**< Number of bytes from beginning of packet to start parsing */ + e_NetHeaderType firstPrsHdr; /**< The type of the first header expected at 'parsingOffset' */ + bool includeInPrsStatistics; /**< TRUE to include this port in the parser statistics; + NOTE: this field is not valid when the FN is in "guest" mode. */ + uint8_t numOfHdrsWithAdditionalParams; /**< Normally 0, some headers may get + special parameters */ + t_FmPcdPrsAdditionalHdrParams additionalParams[FM_PCD_PRS_NUM_OF_HDRS]; + /**< 'numOfHdrsWithAdditionalParams' structures + of additional parameters + for each header that requires them */ + bool setVlanTpid1; /**< TRUE to configure user selection of Ethertype to + indicate a VLAN tag (in addition to the TPID values + 0x8100 and 0x88A8). */ + uint16_t vlanTpid1; /**< extra tag to use if setVlanTpid1=TRUE. */ + bool setVlanTpid2; /**< TRUE to configure user selection of Ethertype to + indicate a VLAN tag (in addition to the TPID values + 0x8100 and 0x88A8). */ + uint16_t vlanTpid2; /**< extra tag to use if setVlanTpid1=TRUE. */ +} t_FmPortPcdPrsParams; + +/**************************************************************************//** + @Description struct for defining coarse alassification parameters +*//***************************************************************************/ +typedef struct t_FmPortPcdCcParams { + t_Handle h_CcTree; /**< A handle to a CC tree */ +} t_FmPortPcdCcParams; + +/**************************************************************************//** + @Description struct for defining keygen parameters +*//***************************************************************************/ +typedef struct t_FmPortPcdKgParams { + uint8_t numOfSchemes; /**< Number of schemes for port to be bound to. */ + t_Handle h_Schemes[FM_PCD_KG_NUM_OF_SCHEMES]; + /**< Array of 'numOfSchemes' schemes handles for the + port to be bound to */ + bool directScheme; /**< TRUE for going from parser to a specific scheme, + regardless of parser result */ + t_Handle h_DirectScheme; /**< relevant only if direct == TRUE, Scheme handle, + as returned by FM_PCD_KgSetScheme */ +} t_FmPortPcdKgParams; + +/**************************************************************************//** + @Description struct for defining policer parameters +*//***************************************************************************/ +typedef struct t_FmPortPcdPlcrParams { + t_Handle h_Profile; /**< Selected profile handle; Relevant for one of + following cases: + e_FM_PORT_PCD_SUPPORT_PLCR_ONLY or + e_FM_PORT_PCD_SUPPORT_PRS_AND_PLCR were selected, + or if any flow uses a KG scheme were policer + profile is not generated + (bypassPlcrProfileGeneration selected) */ +} t_FmPortPcdPlcrParams; + +/**************************************************************************//** + @Description struct for defining port PCD parameters +*//***************************************************************************/ +typedef struct t_FmPortPcdParams { + e_FmPortPcdSupport pcdSupport; /**< Relevant for Rx and offline ports only. + Describes the active PCD engines for this port. */ + t_Handle h_NetEnv; /**< HL Unused in PLCR only mode */ + t_FmPortPcdPrsParams *p_PrsParams; /**< Parser parameters for this port */ + t_FmPortPcdCcParams *p_CcParams; /**< Coarse classification parameters for this port */ + t_FmPortPcdKgParams *p_KgParams; /**< Keygen parameters for this port */ + t_FmPortPcdPlcrParams *p_PlcrParams; /**< Policer parameters for this port */ +} t_FmPortPcdParams; + +/**************************************************************************//** + @Description A structure for defining the Parser starting point +*//***************************************************************************/ +typedef struct t_FmPcdPrsStart { + uint8_t parsingOffset; /**< Number of bytes from beginning of packet to + start parsing */ + e_NetHeaderType firstPrsHdr; /**< The type of the first header axpected at + 'parsingOffset' */ +} t_FmPcdPrsStart; + + +/**************************************************************************//** + @Function FM_PORT_SetPCD + + @Description Calling this routine defines the port's PCD configuration. + It changes it from its default configuration which is PCD + disabled (BMI to BMI) and configures it according to the passed + parameters. + + May be used for Rx and offline parsing ports only + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] p_FmPortPcd A Structure of parameters defining the port's PCD + configuration. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_SetPCD(t_Handle h_FmPort, t_FmPortPcdParams *p_FmPortPcd); + +/**************************************************************************//** + @Function FM_PORT_DeletePCD + + @Description Calling this routine releases the port's PCD configuration. + The port returns to its default configuration which is PCD + disabled (BMI to BMI) and all PCD configuration is removed. + + May be used for Rx and offline parsing ports which are + in PCD mode only + + @Param[in] h_FmPort A handle to a FM Port module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_DeletePCD(t_Handle h_FmPort); + +/**************************************************************************//** + @Function FM_PORT_AttachPCD + + @Description This routine may be called after FM_PORT_DetachPCD was called, + to return to the originally configured PCD support flow. + The couple of routines are used to allow PCD configuration changes + that demand that PCD will not be used while changes take place. + + May be used for Rx and offline parsing ports which are + in PCD mode only + + @Param[in] h_FmPort A handle to a FM Port module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). +*//***************************************************************************/ +t_Error FM_PORT_AttachPCD(t_Handle h_FmPort); + +/**************************************************************************//** + @Function FM_PORT_DetachPCD + + @Description Calling this routine detaches the port from its PCD functionality. + The port returns to its default flow which is BMI to BMI. + + May be used for Rx and offline parsing ports which are + in PCD mode only + + @Param[in] h_FmPort A handle to a FM Port module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_AttachPCD(). +*//***************************************************************************/ +t_Error FM_PORT_DetachPCD(t_Handle h_FmPort); + +/**************************************************************************//** + @Function FM_PORT_PcdPlcrAllocProfiles + + @Description This routine may be called only for ports that use the Policer in + order to allocate private policer profiles. + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] numOfProfiles The number of required policer profiles + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init() and FM_PCD_Init(), and before FM_PORT_SetPCD(). +*//***************************************************************************/ +t_Error FM_PORT_PcdPlcrAllocProfiles(t_Handle h_FmPort, uint16_t numOfProfiles); + +/**************************************************************************//** + @Function FM_PORT_PcdPlcrFreeProfiles + + @Description This routine should be called for freeing private policer profiles. + + @Param[in] h_FmPort A handle to a FM Port module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init() and FM_PCD_Init(), and before FM_PORT_SetPCD(). +*//***************************************************************************/ +t_Error FM_PORT_PcdPlcrFreeProfiles(t_Handle h_FmPort); + +/**************************************************************************//** + @Function FM_PORT_PcdKgModifyInitialScheme + + @Description This routine may be called only for ports that use the keygen in + order to change the initial scheme frame should be routed to. + The change may be of a scheme id (in case of direct mode), + from direct to indirect, or from indirect to direct - specifying the scheme id. + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] p_FmPcdKgScheme A structure of parameters for defining whether + a scheme is direct/indirect, and if direct - scheme id. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init() and FM_PORT_SetPCD(). +*//***************************************************************************/ +t_Error FM_PORT_PcdKgModifyInitialScheme (t_Handle h_FmPort, t_FmPcdKgSchemeSelect *p_FmPcdKgScheme); + +/**************************************************************************//** + @Function FM_PORT_PcdPlcrModifyInitialProfile + + @Description This routine may be called for ports with flows + e_FM_PORT_PCD_SUPPORT_PLCR_ONLY or e_FM_PORT_PCD_SUPPORT_PRS_AND_PLCR + only, to change the initial Policer profile frame should be + routed to. The change may be of a profile and/or absolute/direct + mode selection. + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] h_Profile Policer profile handle + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init() and FM_PORT_SetPCD(). +*//***************************************************************************/ +t_Error FM_PORT_PcdPlcrModifyInitialProfile (t_Handle h_FmPort, t_Handle h_Profile); + +/**************************************************************************//** + @Function FM_PORT_PcdCcModifyTree + + @Description This routine may be called for ports that use coarse classification tree + if the user wishes to replace the tree. The routine may not be called while port + receives packets using the PCD functionalities, therefor port must be first detached + from the PCD, only than the routine may be called, and than port be attached to PCD again. + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] h_CcTree A CC tree that was already built. The tree id as returned from + the BuildTree routine. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(), FM_PORT_SetPCD() and FM_PORT_DetachPCD() +*//***************************************************************************/ +t_Error FM_PORT_PcdCcModifyTree (t_Handle h_FmPort, t_Handle h_CcTree); + +/**************************************************************************//** + @Function FM_PORT_PcdKgBindSchemes + + @Description These routines may be called for adding more schemes for the + port to be bound to. The selected schemes are not added, + just this specific port starts using them. + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] p_PortScheme A structure defining the list of schemes to be added. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init() and FM_PORT_SetPCD(). +*//***************************************************************************/ +t_Error FM_PORT_PcdKgBindSchemes (t_Handle h_FmPort, t_FmPcdPortSchemesParams *p_PortScheme); + +/**************************************************************************//** + @Function FM_PORT_PcdKgUnbindSchemes + + @Description These routines may be called for adding more schemes for the + port to be bound to. The selected schemes are not removed or invalidated, + just this specific port stops using them. + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] p_PortScheme A structure defining the list of schemes to be added. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init() and FM_PORT_SetPCD(). +*//***************************************************************************/ +t_Error FM_PORT_PcdKgUnbindSchemes (t_Handle h_FmPort, t_FmPcdPortSchemesParams *p_PortScheme); + +/**************************************************************************//** + @Function FM_PORT_PcdPrsModifyStartOffset + + @Description Runtime change of the parser start offset within the header. + The routine may not be called while port + receives packets using the PCD functionalities, therefore port must be first detached + from the PCD, only than the routine may be called, and than port be attached to PCD again. + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] p_FmPcdPrsStart A structure of parameters for defining the + start point for the parser. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(), FM_PORT_SetPCD() and FM_PORT_DetatchPCD(). +*//***************************************************************************/ +t_Error FM_PORT_PcdPrsModifyStartOffset (t_Handle h_FmPort, t_FmPcdPrsStart *p_FmPcdPrsStart); + +/** @} */ /* end of FM_PORT_pcd_runtime_control_grp group */ +/** @} */ /* end of FM_PORT_runtime_control_grp group */ + + +/**************************************************************************//** + @Group FM_PORT_runtime_data_grp FM Port Runtime Data-path Unit + + @Description FM Port Runtime data unit API functions, definitions and enums. + This API is valid only if working in Independent-Mode. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Function FM_PORT_ImTx + + @Description Tx function, called to transmit a data buffer on the port. + + @Param[in] h_FmPort A handle to a FM Port module. + @Param[in] p_Data A pointer to an LCP data buffer. + @Param[in] length Size of data for transmission. + @Param[in] lastBuffer Buffer position - TRUE for the last buffer + of a frame, including a single buffer frame + @Param[in] h_BufContext A handle of the user acossiated with this buffer + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). + NOTE - This routine can be used only when working in + Independent-Mode mode. +*//***************************************************************************/ +t_Error FM_PORT_ImTx( t_Handle h_FmPort, + uint8_t *p_Data, + uint16_t length, + bool lastBuffer, + t_Handle h_BufContext); + +/**************************************************************************//** + @Function FM_PORT_ImTxConf + + @Description Tx port confirmation routine, optional, may be called to verify + transmission of all frames. The procedure performed by this + routine will be performed automatically on next buffer transmission, + but if desired, calling this routine will invoke this action on + demand. + + @Param[in] h_FmPort A handle to a FM Port module. + + @Cautions Allowed only following FM_PORT_Init(). + NOTE - This routine can be used only when working in + Independent-Mode mode. +*//***************************************************************************/ +void FM_PORT_ImTxConf(t_Handle h_FmPort); + +/**************************************************************************//** + @Function FM_PORT_ImRx + + @Description Rx function, may be called to poll for received buffers. + Normally, Rx process is invoked by the driver on Rx interrupt. + Alternatively, this routine may be called on demand. + + @Param[in] h_FmPort A handle to a FM Port module. + + @Return E_OK on success; Error code otherwise. + + @Cautions Allowed only following FM_PORT_Init(). + NOTE - This routine can be used only when working in + Independent-Mode mode. +*//***************************************************************************/ +t_Error FM_PORT_ImRx(t_Handle h_FmPort); + +/** @} */ /* end of FM_PORT_runtime_data_grp group */ +/** @} */ /* end of FM_PORT_grp group */ +/** @} */ /* end of FM_grp group */ + + + + +#endif /* __FM_PORT_EXT */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/Peripherals/fm_rtc_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/Peripherals/fm_rtc_ext.h @@ -0,0 +1,592 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + @File fm_rtc_ext.h + + @Description External definitions and API for FM RTC IEEE1588 Timer Module. + + @Cautions None. +*//***************************************************************************/ + +#ifndef __FM_RTC_EXT_H__ +#define __FM_RTC_EXT_H__ + + +#include "error_ext.h" +#include "std_ext.h" + + +/**************************************************************************//** + + @Group FM_grp Frame Manager API + + @Description FM API functions, definitions and enums + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group fm_rtc_grp FM RTC + + @Description FM RTC functions, definitions and enums. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group fm_rtc_init_grp FM RTC Initialization Unit + + @Description FM RTC initialization API. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Description FM RTC Alarm Polarity Options. +*//***************************************************************************/ +typedef enum e_FmRtcAlarmPolarity +{ + e_FM_RTC_ALARM_POLARITY_ACTIVE_HIGH, /**< Active-high output polarity */ + e_FM_RTC_ALARM_POLARITY_ACTIVE_LOW /**< Active-low output polarity */ +} e_FmRtcAlarmPolarity; + +/**************************************************************************//** + @Description FM RTC Trigger Polarity Options. +*//***************************************************************************/ +typedef enum e_FmRtcTriggerPolarity +{ + e_FM_RTC_TRIGGER_ON_RISING_EDGE, /**< Trigger on rising edge */ + e_FM_RTC_TRIGGER_ON_FALLING_EDGE /**< Trigger on falling edge */ +} e_FmRtcTriggerPolarity; + +/**************************************************************************//** + @Description IEEE1588 Timer Module FM RTC Optional Clock Sources. +*//***************************************************************************/ +typedef enum e_FmSrcClock +{ + e_FM_RTC_SOURCE_CLOCK_EXTERNAL, /**< external high precision timer reference clock */ + e_FM_RTC_SOURCE_CLOCK_SYSTEM, /**< MAC system clock */ + e_FM_RTC_SOURCE_CLOCK_OSCILATOR /**< RTC clock oscilator */ +}e_FmSrcClk; + +/**************************************************************************//** + @Description FM RTC configuration parameters structure. + + This structure should be passed to FM_RTC_Config(). +*//***************************************************************************/ +typedef struct t_FmRtcParams +{ + t_Handle h_Fm; /**< FM Handle*/ + uintptr_t baseAddress; /**< Base address of FM RTC registers */ + t_Handle h_App; /**< A handle to an application layer object; This handle will + be passed by the driver upon calling the above callbacks */ +} t_FmRtcParams; + + +/**************************************************************************//** + @Function FM_RTC_Config + + @Description Configures the FM RTC module according to user's parameters. + + The driver assigns default values to some FM RTC parameters. + These parameters can be overwritten using the advanced + configuration routines. + + @Param[in] p_FmRtcParam - FM RTC configuration parameters. + + @Return Handle to the new FM RTC object; NULL pointer on failure. + + @Cautions None +*//***************************************************************************/ +t_Handle FM_RTC_Config(t_FmRtcParams *p_FmRtcParam); + +/**************************************************************************//** + @Function FM_RTC_Init + + @Description Initializes the FM RTC driver and hardware. + + @Param[in] h_FmRtc - Handle to FM RTC object. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously created using FM_RTC_Config(). +*//***************************************************************************/ +t_Error FM_RTC_Init(t_Handle h_FmRtc); + +/**************************************************************************//** + @Function FM_RTC_Free + + @Description Frees the FM RTC object and all allocated resources. + + @Param[in] h_FmRtc - Handle to FM RTC object. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously created using FM_RTC_Config(). +*//***************************************************************************/ +t_Error FM_RTC_Free(t_Handle h_FmRtc); + + +/**************************************************************************//** + @Group fm_rtc_adv_config_grp FM RTC Advanced Configuration Unit + + @Description FM RTC advanced configuration functions. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Function FM_RTC_ConfigPeriod + + @Description Configures the period of the timestamp if different than + default [1000]. + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] period - Period in nano-seconds. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously created using FM_RTC_Config(). +*//***************************************************************************/ +t_Error FM_RTC_ConfigPeriod(t_Handle h_FmRtc, uint32_t period); + +/**************************************************************************//** + @Function FM_RTC_ConfigSourceClock + + @Description Configures the source clock of the RTC. + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] srcClk - Source clock selection. + @Param[in] freqInMhz - the source-clock frequency (in MHz). + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously created using FM_RTC_Config(). +*//***************************************************************************/ +t_Error FM_RTC_ConfigSourceClock(t_Handle h_FmRtc, + e_FmSrcClk srcClk, + uint32_t freqInMhz); + +/**************************************************************************//** + @Function FM_RTC_ConfigPulseRealignment + + @Description Configures the RTC to automatic FIPER pulse realignment in + response to timer adjustments [FALSE] + + In this mode, the RTC clock is identical to the source clock. + This feature can be useful when the system contains an external + RTC with inherent frequency compensation. + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] enable - TRUE to enable automatic realignment. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously created using FM_RTC_Config(). +*//***************************************************************************/ +t_Error FM_RTC_ConfigPulseRealignment(t_Handle h_FmRtc, bool enable); + +/**************************************************************************//** + @Function FM_RTC_ConfigFrequencyBypass + + @Description Configures the RTC to bypass the frequency compensation + mechanism. [FALSE] + + In this mode, the RTC clock is identical to the source clock. + This feature can be useful when the system contains an external + RTC with inherent frequency compensation. + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] enabled - TRUE to bypass frequency compensation; + FALSE otherwise. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously created using FM_RTC_Config(). +*//***************************************************************************/ +t_Error FM_RTC_ConfigFrequencyBypass(t_Handle h_FmRtc, bool enabled); + +/**************************************************************************//** + @Function FM_RTC_ConfigInvertedInputClockPhase + + @Description Configures the RTC to invert the source clock phase on input. + [FALSE] + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] inverted - TRUE to invert the source clock phase on input. + FALSE otherwise. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously created using FM_RTC_Config(). +*//***************************************************************************/ +t_Error FM_RTC_ConfigInvertedInputClockPhase(t_Handle h_FmRtc, bool inverted); + +/**************************************************************************//** + @Function FM_RTC_ConfigInvertedOutputClockPhase + + @Description Configures the RTC to invert the output clock phase. + [FALSE] + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] inverted - TRUE to invert the output clock phase. + FALSE otherwise. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously created using FM_RTC_Config(). +*//***************************************************************************/ +t_Error FM_RTC_ConfigInvertedOutputClockPhase(t_Handle h_FmRtc, bool inverted); + +/**************************************************************************//** + @Function FM_RTC_ConfigOutputClockDivisor + + @Description Configures the divisor for generating the output clock from + the RTC clock. [0x00000002] + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] divisor - Divisor for generation of the output clock. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously created using FM_RTC_Config(). +*//***************************************************************************/ +t_Error FM_RTC_ConfigOutputClockDivisor(t_Handle h_FmRtc, uint16_t divisor); + +/**************************************************************************//** + @Function FM_RTC_ConfigAlarmPolarity + + @Description Configures the polarity (active-high/active-low) of a specific + alarm signal. [e_FM_RTC_ALARM_POLARITY_ACTIVE_HIGH] + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] alarmId - Alarm ID. + @Param[in] alarmPolarity - Alarm polarity. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously created using FM_RTC_Config(). +*//***************************************************************************/ +t_Error FM_RTC_ConfigAlarmPolarity(t_Handle h_FmRtc, + uint8_t alarmId, + e_FmRtcAlarmPolarity alarmPolarity); + +/**************************************************************************//** + @Function FM_RTC_ConfigExternalTriggerPolarity + + @Description Configures the polarity (rising/falling edge) of a specific + external trigger signal. [e_FM_RTC_TRIGGER_ON_FALLING_EDGE] + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] triggerId - Trigger ID. + @Param[in] triggerPolarity - Trigger polarity. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously created using FM_RTC_Config(). +*//***************************************************************************/ +t_Error FM_RTC_ConfigExternalTriggerPolarity(t_Handle h_FmRtc, + uint8_t triggerId, + e_FmRtcTriggerPolarity triggerPolarity); + +/** @} */ /* end of fm_rtc_adv_config_grp */ +/** @} */ /* end of fm_rtc_init_grp */ + + +/**************************************************************************//** + @Group fm_rtc_control_grp FM RTC Control Unit + + @Description FM RTC runtime control API. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Function t_FmRtcExceptionsCallback + + @Description Exceptions user callback routine, used for RTC different mechanisms. + + @Param[in] h_App - User's application descriptor. + @Param[in] id - source id. +*//***************************************************************************/ +typedef void (t_FmRtcExceptionsCallback) ( t_Handle h_App, uint8_t id); + +/**************************************************************************//** + @Description FM RTC alarm parameters. +*//***************************************************************************/ +typedef struct t_FmRtcAlarmParams { + uint8_t alarmId; /**< 0 or 1 */ + uint64_t alarmTime; /**< In nanoseconds, the time when the alarm + should go off - must be a multiple of + the RTC period */ + t_FmRtcExceptionsCallback *f_AlarmCallback; /**< This routine will be called when RTC + reaches alarmTime */ + bool clearOnExpiration; /**< TRUE to turn off the alarm once expired. */ +} t_FmRtcAlarmParams; + +/**************************************************************************//** + @Description FM RTC Periodic Pulse parameters. +*//***************************************************************************/ +typedef struct t_FmRtcPeriodicPulseParams { + uint8_t periodicPulseId; /**< 0 or 1 */ + uint64_t periodicPulsePeriod; /**< In Nanoseconds. Must be + a multiple of the RTC period */ + t_FmRtcExceptionsCallback *f_PeriodicPulseCallback; /**< This routine will be called every + periodicPulsePeriod. */ +} t_FmRtcPeriodicPulseParams; + +/**************************************************************************//** + @Description FM RTC Periodic Pulse parameters. +*//***************************************************************************/ +typedef struct t_FmRtcExternalTriggerParams { + uint8_t externalTriggerId; /**< 0 or 1 */ + bool usePulseAsInput; /**< Use the pulse interrupt instead of + an external signal */ + t_FmRtcExceptionsCallback *f_ExternalTriggerCallback; /**< This routine will be called every + periodicPulsePeriod. */ +} t_FmRtcExternalTriggerParams; + + +/**************************************************************************//** + @Function FM_RTC_Enable + + @Description Enable the RTC (time count is started). + + The user can select to resume the time count from previous + point, or to restart the time count. + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] resetClock - Restart the time count from zero. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously initialized using FM_RTC_Init(). +*//***************************************************************************/ +t_Error FM_RTC_Enable(t_Handle h_FmRtc, bool resetClock); + +/**************************************************************************//** + @Function FM_RTC_Disable + + @Description Disables the RTC (time count is stopped). + + @Param[in] h_FmRtc - Handle to FM RTC object. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously initialized using FM_RTC_Init(). +*//***************************************************************************/ +t_Error FM_RTC_Disable(t_Handle h_FmRtc); + +/**************************************************************************//** + @Function FM_RTC_SetClockOffset + + @Description Sets the clock offset (usually relative to another clock). + + The user can pass a negative offset value. + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] offset - New clock offset (in nanoseconds). + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously initialized using FM_RTC_Init(). +*//***************************************************************************/ +t_Error FM_RTC_SetClockOffset(t_Handle h_FmRtc, int64_t offset); + +/**************************************************************************//** + @Function FM_RTC_SetAlarm + + @Description Schedules an alarm event to a given RTC time. + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] p_FmRtcAlarmParams - Alarm parameters. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously initialized using FM_RTC_Init(). + Must be called only prior to FM_RTC_Enable(). +*//***************************************************************************/ +t_Error FM_RTC_SetAlarm(t_Handle h_FmRtc, t_FmRtcAlarmParams *p_FmRtcAlarmParams); + +/**************************************************************************//** + @Function FM_RTC_SetPeriodicPulse + + @Description Sets a periodic pulse. + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] p_FmRtcPeriodicPulseParams - Periodic pulse parameters. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously initialized using FM_RTC_Init(). + Must be called only prior to FM_RTC_Enable(). +*//***************************************************************************/ +t_Error FM_RTC_SetPeriodicPulse(t_Handle h_FmRtc, t_FmRtcPeriodicPulseParams *p_FmRtcPeriodicPulseParams); + +/**************************************************************************//** + @Function FM_RTC_ClearPeriodicPulse + + @Description Clears a periodic pulse. + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] periodicPulseId - Periodic pulse id. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously initialized using FM_RTC_Init(). +*//***************************************************************************/ +t_Error FM_RTC_ClearPeriodicPulse(t_Handle h_FmRtc, uint8_t periodicPulseId); + +/**************************************************************************//** + @Function FM_RTC_SetExternalTrigger + + @Description Sets an external trigger indication and define a callback + routine to be called on such event. + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] p_FmRtcExternalTriggerParams - External Trigger parameters. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously initialized using FM_RTC_Init(). +*//***************************************************************************/ +t_Error FM_RTC_SetExternalTrigger(t_Handle h_FmRtc, t_FmRtcExternalTriggerParams *p_FmRtcExternalTriggerParams); + +/**************************************************************************//** + @Function FM_RTC_ClearExternalTrigger + + @Description Clears external trigger indication. + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] id - External Trigger id. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously initialized using FM_RTC_Init(). +*//***************************************************************************/ +t_Error FM_RTC_ClearExternalTrigger(t_Handle h_FmRtc, uint8_t id); + +/**************************************************************************//** + @Function FM_RTC_GetExternalTriggerTimeStamp + + @Description Reads the External Trigger TimeStamp. + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] triggerId - External Trigger id. + @Param[out] p_TimeStamp - External Trigger timestamp (in nanoseconds). + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously initialized using FM_RTC_Init(). +*//***************************************************************************/ +t_Error FM_RTC_GetExternalTriggerTimeStamp(t_Handle h_FmRtc, + uint8_t triggerId, + uint64_t *p_TimeStamp); + +/**************************************************************************//** + @Function FM_RTC_GetCurrentTime + + @Description Returns the current RTC time. + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[out] p_Ts - returned time stamp (in nanoseconds). + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously initialized using FM_RTC_Init(). +*//***************************************************************************/ +t_Error FM_RTC_GetCurrentTime(t_Handle h_FmRtc, uint64_t *p_Ts); + +/**************************************************************************//** + @Function FM_RTC_SetCurrentTime + + @Description Sets the current RTC time. + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] ts - The new time stamp (in nanoseconds). + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously initialized using FM_RTC_Init(). +*//***************************************************************************/ +t_Error FM_RTC_SetCurrentTime(t_Handle h_FmRtc, uint64_t ts); + +/**************************************************************************//** + @Function FM_RTC_GetFreqCompensation + + @Description TODO + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[out] p_Compensation - A pointer to the returned value of compensation. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously initialized using FM_RTC_Init(). +*//***************************************************************************/ +t_Error FM_RTC_GetFreqCompensation(t_Handle h_FmRtc, uint32_t *p_Compensation); + +/**************************************************************************//** + @Function FM_RTC_SetFreqCompensation + + @Description TODO + + @Param[in] h_FmRtc - Handle to FM RTC object. + @Param[in] freqCompensation - the new desired compensation value to be set. + + @Return E_OK on success; Error code otherwise. + + @Cautions h_FmRtc must have been previously initialized using FM_RTC_Init(). +*//***************************************************************************/ +t_Error FM_RTC_SetFreqCompensation(t_Handle h_FmRtc, uint32_t freqCompensation); + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) +/**************************************************************************//** + @Function FM_RTC_DumpRegs + + @Description Dumps all FM registers + + @Param[in] h_FmRtc A handle to an FM RTC Module. + + @Return E_OK on success; + + @Cautions Allowed only FM_Init(). +*//***************************************************************************/ +t_Error FM_RTC_DumpRegs(t_Handle h_FmRtc); +#endif /* (defined(DEBUG_ERRORS) && ... */ + +/** @} */ /* end of fm_rtc_control_grp */ +/** @} */ /* end of fm_rtc_grp */ +/** @} */ /* end of FM_grp group */ + + +#endif /* __FM_RTC_EXT_H__ */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/Peripherals/mii_acc_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/Peripherals/mii_acc_ext.h @@ -0,0 +1,75 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +#ifndef __MII_ACC_EXT_H +#define __MII_ACC_EXT_H + + +/**************************************************************************//** + @Function MII_ReadPhyReg + + @Description This routine is called to read a specified PHY + register value. + + @Param[in] h_MiiAccess - Handle to MII configuration access registers + @Param[in] phyAddr - PHY address (0-31). + @Param[in] reg - PHY register to read + @Param[out] p_Data - Gets the register value. + + @Return Always zero (success). +*//***************************************************************************/ +int MII_ReadPhyReg(t_Handle h_MiiAccess, + uint8_t phyAddr, + uint8_t reg, + uint16_t *p_Data); + +/**************************************************************************//** + @Function MII_WritePhyReg + + @Description This routine is called to write data to a specified PHY + register. + + @Param[in] h_MiiAccess - Handle to MII configuration access registers + @Param[in] phyAddr - PHY address (0-31). + @Param[in] reg - PHY register to write + @Param[in] data - Data to write in register. + + @Return Always zero (success). +*//***************************************************************************/ +int MII_WritePhyReg(t_Handle h_MiiAccess, + uint8_t phyAddr, + uint8_t reg, + uint16_t data); + + +#endif /* __MII_ACC_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/core_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/core_ext.h @@ -0,0 +1,81 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + @File core_ext.h + + @Description Generic interface to basic core operations. + + The system integrator must ensure that this interface is + mapped to a specific core implementation, by including the + appropriate header file. +*//***************************************************************************/ +#ifndef __CORE_EXT_H +#define __CORE_EXT_H + + +#ifdef NCSW_PPC_CORE +#include "ppc_ext.h" +#elif defined(NCSW_VXWORKS) +#include "core_vxw_ext.h" +#else +#error "Core is not defined!" +#endif /* NCSW_CORE */ + +#if (!defined(CORE_IS_LITTLE_ENDIAN) && !defined(CORE_IS_BIG_ENDIAN)) +#error "Must define core as little-endian or big-endian!" +#endif /* (!defined(CORE_IS_LITTLE_ENDIAN) && ... */ + + +/**************************************************************************//** + @Function CORE_GetId + + @Description Returns the core ID in the system. + + @Return Core ID. +*//***************************************************************************/ +uint32_t CORE_GetId(void); + +/**************************************************************************//** + @Function CORE_MemoryBarrier + + @Description This routine will cause the core to stop executing any commands + until all previous memory read/write commands are completely out + of the core's pipeline. + + @Return None. +*//***************************************************************************/ +void CORE_MemoryBarrier(void); + + +#endif /* __CORE_EXT_H */ + --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/cores/e500v2_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/cores/e500v2_ext.h @@ -0,0 +1,413 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + @File e500v2_ext.h + + @Description E500 external definitions prototypes + This file is not included by the E500 + source file as it is an assembly file. It is used + only for prototypes exposure, for inclusion + by user and other modules. +*//***************************************************************************/ + +#ifndef __E500V2_EXT_H +#define __E500V2_EXT_H + +#include "std_ext.h" + + +/* Layer 1 Cache Manipulations + *============================== + * Should not be called directly by the user. + */ +void L1DCache_Invalidate (void); +void L1ICache_Invalidate(void); +void L1DCache_Enable(void); +void L1ICache_Enable(void); +void L1DCache_Disable(void); +void L1ICache_Disable(void); +void L1DCache_Flush(void); +void L1ICache_Flush(void); +/* + * + */ +uint32_t L1DCache_LineLock(uint32_t addr); +uint32_t L1ICache_LineLock(uint32_t addr); +void L1Cache_BroadCastEnable(void); +void L1Cache_BroadCastDisable(void); + + +#define CORE_DCacheEnable E500_DCacheEnable +#define CORE_ICacheEnable E500_ICacheEnable +#define CORE_DCacheDisable E500_DCacheDisable +#define CORE_ICacheDisable E500_ICacheDisable +#define CORE_GetId E500_GetId +#define CORE_TestAndSet E500_TestAndSet +#define CORE_MemoryBarrier E500_MemoryBarrier +#define CORE_InstructionSync E500_InstructionSync + +#define CORE_SetDozeMode E500_SetDozeMode +#define CORE_SetNapMode E500_SetNapMode +#define CORE_SetSleepMode E500_SetSleepMode +#define CORE_SetJogMode E500_SetJogMode +#define CORE_SetDeepSleepMode E500_SetDeepSleepMode + +#define CORE_RecoverDozeMode E500_RecoverDozeMode +#define CORE_RecoverNapMode E500_RecoverNapMode +#define CORE_RecoverSleepMode E500_RecoverSleepMode +#define CORE_RecoverJogMode E500_RecoverJogMode + +void E500_SetDozeMode(void); +void E500_SetNapMode(void); +void E500_SetSleepMode(void); +void E500_SetJogMode(void); +t_Error E500_SetDeepSleepMode(uint32_t bptrAddress); + +void E500_RecoverDozeMode(void); +void E500_RecoverNapMode(void); +void E500_RecoverSleepMode(void); +void E500_RecoverJogMode(void); + + +/**************************************************************************//** + @Group E500_id E500 Application Programming Interface + + @Description E500 API functions, definitions and enums + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group E500_init_grp E500 Initialization Unit + + @Description E500 initialization unit API functions, definitions and enums + + @{ +*//***************************************************************************/ + + +/**************************************************************************//** + @Function E500_DCacheEnable + + @Description Enables the data cache for memory pages that are + not cache inhibited. + + @Return None. +*//***************************************************************************/ +void E500_DCacheEnable(void); + +/**************************************************************************//** + @Function E500_ICacheEnable + + @Description Enables the instruction cache for memory pages that are + not cache inhibited. + + @Return None. +*//***************************************************************************/ +void E500_ICacheEnable(void); + +/**************************************************************************//** + @Function E500_DCacheDisable + + @Description Disables the data cache. + + @Return None. +*//***************************************************************************/ +void E500_DCacheDisable(void); + +/**************************************************************************//** + @Function E500_ICacheDisable + + @Description Disables the instruction cache. + + @Return None. +*//***************************************************************************/ +void E500_ICacheDisable(void); + +/**************************************************************************//** + @Function E500_DCacheFlush + + @Description Flushes the data cache + + @Return None. +*//***************************************************************************/ +void E500_DCacheFlush(void); + +/**************************************************************************//** + @Function E500_ICacheFlush + + @Description Flushes the instruction cache. + + @Return None. +*//***************************************************************************/ +void E500_ICacheFlush(void); + +/**************************************************************************//** + @Function E500_DCacheSetStashId + + @Description Set Stash Id for data cache + + @Param[in] stashId the stash id to be set. + + @Return None. +*//***************************************************************************/ +void E500_DCacheSetStashId(uint8_t stashId); + +/**************************************************************************//** + @Description E500mc L2 Cache Operation Mode +*//***************************************************************************/ +typedef enum e_E500mcL2CacheMode +{ + e_L2_CACHE_MODE_DATA_ONLY = 0x00000001, /**< Cache data only */ + e_L2_CACHE_MODE_INST_ONLY = 0x00000002, /**< Cache instructions only */ + e_L2_CACHE_MODE_DATA_AND_INST = 0x00000003 /**< Cache data and instructions */ +} e_E500mcL2CacheMode; + +/**************************************************************************//** + @Function E500_L2CacheEnable + + @Description Enables the cache for memory pages that are not cache inhibited. + + @param[in] mode - L2 cache mode: data only, instruction only or instruction and data. + + @Return None. + + @Cautions This routine must be call only ONCE for both caches. I.e. it is + not possible to call this routine for i-cache and than to call + again for d-cache; The second call will override the first one. +*//***************************************************************************/ +void E500_L2CacheEnable(e_E500mcL2CacheMode mode); + +/**************************************************************************//** + @Function E500_L2CacheDisable + + @Description Disables the cache (data instruction or both). + + @Return None. + +*//***************************************************************************/ +void E500_L2CacheDisable(void); + +/**************************************************************************//** + @Function E500_L2CacheFlush + + @Description Flushes the cache. + + @Return None. +*//***************************************************************************/ +void E500_L2CacheFlush(void); + +/**************************************************************************//** + @Function E500_L2SetStashId + + @Description Set Stash Id + + @Param[in] stashId the stash id to be set. + + @Return None. +*//***************************************************************************/ +void E500_L2SetStashId(uint8_t stashId); + +/**************************************************************************//** + @Function E500_AddressBusStreamingEnable + + @Description Enables address bus streaming on the CCB. + + This setting, along with the ECM streaming configuration + parameters, enables address bus streaming on the CCB. + + @Return None. +*//***************************************************************************/ +void E500_AddressBusStreamingEnable(void); + +/**************************************************************************//** + @Function E500_AddressBusStreamingDisable + + @Description Disables address bus streaming on the CCB. + + @Return None. +*//***************************************************************************/ +void E500_AddressBusStreamingDisable(void); + +/**************************************************************************//** + @Function E500_AddressBroadcastEnable + + @Description Enables address broadcast. + + The e500 broadcasts cache management instructions (dcbst, dcblc + (CT = 1), icblc (CT = 1), dcbf, dcbi, mbar, msync, tlbsync, icbi) + based on ABE. ABE must be set to allow management of external + L2 caches. + + @Return None. +*//***************************************************************************/ +void E500_AddressBroadcastEnable(void); + +/**************************************************************************//** + @Function E500_AddressBroadcastDisable + + @Description Disables address broadcast. + + The e500 broadcasts cache management instructions (dcbst, dcblc + (CT = 1), icblc (CT = 1), dcbf, dcbi, mbar, msync, tlbsync, icbi) + based on ABE. ABE must be set to allow management of external + L2 caches. + + @Return None. +*//***************************************************************************/ +void E500_AddressBroadcastDisable(void); + +/**************************************************************************//** + @Function E500_IsTaskletSupported + + @Description Checks if tasklets are supported by the e500 interrupt handler. + + @Retval TRUE - Tasklets are supported. + @Retval FALSE - Tasklets are not supported. +*//***************************************************************************/ +bool E500_IsTaskletSupported(void); + +void E500_EnableTimeBase(void); +void E500_DisableTimeBase(void); + +uint64_t E500_GetTimeBaseTime(void); + +void E500_GenericIntrInit(void); + +t_Error E500_SetIntr(int ppcIntrSrc, + void (* Isr)(t_Handle handle), + t_Handle handle); + +t_Error E500_ClearIntr(int ppcIntrSrc); + +/**************************************************************************//** + @Function E500_GenericIntrHandler + + @Description This is the general e500 interrupt handler. + + It is called by the main assembly interrupt handler + when an exception occurs and no other function has been + assigned to this exception. + + @Param intrEntry - (In) The exception interrupt vector entry. +*//***************************************************************************/ +void E500_GenericIntrHandler(uint32_t intrEntry); + +/**************************************************************************//** + @Function CriticalIntr + + @Description This is the specific critical e500 interrupt handler. + + It is called by the main assembly interrupt handler + when an critical interrupt. + + @Param intrEntry - (In) The exception interrupt vector entry. +*//***************************************************************************/ +void CriticalIntr(uint32_t intrEntry); + + +/**************************************************************************//** + @Function E500_GetId + + @Description Returns the core ID in the system. + + @Return Core ID. +*//***************************************************************************/ +uint32_t E500_GetId(void); + +/**************************************************************************//** + @Function E500_TestAndSet + + @Description This routine tries to atomically test-and-set an integer + in memory to a non-zero value. + + The memory will be set only if it is tested as zero, in which + case the routine returns the new non-zero value; otherwise the + routine returns zero. + + @Param[in] p - pointer to a volatile int in memory, on which test-and-set + operation should be made. + + @Retval Zero - Operation failed - memory was already set. + @Retval Non-zero - Operation succeeded - memory has been set. +*//***************************************************************************/ +int E500_TestAndSet(volatile int *p); + +/**************************************************************************//** + @Function E500_MemoryBarrier + + @Description This routine will cause the core to stop executing any commands + until all previous memory read/write commands are completely out + of the core's pipeline. + + @Return None. +*//***************************************************************************/ +static __inline__ void E500_MemoryBarrier(void) +{ +#ifdef CORE_E500MC + __asm__ ("mbar 1"); +#else + /**** ERRATA WORK AROUND START ****/ + /* ERRATA num: CPU1 */ + /* Description: "mbar MO = 1" instruction fails to order caching-inhibited + guarded loads and stores. */ + + /* "msync" instruction is used instead */ + + __asm__ ("msync"); + + /**** ERRATA WORK AROUND END ****/ +#endif +} + +/**************************************************************************//** + @Function E500_InstructionSync + + @Description This routine will cause the core to wait for previous instructions + (including any interrupts they generate) to complete before the + synchronization command executes, which purges all instructions + from the processor's pipeline and refetches the next instruction. + + @Return None. +*//***************************************************************************/ +static __inline__ void E500_InstructionSync(void) +{ + __asm__ ("isync"); +} + + +/** @} */ /* end of E500_init_grp group */ +/** @} */ /* end of E500_grp group */ + + +#endif /* __E500V2_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/cores/ppc_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/cores/ppc_ext.h @@ -0,0 +1,130 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + @File ppc_ext.h + + @Description Core API for PowerPC cores + + These routines must be implemented by each specific PowerPC + core driver. +*//***************************************************************************/ +#ifndef __PPC_EXT_H +#define __PPC_EXT_H + +#include "part_ext.h" + + +#define CORE_IS_BIG_ENDIAN + + +/**************************************************************************//** + @Function CORE_TestAndSet + + @Description This routine tries to atomically test-and-set an integer + in memory to a non-zero value. + + The memory will be set only if it is tested as zero, in which + case the routine returns the new non-zero value; otherwise the + routine returns zero. + + @Param[in] p - pointer to a volatile int in memory, on which test-and-set + operation should be made. + + @Retval Zero - Operation failed - memory was already set. + @Retval Non-zero - Operation succeeded - memory has been set. +*//***************************************************************************/ +int CORE_TestAndSet(volatile int *p); + +/**************************************************************************//** + @Function CORE_InstructionSync + + @Description This routine will cause the core to wait for previous instructions + (including any interrupts they generate) to complete before the + synchronization command executes, which purges all instructions + from the processor's pipeline and refetches the next instruction. + + @Return None. +*//***************************************************************************/ +void CORE_InstructionSync(void); + +/**************************************************************************//** + @Function CORE_DCacheEnable + + @Description Enables the data cache for memory pages that are + not cache inhibited. + + @Return None. +*//***************************************************************************/ +void CORE_DCacheEnable(void); + +/**************************************************************************//** + @Function CORE_ICacheEnable + + @Description Enables the instruction cache for memory pages that are + not cache inhibited. + + @Return None. +*//***************************************************************************/ +void CORE_ICacheEnable(void); + +/**************************************************************************//** + @Function CORE_DCacheDisable + + @Description Disables the data cache. + + @Return None. +*//***************************************************************************/ +void CORE_DCacheDisable(void); + +/**************************************************************************//** + @Function CORE_ICacheDisable + + @Description Disables the instruction cache. + + @Return None. +*//***************************************************************************/ +void CORE_ICacheDisable(void); + + + + +#if defined(CORE_E300) +#include "e300_ext.h" +#elif defined(CORE_E500V2) || defined(CORE_E500MC) +#include "e500v2_ext.h" +#else +#error "Core not defined!" +#endif + + +#endif /* __PPC_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/ctype_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/ctype_ext.h @@ -0,0 +1,93 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __CTYPE_EXT_H +#define __CTYPE_EXT_H + + +#if defined(NCSW_LINUX) && defined(__KERNEL__) +/* + * NOTE! This ctype does not handle EOF like the standard C + * library is required to. + */ + +#define _U 0x01 /* upper */ +#define _L 0x02 /* lower */ +#define _D 0x04 /* digit */ +#define _C 0x08 /* cntrl */ +#define _P 0x10 /* punct */ +#define _S 0x20 /* white space (space/lf/tab) */ +#define _X 0x40 /* hex digit */ +#define _SP 0x80 /* hard space (0x20) */ + +extern unsigned char _ctype[]; + +#define __ismask(x) (_ctype[(int)(unsigned char)(x)]) + +#define isalnum(c) ((__ismask(c)&(_U|_L|_D)) != 0) +#define isalpha(c) ((__ismask(c)&(_U|_L)) != 0) +#define iscntrl(c) ((__ismask(c)&(_C)) != 0) +#define isdigit(c) ((__ismask(c)&(_D)) != 0) +#define isgraph(c) ((__ismask(c)&(_P|_U|_L|_D)) != 0) +#define islower(c) ((__ismask(c)&(_L)) != 0) +#define isprint(c) ((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0) +#define ispunct(c) ((__ismask(c)&(_P)) != 0) +#define isspace(c) ((__ismask(c)&(_S)) != 0) +#define isupper(c) ((__ismask(c)&(_U)) != 0) +#define isxdigit(c) ((__ismask(c)&(_D|_X)) != 0) + +#define isascii(c) (((unsigned char)(c))<=0x7f) +#define toascii(c) (((unsigned char)(c))&0x7f) + +static __inline__ unsigned char __tolower(unsigned char c) +{ + if (isupper(c)) + c -= 'A'-'a'; + return c; +} + +static __inline__ unsigned char __toupper(unsigned char c) +{ + if (islower(c)) + c -= 'a'-'A'; + return c; +} + +#define tolower(c) __tolower(c) +#define toupper(c) __toupper(c) + +#else +#include +#endif /* defined(NCSW_LINUX) && defined(__KERNEL__) */ + + +#endif /* __CTYPE_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/debug_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/debug_ext.h @@ -0,0 +1,259 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + @File debug_ext.h + + @Description Debug mode definitions. +*//***************************************************************************/ + +#ifndef __DEBUG_EXT_H +#define __DEBUG_EXT_H + +#include "std_ext.h" +#include "xx_ext.h" +#include "memcpy_ext.h" +#if (DEBUG_ERRORS > 0) +#include "sprint_ext.h" +#include "string_ext.h" +#endif /* DEBUG_ERRORS > 0 */ + + +#if (DEBUG_ERRORS > 0) + +/* Internally used macros */ + +#define DUMP_Print XX_Print +#define DUMP_MAX_LEVELS 6 +#define DUMP_MAX_STR 64 + + +#define _CREATE_DUMP_SUBSTR(phrase) \ + dumpTmpLevel = 0; dumpSubStr[0] = '\0'; \ + sprintf(dumpTmpStr, "%s", #phrase); \ + p_DumpToken = strtok(dumpTmpStr, (dumpIsArr[0] ? "[" : ".")); \ + while (p_DumpToken != NULL) \ + { \ + strcat(dumpSubStr, p_DumpToken); \ + if (dumpIsArr[dumpTmpLevel]) \ + { \ + strcat(dumpSubStr, dumpIdxStr[dumpTmpLevel]); \ + p_DumpToken = strtok(NULL, "."); \ + } \ + if ((p_DumpToken = strtok(NULL, (dumpIsArr[++dumpTmpLevel] ? "[" : "."))) != 0) \ + strcat(dumpSubStr, "."); \ + }\ + + +/**************************************************************************//** + @Group gen_id General Drivers Utilities + + @Description External routines. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group dump_id Memory and Registers Dump Mechanism + + @Description Macros for dumping memory mapped structures. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Description Declaration of dump mechanism variables. + + This macro must be declared at the beginning of each routine + which uses the dump mechanism macros, before the routine's code + starts. +*//***************************************************************************/ +#define DECLARE_DUMP \ + char dumpIdxStr[DUMP_MAX_LEVELS + 1][6] = { "", }; \ + char dumpSubStr[DUMP_MAX_STR] = ""; \ + char dumpTmpStr[DUMP_MAX_STR] = ""; \ + char *p_DumpToken = NULL; \ + int dumpArrIdx = 0, dumpArrSize = 0, dumpVarSize = 0, dumpLevel = 0, dumpTmpLevel = 0; \ + uint8_t dumpIsArr[DUMP_MAX_LEVELS + 1] = { 0 }; \ + /* Prevent warnings if not all used */ \ + UNUSED(dumpIdxStr[0][0]); \ + UNUSED(dumpSubStr[0]); \ + UNUSED(dumpTmpStr[0]); \ + UNUSED(p_DumpToken); \ + UNUSED(dumpArrIdx); \ + UNUSED(dumpArrSize); \ + UNUSED(dumpVarSize); \ + UNUSED(dumpLevel); \ + UNUSED(dumpTmpLevel); \ + UNUSED(dumpIsArr[0]); + + +/**************************************************************************//** + @Description Prints a title for a subsequent dumped structure or memory. + + The inputs for this macro are the structure/memory title and + its base addresses. +*//***************************************************************************/ +#define DUMP_TITLE(addr, msg) \ + DUMP_Print("\r\n"); DUMP_Print msg; \ + DUMP_Print(" (0x%p)\r\n" \ + "---------------------------------------------------------\r\n", \ + (addr)) + +/**************************************************************************//** + @Description Prints a subtitle for a subsequent dumped sub-structure (optional). + + The inputs for this macro are the sub-structure subtitle. + A separating line with this subtitle will be printed. +*//***************************************************************************/ +#define DUMP_SUBTITLE(subtitle) \ + DUMP_Print("----------- "); DUMP_Print subtitle; DUMP_Print("\r\n") + + +/**************************************************************************//** + @Description Dumps a memory region in 4-bytes aligned format. + + The inputs for this macro are the base addresses and size + (in bytes) of the memory region. +*//***************************************************************************/ +#define DUMP_MEMORY(addr, size) \ + MemDisp((uint8_t *)(addr), (int)(size)) + + +/**************************************************************************//** + @Description Declares a dump loop, for dumping a sub-structure array. + + The inputs for this macro are: + - idx: an index variable, for indexing the sub-structure items + inside the loop. This variable must be declared separately + in the beginning of the routine. + - cnt: the number of times to repeat the loop. This number should + equal the number of items in the sub-structures array. + + Note, that the body of the loop must be written inside brackets. +*//***************************************************************************/ +#define DUMP_SUBSTRUCT_ARRAY(idx, cnt) \ + for (idx=0, dumpIsArr[dumpLevel++] = 1; \ + (idx < cnt) && sprintf(dumpIdxStr[dumpLevel-1], "[%d]", idx); \ + idx++, ((idx < cnt) || ((dumpIsArr[--dumpLevel] = 0) == 0))) + + +/**************************************************************************//** + @Description Dumps a structure's member variable. + + The input for this macro is the full reference for the member + variable, where the structure is referenced using a pointer. + + Note, that a members array must be dumped using DUMP_ARR macro, + rather than using this macro. + + If the member variable is part of a sub-structure hierarchy, + the full hierarchy (including array indexing) must be specified. + + Examples: p_Struct->member + p_Struct->sub.member + p_Struct->sub[i].member +*//***************************************************************************/ +#define DUMP_VAR(st, phrase) \ + do { \ + void *addr = (void *)&((st)->phrase); \ + _CREATE_DUMP_SUBSTR(phrase); \ + dumpVarSize = sizeof((st)->phrase); \ + switch (dumpVarSize) \ + { \ + case 1: DUMP_Print("0x%08X: 0x%02x%14s\t%s\r\n", \ + addr, GET_UINT8(*(uint8_t*)addr), "", dumpSubStr); break; \ + case 2: DUMP_Print("0x%08X: 0x%04x%12s\t%s\r\n", \ + addr, GET_UINT16(*(uint16_t*)addr), "", dumpSubStr); break; \ + case 4: DUMP_Print("0x%08X: 0x%08x%8s\t%s\r\n", \ + addr, GET_UINT32(*(uint32_t*)addr), "", dumpSubStr); break; \ + case 8: DUMP_Print("0x%08X: 0x%016llx\t%s\r\n", \ + addr, GET_UINT64(*(uint64_t*)addr), dumpSubStr); break; \ + default: DUMP_Print("Bad size %d (" #st "->" #phrase ")\r\n", dumpVarSize); \ + } \ + } while (0) + + +/**************************************************************************//** + @Description Dumps a structure's members array. + + The input for this macro is the full reference for the members + array, where the structure is referenced using a pointer. + + If the members array is part of a sub-structure hierarchy, + the full hierarchy (including array indexing) must be specified. + + Examples: p_Struct->array + p_Struct->sub.array + p_Struct->sub[i].array +*//***************************************************************************/ +#define DUMP_ARR(st, phrase) \ + do { \ + _CREATE_DUMP_SUBSTR(phrase); \ + dumpArrSize = ARRAY_SIZE((st)->phrase); \ + dumpVarSize = sizeof((st)->phrase[0]); \ + switch (dumpVarSize) \ + { \ + case 1: \ + for (dumpArrIdx=0; dumpArrIdx < dumpArrSize; dumpArrIdx++) { \ + DUMP_Print("0x%08X: 0x%02x%14s\t%s[%d]\r\n", \ + &((st)->phrase[dumpArrIdx]), GET_UINT8((st)->phrase[dumpArrIdx]), "", dumpSubStr, dumpArrIdx); \ + } break; \ + case 2: \ + for (dumpArrIdx=0; dumpArrIdx < dumpArrSize; dumpArrIdx++) { \ + DUMP_Print("0x%08X: 0x%04x%12s\t%s[%d]\r\n", \ + &((st)->phrase[dumpArrIdx]), GET_UINT16((st)->phrase[dumpArrIdx]), "", dumpSubStr, dumpArrIdx); \ + } break; \ + case 4: \ + for (dumpArrIdx=0; dumpArrIdx < dumpArrSize; dumpArrIdx++) { \ + DUMP_Print("0x%08X: 0x%08x%8s\t%s[%d]\r\n", \ + &((st)->phrase[dumpArrIdx]), GET_UINT32((st)->phrase[dumpArrIdx]), "", dumpSubStr, dumpArrIdx); \ + } break; \ + case 8: \ + for (dumpArrIdx=0; dumpArrIdx < dumpArrSize; dumpArrIdx++) { \ + DUMP_Print("0x%08X: 0x%016llx\t%s[%d]\r\n", \ + &((st)->phrase[dumpArrIdx]), GET_UINT64((st)->phrase[dumpArrIdx]), dumpSubStr, dumpArrIdx); \ + } break; \ + default: DUMP_Print("Bad size %d (" #st "->" #phrase "[0])\r\n", dumpVarSize); \ + } \ + } while (0) + + +#endif /* DEBUG_ERRORS > 0 */ + + +/** @} */ /* end of dump_id group */ +/** @} */ /* end of gen_id group */ + + +#endif /* __DEBUG_EXT_H */ + --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/endian_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/endian_ext.h @@ -0,0 +1,446 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + + @File endian_ext.h + + @Description Big/little endian swapping routines. +*//***************************************************************************/ + +#ifndef __ENDIAN_EXT_H +#define __ENDIAN_EXT_H + +#include "std_ext.h" + + +/**************************************************************************//** + @Group gen_id General Drivers Utilities + + @Description General usage API. This API is intended for usage by both the + internal modules and the user's application. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group endian_id Big/Little-Endian Conversion + + @Description Routines and macros for Big/Little-Endian conversion and + general byte swapping. + + All routines and macros are expecting unsigned values as + parameters, but will generate the correct result also for + signed values. Therefore, signed/unsigned casting is allowed. + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Collection Byte-Swap Macros + + Macros for swapping byte order. + + @Cautions The parameters of these macros are evaluated multiple times. + For calculated expressions or expressions that contain function + calls it is recommended to use the byte-swap routines. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Description Swaps the byte order of a given 16-bit value. + + @Param[in] val - The 16-bit value to swap. + + @Return The byte-swapped value.. + + @Cautions The given value is evaluated multiple times by this macro. + For calculated expressions or expressions that contain function + calls it is recommended to use the SwapUint16() routine. + + @hideinitializer +*//***************************************************************************/ +#define SWAP_UINT16(val) \ + ((uint16_t)((((val) & 0x00FF) << 8) | (((val) & 0xFF00) >> 8))) + +/**************************************************************************//** + @Description Swaps the byte order of a given 32-bit value. + + @Param[in] val - The 32-bit value to swap. + + @Return The byte-swapped value.. + + @Cautions The given value is evaluated multiple times by this macro. + For calculated expressions or expressions that contain function + calls it is recommended to use the SwapUint32() routine. + + @hideinitializer +*//***************************************************************************/ +#define SWAP_UINT32(val) \ + ((uint32_t)((((val) & 0x000000FF) << 24) | \ + (((val) & 0x0000FF00) << 8) | \ + (((val) & 0x00FF0000) >> 8) | \ + (((val) & 0xFF000000) >> 24))) + +/**************************************************************************//** + @Description Swaps the byte order of a given 64-bit value. + + @Param[in] val - The 64-bit value to swap. + + @Return The byte-swapped value.. + + @Cautions The given value is evaluated multiple times by this macro. + For calculated expressions or expressions that contain function + calls it is recommended to use the SwapUint64() routine. + + @hideinitializer +*//***************************************************************************/ +#define SWAP_UINT64(val) \ + ((uint64_t)((((val) & 0x00000000000000FFULL) << 56) | \ + (((val) & 0x000000000000FF00ULL) << 40) | \ + (((val) & 0x0000000000FF0000ULL) << 24) | \ + (((val) & 0x00000000FF000000ULL) << 8) | \ + (((val) & 0x000000FF00000000ULL) >> 8) | \ + (((val) & 0x0000FF0000000000ULL) >> 24) | \ + (((val) & 0x00FF000000000000ULL) >> 40) | \ + (((val) & 0xFF00000000000000ULL) >> 56))) + +/* @} */ + +/**************************************************************************//** + @Collection Byte-Swap Routines + + Routines for swapping the byte order of a given parameter and + returning the swapped value. + + These inline routines are safer than the byte-swap macros, + because they evaluate the parameter expression only once. + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Function SwapUint16 + + @Description Returns the byte-swapped value of a given 16-bit value. + + @Param[in] val - The 16-bit value. + + @Return The byte-swapped value of the parameter. +*//***************************************************************************/ +static __inline__ uint16_t SwapUint16(uint16_t val) +{ + return (uint16_t)(((val & 0x00FF) << 8) | + ((val & 0xFF00) >> 8)); +} + +/**************************************************************************//** + @Function SwapUint32 + + @Description Returns the byte-swapped value of a given 32-bit value. + + @Param[in] val - The 32-bit value. + + @Return The byte-swapped value of the parameter. +*//***************************************************************************/ +static __inline__ uint32_t SwapUint32(uint32_t val) +{ + return (uint32_t)(((val & 0x000000FF) << 24) | + ((val & 0x0000FF00) << 8) | + ((val & 0x00FF0000) >> 8) | + ((val & 0xFF000000) >> 24)); +} + +/**************************************************************************//** + @Function SwapUint64 + + @Description Returns the byte-swapped value of a given 64-bit value. + + @Param[in] val - The 64-bit value. + + @Return The byte-swapped value of the parameter. +*//***************************************************************************/ +static __inline__ uint64_t SwapUint64(uint64_t val) +{ + return (uint64_t)(((val & 0x00000000000000FFULL) << 56) | + ((val & 0x000000000000FF00ULL) << 40) | + ((val & 0x0000000000FF0000ULL) << 24) | + ((val & 0x00000000FF000000ULL) << 8) | + ((val & 0x000000FF00000000ULL) >> 8) | + ((val & 0x0000FF0000000000ULL) >> 24) | + ((val & 0x00FF000000000000ULL) >> 40) | + ((val & 0xFF00000000000000ULL) >> 56)); +} + +/* @} */ + +/**************************************************************************//** + @Collection In-place Byte-Swap-And-Set Routines + + Routines for swapping the byte order of a given variable and + setting the swapped value back to the same variable. + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Function SwapUint16P + + @Description Swaps the byte order of a given 16-bit variable. + + @Param[in] p_Val - Pointer to the 16-bit variable. + + @Return None. +*//***************************************************************************/ +static __inline__ void SwapUint16P(uint16_t *p_Val) +{ + *p_Val = SwapUint16(*p_Val); +} + +/**************************************************************************//** + @Function SwapUint32P + + @Description Swaps the byte order of a given 32-bit variable. + + @Param[in] p_Val - Pointer to the 32-bit variable. + + @Return None. +*//***************************************************************************/ +static __inline__ void SwapUint32P(uint32_t *p_Val) +{ + *p_Val = SwapUint32(*p_Val); +} + +/**************************************************************************//** + @Function SwapUint64P + + @Description Swaps the byte order of a given 64-bit variable. + + @Param[in] p_Val - Pointer to the 64-bit variable. + + @Return None. +*//***************************************************************************/ +static __inline__ void SwapUint64P(uint64_t *p_Val) +{ + *p_Val = SwapUint64(*p_Val); +} + +/* @} */ + + +/**************************************************************************//** + @Collection Little-Endian Conversion Macros + + These macros convert given parameters to or from Little-Endian + format. Use these macros when you want to read or write a specific + Little-Endian value in memory, without a-priori knowing the CPU + byte order. + + These macros use the byte-swap routines. For conversion of + constants in initialization structures, you may use the CONST + versions of these macros (see below), which are using the + byte-swap macros instead. + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Description Converts a given 16-bit value from CPU byte order to + Little-Endian byte order. + + @Param[in] val - The 16-bit value to convert. + + @Return The converted value. + + @hideinitializer +*//***************************************************************************/ +#define CPU_TO_LE16(val) SwapUint16(val) + +/**************************************************************************//** + @Description Converts a given 32-bit value from CPU byte order to + Little-Endian byte order. + + @Param[in] val - The 32-bit value to convert. + + @Return The converted value. + + @hideinitializer +*//***************************************************************************/ +#define CPU_TO_LE32(val) SwapUint32(val) + +/**************************************************************************//** + @Description Converts a given 64-bit value from CPU byte order to + Little-Endian byte order. + + @Param[in] val - The 64-bit value to convert. + + @Return The converted value. + + @hideinitializer +*//***************************************************************************/ +#define CPU_TO_LE64(val) SwapUint64(val) + + +/**************************************************************************//** + @Description Converts a given 16-bit value from Little-Endian byte order to + CPU byte order. + + @Param[in] val - The 16-bit value to convert. + + @Return The converted value. + + @hideinitializer +*//***************************************************************************/ +#define LE16_TO_CPU(val) CPU_TO_LE16(val) + +/**************************************************************************//** + @Description Converts a given 32-bit value from Little-Endian byte order to + CPU byte order. + + @Param[in] val - The 32-bit value to convert. + + @Return The converted value. + + @hideinitializer +*//***************************************************************************/ +#define LE32_TO_CPU(val) CPU_TO_LE32(val) + +/**************************************************************************//** + @Description Converts a given 64-bit value from Little-Endian byte order to + CPU byte order. + + @Param[in] val - The 64-bit value to convert. + + @Return The converted value. + + @hideinitializer +*//***************************************************************************/ +#define LE64_TO_CPU(val) CPU_TO_LE64(val) + +/* @} */ + +/**************************************************************************//** + @Collection Little-Endian Constant Conversion Macros + + These macros convert given constants to or from Little-Endian + format. Use these macros when you want to read or write a specific + Little-Endian constant in memory, without a-priori knowing the + CPU byte order. + + These macros use the byte-swap macros, therefore can be used for + conversion of constants in initialization structures. + + @Cautions The parameters of these macros are evaluated multiple times. + For non-constant expressions, use the non-CONST macro versions. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Description Converts a given 16-bit constant from CPU byte order to + Little-Endian byte order. + + @Param[in] val - The 16-bit value to convert. + + @Return The converted value. + + @hideinitializer +*//***************************************************************************/ +#define CONST_CPU_TO_LE16(val) SWAP_UINT16(val) + +/**************************************************************************//** + @Description Converts a given 32-bit constant from CPU byte order to + Little-Endian byte order. + + @Param[in] val - The 32-bit value to convert. + + @Return The converted value. + + @hideinitializer +*//***************************************************************************/ +#define CONST_CPU_TO_LE32(val) SWAP_UINT32(val) + +/**************************************************************************//** + @Description Converts a given 64-bit constant from CPU byte order to + Little-Endian byte order. + + @Param[in] val - The 64-bit value to convert. + + @Return The converted value. + + @hideinitializer +*//***************************************************************************/ +#define CONST_CPU_TO_LE64(val) SWAP_UINT64(val) + + +/**************************************************************************//** + @Description Converts a given 16-bit constant from Little-Endian byte order + to CPU byte order. + + @Param[in] val - The 16-bit value to convert. + + @Return The converted value. + + @hideinitializer +*//***************************************************************************/ +#define CONST_LE16_TO_CPU(val) CONST_CPU_TO_LE16(val) + +/**************************************************************************//** + @Description Converts a given 32-bit constant from Little-Endian byte order + to CPU byte order. + + @Param[in] val - The 32-bit value to convert. + + @Return The converted value. + + @hideinitializer +*//***************************************************************************/ +#define CONST_LE32_TO_CPU(val) CONST_CPU_TO_LE32(val) + +/**************************************************************************//** + @Description Converts a given 64-bit constant from Little-Endian byte order + to CPU byte order. + + @Param[in] val - The 64-bit value to convert. + + @Return The converted value. + + @hideinitializer +*//***************************************************************************/ +#define CONST_LE64_TO_CPU(val) CONST_CPU_TO_LE64(val) + +/* @} */ + + +/** @} */ /* end of endian_id group */ +/** @} */ /* end of gen_id group */ + + +#endif /* __ENDIAN_EXT_H */ + --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/enet_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/enet_ext.h @@ -0,0 +1,154 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + @File enet_ext.h + + @Description Ethernet generic definitions and enums. +*//***************************************************************************/ + +#ifndef __ENET_EXT_H +#define __ENET_EXT_H + + +#define ENET_NUM_OCTETS_PER_ADDRESS 6 /**< Number of octets (8-bit bytes) in an ethernet address */ +#define ENET_GROUP_ADDR 0x01 /**< Group address mask for ethernet addresses */ + + +/**************************************************************************//** + @Description Ethernet Address +*//***************************************************************************/ +typedef uint8_t t_EnetAddr[ENET_NUM_OCTETS_PER_ADDRESS]; + +/**************************************************************************//** + @Description Ethernet Address Type. +*//***************************************************************************/ +typedef enum e_EnetAddrType +{ + e_ENET_ADDR_TYPE_INDIVIDUAL, /**< Individual (unicast) address */ + e_ENET_ADDR_TYPE_GROUP, /**< Group (multicast) address */ + e_ENET_ADDR_TYPE_BROADCAST /**< Broadcast address */ +} e_EnetAddrType; + + +/**************************************************************************//** + @Description Ethernet MAC-PHY Interface +*//***************************************************************************/ +typedef enum e_EnetInterface +{ + e_ENET_IF_MII = 0x00010000, /**< MII interface */ + e_ENET_IF_RMII = 0x00020000, /**< RMII interface */ + e_ENET_IF_SMII = 0x00030000, /**< SMII interface */ + e_ENET_IF_GMII = 0x00040000, /**< GMII interface */ + e_ENET_IF_RGMII = 0x00050000, /**< RGMII interface */ + e_ENET_IF_TBI = 0x00060000, /**< TBI interface */ + e_ENET_IF_RTBI = 0x00070000, /**< RTBI interface */ + e_ENET_IF_SGMII = 0x00080000, /**< SGMII interface */ + e_ENET_IF_XGMII = 0x00090000, /**< XGMII interface */ + e_ENET_IF_QSGMII= 0x000a0000 /**< QSGMII interface */ +} e_EnetInterface; + +/**************************************************************************//** + @Description Ethernet Duplex Mode +*//***************************************************************************/ +typedef enum e_EnetDuplexMode +{ + e_ENET_HALF_DUPLEX, /**< Half-Duplex mode */ + e_ENET_FULL_DUPLEX /**< Full-Duplex mode */ +} e_EnetDuplexMode; + +/**************************************************************************//** + @Description Ethernet Speed (nominal data rate) +*//***************************************************************************/ +typedef enum e_EnetSpeed +{ + e_ENET_SPEED_10 = 10, /**< 10 Mbps */ + e_ENET_SPEED_100 = 100, /**< 100 Mbps */ + e_ENET_SPEED_1000 = 1000, /**< 1000 Mbps = 1 Gbps */ + e_ENET_SPEED_10000 = 10000 /**< 10000 Mbps = 10 Gbps */ +} e_EnetSpeed; + +/**************************************************************************//** + @Description Ethernet mode (combination of MAC-PHY interface and speed) +*//***************************************************************************/ +typedef enum e_EnetMode +{ + e_ENET_MODE_INVALID = 0, /**< Invalid Ethernet mode */ + e_ENET_MODE_MII_10 = (e_ENET_IF_MII | e_ENET_SPEED_10), /**< 10 Mbps MII */ + e_ENET_MODE_MII_100 = (e_ENET_IF_MII | e_ENET_SPEED_100), /**< 100 Mbps MII */ + e_ENET_MODE_RMII_10 = (e_ENET_IF_RMII | e_ENET_SPEED_10), /**< 10 Mbps RMII */ + e_ENET_MODE_RMII_100 = (e_ENET_IF_RMII | e_ENET_SPEED_100), /**< 100 Mbps RMII */ + e_ENET_MODE_SMII_10 = (e_ENET_IF_SMII | e_ENET_SPEED_10), /**< 10 Mbps SMII */ + e_ENET_MODE_SMII_100 = (e_ENET_IF_SMII | e_ENET_SPEED_100), /**< 100 Mbps SMII */ + e_ENET_MODE_GMII_1000 = (e_ENET_IF_GMII | e_ENET_SPEED_1000), /**< 1000 Mbps GMII */ + e_ENET_MODE_RGMII_10 = (e_ENET_IF_RGMII | e_ENET_SPEED_10), /**< 10 Mbps RGMII */ + e_ENET_MODE_RGMII_100 = (e_ENET_IF_RGMII | e_ENET_SPEED_100), /**< 100 Mbps RGMII */ + e_ENET_MODE_RGMII_1000 = (e_ENET_IF_RGMII | e_ENET_SPEED_1000), /**< 1000 Mbps RGMII */ + e_ENET_MODE_TBI_1000 = (e_ENET_IF_TBI | e_ENET_SPEED_1000), /**< 1000 Mbps TBI */ + e_ENET_MODE_RTBI_1000 = (e_ENET_IF_RTBI | e_ENET_SPEED_1000), /**< 1000 Mbps RTBI */ + e_ENET_MODE_SGMII_10 = (e_ENET_IF_SGMII | e_ENET_SPEED_10), /**< 10 Mbps SGMII */ + e_ENET_MODE_SGMII_100 = (e_ENET_IF_SGMII | e_ENET_SPEED_100), /**< 100 Mbps SGMII */ + e_ENET_MODE_SGMII_1000 = (e_ENET_IF_SGMII | e_ENET_SPEED_1000), /**< 1000 Mbps SGMII */ + e_ENET_MODE_XGMII_10000 = (e_ENET_IF_XGMII | e_ENET_SPEED_10000), /**< 10000 Mbps XGMII */ + e_ENET_MODE_QSGMII_1000 = (e_ENET_IF_QSGMII| e_ENET_SPEED_1000) /**< 1000 Mbps QSGMII */ +} e_EnetMode; + + +#define IS_ENET_MODE_VALID(mode) \ + (((mode) == e_ENET_MODE_MII_10 ) || \ + ((mode) == e_ENET_MODE_MII_100 ) || \ + ((mode) == e_ENET_MODE_RMII_10 ) || \ + ((mode) == e_ENET_MODE_RMII_100 ) || \ + ((mode) == e_ENET_MODE_SMII_10 ) || \ + ((mode) == e_ENET_MODE_SMII_100 ) || \ + ((mode) == e_ENET_MODE_GMII_1000 ) || \ + ((mode) == e_ENET_MODE_RGMII_10 ) || \ + ((mode) == e_ENET_MODE_RGMII_100 ) || \ + ((mode) == e_ENET_MODE_RGMII_1000 ) || \ + ((mode) == e_ENET_MODE_TBI_1000 ) || \ + ((mode) == e_ENET_MODE_RTBI_1000 ) || \ + ((mode) == e_ENET_MODE_SGMII_10 ) || \ + ((mode) == e_ENET_MODE_SGMII_100 ) || \ + ((mode) == e_ENET_MODE_SGMII_1000 ) || \ + ((mode) == e_ENET_MODE_XGMII_10000) || \ + ((mode) == e_ENET_MODE_QSGMII_1000)) + + +#define MAKE_ENET_MODE(_interface, _speed) (e_EnetMode)((_interface) | (_speed)) + +#define ENET_INTERFACE_FROM_MODE(mode) (e_EnetInterface)((mode) & 0xFFFF0000) +#define ENET_SPEED_FROM_MODE(mode) (e_EnetSpeed)((mode) & 0x0000FFFF) + + + +#endif /* __ENET_EXT_H */ + --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/error_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/error_ext.h @@ -0,0 +1,553 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + @File error_ext.h + + @Description Error definitions. +*//***************************************************************************/ + +#ifndef __ERROR_EXT_H +#define __ERROR_EXT_H + +#include "std_ext.h" +#include "xx_ext.h" +#include "core_ext.h" + +/**************************************************************************//** + @Group gen_id General Drivers Utilities + + @Description External routines. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group gen_error_id Errors, Events and Debug + + @Description External routines. + + @{ +*//***************************************************************************/ + +/****************************************************************************** +The scheme below provides the bits description for error codes: + + 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +| Reserved (should be zero) | Module ID | + + 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 +| Error Type | +******************************************************************************/ + +#define ERROR_CODE(_err) ((((uint32_t)_err) & 0x0000FFFF) | __ERR_MODULE__) + +#define GET_ERROR_TYPE(_errcode) ((_errcode) & 0x0000FFFF) + /**< Extract module code from error code (#t_Error) */ + +#define GET_ERROR_MODULE(_errcode) ((_errcode) & 0x00FF0000) + /**< Extract error type (#e_ErrorType) from + error code (#t_Error) */ + + +/**************************************************************************//** + @Description Error Type Enumeration +*//***************************************************************************/ +typedef enum e_ErrorType /* Comments / Associated Message Strings */ +{ /* ------------------------------------------------------------ */ + E_OK = 0 /* Never use "RETURN_ERROR" with E_OK; Use "return E_OK;" */ + + /* Invalid Function Calls */ + ,E_INVALID_STATE /**< The operation is not allowed in current module state. */ + /* String: none. */ + ,E_INVALID_OPERATION /**< The operation/command is invalid (unrecognized). */ + /* String: none. */ + ,E_NOT_SUPPORTED /**< The function is not supported or not implemented. */ + /* String: none. */ + ,E_NO_DEVICE /**< The associated device is not initialized. */ + /* String: none. */ + + /* Invalid Parameters */ + ,E_INVALID_HANDLE /**< Invalid handle of module or object. */ + /* String: none, unless the function takes in more than one + handle (in this case add the handle description) */ + ,E_INVALID_ID /**< Invalid module ID (usually enumeration or index). */ + /* String: none, unless the function takes in more than one + ID (in this case add the ID description) */ + ,E_NULL_POINTER /**< Unexpected NULL pointer. */ + /* String: pointer description. */ + ,E_INVALID_VALUE /**< Invalid value. */ + /* Use for non-enumeration parameters, and + only when other error types are not suitable. + String: parameter description + "(should be )", + e.g: "Maximum Rx buffer length (should be divisible by 8)", + "Channel number (should be even)". */ + ,E_INVALID_SELECTION /**< Invalid selection or mode. */ + /* Use for enumeration values, only when other error types + are not suitable. + String: parameter description. */ + ,E_INVALID_COMM_MODE /**< Invalid communication mode. */ + /* String: none, unless the function takes in more than one + communication mode indications (in this case add + parameter description). */ + ,E_INVALID_BYTE_ORDER /**< Invalid byte order. */ + /* String: none, unless the function takes in more than one + byte order indications (in this case add parameter + description). */ + ,E_INVALID_MEMORY_TYPE /**< Invalid memory type. */ + /* String: none, unless the function takes in more than one + memory types (in this case add memory description, + e.g: "Data memory", "Buffer descriptors memory"). */ + ,E_INVALID_INTR_QUEUE /**< Invalid interrupt queue. */ + /* String: none, unless the function takes in more than one + interrupt queues (in this case add queue description, + e.g: "Rx interrupt queue", "Tx interrupt queue"). */ + ,E_INVALID_PRIORITY /**< Invalid priority. */ + /* String: none, unless the function takes in more than one + priority (in this case add priority description). */ + ,E_INVALID_CLOCK /**< Invalid clock. */ + /* String: none, unless the function takes in more than one + clocks (in this case add clock description, + e.g: "Rx clock", "Tx clock"). */ + ,E_INVALID_RATE /**< Invalid rate value. */ + /* String: none, unless the function takes in more than one + rate values (in this case add rate description). */ + ,E_INVALID_ADDRESS /**< Invalid address. */ + /* String: description of the specific violation. */ + ,E_INVALID_BUS /**< Invalid bus type. */ + /* String: none, unless the function takes in more than one + bus parameters (in this case add bus description). */ + ,E_BUS_CONFLICT /**< Bus (or memory) type conflicts with another setting. */ + /* String: description of the conflicting buses/memories. */ + ,E_CONFLICT /**< Some setting conflicts with another setting. */ + /* String: description of the conflicting settings. */ + ,E_NOT_ALIGNED /**< Non-aligned address. */ + /* String: parameter description + "(should be %d-bytes aligned)", + e.g: "Rx data buffer (should be 32-bytes aligned)". */ + ,E_NOT_IN_RANGE /**< Parameter value is out of range. */ + /* Don't use this error for enumeration parameters. + String: parameter description + "(should be %d-%d)", + e.g: "Number of pad characters (should be 0-15)". */ + + /* Frame/Buffer Errors */ + ,E_INVALID_FRAME /**< Invalid frame object (NULL handle or missing buffers). */ + /* String: none. */ + ,E_EMPTY_FRAME /**< Frame object is empty (has no buffers). */ + /* String: none. */ + ,E_EMPTY_BUFFER /**< Buffer object is empty (no data, or zero data length). */ + /* String: none. */ + + /* Resource Errors */ + ,E_NO_MEMORY /**< External memory allocation failed. */ + /* String: description of item for which allocation failed. */ + ,E_NOT_FOUND /**< Requested resource or item was not found. */ + /* Use only when the resource/item is uniquely identified. + String: none, unless the operation is not the main goal + of the function (in this case add item description). */ + ,E_NOT_AVAILABLE /**< Resource is unavailable. */ + /* String: none, unless the operation is not the main goal + of the function (in this case add resource description). */ + ,E_ALREADY_EXISTS /**< Requested resource or item already exists. */ + /* Use when resource duplication or sharing are not allowed. + String: none, unless the operation is not the main goal + of the function (in this case add item description). */ + ,E_FULL /**< Resource is full. */ + /* String: none, unless the operation is not the main goal + of the function (in this case add resource description). */ + ,E_EMPTY /**< Resource is empty. */ + /* String: none, unless the operation is not the main goal + of the function (in this case add resource description). */ + ,E_BUSY /**< Resource or module is busy. */ + /* String: none, unless the operation is not the main goal + of the function (in this case add resource description). */ + ,E_ALREADY_FREE /**< Specified resource or item is already free or deleted. */ + /* String: none, unless the operation is not the main goal + of the function (in this case add item description). */ + + /* Read/Write Access Errors */ + ,E_READ_FAILED /**< Read access failed on memory/device. */ + /* String: none, or device name. */ + ,E_WRITE_FAILED /**< Write access failed on memory/device. */ + /* String: none, or device name. */ + + /* Send/Receive Failures */ + ,E_SEND_FAILED /**< Send operation failed on device. */ + /* String: none, or device name. */ + ,E_RECEIVE_FAILED /**< Receive operation failed on device. */ + /* String: none, or device name. */ + + /* Operation time-out */ + ,E_TIMEOUT /**< The operation timed out. */ + /* String: none. */ + + ,E_DUMMY_LAST /* NEVER USED */ + +} e_ErrorType; + + +/**************************************************************************//** + @Description Event Type Enumeration +*//***************************************************************************/ +typedef enum e_Event /* Comments / Associated Flags and Message Strings */ +{ /* ------------------------------------------------------------ */ + EV_NO_EVENT = 0 /**< No event; Never used. */ + + ,EV_RX_DISCARD /**< Received packet discarded (by the driver, and only for + complete packets); + Flags: error flags in case of error, zero otherwise. */ + /* String: reason for discard, e.g: "Error in frame", + "Disordered frame", "Incomplete frame", "No frame object". */ + ,EV_RX_ERROR /**< Receive error (by hardware/firmware); + Flags: usually status flags from the buffer descriptor. */ + /* String: none. */ + ,EV_TX_ERROR /**< Transmit error (by hardware/firmware); + Flags: usually status flags from the buffer descriptor. */ + /* String: none. */ + ,EV_NO_BUFFERS /**< System ran out of buffer objects; + Flags: zero. */ + /* String: none. */ + ,EV_NO_MB_FRAMES /**< System ran out of multi-buffer frame objects; + Flags: zero. */ + /* String: none. */ + ,EV_NO_SB_FRAMES /**< System ran out of single-buffer frame objects; + Flags: zero. */ + /* String: none. */ + ,EV_TX_QUEUE_FULL /**< Transmit queue is full; + Flags: zero. */ + /* String: none. */ + ,EV_RX_QUEUE_FULL /**< Receive queue is full; + Flags: zero. */ + /* String: none. */ + ,EV_INTR_QUEUE_FULL /**< Interrupt queue overflow; + Flags: zero. */ + /* String: none. */ + ,EV_NO_DATA_BUFFER /**< Data buffer allocation (from higher layer) failed; + Flags: zero. */ + /* String: none. */ + ,EV_OBJ_POOL_EMPTY /**< Objects pool is empty; + Flags: zero. */ + /* String: object description (name). */ + ,EV_BUS_ERROR /**< Illegal access on bus; + Flags: the address (if available) or bus identifier */ + /* String: bus/address/module description. */ + ,EV_PTP_TXTS_QUEUE_FULL /**< PTP Tx timestamps queue is full; + Flags: zero. */ + /* String: none. */ + ,EV_PTP_RXTS_QUEUE_FULL /**< PTP Rx timestamps queue is full; + Flags: zero. */ + /* String: none. */ + ,EV_DUMMY_LAST + +} e_Event; + + +/**************************************************************************//** + @Collection Debug Levels for Errors and Events + + The level description refers to errors only. + For events, classification is done by the user. + + The TRACE, INFO and WARNING levels are allowed only when using + the DBG macro, and are not allowed when using the error macros + (RETURN_ERROR or REPORT_ERROR). + @{ +*//***************************************************************************/ +#define REPORT_LEVEL_CRITICAL 1 /**< Crasher: Incorrect flow, NULL pointers/handles. */ +#define REPORT_LEVEL_MAJOR 2 /**< Cannot proceed: Invalid operation, parameters or + configuration. */ +#define REPORT_LEVEL_MINOR 3 /**< Recoverable problem: a repeating call with the same + parameters may be successful. */ +#define REPORT_LEVEL_WARNING 4 /**< Something is not exactly right, yet it is not an error. */ +#define REPORT_LEVEL_INFO 5 /**< Messages which may be of interest to user/programmer. */ +#define REPORT_LEVEL_TRACE 6 /**< Program flow messages. */ + +#define EVENT_DISABLED 0xFF /**< Disabled event (not reported at all) */ + +/* @} */ + + + +#define NO_MSG ("") + +#ifndef DEBUG_GLOBAL_LEVEL +#define DEBUG_GLOBAL_LEVEL REPORT_LEVEL_WARNING +#endif /* DEBUG_GLOBAL_LEVEL */ + +#ifndef ERROR_GLOBAL_LEVEL +#define ERROR_GLOBAL_LEVEL DEBUG_GLOBAL_LEVEL +#endif /* ERROR_GLOBAL_LEVEL */ + +#ifndef EVENT_GLOBAL_LEVEL +#define EVENT_GLOBAL_LEVEL REPORT_LEVEL_MINOR +#endif /* EVENT_GLOBAL_LEVEL */ + +#ifdef EVENT_LOCAL_LEVEL +#define EVENT_DYNAMIC_LEVEL EVENT_LOCAL_LEVEL +#else +#define EVENT_DYNAMIC_LEVEL EVENT_GLOBAL_LEVEL +#endif /* EVENT_LOCAL_LEVEL */ + + +#ifndef DEBUG_DYNAMIC_LEVEL +#define DEBUG_USING_STATIC_LEVEL + +#ifdef DEBUG_STATIC_LEVEL +#define DEBUG_DYNAMIC_LEVEL DEBUG_STATIC_LEVEL +#else +#define DEBUG_DYNAMIC_LEVEL DEBUG_GLOBAL_LEVEL +#endif /* DEBUG_STATIC_LEVEL */ + +#else /* DEBUG_DYNAMIC_LEVEL */ +#ifdef DEBUG_STATIC_LEVEL +#error "Please use either DEBUG_STATIC_LEVEL or DEBUG_DYNAMIC_LEVEL (not both)" +#else +int DEBUG_DYNAMIC_LEVEL = DEBUG_GLOBAL_LEVEL; +#endif /* DEBUG_STATIC_LEVEL */ +#endif /* !DEBUG_DYNAMIC_LEVEL */ + + +#ifndef ERROR_DYNAMIC_LEVEL + +#ifdef ERROR_STATIC_LEVEL +#define ERROR_DYNAMIC_LEVEL ERROR_STATIC_LEVEL +#else +#define ERROR_DYNAMIC_LEVEL ERROR_GLOBAL_LEVEL +#endif /* ERROR_STATIC_LEVEL */ + +#else /* ERROR_DYNAMIC_LEVEL */ +#ifdef ERROR_STATIC_LEVEL +#error "Please use either ERROR_STATIC_LEVEL or ERROR_DYNAMIC_LEVEL (not both)" +#else +int ERROR_DYNAMIC_LEVEL = ERROR_GLOBAL_LEVEL; +#endif /* ERROR_STATIC_LEVEL */ +#endif /* !ERROR_DYNAMIC_LEVEL */ + +#define PRINT_FORMAT "[CPU%02d, %s:%d %s]" +#define PRINT_FMT_PARAMS CORE_GetId(), __FILE__, __LINE__, __FUNCTION__ + +#if (!(defined(DEBUG_ERRORS)) || (DEBUG_ERRORS == 0)) +/* No debug/error/event messages at all */ +#define DBG(_level, _vmsg) + +#define REPORT_ERROR(_level, _err, _vmsg) + +#define RETURN_ERROR(_level, _err, _vmsg) \ + return ERROR_CODE(_err) + +#if (REPORT_EVENTS > 0) + +#define REPORT_EVENT(_ev, _appId, _flg, _vmsg) \ + do { \ + if (_ev##_LEVEL <= EVENT_DYNAMIC_LEVEL) { \ + XX_EventById((uint32_t)(_ev), (t_Handle)(_appId), (uint16_t)(_flg), NO_MSG); \ + } \ + } while (0) + +#else + +#define REPORT_EVENT(_ev, _appId, _flg, _vmsg) + +#endif /* (REPORT_EVENTS > 0) */ + + +#else /* DEBUG_ERRORS > 0 */ + +extern const char *dbgLevelStrings[]; +extern const char *errTypeStrings[]; +extern const char *moduleStrings[]; +#if (REPORT_EVENTS > 0) +extern const char *eventStrings[]; +#endif /* (REPORT_EVENTS > 0) */ + + +#if ((defined(DEBUG_USING_STATIC_LEVEL)) && (DEBUG_DYNAMIC_LEVEL < REPORT_LEVEL_WARNING)) +/* No need for DBG macro - debug level is higher anyway */ +#define DBG(_level, _vmsg) +#else +#define DBG(_level, _vmsg) \ + do { \ + if (REPORT_LEVEL_##_level <= DEBUG_DYNAMIC_LEVEL) { \ + XX_Print("> %s (%s) " PRINT_FORMAT ": ", \ + dbgLevelStrings[REPORT_LEVEL_##_level - 1], \ + moduleStrings[__ERR_MODULE__ >> 16], \ + PRINT_FMT_PARAMS); \ + XX_Print _vmsg; \ + XX_Print("\r\n"); \ + } \ + } while (0) +#endif /* (defined(DEBUG_USING_STATIC_LEVEL) && (DEBUG_DYNAMIC_LEVEL < WARNING)) */ + + +#define REPORT_ERROR(_level, _err, _vmsg) \ + do { \ + if (REPORT_LEVEL_##_level <= ERROR_DYNAMIC_LEVEL) { \ + XX_Print("! %s %s Error " PRINT_FORMAT ": %s; ", \ + dbgLevelStrings[REPORT_LEVEL_##_level - 1], \ + moduleStrings[__ERR_MODULE__ >> 16], \ + PRINT_FMT_PARAMS, \ + errTypeStrings[(GET_ERROR_TYPE(_err) - E_OK - 1)]); \ + XX_Print _vmsg; \ + XX_Print("\r\n"); \ + } \ + } while (0) + + +#define RETURN_ERROR(_level, _err, _vmsg) \ + do { \ + REPORT_ERROR(_level, (_err), _vmsg); \ + return ERROR_CODE(_err); \ + } while (0) + + +#if (REPORT_EVENTS > 0) + +#define REPORT_EVENT(_ev, _appId, _flg, _vmsg) \ + do { \ + if (_ev##_LEVEL <= EVENT_DYNAMIC_LEVEL) { \ + XX_Print("~ %s %s Event " PRINT_FORMAT ": %s (flags: 0x%04x); ", \ + dbgLevelStrings[_ev##_LEVEL - 1], \ + moduleStrings[__ERR_MODULE__ >> 16], \ + PRINT_FMT_PARAMS, \ + eventStrings[((_ev) - EV_NO_EVENT - 1)], \ + (uint16_t)(_flg)); \ + XX_Print _vmsg; \ + XX_Print("\r\n"); \ + XX_EventById((uint32_t)(_ev), (t_Handle)(_appId), (uint16_t)(_flg), NO_MSG); \ + } \ + } while (0) + +#else /* not REPORT_EVENTS */ + +#define REPORT_EVENT(_ev, _appId, _flg, _vmsg) + +#endif /* (REPORT_EVENTS > 0) */ + +#endif /* (DEBUG_ERRORS > 0) */ + + +/**************************************************************************//** + @Function ASSERT_COND + + @Description Assertion macro. + + @Param[in] _cond - The condition being checked, in positive form; + Failure of the condition triggers the assert. +*//***************************************************************************/ +#ifdef DISABLE_ASSERTIONS +#define ASSERT_COND(_cond) +#else +#define ASSERT_COND(_cond) \ + do { \ + if (!(_cond)) { \ + XX_Print("*** ASSERT_COND failed " PRINT_FORMAT "\r\n", \ + PRINT_FMT_PARAMS); \ + XX_Exit(1); \ + } \ + } while (0) +#endif /* DISABLE_ASSERTIONS */ + + +#ifdef DISABLE_INIT_PARAMETERS_CHECK + +#define CHECK_INIT_PARAMETERS(handle, f_check) +#define CHECK_INIT_PARAMETERS_RETURN_VALUE(handle, f_check, retval) + +#else + +#define CHECK_INIT_PARAMETERS(handle, f_check) \ + do { \ + t_Error err = f_check(handle); \ + if (err != E_OK) { \ + RETURN_ERROR(MAJOR, err, NO_MSG); \ + } \ + } while (0) + +#define CHECK_INIT_PARAMETERS_RETURN_VALUE(handle, f_check, retval) \ + do { \ + t_Error err = f_check(handle); \ + if (err != E_OK) { \ + REPORT_ERROR(MAJOR, err, NO_MSG); \ + return (retval); \ + } \ + } while (0) + +#endif /* DISABLE_INIT_PARAMETERS_CHECK */ + +#ifdef DISABLE_SANITY_CHECKS + +#define SANITY_CHECK_RETURN_ERROR(_cond, _err) +#define SANITY_CHECK_RETURN_VALUE(_cond, _err, retval) +#define SANITY_CHECK_RETURN(_cond, _err) +#define SANITY_CHECK_EXIT(_cond, _err) + +#else /* DISABLE_SANITY_CHECKS */ + +#define SANITY_CHECK_RETURN_ERROR(_cond, _err) \ + do { \ + if (!(_cond)) { \ + RETURN_ERROR(CRITICAL, (_err), NO_MSG); \ + } \ + } while (0) + +#define SANITY_CHECK_RETURN_VALUE(_cond, _err, retval) \ + do { \ + if (!(_cond)) { \ + REPORT_ERROR(CRITICAL, (_err), NO_MSG); \ + return (retval); \ + } \ + } while (0) + +#define SANITY_CHECK_RETURN(_cond, _err) \ + do { \ + if (!(_cond)) { \ + REPORT_ERROR(CRITICAL, (_err), NO_MSG); \ + return; \ + } \ + } while (0) + +#define SANITY_CHECK_EXIT(_cond, _err) \ + do { \ + if (!(_cond)) { \ + REPORT_ERROR(CRITICAL, (_err), NO_MSG); \ + XX_Exit(1); \ + } \ + } while (0) + +#endif /* DISABLE_SANITY_CHECKS */ + +/** @} */ /* end of Debug/error Utils group */ + +/** @} */ /* end of General Utils group */ + +#endif /* __ERROR_EXT_H */ + + --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/etc/list_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/etc/list_ext.h @@ -0,0 +1,357 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + + @File list_ext.h + + @Description External prototypes for list.c +*//***************************************************************************/ + +#ifndef __LIST_EXT_H +#define __LIST_EXT_H + + +#include "std_ext.h" + + +/**************************************************************************//** + @Group etc_id Utility Library Application Programming Interface + + @Description External routines. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group list_id List + + @Description List module functions,definitions and enums. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Description List structure. +*//***************************************************************************/ +typedef struct List +{ + struct List *p_Next; /**< A pointer to the next list object */ + struct List *p_Prev; /**< A pointer to the previous list object */ +} t_List; + + +/**************************************************************************//** + @Function LIST_FIRST/LIST_LAST/LIST_NEXT/LIST_PREV + + @Description Macro to get first/last/next/previous entry in a list. + + @Param[in] p_List - A pointer to a list. +*//***************************************************************************/ +#define LIST_FIRST(p_List) (p_List)->p_Next +#define LIST_LAST(p_List) (p_List)->p_Prev +#define LIST_NEXT LIST_FIRST +#define LIST_PREV LIST_LAST + + +/**************************************************************************//** + @Function LIST_INIT + + @Description Macro for initialization of a list struct. + + @Param[in] lst - The t_List object to initialize. +*//***************************************************************************/ +#define LIST_INIT(lst) {&(lst), &(lst)} + + +/**************************************************************************//** + @Function LIST + + @Description Macro to declare of a list. + + @Param[in] listName - The list object name. +*//***************************************************************************/ +#define LIST(listName) t_List listName = LIST_INIT(listName) + + +/**************************************************************************//** + @Function INIT_LIST + + @Description Macro to initialize a list pointer. + + @Param[in] p_List - The list pointer. +*//***************************************************************************/ +#define INIT_LIST(p_List) LIST_FIRST(p_List) = LIST_LAST(p_List) = (p_List) + + +/**************************************************************************//** + @Function LIST_OBJECT + + @Description Macro to get the struct (object) for this entry. + + @Param[in] type - The type of the struct (object) this list is embedded in. + @Param[in] member - The name of the t_List object within the struct. + + @Return The structure pointer for this entry. +*//***************************************************************************/ +#define MEMBER_OFFSET(type, member) (PTR_TO_UINT(&((type *)0)->member)) +#define LIST_OBJECT(p_List, type, member) \ + ((type *)((char *)(p_List)-MEMBER_OFFSET(type, member))) + + +/**************************************************************************//** + @Function LIST_FOR_EACH + + @Description Macro to iterate over a list. + + @Param[in] p_Pos - A pointer to a list to use as a loop counter. + @Param[in] p_Head - A pointer to the head for your list pointer. + + @Cautions You can't delete items with this routine. + For deletion use LIST_FOR_EACH_SAFE(). +*//***************************************************************************/ +#define LIST_FOR_EACH(p_Pos, p_Head) \ + for (p_Pos = LIST_FIRST(p_Head); p_Pos != (p_Head); p_Pos = LIST_NEXT(p_Pos)) + + +/**************************************************************************//** + @Function LIST_FOR_EACH_SAFE + + @Description Macro to iterate over a list safe against removal of list entry. + + @Param[in] p_Pos - A pointer to a list to use as a loop counter. + @Param[in] p_Tmp - Another pointer to a list to use as temporary storage. + @Param[in] p_Head - A pointer to the head for your list pointer. +*//***************************************************************************/ +#define LIST_FOR_EACH_SAFE(p_Pos, p_Tmp, p_Head) \ + for (p_Pos = LIST_FIRST(p_Head), p_Tmp = LIST_FIRST(p_Pos); \ + p_Pos != (p_Head); \ + p_Pos = p_Tmp, p_Tmp = LIST_NEXT(p_Pos)) + + +/**************************************************************************//** + @Function LIST_FOR_EACH_OBJECT_SAFE + + @Description Macro to iterate over list of given type safely. + + @Param[in] p_Pos - A pointer to a list to use as a loop counter. + @Param[in] p_Tmp - Another pointer to a list to use as temporary storage. + @Param[in] type - The type of the struct this is embedded in. + @Param[in] p_Head - A pointer to the head for your list pointer. + @Param[in] member - The name of the list_struct within the struct. + + @Cautions You can't delete items with this routine. + For deletion use LIST_FOR_EACH_SAFE(). +*//***************************************************************************/ +#define LIST_FOR_EACH_OBJECT_SAFE(p_Pos, p_Tmp, p_Head, type, member) \ + for (p_Pos = LIST_OBJECT(LIST_FIRST(p_Head), type, member), \ + p_Tmp = LIST_OBJECT(LIST_FIRST(&p_Pos->member), type, member); \ + &p_Pos->member != (p_Head); \ + p_Pos = p_Tmp, \ + p_Tmp = LIST_OBJECT(LIST_FIRST(&p_Pos->member), type, member)) + +/**************************************************************************//** + @Function LIST_FOR_EACH_OBJECT + + @Description Macro to iterate over list of given type. + + @Param[in] p_Pos - A pointer to a list to use as a loop counter. + @Param[in] type - The type of the struct this is embedded in. + @Param[in] p_Head - A pointer to the head for your list pointer. + @Param[in] member - The name of the list_struct within the struct. + + @Cautions You can't delete items with this routine. + For deletion use LIST_FOR_EACH_SAFE(). +*//***************************************************************************/ +#define LIST_FOR_EACH_OBJECT(p_Pos, type, p_Head, member) \ + for (p_Pos = LIST_OBJECT(LIST_FIRST(p_Head), type, member); \ + &p_Pos->member != (p_Head); \ + p_Pos = LIST_OBJECT(LIST_FIRST(&(p_Pos->member)), type, member)) + + +/**************************************************************************//** + @Function LIST_Add + + @Description Add a new entry to a list. + + Insert a new entry after the specified head. + This is good for implementing stacks. + + @Param[in] p_New - A pointer to a new list entry to be added. + @Param[in] p_Head - A pointer to a list head to add it after. + + @Return none. +*//***************************************************************************/ +static __inline__ void LIST_Add(t_List *p_New, t_List *p_Head) +{ + LIST_PREV(LIST_NEXT(p_Head)) = p_New; + LIST_NEXT(p_New) = LIST_NEXT(p_Head); + LIST_PREV(p_New) = p_Head; + LIST_NEXT(p_Head) = p_New; +} + + +/**************************************************************************//** + @Function LIST_AddToTail + + @Description Add a new entry to a list. + + Insert a new entry before the specified head. + This is useful for implementing queues. + + @Param[in] p_New - A pointer to a new list entry to be added. + @Param[in] p_Head - A pointer to a list head to add it after. + + @Return none. +*//***************************************************************************/ +static __inline__ void LIST_AddToTail(t_List *p_New, t_List *p_Head) +{ + LIST_NEXT(LIST_PREV(p_Head)) = p_New; + LIST_PREV(p_New) = LIST_PREV(p_Head); + LIST_NEXT(p_New) = p_Head; + LIST_PREV(p_Head) = p_New; +} + + +/**************************************************************************//** + @Function LIST_Del + + @Description Deletes entry from a list. + + @Param[in] p_Entry - A pointer to the element to delete from the list. + + @Return none. + + @Cautions LIST_IsEmpty() on entry does not return true after this, + the entry is in an undefined state. +*//***************************************************************************/ +static __inline__ void LIST_Del(t_List *p_Entry) +{ + LIST_PREV(LIST_NEXT(p_Entry)) = LIST_PREV(p_Entry); + LIST_NEXT(LIST_PREV(p_Entry)) = LIST_NEXT(p_Entry); +} + + +/**************************************************************************//** + @Function LIST_DelAndInit + + @Description Deletes entry from list and reinitialize it. + + @Param[in] p_Entry - A pointer to the element to delete from the list. + + @Return none. +*//***************************************************************************/ +static __inline__ void LIST_DelAndInit(t_List *p_Entry) +{ + LIST_Del(p_Entry); + INIT_LIST(p_Entry); +} + + +/**************************************************************************//** + @Function LIST_Move + + @Description Delete from one list and add as another's head. + + @Param[in] p_Entry - A pointer to the list entry to move. + @Param[in] p_Head - A pointer to the list head that will precede our entry. + + @Return none. +*//***************************************************************************/ +static __inline__ void LIST_Move(t_List *p_Entry, t_List *p_Head) +{ + LIST_Del(p_Entry); + LIST_Add(p_Entry, p_Head); +} + + +/**************************************************************************//** + @Function LIST_MoveToTail + + @Description Delete from one list and add as another's tail. + + @Param[in] p_Entry - A pointer to the entry to move. + @Param[in] p_Head - A pointer to the list head that will follow our entry. + + @Return none. +*//***************************************************************************/ +static __inline__ void LIST_MoveToTail(t_List *p_Entry, t_List *p_Head) +{ + LIST_Del(p_Entry); + LIST_AddToTail(p_Entry, p_Head); +} + + +/**************************************************************************//** + @Function LIST_IsEmpty + + @Description Tests whether a list is empty. + + @Param[in] p_List - A pointer to the list to test. + + @Return 1 if the list is empty, 0 otherwise. +*//***************************************************************************/ +static __inline__ int LIST_IsEmpty(t_List *p_List) +{ + return (LIST_FIRST(p_List) == p_List); +} + + +/**************************************************************************//** + @Function LIST_Append + + @Description Join two lists. + + @Param[in] p_NewList - A pointer to the new list to add. + @Param[in] p_Head - A pointer to the place to add it in the first list. + + @Return none. +*//***************************************************************************/ +void LIST_Append(t_List *p_NewList, t_List *p_Head); + + +/**************************************************************************//** + @Function LIST_NumOfObjs + + @Description Counts number of objects in the list + + @Param[in] p_List - A pointer to the list which objects are to be counted. + + @Return Number of objects in the list. +*//***************************************************************************/ +int LIST_NumOfObjs(t_List *p_List); + +/** @} */ /* end of list_id group */ +/** @} */ /* end of etc_id group */ + + +#endif /* __LIST_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/etc/mem_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/etc/mem_ext.h @@ -0,0 +1,317 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + + @File mem_ext.h + + @Description External prototypes for the memory manager object +*//***************************************************************************/ + +#ifndef __MEM_EXT_H +#define __MEM_EXT_H + +#include "std_ext.h" +#include "part_ext.h" + + +/**************************************************************************//** + @Group etc_id Utility Library Application Programming Interface + + @Description External routines. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group mem_id Slab Memory Manager + + @Description Slab Memory Manager module functions, definitions and enums. + + @{ +*//***************************************************************************/ + +/* Each block is of the following structure: + * + * + * +-----------+----------+---------------------------+-----------+-----------+ + * | Alignment | Prefix | Data | Postfix | Alignment | + * | field | field | field | field | Padding | + * | | | | | | + * +-----------+----------+---------------------------+-----------+-----------+ + * and at the beginning of all bytes, an additional optional padding might reside + * to ensure that the first blocks data field is aligned as requested. + */ + + +#define MEM_MAX_NAME_LENGTH 8 + +/**************************************************************************//* + @Description Memory Segment structure +*//***************************************************************************/ + +typedef struct +{ + char name[MEM_MAX_NAME_LENGTH]; + /* The segment's name */ + uint8_t **p_Bases; /* Base addresses of the segments */ + uint8_t **p_BlocksStack; /* Array of pointers to blocks */ + t_Handle h_Spinlock; + uint16_t dataSize; /* Size of each data block */ + uint16_t prefixSize; /* How many bytes to reserve before the data */ + uint16_t postfixSize; /* How many bytes to reserve after the data */ + uint16_t alignment; /* Requested alignment for the data field */ + int allocOwner; /* Memory allocation owner */ + uint32_t getFailures; /* Number of times get failed */ + uint32_t num; /* Number of blocks in segment */ + uint32_t current; /* Current block */ + bool consecutiveMem; /* Allocate consecutive data blocks memory */ +#ifdef DEBUG_MEM_LEAKS + void *p_MemDbg; /* MEM debug database (MEM leaks detection) */ + uint32_t blockOffset; + uint32_t blockSize; +#endif /* DEBUG_MEM_LEAKS */ +} t_MemorySegment; + + + +/**************************************************************************//** + @Function MEM_Init + + @Description Create a new memory segment. + + @Param[in] name - Name of memory partition. + @Param[in] p_Handle - Handle to new segment is returned through here. + @Param[in] num - Number of blocks in new segment. + @Param[in] dataSize - Size of blocks in segment. + @Param[in] prefixSize - How many bytes to allocate before the data. + @Param[in] postfixSize - How many bytes to allocate after the data. + @Param[in] alignment - Requested alignment for data field (in bytes). + + @Return E_OK - success, E_NO_MEMORY - out of memory. +*//***************************************************************************/ +t_Error MEM_Init(char name[], + t_Handle *p_Handle, + uint32_t num, + uint16_t dataSize, + uint16_t prefixSize, + uint16_t postfixSize, + uint16_t alignment); + +/**************************************************************************//** + @Function MEM_InitSmart + + @Description Create a new memory segment. + + @Param[in] name - Name of memory partition. + @Param[in] p_Handle - Handle to new segment is returned through here. + @Param[in] num - Number of blocks in new segment. + @Param[in] dataSize - Size of blocks in segment. + @Param[in] prefixSize - How many bytes to allocate before the data. + @Param[in] postfixSize - How many bytes to allocate after the data. + @Param[in] alignment - Requested alignment for data field (in bytes). + @Param[in] memPartitionId - Memory partition ID for allocation. + @Param[in] consecutiveMem - Whether to allocate the memory blocks + continuously or not. + + @Return E_OK - success, E_NO_MEMORY - out of memory. +*//***************************************************************************/ +t_Error MEM_InitSmart(char name[], + t_Handle *p_Handle, + uint32_t num, + uint16_t dataSize, + uint16_t prefixSize, + uint16_t postfixSize, + uint16_t alignment, + uint8_t memPartitionId, + bool consecutiveMem); + +/**************************************************************************//** + @Function MEM_InitByAddress + + @Description Create a new memory segment with a specified base address. + + @Param[in] name - Name of memory partition. + @Param[in] p_Handle - Handle to new segment is returned through here. + @Param[in] num - Number of blocks in new segment. + @Param[in] dataSize - Size of blocks in segment. + @Param[in] prefixSize - How many bytes to allocate before the data. + @Param[in] postfixSize - How many bytes to allocate after the data. + @Param[in] alignment - Requested alignment for data field (in bytes). + @Param[in] address - The required base address. + + @Return E_OK - success, E_NO_MEMORY - out of memory. + *//***************************************************************************/ +t_Error MEM_InitByAddress(char name[], + t_Handle *p_Handle, + uint32_t num, + uint16_t dataSize, + uint16_t prefixSize, + uint16_t postfixSize, + uint16_t alignment, + uint8_t *address); + +/**************************************************************************//** + @Function MEM_Free + + @Description Free a specific memory segment. + + @Param[in] h_Mem - Handle to memory segment. + + @Return None. +*//***************************************************************************/ +void MEM_Free(t_Handle h_Mem); + +/**************************************************************************//** + @Function MEM_Get + + @Description Get a block of memory from a segment. + + @Param[in] h_Mem - Handle to memory segment. + + @Return Pointer to new memory block on success,0 otherwise. +*//***************************************************************************/ +void * MEM_Get(t_Handle h_Mem); + +/**************************************************************************//** + @Function MEM_GetN + + @Description Get up to N blocks of memory from a segment. + + The blocks are assumed to be of a fixed size (one size per segment). + + @Param[in] h_Mem - Handle to memory segment. + @Param[in] num - Number of blocks to allocate. + @Param[out] array - Array of at least num pointers to which the addresses + of the allocated blocks are written. + + @Return The number of blocks actually allocated. + + @Cautions Interrupts are disabled for all of the allocation loop. + Although this loop is very short for each block (several machine + instructions), you should not allocate a very large number + of blocks via this routine. +*//***************************************************************************/ +uint16_t MEM_GetN(t_Handle h_Mem, uint32_t num, void *array[]); + +/**************************************************************************//** + @Function MEM_Put + + @Description Put a block of memory back to a segment. + + @Param[in] h_Mem - Handle to memory segment. + @Param[in] p_Block - The block to return. + + @Return Pointer to new memory block on success,0 otherwise. +*//***************************************************************************/ +t_Error MEM_Put(t_Handle h_Mem, void *p_Block); + +/**************************************************************************//** + @Function MEM_ComputePartitionSize + + @Description calculate a tight upper boundary of the size of a partition with + given attributes. + + The returned value is suitable if one wants to use MEM_InitByAddress(). + + @Param[in] num - The number of blocks in the segment. + @Param[in] dataSize - Size of block to get. + @Param[in] prefixSize - The prefix size + @Param postfixSize - The postfix size + @Param[in] alignment - The requested alignment value (in bytes) + + @Return The memory block size a segment with the given attributes needs. +*//***************************************************************************/ +uint32_t MEM_ComputePartitionSize(uint32_t num, + uint16_t dataSize, + uint16_t prefixSize, + uint16_t postfixSize, + uint16_t alignment); + +#ifdef DEBUG_MEM_LEAKS +#if !(defined(__MWERKS__) && (__dest_os == __ppc_eabi)) +#error "Memory-Leaks-Debug option is supported only for freescale CodeWarrior" +#endif /* !(defined(__MWERKS__) && ... */ + +/**************************************************************************//** + @Function MEM_CheckLeaks + + @Description Report MEM object leaks. + + This routine is automatically called by the MEM_Free() routine, + but it can also be invoked while the MEM object is alive. + + @Param[in] h_Mem - Handle to memory segment. + + @Return None. +*//***************************************************************************/ +void MEM_CheckLeaks(t_Handle h_Mem); + +#else /* not DEBUG_MEM_LEAKS */ +#define MEM_CheckLeaks(h_Mem) +#endif /* not DEBUG_MEM_LEAKS */ + +/**************************************************************************//** + @Description Get base of MEM +*//***************************************************************************/ +#define MEM_GetBase(h_Mem) ((t_MemorySegment *)(h_Mem))->p_Bases[0] + +/**************************************************************************//** + @Description Get size of MEM block +*//***************************************************************************/ +#define MEM_GetSize(h_Mem) ((t_MemorySegment *)(h_Mem))->dataSize + +/**************************************************************************//** + @Description Get prefix size of MEM block +*//***************************************************************************/ +#define MEM_GetPrefixSize(h_Mem) ((t_MemorySegment *)(h_Mem))->prefixSize + +/**************************************************************************//** + @Description Get postfix size of MEM block +*//***************************************************************************/ +#define MEM_GetPostfixSize(h_Mem) ((t_MemorySegment *)(h_Mem))->postfixSize + +/**************************************************************************//** + @Description Get alignment of MEM block (in bytes) +*//***************************************************************************/ +#define MEM_GetAlignment(h_Mem) ((t_MemorySegment *)(h_Mem))->alignment + +/**************************************************************************//** + @Description Get the number of blocks in the segment +*//***************************************************************************/ +#define MEM_GetNumOfBlocks(h_Mem) ((t_MemorySegment *)(h_Mem))->num + +/** @} */ /* end of MEM group */ +/** @} */ /* end of etc_id group */ + + +#endif /* __MEM_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/etc/memcpy_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/etc/memcpy_ext.h @@ -0,0 +1,173 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + + @File memcpy_ext.h + + @Description Efficient functions for copying and setting blocks of memory. +*//***************************************************************************/ + +#ifndef __MEMCPY_EXT_H +#define __MEMCPY_EXT_H + +#include "std_ext.h" + + +/**************************************************************************//** + @Group etc_id Utility Library Application Programming Interface + + @Description External routines. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group mem_cpy Memory Copy + + @Description Memory Copy module functions,definitions and enums. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Function MemCpy32 + + @Description Copies one memory buffer into another one in 4-byte chunks! + Which should be more efficient than byte by byte. + + For large buffers (over 60 bytes) this function is about 4 times + more efficient than the trivial memory copy. For short buffers + it is reduced to the trivial copy and may be a bit worse. + + @Param[in] pDst - The address of the destination buffer. + @Param[in] pSrc - The address of the source buffer. + @Param[in] size - The number of bytes that will be copied from pSrc to pDst. + + @Return pDst (the address of the destination buffer). + + @Cautions There is no parameter or boundary checking! It is up to the user + to supply non-null parameters as source & destination and size + that actually fits into the destination buffer. +*//***************************************************************************/ +void * MemCpy32(void* pDst,void* pSrc, uint32_t size); +void * IO2IOCpy32(void* pDst,void* pSrc, uint32_t size); +void * IO2MemCpy32(void* pDst,void* pSrc, uint32_t size); +void * Mem2IOCpy32(void* pDst,void* pSrc, uint32_t size); + +/**************************************************************************//** + @Function MemCpy64 + + @Description Copies one memory buffer into another one in 8-byte chunks! + Which should be more efficient than byte by byte. + + For large buffers (over 60 bytes) this function is about 8 times + more efficient than the trivial memory copy. For short buffers + it is reduced to the trivial copy and may be a bit worse. + + Some testing suggests that MemCpy32() preforms better than + MemCpy64() over small buffers. On average they break even at + 100 byte buffers. For buffers larger than that MemCpy64 is + superior. + + @Param[in] pDst - The address of the destination buffer. + @Param[in] pSrc - The address of the source buffer. + @Param[in] size - The number of bytes that will be copied from pSrc to pDst. + + @Return pDst (the address of the destination buffer). + + @Cautions There is no parameter or boundary checking! It is up to the user + to supply non null parameters as source & destination and size + that actually fits into their buffer. + + Do not use under Linux. +*//***************************************************************************/ +void * MemCpy64(void* pDst,void* pSrc, uint32_t size); + +/**************************************************************************//** + @Function MemSet32 + + @Description Sets all bytes of a memory buffer to a specific value, in + 4-byte chunks. + + @Param[in] pDst - The address of the destination buffer. + @Param[in] val - Value to set destination bytes to. + @Param[in] size - The number of bytes that will be set to val. + + @Return pDst (the address of the destination buffer). + + @Cautions There is no parameter or boundary checking! It is up to the user + to supply non null parameter as destination and size + that actually fits into the destination buffer. +*//***************************************************************************/ +void * MemSet32(void* pDst, uint8_t val, uint32_t size); +void * IOMemSet32(void* pDst, uint8_t val, uint32_t size); + +/**************************************************************************//** + @Function MemSet64 + + @Description Sets all bytes of a memory buffer to a specific value, in + 8-byte chunks. + + @Param[in] pDst - The address of the destination buffer. + @Param[in] val - Value to set destination bytes to. + @Param[in] size - The number of bytes that will be set to val. + + @Return pDst (the address of the destination buffer). + + @Cautions There is no parameter or boundary checking! It is up to the user + to supply non null parameter as destination and size + that actually fits into the destination buffer. +*//***************************************************************************/ +void * MemSet64(void* pDst, uint8_t val, uint32_t size); + +/**************************************************************************//** + @Function MemDisp + + @Description Displays a block of memory in chunks of 32 bits. + + @Param[in] addr - The address of the memory to display. + @Param[in] size - The number of bytes that will be displayed. + + @Return None. + + @Cautions There is no parameter or boundary checking! It is up to the user + to supply non null parameter as destination and size + that actually fits into the destination buffer. +*//***************************************************************************/ +void MemDisp(uint8_t *addr, int size); + +/** @} */ /* end of mem_cpy group */ +/** @} */ /* end of etc_id group */ + + +#endif /* __MEMCPY_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/etc/mm_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/etc/mm_ext.h @@ -0,0 +1,300 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + /**************************************************************************//** + + @File mm_ext.h + + @Description Memory Manager Application Programming Interface +*//***************************************************************************/ +#ifndef __MM_EXT +#define __MM_EXT + +#include "std_ext.h" + +#define MM_MAX_ALIGNMENT 20 /* Alignments from 2 to 128 are available + where maximum alignment defined as + MM_MAX_ALIGNMENT power of 2 */ + +#define MM_MAX_NAME_LEN 32 + +/**************************************************************************//** + @Group etc_id Utility Library Application Programming Interface + + @Description External routines. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group mm_grp Flexible Memory Manager + + @Description Flexible Memory Manager module functions,definitions and enums. + (All of the following functions,definitions and enums can be found in mm_ext.h) + + @{ +*//***************************************************************************/ + + +/**************************************************************************//** + @Function MM_Init + + @Description Initializes a new MM object. + + It initializes a new memory block consisting of base address + and size of the available memory by calling to MemBlock_Init + routine. It is also initializes a new free block for each + by calling FreeBlock_Init routine, which is pointed to + the almost all memory started from the required alignment + from the base address and to the end of the memory. + The handle to the new MM object is returned via "MM" + argument (passed by reference). + + @Param[in] h_MM - Handle to the MM object. + @Param[in] base - Base address of the MM. + @Param[in] size - Size of the MM. + + @Return E_OK is returned on success. E_NOMEMORY is returned if the new MM object or a new free block can not be initialized. +*//***************************************************************************/ +t_Error MM_Init(t_Handle *h_MM, uint64_t base, uint64_t size); + +/**************************************************************************//** + @Function MM_Get + + @Description Allocates a block of memory according to the given size and the alignment. + + The Alignment argument tells from which + free list allocate a block of memory. 2^alignment indicates + the alignment that the base address of the allocated block + should have. So, the only values 1, 2, 4, 8, 16, 32 and 64 + are available for the alignment argument. + The routine passes through the specific free list of free + blocks and seeks for a first block that have anough memory + that is required (best fit). + After the block is found and data is allocated, it calls + the internal MM_CutFree routine to update all free lists + do not include a just allocated block. Of course, each + free list contains a free blocks with the same alignment. + It is also creates a busy block that holds + information about an allocated block. + + @Param[in] h_MM - Handle to the MM object. + @Param[in] size - Size of the MM. + @Param[in] alignment - Index as a power of two defines a required + alignment (in bytes); Should be 1, 2, 4, 8, 16, 32 or 64 + @Param[in] name - The name that specifies an allocated block. + + @Return base address of an allocated block ILLEGAL_BASE if can't allocate a block +*//***************************************************************************/ +uint64_t MM_Get(t_Handle h_MM, uint64_t size, uint64_t alignment, char *name); + +/**************************************************************************//** + @Function MM_GetBase + + @Description Gets the base address of the required MM objects. + + @Param[in] h_MM - Handle to the MM object. + + @Return base address of the block. +*//***************************************************************************/ +uint64_t MM_GetBase(t_Handle h_MM); + +/**************************************************************************//** + @Function MM_GetForce + + @Description Force memory allocation. + + It means to allocate a block of memory of the given + size from the given base address. + The routine checks if the required block can be allocated + (that is it is free) and then, calls the internal MM_CutFree + routine to update all free lists do not include that block. + + @Param[in] h_MM - Handle to the MM object. + @Param[in] base - Base address of the MM. + @Param[in] size - Size of the MM. + @Param[in] name - Name that specifies an allocated block. + + @Return base address of an allocated block, ILLEGAL_BASE if can't allocate a block. +*//***************************************************************************/ +uint64_t MM_GetForce(t_Handle h_MM, uint64_t base, uint64_t size, char *name); + +/**************************************************************************//** + @Function MM_GetForceMin + + @Description Allocates a block of memory according to the given size, the alignment and minimum base address. + + The Alignment argument tells from which + free list allocate a block of memory. 2^alignment indicates + the alignment that the base address of the allocated block + should have. So, the only values 1, 2, 4, 8, 16, 32 and 64 + are available for the alignment argument. + The minimum baser address forces the location of the block + to be from a given address onward. + The routine passes through the specific free list of free + blocks and seeks for the first base address equal or smaller + than the required minimum address and end address larger than + than the required base + its size - i.e. that may contain + the required block. + After the block is found and data is allocated, it calls + the internal MM_CutFree routine to update all free lists + do not include a just allocated block. Of course, each + free list contains a free blocks with the same alignment. + It is also creates a busy block that holds + information about an allocated block. + + @Param[in] h_MM - Handle to the MM object. + @Param[in] size - Size of the MM. + @Param[in] alignment - Index as a power of two defines a required + alignment (in bytes); Should be 1, 2, 4, 8, 16, 32 or 64 + @Param[in] min - The minimum base address of the block. + @Param[in] name - Name that specifies an allocated block. + + @Return base address of an allocated block,ILLEGAL_BASE if can't allocate a block. +*//***************************************************************************/ +uint64_t MM_GetForceMin(t_Handle h_MM, + uint64_t size, + uint64_t alignment, + uint64_t min, + char *name); + +/**************************************************************************//** + @Function MM_Put + + @Description Puts a block of memory of the given base address back to the memory. + + It checks if there is a busy block with the + given base address. If not, it returns 0, that + means can't free a block. Otherwise, it gets parameters of + the busy block and after it updates lists of free blocks, + removes that busy block from the list by calling to MM_CutBusy + routine. + After that it calls to MM_AddFree routine to add a new free + block to the free lists. + + @Param[in] h_MM - Handle to the MM object. + @Param[in] base - Base address of the MM. + + @Return The size of bytes released, 0 if failed. +*//***************************************************************************/ +uint64_t MM_Put(t_Handle h_MM, uint64_t base); + +/**************************************************************************//** + @Function MM_PutForce + + @Description Releases a block of memory of the required size from the required base address. + + First, it calls to MM_CutBusy routine + to cut a free block from the busy list. And then, calls to + MM_AddFree routine to add the free block to the free lists. + + @Param[in] h_MM - Handle to the MM object. + @Param[in] base - Base address of of a block to free. + @Param[in] size - Size of a block to free. + + @Return The number of bytes released, 0 on failure. +*//***************************************************************************/ +uint64_t MM_PutForce(t_Handle h_MM, uint64_t base, uint64_t size); + +/**************************************************************************//** + @Function MM_Add + + @Description Adds a new memory block for memory allocation. + + When a new memory block is initialized and added to the + memory list, it calls to MM_AddFree routine to add the + new free block to the free lists. + + @Param[in] h_MM - Handle to the MM object. + @Param[in] base - Base address of the memory block. + @Param[in] size - Size of the memory block. + + @Return E_OK on success, otherwise returns an error code. +*//***************************************************************************/ +t_Error MM_Add(t_Handle h_MM, uint64_t base, uint64_t size); + +/**************************************************************************//** + @Function MM_Dump + + @Description Prints results of free and busy lists into the file. + + @Param[in] h_MM - Handle to the MM object. + @Param[in] buff - A pointer to a buffer +*//***************************************************************************/ +void MM_Dump(t_Handle h_MM, void *buff); + +/**************************************************************************//** + @Function MM_Free + + @Description Releases memory allocated for MM object. + + @Param[in] h_MM - Handle of the MM object. +*//***************************************************************************/ +void MM_Free(t_Handle h_MM); + +/**************************************************************************//** + @Function MM_GetMemBlock + + @Description Returns base address of the memory block specified by the index. + + If index is 0, returns base address + of the first memory block, 1 - returns base address + of the second memory block, etc. + Note, those memory blocks are allocated by the + application before MM_Init or MM_Add and have to + be released by the application before or after invoking + the MM_Free routine. + + @Param[in] h_MM - Handle to the MM object. + @Param[in] index - Index of the memory block. + + @Return valid base address or ILLEGAL_BASE if no memory block specified by the index. +*//***************************************************************************/ +uint64_t MM_GetMemBlock(t_Handle h_MM, int index); + +/**************************************************************************//** + @Function MM_InRange + + @Description Checks if a specific address is in the memory range of the passed MM object. + + @Param[in] h_MM - Handle to the MM object. + @Param[in] addr - The address to be checked. + + @Return TRUE if the address is in the address range of the block, FALSE otherwise. +*//***************************************************************************/ +bool MM_InRange(t_Handle h_MM, uint64_t addr); + + +/** @} */ /* end of mm_grp group */ +/** @} */ /* end of etc_id group */ + +#endif /* __MM_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/etc/sprint_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/etc/sprint_ext.h @@ -0,0 +1,125 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + + @File sprint_ext.h + + @Description Debug routines (externals). + +*//***************************************************************************/ + +#ifndef __SPRINT_EXT_H +#define __SPRINT_EXT_H + + +#if defined(NCSW_LINUX) && defined(__KERNEL__) +#include + +#elif defined(NCSW_LINUX_USD) +#include +#include "stdarg_ext.h" +#include "std_ext.h" + +extern int vsscanf(const char *, const char *, va_list); + +#elif defined(NCSW_VXWORKS) +#include "private/stdioP.h" + +#else +#include +#endif /* defined(NCSW_LINUX) && defined(__KERNEL__) */ + +#include "std_ext.h" + + +/**************************************************************************//** + @Group etc_id Utility Library Application Programming Interface + + @Description External routines. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group sprint_id Sprint + + @Description Sprint & Sscan module functions,definitions and enums. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Function Sprint + + @Description Format a string and place it in a buffer. + + @Param[in] buff - The buffer to place the result into. + @Param[in] str - The format string to use. + @Param[in] ... - Arguments for the format string. + + @Return Number of bytes formatted. +*//***************************************************************************/ +int Sprint(char *buff, const char *str, ...); + +/**************************************************************************//** + @Function Snprint + + @Description Format a string and place it in a buffer. + + @Param[in] buf - The buffer to place the result into. + @Param[in] size - The size of the buffer, including the trailing null space. + @Param[in] fmt - The format string to use. + @Param[in] ... - Arguments for the format string. + + @Return Number of bytes formatted. +*//***************************************************************************/ +int Snprint(char * buf, uint32_t size, const char *fmt, ...); + +/**************************************************************************//** + @Function Sscan + + @Description Unformat a buffer into a list of arguments. + + @Param[in] buf - input buffer. + @Param[in] fmt - formatting of buffer. + @Param[out] ... - resulting arguments. + + @Return Number of bytes unformatted. +*//***************************************************************************/ +int Sscan(const char * buf, const char * fmt, ...); + +/** @} */ /* end of sprint_id group */ +/** @} */ /* end of etc_id group */ + + +#endif /* __SPRINT_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/integrations/P1023/dpaa_integration_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/integrations/P1023/dpaa_integration_ext.h @@ -0,0 +1,328 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + + @File dpaa_integration_ext.h + + @Description P1023 FM external definitions and structures. +*//***************************************************************************/ +#ifndef __DPAA_INTEGRATION_EXT_H +#define __DPAA_INTEGRATION_EXT_H + +#include "std_ext.h" + + +typedef enum e_DpaaSwPortal { + e_DPAA_SWPORTAL0 = 0, + e_DPAA_SWPORTAL1, + e_DPAA_SWPORTAL2 +} e_DpaaSwPortal; + +typedef enum { + e_DPAA_DCPORTAL0 = 0, + e_DPAA_DCPORTAL1, + e_DPAA_DCPORTAL2, + e_DPAA_DCPORTAL3 +} e_DpaaDcPortal; + +#define DPAA_MAX_NUM_OF_SW_PORTALS 3 +#define DPAA_MAX_NUM_OF_DC_PORTALS 3 + +/***************************************************************************** + QMAN INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +#define QM_MAX_NUM_OF_POOL_CHANNELS 3 +#define QM_MAX_NUM_OF_WQ 8 +#define QM_MAX_NUM_OF_SWP_AS 2 +#define QM_MAX_NUM_OF_CGS 64 +#define QM_MAX_NUM_OF_FQIDS (16*MEGABYTE) + +typedef enum { + e_QM_FQ_CHANNEL_SWPORTAL0 = 0, + e_QM_FQ_CHANNEL_SWPORTAL1, + e_QM_FQ_CHANNEL_SWPORTAL2, + + e_QM_FQ_CHANNEL_POOL1 = 0x21, + e_QM_FQ_CHANNEL_POOL2, + e_QM_FQ_CHANNEL_POOL3, + + e_QM_FQ_CHANNEL_FMAN0_SP0 = 0x40, + e_QM_FQ_CHANNEL_FMAN0_SP1, + e_QM_FQ_CHANNEL_FMAN0_SP2, + e_QM_FQ_CHANNEL_FMAN0_SP3, + e_QM_FQ_CHANNEL_FMAN0_SP4, + e_QM_FQ_CHANNEL_FMAN0_SP5, + e_QM_FQ_CHANNEL_FMAN0_SP6, + + + e_QM_FQ_CHANNEL_CAAM = 0x80 +} e_QmFQChannel; + +/***************************************************************************** + BMAN INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +#define BM_MAX_NUM_OF_POOLS 8 + +/***************************************************************************** + FM INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +#define INTG_MAX_NUM_OF_FM 1 + +/* Ports defines */ +#define FM_MAX_NUM_OF_1G_RX_PORTS 2 +#define FM_MAX_NUM_OF_10G_RX_PORTS 0 +#define FM_MAX_NUM_OF_RX_PORTS (FM_MAX_NUM_OF_10G_RX_PORTS+FM_MAX_NUM_OF_1G_RX_PORTS) +#define FM_MAX_NUM_OF_1G_TX_PORTS 2 +#define FM_MAX_NUM_OF_10G_TX_PORTS 0 +#define FM_MAX_NUM_OF_TX_PORTS (FM_MAX_NUM_OF_10G_TX_PORTS+FM_MAX_NUM_OF_1G_TX_PORTS) +#define FM_MAX_NUM_OF_OH_PORTS 5 +#define FM_MAX_NUM_OF_1G_MACS (FM_MAX_NUM_OF_1G_RX_PORTS) +#define FM_MAX_NUM_OF_10G_MACS (FM_MAX_NUM_OF_10G_RX_PORTS) +#define FM_MAX_NUM_OF_MACS (FM_MAX_NUM_OF_1G_MACS+FM_MAX_NUM_OF_10G_MACS) +#define FM_MAX_NUM_OF_MACSECS 1 + +#if 0 +#define FM_MACSEC_SUPPORT +#define FM_CAPWAP_SUPPORT +#endif + +#define FM_LOW_END_RESTRICTION /* prevents the use of TX port 1 with OP port 0 */ + +#define FM_PORT_MAX_NUM_OF_EXT_POOLS 4 /**< Number of external BM pools per Rx port */ +#define FM_PORT_MAX_NUM_OF_OBSERVED_EXT_POOLS 2 /**< Number of Offline parsing port external BM pools per Rx port */ +#define FM_PORT_NUM_OF_CONGESTION_GRPS 32 /**< Total number of congestion groups in QM */ +#define FM_MAX_NUM_OF_SUB_PORTALS 7 + +/* Rams defines */ +#define FM_MURAM_SIZE (64*KILOBYTE) +#define FM_IRAM_SIZE (32*KILOBYTE) + +/* PCD defines */ +#define FM_PCD_PLCR_NUM_ENTRIES 32 /**< Total number of policer profiles */ +#define FM_PCD_KG_NUM_OF_SCHEMES 16 /**< Total number of KG schemes */ +#define FM_PCD_MAX_NUM_OF_CLS_PLANS 128 /**< Number of classification plan entries. */ + +/* RTC defines */ +#define FM_RTC_NUM_OF_ALARMS 2 +#define FM_RTC_NUM_OF_PERIODIC_PULSES 2 +#define FM_RTC_NUM_OF_EXT_TRIGGERS 2 + +/* QMI defines */ +#define QMI_MAX_NUM_OF_TNUMS 15 +#define MAX_QMI_DEQ_SUBPORTAL 7 + +/* FPM defines */ +#define FM_NUM_OF_FMAN_CTRL_EVENT_REGS 4 + +/* DMA defines */ +#define DMA_THRESH_MAX_COMMQ 15 +#define DMA_THRESH_MAX_BUF 7 + +/* BMI defines */ +#define BMI_MAX_NUM_OF_TASKS 64 +#define BMI_MAX_NUM_OF_DMAS 16 +#define BMI_MAX_FIFO_SIZE (FM_MURAM_SIZE) +#define PORT_MAX_WEIGHT 4 + +/**************************************************************************//** + @Description Enum for inter-module interrupts registration +*//***************************************************************************/ +typedef enum e_FmEventModules{ + e_FM_MOD_PRS, /**< Parser event */ + e_FM_MOD_KG, /**< Keygen event */ + e_FM_MOD_PLCR, /**< Policer event */ + e_FM_MOD_10G_MAC, /**< 10G MAC error event */ + e_FM_MOD_1G_MAC, /**< 1G MAC error event */ + e_FM_MOD_TMR, /**< Timer event */ + e_FM_MOD_1G_MAC_TMR, /**< 1G MAC Timer event */ + e_FM_MOD_FMAN_CTRL, /**< FMAN Controller Timer event */ + e_FM_MOD_MACSEC, + e_FM_MOD_DUMMY_LAST +} e_FmEventModules; + +/**************************************************************************//** + @Description Enum for interrupts types +*//***************************************************************************/ +typedef enum e_FmIntrType { + e_FM_INTR_TYPE_ERR, + e_FM_INTR_TYPE_NORMAL +} e_FmIntrType; + +/**************************************************************************//** + @Description Enum for inter-module interrupts registration +*//***************************************************************************/ +typedef enum e_FmInterModuleEvent { + e_FM_EV_PRS, /**< Parser event */ + e_FM_EV_ERR_PRS, /**< Parser error event */ + e_FM_EV_KG, /**< Keygen event */ + e_FM_EV_ERR_KG, /**< Keygen error event */ + e_FM_EV_PLCR, /**< Policer event */ + e_FM_EV_ERR_PLCR, /**< Policer error event */ + e_FM_EV_ERR_10G_MAC0, /**< 10G MAC 0 error event */ + e_FM_EV_ERR_1G_MAC0, /**< 1G MAC 0 error event */ + e_FM_EV_ERR_1G_MAC1, /**< 1G MAC 1 error event */ + e_FM_EV_ERR_1G_MAC2, /**< 1G MAC 2 error event */ + e_FM_EV_ERR_1G_MAC3, /**< 1G MAC 3 error event */ + e_FM_EV_ERR_MACSEC_MAC0, /**< MACSEC MAC 0 error event */ + e_FM_EV_TMR, /**< Timer event */ + e_FM_EV_1G_MAC0_TMR, /**< 1G MAC 0 Timer event */ + e_FM_EV_1G_MAC1_TMR, /**< 1G MAC 1 Timer event */ + e_FM_EV_1G_MAC2_TMR, /**< 1G MAC 2 Timer event */ + e_FM_EV_1G_MAC3_TMR, /**< 1G MAC 3 Timer event */ + e_FM_EV_MACSEC_MAC0, /**< MACSEC MAC 0 event */ + e_FM_EV_FMAN_CTRL_0, /**< Fman controller event 0 */ + e_FM_EV_FMAN_CTRL_1, /**< Fman controller event 1 */ + e_FM_EV_FMAN_CTRL_2, /**< Fman controller event 2 */ + e_FM_EV_FMAN_CTRL_3, /**< Fman controller event 3 */ + e_FM_EV_DUMMY_LAST +} e_FmInterModuleEvent; + +#define GET_FM_MODULE_EVENT(mod, id, intrType, event) \ + switch(mod){ \ + case e_FM_MOD_PRS: \ + if (id) event = e_FM_EV_DUMMY_LAST; \ + else event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_ERR_PRS:e_FM_EV_PRS; \ + break; \ + case e_FM_MOD_KG: \ + if (id) event = e_FM_EV_DUMMY_LAST; \ + else event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_ERR_KG:e_FM_EV_DUMMY_LAST; \ + break; \ + case e_FM_MOD_PLCR: \ + if (id) event = e_FM_EV_DUMMY_LAST; \ + else event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_ERR_PLCR:e_FM_EV_PLCR; \ + break; \ + case e_FM_MOD_1G_MAC: \ + switch(id){ \ + case(0): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_ERR_1G_MAC0:e_FM_EV_DUMMY_LAST; break; \ + case(1): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_ERR_1G_MAC1:e_FM_EV_DUMMY_LAST; break; \ + case(2): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_ERR_1G_MAC2:e_FM_EV_DUMMY_LAST; break; \ + case(3): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_ERR_1G_MAC3:e_FM_EV_DUMMY_LAST; break; \ + } \ + break; \ + case e_FM_MOD_TMR: \ + if (id) event = e_FM_EV_DUMMY_LAST; \ + else event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_DUMMY_LAST:e_FM_EV_TMR; \ + break; \ + case e_FM_MOD_1G_MAC_TMR: \ + switch(id){ \ + case(0): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_DUMMY_LAST:e_FM_EV_1G_MAC0_TMR; break; \ + case(1): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_DUMMY_LAST:e_FM_EV_1G_MAC1_TMR; break; \ + case(2): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_DUMMY_LAST:e_FM_EV_1G_MAC2_TMR; break; \ + case(3): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_DUMMY_LAST:e_FM_EV_1G_MAC3_TMR; break; \ + } \ + break; \ + case e_FM_MOD_MACSEC: \ + switch(id){ \ + case(0): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_ERR_MACSEC_MAC0:e_FM_EV_MACSEC_MAC0; break; \ + } \ + break; \ + case e_FM_MOD_FMAN_CTRL: \ + if (intrType == e_FM_INTR_TYPE_ERR) event = e_FM_EV_DUMMY_LAST; \ + else switch(id){ \ + case(0): event = e_FM_EV_FMAN_CTRL_0; break; \ + case(1): event = e_FM_EV_FMAN_CTRL_1; break; \ + case(2): event = e_FM_EV_FMAN_CTRL_2; break; \ + case(3): event = e_FM_EV_FMAN_CTRL_3; break; \ + } \ + break; \ + default:event = e_FM_EV_DUMMY_LAST; \ + break;} + +/***************************************************************************** + FM MACSEC INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +#define NUM_OF_RX_SC 16 +#define NUM_OF_TX_SC 16 + +#define NUM_OF_SA_PER_RX_SC 2 +#define NUM_OF_SA_PER_TX_SC 2 + +/**************************************************************************//** + @Description Enum for inter-module interrupts registration +*//***************************************************************************/ + +typedef enum e_FmMacsecEventModules{ + e_FM_MACSEC_MOD_SC_TX, + e_FM_MACSEC_MOD_DUMMY_LAST +} e_FmMacsecEventModules; + +typedef enum e_FmMacsecInterModuleEvent { + e_FM_MACSEC_EV_SC_TX, + e_FM_MACSEC_EV_ERR_SC_TX, + e_FM_MACSEC_EV_DUMMY_LAST +} e_FmMacsecInterModuleEvent; + +#define NUM_OF_INTER_MODULE_EVENTS (NUM_OF_TX_SC * 2) + +#define GET_MACSEC_MODULE_EVENT(mod, id, intrType, event) \ + switch(mod){ \ + case e_FM_MACSEC_MOD_SC_TX: \ + event = (intrType == e_FM_INTR_TYPE_ERR) ? \ + e_FM_MACSEC_EV_ERR_SC_TX: \ + e_FM_MACSEC_EV_SC_TX; \ + event += (uint8_t)(2 * id);break; \ + break; \ + default:event = e_FM_MACSEC_EV_DUMMY_LAST; \ + break;} + + +/* 1023 unique features */ +#define FM_QMI_NO_ECC_EXCEPTIONS +#define FM_CSI_CFED_LIMIT +#define FM_PEDANTIC_DMA + +/* FM erratas */ +#define FM_NO_RX_PREAM_ERRATA_DTSECx1 +#define FM_RX_PREAM_4_ERRATA_DTSEC_A001 FM_NO_RX_PREAM_ERRATA_DTSECx1 +#define FM_MAGIC_PACKET_UNRECOGNIZED_ERRATA_DTSEC2 /* No implementation, Out of LLD scope */ + +#define FM_IM_TX_SYNC_SKIP_TNUM_ERRATA_FMAN_A001 /* Implemented by ucode */ +#define FM_HC_DEF_FQID_ONLY_ERRATA_FMAN_A003 /* Implemented by ucode */ +#define FM_IM_TX_SHARED_TNUM_ERRATA_FMAN4 /* Implemented by ucode */ +#define FM_IM_GS_DEADLOCK_ERRATA_FMAN5 /* Implemented by ucode */ +#define FM_IM_DEQ_PIPELINE_DEPTH_ERRATA_FMAN10 /* Implemented by ucode */ +#define FM_CC_GEN6_MISSMATCH_ERRATA_FMAN12 /* Implemented by ucode */ +#define FM_CC_CHANGE_SHARED_TNUM_ERRATA_FMAN13 /* Implemented by ucode */ +#define FM_IM_LARGE_MRBLR_ERRATA_FMAN15 /* Implemented by ucode */ + +/* #define FM_UCODE_NOT_RESET_ERRATA_BUGZILLA6173 */ + +/* ??? */ +#define FM_GRS_ERRATA_DTSEC_A002 +#define FM_BAD_TX_TS_IN_B_2_B_ERRATA_DTSEC_A003 +#define FM_GTS_ERRATA_DTSEC_A004 +#define FM_TX_LOCKUP_ERRATA_DTSEC6 + +#define FM_LOCKUP_ALIGNMENT_ERRATA_FMAN_SW004 + +#endif /* __FM_INTEGRATION_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/integrations/P1023/part_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/integrations/P1023/part_ext.h @@ -0,0 +1,81 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + + @File part_ext.h + + @Description Definitions for the part (integration) module. +*//***************************************************************************/ + +#ifndef __PART_EXT_H +#define __PART_EXT_H + +#include "std_ext.h" +#include "part_integration_ext.h" + + +#if !(defined(MPC8306) || \ + defined(MPC8309) || \ + defined(MPC834x) || \ + defined(MPC836x) || \ + defined(MPC832x) || \ + defined(MPC837x) || \ + defined(MPC8568) || \ + defined(MPC8569) || \ + defined(P1020) || \ + defined(P1021) || \ + defined(P1022) || \ + defined(P1023) || \ + defined(P2020) || \ + defined(P3041) || \ + defined(P4080) || \ + defined(P5020) || \ + defined(MSC814x)) +#error "unable to proceed without chip-definition" +#endif + + +/**************************************************************************//* + @Description Part data structure - must be contained in any integration + data structure. +*//***************************************************************************/ +typedef struct t_Part +{ + uint64_t (* f_GetModuleBase)(t_Handle h_Part, e_ModuleId moduleId); + /**< Returns the address of the module's memory map base. */ + e_ModuleId (* f_GetModuleIdByBase)(t_Handle h_Part, uint64_t baseAddress); + /**< Returns the module's ID according to its memory map base. */ +} t_Part; + + +#endif /* __PART_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/integrations/P1023/part_integration_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/integrations/P1023/part_integration_ext.h @@ -0,0 +1,659 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + + @File part_integration_ext.h + + @Description P1023 external definitions and structures. +*//***************************************************************************/ +#ifndef __PART_INTEGRATION_EXT_H +#define __PART_INTEGRATION_EXT_H + +#include "std_ext.h" +#ifndef NCSW_LINUX +#include "ddr_std_ext.h" +#endif +#include "dpaa_integration_ext.h" + + +/**************************************************************************//** + @Group 1023_chip_id P1023 Application Programming Interface + + @Description P1023 Chip functions,definitions and enums. + + @{ +*//***************************************************************************/ + +#define INTG_MAX_NUM_OF_CORES 1 + + +/**************************************************************************//** + @Description Module types. +*//***************************************************************************/ +typedef enum e_ModuleId +{ + e_MODULE_ID_LAW, /**< Local Access module */ + e_MODULE_ID_ECM, /**< e500 Coherency Module */ + e_MODULE_ID_DDR, /**< DDR memory controller */ + e_MODULE_ID_I2C_1, /**< I2C 1 */ + e_MODULE_ID_I2C_2, /**< I2C 1 */ + e_MODULE_ID_DUART_1, /**< DUART module 1 */ + e_MODULE_ID_DUART_2, /**< DUART module 2 */ + e_MODULE_ID_LBC, /**< Local bus memory controller module */ + e_MODULE_ID_PCIE_1, /**< PCI Express 1 controller module */ + e_MODULE_ID_PCIE_ATMU_1, /**< PCI 1 ATMU Window */ + e_MODULE_ID_PCIE_2, /**< PCI Express 2 controller module */ + e_MODULE_ID_PCIE_ATMU_2, /**< PCI 2 ATMU Window */ + e_MODULE_ID_PCIE_3, /**< PCI Express 3 controller module */ + e_MODULE_ID_PCIE_ATMU_3, /**< PCI 3 ATMU Window */ + e_MODULE_ID_MSI, /**< MSI registers */ + e_MODULE_ID_L2_SRAM, /**< L2/SRAM Memory-Mapped controller module */ + e_MODULE_ID_DMA_1, /**< DMA controller 1 */ + e_MODULE_ID_DMA_2, /**< DMA controller 2 */ + e_MODULE_ID_EPIC, /**< Programmable interrupt controller */ + e_MODULE_ID_ESPI, /**< ESPI module */ + e_MODULE_ID_GPIO, /**< General Purpose I/O */ + e_MODULE_ID_SEC_GEN, /**< SEC 4.0 General registers */ + e_MODULE_ID_SEC_QI, /**< SEC 4.0 QI registers */ + e_MODULE_ID_SEC_JQ0, /**< SEC 4.0 JQ-0 registers */ + e_MODULE_ID_SEC_JQ1, /**< SEC 4.0 JQ-1 registers */ + e_MODULE_ID_SEC_JQ2, /**< SEC 4.0 JQ-2 registers */ + e_MODULE_ID_SEC_JQ3, /**< SEC 4.0 JQ-3 registers */ + e_MODULE_ID_SEC_RTIC, /**< SEC 4.0 RTIC registers */ + e_MODULE_ID_SEC_DECO0_CCB0, /**< SEC 4.0 DECO-0/CCB-0 registers */ + e_MODULE_ID_SEC_DECO1_CCB1, /**< SEC 4.0 DECO-1/CCB-1 registers */ + e_MODULE_ID_SEC_DECO2_CCB2, /**< SEC 4.0 DECO-2/CCB-2 registers */ + e_MODULE_ID_SEC_DECO3_CCB3, /**< SEC 4.0 DECO-3/CCB-3 registers */ + e_MODULE_ID_SEC_DECO4_CCB4, /**< SEC 4.0 DECO-4/CCB-4 registers */ + e_MODULE_ID_USB_DR_1, /**< USB 2.0 module 1 */ + e_MODULE_ID_USB_DR_2, /**< USB 2.0 module 2 */ + e_MODULE_ID_ETSEC_MII_MNG, /**< MII MNG registers */ + e_MODULE_ID_ETSEC_1, /**< ETSEC module 1 */ + e_MODULE_ID_ETSEC_2, /**< ETSEC module 2 */ + e_MODULE_ID_GUTS, /**< Serial DMA */ + e_MODULE_ID_PM, /**< Performance Monitor module */ + e_MODULE_ID_QM, /**< Queue manager module */ + e_MODULE_ID_BM, /**< Buffer manager module */ + e_MODULE_ID_QM_CE_PORTAL, + e_MODULE_ID_QM_CI_PORTAL, + e_MODULE_ID_BM_CE_PORTAL, + e_MODULE_ID_BM_CI_PORTAL, + e_MODULE_ID_FM, /**< Frame manager #1 module */ + e_MODULE_ID_FM_RTC, /**< FM Real-Time-Clock */ + e_MODULE_ID_FM_MURAM, /**< FM Multi-User-RAM */ + e_MODULE_ID_FM_BMI, /**< FM BMI block */ + e_MODULE_ID_FM_QMI, /**< FM QMI block */ + e_MODULE_ID_FM_PRS, /**< FM parser block */ + e_MODULE_ID_FM_PORT_HO0, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM_PORT_HO1, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM_PORT_HO2, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM_PORT_HO3, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM_PORT_HO4, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM_PORT_1GRx0, /**< FM Rx 1G MAC port block */ + e_MODULE_ID_FM_PORT_1GRx1, /**< FM Rx 1G MAC port block */ + e_MODULE_ID_FM_PORT_1GTx0, /**< FM Tx 1G MAC port block */ + e_MODULE_ID_FM_PORT_1GTx1, /**< FM Tx 1G MAC port block */ + e_MODULE_ID_FM_PLCR, /**< FM Policer */ + e_MODULE_ID_FM_KG, /**< FM Keygen */ + e_MODULE_ID_FM_DMA, /**< FM DMA */ + e_MODULE_ID_FM_FPM, /**< FM FPM */ + e_MODULE_ID_FM_IRAM, /**< FM Instruction-RAM */ + e_MODULE_ID_FM_1GMDIO0, /**< FM 1G MDIO MAC 0*/ + e_MODULE_ID_FM_1GMDIO1, /**< FM 1G MDIO MAC 1*/ + e_MODULE_ID_FM_PRS_IRAM, /**< FM SW-parser Instruction-RAM */ + e_MODULE_ID_FM_RISC0, /**< FM risc #0 */ + e_MODULE_ID_FM_RISC1, /**< FM risc #1 */ + e_MODULE_ID_FM_1GMAC0, /**< FM 1G MAC #0 */ + e_MODULE_ID_FM_1GMAC1, /**< FM 1G MAC #1 */ + e_MODULE_ID_FM_MACSEC, /**< FM MACSEC */ + + e_MODULE_ID_DUMMY_LAST +} e_ModuleId; + +#define NUM_OF_MODULES e_MODULE_ID_DUMMY_LAST + + +#define P1023_OFFSET_LAW 0x00000C08 +#define P1023_OFFSET_ECM 0x00001000 +#define P1023_OFFSET_DDR 0x00002000 +#define P1023_OFFSET_I2C1 0x00003000 +#define P1023_OFFSET_I2C2 0x00003100 +#define P1023_OFFSET_DUART1 0x00004500 +#define P1023_OFFSET_DUART2 0x00004600 +#define P1023_OFFSET_LBC 0x00005000 +#define P1023_OFFSET_ESPI 0x00007000 +#define P1023_OFFSET_PCIE2 0x00009000 +#define P1023_OFFSET_PCIE2_ATMU 0x00009C00 +#define P1023_OFFSET_PCIE1 0x0000A000 +#define P1023_OFFSET_PCIE1_ATMU 0x0000AC00 +#define P1023_OFFSET_PCIE3 0x0000B000 +#define P1023_OFFSET_PCIE3_ATMU 0x0000BC00 +#define P1023_OFFSET_DMA2 0x0000C100 +#define P1023_OFFSET_GPIO 0x0000F000 +#define P1023_OFFSET_L2_SRAM 0x00020000 +#define P1023_OFFSET_DMA1 0x00021100 +#define P1023_OFFSET_USB1 0x00022000 +#define P1023_OFFSET_SEC_GEN 0x00030000 +#define P1023_OFFSET_SEC_JQ0 0x00031000 +#define P1023_OFFSET_SEC_JQ1 0x00032000 +#define P1023_OFFSET_SEC_JQ2 0x00033000 +#define P1023_OFFSET_SEC_JQ3 0x00034000 +#define P1023_OFFSET_SEC_RTIC 0x00036000 +#define P1023_OFFSET_SEC_QI 0x00037000 +#define P1023_OFFSET_SEC_DECO0_CCB0 0x00038000 +#define P1023_OFFSET_SEC_DECO1_CCB1 0x00039000 +#define P1023_OFFSET_SEC_DECO2_CCB2 0x0003a000 +#define P1023_OFFSET_SEC_DECO3_CCB3 0x0003b000 +#define P1023_OFFSET_SEC_DECO4_CCB4 0x0003c000 +#define P1023_OFFSET_PIC 0x00040000 +#define P1023_OFFSET_MSI 0x00041600 +#define P1023_OFFSET_AXI 0x00081000 +#define P1023_OFFSET_QM 0x00088000 +#define P1023_OFFSET_BM 0x0008A000 +#define P1022_OFFSET_PM 0x000E1000 + +#define P1023_OFFSET_GUTIL 0x000E0000 +#define P1023_OFFSET_PM 0x000E1000 +#define P1023_OFFSET_DEBUG 0x000E2000 +#define P1023_OFFSET_SERDES 0x000E3000 +#define P1023_OFFSET_ROM 0x000F0000 +#define P1023_OFFSET_FM 0x00100000 + +#define P1023_OFFSET_FM_MURAM (P1023_OFFSET_FM + 0x00000000) +#define P1023_OFFSET_FM_BMI (P1023_OFFSET_FM + 0x00080000) +#define P1023_OFFSET_FM_QMI (P1023_OFFSET_FM + 0x00080400) +#define P1023_OFFSET_FM_PRS (P1023_OFFSET_FM + 0x00080800) +#define P1023_OFFSET_FM_PORT_HO0 (P1023_OFFSET_FM + 0x00081000) +#define P1023_OFFSET_FM_PORT_HO1 (P1023_OFFSET_FM + 0x00082000) +#define P1023_OFFSET_FM_PORT_HO2 (P1023_OFFSET_FM + 0x00083000) +#define P1023_OFFSET_FM_PORT_HO3 (P1023_OFFSET_FM + 0x00084000) +#define P1023_OFFSET_FM_PORT_HO4 (P1023_OFFSET_FM + 0x00085000) +#define P1023_OFFSET_FM_PORT_1GRX0 (P1023_OFFSET_FM + 0x00088000) +#define P1023_OFFSET_FM_PORT_1GRX1 (P1023_OFFSET_FM + 0x00089000) +#define P1023_OFFSET_FM_PORT_1GTX0 (P1023_OFFSET_FM + 0x000A8000) +#define P1023_OFFSET_FM_PORT_1GTX1 (P1023_OFFSET_FM + 0x000A9000) +#define P1023_OFFSET_FM_PLCR (P1023_OFFSET_FM + 0x000C0000) +#define P1023_OFFSET_FM_KG (P1023_OFFSET_FM + 0x000C1000) +#define P1023_OFFSET_FM_DMA (P1023_OFFSET_FM + 0x000C2000) +#define P1023_OFFSET_FM_FPM (P1023_OFFSET_FM + 0x000C3000) +#define P1023_OFFSET_FM_IRAM (P1023_OFFSET_FM + 0x000C4000) +#define P1023_OFFSET_FM_PRS_IRAM (P1023_OFFSET_FM + 0x000C7000) +#define P1023_OFFSET_FM_RISC0 (P1023_OFFSET_FM + 0x000D0000) +#define P1023_OFFSET_FM_RISC1 (P1023_OFFSET_FM + 0x000D0400) +#define P1023_OFFSET_FM_MACSEC (P1023_OFFSET_FM + 0x000D8000) +#define P1023_OFFSET_FM_1GMAC0 (P1023_OFFSET_FM + 0x000E0000) +#define P1023_OFFSET_FM_1GMDIO0 (P1023_OFFSET_FM + 0x000E1120) +#define P1023_OFFSET_FM_1GMAC1 (P1023_OFFSET_FM + 0x000E2000) +#define P1023_OFFSET_FM_1GMDIO1 (P1023_OFFSET_FM + 0x000E3000) +#define P1023_OFFSET_FM_RTC (P1023_OFFSET_FM + 0x000FE000) + +/* Offsets relative to QM or BM portals base */ +#define P1023_OFFSET_PORTALS_CE_AREA 0x00000000 /* cache enabled area */ +#define P1023_OFFSET_PORTALS_CI_AREA 0x00100000 /* cache inhibited area */ + +#define P1023_OFFSET_PORTALS_CE(portal) (P1023_OFFSET_PORTALS_CE_AREA + 0x4000 * (portal)) +#define P1023_OFFSET_PORTALS_CI(portal) (P1023_OFFSET_PORTALS_CI_AREA + 0x1000 * (portal)) + +/**************************************************************************//** + @Description Transaction source ID (for memory controllers error reporting). +*//***************************************************************************/ +typedef enum e_TransSrc +{ + e_TRANS_SRC_PCIE_2 = 0x01, /**< PCIe port 2 */ + e_TRANS_SRC_PCIE_1 = 0x02, /**< PCIe port 1 */ + e_TRANS_SRC_PCIE_3 = 0x03, /**< PCIe port 3 */ + e_TRANS_SRC_LBC = 0x04, /**< Enhanced local bus */ + e_TRANS_SRC_DPAA_SW_PORTALS = 0x0E, /**< DPAA software portals or SRAM */ + e_TRANS_SRC_DDR = 0x0F, /**< DDR controller */ + e_TRANS_SRC_CORE_INS_FETCH = 0x10, /**< Processor (instruction) */ + e_TRANS_SRC_CORE_DATA = 0x11, /**< Processor (data) */ + e_TRANS_SRC_DMA = 0x15 /**< DMA */ +} e_TransSrc; + +/**************************************************************************//** + @Description Local Access Window Target interface ID +*//***************************************************************************/ +typedef enum e_P1023LawTargetId +{ + e_P1023_LAW_TARGET_PCIE_2 = 0x01, /**< PCI Express 2 target interface */ + e_P1023_LAW_TARGET_PCIE_1 = 0x02, /**< PCI Express 1 target interface */ + e_P1023_LAW_TARGET_PCIE_3 = 0x03, /**< PCI Express 3 target interface */ + e_P1023_LAW_TARGET_LBC = 0x04, /**< Local bus target interface */ + e_P1023_LAW_TARGET_QM_PORTALS = 0x0E, /**< Queue Manager Portals */ + e_P1023_LAW_TARGET_BM_PORTALS = 0x0E, /**< Buffer Manager Portals */ + e_P1023_LAW_TARGET_SRAM = 0x0E, /**< SRAM scratchpad */ + e_P1023_LAW_TARGET_DDR = 0x0F, /**< DDR target interface */ + e_P1023_LAW_TARGET_NONE = 0xFF /**< Invalid target interface */ +} e_P1023LawTargetId; + + +/**************************************************************************//** + @Group 1023_init_grp P1023 Initialization Unit + + @Description P1023 initialization unit API functions, definitions and enums + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Description Part ID and revision number +*//***************************************************************************/ +typedef enum e_P1023DeviceName +{ + e_P1023_REV_INVALID = 0x00000000, /**< Invalid revision */ + e_SC1023_REV_1_0 = (int)0x80FC0010, /**< SC1023 rev 1.0 */ + e_SC1023_REV_1_1 = (int)0x80FC0011, /**< SC1023 rev 1.1 */ + e_P1023_REV_1_0 = (int)0x80FE0010, /**< P1023 rev 1.0 with security */ + e_P1023_REV_1_1 = (int)0x80FE0011, /**< P1023 rev 1.1 with security */ + e_P1023_REV_1_0_NO_SEC = (int)0x80F60010, /**< P1023 rev 1.0 without security */ + e_P1023_REV_1_1_NO_SEC = (int)0x80F60011 /**< P1023 rev 1.1 without security */ +} e_P1023DeviceName; + +/**************************************************************************//** + @Description structure representing P1023 initialization parameters +*//***************************************************************************/ +typedef struct t_P1023Params +{ + uintptr_t ccsrBaseAddress; /**< CCSR base address (virtual) */ + uintptr_t bmPortalsBaseAddress; /**< Portals base address (virtual) */ + uintptr_t qmPortalsBaseAddress; /**< Portals base address (virtual) */ +} t_P1023Params; + +/**************************************************************************//** + @Function P1023_ConfigAndInit + + @Description General initiation of the chip registers. + + @Param[in] p_P1023Params - A pointer to data structure of parameters + + @Return A handle to the P1023 data structure. +*//***************************************************************************/ +t_Handle P1023_ConfigAndInit(t_P1023Params *p_P1023Params); + +/**************************************************************************//** + @Function P1023_Free + + @Description Free all resources. + + @Param h_P1023 - (In) The handle of the initialized P1023 object. + + @Return E_OK on success; Other value otherwise. +*//***************************************************************************/ +t_Error P1023_Free(t_Handle h_P1023); + +/**************************************************************************//** + @Function P1023_GetRevInfo + + @Description This routine enables access to chip and revision information. + + @Param[in] gutilBase - Base address of P1023 GUTIL registers. + + @Return Part ID and revision. +*//***************************************************************************/ +e_P1023DeviceName P1023_GetRevInfo(uintptr_t gutilBase); + +/**************************************************************************//** + @Function P1023_GetE500Factor + + @Description Returns E500 core clock multiplication factor. + + @Param[in] gutilBase - Base address of P1023 GUTIL registers. + @Param[in] coreId - Id of the requested core. + @Param[out] p_E500MulFactor - Returns E500 to CCB multification factor. + @Param[out] p_E500DivFactor - Returns E500 to CCB division factor. + + @Return E_OK on success; Other value otherwise. +* +*//***************************************************************************/ +t_Error P1023_GetE500Factor(uintptr_t gutilBase, + uint32_t coreId, + uint32_t *p_E500MulFactor, + uint32_t *p_E500DivFactor); + +/**************************************************************************//** + @Function P1023_GetFmFactor + + @Description returns FM multiplication factors. (This value is returned using + two parameters to avoid using float parameter). + + @Param[in] gutilBase - Base address of P1023 GUTIL registers. + @Param[out] p_FmMulFactor - returns E500 to CCB multification factor. + @Param[out] p_FmDivFactor - returns E500 to CCB division factor. + + @Return E_OK on success; Other value otherwise. +*//***************************************************************************/ +t_Error P1023_GetFmFactor(uintptr_t gutilBase, uint32_t *p_FmMulFactor, uint32_t *p_FmDivFactor); + +/**************************************************************************//** + @Function P1023_GetCcbFactor + + @Description returns system multiplication factor. + + @Param[in] gutilBase - Base address of P1023 GUTIL registers. + + @Return System multiplication factor. +*//***************************************************************************/ +uint32_t P1023_GetCcbFactor(uintptr_t gutilBase); + +/**************************************************************************//** + @Function P1023_GetDdrFactor + + @Description returns the multiplication factor of the clock in for the DDR clock . + Note: assumes the ddr_in_clk is identical to the sys_in_clk + + @Param[in] gutilBase - Base address of P1023 GUTIL registers. + @Param p_DdrMulFactor - returns DDR in clk multification factor. + @Param p_DdrDivFactor - returns DDR division factor. + + @Return E_OK on success; Other value otherwise.. +*//***************************************************************************/ +t_Error P1023_GetDdrFactor( uintptr_t gutilBase, + uint32_t *p_DdrMulFactor, + uint32_t *p_DdrDivFactor); + + +/**************************************************************************//** + @Function P1023_GetDdrType + + @Description returns the multiplication factor of the clock in for the DDR clock . + + @Param[in] gutilBase - Base address of P1023 GUTIL registers. + @Param p_DdrType - (Out) returns DDR type DDR1/DDR2/DDR3. + + @Return E_OK on success; Other value otherwise. +*//***************************************************************************/ +#ifndef NCSW_LINUX +t_Error P1023_GetDdrType(uintptr_t gutilBase, e_DdrType *p_DdrType ); +#endif + + +/** @} */ /* end of 1023_init_grp group */ +/** @} */ /* end of 1023_grp group */ + +#define CORE_E500V2 + +/***************************************************************************** + INTEGRATION-SPECIFIC MODULE CODES +******************************************************************************/ +#define MODULE_UNKNOWN 0x00000000 +#define MODULE_MEM 0x00010000 +#define MODULE_MM 0x00020000 +#define MODULE_CORE 0x00030000 +#define MODULE_P1023 0x00040000 +#define MODULE_MII 0x00050000 +#define MODULE_PM 0x00060000 +#define MODULE_MMU 0x00070000 +#define MODULE_PIC 0x00080000 +#define MODULE_L2_CACHE 0x00090000 +#define MODULE_DUART 0x000a0000 +#define MODULE_SERDES 0x000b0000 +#define MODULE_PIO 0x000c0000 +#define MODULE_QM 0x000d0000 +#define MODULE_BM 0x000e0000 +#define MODULE_SEC 0x000f0000 +#define MODULE_FM 0x00100000 +#define MODULE_FM_MURAM 0x00110000 +#define MODULE_FM_PCD 0x00120000 +#define MODULE_FM_RTC 0x00130000 +#define MODULE_FM_MAC 0x00140000 +#define MODULE_FM_PORT 0x00150000 +#define MODULE_FM_MACSEC 0x00160000 +#define MODULE_FM_MACSEC_SECY 0x00170000 +#define MODULE_ECM 0x00180000 +#define MODULE_DMA 0x00190000 +#define MODULE_DDR 0x001a0000 +#define MODULE_LAW 0x001b0000 +#define MODULE_LBC 0x001c0000 +#define MODULE_I2C 0x001d0000 +#define MODULE_ESPI 0x001e0000 +#define MODULE_PCI 0x001f0000 +#define MODULE_DPA 0x00200000 +#define MODULE_USB 0x00210000 + +/***************************************************************************** + LBC INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +/**************************************************************************//** + @Group lbc_exception_grp LBC Exception Unit + + @Description LBC Exception unit API functions, definitions and enums + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Anchor lbc_exbm + + @Collection LBC Errors Bit Mask + + These errors are reported through the exceptions callback.. + The values can be or'ed in any combination in the errors mask + parameter of the errors report structure. + + These errors can also be passed as a bit-mask to + LBC_EnableErrorChecking() or LBC_DisableErrorChecking(), + for enabling or disabling error checking. + @{ +*//***************************************************************************/ +#define LBC_ERR_BUS_MONITOR 0x80000000 /**< Bus monitor error */ +#define LBC_ERR_PARITY_ECC 0x20000000 /**< Parity error for GPCM/UPM */ +#define LBC_ERR_WRITE_PROTECT 0x04000000 /**< Write protection error */ +#define LBC_ERR_CHIP_SELECT 0x00080000 /**< Unrecognized chip select */ + +#define LBC_ERR_ALL (LBC_ERR_BUS_MONITOR | LBC_ERR_PARITY_ECC | \ + LBC_ERR_WRITE_PROTECT | LBC_ERR_CHIP_SELECT) + /**< All possible errors */ +/* @} */ +/** @} */ /* end of lbc_exception_grp group */ + +#define LBC_NUM_OF_BANKS 2 +#define LBC_MAX_CS_SIZE 0x0000000100000000LL +#define LBC_ATOMIC_OPERATION_SUPPORT +#define LBC_PARITY_SUPPORT +#define LBC_ADDRESS_SHIFT_SUPPORT +#define LBC_ADDRESS_HOLD_TIME_CTRL +#define LBC_HIGH_CLK_DIVIDERS +#define LBC_FCM_AVAILABLE + + +/***************************************************************************** + LAW INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +#define LAW_ARCH_CCB +#define LAW_NUM_OF_WINDOWS 12 +#define LAW_MIN_WINDOW_SIZE 0x0000000000001000LL /**< 4KB */ +#define LAW_MAX_WINDOW_SIZE 0x0000001000000000LL /**< 32GB */ + + +/***************************************************************************** + SPI INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +#define SPI_NUM_OF_CONTROLLERS 1 + +/***************************************************************************** + PCI/PCIe INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ + +#define PCI_MAX_INBOUND_WINDOWS_NUM 4 +#define PCI_MAX_OUTBOUND_WINDOWS_NUM 5 + +/**************************************************************************//** + @Description Target interface of an inbound window +*//***************************************************************************/ +typedef enum e_PciTargetInterface +{ + e_PCI_TARGET_PCIE_2 = 0x1, /**< PCI Express target interface 2 */ + e_PCI_TARGET_PCIE_1 = 0x2, /**< PCI Express target interface 1 */ + e_PCI_TARGET_PCIE_3 = 0x3, /**< PCI Express target interface 3 */ + e_PCI_TARGET_LOCAL_MEMORY = 0xF /**< Local Memory (DDR SDRAM, Local Bus, SRAM) target interface */ + +} e_PciTargetInterface; + +/***************************************************************************** + DDR INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +#define DDR_NUM_OF_VALID_CS 2 + +/***************************************************************************** + SEC INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +#define SEC_ERRATA_STAT_REGS_UNUSABLE + +/***************************************************************************** + DMA INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +#define DMA_NUM_OF_CONTROLLERS 1 + + + + +/***************************************************************************** + 1588 INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +#define PTP_V2 + +/**************************************************************************//** + @Function P1023_GetMuxControlReg + + @Description Returns the value of PMUXCR (Alternate Function Signal Multiplex + Control Register) + + @Param[in] gutilBase - Base address of P1023 GUTIL registers. + + @Return Value of PMUXCR +*//***************************************************************************/ +uint32_t P1023_GetMuxControlReg(uintptr_t gutilBase); + +/**************************************************************************//** + @Function P1023_SetMuxControlReg + + @Description Sets the value of PMUXCR (Alternate Function Signal Multiplex + Control Register) + + @Param[in] gutilBase - Base address of P1023 GUTIL registers. + @Param[in] val - the new value for PMUXCR. + + @Return None +*//***************************************************************************/ +void P1023_SetMuxControlReg(uintptr_t gutilBase, uint32_t val); + +/**************************************************************************//** + @Function P1023_GetPowerMngClkDisableReg + + @Description Returns the value of PMCDR (Power Management Clock Disable Register) + + @Param[in] gutilBase - Base address of P1023 GUTIL registers. + + @Return Value of PMCDR +*//***************************************************************************/ +uint32_t P1023_GetPowerMngClkDisableReg(uintptr_t gutilBase); + +/**************************************************************************//** + @Function P1023_SetPowerMngClkDisableReg + + @Description Sets the value of PMCDR ((Power Management Clock Disable Register)) + + @Param[in] gutilBase - Base address of P1023 GUTIL registers. + @Param[in] val - the new value for PMCDR. + + @Return None +*//***************************************************************************/ +void P1023_SetPowerMngClkDisableReg(uintptr_t gutilBase, uint32_t val); + +/**************************************************************************//** + @Function P1023_GetDeviceDisableStatusRegister + + @Description Returns the value of DEVDISR (Device Disable Register) + + @Param[in] gutilBase - Base address of P1023 GUTIL registers. + + @Return Value of DEVDISR +*//***************************************************************************/ +uint32_t P1023_GetDeviceDisableStatusRegister(uintptr_t gutilBase); + +/**************************************************************************//** + @Function P1023_GetPorDeviceStatusRegister + + @Description Returns the value of POR Device Status Register + + @Param[in] gutilBase - Base address of P1023 GUTIL registers. + + @Return POR Device Status Register +*//***************************************************************************/ +uint32_t P1023_GetPorDeviceStatusRegister(uintptr_t gutilBase); + +/**************************************************************************//** + @Function P1023_GetPorBootModeStatusRegister + + @Description Returns the value of POR Boot Mode Status Register + + @Param[in] gutilBase - Base address of P1023 GUTIL registers. + + @Return POR Boot Mode Status Register value +*//***************************************************************************/ +uint32_t P1023_GetPorBootModeStatusRegister(uintptr_t gutilBase); + + +#define PORDEVSR_SGMII1_DIS 0x10000000 +#define PORDEVSR_SGMII2_DIS 0x08000000 +#define PORDEVSR_ECP1 0x02000000 +#define PORDEVSR_IO_SEL 0x00780000 +#define PORDEVSR_IO_SEL_SHIFT 19 +#define PORBMSR_HA 0x00070000 +#define PORBMSR_HA_SHIFT 16 + +#define DEVDISR_QM_BM 0x80000000 +#define DEVDISR_FM 0x40000000 +#define DEVDISR_PCIE1 0x20000000 +#define DEVDISR_MAC_SEC 0x10000000 +#define DEVDISR_ELBC 0x08000000 +#define DEVDISR_PCIE2 0x04000000 +#define DEVDISR_PCIE3 0x02000000 +#define DEVDISR_CAAM 0x01000000 +#define DEVDISR_USB0 0x00800000 +#define DEVDISR_1588 0x00020000 +#define DEVDISR_CORE0 0x00008000 +#define DEVDISR_TB0 0x00004000 +#define DEVDISR_CORE1 0x00002000 +#define DEVDISR_TB1 0x00001000 +#define DEVDISR_DMA1 0x00000400 +#define DEVDISR_DMA2 0x00000200 +#define DEVDISR_DDR 0x00000010 +#define DEVDISR_TSEC1 0x00000080 +#define DEVDISR_TSEC2 0x00000040 +#define DEVDISR_SPI 0x00000008 +#define DEVDISR_I2C 0x00000004 +#define DEVDISR_DUART 0x00000002 + + +#endif /* __PART_INTEGRATION_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/integrations/P3040_P4080_P5020/dpaa_integration_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/integrations/P3040_P4080_P5020/dpaa_integration_ext.h @@ -0,0 +1,452 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + + @File dpaa_integration_ext.h + + @Description P4080 FM external definitions and structures. +*//***************************************************************************/ +#ifndef __DPAA_INTEGRATION_EXT_H +#define __DPAA_INTEGRATION_EXT_H + +#include "std_ext.h" + + +typedef enum { + e_DPAA_SWPORTAL0 = 0, + e_DPAA_SWPORTAL1, + e_DPAA_SWPORTAL2, + e_DPAA_SWPORTAL3, + e_DPAA_SWPORTAL4, + e_DPAA_SWPORTAL5, + e_DPAA_SWPORTAL6, + e_DPAA_SWPORTAL7, + e_DPAA_SWPORTAL8, + e_DPAA_SWPORTAL9, + e_DPAA_SWPORTAL_DUMMY_LAST +} e_DpaaSwPortal; + +typedef enum { + e_DPAA_DCPORTAL0 = 0, + e_DPAA_DCPORTAL1, + e_DPAA_DCPORTAL2, + e_DPAA_DCPORTAL3, + e_DPAA_DCPORTAL4, + e_DPAA_DCPORTAL_DUMMY_LAST +} e_DpaaDcPortal; + +#define DPAA_MAX_NUM_OF_SW_PORTALS e_DPAA_SWPORTAL_DUMMY_LAST +#define DPAA_MAX_NUM_OF_DC_PORTALS e_DPAA_DCPORTAL_DUMMY_LAST + +/***************************************************************************** + QMan INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +#define QMAN_PM_DCP_COUNTERS_ERRATA_QMAN1 +#define QMAN_FQD_AVOID_BLK_ERRATA_QMAN2 +#define QMAN_DBG_TRC_EV_ERRATA_QMAN3 +#define QMAN_WQ_CS_CFG_ERRATA_QMAN4 +#define QMAN_SFDR_LEAK_ERRATA_QMAN5 +#define QMAN_FQ_TD_THRESH_ERRATA_QMAN6 +#define QMAN_FQ_INIT_ON_PARKED_ERRATA_QMAN7 +#define QMAN_NESN_ORR_ERRATA_QMAN8 +#define QMAN_ERN_REJ_CODE6_ERRATA_QMAN9 +#define QMAN_ERN_MOULTI_CORE_ERRATA_QMAN10 +#define QMAN_PERFMON_FOR_DCP_FQD_ERRATA_QMAN11 + +#define QM_MAX_NUM_OF_POOL_CHANNELS 15 +#define QM_MAX_NUM_OF_WQ 8 +#define QM_MAX_NUM_OF_SWP_AS 4 +#define QM_MAX_NUM_OF_CGS 256 +#define QM_MAX_NUM_OF_FQIDS (16*MEGABYTE) + +/**************************************************************************//** + @Description Work Queue Channel assignments in QMan. +*//***************************************************************************/ +typedef enum +{ + e_QM_FQ_CHANNEL_SWPORTAL0 = 0, /**< Dedicated channels serviced by software portals 0 to 9 */ + e_QM_FQ_CHANNEL_SWPORTAL1, + e_QM_FQ_CHANNEL_SWPORTAL2, + e_QM_FQ_CHANNEL_SWPORTAL3, + e_QM_FQ_CHANNEL_SWPORTAL4, + e_QM_FQ_CHANNEL_SWPORTAL5, + e_QM_FQ_CHANNEL_SWPORTAL6, + e_QM_FQ_CHANNEL_SWPORTAL7, + e_QM_FQ_CHANNEL_SWPORTAL8, + e_QM_FQ_CHANNEL_SWPORTAL9, + + e_QM_FQ_CHANNEL_POOL1 = 0x21, /**< Pool channels that can be serviced by any of the software portals */ + e_QM_FQ_CHANNEL_POOL2, + e_QM_FQ_CHANNEL_POOL3, + e_QM_FQ_CHANNEL_POOL4, + e_QM_FQ_CHANNEL_POOL5, + e_QM_FQ_CHANNEL_POOL6, + e_QM_FQ_CHANNEL_POOL7, + e_QM_FQ_CHANNEL_POOL8, + e_QM_FQ_CHANNEL_POOL9, + e_QM_FQ_CHANNEL_POOL10, + e_QM_FQ_CHANNEL_POOL11, + e_QM_FQ_CHANNEL_POOL12, + e_QM_FQ_CHANNEL_POOL13, + e_QM_FQ_CHANNEL_POOL14, + e_QM_FQ_CHANNEL_POOL15, + + e_QM_FQ_CHANNEL_FMAN0_SP0 = 0x40, /**< Dedicated channels serviced by Direct Connect Portal 0: + connected to FMan 0; assigned in incrementing order to + each sub-portal (SP) in the portal */ + e_QM_FQ_CHANNEL_FMAN0_SP1, + e_QM_FQ_CHANNEL_FMAN0_SP2, + e_QM_FQ_CHANNEL_FMAN0_SP3, + e_QM_FQ_CHANNEL_FMAN0_SP4, + e_QM_FQ_CHANNEL_FMAN0_SP5, + e_QM_FQ_CHANNEL_FMAN0_SP6, + e_QM_FQ_CHANNEL_FMAN0_SP7, + e_QM_FQ_CHANNEL_FMAN0_SP8, + e_QM_FQ_CHANNEL_FMAN0_SP9, + e_QM_FQ_CHANNEL_FMAN0_SP10, + e_QM_FQ_CHANNEL_FMAN0_SP11, + + e_QM_FQ_CHANNEL_FMAN1_SP0 = 0x60, + e_QM_FQ_CHANNEL_FMAN1_SP1, + e_QM_FQ_CHANNEL_FMAN1_SP2, + e_QM_FQ_CHANNEL_FMAN1_SP3, + e_QM_FQ_CHANNEL_FMAN1_SP4, + e_QM_FQ_CHANNEL_FMAN1_SP5, + e_QM_FQ_CHANNEL_FMAN1_SP6, + e_QM_FQ_CHANNEL_FMAN1_SP7, + e_QM_FQ_CHANNEL_FMAN1_SP8, + e_QM_FQ_CHANNEL_FMAN1_SP9, + e_QM_FQ_CHANNEL_FMAN1_SP10, + e_QM_FQ_CHANNEL_FMAN1_SP11, + + e_QM_FQ_CHANNEL_CAAM = 0x80, /**< Dedicated channel serviced by Direct Connect Portal 2: + connected to SEC 4.x */ + + e_QM_FQ_CHANNEL_PME = 0xA0, /**< Dedicated channel serviced by Direct Connect Portal 3: + connected to PME */ +} e_QmFQChannel; + +/* p4080-rev1 unique features */ +#define QM_CGS_NO_FRAME_MODE + +/***************************************************************************** + BMan INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +#define BM_MAX_NUM_OF_POOLS 64 + +/***************************************************************************** + SEC INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +/* SEC erratas */ +#ifdef UNDER_CONSTRUCTION_IPSEC +#define SEC_IPV6_UDP_CHECKSUM_UPDATE +#define SEC_UDP_LENGTH_UPDATE +#endif /* UNDER_CONSTRUCTION_IPSEC */ + +/***************************************************************************** + FM INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +#define INTG_MAX_NUM_OF_FM 2 + +/* Ports defines */ +#define FM_MAX_NUM_OF_1G_RX_PORTS 5 +#define FM_MAX_NUM_OF_10G_RX_PORTS 1 +#define FM_MAX_NUM_OF_RX_PORTS (FM_MAX_NUM_OF_10G_RX_PORTS+FM_MAX_NUM_OF_1G_RX_PORTS) +#define FM_MAX_NUM_OF_1G_TX_PORTS 5 +#define FM_MAX_NUM_OF_10G_TX_PORTS 1 +#define FM_MAX_NUM_OF_TX_PORTS (FM_MAX_NUM_OF_10G_TX_PORTS+FM_MAX_NUM_OF_1G_TX_PORTS) +#define FM_MAX_NUM_OF_OH_PORTS 7 +#define FM_MAX_NUM_OF_1G_MACS (FM_MAX_NUM_OF_1G_RX_PORTS) +#define FM_MAX_NUM_OF_10G_MACS (FM_MAX_NUM_OF_10G_RX_PORTS) +#define FM_MAX_NUM_OF_MACS (FM_MAX_NUM_OF_1G_MACS+FM_MAX_NUM_OF_10G_MACS) + + +#define FM_PORT_MAX_NUM_OF_EXT_POOLS 8 /**< Number of external BM pools per Rx port */ +#define FM_PORT_NUM_OF_CONGESTION_GRPS 256 /**< Total number of congestion groups in QM */ +#define FM_MAX_NUM_OF_SUB_PORTALS 12 +#define FM_PORT_MAX_NUM_OF_OBSERVED_EXT_POOLS 0 + +/* RAMs defines */ +#define FM_MURAM_SIZE (160 * KILOBYTE) +#define FM_IRAM_SIZE ( 64 * KILOBYTE) + +/* PCD defines */ +#define FM_PCD_PLCR_NUM_ENTRIES 256 /**< Total number of policer profiles */ +#define FM_PCD_KG_NUM_OF_SCHEMES 32 /**< Total number of KG schemes */ +#define FM_PCD_MAX_NUM_OF_CLS_PLANS 256 /**< Number of classification plan entries. */ + +/* RTC defines */ +#define FM_RTC_NUM_OF_ALARMS 2 /**< RTC number of alarms */ +#define FM_RTC_NUM_OF_PERIODIC_PULSES 2 /**< RTC number of periodic pulses */ +#define FM_RTC_NUM_OF_EXT_TRIGGERS 2 /**< RTC number of external triggers */ + +/* QMI defines */ +#define QMI_MAX_NUM_OF_TNUMS 64 +#define MAX_QMI_DEQ_SUBPORTAL 12 +#define QMI_DEF_TNUMS_THRESH 48 + +/* FPM defines */ +#define FM_NUM_OF_FMAN_CTRL_EVENT_REGS 4 + +/* DMA defines */ +#define DMA_THRESH_MAX_COMMQ 31 +#define DMA_THRESH_MAX_BUF 127 + +/* BMI defines */ +#define BMI_MAX_NUM_OF_TASKS 128 +#define BMI_MAX_NUM_OF_DMAS 32 +#define BMI_MAX_FIFO_SIZE (FM_MURAM_SIZE) +#define PORT_MAX_WEIGHT 16 + +#ifdef UNDER_CONSTRUCTION_FRAG_REASSEMBLY +/* Reassembly defines */ +#define FM_MAX_NUM_OF_REASSEMBLY_PORTS 4 +#endif /* UNDER_CONSTRUCTION_FRAG_REASSEMBLY */ + + +/**************************************************************************//** + @Description Enum for inter-module interrupts registration +*//***************************************************************************/ +typedef enum e_FmEventModules{ + e_FM_MOD_PRS, /**< Parser event */ + e_FM_MOD_KG, /**< Keygen event */ + e_FM_MOD_PLCR, /**< Policer event */ + e_FM_MOD_10G_MAC, /**< 10G MAC error event */ + e_FM_MOD_1G_MAC, /**< 1G MAC error event */ + e_FM_MOD_TMR, /**< Timer event */ + e_FM_MOD_1G_MAC_TMR, /**< 1G MAC timer event */ + e_FM_MOD_FMAN_CTRL, /**< FMAN Controller timer event */ + e_FM_MOD_DUMMY_LAST +} e_FmEventModules; + +/**************************************************************************//** + @Description Enum for interrupts types +*//***************************************************************************/ +typedef enum e_FmIntrType { + e_FM_INTR_TYPE_ERR, + e_FM_INTR_TYPE_NORMAL +} e_FmIntrType; + +/**************************************************************************//** + @Description Enum for inter-module interrupts registration +*//***************************************************************************/ +typedef enum e_FmInterModuleEvent { + e_FM_EV_PRS, /**< Parser event */ + e_FM_EV_ERR_PRS, /**< Parser error event */ + e_FM_EV_KG, /**< Keygen event */ + e_FM_EV_ERR_KG, /**< Keygen error event */ + e_FM_EV_PLCR, /**< Policer event */ + e_FM_EV_ERR_PLCR, /**< Policer error event */ + e_FM_EV_ERR_10G_MAC0, /**< 10G MAC 0 error event */ + e_FM_EV_ERR_1G_MAC0, /**< 1G MAC 0 error event */ + e_FM_EV_ERR_1G_MAC1, /**< 1G MAC 1 error event */ + e_FM_EV_ERR_1G_MAC2, /**< 1G MAC 2 error event */ + e_FM_EV_ERR_1G_MAC3, /**< 1G MAC 3 error event */ + e_FM_EV_ERR_1G_MAC4, /**< 1G MAC 4 error event */ + e_FM_EV_TMR, /**< Timer event */ + e_FM_EV_1G_MAC1, /**< 1G MAC 1 event */ + e_FM_EV_1G_MAC2, /**< 1G MAC 2 event */ + e_FM_EV_1G_MAC3, /**< 1G MAC 3 event */ + e_FM_EV_1G_MAC4, /**< 1G MAC 3 event */ + e_FM_EV_1G_MAC0_TMR, /**< 1G MAC 0 Timer event */ + e_FM_EV_1G_MAC1_TMR, /**< 1G MAC 1 Timer event */ + e_FM_EV_1G_MAC2_TMR, /**< 1G MAC 2 Timer event */ + e_FM_EV_1G_MAC3_TMR, /**< 1G MAC 3 Timer event */ + e_FM_EV_1G_MAC4_TMR, /**< 1G MAC 4 Timer event */ + e_FM_EV_FMAN_CTRL_0, /**< Fman controller event 0 */ + e_FM_EV_FMAN_CTRL_1, /**< Fman controller event 1 */ + e_FM_EV_FMAN_CTRL_2, /**< Fman controller event 2 */ + e_FM_EV_FMAN_CTRL_3, /**< Fman controller event 3 */ + e_FM_EV_DUMMY_LAST +} e_FmInterModuleEvent; + +#define GET_FM_MODULE_EVENT(mod, id, intrType, event) \ + switch(mod){ \ + case e_FM_MOD_PRS: \ + if (id) event = e_FM_EV_DUMMY_LAST; \ + else event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_ERR_PRS : e_FM_EV_PRS; \ + break; \ + case e_FM_MOD_KG: \ + if (id) event = e_FM_EV_DUMMY_LAST; \ + else event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_ERR_KG : e_FM_EV_DUMMY_LAST; \ + break; \ + case e_FM_MOD_PLCR: \ + if (id) event = e_FM_EV_DUMMY_LAST; \ + else event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_ERR_PLCR : e_FM_EV_PLCR; \ + break; \ + case e_FM_MOD_10G_MAC: \ + if (id) event = e_FM_EV_DUMMY_LAST; \ + else event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_ERR_10G_MAC0 : e_FM_EV_DUMMY_LAST;\ + break; \ + case e_FM_MOD_1G_MAC: \ + switch(id){ \ + case(0): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_ERR_1G_MAC0 : e_FM_EV_DUMMY_LAST; break; \ + case(1): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_ERR_1G_MAC1 : e_FM_EV_DUMMY_LAST; break; \ + case(2): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_ERR_1G_MAC2 : e_FM_EV_DUMMY_LAST; break; \ + case(3): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_ERR_1G_MAC3 : e_FM_EV_DUMMY_LAST; break; \ + case(4): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_ERR_1G_MAC4 : e_FM_EV_DUMMY_LAST; break; \ + } \ + break; \ + case e_FM_MOD_TMR: \ + if (id) event = e_FM_EV_DUMMY_LAST; \ + else event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_DUMMY_LAST : e_FM_EV_TMR; \ + break; \ + case e_FM_MOD_1G_MAC_TMR: \ + switch(id){ \ + case(0): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_DUMMY_LAST : e_FM_EV_1G_MAC0_TMR; break;\ + case(1): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_DUMMY_LAST : e_FM_EV_1G_MAC1_TMR; break;\ + case(2): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_DUMMY_LAST : e_FM_EV_1G_MAC2_TMR; break;\ + case(3): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_DUMMY_LAST : e_FM_EV_1G_MAC3_TMR; break;\ + case(4): event = (intrType == e_FM_INTR_TYPE_ERR) ? e_FM_EV_DUMMY_LAST : e_FM_EV_1G_MAC4_TMR; break;\ + } \ + break; \ + case e_FM_MOD_FMAN_CTRL: \ + if (intrType == e_FM_INTR_TYPE_ERR) event = e_FM_EV_DUMMY_LAST; \ + else switch(id){ \ + case(0): event = e_FM_EV_FMAN_CTRL_0; break; \ + case(1): event = e_FM_EV_FMAN_CTRL_1; break; \ + case(2): event = e_FM_EV_FMAN_CTRL_2; break; \ + case(3): event = e_FM_EV_FMAN_CTRL_3; break; \ + } \ + break; \ + default: event = e_FM_EV_DUMMY_LAST; \ + break;} + +#define FM_CHECK_PORT_RESTRICTIONS(__validPorts, __newPortIndx) TRUE + +/* p4080-rev1 unique features */ +#define FM_PARTITION_ARRAY +#define FM_PPPOE_NO_MTU_CHECK + +/* p4080 unique features */ +#ifdef UNDER_CONSTRUCTION_IPSEC +#define FM_ETH_TYPE_FIX +#define FM_DISABLE_SEC_ERRORS +#endif /* UNDER_CONSTRUCTION_IPSEC */ +#define FM_QMI_DEQ_OPTIONS_SUPPORT +#define FM_NO_DISPATCH_RAM_ECC +#define FM_FIFO_ALLOCATION_OLD_ALG +#define FM_NO_WATCHDOG +#define FM_NO_TNUM_AGING +#define FM_NO_TGEC_LOOPBACK +#define FM_KG_NO_BYPASS_FQID_GEN +#define FM_KG_NO_BYPASS_PLCR_PROFILE_GEN +#define FM_NO_BACKUP_POOLS +#define FM_NO_OP_OBSERVED_POOLS +#define FM_NO_ADVANCED_RATE_LIMITER +#define FM_NO_OP_OBSERVED_CGS + +/* FM erratas */ +#define FM_SINGLE_MDIO_ERRATA_GEN8 /* implemented in platform */ +#define FM_HALT_SIG_ERRATA_GEN12 + +#define FM_10G_MDIO_HOLD_ERRATA_XAUI3 /* implemented in platform */ +#define FM_10G_PCS_ALIGNMENT_ERRATA_XAUI4 /* implemented in platform */ + +#define FM_IEEE_BAD_TS_ERRATA_IEEE1588_A001 /* No implementation, Out of LLD scope */ + +#define FM_FALSE_RDRP_ERRATA_10GMAC_A001 /* No implementation, Out of LLD scope */ +#define FM_RX_EXTRA_BYTES_ERRATA_10GMAC_A002 /* No implementation, Out of LLD scope */ +#define FM_TX_PAUSE_ON_ENABLE_ERRATA_10GMAC_A003 /* No implementation, Out of LLD scope */ +#define FM_TX_ECC_FRMS_ERRATA_10GMAC_A004 +#define FM_TX_SHORT_FRAME_BAD_TS_ERRATA_10GMAC_A006 /* No implementation, Out of LLD scope */ +#define FM_TX_FIFO_CORRUPTION_ERRATA_10GMAC_A007 +#define FM_ECC_HALT_NO_SYNC_ERRATA_10GMAC_A008 + +#define FM_TX_INVALID_ECC_ERRATA_10GMAC_A009 + +#define FM_NO_RX_PREAM_ERRATA_DTSECx1 +#define FM_RX_PREAM_4_ERRATA_DTSEC_A001 FM_NO_RX_PREAM_ERRATA_DTSECx1 +#define FM_GRS_ERRATA_DTSEC_A002 +#define FM_BAD_TX_TS_IN_B_2_B_ERRATA_DTSEC_A003 +#define FM_GTS_ERRATA_DTSEC_A004 +#define FM_PAUSE_BLOCK_ERRATA_DTSEC_A006 /* do nothing */ +#define FM_RESERVED_ACCESS_TO_DISABLED_DEV_ERRATA_DTSEC_A0011 /* do nothing */ +#define FM_GTS_AFTER_MAC_ABORTED_FRAME_ERRATA_DTSEC_A0012 FM_GTS_ERRATA_DTSEC_A004 + +#define FM_SHORT_PAUSE_TIME_ERRATA_DTSEC1 +#define FM_MAGIC_PACKET_UNRECOGNIZED_ERRATA_DTSEC2 /* No implementation, Out of LLD scope */ +#define FM_10_100_SGMII_NO_TS_ERRATA_DTSEC3 +#define FM_TX_LOCKUP_ERRATA_DTSEC6 + +#define FM_IM_TX_SYNC_SKIP_TNUM_ERRATA_FMAN_A001 /* Implemented by ucode */ +#define FM_RX_PIPELINE_OF_DATA_CORRUPTION_ERRATA_FMAN_A002 /* No implementation, Out of LLD scope */ +#define FM_HC_DEF_FQID_ONLY_ERRATA_FMAN_A003 /* Implemented by ucode */ + +#define FM_1588_SRC_CLK_ERRATA_FMAN1 +#define FM_NO_RUNNING_SUM_FOR_DBG_N_SWPRS_ERRATA_FMAN2 /* No implementation, Out of LLD scope */ +#define FM_IM_TX_SHARED_TNUM_ERRATA_FMAN4 /* Implemented by ucode */ +#define FM_IM_GS_DEADLOCK_ERRATA_FMAN5 /* Implemented by ucode */ +#define FM_PORT_SYNC_ERRATA_FMAN6 +#define FM_RAM_LIST_ERR_IRQ_ERRATA_FMAN8 +#define FM_BMI_PIPELINE_ERR_IRQ_ERRATA_FMAN9 +#define FM_IM_DEQ_PIPELINE_DEPTH_ERRATA_FMAN10 /* Implemented by ucode */ +#define FM_CC_GEN6_MISSMATCH_ERRATA_FMAN12 /* Implemented by ucode */ +#define FM_CC_CHANGE_SHARED_TNUM_ERRATA_FMAN13 /* Implemented by ucode */ +#define FM_IM_LARGE_MRBLR_ERRATA_FMAN15 /* Implemented by ucode */ +#define FM_RESET_ERRATA_FMAN16 /* No implementation, Out of LLD scope */ +#define FM_IPV4_HDRLEN0_ERRATA_FMAN17 /* No implementation, Out of LLD scope */ +#define FM_INCORRECT_CS_ERRATA_FMAN18 +#define FM_ILLEGAL_FRM_LEN_ERRATA_FMAN20 /* No implementation, Out of LLD scope */ +#define FM_OP_PORT_QMAN_REJECT_ERRATA_FMAN21 + +#define FM_PRS_L4_SHELL_ERRATA_FMANb +#define FM_BMI_TO_RISC_ENQ_ERRATA_FMANc +#define FM_INVALID_SWPRS_DATA_ERRATA_FMANd /* No implementation, Out of LLD scope */ +//#define FM_PRS_L4_NO_CLEAR_ERRATA_FMANe /* No implementation, No patch yet */ +//#define FM_PRS_MPLS_ERROR_ERRATA_FMANf /* No implementation, No patch yet */ +#define FM_PORT_COUNTERS_ERRATA_FMANg +#define FM_BAD_RX_FD_ERRATA_FMANh /* No implementation, Out of LLD scope */ +//#define FM_PRS_MPLS_SSA_ERRATA_FMANj /* No implementation, No patch yet */ +//#define FM_PRS_INITIAL_PLANID_ERRATA_FMANk /* No implementation, No patch yet */ + + +#define FM_OP_PARTITION_ERRATA_FMANx8 +#define FM_PORT_DISABLED_ERRATA_FMANx9 +#define FM_TX_PORT_IM_OR_ERRATA_FMANx11 /* Implemented by ucode */ +#define FM_PORT_EXCESSIVE_BUDGET_ERRATA_FMANx16 +#define FM_PORT_OTF_CHANGES_ERRATA_FMANx12 FM_PORT_EXCESSIVE_BUDGET_ERRATA_FMANx16 +#define FM_SOFT_RESET_ERRATA_FMANx15 /* No implementation, Out of LLD scope */ + +#define FM_UCODE_NOT_RESET_ERRATA_BUGZILLA6173 + +#define FM_PRS_MEM_ERRATA_FMAN_SW003 +#define FM_LEN_CHECK_ERRATA_FMAN_SW002 +#define FM_10G_REM_N_LCL_FLT_EX_ERRATA_10GMAC001 + +#ifdef UNDER_CONSTRUCTION_IPSEC +#define FM_NO_COPY_CTXA_CTXB_ERRATA_FMAN_SW001 +#endif /* UNDER_CONSTRUCTION_IPSEC */ + + +#endif /* __DPAA_INTEGRATION_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/integrations/P3040_P4080_P5020/part_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/integrations/P3040_P4080_P5020/part_ext.h @@ -0,0 +1,83 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + + @File part_ext.h + + @Description Definitions for the part (integration) module. +*//***************************************************************************/ + +#ifndef __PART_EXT_H +#define __PART_EXT_H + +#include "std_ext.h" +#include "part_integration_ext.h" + + +#if !(defined(MPC8306) || \ + defined(MPC8309) || \ + defined(MPC834x) || \ + defined(MPC836x) || \ + defined(MPC832x) || \ + defined(MPC837x) || \ + defined(MPC8568) || \ + defined(MPC8569) || \ + defined(P1020) || \ + defined(P1021) || \ + defined(P1022) || \ + defined(P1023) || \ + defined(P2020) || \ + defined(P2040) || \ + defined(P3041) || \ + defined(P4080) || \ + defined(SC4080) || \ + defined(P5020) || \ + defined(MSC814x)) +#error "unable to proceed without chip-definition" +#endif /* !(defined(MPC834x) || ... */ + + +/**************************************************************************//* + @Description Part data structure - must be contained in any integration + data structure. +*//***************************************************************************/ +typedef struct t_Part +{ + uintptr_t (* f_GetModuleBase)(t_Handle h_Part, e_ModuleId moduleId); + /**< Returns the address of the module's memory map base. */ + e_ModuleId (* f_GetModuleIdByBase)(t_Handle h_Part, uintptr_t baseAddress); + /**< Returns the module's ID according to its memory map base. */ +} t_Part; + + +#endif /* __PART_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/integrations/P3040_P4080_P5020/part_integration_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/integrations/P3040_P4080_P5020/part_integration_ext.h @@ -0,0 +1,331 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + + @File part_integration_ext.h + + @Description P3040/P4080/P5020 external definitions and structures. +*//***************************************************************************/ +#ifndef __PART_INTEGRATION_EXT_H +#define __PART_INTEGRATION_EXT_H + +#include "std_ext.h" +#include "dpaa_integration_ext.h" + + +/**************************************************************************//** + @Group P3040/P4080/P5020_chip_id P5020 Application Programming Interface + + @Description P3040/P4080/P5020 Chip functions,definitions and enums. + + @{ +*//***************************************************************************/ + +#define CORE_E500MC + +#define INTG_MAX_NUM_OF_CORES 1 + + +/**************************************************************************//** + @Description Module types. +*//***************************************************************************/ +typedef enum e_ModuleId +{ + e_MODULE_ID_DUART_1 = 0, + e_MODULE_ID_DUART_2, + e_MODULE_ID_DUART_3, + e_MODULE_ID_DUART_4, + e_MODULE_ID_LAW, + e_MODULE_ID_LBC, + e_MODULE_ID_PAMU, + e_MODULE_ID_QM, /**< Queue manager module */ + e_MODULE_ID_BM, /**< Buffer manager module */ + e_MODULE_ID_QM_CE_PORTAL_0, + e_MODULE_ID_QM_CI_PORTAL_0, + e_MODULE_ID_QM_CE_PORTAL_1, + e_MODULE_ID_QM_CI_PORTAL_1, + e_MODULE_ID_QM_CE_PORTAL_2, + e_MODULE_ID_QM_CI_PORTAL_2, + e_MODULE_ID_QM_CE_PORTAL_3, + e_MODULE_ID_QM_CI_PORTAL_3, + e_MODULE_ID_QM_CE_PORTAL_4, + e_MODULE_ID_QM_CI_PORTAL_4, + e_MODULE_ID_QM_CE_PORTAL_5, + e_MODULE_ID_QM_CI_PORTAL_5, + e_MODULE_ID_QM_CE_PORTAL_6, + e_MODULE_ID_QM_CI_PORTAL_6, + e_MODULE_ID_QM_CE_PORTAL_7, + e_MODULE_ID_QM_CI_PORTAL_7, + e_MODULE_ID_QM_CE_PORTAL_8, + e_MODULE_ID_QM_CI_PORTAL_8, + e_MODULE_ID_QM_CE_PORTAL_9, + e_MODULE_ID_QM_CI_PORTAL_9, + e_MODULE_ID_BM_CE_PORTAL_0, + e_MODULE_ID_BM_CI_PORTAL_0, + e_MODULE_ID_BM_CE_PORTAL_1, + e_MODULE_ID_BM_CI_PORTAL_1, + e_MODULE_ID_BM_CE_PORTAL_2, + e_MODULE_ID_BM_CI_PORTAL_2, + e_MODULE_ID_BM_CE_PORTAL_3, + e_MODULE_ID_BM_CI_PORTAL_3, + e_MODULE_ID_BM_CE_PORTAL_4, + e_MODULE_ID_BM_CI_PORTAL_4, + e_MODULE_ID_BM_CE_PORTAL_5, + e_MODULE_ID_BM_CI_PORTAL_5, + e_MODULE_ID_BM_CE_PORTAL_6, + e_MODULE_ID_BM_CI_PORTAL_6, + e_MODULE_ID_BM_CE_PORTAL_7, + e_MODULE_ID_BM_CI_PORTAL_7, + e_MODULE_ID_BM_CE_PORTAL_8, + e_MODULE_ID_BM_CI_PORTAL_8, + e_MODULE_ID_BM_CE_PORTAL_9, + e_MODULE_ID_BM_CI_PORTAL_9, + e_MODULE_ID_FM1, /**< Frame manager #1 module */ + e_MODULE_ID_FM1_RTC, /**< FM Real-Time-Clock */ + e_MODULE_ID_FM1_MURAM, /**< FM Multi-User-RAM */ + e_MODULE_ID_FM1_BMI, /**< FM BMI block */ + e_MODULE_ID_FM1_QMI, /**< FM QMI block */ + e_MODULE_ID_FM1_PRS, /**< FM parser block */ + e_MODULE_ID_FM1_PORT_HO0, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM1_PORT_HO1, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM1_PORT_HO2, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM1_PORT_HO3, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM1_PORT_HO4, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM1_PORT_HO5, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM1_PORT_HO6, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM1_PORT_1GRx0, /**< FM Rx 1G MAC port block */ + e_MODULE_ID_FM1_PORT_1GRx1, /**< FM Rx 1G MAC port block */ + e_MODULE_ID_FM1_PORT_1GRx2, /**< FM Rx 1G MAC port block */ + e_MODULE_ID_FM1_PORT_1GRx3, /**< FM Rx 1G MAC port block */ + e_MODULE_ID_FM1_PORT_1GRx4, /**< FM Rx 1G MAC port block */ + e_MODULE_ID_FM1_PORT_10GRx0, /**< FM Rx 10G MAC port block */ + e_MODULE_ID_FM1_PORT_1GTx0, /**< FM Tx 1G MAC port block */ + e_MODULE_ID_FM1_PORT_1GTx1, /**< FM Tx 1G MAC port block */ + e_MODULE_ID_FM1_PORT_1GTx2, /**< FM Tx 1G MAC port block */ + e_MODULE_ID_FM1_PORT_1GTx3, /**< FM Tx 1G MAC port block */ + e_MODULE_ID_FM1_PORT_1GTx4, /**< FM Tx 1G MAC port block */ + e_MODULE_ID_FM1_PORT_10GTx0, /**< FM Tx 10G MAC port block */ + e_MODULE_ID_FM1_PLCR, /**< FM Policer */ + e_MODULE_ID_FM1_KG, /**< FM Keygen */ + e_MODULE_ID_FM1_DMA, /**< FM DMA */ + e_MODULE_ID_FM1_FPM, /**< FM FPM */ + e_MODULE_ID_FM1_IRAM, /**< FM Instruction-RAM */ + e_MODULE_ID_FM1_1GMDIO0, /**< FM 1G MDIO MAC 0*/ + e_MODULE_ID_FM1_1GMDIO1, /**< FM 1G MDIO MAC 1*/ + e_MODULE_ID_FM1_1GMDIO2, /**< FM 1G MDIO MAC 2*/ + e_MODULE_ID_FM1_1GMDIO3, /**< FM 1G MDIO MAC 3*/ + e_MODULE_ID_FM1_10GMDIO, /**< FM 10G MDIO */ + e_MODULE_ID_FM1_PRS_IRAM, /**< FM SW-parser Instruction-RAM */ + e_MODULE_ID_FM1_1GMAC0, /**< FM 1G MAC #0 */ + e_MODULE_ID_FM1_1GMAC1, /**< FM 1G MAC #1 */ + e_MODULE_ID_FM1_1GMAC2, /**< FM 1G MAC #2 */ + e_MODULE_ID_FM1_1GMAC3, /**< FM 1G MAC #3 */ + e_MODULE_ID_FM1_10GMAC0, /**< FM 10G MAC #0 */ + + e_MODULE_ID_FM2, /**< Frame manager #2 module */ + e_MODULE_ID_FM2_RTC, /**< FM Real-Time-Clock */ + e_MODULE_ID_FM2_MURAM, /**< FM Multi-User-RAM */ + e_MODULE_ID_FM2_BMI, /**< FM BMI block */ + e_MODULE_ID_FM2_QMI, /**< FM QMI block */ + e_MODULE_ID_FM2_PRS, /**< FM parser block */ + e_MODULE_ID_FM2_PORT_HO0, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM2_PORT_HO1, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM2_PORT_HO2, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM2_PORT_HO3, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM2_PORT_HO4, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM2_PORT_HO5, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM2_PORT_HO6, /**< FM Host-command/offline-parsing port block */ + e_MODULE_ID_FM2_PORT_1GRx0, /**< FM Rx 1G MAC port block */ + e_MODULE_ID_FM2_PORT_1GRx1, /**< FM Rx 1G MAC port block */ + e_MODULE_ID_FM2_PORT_1GRx2, /**< FM Rx 1G MAC port block */ + e_MODULE_ID_FM2_PORT_1GRx3, /**< FM Rx 1G MAC port block */ + e_MODULE_ID_FM2_PORT_10GRx0, /**< FM Rx 10G MAC port block */ + e_MODULE_ID_FM2_PORT_1GTx0, /**< FM Tx 1G MAC port block */ + e_MODULE_ID_FM2_PORT_1GTx1, /**< FM Tx 1G MAC port block */ + e_MODULE_ID_FM2_PORT_1GTx2, /**< FM Tx 1G MAC port block */ + e_MODULE_ID_FM2_PORT_1GTx3, /**< FM Tx 1G MAC port block */ + e_MODULE_ID_FM2_PORT_10GTx0, /**< FM Tx 10G MAC port block */ + e_MODULE_ID_FM2_PLCR, /**< FM Policer */ + e_MODULE_ID_FM2_KG, /**< FM Keygen */ + e_MODULE_ID_FM2_DMA, /**< FM DMA */ + e_MODULE_ID_FM2_FPM, /**< FM FPM */ + e_MODULE_ID_FM2_IRAM, /**< FM Instruction-RAM */ + e_MODULE_ID_FM2_1GMDIO0, /**< FM 1G MDIO MAC 0*/ + e_MODULE_ID_FM2_1GMDIO1, /**< FM 1G MDIO MAC 1*/ + e_MODULE_ID_FM2_1GMDIO2, /**< FM 1G MDIO MAC 2*/ + e_MODULE_ID_FM2_1GMDIO3, /**< FM 1G MDIO MAC 3*/ + e_MODULE_ID_FM2_10GMDIO, /**< FM 10G MDIO */ + e_MODULE_ID_FM2_PRS_IRAM, /**< FM SW-parser Instruction-RAM */ + e_MODULE_ID_FM2_1GMAC0, /**< FM 1G MAC #0 */ + e_MODULE_ID_FM2_1GMAC1, /**< FM 1G MAC #1 */ + e_MODULE_ID_FM2_1GMAC2, /**< FM 1G MAC #2 */ + e_MODULE_ID_FM2_1GMAC3, /**< FM 1G MAC #3 */ + e_MODULE_ID_FM2_10GMAC0, /**< FM 10G MAC #0 */ + + e_MODULE_ID_SEC_GEN, /**< SEC 4.0 General registers */ + e_MODULE_ID_SEC_QI, /**< SEC 4.0 QI registers */ + e_MODULE_ID_SEC_JQ0, /**< SEC 4.0 JQ-0 registers */ + e_MODULE_ID_SEC_JQ1, /**< SEC 4.0 JQ-1 registers */ + e_MODULE_ID_SEC_JQ2, /**< SEC 4.0 JQ-2 registers */ + e_MODULE_ID_SEC_JQ3, /**< SEC 4.0 JQ-3 registers */ + e_MODULE_ID_SEC_RTIC, /**< SEC 4.0 RTIC registers */ + e_MODULE_ID_SEC_DECO0_CCB0, /**< SEC 4.0 DECO-0/CCB-0 registers */ + e_MODULE_ID_SEC_DECO1_CCB1, /**< SEC 4.0 DECO-1/CCB-1 registers */ + e_MODULE_ID_SEC_DECO2_CCB2, /**< SEC 4.0 DECO-2/CCB-2 registers */ + e_MODULE_ID_SEC_DECO3_CCB3, /**< SEC 4.0 DECO-3/CCB-3 registers */ + e_MODULE_ID_SEC_DECO4_CCB4, /**< SEC 4.0 DECO-4/CCB-4 registers */ + + e_MODULE_ID_MPIC, /**< MPIC */ + e_MODULE_ID_GPIO, /**< GPIO */ + e_MODULE_ID_SERDES, /**< SERDES */ + e_MODULE_ID_CPC_1, /**< CoreNet-Platform-Cache 1 */ + e_MODULE_ID_CPC_2, /**< CoreNet-Platform-Cache 2 */ + + e_MODULE_ID_SRIO_PORTS, /**< RapidIO controller */ + e_MODULE_ID_SRIO_MU, /**< RapidIO messaging unit module */ + + e_MODULE_ID_DUMMY_LAST +} e_ModuleId; + +#define NUM_OF_MODULES e_MODULE_ID_DUMMY_LAST + + +/***************************************************************************** + INTEGRATION-SPECIFIC MODULE CODES +******************************************************************************/ +#define MODULE_UNKNOWN 0x00000000 +#define MODULE_MEM 0x00010000 +#define MODULE_MM 0x00020000 +#define MODULE_CORE 0x00030000 +#define MODULE_CHIP 0x00040000 +#define MODULE_PLTFRM 0x00050000 +#define MODULE_PM 0x00060000 +#define MODULE_MMU 0x00070000 +#define MODULE_PIC 0x00080000 +#define MODULE_CPC 0x00090000 +#define MODULE_DUART 0x000a0000 +#define MODULE_SERDES 0x000b0000 +#define MODULE_PIO 0x000c0000 +#define MODULE_QM 0x000d0000 +#define MODULE_BM 0x000e0000 +#define MODULE_SEC 0x000f0000 +#define MODULE_LAW 0x00100000 +#define MODULE_LBC 0x00110000 +#define MODULE_PAMU 0x00120000 +#define MODULE_FM 0x00130000 +#define MODULE_FM_MURAM 0x00140000 +#define MODULE_FM_PCD 0x00150000 +#define MODULE_FM_RTC 0x00160000 +#define MODULE_FM_MAC 0x00170000 +#define MODULE_FM_PORT 0x00180000 +#define MODULE_DPA 0x00190000 +#define MODULE_SRIO 0x00200000 +#define MODULE_DMA 0x00100000 + +/***************************************************************************** + PAMU INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +#define PAMU_NUM_OF_PARTITIONS 5 + +#define PAMU_PICS_AVICS_ERRATA_PAMU3 + +/***************************************************************************** + LAW INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +#define LAW_NUM_OF_WINDOWS 32 +#define LAW_MIN_WINDOW_SIZE 0x0000000000001000LL /**< 4KB */ +#define LAW_MAX_WINDOW_SIZE 0x0000002000000000LL /**< 64GB */ + + +/***************************************************************************** + LBC INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +/**************************************************************************//** + @Group lbc_exception_grp LBC Exception Unit + + @Description LBC Exception unit API functions, definitions and enums + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Anchor lbc_exbm + + @Collection LBC Errors Bit Mask + + These errors are reported through the exceptions callback.. + The values can be or'ed in any combination in the errors mask + parameter of the errors report structure. + + These errors can also be passed as a bit-mask to + LBC_EnableErrorChecking() or LBC_DisableErrorChecking(), + for enabling or disabling error checking. + @{ +*//***************************************************************************/ +#define LBC_ERR_BUS_MONITOR 0x80000000 /**< Bus monitor error */ +#define LBC_ERR_PARITY_ECC 0x20000000 /**< Parity error for GPCM/UPM */ +#define LBC_ERR_WRITE_PROTECT 0x04000000 /**< Write protection error */ +#define LBC_ERR_ATOMIC_WRITE 0x00800000 /**< Atomic write error */ +#define LBC_ERR_ATOMIC_READ 0x00400000 /**< Atomic read error */ +#define LBC_ERR_CHIP_SELECT 0x00080000 /**< Unrecognized chip select */ + +#define LBC_ERR_ALL (LBC_ERR_BUS_MONITOR | LBC_ERR_PARITY_ECC | \ + LBC_ERR_WRITE_PROTECT | LBC_ERR_ATOMIC_WRITE | \ + LBC_ERR_ATOMIC_READ | LBC_ERR_CHIP_SELECT) + /**< All possible errors */ +/* @} */ +/** @} */ /* end of lbc_exception_grp group */ + +#define LBC_INCORRECT_ERROR_REPORT_ERRATA + +#define LBC_NUM_OF_BANKS 8 +#define LBC_MAX_CS_SIZE 0x0000000100000000LL +#define LBC_ATOMIC_OPERATION_SUPPORT +#define LBC_PARITY_SUPPORT +#define LBC_ADDRESS_HOLD_TIME_CTRL +#define LBC_HIGH_CLK_DIVIDERS +#define LBC_FCM_AVAILABLE + +/***************************************************************************** + GPIO INTEGRATION-SPECIFIC DEFINITIONS +******************************************************************************/ +#define GPIO_NUM_OF_PORTS 1 /**< Number of ports in GPIO module; + Each port contains up to 32 i/O pins. */ + +#define GPIO_VALID_PIN_MASKS \ + { /* Port A */ 0xFFFFFFFF } + +#define GPIO_VALID_INTR_MASKS \ + { /* Port A */ 0xFFFFFFFF } + +#endif /* __PART_INTEGRATION_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/math_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/math_ext.h @@ -0,0 +1,98 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __MATH_EXT_H +#define __MATH_EXT_H + + +#if defined(NCSW_LINUX) && defined(__KERNEL__) +#include + +#elif defined(__MWERKS__) +#define LOW(x) ( sizeof(x)==8 ? *(1+(int32_t*)&x) : (*(int32_t*)&x)) +#define HIGH(x) (*(int32_t*)&x) +#define ULOW(x) ( sizeof(x)==8 ? *(1+(uint32_t*)&x) : (*(uint32_t*)&x)) +#define UHIGH(x) (*(uint32_t*)&x) + +static const double big = 1.0e300; + +/* Macro for checking if a number is a power of 2 */ +static __inline__ double ceil(double x) +{ + int32_t i0,i1,j0; /*- cc 020130 -*/ + uint32_t i,j; /*- cc 020130 -*/ + i0 = HIGH(x); + i1 = LOW(x); + j0 = ((i0>>20)&0x7ff)-0x3ff; + if(j0<20) { + if(j0<0) { /* raise inexact if x != 0 */ + if(big+x>0.0) {/* return 0*sign(x) if |x|<1 */ + if(i0<0) {i0=0x80000000;i1=0;} + else if((i0|i1)!=0) { i0=0x3ff00000;i1=0;} + } + } else { + i = (uint32_t)(0x000fffff)>>j0; + if(((i0&i)|i1)==0) return x; /* x is integral */ + if(big+x>0.0) { /* raise inexact flag */ + if(i0>0) i0 += (0x00100000)>>j0; + i0 &= (~i); i1=0; + } + } + } else if (j0>51) { + if(j0==0x400) return x+x; /* inf or NaN */ + else return x; /* x is integral */ + } else { + i = ((uint32_t)(0xffffffff))>>(j0-20); /*- cc 020130 -*/ + if((i1&i)==0) return x; /* x is integral */ + if(big+x>0.0) { /* raise inexact flag */ + if(i0>0) { + if(j0==20) i0+=1; + else { + j = (uint32_t)(i1 + (1<<(52-j0))); + if(j +#endif /* defined(NCSW_LINUX) && defined(__KERNEL__) */ + + +#endif /* __MATH_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/ncsw_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/ncsw_ext.h @@ -0,0 +1,430 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + /**************************************************************************//** + @File ncsw_ext.h + + @Description General NetCommSw Standard Definitions +*//***************************************************************************/ + +#ifndef __NCSW_EXT_H +#define __NCSW_EXT_H + +#include "memcpy_ext.h" + + +#define WRITE_BLOCK IOMemSet32 +#define COPY_BLOCK Mem2IOCpy32 + +#define PTR_TO_UINT(_ptr) ((uintptr_t)(_ptr)) +#define UINT_TO_PTR(_val) ((void*)(uintptr_t)(_val)) + +#define PTR_MOVE(_ptr, _offset) (void*)((uint8_t*)(_ptr) + (_offset)) + + +#define WRITE_UINT8_UINT24(arg, data08, data24) WRITE_UINT32(arg,((uint32_t)(data08)<<24)|((uint32_t)(data24)&0x00FFFFFF)) +#define WRITE_UINT24_UINT8(arg, data24, data08) WRITE_UINT32(arg,((uint32_t)(data24)<< 8)|((uint32_t)(data08)&0x000000FF)) + +/* Little-Endian access macros */ + +#define WRITE_UINT16_LE(arg, data) \ + WRITE_UINT16((arg), SwapUint16(data)) + +#define WRITE_UINT32_LE(arg, data) \ + WRITE_UINT32((arg), SwapUint32(data)) + +#define WRITE_UINT64_LE(arg, data) \ + WRITE_UINT64((arg), SwapUint64(data)) + +#define GET_UINT16_LE(arg) \ + SwapUint16(GET_UINT16(arg)) + +#define GET_UINT32_LE(arg) \ + SwapUint32(GET_UINT32(arg)) + +#define GET_UINT64_LE(arg) \ + SwapUint64(GET_UINT64(arg)) + +/* Write and Read again macros */ +#define WRITE_UINT_SYNC(size, arg, data) \ + do { \ + WRITE_UINT##size((arg), (data)); \ + CORE_MemoryBarrier(); \ + } while (0) + +#define WRITE_UINT8_SYNC(arg, data) WRITE_UINT_SYNC(8, (arg), (data)) + +#define WRITE_UINT16_SYNC(arg, data) WRITE_UINT_SYNC(16, (arg), (data)) +#define WRITE_UINT32_SYNC(arg, data) WRITE_UINT_SYNC(32, (arg), (data)) + +#define MAKE_UINT64(high32, low32) (((uint64_t)high32 << 32) | (low32)) + + +/*----------------------*/ +/* Miscellaneous macros */ +/*----------------------*/ + +#define UNUSED(X) (X=X) + +#define KILOBYTE 0x400UL /* 1024 */ +#define MEGABYTE (KILOBYTE * KILOBYTE) /* 1024*1024 */ +#define GIGABYTE (KILOBYTE * MEGABYTE) /* 1024*1024*1024 */ + +#undef NO_IRQ +#define NO_IRQ (-1) +#define NCSW_MASTER_ID (0) + +/* Macro for checking if a number is a power of 2 */ +#define POWER_OF_2(n) (!((n) & ((n)-1))) + +/* Macro for calculating log of base 2 */ +#define LOG2(num, log2Num) \ + do \ + { \ + uint64_t tmp = (num); \ + log2Num = 0; \ + while (tmp > 1) \ + { \ + log2Num++; \ + tmp >>= 1; \ + } \ + } while (0) + +#define NEXT_POWER_OF_2(_num, _nextPow) \ +do \ +{ \ + if (POWER_OF_2(_num)) \ + _nextPow = (_num); \ + else \ + { \ + uint64_t tmp = (_num); \ + _nextPow = 1; \ + while (tmp) \ + { \ + _nextPow <<= 1; \ + tmp >>= 1; \ + } \ + } \ +} while (0) + +/* Ceiling division - not the fastest way, but safer in terms of overflow */ +#define DIV_CEIL(x,y) (((x)/(y)) + ((((((x)/(y)))*(y)) == (x)) ? 0 : 1)) + +/* Round up a number to be a multiple of a second number */ +#define ROUND_UP(x,y) ((((x) + (y) - 1) / (y)) * (y)) + +/* Timing macro for converting usec units to number of ticks. */ +/* (number of usec * clock_Hz) / 1,000,000) - since */ +/* clk is in MHz units, no division needed. */ +#define USEC_TO_CLK(usec,clk) ((usec) * (clk)) +#define CYCLES_TO_USEC(cycles,clk) ((cycles) / (clk)) + +/* Timing macros for converting between nsec units and number of clocks. */ +#define NSEC_TO_CLK(nsec,clk) DIV_CEIL(((nsec) * (clk)), 1000) +#define CYCLES_TO_NSEC(cycles,clk) (((cycles) * 1000) / (clk)) + +/* Timing macros for converting between psec units and number of clocks. */ +#define PSEC_TO_CLK(psec,clk) DIV_CEIL(((psec) * (clk)), 1000000) +#define CYCLES_TO_PSEC(cycles,clk) (((cycles) * 1000000) / (clk)) + +/* Min, Max macros */ +#define MIN(a,b) ((a) < (b) ? (a) : (b)) +#define MAX(a,b) ((a) > (b) ? (a) : (b)) +#define IN_RANGE(min,val,max) ((min)<=(val) && (val)<=(max)) + +#define ABS(a) ((a<0)?(a*-1):a) + +#if !(defined(ARRAY_SIZE)) +#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) +#endif /* !defined(ARRAY_SIZE) */ + + +/* possible alignments */ +#define HALF_WORD_ALIGNMENT 2 +#define WORD_ALIGNMENT 4 +#define DOUBLE_WORD_ALIGNMENT 8 +#define BURST_ALIGNMENT 32 + +#define HALF_WORD_ALIGNED 0x00000001 +#define WORD_ALIGNED 0x00000003 +#define DOUBLE_WORD_ALIGNED 0x00000007 +#define BURST_ALIGNED 0x0000001f +#ifndef IS_ALIGNED +#define IS_ALIGNED(n,align) (!((uint32_t)(n) & (align - 1))) +#endif /* IS_ALIGNED */ + + +#define LAST_BUF 1 +#define FIRST_BUF 2 +#define SINGLE_BUF (LAST_BUF | FIRST_BUF) +#define MIDDLE_BUF 4 + +#define ARRAY_END -1 + +#define ILLEGAL_BASE (~0) + +#define BUF_POSITION(first, last) state[(!!(last))<<1 | !!(first)] +#define DECLARE_POSITION static uint8_t state[4] = { (uint8_t)MIDDLE_BUF, (uint8_t)FIRST_BUF, (uint8_t)LAST_BUF, (uint8_t)SINGLE_BUF }; + + +/**************************************************************************//** + @Description Timers operation mode +*//***************************************************************************/ +typedef enum e_TimerMode +{ + e_TIMER_MODE_INVALID = 0, + e_TIMER_MODE_FREE_RUN, /**< Free run - counter continues to increase + after reaching the reference value. */ + e_TIMER_MODE_PERIODIC, /**< Periodic - counter restarts counting from 0 + after reaching the reference value. */ + e_TIMER_MODE_SINGLE /**< Single (one-shot) - counter stops counting + after reaching the reference value. */ +} e_TimerMode; + + +/**************************************************************************//** + @Description Enumeration (bit flags) of communication modes (Transmit, + receive or both). +*//***************************************************************************/ +typedef enum e_CommMode +{ + e_COMM_MODE_NONE = 0, /**< No transmit/receive communication */ + e_COMM_MODE_RX = 1, /**< Only receive communication */ + e_COMM_MODE_TX = 2, /**< Only transmit communication */ + e_COMM_MODE_RX_AND_TX = 3 /**< Both transmit and receive communication */ +} e_CommMode; + +/**************************************************************************//** + @Description General Diagnostic Mode +*//***************************************************************************/ +typedef enum e_DiagMode +{ + e_DIAG_MODE_NONE = 0, /**< Normal operation; no diagnostic mode */ + e_DIAG_MODE_CTRL_LOOPBACK, /**< Loopback in the controller */ + e_DIAG_MODE_CHIP_LOOPBACK, /**< Loopback in the chip but not in the + controller; e.g. IO-pins, SerDes, etc. */ + e_DIAG_MODE_PHY_LOOPBACK, /**< Loopback in the external PHY */ + e_DIAG_MODE_EXT_LOOPBACK, /**< Loopback in the external line (beyond the PHY) */ + e_DIAG_MODE_CTRL_ECHO, /**< Echo incoming data by the controller */ + e_DIAG_MODE_PHY_ECHO /**< Echo incoming data by the PHY */ +} e_DiagMode; + +/**************************************************************************//** + @Description Possible RxStore callback responses. +*//***************************************************************************/ +typedef enum e_RxStoreResponse +{ + e_RX_STORE_RESPONSE_PAUSE /**< Pause invoking callback with received data; + in polling mode, start again invoking callback + only next time user invokes the receive routine; + in interrupt mode, start again invoking callback + only next time a receive event triggers an interrupt; + in all cases, received data that are pending are not + lost, rather, their processing is temporarily deferred; + in all cases, received data are processed in the order + in which they were received. */ + , e_RX_STORE_RESPONSE_CONTINUE /**< Continue invoking callback with received data. */ +} e_RxStoreResponse; + + +/**************************************************************************//** + @Description General Handle +*//***************************************************************************/ +typedef void * t_Handle; /**< handle, used as object's descriptor */ + +/**************************************************************************//** + @Description MUTEX type +*//***************************************************************************/ +typedef uint32_t t_Mutex; + +/**************************************************************************//** + @Description Error Code. + + The high word of the error code is the code of the software + module (driver). The low word is the error type (e_ErrorType). + To get the values from the error code, use GET_ERROR_TYPE() + and GET_ERROR_MODULE(). +*//***************************************************************************/ +typedef uint32_t t_Error; + +/**************************************************************************//** + @Description General prototype of interrupt service routine (ISR). + + @Param[in] handle - Optional handle of the module handling the interrupt. + + @Return None + *//***************************************************************************/ +typedef void (t_Isr)(t_Handle handle); + +/**************************************************************************//** + @Anchor mem_attr + + @Collection Memory Attributes + + Various attributes of memory partitions. These values may be + or'ed together to create a mask of all memory attributes. + @{ +*//***************************************************************************/ +#define MEMORY_ATTR_CACHEABLE 0x00000001 + /**< Memory is cacheable */ +#define MEMORY_ATTR_QE_2ND_BUS_ACCESS 0x00000002 + /**< Memory can be accessed by QUICC Engine + through its secondary bus interface */ + +/* @} */ + + +/**************************************************************************//** + @Function t_GetBufFunction + + @Description User callback function called by driver to get data buffer. + + User provides this function. Driver invokes it. + + @Param[in] h_BufferPool - A handle to buffer pool manager + @Param[out] p_BufContextHandle - Returns the user's private context that + should be associated with the buffer + + @Return Pointer to data buffer, NULL if error + *//***************************************************************************/ +typedef uint8_t * (t_GetBufFunction)(t_Handle h_BufferPool, + t_Handle *p_BufContextHandle); + +/**************************************************************************//** + @Function t_PutBufFunction + + @Description User callback function called by driver to return data buffer. + + User provides this function. Driver invokes it. + + @Param[in] h_BufferPool - A handle to buffer pool manager + @Param[in] p_Buffer - A pointer to buffer to return + @Param[in] h_BufContext - The user's private context associated with + the returned buffer + + @Return E_OK on success; Error code otherwise + *//***************************************************************************/ +typedef t_Error (t_PutBufFunction)(t_Handle h_BufferPool, + uint8_t *p_Buffer, + t_Handle h_BufContext); + +/**************************************************************************//** + @Function t_PhysToVirt + + @Description Translates a physical address to the matching virtual address. + + @Param[in] addr - The physical address to translate. + + @Return Virtual address. +*//***************************************************************************/ +typedef void * t_PhysToVirt(physAddress_t addr); + +/**************************************************************************//** + @Function t_VirtToPhys + + @Description Translates a virtual address to the matching physical address. + + @Param[in] addr - The virtual address to translate. + + @Return Physical address. +*//***************************************************************************/ +typedef physAddress_t t_VirtToPhys(void *addr); + +/**************************************************************************//** + @Description Buffer Pool Information Structure. +*//***************************************************************************/ +typedef struct t_BufferPoolInfo +{ + t_Handle h_BufferPool; /**< A handle to the buffer pool manager */ + t_GetBufFunction *f_GetBuf; /**< User callback to get a free buffer */ + t_PutBufFunction *f_PutBuf; /**< User callback to return a buffer */ + uint16_t bufferSize; /**< Buffer size (in bytes) */ + + t_PhysToVirt *f_PhysToVirt; /**< User callback to translate pool buffers + physical addresses to virtual addresses */ + t_VirtToPhys *f_VirtToPhys; /**< User callback to translate pool buffers + virtual addresses to physical addresses */ +} t_BufferPoolInfo; + + +/**************************************************************************//** + @Description User callback function called by driver when transmit completed. + + User provides this function. Driver invokes it. + + @Param[in] h_App - Application's handle, as was provided to the + driver by the user + @Param[in] queueId - Transmit queue ID + @Param[in] p_Data - Pointer to the data buffer + @Param[in] h_BufContext - The user's private context associated with + the given data buffer + @Param[in] status - Transmit status and errors + @Param[in] flags - Driver-dependent information + *//***************************************************************************/ +typedef void (t_TxConfFunction)(t_Handle h_App, + uint32_t queueId, + uint8_t *p_Data, + t_Handle h_BufContext, + uint16_t status, + uint32_t flags); + +/**************************************************************************//** + @Description User callback function called by driver with receive data. + + User provides this function. Driver invokes it. + + @Param[in] h_App - Application's handle, as was provided to the + driver by the user + @Param[in] queueId - Receive queue ID + @Param[in] p_Data - Pointer to the buffer with received data + @Param[in] h_BufContext - The user's private context associated with + the given data buffer + @Param[in] length - Length of received data + @Param[in] status - Receive status and errors + @Param[in] position - Position of buffer in frame + @Param[in] flags - Driver-dependent information + + @Retval e_RX_STORE_RESPONSE_CONTINUE - order the driver to continue Rx + operation for all ready data. + @Retval e_RX_STORE_RESPONSE_PAUSE - order the driver to stop Rx operation. + *//***************************************************************************/ +typedef e_RxStoreResponse (t_RxStoreFunction)(t_Handle h_App, + uint32_t queueId, + uint8_t *p_Data, + t_Handle h_BufContext, + uint32_t length, + uint16_t status, + uint8_t position, + uint32_t flags); + + +#endif /* __NCSW_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/net_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/net_ext.h @@ -0,0 +1,388 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + @File net_ext.h + + @Description This file contains common and general netcomm headers definitions. +*//***************************************************************************/ +#ifndef __NET_EXT_H +#define __NET_EXT_H + +#include "std_ext.h" + + +typedef uint8_t headerFieldPpp_t; + +#define NET_HEADER_FIELD_PPP_PID (1) +#define NET_HEADER_FIELD_PPP_COMPRESSED (NET_HEADER_FIELD_PPP_PID << 1) +#define NET_HEADER_FIELD_PPP_ALL_FIELDS ((NET_HEADER_FIELD_PPP_PID << 2) - 1) + + +typedef uint8_t headerFieldPppoe_t; + +#define NET_HEADER_FIELD_PPPoE_VER (1) +#define NET_HEADER_FIELD_PPPoE_TYPE (NET_HEADER_FIELD_PPPoE_VER << 1) +#define NET_HEADER_FIELD_PPPoE_CODE (NET_HEADER_FIELD_PPPoE_VER << 2) +#define NET_HEADER_FIELD_PPPoE_SID (NET_HEADER_FIELD_PPPoE_VER << 3) +#define NET_HEADER_FIELD_PPPoE_LEN (NET_HEADER_FIELD_PPPoE_VER << 4) +#define NET_HEADER_FIELD_PPPoE_SESSION (NET_HEADER_FIELD_PPPoE_VER << 5) +#define NET_HEADER_FIELD_PPPoE_PID (NET_HEADER_FIELD_PPPoE_VER << 6) +#define NET_HEADER_FIELD_PPPoE_ALL_FIELDS ((NET_HEADER_FIELD_PPPoE_VER << 7) - 1) + +#define NET_HEADER_FIELD_PPPMUX_PID (1) +#define NET_HEADER_FIELD_PPPMUX_CKSUM (NET_HEADER_FIELD_PPPMUX_PID << 1) +#define NET_HEADER_FIELD_PPPMUX_COMPRESSED (NET_HEADER_FIELD_PPPMUX_PID << 2) +#define NET_HEADER_FIELD_PPPMUX_ALL_FIELDS ((NET_HEADER_FIELD_PPPMUX_PID << 3) - 1) + +#define NET_HEADER_FIELD_PPPMUX_SUBFRAME_PFF (1) +#define NET_HEADER_FIELD_PPPMUX_SUBFRAME_LXT (NET_HEADER_FIELD_PPPMUX_SUBFRAME_PFF << 1) +#define NET_HEADER_FIELD_PPPMUX_SUBFRAME_LEN (NET_HEADER_FIELD_PPPMUX_SUBFRAME_PFF << 2) +#define NET_HEADER_FIELD_PPPMUX_SUBFRAME_PID (NET_HEADER_FIELD_PPPMUX_SUBFRAME_PFF << 3) +#define NET_HEADER_FIELD_PPPMUX_SUBFRAME_USE_PID (NET_HEADER_FIELD_PPPMUX_SUBFRAME_PFF << 4) +#define NET_HEADER_FIELD_PPPMUX_SUBFRAME_ALL_FIELDS ((NET_HEADER_FIELD_PPPMUX_SUBFRAME_PFF << 5) - 1) + + +typedef uint8_t headerFieldEth_t; + +#define NET_HEADER_FIELD_ETH_DA (1) +#define NET_HEADER_FIELD_ETH_SA (NET_HEADER_FIELD_ETH_DA << 1) +#define NET_HEADER_FIELD_ETH_LENGTH (NET_HEADER_FIELD_ETH_DA << 2) +#define NET_HEADER_FIELD_ETH_TYPE (NET_HEADER_FIELD_ETH_DA << 3) +#define NET_HEADER_FIELD_ETH_FINAL_CKSUM (NET_HEADER_FIELD_ETH_DA << 4) +#define NET_HEADER_FIELD_ETH_PADDING (NET_HEADER_FIELD_ETH_DA << 5) +#define NET_HEADER_FIELD_ETH_ALL_FIELDS ((NET_HEADER_FIELD_ETH_DA << 6) - 1) + + +typedef uint16_t headerFieldIpv4_t; + +#define NET_HEADER_FIELD_IPv4_VER (1) +#define NET_HEADER_FIELD_IPv4_HDR_LEN (NET_HEADER_FIELD_IPv4_VER << 1) +#define NET_HEADER_FIELD_IPv4_TOS (NET_HEADER_FIELD_IPv4_VER << 2) +#define NET_HEADER_FIELD_IPv4_TOTAL_LEN (NET_HEADER_FIELD_IPv4_VER << 3) +#define NET_HEADER_FIELD_IPv4_ID (NET_HEADER_FIELD_IPv4_VER << 4) +#define NET_HEADER_FIELD_IPv4_FLAG_D (NET_HEADER_FIELD_IPv4_VER << 5) +#define NET_HEADER_FIELD_IPv4_FLAG_M (NET_HEADER_FIELD_IPv4_VER << 6) +#define NET_HEADER_FIELD_IPv4_OFFSET (NET_HEADER_FIELD_IPv4_VER << 7) +#define NET_HEADER_FIELD_IPv4_TTL (NET_HEADER_FIELD_IPv4_VER << 8) +#define NET_HEADER_FIELD_IPv4_PROTO (NET_HEADER_FIELD_IPv4_VER << 9) +#define NET_HEADER_FIELD_IPv4_CKSUM (NET_HEADER_FIELD_IPv4_VER << 10) +#define NET_HEADER_FIELD_IPv4_SRC_IP (NET_HEADER_FIELD_IPv4_VER << 11) +#define NET_HEADER_FIELD_IPv4_DST_IP (NET_HEADER_FIELD_IPv4_VER << 12) +#define NET_HEADER_FIELD_IPv4_OPTS (NET_HEADER_FIELD_IPv4_VER << 13) +#define NET_HEADER_FIELD_IPv4_OPTS_COUNT (NET_HEADER_FIELD_IPv4_VER << 14) +#define NET_HEADER_FIELD_IPv4_ALL_FIELDS ((NET_HEADER_FIELD_IPv4_VER << 15) - 1) + + +typedef uint8_t headerFieldIpv6_t; + +#define NET_HEADER_FIELD_IPv6_VER (1) +#define NET_HEADER_FIELD_IPv6_TC (NET_HEADER_FIELD_IPv6_VER << 1) +#define NET_HEADER_FIELD_IPv6_SRC_IP (NET_HEADER_FIELD_IPv6_VER << 2) +#define NET_HEADER_FIELD_IPv6_DST_IP (NET_HEADER_FIELD_IPv6_VER << 3) +#define NET_HEADER_FIELD_IPv6_NEXT_HDR (NET_HEADER_FIELD_IPv6_VER << 4) +#define NET_HEADER_FIELD_IPv6_FL (NET_HEADER_FIELD_IPv6_VER << 5) +#define NET_HEADER_FIELD_IPv6_HOP_LIMIT (NET_HEADER_FIELD_IPv6_VER << 6) +#define NET_HEADER_FIELD_IPv6_ALL_FIELDS ((NET_HEADER_FIELD_IPv6_VER << 7) - 1) + +#define NET_HEADER_FIELD_ICMP_TYPE (1) +#define NET_HEADER_FIELD_ICMP_CODE (NET_HEADER_FIELD_ICMP_TYPE << 1) +#define NET_HEADER_FIELD_ICMP_CKSUM (NET_HEADER_FIELD_ICMP_TYPE << 2) +#define NET_HEADER_FIELD_ICMP_ID (NET_HEADER_FIELD_ICMP_TYPE << 3) +#define NET_HEADER_FIELD_ICMP_SQ_NUM (NET_HEADER_FIELD_ICMP_TYPE << 4) +#define NET_HEADER_FIELD_ICMP_ALL_FIELDS ((NET_HEADER_FIELD_ICMP_TYPE << 5) - 1) + +#define NET_HEADER_FIELD_IGMP_VERSION (1) +#define NET_HEADER_FIELD_IGMP_TYPE (NET_HEADER_FIELD_IGMP_VERSION << 1) +#define NET_HEADER_FIELD_IGMP_CKSUM (NET_HEADER_FIELD_IGMP_VERSION << 2) +#define NET_HEADER_FIELD_IGMP_DATA (NET_HEADER_FIELD_IGMP_VERSION << 3) +#define NET_HEADER_FIELD_IGMP_ALL_FIELDS ((NET_HEADER_FIELD_IGMP_VERSION << 4) - 1) + + +typedef uint16_t headerFieldTcp_t; + +#define NET_HEADER_FIELD_TCP_PORT_SRC (1) +#define NET_HEADER_FIELD_TCP_PORT_DST (NET_HEADER_FIELD_TCP_PORT_SRC << 1) +#define NET_HEADER_FIELD_TCP_SEQ (NET_HEADER_FIELD_TCP_PORT_SRC << 2) +#define NET_HEADER_FIELD_TCP_ACK (NET_HEADER_FIELD_TCP_PORT_SRC << 3) +#define NET_HEADER_FIELD_TCP_OFFSET (NET_HEADER_FIELD_TCP_PORT_SRC << 4) +#define NET_HEADER_FIELD_TCP_FLAGS (NET_HEADER_FIELD_TCP_PORT_SRC << 5) +#define NET_HEADER_FIELD_TCP_WINDOW (NET_HEADER_FIELD_TCP_PORT_SRC << 6) +#define NET_HEADER_FIELD_TCP_CKSUM (NET_HEADER_FIELD_TCP_PORT_SRC << 7) +#define NET_HEADER_FIELD_TCP_URGPTR (NET_HEADER_FIELD_TCP_PORT_SRC << 8) +#define NET_HEADER_FIELD_TCP_OPTS (NET_HEADER_FIELD_TCP_PORT_SRC << 9) +#define NET_HEADER_FIELD_TCP_OPTS_COUNT (NET_HEADER_FIELD_TCP_PORT_SRC << 10) +#define NET_HEADER_FIELD_TCP_ALL_FIELDS ((NET_HEADER_FIELD_TCP_PORT_SRC << 11) - 1) + + +typedef uint8_t headerFieldSctp_t; + +#define NET_HEADER_FIELD_SCTP_PORT_SRC (1) +#define NET_HEADER_FIELD_SCTP_PORT_DST (NET_HEADER_FIELD_SCTP_PORT_SRC << 1) +#define NET_HEADER_FIELD_SCTP_VER_TAG (NET_HEADER_FIELD_SCTP_PORT_SRC << 2) +#define NET_HEADER_FIELD_SCTP_CKSUM (NET_HEADER_FIELD_SCTP_PORT_SRC << 3) +#define NET_HEADER_FIELD_SCTP_ALL_FIELDS ((NET_HEADER_FIELD_SCTP_PORT_SRC << 4) - 1) + + +typedef uint8_t headerFieldDccp_t; + +#define NET_HEADER_FIELD_DCCP_PORT_SRC (1) +#define NET_HEADER_FIELD_DCCP_PORT_DST (NET_HEADER_FIELD_DCCP_PORT_SRC << 1) +#define NET_HEADER_FIELD_DCCP_ALL_FIELDS ((NET_HEADER_FIELD_DCCP_PORT_SRC << 2) - 1) + + +typedef uint8_t headerFieldUdp_t; + +#define NET_HEADER_FIELD_UDP_PORT_SRC (1) +#define NET_HEADER_FIELD_UDP_PORT_DST (NET_HEADER_FIELD_UDP_PORT_SRC << 1) +#define NET_HEADER_FIELD_UDP_LEN (NET_HEADER_FIELD_UDP_PORT_SRC << 2) +#define NET_HEADER_FIELD_UDP_CKSUM (NET_HEADER_FIELD_UDP_PORT_SRC << 3) +#define NET_HEADER_FIELD_UDP_ALL_FIELDS ((NET_HEADER_FIELD_UDP_PORT_SRC << 4) - 1) + +typedef uint8_t headerFieldUdpEncapEsp_t; + +#define NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_SRC (1) +#define NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_DST (NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_SRC << 1) +#define NET_HEADER_FIELD_UDP_ENCAP_ESP_LEN (NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_SRC << 2) +#define NET_HEADER_FIELD_UDP_ENCAP_ESP_CKSUM (NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_SRC << 3) +#define NET_HEADER_FIELD_UDP_ENCAP_ESP_SPI (NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_SRC << 4) +#define NET_HEADER_FIELD_UDP_ENCAP_ESP_SEQUENCE_NUM (NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_SRC << 5) +#define NET_HEADER_FIELD_UDP_ENCAP_ESP_ALL_FIELDS ((NET_HEADER_FIELD_UDP_ENCAP_ESP_PORT_SRC << 6) - 1) + +#define NET_HEADER_FIELD_IPHC_CID (1) +#define NET_HEADER_FIELD_IPHC_CID_TYPE (NET_HEADER_FIELD_IPHC_CID << 1) +#define NET_HEADER_FIELD_IPHC_HCINDEX (NET_HEADER_FIELD_IPHC_CID << 2) +#define NET_HEADER_FIELD_IPHC_GEN (NET_HEADER_FIELD_IPHC_CID << 3) +#define NET_HEADER_FIELD_IPHC_D_BIT (NET_HEADER_FIELD_IPHC_CID << 4) +#define NET_HEADER_FIELD_IPHC_ALL_FIELDS ((NET_HEADER_FIELD_IPHC_CID << 5) - 1) + +#define NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE (1) +#define NET_HEADER_FIELD_SCTP_CHUNK_DATA_FLAGS (NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 1) +#define NET_HEADER_FIELD_SCTP_CHUNK_DATA_LENGTH (NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 2) +#define NET_HEADER_FIELD_SCTP_CHUNK_DATA_TSN (NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 3) +#define NET_HEADER_FIELD_SCTP_CHUNK_DATA_STREAM_ID (NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 4) +#define NET_HEADER_FIELD_SCTP_CHUNK_DATA_STREAM_SQN (NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 5) +#define NET_HEADER_FIELD_SCTP_CHUNK_DATA_PAYLOAD_PID (NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 6) +#define NET_HEADER_FIELD_SCTP_CHUNK_DATA_UNORDERED (NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 7) +#define NET_HEADER_FIELD_SCTP_CHUNK_DATA_BEGGINING (NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 8) +#define NET_HEADER_FIELD_SCTP_CHUNK_DATA_END (NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 9) +#define NET_HEADER_FIELD_SCTP_CHUNK_DATA_ALL_FIELDS ((NET_HEADER_FIELD_SCTP_CHUNK_DATA_TYPE << 10) - 1) + +#define NET_HEADER_FIELD_L2TPv2_TYPE_BIT (1) +#define NET_HEADER_FIELD_L2TPv2_LENGTH_BIT (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 1) +#define NET_HEADER_FIELD_L2TPv2_SEQUENCE_BIT (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 2) +#define NET_HEADER_FIELD_L2TPv2_OFFSET_BIT (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 3) +#define NET_HEADER_FIELD_L2TPv2_PRIORITY_BIT (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 4) +#define NET_HEADER_FIELD_L2TPv2_VERSION (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 5) +#define NET_HEADER_FIELD_L2TPv2_LEN (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 6) +#define NET_HEADER_FIELD_L2TPv2_TUNNEL_ID (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 7) +#define NET_HEADER_FIELD_L2TPv2_SESSION_ID (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 8) +#define NET_HEADER_FIELD_L2TPv2_NS (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 9) +#define NET_HEADER_FIELD_L2TPv2_NR (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 10) +#define NET_HEADER_FIELD_L2TPv2_OFFSET_SIZE (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 11) +#define NET_HEADER_FIELD_L2TPv2_FIRST_BYTE (NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 12) +#define NET_HEADER_FIELD_L2TPv2_ALL_FIELDS ((NET_HEADER_FIELD_L2TPv2_TYPE_BIT << 13) - 1) + +#define NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT (1) +#define NET_HEADER_FIELD_L2TPv3_CTRL_LENGTH_BIT (NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT << 1) +#define NET_HEADER_FIELD_L2TPv3_CTRL_SEQUENCE_BIT (NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT << 2) +#define NET_HEADER_FIELD_L2TPv3_CTRL_VERSION (NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT << 3) +#define NET_HEADER_FIELD_L2TPv3_CTRL_LENGTH (NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT << 4) +#define NET_HEADER_FIELD_L2TPv3_CTRL_CONTROL (NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT << 5) +#define NET_HEADER_FIELD_L2TPv3_CTRL_SENT (NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT << 6) +#define NET_HEADER_FIELD_L2TPv3_CTRL_RECV (NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT << 7) +#define NET_HEADER_FIELD_L2TPv3_CTRL_FIRST_BYTE (NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT << 8) +#define NET_HEADER_FIELD_L2TPv3_CTRL_ALL_FIELDS ((NET_HEADER_FIELD_L2TPv3_CTRL_TYPE_BIT << 9) - 1) + +#define NET_HEADER_FIELD_L2TPv3_SESS_TYPE_BIT (1) +#define NET_HEADER_FIELD_L2TPv3_SESS_VERSION (NET_HEADER_FIELD_L2TPv3_SESS_TYPE_BIT << 1) +#define NET_HEADER_FIELD_L2TPv3_SESS_ID (NET_HEADER_FIELD_L2TPv3_SESS_TYPE_BIT << 2) +#define NET_HEADER_FIELD_L2TPv3_SESS_COOKIE (NET_HEADER_FIELD_L2TPv3_SESS_TYPE_BIT << 3) +#define NET_HEADER_FIELD_L2TPv3_SESS_ALL_FIELDS ((NET_HEADER_FIELD_L2TPv3_SESS_TYPE_BIT << 4) - 1) + + +typedef uint8_t headerFieldVlan_t; + +#define NET_HEADER_FIELD_VLAN_VPRI (1) +#define NET_HEADER_FIELD_VLAN_CFI (NET_HEADER_FIELD_VLAN_VPRI << 1) +#define NET_HEADER_FIELD_VLAN_VID (NET_HEADER_FIELD_VLAN_VPRI << 2) +#define NET_HEADER_FIELD_VLAN_LENGTH (NET_HEADER_FIELD_VLAN_VPRI << 3) +#define NET_HEADER_FIELD_VLAN_TYPE (NET_HEADER_FIELD_VLAN_VPRI << 4) +#define NET_HEADER_FIELD_VLAN_ALL_FIELDS ((NET_HEADER_FIELD_VLAN_VPRI << 5) - 1) + +#define NET_HEADER_FIELD_VLAN_TCI (NET_HEADER_FIELD_VLAN_VPRI | \ + NET_HEADER_FIELD_VLAN_CFI | \ + NET_HEADER_FIELD_VLAN_VID) + + +typedef uint8_t headerFieldLlc_t; + +#define NET_HEADER_FIELD_LLC_DSAP (1) +#define NET_HEADER_FIELD_LLC_SSAP (NET_HEADER_FIELD_LLC_DSAP << 1) +#define NET_HEADER_FIELD_LLC_CTRL (NET_HEADER_FIELD_LLC_DSAP << 2) +#define NET_HEADER_FIELD_LLC_ALL_FIELDS ((NET_HEADER_FIELD_LLC_DSAP << 3) - 1) + +#define NET_HEADER_FIELD_NLPID_NLPID (1) +#define NET_HEADER_FIELD_NLPID_ALL_FIELDS ((NET_HEADER_FIELD_NLPID_NLPID << 1) - 1) + + +typedef uint8_t headerFieldSnap_t; + +#define NET_HEADER_FIELD_SNAP_OUI (1) +#define NET_HEADER_FIELD_SNAP_PID (NET_HEADER_FIELD_SNAP_OUI << 1) +#define NET_HEADER_FIELD_SNAP_ALL_FIELDS ((NET_HEADER_FIELD_SNAP_OUI << 2) - 1) + + +typedef uint8_t headerFieldLlcSnap_t; + +#define NET_HEADER_FIELD_LLC_SNAP_TYPE (1) +#define NET_HEADER_FIELD_LLC_SNAP_ALL_FIELDS ((NET_HEADER_FIELD_LLC_SNAP_TYPE << 1) - 1) + +#define NET_HEADER_FIELD_ARP_HTYPE (1) +#define NET_HEADER_FIELD_ARP_PTYPE (NET_HEADER_FIELD_ARP_HTYPE << 1) +#define NET_HEADER_FIELD_ARP_HLEN (NET_HEADER_FIELD_ARP_HTYPE << 2) +#define NET_HEADER_FIELD_ARP_PLEN (NET_HEADER_FIELD_ARP_HTYPE << 3) +#define NET_HEADER_FIELD_ARP_OPER (NET_HEADER_FIELD_ARP_HTYPE << 4) +#define NET_HEADER_FIELD_ARP_SHA (NET_HEADER_FIELD_ARP_HTYPE << 5) +#define NET_HEADER_FIELD_ARP_SPA (NET_HEADER_FIELD_ARP_HTYPE << 6) +#define NET_HEADER_FIELD_ARP_THA (NET_HEADER_FIELD_ARP_HTYPE << 7) +#define NET_HEADER_FIELD_ARP_TPA (NET_HEADER_FIELD_ARP_HTYPE << 8) +#define NET_HEADER_FIELD_ARP_ALL_FIELDS ((NET_HEADER_FIELD_ARP_HTYPE << 9) - 1) + +#define NET_HEADER_FIELD_RFC2684_LLC (1) +#define NET_HEADER_FIELD_RFC2684_NLPID (NET_HEADER_FIELD_RFC2684_LLC << 1) +#define NET_HEADER_FIELD_RFC2684_OUI (NET_HEADER_FIELD_RFC2684_LLC << 2) +#define NET_HEADER_FIELD_RFC2684_PID (NET_HEADER_FIELD_RFC2684_LLC << 3) +#define NET_HEADER_FIELD_RFC2684_VPN_OUI (NET_HEADER_FIELD_RFC2684_LLC << 4) +#define NET_HEADER_FIELD_RFC2684_VPN_IDX (NET_HEADER_FIELD_RFC2684_LLC << 5) +#define NET_HEADER_FIELD_RFC2684_ALL_FIELDS ((NET_HEADER_FIELD_RFC2684_LLC << 6) - 1) + +#define NET_HEADER_FIELD_USER_DEFINED_SRCPORT (1) +#define NET_HEADER_FIELD_USER_DEFINED_PCDID (NET_HEADER_FIELD_USER_DEFINED_SRCPORT << 1) +#define NET_HEADER_FIELD_USER_DEFINED_ALL_FIELDS ((NET_HEADER_FIELD_USER_DEFINED_SRCPORT << 2) - 1) + +#define NET_HEADER_FIELD_PAYLOAD_BUFFER (1) +#define NET_HEADER_FIELD_PAYLOAD_SIZE (NET_HEADER_FIELD_PAYLOAD_BUFFER << 1) +#define NET_HEADER_FIELD_MAX_FRM_SIZE (NET_HEADER_FIELD_PAYLOAD_BUFFER << 2) +#define NET_HEADER_FIELD_MIN_FRM_SIZE (NET_HEADER_FIELD_PAYLOAD_BUFFER << 3) +#define NET_HEADER_FIELD_PAYLOAD_TYPE (NET_HEADER_FIELD_PAYLOAD_BUFFER << 4) +#define NET_HEADER_FIELD_FRAME_SIZE (NET_HEADER_FIELD_PAYLOAD_BUFFER << 5) +#define NET_HEADER_FIELD_PAYLOAD_ALL_FIELDS ((NET_HEADER_FIELD_PAYLOAD_BUFFER << 6) - 1) + + +typedef uint8_t headerFieldGre_t; + +#define NET_HEADER_FIELD_GRE_TYPE (1) +#define NET_HEADER_FIELD_GRE_ALL_FIELDS ((NET_HEADER_FIELD_GRE_TYPE << 1) - 1) + + +typedef uint8_t headerFieldMinencap_t; + +#define NET_HEADER_FIELD_MINENCAP_SRC_IP (1) +#define NET_HEADER_FIELD_MINENCAP_DST_IP (NET_HEADER_FIELD_MINENCAP_SRC_IP << 1) +#define NET_HEADER_FIELD_MINENCAP_TYPE (NET_HEADER_FIELD_MINENCAP_SRC_IP << 2) +#define NET_HEADER_FIELD_MINENCAP_ALL_FIELDS ((NET_HEADER_FIELD_MINENCAP_SRC_IP << 3) - 1) + + +typedef uint8_t headerFieldIpsecAh_t; + +#define NET_HEADER_FIELD_IPSEC_AH_SPI (1) +#define NET_HEADER_FIELD_IPSEC_AH_NH (NET_HEADER_FIELD_IPSEC_AH_SPI << 1) +#define NET_HEADER_FIELD_IPSEC_AH_ALL_FIELDS ((NET_HEADER_FIELD_IPSEC_AH_SPI << 2) - 1) + + +typedef uint8_t headerFieldIpsecEsp_t; + +#define NET_HEADER_FIELD_IPSEC_ESP_SPI (1) +#define NET_HEADER_FIELD_IPSEC_ESP_SEQUENCE_NUM (NET_HEADER_FIELD_IPSEC_ESP_SPI << 1) +#define NET_HEADER_FIELD_IPSEC_ESP_ALL_FIELDS ((NET_HEADER_FIELD_IPSEC_ESP_SPI << 2) - 1) + + +typedef uint8_t headerFieldMpls_t; + +#define NET_HEADER_FIELD_MPLS_LABEL_STACK (1) +#define NET_HEADER_FIELD_MPLS_LABEL_STACK_ALL_FIELDS ((NET_HEADER_FIELD_MPLS_LABEL_STACK << 1) - 1) + + +typedef uint8_t headerFieldMacsec_t; + +#define NET_HEADER_FIELD_MACSEC_SECTAG (1) +#define NET_HEADER_FIELD_MACSEC_ALL_FIELDS ((NET_HEADER_FIELD_MACSEC_SECTAG << 1) - 1) + + +typedef enum { + HEADER_TYPE_NONE = 0, + HEADER_TYPE_PAYLOAD, + HEADER_TYPE_ETH, + HEADER_TYPE_VLAN, + HEADER_TYPE_IPv4, + HEADER_TYPE_IPv6, + HEADER_TYPE_TCP, + HEADER_TYPE_UDP, + HEADER_TYPE_IPHC, + HEADER_TYPE_SCTP, + HEADER_TYPE_SCTP_CHUNK_DATA, + HEADER_TYPE_PPPoE, + HEADER_TYPE_PPP, + HEADER_TYPE_PPPMUX, + HEADER_TYPE_PPPMUX_SUBFRAME, + HEADER_TYPE_L2TPv2, + HEADER_TYPE_L2TPv3_CTRL, + HEADER_TYPE_L2TPv3_SESS, + HEADER_TYPE_LLC, + HEADER_TYPE_LLC_SNAP, + HEADER_TYPE_NLPID, + HEADER_TYPE_SNAP, + HEADER_TYPE_MPLS, + HEADER_TYPE_IPSEC_AH, + HEADER_TYPE_IPSEC_ESP, + HEADER_TYPE_UDP_ENCAP_ESP, /* RFC 3948 */ + HEADER_TYPE_MACSEC, + HEADER_TYPE_GRE, + HEADER_TYPE_MINENCAP, + HEADER_TYPE_DCCP, + HEADER_TYPE_ICMP, + HEADER_TYPE_IGMP, + HEADER_TYPE_ARP, + HEADER_TYPE_CAPWAP, + HEADER_TYPE_CAPWAP_DTLS, + HEADER_TYPE_RFC2684, + HEADER_TYPE_USER_DEFINED_L2, + HEADER_TYPE_USER_DEFINED_L3, + HEADER_TYPE_USER_DEFINED_L4, + HEADER_TYPE_USER_DEFINED_SHIM1, + HEADER_TYPE_USER_DEFINED_SHIM2, + MAX_HEADER_TYPE_COUNT +} e_NetHeaderType; + + +#endif /* __NET_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/std_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/std_ext.h @@ -0,0 +1,48 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + /**************************************************************************//** + + @File std_ext.h + + @Description General Standard Definitions +*//***************************************************************************/ + +#ifndef __STD_EXT_H +#define __STD_EXT_H + + +#include "types_ext.h" +#include "ncsw_ext.h" + + +#endif /* __STD_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/stdarg_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/stdarg_ext.h @@ -0,0 +1,48 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __STDARG_EXT_H +#define __STDARG_EXT_H + + +#if defined(NCSW_LINUX) && defined(__KERNEL__) +#include + +#else +#include + +#endif /* defined(NCSW_LINUX) && defined(__KERNEL__) */ + +#include "std_ext.h" + + +#endif /* __STDARG_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/stdlib_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/stdlib_ext.h @@ -0,0 +1,161 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +#ifndef __STDLIB_EXT_H +#define __STDLIB_EXT_H + + +#if (defined(NCSW_LINUX)) && defined(__KERNEL__) +#include "stdarg_ext.h" +#include "std_ext.h" + + +/** + * strtoul - convert a string to an uint32_t + * @cp: The start of the string + * @endp: A pointer to the end of the parsed string will be placed here + * @base: The number base to use + */ +uint32_t strtoul(const char *cp,char **endp,uint32_t base); + +/** + * strtol - convert a string to a int32_t + * @cp: The start of the string + * @endp: A pointer to the end of the parsed string will be placed here + * @base: The number base to use + */ +long strtol(const char *cp,char **endp,uint32_t base); + +/** + * strtoull - convert a string to an uint64_t + * @cp: The start of the string + * @endp: A pointer to the end of the parsed string will be placed here + * @base: The number base to use + */ +uint64_t strtoull(const char *cp,char **endp,uint32_t base); + +/** + * strtoll - convert a string to a int64 long + * @cp: The start of the string + * @endp: A pointer to the end of the parsed string will be placed here + * @base: The number base to use + */ +long long strtoll(const char *cp,char **endp,uint32_t base); + +/** + * atoi - convert a character to a int + * @s: The start of the string + */ +int atoi(const char *s); + +/** + * strnlen - Find the length of a length-limited string + * @s: The string to be sized + * @count: The maximum number of bytes to search + */ +size_t strnlen(const char * s, size_t count); + +/** + * strlen - Find the length of a string + * @s: The string to be sized + */ +size_t strlen(const char * s); + +/** + * strtok - Split a string into tokens + * @s: The string to be searched + * @ct: The characters to search for + * + * WARNING: strtok is deprecated, use strsep instead. + */ +char * strtok(char * s,const char * ct); + +/** + * strncpy - Copy a length-limited, %NUL-terminated string + * @dest: Where to copy the string to + * @src: Where to copy the string from + * @count: The maximum number of bytes to copy + * + * Note that unlike userspace strncpy, this does not %NUL-pad the buffer. + * However, the result is not %NUL-terminated if the source exceeds + * @count bytes. + */ +char * strncpy(char * dest,const char *src,size_t count); + +/** + * strcpy - Copy a %NUL terminated string + * @dest: Where to copy the string to + * @src: Where to copy the string from + */ +char * strcpy(char * dest,const char *src); + +/** + * vsscanf - Unformat a buffer into a list of arguments + * @buf: input buffer + * @fmt: format of buffer + * @args: arguments + */ +int vsscanf(const char * buf, const char * fmt, va_list args); + +/** + * vsnprintf - Format a string and place it in a buffer + * @buf: The buffer to place the result into + * @size: The size of the buffer, including the trailing null space + * @fmt: The format string to use + * @args: Arguments for the format string + * + * Call this function if you are already dealing with a va_list. + * You probably want snprintf instead. + */ +int vsnprintf(char *buf, size_t size, const char *fmt, va_list args); + +/** + * vsprintf - Format a string and place it in a buffer + * @buf: The buffer to place the result into + * @fmt: The format string to use + * @args: Arguments for the format string + * + * Call this function if you are already dealing with a va_list. + * You probably want sprintf instead. + */ +int vsprintf(char *buf, const char *fmt, va_list args); + +#else +#include +#include +#endif /* defined(NCSW_LINUX) && defined(__KERNEL__) */ + +#include "std_ext.h" + + +#endif /* __STDLIB_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/string_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/string_ext.h @@ -0,0 +1,55 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __STRING_EXT_H +#define __STRING_EXT_H + + +#if defined(NCSW_LINUX) && defined(__KERNEL__) +#include +#include +extern char * strtok ( char * str, const char * delimiters ); + +#elif defined(__KERNEL__) +#include "linux/types.h" +#include "linux/posix_types.h" +#include "linux/string.h" + +#else +#include + +#endif /* defined(NCSW_LINUX) && defined(__KERNEL__) */ + +#include "std_ext.h" + + +#endif /* __STRING_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/types_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/types_ext.h @@ -0,0 +1,111 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + /**************************************************************************//** + @File types_ext.h + + @Description General types Standard Definitions +*//***************************************************************************/ + +#ifndef __TYPES_EXT_H +#define __TYPES_EXT_H + + +#if defined(NCSW_LINUX) +#include "types_linux.h" + +#elif defined(NCSW_LINUX_USD) +#include "types_linux_usd.h" + +#elif defined(NCSW_VXWORKS) +#include "types_vxworks.h" + +#elif defined(__MWERKS__) && defined(__GNUC__) && defined(__cplusplus) +#include "types_bb_gpp.h" + +#elif defined(__MWERKS__) && defined(__GNUC__) +#include "types_bb_gcc.h" + +#elif defined(__ghs__) +#include "types_ghs.h" + +#else +#include "types_dflt.h" +#endif /* defined (__ROCOO__) */ + + +static __inline__ void TypesChecker(void) +{ +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(push,1) +#endif /* defined(__MWERKS__) && ... */ +#define MEM_MAP_START + _Packed struct strct { + __volatile__ int vi; + } _PackedType; +#define MEM_MAP_END +#if defined(__MWERKS__) && !defined(__GNUC__) +#pragma pack(pop) +#endif /* defined(__MWERKS__) && ... */ + size_t size = 0; + bool tr = TRUE, fls = FALSE; + struct strct *p_Strct = NULL; + physAddress_t addr = 0x100; + + tr = fls; + p_Strct = p_Strct; + size++; + if (tr) size++; + + WRITE_UINT8(*((uint8_t*)((size_t)(addr))), + GET_UINT8(*((uint8_t*)((size_t)(addr))))); + + WRITE_UINT8(*((uint8_t*)((size_t)(UINT8_MAX))), + GET_UINT8(*((uint8_t*)((size_t)(UINT8_MAX))))); + WRITE_UINT16(*((uint16_t*)((size_t)(UINT16_MAX))), + GET_UINT16(*((uint16_t*)((size_t)(UINT16_MAX))))); + WRITE_UINT32(*((uint32_t*)((size_t)(UINT32_MAX))), + GET_UINT32(*((uint32_t*)((size_t)(UINT32_MAX))))); + WRITE_UINT64(*((uint64_t*)((size_t)(UINT64_MAX))), + GET_UINT64(*((uint64_t*)((size_t)(UINT64_MAX))))); + WRITE_UINT8(*((uint8_t*)((size_t)(INT8_MAX))), + GET_UINT8(*((uint8_t*)((size_t)(INT8_MIN))))); + WRITE_UINT16(*((uint16_t*)((size_t)(INT16_MAX))), + GET_UINT16(*((uint16_t*)((size_t)(INT16_MIN))))); + WRITE_UINT32(*((uint32_t*)((size_t)(INT32_MAX))), + GET_UINT32(*((uint32_t*)((size_t)(INT32_MIN))))); + WRITE_UINT64(*((uint64_t*)((size_t)(INT64_MAX))), + GET_UINT64(*((uint64_t*)((size_t)(INT64_MIN))))); +} + + +#endif /* __TYPES_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/inc/xx_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/inc/xx_ext.h @@ -0,0 +1,881 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + @File xx_ext.h + + @Description Prototypes, externals and typedefs for system-supplied + (external) routines +*//***************************************************************************/ + +#ifndef __XX_EXT_H +#define __XX_EXT_H + +#include "std_ext.h" +#include "part_ext.h" + +#if defined(__MWERKS__) && defined(OPTIMIZED_FOR_SPEED) +#include "xx_integration_ext.h" +#endif /* defined(__MWERKS__) && defined(OPTIMIZED_FOR_SPEED) */ + + +/**************************************************************************//** + @Group xx_id XX Interface (System call hooks) + + @Description Prototypes, externals and typedefs for system-supplied + (external) routines + + @{ +*//***************************************************************************/ + +#if (defined(REPORT_EVENTS) && (REPORT_EVENTS > 0)) +/**************************************************************************//** + @Function XX_EventById + + @Description Event reporting routine - executed only when REPORT_EVENTS=1. + + @Param[in] event - Event code (e_Event). + @Param[in] appId - Application identifier. + @Param[in] flags - Event flags. + @Param[in] msg - Event message. + + @Return None +*//***************************************************************************/ +void XX_EventById(uint32_t event, t_Handle appId, uint16_t flags, char *msg); + +#else /* not REPORT_EVENTS */ +#define XX_EventById(event, appId, flags, msg) +#endif /* REPORT_EVENTS */ + + + +#ifdef DEBUG_XX_MALLOC +void * XX_MallocDebug(uint32_t size, char *fname, int line); + +void * XX_MallocSmartDebug(uint32_t size, + int memPartitionId, + uint32_t alignment, + char *fname, + int line); + +#define XX_Malloc(sz) \ + XX_MallocDebug((sz), __FILE__, __LINE__) + +#define XX_MallocSmart(sz, memt, al) \ + XX_MallocSmartDebug((sz), (memt), (al), __FILE__, __LINE__) + +#else /* not DEBUG_XX_MALLOC */ +/**************************************************************************//** + @Function XX_Malloc + + @Description allocates contiguous block of memory. + + @Param[in] size - Number of bytes to allocate. + + @Return The address of the newly allocated block on success, NULL on failure. +*//***************************************************************************/ +void * XX_Malloc(uint32_t size); + +/**************************************************************************//** + @Function XX_MallocSmart + + @Description Allocates contiguous block of memory in a specified + alignment and from the specified segment. + + @Param[in] size - Number of bytes to allocate. + @Param[in] memPartitionId - Memory partition ID; The value zero must + be mapped to the default heap partition. + @Param[in] alignment - Required memory alignment (in bytes). + + @Return The address of the newly allocated block on success, NULL on failure. +*//***************************************************************************/ +void * XX_MallocSmart(uint32_t size, int memPartitionId, uint32_t alignment); +#endif /* not DEBUG_XX_MALLOC */ + +/**************************************************************************//** + @Function XX_FreeSmart + + @Description Frees the memory block pointed to by "p". + Only for memory allocated by XX_MallocSmart + + @Param[in] p_Memory - pointer to the memory block. + + @Return None. +*//***************************************************************************/ +void XX_FreeSmart(void *p_Memory); + +/**************************************************************************//** + @Function XX_Free + + @Description frees the memory block pointed to by "p". + + @Param[in] p_Memory - pointer to the memory block. + + @Return None. +*//***************************************************************************/ +void XX_Free(void *p_Memory); + +#ifndef NCSW_LINUX +/**************************************************************************//** + @Function XX_GetMemPartitionBase + + @Description This routine gets the address of a memory segment according to + the memory type. + + @Param[in] memPartitionId - Memory partition ID; The value zero must + be mapped to the default heap partition. + + @Return The address of the required memory type. +*//***************************************************************************/ +void * XX_GetMemPartitionBase(int memPartitionId); +#endif + +/**************************************************************************//** + @Function XX_Print + + @Description print a string. + + @Param[in] str - string to print. + + @Return None. +*//***************************************************************************/ +void XX_Print(char *str, ...); + +/**************************************************************************//** + @Function XX_GetChar + + @Description Get character from console. + + @Return Character is returned on success. Zero is returned otherwise. +*//***************************************************************************/ +char XX_GetChar(void); + +/**************************************************************************//** + @Function XX_SetIntr + + @Description Set an interrupt service routine for a specific interrupt source. + + @Param[in] irq - Interrupt ID (system-specific number). + @Param[in] f_Isr - Callback routine that will be called when the interrupt occurs. + @Param[in] handle - The argument for the user callback routine. + + @Return E_OK on success; error code otherwise.. +*//***************************************************************************/ +t_Error XX_SetIntr(int irq, t_Isr *f_Isr, t_Handle handle); + +/**************************************************************************//** + @Function XX_FreeIntr + + @Description Free a specific interrupt and a specific callback routine. + + @Param[in] irq - Interrupt ID (system-specific number). + + @Return E_OK on success; error code otherwise.. +*//***************************************************************************/ +t_Error XX_FreeIntr(int irq); + +/**************************************************************************//** + @Function XX_EnableIntr + + @Description Enable a specific interrupt. + + @Param[in] irq - Interrupt ID (system-specific number). + + @Return E_OK on success; error code otherwise.. +*//***************************************************************************/ +t_Error XX_EnableIntr(int irq); + +/**************************************************************************//** + @Function XX_DisableIntr + + @Description Disable a specific interrupt. + + @Param[in] irq - Interrupt ID (system-specific number). + + @Return E_OK on success; error code otherwise.. +*//***************************************************************************/ +t_Error XX_DisableIntr(int irq); + +#if !(defined(__MWERKS__) && defined(OPTIMIZED_FOR_SPEED)) +/**************************************************************************//** + @Function XX_DisableAllIntr + + @Description Disable all interrupts by masking them at the CPU. + + @Return A value that represents the interrupts state before the + operation, and should be passed to the matching + XX_RestoreAllIntr() call. +*//***************************************************************************/ +uint32_t XX_DisableAllIntr(void); + +/**************************************************************************//** + @Function XX_RestoreAllIntr + + @Description Restore previous state of interrupts level at the CPU. + + @Param[in] flags - A value that represents the interrupts state to restore, + as returned by the matching call for XX_DisableAllIntr(). + + @Return None. +*//***************************************************************************/ +void XX_RestoreAllIntr(uint32_t flags); +#endif /* !(defined(__MWERKS__) && defined(OPTIMIZED_FOR_SPEED)) */ + +/**************************************************************************//** + @Function XX_Call + + @Description Call a service in another task. + + Activate the routine "f" via the queue identified by "IntrManagerId". The + parameter to "f" is Id - the handle of the destination object + + @Param[in] intrManagerId - Queue ID. + @Param[in] f - routine pointer. + @Param[in] Id - the parameter to be passed to f(). + @Param[in] h_App - Application handle. + @Param[in] flags - Unused, + + @Return E_OK is returned on success. E_FAIL is returned otherwise (usually an operating system level failure). +*//***************************************************************************/ +t_Error XX_Call( uint32_t intrManagerId, + t_Error (* f)(t_Handle), + t_Handle Id, + t_Handle h_App, + uint16_t flags ); + +/**************************************************************************//** + @Function XX_Exit + + @Description Stop execution and report status (where it is applicable) + + @Param[in] status - exit status +*//***************************************************************************/ +void XX_Exit(int status); + +/*****************************************************************************/ +/* Tasklet Service Routines */ +/*****************************************************************************/ +typedef t_Handle t_TaskletHandle; + +/**************************************************************************//** + @Function XX_InitTasklet + + @Description Create and initialize a tasklet object. + + @Param[in] routine - A routine to be ran as a tasklet. + @Param[in] data - An argument to pass to the tasklet. + + @Return Tasklet handle is returned on success. NULL is returned otherwise. +*//***************************************************************************/ +t_TaskletHandle XX_InitTasklet (void (*routine)(void *), void *data); + +/**************************************************************************//** + @Function XX_FreeTasklet + + @Description Free a tasklet object. + + @Param[in] h_Tasklet - A handle to a tasklet to be free. + + @Return None. +*//***************************************************************************/ +void XX_FreeTasklet (t_TaskletHandle h_Tasklet); + +/**************************************************************************//** + @Function XX_ScheduleTask + + @Description Schedule a tasklet object. + + @Param[in] h_Tasklet - A handle to a tasklet to be scheduled. + @Param[in] immediate - Indicate whether to schedule this tasklet on + the immediate queue or on the delayed one. + + @Return 0 - on success. Error code - otherwise. +*//***************************************************************************/ +int XX_ScheduleTask(t_TaskletHandle h_Tasklet, int immediate); + +/**************************************************************************//** + @Function XX_FlushScheduledTasks + + @Description Flush all tasks there are in the scheduled tasks queue. + + @Return None. +*//***************************************************************************/ +void XX_FlushScheduledTasks(void); + +/**************************************************************************//** + @Function XX_TaskletIsQueued + + @Description Check if task is queued. + + @Param[in] h_Tasklet - A handle to a tasklet to be scheduled. + + @Return 1 - task is queued. 0 - otherwise. +*//***************************************************************************/ +int XX_TaskletIsQueued(t_TaskletHandle h_Tasklet); + +/**************************************************************************//** + @Function XX_SetTaskletData + + @Description Set data to a scheduled task. Used to change data of already + scheduled task. + + @Param[in] h_Tasklet - A handle to a tasklet to be scheduled. + @Param[in] data - Data to be set. +*//***************************************************************************/ +void XX_SetTaskletData(t_TaskletHandle h_Tasklet, t_Handle data); + +/**************************************************************************//** + @Function XX_GetTaskletData + + @Description Get the data of scheduled task. + + @Param[in] h_Tasklet - A handle to a tasklet to be scheduled. + + @Return handle to the data of the task. +*//***************************************************************************/ +t_Handle XX_GetTaskletData(t_TaskletHandle h_Tasklet); + +/**************************************************************************//** + @Function XX_BottomHalf + + @Description Bottom half implementation, invoked by the interrupt handler. + + This routine handles all bottom-half tasklets with interrupts + enabled. + + @Return None. +*//***************************************************************************/ +void XX_BottomHalf(void); + + +/*****************************************************************************/ +/* Spinlock Service Routines */ +/*****************************************************************************/ + +/**************************************************************************//** + @Function XX_InitSpinlock + + @Description Creates a spinlock. + + @Return Spinlock handle is returned on success; NULL otherwise. +*//***************************************************************************/ +t_Handle XX_InitSpinlock(void); + +/**************************************************************************//** + @Function XX_FreeSpinlock + + @Description Frees the memory allocated for the spinlock creation. + + @Param[in] h_Spinlock - A handle to a spinlock. + + @Return None. +*//***************************************************************************/ +void XX_FreeSpinlock(t_Handle h_Spinlock); + +/**************************************************************************//** + @Function XX_LockSpinlock + + @Description Locks a spinlock. + + @Param[in] h_Spinlock - A handle to a spinlock. + + @Return None. +*//***************************************************************************/ +void XX_LockSpinlock(t_Handle h_Spinlock); + +/**************************************************************************//** + @Function XX_UnlockSpinlock + + @Description Unlocks a spinlock. + + @Param[in] h_Spinlock - A handle to a spinlock. + + @Return None. +*//***************************************************************************/ +void XX_UnlockSpinlock(t_Handle h_Spinlock); + +/**************************************************************************//** + @Function XX_LockIntrSpinlock + + @Description Locks a spinlock (interrupt safe). + + @Param[in] h_Spinlock - A handle to a spinlock. + + @Return A value that represents the interrupts state before the + operation, and should be passed to the matching + XX_UnlockIntrSpinlock() call. +*//***************************************************************************/ +uint32_t XX_LockIntrSpinlock(t_Handle h_Spinlock); + +/**************************************************************************//** + @Function XX_UnlockIntrSpinlock + + @Description Unlocks a spinlock (interrupt safe). + + @Param[in] h_Spinlock - A handle to a spinlock. + @Param[in] intrFlags - A value that represents the interrupts state to + restore, as returned by the matching call for + XX_LockIntrSpinlock(). + + @Return None. +*//***************************************************************************/ +void XX_UnlockIntrSpinlock(t_Handle h_Spinlock, uint32_t intrFlags); + + +/*****************************************************************************/ +/* Timers Service Routines */ +/*****************************************************************************/ + +/**************************************************************************//** + @Function XX_CurrentTime + + @Description Returns current system time. + + @Return Current system time (in milliseconds). +*//***************************************************************************/ +uint32_t XX_CurrentTime(void); + +/**************************************************************************//** + @Function XX_CreateTimer + + @Description Creates a timer. + + @Return Timer handle is returned on success; NULL otherwise. +*//***************************************************************************/ +t_Handle XX_CreateTimer(void); + +/**************************************************************************//** + @Function XX_FreeTimer + + @Description Frees the memory allocated for the timer creation. + + @Param[in] h_Timer - A handle to a timer. + + @Return None. +*//***************************************************************************/ +void XX_FreeTimer(t_Handle h_Timer); + +/**************************************************************************//** + @Function XX_StartTimer + + @Description Starts a timer. + + The user can select to start the timer as periodic timer or as + one-shot timer. The user should provide a callback routine that + will be called when the timer expires. + + @Param[in] h_Timer - A handle to a timer. + @Param[in] msecs - Timer expiration period (in milliseconds). + @Param[in] periodic - TRUE for a periodic timer; + FALSE for a one-shot timer.. + @Param[in] f_TimerExpired - A callback routine to be called when the + timer expires. + @Param[in] h_Arg - The argument to pass in the timer-expired + callback routine. + + @Return None. +*//***************************************************************************/ +void XX_StartTimer(t_Handle h_Timer, + uint32_t msecs, + bool periodic, + void (*f_TimerExpired)(t_Handle h_Arg), + t_Handle h_Arg); + +/**************************************************************************//** + @Function XX_StopTimer + + @Description Frees the memory allocated for the timer creation. + + @Param[in] h_Timer - A handle to a timer. + + @Return None. +*//***************************************************************************/ +void XX_StopTimer(t_Handle h_Timer); + +/**************************************************************************//** + @Function XX_GetExpirationTime + + @Description Returns the time (in milliseconds) remaining until the + expiration of a timer. + + @Param[in] h_Timer - A handle to a timer. + + @Return The time left until the timer expires. +*//***************************************************************************/ +uint32_t XX_GetExpirationTime(t_Handle h_Timer); + +/**************************************************************************//** + @Function XX_ModTimer + + @Description Updates the expiration time of a timer. + + This routine adds the given time to the current system time, + and sets this value as the new expiration time of the timer. + + @Param[in] h_Timer - A handle to a timer. + @Param[in] msecs - The new interval until timer expiration + (in milliseconds). + + @Return None. +*//***************************************************************************/ +void XX_ModTimer(t_Handle h_Timer, uint32_t msecs); + +/**************************************************************************//** + @Function XX_TimerIsActive + + @Description Checks whether a timer is active (pending) or not. + + @Param[in] h_Timer - A handle to a timer. + + @Return 0 - the timer is inactive; Non-zero value - the timer is active; +*//***************************************************************************/ +int XX_TimerIsActive(t_Handle h_Timer); + +/**************************************************************************//** + @Function XX_Sleep + + @Description Non-busy wait until the desired time (in milliseconds) has passed. + + @Param[in] msecs - The requested sleep time (in milliseconds). + + @Return None. + + @Cautions This routine enables interrupts during its wait time. +*//***************************************************************************/ +uint32_t XX_Sleep(uint32_t msecs); + +/**************************************************************************//** + @Function XX_UDelay + + @Description Busy-wait until the desired time (in microseconds) has passed. + + @Param[in] usecs - The requested delay time (in microseconds). + + @Return None. + + @Cautions It is highly unrecommended to call this routine during interrupt + time, because the system time may not be updated properly during + the delay loop. The behavior of this routine during interrupt + time is unexpected. +*//***************************************************************************/ +void XX_UDelay(uint32_t usecs); + + +/*****************************************************************************/ +/* Other Service Routines */ +/*****************************************************************************/ + +/**************************************************************************//** + @Function XX_PhysToVirt + + @Description Translates a physical address to the matching virtual address. + + @Param[in] addr - The physical address to translate. + + @Return Virtual address. +*//***************************************************************************/ +void * XX_PhysToVirt(physAddress_t addr); + +/**************************************************************************//** + @Function XX_VirtToPhys + + @Description Translates a virtual address to the matching physical address. + + @Param[in] addr - The virtual address to translate. + + @Return Physical address. +*//***************************************************************************/ +physAddress_t XX_VirtToPhys(void *addr); + + +/**************************************************************************//** + @Group xx_ipc XX Inter-Partition-Communication API + + @Description The following API is to be used when working with multiple + partitions configuration. + + @{ +*//***************************************************************************/ + +#define XX_IPC_MAX_ADDR_NAME_LENGTH 16 /**< Maximum length of an endpoint name string; + The IPC service can use this constant to limit + the storage space for IPC endpoint names. */ + + +/**************************************************************************//** + @Function t_IpcMsgCompletion + + @Description Callback function used upon IPC non-blocking transaction completion + to return message buffer to the caller and to forward reply if available. + + This callback function may be attached by the source endpoint to any outgoing + IPC message to indicate a non-blocking send (see also XX_IpcSendMessage() routine). + Upon completion of an IPC transaction (consisting of a message and an optional reply), + the IPC service invokes this callback routine to return the message buffer to the sender + and to provide the received reply, if requested. + + User provides this function. Driver invokes it. + + @Param[in] h_Module - Abstract handle to the sending module - the same handle as was passed + in the XX_IpcSendMessage() function; This handle is typically used to point + to the internal data structure of the source endpoint. + @Param[in] p_Msg - Pointer to original (sent) message buffer; + The source endpoint can free (or reuse) this buffer when message + completion callback is called. + @Param[in] p_Reply - Pointer to (received) reply buffer; + This pointer is the same as was provided by the source endpoint in + XX_IpcSendMessage(). + @Param[in] replyLength - Length (in bytes) of actual data in the reply buffer. + @Param[in] status - Completion status - E_OK or failure indication, e.g. IPC transaction completion + timeout. + + @Return None + *//***************************************************************************/ +typedef void (t_IpcMsgCompletion)(t_Handle h_Module, + uint8_t *p_Msg, + uint8_t *p_Reply, + uint32_t replyLength, + t_Error status); + +/**************************************************************************//** + @Function t_IpcMsgHandler + + @Description Callback function used as IPC message handler. + + The IPC service invokes message handlers for each IPC message received. + The actual function pointer should be registered by each destination endpoint + via the XX_IpcRegisterMsgHandler() routine. + + User provides this function. Driver invokes it. + + @Param[in] h_Module - Abstract handle to the message handling module - the same handle as + was passed in the XX_IpcRegisterMsgHandler() function; this handle is + typically used to point to the internal data structure of the destination + endpoint. + @Param[in] p_Msg - Pointer to message buffer with data received from peer. + @Param[in] msgLength - Length (in bytes) of message data. + @Param[in] p_Reply - Pointer to reply buffer, to be filled by the message handler and then sent + by the IPC service; + The reply buffer is allocated by the IPC service with size equals to the + replyLength parameter provided in message handler registration (see + XX_IpcRegisterMsgHandler() function); + If replyLength was initially specified as zero during message handler registration, + the IPC service may set this pointer to NULL and assume that a reply is not needed; + The IPC service is also responsible for freeing the reply buffer after the + reply has been sent or dismissed. + @Param[in,out] p_ReplyLength - Pointer to reply length, which has a dual role in this function: + [In] equals the replyLength parameter provided in message handler + registration (see XX_IpcRegisterMsgHandler() function), and + [Out] should be updated by message handler to the actual reply length; if + this value is set to zero, the IPC service must assume that a reply should + not be sent; + Note: If p_Reply is not NULL, p_ReplyLength must not be NULL as well. + + @Return E_OK on success; Error code otherwise. + *//***************************************************************************/ +typedef t_Error (t_IpcMsgHandler)(t_Handle h_Module, + uint8_t *p_Msg, + uint32_t msgLength, + uint8_t *p_Reply, + uint32_t *p_ReplyLength); + +/**************************************************************************//** + @Function XX_IpcRegisterMsgHandler + + @Description IPC mailbox registration. + + This function is used for registering an IPC message handler in the IPC service. + This function is called by each destination endpoint to indicate that it is ready + to handle incoming messages. The IPC service invokes the message handler upon receiving + a message addressed to the specified destination endpoint. + + @Param[in] addr - The address name string associated with the destination endpoint; + This address must be unique across the IPC service domain to ensure + correct message routing. + @Param[in] f_MsgHandler - Pointer to the message handler callback for processing incoming + message; invoked by the IPC service upon receiving a message + addressed to the destination endpoint specified by the addr + parameter. + @Param[in] h_Module - Abstract handle to the message handling module, passed unchanged + to f_MsgHandler callback function. + @Param[in] replyLength - The maximal data length (in bytes) of any reply that the specified message handler + may generate; the IPC service provides the message handler with buffer + for reply according to the length specified here (refer also to the description + of #t_IpcMsgHandler callback function type); + This size shall be zero if the message handler never generates replies. + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error XX_IpcRegisterMsgHandler(char addr[XX_IPC_MAX_ADDR_NAME_LENGTH], + t_IpcMsgHandler *f_MsgHandler, + t_Handle h_Module, + uint32_t replyLength); + +/**************************************************************************//** + @Function XX_IpcUnregisterMsgHandler + + @Description Release IPC mailbox routine. + + This function is used for unregistering an IPC message handler from the IPC service. + This function is called by each destination endpoint to indicate that it is no longer + capable of handling incoming messages. + + @Param[in] addr - The address name string associated with the destination endpoint; + This address is the same as was used when the message handler was + registered via XX_IpcRegisterMsgHandler(). + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error XX_IpcUnregisterMsgHandler(char addr[XX_IPC_MAX_ADDR_NAME_LENGTH]); + +/**************************************************************************//** + @Function XX_IpcInitSession + + @Description This function is used for creating an IPC session between the source endpoint + and the destination endpoint. + + The actual implementation and representation of a session is left for the IPC service. + The function returns an abstract handle to the created session. This handle shall be used + by the source endpoint in subsequent calls to XX_IpcSendMessage(). + The IPC service assumes that before this function is called, no messages are sent from + the specified source endpoint to the specified destination endpoint. + + The IPC service may use a connection-oriented approach or a connectionless approach (or both) + as described below. + + @par Connection-Oriented Approach + + The IPC service may implement a session in a connection-oriented approach - when this function is called, + the IPC service should take the necessary steps to bring up a source-to-destination channel for messages + and a destination-to-source channel for replies. The returned handle should represent the internal + representation of these channels. + + @par Connectionless Approach + + The IPC service may implement a session in a connectionless approach - when this function is called, the + IPC service should not perform any particular steps, but it must store the pair of source and destination + addresses in some session representation and return it as a handle. When XX_IpcSendMessage() shall be + called, the IPC service may use this handle to provide the necessary identifiers for routing the messages + through the connectionless medium. + + @Param[in] destAddr - The address name string associated with the destination endpoint. + @Param[in] srcAddr - The address name string associated with the source endpoint. + + @Return Abstract handle to the initialized session, or NULL on error. +*//***************************************************************************/ +t_Handle XX_IpcInitSession(char destAddr[XX_IPC_MAX_ADDR_NAME_LENGTH], + char srcAddr[XX_IPC_MAX_ADDR_NAME_LENGTH]); + +/**************************************************************************//** + @Function XX_IpcFreeSession + + @Description This function is used for terminating an existing IPC session between a source endpoint + and a destination endpoint. + + The IPC service assumes that after this function is called, no messages shall be sent from + the associated source endpoint to the associated destination endpoint. + + @Param[in] h_Session - Abstract handle to the IPC session - the same handle as was originally + returned by the XX_IpcInitSession() function. + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error XX_IpcFreeSession(t_Handle h_Session); + +/**************************************************************************//** + @Function XX_IpcSendMessage + + @Description IPC message send routine. + + This function may be used by a source endpoint to send an IPC message to a destination + endpoint. The source endpoint cannot send a message to the destination endpoint without + first initiating a session with that destination endpoint via XX_IpcInitSession() routine. + + The source endpoint must provide the buffer pointer and length of the outgoing message. + Optionally, it may also provide a buffer for an expected reply. In the latter case, the + transaction is not considered complete by the IPC service until the reply has been received. + If the source endpoint does not provide a reply buffer, the transaction is considered + complete after the message has been sent. The source endpoint must keep the message (and + optional reply) buffers valid until the transaction is complete. + + @par Non-blocking mode + + The source endpoint may request a non-blocking send by providing a non-NULL pointer to a message + completion callback function (f_Completion). Upon completion of the IPC transaction (consisting of a + message and an optional reply), the IPC service invokes this callback routine to return the message + buffer to the sender and to provide the received reply, if requested. + + @par Blocking mode + + The source endpoint may request a blocking send by setting f_Completion to NULL. The function is + expected to block until the IPC transaction is complete - either the reply has been received or (if no reply + was requested) the message has been sent. + + @Param[in] h_Session - Abstract handle to the IPC session - the same handle as was originally + returned by the XX_IpcInitSession() function. + @Param[in] p_Msg - Pointer to message buffer to send. + @Param[in] msgLength - Length (in bytes) of actual data in the message buffer. + @Param[in] p_Reply - Pointer to reply buffer - if this buffer is not NULL, the IPC service + fills this buffer with the received reply data; + In blocking mode, the reply data must be valid when the function returns; + In non-blocking mode, the reply data is valid when f_Completion is called; + If this pointer is NULL, no reply is expected. + @Param[in,out] p_ReplyLength - Pointer to reply length, which has a dual role in this function: + [In] specifies the maximal length (in bytes) of the reply buffer pointed by + p_Reply, and + [Out] in non-blocking mode this value is updated by the IPC service to the + actual reply length (in bytes). + @Param[in] f_Completion - Pointer to a completion callback to be used in non-blocking send mode; + The completion callback is invoked by the IPC service upon + completion of the IPC transaction (consisting of a message and an optional + reply); + If this pointer is NULL, the function is expected to block until the IPC + transaction is complete. + @Param[in] h_Arg - Abstract handle to the sending module; passed unchanged to the f_Completion + callback function as the first argument. + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error XX_IpcSendMessage(t_Handle h_Session, + uint8_t *p_Msg, + uint32_t msgLength, + uint8_t *p_Reply, + uint32_t *p_ReplyLength, + t_IpcMsgCompletion *f_Completion, + t_Handle h_Arg); + + +/** @} */ /* end of xx_ipc group */ +/** @} */ /* end of xx_id group */ + + +#endif /* __XX_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/integrations/P1023/Makefile +++ linux-3.13.0/drivers/net/dpa/NetCommSw/integrations/P1023/Makefile @@ -0,0 +1,9 @@ +# +# Makefile for the Freescale Ethernet controllers +# +EXTRA_CFLAGS += -DVERSION=\"\" +# +#Include netcomm SW specific definitions +include $(srctree)/drivers/net/dpa/NetCommSw/ncsw_config.mk + +obj-y += module_strings.o --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/integrations/P1023/module_strings.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/integrations/P1023/module_strings.c @@ -0,0 +1,71 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + + +/* Module names for debug messages */ +const char *moduleStrings[] = +{ + "" /* MODULE_UNKNOWN */ + ,"MEM" /* MODULE_ */ + ,"MM" /* MODULE_MM */ + ,"CORE" /* MODULE_CORE */ + ,"P1023" /* MODULE_P1023 */ + ,"MII" /* MODULE_MII */ + ,"PM" /* MODULE_PM */ + ,"MMU" /* MODULE_MMU */ + ,"PIC" /* MODULE_PIC */ + ,"L2 cache" /* MODULE_L2_CACHE */ + ,"DUART" /* MODULE_DUART */ + ,"SerDes" /* MODULE_SERDES */ + ,"PIO" /* MODULE_PIO */ + ,"QM" /* MODULE_QM */ + ,"BM" /* MODULE_BM */ + ,"SEC" /* MODULE_SEC */ + ,"FM" /* MODULE_FM */ + ,"FM-MURAM" /* MODULE_FM_MURAM */ + ,"FM-PCD" /* MODULE_FM_PCD */ + ,"FM-RTC" /* MODULE_FM_RTC */ + ,"FM-MAC" /* MODULE_FM_MAC */ + ,"FM-Port" /* MODULE_FM_PORT */ + ,"FM-MACSEC" /* MODULE_FM_MACSEC */ + ,"FM-MACSEC-SecY" /* MODULE_FM_MACSEC_SECY */ + ,"ECM" /* MODULE_ECM */ + ,"DMA" /* MODULE_DMA */ + ,"DDR" /* MODULE_DDR */ + ,"LAW" /* MODULE_LAW */ + ,"LBC" /* MODULE_LBC */ + ,"I2C" /* MODULE_I2C */ + ,"ESPI" /* MODULE_ESPI */ + ,"PCI" /* MODULE_PCI */ + ,"DPA" /* MODULE_DPA */ + ,"USB" /* MODULE_USB */ +}; --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/integrations/P3040_P4080_P5020/Makefile +++ linux-3.13.0/drivers/net/dpa/NetCommSw/integrations/P3040_P4080_P5020/Makefile @@ -0,0 +1,9 @@ +# +# Makefile for the Freescale Ethernet controllers +# +EXTRA_CFLAGS += -DVERSION=\"\" +# +#Include netcomm SW specific definitions +include $(srctree)/drivers/net/dpa/NetCommSw/ncsw_config.mk + +obj-y += module_strings.o --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/integrations/P3040_P4080_P5020/module_strings.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/integrations/P3040_P4080_P5020/module_strings.c @@ -0,0 +1,62 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* Module names for debug messages */ +const char *moduleStrings[] = +{ + "???" /* MODULE_UNKNOWN */ + ,"MEM" /* MODULE_ */ + ,"MM" /* MODULE_MM */ + ,"CORE" /* MODULE_CORE */ + ,"P4080" /* MODULE_P4080 */ + ,"P4080-Platform" /* MODULE_P4080_PLTFRM */ + ,"PM" /* MODULE_PM */ + ,"MMU" /* MODULE_MMU */ + ,"PIC" /* MODULE_PIC */ + ,"L3 cache (CPC)" /* MODULE_CPC */ + ,"DUART" /* MODULE_DUART */ + ,"SerDes" /* MODULE_SERDES */ + ,"PIO" /* MODULE_PIO */ + ,"QM" /* MODULE_QM */ + ,"BM" /* MODULE_BM */ + ,"SEC" /* MODULE_SEC */ + ,"LAW" /* MODULE_LAW */ + ,"LBC" /* MODULE_LBC */ + ,"PAMU" /* MODULE_PAMU */ + ,"FM" /* MODULE_FM */ + ,"FM-MURAM" /* MODULE_FM_MURAM */ + ,"FM-PCD" /* MODULE_FM_PCD */ + ,"FM-RTC" /* MODULE_FM_RTC */ + ,"FM-MAC" /* MODULE_FM_MAC */ + ,"FM-Port" /* MODULE_FM_PORT */ + ,"DPA" /* MODULE_DPA */ +}; --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/ncsw_config.mk +++ linux-3.13.0/drivers/net/dpa/NetCommSw/ncsw_config.mk @@ -0,0 +1,34 @@ +# +# Makefile config for the Freescale NetcommSW +# +NET_DPA = $(srctree)/drivers/net/ethernet/freescale +DRV_DPA = $(srctree)/drivers/net/dpa +NCSW = $(srctree)/drivers/net/dpa/NetCommSw + +ifdef CONFIG_FMAN_P3040_P4080_P5020 +EXTRA_CFLAGS +=-include $(NCSW)/p3040_4080_5020_dflags.h +endif +ifdef CONFIG_FMAN_P1023 +EXTRA_CFLAGS +=-include $(NCSW)/p1023_dflags.h +endif + +EXTRA_CFLAGS += -I$(DRV_DPA)/ +EXTRA_CFLAGS += -I$(NCSW)/inc +EXTRA_CFLAGS += -I$(NCSW)/inc/cores +EXTRA_CFLAGS += -I$(NCSW)/inc/etc +EXTRA_CFLAGS += -I$(NCSW)/inc/Peripherals + +ifdef CONFIG_FMAN_P3040_P4080_P5020 +EXTRA_CFLAGS += -I$(NCSW)/inc/integrations/P3040_P4080_P5020 +endif +ifdef CONFIG_FMAN_P1023 +EXTRA_CFLAGS += -I$(NCSW)/inc/integrations/P1023 +endif + +EXTRA_CFLAGS += -I$(NCSW)/src/inc +EXTRA_CFLAGS += -I$(NCSW)/src/inc/system +EXTRA_CFLAGS += -I$(NCSW)/src/inc/wrapper +EXTRA_CFLAGS += -I$(NCSW)/src/inc/xx +EXTRA_CFLAGS += -I$(srctree)/include/linux/fmd +EXTRA_CFLAGS += -I$(srctree)/include/linux/fmd/Peripherals +EXTRA_CFLAGS += -I$(srctree)/include/linux/fmd/integrations --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/p1023_dflags.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/p1023_dflags.h @@ -0,0 +1,65 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __dflags_h +#define __dflags_h + + +#define NCSW_LINUX +#if 0 +#define DEBUG +#endif + +#define P1023 +#define NCSW_PPC_CORE + +#define DEBUG_ERRORS 1 + +#if defined(DEBUG) +#define DEBUG_GLOBAL_LEVEL REPORT_LEVEL_INFO + +#define DEBUG_XX_MALLOC +#define DEBUG_MEM_LEAKS + +#else +#define DEBUG_GLOBAL_LEVEL REPORT_LEVEL_WARNING +#endif /* (DEBUG) */ + +#define REPORT_EVENTS 1 +#define EVENT_GLOBAL_LEVEL REPORT_LEVEL_MINOR + +#ifdef CONFIG_P4080_SIM +#error "Do not define CONFIG_P4080_SIM..." +#endif + + +#endif /* __dflags_h */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/p3040_4080_5020_dflags.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/p3040_4080_5020_dflags.h @@ -0,0 +1,62 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __dflags_h +#define __dflags_h + + +#define NCSW_LINUX + +#define P4080 +#define NCSW_PPC_CORE + +#define DEBUG_ERRORS 1 + +#if defined(DEBUG) +#define DEBUG_GLOBAL_LEVEL REPORT_LEVEL_INFO + +#define DEBUG_XX_MALLOC +#define DEBUG_MEM_LEAKS + +#else +#define DEBUG_GLOBAL_LEVEL REPORT_LEVEL_MAJOR +#endif /* (DEBUG) */ + +#define REPORT_EVENTS 0 +#define EVENT_GLOBAL_LEVEL REPORT_LEVEL_MINOR + +#ifdef CONFIG_P4080_SIM +#define SIMULATOR +#endif /* CONFIG_P4080_SIM */ + + +#endif /* __dflags_h */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/Makefile +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/Makefile @@ -0,0 +1,11 @@ +# +# Makefile for the Freescale Ethernet controllers +# +EXTRA_CFLAGS += -DVERSION=\"\" +# +#Include netcomm SW specific definitions +include $(srctree)/drivers/net/dpa/NetCommSw/ncsw_config.mk +# +obj-y += system/ +obj-y += wrapper/ +obj-y += xx/ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/inc/system/sys_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/inc/system/sys_ext.h @@ -0,0 +1,118 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __SYS_EXT_H +#define __SYS_EXT_H + +#include "std_ext.h" + + +/**************************************************************************//** + @Group sys_grp System Interfaces + + @Description Linux system programming interfaces. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group sys_gen_grp System General Interface + + @Description General definitions, structures and routines of the linux + system programming interface. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Collection Macros for Advanced Configuration Requests + @{ +*//***************************************************************************/ +#define SYS_MAX_ADV_CONFIG_ARGS 4 + /**< Maximum number of arguments in + an advanced configuration entry */ +/* @} */ + +/**************************************************************************//** + @Description System Object Advanced Configuration Entry + + This structure represents a single request for an advanced + configuration call on the initialized object. An array of such + requests may be contained in the settings structure of the + corresponding object. + + The maximum number of arguments is limited to #SYS_MAX_ADV_CONFIG_ARGS. +*//***************************************************************************/ +typedef struct t_SysObjectAdvConfigEntry +{ + void *p_Function; /**< Pointer to advanced configuration routine */ + + uintptr_t args[SYS_MAX_ADV_CONFIG_ARGS]; + /**< Array of arguments for the specified routine; + All arguments should be casted to uint32_t. */ +} t_SysObjectAdvConfigEntry; + + +/** @} */ /* end of sys_gen_grp */ +/** @} */ /* end of sys_grp */ + +#define PARAMS(_num, _params) ADV_CONFIG_PARAMS_##_num _params + +#define ADV_CONFIG_PARAMS_1(_type) \ + , (_type)p_Entry->args[0] + +#define SET_ADV_CONFIG_ARGS_1(_arg0) \ + p_Entry->args[0] = (uintptr_t )(_arg0); \ + +#define ARGS(_num, _params) SET_ADV_CONFIG_ARGS_##_num _params + +#define ADD_ADV_CONFIG_START(_p_Entries, _maxEntries) \ + { \ + t_SysObjectAdvConfigEntry *p_Entry; \ + t_SysObjectAdvConfigEntry *p_Entrys = (_p_Entries); \ + int i=0, max = (_maxEntries); \ + +#define ADD_ADV_CONFIG_END \ + } + +#define ADV_CONFIG_CHECK_START(_p_Entry) \ + { \ + t_SysObjectAdvConfigEntry *p_Entry = _p_Entry; \ + t_Error errCode; \ + +#define ADV_CONFIG_CHECK(_handle, _func, _params) \ + if (p_Entry->p_Function == _func) \ + { \ + errCode = _func(_handle _params); \ + } else + +#endif /* __SYS_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/inc/system/sys_io_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/inc/system/sys_io_ext.h @@ -0,0 +1,46 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __SYS_IO_EXT_H +#define __SYS_IO_EXT_H + +#include "std_ext.h" +#include "error_ext.h" + + +t_Error SYS_RegisterIoMap (uint64_t virtAddr, uint64_t physAddr, uint32_t size); +t_Error SYS_UnregisterIoMap (uint64_t virtAddr); +uint64_t SYS_PhysToVirt (uint64_t addr); +uint64_t SYS_VirtToPhys (uint64_t addr); + + +#endif /* __SYS_IO_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/inc/types_linux.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/inc/types_linux.h @@ -0,0 +1,200 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __TYPES_LINUX_H__ +#define __TYPES_LINUX_H__ + +#include + +#if defined(CONFIG_MODVERSIONS) && !defined(MODVERSIONS) +#define MODVERSIONS +#endif +#ifdef MODVERSIONS +#include +#endif /* MODVERSIONS */ + +#include +#include +#include + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11) + #error "This kernel is probably not supported!!!" +#elif (!((LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,19)) || \ + (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,27)) || \ + (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,30)))) + #warning "This kernel is probably not supported!!! You may need to add some fixes." +#endif /* LINUX_VERSION_CODE */ + + +typedef float float_t; /* Single precision floating point */ +typedef double double_t; /* Double precision floating point */ + + +#define _Packed +#define _PackedType __attribute__ ((packed)) + +typedef phys_addr_t physAddress_t; + +#define UINT8_MAX 0xFF +#define UINT8_MIN 0 +#define UINT16_MAX 0xFFFF +#define UINT16_MIN 0 +#define UINT32_MAX 0xFFFFFFFF +#define UINT32_MIN 0 +#define UINT64_MAX 0xFFFFFFFFFFFFFFFFLL +#define UINT64_MIN 0 +#define INT8_MAX 0x7F +#define INT8_MIN 0x80 +#define INT16_MAX 0x7FFF +#define INT16_MIN 0x8000 +#define INT32_MAX 0x7FFFFFFF +#define INT32_MIN 0x80000000 +#define INT64_MAX 0x7FFFFFFFFFFFFFFFLL +#define INT64_MIN 0x8000000000000000LL + +#define ON 1 +#define OFF 0 + +#define FALSE false +#define TRUE true + + +/************************/ +/* memory access macros */ +/************************/ +#define GET_UINT8(arg) *(volatile uint8_t *)(&(arg)) +#define GET_UINT16(arg) in_be16(&(arg))//*(volatile uint16_t*)(&(arg)) +#define GET_UINT32(arg) in_be32(&(arg))//*(volatile uint32_t*)(&(arg)) +#define GET_UINT64(arg) *(volatile uint64_t*)(&(arg)) + +#ifdef VERBOSE_WRITE +void XX_Print(char *str, ...); +#define WRITE_UINT8(arg, data) \ + do { XX_Print("ADDR: 0x%08x, VAL: 0x%02x\r\n", (uint32_t)&(arg), (data)); *(volatile uint8_t *)(&(arg)) = (data); } while (0) +#define WRITE_UINT16(arg, data) \ + do { XX_Print("ADDR: 0x%08x, VAL: 0x%04x\r\n", (uint32_t)&(arg), (data)); out_be16(&(arg), data); /* *(volatile uint16_t*)(&(arg)) = (data);*/ } while (0) +#define WRITE_UINT32(arg, data) \ + do { XX_Print("ADDR: 0x%08x, VAL: 0x%08x\r\n", (uint32_t)&(arg), (data)); out_be32(&(arg), data); /* *(volatile uint32_t*)(&(arg)) = (data);*/ } while (0) +#define WRITE_UINT64(arg, data) \ + do { XX_Print("ADDR: 0x%08x, VAL: 0x%016llx\r\n", (uint32_t)&(arg), (data)); *(volatile uint64_t*)(&(arg)) = (data); } while (0) + +#else /* not VERBOSE_WRITE */ +#define WRITE_UINT8(arg, data) *(volatile uint8_t *)(&(arg)) = (data) +#define WRITE_UINT16(arg, data) out_be16(&(arg), data)//*(volatile uint16_t*)(&(arg)) = (data) +#define WRITE_UINT32(arg, data) out_be32(&(arg), data)//*(volatile unsigned int *)(&(arg)) = (data) +#define WRITE_UINT64(arg, data) *(volatile uint64_t*)(&(arg)) = (data) +#endif /* not VERBOSE_WRITE */ + + +/*****************************************************************************/ +/* General stuff */ +/*****************************************************************************/ +#ifdef ARRAY_SIZE +#undef ARRAY_SIZE +#endif /* ARRAY_SIZE */ + +#ifdef MAJOR +#undef MAJOR +#endif /* MAJOR */ + +#ifdef MINOR +#undef MINOR +#endif /* MINOR */ + +#ifdef QE_SIZEOF_BD +#undef QE_SIZEOF_BD +#endif /* QE_SIZEOF_BD */ + +#ifdef BD_BUFFER_CLEAR +#undef BD_BUFFER_CLEAR +#endif /* BD_BUFFER_CLEAR */ + +#ifdef BD_BUFFER +#undef BD_BUFFER +#endif /* BD_BUFFER */ + +#ifdef BD_STATUS_AND_LENGTH_SET +#undef BD_STATUS_AND_LENGTH_SET +#endif /* BD_STATUS_AND_LENGTH_SET */ + +#ifdef BD_STATUS_AND_LENGTH +#undef BD_STATUS_AND_LENGTH +#endif /* BD_STATUS_AND_LENGTH */ + +#ifdef BD_BUFFER_ARG +#undef BD_BUFFER_ARG +#endif /* BD_BUFFER_ARG */ + +#ifdef BD_GET_NEXT +#undef BD_GET_NEXT +#endif /* BD_GET_NEXT */ + +#ifdef QE_SDEBCR_BA_MASK +#undef QE_SDEBCR_BA_MASK +#endif /* QE_SDEBCR_BA_MASK */ + +#ifdef BD_BUFFER_SET +#undef BD_BUFFER_SET +#endif /* BD_BUFFER_SET */ + +#ifdef UPGCR_PROTOCOL +#undef UPGCR_PROTOCOL +#endif /* UPGCR_PROTOCOL */ + +#ifdef UPGCR_TMS +#undef UPGCR_TMS +#endif /* UPGCR_TMS */ + +#ifdef UPGCR_RMS +#undef UPGCR_RMS +#endif /* UPGCR_RMS */ + +#ifdef UPGCR_ADDR +#undef UPGCR_ADDR +#endif /* UPGCR_ADDR */ + +#ifdef UPGCR_DIAG +#undef UPGCR_DIAG +#endif /* UPGCR_DIAG */ + +#ifdef PARAMS +#undef PARAMS +#endif /* PARAMS */ + +#ifdef NO_IRQ +#undef NO_IRQ +#endif /* NO_IRQ */ + +#define PRINT_LINE XX_Print("%s:\n %s [%d]\n",__FILE__,__FUNCTION__,__LINE__); + + +#endif /* __TYPES_LINUX_H__ */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/inc/wrapper/fsl_fman.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/inc/wrapper/fsl_fman.h @@ -0,0 +1,279 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fsl_fman.h + + @Description Linux internal kernel API +*//***************************************************************************/ + +#ifndef __FSL_FMAN_H +#define __FSL_FMAN_H + +#include +#include /* struct device */ +#include /* struct qman_fq */ +#include "dpaa_integration_ext.h" + +/**************************************************************************//** + @Group FM_LnxKern_grp Frame Manager Linux wrapper API + + @Description FM API functions, definitions and enums. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group FM_LnxKern_ctrl_grp Control Unit + + @Description Control Unit + + Internal Kernel Control Unit API + @{ +*//***************************************************************************/ + +/*****************************************************************************/ +/* Internal Linux kernel routines */ +/*****************************************************************************/ + +/**************************************************************************//** + @Description A structure .., +*//***************************************************************************/ +struct fm; + +/**************************************************************************//** + @Description A structure .., +*//***************************************************************************/ +struct fm_port; + +typedef int (*alloc_pcd_fqids)(struct device *dev, + uint32_t num, + uint8_t alignment, + uint32_t *base_fqid); + +typedef int (*free_pcd_fqids)(struct device *dev, + uint32_t base_fqid); + +struct fm_port_pcd_param { + alloc_pcd_fqids cba; + free_pcd_fqids cbf; + struct device *dev; +}; + +/**************************************************************************//** + @Description A structure of information about each of the external + buffer pools used by the port, +*//***************************************************************************/ +struct fm_port_pool_param { + uint8_t id; /**< External buffer pool id */ + uint16_t size; /**< External buffer pool buffer size */ +}; + +/**************************************************************************//** + @Description structure for additional Rx port parameters +*//***************************************************************************/ +struct fm_port_rx_params { + uint32_t errq; /**< Error Queue Id. */ + uint32_t defq; /**< Default Queue Id. */ + uint8_t num_pools; /**< Number of pools use by this port */ + struct fm_port_pool_param pool_param[FM_PORT_MAX_NUM_OF_EXT_POOLS]; + /**< Parameters for each pool */ + uint16_t priv_data_size; /**< Area that user may save for his own need (E.g. save the SKB) */ + bool parse_results; /**< Whether to have the parser-results in the Received buffer */ + bool hash_results; /**< Whether to have the hash-results in the Received buffer */ + bool time_stamp; /**< Whether to have the time-stamp in the Received buffer */ +}; + +/**************************************************************************//** + @Description structure for additional non-Rx port parameters +*//***************************************************************************/ +struct fm_port_non_rx_params { + uint32_t errq; /**< Error Queue Id. */ + uint32_t defq; /**< For Tx and HC - Default Confirmation queue, + 0 means no Tx confirmation for processed + frames. For OP - default Rx queue. */ + uint16_t priv_data_size; /**< Area that user may save for his own need (E.g. save the SKB) */ + bool parse_results; /**< Whether to put the parser-results in the Transmitted buffer */ + bool hash_results; /**< Whether to have the hash-results in the Received buffer */ + bool time_stamp; /**< Whether to have the time-stamp in the Received buffer */ +}; + + +/**************************************************************************//** + @Function fm_bind + + @Description Bind to a specific FM device. + + @Param[in] fm_dev - the OF handle of the FM device. + + @Return A handle of the FM device. + + @Cautions Allowed only after the port was created. +*//***************************************************************************/ +struct fm * fm_bind (struct device *fm_dev); + +/**************************************************************************//** + @Function fm_unbind + + @Description Un-bind from a specific FM device. + + @Param[in] fm - A handle of the FM device. + + @Cautions Allowed only after the port was created. +*//***************************************************************************/ +void fm_unbind(struct fm *fm); + +void * fm_get_handle(struct fm *fm); +void * fm_get_rtc_handle(struct fm *fm); +struct resource * fm_get_mem_region(struct fm *fm); + +/**************************************************************************//** + @Function fm_port_bind + + @Description Bind to a specific FM-port device (may be Rx or Tx port). + + @Param[in] fm_port_dev - the OF handle of the FM port device. + + @Return A handle of the FM port device. + + @Cautions Allowed only after the port was created. +*//***************************************************************************/ +struct fm_port * fm_port_bind (struct device *fm_port_dev); + +/**************************************************************************//** + @Function fm_port_unbind + + @Description Un-bind from a specific FM-port device (may be Rx or Tx port). + + @Param[in] port - A handle of the FM port device. + + @Cautions Allowed only after the port was created. +*//***************************************************************************/ +void fm_port_unbind(struct fm_port *port); + +/**************************************************************************//** + @Function fm_set_rx_port_params + + @Description Configure parameters for a specific Rx FM-port device. + + @Param[in] port - A handle of the FM port device. + @Param[in] params - Rx port parameters + + @Cautions Allowed only after the port is binded. +*//***************************************************************************/ +void fm_set_rx_port_params(struct fm_port *port, struct fm_port_rx_params *params); + +/**************************************************************************//** + @Function fm_port_pcd_bind + + @Description Bind as a listener on a port PCD. + + @Param[in] port - A handle of the FM port device. + @Param[in] params - PCD port parameters + + @Cautions Allowed only after the port is binded. +*//***************************************************************************/ +void fm_port_pcd_bind (struct fm_port *port, struct fm_port_pcd_param *params); + +/**************************************************************************//** + @Function fm_get_tx_port_channel + + @Description Get qman-channel number for this Tx port. + + @Param[in] port - A handle of the FM port device. + + @Return qman-channel number for this Tx port. + + @Cautions Allowed only after the port is binded. +*//***************************************************************************/ +int fm_get_tx_port_channel(struct fm_port *port); + +/**************************************************************************//** + @Function fm_set_tx_port_params + + @Description Configure parameters for a specific Tx FM-port device + + @Param[in] port - A handle of the FM port device. + @Param[in] params - Tx port parameters + + @Cautions Allowed only after the port is binded. +*//***************************************************************************/ +void fm_set_tx_port_params(struct fm_port *port, struct fm_port_non_rx_params *params); + +/**************************************************************************//** + @Function fm_port_enable + + @Description Enable specific FM-port device (may be Rx or Tx port). + + @Param[in] port - A handle of the FM port device. + + @Cautions Allowed only the port is initialized. +*//***************************************************************************/ +int fm_port_enable (struct fm_port *port); + +/**************************************************************************//** + @Function fm_port_disable + + @Description Disable specific FM-port device (may be Rx or Tx port). + + @Param[in] port - A handle of the FM port device. + + @Cautions Allowed only the port is initialized. +*//***************************************************************************/ +void fm_port_disable(struct fm_port *port); + +void * fm_port_get_handle(struct fm_port *port); + +/**************************************************************************//** + @Description Get base address of this port. Useful for accessing + port-specific registers (i.e., not common ones). + + @Param[in] port - A handle of the FM port device. + @Param[out] base_addr - The port's base addr (virtual address). +*//***************************************************************************/ +void fm_port_get_base_addr(const struct fm_port *port, uint64_t *base_addr); + +/**************************************************************************//** + @Description Lock function required before any FMD/LLD call. +*//***************************************************************************/ +void fm_mutex_lock(void); + +/**************************************************************************//** + @Description Unlock function required after any FMD/LLD call. +*//***************************************************************************/ +void fm_mutex_unlock(void); + +/** @} */ /* end of FM_LnxKern_ctrl_grp group */ +/** @} */ /* end of FM_LnxKern_grp group */ + + +#endif /* __FSL_FMAN_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/inc/wrapper/fsl_fman_test.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/inc/wrapper/fsl_fman_test.h @@ -0,0 +1,83 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File fsl_fman_test.h + + @Description +*//***************************************************************************/ + +#ifndef __FSL_FMAN_TEST_H +#define __FSL_FMAN_TEST_H + +#include + + +#define FMT_RX_ERR_Q 0xffffffff +#define FMT_RX_DFLT_Q 0xfffffffe +#define FMT_TX_ERR_Q 0xfffffffd +#define FMT_TX_CONF_Q 0xfffffffc + + +/**************************************************************************//** + @Function is_fman_test + + @Description Check if arriving frame belong to the test + + @Param[in] mac_dev - TODO + @Param[in] queueId - TODO + @Param[in] buffer - A pointer to the buffer to check. + @Param[in] size - size of the given buffer. + + @Return true if this buffer belongs to FMan test application; false otherwise. + + @Cautions Allowed only the port is initialized. +*//***************************************************************************/ +bool is_fman_test (void *mac_dev, + uint32_t queueId, + uint8_t *buffer, + uint32_t size); + +/**************************************************************************//** + @Function fman_test_ip_manip + + @Description IP header manipulation + + @Param[in] mac_dev - TODO + @Param[in] data - A pointer to the data (payload) to manipulate. + + @Cautions Allowed only the port is initialized. +*//***************************************************************************/ +void fman_test_ip_manip (void *mac_dev, uint8_t *data); + + +#endif /* __FSL_FMAN_TEST_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/inc/wrapper/lnxwrp_fm_ext.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/inc/wrapper/lnxwrp_fm_ext.h @@ -0,0 +1,162 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/****************************************************************************** + @File lnxwrp_fm_ext.h + + @Description TODO +*//***************************************************************************/ + +#ifndef __LNXWRP_FM_EXT_H +#define __LNXWRP_FM_EXT_H + +#include "std_ext.h" +#include "sys_ext.h" +#include "fm_ext.h" +#include "fm_muram_ext.h" +#include "fm_pcd_ext.h" +#include "fm_port_ext.h" +#include "fm_mac_ext.h" +#include "fm_rtc_ext.h" + + +/**************************************************************************//** + @Group FM_LnxKern_grp Frame Manager Linux wrapper API + + @Description FM API functions, definitions and enums. + + @{ +*//***************************************************************************/ + +/**************************************************************************//** + @Group FM_LnxKern_init_grp Initialization Unit + + @Description Initialization Unit + + Initialization Flow: + Initialization of the FM Module will be carried out by the Linux + kernel according to the following sequence: + a. Calling the initialization routine with no parameters. + b. The driver will register to the Device-Tree. + c. The Linux Device-Tree will initiate a call to the driver for + initialization. + d. The driver will read the appropriate information from the Device-Tree + e. [Optional] Calling the advance initialization routines to change + driver's defaults. + f. Initialization of the device will be automatically upon using it. + + @{ +*//***************************************************************************/ + +typedef struct t_WrpFmDevSettings +{ + t_FmParams param; + t_SysObjectAdvConfigEntry *advConfig; +} t_WrpFmDevSettings; + +typedef struct t_WrpFmPcdDevSettings +{ + t_FmPcdParams param; + t_SysObjectAdvConfigEntry *advConfig; +} t_WrpFmPcdDevSettings; + +typedef struct t_WrpFmPortDevSettings +{ + t_FmPortParams param; + t_SysObjectAdvConfigEntry *advConfig; +} t_WrpFmPortDevSettings; + +typedef struct t_WrpFmMacDevSettings +{ + t_FmMacParams param; + t_SysObjectAdvConfigEntry *advConfig; +} t_WrpFmMacDevSettings; + + +/**************************************************************************//** + @Function LNXWRP_FM_Init + + @Description Initialize the FM linux wrapper. + + @Return A handle (descriptor) of the newly created FM Linux wrapper + structure. +*//***************************************************************************/ +t_Handle LNXWRP_FM_Init(void); + +/**************************************************************************//** + @Function LNXWRP_FM_Free + + @Description Free the FM linux wrapper. + + @Param[in] h_LnxWrpFm - A handle to the FM linux wrapper. + + @Return E_OK on success; Error code otherwise. +*//***************************************************************************/ +t_Error LNXWRP_FM_Free(t_Handle h_LnxWrpFm); + +/**************************************************************************//** + @Function LNXWRP_FM_GetMacHandle + + @Description Get the FM-MAC LLD handle from the FM linux wrapper. + + @Param[in] h_LnxWrpFm - A handle to the FM linux wrapper. + @Param[in] fmId - Index of the FM device to get the MAC handle from. + @Param[in] macId - Index of the mac handle. + + @Return A handle of the LLD compressor. +*//***************************************************************************/ +t_Handle LNXWRP_FM_GetMacHandle(t_Handle h_LnxWrpFm, uint8_t fmId, uint8_t macId); + +#ifdef CONFIG_FSL_FMAN_TEST +t_Handle LNXWRP_FM_TEST_Init(void); +t_Error LNXWRP_FM_TEST_Free(t_Handle h_FmTestLnxWrp); +#endif /* CONFIG_FSL_FMAN_TEST */ + +/** @} */ /* end of FM_LnxKern_init_grp group */ + + +/**************************************************************************//** + @Group FM_LnxKern_ctrl_grp Control Unit + + @Description Control Unit + + TODO + @{ +*//***************************************************************************/ + +#include "fsl_fman.h" + +/** @} */ /* end of FM_LnxKern_ctrl_grp group */ +/** @} */ /* end of FM_LnxKern_grp group */ + + +#endif /* __LNXWRP_FM_EXT_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/inc/xx/xx.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/inc/xx/xx.h @@ -0,0 +1,50 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __XX_H +#define __XX_H + +#include "xx_ext.h" + +void * xx_Malloc(uint32_t n); +void xx_Free(void *p); + +void *xx_MallocSmart(uint32_t size, int memPartitionId, uint32_t align); +void xx_FreeSmart(void *p); + +/* never used: */ +#define GetDeviceName(irq) ((char *)NULL) + +int GetDeviceIrqNum(int irq); + + +#endif /* __XX_H */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/system/Makefile +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/system/Makefile @@ -0,0 +1,10 @@ +# +# Makefile for the Freescale Ethernet controllers +# +EXTRA_CFLAGS += -DVERSION=\"\" +# +#Include netcomm SW specific definitions +include $(srctree)/drivers/net/dpa/NetCommSw/ncsw_config.mk +# + +obj-y += sys_io.o --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/system/sys_io.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/system/sys_io.c @@ -0,0 +1,171 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include + +#if defined(CONFIG_MODVERSIONS) && !defined(MODVERSIONS) +#define MODVERSIONS +#endif +#ifdef MODVERSIONS +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) +#include +#else +#include +#endif /* LINUX_VERSION_CODE */ +#endif /* MODVERSIONS */ + +#include +#include + +#include + +#include "std_ext.h" +#include "error_ext.h" +#include "string_ext.h" +#include "list_ext.h" +#include "sys_io_ext.h" + + +#define __ERR_MODULE__ MODULE_UNKNOWN + + +typedef struct { + uint64_t virtAddr; + uint64_t physAddr; + uint32_t size; + t_List node; +} t_IoMap; +#define IOMAP_OBJECT(ptr) LIST_OBJECT(ptr, t_IoMap, node) + +LIST(mapsList); + + +static void EnqueueIoMap(t_IoMap *p_IoMap) +{ + uint32_t intFlags; + + intFlags = XX_DisableAllIntr(); + LIST_AddToTail(&p_IoMap->node, &mapsList); + XX_RestoreAllIntr(intFlags); +} + +static t_IoMap * FindIoMapByVirtAddr(uint64_t addr) +{ + t_IoMap *p_IoMap; + t_List *p_Pos; + + LIST_FOR_EACH(p_Pos, &mapsList) + { + p_IoMap = IOMAP_OBJECT(p_Pos); + if ((addr >= p_IoMap->virtAddr) && (addr < p_IoMap->virtAddr+p_IoMap->size)) + return p_IoMap; + } + + return NULL; +} + +static t_IoMap * FindIoMapByPhysAddr(uint64_t addr) +{ + t_IoMap *p_IoMap; + t_List *p_Pos; + + LIST_FOR_EACH(p_Pos, &mapsList) + { + p_IoMap = IOMAP_OBJECT(p_Pos); + if ((addr >= p_IoMap->physAddr) && (addr < p_IoMap->physAddr+p_IoMap->size)) + return p_IoMap; + } + + return NULL; +} + +t_Error SYS_RegisterIoMap (uint64_t virtAddr, uint64_t physAddr, uint32_t size) +{ + t_IoMap *p_IoMap; + + p_IoMap = (t_IoMap*)XX_Malloc(sizeof(t_IoMap)); + if (!p_IoMap) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("message handler object!!!")); + memset(p_IoMap, 0, sizeof(t_IoMap)); + + p_IoMap->virtAddr = virtAddr; + p_IoMap->physAddr = physAddr; + p_IoMap->size = size; + + INIT_LIST(&p_IoMap->node); + EnqueueIoMap(p_IoMap); + + return E_OK; +} + +t_Error SYS_UnregisterIoMap (uint64_t virtAddr) +{ + t_IoMap *p_IoMap = FindIoMapByVirtAddr(virtAddr); + if (!p_IoMap) + RETURN_ERROR(MINOR, E_NO_DEVICE, ("message handler not found in list!!!")); + + LIST_Del(&p_IoMap->node); + XX_Free(p_IoMap); + + return E_OK; +} + +uint64_t SYS_PhysToVirt(uint64_t addr) +{ + t_IoMap *p_IoMap = FindIoMapByPhysAddr(addr); + if (p_IoMap) + { + /* This is optimization - put the latest in the list-head - like a cache */ + if (mapsList.p_Next != &p_IoMap->node) + { + uint32_t intFlags = XX_DisableAllIntr(); + LIST_DelAndInit(&p_IoMap->node); + LIST_Add(&p_IoMap->node, &mapsList); + XX_RestoreAllIntr(intFlags); + } + return (uint64_t)(addr - p_IoMap->physAddr + p_IoMap->virtAddr); + } + return PTR_TO_UINT(phys_to_virt((unsigned long)addr)); +} + +uint64_t SYS_VirtToPhys(uint64_t addr) +{ + t_IoMap *p_IoMap; + + if (addr == 0) + return 0; + + p_IoMap = FindIoMapByVirtAddr(addr); + if (p_IoMap) + return (uint64_t)(addr - p_IoMap->virtAddr + p_IoMap->physAddr); + return (uint64_t)virt_to_phys(UINT_TO_PTR(addr)); +} --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/wrapper/Makefile +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/wrapper/Makefile @@ -0,0 +1,18 @@ +# +# Makefile for the Freescale Ethernet controllers +# +EXTRA_CFLAGS += -DVERSION=\"\" +# +#Include netcomm SW specific definitions +include $(srctree)/drivers/net/dpa/NetCommSw/ncsw_config.mk + +EXTRA_CFLAGS += -I$(NCSW_FM_INC) +EXTRA_CFLAGS += -I$(NET_DPA) + +obj-y += fsl-ncsw-PFM.o +obj-$(CONFIG_FSL_FMAN_TEST) += fman_test.o + +fsl-ncsw-PFM-objs := lnxwrp_fm.o lnxwrp_fm_port.o lnxwrp_ioctls_fm.o \ + lnxwrp_sysfs.o lnxwrp_sysfs_fm.o lnxwrp_sysfs_fm_port.o \ + lnxwrp_resources.o +obj-$(CONFIG_COMPAT) += lnxwrp_ioctls_fm_compat.o --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/wrapper/fman_test.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/wrapper/fman_test.c @@ -0,0 +1,1076 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + + @File fman_test.c + + @Author Moti Bar + + @Description FM Linux test + +*/ + +/* Linux Headers ------------------- */ +#include + +#if defined(CONFIG_MODVERSIONS) && !defined(MODVERSIONS) +#define MODVERSIONS +#endif +#ifdef MODVERSIONS +#include +#endif /* MODVERSIONS */ + +#include +#include +#include +#include +#include +#include +#include +#include /*struct qman_fq */ +#include +#include +#include /*for mixed environment */ +#include +#include + +/* NetCommSw Headers --------------- */ +#include "std_ext.h" +#include "error_ext.h" +#include "debug_ext.h" +#include "list_ext.h" +#include "fm_ext.h" + +#include "fm_test_ioctls.h" +#include "fsl_fman.h" +#include "fsl_fman_test.h" +#include "fm_port_ext.h" + + +#define __ERR_MODULE__ MODULE_FM + +#define FMT_FRM_WATERMARK 0xdeadbeefdeadbeeaLL + +#ifdef CONFIG_COMPAT +/* Define this for KS64b - US32b */ +#define FMAN_TEST_CONFIG_COMPAT +#warning Please make sure you have the right value for FMAN_TEST_CONFIG_COMPAT +#endif + +typedef struct { + ioc_fmt_buff_desc_t buff; + t_List node; +} t_FmTestFrame; + +#define FMT_FRAME_OBJECT(ptr) LIST_OBJECT(ptr, t_FmTestFrame, node) + +typedef struct t_FmTestFq { + struct qman_fq fq_base; + struct list_head list; + void *port; + bool init; +} t_FmTestFq; + +typedef struct { + bool valid; + uint8_t id; + ioc_fmt_port_type portType; + ioc_diag_mode diag; + bool echo; + bool ip_header_manip; + struct fm_port *p_TxPort; + t_Handle h_TxFmPortDev; + struct fm_port *p_RxPort; + t_Handle h_RxFmPortDev; + t_Handle h_Mac; + uint64_t fmPhysBaseAddr; + t_List rxFrmsQ; + + int numOfTxQs; + struct qman_fq *p_TxFqs[8]; +} t_FmTestPort; + +typedef struct { + int major; + t_FmTestPort ports[IOC_FMT_MAX_NUM_OF_PORTS]; + struct class *fm_test_class; +} t_FmTest; + + +static t_FmTest fmTest; + + +static t_Error Set1GMacIntLoopback(t_FmTestPort *p_FmTestPort, bool en) +{ +#define FM_1GMAC0_OFFSET 0x000e0000 +#define FM_1GMAC_CMD_CONF_CTRL_OFFSET 0x100 +#define MACCFG1_LOOPBACK 0x00000100 + + uint64_t baseAddr, regAddr; + uint32_t tmpVal; + + baseAddr = p_FmTestPort->fmPhysBaseAddr + (FM_1GMAC0_OFFSET + (p_FmTestPort->id*0x2000)); + + baseAddr = PTR_TO_UINT(ioremap(baseAddr, 0x1000)); + + regAddr = baseAddr + FM_1GMAC_CMD_CONF_CTRL_OFFSET; + tmpVal = GET_UINT32(*((uint32_t *)UINT_TO_PTR(regAddr))); + if (en) + tmpVal |= MACCFG1_LOOPBACK; + else + tmpVal &= ~MACCFG1_LOOPBACK; + WRITE_UINT32(*((uint32_t *)UINT_TO_PTR(regAddr)), tmpVal); + + iounmap(UINT_TO_PTR(baseAddr)); + + return E_OK; +} + +#ifndef FM_10G_MAC_NO_CTRL_LOOPBACK +static t_Error Set10GMacIntLoopback(t_FmTestPort *p_FmTestPort, bool en) +{ +#define FM_10GMAC0_OFFSET 0x000f0000 +#define FM_10GMAC_CMD_CONF_CTRL_OFFSET 0x8 +#define CMD_CFG_LOOPBACK_EN 0x00000400 + + uint64_t baseAddr, regAddr; + uint32_t tmpVal; + + baseAddr = p_FmTestPort->fmPhysBaseAddr + (FM_10GMAC0_OFFSET + ((p_FmTestPort->id-FM_MAX_NUM_OF_1G_RX_PORTS)*0x2000)); + + baseAddr = PTR_TO_UINT(ioremap(baseAddr, 0x1000)); + + regAddr = baseAddr + FM_10GMAC_CMD_CONF_CTRL_OFFSET; + tmpVal = GET_UINT32(*((uint32_t *)UINT_TO_PTR(regAddr))); + if (en) + tmpVal |= CMD_CFG_LOOPBACK_EN; + else + tmpVal &= ~CMD_CFG_LOOPBACK_EN; + WRITE_UINT32(*((uint32_t *)UINT_TO_PTR(regAddr)), tmpVal); + + iounmap(UINT_TO_PTR(baseAddr)); + + return E_OK; +} +#endif /* !FM_10G_MAC_NO_CTRL_LOOPBACK */ + +static t_Error SetMacIntLoopback(t_FmTestPort *p_FmTestPort, bool en) +{ + + if (p_FmTestPort->portType == e_IOC_FMT_PORT_T_RXTX) + { + if (p_FmTestPort->id < FM_MAX_NUM_OF_1G_RX_PORTS) + return Set1GMacIntLoopback(p_FmTestPort, en); + else if ((p_FmTestPort->id >= FM_MAX_NUM_OF_1G_RX_PORTS) && (p_FmTestPort->id < FM_MAX_NUM_OF_1G_RX_PORTS + FM_MAX_NUM_OF_10G_RX_PORTS)) +#ifndef FM_10G_MAC_NO_CTRL_LOOPBACK + return Set10GMacIntLoopback(p_FmTestPort, en); +#else + RETURN_ERROR(MINOR, E_NOT_SUPPORTED, ("TGEC don't have internal-loopback")); +#endif /* !FM_10G_MAC_NO_CTRL_LOOPBACK */ + } + else if (p_FmTestPort->portType == e_IOC_FMT_PORT_T_OP) + return E_OK; /* no Mac loopback can be set on OH ports */ + else + RETURN_ERROR(MINOR, E_INVALID_VALUE, ("fm-port-test id!")); + RETURN_ERROR(MINOR, E_INVALID_STATE, NO_MSG); +} + +static void EnqueueFrameToRxQ(t_FmTestPort *p_FmTestPort, t_FmTestFrame *p_FmTestFrame) +{ + uint32_t intFlags; + + intFlags = XX_DisableAllIntr(); + LIST_AddToTail(&p_FmTestFrame->node, &p_FmTestPort->rxFrmsQ); + XX_RestoreAllIntr(intFlags); +} + +static t_FmTestFrame * DequeueFrameFromRxQ(t_FmTestPort *p_FmTestPort) +{ + t_FmTestFrame *p_FmTestFrame = NULL; + uint32_t intFlags; + + intFlags = XX_DisableAllIntr(); + if (!LIST_IsEmpty(&p_FmTestPort->rxFrmsQ)) + { + p_FmTestFrame = FMT_FRAME_OBJECT(p_FmTestPort->rxFrmsQ.p_Next); + LIST_DelAndInit(&p_FmTestFrame->node); + } + XX_RestoreAllIntr(intFlags); + + return p_FmTestFrame; +} + +static enum qman_cb_dqrr_result egress_dqrr(struct qman_portal *portal, + struct qman_fq *fq, + const struct qm_dqrr_entry *dq) +{ + WARN(1, "FMD: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__); + return qman_cb_dqrr_consume; +} + +static void egress_ern(struct qman_portal *portal, + struct qman_fq *fq, + const struct qm_mr_entry *msg) +{ + WARN(1, "FMD: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__); +} + +static struct qman_fq * FqAlloc(t_FmTestPort *p_FmTestPort, + uint32_t fqid, + uint32_t flags, + uint16_t channel, + uint8_t wq) +{ + int _errno; + struct qman_fq *fq = NULL; + t_FmTestFq *p_FmtFq; + struct qm_mcc_initfq initfq; + + p_FmtFq = (t_FmTestFq *)XX_Malloc(sizeof(t_FmTestFq)); + if (!p_FmtFq) { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FQ obj!!!")); + return NULL; + } + + p_FmtFq->fq_base.cb.dqrr = egress_dqrr; + p_FmtFq->fq_base.cb.ern = p_FmtFq->fq_base.cb.dc_ern = p_FmtFq->fq_base.cb.fqs = egress_ern; + p_FmtFq->port = (void *)p_FmTestPort; + if (fqid == 0) { + flags |= QMAN_FQ_FLAG_DYNAMIC_FQID; + flags &= ~QMAN_FQ_FLAG_NO_MODIFY; + } else { + flags &= ~QMAN_FQ_FLAG_DYNAMIC_FQID; + } + + p_FmtFq->init = !(flags & QMAN_FQ_FLAG_NO_MODIFY); + + DBG(TRACE, ("fqid %d, flags 0x%08x, channel %d, wq %d",fqid,flags,channel,wq)); + + _errno = qman_create_fq(fqid, flags, &p_FmtFq->fq_base); + if (unlikely(_errno)) { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FQ obj - qman_new_fq!!!")); + XX_Free(p_FmtFq); + return NULL; + } + fq = &p_FmtFq->fq_base; + + if (p_FmtFq->init) { + initfq.we_mask = QM_INITFQ_WE_DESTWQ; + initfq.fqd.dest.channel = channel; + initfq.fqd.dest.wq = wq; + + _errno = qman_init_fq(fq, QMAN_INITFQ_FLAG_SCHED, &initfq); + if (unlikely(_errno < 0)) { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FQ obj - qman_init_fq!!!")); + qman_destroy_fq(fq, 0); + XX_Free(p_FmtFq); + return NULL; + } + } + + return fq; +} + +static t_Error PortInit (t_FmTestPort *p_FmTestPort, ioc_fmt_port_param_t *p_Params) +{ + struct device_node *fm_node, *fm_port_node; + const uint32_t *uint32_prop; + int _errno=0, lenp; + uint32_t i; + static struct of_device_id fm_node_of_match[] = { + { .compatible = "fsl,fman", }, + { /* end of list */ }, + }; + + INIT_LIST(&p_FmTestPort->rxFrmsQ); + p_FmTestPort->numOfTxQs = p_Params->num_tx_queues; + p_FmTestPort->id = p_Params->fm_port_id; + p_FmTestPort->portType = p_Params->fm_port_type; + p_FmTestPort->diag = e_IOC_DIAG_MODE_NONE; + p_FmTestPort->ip_header_manip = FALSE; + + /* Get all the FM nodes */ + for_each_matching_node(fm_node, fm_node_of_match) { + + uint32_prop = (uint32_t *)of_get_property(fm_node, "cell-index", &lenp); + if (unlikely(uint32_prop == NULL)) { + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("of_get_property(%s, cell-index) failed", fm_node->full_name)); + } + if (WARN_ON(lenp != sizeof(uint32_t))) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("of_get_property(%s, cell-index) invalid", fm_node->full_name)); + if (*uint32_prop == p_Params->fm_id) { + struct resource res; + /* Get the FM address */ + _errno = of_address_to_resource(fm_node, 0, &res); + if (unlikely(_errno < 0)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("of_address_to_resource() = %d", _errno)); + + p_FmTestPort->fmPhysBaseAddr = res.start; + + for_each_child_of_node(fm_node, fm_port_node) { + struct platform_device *of_dev; + + uint32_prop = (uint32_t *)of_get_property(fm_port_node, "cell-index", &lenp); + if (uint32_prop == NULL) + continue; + + if (of_device_is_compatible(fm_port_node, "fsl,fman-port-oh") && + (p_FmTestPort->portType == e_IOC_FMT_PORT_T_OP)) { + if (*uint32_prop == p_FmTestPort->id) + { + of_dev = of_find_device_by_node(fm_port_node); + if (unlikely(of_dev == NULL)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("fm id!")); + p_FmTestPort->p_TxPort = fm_port_bind(&of_dev->dev); + p_FmTestPort->h_TxFmPortDev = (t_Handle)fm_port_get_handle(p_FmTestPort->p_TxPort); + p_FmTestPort->h_RxFmPortDev = p_FmTestPort->h_TxFmPortDev; + p_FmTestPort->h_Mac = NULL; + break; + } + } + else if ((*uint32_prop == p_FmTestPort->id) && + p_FmTestPort->portType == e_IOC_FMT_PORT_T_RXTX) { + of_dev = of_find_device_by_node(fm_port_node); + if (unlikely(of_dev == NULL)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("fm id!")); + if(of_device_is_compatible(fm_port_node, "fsl,fman-port-1g-tx")) + { + p_FmTestPort->p_TxPort = fm_port_bind(&of_dev->dev); + p_FmTestPort->h_TxFmPortDev = (t_Handle)fm_port_get_handle(p_FmTestPort->p_TxPort); + } + else if(of_device_is_compatible(fm_port_node, "fsl,fman-port-1g-rx")) + { + p_FmTestPort->p_RxPort = fm_port_bind(&of_dev->dev); + p_FmTestPort->h_RxFmPortDev = (t_Handle)fm_port_get_handle(p_FmTestPort->p_RxPort); + } + else if (of_device_is_compatible(fm_port_node, "fsl,fman-1g-mac")) + p_FmTestPort->h_Mac = (typeof(p_FmTestPort->h_Mac))dev_get_drvdata(&of_dev->dev); + else + continue; + if(p_FmTestPort->h_TxFmPortDev && p_FmTestPort->h_RxFmPortDev && p_FmTestPort->h_Mac) + break; + } + else if (((*uint32_prop + FM_MAX_NUM_OF_1G_RX_PORTS )== p_FmTestPort->id) && + p_FmTestPort->portType == e_IOC_FMT_PORT_T_RXTX) { + of_dev = of_find_device_by_node(fm_port_node); + if (unlikely(of_dev == NULL)) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("fm id!")); + if(of_device_is_compatible(fm_port_node, "fsl,fman-port-10g-tx")) + { + p_FmTestPort->p_TxPort = fm_port_bind(&of_dev->dev); + p_FmTestPort->h_TxFmPortDev = (t_Handle)fm_port_get_handle(p_FmTestPort->p_TxPort); + } + else if(of_device_is_compatible(fm_port_node, "fsl,fman-port-10g-rx")) + { + p_FmTestPort->p_RxPort = fm_port_bind(&of_dev->dev); + p_FmTestPort->h_RxFmPortDev = (t_Handle)fm_port_get_handle(p_FmTestPort->p_RxPort); + } + else if (of_device_is_compatible(fm_port_node, "fsl,fman-10g-mac")) + p_FmTestPort->h_Mac = (typeof(p_FmTestPort->h_Mac))dev_get_drvdata(&of_dev->dev); + else + continue; + if(p_FmTestPort->h_TxFmPortDev && p_FmTestPort->h_RxFmPortDev && p_FmTestPort->h_Mac) + break; + } + } //for_each_child + } + } //for each matching node + + DBG(TRACE, ("h_TxFmPortDev - 0x%08x, h_RxFmPortDev - 0x%08x, h_Mac - 0x%08x\n", + p_FmTestPort->h_TxFmPortDev,p_FmTestPort->h_RxFmPortDev,p_FmTestPort->h_Mac)); + + if(p_FmTestPort->h_TxFmPortDev == 0 || p_FmTestPort->h_RxFmPortDev == 0) + RETURN_ERROR(MINOR, E_INVALID_ADDRESS, ("Bad pointers!")); + + //init Queues + for (i=0; inumOfTxQs; i++) { + p_FmTestPort->p_TxFqs[i] = + FqAlloc(p_FmTestPort, + 0, + QMAN_FQ_FLAG_TO_DCPORTAL, + fm_get_tx_port_channel(p_FmTestPort->p_TxPort), + i); + if (IS_ERR(p_FmTestPort->p_TxFqs[i])) + RETURN_ERROR(MAJOR, E_INVALID_HANDLE, ("Tx FQs!")); + } + + p_FmTestPort->valid = TRUE; + + return E_OK; +} + + +bool is_fman_test (void *mac_dev, + uint32_t queueId, + uint8_t *buffer, + uint32_t size) +{ + t_FmTest *p_FmTest = &fmTest; + t_FmTestPort *p_FmTestPort=NULL; + t_FmTestFrame *p_FmTestFrame; + uint32_t count=size-7; + uint64_t temp; + uint8_t *temp_buf=buffer, i; + bool fman_test_flag = false; + uint32_t dataOffset; + struct fm_port *fm_port = (struct fm_port *) mac_dev; + +#if 0 + if ((queueId == FMT_TX_CONF_Q) || (queueId == FMT_TX_ERR_Q)) + { + /* Check for the FM-test-port object existence, otherwise we make wrong frees all the time */ + for (i=0; iports[i].h_Mac) + p_FmTestPort = &p_FmTest->ports[i]; + if (!p_FmTestPort) + return false; + + if (buffer != NULL) + XX_Free(buffer); + return true; + } +#endif + + /* Get the FM-test-port object */ + for (i=0; iports[i].h_Mac && mac_dev == p_FmTest->ports[i].h_Mac) || + fm_port == p_FmTest->ports[i].p_TxPort) + { + p_FmTestPort = &p_FmTest->ports[i]; + break; + } + if (!p_FmTestPort) + return false; + + /* Check according to watermark if this frame is for FM-test */ + while(count--) + { + temp = *(uint64_t *)temp_buf; + if (temp == FMT_FRM_WATERMARK) + { + fman_test_flag = true; + break; + } + temp_buf++; + } + + if (fman_test_flag /*|| p_FmTestPort->echo*/) + { + if ((queueId == FMT_TX_CONF_Q) || (queueId == FMT_TX_ERR_Q)) + { + if (buffer != NULL) + XX_Free(buffer); + return true; + } + + DBG(TRACE, ("Port %d got FMUC frame\n", p_FmTestPort->id)); + dataOffset = FM_PORT_GetBufferDataOffset(p_FmTestPort->h_RxFmPortDev); + + p_FmTestFrame = (t_FmTestFrame *)XX_Malloc(sizeof(t_FmTestFrame)); + /* dump frame... no more space left on device */ + if(p_FmTestFrame == NULL) + return false; + + memset(p_FmTestFrame, 0, sizeof(t_FmTestFrame)); + INIT_LIST(&p_FmTestFrame->node); + + p_FmTestFrame->buff.p_data = (uint8_t *)XX_Malloc(size * sizeof(uint8_t)); + /* No more space left on device*/ + if(p_FmTestFrame->buff.p_data == NULL){ + XX_Free(p_FmTestFrame); + return false; + } + + p_FmTestFrame->buff.size = size-dataOffset; + p_FmTestFrame->buff.qid = queueId; + + memcpy(p_FmTestFrame->buff.p_data, + (uint8_t *)PTR_MOVE(buffer, dataOffset), + p_FmTestFrame->buff.size); + + memcpy(p_FmTestFrame->buff.buff_context.fm_prs_res, + FM_PORT_GetBufferPrsResult(p_FmTestPort->h_RxFmPortDev, (char*)buffer), + 32); + + EnqueueFrameToRxQ(p_FmTestPort, p_FmTestFrame); + return true; + } + + return false; +} + +void fman_test_ip_manip (void *mac_dev, uint8_t *data) +{ + t_FmTest *p_FmTest = &fmTest; + t_FmTestPort *p_FmTestPort=NULL; + struct iphdr *iph; + uint32_t *p_Data = (uint32_t *)data; + uint32_t net; + uint32_t saddr, daddr; + uint8_t i; + + /* Get the FM-test-port object */ + for (i=0; iports[i].h_Mac) + p_FmTestPort = &p_FmTest->ports[i]; + if (!p_FmTestPort || !p_FmTestPort->ip_header_manip) + return; + + iph = (struct iphdr *)p_Data; + saddr = iph->saddr; + daddr = iph->daddr; + + /* If it is ARP packet ... */ + if (*p_Data == 0x00010800) + { + saddr = *((uint32_t *)PTR_MOVE(p_Data, 14)); + daddr = *((uint32_t *)PTR_MOVE(p_Data, 24)); + } + + DBG(TRACE, + ("\nSrc IP before header-manipulation: %d.%d.%d.%d" + "\nDest IP before header-manipulation: %d.%d.%d.%d", + (int)((saddr & 0xff000000) >> 24), + (int)((saddr & 0x00ff0000) >> 16), + (int)((saddr & 0x0000ff00) >> 8), + (int)((saddr & 0x000000ff) >> 0), + (int)((daddr & 0xff000000) >> 24), + (int)((daddr & 0x00ff0000) >> 16), + (int)((daddr & 0x0000ff00) >> 8), + (int)((daddr & 0x000000ff) >> 0))); + + if ((p_FmTestPort->diag == e_IOC_DIAG_MODE_CTRL_LOOPBACK) || + (p_FmTestPort->diag == e_IOC_DIAG_MODE_CHIP_LOOPBACK) || + (p_FmTestPort->diag == e_IOC_DIAG_MODE_PHY_LOOPBACK) || + (p_FmTestPort->diag == e_IOC_DIAG_MODE_LINE_LOOPBACK)) + { + net = saddr; + saddr = daddr; + daddr = net; + } + else + { + /* We allow only up to 10 eth ports */ + net = ((daddr & 0x000000ff) % 10); + saddr = (uint32_t)((saddr & ~0x0000ff00) | (net << 8)); + daddr = (uint32_t)((daddr & ~0x0000ff00) | (net << 8)); + } + + /* If not ARP ... */ + if (*p_Data != 0x00010800) + { + iph->check = 0; + + iph->saddr = saddr; + iph->daddr = daddr; + iph->check = ip_fast_csum((unsigned char *)iph, iph->ihl); + } + else /* The packet is ARP */ + { + *((uint32_t *)PTR_MOVE(p_Data, 14)) = saddr; + *((uint32_t *)PTR_MOVE(p_Data, 24)) = daddr; + } + + DBG(TRACE, + ("\nSrc IP after header-manipulation: %d.%d.%d.%d" + "\nDest IP after header-manipulation: %d.%d.%d.%d", + (int)((saddr & 0xff000000) >> 24), + (int)((saddr & 0x00ff0000) >> 16), + (int)((saddr & 0x0000ff00) >> 8), + (int)((saddr & 0x000000ff) >> 0), + (int)((daddr & 0xff000000) >> 24), + (int)((daddr & 0x00ff0000) >> 16), + (int)((daddr & 0x0000ff00) >> 8), + (int)((daddr & 0x000000ff) >> 0))); +} + + +/*****************************************************************************/ +/* API routines for the FM Linux Device */ +/*****************************************************************************/ + +static int fm_test_open(struct inode *inode, struct file *file) +{ + t_FmTest *p_FmTest = &fmTest; + //unsigned int major = imajor(inode); + unsigned int minor = iminor(inode); + + DBG(TRACE, ("Opening minor - %d - ", minor)); + + if (file->private_data != NULL) + return 0; + + if ((minor >= DEV_FM_TEST_PORTS_MINOR_BASE) && + (minor < DEV_FM_TEST_MAX_MINORS)) + file->private_data = &p_FmTest->ports[minor]; + else + return -ENXIO; + + return 0; +} + +static int fm_test_close(struct inode *inode, struct file *file) +{ + t_FmTestPort *p_FmTestPort; + unsigned int minor = iminor(inode); + int err = 0; + + DBG(TRACE, ("Closing minor - %d - ", minor)); + + p_FmTestPort = file->private_data; + if (!p_FmTestPort) + return -ENODEV; + + p_FmTestPort->valid = FALSE; + + /* Complete!!! */ + return err; +} + +static int fm_test_ioctls(unsigned int minor, struct file *file, unsigned int cmd, unsigned long arg, bool compat) +{ + t_FmTestPort *p_FmTestPort; + + DBG(TRACE, ("IOCTL minor - %d, cmd - 0x%08x, arg - 0x%08x", minor, cmd, arg)); + + p_FmTestPort = file->private_data; + if (!p_FmTestPort) + return -ENODEV; + + switch (cmd) + { + case FMT_PORT_IOC_INIT: + { + ioc_fmt_port_param_t param; + + if (p_FmTestPort->valid) { + REPORT_ERROR(MINOR, E_INVALID_STATE, ("port is already initialized!!!")); + return -EFAULT; + } +#if defined(FMAN_TEST_CONFIG_COMPAT) + if (compat){ + if (copy_from_user(¶m, (ioc_fmt_port_param_t *)compat_ptr(arg), sizeof(ioc_fmt_port_param_t))) { + REPORT_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + return -EFAULT; + } + } +#endif + else{ + if (copy_from_user(¶m, (ioc_fmt_port_param_t *) arg, sizeof(ioc_fmt_port_param_t))) { + REPORT_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + return -EFAULT; + } + } + + return PortInit(p_FmTestPort, ¶m); + } + + case FMT_PORT_IOC_SET_DIAG_MODE: + { + if (get_user(p_FmTestPort->diag, (ioc_diag_mode *)arg)) { + REPORT_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + return -EFAULT; + } + + if (p_FmTestPort->diag == e_IOC_DIAG_MODE_CTRL_LOOPBACK) + return SetMacIntLoopback(p_FmTestPort, TRUE); + else + return SetMacIntLoopback(p_FmTestPort, FALSE); + break; + } + + case FMT_PORT_IOC_SET_DPAECHO_MODE: + { +#if defined(FMAN_TEST_CONFIG_COMPAT) + if (compat){ + if (get_user(p_FmTestPort->echo, (int *)compat_ptr(arg))) { + REPORT_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + return -EFAULT; + } + } + else +#endif + { + if (get_user(p_FmTestPort->echo, (int *)arg)) { + REPORT_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + return -EFAULT; + } + } + break; + } + + case FMT_PORT_IOC_SET_IP_HEADER_MANIP: + { +#if defined(FMAN_TEST_CONFIG_COMPAT) + if (compat){ + if (get_user(p_FmTestPort->ip_header_manip, (int *)compat_ptr(arg))) { + REPORT_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + return -EFAULT; + } + } + else +#endif + { + if (get_user(p_FmTestPort->ip_header_manip, (int *)arg)) { + REPORT_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + return -EFAULT; + } + } + break; + } + + default: + REPORT_ERROR(MINOR, E_INVALID_SELECTION, ("IOCTL TEST cmd (0x%08lx):(0x%02lx:0x%02lx)!", cmd, _IOC_TYPE(cmd), _IOC_NR(cmd))); + return -EFAULT; + } + + return 0; +} + +#ifdef FMAN_TEST_CONFIG_COMPAT +static long fm_test_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + unsigned int minor = iminor(file->f_path.dentry->d_inode); + + return fm_test_ioctls(minor, file, cmd, arg, true); +} +#endif + +static long fm_test_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + unsigned int minor = iminor(file->f_path.dentry->d_inode); + unsigned int res; + + fm_mutex_lock(); + res = fm_test_ioctls(minor, file, cmd, arg, false); + fm_mutex_unlock(); + + return res; +} + +#ifdef FMAN_TEST_CONFIG_COMPAT +void copy_compat_test_frame_buffer(ioc_fmt_buff_desc_t *buff, ioc_fmt_compat_buff_desc_t *compat_buff) +{ + compat_buff->qid = buff->qid; + compat_buff->p_data = ptr_to_compat(buff->p_data); + compat_buff->size = buff->size; + compat_buff->status = buff->status; + + compat_buff->buff_context.p_user_priv = ptr_to_compat(buff->buff_context.p_user_priv); + memcpy(compat_buff->buff_context.fm_prs_res,buff->buff_context.fm_prs_res,FM_PRS_MAX * sizeof(uint8_t)); + memcpy(compat_buff->buff_context.fm_time_stamp,buff->buff_context.fm_time_stamp,FM_TIME_STAMP_MAX * sizeof(uint8_t)); +} +#endif + +ssize_t fm_test_read (struct file *file, char __user *buf, size_t size, loff_t *ppos) +{ + t_FmTestPort *p_FmTestPort; + t_FmTestFrame *p_FmTestFrame; + ssize_t cnt = 0; + + p_FmTestPort = file->private_data; + if (!p_FmTestPort || !p_FmTestPort->valid) + return -ENODEV; + + p_FmTestFrame = DequeueFrameFromRxQ(p_FmTestPort); + if (!p_FmTestFrame) + return 0; + + if (!p_FmTestPort->echo) { +#ifdef FMAN_TEST_CONFIG_COMPAT + cnt = sizeof(ioc_fmt_compat_buff_desc_t); +#else + cnt = sizeof(ioc_fmt_buff_desc_t); +#endif + if (sizebuff.p_data); + XX_Free(p_FmTestFrame); + REPORT_ERROR(MINOR, E_NO_MEMORY, ("Illegal buffer-size!")); + return 0; + } + + /* Copy structure */ +#ifdef FMAN_TEST_CONFIG_COMPAT + { + ioc_fmt_compat_buff_desc_t compat_buff; + copy_compat_test_frame_buffer(&p_FmTestFrame->buff, &compat_buff); + + if (copy_to_user(buf, &compat_buff, cnt)) { + XX_Free(p_FmTestFrame->buff.p_data); + XX_Free(p_FmTestFrame); + REPORT_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + return 0; + } + } + + ((ioc_fmt_compat_buff_desc_t *)buf)->p_data = ptr_to_compat(buf+sizeof(ioc_fmt_compat_buff_desc_t)); + cnt += MIN(p_FmTestFrame->buff.size, size-cnt); +#else + if (copy_to_user(buf, &p_FmTestFrame->buff, cnt)) { + XX_Free(p_FmTestFrame->buff.p_data); + XX_Free(p_FmTestFrame); + REPORT_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + return 0; + } + + ((ioc_fmt_buff_desc_t *)buf)->p_data = buf+sizeof(ioc_fmt_buff_desc_t); + cnt += MIN(p_FmTestFrame->buff.size, size-cnt); +#endif + + if (sizebuff.p_data); + XX_Free(p_FmTestFrame); + REPORT_ERROR(MINOR, E_NO_MEMORY, ("Illegal buffer-size!")); + return 0; + } + + /* copy frame */ +#ifdef FMAN_TEST_CONFIG_COMPAT + if (copy_to_user(buf+sizeof(ioc_fmt_compat_buff_desc_t), p_FmTestFrame->buff.p_data, cnt)) { + XX_Free(p_FmTestFrame->buff.p_data); + XX_Free(p_FmTestFrame); + REPORT_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + return 0; + } +#else + if (copy_to_user(buf+sizeof(ioc_fmt_buff_desc_t), p_FmTestFrame->buff.p_data, cnt)) { + XX_Free(p_FmTestFrame->buff.p_data); + XX_Free(p_FmTestFrame); + REPORT_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + return 0; + } +#endif + + XX_Free(p_FmTestFrame->buff.p_data); + XX_Free(p_FmTestFrame); + } + else { + uint8_t *p_Data = NULL; + uint32_t frameSize =0; + t_DpaaFD fd; + int _errno = 0; + + p_Data = (uint8_t *)p_FmTestFrame->buff.p_data; + frameSize = p_FmTestFrame->buff.size; + + /* paranoia ...*/ + if(!p_Data){ + XX_Free(p_FmTestFrame); + return 0; + } + + /* Set frame descriptor... */ + memset(&fd, 0, sizeof(fd)); + DPAA_FD_SET_ADDR(&fd, p_Data); + DPAA_FD_SET_OFFSET(&fd, 0); + DPAA_FD_SET_LENGTH(&fd, frameSize); + + /* Enqueue frame... */ + _errno = qman_enqueue(p_FmTestPort->p_TxFqs[0], (struct qm_fd*)&fd, 0); + if (_errno) { + XX_Free(p_FmTestFrame); + XX_Free(p_Data); + return 0; + } + + XX_Free(p_FmTestFrame); + } + + return cnt; +} + +ssize_t fm_test_write (struct file *file, const char __user *buf, size_t size, loff_t *ppos) +{ + t_FmTestPort *p_FmTestPort; + + ioc_fmt_buff_desc_t buffDesc; +#ifdef FMAN_TEST_CONFIG_COMPAT + ioc_fmt_compat_buff_desc_t compatBuffDesc; +#endif + t_DpaaFD fd; + uint8_t *p_Data; + uint32_t dataOffset; + int _errno; + + p_FmTestPort = file->private_data; + if (!p_FmTestPort || !p_FmTestPort->valid) { + REPORT_ERROR(MINOR, E_INVALID_HANDLE, NO_MSG); + return -1; + } + + /* If Compat (32B UserSpace - 64B KernelSpace) */ +#ifdef FMAN_TEST_CONFIG_COMPAT + if (copy_from_user(&compatBuffDesc, buf, sizeof(ioc_fmt_compat_buff_desc_t))) { + REPORT_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + return -1; + } + + buffDesc.qid = compatBuffDesc.qid; + buffDesc.p_data = compat_ptr(compatBuffDesc.p_data); + buffDesc.size = compatBuffDesc.size; + buffDesc.status = compatBuffDesc.status; + + buffDesc.buff_context.p_user_priv = compat_ptr(compatBuffDesc.buff_context.p_user_priv); + memcpy(buffDesc.buff_context.fm_prs_res, compatBuffDesc.buff_context.fm_prs_res, FM_PRS_MAX * sizeof(uint8_t)); + memcpy(buffDesc.buff_context.fm_time_stamp, compatBuffDesc.buff_context.fm_time_stamp, FM_TIME_STAMP_MAX * sizeof(uint8_t)); +#else + if (copy_from_user(&buffDesc, (ioc_fmt_buff_desc_t *)buf, sizeof(ioc_fmt_buff_desc_t))) { + REPORT_ERROR(MINOR, E_INVALID_STATE, NO_MSG); + return -1; + } +#endif + + dataOffset = FM_PORT_GetBufferDataOffset(p_FmTestPort->h_TxFmPortDev); + p_Data = (uint8_t*)XX_Malloc(buffDesc.size+dataOffset); + if (!p_Data) { + REPORT_ERROR(MINOR, E_NO_MEMORY, ("data buff!")); + return -1; + } + + /* If Compat (32UserSpace - 64KernelSpace) the buffDesc.p_data is ok */ + if (copy_from_user ((uint8_t *)PTR_MOVE(p_Data, dataOffset), + buffDesc.p_data, + buffDesc.size)) { + REPORT_ERROR(MINOR, E_NO_MEMORY, ("data buff!")); + XX_Free(p_Data); + return -1; + } + + memset(&fd, 0, sizeof(fd)); + DPAA_FD_SET_ADDR(&fd, p_Data); + DPAA_FD_SET_OFFSET(&fd, dataOffset); + DPAA_FD_SET_LENGTH(&fd, buffDesc.size); + + DBG(TRACE, ("buffDesc qId %d, fqid %d, frame len %d, fq 0x%8x\n", + buffDesc.qid, qman_fq_fqid(p_FmTestPort->p_TxFqs[buffDesc.qid]), buffDesc.size, p_FmTestPort->p_TxFqs[buffDesc.qid])); + + _errno = qman_enqueue(p_FmTestPort->p_TxFqs[buffDesc.qid], (struct qm_fd*)&fd, 0); + if (_errno) { + buffDesc.status = (uint32_t)_errno; + if (copy_to_user((ioc_fmt_buff_desc_t*)buf, &buffDesc, sizeof(ioc_fmt_buff_desc_t))) { + REPORT_ERROR(MINOR, E_WRITE_FAILED, NO_MSG); + XX_Free(p_Data); + return -1; + } + } + return buffDesc.size; +} + +/* Globals for FM character device */ +static struct file_operations fm_test_fops = +{ + owner: THIS_MODULE, +#ifdef FMAN_TEST_CONFIG_COMPAT + compat_ioctl:fm_test_compat_ioctl, +#endif + unlocked_ioctl: fm_test_ioctl, + open: fm_test_open, + release: fm_test_close, + read: fm_test_read, + write: fm_test_write, +}; + +t_Handle LNXWRP_FM_TEST_Init(void) +{ + t_FmTest *p_FmTest = &fmTest; + int id; + + /* Register to the /dev for IOCTL API */ + /* Register dynamically a new major number for the character device: */ + if ((p_FmTest->major = register_chrdev(0, DEV_FM_TEST_NAME, &fm_test_fops)) <= 0) + { + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("Failed to allocate a major number for device \"%s\"", DEV_FM_TEST_NAME)); + return NULL; + } + + /* Creating class for FMan_test */ + DBG(TRACE ,("class_create fm_test_class")); + p_FmTest->fm_test_class = class_create(THIS_MODULE, DEV_FM_TEST_NAME); + if (IS_ERR(p_FmTest->fm_test_class)) { + unregister_chrdev(p_FmTest->major, DEV_FM_TEST_NAME); + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("class_create error fm_test_class")); + return NULL; + } + + for (id = 0; id < IOC_FMT_MAX_NUM_OF_PORTS; id++) + if(NULL == device_create(p_FmTest->fm_test_class, NULL, MKDEV(p_FmTest->major, DEV_FM_TEST_PORTS_MINOR_BASE + id), NULL, + DEV_FM_TEST_NAME "%d", id)) + { + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("Error creating device.\n")); + return NULL; + } + + /* Seed the QMan allocator so we'll have enough queues to run PCD with + dinamically fqid-range allocation */ + qman_release_fqid_range(0x100, 0x400); + + return p_FmTest; +} + +t_Error LNXWRP_FM_TEST_Free(t_Handle h_FmTestLnxWrp) +{ + t_FmTest *p_FmTest = (t_FmTest*)h_FmTestLnxWrp; + int id; + + DBG(TRACE, ("destroy fm_test_class")); + for (id = 0; id < IOC_FMT_MAX_NUM_OF_PORTS; id++) + device_destroy(p_FmTest->fm_test_class, MKDEV(p_FmTest->major, DEV_FM_TEST_PORTS_MINOR_BASE + id)); + class_destroy(p_FmTest->fm_test_class); + + return E_OK; +} + +static t_Handle h_FmTestLnxWrp; + +static int __init __cold fm_test_load (void) +{ + if ((h_FmTestLnxWrp = LNXWRP_FM_TEST_Init()) == NULL) + { + printk("Failed to init FM-test wrapper!\n"); + if (h_FmTestLnxWrp) + LNXWRP_FM_TEST_Free(h_FmTestLnxWrp); + return -ENODEV; + } + + printk (KERN_CRIT "Freescale FM test module ("__DATE__ ":"__TIME__")\n"); + + return 0; +} + +static void __exit __cold fm_test_unload (void) +{ + if (h_FmTestLnxWrp) + LNXWRP_FM_TEST_Free(h_FmTestLnxWrp); +} + +module_init (fm_test_load); +module_exit (fm_test_unload); --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_fm.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_fm.c @@ -0,0 +1,1204 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + + @File lnxwrp_fm.c + + @Author Shlomi Gridish + + @Description FM Linux wrapper functions. + +*/ + +#include +#include +#if defined(CONFIG_MODVERSIONS) && !defined(MODVERSIONS) +#define MODVERSIONS +#endif +#ifdef MODVERSIONS +#include +#endif /* MODVERSIONS */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include /* For struct qe_firmware */ +#include +#include /* For file access mask */ +#include +#include +#include + +/* NetCommSw Headers --------------- */ +#include "std_ext.h" +#include "error_ext.h" +#include "sprint_ext.h" +#include "debug_ext.h" +#include "sys_io_ext.h" + +#include "fm_ioctls.h" + +#include "lnxwrp_fm.h" +#include "lnxwrp_resources.h" +#include "lnxwrp_sysfs_fm.h" +#include "lnxwrp_sysfs_fm_port.h" + +#define PROC_PRINT(args...) offset += sprintf(buf+offset,args) + +#define ADD_ADV_CONFIG_NO_RET(_func, _param) \ + do { \ + if (ip_Function = _func; \ + _param \ + i++; \ + } \ + else \ + REPORT_ERROR(MAJOR, E_INVALID_VALUE,\ + ("Number of advanced-configuration entries exceeded"));\ + } while (0) + +static t_LnxWrpFm lnxWrpFm; + + +static irqreturn_t fm_irq(int irq, void *_dev) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = (t_LnxWrpFmDev *)_dev; + + if (!p_LnxWrpFmDev || !p_LnxWrpFmDev->h_Dev) + return IRQ_NONE; + + FM_EventIsr(p_LnxWrpFmDev->h_Dev); + + return IRQ_HANDLED; +} + +static irqreturn_t fm_err_irq(int irq, void *_dev) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = (t_LnxWrpFmDev *)_dev; + + if (!p_LnxWrpFmDev || !p_LnxWrpFmDev->h_Dev) + return IRQ_NONE; + + if (FM_ErrorIsr(p_LnxWrpFmDev->h_Dev) == E_OK) + return IRQ_HANDLED; + + return IRQ_NONE; +} + +/* used to protect FMD/LLD from concurrent calls in functions fm_mutex_lock / fm_mutex_unlock */ +static struct mutex lnxwrp_mutex; + +static t_LnxWrpFmDev * CreateFmDev(uint8_t id) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev; + int j; + + p_LnxWrpFmDev = (t_LnxWrpFmDev *)XX_Malloc(sizeof(t_LnxWrpFmDev)); + if (!p_LnxWrpFmDev) + { + REPORT_ERROR(MAJOR, E_NO_MEMORY, NO_MSG); + return NULL; + } + + memset(p_LnxWrpFmDev, 0, sizeof(t_LnxWrpFmDev)); + p_LnxWrpFmDev->fmDevSettings.advConfig = (t_SysObjectAdvConfigEntry*)XX_Malloc(FM_MAX_NUM_OF_ADV_SETTINGS*sizeof(t_SysObjectAdvConfigEntry)); + memset(p_LnxWrpFmDev->fmDevSettings.advConfig, 0, (FM_MAX_NUM_OF_ADV_SETTINGS*sizeof(t_SysObjectAdvConfigEntry))); + p_LnxWrpFmDev->fmPcdDevSettings.advConfig = (t_SysObjectAdvConfigEntry*)XX_Malloc(FM_MAX_NUM_OF_ADV_SETTINGS*sizeof(t_SysObjectAdvConfigEntry)); + memset(p_LnxWrpFmDev->fmPcdDevSettings.advConfig, 0, (FM_MAX_NUM_OF_ADV_SETTINGS*sizeof(t_SysObjectAdvConfigEntry))); + p_LnxWrpFmDev->hcPort.settings.advConfig = (t_SysObjectAdvConfigEntry*)XX_Malloc(FM_MAX_NUM_OF_ADV_SETTINGS*sizeof(t_SysObjectAdvConfigEntry)); + memset(p_LnxWrpFmDev->hcPort.settings.advConfig, 0, (FM_MAX_NUM_OF_ADV_SETTINGS*sizeof(t_SysObjectAdvConfigEntry))); + for (j=0; jrxPorts[j].settings.advConfig = (t_SysObjectAdvConfigEntry*)XX_Malloc(FM_MAX_NUM_OF_ADV_SETTINGS*sizeof(t_SysObjectAdvConfigEntry)); + memset(p_LnxWrpFmDev->rxPorts[j].settings.advConfig, 0, (FM_MAX_NUM_OF_ADV_SETTINGS*sizeof(t_SysObjectAdvConfigEntry))); + } + for (j=0; jtxPorts[j].settings.advConfig = (t_SysObjectAdvConfigEntry*)XX_Malloc(FM_MAX_NUM_OF_ADV_SETTINGS*sizeof(t_SysObjectAdvConfigEntry)); + memset(p_LnxWrpFmDev->txPorts[j].settings.advConfig, 0, (FM_MAX_NUM_OF_ADV_SETTINGS*sizeof(t_SysObjectAdvConfigEntry))); + } + for (j=0; jopPorts[j].settings.advConfig = (t_SysObjectAdvConfigEntry*)XX_Malloc(FM_MAX_NUM_OF_ADV_SETTINGS*sizeof(t_SysObjectAdvConfigEntry)); + memset(p_LnxWrpFmDev->opPorts[j].settings.advConfig, 0, (FM_MAX_NUM_OF_ADV_SETTINGS*sizeof(t_SysObjectAdvConfigEntry))); + } + + return p_LnxWrpFmDev; +} + +static void DestroyFmDev(t_LnxWrpFmDev *p_LnxWrpFmDev) +{ + int j; + + for (j=0; jopPorts[j].settings.advConfig) + XX_Free(p_LnxWrpFmDev->opPorts[j].settings.advConfig); + for (j=0; jtxPorts[j].settings.advConfig) + XX_Free(p_LnxWrpFmDev->txPorts[j].settings.advConfig); + for (j=0; jrxPorts[j].settings.advConfig) + XX_Free(p_LnxWrpFmDev->rxPorts[j].settings.advConfig); + if (p_LnxWrpFmDev->hcPort.settings.advConfig) + XX_Free(p_LnxWrpFmDev->hcPort.settings.advConfig); + if (p_LnxWrpFmDev->fmPcdDevSettings.advConfig) + XX_Free(p_LnxWrpFmDev->fmPcdDevSettings.advConfig); + if (p_LnxWrpFmDev->fmDevSettings.advConfig) + XX_Free(p_LnxWrpFmDev->fmDevSettings.advConfig); + + XX_Free(p_LnxWrpFmDev); +} + +static t_Error FillRestFmInfo(t_LnxWrpFmDev *p_LnxWrpFmDev) +{ +#define FM_BMI_PPIDS_OFFSET 0x00080304 +#define FM_DMA_PLR_OFFSET 0x000c2060 +#define FM_FPM_IP_REV_1_OFFSET 0x000c30c4 +#define DMA_HIGH_LIODN_MASK 0x0FFF0000 +#define DMA_LOW_LIODN_MASK 0x00000FFF +#define DMA_LIODN_SHIFT 16 + +typedef _Packed struct { + uint32_t plr[32]; +} _PackedType t_Plr; + +typedef _Packed struct { + volatile uint32_t fmbm_ppid[63]; +} _PackedType t_Ppids; + + t_Plr *p_Plr; + t_Ppids *p_Ppids; + int i,j; + uint32_t fmRev; + + static const uint8_t phys1GRxPortId[] = {0x8,0x9,0xa,0xb,0xc}; + static const uint8_t phys10GRxPortId[] = {0x10}; + static const uint8_t physOhPortId[] = {0x1,0x2,0x3,0x4,0x5,0x6,0x7}; + static const uint8_t phys1GTxPortId[] = {0x28,0x29,0x2a,0x2b,0x2c}; + static const uint8_t phys10GTxPortId[] = {0x30}; + + fmRev = (uint32_t)(*((volatile uint32_t *)UINT_TO_PTR(p_LnxWrpFmDev->fmBaseAddr+FM_FPM_IP_REV_1_OFFSET))); + fmRev &= 0xffff; + + p_Plr = (t_Plr *)UINT_TO_PTR(p_LnxWrpFmDev->fmBaseAddr+FM_DMA_PLR_OFFSET); +#ifdef MODULE + for (i=0;iplr[i] = 0; +#endif /* MODULE */ + + for (i=0; iplr[i/2] & DMA_LOW_LIODN_MASK) : + ((p_Plr->plr[i/2] & DMA_HIGH_LIODN_MASK) >> DMA_LIODN_SHIFT)); +#ifdef FM_PARTITION_ARRAY + /* TODO: this was .liodnPerPartition[i] = liodnBase; is the index meaning the same? */ + p_LnxWrpFmDev->fmDevSettings.param.liodnBasePerPort[i] = liodnBase; +#endif /* FM_PARTITION_ARRAY */ + + if ((i >= phys1GRxPortId[0]) && + (i <= phys1GRxPortId[FM_MAX_NUM_OF_1G_RX_PORTS-1])) + { + for (j=0; jrxPorts[j].settings.param.liodnBase = liodnBase; + } + else if (FM_MAX_NUM_OF_10G_RX_PORTS && + (i >= phys10GRxPortId[0]) && + (i <= phys10GRxPortId[FM_MAX_NUM_OF_10G_RX_PORTS-1])) + { + for (j=0; jrxPorts[FM_MAX_NUM_OF_1G_RX_PORTS+j].settings.param.liodnBase = liodnBase; + } + else if ((i >= physOhPortId[0]) && + (i <= physOhPortId[FM_MAX_NUM_OF_OH_PORTS-1])) + { + for (j=0; jhcPort.settings.param.liodnBase = liodnBase; + else + p_LnxWrpFmDev->opPorts[j - 1].settings.param.liodnBase = liodnBase; + } + else if ((i >= phys1GTxPortId[0]) && + (i <= phys1GTxPortId[FM_MAX_NUM_OF_1G_TX_PORTS-1])) + { + for (j=0; jtxPorts[j].settings.param.liodnBase = liodnBase; + } + else if (FM_MAX_NUM_OF_10G_TX_PORTS && + (i >= phys10GTxPortId[0]) && + (i <= phys10GTxPortId[FM_MAX_NUM_OF_10G_TX_PORTS-1])) + { + for (j=0; jtxPorts[FM_MAX_NUM_OF_1G_TX_PORTS+j].settings.param.liodnBase = liodnBase; + } + } + + p_Ppids = (t_Ppids *)UINT_TO_PTR(p_LnxWrpFmDev->fmBaseAddr+FM_BMI_PPIDS_OFFSET); + + for (i=0; irxPorts[i].settings.param.specificParams.rxParams.liodnOffset = + p_Ppids->fmbm_ppid[phys1GRxPortId[i]-1]; + + for (i=0; irxPorts[FM_MAX_NUM_OF_1G_RX_PORTS+i].settings.param.specificParams.rxParams.liodnOffset = + p_Ppids->fmbm_ppid[phys10GRxPortId[i]-1]; + +#ifdef FM_OP_PARTITION_ERRATA_FMANx8 + for (i=0; iopPorts[i-1].settings.param.specificParams.nonRxParams.opLiodnOffset = + p_Ppids->fmbm_ppid[physOhPortId[i]-1]; + } +#endif /* FM_OP_PARTITION_ERRATA_FMANx8 */ + + return E_OK; +} + +/* The default address for the Fman microcode in flash. Having a default + * allows older systems to continue functioning. 0xEF000000 is the address + * where the firmware is normally on a P4080DS. + */ +#ifdef CONFIG_PHYS_64BIT +static phys_addr_t P4080_UCAddr = 0xfef000000ull; +#else +static phys_addr_t P4080_UCAddr = 0xef000000; +#endif + + +/** + * FmanUcodeAddrParam - process the fman_ucode kernel command-line parameter + * + * This function is called when the kernel encounters a fman_ucode command- + * line parameter. This parameter contains the address of the Fman microcode + * in flash. + */ +static int FmanUcodeAddrParam(char *str) +{ + unsigned long long l; + int ret; + + ret = strict_strtoull(str, 0, &l); + if (!ret) + P4080_UCAddr = (phys_addr_t) l; + + return ret; +} +__setup("fman_ucode=", FmanUcodeAddrParam); + +/** + * FindFmanMicrocode - find the Fman microcode in memory + * + * This function returns a pointer to the QE Firmware blob that holds + * the Fman microcode. We use the QE Firmware structure because Fman microcode + * is similar to QE microcode, so there's no point in defining a new layout. + * + * Current versions of U-Boot embed the Fman firmware into the device tree, + * so we check for that first. Each Fman node in the device tree contains a + * node or a pointer to node that holds the firmware. Technically, we should + * be fetching the firmware node for the current Fman, but we don't have that + * information any more, so we assume that there is only one firmware node in + * the device tree, and that all Fmen use the same firmware. + * + * If we have an older U-Boot, then we assume that the firmware is located in + * flash at physical address 'P4080_UCAddr' + */ +static const struct qe_firmware *FindFmanMicrocode(void) +{ + static const struct qe_firmware *P4080_UCPatch; + struct device_node *np; +#ifdef FMAN_READ_MICROCODE_FROM_NOR_FLASH + unsigned long P4080_UCSize; + const struct qe_header *hdr; +#endif + + if (P4080_UCPatch) + return P4080_UCPatch; + + /* The firmware should be inside the device tree. */ + np = of_find_compatible_node(NULL, NULL, "fsl,fman-firmware"); + if (np) { + P4080_UCPatch = of_get_property(np, "fsl,firmware", NULL); + of_node_put(np); + if (P4080_UCPatch) + return P4080_UCPatch; + else + REPORT_ERROR(WARNING, E_NOT_FOUND, ("firmware node is incomplete")); + } + +#ifdef FMAN_READ_MICROCODE_FROM_NOR_FLASH + /* If not, then we have a legacy U-Boot. The firmware is in flash. */ + /* Only map enough to the get the core structure */ + P4080_UCPatch = ioremap(P4080_UCAddr, sizeof(struct qe_firmware)); + if (!P4080_UCPatch) { + REPORT_ERROR(MAJOR, E_NULL_POINTER, ("ioremap(%llx) returned NULL", (u64) P4080_UCAddr)); + return NULL; + } + /* Make sure it really is a QE Firmware blob */ + hdr = &P4080_UCPatch->header; + if (!hdr || + (hdr->magic[0] != 'Q') || (hdr->magic[1] != 'E') || + (hdr->magic[2] != 'F')) { + REPORT_ERROR(MAJOR, E_NOT_FOUND, ("data at %llx is not a Fman microcode", (u64) P4080_UCAddr)); + return NULL; + } + + /* Now we call ioremap again, this time to pick up the whole blob. We never + * iounmap() the memory because we might reset the Fman at any time. + */ + /* TODO: ionumap() should be performed when unloading the driver */ + P4080_UCSize = sizeof(u32) * P4080_UCPatch->microcode[0].count; + iounmap((void *)P4080_UCPatch); + P4080_UCPatch = ioremap(P4080_UCAddr, P4080_UCSize); + if (!P4080_UCPatch) { + REPORT_ERROR(MAJOR, E_NULL_POINTER, ("ioremap(%llx) returned NULL", (u64) P4080_UCAddr)); + return NULL; + } +#else + /* Returning NULL here forces the reuse of the IRAM content */ + P4080_UCPatch = NULL; +#endif /* FMAN_READ_MICROCODE_FROM_NOR_FLASH */ + return P4080_UCPatch; +} + +static t_LnxWrpFmDev * ReadFmDevTreeNode (struct platform_device *of_dev) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev; + struct device_node *fm_node, *dev_node, *dpa_node; + struct of_device_id name; + struct resource res; + const uint32_t *uint32_prop; + int _errno=0, lenp; + static struct of_device_id dpa_eth_node_of_match[] = { + { .compatible = "fsl,dpa-ethernet", }, + { /* end of list */ }, + }; + + fm_node = of_node_get(of_dev->dev.of_node); + + uint32_prop = (uint32_t *)of_get_property(fm_node, "cell-index", &lenp); + if (unlikely(uint32_prop == NULL)) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("of_get_property(%s, cell-index) failed", fm_node->full_name)); + return NULL; + } + if (WARN_ON(lenp != sizeof(uint32_t))) + return NULL; + if (*uint32_prop > INTG_MAX_NUM_OF_FM) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("fm id!")); + return NULL; + } + p_LnxWrpFmDev = CreateFmDev(*uint32_prop); + if (!p_LnxWrpFmDev) { + REPORT_ERROR(MAJOR, E_NULL_POINTER, NO_MSG); + return NULL; + } + p_LnxWrpFmDev->dev = &of_dev->dev; + p_LnxWrpFmDev->id = *uint32_prop; + + /* Get the FM interrupt */ + p_LnxWrpFmDev->irq = of_irq_to_resource(fm_node, 0, NULL); + if (unlikely(p_LnxWrpFmDev->irq == /*NO_IRQ*/0)) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("of_irq_to_resource() = %d", NO_IRQ)); + return NULL; + } + + /* Get the FM error interrupt */ + p_LnxWrpFmDev->err_irq = of_irq_to_resource(fm_node, 1, NULL); + /* TODO - un-comment it once there will be err_irq in the DTS */ +#if 0 + if (unlikely(p_LnxWrpFmDev->err_irq == /*NO_IRQ*/0)) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("of_irq_to_resource() = %d", NO_IRQ)); + return NULL; + } +#endif /* 0 */ + + /* Get the FM address */ + _errno = of_address_to_resource(fm_node, 0, &res); + if (unlikely(_errno < 0)) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("of_address_to_resource() = %d", _errno)); + return NULL; + } + + p_LnxWrpFmDev->fmBaseAddr = 0; + p_LnxWrpFmDev->fmPhysBaseAddr = res.start; + p_LnxWrpFmDev->fmMemSize = res.end + 1 - res.start; + + uint32_prop = (uint32_t *)of_get_property(fm_node, "clock-frequency", &lenp); + if (unlikely(uint32_prop == NULL)) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("of_get_property(%s, clock-frequency) failed", fm_node->full_name)); + return NULL; + } + if (WARN_ON(lenp != sizeof(uint32_t))) + return NULL; + p_LnxWrpFmDev->fmDevSettings.param.fmClkFreq = (*uint32_prop + 500000)/1000000; /* In MHz, rounded */ + + /* Get the MURAM base address and size */ + memset(&name, 0, sizeof(struct of_device_id)); + if (WARN_ON(strlen("muram") >= sizeof(name.name))) + return NULL; + strcpy(name.name, "muram"); + if (WARN_ON(strlen("fsl,fman-muram") >= sizeof(name.compatible))) + return NULL; + strcpy(name.compatible, "fsl,fman-muram"); + for_each_child_of_node(fm_node, dev_node) { + if (likely(of_match_node(&name, dev_node) != NULL)) { + _errno = of_address_to_resource(dev_node, 0, &res); + if (unlikely(_errno < 0)) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("of_address_to_resource() = %d", _errno)); + return NULL; + } + + p_LnxWrpFmDev->fmMuramBaseAddr = 0; + p_LnxWrpFmDev->fmMuramPhysBaseAddr = res.start; + p_LnxWrpFmDev->fmMuramMemSize = res.end + 1 - res.start; + } + } + + /* Get the RTC base address and size */ + memset(&name, 0, sizeof(struct of_device_id)); + if (WARN_ON(strlen("rtc") >= sizeof(name.name))) + return NULL; + strcpy(name.name, "rtc"); + if (WARN_ON(strlen("fsl,fman-rtc") >= sizeof(name.compatible))) + return NULL; + strcpy(name.compatible, "fsl,fman-rtc"); + for_each_child_of_node(fm_node, dev_node) { + if (likely(of_match_node(&name, dev_node) != NULL)) { + _errno = of_address_to_resource(dev_node, 0, &res); + if (unlikely(_errno < 0)) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("of_address_to_resource() = %d", _errno)); + return NULL; + } + + p_LnxWrpFmDev->fmRtcBaseAddr = 0; + p_LnxWrpFmDev->fmRtcPhysBaseAddr = res.start; + p_LnxWrpFmDev->fmRtcMemSize = res.end + 1 - res.start; + } + } + + /* Get all PCD nodes */ + memset(&name, 0, sizeof(struct of_device_id)); + if (WARN_ON(strlen("parser") >= sizeof(name.name))) + return NULL; + strcpy(name.name, "parser"); + if (WARN_ON(strlen("fsl,fman-parser") >= sizeof(name.compatible))) + return NULL; + strcpy(name.compatible, "fsl,fman-parser"); + for_each_child_of_node(fm_node, dev_node) + if (likely(of_match_node(&name, dev_node) != NULL)) + p_LnxWrpFmDev->prsActive = TRUE; + + memset(&name, 0, sizeof(struct of_device_id)); + if (WARN_ON(strlen("keygen") >= sizeof(name.name))) + return NULL; + strcpy(name.name, "keygen"); + if (WARN_ON(strlen("fsl,fman-keygen") >= sizeof(name.compatible))) + return NULL; + strcpy(name.compatible, "fsl,fman-keygen"); + for_each_child_of_node(fm_node, dev_node) + if (likely(of_match_node(&name, dev_node) != NULL)) + p_LnxWrpFmDev->kgActive = TRUE; + + memset(&name, 0, sizeof(struct of_device_id)); + if (WARN_ON(strlen("cc") >= sizeof(name.name))) + return NULL; + strcpy(name.name, "cc"); + if (WARN_ON(strlen("fsl,fman-cc") >= sizeof(name.compatible))) + return NULL; + strcpy(name.compatible, "fsl,fman-cc"); + for_each_child_of_node(fm_node, dev_node) + if (likely(of_match_node(&name, dev_node) != NULL)) + p_LnxWrpFmDev->ccActive = TRUE; + + memset(&name, 0, sizeof(struct of_device_id)); + if (WARN_ON(strlen("policer") >= sizeof(name.name))) + return NULL; + strcpy(name.name, "policer"); + if (WARN_ON(strlen("fsl,fman-policer") >= sizeof(name.compatible))) + return NULL; + strcpy(name.compatible, "fsl,fman-policer"); + for_each_child_of_node(fm_node, dev_node) + if (likely(of_match_node(&name, dev_node) != NULL)) + p_LnxWrpFmDev->plcrActive = TRUE; + + if (p_LnxWrpFmDev->prsActive || p_LnxWrpFmDev->kgActive || + p_LnxWrpFmDev->ccActive || p_LnxWrpFmDev->plcrActive) + p_LnxWrpFmDev->pcdActive = TRUE; + + if (p_LnxWrpFmDev->pcdActive) + { + const char *str_prop = (char *)of_get_property(fm_node, "fsl,default-pcd", &lenp); + if (str_prop) { + if (strncmp(str_prop, "3-tuple", strlen("3-tuple")) == 0) + p_LnxWrpFmDev->defPcd = e_FM_PCD_3_TUPLE; + } + else + p_LnxWrpFmDev->defPcd = e_NO_PCD; + } + + of_node_put(fm_node); + + for_each_matching_node(dpa_node, dpa_eth_node_of_match) { + struct device_node *mac_node; + const phandle *phandle_prop; + + phandle_prop = (typeof(phandle_prop))of_get_property(dpa_node, "fsl,fman-mac", &lenp); + if (phandle_prop == NULL) + continue; + + if (WARN_ON(lenp != sizeof(phandle))) + return NULL; + + mac_node = of_find_node_by_phandle(*phandle_prop); + if (unlikely(mac_node == NULL)) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("of_find_node_by_phandle() failed")); + return NULL; + } + + fm_node = of_get_parent(mac_node); + of_node_put(mac_node); + if (unlikely(fm_node == NULL)) { + REPORT_ERROR(MAJOR, E_NO_DEVICE, ("of_get_parent() = %d", _errno)); + return NULL; + } + + uint32_prop = (uint32_t *)of_get_property(fm_node, "cell-index", &lenp); + if (unlikely(uint32_prop == NULL)) { + of_node_put(fm_node); + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("of_get_property(%s, cell-index) failed", fm_node->full_name)); + return NULL; + } + if (WARN_ON(lenp != sizeof(uint32_t))) + return NULL; + of_node_put(fm_node); + + if (*uint32_prop == p_LnxWrpFmDev->id) { + phandle_prop = (typeof(phandle_prop))of_get_property(dpa_node, "fsl,qman-channel", &lenp); + if (unlikely(phandle_prop == NULL)) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("of_get_property(%s, fsl,qman-channel) failed", dpa_node->full_name)); + return NULL; + } + if (WARN_ON(lenp != sizeof(phandle))) + return NULL; + + dev_node = of_find_node_by_phandle(*phandle_prop); + if (unlikely(dev_node == NULL)) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("of_find_node_by_phandle() failed")); + return NULL; + } + + uint32_prop = (typeof(uint32_prop))of_get_property(dev_node, "fsl,qman-channel-id", &lenp); + if (unlikely(uint32_prop == NULL)) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("of_get_property(%s, fsl,qman-channel-id) failed", dev_node->full_name)); + of_node_put(dev_node); + return NULL; + } + of_node_put(dev_node); + if (WARN_ON(lenp != sizeof(uint32_t))) + return NULL; + p_LnxWrpFmDev->hcCh = *uint32_prop; + break; + } + } + + p_LnxWrpFmDev->active = TRUE; + + return p_LnxWrpFmDev; +} + +static void LnxwrpFmDevExceptionsCb(t_Handle h_App, e_FmExceptions exception) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = (t_LnxWrpFmDev *)h_App; + + ASSERT_COND(p_LnxWrpFmDev); + + DBG(INFO, ("got fm exception %d", exception)); + + /* do nothing */ + UNUSED(exception); +} + +static void LnxwrpFmDevBusErrorCb(t_Handle h_App, + e_FmPortType portType, + uint8_t portId, + uint64_t addr, + uint8_t tnum, + uint16_t liodn) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = (t_LnxWrpFmDev *)h_App; + + ASSERT_COND(p_LnxWrpFmDev); + + /* do nothing */ + UNUSED(portType);UNUSED(portId);UNUSED(addr);UNUSED(tnum);UNUSED(liodn); +} + +static t_Error ConfigureFmDev(t_LnxWrpFmDev *p_LnxWrpFmDev) +{ + struct resource *dev_res; + int _errno; + + if (!p_LnxWrpFmDev->active) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("FM not configured!!!")); + +#ifndef MODULE + _errno = can_request_irq(p_LnxWrpFmDev->irq, 0); + if (unlikely(_errno < 0)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("can_request_irq() = %d", _errno)); +#endif + _errno = devm_request_irq(p_LnxWrpFmDev->dev, p_LnxWrpFmDev->irq, fm_irq, 0, "fman", p_LnxWrpFmDev); + if (unlikely(_errno < 0)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("request_irq(%d) = %d", p_LnxWrpFmDev->irq, _errno)); + + if (p_LnxWrpFmDev->err_irq != 0) { +#ifndef MODULE + _errno = can_request_irq(p_LnxWrpFmDev->err_irq, 0); + if (unlikely(_errno < 0)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("can_request_irq() = %d", _errno)); +#endif + _errno = devm_request_irq(p_LnxWrpFmDev->dev, p_LnxWrpFmDev->err_irq, fm_err_irq, IRQF_SHARED, "fman-err", p_LnxWrpFmDev); + if (unlikely(_errno < 0)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("request_irq(%d) = %d", p_LnxWrpFmDev->err_irq, _errno)); + } + + p_LnxWrpFmDev->res = devm_request_mem_region(p_LnxWrpFmDev->dev, p_LnxWrpFmDev->fmPhysBaseAddr, p_LnxWrpFmDev->fmMemSize, "fman"); + if (unlikely(p_LnxWrpFmDev->res == NULL)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("request_mem_region() failed")); + + p_LnxWrpFmDev->fmBaseAddr = PTR_TO_UINT(devm_ioremap(p_LnxWrpFmDev->dev, p_LnxWrpFmDev->fmPhysBaseAddr, p_LnxWrpFmDev->fmMemSize)); + if (unlikely(p_LnxWrpFmDev->fmBaseAddr == 0)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("devm_ioremap() failed")); + + if (SYS_RegisterIoMap((uint64_t)p_LnxWrpFmDev->fmBaseAddr, (uint64_t)p_LnxWrpFmDev->fmPhysBaseAddr, p_LnxWrpFmDev->fmMemSize) != E_OK) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("FM memory map")); + + dev_res = __devm_request_region(p_LnxWrpFmDev->dev, p_LnxWrpFmDev->res, p_LnxWrpFmDev->fmMuramPhysBaseAddr, p_LnxWrpFmDev->fmMuramMemSize, "fman-muram"); + if (unlikely(dev_res == NULL)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("__devm_request_region() failed")); + + p_LnxWrpFmDev->fmMuramBaseAddr = PTR_TO_UINT(devm_ioremap(p_LnxWrpFmDev->dev, p_LnxWrpFmDev->fmMuramPhysBaseAddr, p_LnxWrpFmDev->fmMuramMemSize)); + if (unlikely(p_LnxWrpFmDev->fmMuramBaseAddr == 0)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("devm_ioremap() failed")); + + if (SYS_RegisterIoMap((uint64_t)p_LnxWrpFmDev->fmMuramBaseAddr, (uint64_t)p_LnxWrpFmDev->fmMuramPhysBaseAddr, p_LnxWrpFmDev->fmMuramMemSize) != E_OK) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("FM MURAM memory map")); + + if (p_LnxWrpFmDev->fmRtcPhysBaseAddr) + { + dev_res = __devm_request_region(p_LnxWrpFmDev->dev, p_LnxWrpFmDev->res, p_LnxWrpFmDev->fmRtcPhysBaseAddr, p_LnxWrpFmDev->fmRtcMemSize, "fman-rtc"); + if (unlikely(dev_res == NULL)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("__devm_request_region() failed")); + + p_LnxWrpFmDev->fmRtcBaseAddr = PTR_TO_UINT(devm_ioremap(p_LnxWrpFmDev->dev, p_LnxWrpFmDev->fmRtcPhysBaseAddr, p_LnxWrpFmDev->fmRtcMemSize)); + if (unlikely(p_LnxWrpFmDev->fmRtcBaseAddr == 0)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("devm_ioremap() failed")); + + if (SYS_RegisterIoMap((uint64_t)p_LnxWrpFmDev->fmRtcBaseAddr, (uint64_t)p_LnxWrpFmDev->fmRtcPhysBaseAddr, p_LnxWrpFmDev->fmRtcMemSize) != E_OK) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("FM-RTC memory map")); + } + + p_LnxWrpFmDev->fmDevSettings.param.baseAddr = p_LnxWrpFmDev->fmBaseAddr; + p_LnxWrpFmDev->fmDevSettings.param.fmId = p_LnxWrpFmDev->id; + p_LnxWrpFmDev->fmDevSettings.param.irq = NO_IRQ; + p_LnxWrpFmDev->fmDevSettings.param.errIrq = NO_IRQ; + p_LnxWrpFmDev->fmDevSettings.param.f_Exception = LnxwrpFmDevExceptionsCb; + p_LnxWrpFmDev->fmDevSettings.param.f_BusError = LnxwrpFmDevBusErrorCb; + p_LnxWrpFmDev->fmDevSettings.param.h_App = p_LnxWrpFmDev; + + return FillRestFmInfo(p_LnxWrpFmDev); +} + +static t_Error InitFmDev(t_LnxWrpFmDev *p_LnxWrpFmDev) +{ + const struct qe_firmware *fw; + + if (!p_LnxWrpFmDev->active) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("FM not configured!!!")); + + if ((p_LnxWrpFmDev->h_MuramDev = FM_MURAM_ConfigAndInit(p_LnxWrpFmDev->fmMuramBaseAddr, p_LnxWrpFmDev->fmMuramMemSize)) == NULL) + RETURN_ERROR(MAJOR, E_INVALID_HANDLE, ("FM-MURAM!")); + + /* Loading the fman-controller code */ + fw = FindFmanMicrocode(); + + if (!fw) { +#ifdef FMAN_READ_MICROCODE_FROM_NOR_FLASH + /* We already reported an error, so just return NULL*/ + return ERROR_CODE(E_NULL_POINTER); +#else + /* this forces the reuse of the current IRAM content */ + p_LnxWrpFmDev->fmDevSettings.param.firmware.size = 0; + p_LnxWrpFmDev->fmDevSettings.param.firmware.p_Code = NULL; +#endif + } else { + p_LnxWrpFmDev->fmDevSettings.param.firmware.p_Code = + (void *) fw + fw->microcode[0].code_offset; + p_LnxWrpFmDev->fmDevSettings.param.firmware.size = + sizeof(u32) * fw->microcode[0].count; + DBG(INFO, ("Loading fman-controller code version %d.%d.%d", + fw->microcode[0].major, + fw->microcode[0].minor, + fw->microcode[0].revision)); + } + + p_LnxWrpFmDev->fmDevSettings.param.h_FmMuram = p_LnxWrpFmDev->h_MuramDev; + + if ((p_LnxWrpFmDev->h_Dev = FM_Config(&p_LnxWrpFmDev->fmDevSettings.param)) == NULL) + RETURN_ERROR(MAJOR, E_INVALID_HANDLE, ("FM")); + + if (FM_ConfigMaxNumOfOpenDmas(p_LnxWrpFmDev->h_Dev,BMI_MAX_NUM_OF_DMAS) != E_OK) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("FM")); + + if (FM_ConfigResetOnInit(p_LnxWrpFmDev->h_Dev, TRUE) != E_OK) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("FM")); + +#ifdef CONFIG_FMAN_P1023 + if (FM_ConfigDmaAidOverride(p_LnxWrpFmDev->h_Dev, TRUE) != E_OK) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("FM")); +#endif + + /* Use the entire amount of TNUMS, maybe performance will improve... + for OPEN DMAs - are all by default = 32 and fifosize = MURAM*3/4 and + the rest of it is for PCD */ + FM_ConfigTotalNumOfTasks(p_LnxWrpFmDev->h_Dev, BMI_MAX_NUM_OF_TASKS); + +#if defined(CONFIG_FMAN_RESOURCE_ALLOCATION_ALGORITHM) && defined(CONFIG_FMAN_P3040_P4080_P5020) + /* Enable 14g w/ jumbo frames following HW suggestion. */ + FM_ConfigTotalFifoSize(p_LnxWrpFmDev->h_Dev, 128*KILOBYTE); +#endif + + if (FM_Init(p_LnxWrpFmDev->h_Dev) != E_OK) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("FM")); + + if (p_LnxWrpFmDev->err_irq == 0) { + FM_SetException(p_LnxWrpFmDev->h_Dev, e_FM_EX_DMA_BUS_ERROR,FALSE); + FM_SetException(p_LnxWrpFmDev->h_Dev,e_FM_EX_DMA_READ_ECC,FALSE); + FM_SetException(p_LnxWrpFmDev->h_Dev,e_FM_EX_DMA_SYSTEM_WRITE_ECC,FALSE); + FM_SetException(p_LnxWrpFmDev->h_Dev,e_FM_EX_DMA_FM_WRITE_ECC,FALSE); + FM_SetException(p_LnxWrpFmDev->h_Dev,e_FM_EX_FPM_STALL_ON_TASKS , FALSE); + FM_SetException(p_LnxWrpFmDev->h_Dev,e_FM_EX_FPM_DOUBLE_ECC,FALSE); + FM_SetException(p_LnxWrpFmDev->h_Dev,e_FM_EX_IRAM_ECC,FALSE); + /* TODO: FmDisableRamsEcc assert for ramsEccOwners. + * FM_SetException(p_LnxWrpFmDev->h_Dev,e_FM_EX_MURAM_ECC,FALSE);*/ + FM_SetException(p_LnxWrpFmDev->h_Dev,e_FM_EX_QMI_DOUBLE_ECC,FALSE); + FM_SetException(p_LnxWrpFmDev->h_Dev,e_FM_EX_QMI_DEQ_FROM_UNKNOWN_PORTID,FALSE); + FM_SetException(p_LnxWrpFmDev->h_Dev,e_FM_EX_BMI_LIST_RAM_ECC,FALSE); + FM_SetException(p_LnxWrpFmDev->h_Dev,e_FM_EX_BMI_PIPELINE_ECC,FALSE); + FM_SetException(p_LnxWrpFmDev->h_Dev,e_FM_EX_BMI_STATISTICS_RAM_ECC, FALSE); + FM_SetException(p_LnxWrpFmDev->h_Dev,e_FM_EX_FPM_SINGLE_ECC, FALSE); + FM_SetException(p_LnxWrpFmDev->h_Dev,e_FM_EX_QMI_SINGLE_ECC, FALSE); + } + + if (p_LnxWrpFmDev->fmRtcBaseAddr) + { + t_FmRtcParams fmRtcParam; + + memset(&fmRtcParam, 0, sizeof(fmRtcParam)); + fmRtcParam.h_App = p_LnxWrpFmDev; + fmRtcParam.h_Fm = p_LnxWrpFmDev->h_Dev; + fmRtcParam.baseAddress = p_LnxWrpFmDev->fmRtcBaseAddr; + + if(!(p_LnxWrpFmDev->h_RtcDev = FM_RTC_Config(&fmRtcParam))) + RETURN_ERROR(MAJOR, E_INVALID_HANDLE, ("FM-RTC")); + + if (FM_RTC_ConfigPeriod(p_LnxWrpFmDev->h_RtcDev, 10) != E_OK) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("FM-RTC")); + + if (FM_RTC_Init(p_LnxWrpFmDev->h_RtcDev) != E_OK) + RETURN_ERROR(MAJOR, E_INVALID_STATE, ("FM-RTC")); + } + + return E_OK; +} + +/* TODO: to be moved back here */ +extern void FreeFmPcdDev(t_LnxWrpFmDev *p_LnxWrpFmDev); + +static void FreeFmDev(t_LnxWrpFmDev *p_LnxWrpFmDev) +{ + if (!p_LnxWrpFmDev->active) + return; + + FreeFmPcdDev(p_LnxWrpFmDev); + + if (p_LnxWrpFmDev->h_RtcDev) + FM_RTC_Free(p_LnxWrpFmDev->h_RtcDev); + + if (p_LnxWrpFmDev->h_Dev) + FM_Free(p_LnxWrpFmDev->h_Dev); + + if (p_LnxWrpFmDev->h_MuramDev) + FM_MURAM_Free(p_LnxWrpFmDev->h_MuramDev); + + if (p_LnxWrpFmDev->fmRtcBaseAddr) + { + SYS_UnregisterIoMap(p_LnxWrpFmDev->fmRtcBaseAddr); + devm_iounmap(p_LnxWrpFmDev->dev, UINT_TO_PTR(p_LnxWrpFmDev->fmRtcBaseAddr)); + __devm_release_region(p_LnxWrpFmDev->dev, p_LnxWrpFmDev->res, p_LnxWrpFmDev->fmRtcPhysBaseAddr, p_LnxWrpFmDev->fmRtcMemSize); + } + SYS_UnregisterIoMap(p_LnxWrpFmDev->fmMuramBaseAddr); + devm_iounmap(p_LnxWrpFmDev->dev, UINT_TO_PTR(p_LnxWrpFmDev->fmMuramBaseAddr)); + __devm_release_region(p_LnxWrpFmDev->dev, p_LnxWrpFmDev->res, p_LnxWrpFmDev->fmMuramPhysBaseAddr, p_LnxWrpFmDev->fmMuramMemSize); + SYS_UnregisterIoMap(p_LnxWrpFmDev->fmBaseAddr); + devm_iounmap(p_LnxWrpFmDev->dev, UINT_TO_PTR(p_LnxWrpFmDev->fmBaseAddr)); + devm_release_mem_region(p_LnxWrpFmDev->dev, p_LnxWrpFmDev->fmPhysBaseAddr, p_LnxWrpFmDev->fmMemSize); + if (p_LnxWrpFmDev->err_irq != 0) { + devm_free_irq(p_LnxWrpFmDev->dev, p_LnxWrpFmDev->err_irq, p_LnxWrpFmDev); + } + + devm_free_irq(p_LnxWrpFmDev->dev, p_LnxWrpFmDev->irq, p_LnxWrpFmDev); +} + +/* FMan character device file operations */ +extern struct file_operations fm_fops; + +static int fm_probe(struct platform_device *of_dev) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev; + + if ((p_LnxWrpFmDev = ReadFmDevTreeNode(of_dev)) == NULL) + return -EIO; + if (ConfigureFmDev(p_LnxWrpFmDev) != E_OK) + return -EIO; + if (InitFmDev(p_LnxWrpFmDev) != E_OK) + return -EIO; + + Sprint (p_LnxWrpFmDev->name, "%s%d", DEV_FM_NAME, p_LnxWrpFmDev->id); + + /* Register to the /dev for IOCTL API */ + /* Register dynamically a new major number for the character device: */ + if ((p_LnxWrpFmDev->major = register_chrdev(0, p_LnxWrpFmDev->name, &fm_fops)) <= 0) { + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("Failed to allocate a major number for device \"%s\"", p_LnxWrpFmDev->name)); + return -EIO; + } + + /* Creating classes for FM */ + DBG(TRACE ,("class_create fm_class")); + p_LnxWrpFmDev->fm_class = class_create(THIS_MODULE, p_LnxWrpFmDev->name); + if (IS_ERR(p_LnxWrpFmDev->fm_class)) { + unregister_chrdev(p_LnxWrpFmDev->major, p_LnxWrpFmDev->name); + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("class_create error fm_class")); + return -EIO; + } + + device_create(p_LnxWrpFmDev->fm_class, NULL, MKDEV(p_LnxWrpFmDev->major, DEV_FM_MINOR_BASE), NULL, + "fm%d", p_LnxWrpFmDev->id); + device_create(p_LnxWrpFmDev->fm_class, NULL, MKDEV(p_LnxWrpFmDev->major, DEV_FM_PCD_MINOR_BASE), NULL, + "fm%d-pcd", p_LnxWrpFmDev->id); + dev_set_drvdata(p_LnxWrpFmDev->dev, p_LnxWrpFmDev); + + /* create sysfs entries for stats and regs */ + if ( fm_sysfs_create(p_LnxWrpFmDev->dev) !=0 ) + { + FreeFmDev(p_LnxWrpFmDev); + REPORT_ERROR(MAJOR, E_INVALID_STATE, ("Unable to create sysfs entry - fm!!!")); + return -EIO; + } + + DBG(TRACE, ("FM%d probed", p_LnxWrpFmDev->id)); + +#if defined(CONFIG_FMAN_RESOURCE_ALLOCATION_ALGORITHM) + /* Precalculate resources for FMAN based on number of + * FMan ports available + */ + if(fm_set_active_fman_ports(of_dev, p_LnxWrpFmDev)!= 0) + return -EIO; + +#if defined(CONFIG_FMAN_P3040_P4080_P5020) + /* 128K MURAM for p3,p4 and p5 */ + if(fm_precalculate_fifosizes( + p_LnxWrpFmDev, + 128*KILOBYTE) + != 0) + return -EIO; +#else + /* for all other platforms: MURAM Space for fifosize=3/4 * MURAM_SIZE*/ + if(fm_precalculate_fifosizes( + p_LnxWrpFmDev, + CEIL_DIV((3*FM_MURAM_SIZE-1),4)) + != 0) + return -EIO; +#endif + if(fm_precalculate_open_dma( + p_LnxWrpFmDev, + BMI_MAX_NUM_OF_DMAS, /* max open dmas:dpaa_integration_ext.h */ + FM_DEFAULT_TX10G_OPENDMA, /* default TX 10g open dmas */ + FM_DEFAULT_RX10G_OPENDMA, /* default RX 10g open dmas */ + FM_10G_OPENDMA_MIN_TRESHOLD,/* TX 10g minimum treshold */ + FM_10G_OPENDMA_MIN_TRESHOLD)/* RX 10g minimum treshold */ + != 0) + return -EIO; + if(fm_precalculate_tnums( + p_LnxWrpFmDev, + BMI_MAX_NUM_OF_TASKS) /* max TNUMS: dpa integration file. */ + != 0) + return -EIO; +#endif + + return 0; +} + +static int fm_remove(struct platform_device *of_dev) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev; + struct device *dev; + + dev = &of_dev->dev; + p_LnxWrpFmDev = dev_get_drvdata(dev); + + fm_sysfs_destroy(dev); + + DBG(TRACE, ("destroy fm_class")); + device_destroy(p_LnxWrpFmDev->fm_class, MKDEV(p_LnxWrpFmDev->major, DEV_FM_MINOR_BASE)); + device_destroy(p_LnxWrpFmDev->fm_class, MKDEV(p_LnxWrpFmDev->major, DEV_FM_PCD_MINOR_BASE)); + class_destroy(p_LnxWrpFmDev->fm_class); + + /* Destroy chardev */ + unregister_chrdev(p_LnxWrpFmDev->major, p_LnxWrpFmDev->name); + + FreeFmDev(p_LnxWrpFmDev); + + DestroyFmDev(p_LnxWrpFmDev); + + dev_set_drvdata(dev, NULL); + + return 0; +} + +static const struct of_device_id fm_match[] = { + { + .compatible = "fsl,fman" + }, + {} +}; +#ifndef MODULE +MODULE_DEVICE_TABLE(of, fm_match); +#endif /* !MODULE */ + +static struct platform_driver fm_driver = { + .driver = { + .name = "fsl-fman", + .of_match_table = fm_match, + .owner = THIS_MODULE, + }, + .probe = fm_probe, + .remove = fm_remove, +}; + +t_Handle LNXWRP_FM_Init(void) +{ + memset(&lnxWrpFm, 0, sizeof(lnxWrpFm)); + mutex_init(&lnxwrp_mutex); + + /* Register to the DTB for basic FM API */ + platform_driver_register(&fm_driver); + + return &lnxWrpFm; +} + +t_Error LNXWRP_FM_Free(t_Handle h_LnxWrpFm) +{ + platform_driver_unregister(&fm_driver); + mutex_destroy(&lnxwrp_mutex); + + return E_OK; +} + + +struct fm * fm_bind(struct device *fm_dev) +{ + return (struct fm *)(dev_get_drvdata(get_device(fm_dev))); +} +EXPORT_SYMBOL(fm_bind); + +void fm_unbind(struct fm *fm) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = (t_LnxWrpFmDev*)fm; + + put_device(p_LnxWrpFmDev->dev); +} +EXPORT_SYMBOL(fm_unbind); + +struct resource * fm_get_mem_region(struct fm *fm) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = (t_LnxWrpFmDev*)fm; + + return p_LnxWrpFmDev->res; +} +EXPORT_SYMBOL(fm_get_mem_region); + +void * fm_get_handle(struct fm *fm) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = (t_LnxWrpFmDev*)fm; + + return (void *)p_LnxWrpFmDev->h_Dev; +} +EXPORT_SYMBOL(fm_get_handle); + +void * fm_get_rtc_handle(struct fm *fm) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = (t_LnxWrpFmDev*)fm; + + return (void *)p_LnxWrpFmDev->h_RtcDev; +} +EXPORT_SYMBOL(fm_get_rtc_handle); + +struct fm_port * fm_port_bind (struct device *fm_port_dev) +{ + return (struct fm_port *)(dev_get_drvdata(get_device(fm_port_dev))); +} +EXPORT_SYMBOL(fm_port_bind); + +void fm_port_unbind(struct fm_port *port) +{ + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev = (t_LnxWrpFmPortDev*)port; + + put_device(p_LnxWrpFmPortDev->dev); +} +EXPORT_SYMBOL(fm_port_unbind); + +void * fm_port_get_handle(struct fm_port *port) +{ + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev = (t_LnxWrpFmPortDev*)port; + + return (void *)p_LnxWrpFmPortDev->h_Dev; +} +EXPORT_SYMBOL(fm_port_get_handle); + +void fm_port_get_base_addr(const struct fm_port *port, uint64_t *base_addr) +{ + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev = (t_LnxWrpFmPortDev *)port; + + *base_addr = p_LnxWrpFmPortDev->settings.param.baseAddr; +} +EXPORT_SYMBOL(fm_port_get_base_addr); + +void fm_port_pcd_bind (struct fm_port *port, struct fm_port_pcd_param *params) +{ + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev = (t_LnxWrpFmPortDev*)port; + + p_LnxWrpFmPortDev->pcd_owner_params.cba = params->cba; + p_LnxWrpFmPortDev->pcd_owner_params.cbf = params->cbf; + p_LnxWrpFmPortDev->pcd_owner_params.dev = params->dev; +} +EXPORT_SYMBOL(fm_port_pcd_bind); + +int fm_get_tx_port_channel(struct fm_port *port) +{ + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev = (t_LnxWrpFmPortDev*)port; + + return p_LnxWrpFmPortDev->txCh; +} +EXPORT_SYMBOL(fm_get_tx_port_channel); + +int fm_port_enable (struct fm_port *port) +{ + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev = (t_LnxWrpFmPortDev*)port; + + FM_PORT_Enable(p_LnxWrpFmPortDev->h_Dev); + + return 0; +} +EXPORT_SYMBOL(fm_port_enable); + +void fm_port_disable(struct fm_port *port) +{ + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev = (t_LnxWrpFmPortDev*)port; + + FM_PORT_Disable(p_LnxWrpFmPortDev->h_Dev); +} +EXPORT_SYMBOL(fm_port_disable); + +void fm_mutex_lock(void) +{ + mutex_lock(&lnxwrp_mutex); +} +EXPORT_SYMBOL(fm_mutex_lock); + +void fm_mutex_unlock(void) +{ + mutex_unlock(&lnxwrp_mutex); +} +EXPORT_SYMBOL(fm_mutex_unlock); + +static t_Handle h_FmLnxWrp; + +static int __init __cold fm_load (void) +{ + if ((h_FmLnxWrp = LNXWRP_FM_Init()) == NULL) + { + printk("Failed to init FM wrapper!\n"); + return -ENODEV; + } + + printk (KERN_INFO "Freescale FM module ("__DATE__ ":"__TIME__")\n"); + + return 0; +} + +static void __exit __cold fm_unload (void) +{ + if (h_FmLnxWrp) + LNXWRP_FM_Free(h_FmLnxWrp); +} + +module_init (fm_load); +module_exit (fm_unload); --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_fm.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_fm.h @@ -0,0 +1,257 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + + @File lnxwrp_fm.h + + @Author Shlomi Gridish + + @Description FM Linux wrapper functions. + +*/ + +#ifndef __LNXWRP_FM_H__ +#define __LNXWRP_FM_H__ + +#include /* struct qman_fq */ + +#include "std_ext.h" +#include "error_ext.h" +#include "list_ext.h" + +#include "lnxwrp_fm_ext.h" + +#define __ERR_MODULE__ MODULE_FM + +#define FM_MAX_NUM_OF_ADV_SETTINGS 10 + +#define LNXWRP_FM_NUM_OF_SHARED_PROFILES 16 + +#if defined(CONFIG_FMAN_DISABLE_OH_TO_REUSE_RESOURCES) +#define FM_10G_OPENDMA_MIN_TRESHOLD 8 /* 10g minimum treshold if only HC is enabled and no OH port enabled */ +#define FM_OPENDMA_RX_TX_RAPORT 2 /* RX = 2*TX */ +#else +#define FM_10G_OPENDMA_MIN_TRESHOLD 7 /* 10g minimum treshold if 7 OH ports are enabled */ +#define FM_OPENDMA_RX_TX_RAPORT 1 /* RX = TX */ +#endif +#define FM_DEFAULT_TX10G_OPENDMA 8 /* default TX 10g open dmas */ +#define FM_DEFAULT_RX10G_OPENDMA 8 /* default RX 10g open dmas */ + +typedef enum { + e_NO_PCD = 0, + e_FM_PCD_3_TUPLE +} e_LnxWrpFmPortPcdDefUseCase; + + +typedef struct t_FmTestFq { + struct qman_fq fq_base; + t_Handle h_Arg; +} t_FmTestFq; + +typedef struct { + uint8_t id; /* sw port id, see SW_PORT_ID_TO_HW_PORT_ID() in fm_common.h */ + int minor; + char name[20]; + bool active; + uint64_t phys_baseAddr; + uint64_t baseAddr; /* Port's *virtual* address */ + uint32_t memSize; + t_WrpFmPortDevSettings settings; + uint8_t totalNumOfSchemes; + uint8_t schemesBase; + uint8_t numOfSchemesUsed; + uint32_t pcdBaseQ; + uint16_t pcdNumOfQs; + struct fm_port_pcd_param pcd_owner_params; + e_LnxWrpFmPortPcdDefUseCase defPcd; + t_Handle h_DefNetEnv; + t_Handle h_Schemes[FM_PCD_KG_NUM_OF_SCHEMES]; + t_FmPortBufferPrefixContent buffPrefixContent; + t_Handle h_Dev; + t_Handle h_LnxWrpFmDev; + uint16_t txCh; + struct device *dev; + struct device_attribute *dev_attr_stats; + struct device_attribute *dev_attr_regs; +} t_LnxWrpFmPortDev; + +typedef struct { + uint8_t id; + bool active; + uint64_t baseAddr; + uint32_t memSize; + t_WrpFmMacDevSettings settings; + t_Handle h_Dev; + t_Handle h_LnxWrpFmDev; +} t_LnxWrpFmMacDev; + +/* information about all active ports for an FMan. + * !Some ports may be disabled by u-boot, thus will not be available */ +struct fm_active_ports { + uint32_t num_oh_ports; + uint32_t num_tx_ports; + uint32_t num_rx_ports; + uint32_t num_tx25_ports; + uint32_t num_rx25_ports; + uint32_t num_tx10_ports; + uint32_t num_rx10_ports; +}; + +/* FMan resources precalculated at fm probe based + * on available FMan port. */ +struct fm_resource_settings { + /* buffers - fifo sizes */ + uint32_t tx1g_num_buffers; + uint32_t rx1g_num_buffers; + uint32_t tx2g5_num_buffers; /* Not supported yet by LLD */ + uint32_t rx2g5_num_buffers; /* Not supported yet by LLD */ + uint32_t tx10g_num_buffers; + uint32_t rx10g_num_buffers; + uint32_t oh_num_buffers; + uint32_t shared_ext_buffers; + + /* open DMAs */ + uint32_t tx_1g_dmas; + uint32_t rx_1g_dmas; + uint32_t tx_2g5_dmas; /* Not supported yet by LLD */ + uint32_t rx_2g5_dmas; /* Not supported yet by LLD */ + uint32_t tx_10g_dmas; + uint32_t rx_10g_dmas; + uint32_t oh_dmas; + uint32_t shared_ext_open_dma; + + /* Tnums */ + uint32_t tx_1g_tnums; + uint32_t rx_1g_tnums; + uint32_t tx_2g5_tnums; /* Not supported yet by LLD */ + uint32_t rx_2g5_tnums; /* Not supported yet by LLD */ + uint32_t tx_10g_tnums; + uint32_t rx_10g_tnums; + uint32_t oh_tnums; + uint32_t shared_ext_tnums; +}; + +typedef struct { + uint8_t id; + char name[10]; + bool active; + bool pcdActive; + bool prsActive; + bool kgActive; + bool ccActive; + bool plcrActive; + e_LnxWrpFmPortPcdDefUseCase defPcd; + uint32_t usedSchemes; + uint8_t totalNumOfSharedSchemes; + uint8_t sharedSchemesBase; + uint8_t numOfSchemesUsed; + uint8_t defNetEnvId; + uint64_t fmPhysBaseAddr; + uint64_t fmBaseAddr; + uint32_t fmMemSize; + uint64_t fmMuramPhysBaseAddr; + uint64_t fmMuramBaseAddr; + uint32_t fmMuramMemSize; + uint64_t fmRtcPhysBaseAddr; + uint64_t fmRtcBaseAddr; + uint32_t fmRtcMemSize; + int irq; + int err_irq; + t_WrpFmDevSettings fmDevSettings; + t_WrpFmPcdDevSettings fmPcdDevSettings; + t_Handle h_Dev; + uint16_t hcCh; + + t_Handle h_MuramDev; + t_Handle h_PcdDev; + t_Handle h_RtcDev; + + t_LnxWrpFmPortDev hcPort; + t_LnxWrpFmPortDev opPorts[FM_MAX_NUM_OF_OH_PORTS-1]; + t_LnxWrpFmPortDev rxPorts[FM_MAX_NUM_OF_RX_PORTS]; + t_LnxWrpFmPortDev txPorts[FM_MAX_NUM_OF_TX_PORTS]; + t_LnxWrpFmMacDev macs[FM_MAX_NUM_OF_MACS]; + struct fm_active_ports fm_active_ports_info; + struct fm_resource_settings fm_resource_settings_info; + + struct device *dev; + struct resource *res; + int major; + struct class *fm_class; + struct device_attribute *dev_attr_stats; + struct device_attribute *dev_attr_regs; + + struct device_attribute *dev_pcd_attr_stats; + struct device_attribute *dev_pcd_attr_regs; + + struct qman_fq *hc_tx_conf_fq, *hc_tx_err_fq, *hc_tx_fq; +} t_LnxWrpFmDev; + +typedef struct { + t_LnxWrpFmDev *p_FmDevs[INTG_MAX_NUM_OF_FM]; +} t_LnxWrpFm; +#define LNXWRP_FM_OBJECT(ptr) LIST_OBJECT(ptr, t_LnxWrpFm, fms[((t_LnxWrpFmDev *)ptr)->id]) + + +t_Error LnxwrpFmIOCTL(t_LnxWrpFmDev *p_LnxWrpFmDev, unsigned int cmd, unsigned long arg, bool compat); +t_Error LnxwrpFmPortIOCTL(t_LnxWrpFmPortDev *p_LnxWrpFmPortDev, unsigned int cmd, unsigned long arg, bool compat); + + +static __inline__ t_Error AllocSchemesForPort(t_LnxWrpFmDev *p_LnxWrpFmDev, uint8_t numSchemes, uint8_t *p_BaseSchemeNum) +{ + uint32_t schemeMask; + uint8_t i; + + if (!numSchemes) + RETURN_ERROR(MINOR, E_INVALID_VALUE, NO_MSG); + + schemeMask = 0x80000000; + *p_BaseSchemeNum = 0xff; + + for (i=0; schemeMask && numSchemes; schemeMask>>=1, i++) + if ((p_LnxWrpFmDev->usedSchemes & schemeMask) == 0) + { + p_LnxWrpFmDev->usedSchemes |= schemeMask; + numSchemes--; + if (*p_BaseSchemeNum==0xff) + *p_BaseSchemeNum = i; + } + else if (*p_BaseSchemeNum!=0xff) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("Fragmentation on schemes array!!!")); + + if (numSchemes) + RETURN_ERROR(MINOR, E_FULL, ("schemes!!!")); + return E_OK; +} + + +#endif /* __LNXWRP_FM_H__ */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_fm_port.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_fm_port.c @@ -0,0 +1,1183 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + + @File lnxwrp_fm_port.c + + @Description FMD wrapper - FMan port functions. + +*/ + +#include +#if defined(CONFIG_MODVERSIONS) && !defined(MODVERSIONS) +#define MODVERSIONS +#endif +#ifdef MODVERSIONS +#include +#endif /* MODVERSIONS */ +#include +#include +#include +#include +#include +#include +#include + +#include "sprint_ext.h" +#include "fm_port_ext.h" +#include "fm_ioctls.h" +#include "lnxwrp_resources.h" +#include "lnxwrp_sysfs_fm_port.h" + +/* TODO: duplicated, see lnxwrp_fm.c */ +#define ADD_ADV_CONFIG_NO_RET(_func, _param)\ +do {\ + if (i < max) {\ + p_Entry = &p_Entrys[i];\ + p_Entry->p_Function = _func;\ + _param\ + i++;\ + } else {\ + REPORT_ERROR(MAJOR, E_INVALID_VALUE,\ + ("Number of advanced-configuration entries exceeded"));\ + } \ +} while (0) + + +static volatile int hcFrmRcv/* = 0 */; +static spinlock_t lock; + +static enum qman_cb_dqrr_result qm_tx_conf_dqrr_cb(struct qman_portal *portal, + struct qman_fq *fq, + const struct qm_dqrr_entry + *dq) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = ((t_FmTestFq *) fq)->h_Arg; + unsigned long flags; + + FM_PCD_HcTxConf(p_LnxWrpFmDev->h_PcdDev, (t_DpaaFD *)&dq->fd); + spin_lock_irqsave(&lock, flags); + hcFrmRcv--; + spin_unlock_irqrestore(&lock, flags); + + return qman_cb_dqrr_consume; +} + +static enum qman_cb_dqrr_result qm_tx_dqrr_cb(struct qman_portal *portal, + struct qman_fq *fq, + const struct qm_dqrr_entry *dq) +{ + WARN(1, "FMD: failure at %s:%d/%s()!\n", __FILE__, __LINE__, + __func__); + return qman_cb_dqrr_consume; +} + +static void qm_err_cb(struct qman_portal *portal, + struct qman_fq *fq, const struct qm_mr_entry *msg) +{ + WARN(1, "FMD: failure at %s:%d/%s()!\n", __FILE__, __LINE__, + __func__); +} + +static struct qman_fq *FqAlloc(t_LnxWrpFmDev * p_LnxWrpFmDev, + uint32_t fqid, + uint32_t flags, uint16_t channel, uint8_t wq) +{ + int _errno; + struct qman_fq *fq = NULL; + t_FmTestFq *p_FmtFq; + struct qm_mcc_initfq initfq; + + p_FmtFq = (t_FmTestFq *) XX_Malloc(sizeof(t_FmTestFq)); + if (!p_FmtFq) { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FQ obj!!!")); + return NULL; + } + + p_FmtFq->fq_base.cb.dqrr = + (QMAN_FQ_FLAG_NO_ENQUEUE ? qm_tx_conf_dqrr_cb : + qm_tx_dqrr_cb); + p_FmtFq->fq_base.cb.ern = qm_err_cb; + p_FmtFq->fq_base.cb.dc_ern = qm_err_cb; + /* p_FmtFq->fq_base.cb.fqs = qm_err_cb; */ + /* qm_err_cb wrongly called when the FQ is parked */ + p_FmtFq->fq_base.cb.fqs = NULL; + p_FmtFq->h_Arg = (t_Handle) p_LnxWrpFmDev; + if (fqid == 0) { + flags |= QMAN_FQ_FLAG_DYNAMIC_FQID; + flags &= ~QMAN_FQ_FLAG_NO_MODIFY; + } else { + flags &= ~QMAN_FQ_FLAG_DYNAMIC_FQID; + } + + if (qman_create_fq(fqid, flags, &p_FmtFq->fq_base)) { + REPORT_ERROR(MAJOR, E_NO_MEMORY, ("FQ obj - qman_new_fq!!!")); + XX_Free(p_FmtFq); + return NULL; + } + fq = &p_FmtFq->fq_base; + + if (!(flags & QMAN_FQ_FLAG_NO_MODIFY)) { + initfq.we_mask = QM_INITFQ_WE_DESTWQ; + initfq.fqd.dest.channel = channel; + initfq.fqd.dest.wq = wq; + + _errno = qman_init_fq(fq, QMAN_INITFQ_FLAG_SCHED, &initfq); + if (unlikely(_errno < 0)) { + REPORT_ERROR(MAJOR, E_NO_MEMORY, + ("FQ obj - qman_init_fq!!!")); + qman_destroy_fq(fq, 0); + XX_Free(p_FmtFq); + return NULL; + } + } + + DBG(TRACE, + ("fqid %d, flags 0x%08x, channel %d, wq %d", qman_fq_fqid(fq), + flags, channel, wq)); + + return fq; +} + +static void FqFree(struct qman_fq *fq) +{ + int _errno; + + _errno = qman_retire_fq(fq, NULL); + if (unlikely(_errno < 0)) + printk(KERN_WARNING "qman_retire_fq(%u) = %d\n", qman_fq_fqid(fq), _errno); + + _errno = qman_oos_fq(fq); + if (unlikely(_errno < 0)) + printk(KERN_WARNING "qman_oos_fq(%u) = %d\n", qman_fq_fqid(fq), _errno); + + qman_destroy_fq(fq, 0); + XX_Free((t_FmTestFq *) fq); +} + +static t_Error QmEnqueueCB(t_Handle h_Arg, void *p_Fd) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = (t_LnxWrpFmDev *) h_Arg; + int _errno, timeout = 1000000; + unsigned long flags; + + ASSERT_COND(p_LnxWrpFmDev); + + spin_lock_irqsave(&lock, flags); + hcFrmRcv++; + spin_unlock_irqrestore(&lock, flags); + + _errno = qman_enqueue(p_LnxWrpFmDev->hc_tx_fq, (struct qm_fd *) p_Fd, + 0); + if (_errno) + RETURN_ERROR(MINOR, E_INVALID_STATE, + ("qman_enqueue() failed")); + + while (hcFrmRcv && --timeout) { + udelay(1); + cpu_relax(); + } + if (timeout == 0) { + dump_stack(); + RETURN_ERROR(MINOR, E_WRITE_FAILED, + ("timeout waiting for Tx confirmation")); + return E_WRITE_FAILED; + } + + return E_OK; +} + +static t_LnxWrpFmPortDev *ReadFmPortDevTreeNode(struct platform_device + *of_dev) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev; + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev; + struct device_node *fm_node, *port_node; + struct resource res; + const uint32_t *uint32_prop; + int _errno = 0, lenp; +#ifdef CONFIG_FMAN_P1023 + static unsigned char have_oh_port/* = 0 */; +#endif + + port_node = of_node_get(of_dev->dev.of_node); + + /* Get the FM node */ + fm_node = of_get_parent(port_node); + if (unlikely(fm_node == NULL)) { + REPORT_ERROR(MAJOR, E_NO_DEVICE, + ("of_get_parent() = %d", _errno)); + return NULL; + } + + p_LnxWrpFmDev = + dev_get_drvdata(&of_find_device_by_node(fm_node)->dev); + of_node_put(fm_node); + + /* if fm_probe() failed, no point in going further with port probing */ + if (p_LnxWrpFmDev == NULL) + return NULL; + + uint32_prop = + (uint32_t *) of_get_property(port_node, "cell-index", &lenp); + if (unlikely(uint32_prop == NULL)) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, + ("of_get_property(%s, cell-index) failed", + port_node->full_name)); + return NULL; + } + if (WARN_ON(lenp != sizeof(uint32_t))) + return NULL; + if (of_device_is_compatible(port_node, "fsl,fman-port-oh")) { + if (unlikely(*uint32_prop >= FM_MAX_NUM_OF_OH_PORTS)) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, + ("of_get_property(%s, cell-index) failed", + port_node->full_name)); + return NULL; + } + +#ifdef CONFIG_FMAN_P1023 + /* Beware, this can be done when there is only + one FMan to be initialized */ + if (!have_oh_port) { + have_oh_port = 1; /* first OP/HC port + is used for host command */ +#else + /* Here it is hardcoded the use of the OH port 1 + (with cell-index 0) */ + if (*uint32_prop == 0) { +#endif + p_LnxWrpFmPortDev = &p_LnxWrpFmDev->hcPort; + p_LnxWrpFmPortDev->id = 0; + /* + p_LnxWrpFmPortDev->id = *uint32_prop-1; + p_LnxWrpFmPortDev->id = *uint32_prop; + */ + p_LnxWrpFmPortDev->settings.param.portType = + e_FM_PORT_TYPE_OH_HOST_COMMAND; + } else { + p_LnxWrpFmPortDev = + &p_LnxWrpFmDev->opPorts[*uint32_prop - 1]; + p_LnxWrpFmPortDev->id = *uint32_prop - 1; + p_LnxWrpFmPortDev->settings.param.portType = + e_FM_PORT_TYPE_OH_OFFLINE_PARSING; + } + p_LnxWrpFmPortDev->settings.param.portId = *uint32_prop; + + uint32_prop = + (uint32_t *) of_get_property(port_node, + "fsl,qman-channel-id", + &lenp); + if (uint32_prop == NULL) { + /* + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("missing fsl,qman-channel-id")); + */ + XX_Print("FM warning: missing fsl,qman-channel-id" + " for OH port.\n"); + return NULL; + } + if (WARN_ON(lenp != sizeof(uint32_t))) + return NULL; + p_LnxWrpFmPortDev->txCh = *uint32_prop; + + p_LnxWrpFmPortDev->settings.param.specificParams.nonRxParams. + qmChannel = p_LnxWrpFmPortDev->txCh; + } else if (of_device_is_compatible(port_node, "fsl,fman-port-1g-tx") || + of_device_is_compatible(port_node, "fsl,fman-port-10g-tx")) { + if (unlikely(*uint32_prop >= FM_MAX_NUM_OF_TX_PORTS)) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, + ("of_get_property(%s, cell-index) failed", + port_node->full_name)); + return NULL; + } + if (of_device_is_compatible + (port_node, "fsl,fman-port-10g-tx")) + p_LnxWrpFmPortDev = + &p_LnxWrpFmDev->txPorts[*uint32_prop + + FM_MAX_NUM_OF_1G_TX_PORTS]; + else + p_LnxWrpFmPortDev = + &p_LnxWrpFmDev->txPorts[*uint32_prop]; + + p_LnxWrpFmPortDev->id = *uint32_prop; + p_LnxWrpFmPortDev->settings.param.portId = + p_LnxWrpFmPortDev->id; + if (of_device_is_compatible + (port_node, "fsl,fman-port-10g-tx")) + p_LnxWrpFmPortDev->settings.param.portType = + e_FM_PORT_TYPE_TX_10G; + else + p_LnxWrpFmPortDev->settings.param.portType = + e_FM_PORT_TYPE_TX; + + uint32_prop = + (uint32_t *) of_get_property(port_node, + "fsl,qman-channel-id", + &lenp); + if (uint32_prop == NULL) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, + ("missing fsl,qman-channel-id")); + return NULL; + } + if (WARN_ON(lenp != sizeof(uint32_t))) + return NULL; + p_LnxWrpFmPortDev->txCh = *uint32_prop; + p_LnxWrpFmPortDev->settings.param.specificParams.nonRxParams. + qmChannel = p_LnxWrpFmPortDev->txCh; + } else if (of_device_is_compatible(port_node, "fsl,fman-port-1g-rx") || + of_device_is_compatible(port_node, "fsl,fman-port-10g-rx")) { + if (unlikely(*uint32_prop >= FM_MAX_NUM_OF_RX_PORTS)) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, + ("of_get_property(%s, cell-index) failed", + port_node->full_name)); + return NULL; + } + if (of_device_is_compatible + (port_node, "fsl,fman-port-10g-rx")) + p_LnxWrpFmPortDev = + &p_LnxWrpFmDev->rxPorts[*uint32_prop + + FM_MAX_NUM_OF_1G_RX_PORTS]; + else + p_LnxWrpFmPortDev = + &p_LnxWrpFmDev->rxPorts[*uint32_prop]; + + p_LnxWrpFmPortDev->id = *uint32_prop; + p_LnxWrpFmPortDev->settings.param.portId = + p_LnxWrpFmPortDev->id; + if (of_device_is_compatible + (port_node, "fsl,fman-port-10g-rx")) + p_LnxWrpFmPortDev->settings.param.portType = + e_FM_PORT_TYPE_RX_10G; + else + p_LnxWrpFmPortDev->settings.param.portType = + e_FM_PORT_TYPE_RX; + + if (p_LnxWrpFmDev->pcdActive) + p_LnxWrpFmPortDev->defPcd = p_LnxWrpFmDev->defPcd; + } else { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("Illegal port type")); + return NULL; + } + + _errno = of_address_to_resource(port_node, 0, &res); + if (unlikely(_errno < 0)) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, + ("of_address_to_resource() = %d", _errno)); + return NULL; + } + + p_LnxWrpFmPortDev->dev = &of_dev->dev; + p_LnxWrpFmPortDev->baseAddr = 0; + p_LnxWrpFmPortDev->phys_baseAddr = res.start; + p_LnxWrpFmPortDev->memSize = res.end + 1 - res.start; + p_LnxWrpFmPortDev->settings.param.h_Fm = p_LnxWrpFmDev->h_Dev; + p_LnxWrpFmPortDev->h_LnxWrpFmDev = (t_Handle) p_LnxWrpFmDev; + + of_node_put(port_node); + + p_LnxWrpFmPortDev->active = TRUE; + +#if defined(CONFIG_FMAN_DISABLE_OH_TO_REUSE_RESOURCES) + /* for performance mode no OH port available. */ + if (p_LnxWrpFmPortDev->settings.param.portType == + e_FM_PORT_TYPE_OH_OFFLINE_PARSING) + p_LnxWrpFmPortDev->active = FALSE; +#endif + + return p_LnxWrpFmPortDev; +} + +static t_Error ConfigureFmPortDev(t_LnxWrpFmPortDev *p_LnxWrpFmPortDev) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = + (t_LnxWrpFmDev *) p_LnxWrpFmPortDev->h_LnxWrpFmDev; + struct resource *dev_res; + + if (!p_LnxWrpFmPortDev->active) + RETURN_ERROR(MAJOR, E_INVALID_STATE, + ("FM port not configured!!!")); + + dev_res = + __devm_request_region(p_LnxWrpFmDev->dev, p_LnxWrpFmDev->res, + p_LnxWrpFmPortDev->phys_baseAddr, + p_LnxWrpFmPortDev->memSize, + "fman-port-hc"); + if (unlikely(dev_res == NULL)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, + ("__devm_request_region() failed")); + p_LnxWrpFmPortDev->baseAddr = + PTR_TO_UINT(devm_ioremap + (p_LnxWrpFmDev->dev, + p_LnxWrpFmPortDev->phys_baseAddr, + p_LnxWrpFmPortDev->memSize)); + if (unlikely(p_LnxWrpFmPortDev->baseAddr == 0)) + REPORT_ERROR(MAJOR, E_INVALID_STATE, + ("devm_ioremap() failed")); + + p_LnxWrpFmPortDev->settings.param.baseAddr = + p_LnxWrpFmPortDev->baseAddr; + + return E_OK; +} + +static t_Error InitFmPort3TupleDefPcd(t_LnxWrpFmPortDev *p_LnxWrpFmPortDev) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = + (t_LnxWrpFmDev *) p_LnxWrpFmPortDev->h_LnxWrpFmDev; + t_FmPcdNetEnvParams *p_netEnvParam = NULL; + t_FmPcdKgSchemeParams *p_schemeParam = NULL; + t_FmPortPcdParams pcdParam; + t_FmPortPcdPrsParams prsParam; + t_FmPortPcdKgParams kgParam; + uint8_t i, j; + + if (!p_LnxWrpFmDev->kgActive) + RETURN_ERROR(MAJOR, E_INVALID_STATE, + ("keygen must be enabled for 3-tuple PCD!")); + + if (!p_LnxWrpFmDev->prsActive) + RETURN_ERROR(MAJOR, E_INVALID_STATE, + ("parser must be enabled for 3-tuple PCD!")); + + if (p_LnxWrpFmPortDev->pcdNumOfQs < 9) + RETURN_ERROR(MINOR, E_INVALID_VALUE, + ("Need to save at least 18 queues for" + "3-tuple PCD!!!")); + + p_LnxWrpFmPortDev->totalNumOfSchemes = + p_LnxWrpFmPortDev->numOfSchemesUsed = 2; + + if (AllocSchemesForPort + (p_LnxWrpFmDev, p_LnxWrpFmPortDev->totalNumOfSchemes, + &p_LnxWrpFmPortDev->schemesBase) != E_OK) + RETURN_ERROR(MAJOR, E_INVALID_STATE, + ("No schemes for Rx or OP port for" + " 3-tuple PCD!!!")); + + p_netEnvParam = kzalloc(sizeof(*p_netEnvParam), GFP_KERNEL); + if (!p_netEnvParam) { + RETURN_ERROR(MAJOR, E_NO_MEMORY, + ("Failed to allocate p_netEnvParam")); + } + /* set netEnv */ + p_netEnvParam->numOfDistinctionUnits = 2; + p_netEnvParam->units[0].hdrs[0].hdr = + HEADER_TYPE_IPv4; /* no special options */ + p_netEnvParam->units[1].hdrs[0].hdr = HEADER_TYPE_ETH; + p_LnxWrpFmPortDev->h_DefNetEnv = + FM_PCD_SetNetEnvCharacteristics(p_LnxWrpFmDev->h_PcdDev, + p_netEnvParam); + kfree(p_netEnvParam); + if (!p_LnxWrpFmPortDev->h_DefNetEnv) + RETURN_ERROR(MAJOR, E_INVALID_HANDLE, ("FM PCD!")); + + p_schemeParam = kmalloc(sizeof(*p_schemeParam), GFP_KERNEL); + if (!p_schemeParam) { + RETURN_ERROR(MAJOR, E_NO_MEMORY, + ("Failed to allocate p_schemeParam")); + } + for (i = 0; i < p_LnxWrpFmPortDev->numOfSchemesUsed; i++) { + memset(p_schemeParam, 0, sizeof(*p_schemeParam)); + p_schemeParam->modify = FALSE; + p_schemeParam->id.relativeSchemeId = + i + p_LnxWrpFmPortDev->schemesBase; + p_schemeParam->alwaysDirect = FALSE; + p_schemeParam->netEnvParams.h_NetEnv = + p_LnxWrpFmPortDev->h_DefNetEnv; + p_schemeParam->schemeCounter.update = TRUE; + p_schemeParam->schemeCounter.value = 0; + + switch (i) { + case (0): /* catch IPv4 */ + p_schemeParam->netEnvParams.numOfDistinctionUnits = 1; + p_schemeParam->netEnvParams.unitIds[0] = 0; + p_schemeParam->baseFqid = p_LnxWrpFmPortDev->pcdBaseQ; + p_schemeParam->nextEngine = e_FM_PCD_DONE; + p_schemeParam->numOfUsedExtractedOrs = 0; + p_schemeParam->useHash = TRUE; + p_schemeParam->keyExtractAndHashParams. + numOfUsedExtracts = 3; + for (j = 0; + j < + p_schemeParam->keyExtractAndHashParams. + numOfUsedExtracts; j++) { + p_schemeParam->keyExtractAndHashParams. + extractArray[j].type = + e_FM_PCD_EXTRACT_BY_HDR; + p_schemeParam->keyExtractAndHashParams. + extractArray[j].extractByHdr.hdr = + HEADER_TYPE_IPv4; + p_schemeParam->keyExtractAndHashParams. + extractArray[j].extractByHdr. + ignoreProtocolValidation = FALSE; + p_schemeParam->keyExtractAndHashParams. + extractArray[j].extractByHdr.type = + e_FM_PCD_EXTRACT_FULL_FIELD; + } + p_schemeParam->keyExtractAndHashParams. + extractArray[0].extractByHdr.extractByHdrType. + fullField.ipv4 = NET_HEADER_FIELD_IPv4_PROTO; + p_schemeParam->keyExtractAndHashParams. + extractArray[1].extractByHdr.extractByHdrType. + fullField.ipv4 = NET_HEADER_FIELD_IPv4_SRC_IP; + p_schemeParam->keyExtractAndHashParams. + extractArray[2].extractByHdr.extractByHdrType. + fullField.ipv4 = NET_HEADER_FIELD_IPv4_DST_IP; + + if (p_schemeParam->useHash) { + p_schemeParam->keyExtractAndHashParams. + privateDflt0 = 0x01020304; + p_schemeParam->keyExtractAndHashParams. + privateDflt1 = 0x11121314; + p_schemeParam->keyExtractAndHashParams. + numOfUsedDflts = + FM_PCD_KG_NUM_OF_DEFAULT_GROUPS; + for (j = 0; + j < FM_PCD_KG_NUM_OF_DEFAULT_GROUPS; + j++) { + /* all types */ + p_schemeParam->keyExtractAndHashParams.dflts[j].type = + (e_FmPcdKgKnownFieldsDfltTypes) j; + p_schemeParam-> + keyExtractAndHashParams. + dflts[j].dfltSelect = + e_FM_PCD_KG_DFLT_GBL_0; + } + p_schemeParam->keyExtractAndHashParams. + numOfUsedMasks = 0; + p_schemeParam->keyExtractAndHashParams. + hashShift = 0; + p_schemeParam->keyExtractAndHashParams. + hashDistributionNumOfFqids = 8; + } + break; + + case (1): /* Garbage collector */ + p_schemeParam->netEnvParams.numOfDistinctionUnits = 0; + p_schemeParam->baseFqid = + p_LnxWrpFmPortDev->pcdBaseQ + 8; + break; + + default: + break; + } + + p_LnxWrpFmPortDev->h_Schemes[i] = + FM_PCD_KgSetScheme(p_LnxWrpFmDev->h_PcdDev, + p_schemeParam); + if (!p_LnxWrpFmPortDev->h_Schemes[i]) { + kfree(p_schemeParam); + RETURN_ERROR(MAJOR, E_INVALID_HANDLE, + ("FM_PCD_KgSetScheme failed")); + } + } + kfree(p_schemeParam); + + /* initialize PCD parameters */ + memset(&pcdParam, 0, sizeof(t_FmPortPcdParams)); + pcdParam.h_NetEnv = p_LnxWrpFmPortDev->h_DefNetEnv; + pcdParam.pcdSupport = e_FM_PORT_PCD_SUPPORT_PRS_AND_KG; + + /* initialize Keygen parameters */ + memset(&prsParam, 0, sizeof(t_FmPortPcdPrsParams)); + + prsParam.parsingOffset = 0; + prsParam.firstPrsHdr = HEADER_TYPE_ETH; + pcdParam.p_PrsParams = &prsParam; + + /* initialize Parser parameters */ + memset(&kgParam, 0, sizeof(t_FmPortPcdKgParams)); + kgParam.numOfSchemes = p_LnxWrpFmPortDev->numOfSchemesUsed; + for (i = 0; i < kgParam.numOfSchemes; i++) + kgParam.h_Schemes[i] = p_LnxWrpFmPortDev->h_Schemes[i]; + + pcdParam.p_KgParams = &kgParam; + + return FM_PORT_SetPCD(p_LnxWrpFmPortDev->h_Dev, &pcdParam); +} + +static t_Error InitFmPortDev(t_LnxWrpFmPortDev *p_LnxWrpFmPortDev) +{ +#define MY_ADV_CONFIG_CHECK_END \ + RETURN_ERROR(MAJOR, E_INVALID_SELECTION,\ + ("Advanced configuration routine"));\ + if (errCode != E_OK)\ + RETURN_ERROR(MAJOR, errCode, NO_MSG);\ + } + + int i = 0; + + if (!p_LnxWrpFmPortDev->active || p_LnxWrpFmPortDev->h_Dev) + return E_INVALID_STATE; + + p_LnxWrpFmPortDev->h_Dev = + FM_PORT_Config(&p_LnxWrpFmPortDev->settings.param); + if (p_LnxWrpFmPortDev->h_Dev == NULL) + RETURN_ERROR(MAJOR, E_INVALID_HANDLE, ("FM-port")); + + if ((p_LnxWrpFmPortDev->settings.param.portType == + e_FM_PORT_TYPE_TX_10G) + || (p_LnxWrpFmPortDev->settings.param.portType == + e_FM_PORT_TYPE_TX)) { + t_Error errCode = E_OK; + errCode = + FM_PORT_ConfigDeqHighPriority(p_LnxWrpFmPortDev->h_Dev, + TRUE); + if (errCode != E_OK) + RETURN_ERROR(MAJOR, errCode, NO_MSG); +#ifdef FM_QMI_DEQ_OPTIONS_SUPPORT + errCode = + FM_PORT_ConfigDeqPrefetchOption(p_LnxWrpFmPortDev->h_Dev, + e_FM_PORT_DEQ_FULL_PREFETCH); + if (errCode + != E_OK) + RETURN_ERROR(MAJOR, errCode, NO_MSG); +#endif /* FM_QMI_DEQ_OPTIONS_SUPPORT */ + } + +/* Call the driver's advanced configuration routines, if requested: + Compare the function pointer of each entry to the available routines, + and invoke the matching routine with proper casting of arguments. */ + while (p_LnxWrpFmPortDev->settings.advConfig[i].p_Function + && (i < FM_MAX_NUM_OF_ADV_SETTINGS)) { + ADV_CONFIG_CHECK_START(& + (p_LnxWrpFmPortDev->settings. + advConfig[i])) + + ADV_CONFIG_CHECK(p_LnxWrpFmPortDev->h_Dev, + FM_PORT_ConfigBufferPrefixContent, + PARAMS(1, + (t_FmPortBufferPrefixContent + *))) + + MY_ADV_CONFIG_CHECK_END + /* Advance to next advanced configuration entry */ + i++; + } + + if (FM_PORT_Init(p_LnxWrpFmPortDev->h_Dev) != E_OK) + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); +#if defined(CONFIG_FMAN_RESOURCE_ALLOCATION_ALGORITHM) + /* even if these functions return w/ error, do not crash kernel. + Do not return anything because the container function is not + linux complient (it should return -EIO). */ + fm_set_precalculate_fifosize(p_LnxWrpFmPortDev); + fm_set_precalculate_open_dma(p_LnxWrpFmPortDev); + fm_set_precalculate_tnums(p_LnxWrpFmPortDev); +#endif + +/* FMan Fifo sizes behind the scene": + * Using the following formulae (*), under a set of simplifying assumptions (.): + * . all ports are configured in Normal Mode (rather than Independent Mode) + * . the DPAA Eth driver allocates buffers of size: + * . MAXFRM + NET_IP_ALIGN + DPA_PRIV_DATA_SIZE + DPA_PARSE_RESULTS_SIZE + * + DPA_HASH_RESULTS_SIZE, i.e.: + * MAXFRM + 2 + 16 + sizeof(t_FmPrsResult) + 16, i.e.: + * MAXFRM + 66 + * . excessive buffer pools not accounted for + * + * * for Rx ports on P4080: + * . IFSZ = ceil(max(FMBM_EBMPI[PBS]) / 256) * 256 + 7 * 256 + * . no internal frame offset (FMBM_RIM[FOF] == 0) - otherwise, + * add up to 256 to the above + * + * * for Rx ports on P1023: + * . IFSZ = ceil(second_largest(FMBM_EBMPI[PBS] / 256)) * 256 + 7 * 256, + * if at least 2 bpools are configured + * . IFSZ = 8 * 256, if only a single bpool is configured + * + * * for Tx ports: + * . IFSZ = ceil(frame_size / 256) * 256 + 3 * 256 + * + FMBM_TFP[DPDE] * 256, i.e.: + * IFSZ = ceil(MAXFRM / 256) * 256 + 3 x 256 + FMBM_TFP[DPDE] * 256 + * + * * for OH ports on P4080: + * . IFSZ = ceil(frame_size / 256) * 256 + 1 * 256 + FMBM_PP[MXT] * 256 + * * for OH ports on P1023: + * . IFSZ = ceil(frame_size / 256) * 256 + 3 * 256 + FMBM_TFP[DPDE] * 256 + * * for both P4080 and P1023: + * . (conservative decisions, assuming that BMI must bring the entire + * frame, not only the frame header) + * . no internal frame offset (FMBM_OIM[FOF] == 0) - otherwise, + * add up to 256 to the above + * + * . for P4080/P5020/P3041/P2040, DPDE is: + * > 0 or 1, for 1Gb ports, HW default: 0 + * > 2..7 (recommended: 3..7) for 10Gb ports, HW default: 3 + * . for P1023, DPDE should be 1 + * + * . for P1023, MXT is in range (0..31) + * . for P4080, MXT is in range (0..63) + * + */ + + if ((p_LnxWrpFmPortDev->defPcd != e_NO_PCD) && + (InitFmPort3TupleDefPcd(p_LnxWrpFmPortDev) != E_OK)) + RETURN_ERROR(MAJOR, E_INVALID_STATE, NO_MSG); + + return E_OK; +} + +void fm_set_rx_port_params(struct fm_port *port, + struct fm_port_rx_params *params) +{ + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev = (t_LnxWrpFmPortDev *) port; + int i; + + p_LnxWrpFmPortDev->settings.param.specificParams.rxParams.errFqid = + params->errq; + p_LnxWrpFmPortDev->settings.param.specificParams.rxParams.dfltFqid = + params->defq; + p_LnxWrpFmPortDev->settings.param.specificParams.rxParams.extBufPools. + numOfPoolsUsed = params->num_pools; + for (i = 0; i < params->num_pools; i++) { + p_LnxWrpFmPortDev->settings.param.specificParams.rxParams. + extBufPools.extBufPool[i].id = + params->pool_param[i].id; + p_LnxWrpFmPortDev->settings.param.specificParams.rxParams. + extBufPools.extBufPool[i].size = + params->pool_param[i].size; + } + + p_LnxWrpFmPortDev->buffPrefixContent.privDataSize = + params->priv_data_size; + p_LnxWrpFmPortDev->buffPrefixContent.passPrsResult = + params->parse_results; + p_LnxWrpFmPortDev->buffPrefixContent.passHashResult = + params->hash_results; + p_LnxWrpFmPortDev->buffPrefixContent.passTimeStamp = + params->time_stamp; + + ADD_ADV_CONFIG_START(p_LnxWrpFmPortDev->settings.advConfig, + FM_MAX_NUM_OF_ADV_SETTINGS) + + ADD_ADV_CONFIG_NO_RET(FM_PORT_ConfigBufferPrefixContent, + ARGS(1, + (&p_LnxWrpFmPortDev-> + buffPrefixContent))); + + ADD_ADV_CONFIG_END InitFmPortDev(p_LnxWrpFmPortDev); +} +EXPORT_SYMBOL(fm_set_rx_port_params); + +void fm_set_tx_port_params(struct fm_port *port, + struct fm_port_non_rx_params *params) +{ + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev = (t_LnxWrpFmPortDev *) port; + + p_LnxWrpFmPortDev->settings.param.specificParams.nonRxParams.errFqid = + params->errq; + p_LnxWrpFmPortDev->settings.param.specificParams.nonRxParams. + dfltFqid = params->defq; + + p_LnxWrpFmPortDev->buffPrefixContent.privDataSize = + params->priv_data_size; + p_LnxWrpFmPortDev->buffPrefixContent.passPrsResult = + params->parse_results; + p_LnxWrpFmPortDev->buffPrefixContent.passHashResult = + params->hash_results; + p_LnxWrpFmPortDev->buffPrefixContent.passTimeStamp = + params->time_stamp; + + ADD_ADV_CONFIG_START(p_LnxWrpFmPortDev->settings.advConfig, + FM_MAX_NUM_OF_ADV_SETTINGS) + + ADD_ADV_CONFIG_NO_RET(FM_PORT_ConfigBufferPrefixContent, + ARGS(1, + (&p_LnxWrpFmPortDev-> + buffPrefixContent))); + + ADD_ADV_CONFIG_END InitFmPortDev(p_LnxWrpFmPortDev); +} +EXPORT_SYMBOL(fm_set_tx_port_params); + +static void LnxwrpFmPcdDevExceptionsCb(t_Handle h_App, + e_FmPcdExceptions exception) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = (t_LnxWrpFmDev *) h_App; + + ASSERT_COND(p_LnxWrpFmDev); + + DBG(INFO, ("got fm-pcd exception %d", exception)); + + /* do nothing */ + UNUSED(exception); +} + +static void LnxwrpFmPcdDevIndexedExceptionsCb(t_Handle h_App, + e_FmPcdExceptions exception, + uint16_t index) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = (t_LnxWrpFmDev *) h_App; + + ASSERT_COND(p_LnxWrpFmDev); + + DBG(INFO, + ("got fm-pcd-indexed exception %d, indx %d", exception, index)); + + /* do nothing */ + UNUSED(exception); + UNUSED(index); +} + +static t_Error InitFmPcdDev(t_LnxWrpFmDev *p_LnxWrpFmDev) +{ + spin_lock_init(&lock); + + if (p_LnxWrpFmDev->pcdActive) { + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev = &p_LnxWrpFmDev->hcPort; + t_FmPcdParams fmPcdParams; + t_Error err; + + memset(&fmPcdParams, 0, sizeof(fmPcdParams)); + fmPcdParams.h_Fm = p_LnxWrpFmDev->h_Dev; + fmPcdParams.prsSupport = p_LnxWrpFmDev->prsActive; + fmPcdParams.kgSupport = p_LnxWrpFmDev->kgActive; + fmPcdParams.plcrSupport = p_LnxWrpFmDev->plcrActive; + fmPcdParams.ccSupport = p_LnxWrpFmDev->ccActive; + fmPcdParams.numOfSchemes = FM_PCD_KG_NUM_OF_SCHEMES; + +#ifndef CONFIG_GUEST_PARTITION + fmPcdParams.f_Exception = LnxwrpFmPcdDevExceptionsCb; + if (fmPcdParams.kgSupport) + fmPcdParams.f_ExceptionId = + LnxwrpFmPcdDevIndexedExceptionsCb; + fmPcdParams.h_App = p_LnxWrpFmDev; +#endif /* !CONFIG_GUEST_PARTITION */ + +#ifdef CONFIG_MULTI_PARTITION_SUPPORT + fmPcdParams.numOfSchemes = 0; + fmPcdParams.numOfClsPlanEntries = 0; + fmPcdParams.partitionId = 0; +#endif /* CONFIG_MULTI_PARTITION_SUPPORT */ + fmPcdParams.useHostCommand = TRUE; + + p_LnxWrpFmDev->hc_tx_fq = + FqAlloc(p_LnxWrpFmDev, + 0, + QMAN_FQ_FLAG_TO_DCPORTAL, + p_LnxWrpFmPortDev->txCh, 0); + if (!p_LnxWrpFmDev->hc_tx_fq) + RETURN_ERROR(MAJOR, E_NULL_POINTER, + ("Frame queue allocation failed...")); + + p_LnxWrpFmDev->hc_tx_conf_fq = + FqAlloc(p_LnxWrpFmDev, + 0, + QMAN_FQ_FLAG_NO_ENQUEUE, + p_LnxWrpFmDev->hcCh, 7); + if (!p_LnxWrpFmDev->hc_tx_conf_fq) + RETURN_ERROR(MAJOR, E_NULL_POINTER, + ("Frame queue allocation failed...")); + + p_LnxWrpFmDev->hc_tx_err_fq = + FqAlloc(p_LnxWrpFmDev, + 0, + QMAN_FQ_FLAG_NO_ENQUEUE, + p_LnxWrpFmDev->hcCh, 7); + if (!p_LnxWrpFmDev->hc_tx_err_fq) + RETURN_ERROR(MAJOR, E_NULL_POINTER, + ("Frame queue allocation failed...")); + + fmPcdParams.hc.portBaseAddr = p_LnxWrpFmPortDev->baseAddr; + fmPcdParams.hc.portId = + p_LnxWrpFmPortDev->settings.param.portId; + fmPcdParams.hc.liodnBase = + p_LnxWrpFmPortDev->settings.param.liodnBase; + fmPcdParams.hc.errFqid = + qman_fq_fqid(p_LnxWrpFmDev->hc_tx_err_fq); + fmPcdParams.hc.confFqid = + qman_fq_fqid(p_LnxWrpFmDev->hc_tx_conf_fq); + fmPcdParams.hc.qmChannel = p_LnxWrpFmPortDev->txCh; + fmPcdParams.hc.f_QmEnqueue = QmEnqueueCB; + fmPcdParams.hc.h_QmArg = (t_Handle) p_LnxWrpFmDev; + + p_LnxWrpFmDev->h_PcdDev = FM_PCD_Config(&fmPcdParams); + if (!p_LnxWrpFmDev->h_PcdDev) + RETURN_ERROR(MAJOR, E_INVALID_HANDLE, ("FM PCD!")); + + err = + FM_PCD_ConfigPlcrNumOfSharedProfiles(p_LnxWrpFmDev->h_PcdDev, + LNXWRP_FM_NUM_OF_SHARED_PROFILES); + if (err != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + + err = FM_PCD_Init(p_LnxWrpFmDev->h_PcdDev); + if (err != E_OK) + RETURN_ERROR(MAJOR, err, NO_MSG); + + if (p_LnxWrpFmDev->err_irq == 0) { + FM_PCD_SetException(p_LnxWrpFmDev->h_PcdDev, + e_FM_PCD_KG_EXCEPTION_DOUBLE_ECC, + FALSE); + FM_PCD_SetException(p_LnxWrpFmDev->h_PcdDev, + e_FM_PCD_KG_EXCEPTION_KEYSIZE_OVERFLOW, + FALSE); + FM_PCD_SetException(p_LnxWrpFmDev->h_PcdDev, + e_FM_PCD_PLCR_EXCEPTION_INIT_ENTRY_ERROR, + FALSE); + FM_PCD_SetException(p_LnxWrpFmDev->h_PcdDev, + e_FM_PCD_PLCR_EXCEPTION_DOUBLE_ECC, + FALSE); + FM_PCD_SetException(p_LnxWrpFmDev->h_PcdDev, + e_FM_PCD_PRS_EXCEPTION_DOUBLE_ECC, + FALSE); + FM_PCD_SetException(p_LnxWrpFmDev->h_PcdDev, + e_FM_PCD_PLCR_EXCEPTION_PRAM_SELF_INIT_COMPLETE, + FALSE); + FM_PCD_SetException(p_LnxWrpFmDev->h_PcdDev, + e_FM_PCD_PLCR_EXCEPTION_ATOMIC_ACTION_COMPLETE, + FALSE); + FM_PCD_SetException(p_LnxWrpFmDev->h_PcdDev, + e_FM_PCD_PRS_EXCEPTION_SINGLE_ECC, + FALSE); + } + } + + return E_OK; +} + +void FreeFmPcdDev(t_LnxWrpFmDev *p_LnxWrpFmDev) +{ + + if (p_LnxWrpFmDev->h_PcdDev) + FM_PCD_Free(p_LnxWrpFmDev->h_PcdDev); + + if (p_LnxWrpFmDev->hc_tx_err_fq) + FqFree(p_LnxWrpFmDev->hc_tx_err_fq); + + if (p_LnxWrpFmDev->hc_tx_conf_fq) + FqFree(p_LnxWrpFmDev->hc_tx_conf_fq); + + if (p_LnxWrpFmDev->hc_tx_fq) + FqFree(p_LnxWrpFmDev->hc_tx_fq); +} + +static void FreeFmPortDev(t_LnxWrpFmPortDev *p_LnxWrpFmPortDev) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = + (t_LnxWrpFmDev *) p_LnxWrpFmPortDev->h_LnxWrpFmDev; + + if (!p_LnxWrpFmPortDev->active) + return; + + if (p_LnxWrpFmPortDev->h_Dev) + FM_PORT_Free(p_LnxWrpFmPortDev->h_Dev); + + devm_iounmap(p_LnxWrpFmDev->dev, + UINT_TO_PTR(p_LnxWrpFmPortDev->baseAddr)); + __devm_release_region(p_LnxWrpFmDev->dev, p_LnxWrpFmDev->res, + p_LnxWrpFmPortDev->phys_baseAddr, + p_LnxWrpFmPortDev->memSize); +} + +static int fm_port_probe(struct platform_device *of_dev) +{ + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev; + t_LnxWrpFmDev *p_LnxWrpFmDev; + struct device *dev; + + dev = &of_dev->dev; + + p_LnxWrpFmPortDev = ReadFmPortDevTreeNode(of_dev); + if (p_LnxWrpFmPortDev == NULL) + return -EIO; + /* Port can be inactive, thus will not be probed: + - in performance mode, OH ports are disabled + ... + */ + if (!p_LnxWrpFmPortDev->active) + return 0; + + if (ConfigureFmPortDev(p_LnxWrpFmPortDev) != E_OK) + return -EIO; + + dev_set_drvdata(dev, p_LnxWrpFmPortDev); + + if ((p_LnxWrpFmPortDev->settings.param.portType == + e_FM_PORT_TYPE_OH_HOST_COMMAND) + && + (InitFmPcdDev((t_LnxWrpFmDev *) p_LnxWrpFmPortDev->h_LnxWrpFmDev) + != E_OK)) + return -EIO; + + p_LnxWrpFmDev = (t_LnxWrpFmDev *) p_LnxWrpFmPortDev->h_LnxWrpFmDev; + + if (p_LnxWrpFmPortDev->settings.param.portType == e_FM_PORT_TYPE_RX) { + Sprint(p_LnxWrpFmPortDev->name, "%s-port-rx%d", + p_LnxWrpFmDev->name, p_LnxWrpFmPortDev->id); + p_LnxWrpFmPortDev->minor = + p_LnxWrpFmPortDev->id + DEV_FM_RX_PORTS_MINOR_BASE; + } else if (p_LnxWrpFmPortDev->settings.param.portType == + e_FM_PORT_TYPE_RX_10G) { + Sprint(p_LnxWrpFmPortDev->name, "%s-port-rx%d", + p_LnxWrpFmDev->name, + p_LnxWrpFmPortDev->id + FM_MAX_NUM_OF_1G_RX_PORTS); + p_LnxWrpFmPortDev->minor = + p_LnxWrpFmPortDev->id + FM_MAX_NUM_OF_1G_RX_PORTS + + DEV_FM_RX_PORTS_MINOR_BASE; + } else if (p_LnxWrpFmPortDev->settings.param.portType == + e_FM_PORT_TYPE_TX) { + Sprint(p_LnxWrpFmPortDev->name, "%s-port-tx%d", + p_LnxWrpFmDev->name, p_LnxWrpFmPortDev->id); + p_LnxWrpFmPortDev->minor = + p_LnxWrpFmPortDev->id + DEV_FM_TX_PORTS_MINOR_BASE; + } else if (p_LnxWrpFmPortDev->settings.param.portType == + e_FM_PORT_TYPE_TX_10G) { + Sprint(p_LnxWrpFmPortDev->name, "%s-port-tx%d", + p_LnxWrpFmDev->name, + p_LnxWrpFmPortDev->id + FM_MAX_NUM_OF_1G_TX_PORTS); + p_LnxWrpFmPortDev->minor = + p_LnxWrpFmPortDev->id + FM_MAX_NUM_OF_1G_TX_PORTS + + DEV_FM_TX_PORTS_MINOR_BASE; + } else if (p_LnxWrpFmPortDev->settings.param.portType == + e_FM_PORT_TYPE_OH_HOST_COMMAND) { + Sprint(p_LnxWrpFmPortDev->name, "%s-port-oh%d", + p_LnxWrpFmDev->name, p_LnxWrpFmPortDev->id); + p_LnxWrpFmPortDev->minor = + p_LnxWrpFmPortDev->id + DEV_FM_OH_PORTS_MINOR_BASE; + } else if (p_LnxWrpFmPortDev->settings.param.portType == + e_FM_PORT_TYPE_OH_OFFLINE_PARSING) { + Sprint(p_LnxWrpFmPortDev->name, "%s-port-oh%d", + p_LnxWrpFmDev->name, p_LnxWrpFmPortDev->id + 1); + p_LnxWrpFmPortDev->minor = + p_LnxWrpFmPortDev->id + 1 + + DEV_FM_OH_PORTS_MINOR_BASE; + } + + device_create(p_LnxWrpFmDev->fm_class, NULL, + MKDEV(p_LnxWrpFmDev->major, p_LnxWrpFmPortDev->minor), + NULL, p_LnxWrpFmPortDev->name); + + /* create sysfs entries for stats and regs */ + + if (fm_port_sysfs_create(dev) != 0) { + FreeFmPortDev(p_LnxWrpFmPortDev); + REPORT_ERROR(MAJOR, E_INVALID_STATE, + ("Unable to create sys entry - fm port!!!")); + return -EIO; + } + +#ifdef FM_TX_INVALID_ECC_ERRATA_10GMAC_A009 + FM_DisableRamsEcc(p_LnxWrpFmDev->h_Dev); +#endif /* FM_TX_INVALID_ECC_ERRATA_10GMAC_A009 */ + + DBG(TRACE, ("%s probed", p_LnxWrpFmPortDev->name)); + + return 0; +} + +static int fm_port_remove(struct platform_device *of_dev) +{ + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev; + t_LnxWrpFmDev *p_LnxWrpFmDev; + struct device *dev; + + dev = &of_dev->dev; + p_LnxWrpFmPortDev = dev_get_drvdata(dev); + + fm_port_sysfs_destroy(dev); + + p_LnxWrpFmDev = (t_LnxWrpFmDev *) p_LnxWrpFmPortDev->h_LnxWrpFmDev; + device_destroy(p_LnxWrpFmDev->fm_class, + MKDEV(p_LnxWrpFmDev->major, p_LnxWrpFmPortDev->minor)); + + FreeFmPortDev(p_LnxWrpFmPortDev); + + dev_set_drvdata(dev, NULL); + + return 0; +} + +static const struct of_device_id fm_port_match[] = { + { + .compatible = "fsl,fman-port-oh"}, + { + .compatible = "fsl,fman-port-1g-rx"}, + { + .compatible = "fsl,fman-port-10g-rx"}, + { + .compatible = "fsl,fman-port-1g-tx"}, + { + .compatible = "fsl,fman-port-10g-tx"}, + {} +}; + +#ifndef MODULE +MODULE_DEVICE_TABLE(of, fm_port_match); +#endif /* !MODULE */ + +static struct platform_driver fm_port_driver = { + + .driver = { + .name = "fsl-fman-port", + .of_match_table = fm_port_match, + .owner = THIS_MODULE, + }, + .probe = fm_port_probe, + .remove = fm_port_remove, +}; + + +t_Error LNXWRP_FM_Port_Init(void) +{ + /* Register to the DTB for basic FM port API */ + if (platform_driver_register(&fm_port_driver)) + return E_NO_DEVICE; + + return E_OK; +} + +void LNXWRP_FM_Port_Free(void) +{ + platform_driver_unregister(&fm_port_driver); +} + +static int __init __cold fm_port_load(void) +{ + if (LNXWRP_FM_Port_Init() != E_OK) { + printk(KERN_CRIT "Failed to init FM Ports wrapper!\n"); + return -ENODEV; + } + + printk(KERN_INFO "Freescale FM Ports module (" __DATE__ ":" __TIME__ ")\n"); + + return 0; +} + +static void __exit __cold fm_port_unload(void) +{ + LNXWRP_FM_Port_Free(); +} + +module_init(fm_port_load); +module_exit(fm_port_unload); --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_ioctls_fm.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_ioctls_fm.c @@ -0,0 +1,2648 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + + @File lnxwrp_ioctls_fm.c + + @Author Shlomi Gridish + + @Description FM Linux wrapper functions. + +*/ + +/* Linux Headers ------------------- */ +#include + +#if defined(CONFIG_MODVERSIONS) && !defined(MODVERSIONS) +#define MODVERSIONS +#endif +#ifdef MODVERSIONS +#include +#endif /* MODVERSIONS */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if defined(CONFIG_COMPAT) +#include +#endif + +#include "part_ext.h" +#include "fm_ioctls.h" +#include "fm_pcd_ioctls.h" +#include "fm_port_ioctls.h" + +#if defined(CONFIG_COMPAT) +#include "lnxwrp_ioctls_fm_compat.h" +#endif + +#include "lnxwrp_fm.h" + +#define CMP_IOC_DEFINE(def) (IOC_##def != def) + +/* fm_pcd_ioctls.h === fm_pcd_ext.h assertions */ +#if CMP_IOC_DEFINE(FM_PCD_MAX_NUM_OF_PRIVATE_HDRS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(FM_PCD_PRS_NUM_OF_HDRS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(FM_PCD_KG_NUM_OF_SCHEMES) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS) +#error Error: please synchronize IOC_ defines! +#endif + +/* please check for this one in fm_common.h: */ +#define FM_PCD_MAX_NUM_OF_OPTIONS(clsPlanEntries) ((clsPlanEntries==256)? 8:((clsPlanEntries==128)? 7: ((clsPlanEntries==64)? 6: ((clsPlanEntries==32)? 5:0)))) +#if (IOC_FM_PCD_MAX_NUM_OF_OPTIONS != FM_PCD_MAX_NUM_OF_OPTIONS(FM_PCD_MAX_NUM_OF_CLS_PLANS)) +#error Error: please synchronize IOC_ defines! +#endif +#undef FM_PCD_MAX_NUM_OF_OPTIONS + +#if CMP_IOC_DEFINE(FM_PCD_MAX_NUM_OF_INTERCHANGEABLE_HDRS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(FM_PCD_KG_NUM_OF_GENERIC_REGS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(FM_PCD_KG_MAX_NUM_OF_EXTRACTS_PER_KEY) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(FM_PCD_MAX_NUM_OF_CLS_PLANS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(FM_PCD_KG_NUM_OF_EXTRACT_MASKS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(FM_PCD_KG_NUM_OF_DEFAULT_GROUPS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(FM_PCD_PRS_NUM_OF_LABELS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(FM_PCD_MAX_NUM_OF_CC_NODES) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(FM_PCD_MAX_NUM_OF_CC_TREES) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(FM_PCD_MAX_NUM_OF_CC_GROUPS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(FM_PCD_MAX_NUM_OF_CC_UNITS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(FM_PCD_MAX_NUM_OF_KEYS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(FM_PCD_MAX_SIZE_OF_KEY) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(FM_PCD_MAX_NUM_OF_CC_ENTRIES_IN_GRP) +#error Error: please synchronize IOC_ defines! +#endif + +/* net_ioctls.h === net_ext.h assertions */ +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_PPP_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_PPPoE_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_PPPMUX_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_PPPMUX_SUBFRAME_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_ETH_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_IPv4_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_IPv6_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_ICMP_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_IGMP_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_TCP_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_SCTP_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_DCCP_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_UDP_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_UDP_ENCAP_ESP_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_IPHC_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_SCTP_CHUNK_DATA_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_L2TPv2_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_L2TPv3_CTRL_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_L2TPv3_SESS_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_VLAN_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_LLC_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_NLPID_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_SNAP_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_LLC_SNAP_ALL_FIELDS) +#warning Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_ARP_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_RFC2684_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_USER_DEFINED_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_PAYLOAD_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_GRE_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_MINENCAP_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_IPSEC_AH_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_IPSEC_ESP_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_MPLS_LABEL_STACK_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +#if CMP_IOC_DEFINE(NET_HEADER_FIELD_MACSEC_ALL_FIELDS) +#error Error: please synchronize IOC_ defines! +#endif + +/* fm_ioctls.h === fm_ext.h assertions */ +#if CMP_IOC_DEFINE(FM_MAX_NUM_OF_VALID_PORTS) +#error Error: please synchronize IOC_ defines! +#endif + +/* fm_port_ioctls.h === dpaa_integrations_ext.h assertions */ +#if CMP_IOC_DEFINE(FM_PORT_NUM_OF_CONGESTION_GRPS) +#error Error: please synchronize IOC_ defines! +#endif + +#define ASSERT_IOC_NET_ENUM(def) ASSERT_COND((unsigned long)e_IOC_NET_##def == (unsigned long)def) + +static void LnxwrpAssertions(void) +{ + /* sampling checks */ + ASSERT_IOC_NET_ENUM(HEADER_TYPE_MACSEC); + ASSERT_IOC_NET_ENUM(HEADER_TYPE_PPP); + ASSERT_IOC_NET_ENUM(MAX_HEADER_TYPE_COUNT); + ASSERT_COND((unsigned long)e_IOC_FM_PORT_TYPE_DUMMY == (unsigned long)e_FM_PORT_TYPE_DUMMY); + ASSERT_COND((unsigned long)e_IOC_FM_EX_MURAM_ECC == (unsigned long)e_FM_EX_MURAM_ECC); + ASSERT_COND((unsigned long)e_IOC_FM_COUNTERS_SEMAPHOR_SYNC_REJECT == (unsigned long)e_FM_COUNTERS_SEMAPHOR_SYNC_REJECT); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_PRS_COUNTERS_FPM_COMMAND_STALL_CYCLES == (unsigned long)e_FM_PCD_PRS_COUNTERS_FPM_COMMAND_STALL_CYCLES); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_PRS_EXCEPTION_SINGLE_ECC == (unsigned long)e_FM_PCD_PRS_EXCEPTION_SINGLE_ECC); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_PRS == (unsigned long)e_FM_PCD_PRS); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_EXTRACT_FULL_FIELD == (unsigned long)e_FM_PCD_EXTRACT_FULL_FIELD); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_EXTRACT_FROM_FLOW_ID == (unsigned long)e_FM_PCD_EXTRACT_FROM_FLOW_ID); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_KG_EXTRACT_PORT_PRIVATE_INFO == (unsigned long)e_FM_PCD_KG_EXTRACT_PORT_PRIVATE_INFO); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_KG_DFLT_ILLEGAL == (unsigned long)e_FM_PCD_KG_DFLT_ILLEGAL); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_KG_GENERIC_NOT_FROM_DATA == (unsigned long)e_FM_PCD_KG_GENERIC_NOT_FROM_DATA); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_HDR_INDEX_3 == (unsigned long)e_FM_PCD_HDR_INDEX_3); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_PLCR_SHARED == (unsigned long)e_FM_PCD_PLCR_SHARED); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_PLCR_RFC_4115 == (unsigned long)e_FM_PCD_PLCR_RFC_4115); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_PLCR_COLOR_AWARE == (unsigned long)e_FM_PCD_PLCR_COLOR_AWARE); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_PLCR_OVERRIDE == (unsigned long)e_FM_PCD_PLCR_OVERRIDE); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_PLCR_FULL_FRM_LEN == (unsigned long)e_FM_PCD_PLCR_FULL_FRM_LEN); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_PLCR_ROLLBACK_FULL_FRM_LEN == (unsigned long)e_FM_PCD_PLCR_ROLLBACK_FULL_FRM_LEN); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_PLCR_PACKET_MODE == (unsigned long)e_FM_PCD_PLCR_PACKET_MODE); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_DROP_FRAME == (unsigned long)e_FM_PCD_DROP_FRAME); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_PLCR_PROFILE_RECOLOURED_RED_PACKET_TOTAL_COUNTER == (unsigned long)e_FM_PCD_PLCR_PROFILE_RECOLOURED_RED_PACKET_TOTAL_COUNTER); + ASSERT_COND((unsigned long)e_IOC_FM_PCD_ACTION_INDEXED_LOOKUP == (unsigned long)e_FM_PCD_ACTION_INDEXED_LOOKUP); + ASSERT_COND((unsigned long)e_IOC_FM_PORT_PCD_SUPPORT_PRS_AND_KG_AND_PLCR == (unsigned long)e_FM_PORT_PCD_SUPPORT_PRS_AND_KG_AND_PLCR); +#ifdef FM_CAPWAP_SUPPORT + ASSERT_COND((unsigned long)e_IOC_FM_PORT_PCD_SUPPORT_CC_AND_KG_AND_PLCR == (unsigned long)e_FM_PORT_PCD_SUPPORT_CC_AND_KG_AND_PLCR); +#endif + ASSERT_COND((unsigned long)e_IOC_FM_PORT_COUNTERS_DEQ_CONFIRM == (unsigned long)e_FM_PORT_COUNTERS_DEQ_CONFIRM); + ASSERT_COND((unsigned long)e_IOC_FM_PORT_DUAL_RATE_LIMITER_SCALE_DOWN_BY_8 == (unsigned long)e_FM_PORT_DUAL_RATE_LIMITER_SCALE_DOWN_BY_8); +} + +static t_Error LnxwrpFmPcdIOCTL(t_LnxWrpFmDev *p_LnxWrpFmDev, unsigned int cmd, unsigned long arg, bool compat) +{ + t_Error err = E_READ_FAILED; + + /* can be moved from here */ + LnxwrpAssertions(); + + switch (cmd) + { +#if defined(CONFIG_COMPAT) + case FM_PCD_IOC_PRS_LOAD_SW_COMPAT: +#endif + case FM_PCD_IOC_PRS_LOAD_SW: + { + ioc_fm_pcd_prs_sw_params_t *param; + uint8_t *p_code; + + ASSERT_COND(sizeof(ioc_fm_pcd_prs_sw_params_t) == sizeof(t_FmPcdPrsSwParams)); + + param = (ioc_fm_pcd_prs_sw_params_t *) XX_Malloc(sizeof(ioc_fm_pcd_prs_sw_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_prs_sw_params_t *compat_param; + + compat_param = (ioc_compat_fm_pcd_prs_sw_params_t *) XX_Malloc( + sizeof(ioc_compat_fm_pcd_prs_sw_params_t)); + if (!compat_param) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + + if (copy_from_user(compat_param, + (ioc_compat_fm_pcd_prs_sw_params_t *) compat_ptr(arg), + sizeof(ioc_compat_fm_pcd_prs_sw_params_t))) + { + XX_Free(compat_param); + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + compat_fm_pcd_prs_sw(compat_param, param, COMPAT_US_TO_K); + + XX_Free(compat_param); + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_prs_sw_params_t *)arg, + sizeof(ioc_fm_pcd_prs_sw_params_t))) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + } + + p_code = (uint8_t *) XX_Malloc(param->size); + if (!p_code) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + if (copy_from_user(p_code, param->p_code, param->size)) { + XX_Free(p_code); + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + param->p_code = p_code; + + err = FM_PCD_PrsLoadSw(p_LnxWrpFmDev->h_PcdDev, (t_FmPcdPrsSwParams*)param); + XX_Free(p_code); + XX_Free(param); + break; + } + + case FM_PCD_IOC_ENABLE: + return FM_PCD_Enable(p_LnxWrpFmDev->h_PcdDev); + + case FM_PCD_IOC_DISABLE: + return FM_PCD_Disable(p_LnxWrpFmDev->h_PcdDev); + + case FM_PCD_IOC_FORCE_INTR: + { + int exception; + +#if defined(CONFIG_COMPAT) + if (compat) + { + if (get_user(exception, (int *) compat_ptr(arg))) + break; + } + else +#endif + { + if (get_user(exception, (int *)arg)) + break; + } + + return FM_PCD_ForceIntr(p_LnxWrpFmDev->h_PcdDev, (e_FmPcdExceptions)exception); + } + + case FM_PCD_IOC_SET_EXCEPTION: + { + ioc_fm_pcd_exception_params_t *param; + + param = (ioc_fm_pcd_exception_params_t *) XX_Malloc( + sizeof(ioc_fm_pcd_exception_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + if (copy_from_user(param, (ioc_fm_pcd_exception_params_t *)compat_ptr(arg), + sizeof(ioc_fm_pcd_exception_params_t))) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_exception_params_t *)arg, + sizeof(ioc_fm_pcd_exception_params_t))) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + } + + err = FM_PCD_SetException(p_LnxWrpFmDev->h_PcdDev, param->exception, param->enable); + XX_Free(param); + break; + } + + case FM_PCD_IOC_KG_SET_ADDITIONAL_DATA_AFTER_PARSING: + { + uint8_t payloadOffset; + +#if defined(CONFIG_COMPAT) + if (compat) + { + if (get_user(payloadOffset, (uint8_t*) compat_ptr(arg))) + break; + } + else +#endif + { + if (get_user(payloadOffset, (uint8_t*) arg)) + break; + } + + return FM_PCD_KgSetAdditionalDataAfterParsing(p_LnxWrpFmDev->h_PcdDev, payloadOffset); + } + + case FM_PCD_IOC_KG_SET_DFLT_VALUE: + { + ioc_fm_pcd_kg_dflt_value_params_t *param; + + param = (ioc_fm_pcd_kg_dflt_value_params_t *) XX_Malloc( + sizeof(ioc_fm_pcd_kg_dflt_value_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + if (copy_from_user(param, (ioc_fm_pcd_kg_dflt_value_params_t *)compat_ptr(arg), + sizeof(ioc_fm_pcd_kg_dflt_value_params_t))) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_kg_dflt_value_params_t *)arg, + sizeof(ioc_fm_pcd_kg_dflt_value_params_t))) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + } + + err = FM_PCD_KgSetDfltValue(p_LnxWrpFmDev->h_PcdDev, param->valueId, param->value); + XX_Free(param); + break; + } + +#if defined(CONFIG_COMPAT) + case FM_PCD_IOC_SET_NET_ENV_CHARACTERISTICS_COMPAT: +#endif + case FM_PCD_IOC_SET_NET_ENV_CHARACTERISTICS: + { + ioc_fm_pcd_net_env_params_t *param; + + param = (ioc_fm_pcd_net_env_params_t *) XX_Malloc(sizeof(ioc_fm_pcd_net_env_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_net_env_params_t *compat_param; + + compat_param = (ioc_compat_fm_pcd_net_env_params_t *) XX_Malloc( + sizeof(ioc_compat_fm_pcd_net_env_params_t)); + if (!compat_param) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + + if (copy_from_user(compat_param, (ioc_compat_fm_pcd_net_env_params_t *) compat_ptr(arg), + sizeof(ioc_compat_fm_pcd_net_env_params_t))) + { + XX_Free(compat_param); + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + compat_copy_fm_pcd_net_env(compat_param, param, COMPAT_US_TO_K); + XX_Free(compat_param); + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_net_env_params_t *) arg, + sizeof(ioc_fm_pcd_net_env_params_t))) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + } + + param->id = FM_PCD_SetNetEnvCharacteristics(p_LnxWrpFmDev->h_PcdDev, (t_FmPcdNetEnvParams*)param); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_net_env_params_t *compat_param; + + compat_param = (ioc_compat_fm_pcd_net_env_params_t *) XX_Malloc( + sizeof(ioc_compat_fm_pcd_net_env_params_t)); + if (!compat_param) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + + compat_copy_fm_pcd_net_env(compat_param, param, COMPAT_K_TO_US); + + if (param->id && !copy_to_user((ioc_compat_fm_pcd_net_env_params_t *) compat_ptr(arg), + compat_param, + sizeof(ioc_compat_fm_pcd_net_env_params_t))) + err = E_OK; + + XX_Free(compat_param); + } + else +#endif + { + if (param->id && !copy_to_user((ioc_fm_pcd_net_env_params_t *)arg, param, sizeof(ioc_fm_pcd_net_env_params_t))) + err = E_OK; + } + + XX_Free(param); + break; + } + +#if defined(CONFIG_COMPAT) + case FM_PCD_IOC_DELETE_NET_ENV_CHARACTERISTICS_COMPAT: +#endif + case FM_PCD_IOC_DELETE_NET_ENV_CHARACTERISTICS: + { + ioc_fm_obj_t id; + + memset(&id, 0 , sizeof(ioc_fm_obj_t)); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_obj_t compat_id; + + if (copy_from_user(&compat_id, (ioc_compat_fm_obj_t *) compat_ptr(arg), sizeof(ioc_compat_fm_obj_t))) + break; + + id.obj = compat_ptr(compat_id.obj); + } + else +#endif + { + if (copy_from_user(&id, (ioc_fm_obj_t *) arg, sizeof(ioc_fm_obj_t))) + break; + } + + return FM_PCD_DeleteNetEnvCharacteristics(p_LnxWrpFmDev->h_PcdDev, id.obj); + } + +#if defined(CONFIG_COMPAT) + case FM_PCD_IOC_KG_SET_SCHEME_COMPAT: +#endif + case FM_PCD_IOC_KG_SET_SCHEME: + { + ioc_fm_pcd_kg_scheme_params_t *param; + + ASSERT_COND(sizeof(t_FmPcdKgSchemeParams) + sizeof(void *) == sizeof(ioc_fm_pcd_kg_scheme_params_t)); + param = (ioc_fm_pcd_kg_scheme_params_t *) XX_Malloc(sizeof(ioc_fm_pcd_kg_scheme_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_kg_scheme_params_t *compat_param = NULL; + + compat_param = (ioc_compat_fm_pcd_kg_scheme_params_t *) XX_Malloc( + sizeof(ioc_compat_fm_pcd_kg_scheme_params_t)); + if (!compat_param) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + + if (copy_from_user(compat_param, (ioc_compat_fm_pcd_kg_scheme_params_t *) compat_ptr(arg), + sizeof(ioc_compat_fm_pcd_kg_scheme_params_t))) + { + XX_Free(compat_param); + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + compat_copy_fm_pcd_kg_scheme(compat_param, param, COMPAT_US_TO_K); + + XX_Free(compat_param); + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_kg_scheme_params_t *)arg, + sizeof(ioc_fm_pcd_kg_scheme_params_t))) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + } + + param->id = FM_PCD_KgSetScheme(p_LnxWrpFmDev->h_PcdDev, (t_FmPcdKgSchemeParams*)param); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_kg_scheme_params_t *compat_param = NULL; + + compat_param = (ioc_compat_fm_pcd_kg_scheme_params_t *) XX_Malloc( + sizeof(ioc_compat_fm_pcd_kg_scheme_params_t)); + if (!compat_param) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + + compat_copy_fm_pcd_kg_scheme(compat_param, param, COMPAT_K_TO_US); + + if (param->id && !copy_to_user((ioc_compat_fm_pcd_kg_scheme_params_t *)compat_ptr(arg), + compat_param, + sizeof(ioc_compat_fm_pcd_kg_scheme_params_t))) + err = E_OK; + XX_Free(compat_param); + } + else +#endif + { + if (param->id && !copy_to_user((ioc_fm_pcd_kg_scheme_params_t *)arg, + param, + sizeof(ioc_fm_pcd_kg_scheme_params_t))) + err = E_OK; + } + + XX_Free(param); + break; + } + +#if defined(CONFIG_COMPAT) + case FM_PCD_IOC_KG_DEL_SCHEME_COMPAT: +#endif + case FM_PCD_IOC_KG_DEL_SCHEME: + { + ioc_fm_obj_t id; + + memset(&id, 0 , sizeof(ioc_fm_obj_t)); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_obj_t compat_id; + + if (copy_from_user(&compat_id, (ioc_compat_fm_obj_t *) compat_ptr(arg), sizeof(ioc_compat_fm_obj_t))) + break; + + id.obj = compat_ptr(compat_id.obj); + } + else +#endif + { + if (copy_from_user(&id, (ioc_fm_obj_t *) arg, sizeof(ioc_fm_obj_t))) + break; + } + + return FM_PCD_KgDeleteScheme(p_LnxWrpFmDev->h_PcdDev, id.obj); + } + +#if defined(CONFIG_COMPAT) + case FM_PCD_IOC_CC_SET_NODE_COMPAT: +#endif + case FM_PCD_IOC_CC_SET_NODE: + { + ioc_fm_pcd_cc_node_params_t *param; + uint8_t *keys; + uint8_t *masks; + int i,k; + + ASSERT_COND(sizeof(t_FmPcdCcNodeParams) + sizeof(void *) == sizeof(ioc_fm_pcd_cc_node_params_t)); + + param = (ioc_fm_pcd_cc_node_params_t *) XX_Malloc( + sizeof(ioc_fm_pcd_cc_node_params_t) + + 2 * IOC_FM_PCD_MAX_NUM_OF_KEYS * IOC_FM_PCD_MAX_SIZE_OF_KEY); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + + memset(param, 0, sizeof(ioc_fm_pcd_cc_node_params_t) + + 2 * IOC_FM_PCD_MAX_NUM_OF_KEYS * IOC_FM_PCD_MAX_SIZE_OF_KEY); + + keys = (uint8_t *) (param + 1); + masks = keys + IOC_FM_PCD_MAX_NUM_OF_KEYS * IOC_FM_PCD_MAX_SIZE_OF_KEY; + memset(keys, 0, 2 * IOC_FM_PCD_MAX_NUM_OF_KEYS * IOC_FM_PCD_MAX_SIZE_OF_KEY); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_cc_node_params_t *compat_param; + + compat_param = (ioc_compat_fm_pcd_cc_node_params_t *) XX_Malloc( + sizeof(ioc_compat_fm_pcd_cc_node_params_t) + + 2 * IOC_FM_PCD_MAX_NUM_OF_KEYS * IOC_FM_PCD_MAX_SIZE_OF_KEY); + if (!compat_param) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + + memset(compat_param, 0, sizeof(ioc_compat_fm_pcd_cc_node_params_t) + + 2 * IOC_FM_PCD_MAX_NUM_OF_KEYS * IOC_FM_PCD_MAX_SIZE_OF_KEY); + + if (copy_from_user(compat_param, + (ioc_compat_fm_pcd_cc_node_params_t *)compat_ptr(arg), + sizeof(ioc_compat_fm_pcd_cc_node_params_t))) + { + XX_Free(compat_param); + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + compat_copy_fm_pcd_cc_node(compat_param, param, COMPAT_US_TO_K); + + XX_Free(compat_param); + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_cc_node_params_t *)arg, sizeof(ioc_fm_pcd_cc_node_params_t))) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + } + ASSERT_COND(param->keys_params.num_of_keys <= IOC_FM_PCD_MAX_NUM_OF_KEYS); + ASSERT_COND(param->keys_params.key_size <= IOC_FM_PCD_MAX_SIZE_OF_KEY); + + /* support for indexed lookup */ + if( !(param->extract_cc_params.type == e_IOC_FM_PCD_EXTRACT_NON_HDR && + param->extract_cc_params.extract_params.extract_non_hdr.src == e_IOC_FM_PCD_EXTRACT_FROM_HASH && + param->extract_cc_params.extract_params.extract_non_hdr.action == e_IOC_FM_PCD_ACTION_INDEXED_LOOKUP)) + { + for (i=0, k=0; + i < param->keys_params.num_of_keys; + i++, k += IOC_FM_PCD_MAX_SIZE_OF_KEY) + { + if (copy_from_user(&keys[k], + param->keys_params.key_params[i].p_key, + param->keys_params.key_size)) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + param->keys_params.key_params[i].p_key = &keys[k]; + + if (param->keys_params.key_params[i].p_mask) + { + if (copy_from_user(&masks[k], + param->keys_params.key_params[i].p_mask, + param->keys_params.key_size)) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + param->keys_params.key_params[i].p_mask = &masks[k]; + } + } + } + + param->id = FM_PCD_CcSetNode(p_LnxWrpFmDev->h_PcdDev, (t_FmPcdCcNodeParams*)param); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_cc_node_params_t *compat_param; + compat_param = (ioc_compat_fm_pcd_cc_node_params_t *) XX_Malloc( + sizeof(ioc_compat_fm_pcd_cc_node_params_t) + + 2 * IOC_FM_PCD_MAX_NUM_OF_KEYS * IOC_FM_PCD_MAX_SIZE_OF_KEY); + if (!compat_param) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + + memset(compat_param, 0, sizeof(ioc_compat_fm_pcd_cc_node_params_t) + + 2 * IOC_FM_PCD_MAX_NUM_OF_KEYS * IOC_FM_PCD_MAX_SIZE_OF_KEY); + + /* setup user space structure */ + compat_copy_fm_pcd_cc_node(compat_param, param, COMPAT_K_TO_US); + + compat_param->id = compat_add_ptr2id(param->id); + + if (param->id && !copy_to_user((ioc_compat_fm_pcd_cc_node_params_t *)compat_ptr(arg), + compat_param, + sizeof(ioc_compat_fm_pcd_cc_node_params_t))) + err = E_OK; + + XX_Free(compat_param); + } + else +#endif + { + if (param->id && !copy_to_user((ioc_fm_pcd_cc_node_params_t *)arg, param, sizeof(ioc_fm_pcd_cc_node_params_t))) + err = E_OK; + } + + XX_Free(param); + break; + } + +#if defined(CONFIG_COMPAT) + case FM_PCD_IOC_CC_DELETE_NODE_COMPAT: +#endif + case FM_PCD_IOC_CC_DELETE_NODE: + { + ioc_fm_obj_t id; + + memset(&id, 0 , sizeof(ioc_fm_obj_t)); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_obj_t compat_id; + + if (copy_from_user(&compat_id, (ioc_compat_fm_obj_t *) compat_ptr(arg), sizeof(ioc_compat_fm_obj_t))) + break; + + id.obj = compat_get_id2ptr(compat_id.obj); + compat_del_ptr2id(id.obj); + } + else +#endif + { + if (copy_from_user(&id, (ioc_fm_obj_t *) arg, sizeof(ioc_fm_obj_t))) + break; + } + + return FM_PCD_CcDeleteNode(p_LnxWrpFmDev->h_PcdDev, id.obj); + } + +#if defined(CONFIG_COMPAT) + case FM_PCD_IOC_CC_BUILD_TREE_COMPAT: +#endif + case FM_PCD_IOC_CC_BUILD_TREE: + { + ioc_fm_pcd_cc_tree_params_t *param; + + ASSERT_COND(sizeof(t_FmPcdCcTreeParams) + sizeof(void *) == sizeof(ioc_fm_pcd_cc_tree_params_t)); + + param = (ioc_fm_pcd_cc_tree_params_t *) XX_Malloc(sizeof(ioc_fm_pcd_cc_tree_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + + memset(param, 0, sizeof(ioc_fm_pcd_cc_tree_params_t)); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_cc_tree_params_t *compat_param; + + compat_param = (ioc_compat_fm_pcd_cc_tree_params_t *) XX_Malloc( + sizeof(ioc_compat_fm_pcd_cc_tree_params_t)); + if (!compat_param) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + memset(compat_param, 0, sizeof(ioc_compat_fm_pcd_cc_tree_params_t)); + + if (copy_from_user(compat_param, + (ioc_compat_fm_pcd_cc_tree_params_t *)compat_ptr(arg), + sizeof(ioc_compat_fm_pcd_cc_tree_params_t))) + { + XX_Free(compat_param); + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + compat_copy_fm_pcd_cc_tree(compat_param, param, COMPAT_US_TO_K); + + XX_Free(compat_param); + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_cc_tree_params_t *)arg, + sizeof(ioc_fm_pcd_cc_tree_params_t))) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + } + + param->id = FM_PCD_CcBuildTree(p_LnxWrpFmDev->h_PcdDev, (t_FmPcdCcTreeParams*)param); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_cc_tree_params_t *compat_param; + + compat_param = (ioc_compat_fm_pcd_cc_tree_params_t *) XX_Malloc(sizeof(ioc_compat_fm_pcd_cc_tree_params_t)); + if (!compat_param) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + + memset(compat_param, 0, sizeof(ioc_compat_fm_pcd_cc_tree_params_t)); + + compat_add_ptr2id(param->id); + param->id = (void *)(uint64_t)compat_get_ptr2id(param->id); + + compat_copy_fm_pcd_cc_tree(compat_param, param, COMPAT_K_TO_US); + + if (param->id && !copy_to_user((ioc_compat_fm_pcd_cc_tree_params_t *)compat_ptr(arg), + compat_param, + sizeof(ioc_compat_fm_pcd_cc_tree_params_t))) + err = E_OK; + + XX_Free(compat_param); + } + else +#endif + { + if (param->id && !copy_to_user((ioc_fm_pcd_cc_tree_params_t *)arg, param, sizeof(ioc_fm_pcd_cc_tree_params_t))) + err = E_OK; + } + + XX_Free(param); + break; + } + +#if defined(CONFIG_COMPAT) + case FM_PCD_IOC_CC_DELETE_TREE_COMPAT: +#endif + case FM_PCD_IOC_CC_DELETE_TREE: + { + ioc_fm_obj_t id; + + memset(&id, 0 , sizeof(ioc_fm_obj_t)); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_obj_t compat_id; + + if (copy_from_user(&compat_id, (ioc_compat_fm_obj_t *) compat_ptr(arg), sizeof(ioc_compat_fm_obj_t))) + break; + + id.obj = compat_get_id2ptr(compat_id.obj); + } + else +#endif + { + if (copy_from_user(&id, (ioc_fm_obj_t *) arg, sizeof(ioc_fm_obj_t))) + break; + } + + return FM_PCD_CcDeleteTree(p_LnxWrpFmDev->h_PcdDev, id.obj); + } + +#if defined(CONFIG_COMPAT) + case FM_PCD_IOC_PLCR_SET_PROFILE_COMPAT: +#endif + case FM_PCD_IOC_PLCR_SET_PROFILE: + { + ioc_fm_pcd_plcr_profile_params_t *param; + + ASSERT_COND(sizeof(t_FmPcdPlcrProfileParams) + sizeof(void *) == sizeof(ioc_fm_pcd_plcr_profile_params_t)); + + param = (ioc_fm_pcd_plcr_profile_params_t *) XX_Malloc( + sizeof(ioc_fm_pcd_plcr_profile_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_plcr_profile_params_t *compat_param; + + compat_param = (ioc_compat_fm_pcd_plcr_profile_params_t *) XX_Malloc( + sizeof(ioc_compat_fm_pcd_plcr_profile_params_t)); + if (!compat_param) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + + if (copy_from_user(compat_param, (ioc_compat_fm_pcd_plcr_profile_params_t *)compat_ptr(arg), + sizeof(ioc_compat_fm_pcd_plcr_profile_params_t))) { + XX_Free(compat_param); + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + compat_copy_fm_pcd_plcr_profile(compat_param, param, COMPAT_US_TO_K); + + XX_Free(compat_param); + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_plcr_profile_params_t *)arg, + sizeof(ioc_fm_pcd_plcr_profile_params_t))) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + } + + if (!param->modify && + (((t_FmPcdPlcrProfileParams*)param)->id.newParams.profileType != e_FM_PCD_PLCR_SHARED)) + { + t_Handle h_Port; + fm_pcd_port_params_t *port_params; + + port_params = (fm_pcd_port_params_t*) XX_Malloc(sizeof(fm_pcd_port_params_t)); + if (!port_params) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + + if (copy_from_user(port_params, (fm_pcd_port_params_t*)((t_FmPcdPlcrProfileParams*)param)->id.newParams.h_FmPort, + sizeof(fm_pcd_port_params_t))) + { + XX_Free(port_params); + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + switch(port_params->port_type) + { + case (e_IOC_FM_PORT_TYPE_RX): + h_Port = p_LnxWrpFmDev->rxPorts[port_params->port_id].h_Dev; + break; + case (e_IOC_FM_PORT_TYPE_RX_10G): + h_Port = p_LnxWrpFmDev->rxPorts[port_params->port_id + FM_MAX_NUM_OF_1G_RX_PORTS].h_Dev; + break; + case (e_IOC_FM_PORT_TYPE_OFFLINE_PARSING): + if (port_params->port_id) + { + h_Port = p_LnxWrpFmDev->opPorts[port_params->port_id - 1].h_Dev; + break; + } + default: + XX_Free(port_params); + XX_Free(param); + RETURN_ERROR(MINOR, E_INVALID_SELECTION, NO_MSG); + } + + ((t_FmPcdPlcrProfileParams*)param)->id.newParams.h_FmPort = h_Port; + XX_Free(port_params); + } + + param->id = FM_PCD_PlcrSetProfile(p_LnxWrpFmDev->h_PcdDev, (t_FmPcdPlcrProfileParams*)param); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_plcr_profile_params_t *compat_param; + + compat_param = (ioc_compat_fm_pcd_plcr_profile_params_t *) XX_Malloc( + sizeof(ioc_compat_fm_pcd_plcr_profile_params_t)); + if (!compat_param) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + + compat_copy_fm_pcd_plcr_profile(compat_param, param, COMPAT_K_TO_US); + + if (param->id && !copy_to_user((ioc_compat_fm_pcd_plcr_profile_params_t *) compat_ptr(arg), + compat_param, + sizeof(ioc_compat_fm_pcd_plcr_profile_params_t))) + err = E_OK; + + XX_Free(compat_param); + } + else +#endif + { + if (param->id && !copy_to_user((ioc_fm_pcd_plcr_profile_params_t *)arg, param, sizeof(ioc_fm_pcd_plcr_profile_params_t))) + err = E_OK; + } + + XX_Free(param); + break; + } + +#if defined(CONFIG_COMPAT) + case FM_PCD_IOC_PLCR_DEL_PROFILE_COMPAT: +#endif + case FM_PCD_IOC_PLCR_DEL_PROFILE: + { + ioc_fm_obj_t id; + + memset(&id, 0 , sizeof(ioc_fm_obj_t)); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_obj_t compat_id; + + if (copy_from_user(&compat_id, (ioc_compat_fm_obj_t *) compat_ptr(arg), sizeof(ioc_compat_fm_obj_t))) + break; + + id.obj = compat_ptr(compat_id.obj); + } + else +#endif + { + if (copy_from_user(&id, (ioc_fm_obj_t *) arg, sizeof(ioc_fm_obj_t))) + break; + } + + return FM_PCD_PlcrDeleteProfile(p_LnxWrpFmDev->h_PcdDev, id.obj); + } + +#if defined(CONFIG_COMPAT) + case FM_PCD_IOC_CC_TREE_MODIFY_NEXT_ENGINE_COMPAT: +#endif + case FM_PCD_IOC_CC_TREE_MODIFY_NEXT_ENGINE: + { + ioc_fm_pcd_cc_tree_modify_next_engine_params_t *param; + + ASSERT_COND(sizeof(ioc_fm_pcd_cc_next_engine_params_t) == sizeof(t_FmPcdCcNextEngineParams)); + + param = (ioc_fm_pcd_cc_tree_modify_next_engine_params_t *) XX_Malloc( + sizeof(ioc_fm_pcd_cc_tree_modify_next_engine_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_cc_tree_modify_next_engine_params_t *compat_param; + + compat_param = (ioc_compat_fm_pcd_cc_tree_modify_next_engine_params_t *) XX_Malloc( + sizeof(ioc_compat_fm_pcd_cc_tree_modify_next_engine_params_t)); + if (!compat_param) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + + if (copy_from_user(compat_param, (ioc_compat_fm_pcd_cc_tree_modify_next_engine_params_t *) compat_ptr(arg), + sizeof(ioc_compat_fm_pcd_cc_tree_modify_next_engine_params_t))) + { + XX_Free(param); + XX_Free(compat_param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + compat_fm_pcd_cc_tree_modify_next_engine(compat_param, param, COMPAT_US_TO_K); + + XX_Free(compat_param); + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_cc_tree_modify_next_engine_params_t *)arg, + sizeof(ioc_fm_pcd_cc_tree_modify_next_engine_params_t))) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + } + + err = FM_PCD_CcTreeModifyNextEngine(p_LnxWrpFmDev->h_PcdDev, + param->id, + param->grp_indx, + param->indx, + (t_FmPcdCcNextEngineParams*)(¶m->cc_next_engine_params)); + XX_Free(param); + break; + } + +#if defined(CONFIG_COMPAT) + case FM_PCD_IOC_CC_NODE_MODIFY_NEXT_ENGINE_COMPAT: +#endif + case FM_PCD_IOC_CC_NODE_MODIFY_NEXT_ENGINE: + { + ioc_fm_pcd_cc_node_modify_next_engine_params_t *param; + + ASSERT_COND(sizeof(ioc_fm_pcd_cc_next_engine_params_t) == sizeof(t_FmPcdCcNextEngineParams)); + + param = (ioc_fm_pcd_cc_node_modify_next_engine_params_t *) XX_Malloc( + sizeof(ioc_fm_pcd_cc_node_modify_next_engine_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_cc_node_modify_next_engine_params_t *compat_param; + + compat_param = (ioc_compat_fm_pcd_cc_node_modify_next_engine_params_t *) XX_Malloc( + sizeof(ioc_compat_fm_pcd_cc_node_modify_next_engine_params_t)); + if (!compat_param) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + + if (copy_from_user(compat_param, (ioc_compat_fm_pcd_cc_node_modify_next_engine_params_t *) compat_ptr(arg), + sizeof(ioc_compat_fm_pcd_cc_node_modify_next_engine_params_t))) + { + XX_Free(param); + XX_Free(compat_param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + compat_copy_fm_pcd_cc_node_modify_next_engine(compat_param, param, COMPAT_US_TO_K); + + XX_Free(compat_param); + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_cc_node_modify_next_engine_params_t *)arg, + sizeof(ioc_fm_pcd_cc_node_modify_next_engine_params_t))) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + } + + err = FM_PCD_CcNodeModifyNextEngine(p_LnxWrpFmDev->h_PcdDev, + param->id, + param->key_indx, + (t_FmPcdCcNextEngineParams*)(¶m->cc_next_engine_params)); + XX_Free(param); + break; + } + +#if defined(CONFIG_COMPAT) + case FM_PCD_IOC_CC_NODE_MODIFY_MISS_NEXT_ENGINE_COMPAT: +#endif + case FM_PCD_IOC_CC_NODE_MODIFY_MISS_NEXT_ENGINE: + { + ioc_fm_pcd_cc_node_modify_next_engine_params_t *param; + + ASSERT_COND(sizeof(ioc_fm_pcd_cc_next_engine_params_t) == sizeof(t_FmPcdCcNextEngineParams)); + + param = (ioc_fm_pcd_cc_node_modify_next_engine_params_t *) XX_Malloc( + sizeof(ioc_fm_pcd_cc_node_modify_next_engine_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_cc_node_modify_next_engine_params_t *compat_param; + + compat_param = (ioc_compat_fm_pcd_cc_node_modify_next_engine_params_t *) XX_Malloc( + sizeof(ioc_compat_fm_pcd_cc_node_modify_next_engine_params_t)); + if (!compat_param) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + + if (copy_from_user(compat_param, (ioc_compat_fm_pcd_cc_node_modify_next_engine_params_t *) compat_ptr(arg), + sizeof(ioc_compat_fm_pcd_cc_node_modify_next_engine_params_t))) + { + XX_Free(param); + XX_Free(compat_param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + compat_copy_fm_pcd_cc_node_modify_next_engine(compat_param, param, COMPAT_US_TO_K); + + XX_Free(compat_param); + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_cc_node_modify_next_engine_params_t *) arg, + sizeof(ioc_fm_pcd_cc_node_modify_next_engine_params_t))) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + } + + err = FM_PCD_CcNodeModifyMissNextEngine(p_LnxWrpFmDev->h_PcdDev, param->id, + (t_FmPcdCcNextEngineParams*)(¶m->cc_next_engine_params)); + XX_Free(param); + break; + } + +#if defined(CONFIG_COMPAT) + case FM_PCD_IOC_CC_NODE_REMOVE_KEY_COMPAT: +#endif + case FM_PCD_IOC_CC_NODE_REMOVE_KEY: + { + ioc_fm_pcd_cc_node_remove_key_params_t *param; + + param = (ioc_fm_pcd_cc_node_remove_key_params_t *) XX_Malloc( + sizeof(ioc_fm_pcd_cc_node_remove_key_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_cc_node_remove_key_params_t *compat_param; + + compat_param = (ioc_compat_fm_pcd_cc_node_remove_key_params_t *) XX_Malloc( + sizeof(ioc_compat_fm_pcd_cc_node_remove_key_params_t)); + if (!compat_param) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + + if (copy_from_user(compat_param, + (ioc_compat_fm_pcd_cc_node_remove_key_params_t *)compat_ptr(arg), + sizeof(ioc_compat_fm_pcd_cc_node_remove_key_params_t))) + { + XX_Free(param); + XX_Free(compat_param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + param->id = compat_ptr(compat_param->id); + param->key_indx = compat_param->key_indx; + + XX_Free(compat_param); + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_cc_node_remove_key_params_t *) arg, + sizeof(ioc_fm_pcd_cc_node_remove_key_params_t))) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + } + + err = FM_PCD_CcNodeRemoveKey(p_LnxWrpFmDev->h_PcdDev, param->id, param->key_indx); + XX_Free(param); + break; + } + +#if defined(CONFIG_COMPAT) + case FM_PCD_IOC_CC_NODE_ADD_KEY_COMPAT: +#endif + case FM_PCD_IOC_CC_NODE_ADD_KEY: + { + ioc_fm_pcd_cc_node_modify_key_and_next_engine_params_t *param; + + ASSERT_COND(sizeof(ioc_fm_pcd_cc_key_params_t) == sizeof(t_FmPcdCcKeyParams)); + + param = (ioc_fm_pcd_cc_node_modify_key_and_next_engine_params_t *) XX_Malloc( + sizeof(ioc_fm_pcd_cc_node_modify_key_and_next_engine_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_cc_node_modify_key_and_next_engine_params_t *compat_param; + + compat_param = (ioc_compat_fm_pcd_cc_node_modify_key_and_next_engine_params_t *) XX_Malloc( + sizeof(ioc_compat_fm_pcd_cc_node_modify_key_and_next_engine_params_t)); + if (!compat_param) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + + if (copy_from_user(compat_param, + (ioc_compat_fm_pcd_cc_node_modify_key_and_next_engine_params_t *)compat_ptr(arg), + sizeof(ioc_compat_fm_pcd_cc_node_modify_key_and_next_engine_params_t))) + { + XX_Free(param); + XX_Free(compat_param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + compat_copy_fm_pcd_cc_node_modify_key_and_next_engine(compat_param, param, COMPAT_US_TO_K); + + XX_Free(compat_param); + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_cc_node_modify_key_and_next_engine_params_t *)arg, + sizeof(ioc_fm_pcd_cc_node_modify_key_and_next_engine_params_t))) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + } + + err = FM_PCD_CcNodeAddKey(p_LnxWrpFmDev->h_PcdDev, + param->id, + param->key_indx, + param->key_size, + (t_FmPcdCcKeyParams*)(¶m->key_params)); + XX_Free(param); + break; + } + +#if defined(CONFIG_COMPAT) + case FM_PCD_IOC_CC_NODE_MODIFY_KEY_AND_NEXT_ENGINE_COMPAT: +#endif + case FM_PCD_IOC_CC_NODE_MODIFY_KEY_AND_NEXT_ENGINE: + { + ioc_fm_pcd_cc_node_modify_key_and_next_engine_params_t *param; + + ASSERT_COND(sizeof(ioc_fm_pcd_cc_key_params_t) == sizeof(t_FmPcdCcKeyParams)); + + param = (ioc_fm_pcd_cc_node_modify_key_and_next_engine_params_t *) XX_Malloc( + sizeof(ioc_fm_pcd_cc_node_modify_key_and_next_engine_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_cc_node_modify_key_and_next_engine_params_t *compat_param; + + compat_param = (ioc_compat_fm_pcd_cc_node_modify_key_and_next_engine_params_t *) XX_Malloc( + sizeof(ioc_compat_fm_pcd_cc_node_modify_key_and_next_engine_params_t)); + if (!compat_param) + { + XX_Free(compat_param); + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + + if (copy_from_user(compat_param, + (ioc_compat_fm_pcd_cc_node_modify_key_and_next_engine_params_t *)compat_ptr(arg), + sizeof(ioc_compat_fm_pcd_cc_node_modify_key_and_next_engine_params_t))) + { + XX_Free(compat_param); + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + compat_copy_fm_pcd_cc_node_modify_key_and_next_engine(compat_param, param, COMPAT_US_TO_K); + + XX_Free(compat_param); + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_cc_node_modify_key_and_next_engine_params_t *)arg, + sizeof(ioc_fm_pcd_cc_node_modify_key_and_next_engine_params_t))) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + } + + err = FM_PCD_CcNodeModifyKeyAndNextEngine(p_LnxWrpFmDev->h_PcdDev, + param->id, + param->key_indx, + param->key_size, + (t_FmPcdCcKeyParams*)(¶m->key_params)); + XX_Free(param); + break; + } + +#if defined(CONFIG_COMPAT) + case FM_PCD_IOC_CC_NODE_MODIFY_KEY_COMPAT: +#endif + case FM_PCD_IOC_CC_NODE_MODIFY_KEY: + { + ioc_fm_pcd_cc_node_modify_key_params_t *param = NULL; + uint8_t *key = NULL; + uint8_t *mask = NULL; + + param = (ioc_fm_pcd_cc_node_modify_key_params_t *) XX_Malloc( + sizeof(ioc_fm_pcd_cc_node_modify_key_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_cc_node_modify_key_params_t *compat_param = NULL; + compat_param = (ioc_compat_fm_pcd_cc_node_modify_key_params_t *) XX_Malloc( + sizeof(ioc_compat_fm_pcd_cc_node_modify_key_params_t)); + if (!param) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + } + + if (copy_from_user(compat_param, (ioc_compat_fm_pcd_cc_node_modify_key_params_t *)compat_ptr(arg), + sizeof(ioc_compat_fm_pcd_cc_node_modify_key_params_t))) + { + XX_Free(compat_param); + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + + compat_copy_fm_pcd_cc_node_modify_key(compat_param, param, COMPAT_US_TO_K); + + XX_Free(compat_param); + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_cc_node_modify_key_params_t *)arg, + sizeof(ioc_fm_pcd_cc_node_modify_key_params_t))) + { + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + } + + if (param->p_key) + { + key = (uint8_t *) XX_Malloc(sizeof(uint8_t)*IOC_FM_PCD_MAX_SIZE_OF_KEY); + if (!key) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD key")); + } + memset(key, 0, sizeof(uint8_t)*IOC_FM_PCD_MAX_SIZE_OF_KEY); + + if (copy_from_user(key, param->p_key, param->key_size)) + { + XX_Free(key); + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + param->p_key = key; + } + + if (param->p_mask) + { + mask = (uint8_t *) XX_Malloc(sizeof(uint8_t)*IOC_FM_PCD_MAX_SIZE_OF_KEY); + if (!mask) + { + if (key) + XX_Free(key); + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD mask")); + } + memset(mask, 0, sizeof(uint8_t)*IOC_FM_PCD_MAX_SIZE_OF_KEY); + + if (copy_from_user(mask, param->p_mask, param->key_size)) + { + if (mask) + XX_Free(mask); + if (key) + XX_Free(key); + XX_Free(param); + RETURN_ERROR(MINOR, err, NO_MSG); + } + param->p_mask = mask; + } + + err = FM_PCD_CcNodeModifyKey(p_LnxWrpFmDev->h_PcdDev, + param->id, + param->key_indx, + param->key_size, + param->p_key, + param->p_mask); + if (mask) + XX_Free(mask); + if (key) + XX_Free(key); + XX_Free(param); + break; + } + + default: + RETURN_ERROR(MINOR, E_INVALID_SELECTION, ("IOCTL cmd (0x%08x):(0x%02x:0x%02x)!", cmd, _IOC_TYPE(cmd), _IOC_NR(cmd))); + break; + } + + return err; +} + +t_Error LnxwrpFmIOCTL(t_LnxWrpFmDev *p_LnxWrpFmDev, unsigned int cmd, unsigned long arg, bool compat) +{ + t_Error err = E_READ_FAILED; + + DBG(TRACE, ("p_LnxWrpFmDev - 0x%08lx, cmd - 0x%08x, arg - 0x%08lx \n", (uintptr_t)p_LnxWrpFmDev, cmd, arg)); + + switch (cmd) + { + case FM_IOC_SET_PORTS_BANDWIDTH: + { + ioc_fm_port_bandwidth_params *param; + + ASSERT_COND(sizeof(t_FmPortsBandwidthParams) == sizeof(ioc_fm_port_bandwidth_params)); + + param = (ioc_fm_port_bandwidth_params*) XX_Malloc(sizeof(ioc_fm_port_bandwidth_params)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + if (copy_from_user(param, (ioc_fm_port_bandwidth_params*)compat_ptr(arg), sizeof(ioc_fm_port_bandwidth_params))) + { + XX_Free(param); + return err; + } + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_port_bandwidth_params*)arg, sizeof(ioc_fm_port_bandwidth_params))) + { + XX_Free(param); + return err; + } + } + + err = FM_SetPortsBandwidth(p_LnxWrpFmDev->h_Dev, (t_FmPortsBandwidthParams*) param); + XX_Free(param); + return err; + } + + case FM_IOC_GET_REVISION: + { + ioc_fm_revision_info_t *param; + + ASSERT_COND(sizeof(t_FmRevisionInfo) == sizeof(ioc_fm_revision_info_t)); + + param = (ioc_fm_revision_info_t *) XX_Malloc(sizeof(ioc_fm_revision_info_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + + FM_GetRevision(p_LnxWrpFmDev->h_Dev, (t_FmRevisionInfo*)param); + +#if defined(CONFIG_COMPAT) + if (compat) + { + if (copy_to_user((ioc_fm_revision_info_t *)compat_ptr(arg), + param, + sizeof(ioc_fm_revision_info_t))) + err = E_WRITE_FAILED; + else + err = E_OK; + } + else +#endif + { + if (copy_to_user((ioc_fm_revision_info_t *)arg, + param, + sizeof(ioc_fm_revision_info_t))) + err = E_WRITE_FAILED; + else + err = E_OK; + } + + XX_Free(param); + return err; + } + + case FM_IOC_SET_COUNTER: + { + ioc_fm_counters_params_t *param; + + param = (ioc_fm_counters_params_t *) XX_Malloc(sizeof(ioc_fm_counters_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + if (copy_from_user(param, (ioc_fm_counters_params_t *)compat_ptr(arg), sizeof(ioc_fm_counters_params_t))) + { + XX_Free(param); + return err; + } + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_counters_params_t *)arg, sizeof(ioc_fm_counters_params_t))) + { + XX_Free(param); + return err; + } + } + + err = FM_ModifyCounter(p_LnxWrpFmDev->h_Dev, param->cnt, param->val); + + XX_Free(param); + return err; + } + + case FM_IOC_GET_COUNTER: + { + ioc_fm_counters_params_t *param; + + param = (ioc_fm_counters_params_t *) XX_Malloc(sizeof(ioc_fm_counters_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PCD")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + if (copy_from_user(param, (ioc_fm_counters_params_t *)compat_ptr(arg), sizeof(ioc_fm_counters_params_t))) + { + XX_Free(param); + return err; + } + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_counters_params_t *)arg, sizeof(ioc_fm_counters_params_t))) + { + XX_Free(param); + return err; + } + } + + param->val = FM_GetCounter(p_LnxWrpFmDev->h_Dev, param->cnt); + +#if defined(CONFIG_COMPAT) + if (compat) + { + if (copy_to_user((ioc_fm_counters_params_t *)compat_ptr(arg), param, sizeof(ioc_fm_counters_params_t))) + err = E_WRITE_FAILED; + } + else +#endif + { + if (copy_to_user((ioc_fm_counters_params_t *)arg, param, sizeof(ioc_fm_counters_params_t))) + err = E_WRITE_FAILED; + } + + XX_Free(param); + return err; + } + + case FM_IOC_FORCE_INTR: + { + ioc_fm_exceptions param; + +#if defined(CONFIG_COMPAT) + if (compat) + { + if (get_user(param, (ioc_fm_exceptions*) compat_ptr(arg))) + break; + } + else +#endif + { + if (get_user(param, (ioc_fm_exceptions*)arg)) + break; + } + + return FM_ForceIntr(p_LnxWrpFmDev->h_Dev, (e_FmExceptions)param); + } + + default: + return LnxwrpFmPcdIOCTL(p_LnxWrpFmDev, cmd, arg, compat); + } + + RETURN_ERROR(MINOR, E_INVALID_OPERATION, ("IOCTL FM")); +} + +t_Error LnxwrpFmPortIOCTL(t_LnxWrpFmPortDev *p_LnxWrpFmPortDev, unsigned int cmd, unsigned long arg, bool compat) +{ + t_Error err = E_READ_FAILED; + DBG(TRACE, ("p_LnxWrpFmPortDev - 0x%08lx, cmd - 0x%08x, arg - 0x%08lx", (uintptr_t)p_LnxWrpFmPortDev, cmd, arg)); + + switch (cmd) + { + case FM_PORT_IOC_DISABLE: + FM_PORT_Disable(p_LnxWrpFmPortDev->h_Dev); + return E_OK; + + case FM_PORT_IOC_ENABLE: + FM_PORT_Enable(p_LnxWrpFmPortDev->h_Dev); + return E_OK; + + case FM_PORT_IOC_SET_ERRORS_ROUTE: + { + ioc_fm_port_frame_err_select_t errs; + +#if defined(CONFIG_COMPAT) + if (compat) + { + if (get_user(errs, (ioc_fm_port_frame_err_select_t*)compat_ptr(arg))) + break; + } + else +#endif + { + if (get_user(errs, (ioc_fm_port_frame_err_select_t*)arg)) + break; + } + + return FM_PORT_SetErrorsRoute(p_LnxWrpFmPortDev->h_Dev, (fmPortFrameErrSelect_t)errs); + } + + case FM_PORT_IOC_SET_RATE_LIMIT: + { + ioc_fm_port_rate_limit_t *param; + + ASSERT_COND(sizeof(t_FmPortRateLimit) == sizeof(ioc_fm_port_rate_limit_t)); + + param = (ioc_fm_port_rate_limit_t *) XX_Malloc(sizeof(ioc_fm_port_rate_limit_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PORT")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + if (copy_from_user(param, (ioc_fm_port_rate_limit_t *)compat_ptr(arg), sizeof(ioc_fm_port_rate_limit_t))) + { + XX_Free(param); + RETURN_ERROR(MAJOR, E_READ_FAILED, NO_MSG); + } + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_port_rate_limit_t *)arg, sizeof(ioc_fm_port_rate_limit_t))) + { + XX_Free(param); + RETURN_ERROR(MAJOR, E_READ_FAILED, NO_MSG); + } + } + + err = FM_PORT_SetRateLimit(p_LnxWrpFmPortDev->h_Dev, (t_FmPortRateLimit *)param); + + XX_Free(param); + return err; + } + + case FM_PORT_IOC_REMOVE_RATE_LIMIT: + FM_PORT_DeleteRateLimit(p_LnxWrpFmPortDev->h_Dev); + return E_OK; + + case FM_PORT_IOC_ALLOC_PCD_FQIDS: + { + ioc_fm_port_pcd_fqids_params_t *param; + + if (!p_LnxWrpFmPortDev->pcd_owner_params.cba) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("No one to listen on this PCD!!!")); + + param = (ioc_fm_port_pcd_fqids_params_t *) XX_Malloc(sizeof(ioc_fm_port_pcd_fqids_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PORT")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + if (copy_from_user(param, (ioc_fm_port_pcd_fqids_params_t *)compat_ptr(arg), + sizeof(ioc_fm_port_pcd_fqids_params_t))) + { + XX_Free(param); + return err; + } + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_port_pcd_fqids_params_t *)arg, + sizeof(ioc_fm_port_pcd_fqids_params_t))) + { + XX_Free(param); + return err; + } + } + + if (p_LnxWrpFmPortDev->pcd_owner_params.cba(p_LnxWrpFmPortDev->pcd_owner_params.dev, + param->num_fqids, + param->alignment, + ¶m->base_fqid)) + { + XX_Free(param); + RETURN_ERROR(MINOR, E_INVALID_STATE, ("can't allocate fqids for PCD!!!")); + } + +#if defined(CONFIG_COMPAT) + if (compat) + { + if (copy_to_user((ioc_fm_port_pcd_fqids_params_t *)compat_ptr(arg), + param, sizeof(ioc_fm_port_pcd_fqids_params_t))) + { + XX_Free(param); + RETURN_ERROR(MAJOR, E_WRITE_FAILED, NO_MSG); + } + } + else +#endif + { + if (copy_to_user((ioc_fm_port_pcd_fqids_params_t *)arg, + param, sizeof(ioc_fm_port_pcd_fqids_params_t))) + { + XX_Free(param); + RETURN_ERROR(MAJOR, E_WRITE_FAILED, NO_MSG); + } + } + + XX_Free(param); + return E_OK; + } + + case FM_PORT_IOC_FREE_PCD_FQIDS: + { + uint32_t base_fqid; + + if (!p_LnxWrpFmPortDev->pcd_owner_params.cbf) + RETURN_ERROR(MINOR, E_INVALID_STATE, ("No one to listen on this PCD!!!")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + if (get_user(base_fqid, (uint32_t*) compat_ptr(arg))) + break; + } + else +#endif + { + if (get_user(base_fqid, (uint32_t*)arg)) + break; + } + + if (p_LnxWrpFmPortDev->pcd_owner_params.cbf(p_LnxWrpFmPortDev->pcd_owner_params.dev, base_fqid)) + RETURN_ERROR(MAJOR, E_WRITE_FAILED, NO_MSG); + + return E_OK; + } + +#if defined(CONFIG_COMPAT) + case FM_PORT_IOC_SET_PCD_COMPAT: +#endif + case FM_PORT_IOC_SET_PCD: + { + ioc_fm_port_pcd_params_t *port_pcd_params; + ioc_fm_port_pcd_prs_params_t *port_pcd_prs_params; + ioc_fm_port_pcd_cc_params_t *port_pcd_cc_params; + ioc_fm_port_pcd_kg_params_t *port_pcd_kg_params; + ioc_fm_port_pcd_plcr_params_t *port_pcd_plcr_params; + + long copy_fail = 0; + + ASSERT_COND(sizeof(t_FmPortPcdParams) == sizeof(ioc_fm_port_pcd_params_t)); + + port_pcd_params = (ioc_fm_port_pcd_params_t *) XX_Malloc( + sizeof(ioc_fm_port_pcd_params_t) + + sizeof(ioc_fm_port_pcd_prs_params_t) + + sizeof(ioc_fm_port_pcd_cc_params_t) + + sizeof(ioc_fm_port_pcd_kg_params_t) + + sizeof(ioc_fm_port_pcd_plcr_params_t)); + if (!port_pcd_params) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PORT")); + + port_pcd_prs_params = (ioc_fm_port_pcd_prs_params_t *) (port_pcd_params + 1); + port_pcd_cc_params = (ioc_fm_port_pcd_cc_params_t *) (port_pcd_prs_params + 1); + port_pcd_kg_params = (ioc_fm_port_pcd_kg_params_t *) (port_pcd_cc_params + 1); + port_pcd_plcr_params = (ioc_fm_port_pcd_plcr_params_t *) (port_pcd_kg_params + 1); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_port_pcd_params_t *compat_port_pcd_params; + ioc_fm_port_pcd_prs_params_t *same_port_pcd_prs_params; + ioc_compat_fm_port_pcd_cc_params_t *compat_port_pcd_cc_params; + ioc_compat_fm_port_pcd_kg_params_t *compat_port_pcd_kg_params; + ioc_compat_fm_port_pcd_plcr_params_t *compat_port_pcd_plcr_params; + + compat_port_pcd_params = (ioc_compat_fm_port_pcd_params_t *) XX_Malloc( + sizeof(ioc_compat_fm_port_pcd_params_t) + + sizeof(ioc_fm_port_pcd_prs_params_t) + + sizeof(ioc_compat_fm_port_pcd_cc_params_t) + + sizeof(ioc_compat_fm_port_pcd_kg_params_t) + + sizeof(ioc_compat_fm_port_pcd_plcr_params_t)); + if (!compat_port_pcd_params) + { + XX_Free(port_pcd_params); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PORT")); + } + + same_port_pcd_prs_params = (ioc_fm_port_pcd_prs_params_t *) (compat_port_pcd_params + 1); + compat_port_pcd_cc_params = (ioc_compat_fm_port_pcd_cc_params_t *) (same_port_pcd_prs_params + 1); + compat_port_pcd_kg_params = (ioc_compat_fm_port_pcd_kg_params_t *) (compat_port_pcd_cc_params + 1); + compat_port_pcd_plcr_params = (ioc_compat_fm_port_pcd_plcr_params_t *) (compat_port_pcd_kg_params + 1); + + /* Pseudo-while */ + while (!(copy_fail = copy_from_user(compat_port_pcd_params, + (ioc_compat_fm_port_pcd_params_t *)compat_ptr(arg), + sizeof(ioc_compat_fm_port_pcd_params_t)))) + { + compat_copy_fm_port_pcd(compat_port_pcd_params, port_pcd_params, COMPAT_US_TO_K); + + /* the prs member is the same, no compat structure...memcpy only */ + if (port_pcd_params->p_prs_params && !copy_fail) + { + if(!(copy_fail = copy_from_user(same_port_pcd_prs_params, + port_pcd_params->p_prs_params, + sizeof(ioc_fm_port_pcd_prs_params_t)))) + { + memcpy(port_pcd_prs_params, same_port_pcd_prs_params, sizeof(ioc_fm_port_pcd_prs_params_t)); + port_pcd_params->p_prs_params = port_pcd_prs_params; + } + else + break; + } + + if (port_pcd_params->p_cc_params && !copy_fail) + { + if(!(copy_fail = copy_from_user(compat_port_pcd_cc_params, + port_pcd_params->p_cc_params, + sizeof(ioc_compat_fm_port_pcd_cc_params_t)))) + { + port_pcd_params->p_cc_params = port_pcd_cc_params; + port_pcd_params->p_cc_params->cc_tree_id = compat_get_id2ptr(compat_port_pcd_cc_params->cc_tree_id); + } + else + break; + } + + if (port_pcd_params->p_kg_params && !copy_fail) + { + if(!(copy_fail = copy_from_user(compat_port_pcd_kg_params, + port_pcd_params->p_kg_params, + sizeof(ioc_compat_fm_port_pcd_kg_params_t)))) + { + compat_copy_fm_port_pcd_kg(compat_port_pcd_kg_params, port_pcd_kg_params, COMPAT_US_TO_K); + port_pcd_params->p_kg_params = port_pcd_kg_params; + } + else + break; + } + + if (port_pcd_params->p_plcr_params && !copy_fail) + { + if(!(copy_fail = copy_from_user(compat_port_pcd_plcr_params, + port_pcd_params->p_plcr_params, + sizeof(ioc_compat_fm_port_pcd_plcr_params_t)))) + { + port_pcd_params->p_plcr_params = port_pcd_plcr_params; + port_pcd_params->p_plcr_params->plcr_profile_id = compat_ptr(compat_port_pcd_plcr_params->plcr_profile_id); + } + } + + /* always run once! */ + break; + } + + XX_Free(compat_port_pcd_params); + } + else +#endif + { + /* Pseudo-while */ + while (!(copy_fail = copy_from_user(port_pcd_params, + (ioc_fm_port_pcd_params_t *)arg, + sizeof(ioc_fm_port_pcd_params_t)))) + { + if (port_pcd_params->p_prs_params && !copy_fail) + { + if (!(copy_fail = copy_from_user(port_pcd_prs_params, + port_pcd_params->p_prs_params, + sizeof(ioc_fm_port_pcd_prs_params_t)))) + port_pcd_params->p_prs_params = port_pcd_prs_params; + else + break; + } + + if (port_pcd_params->p_cc_params && !copy_fail) + { + if (!(copy_fail = copy_from_user(port_pcd_cc_params, + port_pcd_params->p_cc_params, + sizeof(ioc_fm_port_pcd_cc_params_t)))) + port_pcd_params->p_cc_params = port_pcd_cc_params; + else + break; + } + + if (port_pcd_params->p_kg_params && !copy_fail) + { + if (!(copy_fail = copy_from_user(port_pcd_kg_params, + port_pcd_params->p_kg_params, + sizeof(ioc_fm_port_pcd_kg_params_t)))) + port_pcd_params->p_kg_params = port_pcd_kg_params; + else + break; + } + + if (port_pcd_params->p_plcr_params && !copy_fail) + { + if (!(copy_fail = copy_from_user(port_pcd_plcr_params, + port_pcd_params->p_plcr_params, + sizeof(ioc_fm_port_pcd_plcr_params_t)))) + port_pcd_params->p_plcr_params = port_pcd_plcr_params; + } + + /* always run once! */ + break; + } + } + + if (!copy_fail) + err = FM_PORT_SetPCD(p_LnxWrpFmPortDev->h_Dev, (t_FmPortPcdParams*) port_pcd_params); + else + err = E_READ_FAILED; + + XX_Free(port_pcd_params); + + return err; + } + + case FM_PORT_IOC_DELETE_PCD: + return FM_PORT_DeletePCD(p_LnxWrpFmPortDev->h_Dev); + +#if defined(CONFIG_COMPAT) + case FM_PORT_IOC_PCD_KG_MODIFY_INITIAL_SCHEME_COMPAT: +#endif + case FM_PORT_IOC_PCD_KG_MODIFY_INITIAL_SCHEME: + { + ioc_fm_pcd_kg_scheme_select_t *param; + + ASSERT_COND(sizeof(t_FmPcdKgSchemeSelect) == sizeof(ioc_fm_pcd_kg_scheme_select_t)); + + param = (ioc_fm_pcd_kg_scheme_select_t *) XX_Malloc( + sizeof(ioc_fm_pcd_kg_scheme_select_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PORT")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_kg_scheme_select_t *compat_param; + + compat_param = (ioc_compat_fm_pcd_kg_scheme_select_t *) XX_Malloc( + sizeof(ioc_compat_fm_pcd_kg_scheme_select_t)); + if (!compat_param){ + XX_Free(param); + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PORT")); + } + + if (copy_from_user(compat_param, + (ioc_compat_fm_pcd_kg_scheme_select_t *) compat_ptr(arg), + sizeof(ioc_compat_fm_pcd_kg_scheme_select_t))) + { + XX_Free(param); + XX_Free(compat_param); + RETURN_ERROR(MAJOR, E_READ_FAILED, NO_MSG); + } + + compat_copy_fm_pcd_kg_scheme_select(compat_param, param, COMPAT_US_TO_K); + + XX_Free(compat_param); + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_kg_scheme_select_t *)arg, + sizeof(ioc_fm_pcd_kg_scheme_select_t))) + { + XX_Free(param); + RETURN_ERROR(MAJOR, E_READ_FAILED, NO_MSG); + } + } + + err = FM_PORT_PcdKgModifyInitialScheme(p_LnxWrpFmPortDev->h_Dev, (t_FmPcdKgSchemeSelect *)param); + + XX_Free(param); + return err; + } + +#if defined(CONFIG_COMPAT) + case FM_PORT_IOC_PCD_PLCR_MODIFY_INITIAL_PROFILE_COMPAT: +#endif + case FM_PORT_IOC_PCD_PLCR_MODIFY_INITIAL_PROFILE: + { + ioc_fm_obj_t id; + + memset(&id, 0 , sizeof(ioc_fm_obj_t)); +#if defined(CONFIG_COMPAT) + if (compat) { + ioc_compat_fm_obj_t compat_id; + + if (copy_from_user(&compat_id, (ioc_compat_fm_obj_t *) compat_ptr(arg), sizeof(ioc_compat_fm_obj_t))) + break; + + id.obj = compat_ptr(compat_id.obj); + } + else +#endif + { + if (copy_from_user(&id, (ioc_fm_obj_t *) arg, sizeof(ioc_fm_obj_t))) + break; + } + + return FM_PORT_PcdPlcrModifyInitialProfile(p_LnxWrpFmPortDev->h_Dev, id.obj); + } + +#if defined(CONFIG_COMPAT) + case FM_PORT_IOC_PCD_KG_BIND_SCHEMES_COMPAT: +#endif + case FM_PORT_IOC_PCD_KG_BIND_SCHEMES: + { + ioc_fm_pcd_port_schemes_params_t *param; + + ASSERT_COND(sizeof(t_FmPcdPortSchemesParams) == sizeof(ioc_fm_pcd_port_schemes_params_t)); + + param = (ioc_fm_pcd_port_schemes_params_t *) XX_Malloc( + sizeof(ioc_fm_pcd_port_schemes_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PORT")); + + memset(¶m, 0 , sizeof(ioc_fm_pcd_port_schemes_params_t)); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_port_schemes_params_t compat_param; + + if (copy_from_user(&compat_param, + (ioc_compat_fm_pcd_port_schemes_params_t *) compat_ptr(arg), + sizeof(ioc_compat_fm_pcd_port_schemes_params_t))) + break; + + compat_copy_fm_pcd_kg_schemes_params(&compat_param, param, COMPAT_US_TO_K); + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_port_schemes_params_t *) arg, + sizeof(ioc_fm_pcd_port_schemes_params_t))) + { + XX_Free(param); + RETURN_ERROR(MAJOR, E_WRITE_FAILED, NO_MSG); + } + } + + err = FM_PORT_PcdKgBindSchemes(p_LnxWrpFmPortDev->h_Dev, (t_FmPcdPortSchemesParams *)param); + + XX_Free(param); + return err; + } + +#if defined(CONFIG_COMPAT) + case FM_PORT_IOC_PCD_KG_UNBIND_SCHEMES_COMPAT: +#endif + case FM_PORT_IOC_PCD_KG_UNBIND_SCHEMES: + { + ioc_fm_pcd_port_schemes_params_t *param; + + ASSERT_COND(sizeof(t_FmPcdPortSchemesParams) == sizeof(ioc_fm_pcd_port_schemes_params_t)); + + param = (ioc_fm_pcd_port_schemes_params_t *) XX_Malloc( + sizeof(ioc_fm_pcd_port_schemes_params_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PORT")); + + memset(¶m, 0 , sizeof(ioc_fm_pcd_port_schemes_params_t)); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_pcd_port_schemes_params_t compat_param; + + if (copy_from_user(&compat_param, + (ioc_compat_fm_pcd_port_schemes_params_t *) compat_ptr(arg), + sizeof(ioc_compat_fm_pcd_port_schemes_params_t))) + break; + + compat_copy_fm_pcd_kg_schemes_params(&compat_param, param, COMPAT_US_TO_K); + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_port_schemes_params_t *) arg, + sizeof(ioc_fm_pcd_port_schemes_params_t))) + { + XX_Free(param); + RETURN_ERROR(MAJOR, E_WRITE_FAILED, NO_MSG); + } + } + + err = FM_PORT_PcdKgUnbindSchemes(p_LnxWrpFmPortDev->h_Dev, (t_FmPcdPortSchemesParams *)param); + + XX_Free(param); + return err; + } + + case FM_PORT_IOC_PCD_PRS_MODIFY_START_OFFSET: + { + ioc_fm_pcd_prs_start_t *param; + + ASSERT_COND(sizeof(t_FmPcdPrsStart) == sizeof(ioc_fm_pcd_prs_start_t)); + + param = (ioc_fm_pcd_prs_start_t *) XX_Malloc(sizeof(ioc_fm_pcd_prs_start_t)); + if (!param) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("IOCTL FM PORT")); + +#if defined(CONFIG_COMPAT) + if (compat) + { + if (copy_from_user(param, (ioc_fm_pcd_prs_start_t *)compat_ptr(arg), + sizeof(ioc_fm_pcd_prs_start_t))) + { + XX_Free(param); + RETURN_ERROR(MAJOR, E_WRITE_FAILED, NO_MSG); + } + } + else +#endif + { + if (copy_from_user(param, (ioc_fm_pcd_prs_start_t *)arg, + sizeof(ioc_fm_pcd_prs_start_t))) + { + XX_Free(param); + RETURN_ERROR(MAJOR, E_WRITE_FAILED, NO_MSG); + } + } + err = FM_PORT_PcdPrsModifyStartOffset(p_LnxWrpFmPortDev->h_Dev, (t_FmPcdPrsStart *)param); + + XX_Free(param); + return err; + } + + case FM_PORT_IOC_PCD_PLCR_ALLOC_PROFILES: + { + uint16_t num; + if (get_user(num, (uint16_t*) arg)) + break; + return FM_PORT_PcdPlcrAllocProfiles(p_LnxWrpFmPortDev->h_Dev, num); + } + + case FM_PORT_IOC_PCD_PLCR_FREE_PROFILES: + return FM_PORT_PcdPlcrFreeProfiles(p_LnxWrpFmPortDev->h_Dev); + + case FM_PORT_IOC_DETACH_PCD: + return FM_PORT_DetachPCD(p_LnxWrpFmPortDev->h_Dev); + + case FM_PORT_IOC_ATTACH_PCD: + return FM_PORT_AttachPCD(p_LnxWrpFmPortDev->h_Dev); + +#if defined(CONFIG_COMPAT) + case FM_PORT_IOC_PCD_CC_MODIFY_TREE_COMPAT: +#endif + case FM_PORT_IOC_PCD_CC_MODIFY_TREE: + { + ioc_fm_obj_t id; + + memset(&id, 0 , sizeof(ioc_fm_obj_t)); + +#if defined(CONFIG_COMPAT) + if (compat) + { + ioc_compat_fm_obj_t compat_id; + + if (copy_from_user(&compat_id, (ioc_compat_fm_obj_t *) compat_ptr(arg), sizeof(ioc_compat_fm_obj_t))) + break; + + id.obj = compat_get_id2ptr(compat_id.obj); + } + else +#endif + { + if (copy_from_user(&id, (ioc_fm_obj_t *) arg, sizeof(ioc_fm_obj_t))) + break; + } + + return FM_PORT_PcdCcModifyTree(p_LnxWrpFmPortDev->h_Dev, id.obj); + } + + default: + RETURN_ERROR(MINOR, E_INVALID_SELECTION, ("IOCTL cmd (0x%08x):(0x%02x:0x%02x)!", cmd, _IOC_TYPE(cmd), _IOC_NR(cmd))); + } + + RETURN_ERROR(MINOR, E_INVALID_OPERATION, ("IOCTL port")); +} + +/*****************************************************************************/ +/* API routines for the FM Linux Device */ +/*****************************************************************************/ + +static int fm_open(struct inode *inode, struct file *file) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = NULL; + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev = NULL; + unsigned int major = imajor(inode); + unsigned int minor = iminor(inode); + struct device_node *fm_node; + static struct of_device_id fm_node_of_match[] = { + { .compatible = "fsl,fman", }, + { /* end of list */ }, + }; + + DBG(TRACE, ("Opening minor - %d - ", minor)); + + if (file->private_data != NULL) + return 0; + + /* Get all the FM nodes */ + for_each_matching_node(fm_node, fm_node_of_match) { + struct platform_device *of_dev; + + of_dev = of_find_device_by_node(fm_node); + if (unlikely(of_dev == NULL)) { + REPORT_ERROR(MAJOR, E_INVALID_VALUE, ("fm id!")); + return -ENXIO; + } + + p_LnxWrpFmDev = (t_LnxWrpFmDev *)fm_bind(&of_dev->dev); + if (p_LnxWrpFmDev->major == major) + break; + fm_unbind((struct fm *)p_LnxWrpFmDev); + p_LnxWrpFmDev = NULL; + } + + if (!p_LnxWrpFmDev) + return -ENODEV; + + if (minor == DEV_FM_MINOR_BASE) + file->private_data = p_LnxWrpFmDev; + else if (minor == DEV_FM_PCD_MINOR_BASE) + file->private_data = p_LnxWrpFmDev; + else { + if (minor == DEV_FM_OH_PORTS_MINOR_BASE) + p_LnxWrpFmPortDev = &p_LnxWrpFmDev->hcPort; + else if ((minor > DEV_FM_OH_PORTS_MINOR_BASE) && (minor < DEV_FM_RX_PORTS_MINOR_BASE)) + p_LnxWrpFmPortDev = &p_LnxWrpFmDev->opPorts[minor-DEV_FM_OH_PORTS_MINOR_BASE-1]; + else if ((minor >= DEV_FM_RX_PORTS_MINOR_BASE) && (minor < DEV_FM_TX_PORTS_MINOR_BASE)) + p_LnxWrpFmPortDev = &p_LnxWrpFmDev->rxPorts[minor-DEV_FM_RX_PORTS_MINOR_BASE]; + else if ((minor >= DEV_FM_TX_PORTS_MINOR_BASE) && (minor < DEV_FM_MAX_MINORS)) + p_LnxWrpFmPortDev = &p_LnxWrpFmDev->txPorts[minor-DEV_FM_TX_PORTS_MINOR_BASE]; + else + return -EINVAL; + + /* if trying to open port, check if it initialized */ + if (!p_LnxWrpFmPortDev->h_Dev) + return -ENODEV; + + p_LnxWrpFmPortDev = (t_LnxWrpFmPortDev *)fm_port_bind(p_LnxWrpFmPortDev->dev); + file->private_data = p_LnxWrpFmPortDev; + fm_unbind((struct fm *)p_LnxWrpFmDev); + } + + if (file->private_data == NULL) + return -ENXIO; + + return 0; +} + +static int fm_close(struct inode *inode, struct file *file) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev; + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev; + unsigned int minor = iminor(inode); + int err = 0; + + DBG(TRACE, ("Closing minor - %d - ", minor)); + + if ((minor == DEV_FM_MINOR_BASE) || + (minor == DEV_FM_PCD_MINOR_BASE)) + { + p_LnxWrpFmDev = (t_LnxWrpFmDev*)file->private_data; + if (!p_LnxWrpFmDev) + return -ENODEV; + fm_unbind((struct fm *)p_LnxWrpFmDev); + } + else if (((minor >= DEV_FM_OH_PORTS_MINOR_BASE) && (minor < DEV_FM_RX_PORTS_MINOR_BASE)) || + ((minor >= DEV_FM_RX_PORTS_MINOR_BASE) && (minor < DEV_FM_TX_PORTS_MINOR_BASE)) || + ((minor >= DEV_FM_TX_PORTS_MINOR_BASE) && (minor < DEV_FM_MAX_MINORS))) + { + p_LnxWrpFmPortDev = (t_LnxWrpFmPortDev*)file->private_data; + if (!p_LnxWrpFmPortDev) + return -ENODEV; + fm_port_unbind((struct fm_port *)p_LnxWrpFmPortDev); + } + + return err; +} + +static int fm_ioctls(unsigned int minor, struct file *file, unsigned int cmd, unsigned long arg, bool compat) +{ + DBG(TRACE, ("IOCTL minor - %u, cmd - 0x%08x, arg - 0x%08lx \n", minor, cmd, arg)); + + if ((minor == DEV_FM_MINOR_BASE) || + (minor == DEV_FM_PCD_MINOR_BASE)) + { + t_LnxWrpFmDev *p_LnxWrpFmDev = ((t_LnxWrpFmDev*)file->private_data); + if (!p_LnxWrpFmDev) + return -ENODEV; + if (LnxwrpFmIOCTL(p_LnxWrpFmDev, cmd, arg, compat)) + return -EFAULT; + } + else if (((minor >= DEV_FM_OH_PORTS_MINOR_BASE) && (minor < DEV_FM_RX_PORTS_MINOR_BASE)) || + ((minor >= DEV_FM_RX_PORTS_MINOR_BASE) && (minor < DEV_FM_TX_PORTS_MINOR_BASE)) || + ((minor >= DEV_FM_TX_PORTS_MINOR_BASE) && (minor < DEV_FM_MAX_MINORS))) + { + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev = ((t_LnxWrpFmPortDev*)file->private_data); + if (!p_LnxWrpFmPortDev) + return -ENODEV; + if (LnxwrpFmPortIOCTL(p_LnxWrpFmPortDev, cmd, arg, compat)) + return -EFAULT; + } + else + { + REPORT_ERROR(MINOR, E_INVALID_VALUE, ("minor")); + return -ENODEV; + } + + return 0; +} + +#ifdef CONFIG_COMPAT +static long fm_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + unsigned int minor = iminor(file->f_path.dentry->d_inode); + long res; + + fm_mutex_lock(); + res = fm_ioctls(minor, file, cmd, arg, true); + fm_mutex_unlock(); + + return res; +} +#endif + +static long fm_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + unsigned int minor = iminor(file->f_path.dentry->d_inode); + long res; + + fm_mutex_lock(); + res = fm_ioctls(minor, file, cmd, arg, false); + fm_mutex_unlock(); + + return res; +} + +/* Globals for FM character device */ +struct file_operations fm_fops = +{ + .owner = THIS_MODULE, + .unlocked_ioctl = fm_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = fm_compat_ioctl, +#endif + .open = fm_open, + .release = fm_close, +}; --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_ioctls_fm_compat.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_ioctls_fm_compat.c @@ -0,0 +1,789 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + + @File lnxwrp_fm_compat_ioctls.c + + @Description FM PCD compat functions + +*/ + +#if !defined(CONFIG_COMPAT) +#error "missing COMPAT layer..." +#endif + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "part_ext.h" +#include "fm_ioctls.h" +#include "fm_pcd_ioctls.h" +#include "fm_port_ioctls.h" +#include "lnxwrp_ioctls_fm_compat.h" + +/* debug dump */ +#if 0 +static void hex_dump(void * p_addr, unsigned int size) +{ + int i; + + for(i=0; i ", p);*/ + + if(!p) + return 0; + + for(k=1; k < COMPAT_PTR2ID_ARRAY_MAX; k++) + if(compat_ptr2id_array[k] == NULL) + { + compat_ptr2id_array[k] = p; + /*printk("0x%08x\n", k | COMPAT_PTR2ID_WATERMARK);*/ + return k | COMPAT_PTR2ID_WATERMARK; + } + + return 0; +} + +compat_uptr_t compat_get_ptr2id(void *p) +{ + compat_uptr_t k; + + /*printk("\ncompat_get_ptr2id(%p) -> ", p);*/ + + for(k=1; k < COMPAT_PTR2ID_ARRAY_MAX; k++) + if(compat_ptr2id_array[k] == p) { + /*printk("0x%08x\n", k | COMPAT_PTR2ID_WATERMARK);*/ + return k | COMPAT_PTR2ID_WATERMARK; + } + + return 0; +} + +void *compat_get_id2ptr(compat_uptr_t comp) +{ + + /*printk("\ncompat_get_id2ptr(0x%08x) -> ", comp);*/ + + if((COMPAT_PTR2ID_WM_MASK & comp) != COMPAT_PTR2ID_WATERMARK) { + /*printk("Error, invalid watermark!\n\n"); + dump_stack();*/ + return compat_ptr(comp); + } + + comp &= ~COMPAT_PTR2ID_WM_MASK; + + if((0 < comp) && (comp < COMPAT_PTR2ID_ARRAY_MAX) && (compat_ptr2id_array[comp] != NULL)) { + /*printk("%p\n", compat_ptr2id_array[comp]);*/ + return compat_ptr2id_array[comp]; + } + return NULL; +} +/* } maping kernel pointers w/ UserSpace id's */ + +static inline void compat_copy_fm_pcd_plcr_next_engine( + ioc_compat_fm_pcd_plcr_next_engine_params_u *compat_param, + ioc_fm_pcd_plcr_next_engine_params_u *param, + ioc_fm_pcd_engine next_engine, + uint8_t compat) +{ + switch (next_engine) + { + case e_IOC_FM_PCD_PLCR: + if (compat) + param->p_profile = compat_ptr(compat_param->p_profile); + else + compat_param->p_profile = ptr_to_compat(param->p_profile); + break; + + case e_IOC_FM_PCD_KG: + if (compat) + param->p_direct_scheme = compat_ptr(compat_param->p_direct_scheme); + else + compat_param->p_direct_scheme = ptr_to_compat(param->p_direct_scheme); + break; + + default: + if (compat) + param->action = compat_param->action; + else + compat_param->action = param->action; + } +} + +void compat_copy_fm_pcd_plcr_profile( + ioc_compat_fm_pcd_plcr_profile_params_t *compat_param, + ioc_fm_pcd_plcr_profile_params_t *param, + uint8_t compat) +{ + if (compat) + { + param->modify = compat_param->modify; + + /* profile_select */ + if (!compat_param->modify) + { + param->profile_select.new_params.profile_type = + compat_param->profile_select.new_params.profile_type; + param->profile_select.new_params.p_port = + compat_ptr(compat_param->profile_select.new_params.p_port); + param->profile_select.new_params.relative_profile_id = + compat_param->profile_select.new_params.relative_profile_id; + } + else + param->profile_select.p_profile = + compat_ptr(compat_param->profile_select.p_profile); + + param->alg_selection = compat_param->alg_selection; + param->color_mode = compat_param->color_mode; + + /* both parameters in the union has the same size, so memcpy works */ + memcpy(¶m->color, &compat_param->color, sizeof(param->color)); + + memcpy(¶m->non_passthrough_alg_param, &compat_param->non_passthrough_alg_param, sizeof(ioc_fm_pcd_plcr_non_passthrough_alg_param_t)); + + param->next_engine_on_green = compat_param->next_engine_on_green; + param->next_engine_on_yellow = compat_param->next_engine_on_yellow; + param->next_engine_on_red = compat_param->next_engine_on_red; + + param->trap_profile_on_flow_A = compat_param->trap_profile_on_flow_A; + param->trap_profile_on_flow_B = compat_param->trap_profile_on_flow_B; + param->trap_profile_on_flow_C = compat_param->trap_profile_on_flow_C; + + param->id = compat_ptr(compat_param->id); + } + else + { + compat_param->modify = param->modify; + + /* profile_select */ + if(!param->modify){ + compat_param->profile_select.new_params.profile_type = + param->profile_select.new_params.profile_type; + compat_param->profile_select.new_params.p_port = + ptr_to_compat(param->profile_select.new_params.p_port); + compat_param->profile_select.new_params.relative_profile_id = + param->profile_select.new_params.relative_profile_id; + } + else + compat_param->profile_select.p_profile = + ptr_to_compat(param->profile_select.p_profile); + + compat_param->alg_selection = param->alg_selection; + compat_param->color_mode = param->color_mode; + + /* both parameters in the union has the same size, so memcpy works */ + memcpy(&compat_param->color, ¶m->color, sizeof(compat_param->color)); + + memcpy(&compat_param->non_passthrough_alg_param, ¶m->non_passthrough_alg_param, sizeof(ioc_fm_pcd_plcr_non_passthrough_alg_param_t)); + + compat_param->next_engine_on_green = param->next_engine_on_green; + compat_param->next_engine_on_yellow = param->next_engine_on_yellow; + compat_param->next_engine_on_red = param->next_engine_on_red; + + compat_param->trap_profile_on_flow_A = param->trap_profile_on_flow_A; + compat_param->trap_profile_on_flow_B = param->trap_profile_on_flow_B; + compat_param->trap_profile_on_flow_C = param->trap_profile_on_flow_C; + + compat_param->id = ptr_to_compat(param->id); + } + + compat_copy_fm_pcd_plcr_next_engine(&compat_param->params_on_green, + ¶m->params_on_green, param->next_engine_on_green, compat); + + compat_copy_fm_pcd_plcr_next_engine(&compat_param->params_on_yellow, + ¶m->params_on_yellow, param->next_engine_on_yellow, compat); + + compat_copy_fm_pcd_plcr_next_engine(&compat_param->params_on_red, + ¶m->params_on_red, param->next_engine_on_red, compat); +} + +static inline void compat_copy_fm_pcd_cc_next_kg( + ioc_compat_fm_pcd_cc_next_kg_params_t *compat_param, + ioc_fm_pcd_cc_next_kg_params_t *param, + uint8_t compat) +{ + if (compat) + { + param->new_fqid = compat_param->new_fqid; + param->override_fqid = compat_param->override_fqid; + param->p_direct_scheme = compat_ptr(compat_param->p_direct_scheme); + } + else + { + compat_param->new_fqid = param->new_fqid; + compat_param->override_fqid = param->override_fqid; + compat_param->p_direct_scheme = ptr_to_compat(param->p_direct_scheme); + } +} + +static inline void compat_copy_fm_pcd_cc_next_cc( + ioc_compat_fm_pcd_cc_next_cc_params_t *compat_param, + ioc_fm_pcd_cc_next_cc_params_t *param, + uint8_t compat) +{ + if (compat) + param->cc_node_id = compat_get_id2ptr(compat_param->cc_node_id); + else + compat_param->cc_node_id = compat_get_ptr2id(param->cc_node_id); +} + +static inline void compat_copy_fm_pcd_cc_next_engine( + ioc_compat_fm_pcd_cc_next_engine_params_t *compat_param, + ioc_fm_pcd_cc_next_engine_params_t *param, + uint8_t compat) +{ + if (compat) + { + param->next_engine = compat_param->next_engine; + + switch (compat_param->next_engine) + { + case e_IOC_FM_PCD_KG: + compat_copy_fm_pcd_cc_next_kg(&compat_param->params.kg_params, ¶m->params.kg_params, compat); + break; + case e_IOC_FM_PCD_CC: + compat_copy_fm_pcd_cc_next_cc(&compat_param->params.cc_params, ¶m->params.cc_params, compat); + break; + default: + memcpy(¶m->params, &compat_param->params, sizeof(param->params)); + break; + } +#ifdef FM_PCD_CC_MANIP + param->p_manip = compat_ptr(compat_param->p_manip); +#endif + } + else + { + compat_param->next_engine = param->next_engine; + + switch (compat_param->next_engine) + { + case e_IOC_FM_PCD_KG: + compat_copy_fm_pcd_cc_next_kg(&compat_param->params.kg_params, ¶m->params.kg_params, compat); + break; + case e_IOC_FM_PCD_CC: + compat_copy_fm_pcd_cc_next_cc(&compat_param->params.cc_params, ¶m->params.cc_params, compat); + break; + default: + memcpy(&compat_param->params, ¶m->params, sizeof(compat_param->params)); + break; + } + +#ifdef FM_PCD_CC_MANIP + compat_param->p_manip = ptr_to_compat(param->p_manip); +#endif + } +} + +void compat_copy_fm_pcd_cc_key( + ioc_compat_fm_pcd_cc_key_params_t *compat_param, + ioc_fm_pcd_cc_key_params_t *param, + uint8_t compat) +{ + if (compat) + { + param->p_key = compat_ptr(compat_param->p_key); + param->p_mask = compat_ptr(compat_param->p_mask); + } + else + { + compat_param->p_key = ptr_to_compat(param->p_key); + compat_param->p_mask = ptr_to_compat(param->p_mask); + } + + compat_copy_fm_pcd_cc_next_engine( + &compat_param->cc_next_engine_params, + ¶m->cc_next_engine_params, + compat); +} + +void compat_copy_fm_pcd_cc_node_modify_key_and_next_engine( + ioc_compat_fm_pcd_cc_node_modify_key_and_next_engine_params_t *compat_param, + ioc_fm_pcd_cc_node_modify_key_and_next_engine_params_t *param, + uint8_t compat) +{ + if (compat) + { + param->id = compat_ptr(compat_param->id); + param->key_indx = compat_param->key_indx; + param->key_size = compat_param->key_indx; + compat_copy_fm_pcd_cc_key( + &compat_param->key_params, + ¶m->key_params, + compat); + } + else + { + compat_param->id = ptr_to_compat(param->id); + compat_param->key_indx = param->key_indx; + compat_param->key_size = param->key_indx; + compat_copy_fm_pcd_cc_key( + &compat_param->key_params, + ¶m->key_params, + compat); + } +} + +void compat_copy_fm_pcd_cc_node_modify_next_engine( + ioc_compat_fm_pcd_cc_node_modify_next_engine_params_t *compat_param, + ioc_fm_pcd_cc_node_modify_next_engine_params_t *param, + uint8_t compat) +{ + if (compat) + { + param->id = compat_ptr(compat_param->id); + param->key_indx = compat_param->key_indx; + param->key_size = compat_param->key_size; + } + else + { + compat_param->id = ptr_to_compat(param->id); + compat_param->key_indx = param->key_indx; + compat_param->key_size = param->key_size; + } + + compat_copy_fm_pcd_cc_next_engine( + &compat_param->cc_next_engine_params, + ¶m->cc_next_engine_params, + compat); +} + +void compat_fm_pcd_cc_tree_modify_next_engine( + ioc_compat_fm_pcd_cc_tree_modify_next_engine_params_t *compat_param, + ioc_fm_pcd_cc_tree_modify_next_engine_params_t *param, + uint8_t compat) +{ + if (compat) + { + param->id = compat_ptr(compat_param->id); + param->grp_indx = compat_param->grp_indx; + param->indx = compat_param->indx; + } + else + { + compat_param->id = ptr_to_compat(param->id); + compat_param->grp_indx = param->grp_indx; + compat_param->indx = param->indx; + } + + compat_copy_fm_pcd_cc_next_engine( + &compat_param->cc_next_engine_params, + ¶m->cc_next_engine_params, + compat); +} + +void compat_copy_fm_pcd_cc_grp( + ioc_compat_fm_pcd_cc_grp_params_t *compat_param, + ioc_fm_pcd_cc_grp_params_t *param, + uint8_t compat) +{ + int k; + + if (compat) + { + param->num_of_distinction_units = compat_param->num_of_distinction_units; + memcpy(param->unit_ids, compat_param->unit_ids, IOC_FM_PCD_MAX_NUM_OF_CC_UNITS); + } + else + { + compat_param->num_of_distinction_units = param->num_of_distinction_units; + memcpy(compat_param->unit_ids, param->unit_ids, IOC_FM_PCD_MAX_NUM_OF_CC_UNITS); + } + + for (k=0; k < IOC_FM_PCD_MAX_NUM_OF_CC_ENTRIES_IN_GRP; k++) + compat_copy_fm_pcd_cc_next_engine( + &compat_param->next_engine_per_entries_in_grp[k], + ¶m->next_engine_per_entries_in_grp[k], + compat); +} + +void compat_copy_fm_pcd_cc_tree( + ioc_compat_fm_pcd_cc_tree_params_t *compat_param, + ioc_fm_pcd_cc_tree_params_t *param, + uint8_t compat) +{ + int k; + + if (compat) + { + param->net_env_id = compat_ptr(compat_param->net_env_id); + param->num_of_groups = compat_param->num_of_groups; + + for (k=0; k < IOC_FM_PCD_MAX_NUM_OF_CC_GROUPS; k++) + compat_copy_fm_pcd_cc_grp( + &compat_param->fm_pcd_cc_group_params[k], + ¶m->fm_pcd_cc_group_params[k], + compat); + param->id = compat_ptr(compat_param->id); + } + else + { + compat_param->net_env_id = ptr_to_compat(param->net_env_id); + compat_param->num_of_groups = param->num_of_groups; + for (k=0; k < IOC_FM_PCD_MAX_NUM_OF_CC_GROUPS; k++) + compat_copy_fm_pcd_cc_grp( + &compat_param->fm_pcd_cc_group_params[k], + ¶m->fm_pcd_cc_group_params[k], + compat); + compat_param->id = ptr_to_compat(param->id); + } +} + +void compat_fm_pcd_prs_sw( + ioc_compat_fm_pcd_prs_sw_params_t *compat_param, + ioc_fm_pcd_prs_sw_params_t *param, + uint8_t compat) +{ + if (compat) + { + param->override = compat_param->override; + param->size = compat_param->size; + param->base = compat_param->base; + param->p_code = compat_ptr(compat_param->p_code); + memcpy(param->sw_prs_data_params,compat_param->sw_prs_data_params,IOC_FM_PCD_PRS_NUM_OF_HDRS*sizeof(uint32_t)); + param->num_of_labels = compat_param->num_of_labels; + memcpy(param->labels_table,compat_param->labels_table,IOC_FM_PCD_PRS_NUM_OF_LABELS*sizeof(ioc_fm_pcd_prs_label_params_t)); + return; + } + + WARN(1, "\n\nFMD: fatal error, feature not implemented!\n\n"); +} + +void compat_copy_fm_pcd_kg_scheme( + ioc_compat_fm_pcd_kg_scheme_params_t *compat_param, + ioc_fm_pcd_kg_scheme_params_t *param, + uint8_t compat) +{ + if (compat) + { + param->modify = compat_param->modify; + + /* scm_id */ + if(compat_param->modify) + param->scm_id.scheme_id = compat_ptr(compat_param->scm_id.scheme_id); + else + param->scm_id.relative_scheme_id = compat_param->scm_id.relative_scheme_id; + + param->always_direct = compat_param->always_direct; + /* netEnvParams */ + param->netEnvParams.net_env_id = compat_ptr(compat_param->netEnvParams.net_env_id); + param->netEnvParams.num_of_distinction_units = compat_param->netEnvParams.num_of_distinction_units; + memcpy(param->netEnvParams.unit_ids, + compat_param->netEnvParams.unit_ids, + IOC_FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS); + + param->use_hash = compat_param->use_hash; + memcpy(¶m->key_extract_and_hash_params, + &compat_param->key_extract_and_hash_params, + sizeof(ioc_fm_pcd_kg_key_extract_and_hash_params_t)); + param->bypass_fqid_generation = compat_param->bypass_fqid_generation; + param->base_fqid = compat_param->base_fqid; + param->numOfUsedExtractedOrs = compat_param->numOfUsedExtractedOrs; + memcpy(param->extracted_ors, compat_param->extracted_ors, IOC_FM_PCD_KG_NUM_OF_GENERIC_REGS * sizeof(ioc_fm_pcd_kg_extracted_or_params_t)); + param->next_engine = compat_param->next_engine; + + /* kg_next_engine_params */ + if(param->next_engine == e_IOC_FM_PCD_CC){ + param->kg_next_engine_params.cc.tree_id = compat_get_id2ptr(compat_param->kg_next_engine_params.cc.tree_id); + param->kg_next_engine_params.cc.grp_id = compat_param->kg_next_engine_params.cc.grp_id; + param->kg_next_engine_params.cc.plcr_next = compat_param->kg_next_engine_params.cc.plcr_next; + param->kg_next_engine_params.cc.bypass_plcr_profile_generation = compat_param->kg_next_engine_params.cc.bypass_plcr_profile_generation; + memcpy(¶m->kg_next_engine_params.cc.plcr_profile, + &compat_param->kg_next_engine_params.cc.plcr_profile, + sizeof(ioc_fm_pcd_kg_plcr_profile_t)); + } + else + memcpy(¶m->kg_next_engine_params, + &compat_param->kg_next_engine_params, + sizeof(param->kg_next_engine_params)); + + memcpy(¶m->scheme_counter, &compat_param->scheme_counter, sizeof(ioc_fm_pcd_kg_scheme_counter_t)); + param->id = compat_ptr(compat_param->id); + } + else + { + compat_param->modify = param->modify; + + /* scm_id */ + if(param->modify) + compat_param->scm_id.scheme_id = ptr_to_compat(param->scm_id.scheme_id); + else + compat_param->scm_id.relative_scheme_id = param->scm_id.relative_scheme_id; + + compat_param->always_direct = param->always_direct; + + /* netEnvParams */ + compat_param->netEnvParams.net_env_id = ptr_to_compat(param->netEnvParams.net_env_id); + compat_param->netEnvParams.num_of_distinction_units = param->netEnvParams.num_of_distinction_units; + memcpy(compat_param->netEnvParams.unit_ids, param->netEnvParams.unit_ids, IOC_FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS); + + compat_param->use_hash = param->use_hash; + memcpy(&compat_param->key_extract_and_hash_params, ¶m->key_extract_and_hash_params, sizeof(ioc_fm_pcd_kg_key_extract_and_hash_params_t)); + compat_param->bypass_fqid_generation = param->bypass_fqid_generation; + compat_param->base_fqid = param->base_fqid; + compat_param->numOfUsedExtractedOrs = param->numOfUsedExtractedOrs; + memcpy(compat_param->extracted_ors, param->extracted_ors, IOC_FM_PCD_KG_NUM_OF_GENERIC_REGS * sizeof(ioc_fm_pcd_kg_extracted_or_params_t)); + compat_param->next_engine = param->next_engine; + + /* kg_next_engine_params */ + if(compat_param->next_engine == e_IOC_FM_PCD_CC){ + compat_param->kg_next_engine_params.cc.tree_id = compat_get_ptr2id(param->kg_next_engine_params.cc.tree_id); + compat_param->kg_next_engine_params.cc.grp_id = param->kg_next_engine_params.cc.grp_id; + compat_param->kg_next_engine_params.cc.plcr_next = param->kg_next_engine_params.cc.plcr_next; + compat_param->kg_next_engine_params.cc.bypass_plcr_profile_generation = param->kg_next_engine_params.cc.bypass_plcr_profile_generation; + memcpy(&compat_param->kg_next_engine_params.cc.plcr_profile, ¶m->kg_next_engine_params.cc.plcr_profile, sizeof(ioc_fm_pcd_kg_plcr_profile_t)); + } + else + memcpy(¶m->kg_next_engine_params, &compat_param->kg_next_engine_params, sizeof(compat_param->kg_next_engine_params)); + + memcpy(&compat_param->scheme_counter, ¶m->scheme_counter, sizeof(ioc_fm_pcd_kg_scheme_counter_t)); + compat_param->id = ptr_to_compat(param->id); + } +} + +void compat_copy_fm_pcd_kg_scheme_select( + ioc_compat_fm_pcd_kg_scheme_select_t *compat_param, + ioc_fm_pcd_kg_scheme_select_t *param, + uint8_t compat) +{ + if (compat){ + param->direct = compat_param->direct; + param->scheme_id = compat_ptr(compat_param->direct); + } + else { + printk(" %s:%u feature not implemented... \n", __func__, __LINE__); + } +} + +void compat_copy_fm_pcd_kg_schemes_params( + ioc_compat_fm_pcd_port_schemes_params_t *compat_param, + ioc_fm_pcd_port_schemes_params_t *param, + uint8_t compat) +{ + int k; + + if (compat) { + param->num_of_schemes = compat_param->num_of_schemes; + for(k=0; k < IOC_FM_PCD_KG_NUM_OF_SCHEMES; k++) + param->scheme_ids[k] = compat_ptr(compat_param->schemes_ids[k]); + } + else { + printk(" %s:%u feature not implemented... \n", __func__, __LINE__); + } +} + +void compat_copy_fm_port_pcd_kg( + ioc_compat_fm_port_pcd_kg_params_t *compat_param, + ioc_fm_port_pcd_kg_params_t *param, + uint8_t compat) +{ + if (compat){ + uint8_t k; + param->num_of_schemes = compat_param->num_of_schemes; + for(k=0;kschemes_ids[k] = compat_ptr(compat_param->schemes_ids[k]); + param->direct_scheme = compat_param->direct_scheme; + param->direct_scheme_id = compat_ptr(compat_param->direct_scheme_id); + } + else { + printk(" %s:%u feature not implemented... \n", __func__, __LINE__);; + } +} + +void compat_copy_fm_port_pcd( + ioc_compat_fm_port_pcd_params_t *compat_param, + ioc_fm_port_pcd_params_t *param, + uint8_t compat) +{ + if (compat){ + param->pcd_support = compat_param->pcd_support; + param->net_env_id = compat_ptr(compat_param->net_env_id); + param->p_prs_params = compat_ptr(compat_param->p_prs_params); /* same structure */ + param->p_cc_params = compat_ptr(compat_param->p_cc_params); + param->p_kg_params = compat_ptr(compat_param->p_kg_params); + param->p_plcr_params = compat_ptr(compat_param->p_plcr_params); + } + else { + compat_param->pcd_support = param->pcd_support; + compat_param->net_env_id = ptr_to_compat(param->net_env_id); + compat_param->p_prs_params = ptr_to_compat(param->p_prs_params); /* same structure */ + compat_param->p_cc_params = ptr_to_compat(param->p_cc_params); + compat_param->p_kg_params = ptr_to_compat(param->p_kg_params); + compat_param->p_plcr_params = ptr_to_compat(param->p_plcr_params); + } +} + +void compat_copy_fm_pcd_net_env( + ioc_compat_fm_pcd_net_env_params_t *compat_param, + ioc_fm_pcd_net_env_params_t *param, + uint8_t compat) +{ + if (compat) + { + param->num_of_distinction_units = compat_param->num_of_distinction_units; + memcpy(param->units, compat_param->units, sizeof(ioc_fm_pcd_distinction_unit_t)*IOC_FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS); + param->id = compat_ptr(compat_param->id); + } + else + { + compat_param->num_of_distinction_units = param->num_of_distinction_units; + memcpy(compat_param->units, param->units, sizeof(ioc_fm_pcd_distinction_unit_t)*IOC_FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS); + compat_param->id = ptr_to_compat(param->id); + } +} + +void compat_copy_fm_pcd_cc_node_modify_key( + ioc_compat_fm_pcd_cc_node_modify_key_params_t *compat_param, + ioc_fm_pcd_cc_node_modify_key_params_t *param, + uint8_t compat) +{ + if (compat) + { + param->id = compat_ptr(compat_param->id); + param->key_indx = compat_param->key_indx; + param->key_size = compat_param->key_size; + param->p_key = (uint8_t *)compat_ptr(compat_param->p_key); + param->p_mask = (uint8_t *)compat_ptr(compat_param->p_mask); + } + else + { + compat_param->id = ptr_to_compat(param->id); + compat_param->key_indx = param->key_indx; + compat_param->key_size = param->key_size; + compat_param->p_key = ptr_to_compat((void *)param->p_key); + compat_param->p_mask = ptr_to_compat((void *)param->p_mask); + } +} + +void compat_copy_keys( + ioc_compat_keys_params_t *compat_param, + ioc_keys_params_t *param, + uint8_t compat) +{ + int k = 0; + if (compat){ + param->num_of_keys = compat_param->num_of_keys; + param->key_size = compat_param->key_size; + + for(k=0;kkey_params[k], + ¶m->key_params[k], + compat); + + } + else { + + compat_param->num_of_keys = param->num_of_keys; + compat_param->key_size = param->key_size; + + for(k=0;kkey_params[k], + ¶m->key_params[k], + compat); + } + + compat_copy_fm_pcd_cc_next_engine( + &compat_param->cc_next_engine_params_for_miss, + ¶m->cc_next_engine_params_for_miss, + compat); + +} + +void compat_copy_fm_pcd_cc_node( + ioc_compat_fm_pcd_cc_node_params_t *compat_param, + ioc_fm_pcd_cc_node_params_t *param, + uint8_t compat) +{ + if (compat) + { + /* no pointer inside, so sizeof US and KS are the same - memcpy is ok */ + memcpy(¶m->extract_cc_params, &compat_param->extract_cc_params, sizeof(ioc_fm_pcd_extract_entry_t)); + + compat_copy_keys(&compat_param->keys_params, ¶m->keys_params, compat); + + param->id = compat_get_id2ptr(compat_param->id); + } + else + { + /* no pointer inside, so sizeof US and KS are the same - memcpy is ok */ + memcpy(&compat_param->extract_cc_params, ¶m->extract_cc_params, sizeof(ioc_fm_pcd_extract_entry_t)); + + compat_copy_keys(&compat_param->keys_params, ¶m->keys_params, compat); + + compat_param->id = ptr_to_compat(param->id); + } +} + --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_ioctls_fm_compat.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_ioctls_fm_compat.h @@ -0,0 +1,379 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + + @File lnxwrp_ioctls_fm_compat.h + + @Description FM PCD compat structures definition. + +*/ + +#ifndef __FM_COMPAT_IOCTLS_H +#define __FM_COMPAT_IOCTLS_H + +#include + +#define COMPAT_K_TO_US 0 /* copy from Kernel to User */ +#define COMPAT_US_TO_K 1 /* copy from User to Kernel */ + +#define COMPAT_COPY_K2US(dest, src, type) compat_copy_##type(src, dest, 0) +#define COMPAT_COPY_US2K(dest, src, type) compat_copy_##type(dest, src, 1) + +/* maping kernel pointers w/ UserSpace id's { */ +/* Because compat_ptr(ptr_to_compat(X)) != X, this way we cannot exchange pointers + back and forth (US - KS). compat_ptr is a cast and pointers are broken. */ +#define COMPAT_PTR2ID_ARRAY_MAX (256+1) /* first location is not used */ +#define COMPAT_PTR2ID_WATERMARK 0xface0000 +#define COMPAT_PTR2ID_WM_MASK 0xffff0000 + +void compat_del_ptr2id(void *p); +compat_uptr_t compat_add_ptr2id(void *p); +compat_uptr_t compat_get_ptr2id(void *p); +void *compat_get_id2ptr(compat_uptr_t comp); +/* } maping kernel pointers w/ UserSpace id's */ + +/* pcd compat structures { */ +typedef struct ioc_compat_fm_pcd_cc_node_remove_key_params_t { + compat_uptr_t id; + uint8_t key_indx; +} ioc_compat_fm_pcd_cc_node_remove_key_params_t; + +typedef union ioc_compat_fm_pcd_plcr_next_engine_params_u { + ioc_fm_pcd_done_action action; + compat_uptr_t p_profile; + compat_uptr_t p_direct_scheme; +} ioc_compat_fm_pcd_plcr_next_engine_params_u; + +typedef struct ioc_compat_fm_pcd_plcr_profile_params_t { + bool modify; + union { + struct { + ioc_fm_pcd_profile_type_selection profile_type; + compat_uptr_t p_port; + uint16_t relative_profile_id; + } new_params; + compat_uptr_t p_profile; + } profile_select; + ioc_fm_pcd_plcr_algorithm_selection alg_selection; + ioc_fm_pcd_plcr_color_mode color_mode; + + union { + ioc_fm_pcd_plcr_color dflt_color; + ioc_fm_pcd_plcr_color override; + } color; + + ioc_fm_pcd_plcr_non_passthrough_alg_param_t non_passthrough_alg_param; + + ioc_fm_pcd_engine next_engine_on_green; + ioc_compat_fm_pcd_plcr_next_engine_params_u params_on_green; + + ioc_fm_pcd_engine next_engine_on_yellow; + ioc_compat_fm_pcd_plcr_next_engine_params_u params_on_yellow; + + ioc_fm_pcd_engine next_engine_on_red; + ioc_compat_fm_pcd_plcr_next_engine_params_u params_on_red; + + bool trap_profile_on_flow_A; + bool trap_profile_on_flow_B; + bool trap_profile_on_flow_C; + compat_uptr_t id; +} ioc_compat_fm_pcd_plcr_profile_params_t; + +typedef struct ioc_compat_fm_obj_t { + compat_uptr_t obj; +} ioc_compat_fm_obj_t; + +typedef struct ioc_compat_fm_pcd_kg_scheme_select_t { + bool direct; + compat_uptr_t scheme_id; +} ioc_compat_fm_pcd_kg_scheme_select_t; + +typedef struct ioc_compat_fm_pcd_port_schemes_params_t { + uint8_t num_of_schemes; + compat_uptr_t schemes_ids [IOC_FM_PCD_KG_NUM_OF_SCHEMES]; +} ioc_compat_fm_pcd_port_schemes_params_t; + +typedef struct ioc_compat_fm_pcd_net_env_params_t { + uint8_t num_of_distinction_units; + ioc_fm_pcd_distinction_unit_t units[IOC_FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS]; /* same structure*/ + compat_uptr_t id; +} ioc_compat_fm_pcd_net_env_params_t; + +typedef struct ioc_compat_fm_pcd_prs_sw_params_t { + bool override; + uint32_t size; + uint16_t base; + compat_uptr_t p_code; + uint32_t sw_prs_data_params[IOC_FM_PCD_PRS_NUM_OF_HDRS]; + uint8_t num_of_labels; + ioc_fm_pcd_prs_label_params_t labels_table[IOC_FM_PCD_PRS_NUM_OF_LABELS]; +} ioc_compat_fm_pcd_prs_sw_params_t; + +typedef struct ioc_compat_fm_pcd_cc_next_kg_params_t { + bool override_fqid; + uint32_t new_fqid; + compat_uptr_t p_direct_scheme; +} ioc_compat_fm_pcd_cc_next_kg_params_t; + +typedef struct ioc_compat_fm_pcd_cc_next_cc_params_t { + compat_uptr_t cc_node_id; +} ioc_compat_fm_pcd_cc_next_cc_params_t; + +typedef struct ioc_compat_fm_pcd_cc_next_engine_params_t { + ioc_fm_pcd_engine next_engine; + union { + ioc_compat_fm_pcd_cc_next_cc_params_t cc_params; /**< compat structure*/ + ioc_fm_pcd_cc_next_plcr_params_t plcr_params; /**< same structure*/ + ioc_fm_pcd_cc_next_enqueue_params_t enqueue_params; /**< same structure*/ + ioc_compat_fm_pcd_cc_next_kg_params_t kg_params; /**< compat structure*/ + } params; +#ifdef FM_PCD_CC_MANIP + compat_uptr_t p_manip; +#endif +} ioc_compat_fm_pcd_cc_next_engine_params_t; + + +typedef struct ioc_compat_fm_pcd_cc_grp_params_t { + uint8_t num_of_distinction_units; /**< up to 4 */ + uint8_t unit_ids [IOC_FM_PCD_MAX_NUM_OF_CC_UNITS]; + /**< Indexes of the units as defined in + FM_PCD_SetNetEnvCharacteristics */ + ioc_compat_fm_pcd_cc_next_engine_params_t next_engine_per_entries_in_grp[IOC_FM_PCD_MAX_NUM_OF_CC_ENTRIES_IN_GRP]; + /**< Max size is 16 - if only one group used */ +} ioc_compat_fm_pcd_cc_grp_params_t; + +typedef struct ioc_compat_fm_pcd_cc_tree_params_t { + compat_uptr_t net_env_id; + uint8_t num_of_groups; + ioc_compat_fm_pcd_cc_grp_params_t fm_pcd_cc_group_params [IOC_FM_PCD_MAX_NUM_OF_CC_GROUPS]; + compat_uptr_t id; +} ioc_compat_fm_pcd_cc_tree_params_t; + +typedef struct ioc_compat_fm_pcd_cc_tree_modify_next_engine_params_t { + compat_uptr_t id; + uint8_t grp_indx; + uint8_t indx; + ioc_compat_fm_pcd_cc_next_engine_params_t cc_next_engine_params; +} ioc_compat_fm_pcd_cc_tree_modify_next_engine_params_t; + +typedef struct ioc_compat_fm_pcd_cc_key_params_t { + compat_uptr_t p_key; + compat_uptr_t p_mask; + ioc_compat_fm_pcd_cc_next_engine_params_t cc_next_engine_params; /**< compat structure*/ +} ioc_compat_fm_pcd_cc_key_params_t; + +typedef struct ioc_compat_keys_params_t { + uint8_t num_of_keys; + uint8_t key_size; + ioc_compat_fm_pcd_cc_key_params_t key_params[IOC_FM_PCD_MAX_NUM_OF_KEYS]; /**< compat structure*/ + ioc_compat_fm_pcd_cc_next_engine_params_t cc_next_engine_params_for_miss; /**< compat structure*/ +} ioc_compat_keys_params_t; + +typedef struct ioc_compat_fm_pcd_cc_node_params_t { + ioc_fm_pcd_extract_entry_t extract_cc_params; /**< same structure*/ + ioc_compat_keys_params_t keys_params; /**< compat structure*/ + compat_uptr_t id; +} ioc_compat_fm_pcd_cc_node_params_t; + +typedef struct ioc_compat_fm_pcd_cc_node_modify_key_params_t { + compat_uptr_t id; + uint8_t key_indx; + uint8_t key_size; + compat_uptr_t p_key; + compat_uptr_t p_mask; +} ioc_compat_fm_pcd_cc_node_modify_key_params_t; + +typedef struct ioc_compat_fm_pcd_cc_node_modify_key_and_next_engine_params_t { + compat_uptr_t id; + uint8_t key_indx; + uint8_t key_size; + ioc_compat_fm_pcd_cc_key_params_t key_params; +} ioc_compat_fm_pcd_cc_node_modify_key_and_next_engine_params_t; + +typedef struct ioc_compat_fm_port_pcd_plcr_params_t { + compat_uptr_t plcr_profile_id; +} ioc_compat_fm_port_pcd_plcr_params_t; + +typedef struct ioc_compat_fm_port_pcd_cc_params_t { + compat_uptr_t cc_tree_id; +} ioc_compat_fm_port_pcd_cc_params_t; + +typedef struct ioc_compat_fm_port_pcd_kg_params_t { + uint8_t num_of_schemes; + compat_uptr_t schemes_ids[IOC_FM_PCD_KG_NUM_OF_SCHEMES]; + bool direct_scheme; + compat_uptr_t direct_scheme_id; +} ioc_compat_fm_port_pcd_kg_params_t; + +typedef struct ioc_compat_fm_port_pcd_params_t { + ioc_fm_port_pcd_support pcd_support; + compat_uptr_t net_env_id; + compat_uptr_t p_prs_params; + compat_uptr_t p_cc_params; + compat_uptr_t p_kg_params; + compat_uptr_t p_plcr_params; +} ioc_compat_fm_port_pcd_params_t; + +typedef struct ioc_compat_fm_pcd_kg_cc_t { + compat_uptr_t tree_id; + uint8_t grp_id; + bool plcr_next; + bool bypass_plcr_profile_generation; + ioc_fm_pcd_kg_plcr_profile_t plcr_profile; +} ioc_compat_fm_pcd_kg_cc_t; + +typedef struct ioc_compat_fm_pcd_kg_scheme_params_t { + bool modify; + union + { + uint8_t relative_scheme_id; + compat_uptr_t scheme_id; + } scm_id; + bool always_direct; + struct + { + compat_uptr_t net_env_id; + uint8_t num_of_distinction_units; + uint8_t unit_ids[IOC_FM_PCD_MAX_NUM_OF_DISTINCTION_UNITS]; + } netEnvParams; + bool use_hash; + ioc_fm_pcd_kg_key_extract_and_hash_params_t key_extract_and_hash_params; + bool bypass_fqid_generation; + uint32_t base_fqid; + uint8_t numOfUsedExtractedOrs; + ioc_fm_pcd_kg_extracted_or_params_t extracted_ors[IOC_FM_PCD_KG_NUM_OF_GENERIC_REGS]; + ioc_fm_pcd_engine next_engine; + union{ + ioc_fm_pcd_done_action done_action; + ioc_fm_pcd_kg_plcr_profile_t plcr_profile; + ioc_compat_fm_pcd_kg_cc_t cc; + } kg_next_engine_params; + ioc_fm_pcd_kg_scheme_counter_t scheme_counter; + compat_uptr_t id; +} ioc_compat_fm_pcd_kg_scheme_params_t; + +typedef struct ioc_compat_fm_pcd_cc_node_modify_next_engine_params_t { + compat_uptr_t id; + uint8_t key_indx; + uint8_t key_size; + ioc_compat_fm_pcd_cc_next_engine_params_t cc_next_engine_params; +} ioc_compat_fm_pcd_cc_node_modify_next_engine_params_t; +/* } pcd compat structures */ + +/* pcd compat functions { */ +void compat_copy_fm_pcd_plcr_profile( + ioc_compat_fm_pcd_plcr_profile_params_t *compat_param, + ioc_fm_pcd_plcr_profile_params_t *param, + uint8_t compat); + +void compat_copy_fm_pcd_cc_key( + ioc_compat_fm_pcd_cc_key_params_t *compat_param, + ioc_fm_pcd_cc_key_params_t *param, + uint8_t compat); + +void compat_copy_fm_pcd_cc_node_modify_key_and_next_engine( + ioc_compat_fm_pcd_cc_node_modify_key_and_next_engine_params_t *compat_param, + ioc_fm_pcd_cc_node_modify_key_and_next_engine_params_t *param, + uint8_t compat); + +void compat_copy_fm_pcd_cc_node_modify_next_engine( + ioc_compat_fm_pcd_cc_node_modify_next_engine_params_t *compat_param, + ioc_fm_pcd_cc_node_modify_next_engine_params_t *param, + uint8_t compat); + +void compat_fm_pcd_cc_tree_modify_next_engine( + ioc_compat_fm_pcd_cc_tree_modify_next_engine_params_t *compat_param, + ioc_fm_pcd_cc_tree_modify_next_engine_params_t *param, + uint8_t compat); + +void compat_copy_fm_pcd_cc_grp( + ioc_compat_fm_pcd_cc_grp_params_t *compat_param, + ioc_fm_pcd_cc_grp_params_t *param, + uint8_t compat); + +void compat_copy_fm_pcd_cc_tree( + ioc_compat_fm_pcd_cc_tree_params_t *compat_param, + ioc_fm_pcd_cc_tree_params_t *param, + uint8_t compat); + +void compat_fm_pcd_prs_sw( + ioc_compat_fm_pcd_prs_sw_params_t *compat_param, + ioc_fm_pcd_prs_sw_params_t *param, + uint8_t compat); + +void compat_copy_fm_pcd_kg_scheme( + ioc_compat_fm_pcd_kg_scheme_params_t *compat_param, + ioc_fm_pcd_kg_scheme_params_t *param, + uint8_t compat); + +void compat_copy_fm_pcd_kg_scheme_select( + ioc_compat_fm_pcd_kg_scheme_select_t *compat_param, + ioc_fm_pcd_kg_scheme_select_t *param, + uint8_t compat); + +void compat_copy_fm_pcd_kg_schemes_params( + ioc_compat_fm_pcd_port_schemes_params_t *compat_param, + ioc_fm_pcd_port_schemes_params_t *param, + uint8_t compat); + +void compat_copy_fm_port_pcd_kg( + ioc_compat_fm_port_pcd_kg_params_t *compat_param, + ioc_fm_port_pcd_kg_params_t *param, + uint8_t compat); + +void compat_copy_fm_port_pcd( + ioc_compat_fm_port_pcd_params_t *compat_param, + ioc_fm_port_pcd_params_t *param, + uint8_t compat); + +void compat_copy_fm_pcd_net_env( + ioc_compat_fm_pcd_net_env_params_t *compat_param, + ioc_fm_pcd_net_env_params_t *param, + uint8_t compat); + +void compat_copy_fm_pcd_cc_node_modify_key( + ioc_compat_fm_pcd_cc_node_modify_key_params_t *compat_param, + ioc_fm_pcd_cc_node_modify_key_params_t *param, + uint8_t compat); + +void compat_copy_keys( + ioc_compat_keys_params_t *compat_param, + ioc_keys_params_t *param, + uint8_t compat); + +void compat_copy_fm_pcd_cc_node( + ioc_compat_fm_pcd_cc_node_params_t *compat_param, + ioc_fm_pcd_cc_node_params_t *param, + uint8_t compat); + +/* } pcd compat functions */ +#endif --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_resources.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_resources.c @@ -0,0 +1,1172 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + + @File lnxwrp_resources.c + + @Description FMD wrapper resource allocation functions. + +*/ + +#include +#if defined(CONFIG_MODVERSIONS) && !defined(MODVERSIONS) +#define MODVERSIONS +#endif +#ifdef MODVERSIONS +#include +#endif /* MODVERSIONS */ +#include +#include +#include +#include + +#include "lnxwrp_resources.h" + +extern int fsl_fman_phy_maxfrm; /* MAC file */ + +static struct device_node *match_mac_to_dpaa_port(struct device_node + *enet_mac_node) +{ + struct device_node *dpaa_node = NULL; + struct device_node *dpaa_itf = NULL; + + /* find DPAA node starting from root */ + dpaa_node = of_find_compatible_node(NULL, NULL, "fsl,dpaa"); + if (dpaa_node) { + /* for all dpaa ports check which one refers this mac node. */ + for_each_child_of_node(dpaa_node, dpaa_itf) { + struct device_node *by_handle_enet_mac_node = NULL; + const phandle *phandle_prop = NULL; + int lenp = 0; + + phandle_prop = + (typeof(phandle_prop)) + of_get_property(dpaa_itf, "fsl,fman-mac", + &lenp); + if (phandle_prop == NULL) + continue; + + if (WARN_ON(lenp != sizeof(phandle))) + return NULL; + + by_handle_enet_mac_node = + of_find_node_by_phandle(*phandle_prop); + if (unlikely(by_handle_enet_mac_node == NULL)) + return NULL; + + /* check */ + if (by_handle_enet_mac_node == enet_mac_node) { + of_node_put(by_handle_enet_mac_node); + return dpaa_itf; + } + + of_node_put(by_handle_enet_mac_node); + } + of_node_put(dpaa_node); + } + + return NULL; +} + +static struct device_node *match_fman_port_to_mac(struct device_node *fm_node, + struct device_node + *fm_port_node) +{ + struct device_node *fm_node_idx = NULL; + + /* for all enet nodes (macs) check which one refers this FMan port. */ + for_each_child_of_node(fm_node, fm_node_idx) { + if (of_device_is_compatible(fm_node_idx, "fsl,fman-1g-mac") || + of_device_is_compatible(fm_node_idx, + "fsl,fman-10g-mac")) { + struct device_node *fman_port_node_rx = NULL; + struct device_node *fman_port_node_tx = NULL; + /* RX is first */ + fman_port_node_rx = of_parse_phandle(fm_node_idx, + "fsl,port-handles", 0); + if (unlikely(fman_port_node_rx == NULL)) + continue; + /* TX is second */ + fman_port_node_tx = of_parse_phandle(fm_node_idx, + "fsl,port-handles", 1); + if (unlikely(fman_port_node_tx == NULL)) { + of_node_put(fman_port_node_rx); + continue; + } + + /* check */ + if (fman_port_node_rx == fm_port_node + || fman_port_node_tx == fm_port_node) { + of_node_put(fman_port_node_rx); + of_node_put(fman_port_node_tx); + return fm_node_idx; + } + + of_node_put(fman_port_node_rx); + of_node_put(fman_port_node_tx); + } + } + + return NULL; +} + +static bool is_fman_port_active(struct device_node *fm_node, + struct device_node *fm_port_node) +{ + struct device_node *enet_mac_node = NULL; + struct device_node *itf_node = NULL; + + /* Which MAC node refers to this FMan port. */ + enet_mac_node = match_fman_port_to_mac(fm_node, fm_port_node); + + if (unlikely(enet_mac_node == NULL)) + return false; + + /* Which dpaa port node refers this MAC node. */ + itf_node = match_mac_to_dpaa_port(enet_mac_node); + of_node_put(enet_mac_node); + + if (unlikely(!itf_node)) + return false; + + /* check if itf (DPAA ports) is available. + * if available, means that the FMan port is + * also available - return true + */ + if (!of_device_is_available(itf_node)) { + of_node_put(itf_node); + return false; + } + of_node_put(itf_node); + + return true; +} + +int fm_set_active_fman_ports(struct platform_device *of_dev, + t_LnxWrpFmDev *p_LnxWrpFmDev) +{ + struct device_node *fm_node = NULL; + struct device_node *fm_port_node = NULL; + + memset(&p_LnxWrpFmDev->fm_active_ports_info, 0, + sizeof(struct fm_active_ports)); + + /* get FMan node */ + fm_node = of_dev->dev.of_node; + + /* for all ports which belong to this FMan, check if they are active. + * If active, set their parameters. */ + for_each_child_of_node(fm_node, fm_port_node) { + + /* OH FMan ports */ + if (of_device_is_compatible(fm_port_node, + "fsl,fman-port-oh")) + /* all oh ports are active */ + p_LnxWrpFmDev->fm_active_ports_info.num_oh_ports++; + + if (!is_fman_port_active(fm_node, fm_port_node)) + continue; + + /* 10g TX FMan ports */ + if (of_device_is_compatible(fm_port_node, + "fsl,fman-port-10g-tx")) + p_LnxWrpFmDev->fm_active_ports_info.num_tx10_ports++; + + /* 10g RX FMan ports */ + else if (of_device_is_compatible(fm_port_node, + "fsl,fman-port-10g-rx")) + p_LnxWrpFmDev->fm_active_ports_info.num_rx10_ports++; + + /* 1G TX FMan ports */ + else if (of_device_is_compatible(fm_port_node, + "fsl,fman-port-1g-tx")) + p_LnxWrpFmDev->fm_active_ports_info.num_tx_ports++; + + /* 1G RX FMan ports */ + else if (of_device_is_compatible(fm_port_node, + "fsl,fman-port-1g-rx")) + p_LnxWrpFmDev->fm_active_ports_info.num_rx_ports++; + } + + /* If performance is needed no oh port is probed + * except the one used for host command. */ +#if defined(CONFIG_FMAN_DISABLE_OH_TO_REUSE_RESOURCES) + if (p_LnxWrpFmDev->fm_active_ports_info.num_oh_ports) + p_LnxWrpFmDev->fm_active_ports_info.num_oh_ports = 1; + + printk(KERN_WARNING "FMAN(%u)-Performance mode - no OH support...\n", + p_LnxWrpFmDev->id); +#endif + + return 0; +} + +#ifdef FM_FIFO_ALLOCATION_OLD_ALG +/* BPOOL size is constant and equal w/ DPA_BP_SIZE */ +static uint32_t get_largest_buf_size(uint32_t max_rx_frame_size, uint32_t buf_size) +{ + uint32_t priv_data_size = 16; /* DPA_PRIV_DATA_SIZE */ + uint32_t hash_results_size = 16; /* DPA_HASH_RESULTS_SIZE */ + uint32_t parse_results_size = + sizeof(t_FmPrsResult); /* DPA_PARSE_RESULTS_SIZE */ + uint32_t bp_head = priv_data_size + hash_results_size + + parse_results_size; /* DPA_BP_HEAD */ + uint32_t bp_size = bp_head + max_rx_frame_size + + NET_IP_ALIGN; /* DPA_BP_SIZE */ + + return CEIL_DIV(bp_size, buf_size); +} +#endif + +/* Calculate the fifosize based on MURAM allocation, number of ports, dpde + value and s/g software support (! Kernel does not suport s/g). + + Algorithm summary: + - Calculate the the minimum fifosize required for every type of port + (TX,RX for 1G, 2.5G and 10G). + - Set TX the minimum fifosize required. + - Distribute the remaining buffers (after all TX were set) to RX ports + based on: + 1G RX = Remaining_buffers * 1/(1+2.5+10) + 2.5G RX = Remaining_buffers * 2.5/(1+2.5+10) + 10G RX = Remaining_buffers * 10/(1+2.5+10) + - if the RX is smaller than the minimum required, then set the minimum + required + - In the end distribuite the leftovers if there are any (due to + unprecise calculus) or if over allocation cat some buffers from all RX + ports w/o pass over minimum required treshold, but if there must be + pass the treshold in order to cat the over allocation ,then this + configuration can not be set - KERN_ALERT. +*/ +int fm_precalculate_fifosizes(t_LnxWrpFmDev *p_LnxWrpFmDev, int muram_fifo_size) +{ + + /* input parameters */ + struct fm_active_ports *fm_active_ports_info = NULL; + int num_1g_ports = 0; + int num_2g5_ports = 0; + int num_10g_ports = 0; + int num_oh_ports = 0; + + /* output parameters */ + struct fm_resource_settings *fm_resource_settings_info = NULL; + int oh_buff = 0; + int tx_1g_bufs = 0, rx_1g_bufs = 0; + int tx_2g5_bufs = 0, rx_2g5_bufs = 0; + int tx_10g_bufs = 0, rx_10g_bufs = 0; + int err = 0; + + /* throughput parameters: divide it by 10 when used */ + int gb1g = 10, gb2g5 = 25, gb10g = 100, gb_sum = 0; + + /* buffers parameters */ + int buf_size = 0x100; /* Buffer unit size */ + int total_no_buffers = 0; /* Calculus based on MURAM size for + fifos and buf. unit size */ + + int shared_ext_buff = 0; /* External buffers allocated - LLD + boundaries:DEFAULT_PORT_extraSizeOfFifo */ + + int min_tx_1g_2g5_bufs = 0; /* minimum TX1g buffers required + (see refman.) */ + int min_tx_10g_bufs = 0; /* minimum TX10g buffers required + (see refman.) */ + int min_rx_bufs = 0; /* minimum RX buffers required (see refman.) */ + + /* Buffer sizes calculus */ + int max_frame_size = + fsl_fman_phy_maxfrm ? fsl_fman_phy_maxfrm : + CONFIG_DPA_MAX_FRM_SIZE; + int remaining_bufs = 0; + int rx_1g_bufs_ceil = 0, rx_2g5_bufs_ceil = 0, rx_10g_bufs_ceil = 0; + int rx_2g5_max_bufs = 0, rx_10g_max_bufs = 0; + int rx_1g_used = 0, rx_1g_2g5_used = 0, rx_1g_10g_used =0, + rx_2g5_used = 0, rx_2g5_10g_used = 0, rx_1g_2g5_10g_used = 0; + + /* overflow checking */ + int tot_rx_buffs, tot_tx_buffs, tot_oh_buffs, tot_used_buffs, + leftovers = 0; + int overflow = 0; + bool loop = false; + + /* check input parameters correctness */ + ASSERT_COND(p_LnxWrpFmDev != NULL); + fm_active_ports_info = &p_LnxWrpFmDev->fm_active_ports_info; + fm_resource_settings_info = &p_LnxWrpFmDev->fm_resource_settings_info; + ASSERT_COND(fm_active_ports_info != NULL); + ASSERT_COND(fm_resource_settings_info != NULL); + ASSERT_COND(fm_active_ports_info->num_tx_ports == + fm_active_ports_info->num_rx_ports); + ASSERT_COND(fm_active_ports_info->num_tx25_ports == + fm_active_ports_info->num_tx25_ports); + ASSERT_COND(fm_active_ports_info->num_tx10_ports == + fm_active_ports_info->num_tx10_ports); + ASSERT_COND(max_frame_size != 0); + ASSERT_COND(muram_fifo_size != 0); + + /* set input parameters */ + num_1g_ports = fm_active_ports_info->num_tx_ports; + num_2g5_ports = fm_active_ports_info->num_tx25_ports; + num_10g_ports = fm_active_ports_info->num_tx10_ports; + num_oh_ports = fm_active_ports_info->num_oh_ports; + + /* throughput calculus */ + gb_sum = gb1g * num_1g_ports + gb2g5 * num_2g5_ports + + gb10g * num_10g_ports; /* divide it by 10 */ + + /* Base buffer calculus */ + oh_buff = DPDE_1G + 4; /* should be: + get_largest_buf_size(max_frame_size, buf_size), + but LLD: DPDE + 4 */ + total_no_buffers = muram_fifo_size / buf_size; + + min_tx_1g_2g5_bufs = CEIL_DIV(max_frame_size, buf_size) + + DPDE_1G + 3 + 1; /* +1 to handle Jumbo Frames */ + min_tx_10g_bufs = CEIL_DIV(max_frame_size, buf_size) + + DPDE_10G + 3 + 1; /* +1 to handle Jumbo Frames */ + + { +#ifdef FM_FIFO_ALLOCATION_OLD_ALG + uint8_t fm_rev_major = 0; + fm_rev_major = + (uint8_t) ((* + ((volatile uint32_t *) + UINT_TO_PTR(p_LnxWrpFmDev->fmBaseAddr + + 0x000c30c4)) & 0xff00) >> 8); + + if (fm_rev_major < 4) + min_rx_bufs = + get_largest_buf_size(max_frame_size, + buf_size) + 7; + else +#endif + min_rx_bufs = 8; + } + + shared_ext_buff = num_10g_ports ? 32 : 16; /* LLD boundaries: + DEFAULT_PORT_extraSizeOfFifo */ + + /* TX ports will have minimum required buffers + Calculus of the remaining buffers for all RX ports */ + tx_1g_bufs = num_1g_ports ? min_tx_1g_2g5_bufs : 0; + tx_2g5_bufs = num_2g5_ports ? min_tx_1g_2g5_bufs : 0; + tx_10g_bufs = num_10g_ports ? min_tx_10g_bufs : 0; + + remaining_bufs = total_no_buffers - + oh_buff * num_oh_ports - + num_1g_ports * min_tx_1g_2g5_bufs - + num_2g5_ports * min_tx_1g_2g5_bufs - + num_10g_ports * min_tx_10g_bufs - shared_ext_buff; + + if (remaining_bufs < 0) { + printk(KERN_ALERT + "This configuration will not work due to low number of" + " buffers (%u buffers)...\n", + total_no_buffers); + err = -1; + goto precalculated_fifosize_out; + } + + /* Per port buffer size calculus + . for TX ports give always minimum required + . for RX ports give whatever left scaled per port type */ + /* ------------------------------------------------------- */ + if (num_1g_ports) { + rx_1g_bufs_ceil = + (gb_sum / + 10) ? CEIL_DIV(((remaining_bufs * gb1g) / 10), + (gb_sum / 10)) : 0; + rx_1g_bufs = MAX(min_rx_bufs, rx_1g_bufs_ceil); + rx_1g_used = rx_1g_bufs - rx_1g_bufs_ceil; /* always >= 0 */ + /* distribute to 2.5g and 10g ports */ + rx_1g_2g5_used = + (num_2g5_ports + + num_10g_ports) ? CEIL_DIV(rx_1g_used * num_1g_ports * + num_2g5_ports, + num_2g5_ports + + num_10g_ports) : 0; + rx_1g_10g_used = + (num_2g5_ports + + num_10g_ports) ? CEIL_DIV(rx_1g_used * num_1g_ports * + num_10g_ports, + num_2g5_ports + + num_10g_ports) : 0; + } + + if (num_2g5_ports) { + rx_2g5_bufs_ceil = + (gb_sum / + 10) ? CEIL_DIV(((remaining_bufs * gb2g5) / 10), + (gb_sum / 10)) : 0; + rx_2g5_max_bufs = MAX(min_rx_bufs, rx_2g5_bufs_ceil); + rx_2g5_bufs = + MAX(min_rx_bufs, rx_2g5_max_bufs - rx_1g_2g5_used); + rx_2g5_used = rx_2g5_bufs - rx_2g5_bufs_ceil; /* always >= 0 */ + /* distribute to 10g ports */ + rx_2g5_10g_used = + num_10g_ports ? CEIL_DIV(rx_2g5_used * num_2g5_ports, + num_10g_ports) : 0; + } + + if (num_10g_ports) { + rx_10g_bufs_ceil = + (gb_sum / + 10) ? CEIL_DIV(((remaining_bufs * gb10g) / 10), + (gb_sum / 10)) : 0; + rx_10g_max_bufs = MAX(min_rx_bufs, rx_10g_bufs_ceil); + /* keep count of all distribution */ + rx_1g_2g5_10g_used = rx_1g_10g_used + rx_2g5_10g_used; + rx_10g_bufs = + MAX(min_rx_bufs, + rx_10g_max_bufs - rx_1g_2g5_10g_used); + } + + /* overflow-leftover calculus */ + tot_rx_buffs = rx_1g_bufs * num_1g_ports + + rx_2g5_bufs * num_2g5_ports + rx_10g_bufs * num_10g_ports; + tot_tx_buffs = tx_1g_bufs * num_1g_ports + + tx_2g5_bufs * num_2g5_ports + tx_10g_bufs * num_10g_ports; + tot_oh_buffs = oh_buff * num_oh_ports; + tot_used_buffs = + tot_oh_buffs + tot_tx_buffs + tot_rx_buffs + shared_ext_buff; + + overflow = tot_used_buffs - total_no_buffers; + /* used more than available */ + if (overflow > 0) { + loop = true; + while (overflow > 0 && loop) { + loop = false; + if (overflow && num_10g_ports + && rx_10g_bufs > min_rx_bufs) { + rx_10g_bufs--; + overflow -= num_10g_ports; + loop = true; + } + if (overflow && num_2g5_ports + && rx_2g5_bufs > min_rx_bufs) { + rx_2g5_bufs--; + overflow -= num_2g5_ports; + loop = true; + } + if (overflow && num_1g_ports + && rx_1g_bufs > min_rx_bufs) { + rx_1g_bufs--; + overflow -= num_1g_ports; + loop = true; + } + } + + if (overflow > 0) { + printk(KERN_ALERT + "This configuration will not work due to over" + " buffer allocation (%d buffers)...\n", + overflow); + err = -1; + goto precalculated_fifosize_out; + } + } + /* left a few buffers */ + else if (overflow < 0) { + leftovers = total_no_buffers - tot_used_buffs; + loop = true; + while (leftovers > 0 && loop) { + loop = false; + if (leftovers && num_1g_ports) { + rx_1g_bufs++; + leftovers -= num_1g_ports; + loop = true; + } + + if (leftovers && num_2g5_ports) { + rx_2g5_bufs++; + leftovers -= num_2g5_ports; + loop = true; + } + + if (leftovers && num_10g_ports) { + rx_10g_bufs++; + leftovers -= num_10g_ports; + loop = true; + } + } + } + + /* set fifosizes for this FMan ports */ + fm_resource_settings_info->tx1g_num_buffers = tx_1g_bufs; + fm_resource_settings_info->rx1g_num_buffers = rx_1g_bufs; + fm_resource_settings_info->tx2g5_num_buffers = tx_2g5_bufs; + fm_resource_settings_info->rx2g5_num_buffers = rx_2g5_bufs; + fm_resource_settings_info->tx10g_num_buffers = tx_10g_bufs; + fm_resource_settings_info->rx10g_num_buffers = rx_10g_bufs; + fm_resource_settings_info->oh_num_buffers = oh_buff; + fm_resource_settings_info->shared_ext_buffers = shared_ext_buff; + +precalculated_fifosize_out: + printk(KERN_INFO " FMAN(%u) Fifo size settings:\n", + p_LnxWrpFmDev->id); + printk(KERN_INFO " - Total buffers available(%u - 256B/buffer)\n", + total_no_buffers); + printk(KERN_INFO " - Total throughput(%uGbps)\n", (gb_sum / 10)); + printk(KERN_INFO " - Max frame size(%uB)\n", max_frame_size); + if (num_1g_ports) { + printk(KERN_INFO + " - 1G ports TX %u(%u bufs set (min: %u))\n", + num_1g_ports, tx_1g_bufs, min_tx_1g_2g5_bufs); + printk(KERN_INFO + " - 1G ports RX %u(%u bufs set (min: %u))\n", + num_1g_ports, rx_1g_bufs, min_rx_bufs); + } + if (num_2g5_ports) { + printk(KERN_INFO + " - 2.5G ports TX %u(%u bufs set (min: %u))\n", + num_2g5_ports, tx_2g5_bufs, min_tx_1g_2g5_bufs); + printk(KERN_INFO + " - 2.5G ports RX %u(%u bufs set (min: %u))\n", + num_2g5_ports, rx_2g5_bufs, min_rx_bufs); + } + if (num_10g_ports) { + printk(KERN_INFO + " - 10G ports TX %u(%u bufs set (min: %u))\n", + num_10g_ports, tx_10g_bufs, min_tx_10g_bufs); + printk(KERN_INFO + " - 10G ports RX %u(%u bufs set (min: %u))\n", + num_10g_ports, rx_10g_bufs, min_rx_bufs); + } + if (num_oh_ports) + printk(KERN_INFO " - OH-HC ports %u(%u)\n", num_oh_ports, + oh_buff); + printk(KERN_INFO " - Shared extra buffers(%u)\n", shared_ext_buff); + + return err; +} + +int fm_set_precalculate_fifosize(t_LnxWrpFmPortDev *p_LnxWrpFmPortDev) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = + (t_LnxWrpFmDev *) p_LnxWrpFmPortDev->h_LnxWrpFmDev; + struct fm_resource_settings *fm_resource_settings_info = NULL; + struct fm_active_ports *fm_active_ports_info = NULL; + t_FmPortRsrc portRsrc; + t_Error errCode; + uint32_t buf_size = 0x100; + + ASSERT_COND(p_LnxWrpFmDev != NULL); + fm_resource_settings_info = &p_LnxWrpFmDev->fm_resource_settings_info; + fm_active_ports_info = &p_LnxWrpFmDev->fm_active_ports_info; + + memset(&portRsrc, 0, sizeof(t_FmPortRsrc)); + +/* IF 1G PORT */ + if (p_LnxWrpFmPortDev->settings.param.portType == e_FM_PORT_TYPE_TX) { + portRsrc.num = + fm_resource_settings_info->tx1g_num_buffers * buf_size; + portRsrc.extra = 0; + } else if (p_LnxWrpFmPortDev->settings.param.portType == + e_FM_PORT_TYPE_RX) { + portRsrc.num = + fm_resource_settings_info->rx1g_num_buffers * buf_size; + portRsrc.extra = + fm_resource_settings_info->shared_ext_buffers * + buf_size; + } +/* IF 2.5G PORT */ + /* TODO: Not supported by LLD yet. */ + +/* IF 10G PORT */ + else if (p_LnxWrpFmPortDev->settings.param.portType == + e_FM_PORT_TYPE_TX_10G) { + portRsrc.num = + fm_resource_settings_info->tx10g_num_buffers * + buf_size; + portRsrc.extra = 0; + } else if (p_LnxWrpFmPortDev->settings.param.portType == + e_FM_PORT_TYPE_RX_10G) { + portRsrc.num = + fm_resource_settings_info->rx10g_num_buffers * + buf_size; + portRsrc.extra = + fm_resource_settings_info->shared_ext_buffers * + buf_size; + } else { /* IF OH PORT */ + portRsrc.num = + fm_resource_settings_info->oh_num_buffers * buf_size; + portRsrc.extra = 0; + } + + errCode = FM_PORT_SetSizeOfFifo(p_LnxWrpFmPortDev->h_Dev, &portRsrc); + if (errCode != E_OK) { + printk(KERN_WARNING + "FM_PORT_SetSizeOfFifo failed (errCode:0x%2x)", + errCode); + return -EIO; + } + + return 0; +} + +/* Compute FMan open DMA based on total number of open DMAs and + * number of available FMan ports. + * + * By default 10g ports are set to input parameters. The other ports + * tries to keep the proportion rx=2tx open DMAs or thresholds. + * + * If leftovers, then those will be set as shared. + * + * If after computing overflow appears, then it decrements open DMA + * for all ports w/o cross the thresholds. If the thresholds are meet + * and is still overflow, then it returns error. + */ +int fm_precalculate_open_dma(t_LnxWrpFmDev *p_LnxWrpFmDev, + int max_fm_open_dma, + int default_tx_10g_dmas, + int default_rx_10g_dmas, + int min_tx_10g_treshold, int min_rx_10g_treshold) +{ + /* input parameters */ + struct fm_active_ports *fm_active_ports_info = NULL; + int num_1g_ports = 0; + int num_2g5_ports = 0; + int num_10g_ports = 0; + int num_oh_ports = 0; + + /* output parameters */ + struct fm_resource_settings *fm_resource_settings_info = NULL; + int tx_1g_dmas = 0, rx_1g_dmas = 0; + int tx_2g5_dmas = 0, rx_2g5_dmas = 0; + int tx_10g_dmas = 0, rx_10g_dmas = 0; + int oh_dmas = 0; + int shared_ext_open_dma = 0; + int err = 0; + + /* open dma calculus */ + int remaing_dmas = 0; + int rx_tx_raport = + FM_OPENDMA_RX_TX_RAPORT; /* RX = FM_OPENDMA_RX_TX_RAPORT *TX */ + int min_tx_1_2g5_treshold = 1; + int min_rx_1_2g5_treshold = 1; + int max_open_dma_treshold = 16; /* LLD: MAX_NUM_OF_DMAS */ + int max_ext_open_dma_treshold = 8; /* LLD: MAX_NUM_OF_EXTRA_DMAS */ + + int open_dmas_computed = 0; + int weighted_remaining_ports = 0; + int overflow = 0; + bool re_loop = false; + + /* check input parameters correctness */ + ASSERT_COND(p_LnxWrpFmDev != NULL); + fm_active_ports_info = &p_LnxWrpFmDev->fm_active_ports_info; + fm_resource_settings_info = &p_LnxWrpFmDev->fm_resource_settings_info; + ASSERT_COND(fm_active_ports_info != NULL); + ASSERT_COND(fm_resource_settings_info != NULL); + ASSERT_COND(fm_active_ports_info->num_tx_ports == + fm_active_ports_info->num_rx_ports); + ASSERT_COND(fm_active_ports_info->num_tx25_ports == + fm_active_ports_info->num_tx25_ports); + ASSERT_COND(fm_active_ports_info->num_tx10_ports == + fm_active_ports_info->num_tx10_ports); + ASSERT_COND(min_tx_10g_treshold <= max_open_dma_treshold); + ASSERT_COND(min_tx_10g_treshold <= max_open_dma_treshold); + + /* set input parameters */ + num_1g_ports = fm_active_ports_info->num_tx_ports; + num_2g5_ports = fm_active_ports_info->num_tx25_ports; + num_10g_ports = fm_active_ports_info->num_tx10_ports; + num_oh_ports = fm_active_ports_info->num_oh_ports; + + /* compute open DMAs per port */ + /* ------------------------------------------------------- */ + if (num_10g_ports) { + tx_10g_dmas = default_tx_10g_dmas; /* per 10G TX port */ + rx_10g_dmas = default_rx_10g_dmas; /* per 10G RX port */ + } + if (num_oh_ports) + oh_dmas = 1; /* per OH port */ + + /* should this be null? or LLD: + DEFAULT_PORT_extraNumOfOpenDmas:10g-8,else 1 */ + shared_ext_open_dma = 0; + + /* based on total number of ports set open DMAs for all other ports */ + remaing_dmas = max_fm_open_dma - + (oh_dmas * num_oh_ports) - + (tx_10g_dmas * num_10g_ports + rx_10g_dmas * num_10g_ports) - + shared_ext_open_dma; + + if (remaing_dmas < 0) { + printk(KERN_ALERT + "This configuration will not work due to low number" + " of open dmas (%u open dmas)...\n", + max_fm_open_dma); + err = -1; + goto precalculated_open_dma_out; + } + + weighted_remaining_ports = + /*tx */ num_1g_ports * rx_tx_raport + /*rx */ num_1g_ports + + /*tx */ num_2g5_ports * rx_tx_raport + /*rx */ num_2g5_ports; + + /* compute the other ports */ + if (num_1g_ports) { + tx_1g_dmas = + MAX(MIN + (ROUND_DIV + (remaing_dmas, weighted_remaining_ports), + max_open_dma_treshold), min_tx_1_2g5_treshold); + rx_1g_dmas = + MAX(MIN + (ROUND_DIV + ((remaing_dmas * rx_tx_raport), + weighted_remaining_ports), + max_open_dma_treshold), min_rx_1_2g5_treshold); + } + if (num_2g5_ports) { + tx_2g5_dmas = + MAX(MIN + (CEIL_DIV(remaing_dmas, weighted_remaining_ports), + max_open_dma_treshold), min_tx_1_2g5_treshold); + rx_2g5_dmas = + MAX(MIN + (CEIL_DIV + ((remaing_dmas * rx_tx_raport), + weighted_remaining_ports), + max_open_dma_treshold), min_rx_1_2g5_treshold); + + } + + /* Check if these settings is not exceding treshold */ + open_dmas_computed = num_1g_ports * tx_1g_dmas + + num_1g_ports * rx_1g_dmas + + num_2g5_ports * tx_2g5_dmas + + num_2g5_ports * rx_2g5_dmas + + num_10g_ports * tx_10g_dmas + + num_10g_ports * rx_10g_dmas + + num_oh_ports * oh_dmas + shared_ext_open_dma; + + /* overflow-leftover calculus */ + overflow = open_dmas_computed - max_fm_open_dma; + re_loop = true; + while (overflow > 0 && re_loop == true) { + re_loop = false; + if (num_1g_ports && overflow + && rx_1g_dmas > min_rx_1_2g5_treshold) { + rx_1g_dmas--; + overflow -= num_1g_ports; + re_loop = true; + } + if (num_2g5_ports && overflow + && rx_2g5_dmas > min_rx_1_2g5_treshold) { + rx_2g5_dmas--; + overflow -= num_2g5_ports; + re_loop = true; + } + if (num_10g_ports && overflow + && rx_10g_dmas > min_rx_10g_treshold) { + rx_10g_dmas--; + overflow -= num_10g_ports; + re_loop = true; + } + + if (num_1g_ports && overflow + && tx_1g_dmas > min_tx_1_2g5_treshold) { + tx_1g_dmas--; + overflow -= num_1g_ports; + re_loop = true; + } + if (num_2g5_ports && overflow + && tx_2g5_dmas > min_tx_1_2g5_treshold) { + tx_2g5_dmas--; + overflow -= num_2g5_ports; + re_loop = true; + } + if (num_10g_ports && overflow + && tx_10g_dmas > min_tx_10g_treshold) { + tx_10g_dmas--; + overflow -= num_10g_ports; + re_loop = true; + } + } + + if (overflow > 0) { + printk(KERN_ALERT + "This configuration will not work due to over open dma" + " allocation (%d open dmas)...\n", + overflow); + err = -1; + goto precalculated_open_dma_out; + } + + /* could remain leftovers... e.g. overflow=1, + 2ports => leftover=1 => shared=1 */ + open_dmas_computed = num_1g_ports * tx_1g_dmas + + num_1g_ports * rx_1g_dmas + + num_2g5_ports * tx_2g5_dmas + + num_2g5_ports * rx_2g5_dmas + + num_10g_ports * tx_10g_dmas + + num_10g_ports * rx_10g_dmas + + num_oh_ports * oh_dmas + shared_ext_open_dma; + + if (max_fm_open_dma - open_dmas_computed > 0) + shared_ext_open_dma = + MIN(shared_ext_open_dma + max_fm_open_dma - + open_dmas_computed, max_ext_open_dma_treshold); + + /* set open dmas */ + fm_resource_settings_info->tx_1g_dmas = tx_1g_dmas; + fm_resource_settings_info->rx_1g_dmas = rx_1g_dmas; + fm_resource_settings_info->tx_2g5_dmas = tx_2g5_dmas; + fm_resource_settings_info->rx_2g5_dmas = rx_2g5_dmas; + fm_resource_settings_info->tx_10g_dmas = tx_10g_dmas; + fm_resource_settings_info->rx_10g_dmas = rx_10g_dmas; + fm_resource_settings_info->oh_dmas = oh_dmas; + fm_resource_settings_info->shared_ext_open_dma = shared_ext_open_dma; + +precalculated_open_dma_out: + printk(KERN_INFO " FMAN(%u) open dma settings:\n", + p_LnxWrpFmDev->id); + printk(KERN_INFO " - Total open dma available(%u)\n", + max_fm_open_dma); + if (num_1g_ports) { + printk(KERN_INFO " - 1G ports TX %u(%u)\n", num_1g_ports, + tx_1g_dmas); + printk(KERN_INFO " - 1G ports RX %u(%u)\n", num_1g_ports, + rx_1g_dmas); + } + if (num_2g5_ports) { + printk(KERN_INFO " - 2.5G ports TX %u(%u)\n", num_2g5_ports, + tx_2g5_dmas); + printk(KERN_INFO " - 2.5G ports RX %u(%u)\n", num_2g5_ports, + tx_2g5_dmas); + } + if (num_10g_ports) { + printk(KERN_INFO " - 10G ports TX %u(%u)\n", num_10g_ports, + tx_10g_dmas); + printk(KERN_INFO " - 10G ports RX %u(%u)\n", num_10g_ports, + rx_10g_dmas); + } + if (num_oh_ports) + printk(KERN_INFO " - OH-HC ports %u(%u)\n", num_oh_ports, + oh_dmas); + printk(KERN_INFO " - Shared extra open dma(%u)\n", + shared_ext_open_dma ? shared_ext_open_dma : 0); + + return err; +} + +int fm_set_precalculate_open_dma(t_LnxWrpFmPortDev *p_LnxWrpFmPortDev) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = + (t_LnxWrpFmDev *) p_LnxWrpFmPortDev->h_LnxWrpFmDev; + struct fm_resource_settings *fm_resource_settings_info = NULL; + t_FmPortRsrc numOfOpenDmas; + t_Error errCode; + + ASSERT_COND(p_LnxWrpFmDev != NULL); + fm_resource_settings_info = &p_LnxWrpFmDev->fm_resource_settings_info; + + memset(&numOfOpenDmas, 0, sizeof(t_FmPortRsrc)); + +/* IF 1G PORT */ + if (p_LnxWrpFmPortDev->settings.param.portType == e_FM_PORT_TYPE_TX) + numOfOpenDmas.num = fm_resource_settings_info->tx_1g_dmas; + else if (p_LnxWrpFmPortDev->settings.param.portType == + e_FM_PORT_TYPE_RX) + numOfOpenDmas.num = fm_resource_settings_info->rx_1g_dmas; +/* IF 2.5G PORT*/ + /* TODO: Not supported by LLD yet. */ + +/* IF 10G PORT */ + else if (p_LnxWrpFmPortDev->settings.param.portType == + e_FM_PORT_TYPE_TX_10G) + numOfOpenDmas.num = fm_resource_settings_info->tx_10g_dmas; + else if (p_LnxWrpFmPortDev->settings.param.portType == + e_FM_PORT_TYPE_RX_10G) + numOfOpenDmas.num = fm_resource_settings_info->rx_10g_dmas; +/* IF OH PORT */ + else + numOfOpenDmas.num = fm_resource_settings_info->oh_dmas; + + numOfOpenDmas.extra = fm_resource_settings_info->shared_ext_open_dma; + + errCode = FM_PORT_SetNumOfOpenDmas(p_LnxWrpFmPortDev->h_Dev, + &numOfOpenDmas); + if (errCode != E_OK) { + printk(KERN_WARNING + "FM_PORT_SetNumOfOpenDmas failed (errCode:0x%2x)", + errCode); + return -EIO; + } + + return 0; +} + +/* Compute FMan tnums based on available tnums and number of ports. + Set defaults (minim tresholds) and then distribute leftovers.*/ +int fm_precalculate_tnums(t_LnxWrpFmDev *p_LnxWrpFmDev, int max_fm_tnums) +{ + /* input parameters */ + struct fm_active_ports *fm_active_ports_info = NULL; + int num_1g_ports = 0; + int num_2g5_ports = 0; + int num_10g_ports = 0; + int num_oh_ports = 0; + + /* output parameters */ + struct fm_resource_settings *fm_resource_settings_info = NULL; + int tx_1g_tnums = 0, rx_1g_tnums = 0; + int tx_2g5_tnums = 0, rx_2g5_tnums = 0; + int tx_10g_tnums = 0, rx_10g_tnums = 0; + int oh_tnums = 0; + int shared_ext_tnums = 0; + int err = 0; + + /* open dma calculus */ + int default_and_treshold_rx_tx_10g_tnums = 16; /* DPDE_10g */ + int default_and_treshold_rx_tx_1g_2g5_tnums = 4; /* DPDE_1g */ + int default_and_treshold_oh_tnums = 2; /* Hell knows why */ + int max_tnums_treshold = 64; /* LLD: MAX_NUM_OF_TASKS */ + int max_ext_tnums_treshold = 8; /* LLD: MAX_NUM_OF_EXTRA_TASKS */ + int remaing_tnums = 0; + int tnums_computed = 0; + int leftovers = 0; + bool re_loop = true; + + /* check input parameters correctness */ + ASSERT_COND(p_LnxWrpFmDev != NULL); + fm_active_ports_info = &p_LnxWrpFmDev->fm_active_ports_info; + fm_resource_settings_info = &p_LnxWrpFmDev->fm_resource_settings_info; + ASSERT_COND(fm_active_ports_info != NULL); + ASSERT_COND(fm_resource_settings_info != NULL); + ASSERT_COND(fm_active_ports_info->num_tx_ports == + fm_active_ports_info->num_rx_ports); + ASSERT_COND(fm_active_ports_info->num_tx25_ports == + fm_active_ports_info->num_tx25_ports); + ASSERT_COND(fm_active_ports_info->num_tx10_ports == + fm_active_ports_info->num_tx10_ports); + + /* set input parameters */ + num_1g_ports = fm_active_ports_info->num_tx_ports; + num_2g5_ports = fm_active_ports_info->num_tx25_ports; + num_10g_ports = fm_active_ports_info->num_tx10_ports; + num_oh_ports = fm_active_ports_info->num_oh_ports; + + /* compute FMan TNUMs per port */ + /* ------------------------------------------------------- */ + if (num_1g_ports) { + tx_1g_tnums = default_and_treshold_rx_tx_1g_2g5_tnums; + rx_1g_tnums = default_and_treshold_rx_tx_1g_2g5_tnums; + } + if (num_2g5_ports) { + tx_2g5_tnums = default_and_treshold_rx_tx_1g_2g5_tnums; + rx_2g5_tnums = default_and_treshold_rx_tx_1g_2g5_tnums; + } + if (num_10g_ports) { + tx_10g_tnums = default_and_treshold_rx_tx_10g_tnums; + rx_10g_tnums = default_and_treshold_rx_tx_10g_tnums; + } + if (num_oh_ports) + oh_tnums = default_and_treshold_oh_tnums; + + shared_ext_tnums = num_10g_ports ? + max_ext_tnums_treshold : 2; /* DEFAULT_PORT_extraNumOfTasks */ + + /* based on total number of ports set open DMAs for all other ports */ + remaing_tnums = max_fm_tnums - + (oh_tnums * num_oh_ports) - + (tx_1g_tnums * num_1g_ports + rx_1g_tnums * num_1g_ports) - + (tx_2g5_tnums * num_2g5_ports + rx_2g5_tnums * num_2g5_ports) - + (tx_10g_tnums * num_10g_ports + rx_10g_tnums * num_10g_ports) - + shared_ext_tnums; + + if (remaing_tnums < 0) { + printk(KERN_ALERT + "This configuration will not work due to low number" + " of tnums (%u tnums) and number of total ports" + " available...\n", + max_fm_tnums); + err = -1; + goto precalculated_tnums_out; + } + + leftovers = remaing_tnums; + re_loop = true; + while (leftovers > 0 && re_loop == true) { + re_loop = false; + if (num_10g_ports && (leftovers - (int) num_10g_ports) >= 0 + && (rx_10g_tnums < max_tnums_treshold)) { + rx_10g_tnums++; + leftovers -= num_10g_ports; + re_loop = true; + } + + if (num_10g_ports && (leftovers - (int) num_10g_ports) >= 0 + && (tx_10g_tnums < max_tnums_treshold)) { + tx_10g_tnums++; + leftovers -= num_10g_ports; + re_loop = true; + } + + if (num_2g5_ports && (leftovers - (int) num_2g5_ports) >= 0 + && (rx_2g5_tnums < max_tnums_treshold)) { + rx_2g5_tnums++; + leftovers -= num_2g5_ports; + re_loop = true; + } + + if (num_2g5_ports && (leftovers - (int) num_2g5_ports) >= 0 + && (tx_2g5_tnums < max_tnums_treshold)) { + tx_2g5_tnums++; + leftovers -= num_2g5_ports; + re_loop = true; + } + + if (num_1g_ports && (leftovers - (int) num_1g_ports) >= 0 + && (rx_1g_tnums < max_tnums_treshold)) { + rx_1g_tnums++; + leftovers -= num_1g_ports; + re_loop = true; + } + + if (num_1g_ports && (leftovers - (int) num_1g_ports) >= 0 + && (tx_1g_tnums < max_tnums_treshold)) { + tx_1g_tnums++; + leftovers -= num_1g_ports; + re_loop = true; + } + } + + tnums_computed = + num_1g_ports * tx_1g_tnums + + num_1g_ports * rx_1g_tnums + + num_2g5_ports * tx_2g5_tnums + + num_2g5_ports * rx_2g5_tnums + + num_10g_ports * tx_10g_tnums + + num_10g_ports * rx_10g_tnums + + num_oh_ports * oh_tnums + + shared_ext_tnums; + + if (leftovers > 0) + shared_ext_tnums = + MIN(shared_ext_tnums + max_fm_tnums - tnums_computed, + max_ext_tnums_treshold); + + ASSERT_COND((oh_tnums * num_oh_ports) + + (tx_1g_tnums * num_1g_ports + rx_1g_tnums * num_1g_ports) + + (tx_2g5_tnums * num_2g5_ports + + rx_2g5_tnums * num_2g5_ports) + + (tx_10g_tnums * num_10g_ports + + rx_10g_tnums * num_10g_ports) + shared_ext_tnums <= + max_fm_tnums); + + /* set computed tnums */ + fm_resource_settings_info->tx_1g_tnums = tx_1g_tnums; + fm_resource_settings_info->rx_1g_tnums = rx_1g_tnums; + fm_resource_settings_info->tx_2g5_tnums = tx_2g5_tnums; + fm_resource_settings_info->rx_2g5_tnums = rx_2g5_tnums; + fm_resource_settings_info->tx_10g_tnums = tx_10g_tnums; + fm_resource_settings_info->rx_10g_tnums = rx_10g_tnums; + fm_resource_settings_info->oh_tnums = oh_tnums; + fm_resource_settings_info->shared_ext_tnums = shared_ext_tnums; + +precalculated_tnums_out: + printk(KERN_INFO " FMAN(%u) Tnums settings:\n", p_LnxWrpFmDev->id); + printk(KERN_INFO " - Total Tnums available(%u)\n", max_fm_tnums); + if (num_1g_ports) { + printk(KERN_INFO " - 1G ports TX %u(%u)\n", num_1g_ports, + tx_1g_tnums); + printk(KERN_INFO " - 1G ports RX %u(%u)\n", num_1g_ports, + rx_1g_tnums); + } + if (num_2g5_ports) { + printk(KERN_INFO " - 2.5G ports TX %u(%u)\n", num_2g5_ports, + tx_2g5_tnums); + printk(KERN_INFO " - 2.5G ports RX %u(%u)\n", num_2g5_ports, + rx_2g5_tnums); + } + if (num_10g_ports) { + printk(KERN_INFO " - 10G ports TX %u(%u)\n", num_10g_ports, + tx_10g_tnums); + printk(KERN_INFO " - 10G ports RX %u(%u)\n", num_10g_ports, + rx_10g_tnums); + } + if (num_oh_ports) + printk(KERN_INFO " - OH-HC ports %u(%u)\n", num_oh_ports, + oh_tnums); + printk(KERN_INFO " - Shared extra tnums(%u)\n", shared_ext_tnums); + + return err; +} + +int fm_set_precalculate_tnums(t_LnxWrpFmPortDev *p_LnxWrpFmPortDev) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = + (t_LnxWrpFmDev *) p_LnxWrpFmPortDev->h_LnxWrpFmDev; + struct fm_resource_settings *fm_resource_settings_info = NULL; + t_FmPortRsrc numOfTask; + t_Error errCode; + + ASSERT_COND(p_LnxWrpFmDev != NULL); + fm_resource_settings_info = &p_LnxWrpFmDev->fm_resource_settings_info; + + memset(&numOfTask, 0, sizeof(t_FmPortRsrc)); + +/* IF 1G PORT */ + if (p_LnxWrpFmPortDev->settings.param.portType == e_FM_PORT_TYPE_TX) + numOfTask.num = fm_resource_settings_info->tx_1g_tnums; + else if (p_LnxWrpFmPortDev->settings.param.portType == + e_FM_PORT_TYPE_RX) + numOfTask.num = fm_resource_settings_info->rx_1g_tnums; +/* IF 2.5G PORT*/ + /* TODO: Not supported by LLD yet. */ + +/* IF 10G PORT */ + else if (p_LnxWrpFmPortDev->settings.param.portType == + e_FM_PORT_TYPE_TX_10G) + numOfTask.num = fm_resource_settings_info->tx_10g_tnums; + else if (p_LnxWrpFmPortDev->settings.param.portType == + e_FM_PORT_TYPE_RX_10G) + numOfTask.num = fm_resource_settings_info->rx_10g_tnums; +/* IF OH PORT */ + else + numOfTask.num = fm_resource_settings_info->oh_dmas; + + numOfTask.extra = fm_resource_settings_info->shared_ext_tnums; + + errCode = FM_PORT_SetNumOfTasks(p_LnxWrpFmPortDev->h_Dev, &numOfTask); + if (errCode != E_OK) { + printk(KERN_WARNING + "FM_PORT_SetNumOfTasks failed (errCode:0x%2x)", + errCode); + return -EIO; + } + + return 0; +} --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_resources.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_resources.h @@ -0,0 +1,111 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + + @File lnxwrp_resources.h + + @Description FMD wrapper resource allocation functions. + +*/ + +#ifndef LNXWRP_RESOURCES_H_ +#define LNXWRP_RESOURCES_H_ + +#include "lnxwrp_fm.h" + +#define ROUND(X) ((2*(X)+1)/2) +#define CEIL(X) ((X)+1) +/* #define ROUND_DIV(X, Y) (((X)+(Y)/2)/(Y)) */ +#define ROUND_DIV(X, Y) ((2*(X)+(Y))/(2*(Y))) +#define CEIL_DIV(X, Y) (((X)+(Y)-1)/(Y)) + +/* used for resource calculus */ +#define DPDE_1G 2 /* DQDP 1g - from LLD: + DEFAULT_PORT_txFifoDeqPipelineDepth_1G */ +#define DPDE_10G 8 /* DQDP 10g - from LLD: + DEFAULT_PORT_txFifoDeqPipelineDepth_10G */ + +int fm_set_active_fman_ports(struct platform_device *of_dev, + t_LnxWrpFmDev *p_LnxWrpFmDev); + +/* Calculate the fifosize based on MURAM allocation, number of ports, dpde + * value and s/g software support (! Kernel does not suport s/g). + * + * Algorithm summary: + * - Calculate the the minimum fifosize required for every type of port + * (TX,RX for 1G, 2.5G and 10G). + * - Set TX the minimum fifosize required. + * - Distribute the remaining buffers (after all TX were set) to RX ports + * based on: + * 1G RX = Remaining_buffers * 1/(1+2.5+10) + * 2.5G RX = Remaining_buffers * 2.5/(1+2.5+10) + * 10G RX = Remaining_buffers * 10/(1+2.5+10) + * - if the RX is smaller than the minimum required, then set the minimum + * required + * - In the end distribuite the leftovers if there are any (due to + * unprecise calculus) or if over allocation cat some buffers from all RX + * ports w/o pass over minimum required treshold, but if there must be + * pass the treshold in order to cat the over allocation ,then this + * configuration can not be set - KERN_ALERT. +*/ +int fm_precalculate_fifosizes(t_LnxWrpFmDev *p_LnxWrpFmDev, + int muram_fifo_size); + +int fm_set_precalculate_fifosize(t_LnxWrpFmPortDev *p_LnxWrpFmPortDev); + +/* Compute FMan open DMA based on total number of open DMAs and + * number of available fman ports. + * + * By default 10g ports are set to input parameters. The other ports + * tries to keep the proportion rx=2tx open dmas or tresholds. + * + * If leftovers, then those will be set as shared. + * + * If after computing overflow appears, then it decrements open dma + * for all ports w/o cross the tresholds. If the tresholds are meet + * and is still overflow, then it returns error. +*/ +int fm_precalculate_open_dma(t_LnxWrpFmDev *p_LnxWrpFmDev, + int max_fm_open_dma, + int default_tx_10g_dmas, + int default_rx_10g_dmas, + int min_tx_10g_treshold, int min_rx_10g_treshold); + +int fm_set_precalculate_open_dma(t_LnxWrpFmPortDev *p_LnxWrpFmPortDev); + +/* Compute FMan tnums based on available tnums and number of ports. + * Set defaults (minim tresholds) and then distribute leftovers.*/ +int fm_precalculate_tnums(t_LnxWrpFmDev *p_LnxWrpFmDev, int max_fm_tnums); + +int fm_set_precalculate_tnums(t_LnxWrpFmPortDev *p_LnxWrpFmPortDev); + +#endif /* LNXWRP_RESOURCES_H_ */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_sysfs.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_sysfs.c @@ -0,0 +1,60 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + + @File lnxwrp_sysfs.c + + @Description FM wrapper sysfs related functions. + +*/ + +#include +#include "lnxwrp_sysfs.h" + +uint8_t fm_find_statistic_counter_by_name(const char *attr_name, + struct SysfsStats_t *sysfs_stats, + uint8_t *offset) +{ + int i = 0; + + while (sysfs_stats[i].statisticName != NULL) { + if (strcmp(sysfs_stats[i].statisticName, attr_name) == 0) { + if (offset != NULL) + *offset = i; + return sysfs_stats[i].statisticCounter; + } + + i++; + } + WARN(1, "FMD: Should never get here!"); + return 0; +} --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_sysfs.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_sysfs.h @@ -0,0 +1,67 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + + @File lnxwrp_sysfs.h + + @Description FM sysfs functions. + +*/ + +#ifndef LNXWRP_SYSFS_H_ +#define LNXWRP_SYSFS_H_ + +/* Linux Headers ------------------- */ +#include + +#if defined(CONFIG_MODVERSIONS) && !defined(MODVERSIONS) +#define MODVERSIONS +#endif +#ifdef MODVERSIONS +#include +#endif /* MODVERSIONS */ + +#include +#include +#include +#include + +struct SysfsStats_t { + const char *statisticName; + uint8_t statisticCounter; +}; + +uint8_t fm_find_statistic_counter_by_name(const char *attr_name, + struct SysfsStats_t *sysfs_stats, + uint8_t *offset); + +#endif /* LNXWRP_SYSFS_H_ */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_sysfs_fm.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_sysfs_fm.c @@ -0,0 +1,575 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + + @File lnxwrp_sysfs_fm.c + + @Description FM sysfs related functions. + +*/ + +#include "lnxwrp_sysfs.h" +#include "lnxwrp_fm.h" + +enum e_FmDmaMatchStatistics { + e_FM_DMA_COUNTERS_CMQ_NOT_EMPTY, + e_FM_DMA_COUNTERS_BUS_ERROR, + e_FM_DMA_COUNTERS_READ_BUF_ECC_ERROR, + e_FM_DMA_COUNTERS_WRITE_BUF_ECC_SYS_ERROR, + e_FM_DMA_COUNTERS_WRITE_BUF_ECC_FM_ERROR +}; + +static const struct SysfsStats_t fmSysfsStats[] = { + /* FM statistics */ + { + .statisticName = "enq_total_frame", + .statisticCounter = e_FM_COUNTERS_ENQ_TOTAL_FRAME, + }, + { + .statisticName = "deq_total_frame", + .statisticCounter = e_FM_COUNTERS_DEQ_TOTAL_FRAME, + }, + { + .statisticName = "deq_0", + .statisticCounter = e_FM_COUNTERS_DEQ_0, + }, + { + .statisticName = "deq_1", + .statisticCounter = e_FM_COUNTERS_DEQ_1, + }, + { + .statisticName = "deq_2", + .statisticCounter = e_FM_COUNTERS_DEQ_2, + }, + { + .statisticName = "deq_from_default", + .statisticCounter = e_FM_COUNTERS_DEQ_FROM_DEFAULT, + }, + { + .statisticName = "deq_from_context", + .statisticCounter = e_FM_COUNTERS_DEQ_FROM_CONTEXT, + }, + { + .statisticName = "deq_from_fd", + .statisticCounter = e_FM_COUNTERS_DEQ_FROM_FD, + }, + { + .statisticName = "deq_confirm", + .statisticCounter = e_FM_COUNTERS_DEQ_CONFIRM, + }, + /* FM:DMA statistics */ + { + .statisticName = "cmq_not_empty", + .statisticCounter = e_FM_DMA_COUNTERS_CMQ_NOT_EMPTY, + }, + { + .statisticName = "bus_error", + .statisticCounter = e_FM_DMA_COUNTERS_BUS_ERROR, + }, + { + .statisticName = "read_buf_ecc_error", + .statisticCounter = e_FM_DMA_COUNTERS_READ_BUF_ECC_ERROR, + }, + { + .statisticName = "write_buf_ecc_sys_error", + .statisticCounter = e_FM_DMA_COUNTERS_WRITE_BUF_ECC_SYS_ERROR, + }, + { + .statisticName = "write_buf_ecc_fm_error", + .statisticCounter = e_FM_DMA_COUNTERS_WRITE_BUF_ECC_FM_ERROR, + }, + /* FM:PCD statistics */ + { + .statisticName = "pcd_enq_total_frame", + .statisticCounter = e_FM_COUNTERS_ENQ_TOTAL_FRAME, + }, + { + .statisticName = "pcd_kg_total", + .statisticCounter = e_FM_PCD_KG_COUNTERS_TOTAL, + }, + { + .statisticName = "pcd_plcr_yellow", + .statisticCounter = e_FM_PCD_PLCR_COUNTERS_YELLOW, + }, + { + .statisticName = "pcd_plcr_red", + .statisticCounter = e_FM_PCD_PLCR_COUNTERS_RED, + }, + { + .statisticName = "pcd_plcr_recolored_to_red", + .statisticCounter = e_FM_PCD_PLCR_COUNTERS_RECOLORED_TO_RED, + }, + { + .statisticName = "pcd_plcr_recolored_to_yellow", + .statisticCounter = e_FM_PCD_PLCR_COUNTERS_RECOLORED_TO_YELLOW, + }, + { + .statisticName = "pcd_plcr_total", + .statisticCounter = e_FM_PCD_PLCR_COUNTERS_TOTAL, + }, + { + .statisticName = "pcd_plcr_length_mismatch", + .statisticCounter = e_FM_PCD_PLCR_COUNTERS_LENGTH_MISMATCH, + }, + { + .statisticName = "pcd_prs_parse_dispatch", + .statisticCounter = e_FM_PCD_PRS_COUNTERS_PARSE_DISPATCH, + }, + { + .statisticName = "pcd_prs_l2_parse_result_returned", + .statisticCounter = e_FM_PCD_PRS_COUNTERS_L2_PARSE_RESULT_RETURNED, + }, + { + .statisticName = "pcd_prs_l3_parse_result_returned", + .statisticCounter = e_FM_PCD_PRS_COUNTERS_L3_PARSE_RESULT_RETURNED, + }, + { + .statisticName = "pcd_prs_l4_parse_result_returned", + .statisticCounter = e_FM_PCD_PRS_COUNTERS_L4_PARSE_RESULT_RETURNED, + }, + { + .statisticName = "pcd_prs_shim_parse_result_returned", + .statisticCounter = e_FM_PCD_PRS_COUNTERS_SHIM_PARSE_RESULT_RETURNED, + }, + { + .statisticName = "pcd_prs_l2_parse_result_returned_with_err", + .statisticCounter = + e_FM_PCD_PRS_COUNTERS_L2_PARSE_RESULT_RETURNED_WITH_ERR, + }, + { + .statisticName = "pcd_prs_l3_parse_result_returned_with_err", + .statisticCounter = + e_FM_PCD_PRS_COUNTERS_L3_PARSE_RESULT_RETURNED_WITH_ERR, + }, + { + .statisticName = "pcd_prs_l4_parse_result_returned_with_err", + .statisticCounter = + e_FM_PCD_PRS_COUNTERS_L4_PARSE_RESULT_RETURNED_WITH_ERR, + }, + { + .statisticName = "pcd_prs_shim_parse_result_returned_with_err", + .statisticCounter = + e_FM_PCD_PRS_COUNTERS_SHIM_PARSE_RESULT_RETURNED_WITH_ERR, + }, + { + .statisticName = "pcd_prs_soft_prs_cycles", + .statisticCounter = e_FM_PCD_PRS_COUNTERS_SOFT_PRS_CYCLES, + }, + { + .statisticName = "pcd_prs_soft_prs_stall_cycles", + .statisticCounter = e_FM_PCD_PRS_COUNTERS_SOFT_PRS_STALL_CYCLES, + }, + { + .statisticName = "pcd_prs_hard_prs_cycle_incl_stall_cycles", + .statisticCounter = + e_FM_PCD_PRS_COUNTERS_HARD_PRS_CYCLE_INCL_STALL_CYCLES, + }, + { + .statisticName = "pcd_prs_muram_read_cycles", + .statisticCounter = e_FM_PCD_PRS_COUNTERS_MURAM_READ_CYCLES, + }, + { + .statisticName = "pcd_prs_muram_read_stall_cycles", + .statisticCounter = e_FM_PCD_PRS_COUNTERS_MURAM_READ_STALL_CYCLES, + }, + { + .statisticName = "pcd_prs_muram_write_cycles", + .statisticCounter = e_FM_PCD_PRS_COUNTERS_MURAM_WRITE_CYCLES, + }, + { + .statisticName = "pcd_prs_muram_write_stall_cycles", + .statisticCounter = e_FM_PCD_PRS_COUNTERS_MURAM_WRITE_STALL_CYCLES, + }, + { + .statisticName = "pcd_prs_fpm_command_stall_cycles", + .statisticCounter = e_FM_PCD_PRS_COUNTERS_FPM_COMMAND_STALL_CYCLES, + }, + {} +}; + +/* Fm stats and regs dumps via sysfs */ +static ssize_t show_fm_dma_stats(struct device *dev, + struct device_attribute *attr, char *buf) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = NULL; + t_FmDmaStatus fmDmaStatus; + unsigned long flags = 0; + unsigned n = 0; + uint8_t counter_value = 0, counter = 0; + + if (attr == NULL || buf == NULL || dev == NULL) + return -EINVAL; + + p_LnxWrpFmDev = (t_LnxWrpFmDev *) dev_get_drvdata(dev); + if (WARN_ON(p_LnxWrpFmDev == NULL)) + return -EINVAL; + + if (!p_LnxWrpFmDev->active || !p_LnxWrpFmDev->h_Dev) + return -EIO; + + counter = + fm_find_statistic_counter_by_name(attr->attr.name, + (struct SysfsStats_t *) + &fmSysfsStats[0], NULL); + + local_irq_save(flags); + + memset(&fmDmaStatus, 0, sizeof(fmDmaStatus)); + FM_GetDmaStatus(p_LnxWrpFmDev->h_Dev, &fmDmaStatus); + + switch (counter) { + case e_FM_DMA_COUNTERS_CMQ_NOT_EMPTY: + counter_value = fmDmaStatus.cmqNotEmpty; + break; + case e_FM_DMA_COUNTERS_BUS_ERROR: + counter_value = fmDmaStatus.busError; + break; + case e_FM_DMA_COUNTERS_READ_BUF_ECC_ERROR: + counter_value = fmDmaStatus.readBufEccError; + break; + case e_FM_DMA_COUNTERS_WRITE_BUF_ECC_SYS_ERROR: + counter_value = fmDmaStatus.writeBufEccSysError; + break; + case e_FM_DMA_COUNTERS_WRITE_BUF_ECC_FM_ERROR: + counter_value = fmDmaStatus.writeBufEccFmError; + break; + default: + WARN(1, "FMD: failure at %s:%d/%s()!\n", __FILE__, __LINE__, + __func__); + break; + }; + + n = snprintf(buf, PAGE_SIZE, "\tFM %u counter: %c\n", + p_LnxWrpFmDev->id, counter_value ? 'T' : 'F'); + + local_irq_restore(flags); + + return n; +} + +static ssize_t show_fm_stats(struct device *dev, + struct device_attribute *attr, char *buf) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = NULL; + unsigned long flags = 0; + unsigned n = 0, counter = 0; + + if (attr == NULL || buf == NULL || dev == NULL) + return -EINVAL; + + p_LnxWrpFmDev = (t_LnxWrpFmDev *) dev_get_drvdata(dev); + if (WARN_ON(p_LnxWrpFmDev == NULL)) + return -EINVAL; + + if (!p_LnxWrpFmDev->active || !p_LnxWrpFmDev->h_Dev) + return -EIO; + + counter = + fm_find_statistic_counter_by_name(attr->attr.name, + (struct SysfsStats_t *) + &fmSysfsStats[0], NULL); + + local_irq_save(flags); + + n = snprintf(buf, PAGE_SIZE, "\tFM %d counter: %d\n", + p_LnxWrpFmDev->id, + FM_GetCounter(p_LnxWrpFmDev->h_Dev, + (e_FmCounters) counter)); + + local_irq_restore(flags); + + return n; +} + +static ssize_t show_fm_pcd_stats(struct device *dev, + struct device_attribute *attr, char *buf) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = NULL; + unsigned long flags = 0; + unsigned n = 0, counter = 0; + + if (attr == NULL || buf == NULL || dev == NULL) + return -EINVAL; + + p_LnxWrpFmDev = (t_LnxWrpFmDev *) dev_get_drvdata(dev); + if (WARN_ON(p_LnxWrpFmDev == NULL)) + return -EINVAL; + + if (!p_LnxWrpFmDev->active || !p_LnxWrpFmDev->h_Dev) + return -EIO; + + counter = + fm_find_statistic_counter_by_name(attr->attr.name, + (struct SysfsStats_t *) + &fmSysfsStats[0], NULL); + + local_irq_save(flags); + + n = snprintf(buf, PAGE_SIZE, "\tFM %d counter: %d\n", + p_LnxWrpFmDev->id, + FM_PCD_GetCounter(p_LnxWrpFmDev->h_PcdDev, + (e_FmPcdCounters) counter)); + + local_irq_restore(flags); + + return n; +} + +/* FM */ +static DEVICE_ATTR(enq_total_frame, S_IRUGO, show_fm_stats, NULL); +static DEVICE_ATTR(deq_total_frame, S_IRUGO, show_fm_stats, NULL); +static DEVICE_ATTR(deq_0, S_IRUGO, show_fm_stats, NULL); +static DEVICE_ATTR(deq_1, S_IRUGO, show_fm_stats, NULL); +static DEVICE_ATTR(deq_2, S_IRUGO, show_fm_stats, NULL); +static DEVICE_ATTR(deq_from_default, S_IRUGO, show_fm_stats, NULL); +static DEVICE_ATTR(deq_from_context, S_IRUGO, show_fm_stats, NULL); +static DEVICE_ATTR(deq_from_fd, S_IRUGO, show_fm_stats, NULL); +static DEVICE_ATTR(deq_confirm, S_IRUGO, show_fm_stats, NULL); +/* FM:DMA */ +static DEVICE_ATTR(cmq_not_empty, S_IRUGO, show_fm_dma_stats, NULL); +static DEVICE_ATTR(bus_error, S_IRUGO, show_fm_dma_stats, NULL); +static DEVICE_ATTR(read_buf_ecc_error, S_IRUGO, show_fm_dma_stats, NULL); +static DEVICE_ATTR(write_buf_ecc_sys_error, S_IRUGO, show_fm_dma_stats, NULL); +static DEVICE_ATTR(write_buf_ecc_fm_error, S_IRUGO, show_fm_dma_stats, NULL); +/* FM:PCD */ +static DEVICE_ATTR(pcd_enq_total_frame, S_IRUGO, show_fm_pcd_stats, NULL); +static DEVICE_ATTR(pcd_kg_total, S_IRUGO, show_fm_pcd_stats, NULL); +static DEVICE_ATTR(pcd_plcr_yellow, S_IRUGO, show_fm_pcd_stats, NULL); +static DEVICE_ATTR(pcd_plcr_red, S_IRUGO, show_fm_pcd_stats, NULL); +static DEVICE_ATTR(pcd_plcr_recolored_to_red, S_IRUGO, show_fm_pcd_stats, + NULL); +static DEVICE_ATTR(pcd_plcr_recolored_to_yellow, S_IRUGO, show_fm_pcd_stats, + NULL); +static DEVICE_ATTR(pcd_plcr_total, S_IRUGO, show_fm_pcd_stats, NULL); +static DEVICE_ATTR(pcd_plcr_length_mismatch, S_IRUGO, show_fm_pcd_stats, + NULL); +static DEVICE_ATTR(pcd_prs_parse_dispatch, S_IRUGO, show_fm_pcd_stats, NULL); +static DEVICE_ATTR(pcd_prs_l2_parse_result_returned, S_IRUGO, + show_fm_pcd_stats, NULL); +static DEVICE_ATTR(pcd_prs_l3_parse_result_returned, S_IRUGO, + show_fm_pcd_stats, NULL); +static DEVICE_ATTR(pcd_prs_l4_parse_result_returned, S_IRUGO, + show_fm_pcd_stats, NULL); +static DEVICE_ATTR(pcd_prs_shim_parse_result_returned, S_IRUGO, + show_fm_pcd_stats, NULL); +static DEVICE_ATTR(pcd_prs_l2_parse_result_returned_with_err, S_IRUGO, + show_fm_pcd_stats, NULL); +static DEVICE_ATTR(pcd_prs_l3_parse_result_returned_with_err, S_IRUGO, + show_fm_pcd_stats, NULL); +static DEVICE_ATTR(pcd_prs_l4_parse_result_returned_with_err, S_IRUGO, + show_fm_pcd_stats, NULL); +static DEVICE_ATTR(pcd_prs_shim_parse_result_returned_with_err, S_IRUGO, + show_fm_pcd_stats, NULL); +static DEVICE_ATTR(pcd_prs_soft_prs_cycles, S_IRUGO, show_fm_pcd_stats, NULL); +static DEVICE_ATTR(pcd_prs_soft_prs_stall_cycles, S_IRUGO, show_fm_pcd_stats, + NULL); +static DEVICE_ATTR(pcd_prs_hard_prs_cycle_incl_stall_cycles, S_IRUGO, + show_fm_pcd_stats, NULL); +static DEVICE_ATTR(pcd_prs_muram_read_cycles, S_IRUGO, show_fm_pcd_stats, + NULL); +static DEVICE_ATTR(pcd_prs_muram_read_stall_cycles, S_IRUGO, + show_fm_pcd_stats, NULL); +static DEVICE_ATTR(pcd_prs_muram_write_cycles, S_IRUGO, show_fm_pcd_stats, + NULL); +static DEVICE_ATTR(pcd_prs_muram_write_stall_cycles, S_IRUGO, + show_fm_pcd_stats, NULL); +static DEVICE_ATTR(pcd_prs_fpm_command_stall_cycles, S_IRUGO, + show_fm_pcd_stats, NULL); + +static struct attribute *fm_dev_stats_attributes[] = { + &dev_attr_enq_total_frame.attr, + &dev_attr_deq_total_frame.attr, + &dev_attr_deq_0.attr, + &dev_attr_deq_1.attr, + &dev_attr_deq_2.attr, + &dev_attr_deq_from_default.attr, + &dev_attr_deq_from_context.attr, + &dev_attr_deq_from_fd.attr, + &dev_attr_deq_confirm.attr, + &dev_attr_cmq_not_empty.attr, + &dev_attr_bus_error.attr, + &dev_attr_read_buf_ecc_error.attr, + &dev_attr_write_buf_ecc_sys_error.attr, + &dev_attr_write_buf_ecc_fm_error.attr, + &dev_attr_pcd_enq_total_frame.attr, + &dev_attr_pcd_kg_total.attr, + &dev_attr_pcd_plcr_yellow.attr, + &dev_attr_pcd_plcr_red.attr, + &dev_attr_pcd_plcr_recolored_to_red.attr, + &dev_attr_pcd_plcr_recolored_to_yellow.attr, + &dev_attr_pcd_plcr_total.attr, + &dev_attr_pcd_plcr_length_mismatch.attr, + &dev_attr_pcd_prs_parse_dispatch.attr, + &dev_attr_pcd_prs_l2_parse_result_returned.attr, + &dev_attr_pcd_prs_l3_parse_result_returned.attr, + &dev_attr_pcd_prs_l4_parse_result_returned.attr, + &dev_attr_pcd_prs_shim_parse_result_returned.attr, + &dev_attr_pcd_prs_l2_parse_result_returned_with_err.attr, + &dev_attr_pcd_prs_l3_parse_result_returned_with_err.attr, + &dev_attr_pcd_prs_l4_parse_result_returned_with_err.attr, + &dev_attr_pcd_prs_shim_parse_result_returned_with_err.attr, + &dev_attr_pcd_prs_soft_prs_cycles.attr, + &dev_attr_pcd_prs_soft_prs_stall_cycles.attr, + &dev_attr_pcd_prs_hard_prs_cycle_incl_stall_cycles.attr, + &dev_attr_pcd_prs_muram_read_cycles.attr, + &dev_attr_pcd_prs_muram_read_stall_cycles.attr, + &dev_attr_pcd_prs_muram_write_cycles.attr, + &dev_attr_pcd_prs_muram_write_stall_cycles.attr, + &dev_attr_pcd_prs_fpm_command_stall_cycles.attr, + NULL +}; + +static const struct attribute_group fm_dev_stats_attr_grp = { + .name = "statistics", + .attrs = fm_dev_stats_attributes +}; + +static ssize_t show_fm_regs(struct device *dev, struct device_attribute *attr, + char *buf) +{ + unsigned long flags; + unsigned n = 0; +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) + t_LnxWrpFmDev *p_LnxWrpFmDev = NULL; +#endif + + if (attr == NULL || buf == NULL || dev == NULL) + return -EINVAL; + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) + + p_LnxWrpFmDev = (t_LnxWrpFmDev *) dev_get_drvdata(dev); + if (WARN_ON(p_LnxWrpFmDev == NULL)) + return -EINVAL; + + local_irq_save(flags); + + n = snprintf(buf, PAGE_SIZE, "FM driver registers dump.\n"); + + if (!p_LnxWrpFmDev->active || !p_LnxWrpFmDev->h_Dev) + return -EIO; + else + FM_DumpRegs(p_LnxWrpFmDev->h_Dev); + + local_irq_restore(flags); +#else + + local_irq_save(flags); + n = snprintf(buf, PAGE_SIZE, + "Debug level is too low to dump registers!!!\n"); + local_irq_restore(flags); +#endif /* (defined(DEBUG_ERRORS) && ... */ + + return n; +} + +static ssize_t show_pcd_regs(struct device *dev, + struct device_attribute *attr, char *buf) +{ + unsigned long flags; + unsigned n = 0; +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) + t_LnxWrpFmDev *p_LnxWrpFmDev = NULL; +#endif + + if (attr == NULL || buf == NULL || dev == NULL) + return -EINVAL; + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) + p_LnxWrpFmDev = (t_LnxWrpFmDev *) dev_get_drvdata(dev); + if (WARN_ON(p_LnxWrpFmDev == NULL)) + return -EINVAL; + + local_irq_save(flags); + n = snprintf(buf, PAGE_SIZE, "FM driver registers dump.\n"); + + if (!p_LnxWrpFmDev->active || !p_LnxWrpFmDev->h_PcdDev) + return -EIO; + else + FM_PCD_DumpRegs(p_LnxWrpFmDev->h_PcdDev); + + local_irq_restore(flags); +#else + + local_irq_save(flags); + n = snprintf(buf, PAGE_SIZE, + "Debug level is too low to dump registers!!!\n"); + local_irq_restore(flags); + +#endif /* (defined(DEBUG_ERRORS) && ... */ + + return n; +} + +static DEVICE_ATTR(fm_regs, S_IRUGO, show_fm_regs, NULL); +static DEVICE_ATTR(fm_pcd_regs, S_IRUGO, show_pcd_regs, NULL); + +int fm_sysfs_create(struct device *dev) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = NULL; + + if (dev == NULL) + return -EIO; + + p_LnxWrpFmDev = (t_LnxWrpFmDev *) dev_get_drvdata(dev); + + /* store to remove them when module is disabled */ + p_LnxWrpFmDev->dev_attr_regs = &dev_attr_fm_regs; + p_LnxWrpFmDev->dev_pcd_attr_regs = &dev_attr_fm_pcd_regs; + + /* Create sysfs statistics group for FM module */ + if (sysfs_create_group(&dev->kobj, &fm_dev_stats_attr_grp) != 0) + return -EIO; + + /* Registers dump entry - in future will be moved to debugfs */ + if (device_create_file(dev, &dev_attr_fm_regs) != 0 || + device_create_file(dev, &dev_attr_fm_pcd_regs) != 0) + return -EIO; + + return 0; +} + +void fm_sysfs_destroy(struct device *dev) +{ + t_LnxWrpFmDev *p_LnxWrpFmDev = NULL; + + if (WARN_ON(dev == NULL)) + return; + + p_LnxWrpFmDev = (t_LnxWrpFmDev *) dev_get_drvdata(dev); + if (WARN_ON(p_LnxWrpFmDev == NULL)) + return; + + sysfs_remove_group(&dev->kobj, &fm_dev_stats_attr_grp); + device_remove_file(dev, p_LnxWrpFmDev->dev_attr_regs); + device_remove_file(dev, p_LnxWrpFmDev->dev_pcd_attr_regs); +} --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_sysfs_fm.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_sysfs_fm.h @@ -0,0 +1,48 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + + @File lnxwrp_sysfs_fm.h + + @Description FM sysfs functions. + +*/ + +#ifndef LNXWRP_SYSFS_FM_H_ +#define LNXWRP_SYSFS_FM_H_ + +#include "lnxwrp_sysfs.h" + +int fm_sysfs_create(struct device *dev); +void fm_sysfs_destroy(struct device *dev); + +#endif /* LNXWRP_SYSFS_FM_H_ */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_sysfs_fm_port.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_sysfs_fm_port.c @@ -0,0 +1,364 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + + @File lnxwrp_sysfs_fm_port.c + + @Description FM port sysfs related functions. + +*/ + +#include "lnxwrp_sysfs.h" +#include "lnxwrp_fm.h" + +static const struct SysfsStats_t portSysfsStats[] = { + /* RX/TX/OH common statistics */ + { + .statisticName = "port_frame", + .statisticCounter = e_FM_PORT_COUNTERS_FRAME, + }, + { + .statisticName = "port_discard_frame", + .statisticCounter = e_FM_PORT_COUNTERS_DISCARD_FRAME, + }, + { + .statisticName = "port_dealloc_buf", + .statisticCounter = e_FM_PORT_COUNTERS_DEALLOC_BUF, + }, + { + .statisticName = "port_enq_total", + .statisticCounter = e_FM_PORT_COUNTERS_ENQ_TOTAL, + }, + /* TX/OH */ + { + .statisticName = "port_length_err", + .statisticCounter = e_FM_PORT_COUNTERS_LENGTH_ERR, + }, + { + .statisticName = "port_unsupprted_format", + .statisticCounter = e_FM_PORT_COUNTERS_UNSUPPRTED_FORMAT, + }, + { + .statisticName = "port_deq_total", + .statisticCounter = e_FM_PORT_COUNTERS_DEQ_TOTAL, + }, + { + .statisticName = "port_deq_from_default", + .statisticCounter = e_FM_PORT_COUNTERS_DEQ_FROM_DEFAULT, + }, + { + .statisticName = "port_deq_confirm", + .statisticCounter = e_FM_PORT_COUNTERS_DEQ_CONFIRM, + }, + /* RX/OH */ + { + .statisticName = "port_rx_bad_frame", + .statisticCounter = e_FM_PORT_COUNTERS_RX_BAD_FRAME, + }, + { + .statisticName = "port_rx_large_frame", + .statisticCounter = e_FM_PORT_COUNTERS_RX_LARGE_FRAME, + }, + { + .statisticName = "port_rx_out_of_buffers_discard", + .statisticCounter = e_FM_PORT_COUNTERS_RX_OUT_OF_BUFFERS_DISCARD, + }, + { + .statisticName = "port_rx_filter_frame", + .statisticCounter = e_FM_PORT_COUNTERS_RX_FILTER_FRAME, + }, + /* TODO: Particular statistics for OH ports */ + {} +}; + +static ssize_t show_fm_port_stats(struct device *dev, + struct device_attribute *attr, char *buf) +{ + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev; + t_LnxWrpFmDev *p_LnxWrpFmDev; + unsigned long flags; + int n = 0; + uint8_t counter = 0; + + if (attr == NULL || buf == NULL || dev == NULL) + return -EINVAL; + + p_LnxWrpFmPortDev = (t_LnxWrpFmPortDev *) dev_get_drvdata(dev); + if (WARN_ON(p_LnxWrpFmPortDev == NULL)) + return -EINVAL; + + p_LnxWrpFmDev = (t_LnxWrpFmDev *) p_LnxWrpFmPortDev->h_LnxWrpFmDev; + if (WARN_ON(p_LnxWrpFmDev == NULL)) + return -EINVAL; + + if (!p_LnxWrpFmDev->active || !p_LnxWrpFmDev->h_Dev) + return -EIO; + + if (!p_LnxWrpFmPortDev->h_Dev) { + n = snprintf(buf, PAGE_SIZE, "\tFM Port not configured...\n"); + return n; + } + + counter = + fm_find_statistic_counter_by_name(attr->attr.name, + (struct SysfsStats_t *) & + portSysfsStats[0], NULL); + + if (counter == e_FM_PORT_COUNTERS_RX_LIST_DMA_ERR) { + uint32_t fmRev = 0; + fmRev = 0xffff & ioread32(UINT_TO_PTR(p_LnxWrpFmDev->fmBaseAddr + + 0x000c30c4)); + + if (fmRev == 0x0100) { + local_irq_save(flags); + n = snprintf(buf, PAGE_SIZE, + "counter not available for revision 1\n"); + local_irq_restore(flags); + } + return n; + } + + local_irq_save(flags); + n = snprintf(buf, PAGE_SIZE, "\tFM %d Port %d counter: %d\n", + p_LnxWrpFmDev->id, + p_LnxWrpFmPortDev->id, + FM_PORT_GetCounter(p_LnxWrpFmPortDev->h_Dev, + (e_FmPortCounters) counter)); + local_irq_restore(flags); + + return n; +} + +/* FM PORT RX/TX/OH statistics */ +static DEVICE_ATTR(port_frame, S_IRUGO, show_fm_port_stats, NULL); +static DEVICE_ATTR(port_discard_frame, S_IRUGO, show_fm_port_stats, NULL); +static DEVICE_ATTR(port_dealloc_buf, S_IRUGO, show_fm_port_stats, NULL); +static DEVICE_ATTR(port_enq_total, S_IRUGO, show_fm_port_stats, NULL); +/* FM PORT TX/OH statistics */ +static DEVICE_ATTR(port_length_err, S_IRUGO, show_fm_port_stats, NULL); +static DEVICE_ATTR(port_unsupprted_format, S_IRUGO, show_fm_port_stats, NULL); +static DEVICE_ATTR(port_deq_total, S_IRUGO, show_fm_port_stats, NULL); +static DEVICE_ATTR(port_deq_from_default, S_IRUGO, show_fm_port_stats, NULL); +static DEVICE_ATTR(port_deq_confirm, S_IRUGO, show_fm_port_stats, NULL); +/* FM PORT RX/OH statistics */ +static DEVICE_ATTR(port_rx_bad_frame, S_IRUGO, show_fm_port_stats, NULL); +static DEVICE_ATTR(port_rx_large_frame, S_IRUGO, show_fm_port_stats, NULL); +static DEVICE_ATTR(port_rx_out_of_buffers_discard, S_IRUGO, + show_fm_port_stats, NULL); +static DEVICE_ATTR(port_rx_filter_frame, S_IRUGO, show_fm_port_stats, NULL); + +/* FM PORT TX statistics */ +static struct attribute *fm_tx_port_dev_stats_attributes[] = { + &dev_attr_port_frame.attr, + &dev_attr_port_discard_frame.attr, + &dev_attr_port_dealloc_buf.attr, + &dev_attr_port_enq_total.attr, + &dev_attr_port_length_err.attr, + &dev_attr_port_unsupprted_format.attr, + &dev_attr_port_deq_total.attr, + &dev_attr_port_deq_from_default.attr, + &dev_attr_port_deq_confirm.attr, + NULL +}; + +static const struct attribute_group fm_tx_port_dev_stats_attr_grp = { + .name = "statistics", + .attrs = fm_tx_port_dev_stats_attributes +}; + +/* FM PORT RX statistics */ +static struct attribute *fm_rx_port_dev_stats_attributes[] = { + &dev_attr_port_frame.attr, + &dev_attr_port_discard_frame.attr, + &dev_attr_port_dealloc_buf.attr, + &dev_attr_port_enq_total.attr, + &dev_attr_port_rx_bad_frame.attr, + &dev_attr_port_rx_large_frame.attr, + &dev_attr_port_rx_out_of_buffers_discard.attr, + &dev_attr_port_rx_filter_frame.attr, + NULL +}; + +static const struct attribute_group fm_rx_port_dev_stats_attr_grp = { + .name = "statistics", + .attrs = fm_rx_port_dev_stats_attributes +}; + +/* TODO: add particular OH ports statistics */ +static struct attribute *fm_oh_port_dev_stats_attributes[] = { + &dev_attr_port_frame.attr, + &dev_attr_port_discard_frame.attr, + &dev_attr_port_dealloc_buf.attr, + &dev_attr_port_enq_total.attr, + /*TX*/ &dev_attr_port_length_err.attr, + &dev_attr_port_unsupprted_format.attr, + &dev_attr_port_deq_total.attr, + &dev_attr_port_deq_from_default.attr, + &dev_attr_port_deq_confirm.attr, + /*RX*/ &dev_attr_port_rx_bad_frame.attr, + &dev_attr_port_rx_large_frame.attr, + &dev_attr_port_rx_out_of_buffers_discard.attr, + /*&dev_attr_port_rx_filter_frame.attr, */ + NULL +}; + +static const struct attribute_group fm_oh_port_dev_stats_attr_grp = { + .name = "statistics", + .attrs = fm_oh_port_dev_stats_attributes +}; + +static ssize_t show_fm_port_regs(struct device *dev, + struct device_attribute *attr, char *buf) +{ + unsigned long flags; + unsigned n = 0; +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev = + (t_LnxWrpFmPortDev *) dev_get_drvdata(dev); +#endif + + if (attr == NULL || buf == NULL || dev == NULL) + return -EINVAL; + +#if (defined(DEBUG_ERRORS) && (DEBUG_ERRORS > 0)) + local_irq_save(flags); + + if (!p_LnxWrpFmPortDev->h_Dev) { + n = snprintf(buf, PAGE_SIZE, "\tFM Port not configured...\n"); + return n; + } else { + n = snprintf(buf, PAGE_SIZE, + "FM port driver registers dump.\n"); + FM_PORT_DumpRegs(p_LnxWrpFmPortDev->h_Dev); + } + + local_irq_restore(flags); + + return n; +#else + + local_irq_save(flags); + n = snprintf(buf, PAGE_SIZE, + "Debug level is too low to dump registers!!!\n"); + local_irq_restore(flags); + + return n; +#endif +} + +static DEVICE_ATTR(fm_port_regs, 0x644, show_fm_port_regs, NULL); + +int fm_port_sysfs_create(struct device *dev) +{ + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev; + + if (dev == NULL) + return -EINVAL; + + p_LnxWrpFmPortDev = (t_LnxWrpFmPortDev *) dev_get_drvdata(dev); + if (WARN_ON(p_LnxWrpFmPortDev == NULL)) + return -EINVAL; + + /* store to remove them when module is disabled */ + p_LnxWrpFmPortDev->dev_attr_regs = &dev_attr_fm_port_regs; + + /* Registers dump entry - in future will be moved to debugfs */ + if (device_create_file(dev, &dev_attr_fm_port_regs) != 0) + return -EIO; + + /* FM Ports statistics */ + switch (p_LnxWrpFmPortDev->settings.param.portType) { + case e_FM_PORT_TYPE_TX: + case e_FM_PORT_TYPE_TX_10G: + if (sysfs_create_group + (&dev->kobj, &fm_tx_port_dev_stats_attr_grp) != 0) + return -EIO; + break; + case e_FM_PORT_TYPE_RX: + case e_FM_PORT_TYPE_RX_10G: + if (sysfs_create_group + (&dev->kobj, &fm_rx_port_dev_stats_attr_grp) != 0) + return -EIO; + break; + case e_FM_PORT_TYPE_OH_OFFLINE_PARSING: + case e_FM_PORT_TYPE_OH_HOST_COMMAND: + if (sysfs_create_group + (&dev->kobj, &fm_oh_port_dev_stats_attr_grp) != 0) + return -EIO; + break; + case e_FM_PORT_TYPE_DUMMY: + default: + WARN(1, "FMD: failure at %s:%d/%s()!\n", __FILE__, __LINE__, + __func__); + return -EINVAL; + break; + }; + + return 0; +} + +void fm_port_sysfs_destroy(struct device *dev) +{ + t_LnxWrpFmPortDev *p_LnxWrpFmPortDev = NULL; + + /* this function has never been tested !!! */ + + if (WARN_ON(dev == NULL)) + return; + + p_LnxWrpFmPortDev = (t_LnxWrpFmPortDev *) dev_get_drvdata(dev); + if (WARN_ON(p_LnxWrpFmPortDev == NULL)) + return; + + /* The name attribute will be freed also by these 2 functions? */ + switch (p_LnxWrpFmPortDev->settings.param.portType) { + case e_FM_PORT_TYPE_TX: + case e_FM_PORT_TYPE_TX_10G: + sysfs_remove_group(&dev->kobj, &fm_tx_port_dev_stats_attr_grp); + break; + case e_FM_PORT_TYPE_RX: + case e_FM_PORT_TYPE_RX_10G: + sysfs_remove_group(&dev->kobj, &fm_rx_port_dev_stats_attr_grp); + break; + case e_FM_PORT_TYPE_OH_OFFLINE_PARSING: + case e_FM_PORT_TYPE_OH_HOST_COMMAND: + sysfs_remove_group(&dev->kobj, &fm_oh_port_dev_stats_attr_grp); + break; + case e_FM_PORT_TYPE_DUMMY: + default: + WARN(1, "FMD: failure at %s:%d/%s()!\n", __FILE__, __LINE__, + __func__); + break; + }; + + device_remove_file(dev, p_LnxWrpFmPortDev->dev_attr_regs); +} --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_sysfs_fm_port.h +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/wrapper/lnxwrp_sysfs_fm_port.h @@ -0,0 +1,48 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/* + + @File lnxwrp_sysfs_fm_port.h + + @Description FM port sysfs functions. + +*/ + +#ifndef LNXWRP_SYSFS_FM_PORT_H_ +#define LNXWRP_SYSFS_FM_PORT_H_ + +#include "lnxwrp_sysfs.h" + +int fm_port_sysfs_create(struct device *dev); +void fm_port_sysfs_destroy(struct device *dev); + +#endif /* LNXWRP_SYSFS_FM_PORT_H_ */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/xx/Makefile +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/xx/Makefile @@ -0,0 +1,12 @@ +# +# Makefile for the Freescale Ethernet controllers +# +EXTRA_CFLAGS += -DVERSION=\"\" +# +#Include netcomm SW specific definitions +include $(srctree)/drivers/net/dpa/NetCommSw/ncsw_config.mk + +obj-y += fsl-ncsw-xx.o + +fsl-ncsw-xx-objs := xx_linux.o udivdi3.o stdlib.o + --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/xx/stdlib.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/xx/stdlib.c @@ -0,0 +1,264 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/*------------------------------------------------------*/ +/* */ +/* File: stdlib.c */ +/* */ +/* Description: */ +/* Standard library routines (externals) */ +/* */ +/* Modifications: */ +/* ============== */ +/* */ +/*------------------------------------------------------*/ +#include "stdlib_ext.h" +#include "stdarg_ext.h" +#include "ctype_ext.h" +#include "string_ext.h" +#include "std_ext.h" +#include "xx_ext.h" + + +#ifdef MODULE +/** + * strtoul - convert a string to an uint32_t + * @cp: The start of the string + * @endp: A pointer to the end of the parsed string will be placed here + * @base: The number base to use + */ +uint32_t strtoul(const char *cp,char **endp,uint32_t base) +{ + uint32_t result = 0,value; + + if (!base) { + base = 10; + if (*cp == '0') { + base = 8; + cp++; + if ((*cp == 'x') && isxdigit(cp[1])) { + cp++; + base = 16; + } + } + } + while (isxdigit(*cp) && + (value = (uint32_t)(isdigit(*cp) ? *cp-'0' : toupper((uint8_t)(*cp))-'A'+10)) < base) { + result = result*base + value; + cp++; + } + if (endp) + *endp = (char *)cp; + return result; +} + +/** + * strtol - convert a string to a int32_t + * @cp: The start of the string + * @endp: A pointer to the end of the parsed string will be placed here + * @base: The number base to use + */ +long strtol(const char *cp,char **endp,uint32_t base) +{ + if(*cp=='-') + return (long)(-strtoul(cp+1,endp,base)); + return (long)strtoul(cp,endp,base); +} + +/** + * strtoull - convert a string to an uint64_t + * @cp: The start of the string + * @endp: A pointer to the end of the parsed string will be placed here + * @base: The number base to use + */ +uint64_t strtoull(const char *cp,char **endp,uint32_t base) +{ + uint64_t result = 0,value; + + if (!base) { + base = 10; + if (*cp == '0') { + base = 8; + cp++; + if ((*cp == 'x') && isxdigit(cp[1])) { + cp++; + base = 16; + } + } + } + while (isxdigit(*cp) && (value = isdigit(*cp) ? *cp-'0' : (islower(*cp) + ? toupper((uint8_t)(*cp)) : *cp)-'A'+10) < base) { + result = result*base + value; + cp++; + } + if (endp) + *endp = (char *)cp; + return result; +} + +/** + * strtoll - convert a string to a int64 + * @cp: The start of the string + * @endp: A pointer to the end of the parsed string will be placed here + * @base: The number base to use + */ +long long strtoll(const char *cp,char **endp,uint32_t base) +{ + if(*cp=='-') + return (long long)(-strtoull(cp+1,endp,base)); + return (long long)(strtoull(cp,endp,base)); +} + +/** + * atoi - convert a string to a int + * @s: The start of the string + */ +int atoi(const char *s) +{ + int i=0; + const char **tmp_s = &s; + + while (isdigit(**tmp_s)) + i = i*10 + *((*tmp_s)++) - '0'; + return i; +} + +/** + * strlen - Find the length of a string + * @s: The string to be sized + */ +size_t strlen(const char * s) +{ + const char *sc; + + for (sc = s; *sc != '\0'; ++sc) + /* nothing */; + + return sc - s; +} + +/** + * strnlen - Find the length of a length-limited string + * @s: The string to be sized + * @count: The maximum number of bytes to search + */ +size_t strnlen(const char * s, size_t count) +{ + const char *sc; + + for (sc = s; count-- && *sc != '\0'; ++sc) + /* nothing */; + + return sc - s; +} + +/** + * strcpy - Copy a %NUL terminated string + * @dest: Where to copy the string to + * @src: Where to copy the string from + */ +char * strcpy(char * dest,const char *src) +{ + char *tmp = dest; + + while ((*dest++ = *src++) != '\0') + /* nothing */; + + return tmp; +} +#endif /* MODULE */ + +/** + * strtok - Split a string into tokens + * @s: The string to be searched + * @ct: The characters to search for + * + * WARNING: strtok is deprecated, use strsep instead. + */ +char *___strtok; + +char * strtok(char * s,const char * ct) +{ + char *sbegin, *send; + + sbegin = s ? s : ___strtok; + if (!sbegin) { + return NULL; + } + sbegin += strspn(sbegin,ct); + if (*sbegin == '\0') { + ___strtok = NULL; + return( NULL ); + } + send = strpbrk( sbegin, ct); + if (send && *send != '\0') + *send++ = '\0'; + ___strtok = send; + return (sbegin); +} + + +#ifdef MODULE +/** + * strncpy - Copy a length-limited, %NUL-terminated string + * @dest: Where to copy the string to + * @src: Where to copy the string from + * @count: The maximum number of bytes to copy + * + * Note that unlike userspace strncpy, this does not %NUL-pad the buffer. + * However, the result is not %NUL-terminated if the source exceeds + * @count bytes. + */ +char * strncpy(char * dest,const char *src,size_t count) +{ + char *tmp = dest; + + while (count-- && (*dest++ = *src++) != '\0') + /* nothing */; + + return tmp; +} + +/** + * vsprintf - Format a string and place it in a buffer + * @buf: The buffer to place the result into + * @fmt: The format string to use + * @args: Arguments for the format string + * + * Call this function if you are already dealing with a va_list. + * You probably want sprintf instead. + */ +int vsprintf(char *buf, const char *fmt, va_list args) +{ + return vsnprintf(buf, INT32_MAX, fmt, args); +} +#endif /* MODULE */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/xx/udivdi3.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/xx/udivdi3.c @@ -0,0 +1,132 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include + +#if defined(CONFIG_MODVERSIONS) && !defined(MODVERSIONS) +#define MODVERSIONS +#endif +#ifdef MODVERSIONS +#include +#endif /* MODVERSIONS */ + +#include +#include +#include + + +#define BITS_PER_UNIT 8 +#define SI_TYPE_SIZE (sizeof (SItype) * BITS_PER_UNIT) + + +typedef unsigned int UQItype __attribute__ ((mode (QI))); +typedef int SItype __attribute__ ((mode (SI))); +typedef unsigned int USItype __attribute__ ((mode (SI))); +typedef int DItype __attribute__ ((mode (DI))); +typedef int word_type __attribute__ ((mode (__word__))); +typedef unsigned int UDItype __attribute__ ((mode (DI))); + +struct DIstruct {SItype low, high;}; + +typedef union +{ + struct DIstruct s; + DItype ll; +} DIunion; + + +/* bit divisor, dividend and result. dynamic precision */ +static __inline__ uint64_t _div64_64(uint64_t dividend, uint64_t divisor) +{ + uint32_t d = divisor; + + if (divisor > 0xffffffffULL) + { + unsigned int shift = fls(divisor >> 32); + + d = divisor >> shift; + dividend >>= shift; + } + + /* avoid 64 bit division if possible */ + if (dividend >> 32) + do_div(dividend, d); + else + dividend = (uint32_t) dividend / d; + + return dividend; +} + +UDItype __udivdi3 (UDItype n, UDItype d) +{ + return _div64_64(n, d); +} + +DItype __divdi3 (DItype n, DItype d) +{ + DItype sign = 1; + if (n<0) + { + sign *= -1; + n *= -1; + } + if (d<0) + { + sign *= -1; + d *= -1; + } + return sign*_div64_64((UDItype)n, (UDItype)d); +} + +UDItype __umoddi3 (UDItype n, UDItype d) +{ + return n-(_div64_64(n, d)*d); +} + +#ifdef MODULE +word_type __ucmpdi2 (DItype a, DItype b) +{ + DIunion au, bu; + + au.ll = a, bu.ll = b; + + if ((USItype) au.s.high < (USItype) bu.s.high) + return 0; + else if ((USItype) au.s.high > (USItype) bu.s.high) + return 2; + if ((USItype) au.s.low < (USItype) bu.s.low) + return 0; + else if ((USItype) au.s.low > (USItype) bu.s.low) + return 2; + return 1; +} +#endif /* MODULE */ --- linux-3.13.0.orig/drivers/net/dpa/NetCommSw/src/xx/xx_linux.c +++ linux-3.13.0/drivers/net/dpa/NetCommSw/src/xx/xx_linux.c @@ -0,0 +1,901 @@ +/* Copyright (c) 2008-2011 Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/**************************************************************************//** + @File xx_linux.c + + @Description XX routines implementation for Linux. +*//***************************************************************************/ +#include + +#if defined(CONFIG_MODVERSIONS) && !defined(MODVERSIONS) +#define MODVERSIONS +#endif +#ifdef MODVERSIONS +#include +#endif /* MODVERSIONS */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#ifdef BIGPHYSAREA_ENABLE +#include +#endif /* BIGPHYSAREA_ENABLE */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "error_ext.h" +#include "std_ext.h" +#include "list_ext.h" +#include "mm_ext.h" +#include "sys_io_ext.h" +#include "xx.h" + + +#define __ERR_MODULE__ MODULE_UNKNOWN + +#ifdef BIGPHYSAREA_ENABLE +#define MAX_ALLOCATION_SIZE 128 * 1024 /* Maximum size allocated with kmalloc is 128K */ + + +/* TODO: large allocations => use big phys area */ +/****************************************************************************** + * routine: get_nr_pages + * + * description: + * calculates the number of memory pages for a given size (in bytes) + * + * arguments: + * size - the number of bytes + * + * return code: + * The number of pages + * + *****************************************************************************/ +static __inline__ uint32_t get_nr_pages (uint32_t size) +{ + return (uint32_t)((size >> PAGE_SHIFT) + (size & PAGE_SHIFT ? 1 : 0)); +} + +static bool in_big_phys_area (uint32_t addr) +{ + uint32_t base, size; + + bigphysarea_get_details (&base, &size); + return ((addr >= base) && (addr < base + size)); +} +#endif /* BIGPHYSAREA_ENABLE */ + +void * xx_Malloc(uint32_t n) +{ + void *a; + uint32_t flags; + + flags = XX_DisableAllIntr(); +#ifdef BIGPHYSAREA_ENABLE + if (n >= MAX_ALLOCATION_SIZE) + a = (void*)bigphysarea_alloc_pages(get_nr_pages(n), 0, GFP_ATOMIC); + else +#endif /* BIGPHYSAREA_ENABLE */ + a = (void *)kmalloc((uint32_t)n, GFP_ATOMIC); + if (!a) + XX_Print("No memory for XX_Malloc\n"); + XX_RestoreAllIntr(flags); + + return a; +} + +void xx_Free(void *p) +{ +#ifdef BIGPHYSAREA_ENABLE + if (in_big_phys_area ((uint32_t)p)) + bigphysarea_free_pages(p); + else +#endif /* BIGPHYSAREA_ENABLE */ + kfree(p); +} + +void XX_Exit(int status) +{ + WARN(1, "\n\nFMD: fatal error, driver can't go on!!!\n\n"); +} + +#define BUF_SIZE 512 +void XX_Print(char *str, ...) +{ + va_list args; +#ifdef CONFIG_SMP + char buf[BUF_SIZE]; +#endif /* CONFIG_SMP */ + + va_start(args, str); +#ifdef CONFIG_SMP + if (vsnprintf (buf, BUF_SIZE, str, args) >= BUF_SIZE) + printk(KERN_WARNING "Illegal string to print!\n more than %d characters.\n\tString was not printed completelly.\n", BUF_SIZE); + printk (KERN_WARNING "cpu%d/%d: %s",hard_smp_processor_id(), smp_processor_id(), buf); +#else + vprintk(str, args); +#endif /* CONFIG_SMP */ + va_end(args); +} + +void XX_Fprint(void *file, char *str, ...) +{ + va_list args; +#ifdef CONFIG_SMP + char buf[BUF_SIZE]; +#endif /* CONFIG_SMP */ + + va_start(args, str); +#ifdef CONFIG_SMP + if (vsnprintf (buf, BUF_SIZE, str, args) >= BUF_SIZE) + printk(KERN_WARNING "Illegal string to print!\n more than %d characters.\n\tString was not printed completelly.\n", BUF_SIZE); + printk (KERN_CRIT "cpu%d/%d: %s",hard_smp_processor_id(), smp_processor_id(), buf); +#else + vprintk(str, args); +#endif /* CONFIG_SMP */ + va_end(args); +} + +#ifdef DEBUG_XX_MALLOC +typedef void (*t_ffn)(void *); +typedef struct { + t_ffn f_free; + void *mem; + char *fname; + int fline; + uint32_t size; + t_List node; +} t_MemDebug; +#define MEMDBG_OBJECT(p_List) LIST_OBJECT(p_List, t_MemDebug, node) + +LIST(memDbgLst); + + +void * XX_MallocDebug(uint32_t size, char *fname, int line) +{ + void *mem; + t_MemDebug *p_MemDbg; + + p_MemDbg = (t_MemDebug *)xx_Malloc(sizeof(t_MemDebug)); + if (p_MemDbg == NULL) + return NULL; + + mem = xx_Malloc(size); + if (mem == NULL) + { + XX_Free(p_MemDbg); + return NULL; + } + + INIT_LIST(&p_MemDbg->node); + p_MemDbg->f_free = xx_Free; + p_MemDbg->mem = mem; + p_MemDbg->fname = fname; + p_MemDbg->fline = line; + p_MemDbg->size = size+sizeof(t_MemDebug); + LIST_AddToTail(&p_MemDbg->node, &memDbgLst); + + return mem; +} + +void * XX_MallocSmartDebug(uint32_t size, + int memPartitionId, + uint32_t align, + char *fname, + int line) +{ + void *mem; + t_MemDebug *p_MemDbg; + + p_MemDbg = (t_MemDebug *)XX_Malloc(sizeof(t_MemDebug)); + if (p_MemDbg == NULL) + return NULL; + + mem = xx_MallocSmart((uint32_t)size, memPartitionId, align); + if (mem == NULL) + { + XX_Free(p_MemDbg); + return NULL; + } + + INIT_LIST(&p_MemDbg->node); + p_MemDbg->f_free = xx_FreeSmart; + p_MemDbg->mem = mem; + p_MemDbg->fname = fname; + p_MemDbg->fline = line; + p_MemDbg->size = size+sizeof(t_MemDebug); + LIST_AddToTail(&p_MemDbg->node, &memDbgLst); + + return mem; +} + +static void debug_free(void *mem) +{ + t_List *p_MemDbgLh = NULL; + t_MemDebug *p_MemDbg; + bool found = FALSE; + + if (LIST_IsEmpty(&memDbgLst)) + { + REPORT_ERROR(MAJOR, E_ALREADY_FREE, ("Unbalanced free (0x%08x)", mem)); + return; + } + + LIST_FOR_EACH(p_MemDbgLh, &memDbgLst) + { + p_MemDbg = MEMDBG_OBJECT(p_MemDbgLh); + if (p_MemDbg->mem == mem) + { + found = TRUE; + break; + } + } + + if (!found) + { + REPORT_ERROR(MAJOR, E_NOT_FOUND, + ("Attempt to free unallocated address (0x%08x)",mem)); + dump_stack(); + return; + } + + LIST_Del(p_MemDbgLh); + p_MemDbg->f_free(mem); + p_MemDbg->f_free(p_MemDbg); +} + +void XX_FreeSmart(void *p) +{ + debug_free(p); +} + + +void XX_Free(void *p) +{ + debug_free(p); +} + +#else /* not DEBUG_XX_MALLOC */ +void * XX_Malloc(uint32_t size) +{ + return xx_Malloc(size); +} + +void * XX_MallocSmart(uint32_t size, int memPartitionId, uint32_t alignment) +{ + return xx_MallocSmart(size,memPartitionId, alignment); +} + +void XX_FreeSmart(void *p) +{ + xx_FreeSmart(p); +} + + +void XX_Free(void *p) +{ + xx_Free(p); +} +#endif /* not DEBUG_XX_MALLOC */ + + +#if (defined(REPORT_EVENTS) && (REPORT_EVENTS > 0)) +void XX_EventById(uint32_t event, t_Handle appId, uint16_t flags, char *msg) +{ + e_Event eventCode = (e_Event)event; + + UNUSED(eventCode); + UNUSED(appId); + UNUSED(flags); + UNUSED(msg); +} +#endif /* (defined(REPORT_EVENTS) && ... */ + + +uint32_t XX_DisableAllIntr(void) +{ + unsigned long flags; + + local_irq_save(flags); + + return (uint32_t)flags; +} + +void XX_RestoreAllIntr(uint32_t flags) +{ + local_irq_restore((unsigned long)flags); +} + +t_Error XX_Call( uint32_t qid, t_Error (* f)(t_Handle), t_Handle id, t_Handle appId, uint16_t flags ) +{ + UNUSED(qid); + UNUSED(appId); + UNUSED(flags); + + return f(id); +} + +int XX_IsICacheEnable(void) +{ + return TRUE; +} + +int XX_IsDCacheEnable(void) +{ + return TRUE; +} + + +typedef struct { + t_Isr *f_Isr; + t_Handle handle; +} t_InterruptHandler; + + +t_Handle interruptHandlers[0x00010000]; + +static irqreturn_t LinuxInterruptHandler (int irq, void *dev_id) +{ + t_InterruptHandler *p_IntrHndl = (t_InterruptHandler *)dev_id; + p_IntrHndl->f_Isr(p_IntrHndl->handle); + return IRQ_HANDLED; +} + +t_Error XX_SetIntr(int irq, t_Isr *f_Isr, t_Handle handle) +{ + const char *device; + t_InterruptHandler *p_IntrHndl; + + device = GetDeviceName(irq); + if (device == NULL) + RETURN_ERROR(MAJOR, E_INVALID_VALUE, ("Interrupt source - %d", irq)); + + p_IntrHndl = (t_InterruptHandler *)XX_Malloc(sizeof(t_InterruptHandler)); + if (p_IntrHndl == NULL) + RETURN_ERROR(MAJOR, E_NO_MEMORY, NO_MSG); + p_IntrHndl->f_Isr = f_Isr; + p_IntrHndl->handle = handle; + interruptHandlers[irq] = p_IntrHndl; + + if (request_irq(GetDeviceIrqNum(irq), LinuxInterruptHandler, 0, device, p_IntrHndl) < 0) + RETURN_ERROR(MAJOR, E_BUSY, ("Can't get IRQ %s\n", device)); + disable_irq(GetDeviceIrqNum(irq)); + + return E_OK; +} + +t_Error XX_FreeIntr(int irq) +{ + t_InterruptHandler *p_IntrHndl = interruptHandlers[irq]; + free_irq(GetDeviceIrqNum(irq), p_IntrHndl); + XX_Free(p_IntrHndl); + interruptHandlers[irq] = 0; + return E_OK; +} + +t_Error XX_EnableIntr(int irq) +{ + enable_irq(GetDeviceIrqNum(irq)); + return E_OK; +} + +t_Error XX_DisableIntr(int irq) +{ + disable_irq(GetDeviceIrqNum(irq)); + return E_OK; +} + + +/*****************************************************************************/ +/* Tasklet Service Routines */ +/*****************************************************************************/ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20) +typedef struct +{ + t_Handle h_Data; + void (*f_Callback) (void *); + struct delayed_work dwork; +} t_Tasklet; + +static void GenericTaskletCallback(struct work_struct *p_Work) +{ + t_Tasklet *p_Task = container_of(p_Work, t_Tasklet, dwork.work); + + p_Task->f_Callback(p_Task->h_Data); +} +#endif /* LINUX_VERSION_CODE */ + + +t_TaskletHandle XX_InitTasklet (void (*routine)(void *), void *data) +{ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) + struct work_struct *p_Task; + p_Task = (struct work_struct *)XX_Malloc(sizeof(struct work_struct)); + INIT_WORK(p_Task, routine, data); +#else + t_Tasklet *p_Task = (t_Tasklet *)XX_Malloc(sizeof(t_Tasklet)); + p_Task->h_Data = data; + p_Task->f_Callback = routine; + INIT_DELAYED_WORK(&p_Task->dwork, GenericTaskletCallback); +#endif /* LINUX_VERSION_CODE */ + + return (t_TaskletHandle)p_Task; +} + + +void XX_FreeTasklet (t_TaskletHandle h_Tasklet) +{ + if (h_Tasklet) + XX_Free(h_Tasklet); +} + +int XX_ScheduleTask(t_TaskletHandle h_Tasklet, int immediate) +{ + int ans; + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) + if (immediate) + ans = schedule_work(h_Tasklet); + else + ans = schedule_delayed_work(h_Tasklet, 1); +#else + if (immediate) + ans = schedule_delayed_work(&((t_Tasklet *)h_Tasklet)->dwork, 0); + else + ans = schedule_delayed_work(&((t_Tasklet *)h_Tasklet)->dwork, HZ); +#endif /* LINUX_VERSION_CODE */ + + return ans; +} + +void XX_FlushScheduledTasks(void) +{ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) + flush_scheduled_tasks(); +#else + flush_scheduled_work(); +#endif /* LINUX_VERSION_CODE */ +} + +int XX_TaskletIsQueued(t_TaskletHandle h_Tasklet) +{ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) + return (int)(((struct work_struct *)h_Tasklet)->pending); +#else + return (int)delayed_work_pending(&((t_Tasklet *)h_Tasklet)->dwork); +#endif /* LINUX_VERSION_CODE */ +} + +void XX_SetTaskletData(t_TaskletHandle h_Tasklet, t_Handle data) +{ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) + ((struct tq_struct *)h_Tasklet)->data = data; +#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) + ((struct work_struct *)h_Tasklet)->data = data; +#else + ((t_Tasklet *)h_Tasklet)->h_Data = data; +#endif /* LINUX_VERSION_CODE */ +} + +t_Handle XX_GetTaskletData(t_TaskletHandle h_Tasklet) +{ +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) + return (t_Handle)(((struct work_struct *)h_Tasklet)->data); +#else + return ((t_Tasklet *)h_Tasklet)->h_Data; +#endif /* LINUX_VERSION_CODE */ +} + + +/*****************************************************************************/ +/* Spinlock Service Routines */ +/*****************************************************************************/ + +t_Handle XX_InitSpinlock(void) +{ + spinlock_t *p_Spinlock = (spinlock_t *)XX_Malloc(sizeof(spinlock_t)); + if (!p_Spinlock) + return NULL; + + spin_lock_init(p_Spinlock); + + return (t_Handle)p_Spinlock; +} + +void XX_FreeSpinlock(t_Handle h_Spinlock) +{ + if (h_Spinlock) + XX_Free(h_Spinlock); +} + +void XX_LockSpinlock(t_Handle h_Spinlock) +{ + spin_lock((spinlock_t *)h_Spinlock); +} + +void XX_UnlockSpinlock(t_Handle h_Spinlock) +{ + spin_unlock((spinlock_t *)h_Spinlock); +} + +uint32_t XX_LockIntrSpinlock(t_Handle h_Spinlock) +{ + unsigned long intrFlags; + spin_lock_irqsave((spinlock_t *)h_Spinlock, intrFlags); + return intrFlags; +} + +void XX_UnlockIntrSpinlock(t_Handle h_Spinlock, uint32_t intrFlags) +{ + spin_unlock_irqrestore((spinlock_t *)h_Spinlock, (unsigned long)intrFlags); +} + + +/*****************************************************************************/ +/* Timers Service Routines */ +/*****************************************************************************/ +/* The time now is in mili sec. resolution */ +uint32_t XX_CurrentTime(void) +{ + return (jiffies*1000)/HZ; +} + + +t_Handle XX_CreateTimer(void) +{ + struct timer_list *p_Timer = (struct timer_list *)XX_Malloc(sizeof(struct timer_list)); + if (p_Timer) + { + memset(p_Timer, 0, sizeof(struct timer_list)); + init_timer(p_Timer); + } + return (t_Handle)p_Timer; +} + +void XX_FreeTimer(t_Handle h_Timer) +{ + if (h_Timer) + XX_Free(h_Timer); +} + +void XX_StartTimer(t_Handle h_Timer, + uint32_t msecs, + bool periodic, + void (*f_TimerExpired)(t_Handle), + t_Handle h_Arg) +{ + int tmp_jiffies = (msecs*HZ)/1000; + struct timer_list *p_Timer = (struct timer_list *)h_Timer; + + SANITY_CHECK_RETURN((periodic == FALSE), E_NOT_SUPPORTED); + + p_Timer->function = (void (*)(unsigned long))f_TimerExpired; + p_Timer->data = (unsigned long)h_Arg; + if ((msecs*HZ)%1000) + tmp_jiffies++; + p_Timer->expires = (jiffies + tmp_jiffies); + + add_timer((struct timer_list *)h_Timer); +} + +void XX_SetTimerData(t_Handle h_Timer, t_Handle data) +{ + struct timer_list *p_Timer = (struct timer_list *)h_Timer; + + p_Timer->data = (unsigned long)data; +} + +t_Handle XX_GetTimerData(t_Handle h_Timer) +{ + struct timer_list *p_Timer = (struct timer_list *)h_Timer; + + return (t_Handle)p_Timer->data; +} + +uint32_t XX_GetExpirationTime(t_Handle h_Timer) +{ + struct timer_list *p_Timer = (struct timer_list *)h_Timer; + + return (uint32_t)p_Timer->expires; +} + +void XX_StopTimer(t_Handle h_Timer) +{ + del_timer((struct timer_list *)h_Timer); +} + +void XX_ModTimer(t_Handle h_Timer, uint32_t msecs) +{ + int tmp_jiffies = (msecs*HZ)/1000; + + if ((msecs*HZ)%1000) + tmp_jiffies++; + mod_timer((struct timer_list *)h_Timer, jiffies + tmp_jiffies); +} + +int XX_TimerIsActive(t_Handle h_Timer) +{ + return timer_pending((struct timer_list *)h_Timer); +} + +uint32_t XX_Sleep(uint32_t msecs) +{ + int tmp_jiffies = (msecs*HZ)/1000; + + if ((msecs*HZ)%1000) + tmp_jiffies++; + return schedule_timeout(tmp_jiffies); +} + +/*BEWARE!!!!! UDelay routine is BUSY WAITTING!!!!!*/ +void XX_UDelay(uint32_t usecs) +{ + udelay(usecs); +} + +/* TODO: verify that these are correct */ +#define MSG_BODY_SIZE 512 +typedef t_Error (t_MsgHandler) (t_Handle h_Mod, uint32_t msgId, uint8_t msgBody[MSG_BODY_SIZE]); +typedef void (t_MsgCompletionCB) (t_Handle h_Arg, uint8_t msgBody[MSG_BODY_SIZE]); +t_Error XX_SendMessage(char *p_DestAddr, + uint32_t msgId, + uint8_t msgBody[MSG_BODY_SIZE], + t_MsgCompletionCB *f_CompletionCB, + t_Handle h_CBArg); + +typedef struct { + char *p_Addr; + t_MsgHandler *f_MsgHandlerCB; + t_Handle h_Mod; + t_List node; +} t_MsgHndlr; +#define MSG_HNDLR_OBJECT(ptr) LIST_OBJECT(ptr, t_MsgHndlr, node) + +LIST(msgHndlrList); + +static void EnqueueMsgHndlr(t_MsgHndlr *p_MsgHndlr) +{ + uint32_t intFlags; + + intFlags = XX_DisableAllIntr(); + LIST_AddToTail(&p_MsgHndlr->node, &msgHndlrList); + XX_RestoreAllIntr(intFlags); +} +/* TODO: add this for multi-platform support +static t_MsgHndlr * DequeueMsgHndlr(void) +{ + t_MsgHndlr *p_MsgHndlr = NULL; + uint32_t intFlags; + + intFlags = XX_DisableAllIntr(); + if (!LIST_IsEmpty(&msgHndlrList)) + { + p_MsgHndlr = MSG_HNDLR_OBJECT(msgHndlrList.p_Next); + LIST_DelAndInit(&p_MsgHndlr->node); + } + XX_RestoreAllIntr(intFlags); + + return p_MsgHndlr; +} +*/ +static t_MsgHndlr * FindMsgHndlr(char *p_Addr) +{ + t_MsgHndlr *p_MsgHndlr; + t_List *p_Pos; + + LIST_FOR_EACH(p_Pos, &msgHndlrList) + { + p_MsgHndlr = MSG_HNDLR_OBJECT(p_Pos); + if (strstr(p_MsgHndlr->p_Addr, p_Addr)) + return p_MsgHndlr; + } + + return NULL; +} + +t_Error XX_RegisterMessageHandler (char *p_Addr, t_MsgHandler *f_MsgHandlerCB, t_Handle h_Mod) +{ + t_MsgHndlr *p_MsgHndlr; + uint32_t len; + + p_MsgHndlr = (t_MsgHndlr*)XX_Malloc(sizeof(t_MsgHndlr)); + if (!p_MsgHndlr) + RETURN_ERROR(MINOR, E_NO_MEMORY, ("message handler object!!!")); + memset(p_MsgHndlr, 0, sizeof(t_MsgHndlr)); + + len = strlen(p_Addr); + p_MsgHndlr->p_Addr = (char*)XX_Malloc(len+1); + strncpy(p_MsgHndlr->p_Addr,p_Addr, (uint32_t)(len+1)); + + p_MsgHndlr->f_MsgHandlerCB = f_MsgHandlerCB; + p_MsgHndlr->h_Mod = h_Mod; + INIT_LIST(&p_MsgHndlr->node); + EnqueueMsgHndlr(p_MsgHndlr); + + return E_OK; +} + +t_Error XX_UnregisterMessageHandler (char *p_Addr) +{ + t_MsgHndlr *p_MsgHndlr = FindMsgHndlr(p_Addr); + if (!p_MsgHndlr) + RETURN_ERROR(MINOR, E_NO_DEVICE, ("message handler not found in list!!!")); + + LIST_Del(&p_MsgHndlr->node); + XX_Free(p_MsgHndlr->p_Addr); + XX_Free(p_MsgHndlr); + + return E_OK; +} + +t_Error XX_SendMessage(char *p_DestAddr, + uint32_t msgId, + uint8_t msgBody[MSG_BODY_SIZE], + t_MsgCompletionCB *f_CompletionCB, + t_Handle h_CBArg) +{ + t_Error ans; + t_MsgHndlr *p_MsgHndlr = FindMsgHndlr(p_DestAddr); + if (!p_MsgHndlr) + RETURN_ERROR(MINOR, E_NO_DEVICE, ("message handler not found in list!!!")); + + ans = p_MsgHndlr->f_MsgHandlerCB(p_MsgHndlr->h_Mod, msgId, msgBody); + + if (f_CompletionCB) + f_CompletionCB(h_CBArg, msgBody); + + return ans; +} + +t_Error XX_IpcRegisterMsgHandler(char addr[XX_IPC_MAX_ADDR_NAME_LENGTH], + t_IpcMsgHandler *f_MsgHandler, + t_Handle h_Module, + uint32_t replyLength) +{ + UNUSED(addr);UNUSED(f_MsgHandler);UNUSED(h_Module);UNUSED(replyLength); + return E_OK; +} + +t_Error XX_IpcUnregisterMsgHandler(char addr[XX_IPC_MAX_ADDR_NAME_LENGTH]) +{ + UNUSED(addr); + return E_OK; +} + + +t_Error XX_IpcSendMessage(t_Handle h_Session, + uint8_t *p_Msg, + uint32_t msgLength, + uint8_t *p_Reply, + uint32_t *p_ReplyLength, + t_IpcMsgCompletion *f_Completion, + t_Handle h_Arg) +{ + UNUSED(h_Session); UNUSED(p_Msg); UNUSED(msgLength); UNUSED(p_Reply); + UNUSED(p_ReplyLength); UNUSED(f_Completion); UNUSED(h_Arg); + return E_OK; +} + +t_Handle XX_IpcInitSession(char destAddr[XX_IPC_MAX_ADDR_NAME_LENGTH], + char srcAddr[XX_IPC_MAX_ADDR_NAME_LENGTH]) +{ + UNUSED(destAddr); UNUSED(srcAddr); + return E_OK; +} + +/*Forced to introduce due to PRINT_FMT_PARAMS define*/ +uint32_t E500_GetId(void) +{ + return smp_processor_id(); +} + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) +int GetDeviceIrqNum(int irq) +{ + struct device_node *iPar; + struct irq_domain *irqHost; + uint32_t hwIrq; + + /* Get the interrupt controller */ + iPar = of_find_node_by_name(NULL, "mpic"); + hwIrq = 0; + + ASSERT_COND(iPar != NULL); + /* Get the irq host */ + irqHost = irq_find_host(iPar); + of_node_put(iPar); + + /* Create irq mapping */ + return irq_create_mapping(irqHost, hwIrq); +} +#else +#error "kernel not supported!!!" +#endif /* LINUX_VERSION_CODE */ + +void * XX_PhysToVirt(physAddress_t addr) +{ + return UINT_TO_PTR(SYS_PhysToVirt((uint64_t)addr)); +} + +physAddress_t XX_VirtToPhys(void * addr) +{ + return (physAddress_t)SYS_VirtToPhys(PTR_TO_UINT(addr)); +} + +void * xx_MallocSmart(uint32_t size, int memPartitionId, uint32_t alignment) +{ + uintptr_t *returnCode, tmp; + + if (alignment < sizeof(uintptr_t)) + alignment = sizeof(uintptr_t); + size += alignment + sizeof(returnCode); + tmp = (uintptr_t)xx_Malloc(size); + if (tmp == 0) + return NULL; + returnCode = (uintptr_t*)((tmp + alignment + sizeof(returnCode)) & ~((uintptr_t)alignment - 1)); + *(returnCode - 1) = tmp; + + return (void*)returnCode; +} + +void xx_FreeSmart(void *p) +{ + xx_Free((void*)(*((uintptr_t *)(p) - 1))); +} --- linux-3.13.0.orig/drivers/net/dpa/dpa-ethtool.c +++ linux-3.13.0/drivers/net/dpa/dpa-ethtool.c @@ -0,0 +1,201 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include + +#include "dpaa_eth.h" + +static int __cold dpa_get_settings(struct net_device *net_dev, struct ethtool_cmd *et_cmd) +{ + int _errno; + struct dpa_priv_s *priv; + + priv = netdev_priv(net_dev); + + if (priv->mac_dev == NULL) { + cpu_netdev_info(net_dev, "This is a MAC-less interface\n"); + return -ENODEV; + } + if (unlikely(priv->mac_dev->phy_dev == NULL)) { + cpu_netdev_err(net_dev, "phy device not initialized\n"); + return -ENODEV; + } + + _errno = phy_ethtool_gset(priv->mac_dev->phy_dev, et_cmd); + if (unlikely(_errno < 0)) + cpu_netdev_err(net_dev, "phy_ethtool_gset() = %d\n", _errno); + + return _errno; +} + +static int __cold dpa_set_settings(struct net_device *net_dev, struct ethtool_cmd *et_cmd) +{ + int _errno; + struct dpa_priv_s *priv; + + priv = netdev_priv(net_dev); + + if (priv->mac_dev == NULL) { + cpu_netdev_info(net_dev, "This is a MAC-less interface\n"); + return -ENODEV; + } + if (unlikely(priv->mac_dev->phy_dev == NULL)) { + cpu_netdev_err(net_dev, "phy device not initialized\n"); + return -ENODEV; + } + + _errno = phy_ethtool_sset(priv->mac_dev->phy_dev, et_cmd); + if (unlikely(_errno < 0)) + cpu_netdev_err(net_dev, "phy_ethtool_sset() = %d\n", _errno); + + return _errno; +} + +static void __cold dpa_get_drvinfo(struct net_device *net_dev, struct ethtool_drvinfo *drvinfo) +{ + int _errno; + + strncpy(drvinfo->driver, KBUILD_MODNAME, + sizeof(drvinfo->driver) - 1)[sizeof(drvinfo->driver)-1] = 0; + strncpy(drvinfo->version, VERSION, + sizeof(drvinfo->driver) - 1)[sizeof(drvinfo->version)-1] = 0; + _errno = snprintf(drvinfo->fw_version, sizeof(drvinfo->fw_version), "%X", 0); + + if (unlikely(_errno >= sizeof(drvinfo->fw_version))) { /* Truncated output */ + cpu_netdev_notice(net_dev, "snprintf() = %d\n", _errno); + } else if (unlikely(_errno < 0)) { + cpu_netdev_warn(net_dev, "snprintf() = %d\n", _errno); + memset(drvinfo->fw_version, 0, sizeof(drvinfo->fw_version)); + } + strncpy(drvinfo->bus_info, dev_name(net_dev->dev.parent->parent), + sizeof(drvinfo->bus_info) - 1)[sizeof(drvinfo->bus_info)-1] = 0; +} + +uint32_t __cold dpa_get_msglevel(struct net_device *net_dev) +{ + return ((struct dpa_priv_s *)netdev_priv(net_dev))->msg_enable; +} + +void __cold dpa_set_msglevel(struct net_device *net_dev, uint32_t msg_enable) +{ + ((struct dpa_priv_s *)netdev_priv(net_dev))->msg_enable = msg_enable; +} + +int __cold dpa_nway_reset(struct net_device *net_dev) +{ + int _errno; + struct dpa_priv_s *priv; + + priv = netdev_priv(net_dev); + + if (priv->mac_dev == NULL) { + cpu_netdev_info(net_dev, "This is a MAC-less interface\n"); + return -ENODEV; + } + if (unlikely(priv->mac_dev->phy_dev == NULL)) { + cpu_netdev_err(net_dev, "phy device not initialized\n"); + return -ENODEV; + } + + _errno = 0; + if (priv->mac_dev->phy_dev->autoneg) { + _errno = phy_start_aneg(priv->mac_dev->phy_dev); + if (unlikely(_errno < 0)) + cpu_netdev_err(net_dev, "phy_start_aneg() = %d\n", + _errno); + } + + return _errno; +} + +void __cold dpa_get_ringparam(struct net_device *net_dev, struct ethtool_ringparam *et_ringparam) +{ + et_ringparam->rx_max_pending = 0; + et_ringparam->rx_mini_max_pending = 0; + et_ringparam->rx_jumbo_max_pending = 0; + et_ringparam->tx_max_pending = 0; + + et_ringparam->rx_pending = 0; + et_ringparam->rx_mini_pending = 0; + et_ringparam->rx_jumbo_pending = 0; + et_ringparam->tx_pending = 0; +} + +void __cold dpa_get_pauseparam(struct net_device *net_dev, struct ethtool_pauseparam *et_pauseparam) +{ + struct dpa_priv_s *priv; + + priv = netdev_priv(net_dev); + + if (priv->mac_dev == NULL) { + cpu_netdev_info(net_dev, "This is a MAC-less interface\n"); + return; + } + if (unlikely(priv->mac_dev->phy_dev == NULL)) { + cpu_netdev_err(net_dev, "phy device not initialized\n"); + return; + } + + et_pauseparam->autoneg = priv->mac_dev->phy_dev->autoneg; +} + +int __cold dpa_set_pauseparam(struct net_device *net_dev, struct ethtool_pauseparam *et_pauseparam) +{ + struct dpa_priv_s *priv; + + priv = netdev_priv(net_dev); + + if (priv->mac_dev == NULL) { + cpu_netdev_info(net_dev, "This is a MAC-less interface\n"); + return -ENODEV; + } + if (unlikely(priv->mac_dev->phy_dev == NULL)) { + cpu_netdev_err(net_dev, "phy device not initialized\n"); + return -ENODEV; + } + + priv->mac_dev->phy_dev->autoneg = et_pauseparam->autoneg; + + return 0; +} + +const struct ethtool_ops dpa_ethtool_ops = { + .get_settings = dpa_get_settings, + .set_settings = dpa_set_settings, + .get_drvinfo = dpa_get_drvinfo, + .get_msglevel = dpa_get_msglevel, + .set_msglevel = dpa_set_msglevel, + .nway_reset = dpa_nway_reset, + .get_link = ethtool_op_get_link, + .get_ringparam = dpa_get_ringparam, + .get_pauseparam = dpa_get_pauseparam, + .set_pauseparam = dpa_set_pauseparam, +}; --- linux-3.13.0.orig/drivers/net/dpa/dpaa_1588.c +++ linux-3.13.0/drivers/net/dpa/dpaa_1588.c @@ -0,0 +1,562 @@ +/* + * drivers/net/dpa/dpaa_1588.c + * + * Copyright (C) 2011 Freescale Semiconductor, Inc. + * Copyright (C) 2009 IXXAT Automation, GmbH + * + * DPAA Ethernet Driver -- IEEE 1588 interface functionality + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "dpaa_eth.h" +#include "dpaa_1588.h" + +static int dpa_ptp_init_circ(struct dpa_ptp_circ_buf *ptp_buf, u32 size) +{ + struct circ_buf *circ_buf = &ptp_buf->circ_buf; + + circ_buf->buf = vmalloc(sizeof(struct dpa_ptp_data) * size); + if (!circ_buf->buf) + return 1; + + circ_buf->head = 0; + circ_buf->tail = 0; + ptp_buf->size = size; + spin_lock_init(&ptp_buf->ptp_lock); + + return 0; +} + +static void dpa_ptp_reset_circ(struct dpa_ptp_circ_buf *ptp_buf, u32 size) +{ + struct circ_buf *circ_buf = &ptp_buf->circ_buf; + + circ_buf->head = 0; + circ_buf->tail = 0; + ptp_buf->size = size; +} + +static int dpa_ptp_insert(struct dpa_ptp_circ_buf *ptp_buf, + struct dpa_ptp_data *data) +{ + struct circ_buf *circ_buf = &ptp_buf->circ_buf; + int size = ptp_buf->size; + struct dpa_ptp_data *tmp; + unsigned long flags; + int head, tail; + + spin_lock_irqsave(&ptp_buf->ptp_lock, flags); + + head = circ_buf->head; + tail = circ_buf->tail; + + if (CIRC_SPACE(head, tail, size) <= 0) { + spin_unlock_irqrestore(&ptp_buf->ptp_lock, flags); + return 1; + } + + tmp = (struct dpa_ptp_data *)(circ_buf->buf) + head; + memcpy(tmp, data, sizeof(struct dpa_ptp_data)); + + circ_buf->head = (head + 1) & (size - 1); + + spin_unlock_irqrestore(&ptp_buf->ptp_lock, flags); + + return 0; +} + +static int dpa_ptp_is_ident_match(struct dpa_ptp_ident *dst, + struct dpa_ptp_ident *src) +{ + int ret; + + if ((dst->version != src->version) || (dst->msg_type != src->msg_type)) + return 0; + + if ((dst->netw_prot == src->netw_prot) + || src->netw_prot == DPA_PTP_PROT_DONTCARE) { + if (dst->seq_id != src->seq_id) + return 0; + + ret = memcmp(dst->snd_port_id, src->snd_port_id, + DPA_PTP_SOURCE_PORT_LENGTH); + if (ret) + return 0; + else + return 1; + } + + return 0; +} + +static int dpa_ptp_find_and_remove(struct dpa_ptp_circ_buf *ptp_buf, + struct dpa_ptp_ident *ident, + struct dpa_ptp_time *ts) +{ + struct circ_buf *circ_buf = &ptp_buf->circ_buf; + int size = ptp_buf->size; + int head, tail, idx; + unsigned long flags; + struct dpa_ptp_data *tmp; + struct dpa_ptp_ident *tmp_ident; + + spin_lock_irqsave(&ptp_buf->ptp_lock, flags); + + head = circ_buf->head; + tail = idx = circ_buf->tail; + + if (CIRC_CNT_TO_END(head, tail, size) == 0) { + spin_unlock_irqrestore(&ptp_buf->ptp_lock, flags); + return 1; + } + + while (idx != head) { + tmp = (struct dpa_ptp_data *)(circ_buf->buf) + idx; + tmp_ident = &tmp->ident; + if (dpa_ptp_is_ident_match(tmp_ident, ident)) + break; + idx = (idx + 1) & (size - 1); + } + + if (idx == head) { + circ_buf->tail = head; + spin_unlock_irqrestore(&ptp_buf->ptp_lock, flags); + return 1; + } + + ts->sec = tmp->ts.sec; + ts->nsec = tmp->ts.nsec; + + circ_buf->tail = (idx + 1) & (size - 1); + + spin_unlock_irqrestore(&ptp_buf->ptp_lock, flags); + + return 0; +} + +static int dpa_ptp_get_time(dma_addr_t fd_addr, u32 *high, u32 *low) +{ + u8 *ts_addr = (u8 *)phys_to_virt(fd_addr); + u32 sec, nsec, mod; + u64 tmp; + + ts_addr += DPA_PTP_TIMESTAMP_OFFSET; + sec = *((u32 *)ts_addr); + nsec = *(((u32 *)ts_addr) + 1); + tmp = ((u64)sec << 32 | nsec) * DPA_PTP_NOMINAL_FREQ_PERIOD; + + mod = do_div(tmp, NANOSEC_PER_SECOND); + *high = (u32)tmp; + *low = mod; + + return 0; +} + +/* + * Parse the PTP packets + * + * The PTP header can be found in an IPv4 packet, IPv6 patcket or in + * an IEEE802.3 ethernet frame. This function returns the position of + * the PTP packet or NULL if no PTP found + */ +static u8 *dpa_ptp_parse_packet(struct sk_buff *skb, u16 *eth_type) +{ + u8 *pos = skb->data + ETH_ALEN + ETH_ALEN; + u8 *ptp_loc = NULL; + u8 msg_type; + struct iphdr *iph; + struct udphdr *udph; + struct ipv6hdr *ipv6h; + + *eth_type = *((u16 *)pos); + + /* Check if inner tag is here */ + if (*eth_type == ETH_P_8021Q) { + pos += DPA_VLAN_TAG_LEN; + *eth_type = *((u16 *)pos); + } + + pos += DPA_ETYPE_LEN; + + switch (*eth_type) { + /* Transport of PTP over Ethernet */ + case ETH_P_1588: + ptp_loc = pos; + msg_type = *((u8 *)(ptp_loc + PTP_OFFS_MSG_TYPE)) & 0xf; + if ((msg_type == PTP_MSGTYPE_SYNC) + || (msg_type == PTP_MSGTYPE_DELREQ) + || (msg_type == PTP_MSGTYPE_PDELREQ) + || (msg_type == PTP_MSGTYPE_PDELRESP)) + return ptp_loc; + break; + /* Transport of PTP over IPv4 */ + case ETH_P_IP: + iph = (struct iphdr *)pos; + if (ntohs(iph->protocol) != IPPROTO_UDP) + return NULL; + + pos += iph->ihl * 4; + udph = (struct udphdr *)pos; + if (ntohs(udph->dest) != 319) + return NULL; + ptp_loc = pos + sizeof(struct udphdr); + break; + /* Transport of PTP over IPv6 */ + case ETH_P_IPV6: + ipv6h = (struct ipv6hdr *)pos; + if (ntohs(ipv6h->nexthdr) != IPPROTO_UDP) + return NULL; + + pos += sizeof(struct ipv6hdr); + udph = (struct udphdr *)pos; + if (ntohs(udph->dest) != 319) + return NULL; + ptp_loc = pos + sizeof(struct udphdr); + break; + default: + break; + } + + return ptp_loc; +} + +static int dpa_ptp_store_stamp(struct net_device *dev, struct sk_buff *skb, + dma_addr_t fd_addr, struct dpa_ptp_data *ptp_data) +{ + u32 sec, nsec; + u8 *ptp_loc; + u16 eth_type; + + ptp_loc = dpa_ptp_parse_packet(skb, ð_type); + if (!ptp_loc) + return -EINVAL; + + switch (eth_type) { + case ETH_P_IP: + ptp_data->ident.netw_prot = DPA_PTP_PROT_IPV4; + break; + case ETH_P_IPV6: + ptp_data->ident.netw_prot = DPA_PTP_PROT_IPV6; + break; + case ETH_P_1588: + ptp_data->ident.netw_prot = DPA_PTP_PROT_802_3; + break; + default: + return -EINVAL; + } + + ptp_data->ident.version = *(ptp_loc + PTP_OFFS_VER_PTP) & 0xf; + ptp_data->ident.msg_type = *(ptp_loc + PTP_OFFS_MSG_TYPE) & 0xf; + ptp_data->ident.seq_id = *((u16 *)(ptp_loc + PTP_OFFS_SEQ_ID)); + memcpy(ptp_data->ident.snd_port_id, ptp_loc + PTP_OFFS_SRCPRTID, + DPA_PTP_SOURCE_PORT_LENGTH); + + dpa_ptp_get_time(fd_addr, &sec, &nsec); + ptp_data->ts.sec = (u64)sec; + ptp_data->ts.nsec = nsec; + + return 0; +} + +void dpa_ptp_store_txstamp(struct net_device *dev, struct sk_buff *skb, + const struct qm_fd *fd) +{ + struct dpa_priv_s *priv = netdev_priv(dev); + struct dpa_ptp_tsu *tsu = priv->tsu; + struct dpa_ptp_data ptp_tx_data; + dma_addr_t fd_addr = qm_fd_addr(fd); + int ret; + + ret = dpa_ptp_store_stamp(dev, skb, fd_addr, &ptp_tx_data); + if (ret) + return; + dpa_ptp_insert(&tsu->tx_timestamps, &ptp_tx_data); +} + +void dpa_ptp_store_rxstamp(struct net_device *dev, struct sk_buff *skb, + const struct qm_fd *fd) +{ + struct dpa_priv_s *priv = netdev_priv(dev); + struct dpa_ptp_tsu *tsu = priv->tsu; + struct dpa_ptp_data ptp_rx_data; + dma_addr_t fd_addr = qm_fd_addr(fd); + int ret; + + ret = dpa_ptp_store_stamp(dev, skb, fd_addr, &ptp_rx_data); + if (ret) + return; + dpa_ptp_insert(&tsu->rx_timestamps, &ptp_rx_data); +} + +static uint8_t dpa_get_tx_timestamp(struct dpa_ptp_tsu *ptp_tsu, + struct dpa_ptp_ident *ident, + struct dpa_ptp_time *ts) +{ + struct dpa_ptp_tsu *tsu = ptp_tsu; + struct dpa_ptp_time tmp; + int flag; + + flag = dpa_ptp_find_and_remove(&tsu->tx_timestamps, ident, &tmp); + if (!flag) { + ts->sec = tmp.sec; + ts->nsec = tmp.nsec; + return 0; + } + + return -1; +} + +static uint8_t dpa_get_rx_timestamp(struct dpa_ptp_tsu *ptp_tsu, + struct dpa_ptp_ident *ident, + struct dpa_ptp_time *ts) +{ + struct dpa_ptp_tsu *tsu = ptp_tsu; + struct dpa_ptp_time tmp; + int flag; + + flag = dpa_ptp_find_and_remove(&tsu->rx_timestamps, ident, &tmp); + if (!flag) { + ts->sec = tmp.sec; + ts->nsec = tmp.nsec; + return 0; + } + + return -1; +} + +static void dpa_set_fiper_alarm(struct dpa_ptp_tsu *tsu, + struct dpa_ptp_time *cnt_time) +{ + struct mac_device *mac_dev = tsu->dpa_priv->mac_dev; + u64 tmp, fiper; + + if (mac_dev->fm_rtc_disable) + mac_dev->fm_rtc_disable(tsu->dpa_priv->net_dev); + + /* TMR_FIPER1 will pulse every second after ALARM1 expired */ + tmp = (u64)cnt_time->sec * NANOSEC_PER_SECOND + (u64)cnt_time->nsec; + fiper = NANOSEC_PER_SECOND - DPA_PTP_NOMINAL_FREQ_PERIOD; + if (mac_dev->fm_rtc_set_alarm) + mac_dev->fm_rtc_set_alarm(tsu->dpa_priv->net_dev, 0, tmp); + if (mac_dev->fm_rtc_set_fiper) + mac_dev->fm_rtc_set_fiper(tsu->dpa_priv->net_dev, 0, fiper); + + if (mac_dev->fm_rtc_enable) + mac_dev->fm_rtc_enable(tsu->dpa_priv->net_dev); +} + +static void dpa_get_curr_cnt(struct dpa_ptp_tsu *tsu, + struct dpa_ptp_time *curr_time) +{ + struct mac_device *mac_dev = tsu->dpa_priv->mac_dev; + u64 tmp; + u32 mod; + + if (mac_dev->fm_rtc_get_cnt) + mac_dev->fm_rtc_get_cnt(tsu->dpa_priv->net_dev, &tmp); + + mod = do_div(tmp, NANOSEC_PER_SECOND); + curr_time->sec = (u32)tmp; + curr_time->nsec = mod; +} + +static void dpa_set_1588cnt(struct dpa_ptp_tsu *tsu, + struct dpa_ptp_time *cnt_time) +{ + struct mac_device *mac_dev = tsu->dpa_priv->mac_dev; + u64 tmp; + + tmp = (u64)cnt_time->sec * NANOSEC_PER_SECOND + (u64)cnt_time->nsec; + + if (mac_dev->fm_rtc_set_cnt) + mac_dev->fm_rtc_set_cnt(tsu->dpa_priv->net_dev, tmp); + + /* Restart fiper two seconds later */ + cnt_time->sec += 2; + cnt_time->nsec = 0; + dpa_set_fiper_alarm(tsu, cnt_time); +} + +static void dpa_get_drift(struct dpa_ptp_tsu *tsu, u32 *addend) +{ + struct mac_device *mac_dev = tsu->dpa_priv->mac_dev; + u32 drift; + + if (mac_dev->fm_rtc_get_drift) + mac_dev->fm_rtc_get_drift(tsu->dpa_priv->net_dev, &drift); + + *addend = drift; +} + +static void dpa_set_drift(struct dpa_ptp_tsu *tsu, u32 addend) +{ + struct mac_device *mac_dev = tsu->dpa_priv->mac_dev; + + if (mac_dev->fm_rtc_set_drift) + mac_dev->fm_rtc_set_drift(tsu->dpa_priv->net_dev, addend); +} + +static void dpa_flush_timestamp(struct dpa_ptp_tsu *tsu) +{ + dpa_ptp_reset_circ(&tsu->rx_timestamps, DEFAULT_PTP_RX_BUF_SZ); + dpa_ptp_reset_circ(&tsu->tx_timestamps, DEFAULT_PTP_TX_BUF_SZ); +} + +int dpa_ioctl_1588(struct net_device *dev, struct ifreq *ifr, int cmd) +{ + struct dpa_priv_s *priv = netdev_priv(dev); + struct dpa_ptp_tsu *tsu = priv->tsu; + struct mac_device *mac_dev = priv->mac_dev; + struct dpa_ptp_data ptp_data; + struct dpa_ptp_data *ptp_data_user; + struct dpa_ptp_time act_time; + u32 addend; + int retval = 0; + + if (!tsu || !tsu->valid) + return -ENODEV; + + switch (cmd) { + case PTP_ENBL_TXTS_IOCTL: + tsu->hwts_tx_en_ioctl = 1; + if (mac_dev->ptp_enable) + mac_dev->ptp_enable(mac_dev); + break; + case PTP_DSBL_TXTS_IOCTL: + tsu->hwts_tx_en_ioctl = 0; + if (mac_dev->ptp_disable) + mac_dev->ptp_disable(mac_dev); + break; + case PTP_ENBL_RXTS_IOCTL: + tsu->hwts_rx_en_ioctl = 1; + break; + case PTP_DSBL_RXTS_IOCTL: + tsu->hwts_rx_en_ioctl = 0; + break; + case PTP_GET_RX_TIMESTAMP: + ptp_data_user = (struct dpa_ptp_data *)ifr->ifr_data; + if (copy_from_user(&ptp_data.ident, + &ptp_data_user->ident, sizeof(ptp_data.ident))) + return -EINVAL; + + if (dpa_get_rx_timestamp(tsu, &ptp_data.ident, &ptp_data.ts)) + return -EAGAIN; + + if (copy_to_user((void __user *)&ptp_data_user->ts, + &ptp_data.ts, sizeof(ptp_data.ts))) + return -EFAULT; + break; + case PTP_GET_TX_TIMESTAMP: + ptp_data_user = (struct dpa_ptp_data *)ifr->ifr_data; + if (copy_from_user(&ptp_data.ident, + &ptp_data_user->ident, sizeof(ptp_data.ident))) + return -EINVAL; + + if (dpa_get_tx_timestamp(tsu, &ptp_data.ident, &ptp_data.ts)) + return -EAGAIN; + + if (copy_to_user((void __user *)&ptp_data_user->ts, + &ptp_data.ts, sizeof(ptp_data.ts))) + return -EFAULT; + break; + case PTP_GET_TIME: + dpa_get_curr_cnt(tsu, &act_time); + if (copy_to_user(ifr->ifr_data, &act_time, sizeof(act_time))) + return -EFAULT; + break; + case PTP_SET_TIME: + if (copy_from_user(&act_time, ifr->ifr_data, sizeof(act_time))) + return -EINVAL; + dpa_set_1588cnt(tsu, &act_time); + break; + case PTP_GET_ADJ: + dpa_get_drift(tsu, &addend); + if (copy_to_user(ifr->ifr_data, &addend, sizeof(addend))) + return -EFAULT; + break; + case PTP_SET_ADJ: + if (copy_from_user(&addend, ifr->ifr_data, sizeof(addend))) + return -EINVAL; + dpa_set_drift(tsu, addend); + break; + case PTP_SET_FIPER_ALARM: + if (copy_from_user(&act_time, ifr->ifr_data, sizeof(act_time))) + return -EINVAL; + dpa_set_fiper_alarm(tsu, &act_time); + break; + case PTP_CLEANUP_TS: + dpa_flush_timestamp(tsu); + break; + default: + return -EINVAL; + } + + return retval; +} + +int dpa_ptp_init(struct dpa_priv_s *priv) +{ + struct dpa_ptp_tsu *tsu; + + /* Allocate memory for PTP structure */ + tsu = kzalloc(sizeof(struct dpa_ptp_tsu), GFP_KERNEL); + if (!tsu) + return -ENOMEM; + + memset(tsu, 0, sizeof(*tsu)); + tsu->valid = TRUE; + tsu->dpa_priv = priv; + + dpa_ptp_init_circ(&tsu->rx_timestamps, DEFAULT_PTP_RX_BUF_SZ); + dpa_ptp_init_circ(&tsu->tx_timestamps, DEFAULT_PTP_TX_BUF_SZ); + + priv->tsu = tsu; + + return 0; +} +EXPORT_SYMBOL(dpa_ptp_init); + +void dpa_ptp_cleanup(struct dpa_priv_s *priv) +{ + struct dpa_ptp_tsu *tsu = priv->tsu; + + tsu->valid = FALSE; + vfree(tsu->rx_timestamps.circ_buf.buf); + vfree(tsu->tx_timestamps.circ_buf.buf); + + kfree(tsu); +} +EXPORT_SYMBOL(dpa_ptp_cleanup); + +static int __init __cold dpa_ptp_load(void) +{ + return 0; +} +module_init(dpa_ptp_load); + +static void __exit __cold dpa_ptp_unload(void) +{ +} +module_exit(dpa_ptp_unload); --- linux-3.13.0.orig/drivers/net/dpa/dpaa_1588.h +++ linux-3.13.0/drivers/net/dpa/dpaa_1588.h @@ -0,0 +1,141 @@ +/* + * drivers/net/dpa/dpaa_1588.h + * + * Copyright (C) 2011 Freescale Semiconductor, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ +#ifndef __DPAA_1588_H__ +#define __DPAA_1588_H__ + +#include +#include +#include +#include + +#define DEFAULT_PTP_RX_BUF_SZ 2048 +#define DEFAULT_PTP_TX_BUF_SZ 512 + +/* 1588 private ioctl calls */ +#define PTP_ENBL_TXTS_IOCTL SIOCDEVPRIVATE +#define PTP_DSBL_TXTS_IOCTL (SIOCDEVPRIVATE + 1) +#define PTP_ENBL_RXTS_IOCTL (SIOCDEVPRIVATE + 2) +#define PTP_DSBL_RXTS_IOCTL (SIOCDEVPRIVATE + 3) +#define PTP_GET_TX_TIMESTAMP (SIOCDEVPRIVATE + 4) +#define PTP_GET_RX_TIMESTAMP (SIOCDEVPRIVATE + 5) +#define PTP_SET_TIME (SIOCDEVPRIVATE + 6) +#define PTP_GET_TIME (SIOCDEVPRIVATE + 7) +#define PTP_SET_FIPER_ALARM (SIOCDEVPRIVATE + 8) +#define PTP_SET_ADJ (SIOCDEVPRIVATE + 9) +#define PTP_GET_ADJ (SIOCDEVPRIVATE + 10) +#define PTP_CLEANUP_TS (SIOCDEVPRIVATE + 11) + +/* PTP V2 message type */ +enum { + PTP_MSGTYPE_SYNC = 0x0, + PTP_MSGTYPE_DELREQ = 0x1, + PTP_MSGTYPE_PDELREQ = 0x2, + PTP_MSGTYPE_PDELRESP = 0x3, + PTP_MSGTYPE_FLWUP = 0x8, + PTP_MSGTYPE_DELRESP = 0x9, + PTP_MSGTYPE_PDELRES_FLWUP = 0xA, + PTP_MSGTYPE_ANNOUNCE = 0xB, + PTP_MSGTYPE_SGNLNG = 0xC, + PTP_MSGTYPE_MNGMNT = 0xD, +}; + +/* Byte offset of data in the PTP V2 headers */ +#define PTP_OFFS_MSG_TYPE 0 +#define PTP_OFFS_VER_PTP 1 +#define PTP_OFFS_MSG_LEN 2 +#define PTP_OFFS_DOM_NMB 4 +#define PTP_OFFS_FLAGS 6 +#define PTP_OFFS_CORFIELD 8 +#define PTP_OFFS_SRCPRTID 20 +#define PTP_OFFS_SEQ_ID 30 +#define PTP_OFFS_CTRL 32 +#define PTP_OFFS_LOGMEAN 33 + +#define PTP_IP_OFFS 14 +#define PTP_UDP_OFFS 34 +#define PTP_HEADER_OFFS 42 +#define PTP_MSG_TYPE_OFFS (PTP_HEADER_OFFS + PTP_OFFS_MSG_TYPE) +#define PTP_SPORT_ID_OFFS (PTP_HEADER_OFFS + PTP_OFFS_SRCPRTID) +#define PTP_SEQ_ID_OFFS (PTP_HEADER_OFFS + PTP_OFFS_SEQ_ID) +#define PTP_CTRL_OFFS (PTP_HEADER_OFFS + PTP_OFFS_CTRL) + +/* 1588-2008 network protocol enumeration values */ +#define DPA_PTP_PROT_IPV4 1 +#define DPA_PTP_PROT_IPV6 2 +#define DPA_PTP_PROT_802_3 3 +#define DPA_PTP_PROT_DONTCARE 0xFFFF + +#define DPA_PTP_SOURCE_PORT_LENGTH 10 +#define DPA_PTP_HEADER_SZE 34 +#define DPA_ETYPE_LEN 2 +#define DPA_VLAN_TAG_LEN 4 + +#define DPA_PTP_TIMESTAMP_OFFSET 0x30 +#define DPA_PTP_NOMINAL_FREQ_PERIOD 0xa /* 10ns -> 100M */ +#define NANOSEC_PER_SECOND 1000000000 + +/* Struct needed to identify a timestamp */ +struct dpa_ptp_ident { + u8 version; + u8 msg_type; + u16 netw_prot; + u16 seq_id; + u8 snd_port_id[DPA_PTP_SOURCE_PORT_LENGTH]; +}; + +/* Timestamp format in 1588-2008 */ +struct dpa_ptp_time { + u64 sec; /* just 48 bit used */ + u32 nsec; +}; + +/* needed for timestamp data over ioctl */ +struct dpa_ptp_data { + struct dpa_ptp_ident ident; + struct dpa_ptp_time ts; +}; + +struct dpa_ptp_circ_buf { + struct circ_buf circ_buf; + u32 size; + spinlock_t ptp_lock; +}; + +/* PTP TSU control structure */ +struct dpa_ptp_tsu { + struct dpa_priv_s *dpa_priv; + bool valid; + struct dpa_ptp_circ_buf rx_timestamps; + struct dpa_ptp_circ_buf tx_timestamps; + + /* HW timestamping over ioctl enabled flag */ + int hwts_tx_en_ioctl; + int hwts_rx_en_ioctl; +}; + +extern int dpa_ptp_init(struct dpa_priv_s *priv); +extern void dpa_ptp_cleanup(struct dpa_priv_s *priv); +extern void dpa_ptp_store_txstamp(struct net_device *dev, struct sk_buff *skb, + const struct qm_fd *fd); +extern void dpa_ptp_store_rxstamp(struct net_device *dev, struct sk_buff *skb, + const struct qm_fd *fd); +extern int dpa_ioctl_1588(struct net_device *dev, struct ifreq *ifr, int cmd); +#endif --- linux-3.13.0.orig/drivers/net/dpa/dpaa_eth-common.h +++ linux-3.13.0/drivers/net/dpa/dpaa_eth-common.h @@ -0,0 +1,150 @@ +/* + * Copyright 2008-2011 Freescale Semiconductor Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __DPA_COMMON_H +#define __DPA_COMMON_H + +#include /* pr_*() */ +#include /* dev_*() */ +#include /* smp_processor_id() */ + +/* The basename of the source file is being compiled */ +#define __file__ KBUILD_BASENAME".c" + +#define __hot + +#define cpu_printk(level, format, arg...) \ + pr_##level("cpu%d: " format, smp_processor_id(), ##arg) + +#define cpu_pr_emerg(format, arg...) \ + cpu_printk(emerg, format, ##arg) +#define cpu_pr_alert(format, arg...) \ + cpu_printk(alert, format, ##arg) +#define cpu_pr_crit(format, arg...) \ + cpu_printk(crit, format, ##arg) +#define cpu_pr_err(format, arg...) \ + cpu_printk(err, format, ##arg) +#define cpu_pr_warning(format, arg...) \ + cpu_printk(warning, format, ##arg) +#define cpu_pr_notice(format, arg...) \ + cpu_printk(notice, format, ##arg) +#define cpu_pr_info(format, arg...) \ + cpu_printk(info, format, ##arg) +#define cpu_pr_debug(format, arg...) \ + cpu_printk(debug, format, ##arg) + +/* Keep this in sync with the dev_*() definitions from linux/device.h */ +#define cpu_dev_printk(level, dev, format, arg...) \ + cpu_pr_##level("%s: %s: " format, dev_driver_string(dev), \ + dev_name(dev), ##arg) + +#define cpu_dev_emerg(dev, format, arg...) \ + cpu_dev_printk(emerg, dev, format, ##arg) +#define cpu_dev_alert(dev, format, arg...) \ + cpu_dev_printk(alert, dev, format, ##arg) +#define cpu_dev_crit(dev, format, arg...) \ + cpu_dev_printk(crit, dev, format, ##arg) +#define cpu_dev_err(dev, format, arg...) \ + cpu_dev_printk(err, dev, format, ##arg) +#define cpu_dev_warn(dev, format, arg...) \ + cpu_dev_printk(warning, dev, format, ##arg) +#define cpu_dev_notice(dev, format, arg...) \ + cpu_dev_printk(notice, dev, format, ##arg) +#define cpu_dev_info(dev, format, arg...) \ + cpu_dev_printk(info, dev, format, ##arg) +#define cpu_dev_dbg(dev, format, arg...) \ + cpu_dev_printk(debug, dev, format, ##arg) + +#define dpaa_eth_printk(level, dev, format, arg...) \ + cpu_dev_printk(level, dev, "%s:%hu:%s() " format, \ + __file__, __LINE__, __func__, ##arg) + +#define dpaa_eth_emerg(dev, format, arg...) \ + dpaa_eth_printk(emerg, dev, format, ##arg) +#define dpaa_eth_alert(dev, format, arg...) \ + dpaa_eth_printk(alert, dev, format, ##arg) +#define dpaa_eth_crit(dev, format, arg...) \ + dpaa_eth_printk(crit, dev, format, ##arg) +#define dpaa_eth_err(dev, format, arg...) \ + dpaa_eth_printk(err, dev, format, ##arg) +#define dpaa_eth_warning(dev, format, arg...) \ + dpaa_eth_printk(warning, dev, format, ##arg) +#define dpaa_eth_notice(dev, format, arg...) \ + dpaa_eth_printk(notice, dev, format, ##arg) +#define dpaa_eth_info(dev, format, arg...) \ + dpaa_eth_printk(info, dev, format, ##arg) +#define dpaa_eth_debug(dev, format, arg...) \ + dpaa_eth_printk(debug, dev, format, ##arg) + +#define cpu_netdev_emerg(net_dev, format, arg...) \ + dpaa_eth_emerg((net_dev)->dev.parent, "%s: " format, \ + (net_dev)->name , ##arg) +#define cpu_netdev_alert(net_dev, format, arg...) \ + dpaa_eth_alert((net_dev)->dev.parent, "%s: " format, \ + (net_dev)->name , ##arg) +#define cpu_netdev_crit(net_dev, format, arg...) \ + dpaa_eth_crit((net_dev)->dev.parent, "%s: " format, \ + (net_dev)->name , ##arg) +#define cpu_netdev_err(net_dev, format, arg...) \ + dpaa_eth_err((net_dev)->dev.parent, "%s: " format, \ + (net_dev)->name , ##arg) +#define cpu_netdev_warn(net_dev, format, arg...) \ + dpaa_eth_warning((net_dev)->dev.parent, "%s: " format, \ + (net_dev)->name , ##arg) +#define cpu_netdev_notice(net_dev, format, arg...) \ + dpaa_eth_notice((net_dev)->dev.parent, "%s: " format, \ + (net_dev)->name , ##arg) +#define cpu_netdev_info(net_dev, format, arg...) \ + dpaa_eth_info((net_dev)->dev.parent, "%s: " format, \ + (net_dev)->name , ##arg) +#define cpu_netdev_dbg(net_dev, format, arg...) \ + dpaa_eth_debug((net_dev)->dev.parent, "%s: " format, \ + (net_dev)->name , ##arg) + +enum {RX, TX}; + +#define DPA_PRIV_DATA_SIZE 16 +#define DPA_PARSE_RESULTS_SIZE sizeof(t_FmPrsResult) +#define DPA_HASH_RESULTS_SIZE 16 + +#define dpaa_eth_init_port(type, port, param, errq_id, defq_id, has_timer) \ +{ \ + param.errq = errq_id; \ + param.defq = defq_id; \ + param.priv_data_size = DPA_PRIV_DATA_SIZE; \ + param.parse_results = true; \ + param.hash_results = true; \ + param.time_stamp = has_timer; \ + fm_set_##type##_port_params(port, ¶m); \ +} + +#endif /* __DPA_COMMON_H */ --- linux-3.13.0.orig/drivers/net/dpa/dpaa_eth.c +++ linux-3.13.0/drivers/net/dpa/dpaa_eth.c @@ -0,0 +1,3237 @@ +/* + * Copyright 2008-2011 Freescale Semiconductor Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include /* arp_hdr_len() */ +#include /* VLAN_HLEN */ +#include /* struct icmphdr */ +#include /* struct iphdr */ +#include /* struct ipv6hdr */ +#include /* struct udphdr */ +#include /* struct tcphdr */ +#include /* net_ratelimit() */ +#include /* ETH_P_IP and ETH_P_IPV6 */ +#include +#include +#include +#include /* get_hard_smp_processor_id() */ +#include +#ifdef CONFIG_DEBUG_FS +#include +#endif +#include + +#include "fsl_fman.h" +#include "fm_ext.h" +#include "fm_port_ext.h" + +#include "mac.h" +#include "dpaa_eth.h" +#include "dpaa_1588.h" + +#define ARRAY2_SIZE(arr) (ARRAY_SIZE(arr) * ARRAY_SIZE((arr)[0])) + +#define DPA_NETIF_FEATURES (NETIF_F_HW_QDISC) +#define DEFAULT_COUNT 64 +#define DEFAULT_BUF_SIZE DPA_BP_SIZE(fsl_fman_phy_maxfrm); +#define DPA_MAX_TX_BACKLOG 512 +#define DPA_NAPI_WEIGHT 64 + +#define DPA_BP_REFILL (1 | (smp_processor_id() << 16)) +#define DPA_BP_FINE ((smp_processor_id() << 16)) +#define DPA_BP_REFILL_NEEDED 1 + +/* Bootarg used to override the Kconfig DPA_MAX_FRM_SIZE value */ +#define FSL_FMAN_PHY_MAXFRM_BOOTARG "fsl_fman_phy_max_frm" + +/* + * Values for the L3R field of the FM Parse Results + */ +/* L3 Type field: First IP Present IPv4 */ +#define FM_L3_PARSE_RESULT_IPV4 0x8000 +/* L3 Type field: First IP Present IPv6 */ +#define FM_L3_PARSE_RESULT_IPV6 0x4000 + +/* + * Values for the L4R field of the FM Parse Results + */ +/* L4 Type field: UDP */ +#define FM_L4_PARSE_RESULT_UDP 0x40 +/* L4 Type field: TCP */ +#define FM_L4_PARSE_RESULT_TCP 0x20 + +/* + * FD status field indicating whether the FM Parser has attempted to validate + * the L4 csum of the frame. + * Note that having this bit set doesn't necessarily imply that the checksum + * is valid. One would have to check the parse results to find that out. + */ +#define FM_FD_STAT_L4CV 0x00000004 + +#define DPA_DESCRIPTION "FSL DPAA Ethernet driver" + +MODULE_LICENSE("Dual BSD/GPL"); + +MODULE_AUTHOR("Andy Fleming "); + +MODULE_DESCRIPTION(DPA_DESCRIPTION); + +static uint8_t debug = -1; +module_param(debug, byte, S_IRUGO); +MODULE_PARM_DESC(debug, "Module/Driver verbosity level"); + +static uint16_t tx_timeout = 1000; +module_param(tx_timeout, ushort, S_IRUGO); +MODULE_PARM_DESC(tx_timeout, "The Tx timeout in ms"); + +#ifdef CONFIG_DEBUG_FS +static struct dentry *dpa_debugfs_root; +#endif + +/* + * Max frame size, across all interfaces. + * Configurable from Kconfig or bootargs, to avoid allocating + * oversized (socket) buffers when not using jumbo frames. + * Must be large enough to accomodate the network MTU, but small enough + * to avoid wasting skb memory. + * + * Could be overridden once, at boot-time, via the + * fsl_fman_phy_set_max_frm() callback. + */ +int fsl_fman_phy_maxfrm = CONFIG_DPA_MAX_FRM_SIZE; + +static const char rtx[][3] = { + [RX] = "RX", + [TX] = "TX" +}; + +struct dpa_fq { + struct qman_fq fq_base; + struct list_head list; + struct net_device *net_dev; + bool init; + uint32_t fqid; + uint32_t flags; + uint16_t channel; + uint8_t wq; +}; + +/* BM */ + +#ifdef DEBUG +#define GFP_DPA_BP (GFP_DMA | __GFP_ZERO | GFP_ATOMIC) +#else +#define GFP_DPA_BP (GFP_DMA | GFP_ATOMIC) +#endif + +#define DPA_BP_HEAD (DPA_PRIV_DATA_SIZE + DPA_PARSE_RESULTS_SIZE + \ + DPA_HASH_RESULTS_SIZE) +#define DPA_BP_SIZE(s) (DPA_BP_HEAD + (s)) + +#define DPAA_ETH_MAX_PAD (L1_CACHE_BYTES * 8) + +#define FM_FD_STAT_ERRORS \ + (FM_PORT_FRM_ERR_DMA | FM_PORT_FRM_ERR_PHYSICAL | \ + FM_PORT_FRM_ERR_SIZE | FM_PORT_FRM_ERR_CLS_DISCARD | \ + FM_PORT_FRM_ERR_EXTRACTION | FM_PORT_FRM_ERR_NO_SCHEME | \ + FM_PORT_FRM_ERR_ILL_PLCR | FM_PORT_FRM_ERR_PRS_TIMEOUT | \ + FM_PORT_FRM_ERR_PRS_ILL_INSTRUCT | FM_PORT_FRM_ERR_PRS_HDR_ERR) + +static struct dpa_bp *dpa_bp_array[64]; + +static struct dpa_bp *default_pool; + +static struct dpa_bp *dpa_bpid2pool(int bpid) +{ + return dpa_bp_array[bpid]; +} + +static void dpa_bp_depletion(struct bman_portal *portal, + struct bman_pool *pool, void *cb_ctx, int depleted) +{ + if (net_ratelimit()) + pr_err("Invalid Pool depleted notification!\n"); +} + +static void bmb_free(struct dpa_bp *bp, struct bm_buffer *bmb) +{ + int i; + struct sk_buff **skbh; + struct sk_buff *skb; + + for (i = 0; i < 8; i++) { + dma_addr_t addr = bm_buf_addr(&bmb[i]); + if (!addr) + break; + + skbh = (struct sk_buff **)phys_to_virt(addr); + skb = *skbh; + + dma_unmap_single(bp->dev, addr, bp->size, DMA_FROM_DEVICE); + + dev_kfree_skb(skb); + } +} + +static void dpa_bp_add_8(struct dpa_bp *dpa_bp) +{ + struct bm_buffer bmb[8]; + struct sk_buff **skbh; + dma_addr_t addr; + int i; + struct sk_buff *skb; + int err; + int *count_ptr; + + count_ptr = per_cpu_ptr(dpa_bp->percpu_count, smp_processor_id()); + + for (i = 0; i < 8; i++) { + /* + * The buffers tend to be aligned all to the same cache + * index. A standard dequeue operation pulls in 15 packets. + * This means that when it stashes, it evicts half of the + * packets it's stashing. In order to prevent that, we pad + * by a variable number of cache lines, to reduce collisions. + * We always pad by at least 1 cache line, because we want + * a little extra room at the beginning for IPSec and to + * accommodate NET_IP_ALIGN. + */ + int pad = (i + 1) * L1_CACHE_BYTES; + + skb = dev_alloc_skb(dpa_bp->size + pad); + if (unlikely(!skb)) { + printk(KERN_ERR "dev_alloc_skb() failed for %d bytes\n", dpa_bp->size + pad); + bm_buffer_set64(&bmb[i], 0); + break; + } + + skbh = (struct sk_buff **)(skb->head + pad); + *skbh = skb; + + addr = dma_map_single(dpa_bp->dev, skb->head + pad, + dpa_bp->size, DMA_FROM_DEVICE); + + bm_buffer_set64(&bmb[i], addr); + } + + /* Avoid releasing a completely null buffer; bman_release() requires + * at least one buf. */ + if (likely(i)) { + err = bman_release(dpa_bp->pool, bmb, i, 0); + + if (unlikely(err < 0)) + bmb_free(dpa_bp, bmb); + else + *count_ptr += i; + } +} + +static void dpa_make_private_pool(struct dpa_bp *dpa_bp) +{ + int i; + + dpa_bp->percpu_count = __alloc_percpu(sizeof(*dpa_bp->percpu_count), + __alignof__(*dpa_bp->percpu_count)); + + /* Give each cpu an allotment of "count" buffers */ + for_each_online_cpu(i) { + int *thiscount; + int *countptr; + int j; + thiscount = per_cpu_ptr(dpa_bp->percpu_count, + smp_processor_id()); + countptr = per_cpu_ptr(dpa_bp->percpu_count, i); + + for (j = 0; j < dpa_bp->count; j += 8) + dpa_bp_add_8(dpa_bp); + + /* Adjust the counts */ + *countptr = j; + + if (countptr != thiscount) + *thiscount = *thiscount - j; + } +} + + +static void dpaa_eth_seed_pool(struct dpa_bp *bp) +{ + size_t count = bp->count; + size_t addr = bp->paddr; + + while (count) { + struct bm_buffer bufs[8]; + int num_bufs = 0; + + do { + BUG_ON(addr > 0xffffffffffffull); + bufs[num_bufs].bpid = bp->bpid; + bm_buffer_set64(&bufs[num_bufs++], addr); + addr += bp->size; + + } while (--count && (num_bufs < 8)); + + while (bman_release(bp->pool, bufs, num_bufs, 0)) + cpu_relax(); + } +} + +static int dpa_make_shared_pool(struct dpa_bp *bp) +{ + devm_request_mem_region(bp->dev, bp->paddr, bp->size * bp->count, + KBUILD_MODNAME); + bp->vaddr = devm_ioremap_prot(bp->dev, bp->paddr, + bp->size * bp->count, 0); + if (bp->vaddr == NULL) { + cpu_pr_err("Could not map memory for pool %d\n", bp->bpid); + return -EIO; + } + + if (bp->seed_pool) + dpaa_eth_seed_pool(bp); + + return 0; +} + +static int __must_check __attribute__((nonnull)) +dpa_bp_alloc(struct dpa_bp *dpa_bp) +{ + int err = 0; + struct bman_pool_params bp_params; + struct platform_device *pdev; + + BUG_ON(dpa_bp->size == 0); + BUG_ON(dpa_bp->count == 0); + + bp_params.flags = BMAN_POOL_FLAG_DEPLETION; + bp_params.cb = dpa_bp_depletion; + bp_params.cb_ctx = dpa_bp; + + /* We support two options. Either a global shared pool, or + * a specified pool. If the pool is specified, we only + * create one per bpid */ + if (dpa_bp->kernel_pool && default_pool) { + atomic_inc(&default_pool->refs); + return 0; + } + + if (dpa_bp_array[dpa_bp->bpid]) { + atomic_inc(&dpa_bp_array[dpa_bp->bpid]->refs); + return 0; + } + + if (dpa_bp->bpid == 0) + bp_params.flags |= BMAN_POOL_FLAG_DYNAMIC_BPID; + else + bp_params.bpid = dpa_bp->bpid; + + dpa_bp->pool = bman_new_pool(&bp_params); + if (unlikely(dpa_bp->pool == NULL)) { + cpu_pr_err("bman_new_pool() failed\n"); + return -ENODEV; + } + + dpa_bp->bpid = bman_get_params(dpa_bp->pool)->bpid; + + pdev = platform_device_register_simple("dpaa_eth_bpool", + dpa_bp->bpid, NULL, 0); + if (IS_ERR(pdev)) { + err = PTR_ERR(pdev); + goto pdev_register_failed; + } + + if (dma_set_mask(&pdev->dev, DMA_BIT_MASK(40))) + goto pdev_mask_failed; + + dpa_bp->dev = &pdev->dev; + + if (dpa_bp->kernel_pool) { + dpa_make_private_pool(dpa_bp); + if (!default_pool) + default_pool = dpa_bp; + } else { + err = dpa_make_shared_pool(dpa_bp); + if (err) + goto make_shared_pool_failed; + } + + dpa_bp_array[dpa_bp->bpid] = dpa_bp; + + atomic_set(&dpa_bp->refs, 1); + + return 0; + +make_shared_pool_failed: +pdev_mask_failed: + platform_device_unregister(pdev); +pdev_register_failed: + bman_free_pool(dpa_bp->pool); + + return err; +} + +static void __cold __attribute__((nonnull)) +_dpa_bp_free(struct dpa_bp *dpa_bp) +{ + struct dpa_bp *bp = dpa_bpid2pool(dpa_bp->bpid); + + if (!atomic_dec_and_test(&bp->refs)) + return; + + if (bp->kernel_pool) { + int num; + + do { + struct bm_buffer bmb[8]; + int i; + + num = bman_acquire(bp->pool, bmb, 8, 0); + + for (i = 0; i < num; i++) { + dma_addr_t addr = bm_buf_addr(&bmb[i]); + struct sk_buff **skbh = phys_to_virt(addr); + struct sk_buff *skb = *skbh; + + dma_unmap_single(bp->dev, addr, bp->size, + DMA_FROM_DEVICE); + + dev_kfree_skb_any(skb); + } + } while (num == 8); + } + + dpa_bp_array[bp->bpid] = 0; + bman_free_pool(bp->pool); +} + +static void __cold __attribute__((nonnull)) +dpa_bp_free(struct dpa_priv_s *priv, struct dpa_bp *dpa_bp) +{ + int i; + + for (i = 0; i < priv->bp_count; i++) + _dpa_bp_free(&priv->dpa_bp[i]); +} + +/* QM */ + +static int __must_check __attribute__((nonnull)) +_dpa_fq_alloc(struct list_head *list, struct dpa_fq *dpa_fq) +{ + int _errno; + const struct dpa_priv_s *priv; + struct device *dev; + struct qman_fq *fq; + struct qm_mcc_initfq initfq; + /* Set the QMan taildrop threshold high enough to accomodate + * one 64k frame, plus an extra (here, 16k) for + * other frames awaiting Tx. */ + const u32 qman_taildrop_threshold = 0x14000; + + priv = netdev_priv(dpa_fq->net_dev); + dev = dpa_fq->net_dev->dev.parent; + + if (dpa_fq->fqid == 0) + dpa_fq->flags |= QMAN_FQ_FLAG_DYNAMIC_FQID; + + dpa_fq->init = !(dpa_fq->flags & QMAN_FQ_FLAG_NO_MODIFY); + + _errno = qman_create_fq(dpa_fq->fqid, dpa_fq->flags, &dpa_fq->fq_base); + if (_errno) { + dpaa_eth_err(dev, "qman_create_fq() failed\n"); + return _errno; + } + fq = &dpa_fq->fq_base; + + if (dpa_fq->init) { + initfq.we_mask = QM_INITFQ_WE_DESTWQ; + initfq.fqd.dest.channel = dpa_fq->channel; + initfq.fqd.dest.wq = dpa_fq->wq; + initfq.we_mask |= QM_INITFQ_WE_TDTHRESH | QM_INITFQ_WE_FQCTRL; + qm_fqd_taildrop_set(&initfq.fqd.td, qman_taildrop_threshold, 1); + initfq.fqd.fq_ctrl = QM_FQCTRL_TDE | QM_FQCTRL_PREFERINCACHE; + if (dpa_fq->flags & QMAN_FQ_FLAG_NO_ENQUEUE) { + initfq.we_mask |= QM_INITFQ_WE_CONTEXTA; + initfq.fqd.fq_ctrl |= + QM_FQCTRL_CTXASTASHING | QM_FQCTRL_AVOIDBLOCK; + initfq.fqd.context_a.stashing.exclusive = + QM_STASHING_EXCL_DATA | QM_STASHING_EXCL_CTX | + QM_STASHING_EXCL_ANNOTATION; + initfq.fqd.context_a.stashing.data_cl = 2; + initfq.fqd.context_a.stashing.annotation_cl = 1; + initfq.fqd.context_a.stashing.context_cl = + DIV_ROUND_UP(sizeof(struct qman_fq), 64); + }; + + _errno = qman_init_fq(fq, QMAN_INITFQ_FLAG_SCHED, &initfq); + if (_errno < 0) { + dpaa_eth_err(dev, "qman_init_fq(%u) = %d\n", + qman_fq_fqid(fq), _errno); + qman_destroy_fq(fq, 0); + return _errno; + } + } + + dpa_fq->fqid = qman_fq_fqid(fq); + list_add_tail(&dpa_fq->list, list); + + return 0; +} + +static int __cold __attribute__((nonnull)) +_dpa_fq_free(struct device *dev, struct qman_fq *fq) +{ + int _errno, __errno; + struct dpa_fq *dpa_fq; + const struct dpa_priv_s *priv; + + _errno = 0; + + dpa_fq = container_of(fq, struct dpa_fq, fq_base); + priv = netdev_priv(dpa_fq->net_dev); + + if (dpa_fq->init) { + _errno = qman_retire_fq(fq, NULL); + if (unlikely(_errno < 0) && netif_msg_drv(priv)) + dpaa_eth_err(dev, "qman_retire_fq(%u) = %d\n", + qman_fq_fqid(fq), _errno); + + __errno = qman_oos_fq(fq); + if (unlikely(__errno < 0) && netif_msg_drv(priv)) { + dpaa_eth_err(dev, "qman_oos_fq(%u) = %d\n", + qman_fq_fqid(fq), __errno); + if (_errno >= 0) + _errno = __errno; + } + } + + qman_destroy_fq(fq, 0); + list_del(&dpa_fq->list); + + return _errno; +} + +static int __cold __attribute__((nonnull)) +dpa_fq_free(struct device *dev, struct list_head *list) +{ + int _errno, __errno; + struct dpa_fq *dpa_fq, *tmp; + + _errno = 0; + list_for_each_entry_safe(dpa_fq, tmp, list, list) { + __errno = _dpa_fq_free(dev, (struct qman_fq *)dpa_fq); + if (unlikely(__errno < 0) && _errno >= 0) + _errno = __errno; + } + + return _errno; +} + + +static inline ssize_t __const __must_check __attribute__((nonnull)) +dpa_fd_length(const struct qm_fd *fd) +{ + return fd->length20; +} + +static inline ssize_t __const __must_check __attribute__((nonnull)) +dpa_fd_offset(const struct qm_fd *fd) +{ + return fd->offset; +} + +static int __must_check __attribute__((nonnull)) +dpa_fd_release(const struct net_device *net_dev, const struct qm_fd *fd) +{ + int _errno, __errno, i, j; + const struct dpa_priv_s *priv; + const struct qm_sg_entry *sgt; + struct dpa_bp *_dpa_bp, *dpa_bp; + struct bm_buffer _bmb, bmb[8]; + + priv = netdev_priv(net_dev); + + _bmb.hi = fd->addr_hi; + _bmb.lo = fd->addr_lo; + + _dpa_bp = dpa_bpid2pool(fd->bpid); + BUG_ON(IS_ERR(_dpa_bp)); + + _errno = 0; + if (fd->format == qm_fd_sg) { + sgt = (phys_to_virt(bm_buf_addr(&_bmb)) + dpa_fd_offset(fd)); + + i = 0; + do { + dpa_bp = dpa_bpid2pool(sgt[i].bpid); + BUG_ON(IS_ERR(dpa_bp)); + + j = 0; + do { + BUG_ON(sgt[i].extension); + + bmb[j].hi = sgt[i].addr_hi; + bmb[j].lo = sgt[i].addr_lo; + j++; i++; + } while (j < ARRAY_SIZE(bmb) && + !sgt[i-1].final && + sgt[i-1].bpid == sgt[i].bpid); + + __errno = bman_release(dpa_bp->pool, bmb, j, 0); + if (unlikely(__errno < 0)) { + if (netif_msg_drv(priv) && net_ratelimit()) + cpu_netdev_err(net_dev, + "bman_release(%hu) = %d\n", + dpa_bp->bpid, _errno); + if (_errno >= 0) + _errno = __errno; + } + } while (!sgt[i-1].final); + } + + __errno = bman_release(_dpa_bp->pool, &_bmb, 1, 0); + if (unlikely(__errno < 0)) { + if (netif_msg_drv(priv) && net_ratelimit()) + cpu_netdev_err(net_dev, "bman_release(%hu) = %d\n", + _dpa_bp->bpid, __errno); + if (_errno >= 0) + _errno = __errno; + } + + return _errno; +} + +/* net_device */ + +#define NN_ALLOCATED_SPACE(net_dev) \ + max((size_t)arp_hdr_len(net_dev), sizeof(struct iphdr)) +#define NN_RESERVED_SPACE(net_dev) \ + min((size_t)arp_hdr_len(net_dev), sizeof(struct iphdr)) + +#define TT_ALLOCATED_SPACE(net_dev) \ + max(sizeof(struct icmphdr), max(sizeof(struct udphdr), \ + sizeof(struct tcphdr))) +#define TT_RESERVED_SPACE(net_dev) \ + min(sizeof(struct icmphdr), min(sizeof(struct udphdr), \ + sizeof(struct tcphdr))) + +static struct net_device_stats * __cold +dpa_get_stats(struct net_device *net_dev) +{ + struct dpa_priv_s *priv = netdev_priv(net_dev); + unsigned long *netstats; + unsigned long *cpustats; + int i, j; + struct dpa_percpu_priv_s *percpu_priv; + int numstats = sizeof(net_dev->stats) / sizeof(unsigned long); + + netstats = (unsigned long *)&net_dev->stats; + + memset(netstats, 0, sizeof(net_dev->stats)); + + for_each_online_cpu(i) { + percpu_priv = per_cpu_ptr(priv->percpu_priv, i); + + cpustats = (unsigned long *)&percpu_priv->stats; + + for (j = 0; j < numstats; j++) + netstats[j] += cpustats[j]; + } + + return &net_dev->stats; +} + +static int dpa_change_mtu(struct net_device *net_dev, int new_mtu) +{ + const struct dpa_priv_s *priv; + const int max_mtu = fsl_fman_phy_maxfrm - (VLAN_ETH_HLEN + ETH_FCS_LEN); + const int min_mtu = 64; + + priv = netdev_priv(net_dev); + + /* Make sure we don't exceed the Ethernet controller's MAXFRM */ + if (new_mtu < min_mtu || new_mtu > max_mtu) { + cpu_netdev_err(net_dev, "Invalid L3 mtu %d " + "(must be between %d and %d).\n", + new_mtu, min_mtu, max_mtu); + return -EINVAL; + } + net_dev->mtu = new_mtu; + + return 0; +} + +static int dpa_set_mac_address(struct net_device *net_dev, void *addr) +{ + const struct dpa_priv_s *priv; + int _errno; + + priv = netdev_priv(net_dev); + + _errno = eth_mac_addr(net_dev, addr); + if (_errno < 0) { + if (netif_msg_drv(priv)) + cpu_netdev_err(net_dev, + "eth_mac_addr() = %d\n", + _errno); + return _errno; + } + + if (!priv->mac_dev) + /* MAC-less interface, so nothing more to do here */ + return 0; + + _errno = priv->mac_dev->change_addr(priv->mac_dev, net_dev->dev_addr); + if (_errno < 0) { + if (netif_msg_drv(priv)) + cpu_netdev_err(net_dev, + "mac_dev->change_addr() = %d\n", + _errno); + return _errno; + } + + return 0; +} + +static void __cold dpa_change_rx_flags(struct net_device *net_dev, int flags) +{ + int _errno; + const struct dpa_priv_s *priv; + + priv = netdev_priv(net_dev); + + if (!priv->mac_dev) + return; + + if ((flags & IFF_PROMISC) != 0) { + _errno = priv->mac_dev->change_promisc(priv->mac_dev); + if (unlikely(_errno < 0) && netif_msg_drv(priv)) + cpu_netdev_err(net_dev, + "mac_dev->change_promisc() = %d\n", + _errno); + } +} + +static void dpa_set_multicast_list(struct net_device *net_dev) +{ + int _errno; + struct dpa_priv_s *priv; + + priv = netdev_priv(net_dev); + + if (!priv->mac_dev) { + if (netif_msg_drv(priv)) + cpu_netdev_warn(net_dev, + "%s() called on MAC-less interface\n", + __func__); + return; + } + + _errno = priv->mac_dev->set_multi(net_dev); + if ((_errno < 0) && netif_msg_drv(priv)) + cpu_netdev_err(net_dev, "mac_dev->set_multi() = %d\n", _errno); +} + +static int dpa_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) +{ + struct dpa_priv_s *priv = netdev_priv(dev); + + if (!netif_running(dev)) + return -EINVAL; + +#ifdef CONFIG_FSL_DPA_1588 + if ((cmd >= PTP_ENBL_TXTS_IOCTL) && (cmd <= PTP_CLEANUP_TS)) { + int ret = -ENODEV; + + if (priv->tsu && priv->tsu->valid) + ret = dpa_ioctl_1588(dev, rq, cmd); + + return ret; + } +#endif + + return phy_mii_ioctl(priv->mac_dev->phy_dev, rq, cmd); +} + +/* + * When we put the buffer into the pool, we purposefully added + * some padding to the address so that the buffers wouldn't all + * be page-aligned. But the skb has been reset to a default state, + * so it is pointing up to DPAA_ETH_MAX_PAD - L1_CACHE_BYTES bytes + * before the actual data. We subtract skb->head from the fd addr, + * and then mask off the translated part to get the actual distance. + */ +static int dpa_process_one(struct dpa_percpu_priv_s *percpu_priv, + struct sk_buff *skb, struct dpa_bp *bp, const struct qm_fd *fd) +{ + dma_addr_t addr = qm_fd_addr(fd); + u32 addrlo = lower_32_bits(addr); + u32 skblo = lower_32_bits((unsigned long)skb->head); + u32 pad = (addrlo - skblo) & (PAGE_SIZE - 1); + unsigned int data_start; + + (*percpu_priv->dpa_bp_count)--; + + /* + * The skb is currently pointed at head + NET_SKB_PAD. The packet + * starts at skb->head + pad + fd offset. + */ + data_start = pad + dpa_fd_offset(fd) - NET_SKB_PAD; + skb_put(skb, dpa_fd_length(fd) + data_start); + skb_pull(skb, data_start); + + return 0; +} + +static void _dpa_rx_error(struct net_device *net_dev, + const struct dpa_priv_s *priv, + struct dpa_percpu_priv_s *percpu_priv, + const struct qm_fd *fd) +{ + int _errno; + + if (netif_msg_hw(priv) && net_ratelimit()) + cpu_netdev_warn(net_dev, "FD status = 0x%08x\n", + fd->status & FM_FD_STAT_ERRORS); + + percpu_priv->stats.rx_errors++; + + _errno = dpa_fd_release(net_dev, fd); + if (unlikely(_errno < 0)) { + dump_stack(); + panic("Can't release buffer to the BM during RX\n"); + } +} + +static void _dpa_tx_error(struct net_device *net_dev, + const struct dpa_priv_s *priv, + struct dpa_percpu_priv_s *percpu_priv, + const struct qm_fd *fd) +{ + struct sk_buff *skb; + struct sk_buff **skbh; + dma_addr_t addr = qm_fd_addr(fd); + struct dpa_bp *bp = priv->dpa_bp; + + if (netif_msg_hw(priv) && net_ratelimit()) + cpu_netdev_warn(net_dev, "FD status = 0x%08x\n", + fd->status & FM_FD_STAT_ERRORS); + + percpu_priv->stats.tx_errors++; + + skbh = (struct sk_buff **)phys_to_virt(addr); + skb = *skbh; + + dma_unmap_single(bp->dev, addr, bp->size, DMA_TO_DEVICE); + + dev_kfree_skb(skb); +} + +static void __hot _dpa_rx(struct net_device *net_dev, + const struct dpa_priv_s *priv, + struct dpa_percpu_priv_s *percpu_priv, + const struct qm_fd *fd) +{ + int _errno; + struct dpa_bp *dpa_bp; + struct sk_buff *skb; + struct sk_buff **skbh; + dma_addr_t addr = qm_fd_addr(fd); + + skbh = (struct sk_buff **)phys_to_virt(addr); + + if (unlikely(fd->status & FM_FD_STAT_ERRORS) != 0) { + if (netif_msg_hw(priv) && net_ratelimit()) + cpu_netdev_warn(net_dev, "FD status = 0x%08x\n", + fd->status & FM_FD_STAT_ERRORS); + + percpu_priv->stats.rx_errors++; + + goto _return_dpa_fd_release; + } + + if (unlikely(fd->format != qm_fd_contig)) { + percpu_priv->stats.rx_dropped++; + if (netif_msg_rx_status(priv) && net_ratelimit()) + cpu_netdev_warn(net_dev, "Dropping a SG frame\n"); + goto _return_dpa_fd_release; + } + + dpa_bp = dpa_bpid2pool(fd->bpid); + + dma_unmap_single(dpa_bp->dev, qm_fd_addr(fd), dpa_bp->size, + DMA_FROM_DEVICE); + + skb = *skbh; + prefetch(skb); + + /* Fill the SKB */ + dpa_process_one(percpu_priv, skb, dpa_bp, fd); + + prefetch(skb_shinfo(skb)); + +#ifdef CONFIG_FSL_DPA_1588 + if (priv->tsu && priv->tsu->valid) + dpa_ptp_store_rxstamp(net_dev, skb, fd); +#endif + + skb->protocol = eth_type_trans(skb, net_dev); + + if (unlikely(skb->len > net_dev->mtu)) { + if ((skb->protocol != ETH_P_8021Q) || + (skb->len > net_dev->mtu + 4)) { + percpu_priv->stats.rx_dropped++; + goto drop_large_frame; + } + } + + /* Check if the FMan Parser has already validated the L4 csum. */ + if (fd->status & FM_FD_STAT_L4CV) { + /* If we're here, the csum must be valid (if it hadn't, + * the frame would have been received on the Error FQ, + * respectively on the _dpa_rx_error() path). */ + skb->ip_summed = CHECKSUM_UNNECESSARY; + } else + skb->ip_summed = CHECKSUM_NONE; + + if (unlikely(netif_receive_skb(skb) == NET_RX_DROP)) + percpu_priv->stats.rx_dropped++; + else { + percpu_priv->stats.rx_packets++; + percpu_priv->stats.rx_bytes += dpa_fd_length(fd); + } + + net_dev->last_rx = jiffies; + + return; + +drop_large_frame: + (*percpu_priv->dpa_bp_count)++; +_return_dpa_fd_release: + _errno = dpa_fd_release(net_dev, fd); + if (unlikely(_errno < 0)) { + dump_stack(); + panic("Can't release buffer to the BM during RX\n"); + } +} + +static void dpaa_eth_napi_disable(struct dpa_priv_s *priv) +{ + struct dpa_percpu_priv_s *percpu_priv; + int i; + + if (priv->shared) + return; + + for_each_online_cpu(i) { + percpu_priv = per_cpu_ptr(priv->percpu_priv, i); + napi_disable(&percpu_priv->napi); + } +} + +static void dpaa_eth_napi_enable(struct dpa_priv_s *priv) +{ + struct dpa_percpu_priv_s *percpu_priv; + int i; + + if (priv->shared) + return; + + for_each_online_cpu(i) { + percpu_priv = per_cpu_ptr(priv->percpu_priv, i); + napi_enable(&percpu_priv->napi); + } +} + +static int dpaa_eth_poll(struct napi_struct *napi, int budget) +{ + struct dpa_percpu_priv_s *percpu_priv; + int cleaned = qman_poll_dqrr(budget); + int count; + + percpu_priv = container_of(napi, struct dpa_percpu_priv_s, napi); + + count = *percpu_priv->dpa_bp_count; + + if (count < DEFAULT_COUNT / 4) { + int i; + + for (i = count; i < DEFAULT_COUNT; i += 8) + dpa_bp_add_8(percpu_priv->dpa_bp); + } + + if (cleaned < budget) { + int tmp; + napi_complete(napi); + tmp = qman_irqsource_add(QM_PIRQ_DQRI); + BUG_ON(tmp); + } + + return cleaned; +} + +static void __hot _dpa_tx(struct net_device *net_dev, + const struct dpa_priv_s *priv, + struct dpa_percpu_priv_s *percpu_priv, + const struct qm_fd *fd) +{ + struct sk_buff **skbh; + struct sk_buff *skb; + dma_addr_t addr = qm_fd_addr(fd); + struct dpa_bp *bp = priv->dpa_bp; + + /* This might not perfectly reflect the reality, if the core dequeueing + * the Tx confirmation is different from the one that did the enqueue, + * but at least it'll show up in the total count. */ + percpu_priv->tx_confirm++; + + if (unlikely(fd->status & FM_FD_STAT_ERRORS) != 0) { + if (netif_msg_hw(priv) && net_ratelimit()) + cpu_netdev_warn(net_dev, "FD status = 0x%08x\n", + fd->status & FM_FD_STAT_ERRORS); + + percpu_priv->stats.tx_errors++; + } + + skbh = (struct sk_buff **)phys_to_virt(addr); + skb = *skbh; + +#ifdef CONFIG_FSL_DPA_1588 + if (priv->tsu && priv->tsu->valid) + dpa_ptp_store_txstamp(net_dev, skb, fd); +#endif + + dma_unmap_single(bp->dev, addr, bp->size, DMA_TO_DEVICE); + + dev_kfree_skb(skb); +} + +static struct dpa_bp *dpa_size2pool(struct dpa_priv_s *priv, size_t size) +{ + int i; + + for (i = 0; i < priv->bp_count; i++) + if (DPA_BP_SIZE(size) <= priv->dpa_bp[i].size) + return dpa_bpid2pool(priv->dpa_bp[i].bpid); + return ERR_PTR(-ENODEV); +} + +static inline void * __must_check __attribute__((nonnull)) +dpa_phys2virt(const struct dpa_bp *dpa_bp, dma_addr_t addr) +{ + return dpa_bp->vaddr + (addr - dpa_bp->paddr); +} + +/** + * Turn on HW checksum computation for this outgoing frame. + * If the current protocol is not something we support in this regard + * (or if the stack has already computed the SW checksum), we do nothing. + * + * Returns 0 if all goes well (or HW csum doesn't apply), and a negative value + * otherwise. + * + * Note that this function may modify the fd->cmd field and the skb data buffer + * (the Parse Results area). + */ +static inline int dpa_enable_tx_csum(struct dpa_priv_s *priv, + struct sk_buff *skb, struct qm_fd *fd, char *parse_results) +{ + t_FmPrsResult *parse_result; + struct iphdr *iph; + struct ipv6hdr *ipv6h = NULL; + int l4_proto; + int ethertype = ntohs(skb->protocol); + int retval = 0; + + if (!priv->mac_dev || skb->ip_summed != CHECKSUM_PARTIAL) + return 0; + + /* Note: L3 csum seems to be already computed in sw, but we can't choose + * L4 alone from the FM configuration anyway. */ + + /* Fill in some fields of the Parse Results array, so the FMan + * can find them as if they came from the FMan Parser. */ + parse_result = (t_FmPrsResult *)parse_results; + + /* If we're dealing with VLAN, get the real Ethernet type */ + if (ethertype == ETH_P_8021Q) { + /* We can't always assume the MAC header is set correctly + * by the stack, so reset to beginning of skb->data */ + skb_reset_mac_header(skb); + ethertype = ntohs(vlan_eth_hdr(skb)->h_vlan_encapsulated_proto); + } + + /* Fill in the relevant L3 parse result fields + * and read the L4 protocol type */ + switch (ethertype) { + case ETH_P_IP: + parse_result->l3r = FM_L3_PARSE_RESULT_IPV4; + iph = ip_hdr(skb); + BUG_ON(iph == NULL); + l4_proto = ntohs(iph->protocol); + break; + case ETH_P_IPV6: + parse_result->l3r = FM_L3_PARSE_RESULT_IPV6; + ipv6h = ipv6_hdr(skb); + BUG_ON(ipv6h == NULL); + l4_proto = ntohs(ipv6h->nexthdr); + break; + default: + /* We shouldn't even be here */ + if (netif_msg_tx_err(priv) && net_ratelimit()) + cpu_netdev_alert(priv->net_dev, "Can't compute HW csum " + "for L3 proto 0x%x\n", ntohs(skb->protocol)); + retval = -EIO; + goto return_error; + } + + /* Fill in the relevant L4 parse result fields */ + switch (l4_proto) { + case IPPROTO_UDP: + parse_result->l4r = FM_L4_PARSE_RESULT_UDP; + break; + case IPPROTO_TCP: + parse_result->l4r = FM_L4_PARSE_RESULT_TCP; + break; + default: + /* This can as well be a BUG() */ + if (netif_msg_tx_err(priv) && net_ratelimit()) + cpu_netdev_alert(priv->net_dev, "Can't compute HW csum " + "for L4 proto 0x%x\n", l4_proto); + retval = -EIO; + goto return_error; + } + + /* At index 0 is IPOffset_1 as defined in the Parse Results */ + parse_result->ip_off[0] = skb_network_offset(skb); + parse_result->l4_off = skb_transport_offset(skb); + + /* Enable L3 (and L4, if TCP or UDP) HW checksum. */ + fd->cmd |= FM_FD_CMD_RPD | FM_FD_CMD_DTC; + +return_error: + return retval; +} + +static inline int __hot dpa_xmit(struct dpa_priv_s *priv, + struct dpa_percpu_priv_s *percpu, int queue, + struct qm_fd *fd) +{ + int err; + + prefetchw(&percpu->start_tx); + err = qman_enqueue(priv->egress_fqs[queue], fd, 0); + if (unlikely(err < 0)) { + if (netif_msg_tx_err(priv) && net_ratelimit()) + cpu_netdev_err(priv->net_dev, "qman_enqueue() = %d\n", + err); + percpu->stats.tx_errors++; + percpu->stats.tx_fifo_errors++; + return err; + } + + percpu->stats.tx_packets++; + percpu->stats.tx_bytes += dpa_fd_length(fd); + + return NETDEV_TX_OK; +} + +static int __hot dpa_shared_tx(struct sk_buff *skb, struct net_device *net_dev) +{ + struct dpa_bp *dpa_bp; + struct bm_buffer bmb; + struct dpa_percpu_priv_s *percpu_priv; + struct dpa_priv_s *priv; + struct device *dev; + struct qm_fd fd; + int queue_mapping; + int err; + void *dpa_bp_vaddr; + + priv = netdev_priv(net_dev); + percpu_priv = per_cpu_ptr(priv->percpu_priv, smp_processor_id()); + dev = net_dev->dev.parent; + + memset(&fd, 0, sizeof(fd)); + fd.format = qm_fd_contig; + + queue_mapping = skb_get_queue_mapping(skb); + + dpa_bp = dpa_size2pool(priv, skb_headlen(skb)); + if (unlikely(IS_ERR(dpa_bp))) { + err = PTR_ERR(dpa_bp); + goto bpools_too_small_error; + } + + err = bman_acquire(dpa_bp->pool, &bmb, 1, 0); + if (unlikely(err <= 0)) { + percpu_priv->stats.tx_errors++; + if (err == 0) + err = -ENOMEM; + goto buf_acquire_failed; + } + fd.bpid = dpa_bp->bpid; + + fd.length20 = skb_headlen(skb); + fd.cmd = FM_FD_CMD_FCO; + fd.addr_hi = bmb.hi; + fd.addr_lo = bmb.lo; + fd.offset = DPA_BP_HEAD; + + dpa_bp_vaddr = dpa_phys2virt(dpa_bp, bm_buf_addr(&bmb)); + + /* Copy the packet payload */ + skb_copy_from_linear_data(skb, dpa_bp_vaddr + dpa_fd_offset(&fd), + dpa_fd_length(&fd)); + + /* Enable L3/L4 hardware checksum computation, if applicable */ + err = dpa_enable_tx_csum(priv, skb, &fd, + dpa_bp_vaddr + DPA_PRIV_DATA_SIZE); + if (unlikely(err < 0)) { + if (netif_msg_tx_err(priv) && net_ratelimit()) + cpu_netdev_err(net_dev, "Tx HW csum error: %d\n", err); + percpu_priv->stats.tx_errors++; + goto l3_l4_csum_failed; + } + + err = dpa_xmit(priv, percpu_priv, queue_mapping, &fd); + +l3_l4_csum_failed: +bpools_too_small_error: +buf_acquire_failed: + /* We're done with the skb */ + dev_kfree_skb(skb); + + return err; +} + +static int __hot dpa_tx(struct sk_buff *skb, struct net_device *net_dev) +{ + struct dpa_priv_s *priv; + struct device *dev; + struct qm_fd fd; + unsigned int headroom; + struct dpa_percpu_priv_s *percpu_priv; + struct sk_buff **skbh; + dma_addr_t addr; + struct dpa_bp *dpa_bp; + int queue_mapping; + int err; + unsigned int pad; + + priv = netdev_priv(net_dev); + percpu_priv = per_cpu_ptr(priv->percpu_priv, smp_processor_id()); + dev = net_dev->dev.parent; + + memset(&fd, 0, sizeof(fd)); + fd.format = qm_fd_contig; + + headroom = skb_headroom(skb); + queue_mapping = skb_get_queue_mapping(skb); + + if (headroom < DPA_BP_HEAD) { + struct sk_buff *skb_new; + + skb_new = skb_realloc_headroom(skb, DPA_BP_HEAD); + if (!skb_new) { + percpu_priv->stats.tx_errors++; + kfree_skb(skb); + return NETDEV_TX_OK; + } + kfree_skb(skb); + skb = skb_new; + headroom = skb_headroom(skb); + } + + skb = skb_unshare(skb, GFP_ATOMIC); + + if (!skb) + return NETDEV_TX_OK; + + /* + * We are guaranteed that we have at least DPA_BP_HEAD of headroom. + * Buffers we allocated are padded to improve cache usage. In order + * to increase buffer re-use, we aim to keep any such buffers the + * same. This means the address passed to the FM should be DPA_BP_HEAD + * before the data, and we might as well do the same for buffers + * from elsewhere in the kernel. + */ + skbh = (struct sk_buff **)(skb->data - DPA_BP_HEAD); + pad = headroom - DPA_BP_HEAD; + + *skbh = skb; + + dpa_bp = priv->dpa_bp; + + /* Enable L3/L4 hardware checksum computation. + * + * We must do this before dma_map_single(DMA_TO_DEVICE), because we may + * need to write into the skb. */ + err = dpa_enable_tx_csum(priv, skb, &fd, + ((char *)skbh) + DPA_PRIV_DATA_SIZE); + + if (unlikely(err < 0)) { + if (netif_msg_tx_err(priv) && net_ratelimit()) + cpu_netdev_err(net_dev, "HW csum error: %d\n", err); + percpu_priv->stats.tx_errors++; + goto l3_l4_csum_failed; + } + +#ifdef CONFIG_FSL_DPA_1588 + if (priv->tsu && priv->tsu->valid) + fd.cmd |= FM_FD_CMD_UPD; +#endif + + fd.length20 = skb->len; + fd.offset = DPA_BP_HEAD; /* This is now guaranteed */ + + addr = dma_map_single(dpa_bp->dev, skbh, dpa_bp->size, DMA_TO_DEVICE); + if (unlikely(addr == 0)) { + if (netif_msg_tx_err(priv) && net_ratelimit()) + cpu_netdev_err(net_dev, "dma_map_single() failed\n"); + goto dma_map_failed; + } + + fd.addr_hi = upper_32_bits(addr); + fd.addr_lo = lower_32_bits(addr); + + if (unlikely(dpa_xmit(priv, percpu_priv, queue_mapping, &fd) < 0)) + goto xmit_failed; + + net_dev->trans_start = jiffies; + + return NETDEV_TX_OK; + +xmit_failed: + dma_unmap_single(dev, addr, dpa_bp->size, DMA_TO_DEVICE); + +dma_map_failed: + if (fd.cmd & FM_FD_CMD_FCO) + (*percpu_priv->dpa_bp_count)--; + +l3_l4_csum_failed: + dev_kfree_skb(skb); + + return NETDEV_TX_OK; +} + +static enum qman_cb_dqrr_result +ingress_rx_error_dqrr(struct qman_portal *portal, + struct qman_fq *fq, + const struct qm_dqrr_entry *dq) +{ + struct net_device *net_dev; + struct dpa_priv_s *priv; + struct dpa_percpu_priv_s *percpu_priv; + + net_dev = ((struct dpa_fq *)fq)->net_dev; + priv = netdev_priv(net_dev); + + percpu_priv = per_cpu_ptr(priv->percpu_priv, smp_processor_id()); + + if (dpaa_eth_napi_schedule(percpu_priv)) { + percpu_priv->in_interrupt++; + return qman_cb_dqrr_stop; + } + + _dpa_rx_error(net_dev, priv, percpu_priv, &dq->fd); + + return qman_cb_dqrr_consume; +} + +static enum qman_cb_dqrr_result __hot +shared_rx_dqrr(struct qman_portal *portal, struct qman_fq *fq, + const struct qm_dqrr_entry *dq) +{ + struct net_device *net_dev; + struct dpa_priv_s *priv; + struct dpa_percpu_priv_s *percpu_priv; + int err; + const struct qm_fd *fd = &dq->fd; + struct dpa_bp *dpa_bp; + size_t size; + struct sk_buff *skb; + + net_dev = ((struct dpa_fq *)fq)->net_dev; + priv = netdev_priv(net_dev); + + percpu_priv = per_cpu_ptr(priv->percpu_priv, smp_processor_id()); + + if (unlikely(fd->status & FM_FD_STAT_ERRORS) != 0) { + if (netif_msg_hw(priv) && net_ratelimit()) + cpu_netdev_warn(net_dev, "FD status = 0x%08x\n", + fd->status & FM_FD_STAT_ERRORS); + + percpu_priv->stats.rx_errors++; + + goto out; + } + + + dpa_bp = dpa_bpid2pool(fd->bpid); + BUG_ON(IS_ERR(dpa_bp)); + + if (fd->format == qm_fd_sg) { + percpu_priv->stats.rx_dropped++; + if (netif_msg_rx_status(priv) && net_ratelimit()) + cpu_netdev_warn(net_dev, + "%s:%hu:%s(): Dropping a SG frame\n", + __file__, __LINE__, __func__); + goto out; + } + + size = dpa_fd_length(fd); + + skb = __netdev_alloc_skb(net_dev, DPA_BP_HEAD + size, GFP_ATOMIC); + if (unlikely(skb == NULL)) { + if (netif_msg_rx_err(priv) && net_ratelimit()) + cpu_netdev_err(net_dev, "Could not alloc skb\n"); + + percpu_priv->stats.rx_dropped++; + + goto out; + } + + skb_reserve(skb, DPA_BP_HEAD); + + /* Fill the SKB */ + memcpy(skb_put(skb, dpa_fd_length(fd)), + dpa_phys2virt(dpa_bp, qm_fd_addr(fd)) + + dpa_fd_offset(fd), dpa_fd_length(fd)); + + skb->protocol = eth_type_trans(skb, net_dev); + + if (unlikely(skb->len > net_dev->mtu)) { + if ((skb->protocol != ETH_P_8021Q) || + (skb->len > net_dev->mtu + 4)) { + percpu_priv->stats.rx_dropped++; + dev_kfree_skb_any(skb); + goto out; + } + } + + if (unlikely(netif_rx(skb) != NET_RX_SUCCESS)) + percpu_priv->stats.rx_dropped++; + else { + percpu_priv->stats.rx_packets++; + percpu_priv->stats.rx_bytes += dpa_fd_length(fd); + } + + net_dev->last_rx = jiffies; + +out: + err = dpa_fd_release(net_dev, fd); + if (unlikely(err < 0)) { + dump_stack(); + panic("Can't release buffer to the BM during RX\n"); + } + + return qman_cb_dqrr_consume; +} + + +static enum qman_cb_dqrr_result __hot +ingress_rx_default_dqrr(struct qman_portal *portal, + struct qman_fq *fq, + const struct qm_dqrr_entry *dq) +{ + struct net_device *net_dev; + struct dpa_priv_s *priv; + struct dpa_percpu_priv_s *percpu_priv; + + net_dev = ((struct dpa_fq *)fq)->net_dev; + priv = netdev_priv(net_dev); + + percpu_priv = per_cpu_ptr(priv->percpu_priv, smp_processor_id()); + + if (unlikely(dpaa_eth_napi_schedule(percpu_priv))) { + percpu_priv->in_interrupt++; + return qman_cb_dqrr_stop; + } + + prefetchw(&percpu_priv->ingress_calls); + + _dpa_rx(net_dev, priv, percpu_priv, &dq->fd); + + return qman_cb_dqrr_consume; +} + +static enum qman_cb_dqrr_result +ingress_tx_error_dqrr(struct qman_portal *portal, + struct qman_fq *fq, + const struct qm_dqrr_entry *dq) +{ + struct net_device *net_dev; + struct dpa_priv_s *priv; + struct dpa_percpu_priv_s *percpu_priv; + + net_dev = ((struct dpa_fq *)fq)->net_dev; + priv = netdev_priv(net_dev); + + percpu_priv = per_cpu_ptr(priv->percpu_priv, smp_processor_id()); + + if (dpaa_eth_napi_schedule(percpu_priv)) { + percpu_priv->in_interrupt++; + return qman_cb_dqrr_stop; + } + + _dpa_tx_error(net_dev, priv, percpu_priv, &dq->fd); + + return qman_cb_dqrr_consume; +} + +static enum qman_cb_dqrr_result __hot +ingress_tx_default_dqrr(struct qman_portal *portal, + struct qman_fq *fq, + const struct qm_dqrr_entry *dq) +{ + struct net_device *net_dev; + struct dpa_priv_s *priv; + struct dpa_percpu_priv_s *percpu_priv; + + net_dev = ((struct dpa_fq *)fq)->net_dev; + priv = netdev_priv(net_dev); + + percpu_priv = per_cpu_ptr(priv->percpu_priv, smp_processor_id()); + + if (dpaa_eth_napi_schedule(percpu_priv)) { + percpu_priv->in_interrupt++; + return qman_cb_dqrr_stop; + } + + _dpa_tx(net_dev, priv, percpu_priv, &dq->fd); + + return qman_cb_dqrr_consume; +} + +static void shared_ern(struct qman_portal *portal, + struct qman_fq *fq, + const struct qm_mr_entry *msg) +{ + struct net_device *net_dev; + const struct dpa_priv_s *priv; + int err; + struct dpa_percpu_priv_s *percpu_priv; + struct dpa_fq *dpa_fq = (struct dpa_fq *)fq; + + net_dev = dpa_fq->net_dev; + priv = netdev_priv(net_dev); + percpu_priv = per_cpu_ptr(priv->percpu_priv, smp_processor_id()); + + err = dpa_fd_release(net_dev, &msg->ern.fd); + if (unlikely(err < 0)) { + dump_stack(); + panic("Can't release buffer to the BM during a TX\n"); + } + + percpu_priv->stats.tx_dropped++; + percpu_priv->stats.tx_fifo_errors++; +} + +static void egress_ern(struct qman_portal *portal, + struct qman_fq *fq, + const struct qm_mr_entry *msg) +{ + struct net_device *net_dev; + const struct dpa_priv_s *priv; + struct sk_buff *skb; + struct sk_buff **skbh; + struct dpa_percpu_priv_s *percpu_priv; + dma_addr_t addr = qm_fd_addr(&msg->ern.fd); + struct dpa_bp *bp; + + net_dev = ((struct dpa_fq *)fq)->net_dev; + priv = netdev_priv(net_dev); + bp = priv->dpa_bp; + percpu_priv = per_cpu_ptr(priv->percpu_priv, smp_processor_id()); + + percpu_priv->stats.tx_dropped++; + percpu_priv->stats.tx_fifo_errors++; + + /* + * If we intended this buffer to go into the pool + * when the FM was done, we need to put it in + * manually. + */ + if (msg->ern.fd.cmd & FM_FD_CMD_FCO) { + struct bm_buffer bmb; + + bm_buffer_set64(&bmb, addr); + while (bman_release(bp->pool, &bmb, 1, 0)) + cpu_relax(); + + return; + } + + skbh = (struct sk_buff **)phys_to_virt(addr); + skb = *skbh; + + dma_unmap_single(bp->dev, addr, bp->size, DMA_TO_DEVICE); + + dev_kfree_skb_any(skb); +} + +static const struct qman_fq rx_shared_fq = { + .cb = {shared_rx_dqrr, NULL, NULL, NULL} +}; +static const struct qman_fq rx_private_defq = { + .cb = {ingress_rx_default_dqrr, NULL, NULL, NULL} +}; +static const struct qman_fq rx_private_errq = { + .cb = {ingress_rx_error_dqrr, NULL, NULL, NULL} +}; +static const struct qman_fq tx_private_defq = { + .cb = {ingress_tx_default_dqrr, NULL, NULL, NULL} +}; +static const struct qman_fq tx_private_errq = { + .cb = {ingress_tx_error_dqrr, NULL, NULL, NULL} +}; +static const struct qman_fq dummyq = { + .cb = {NULL, NULL, NULL, NULL} +}; +static const struct qman_fq private_egress_fq = { + .cb = {NULL, egress_ern, NULL, NULL} +}; +static const struct qman_fq shared_egress_fq = { + .cb = {NULL, shared_ern, NULL, NULL} +}; + +#ifdef CONFIG_DPAA_ETH_UNIT_TESTS +static bool tx_unit_test_passed = true; + +static void tx_unit_test_ern(struct qman_portal *portal, + struct qman_fq *fq, + const struct qm_mr_entry *msg) +{ + struct net_device *net_dev; + struct dpa_priv_s *priv; + struct sk_buff **skbh; + struct sk_buff *skb; + const struct qm_fd *fd; + dma_addr_t addr; + + net_dev = ((struct dpa_fq *)fq)->net_dev; + priv = netdev_priv(net_dev); + + tx_unit_test_passed = false; + + fd = &msg->ern.fd; + + addr = qm_fd_addr(fd); + + skbh = (struct sk_buff **)phys_to_virt(addr); + skb = *skbh; + + if (!skb || !is_kernel_addr((unsigned long)skb)) + panic("Corrupt skb in ERN!\n"); + + kfree_skb(skb); +} + +static unsigned char *tx_unit_skb_head; +static unsigned char *tx_unit_skb_end; +static int tx_unit_tested; + +static enum qman_cb_dqrr_result tx_unit_test_dqrr( + struct qman_portal *portal, + struct qman_fq *fq, + const struct qm_dqrr_entry *dq) +{ + struct net_device *net_dev; + struct dpa_priv_s *priv; + struct sk_buff **skbh; + struct sk_buff *skb; + const struct qm_fd *fd; + dma_addr_t addr; + unsigned char *startaddr; + struct dpa_percpu_priv_s *percpu_priv; + + tx_unit_test_passed = false; + + tx_unit_tested++; + + net_dev = ((struct dpa_fq *)fq)->net_dev; + priv = netdev_priv(net_dev); + + percpu_priv = per_cpu_ptr(priv->percpu_priv, smp_processor_id()); + + fd = &dq->fd; + + addr = qm_fd_addr(fd); + + skbh = (struct sk_buff **)phys_to_virt(addr); + startaddr = (unsigned char *)skbh; + skb = *skbh; + + if (!skb || !is_kernel_addr((unsigned long)skb)) + panic("Invalid skb address in TX Unit Test FD\n"); + + /* Make sure we're dealing with the same skb */ + if (skb->head != tx_unit_skb_head + || skb_end_pointer(skb) != tx_unit_skb_end) + goto out; + + /* + * If we recycled, then there must be enough room between fd.addr + * and skb->end for a new RX buffer + */ + if (fd->cmd & FM_FD_CMD_FCO) { + size_t bufsize = skb_end_pointer(skb) - startaddr; + + if (bufsize < fsl_fman_phy_maxfrm) + goto out; + } else { + /* + * If we didn't recycle, but the buffer was big enough, + * increment the counter to put it back + */ + if (skb_end_pointer(skb) - skb->head >= fsl_fman_phy_maxfrm) + (*percpu_priv->dpa_bp_count)++; + + /* If we didn't recycle, the data pointer should be good */ + if (skb->data != startaddr + dpa_fd_offset(fd)) + goto out; + } + + tx_unit_test_passed = true; +out: + /* The skb is no longer needed, and belongs to us */ + kfree_skb(skb); + + return qman_cb_dqrr_consume; +} + +static const struct qman_fq tx_unit_test_fq = { + .cb = {tx_unit_test_dqrr, tx_unit_test_ern, NULL, NULL} +}; + +static struct dpa_fq unit_fq; + +static bool tx_unit_test_ran; /* Starts as false */ + +static int dpa_tx_unit_test(struct net_device *net_dev) +{ + /* Create a new FQ */ + struct dpa_priv_s *priv = netdev_priv(net_dev); + struct qman_fq *oldq; + int size, headroom; + struct dpa_percpu_priv_s *percpu_priv; + cpumask_t *oldcpus; + int test_count = 0; + int err = 0; + int tests_failed = 0; + const cpumask_t *cpus = qman_affine_cpus(); + + oldcpus = tsk_cpus_allowed(current); + set_cpus_allowed_ptr(current, cpus); + /* disable bottom halves */ + local_bh_disable(); + + percpu_priv = per_cpu_ptr(priv->percpu_priv, smp_processor_id()); + + qman_irqsource_remove(QM_PIRQ_DQRI); + unit_fq.net_dev = net_dev; + unit_fq.fq_base = tx_unit_test_fq; + + /* Save old queue */ + oldq = priv->egress_fqs[smp_processor_id()]; + + err = qman_create_fq(0, QMAN_FQ_FLAG_DYNAMIC_FQID, &unit_fq.fq_base); + + if (err < 0) { + pr_err("UNIT test FQ create failed: %d\n", err); + goto fq_create_fail; + } + + err = qman_init_fq(&unit_fq.fq_base, + QMAN_INITFQ_FLAG_SCHED | QMAN_INITFQ_FLAG_LOCAL, NULL); + if (err < 0) { + pr_err("UNIT test FQ init failed: %d\n", err); + goto fq_init_fail; + } + + pr_err("TX Unit Test using FQ %d\n", qman_fq_fqid(&unit_fq.fq_base)); + + /* Replace queue 0 with this queue */ + priv->egress_fqs[smp_processor_id()] = &unit_fq.fq_base; + + /* Try packet sizes from 64-bytes to just above the maximum */ + for (size = 64; size <= 9600 + 128; size += 64) { + for (headroom = DPA_BP_HEAD; headroom < 0x800; headroom += 16) { + int ret; + struct sk_buff *skb; + + test_count++; + + skb = dev_alloc_skb(size + headroom); + + if (!skb) { + pr_err("Failed to allocate skb\n"); + err = -ENOMEM; + goto end_test; + } + + if (skb_end_pointer(skb) - skb->head >= + fsl_fman_phy_maxfrm) + (*percpu_priv->dpa_bp_count)--; + + skb_put(skb, size + headroom); + skb_pull(skb, headroom); + + tx_unit_skb_head = skb->head; + tx_unit_skb_end = skb_end_pointer(skb); + + skb_set_queue_mapping(skb, smp_processor_id()); + + /* tx */ + ret = net_dev->netdev_ops->ndo_start_xmit(skb, net_dev); + + if (ret != NETDEV_TX_OK) { + pr_err("Failed to TX with err %d\n", ret); + err = -EIO; + goto end_test; + } + + /* Wait for it to arrive */ + ret = spin_event_timeout(qman_poll_dqrr(1) != 0, + 100000, 1); + + if (!ret) + pr_err("TX Packet never arrived\n"); + + /* Was it good? */ + if (tx_unit_test_passed == false) { + pr_err("Test failed:\n"); + pr_err("size: %d pad: %d head: %p end: %p\n", + size, headroom, tx_unit_skb_head, + tx_unit_skb_end); + tests_failed++; + } + } + } + +end_test: + err = qman_retire_fq(&unit_fq.fq_base, NULL); + if (unlikely(err < 0)) + pr_err("Could not retire TX Unit Test FQ (%d)\n", err); + + err = qman_oos_fq(&unit_fq.fq_base); + if (unlikely(err < 0)) + pr_err("Could not OOS TX Unit Test FQ (%d)\n", err); + +fq_init_fail: + qman_destroy_fq(&unit_fq.fq_base, 0); + +fq_create_fail: + priv->egress_fqs[smp_processor_id()] = oldq; + local_bh_enable(); + qman_irqsource_add(QM_PIRQ_DQRI); + tx_unit_test_ran = true; + set_cpus_allowed_ptr(current, oldcpus); + + pr_err("Tested %d/%d packets. %d failed\n", test_count, tx_unit_tested, + tests_failed); + + if (tests_failed) + err = -EINVAL; + + return err; +} +#endif + +static int __cold dpa_start(struct net_device *net_dev) +{ + int err, i; + struct dpa_priv_s *priv; + struct mac_device *mac_dev; + + priv = netdev_priv(net_dev); + mac_dev = priv->mac_dev; + + if (!mac_dev) + goto no_mac; + +#ifdef CONFIG_FSL_DPA_1588 + if (priv->tsu && priv->tsu->valid) { + if (mac_dev->fm_rtc_enable) + mac_dev->fm_rtc_enable(net_dev); + } +#endif + + dpaa_eth_napi_enable(priv); + + err = mac_dev->init_phy(net_dev); + if (err < 0) { + if (netif_msg_ifup(priv)) + cpu_netdev_err(net_dev, "init_phy() = %d\n", err); + goto init_phy_failed; + } + + for_each_port_device(i, mac_dev->port_dev) + fm_port_enable(mac_dev->port_dev[i]); + + err = priv->mac_dev->start(mac_dev); + if (err < 0) { + if (netif_msg_ifup(priv)) + cpu_netdev_err(net_dev, "mac_dev->start() = %d\n", err); + goto mac_start_failed; + } + +no_mac: + netif_tx_start_all_queues(net_dev); + + return 0; + +mac_start_failed: + for_each_port_device(i, mac_dev->port_dev) + fm_port_disable(mac_dev->port_dev[i]); + +init_phy_failed: + dpaa_eth_napi_disable(priv); + + return err; +} + +static int __cold dpa_stop(struct net_device *net_dev) +{ + int _errno, i; + struct dpa_priv_s *priv; + struct mac_device *mac_dev; + + priv = netdev_priv(net_dev); + mac_dev = priv->mac_dev; + + netif_tx_stop_all_queues(net_dev); + + if (!mac_dev) + return 0; + +#ifdef CONFIG_FSL_DPA_1588 + if (priv->tsu && priv->tsu->valid) { + if (mac_dev->fm_rtc_disable) + mac_dev->fm_rtc_disable(net_dev); + } +#endif + + _errno = mac_dev->stop(mac_dev); + if (unlikely(_errno < 0)) + if (netif_msg_ifdown(priv)) + cpu_netdev_err(net_dev, "mac_dev->stop() = %d\n", + _errno); + + for_each_port_device(i, mac_dev->port_dev) + fm_port_disable(mac_dev->port_dev[i]); + + if (mac_dev->phy_dev) + phy_disconnect(mac_dev->phy_dev); + mac_dev->phy_dev = NULL; + + dpaa_eth_napi_disable(priv); + + return _errno; +} + +static void __cold dpa_timeout(struct net_device *net_dev) +{ + const struct dpa_priv_s *priv; + struct dpa_percpu_priv_s *percpu_priv; + + priv = netdev_priv(net_dev); + percpu_priv = per_cpu_ptr(priv->percpu_priv, smp_processor_id()); + + if (netif_msg_timer(priv)) + cpu_netdev_crit(net_dev, "Transmit timeout latency: %lu ms\n", + (jiffies - net_dev->trans_start) * 1000 / HZ); + + percpu_priv->stats.tx_errors++; +} + +static int dpa_bp_cmp(const void *dpa_bp0, const void *dpa_bp1) +{ + return ((struct dpa_bp *)dpa_bp0)->size - + ((struct dpa_bp *)dpa_bp1)->size; +} + +static struct dpa_bp * __cold __must_check __attribute__((nonnull)) +dpa_bp_probe(struct platform_device *_of_dev, size_t *count) +{ + int i, lenp, na, ns; + struct device *dev; + struct device_node *dev_node; + const phandle *phandle_prop; + const uint32_t *bpid; + const uint32_t *bpool_cfg; + struct dpa_bp *dpa_bp; + int has_kernel_pool = 0; + int has_shared_pool = 0; + + dev = &_of_dev->dev; + + /* The default is one, if there's no property */ + *count = 1; + + /* There are three types of buffer pool configuration: + * 1) No bp assignment + * 2) A static assignment to an empty configuration + * 3) A static assignment to one or more configured pools + * + * We don't support using multiple unconfigured pools. + */ + + /* Get the buffer pools to be used */ + phandle_prop = of_get_property(dev->of_node, + "fsl,bman-buffer-pools", &lenp); + + if (phandle_prop) + *count = lenp / sizeof(phandle); + else { + if (default_pool) + return default_pool; + + has_kernel_pool = 1; + } + + dpa_bp = devm_kzalloc(dev, *count * sizeof(*dpa_bp), GFP_KERNEL); + if (unlikely(dpa_bp == NULL)) { + dpaa_eth_err(dev, "devm_kzalloc() failed\n"); + return ERR_PTR(-ENOMEM); + } + + dev_node = of_find_node_by_path("/"); + if (unlikely(dev_node == NULL)) { + dpaa_eth_err(dev, "of_find_node_by_path(/) failed\n"); + return ERR_PTR(-EINVAL); + } + + na = of_n_addr_cells(dev_node); + ns = of_n_size_cells(dev_node); + + for (i = 0; i < *count && phandle_prop; i++) { + of_node_put(dev_node); + dev_node = of_find_node_by_phandle(phandle_prop[i]); + if (unlikely(dev_node == NULL)) { + dpaa_eth_err(dev, "of_find_node_by_phandle() failed\n"); + return ERR_PTR(-EFAULT); + } + + if (unlikely(!of_device_is_compatible(dev_node, "fsl,bpool"))) { + dpaa_eth_err(dev, + "!of_device_is_compatible(%s, fsl,bpool)\n", + dev_node->full_name); + dpa_bp = ERR_PTR(-EINVAL); + goto _return_of_node_put; + } + + bpid = of_get_property(dev_node, "fsl,bpid", &lenp); + if ((bpid == NULL) || (lenp != sizeof(*bpid))) { + dpaa_eth_err(dev, "fsl,bpid property not found.\n"); + dpa_bp = ERR_PTR(-EINVAL); + goto _return_of_node_put; + } + dpa_bp[i].bpid = *bpid; + + bpool_cfg = of_get_property(dev_node, "fsl,bpool-ethernet-cfg", + &lenp); + if (bpool_cfg && (lenp == (2 * ns + na) * sizeof(*bpool_cfg))) { + const uint32_t *seed_pool; + + dpa_bp[i].count = of_read_number(bpool_cfg, ns); + dpa_bp[i].size = of_read_number(bpool_cfg + ns, ns); + dpa_bp[i].paddr = + of_read_number(bpool_cfg + 2 * ns, na); + + seed_pool = of_get_property(dev_node, + "fsl,bpool-ethernet-seeds", &lenp); + dpa_bp[i].seed_pool = !!seed_pool; + + has_shared_pool = 1; + } else { + has_kernel_pool = 1; + } + + if (i > 0) + has_shared_pool = 1; + } + + if (has_kernel_pool && has_shared_pool) { + dpaa_eth_err(dev, "Invalid buffer pool configuration " + "for node %s\n", dev_node->full_name); + dpa_bp = ERR_PTR(-EINVAL); + goto _return_of_node_put; + } else if (has_kernel_pool) { + dpa_bp->count = DEFAULT_COUNT; + dpa_bp->size = DEFAULT_BUF_SIZE; + dpa_bp->kernel_pool = 1; + } + + sort(dpa_bp, *count, sizeof(*dpa_bp), dpa_bp_cmp, NULL); + + return dpa_bp; + +_return_of_node_put: + if (dev_node) + of_node_put(dev_node); + + return dpa_bp; +} + +static int dpa_bp_create(struct net_device *net_dev, struct dpa_bp *dpa_bp, + size_t count) +{ + struct dpa_priv_s *priv = netdev_priv(net_dev); + int i; + + if (dpa_bp->kernel_pool) { + priv->shared = 0; + + if (netif_msg_probe(priv)) + cpu_dev_info(net_dev->dev.parent, + "Using private BM buffer pools\n"); + } else { + priv->shared = 1; + } + + priv->dpa_bp = dpa_bp; + priv->bp_count = count; + + for (i = 0; i < count; i++) { + int err; + err = dpa_bp_alloc(&dpa_bp[i]); + if (err < 0) { + dpa_bp_free(priv, dpa_bp); + priv->dpa_bp = NULL; + return err; + } + + /* For now, just point to the default pool. + * We can add support for more pools, later + */ + if (dpa_bp->kernel_pool) + priv->dpa_bp = default_pool; + } + + return 0; +} + +static struct mac_device * __cold __must_check +__attribute__((nonnull)) +dpa_mac_probe(struct platform_device *_of_dev) +{ + struct device *dpa_dev, *dev; + struct device_node *mac_node; + int lenp; + const phandle *phandle_prop; + struct platform_device *of_dev; + struct mac_device *mac_dev; +#ifdef CONFIG_FSL_DPA_1588 + struct net_device *net_dev = NULL; + struct dpa_priv_s *priv = NULL; + struct device_node *timer_node; +#endif + + phandle_prop = of_get_property(_of_dev->dev.of_node, "fsl,fman-mac", &lenp); + if (phandle_prop == NULL) + return NULL; + + BUG_ON(lenp != sizeof(phandle)); + + dpa_dev = &_of_dev->dev; + + mac_node = of_find_node_by_phandle(*phandle_prop); + if (unlikely(mac_node == NULL)) { + dpaa_eth_err(dpa_dev, "of_find_node_by_phandle() failed\n"); + return ERR_PTR(-EFAULT); + } + + of_dev = of_find_device_by_node(mac_node); + if (unlikely(of_dev == NULL)) { + dpaa_eth_err(dpa_dev, "of_find_device_by_node(%s) failed\n", + mac_node->full_name); + of_node_put(mac_node); + return ERR_PTR(-EINVAL); + } + of_node_put(mac_node); + + dev = &of_dev->dev; + + mac_dev = dev_get_drvdata(dev); + if (unlikely(mac_dev == NULL)) { + dpaa_eth_err(dpa_dev, "dev_get_drvdata(%s) failed\n", + dev_name(dev)); + return ERR_PTR(-EINVAL); + } + +#ifdef CONFIG_FSL_DPA_1588 + phandle_prop = of_get_property(mac_node, "ptimer-handle", &lenp); + if (phandle_prop && ((mac_dev->phy_if != PHY_INTERFACE_MODE_SGMII) || + ((mac_dev->phy_if == PHY_INTERFACE_MODE_SGMII) && + (mac_dev->speed == SPEED_1000)))) { + timer_node = of_find_node_by_phandle(*phandle_prop); + if (timer_node && (net_dev = dev_get_drvdata(dpa_dev))) { + priv = netdev_priv(net_dev); + if (!dpa_ptp_init(priv)) + dpaa_eth_info(dev, "%s: ptp-timer enabled\n", + mac_node->full_name); + } + } +#endif + + return mac_dev; +} + +static const char fsl_qman_frame_queues[][25] = { + [RX] = "fsl,qman-frame-queues-rx", + [TX] = "fsl,qman-frame-queues-tx" +}; + +#ifdef CONFIG_DEBUG_FS +static int __cold dpa_debugfs_show(struct seq_file *file, void *offset) +{ + int i; + struct dpa_priv_s *priv; + struct dpa_percpu_priv_s *percpu_priv, total; + struct dpa_bp *dpa_bp; + unsigned int count_total = 0; + + BUG_ON(offset == NULL); + + priv = netdev_priv((struct net_device *)file->private); + + dpa_bp = priv->dpa_bp; + + memset(&total, 0, sizeof(total)); + + seq_printf(file, "\tirqs\trx\ttx\trecycle\tconfirm\ttx err\trx err" \ + "\tbp count\n"); + for_each_online_cpu(i) { + percpu_priv = per_cpu_ptr(priv->percpu_priv, i); + + total.in_interrupt += percpu_priv->in_interrupt; + total.ingress_calls += percpu_priv->stats.rx_packets; + total.stats.tx_packets += percpu_priv->stats.tx_packets; + total.tx_returned += percpu_priv->tx_returned; + total.tx_confirm += percpu_priv->tx_confirm; + total.stats.tx_errors += percpu_priv->stats.tx_errors; + total.stats.rx_errors += percpu_priv->stats.rx_errors; + count_total += *percpu_priv->dpa_bp_count; + + seq_printf(file, "%hu/%hu\t%u\t%lu\t%lu\t%u\t%u\t%lu\t%lu" \ + "\t%d\n", + get_hard_smp_processor_id(i), i, + percpu_priv->in_interrupt, + percpu_priv->stats.rx_packets, + percpu_priv->stats.tx_packets, + percpu_priv->tx_returned, + percpu_priv->tx_confirm, + percpu_priv->stats.tx_errors, + percpu_priv->stats.rx_errors, + *percpu_priv->dpa_bp_count); + } + seq_printf(file, "Total\t%u\t%u\t%lu\t%u\t%u\t%lu\t%lu\t%d\n", + total.in_interrupt, + total.ingress_calls, + total.stats.tx_packets, + total.tx_returned, + total.tx_confirm, + total.stats.tx_errors, + total.stats.rx_errors, + count_total); + + return 0; +} + +static int __cold dpa_debugfs_open(struct inode *inode, struct file *file) +{ + int _errno; + const struct net_device *net_dev; + + _errno = single_open(file, dpa_debugfs_show, inode->i_private); + if (unlikely(_errno < 0)) { + net_dev = (struct net_device *)inode->i_private; + + if (netif_msg_drv((struct dpa_priv_s *)netdev_priv(net_dev))) + cpu_netdev_err(net_dev, "single_open() = %d\n", + _errno); + } + return _errno; +} + +static const struct file_operations dpa_debugfs_fops = { + .open = dpa_debugfs_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; +#endif + +static u16 dpa_select_queue(struct net_device *net_dev, struct sk_buff *skb) +{ + return smp_processor_id(); +} + +static const struct net_device_ops dpa_private_ops = { + .ndo_open = dpa_start, + .ndo_start_xmit = dpa_tx, + .ndo_stop = dpa_stop, + .ndo_change_rx_flags = dpa_change_rx_flags, + .ndo_tx_timeout = dpa_timeout, + .ndo_get_stats = dpa_get_stats, + .ndo_set_mac_address = dpa_set_mac_address, + .ndo_validate_addr = eth_validate_addr, + .ndo_select_queue = dpa_select_queue, + .ndo_change_mtu = dpa_change_mtu, + .ndo_set_rx_mode = dpa_set_multicast_list, + .ndo_do_ioctl = dpa_ioctl, +}; + +static const struct net_device_ops dpa_shared_ops = { + .ndo_open = dpa_start, + .ndo_start_xmit = dpa_shared_tx, + .ndo_stop = dpa_stop, + .ndo_change_rx_flags = dpa_change_rx_flags, + .ndo_tx_timeout = dpa_timeout, + .ndo_get_stats = dpa_get_stats, + .ndo_set_mac_address = dpa_set_mac_address, + .ndo_validate_addr = eth_validate_addr, + .ndo_set_rx_mode = dpa_set_multicast_list, + .ndo_do_ioctl = dpa_ioctl, +}; + +static int dpa_get_channel(struct device *dev, + struct device_node *dpa_node) +{ + struct device_node *dev_node; + const uint32_t *channel_id; + int lenp; + + dev_node = of_parse_phandle(dpa_node, "fsl,qman-channel", 0); + if (dev_node == NULL) { + dpaa_eth_err(dev, "Could not find fsl,qman-channel property\n"); + return -EFAULT; + } + + channel_id = of_get_property(dev_node, "fsl,qman-channel-id", &lenp); + if ((channel_id == NULL) || (lenp < sizeof(*channel_id))) { + dpaa_eth_err(dev, "Could not get fsl,qman-channel-id in %s\n", + dev_node->full_name); + of_node_put(dev_node); + return -EINVAL; + } + of_node_put(dev_node); + return *channel_id; +} + +struct fqid_cell { + uint32_t start; + uint32_t count; +}; + +static const struct fqid_cell default_fqids[][3] = { + [RX] = { {0, 1}, {0, 1}, {0, DPAA_ETH_RX_QUEUES} }, + [TX] = { {0, 1}, {0, 1}, {0, DPAA_ETH_TX_QUEUES} } +}; + +static int +dpa_fq_probe(struct platform_device *_of_dev, struct list_head *list, + struct dpa_fq **defq, struct dpa_fq **errq, + struct dpa_fq **fqs, int ptype) +{ + struct device *dev = &_of_dev->dev; + struct device_node *np = dev->of_node; + const struct fqid_cell *fqids; + int i, j, lenp; + int num_fqids; + struct dpa_fq *dpa_fq; + int err = 0; + + fqids = of_get_property(np, fsl_qman_frame_queues[ptype], &lenp); + if (fqids == NULL) { + fqids = default_fqids[ptype]; + num_fqids = 3; + } else + num_fqids = lenp / sizeof(*fqids); + + for (i = 0; i < num_fqids; i++) { + dpa_fq = devm_kzalloc(dev, sizeof(*dpa_fq) * fqids[i].count, + GFP_KERNEL); + if (dpa_fq == NULL) { + dpaa_eth_err(dev, "devm_kzalloc() failed\n"); + return -ENOMEM; + } + + /* The first queue is the Error queue */ + if (i == 0 && errq) { + *errq = dpa_fq; + + if (fqids[i].count != 1) { + dpaa_eth_err(dev, "Too many error queues!\n"); + err = -EINVAL; + goto invalid_error_queues; + } + } + + /* The second queue is the the Default queue */ + if (i == 1 && defq) { + *defq = dpa_fq; + + if (fqids[i].count != 1) { + dpaa_eth_err(dev, "Too many default queues!\n"); + err = -EINVAL; + goto invalid_default_queues; + } + } + + /* + * All subsequent queues are gathered together. + * The first 8 will be used by the private linux interface + * if these are TX queues + */ + if (i == 2 || (!errq && i == 0 && fqs)) + *fqs = dpa_fq; + +#warning We lost the 8-queue enforcement + +#define DPA_NUM_WQS 8 + for (j = 0; j < fqids[i].count; j++) { + dpa_fq[j].fqid = fqids[i].start ? + fqids[i].start + j : 0; + dpa_fq[j].wq = dpa_fq[j].fqid ? + dpa_fq[j].fqid % DPA_NUM_WQS : DPA_NUM_WQS - 1; + list_add_tail(&dpa_fq[j].list, list); + } + } + +invalid_default_queues: +invalid_error_queues: + return err; +} + +static void dpa_setup_ingress(struct dpa_priv_s *priv, struct dpa_fq *fq, + const struct qman_fq *template) +{ + fq->fq_base = *template; + fq->net_dev = priv->net_dev; + + fq->flags = QMAN_FQ_FLAG_NO_ENQUEUE; + fq->channel = priv->channel; +} + +static void dpa_setup_egress(struct dpa_priv_s *priv, + struct list_head *head, struct dpa_fq *fq, + struct fm_port *port) +{ + struct list_head *ptr = &fq->list; + int i = 0; + + while (true) { + struct dpa_fq *iter = list_entry(ptr, struct dpa_fq, list); + if (priv->shared) + iter->fq_base = shared_egress_fq; + else + iter->fq_base = private_egress_fq; + + iter->net_dev = priv->net_dev; + priv->egress_fqs[i++] = &iter->fq_base; + + if (port) { + iter->flags = QMAN_FQ_FLAG_TO_DCPORTAL; + iter->channel = fm_get_tx_port_channel(port); + } else + iter->flags = QMAN_FQ_FLAG_NO_MODIFY; + + if (list_is_last(ptr, head)) + break; + + ptr = ptr->next; + } +} + +static void dpa_setup_ingress_queues(struct dpa_priv_s *priv, + struct list_head *head, struct dpa_fq *fq) +{ + struct list_head *ptr = &fq->list; + u32 fqid; + int portals[NR_CPUS]; + int num_portals; + int i; + struct device_node *qm_node; + struct device_node *cpu_node; + const uint32_t *uint32_prop; + const phandle *ph; + int lenp; + int cpu; + bool found; + const cpumask_t *affine_cpus = qman_affine_cpus(); + + /* + * Make a list of the available portals. + * We're only interested in those portals which have an affine core + * and moreover that core is included in the cpumask provided by QMan + */ + num_portals = 0; + for_each_compatible_node(qm_node, NULL, "fsl,qman-portal") { + /* Check if portal has an affine core */ + ph = of_get_property(qm_node, "cpu-handle", &lenp); + if (!ph || (lenp != sizeof(phandle))) + continue; + + /* Get the hardware id of the affine core */ + cpu_node = of_find_node_by_phandle(*ph); + if (!cpu_node) + continue; + uint32_prop = of_get_property(cpu_node, "reg", &lenp); + if (!uint32_prop || (lenp != sizeof(uint32_t))) { + dpaa_eth_err(fq->net_dev->dev.parent, + "failed to get property %s for node %s", + "reg", cpu_node->full_name); + continue; + } + + /* If it's not included in the cpumask we got from QMan, + * skip portal */ + found = false; + for_each_cpu(cpu, affine_cpus) { + if (*uint32_prop == get_hard_smp_processor_id(cpu) + && !of_get_property(qm_node, + "fsl,usdpaa-portal", NULL)) { + found = true; + break; + } + } + if (!found) + continue; + + /* This portal is good, store its sw channel */ + uint32_prop = of_get_property(qm_node, + "fsl,qman-channel-id", &lenp); + if (!uint32_prop || (lenp != sizeof(uint32_t))) { + dpaa_eth_err(fq->net_dev->dev.parent, + "Failed to get property %s for node %s", + "fsl,qman-channel-id", qm_node->full_name); + continue; + } + portals[num_portals++] = *uint32_prop; + } + if (num_portals == 0) { + dpaa_eth_err(fq->net_dev->dev.parent, + "No adequate Qman portals found"); + return; + } + + i = 0; + fqid = 0; + if (priv->mac_dev) + fqid = (priv->mac_dev->res->start & 0x1fffff) >> 6; + + while (true) { + struct dpa_fq *iter = list_entry(ptr, struct dpa_fq, list); + + if (priv->shared) + dpa_setup_ingress(priv, iter, &rx_shared_fq); + else + dpa_setup_ingress(priv, iter, &rx_private_defq); + + if (!iter->fqid) + iter->fqid = fqid++; + + /* Assign the queues to a channel in a round-robin fashion */ + iter->channel = portals[i]; + i = (i + 1) % num_portals; + + if (list_is_last(ptr, head)) + break; + + ptr = ptr->next; + } +} + +static void +dpaa_eth_init_tx_port(struct fm_port *port, struct dpa_fq *errq, + struct dpa_fq *defq, bool has_timer) +{ + struct fm_port_non_rx_params tx_port_param; + + dpaa_eth_init_port(tx, port, tx_port_param, errq->fqid, defq->fqid, + has_timer); +} + +static void +dpaa_eth_init_rx_port(struct fm_port *port, struct dpa_bp *bp, size_t count, + struct dpa_fq *errq, struct dpa_fq *defq, bool has_timer) +{ + struct fm_port_rx_params rx_port_param; + int i; + + count = min(ARRAY_SIZE(rx_port_param.pool_param), count); + rx_port_param.num_pools = count; + for (i = 0; i < count; i++) { + if (i >= rx_port_param.num_pools) + break; + + rx_port_param.pool_param[i].id = bp[i].bpid; + rx_port_param.pool_param[i].size = bp[i].size; + } + + dpaa_eth_init_port(rx, port, rx_port_param, errq->fqid, defq->fqid, + has_timer); +} + +static void dpa_rx_fq_init(struct dpa_priv_s *priv, struct list_head *head, + struct dpa_fq *defq, struct dpa_fq *errq, + struct dpa_fq *fqs) +{ + if (fqs) + dpa_setup_ingress_queues(priv, head, fqs); + + /* Only real devices need default/error queues set up */ + if (!priv->mac_dev) + return; + + if (defq->fqid == 0 && netif_msg_probe(priv)) + cpu_pr_info("Using dynamic RX QM frame queues\n"); + + if (priv->shared) { + dpa_setup_ingress(priv, defq, &rx_shared_fq); + dpa_setup_ingress(priv, errq, &rx_shared_fq); + } else { + dpa_setup_ingress(priv, defq, &rx_private_defq); + dpa_setup_ingress(priv, errq, &rx_private_errq); + } +} + +static void dpa_tx_fq_init(struct dpa_priv_s *priv, struct list_head *head, + struct dpa_fq *defq, struct dpa_fq *errq, + struct dpa_fq *fqs, struct fm_port *port) +{ + if (fqs) + dpa_setup_egress(priv, head, fqs, port); + + /* Only real devices need default/error queues set up */ + if (!priv->mac_dev) + return; + + if (defq->fqid == 0 && netif_msg_probe(priv)) + cpu_pr_info("Using dynamic TX QM frame queues\n"); + + /* The shared driver doesn't use tx confirmation */ + if (priv->shared) { + dpa_setup_ingress(priv, defq, &dummyq); + dpa_setup_ingress(priv, errq, &dummyq); + } else { + dpa_setup_ingress(priv, defq, &tx_private_defq); + dpa_setup_ingress(priv, errq, &tx_private_errq); + } +} + +static int dpa_netdev_init(struct device_node *dpa_node, + struct net_device *net_dev) +{ + int err; + const uint8_t *mac_addr; + struct dpa_priv_s *priv = netdev_priv(net_dev); + struct device *dev = net_dev->dev.parent; + + net_dev->features |= DPA_NETIF_FEATURES; + net_dev->vlan_features |= DPA_NETIF_FEATURES; + + if (!priv->mac_dev) { + /* Get the MAC address */ + mac_addr = of_get_mac_address(dpa_node); + if (mac_addr == NULL) { + if (netif_msg_probe(priv)) + dpaa_eth_err(dev, "No MAC address found!\n"); + return -EINVAL; + } + } else { + net_dev->mem_start = priv->mac_dev->res->start; + net_dev->mem_end = priv->mac_dev->res->end; + + mac_addr = priv->mac_dev->addr; + net_dev->features |= (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM); + net_dev->vlan_features |= (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM); + } + + memcpy(net_dev->perm_addr, mac_addr, net_dev->addr_len); + memcpy(net_dev->dev_addr, mac_addr, net_dev->addr_len); + + SET_ETHTOOL_OPS(net_dev, &dpa_ethtool_ops); + net_dev->needed_headroom = DPA_BP_HEAD; + net_dev->watchdog_timeo = tx_timeout * HZ / 1000; + + err = register_netdev(net_dev); + if (err < 0) { + dpaa_eth_err(dev, "register_netdev() = %d\n", err); + return err; + } + +#ifdef CONFIG_DEBUG_FS + priv->debugfs_file = debugfs_create_file(net_dev->name, S_IRUGO, + dpa_debugfs_root, net_dev, + &dpa_debugfs_fops); + if (unlikely(priv->debugfs_file == NULL)) { + cpu_netdev_err(net_dev, "debugfs_create_file(%s/%s/%s) = %d\n", + powerpc_debugfs_root->d_iname, + dpa_debugfs_root->d_iname, + net_dev->name, err); + + unregister_netdev(net_dev); + return -ENOMEM; + } +#endif + + return 0; +} + +static int dpa_shared_netdev_init(struct device_node *dpa_node, + struct net_device *net_dev) +{ + net_dev->netdev_ops = &dpa_shared_ops; + + return dpa_netdev_init(dpa_node, net_dev); +} + +static int dpa_private_netdev_init(struct device_node *dpa_node, + struct net_device *net_dev) +{ + int i; + struct dpa_priv_s *priv = netdev_priv(net_dev); + struct dpa_percpu_priv_s *percpu_priv; + + for_each_online_cpu(i) { + percpu_priv = per_cpu_ptr(priv->percpu_priv, i); + percpu_priv->net_dev = net_dev; + + percpu_priv->dpa_bp = priv->dpa_bp; + percpu_priv->dpa_bp_count = + per_cpu_ptr(priv->dpa_bp->percpu_count, i); + netif_napi_add(net_dev, &percpu_priv->napi, dpaa_eth_poll, + DPA_NAPI_WEIGHT); + } + + net_dev->netdev_ops = &dpa_private_ops; + + return dpa_netdev_init(dpa_node, net_dev); +} + +static int dpa_alloc_pcd_fqids(struct device *dev, uint32_t num, + uint8_t alignment, uint32_t *base_fqid) +{ + dpaa_eth_crit(dev, "callback not implemented!\n"); + BUG(); + + return 0; +} + +static int dpa_free_pcd_fqids(struct device *dev, uint32_t base_fqid) +{ + + dpaa_eth_crit(dev, "callback not implemented!\n"); + BUG(); + + return 0; +} + +static ssize_t dpaa_eth_show_addr(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct dpa_priv_s *priv = netdev_priv(to_net_dev(dev)); + struct mac_device *mac_dev = priv->mac_dev; + + if (mac_dev) + return sprintf(buf, "%llx", + (unsigned long long)mac_dev->res->start); + else + return sprintf(buf, "none"); +} + +static DEVICE_ATTR(device_addr, S_IRUGO, dpaa_eth_show_addr, NULL); + +static ssize_t dpaa_eth_show_fqids(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct dpa_priv_s *priv = netdev_priv(to_net_dev(dev)); + ssize_t bytes = 0; + int i = 0; + char *str; + struct dpa_fq *fq; + struct dpa_fq *tmp; + struct dpa_fq *prev = NULL; + u32 first_fqid = 0; + u32 last_fqid = 0; + char *prevstr = NULL; + + list_for_each_entry_safe(fq, tmp, &priv->dpa_fq_list, list) { + void *dqrr = fq->fq_base.cb.dqrr; + if (dqrr == ingress_rx_error_dqrr) + str = "error"; + else if (i == 1 && dqrr == ingress_rx_default_dqrr) + str = "default"; + else if (dqrr == ingress_rx_error_dqrr || + dqrr == ingress_rx_default_dqrr) + str = "RX"; + else if (dqrr == ingress_tx_default_dqrr) + str = "TX confirmation"; + else if (dqrr == ingress_tx_error_dqrr) + str = "TX error"; + else if (dqrr == NULL) + str = "TX"; + else + str = "unknown"; + + if (prev && (abs(fq->fqid - prev->fqid) != 1 || + str != prevstr)) { + if (last_fqid == first_fqid) + bytes += sprintf(buf + bytes, + "%s: %d\n", prevstr, prev->fqid); + else + bytes += sprintf(buf + bytes, + "%s: %d - %d\n", prevstr, + first_fqid, last_fqid); + } + + if (prev && abs(fq->fqid - prev->fqid) == 1 && str == prevstr) + last_fqid = fq->fqid; + else + first_fqid = last_fqid = fq->fqid; + + prev = fq; + prevstr = str; + i++; + } + + if (last_fqid == first_fqid) + bytes += sprintf(buf + bytes, "%s: %d\n", prevstr, prev->fqid); + else + bytes += sprintf(buf + bytes, "%s: %d - %d\n", prevstr, + first_fqid, last_fqid); + + return bytes; +} + +static DEVICE_ATTR(fqids, S_IRUGO, dpaa_eth_show_fqids, NULL); + + +static void dpaa_eth_sysfs_init(struct device *dev) +{ + if (device_create_file(dev, &dev_attr_device_addr)) + dev_err(dev, "Error creating dpaa_eth addr file\n"); + if (device_create_file(dev, &dev_attr_fqids)) + dev_err(dev, "Error creating dpaa_eth fqids file\n"); +} +static const struct of_device_id dpa_match[] ; +static int +dpaa_eth_probe(struct platform_device *_of_dev) +{ + int err, i; + struct device *dev; + struct device_node *dpa_node; + struct dpa_bp *dpa_bp; + struct dpa_fq *dpa_fq, *tmp; + struct list_head rxfqlist; + struct list_head txfqlist; + size_t count; + struct net_device *net_dev = NULL; + struct dpa_priv_s *priv = NULL; + struct dpa_fq *rxdefault = NULL; + struct dpa_fq *txdefault = NULL; + struct dpa_fq *rxerror = NULL; + struct dpa_fq *txerror = NULL; + struct dpa_fq *rxextra = NULL; + struct dpa_fq *txfqs = NULL; + struct fm_port *rxport = NULL; + struct fm_port *txport = NULL; + bool has_timer = FALSE; + struct mac_device *mac_dev; + int proxy_enet; + const struct of_device_id *match; + + dev = &_of_dev->dev; + + dpa_node = dev->of_node; + + match = of_match_device(dpa_match, dev); + if (!match) + return -EINVAL; + + if (!of_device_is_available(dpa_node)) + return -ENODEV; + + /* + * If it's not an fsl,dpa-ethernet node, we just serve as a proxy + * initializer driver, and don't do any linux device setup + */ + proxy_enet = strcmp(match->compatible, "fsl,dpa-ethernet"); + + /* + * Allocate this early, so we can store relevant information in + * the private area + */ + if (!proxy_enet) { + net_dev = alloc_etherdev_mq(sizeof(*priv), DPAA_ETH_TX_QUEUES); + if (!net_dev) { + dpaa_eth_err(dev, "alloc_etherdev_mq() failed\n"); + return -ENOMEM; + } + + /* Do this here, so we can be verbose early */ + SET_NETDEV_DEV(net_dev, dev); + dev_set_drvdata(dev, net_dev); + + priv = netdev_priv(net_dev); + priv->net_dev = net_dev; + + priv->msg_enable = netif_msg_init(debug, -1); + } + + /* Get the buffer pools assigned to this interface */ + dpa_bp = dpa_bp_probe(_of_dev, &count); + if (IS_ERR(dpa_bp)) { + err = PTR_ERR(dpa_bp); + goto bp_probe_failed; + } + + mac_dev = dpa_mac_probe(_of_dev); + if (IS_ERR(mac_dev)) { + err = PTR_ERR(mac_dev); + goto mac_probe_failed; + } else if (mac_dev) { + rxport = mac_dev->port_dev[RX]; + txport = mac_dev->port_dev[TX]; + } + + INIT_LIST_HEAD(&rxfqlist); + INIT_LIST_HEAD(&txfqlist); + + if (rxport) + err = dpa_fq_probe(_of_dev, &rxfqlist, &rxdefault, &rxerror, + &rxextra, RX); + else + err = dpa_fq_probe(_of_dev, &rxfqlist, NULL, NULL, + &rxextra, RX); + + if (err < 0) + goto rx_fq_probe_failed; + + if (txport) + err = dpa_fq_probe(_of_dev, &txfqlist, &txdefault, &txerror, + &txfqs, TX); + else + err = dpa_fq_probe(_of_dev, &txfqlist, NULL, NULL, &txfqs, TX); + + if (err < 0) + goto tx_fq_probe_failed; + + /* + * Now we have all of the configuration information. + * We support a number of configurations: + * 1) Private interface - An optimized linux ethernet driver with + * a real network connection. + * 2) Shared interface - A device intended for virtual connections + * or for a real interface that is shared between partitions + * 3) Proxy initializer - Just configures the MAC on behalf of + * another partition + */ + + /* bp init */ + if (net_dev) { + err = dpa_bp_create(net_dev, dpa_bp, count); + + if (err < 0) + goto bp_create_failed; + + priv->mac_dev = mac_dev; + + priv->channel = dpa_get_channel(dev, dpa_node); + + if (priv->channel < 0) { + err = priv->channel; + goto get_channel_failed; + } + + dpa_rx_fq_init(priv, &rxfqlist, rxdefault, rxerror, rxextra); + dpa_tx_fq_init(priv, &txfqlist, txdefault, txerror, txfqs, + txport); + + /* Add the FQs to the interface, and make them active */ + INIT_LIST_HEAD(&priv->dpa_fq_list); + + list_for_each_entry_safe(dpa_fq, tmp, &rxfqlist, list) { + err = _dpa_fq_alloc(&priv->dpa_fq_list, dpa_fq); + if (err < 0) + goto fq_alloc_failed; + } + + list_for_each_entry_safe(dpa_fq, tmp, &txfqlist, list) { + err = _dpa_fq_alloc(&priv->dpa_fq_list, dpa_fq); + if (err < 0) + goto fq_alloc_failed; + } + + if (priv->tsu && priv->tsu->valid) + has_timer = TRUE; + } + + /* All real interfaces need their ports initialized */ + if (mac_dev) { + struct fm_port_pcd_param rx_port_pcd_param; + + dpaa_eth_init_rx_port(rxport, dpa_bp, count, rxerror, + rxdefault, has_timer); + dpaa_eth_init_tx_port(txport, txerror, txdefault, has_timer); + + rx_port_pcd_param.cba = dpa_alloc_pcd_fqids; + rx_port_pcd_param.cbf = dpa_free_pcd_fqids; + rx_port_pcd_param.dev = dev; + fm_port_pcd_bind(rxport, &rx_port_pcd_param); + } + + /* + * Proxy interfaces need to be started, and the allocated + * memory freed + */ + if (!net_dev) { + devm_kfree(&_of_dev->dev, dpa_bp); + devm_kfree(&_of_dev->dev, rxdefault); + devm_kfree(&_of_dev->dev, rxerror); + devm_kfree(&_of_dev->dev, txdefault); + devm_kfree(&_of_dev->dev, txerror); + + if (mac_dev) + for_each_port_device(i, mac_dev->port_dev) + fm_port_enable(mac_dev->port_dev[i]); + + return 0; + } + + /* Now we need to initialize either a private or shared interface */ + priv->percpu_priv = __alloc_percpu(sizeof(*priv->percpu_priv), + __alignof__(*priv->percpu_priv)); + if (priv->percpu_priv == NULL) { + dpaa_eth_err(dev, "__alloc_percpu() failed\n"); + err = -ENOMEM; + goto alloc_percpu_failed; + } + + if (priv->shared) + err = dpa_shared_netdev_init(dpa_node, net_dev); + else + err = dpa_private_netdev_init(dpa_node, net_dev); + + if (err < 0) + goto netdev_init_failed; + + dpaa_eth_sysfs_init(&net_dev->dev); + +#ifdef CONFIG_DPAA_ETH_UNIT_TESTS + /* The unit test is designed to test private interfaces */ + if (!priv->shared && !tx_unit_test_ran) { + err = dpa_tx_unit_test(net_dev); + + BUG_ON(err); + } +#endif + + return 0; + +netdev_init_failed: + if (net_dev) + free_percpu(priv->percpu_priv); +alloc_percpu_failed: +fq_alloc_failed: + if (net_dev) + dpa_fq_free(dev, &priv->dpa_fq_list); +get_channel_failed: + if (net_dev) + dpa_bp_free(priv, priv->dpa_bp); +bp_create_failed: +tx_fq_probe_failed: +rx_fq_probe_failed: +mac_probe_failed: +bp_probe_failed: + dev_set_drvdata(dev, NULL); + if (net_dev) + free_netdev(net_dev); + + return err; +} + +static const struct of_device_id dpa_match[] = { + { + .compatible = "fsl,dpa-ethernet" + }, + { + .compatible = "fsl,dpa-ethernet-init" + }, + {} +}; +MODULE_DEVICE_TABLE(of, dpa_match); + +static int __cold dpa_remove(struct platform_device *of_dev) +{ + int err; + struct device *dev; + struct net_device *net_dev; + struct dpa_priv_s *priv; + + dev = &of_dev->dev; + net_dev = dev_get_drvdata(dev); + priv = netdev_priv(net_dev); + + dev_set_drvdata(dev, NULL); + unregister_netdev(net_dev); + + err = dpa_fq_free(dev, &priv->dpa_fq_list); + + free_percpu(priv->percpu_priv); + + dpa_bp_free(priv, priv->dpa_bp); + +#ifdef CONFIG_DEBUG_FS + debugfs_remove(priv->debugfs_file); +#endif + +#ifdef CONFIG_FSL_DPA_1588 + if (priv->tsu && priv->tsu->valid) + dpa_ptp_cleanup(priv); +#endif + + free_netdev(net_dev); + + return err; +} + +static struct platform_driver dpa_driver = { + .driver = { + .name = KBUILD_MODNAME, + .of_match_table = dpa_match, + .owner = THIS_MODULE, + }, + .probe = dpaa_eth_probe, + .remove = dpa_remove, +}; + +static int __init __cold dpa_load(void) +{ + int _errno; + + cpu_pr_info(KBUILD_MODNAME ": " DPA_DESCRIPTION " (" VERSION ")\n"); + +#ifdef CONFIG_DEBUG_FS + dpa_debugfs_root = debugfs_create_dir(KBUILD_MODNAME, + powerpc_debugfs_root); + if (unlikely(dpa_debugfs_root == NULL)) { + _errno = -ENOMEM; + cpu_pr_err(KBUILD_MODNAME ": %s:%hu:%s(): " + "debugfs_create_dir(%s/"KBUILD_MODNAME") = %d\n", + __file__, __LINE__, __func__, + powerpc_debugfs_root->d_iname, _errno); + goto _return; + } +#endif + + _errno = platform_driver_register(&dpa_driver); + if (unlikely(_errno < 0)) { + cpu_pr_err(KBUILD_MODNAME + ": %s:%hu:%s(): platform_driver_register() = %d\n", + __file__, __LINE__, __func__, _errno); + goto _return_debugfs_remove; + } + + goto _return; + +_return_debugfs_remove: +#ifdef CONFIG_DEBUG_FS + debugfs_remove(dpa_debugfs_root); +#endif +_return: + cpu_pr_debug(KBUILD_MODNAME ": %s:%s() ->\n", __file__, __func__); + + return _errno; +} +module_init(dpa_load); + +static void __exit __cold dpa_unload(void) +{ + cpu_pr_debug(KBUILD_MODNAME ": -> %s:%s()\n", __file__, __func__); + + platform_driver_unregister(&dpa_driver); + +#ifdef CONFIG_DEBUG_FS + debugfs_remove(dpa_debugfs_root); +#endif + + cpu_pr_debug(KBUILD_MODNAME ": %s:%s() ->\n", __file__, __func__); +} +module_exit(dpa_unload); + +static int __init fsl_fman_phy_set_max_frm(char *str) +{ + int ret = 0; + + ret = get_option(&str, &fsl_fman_phy_maxfrm); + if (ret != 1) { + /* This will only work if CONFIG_EARLY_PRINTK is compiled in, + * and something like "earlyprintk=serial,uart0,115200" is + * specified in the bootargs */ + printk(KERN_WARNING "No suitable %s= prop in bootargs; " + "will use the default DPA_MAX_FRM_SIZE (%d) " + "from Kconfig.\n", + FSL_FMAN_PHY_MAXFRM_BOOTARG, CONFIG_DPA_MAX_FRM_SIZE); + + fsl_fman_phy_maxfrm = CONFIG_DPA_MAX_FRM_SIZE; + return 1; + } + + /* Don't allow invalid bootargs; fallback to the Kconfig value */ + if (fsl_fman_phy_maxfrm < 64 || fsl_fman_phy_maxfrm > 9600) { + printk(KERN_WARNING "Invalid %s=%d in bootargs, valid range is " + "64-9600. Falling back to the DPA_MAX_FRM_SIZE (%d) " + "from Kconfig.\n", + FSL_FMAN_PHY_MAXFRM_BOOTARG, fsl_fman_phy_maxfrm, + CONFIG_DPA_MAX_FRM_SIZE); + + fsl_fman_phy_maxfrm = CONFIG_DPA_MAX_FRM_SIZE; + return 1; + } + + printk(KERN_INFO "Using fsl_fman_phy_maxfrm=%d from bootargs\n", + fsl_fman_phy_maxfrm); + return 0; +} +early_param(FSL_FMAN_PHY_MAXFRM_BOOTARG, fsl_fman_phy_set_max_frm); --- linux-3.13.0.orig/drivers/net/dpa/dpaa_eth.h +++ linux-3.13.0/drivers/net/dpa/dpaa_eth.h @@ -0,0 +1,127 @@ +/* + * Copyright 2008-2011 Freescale Semiconductor Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __DPA_H +#define __DPA_H + +#include /* struct ethtool_ops */ +#include +#include /* struct list_head */ +#include /* struct work_struct */ +#include +#include +#ifdef CONFIG_DEBUG_FS +#include /* struct dentry */ +#endif + +#include /* struct qman_fq */ + +#include "dpaa_eth-common.h" + +#include "mac.h" /* struct mac_device */ + + +/* number of Tx queues to FMan */ +#define DPAA_ETH_TX_QUEUES 8 +#define DPAA_ETH_RX_QUEUES 128 + +struct pcd_range { + uint32_t base; + uint32_t count; +}; + +struct dpa_bp { + struct bman_pool *pool; + uint8_t bpid; + struct device *dev; + size_t count; + size_t size; + bool seed_pool; + dma_addr_t paddr; + void *vaddr; + int kernel_pool; + int *percpu_count; + int *needs_refill; + atomic_t refs; +}; + +struct dpa_percpu_priv_s { + struct net_device *net_dev; + int *dpa_bp_count; + struct dpa_bp *dpa_bp; + struct napi_struct napi; + u32 start_tx; + u32 in_interrupt; + u32 ingress_calls; + u32 tx_returned; + u32 tx_confirm; + struct net_device_stats stats; +}; + +struct dpa_priv_s { + struct dpa_bp *dpa_bp; + size_t bp_count; + int shared; + struct net_device *net_dev; + + uint16_t channel; /* "fsl,qman-channel-id" */ + struct list_head dpa_fq_list; + struct qman_fq *egress_fqs[DPAA_ETH_TX_QUEUES]; + + struct mac_device *mac_dev; + + struct dpa_percpu_priv_s *percpu_priv; +#ifdef CONFIG_DEBUG_FS + struct dentry *debugfs_file; +#endif + + uint32_t msg_enable; /* net_device message level */ + struct dpa_ptp_tsu *tsu; +}; + +extern const struct ethtool_ops dpa_ethtool_ops; +extern int fsl_fman_phy_maxfrm; + +static inline int dpaa_eth_napi_schedule(struct dpa_percpu_priv_s *percpu_priv) +{ + if (unlikely(in_irq())) { + /* Disable QMan IRQ and invoke NAPI */ + int ret = qman_irqsource_remove(QM_PIRQ_DQRI); + if (likely(!ret)) { + napi_schedule(&percpu_priv->napi); + return 1; + } + } + return 0; +} + +#endif /* __DPA_H */ --- linux-3.13.0.orig/drivers/net/dpa/mac-api.c +++ linux-3.13.0/drivers/net/dpa/mac-api.c @@ -0,0 +1,674 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include + +#include "dpaa_eth-common.h" +#include "dpaa_eth.h" +#include "mac.h" + +#include "error_ext.h" /* GET_ERROR_TYPE, E_OK */ +#include "fm_mac_ext.h" +#include "fm_rtc_ext.h" + +#define MAC_DESCRIPTION "FSL FMan MAC API based driver" + +MODULE_LICENSE("Dual BSD/GPL"); + +MODULE_AUTHOR("Emil Medve "); + +MODULE_DESCRIPTION(MAC_DESCRIPTION); + +struct mac_priv_s { + t_Handle mac; +}; + +const char *mac_driver_description __initconst = MAC_DESCRIPTION; +const size_t mac_sizeof_priv[] = { + [DTSEC] = sizeof(struct mac_priv_s), + [XGMAC] = sizeof(struct mac_priv_s) +}; + +static const e_EnetMode _100[] = +{ + [PHY_INTERFACE_MODE_MII] = e_ENET_MODE_MII_100, + [PHY_INTERFACE_MODE_RMII] = e_ENET_MODE_RMII_100 +}; + +static const e_EnetMode _1000[] = +{ + [PHY_INTERFACE_MODE_GMII] = e_ENET_MODE_GMII_1000, + [PHY_INTERFACE_MODE_SGMII] = e_ENET_MODE_SGMII_1000, + [PHY_INTERFACE_MODE_TBI] = e_ENET_MODE_TBI_1000, + [PHY_INTERFACE_MODE_RGMII] = e_ENET_MODE_RGMII_1000, + [PHY_INTERFACE_MODE_RGMII_ID] = e_ENET_MODE_RGMII_1000, + [PHY_INTERFACE_MODE_RGMII_RXID] = e_ENET_MODE_RGMII_1000, + [PHY_INTERFACE_MODE_RGMII_TXID] = e_ENET_MODE_RGMII_1000, + [PHY_INTERFACE_MODE_RTBI] = e_ENET_MODE_RTBI_1000 +}; + +static e_EnetMode __cold __attribute__((nonnull)) +macdev2enetinterface(const struct mac_device *mac_dev) +{ + switch (mac_dev->max_speed) { + case SPEED_100: + return _100[mac_dev->phy_if]; + case SPEED_1000: + return _1000[mac_dev->phy_if]; + case SPEED_10000: + return e_ENET_MODE_XGMII_10000; + default: + return e_ENET_MODE_MII_100; + } +} + +static void mac_exception(t_Handle _mac_dev, e_FmMacExceptions exception) +{ + struct mac_device *mac_dev; + + mac_dev = (struct mac_device *)_mac_dev; + + if (e_FM_MAC_EX_10G_RX_FIFO_OVFL == exception) { + /* don't flag RX FIFO after the first */ + FM_MAC_SetException( + ((struct mac_priv_s *)macdev_priv(_mac_dev))->mac, + e_FM_MAC_EX_10G_RX_FIFO_OVFL, false); + printk(KERN_ERR "10G MAC got RX FIFO Error = %x\n", exception); + } + + cpu_dev_dbg(mac_dev->dev, "%s:%s() -> %d\n", __file__, __func__, + exception); +} + +static int __cold init(struct mac_device *mac_dev) +{ + int _errno; + t_Error err; + struct mac_priv_s *priv; + t_FmMacParams param; + uint32_t version; + + priv = macdev_priv(mac_dev); + + param.baseAddr = (typeof(param.baseAddr))(uintptr_t)devm_ioremap( + mac_dev->dev, mac_dev->res->start, 0x2000); + param.enetMode = macdev2enetinterface(mac_dev); + memcpy(¶m.addr, mac_dev->addr, min(sizeof(param.addr), + sizeof(mac_dev->addr))); + param.macId = mac_dev->cell_index; + param.h_Fm = (t_Handle)mac_dev->fm; + param.mdioIrq = NO_IRQ; + param.f_Exception = mac_exception; + param.f_Event = mac_exception; + param.h_App = mac_dev; + + priv->mac = FM_MAC_Config(¶m); + if (unlikely(priv->mac == NULL)) { + dpaa_eth_err(mac_dev->dev, "FM_MAC_Config() failed\n"); + _errno = -EINVAL; + goto _return; + } + + err = FM_MAC_ConfigMaxFrameLength(priv->mac, fsl_fman_phy_maxfrm); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) { + dpaa_eth_err(mac_dev->dev, + "FM_MAC_ConfigMaxFrameLength() = 0x%08x\n", err); + goto _return_fm_mac_free; + } + + if (macdev2enetinterface(mac_dev) != e_ENET_MODE_XGMII_10000) { + /* 10G always works with pad and CRC */ + err = FM_MAC_ConfigPadAndCrc(priv->mac, true); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) { + dpaa_eth_err(mac_dev->dev, + "FM_MAC_ConfigPadAndCrc() = 0x%08x\n", err); + goto _return_fm_mac_free; + } + + err = FM_MAC_ConfigHalfDuplex(priv->mac, mac_dev->half_duplex); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) { + dpaa_eth_err(mac_dev->dev, + "FM_MAC_ConfigHalfDuplex() = 0x%08x\n", err); + goto _return_fm_mac_free; + } + } + else { + err = FM_MAC_ConfigResetOnInit(priv->mac, true); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) { + dpaa_eth_err(mac_dev->dev, + "FM_MAC_ConfigResetOnInit() = 0x%08x\n", err); + goto _return_fm_mac_free; + } + } + + err = FM_MAC_Init(priv->mac); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) { + dpaa_eth_err(mac_dev->dev, "FM_MAC_Init() = 0x%08x\n", err); + goto _return_fm_mac_free; + } + +#ifndef CONFIG_FMAN_MIB_CNT_OVF_IRQ_EN + /* For 1G MAC, disable by default the MIB counters overflow interrupt */ + if (macdev2enetinterface(mac_dev) != e_ENET_MODE_XGMII_10000) { + err = FM_MAC_SetException(priv->mac, + e_FM_MAC_EX_1G_RX_MIB_CNT_OVFL, FALSE); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) { + dpaa_eth_err(mac_dev->dev, + "FM_MAC_SetException() = 0x%08x\n", err); + goto _return_fm_mac_free; + } + } +#endif /* !CONFIG_FMAN_MIB_CNT_OVF_IRQ_EN */ + + /* For 10G MAC, disable Tx ECC exception */ + if (macdev2enetinterface(mac_dev) == e_ENET_MODE_XGMII_10000) { + err = FM_MAC_SetException(priv->mac, + e_FM_MAC_EX_10G_1TX_ECC_ER, FALSE); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) { + dpaa_eth_err(mac_dev->dev, + "FM_MAC_SetException() = 0x%08x\n", err); + goto _return_fm_mac_free; + } + } + + err = FM_MAC_GetVesrion(priv->mac, &version); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) { + dpaa_eth_err(mac_dev->dev, "FM_MAC_GetVesrion() = 0x%08x\n", + err); + goto _return_fm_mac_free; + } + cpu_dev_info(mac_dev->dev, "FMan %s version: 0x%08x\n", + ((macdev2enetinterface(mac_dev) != e_ENET_MODE_XGMII_10000) ? + "dTSEC" : "XGEC"), version); + + goto _return; + + +_return_fm_mac_free: + err = FM_MAC_Free(priv->mac); + if (unlikely(-GET_ERROR_TYPE(err) < 0)) + dpaa_eth_err(mac_dev->dev, "FM_MAC_Free() = 0x%08x\n", err); +_return: + return _errno; +} + +static int __cold start(struct mac_device *mac_dev) +{ + int _errno; + t_Error err; + struct phy_device *phy_dev = mac_dev->phy_dev; + + err = FM_MAC_Enable(((struct mac_priv_s *)macdev_priv(mac_dev))->mac, + e_COMM_MODE_RX_AND_TX); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) + dpaa_eth_err(mac_dev->dev, "FM_MAC_Enable() = 0x%08x\n", err); + + if (phy_dev) { + if (macdev2enetinterface(mac_dev) != e_ENET_MODE_XGMII_10000) + phy_start(phy_dev); + else if (phy_dev->drv->read_status) + phy_dev->drv->read_status(phy_dev); + } + + return _errno; +} + +static int __cold stop(struct mac_device *mac_dev) +{ + int _errno; + t_Error err; + + if (mac_dev->phy_dev && + (macdev2enetinterface(mac_dev) != e_ENET_MODE_XGMII_10000)) + phy_stop(mac_dev->phy_dev); + + err = FM_MAC_Disable(((struct mac_priv_s *)macdev_priv(mac_dev))->mac, + e_COMM_MODE_RX_AND_TX); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) + dpaa_eth_err(mac_dev->dev, "FM_MAC_Disable() = 0x%08x\n", err); + + return _errno; +} + +static int __cold change_promisc(struct mac_device *mac_dev) +{ + int _errno; + t_Error err; + + err = FM_MAC_SetPromiscuous( + ((struct mac_priv_s *)macdev_priv(mac_dev))->mac, + mac_dev->promisc = !mac_dev->promisc); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) + dpaa_eth_err(mac_dev->dev, + "FM_MAC_SetPromiscuous() = 0x%08x\n", err); + + return _errno; +} + +static int __cold set_multi(struct net_device *net_dev) +{ + struct dpa_priv_s *priv; + struct mac_device *mac_dev; + struct mac_priv_s *mac_priv; + struct mac_address *old_addr, *tmp; + struct netdev_hw_addr *ha; + int _errno; + t_Error err; + + priv = netdev_priv(net_dev); + mac_dev = priv->mac_dev; + mac_priv = macdev_priv(mac_dev); + + /* Clear previous address list */ + list_for_each_entry_safe(old_addr, tmp, &mac_dev->mc_addr_list, list) { + err = FM_MAC_RemoveHashMacAddr(mac_priv->mac, + (t_EnetAddr *)old_addr->addr); + _errno = -GET_ERROR_TYPE(err); + if (_errno < 0) { + dpaa_eth_err(mac_dev->dev, + "FM_MAC_RemoveHashMacAddr() = 0x%08x\n", err); + return _errno; + } + list_del(&old_addr->list); + kfree(old_addr); + } + + /* Add all the addresses from the new list */ + netdev_for_each_mc_addr(ha, net_dev) { + err = FM_MAC_AddHashMacAddr(mac_priv->mac, + (t_EnetAddr *)ha->addr); + _errno = -GET_ERROR_TYPE(err); + if (_errno < 0) { + dpaa_eth_err(mac_dev->dev, + "FM_MAC_AddHashMacAddr() = 0x%08x\n", err); + return _errno; + } + tmp = kmalloc(sizeof(struct mac_address), GFP_ATOMIC); + if (!tmp) { + dpaa_eth_err(mac_dev->dev, "Out of memory\n"); + return -ENOMEM; + } + memcpy(tmp->addr, ha->addr, ETH_ALEN); + list_add(&tmp->list, &mac_dev->mc_addr_list); + } + return 0; +} + +static int __cold change_addr(struct mac_device *mac_dev, uint8_t *addr) +{ + int _errno; + t_Error err; + + err = FM_MAC_ModifyMacAddr( + ((struct mac_priv_s *)macdev_priv(mac_dev))->mac, + (t_EnetAddr *)addr); + _errno = -GET_ERROR_TYPE(err); + if (_errno < 0) + dpaa_eth_err(mac_dev->dev, + "FM_MAC_ModifyMacAddr() = 0x%08x\n", err); + + return _errno; +} + +static void adjust_link(struct net_device *net_dev) +{ + struct dpa_priv_s *priv = netdev_priv(net_dev); + struct mac_device *mac_dev = priv->mac_dev; + struct phy_device *phy_dev = mac_dev->phy_dev; + int _errno; + t_Error err; + + if (!phy_dev->link) + return; + + err = FM_MAC_AdjustLink( + ((struct mac_priv_s *)macdev_priv(mac_dev))->mac, + phy_dev->speed, phy_dev->duplex); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) + dpaa_eth_err(mac_dev->dev, "FM_MAC_AdjustLink() = 0x%08x\n", + err); + + return; +} + +/* Initializes driver's PHY state, and attaches to the PHY. + * Returns 0 on success. + */ +static int dtsec_init_phy(struct net_device *net_dev) +{ + struct dpa_priv_s *priv; + struct mac_device *mac_dev; + struct phy_device *phy_dev; + + priv = netdev_priv(net_dev); + mac_dev = priv->mac_dev; + + if (!mac_dev->phy_node) + phy_dev = phy_connect(net_dev, mac_dev->fixed_bus_id, + &adjust_link, mac_dev->phy_if); + else + phy_dev = of_phy_connect(net_dev, mac_dev->phy_node, + &adjust_link, 0, mac_dev->phy_if); + if (unlikely(phy_dev == NULL) || IS_ERR(phy_dev)) { + cpu_netdev_err(net_dev, "Could not connect to PHY %s\n", + mac_dev->phy_node ? + mac_dev->phy_node->full_name : + mac_dev->fixed_bus_id); + return phy_dev == NULL ? -ENODEV : PTR_ERR(phy_dev); + } + + /* Remove any features not supported by the controller */ + phy_dev->supported &= priv->mac_dev->if_support; + phy_dev->advertising = phy_dev->supported; + + priv->mac_dev->phy_dev = phy_dev; + + return 0; +} + +static int xgmac_init_phy(struct net_device *net_dev) +{ + struct dpa_priv_s *priv = netdev_priv(net_dev); + struct mac_device *mac_dev = priv->mac_dev; + struct phy_device *phy_dev; + + if (!mac_dev->phy_node) + phy_dev = phy_attach(net_dev, mac_dev->fixed_bus_id, + mac_dev->phy_if); + else + phy_dev = of_phy_attach(net_dev, mac_dev->phy_node, 0, + mac_dev->phy_if); + if (unlikely(phy_dev == NULL) || IS_ERR(phy_dev)) { + cpu_netdev_err(net_dev, "Could not attach to PHY %s\n", + mac_dev->phy_node ? + mac_dev->phy_node->full_name : + mac_dev->fixed_bus_id); + return phy_dev == NULL ? -ENODEV : PTR_ERR(phy_dev); + } + + phy_dev->supported &= priv->mac_dev->if_support; + phy_dev->advertising = phy_dev->supported; + + mac_dev->phy_dev = phy_dev; + + return 0; +} + +static int __cold uninit(struct mac_device *mac_dev) +{ + int _errno, __errno; + t_Error err; + const struct mac_priv_s *priv; + + priv = macdev_priv(mac_dev); + + err = FM_MAC_Disable(priv->mac, e_COMM_MODE_RX_AND_TX); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) + dpaa_eth_err(mac_dev->dev, "FM_MAC_Disable() = 0x%08x\n", err); + + err = FM_MAC_Free(priv->mac); + __errno = -GET_ERROR_TYPE(err); + if (unlikely(__errno < 0)) { + dpaa_eth_err(mac_dev->dev, "FM_MAC_Free() = 0x%08x\n", err); + if (_errno < 0) + _errno = __errno; + } + + return _errno; +} + +static int __cold ptp_enable(struct mac_device *mac_dev) +{ + int _errno; + t_Error err; + const struct mac_priv_s *priv; + + priv = macdev_priv(mac_dev); + + err = FM_MAC_Enable1588TimeStamp(priv->mac); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) + dpaa_eth_err(mac_dev->dev, "FM_MAC_Enable1588TimeStamp()" + "= 0x%08x\n", err); + return _errno; +} + +static int __cold ptp_disable(struct mac_device *mac_dev) +{ + int _errno; + t_Error err; + const struct mac_priv_s *priv; + + priv = macdev_priv(mac_dev); + + err = FM_MAC_Disable1588TimeStamp(priv->mac); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) + dpaa_eth_err(mac_dev->dev, "FM_MAC_Disable1588TimeStamp()" + "= 0x%08x\n", err); + return _errno; +} + +static int __cold fm_rtc_enable(struct net_device *net_dev) +{ + struct dpa_priv_s *priv = netdev_priv(net_dev); + struct mac_device *mac_dev = priv->mac_dev; + int _errno; + t_Error err; + + err = FM_RTC_Enable(fm_get_rtc_handle(mac_dev->fm_dev), 0); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) + dpaa_eth_err(mac_dev->dev, "FM_RTC_Enable = 0x%08x\n", err); + + return _errno; +} + +static int __cold fm_rtc_disable(struct net_device *net_dev) +{ + struct dpa_priv_s *priv = netdev_priv(net_dev); + struct mac_device *mac_dev = priv->mac_dev; + int _errno; + t_Error err; + + err = FM_RTC_Disable(fm_get_rtc_handle(mac_dev->fm_dev)); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) + dpaa_eth_err(mac_dev->dev, "FM_RTC_Disable = 0x%08x\n", err); + + return _errno; +} + +static int __cold fm_rtc_get_cnt(struct net_device *net_dev, uint64_t *ts) +{ + struct dpa_priv_s *priv = netdev_priv(net_dev); + struct mac_device *mac_dev = priv->mac_dev; + int _errno; + t_Error err; + + err = FM_RTC_GetCurrentTime(fm_get_rtc_handle(mac_dev->fm_dev), ts); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) + dpaa_eth_err(mac_dev->dev, "FM_RTC_GetCurrentTime = 0x%08x\n", + err); + + return _errno; +} + +static int __cold fm_rtc_set_cnt(struct net_device *net_dev, uint64_t ts) +{ + struct dpa_priv_s *priv = netdev_priv(net_dev); + struct mac_device *mac_dev = priv->mac_dev; + int _errno; + t_Error err; + + err = FM_RTC_SetCurrentTime(fm_get_rtc_handle(mac_dev->fm_dev), ts); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) + dpaa_eth_err(mac_dev->dev, "FM_RTC_SetCurrentTime = 0x%08x\n", + err); + + return _errno; +} + +static int __cold fm_rtc_get_drift(struct net_device *net_dev, uint32_t *drift) +{ + struct dpa_priv_s *priv = netdev_priv(net_dev); + struct mac_device *mac_dev = priv->mac_dev; + int _errno; + t_Error err; + + err = FM_RTC_GetFreqCompensation(fm_get_rtc_handle(mac_dev->fm_dev), + drift); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) + dpaa_eth_err(mac_dev->dev, "FM_RTC_GetFreqCompensation =" + "0x%08x\n", err); + + return _errno; +} + +static int __cold fm_rtc_set_drift(struct net_device *net_dev, uint32_t drift) +{ + struct dpa_priv_s *priv = netdev_priv(net_dev); + struct mac_device *mac_dev = priv->mac_dev; + int _errno; + t_Error err; + + err = FM_RTC_SetFreqCompensation(fm_get_rtc_handle(mac_dev->fm_dev), + drift); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) + dpaa_eth_err(mac_dev->dev, "FM_RTC_SetFreqCompensation =" + "0x%08x\n", err); + + return _errno; +} + +static int __cold fm_rtc_set_alarm(struct net_device *net_dev, uint32_t id, + uint64_t time) +{ + struct dpa_priv_s *priv = netdev_priv(net_dev); + struct mac_device *mac_dev = priv->mac_dev; + t_FmRtcAlarmParams alarm; + int _errno; + t_Error err; + + alarm.alarmId = id; + alarm.alarmTime = time; + alarm.f_AlarmCallback = NULL; + err = FM_RTC_SetAlarm(fm_get_rtc_handle(mac_dev->fm_dev), + &alarm); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) + dpaa_eth_err(mac_dev->dev, "FM_RTC_SetAlarm =" + "0x%08x\n", err); + + return _errno; +} + +static int __cold fm_rtc_set_fiper(struct net_device *net_dev, uint32_t id, + uint64_t fiper) +{ + struct dpa_priv_s *priv = netdev_priv(net_dev); + struct mac_device *mac_dev = priv->mac_dev; + t_FmRtcPeriodicPulseParams pp; + int _errno; + t_Error err; + + pp.periodicPulseId = id; + pp.periodicPulsePeriod = fiper; + pp.f_PeriodicPulseCallback = NULL; + err = FM_RTC_SetPeriodicPulse(fm_get_rtc_handle(mac_dev->fm_dev), &pp); + _errno = -GET_ERROR_TYPE(err); + if (unlikely(_errno < 0)) + dpaa_eth_err(mac_dev->dev, "FM_RTC_SetPeriodicPulse =" + "0x%08x\n", err); + + return _errno; +} + +static void __cold setup_dtsec(struct mac_device *mac_dev) +{ + mac_dev->init_phy = dtsec_init_phy; + mac_dev->init = init; + mac_dev->start = start; + mac_dev->stop = stop; + mac_dev->change_promisc = change_promisc; + mac_dev->change_addr = change_addr; + mac_dev->set_multi = set_multi; + mac_dev->uninit = uninit; + mac_dev->ptp_enable = ptp_enable; + mac_dev->ptp_disable = ptp_disable; + mac_dev->fm_rtc_enable = fm_rtc_enable; + mac_dev->fm_rtc_disable = fm_rtc_disable; + mac_dev->fm_rtc_get_cnt = fm_rtc_get_cnt; + mac_dev->fm_rtc_set_cnt = fm_rtc_set_cnt; + mac_dev->fm_rtc_get_drift = fm_rtc_get_drift; + mac_dev->fm_rtc_set_drift = fm_rtc_set_drift; + mac_dev->fm_rtc_set_alarm = fm_rtc_set_alarm; + mac_dev->fm_rtc_set_fiper = fm_rtc_set_fiper; +} + +static void __cold setup_xgmac(struct mac_device *mac_dev) +{ + mac_dev->init_phy = xgmac_init_phy; + mac_dev->init = init; + mac_dev->start = start; + mac_dev->stop = stop; + mac_dev->change_promisc = change_promisc; + mac_dev->change_addr = change_addr; + mac_dev->set_multi = set_multi; + mac_dev->uninit = uninit; +} + +void (*const mac_setup[])(struct mac_device *mac_dev) = { + [DTSEC] = setup_dtsec, + [XGMAC] = setup_xgmac +}; --- linux-3.13.0.orig/drivers/net/dpa/mac.c +++ linux-3.13.0/drivers/net/dpa/mac.c @@ -0,0 +1,428 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "dpaa_eth-common.h" + +#include "lnxwrp_fm_ext.h" + +#include "mac.h" + +#define DTSEC_SUPPORTED \ + (SUPPORTED_10baseT_Half \ + | SUPPORTED_10baseT_Full \ + | SUPPORTED_100baseT_Half \ + | SUPPORTED_100baseT_Full \ + | SUPPORTED_Autoneg \ + | SUPPORTED_MII) + +static const char phy_str[][11] = +{ + [PHY_INTERFACE_MODE_MII] = "mii", + [PHY_INTERFACE_MODE_GMII] = "gmii", + [PHY_INTERFACE_MODE_SGMII] = "sgmii", + [PHY_INTERFACE_MODE_TBI] = "tbi", + [PHY_INTERFACE_MODE_RMII] = "rmii", + [PHY_INTERFACE_MODE_RGMII] = "rgmii", + [PHY_INTERFACE_MODE_RGMII_ID] = "rgmii-id", + [PHY_INTERFACE_MODE_RGMII_RXID] = "rgmii-rxid", + [PHY_INTERFACE_MODE_RGMII_TXID] = "rgmii-txid", + [PHY_INTERFACE_MODE_RTBI] = "rtbi", + [PHY_INTERFACE_MODE_XGMII] = "xgmii" +}; + +static phy_interface_t __pure __attribute__((nonnull)) str2phy(const char *str) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(phy_str); i++) + if (strcmp(str, phy_str[i]) == 0) + return (phy_interface_t)i; + + return PHY_INTERFACE_MODE_MII; +} + +static const uint16_t phy2speed[] = +{ + [PHY_INTERFACE_MODE_MII] = SPEED_100, + [PHY_INTERFACE_MODE_GMII] = SPEED_1000, + [PHY_INTERFACE_MODE_SGMII] = SPEED_1000, + [PHY_INTERFACE_MODE_TBI] = SPEED_1000, + [PHY_INTERFACE_MODE_RMII] = SPEED_100, + [PHY_INTERFACE_MODE_RGMII] = SPEED_1000, + [PHY_INTERFACE_MODE_RGMII_ID] = SPEED_1000, + [PHY_INTERFACE_MODE_RGMII_RXID] = SPEED_1000, + [PHY_INTERFACE_MODE_RGMII_TXID] = SPEED_1000, + [PHY_INTERFACE_MODE_RTBI] = SPEED_1000, + [PHY_INTERFACE_MODE_XGMII] = SPEED_10000 +}; + +static struct mac_device * __cold +alloc_macdev(struct device *dev, size_t sizeof_priv, void (*setup)(struct mac_device *mac_dev)) +{ + struct mac_device *mac_dev; + + mac_dev = devm_kzalloc(dev, sizeof(*mac_dev) + sizeof_priv, GFP_KERNEL); + if (unlikely(mac_dev == NULL)) + mac_dev = ERR_PTR(-ENOMEM); + else { + mac_dev->dev = dev; + dev_set_drvdata(dev, mac_dev); + setup(mac_dev); + } + + return mac_dev; +} + +static int __cold free_macdev(struct mac_device *mac_dev) +{ + dev_set_drvdata(mac_dev->dev, NULL); + + return mac_dev->uninit(mac_dev); +} + +static const struct of_device_id mac_match[] = { + [DTSEC] = { + .compatible = "fsl,fman-1g-mac" + }, + [XGMAC] = { + .compatible = "fsl,fman-10g-mac" + }, + {} +}; +MODULE_DEVICE_TABLE(of, mac_match); + +static int __cold mac_probe(struct platform_device *_of_dev) +{ + int _errno, i, lenp; + struct device *dev; + struct device_node *mac_node, *dev_node; + struct mac_device *mac_dev; + struct platform_device *of_dev; + struct resource res; + const uint8_t *mac_addr; + const char *char_prop; + const phandle *phandle_prop; + const uint32_t *uint32_prop; + const struct of_device_id *match; + + dev = &_of_dev->dev; + mac_node = dev->of_node; + + match = of_match_device(mac_match, dev); + if (!match) + return -EINVAL; + + for (i = 0; i < ARRAY_SIZE(mac_match) - 1 && match != mac_match + i; i++); + BUG_ON(i >= ARRAY_SIZE(mac_match) - 1); + + mac_dev = alloc_macdev(dev, mac_sizeof_priv[i], mac_setup[i]); + if (IS_ERR(mac_dev)) { + _errno = PTR_ERR(mac_dev); + dpaa_eth_err(dev, "alloc_macdev() = %d\n", _errno); + goto _return; + } + + INIT_LIST_HEAD(&mac_dev->mc_addr_list); + + /* Get the FM node */ + dev_node = of_get_parent(mac_node); + if (unlikely(dev_node == NULL)) { + dpaa_eth_err(dev, "of_get_parent(%s) failed\n", + mac_node->full_name); + _errno = -EINVAL; + goto _return_dev_set_drvdata; + } + + of_dev = of_find_device_by_node(dev_node); + if (unlikely(of_dev == NULL)) { + dpaa_eth_err(dev, "of_find_device_by_node(%s) failed\n", + dev_node->full_name); + _errno = -EINVAL; + goto _return_of_node_put; + } + + mac_dev->fm_dev = fm_bind(&of_dev->dev); + if (unlikely(mac_dev->fm_dev == NULL)) { + dpaa_eth_err(dev, "fm_bind(%s) failed\n", dev_node->full_name); + _errno = -ENODEV; + goto _return_of_node_put; + } + + mac_dev->fm = (void *)fm_get_handle(mac_dev->fm_dev); + of_node_put(dev_node); + + /* Get the address of the memory mapped registers */ + _errno = of_address_to_resource(mac_node, 0, &res); + if (unlikely(_errno < 0)) { + dpaa_eth_err(dev, "of_address_to_resource(%s) = %d\n", + mac_node->full_name, _errno); + goto _return_dev_set_drvdata; + } + + mac_dev->res = __devm_request_region( + dev, + fm_get_mem_region(mac_dev->fm_dev), + res.start, res.end + 1 - res.start, "mac"); + if (unlikely(mac_dev->res == NULL)) { + dpaa_eth_err(dev, "__devm_request_mem_region(mac) failed\n"); + _errno = -EBUSY; + goto _return_dev_set_drvdata; + } + + mac_dev->vaddr = devm_ioremap(dev, mac_dev->res->start, + mac_dev->res->end + 1 - mac_dev->res->start); + if (unlikely(mac_dev->vaddr == NULL)) { + dpaa_eth_err(dev, "devm_ioremap() failed\n"); + _errno = -EIO; + goto _return_dev_set_drvdata; + } + + /* + * XXX: Warning, future versions of Linux will most likely not even + * call the driver code to allow us to override the TBIPA value, + * we'll need to address this when we move to newer kernel rev + */ +#define TBIPA_OFFSET 0x1c +#define TBIPA_DEFAULT_ADDR 5 + mac_dev->tbi_node = of_parse_phandle(mac_node, "tbi-handle", 0); + if (mac_dev->tbi_node) { + u32 tbiaddr = TBIPA_DEFAULT_ADDR; + + uint32_prop = of_get_property(mac_dev->tbi_node, "reg", NULL); + if (uint32_prop) + tbiaddr = *uint32_prop; + out_be32(mac_dev->vaddr + TBIPA_OFFSET, tbiaddr); + } + + if (!of_device_is_available(mac_node)) { + devm_iounmap(dev, mac_dev->vaddr); + __devm_release_region(dev, fm_get_mem_region(mac_dev->fm_dev), + res.start, res.end + 1 - res.start); + fm_unbind(mac_dev->fm_dev); + devm_kfree(dev, mac_dev); + dev_set_drvdata(dev, NULL); + return -ENODEV; + } + + /* Get the cell-index */ + uint32_prop = of_get_property(mac_node, "cell-index", &lenp); + if (unlikely(uint32_prop == NULL)) { + dpaa_eth_err(dev, "of_get_property(%s, cell-index) failed\n", + mac_node->full_name); + _errno = -EINVAL; + goto _return_dev_set_drvdata; + } + BUG_ON(lenp != sizeof(uint32_t)); + mac_dev->cell_index = *uint32_prop; + + /* Get the MAC address */ + mac_addr = of_get_mac_address(mac_node); + if (unlikely(mac_addr == NULL)) { + dpaa_eth_err(dev, "of_get_mac_address(%s) failed\n", + mac_node->full_name); + _errno = -EINVAL; + goto _return_dev_set_drvdata; + } + memcpy(mac_dev->addr, mac_addr, sizeof(mac_dev->addr)); + + /* Get the port handles */ + phandle_prop = of_get_property(mac_node, "fsl,port-handles", &lenp); + if (unlikely(phandle_prop == NULL)) { + dpaa_eth_err(dev, "of_get_property(%s, port-handles) failed\n", + mac_node->full_name); + _errno = -EINVAL; + goto _return_dev_set_drvdata; + } + BUG_ON(lenp != sizeof(phandle) * ARRAY_SIZE(mac_dev->port_dev)); + + for_each_port_device(i, mac_dev->port_dev) { + /* Find the port node */ + dev_node = of_find_node_by_phandle(phandle_prop[i]); + if (unlikely(dev_node == NULL)) { + dpaa_eth_err(dev, "of_find_node_by_phandle() failed\n"); + _errno = -EINVAL; + goto _return_of_node_put; + } + + of_dev = of_find_device_by_node(dev_node); + if (unlikely(of_dev == NULL)) { + dpaa_eth_err(dev, "of_find_device_by_node(%s) failed\n", + dev_node->full_name); + _errno = -EINVAL; + goto _return_of_node_put; + } + + mac_dev->port_dev[i] = fm_port_bind(&of_dev->dev); + if (unlikely(mac_dev->port_dev[i] == NULL)) { + dpaa_eth_err(dev, "dev_get_drvdata(%s) failed\n", + dev_node->full_name); + _errno = -EINVAL; + goto _return_of_node_put; + } + of_node_put(dev_node); + } + + /* Get the PHY connection type */ + char_prop = (const char *)of_get_property(mac_node, + "phy-connection-type", NULL); + if (unlikely(char_prop == NULL)) { + dpaa_eth_warning(dev, + "of_get_property(%s, phy-connection-type) " + "failed. Defaulting to MII\n", + mac_node->full_name); + mac_dev->phy_if = PHY_INTERFACE_MODE_MII; + } else + mac_dev->phy_if = str2phy(char_prop); + + mac_dev->link = false; + mac_dev->half_duplex = false; + mac_dev->speed = phy2speed[mac_dev->phy_if]; + mac_dev->max_speed = mac_dev->speed; + mac_dev->if_support = DTSEC_SUPPORTED; + /* We don't support half-duplex in SGMII mode */ + if (strstr(char_prop, "sgmii")) + mac_dev->if_support &= ~(SUPPORTED_10baseT_Half | + SUPPORTED_100baseT_Half); + + /* Gigabit support (no half-duplex) */ + if (mac_dev->max_speed == 1000) + mac_dev->if_support |= SUPPORTED_1000baseT_Full; + + /* The 10G interface only supports one mode */ + if (strstr(char_prop, "xgmii")) + mac_dev->if_support = SUPPORTED_10000baseT_Full; + + /* Get the rest of the PHY information */ + mac_dev->phy_node = of_parse_phandle(mac_node, "phy-handle", 0); + if (mac_dev->phy_node == NULL) { + int sz; + const u32 *phy_id = of_get_property(mac_node, "fixed-link", + &sz); + if (!phy_id || sz < sizeof(*phy_id)) { + cpu_dev_err(dev, "No PHY (or fixed link) found\n"); + _errno = -EINVAL; + goto _return_dev_set_drvdata; + } + + sprintf(mac_dev->fixed_bus_id, PHY_ID_FMT, "0", phy_id[0]); + } + + _errno = mac_dev->init(mac_dev); + if (unlikely(_errno < 0)) { + dpaa_eth_err(dev, "mac_dev->init() = %d\n", _errno); + goto _return_dev_set_drvdata; + } + + cpu_dev_info(dev, + "FMan MAC address: %02hx:%02hx:%02hx:%02hx:%02hx:%02hx\n", + mac_dev->addr[0], mac_dev->addr[1], mac_dev->addr[2], + mac_dev->addr[3], mac_dev->addr[4], mac_dev->addr[5]); + + goto _return; + +_return_of_node_put: + of_node_put(dev_node); +_return_dev_set_drvdata: + dev_set_drvdata(dev, NULL); +_return: + return _errno; +} + +static int __cold mac_remove(struct platform_device *of_dev) +{ + int i, _errno; + struct device *dev; + struct mac_device *mac_dev; + + dev = &of_dev->dev; + mac_dev = (struct mac_device *)dev_get_drvdata(dev); + + for_each_port_device(i, mac_dev->port_dev) + fm_port_unbind(mac_dev->port_dev[i]); + + fm_unbind(mac_dev->fm_dev); + + _errno = free_macdev(mac_dev); + + return _errno; +} + +static struct platform_driver mac_driver = { + .driver = { + .name = KBUILD_MODNAME, + .of_match_table = mac_match, + .owner = THIS_MODULE, + }, + .probe = mac_probe, + .remove = mac_remove, +}; + +static int __init __cold mac_load(void) +{ + int _errno; + + cpu_pr_debug(KBUILD_MODNAME ": -> %s:%s()\n", __file__, __func__); + + cpu_pr_info(KBUILD_MODNAME ": %s (" VERSION ")\n", mac_driver_description); + + _errno = platform_driver_register(&mac_driver); + if (unlikely(_errno < 0)) { + cpu_pr_err(KBUILD_MODNAME ": %s:%hu:%s(): of_register_platform_driver() = %d\n", + __file__, __LINE__, __func__, _errno); + goto _return; + } + + goto _return; + +_return: + cpu_pr_debug(KBUILD_MODNAME ": %s:%s() ->\n", __file__, __func__); + + return _errno; +} +module_init(mac_load); + +static void __exit __cold mac_unload(void) +{ + cpu_pr_debug(KBUILD_MODNAME ": -> %s:%s()\n", __file__, __func__); + + platform_driver_unregister(&mac_driver); + + cpu_pr_debug(KBUILD_MODNAME ": %s:%s() ->\n", __file__, __func__); +} +module_exit(mac_unload); --- linux-3.13.0.orig/drivers/net/dpa/mac.h +++ linux-3.13.0/drivers/net/dpa/mac.h @@ -0,0 +1,113 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __MAC_H +#define __MAC_H + +#include /* struct device, BUS_ID_SIZE */ +#include /* ETH_ALEN */ +#include /* phy_interface_t, struct phy_device */ +#include + +#include "fsl_fman.h" /* struct port_device */ + +#ifndef CONFIG_DPA_MAX_FRM_SIZE +#define CONFIG_DPA_MAX_FRM_SIZE 0 +#endif + +enum {DTSEC, XGMAC}; + +struct mac_device { + struct device *dev; + void *priv; + uint8_t cell_index; + struct resource *res; + void *vaddr; + uint8_t addr[ETH_ALEN]; + bool promisc; + + struct fm *fm_dev; + struct fm_port *port_dev[2]; + + phy_interface_t phy_if; + u32 if_support; + bool link; + bool half_duplex; + uint16_t speed; + uint16_t max_speed; + struct device_node *phy_node; + char fixed_bus_id[MII_BUS_ID_SIZE + 3]; + struct device_node *tbi_node; + struct phy_device *phy_dev; + void *fm; + /* List of multicast addresses */ + struct list_head mc_addr_list; + + int (*init_phy)(struct net_device *net_dev); + int (*init)(struct mac_device *mac_dev); + int (*start)(struct mac_device *mac_dev); + int (*stop)(struct mac_device *mac_dev); + int (*change_promisc)(struct mac_device *mac_dev); + int (*change_addr)(struct mac_device *mac_dev, uint8_t *addr); + int (*set_multi)(struct net_device *net_dev); + int (*uninit)(struct mac_device *mac_dev); + int (*ptp_enable)(struct mac_device *mac_dev); + int (*ptp_disable)(struct mac_device *mac_dev); + int (*fm_rtc_enable)(struct net_device *net_dev); + int (*fm_rtc_disable)(struct net_device *net_dev); + int (*fm_rtc_get_cnt)(struct net_device *net_dev, uint64_t *ts); + int (*fm_rtc_set_cnt)(struct net_device *net_dev, uint64_t ts); + int (*fm_rtc_get_drift)(struct net_device *net_dev, uint32_t *drift); + int (*fm_rtc_set_drift)(struct net_device *net_dev, uint32_t drift); + int (*fm_rtc_set_alarm)(struct net_device *net_dev, uint32_t id, + uint64_t time); + int (*fm_rtc_set_fiper)(struct net_device *net_dev, uint32_t id, + uint64_t fiper); +}; + +struct mac_address { + uint8_t addr[ETH_ALEN]; + struct list_head list; +}; + +#define for_each_port_device(i, port_dev) \ + for (i = 0; i < ARRAY_SIZE(port_dev); i++) + +static inline void * __attribute((nonnull)) macdev_priv(const struct mac_device *mac_dev) +{ + return (void *)mac_dev + sizeof(*mac_dev); +} + +extern const char *mac_driver_description; +extern const size_t mac_sizeof_priv[]; +extern void (*const mac_setup[])(struct mac_device *mac_dev); + +#endif /* __MAC_H */ --- linux-3.13.0.orig/drivers/net/dpa/offline_port.c +++ linux-3.13.0/drivers/net/dpa/offline_port.c @@ -0,0 +1,340 @@ +/* + * Copyright 2011 Freescale Semiconductor Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Offline Parsing / Host Command port driver for FSL QorIQ FMan. + * Validates device-tree configuration and sets up the offline ports. + */ + +#include +#include +#include + +#include "offline_port.h" +#include "dpaa_eth-common.h" + +#define OH_MOD_DESCRIPTION "FSL FMan Offline Parsing port driver" + +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_AUTHOR("Bogdan Hamciuc "); +MODULE_DESCRIPTION(OH_MOD_DESCRIPTION); + + +static const struct of_device_id oh_port_match_table[] = { + { + .compatible = "fsl,dpa-oh" + }, + { + .compatible = "fsl,dpa-oh-shared" + }, + {} +}; +MODULE_DEVICE_TABLE(of, oh_port_match_table); + +static int oh_port_remove(struct platform_device *_of_dev); +static int oh_port_probe(struct platform_device *_of_dev); + +static struct platform_driver oh_port_driver = { + .driver = { + .name = KBUILD_MODNAME, + .of_match_table = oh_port_match_table, + .owner = THIS_MODULE, + }, + .probe = oh_port_probe, + .remove = oh_port_remove, +}; + +/* Allocation code for the OH port's PCD frame queues */ +static int __cold oh_alloc_pcd_fqids(struct device *dev, + uint32_t num, + uint8_t alignment, + uint32_t *base_fqid) +{ + cpu_dev_crit(dev, "callback not implemented!\n"); + BUG(); + + return 0; +} + +static int __cold oh_free_pcd_fqids(struct device *dev, uint32_t base_fqid) +{ + dpaa_eth_crit(dev, "callback not implemented!\n"); + BUG(); + + return 0; +} + +static int +oh_port_probe(struct platform_device *_of_dev) +{ + struct device *dpa_oh_dev; + struct device_node *dpa_oh_node; + int lenp, _errno = 0, fq_idx; + const phandle *oh_port_handle; + struct platform_device *oh_of_dev; + struct device_node *oh_node; + struct device *oh_dev; + struct dpa_oh_config_s *oh_config; + uint32_t *oh_all_queues; + uint32_t queues_count; + uint32_t crt_fqid_base; + uint32_t crt_fq_count; + struct fm_port_non_rx_params oh_port_tx_params; + struct fm_port_pcd_param oh_port_pcd_params; + /* True if the current partition owns the OH port. */ + bool init_oh_port; + const struct of_device_id *match; + + dpa_oh_dev = &_of_dev->dev; + dpa_oh_node = dpa_oh_dev->of_node; + BUG_ON(dpa_oh_node == NULL); + + match = of_match_device(oh_port_match_table, dpa_oh_dev); + if (!match) + return -EINVAL; + + cpu_dev_dbg(dpa_oh_dev, "Probing OH port...\n"); + + /* + * Find the referenced OH node + */ + + oh_port_handle = of_get_property(dpa_oh_node, + "fsl,fman-oh-port", &lenp); + if (oh_port_handle == NULL) { + cpu_dev_err(dpa_oh_dev, "No OH port handle found in node %s\n", + dpa_oh_node->full_name); + return -EINVAL; + } + + BUG_ON(lenp % sizeof(*oh_port_handle)); + if (lenp != sizeof(*oh_port_handle)) { + cpu_dev_err(dpa_oh_dev, "Found %lu OH port bindings in node %s, " + "only 1 phandle is allowed.\n", + (unsigned long int)(lenp / sizeof(*oh_port_handle)), dpa_oh_node->full_name); + return -EINVAL; + } + + /* Read configuration for the OH port */ + oh_node = of_find_node_by_phandle(*oh_port_handle); + if (oh_node == NULL) { + cpu_dev_err(dpa_oh_dev, "Can't find OH node referenced from " + "node %s\n", dpa_oh_node->full_name); + return -EINVAL; + } + cpu_dev_info(dpa_oh_dev, "Found OH node handle compatible with %s.\n", + match->compatible); + + oh_of_dev = of_find_device_by_node(oh_node); + BUG_ON(oh_of_dev == NULL); + oh_dev = &oh_of_dev->dev; + of_node_put(oh_node); + + /* + * The OH port must be initialized exactly once. + * The following scenarios are of interest: + * - the node is Linux-private (will always initialize it); + * - the node is shared between two Linux partitions + * (only one of them will initialize it); + * - the node is shared between a Linux and a LWE partition + * (Linux will initialize it) - "fsl,dpa-oh-shared" + */ + + /* Check if the current partition owns the OH port + * and ought to initialize it. It may be the case that we leave this + * to another (also Linux) partition. */ + init_oh_port = strcmp(match->compatible, "fsl,dpa-oh-shared"); + + /* If we aren't the "owner" of the OH node, we're done here. */ + if (!init_oh_port) { + cpu_dev_dbg(dpa_oh_dev, "Not owning the shared OH port %s, " + "will not initialize it.\n", oh_node->full_name); + return 0; + } + + /* Allocate OH dev private data */ + oh_config = devm_kzalloc(dpa_oh_dev, sizeof(*oh_config), GFP_KERNEL); + if (oh_config == NULL) { + cpu_dev_err(dpa_oh_dev, "Can't allocate private data for " + "OH node %s referenced from node %s!\n", + oh_node->full_name, dpa_oh_node->full_name); + return -ENOMEM; + } + + /* + * Read FQ ids/nums for the DPA OH node + */ + oh_all_queues = (uint32_t *)of_get_property(dpa_oh_node, + "fsl,qman-frame-queues-oh", &lenp); + if (oh_all_queues == NULL) { + cpu_dev_err(dpa_oh_dev, "No frame queues have been " + "defined for OH node %s referenced from node %s\n", + oh_node->full_name, dpa_oh_node->full_name); + _errno = -EINVAL; + goto return_kfree; + } + + /* Check that the OH error and default FQs are there */ + BUG_ON(lenp % (2 * sizeof(*oh_all_queues))); + queues_count = lenp / (2 * sizeof(*oh_all_queues)); + if (queues_count != 2) { + dpaa_eth_err(dpa_oh_dev, "Error and Default queues must be " + "defined for OH node %s referenced from node %s\n", + oh_node->full_name, dpa_oh_node->full_name); + _errno = -EINVAL; + goto return_kfree; + } + + /* Read the FQIDs defined for this OH port */ + cpu_dev_dbg(dpa_oh_dev, "Reading %d queues...\n", queues_count); + fq_idx = 0; + + /* Error FQID - must be present */ + crt_fqid_base = oh_all_queues[fq_idx++]; + crt_fq_count = oh_all_queues[fq_idx++]; + if (crt_fq_count != 1) { + cpu_dev_err(dpa_oh_dev, "Only 1 Error FQ allowed in OH node %s " + "referenced from node %s (read: %d FQIDs).\n", + oh_node->full_name, dpa_oh_node->full_name, + crt_fq_count); + _errno = -EINVAL; + goto return_kfree; + } + oh_config->error_fqid = crt_fqid_base; + cpu_dev_dbg(dpa_oh_dev, "Read Error FQID 0x%x for OH port %s.\n", + oh_config->error_fqid, oh_node->full_name); + + /* Default FQID - must be present */ + crt_fqid_base = oh_all_queues[fq_idx++]; + crt_fq_count = oh_all_queues[fq_idx++]; + if (crt_fq_count != 1) { + cpu_dev_err(dpa_oh_dev, "Only 1 Default FQ allowed " + "in OH node %s referenced from %s (read: %d FQIDs).\n", + oh_node->full_name, dpa_oh_node->full_name, + crt_fq_count); + _errno = -EINVAL; + goto return_kfree; + } + oh_config->default_fqid = crt_fqid_base; + cpu_dev_dbg(dpa_oh_dev, "Read Default FQID 0x%x for OH port %s.\n", + oh_config->default_fqid, oh_node->full_name); + + /* Get a handle to the fm_port so we can set + * its configuration params */ + oh_config->oh_port = fm_port_bind(oh_dev); + if (oh_config->oh_port == NULL) { + cpu_dev_err(dpa_oh_dev, "NULL drvdata from fm port dev %s!\n", + oh_node->full_name); + _errno = -EINVAL; + goto return_kfree; + } + + /* Set Tx params */ + dpaa_eth_init_port(tx, oh_config->oh_port, oh_port_tx_params, + oh_config->error_fqid, oh_config->default_fqid, FALSE); + /* Set PCD params */ + oh_port_pcd_params.cba = oh_alloc_pcd_fqids; + oh_port_pcd_params.cbf = oh_free_pcd_fqids; + oh_port_pcd_params.dev = dpa_oh_dev; + fm_port_pcd_bind(oh_config->oh_port, &oh_port_pcd_params); + + dev_set_drvdata(dpa_oh_dev, oh_config); + + /* Enable the OH port */ + fm_port_enable(oh_config->oh_port); + cpu_dev_info(dpa_oh_dev, "OH port %s enabled.\n", oh_node->full_name); + + return 0; + +return_kfree: + devm_kfree(dpa_oh_dev, oh_config); + return _errno; +} + +static int __cold oh_port_remove(struct platform_device *_of_dev) +{ + int _errno = 0; + struct dpa_oh_config_s *oh_config; + + cpu_pr_info("Removing OH port...\n"); + + oh_config = dev_get_drvdata(&_of_dev->dev); + if (oh_config == NULL) { + cpu_pr_err(KBUILD_MODNAME + ": %s:%hu:%s(): No OH config in device private data!\n", + __file__, __LINE__, __func__); + _errno = -ENODEV; + goto return_error; + } + if (oh_config->oh_port == NULL) { + cpu_pr_err(KBUILD_MODNAME + ": %s:%hu:%s(): No fm port in device private data!\n", + __file__, __LINE__, __func__); + _errno = -EINVAL; + goto return_error; + } + + fm_port_disable(oh_config->oh_port); + devm_kfree(&_of_dev->dev, oh_config); + dev_set_drvdata(&_of_dev->dev, NULL); + +return_error: + return _errno; +} + +static int __init __cold oh_port_load(void) +{ + int _errno; + + cpu_pr_info(KBUILD_MODNAME ": " OH_MOD_DESCRIPTION " (" VERSION ")\n"); + + _errno = platform_driver_register(&oh_port_driver); + if (_errno < 0) { + cpu_pr_err(KBUILD_MODNAME + ": %s:%hu:%s(): platform_driver_register() = %d\n", + __file__, __LINE__, __func__, _errno); + } + + cpu_pr_debug(KBUILD_MODNAME ": %s:%s() ->\n", __file__, __func__); + return _errno; +} +module_init(oh_port_load); + +static void __exit __cold oh_port_unload(void) +{ + cpu_pr_debug(KBUILD_MODNAME ": -> %s:%s()\n", __file__, __func__); + + platform_driver_unregister(&oh_port_driver); + + cpu_pr_debug(KBUILD_MODNAME ": %s:%s() ->\n", __file__, __func__); +} +module_exit(oh_port_unload); --- linux-3.13.0.orig/drivers/net/dpa/offline_port.h +++ linux-3.13.0/drivers/net/dpa/offline_port.h @@ -0,0 +1,45 @@ +/* + * Copyright 2011 Freescale Semiconductor Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __OFFLINE_PORT_H +#define __OFFLINE_PORT_H + +#include "fsl_fman.h" + +/* OH port configuration */ +struct dpa_oh_config_s { + uint32_t error_fqid; + uint32_t default_fqid; + struct fm_port *oh_port; +}; + +#endif /* __OFFLINE_PORT_H */ --- linux-3.13.0.orig/drivers/net/dummy.c +++ linux-3.13.0/drivers/net/dummy.c @@ -63,10 +63,10 @@ dstats = per_cpu_ptr(dev->dstats, i); do { - start = u64_stats_fetch_begin_bh(&dstats->syncp); + start = u64_stats_fetch_begin_irq(&dstats->syncp); tbytes = dstats->tx_bytes; tpackets = dstats->tx_packets; - } while (u64_stats_fetch_retry_bh(&dstats->syncp, start)); + } while (u64_stats_fetch_retry_irq(&dstats->syncp, start)); stats->tx_bytes += tbytes; stats->tx_packets += tpackets; } --- linux-3.13.0.orig/drivers/net/ethernet/Kconfig +++ linux-3.13.0/drivers/net/ethernet/Kconfig @@ -23,6 +23,7 @@ source "drivers/net/ethernet/allwinner/Kconfig" source "drivers/net/ethernet/alteon/Kconfig" source "drivers/net/ethernet/amd/Kconfig" +source "drivers/net/ethernet/apm/Kconfig" source "drivers/net/ethernet/apple/Kconfig" source "drivers/net/ethernet/arc/Kconfig" source "drivers/net/ethernet/atheros/Kconfig" --- linux-3.13.0.orig/drivers/net/ethernet/Makefile +++ linux-3.13.0/drivers/net/ethernet/Makefile @@ -9,6 +9,7 @@ obj-$(CONFIG_NET_VENDOR_ALLWINNER) += allwinner/ obj-$(CONFIG_NET_VENDOR_ALTEON) += alteon/ obj-$(CONFIG_NET_VENDOR_AMD) += amd/ +obj-$(CONFIG_NET_XGENE) += apm/ obj-$(CONFIG_NET_VENDOR_APPLE) += apple/ obj-$(CONFIG_NET_VENDOR_ARC) += arc/ obj-$(CONFIG_NET_VENDOR_ATHEROS) += atheros/ --- linux-3.13.0.orig/drivers/net/ethernet/allwinner/sun4i-emac.c +++ linux-3.13.0/drivers/net/ethernet/allwinner/sun4i-emac.c @@ -623,8 +623,10 @@ } /* Move data from EMAC */ - skb = dev_alloc_skb(rxlen + 4); - if (good_packet && skb) { + if (good_packet) { + skb = netdev_alloc_skb(dev, rxlen + 4); + if (!skb) + continue; skb_reserve(skb, 2); rdptr = (u8 *) skb_put(skb, rxlen - 4); @@ -726,6 +728,7 @@ ret = emac_mdio_probe(dev); if (ret < 0) { + free_irq(dev->irq, dev); netdev_err(dev, "cannot probe MDIO bus\n"); return ret; } --- linux-3.13.0.orig/drivers/net/ethernet/apm/Kconfig +++ linux-3.13.0/drivers/net/ethernet/apm/Kconfig @@ -0,0 +1 @@ +source "drivers/net/ethernet/apm/xgene/Kconfig" --- linux-3.13.0.orig/drivers/net/ethernet/apm/Makefile +++ linux-3.13.0/drivers/net/ethernet/apm/Makefile @@ -0,0 +1,5 @@ +# +# Makefile for APM X-GENE Ethernet driver. +# + +obj-$(CONFIG_NET_XGENE) += xgene/ --- linux-3.13.0.orig/drivers/net/ethernet/apm/xgene/Kconfig +++ linux-3.13.0/drivers/net/ethernet/apm/xgene/Kconfig @@ -0,0 +1,9 @@ +config NET_XGENE + tristate "APM X-Gene SoC Ethernet Driver" + select PHYLIB + help + This is the Ethernet driver for the on-chip ethernet interface on the + APM X-Gene SoC. + + To compile this driver as a module, choose M here. This module will + be called xgene_enet. --- linux-3.13.0.orig/drivers/net/ethernet/apm/xgene/Makefile +++ linux-3.13.0/drivers/net/ethernet/apm/xgene/Makefile @@ -0,0 +1,7 @@ +# +# Makefile for APM X-Gene Ethernet Driver. +# + +xgene-enet-objs := xgene_enet_hw.o xgene_enet_sgmac.o xgene_enet_xgmac.o \ + xgene_enet_main.o xgene_enet_ethtool.o +obj-$(CONFIG_NET_XGENE) += xgene-enet.o --- linux-3.13.0.orig/drivers/net/ethernet/apm/xgene/xgene_enet_ethtool.c +++ linux-3.13.0/drivers/net/ethernet/apm/xgene/xgene_enet_ethtool.c @@ -0,0 +1,150 @@ +/* Applied Micro X-Gene SoC Ethernet Driver + * + * Copyright (c) 2014, Applied Micro Circuits Corporation + * Authors: Iyappan Subramanian + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include "xgene_enet_main.h" + +struct xgene_gstrings_stats { + char name[ETH_GSTRING_LEN]; + int offset; +}; + +#define XGENE_STAT(m) { #m, offsetof(struct xgene_enet_pdata, stats.m) } + +static const struct xgene_gstrings_stats gstrings_stats[] = { + XGENE_STAT(rx_packets), + XGENE_STAT(tx_packets), + XGENE_STAT(rx_bytes), + XGENE_STAT(tx_bytes), + XGENE_STAT(rx_errors), + XGENE_STAT(tx_errors), + XGENE_STAT(rx_length_errors), + XGENE_STAT(rx_crc_errors), + XGENE_STAT(rx_frame_errors), + XGENE_STAT(rx_fifo_errors) +}; + +#define XGENE_STATS_LEN ARRAY_SIZE(gstrings_stats) + +static void xgene_get_drvinfo(struct net_device *ndev, + struct ethtool_drvinfo *info) +{ + struct xgene_enet_pdata *pdata = netdev_priv(ndev); + struct platform_device *pdev = pdata->pdev; + + strcpy(info->driver, "xgene_enet"); + strcpy(info->version, XGENE_DRV_VERSION); + snprintf(info->fw_version, ETHTOOL_FWVERS_LEN, "N/A"); + sprintf(info->bus_info, "%s", pdev->name); +} + +static int xgene_get_settings(struct net_device *ndev, struct ethtool_cmd *cmd) +{ + struct xgene_enet_pdata *pdata = netdev_priv(ndev); + struct phy_device *phydev = pdata->phy_dev; + + if (pdata->phy_mode == PHY_INTERFACE_MODE_RGMII) { + if (phydev == NULL) + return -ENODEV; + + return phy_ethtool_gset(phydev, cmd); + } else if (pdata->phy_mode == PHY_INTERFACE_MODE_SGMII) { + cmd->supported = SUPPORTED_1000baseT_Full | + SUPPORTED_Autoneg | SUPPORTED_MII; + cmd->advertising = cmd->supported; + ethtool_cmd_speed_set(cmd, SPEED_1000); + cmd->duplex = DUPLEX_FULL; + cmd->port = PORT_MII; + cmd->transceiver = XCVR_INTERNAL; + cmd->autoneg = AUTONEG_ENABLE; + } else { + cmd->supported = SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE; + cmd->advertising = cmd->supported; + ethtool_cmd_speed_set(cmd, SPEED_10000); + cmd->duplex = DUPLEX_FULL; + cmd->port = PORT_FIBRE; + cmd->transceiver = XCVR_INTERNAL; + cmd->autoneg = AUTONEG_DISABLE; + } + + return 0; +} + +static int xgene_set_settings(struct net_device *ndev, struct ethtool_cmd *cmd) +{ + struct xgene_enet_pdata *pdata = netdev_priv(ndev); + struct phy_device *phydev = pdata->phy_dev; + + if (pdata->phy_mode == PHY_INTERFACE_MODE_RGMII) { + if (phydev == NULL) + return -ENODEV; + + return phy_ethtool_sset(phydev, cmd); + } + + return -EINVAL; +} + +static void xgene_get_strings(struct net_device *ndev, u32 stringset, u8 *data) +{ + int i; + u8 *p = data; + + if (stringset != ETH_SS_STATS) + return; + + for (i = 0; i < XGENE_STATS_LEN; i++) { + memcpy(p, gstrings_stats[i].name, ETH_GSTRING_LEN); + p += ETH_GSTRING_LEN; + } +} + +static int xgene_get_sset_count(struct net_device *ndev, int sset) +{ + if (sset != ETH_SS_STATS) + return -EINVAL; + + return XGENE_STATS_LEN; +} + +static void xgene_get_ethtool_stats(struct net_device *ndev, + struct ethtool_stats *dummy, + u64 *data) +{ + void *pdata = netdev_priv(ndev); + int i; + + for (i = 0; i < XGENE_STATS_LEN; i++) + *data++ = *(u64 *)(pdata + gstrings_stats[i].offset); +} + +static const struct ethtool_ops xgene_ethtool_ops = { + .get_drvinfo = xgene_get_drvinfo, + .get_settings = xgene_get_settings, + .set_settings = xgene_set_settings, + .get_link = ethtool_op_get_link, + .get_strings = xgene_get_strings, + .get_sset_count = xgene_get_sset_count, + .get_ethtool_stats = xgene_get_ethtool_stats +}; + +void xgene_enet_set_ethtool_ops(struct net_device *ndev) +{ + ndev->ethtool_ops = &xgene_ethtool_ops; +} --- linux-3.13.0.orig/drivers/net/ethernet/apm/xgene/xgene_enet_hw.c +++ linux-3.13.0/drivers/net/ethernet/apm/xgene/xgene_enet_hw.c @@ -0,0 +1,759 @@ +/* Applied Micro X-Gene SoC Ethernet Driver + * + * Copyright (c) 2014, Applied Micro Circuits Corporation + * Authors: Iyappan Subramanian + * Ravi Patel + * Keyur Chudgar + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "xgene_enet_main.h" +#include "xgene_enet_hw.h" + +static void xgene_enet_ring_init(struct xgene_enet_desc_ring *ring) +{ + u32 *ring_cfg = ring->state; + u64 addr = ring->dma; + enum xgene_enet_ring_cfgsize cfgsize = ring->cfgsize; + + ring_cfg[4] |= (1 << SELTHRSH_POS) & + CREATE_MASK(SELTHRSH_POS, SELTHRSH_LEN); + ring_cfg[3] |= ACCEPTLERR; + ring_cfg[2] |= QCOHERENT; + + addr >>= 8; + ring_cfg[2] |= (addr << RINGADDRL_POS) & + CREATE_MASK_ULL(RINGADDRL_POS, RINGADDRL_LEN); + addr >>= RINGADDRL_LEN; + ring_cfg[3] |= addr & CREATE_MASK_ULL(RINGADDRH_POS, RINGADDRH_LEN); + ring_cfg[3] |= ((u32)cfgsize << RINGSIZE_POS) & + CREATE_MASK(RINGSIZE_POS, RINGSIZE_LEN); +} + +static void xgene_enet_ring_set_type(struct xgene_enet_desc_ring *ring) +{ + u32 *ring_cfg = ring->state; + bool is_bufpool; + u32 val; + + is_bufpool = xgene_enet_is_bufpool(ring->id); + val = (is_bufpool) ? RING_BUFPOOL : RING_REGULAR; + ring_cfg[4] |= (val << RINGTYPE_POS) & + CREATE_MASK(RINGTYPE_POS, RINGTYPE_LEN); + + if (is_bufpool) { + ring_cfg[3] |= (BUFPOOL_MODE << RINGMODE_POS) & + CREATE_MASK(RINGMODE_POS, RINGMODE_LEN); + } +} + +static void xgene_enet_ring_set_recombbuf(struct xgene_enet_desc_ring *ring) +{ + u32 *ring_cfg = ring->state; + + ring_cfg[3] |= RECOMBBUF; + ring_cfg[3] |= (0xf << RECOMTIMEOUTL_POS) & + CREATE_MASK(RECOMTIMEOUTL_POS, RECOMTIMEOUTL_LEN); + ring_cfg[4] |= 0x7 & CREATE_MASK(RECOMTIMEOUTH_POS, RECOMTIMEOUTH_LEN); +} + +static void xgene_enet_ring_wr32(struct xgene_enet_desc_ring *ring, + u32 offset, u32 data) +{ + struct xgene_enet_pdata *pdata = netdev_priv(ring->ndev); + + iowrite32(data, pdata->ring_csr_addr + offset); +} + +static void xgene_enet_ring_rd32(struct xgene_enet_desc_ring *ring, + u32 offset, u32 *data) +{ + struct xgene_enet_pdata *pdata = netdev_priv(ring->ndev); + + *data = ioread32(pdata->ring_csr_addr + offset); +} + +static void xgene_enet_write_ring_state(struct xgene_enet_desc_ring *ring) +{ + int i; + + xgene_enet_ring_wr32(ring, CSR_RING_CONFIG, ring->num); + for (i = 0; i < NUM_RING_CONFIG; i++) { + xgene_enet_ring_wr32(ring, CSR_RING_WR_BASE + (i * 4), + ring->state[i]); + } +} + +static void xgene_enet_clr_ring_state(struct xgene_enet_desc_ring *ring) +{ + memset(ring->state, 0, sizeof(u32) * NUM_RING_CONFIG); + xgene_enet_write_ring_state(ring); +} + +static void xgene_enet_set_ring_state(struct xgene_enet_desc_ring *ring) +{ + xgene_enet_ring_set_type(ring); + + if (xgene_enet_ring_owner(ring->id) == RING_OWNER_ETH0) + xgene_enet_ring_set_recombbuf(ring); + + xgene_enet_ring_init(ring); + xgene_enet_write_ring_state(ring); +} + +static void xgene_enet_set_ring_id(struct xgene_enet_desc_ring *ring) +{ + u32 ring_id_val, ring_id_buf; + bool is_bufpool; + + is_bufpool = xgene_enet_is_bufpool(ring->id); + + ring_id_val = ring->id & GENMASK(9, 0); + ring_id_val |= OVERWRITE; + + ring_id_buf = (ring->num << 9) & GENMASK(18, 9); + ring_id_buf |= PREFETCH_BUF_EN; + if (is_bufpool) + ring_id_buf |= IS_BUFFER_POOL; + + xgene_enet_ring_wr32(ring, CSR_RING_ID, ring_id_val); + xgene_enet_ring_wr32(ring, CSR_RING_ID_BUF, ring_id_buf); +} + +static void xgene_enet_clr_desc_ring_id(struct xgene_enet_desc_ring *ring) +{ + u32 ring_id; + + ring_id = ring->id | OVERWRITE; + xgene_enet_ring_wr32(ring, CSR_RING_ID, ring_id); + xgene_enet_ring_wr32(ring, CSR_RING_ID_BUF, 0); +} + +struct xgene_enet_desc_ring *xgene_enet_setup_ring( + struct xgene_enet_desc_ring *ring) +{ + u32 size = ring->size; + u32 i, data; + bool is_bufpool; + + xgene_enet_clr_ring_state(ring); + xgene_enet_set_ring_state(ring); + xgene_enet_set_ring_id(ring); + + ring->slots = xgene_enet_get_numslots(ring->id, size); + + is_bufpool = xgene_enet_is_bufpool(ring->id); + if (is_bufpool || xgene_enet_ring_owner(ring->id) != RING_OWNER_CPU) + return ring; + + for (i = 0; i < ring->slots; i++) + xgene_enet_mark_desc_slot_empty(&ring->raw_desc[i]); + + xgene_enet_ring_rd32(ring, CSR_RING_NE_INT_MODE, &data); + data |= BIT(31 - xgene_enet_ring_bufnum(ring->id)); + xgene_enet_ring_wr32(ring, CSR_RING_NE_INT_MODE, data); + + return ring; +} + +void xgene_enet_clear_ring(struct xgene_enet_desc_ring *ring) +{ + u32 data; + bool is_bufpool; + + is_bufpool = xgene_enet_is_bufpool(ring->id); + if (is_bufpool || xgene_enet_ring_owner(ring->id) != RING_OWNER_CPU) + goto out; + + xgene_enet_ring_rd32(ring, CSR_RING_NE_INT_MODE, &data); + data &= ~BIT(31 - xgene_enet_ring_bufnum(ring->id)); + xgene_enet_ring_wr32(ring, CSR_RING_NE_INT_MODE, data); + +out: + xgene_enet_clr_desc_ring_id(ring); + xgene_enet_clr_ring_state(ring); +} + +void xgene_enet_parse_error(struct xgene_enet_desc_ring *ring, + struct xgene_enet_pdata *pdata, + enum xgene_enet_err_code status) +{ + struct rtnl_link_stats64 *stats = &pdata->stats; + + switch (status) { + case INGRESS_CRC: + stats->rx_crc_errors++; + break; + case INGRESS_CHECKSUM: + case INGRESS_CHECKSUM_COMPUTE: + stats->rx_errors++; + break; + case INGRESS_TRUNC_FRAME: + stats->rx_frame_errors++; + break; + case INGRESS_PKT_LEN: + stats->rx_length_errors++; + break; + case INGRESS_PKT_UNDER: + stats->rx_frame_errors++; + break; + case INGRESS_FIFO_OVERRUN: + stats->rx_fifo_errors++; + break; + default: + break; + } +} + +static void xgene_enet_wr_csr(struct xgene_enet_pdata *pdata, + u32 offset, u32 val) +{ + void __iomem *addr = pdata->eth_csr_addr + offset; + + iowrite32(val, addr); +} + +static void xgene_enet_wr_ring_if(struct xgene_enet_pdata *pdata, + u32 offset, u32 val) +{ + void __iomem *addr = pdata->eth_ring_if_addr + offset; + + iowrite32(val, addr); +} + +static void xgene_enet_wr_diag_csr(struct xgene_enet_pdata *pdata, + u32 offset, u32 val) +{ + void __iomem *addr = pdata->eth_diag_csr_addr + offset; + + iowrite32(val, addr); +} + +static void xgene_enet_wr_mcx_csr(struct xgene_enet_pdata *pdata, + u32 offset, u32 val) +{ + void __iomem *addr = pdata->mcx_mac_csr_addr + offset; + + iowrite32(val, addr); +} + +static bool xgene_enet_wr_indirect(void __iomem *addr, void __iomem *wr, + void __iomem *cmd, void __iomem *cmd_done, + u32 wr_addr, u32 wr_data) +{ + u32 done; + u8 wait = 10; + + iowrite32(wr_addr, addr); + iowrite32(wr_data, wr); + iowrite32(XGENE_ENET_WR_CMD, cmd); + + /* wait for write command to complete */ + while (!(done = ioread32(cmd_done)) && wait--) + udelay(1); + + if (!done) + return false; + + iowrite32(0, cmd); + + return true; +} + +static void xgene_enet_wr_mcx_mac(struct xgene_enet_pdata *pdata, + u32 wr_addr, u32 wr_data) +{ + void __iomem *addr, *wr, *cmd, *cmd_done; + + addr = pdata->mcx_mac_addr + MAC_ADDR_REG_OFFSET; + wr = pdata->mcx_mac_addr + MAC_WRITE_REG_OFFSET; + cmd = pdata->mcx_mac_addr + MAC_COMMAND_REG_OFFSET; + cmd_done = pdata->mcx_mac_addr + MAC_COMMAND_DONE_REG_OFFSET; + + if (!xgene_enet_wr_indirect(addr, wr, cmd, cmd_done, wr_addr, wr_data)) + netdev_err(pdata->ndev, "MCX mac write failed, addr: %04x\n", + wr_addr); +} + +static void xgene_enet_rd_csr(struct xgene_enet_pdata *pdata, + u32 offset, u32 *val) +{ + void __iomem *addr = pdata->eth_csr_addr + offset; + + *val = ioread32(addr); +} + +static void xgene_enet_rd_diag_csr(struct xgene_enet_pdata *pdata, + u32 offset, u32 *val) +{ + void __iomem *addr = pdata->eth_diag_csr_addr + offset; + + *val = ioread32(addr); +} + +static void xgene_enet_rd_mcx_csr(struct xgene_enet_pdata *pdata, + u32 offset, u32 *val) +{ + void __iomem *addr = pdata->mcx_mac_csr_addr + offset; + + *val = ioread32(addr); +} + +static bool xgene_enet_rd_indirect(void __iomem *addr, void __iomem *rd, + void __iomem *cmd, void __iomem *cmd_done, + u32 rd_addr, u32 *rd_data) +{ + u32 done; + u8 wait = 10; + + iowrite32(rd_addr, addr); + iowrite32(XGENE_ENET_RD_CMD, cmd); + + /* wait for read command to complete */ + while (!(done = ioread32(cmd_done)) && wait--) + udelay(1); + + if (!done) + return false; + + *rd_data = ioread32(rd); + iowrite32(0, cmd); + + return true; +} + +static void xgene_enet_rd_mcx_mac(struct xgene_enet_pdata *pdata, + u32 rd_addr, u32 *rd_data) +{ + void __iomem *addr, *rd, *cmd, *cmd_done; + + addr = pdata->mcx_mac_addr + MAC_ADDR_REG_OFFSET; + rd = pdata->mcx_mac_addr + MAC_READ_REG_OFFSET; + cmd = pdata->mcx_mac_addr + MAC_COMMAND_REG_OFFSET; + cmd_done = pdata->mcx_mac_addr + MAC_COMMAND_DONE_REG_OFFSET; + + if (!xgene_enet_rd_indirect(addr, rd, cmd, cmd_done, rd_addr, rd_data)) + netdev_err(pdata->ndev, "MCX mac read failed, addr: %04x\n", + rd_addr); +} + +static int xgene_mii_phy_write(struct xgene_enet_pdata *pdata, int phy_id, + u32 reg, u16 data) +{ + u32 addr = 0, wr_data = 0; + u32 done; + u8 wait = 10; + + PHY_ADDR_SET(&addr, phy_id); + REG_ADDR_SET(&addr, reg); + xgene_enet_wr_mcx_mac(pdata, MII_MGMT_ADDRESS_ADDR, addr); + + PHY_CONTROL_SET(&wr_data, data); + xgene_enet_wr_mcx_mac(pdata, MII_MGMT_CONTROL_ADDR, wr_data); + do { + usleep_range(5, 10); + xgene_enet_rd_mcx_mac(pdata, MII_MGMT_INDICATORS_ADDR, &done); + } while ((done & BUSY_MASK) && wait--); + + if (done & BUSY_MASK) { + netdev_err(pdata->ndev, "MII_MGMT write failed\n"); + return -EBUSY; + } + + return 0; +} + +static int xgene_mii_phy_read(struct xgene_enet_pdata *pdata, + u8 phy_id, u32 reg) +{ + u32 addr = 0; + u32 data, done; + u8 wait = 10; + + PHY_ADDR_SET(&addr, phy_id); + REG_ADDR_SET(&addr, reg); + xgene_enet_wr_mcx_mac(pdata, MII_MGMT_ADDRESS_ADDR, addr); + xgene_enet_wr_mcx_mac(pdata, MII_MGMT_COMMAND_ADDR, READ_CYCLE_MASK); + do { + usleep_range(5, 10); + xgene_enet_rd_mcx_mac(pdata, MII_MGMT_INDICATORS_ADDR, &done); + } while ((done & BUSY_MASK) && wait--); + + if (done & BUSY_MASK) { + netdev_err(pdata->ndev, "MII_MGMT read failed\n"); + return -EBUSY; + } + + xgene_enet_rd_mcx_mac(pdata, MII_MGMT_STATUS_ADDR, &data); + xgene_enet_wr_mcx_mac(pdata, MII_MGMT_COMMAND_ADDR, 0); + + return data; +} + +static void xgene_gmac_set_mac_addr(struct xgene_enet_pdata *pdata) +{ + u32 addr0, addr1; + u8 *dev_addr = pdata->ndev->dev_addr; + + addr0 = (dev_addr[3] << 24) | (dev_addr[2] << 16) | + (dev_addr[1] << 8) | dev_addr[0]; + addr1 = (dev_addr[5] << 24) | (dev_addr[4] << 16); + + xgene_enet_wr_mcx_mac(pdata, STATION_ADDR0_ADDR, addr0); + xgene_enet_wr_mcx_mac(pdata, STATION_ADDR1_ADDR, addr1); +} + +static int xgene_enet_ecc_init(struct xgene_enet_pdata *pdata) +{ + struct net_device *ndev = pdata->ndev; + u32 data; + u8 wait = 10; + + xgene_enet_wr_diag_csr(pdata, ENET_CFG_MEM_RAM_SHUTDOWN_ADDR, 0x0); + do { + usleep_range(100, 110); + xgene_enet_rd_diag_csr(pdata, ENET_BLOCK_MEM_RDY_ADDR, &data); + } while ((data != 0xffffffff) && wait--); + + if (data != 0xffffffff) { + netdev_err(ndev, "Failed to release memory from shutdown\n"); + return -ENODEV; + } + + return 0; +} + +static void xgene_gmac_reset(struct xgene_enet_pdata *pdata) +{ + xgene_enet_wr_mcx_mac(pdata, MAC_CONFIG_1_ADDR, SOFT_RESET1); + xgene_enet_wr_mcx_mac(pdata, MAC_CONFIG_1_ADDR, 0); +} + +static void xgene_gmac_init(struct xgene_enet_pdata *pdata) +{ + u32 value, mc2; + u32 intf_ctl, rgmii; + u32 icm0, icm2; + + xgene_gmac_reset(pdata); + + xgene_enet_rd_mcx_csr(pdata, ICM_CONFIG0_REG_0_ADDR, &icm0); + xgene_enet_rd_mcx_csr(pdata, ICM_CONFIG2_REG_0_ADDR, &icm2); + xgene_enet_rd_mcx_mac(pdata, MAC_CONFIG_2_ADDR, &mc2); + xgene_enet_rd_mcx_mac(pdata, INTERFACE_CONTROL_ADDR, &intf_ctl); + xgene_enet_rd_csr(pdata, RGMII_REG_0_ADDR, &rgmii); + + switch (pdata->phy_speed) { + case SPEED_10: + ENET_INTERFACE_MODE2_SET(&mc2, 1); + CFG_MACMODE_SET(&icm0, 0); + CFG_WAITASYNCRD_SET(&icm2, 500); + rgmii &= ~CFG_SPEED_1250; + break; + case SPEED_100: + ENET_INTERFACE_MODE2_SET(&mc2, 1); + intf_ctl |= ENET_LHD_MODE; + CFG_MACMODE_SET(&icm0, 1); + CFG_WAITASYNCRD_SET(&icm2, 80); + rgmii &= ~CFG_SPEED_1250; + break; + default: + ENET_INTERFACE_MODE2_SET(&mc2, 2); + intf_ctl |= ENET_GHD_MODE; + CFG_TXCLK_MUXSEL0_SET(&rgmii, 4); + xgene_enet_rd_csr(pdata, DEBUG_REG_ADDR, &value); + value |= CFG_BYPASS_UNISEC_TX | CFG_BYPASS_UNISEC_RX; + xgene_enet_wr_csr(pdata, DEBUG_REG_ADDR, value); + break; + } + + mc2 |= FULL_DUPLEX2; + xgene_enet_wr_mcx_mac(pdata, MAC_CONFIG_2_ADDR, mc2); + xgene_enet_wr_mcx_mac(pdata, INTERFACE_CONTROL_ADDR, intf_ctl); + + xgene_gmac_set_mac_addr(pdata); + + /* Adjust MDC clock frequency */ + xgene_enet_rd_mcx_mac(pdata, MII_MGMT_CONFIG_ADDR, &value); + MGMT_CLOCK_SEL_SET(&value, 7); + xgene_enet_wr_mcx_mac(pdata, MII_MGMT_CONFIG_ADDR, value); + + /* Enable drop if bufpool not available */ + xgene_enet_rd_csr(pdata, RSIF_CONFIG_REG_ADDR, &value); + value |= CFG_RSIF_FPBUFF_TIMEOUT_EN; + xgene_enet_wr_csr(pdata, RSIF_CONFIG_REG_ADDR, value); + + /* Rtype should be copied from FP */ + xgene_enet_wr_csr(pdata, RSIF_RAM_DBG_REG0_ADDR, 0); + xgene_enet_wr_csr(pdata, RGMII_REG_0_ADDR, rgmii); + + /* Rx-Tx traffic resume */ + xgene_enet_wr_csr(pdata, CFG_LINK_AGGR_RESUME_0_ADDR, TX_PORT0); + + xgene_enet_wr_mcx_csr(pdata, ICM_CONFIG0_REG_0_ADDR, icm0); + xgene_enet_wr_mcx_csr(pdata, ICM_CONFIG2_REG_0_ADDR, icm2); + + xgene_enet_rd_mcx_csr(pdata, RX_DV_GATE_REG_0_ADDR, &value); + value &= ~TX_DV_GATE_EN0; + value &= ~RX_DV_GATE_EN0; + value |= RESUME_RX0; + xgene_enet_wr_mcx_csr(pdata, RX_DV_GATE_REG_0_ADDR, value); + + xgene_enet_wr_csr(pdata, CFG_BYPASS_ADDR, RESUME_TX); +} + +static void xgene_enet_config_ring_if_assoc(struct xgene_enet_pdata *pdata) +{ + u32 val = 0xffffffff; + + xgene_enet_wr_ring_if(pdata, ENET_CFGSSQMIWQASSOC_ADDR, val); + xgene_enet_wr_ring_if(pdata, ENET_CFGSSQMIFPQASSOC_ADDR, val); + xgene_enet_wr_ring_if(pdata, ENET_CFGSSQMIQMLITEWQASSOC_ADDR, val); + xgene_enet_wr_ring_if(pdata, ENET_CFGSSQMIQMLITEFPQASSOC_ADDR, val); +} + +static void xgene_enet_cle_bypass(struct xgene_enet_pdata *pdata, + u32 dst_ring_num, u16 bufpool_id) +{ + u32 cb; + u32 fpsel; + + fpsel = xgene_enet_ring_bufnum(bufpool_id) - 0x20; + + xgene_enet_rd_csr(pdata, CLE_BYPASS_REG0_0_ADDR, &cb); + cb |= CFG_CLE_BYPASS_EN0; + CFG_CLE_IP_PROTOCOL0_SET(&cb, 3); + xgene_enet_wr_csr(pdata, CLE_BYPASS_REG0_0_ADDR, cb); + + xgene_enet_rd_csr(pdata, CLE_BYPASS_REG1_0_ADDR, &cb); + CFG_CLE_DSTQID0_SET(&cb, dst_ring_num); + CFG_CLE_FPSEL0_SET(&cb, fpsel); + xgene_enet_wr_csr(pdata, CLE_BYPASS_REG1_0_ADDR, cb); +} + +static void xgene_gmac_rx_enable(struct xgene_enet_pdata *pdata) +{ + u32 data; + + xgene_enet_rd_mcx_mac(pdata, MAC_CONFIG_1_ADDR, &data); + xgene_enet_wr_mcx_mac(pdata, MAC_CONFIG_1_ADDR, data | RX_EN); +} + +static void xgene_gmac_tx_enable(struct xgene_enet_pdata *pdata) +{ + u32 data; + + xgene_enet_rd_mcx_mac(pdata, MAC_CONFIG_1_ADDR, &data); + xgene_enet_wr_mcx_mac(pdata, MAC_CONFIG_1_ADDR, data | TX_EN); +} + +static void xgene_gmac_rx_disable(struct xgene_enet_pdata *pdata) +{ + u32 data; + + xgene_enet_rd_mcx_mac(pdata, MAC_CONFIG_1_ADDR, &data); + xgene_enet_wr_mcx_mac(pdata, MAC_CONFIG_1_ADDR, data & ~RX_EN); +} + +static void xgene_gmac_tx_disable(struct xgene_enet_pdata *pdata) +{ + u32 data; + + xgene_enet_rd_mcx_mac(pdata, MAC_CONFIG_1_ADDR, &data); + xgene_enet_wr_mcx_mac(pdata, MAC_CONFIG_1_ADDR, data & ~TX_EN); +} + +bool xgene_ring_mgr_init(struct xgene_enet_pdata *p) +{ + if (!ioread32(p->ring_csr_addr + CLKEN_ADDR)) + return false; + + if (ioread32(p->ring_csr_addr + SRST_ADDR)) + return false; + + return true; +} + +static int xgene_enet_reset(struct xgene_enet_pdata *pdata) +{ + u32 val; + + if (!xgene_ring_mgr_init(pdata)) + return -ENODEV; + + clk_prepare_enable(pdata->clk); + clk_disable_unprepare(pdata->clk); + clk_prepare_enable(pdata->clk); + xgene_enet_ecc_init(pdata); + xgene_enet_config_ring_if_assoc(pdata); + + /* Enable auto-incr for scanning */ + xgene_enet_rd_mcx_mac(pdata, MII_MGMT_CONFIG_ADDR, &val); + val |= SCAN_AUTO_INCR; + MGMT_CLOCK_SEL_SET(&val, 1); + xgene_enet_wr_mcx_mac(pdata, MII_MGMT_CONFIG_ADDR, val); + + return 0; +} + +static void xgene_gport_shutdown(struct xgene_enet_pdata *pdata) +{ + clk_disable_unprepare(pdata->clk); +} + +static int xgene_enet_mdio_read(struct mii_bus *bus, int mii_id, int regnum) +{ + struct xgene_enet_pdata *pdata = bus->priv; + u32 val; + + val = xgene_mii_phy_read(pdata, mii_id, regnum); + netdev_dbg(pdata->ndev, "mdio_rd: bus=%d reg=%d val=%x\n", + mii_id, regnum, val); + + return val; +} + +static int xgene_enet_mdio_write(struct mii_bus *bus, int mii_id, int regnum, + u16 val) +{ + struct xgene_enet_pdata *pdata = bus->priv; + + netdev_dbg(pdata->ndev, "mdio_wr: bus=%d reg=%d val=%x\n", + mii_id, regnum, val); + return xgene_mii_phy_write(pdata, mii_id, regnum, val); +} + +static void xgene_enet_adjust_link(struct net_device *ndev) +{ + struct xgene_enet_pdata *pdata = netdev_priv(ndev); + struct phy_device *phydev = pdata->phy_dev; + + if (phydev->link) { + if (pdata->phy_speed != phydev->speed) { + pdata->phy_speed = phydev->speed; + xgene_gmac_init(pdata); + xgene_gmac_rx_enable(pdata); + xgene_gmac_tx_enable(pdata); + phy_print_status(phydev); + } + } else { + xgene_gmac_rx_disable(pdata); + xgene_gmac_tx_disable(pdata); + pdata->phy_speed = SPEED_UNKNOWN; + phy_print_status(phydev); + } +} + +static int xgene_enet_phy_connect(struct net_device *ndev) +{ + struct xgene_enet_pdata *pdata = netdev_priv(ndev); + struct device_node *phy_np; + struct phy_device *phy_dev; + struct device *dev = &pdata->pdev->dev; + + phy_np = of_parse_phandle(dev->of_node, "phy-handle", 0); + if (!phy_np) { + netdev_dbg(ndev, "No phy-handle found\n"); + return -ENODEV; + } + + phy_dev = of_phy_connect(ndev, phy_np, &xgene_enet_adjust_link, + 0, pdata->phy_mode); + if (!phy_dev) { + netdev_err(ndev, "Could not connect to PHY\n"); + return -ENODEV; + } + + pdata->phy_speed = SPEED_UNKNOWN; + phy_dev->supported &= ~SUPPORTED_10baseT_Half & + ~SUPPORTED_100baseT_Half & + ~SUPPORTED_1000baseT_Half; + phy_dev->advertising = phy_dev->supported; + pdata->phy_dev = phy_dev; + + return 0; +} + +int xgene_enet_mdio_config(struct xgene_enet_pdata *pdata) +{ + struct net_device *ndev = pdata->ndev; + struct device *dev = &pdata->pdev->dev; + struct device_node *child_np; + struct device_node *mdio_np = NULL; + struct mii_bus *mdio_bus; + int ret; + + for_each_child_of_node(dev->of_node, child_np) { + if (of_device_is_compatible(child_np, "apm,xgene-mdio")) { + mdio_np = child_np; + break; + } + } + + if (!mdio_np) { + netdev_dbg(ndev, "No mdio node in the dts\n"); + return -ENXIO; + } + + mdio_bus = mdiobus_alloc(); + if (!mdio_bus) + return -ENOMEM; + + mdio_bus->name = "APM X-Gene MDIO bus"; + mdio_bus->read = xgene_enet_mdio_read; + mdio_bus->write = xgene_enet_mdio_write; + snprintf(mdio_bus->id, MII_BUS_ID_SIZE, "%s-%s", "xgene-mii", + ndev->name); + + mdio_bus->priv = pdata; + mdio_bus->parent = &ndev->dev; + + ret = of_mdiobus_register(mdio_bus, mdio_np); + if (ret) { + netdev_err(ndev, "Failed to register MDIO bus\n"); + mdiobus_free(mdio_bus); + return ret; + } + pdata->mdio_bus = mdio_bus; + + ret = xgene_enet_phy_connect(ndev); + if (ret) + xgene_enet_mdio_remove(pdata); + + return ret; +} + +void xgene_enet_mdio_remove(struct xgene_enet_pdata *pdata) +{ + mdiobus_unregister(pdata->mdio_bus); + mdiobus_free(pdata->mdio_bus); + pdata->mdio_bus = NULL; +} + +struct xgene_mac_ops xgene_gmac_ops = { + .init = xgene_gmac_init, + .reset = xgene_gmac_reset, + .rx_enable = xgene_gmac_rx_enable, + .tx_enable = xgene_gmac_tx_enable, + .rx_disable = xgene_gmac_rx_disable, + .tx_disable = xgene_gmac_tx_disable, + .set_mac_addr = xgene_gmac_set_mac_addr, +}; + +struct xgene_port_ops xgene_gport_ops = { + .reset = xgene_enet_reset, + .cle_bypass = xgene_enet_cle_bypass, + .shutdown = xgene_gport_shutdown, +}; --- linux-3.13.0.orig/drivers/net/ethernet/apm/xgene/xgene_enet_hw.h +++ linux-3.13.0/drivers/net/ethernet/apm/xgene/xgene_enet_hw.h @@ -0,0 +1,329 @@ +/* Applied Micro X-Gene SoC Ethernet Driver + * + * Copyright (c) 2014, Applied Micro Circuits Corporation + * Authors: Iyappan Subramanian + * Ravi Patel + * Keyur Chudgar + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef __XGENE_ENET_HW_H__ +#define __XGENE_ENET_HW_H__ + +#include "xgene_enet_main.h" + +struct xgene_enet_pdata; +struct xgene_enet_stats; + +/* clears and then set bits */ +static inline void xgene_set_bits(u32 *dst, u32 val, u32 start, u32 len) +{ + u32 end = start + len - 1; + u32 mask = GENMASK(end, start); + + *dst &= ~mask; + *dst |= (val << start) & mask; +} + +static inline u32 xgene_get_bits(u32 val, u32 start, u32 end) +{ + return (val & GENMASK(end, start)) >> start; +} + +enum xgene_enet_rm { + RM0, + RM1, + RM3 = 3 +}; + +#define CSR_RING_ID 0x0008 +#define OVERWRITE BIT(31) +#define IS_BUFFER_POOL BIT(20) +#define PREFETCH_BUF_EN BIT(21) +#define CSR_RING_ID_BUF 0x000c +#define CSR_RING_NE_INT_MODE 0x017c +#define CSR_RING_CONFIG 0x006c +#define CSR_RING_WR_BASE 0x0070 +#define NUM_RING_CONFIG 5 +#define BUFPOOL_MODE 3 +#define INC_DEC_CMD_ADDR 0x002c +#define UDP_HDR_SIZE 2 +#define BUF_LEN_CODE_2K 0x5000 + +#define CREATE_MASK(pos, len) GENMASK((pos)+(len)-1, (pos)) +#define CREATE_MASK_ULL(pos, len) GENMASK_ULL((pos)+(len)-1, (pos)) + +/* Empty slot soft signature */ +#define EMPTY_SLOT_INDEX 1 +#define EMPTY_SLOT ~0ULL + +#define WORK_DESC_SIZE 32 +#define BUFPOOL_DESC_SIZE 16 + +#define RING_OWNER_MASK GENMASK(9, 6) +#define RING_BUFNUM_MASK GENMASK(5, 0) + +#define SELTHRSH_POS 3 +#define SELTHRSH_LEN 3 +#define RINGADDRL_POS 5 +#define RINGADDRL_LEN 27 +#define RINGADDRH_POS 0 +#define RINGADDRH_LEN 6 +#define RINGSIZE_POS 23 +#define RINGSIZE_LEN 3 +#define RINGTYPE_POS 19 +#define RINGTYPE_LEN 2 +#define RINGMODE_POS 20 +#define RINGMODE_LEN 3 +#define RECOMTIMEOUTL_POS 28 +#define RECOMTIMEOUTL_LEN 3 +#define RECOMTIMEOUTH_POS 0 +#define RECOMTIMEOUTH_LEN 2 +#define NUMMSGSINQ_POS 1 +#define NUMMSGSINQ_LEN 16 +#define ACCEPTLERR BIT(19) +#define QCOHERENT BIT(4) +#define RECOMBBUF BIT(27) + +#define BLOCK_ETH_CSR_OFFSET 0x2000 +#define BLOCK_ETH_RING_IF_OFFSET 0x9000 +#define BLOCK_ETH_DIAG_CSR_OFFSET 0xD000 + +#define BLOCK_ETH_MAC_OFFSET 0x0000 +#define BLOCK_ETH_MAC_CSR_OFFSET 0x2800 + +#define CLKEN_ADDR 0xc208 +#define SRST_ADDR 0xc200 + +#define MAC_ADDR_REG_OFFSET 0x00 +#define MAC_COMMAND_REG_OFFSET 0x04 +#define MAC_WRITE_REG_OFFSET 0x08 +#define MAC_READ_REG_OFFSET 0x0c +#define MAC_COMMAND_DONE_REG_OFFSET 0x10 + +#define MII_MGMT_CONFIG_ADDR 0x20 +#define MII_MGMT_COMMAND_ADDR 0x24 +#define MII_MGMT_ADDRESS_ADDR 0x28 +#define MII_MGMT_CONTROL_ADDR 0x2c +#define MII_MGMT_STATUS_ADDR 0x30 +#define MII_MGMT_INDICATORS_ADDR 0x34 + +#define BUSY_MASK BIT(0) +#define READ_CYCLE_MASK BIT(0) +#define PHY_CONTROL_SET(dst, val) xgene_set_bits(dst, val, 0, 16) + +#define ENET_SPARE_CFG_REG_ADDR 0x0750 +#define RSIF_CONFIG_REG_ADDR 0x0010 +#define RSIF_RAM_DBG_REG0_ADDR 0x0048 +#define RGMII_REG_0_ADDR 0x07e0 +#define CFG_LINK_AGGR_RESUME_0_ADDR 0x07c8 +#define DEBUG_REG_ADDR 0x0700 +#define CFG_BYPASS_ADDR 0x0294 +#define CLE_BYPASS_REG0_0_ADDR 0x0490 +#define CLE_BYPASS_REG1_0_ADDR 0x0494 +#define CFG_RSIF_FPBUFF_TIMEOUT_EN BIT(31) +#define RESUME_TX BIT(0) +#define CFG_SPEED_1250 BIT(24) +#define TX_PORT0 BIT(0) +#define CFG_BYPASS_UNISEC_TX BIT(2) +#define CFG_BYPASS_UNISEC_RX BIT(1) +#define CFG_CLE_BYPASS_EN0 BIT(31) +#define CFG_TXCLK_MUXSEL0_SET(dst, val) xgene_set_bits(dst, val, 29, 3) + +#define CFG_CLE_IP_PROTOCOL0_SET(dst, val) xgene_set_bits(dst, val, 16, 2) +#define CFG_CLE_DSTQID0_SET(dst, val) xgene_set_bits(dst, val, 0, 12) +#define CFG_CLE_FPSEL0_SET(dst, val) xgene_set_bits(dst, val, 16, 4) +#define CFG_MACMODE_SET(dst, val) xgene_set_bits(dst, val, 18, 2) +#define CFG_WAITASYNCRD_SET(dst, val) xgene_set_bits(dst, val, 0, 16) +#define CFG_CLE_DSTQID0(val) (val & GENMASK(11, 0)) +#define CFG_CLE_FPSEL0(val) ((val << 16) & GENMASK(19, 16)) +#define ICM_CONFIG0_REG_0_ADDR 0x0400 +#define ICM_CONFIG2_REG_0_ADDR 0x0410 +#define RX_DV_GATE_REG_0_ADDR 0x05fc +#define TX_DV_GATE_EN0 BIT(2) +#define RX_DV_GATE_EN0 BIT(1) +#define RESUME_RX0 BIT(0) +#define ENET_CFGSSQMIWQASSOC_ADDR 0xe0 +#define ENET_CFGSSQMIFPQASSOC_ADDR 0xdc +#define ENET_CFGSSQMIQMLITEFPQASSOC_ADDR 0xf0 +#define ENET_CFGSSQMIQMLITEWQASSOC_ADDR 0xf4 +#define ENET_CFG_MEM_RAM_SHUTDOWN_ADDR 0x70 +#define ENET_BLOCK_MEM_RDY_ADDR 0x74 +#define MAC_CONFIG_1_ADDR 0x00 +#define MAC_CONFIG_2_ADDR 0x04 +#define MAX_FRAME_LEN_ADDR 0x10 +#define INTERFACE_CONTROL_ADDR 0x38 +#define STATION_ADDR0_ADDR 0x40 +#define STATION_ADDR1_ADDR 0x44 +#define PHY_ADDR_SET(dst, val) xgene_set_bits(dst, val, 8, 5) +#define REG_ADDR_SET(dst, val) xgene_set_bits(dst, val, 0, 5) +#define ENET_INTERFACE_MODE2_SET(dst, val) xgene_set_bits(dst, val, 8, 2) +#define MGMT_CLOCK_SEL_SET(dst, val) xgene_set_bits(dst, val, 0, 3) +#define SOFT_RESET1 BIT(31) +#define TX_EN BIT(0) +#define RX_EN BIT(2) +#define ENET_LHD_MODE BIT(25) +#define ENET_GHD_MODE BIT(26) +#define FULL_DUPLEX2 BIT(0) +#define SCAN_AUTO_INCR BIT(5) +#define TBYT_ADDR 0x38 +#define TPKT_ADDR 0x39 +#define TDRP_ADDR 0x45 +#define TFCS_ADDR 0x47 +#define TUND_ADDR 0x4a + +#define TSO_IPPROTO_TCP 1 + +#define USERINFO_POS 0 +#define USERINFO_LEN 32 +#define FPQNUM_POS 32 +#define FPQNUM_LEN 12 +#define LERR_POS 60 +#define LERR_LEN 3 +#define STASH_POS 52 +#define STASH_LEN 2 +#define BUFDATALEN_POS 48 +#define BUFDATALEN_LEN 12 +#define DATAADDR_POS 0 +#define DATAADDR_LEN 42 +#define COHERENT_POS 63 +#define HENQNUM_POS 48 +#define HENQNUM_LEN 12 +#define TYPESEL_POS 44 +#define TYPESEL_LEN 4 +#define ETHHDR_POS 12 +#define ETHHDR_LEN 8 +#define IC_POS 35 /* Insert CRC */ +#define TCPHDR_POS 0 +#define TCPHDR_LEN 6 +#define IPHDR_POS 6 +#define IPHDR_LEN 6 +#define EC_POS 22 /* Enable checksum */ +#define EC_LEN 1 +#define IS_POS 24 /* IP protocol select */ +#define IS_LEN 1 +#define TYPE_ETH_WORK_MESSAGE_POS 44 + +struct xgene_enet_raw_desc { + __le64 m0; + __le64 m1; + __le64 m2; + __le64 m3; +}; + +struct xgene_enet_raw_desc16 { + __le64 m0; + __le64 m1; +}; + +static inline void xgene_enet_mark_desc_slot_empty(void *desc_slot_ptr) +{ + __le64 *desc_slot = desc_slot_ptr; + + desc_slot[EMPTY_SLOT_INDEX] = cpu_to_le64(EMPTY_SLOT); +} + +static inline bool xgene_enet_is_desc_slot_empty(void *desc_slot_ptr) +{ + __le64 *desc_slot = desc_slot_ptr; + + return (desc_slot[EMPTY_SLOT_INDEX] == cpu_to_le64(EMPTY_SLOT)); +} + +enum xgene_enet_ring_cfgsize { + RING_CFGSIZE_512B, + RING_CFGSIZE_2KB, + RING_CFGSIZE_16KB, + RING_CFGSIZE_64KB, + RING_CFGSIZE_512KB, + RING_CFGSIZE_INVALID +}; + +enum xgene_enet_ring_type { + RING_DISABLED, + RING_REGULAR, + RING_BUFPOOL +}; + +enum xgene_ring_owner { + RING_OWNER_ETH0, + RING_OWNER_CPU = 15, + RING_OWNER_INVALID +}; + +enum xgene_enet_ring_bufnum { + RING_BUFNUM_REGULAR = 0x0, + RING_BUFNUM_BUFPOOL = 0x20, + RING_BUFNUM_INVALID +}; + +enum xgene_enet_cmd { + XGENE_ENET_WR_CMD = BIT(31), + XGENE_ENET_RD_CMD = BIT(30) +}; + +enum xgene_enet_err_code { + HBF_READ_DATA = 3, + HBF_LL_READ = 4, + BAD_WORK_MSG = 6, + BUFPOOL_TIMEOUT = 15, + INGRESS_CRC = 16, + INGRESS_CHECKSUM = 17, + INGRESS_TRUNC_FRAME = 18, + INGRESS_PKT_LEN = 19, + INGRESS_PKT_UNDER = 20, + INGRESS_FIFO_OVERRUN = 21, + INGRESS_CHECKSUM_COMPUTE = 26, + ERR_CODE_INVALID +}; + +static inline enum xgene_ring_owner xgene_enet_ring_owner(u16 id) +{ + return (id & RING_OWNER_MASK) >> 6; +} + +static inline u8 xgene_enet_ring_bufnum(u16 id) +{ + return id & RING_BUFNUM_MASK; +} + +static inline bool xgene_enet_is_bufpool(u16 id) +{ + return ((id & RING_BUFNUM_MASK) >= 0x20) ? true : false; +} + +static inline u16 xgene_enet_get_numslots(u16 id, u32 size) +{ + bool is_bufpool = xgene_enet_is_bufpool(id); + + return (is_bufpool) ? size / BUFPOOL_DESC_SIZE : + size / WORK_DESC_SIZE; +} + +struct xgene_enet_desc_ring *xgene_enet_setup_ring( + struct xgene_enet_desc_ring *ring); +void xgene_enet_clear_ring(struct xgene_enet_desc_ring *ring); +void xgene_enet_parse_error(struct xgene_enet_desc_ring *ring, + struct xgene_enet_pdata *pdata, + enum xgene_enet_err_code status); + +int xgene_enet_mdio_config(struct xgene_enet_pdata *pdata); +void xgene_enet_mdio_remove(struct xgene_enet_pdata *pdata); +bool xgene_ring_mgr_init(struct xgene_enet_pdata *p); + +extern struct xgene_mac_ops xgene_gmac_ops; +extern struct xgene_port_ops xgene_gport_ops; + +#endif /* __XGENE_ENET_HW_H__ */ --- linux-3.13.0.orig/drivers/net/ethernet/apm/xgene/xgene_enet_main.c +++ linux-3.13.0/drivers/net/ethernet/apm/xgene/xgene_enet_main.c @@ -0,0 +1,1000 @@ +/* Applied Micro X-Gene SoC Ethernet Driver + * + * Copyright (c) 2014, Applied Micro Circuits Corporation + * Authors: Iyappan Subramanian + * Ravi Patel + * Keyur Chudgar + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "xgene_enet_main.h" +#include "xgene_enet_hw.h" +#include "xgene_enet_sgmac.h" +#include "xgene_enet_xgmac.h" + +static void xgene_enet_init_bufpool(struct xgene_enet_desc_ring *buf_pool) +{ + struct xgene_enet_raw_desc16 *raw_desc; + int i; + + for (i = 0; i < buf_pool->slots; i++) { + raw_desc = &buf_pool->raw_desc16[i]; + + /* Hardware expects descriptor in little endian format */ + raw_desc->m0 = cpu_to_le64(i | + SET_VAL(FPQNUM, buf_pool->dst_ring_num) | + SET_VAL(STASH, 3)); + } +} + +static int xgene_enet_refill_bufpool(struct xgene_enet_desc_ring *buf_pool, + u32 nbuf) +{ + struct sk_buff *skb; + struct xgene_enet_raw_desc16 *raw_desc; + struct net_device *ndev; + struct device *dev; + dma_addr_t dma_addr; + u32 tail = buf_pool->tail; + u32 slots = buf_pool->slots - 1; + u16 bufdatalen, len; + int i; + + ndev = buf_pool->ndev; + dev = ndev_to_dev(buf_pool->ndev); + bufdatalen = BUF_LEN_CODE_2K | (SKB_BUFFER_SIZE & GENMASK(11, 0)); + len = XGENE_ENET_MAX_MTU; + + for (i = 0; i < nbuf; i++) { + raw_desc = &buf_pool->raw_desc16[tail]; + + skb = netdev_alloc_skb_ip_align(ndev, len); + if (unlikely(!skb)) + return -ENOMEM; + buf_pool->rx_skb[tail] = skb; + + dma_addr = dma_map_single(dev, skb->data, len, DMA_FROM_DEVICE); + if (dma_mapping_error(dev, dma_addr)) { + netdev_err(ndev, "DMA mapping error\n"); + dev_kfree_skb_any(skb); + return -EINVAL; + } + + raw_desc->m1 = cpu_to_le64(SET_VAL(DATAADDR, dma_addr) | + SET_VAL(BUFDATALEN, bufdatalen) | + SET_BIT(COHERENT)); + tail = (tail + 1) & slots; + } + + iowrite32(nbuf, buf_pool->cmd); + buf_pool->tail = tail; + + return 0; +} + +static u16 xgene_enet_dst_ring_num(struct xgene_enet_desc_ring *ring) +{ + struct xgene_enet_pdata *pdata = netdev_priv(ring->ndev); + + return ((u16)pdata->rm << 10) | ring->num; +} + +static u8 xgene_enet_hdr_len(const void *data) +{ + const struct ethhdr *eth = data; + + return (eth->h_proto == htons(ETH_P_8021Q)) ? VLAN_ETH_HLEN : ETH_HLEN; +} + +static u32 xgene_enet_ring_len(struct xgene_enet_desc_ring *ring) +{ + u32 __iomem *cmd_base = ring->cmd_base; + u32 ring_state, num_msgs; + + ring_state = ioread32(&cmd_base[1]); + num_msgs = ring_state & CREATE_MASK(NUMMSGSINQ_POS, NUMMSGSINQ_LEN); + + return num_msgs >> NUMMSGSINQ_POS; +} + +static void xgene_enet_delete_bufpool(struct xgene_enet_desc_ring *buf_pool) +{ + struct xgene_enet_raw_desc16 *raw_desc; + u32 slots = buf_pool->slots - 1; + u32 tail = buf_pool->tail; + u32 userinfo; + int i, len; + + len = xgene_enet_ring_len(buf_pool); + for (i = 0; i < len; i++) { + tail = (tail - 1) & slots; + raw_desc = &buf_pool->raw_desc16[tail]; + + /* Hardware stores descriptor in little endian format */ + userinfo = GET_VAL(USERINFO, le64_to_cpu(raw_desc->m0)); + dev_kfree_skb_any(buf_pool->rx_skb[userinfo]); + } + + iowrite32(-len, buf_pool->cmd); + buf_pool->tail = tail; +} + +static irqreturn_t xgene_enet_rx_irq(const int irq, void *data) +{ + struct xgene_enet_desc_ring *rx_ring = data; + + if (napi_schedule_prep(&rx_ring->napi)) { + disable_irq_nosync(irq); + __napi_schedule(&rx_ring->napi); + } + + return IRQ_HANDLED; +} + +static int xgene_enet_tx_completion(struct xgene_enet_desc_ring *cp_ring, + struct xgene_enet_raw_desc *raw_desc) +{ + struct sk_buff *skb; + struct device *dev; + u16 skb_index; + u8 status; + int ret = 0; + + skb_index = GET_VAL(USERINFO, le64_to_cpu(raw_desc->m0)); + skb = cp_ring->cp_skb[skb_index]; + + dev = ndev_to_dev(cp_ring->ndev); + dma_unmap_single(dev, GET_VAL(DATAADDR, le64_to_cpu(raw_desc->m1)), + GET_VAL(BUFDATALEN, le64_to_cpu(raw_desc->m1)), + DMA_TO_DEVICE); + + /* Checking for error */ + status = GET_VAL(LERR, le64_to_cpu(raw_desc->m0)); + if (unlikely(status > 2)) { + xgene_enet_parse_error(cp_ring, netdev_priv(cp_ring->ndev), + status); + ret = -EIO; + } + + if (likely(skb)) { + dev_kfree_skb_any(skb); + } else { + netdev_err(cp_ring->ndev, "completion skb is NULL\n"); + ret = -EIO; + } + + return ret; +} + +static u64 xgene_enet_work_msg(struct sk_buff *skb) +{ + struct iphdr *iph; + u8 l3hlen, l4hlen = 0; + u8 csum_enable = 0; + u8 proto = 0; + u8 ethhdr; + u64 hopinfo; + + if (unlikely(skb->protocol != htons(ETH_P_IP)) && + unlikely(skb->protocol != htons(ETH_P_8021Q))) + goto out; + + if (unlikely(!(skb->dev->features & NETIF_F_IP_CSUM))) + goto out; + + iph = ip_hdr(skb); + if (unlikely(ip_is_fragment(iph))) + goto out; + + if (likely(iph->protocol == IPPROTO_TCP)) { + l4hlen = tcp_hdrlen(skb) >> 2; + csum_enable = 1; + proto = TSO_IPPROTO_TCP; + } else if (iph->protocol == IPPROTO_UDP) { + l4hlen = UDP_HDR_SIZE; + csum_enable = 1; + } +out: + l3hlen = ip_hdrlen(skb) >> 2; + ethhdr = xgene_enet_hdr_len(skb->data); + hopinfo = SET_VAL(TCPHDR, l4hlen) | + SET_VAL(IPHDR, l3hlen) | + SET_VAL(ETHHDR, ethhdr) | + SET_VAL(EC, csum_enable) | + SET_VAL(IS, proto) | + SET_BIT(IC) | + SET_BIT(TYPE_ETH_WORK_MESSAGE); + + return hopinfo; +} + +static int xgene_enet_setup_tx_desc(struct xgene_enet_desc_ring *tx_ring, + struct sk_buff *skb) +{ + struct device *dev = ndev_to_dev(tx_ring->ndev); + struct xgene_enet_raw_desc *raw_desc; + dma_addr_t dma_addr; + u16 tail = tx_ring->tail; + u64 hopinfo; + + raw_desc = &tx_ring->raw_desc[tail]; + memset(raw_desc, 0, sizeof(struct xgene_enet_raw_desc)); + + dma_addr = dma_map_single(dev, skb->data, skb->len, DMA_TO_DEVICE); + if (dma_mapping_error(dev, dma_addr)) { + netdev_err(tx_ring->ndev, "DMA mapping error\n"); + return -EINVAL; + } + + /* Hardware expects descriptor in little endian format */ + raw_desc->m0 = cpu_to_le64(tail); + raw_desc->m1 = cpu_to_le64(SET_VAL(DATAADDR, dma_addr) | + SET_VAL(BUFDATALEN, skb->len) | + SET_BIT(COHERENT)); + hopinfo = xgene_enet_work_msg(skb); + raw_desc->m3 = cpu_to_le64(SET_VAL(HENQNUM, tx_ring->dst_ring_num) | + hopinfo); + tx_ring->cp_ring->cp_skb[tail] = skb; + + return 0; +} + +static netdev_tx_t xgene_enet_start_xmit(struct sk_buff *skb, + struct net_device *ndev) +{ + struct xgene_enet_pdata *pdata = netdev_priv(ndev); + struct xgene_enet_desc_ring *tx_ring = pdata->tx_ring; + struct xgene_enet_desc_ring *cp_ring = tx_ring->cp_ring; + u32 tx_level, cq_level; + + tx_level = xgene_enet_ring_len(tx_ring); + cq_level = xgene_enet_ring_len(cp_ring); + if (unlikely(tx_level > pdata->tx_qcnt_hi || + cq_level > pdata->cp_qcnt_hi)) { + netif_stop_queue(ndev); + return NETDEV_TX_BUSY; + } + + if (xgene_enet_setup_tx_desc(tx_ring, skb)) { + dev_kfree_skb_any(skb); + return NETDEV_TX_OK; + } + + iowrite32(1, tx_ring->cmd); + skb_tx_timestamp(skb); + tx_ring->tail = (tx_ring->tail + 1) & (tx_ring->slots - 1); + + pdata->stats.tx_packets++; + pdata->stats.tx_bytes += skb->len; + + return NETDEV_TX_OK; +} + +static void xgene_enet_skip_csum(struct sk_buff *skb) +{ + struct iphdr *iph = ip_hdr(skb); + + if (!ip_is_fragment(iph) || + (iph->protocol != IPPROTO_TCP && iph->protocol != IPPROTO_UDP)) { + skb->ip_summed = CHECKSUM_UNNECESSARY; + } +} + +static int xgene_enet_rx_frame(struct xgene_enet_desc_ring *rx_ring, + struct xgene_enet_raw_desc *raw_desc) +{ + struct net_device *ndev; + struct xgene_enet_pdata *pdata; + struct device *dev; + struct xgene_enet_desc_ring *buf_pool; + u32 datalen, skb_index; + struct sk_buff *skb; + u8 status; + int ret = 0; + + ndev = rx_ring->ndev; + pdata = netdev_priv(ndev); + dev = ndev_to_dev(rx_ring->ndev); + buf_pool = rx_ring->buf_pool; + + dma_unmap_single(dev, GET_VAL(DATAADDR, le64_to_cpu(raw_desc->m1)), + XGENE_ENET_MAX_MTU, DMA_FROM_DEVICE); + skb_index = GET_VAL(USERINFO, le64_to_cpu(raw_desc->m0)); + skb = buf_pool->rx_skb[skb_index]; + + /* checking for error */ + status = GET_VAL(LERR, le64_to_cpu(raw_desc->m0)); + if (unlikely(status > 2)) { + dev_kfree_skb_any(skb); + xgene_enet_parse_error(rx_ring, netdev_priv(rx_ring->ndev), + status); + pdata->stats.rx_dropped++; + ret = -EIO; + goto out; + } + + /* strip off CRC as HW isn't doing this */ + datalen = GET_VAL(BUFDATALEN, le64_to_cpu(raw_desc->m1)); + datalen -= 4; + prefetch(skb->data - NET_IP_ALIGN); + skb_put(skb, datalen); + + skb_checksum_none_assert(skb); + skb->protocol = eth_type_trans(skb, ndev); + if (likely((ndev->features & NETIF_F_IP_CSUM) && + skb->protocol == htons(ETH_P_IP))) { + xgene_enet_skip_csum(skb); + } + + pdata->stats.rx_packets++; + pdata->stats.rx_bytes += datalen; + napi_gro_receive(&rx_ring->napi, skb); +out: + if (--rx_ring->nbufpool == 0) { + ret = xgene_enet_refill_bufpool(buf_pool, NUM_BUFPOOL); + rx_ring->nbufpool = NUM_BUFPOOL; + } + + return ret; +} + +static bool is_rx_desc(struct xgene_enet_raw_desc *raw_desc) +{ + return GET_VAL(FPQNUM, le64_to_cpu(raw_desc->m0)) ? true : false; +} + +static int xgene_enet_process_ring(struct xgene_enet_desc_ring *ring, + int budget) +{ + struct xgene_enet_pdata *pdata = netdev_priv(ring->ndev); + struct xgene_enet_raw_desc *raw_desc; + u16 head = ring->head; + u16 slots = ring->slots - 1; + int ret, count = 0; + + do { + raw_desc = &ring->raw_desc[head]; + if (unlikely(xgene_enet_is_desc_slot_empty(raw_desc))) + break; + + if (is_rx_desc(raw_desc)) + ret = xgene_enet_rx_frame(ring, raw_desc); + else + ret = xgene_enet_tx_completion(ring, raw_desc); + xgene_enet_mark_desc_slot_empty(raw_desc); + + head = (head + 1) & slots; + count++; + + if (ret) + break; + } while (--budget); + + if (likely(count)) { + iowrite32(-count, ring->cmd); + ring->head = head; + + if (netif_queue_stopped(ring->ndev)) { + if (xgene_enet_ring_len(ring) < pdata->cp_qcnt_low) + netif_wake_queue(ring->ndev); + } + } + + return count; +} + +static int xgene_enet_napi(struct napi_struct *napi, const int budget) +{ + struct xgene_enet_desc_ring *ring; + int processed; + + ring = container_of(napi, struct xgene_enet_desc_ring, napi); + processed = xgene_enet_process_ring(ring, budget); + + if (processed != budget) { + napi_complete(napi); + enable_irq(ring->irq); + } + + return processed; +} + +static void xgene_enet_timeout(struct net_device *ndev) +{ + struct xgene_enet_pdata *pdata = netdev_priv(ndev); + + pdata->mac_ops->reset(pdata); +} + +static int xgene_enet_register_irq(struct net_device *ndev) +{ + struct xgene_enet_pdata *pdata = netdev_priv(ndev); + struct device *dev = ndev_to_dev(ndev); + int ret; + + ret = devm_request_irq(dev, pdata->rx_ring->irq, xgene_enet_rx_irq, + IRQF_SHARED, ndev->name, pdata->rx_ring); + if (ret) { + netdev_err(ndev, "rx%d interrupt request failed\n", + pdata->rx_ring->irq); + } + + return ret; +} + +static void xgene_enet_free_irq(struct net_device *ndev) +{ + struct xgene_enet_pdata *pdata; + struct device *dev; + + pdata = netdev_priv(ndev); + dev = ndev_to_dev(ndev); + devm_free_irq(dev, pdata->rx_ring->irq, pdata->rx_ring); +} + +static int xgene_enet_open(struct net_device *ndev) +{ + struct xgene_enet_pdata *pdata = netdev_priv(ndev); + struct xgene_mac_ops *mac_ops = pdata->mac_ops; + int ret; + + mac_ops->tx_enable(pdata); + mac_ops->rx_enable(pdata); + + ret = xgene_enet_register_irq(ndev); + if (ret) + return ret; + napi_enable(&pdata->rx_ring->napi); + + if (pdata->phy_mode == PHY_INTERFACE_MODE_RGMII) + phy_start(pdata->phy_dev); + else + schedule_delayed_work(&pdata->link_work, PHY_POLL_LINK_OFF); + + netif_start_queue(ndev); + + return ret; +} + +static int xgene_enet_close(struct net_device *ndev) +{ + struct xgene_enet_pdata *pdata = netdev_priv(ndev); + struct xgene_mac_ops *mac_ops = pdata->mac_ops; + + netif_stop_queue(ndev); + + if (pdata->phy_mode == PHY_INTERFACE_MODE_RGMII) + phy_stop(pdata->phy_dev); + else + cancel_delayed_work_sync(&pdata->link_work); + + napi_disable(&pdata->rx_ring->napi); + xgene_enet_free_irq(ndev); + xgene_enet_process_ring(pdata->rx_ring, -1); + + mac_ops->tx_disable(pdata); + mac_ops->rx_disable(pdata); + + return 0; +} + +static void xgene_enet_delete_ring(struct xgene_enet_desc_ring *ring) +{ + struct xgene_enet_pdata *pdata; + struct device *dev; + + pdata = netdev_priv(ring->ndev); + dev = ndev_to_dev(ring->ndev); + + xgene_enet_clear_ring(ring); + dma_free_coherent(dev, ring->size, ring->desc_addr, ring->dma); +} + +static void xgene_enet_delete_desc_rings(struct xgene_enet_pdata *pdata) +{ + struct xgene_enet_desc_ring *buf_pool; + + if (pdata->tx_ring) { + xgene_enet_delete_ring(pdata->tx_ring); + pdata->tx_ring = NULL; + } + + if (pdata->rx_ring) { + buf_pool = pdata->rx_ring->buf_pool; + xgene_enet_delete_bufpool(buf_pool); + xgene_enet_delete_ring(buf_pool); + xgene_enet_delete_ring(pdata->rx_ring); + pdata->rx_ring = NULL; + } +} + +static int xgene_enet_get_ring_size(struct device *dev, + enum xgene_enet_ring_cfgsize cfgsize) +{ + int size = -EINVAL; + + switch (cfgsize) { + case RING_CFGSIZE_512B: + size = 0x200; + break; + case RING_CFGSIZE_2KB: + size = 0x800; + break; + case RING_CFGSIZE_16KB: + size = 0x4000; + break; + case RING_CFGSIZE_64KB: + size = 0x10000; + break; + case RING_CFGSIZE_512KB: + size = 0x80000; + break; + default: + dev_err(dev, "Unsupported cfg ring size %d\n", cfgsize); + break; + } + + return size; +} + +static void xgene_enet_free_desc_ring(struct xgene_enet_desc_ring *ring) +{ + struct device *dev; + + if (!ring) + return; + + dev = ndev_to_dev(ring->ndev); + + if (ring->desc_addr) { + xgene_enet_clear_ring(ring); + dma_free_coherent(dev, ring->size, ring->desc_addr, ring->dma); + } + devm_kfree(dev, ring); +} + +static void xgene_enet_free_desc_rings(struct xgene_enet_pdata *pdata) +{ + struct device *dev = &pdata->pdev->dev; + struct xgene_enet_desc_ring *ring; + + ring = pdata->tx_ring; + if (ring && ring->cp_ring && ring->cp_ring->cp_skb) + devm_kfree(dev, ring->cp_ring->cp_skb); + xgene_enet_free_desc_ring(ring); + + ring = pdata->rx_ring; + if (ring && ring->buf_pool && ring->buf_pool->rx_skb) + devm_kfree(dev, ring->buf_pool->rx_skb); + xgene_enet_free_desc_ring(ring->buf_pool); + xgene_enet_free_desc_ring(ring); +} + +static struct xgene_enet_desc_ring *xgene_enet_create_desc_ring( + struct net_device *ndev, u32 ring_num, + enum xgene_enet_ring_cfgsize cfgsize, u32 ring_id) +{ + struct xgene_enet_desc_ring *ring; + struct xgene_enet_pdata *pdata = netdev_priv(ndev); + struct device *dev = ndev_to_dev(ndev); + u32 size; + + ring = devm_kzalloc(dev, sizeof(struct xgene_enet_desc_ring), + GFP_KERNEL); + if (!ring) + return NULL; + + ring->ndev = ndev; + ring->num = ring_num; + ring->cfgsize = cfgsize; + ring->id = ring_id; + + size = xgene_enet_get_ring_size(dev, cfgsize); + ring->desc_addr = dma_zalloc_coherent(dev, size, &ring->dma, + GFP_KERNEL); + if (!ring->desc_addr) { + devm_kfree(dev, ring); + return NULL; + } + ring->size = size; + + ring->cmd_base = pdata->ring_cmd_addr + (ring->num << 6); + ring->cmd = ring->cmd_base + INC_DEC_CMD_ADDR; + ring = xgene_enet_setup_ring(ring); + netdev_dbg(ndev, "ring info: num=%d size=%d id=%d slots=%d\n", + ring->num, ring->size, ring->id, ring->slots); + + return ring; +} + +static u16 xgene_enet_get_ring_id(enum xgene_ring_owner owner, u8 bufnum) +{ + return (owner << 6) | (bufnum & GENMASK(5, 0)); +} + +static int xgene_enet_create_desc_rings(struct net_device *ndev) +{ + struct xgene_enet_pdata *pdata = netdev_priv(ndev); + struct device *dev = ndev_to_dev(ndev); + struct xgene_enet_desc_ring *rx_ring, *tx_ring, *cp_ring; + struct xgene_enet_desc_ring *buf_pool = NULL; + u8 cpu_bufnum = 0, eth_bufnum = START_ETH_BUFNUM; + u8 bp_bufnum = START_BP_BUFNUM; + u16 ring_id, ring_num = START_RING_NUM; + int ret; + + /* allocate rx descriptor ring */ + ring_id = xgene_enet_get_ring_id(RING_OWNER_CPU, cpu_bufnum++); + rx_ring = xgene_enet_create_desc_ring(ndev, ring_num++, + RING_CFGSIZE_16KB, ring_id); + if (!rx_ring) { + ret = -ENOMEM; + goto err; + } + + /* allocate buffer pool for receiving packets */ + ring_id = xgene_enet_get_ring_id(RING_OWNER_ETH0, bp_bufnum++); + buf_pool = xgene_enet_create_desc_ring(ndev, ring_num++, + RING_CFGSIZE_2KB, ring_id); + if (!buf_pool) { + ret = -ENOMEM; + goto err; + } + + rx_ring->nbufpool = NUM_BUFPOOL; + rx_ring->buf_pool = buf_pool; + rx_ring->irq = pdata->rx_irq; + buf_pool->rx_skb = devm_kcalloc(dev, buf_pool->slots, + sizeof(struct sk_buff *), GFP_KERNEL); + if (!buf_pool->rx_skb) { + ret = -ENOMEM; + goto err; + } + + buf_pool->dst_ring_num = xgene_enet_dst_ring_num(buf_pool); + rx_ring->buf_pool = buf_pool; + pdata->rx_ring = rx_ring; + + /* allocate tx descriptor ring */ + ring_id = xgene_enet_get_ring_id(RING_OWNER_ETH0, eth_bufnum++); + tx_ring = xgene_enet_create_desc_ring(ndev, ring_num++, + RING_CFGSIZE_16KB, ring_id); + if (!tx_ring) { + ret = -ENOMEM; + goto err; + } + pdata->tx_ring = tx_ring; + + cp_ring = pdata->rx_ring; + cp_ring->cp_skb = devm_kcalloc(dev, tx_ring->slots, + sizeof(struct sk_buff *), GFP_KERNEL); + if (!cp_ring->cp_skb) { + ret = -ENOMEM; + goto err; + } + pdata->tx_ring->cp_ring = cp_ring; + pdata->tx_ring->dst_ring_num = xgene_enet_dst_ring_num(cp_ring); + + pdata->tx_qcnt_hi = pdata->tx_ring->slots / 2; + pdata->cp_qcnt_hi = pdata->rx_ring->slots / 2; + pdata->cp_qcnt_low = pdata->cp_qcnt_hi / 2; + + return 0; + +err: + xgene_enet_free_desc_rings(pdata); + return ret; +} + +static struct rtnl_link_stats64 *xgene_enet_get_stats64( + struct net_device *ndev, + struct rtnl_link_stats64 *storage) +{ + struct xgene_enet_pdata *pdata = netdev_priv(ndev); + struct rtnl_link_stats64 *stats = &pdata->stats; + + stats->rx_errors += stats->rx_length_errors + + stats->rx_crc_errors + + stats->rx_frame_errors + + stats->rx_fifo_errors; + memcpy(storage, &pdata->stats, sizeof(struct rtnl_link_stats64)); + + return storage; +} + +static int xgene_enet_set_mac_address(struct net_device *ndev, void *addr) +{ + struct xgene_enet_pdata *pdata = netdev_priv(ndev); + int ret; + + ret = eth_mac_addr(ndev, addr); + if (ret) + return ret; + pdata->mac_ops->set_mac_addr(pdata); + + return ret; +} + +static const struct net_device_ops xgene_ndev_ops = { + .ndo_open = xgene_enet_open, + .ndo_stop = xgene_enet_close, + .ndo_start_xmit = xgene_enet_start_xmit, + .ndo_tx_timeout = xgene_enet_timeout, + .ndo_get_stats64 = xgene_enet_get_stats64, + .ndo_change_mtu = eth_change_mtu, + .ndo_set_mac_address = xgene_enet_set_mac_address, +}; + +static int xgene_enet_get_resources(struct xgene_enet_pdata *pdata) +{ + struct platform_device *pdev; + struct net_device *ndev; + struct device *dev; + struct resource *res; + void __iomem *base_addr; + const char *mac; + int ret; + + pdev = pdata->pdev; + dev = &pdev->dev; + ndev = pdata->ndev; + + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "enet_csr"); + if (!res) { + dev_err(dev, "Resource enet_csr not defined\n"); + return -ENODEV; + } + pdata->base_addr = devm_ioremap_resource(dev, res); + if (IS_ERR(pdata->base_addr)) { + dev_err(dev, "Unable to retrieve ENET Port CSR region\n"); + return PTR_ERR(pdata->base_addr); + } + + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ring_csr"); + if (!res) { + dev_err(dev, "Resource ring_csr not defined\n"); + return -ENODEV; + } + pdata->ring_csr_addr = devm_ioremap_resource(dev, res); + if (IS_ERR(pdata->ring_csr_addr)) { + dev_err(dev, "Unable to retrieve ENET Ring CSR region\n"); + return PTR_ERR(pdata->ring_csr_addr); + } + + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ring_cmd"); + if (!res) { + dev_err(dev, "Resource ring_cmd not defined\n"); + return -ENODEV; + } + pdata->ring_cmd_addr = devm_ioremap_resource(dev, res); + if (IS_ERR(pdata->ring_cmd_addr)) { + dev_err(dev, "Unable to retrieve ENET Ring command region\n"); + return PTR_ERR(pdata->ring_cmd_addr); + } + + ret = platform_get_irq(pdev, 0); + if (ret <= 0) { + dev_err(dev, "Unable to get ENET Rx IRQ\n"); + ret = ret ? : -ENXIO; + return ret; + } + pdata->rx_irq = ret; + + mac = of_get_mac_address(dev->of_node); + if (mac) + memcpy(ndev->dev_addr, mac, ndev->addr_len); + else + eth_hw_addr_random(ndev); + memcpy(ndev->perm_addr, ndev->dev_addr, ndev->addr_len); + + pdata->phy_mode = of_get_phy_mode(pdev->dev.of_node); + if (pdata->phy_mode < 0) { + dev_err(dev, "Unable to get phy-connection-type\n"); + return pdata->phy_mode; + } + if (pdata->phy_mode != PHY_INTERFACE_MODE_RGMII && + pdata->phy_mode != PHY_INTERFACE_MODE_SGMII && + pdata->phy_mode != PHY_INTERFACE_MODE_XGMII) { + dev_err(dev, "Incorrect phy-connection-type specified\n"); + return -ENODEV; + } + + pdata->clk = devm_clk_get(&pdev->dev, NULL); + ret = IS_ERR(pdata->clk); + if (IS_ERR(pdata->clk)) { + dev_err(&pdev->dev, "can't get clock\n"); + ret = PTR_ERR(pdata->clk); + return ret; + } + + base_addr = pdata->base_addr; + pdata->eth_csr_addr = base_addr + BLOCK_ETH_CSR_OFFSET; + pdata->eth_ring_if_addr = base_addr + BLOCK_ETH_RING_IF_OFFSET; + pdata->eth_diag_csr_addr = base_addr + BLOCK_ETH_DIAG_CSR_OFFSET; + if (pdata->phy_mode == PHY_INTERFACE_MODE_RGMII || + pdata->phy_mode == PHY_INTERFACE_MODE_SGMII) { + pdata->mcx_mac_addr = base_addr + BLOCK_ETH_MAC_OFFSET; + pdata->mcx_mac_csr_addr = base_addr + BLOCK_ETH_MAC_CSR_OFFSET; + } else { + pdata->mcx_mac_addr = base_addr + BLOCK_AXG_MAC_OFFSET; + pdata->mcx_mac_csr_addr = base_addr + BLOCK_AXG_MAC_CSR_OFFSET; + } + pdata->rx_buff_cnt = NUM_PKT_BUF; + + return 0; +} + +static int xgene_enet_init_hw(struct xgene_enet_pdata *pdata) +{ + struct net_device *ndev = pdata->ndev; + struct xgene_enet_desc_ring *buf_pool; + u16 dst_ring_num; + int ret; + + ret = pdata->port_ops->reset(pdata); + if (ret) + return ret; + + ret = xgene_enet_create_desc_rings(ndev); + if (ret) { + netdev_err(ndev, "Error in ring configuration\n"); + return ret; + } + + /* setup buffer pool */ + buf_pool = pdata->rx_ring->buf_pool; + xgene_enet_init_bufpool(buf_pool); + ret = xgene_enet_refill_bufpool(buf_pool, pdata->rx_buff_cnt); + if (ret) { + xgene_enet_delete_desc_rings(pdata); + return ret; + } + + dst_ring_num = xgene_enet_dst_ring_num(pdata->rx_ring); + pdata->port_ops->cle_bypass(pdata, dst_ring_num, buf_pool->id); + pdata->mac_ops->init(pdata); + + return ret; +} + +static void xgene_enet_setup_ops(struct xgene_enet_pdata *pdata) +{ + switch (pdata->phy_mode) { + case PHY_INTERFACE_MODE_RGMII: + pdata->mac_ops = &xgene_gmac_ops; + pdata->port_ops = &xgene_gport_ops; + pdata->rm = RM3; + break; + case PHY_INTERFACE_MODE_SGMII: + pdata->mac_ops = &xgene_sgmac_ops; + pdata->port_ops = &xgene_sgport_ops; + pdata->rm = RM1; + break; + default: + pdata->mac_ops = &xgene_xgmac_ops; + pdata->port_ops = &xgene_xgport_ops; + pdata->rm = RM0; + break; + } +} + +static int xgene_enet_probe(struct platform_device *pdev) +{ + struct net_device *ndev; + struct xgene_enet_pdata *pdata; + struct device *dev = &pdev->dev; + struct napi_struct *napi; + struct xgene_mac_ops *mac_ops; + int ret; + + ndev = alloc_etherdev(sizeof(struct xgene_enet_pdata)); + if (!ndev) + return -ENOMEM; + + pdata = netdev_priv(ndev); + + pdata->pdev = pdev; + pdata->ndev = ndev; + SET_NETDEV_DEV(ndev, dev); + platform_set_drvdata(pdev, pdata); + ndev->netdev_ops = &xgene_ndev_ops; + xgene_enet_set_ethtool_ops(ndev); + ndev->features |= NETIF_F_IP_CSUM | + NETIF_F_GSO | + NETIF_F_GRO; + + ret = xgene_enet_get_resources(pdata); + if (ret) + goto err; + + xgene_enet_setup_ops(pdata); + + ret = register_netdev(ndev); + if (ret) { + netdev_err(ndev, "Failed to register netdev\n"); + goto err; + } + + ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64)); + if (ret) { + netdev_err(ndev, "No usable DMA configuration\n"); + goto err; + } + + ret = xgene_enet_init_hw(pdata); + if (ret) + goto err; + + napi = &pdata->rx_ring->napi; + netif_napi_add(ndev, napi, xgene_enet_napi, NAPI_POLL_WEIGHT); + mac_ops = pdata->mac_ops; + if (pdata->phy_mode == PHY_INTERFACE_MODE_RGMII) + ret = xgene_enet_mdio_config(pdata); + else + INIT_DELAYED_WORK(&pdata->link_work, mac_ops->link_state); + + return ret; +err: + unregister_netdev(ndev); + free_netdev(ndev); + return ret; +} + +static int xgene_enet_remove(struct platform_device *pdev) +{ + struct xgene_enet_pdata *pdata; + struct xgene_mac_ops *mac_ops; + struct net_device *ndev; + + pdata = platform_get_drvdata(pdev); + mac_ops = pdata->mac_ops; + ndev = pdata->ndev; + + mac_ops->rx_disable(pdata); + mac_ops->tx_disable(pdata); + + netif_napi_del(&pdata->rx_ring->napi); + xgene_enet_mdio_remove(pdata); + xgene_enet_delete_desc_rings(pdata); + unregister_netdev(ndev); + pdata->port_ops->shutdown(pdata); + free_netdev(ndev); + + return 0; +} + +static struct of_device_id xgene_enet_match[] = { + {.compatible = "apm,xgene-enet",}, + {}, +}; + +MODULE_DEVICE_TABLE(of, xgene_enet_match); + +static struct platform_driver xgene_enet_driver = { + .driver = { + .name = "xgene-enet", + .of_match_table = xgene_enet_match, + }, + .probe = xgene_enet_probe, + .remove = xgene_enet_remove, +}; + +module_platform_driver(xgene_enet_driver); + +MODULE_DESCRIPTION("APM X-Gene SoC Ethernet driver"); +MODULE_VERSION(XGENE_DRV_VERSION); +MODULE_AUTHOR("Iyappan Subramanian "); +MODULE_AUTHOR("Keyur Chudgar "); +MODULE_LICENSE("GPL"); --- linux-3.13.0.orig/drivers/net/ethernet/apm/xgene/xgene_enet_main.h +++ linux-3.13.0/drivers/net/ethernet/apm/xgene/xgene_enet_main.h @@ -0,0 +1,167 @@ +/* Applied Micro X-Gene SoC Ethernet Driver + * + * Copyright (c) 2014, Applied Micro Circuits Corporation + * Authors: Iyappan Subramanian + * Ravi Patel + * Keyur Chudgar + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef __XGENE_ENET_MAIN_H__ +#define __XGENE_ENET_MAIN_H__ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "xgene_enet_hw.h" + +#define XGENE_DRV_VERSION "v1.0" +#define XGENE_ENET_MAX_MTU 1536 +#define SKB_BUFFER_SIZE (XGENE_ENET_MAX_MTU - NET_IP_ALIGN) +#define NUM_PKT_BUF 64 +#define NUM_BUFPOOL 32 +#define START_ETH_BUFNUM 2 +#define START_BP_BUFNUM 0x22 +#define START_RING_NUM 8 + +#define PHY_POLL_LINK_ON (10 * HZ) +#define PHY_POLL_LINK_OFF (PHY_POLL_LINK_ON / 5) + +/* software context of a descriptor ring */ +struct xgene_enet_desc_ring { + struct net_device *ndev; + u16 id; + u16 num; + u16 head; + u16 tail; + u16 slots; + u16 irq; + u32 size; + u32 state[NUM_RING_CONFIG]; + void __iomem *cmd_base; + void __iomem *cmd; + dma_addr_t dma; + u16 dst_ring_num; + u8 nbufpool; + struct sk_buff *(*rx_skb); + struct sk_buff *(*cp_skb); + enum xgene_enet_ring_cfgsize cfgsize; + struct xgene_enet_desc_ring *cp_ring; + struct xgene_enet_desc_ring *buf_pool; + struct napi_struct napi; + union { + void *desc_addr; + struct xgene_enet_raw_desc *raw_desc; + struct xgene_enet_raw_desc16 *raw_desc16; + }; +}; + +struct xgene_mac_ops { + void (*init)(struct xgene_enet_pdata *pdata); + void (*reset)(struct xgene_enet_pdata *pdata); + void (*tx_enable)(struct xgene_enet_pdata *pdata); + void (*rx_enable)(struct xgene_enet_pdata *pdata); + void (*tx_disable)(struct xgene_enet_pdata *pdata); + void (*rx_disable)(struct xgene_enet_pdata *pdata); + void (*set_mac_addr)(struct xgene_enet_pdata *pdata); + void (*link_state)(struct work_struct *work); +}; + +struct xgene_port_ops { + int (*reset)(struct xgene_enet_pdata *pdata); + void (*cle_bypass)(struct xgene_enet_pdata *pdata, + u32 dst_ring_num, u16 bufpool_id); + void (*shutdown)(struct xgene_enet_pdata *pdata); +}; + +/* ethernet private data */ +struct xgene_enet_pdata { + struct net_device *ndev; + struct mii_bus *mdio_bus; + struct phy_device *phy_dev; + int phy_speed; + struct clk *clk; + struct platform_device *pdev; + struct xgene_enet_desc_ring *tx_ring; + struct xgene_enet_desc_ring *rx_ring; + char *dev_name; + u32 rx_buff_cnt; + u32 tx_qcnt_hi; + u32 cp_qcnt_hi; + u32 cp_qcnt_low; + u32 rx_irq; + void __iomem *eth_csr_addr; + void __iomem *eth_ring_if_addr; + void __iomem *eth_diag_csr_addr; + void __iomem *mcx_mac_addr; + void __iomem *mcx_mac_csr_addr; + void __iomem *base_addr; + void __iomem *ring_csr_addr; + void __iomem *ring_cmd_addr; + int phy_mode; + enum xgene_enet_rm rm; + struct rtnl_link_stats64 stats; + struct xgene_mac_ops *mac_ops; + struct xgene_port_ops *port_ops; + struct delayed_work link_work; +}; + +struct xgene_indirect_ctl { + void __iomem *addr; + void __iomem *ctl; + void __iomem *cmd; + void __iomem *cmd_done; +}; + +/* Set the specified value into a bit-field defined by its starting position + * and length within a single u64. + */ +static inline u64 xgene_enet_set_field_value(int pos, int len, u64 val) +{ + return (val & ((1ULL << len) - 1)) << pos; +} + +#define SET_VAL(field, val) \ + xgene_enet_set_field_value(field ## _POS, field ## _LEN, val) + +#define SET_BIT(field) \ + xgene_enet_set_field_value(field ## _POS, 1, 1) + +/* Get the value from a bit-field defined by its starting position + * and length within the specified u64. + */ +static inline u64 xgene_enet_get_field_value(int pos, int len, u64 src) +{ + return (src >> pos) & ((1ULL << len) - 1); +} + +#define GET_VAL(field, src) \ + xgene_enet_get_field_value(field ## _POS, field ## _LEN, src) + +static inline struct device *ndev_to_dev(struct net_device *ndev) +{ + return ndev->dev.parent; +} + +void xgene_enet_set_ethtool_ops(struct net_device *netdev); + +#endif /* __XGENE_ENET_MAIN_H__ */ --- linux-3.13.0.orig/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c +++ linux-3.13.0/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c @@ -0,0 +1,392 @@ +/* Applied Micro X-Gene SoC Ethernet Driver + * + * Copyright (c) 2014, Applied Micro Circuits Corporation + * Authors: Iyappan Subramanian + * Keyur Chudgar + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "xgene_enet_main.h" +#include "xgene_enet_hw.h" +#include "xgene_enet_sgmac.h" + +static void xgene_enet_wr_csr(struct xgene_enet_pdata *p, u32 offset, u32 val) +{ + iowrite32(val, p->eth_csr_addr + offset); +} + +static void xgene_enet_wr_ring_if(struct xgene_enet_pdata *p, + u32 offset, u32 val) +{ + iowrite32(val, p->eth_ring_if_addr + offset); +} + +static void xgene_enet_wr_diag_csr(struct xgene_enet_pdata *p, + u32 offset, u32 val) +{ + iowrite32(val, p->eth_diag_csr_addr + offset); +} + +static bool xgene_enet_wr_indirect(struct xgene_indirect_ctl *ctl, + u32 wr_addr, u32 wr_data) +{ + int i; + + iowrite32(wr_addr, ctl->addr); + iowrite32(wr_data, ctl->ctl); + iowrite32(XGENE_ENET_WR_CMD, ctl->cmd); + + /* wait for write command to complete */ + for (i = 0; i < 10; i++) { + if (ioread32(ctl->cmd_done)) { + iowrite32(0, ctl->cmd); + return true; + } + udelay(1); + } + + return false; +} + +static void xgene_enet_wr_mac(struct xgene_enet_pdata *p, + u32 wr_addr, u32 wr_data) +{ + struct xgene_indirect_ctl ctl = { + .addr = p->mcx_mac_addr + MAC_ADDR_REG_OFFSET, + .ctl = p->mcx_mac_addr + MAC_WRITE_REG_OFFSET, + .cmd = p->mcx_mac_addr + MAC_COMMAND_REG_OFFSET, + .cmd_done = p->mcx_mac_addr + MAC_COMMAND_DONE_REG_OFFSET + }; + + if (!xgene_enet_wr_indirect(&ctl, wr_addr, wr_data)) + netdev_err(p->ndev, "mac write failed, addr: %04x\n", wr_addr); +} + +static u32 xgene_enet_rd_csr(struct xgene_enet_pdata *p, u32 offset) +{ + return ioread32(p->eth_csr_addr + offset); +} + +static u32 xgene_enet_rd_diag_csr(struct xgene_enet_pdata *p, u32 offset) +{ + return ioread32(p->eth_diag_csr_addr + offset); +} + +static u32 xgene_enet_rd_indirect(struct xgene_indirect_ctl *ctl, u32 rd_addr) +{ + u32 rd_data; + int i; + + iowrite32(rd_addr, ctl->addr); + iowrite32(XGENE_ENET_RD_CMD, ctl->cmd); + + /* wait for read command to complete */ + for (i = 0; i < 10; i++) { + if (ioread32(ctl->cmd_done)) { + rd_data = ioread32(ctl->ctl); + iowrite32(0, ctl->cmd); + + return rd_data; + } + udelay(1); + } + + pr_err("%s: mac read failed, addr: %04x\n", __func__, rd_addr); + + return 0; +} + +static u32 xgene_enet_rd_mac(struct xgene_enet_pdata *p, u32 rd_addr) +{ + struct xgene_indirect_ctl ctl = { + .addr = p->mcx_mac_addr + MAC_ADDR_REG_OFFSET, + .ctl = p->mcx_mac_addr + MAC_READ_REG_OFFSET, + .cmd = p->mcx_mac_addr + MAC_COMMAND_REG_OFFSET, + .cmd_done = p->mcx_mac_addr + MAC_COMMAND_DONE_REG_OFFSET + }; + + return xgene_enet_rd_indirect(&ctl, rd_addr); +} + +static int xgene_enet_ecc_init(struct xgene_enet_pdata *p) +{ + struct net_device *ndev = p->ndev; + u32 data; + int i = 0; + + xgene_enet_wr_diag_csr(p, ENET_CFG_MEM_RAM_SHUTDOWN_ADDR, 0); + do { + usleep_range(100, 110); + data = xgene_enet_rd_diag_csr(p, ENET_BLOCK_MEM_RDY_ADDR); + if (data == ~0U) + return 0; + } while (++i < 10); + + netdev_err(ndev, "Failed to release memory from shutdown\n"); + return -ENODEV; +} + +static void xgene_enet_config_ring_if_assoc(struct xgene_enet_pdata *p) +{ + u32 val = 0xffffffff; + + xgene_enet_wr_ring_if(p, ENET_CFGSSQMIWQASSOC_ADDR, val); + xgene_enet_wr_ring_if(p, ENET_CFGSSQMIFPQASSOC_ADDR, val); +} + +static void xgene_mii_phy_write(struct xgene_enet_pdata *p, u8 phy_id, + u32 reg, u16 data) +{ + u32 addr, wr_data, done; + int i; + + addr = PHY_ADDR(phy_id) | REG_ADDR(reg); + xgene_enet_wr_mac(p, MII_MGMT_ADDRESS_ADDR, addr); + + wr_data = PHY_CONTROL(data); + xgene_enet_wr_mac(p, MII_MGMT_CONTROL_ADDR, wr_data); + + for (i = 0; i < 10; i++) { + done = xgene_enet_rd_mac(p, MII_MGMT_INDICATORS_ADDR); + if (!(done & BUSY_MASK)) + return; + usleep_range(10, 20); + } + + netdev_err(p->ndev, "MII_MGMT write failed\n"); +} + +static u32 xgene_mii_phy_read(struct xgene_enet_pdata *p, u8 phy_id, u32 reg) +{ + u32 addr, data, done; + int i; + + addr = PHY_ADDR(phy_id) | REG_ADDR(reg); + xgene_enet_wr_mac(p, MII_MGMT_ADDRESS_ADDR, addr); + xgene_enet_wr_mac(p, MII_MGMT_COMMAND_ADDR, READ_CYCLE_MASK); + + for (i = 0; i < 10; i++) { + done = xgene_enet_rd_mac(p, MII_MGMT_INDICATORS_ADDR); + if (!(done & BUSY_MASK)) { + data = xgene_enet_rd_mac(p, MII_MGMT_STATUS_ADDR); + xgene_enet_wr_mac(p, MII_MGMT_COMMAND_ADDR, 0); + + return data; + } + usleep_range(10, 20); + } + + netdev_err(p->ndev, "MII_MGMT read failed\n"); + + return 0; +} + +static void xgene_sgmac_reset(struct xgene_enet_pdata *p) +{ + xgene_enet_wr_mac(p, MAC_CONFIG_1_ADDR, SOFT_RESET1); + xgene_enet_wr_mac(p, MAC_CONFIG_1_ADDR, 0); +} + +static void xgene_sgmac_set_mac_addr(struct xgene_enet_pdata *p) +{ + u32 addr0, addr1; + u8 *dev_addr = p->ndev->dev_addr; + + addr0 = (dev_addr[3] << 24) | (dev_addr[2] << 16) | + (dev_addr[1] << 8) | dev_addr[0]; + xgene_enet_wr_mac(p, STATION_ADDR0_ADDR, addr0); + + addr1 = xgene_enet_rd_mac(p, STATION_ADDR1_ADDR); + addr1 |= (dev_addr[5] << 24) | (dev_addr[4] << 16); + xgene_enet_wr_mac(p, STATION_ADDR1_ADDR, addr1); +} + +static u32 xgene_enet_link_status(struct xgene_enet_pdata *p) +{ + u32 data; + + data = xgene_mii_phy_read(p, INT_PHY_ADDR, + SGMII_BASE_PAGE_ABILITY_ADDR >> 2); + + return data & LINK_UP; +} + +static void xgene_sgmac_init(struct xgene_enet_pdata *p) +{ + u32 data, loop = 10; + + xgene_sgmac_reset(p); + + /* Enable auto-negotiation */ + xgene_mii_phy_write(p, INT_PHY_ADDR, SGMII_CONTROL_ADDR >> 2, 0x1000); + xgene_mii_phy_write(p, INT_PHY_ADDR, SGMII_TBI_CONTROL_ADDR >> 2, 0); + + while (loop--) { + data = xgene_mii_phy_read(p, INT_PHY_ADDR, + SGMII_STATUS_ADDR >> 2); + if ((data & AUTO_NEG_COMPLETE) && (data & LINK_STATUS)) + break; + usleep_range(10, 20); + } + if (!(data & AUTO_NEG_COMPLETE) || !(data & LINK_STATUS)) + netdev_err(p->ndev, "Auto-negotiation failed\n"); + + data = xgene_enet_rd_mac(p, MAC_CONFIG_2_ADDR); + ENET_INTERFACE_MODE2_SET(&data, 2); + xgene_enet_wr_mac(p, MAC_CONFIG_2_ADDR, data | FULL_DUPLEX2); + xgene_enet_wr_mac(p, INTERFACE_CONTROL_ADDR, ENET_GHD_MODE); + + data = xgene_enet_rd_csr(p, ENET_SPARE_CFG_REG_ADDR); + data |= MPA_IDLE_WITH_QMI_EMPTY; + xgene_enet_wr_csr(p, ENET_SPARE_CFG_REG_ADDR, data); + + xgene_sgmac_set_mac_addr(p); + + data = xgene_enet_rd_csr(p, DEBUG_REG_ADDR); + data |= CFG_BYPASS_UNISEC_TX | CFG_BYPASS_UNISEC_RX; + xgene_enet_wr_csr(p, DEBUG_REG_ADDR, data); + + /* Adjust MDC clock frequency */ + data = xgene_enet_rd_mac(p, MII_MGMT_CONFIG_ADDR); + MGMT_CLOCK_SEL_SET(&data, 7); + xgene_enet_wr_mac(p, MII_MGMT_CONFIG_ADDR, data); + + /* Enable drop if bufpool not available */ + data = xgene_enet_rd_csr(p, RSIF_CONFIG_REG_ADDR); + data |= CFG_RSIF_FPBUFF_TIMEOUT_EN; + xgene_enet_wr_csr(p, RSIF_CONFIG_REG_ADDR, data); + + /* Rtype should be copied from FP */ + xgene_enet_wr_csr(p, RSIF_RAM_DBG_REG0_ADDR, 0); + + /* Bypass traffic gating */ + xgene_enet_wr_csr(p, CFG_LINK_AGGR_RESUME_0_ADDR, TX_PORT0); + xgene_enet_wr_csr(p, CFG_BYPASS_ADDR, RESUME_TX); + xgene_enet_wr_csr(p, SG_RX_DV_GATE_REG_0_ADDR, RESUME_RX0); +} + +static void xgene_sgmac_rxtx(struct xgene_enet_pdata *p, u32 bits, bool set) +{ + u32 data; + + data = xgene_enet_rd_mac(p, MAC_CONFIG_1_ADDR); + + if (set) + data |= bits; + else + data &= ~bits; + + xgene_enet_wr_mac(p, MAC_CONFIG_1_ADDR, data); +} + +static void xgene_sgmac_rx_enable(struct xgene_enet_pdata *p) +{ + xgene_sgmac_rxtx(p, RX_EN, true); +} + +static void xgene_sgmac_tx_enable(struct xgene_enet_pdata *p) +{ + xgene_sgmac_rxtx(p, TX_EN, true); +} + +static void xgene_sgmac_rx_disable(struct xgene_enet_pdata *p) +{ + xgene_sgmac_rxtx(p, RX_EN, false); +} + +static void xgene_sgmac_tx_disable(struct xgene_enet_pdata *p) +{ + xgene_sgmac_rxtx(p, TX_EN, false); +} + +static int xgene_enet_reset(struct xgene_enet_pdata *p) +{ + if (!xgene_ring_mgr_init(p)) + return -ENODEV; + + clk_prepare_enable(p->clk); + clk_disable_unprepare(p->clk); + clk_prepare_enable(p->clk); + + xgene_enet_ecc_init(p); + xgene_enet_config_ring_if_assoc(p); + + return 0; +} + +static void xgene_enet_cle_bypass(struct xgene_enet_pdata *p, + u32 dst_ring_num, u16 bufpool_id) +{ + u32 data, fpsel; + + data = CFG_CLE_BYPASS_EN0; + xgene_enet_wr_csr(p, CLE_BYPASS_REG0_0_ADDR, data); + + fpsel = xgene_enet_ring_bufnum(bufpool_id) - 0x20; + data = CFG_CLE_DSTQID0(dst_ring_num) | CFG_CLE_FPSEL0(fpsel); + xgene_enet_wr_csr(p, CLE_BYPASS_REG1_0_ADDR, data); +} + +static void xgene_enet_shutdown(struct xgene_enet_pdata *p) +{ + clk_disable_unprepare(p->clk); +} + +static void xgene_enet_link_state(struct work_struct *work) +{ + struct xgene_enet_pdata *p = container_of(to_delayed_work(work), + struct xgene_enet_pdata, link_work); + struct net_device *ndev = p->ndev; + u32 link, poll_interval; + + link = xgene_enet_link_status(p); + if (link) { + if (!netif_carrier_ok(ndev)) { + netif_carrier_on(ndev); + xgene_sgmac_init(p); + xgene_sgmac_rx_enable(p); + xgene_sgmac_tx_enable(p); + netdev_info(ndev, "Link is Up - 1Gbps\n"); + } + poll_interval = PHY_POLL_LINK_ON; + } else { + if (netif_carrier_ok(ndev)) { + xgene_sgmac_rx_disable(p); + xgene_sgmac_tx_disable(p); + netif_carrier_off(ndev); + netdev_info(ndev, "Link is Down\n"); + } + poll_interval = PHY_POLL_LINK_OFF; + } + + schedule_delayed_work(&p->link_work, poll_interval); +} + +struct xgene_mac_ops xgene_sgmac_ops = { + .init = xgene_sgmac_init, + .reset = xgene_sgmac_reset, + .rx_enable = xgene_sgmac_rx_enable, + .tx_enable = xgene_sgmac_tx_enable, + .rx_disable = xgene_sgmac_rx_disable, + .tx_disable = xgene_sgmac_tx_disable, + .set_mac_addr = xgene_sgmac_set_mac_addr, + .link_state = xgene_enet_link_state +}; + +struct xgene_port_ops xgene_sgport_ops = { + .reset = xgene_enet_reset, + .cle_bypass = xgene_enet_cle_bypass, + .shutdown = xgene_enet_shutdown +}; --- linux-3.13.0.orig/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.h +++ linux-3.13.0/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.h @@ -0,0 +1,41 @@ +/* Applied Micro X-Gene SoC Ethernet Driver + * + * Copyright (c) 2014, Applied Micro Circuits Corporation + * Authors: Iyappan Subramanian + * Keyur Chudgar + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef __XGENE_ENET_SGMAC_H__ +#define __XGENE_ENET_SGMAC_H__ + +#define PHY_ADDR(src) (((src)<<8) & GENMASK(12, 8)) +#define REG_ADDR(src) ((src) & GENMASK(4, 0)) +#define PHY_CONTROL(src) ((src) & GENMASK(15, 0)) +#define INT_PHY_ADDR 0x1e +#define SGMII_TBI_CONTROL_ADDR 0x44 +#define SGMII_CONTROL_ADDR 0x00 +#define SGMII_STATUS_ADDR 0x04 +#define SGMII_BASE_PAGE_ABILITY_ADDR 0x14 +#define AUTO_NEG_COMPLETE BIT(5) +#define LINK_STATUS BIT(2) +#define LINK_UP BIT(15) +#define MPA_IDLE_WITH_QMI_EMPTY BIT(12) +#define SG_RX_DV_GATE_REG_0_ADDR 0x0dfc + +extern struct xgene_mac_ops xgene_sgmac_ops; +extern struct xgene_port_ops xgene_sgport_ops; + +#endif /* __XGENE_ENET_SGMAC_H__ */ --- linux-3.13.0.orig/drivers/net/ethernet/apm/xgene/xgene_enet_xgmac.c +++ linux-3.13.0/drivers/net/ethernet/apm/xgene/xgene_enet_xgmac.c @@ -0,0 +1,337 @@ +/* Applied Micro X-Gene SoC Ethernet Driver + * + * Copyright (c) 2014, Applied Micro Circuits Corporation + * Authors: Iyappan Subramanian + * Keyur Chudgar + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "xgene_enet_main.h" +#include "xgene_enet_hw.h" +#include "xgene_enet_xgmac.h" + +static void xgene_enet_wr_csr(struct xgene_enet_pdata *pdata, + u32 offset, u32 val) +{ + void __iomem *addr = pdata->eth_csr_addr + offset; + + iowrite32(val, addr); +} + +static void xgene_enet_wr_ring_if(struct xgene_enet_pdata *pdata, + u32 offset, u32 val) +{ + void __iomem *addr = pdata->eth_ring_if_addr + offset; + + iowrite32(val, addr); +} + +static void xgene_enet_wr_diag_csr(struct xgene_enet_pdata *pdata, + u32 offset, u32 val) +{ + void __iomem *addr = pdata->eth_diag_csr_addr + offset; + + iowrite32(val, addr); +} + +static bool xgene_enet_wr_indirect(void __iomem *addr, void __iomem *wr, + void __iomem *cmd, void __iomem *cmd_done, + u32 wr_addr, u32 wr_data) +{ + u32 done; + u8 wait = 10; + + iowrite32(wr_addr, addr); + iowrite32(wr_data, wr); + iowrite32(XGENE_ENET_WR_CMD, cmd); + + /* wait for write command to complete */ + while (!(done = ioread32(cmd_done)) && wait--) + udelay(1); + + if (!done) + return false; + + iowrite32(0, cmd); + + return true; +} + +static void xgene_enet_wr_mac(struct xgene_enet_pdata *pdata, + u32 wr_addr, u32 wr_data) +{ + void __iomem *addr, *wr, *cmd, *cmd_done; + + addr = pdata->mcx_mac_addr + MAC_ADDR_REG_OFFSET; + wr = pdata->mcx_mac_addr + MAC_WRITE_REG_OFFSET; + cmd = pdata->mcx_mac_addr + MAC_COMMAND_REG_OFFSET; + cmd_done = pdata->mcx_mac_addr + MAC_COMMAND_DONE_REG_OFFSET; + + if (!xgene_enet_wr_indirect(addr, wr, cmd, cmd_done, wr_addr, wr_data)) + netdev_err(pdata->ndev, "MCX mac write failed, addr: %04x\n", + wr_addr); +} + +static void xgene_enet_rd_csr(struct xgene_enet_pdata *pdata, + u32 offset, u32 *val) +{ + void __iomem *addr = pdata->eth_csr_addr + offset; + + *val = ioread32(addr); +} + +static void xgene_enet_rd_diag_csr(struct xgene_enet_pdata *pdata, + u32 offset, u32 *val) +{ + void __iomem *addr = pdata->eth_diag_csr_addr + offset; + + *val = ioread32(addr); +} + +static bool xgene_enet_rd_indirect(void __iomem *addr, void __iomem *rd, + void __iomem *cmd, void __iomem *cmd_done, + u32 rd_addr, u32 *rd_data) +{ + u32 done; + u8 wait = 10; + + iowrite32(rd_addr, addr); + iowrite32(XGENE_ENET_RD_CMD, cmd); + + /* wait for read command to complete */ + while (!(done = ioread32(cmd_done)) && wait--) + udelay(1); + + if (!done) + return false; + + *rd_data = ioread32(rd); + iowrite32(0, cmd); + + return true; +} + +static void xgene_enet_rd_mac(struct xgene_enet_pdata *pdata, + u32 rd_addr, u32 *rd_data) +{ + void __iomem *addr, *rd, *cmd, *cmd_done; + + addr = pdata->mcx_mac_addr + MAC_ADDR_REG_OFFSET; + rd = pdata->mcx_mac_addr + MAC_READ_REG_OFFSET; + cmd = pdata->mcx_mac_addr + MAC_COMMAND_REG_OFFSET; + cmd_done = pdata->mcx_mac_addr + MAC_COMMAND_DONE_REG_OFFSET; + + if (!xgene_enet_rd_indirect(addr, rd, cmd, cmd_done, rd_addr, rd_data)) + netdev_err(pdata->ndev, "MCX mac read failed, addr: %04x\n", + rd_addr); +} + +static int xgene_enet_ecc_init(struct xgene_enet_pdata *pdata) +{ + struct net_device *ndev = pdata->ndev; + u32 data; + u8 wait = 10; + + xgene_enet_wr_diag_csr(pdata, ENET_CFG_MEM_RAM_SHUTDOWN_ADDR, 0x0); + do { + usleep_range(100, 110); + xgene_enet_rd_diag_csr(pdata, ENET_BLOCK_MEM_RDY_ADDR, &data); + } while ((data != 0xffffffff) && wait--); + + if (data != 0xffffffff) { + netdev_err(ndev, "Failed to release memory from shutdown\n"); + return -ENODEV; + } + + return 0; +} + +static void xgene_enet_config_ring_if_assoc(struct xgene_enet_pdata *pdata) +{ + xgene_enet_wr_ring_if(pdata, ENET_CFGSSQMIWQASSOC_ADDR, 0); + xgene_enet_wr_ring_if(pdata, ENET_CFGSSQMIFPQASSOC_ADDR, 0); + xgene_enet_wr_ring_if(pdata, ENET_CFGSSQMIQMLITEWQASSOC_ADDR, 0); + xgene_enet_wr_ring_if(pdata, ENET_CFGSSQMIQMLITEFPQASSOC_ADDR, 0); +} + +static void xgene_xgmac_reset(struct xgene_enet_pdata *pdata) +{ + xgene_enet_wr_mac(pdata, AXGMAC_CONFIG_0, HSTMACRST); + xgene_enet_wr_mac(pdata, AXGMAC_CONFIG_0, 0); +} + +static void xgene_xgmac_set_mac_addr(struct xgene_enet_pdata *pdata) +{ + u32 addr0, addr1; + u8 *dev_addr = pdata->ndev->dev_addr; + + addr0 = (dev_addr[3] << 24) | (dev_addr[2] << 16) | + (dev_addr[1] << 8) | dev_addr[0]; + addr1 = (dev_addr[5] << 24) | (dev_addr[4] << 16); + + xgene_enet_wr_mac(pdata, HSTMACADR_LSW_ADDR, addr0); + xgene_enet_wr_mac(pdata, HSTMACADR_MSW_ADDR, addr1); +} + +static u32 xgene_enet_link_status(struct xgene_enet_pdata *pdata) +{ + u32 data; + + xgene_enet_rd_csr(pdata, XG_LINK_STATUS_ADDR, &data); + + return data; +} + +static void xgene_xgmac_init(struct xgene_enet_pdata *pdata) +{ + u32 data; + + xgene_xgmac_reset(pdata); + + xgene_enet_rd_mac(pdata, AXGMAC_CONFIG_1, &data); + data |= HSTPPEN; + data &= ~HSTLENCHK; + xgene_enet_wr_mac(pdata, AXGMAC_CONFIG_1, data); + + xgene_enet_wr_mac(pdata, HSTMAXFRAME_LENGTH_ADDR, 0x06000600); + xgene_xgmac_set_mac_addr(pdata); + + xgene_enet_rd_csr(pdata, XG_RSIF_CONFIG_REG_ADDR, &data); + data |= CFG_RSIF_FPBUFF_TIMEOUT_EN; + xgene_enet_wr_csr(pdata, XG_RSIF_CONFIG_REG_ADDR, data); + + xgene_enet_wr_csr(pdata, XG_CFG_BYPASS_ADDR, RESUME_TX); + xgene_enet_wr_csr(pdata, XGENET_RX_DV_GATE_REG_0_ADDR, 0); + xgene_enet_rd_csr(pdata, XG_ENET_SPARE_CFG_REG_ADDR, &data); + data |= BIT(12); + xgene_enet_wr_csr(pdata, XG_ENET_SPARE_CFG_REG_ADDR, data); + xgene_enet_wr_csr(pdata, XG_ENET_SPARE_CFG_REG_1_ADDR, 0x82); +} + +static void xgene_xgmac_rx_enable(struct xgene_enet_pdata *pdata) +{ + u32 data; + + xgene_enet_rd_mac(pdata, AXGMAC_CONFIG_1, &data); + xgene_enet_wr_mac(pdata, AXGMAC_CONFIG_1, data | HSTRFEN); +} + +static void xgene_xgmac_tx_enable(struct xgene_enet_pdata *pdata) +{ + u32 data; + + xgene_enet_rd_mac(pdata, AXGMAC_CONFIG_1, &data); + xgene_enet_wr_mac(pdata, AXGMAC_CONFIG_1, data | HSTTFEN); +} + +static void xgene_xgmac_rx_disable(struct xgene_enet_pdata *pdata) +{ + u32 data; + + xgene_enet_rd_mac(pdata, AXGMAC_CONFIG_1, &data); + xgene_enet_wr_mac(pdata, AXGMAC_CONFIG_1, data & ~HSTRFEN); +} + +static void xgene_xgmac_tx_disable(struct xgene_enet_pdata *pdata) +{ + u32 data; + + xgene_enet_rd_mac(pdata, AXGMAC_CONFIG_1, &data); + xgene_enet_wr_mac(pdata, AXGMAC_CONFIG_1, data & ~HSTTFEN); +} + +static int xgene_enet_reset(struct xgene_enet_pdata *pdata) +{ + if (!xgene_ring_mgr_init(pdata)) + return -ENODEV; + + clk_prepare_enable(pdata->clk); + clk_disable_unprepare(pdata->clk); + clk_prepare_enable(pdata->clk); + + xgene_enet_ecc_init(pdata); + xgene_enet_config_ring_if_assoc(pdata); + + return 0; +} + +static void xgene_enet_xgcle_bypass(struct xgene_enet_pdata *pdata, + u32 dst_ring_num, u16 bufpool_id) +{ + u32 cb, fpsel; + + xgene_enet_rd_csr(pdata, XCLE_BYPASS_REG0_ADDR, &cb); + cb |= CFG_CLE_BYPASS_EN0; + CFG_CLE_IP_PROTOCOL0_SET(&cb, 3); + xgene_enet_wr_csr(pdata, XCLE_BYPASS_REG0_ADDR, cb); + + fpsel = xgene_enet_ring_bufnum(bufpool_id) - 0x20; + xgene_enet_rd_csr(pdata, XCLE_BYPASS_REG1_ADDR, &cb); + CFG_CLE_DSTQID0_SET(&cb, dst_ring_num); + CFG_CLE_FPSEL0_SET(&cb, fpsel); + xgene_enet_wr_csr(pdata, XCLE_BYPASS_REG1_ADDR, cb); +} + +static void xgene_enet_shutdown(struct xgene_enet_pdata *pdata) +{ + clk_disable_unprepare(pdata->clk); +} + +static void xgene_enet_link_state(struct work_struct *work) +{ + struct xgene_enet_pdata *pdata = container_of(to_delayed_work(work), + struct xgene_enet_pdata, link_work); + struct net_device *ndev = pdata->ndev; + u32 link_status, poll_interval; + + link_status = xgene_enet_link_status(pdata); + if (link_status) { + if (!netif_carrier_ok(ndev)) { + netif_carrier_on(ndev); + xgene_xgmac_init(pdata); + xgene_xgmac_rx_enable(pdata); + xgene_xgmac_tx_enable(pdata); + netdev_info(ndev, "Link is Up - 10Gbps\n"); + } + poll_interval = PHY_POLL_LINK_ON; + } else { + if (netif_carrier_ok(ndev)) { + xgene_xgmac_rx_disable(pdata); + xgene_xgmac_tx_disable(pdata); + netif_carrier_off(ndev); + netdev_info(ndev, "Link is Down\n"); + } + poll_interval = PHY_POLL_LINK_OFF; + } + + schedule_delayed_work(&pdata->link_work, poll_interval); +} + +struct xgene_mac_ops xgene_xgmac_ops = { + .init = xgene_xgmac_init, + .reset = xgene_xgmac_reset, + .rx_enable = xgene_xgmac_rx_enable, + .tx_enable = xgene_xgmac_tx_enable, + .rx_disable = xgene_xgmac_rx_disable, + .tx_disable = xgene_xgmac_tx_disable, + .set_mac_addr = xgene_xgmac_set_mac_addr, + .link_state = xgene_enet_link_state +}; + +struct xgene_port_ops xgene_xgport_ops = { + .reset = xgene_enet_reset, + .cle_bypass = xgene_enet_xgcle_bypass, + .shutdown = xgene_enet_shutdown, +}; --- linux-3.13.0.orig/drivers/net/ethernet/apm/xgene/xgene_enet_xgmac.h +++ linux-3.13.0/drivers/net/ethernet/apm/xgene/xgene_enet_xgmac.h @@ -0,0 +1,53 @@ +/* Applied Micro X-Gene SoC Ethernet Driver + * + * Copyright (c) 2014, Applied Micro Circuits Corporation + * Authors: Iyappan Subramanian + * Keyur Chudgar + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef __XGENE_ENET_XGMAC_H__ +#define __XGENE_ENET_XGMAC_H__ + +#define BLOCK_AXG_MAC_OFFSET 0x0800 +#define BLOCK_AXG_MAC_CSR_OFFSET 0x2000 + +#define AXGMAC_CONFIG_0 0x0000 +#define AXGMAC_CONFIG_1 0x0004 +#define HSTMACRST BIT(31) +#define HSTTCTLEN BIT(31) +#define HSTTFEN BIT(30) +#define HSTRCTLEN BIT(29) +#define HSTRFEN BIT(28) +#define HSTPPEN BIT(7) +#define HSTDRPLT64 BIT(5) +#define HSTLENCHK BIT(3) +#define HSTMACADR_LSW_ADDR 0x0010 +#define HSTMACADR_MSW_ADDR 0x0014 +#define HSTMAXFRAME_LENGTH_ADDR 0x0020 + +#define XG_RSIF_CONFIG_REG_ADDR 0x00a0 +#define XCLE_BYPASS_REG0_ADDR 0x0160 +#define XCLE_BYPASS_REG1_ADDR 0x0164 +#define XG_CFG_BYPASS_ADDR 0x0204 +#define XG_LINK_STATUS_ADDR 0x0228 +#define XG_ENET_SPARE_CFG_REG_ADDR 0x040c +#define XG_ENET_SPARE_CFG_REG_1_ADDR 0x0410 +#define XGENET_RX_DV_GATE_REG_0_ADDR 0x0804 + +extern struct xgene_mac_ops xgene_xgmac_ops; +extern struct xgene_port_ops xgene_xgport_ops; + +#endif /* __XGENE_ENET_XGMAC_H__ */ --- linux-3.13.0.orig/drivers/net/ethernet/atheros/alx/main.c +++ linux-3.13.0/drivers/net/ethernet/atheros/alx/main.c @@ -184,15 +184,16 @@ schedule_work(&alx->reset_wk); } -static bool alx_clean_rx_irq(struct alx_priv *alx, int budget) +static int alx_clean_rx_irq(struct alx_priv *alx, int budget) { struct alx_rx_queue *rxq = &alx->rxq; struct alx_rrd *rrd; struct alx_buffer *rxb; struct sk_buff *skb; u16 length, rfd_cleaned = 0; + int work = 0; - while (budget > 0) { + while (work < budget) { rrd = &rxq->rrd[rxq->rrd_read_idx]; if (!(rrd->word3 & cpu_to_le32(1 << RRD_UPDATED_SHIFT))) break; @@ -203,7 +204,7 @@ ALX_GET_FIELD(le32_to_cpu(rrd->word0), RRD_NOR) != 1) { alx_schedule_reset(alx); - return 0; + return work; } rxb = &rxq->bufs[rxq->read_idx]; @@ -243,7 +244,7 @@ } napi_gro_receive(&alx->napi, skb); - budget--; + work++; next_pkt: if (++rxq->read_idx == alx->rx_ringsz) @@ -258,21 +259,22 @@ if (rfd_cleaned) alx_refill_rx_ring(alx, GFP_ATOMIC); - return budget > 0; + return work; } static int alx_poll(struct napi_struct *napi, int budget) { struct alx_priv *alx = container_of(napi, struct alx_priv, napi); struct alx_hw *hw = &alx->hw; - bool complete = true; unsigned long flags; + bool tx_complete; + int work; - complete = alx_clean_tx_irq(alx) && - alx_clean_rx_irq(alx, budget); + tx_complete = alx_clean_tx_irq(alx); + work = alx_clean_rx_irq(alx, budget); - if (!complete) - return 1; + if (!tx_complete || work == budget) + return budget; napi_complete(&alx->napi); @@ -284,7 +286,7 @@ alx_post_write(hw); - return 0; + return work; } static irqreturn_t alx_intr_handle(struct alx_priv *alx, u32 intr) --- linux-3.13.0.orig/drivers/net/ethernet/broadcom/b44.c +++ linux-3.13.0/drivers/net/ethernet/broadcom/b44.c @@ -1654,7 +1654,7 @@ unsigned int start; do { - start = u64_stats_fetch_begin_bh(&hwstat->syncp); + start = u64_stats_fetch_begin_irq(&hwstat->syncp); /* Convert HW stats into rtnl_link_stats64 stats. */ nstat->rx_packets = hwstat->rx_pkts; @@ -1688,7 +1688,7 @@ /* Carrier lost counter seems to be broken for some devices */ nstat->tx_carrier_errors = hwstat->tx_carrier_lost; #endif - } while (u64_stats_fetch_retry_bh(&hwstat->syncp, start)); + } while (u64_stats_fetch_retry_irq(&hwstat->syncp, start)); return nstat; } @@ -2021,12 +2021,12 @@ do { data_src = &hwstat->tx_good_octets; data_dst = data; - start = u64_stats_fetch_begin_bh(&hwstat->syncp); + start = u64_stats_fetch_begin_irq(&hwstat->syncp); for (i = 0; i < ARRAY_SIZE(b44_gstrings); i++) *data_dst++ = *data_src++; - } while (u64_stats_fetch_retry_bh(&hwstat->syncp, start)); + } while (u64_stats_fetch_retry_irq(&hwstat->syncp, start)); } static void b44_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol) --- linux-3.13.0.orig/drivers/net/ethernet/broadcom/bnx2.c +++ linux-3.13.0/drivers/net/ethernet/broadcom/bnx2.c @@ -2490,6 +2490,7 @@ bp->fw_wr_seq++; msg_data |= bp->fw_wr_seq; + bp->fw_last_msg = msg_data; bnx2_shmem_wr(bp, BNX2_DRV_MB, msg_data); @@ -3982,8 +3983,23 @@ wol_msg = BNX2_DRV_MSG_CODE_SUSPEND_NO_WOL; } - if (!(bp->flags & BNX2_FLAG_NO_WOL)) - bnx2_fw_sync(bp, BNX2_DRV_MSG_DATA_WAIT3 | wol_msg, 1, 0); + if (!(bp->flags & BNX2_FLAG_NO_WOL)) { + u32 val; + + wol_msg |= BNX2_DRV_MSG_DATA_WAIT3; + if (bp->fw_last_msg || BNX2_CHIP(bp) != BNX2_CHIP_5709) { + bnx2_fw_sync(bp, wol_msg, 1, 0); + return; + } + /* Tell firmware not to power down the PHY yet, otherwise + * the chip will take a long time to respond to MMIO reads. + */ + val = bnx2_shmem_rd(bp, BNX2_PORT_FEATURE); + bnx2_shmem_wr(bp, BNX2_PORT_FEATURE, + val | BNX2_PORT_FEATURE_ASF_ENABLED); + bnx2_fw_sync(bp, wol_msg, 1, 0); + bnx2_shmem_wr(bp, BNX2_PORT_FEATURE, val); + } } @@ -4015,9 +4031,22 @@ if (bp->wol) pci_set_power_state(bp->pdev, PCI_D3hot); - } else { - pci_set_power_state(bp->pdev, PCI_D3hot); + break; + + } + if (!bp->fw_last_msg && BNX2_CHIP(bp) == BNX2_CHIP_5709) { + u32 val; + + /* Tell firmware not to power down the PHY yet, + * otherwise the other port may not respond to + * MMIO reads. + */ + val = bnx2_shmem_rd(bp, BNX2_BC_STATE_CONDITION); + val &= ~BNX2_CONDITION_PM_STATE_MASK; + val |= BNX2_CONDITION_PM_STATE_UNPREP; + bnx2_shmem_wr(bp, BNX2_BC_STATE_CONDITION, val); } + pci_set_power_state(bp->pdev, PCI_D3hot); /* No more memory access after this point until * device is brought back to D0. --- linux-3.13.0.orig/drivers/net/ethernet/broadcom/bnx2.h +++ linux-3.13.0/drivers/net/ethernet/broadcom/bnx2.h @@ -6890,6 +6890,7 @@ u16 fw_wr_seq; u16 fw_drv_pulse_wr_seq; + u32 fw_last_msg; int rx_max_ring; int rx_ring_size; @@ -7396,6 +7397,10 @@ #define BNX2_CONDITION_MFW_RUN_NCSI 0x00006000 #define BNX2_CONDITION_MFW_RUN_NONE 0x0000e000 #define BNX2_CONDITION_MFW_RUN_MASK 0x0000e000 +#define BNX2_CONDITION_PM_STATE_MASK 0x00030000 +#define BNX2_CONDITION_PM_STATE_FULL 0x00030000 +#define BNX2_CONDITION_PM_STATE_PREP 0x00020000 +#define BNX2_CONDITION_PM_STATE_UNPREP 0x00010000 #define BNX2_BC_STATE_DEBUG_CMD 0x1dc #define BNX2_BC_STATE_BC_DBG_CMD_SIGNATURE 0x42440000 --- linux-3.13.0.orig/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h +++ linux-3.13.0/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h @@ -337,6 +337,7 @@ u8 flags; /* Set on the first BD descriptor when there is a split BD */ #define BNX2X_TSO_SPLIT_BD (1<<0) +#define BNX2X_HAS_SECOND_PBD (1<<1) }; struct sw_rx_page { --- linux-3.13.0.orig/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +++ linux-3.13.0/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c @@ -186,6 +186,12 @@ --nbd; bd_idx = TX_BD(NEXT_TX_IDX(bd_idx)); + if (tx_buf->flags & BNX2X_HAS_SECOND_PBD) { + /* Skip second parse bd... */ + --nbd; + bd_idx = TX_BD(NEXT_TX_IDX(bd_idx)); + } + /* TSO headers+data bds share a common mapping. See bnx2x_tx_split() */ if (tx_buf->flags & BNX2X_TSO_SPLIT_BD) { tx_data_bd = &txdata->tx_desc_ring[bd_idx].reg_bd; @@ -755,7 +761,8 @@ return; } - bnx2x_frag_free(fp, new_data); + if (new_data) + bnx2x_frag_free(fp, new_data); drop: /* drop the packet and keep the buffer in the bin */ DP(NETIF_MSG_RX_STATUS, @@ -861,6 +868,18 @@ bd_prod = RX_BD(bd_prod); bd_cons = RX_BD(bd_cons); + /* A rmb() is required to ensure that the CQE is not read + * before it is written by the adapter DMA. PCI ordering + * rules will make sure the other fields are written before + * the marker at the end of struct eth_fast_path_rx_cqe + * but without rmb() a weakly ordered processor can process + * stale data. Without the barrier TPA state-machine might + * enter inconsistent state and kernel stack might be + * provided with incorrect packet description - these lead + * to various kernel crashed. + */ + rmb(); + cqe_fp_flags = cqe_fp->type_error_flags; cqe_fp_type = cqe_fp_flags & ETH_FAST_PATH_RX_CQE_TYPE; @@ -1834,7 +1853,7 @@ } u16 bnx2x_select_queue(struct net_device *dev, struct sk_buff *skb, - void *accel_priv) + void *accel_priv, select_queue_fallback_t fallback) { struct bnx2x *bp = netdev_priv(dev); @@ -1856,7 +1875,7 @@ } /* select a non-FCoE queue */ - return __netdev_pick_tx(dev, skb) % BNX2X_NUM_ETH_QUEUES(bp); + return fallback(dev, skb) % BNX2X_NUM_ETH_QUEUES(bp); } void bnx2x_set_num_queues(struct bnx2x *bp) @@ -3824,6 +3843,9 @@ /* set encapsulation flag in start BD */ SET_FLAG(tx_start_bd->general_data, ETH_TX_START_BD_TUNNEL_EXIST, 1); + + tx_buf->flags |= BNX2X_HAS_SECOND_PBD; + nbd++; } else if (xmit_type & XMIT_CSUM) { /* Set PBD in checksum offload case w/o encapsulation */ --- linux-3.13.0.orig/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h +++ linux-3.13.0/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h @@ -525,7 +525,7 @@ /* select_queue callback */ u16 bnx2x_select_queue(struct net_device *dev, struct sk_buff *skb, - void *accel_priv); + void *accel_priv, select_queue_fallback_t fallback); static inline void bnx2x_update_rx_prod(struct bnx2x *bp, struct bnx2x_fastpath *fp, --- linux-3.13.0.orig/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c +++ linux-3.13.0/drivers/net/ethernet/broadcom/bnx2x/bnx2x_link.c @@ -3749,7 +3749,8 @@ static void bnx2x_warpcore_enable_AN_KR(struct bnx2x_phy *phy, struct link_params *params, struct link_vars *vars) { - u16 lane, i, cl72_ctrl, an_adv = 0; + u16 lane, i, cl72_ctrl, an_adv = 0, val; + u32 wc_lane_config; struct bnx2x *bp = params->bp; static struct bnx2x_reg_set reg_set[] = { {MDIO_WC_DEVAD, MDIO_WC_REG_SERDESDIGITAL_CONTROL1000X2, 0x7}, @@ -3868,15 +3869,27 @@ /* Enable Auto-Detect to support 1G over CL37 as well */ bnx2x_cl45_write(bp, phy, MDIO_WC_DEVAD, MDIO_WC_REG_SERDESDIGITAL_CONTROL1000X1, 0x10); - + wc_lane_config = REG_RD(bp, params->shmem_base + + offsetof(struct shmem_region, dev_info. + shared_hw_config.wc_lane_config)); + bnx2x_cl45_read(bp, phy, MDIO_WC_DEVAD, + MDIO_WC_REG_RX0_PCI_CTRL + (lane << 4), &val); /* Force cl48 sync_status LOW to avoid getting stuck in CL73 * parallel-detect loop when CL73 and CL37 are enabled. */ - CL22_WR_OVER_CL45(bp, phy, MDIO_REG_BANK_AER_BLOCK, - MDIO_AER_BLOCK_AER_REG, 0); + val |= 1 << 11; + + /* Restore Polarity settings in case it was run over by + * previous link owner + */ + if (wc_lane_config & + (SHARED_HW_CFG_RX_LANE0_POL_FLIP_ENABLED << lane)) + val |= 3 << 2; + else + val &= ~(3 << 2); bnx2x_cl45_write(bp, phy, MDIO_WC_DEVAD, - MDIO_WC_REG_RXB_ANA_RX_CONTROL_PCI, 0x0800); - bnx2x_set_aer_mmd(params, phy); + MDIO_WC_REG_RX0_PCI_CTRL + (lane << 4), + val); bnx2x_disable_kr2(params, vars, phy); } --- linux-3.13.0.orig/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +++ linux-3.13.0/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c @@ -12998,8 +12998,8 @@ netdev_reset_tc(bp->dev); del_timer_sync(&bp->timer); - cancel_delayed_work(&bp->sp_task); - cancel_delayed_work(&bp->period_task); + cancel_delayed_work_sync(&bp->sp_task); + cancel_delayed_work_sync(&bp->period_task); spin_lock_bh(&bp->stats_lock); bp->stats_state = STATS_STATE_DISABLED; --- linux-3.13.0.orig/drivers/net/ethernet/broadcom/tg3.c +++ linux-3.13.0/drivers/net/ethernet/broadcom/tg3.c @@ -326,6 +326,7 @@ {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57785)}, {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57761)}, {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57765)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57786)}, {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57791), .driver_data = TG3_DRV_DATA_FLAG_10_100_ONLY}, {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57795), @@ -6827,8 +6828,7 @@ work_mask |= opaque_key; - if ((desc->err_vlan & RXD_ERR_MASK) != 0 && - (desc->err_vlan != RXD_ERR_ODD_NIBBLE_RCVD_MII)) { + if (desc->err_vlan & RXD_ERR_MASK) { drop_it: tg3_recycle_rx(tnapi, tpr, opaque_key, desc_idx, *post_ptr); @@ -6908,7 +6908,8 @@ skb->protocol = eth_type_trans(skb, tp->dev); if (len > (tp->dev->mtu + ETH_HLEN) && - skb->protocol != htons(ETH_P_8021Q)) { + skb->protocol != htons(ETH_P_8021Q) && + skb->protocol != htons(ETH_P_8021AD)) { dev_kfree_skb(skb); goto drop_it_no_recycle; } @@ -7900,8 +7901,6 @@ entry = tnapi->tx_prod; base_flags = 0; - if (skb->ip_summed == CHECKSUM_PARTIAL) - base_flags |= TXD_FLAG_TCPUDP_CSUM; mss = skb_shinfo(skb)->gso_size; if (mss) { @@ -7917,6 +7916,13 @@ hdr_len = skb_transport_offset(skb) + tcp_hdrlen(skb) - ETH_HLEN; + /* HW/FW can not correctly segment packets that have been + * vlan encapsulated. + */ + if (skb->protocol == htons(ETH_P_8021Q) || + skb->protocol == htons(ETH_P_8021AD)) + return tg3_tso_bug(tp, skb); + if (!skb_is_gso_v6(skb)) { iph->check = 0; iph->tot_len = htons(mss + hdr_len); @@ -7963,6 +7969,17 @@ base_flags |= tsflags << 12; } } + } else if (skb->ip_summed == CHECKSUM_PARTIAL) { + /* HW/FW can not correctly checksum packets that have been + * vlan encapsulated. + */ + if (skb->protocol == htons(ETH_P_8021Q) || + skb->protocol == htons(ETH_P_8021AD)) { + if (skb_checksum_help(skb)) + goto drop; + } else { + base_flags |= TXD_FLAG_TCPUDP_CSUM; + } } if (tg3_flag(tp, USE_JUMBO_BDFLAG) && @@ -8516,7 +8533,8 @@ if (tnapi->rx_rcb) memset(tnapi->rx_rcb, 0, TG3_RX_RCB_RING_BYTES(tp)); - if (tg3_rx_prodring_alloc(tp, &tnapi->prodring)) { + if (tnapi->prodring.rx_std && + tg3_rx_prodring_alloc(tp, &tnapi->prodring)) { tg3_free_rings(tp); return -ENOMEM; } @@ -12209,7 +12227,9 @@ if (tg3_flag(tp, MAX_RXPEND_64) && tp->rx_pending > 63) tp->rx_pending = 63; - tp->rx_jumbo_pending = ering->rx_jumbo_pending; + + if (tg3_flag(tp, JUMBO_RING_ENABLE)) + tp->rx_jumbo_pending = ering->rx_jumbo_pending; for (i = 0; i < tp->irq_max; i++) tp->napi[i].tx_pending = ering->tx_pending; @@ -13965,12 +13985,12 @@ tg3_netif_stop(tp); + tg3_set_mtu(dev, tp, new_mtu); + tg3_full_lock(tp, 1); tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); - tg3_set_mtu(dev, tp, new_mtu); - /* Reset PHY, otherwise the read DMA engine will be in a mode that * breaks all requests to 256 bytes. */ @@ -17486,8 +17506,6 @@ tg3_init_bufmgr_config(tp); - features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX; - /* 5700 B0 chips do not support checksumming correctly due * to hardware bugs. */ @@ -17519,7 +17537,8 @@ features |= NETIF_F_TSO_ECN; } - dev->features |= features; + dev->features |= features | NETIF_F_HW_VLAN_CTAG_TX | + NETIF_F_HW_VLAN_CTAG_RX; dev->vlan_features |= features; /* @@ -17548,23 +17567,6 @@ goto err_out_apeunmap; } - /* - * Reset chip in case UNDI or EFI driver did not shutdown - * DMA self test will enable WDMAC and we'll see (spurious) - * pending DMA on the PCI bus at that point. - */ - if ((tr32(HOSTCC_MODE) & HOSTCC_MODE_ENABLE) || - (tr32(WDMAC_MODE) & WDMAC_MODE_ENABLE)) { - tw32(MEMARB_MODE, MEMARB_MODE_ENABLE); - tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); - } - - err = tg3_test_dma(tp); - if (err) { - dev_err(&pdev->dev, "DMA engine test failed, aborting\n"); - goto err_out_apeunmap; - } - intmbx = MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW; rcvmbx = MAILBOX_RCVRET_CON_IDX_0 + TG3_64BIT_REG_LOW; sndmbx = MAILBOX_SNDHOST_PROD_IDX_0 + TG3_64BIT_REG_LOW; @@ -17609,6 +17611,23 @@ sndmbx += 0xc; } + /* + * Reset chip in case UNDI or EFI driver did not shutdown + * DMA self test will enable WDMAC and we'll see (spurious) + * pending DMA on the PCI bus at that point. + */ + if ((tr32(HOSTCC_MODE) & HOSTCC_MODE_ENABLE) || + (tr32(WDMAC_MODE) & WDMAC_MODE_ENABLE)) { + tw32(MEMARB_MODE, MEMARB_MODE_ENABLE); + tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); + } + + err = tg3_test_dma(tp); + if (err) { + dev_err(&pdev->dev, "DMA engine test failed, aborting\n"); + goto err_out_apeunmap; + } + tg3_init_coal(tp); pci_set_drvdata(pdev, dev); --- linux-3.13.0.orig/drivers/net/ethernet/broadcom/tg3.h +++ linux-3.13.0/drivers/net/ethernet/broadcom/tg3.h @@ -2601,7 +2601,11 @@ #define RXD_ERR_TOO_SMALL 0x00400000 #define RXD_ERR_NO_RESOURCES 0x00800000 #define RXD_ERR_HUGE_FRAME 0x01000000 -#define RXD_ERR_MASK 0xffff0000 + +#define RXD_ERR_MASK (RXD_ERR_BAD_CRC | RXD_ERR_COLLISION | \ + RXD_ERR_LINK_LOST | RXD_ERR_PHY_DECODE | \ + RXD_ERR_MAC_ABRT | RXD_ERR_TOO_SMALL | \ + RXD_ERR_NO_RESOURCES | RXD_ERR_HUGE_FRAME) u32 reserved; u32 opaque; --- linux-3.13.0.orig/drivers/net/ethernet/cadence/macb.c +++ linux-3.13.0/drivers/net/ethernet/cadence/macb.c @@ -29,7 +29,6 @@ #include #include #include -#include #include "macb.h" @@ -1755,7 +1754,6 @@ struct phy_device *phydev; u32 config; int err = -ENXIO; - struct pinctrl *pinctrl; const char *mac; regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); @@ -1764,15 +1762,6 @@ goto err_out; } - pinctrl = devm_pinctrl_get_select_default(&pdev->dev); - if (IS_ERR(pinctrl)) { - err = PTR_ERR(pinctrl); - if (err == -EPROBE_DEFER) - goto err_out; - - dev_warn(&pdev->dev, "No pinctrl provided\n"); - } - err = -ENOMEM; dev = alloc_etherdev(sizeof(*bp)); if (!dev) --- linux-3.13.0.orig/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h +++ linux-3.13.0/drivers/net/ethernet/chelsio/cxgb4/cxgb4.h @@ -496,6 +496,7 @@ spinlock_t db_lock; int db_disabled; unsigned short db_pidx; + unsigned short db_pidx_inc; u64 udb; }; --- linux-3.13.0.orig/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c +++ linux-3.13.0/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c @@ -3563,14 +3563,25 @@ static void disable_txq_db(struct sge_txq *q) { - spin_lock_irq(&q->db_lock); + unsigned long flags; + + spin_lock_irqsave(&q->db_lock, flags); q->db_disabled = 1; - spin_unlock_irq(&q->db_lock); + spin_unlock_irqrestore(&q->db_lock, flags); } -static void enable_txq_db(struct sge_txq *q) +static void enable_txq_db(struct adapter *adap, struct sge_txq *q) { spin_lock_irq(&q->db_lock); + if (q->db_pidx_inc) { + /* Make sure that all writes to the TX descriptors + * are committed before we tell HW about them. + */ + wmb(); + t4_write_reg(adap, MYPF_REG(SGE_PF_KDOORBELL), + QID(q->cntxt_id) | PIDX(q->db_pidx_inc)); + q->db_pidx_inc = 0; + } q->db_disabled = 0; spin_unlock_irq(&q->db_lock); } @@ -3592,11 +3603,32 @@ int i; for_each_ethrxq(&adap->sge, i) - enable_txq_db(&adap->sge.ethtxq[i].q); + enable_txq_db(adap, &adap->sge.ethtxq[i].q); for_each_ofldrxq(&adap->sge, i) - enable_txq_db(&adap->sge.ofldtxq[i].q); + enable_txq_db(adap, &adap->sge.ofldtxq[i].q); for_each_port(adap, i) - enable_txq_db(&adap->sge.ctrlq[i].q); + enable_txq_db(adap, &adap->sge.ctrlq[i].q); +} + +static void notify_rdma_uld(struct adapter *adap, enum cxgb4_control cmd) +{ + if (adap->uld_handle[CXGB4_ULD_RDMA]) + ulds[CXGB4_ULD_RDMA].control(adap->uld_handle[CXGB4_ULD_RDMA], + cmd); +} + +static void process_db_full(struct work_struct *work) +{ + struct adapter *adap; + + adap = container_of(work, struct adapter, db_full_task); + + drain_db_fifo(adap, dbfifo_drain_delay); + enable_dbs(adap); + notify_rdma_uld(adap, CXGB4_CONTROL_DB_EMPTY); + t4_set_reg_field(adap, SGE_INT_ENABLE3, + DBFIFO_HP_INT | DBFIFO_LP_INT, + DBFIFO_HP_INT | DBFIFO_LP_INT); } static void sync_txq_pidx(struct adapter *adap, struct sge_txq *q) @@ -3604,7 +3636,7 @@ u16 hw_pidx, hw_cidx; int ret; - spin_lock_bh(&q->db_lock); + spin_lock_irq(&q->db_lock); ret = read_eq_indices(adap, (u16)q->cntxt_id, &hw_pidx, &hw_cidx); if (ret) goto out; @@ -3621,7 +3653,8 @@ } out: q->db_disabled = 0; - spin_unlock_bh(&q->db_lock); + q->db_pidx_inc = 0; + spin_unlock_irq(&q->db_lock); if (ret) CH_WARN(adap, "DB drop recovery failed.\n"); } @@ -3637,29 +3670,6 @@ sync_txq_pidx(adap, &adap->sge.ctrlq[i].q); } -static void notify_rdma_uld(struct adapter *adap, enum cxgb4_control cmd) -{ - mutex_lock(&uld_mutex); - if (adap->uld_handle[CXGB4_ULD_RDMA]) - ulds[CXGB4_ULD_RDMA].control(adap->uld_handle[CXGB4_ULD_RDMA], - cmd); - mutex_unlock(&uld_mutex); -} - -static void process_db_full(struct work_struct *work) -{ - struct adapter *adap; - - adap = container_of(work, struct adapter, db_full_task); - - notify_rdma_uld(adap, CXGB4_CONTROL_DB_FULL); - drain_db_fifo(adap, dbfifo_drain_delay); - t4_set_reg_field(adap, SGE_INT_ENABLE3, - DBFIFO_HP_INT | DBFIFO_LP_INT, - DBFIFO_HP_INT | DBFIFO_LP_INT); - notify_rdma_uld(adap, CXGB4_CONTROL_DB_EMPTY); -} - static void process_db_drop(struct work_struct *work) { struct adapter *adap; @@ -3667,11 +3677,13 @@ adap = container_of(work, struct adapter, db_drop_task); if (is_t4(adap->params.chip)) { - disable_dbs(adap); + drain_db_fifo(adap, dbfifo_drain_delay); notify_rdma_uld(adap, CXGB4_CONTROL_DB_DROP); - drain_db_fifo(adap, 1); + drain_db_fifo(adap, dbfifo_drain_delay); recover_all_queues(adap); + drain_db_fifo(adap, dbfifo_drain_delay); enable_dbs(adap); + notify_rdma_uld(adap, CXGB4_CONTROL_DB_EMPTY); } else { u32 dropped_db = t4_read_reg(adap, 0x010ac); u16 qid = (dropped_db >> 15) & 0x1ffff; @@ -3712,6 +3724,8 @@ void t4_db_full(struct adapter *adap) { if (is_t4(adap->params.chip)) { + disable_dbs(adap); + notify_rdma_uld(adap, CXGB4_CONTROL_DB_FULL); t4_set_reg_field(adap, SGE_INT_ENABLE3, DBFIFO_HP_INT | DBFIFO_LP_INT, 0); queue_work(workq, &adap->db_full_task); @@ -3720,8 +3734,11 @@ void t4_db_dropped(struct adapter *adap) { - if (is_t4(adap->params.chip)) - queue_work(workq, &adap->db_drop_task); + if (is_t4(adap->params.chip)) { + disable_dbs(adap); + notify_rdma_uld(adap, CXGB4_CONTROL_DB_FULL); + } + queue_work(workq, &adap->db_drop_task); } static void uld_attach(struct adapter *adap, unsigned int uld) --- linux-3.13.0.orig/drivers/net/ethernet/chelsio/cxgb4/sge.c +++ linux-3.13.0/drivers/net/ethernet/chelsio/cxgb4/sge.c @@ -843,9 +843,10 @@ static inline void ring_tx_db(struct adapter *adap, struct sge_txq *q, int n) { unsigned int *wr, index; + unsigned long flags; wmb(); /* write descriptors before telling HW */ - spin_lock(&q->db_lock); + spin_lock_irqsave(&q->db_lock, flags); if (!q->db_disabled) { if (is_t4(adap->params.chip)) { t4_write_reg(adap, MYPF_REG(SGE_PF_KDOORBELL), @@ -861,9 +862,10 @@ writel(n, adap->bar2 + q->udb + 8); wmb(); } - } + } else + q->db_pidx_inc += n; q->db_pidx = q->pidx; - spin_unlock(&q->db_lock); + spin_unlock_irqrestore(&q->db_lock, flags); } /** --- linux-3.13.0.orig/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h +++ linux-3.13.0/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h @@ -116,6 +116,7 @@ CPL_ERR_KEEPALIVE_TIMEDOUT = 34, CPL_ERR_RTX_NEG_ADVICE = 35, CPL_ERR_PERSIST_NEG_ADVICE = 36, + CPL_ERR_KEEPALV_NEG_ADVICE = 37, CPL_ERR_ABORT_FAILED = 42, CPL_ERR_IWARP_FLM = 50, }; --- linux-3.13.0.orig/drivers/net/ethernet/cisco/enic/enic_main.c +++ linux-3.13.0/drivers/net/ethernet/cisco/enic/enic_main.c @@ -1043,10 +1043,14 @@ skb->l4_rxhash = true; } - if ((netdev->features & NETIF_F_RXCSUM) && !csum_not_calc) { - skb->csum = htons(checksum); - skb->ip_summed = CHECKSUM_COMPLETE; - } + /* Hardware does not provide whole packet checksum. It only + * provides pseudo checksum. Since hw validates the packet + * checksum but not provide us the checksum value. use + * CHECSUM_UNNECESSARY. + */ + if ((netdev->features & NETIF_F_RXCSUM) && tcp_udp_csum_ok && + ipv4_csum_ok) + skb->ip_summed = CHECKSUM_UNNECESSARY; if (vlan_stripped) __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), vlan_tci); --- linux-3.13.0.orig/drivers/net/ethernet/emulex/benet/be.h +++ linux-3.13.0/drivers/net/ethernet/emulex/benet/be.h @@ -34,7 +34,7 @@ #include "be_hw.h" #include "be_roce.h" -#define DRV_VER "4.9.224.0u" +#define DRV_VER "10.0.600.0u" #define DRV_NAME "be2net" #define BE_NAME "Emulex BladeEngine2" #define BE3_NAME "Emulex BladeEngine3" @@ -42,7 +42,7 @@ #define OC_NAME_BE OC_NAME "(be3)" #define OC_NAME_LANCER OC_NAME "(Lancer)" #define OC_NAME_SH OC_NAME "(Skyhawk)" -#define DRV_DESC "Emulex OneConnect 10Gbps NIC Driver" +#define DRV_DESC "Emulex OneConnect NIC Driver" #define BE_VENDOR_ID 0x19a2 #define EMULEX_VENDOR_ID 0x10df @@ -283,7 +283,6 @@ u32 rss_hash; u16 vlan_tag; u16 pkt_size; - u16 rxq_idx; u16 port; u8 vlanf; u8 num_rcvd; @@ -493,7 +492,7 @@ u16 pvid; struct phy_info phy; u8 wol_cap; - bool wol; + bool wol_en; u32 uc_macs; /* Count of secondary UC MAC programmed */ u16 asic_rev; u16 qnq_vid; --- linux-3.13.0.orig/drivers/net/ethernet/emulex/benet/be_cmds.c +++ linux-3.13.0/drivers/net/ethernet/emulex/benet/be_cmds.c @@ -1101,23 +1101,22 @@ OPCODE_COMMON_MCC_CREATE_EXT, sizeof(*req), wrb, NULL); req->num_pages = cpu_to_le16(PAGES_4K_SPANNED(q_mem->va, q_mem->size)); - if (lancer_chip(adapter)) { - req->hdr.version = 1; - req->cq_id = cpu_to_le16(cq->id); - - AMAP_SET_BITS(struct amap_mcc_context_lancer, ring_size, ctxt, - be_encoded_q_len(mccq->len)); - AMAP_SET_BITS(struct amap_mcc_context_lancer, valid, ctxt, 1); - AMAP_SET_BITS(struct amap_mcc_context_lancer, async_cq_id, - ctxt, cq->id); - AMAP_SET_BITS(struct amap_mcc_context_lancer, async_cq_valid, - ctxt, 1); - - } else { + if (BEx_chip(adapter)) { AMAP_SET_BITS(struct amap_mcc_context_be, valid, ctxt, 1); AMAP_SET_BITS(struct amap_mcc_context_be, ring_size, ctxt, be_encoded_q_len(mccq->len)); AMAP_SET_BITS(struct amap_mcc_context_be, cq_id, ctxt, cq->id); + } else { + req->hdr.version = 1; + req->cq_id = cpu_to_le16(cq->id); + + AMAP_SET_BITS(struct amap_mcc_context_v1, ring_size, ctxt, + be_encoded_q_len(mccq->len)); + AMAP_SET_BITS(struct amap_mcc_context_v1, valid, ctxt, 1); + AMAP_SET_BITS(struct amap_mcc_context_v1, async_cq_id, + ctxt, cq->id); + AMAP_SET_BITS(struct amap_mcc_context_v1, async_cq_valid, + ctxt, 1); } /* Subscribe to Link State and Group 5 Events(bits 1 and 5 set) */ @@ -1187,7 +1186,7 @@ int status; status = be_cmd_mccq_ext_create(adapter, mccq, cq); - if (status && !lancer_chip(adapter)) { + if (status && BEx_chip(adapter)) { dev_warn(&adapter->pdev->dev, "Upgrade to F/W ver 2.102.235.0 " "or newer to avoid conflicting priorities between NIC " "and FCoE traffic"); @@ -2692,6 +2691,13 @@ struct be_cmd_resp_get_fn_privileges *resp = embedded_payload(wrb); *privilege = le32_to_cpu(resp->privilege_mask); + + /* In UMC mode FW does not return right privileges. + * Override with correct privilege equivalent to PF. + */ + if (BEx_chip(adapter) && be_is_mc(adapter) && + be_physfn(adapter)) + *privilege = MAX_PRIVILEGES; } err: @@ -2736,7 +2742,8 @@ * If pmac_id is returned, pmac_id_valid is returned as true */ int be_cmd_get_mac_from_list(struct be_adapter *adapter, u8 *mac, - bool *pmac_id_valid, u32 *pmac_id, u8 domain) + bool *pmac_id_valid, u32 *pmac_id, u32 if_handle, + u8 domain) { struct be_mcc_wrb *wrb; struct be_cmd_req_get_mac_list *req; @@ -2774,7 +2781,7 @@ req->mac_type = MAC_ADDRESS_TYPE_NETWORK; if (*pmac_id_valid) { req->mac_id = cpu_to_le32(*pmac_id); - req->iface_id = cpu_to_le16(adapter->if_handle); + req->iface_id = cpu_to_le16(if_handle); req->perm_override = 0; } else { req->perm_override = 1; @@ -2827,17 +2834,21 @@ return status; } -int be_cmd_get_active_mac(struct be_adapter *adapter, u32 curr_pmac_id, u8 *mac) +int be_cmd_get_active_mac(struct be_adapter *adapter, u32 curr_pmac_id, u8 *mac, + u32 if_handle, bool active, u32 domain) { - bool active = true; + if (!active) + be_cmd_get_mac_from_list(adapter, mac, &active, &curr_pmac_id, + if_handle, domain); if (BEx_chip(adapter)) return be_cmd_mac_addr_query(adapter, mac, false, - adapter->if_handle, curr_pmac_id); + if_handle, curr_pmac_id); else /* Fetch the MAC address using pmac_id */ return be_cmd_get_mac_from_list(adapter, mac, &active, - &curr_pmac_id, 0); + &curr_pmac_id, + if_handle, domain); } int be_cmd_get_perm_mac(struct be_adapter *adapter, u8 *mac) @@ -2856,7 +2867,7 @@ adapter->if_handle, 0); } else { status = be_cmd_get_mac_from_list(adapter, mac, &pmac_valid, - NULL, 0); + NULL, adapter->if_handle, 0); } return status; @@ -2917,7 +2928,8 @@ int status; status = be_cmd_get_mac_from_list(adapter, old_mac, &active_mac, - &pmac_id, dom); + &pmac_id, if_id, dom); + if (!status && active_mac) be_cmd_pmac_del(adapter, if_id, pmac_id, dom); @@ -2997,7 +3009,7 @@ ctxt, intf_id); AMAP_SET_BITS(struct amap_get_hsw_req_context, pvid_valid, ctxt, 1); - if (!BEx_chip(adapter)) { + if (!BEx_chip(adapter) && mode) { AMAP_SET_BITS(struct amap_get_hsw_req_context, interface_id, ctxt, adapter->hba_port_num); AMAP_SET_BITS(struct amap_get_hsw_req_context, pport, ctxt, 1); @@ -3028,14 +3040,16 @@ { struct be_mcc_wrb *wrb; struct be_cmd_req_acpi_wol_magic_config_v1 *req; - int status; - int payload_len = sizeof(*req); + int status = 0; struct be_dma_mem cmd; if (!be_cmd_allowed(adapter, OPCODE_ETH_ACPI_WOL_MAGIC_CONFIG, CMD_SUBSYSTEM_ETH)) return -EPERM; + if (be_is_wol_excluded(adapter)) + return status; + if (mutex_lock_interruptible(&adapter->mbox_lock)) return -1; @@ -3060,7 +3074,7 @@ be_wrb_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_ETH, OPCODE_ETH_ACPI_WOL_MAGIC_CONFIG, - payload_len, wrb, &cmd); + sizeof(*req), wrb, &cmd); req->hdr.version = 1; req->query_options = BE_GET_WOL_CAP; @@ -3070,13 +3084,9 @@ struct be_cmd_resp_acpi_wol_magic_config_v1 *resp; resp = (struct be_cmd_resp_acpi_wol_magic_config_v1 *) cmd.va; - /* the command could succeed misleadingly on old f/w - * which is not aware of the V1 version. fake an error. */ - if (resp->hdr.response_length < payload_len) { - status = -1; - goto err; - } adapter->wol_cap = resp->wol_settings; + if (adapter->wol_cap & BE_WOL_CAP) + adapter->wol_en = true; } err: mutex_unlock(&adapter->mbox_lock); @@ -3085,6 +3095,76 @@ return status; } + +int be_cmd_set_fw_log_level(struct be_adapter *adapter, u32 level) +{ + struct be_dma_mem extfat_cmd; + struct be_fat_conf_params *cfgs; + int status; + int i, j; + + memset(&extfat_cmd, 0, sizeof(struct be_dma_mem)); + extfat_cmd.size = sizeof(struct be_cmd_resp_get_ext_fat_caps); + extfat_cmd.va = pci_alloc_consistent(adapter->pdev, extfat_cmd.size, + &extfat_cmd.dma); + if (!extfat_cmd.va) + return -ENOMEM; + + status = be_cmd_get_ext_fat_capabilites(adapter, &extfat_cmd); + if (status) + goto err; + + cfgs = (struct be_fat_conf_params *) + (extfat_cmd.va + sizeof(struct be_cmd_resp_hdr)); + for (i = 0; i < le32_to_cpu(cfgs->num_modules); i++) { + u32 num_modes = le32_to_cpu(cfgs->module[i].num_modes); + for (j = 0; j < num_modes; j++) { + if (cfgs->module[i].trace_lvl[j].mode == MODE_UART) + cfgs->module[i].trace_lvl[j].dbg_lvl = + cpu_to_le32(level); + } + } + + status = be_cmd_set_ext_fat_capabilites(adapter, &extfat_cmd, cfgs); +err: + pci_free_consistent(adapter->pdev, extfat_cmd.size, extfat_cmd.va, + extfat_cmd.dma); + return status; +} + +int be_cmd_get_fw_log_level(struct be_adapter *adapter) +{ + struct be_dma_mem extfat_cmd; + struct be_fat_conf_params *cfgs; + int status, j; + int level = 0; + + memset(&extfat_cmd, 0, sizeof(struct be_dma_mem)); + extfat_cmd.size = sizeof(struct be_cmd_resp_get_ext_fat_caps); + extfat_cmd.va = pci_alloc_consistent(adapter->pdev, extfat_cmd.size, + &extfat_cmd.dma); + + if (!extfat_cmd.va) { + dev_err(&adapter->pdev->dev, "%s: Memory allocation failure\n", + __func__); + goto err; + } + + status = be_cmd_get_ext_fat_capabilites(adapter, &extfat_cmd); + if (!status) { + cfgs = (struct be_fat_conf_params *)(extfat_cmd.va + + sizeof(struct be_cmd_resp_hdr)); + for (j = 0; j < le32_to_cpu(cfgs->module[0].num_modes); j++) { + if (cfgs->module[0].trace_lvl[j].mode == MODE_UART) + level = cfgs->module[0].trace_lvl[j].dbg_lvl; + } + } + pci_free_consistent(adapter->pdev, extfat_cmd.size, extfat_cmd.va, + extfat_cmd.dma); +err: + return level; +} + int be_cmd_get_ext_fat_capabilites(struct be_adapter *adapter, struct be_dma_mem *cmd) { @@ -3608,6 +3688,40 @@ mutex_unlock(&adapter->mbox_lock); return status; } + +/* Uses MBOX */ +int be_cmd_get_active_profile(struct be_adapter *adapter, u16 *profile_id) +{ + struct be_cmd_req_get_active_profile *req; + struct be_mcc_wrb *wrb; + int status; + + if (mutex_lock_interruptible(&adapter->mbox_lock)) + return -1; + + wrb = wrb_from_mbox(adapter); + if (!wrb) { + status = -EBUSY; + goto err; + } + + req = embedded_payload(wrb); + + be_wrb_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_COMMON, + OPCODE_COMMON_GET_ACTIVE_PROFILE, sizeof(*req), + wrb, NULL); + + status = be_mbox_notify_wait(adapter); + if (!status) { + struct be_cmd_resp_get_active_profile *resp = + embedded_payload(wrb); + *profile_id = le16_to_cpu(resp->active_profile_id); + } + +err: + mutex_unlock(&adapter->mbox_lock); + return status; +} int be_roce_mcc_cmd(void *netdev_handle, void *wrb_payload, int wrb_payload_size, u16 *cmd_status, u16 *ext_status) --- linux-3.13.0.orig/drivers/net/ethernet/emulex/benet/be_cmds.h +++ linux-3.13.0/drivers/net/ethernet/emulex/benet/be_cmds.h @@ -216,6 +216,7 @@ #define OPCODE_COMMON_GET_FUNC_CONFIG 160 #define OPCODE_COMMON_GET_PROFILE_CONFIG 164 #define OPCODE_COMMON_SET_PROFILE_CONFIG 165 +#define OPCODE_COMMON_GET_ACTIVE_PROFILE 167 #define OPCODE_COMMON_SET_HSW_CONFIG 153 #define OPCODE_COMMON_GET_FN_PRIVILEGES 170 #define OPCODE_COMMON_READ_OBJECT 171 @@ -452,7 +453,7 @@ u8 rsvd2[32]; } __packed; -struct amap_mcc_context_lancer { +struct amap_mcc_context_v1 { u8 async_cq_id[16]; u8 ring_size[4]; u8 rsvd0[12]; @@ -476,7 +477,7 @@ u16 num_pages; u16 cq_id; u32 async_event_bitmap[1]; - u8 context[sizeof(struct amap_mcc_context_be) / 8]; + u8 context[sizeof(struct amap_mcc_context_v1) / 8]; struct phys_addr pages[8]; } __packed; @@ -1097,6 +1098,14 @@ u32 function_caps; }; +/* Is BE in a multi-channel mode */ +static inline bool be_is_mc(struct be_adapter *adapter) +{ + return adapter->function_mode & FLEX10_MODE || + adapter->function_mode & VNIC_MODE || + adapter->function_mode & UMC_ENABLED; +} + /******************** RSS Config ****************************************/ /* RSS type Input parameters used to compute RX hash * RSS_ENABLE_IPV4 SRC IPv4, DST IPv4 @@ -1917,6 +1926,17 @@ struct be_cmd_resp_hdr hdr; }; +struct be_cmd_req_get_active_profile { + struct be_cmd_req_hdr hdr; + u32 rsvd; +} __packed; + +struct be_cmd_resp_get_active_profile { + struct be_cmd_resp_hdr hdr; + u16 active_profile_id; + u16 next_profile_id; +} __packed; + struct be_cmd_enable_disable_vf { struct be_cmd_req_hdr hdr; u8 enable; @@ -2037,8 +2057,10 @@ int be_cmd_set_fn_privileges(struct be_adapter *adapter, u32 privileges, u32 vf_num); int be_cmd_get_mac_from_list(struct be_adapter *adapter, u8 *mac, - bool *pmac_id_active, u32 *pmac_id, u8 domain); -int be_cmd_get_active_mac(struct be_adapter *adapter, u32 pmac_id, u8 *mac); + bool *pmac_id_active, u32 *pmac_id, + u32 if_handle, u8 domain); +int be_cmd_get_active_mac(struct be_adapter *adapter, u32 pmac_id, u8 *mac, + u32 if_handle, bool active, u32 domain); int be_cmd_get_perm_mac(struct be_adapter *adapter, u8 *mac); int be_cmd_set_mac_list(struct be_adapter *adapter, u8 *mac_array, u8 mac_count, u32 domain); @@ -2048,6 +2070,8 @@ int be_cmd_get_hsw_config(struct be_adapter *adapter, u16 *pvid, u32 domain, u16 intf_id, u8 *mode); int be_cmd_get_acpi_wol_cap(struct be_adapter *adapter); +int be_cmd_set_fw_log_level(struct be_adapter *adapter, u32 level); +int be_cmd_get_fw_log_level(struct be_adapter *adapter); int be_cmd_get_ext_fat_capabilites(struct be_adapter *adapter, struct be_dma_mem *cmd); int be_cmd_set_ext_fat_capabilites(struct be_adapter *adapter, @@ -2063,6 +2087,7 @@ int be_cmd_get_profile_config(struct be_adapter *adapter, struct be_resources *res, u8 domain); int be_cmd_set_profile_config(struct be_adapter *adapter, u32 bps, u8 domain); +int be_cmd_get_active_profile(struct be_adapter *adapter, u16 *profile); int be_cmd_get_if_id(struct be_adapter *adapter, struct be_vf_cfg *vf_cfg, int vf_num); int be_cmd_enable_vf(struct be_adapter *adapter, u8 domain); --- linux-3.13.0.orig/drivers/net/ethernet/emulex/benet/be_ethtool.c +++ linux-3.13.0/drivers/net/ethernet/emulex/benet/be_ethtool.c @@ -357,10 +357,10 @@ struct be_rx_stats *stats = rx_stats(rxo); do { - start = u64_stats_fetch_begin_bh(&stats->sync); + start = u64_stats_fetch_begin_irq(&stats->sync); data[base] = stats->rx_bytes; data[base + 1] = stats->rx_pkts; - } while (u64_stats_fetch_retry_bh(&stats->sync, start)); + } while (u64_stats_fetch_retry_irq(&stats->sync, start)); for (i = 2; i < ETHTOOL_RXSTATS_NUM; i++) { p = (u8 *)stats + et_rx_stats[i].offset; @@ -373,19 +373,19 @@ struct be_tx_stats *stats = tx_stats(txo); do { - start = u64_stats_fetch_begin_bh(&stats->sync_compl); + start = u64_stats_fetch_begin_irq(&stats->sync_compl); data[base] = stats->tx_compl; - } while (u64_stats_fetch_retry_bh(&stats->sync_compl, start)); + } while (u64_stats_fetch_retry_irq(&stats->sync_compl, start)); do { - start = u64_stats_fetch_begin_bh(&stats->sync); + start = u64_stats_fetch_begin_irq(&stats->sync); for (i = 1; i < ETHTOOL_TXSTATS_NUM; i++) { p = (u8 *)stats + et_tx_stats[i].offset; data[base + i] = (et_tx_stats[i].size == sizeof(u64)) ? *(u64 *)p : *(u32 *)p; } - } while (u64_stats_fetch_retry_bh(&stats->sync, start)); + } while (u64_stats_fetch_retry_irq(&stats->sync, start)); base += ETHTOOL_TXSTATS_NUM; } } @@ -713,12 +713,13 @@ { struct be_adapter *adapter = netdev_priv(netdev); - if (be_is_wol_supported(adapter)) { + if (adapter->wol_cap & BE_WOL_CAP) { wol->supported |= WAKE_MAGIC; - if (adapter->wol) + if (adapter->wol_en) wol->wolopts |= WAKE_MAGIC; - } else + } else { wol->wolopts = 0; + } memset(&wol->sopass, 0, sizeof(wol->sopass)); } @@ -730,15 +731,15 @@ if (wol->wolopts & ~WAKE_MAGIC) return -EOPNOTSUPP; - if (!be_is_wol_supported(adapter)) { + if (!(adapter->wol_cap & BE_WOL_CAP)) { dev_warn(&adapter->pdev->dev, "WOL not supported\n"); return -EOPNOTSUPP; } if (wol->wolopts & WAKE_MAGIC) - adapter->wol = true; + adapter->wol_en = true; else - adapter->wol = false; + adapter->wol_en = false; return 0; } @@ -904,73 +905,21 @@ { struct be_adapter *adapter = netdev_priv(netdev); - if (lancer_chip(adapter)) { - dev_err(&adapter->pdev->dev, "Operation not supported\n"); - return -EOPNOTSUPP; - } - return adapter->msg_enable; } -static void be_set_fw_log_level(struct be_adapter *adapter, u32 level) -{ - struct be_dma_mem extfat_cmd; - struct be_fat_conf_params *cfgs; - int status; - int i, j; - - memset(&extfat_cmd, 0, sizeof(struct be_dma_mem)); - extfat_cmd.size = sizeof(struct be_cmd_resp_get_ext_fat_caps); - extfat_cmd.va = pci_alloc_consistent(adapter->pdev, extfat_cmd.size, - &extfat_cmd.dma); - if (!extfat_cmd.va) { - dev_err(&adapter->pdev->dev, "%s: Memory allocation failure\n", - __func__); - goto err; - } - status = be_cmd_get_ext_fat_capabilites(adapter, &extfat_cmd); - if (!status) { - cfgs = (struct be_fat_conf_params *)(extfat_cmd.va + - sizeof(struct be_cmd_resp_hdr)); - for (i = 0; i < le32_to_cpu(cfgs->num_modules); i++) { - u32 num_modes = le32_to_cpu(cfgs->module[i].num_modes); - for (j = 0; j < num_modes; j++) { - if (cfgs->module[i].trace_lvl[j].mode == - MODE_UART) - cfgs->module[i].trace_lvl[j].dbg_lvl = - cpu_to_le32(level); - } - } - status = be_cmd_set_ext_fat_capabilites(adapter, &extfat_cmd, - cfgs); - if (status) - dev_err(&adapter->pdev->dev, - "Message level set failed\n"); - } else { - dev_err(&adapter->pdev->dev, "Message level get failed\n"); - } - - pci_free_consistent(adapter->pdev, extfat_cmd.size, extfat_cmd.va, - extfat_cmd.dma); -err: - return; -} - static void be_set_msg_level(struct net_device *netdev, u32 level) { struct be_adapter *adapter = netdev_priv(netdev); - if (lancer_chip(adapter)) { - dev_err(&adapter->pdev->dev, "Operation not supported\n"); - return; - } - if (adapter->msg_enable == level) return; if ((level & NETIF_MSG_HW) != (adapter->msg_enable & NETIF_MSG_HW)) - be_set_fw_log_level(adapter, level & NETIF_MSG_HW ? - FW_LOG_LEVEL_DEFAULT : FW_LOG_LEVEL_FATAL); + if (BEx_chip(adapter)) + be_cmd_set_fw_log_level(adapter, level & NETIF_MSG_HW ? + FW_LOG_LEVEL_DEFAULT : + FW_LOG_LEVEL_FATAL); adapter->msg_enable = level; return; --- linux-3.13.0.orig/drivers/net/ethernet/emulex/benet/be_main.c +++ linux-3.13.0/drivers/net/ethernet/emulex/benet/be_main.c @@ -121,12 +121,6 @@ "Unknown" }; -/* Is BE in a multi-channel mode */ -static inline bool be_is_mc(struct be_adapter *adapter) { - return (adapter->function_mode & FLEX10_MODE || - adapter->function_mode & VNIC_MODE || - adapter->function_mode & UMC_ENABLED); -} static void be_queue_free(struct be_adapter *adapter, struct be_queue_info *q) { @@ -258,6 +252,12 @@ if (!is_valid_ether_addr(addr->sa_data)) return -EADDRNOTAVAIL; + /* Proceed further only if, User provided MAC is different + * from active MAC + */ + if (ether_addr_equal(addr->sa_data, netdev->dev_addr)) + return 0; + /* The PMAC_ADD cmd may fail if the VF doesn't have FILTMGMT * privilege or if PF did not provision the new MAC address. * On BE3, this cmd will always fail if the VF doesn't have the @@ -280,7 +280,8 @@ /* Decide if the new MAC is successfully activated only after * querying the FW */ - status = be_cmd_get_active_mac(adapter, curr_pmac_id, mac); + status = be_cmd_get_active_mac(adapter, curr_pmac_id, mac, + adapter->if_handle, true, 0); if (status) goto err; @@ -590,10 +591,10 @@ for_all_rx_queues(adapter, rxo, i) { const struct be_rx_stats *rx_stats = rx_stats(rxo); do { - start = u64_stats_fetch_begin_bh(&rx_stats->sync); + start = u64_stats_fetch_begin_irq(&rx_stats->sync); pkts = rx_stats(rxo)->rx_pkts; bytes = rx_stats(rxo)->rx_bytes; - } while (u64_stats_fetch_retry_bh(&rx_stats->sync, start)); + } while (u64_stats_fetch_retry_irq(&rx_stats->sync, start)); stats->rx_packets += pkts; stats->rx_bytes += bytes; stats->multicast += rx_stats(rxo)->rx_mcast_pkts; @@ -604,10 +605,10 @@ for_all_tx_queues(adapter, txo, i) { const struct be_tx_stats *tx_stats = tx_stats(txo); do { - start = u64_stats_fetch_begin_bh(&tx_stats->sync); + start = u64_stats_fetch_begin_irq(&tx_stats->sync); pkts = tx_stats(txo)->tx_pkts; bytes = tx_stats(txo)->tx_bytes; - } while (u64_stats_fetch_retry_bh(&tx_stats->sync, start)); + } while (u64_stats_fetch_retry_irq(&tx_stats->sync, start)); stats->tx_packets += pkts; stats->tx_bytes += bytes; } @@ -1096,8 +1097,6 @@ dev_info(&adapter->pdev->dev, "Disabling VLAN Promiscuous mode.\n"); adapter->flags &= ~BE_FLAGS_VLAN_PROMISC; - dev_info(&adapter->pdev->dev, - "Re-Enabling HW VLAN filtering\n"); } } } @@ -1105,12 +1104,12 @@ return status; set_vlan_promisc: - dev_warn(&adapter->pdev->dev, "Exhausted VLAN HW filters.\n"); + if (adapter->flags & BE_FLAGS_VLAN_PROMISC) + return 0; status = be_cmd_rx_filter(adapter, BE_FLAGS_VLAN_PROMISC, ON); if (!status) { dev_info(&adapter->pdev->dev, "Enable VLAN Promiscuous mode\n"); - dev_info(&adapter->pdev->dev, "Disabling HW VLAN filtering\n"); adapter->flags |= BE_FLAGS_VLAN_PROMISC; } else dev_err(&adapter->pdev->dev, @@ -1123,19 +1122,18 @@ struct be_adapter *adapter = netdev_priv(netdev); int status = 0; - /* Packets with VID 0 are always received by Lancer by default */ if (lancer_chip(adapter) && vid == 0) goto ret; adapter->vlan_tag[vid] = 1; - if (adapter->vlans_added <= (be_max_vlans(adapter) + 1)) - status = be_vid_config(adapter); + adapter->vlans_added++; - if (!status) - adapter->vlans_added++; - else + status = be_vid_config(adapter); + if (status) { + adapter->vlans_added--; adapter->vlan_tag[vid] = 0; + } ret: return status; } @@ -1150,9 +1148,7 @@ goto ret; adapter->vlan_tag[vid] = 0; - if (adapter->vlans_added <= be_max_vlans(adapter)) - status = be_vid_config(adapter); - + status = be_vid_config(adapter); if (!status) adapter->vlans_added--; else @@ -1374,15 +1370,15 @@ rxo = &adapter->rx_obj[eqo->idx]; do { - start = u64_stats_fetch_begin_bh(&rxo->stats.sync); + start = u64_stats_fetch_begin_irq(&rxo->stats.sync); rx_pkts = rxo->stats.rx_pkts; - } while (u64_stats_fetch_retry_bh(&rxo->stats.sync, start)); + } while (u64_stats_fetch_retry_irq(&rxo->stats.sync, start)); txo = &adapter->tx_obj[eqo->idx]; do { - start = u64_stats_fetch_begin_bh(&txo->stats.sync); + start = u64_stats_fetch_begin_irq(&txo->stats.sync); tx_pkts = txo->stats.tx_reqs; - } while (u64_stats_fetch_retry_bh(&txo->stats.sync, start)); + } while (u64_stats_fetch_retry_irq(&txo->stats.sync, start)); /* Skip, if wrapped around or first calculation */ @@ -1442,12 +1438,12 @@ (rxcp->ip_csum || rxcp->ipv6); } -static struct be_rx_page_info *get_rx_page_info(struct be_rx_obj *rxo, - u16 frag_idx) +static struct be_rx_page_info *get_rx_page_info(struct be_rx_obj *rxo) { struct be_adapter *adapter = rxo->adapter; struct be_rx_page_info *rx_page_info; struct be_queue_info *rxq = &rxo->q; + u16 frag_idx = rxq->tail; rx_page_info = &rxo->page_info_tbl[frag_idx]; BUG_ON(!rx_page_info->page); @@ -1459,6 +1455,7 @@ rx_page_info->last_page_user = false; } + queue_tail_inc(rxq); atomic_dec(&rxq->used); return rx_page_info; } @@ -1467,15 +1464,13 @@ static void be_rx_compl_discard(struct be_rx_obj *rxo, struct be_rx_compl_info *rxcp) { - struct be_queue_info *rxq = &rxo->q; struct be_rx_page_info *page_info; u16 i, num_rcvd = rxcp->num_rcvd; for (i = 0; i < num_rcvd; i++) { - page_info = get_rx_page_info(rxo, rxcp->rxq_idx); + page_info = get_rx_page_info(rxo); put_page(page_info->page); memset(page_info, 0, sizeof(*page_info)); - index_inc(&rxcp->rxq_idx, rxq->len); } } @@ -1486,13 +1481,12 @@ static void skb_fill_rx_data(struct be_rx_obj *rxo, struct sk_buff *skb, struct be_rx_compl_info *rxcp) { - struct be_queue_info *rxq = &rxo->q; struct be_rx_page_info *page_info; u16 i, j; u16 hdr_len, curr_frag_len, remaining; u8 *start; - page_info = get_rx_page_info(rxo, rxcp->rxq_idx); + page_info = get_rx_page_info(rxo); start = page_address(page_info->page) + page_info->page_offset; prefetch(start); @@ -1526,10 +1520,9 @@ } /* More frags present for this completion */ - index_inc(&rxcp->rxq_idx, rxq->len); remaining = rxcp->pkt_size - curr_frag_len; for (i = 1, j = 0; i < rxcp->num_rcvd; i++) { - page_info = get_rx_page_info(rxo, rxcp->rxq_idx); + page_info = get_rx_page_info(rxo); curr_frag_len = min(remaining, rx_frag_size); /* Coalesce all frags from the same physical page in one slot */ @@ -1550,7 +1543,6 @@ skb->data_len += curr_frag_len; skb->truesize += rx_frag_size; remaining -= curr_frag_len; - index_inc(&rxcp->rxq_idx, rxq->len); page_info->page = NULL; } BUG_ON(j > MAX_SKB_FRAGS); @@ -1598,7 +1590,6 @@ struct be_adapter *adapter = rxo->adapter; struct be_rx_page_info *page_info; struct sk_buff *skb = NULL; - struct be_queue_info *rxq = &rxo->q; u16 remaining, curr_frag_len; u16 i, j; @@ -1610,7 +1601,7 @@ remaining = rxcp->pkt_size; for (i = 0, j = -1; i < rxcp->num_rcvd; i++) { - page_info = get_rx_page_info(rxo, rxcp->rxq_idx); + page_info = get_rx_page_info(rxo); curr_frag_len = min(remaining, rx_frag_size); @@ -1628,7 +1619,6 @@ skb_frag_size_add(&skb_shinfo(skb)->frags[j], curr_frag_len); skb->truesize += rx_frag_size; remaining -= curr_frag_len; - index_inc(&rxcp->rxq_idx, rxq->len); memset(page_info, 0, sizeof(*page_info)); } BUG_ON(j > MAX_SKB_FRAGS); @@ -1663,8 +1653,6 @@ AMAP_GET_BITS(struct amap_eth_rx_compl_v1, l4_cksm, compl); rxcp->ipv6 = AMAP_GET_BITS(struct amap_eth_rx_compl_v1, ip_version, compl); - rxcp->rxq_idx = - AMAP_GET_BITS(struct amap_eth_rx_compl_v1, fragndx, compl); rxcp->num_rcvd = AMAP_GET_BITS(struct amap_eth_rx_compl_v1, numfrags, compl); rxcp->pkt_type = @@ -1695,8 +1683,6 @@ AMAP_GET_BITS(struct amap_eth_rx_compl_v0, l4_cksm, compl); rxcp->ipv6 = AMAP_GET_BITS(struct amap_eth_rx_compl_v0, ip_version, compl); - rxcp->rxq_idx = - AMAP_GET_BITS(struct amap_eth_rx_compl_v0, fragndx, compl); rxcp->num_rcvd = AMAP_GET_BITS(struct amap_eth_rx_compl_v0, numfrags, compl); rxcp->pkt_type = @@ -1921,7 +1907,6 @@ struct be_rx_compl_info *rxcp; struct be_adapter *adapter = rxo->adapter; int flush_wait = 0; - u16 tail; /* Consume pending rx completions. * Wait for the flush completion (identified by zero num_rcvd) @@ -1954,9 +1939,8 @@ be_cq_notify(adapter, rx_cq->id, false, 0); /* Then free posted rx buffers that were not used */ - tail = (rxq->head + rxq->len - atomic_read(&rxq->used)) % rxq->len; - for (; atomic_read(&rxq->used) > 0; index_inc(&tail, rxq->len)) { - page_info = get_rx_page_info(rxo, tail); + while (atomic_read(&rxq->used) > 0) { + page_info = get_rx_page_info(rxo); put_page(page_info->page); memset(page_info, 0, sizeof(*page_info)); } @@ -2797,7 +2781,7 @@ for_all_evt_queues(adapter, eqo, i) { napi_enable(&eqo->napi); be_enable_busy_poll(eqo); - be_eq_notify(adapter, eqo->q.id, true, false, 0); + be_eq_notify(adapter, eqo->q.id, true, true, 0); } adapter->flags |= BE_FLAGS_NAPI_ENABLED; @@ -2891,14 +2875,11 @@ int status, vf; u8 mac[ETH_ALEN]; struct be_vf_cfg *vf_cfg; - bool active = false; for_all_vfs(adapter, vf_cfg, vf) { - be_cmd_get_mac_from_list(adapter, mac, &active, - &vf_cfg->pmac_id, 0); - - status = be_cmd_mac_addr_query(adapter, mac, false, - vf_cfg->if_handle, 0); + status = be_cmd_get_active_mac(adapter, vf_cfg->pmac_id, + mac, vf_cfg->if_handle, + false, vf+1); if (status) return status; memcpy(vf_cfg->mac_addr, mac, ETH_ALEN); @@ -3240,6 +3221,7 @@ /* Routine to query per function resource limits */ static int be_get_config(struct be_adapter *adapter) { + u16 profile_id; int status; status = be_cmd_query_fw_cfg(adapter, &adapter->port_num, @@ -3249,6 +3231,13 @@ if (status) return status; + if (be_physfn(adapter)) { + status = be_cmd_get_active_profile(adapter, &profile_id); + if (!status) + dev_info(&adapter->pdev->dev, + "Using profile 0x%x\n", profile_id); + } + status = be_get_resources(adapter); if (status) return status; @@ -3403,11 +3392,6 @@ goto err; be_cmd_get_fn_privileges(adapter, &adapter->cmd_privileges, 0); - /* In UMC mode FW does not return right privileges. - * Override with correct privilege equivalent to PF. - */ - if (be_is_mc(adapter)) - adapter->cmd_privileges = MAX_PRIVILEGES; status = be_mac_setup(adapter); if (status) @@ -3426,6 +3410,8 @@ be_set_rx_mode(adapter->netdev); + be_cmd_get_acpi_wol_cap(adapter); + be_cmd_get_flow_control(adapter, &tx_fc, &rx_fc); if (rx_fc != adapter->rx_fc || tx_fc != adapter->tx_fc) @@ -4295,74 +4281,22 @@ free_netdev(adapter->netdev); } -bool be_is_wol_supported(struct be_adapter *adapter) -{ - return ((adapter->wol_cap & BE_WOL_CAP) && - !be_is_wol_excluded(adapter)) ? true : false; -} - -u32 be_get_fw_log_level(struct be_adapter *adapter) -{ - struct be_dma_mem extfat_cmd; - struct be_fat_conf_params *cfgs; - int status; - u32 level = 0; - int j; - - if (lancer_chip(adapter)) - return 0; - - memset(&extfat_cmd, 0, sizeof(struct be_dma_mem)); - extfat_cmd.size = sizeof(struct be_cmd_resp_get_ext_fat_caps); - extfat_cmd.va = pci_alloc_consistent(adapter->pdev, extfat_cmd.size, - &extfat_cmd.dma); - - if (!extfat_cmd.va) { - dev_err(&adapter->pdev->dev, "%s: Memory allocation failure\n", - __func__); - goto err; - } - - status = be_cmd_get_ext_fat_capabilites(adapter, &extfat_cmd); - if (!status) { - cfgs = (struct be_fat_conf_params *)(extfat_cmd.va + - sizeof(struct be_cmd_resp_hdr)); - for (j = 0; j < le32_to_cpu(cfgs->module[0].num_modes); j++) { - if (cfgs->module[0].trace_lvl[j].mode == MODE_UART) - level = cfgs->module[0].trace_lvl[j].dbg_lvl; - } - } - pci_free_consistent(adapter->pdev, extfat_cmd.size, extfat_cmd.va, - extfat_cmd.dma); -err: - return level; -} - static int be_get_initial_config(struct be_adapter *adapter) { - int status; - u32 level; + int status, level; status = be_cmd_get_cntl_attributes(adapter); if (status) return status; - status = be_cmd_get_acpi_wol_cap(adapter); - if (status) { - /* in case of a failure to get wol capabillities - * check the exclusion list to determine WOL capability */ - if (!be_is_wol_excluded(adapter)) - adapter->wol_cap |= BE_WOL_CAP; - } - - if (be_is_wol_supported(adapter)) - adapter->wol = true; - /* Must be a power of 2 or else MODULO will BUG_ON */ adapter->be_get_temp_freq = 64; - level = be_get_fw_log_level(adapter); - adapter->msg_enable = level <= FW_LOG_LEVEL_DEFAULT ? NETIF_MSG_HW : 0; + if (BEx_chip(adapter)) { + level = be_cmd_get_fw_log_level(adapter); + adapter->msg_enable = + level <= FW_LOG_LEVEL_DEFAULT ? NETIF_MSG_HW : 0; + } adapter->cfg_num_qs = netif_get_num_default_rss_queues(); return 0; @@ -4625,7 +4559,7 @@ struct be_adapter *adapter = pci_get_drvdata(pdev); struct net_device *netdev = adapter->netdev; - if (adapter->wol) + if (adapter->wol_en) be_setup_wol(adapter, true); be_intr_set(adapter, false); @@ -4681,7 +4615,7 @@ msecs_to_jiffies(1000)); netif_device_attach(netdev); - if (adapter->wol) + if (adapter->wol_en) be_setup_wol(adapter, false); return 0; --- linux-3.13.0.orig/drivers/net/ethernet/freescale/fec_main.c +++ linux-3.13.0/drivers/net/ethernet/freescale/fec_main.c @@ -528,13 +528,6 @@ /* Clear any outstanding interrupt. */ writel(0xffc00000, fep->hwp + FEC_IEVENT); - /* Setup multicast filter. */ - set_multicast_list(ndev); -#ifndef CONFIG_M5272 - writel(0, fep->hwp + FEC_HASH_TABLE_HIGH); - writel(0, fep->hwp + FEC_HASH_TABLE_LOW); -#endif - /* Set maximum receive buffer size. */ writel(PKT_MAXBLR_SIZE, fep->hwp + FEC_R_BUFF_SIZE); @@ -655,6 +648,13 @@ writel(rcntl, fep->hwp + FEC_R_CNTRL); + /* Setup multicast filter. */ + set_multicast_list(ndev); +#ifndef CONFIG_M5272 + writel(0, fep->hwp + FEC_HASH_TABLE_HIGH); + writel(0, fep->hwp + FEC_HASH_TABLE_LOW); +#endif + if (id_entry->driver_data & FEC_QUIRK_ENET_MAC) { /* enable ENET endian swap */ ecntl |= (1 << 8); --- linux-3.13.0.orig/drivers/net/ethernet/freescale/xgmac_mdio.c +++ linux-3.13.0/drivers/net/ethernet/freescale/xgmac_mdio.c @@ -32,6 +32,10 @@ __be32 mdio_addr; /* MDIO address */ } __packed; +/* Taken from memac_mdio.c */ +#define MDIO_STAT_ENC (1 << 6) +#define MDIO_STAT_HOLD_15_CLK (7 << 2) + #define MDIO_STAT_CLKDIV(x) (((x>>1) & 0xff) << 8) #define MDIO_STAT_BSY (1 << 0) #define MDIO_STAT_RD_ER (1 << 1) @@ -91,26 +95,39 @@ static int xgmac_mdio_write(struct mii_bus *bus, int phy_id, int regnum, u16 value) { struct tgec_mdio_controller __iomem *regs = bus->priv; - uint16_t dev_addr = regnum >> 16; + uint16_t dev_addr; + u32 mdio_ctl, mdio_stat; int ret; - /* Setup the MII Mgmt clock speed */ - out_be32(®s->mdio_stat, MDIO_STAT_CLKDIV(100)); + mdio_stat = in_be32(®s->mdio_stat); + if (regnum & MII_ADDR_C45) { + /* Clause 45 (ie 10G) */ + dev_addr = (regnum >> 16) & 0x1f; + mdio_stat |= MDIO_STAT_ENC | MDIO_STAT_HOLD_15_CLK; + } else { + /* Clause 22 (ie 1G) */ + dev_addr = regnum & 0x1f; + mdio_stat &= ~MDIO_STAT_ENC; + } + + out_be32(®s->mdio_stat, mdio_stat); ret = xgmac_wait_until_free(&bus->dev, regs); if (ret) return ret; /* Set the port and dev addr */ - out_be32(®s->mdio_ctl, - MDIO_CTL_PORT_ADDR(phy_id) | MDIO_CTL_DEV_ADDR(dev_addr)); + mdio_ctl = MDIO_CTL_PORT_ADDR(phy_id) | MDIO_CTL_DEV_ADDR(dev_addr); + out_be32(®s->mdio_ctl, mdio_ctl); /* Set the register address */ - out_be32(®s->mdio_addr, regnum & 0xffff); + if (regnum & MII_ADDR_C45) { + out_be32(®s->mdio_addr, regnum & 0xffff); - ret = xgmac_wait_until_free(&bus->dev, regs); - if (ret) - return ret; + ret = xgmac_wait_until_free(&bus->dev, regs); + if (ret) + return ret; + } /* Write the value to the register */ out_be32(®s->mdio_data, MDIO_DATA(value)); @@ -130,13 +147,22 @@ static int xgmac_mdio_read(struct mii_bus *bus, int phy_id, int regnum) { struct tgec_mdio_controller __iomem *regs = bus->priv; - uint16_t dev_addr = regnum >> 16; + uint16_t dev_addr; + uint32_t mdio_stat; uint32_t mdio_ctl; uint16_t value; int ret; - /* Setup the MII Mgmt clock speed */ - out_be32(®s->mdio_stat, MDIO_STAT_CLKDIV(100)); + mdio_stat = in_be32(®s->mdio_stat); + if (regnum & MII_ADDR_C45) { + dev_addr = (regnum >> 16) & 0x1f; + mdio_stat |= MDIO_STAT_ENC | MDIO_STAT_HOLD_15_CLK; + } else { + dev_addr = regnum & 0x1f; + mdio_stat = ~MDIO_STAT_ENC; + } + + out_be32(®s->mdio_stat, mdio_stat); ret = xgmac_wait_until_free(&bus->dev, regs); if (ret) @@ -147,11 +173,13 @@ out_be32(®s->mdio_ctl, mdio_ctl); /* Set the register address */ - out_be32(®s->mdio_addr, regnum & 0xffff); + if (regnum & MII_ADDR_C45) { + out_be32(®s->mdio_addr, regnum & 0xffff); - ret = xgmac_wait_until_free(&bus->dev, regs); - if (ret) - return ret; + ret = xgmac_wait_until_free(&bus->dev, regs); + if (ret) + return ret; + } /* Initiate the read */ out_be32(®s->mdio_ctl, mdio_ctl | MDIO_CTL_READ); @@ -162,7 +190,7 @@ /* Return all Fs if nothing was there */ if (in_be32(®s->mdio_stat) & MDIO_STAT_RD_ER) { - dev_err(&bus->dev, "MDIO read error\n"); + dev_dbg(&bus->dev, "MDIO read error\n"); return 0xffff; } @@ -181,7 +209,7 @@ mutex_lock(&bus->mdio_lock); /* Setup the MII Mgmt clock speed */ - out_be32(®s->mdio_stat, MDIO_STAT_CLKDIV(100)); + clrbits32(®s->mdio_stat, MDIO_STAT_ENC); ret = xgmac_wait_until_free(&bus->dev, regs); @@ -256,6 +284,9 @@ { .compatible = "fsl,fman-xmdio", }, + { + .compatible = "fsl,fman-memac-mdio", + }, {}, }; MODULE_DEVICE_TABLE(of, xgmac_mdio_match); --- linux-3.13.0.orig/drivers/net/ethernet/ibm/ibmveth.c +++ linux-3.13.0/drivers/net/ethernet/ibm/ibmveth.c @@ -293,6 +293,18 @@ atomic_add(buffers_added, &(pool->available)); } +/* + * The final 8 bytes of the buffer list is a counter of frames dropped + * because there was not a buffer in the buffer list capable of holding + * the frame. + */ +static void ibmveth_update_rx_no_buffer(struct ibmveth_adapter *adapter) +{ + __be64 *p = adapter->buffer_list_addr + 4096 - 8; + + adapter->rx_no_buffer = be64_to_cpup(p); +} + /* replenish routine */ static void ibmveth_replenish_task(struct ibmveth_adapter *adapter) { @@ -308,8 +320,7 @@ ibmveth_replenish_buffer_pool(adapter, pool); } - adapter->rx_no_buffer = *(u64 *)(((char*)adapter->buffer_list_addr) + - 4096 - 8); + ibmveth_update_rx_no_buffer(adapter); } /* empty and free ana buffer pool - also used to do cleanup in error paths */ @@ -523,10 +534,21 @@ return rc; } +static u64 ibmveth_encode_mac_addr(u8 *mac) +{ + int i; + u64 encoded = 0; + + for (i = 0; i < ETH_ALEN; i++) + encoded = (encoded << 8) | mac[i]; + + return encoded; +} + static int ibmveth_open(struct net_device *netdev) { struct ibmveth_adapter *adapter = netdev_priv(netdev); - u64 mac_address = 0; + u64 mac_address; int rxq_entries = 1; unsigned long lpar_rc; int rc; @@ -580,8 +602,7 @@ adapter->rx_queue.num_slots = rxq_entries; adapter->rx_queue.toggle = 1; - memcpy(&mac_address, netdev->dev_addr, netdev->addr_len); - mac_address = mac_address >> 16; + mac_address = ibmveth_encode_mac_addr(netdev->dev_addr); rxq_desc.fields.flags_len = IBMVETH_BUF_VALID | adapter->rx_queue.queue_len; @@ -689,8 +710,7 @@ free_irq(netdev->irq, netdev); - adapter->rx_no_buffer = *(u64 *)(((char *)adapter->buffer_list_addr) + - 4096 - 8); + ibmveth_update_rx_no_buffer(adapter); ibmveth_cleanup(adapter); @@ -1184,8 +1204,8 @@ /* add the addresses to the filter table */ netdev_for_each_mc_addr(ha, netdev) { /* add the multicast address to the filter table */ - unsigned long mcast_addr = 0; - memcpy(((char *)&mcast_addr)+2, ha->addr, ETH_ALEN); + u64 mcast_addr; + mcast_addr = ibmveth_encode_mac_addr(ha->addr); lpar_rc = h_multicast_ctrl(adapter->vdev->unit_address, IbmVethMcastAddFilter, mcast_addr); @@ -1369,9 +1389,6 @@ netif_napi_add(netdev, &adapter->napi, ibmveth_poll, 16); - adapter->mac_addr = 0; - memcpy(&adapter->mac_addr, mac_addr_p, ETH_ALEN); - netdev->irq = dev->irq; netdev->netdev_ops = &ibmveth_netdev_ops; netdev->ethtool_ops = &netdev_ethtool_ops; @@ -1380,7 +1397,7 @@ NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM; netdev->features |= netdev->hw_features; - memcpy(netdev->dev_addr, &adapter->mac_addr, netdev->addr_len); + memcpy(netdev->dev_addr, mac_addr_p, ETH_ALEN); for (i = 0; i < IBMVETH_NUM_BUFF_POOLS; i++) { struct kobject *kobj = &adapter->rx_buff_pool[i].kobj; --- linux-3.13.0.orig/drivers/net/ethernet/ibm/ibmveth.h +++ linux-3.13.0/drivers/net/ethernet/ibm/ibmveth.h @@ -139,7 +139,6 @@ struct napi_struct napi; struct net_device_stats stats; unsigned int mcastFilterSize; - unsigned long mac_addr; void * buffer_list_addr; void * filter_list_addr; dma_addr_t buffer_list_dma; --- linux-3.13.0.orig/drivers/net/ethernet/intel/Kconfig +++ linux-3.13.0/drivers/net/ethernet/intel/Kconfig @@ -243,6 +243,7 @@ config I40E tristate "Intel(R) Ethernet Controller XL710 Family support" + select PTP_1588_CLOCK depends on PCI ---help--- This driver supports Intel(R) Ethernet Controller XL710 Family of @@ -259,4 +260,44 @@ To compile this driver as a module, choose M here. The module will be called i40e. +config I40E_VXLAN + bool "Virtual eXtensible Local Area Network Support" + default n + depends on I40E && VXLAN && !(I40E=y && VXLAN=m) + ---help--- + This allows one to create VXLAN virtual interfaces that provide + Layer 2 Networks over Layer 3 Networks. VXLAN is often used + to tunnel virtual network infrastructure in virtualized environments. + Say Y here if you want to use Virtual eXtensible Local Area Network + (VXLAN) in the driver. + +config I40E_DCB + bool "Data Center Bridging (DCB) Support" + default n + depends on I40E && DCB + ---help--- + Say Y here if you want to use Data Center Bridging (DCB) in the + driver. + + If unsure, say N. + +config I40EVF + tristate "Intel(R) XL710 X710 Virtual Function Ethernet support" + depends on PCI_MSI + ---help--- + This driver supports Intel(R) XL710 and X710 virtual functions. + For more information on how to identify your adapter, go to the + Adapter & Driver ID Guide at: + + + + For general information and support, go to the Intel support + website at: + + + + To compile this driver as a module, choose M here. The module + will be called i40evf. MSI-X interrupt support is required + for this driver to work correctly. + endif # NET_VENDOR_INTEL --- linux-3.13.0.orig/drivers/net/ethernet/intel/Makefile +++ linux-3.13.0/drivers/net/ethernet/intel/Makefile @@ -11,3 +11,4 @@ obj-$(CONFIG_IXGBEVF) += ixgbevf/ obj-$(CONFIG_I40E) += i40e/ obj-$(CONFIG_IXGB) += ixgb/ +obj-$(CONFIG_I40EVF) += i40evf/ --- linux-3.13.0.orig/drivers/net/ethernet/intel/e100.c +++ linux-3.13.0/drivers/net/ethernet/intel/e100.c @@ -3034,7 +3034,7 @@ *enable_wake = false; } - pci_disable_device(pdev); + pci_clear_master(pdev); } static int __e100_power_off(struct pci_dev *pdev, bool wake) --- linux-3.13.0.orig/drivers/net/ethernet/intel/e1000e/netdev.c +++ linux-3.13.0/drivers/net/ethernet/intel/e1000e/netdev.c @@ -2976,11 +2976,21 @@ u32 rctl, rfctl; u32 pages = 0; - /* Workaround Si errata on PCHx - configure jumbo frame flow */ - if ((hw->mac.type >= e1000_pch2lan) && - (adapter->netdev->mtu > ETH_DATA_LEN) && - e1000_lv_jumbo_workaround_ich8lan(hw, true)) - e_dbg("failed to enable jumbo frame workaround mode\n"); + /* Workaround Si errata on PCHx - configure jumbo frame flow. + * If jumbo frames not set, program related MAC/PHY registers + * to h/w defaults + */ + if (hw->mac.type >= e1000_pch2lan) { + s32 ret_val; + + if (adapter->netdev->mtu > ETH_DATA_LEN) + ret_val = e1000_lv_jumbo_workaround_ich8lan(hw, true); + else + ret_val = e1000_lv_jumbo_workaround_ich8lan(hw, false); + + if (ret_val) + e_dbg("failed to enable|disable jumbo frame workaround mode\n"); + } /* Program MC offset vector base */ rctl = er32(RCTL); --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/Makefile +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/Makefile @@ -1,7 +1,7 @@ ################################################################################ # # Intel Ethernet Controller XL710 Family Linux Driver -# Copyright(c) 2013 Intel Corporation. +# Copyright(c) 2013 - 2014 Intel Corporation. # # This program is free software; you can redistribute it and/or modify it # under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # more details. # -# You should have received a copy of the GNU General Public License along with -# this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . # # The full GNU General Public License is included in this distribution in # the file called "COPYING". @@ -41,4 +40,7 @@ i40e_debugfs.o \ i40e_diag.o \ i40e_txrx.o \ + i40e_ptp.o \ i40e_virtchnl_pf.o + +i40e-$(CONFIG_I40E_DCB) += i40e_dcb.o i40e_dcb_nl.o --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e.h @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -29,6 +28,7 @@ #define _I40E_H_ #include +#include #include #include #include @@ -50,11 +50,15 @@ #include #include #include +#include +#include +#include #include "i40e_type.h" #include "i40e_prototype.h" #include "i40e_virtchnl.h" #include "i40e_virtchnl_pf.h" #include "i40e_txrx.h" +#include "i40e_dcb.h" /* Useful i40e defaults */ #define I40E_BASE_PF_SEID 16 @@ -63,7 +67,7 @@ #define I40E_MAX_VEB 16 #define I40E_MAX_NUM_DESCRIPTORS 4096 -#define I40E_MAX_REGISTER 0x0038FFFF +#define I40E_MAX_REGISTER 0x800000 #define I40E_DEFAULT_NUM_DESCRIPTORS 512 #define I40E_REQ_DESCRIPTOR_MULTIPLE 32 #define I40E_MIN_NUM_DESCRIPTORS 64 @@ -72,6 +76,7 @@ #define I40E_DEFAULT_QUEUES_PER_VMDQ 2 /* max 16 qps */ #define I40E_DEFAULT_QUEUES_PER_VF 4 #define I40E_DEFAULT_QUEUES_PER_TC 1 /* should be a power of 2 */ +#define I40E_MAX_QUEUES_PER_TC 64 /* should be a power of 2 */ #define I40E_FDIR_RING 0 #define I40E_FDIR_RING_COUNT 32 #define I40E_MAX_AQ_BUF_SIZE 4096 @@ -81,12 +86,14 @@ #define I40E_DEFAULT_MSG_ENABLE 4 #define I40E_NVM_VERSION_LO_SHIFT 0 -#define I40E_NVM_VERSION_LO_MASK (0xf << I40E_NVM_VERSION_LO_SHIFT) -#define I40E_NVM_VERSION_MID_SHIFT 4 -#define I40E_NVM_VERSION_MID_MASK (0xff << I40E_NVM_VERSION_MID_SHIFT) +#define I40E_NVM_VERSION_LO_MASK (0xff << I40E_NVM_VERSION_LO_SHIFT) #define I40E_NVM_VERSION_HI_SHIFT 12 #define I40E_NVM_VERSION_HI_MASK (0xf << I40E_NVM_VERSION_HI_SHIFT) +/* The values in here are decimal coded as hex as is the case in the NVM map*/ +#define I40E_CURRENT_NVM_VERSION_HI 0x2 +#define I40E_CURRENT_NVM_VERSION_LO 0x40 + /* magic for getting defines into strings */ #define STRINGIFY(foo) #foo #define XSTRINGIFY(bar) STRINGIFY(bar) @@ -127,7 +134,10 @@ __I40E_PF_RESET_REQUESTED, __I40E_CORE_RESET_REQUESTED, __I40E_GLOBAL_RESET_REQUESTED, + __I40E_EMP_RESET_REQUESTED, __I40E_FILTER_OVERFLOW_PROMISC, + __I40E_SUSPENDED, + __I40E_BAD_EEPROM, }; enum i40e_interrupt_policy { @@ -144,8 +154,21 @@ }; #define I40E_DEFAULT_ATR_SAMPLE_RATE 20 -#define I40E_FDIR_MAX_RAW_PACKET_LOOKUP 512 -struct i40e_fdir_data { +#define I40E_FDIR_MAX_RAW_PACKET_SIZE 512 +#define I40E_FDIR_BUFFER_FULL_MARGIN 10 +#define I40E_FDIR_BUFFER_HEAD_ROOM 200 + +struct i40e_fdir_filter { + struct hlist_node fdir_node; + /* filter ipnut set */ + u8 flow_type; + u8 ip4_proto; + __be32 dst_ip[4]; + __be32 src_ip[4]; + __be16 src_port; + __be16 dst_port; + __be32 sctp_v_tag; + /* filter control */ u16 q_index; u8 flex_off; u8 pctype; @@ -154,9 +177,10 @@ u8 fd_status; u16 cnt_index; u32 fd_id; - u8 *raw_packet; }; +#define I40E_ETH_P_LLDP 0x88cc + #define I40E_DCB_PRIO_TYPE_STRICT 0 #define I40E_DCB_PRIO_TYPE_ETS 1 #define I40E_DCB_STRICT_PRIO_CREDITS 127 @@ -186,19 +210,28 @@ bool fc_autoneg_status; u16 eeprom_version; - u16 num_vmdq_vsis; /* num vmdq pools this pf has set up */ + u16 num_vmdq_vsis; /* num vmdq vsis this pf has set up */ u16 num_vmdq_qps; /* num queue pairs per vmdq pool */ u16 num_vmdq_msix; /* num queue vectors per vmdq pool */ u16 num_req_vfs; /* num vfs requested for this vf */ u16 num_vf_qps; /* num queue pairs per vf */ - u16 num_tc_qps; /* num queue pairs per TC */ u16 num_lan_qps; /* num lan queues this pf has set up */ u16 num_lan_msix; /* num queue vectors for the base pf vsi */ + int queues_left; /* queues left unclaimed */ u16 rss_size; /* num queues in the RSS array */ u16 rss_size_max; /* HW defined max RSS queues */ u16 fdir_pf_filter_count; /* num of guaranteed filters for this PF */ u8 atr_sample_rate; + bool wol_en; + + struct hlist_head fdir_filter_list; + u16 fdir_pf_active_filters; +#ifdef CONFIG_I40E_VXLAN + __be16 vxlan_ports[I40E_MAX_PF_UDP_OFFLOAD_PORTS]; + u16 pending_vxlan_bitmap; + +#endif enum i40e_interrupt_policy int_policy; u16 rx_itr_default; u16 tx_itr_default; @@ -216,24 +249,27 @@ #define I40E_FLAG_RX_1BUF_ENABLED (u64)(1 << 4) #define I40E_FLAG_RX_PS_ENABLED (u64)(1 << 5) #define I40E_FLAG_RSS_ENABLED (u64)(1 << 6) -#define I40E_FLAG_MQ_ENABLED (u64)(1 << 7) -#define I40E_FLAG_VMDQ_ENABLED (u64)(1 << 8) -#define I40E_FLAG_FDIR_REQUIRES_REINIT (u64)(1 << 9) -#define I40E_FLAG_NEED_LINK_UPDATE (u64)(1 << 10) -#define I40E_FLAG_IN_NETPOLL (u64)(1 << 13) -#define I40E_FLAG_16BYTE_RX_DESC_ENABLED (u64)(1 << 14) -#define I40E_FLAG_CLEAN_ADMINQ (u64)(1 << 15) -#define I40E_FLAG_FILTER_SYNC (u64)(1 << 16) -#define I40E_FLAG_PROCESS_MDD_EVENT (u64)(1 << 18) -#define I40E_FLAG_PROCESS_VFLR_EVENT (u64)(1 << 19) -#define I40E_FLAG_SRIOV_ENABLED (u64)(1 << 20) -#define I40E_FLAG_DCB_ENABLED (u64)(1 << 21) -#define I40E_FLAG_FDIR_ENABLED (u64)(1 << 22) -#define I40E_FLAG_FDIR_ATR_ENABLED (u64)(1 << 23) -#define I40E_FLAG_MFP_ENABLED (u64)(1 << 27) +#define I40E_FLAG_VMDQ_ENABLED (u64)(1 << 7) +#define I40E_FLAG_FDIR_REQUIRES_REINIT (u64)(1 << 8) +#define I40E_FLAG_NEED_LINK_UPDATE (u64)(1 << 9) +#define I40E_FLAG_IN_NETPOLL (u64)(1 << 12) +#define I40E_FLAG_16BYTE_RX_DESC_ENABLED (u64)(1 << 13) +#define I40E_FLAG_CLEAN_ADMINQ (u64)(1 << 14) +#define I40E_FLAG_FILTER_SYNC (u64)(1 << 15) +#define I40E_FLAG_PROCESS_MDD_EVENT (u64)(1 << 17) +#define I40E_FLAG_PROCESS_VFLR_EVENT (u64)(1 << 18) +#define I40E_FLAG_SRIOV_ENABLED (u64)(1 << 19) +#define I40E_FLAG_DCB_ENABLED (u64)(1 << 20) +#define I40E_FLAG_FD_SB_ENABLED (u64)(1 << 21) +#define I40E_FLAG_FD_ATR_ENABLED (u64)(1 << 22) +#define I40E_FLAG_PTP (u64)(1 << 25) +#define I40E_FLAG_MFP_ENABLED (u64)(1 << 26) +#ifdef CONFIG_I40E_VXLAN +#define I40E_FLAG_VXLAN_FILTER_SYNC (u64)(1 << 27) +#endif - u16 num_tx_queues; - u16 num_rx_queues; + /* tracks features that get auto disabled by errors */ + u64 auto_disable_flags; bool stat_offsets_loaded; struct i40e_hw_port_stats stats; @@ -247,6 +283,7 @@ u16 globr_count; /* Global reset count */ u16 empr_count; /* EMP reset count */ u16 pfr_count; /* PF reset count */ + u16 sw_int_count; /* SW interrupt count */ struct mutex switch_mutex; u16 lan_vsi; /* our default LAN VSI */ @@ -270,6 +307,8 @@ struct dentry *i40e_dbg_pf; #endif /* CONFIG_DEBUG_FS */ + u16 instance; /* A unique number per i40e_pf instance in the system */ + /* sr-iov config info */ struct i40e_vf *vf; int num_alloc_vfs; /* actual number of VFs allocated */ @@ -287,6 +326,20 @@ u32 fcoe_hmc_filt_num; u32 fcoe_hmc_cntx_num; struct i40e_filter_control_settings filter_settings; + + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_caps; + struct sk_buff *ptp_tx_skb; + struct work_struct ptp_tx_work; + struct hwtstamp_config tstamp_config; + unsigned long ptp_tx_start; + unsigned long last_rx_ptp_check; + spinlock_t tmreg_lock; /* Used to protect the device time registers. */ + u64 ptp_base_adj; + u32 tx_hwtstamp_timeouts; + u32 rx_hwtstamp_cleared; + bool ptp_tx; + bool ptp_rx; }; struct i40e_mac_filter { @@ -441,15 +494,13 @@ static char buf[32]; snprintf(buf, sizeof(buf), - "f%d.%d a%d.%d n%02d.%02d.%02d e%08x", + "f%d.%d a%d.%d n%02x.%02x e%08x", hw->aq.fw_maj_ver, hw->aq.fw_min_ver, hw->aq.api_maj_ver, hw->aq.api_min_ver, - (hw->nvm.version & I40E_NVM_VERSION_HI_MASK) - >> I40E_NVM_VERSION_HI_SHIFT, - (hw->nvm.version & I40E_NVM_VERSION_MID_MASK) - >> I40E_NVM_VERSION_MID_SHIFT, - (hw->nvm.version & I40E_NVM_VERSION_LO_MASK) - >> I40E_NVM_VERSION_LO_SHIFT, + (hw->nvm.version & I40E_NVM_VERSION_HI_MASK) >> + I40E_NVM_VERSION_HI_SHIFT, + (hw->nvm.version & I40E_NVM_VERSION_LO_MASK) >> + I40E_NVM_VERSION_LO_SHIFT, hw->nvm.eetrack); return buf; @@ -495,6 +546,7 @@ void i40e_down(struct i40e_vsi *vsi); extern const char i40e_driver_name[]; extern const char i40e_driver_version_str[]; +void i40e_do_reset_safe(struct i40e_pf *pf, u32 reset_flags); void i40e_do_reset(struct i40e_pf *pf, u32 reset_flags); void i40e_update_stats(struct i40e_vsi *vsi); void i40e_update_eth_stats(struct i40e_vsi *vsi); @@ -502,16 +554,13 @@ int i40e_fetch_switch_configuration(struct i40e_pf *pf, bool printconfig); -/* needed by i40e_main.c */ -void i40e_add_fdir_filter(struct i40e_fdir_data fdir_data, - struct i40e_ring *tx_ring); -void i40e_add_remove_filter(struct i40e_fdir_data fdir_data, - struct i40e_ring *tx_ring); -void i40e_update_fdir_filter(struct i40e_fdir_data fdir_data, - struct i40e_ring *tx_ring); -int i40e_program_fdir_filter(struct i40e_fdir_data *fdir_data, +int i40e_program_fdir_filter(struct i40e_fdir_filter *fdir_data, u8 *raw_packet, struct i40e_pf *pf, bool add); - +int i40e_add_del_fdir(struct i40e_vsi *vsi, + struct i40e_fdir_filter *input, bool add); +void i40e_fdir_check_and_reenable(struct i40e_pf *pf); +int i40e_get_current_fd_count(struct i40e_pf *pf); +bool i40e_set_ntuple(struct i40e_pf *pf, netdev_features_t features); void i40e_set_ethtool_ops(struct net_device *netdev); struct i40e_mac_filter *i40e_add_filter(struct i40e_vsi *vsi, u8 *macaddr, s16 vlan, @@ -524,10 +573,13 @@ int i40e_vsi_release(struct i40e_vsi *vsi); struct i40e_vsi *i40e_vsi_lookup(struct i40e_pf *pf, enum i40e_vsi_type type, struct i40e_vsi *start_vsi); +int i40e_vsi_control_rings(struct i40e_vsi *vsi, bool enable); +int i40e_reconfig_rss_queues(struct i40e_pf *pf, int queue_count); struct i40e_veb *i40e_veb_setup(struct i40e_pf *pf, u16 flags, u16 uplink_seid, u16 downlink_seid, u8 enabled_tc); void i40e_veb_release(struct i40e_veb *veb); +int i40e_veb_config_tc(struct i40e_veb *veb, u8 enabled_tc); i40e_status i40e_vsi_add_pvid(struct i40e_vsi *vsi, u16 vid); void i40e_vsi_remove_pvid(struct i40e_vsi *vsi); void i40e_vsi_reset_stats(struct i40e_vsi *vsi); @@ -544,8 +596,10 @@ static inline void i40e_dbg_exit(void) {} #endif /* CONFIG_DEBUG_FS*/ void i40e_irq_dynamic_enable(struct i40e_vsi *vsi, int vector); +void i40e_irq_dynamic_disable_icr0(struct i40e_pf *pf); void i40e_irq_dynamic_enable_icr0(struct i40e_pf *pf); int i40e_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd); +int i40e_vsi_open(struct i40e_vsi *vsi); void i40e_vlan_stripping_disable(struct i40e_vsi *vsi); int i40e_vsi_add_vlan(struct i40e_vsi *vsi, s16 vid); int i40e_vsi_kill_vlan(struct i40e_vsi *vsi, s16 vid); @@ -555,5 +609,21 @@ struct i40e_mac_filter *i40e_find_mac(struct i40e_vsi *vsi, u8 *macaddr, bool is_vf, bool is_netdev); void i40e_vlan_stripping_enable(struct i40e_vsi *vsi); - +#ifdef CONFIG_I40E_DCB +void i40e_dcbnl_flush_apps(struct i40e_pf *pf, + struct i40e_dcbx_config *new_cfg); +void i40e_dcbnl_set_all(struct i40e_vsi *vsi); +void i40e_dcbnl_setup(struct i40e_vsi *vsi); +bool i40e_dcb_need_reconfig(struct i40e_pf *pf, + struct i40e_dcbx_config *old_cfg, + struct i40e_dcbx_config *new_cfg); +#endif /* CONFIG_I40E_DCB */ +void i40e_ptp_rx_hang(struct i40e_vsi *vsi); +void i40e_ptp_tx_hwtstamp(struct i40e_pf *pf); +void i40e_ptp_rx_hwtstamp(struct i40e_pf *pf, struct sk_buff *skb, u8 index); +void i40e_ptp_set_increment(struct i40e_pf *pf); +int i40e_ptp_set_ts_config(struct i40e_pf *pf, struct ifreq *ifr); +int i40e_ptp_get_ts_config(struct i40e_pf *pf, struct ifreq *ifr); +void i40e_ptp_init(struct i40e_pf *pf); +void i40e_ptp_stop(struct i40e_pf *pf); #endif /* _I40E_H_ */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_adminq.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_adminq.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -31,6 +30,8 @@ #include "i40e_adminq.h" #include "i40e_prototype.h" +static void i40e_resume_aq(struct i40e_hw *hw); + /** * i40e_adminq_init_regs - Initialize AdminQ registers * @hw: pointer to the hardware structure @@ -43,13 +44,17 @@ if (hw->mac.type == I40E_MAC_VF) { hw->aq.asq.tail = I40E_VF_ATQT1; hw->aq.asq.head = I40E_VF_ATQH1; + hw->aq.asq.len = I40E_VF_ATQLEN1; hw->aq.arq.tail = I40E_VF_ARQT1; hw->aq.arq.head = I40E_VF_ARQH1; + hw->aq.arq.len = I40E_VF_ARQLEN1; } else { hw->aq.asq.tail = I40E_PF_ATQT; hw->aq.asq.head = I40E_PF_ATQH; + hw->aq.asq.len = I40E_PF_ATQLEN; hw->aq.arq.tail = I40E_PF_ARQT; hw->aq.arq.head = I40E_PF_ARQH; + hw->aq.arq.len = I40E_PF_ARQLEN; } } @@ -60,9 +65,8 @@ static i40e_status i40e_alloc_adminq_asq_ring(struct i40e_hw *hw) { i40e_status ret_code; - struct i40e_virt_mem mem; - ret_code = i40e_allocate_dma_mem(hw, &hw->aq.asq_mem, + ret_code = i40e_allocate_dma_mem(hw, &hw->aq.asq.desc_buf, i40e_mem_atq_ring, (hw->aq.num_asq_entries * sizeof(struct i40e_aq_desc)), @@ -70,21 +74,14 @@ if (ret_code) return ret_code; - hw->aq.asq.desc = hw->aq.asq_mem.va; - hw->aq.asq.dma_addr = hw->aq.asq_mem.pa; - - ret_code = i40e_allocate_virt_mem(hw, &mem, + ret_code = i40e_allocate_virt_mem(hw, &hw->aq.asq.cmd_buf, (hw->aq.num_asq_entries * sizeof(struct i40e_asq_cmd_details))); if (ret_code) { - i40e_free_dma_mem(hw, &hw->aq.asq_mem); - hw->aq.asq_mem.va = NULL; - hw->aq.asq_mem.pa = 0; + i40e_free_dma_mem(hw, &hw->aq.asq.desc_buf); return ret_code; } - hw->aq.asq.details = mem.va; - return ret_code; } @@ -96,16 +93,11 @@ { i40e_status ret_code; - ret_code = i40e_allocate_dma_mem(hw, &hw->aq.arq_mem, + ret_code = i40e_allocate_dma_mem(hw, &hw->aq.arq.desc_buf, i40e_mem_arq_ring, (hw->aq.num_arq_entries * sizeof(struct i40e_aq_desc)), I40E_ADMINQ_DESC_ALIGNMENT); - if (ret_code) - return ret_code; - - hw->aq.arq.desc = hw->aq.arq_mem.va; - hw->aq.arq.dma_addr = hw->aq.arq_mem.pa; return ret_code; } @@ -119,14 +111,7 @@ **/ static void i40e_free_adminq_asq(struct i40e_hw *hw) { - struct i40e_virt_mem mem; - - i40e_free_dma_mem(hw, &hw->aq.asq_mem); - hw->aq.asq_mem.va = NULL; - hw->aq.asq_mem.pa = 0; - mem.va = hw->aq.asq.details; - i40e_free_virt_mem(hw, &mem); - hw->aq.asq.details = NULL; + i40e_free_dma_mem(hw, &hw->aq.asq.desc_buf); } /** @@ -138,20 +123,17 @@ **/ static void i40e_free_adminq_arq(struct i40e_hw *hw) { - i40e_free_dma_mem(hw, &hw->aq.arq_mem); - hw->aq.arq_mem.va = NULL; - hw->aq.arq_mem.pa = 0; + i40e_free_dma_mem(hw, &hw->aq.arq.desc_buf); } /** * i40e_alloc_arq_bufs - Allocate pre-posted buffers for the receive queue - * @hw: pointer to the hardware structure + * @hw: pointer to the hardware structure **/ static i40e_status i40e_alloc_arq_bufs(struct i40e_hw *hw) { i40e_status ret_code; struct i40e_aq_desc *desc; - struct i40e_virt_mem mem; struct i40e_dma_mem *bi; int i; @@ -160,11 +142,11 @@ */ /* buffer_info structures do not need alignment */ - ret_code = i40e_allocate_virt_mem(hw, &mem, (hw->aq.num_arq_entries * - sizeof(struct i40e_dma_mem))); + ret_code = i40e_allocate_virt_mem(hw, &hw->aq.arq.dma_head, + (hw->aq.num_arq_entries * sizeof(struct i40e_dma_mem))); if (ret_code) goto alloc_arq_bufs; - hw->aq.arq.r.arq_bi = (struct i40e_dma_mem *)mem.va; + hw->aq.arq.r.arq_bi = (struct i40e_dma_mem *)hw->aq.arq.dma_head.va; /* allocate the mapped buffers */ for (i = 0; i < hw->aq.num_arq_entries; i++) { @@ -206,29 +188,27 @@ i--; for (; i >= 0; i--) i40e_free_dma_mem(hw, &hw->aq.arq.r.arq_bi[i]); - mem.va = hw->aq.arq.r.arq_bi; - i40e_free_virt_mem(hw, &mem); + i40e_free_virt_mem(hw, &hw->aq.arq.dma_head); return ret_code; } /** * i40e_alloc_asq_bufs - Allocate empty buffer structs for the send queue - * @hw: pointer to the hardware structure + * @hw: pointer to the hardware structure **/ static i40e_status i40e_alloc_asq_bufs(struct i40e_hw *hw) { i40e_status ret_code; - struct i40e_virt_mem mem; struct i40e_dma_mem *bi; int i; /* No mapped memory needed yet, just the buffer info structures */ - ret_code = i40e_allocate_virt_mem(hw, &mem, (hw->aq.num_asq_entries * - sizeof(struct i40e_dma_mem))); + ret_code = i40e_allocate_virt_mem(hw, &hw->aq.asq.dma_head, + (hw->aq.num_asq_entries * sizeof(struct i40e_dma_mem))); if (ret_code) goto alloc_asq_bufs; - hw->aq.asq.r.asq_bi = (struct i40e_dma_mem *)mem.va; + hw->aq.asq.r.asq_bi = (struct i40e_dma_mem *)hw->aq.asq.dma_head.va; /* allocate the mapped buffers */ for (i = 0; i < hw->aq.num_asq_entries; i++) { @@ -248,35 +228,36 @@ i--; for (; i >= 0; i--) i40e_free_dma_mem(hw, &hw->aq.asq.r.asq_bi[i]); - mem.va = hw->aq.asq.r.asq_bi; - i40e_free_virt_mem(hw, &mem); + i40e_free_virt_mem(hw, &hw->aq.asq.dma_head); return ret_code; } /** * i40e_free_arq_bufs - Free receive queue buffer info elements - * @hw: pointer to the hardware structure + * @hw: pointer to the hardware structure **/ static void i40e_free_arq_bufs(struct i40e_hw *hw) { - struct i40e_virt_mem mem; int i; + /* free descriptors */ for (i = 0; i < hw->aq.num_arq_entries; i++) i40e_free_dma_mem(hw, &hw->aq.arq.r.arq_bi[i]); - mem.va = hw->aq.arq.r.arq_bi; - i40e_free_virt_mem(hw, &mem); + /* free the descriptor memory */ + i40e_free_dma_mem(hw, &hw->aq.arq.desc_buf); + + /* free the dma header */ + i40e_free_virt_mem(hw, &hw->aq.arq.dma_head); } /** * i40e_free_asq_bufs - Free send queue buffer info elements - * @hw: pointer to the hardware structure + * @hw: pointer to the hardware structure **/ static void i40e_free_asq_bufs(struct i40e_hw *hw) { - struct i40e_virt_mem mem; int i; /* only unmap if the address is non-NULL */ @@ -284,14 +265,19 @@ if (hw->aq.asq.r.asq_bi[i].pa) i40e_free_dma_mem(hw, &hw->aq.asq.r.asq_bi[i]); - /* now free the buffer info list */ - mem.va = hw->aq.asq.r.asq_bi; - i40e_free_virt_mem(hw, &mem); + /* free the buffer info list */ + i40e_free_virt_mem(hw, &hw->aq.asq.cmd_buf); + + /* free the descriptor memory */ + i40e_free_dma_mem(hw, &hw->aq.asq.desc_buf); + + /* free the dma header */ + i40e_free_virt_mem(hw, &hw->aq.asq.dma_head); } /** * i40e_config_asq_regs - configure ASQ registers - * @hw: pointer to the hardware structure + * @hw: pointer to the hardware structure * * Configure base address and length registers for the transmit queue **/ @@ -299,14 +285,18 @@ { if (hw->mac.type == I40E_MAC_VF) { /* configure the transmit queue */ - wr32(hw, I40E_VF_ATQBAH1, upper_32_bits(hw->aq.asq.dma_addr)); - wr32(hw, I40E_VF_ATQBAL1, lower_32_bits(hw->aq.asq.dma_addr)); + wr32(hw, I40E_VF_ATQBAH1, + upper_32_bits(hw->aq.asq.desc_buf.pa)); + wr32(hw, I40E_VF_ATQBAL1, + lower_32_bits(hw->aq.asq.desc_buf.pa)); wr32(hw, I40E_VF_ATQLEN1, (hw->aq.num_asq_entries | I40E_VF_ATQLEN1_ATQENABLE_MASK)); } else { /* configure the transmit queue */ - wr32(hw, I40E_PF_ATQBAH, upper_32_bits(hw->aq.asq.dma_addr)); - wr32(hw, I40E_PF_ATQBAL, lower_32_bits(hw->aq.asq.dma_addr)); + wr32(hw, I40E_PF_ATQBAH, + upper_32_bits(hw->aq.asq.desc_buf.pa)); + wr32(hw, I40E_PF_ATQBAL, + lower_32_bits(hw->aq.asq.desc_buf.pa)); wr32(hw, I40E_PF_ATQLEN, (hw->aq.num_asq_entries | I40E_PF_ATQLEN_ATQENABLE_MASK)); } @@ -314,7 +304,7 @@ /** * i40e_config_arq_regs - ARQ register configuration - * @hw: pointer to the hardware structure + * @hw: pointer to the hardware structure * * Configure base address and length registers for the receive (event queue) **/ @@ -322,14 +312,18 @@ { if (hw->mac.type == I40E_MAC_VF) { /* configure the receive queue */ - wr32(hw, I40E_VF_ARQBAH1, upper_32_bits(hw->aq.arq.dma_addr)); - wr32(hw, I40E_VF_ARQBAL1, lower_32_bits(hw->aq.arq.dma_addr)); + wr32(hw, I40E_VF_ARQBAH1, + upper_32_bits(hw->aq.arq.desc_buf.pa)); + wr32(hw, I40E_VF_ARQBAL1, + lower_32_bits(hw->aq.arq.desc_buf.pa)); wr32(hw, I40E_VF_ARQLEN1, (hw->aq.num_arq_entries | I40E_VF_ARQLEN1_ARQENABLE_MASK)); } else { /* configure the receive queue */ - wr32(hw, I40E_PF_ARQBAH, upper_32_bits(hw->aq.arq.dma_addr)); - wr32(hw, I40E_PF_ARQBAL, lower_32_bits(hw->aq.arq.dma_addr)); + wr32(hw, I40E_PF_ARQBAH, + upper_32_bits(hw->aq.arq.desc_buf.pa)); + wr32(hw, I40E_PF_ARQBAL, + lower_32_bits(hw->aq.arq.desc_buf.pa)); wr32(hw, I40E_PF_ARQLEN, (hw->aq.num_arq_entries | I40E_PF_ARQLEN_ARQENABLE_MASK)); } @@ -340,7 +334,7 @@ /** * i40e_init_asq - main initialization routine for ASQ - * @hw: pointer to the hardware structure + * @hw: pointer to the hardware structure * * This is the main initialization routine for the Admin Send Queue * Prior to calling this function, drivers *MUST* set the following fields @@ -397,7 +391,7 @@ /** * i40e_init_arq - initialize ARQ - * @hw: pointer to the hardware structure + * @hw: pointer to the hardware structure * * The main initialization routine for the Admin Receive (Event) Queue. * Prior to calling this function, drivers *MUST* set the following fields @@ -454,7 +448,7 @@ /** * i40e_shutdown_asq - shutdown the ASQ - * @hw: pointer to the hardware structure + * @hw: pointer to the hardware structure * * The main shutdown routine for the Admin Send Queue **/ @@ -466,10 +460,9 @@ return I40E_ERR_NOT_READY; /* Stop firmware AdminQ processing */ - if (hw->mac.type == I40E_MAC_VF) - wr32(hw, I40E_VF_ATQLEN1, 0); - else - wr32(hw, I40E_PF_ATQLEN, 0); + wr32(hw, hw->aq.asq.head, 0); + wr32(hw, hw->aq.asq.tail, 0); + wr32(hw, hw->aq.asq.len, 0); /* make sure lock is available */ mutex_lock(&hw->aq.asq_mutex); @@ -478,8 +471,6 @@ /* free ring buffers */ i40e_free_asq_bufs(hw); - /* free the ring descriptors */ - i40e_free_adminq_asq(hw); mutex_unlock(&hw->aq.asq_mutex); @@ -488,7 +479,7 @@ /** * i40e_shutdown_arq - shutdown ARQ - * @hw: pointer to the hardware structure + * @hw: pointer to the hardware structure * * The main shutdown routine for the Admin Receive Queue **/ @@ -500,10 +491,9 @@ return I40E_ERR_NOT_READY; /* Stop firmware AdminQ processing */ - if (hw->mac.type == I40E_MAC_VF) - wr32(hw, I40E_VF_ARQLEN1, 0); - else - wr32(hw, I40E_PF_ARQLEN, 0); + wr32(hw, hw->aq.arq.head, 0); + wr32(hw, hw->aq.arq.tail, 0); + wr32(hw, hw->aq.arq.len, 0); /* make sure lock is available */ mutex_lock(&hw->aq.arq_mutex); @@ -512,8 +502,6 @@ /* free ring buffers */ i40e_free_arq_bufs(hw); - /* free the ring descriptors */ - i40e_free_adminq_arq(hw); mutex_unlock(&hw->aq.arq_mutex); @@ -522,7 +510,7 @@ /** * i40e_init_adminq - main initialization routine for Admin Queue - * @hw: pointer to the hardware structure + * @hw: pointer to the hardware structure * * Prior to calling this function, drivers *MUST* set the following fields * in the hw->aq structure: @@ -533,8 +521,9 @@ **/ i40e_status i40e_init_adminq(struct i40e_hw *hw) { - u16 eetrack_lo, eetrack_hi; i40e_status ret_code; + u16 eetrack_lo, eetrack_hi; + int retry = 0; /* verify input for valid configuration */ if ((hw->aq.num_arq_entries == 0) || @@ -562,23 +551,41 @@ if (ret_code) goto init_adminq_free_asq; - ret_code = i40e_aq_get_firmware_version(hw, - &hw->aq.fw_maj_ver, &hw->aq.fw_min_ver, - &hw->aq.api_maj_ver, &hw->aq.api_min_ver, - NULL); - if (ret_code) + /* There are some cases where the firmware may not be quite ready + * for AdminQ operations, so we retry the AdminQ setup a few times + * if we see timeouts in this first AQ call. + */ + do { + ret_code = i40e_aq_get_firmware_version(hw, + &hw->aq.fw_maj_ver, + &hw->aq.fw_min_ver, + &hw->aq.api_maj_ver, + &hw->aq.api_min_ver, + NULL); + if (ret_code != I40E_ERR_ADMIN_QUEUE_TIMEOUT) + break; + retry++; + msleep(100); + i40e_resume_aq(hw); + } while (retry < 10); + if (ret_code != I40E_SUCCESS) goto init_adminq_free_arq; - if (hw->aq.api_maj_ver != I40E_FW_API_VERSION_MAJOR || - hw->aq.api_min_ver != I40E_FW_API_VERSION_MINOR) { - ret_code = I40E_ERR_FIRMWARE_API_VERSION; - goto init_adminq_free_arq; - } + /* get the NVM version info */ i40e_read_nvm_word(hw, I40E_SR_NVM_IMAGE_VERSION, &hw->nvm.version); i40e_read_nvm_word(hw, I40E_SR_NVM_EETRACK_LO, &eetrack_lo); i40e_read_nvm_word(hw, I40E_SR_NVM_EETRACK_HI, &eetrack_hi); hw->nvm.eetrack = (eetrack_hi << 16) | eetrack_lo; + if (hw->aq.api_maj_ver != I40E_FW_API_VERSION_MAJOR || + hw->aq.api_min_ver > I40E_FW_API_VERSION_MINOR) { + ret_code = I40E_ERR_FIRMWARE_API_VERSION; + goto init_adminq_free_arq; + } + + /* pre-emptive resource lock release */ + i40e_aq_release_resource(hw, I40E_NVM_RESOURCE_ID, 0, NULL); + ret_code = i40e_aq_set_hmc_resource_profile(hw, I40E_HMC_PROFILE_DEFAULT, 0, @@ -600,12 +607,15 @@ /** * i40e_shutdown_adminq - shutdown routine for the Admin Queue - * @hw: pointer to the hardware structure + * @hw: pointer to the hardware structure **/ i40e_status i40e_shutdown_adminq(struct i40e_hw *hw) { i40e_status ret_code = 0; + if (i40e_check_asq_alive(hw)) + i40e_aq_queue_shutdown(hw, true); + i40e_shutdown_asq(hw); i40e_shutdown_arq(hw); @@ -616,7 +626,7 @@ /** * i40e_clean_asq - cleans Admin send queue - * @asq: pointer to the adminq send ring + * @hw: pointer to the hardware structure * * returns the number of free desc **/ @@ -637,9 +647,8 @@ desc_cb = *desc; cb_func(hw, &desc_cb); } - memset((void *)desc, 0, sizeof(struct i40e_aq_desc)); - memset((void *)details, 0, - sizeof(struct i40e_asq_cmd_details)); + memset(desc, 0, sizeof(*desc)); + memset(details, 0, sizeof(*details)); ntc++; if (ntc == asq->count) ntc = 0; @@ -659,12 +668,12 @@ * Returns true if the firmware has processed all descriptors on the * admin send queue. Returns false if there are still requests pending. **/ -bool i40e_asq_done(struct i40e_hw *hw) +static bool i40e_asq_done(struct i40e_hw *hw) { /* AQ designers suggest use of head for better * timing reliability than DD bit */ - return (rd32(hw, hw->aq.asq.head) == hw->aq.asq.next_to_use); + return rd32(hw, hw->aq.asq.head) == hw->aq.asq.next_to_use; } @@ -674,7 +683,7 @@ * @desc: prefilled descriptor describing the command (non DMA mem) * @buff: buffer to use for indirect commands * @buff_size: size of buffer for indirect commands - * @opaque: pointer to info to be used in async cleanup + * @cmd_details: pointer to command details structure * * This is the main send command driver routine for the Admin Queue send * queue. It runs the queue, cleans the queue, etc @@ -854,7 +863,7 @@ /* zero out the desc */ memset((void *)desc, 0, sizeof(struct i40e_aq_desc)); desc->opcode = cpu_to_le16(opcode); - desc->flags = cpu_to_le16(I40E_AQ_FLAG_EI | I40E_AQ_FLAG_SI); + desc->flags = cpu_to_le16(I40E_AQ_FLAG_SI); } /** @@ -912,7 +921,7 @@ "AQRX: Event received with error 0x%X.\n", hw->aq.arq_last_status); } else { - memcpy(&e->desc, desc, sizeof(struct i40e_aq_desc)); + e->desc = *desc; datalen = le16_to_cpu(desc->datalen); e->msg_size = min(datalen, e->msg_size); if (e->msg_buf != NULL && (e->msg_size != 0)) @@ -925,6 +934,11 @@ * size */ bi = &hw->aq.arq.r.arq_bi[ntc]; + memset((void *)desc, 0, sizeof(struct i40e_aq_desc)); + + desc->flags = cpu_to_le16(I40E_AQ_FLAG_BUF); + if (hw->aq.arq_buf_size > I40E_AQ_LARGE_BUF) + desc->flags |= cpu_to_le16(I40E_AQ_FLAG_LB); desc->datalen = cpu_to_le16((u16)bi->size); desc->params.external.addr_high = cpu_to_le32(upper_32_bits(bi->pa)); desc->params.external.addr_low = cpu_to_le32(lower_32_bits(bi->pa)); @@ -947,36 +961,16 @@ return ret_code; } -void i40e_resume_aq(struct i40e_hw *hw) +static void i40e_resume_aq(struct i40e_hw *hw) { - u32 reg = 0; - /* Registers are reset after PF reset */ hw->aq.asq.next_to_use = 0; hw->aq.asq.next_to_clean = 0; i40e_config_asq_regs(hw); - reg = hw->aq.num_asq_entries; - - if (hw->mac.type == I40E_MAC_VF) { - reg |= I40E_VF_ATQLEN_ATQENABLE_MASK; - wr32(hw, I40E_VF_ATQLEN1, reg); - } else { - reg |= I40E_PF_ATQLEN_ATQENABLE_MASK; - wr32(hw, I40E_PF_ATQLEN, reg); - } hw->aq.arq.next_to_use = 0; hw->aq.arq.next_to_clean = 0; i40e_config_arq_regs(hw); - reg = hw->aq.num_arq_entries; - - if (hw->mac.type == I40E_MAC_VF) { - reg |= I40E_VF_ATQLEN_ATQENABLE_MASK; - wr32(hw, I40E_VF_ARQLEN1, reg); - } else { - reg |= I40E_PF_ATQLEN_ATQENABLE_MASK; - wr32(hw, I40E_PF_ARQLEN, reg); - } } --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_adminq.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_adminq.h @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -32,20 +31,20 @@ #include "i40e_adminq_cmd.h" #define I40E_ADMINQ_DESC(R, i) \ - (&(((struct i40e_aq_desc *)((R).desc))[i])) + (&(((struct i40e_aq_desc *)((R).desc_buf.va))[i])) #define I40E_ADMINQ_DESC_ALIGNMENT 4096 struct i40e_adminq_ring { - void *desc; /* Descriptor ring memory */ - void *details; /* ASQ details */ + struct i40e_virt_mem dma_head; /* space for dma structures */ + struct i40e_dma_mem desc_buf; /* descriptor ring memory */ + struct i40e_virt_mem cmd_buf; /* command buffer memory */ union { struct i40e_dma_mem *asq_bi; struct i40e_dma_mem *arq_bi; } r; - u64 dma_addr; /* Physical address of the ring */ u16 count; /* Number of descriptors */ u16 rx_buf_len; /* Admin Receive Queue buffer length */ @@ -56,6 +55,7 @@ /* used for queue tracking */ u32 head; u32 tail; + u32 len; }; /* ASQ transaction details */ @@ -69,7 +69,7 @@ }; #define I40E_ADMINQ_DETAILS(R, i) \ - (&(((struct i40e_asq_cmd_details *)((R).details))[i])) + (&(((struct i40e_asq_cmd_details *)((R).cmd_buf.va))[i])) /* ARQ event information */ struct i40e_arq_event_info { @@ -94,9 +94,6 @@ struct mutex asq_mutex; /* Send queue lock */ struct mutex arq_mutex; /* Receive queue lock */ - struct i40e_dma_mem asq_mem; /* send queue dynamic memory */ - struct i40e_dma_mem arq_mem; /* receive queue dynamic memory */ - /* last status values on send and receive queues */ enum i40e_admin_queue_err asq_last_status; enum i40e_admin_queue_err arq_last_status; --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -35,7 +34,7 @@ */ #define I40E_FW_API_VERSION_MAJOR 0x0001 -#define I40E_FW_API_VERSION_MINOR 0x0000 +#define I40E_FW_API_VERSION_MINOR 0x0001 struct i40e_aq_desc { __le16 flags; @@ -137,10 +136,13 @@ i40e_aqc_opc_set_ns_proxy_entry = 0x0105, /* LAA */ - i40e_aqc_opc_mng_laa = 0x0106, + i40e_aqc_opc_mng_laa = 0x0106, /* AQ obsolete */ i40e_aqc_opc_mac_address_read = 0x0107, i40e_aqc_opc_mac_address_write = 0x0108, + /* PXE */ + i40e_aqc_opc_clear_pxe_mode = 0x0110, + /* internal switch commands */ i40e_aqc_opc_get_switch_config = 0x0200, i40e_aqc_opc_add_statistics = 0x0201, @@ -317,13 +319,15 @@ I40E_CHECK_CMD_LENGTH(i40e_aqc_get_version); -/* Send driver version (direct 0x0002) */ +/* Send driver version (indirect 0x0002) */ struct i40e_aqc_driver_version { u8 driver_major_ver; u8 driver_minor_ver; u8 driver_build_ver; u8 driver_subbuild_ver; - u8 reserved[12]; + u8 reserved[4]; + __le32 address_high; + __le32 address_low; }; I40E_CHECK_CMD_LENGTH(i40e_aqc_driver_version); @@ -479,7 +483,7 @@ u8 reserved2[6]; }; -/* Manage MAC Address Read Command (0x0107) */ +/* Manage MAC Address Read Command (indirect 0x0107) */ struct i40e_aqc_mac_address_read { __le16 command_flags; #define I40E_AQC_LAN_ADDR_VALID 0x10 @@ -517,6 +521,16 @@ I40E_CHECK_CMD_LENGTH(i40e_aqc_mac_address_write); +/* PXE commands (0x011x) */ + +/* Clear PXE Command and response (direct 0x0110) */ +struct i40e_aqc_clear_pxe { + u8 rx_cnt; + u8 reserved[15]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_clear_pxe); + /* Switch configuration commands (0x02xx) */ /* Used by many indirect commands that only pass an seid and a buffer in the @@ -639,13 +653,15 @@ u8 reserved2[6]; }; -/* Add VSI (indirect 0x210) +/* Add VSI (indirect 0x0210) * this indirect command uses struct i40e_aqc_vsi_properties_data * as the indirect buffer (128 bytes) * - * Update VSI (indirect 0x211) Get VSI (indirect 0x0212) - * use the generic i40e_aqc_switch_seid descriptor format - * use the same completion and data structure as Add VSI + * Update VSI (indirect 0x211) + * uses the same data structure as Add VSI + * + * Get VSI (indirect 0x0212) + * uses the same completion and data structure as Add VSI */ struct i40e_aqc_add_get_update_vsi { __le16 uplink_seid; @@ -664,7 +680,6 @@ #define I40E_AQ_VSI_TYPE_PF 0x2 #define I40E_AQ_VSI_TYPE_EMP_MNG 0x3 #define I40E_AQ_VSI_FLAG_CASCADED_PV 0x4 -#define I40E_AQ_VSI_FLAG_CLOUD_VSI 0x8 __le32 addr_high; __le32 addr_low; }; @@ -1026,7 +1041,9 @@ #define I40E_AQC_SET_VSI_PROMISC_VLAN 0x10 __le16 seid; #define I40E_AQC_VSI_PROM_CMD_SEID_MASK 0x3FF - u8 reserved[10]; + __le16 vlan_tag; +#define I40E_AQC_SET_VSI_VLAN_VALID 0x8000 + u8 reserved[8]; }; I40E_CHECK_CMD_LENGTH(i40e_aqc_set_vsi_promiscuous_modes); @@ -1179,33 +1196,46 @@ } v4; struct { u8 data[16]; - } v6; - } ipaddr; + } v6; + } ipaddr; __le16 flags; #define I40E_AQC_ADD_CLOUD_FILTER_SHIFT 0 #define I40E_AQC_ADD_CLOUD_FILTER_MASK (0x3F << \ I40E_AQC_ADD_CLOUD_FILTER_SHIFT) +/* 0x0000 reserved */ #define I40E_AQC_ADD_CLOUD_FILTER_OIP 0x0001 -#define I40E_AQC_ADD_CLOUD_FILTER_OIP_GRE 0x0002 +/* 0x0002 reserved */ #define I40E_AQC_ADD_CLOUD_FILTER_IMAC_IVLAN 0x0003 -#define I40E_AQC_ADD_CLOUD_FILTER_IMAC_IVLAN_GRE 0x0004 +#define I40E_AQC_ADD_CLOUD_FILTER_IMAC_IVLAN_TEN_ID 0x0004 +/* 0x0005 reserved */ #define I40E_AQC_ADD_CLOUD_FILTER_IMAC_TEN_ID 0x0006 -#define I40E_AQC_ADD_CLOUD_FILTER_IMAC_IVLAN_VNL 0x0007 +/* 0x0007 reserved */ /* 0x0008 reserved */ #define I40E_AQC_ADD_CLOUD_FILTER_OMAC 0x0009 #define I40E_AQC_ADD_CLOUD_FILTER_IMAC 0x000A +#define I40E_AQC_ADD_CLOUD_FILTER_OMAC_TEN_ID_IMAC 0x000B +#define I40E_AQC_ADD_CLOUD_FILTER_IIP 0x000C + #define I40E_AQC_ADD_CLOUD_FLAGS_TO_QUEUE 0x0080 #define I40E_AQC_ADD_CLOUD_VNK_SHIFT 6 #define I40E_AQC_ADD_CLOUD_VNK_MASK 0x00C0 #define I40E_AQC_ADD_CLOUD_FLAGS_IPV4 0 #define I40E_AQC_ADD_CLOUD_FLAGS_IPV6 0x0100 - __le32 key_low; - __le32 key_high; + +#define I40E_AQC_ADD_CLOUD_TNL_TYPE_SHIFT 9 +#define I40E_AQC_ADD_CLOUD_TNL_TYPE_MASK 0x1E00 +#define I40E_AQC_ADD_CLOUD_TNL_TYPE_XVLAN 0 +#define I40E_AQC_ADD_CLOUD_TNL_TYPE_NVGRE_OMAC 1 +#define I40E_AQC_ADD_CLOUD_TNL_TYPE_NGE 2 +#define I40E_AQC_ADD_CLOUD_TNL_TYPE_IP 3 + + __le32 tenant_id; + u8 reserved[4]; __le16 queue_number; #define I40E_AQC_ADD_CLOUD_QUEUE_SHIFT 0 #define I40E_AQC_ADD_CLOUD_QUEUE_MASK (0x3F << \ I40E_AQC_ADD_CLOUD_QUEUE_SHIFT) - u8 reserved[14]; + u8 reserved2[14]; /* response section */ u8 allocation_result; #define I40E_AQC_ADD_CLOUD_FILTER_SUCCESS 0x0 @@ -1548,7 +1578,7 @@ struct i40e_aq_get_phy_abilities_resp { __le32 phy_type; /* bitmap using the above enum for offsets */ - u8 link_speed; /* bitmap using the above enum */ + u8 link_speed; /* bitmap using the above enum bit patterns */ u8 abilities; #define I40E_AQ_PHY_FLAG_PAUSE_TX 0x01 #define I40E_AQ_PHY_FLAG_PAUSE_RX 0x02 @@ -1582,6 +1612,10 @@ __le32 phy_type; u8 link_speed; u8 abilities; +/* bits 0-2 use the values from get_phy_abilities_resp */ +#define I40E_AQ_PHY_ENABLE_LINK 0x08 +#define I40E_AQ_PHY_ENABLE_AN 0x10 +#define I40E_AQ_PHY_ENABLE_ATOMIC_LINK 0x20 __le16 eee_capability; __le32 eeer; u8 low_power_ctrl; @@ -1914,22 +1948,33 @@ /* Add Udp Tunnel command and completion (direct 0x0B00) */ struct i40e_aqc_add_udp_tunnel { __le16 udp_port; - u8 header_len; /* in DWords, 1 to 15 */ - u8 protocol_index; -#define I40E_AQC_TUNNEL_TYPE_MAC 0x0 -#define I40E_AQC_TUNNEL_TYPE_UDP 0x1 - u8 reserved[12]; + u8 reserved0[3]; + u8 protocol_type; +#define I40E_AQC_TUNNEL_TYPE_VXLAN 0x00 +#define I40E_AQC_TUNNEL_TYPE_NGE 0x01 +#define I40E_AQC_TUNNEL_TYPE_TEREDO 0x10 + u8 reserved1[10]; }; I40E_CHECK_CMD_LENGTH(i40e_aqc_add_udp_tunnel); +struct i40e_aqc_add_udp_tunnel_completion { + __le16 udp_port; + u8 filter_entry_index; + u8 multiple_pfs; +#define I40E_AQC_SINGLE_PF 0x0 +#define I40E_AQC_MULTIPLE_PFS 0x1 + u8 total_filters; + u8 reserved[11]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_udp_tunnel_completion); + /* remove UDP Tunnel command (0x0B01) */ struct i40e_aqc_remove_udp_tunnel { u8 reserved[2]; u8 index; /* 0 to 15 */ - u8 pf_filters; - u8 total_filters; - u8 reserved2[11]; + u8 reserved2[13]; }; I40E_CHECK_CMD_LENGTH(i40e_aqc_remove_udp_tunnel); @@ -1937,28 +1982,32 @@ struct i40e_aqc_del_udp_tunnel_completion { __le16 udp_port; u8 index; /* 0 to 15 */ - u8 multiple_entries; - u8 tunnels_used; - u8 reserved; - u8 tunnels_free; - u8 reserved1[9]; + u8 multiple_pfs; + u8 total_filters_used; + u8 reserved1[11]; }; I40E_CHECK_CMD_LENGTH(i40e_aqc_del_udp_tunnel_completion); /* tunnel key structure 0x0B10 */ + struct i40e_aqc_tunnel_key_structure { - __le16 key1_off; - __le16 key1_len; - __le16 key2_off; - __le16 key2_len; - __le16 flags; + u8 key1_off; + u8 key2_off; + u8 key1_len; /* 0 to 15 */ + u8 key2_len; /* 0 to 15 */ + u8 flags; #define I40E_AQC_TUNNEL_KEY_STRUCT_OVERRIDE 0x01 /* response flags */ #define I40E_AQC_TUNNEL_KEY_STRUCT_SUCCESS 0x01 #define I40E_AQC_TUNNEL_KEY_STRUCT_MODIFIED 0x02 #define I40E_AQC_TUNNEL_KEY_STRUCT_OVERRIDDEN 0x03 - u8 resreved[6]; + u8 network_key_index; +#define I40E_AQC_NETWORK_KEY_INDEX_VXLAN 0x0 +#define I40E_AQC_NETWORK_KEY_INDEX_NGE 0x1 +#define I40E_AQC_NETWORK_KEY_INDEX_FLEX_MAC_IN_UDP 0x2 +#define I40E_AQC_NETWORK_KEY_INDEX_GRE 0x3 + u8 reserved[10]; }; I40E_CHECK_CMD_LENGTH(i40e_aqc_tunnel_key_structure); @@ -2052,6 +2101,7 @@ #define I40E_AQ_CLUSTER_ID_DCB 8 #define I40E_AQ_CLUSTER_ID_EMP_MEM 9 #define I40E_AQ_CLUSTER_ID_PKT_BUF 10 +#define I40E_AQ_CLUSTER_ID_ALTRAM 11 struct i40e_aqc_debug_dump_internals { u8 cluster_id; --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_alloc.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_alloc.h @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_common.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_common.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -43,20 +42,20 @@ if (hw->vendor_id == PCI_VENDOR_ID_INTEL) { switch (hw->device_id) { - case I40E_SFP_XL710_DEVICE_ID: - case I40E_SFP_X710_DEVICE_ID: - case I40E_QEMU_DEVICE_ID: - case I40E_KX_A_DEVICE_ID: - case I40E_KX_B_DEVICE_ID: - case I40E_KX_C_DEVICE_ID: - case I40E_KX_D_DEVICE_ID: - case I40E_QSFP_A_DEVICE_ID: - case I40E_QSFP_B_DEVICE_ID: - case I40E_QSFP_C_DEVICE_ID: + case I40E_DEV_ID_SFP_XL710: + case I40E_DEV_ID_SFP_X710: + case I40E_DEV_ID_QEMU: + case I40E_DEV_ID_KX_A: + case I40E_DEV_ID_KX_B: + case I40E_DEV_ID_KX_C: + case I40E_DEV_ID_KX_D: + case I40E_DEV_ID_QSFP_A: + case I40E_DEV_ID_QSFP_B: + case I40E_DEV_ID_QSFP_C: hw->mac.type = I40E_MAC_XL710; break; - case I40E_VF_DEVICE_ID: - case I40E_VF_HV_DEVICE_ID: + case I40E_DEV_ID_VF: + case I40E_DEV_ID_VF_HV: hw->mac.type = I40E_MAC_VF; break; default: @@ -75,7 +74,8 @@ /** * i40e_debug_aq * @hw: debug mask related to admin queue - * @cap: pointer to adminq command descriptor + * @mask: debug mask + * @desc: pointer to admin queue descriptor * @buffer: pointer to command buffer * * Dumps debug log about adminq command with descriptor contents. @@ -126,6 +126,409 @@ } /** + * i40e_check_asq_alive + * @hw: pointer to the hw struct + * + * Returns true if Queue is enabled else false. + **/ +bool i40e_check_asq_alive(struct i40e_hw *hw) +{ + return !!(rd32(hw, hw->aq.asq.len) & I40E_PF_ATQLEN_ATQENABLE_MASK); +} + +/** + * i40e_aq_queue_shutdown + * @hw: pointer to the hw struct + * @unloading: is the driver unloading itself + * + * Tell the Firmware that we're shutting down the AdminQ and whether + * or not the driver is unloading as well. + **/ +i40e_status i40e_aq_queue_shutdown(struct i40e_hw *hw, + bool unloading) +{ + struct i40e_aq_desc desc; + struct i40e_aqc_queue_shutdown *cmd = + (struct i40e_aqc_queue_shutdown *)&desc.params.raw; + i40e_status status; + + i40e_fill_default_direct_cmd_desc(&desc, + i40e_aqc_opc_queue_shutdown); + + if (unloading) + cmd->driver_unloading = cpu_to_le32(I40E_AQ_DRIVER_UNLOADING); + status = i40e_asq_send_command(hw, &desc, NULL, 0, NULL); + + return status; +} + +/* The i40e_ptype_lookup table is used to convert from the 8-bit ptype in the + * hardware to a bit-field that can be used by SW to more easily determine the + * packet type. + * + * Macros are used to shorten the table lines and make this table human + * readable. + * + * We store the PTYPE in the top byte of the bit field - this is just so that + * we can check that the table doesn't have a row missing, as the index into + * the table should be the PTYPE. + * + * Typical work flow: + * + * IF NOT i40e_ptype_lookup[ptype].known + * THEN + * Packet is unknown + * ELSE IF i40e_ptype_lookup[ptype].outer_ip == I40E_RX_PTYPE_OUTER_IP + * Use the rest of the fields to look at the tunnels, inner protocols, etc + * ELSE + * Use the enum i40e_rx_l2_ptype to decode the packet type + * ENDIF + */ + +/* macro to make the table lines short */ +#define I40E_PTT(PTYPE, OUTER_IP, OUTER_IP_VER, OUTER_FRAG, T, TE, TEF, I, PL)\ + { PTYPE, \ + 1, \ + I40E_RX_PTYPE_OUTER_##OUTER_IP, \ + I40E_RX_PTYPE_OUTER_##OUTER_IP_VER, \ + I40E_RX_PTYPE_##OUTER_FRAG, \ + I40E_RX_PTYPE_TUNNEL_##T, \ + I40E_RX_PTYPE_TUNNEL_END_##TE, \ + I40E_RX_PTYPE_##TEF, \ + I40E_RX_PTYPE_INNER_PROT_##I, \ + I40E_RX_PTYPE_PAYLOAD_LAYER_##PL } + +#define I40E_PTT_UNUSED_ENTRY(PTYPE) \ + { PTYPE, 0, 0, 0, 0, 0, 0, 0, 0, 0 } + +/* shorter macros makes the table fit but are terse */ +#define I40E_RX_PTYPE_NOF I40E_RX_PTYPE_NOT_FRAG +#define I40E_RX_PTYPE_FRG I40E_RX_PTYPE_FRAG +#define I40E_RX_PTYPE_INNER_PROT_TS I40E_RX_PTYPE_INNER_PROT_TIMESYNC + +/* Lookup table mapping the HW PTYPE to the bit field for decoding */ +struct i40e_rx_ptype_decoded i40e_ptype_lookup[] = { + /* L2 Packet types */ + I40E_PTT_UNUSED_ENTRY(0), + I40E_PTT(1, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY2), + I40E_PTT(2, L2, NONE, NOF, NONE, NONE, NOF, TS, PAY2), + I40E_PTT(3, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY2), + I40E_PTT_UNUSED_ENTRY(4), + I40E_PTT_UNUSED_ENTRY(5), + I40E_PTT(6, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY2), + I40E_PTT(7, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY2), + I40E_PTT_UNUSED_ENTRY(8), + I40E_PTT_UNUSED_ENTRY(9), + I40E_PTT(10, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY2), + I40E_PTT(11, L2, NONE, NOF, NONE, NONE, NOF, NONE, NONE), + I40E_PTT(12, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(13, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(14, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(15, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(16, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(17, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(18, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(19, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(20, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(21, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + + /* Non Tunneled IPv4 */ + I40E_PTT(22, IP, IPV4, FRG, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(23, IP, IPV4, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(24, IP, IPV4, NOF, NONE, NONE, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(25), + I40E_PTT(26, IP, IPV4, NOF, NONE, NONE, NOF, TCP, PAY4), + I40E_PTT(27, IP, IPV4, NOF, NONE, NONE, NOF, SCTP, PAY4), + I40E_PTT(28, IP, IPV4, NOF, NONE, NONE, NOF, ICMP, PAY4), + + /* IPv4 --> IPv4 */ + I40E_PTT(29, IP, IPV4, NOF, IP_IP, IPV4, FRG, NONE, PAY3), + I40E_PTT(30, IP, IPV4, NOF, IP_IP, IPV4, NOF, NONE, PAY3), + I40E_PTT(31, IP, IPV4, NOF, IP_IP, IPV4, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(32), + I40E_PTT(33, IP, IPV4, NOF, IP_IP, IPV4, NOF, TCP, PAY4), + I40E_PTT(34, IP, IPV4, NOF, IP_IP, IPV4, NOF, SCTP, PAY4), + I40E_PTT(35, IP, IPV4, NOF, IP_IP, IPV4, NOF, ICMP, PAY4), + + /* IPv4 --> IPv6 */ + I40E_PTT(36, IP, IPV4, NOF, IP_IP, IPV6, FRG, NONE, PAY3), + I40E_PTT(37, IP, IPV4, NOF, IP_IP, IPV6, NOF, NONE, PAY3), + I40E_PTT(38, IP, IPV4, NOF, IP_IP, IPV6, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(39), + I40E_PTT(40, IP, IPV4, NOF, IP_IP, IPV6, NOF, TCP, PAY4), + I40E_PTT(41, IP, IPV4, NOF, IP_IP, IPV6, NOF, SCTP, PAY4), + I40E_PTT(42, IP, IPV4, NOF, IP_IP, IPV6, NOF, ICMP, PAY4), + + /* IPv4 --> GRE/NAT */ + I40E_PTT(43, IP, IPV4, NOF, IP_GRENAT, NONE, NOF, NONE, PAY3), + + /* IPv4 --> GRE/NAT --> IPv4 */ + I40E_PTT(44, IP, IPV4, NOF, IP_GRENAT, IPV4, FRG, NONE, PAY3), + I40E_PTT(45, IP, IPV4, NOF, IP_GRENAT, IPV4, NOF, NONE, PAY3), + I40E_PTT(46, IP, IPV4, NOF, IP_GRENAT, IPV4, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(47), + I40E_PTT(48, IP, IPV4, NOF, IP_GRENAT, IPV4, NOF, TCP, PAY4), + I40E_PTT(49, IP, IPV4, NOF, IP_GRENAT, IPV4, NOF, SCTP, PAY4), + I40E_PTT(50, IP, IPV4, NOF, IP_GRENAT, IPV4, NOF, ICMP, PAY4), + + /* IPv4 --> GRE/NAT --> IPv6 */ + I40E_PTT(51, IP, IPV4, NOF, IP_GRENAT, IPV6, FRG, NONE, PAY3), + I40E_PTT(52, IP, IPV4, NOF, IP_GRENAT, IPV6, NOF, NONE, PAY3), + I40E_PTT(53, IP, IPV4, NOF, IP_GRENAT, IPV6, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(54), + I40E_PTT(55, IP, IPV4, NOF, IP_GRENAT, IPV6, NOF, TCP, PAY4), + I40E_PTT(56, IP, IPV4, NOF, IP_GRENAT, IPV6, NOF, SCTP, PAY4), + I40E_PTT(57, IP, IPV4, NOF, IP_GRENAT, IPV6, NOF, ICMP, PAY4), + + /* IPv4 --> GRE/NAT --> MAC */ + I40E_PTT(58, IP, IPV4, NOF, IP_GRENAT_MAC, NONE, NOF, NONE, PAY3), + + /* IPv4 --> GRE/NAT --> MAC --> IPv4 */ + I40E_PTT(59, IP, IPV4, NOF, IP_GRENAT_MAC, IPV4, FRG, NONE, PAY3), + I40E_PTT(60, IP, IPV4, NOF, IP_GRENAT_MAC, IPV4, NOF, NONE, PAY3), + I40E_PTT(61, IP, IPV4, NOF, IP_GRENAT_MAC, IPV4, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(62), + I40E_PTT(63, IP, IPV4, NOF, IP_GRENAT_MAC, IPV4, NOF, TCP, PAY4), + I40E_PTT(64, IP, IPV4, NOF, IP_GRENAT_MAC, IPV4, NOF, SCTP, PAY4), + I40E_PTT(65, IP, IPV4, NOF, IP_GRENAT_MAC, IPV4, NOF, ICMP, PAY4), + + /* IPv4 --> GRE/NAT -> MAC --> IPv6 */ + I40E_PTT(66, IP, IPV4, NOF, IP_GRENAT_MAC, IPV6, FRG, NONE, PAY3), + I40E_PTT(67, IP, IPV4, NOF, IP_GRENAT_MAC, IPV6, NOF, NONE, PAY3), + I40E_PTT(68, IP, IPV4, NOF, IP_GRENAT_MAC, IPV6, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(69), + I40E_PTT(70, IP, IPV4, NOF, IP_GRENAT_MAC, IPV6, NOF, TCP, PAY4), + I40E_PTT(71, IP, IPV4, NOF, IP_GRENAT_MAC, IPV6, NOF, SCTP, PAY4), + I40E_PTT(72, IP, IPV4, NOF, IP_GRENAT_MAC, IPV6, NOF, ICMP, PAY4), + + /* IPv4 --> GRE/NAT --> MAC/VLAN */ + I40E_PTT(73, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, NONE, NOF, NONE, PAY3), + + /* IPv4 ---> GRE/NAT -> MAC/VLAN --> IPv4 */ + I40E_PTT(74, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV4, FRG, NONE, PAY3), + I40E_PTT(75, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, NONE, PAY3), + I40E_PTT(76, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(77), + I40E_PTT(78, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, TCP, PAY4), + I40E_PTT(79, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, SCTP, PAY4), + I40E_PTT(80, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, ICMP, PAY4), + + /* IPv4 -> GRE/NAT -> MAC/VLAN --> IPv6 */ + I40E_PTT(81, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV6, FRG, NONE, PAY3), + I40E_PTT(82, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, NONE, PAY3), + I40E_PTT(83, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(84), + I40E_PTT(85, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, TCP, PAY4), + I40E_PTT(86, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, SCTP, PAY4), + I40E_PTT(87, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, ICMP, PAY4), + + /* Non Tunneled IPv6 */ + I40E_PTT(88, IP, IPV6, FRG, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(89, IP, IPV6, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(90, IP, IPV6, NOF, NONE, NONE, NOF, UDP, PAY3), + I40E_PTT_UNUSED_ENTRY(91), + I40E_PTT(92, IP, IPV6, NOF, NONE, NONE, NOF, TCP, PAY4), + I40E_PTT(93, IP, IPV6, NOF, NONE, NONE, NOF, SCTP, PAY4), + I40E_PTT(94, IP, IPV6, NOF, NONE, NONE, NOF, ICMP, PAY4), + + /* IPv6 --> IPv4 */ + I40E_PTT(95, IP, IPV6, NOF, IP_IP, IPV4, FRG, NONE, PAY3), + I40E_PTT(96, IP, IPV6, NOF, IP_IP, IPV4, NOF, NONE, PAY3), + I40E_PTT(97, IP, IPV6, NOF, IP_IP, IPV4, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(98), + I40E_PTT(99, IP, IPV6, NOF, IP_IP, IPV4, NOF, TCP, PAY4), + I40E_PTT(100, IP, IPV6, NOF, IP_IP, IPV4, NOF, SCTP, PAY4), + I40E_PTT(101, IP, IPV6, NOF, IP_IP, IPV4, NOF, ICMP, PAY4), + + /* IPv6 --> IPv6 */ + I40E_PTT(102, IP, IPV6, NOF, IP_IP, IPV6, FRG, NONE, PAY3), + I40E_PTT(103, IP, IPV6, NOF, IP_IP, IPV6, NOF, NONE, PAY3), + I40E_PTT(104, IP, IPV6, NOF, IP_IP, IPV6, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(105), + I40E_PTT(106, IP, IPV6, NOF, IP_IP, IPV6, NOF, TCP, PAY4), + I40E_PTT(107, IP, IPV6, NOF, IP_IP, IPV6, NOF, SCTP, PAY4), + I40E_PTT(108, IP, IPV6, NOF, IP_IP, IPV6, NOF, ICMP, PAY4), + + /* IPv6 --> GRE/NAT */ + I40E_PTT(109, IP, IPV6, NOF, IP_GRENAT, NONE, NOF, NONE, PAY3), + + /* IPv6 --> GRE/NAT -> IPv4 */ + I40E_PTT(110, IP, IPV6, NOF, IP_GRENAT, IPV4, FRG, NONE, PAY3), + I40E_PTT(111, IP, IPV6, NOF, IP_GRENAT, IPV4, NOF, NONE, PAY3), + I40E_PTT(112, IP, IPV6, NOF, IP_GRENAT, IPV4, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(113), + I40E_PTT(114, IP, IPV6, NOF, IP_GRENAT, IPV4, NOF, TCP, PAY4), + I40E_PTT(115, IP, IPV6, NOF, IP_GRENAT, IPV4, NOF, SCTP, PAY4), + I40E_PTT(116, IP, IPV6, NOF, IP_GRENAT, IPV4, NOF, ICMP, PAY4), + + /* IPv6 --> GRE/NAT -> IPv6 */ + I40E_PTT(117, IP, IPV6, NOF, IP_GRENAT, IPV6, FRG, NONE, PAY3), + I40E_PTT(118, IP, IPV6, NOF, IP_GRENAT, IPV6, NOF, NONE, PAY3), + I40E_PTT(119, IP, IPV6, NOF, IP_GRENAT, IPV6, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(120), + I40E_PTT(121, IP, IPV6, NOF, IP_GRENAT, IPV6, NOF, TCP, PAY4), + I40E_PTT(122, IP, IPV6, NOF, IP_GRENAT, IPV6, NOF, SCTP, PAY4), + I40E_PTT(123, IP, IPV6, NOF, IP_GRENAT, IPV6, NOF, ICMP, PAY4), + + /* IPv6 --> GRE/NAT -> MAC */ + I40E_PTT(124, IP, IPV6, NOF, IP_GRENAT_MAC, NONE, NOF, NONE, PAY3), + + /* IPv6 --> GRE/NAT -> MAC -> IPv4 */ + I40E_PTT(125, IP, IPV6, NOF, IP_GRENAT_MAC, IPV4, FRG, NONE, PAY3), + I40E_PTT(126, IP, IPV6, NOF, IP_GRENAT_MAC, IPV4, NOF, NONE, PAY3), + I40E_PTT(127, IP, IPV6, NOF, IP_GRENAT_MAC, IPV4, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(128), + I40E_PTT(129, IP, IPV6, NOF, IP_GRENAT_MAC, IPV4, NOF, TCP, PAY4), + I40E_PTT(130, IP, IPV6, NOF, IP_GRENAT_MAC, IPV4, NOF, SCTP, PAY4), + I40E_PTT(131, IP, IPV6, NOF, IP_GRENAT_MAC, IPV4, NOF, ICMP, PAY4), + + /* IPv6 --> GRE/NAT -> MAC -> IPv6 */ + I40E_PTT(132, IP, IPV6, NOF, IP_GRENAT_MAC, IPV6, FRG, NONE, PAY3), + I40E_PTT(133, IP, IPV6, NOF, IP_GRENAT_MAC, IPV6, NOF, NONE, PAY3), + I40E_PTT(134, IP, IPV6, NOF, IP_GRENAT_MAC, IPV6, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(135), + I40E_PTT(136, IP, IPV6, NOF, IP_GRENAT_MAC, IPV6, NOF, TCP, PAY4), + I40E_PTT(137, IP, IPV6, NOF, IP_GRENAT_MAC, IPV6, NOF, SCTP, PAY4), + I40E_PTT(138, IP, IPV6, NOF, IP_GRENAT_MAC, IPV6, NOF, ICMP, PAY4), + + /* IPv6 --> GRE/NAT -> MAC/VLAN */ + I40E_PTT(139, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, NONE, NOF, NONE, PAY3), + + /* IPv6 --> GRE/NAT -> MAC/VLAN --> IPv4 */ + I40E_PTT(140, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV4, FRG, NONE, PAY3), + I40E_PTT(141, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, NONE, PAY3), + I40E_PTT(142, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(143), + I40E_PTT(144, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, TCP, PAY4), + I40E_PTT(145, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, SCTP, PAY4), + I40E_PTT(146, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, ICMP, PAY4), + + /* IPv6 --> GRE/NAT -> MAC/VLAN --> IPv6 */ + I40E_PTT(147, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV6, FRG, NONE, PAY3), + I40E_PTT(148, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, NONE, PAY3), + I40E_PTT(149, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(150), + I40E_PTT(151, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, TCP, PAY4), + I40E_PTT(152, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, SCTP, PAY4), + I40E_PTT(153, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, ICMP, PAY4), + + /* unused entries */ + I40E_PTT_UNUSED_ENTRY(154), + I40E_PTT_UNUSED_ENTRY(155), + I40E_PTT_UNUSED_ENTRY(156), + I40E_PTT_UNUSED_ENTRY(157), + I40E_PTT_UNUSED_ENTRY(158), + I40E_PTT_UNUSED_ENTRY(159), + + I40E_PTT_UNUSED_ENTRY(160), + I40E_PTT_UNUSED_ENTRY(161), + I40E_PTT_UNUSED_ENTRY(162), + I40E_PTT_UNUSED_ENTRY(163), + I40E_PTT_UNUSED_ENTRY(164), + I40E_PTT_UNUSED_ENTRY(165), + I40E_PTT_UNUSED_ENTRY(166), + I40E_PTT_UNUSED_ENTRY(167), + I40E_PTT_UNUSED_ENTRY(168), + I40E_PTT_UNUSED_ENTRY(169), + + I40E_PTT_UNUSED_ENTRY(170), + I40E_PTT_UNUSED_ENTRY(171), + I40E_PTT_UNUSED_ENTRY(172), + I40E_PTT_UNUSED_ENTRY(173), + I40E_PTT_UNUSED_ENTRY(174), + I40E_PTT_UNUSED_ENTRY(175), + I40E_PTT_UNUSED_ENTRY(176), + I40E_PTT_UNUSED_ENTRY(177), + I40E_PTT_UNUSED_ENTRY(178), + I40E_PTT_UNUSED_ENTRY(179), + + I40E_PTT_UNUSED_ENTRY(180), + I40E_PTT_UNUSED_ENTRY(181), + I40E_PTT_UNUSED_ENTRY(182), + I40E_PTT_UNUSED_ENTRY(183), + I40E_PTT_UNUSED_ENTRY(184), + I40E_PTT_UNUSED_ENTRY(185), + I40E_PTT_UNUSED_ENTRY(186), + I40E_PTT_UNUSED_ENTRY(187), + I40E_PTT_UNUSED_ENTRY(188), + I40E_PTT_UNUSED_ENTRY(189), + + I40E_PTT_UNUSED_ENTRY(190), + I40E_PTT_UNUSED_ENTRY(191), + I40E_PTT_UNUSED_ENTRY(192), + I40E_PTT_UNUSED_ENTRY(193), + I40E_PTT_UNUSED_ENTRY(194), + I40E_PTT_UNUSED_ENTRY(195), + I40E_PTT_UNUSED_ENTRY(196), + I40E_PTT_UNUSED_ENTRY(197), + I40E_PTT_UNUSED_ENTRY(198), + I40E_PTT_UNUSED_ENTRY(199), + + I40E_PTT_UNUSED_ENTRY(200), + I40E_PTT_UNUSED_ENTRY(201), + I40E_PTT_UNUSED_ENTRY(202), + I40E_PTT_UNUSED_ENTRY(203), + I40E_PTT_UNUSED_ENTRY(204), + I40E_PTT_UNUSED_ENTRY(205), + I40E_PTT_UNUSED_ENTRY(206), + I40E_PTT_UNUSED_ENTRY(207), + I40E_PTT_UNUSED_ENTRY(208), + I40E_PTT_UNUSED_ENTRY(209), + + I40E_PTT_UNUSED_ENTRY(210), + I40E_PTT_UNUSED_ENTRY(211), + I40E_PTT_UNUSED_ENTRY(212), + I40E_PTT_UNUSED_ENTRY(213), + I40E_PTT_UNUSED_ENTRY(214), + I40E_PTT_UNUSED_ENTRY(215), + I40E_PTT_UNUSED_ENTRY(216), + I40E_PTT_UNUSED_ENTRY(217), + I40E_PTT_UNUSED_ENTRY(218), + I40E_PTT_UNUSED_ENTRY(219), + + I40E_PTT_UNUSED_ENTRY(220), + I40E_PTT_UNUSED_ENTRY(221), + I40E_PTT_UNUSED_ENTRY(222), + I40E_PTT_UNUSED_ENTRY(223), + I40E_PTT_UNUSED_ENTRY(224), + I40E_PTT_UNUSED_ENTRY(225), + I40E_PTT_UNUSED_ENTRY(226), + I40E_PTT_UNUSED_ENTRY(227), + I40E_PTT_UNUSED_ENTRY(228), + I40E_PTT_UNUSED_ENTRY(229), + + I40E_PTT_UNUSED_ENTRY(230), + I40E_PTT_UNUSED_ENTRY(231), + I40E_PTT_UNUSED_ENTRY(232), + I40E_PTT_UNUSED_ENTRY(233), + I40E_PTT_UNUSED_ENTRY(234), + I40E_PTT_UNUSED_ENTRY(235), + I40E_PTT_UNUSED_ENTRY(236), + I40E_PTT_UNUSED_ENTRY(237), + I40E_PTT_UNUSED_ENTRY(238), + I40E_PTT_UNUSED_ENTRY(239), + + I40E_PTT_UNUSED_ENTRY(240), + I40E_PTT_UNUSED_ENTRY(241), + I40E_PTT_UNUSED_ENTRY(242), + I40E_PTT_UNUSED_ENTRY(243), + I40E_PTT_UNUSED_ENTRY(244), + I40E_PTT_UNUSED_ENTRY(245), + I40E_PTT_UNUSED_ENTRY(246), + I40E_PTT_UNUSED_ENTRY(247), + I40E_PTT_UNUSED_ENTRY(248), + I40E_PTT_UNUSED_ENTRY(249), + + I40E_PTT_UNUSED_ENTRY(250), + I40E_PTT_UNUSED_ENTRY(251), + I40E_PTT_UNUSED_ENTRY(252), + I40E_PTT_UNUSED_ENTRY(253), + I40E_PTT_UNUSED_ENTRY(254), + I40E_PTT_UNUSED_ENTRY(255) +}; + + +/** * i40e_init_shared_code - Initialize the shared code * @hw: pointer to hardware structure * @@ -142,14 +545,6 @@ i40e_status status = 0; u32 reg; - hw->phy.get_link_info = true; - - /* Determine port number */ - reg = rd32(hw, I40E_PFGEN_PORTNUM); - reg = ((reg & I40E_PFGEN_PORTNUM_PORT_NUM_MASK) >> - I40E_PFGEN_PORTNUM_PORT_NUM_SHIFT); - hw->port = (u8)reg; - i40e_set_mac_type(hw); switch (hw->mac.type) { @@ -160,6 +555,21 @@ break; } + hw->phy.get_link_info = true; + + /* Determine port number */ + reg = rd32(hw, I40E_PFGEN_PORTNUM); + reg = ((reg & I40E_PFGEN_PORTNUM_PORT_NUM_MASK) >> + I40E_PFGEN_PORTNUM_PORT_NUM_SHIFT); + hw->port = (u8)reg; + + /* Determine the PF number based on the PCI fn */ + reg = rd32(hw, I40E_GLPCI_CAPSUP); + if (reg & I40E_GLPCI_CAPSUP_ARI_EN_MASK) + hw->pf_id = (u8)((hw->bus.device << 3) | hw->bus.func); + else + hw->pf_id = (u8)hw->bus.func; + status = i40e_init_nvm(hw); return status; } @@ -210,8 +620,11 @@ i40e_fill_default_direct_cmd_desc(&desc, i40e_aqc_opc_mac_address_write); cmd_data->command_flags = cpu_to_le16(flags); - memcpy(&cmd_data->mac_sal, &mac_addr[0], 4); - memcpy(&cmd_data->mac_sah, &mac_addr[4], 2); + cmd_data->mac_sah = cpu_to_le16((u16)mac_addr[0] << 8 | mac_addr[1]); + cmd_data->mac_sal = cpu_to_le32(((u32)mac_addr[2] << 24) | + ((u32)mac_addr[3] << 16) | + ((u32)mac_addr[4] << 8) | + mac_addr[5]); status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details); @@ -240,32 +653,53 @@ } /** - * i40e_validate_mac_addr - Validate MAC address - * @mac_addr: pointer to MAC address - * - * Tests a MAC address to ensure it is a valid Individual Address + * i40e_get_media_type - Gets media type + * @hw: pointer to the hardware structure **/ -i40e_status i40e_validate_mac_addr(u8 *mac_addr) +static enum i40e_media_type i40e_get_media_type(struct i40e_hw *hw) { - i40e_status status = 0; + enum i40e_media_type media; - /* Make sure it is not a multicast address */ - if (I40E_IS_MULTICAST(mac_addr)) { - hw_dbg(hw, "MAC address is multicast\n"); - status = I40E_ERR_INVALID_MAC_ADDR; - /* Not a broadcast address */ - } else if (I40E_IS_BROADCAST(mac_addr)) { - hw_dbg(hw, "MAC address is broadcast\n"); - status = I40E_ERR_INVALID_MAC_ADDR; - /* Reject the zero address */ - } else if (mac_addr[0] == 0 && mac_addr[1] == 0 && mac_addr[2] == 0 && - mac_addr[3] == 0 && mac_addr[4] == 0 && mac_addr[5] == 0) { - hw_dbg(hw, "MAC address is all zeros\n"); - status = I40E_ERR_INVALID_MAC_ADDR; + switch (hw->phy.link_info.phy_type) { + case I40E_PHY_TYPE_10GBASE_SR: + case I40E_PHY_TYPE_10GBASE_LR: + case I40E_PHY_TYPE_40GBASE_SR4: + case I40E_PHY_TYPE_40GBASE_LR4: + media = I40E_MEDIA_TYPE_FIBER; + break; + case I40E_PHY_TYPE_100BASE_TX: + case I40E_PHY_TYPE_1000BASE_T: + case I40E_PHY_TYPE_10GBASE_T: + media = I40E_MEDIA_TYPE_BASET; + break; + case I40E_PHY_TYPE_10GBASE_CR1_CU: + case I40E_PHY_TYPE_40GBASE_CR4_CU: + case I40E_PHY_TYPE_10GBASE_CR1: + case I40E_PHY_TYPE_40GBASE_CR4: + case I40E_PHY_TYPE_10GBASE_SFPP_CU: + media = I40E_MEDIA_TYPE_DA; + break; + case I40E_PHY_TYPE_1000BASE_KX: + case I40E_PHY_TYPE_10GBASE_KX4: + case I40E_PHY_TYPE_10GBASE_KR: + case I40E_PHY_TYPE_40GBASE_KR4: + media = I40E_MEDIA_TYPE_BACKPLANE; + break; + case I40E_PHY_TYPE_SGMII: + case I40E_PHY_TYPE_XAUI: + case I40E_PHY_TYPE_XFI: + case I40E_PHY_TYPE_XLAUI: + case I40E_PHY_TYPE_XLPPI: + default: + media = I40E_MEDIA_TYPE_UNKNOWN; + break; } - return status; + + return media; } +#define I40E_PF_RESET_WAIT_COUNT_A0 200 +#define I40E_PF_RESET_WAIT_COUNT 10 /** * i40e_pf_reset - Reset the PF * @hw: pointer to the hardware structure @@ -275,7 +709,8 @@ **/ i40e_status i40e_pf_reset(struct i40e_hw *hw) { - u32 wait_cnt = 0; + u32 cnt = 0; + u32 cnt1 = 0; u32 reg = 0; u32 grst_del; @@ -285,7 +720,7 @@ */ grst_del = rd32(hw, I40E_GLGEN_RSTCTL) & I40E_GLGEN_RSTCTL_GRSTDEL_MASK >> I40E_GLGEN_RSTCTL_GRSTDEL_SHIFT; - for (wait_cnt = 0; wait_cnt < grst_del + 2; wait_cnt++) { + for (cnt = 0; cnt < grst_del + 2; cnt++) { reg = rd32(hw, I40E_GLGEN_RSTAT); if (!(reg & I40E_GLGEN_RSTAT_DEVSTATE_MASK)) break; @@ -296,17 +731,37 @@ return I40E_ERR_RESET_FAILED; } - /* Determine the PF number based on the PCI fn */ - hw->pf_id = (u8)hw->bus.func; + /* Now Wait for the FW to be ready */ + for (cnt1 = 0; cnt1 < I40E_PF_RESET_WAIT_COUNT; cnt1++) { + reg = rd32(hw, I40E_GLNVM_ULD); + reg &= (I40E_GLNVM_ULD_CONF_CORE_DONE_MASK | + I40E_GLNVM_ULD_CONF_GLOBAL_DONE_MASK); + if (reg == (I40E_GLNVM_ULD_CONF_CORE_DONE_MASK | + I40E_GLNVM_ULD_CONF_GLOBAL_DONE_MASK)) { + hw_dbg(hw, "Core and Global modules ready %d\n", cnt1); + break; + } + usleep_range(10000, 20000); + } + if (!(reg & (I40E_GLNVM_ULD_CONF_CORE_DONE_MASK | + I40E_GLNVM_ULD_CONF_GLOBAL_DONE_MASK))) { + hw_dbg(hw, "wait for FW Reset complete timedout\n"); + hw_dbg(hw, "I40E_GLNVM_ULD = 0x%x\n", reg); + return I40E_ERR_RESET_FAILED; + } /* If there was a Global Reset in progress when we got here, * we don't need to do the PF Reset */ - if (!wait_cnt) { + if (!cnt) { + if (hw->revision_id == 0) + cnt = I40E_PF_RESET_WAIT_COUNT_A0; + else + cnt = I40E_PF_RESET_WAIT_COUNT; reg = rd32(hw, I40E_PFGEN_CTRL); wr32(hw, I40E_PFGEN_CTRL, (reg | I40E_PFGEN_CTRL_PFSWR_MASK)); - for (wait_cnt = 0; wait_cnt < 10; wait_cnt++) { + for (; cnt; cnt--) { reg = rd32(hw, I40E_PFGEN_CTRL); if (!(reg & I40E_PFGEN_CTRL_PFSWR_MASK)) break; @@ -319,6 +774,7 @@ } i40e_clear_pxe_mode(hw); + return 0; } @@ -335,10 +791,48 @@ /* Clear single descriptor fetch/write-back mode */ reg = rd32(hw, I40E_GLLAN_RCTL_0); - wr32(hw, I40E_GLLAN_RCTL_0, (reg | I40E_GLLAN_RCTL_0_PXE_MODE_MASK)); + + if (hw->revision_id == 0) { + /* As a work around clear PXE_MODE instead of setting it */ + wr32(hw, I40E_GLLAN_RCTL_0, (reg & (~I40E_GLLAN_RCTL_0_PXE_MODE_MASK))); + } else { + wr32(hw, I40E_GLLAN_RCTL_0, (reg | I40E_GLLAN_RCTL_0_PXE_MODE_MASK)); + } } /** + * i40e_led_is_mine - helper to find matching led + * @hw: pointer to the hw struct + * @idx: index into GPIO registers + * + * returns: 0 if no match, otherwise the value of the GPIO_CTL register + */ +static u32 i40e_led_is_mine(struct i40e_hw *hw, int idx) +{ + u32 gpio_val = 0; + u32 port; + + if (!hw->func_caps.led[idx]) + return 0; + + gpio_val = rd32(hw, I40E_GLGEN_GPIO_CTL(idx)); + port = (gpio_val & I40E_GLGEN_GPIO_CTL_PRT_NUM_MASK) >> + I40E_GLGEN_GPIO_CTL_PRT_NUM_SHIFT; + + /* if PRT_NUM_NA is 1 then this LED is not port specific, OR + * if it is not our port then ignore + */ + if ((gpio_val & I40E_GLGEN_GPIO_CTL_PRT_NUM_NA_MASK) || + (port != hw->port)) + return 0; + + return gpio_val; +} + +#define I40E_LED0 22 +#define I40E_LINK_ACTIVITY 0xC + +/** * i40e_led_get - return current on/off mode * @hw: pointer to the hw struct * @@ -349,24 +843,20 @@ **/ u32 i40e_led_get(struct i40e_hw *hw) { - u32 gpio_val = 0; u32 mode = 0; - u32 port; int i; - for (i = 0; i < I40E_HW_CAP_MAX_GPIO; i++) { - if (!hw->func_caps.led[i]) - continue; - - gpio_val = rd32(hw, I40E_GLGEN_GPIO_CTL(i)); - port = (gpio_val & I40E_GLGEN_GPIO_CTL_PRT_NUM_MASK) - >> I40E_GLGEN_GPIO_CTL_PRT_NUM_SHIFT; + /* as per the documentation GPIO 22-29 are the LED + * GPIO pins named LED0..LED7 + */ + for (i = I40E_LED0; i <= I40E_GLGEN_GPIO_CTL_MAX_INDEX; i++) { + u32 gpio_val = i40e_led_is_mine(hw, i); - if (port != hw->port) + if (!gpio_val) continue; - mode = (gpio_val & I40E_GLGEN_GPIO_CTL_LED_MODE_MASK) - >> I40E_GLGEN_GPIO_CTL_INT_MODE_SHIFT; + mode = (gpio_val & I40E_GLGEN_GPIO_CTL_LED_MODE_MASK) >> + I40E_GLGEN_GPIO_CTL_LED_MODE_SHIFT; break; } @@ -376,60 +866,45 @@ /** * i40e_led_set - set new on/off mode * @hw: pointer to the hw struct - * @mode: 0=off, else on (see EAS for mode details) + * @mode: 0=off, 0xf=on (else see manual for mode details) + * @blink: true if the LED should blink when on, false if steady + * + * if this function is used to turn on the blink it should + * be used to disable the blink when restoring the original state. **/ -void i40e_led_set(struct i40e_hw *hw, u32 mode) +void i40e_led_set(struct i40e_hw *hw, u32 mode, bool blink) { - u32 gpio_val = 0; - u32 led_mode = 0; - u32 port; int i; - for (i = 0; i < I40E_HW_CAP_MAX_GPIO; i++) { - if (!hw->func_caps.led[i]) - continue; + if (mode & 0xfffffff0) + hw_dbg(hw, "invalid mode passed in %X\n", mode); - gpio_val = rd32(hw, I40E_GLGEN_GPIO_CTL(i)); - port = (gpio_val & I40E_GLGEN_GPIO_CTL_PRT_NUM_MASK) - >> I40E_GLGEN_GPIO_CTL_PRT_NUM_SHIFT; + /* as per the documentation GPIO 22-29 are the LED + * GPIO pins named LED0..LED7 + */ + for (i = I40E_LED0; i <= I40E_GLGEN_GPIO_CTL_MAX_INDEX; i++) { + u32 gpio_val = i40e_led_is_mine(hw, i); - if (port != hw->port) + if (!gpio_val) continue; - led_mode = (mode << I40E_GLGEN_GPIO_CTL_LED_MODE_SHIFT) & - I40E_GLGEN_GPIO_CTL_LED_MODE_MASK; gpio_val &= ~I40E_GLGEN_GPIO_CTL_LED_MODE_MASK; - gpio_val |= led_mode; + /* this & is a bit of paranoia, but serves as a range check */ + gpio_val |= ((mode << I40E_GLGEN_GPIO_CTL_LED_MODE_SHIFT) & + I40E_GLGEN_GPIO_CTL_LED_MODE_MASK); + + if (mode == I40E_LINK_ACTIVITY) + blink = false; + + gpio_val |= (blink ? 1 : 0) << + I40E_GLGEN_GPIO_CTL_LED_BLINK_SHIFT; + wr32(hw, I40E_GLGEN_GPIO_CTL(i), gpio_val); + break; } } /* Admin command wrappers */ -/** - * i40e_aq_queue_shutdown - * @hw: pointer to the hw struct - * @unloading: is the driver unloading itself - * - * Tell the Firmware that we're shutting down the AdminQ and whether - * or not the driver is unloading as well. - **/ -i40e_status i40e_aq_queue_shutdown(struct i40e_hw *hw, - bool unloading) -{ - struct i40e_aq_desc desc; - struct i40e_aqc_queue_shutdown *cmd = - (struct i40e_aqc_queue_shutdown *)&desc.params.raw; - i40e_status status; - - i40e_fill_default_direct_cmd_desc(&desc, - i40e_aqc_opc_queue_shutdown); - - if (unloading) - cmd->driver_unloading = cpu_to_le32(I40E_AQ_DRIVER_UNLOADING); - status = i40e_asq_send_command(hw, &desc, NULL, 0, NULL); - - return status; -} /** * i40e_aq_set_link_restart_an @@ -490,15 +965,16 @@ goto aq_get_link_info_exit; /* save off old link status information */ - memcpy(&hw->phy.link_info_old, hw_link_info, - sizeof(struct i40e_link_status)); + hw->phy.link_info_old = *hw_link_info; /* update link status */ hw_link_info->phy_type = (enum i40e_aq_phy_type)resp->phy_type; + hw->phy.media_type = i40e_get_media_type(hw); hw_link_info->link_speed = (enum i40e_aq_link_speed)resp->link_speed; hw_link_info->link_info = resp->link_info; hw_link_info->an_info = resp->an_info; hw_link_info->ext_info = resp->ext_info; + hw_link_info->loopback = resp->loopback; if (resp->command_flags & cpu_to_le16(I40E_AQ_LSE_ENABLE)) hw_link_info->lse_enable = true; @@ -519,7 +995,7 @@ /** * i40e_aq_add_vsi * @hw: pointer to the hw struct - * @vsi: pointer to a vsi context struct + * @vsi_ctx: pointer to a vsi context struct * @cmd_details: pointer to command details structure or NULL * * Add a VSI context to the hardware. @@ -571,7 +1047,8 @@ * @cmd_details: pointer to command details structure or NULL **/ i40e_status i40e_aq_set_vsi_unicast_promiscuous(struct i40e_hw *hw, - u16 seid, bool set, struct i40e_asq_cmd_details *cmd_details) + u16 seid, bool set, + struct i40e_asq_cmd_details *cmd_details) { struct i40e_aq_desc desc; struct i40e_aqc_set_vsi_promiscuous_modes *cmd = @@ -665,7 +1142,7 @@ /** * i40e_get_vsi_params - get VSI configuration info * @hw: pointer to the hw struct - * @vsi: pointer to a vsi context struct + * @vsi_ctx: pointer to a vsi context struct * @cmd_details: pointer to command details structure or NULL **/ i40e_status i40e_aq_get_vsi_params(struct i40e_hw *hw, @@ -673,8 +1150,8 @@ struct i40e_asq_cmd_details *cmd_details) { struct i40e_aq_desc desc; - struct i40e_aqc_switch_seid *cmd = - (struct i40e_aqc_switch_seid *)&desc.params.raw; + struct i40e_aqc_add_get_update_vsi *cmd = + (struct i40e_aqc_add_get_update_vsi *)&desc.params.raw; struct i40e_aqc_add_get_update_vsi_completion *resp = (struct i40e_aqc_add_get_update_vsi_completion *) &desc.params.raw; @@ -683,7 +1160,7 @@ i40e_fill_default_direct_cmd_desc(&desc, i40e_aqc_opc_get_vsi_parameters); - cmd->seid = cpu_to_le16(vsi_ctx->seid); + cmd->uplink_seid = cpu_to_le16(vsi_ctx->seid); desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_BUF); if (sizeof(vsi_ctx->info) > I40E_AQ_LARGE_BUF) @@ -707,7 +1184,7 @@ /** * i40e_aq_update_vsi_params * @hw: pointer to the hw struct - * @vsi: pointer to a vsi context struct + * @vsi_ctx: pointer to a vsi context struct * @cmd_details: pointer to command details structure or NULL * * Update a VSI context. @@ -717,13 +1194,13 @@ struct i40e_asq_cmd_details *cmd_details) { struct i40e_aq_desc desc; - struct i40e_aqc_switch_seid *cmd = - (struct i40e_aqc_switch_seid *)&desc.params.raw; + struct i40e_aqc_add_get_update_vsi *cmd = + (struct i40e_aqc_add_get_update_vsi *)&desc.params.raw; i40e_status status; i40e_fill_default_direct_cmd_desc(&desc, i40e_aqc_opc_update_vsi_parameters); - cmd->seid = cpu_to_le16(vsi_ctx->seid); + cmd->uplink_seid = cpu_to_le16(vsi_ctx->seid); desc.flags |= cpu_to_le16((u16)(I40E_AQ_FLAG_BUF | I40E_AQ_FLAG_RD)); if (sizeof(vsi_ctx->info) > I40E_AQ_LARGE_BUF) @@ -810,7 +1287,6 @@ /** * i40e_aq_send_driver_version * @hw: pointer to the hw struct - * @event: driver event: driver ok, start or stop * @dv: driver's major, minor version * @cmd_details: pointer to command details structure or NULL * @@ -873,6 +1349,7 @@ * @downlink_seid: the VSI SEID * @enabled_tc: bitmap of TCs to be enabled * @default_port: true for default port VSI, false for control port + * @enable_l2_filtering: true to add L2 filter table rules to regular forwarding rules for cloud support * @veb_seid: pointer to where to put the resulting VEB SEID * @cmd_details: pointer to command details structure or NULL * @@ -881,7 +1358,8 @@ **/ i40e_status i40e_aq_add_veb(struct i40e_hw *hw, u16 uplink_seid, u16 downlink_seid, u8 enabled_tc, - bool default_port, u16 *veb_seid, + bool default_port, bool enable_l2_filtering, + u16 *veb_seid, struct i40e_asq_cmd_details *cmd_details) { struct i40e_aq_desc desc; @@ -907,6 +1385,10 @@ veb_flags |= I40E_AQC_ADD_VEB_PORT_TYPE_DEFAULT; else veb_flags |= I40E_AQC_ADD_VEB_PORT_TYPE_DATA; + + if (enable_l2_filtering) + veb_flags |= I40E_AQC_ADD_VEB_ENABLE_L2_FILTER; + cmd->veb_flags = cpu_to_le16(veb_flags); status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details); @@ -922,10 +1404,10 @@ * @hw: pointer to the hw struct * @veb_seid: the SEID of the VEB to query * @switch_id: the uplink switch id - * @floating_veb: set to true if the VEB is floating + * @floating: set to true if the VEB is floating * @statistic_index: index of the stats counter block for this VEB * @vebs_used: number of VEB's used by function - * @vebs_unallocated: total VEB's not reserved by any function + * @vebs_free: total VEB's not reserved by any function * @cmd_details: pointer to command details structure or NULL * * This retrieves the parameters for a particular VEB, specified by @@ -1059,89 +1541,11 @@ } /** - * i40e_aq_add_vlan - Add VLAN ids to the HW filtering - * @hw: pointer to the hw struct - * @seid: VSI for the vlan filters - * @v_list: list of vlan filters to be added - * @count: length of the list - * @cmd_details: pointer to command details structure or NULL - **/ -i40e_status i40e_aq_add_vlan(struct i40e_hw *hw, u16 seid, - struct i40e_aqc_add_remove_vlan_element_data *v_list, - u8 count, struct i40e_asq_cmd_details *cmd_details) -{ - struct i40e_aq_desc desc; - struct i40e_aqc_macvlan *cmd = - (struct i40e_aqc_macvlan *)&desc.params.raw; - i40e_status status; - u16 buf_size; - - if (count == 0 || !v_list || !hw) - return I40E_ERR_PARAM; - - buf_size = count * sizeof(struct i40e_aqc_add_remove_vlan_element_data); - - /* prep the rest of the request */ - i40e_fill_default_direct_cmd_desc(&desc, i40e_aqc_opc_add_vlan); - cmd->num_addresses = cpu_to_le16(count); - cmd->seid[0] = cpu_to_le16(seid | I40E_AQC_MACVLAN_CMD_SEID_VALID); - cmd->seid[1] = 0; - cmd->seid[2] = 0; - - desc.flags |= cpu_to_le16((u16)(I40E_AQ_FLAG_BUF | I40E_AQ_FLAG_RD)); - if (buf_size > I40E_AQ_LARGE_BUF) - desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_LB); - - status = i40e_asq_send_command(hw, &desc, v_list, buf_size, - cmd_details); - - return status; -} - -/** - * i40e_aq_remove_vlan - Remove VLANs from the HW filtering - * @hw: pointer to the hw struct - * @seid: VSI for the vlan filters - * @v_list: list of macvlans to be removed - * @count: length of the list - * @cmd_details: pointer to command details structure or NULL - **/ -i40e_status i40e_aq_remove_vlan(struct i40e_hw *hw, u16 seid, - struct i40e_aqc_add_remove_vlan_element_data *v_list, - u8 count, struct i40e_asq_cmd_details *cmd_details) -{ - struct i40e_aq_desc desc; - struct i40e_aqc_macvlan *cmd = - (struct i40e_aqc_macvlan *)&desc.params.raw; - i40e_status status; - u16 buf_size; - - if (count == 0 || !v_list || !hw) - return I40E_ERR_PARAM; - - buf_size = count * sizeof(struct i40e_aqc_add_remove_vlan_element_data); - - /* prep the rest of the request */ - i40e_fill_default_direct_cmd_desc(&desc, i40e_aqc_opc_remove_vlan); - cmd->num_addresses = cpu_to_le16(count); - cmd->seid[0] = cpu_to_le16(seid | I40E_AQC_MACVLAN_CMD_SEID_VALID); - cmd->seid[1] = 0; - cmd->seid[2] = 0; - - desc.flags |= cpu_to_le16((u16)(I40E_AQ_FLAG_BUF | I40E_AQ_FLAG_RD)); - if (buf_size > I40E_AQ_LARGE_BUF) - desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_LB); - - status = i40e_asq_send_command(hw, &desc, v_list, buf_size, - cmd_details); - - return status; -} - -/** * i40e_aq_send_msg_to_vf * @hw: pointer to the hardware structure * @vfid: vf id to send msg + * @v_opcode: opcodes for VF-PF communication + * @v_retval: return error code * @msg: pointer to the msg buffer * @msglen: msg length * @cmd_details: pointer to command details @@ -1371,9 +1775,9 @@ cap = (struct i40e_aqc_list_capabilities_element_resp *) buff; if (list_type_opc == i40e_aqc_opc_list_dev_capabilities) - p = (struct i40e_hw_capabilities *)&hw->dev_caps; + p = &hw->dev_caps; else if (list_type_opc == i40e_aqc_opc_list_func_capabilities) - p = (struct i40e_hw_capabilities *)&hw->func_caps; + p = &hw->func_caps; else return; @@ -1519,8 +1923,8 @@ struct i40e_asq_cmd_details *cmd_details) { struct i40e_aqc_list_capabilites *cmd; - i40e_status status = 0; struct i40e_aq_desc desc; + i40e_status status = 0; cmd = (struct i40e_aqc_list_capabilites *)&desc.params.raw; @@ -1681,6 +2085,63 @@ } /** + * i40e_aq_add_udp_tunnel + * @hw: pointer to the hw struct + * @udp_port: the UDP port to add + * @header_len: length of the tunneling header length in DWords + * @protocol_index: protocol index type + * @filter_index: pointer to filter index + * @cmd_details: pointer to command details structure or NULL + **/ +i40e_status i40e_aq_add_udp_tunnel(struct i40e_hw *hw, + u16 udp_port, u8 header_len, + u8 protocol_index, u8 *filter_index, + struct i40e_asq_cmd_details *cmd_details) +{ + struct i40e_aq_desc desc; + struct i40e_aqc_add_udp_tunnel *cmd = + (struct i40e_aqc_add_udp_tunnel *)&desc.params.raw; + struct i40e_aqc_del_udp_tunnel_completion *resp = + (struct i40e_aqc_del_udp_tunnel_completion *)&desc.params.raw; + i40e_status status; + + i40e_fill_default_direct_cmd_desc(&desc, i40e_aqc_opc_add_udp_tunnel); + + cmd->udp_port = cpu_to_le16(udp_port); + cmd->protocol_type = protocol_index; + + status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details); + + if (!status) + *filter_index = resp->index; + + return status; +} + +/** + * i40e_aq_del_udp_tunnel + * @hw: pointer to the hw struct + * @index: filter index + * @cmd_details: pointer to command details structure or NULL + **/ +i40e_status i40e_aq_del_udp_tunnel(struct i40e_hw *hw, u8 index, + struct i40e_asq_cmd_details *cmd_details) +{ + struct i40e_aq_desc desc; + struct i40e_aqc_remove_udp_tunnel *cmd = + (struct i40e_aqc_remove_udp_tunnel *)&desc.params.raw; + i40e_status status; + + i40e_fill_default_direct_cmd_desc(&desc, i40e_aqc_opc_del_udp_tunnel); + + cmd->index = index; + + status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details); + + return status; +} + +/** * i40e_aq_delete_element - Delete switch element * @hw: pointer to the hw struct * @seid: the SEID to delete from the switch @@ -1709,6 +2170,28 @@ } /** + * i40e_aq_dcb_updated - DCB Updated Command + * @hw: pointer to the hw struct + * @cmd_details: pointer to command details structure or NULL + * + * EMP will return when the shared RPB settings have been + * recomputed and modified. The retval field in the descriptor + * will be set to 0 when RPB is modified. + **/ +i40e_status i40e_aq_dcb_updated(struct i40e_hw *hw, + struct i40e_asq_cmd_details *cmd_details) +{ + struct i40e_aq_desc desc; + i40e_status status; + + i40e_fill_default_direct_cmd_desc(&desc, i40e_aqc_opc_dcb_updated); + + status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details); + + return status; +} + +/** * i40e_aq_tx_sched_cmd - generic Tx scheduler AQ command handler * @hw: pointer to the hw struct * @seid: seid for the physical port/switching component/vsi @@ -1787,6 +2270,40 @@ } /** + * i40e_aq_config_switch_comp_ets - Enable/Disable/Modify ETS on the port + * @hw: pointer to the hw struct + * @seid: seid of the switching component connected to Physical Port + * @ets_data: Buffer holding ETS parameters + * @cmd_details: pointer to command details structure or NULL + **/ +i40e_status i40e_aq_config_switch_comp_ets(struct i40e_hw *hw, + u16 seid, + struct i40e_aqc_configure_switching_comp_ets_data *ets_data, + enum i40e_admin_queue_opc opcode, + struct i40e_asq_cmd_details *cmd_details) +{ + return i40e_aq_tx_sched_cmd(hw, seid, (void *)ets_data, + sizeof(*ets_data), opcode, cmd_details); +} + +/** + * i40e_aq_config_switch_comp_bw_config - Config Switch comp BW Alloc per TC + * @hw: pointer to the hw struct + * @seid: seid of the switching component + * @bw_data: Buffer holding enabled TCs, relative/absolute TC BW limit/credits + * @cmd_details: pointer to command details structure or NULL + **/ +i40e_status i40e_aq_config_switch_comp_bw_config(struct i40e_hw *hw, + u16 seid, + struct i40e_aqc_configure_switching_comp_bw_config_data *bw_data, + struct i40e_asq_cmd_details *cmd_details) +{ + return i40e_aq_tx_sched_cmd(hw, seid, (void *)bw_data, sizeof(*bw_data), + i40e_aqc_opc_configure_switching_comp_bw_config, + cmd_details); +} + +/** * i40e_aq_query_vsi_bw_config - Query VSI BW configuration * @hw: pointer to the hw struct * @seid: seid of the VSI @@ -2039,3 +2556,110 @@ return 0; } + +/** + * i40e_aq_add_rem_control_packet_filter - Add or Remove Control Packet Filter + * @hw: pointer to the hw struct + * @mac_addr: MAC address to use in the filter + * @ethtype: Ethertype to use in the filter + * @flags: Flags that needs to be applied to the filter + * @vsi_seid: seid of the control VSI + * @queue: VSI queue number to send the packet to + * @is_add: Add control packet filter if True else remove + * @stats: Structure to hold information on control filter counts + * @cmd_details: pointer to command details structure or NULL + * + * This command will Add or Remove control packet filter for a control VSI. + * In return it will update the total number of perfect filter count in + * the stats member. + **/ +i40e_status i40e_aq_add_rem_control_packet_filter(struct i40e_hw *hw, + u8 *mac_addr, u16 ethtype, u16 flags, + u16 vsi_seid, u16 queue, bool is_add, + struct i40e_control_filter_stats *stats, + struct i40e_asq_cmd_details *cmd_details) +{ + struct i40e_aq_desc desc; + struct i40e_aqc_add_remove_control_packet_filter *cmd = + (struct i40e_aqc_add_remove_control_packet_filter *) + &desc.params.raw; + struct i40e_aqc_add_remove_control_packet_filter_completion *resp = + (struct i40e_aqc_add_remove_control_packet_filter_completion *) + &desc.params.raw; + i40e_status status; + + if (vsi_seid == 0) + return I40E_ERR_PARAM; + + if (is_add) { + i40e_fill_default_direct_cmd_desc(&desc, + i40e_aqc_opc_add_control_packet_filter); + cmd->queue = cpu_to_le16(queue); + } else { + i40e_fill_default_direct_cmd_desc(&desc, + i40e_aqc_opc_remove_control_packet_filter); + } + + if (mac_addr) + memcpy(cmd->mac, mac_addr, ETH_ALEN); + + cmd->etype = cpu_to_le16(ethtype); + cmd->flags = cpu_to_le16(flags); + cmd->seid = cpu_to_le16(vsi_seid); + + status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details); + + if (!status && stats) { + stats->mac_etype_used = le16_to_cpu(resp->mac_etype_used); + stats->etype_used = le16_to_cpu(resp->etype_used); + stats->mac_etype_free = le16_to_cpu(resp->mac_etype_free); + stats->etype_free = le16_to_cpu(resp->etype_free); + } + + return status; +} + +/** + * i40e_set_pci_config_data - store PCI bus info + * @hw: pointer to hardware structure + * @link_status: the link status word from PCI config space + * + * Stores the PCI bus info (speed, width, type) within the i40e_hw structure + **/ +void i40e_set_pci_config_data(struct i40e_hw *hw, u16 link_status) +{ + hw->bus.type = i40e_bus_type_pci_express; + + switch (link_status & PCI_EXP_LNKSTA_NLW) { + case PCI_EXP_LNKSTA_NLW_X1: + hw->bus.width = i40e_bus_width_pcie_x1; + break; + case PCI_EXP_LNKSTA_NLW_X2: + hw->bus.width = i40e_bus_width_pcie_x2; + break; + case PCI_EXP_LNKSTA_NLW_X4: + hw->bus.width = i40e_bus_width_pcie_x4; + break; + case PCI_EXP_LNKSTA_NLW_X8: + hw->bus.width = i40e_bus_width_pcie_x8; + break; + default: + hw->bus.width = i40e_bus_width_unknown; + break; + } + + switch (link_status & PCI_EXP_LNKSTA_CLS) { + case PCI_EXP_LNKSTA_CLS_2_5GB: + hw->bus.speed = i40e_bus_speed_2500; + break; + case PCI_EXP_LNKSTA_CLS_5_0GB: + hw->bus.speed = i40e_bus_speed_5000; + break; + case PCI_EXP_LNKSTA_CLS_8_0GB: + hw->bus.speed = i40e_bus_speed_8000; + break; + default: + hw->bus.speed = i40e_bus_speed_unknown; + break; + } +} --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_dcb.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_dcb.c @@ -0,0 +1,472 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Driver + * Copyright(c) 2013 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#include "i40e_adminq.h" +#include "i40e_prototype.h" +#include "i40e_dcb.h" + +/** + * i40e_get_dcbx_status + * @hw: pointer to the hw struct + * @status: Embedded DCBX Engine Status + * + * Get the DCBX status from the Firmware + **/ +i40e_status i40e_get_dcbx_status(struct i40e_hw *hw, u16 *status) +{ + u32 reg; + + if (!status) + return I40E_ERR_PARAM; + + reg = rd32(hw, I40E_PRTDCB_GENS); + *status = (u16)((reg & I40E_PRTDCB_GENS_DCBX_STATUS_MASK) >> + I40E_PRTDCB_GENS_DCBX_STATUS_SHIFT); + + return 0; +} + +/** + * i40e_parse_ieee_etscfg_tlv + * @tlv: IEEE 802.1Qaz ETS CFG TLV + * @dcbcfg: Local store to update ETS CFG data + * + * Parses IEEE 802.1Qaz ETS CFG TLV + **/ +static void i40e_parse_ieee_etscfg_tlv(struct i40e_lldp_org_tlv *tlv, + struct i40e_dcbx_config *dcbcfg) +{ + struct i40e_ieee_ets_config *etscfg; + u8 *buf = tlv->tlvinfo; + u16 offset = 0; + u8 priority; + int i; + + /* First Octet post subtype + * -------------------------- + * |will-|CBS | Re- | Max | + * |ing | |served| TCs | + * -------------------------- + * |1bit | 1bit|3 bits|3bits| + */ + etscfg = &dcbcfg->etscfg; + etscfg->willing = (u8)((buf[offset] & I40E_IEEE_ETS_WILLING_MASK) >> + I40E_IEEE_ETS_WILLING_SHIFT); + etscfg->cbs = (u8)((buf[offset] & I40E_IEEE_ETS_CBS_MASK) >> + I40E_IEEE_ETS_CBS_SHIFT); + etscfg->maxtcs = (u8)((buf[offset] & I40E_IEEE_ETS_MAXTC_MASK) >> + I40E_IEEE_ETS_MAXTC_SHIFT); + + /* Move offset to Priority Assignment Table */ + offset++; + + /* Priority Assignment Table (4 octets) + * Octets:| 1 | 2 | 3 | 4 | + * ----------------------------------------- + * |pri0|pri1|pri2|pri3|pri4|pri5|pri6|pri7| + * ----------------------------------------- + * Bits:|7 4|3 0|7 4|3 0|7 4|3 0|7 4|3 0| + * ----------------------------------------- + */ + for (i = 0; i < 4; i++) { + priority = (u8)((buf[offset] & I40E_IEEE_ETS_PRIO_1_MASK) >> + I40E_IEEE_ETS_PRIO_1_SHIFT); + etscfg->prioritytable[i * 2] = priority; + priority = (u8)((buf[offset] & I40E_IEEE_ETS_PRIO_0_MASK) >> + I40E_IEEE_ETS_PRIO_0_SHIFT); + etscfg->prioritytable[i * 2 + 1] = priority; + offset++; + } + + /* TC Bandwidth Table (8 octets) + * Octets:| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | + * --------------------------------- + * |tc0|tc1|tc2|tc3|tc4|tc5|tc6|tc7| + * --------------------------------- + */ + for (i = 0; i < I40E_MAX_TRAFFIC_CLASS; i++) + etscfg->tcbwtable[i] = buf[offset++]; + + /* TSA Assignment Table (8 octets) + * Octets:| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | + * --------------------------------- + * |tc0|tc1|tc2|tc3|tc4|tc5|tc6|tc7| + * --------------------------------- + */ + for (i = 0; i < I40E_MAX_TRAFFIC_CLASS; i++) + etscfg->tsatable[i] = buf[offset++]; +} + +/** + * i40e_parse_ieee_etsrec_tlv + * @tlv: IEEE 802.1Qaz ETS REC TLV + * @dcbcfg: Local store to update ETS REC data + * + * Parses IEEE 802.1Qaz ETS REC TLV + **/ +static void i40e_parse_ieee_etsrec_tlv(struct i40e_lldp_org_tlv *tlv, + struct i40e_dcbx_config *dcbcfg) +{ + u8 *buf = tlv->tlvinfo; + u16 offset = 0; + u8 priority; + int i; + + /* Move offset to priority table */ + offset++; + + /* Priority Assignment Table (4 octets) + * Octets:| 1 | 2 | 3 | 4 | + * ----------------------------------------- + * |pri0|pri1|pri2|pri3|pri4|pri5|pri6|pri7| + * ----------------------------------------- + * Bits:|7 4|3 0|7 4|3 0|7 4|3 0|7 4|3 0| + * ----------------------------------------- + */ + for (i = 0; i < 4; i++) { + priority = (u8)((buf[offset] & I40E_IEEE_ETS_PRIO_1_MASK) >> + I40E_IEEE_ETS_PRIO_1_SHIFT); + dcbcfg->etsrec.prioritytable[i*2] = priority; + priority = (u8)((buf[offset] & I40E_IEEE_ETS_PRIO_0_MASK) >> + I40E_IEEE_ETS_PRIO_0_SHIFT); + dcbcfg->etsrec.prioritytable[i*2 + 1] = priority; + offset++; + } + + /* TC Bandwidth Table (8 octets) + * Octets:| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | + * --------------------------------- + * |tc0|tc1|tc2|tc3|tc4|tc5|tc6|tc7| + * --------------------------------- + */ + for (i = 0; i < I40E_MAX_TRAFFIC_CLASS; i++) + dcbcfg->etsrec.tcbwtable[i] = buf[offset++]; + + /* TSA Assignment Table (8 octets) + * Octets:| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | + * --------------------------------- + * |tc0|tc1|tc2|tc3|tc4|tc5|tc6|tc7| + * --------------------------------- + */ + for (i = 0; i < I40E_MAX_TRAFFIC_CLASS; i++) + dcbcfg->etsrec.tsatable[i] = buf[offset++]; +} + +/** + * i40e_parse_ieee_pfccfg_tlv + * @tlv: IEEE 802.1Qaz PFC CFG TLV + * @dcbcfg: Local store to update PFC CFG data + * + * Parses IEEE 802.1Qaz PFC CFG TLV + **/ +static void i40e_parse_ieee_pfccfg_tlv(struct i40e_lldp_org_tlv *tlv, + struct i40e_dcbx_config *dcbcfg) +{ + u8 *buf = tlv->tlvinfo; + + /* ---------------------------------------- + * |will-|MBC | Re- | PFC | PFC Enable | + * |ing | |served| cap | | + * ----------------------------------------- + * |1bit | 1bit|2 bits|4bits| 1 octet | + */ + dcbcfg->pfc.willing = (u8)((buf[0] & I40E_IEEE_PFC_WILLING_MASK) >> + I40E_IEEE_PFC_WILLING_SHIFT); + dcbcfg->pfc.mbc = (u8)((buf[0] & I40E_IEEE_PFC_MBC_MASK) >> + I40E_IEEE_PFC_MBC_SHIFT); + dcbcfg->pfc.pfccap = (u8)((buf[0] & I40E_IEEE_PFC_CAP_MASK) >> + I40E_IEEE_PFC_CAP_SHIFT); + dcbcfg->pfc.pfcenable = buf[1]; +} + +/** + * i40e_parse_ieee_app_tlv + * @tlv: IEEE 802.1Qaz APP TLV + * @dcbcfg: Local store to update APP PRIO data + * + * Parses IEEE 802.1Qaz APP PRIO TLV + **/ +static void i40e_parse_ieee_app_tlv(struct i40e_lldp_org_tlv *tlv, + struct i40e_dcbx_config *dcbcfg) +{ + u16 typelength; + u16 offset = 0; + u16 length; + int i = 0; + u8 *buf; + + typelength = ntohs(tlv->typelength); + length = (u16)((typelength & I40E_LLDP_TLV_LEN_MASK) >> + I40E_LLDP_TLV_LEN_SHIFT); + buf = tlv->tlvinfo; + + /* The App priority table starts 5 octets after TLV header */ + length -= (sizeof(tlv->ouisubtype) + 1); + + /* Move offset to App Priority Table */ + offset++; + + /* Application Priority Table (3 octets) + * Octets:| 1 | 2 | 3 | + * ----------------------------------------- + * |Priority|Rsrvd| Sel | Protocol ID | + * ----------------------------------------- + * Bits:|23 21|20 19|18 16|15 0| + * ----------------------------------------- + */ + while (offset < length) { + dcbcfg->app[i].priority = (u8)((buf[offset] & + I40E_IEEE_APP_PRIO_MASK) >> + I40E_IEEE_APP_PRIO_SHIFT); + dcbcfg->app[i].selector = (u8)((buf[offset] & + I40E_IEEE_APP_SEL_MASK) >> + I40E_IEEE_APP_SEL_SHIFT); + dcbcfg->app[i].protocolid = (buf[offset + 1] << 0x8) | + buf[offset + 2]; + /* Move to next app */ + offset += 3; + i++; + if (i >= I40E_DCBX_MAX_APPS) + break; + } + + dcbcfg->numapps = i; +} + +/** + * i40e_parse_ieee_etsrec_tlv + * @tlv: IEEE 802.1Qaz TLV + * @dcbcfg: Local store to update ETS REC data + * + * Get the TLV subtype and send it to parsing function + * based on the subtype value + **/ +static void i40e_parse_ieee_tlv(struct i40e_lldp_org_tlv *tlv, + struct i40e_dcbx_config *dcbcfg) +{ + u32 ouisubtype; + u8 subtype; + + ouisubtype = ntohl(tlv->ouisubtype); + subtype = (u8)((ouisubtype & I40E_LLDP_TLV_SUBTYPE_MASK) >> + I40E_LLDP_TLV_SUBTYPE_SHIFT); + switch (subtype) { + case I40E_IEEE_SUBTYPE_ETS_CFG: + i40e_parse_ieee_etscfg_tlv(tlv, dcbcfg); + break; + case I40E_IEEE_SUBTYPE_ETS_REC: + i40e_parse_ieee_etsrec_tlv(tlv, dcbcfg); + break; + case I40E_IEEE_SUBTYPE_PFC_CFG: + i40e_parse_ieee_pfccfg_tlv(tlv, dcbcfg); + break; + case I40E_IEEE_SUBTYPE_APP_PRI: + i40e_parse_ieee_app_tlv(tlv, dcbcfg); + break; + default: + break; + } +} + +/** + * i40e_parse_org_tlv + * @tlv: Organization specific TLV + * @dcbcfg: Local store to update ETS REC data + * + * Currently only IEEE 802.1Qaz TLV is supported, all others + * will be returned + **/ +static void i40e_parse_org_tlv(struct i40e_lldp_org_tlv *tlv, + struct i40e_dcbx_config *dcbcfg) +{ + u32 ouisubtype; + u32 oui; + + ouisubtype = ntohl(tlv->ouisubtype); + oui = (u32)((ouisubtype & I40E_LLDP_TLV_OUI_MASK) >> + I40E_LLDP_TLV_OUI_SHIFT); + switch (oui) { + case I40E_IEEE_8021QAZ_OUI: + i40e_parse_ieee_tlv(tlv, dcbcfg); + break; + default: + break; + } +} + +/** + * i40e_lldp_to_dcb_config + * @lldpmib: LLDPDU to be parsed + * @dcbcfg: store for LLDPDU data + * + * Parse DCB configuration from the LLDPDU + **/ +i40e_status i40e_lldp_to_dcb_config(u8 *lldpmib, + struct i40e_dcbx_config *dcbcfg) +{ + i40e_status ret = 0; + struct i40e_lldp_org_tlv *tlv; + u16 type; + u16 length; + u16 typelength; + u16 offset = 0; + + if (!lldpmib || !dcbcfg) + return I40E_ERR_PARAM; + + /* set to the start of LLDPDU */ + lldpmib += ETH_HLEN; + tlv = (struct i40e_lldp_org_tlv *)lldpmib; + while (1) { + typelength = ntohs(tlv->typelength); + type = (u16)((typelength & I40E_LLDP_TLV_TYPE_MASK) >> + I40E_LLDP_TLV_TYPE_SHIFT); + length = (u16)((typelength & I40E_LLDP_TLV_LEN_MASK) >> + I40E_LLDP_TLV_LEN_SHIFT); + offset += sizeof(typelength) + length; + + /* END TLV or beyond LLDPDU size */ + if ((type == I40E_TLV_TYPE_END) || (offset > I40E_LLDPDU_SIZE)) + break; + + switch (type) { + case I40E_TLV_TYPE_ORG: + i40e_parse_org_tlv(tlv, dcbcfg); + break; + default: + break; + } + + /* Move to next TLV */ + tlv = (struct i40e_lldp_org_tlv *)((char *)tlv + + sizeof(tlv->typelength) + + length); + } + + return ret; +} + +/** + * i40e_aq_get_dcb_config + * @hw: pointer to the hw struct + * @mib_type: mib type for the query + * @bridgetype: bridge type for the query (remote) + * @dcbcfg: store for LLDPDU data + * + * Query DCB configuration from the Firmware + **/ +i40e_status i40e_aq_get_dcb_config(struct i40e_hw *hw, u8 mib_type, + u8 bridgetype, + struct i40e_dcbx_config *dcbcfg) +{ + i40e_status ret = 0; + struct i40e_virt_mem mem; + u8 *lldpmib; + + /* Allocate the LLDPDU */ + ret = i40e_allocate_virt_mem(hw, &mem, I40E_LLDPDU_SIZE); + if (ret) + return ret; + + lldpmib = (u8 *)mem.va; + ret = i40e_aq_get_lldp_mib(hw, bridgetype, mib_type, + (void *)lldpmib, I40E_LLDPDU_SIZE, + NULL, NULL, NULL); + if (ret) + goto free_mem; + + /* Parse LLDP MIB to get dcb configuration */ + ret = i40e_lldp_to_dcb_config(lldpmib, dcbcfg); + +free_mem: + i40e_free_virt_mem(hw, &mem); + return ret; +} + +/** + * i40e_get_dcb_config + * @hw: pointer to the hw struct + * + * Get DCB configuration from the Firmware + **/ +i40e_status i40e_get_dcb_config(struct i40e_hw *hw) +{ + i40e_status ret = 0; + + /* Get Local DCB Config */ + ret = i40e_aq_get_dcb_config(hw, I40E_AQ_LLDP_MIB_LOCAL, 0, + &hw->local_dcbx_config); + if (ret) + goto out; + + /* Get Remote DCB Config */ + ret = i40e_aq_get_dcb_config(hw, I40E_AQ_LLDP_MIB_REMOTE, + I40E_AQ_LLDP_BRIDGE_TYPE_NEAREST_BRIDGE, + &hw->remote_dcbx_config); +out: + return ret; +} + +/** + * i40e_init_dcb + * @hw: pointer to the hw struct + * + * Update DCB configuration from the Firmware + **/ +i40e_status i40e_init_dcb(struct i40e_hw *hw) +{ + i40e_status ret = 0; + + if (!hw->func_caps.dcb) + return ret; + + /* Get DCBX status */ + ret = i40e_get_dcbx_status(hw, &hw->dcbx_status); + if (ret) + return ret; + + /* Check the DCBX Status */ + switch (hw->dcbx_status) { + case I40E_DCBX_STATUS_DONE: + case I40E_DCBX_STATUS_IN_PROGRESS: + /* Get current DCBX configuration */ + ret = i40e_get_dcb_config(hw); + break; + case I40E_DCBX_STATUS_DISABLED: + return ret; + case I40E_DCBX_STATUS_NOT_STARTED: + case I40E_DCBX_STATUS_MULTIPLE_PEERS: + default: + break; + } + + /* Configure the LLDP MIB change event */ + ret = i40e_aq_cfg_lldp_mib_change_event(hw, true, NULL); + if (ret) + return ret; + + return ret; +} --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_dcb.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_dcb.h @@ -0,0 +1,107 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Driver + * Copyright(c) 2013 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#ifndef _I40E_DCB_H_ +#define _I40E_DCB_H_ + +#include "i40e_type.h" + +#define I40E_DCBX_STATUS_NOT_STARTED 0 +#define I40E_DCBX_STATUS_IN_PROGRESS 1 +#define I40E_DCBX_STATUS_DONE 2 +#define I40E_DCBX_STATUS_MULTIPLE_PEERS 3 +#define I40E_DCBX_STATUS_DISABLED 7 + +#define I40E_TLV_TYPE_END 0 +#define I40E_TLV_TYPE_ORG 127 + +#define I40E_IEEE_8021QAZ_OUI 0x0080C2 +#define I40E_IEEE_SUBTYPE_ETS_CFG 9 +#define I40E_IEEE_SUBTYPE_ETS_REC 10 +#define I40E_IEEE_SUBTYPE_PFC_CFG 11 +#define I40E_IEEE_SUBTYPE_APP_PRI 12 + +/* Defines for LLDP TLV header */ +#define I40E_LLDP_TLV_LEN_SHIFT 0 +#define I40E_LLDP_TLV_LEN_MASK (0x01FF << I40E_LLDP_TLV_LEN_SHIFT) +#define I40E_LLDP_TLV_TYPE_SHIFT 9 +#define I40E_LLDP_TLV_TYPE_MASK (0x7F << I40E_LLDP_TLV_TYPE_SHIFT) +#define I40E_LLDP_TLV_SUBTYPE_SHIFT 0 +#define I40E_LLDP_TLV_SUBTYPE_MASK (0xFF << I40E_LLDP_TLV_SUBTYPE_SHIFT) +#define I40E_LLDP_TLV_OUI_SHIFT 8 +#define I40E_LLDP_TLV_OUI_MASK (0xFFFFFF << I40E_LLDP_TLV_OUI_SHIFT) + +/* Defines for IEEE ETS TLV */ +#define I40E_IEEE_ETS_MAXTC_SHIFT 0 +#define I40E_IEEE_ETS_MAXTC_MASK (0x7 << I40E_IEEE_ETS_MAXTC_SHIFT) +#define I40E_IEEE_ETS_CBS_SHIFT 6 +#define I40E_IEEE_ETS_CBS_MASK (0x1 << I40E_IEEE_ETS_CBS_SHIFT) +#define I40E_IEEE_ETS_WILLING_SHIFT 7 +#define I40E_IEEE_ETS_WILLING_MASK (0x1 << I40E_IEEE_ETS_WILLING_SHIFT) +#define I40E_IEEE_ETS_PRIO_0_SHIFT 0 +#define I40E_IEEE_ETS_PRIO_0_MASK (0x7 << I40E_IEEE_ETS_PRIO_0_SHIFT) +#define I40E_IEEE_ETS_PRIO_1_SHIFT 4 +#define I40E_IEEE_ETS_PRIO_1_MASK (0x7 << I40E_IEEE_ETS_PRIO_1_SHIFT) + +/* Defines for IEEE TSA types */ +#define I40E_IEEE_TSA_STRICT 0 +#define I40E_IEEE_TSA_ETS 2 + +/* Defines for IEEE PFC TLV */ +#define I40E_IEEE_PFC_CAP_SHIFT 0 +#define I40E_IEEE_PFC_CAP_MASK (0xF << I40E_IEEE_PFC_CAP_SHIFT) +#define I40E_IEEE_PFC_MBC_SHIFT 6 +#define I40E_IEEE_PFC_MBC_MASK (0x1 << I40E_IEEE_PFC_MBC_SHIFT) +#define I40E_IEEE_PFC_WILLING_SHIFT 7 +#define I40E_IEEE_PFC_WILLING_MASK (0x1 << I40E_IEEE_PFC_WILLING_SHIFT) + +/* Defines for IEEE APP TLV */ +#define I40E_IEEE_APP_SEL_SHIFT 0 +#define I40E_IEEE_APP_SEL_MASK (0x7 << I40E_IEEE_APP_SEL_SHIFT) +#define I40E_IEEE_APP_PRIO_SHIFT 5 +#define I40E_IEEE_APP_PRIO_MASK (0x7 << I40E_IEEE_APP_PRIO_SHIFT) + + +#pragma pack(1) + +/* IEEE 802.1AB LLDP Organization specific TLV */ +struct i40e_lldp_org_tlv { + __be16 typelength; + __be32 ouisubtype; + u8 tlvinfo[1]; +}; +#pragma pack() + +i40e_status i40e_get_dcbx_status(struct i40e_hw *hw, + u16 *status); +i40e_status i40e_lldp_to_dcb_config(u8 *lldpmib, + struct i40e_dcbx_config *dcbcfg); +i40e_status i40e_aq_get_dcb_config(struct i40e_hw *hw, u8 mib_type, + u8 bridgetype, + struct i40e_dcbx_config *dcbcfg); +i40e_status i40e_get_dcb_config(struct i40e_hw *hw); +i40e_status i40e_init_dcb(struct i40e_hw *hw); +#endif /* _I40E_DCB_H_ */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_dcb_nl.c @@ -0,0 +1,316 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Driver + * Copyright(c) 2013 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#ifdef CONFIG_I40E_DCB +#include "i40e.h" +#include + +/** + * i40e_get_pfc_delay - retrieve PFC Link Delay + * @hw: pointer to hardware struct + * @delay: holds the PFC Link delay value + * + * Returns PFC Link Delay from the PRTDCB_GENC.PFCLDA + **/ +static void i40e_get_pfc_delay(struct i40e_hw *hw, u16 *delay) +{ + u32 val; + + val = rd32(hw, I40E_PRTDCB_GENC); + *delay = (u16)(val & I40E_PRTDCB_GENC_PFCLDA_MASK >> + I40E_PRTDCB_GENC_PFCLDA_SHIFT); +} + +/** + * i40e_dcbnl_ieee_getets - retrieve local IEEE ETS configuration + * @netdev: the corresponding netdev + * @ets: structure to hold the ETS information + * + * Returns local IEEE ETS configuration + **/ +static int i40e_dcbnl_ieee_getets(struct net_device *dev, + struct ieee_ets *ets) +{ + struct i40e_pf *pf = i40e_netdev_to_pf(dev); + struct i40e_dcbx_config *dcbxcfg; + struct i40e_hw *hw = &pf->hw; + + if (!(pf->dcbx_cap & DCB_CAP_DCBX_VER_IEEE)) + return -EINVAL; + + dcbxcfg = &hw->local_dcbx_config; + ets->willing = dcbxcfg->etscfg.willing; + ets->ets_cap = dcbxcfg->etscfg.maxtcs; + ets->cbs = dcbxcfg->etscfg.cbs; + memcpy(ets->tc_tx_bw, dcbxcfg->etscfg.tcbwtable, + sizeof(ets->tc_tx_bw)); + memcpy(ets->tc_rx_bw, dcbxcfg->etscfg.tcbwtable, + sizeof(ets->tc_rx_bw)); + memcpy(ets->tc_tsa, dcbxcfg->etscfg.tsatable, + sizeof(ets->tc_tsa)); + memcpy(ets->prio_tc, dcbxcfg->etscfg.prioritytable, + sizeof(ets->prio_tc)); + memcpy(ets->tc_reco_bw, dcbxcfg->etsrec.tcbwtable, + sizeof(ets->tc_reco_bw)); + memcpy(ets->tc_reco_tsa, dcbxcfg->etsrec.tsatable, + sizeof(ets->tc_reco_tsa)); + memcpy(ets->reco_prio_tc, dcbxcfg->etscfg.prioritytable, + sizeof(ets->reco_prio_tc)); + + return 0; +} + +/** + * i40e_dcbnl_ieee_getpfc - retrieve local IEEE PFC configuration + * @netdev: the corresponding netdev + * @ets: structure to hold the PFC information + * + * Returns local IEEE PFC configuration + **/ +static int i40e_dcbnl_ieee_getpfc(struct net_device *dev, + struct ieee_pfc *pfc) +{ + struct i40e_pf *pf = i40e_netdev_to_pf(dev); + struct i40e_dcbx_config *dcbxcfg; + struct i40e_hw *hw = &pf->hw; + int i; + + if (!(pf->dcbx_cap & DCB_CAP_DCBX_VER_IEEE)) + return -EINVAL; + + dcbxcfg = &hw->local_dcbx_config; + pfc->pfc_cap = dcbxcfg->pfc.pfccap; + pfc->pfc_en = dcbxcfg->pfc.pfcenable; + pfc->mbc = dcbxcfg->pfc.mbc; + i40e_get_pfc_delay(hw, &pfc->delay); + + /* Get Requests/Indicatiosn */ + for (i = 0; i < I40E_MAX_TRAFFIC_CLASS; i++) { + pfc->requests[i] = pf->stats.priority_xoff_tx[i]; + pfc->indications[i] = pf->stats.priority_xoff_rx[i]; + } + + return 0; +} + +/** + * i40e_dcbnl_getdcbx - retrieve current DCBx capability + * @netdev: the corresponding netdev + * + * Returns DCBx capability features + **/ +static u8 i40e_dcbnl_getdcbx(struct net_device *dev) +{ + struct i40e_pf *pf = i40e_netdev_to_pf(dev); + + return pf->dcbx_cap; +} + +/** + * i40e_dcbnl_get_perm_hw_addr - MAC address used by DCBx + * @netdev: the corresponding netdev + * + * Returns the SAN MAC address used for LLDP exchange + **/ +static void i40e_dcbnl_get_perm_hw_addr(struct net_device *dev, + u8 *perm_addr) +{ + struct i40e_pf *pf = i40e_netdev_to_pf(dev); + int i, j; + + memset(perm_addr, 0xff, MAX_ADDR_LEN); + + for (i = 0; i < dev->addr_len; i++) + perm_addr[i] = pf->hw.mac.perm_addr[i]; + + for (j = 0; j < dev->addr_len; j++, i++) + perm_addr[i] = pf->hw.mac.san_addr[j]; +} + +static const struct dcbnl_rtnl_ops dcbnl_ops = { + .ieee_getets = i40e_dcbnl_ieee_getets, + .ieee_getpfc = i40e_dcbnl_ieee_getpfc, + .getdcbx = i40e_dcbnl_getdcbx, + .getpermhwaddr = i40e_dcbnl_get_perm_hw_addr, +}; + +/** + * i40e_dcbnl_set_all - set all the apps and ieee data from DCBx config + * @vsi: the corresponding vsi + * + * Set up all the IEEE APPs in the DCBNL App Table and generate event for + * other settings + **/ +void i40e_dcbnl_set_all(struct i40e_vsi *vsi) +{ + struct net_device *dev = vsi->netdev; + struct i40e_pf *pf = i40e_netdev_to_pf(dev); + struct i40e_dcbx_config *dcbxcfg; + struct i40e_hw *hw = &pf->hw; + struct dcb_app sapp; + u8 prio, tc_map; + int i; + + /* DCB not enabled */ + if (!(pf->flags & I40E_FLAG_DCB_ENABLED)) + return; + + dcbxcfg = &hw->local_dcbx_config; + + /* Set up all the App TLVs if DCBx is negotiated */ + for (i = 0; i < dcbxcfg->numapps; i++) { + prio = dcbxcfg->app[i].priority; + tc_map = (1 << dcbxcfg->etscfg.prioritytable[prio]); + + /* Add APP only if the TC is enabled for this VSI */ + if (tc_map & vsi->tc_config.enabled_tc) { + sapp.selector = dcbxcfg->app[i].selector; + sapp.protocol = dcbxcfg->app[i].protocolid; + sapp.priority = prio; + dcb_ieee_setapp(dev, &sapp); + } + } + + /* Notify user-space of the changes */ + dcbnl_ieee_notify(dev, RTM_SETDCB, DCB_CMD_IEEE_SET, 0, 0); +} + +/** + * i40e_dcbnl_vsi_del_app - Delete APP for given VSI + * @vsi: the corresponding vsi + * @app: APP to delete + * + * Delete given APP from the DCBNL APP table for given + * VSI + **/ +static int i40e_dcbnl_vsi_del_app(struct i40e_vsi *vsi, + struct i40e_ieee_app_priority_table *app) +{ + struct net_device *dev = vsi->netdev; + struct dcb_app sapp; + + if (!dev) + return -EINVAL; + + sapp.selector = app->selector; + sapp.protocol = app->protocolid; + sapp.priority = app->priority; + return dcb_ieee_delapp(dev, &sapp); +} + +/** + * i40e_dcbnl_del_app - Delete APP on all VSIs + * @pf: the corresponding pf + * @app: APP to delete + * + * Delete given APP from all the VSIs for given PF + **/ +static void i40e_dcbnl_del_app(struct i40e_pf *pf, + struct i40e_ieee_app_priority_table *app) +{ + int v, err; + for (v = 0; v < pf->hw.func_caps.num_vsis; v++) { + if (pf->vsi[v] && pf->vsi[v]->netdev) { + err = i40e_dcbnl_vsi_del_app(pf->vsi[v], app); + if (err) + dev_info(&pf->pdev->dev, "%s: Failed deleting app for VSI seid=%d err=%d sel=%d proto=0x%x prio=%d\n", + __func__, pf->vsi[v]->seid, + err, app->selector, + app->protocolid, app->priority); + } + } +} + +/** + * i40e_dcbnl_find_app - Search APP in given DCB config + * @cfg: DCBX configuration data + * @app: APP to search for + * + * Find given APP in the DCB configuration + **/ +static bool i40e_dcbnl_find_app(struct i40e_dcbx_config *cfg, + struct i40e_ieee_app_priority_table *app) +{ + int i; + + for (i = 0; i < cfg->numapps; i++) { + if (app->selector == cfg->app[i].selector && + app->protocolid == cfg->app[i].protocolid && + app->priority == cfg->app[i].priority) + return true; + } + + return false; +} + +/** + * i40e_dcbnl_flush_apps - Delete all removed APPs + * @pf: the corresponding pf + * @new_cfg: new DCBX configuration data + * + * Find and delete all APPs that are not present in the passed + * DCB configuration + **/ +void i40e_dcbnl_flush_apps(struct i40e_pf *pf, + struct i40e_dcbx_config *new_cfg) +{ + struct i40e_ieee_app_priority_table app; + struct i40e_dcbx_config *dcbxcfg; + struct i40e_hw *hw = &pf->hw; + int i; + + dcbxcfg = &hw->local_dcbx_config; + for (i = 0; i < dcbxcfg->numapps; i++) { + app = dcbxcfg->app[i]; + /* The APP is not available anymore delete it */ + if (!i40e_dcbnl_find_app(new_cfg, &app)) + i40e_dcbnl_del_app(pf, &app); + } +} + +/** + * i40e_dcbnl_setup - DCBNL setup + * @vsi: the corresponding vsi + * + * Set up DCBNL ops and initial APP TLVs + **/ +void i40e_dcbnl_setup(struct i40e_vsi *vsi) +{ + struct net_device *dev = vsi->netdev; + struct i40e_pf *pf = i40e_netdev_to_pf(dev); + + /* DCB not enabled */ + if (!(pf->flags & I40E_FLAG_DCB_ENABLED)) + return; + + /* Do not setup DCB NL ops for MFP mode */ + if (!(pf->flags & I40E_FLAG_MFP_ENABLED)) + dev->dcbnl_ops = &dcbnl_ops; + + /* Set initial IEEE DCB settings */ + i40e_dcbnl_set_all(vsi); +} +#endif /* CONFIG_I40E_DCB */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_debugfs.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_debugfs.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -192,12 +191,12 @@ len = (sizeof(struct i40e_aq_desc) * pf->hw.aq.num_asq_entries); - memcpy(p, pf->hw.aq.asq.desc, len); + memcpy(p, pf->hw.aq.asq.desc_buf.va, len); p += len; len = (sizeof(struct i40e_aq_desc) * pf->hw.aq.num_arq_entries); - memcpy(p, pf->hw.aq.arq.desc, len); + memcpy(p, pf->hw.aq.arq.desc_buf.va, len); p += len; i40e_dbg_dump_data_len = buflen; @@ -362,7 +361,7 @@ } /** - * i40e_dbg_dump_vsi_seid - handles dump vsi seid write into pokem datum + * i40e_dbg_dump_vsi_seid - handles dump vsi seid write into command datum * @pf: the i40e_pf created in command write * @seid: the seid the user put in **/ @@ -516,10 +515,10 @@ rx_ring->stats.bytes, rx_ring->rx_stats.non_eop_descs); dev_info(&pf->pdev->dev, - " rx_rings[%i]: rx_stats: alloc_rx_page_failed = %lld, alloc_rx_buff_failed = %lld\n", + " rx_rings[%i]: rx_stats: alloc_page_failed = %lld, alloc_buff_failed = %lld\n", i, - rx_ring->rx_stats.alloc_rx_page_failed, - rx_ring->rx_stats.alloc_rx_buff_failed); + rx_ring->rx_stats.alloc_page_failed, + rx_ring->rx_stats.alloc_buff_failed); dev_info(&pf->pdev->dev, " rx_rings[%i]: size = %i, dma = 0x%08lx\n", i, rx_ring->size, @@ -533,6 +532,7 @@ struct i40e_ring *tx_ring = ACCESS_ONCE(vsi->tx_rings[i]); if (!tx_ring) continue; + dev_info(&pf->pdev->dev, " tx_rings[%i]: desc = %p\n", i, tx_ring->desc); @@ -707,8 +707,13 @@ { struct i40e_adminq_ring *ring; struct i40e_hw *hw = &pf->hw; + char hdr[32]; int i; + snprintf(hdr, sizeof(hdr), "%s %s: ", + dev_driver_string(&pf->pdev->dev), + dev_name(&pf->pdev->dev)); + /* first the send (command) ring, then the receive (event) ring */ dev_info(&pf->pdev->dev, "AdminQ Tx Ring\n"); ring = &(hw->aq.asq); @@ -718,14 +723,8 @@ " at[%02d] flags=0x%04x op=0x%04x dlen=0x%04x ret=0x%04x cookie_h=0x%08x cookie_l=0x%08x\n", i, d->flags, d->opcode, d->datalen, d->retval, d->cookie_high, d->cookie_low); - dev_info(&pf->pdev->dev, - " %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n", - d->params.raw[0], d->params.raw[1], d->params.raw[2], - d->params.raw[3], d->params.raw[4], d->params.raw[5], - d->params.raw[6], d->params.raw[7], d->params.raw[8], - d->params.raw[9], d->params.raw[10], d->params.raw[11], - d->params.raw[12], d->params.raw[13], - d->params.raw[14], d->params.raw[15]); + print_hex_dump(KERN_INFO, hdr, DUMP_PREFIX_NONE, + 16, 1, d->params.raw, 16, 0); } dev_info(&pf->pdev->dev, "AdminQ Rx Ring\n"); @@ -736,14 +735,8 @@ " ar[%02d] flags=0x%04x op=0x%04x dlen=0x%04x ret=0x%04x cookie_h=0x%08x cookie_l=0x%08x\n", i, d->flags, d->opcode, d->datalen, d->retval, d->cookie_high, d->cookie_low); - dev_info(&pf->pdev->dev, - " %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n", - d->params.raw[0], d->params.raw[1], d->params.raw[2], - d->params.raw[3], d->params.raw[4], d->params.raw[5], - d->params.raw[6], d->params.raw[7], d->params.raw[8], - d->params.raw[9], d->params.raw[10], d->params.raw[11], - d->params.raw[12], d->params.raw[13], - d->params.raw[14], d->params.raw[15]); + print_hex_dump(KERN_INFO, hdr, DUMP_PREFIX_NONE, + 16, 1, d->params.raw, 16, 0); } } @@ -759,27 +752,25 @@ static void i40e_dbg_dump_desc(int cnt, int vsi_seid, int ring_id, int desc_n, struct i40e_pf *pf, bool is_rx_ring) { - union i40e_rx_desc *ds; + struct i40e_tx_desc *txd; + union i40e_rx_desc *rxd; struct i40e_ring ring; struct i40e_vsi *vsi; int i; vsi = i40e_dbg_find_vsi(pf, vsi_seid); if (!vsi) { - dev_info(&pf->pdev->dev, - "vsi %d not found\n", vsi_seid); - if (is_rx_ring) - dev_info(&pf->pdev->dev, "dump desc rx []\n"); - else - dev_info(&pf->pdev->dev, "dump desc tx []\n"); + dev_info(&pf->pdev->dev, "vsi %d not found\n", vsi_seid); return; } if (ring_id >= vsi->num_queue_pairs || ring_id < 0) { dev_info(&pf->pdev->dev, "ring %d not found\n", ring_id); - if (is_rx_ring) - dev_info(&pf->pdev->dev, "dump desc rx []\n"); - else - dev_info(&pf->pdev->dev, "dump desc tx []\n"); + return; + } + if (!vsi->tx_rings || !vsi->tx_rings[0]->desc) { + dev_info(&pf->pdev->dev, + "descriptor rings have not been allocated for vsi %d\n", + vsi_seid); return; } if (is_rx_ring) @@ -790,22 +781,27 @@ dev_info(&pf->pdev->dev, "vsi = %02i %s ring = %02i\n", vsi_seid, is_rx_ring ? "rx" : "tx", ring_id); for (i = 0; i < ring.count; i++) { - if (is_rx_ring) - ds = I40E_RX_DESC(&ring, i); - else - ds = (union i40e_rx_desc *) - I40E_TX_DESC(&ring, i); - if ((sizeof(union i40e_rx_desc) == - sizeof(union i40e_16byte_rx_desc)) || (!is_rx_ring)) + if (!is_rx_ring) { + txd = I40E_TX_DESC(&ring, i); dev_info(&pf->pdev->dev, - " d[%03i] = 0x%016llx 0x%016llx\n", i, - ds->read.pkt_addr, ds->read.hdr_addr); - else + " d[%03i] = 0x%016llx 0x%016llx\n", + i, txd->buffer_addr, + txd->cmd_type_offset_bsz); + } else if (sizeof(union i40e_rx_desc) == + sizeof(union i40e_16byte_rx_desc)) { + rxd = I40E_RX_DESC(&ring, i); + dev_info(&pf->pdev->dev, + " d[%03i] = 0x%016llx 0x%016llx\n", + i, rxd->read.pkt_addr, + rxd->read.hdr_addr); + } else { + rxd = I40E_RX_DESC(&ring, i); dev_info(&pf->pdev->dev, " d[%03i] = 0x%016llx 0x%016llx 0x%016llx 0x%016llx\n", - i, ds->read.pkt_addr, - ds->read.hdr_addr, - ds->read.rsvd1, ds->read.rsvd2); + i, rxd->read.pkt_addr, + rxd->read.hdr_addr, + rxd->read.rsvd1, rxd->read.rsvd2); + } } } else if (cnt == 3) { if (desc_n >= ring.count || desc_n < 0) { @@ -813,27 +809,29 @@ "descriptor %d not found\n", desc_n); return; } - if (is_rx_ring) - ds = I40E_RX_DESC(&ring, desc_n); - else - ds = (union i40e_rx_desc *)I40E_TX_DESC(&ring, desc_n); - if ((sizeof(union i40e_rx_desc) == - sizeof(union i40e_16byte_rx_desc)) || (!is_rx_ring)) - dev_info(&pf->pdev->dev, - "vsi = %02i %s ring = %02i d[%03i] = 0x%016llx 0x%016llx\n", - vsi_seid, is_rx_ring ? "rx" : "tx", ring_id, - desc_n, ds->read.pkt_addr, ds->read.hdr_addr); - else + if (!is_rx_ring) { + txd = I40E_TX_DESC(&ring, desc_n); + dev_info(&pf->pdev->dev, + "vsi = %02i tx ring = %02i d[%03i] = 0x%016llx 0x%016llx\n", + vsi_seid, ring_id, desc_n, + txd->buffer_addr, txd->cmd_type_offset_bsz); + } else if (sizeof(union i40e_rx_desc) == + sizeof(union i40e_16byte_rx_desc)) { + rxd = I40E_RX_DESC(&ring, desc_n); + dev_info(&pf->pdev->dev, + "vsi = %02i rx ring = %02i d[%03i] = 0x%016llx 0x%016llx\n", + vsi_seid, ring_id, desc_n, + rxd->read.pkt_addr, rxd->read.hdr_addr); + } else { + rxd = I40E_RX_DESC(&ring, desc_n); dev_info(&pf->pdev->dev, "vsi = %02i rx ring = %02i d[%03i] = 0x%016llx 0x%016llx 0x%016llx 0x%016llx\n", - vsi_seid, ring_id, - desc_n, ds->read.pkt_addr, ds->read.hdr_addr, - ds->read.rsvd1, ds->read.rsvd2); + vsi_seid, ring_id, desc_n, + rxd->read.pkt_addr, rxd->read.hdr_addr, + rxd->read.rsvd1, rxd->read.rsvd2); + } } else { - if (is_rx_ring) - dev_info(&pf->pdev->dev, "dump desc rx []\n"); - else - dev_info(&pf->pdev->dev, "dump desc tx []\n"); + dev_info(&pf->pdev->dev, "dump desc rx/tx []\n"); } } @@ -979,8 +977,7 @@ veb = i40e_dbg_find_veb(pf, seid); if (!veb) { - dev_info(&pf->pdev->dev, - "%d: can't find veb\n", seid); + dev_info(&pf->pdev->dev, "can't find veb %d\n", seid); return; } dev_info(&pf->pdev->dev, @@ -1006,6 +1003,24 @@ } } +/** + * i40e_dbg_cmd_fd_ctrl - Enable/disable FD sideband/ATR + * @pf: the pf that would be altered + * @flag: flag that needs enabling or disabling + * @enable: Enable/disable FD SD/ATR + **/ +static void i40e_dbg_cmd_fd_ctrl(struct i40e_pf *pf, u64 flag, bool enable) +{ + if (enable) { + pf->flags |= flag; + } else { + pf->flags &= ~flag; + pf->auto_disable_flags |= flag; + } + dev_info(&pf->pdev->dev, "requesting a pf reset\n"); + i40e_do_reset_safe(pf, (1 << __I40E_PF_RESET_REQUESTED)); +} + #define I40E_MAX_DEBUG_OUT_BUFFER (4096*4) /** * i40e_dbg_command_write - write into command datum @@ -1022,8 +1037,6 @@ char *cmd_buf, *cmd_buf_tmp; int bytes_not_copied; struct i40e_vsi *vsi; - u8 *print_buf_start; - u8 *print_buf; int vsi_seid; int veb_seid; int cnt; @@ -1048,11 +1061,6 @@ count = cmd_buf_tmp - cmd_buf + 1; } - print_buf_start = kzalloc(I40E_MAX_DEBUG_OUT_BUFFER, GFP_KERNEL); - if (!print_buf_start) - goto command_write_done; - print_buf = print_buf_start; - if (strncmp(cmd_buf, "add vsi", 7) == 0) { vsi_seid = -1; cnt = sscanf(&cmd_buf[7], "%i", &vsi_seid); @@ -1104,7 +1112,7 @@ vsi = i40e_dbg_find_vsi(pf, vsi_seid); if (!vsi) { dev_info(&pf->pdev->dev, - "add relay: vsi VSI %d not found\n", vsi_seid); + "add relay: VSI %d not found\n", vsi_seid); goto command_write_done; } @@ -1461,21 +1469,25 @@ pf->msg_enable); } } else if (strncmp(cmd_buf, "pfr", 3) == 0) { - dev_info(&pf->pdev->dev, "forcing PFR\n"); - i40e_do_reset(pf, (1 << __I40E_PF_RESET_REQUESTED)); + dev_info(&pf->pdev->dev, "debugfs: forcing PFR\n"); + i40e_do_reset_safe(pf, (1 << __I40E_PF_RESET_REQUESTED)); } else if (strncmp(cmd_buf, "corer", 5) == 0) { - dev_info(&pf->pdev->dev, "forcing CoreR\n"); - i40e_do_reset(pf, (1 << __I40E_CORE_RESET_REQUESTED)); + dev_info(&pf->pdev->dev, "debugfs: forcing CoreR\n"); + i40e_do_reset_safe(pf, (1 << __I40E_CORE_RESET_REQUESTED)); } else if (strncmp(cmd_buf, "globr", 5) == 0) { - dev_info(&pf->pdev->dev, "forcing GlobR\n"); - i40e_do_reset(pf, (1 << __I40E_GLOBAL_RESET_REQUESTED)); + dev_info(&pf->pdev->dev, "debugfs: forcing GlobR\n"); + i40e_do_reset_safe(pf, (1 << __I40E_GLOBAL_RESET_REQUESTED)); + + } else if (strncmp(cmd_buf, "empr", 4) == 0) { + dev_info(&pf->pdev->dev, "debugfs: forcing EMPR\n"); + i40e_do_reset_safe(pf, (1 << __I40E_EMP_RESET_REQUESTED)); } else if (strncmp(cmd_buf, "read", 4) == 0) { u32 address; u32 value; - cnt = sscanf(&cmd_buf[4], "%x", &address); + cnt = sscanf(&cmd_buf[4], "%i", &address); if (cnt != 1) { dev_info(&pf->pdev->dev, "read \n"); goto command_write_done; @@ -1494,7 +1506,7 @@ } else if (strncmp(cmd_buf, "write", 5) == 0) { u32 address, value; - cnt = sscanf(&cmd_buf[5], "%x %x", &address, &value); + cnt = sscanf(&cmd_buf[5], "%i %i", &address, &value); if (cnt != 2) { dev_info(&pf->pdev->dev, "write \n"); goto command_write_done; @@ -1512,7 +1524,7 @@ address, value); } else if (strncmp(cmd_buf, "clear_stats", 11) == 0) { if (strncmp(&cmd_buf[12], "vsi", 3) == 0) { - cnt = sscanf(&cmd_buf[15], "%d", &vsi_seid); + cnt = sscanf(&cmd_buf[15], "%i", &vsi_seid); if (cnt == 0) { int i; for (i = 0; i < pf->hw.func_caps.num_vsis; i++) @@ -1539,32 +1551,152 @@ } else { dev_info(&pf->pdev->dev, "clear_stats vsi [seid] or clear_stats pf\n"); } + } else if (strncmp(cmd_buf, "send aq_cmd", 11) == 0) { + struct i40e_aq_desc *desc; + i40e_status ret; + + desc = kzalloc(sizeof(struct i40e_aq_desc), GFP_KERNEL); + if (!desc) + goto command_write_done; + cnt = sscanf(&cmd_buf[11], + "%hx %hx %hx %hx %x %x %x %x %x %x", + &desc->flags, + &desc->opcode, &desc->datalen, &desc->retval, + &desc->cookie_high, &desc->cookie_low, + &desc->params.internal.param0, + &desc->params.internal.param1, + &desc->params.internal.param2, + &desc->params.internal.param3); + if (cnt != 10) { + dev_info(&pf->pdev->dev, + "send aq_cmd: bad command string, cnt=%d\n", + cnt); + kfree(desc); + desc = NULL; + goto command_write_done; + } + ret = i40e_asq_send_command(&pf->hw, desc, NULL, 0, NULL); + if (!ret) { + dev_info(&pf->pdev->dev, "AQ command sent Status : Success\n"); + } else if (ret == I40E_ERR_ADMIN_QUEUE_ERROR) { + dev_info(&pf->pdev->dev, + "AQ command send failed Opcode %x AQ Error: %d\n", + desc->opcode, pf->hw.aq.asq_last_status); + } else { + dev_info(&pf->pdev->dev, + "AQ command send failed Opcode %x Status: %d\n", + desc->opcode, ret); + } + dev_info(&pf->pdev->dev, + "AQ desc WB 0x%04x 0x%04x 0x%04x 0x%04x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x\n", + desc->flags, desc->opcode, desc->datalen, desc->retval, + desc->cookie_high, desc->cookie_low, + desc->params.internal.param0, + desc->params.internal.param1, + desc->params.internal.param2, + desc->params.internal.param3); + kfree(desc); + desc = NULL; + } else if (strncmp(cmd_buf, "send indirect aq_cmd", 20) == 0) { + struct i40e_aq_desc *desc; + i40e_status ret; + u16 buffer_len; + u8 *buff; + + desc = kzalloc(sizeof(struct i40e_aq_desc), GFP_KERNEL); + if (!desc) + goto command_write_done; + cnt = sscanf(&cmd_buf[20], + "%hx %hx %hx %hx %x %x %x %x %x %x %hd", + &desc->flags, + &desc->opcode, &desc->datalen, &desc->retval, + &desc->cookie_high, &desc->cookie_low, + &desc->params.internal.param0, + &desc->params.internal.param1, + &desc->params.internal.param2, + &desc->params.internal.param3, + &buffer_len); + if (cnt != 11) { + dev_info(&pf->pdev->dev, + "send indirect aq_cmd: bad command string, cnt=%d\n", + cnt); + kfree(desc); + desc = NULL; + goto command_write_done; + } + /* Just stub a buffer big enough in case user messed up */ + if (buffer_len == 0) + buffer_len = 1280; + + buff = kzalloc(buffer_len, GFP_KERNEL); + if (!buff) { + kfree(desc); + desc = NULL; + goto command_write_done; + } + desc->flags |= cpu_to_le16((u16)I40E_AQ_FLAG_BUF); + ret = i40e_asq_send_command(&pf->hw, desc, buff, + buffer_len, NULL); + if (!ret) { + dev_info(&pf->pdev->dev, "AQ command sent Status : Success\n"); + } else if (ret == I40E_ERR_ADMIN_QUEUE_ERROR) { + dev_info(&pf->pdev->dev, + "AQ command send failed Opcode %x AQ Error: %d\n", + desc->opcode, pf->hw.aq.asq_last_status); + } else { + dev_info(&pf->pdev->dev, + "AQ command send failed Opcode %x Status: %d\n", + desc->opcode, ret); + } + dev_info(&pf->pdev->dev, + "AQ desc WB 0x%04x 0x%04x 0x%04x 0x%04x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x 0x%08x\n", + desc->flags, desc->opcode, desc->datalen, desc->retval, + desc->cookie_high, desc->cookie_low, + desc->params.internal.param0, + desc->params.internal.param1, + desc->params.internal.param2, + desc->params.internal.param3); + print_hex_dump(KERN_INFO, "AQ buffer WB: ", + DUMP_PREFIX_OFFSET, 16, 1, + buff, buffer_len, true); + kfree(buff); + buff = NULL; + kfree(desc); + desc = NULL; } else if ((strncmp(cmd_buf, "add fd_filter", 13) == 0) || (strncmp(cmd_buf, "rem fd_filter", 13) == 0)) { - struct i40e_fdir_data fd_data; + struct i40e_fdir_filter fd_data; u16 packet_len, i, j = 0; char *asc_packet; + u8 *raw_packet; bool add = false; int ret; - asc_packet = kzalloc(I40E_FDIR_MAX_RAW_PACKET_LOOKUP, + if (!(pf->flags & I40E_FLAG_FD_SB_ENABLED)) + goto command_write_done; + + if (strncmp(cmd_buf, "add", 3) == 0) + add = true; + + if (add && (pf->auto_disable_flags & I40E_FLAG_FD_SB_ENABLED)) + goto command_write_done; + + asc_packet = kzalloc(I40E_FDIR_MAX_RAW_PACKET_SIZE, GFP_KERNEL); if (!asc_packet) goto command_write_done; - fd_data.raw_packet = kzalloc(I40E_FDIR_MAX_RAW_PACKET_LOOKUP, - GFP_KERNEL); + raw_packet = kzalloc(I40E_FDIR_MAX_RAW_PACKET_SIZE, + GFP_KERNEL); - if (!fd_data.raw_packet) { + if (!raw_packet) { kfree(asc_packet); asc_packet = NULL; goto command_write_done; } - if (strncmp(cmd_buf, "add", 3) == 0) - add = true; cnt = sscanf(&cmd_buf[13], - "%hx %2hhx %2hhx %hx %2hhx %2hhx %hx %x %hd %512s", + "%hx %2hhx %2hhx %hx %2hhx %2hhx %hx %x %hd %511s", &fd_data.q_index, &fd_data.flex_off, &fd_data.pctype, &fd_data.dest_vsi, &fd_data.dest_ctl, @@ -1576,42 +1708,46 @@ cnt); kfree(asc_packet); asc_packet = NULL; - kfree(fd_data.raw_packet); + kfree(raw_packet); goto command_write_done; } /* fix packet length if user entered 0 */ if (packet_len == 0) - packet_len = I40E_FDIR_MAX_RAW_PACKET_LOOKUP; + packet_len = I40E_FDIR_MAX_RAW_PACKET_SIZE; /* make sure to check the max as well */ packet_len = min_t(u16, - packet_len, I40E_FDIR_MAX_RAW_PACKET_LOOKUP); + packet_len, I40E_FDIR_MAX_RAW_PACKET_SIZE); - dev_info(&pf->pdev->dev, "FD raw packet:\n"); for (i = 0; i < packet_len; i++) { sscanf(&asc_packet[j], "%2hhx ", - &fd_data.raw_packet[i]); + &raw_packet[i]); j += 3; - snprintf(print_buf, 3, "%02x ", fd_data.raw_packet[i]); - print_buf += 3; - if ((i % 16) == 15) { - snprintf(print_buf, 1, "\n"); - print_buf++; - } } - dev_info(&pf->pdev->dev, "%s\n", print_buf_start); - ret = i40e_program_fdir_filter(&fd_data, pf, add); + dev_info(&pf->pdev->dev, "FD raw packet dump\n"); + print_hex_dump(KERN_INFO, "FD raw packet: ", + DUMP_PREFIX_OFFSET, 16, 1, + raw_packet, packet_len, true); + ret = i40e_program_fdir_filter(&fd_data, raw_packet, pf, add); if (!ret) { dev_info(&pf->pdev->dev, "Filter command send Status : Success\n"); } else { dev_info(&pf->pdev->dev, "Filter command send failed %d\n", ret); } - kfree(fd_data.raw_packet); - fd_data.raw_packet = NULL; + kfree(raw_packet); + raw_packet = NULL; kfree(asc_packet); asc_packet = NULL; + } else if (strncmp(cmd_buf, "fd-atr off", 10) == 0) { + i40e_dbg_cmd_fd_ctrl(pf, I40E_FLAG_FD_ATR_ENABLED, false); + } else if (strncmp(cmd_buf, "fd-atr on", 9) == 0) { + i40e_dbg_cmd_fd_ctrl(pf, I40E_FLAG_FD_ATR_ENABLED, true); + } else if (strncmp(cmd_buf, "fd-sb off", 9) == 0) { + i40e_dbg_cmd_fd_ctrl(pf, I40E_FLAG_FD_SB_ENABLED, false); + } else if (strncmp(cmd_buf, "fd-sb on", 8) == 0) { + i40e_dbg_cmd_fd_ctrl(pf, I40E_FLAG_FD_SB_ENABLED, true); } else if (strncmp(cmd_buf, "lldp", 4) == 0) { if (strncmp(&cmd_buf[5], "stop", 4) == 0) { int ret; @@ -1622,8 +1758,35 @@ pf->hw.aq.asq_last_status); goto command_write_done; } + ret = i40e_aq_add_rem_control_packet_filter(&pf->hw, + pf->hw.mac.addr, + I40E_ETH_P_LLDP, 0, + pf->vsi[pf->lan_vsi]->seid, + 0, true, NULL, NULL); + if (ret) { + dev_info(&pf->pdev->dev, + "%s: Add Control Packet Filter AQ command failed =0x%x\n", + __func__, pf->hw.aq.asq_last_status); + goto command_write_done; + } +#ifdef CONFIG_I40E_DCB + pf->dcbx_cap = DCB_CAP_DCBX_HOST | + DCB_CAP_DCBX_VER_IEEE; +#endif /* CONFIG_I40E_DCB */ } else if (strncmp(&cmd_buf[5], "start", 5) == 0) { int ret; + ret = i40e_aq_add_rem_control_packet_filter(&pf->hw, + pf->hw.mac.addr, + I40E_ETH_P_LLDP, 0, + pf->vsi[pf->lan_vsi]->seid, + 0, false, NULL, NULL); + if (ret) { + dev_info(&pf->pdev->dev, + "%s: Remove Control Packet Filter AQ command failed =0x%x\n", + __func__, pf->hw.aq.asq_last_status); + /* Continue and start FW LLDP anyways */ + } + ret = i40e_aq_start_lldp(&pf->hw, NULL); if (ret) { dev_info(&pf->pdev->dev, @@ -1631,10 +1794,14 @@ pf->hw.aq.asq_last_status); goto command_write_done; } +#ifdef CONFIG_I40E_DCB + pf->dcbx_cap = DCB_CAP_DCBX_LLD_MANAGED | + DCB_CAP_DCBX_VER_IEEE; +#endif /* CONFIG_I40E_DCB */ } else if (strncmp(&cmd_buf[5], "get local", 9) == 0) { u16 llen, rlen; - int ret, i; + int ret; u8 *buff; buff = kzalloc(I40E_LLDPDU_SIZE, GFP_KERNEL); if (!buff) @@ -1652,22 +1819,15 @@ buff = NULL; goto command_write_done; } - dev_info(&pf->pdev->dev, - "Get LLDP MIB (local) AQ buffer written back:\n"); - for (i = 0; i < I40E_LLDPDU_SIZE; i++) { - snprintf(print_buf, 3, "%02x ", buff[i]); - print_buf += 3; - if ((i % 16) == 15) { - snprintf(print_buf, 1, "\n"); - print_buf++; - } - } - dev_info(&pf->pdev->dev, "%s\n", print_buf_start); + dev_info(&pf->pdev->dev, "LLDP MIB (local)\n"); + print_hex_dump(KERN_INFO, "LLDP MIB (local): ", + DUMP_PREFIX_OFFSET, 16, 1, + buff, I40E_LLDPDU_SIZE, true); kfree(buff); buff = NULL; } else if (strncmp(&cmd_buf[5], "get remote", 10) == 0) { u16 llen, rlen; - int ret, i; + int ret; u8 *buff; buff = kzalloc(I40E_LLDPDU_SIZE, GFP_KERNEL); if (!buff) @@ -1686,17 +1846,10 @@ buff = NULL; goto command_write_done; } - dev_info(&pf->pdev->dev, - "Get LLDP MIB (remote) AQ buffer written back:\n"); - for (i = 0; i < I40E_LLDPDU_SIZE; i++) { - snprintf(print_buf, 3, "%02x ", buff[i]); - print_buf += 3; - if ((i % 16) == 15) { - snprintf(print_buf, 1, "\n"); - print_buf++; - } - } - dev_info(&pf->pdev->dev, "%s\n", print_buf_start); + dev_info(&pf->pdev->dev, "LLDP MIB (remote)\n"); + print_hex_dump(KERN_INFO, "LLDP MIB (remote): ", + DUMP_PREFIX_OFFSET, 16, 1, + buff, I40E_LLDPDU_SIZE, true); kfree(buff); buff = NULL; } else if (strncmp(&cmd_buf[5], "event on", 8) == 0) { @@ -1721,7 +1874,7 @@ } } } else if (strncmp(cmd_buf, "nvm read", 8) == 0) { - u16 buffer_len, i, bytes; + u16 buffer_len, bytes; u16 module; u32 offset; u16 *buff; @@ -1775,16 +1928,10 @@ dev_info(&pf->pdev->dev, "Read NVM module=0x%x offset=0x%x words=%d\n", module, offset, buffer_len); - for (i = 0; i < buffer_len; i++) { - if ((i % 16) == 0) { - snprintf(print_buf, 11, "\n0x%08x: ", - offset + i); - print_buf += 11; - } - snprintf(print_buf, 5, "%04x ", buff[i]); - print_buf += 5; - } - dev_info(&pf->pdev->dev, "%s\n", print_buf_start); + if (bytes) + print_hex_dump(KERN_INFO, "NVM Dump: ", + DUMP_PREFIX_OFFSET, 16, 2, + buff, bytes, true); } kfree(buff); buff = NULL; @@ -1814,8 +1961,14 @@ dev_info(&pf->pdev->dev, " pfr\n"); dev_info(&pf->pdev->dev, " corer\n"); dev_info(&pf->pdev->dev, " globr\n"); + dev_info(&pf->pdev->dev, " send aq_cmd \n"); + dev_info(&pf->pdev->dev, " send indirect aq_cmd \n"); dev_info(&pf->pdev->dev, " add fd_filter \n"); dev_info(&pf->pdev->dev, " rem fd_filter \n"); + dev_info(&pf->pdev->dev, " fd-atr off\n"); + dev_info(&pf->pdev->dev, " fd-atr on\n"); + dev_info(&pf->pdev->dev, " fd-sb off\n"); + dev_info(&pf->pdev->dev, " fd-sb on\n"); dev_info(&pf->pdev->dev, " lldp start\n"); dev_info(&pf->pdev->dev, " lldp stop\n"); dev_info(&pf->pdev->dev, " lldp get local\n"); @@ -1828,9 +1981,6 @@ command_write_done: kfree(cmd_buf); cmd_buf = NULL; - kfree(print_buf_start); - print_buf = NULL; - print_buf_start = NULL; return count; } @@ -1937,9 +2087,13 @@ if (!vsi) { dev_info(&pf->pdev->dev, "tx_timeout: VSI %d not found\n", vsi_seid); - goto netdev_ops_write_done; - } - if (rtnl_trylock()) { + } else if (!vsi->netdev) { + dev_info(&pf->pdev->dev, "tx_timeout: no netdev for VSI %d\n", + vsi_seid); + } else if (test_bit(__I40E_DOWN, &vsi->state)) { + dev_info(&pf->pdev->dev, "tx_timeout: VSI %d not UP\n", + vsi_seid); + } else if (rtnl_trylock()) { vsi->netdev->netdev_ops->ndo_tx_timeout(vsi->netdev); rtnl_unlock(); dev_info(&pf->pdev->dev, "tx_timeout called\n"); @@ -1958,9 +2112,10 @@ if (!vsi) { dev_info(&pf->pdev->dev, "change_mtu: VSI %d not found\n", vsi_seid); - goto netdev_ops_write_done; - } - if (rtnl_trylock()) { + } else if (!vsi->netdev) { + dev_info(&pf->pdev->dev, "change_mtu: no netdev for VSI %d\n", + vsi_seid); + } else if (rtnl_trylock()) { vsi->netdev->netdev_ops->ndo_change_mtu(vsi->netdev, mtu); rtnl_unlock(); @@ -1979,9 +2134,10 @@ if (!vsi) { dev_info(&pf->pdev->dev, "set_rx_mode: VSI %d not found\n", vsi_seid); - goto netdev_ops_write_done; - } - if (rtnl_trylock()) { + } else if (!vsi->netdev) { + dev_info(&pf->pdev->dev, "set_rx_mode: no netdev for VSI %d\n", + vsi_seid); + } else if (rtnl_trylock()) { vsi->netdev->netdev_ops->ndo_set_rx_mode(vsi->netdev); rtnl_unlock(); dev_info(&pf->pdev->dev, "set_rx_mode called\n"); @@ -1999,11 +2155,14 @@ if (!vsi) { dev_info(&pf->pdev->dev, "napi: VSI %d not found\n", vsi_seid); - goto netdev_ops_write_done; + } else if (!vsi->netdev) { + dev_info(&pf->pdev->dev, "napi: no netdev for VSI %d\n", + vsi_seid); + } else { + for (i = 0; i < vsi->num_q_vectors; i++) + napi_schedule(&vsi->q_vectors[i]->napi); + dev_info(&pf->pdev->dev, "napi called\n"); } - for (i = 0; i < vsi->num_q_vectors; i++) - napi_schedule(&vsi->q_vectors[i]->napi); - dev_info(&pf->pdev->dev, "napi called\n"); } else { dev_info(&pf->pdev->dev, "unknown command '%s'\n", i40e_dbg_netdev_ops_buf); --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_diag.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_diag.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -68,16 +67,16 @@ struct i40e_diag_reg_test_info i40e_reg_list[] = { /* offset mask elements stride */ - {I40E_QTX_CTL(0), 0x0000FFBF, 64, I40E_QTX_CTL(1) - I40E_QTX_CTL(0)}, + {I40E_QTX_CTL(0), 0x0000FFBF, 4, I40E_QTX_CTL(1) - I40E_QTX_CTL(0)}, {I40E_PFINT_ITR0(0), 0x00000FFF, 3, I40E_PFINT_ITR0(1) - I40E_PFINT_ITR0(0)}, - {I40E_PFINT_ITRN(0, 0), 0x00000FFF, 64, I40E_PFINT_ITRN(0, 1) - I40E_PFINT_ITRN(0, 0)}, - {I40E_PFINT_ITRN(1, 0), 0x00000FFF, 64, I40E_PFINT_ITRN(1, 1) - I40E_PFINT_ITRN(1, 0)}, - {I40E_PFINT_ITRN(2, 0), 0x00000FFF, 64, I40E_PFINT_ITRN(2, 1) - I40E_PFINT_ITRN(2, 0)}, + {I40E_PFINT_ITRN(0, 0), 0x00000FFF, 8, I40E_PFINT_ITRN(0, 1) - I40E_PFINT_ITRN(0, 0)}, + {I40E_PFINT_ITRN(1, 0), 0x00000FFF, 8, I40E_PFINT_ITRN(1, 1) - I40E_PFINT_ITRN(1, 0)}, + {I40E_PFINT_ITRN(2, 0), 0x00000FFF, 8, I40E_PFINT_ITRN(2, 1) - I40E_PFINT_ITRN(2, 0)}, {I40E_PFINT_STAT_CTL0, 0x0000000C, 1, 0}, {I40E_PFINT_LNKLST0, 0x00001FFF, 1, 0}, - {I40E_PFINT_LNKLSTN(0), 0x000007FF, 511, I40E_PFINT_LNKLSTN(1) - I40E_PFINT_LNKLSTN(0)}, - {I40E_QINT_TQCTL(0), 0x000000FF, I40E_QINT_TQCTL_MAX_INDEX + 1, I40E_QINT_TQCTL(1) - I40E_QINT_TQCTL(0)}, - {I40E_QINT_RQCTL(0), 0x000000FF, I40E_QINT_RQCTL_MAX_INDEX + 1, I40E_QINT_RQCTL(1) - I40E_QINT_RQCTL(0)}, + {I40E_PFINT_LNKLSTN(0), 0x000007FF, 64, I40E_PFINT_LNKLSTN(1) - I40E_PFINT_LNKLSTN(0)}, + {I40E_QINT_TQCTL(0), 0x000000FF, 64, I40E_QINT_TQCTL(1) - I40E_QINT_TQCTL(0)}, + {I40E_QINT_RQCTL(0), 0x000000FF, 64, I40E_QINT_RQCTL(1) - I40E_QINT_RQCTL(0)}, {I40E_PFINT_ICR0_ENA, 0xF7F20000, 1, 0}, { 0 } }; @@ -119,7 +118,7 @@ /* read NVM control word and if NVM valid, validate EEPROM checksum*/ ret_code = i40e_read_nvm_word(hw, I40E_SR_NVM_CONTROL_WORD, ®_val); - if ((!ret_code) && + if (!ret_code && ((reg_val & I40E_SR_CONTROL_WORD_1_MASK) == (0x01 << I40E_SR_CONTROL_WORD_1_SHIFT))) { ret_code = i40e_validate_nvm_checksum(hw, NULL); --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_diag.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_diag.h @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -31,10 +30,10 @@ #include "i40e_type.h" enum i40e_lb_mode { - I40E_LB_MODE_NONE = 0, - I40E_LB_MODE_PHY_LOCAL, - I40E_LB_MODE_PHY_REMOTE, - I40E_LB_MODE_MAC_LOCAL, + I40E_LB_MODE_NONE = 0x0, + I40E_LB_MODE_PHY_LOCAL = I40E_AQ_LB_PHY_LOCAL, + I40E_LB_MODE_PHY_REMOTE = I40E_AQ_LB_PHY_REMOTE, + I40E_LB_MODE_MAC_LOCAL = I40E_AQ_LB_MAC_LOCAL, }; struct i40e_diag_reg_test_info { --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_ethtool.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_ethtool.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -63,6 +62,9 @@ I40E_NETDEV_STAT(rx_crc_errors), }; +static int i40e_add_fdir_ethtool(struct i40e_vsi *vsi, + struct ethtool_rxnfc *cmd); + /* These PF_STATs might look like duplicates of some NETDEV_STATs, * but they are separate. This device supports Virtualization, and * as such might have several netdevs supporting VMDq and FCoE going @@ -85,6 +87,7 @@ I40E_PF_STAT("illegal_bytes", stats.illegal_bytes), I40E_PF_STAT("mac_local_faults", stats.mac_local_faults), I40E_PF_STAT("mac_remote_faults", stats.mac_remote_faults), + I40E_PF_STAT("tx_timeout", tx_timeout_count), I40E_PF_STAT("rx_length_errors", stats.rx_length_errors), I40E_PF_STAT("link_xon_rx", stats.link_xon_rx), I40E_PF_STAT("link_xoff_rx", stats.link_xoff_rx), @@ -109,6 +112,13 @@ I40E_PF_STAT("rx_oversize", stats.rx_oversize), I40E_PF_STAT("rx_jabber", stats.rx_jabber), I40E_PF_STAT("VF_admin_queue_requests", vf_aq_requests), + I40E_PF_STAT("tx_hwtstamp_timeouts", tx_hwtstamp_timeouts), + I40E_PF_STAT("rx_hwtstamp_cleared", rx_hwtstamp_cleared), + /* LPI stats */ + I40E_PF_STAT("tx_lpi_status", stats.tx_lpi_status), + I40E_PF_STAT("rx_lpi_status", stats.rx_lpi_status), + I40E_PF_STAT("tx_lpi_count", stats.tx_lpi_count), + I40E_PF_STAT("rx_lpi_count", stats.rx_lpi_count), }; #define I40E_QUEUE_STATS_LEN(n) \ @@ -193,28 +203,48 @@ ecmd->supported = SUPPORTED_10000baseKR_Full; ecmd->advertising = ADVERTISED_10000baseKR_Full; break; - case I40E_PHY_TYPE_10GBASE_T: default: - ecmd->supported = SUPPORTED_10000baseT_Full; - ecmd->advertising = ADVERTISED_10000baseT_Full; + if (i40e_is_40G_device(hw->device_id)) { + ecmd->supported = SUPPORTED_40000baseSR4_Full; + ecmd->advertising = ADVERTISED_40000baseSR4_Full; + } else { + ecmd->supported = SUPPORTED_10000baseT_Full; + ecmd->advertising = ADVERTISED_10000baseT_Full; + } break; } - /* for now just say autoneg all the time */ ecmd->supported |= SUPPORTED_Autoneg; + ecmd->advertising |= ADVERTISED_Autoneg; + ecmd->autoneg = ((hw_link_info->an_info & I40E_AQ_AN_COMPLETED) ? + AUTONEG_ENABLE : AUTONEG_DISABLE); - if (hw->phy.media_type == I40E_MEDIA_TYPE_BACKPLANE) { + switch (hw->phy.media_type) { + case I40E_MEDIA_TYPE_BACKPLANE: ecmd->supported |= SUPPORTED_Backplane; ecmd->advertising |= ADVERTISED_Backplane; ecmd->port = PORT_NONE; - } else if (hw->phy.media_type == I40E_MEDIA_TYPE_BASET) { + break; + case I40E_MEDIA_TYPE_BASET: ecmd->supported |= SUPPORTED_TP; ecmd->advertising |= ADVERTISED_TP; ecmd->port = PORT_TP; - } else { + break; + case I40E_MEDIA_TYPE_DA: + case I40E_MEDIA_TYPE_CX4: + ecmd->supported |= SUPPORTED_FIBRE; + ecmd->advertising |= ADVERTISED_FIBRE; + ecmd->port = PORT_DA; + break; + case I40E_MEDIA_TYPE_FIBER: ecmd->supported |= SUPPORTED_FIBRE; ecmd->advertising |= ADVERTISED_FIBRE; ecmd->port = PORT_FIBRE; + break; + case I40E_MEDIA_TYPE_UNKNOWN: + default: + ecmd->port = PORT_OTHER; + break; } ecmd->transceiver = XCVR_EXTERNAL; @@ -256,12 +286,14 @@ ((hw_link_info->an_info & I40E_AQ_AN_COMPLETED) ? AUTONEG_ENABLE : AUTONEG_DISABLE); - pause->rx_pause = 0; - pause->tx_pause = 0; - if (hw_link_info->an_info & I40E_AQ_LINK_PAUSE_RX) + if (hw->fc.current_mode == I40E_FC_RX_PAUSE) { pause->rx_pause = 1; - if (hw_link_info->an_info & I40E_AQ_LINK_PAUSE_TX) + } else if (hw->fc.current_mode == I40E_FC_TX_PAUSE) { pause->tx_pause = 1; + } else if (hw->fc.current_mode == I40E_FC_FULL) { + pause->rx_pause = 1; + pause->tx_pause = 1; + } } static u32 i40e_get_msglevel(struct net_device *netdev) @@ -329,38 +361,56 @@ { struct i40e_netdev_priv *np = netdev_priv(netdev); struct i40e_hw *hw = &np->vsi->back->hw; - int first_word, last_word; - u16 i, eeprom_len; - u16 *eeprom_buff; - int ret_val = 0; - + struct i40e_pf *pf = np->vsi->back; + int ret_val = 0, len; + u8 *eeprom_buff; + u16 i, sectors; + bool last; +#define I40E_NVM_SECTOR_SIZE 4096 if (eeprom->len == 0) return -EINVAL; eeprom->magic = hw->vendor_id | (hw->device_id << 16); - first_word = eeprom->offset >> 1; - last_word = (eeprom->offset + eeprom->len - 1) >> 1; - eeprom_len = last_word - first_word + 1; - - eeprom_buff = kmalloc(sizeof(u16) * eeprom_len, GFP_KERNEL); + eeprom_buff = kzalloc(eeprom->len, GFP_KERNEL); if (!eeprom_buff) return -ENOMEM; - ret_val = i40e_read_nvm_buffer(hw, first_word, &eeprom_len, - eeprom_buff); - if (eeprom_len == 0) { - kfree(eeprom_buff); - return -EACCES; + ret_val = i40e_acquire_nvm(hw, I40E_RESOURCE_READ); + if (ret_val) { + dev_info(&pf->pdev->dev, + "Failed Acquiring NVM resource for read err=%d status=0x%x\n", + ret_val, hw->aq.asq_last_status); + goto free_buff; + } + + sectors = eeprom->len / I40E_NVM_SECTOR_SIZE; + sectors += (eeprom->len % I40E_NVM_SECTOR_SIZE) ? 1 : 0; + len = I40E_NVM_SECTOR_SIZE; + last = false; + for (i = 0; i < sectors; i++) { + if (i == (sectors - 1)) { + len = eeprom->len - (I40E_NVM_SECTOR_SIZE * i); + last = true; + } + ret_val = i40e_aq_read_nvm(hw, 0x0, + eeprom->offset + (I40E_NVM_SECTOR_SIZE * i), + len, + eeprom_buff + (I40E_NVM_SECTOR_SIZE * i), + last, NULL); + if (ret_val) { + dev_info(&pf->pdev->dev, + "read NVM failed err=%d status=0x%x\n", + ret_val, hw->aq.asq_last_status); + goto release_nvm; + } } - /* Device's eeprom is always little-endian, word addressable */ - for (i = 0; i < eeprom_len; i++) - le16_to_cpus(&eeprom_buff[i]); - - memcpy(bytes, (u8 *)eeprom_buff + (eeprom->offset & 1), eeprom->len); +release_nvm: + i40e_release_nvm(hw); + memcpy(bytes, eeprom_buff, eeprom->len); +free_buff: kfree(eeprom_buff); - return ret_val; } @@ -368,8 +418,14 @@ { struct i40e_netdev_priv *np = netdev_priv(netdev); struct i40e_hw *hw = &np->vsi->back->hw; + u32 val; - return hw->nvm.sr_size * 2; + val = (rd32(hw, I40E_GLPCI_LBARCTRL) + & I40E_GLPCI_LBARCTRL_FL_SIZE_MASK) + >> I40E_GLPCI_LBARCTRL_FL_SIZE_SHIFT; + /* register returns value in power of 2, 64Kbyte chunks. */ + val = (64 * 1024) * (1 << val); + return val; } static void i40e_get_drvinfo(struct net_device *netdev, @@ -418,15 +474,19 @@ if ((ring->rx_mini_pending) || (ring->rx_jumbo_pending)) return -EINVAL; - new_tx_count = clamp_t(u32, ring->tx_pending, - I40E_MIN_NUM_DESCRIPTORS, - I40E_MAX_NUM_DESCRIPTORS); - new_tx_count = ALIGN(new_tx_count, I40E_REQ_DESCRIPTOR_MULTIPLE); - - new_rx_count = clamp_t(u32, ring->rx_pending, - I40E_MIN_NUM_DESCRIPTORS, - I40E_MAX_NUM_DESCRIPTORS); - new_rx_count = ALIGN(new_rx_count, I40E_REQ_DESCRIPTOR_MULTIPLE); + if (ring->tx_pending > I40E_MAX_NUM_DESCRIPTORS || + ring->tx_pending < I40E_MIN_NUM_DESCRIPTORS || + ring->rx_pending > I40E_MAX_NUM_DESCRIPTORS || + ring->rx_pending < I40E_MIN_NUM_DESCRIPTORS) { + netdev_info(netdev, + "Descriptors requested (Tx: %d / Rx: %d) out of range [%d-%d]\n", + ring->tx_pending, ring->rx_pending, + I40E_MIN_NUM_DESCRIPTORS, I40E_MAX_NUM_DESCRIPTORS); + return -EINVAL; + } + + new_tx_count = ALIGN(ring->tx_pending, I40E_REQ_DESCRIPTOR_MULTIPLE); + new_rx_count = ALIGN(ring->rx_pending, I40E_REQ_DESCRIPTOR_MULTIPLE); /* if nothing to do return success */ if ((new_tx_count == vsi->tx_rings[0]->count) && @@ -598,18 +658,18 @@ /* process Tx ring statistics */ do { - start = u64_stats_fetch_begin_bh(&tx_ring->syncp); + start = u64_stats_fetch_begin_irq(&tx_ring->syncp); data[i] = tx_ring->stats.packets; data[i + 1] = tx_ring->stats.bytes; - } while (u64_stats_fetch_retry_bh(&tx_ring->syncp, start)); + } while (u64_stats_fetch_retry_irq(&tx_ring->syncp, start)); /* Rx ring is the 2nd half of the queue pair */ rx_ring = &tx_ring[1]; do { - start = u64_stats_fetch_begin_bh(&rx_ring->syncp); + start = u64_stats_fetch_begin_irq(&rx_ring->syncp); data[i + 2] = rx_ring->stats.packets; data[i + 3] = rx_ring->stats.bytes; - } while (u64_stats_fetch_retry_bh(&rx_ring->syncp, start)); + } while (u64_stats_fetch_retry_irq(&rx_ring->syncp, start)); } rcu_read_unlock(); if (vsi == pf->vsi[pf->lan_vsi]) { @@ -699,11 +759,44 @@ static int i40e_get_ts_info(struct net_device *dev, struct ethtool_ts_info *info) { - return ethtool_op_get_ts_info(dev, info); + struct i40e_pf *pf = i40e_netdev_to_pf(dev); + + info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE | + SOF_TIMESTAMPING_RX_SOFTWARE | + SOF_TIMESTAMPING_SOFTWARE | + SOF_TIMESTAMPING_TX_HARDWARE | + SOF_TIMESTAMPING_RX_HARDWARE | + SOF_TIMESTAMPING_RAW_HARDWARE; + + if (pf->ptp_clock) + info->phc_index = ptp_clock_index(pf->ptp_clock); + else + info->phc_index = -1; + + info->tx_types = (1 << HWTSTAMP_TX_OFF) | (1 << HWTSTAMP_TX_ON); + + info->rx_filters = (1 << HWTSTAMP_FILTER_NONE) | + (1 << HWTSTAMP_FILTER_PTP_V1_L4_SYNC) | + (1 << HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ) | + (1 << HWTSTAMP_FILTER_PTP_V2_EVENT) | + (1 << HWTSTAMP_FILTER_PTP_V2_L2_EVENT) | + (1 << HWTSTAMP_FILTER_PTP_V2_L4_EVENT) | + (1 << HWTSTAMP_FILTER_PTP_V2_SYNC) | + (1 << HWTSTAMP_FILTER_PTP_V2_L2_SYNC) | + (1 << HWTSTAMP_FILTER_PTP_V2_L4_SYNC) | + (1 << HWTSTAMP_FILTER_PTP_V2_DELAY_REQ) | + (1 << HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ) | + (1 << HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ); + + return 0; } -static int i40e_link_test(struct i40e_pf *pf, u64 *data) +static int i40e_link_test(struct net_device *netdev, u64 *data) { + struct i40e_netdev_priv *np = netdev_priv(netdev); + struct i40e_pf *pf = np->vsi->back; + + netif_info(pf, hw, netdev, "link test\n"); if (i40e_get_link_status(&pf->hw)) *data = 0; else @@ -712,36 +805,51 @@ return *data; } -static int i40e_reg_test(struct i40e_pf *pf, u64 *data) +static int i40e_reg_test(struct net_device *netdev, u64 *data) { - i40e_status ret; + struct i40e_netdev_priv *np = netdev_priv(netdev); + struct i40e_pf *pf = np->vsi->back; - ret = i40e_diag_reg_test(&pf->hw); - *data = ret; + netif_info(pf, hw, netdev, "register test\n"); + *data = i40e_diag_reg_test(&pf->hw); - return ret; + return *data; } -static int i40e_eeprom_test(struct i40e_pf *pf, u64 *data) +static int i40e_eeprom_test(struct net_device *netdev, u64 *data) { - i40e_status ret; + struct i40e_netdev_priv *np = netdev_priv(netdev); + struct i40e_pf *pf = np->vsi->back; - ret = i40e_diag_eeprom_test(&pf->hw); - *data = ret; + netif_info(pf, hw, netdev, "eeprom test\n"); + *data = i40e_diag_eeprom_test(&pf->hw); - return ret; + return *data; } -static int i40e_intr_test(struct i40e_pf *pf, u64 *data) +static int i40e_intr_test(struct net_device *netdev, u64 *data) { - *data = -ENOSYS; + struct i40e_netdev_priv *np = netdev_priv(netdev); + struct i40e_pf *pf = np->vsi->back; + u16 swc_old = pf->sw_int_count; + + netif_info(pf, hw, netdev, "interrupt test\n"); + wr32(&pf->hw, I40E_PFINT_DYN_CTL0, + (I40E_PFINT_DYN_CTL0_INTENA_MASK | + I40E_PFINT_DYN_CTL0_SWINT_TRIG_MASK)); + usleep_range(1000, 2000); + *data = (swc_old == pf->sw_int_count); return *data; } -static int i40e_loopback_test(struct i40e_pf *pf, u64 *data) +static int i40e_loopback_test(struct net_device *netdev, u64 *data) { - *data = -ENOSYS; + struct i40e_netdev_priv *np = netdev_priv(netdev); + struct i40e_pf *pf = np->vsi->back; + + netif_info(pf, hw, netdev, "loopback test not implemented\n"); + *data = 0; return *data; } @@ -752,42 +860,38 @@ struct i40e_netdev_priv *np = netdev_priv(netdev); struct i40e_pf *pf = np->vsi->back; - set_bit(__I40E_TESTING, &pf->state); if (eth_test->flags == ETH_TEST_FL_OFFLINE) { /* Offline tests */ + netif_info(pf, drv, netdev, "offline testing starting\n"); - netdev_info(netdev, "offline testing starting\n"); + set_bit(__I40E_TESTING, &pf->state); /* Link test performed before hardware reset * so autoneg doesn't interfere with test result */ - netdev_info(netdev, "link test starting\n"); - if (i40e_link_test(pf, &data[I40E_ETH_TEST_LINK])) + if (i40e_link_test(netdev, &data[I40E_ETH_TEST_LINK])) eth_test->flags |= ETH_TEST_FL_FAILED; - netdev_info(netdev, "register test starting\n"); - if (i40e_reg_test(pf, &data[I40E_ETH_TEST_REG])) + if (i40e_eeprom_test(netdev, &data[I40E_ETH_TEST_EEPROM])) eth_test->flags |= ETH_TEST_FL_FAILED; - i40e_do_reset(pf, (1 << __I40E_PF_RESET_REQUESTED)); - netdev_info(netdev, "eeprom test starting\n"); - if (i40e_eeprom_test(pf, &data[I40E_ETH_TEST_EEPROM])) + if (i40e_intr_test(netdev, &data[I40E_ETH_TEST_INTR])) eth_test->flags |= ETH_TEST_FL_FAILED; - i40e_do_reset(pf, (1 << __I40E_PF_RESET_REQUESTED)); - netdev_info(netdev, "interrupt test starting\n"); - if (i40e_intr_test(pf, &data[I40E_ETH_TEST_INTR])) + if (i40e_loopback_test(netdev, &data[I40E_ETH_TEST_LOOPBACK])) eth_test->flags |= ETH_TEST_FL_FAILED; - i40e_do_reset(pf, (1 << __I40E_PF_RESET_REQUESTED)); - netdev_info(netdev, "loopback test starting\n"); - if (i40e_loopback_test(pf, &data[I40E_ETH_TEST_LOOPBACK])) + /* run reg test last, a reset is required after it */ + if (i40e_reg_test(netdev, &data[I40E_ETH_TEST_REG])) eth_test->flags |= ETH_TEST_FL_FAILED; + clear_bit(__I40E_TESTING, &pf->state); + i40e_do_reset(pf, (1 << __I40E_PF_RESET_REQUESTED)); } else { - netdev_info(netdev, "online test starting\n"); /* Online tests */ - if (i40e_link_test(pf, &data[I40E_ETH_TEST_LINK])) + netif_info(pf, drv, netdev, "online testing starting\n"); + + if (i40e_link_test(netdev, &data[I40E_ETH_TEST_LINK])) eth_test->flags |= ETH_TEST_FL_FAILED; /* Offline only tests, not run in online; pass by default */ @@ -795,16 +899,53 @@ data[I40E_ETH_TEST_EEPROM] = 0; data[I40E_ETH_TEST_INTR] = 0; data[I40E_ETH_TEST_LOOPBACK] = 0; - - clear_bit(__I40E_TESTING, &pf->state); } + + netif_info(pf, drv, netdev, "testing finished\n"); } static void i40e_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wol) { - wol->supported = 0; - wol->wolopts = 0; + struct i40e_netdev_priv *np = netdev_priv(netdev); + struct i40e_pf *pf = np->vsi->back; + struct i40e_hw *hw = &pf->hw; + u16 wol_nvm_bits; + + /* NVM bit on means WoL disabled for the port */ + i40e_read_nvm_word(hw, I40E_SR_NVM_WAKE_ON_LAN, &wol_nvm_bits); + if ((1 << hw->port) & wol_nvm_bits) { + wol->supported = 0; + wol->wolopts = 0; + } else { + wol->supported = WAKE_MAGIC; + wol->wolopts = (pf->wol_en ? WAKE_MAGIC : 0); + } +} + +static int i40e_set_wol(struct net_device *netdev, struct ethtool_wolinfo *wol) +{ + struct i40e_netdev_priv *np = netdev_priv(netdev); + struct i40e_pf *pf = np->vsi->back; + struct i40e_hw *hw = &pf->hw; + u16 wol_nvm_bits; + + /* NVM bit on means WoL disabled for the port */ + i40e_read_nvm_word(hw, I40E_SR_NVM_WAKE_ON_LAN, &wol_nvm_bits); + if (((1 << hw->port) & wol_nvm_bits)) + return -EOPNOTSUPP; + + /* only magic packet is supported */ + if (wol->wolopts && (wol->wolopts != WAKE_MAGIC)) + return -EOPNOTSUPP; + + /* is this a new value? */ + if (pf->wol_en != !!wol->wolopts) { + pf->wol_en = !!wol->wolopts; + device_set_wakeup_enable(&pf->pdev->dev, pf->wol_en); + } + + return 0; } static int i40e_nway_reset(struct net_device *netdev) @@ -838,13 +979,13 @@ pf->led_status = i40e_led_get(hw); return blink_freq; case ETHTOOL_ID_ON: - i40e_led_set(hw, 0xF); + i40e_led_set(hw, 0xF, false); break; case ETHTOOL_ID_OFF: - i40e_led_set(hw, 0x0); + i40e_led_set(hw, 0x0, false); break; case ETHTOOL_ID_INACTIVE: - i40e_led_set(hw, pf->led_status); + i40e_led_set(hw, pf->led_status, false); break; } @@ -980,6 +1121,84 @@ } /** + * i40e_get_ethtool_fdir_all - Populates the rule count of a command + * @pf: Pointer to the physical function struct + * @cmd: The command to get or set Rx flow classification rules + * @rule_locs: Array of used rule locations + * + * This function populates both the total and actual rule count of + * the ethtool flow classification command + * + * Returns 0 on success or -EMSGSIZE if entry not found + **/ +static int i40e_get_ethtool_fdir_all(struct i40e_pf *pf, + struct ethtool_rxnfc *cmd, + u32 *rule_locs) +{ + struct i40e_fdir_filter *rule; + struct hlist_node *node2; + int cnt = 0; + + /* report total rule count */ + cmd->data = pf->hw.fdir_shared_filter_count + + pf->fdir_pf_filter_count; + + hlist_for_each_entry_safe(rule, node2, + &pf->fdir_filter_list, fdir_node) { + if (cnt == cmd->rule_cnt) + return -EMSGSIZE; + + rule_locs[cnt] = rule->fd_id; + cnt++; + } + + cmd->rule_cnt = cnt; + + return 0; +} + +/** + * i40e_get_ethtool_fdir_entry - Look up a filter based on Rx flow + * @pf: Pointer to the physical function struct + * @cmd: The command to get or set Rx flow classification rules + * + * This function looks up a filter based on the Rx flow classification + * command and fills the flow spec info for it if found + * + * Returns 0 on success or -EINVAL if filter not found + **/ +static int i40e_get_ethtool_fdir_entry(struct i40e_pf *pf, + struct ethtool_rxnfc *cmd) +{ + struct ethtool_rx_flow_spec *fsp = + (struct ethtool_rx_flow_spec *)&cmd->fs; + struct i40e_fdir_filter *rule = NULL; + struct hlist_node *node2; + + /* report total rule count */ + cmd->data = pf->hw.fdir_shared_filter_count + + pf->fdir_pf_filter_count; + + hlist_for_each_entry_safe(rule, node2, + &pf->fdir_filter_list, fdir_node) { + if (fsp->location <= rule->fd_id) + break; + } + + if (!rule || fsp->location != rule->fd_id) + return -EINVAL; + + fsp->flow_type = rule->flow_type; + fsp->h_u.tcp_ip4_spec.psrc = rule->src_port; + fsp->h_u.tcp_ip4_spec.pdst = rule->dst_port; + fsp->h_u.tcp_ip4_spec.ip4src = rule->src_ip[0]; + fsp->h_u.tcp_ip4_spec.ip4dst = rule->dst_ip[0]; + fsp->ring_cookie = rule->q_index; + + return 0; +} + +/** * i40e_get_rxnfc - command to get RX flow classification rules * @netdev: network interface device structure * @cmd: ethtool rxnfc command @@ -1003,14 +1222,15 @@ ret = i40e_get_rss_hash_opts(pf, cmd); break; case ETHTOOL_GRXCLSRLCNT: + cmd->rule_cnt = pf->fdir_pf_active_filters; ret = 0; break; case ETHTOOL_GRXCLSRULE: - ret = 0; + ret = i40e_get_ethtool_fdir_entry(pf, cmd); break; case ETHTOOL_GRXCLSRLALL: - cmd->data = 500; - ret = 0; + ret = i40e_get_ethtool_fdir_all(pf, cmd, rule_locs); + break; default: break; } @@ -1141,265 +1361,186 @@ return 0; } -#define IP_HEADER_OFFSET 14 /** - * i40e_add_del_fdir_udpv4 - Add/Remove UDPv4 Flow Director filters for - * a specific flow spec - * @vsi: pointer to the targeted VSI - * @fd_data: the flow director data required from the FDir descriptor - * @ethtool_rx_flow_spec: the flow spec - * @add: true adds a filter, false removes it + * i40e_match_fdir_input_set - Match a new filter against an existing one + * @rule: The filter already added + * @input: The new filter to comapre against * - * Returns 0 if the filters were successfully added or removed + * Returns true if the two input set match **/ -static int i40e_add_del_fdir_udpv4(struct i40e_vsi *vsi, - struct i40e_fdir_data *fd_data, - struct ethtool_rx_flow_spec *fsp, bool add) +static bool i40e_match_fdir_input_set(struct i40e_fdir_filter *rule, + struct i40e_fdir_filter *input) { - struct i40e_pf *pf = vsi->back; - struct udphdr *udp; - struct iphdr *ip; - bool err = false; - int ret; - int i; - - ip = (struct iphdr *)(fd_data->raw_packet + IP_HEADER_OFFSET); - udp = (struct udphdr *)(fd_data->raw_packet + IP_HEADER_OFFSET - + sizeof(struct iphdr)); - - ip->saddr = fsp->h_u.tcp_ip4_spec.ip4src; - ip->daddr = fsp->h_u.tcp_ip4_spec.ip4dst; - udp->source = fsp->h_u.tcp_ip4_spec.psrc; - udp->dest = fsp->h_u.tcp_ip4_spec.pdst; - - for (i = I40E_FILTER_PCTYPE_NONF_UNICAST_IPV4_UDP; - i <= I40E_FILTER_PCTYPE_NONF_IPV4_UDP; i++) { - fd_data->pctype = i; - ret = i40e_program_fdir_filter(fd_data, pf, add); - - if (ret) { - dev_info(&pf->pdev->dev, - "Filter command send failed for PCTYPE %d (ret = %d)\n", - fd_data->pctype, ret); - err = true; - } else { - dev_info(&pf->pdev->dev, - "Filter OK for PCTYPE %d (ret = %d)\n", - fd_data->pctype, ret); - } - } - - return err ? -EOPNOTSUPP : 0; + if ((rule->dst_ip[0] != input->dst_ip[0]) || + (rule->src_ip[0] != input->src_ip[0]) || + (rule->dst_port != input->dst_port) || + (rule->src_port != input->src_port)) + return false; + return true; } /** - * i40e_add_del_fdir_tcpv4 - Add/Remove TCPv4 Flow Director filters for - * a specific flow spec - * @vsi: pointer to the targeted VSI - * @fd_data: the flow director data required from the FDir descriptor - * @ethtool_rx_flow_spec: the flow spec - * @add: true adds a filter, false removes it + * i40e_update_ethtool_fdir_entry - Updates the fdir filter entry + * @vsi: Pointer to the targeted VSI + * @input: The filter to update or NULL to indicate deletion + * @sw_idx: Software index to the filter + * @cmd: The command to get or set Rx flow classification rules * - * Returns 0 if the filters were successfully added or removed + * This function updates (or deletes) a Flow Director entry from + * the hlist of the corresponding PF + * + * Returns 0 on success **/ -static int i40e_add_del_fdir_tcpv4(struct i40e_vsi *vsi, - struct i40e_fdir_data *fd_data, - struct ethtool_rx_flow_spec *fsp, bool add) +static int i40e_update_ethtool_fdir_entry(struct i40e_vsi *vsi, + struct i40e_fdir_filter *input, + u16 sw_idx, + struct ethtool_rxnfc *cmd) { + struct i40e_fdir_filter *rule, *parent; struct i40e_pf *pf = vsi->back; - struct tcphdr *tcp; - struct iphdr *ip; - bool err = false; - int ret; - - ip = (struct iphdr *)(fd_data->raw_packet + IP_HEADER_OFFSET); - tcp = (struct tcphdr *)(fd_data->raw_packet + IP_HEADER_OFFSET - + sizeof(struct iphdr)); + struct hlist_node *node2; + int err = -EINVAL; - ip->daddr = fsp->h_u.tcp_ip4_spec.ip4dst; - tcp->dest = fsp->h_u.tcp_ip4_spec.pdst; + parent = NULL; + rule = NULL; - fd_data->pctype = I40E_FILTER_PCTYPE_NONF_IPV4_TCP_SYN; - ret = i40e_program_fdir_filter(fd_data, pf, add); + hlist_for_each_entry_safe(rule, node2, + &pf->fdir_filter_list, fdir_node) { + /* hash found, or no matching entry */ + if (rule->fd_id >= sw_idx) + break; + parent = rule; + } - if (ret) { - dev_info(&pf->pdev->dev, - "Filter command send failed for PCTYPE %d (ret = %d)\n", - fd_data->pctype, ret); - err = true; - } else { - dev_info(&pf->pdev->dev, "Filter OK for PCTYPE %d (ret = %d)\n", - fd_data->pctype, ret); + /* if there is an old rule occupying our place remove it */ + if (rule && (rule->fd_id == sw_idx)) { + if (input && !i40e_match_fdir_input_set(rule, input)) + err = i40e_add_del_fdir(vsi, rule, false); + else if (!input) + err = i40e_add_del_fdir(vsi, rule, false); + hlist_del(&rule->fdir_node); + kfree(rule); + pf->fdir_pf_active_filters--; } - ip->saddr = fsp->h_u.tcp_ip4_spec.ip4src; - tcp->source = fsp->h_u.tcp_ip4_spec.psrc; + /* If no input this was a delete, err should be 0 if a rule was + * successfully found and removed from the list else -EINVAL + */ + if (!input) + return err; - fd_data->pctype = I40E_FILTER_PCTYPE_NONF_IPV4_TCP; + /* initialize node and set software index */ + INIT_HLIST_NODE(&input->fdir_node); - ret = i40e_program_fdir_filter(fd_data, pf, add); - if (ret) { - dev_info(&pf->pdev->dev, - "Filter command send failed for PCTYPE %d (ret = %d)\n", - fd_data->pctype, ret); - err = true; - } else { - dev_info(&pf->pdev->dev, "Filter OK for PCTYPE %d (ret = %d)\n", - fd_data->pctype, ret); - } + /* add filter to the list */ + if (parent) + hlist_add_after(&parent->fdir_node, &input->fdir_node); + else + hlist_add_head(&input->fdir_node, + &pf->fdir_filter_list); - return err ? -EOPNOTSUPP : 0; -} + /* update counts */ + pf->fdir_pf_active_filters++; -/** - * i40e_add_del_fdir_sctpv4 - Add/Remove SCTPv4 Flow Director filters for - * a specific flow spec - * @vsi: pointer to the targeted VSI - * @fd_data: the flow director data required from the FDir descriptor - * @ethtool_rx_flow_spec: the flow spec - * @add: true adds a filter, false removes it - * - * Returns 0 if the filters were successfully added or removed - **/ -static int i40e_add_del_fdir_sctpv4(struct i40e_vsi *vsi, - struct i40e_fdir_data *fd_data, - struct ethtool_rx_flow_spec *fsp, bool add) -{ - return -EOPNOTSUPP; + return 0; } /** - * i40e_add_del_fdir_ipv4 - Add/Remove IPv4 Flow Director filters for - * a specific flow spec - * @vsi: pointer to the targeted VSI - * @fd_data: the flow director data required for the FDir descriptor - * @fsp: the ethtool flow spec - * @add: true adds a filter, false removes it + * i40e_del_fdir_entry - Deletes a Flow Director filter entry + * @vsi: Pointer to the targeted VSI + * @cmd: The command to get or set Rx flow classification rules * - * Returns 0 if the filters were successfully added or removed - **/ -static int i40e_add_del_fdir_ipv4(struct i40e_vsi *vsi, - struct i40e_fdir_data *fd_data, - struct ethtool_rx_flow_spec *fsp, bool add) + * The function removes a Flow Director filter entry from the + * hlist of the corresponding PF + * + * Returns 0 on success + */ +static int i40e_del_fdir_entry(struct i40e_vsi *vsi, + struct ethtool_rxnfc *cmd) { + struct ethtool_rx_flow_spec *fsp = + (struct ethtool_rx_flow_spec *)&cmd->fs; struct i40e_pf *pf = vsi->back; - struct iphdr *ip; - bool err = false; - int ret; - int i; - - ip = (struct iphdr *)(fd_data->raw_packet + IP_HEADER_OFFSET); + int ret = 0; - ip->saddr = fsp->h_u.usr_ip4_spec.ip4src; - ip->daddr = fsp->h_u.usr_ip4_spec.ip4dst; - ip->protocol = fsp->h_u.usr_ip4_spec.proto; - - for (i = I40E_FILTER_PCTYPE_NONF_IPV4_OTHER; - i <= I40E_FILTER_PCTYPE_FRAG_IPV4; i++) { - fd_data->pctype = i; - ret = i40e_program_fdir_filter(fd_data, pf, add); + ret = i40e_update_ethtool_fdir_entry(vsi, NULL, fsp->location, cmd); - if (ret) { - dev_info(&pf->pdev->dev, - "Filter command send failed for PCTYPE %d (ret = %d)\n", - fd_data->pctype, ret); - err = true; - } else { - dev_info(&pf->pdev->dev, - "Filter OK for PCTYPE %d (ret = %d)\n", - fd_data->pctype, ret); - } - } - - return err ? -EOPNOTSUPP : 0; + i40e_fdir_check_and_reenable(pf); + return ret; } /** - * i40e_add_del_fdir_ethtool - Add/Remove Flow Director filters for - * a specific flow spec based on their protocol + * i40e_add_fdir_ethtool - Add/Remove Flow Director filters * @vsi: pointer to the targeted VSI * @cmd: command to get or set RX flow classification rules - * @add: true adds a filter, false removes it * - * Returns 0 if the filters were successfully added or removed + * Add Flow Director filters for a specific flow spec based on their + * protocol. Returns 0 if the filters were successfully added. **/ -static int i40e_add_del_fdir_ethtool(struct i40e_vsi *vsi, - struct ethtool_rxnfc *cmd, bool add) +static int i40e_add_fdir_ethtool(struct i40e_vsi *vsi, + struct ethtool_rxnfc *cmd) { - struct i40e_fdir_data fd_data; - int ret = -EINVAL; + struct ethtool_rx_flow_spec *fsp; + struct i40e_fdir_filter *input; struct i40e_pf *pf; - struct ethtool_rx_flow_spec *fsp = - (struct ethtool_rx_flow_spec *)&cmd->fs; + int ret = -EINVAL; if (!vsi) return -EINVAL; pf = vsi->back; - if ((fsp->ring_cookie != RX_CLS_FLOW_DISC) && - (fsp->ring_cookie >= vsi->num_queue_pairs)) + if (!(pf->flags & I40E_FLAG_FD_SB_ENABLED)) + return -EOPNOTSUPP; + + if (pf->auto_disable_flags & I40E_FLAG_FD_SB_ENABLED) + return -ENOSPC; + + fsp = (struct ethtool_rx_flow_spec *)&cmd->fs; + + if (fsp->location >= (pf->hw.func_caps.fd_filters_best_effort + + pf->hw.func_caps.fd_filters_guaranteed)) { + return -EINVAL; + } + + if (fsp->ring_cookie >= vsi->num_queue_pairs) return -EINVAL; - /* Populate the Flow Director that we have at the moment - * and allocate the raw packet buffer for the calling functions - */ - fd_data.raw_packet = kzalloc(I40E_FDIR_MAX_RAW_PACKET_LOOKUP, - GFP_KERNEL); + input = kzalloc(sizeof(*input), GFP_KERNEL); - if (!fd_data.raw_packet) { - dev_info(&pf->pdev->dev, "Could not allocate memory\n"); + if (!input) return -ENOMEM; - } - fd_data.q_index = fsp->ring_cookie; - fd_data.flex_off = 0; - fd_data.pctype = 0; - fd_data.dest_vsi = vsi->id; - fd_data.dest_ctl = 0; - fd_data.fd_status = 0; - fd_data.cnt_index = 0; - fd_data.fd_id = 0; + input->fd_id = fsp->location; - switch (fsp->flow_type & ~FLOW_EXT) { - case TCP_V4_FLOW: - ret = i40e_add_del_fdir_tcpv4(vsi, &fd_data, fsp, add); - break; - case UDP_V4_FLOW: - ret = i40e_add_del_fdir_udpv4(vsi, &fd_data, fsp, add); - break; - case SCTP_V4_FLOW: - ret = i40e_add_del_fdir_sctpv4(vsi, &fd_data, fsp, add); - break; - case IPV4_FLOW: - ret = i40e_add_del_fdir_ipv4(vsi, &fd_data, fsp, add); - break; - case IP_USER_FLOW: - switch (fsp->h_u.usr_ip4_spec.proto) { - case IPPROTO_TCP: - ret = i40e_add_del_fdir_tcpv4(vsi, &fd_data, fsp, add); - break; - case IPPROTO_UDP: - ret = i40e_add_del_fdir_udpv4(vsi, &fd_data, fsp, add); - break; - case IPPROTO_SCTP: - ret = i40e_add_del_fdir_sctpv4(vsi, &fd_data, fsp, add); - break; - default: - ret = i40e_add_del_fdir_ipv4(vsi, &fd_data, fsp, add); - break; - } - break; - default: - dev_info(&pf->pdev->dev, "Could not specify spec type\n"); - ret = -EINVAL; - } + if (fsp->ring_cookie == RX_CLS_FLOW_DISC) + input->dest_ctl = I40E_FILTER_PROGRAM_DESC_DEST_DROP_PACKET; + else + input->dest_ctl = + I40E_FILTER_PROGRAM_DESC_DEST_DIRECT_PACKET_QINDEX; - kfree(fd_data.raw_packet); - fd_data.raw_packet = NULL; + input->q_index = fsp->ring_cookie; + input->flex_off = 0; + input->pctype = 0; + input->dest_vsi = vsi->id; + input->fd_status = I40E_FILTER_PROGRAM_DESC_FD_STATUS_FD_ID; + input->cnt_index = 0; + input->flow_type = fsp->flow_type; + input->ip4_proto = fsp->h_u.usr_ip4_spec.proto; + input->src_port = fsp->h_u.tcp_ip4_spec.psrc; + input->dst_port = fsp->h_u.tcp_ip4_spec.pdst; + input->src_ip[0] = fsp->h_u.tcp_ip4_spec.ip4src; + input->dst_ip[0] = fsp->h_u.tcp_ip4_spec.ip4dst; + + ret = i40e_add_del_fdir(vsi, input, true); + if (ret) + kfree(input); + else + i40e_update_ethtool_fdir_entry(vsi, input, fsp->location, NULL); return ret; } + /** * i40e_set_rxnfc - command to set RX flow classification rules * @netdev: network interface device structure @@ -1419,10 +1560,10 @@ ret = i40e_set_rss_hash_opt(pf, cmd); break; case ETHTOOL_SRXCLSRLINS: - ret = i40e_add_del_fdir_ethtool(vsi, cmd, true); + ret = i40e_add_fdir_ethtool(vsi, cmd); break; case ETHTOOL_SRXCLSRLDEL: - ret = i40e_add_del_fdir_ethtool(vsi, cmd, false); + ret = i40e_del_fdir_entry(vsi, cmd); break; default: break; @@ -1431,6 +1572,94 @@ return ret; } +/** + * i40e_max_channels - get Max number of combined channels supported + * @vsi: vsi pointer + **/ +static unsigned int i40e_max_channels(struct i40e_vsi *vsi) +{ + /* TODO: This code assumes DCB and FD is disabled for now. */ + return vsi->alloc_queue_pairs; +} + +/** + * i40e_get_channels - Get the current channels enabled and max supported etc. + * @netdev: network interface device structure + * @ch: ethtool channels structure + * + * We don't support separate tx and rx queues as channels. The other count + * represents how many queues are being used for control. max_combined counts + * how many queue pairs we can support. They may not be mapped 1 to 1 with + * q_vectors since we support a lot more queue pairs than q_vectors. + **/ +static void i40e_get_channels(struct net_device *dev, + struct ethtool_channels *ch) +{ + struct i40e_netdev_priv *np = netdev_priv(dev); + struct i40e_vsi *vsi = np->vsi; + struct i40e_pf *pf = vsi->back; + + /* report maximum channels */ + ch->max_combined = i40e_max_channels(vsi); + + /* report info for other vector */ + ch->other_count = (pf->flags & I40E_FLAG_FD_SB_ENABLED) ? 1 : 0; + ch->max_other = ch->other_count; + + /* Note: This code assumes DCB is disabled for now. */ + ch->combined_count = vsi->num_queue_pairs; +} + +/** + * i40e_set_channels - Set the new channels count. + * @netdev: network interface device structure + * @ch: ethtool channels structure + * + * The new channels count may not be the same as requested by the user + * since it gets rounded down to a power of 2 value. + **/ +static int i40e_set_channels(struct net_device *dev, + struct ethtool_channels *ch) +{ + struct i40e_netdev_priv *np = netdev_priv(dev); + unsigned int count = ch->combined_count; + struct i40e_vsi *vsi = np->vsi; + struct i40e_pf *pf = vsi->back; + int new_count; + + /* We do not support setting channels for any other VSI at present */ + if (vsi->type != I40E_VSI_MAIN) + return -EINVAL; + + /* verify they are not requesting separate vectors */ + if (!count || ch->rx_count || ch->tx_count) + return -EINVAL; + + /* verify other_count has not changed */ + if (ch->other_count != ((pf->flags & I40E_FLAG_FD_SB_ENABLED) ? 1 : 0)) + return -EINVAL; + + /* verify the number of channels does not exceed hardware limits */ + if (count > i40e_max_channels(vsi)) + return -EINVAL; + + /* update feature limits from largest to smallest supported values */ + /* TODO: Flow director limit, DCB etc */ + + /* cap RSS limit */ + if (count > pf->rss_size_max) + count = pf->rss_size_max; + + /* use rss_reconfig to rebuild with new queue count and update traffic + * class queue mapping + */ + new_count = i40e_reconfig_rss_queues(pf, count); + if (new_count > 0) + return 0; + else + return -EINVAL; +} + static const struct ethtool_ops i40e_ethtool_ops = { .get_settings = i40e_get_settings, .get_drvinfo = i40e_get_drvinfo, @@ -1439,6 +1668,7 @@ .nway_reset = i40e_nway_reset, .get_link = ethtool_op_get_link, .get_wol = i40e_get_wol, + .set_wol = i40e_set_wol, .get_eeprom_len = i40e_get_eeprom_len, .get_eeprom = i40e_get_eeprom, .get_ringparam = i40e_get_ringparam, @@ -1455,6 +1685,8 @@ .get_ethtool_stats = i40e_get_ethtool_stats, .get_coalesce = i40e_get_coalesce, .set_coalesce = i40e_set_coalesce, + .get_channels = i40e_get_channels, + .set_channels = i40e_set_channels, .get_ts_info = i40e_get_ts_info, }; --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_hmc.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_hmc.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -47,10 +46,10 @@ u64 direct_mode_sz) { enum i40e_memory_type mem_type __attribute__((unused)); - i40e_status ret_code = 0; struct i40e_hmc_sd_entry *sd_entry; bool dma_mem_alloc_done = false; struct i40e_dma_mem mem; + i40e_status ret_code; u64 alloc_len; if (NULL == hmc_info->sd_table.sd_entry) { @@ -90,11 +89,9 @@ sd_entry->u.pd_table.pd_entry = (struct i40e_hmc_pd_entry *) sd_entry->u.pd_table.pd_entry_virt_mem.va; - memcpy(&sd_entry->u.pd_table.pd_page_addr, &mem, - sizeof(struct i40e_dma_mem)); + sd_entry->u.pd_table.pd_page_addr = mem; } else { - memcpy(&sd_entry->u.bp.addr, &mem, - sizeof(struct i40e_dma_mem)); + sd_entry->u.bp.addr = mem; sd_entry->u.bp.sd_pd_index = sd_index; } /* initialize the sd entry */ @@ -165,7 +162,7 @@ if (ret_code) goto exit; - memcpy(&pd_entry->bp.addr, &mem, sizeof(struct i40e_dma_mem)); + pd_entry->bp.addr = mem; pd_entry->bp.sd_pd_index = pd_index; pd_entry->bp.entry_type = I40E_SD_TYPE_PAGED; /* Set page address and valid bit */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_hmc.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_hmc.h @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -117,7 +116,6 @@ * @hw: pointer to our hw struct * @pa: pointer to physical address * @sd_index: segment descriptor index - * @hmc_fn_id: hmc function id * @type: if sd entry is direct or paged **/ #define I40E_SET_PF_SD_ENTRY(hw, pa, sd_index, type) \ @@ -139,7 +137,6 @@ * I40E_CLEAR_PF_SD_ENTRY - marks the sd entry as invalid in the hardware * @hw: pointer to our hw struct * @sd_index: segment descriptor index - * @hmc_fn_id: hmc function id * @type: if sd entry is direct or paged **/ #define I40E_CLEAR_PF_SD_ENTRY(hw, sd_index, type) \ @@ -160,7 +157,6 @@ * @hw: pointer to our hw struct * @sd_idx: segment descriptor index * @pd_idx: page descriptor index - * @hmc_fn_id: hmc function id **/ #define I40E_INVALIDATE_PF_HMC_PD(hw, sd_idx, pd_idx) \ wr32((hw), I40E_PFHMC_PDINV, \ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_lan_hmc.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_lan_hmc.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -486,8 +485,7 @@ /* Make one big object, a single SD */ info.count = 1; ret_code = i40e_create_lan_hmc_object(hw, &info); - if ((ret_code) && - (model == I40E_HMC_MODEL_DIRECT_PREFERRED)) + if (ret_code && (model == I40E_HMC_MODEL_DIRECT_PREFERRED)) goto try_type_paged; else if (ret_code) goto configure_lan_hmc_out; --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_lan_hmc.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_lan_hmc.h @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -113,8 +112,8 @@ #define I40E_HMC_L2OBJ_BASE_ALIGNMENT 512 #define I40E_HMC_OBJ_SIZE_TXQ 128 #define I40E_HMC_OBJ_SIZE_RXQ 32 -#define I40E_HMC_OBJ_SIZE_FCOE_CNTX 128 -#define I40E_HMC_OBJ_SIZE_FCOE_FILT 32 +#define I40E_HMC_OBJ_SIZE_FCOE_CNTX 64 +#define I40E_HMC_OBJ_SIZE_FCOE_FILT 64 enum i40e_hmc_lan_rsrc_type { I40E_HMC_LAN_FULL = 0, --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_main.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -27,6 +26,10 @@ /* Local includes */ #include "i40e.h" +#include "i40e_diag.h" +#ifdef CONFIG_I40E_VXLAN +#include +#endif const char i40e_driver_name[] = "i40e"; static const char i40e_driver_string[] = @@ -36,22 +39,24 @@ #define DRV_VERSION_MAJOR 0 #define DRV_VERSION_MINOR 3 -#define DRV_VERSION_BUILD 11 +#define DRV_VERSION_BUILD 36 #define DRV_VERSION __stringify(DRV_VERSION_MAJOR) "." \ __stringify(DRV_VERSION_MINOR) "." \ __stringify(DRV_VERSION_BUILD) DRV_KERN const char i40e_driver_version_str[] = DRV_VERSION; -static const char i40e_copyright[] = "Copyright (c) 2013 Intel Corporation."; +static const char i40e_copyright[] = "Copyright (c) 2013 - 2014 Intel Corporation."; /* a bit of forward declarations */ static void i40e_vsi_reinit_locked(struct i40e_vsi *vsi); static void i40e_handle_reset_warning(struct i40e_pf *pf); static int i40e_add_vsi(struct i40e_vsi *vsi); static int i40e_add_veb(struct i40e_veb *veb, struct i40e_vsi *vsi); -static int i40e_setup_pf_switch(struct i40e_pf *pf); +static int i40e_setup_pf_switch(struct i40e_pf *pf, bool reinit); static int i40e_setup_misc_vector(struct i40e_pf *pf); static void i40e_determine_queue_usage(struct i40e_pf *pf); static int i40e_setup_pf_filter_control(struct i40e_pf *pf); +static void i40e_fdir_sb_setup(struct i40e_pf *pf); +static int i40e_veb_get_bw_info(struct i40e_veb *veb); /* i40e_pci_tbl - PCI Device ID Table * @@ -61,16 +66,16 @@ * Class, Class Mask, private data (not used) } */ static DEFINE_PCI_DEVICE_TABLE(i40e_pci_tbl) = { - {PCI_VDEVICE(INTEL, I40E_SFP_XL710_DEVICE_ID), 0}, - {PCI_VDEVICE(INTEL, I40E_SFP_X710_DEVICE_ID), 0}, - {PCI_VDEVICE(INTEL, I40E_QEMU_DEVICE_ID), 0}, - {PCI_VDEVICE(INTEL, I40E_KX_A_DEVICE_ID), 0}, - {PCI_VDEVICE(INTEL, I40E_KX_B_DEVICE_ID), 0}, - {PCI_VDEVICE(INTEL, I40E_KX_C_DEVICE_ID), 0}, - {PCI_VDEVICE(INTEL, I40E_KX_D_DEVICE_ID), 0}, - {PCI_VDEVICE(INTEL, I40E_QSFP_A_DEVICE_ID), 0}, - {PCI_VDEVICE(INTEL, I40E_QSFP_B_DEVICE_ID), 0}, - {PCI_VDEVICE(INTEL, I40E_QSFP_C_DEVICE_ID), 0}, + {PCI_VDEVICE(INTEL, I40E_DEV_ID_SFP_XL710), 0}, + {PCI_VDEVICE(INTEL, I40E_DEV_ID_SFP_X710), 0}, + {PCI_VDEVICE(INTEL, I40E_DEV_ID_QEMU), 0}, + {PCI_VDEVICE(INTEL, I40E_DEV_ID_KX_A), 0}, + {PCI_VDEVICE(INTEL, I40E_DEV_ID_KX_B), 0}, + {PCI_VDEVICE(INTEL, I40E_DEV_ID_KX_C), 0}, + {PCI_VDEVICE(INTEL, I40E_DEV_ID_KX_D), 0}, + {PCI_VDEVICE(INTEL, I40E_DEV_ID_QSFP_A), 0}, + {PCI_VDEVICE(INTEL, I40E_DEV_ID_QSFP_B), 0}, + {PCI_VDEVICE(INTEL, I40E_DEV_ID_QSFP_C), 0}, /* required last entry */ {0, } }; @@ -301,6 +306,7 @@ break; default: netdev_err(netdev, "tx_timeout recovery unsuccessful\n"); + set_bit(__I40E_DOWN, &vsi->state); i40e_down(vsi); break; } @@ -354,7 +360,7 @@ struct rtnl_link_stats64 *vsi_stats = i40e_get_vsi_stats_struct(vsi); int i; - if (!vsi->tx_rings) + if (test_bit(__I40E_DOWN, &vsi->state)) return stats; rcu_read_lock(); @@ -368,20 +374,20 @@ continue; do { - start = u64_stats_fetch_begin_bh(&tx_ring->syncp); + start = u64_stats_fetch_begin_irq(&tx_ring->syncp); packets = tx_ring->stats.packets; bytes = tx_ring->stats.bytes; - } while (u64_stats_fetch_retry_bh(&tx_ring->syncp, start)); + } while (u64_stats_fetch_retry_irq(&tx_ring->syncp, start)); stats->tx_packets += packets; stats->tx_bytes += bytes; rx_ring = &tx_ring[1]; do { - start = u64_stats_fetch_begin_bh(&rx_ring->syncp); + start = u64_stats_fetch_begin_irq(&rx_ring->syncp); packets = rx_ring->stats.packets; bytes = rx_ring->stats.bytes; - } while (u64_stats_fetch_retry_bh(&rx_ring->syncp, start)); + } while (u64_stats_fetch_retry_irq(&rx_ring->syncp, start)); stats->rx_packets += packets; stats->rx_bytes += bytes; @@ -416,7 +422,7 @@ memset(&vsi->net_stats_offsets, 0, sizeof(vsi->net_stats_offsets)); memset(&vsi->eth_stats, 0, sizeof(vsi->eth_stats)); memset(&vsi->eth_stats_offsets, 0, sizeof(vsi->eth_stats_offsets)); - if (vsi->rx_rings) + if (vsi->rx_rings && vsi->rx_rings[0]) { for (i = 0; i < vsi->num_queue_pairs; i++) { memset(&vsi->rx_rings[i]->stats, 0 , sizeof(vsi->rx_rings[i]->stats)); @@ -427,6 +433,7 @@ memset(&vsi->tx_rings[i]->tx_stats, 0, sizeof(vsi->tx_rings[i]->tx_stats)); } + } vsi->stat_offsets_loaded = false; } @@ -461,7 +468,7 @@ { u64 new_data; - if (hw->device_id == I40E_QEMU_DEVICE_ID) { + if (hw->device_id == I40E_DEV_ID_QEMU) { new_data = rd32(hw, loreg); new_data |= ((u64)(rd32(hw, hireg) & 0xFFFF)) << 32; } else { @@ -577,10 +584,11 @@ i40e_stat_update32(hw, I40E_GLSW_TDPC(idx), veb->stat_offsets_loaded, &oes->tx_discards, &es->tx_discards); - i40e_stat_update32(hw, I40E_GLSW_RUPP(idx), - veb->stat_offsets_loaded, - &oes->rx_unknown_protocol, &es->rx_unknown_protocol); - + if (hw->revision_id > 0) + i40e_stat_update32(hw, I40E_GLSW_RUPP(idx), + veb->stat_offsets_loaded, + &oes->rx_unknown_protocol, + &es->rx_unknown_protocol); i40e_stat_update48(hw, I40E_GLSW_GORCH(idx), I40E_GLSW_GORCL(idx), veb->stat_offsets_loaded, &oes->rx_bytes, &es->rx_bytes); @@ -730,6 +738,7 @@ u32 rx_page, rx_buf; u64 rx_p, rx_b; u64 tx_p, tx_b; + u32 val; int i; u16 q; @@ -760,10 +769,10 @@ p = ACCESS_ONCE(vsi->tx_rings[q]); do { - start = u64_stats_fetch_begin_bh(&p->syncp); + start = u64_stats_fetch_begin_irq(&p->syncp); packets = p->stats.packets; bytes = p->stats.bytes; - } while (u64_stats_fetch_retry_bh(&p->syncp, start)); + } while (u64_stats_fetch_retry_irq(&p->syncp, start)); tx_b += bytes; tx_p += packets; tx_restart += p->tx_stats.restart_queue; @@ -772,14 +781,14 @@ /* Rx queue is part of the same block as Tx queue */ p = &p[1]; do { - start = u64_stats_fetch_begin_bh(&p->syncp); + start = u64_stats_fetch_begin_irq(&p->syncp); packets = p->stats.packets; bytes = p->stats.bytes; - } while (u64_stats_fetch_retry_bh(&p->syncp, start)); + } while (u64_stats_fetch_retry_irq(&p->syncp, start)); rx_b += bytes; rx_p += packets; - rx_buf += p->rx_stats.alloc_rx_buff_failed; - rx_page += p->rx_stats.alloc_rx_page_failed; + rx_buf += p->rx_stats.alloc_buff_failed; + rx_page += p->rx_stats.alloc_page_failed; } rcu_read_unlock(); vsi->tx_restart = tx_restart; @@ -962,6 +971,20 @@ i40e_stat_update32(hw, I40E_GLPRT_RJC(hw->port), pf->stat_offsets_loaded, &osd->rx_jabber, &nsd->rx_jabber); + + val = rd32(hw, I40E_PRTPM_EEE_STAT); + nsd->tx_lpi_status = + (val & I40E_PRTPM_EEE_STAT_TX_LPI_STATUS_MASK) >> + I40E_PRTPM_EEE_STAT_TX_LPI_STATUS_SHIFT; + nsd->rx_lpi_status = + (val & I40E_PRTPM_EEE_STAT_RX_LPI_STATUS_MASK) >> + I40E_PRTPM_EEE_STAT_RX_LPI_STATUS_SHIFT; + i40e_stat_update32(hw, I40E_PRTPM_TLPIC, + pf->stat_offsets_loaded, + &osd->tx_lpi_count, &nsd->tx_lpi_count); + i40e_stat_update32(hw, I40E_PRTPM_RLPIC, + pf->stat_offsets_loaded, + &osd->rx_lpi_count, &nsd->rx_lpi_count); } pf->stat_offsets_loaded = true; @@ -1065,7 +1088,7 @@ if (!i40e_find_filter(vsi, macaddr, f->vlan, is_vf, is_netdev)) { if (!i40e_add_filter(vsi, macaddr, f->vlan, - is_vf, is_netdev)) + is_vf, is_netdev)) return NULL; } } @@ -1207,6 +1230,10 @@ if (ether_addr_equal(netdev->dev_addr, addr->sa_data)) return 0; + if (test_bit(__I40E_DOWN, &vsi->back->state) || + test_bit(__I40E_RESET_RECOVERY_PENDING, &vsi->back->state)) + return -EADDRNOTAVAIL; + if (vsi->type == I40E_VSI_MAIN) { i40e_status ret; ret = i40e_aq_mac_address_write(&vsi->back->hw, @@ -1260,6 +1287,7 @@ u8 offset; u16 qmap; int i; + u16 num_tc_qps = 0; sections = I40E_AQ_VSI_PROP_QUEUE_MAP_VALID; offset = 0; @@ -1281,6 +1309,9 @@ vsi->tc_config.numtc = numtc; vsi->tc_config.enabled_tc = enabled_tc ? enabled_tc : 1; + /* Number of queues per enabled TC */ + num_tc_qps = rounddown_pow_of_two(vsi->alloc_queue_pairs/numtc); + num_tc_qps = min_t(int, num_tc_qps, I40E_MAX_QUEUES_PER_TC); /* Setup queue offset/count for all TCs for given VSI */ for (i = 0; i < I40E_MAX_TRAFFIC_CLASS; i++) { @@ -1288,30 +1319,25 @@ if (vsi->tc_config.enabled_tc & (1 << i)) { /* TC is enabled */ int pow, num_qps; - vsi->tc_config.tc_info[i].qoffset = offset; switch (vsi->type) { case I40E_VSI_MAIN: - if (i == 0) - qcount = pf->rss_size; - else - qcount = pf->num_tc_qps; - vsi->tc_config.tc_info[i].qcount = qcount; + qcount = min_t(int, pf->rss_size, num_tc_qps); break; case I40E_VSI_FDIR: case I40E_VSI_SRIOV: case I40E_VSI_VMDQ2: default: - qcount = vsi->alloc_queue_pairs; - vsi->tc_config.tc_info[i].qcount = qcount; + qcount = num_tc_qps; WARN_ON(i != 0); break; } + vsi->tc_config.tc_info[i].qoffset = offset; + vsi->tc_config.tc_info[i].qcount = qcount; /* find the power-of-2 of the number of queue pairs */ - num_qps = vsi->tc_config.tc_info[i].qcount; + num_qps = qcount; pow = 0; - while (num_qps && - ((1 << pow) < vsi->tc_config.tc_info[i].qcount)) { + while (num_qps && ((1 << pow) < qcount)) { pow++; num_qps >>= 1; } @@ -1321,7 +1347,7 @@ (offset << I40E_AQ_VSI_TC_QUE_OFFSET_SHIFT) | (pow << I40E_AQ_VSI_TC_QUE_NUMBER_SHIFT); - offset += vsi->tc_config.tc_info[i].qcount; + offset += qcount; } else { /* TC is not enabled so set the offset to * default queue and allocate one queue @@ -1497,11 +1523,6 @@ cpu_to_le16((u16)(f->vlan == I40E_VLAN_ANY ? 0 : f->vlan)); - /* vlan0 as wild card to allow packets from all vlans */ - if (f->vlan == I40E_VLAN_ANY || - (vsi->netdev && !(vsi->netdev->features & - NETIF_F_HW_VLAN_CTAG_FILTER))) - cmd_flags |= I40E_AQC_MACVLAN_DEL_IGNORE_VLAN; cmd_flags |= I40E_AQC_MACVLAN_DEL_PERFECT_MATCH; del_list[num_del].flags = cmd_flags; num_del++; @@ -1567,12 +1588,6 @@ add_list[num_add].queue_number = 0; cmd_flags |= I40E_AQC_MACVLAN_ADD_PERFECT_MATCH; - - /* vlan0 as wild card to allow packets from all vlans */ - if (f->vlan == I40E_VLAN_ANY || (vsi->netdev && - !(vsi->netdev->features & - NETIF_F_HW_VLAN_CTAG_FILTER))) - cmd_flags |= I40E_AQC_MACVLAN_ADD_IGNORE_VLAN; add_list[num_add].flags = cpu_to_le16(cmd_flags); num_add++; @@ -1638,6 +1653,13 @@ dev_info(&pf->pdev->dev, "set uni promisc failed, err %d, aq_err %d\n", aq_ret, pf->hw.aq.asq_last_status); + aq_ret = i40e_aq_set_vsi_broadcast(&vsi->back->hw, + vsi->seid, + cur_promisc, NULL); + if (aq_ret) + dev_info(&pf->pdev->dev, + "set brdcast promisc failed, err %d, aq_err %d\n", + aq_ret, pf->hw.aq.asq_last_status); } clear_bit(__I40E_CONFIG_BUSY, &vsi->state); @@ -1690,6 +1712,27 @@ } /** + * i40e_ioctl - Access the hwtstamp interface + * @netdev: network interface device structure + * @ifr: interface request data + * @cmd: ioctl command + **/ +int i40e_ioctl(struct net_device *netdev, struct ifreq *ifr, int cmd) +{ + struct i40e_netdev_priv *np = netdev_priv(netdev); + struct i40e_pf *pf = np->vsi->back; + + switch (cmd) { + case SIOCGHWTSTAMP: + return i40e_ptp_get_ts_config(pf, ifr); + case SIOCSHWTSTAMP: + return i40e_ptp_set_ts_config(pf, ifr); + default: + return -EOPNOTSUPP; + } +} + +/** * i40e_vlan_stripping_enable - Turn on vlan stripping for the VSI * @vsi: the vsi being adjusted **/ @@ -1771,7 +1814,6 @@ { struct i40e_mac_filter *f, *add_f; bool is_netdev, is_vf; - int ret; is_vf = (vsi->type == I40E_VSI_SRIOV); is_netdev = !!(vsi->netdev); @@ -1797,13 +1839,6 @@ } } - ret = i40e_sync_vsi_filters(vsi); - if (ret) { - dev_info(&vsi->back->pdev->dev, - "Could not sync filters for vid %d\n", vid); - return ret; - } - /* Now if we add a vlan tag, make sure to check if it is the first * tag (i.e. a "tag" -1 does exist) and if so replace the -1 "tag" * with 0, so we now accept untagged and specified tagged traffic @@ -1824,7 +1859,10 @@ return -ENOMEM; } } + } + /* Do not assume that I40E_VLAN_ANY should be reset to VLAN 0 */ + if (vid > 0 && !vsi->info.pvid) { list_for_each_entry(f, &vsi->mac_filter_list, list) { if (i40e_find_filter(vsi, f->macaddr, I40E_VLAN_ANY, is_vf, is_netdev)) { @@ -1840,10 +1878,13 @@ } } } - ret = i40e_sync_vsi_filters(vsi); } - return ret; + if (test_bit(__I40E_DOWN, &vsi->back->state) || + test_bit(__I40E_RESET_RECOVERY_PENDING, &vsi->back->state)) + return 0; + + return i40e_sync_vsi_filters(vsi); } /** @@ -1859,7 +1900,6 @@ struct i40e_mac_filter *f, *add_f; bool is_vf, is_netdev; int filter_count = 0; - int ret; is_vf = (vsi->type == I40E_VSI_SRIOV); is_netdev = !!(netdev); @@ -1870,12 +1910,6 @@ list_for_each_entry(f, &vsi->mac_filter_list, list) i40e_del_filter(vsi, f->macaddr, vid, is_vf, is_netdev); - ret = i40e_sync_vsi_filters(vsi); - if (ret) { - dev_info(&vsi->back->pdev->dev, "Could not sync filters\n"); - return ret; - } - /* go through all the filters for this VSI and if there is only * vid == 0 it means there are no other filters, so vid 0 must * be replaced with -1. This signifies that we should from now @@ -1918,6 +1952,10 @@ } } + if (test_bit(__I40E_DOWN, &vsi->back->state) || + test_bit(__I40E_RESET_RECOVERY_PENDING, &vsi->back->state)) + return 0; + return i40e_sync_vsi_filters(vsi); } @@ -1940,11 +1978,14 @@ netdev_info(netdev, "adding %pM vid=%d\n", netdev->dev_addr, vid); - /* If the network stack called us with vid = 0, we should - * indicate to i40e_vsi_add_vlan() that we want to receive - * any traffic (i.e. with any vlan tag, or untagged) + /* If the network stack called us with vid = 0 then + * it is asking to receive priority tagged packets with + * vlan id 0. Our HW receives them by default when configured + * to receive untagged packets so there is no need to add an + * extra filter for vlan 0 tagged packets. */ - ret = i40e_vsi_add_vlan(vsi, vid ? vid : I40E_VLAN_ANY); + if (vid) + ret = i40e_vsi_add_vlan(vsi, vid); if (!ret && (vid < VLAN_N_VID)) set_bit(vid, vsi->active_vlans); @@ -1957,7 +1998,7 @@ * @netdev: network interface to be adjusted * @vid: vlan id to be removed * - * net_device_ops implementation for adding vlan ids + * net_device_ops implementation for removing vlan ids **/ static int i40e_vlan_rx_kill_vid(struct net_device *netdev, __always_unused __be16 proto, u16 vid) @@ -2008,8 +2049,9 @@ vsi->info.valid_sections = cpu_to_le16(I40E_AQ_VSI_PROP_VLAN_VALID); vsi->info.pvid = cpu_to_le16(vid); - vsi->info.port_vlan_flags |= I40E_AQ_VSI_PVLAN_INSERT_PVID; - vsi->info.port_vlan_flags |= I40E_AQ_VSI_PVLAN_MODE_UNTAGGED; + vsi->info.port_vlan_flags = I40E_AQ_VSI_PVLAN_MODE_TAGGED | + I40E_AQ_VSI_PVLAN_INSERT_PVID | + I40E_AQ_VSI_PVLAN_EMOD_STR; ctxt.seid = vsi->seid; memcpy(&ctxt.info, &vsi->info, sizeof(vsi->info)); @@ -2032,8 +2074,9 @@ **/ void i40e_vsi_remove_pvid(struct i40e_vsi *vsi) { + i40e_vlan_stripping_disable(vsi); + vsi->info.pvid = 0; - i40e_vlan_rx_register(vsi->netdev, vsi->netdev->features); } /** @@ -2066,8 +2109,11 @@ { int i; + if (!vsi->tx_rings) + return; + for (i = 0; i < vsi->num_queue_pairs; i++) - if (vsi->tx_rings[i]->desc) + if (vsi->tx_rings[i] && vsi->tx_rings[i]->desc) i40e_free_tx_resources(vsi->tx_rings[i]); } @@ -2100,8 +2146,11 @@ { int i; + if (!vsi->rx_rings) + return; + for (i = 0; i < vsi->num_queue_pairs; i++) - if (vsi->rx_rings[i]->desc) + if (vsi->rx_rings[i] && vsi->rx_rings[i]->desc) i40e_free_rx_resources(vsi->rx_rings[i]); } @@ -2121,7 +2170,7 @@ u32 qtx_ctl = 0; /* some ATR related tx ring init */ - if (vsi->back->flags & I40E_FLAG_FDIR_ATR_ENABLED) { + if (vsi->back->flags & I40E_FLAG_FD_ATR_ENABLED) { ring->atr_sample_rate = vsi->back->atr_sample_rate; ring->atr_count = 0; } else { @@ -2130,6 +2179,7 @@ /* initialize XPS */ if (ring->q_vector && ring->netdev && + vsi->tc_config.numtc <= 1 && !test_and_set_bit(__I40E_TX_XPS_INIT_DONE, &ring->state)) netif_set_xps_queue(ring->netdev, &ring->q_vector->affinity_mask, @@ -2141,8 +2191,14 @@ tx_ctx.new_context = 1; tx_ctx.base = (ring->dma / 128); tx_ctx.qlen = ring->count; - tx_ctx.fd_ena = !!(vsi->back->flags & (I40E_FLAG_FDIR_ENABLED | - I40E_FLAG_FDIR_ATR_ENABLED)); + tx_ctx.fd_ena = !!(vsi->back->flags & (I40E_FLAG_FD_SB_ENABLED | + I40E_FLAG_FD_ATR_ENABLED)); + tx_ctx.timesync_ena = !!(vsi->back->flags & I40E_FLAG_PTP); + /* FDIR VSI tx ring can still use RS bit and writebacks */ + if (vsi->type != I40E_VSI_FDIR) + tx_ctx.head_wb_ena = 1; + tx_ctx.head_wb_addr = ring->dma + + (ring->count * sizeof(struct i40e_tx_desc)); /* As part of VSI creation/update, FW allocates certain * Tx arbitration queue sets for each TC enabled for @@ -2176,7 +2232,10 @@ } /* Now associate this queue with this PCI function */ - qtx_ctl = I40E_QTX_CTL_PF_QUEUE; + if (vsi->type == I40E_VSI_VMDQ2) + qtx_ctl = I40E_QTX_CTL_VM_QUEUE; + else + qtx_ctl = I40E_QTX_CTL_PF_QUEUE; qtx_ctl |= ((hw->pf_id << I40E_QTX_CTL_PF_INDX_SHIFT) & I40E_QTX_CTL_PF_INDX_MASK); wr32(hw, I40E_QTX_CTL(pf_q), qtx_ctl); @@ -2243,7 +2302,10 @@ rx_ctx.tphwdesc_ena = 1; rx_ctx.tphdata_ena = 1; rx_ctx.tphhead_ena = 1; - rx_ctx.lrxqthresh = 2; + if (hw->revision_id == 0) + rx_ctx.lrxqthresh = 0; + else + rx_ctx.lrxqthresh = 2; rx_ctx.crcstrip = 1; rx_ctx.l2tsel = 1; rx_ctx.showiv = 1; @@ -2380,6 +2442,28 @@ } /** + * i40e_fdir_filter_restore - Restore the Sideband Flow Director filters + * @vsi: Pointer to the targeted VSI + * + * This function replays the hlist on the hw where all the SB Flow Director + * filters were saved. + **/ +static void i40e_fdir_filter_restore(struct i40e_vsi *vsi) +{ + struct i40e_fdir_filter *filter; + struct i40e_pf *pf = vsi->back; + struct hlist_node *node; + + if (!(pf->flags & I40E_FLAG_FD_SB_ENABLED)) + return; + + hlist_for_each_entry_safe(filter, node, + &pf->fdir_filter_list, fdir_node) { + i40e_add_del_fdir(vsi, filter, true); + } +} + +/** * i40e_vsi_configure - Set up the VSI for action * @vsi: the VSI being configured **/ @@ -2477,6 +2561,7 @@ I40E_PFINT_ICR0_ENA_GRST_MASK | I40E_PFINT_ICR0_ENA_PCI_EXCEPTION_MASK | I40E_PFINT_ICR0_ENA_GPIO_MASK | + I40E_PFINT_ICR0_ENA_TIMESYNC_MASK | I40E_PFINT_ICR0_ENA_STORM_DETECT_MASK | I40E_PFINT_ICR0_ENA_HMC_ERR_MASK | I40E_PFINT_ICR0_ENA_VFLR_MASK | @@ -2485,8 +2570,8 @@ wr32(hw, I40E_PFINT_ICR0_ENA, val); /* SW_ITR_IDX = 0, but don't change INTENA */ - wr32(hw, I40E_PFINT_DYN_CTL0, I40E_PFINT_DYN_CTLN_SW_ITR_INDX_MASK | - I40E_PFINT_DYN_CTLN_INTENA_MSK_MASK); + wr32(hw, I40E_PFINT_DYN_CTL0, I40E_PFINT_DYN_CTL0_SW_ITR_INDX_MASK | + I40E_PFINT_DYN_CTL0_INTENA_MSK_MASK); /* OTHER_ITR_IDX = 0 */ wr32(hw, I40E_PFINT_STAT_CTL0, 0); @@ -2516,7 +2601,7 @@ /* FIRSTQ_INDX = 0, FIRSTQ_TYPE = 0 (rx) */ wr32(hw, I40E_PFINT_LNKLST0, 0); - /* Associate the queue pair to the vector and enable the q int */ + /* Associate the queue pair to the vector and enable the queue int */ val = I40E_QINT_RQCTL_CAUSE_ENA_MASK | (I40E_RX_ITR << I40E_QINT_RQCTL_ITR_INDX_SHIFT) | (I40E_QUEUE_TYPE_TX << I40E_QINT_TQCTL_NEXTQ_TYPE_SHIFT); @@ -2532,6 +2617,19 @@ } /** + * i40e_irq_dynamic_disable_icr0 - Disable default interrupt generation for icr0 + * @pf: board private structure + **/ +void i40e_irq_dynamic_disable_icr0(struct i40e_pf *pf) +{ + struct i40e_hw *hw = &pf->hw; + + wr32(hw, I40E_PFINT_DYN_CTL0, + I40E_ITR_NONE << I40E_PFINT_DYN_CTLN_ITR_INDX_SHIFT); + i40e_flush(hw); +} + +/** * i40e_irq_dynamic_enable_icr0 - Enable default interrupt generation for icr0 * @pf: board private structure **/ @@ -2584,23 +2682,6 @@ } /** - * i40e_fdir_clean_rings - Interrupt Handler for FDIR rings - * @irq: interrupt number - * @data: pointer to a q_vector - **/ -static irqreturn_t i40e_fdir_clean_rings(int irq, void *data) -{ - struct i40e_q_vector *q_vector = data; - - if (!q_vector->tx.ring && !q_vector->rx.ring) - return IRQ_HANDLED; - - pr_info("fdir ring cleaning needed\n"); - - return IRQ_HANDLED; -} - -/** * i40e_vsi_request_irq_msix - Initialize MSI-X interrupts * @vsi: the VSI being configured * @basename: name for the vector @@ -2740,20 +2821,21 @@ { struct i40e_pf *pf = (struct i40e_pf *)data; struct i40e_hw *hw = &pf->hw; + irqreturn_t ret = IRQ_NONE; u32 icr0, icr0_remaining; u32 val, ena_mask; icr0 = rd32(hw, I40E_PFINT_ICR0); - - val = rd32(hw, I40E_PFINT_DYN_CTL0); - val = val | I40E_PFINT_DYN_CTL0_CLEARPBA_MASK; - wr32(hw, I40E_PFINT_DYN_CTL0, val); + ena_mask = rd32(hw, I40E_PFINT_ICR0_ENA); /* if sharing a legacy IRQ, we might get called w/o an intr pending */ if ((icr0 & I40E_PFINT_ICR0_INTEVENT_MASK) == 0) - return IRQ_NONE; + goto enable_intr; - ena_mask = rd32(hw, I40E_PFINT_ICR0_ENA); + /* if interrupt but no bits showing, must be SWINT */ + if (((icr0 & ~I40E_PFINT_ICR0_INTEVENT_MASK) == 0) || + (icr0 & I40E_PFINT_ICR0_SWINT_MASK)) + pf->sw_int_count++; /* only q0 is used in MSI/Legacy mode, and none are used in MSIX */ if (icr0 & I40E_PFINT_ICR0_QUEUE_0_MASK) { @@ -2793,12 +2875,28 @@ val = rd32(hw, I40E_GLGEN_RSTAT); val = (val & I40E_GLGEN_RSTAT_RESET_TYPE_MASK) >> I40E_GLGEN_RSTAT_RESET_TYPE_SHIFT; - if (val & I40E_RESET_CORER) + if (val == I40E_RESET_CORER) { pf->corer_count++; - else if (val & I40E_RESET_GLOBR) + } else if (val == I40E_RESET_GLOBR) { pf->globr_count++; - else if (val & I40E_RESET_EMPR) + } else if (val == I40E_RESET_EMPR) { pf->empr_count++; + set_bit(__I40E_EMP_RESET_REQUESTED, &pf->state); + } + } + + if (icr0 & I40E_PFINT_ICR0_HMC_ERR_MASK) { + icr0 &= ~I40E_PFINT_ICR0_HMC_ERR_MASK; + dev_info(&pf->pdev->dev, "HMC error interrupt\n"); + } + + if (icr0 & I40E_PFINT_ICR0_TIMESYNC_MASK) { + u32 prttsyn_stat = rd32(hw, I40E_PRTTSYN_STAT_0); + + if (prttsyn_stat & I40E_PRTTSYN_STAT_0_TXTIME_MASK) { + icr0 &= ~I40E_PFINT_ICR0_ENA_TIMESYNC_MASK; + i40e_ptp_tx_hwtstamp(pf); + } } /* If a critical error is pending we have no choice but to reset the @@ -2809,22 +2907,18 @@ if (icr0_remaining) { dev_info(&pf->pdev->dev, "unhandled interrupt icr0=0x%08x\n", icr0_remaining); - if ((icr0_remaining & I40E_PFINT_ICR0_HMC_ERR_MASK) || - (icr0_remaining & I40E_PFINT_ICR0_PE_CRITERR_MASK) || + if ((icr0_remaining & I40E_PFINT_ICR0_PE_CRITERR_MASK) || (icr0_remaining & I40E_PFINT_ICR0_PCI_EXCEPTION_MASK) || - (icr0_remaining & I40E_PFINT_ICR0_ECC_ERR_MASK) || - (icr0_remaining & I40E_PFINT_ICR0_MAL_DETECT_MASK)) { - if (icr0 & I40E_PFINT_ICR0_HMC_ERR_MASK) { - dev_info(&pf->pdev->dev, "HMC error interrupt\n"); - } else { - dev_info(&pf->pdev->dev, "device will be reset\n"); - set_bit(__I40E_PF_RESET_REQUESTED, &pf->state); - i40e_service_event_schedule(pf); - } + (icr0_remaining & I40E_PFINT_ICR0_ECC_ERR_MASK)) { + dev_info(&pf->pdev->dev, "device will be reset\n"); + set_bit(__I40E_PF_RESET_REQUESTED, &pf->state); + i40e_service_event_schedule(pf); } ena_mask &= ~icr0_remaining; } + ret = IRQ_HANDLED; +enable_intr: /* re-enable interrupt causes */ wr32(hw, I40E_PFINT_ICR0_ENA, ena_mask); if (!test_bit(__I40E_DOWN, &pf->state)) { @@ -2832,6 +2926,94 @@ i40e_irq_dynamic_enable_icr0(pf); } + return ret; +} + +/** + * i40e_clean_fdir_tx_irq - Reclaim resources after transmit completes + * @tx_ring: tx ring to clean + * @budget: how many cleans we're allowed + * + * Returns true if there's any budget left (e.g. the clean is finished) + **/ +static bool i40e_clean_fdir_tx_irq(struct i40e_ring *tx_ring, int budget) +{ + struct i40e_vsi *vsi = tx_ring->vsi; + u16 i = tx_ring->next_to_clean; + struct i40e_tx_buffer *tx_buf; + struct i40e_tx_desc *tx_desc; + + tx_buf = &tx_ring->tx_bi[i]; + tx_desc = I40E_TX_DESC(tx_ring, i); + i -= tx_ring->count; + + do { + struct i40e_tx_desc *eop_desc = tx_buf->next_to_watch; + + /* if next_to_watch is not set then there is no work pending */ + if (!eop_desc) + break; + + /* prevent any other reads prior to eop_desc */ + read_barrier_depends(); + + /* if the descriptor isn't done, no work yet to do */ + if (!(eop_desc->cmd_type_offset_bsz & + cpu_to_le64(I40E_TX_DESC_DTYPE_DESC_DONE))) + break; + + /* clear next_to_watch to prevent false hangs */ + tx_buf->next_to_watch = NULL; + + /* unmap skb header data */ + dma_unmap_single(tx_ring->dev, + dma_unmap_addr(tx_buf, dma), + dma_unmap_len(tx_buf, len), + DMA_TO_DEVICE); + + dma_unmap_len_set(tx_buf, len, 0); + + + /* move to the next desc and buffer to clean */ + tx_buf++; + tx_desc++; + i++; + if (unlikely(!i)) { + i -= tx_ring->count; + tx_buf = tx_ring->tx_bi; + tx_desc = I40E_TX_DESC(tx_ring, 0); + } + + /* update budget accounting */ + budget--; + } while (likely(budget)); + + i += tx_ring->count; + tx_ring->next_to_clean = i; + + if (vsi->back->flags & I40E_FLAG_MSIX_ENABLED) { + i40e_irq_dynamic_enable(vsi, + tx_ring->q_vector->v_idx + vsi->base_vector); + } + return budget > 0; +} + +/** + * i40e_fdir_clean_ring - Interrupt Handler for FDIR SB ring + * @irq: interrupt number + * @data: pointer to a q_vector + **/ +static irqreturn_t i40e_fdir_clean_ring(int irq, void *data) +{ + struct i40e_q_vector *q_vector = data; + struct i40e_vsi *vsi; + + if (!q_vector->tx.ring) + return IRQ_HANDLED; + + vsi = q_vector->tx.ring->vsi; + i40e_clean_fdir_tx_irq(q_vector->tx.ring, vsi->work_limit); + return IRQ_HANDLED; } @@ -2967,35 +3149,26 @@ pf_q = vsi->base_queue; for (i = 0; i < vsi->num_queue_pairs; i++, pf_q++) { - j = 1000; - do { - usleep_range(1000, 2000); + for (j = 0; j < 50; j++) { tx_reg = rd32(hw, I40E_QTX_ENA(pf_q)); - } while (j-- && ((tx_reg >> I40E_QTX_ENA_QENA_REQ_SHIFT) - ^ (tx_reg >> I40E_QTX_ENA_QENA_STAT_SHIFT)) & 1); - - if (enable) { - /* is STAT set ? */ - if ((tx_reg & I40E_QTX_ENA_QENA_STAT_MASK)) { - dev_info(&pf->pdev->dev, - "Tx %d already enabled\n", i); - continue; - } - } else { - /* is !STAT set ? */ - if (!(tx_reg & I40E_QTX_ENA_QENA_STAT_MASK)) { - dev_info(&pf->pdev->dev, - "Tx %d already disabled\n", i); - continue; - } + if (((tx_reg >> I40E_QTX_ENA_QENA_REQ_SHIFT) & 1) == + ((tx_reg >> I40E_QTX_ENA_QENA_STAT_SHIFT) & 1)) + break; + usleep_range(1000, 2000); } + /* Skip if the queue is already in the requested state */ + if (enable && (tx_reg & I40E_QTX_ENA_QENA_STAT_MASK)) + continue; + if (!enable && !(tx_reg & I40E_QTX_ENA_QENA_STAT_MASK)) + continue; /* turn on/off the queue */ - if (enable) - tx_reg |= I40E_QTX_ENA_QENA_REQ_MASK | - I40E_QTX_ENA_QENA_STAT_MASK; - else + if (enable) { + wr32(hw, I40E_QTX_HEAD(pf_q), 0); + tx_reg |= I40E_QTX_ENA_QENA_REQ_MASK; + } else { tx_reg &= ~I40E_QTX_ENA_QENA_REQ_MASK; + } wr32(hw, I40E_QTX_ENA(pf_q), tx_reg); @@ -3019,6 +3192,9 @@ } } + if (hw->revision_id == 0) + mdelay(50); + return 0; } @@ -3036,12 +3212,13 @@ pf_q = vsi->base_queue; for (i = 0; i < vsi->num_queue_pairs; i++, pf_q++) { - j = 1000; - do { - usleep_range(1000, 2000); + for (j = 0; j < 50; j++) { rx_reg = rd32(hw, I40E_QRX_ENA(pf_q)); - } while (j-- && ((rx_reg >> I40E_QRX_ENA_QENA_REQ_SHIFT) - ^ (rx_reg >> I40E_QRX_ENA_QENA_STAT_SHIFT)) & 1); + if (((rx_reg >> I40E_QRX_ENA_QENA_REQ_SHIFT) & 1) == + ((rx_reg >> I40E_QRX_ENA_QENA_STAT_SHIFT) & 1)) + break; + usleep_range(1000, 2000); + } if (enable) { /* is STAT set ? */ @@ -3055,11 +3232,9 @@ /* turn on/off the queue */ if (enable) - rx_reg |= I40E_QRX_ENA_QENA_REQ_MASK | - I40E_QRX_ENA_QENA_STAT_MASK; + rx_reg |= I40E_QRX_ENA_QENA_REQ_MASK; else - rx_reg &= ~(I40E_QRX_ENA_QENA_REQ_MASK | - I40E_QRX_ENA_QENA_STAT_MASK); + rx_reg &= ~I40E_QRX_ENA_QENA_REQ_MASK; wr32(hw, I40E_QRX_ENA(pf_q), rx_reg); /* wait for the change to finish */ @@ -3091,9 +3266,9 @@ * @vsi: the VSI being configured * @enable: start or stop the rings **/ -static int i40e_vsi_control_rings(struct i40e_vsi *vsi, bool request) +int i40e_vsi_control_rings(struct i40e_vsi *vsi, bool request) { - int ret; + int ret = 0; /* do rx first for enable and last for disable */ if (request) { @@ -3102,10 +3277,9 @@ return ret; ret = i40e_vsi_control_tx(vsi, request); } else { - ret = i40e_vsi_control_tx(vsi, request); - if (ret) - return ret; - ret = i40e_vsi_control_rx(vsi, request); + /* Ignore return value, we need to shutdown whatever we can */ + i40e_vsi_control_tx(vsi, request); + i40e_vsi_control_rx(vsi, request); } return ret; @@ -3131,7 +3305,8 @@ u16 vector = i + base; /* free only the irqs that were actually requested */ - if (vsi->q_vectors[i]->num_ringpairs == 0) + if (!vsi->q_vectors[i] || + !vsi->q_vectors[i]->num_ringpairs) continue; /* clear the affinity_mask in the IRQ descriptor */ @@ -3543,7 +3718,7 @@ /* Get the VSI level BW configuration per TC */ aq_ret = i40e_aq_query_vsi_ets_sla_config(hw, vsi->seid, &bw_ets_config, - NULL); + NULL); if (aq_ret) { dev_info(&pf->pdev->dev, "couldn't get pf vsi ets bw config, err %d, aq_err %d\n", @@ -3597,8 +3772,8 @@ NULL); if (aq_ret) { dev_info(&vsi->back->pdev->dev, - "%s: AQ command Config VSI BW allocation per TC failed = %d\n", - __func__, vsi->back->hw.aq.asq_last_status); + "AQ command Config VSI BW allocation per TC failed = %d\n", + vsi->back->hw.aq.asq_last_status); return -EINVAL; } @@ -3754,6 +3929,149 @@ } /** + * i40e_veb_config_tc - Configure TCs for given VEB + * @veb: given VEB + * @enabled_tc: TC bitmap + * + * Configures given TC bitmap for VEB (switching) element + **/ +int i40e_veb_config_tc(struct i40e_veb *veb, u8 enabled_tc) +{ + struct i40e_aqc_configure_switching_comp_bw_config_data bw_data = {0}; + struct i40e_pf *pf = veb->pf; + int ret = 0; + int i; + + /* No TCs or already enabled TCs just return */ + if (!enabled_tc || veb->enabled_tc == enabled_tc) + return ret; + + bw_data.tc_valid_bits = enabled_tc; + /* bw_data.absolute_credits is not set (relative) */ + + /* Enable ETS TCs with equal BW Share for now */ + for (i = 0; i < I40E_MAX_TRAFFIC_CLASS; i++) { + if (enabled_tc & (1 << i)) + bw_data.tc_bw_share_credits[i] = 1; + } + + ret = i40e_aq_config_switch_comp_bw_config(&pf->hw, veb->seid, + &bw_data, NULL); + if (ret) { + dev_info(&pf->pdev->dev, + "veb bw config failed, aq_err=%d\n", + pf->hw.aq.asq_last_status); + goto out; + } + + /* Update the BW information */ + ret = i40e_veb_get_bw_info(veb); + if (ret) { + dev_info(&pf->pdev->dev, + "Failed getting veb bw config, aq_err=%d\n", + pf->hw.aq.asq_last_status); + } + +out: + return ret; +} + +#ifdef CONFIG_I40E_DCB +/** + * i40e_dcb_reconfigure - Reconfigure all VEBs and VSIs + * @pf: PF struct + * + * Reconfigure VEB/VSIs on a given PF; it is assumed that + * the caller would've quiesce all the VSIs before calling + * this function + **/ +static void i40e_dcb_reconfigure(struct i40e_pf *pf) +{ + u8 tc_map = 0; + int ret; + u8 v; + + /* Enable the TCs available on PF to all VEBs */ + tc_map = i40e_pf_get_tc_map(pf); + for (v = 0; v < I40E_MAX_VEB; v++) { + if (!pf->veb[v]) + continue; + ret = i40e_veb_config_tc(pf->veb[v], tc_map); + if (ret) { + dev_info(&pf->pdev->dev, + "Failed configuring TC for VEB seid=%d\n", + pf->veb[v]->seid); + /* Will try to configure as many components */ + } + } + + /* Update each VSI */ + for (v = 0; v < pf->hw.func_caps.num_vsis; v++) { + if (!pf->vsi[v]) + continue; + + /* - Enable all TCs for the LAN VSI + * - For all others keep them at TC0 for now + */ + if (v == pf->lan_vsi) + tc_map = i40e_pf_get_tc_map(pf); + else + tc_map = i40e_pf_get_default_tc(pf); + + ret = i40e_vsi_config_tc(pf->vsi[v], tc_map); + if (ret) { + dev_info(&pf->pdev->dev, + "Failed configuring TC for VSI seid=%d\n", + pf->vsi[v]->seid); + /* Will try to configure as many components */ + } else { + if (pf->vsi[v]->netdev) + i40e_dcbnl_set_all(pf->vsi[v]); + } + } +} + +/** + * i40e_init_pf_dcb - Initialize DCB configuration + * @pf: PF being configured + * + * Query the current DCB configuration and cache it + * in the hardware structure + **/ +static int i40e_init_pf_dcb(struct i40e_pf *pf) +{ + struct i40e_hw *hw = &pf->hw; + int err = 0; + + if (pf->hw.func_caps.npar_enable) + goto out; + + /* Get the initial DCB configuration */ + err = i40e_init_dcb(hw); + if (!err) { + /* Device/Function is not DCBX capable */ + if ((!hw->func_caps.dcb) || + (hw->dcbx_status == I40E_DCBX_STATUS_DISABLED)) { + dev_info(&pf->pdev->dev, + "DCBX offload is not supported or is disabled for this PF.\n"); + + if (pf->flags & I40E_FLAG_MFP_ENABLED) + goto out; + + } else { + /* When status is not DISABLED then DCBX in FW */ + pf->dcbx_cap = DCB_CAP_DCBX_LLD_MANAGED | + DCB_CAP_DCBX_VER_IEEE; + pf->flags |= I40E_FLAG_DCB_ENABLED; + } + } + +out: + return err; +} +#endif /* CONFIG_I40E_DCB */ + +/** * i40e_up_complete - Finish the last steps of bringing up a connection * @vsi: the VSI being configured **/ @@ -3784,6 +4102,10 @@ } else if (vsi->netdev) { netdev_info(vsi->netdev, "NIC Link is Down\n"); } + + /* replay FDIR SB filters */ + if (vsi->type == I40E_VSI_FDIR) + i40e_fdir_filter_restore(vsi); i40e_service_event_schedule(pf); return 0; @@ -3930,17 +4252,50 @@ struct i40e_netdev_priv *np = netdev_priv(netdev); struct i40e_vsi *vsi = np->vsi; struct i40e_pf *pf = vsi->back; - char int_name[IFNAMSIZ]; int err; - /* disallow open during test */ - if (test_bit(__I40E_TESTING, &pf->state)) + /* disallow open during test or if eeprom is broken */ + if (test_bit(__I40E_TESTING, &pf->state) || + test_bit(__I40E_BAD_EEPROM, &pf->state)) return -EBUSY; netif_carrier_off(netdev); - /* allocate descriptors */ - err = i40e_vsi_setup_tx_resources(vsi); + err = i40e_vsi_open(vsi); + if (err) + return err; + + /* configure global TSO hardware offload settings */ + wr32(&pf->hw, I40E_GLLAN_TSOMSK_F, be32_to_cpu(TCP_FLAG_PSH | + TCP_FLAG_FIN) >> 16); + wr32(&pf->hw, I40E_GLLAN_TSOMSK_M, be32_to_cpu(TCP_FLAG_PSH | + TCP_FLAG_FIN | + TCP_FLAG_CWR) >> 16); + wr32(&pf->hw, I40E_GLLAN_TSOMSK_L, be32_to_cpu(TCP_FLAG_CWR) >> 16); + +#ifdef CONFIG_I40E_VXLAN + vxlan_get_rx_port(netdev); +#endif + + return 0; +} + +/** + * i40e_vsi_open - + * @vsi: the VSI to open + * + * Finish initialization of the VSI. + * + * Returns 0 on success, negative value on failure + **/ +int i40e_vsi_open(struct i40e_vsi *vsi) +{ + struct i40e_pf *pf = vsi->back; + char int_name[IFNAMSIZ]; + int err; + + /* allocate descriptors */ + err = i40e_vsi_setup_tx_resources(vsi); if (err) goto err_setup_tx; err = i40e_vsi_setup_rx_resources(vsi); @@ -3951,28 +4306,34 @@ if (err) goto err_setup_rx; + if (!vsi->netdev) { + err = EINVAL; + goto err_setup_rx; + } snprintf(int_name, sizeof(int_name) - 1, "%s-%s", - dev_driver_string(&pf->pdev->dev), netdev->name); + dev_driver_string(&pf->pdev->dev), vsi->netdev->name); err = i40e_vsi_request_irq(vsi, int_name); if (err) goto err_setup_rx; + /* Notify the stack of the actual queue counts. */ + err = netif_set_real_num_tx_queues(vsi->netdev, vsi->num_queue_pairs); + if (err) + goto err_set_queues; + + err = netif_set_real_num_rx_queues(vsi->netdev, vsi->num_queue_pairs); + if (err) + goto err_set_queues; + err = i40e_up_complete(vsi); if (err) goto err_up_complete; - if ((vsi->type == I40E_VSI_MAIN) || (vsi->type == I40E_VSI_VMDQ2)) { - err = i40e_aq_set_vsi_broadcast(&pf->hw, vsi->seid, true, NULL); - if (err) - netdev_info(netdev, - "couldn't set broadcast err %d aq_err %d\n", - err, pf->hw.aq.asq_last_status); - } - return 0; err_up_complete: i40e_down(vsi); +err_set_queues: i40e_vsi_free_irq(vsi); err_setup_rx: i40e_vsi_free_rx_resources(vsi); @@ -3985,6 +4346,26 @@ } /** + * i40e_fdir_filter_exit - Cleans up the Flow Director accounting + * @pf: Pointer to pf + * + * This function destroys the hlist where all the Flow Director + * filters were saved. + **/ +static void i40e_fdir_filter_exit(struct i40e_pf *pf) +{ + struct i40e_fdir_filter *filter; + struct hlist_node *node2; + + hlist_for_each_entry_safe(filter, node2, + &pf->fdir_filter_list, fdir_node) { + hlist_del(&filter->fdir_node); + kfree(filter); + } + pf->fdir_pf_active_filters = 0; +} + +/** * i40e_close - Disables a network interface * @netdev: network interface device structure * @@ -4037,7 +4418,7 @@ * for the warning interrupt will deal with the shutdown * and recovery of the switch setup. */ - dev_info(&pf->pdev->dev, "GlobalR requested\n"); + dev_dbg(&pf->pdev->dev, "GlobalR requested\n"); val = rd32(&pf->hw, I40E_GLGEN_RTRIG); val |= I40E_GLGEN_RTRIG_GLOBR_MASK; wr32(&pf->hw, I40E_GLGEN_RTRIG, val); @@ -4048,12 +4429,30 @@ * * Same as Global Reset, except does *not* include the MAC/PHY */ - dev_info(&pf->pdev->dev, "CoreR requested\n"); + dev_dbg(&pf->pdev->dev, "CoreR requested\n"); val = rd32(&pf->hw, I40E_GLGEN_RTRIG); val |= I40E_GLGEN_RTRIG_CORER_MASK; wr32(&pf->hw, I40E_GLGEN_RTRIG, val); i40e_flush(&pf->hw); + } else if (reset_flags & (1 << __I40E_EMP_RESET_REQUESTED)) { + + /* Request a Firmware Reset + * + * Same as Global reset, plus restarting the + * embedded firmware engine. + */ + /* enable EMP Reset */ + val = rd32(&pf->hw, I40E_GLGEN_RSTENA_EMP); + val |= I40E_GLGEN_RSTENA_EMP_EMP_RST_ENA_MASK; + wr32(&pf->hw, I40E_GLGEN_RSTENA_EMP, val); + + /* force the reset */ + val = rd32(&pf->hw, I40E_GLGEN_RTRIG); + val |= I40E_GLGEN_RTRIG_EMPFWR_MASK; + wr32(&pf->hw, I40E_GLGEN_RTRIG, val); + i40e_flush(&pf->hw); + } else if (reset_flags & (1 << __I40E_PF_RESET_REQUESTED)) { /* Request a PF Reset @@ -4064,7 +4463,7 @@ * the switch, since we need to do all the recovery as * for the Core Reset. */ - dev_info(&pf->pdev->dev, "PFR requested\n"); + dev_dbg(&pf->pdev->dev, "PFR requested\n"); i40e_handle_reset_warning(pf); } else if (reset_flags & (1 << __I40E_REINIT_REQUESTED)) { @@ -4091,6 +4490,144 @@ } } +#ifdef CONFIG_I40E_DCB +/** + * i40e_dcb_need_reconfig - Check if DCB needs reconfig + * @pf: board private structure + * @old_cfg: current DCB config + * @new_cfg: new DCB config + **/ +bool i40e_dcb_need_reconfig(struct i40e_pf *pf, + struct i40e_dcbx_config *old_cfg, + struct i40e_dcbx_config *new_cfg) +{ + bool need_reconfig = false; + + /* Check if ETS configuration has changed */ + if (memcmp(&new_cfg->etscfg, + &old_cfg->etscfg, + sizeof(new_cfg->etscfg))) { + /* If Priority Table has changed reconfig is needed */ + if (memcmp(&new_cfg->etscfg.prioritytable, + &old_cfg->etscfg.prioritytable, + sizeof(new_cfg->etscfg.prioritytable))) { + need_reconfig = true; + dev_dbg(&pf->pdev->dev, "ETS UP2TC changed.\n"); + } + + if (memcmp(&new_cfg->etscfg.tcbwtable, + &old_cfg->etscfg.tcbwtable, + sizeof(new_cfg->etscfg.tcbwtable))) + dev_dbg(&pf->pdev->dev, "ETS TC BW Table changed.\n"); + + if (memcmp(&new_cfg->etscfg.tsatable, + &old_cfg->etscfg.tsatable, + sizeof(new_cfg->etscfg.tsatable))) + dev_dbg(&pf->pdev->dev, "ETS TSA Table changed.\n"); + } + + /* Check if PFC configuration has changed */ + if (memcmp(&new_cfg->pfc, + &old_cfg->pfc, + sizeof(new_cfg->pfc))) { + need_reconfig = true; + dev_dbg(&pf->pdev->dev, "PFC config change detected.\n"); + } + + /* Check if APP Table has changed */ + if (memcmp(&new_cfg->app, + &old_cfg->app, + sizeof(new_cfg->app))) { + need_reconfig = true; + dev_dbg(&pf->pdev->dev, "APP Table change detected.\n"); + } + + return need_reconfig; +} + +/** + * i40e_handle_lldp_event - Handle LLDP Change MIB event + * @pf: board private structure + * @e: event info posted on ARQ + **/ +static int i40e_handle_lldp_event(struct i40e_pf *pf, + struct i40e_arq_event_info *e) +{ + struct i40e_aqc_lldp_get_mib *mib = + (struct i40e_aqc_lldp_get_mib *)&e->desc.params.raw; + struct i40e_hw *hw = &pf->hw; + struct i40e_dcbx_config *dcbx_cfg = &hw->local_dcbx_config; + struct i40e_dcbx_config tmp_dcbx_cfg; + bool need_reconfig = false; + int ret = 0; + u8 type; + + /* Ignore if event is not for Nearest Bridge */ + type = ((mib->type >> I40E_AQ_LLDP_BRIDGE_TYPE_SHIFT) + & I40E_AQ_LLDP_BRIDGE_TYPE_MASK); + if (type != I40E_AQ_LLDP_BRIDGE_TYPE_NEAREST_BRIDGE) + return ret; + + /* Check MIB Type and return if event for Remote MIB update */ + type = mib->type & I40E_AQ_LLDP_MIB_TYPE_MASK; + if (type == I40E_AQ_LLDP_MIB_REMOTE) { + /* Update the remote cached instance and return */ + ret = i40e_aq_get_dcb_config(hw, I40E_AQ_LLDP_MIB_REMOTE, + I40E_AQ_LLDP_BRIDGE_TYPE_NEAREST_BRIDGE, + &hw->remote_dcbx_config); + goto exit; + } + + /* Convert/store the DCBX data from LLDPDU temporarily */ + memset(&tmp_dcbx_cfg, 0, sizeof(tmp_dcbx_cfg)); + ret = i40e_lldp_to_dcb_config(e->msg_buf, &tmp_dcbx_cfg); + if (ret) { + /* Error in LLDPDU parsing return */ + dev_info(&pf->pdev->dev, "Failed parsing LLDPDU from event buffer\n"); + goto exit; + } + + /* No change detected in DCBX configs */ + if (!memcmp(&tmp_dcbx_cfg, dcbx_cfg, sizeof(tmp_dcbx_cfg))) { + dev_dbg(&pf->pdev->dev, "No change detected in DCBX configuration.\n"); + goto exit; + } + + need_reconfig = i40e_dcb_need_reconfig(pf, dcbx_cfg, &tmp_dcbx_cfg); + + i40e_dcbnl_flush_apps(pf, &tmp_dcbx_cfg); + + /* Overwrite the new configuration */ + *dcbx_cfg = tmp_dcbx_cfg; + + if (!need_reconfig) + goto exit; + + /* Reconfiguration needed quiesce all VSIs */ + i40e_pf_quiesce_all_vsi(pf); + + /* Changes in configuration update VEB/VSI */ + i40e_dcb_reconfigure(pf); + + i40e_pf_unquiesce_all_vsi(pf); +exit: + return ret; +} +#endif /* CONFIG_I40E_DCB */ + +/** + * i40e_do_reset_safe - Protected reset path for userland calls. + * @pf: board private structure + * @reset_flags: which reset is requested + * + **/ +void i40e_do_reset_safe(struct i40e_pf *pf, u32 reset_flags) +{ + rtnl_lock(); + i40e_do_reset(pf, reset_flags); + rtnl_unlock(); +} + /** * i40e_handle_lan_overflow_event - Handler for LAN queue overflow event * @pf: board private structure @@ -4110,8 +4647,8 @@ struct i40e_vf *vf; u16 vf_id; - dev_info(&pf->pdev->dev, "%s: Rx Queue Number = %d QTX_CTL=0x%08x\n", - __func__, queue, qtx_ctl); + dev_dbg(&pf->pdev->dev, "overflow Rx Queue Number = %d QTX_CTL=0x%08x\n", + queue, qtx_ctl); /* Queue belongs to VF, find the VF and issue VF reset */ if (((qtx_ctl & I40E_QTX_CTL_PFVF_Q_MASK) @@ -4141,6 +4678,54 @@ } /** + * i40e_get_current_fd_count - Get the count of FD filters programmed in the HW + * @pf: board private structure + **/ +int i40e_get_current_fd_count(struct i40e_pf *pf) +{ + int val, fcnt_prog; + val = rd32(&pf->hw, I40E_PFQF_FDSTAT); + fcnt_prog = (val & I40E_PFQF_FDSTAT_GUARANT_CNT_MASK) + + ((val & I40E_PFQF_FDSTAT_BEST_CNT_MASK) >> + I40E_PFQF_FDSTAT_BEST_CNT_SHIFT); + return fcnt_prog; +} + +/** + * i40e_fdir_check_and_reenable - Function to reenabe FD ATR or SB if disabled + * @pf: board private structure + **/ +void i40e_fdir_check_and_reenable(struct i40e_pf *pf) +{ + u32 fcnt_prog, fcnt_avail; + + /* Check if, FD SB or ATR was auto disabled and if there is enough room + * to re-enable + */ + if ((pf->flags & I40E_FLAG_FD_ATR_ENABLED) && + (pf->flags & I40E_FLAG_FD_SB_ENABLED)) + return; + fcnt_prog = i40e_get_current_fd_count(pf); + fcnt_avail = pf->hw.fdir_shared_filter_count + + pf->fdir_pf_filter_count; + if (fcnt_prog < (fcnt_avail - I40E_FDIR_BUFFER_HEAD_ROOM)) { + if ((pf->flags & I40E_FLAG_FD_SB_ENABLED) && + (pf->auto_disable_flags & I40E_FLAG_FD_SB_ENABLED)) { + pf->auto_disable_flags &= ~I40E_FLAG_FD_SB_ENABLED; + dev_info(&pf->pdev->dev, "FD Sideband/ntuple is being enabled since we have space in the table now\n"); + } + } + /* Wait for some more space to be available to turn on ATR */ + if (fcnt_prog < (fcnt_avail - I40E_FDIR_BUFFER_HEAD_ROOM * 2)) { + if ((pf->flags & I40E_FLAG_FD_ATR_ENABLED) && + (pf->auto_disable_flags & I40E_FLAG_FD_ATR_ENABLED)) { + pf->auto_disable_flags &= ~I40E_FLAG_FD_ATR_ENABLED; + dev_info(&pf->pdev->dev, "ATR is being enabled since we have space in the table now\n"); + } + } +} + +/** * i40e_fdir_reinit_subtask - Worker thread to reinit FDIR filter table * @pf: board private structure **/ @@ -4149,11 +4734,14 @@ if (!(pf->flags & I40E_FLAG_FDIR_REQUIRES_REINIT)) return; - pf->flags &= ~I40E_FLAG_FDIR_REQUIRES_REINIT; - /* if interface is down do nothing */ if (test_bit(__I40E_DOWN, &pf->state)) return; + i40e_fdir_check_and_reenable(pf); + + if ((pf->flags & I40E_FLAG_FD_ATR_ENABLED) && + (pf->flags & I40E_FLAG_FD_SB_ENABLED)) + pf->flags &= ~I40E_FLAG_FDIR_REQUIRES_REINIT; } /** @@ -4245,6 +4833,9 @@ if (pf->vf) i40e_vc_notify_link_state(pf); + + if (pf->flags & I40E_FLAG_PTP) + i40e_ptp_set_increment(pf); } /** @@ -4326,6 +4917,8 @@ for (i = 0; i < I40E_MAX_VEB; i++) if (pf->veb[i]) i40e_update_veb_stats(pf->veb[i]); + + i40e_ptp_rx_hang(pf->vsi[pf->lan_vsi]); } /** @@ -4336,6 +4929,7 @@ { u32 reset_flags = 0; + rtnl_lock(); if (test_bit(__I40E_REINIT_REQUESTED, &pf->state)) { reset_flags |= (1 << __I40E_REINIT_REQUESTED); clear_bit(__I40E_REINIT_REQUESTED, &pf->state); @@ -4358,7 +4952,7 @@ */ if (test_bit(__I40E_RESET_INTR_RECEIVED, &pf->state)) { i40e_handle_reset_warning(pf); - return; + goto unlock; } /* If we're already down or resetting, just bail */ @@ -4366,6 +4960,9 @@ !test_bit(__I40E_DOWN, &pf->state) && !test_bit(__I40E_CONFIG_BUSY, &pf->state)) i40e_do_reset(pf, reset_flags); + +unlock: + rtnl_unlock(); } /** @@ -4429,6 +5026,7 @@ return; do { + event.msg_size = I40E_MAX_AQ_BUF_SIZE; /* reinit each time */ ret = i40e_clean_arq_element(hw, &event, &pending); if (ret == I40E_ERR_ADMIN_QUEUE_NO_WORK) { dev_info(&pf->pdev->dev, "No ARQ event found\n"); @@ -4453,16 +5051,24 @@ event.msg_size); break; case i40e_aqc_opc_lldp_update_mib: - dev_info(&pf->pdev->dev, "ARQ: Update LLDP MIB event received\n"); + dev_dbg(&pf->pdev->dev, "ARQ: Update LLDP MIB event received\n"); +#ifdef CONFIG_I40E_DCB + rtnl_lock(); + ret = i40e_handle_lldp_event(pf, &event); + rtnl_unlock(); +#endif /* CONFIG_I40E_DCB */ break; case i40e_aqc_opc_event_lan_overflow: - dev_info(&pf->pdev->dev, "ARQ LAN queue overflow event received\n"); + dev_dbg(&pf->pdev->dev, "ARQ LAN queue overflow event received\n"); i40e_handle_lan_overflow_event(pf, &event); break; + case i40e_aqc_opc_send_msg_to_peer: + dev_info(&pf->pdev->dev, "ARQ: Msg from other pf\n"); + break; default: dev_info(&pf->pdev->dev, - "ARQ Error: Unknown event %d received\n", - event.desc.opcode); + "ARQ Error: Unknown event 0x%04x received\n", + opcode); break; } } while (pending && (i++ < pf->adminq_work_limit)); @@ -4478,6 +5084,31 @@ } /** + * i40e_verify_eeprom - make sure eeprom is good to use + * @pf: board private structure + **/ +static void i40e_verify_eeprom(struct i40e_pf *pf) +{ + int err; + + err = i40e_diag_eeprom_test(&pf->hw); + if (err) { + /* retry in case of garbage read */ + err = i40e_diag_eeprom_test(&pf->hw); + if (err) { + dev_info(&pf->pdev->dev, "eeprom check failed (%d), Tx/Rx traffic disabled\n", + err); + set_bit(__I40E_BAD_EEPROM, &pf->state); + } + } + + if (!err && test_bit(__I40E_BAD_EEPROM, &pf->state)) { + dev_info(&pf->pdev->dev, "eeprom check passed, Tx/Rx traffic enabled\n"); + clear_bit(__I40E_BAD_EEPROM, &pf->state); + } +} + +/** * i40e_reconstitute_veb - rebuild the VEB and anything connected to it * @veb: pointer to the VEB instance * @@ -4592,6 +5223,15 @@ } } while (err); + /* increment MSI-X count because current FW skips one */ + pf->hw.func_caps.num_msix_vectors++; + + if (((pf->hw.aq.fw_maj_ver == 2) && (pf->hw.aq.fw_min_ver < 22)) || + (pf->hw.aq.fw_maj_ver < 2)) { + pf->hw.func_caps.num_msix_vectors++; + pf->hw.func_caps.num_msix_vectors_vf++; + } + if (pf->hw.debug_mask & I40E_DEBUG_USER) dev_info(&pf->pdev->dev, "pf=%d, num_vfs=%d, msix_pf=%d, msix_vf=%d, fd_g=%d, fd_b=%d, pf_max_q=%d num_vsi=%d\n", @@ -4603,57 +5243,89 @@ pf->hw.func_caps.num_tx_qp, pf->hw.func_caps.num_vsis); +#define DEF_NUM_VSI (1 + (pf->hw.func_caps.fcoe ? 1 : 0) \ + + pf->hw.func_caps.num_vfs) + if (pf->hw.revision_id == 0 && (DEF_NUM_VSI > pf->hw.func_caps.num_vsis)) { + dev_info(&pf->pdev->dev, + "got num_vsis %d, setting num_vsis to %d\n", + pf->hw.func_caps.num_vsis, DEF_NUM_VSI); + pf->hw.func_caps.num_vsis = DEF_NUM_VSI; + } + return 0; } +static int i40e_vsi_clear(struct i40e_vsi *vsi); + /** - * i40e_fdir_setup - initialize the Flow Director resources + * i40e_fdir_sb_setup - initialize the Flow Director resources for Sideband * @pf: board private structure **/ -static void i40e_fdir_setup(struct i40e_pf *pf) +static void i40e_fdir_sb_setup(struct i40e_pf *pf) { struct i40e_vsi *vsi; bool new_vsi = false; int err, i; - if (!(pf->flags & (I40E_FLAG_FDIR_ENABLED | - I40E_FLAG_FDIR_ATR_ENABLED))) + if (!(pf->flags & I40E_FLAG_FD_SB_ENABLED)) return; - pf->atr_sample_rate = I40E_DEFAULT_ATR_SAMPLE_RATE; - - /* find existing or make new FDIR VSI */ + /* find existing VSI and see if it needs configuring */ vsi = NULL; - for (i = 0; i < pf->hw.func_caps.num_vsis; i++) - if (pf->vsi[i] && pf->vsi[i]->type == I40E_VSI_FDIR) + for (i = 0; i < pf->hw.func_caps.num_vsis; i++) { + if (pf->vsi[i] && pf->vsi[i]->type == I40E_VSI_FDIR) { vsi = pf->vsi[i]; + break; + } + } + + /* create a new VSI if none exists */ if (!vsi) { - vsi = i40e_vsi_setup(pf, I40E_VSI_FDIR, pf->mac_seid, 0); + vsi = i40e_vsi_setup(pf, I40E_VSI_FDIR, + pf->vsi[pf->lan_vsi]->seid, 0); if (!vsi) { dev_info(&pf->pdev->dev, "Couldn't create FDir VSI\n"); - pf->flags &= ~I40E_FLAG_FDIR_ENABLED; - return; + goto err_vsi; } new_vsi = true; } - WARN_ON(vsi->base_queue != I40E_FDIR_RING); - i40e_vsi_setup_irqhandler(vsi, i40e_fdir_clean_rings); + i40e_vsi_setup_irqhandler(vsi, i40e_fdir_clean_ring); err = i40e_vsi_setup_tx_resources(vsi); - if (!err) - err = i40e_vsi_setup_rx_resources(vsi); - if (!err) - err = i40e_vsi_configure(vsi); - if (!err && new_vsi) { + if (err) + goto err_setup_tx; + err = i40e_vsi_setup_rx_resources(vsi); + if (err) + goto err_setup_rx; + + if (new_vsi) { char int_name[IFNAMSIZ + 9]; + err = i40e_vsi_configure(vsi); + if (err) + goto err_setup_rx; snprintf(int_name, sizeof(int_name) - 1, "%s-fdir", dev_driver_string(&pf->pdev->dev)); err = i40e_vsi_request_irq(vsi, int_name); - } - if (!err) + if (err) + goto err_setup_rx; err = i40e_up_complete(vsi); + if (err) + goto err_up_complete; + clear_bit(__I40E_NEEDS_RESTART, &vsi->state); + } - clear_bit(__I40E_NEEDS_RESTART, &vsi->state); + return; + +err_up_complete: + i40e_down(vsi); + i40e_vsi_free_irq(vsi); +err_setup_rx: + i40e_vsi_free_rx_resources(vsi); +err_setup_tx: + i40e_vsi_free_tx_resources(vsi); +err_vsi: + pf->flags &= ~I40E_FLAG_FD_SB_ENABLED; + i40e_vsi_clear(vsi); } /** @@ -4664,6 +5336,7 @@ { int i; + i40e_fdir_filter_exit(pf); for (i = 0; i < pf->hw.func_caps.num_vsis; i++) { if (pf->vsi[i] && pf->vsi[i]->type == I40E_VSI_FDIR) { i40e_vsi_release(pf->vsi[i]); @@ -4673,26 +5346,25 @@ } /** - * i40e_handle_reset_warning - prep for the core to reset + * i40e_prep_for_reset - prep for the core to reset * @pf: board private structure * - * Close up the VFs and other things in prep for a Core Reset, - * then get ready to rebuild the world. - **/ -static void i40e_handle_reset_warning(struct i40e_pf *pf) + * Close up the VFs and other things in prep for pf Reset. + **/ +static int i40e_prep_for_reset(struct i40e_pf *pf) { - struct i40e_driver_version dv; struct i40e_hw *hw = &pf->hw; i40e_status ret; u32 v; clear_bit(__I40E_RESET_INTR_RECEIVED, &pf->state); if (test_and_set_bit(__I40E_RESET_RECOVERY_PENDING, &pf->state)) - return; + return 0; - dev_info(&pf->pdev->dev, "Tearing down internal switch for reset\n"); + dev_dbg(&pf->pdev->dev, "Tearing down internal switch for reset\n"); - i40e_vc_notify_reset(pf); + if (i40e_check_asq_alive(hw)) + i40e_vc_notify_reset(pf); /* quiesce the VSIs and their queues that are not already DOWN */ i40e_pf_quiesce_all_vsi(pf); @@ -4704,6 +5376,27 @@ i40e_shutdown_adminq(&pf->hw); + /* call shutdown HMC */ + ret = i40e_shutdown_lan_hmc(hw); + if (ret) { + dev_info(&pf->pdev->dev, "shutdown_lan_hmc failed: %d\n", ret); + clear_bit(__I40E_RESET_RECOVERY_PENDING, &pf->state); + } + return ret; +} + +/** + * i40e_reset_and_rebuild - reset and rebuild using a saved config + * @pf: board private structure + * @reinit: if the Main VSI needs to re-initialized. + **/ +static void i40e_reset_and_rebuild(struct i40e_pf *pf, bool reinit) +{ + struct i40e_driver_version dv; + struct i40e_hw *hw = &pf->hw; + i40e_status ret; + u32 v; + /* Now we wait for GRST to settle out. * We don't have to delete the VEBs or VSIs from the hw switch * because the reset will make them disappear. @@ -4715,7 +5408,7 @@ if (test_bit(__I40E_DOWN, &pf->state)) goto end_core_reset; - dev_info(&pf->pdev->dev, "Rebuilding internal switch\n"); + dev_dbg(&pf->pdev->dev, "Rebuilding internal switch\n"); /* rebuild the basics for the AdminQ, HMC, and initial HW switch */ ret = i40e_init_adminq(&pf->hw); @@ -4724,6 +5417,12 @@ goto end_core_reset; } + /* re-verify the eeprom if we just had an EMP reset */ + if (test_bit(__I40E_EMP_RESET_REQUESTED, &pf->state)) { + clear_bit(__I40E_EMP_RESET_REQUESTED, &pf->state); + i40e_verify_eeprom(pf); + } + ret = i40e_get_capabilities(pf); if (ret) { dev_info(&pf->pdev->dev, "i40e_get_capabilities failed, %d\n", @@ -4731,13 +5430,6 @@ goto end_core_reset; } - /* call shutdown HMC */ - ret = i40e_shutdown_lan_hmc(hw); - if (ret) { - dev_info(&pf->pdev->dev, "shutdown_lan_hmc failed: %d\n", ret); - goto end_core_reset; - } - ret = i40e_init_lan_hmc(hw, hw->func_caps.num_tx_qp, hw->func_caps.num_rx_qp, pf->fcoe_hmc_cntx_num, pf->fcoe_hmc_filt_num); @@ -4751,8 +5443,16 @@ goto end_core_reset; } +#ifdef CONFIG_I40E_DCB + ret = i40e_init_pf_dcb(pf); + if (ret) { + dev_info(&pf->pdev->dev, "init_pf_dcb failed: %d\n", ret); + goto end_core_reset; + } +#endif /* CONFIG_I40E_DCB */ + /* do basic switch setup */ - ret = i40e_setup_pf_switch(pf); + ret = i40e_setup_pf_switch(pf, reinit); if (ret) goto end_core_reset; @@ -4764,7 +5464,7 @@ * try to recover minimal use by getting the basic PF VSI working. */ if (pf->vsi[pf->lan_vsi]->uplink_seid != pf->mac_seid) { - dev_info(&pf->pdev->dev, "attempting to rebuild switch\n"); + dev_dbg(&pf->pdev->dev, "attempting to rebuild switch\n"); /* find the one VEB connected to the MAC, and find orphans */ for (v = 0; v < I40E_MAX_VEB; v++) { if (!pf->veb[v]) @@ -4817,6 +5517,11 @@ /* restart the VSIs that were rebuilt and running before the reset */ i40e_pf_unquiesce_all_vsi(pf); + if (pf->num_alloc_vfs) { + for (v = 0; v < pf->num_alloc_vfs; v++) + i40e_reset_vf(&pf->vf[v], true); + } + /* tell the firmware that we're starting */ dv.major_version = DRV_VERSION_MAJOR; dv.minor_version = DRV_VERSION_MINOR; @@ -4824,13 +5529,29 @@ dv.subbuild_version = 0; i40e_aq_send_driver_version(&pf->hw, &dv, NULL); - dev_info(&pf->pdev->dev, "PF reset done\n"); + dev_info(&pf->pdev->dev, "reset complete\n"); end_core_reset: clear_bit(__I40E_RESET_RECOVERY_PENDING, &pf->state); } /** + * i40e_handle_reset_warning - prep for the pf to reset, reset and rebuild + * @pf: board private structure + * + * Close up the VFs and other things in prep for a Core Reset, + * then get ready to rebuild the world. + **/ +static void i40e_handle_reset_warning(struct i40e_pf *pf) +{ + i40e_status ret; + + ret = i40e_prep_for_reset(pf); + if (!ret) + i40e_reset_and_rebuild(pf, false); +} + +/** * i40e_handle_mdd_event * @pf: pointer to the pf structure * @@ -4857,7 +5578,7 @@ u8 queue = (reg & I40E_GL_MDET_TX_QUEUE_MASK) >> I40E_GL_MDET_TX_QUEUE_SHIFT; dev_info(&pf->pdev->dev, - "Malicious Driver Detection TX event 0x%02x on q %d of function 0x%02x\n", + "Malicious Driver Detection event 0x%02x on TX queue %d of function 0x%02x\n", event, queue, func); wr32(hw, I40E_GL_MDET_TX, 0xffffffff); mdd_detected = true; @@ -4871,7 +5592,7 @@ u8 queue = (reg & I40E_GL_MDET_RX_QUEUE_MASK) >> I40E_GL_MDET_RX_QUEUE_SHIFT; dev_info(&pf->pdev->dev, - "Malicious Driver Detection RX event 0x%02x on q %d of function 0x%02x\n", + "Malicious Driver Detection event 0x%02x on RX queue %d of function 0x%02x\n", event, queue, func); wr32(hw, I40E_GL_MDET_RX, 0xffffffff); mdd_detected = true; @@ -4911,6 +5632,52 @@ i40e_flush(hw); } +#ifdef CONFIG_I40E_VXLAN +/** + * i40e_sync_vxlan_filters_subtask - Sync the VSI filter list with HW + * @pf: board private structure + **/ +static void i40e_sync_vxlan_filters_subtask(struct i40e_pf *pf) +{ + const int vxlan_hdr_qwords = 4; + struct i40e_hw *hw = &pf->hw; + i40e_status ret; + u8 filter_index; + __be16 port; + int i; + + if (!(pf->flags & I40E_FLAG_VXLAN_FILTER_SYNC)) + return; + + pf->flags &= ~I40E_FLAG_VXLAN_FILTER_SYNC; + + for (i = 0; i < I40E_MAX_PF_UDP_OFFLOAD_PORTS; i++) { + if (pf->pending_vxlan_bitmap & (1 << i)) { + pf->pending_vxlan_bitmap &= ~(1 << i); + port = pf->vxlan_ports[i]; + ret = port ? + i40e_aq_add_udp_tunnel(hw, ntohs(port), + vxlan_hdr_qwords, + I40E_AQC_TUNNEL_TYPE_VXLAN, + &filter_index, NULL) + : i40e_aq_del_udp_tunnel(hw, i, NULL); + + if (ret) { + dev_info(&pf->pdev->dev, "Failed to execute AQ command for %s port %d with index %d\n", + port ? "adding" : "deleting", + ntohs(port), port ? i : i); + + pf->vxlan_ports[i] = 0; + } else { + dev_info(&pf->pdev->dev, "%s port %d with AQ command with index %d\n", + port ? "Added" : "Deleted", + ntohs(port), port ? i : filter_index); + } + } + } +} + +#endif /** * i40e_service_task - Run the driver's async subtasks * @work: pointer to work_struct containing our data @@ -4929,6 +5696,9 @@ i40e_fdir_reinit_subtask(pf); i40e_check_hang_subtask(pf); i40e_sync_filters_subtask(pf); +#ifdef CONFIG_I40E_VXLAN + i40e_sync_vxlan_filters_subtask(pf); +#endif i40e_clean_adminq_subtask(pf); i40e_service_event_complete(pf); @@ -5006,6 +5776,42 @@ } /** + * i40e_vsi_alloc_arrays - Allocate queue and vector pointer arrays for the vsi + * @type: VSI pointer + * @alloc_qvectors: a bool to specify if q_vectors need to be allocated. + * + * On error: returns error code (negative) + * On success: returns 0 + **/ +static int i40e_vsi_alloc_arrays(struct i40e_vsi *vsi, bool alloc_qvectors) +{ + int size; + int ret = 0; + + /* allocate memory for both Tx and Rx ring pointers */ + size = sizeof(struct i40e_ring *) * vsi->alloc_queue_pairs * 2; + vsi->tx_rings = kzalloc(size, GFP_KERNEL); + if (!vsi->tx_rings) + return -ENOMEM; + vsi->rx_rings = &vsi->tx_rings[vsi->alloc_queue_pairs]; + + if (alloc_qvectors) { + /* allocate memory for q_vector pointers */ + size = sizeof(struct i40e_q_vectors *) * vsi->num_q_vectors; + vsi->q_vectors = kzalloc(size, GFP_KERNEL); + if (!vsi->q_vectors) { + ret = -ENOMEM; + goto err_vectors; + } + } + return ret; + +err_vectors: + kfree(vsi->tx_rings); + return ret; +} + +/** * i40e_vsi_mem_alloc - Allocates the next available struct vsi in the PF * @pf: board private structure * @type: type of VSI @@ -5017,8 +5823,6 @@ { int ret = -ENODEV; struct i40e_vsi *vsi; - int sz_vectors; - int sz_rings; int vsi_idx; int i; @@ -5068,22 +5872,9 @@ if (ret) goto err_rings; - /* allocate memory for ring pointers */ - sz_rings = sizeof(struct i40e_ring *) * vsi->alloc_queue_pairs * 2; - vsi->tx_rings = kzalloc(sz_rings, GFP_KERNEL); - if (!vsi->tx_rings) { - ret = -ENOMEM; + ret = i40e_vsi_alloc_arrays(vsi, true); + if (ret) goto err_rings; - } - vsi->rx_rings = &vsi->tx_rings[vsi->alloc_queue_pairs]; - - /* allocate memory for q_vector pointers */ - sz_vectors = sizeof(struct i40e_q_vectors *) * vsi->num_q_vectors; - vsi->q_vectors = kzalloc(sz_vectors, GFP_KERNEL); - if (!vsi->q_vectors) { - ret = -ENOMEM; - goto err_vectors; - } /* Setup default MSIX irq handler for VSI */ i40e_vsi_setup_irqhandler(vsi, i40e_msix_clean_rings); @@ -5092,8 +5883,6 @@ ret = vsi_idx; goto unlock_pf; -err_vectors: - kfree(vsi->tx_rings); err_rings: pf->next_vsi = i - 1; kfree(vsi); @@ -5103,6 +5892,26 @@ } /** + * i40e_vsi_free_arrays - Free queue and vector pointer arrays for the VSI + * @type: VSI pointer + * @free_qvectors: a bool to specify if q_vectors need to be freed. + * + * On error: returns error code (negative) + * On success: returns 0 + **/ +static void i40e_vsi_free_arrays(struct i40e_vsi *vsi, bool free_qvectors) +{ + /* free the ring and vector containers */ + if (free_qvectors) { + kfree(vsi->q_vectors); + vsi->q_vectors = NULL; + } + kfree(vsi->tx_rings); + vsi->tx_rings = NULL; + vsi->rx_rings = NULL; +} + +/** * i40e_vsi_clear - Deallocate the VSI provided * @vsi: the VSI being un-configured **/ @@ -5138,9 +5947,7 @@ i40e_put_lump(pf->qp_pile, vsi->base_queue, vsi->idx); i40e_put_lump(pf->irq_pile, vsi->base_vector, vsi->idx); - /* free the ring and vector containers */ - kfree(vsi->q_vectors); - kfree(vsi->tx_rings); + i40e_vsi_free_arrays(vsi, true); pf->vsi[vsi->idx] = NULL; if (vsi->idx < pf->next_vsi) @@ -5158,18 +5965,17 @@ * i40e_vsi_clear_rings - Deallocates the Rx and Tx rings for the provided VSI * @vsi: the VSI being cleaned **/ -static s32 i40e_vsi_clear_rings(struct i40e_vsi *vsi) +static void i40e_vsi_clear_rings(struct i40e_vsi *vsi) { int i; - if (vsi->tx_rings[0]) + if (vsi->tx_rings && vsi->tx_rings[0]) { for (i = 0; i < vsi->alloc_queue_pairs; i++) { kfree_rcu(vsi->tx_rings[i], rcu); vsi->tx_rings[i] = NULL; vsi->rx_rings[i] = NULL; } - - return 0; + } } /** @@ -5186,6 +5992,7 @@ struct i40e_ring *tx_ring; struct i40e_ring *rx_ring; + /* allocate space for both Tx and Rx in one shot */ tx_ring = kzalloc(sizeof(struct i40e_ring) * 2, GFP_KERNEL); if (!tx_ring) goto err_out; @@ -5234,37 +6041,16 @@ **/ static int i40e_reserve_msix_vectors(struct i40e_pf *pf, int vectors) { - int err = 0; - - pf->num_msix_entries = 0; - while (vectors >= I40E_MIN_MSIX) { - err = pci_enable_msix(pf->pdev, pf->msix_entries, vectors); - if (err == 0) { - /* good to go */ - pf->num_msix_entries = vectors; - break; - } else if (err < 0) { - /* total failure */ - dev_info(&pf->pdev->dev, - "MSI-X vector reservation failed: %d\n", err); - vectors = 0; - break; - } else { - /* err > 0 is the hint for retry */ - dev_info(&pf->pdev->dev, - "MSI-X vectors wanted %d, retrying with %d\n", - vectors, err); - vectors = err; - } - } - - if (vectors > 0 && vectors < I40E_MIN_MSIX) { + vectors = pci_enable_msix_range(pf->pdev, pf->msix_entries, + I40E_MIN_MSIX, vectors); + if (vectors < 0) { dev_info(&pf->pdev->dev, - "Couldn't get enough vectors, only %d available\n", - vectors); + "MSI-X vector reservation failed: %d\n", vectors); vectors = 0; } + pf->num_msix_entries = vectors; + return vectors; } @@ -5289,19 +6075,22 @@ /* The number of vectors we'll request will be comprised of: * - Add 1 for "other" cause for Admin Queue events, etc. * - The number of LAN queue pairs - * already adjusted for the NUMA node - * assumes symmetric Tx/Rx pairing + * - Queues being used for RSS. + * We don't need as many as max_rss_size vectors. + * use rss_size instead in the calculation since that + * is governed by number of cpus in the system. + * - assumes symmetric Tx/Rx pairing * - The number of VMDq pairs * Once we count this up, try the request. * * If we can't get what we want, we'll simplify to nearly nothing * and try again. If that still fails, we punt. */ - pf->num_lan_msix = pf->num_lan_qps; + pf->num_lan_msix = pf->num_lan_qps - (pf->rss_size_max - pf->rss_size); pf->num_vmdq_msix = pf->num_vmdq_qps; v_budget = 1 + pf->num_lan_msix; v_budget += (pf->num_vmdq_vsis * pf->num_vmdq_msix); - if (pf->flags & I40E_FLAG_FDIR_ENABLED) + if (pf->flags & I40E_FLAG_FD_SB_ENABLED) v_budget++; /* Scale down if necessary, and the rings will share vectors */ @@ -5323,7 +6112,7 @@ } else if (vec == I40E_MIN_MSIX) { /* Adjust for minimal MSIX use */ - dev_info(&pf->pdev->dev, "Features disabled, not enough MSIX vectors\n"); + dev_info(&pf->pdev->dev, "Features disabled, not enough MSI-X vectors\n"); pf->flags &= ~I40E_FLAG_VMDQ_ENABLED; pf->num_vmdq_vsis = 0; pf->num_vmdq_qps = 0; @@ -5359,13 +6148,13 @@ } /** - * i40e_alloc_q_vector - Allocate memory for a single interrupt vector + * i40e_vsi_alloc_q_vector - Allocate memory for a single interrupt vector * @vsi: the VSI being configured * @v_idx: index of the vector in the vsi struct * * We allocate one q_vector. If allocation fails we return -ENOMEM. **/ -static int i40e_alloc_q_vector(struct i40e_vsi *vsi, int v_idx) +static int i40e_vsi_alloc_q_vector(struct i40e_vsi *vsi, int v_idx) { struct i40e_q_vector *q_vector; @@ -5391,13 +6180,13 @@ } /** - * i40e_alloc_q_vectors - Allocate memory for interrupt vectors + * i40e_vsi_alloc_q_vectors - Allocate memory for interrupt vectors * @vsi: the VSI being configured * * We allocate one q_vector per queue interrupt. If allocation fails we * return -ENOMEM. **/ -static int i40e_alloc_q_vectors(struct i40e_vsi *vsi) +static int i40e_vsi_alloc_q_vectors(struct i40e_vsi *vsi) { struct i40e_pf *pf = vsi->back; int v_idx, num_q_vectors; @@ -5412,7 +6201,7 @@ return -EINVAL; for (v_idx = 0; v_idx < num_q_vectors; v_idx++) { - err = i40e_alloc_q_vector(vsi, v_idx); + err = i40e_vsi_alloc_q_vector(vsi, v_idx); if (err) goto err_out; } @@ -5437,14 +6226,13 @@ if (pf->flags & I40E_FLAG_MSIX_ENABLED) { err = i40e_init_msix(pf); if (err) { - pf->flags &= ~(I40E_FLAG_MSIX_ENABLED | - I40E_FLAG_RSS_ENABLED | - I40E_FLAG_MQ_ENABLED | - I40E_FLAG_DCB_ENABLED | - I40E_FLAG_SRIOV_ENABLED | - I40E_FLAG_FDIR_ENABLED | - I40E_FLAG_FDIR_ATR_ENABLED | - I40E_FLAG_VMDQ_ENABLED); + pf->flags &= ~(I40E_FLAG_MSIX_ENABLED | + I40E_FLAG_RSS_ENABLED | + I40E_FLAG_DCB_ENABLED | + I40E_FLAG_SRIOV_ENABLED | + I40E_FLAG_FD_SB_ENABLED | + I40E_FLAG_FD_ATR_ENABLED | + I40E_FLAG_VMDQ_ENABLED); /* rework the queue expectations without MSIX */ i40e_determine_queue_usage(pf); @@ -5453,7 +6241,7 @@ if (!(pf->flags & I40E_FLAG_MSIX_ENABLED) && (pf->flags & I40E_FLAG_MSI_ENABLED)) { - dev_info(&pf->pdev->dev, "MSIX not available, trying MSI\n"); + dev_info(&pf->pdev->dev, "MSI-X not available, trying MSI\n"); err = pci_enable_msi(pf->pdev); if (err) { dev_info(&pf->pdev->dev, "MSI init failed - %d\n", err); @@ -5462,7 +6250,7 @@ } if (!(pf->flags & (I40E_FLAG_MSIX_ENABLED | I40E_FLAG_MSI_ENABLED))) - dev_info(&pf->pdev->dev, "MSIX and MSI not available, falling back to Legacy IRQ\n"); + dev_info(&pf->pdev->dev, "MSI-X and MSI not available, falling back to Legacy IRQ\n"); /* track first vector for misc interrupts */ err = i40e_get_lump(pf, pf->irq_pile, 1, I40E_PILE_VALID_BIT-1); @@ -5489,7 +6277,8 @@ i40e_intr, 0, pf->misc_int_name, pf); if (err) { dev_info(&pf->pdev->dev, - "request_irq for msix_misc failed: %d\n", err); + "request_irq for %s failed: %d\n", + pf->misc_int_name, err); return -EFAULT; } } @@ -5513,15 +6302,15 @@ **/ static int i40e_config_rss(struct i40e_pf *pf) { - struct i40e_hw *hw = &pf->hw; - u32 lut = 0; - int i, j; - u64 hena; /* Set of random keys generated using kernel random number generator */ static const u32 seed[I40E_PFQF_HKEY_MAX_INDEX + 1] = {0x41b01687, 0x183cfd8c, 0xce880440, 0x580cbc3c, 0x35897377, 0x328b25e1, 0x4fa98922, 0xb7d90c14, 0xd5bad70d, 0xcd15a2c1, 0xe8580225, 0x4a1e9d11, 0xfe5731be}; + struct i40e_hw *hw = &pf->hw; + u32 lut = 0; + int i, j; + u64 hena; /* Fill out hash function seed */ for (i = 0; i <= I40E_PFQF_HKEY_MAX_INDEX; i++) @@ -5530,16 +6319,7 @@ /* By default we enable TCP/UDP with IPv4/IPv6 ptypes */ hena = (u64)rd32(hw, I40E_PFQF_HENA(0)) | ((u64)rd32(hw, I40E_PFQF_HENA(1)) << 32); - hena |= ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV4_UDP) | - ((u64)1 << I40E_FILTER_PCTYPE_NONF_UNICAST_IPV4_UDP) | - ((u64)1 << I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV4_UDP) | - ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV4_TCP) | - ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV6_TCP) | - ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV6_UDP) | - ((u64)1 << I40E_FILTER_PCTYPE_NONF_UNICAST_IPV6_UDP) | - ((u64)1 << I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV6_UDP) | - ((u64)1 << I40E_FILTER_PCTYPE_FRAG_IPV4)| - ((u64)1 << I40E_FILTER_PCTYPE_FRAG_IPV6); + hena |= I40E_DEFAULT_RSS_HENA; wr32(hw, I40E_PFQF_HENA(0), (u32)hena); wr32(hw, I40E_PFQF_HENA(1), (u32)(hena >> 32)); @@ -5568,6 +6348,34 @@ } /** + * i40e_reconfig_rss_queues - change number of queues for rss and rebuild + * @pf: board private structure + * @queue_count: the requested queue count for rss. + * + * returns 0 if rss is not enabled, if enabled returns the final rss queue + * count which may be different from the requested queue count. + **/ +int i40e_reconfig_rss_queues(struct i40e_pf *pf, int queue_count) +{ + if (!(pf->flags & I40E_FLAG_RSS_ENABLED)) + return 0; + + queue_count = min_t(int, queue_count, pf->rss_size_max); + queue_count = rounddown_pow_of_two(queue_count); + + if (queue_count != pf->rss_size) { + i40e_prep_for_reset(pf); + + pf->rss_size = queue_count; + + i40e_reset_and_rebuild(pf, true); + i40e_config_rss(pf); + } + dev_info(&pf->pdev->dev, "RSS count: %d\n", pf->rss_size); + return pf->rss_size; +} + +/** * i40e_sw_init - Initialize general software structures (struct i40e_pf) * @pf: board private structure to initialize * @@ -5582,6 +6390,7 @@ pf->msg_enable = netif_msg_init(I40E_DEFAULT_MSG_ENABLE, (NETIF_MSG_DRV|NETIF_MSG_PROBE|NETIF_MSG_LINK)); + pf->hw.debug_mask = pf->msg_enable | I40E_DEBUG_DIAG; if (debug != -1 && debug != I40E_DEFAULT_MSG_ENABLE) { if (I40E_DEBUG_USER & debug) pf->hw.debug_mask = debug; @@ -5593,39 +6402,43 @@ pf->flags = I40E_FLAG_RX_CSUM_ENABLED | I40E_FLAG_MSI_ENABLED | I40E_FLAG_MSIX_ENABLED | - I40E_FLAG_RX_PS_ENABLED | - I40E_FLAG_MQ_ENABLED | I40E_FLAG_RX_1BUF_ENABLED; + /* Depending on PF configurations, it is possible that the RSS + * maximum might end up larger than the available queues + */ pf->rss_size_max = 0x1 << pf->hw.func_caps.rss_table_entry_width; + pf->rss_size_max = min_t(int, pf->rss_size_max, + pf->hw.func_caps.num_tx_qp); if (pf->hw.func_caps.rss) { pf->flags |= I40E_FLAG_RSS_ENABLED; - pf->rss_size = min_t(int, pf->rss_size_max, - nr_cpus_node(numa_node_id())); + pf->rss_size = min_t(int, pf->rss_size_max, num_online_cpus()); + pf->rss_size = rounddown_pow_of_two(pf->rss_size); } else { pf->rss_size = 1; } - if (pf->hw.func_caps.dcb) - pf->num_tc_qps = I40E_DEFAULT_QUEUES_PER_TC; - else - pf->num_tc_qps = 0; + /* MFP mode enabled */ + if (pf->hw.func_caps.npar_enable || pf->hw.func_caps.mfp_mode_1) { + pf->flags |= I40E_FLAG_MFP_ENABLED; + dev_info(&pf->pdev->dev, "MFP mode Enabled\n"); + } - if (pf->hw.func_caps.fd) { - /* FW/NVM is not yet fixed in this regard */ - if ((pf->hw.func_caps.fd_filters_guaranteed > 0) || - (pf->hw.func_caps.fd_filters_best_effort > 0)) { - pf->flags |= I40E_FLAG_FDIR_ATR_ENABLED; - dev_info(&pf->pdev->dev, - "Flow Director ATR mode Enabled\n"); - pf->flags |= I40E_FLAG_FDIR_ENABLED; + /* FW/NVM is not yet fixed in this regard */ + if ((pf->hw.func_caps.fd_filters_guaranteed > 0) || + (pf->hw.func_caps.fd_filters_best_effort > 0)) { + pf->flags |= I40E_FLAG_FD_ATR_ENABLED; + pf->atr_sample_rate = I40E_DEFAULT_ATR_SAMPLE_RATE; + if (!(pf->flags & I40E_FLAG_MFP_ENABLED)) { + pf->flags |= I40E_FLAG_FD_SB_ENABLED; + } else { dev_info(&pf->pdev->dev, - "Flow Director Side Band mode Enabled\n"); - pf->fdir_pf_filter_count = - pf->hw.func_caps.fd_filters_guaranteed; + "Flow Director Sideband mode Disabled in MFP mode\n"); } - } else { - pf->fdir_pf_filter_count = 0; + pf->fdir_pf_filter_count = + pf->hw.func_caps.fd_filters_guaranteed; + pf->hw.fdir_shared_filter_count = + pf->hw.func_caps.fd_filters_best_effort; } if (pf->hw.func_caps.vmdq) { @@ -5634,12 +6447,6 @@ pf->num_vmdq_qps = I40E_DEFAULT_QUEUES_PER_VMDQ; } - /* MFP mode enabled */ - if (pf->hw.func_caps.npar_enable || pf->hw.func_caps.mfp_mode_1) { - pf->flags |= I40E_FLAG_MFP_ENABLED; - dev_info(&pf->pdev->dev, "MFP mode Enabled\n"); - } - #ifdef CONFIG_PCI_IOV if (pf->hw.func_caps.num_vfs) { pf->num_vf_qps = I40E_DEFAULT_QUEUES_PER_VF; @@ -5661,46 +6468,184 @@ err = -ENOMEM; goto sw_init_done; } - pf->qp_pile->num_entries = pf->hw.func_caps.num_tx_qp; - pf->qp_pile->search_hint = 0; + pf->qp_pile->num_entries = pf->hw.func_caps.num_tx_qp; + pf->qp_pile->search_hint = 0; + + /* set up vector assignment tracking */ + size = sizeof(struct i40e_lump_tracking) + + (sizeof(u16) * pf->hw.func_caps.num_msix_vectors); + pf->irq_pile = kzalloc(size, GFP_KERNEL); + if (!pf->irq_pile) { + kfree(pf->qp_pile); + err = -ENOMEM; + goto sw_init_done; + } + pf->irq_pile->num_entries = pf->hw.func_caps.num_msix_vectors; + pf->irq_pile->search_hint = 0; + + mutex_init(&pf->switch_mutex); + +sw_init_done: + return err; +} + +/** + * i40e_set_ntuple - set the ntuple feature flag and take action + * @pf: board private structure to initialize + * @features: the feature set that the stack is suggesting + * + * returns a bool to indicate if reset needs to happen + **/ +bool i40e_set_ntuple(struct i40e_pf *pf, netdev_features_t features) +{ + bool need_reset = false; + + /* Check if Flow Director n-tuple support was enabled or disabled. If + * the state changed, we need to reset. + */ + if (features & NETIF_F_NTUPLE) { + /* Enable filters and mark for reset */ + if (!(pf->flags & I40E_FLAG_FD_SB_ENABLED)) + need_reset = true; + pf->flags |= I40E_FLAG_FD_SB_ENABLED; + } else { + /* turn off filters, mark for reset and clear SW filter list */ + if (pf->flags & I40E_FLAG_FD_SB_ENABLED) { + need_reset = true; + i40e_fdir_filter_exit(pf); + } + pf->flags &= ~I40E_FLAG_FD_SB_ENABLED; + /* if ATR was disabled it can be re-enabled. */ + if (!(pf->flags & I40E_FLAG_FD_ATR_ENABLED)) + pf->flags |= I40E_FLAG_FD_ATR_ENABLED; + } + return need_reset; +} + +/** + * i40e_set_features - set the netdev feature flags + * @netdev: ptr to the netdev being adjusted + * @features: the feature set that the stack is suggesting + **/ +static int i40e_set_features(struct net_device *netdev, + netdev_features_t features) +{ + struct i40e_netdev_priv *np = netdev_priv(netdev); + struct i40e_vsi *vsi = np->vsi; + struct i40e_pf *pf = vsi->back; + bool need_reset; + + if (features & NETIF_F_HW_VLAN_CTAG_RX) + i40e_vlan_stripping_enable(vsi); + else + i40e_vlan_stripping_disable(vsi); + + need_reset = i40e_set_ntuple(pf, features); + + if (need_reset) + i40e_do_reset(pf, (1 << __I40E_PF_RESET_REQUESTED)); + + return 0; +} + +#ifdef CONFIG_I40E_VXLAN +/** + * i40e_get_vxlan_port_idx - Lookup a possibly offloaded for Rx UDP port + * @pf: board private structure + * @port: The UDP port to look up + * + * Returns the index number or I40E_MAX_PF_UDP_OFFLOAD_PORTS if port not found + **/ +static u8 i40e_get_vxlan_port_idx(struct i40e_pf *pf, __be16 port) +{ + u8 i; + + for (i = 0; i < I40E_MAX_PF_UDP_OFFLOAD_PORTS; i++) { + if (pf->vxlan_ports[i] == port) + return i; + } + + return i; +} + +/** + * i40e_add_vxlan_port - Get notifications about VXLAN ports that come up + * @netdev: This physical port's netdev + * @sa_family: Socket Family that VXLAN is notifying us about + * @port: New UDP port number that VXLAN started listening to + **/ +static void i40e_add_vxlan_port(struct net_device *netdev, + sa_family_t sa_family, __be16 port) +{ + struct i40e_netdev_priv *np = netdev_priv(netdev); + struct i40e_vsi *vsi = np->vsi; + struct i40e_pf *pf = vsi->back; + u8 next_idx; + u8 idx; + + if (sa_family == AF_INET6) + return; + + idx = i40e_get_vxlan_port_idx(pf, port); + + /* Check if port already exists */ + if (idx < I40E_MAX_PF_UDP_OFFLOAD_PORTS) { + netdev_info(netdev, "Port %d already offloaded\n", ntohs(port)); + return; + } - /* set up vector assignment tracking */ - size = sizeof(struct i40e_lump_tracking) - + (sizeof(u16) * pf->hw.func_caps.num_msix_vectors); - pf->irq_pile = kzalloc(size, GFP_KERNEL); - if (!pf->irq_pile) { - kfree(pf->qp_pile); - err = -ENOMEM; - goto sw_init_done; + /* Now check if there is space to add the new port */ + next_idx = i40e_get_vxlan_port_idx(pf, 0); + + if (next_idx == I40E_MAX_PF_UDP_OFFLOAD_PORTS) { + netdev_info(netdev, "Maximum number of UDP ports reached, not adding port %d\n", + ntohs(port)); + return; } - pf->irq_pile->num_entries = pf->hw.func_caps.num_msix_vectors; - pf->irq_pile->search_hint = 0; - mutex_init(&pf->switch_mutex); + /* New port: add it and mark its index in the bitmap */ + pf->vxlan_ports[next_idx] = port; + pf->pending_vxlan_bitmap |= (1 << next_idx); -sw_init_done: - return err; + pf->flags |= I40E_FLAG_VXLAN_FILTER_SYNC; } /** - * i40e_set_features - set the netdev feature flags - * @netdev: ptr to the netdev being adjusted - * @features: the feature set that the stack is suggesting + * i40e_del_vxlan_port - Get notifications about VXLAN ports that go away + * @netdev: This physical port's netdev + * @sa_family: Socket Family that VXLAN is notifying us about + * @port: UDP port number that VXLAN stopped listening to **/ -static int i40e_set_features(struct net_device *netdev, - netdev_features_t features) +static void i40e_del_vxlan_port(struct net_device *netdev, + sa_family_t sa_family, __be16 port) { struct i40e_netdev_priv *np = netdev_priv(netdev); struct i40e_vsi *vsi = np->vsi; + struct i40e_pf *pf = vsi->back; + u8 idx; - if (features & NETIF_F_HW_VLAN_CTAG_RX) - i40e_vlan_stripping_enable(vsi); - else - i40e_vlan_stripping_disable(vsi); + if (sa_family == AF_INET6) + return; - return 0; + idx = i40e_get_vxlan_port_idx(pf, port); + + /* Check if port already exists */ + if (idx < I40E_MAX_PF_UDP_OFFLOAD_PORTS) { + /* if port exists, set it to 0 (mark for deletion) + * and make it pending + */ + pf->vxlan_ports[idx] = 0; + + pf->pending_vxlan_bitmap |= (1 << idx); + + pf->flags |= I40E_FLAG_VXLAN_FILTER_SYNC; + } else { + netdev_warn(netdev, "Port %d was not found, not deleting\n", + ntohs(port)); + } } +#endif static const struct net_device_ops i40e_netdev_ops = { .ndo_open = i40e_open, .ndo_stop = i40e_close, @@ -5710,6 +6655,7 @@ .ndo_validate_addr = eth_validate_addr, .ndo_set_mac_address = i40e_set_mac, .ndo_change_mtu = i40e_change_mtu, + .ndo_do_ioctl = i40e_ioctl, .ndo_tx_timeout = i40e_tx_timeout, .ndo_vlan_rx_add_vid = i40e_vlan_rx_add_vid, .ndo_vlan_rx_kill_vid = i40e_vlan_rx_kill_vid, @@ -5722,6 +6668,11 @@ .ndo_set_vf_vlan = i40e_ndo_set_vf_port_vlan, .ndo_set_vf_tx_rate = i40e_ndo_set_vf_bw, .ndo_get_vf_config = i40e_ndo_get_vf_config, + .ndo_set_vf_link_state = i40e_ndo_set_vf_link_state, +#ifdef CONFIG_I40E_VXLAN + .ndo_add_vxlan_port = i40e_add_vxlan_port, + .ndo_del_vxlan_port = i40e_del_vxlan_port, +#endif }; /** @@ -5732,6 +6683,7 @@ **/ static int i40e_config_netdev(struct i40e_vsi *vsi) { + u8 brdcast[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; struct i40e_pf *pf = vsi->back; struct i40e_hw *hw = &pf->hw; struct i40e_netdev_priv *np; @@ -5748,10 +6700,9 @@ np = netdev_priv(netdev); np->vsi = vsi; - netdev->hw_enc_features = NETIF_F_IP_CSUM | + netdev->hw_enc_features |= NETIF_F_IP_CSUM | NETIF_F_GSO_UDP_TUNNEL | - NETIF_F_TSO | - NETIF_F_SG; + NETIF_F_TSO; netdev->features = NETIF_F_SG | NETIF_F_IP_CSUM | @@ -5763,8 +6714,10 @@ NETIF_F_HW_VLAN_CTAG_FILTER | NETIF_F_IPV6_CSUM | NETIF_F_TSO | + NETIF_F_TSO_ECN | NETIF_F_TSO6 | NETIF_F_RXCSUM | + NETIF_F_NTUPLE | NETIF_F_RXHASH | 0; @@ -5781,6 +6734,7 @@ random_ether_addr(mac_addr); i40e_add_filter(vsi, mac_addr, I40E_VLAN_ANY, false, false); } + i40e_add_filter(vsi, brdcast, I40E_VLAN_ANY, false, false); memcpy(netdev->dev_addr, mac_addr, ETH_ALEN); memcpy(netdev->perm_addr, mac_addr, ETH_ALEN); @@ -5814,10 +6768,6 @@ if (vsi == vsi->back->vsi[vsi->back->lan_vsi]) return; - /* there is no HW VSI for FDIR */ - if (vsi->type == I40E_VSI_FDIR) - return; - i40e_aq_delete_element(&vsi->back->hw, vsi->seid, NULL); return; } @@ -5901,12 +6851,12 @@ break; case I40E_VSI_FDIR: - /* no queue mapping or actual HW VSI needed */ - vsi->info.valid_sections = 0; - vsi->seid = 0; - vsi->id = 0; + ctxt.pf_num = hw->pf_id; + ctxt.vf_num = 0; + ctxt.uplink_seid = vsi->uplink_seid; + ctxt.connection_type = 0x1; /* regular data port */ + ctxt.flags = I40E_AQ_VSI_TYPE_PF; i40e_vsi_setup_queue_map(vsi, &ctxt, enabled_tc, true); - return 0; break; case I40E_VSI_VMDQ2: @@ -6027,8 +6977,6 @@ if (vsi->netdev) { /* results in a call to i40e_close() */ unregister_netdev(vsi->netdev); - free_netdev(vsi->netdev); - vsi->netdev = NULL; } } else { if (!test_and_set_bit(__I40E_DOWN, &vsi->state)) @@ -6047,6 +6995,10 @@ i40e_vsi_delete(vsi); i40e_vsi_free_q_vectors(vsi); + if (vsi->netdev) { + free_netdev(vsi->netdev); + vsi->netdev = NULL; + } i40e_vsi_clear_rings(vsi); i40e_vsi_clear(vsi); @@ -6101,13 +7053,12 @@ } if (vsi->base_vector) { - dev_info(&pf->pdev->dev, - "VSI %d has non-zero base vector %d\n", + dev_info(&pf->pdev->dev, "VSI %d has non-zero base vector %d\n", vsi->seid, vsi->base_vector); return -EEXIST; } - ret = i40e_alloc_q_vectors(vsi); + ret = i40e_vsi_alloc_q_vectors(vsi); if (ret) { dev_info(&pf->pdev->dev, "failed to allocate %d q_vector for VSI %d, ret=%d\n", @@ -6121,7 +7072,7 @@ vsi->num_q_vectors, vsi->idx); if (vsi->base_vector < 0) { dev_info(&pf->pdev->dev, - "failed to get q tracking for VSI %d, err=%d\n", + "failed to get queue tracking for VSI %d, err=%d\n", vsi->seid, vsi->base_vector); i40e_vsi_free_q_vectors(vsi); ret = -ENOENT; @@ -6133,6 +7084,69 @@ } /** + * i40e_vsi_reinit_setup - return and reallocate resources for a VSI + * @vsi: pointer to the vsi. + * + * This re-allocates a vsi's queue resources. + * + * Returns pointer to the successfully allocated and configured VSI sw struct + * on success, otherwise returns NULL on failure. + **/ +static struct i40e_vsi *i40e_vsi_reinit_setup(struct i40e_vsi *vsi) +{ + struct i40e_pf *pf = vsi->back; + u8 enabled_tc; + int ret; + + i40e_put_lump(pf->qp_pile, vsi->base_queue, vsi->idx); + i40e_vsi_clear_rings(vsi); + + i40e_vsi_free_arrays(vsi, false); + i40e_set_num_rings_in_vsi(vsi); + ret = i40e_vsi_alloc_arrays(vsi, false); + if (ret) + goto err_vsi; + + ret = i40e_get_lump(pf, pf->qp_pile, vsi->alloc_queue_pairs, vsi->idx); + if (ret < 0) { + dev_info(&pf->pdev->dev, "VSI %d get_lump failed %d\n", + vsi->seid, ret); + goto err_vsi; + } + vsi->base_queue = ret; + + /* Update the FW view of the VSI. Force a reset of TC and queue + * layout configurations. + */ + enabled_tc = pf->vsi[pf->lan_vsi]->tc_config.enabled_tc; + pf->vsi[pf->lan_vsi]->tc_config.enabled_tc = 0; + pf->vsi[pf->lan_vsi]->seid = pf->main_vsi_seid; + i40e_vsi_config_tc(pf->vsi[pf->lan_vsi], enabled_tc); + + /* assign it some queues */ + ret = i40e_alloc_rings(vsi); + if (ret) + goto err_rings; + + /* map all of the rings to the q_vectors */ + i40e_vsi_map_rings_to_vectors(vsi); + return vsi; + +err_rings: + i40e_vsi_free_q_vectors(vsi); + if (vsi->netdev_registered) { + vsi->netdev_registered = false; + unregister_netdev(vsi->netdev); + free_netdev(vsi->netdev); + vsi->netdev = NULL; + } + i40e_aq_delete_element(&pf->hw, vsi->seid, NULL); +err_vsi: + i40e_vsi_clear(vsi); + return NULL; +} + +/** * i40e_vsi_setup - Set up a VSI by a given type * @pf: board private structure * @type: VSI type @@ -6212,6 +7226,8 @@ if (v_idx < 0) goto err_alloc; vsi = pf->vsi[v_idx]; + if (!vsi) + goto err_alloc; vsi->type = type; vsi->veb_idx = (veb ? veb->idx : I40E_NO_VEB); @@ -6220,7 +7236,8 @@ else if (type == I40E_VSI_SRIOV) vsi->vf_id = param1; /* assign it some queues */ - ret = i40e_get_lump(pf, pf->qp_pile, vsi->alloc_queue_pairs, vsi->idx); + ret = i40e_get_lump(pf, pf->qp_pile, vsi->alloc_queue_pairs, + vsi->idx); if (ret < 0) { dev_info(&pf->pdev->dev, "VSI %d get_lump failed %d\n", vsi->seid, ret); @@ -6246,6 +7263,10 @@ goto err_netdev; vsi->netdev_registered = true; netif_carrier_off(vsi->netdev); +#ifdef CONFIG_I40E_DCB + /* Setup DCB netlink interface */ + i40e_dcbnl_setup(vsi); +#endif /* CONFIG_I40E_DCB */ /* fall through */ case I40E_VSI_FDIR: @@ -6503,12 +7524,14 @@ **/ static int i40e_add_veb(struct i40e_veb *veb, struct i40e_vsi *vsi) { - bool is_default = (vsi->idx == vsi->back->lan_vsi); + bool is_default = false; + bool is_cloud = false; int ret; /* get a VEB from the hardware */ ret = i40e_aq_add_veb(&veb->pf->hw, veb->uplink_seid, vsi->seid, - veb->enabled_tc, is_default, &veb->seid, NULL); + veb->enabled_tc, is_default, + is_cloud, &veb->seid, NULL); if (ret) { dev_info(&veb->pf->pdev->dev, "couldn't add VEB, err %d, aq_err %d\n", @@ -6773,11 +7796,13 @@ /** * i40e_setup_pf_switch - Setup the HW switch on startup or after reset * @pf: board private structure + * @reinit: if the Main VSI needs to re-initialized. * * Returns 0 on success, negative value on failure **/ -static int i40e_setup_pf_switch(struct i40e_pf *pf) +static int i40e_setup_pf_switch(struct i40e_pf *pf, bool reinit) { + u32 rxfc = 0, txfc = 0, rxfc_reg; int ret; /* find out what's out there already */ @@ -6790,14 +7815,8 @@ } i40e_pf_reset_stats(pf); - /* fdir VSI must happen first to be sure it gets queue 0, but only - * if there is enough room for the fdir VSI - */ - if (pf->num_lan_qps > 1) - i40e_fdir_setup(pf); - /* first time setup */ - if (pf->lan_vsi == I40E_NO_VSI) { + if (pf->lan_vsi == I40E_NO_VSI || reinit) { struct i40e_vsi *vsi = NULL; u16 uplink_seid; @@ -6808,19 +7827,15 @@ uplink_seid = pf->veb[pf->lan_veb]->seid; else uplink_seid = pf->mac_seid; - - vsi = i40e_vsi_setup(pf, I40E_VSI_MAIN, uplink_seid, 0); + if (pf->lan_vsi == I40E_NO_VSI) + vsi = i40e_vsi_setup(pf, I40E_VSI_MAIN, uplink_seid, 0); + else if (reinit) + vsi = i40e_vsi_reinit_setup(pf->vsi[pf->lan_vsi]); if (!vsi) { dev_info(&pf->pdev->dev, "setup of MAIN VSI failed\n"); i40e_fdir_teardown(pf); return -EAGAIN; } - /* accommodate kcompat by copying the main VSI queue count - * into the pf, since this newer code pushes the pf queue - * info down a level into a VSI - */ - pf->num_rx_queues = vsi->alloc_queue_pairs; - pf->num_tx_queues = vsi->alloc_queue_pairs; } else { /* force a reset of TC and queue layout configurations */ u8 enabled_tc = pf->vsi[pf->lan_vsi]->tc_config.enabled_tc; @@ -6830,6 +7845,8 @@ } i40e_vlan_stripping_disable(pf->vsi[pf->lan_vsi]); + i40e_fdir_sb_setup(pf); + /* Setup static PF queue filter control settings */ ret = i40e_setup_pf_filter_control(pf); if (ret) { @@ -6848,37 +7865,68 @@ i40e_aq_get_link_info(&pf->hw, true, NULL, NULL); i40e_link_event(pf); - /* Initialize user-specifics link properties */ + /* Initialize user-specific link properties */ pf->fc_autoneg_status = ((pf->hw.phy.link_info.an_info & I40E_AQ_AN_COMPLETED) ? true : false); - pf->hw.fc.requested_mode = I40E_FC_DEFAULT; - if (pf->hw.phy.link_info.an_info & - (I40E_AQ_LINK_PAUSE_TX | I40E_AQ_LINK_PAUSE_RX)) + /* requested_mode is set in probe or by ethtool */ + if (!pf->fc_autoneg_status) + goto no_autoneg; + + if ((pf->hw.phy.link_info.an_info & I40E_AQ_LINK_PAUSE_TX) && + (pf->hw.phy.link_info.an_info & I40E_AQ_LINK_PAUSE_RX)) pf->hw.fc.current_mode = I40E_FC_FULL; else if (pf->hw.phy.link_info.an_info & I40E_AQ_LINK_PAUSE_TX) pf->hw.fc.current_mode = I40E_FC_TX_PAUSE; else if (pf->hw.phy.link_info.an_info & I40E_AQ_LINK_PAUSE_RX) pf->hw.fc.current_mode = I40E_FC_RX_PAUSE; else - pf->hw.fc.current_mode = I40E_FC_DEFAULT; + pf->hw.fc.current_mode = I40E_FC_NONE; - return ret; -} + /* sync the flow control settings with the auto-neg values */ + switch (pf->hw.fc.current_mode) { + case I40E_FC_FULL: + txfc = 1; + rxfc = 1; + break; + case I40E_FC_TX_PAUSE: + txfc = 1; + rxfc = 0; + break; + case I40E_FC_RX_PAUSE: + txfc = 0; + rxfc = 1; + break; + case I40E_FC_NONE: + case I40E_FC_DEFAULT: + txfc = 0; + rxfc = 0; + break; + case I40E_FC_PFC: + /* TBD */ + break; + /* no default case, we have to handle all possibilities here */ + } -/** - * i40e_set_rss_size - helper to set rss_size - * @pf: board private structure - * @queues_left: how many queues - */ -static u16 i40e_set_rss_size(struct i40e_pf *pf, int queues_left) -{ - int num_tc0; + wr32(&pf->hw, I40E_PRTDCB_FCCFG, txfc << I40E_PRTDCB_FCCFG_TFCE_SHIFT); + + rxfc_reg = rd32(&pf->hw, I40E_PRTDCB_MFLCN) & + ~I40E_PRTDCB_MFLCN_RFCE_MASK; + rxfc_reg |= (rxfc << I40E_PRTDCB_MFLCN_RFCE_SHIFT); - num_tc0 = min_t(int, queues_left, pf->rss_size_max); - num_tc0 = min_t(int, num_tc0, nr_cpus_node(numa_node_id())); - num_tc0 = rounddown_pow_of_two(num_tc0); + wr32(&pf->hw, I40E_PRTDCB_MFLCN, rxfc_reg); - return num_tc0; + goto fc_complete; + +no_autoneg: + /* disable L2 flow control, user can turn it on if they wish */ + wr32(&pf->hw, I40E_PRTDCB_FCCFG, 0); + wr32(&pf->hw, I40E_PRTDCB_MFLCN, rd32(&pf->hw, I40E_PRTDCB_MFLCN) & + ~I40E_PRTDCB_MFLCN_RFCE_MASK); + +fc_complete: + i40e_ptp_init(pf); + + return ret; } /** @@ -6887,12 +7935,9 @@ **/ static void i40e_determine_queue_usage(struct i40e_pf *pf) { - int accum_tc_size; int queues_left; pf->num_lan_qps = 0; - pf->num_tc_qps = rounddown_pow_of_two(pf->num_tc_qps); - accum_tc_size = (I40E_MAX_TRAFFIC_CLASS - 1) * pf->num_tc_qps; /* Find the max queues to be put into basic use. We'll always be * using TC0, whether or not DCB is running, and TC0 will get the @@ -6900,99 +7945,45 @@ */ queues_left = pf->hw.func_caps.num_tx_qp; - if (!((pf->flags & I40E_FLAG_MSIX_ENABLED) && - (pf->flags & I40E_FLAG_MQ_ENABLED)) || - !(pf->flags & (I40E_FLAG_RSS_ENABLED | - I40E_FLAG_FDIR_ENABLED | I40E_FLAG_DCB_ENABLED)) || - (queues_left == 1)) { - + if ((queues_left == 1) || + !(pf->flags & I40E_FLAG_MSIX_ENABLED) || + !(pf->flags & (I40E_FLAG_RSS_ENABLED | I40E_FLAG_FD_SB_ENABLED | + I40E_FLAG_DCB_ENABLED))) { /* one qp for PF, no queues for anything else */ queues_left = 0; pf->rss_size = pf->num_lan_qps = 1; /* make sure all the fancies are disabled */ - pf->flags &= ~(I40E_FLAG_RSS_ENABLED | - I40E_FLAG_MQ_ENABLED | - I40E_FLAG_FDIR_ENABLED | - I40E_FLAG_FDIR_ATR_ENABLED | - I40E_FLAG_DCB_ENABLED | - I40E_FLAG_SRIOV_ENABLED | - I40E_FLAG_VMDQ_ENABLED); - - } else if (pf->flags & I40E_FLAG_RSS_ENABLED && - !(pf->flags & I40E_FLAG_FDIR_ENABLED) && - !(pf->flags & I40E_FLAG_DCB_ENABLED)) { - - pf->rss_size = i40e_set_rss_size(pf, queues_left); - - queues_left -= pf->rss_size; - pf->num_lan_qps = pf->rss_size; - - } else if (pf->flags & I40E_FLAG_RSS_ENABLED && - !(pf->flags & I40E_FLAG_FDIR_ENABLED) && - (pf->flags & I40E_FLAG_DCB_ENABLED)) { - - /* save num_tc_qps queues for TCs 1 thru 7 and the rest - * are set up for RSS in TC0 - */ - queues_left -= accum_tc_size; - - pf->rss_size = i40e_set_rss_size(pf, queues_left); - - queues_left -= pf->rss_size; - if (queues_left < 0) { - dev_info(&pf->pdev->dev, "not enough queues for DCB\n"); - return; - } - - pf->num_lan_qps = pf->rss_size + accum_tc_size; - - } else if (pf->flags & I40E_FLAG_RSS_ENABLED && - (pf->flags & I40E_FLAG_FDIR_ENABLED) && - !(pf->flags & I40E_FLAG_DCB_ENABLED)) { - - queues_left -= 1; /* save 1 queue for FD */ - - pf->rss_size = i40e_set_rss_size(pf, queues_left); - - queues_left -= pf->rss_size; - if (queues_left < 0) { - dev_info(&pf->pdev->dev, "not enough queues for Flow Director\n"); - return; - } - - pf->num_lan_qps = pf->rss_size; - - } else if (pf->flags & I40E_FLAG_RSS_ENABLED && - (pf->flags & I40E_FLAG_FDIR_ENABLED) && - (pf->flags & I40E_FLAG_DCB_ENABLED)) { - - /* save 1 queue for TCs 1 thru 7, - * 1 queue for flow director, - * and the rest are set up for RSS in TC0 - */ - queues_left -= 1; - queues_left -= accum_tc_size; + pf->flags &= ~(I40E_FLAG_RSS_ENABLED | + I40E_FLAG_FD_SB_ENABLED | + I40E_FLAG_FD_ATR_ENABLED | + I40E_FLAG_DCB_ENABLED | + I40E_FLAG_SRIOV_ENABLED | + I40E_FLAG_VMDQ_ENABLED); + } else { + /* Not enough queues for all TCs */ + if ((pf->flags & I40E_FLAG_DCB_ENABLED) && + (queues_left < I40E_MAX_TRAFFIC_CLASS)) { + pf->flags &= ~I40E_FLAG_DCB_ENABLED; + dev_info(&pf->pdev->dev, "not enough queues for DCB. DCB is disabled.\n"); + } + pf->num_lan_qps = pf->rss_size_max; + queues_left -= pf->num_lan_qps; + } - pf->rss_size = i40e_set_rss_size(pf, queues_left); - queues_left -= pf->rss_size; - if (queues_left < 0) { - dev_info(&pf->pdev->dev, "not enough queues for DCB and Flow Director\n"); - return; + if (pf->flags & I40E_FLAG_FD_SB_ENABLED) { + if (queues_left > 1) { + queues_left -= 1; /* save 1 queue for FD */ + } else { + pf->flags &= ~I40E_FLAG_FD_SB_ENABLED; + dev_info(&pf->pdev->dev, "not enough queues for Flow Director. Flow Director feature is disabled\n"); } - - pf->num_lan_qps = pf->rss_size + accum_tc_size; - - } else { - dev_info(&pf->pdev->dev, - "Invalid configuration, flags=0x%08llx\n", pf->flags); - return; } if ((pf->flags & I40E_FLAG_SRIOV_ENABLED) && pf->num_vf_qps && pf->num_req_vfs && queues_left) { - pf->num_req_vfs = min_t(int, pf->num_req_vfs, (queues_left / - pf->num_vf_qps)); + pf->num_req_vfs = min_t(int, pf->num_req_vfs, + (queues_left / pf->num_vf_qps)); queues_left -= (pf->num_req_vfs * pf->num_vf_qps); } @@ -7003,6 +7994,7 @@ queues_left -= (pf->num_vmdq_vsis * pf->num_vmdq_qps); } + pf->queues_left = queues_left; return; } @@ -7024,7 +8016,7 @@ settings->hash_lut_size = I40E_HASH_LUT_SIZE_128; /* Flow Director is enabled */ - if (pf->flags & (I40E_FLAG_FDIR_ENABLED | I40E_FLAG_FDIR_ATR_ENABLED)) + if (pf->flags & (I40E_FLAG_FD_SB_ENABLED | I40E_FLAG_FD_ATR_ENABLED)) settings->enable_fdir = true; /* Ethtype and MACVLAN filters enabled for PF */ @@ -7037,6 +8029,44 @@ return 0; } +#define INFO_STRING_LEN 255 +static void i40e_print_features(struct i40e_pf *pf) +{ + struct i40e_hw *hw = &pf->hw; + char *buf, *string; + + string = kzalloc(INFO_STRING_LEN, GFP_KERNEL); + if (!string) { + dev_err(&pf->pdev->dev, "Features string allocation failed\n"); + return; + } + + buf = string; + + buf += sprintf(string, "Features: PF-id[%d] ", hw->pf_id); +#ifdef CONFIG_PCI_IOV + buf += sprintf(buf, "VFs: %d ", pf->num_req_vfs); +#endif + buf += sprintf(buf, "VSIs: %d QP: %d ", pf->hw.func_caps.num_vsis, + pf->vsi[pf->lan_vsi]->num_queue_pairs); + + if (pf->flags & I40E_FLAG_RSS_ENABLED) + buf += sprintf(buf, "RSS "); + buf += sprintf(buf, "FDir "); + if (pf->flags & I40E_FLAG_FD_ATR_ENABLED) + buf += sprintf(buf, "ATR "); + if (pf->flags & I40E_FLAG_FD_SB_ENABLED) + buf += sprintf(buf, "NTUPLE "); + if (pf->flags & I40E_FLAG_DCB_ENABLED) + buf += sprintf(buf, "DCB "); + if (pf->flags & I40E_FLAG_PTP) + buf += sprintf(buf, "PTP "); + + BUG_ON(buf > (string + INFO_STRING_LEN)); + dev_info(&pf->pdev->dev, "%s\n", string); + kfree(string); +} + /** * i40e_probe - Device initialization routine * @pdev: PCI device information struct @@ -7053,6 +8083,8 @@ struct i40e_driver_version dv; struct i40e_pf *pf; struct i40e_hw *hw; + static u16 pfs_found; + u16 link_status; int err = 0; u32 len; @@ -7061,17 +8093,14 @@ return err; /* set up for high or low dma */ - if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(64))) { - /* coherent mask for the same size will always succeed if - * dma_set_mask does - */ - dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64)); - } else if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(32))) { - dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); - } else { - dev_err(&pdev->dev, "DMA configuration failed: %d\n", err); - err = -EIO; - goto err_dma; + err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)); + if (err) { + err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)); + if (err) { + dev_err(&pdev->dev, + "DMA configuration failed: 0x%x\n", err); + goto err_dma; + } } /* set up pci connections */ @@ -7118,6 +8147,18 @@ hw->subsystem_device_id = pdev->subsystem_device; hw->bus.device = PCI_SLOT(pdev->devfn); hw->bus.func = PCI_FUNC(pdev->devfn); + pf->instance = pfs_found; + + /* do a special CORER for clearing PXE mode once at init */ + if (hw->revision_id == 0 && + (rd32(hw, I40E_GLLAN_RCTL_0) & I40E_GLLAN_RCTL_0_PXE_MODE_MASK)) { + wr32(hw, I40E_GLGEN_RTRIG, I40E_GLGEN_RTRIG_CORER_MASK); + i40e_flush(hw); + msleep(200); + pf->corer_count++; + + i40e_clear_pxe_mode(hw); + } /* Reset here to make sure all is clean and to define PF 'n' */ err = i40e_pf_reset(hw); @@ -7142,6 +8183,9 @@ goto err_pf_reset; } + /* set up a default setting for link flow control */ + pf->hw.fc.requested_mode = I40E_FC_NONE; + err = i40e_init_adminq(hw); dev_info(&pdev->dev, "%s\n", i40e_fw_version_str(hw)); if (err) { @@ -7152,6 +8196,9 @@ goto err_pf_reset; } + i40e_verify_eeprom(pf); + + i40e_clear_pxe_mode(hw); err = i40e_get_capabilities(pf); if (err) goto err_adminq_setup; @@ -7178,7 +8225,7 @@ } i40e_get_mac_addr(hw, hw->mac.addr); - if (i40e_validate_mac_addr(hw->mac.addr)) { + if (!is_valid_ether_addr(hw->mac.addr)) { dev_info(&pdev->dev, "invalid MAC address %pM\n", hw->mac.addr); err = -EIO; goto err_mac_addr; @@ -7188,6 +8235,14 @@ pci_set_drvdata(pdev, pf); pci_save_state(pdev); +#ifdef CONFIG_I40E_DCB + err = i40e_init_pf_dcb(pf); + if (err) { + dev_info(&pdev->dev, "init_pf_dcb failed: %d\n", err); + pf->flags &= ~I40E_FLAG_DCB_ENABLED; + goto err_init_dcb; + } +#endif /* CONFIG_I40E_DCB */ /* set up periodic task facility */ setup_timer(&pf->service_timer, i40e_service_timer, (unsigned long)pf); @@ -7198,6 +8253,10 @@ pf->flags |= I40E_FLAG_NEED_LINK_UPDATE; pf->link_check_timeout = jiffies; + /* WoL defaults to disabled */ + pf->wol_en = false; + device_set_wakeup_enable(&pf->pdev->dev, pf->wol_en); + /* set up the main switch operations */ i40e_determine_queue_usage(pf); i40e_init_interrupt_scheme(pf); @@ -7212,7 +8271,7 @@ goto err_switch_setup; } - err = i40e_setup_pf_switch(pf); + err = i40e_setup_pf_switch(pf, false); if (err) { dev_info(&pdev->dev, "setup_pf_switch failed: %d\n", err); goto err_vsis; @@ -7240,7 +8299,8 @@ /* prep for VF support */ if ((pf->flags & I40E_FLAG_SRIOV_ENABLED) && - (pf->flags & I40E_FLAG_MSIX_ENABLED)) { + (pf->flags & I40E_FLAG_MSIX_ENABLED) && + !test_bit(__I40E_BAD_EEPROM, &pf->state)) { u32 val; /* disable link interrupts for VFs */ @@ -7248,8 +8308,20 @@ val &= ~I40E_PFGEN_PORTMDIO_NUM_VFLINK_STAT_ENA_MASK; wr32(hw, I40E_PFGEN_PORTMDIO_NUM, val); i40e_flush(hw); + + if (pci_num_vf(pdev)) { + dev_info(&pdev->dev, + "Active VFs found, allocating resources.\n"); + err = i40e_alloc_vfs(pf, pci_num_vf(pdev)); + if (err) + dev_info(&pdev->dev, + "Error %d allocating resources for existing VFs\n", + err); + } } + pfs_found++; + i40e_dbg_pf_init(pf); /* tell the firmware that we're starting */ @@ -7263,15 +8335,44 @@ mod_timer(&pf->service_timer, round_jiffies(jiffies + pf->service_timer_period)); + /* Get the negotiated link width and speed from PCI config space */ + pcie_capability_read_word(pf->pdev, PCI_EXP_LNKSTA, &link_status); + + i40e_set_pci_config_data(hw, link_status); + + dev_info(&pdev->dev, "PCI-Express: %s %s\n", + (hw->bus.speed == i40e_bus_speed_8000 ? "Speed 8.0GT/s" : + hw->bus.speed == i40e_bus_speed_5000 ? "Speed 5.0GT/s" : + hw->bus.speed == i40e_bus_speed_2500 ? "Speed 2.5GT/s" : + "Unknown"), + (hw->bus.width == i40e_bus_width_pcie_x8 ? "Width x8" : + hw->bus.width == i40e_bus_width_pcie_x4 ? "Width x4" : + hw->bus.width == i40e_bus_width_pcie_x2 ? "Width x2" : + hw->bus.width == i40e_bus_width_pcie_x1 ? "Width x1" : + "Unknown")); + + if (hw->bus.width < i40e_bus_width_pcie_x8 || + hw->bus.speed < i40e_bus_speed_8000) { + dev_warn(&pdev->dev, "PCI-Express bandwidth available for this device may be insufficient for optimal performance.\n"); + dev_warn(&pdev->dev, "Please move the device to a different PCI-e link with more lanes and/or higher transfer rate.\n"); + } + + /* print a string summarizing features */ + i40e_print_features(pf); + return 0; /* Unwind what we've done if something failed in the setup */ err_vsis: set_bit(__I40E_DOWN, &pf->state); -err_switch_setup: i40e_clear_interrupt_scheme(pf); kfree(pf->vsi); +err_switch_setup: + i40e_reset_interrupt_capability(pf); del_timer_sync(&pf->service_timer); +#ifdef CONFIG_I40E_DCB +err_init_dcb: +#endif /* CONFIG_I40E_DCB */ err_mac_addr: err_configure_lan_hmc: (void)i40e_shutdown_lan_hmc(hw); @@ -7313,16 +8414,18 @@ i40e_dbg_pf_exit(pf); - if (pf->flags & I40E_FLAG_SRIOV_ENABLED) { - i40e_free_vfs(pf); - pf->flags &= ~I40E_FLAG_SRIOV_ENABLED; - } + i40e_ptp_stop(pf); /* no more scheduling of any task */ set_bit(__I40E_DOWN, &pf->state); del_timer_sync(&pf->service_timer); cancel_work_sync(&pf->service_task); + if (pf->flags & I40E_FLAG_SRIOV_ENABLED) { + i40e_free_vfs(pf); + pf->flags &= ~I40E_FLAG_SRIOV_ENABLED; + } + i40e_fdir_teardown(pf); /* If there is a switch structure or any orphans, remove them. @@ -7356,7 +8459,6 @@ "Failed to destroy the HMC resources: %d\n", ret_code); /* shutdown the adminq */ - i40e_aq_queue_shutdown(&pf->hw, true); ret_code = i40e_shutdown_adminq(&pf->hw); if (ret_code) dev_warn(&pdev->dev, @@ -7413,7 +8515,11 @@ dev_info(&pdev->dev, "%s: error %d\n", __func__, error); /* shutdown all operations */ - i40e_pf_quiesce_all_vsi(pf); + if (!test_bit(__I40E_SUSPENDED, &pf->state)) { + rtnl_lock(); + i40e_prep_for_reset(pf); + rtnl_unlock(); + } /* Request a slot reset */ return PCI_ERS_RESULT_NEED_RESET; @@ -7476,9 +8582,103 @@ struct i40e_pf *pf = pci_get_drvdata(pdev); dev_info(&pdev->dev, "%s\n", __func__); + if (test_bit(__I40E_SUSPENDED, &pf->state)) + return; + + rtnl_lock(); i40e_handle_reset_warning(pf); + rtnl_lock(); +} + +/** + * i40e_shutdown - PCI callback for shutting down + * @pdev: PCI device information struct + **/ +static void i40e_shutdown(struct pci_dev *pdev) +{ + struct i40e_pf *pf = pci_get_drvdata(pdev); + struct i40e_hw *hw = &pf->hw; + + set_bit(__I40E_SUSPENDED, &pf->state); + set_bit(__I40E_DOWN, &pf->state); + rtnl_lock(); + i40e_prep_for_reset(pf); + rtnl_unlock(); + + wr32(hw, I40E_PFPM_APM, (pf->wol_en ? I40E_PFPM_APM_APME_MASK : 0)); + wr32(hw, I40E_PFPM_WUFC, (pf->wol_en ? I40E_PFPM_WUFC_MAG_MASK : 0)); + + if (system_state == SYSTEM_POWER_OFF) { + pci_wake_from_d3(pdev, pf->wol_en); + pci_set_power_state(pdev, PCI_D3hot); + } +} + +#ifdef CONFIG_PM +/** + * i40e_suspend - PCI callback for moving to D3 + * @pdev: PCI device information struct + **/ +static int i40e_suspend(struct pci_dev *pdev, pm_message_t state) +{ + struct i40e_pf *pf = pci_get_drvdata(pdev); + struct i40e_hw *hw = &pf->hw; + + set_bit(__I40E_SUSPENDED, &pf->state); + set_bit(__I40E_DOWN, &pf->state); + rtnl_lock(); + i40e_prep_for_reset(pf); + rtnl_unlock(); + + wr32(hw, I40E_PFPM_APM, (pf->wol_en ? I40E_PFPM_APM_APME_MASK : 0)); + wr32(hw, I40E_PFPM_WUFC, (pf->wol_en ? I40E_PFPM_WUFC_MAG_MASK : 0)); + + pci_wake_from_d3(pdev, pf->wol_en); + pci_set_power_state(pdev, PCI_D3hot); + + return 0; +} + +/** + * i40e_resume - PCI callback for waking up from D3 + * @pdev: PCI device information struct + **/ +static int i40e_resume(struct pci_dev *pdev) +{ + struct i40e_pf *pf = pci_get_drvdata(pdev); + u32 err; + + pci_set_power_state(pdev, PCI_D0); + pci_restore_state(pdev); + /* pci_restore_state() clears dev->state_saves, so + * call pci_save_state() again to restore it. + */ + pci_save_state(pdev); + + err = pci_enable_device_mem(pdev); + if (err) { + dev_err(&pdev->dev, + "%s: Cannot enable PCI device from suspend\n", + __func__); + return err; + } + pci_set_master(pdev); + + /* no wakeup events while running */ + pci_wake_from_d3(pdev, false); + + /* handling the reset will rebuild the device state */ + if (test_and_clear_bit(__I40E_SUSPENDED, &pf->state)) { + clear_bit(__I40E_DOWN, &pf->state); + rtnl_lock(); + i40e_reset_and_rebuild(pf, false); + rtnl_unlock(); + } + + return 0; } +#endif static const struct pci_error_handlers i40e_err_handler = { .error_detected = i40e_pci_error_detected, .slot_reset = i40e_pci_error_slot_reset, @@ -7490,6 +8690,11 @@ .id_table = i40e_pci_tbl, .probe = i40e_probe, .remove = i40e_remove, +#ifdef CONFIG_PM + .suspend = i40e_suspend, + .resume = i40e_resume, +#endif + .shutdown = i40e_shutdown, .err_handler = &i40e_err_handler, .sriov_configure = i40e_pci_sriov_configure, }; --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_nvm.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_nvm.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -28,14 +27,14 @@ #include "i40e_prototype.h" /** - * i40e_init_nvm_ops - Initialize NVM function pointers. - * @hw: pointer to the HW structure. + * i40e_init_nvm_ops - Initialize NVM function pointers + * @hw: pointer to the HW structure * - * Setups the function pointers and the NVM info structure. Should be called - * once per NVM initialization, e.g. inside the i40e_init_shared_code(). - * Please notice that the NVM term is used here (& in all methods covered - * in this file) as an equivalent of the FLASH part mapped into the SR. - * We are accessing FLASH always thru the Shadow RAM. + * Setup the function pointers and the NVM info structure. Should be called + * once per NVM initialization, e.g. inside the i40e_init_shared_code(). + * Please notice that the NVM term is used here (& in all methods covered + * in this file) as an equivalent of the FLASH part mapped into the SR. + * We are accessing FLASH always thru the Shadow RAM. **/ i40e_status i40e_init_nvm(struct i40e_hw *hw) { @@ -50,16 +49,16 @@ gens = rd32(hw, I40E_GLNVM_GENS); sr_size = ((gens & I40E_GLNVM_GENS_SR_SIZE_MASK) >> I40E_GLNVM_GENS_SR_SIZE_SHIFT); - /* Switching to words (sr_size contains power of 2KB). */ + /* Switching to words (sr_size contains power of 2KB) */ nvm->sr_size = (1 << sr_size) * I40E_SR_WORDS_IN_1KB; - /* Check if we are in the normal or blank NVM programming mode. */ + /* Check if we are in the normal or blank NVM programming mode */ fla = rd32(hw, I40E_GLNVM_FLA); - if (fla & I40E_GLNVM_FLA_LOCKED_MASK) { /* Normal programming mode. */ - /* Max NVM timeout. */ + if (fla & I40E_GLNVM_FLA_LOCKED_MASK) { /* Normal programming mode */ + /* Max NVM timeout */ nvm->timeout = I40E_MAX_NVM_TIMEOUT; nvm->blank_nvm_mode = false; - } else { /* Blank programming mode. */ + } else { /* Blank programming mode */ nvm->blank_nvm_mode = true; ret_code = I40E_ERR_NVM_BLANK_MODE; hw_dbg(hw, "NVM init error: unsupported blank mode.\n"); @@ -69,12 +68,12 @@ } /** - * i40e_acquire_nvm - Generic request for acquiring the NVM ownership. - * @hw: pointer to the HW structure. - * @access: NVM access type (read or write). + * i40e_acquire_nvm - Generic request for acquiring the NVM ownership + * @hw: pointer to the HW structure + * @access: NVM access type (read or write) * - * This function will request NVM ownership for reading - * via the proper Admin Command. + * This function will request NVM ownership for reading + * via the proper Admin Command. **/ i40e_status i40e_acquire_nvm(struct i40e_hw *hw, enum i40e_aq_resource_access_type access) @@ -88,20 +87,20 @@ ret_code = i40e_aq_request_resource(hw, I40E_NVM_RESOURCE_ID, access, 0, &time, NULL); - /* Reading the Global Device Timer. */ + /* Reading the Global Device Timer */ gtime = rd32(hw, I40E_GLVFGEN_TIMER); - /* Store the timeout. */ + /* Store the timeout */ hw->nvm.hw_semaphore_timeout = I40E_MS_TO_GTIME(time) + gtime; if (ret_code) { - /* Set the polling timeout. */ + /* Set the polling timeout */ if (time > I40E_MAX_NVM_TIMEOUT) timeout = I40E_MS_TO_GTIME(I40E_MAX_NVM_TIMEOUT) + gtime; else timeout = hw->nvm.hw_semaphore_timeout; - /* Poll until the current NVM owner timeouts. */ + /* Poll until the current NVM owner timeouts */ while (gtime < timeout) { usleep_range(10000, 20000); ret_code = i40e_aq_request_resource(hw, @@ -129,10 +128,10 @@ } /** - * i40e_release_nvm - Generic request for releasing the NVM ownership. - * @hw: pointer to the HW structure. + * i40e_release_nvm - Generic request for releasing the NVM ownership + * @hw: pointer to the HW structure * - * This function will release NVM resource via the proper Admin Command. + * This function will release NVM resource via the proper Admin Command. **/ void i40e_release_nvm(struct i40e_hw *hw) { @@ -141,17 +140,17 @@ } /** - * i40e_poll_sr_srctl_done_bit - Polls the GLNVM_SRCTL done bit. - * @hw: pointer to the HW structure. + * i40e_poll_sr_srctl_done_bit - Polls the GLNVM_SRCTL done bit + * @hw: pointer to the HW structure * - * Polls the SRCTL Shadow RAM register done bit. + * Polls the SRCTL Shadow RAM register done bit. **/ static i40e_status i40e_poll_sr_srctl_done_bit(struct i40e_hw *hw) { i40e_status ret_code = I40E_ERR_TIMEOUT; u32 srctl, wait_cnt; - /* Poll the I40E_GLNVM_SRCTL until the done bit is set. */ + /* Poll the I40E_GLNVM_SRCTL until the done bit is set */ for (wait_cnt = 0; wait_cnt < I40E_SRRD_SRCTL_ATTEMPTS; wait_cnt++) { srctl = rd32(hw, I40E_GLNVM_SRCTL); if (srctl & I40E_GLNVM_SRCTL_DONE_MASK) { @@ -161,20 +160,20 @@ udelay(5); } if (ret_code == I40E_ERR_TIMEOUT) - hw_dbg(hw, "Done bit in GLNVM_SRCTL not set"); + hw_dbg(hw, "Done bit in GLNVM_SRCTL not set\n"); return ret_code; } /** - * i40e_read_nvm_srctl - Reads Shadow RAM. - * @hw: pointer to the HW structure. - * @offset: offset of the Shadow RAM word to read (0x000000 - 0x001FFF). - * @data: word read from the Shadow RAM. + * i40e_read_nvm_word - Reads Shadow RAM + * @hw: pointer to the HW structure + * @offset: offset of the Shadow RAM word to read (0x000000 - 0x001FFF) + * @data: word read from the Shadow RAM * - * Reads 16 bit word from the Shadow RAM using the GLNVM_SRCTL register. + * Reads one 16 bit word from the Shadow RAM using the GLNVM_SRCTL register. **/ -static i40e_status i40e_read_nvm_srctl(struct i40e_hw *hw, u16 offset, - u16 *data) +i40e_status i40e_read_nvm_word(struct i40e_hw *hw, u16 offset, + u16 *data) { i40e_status ret_code = I40E_ERR_TIMEOUT; u32 sr_reg; @@ -185,15 +184,15 @@ goto read_nvm_exit; } - /* Poll the done bit first. */ + /* Poll the done bit first */ ret_code = i40e_poll_sr_srctl_done_bit(hw); if (!ret_code) { - /* Write the address and start reading. */ + /* Write the address and start reading */ sr_reg = (u32)(offset << I40E_GLNVM_SRCTL_ADDR_SHIFT) | (1 << I40E_GLNVM_SRCTL_START_SHIFT); wr32(hw, I40E_GLNVM_SRCTL, sr_reg); - /* Poll I40E_GLNVM_SRCTL until the done bit is set. */ + /* Poll I40E_GLNVM_SRCTL until the done bit is set */ ret_code = i40e_poll_sr_srctl_done_bit(hw); if (!ret_code) { sr_reg = rd32(hw, I40E_GLNVM_SRDATA); @@ -211,80 +210,45 @@ } /** - * i40e_read_nvm_word - Reads Shadow RAM word. - * @hw: pointer to the HW structure. - * @offset: offset of the Shadow RAM word to read (0x000000 - 0x001FFF). - * @data: word read from the Shadow RAM. - * - * Reads 16 bit word from the Shadow RAM. Each read is preceded - * with the NVM ownership taking and followed by the release. - **/ -i40e_status i40e_read_nvm_word(struct i40e_hw *hw, u16 offset, - u16 *data) -{ - i40e_status ret_code = 0; - - ret_code = i40e_acquire_nvm(hw, I40E_RESOURCE_READ); - if (!ret_code) { - ret_code = i40e_read_nvm_srctl(hw, offset, data); - i40e_release_nvm(hw); - } - - return ret_code; -} - -/** - * i40e_read_nvm_buffer - Reads Shadow RAM buffer. - * @hw: pointer to the HW structure. - * @offset: offset of the Shadow RAM word to read (0x000000 - 0x001FFF). - * @words: number of words to read (in) & - * number of words read before the NVM ownership timeout (out). - * @data: words read from the Shadow RAM. - * - * Reads 16 bit words (data buffer) from the SR using the i40e_read_nvm_srrd() - * method. The buffer read is preceded by the NVM ownership take - * and followed by the release. + * i40e_read_nvm_buffer - Reads Shadow RAM buffer + * @hw: pointer to the HW structure + * @offset: offset of the Shadow RAM word to read (0x000000 - 0x001FFF). + * @words: (in) number of words to read; (out) number of words actually read + * @data: words read from the Shadow RAM + * + * Reads 16 bit words (data buffer) from the SR using the i40e_read_nvm_srrd() + * method. The buffer read is preceded by the NVM ownership take + * and followed by the release. **/ i40e_status i40e_read_nvm_buffer(struct i40e_hw *hw, u16 offset, u16 *words, u16 *data) { i40e_status ret_code = 0; u16 index, word; - u32 time; - ret_code = i40e_acquire_nvm(hw, I40E_RESOURCE_READ); - if (!ret_code) { - /* Loop thru the selected region. */ - for (word = 0; word < *words; word++) { - index = offset + word; - ret_code = i40e_read_nvm_srctl(hw, index, &data[word]); - if (ret_code) - break; - /* Check if we didn't exceeded the semaphore timeout. */ - time = rd32(hw, I40E_GLVFGEN_TIMER); - if (time >= hw->nvm.hw_semaphore_timeout) { - ret_code = I40E_ERR_TIMEOUT; - hw_dbg(hw, "NVM read error: timeout.\n"); - break; - } - } - /* Update the number of words read from the Shadow RAM. */ - *words = word; - /* Release the NVM ownership. */ - i40e_release_nvm(hw); + /* Loop thru the selected region */ + for (word = 0; word < *words; word++) { + index = offset + word; + ret_code = i40e_read_nvm_word(hw, index, &data[word]); + if (ret_code) + break; } + /* Update the number of words read from the Shadow RAM */ + *words = word; + return ret_code; } /** - * i40e_calc_nvm_checksum - Calculates and returns the checksum - * @hw: pointer to hardware structure - * - * This function calculate SW Checksum that covers the whole 64kB shadow RAM - * except the VPD and PCIe ALT Auto-load modules. The structure and size of VPD - * is customer specific and unknown. Therefore, this function skips all maximum - * possible size of VPD (1kB). + * i40e_calc_nvm_checksum - Calculates and returns the checksum + * @hw: pointer to hardware structure + * @checksum: pointer to the checksum + * + * This function calculates SW Checksum that covers the whole 64kB shadow RAM + * except the VPD and PCIe ALT Auto-load modules. The structure and size of VPD + * is customer specific and unknown. Therefore, this function skips all maximum + * possible size of VPD (1kB). **/ static i40e_status i40e_calc_nvm_checksum(struct i40e_hw *hw, u16 *checksum) @@ -297,14 +261,14 @@ u32 i = 0; /* read pointer to VPD area */ - ret_code = i40e_read_nvm_srctl(hw, I40E_SR_VPD_PTR, &vpd_module); + ret_code = i40e_read_nvm_word(hw, I40E_SR_VPD_PTR, &vpd_module); if (ret_code) { ret_code = I40E_ERR_NVM_CHECKSUM; goto i40e_calc_nvm_checksum_exit; } /* read pointer to PCIe Alt Auto-load module */ - ret_code = i40e_read_nvm_srctl(hw, I40E_SR_PCIE_ALT_AUTO_LOAD_PTR, + ret_code = i40e_read_nvm_word(hw, I40E_SR_PCIE_ALT_AUTO_LOAD_PTR, &pcie_alt_module); if (ret_code) { ret_code = I40E_ERR_NVM_CHECKSUM; @@ -331,7 +295,7 @@ break; } - ret_code = i40e_read_nvm_srctl(hw, (u16)i, &word); + ret_code = i40e_read_nvm_word(hw, (u16)i, &word); if (ret_code) { ret_code = I40E_ERR_NVM_CHECKSUM; goto i40e_calc_nvm_checksum_exit; @@ -346,19 +310,19 @@ } /** - * i40e_validate_nvm_checksum - Validate EEPROM checksum - * @hw: pointer to hardware structure - * @checksum: calculated checksum + * i40e_validate_nvm_checksum - Validate EEPROM checksum + * @hw: pointer to hardware structure + * @checksum: calculated checksum * - * Performs checksum calculation and validates the NVM SW checksum. If the - * caller does not need checksum, the value can be NULL. + * Performs checksum calculation and validates the NVM SW checksum. If the + * caller does not need checksum, the value can be NULL. **/ i40e_status i40e_validate_nvm_checksum(struct i40e_hw *hw, u16 *checksum) { i40e_status ret_code = 0; u16 checksum_sr = 0; - u16 checksum_local; + u16 checksum_local = 0; ret_code = i40e_acquire_nvm(hw, I40E_RESOURCE_READ); if (ret_code) @@ -371,7 +335,7 @@ /* Do not use i40e_read_nvm_word() because we do not want to take * the synchronization semaphores twice here. */ - i40e_read_nvm_srctl(hw, I40E_SR_SW_CHECKSUM_WORD, &checksum_sr); + i40e_read_nvm_word(hw, I40E_SR_SW_CHECKSUM_WORD, &checksum_sr); /* Verify read checksum from EEPROM is the same as * calculated checksum --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_osdep.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_osdep.h @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_prototype.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_prototype.h @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -51,7 +50,6 @@ void *buff, /* can be NULL */ u16 buff_size, struct i40e_asq_cmd_details *cmd_details); -bool i40e_asq_done(struct i40e_hw *hw); /* debug function for adminq */ void i40e_debug_aq(struct i40e_hw *hw, @@ -60,10 +58,11 @@ void *buffer); void i40e_idle_aq(struct i40e_hw *hw); -void i40e_resume_aq(struct i40e_hw *hw); +bool i40e_check_asq_alive(struct i40e_hw *hw); +i40e_status i40e_aq_queue_shutdown(struct i40e_hw *hw, bool unloading); u32 i40e_led_get(struct i40e_hw *hw); -void i40e_led_set(struct i40e_hw *hw, u32 mode); +void i40e_led_set(struct i40e_hw *hw, u32 mode, bool blink); /* admin send queue commands */ @@ -71,8 +70,6 @@ u16 *fw_major_version, u16 *fw_minor_version, u16 *api_major_version, u16 *api_minor_version, struct i40e_asq_cmd_details *cmd_details); -i40e_status i40e_aq_queue_shutdown(struct i40e_hw *hw, - bool unloading); i40e_status i40e_aq_set_phy_reset(struct i40e_hw *hw, struct i40e_asq_cmd_details *cmd_details); i40e_status i40e_aq_set_default_vsi(struct i40e_hw *hw, u16 vsi_id, @@ -95,9 +92,9 @@ u16 vsi_id, bool set_filter, struct i40e_asq_cmd_details *cmd_details); i40e_status i40e_aq_set_vsi_unicast_promiscuous(struct i40e_hw *hw, - u16 vsi_id, bool set, struct i40e_asq_cmd_details *cmd_details); + u16 vsi_id, bool set, struct i40e_asq_cmd_details *cmd_details); i40e_status i40e_aq_set_vsi_multicast_promiscuous(struct i40e_hw *hw, - u16 vsi_id, bool set, struct i40e_asq_cmd_details *cmd_details); + u16 vsi_id, bool set, struct i40e_asq_cmd_details *cmd_details); i40e_status i40e_aq_get_vsi_params(struct i40e_hw *hw, struct i40e_vsi_context *vsi_ctx, struct i40e_asq_cmd_details *cmd_details); @@ -106,7 +103,8 @@ struct i40e_asq_cmd_details *cmd_details); i40e_status i40e_aq_add_veb(struct i40e_hw *hw, u16 uplink_seid, u16 downlink_seid, u8 enabled_tc, - bool default_port, u16 *pveb_seid, + bool default_port, bool enable_l2_filtering, + u16 *pveb_seid, struct i40e_asq_cmd_details *cmd_details); i40e_status i40e_aq_get_veb_parameters(struct i40e_hw *hw, u16 veb_seid, u16 *switch_id, bool *floating, @@ -119,12 +117,6 @@ i40e_status i40e_aq_remove_macvlan(struct i40e_hw *hw, u16 vsi_id, struct i40e_aqc_remove_macvlan_element_data *mv_list, u16 count, struct i40e_asq_cmd_details *cmd_details); -i40e_status i40e_aq_add_vlan(struct i40e_hw *hw, u16 vsi_id, - struct i40e_aqc_add_remove_vlan_element_data *v_list, - u8 count, struct i40e_asq_cmd_details *cmd_details); -i40e_status i40e_aq_remove_vlan(struct i40e_hw *hw, u16 vsi_id, - struct i40e_aqc_add_remove_vlan_element_data *v_list, - u8 count, struct i40e_asq_cmd_details *cmd_details); i40e_status i40e_aq_send_msg_to_vf(struct i40e_hw *hw, u16 vfid, u32 v_opcode, u32 v_retval, u8 *msg, u16 msglen, struct i40e_asq_cmd_details *cmd_details); @@ -164,11 +156,19 @@ struct i40e_asq_cmd_details *cmd_details); i40e_status i40e_aq_start_lldp(struct i40e_hw *hw, struct i40e_asq_cmd_details *cmd_details); +i40e_status i40e_aq_add_udp_tunnel(struct i40e_hw *hw, + u16 udp_port, u8 header_len, + u8 protocol_index, u8 *filter_index, + struct i40e_asq_cmd_details *cmd_details); +i40e_status i40e_aq_del_udp_tunnel(struct i40e_hw *hw, u8 index, + struct i40e_asq_cmd_details *cmd_details); i40e_status i40e_aq_delete_element(struct i40e_hw *hw, u16 seid, struct i40e_asq_cmd_details *cmd_details); i40e_status i40e_aq_mac_address_write(struct i40e_hw *hw, u16 flags, u8 *mac_addr, struct i40e_asq_cmd_details *cmd_details); +i40e_status i40e_aq_dcb_updated(struct i40e_hw *hw, + struct i40e_asq_cmd_details *cmd_details); i40e_status i40e_aq_set_hmc_resource_profile(struct i40e_hw *hw, enum i40e_aq_hmc_profile profile, u8 pe_vf_enabled_count, @@ -179,6 +179,15 @@ i40e_status i40e_aq_config_vsi_tc_bw(struct i40e_hw *hw, u16 seid, struct i40e_aqc_configure_vsi_tc_bw_data *bw_data, struct i40e_asq_cmd_details *cmd_details); +i40e_status i40e_aq_config_switch_comp_ets(struct i40e_hw *hw, + u16 seid, + struct i40e_aqc_configure_switching_comp_ets_data *ets_data, + enum i40e_admin_queue_opc opcode, + struct i40e_asq_cmd_details *cmd_details); +i40e_status i40e_aq_config_switch_comp_bw_config(struct i40e_hw *hw, + u16 seid, + struct i40e_aqc_configure_switching_comp_bw_config_data *bw_data, + struct i40e_asq_cmd_details *cmd_details); i40e_status i40e_aq_query_vsi_bw_config(struct i40e_hw *hw, u16 seid, struct i40e_aqc_query_vsi_bw_config_resp *bw_data, @@ -207,8 +216,6 @@ i40e_status i40e_get_mac_addr(struct i40e_hw *hw, u8 *mac_addr); i40e_status i40e_validate_mac_addr(u8 *mac_addr); -i40e_status i40e_read_lldp_cfg(struct i40e_hw *hw, - struct i40e_lldp_variables *lldp_cfg); /* prototype for functions used for NVM access */ i40e_status i40e_init_nvm(struct i40e_hw *hw); i40e_status i40e_acquire_nvm(struct i40e_hw *hw, @@ -222,6 +229,14 @@ u16 *words, u16 *data); i40e_status i40e_validate_nvm_checksum(struct i40e_hw *hw, u16 *checksum); +void i40e_set_pci_config_data(struct i40e_hw *hw, u16 link_status); + +extern struct i40e_rx_ptype_decoded i40e_ptype_lookup[]; + +static inline struct i40e_rx_ptype_decoded decode_rx_desc_ptype(u8 ptype) +{ + return i40e_ptype_lookup[ptype]; +} /* prototype for functions used for SW locks */ @@ -236,4 +251,9 @@ struct i40e_asq_cmd_details *cmd_details); i40e_status i40e_set_filter_control(struct i40e_hw *hw, struct i40e_filter_control_settings *settings); +i40e_status i40e_aq_add_rem_control_packet_filter(struct i40e_hw *hw, + u8 *mac_addr, u16 ethtype, u16 flags, + u16 vsi_seid, u16 queue, bool is_add, + struct i40e_control_filter_stats *stats, + struct i40e_asq_cmd_details *cmd_details); #endif /* _I40E_PROTOTYPE_H_ */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_ptp.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_ptp.c @@ -0,0 +1,662 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Driver + * Copyright(c) 2013 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#include "i40e.h" +#include +#include + +/* The XL710 timesync is very much like Intel's 82599 design when it comes to + * the fundamental clock design. However, the clock operations are much simpler + * in the XL710 because the device supports a full 64 bits of nanoseconds. + * Because the field is so wide, we can forgo the cycle counter and just + * operate with the nanosecond field directly without fear of overflow. + * + * Much like the 82599, the update period is dependent upon the link speed: + * At 40Gb link or no link, the period is 1.6ns. + * At 10Gb link, the period is multiplied by 2. (3.2ns) + * At 1Gb link, the period is multiplied by 20. (32ns) + * 1588 functionality is not supported at 100Mbps. + */ +#define I40E_PTP_40GB_INCVAL 0x0199999999ULL +#define I40E_PTP_10GB_INCVAL 0x0333333333ULL +#define I40E_PTP_1GB_INCVAL 0x2000000000ULL + +#define I40E_PRTTSYN_CTL1_TSYNTYPE_V1 (0x1 << \ + I40E_PRTTSYN_CTL1_TSYNTYPE_SHIFT) +#define I40E_PRTTSYN_CTL1_TSYNTYPE_V2 (0x2 << \ + I40E_PRTTSYN_CTL1_TSYNTYPE_SHIFT) +#define I40E_PTP_TX_TIMEOUT (HZ * 15) + +/** + * i40e_ptp_read - Read the PHC time from the device + * @pf: Board private structure + * @ts: timespec structure to hold the current time value + * + * This function reads the PRTTSYN_TIME registers and stores them in a + * timespec. However, since the registers are 64 bits of nanoseconds, we must + * convert the result to a timespec before we can return. + **/ +static void i40e_ptp_read(struct i40e_pf *pf, struct timespec *ts) +{ + struct i40e_hw *hw = &pf->hw; + u32 hi, lo; + u64 ns; + + /* The timer latches on the lowest register read. */ + lo = rd32(hw, I40E_PRTTSYN_TIME_L); + hi = rd32(hw, I40E_PRTTSYN_TIME_H); + + ns = (((u64)hi) << 32) | lo; + + *ts = ns_to_timespec(ns); +} + +/** + * i40e_ptp_write - Write the PHC time to the device + * @pf: Board private structure + * @ts: timespec structure that holds the new time value + * + * This function writes the PRTTSYN_TIME registers with the user value. Since + * we receive a timespec from the stack, we must convert that timespec into + * nanoseconds before programming the registers. + **/ +static void i40e_ptp_write(struct i40e_pf *pf, const struct timespec *ts) +{ + struct i40e_hw *hw = &pf->hw; + u64 ns = timespec_to_ns(ts); + + /* The timer will not update until the high register is written, so + * write the low register first. + */ + wr32(hw, I40E_PRTTSYN_TIME_L, ns & 0xFFFFFFFF); + wr32(hw, I40E_PRTTSYN_TIME_H, ns >> 32); +} + +/** + * i40e_ptp_convert_to_hwtstamp - Convert device clock to system time + * @hwtstamps: Timestamp structure to update + * @timestamp: Timestamp from the hardware + * + * We need to convert the NIC clock value into a hwtstamp which can be used by + * the upper level timestamping functions. Since the timestamp is simply a 64- + * bit nanosecond value, we can call ns_to_ktime directly to handle this. + **/ +static void i40e_ptp_convert_to_hwtstamp(struct skb_shared_hwtstamps *hwtstamps, + u64 timestamp) +{ + memset(hwtstamps, 0, sizeof(*hwtstamps)); + + hwtstamps->hwtstamp = ns_to_ktime(timestamp); +} + +/** + * i40e_ptp_adjfreq - Adjust the PHC frequency + * @ptp: The PTP clock structure + * @ppb: Parts per billion adjustment from the base + * + * Adjust the frequency of the PHC by the indicated parts per billion from the + * base frequency. + **/ +static int i40e_ptp_adjfreq(struct ptp_clock_info *ptp, s32 ppb) +{ + struct i40e_pf *pf = container_of(ptp, struct i40e_pf, ptp_caps); + struct i40e_hw *hw = &pf->hw; + u64 adj, freq, diff; + int neg_adj = 0; + + if (ppb < 0) { + neg_adj = 1; + ppb = -ppb; + } + + smp_mb(); /* Force any pending update before accessing. */ + adj = ACCESS_ONCE(pf->ptp_base_adj); + + freq = adj; + freq *= ppb; + diff = div_u64(freq, 1000000000ULL); + + if (neg_adj) + adj -= diff; + else + adj += diff; + + wr32(hw, I40E_PRTTSYN_INC_L, adj & 0xFFFFFFFF); + wr32(hw, I40E_PRTTSYN_INC_H, adj >> 32); + + return 0; +} + +/** + * i40e_ptp_adjtime - Adjust the PHC time + * @ptp: The PTP clock structure + * @delta: Offset in nanoseconds to adjust the PHC time by + * + * Adjust the frequency of the PHC by the indicated parts per billion from the + * base frequency. + **/ +static int i40e_ptp_adjtime(struct ptp_clock_info *ptp, s64 delta) +{ + struct i40e_pf *pf = container_of(ptp, struct i40e_pf, ptp_caps); + struct timespec now, then = ns_to_timespec(delta); + unsigned long flags; + + spin_lock_irqsave(&pf->tmreg_lock, flags); + + i40e_ptp_read(pf, &now); + now = timespec_add(now, then); + i40e_ptp_write(pf, (const struct timespec *)&now); + + spin_unlock_irqrestore(&pf->tmreg_lock, flags); + + return 0; +} + +/** + * i40e_ptp_gettime - Get the time of the PHC + * @ptp: The PTP clock structure + * @ts: timespec structure to hold the current time value + * + * Read the device clock and return the correct value on ns, after converting it + * into a timespec struct. + **/ +static int i40e_ptp_gettime(struct ptp_clock_info *ptp, struct timespec *ts) +{ + struct i40e_pf *pf = container_of(ptp, struct i40e_pf, ptp_caps); + unsigned long flags; + + spin_lock_irqsave(&pf->tmreg_lock, flags); + i40e_ptp_read(pf, ts); + spin_unlock_irqrestore(&pf->tmreg_lock, flags); + + return 0; +} + +/** + * i40e_ptp_settime - Set the time of the PHC + * @ptp: The PTP clock structure + * @ts: timespec structure that holds the new time value + * + * Set the device clock to the user input value. The conversion from timespec + * to ns happens in the write function. + **/ +static int i40e_ptp_settime(struct ptp_clock_info *ptp, + const struct timespec *ts) +{ + struct i40e_pf *pf = container_of(ptp, struct i40e_pf, ptp_caps); + unsigned long flags; + + spin_lock_irqsave(&pf->tmreg_lock, flags); + i40e_ptp_write(pf, ts); + spin_unlock_irqrestore(&pf->tmreg_lock, flags); + + return 0; +} + +/** + * i40e_ptp_tx_work + * @work: pointer to work struct + * + * This work function polls the PRTTSYN_STAT_0.TXTIME bit to determine when a + * Tx timestamp event has occurred, in order to pass the Tx timestamp value up + * the stack in the skb. + */ +static void i40e_ptp_tx_work(struct work_struct *work) +{ + struct i40e_pf *pf = container_of(work, struct i40e_pf, + ptp_tx_work); + struct i40e_hw *hw = &pf->hw; + u32 prttsyn_stat_0; + + if (!pf->ptp_tx_skb) + return; + + if (time_is_before_jiffies(pf->ptp_tx_start + + I40E_PTP_TX_TIMEOUT)) { + dev_kfree_skb_any(pf->ptp_tx_skb); + pf->ptp_tx_skb = NULL; + pf->tx_hwtstamp_timeouts++; + dev_warn(&pf->pdev->dev, "clearing Tx timestamp hang\n"); + return; + } + + prttsyn_stat_0 = rd32(hw, I40E_PRTTSYN_STAT_0); + if (prttsyn_stat_0 & I40E_PRTTSYN_STAT_0_TXTIME_MASK) + i40e_ptp_tx_hwtstamp(pf); + else + schedule_work(&pf->ptp_tx_work); +} + +/** + * i40e_ptp_enable - Enable/disable ancillary features of the PHC subsystem + * @ptp: The PTP clock structure + * @rq: The requested feature to change + * @on: Enable/disable flag + * + * The XL710 does not support any of the ancillary features of the PHC + * subsystem, so this function may just return. + **/ +static int i40e_ptp_enable(struct ptp_clock_info *ptp, + struct ptp_clock_request *rq, int on) +{ + return -EOPNOTSUPP; +} + +/** + * i40e_ptp_rx_hang - Detect error case when Rx timestamp registers are hung + * @vsi: The VSI with the rings relevant to 1588 + * + * This watchdog task is scheduled to detect error case where hardware has + * dropped an Rx packet that was timestamped when the ring is full. The + * particular error is rare but leaves the device in a state unable to timestamp + * any future packets. + **/ +void i40e_ptp_rx_hang(struct i40e_vsi *vsi) +{ + struct i40e_pf *pf = vsi->back; + struct i40e_hw *hw = &pf->hw; + struct i40e_ring *rx_ring; + unsigned long rx_event; + u32 prttsyn_stat; + int n; + + if (pf->flags & I40E_FLAG_PTP) + return; + + prttsyn_stat = rd32(hw, I40E_PRTTSYN_STAT_1); + + /* Unless all four receive timestamp registers are latched, we are not + * concerned about a possible PTP Rx hang, so just update the timeout + * counter and exit. + */ + if (!(prttsyn_stat & ((I40E_PRTTSYN_STAT_1_RXT0_MASK << + I40E_PRTTSYN_STAT_1_RXT0_SHIFT) | + (I40E_PRTTSYN_STAT_1_RXT1_MASK << + I40E_PRTTSYN_STAT_1_RXT1_SHIFT) | + (I40E_PRTTSYN_STAT_1_RXT2_MASK << + I40E_PRTTSYN_STAT_1_RXT2_SHIFT) | + (I40E_PRTTSYN_STAT_1_RXT3_MASK << + I40E_PRTTSYN_STAT_1_RXT3_SHIFT)))) { + pf->last_rx_ptp_check = jiffies; + return; + } + + /* Determine the most recent watchdog or rx_timestamp event. */ + rx_event = pf->last_rx_ptp_check; + for (n = 0; n < vsi->num_queue_pairs; n++) { + rx_ring = vsi->rx_rings[n]; + if (time_after(rx_ring->last_rx_timestamp, rx_event)) + rx_event = rx_ring->last_rx_timestamp; + } + + /* Only need to read the high RXSTMP register to clear the lock */ + if (time_is_before_jiffies(rx_event + 5 * HZ)) { + rd32(hw, I40E_PRTTSYN_RXTIME_H(0)); + rd32(hw, I40E_PRTTSYN_RXTIME_H(1)); + rd32(hw, I40E_PRTTSYN_RXTIME_H(2)); + rd32(hw, I40E_PRTTSYN_RXTIME_H(3)); + pf->last_rx_ptp_check = jiffies; + pf->rx_hwtstamp_cleared++; + dev_warn(&vsi->back->pdev->dev, + "%s: clearing Rx timestamp hang\n", + __func__); + } +} + +/** + * i40e_ptp_tx_hwtstamp - Utility function which returns the Tx timestamp + * @pf: Board private structure + * + * Read the value of the Tx timestamp from the registers, convert it into a + * value consumable by the stack, and store that result into the shhwtstamps + * struct before returning it up the stack. + **/ +void i40e_ptp_tx_hwtstamp(struct i40e_pf *pf) +{ + struct skb_shared_hwtstamps shhwtstamps; + struct i40e_hw *hw = &pf->hw; + u32 hi, lo; + u64 ns; + + lo = rd32(hw, I40E_PRTTSYN_TXTIME_L); + hi = rd32(hw, I40E_PRTTSYN_TXTIME_H); + + ns = (((u64)hi) << 32) | lo; + + i40e_ptp_convert_to_hwtstamp(&shhwtstamps, ns); + skb_tstamp_tx(pf->ptp_tx_skb, &shhwtstamps); + dev_kfree_skb_any(pf->ptp_tx_skb); + pf->ptp_tx_skb = NULL; +} + +/** + * i40e_ptp_rx_hwtstamp - Utility function which checks for an Rx timestamp + * @pf: Board private structure + * @skb: Particular skb to send timestamp with + * @index: Index into the receive timestamp registers for the timestamp + * + * The XL710 receives a notification in the receive descriptor with an offset + * into the set of RXTIME registers where the timestamp is for that skb. This + * function goes and fetches the receive timestamp from that offset, if a valid + * one exists. The RXTIME registers are in ns, so we must convert the result + * first. + **/ +void i40e_ptp_rx_hwtstamp(struct i40e_pf *pf, struct sk_buff *skb, u8 index) +{ + u32 prttsyn_stat, hi, lo; + struct i40e_hw *hw; + u64 ns; + + /* Since we cannot turn off the Rx timestamp logic if the device is + * doing Tx timestamping, check if Rx timestamping is configured. + */ + if (!pf->ptp_rx) + return; + + hw = &pf->hw; + + prttsyn_stat = rd32(hw, I40E_PRTTSYN_STAT_1); + + if (!(prttsyn_stat & (1 << index))) + return; + + lo = rd32(hw, I40E_PRTTSYN_RXTIME_L(index)); + hi = rd32(hw, I40E_PRTTSYN_RXTIME_H(index)); + + ns = (((u64)hi) << 32) | lo; + + i40e_ptp_convert_to_hwtstamp(skb_hwtstamps(skb), ns); +} + +/** + * i40e_ptp_set_increment - Utility function to update clock increment rate + * @pf: Board private structure + * + * During a link change, the DMA frequency that drives the 1588 logic will + * change. In order to keep the PRTTSYN_TIME registers in units of nanoseconds, + * we must update the increment value per clock tick. + **/ +void i40e_ptp_set_increment(struct i40e_pf *pf) +{ + struct i40e_link_status *hw_link_info; + struct i40e_hw *hw = &pf->hw; + u64 incval; + + hw_link_info = &hw->phy.link_info; + + i40e_aq_get_link_info(&pf->hw, true, NULL, NULL); + + switch (hw_link_info->link_speed) { + case I40E_LINK_SPEED_10GB: + incval = I40E_PTP_10GB_INCVAL; + break; + case I40E_LINK_SPEED_1GB: + incval = I40E_PTP_1GB_INCVAL; + break; + case I40E_LINK_SPEED_100MB: + dev_warn(&pf->pdev->dev, + "%s: 1588 functionality is not supported at 100 Mbps. Stopping the PHC.\n", + __func__); + incval = 0; + break; + case I40E_LINK_SPEED_40GB: + default: + incval = I40E_PTP_40GB_INCVAL; + break; + } + + /* Write the new increment value into the increment register. The + * hardware will not update the clock until both registers have been + * written. + */ + wr32(hw, I40E_PRTTSYN_INC_L, incval & 0xFFFFFFFF); + wr32(hw, I40E_PRTTSYN_INC_H, incval >> 32); + + /* Update the base adjustement value. */ + ACCESS_ONCE(pf->ptp_base_adj) = incval; + smp_mb(); /* Force the above update. */ +} + +/** + * i40e_ptp_get_ts_config - ioctl interface to read the HW timestamping + * @pf: Board private structure + * @ifreq: ioctl data + * + * Obtain the current hardware timestamping settigs as requested. To do this, + * keep a shadow copy of the timestamp settings rather than attempting to + * deconstruct it from the registers. + **/ +int i40e_ptp_get_ts_config(struct i40e_pf *pf, struct ifreq *ifr) +{ + struct hwtstamp_config *config = &pf->tstamp_config; + + return copy_to_user(ifr->ifr_data, config, sizeof(*config)) ? + -EFAULT : 0; +} + +/** + * i40e_ptp_set_ts_config - ioctl interface to control the HW timestamping + * @pf: Board private structure + * @ifreq: ioctl data + * + * Respond to the user filter requests and make the appropriate hardware + * changes here. The XL710 cannot support splitting of the Tx/Rx timestamping + * logic, so keep track in software of whether to indicate these timestamps + * or not. + * + * It is permissible to "upgrade" the user request to a broader filter, as long + * as the user receives the timestamps they care about and the user is notified + * the filter has been broadened. + **/ +int i40e_ptp_set_ts_config(struct i40e_pf *pf, struct ifreq *ifr) +{ + struct i40e_hw *hw = &pf->hw; + struct hwtstamp_config *config = &pf->tstamp_config; + u32 pf_id, tsyntype, regval; + + if (copy_from_user(config, ifr->ifr_data, sizeof(*config))) + return -EFAULT; + + /* Reserved for future extensions. */ + if (config->flags) + return -EINVAL; + + /* Confirm that 1588 is supported on this PF. */ + pf_id = (rd32(hw, I40E_PRTTSYN_CTL0) & I40E_PRTTSYN_CTL0_PF_ID_MASK) >> + I40E_PRTTSYN_CTL0_PF_ID_SHIFT; + if (hw->pf_id != pf_id) + return -EINVAL; + + switch (config->tx_type) { + case HWTSTAMP_TX_OFF: + pf->ptp_tx = false; + break; + case HWTSTAMP_TX_ON: + pf->ptp_tx = true; + break; + default: + return -ERANGE; + } + + switch (config->rx_filter) { + case HWTSTAMP_FILTER_NONE: + pf->ptp_rx = false; + tsyntype = 0; + break; + case HWTSTAMP_FILTER_PTP_V1_L4_SYNC: + case HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ: + case HWTSTAMP_FILTER_PTP_V1_L4_EVENT: + pf->ptp_rx = true; + tsyntype = I40E_PRTTSYN_CTL1_V1MESSTYPE0_MASK | + I40E_PRTTSYN_CTL1_TSYNTYPE_V1 | + I40E_PRTTSYN_CTL1_UDP_ENA_MASK; + config->rx_filter = HWTSTAMP_FILTER_PTP_V1_L4_EVENT; + break; + case HWTSTAMP_FILTER_PTP_V2_EVENT: + case HWTSTAMP_FILTER_PTP_V2_L2_EVENT: + case HWTSTAMP_FILTER_PTP_V2_L4_EVENT: + case HWTSTAMP_FILTER_PTP_V2_SYNC: + case HWTSTAMP_FILTER_PTP_V2_L2_SYNC: + case HWTSTAMP_FILTER_PTP_V2_L4_SYNC: + case HWTSTAMP_FILTER_PTP_V2_DELAY_REQ: + case HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ: + case HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ: + pf->ptp_rx = true; + tsyntype = I40E_PRTTSYN_CTL1_V2MESSTYPE0_MASK | + I40E_PRTTSYN_CTL1_TSYNTYPE_V2 | + I40E_PRTTSYN_CTL1_UDP_ENA_MASK; + config->rx_filter = HWTSTAMP_FILTER_PTP_V2_EVENT; + break; + case HWTSTAMP_FILTER_ALL: + default: + return -ERANGE; + } + + /* Clear out all 1588-related registers to clear and unlatch them. */ + rd32(hw, I40E_PRTTSYN_STAT_0); + rd32(hw, I40E_PRTTSYN_TXTIME_H); + rd32(hw, I40E_PRTTSYN_RXTIME_H(0)); + rd32(hw, I40E_PRTTSYN_RXTIME_H(1)); + rd32(hw, I40E_PRTTSYN_RXTIME_H(2)); + rd32(hw, I40E_PRTTSYN_RXTIME_H(3)); + + /* Enable/disable the Tx timestamp interrupt based on user input. */ + regval = rd32(hw, I40E_PRTTSYN_CTL0); + if (pf->ptp_tx) + regval |= I40E_PRTTSYN_CTL0_TXTIME_INT_ENA_MASK; + else + regval &= ~I40E_PRTTSYN_CTL0_TXTIME_INT_ENA_MASK; + wr32(hw, I40E_PRTTSYN_CTL0, regval); + + regval = rd32(hw, I40E_PFINT_ICR0_ENA); + if (pf->ptp_tx) + regval |= I40E_PFINT_ICR0_ENA_TIMESYNC_MASK; + else + regval &= ~I40E_PFINT_ICR0_ENA_TIMESYNC_MASK; + wr32(hw, I40E_PFINT_ICR0_ENA, regval); + + /* There is no simple on/off switch for Rx. To "disable" Rx support, + * ignore any received timestamps, rather than turn off the clock. + */ + if (pf->ptp_rx) { + regval = rd32(hw, I40E_PRTTSYN_CTL1); + /* clear everything but the enable bit */ + regval &= I40E_PRTTSYN_CTL1_TSYNENA_MASK; + /* now enable bits for desired Rx timestamps */ + regval |= tsyntype; + wr32(hw, I40E_PRTTSYN_CTL1, regval); + } + + return copy_to_user(ifr->ifr_data, config, sizeof(*config)) ? + -EFAULT : 0; +} + +/** + * i40e_ptp_init - Initialize the 1588 support and register the PHC + * @pf: Board private structure + * + * This function registers the device clock as a PHC. If it is successful, it + * starts the clock in the hardware. + **/ +void i40e_ptp_init(struct i40e_pf *pf) +{ + struct i40e_hw *hw = &pf->hw; + struct net_device *netdev = pf->vsi[pf->lan_vsi]->netdev; + + strncpy(pf->ptp_caps.name, "i40e", sizeof(pf->ptp_caps.name)); + pf->ptp_caps.owner = THIS_MODULE; + pf->ptp_caps.max_adj = 999999999; + pf->ptp_caps.n_ext_ts = 0; + pf->ptp_caps.pps = 0; + pf->ptp_caps.adjfreq = i40e_ptp_adjfreq; + pf->ptp_caps.adjtime = i40e_ptp_adjtime; + pf->ptp_caps.gettime = i40e_ptp_gettime; + pf->ptp_caps.settime = i40e_ptp_settime; + pf->ptp_caps.enable = i40e_ptp_enable; + + /* Attempt to register the clock before enabling the hardware. */ + pf->ptp_clock = ptp_clock_register(&pf->ptp_caps, &pf->pdev->dev); + if (IS_ERR(pf->ptp_clock)) { + pf->ptp_clock = NULL; + dev_err(&pf->pdev->dev, "%s: ptp_clock_register failed\n", + __func__); + } else { + struct timespec ts; + u32 regval; + + spin_lock_init(&pf->tmreg_lock); + INIT_WORK(&pf->ptp_tx_work, i40e_ptp_tx_work); + + dev_info(&pf->pdev->dev, "%s: added PHC on %s\n", __func__, + netdev->name); + pf->flags |= I40E_FLAG_PTP; + + /* Ensure the clocks are running. */ + regval = rd32(hw, I40E_PRTTSYN_CTL0); + regval |= I40E_PRTTSYN_CTL0_TSYNENA_MASK; + wr32(hw, I40E_PRTTSYN_CTL0, regval); + regval = rd32(hw, I40E_PRTTSYN_CTL1); + regval |= I40E_PRTTSYN_CTL1_TSYNENA_MASK; + wr32(hw, I40E_PRTTSYN_CTL1, regval); + + /* Set the increment value per clock tick. */ + i40e_ptp_set_increment(pf); + + /* reset the tstamp_config */ + memset(&pf->tstamp_config, 0, sizeof(pf->tstamp_config)); + + /* Set the clock value. */ + ts = ktime_to_timespec(ktime_get_real()); + i40e_ptp_settime(&pf->ptp_caps, &ts); + } +} + +/** + * i40e_ptp_stop - Disable the driver/hardware support and unregister the PHC + * @pf: Board private structure + * + * This function handles the cleanup work required from the initialization by + * clearing out the important information and unregistering the PHC. + **/ +void i40e_ptp_stop(struct i40e_pf *pf) +{ + pf->flags &= ~I40E_FLAG_PTP; + pf->ptp_tx = false; + pf->ptp_rx = false; + + cancel_work_sync(&pf->ptp_tx_work); + if (pf->ptp_tx_skb) { + dev_kfree_skb_any(pf->ptp_tx_skb); + pf->ptp_tx_skb = NULL; + } + + if (pf->ptp_clock) { + ptp_clock_unregister(pf->ptp_clock); + pf->ptp_clock = NULL; + dev_info(&pf->pdev->dev, "%s: removed PHC on %s\n", __func__, + pf->vsi[pf->lan_vsi]->netdev->name); + } +} --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_register.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_register.h @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -28,6 +27,10 @@ #ifndef _I40E_REGISTER_H_ #define _I40E_REGISTER_H_ +#define I40E_GL_GP_FUSE(_i) (0x0009400C + ((_i) * 4)) /* _i=0...28 */ +#define I40E_GL_GP_FUSE_MAX_INDEX 28 +#define I40E_GL_GP_FUSE_GL_GP_FUSE_SHIFT 0 +#define I40E_GL_GP_FUSE_GL_GP_FUSE_MASK (0xFFFFFFFF << I40E_GL_GP_FUSE_GL_GP_FUSE_SHIFT) #define I40E_GLPCI_PM_MUX_NPQ 0x0009C4F4 #define I40E_GLPCI_PM_MUX_NPQ_NPQ_NUM_PORT_SEL_SHIFT 0 #define I40E_GLPCI_PM_MUX_NPQ_NPQ_NUM_PORT_SEL_MASK (0x7 << I40E_GLPCI_PM_MUX_NPQ_NPQ_NUM_PORT_SEL_SHIFT) @@ -38,6 +41,11 @@ #define I40E_GLPCI_PM_MUX_PFB_PFB_PORT_SEL_MASK (0x1F << I40E_GLPCI_PM_MUX_PFB_PFB_PORT_SEL_SHIFT) #define I40E_GLPCI_PM_MUX_PFB_INNER_PORT_SEL_SHIFT 16 #define I40E_GLPCI_PM_MUX_PFB_INNER_PORT_SEL_MASK (0x7 << I40E_GLPCI_PM_MUX_PFB_INNER_PORT_SEL_SHIFT) +#define I40E_GLPCI_PQ_MAX_USED_SPC 0x0009C4EC +#define I40E_GLPCI_PQ_MAX_USED_SPC_GLPCI_PQ_MAX_USED_SPC_12_SHIFT 0 +#define I40E_GLPCI_PQ_MAX_USED_SPC_GLPCI_PQ_MAX_USED_SPC_12_MASK (0xFF << I40E_GLPCI_PQ_MAX_USED_SPC_GLPCI_PQ_MAX_USED_SPC_12_SHIFT) +#define I40E_GLPCI_PQ_MAX_USED_SPC_GLPCI_PQ_MAX_USED_SPC_13_SHIFT 8 +#define I40E_GLPCI_PQ_MAX_USED_SPC_GLPCI_PQ_MAX_USED_SPC_13_MASK (0xFF << I40E_GLPCI_PQ_MAX_USED_SPC_GLPCI_PQ_MAX_USED_SPC_13_SHIFT) #define I40E_GLPCI_SPARE_BITS_0 0x0009C4F8 #define I40E_GLPCI_SPARE_BITS_0_SPARE_BITS_SHIFT 0 #define I40E_GLPCI_SPARE_BITS_0_SPARE_BITS_MASK (0xFFFFFFFF << I40E_GLPCI_SPARE_BITS_0_SPARE_BITS_SHIFT) @@ -50,9 +58,14 @@ #define I40E_PFPCI_VF_FLUSH_DONE 0x0009C600 #define I40E_PFPCI_VF_FLUSH_DONE_FLUSH_DONE_SHIFT 0 #define I40E_PFPCI_VF_FLUSH_DONE_FLUSH_DONE_MASK (0x1 << I40E_PFPCI_VF_FLUSH_DONE_FLUSH_DONE_SHIFT) +#define I40E_PFPCI_VF_FLUSH_DONE1(_VF) (0x0009C600 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_PFPCI_VF_FLUSH_DONE1_MAX_INDEX 127 +#define I40E_PFPCI_VF_FLUSH_DONE1_FLUSH_DONE_SHIFT 0 +#define I40E_PFPCI_VF_FLUSH_DONE1_FLUSH_DONE_MASK (0x1 << I40E_PFPCI_VF_FLUSH_DONE1_FLUSH_DONE_SHIFT) #define I40E_PFPCI_VM_FLUSH_DONE 0x0009C880 #define I40E_PFPCI_VM_FLUSH_DONE_FLUSH_DONE_SHIFT 0 #define I40E_PFPCI_VM_FLUSH_DONE_FLUSH_DONE_MASK (0x1 << I40E_PFPCI_VM_FLUSH_DONE_FLUSH_DONE_SHIFT) + #define I40E_PF_ARQBAH 0x00080180 #define I40E_PF_ARQBAH_ARQBAH_SHIFT 0 #define I40E_PF_ARQBAH_ARQBAH_MASK (0xFFFFFFFF << I40E_PF_ARQBAH_ARQBAH_SHIFT) @@ -837,7 +850,7 @@ #define I40E_GLHMC_PEQ1FLCNT_FPMPEQ1FLCNT_MASK (0x1FFFFFFF << I40E_GLHMC_PEQ1FLCNT_FPMPEQ1FLCNT_SHIFT) #define I40E_GLHMC_PEQ1FLMAX 0x000C2058 #define I40E_GLHMC_PEQ1FLMAX_PMPEQ1FLMAX_SHIFT 0 -#define I40E_GLHMC_PEQ1FLMAX_PMPEQ1FLMAX_MASK (0x3FFFFF << I40E_GLHMC_PEQ1FLMAX_PMPEQ1FLMAX_SHIFT) +#define I40E_GLHMC_PEQ1FLMAX_PMPEQ1FLMAX_MASK (0x3FFFFFF << I40E_GLHMC_PEQ1FLMAX_PMPEQ1FLMAX_SHIFT) #define I40E_GLHMC_PEQ1MAX 0x000C2054 #define I40E_GLHMC_PEQ1MAX_PMPEQ1MAX_SHIFT 0 #define I40E_GLHMC_PEQ1MAX_PMPEQ1MAX_MASK (0x3FFFFFF << I40E_GLHMC_PEQ1MAX_PMPEQ1MAX_SHIFT) @@ -903,7 +916,7 @@ #define I40E_GLHMC_PEXFFLCNT_FPMPEXFFLCNT_MASK (0x1FFFFFFF << I40E_GLHMC_PEXFFLCNT_FPMPEXFFLCNT_SHIFT) #define I40E_GLHMC_PEXFFLMAX 0x000C204c #define I40E_GLHMC_PEXFFLMAX_PMPEXFFLMAX_SHIFT 0 -#define I40E_GLHMC_PEXFFLMAX_PMPEXFFLMAX_MASK (0x3FFFFF << I40E_GLHMC_PEXFFLMAX_PMPEXFFLMAX_SHIFT) +#define I40E_GLHMC_PEXFFLMAX_PMPEXFFLMAX_MASK (0x1FFFFFF << I40E_GLHMC_PEXFFLMAX_PMPEXFFLMAX_SHIFT) #define I40E_GLHMC_PEXFMAX 0x000C2048 #define I40E_GLHMC_PEXFMAX_PMPEXFMAX_SHIFT 0 #define I40E_GLHMC_PEXFMAX_PMPEXFMAX_MASK (0x3FFFFFF << I40E_GLHMC_PEXFMAX_PMPEXFMAX_SHIFT) @@ -1636,7 +1649,7 @@ #define I40E_VSILAN_QBASE_VSIQTABLE_ENA_SHIFT 11 #define I40E_VSILAN_QBASE_VSIQTABLE_ENA_MASK (0x1 << I40E_VSILAN_QBASE_VSIQTABLE_ENA_SHIFT) #define I40E_VSILAN_QTABLE(_i, _VSI) (0x00200000 + ((_i) * 2048 + (_VSI) * 4)) -#define I40E_VSILAN_QTABLE_MAX_INDEX 15 +#define I40E_VSILAN_QTABLE_MAX_INDEX 7 #define I40E_VSILAN_QTABLE_QINDEX_0_SHIFT 0 #define I40E_VSILAN_QTABLE_QINDEX_0_MASK (0x7FF << I40E_VSILAN_QTABLE_QINDEX_0_SHIFT) #define I40E_VSILAN_QTABLE_QINDEX_1_SHIFT 16 @@ -1773,16 +1786,20 @@ #define I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_RX_LANE0_SHIFT 14 #define I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_RX_LANE0_MASK (0x3 << I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_RX_LANE0_SHIFT) #define I40E_GL_MNG_FWSM 0x000B6134 -#define I40E_GL_MNG_FWSM_FW_MODES_SHIFT 0 -#define I40E_GL_MNG_FWSM_FW_MODES_MASK (0x3FF << I40E_GL_MNG_FWSM_FW_MODES_SHIFT) -#define I40E_GL_MNG_FWSM_EEP_RELOAD_IND_SHIFT 10 +#define I40E_GL_MNG_FWSM_FW_MODES_SHIFT 1 +#define I40E_GL_MNG_FWSM_FW_MODES_MASK (0x7 << I40E_GL_MNG_FWSM_FW_MODES_SHIFT) +#define I40E_GL_MNG_FWSM_EEP_RELOAD_IND_SHIFT 6 #define I40E_GL_MNG_FWSM_EEP_RELOAD_IND_MASK (0x1 << I40E_GL_MNG_FWSM_EEP_RELOAD_IND_SHIFT) #define I40E_GL_MNG_FWSM_CRC_ERROR_MODULE_SHIFT 11 #define I40E_GL_MNG_FWSM_CRC_ERROR_MODULE_MASK (0xF << I40E_GL_MNG_FWSM_CRC_ERROR_MODULE_SHIFT) #define I40E_GL_MNG_FWSM_FW_STATUS_VALID_SHIFT 15 #define I40E_GL_MNG_FWSM_FW_STATUS_VALID_MASK (0x1 << I40E_GL_MNG_FWSM_FW_STATUS_VALID_SHIFT) +#define I40E_GL_MNG_FWSM_RESET_CNT_SHIFT 16 +#define I40E_GL_MNG_FWSM_RESET_CNT_MASK (0x7 << I40E_GL_MNG_FWSM_RESET_CNT_SHIFT) #define I40E_GL_MNG_FWSM_EXT_ERR_IND_SHIFT 19 #define I40E_GL_MNG_FWSM_EXT_ERR_IND_MASK (0x3F << I40E_GL_MNG_FWSM_EXT_ERR_IND_SHIFT) +#define I40E_GL_MNG_FWSM_RSVD_SHIFT 25 +#define I40E_GL_MNG_FWSM_RSVD_MASK (0x1 << I40E_GL_MNG_FWSM_RSVD_SHIFT) #define I40E_GL_MNG_FWSM_PHY_SERDES0_CONFIG_ERR_SHIFT 26 #define I40E_GL_MNG_FWSM_PHY_SERDES0_CONFIG_ERR_MASK (0x1 << I40E_GL_MNG_FWSM_PHY_SERDES0_CONFIG_ERR_SHIFT) #define I40E_GL_MNG_FWSM_PHY_SERDES1_CONFIG_ERR_SHIFT 27 @@ -2035,6 +2052,28 @@ #define I40E_GLNVM_SRDATA_WRDATA_MASK (0xFFFF << I40E_GLNVM_SRDATA_WRDATA_SHIFT) #define I40E_GLNVM_SRDATA_RDDATA_SHIFT 16 #define I40E_GLNVM_SRDATA_RDDATA_MASK (0xFFFF << I40E_GLNVM_SRDATA_RDDATA_SHIFT) +#define I40E_GLNVM_ULD 0x000B6008 +#define I40E_GLNVM_ULD_CONF_PCIR_DONE_SHIFT 0 +#define I40E_GLNVM_ULD_CONF_PCIR_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_PCIR_DONE_SHIFT) +#define I40E_GLNVM_ULD_CONF_PCIRTL_DONE_SHIFT 1 +#define I40E_GLNVM_ULD_CONF_PCIRTL_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_PCIRTL_DONE_SHIFT) +#define I40E_GLNVM_ULD_CONF_LCB_DONE_SHIFT 2 +#define I40E_GLNVM_ULD_CONF_LCB_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_LCB_DONE_SHIFT) +#define I40E_GLNVM_ULD_CONF_CORE_DONE_SHIFT 3 +#define I40E_GLNVM_ULD_CONF_CORE_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_CORE_DONE_SHIFT) +#define I40E_GLNVM_ULD_CONF_GLOBAL_DONE_SHIFT 4 +#define I40E_GLNVM_ULD_CONF_GLOBAL_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_GLOBAL_DONE_SHIFT) +#define I40E_GLNVM_ULD_CONF_POR_DONE_SHIFT 5 +#define I40E_GLNVM_ULD_CONF_POR_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_POR_DONE_SHIFT) +#define I40E_GLNVM_ULD_CONF_PCIE_ANA_DONE_SHIFT 6 +#define I40E_GLNVM_ULD_CONF_PCIE_ANA_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_PCIE_ANA_DONE_SHIFT) +#define I40E_GLNVM_ULD_CONF_PHY_ANA_DONE_SHIFT 7 +#define I40E_GLNVM_ULD_CONF_PHY_ANA_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_PHY_ANA_DONE_SHIFT) +#define I40E_GLNVM_ULD_CONF_EMP_DONE_SHIFT 8 +#define I40E_GLNVM_ULD_CONF_EMP_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_EMP_DONE_SHIFT) +#define I40E_GLNVM_ULD_CONF_PCIALT_DONE_SHIFT 9 +#define I40E_GLNVM_ULD_CONF_PCIALT_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_PCIALT_DONE_SHIFT) + #define I40E_GLPCI_BYTCTH 0x0009C484 #define I40E_GLPCI_BYTCTH_PCI_COUNT_BW_BCT_SHIFT 0 #define I40E_GLPCI_BYTCTH_PCI_COUNT_BW_BCT_MASK (0xFFFFFFFF << I40E_GLPCI_BYTCTH_PCI_COUNT_BW_BCT_SHIFT) @@ -2170,6 +2209,12 @@ #define I40E_GLPCI_PCIERR 0x000BE4FC #define I40E_GLPCI_PCIERR_PCIE_ERR_REP_SHIFT 0 #define I40E_GLPCI_PCIERR_PCIE_ERR_REP_MASK (0xFFFFFFFF << I40E_GLPCI_PCIERR_PCIE_ERR_REP_SHIFT) +#define I40E_GLPCI_PCITEST2 0x000BE4BC +#define I40E_GLPCI_PCITEST2_IOV_TEST_MODE_SHIFT 0 +#define I40E_GLPCI_PCITEST2_IOV_TEST_MODE_MASK (0x1 << I40E_GLPCI_PCITEST2_IOV_TEST_MODE_SHIFT) +#define I40E_GLPCI_PCITEST2_TAG_ALLOC_SHIFT 1 +#define I40E_GLPCI_PCITEST2_TAG_ALLOC_MASK (0x1 << I40E_GLPCI_PCITEST2_TAG_ALLOC_SHIFT) + #define I40E_GLPCI_PKTCT 0x0009C4BC #define I40E_GLPCI_PKTCT_PCI_COUNT_BW_PCT_SHIFT 0 #define I40E_GLPCI_PKTCT_PCI_COUNT_BW_PCT_MASK (0xFFFFFFFF << I40E_GLPCI_PKTCT_PCI_COUNT_BW_PCT_SHIFT) @@ -2380,8 +2425,7 @@ #define I40E_PFPE_IPCONFIG0_PEIPID_MASK (0xFFFF << I40E_PFPE_IPCONFIG0_PEIPID_SHIFT) #define I40E_PFPE_IPCONFIG0_USEENTIREIDRANGE_SHIFT 16 #define I40E_PFPE_IPCONFIG0_USEENTIREIDRANGE_MASK (0x1 << I40E_PFPE_IPCONFIG0_USEENTIREIDRANGE_SHIFT) -#define I40E_PFPE_IPCONFIG0_USEUPPERIDRANGE_SHIFT 17 -#define I40E_PFPE_IPCONFIG0_USEUPPERIDRANGE_MASK (0x1 << I40E_PFPE_IPCONFIG0_USEUPPERIDRANGE_SHIFT) + #define I40E_PFPE_MRTEIDXMASK 0x00008600 #define I40E_PFPE_MRTEIDXMASK_MRTEIDXMASKBITS_SHIFT 0 #define I40E_PFPE_MRTEIDXMASK_MRTEIDXMASKBITS_MASK (0x1F << I40E_PFPE_MRTEIDXMASK_MRTEIDXMASKBITS_SHIFT) @@ -2460,8 +2504,6 @@ #define I40E_VFPE_IPCONFIG0_PEIPID_MASK (0xFFFF << I40E_VFPE_IPCONFIG0_PEIPID_SHIFT) #define I40E_VFPE_IPCONFIG0_USEENTIREIDRANGE_SHIFT 16 #define I40E_VFPE_IPCONFIG0_USEENTIREIDRANGE_MASK (0x1 << I40E_VFPE_IPCONFIG0_USEENTIREIDRANGE_SHIFT) -#define I40E_VFPE_IPCONFIG0_USEUPPERIDRANGE_SHIFT 17 -#define I40E_VFPE_IPCONFIG0_USEUPPERIDRANGE_MASK (0x1 << I40E_VFPE_IPCONFIG0_USEUPPERIDRANGE_SHIFT) #define I40E_VFPE_MRTEIDXMASK(_VF) (0x00003000 + ((_VF) * 4)) /* _i=0...127 */ #define I40E_VFPE_MRTEIDXMASK_MAX_INDEX 127 #define I40E_VFPE_MRTEIDXMASK_MRTEIDXMASKBITS_SHIFT 0 @@ -3141,30 +3183,6 @@ #define I40E_GLPES_VFUDPTXPKTSLO_MAX_INDEX 31 #define I40E_GLPES_VFUDPTXPKTSLO_UDPTXPKTSLO_SHIFT 0 #define I40E_GLPES_VFUDPTXPKTSLO_UDPTXPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFUDPTXPKTSLO_UDPTXPKTSLO_SHIFT) -#define I40E_GLPM_DMACR 0x000881F4 -#define I40E_GLPM_DMACR_DMACWT_SHIFT 0 -#define I40E_GLPM_DMACR_DMACWT_MASK (0xFFFF << I40E_GLPM_DMACR_DMACWT_SHIFT) -#define I40E_GLPM_DMACR_EXIT_DC_SHIFT 29 -#define I40E_GLPM_DMACR_EXIT_DC_MASK (0x1 << I40E_GLPM_DMACR_EXIT_DC_SHIFT) -#define I40E_GLPM_DMACR_LX_COALESCING_INDICATION_SHIFT 30 -#define I40E_GLPM_DMACR_LX_COALESCING_INDICATION_MASK (0x1 << I40E_GLPM_DMACR_LX_COALESCING_INDICATION_SHIFT) -#define I40E_GLPM_DMACR_DMAC_EN_SHIFT 31 -#define I40E_GLPM_DMACR_DMAC_EN_MASK (0x1 << I40E_GLPM_DMACR_DMAC_EN_SHIFT) -#define I40E_GLPM_LTRC 0x000BE500 -#define I40E_GLPM_LTRC_SLTRV_SHIFT 0 -#define I40E_GLPM_LTRC_SLTRV_MASK (0x3FF << I40E_GLPM_LTRC_SLTRV_SHIFT) -#define I40E_GLPM_LTRC_SSCALE_SHIFT 10 -#define I40E_GLPM_LTRC_SSCALE_MASK (0x7 << I40E_GLPM_LTRC_SSCALE_SHIFT) -#define I40E_GLPM_LTRC_LTRS_REQUIREMENT_SHIFT 15 -#define I40E_GLPM_LTRC_LTRS_REQUIREMENT_MASK (0x1 << I40E_GLPM_LTRC_LTRS_REQUIREMENT_SHIFT) -#define I40E_GLPM_LTRC_NSLTRV_SHIFT 16 -#define I40E_GLPM_LTRC_NSLTRV_MASK (0x3FF << I40E_GLPM_LTRC_NSLTRV_SHIFT) -#define I40E_GLPM_LTRC_NSSCALE_SHIFT 26 -#define I40E_GLPM_LTRC_NSSCALE_MASK (0x7 << I40E_GLPM_LTRC_NSSCALE_SHIFT) -#define I40E_GLPM_LTRC_LTR_SEND_SHIFT 30 -#define I40E_GLPM_LTRC_LTR_SEND_MASK (0x1 << I40E_GLPM_LTRC_LTR_SEND_SHIFT) -#define I40E_GLPM_LTRC_LTRNS_REQUIREMENT_SHIFT 31 -#define I40E_GLPM_LTRC_LTRNS_REQUIREMENT_MASK (0x1 << I40E_GLPM_LTRC_LTRNS_REQUIREMENT_SHIFT) #define I40E_PRTPM_EEE_STAT 0x001E4320 #define I40E_PRTPM_EEE_STAT_EEE_NEG_SHIFT 29 #define I40E_PRTPM_EEE_STAT_EEE_NEG_MASK (0x1 << I40E_PRTPM_EEE_STAT_EEE_NEG_SHIFT) @@ -3201,9 +3219,6 @@ #define I40E_PRTPM_GC_LCDMP_MASK (0x1 << I40E_PRTPM_GC_LCDMP_SHIFT) #define I40E_PRTPM_GC_LPLU_ASSERTED_SHIFT 31 #define I40E_PRTPM_GC_LPLU_ASSERTED_MASK (0x1 << I40E_PRTPM_GC_LPLU_ASSERTED_SHIFT) -#define I40E_PRTPM_HPTC 0x000AC800 -#define I40E_PRTPM_HPTC_HIGH_PRI_TC_SHIFT 0 -#define I40E_PRTPM_HPTC_HIGH_PRI_TC_MASK (0xFF << I40E_PRTPM_HPTC_HIGH_PRI_TC_SHIFT) #define I40E_PRTPM_RLPIC 0x001E43A0 #define I40E_PRTPM_RLPIC_ERLPIC_SHIFT 0 #define I40E_PRTPM_RLPIC_ERLPIC_MASK (0xFFFFFFFF << I40E_PRTPM_RLPIC_ERLPIC_SHIFT) @@ -3265,8 +3280,8 @@ #define I40E_GLQF_CTL_HTOEP_FCOE_MASK (0x1 << I40E_GLQF_CTL_HTOEP_FCOE_SHIFT) #define I40E_GLQF_CTL_PCNT_ALLOC_SHIFT 3 #define I40E_GLQF_CTL_PCNT_ALLOC_MASK (0x7 << I40E_GLQF_CTL_PCNT_ALLOC_SHIFT) -#define I40E_GLQF_CTL_DDPLPEN_SHIFT 7 -#define I40E_GLQF_CTL_DDPLPEN_MASK (0x1 << I40E_GLQF_CTL_DDPLPEN_SHIFT) +#define I40E_GLQF_CTL_RSVD_SHIFT 7 +#define I40E_GLQF_CTL_RSVD_MASK (0x1 << I40E_GLQF_CTL_RSVD_SHIFT) #define I40E_GLQF_CTL_MAXPEBLEN_SHIFT 8 #define I40E_GLQF_CTL_MAXPEBLEN_MASK (0x7 << I40E_GLQF_CTL_MAXPEBLEN_SHIFT) #define I40E_GLQF_CTL_MAXFCBLEN_SHIFT 11 @@ -3416,9 +3431,9 @@ #define I40E_PRTQF_FLX_PIT(_i) (0x00255200 + ((_i) * 32)) /* _i=0...8 */ #define I40E_PRTQF_FLX_PIT_MAX_INDEX 8 #define I40E_PRTQF_FLX_PIT_SOURCE_OFF_SHIFT 0 -#define I40E_PRTQF_FLX_PIT_SOURCE_OFF_MASK (0x3F << I40E_PRTQF_FLX_PIT_SOURCE_OFF_SHIFT) -#define I40E_PRTQF_FLX_PIT_FSIZE_SHIFT 6 -#define I40E_PRTQF_FLX_PIT_FSIZE_MASK (0xF << I40E_PRTQF_FLX_PIT_FSIZE_SHIFT) +#define I40E_PRTQF_FLX_PIT_SOURCE_OFF_MASK (0x1F << I40E_PRTQF_FLX_PIT_SOURCE_OFF_SHIFT) +#define I40E_PRTQF_FLX_PIT_FSIZE_SHIFT 5 +#define I40E_PRTQF_FLX_PIT_FSIZE_MASK (0x1F << I40E_PRTQF_FLX_PIT_FSIZE_SHIFT) #define I40E_PRTQF_FLX_PIT_DEST_OFF_SHIFT 10 #define I40E_PRTQF_FLX_PIT_DEST_OFF_MASK (0x3F << I40E_PRTQF_FLX_PIT_DEST_OFF_SHIFT) #define I40E_VFQF_HENA1(_i, _VF) (0x00230800 + ((_i) * 1024 + (_VF) * 4)) @@ -3504,7 +3519,7 @@ #define I40E_VSIQF_CTL_PEMFRAG_ENA_SHIFT 5 #define I40E_VSIQF_CTL_PEMFRAG_ENA_MASK (0x1 << I40E_VSIQF_CTL_PEMFRAG_ENA_SHIFT) #define I40E_VSIQF_TCREGION(_i, _VSI) (0x00206000 + ((_i) * 2048 + (_VSI) * 4)) -#define I40E_VSIQF_TCREGION_MAX_INDEX 7 +#define I40E_VSIQF_TCREGION_MAX_INDEX 3 #define I40E_VSIQF_TCREGION_TC_OFFSET_SHIFT 0 #define I40E_VSIQF_TCREGION_TC_OFFSET_MASK (0x1FF << I40E_VSIQF_TCREGION_TC_OFFSET_SHIFT) #define I40E_VSIQF_TCREGION_TC_SIZE_SHIFT 9 @@ -3521,10 +3536,7 @@ #define I40E_GL_FCOEDDPC_MAX_INDEX 143 #define I40E_GL_FCOEDDPC_FCOEDDPC_SHIFT 0 #define I40E_GL_FCOEDDPC_FCOEDDPC_MASK (0xFFFFFFFF << I40E_GL_FCOEDDPC_FCOEDDPC_SHIFT) -#define I40E_GL_FCOEDDPEC(_i) (0x00314900 + ((_i) * 8)) /* _i=0...143 */ -#define I40E_GL_FCOEDDPEC_MAX_INDEX 143 -#define I40E_GL_FCOEDDPEC_CFOEDDPEC_SHIFT 0 -#define I40E_GL_FCOEDDPEC_CFOEDDPEC_MASK (0xFFFFFFFF << I40E_GL_FCOEDDPEC_CFOEDDPEC_SHIFT) +/* _i=0...143 */ #define I40E_GL_FCOEDIFEC(_i) (0x00318480 + ((_i) * 8)) /* _i=0...143 */ #define I40E_GL_FCOEDIFEC_MAX_INDEX 143 #define I40E_GL_FCOEDIFEC_FCOEDIFRC_SHIFT 0 @@ -4276,46 +4288,10 @@ #define I40E_PFPM_APM 0x000B8080 #define I40E_PFPM_APM_APME_SHIFT 0 #define I40E_PFPM_APM_APME_MASK (0x1 << I40E_PFPM_APM_APME_SHIFT) -#define I40E_PFPM_FHFT_DATA(_i, _j) (0x00060000 + ((_i) * 4096 + (_j) * 128)) -#define I40E_PFPM_FHFT_DATA_MAX_INDEX 7 -#define I40E_PFPM_FHFT_DATA_DWORD_SHIFT 0 -#define I40E_PFPM_FHFT_DATA_DWORD_MASK (0xFFFFFFFF << I40E_PFPM_FHFT_DATA_DWORD_SHIFT) #define I40E_PFPM_FHFT_LENGTH(_i) (0x0006A000 + ((_i) * 128)) /* _i=0...7 */ #define I40E_PFPM_FHFT_LENGTH_MAX_INDEX 7 #define I40E_PFPM_FHFT_LENGTH_LENGTH_SHIFT 0 #define I40E_PFPM_FHFT_LENGTH_LENGTH_MASK (0xFF << I40E_PFPM_FHFT_LENGTH_LENGTH_SHIFT) -#define I40E_PFPM_FHFT_MASK(_i, _j) (0x00068000 + ((_i) * 1024 + (_j) * 128)) -#define I40E_PFPM_FHFT_MASK_MAX_INDEX 7 -#define I40E_PFPM_FHFT_MASK_MASK_SHIFT 0 -#define I40E_PFPM_FHFT_MASK_MASK_MASK (0xFFFF << I40E_PFPM_FHFT_MASK_MASK_SHIFT) -#define I40E_PFPM_PROXYFC 0x00245A80 -#define I40E_PFPM_PROXYFC_PPROXYE_SHIFT 0 -#define I40E_PFPM_PROXYFC_PPROXYE_MASK (0x1 << I40E_PFPM_PROXYFC_PPROXYE_SHIFT) -#define I40E_PFPM_PROXYFC_EX_SHIFT 1 -#define I40E_PFPM_PROXYFC_EX_MASK (0x1 << I40E_PFPM_PROXYFC_EX_SHIFT) -#define I40E_PFPM_PROXYFC_ARP_SHIFT 4 -#define I40E_PFPM_PROXYFC_ARP_MASK (0x1 << I40E_PFPM_PROXYFC_ARP_SHIFT) -#define I40E_PFPM_PROXYFC_ARP_DIRECTED_SHIFT 5 -#define I40E_PFPM_PROXYFC_ARP_DIRECTED_MASK (0x1 << I40E_PFPM_PROXYFC_ARP_DIRECTED_SHIFT) -#define I40E_PFPM_PROXYFC_NS_SHIFT 9 -#define I40E_PFPM_PROXYFC_NS_MASK (0x1 << I40E_PFPM_PROXYFC_NS_SHIFT) -#define I40E_PFPM_PROXYFC_NS_DIRECTED_SHIFT 10 -#define I40E_PFPM_PROXYFC_NS_DIRECTED_MASK (0x1 << I40E_PFPM_PROXYFC_NS_DIRECTED_SHIFT) -#define I40E_PFPM_PROXYFC_MLD_SHIFT 12 -#define I40E_PFPM_PROXYFC_MLD_MASK (0x1 << I40E_PFPM_PROXYFC_MLD_SHIFT) -#define I40E_PFPM_PROXYS 0x00245B80 -#define I40E_PFPM_PROXYS_EX_SHIFT 1 -#define I40E_PFPM_PROXYS_EX_MASK (0x1 << I40E_PFPM_PROXYS_EX_SHIFT) -#define I40E_PFPM_PROXYS_ARP_SHIFT 4 -#define I40E_PFPM_PROXYS_ARP_MASK (0x1 << I40E_PFPM_PROXYS_ARP_SHIFT) -#define I40E_PFPM_PROXYS_ARP_DIRECTED_SHIFT 5 -#define I40E_PFPM_PROXYS_ARP_DIRECTED_MASK (0x1 << I40E_PFPM_PROXYS_ARP_DIRECTED_SHIFT) -#define I40E_PFPM_PROXYS_NS_SHIFT 9 -#define I40E_PFPM_PROXYS_NS_MASK (0x1 << I40E_PFPM_PROXYS_NS_SHIFT) -#define I40E_PFPM_PROXYS_NS_DIRECTED_SHIFT 10 -#define I40E_PFPM_PROXYS_NS_DIRECTED_MASK (0x1 << I40E_PFPM_PROXYS_NS_DIRECTED_SHIFT) -#define I40E_PFPM_PROXYS_MLD_SHIFT 12 -#define I40E_PFPM_PROXYS_MLD_MASK (0x1 << I40E_PFPM_PROXYS_MLD_SHIFT) #define I40E_PFPM_WUC 0x0006B200 #define I40E_PFPM_WUC_EN_APM_D0_SHIFT 5 #define I40E_PFPM_WUC_EN_APM_D0_MASK (0x1 << I40E_PFPM_WUC_EN_APM_D0_SHIFT) @@ -4536,21 +4512,21 @@ #define I40E_VFMSIX_PBA 0x00002000 #define I40E_VFMSIX_PBA_PENBIT_SHIFT 0 #define I40E_VFMSIX_PBA_PENBIT_MASK (0xFFFFFFFF << I40E_VFMSIX_PBA_PENBIT_SHIFT) -#define I40E_VFMSIX_TADD(_i) (0x00000008 + ((_i) * 16)) /* _i=0...16 */ +#define I40E_VFMSIX_TADD(_i) (0x00000000 + ((_i) * 16)) /* _i=0...16 */ #define I40E_VFMSIX_TADD_MAX_INDEX 16 #define I40E_VFMSIX_TADD_MSIXTADD10_SHIFT 0 #define I40E_VFMSIX_TADD_MSIXTADD10_MASK (0x3 << I40E_VFMSIX_TADD_MSIXTADD10_SHIFT) #define I40E_VFMSIX_TADD_MSIXTADD_SHIFT 2 #define I40E_VFMSIX_TADD_MSIXTADD_MASK (0x3FFFFFFF << I40E_VFMSIX_TADD_MSIXTADD_SHIFT) -#define I40E_VFMSIX_TMSG(_i) (0x0000000C + ((_i) * 16)) /* _i=0...16 */ +#define I40E_VFMSIX_TMSG(_i) (0x00000008 + ((_i) * 16)) /* _i=0...16 */ #define I40E_VFMSIX_TMSG_MAX_INDEX 16 #define I40E_VFMSIX_TMSG_MSIXTMSG_SHIFT 0 #define I40E_VFMSIX_TMSG_MSIXTMSG_MASK (0xFFFFFFFF << I40E_VFMSIX_TMSG_MSIXTMSG_SHIFT) -#define I40E_VFMSIX_TUADD(_i) (0x00000000 + ((_i) * 16)) /* _i=0...16 */ +#define I40E_VFMSIX_TUADD(_i) (0x00000004 + ((_i) * 16)) /* _i=0...16 */ #define I40E_VFMSIX_TUADD_MAX_INDEX 16 #define I40E_VFMSIX_TUADD_MSIXTUADD_SHIFT 0 #define I40E_VFMSIX_TUADD_MSIXTUADD_MASK (0xFFFFFFFF << I40E_VFMSIX_TUADD_MSIXTUADD_SHIFT) -#define I40E_VFMSIX_TVCTRL(_i) (0x00000004 + ((_i) * 16)) /* _i=0...16 */ +#define I40E_VFMSIX_TVCTRL(_i) (0x0000000C + ((_i) * 16)) /* _i=0...16 */ #define I40E_VFMSIX_TVCTRL_MAX_INDEX 16 #define I40E_VFMSIX_TVCTRL_MASK_SHIFT 0 #define I40E_VFMSIX_TVCTRL_MASK_MASK (0x1 << I40E_VFMSIX_TVCTRL_MASK_SHIFT) @@ -4610,8 +4586,6 @@ #define I40E_VFPE_IPCONFIG01_PEIPID_MASK (0xFFFF << I40E_VFPE_IPCONFIG01_PEIPID_SHIFT) #define I40E_VFPE_IPCONFIG01_USEENTIREIDRANGE_SHIFT 16 #define I40E_VFPE_IPCONFIG01_USEENTIREIDRANGE_MASK (0x1 << I40E_VFPE_IPCONFIG01_USEENTIREIDRANGE_SHIFT) -#define I40E_VFPE_IPCONFIG01_USEUPPERIDRANGE_SHIFT 17 -#define I40E_VFPE_IPCONFIG01_USEUPPERIDRANGE_MASK (0x1 << I40E_VFPE_IPCONFIG01_USEUPPERIDRANGE_SHIFT) #define I40E_VFPE_MRTEIDXMASK1 0x00009000 #define I40E_VFPE_MRTEIDXMASK1_MRTEIDXMASKBITS_SHIFT 0 #define I40E_VFPE_MRTEIDXMASK1_MRTEIDXMASKBITS_MASK (0x1F << I40E_VFPE_MRTEIDXMASK1_MRTEIDXMASKBITS_SHIFT) @@ -4684,5 +4658,13 @@ #define I40E_VFQF_HREGION_OVERRIDE_ENA_7_MASK (0x1 << I40E_VFQF_HREGION_OVERRIDE_ENA_7_SHIFT) #define I40E_VFQF_HREGION_REGION_7_SHIFT 29 #define I40E_VFQF_HREGION_REGION_7_MASK (0x7 << I40E_VFQF_HREGION_REGION_7_SHIFT) - +#define I40E_RCU_PST_FOC_ACCESS_STATUS 0x00270110 +#define I40E_RCU_PST_FOC_ACCESS_STATUS_WR_ACCESS_CNT_SHIFT 0 +#define I40E_RCU_PST_FOC_ACCESS_STATUS_WR_ACCESS_CNT_MASK (0xFF << I40E_RCU_PST_FOC_ACCESS_STATUS_WR_ACCESS_CNT_SHIFT) +#define I40E_RCU_PST_FOC_ACCESS_STATUS_RD_ACCESS_CNT_SHIFT 8 +#define I40E_RCU_PST_FOC_ACCESS_STATUS_RD_ACCESS_CNT_MASK (0xFF << I40E_RCU_PST_FOC_ACCESS_STATUS_RD_ACCESS_CNT_SHIFT) +#define I40E_RCU_PST_FOC_ACCESS_STATUS_ERR_CNT_SHIFT 16 +#define I40E_RCU_PST_FOC_ACCESS_STATUS_ERR_CNT_MASK (0xFF << I40E_RCU_PST_FOC_ACCESS_STATUS_ERR_CNT_SHIFT) +#define I40E_RCU_PST_FOC_ACCESS_STATUS_LAST_ERR_CODE_SHIFT 24 +#define I40E_RCU_PST_FOC_ACCESS_STATUS_LAST_ERR_CODE_MASK (0x7 << I40E_RCU_PST_FOC_ACCESS_STATUS_LAST_ERR_CODE_SHIFT) #endif --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_status.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_status.h @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_txrx.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_txrx.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -26,6 +25,7 @@ ******************************************************************************/ #include "i40e.h" +#include "i40e_prototype.h" static inline __le64 build_ctob(u32 td_cmd, u32 td_offset, unsigned int size, u32 td_tag) @@ -40,11 +40,12 @@ #define I40E_TXD_CMD (I40E_TX_DESC_CMD_EOP | I40E_TX_DESC_CMD_RS) /** * i40e_program_fdir_filter - Program a Flow Director filter - * @fdir_input: Packet data that will be filter parameters + * @fdir_data: Packet data that will be filter parameters + * @raw_packet: the pre-allocated packet buffer for FDir * @pf: The pf pointer * @add: True for add/update, False for remove **/ -int i40e_program_fdir_filter(struct i40e_fdir_data *fdir_data, +int i40e_program_fdir_filter(struct i40e_fdir_filter *fdir_data, u8 *raw_packet, struct i40e_pf *pf, bool add) { struct i40e_filter_program_desc *fdir_desc; @@ -69,15 +70,14 @@ tx_ring = vsi->tx_rings[0]; dev = tx_ring->dev; - dma = dma_map_single(dev, fdir_data->raw_packet, - I40E_FDIR_MAX_RAW_PACKET_LOOKUP, DMA_TO_DEVICE); + dma = dma_map_single(dev, raw_packet, + I40E_FDIR_MAX_RAW_PACKET_SIZE, DMA_TO_DEVICE); if (dma_mapping_error(dev, dma)) goto dma_fail; /* grab the next descriptor */ i = tx_ring->next_to_use; fdir_desc = I40E_TX_FDIRDESC(tx_ring, i); - tx_buf = &tx_ring->tx_bi[i]; tx_ring->next_to_use = (i + 1 < tx_ring->count) ? i + 1 : 0; @@ -129,14 +129,22 @@ /* Now program a dummy descriptor */ i = tx_ring->next_to_use; tx_desc = I40E_TX_DESC(tx_ring, i); + tx_buf = &tx_ring->tx_bi[i]; tx_ring->next_to_use = (i + 1 < tx_ring->count) ? i + 1 : 0; + /* record length, and DMA address */ + dma_unmap_len_set(tx_buf, len, I40E_FDIR_MAX_RAW_PACKET_SIZE); + dma_unmap_addr_set(tx_buf, dma, dma); + tx_desc->buffer_addr = cpu_to_le64(dma); td_cmd = I40E_TXD_CMD | I40E_TX_DESC_CMD_DUMMY; tx_desc->cmd_type_offset_bsz = - build_ctob(td_cmd, 0, I40E_FDIR_MAX_RAW_PACKET_LOOKUP, 0); + build_ctob(td_cmd, 0, I40E_FDIR_MAX_RAW_PACKET_SIZE, 0); + + /* set the timestamp */ + tx_buf->time_stamp = jiffies; /* Force memory writes to complete before letting h/w * know there are new descriptors to fetch. (Only @@ -155,26 +163,329 @@ return -1; } +#define IP_HEADER_OFFSET 14 +#define I40E_UDPIP_DUMMY_PACKET_LEN 42 +/** + * i40e_add_del_fdir_udpv4 - Add/Remove UDPv4 filters + * @vsi: pointer to the targeted VSI + * @fd_data: the flow director data required for the FDir descriptor + * @raw_packet: the pre-allocated packet buffer for FDir + * @add: true adds a filter, false removes it + * + * Returns 0 if the filters were successfully added or removed + **/ +static int i40e_add_del_fdir_udpv4(struct i40e_vsi *vsi, + struct i40e_fdir_filter *fd_data, + u8 *raw_packet, bool add) +{ + struct i40e_pf *pf = vsi->back; + struct udphdr *udp; + struct iphdr *ip; + bool err = false; + int ret; + int i; + static char packet[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x08, 0, + 0x45, 0, 0, 0x1c, 0, 0, 0x40, 0, 0x40, 0x11, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + + memcpy(raw_packet, packet, I40E_UDPIP_DUMMY_PACKET_LEN); + + ip = (struct iphdr *)(raw_packet + IP_HEADER_OFFSET); + udp = (struct udphdr *)(raw_packet + IP_HEADER_OFFSET + + sizeof(struct iphdr)); + + ip->daddr = fd_data->dst_ip[0]; + udp->dest = fd_data->dst_port; + ip->saddr = fd_data->src_ip[0]; + udp->source = fd_data->src_port; + + for (i = I40E_FILTER_PCTYPE_NONF_UNICAST_IPV4_UDP; + i <= I40E_FILTER_PCTYPE_NONF_IPV4_UDP; i++) { + fd_data->pctype = i; + ret = i40e_program_fdir_filter(fd_data, raw_packet, pf, add); + + if (ret) { + dev_info(&pf->pdev->dev, + "Filter command send failed for PCTYPE %d (ret = %d)\n", + fd_data->pctype, ret); + err = true; + } else { + dev_info(&pf->pdev->dev, + "Filter OK for PCTYPE %d (ret = %d)\n", + fd_data->pctype, ret); + } + } + + return err ? -EOPNOTSUPP : 0; +} + +#define I40E_TCPIP_DUMMY_PACKET_LEN 54 +/** + * i40e_add_del_fdir_tcpv4 - Add/Remove TCPv4 filters + * @vsi: pointer to the targeted VSI + * @fd_data: the flow director data required for the FDir descriptor + * @raw_packet: the pre-allocated packet buffer for FDir + * @add: true adds a filter, false removes it + * + * Returns 0 if the filters were successfully added or removed + **/ +static int i40e_add_del_fdir_tcpv4(struct i40e_vsi *vsi, + struct i40e_fdir_filter *fd_data, + u8 *raw_packet, bool add) +{ + struct i40e_pf *pf = vsi->back; + struct tcphdr *tcp; + struct iphdr *ip; + bool err = false; + int ret; + /* Dummy packet */ + static char packet[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x08, 0, + 0x45, 0, 0, 0x28, 0, 0, 0x40, 0, 0x40, 0x6, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x80, 0x11, + 0x0, 0x72, 0, 0, 0, 0}; + + memcpy(raw_packet, packet, I40E_TCPIP_DUMMY_PACKET_LEN); + + ip = (struct iphdr *)(raw_packet + IP_HEADER_OFFSET); + tcp = (struct tcphdr *)(raw_packet + IP_HEADER_OFFSET + + sizeof(struct iphdr)); + + ip->daddr = fd_data->dst_ip[0]; + tcp->dest = fd_data->dst_port; + ip->saddr = fd_data->src_ip[0]; + tcp->source = fd_data->src_port; + + if (add) { + if (pf->flags & I40E_FLAG_FD_ATR_ENABLED) { + dev_info(&pf->pdev->dev, "Forcing ATR off, sideband rules for TCP/IPv4 flow being applied\n"); + pf->flags &= ~I40E_FLAG_FD_ATR_ENABLED; + } + } + + fd_data->pctype = I40E_FILTER_PCTYPE_NONF_IPV4_TCP_SYN; + ret = i40e_program_fdir_filter(fd_data, raw_packet, pf, add); + + if (ret) { + dev_info(&pf->pdev->dev, + "Filter command send failed for PCTYPE %d (ret = %d)\n", + fd_data->pctype, ret); + err = true; + } else { + dev_info(&pf->pdev->dev, "Filter OK for PCTYPE %d (ret = %d)\n", + fd_data->pctype, ret); + } + + fd_data->pctype = I40E_FILTER_PCTYPE_NONF_IPV4_TCP; + + ret = i40e_program_fdir_filter(fd_data, raw_packet, pf, add); + if (ret) { + dev_info(&pf->pdev->dev, + "Filter command send failed for PCTYPE %d (ret = %d)\n", + fd_data->pctype, ret); + err = true; + } else { + dev_info(&pf->pdev->dev, "Filter OK for PCTYPE %d (ret = %d)\n", + fd_data->pctype, ret); + } + + return err ? -EOPNOTSUPP : 0; +} + +/** + * i40e_add_del_fdir_sctpv4 - Add/Remove SCTPv4 Flow Director filters for + * a specific flow spec + * @vsi: pointer to the targeted VSI + * @fd_data: the flow director data required for the FDir descriptor + * @raw_packet: the pre-allocated packet buffer for FDir + * @add: true adds a filter, false removes it + * + * Always returns -EOPNOTSUPP + **/ +static int i40e_add_del_fdir_sctpv4(struct i40e_vsi *vsi, + struct i40e_fdir_filter *fd_data, + u8 *raw_packet, bool add) +{ + return -EOPNOTSUPP; +} + +#define I40E_IP_DUMMY_PACKET_LEN 34 +/** + * i40e_add_del_fdir_ipv4 - Add/Remove IPv4 Flow Director filters for + * a specific flow spec + * @vsi: pointer to the targeted VSI + * @fd_data: the flow director data required for the FDir descriptor + * @raw_packet: the pre-allocated packet buffer for FDir + * @add: true adds a filter, false removes it + * + * Returns 0 if the filters were successfully added or removed + **/ +static int i40e_add_del_fdir_ipv4(struct i40e_vsi *vsi, + struct i40e_fdir_filter *fd_data, + u8 *raw_packet, bool add) +{ + struct i40e_pf *pf = vsi->back; + struct iphdr *ip; + bool err = false; + int ret; + int i; + static char packet[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x08, 0, + 0x45, 0, 0, 0x14, 0, 0, 0x40, 0, 0x40, 0x10, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0}; + + memcpy(raw_packet, packet, I40E_IP_DUMMY_PACKET_LEN); + ip = (struct iphdr *)(raw_packet + IP_HEADER_OFFSET); + + ip->saddr = fd_data->src_ip[0]; + ip->daddr = fd_data->dst_ip[0]; + ip->protocol = 0; + + for (i = I40E_FILTER_PCTYPE_NONF_IPV4_OTHER; + i <= I40E_FILTER_PCTYPE_FRAG_IPV4; i++) { + fd_data->pctype = i; + ret = i40e_program_fdir_filter(fd_data, raw_packet, pf, add); + + if (ret) { + dev_info(&pf->pdev->dev, + "Filter command send failed for PCTYPE %d (ret = %d)\n", + fd_data->pctype, ret); + err = true; + } else { + dev_info(&pf->pdev->dev, + "Filter OK for PCTYPE %d (ret = %d)\n", + fd_data->pctype, ret); + } + } + + return err ? -EOPNOTSUPP : 0; +} + +/** + * i40e_add_del_fdir - Build raw packets to add/del fdir filter + * @vsi: pointer to the targeted VSI + * @cmd: command to get or set RX flow classification rules + * @add: true adds a filter, false removes it + * + **/ +int i40e_add_del_fdir(struct i40e_vsi *vsi, + struct i40e_fdir_filter *input, bool add) +{ + struct i40e_pf *pf = vsi->back; + u8 *raw_packet; + int ret; + + /* Populate the Flow Director that we have at the moment + * and allocate the raw packet buffer for the calling functions + */ + raw_packet = kzalloc(I40E_FDIR_MAX_RAW_PACKET_SIZE, GFP_KERNEL); + if (!raw_packet) + return -ENOMEM; + + switch (input->flow_type & ~FLOW_EXT) { + case TCP_V4_FLOW: + ret = i40e_add_del_fdir_tcpv4(vsi, input, raw_packet, + add); + break; + case UDP_V4_FLOW: + ret = i40e_add_del_fdir_udpv4(vsi, input, raw_packet, + add); + break; + case SCTP_V4_FLOW: + ret = i40e_add_del_fdir_sctpv4(vsi, input, raw_packet, + add); + break; + case IPV4_FLOW: + ret = i40e_add_del_fdir_ipv4(vsi, input, raw_packet, + add); + break; + case IP_USER_FLOW: + switch (input->ip4_proto) { + case IPPROTO_TCP: + ret = i40e_add_del_fdir_tcpv4(vsi, input, + raw_packet, add); + break; + case IPPROTO_UDP: + ret = i40e_add_del_fdir_udpv4(vsi, input, + raw_packet, add); + break; + case IPPROTO_SCTP: + ret = i40e_add_del_fdir_sctpv4(vsi, input, + raw_packet, add); + break; + default: + ret = i40e_add_del_fdir_ipv4(vsi, input, + raw_packet, add); + break; + } + break; + default: + dev_info(&pf->pdev->dev, "Could not specify spec type %d\n", + input->flow_type); + ret = -EINVAL; + } + + kfree(raw_packet); + return ret; +} + /** * i40e_fd_handle_status - check the Programming Status for FD * @rx_ring: the Rx ring for this descriptor - * @qw: the descriptor data + * @rx_desc: the Rx descriptor for programming Status, not a packet descriptor. * @prog_id: the id originally used for programming * * This is used to verify if the FD programming or invalidation * requested by SW to the HW is successful or not and take actions accordingly. **/ -static void i40e_fd_handle_status(struct i40e_ring *rx_ring, u32 qw, u8 prog_id) +static void i40e_fd_handle_status(struct i40e_ring *rx_ring, + union i40e_rx_desc *rx_desc, u8 prog_id) { - struct pci_dev *pdev = rx_ring->vsi->back->pdev; + struct i40e_pf *pf = rx_ring->vsi->back; + struct pci_dev *pdev = pf->pdev; + u32 fcnt_prog, fcnt_avail; u32 error; + u64 qw; + qw = le64_to_cpu(rx_desc->wb.qword1.status_error_len); error = (qw & I40E_RX_PROG_STATUS_DESC_QW1_ERROR_MASK) >> I40E_RX_PROG_STATUS_DESC_QW1_ERROR_SHIFT; - /* for now just print the Status */ - dev_info(&pdev->dev, "FD programming id %02x, Status %08x\n", - prog_id, error); + if (error == (0x1 << I40E_RX_PROG_STATUS_DESC_FD_TBL_FULL_SHIFT)) { + dev_warn(&pdev->dev, "ntuple filter loc = %d, could not be added\n", + rx_desc->wb.qword0.hi_dword.fd_id); + + /* filter programming failed most likely due to table full */ + fcnt_prog = i40e_get_current_fd_count(pf); + fcnt_avail = pf->hw.fdir_shared_filter_count + + pf->fdir_pf_filter_count; + + /* If ATR is running fcnt_prog can quickly change, + * if we are very close to full, it makes sense to disable + * FD ATR/SB and then re-enable it when there is room. + */ + if (fcnt_prog >= (fcnt_avail - I40E_FDIR_BUFFER_FULL_MARGIN)) { + /* Turn off ATR first */ + if (pf->flags | I40E_FLAG_FD_ATR_ENABLED) { + pf->flags &= ~I40E_FLAG_FD_ATR_ENABLED; + dev_warn(&pdev->dev, "FD filter space full, ATR for further flows will be turned off\n"); + pf->auto_disable_flags |= + I40E_FLAG_FD_ATR_ENABLED; + pf->flags |= I40E_FLAG_FDIR_REQUIRES_REINIT; + } else if (pf->flags | I40E_FLAG_FD_SB_ENABLED) { + pf->flags &= ~I40E_FLAG_FD_SB_ENABLED; + dev_warn(&pdev->dev, "FD filter space full, new ntuple rules will not be added\n"); + pf->auto_disable_flags |= + I40E_FLAG_FD_SB_ENABLED; + pf->flags |= I40E_FLAG_FDIR_REQUIRES_REINIT; + } + } else { + dev_info(&pdev->dev, "FD filter programming error\n"); + } + } else if (error == + (0x1 << I40E_RX_PROG_STATUS_DESC_NO_FD_ENTRY_SHIFT)) { + if (I40E_DEBUG_FD & pf->hw.debug_mask) + dev_info(&pdev->dev, "ntuple filter loc = %d, could not be removed\n", + rx_desc->wb.qword0.hi_dword.fd_id); + } } /** @@ -309,6 +620,20 @@ } /** + * i40e_get_head - Retrieve head from head writeback + * @tx_ring: tx ring to fetch head of + * + * Returns value of Tx ring head based on value stored + * in head write-back location + **/ +static inline u32 i40e_get_head(struct i40e_ring *tx_ring) +{ + void *head = (struct i40e_tx_desc *)tx_ring->desc + tx_ring->count; + + return le32_to_cpu(*(volatile __le32 *)head); +} + +/** * i40e_clean_tx_irq - Reclaim resources after transmit completes * @tx_ring: tx ring to clean * @budget: how many cleans we're allowed @@ -319,6 +644,7 @@ { u16 i = tx_ring->next_to_clean; struct i40e_tx_buffer *tx_buf; + struct i40e_tx_desc *tx_head; struct i40e_tx_desc *tx_desc; unsigned int total_packets = 0; unsigned int total_bytes = 0; @@ -327,6 +653,8 @@ tx_desc = I40E_TX_DESC(tx_ring, i); i -= tx_ring->count; + tx_head = I40E_TX_DESC(tx_ring, i40e_get_head(tx_ring)); + do { struct i40e_tx_desc *eop_desc = tx_buf->next_to_watch; @@ -337,9 +665,8 @@ /* prevent any other reads prior to eop_desc */ read_barrier_depends(); - /* if the descriptor isn't done, no work yet to do */ - if (!(eop_desc->cmd_type_offset_bsz & - cpu_to_le64(I40E_TX_DESC_DTYPE_DESC_DONE))) + /* we have caught up to head, no work left to do */ + if (tx_head == tx_desc) break; /* clear next_to_watch to prevent false hangs */ @@ -571,7 +898,7 @@ I40E_RX_PROG_STATUS_DESC_QW1_PROGID_SHIFT; if (id == I40E_RX_PROG_STATUS_DESC_FD_FILTER_STATUS) - i40e_fd_handle_status(rx_ring, qw, id); + i40e_fd_handle_status(rx_ring, rx_desc, id); } /** @@ -595,6 +922,10 @@ /* round up to nearest 4K */ tx_ring->size = tx_ring->count * sizeof(struct i40e_tx_desc); + /* add u32 for head writeback, align after this takes care of + * guaranteeing this is at least one cache line in size + */ + tx_ring->size += sizeof(u32); tx_ring->size = ALIGN(tx_ring->size, 4096); tx_ring->desc = dma_alloc_coherent(dev, tx_ring->size, &tx_ring->dma, GFP_KERNEL); @@ -768,7 +1099,7 @@ skb = netdev_alloc_skb_ip_align(rx_ring->netdev, rx_ring->rx_buf_len); if (!skb) { - rx_ring->rx_stats.alloc_rx_buff_failed++; + rx_ring->rx_stats.alloc_buff_failed++; goto no_buffers; } /* initialize queue mapping */ @@ -782,7 +1113,7 @@ rx_ring->rx_buf_len, DMA_FROM_DEVICE); if (dma_mapping_error(rx_ring->dev, bi->dma)) { - rx_ring->rx_stats.alloc_rx_buff_failed++; + rx_ring->rx_stats.alloc_buff_failed++; bi->dma = 0; goto no_buffers; } @@ -792,7 +1123,7 @@ if (!bi->page) { bi->page = alloc_page(GFP_ATOMIC); if (!bi->page) { - rx_ring->rx_stats.alloc_rx_page_failed++; + rx_ring->rx_stats.alloc_page_failed++; goto no_buffers; } } @@ -807,7 +1138,7 @@ DMA_FROM_DEVICE); if (dma_mapping_error(rx_ring->dev, bi->page_dma)) { - rx_ring->rx_stats.alloc_rx_page_failed++; + rx_ring->rx_stats.alloc_page_failed++; bi->page_dma = 0; goto no_buffers; } @@ -860,12 +1191,25 @@ * @skb: skb currently being received and modified * @rx_status: status value of last descriptor in packet * @rx_error: error value of last descriptor in packet + * @rx_ptype: ptype value of last descriptor in packet **/ static inline void i40e_rx_checksum(struct i40e_vsi *vsi, struct sk_buff *skb, u32 rx_status, - u32 rx_error) + u32 rx_error, + u16 rx_ptype) { + bool ipv4_tunnel, ipv6_tunnel; + __wsum rx_udp_csum; + __sum16 csum; + struct iphdr *iph; + + ipv4_tunnel = (rx_ptype > I40E_RX_PTYPE_GRENAT4_MAC_PAY3) && + (rx_ptype < I40E_RX_PTYPE_GRENAT4_MACVLAN_IPV6_ICMP_PAY4); + ipv6_tunnel = (rx_ptype > I40E_RX_PTYPE_GRENAT6_MAC_PAY3) && + (rx_ptype < I40E_RX_PTYPE_GRENAT6_MACVLAN_IPV6_ICMP_PAY4); + + skb->encapsulation = ipv4_tunnel || ipv6_tunnel; skb->ip_summed = CHECKSUM_NONE; /* Rx csum enabled and ip headers found? */ @@ -873,13 +1217,47 @@ rx_status & (1 << I40E_RX_DESC_STATUS_L3L4P_SHIFT))) return; - /* IP or L4 checksum error */ + /* likely incorrect csum if alternate IP extension headers found */ + if (rx_status & (1 << I40E_RX_DESC_STATUS_IPV6EXADD_SHIFT)) + return; + + /* IP or L4 or outmost IP checksum error */ if (rx_error & ((1 << I40E_RX_DESC_ERROR_IPE_SHIFT) | - (1 << I40E_RX_DESC_ERROR_L4E_SHIFT))) { + (1 << I40E_RX_DESC_ERROR_L4E_SHIFT) | + (1 << I40E_RX_DESC_ERROR_EIPE_SHIFT))) { vsi->back->hw_csum_rx_error++; return; } + if (ipv4_tunnel && + !(rx_status & (1 << I40E_RX_DESC_STATUS_UDP_0_SHIFT))) { + /* If VXLAN traffic has an outer UDPv4 checksum we need to check + * it in the driver, hardware does not do it for us. + * Since L3L4P bit was set we assume a valid IHL value (>=5) + * so the total length of IPv4 header is IHL*4 bytes + */ + skb->transport_header = skb->mac_header + + sizeof(struct ethhdr) + + (ip_hdr(skb)->ihl * 4); + + /* Add 4 bytes for VLAN tagged packets */ + skb->transport_header += (skb->protocol == htons(ETH_P_8021Q) || + skb->protocol == htons(ETH_P_8021AD)) + ? VLAN_HLEN : 0; + + rx_udp_csum = udp_csum(skb); + iph = ip_hdr(skb); + csum = csum_tcpudp_magic( + iph->saddr, iph->daddr, + (skb->len - skb_transport_offset(skb)), + IPPROTO_UDP, rx_udp_csum); + + if (udp_hdr(skb)->check != csum) { + vsi->back->hw_csum_rx_error++; + return; + } + } + skb->ip_summed = CHECKSUM_UNNECESSARY; } @@ -891,13 +1269,38 @@ static inline u32 i40e_rx_hash(struct i40e_ring *ring, union i40e_rx_desc *rx_desc) { - if (ring->netdev->features & NETIF_F_RXHASH) { - if ((le64_to_cpu(rx_desc->wb.qword1.status_error_len) >> - I40E_RX_DESC_STATUS_FLTSTAT_SHIFT) & - I40E_RX_DESC_FLTSTAT_RSS_HASH) - return le32_to_cpu(rx_desc->wb.qword0.hi_dword.rss); - } - return 0; + const __le64 rss_mask = + cpu_to_le64((u64)I40E_RX_DESC_FLTSTAT_RSS_HASH << + I40E_RX_DESC_STATUS_FLTSTAT_SHIFT); + + if ((ring->netdev->features & NETIF_F_RXHASH) && + (rx_desc->wb.qword1.status_error_len & rss_mask) == rss_mask) + return le32_to_cpu(rx_desc->wb.qword0.hi_dword.rss); + else + return 0; +} + +/** + * i40e_ptype_to_hash - get a hash type + * @ptype: the ptype value from the descriptor + * + * Returns a hash type to be used by skb_set_hash + **/ +static inline enum pkt_hash_types i40e_ptype_to_hash(u8 ptype) +{ + struct i40e_rx_ptype_decoded decoded = decode_rx_desc_ptype(ptype); + + if (!decoded.known) + return PKT_HASH_TYPE_NONE; + + if (decoded.outer_ip == I40E_RX_PTYPE_OUTER_IP && + decoded.payload_layer == I40E_RX_PTYPE_PAYLOAD_LAYER_PAY4) + return PKT_HASH_TYPE_L4; + else if (decoded.outer_ip == I40E_RX_PTYPE_OUTER_IP && + decoded.payload_layer == I40E_RX_PTYPE_PAYLOAD_LAYER_PAY3) + return PKT_HASH_TYPE_L3; + else + return PKT_HASH_TYPE_L2; } /** @@ -917,12 +1320,16 @@ u16 i = rx_ring->next_to_clean; union i40e_rx_desc *rx_desc; u32 rx_error, rx_status; + u8 rx_ptype; u64 qword; + if (budget <= 0) + return 0; + rx_desc = I40E_RX_DESC(rx_ring, i); qword = le64_to_cpu(rx_desc->wb.qword1.status_error_len); - rx_status = (qword & I40E_RXD_QW1_STATUS_MASK) - >> I40E_RXD_QW1_STATUS_SHIFT; + rx_status = (qword & I40E_RXD_QW1_STATUS_MASK) >> + I40E_RXD_QW1_STATUS_SHIFT; while (rx_status & (1 << I40E_RX_DESC_STATUS_DD_SHIFT)) { union i40e_rx_desc *next_rxd; @@ -938,18 +1345,20 @@ skb = rx_bi->skb; prefetch(skb->data); - rx_packet_len = (qword & I40E_RXD_QW1_LENGTH_PBUF_MASK) - >> I40E_RXD_QW1_LENGTH_PBUF_SHIFT; - rx_header_len = (qword & I40E_RXD_QW1_LENGTH_HBUF_MASK) - >> I40E_RXD_QW1_LENGTH_HBUF_SHIFT; - rx_sph = (qword & I40E_RXD_QW1_LENGTH_SPH_MASK) - >> I40E_RXD_QW1_LENGTH_SPH_SHIFT; + rx_packet_len = (qword & I40E_RXD_QW1_LENGTH_PBUF_MASK) >> + I40E_RXD_QW1_LENGTH_PBUF_SHIFT; + rx_header_len = (qword & I40E_RXD_QW1_LENGTH_HBUF_MASK) >> + I40E_RXD_QW1_LENGTH_HBUF_SHIFT; + rx_sph = (qword & I40E_RXD_QW1_LENGTH_SPH_MASK) >> + I40E_RXD_QW1_LENGTH_SPH_SHIFT; - rx_error = (qword & I40E_RXD_QW1_ERROR_MASK) - >> I40E_RXD_QW1_ERROR_SHIFT; + rx_error = (qword & I40E_RXD_QW1_ERROR_MASK) >> + I40E_RXD_QW1_ERROR_SHIFT; rx_hbo = rx_error & (1 << I40E_RX_DESC_ERROR_HBO_SHIFT); rx_error &= ~(1 << I40E_RX_DESC_ERROR_HBO_SHIFT); + rx_ptype = (qword & I40E_RXD_QW1_PTYPE_MASK) >> + I40E_RXD_QW1_PTYPE_SHIFT; rx_bi->skb = NULL; /* This memory barrier is needed to keep us from reading @@ -1029,14 +1438,23 @@ goto next_desc; } - skb->rxhash = i40e_rx_hash(rx_ring, rx_desc); - i40e_rx_checksum(vsi, skb, rx_status, rx_error); + skb_set_hash(skb, i40e_rx_hash(rx_ring, rx_desc), + i40e_ptype_to_hash(rx_ptype)); + if (unlikely(rx_status & I40E_RXD_QW1_STATUS_TSYNVALID_MASK)) { + i40e_ptp_rx_hwtstamp(vsi->back, skb, (rx_status & + I40E_RXD_QW1_STATUS_TSYNINDX_MASK) >> + I40E_RXD_QW1_STATUS_TSYNINDX_SHIFT); + rx_ring->last_rx_timestamp = jiffies; + } /* probably a little skewed due to removing CRC */ total_rx_bytes += skb->len; total_rx_packets++; skb->protocol = eth_type_trans(skb, rx_ring->netdev); + + i40e_rx_checksum(vsi, skb, rx_status, rx_error, rx_ptype); + vlan_tag = rx_status & (1 << I40E_RX_DESC_STATUS_L2TAG1P_SHIFT) ? le16_to_cpu(rx_desc->wb.qword0.lo_dword.l2tag1) : 0; @@ -1059,8 +1477,8 @@ /* use prefetched values */ rx_desc = next_rxd; qword = le64_to_cpu(rx_desc->wb.qword1.status_error_len); - rx_status = (qword & I40E_RXD_QW1_STATUS_MASK) - >> I40E_RXD_QW1_STATUS_SHIFT; + rx_status = (qword & I40E_RXD_QW1_STATUS_MASK) >> + I40E_RXD_QW1_STATUS_SHIFT; } rx_ring->next_to_clean = i; @@ -1173,15 +1591,13 @@ u16 i; /* make sure ATR is enabled */ - if (!(pf->flags & I40E_FLAG_FDIR_ATR_ENABLED)) + if (!(pf->flags & I40E_FLAG_FD_ATR_ENABLED)) return; /* if sampling is disabled do nothing */ if (!tx_ring->atr_sample_rate) return; - tx_ring->atr_count++; - /* snag network header to get L4 type and address */ hdr.network = skb_network_header(skb); @@ -1203,8 +1619,17 @@ th = (struct tcphdr *)(hdr.network + hlen); - /* sample on all syn/fin packets or once every atr sample rate */ - if (!th->fin && !th->syn && (tx_ring->atr_count < tx_ring->atr_sample_rate)) + /* Due to lack of space, no more new filters can be programmed */ + if (th->syn && (pf->auto_disable_flags & I40E_FLAG_FD_ATR_ENABLED)) + return; + + tx_ring->atr_count++; + + /* sample on all syn/fin/rst packets or once every atr sample rate */ + if (!th->fin && + !th->syn && + !th->rst && + (tx_ring->atr_count < tx_ring->atr_sample_rate)) return; tx_ring->atr_count = 0; @@ -1228,7 +1653,7 @@ dtype_cmd = I40E_TX_DESC_DTYPE_FILTER_PROG; - dtype_cmd |= th->fin ? + dtype_cmd |= (th->fin || th->rst) ? (I40E_FILTER_PROGRAM_DESC_PCMD_REMOVE << I40E_TXD_FLTR_QW1_PCMD_SHIFT) : (I40E_FILTER_PROGRAM_DESC_PCMD_ADD_UPDATE << @@ -1268,7 +1693,7 @@ tx_flags |= vlan_tx_tag_get(skb) << I40E_TX_FLAGS_VLAN_SHIFT; tx_flags |= I40E_TX_FLAGS_HW_VLAN; /* else if it is a SW VLAN, check the next protocol and store the tag */ - } else if (protocol == __constant_htons(ETH_P_8021Q)) { + } else if (protocol == htons(ETH_P_8021Q)) { struct vlan_hdr *vhdr, _vhdr; vhdr = skb_header_pointer(skb, ETH_HLEN, sizeof(_vhdr), &_vhdr); if (!vhdr) @@ -1288,9 +1713,11 @@ I40E_TX_FLAGS_VLAN_PRIO_SHIFT; if (tx_flags & I40E_TX_FLAGS_SW_VLAN) { struct vlan_ethhdr *vhdr; - if (skb_header_cloned(skb) && - pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) - return -ENOMEM; + int rc; + + rc = skb_cow_head(skb, 0); + if (rc < 0) + return rc; vhdr = (struct vlan_ethhdr *)skb->data; vhdr->h_vlan_TCI = htons(tx_flags >> I40E_TX_FLAGS_VLAN_SHIFT); @@ -1318,22 +1745,20 @@ u64 *cd_type_cmd_tso_mss, u32 *cd_tunneling) { u32 cd_cmd, cd_tso_len, cd_mss; + struct ipv6hdr *ipv6h; struct tcphdr *tcph; struct iphdr *iph; u32 l4len; int err; - struct ipv6hdr *ipv6h; if (!skb_is_gso(skb)) return 0; - if (skb_header_cloned(skb)) { - err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC); - if (err) - return err; - } + err = skb_cow_head(skb, 0); + if (err < 0) + return err; - if (protocol == __constant_htons(ETH_P_IP)) { + if (protocol == htons(ETH_P_IP)) { iph = skb->encapsulation ? inner_ip_hdr(skb) : ip_hdr(skb); tcph = skb->encapsulation ? inner_tcp_hdr(skb) : tcp_hdr(skb); iph->tot_len = 0; @@ -1359,10 +1784,50 @@ cd_cmd = I40E_TX_CTX_DESC_TSO; cd_tso_len = skb->len - *hdr_len; cd_mss = skb_shinfo(skb)->gso_size; - *cd_type_cmd_tso_mss |= ((u64)cd_cmd << I40E_TXD_CTX_QW1_CMD_SHIFT) - | ((u64)cd_tso_len - << I40E_TXD_CTX_QW1_TSO_LEN_SHIFT) - | ((u64)cd_mss << I40E_TXD_CTX_QW1_MSS_SHIFT); + *cd_type_cmd_tso_mss |= ((u64)cd_cmd << I40E_TXD_CTX_QW1_CMD_SHIFT) | + ((u64)cd_tso_len << + I40E_TXD_CTX_QW1_TSO_LEN_SHIFT) | + ((u64)cd_mss << I40E_TXD_CTX_QW1_MSS_SHIFT); + return 1; +} + +/** + * i40e_tsyn - set up the tsyn context descriptor + * @tx_ring: ptr to the ring to send + * @skb: ptr to the skb we're sending + * @tx_flags: the collected send information + * + * Returns 0 if no Tx timestamp can happen and 1 if the timestamp will happen + **/ +static int i40e_tsyn(struct i40e_ring *tx_ring, struct sk_buff *skb, + u32 tx_flags, u64 *cd_type_cmd_tso_mss) +{ + struct i40e_pf *pf; + + if (likely(!(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP))) + return 0; + + /* Tx timestamps cannot be sampled when doing TSO */ + if (tx_flags & I40E_TX_FLAGS_TSO) + return 0; + + /* only timestamp the outbound packet if the user has requested it and + * we are not already transmitting a packet to be timestamped + */ + pf = i40e_netdev_to_pf(tx_ring->netdev); + if (pf->ptp_tx && !pf->ptp_tx_skb) { + skb_shinfo(skb)->tx_flags |= SKBTX_IN_PROGRESS; + pf->ptp_tx_skb = skb_get(skb); + } else { + return 0; + } + + *cd_type_cmd_tso_mss |= (u64)I40E_TX_CTX_DESC_TSYN << + I40E_TXD_CTX_QW1_CMD_SHIFT; + + pf->ptp_tx_start = jiffies; + schedule_work(&pf->ptp_tx_work); + return 1; } @@ -1490,7 +1955,8 @@ struct i40e_tx_context_desc *context_desc; int i = tx_ring->next_to_use; - if (!cd_type_cmd_tso_mss && !cd_tunneling && !cd_l2tag2) + if ((cd_type_cmd_tso_mss == I40E_TX_DESC_DTYPE_CONTEXT) && + !cd_tunneling && !cd_l2tag2) return; /* grab the next descriptor */ @@ -1601,9 +2067,23 @@ tx_bi = &tx_ring->tx_bi[i]; } - tx_desc->cmd_type_offset_bsz = - build_ctob(td_cmd, td_offset, size, td_tag) | - cpu_to_le64((u64)I40E_TXD_CMD << I40E_TXD_QW1_CMD_SHIFT); + /* Place RS bit on last descriptor of any packet that spans across the + * 4th descriptor (WB_STRIDE aka 0x3) in a 64B cacheline. + */ +#define WB_STRIDE 0x3 + if (((i & WB_STRIDE) != WB_STRIDE) && + (first <= &tx_ring->tx_bi[i]) && + (first >= &tx_ring->tx_bi[i & ~WB_STRIDE])) { + tx_desc->cmd_type_offset_bsz = + build_ctob(td_cmd, td_offset, size, td_tag) | + cpu_to_le64((u64)I40E_TX_DESC_CMD_EOP << + I40E_TXD_QW1_CMD_SHIFT); + } else { + tx_desc->cmd_type_offset_bsz = + build_ctob(td_cmd, td_offset, size, td_tag) | + cpu_to_le64((u64)I40E_TXD_CMD << + I40E_TXD_QW1_CMD_SHIFT); + } netdev_tx_sent_queue(netdev_get_tx_queue(tx_ring->netdev, tx_ring->queue_index), @@ -1660,6 +2140,7 @@ static inline int __i40e_maybe_stop_tx(struct i40e_ring *tx_ring, int size) { netif_stop_subqueue(tx_ring->netdev, tx_ring->queue_index); + /* Memory barrier before checking head and tail */ smp_mb(); /* Check again in a case another CPU has just made room available. */ @@ -1705,7 +2186,7 @@ /* need: 1 descriptor per page * PAGE_SIZE/I40E_MAX_DATA_PER_TXD, * + 1 desc for skb_head_len/I40E_MAX_DATA_PER_TXD, - * + 2 desc gap to keep tail from touching head, + * + 4 desc gap to avoid the cache line where head is, * + 1 desc for context descriptor, * otherwise try next time */ @@ -1716,7 +2197,7 @@ count += skb_shinfo(skb)->nr_frags; #endif count += TXD_USE_COUNT(skb_headlen(skb)); - if (i40e_maybe_stop_tx(tx_ring, count + 3)) { + if (i40e_maybe_stop_tx(tx_ring, count + 4 + 1)) { tx_ring->tx_stats.tx_busy++; return 0; } @@ -1741,6 +2222,7 @@ __be16 protocol; u32 td_cmd = 0; u8 hdr_len = 0; + int tsyn; int tso; if (0 == i40e_xmit_descriptor_count(skb, tx_ring)) return NETDEV_TX_BUSY; @@ -1756,9 +2238,9 @@ first = &tx_ring->tx_bi[tx_ring->next_to_use]; /* setup IPv4/IPv6 offloads */ - if (protocol == __constant_htons(ETH_P_IP)) + if (protocol == htons(ETH_P_IP)) tx_flags |= I40E_TX_FLAGS_IPV4; - else if (protocol == __constant_htons(ETH_P_IPV6)) + else if (protocol == htons(ETH_P_IPV6)) tx_flags |= I40E_TX_FLAGS_IPV6; tso = i40e_tso(tx_ring, skb, tx_flags, protocol, &hdr_len, @@ -1771,6 +2253,11 @@ skb_tx_timestamp(skb); + tsyn = i40e_tsyn(tx_ring, skb, tx_flags, &cd_type_cmd_tso_mss); + + if (tsyn) + tx_flags |= I40E_TX_FLAGS_TSYN; + /* always enable CRC insertion offload */ td_cmd |= I40E_TX_DESC_CMD_ICRC; --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_txrx.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_txrx.h @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -25,11 +24,13 @@ * ******************************************************************************/ +#ifndef _I40E_TXRX_H_ +#define _I40E_TXRX_H_ + /* Interrupt Throttling and Rate Limiting (storm control) Goodies */ -#define I40E_MAX_ITR 0x07FF -#define I40E_MIN_ITR 0x0001 -#define I40E_ITR_USEC_RESOLUTION 2 +#define I40E_MAX_ITR 0x0FF0 /* reg uses 2 usec resolution */ +#define I40E_MIN_ITR 0x0004 /* reg uses 2 usec resolution */ #define I40E_MAX_IRATE 0x03F #define I40E_MIN_IRATE 0x001 #define I40E_IRATE_USEC_RESOLUTION 4 @@ -49,10 +50,43 @@ #define I40E_QUEUE_END_OF_LIST 0x7FF -#define I40E_ITR_NONE 3 -#define I40E_RX_ITR 0 -#define I40E_TX_ITR 1 -#define I40E_PE_ITR 2 +/* this enum matches hardware bits and is meant to be used by DYN_CTLN + * registers and QINT registers or more generally anywhere in the manual + * mentioning ITR_INDX, ITR_NONE cannot be used as an index 'n' into any + * register but instead is a special value meaning "don't update" ITR0/1/2. + */ +enum i40e_dyn_idx_t { + I40E_IDX_ITR0 = 0, + I40E_IDX_ITR1 = 1, + I40E_IDX_ITR2 = 2, + I40E_ITR_NONE = 3 /* ITR_NONE must not be used as an index */ +}; + +/* these are indexes into ITRN registers */ +#define I40E_RX_ITR I40E_IDX_ITR0 +#define I40E_TX_ITR I40E_IDX_ITR1 +#define I40E_PE_ITR I40E_IDX_ITR2 + +/* Supported RSS offloads */ +#define I40E_DEFAULT_RSS_HENA ( \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_UNICAST_IPV4_UDP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV4_UDP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV4_UDP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV4_SCTP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV4_TCP_SYN) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV4_TCP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV4_OTHER) | \ + ((u64)1 << I40E_FILTER_PCTYPE_FRAG_IPV4) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_UNICAST_IPV6_UDP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV6_UDP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV6_UDP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV6_TCP_SYN) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV6_TCP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV6_SCTP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV6_OTHER) | \ + ((u64)1 << I40E_FILTER_PCTYPE_FRAG_IPV6) | \ + ((u64)1 << I40E_FILTER_PCTYPE_L2_PAYLOAD)) + /* Supported Rx Buffer Sizes */ #define I40E_RXBUFFER_512 512 /* Used for packet split */ #define I40E_RXBUFFER_2048 2048 @@ -102,6 +136,7 @@ #define I40E_TX_FLAGS_IPV6 (u32)(1 << 5) #define I40E_TX_FLAGS_FCCRC (u32)(1 << 6) #define I40E_TX_FLAGS_FSO (u32)(1 << 7) +#define I40E_TX_FLAGS_TSYN (u32)(1 << 8) #define I40E_TX_FLAGS_VLAN_MASK 0xffff0000 #define I40E_TX_FLAGS_VLAN_PRIO_MASK 0xe0000000 #define I40E_TX_FLAGS_VLAN_PRIO_SHIFT 29 @@ -139,8 +174,8 @@ struct i40e_rx_queue_stats { u64 non_eop_descs; - u64 alloc_rx_page_failed; - u64 alloc_rx_buff_failed; + u64 alloc_page_failed; + u64 alloc_buff_failed; }; enum i40e_ring_state_t { @@ -214,6 +249,8 @@ u8 atr_sample_rate; u8 atr_count; + unsigned long last_rx_timestamp; + bool ring_active; /* is ring online or not */ /* stats structs */ @@ -262,3 +299,4 @@ void i40e_free_tx_resources(struct i40e_ring *tx_ring); void i40e_free_rx_resources(struct i40e_ring *rx_ring); int i40e_napi_poll(struct napi_struct *napi, int budget); +#endif /* _I40E_TXRX_H_ */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_type.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_type.h @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -36,38 +35,31 @@ #include "i40e_lan_hmc.h" /* Device IDs */ -#define I40E_SFP_XL710_DEVICE_ID 0x1572 -#define I40E_SFP_X710_DEVICE_ID 0x1573 -#define I40E_QEMU_DEVICE_ID 0x1574 -#define I40E_KX_A_DEVICE_ID 0x157F -#define I40E_KX_B_DEVICE_ID 0x1580 -#define I40E_KX_C_DEVICE_ID 0x1581 -#define I40E_KX_D_DEVICE_ID 0x1582 -#define I40E_QSFP_A_DEVICE_ID 0x1583 -#define I40E_QSFP_B_DEVICE_ID 0x1584 -#define I40E_QSFP_C_DEVICE_ID 0x1585 -#define I40E_VF_DEVICE_ID 0x154C -#define I40E_VF_HV_DEVICE_ID 0x1571 - -#define I40E_FW_API_VERSION_MAJOR 0x0001 -#define I40E_FW_API_VERSION_MINOR 0x0000 +#define I40E_DEV_ID_SFP_XL710 0x1572 +#define I40E_DEV_ID_SFP_X710 0x1573 +#define I40E_DEV_ID_QEMU 0x1574 +#define I40E_DEV_ID_KX_A 0x157F +#define I40E_DEV_ID_KX_B 0x1580 +#define I40E_DEV_ID_KX_C 0x1581 +#define I40E_DEV_ID_KX_D 0x1582 +#define I40E_DEV_ID_QSFP_A 0x1583 +#define I40E_DEV_ID_QSFP_B 0x1584 +#define I40E_DEV_ID_QSFP_C 0x1585 +#define I40E_DEV_ID_VF 0x154C +#define I40E_DEV_ID_VF_HV 0x1571 + +#define i40e_is_40G_device(d) ((d) == I40E_DEV_ID_QSFP_A || \ + (d) == I40E_DEV_ID_QSFP_B || \ + (d) == I40E_DEV_ID_QSFP_C) #define I40E_MAX_VSI_QP 16 #define I40E_MAX_VF_VSI 3 #define I40E_MAX_CHAINED_RX_BUFFERS 5 +#define I40E_MAX_PF_UDP_OFFLOAD_PORTS 16 /* Max default timeout in ms, */ #define I40E_MAX_NVM_TIMEOUT 18000 -/* Check whether address is multicast. This is little-endian specific check.*/ -#define I40E_IS_MULTICAST(address) \ - (bool)(((u8 *)(address))[0] & ((u8)0x01)) - -/* Check whether an address is broadcast. */ -#define I40E_IS_BROADCAST(address) \ - ((((u8 *)(address))[0] == ((u8)0xff)) && \ - (((u8 *)(address))[1] == ((u8)0xff))) - /* Switch from mc to the 2usec global time (this is the GTIME resolution) */ #define I40E_MS_TO_GTIME(time) (((time) * 1000) / 2) @@ -75,8 +67,6 @@ struct i40e_hw; typedef void (*I40E_ADMINQ_CALLBACK)(struct i40e_hw *, struct i40e_aq_desc *); -#define I40E_ETH_LENGTH_OF_ADDRESS 6 - /* Data type manipulation macros. */ #define I40E_DESC_UNUSED(R) \ @@ -85,9 +75,10 @@ /* bitfields for Tx queue mapping in QTX_CTL */ #define I40E_QTX_CTL_VF_QUEUE 0x0 +#define I40E_QTX_CTL_VM_QUEUE 0x1 #define I40E_QTX_CTL_PF_QUEUE 0x2 -/* debug masks */ +/* debug masks - set these bits in hw->debug_mask to control output */ enum i40e_debug_mask { I40E_DEBUG_INIT = 0x00000001, I40E_DEBUG_RELEASE = 0x00000002, @@ -100,11 +91,12 @@ I40E_DEBUG_FLOW = 0x00000200, I40E_DEBUG_DCB = 0x00000400, I40E_DEBUG_DIAG = 0x00000800, + I40E_DEBUG_FD = 0x00001000, - I40E_DEBUG_AQ_MESSAGE = 0x01000000, /* for i40e_debug() */ + I40E_DEBUG_AQ_MESSAGE = 0x01000000, I40E_DEBUG_AQ_DESCRIPTOR = 0x02000000, I40E_DEBUG_AQ_DESC_BUFFER = 0x04000000, - I40E_DEBUG_AQ_COMMAND = 0x06000000, /* for i40e_debug_aq() */ + I40E_DEBUG_AQ_COMMAND = 0x06000000, I40E_DEBUG_AQ = 0x0F000000, I40E_DEBUG_USER = 0xF0000000, @@ -134,6 +126,7 @@ I40E_MEDIA_TYPE_BASET, I40E_MEDIA_TYPE_BACKPLANE, I40E_MEDIA_TYPE_CX4, + I40E_MEDIA_TYPE_DA, I40E_MEDIA_TYPE_VIRTUAL }; @@ -171,6 +164,7 @@ u8 link_info; u8 an_info; u8 ext_info; + u8 loopback; /* is Link Status Event notification to SW enabled */ bool lse_enable; }; @@ -236,9 +230,9 @@ struct i40e_mac_info { enum i40e_mac_type type; - u8 addr[I40E_ETH_LENGTH_OF_ADDRESS]; - u8 perm_addr[I40E_ETH_LENGTH_OF_ADDRESS]; - u8 san_addr[I40E_ETH_LENGTH_OF_ADDRESS]; + u8 addr[ETH_ALEN]; + u8 perm_addr[ETH_ALEN]; + u8 san_addr[ETH_ALEN]; u16 max_fcoeq; }; @@ -465,6 +459,10 @@ union { __le32 rss; /* RSS Hash */ __le32 fcoe_param; /* FCoE DDP Context id */ + /* Flow director filter id in case of + * Programming status desc WB + */ + __le32 fd_id; } hi_dword; } qword0; struct { @@ -500,18 +498,26 @@ I40E_RX_DESC_STATUS_L2TAG1P_SHIFT = 2, I40E_RX_DESC_STATUS_L3L4P_SHIFT = 3, I40E_RX_DESC_STATUS_CRCP_SHIFT = 4, - I40E_RX_DESC_STATUS_TSYNINDX_SHIFT = 5, /* 3 BITS */ + I40E_RX_DESC_STATUS_TSYNINDX_SHIFT = 5, /* 2 BITS */ + I40E_RX_DESC_STATUS_TSYNVALID_SHIFT = 7, I40E_RX_DESC_STATUS_PIF_SHIFT = 8, I40E_RX_DESC_STATUS_UMBCAST_SHIFT = 9, /* 2 BITS */ I40E_RX_DESC_STATUS_FLM_SHIFT = 11, I40E_RX_DESC_STATUS_FLTSTAT_SHIFT = 12, /* 2 BITS */ - I40E_RX_DESC_STATUS_LPBK_SHIFT = 14 + I40E_RX_DESC_STATUS_LPBK_SHIFT = 14, + I40E_RX_DESC_STATUS_IPV6EXADD_SHIFT = 15, + I40E_RX_DESC_STATUS_RESERVED_SHIFT = 16, /* 2 BITS */ + I40E_RX_DESC_STATUS_UDP_0_SHIFT = 18 }; #define I40E_RXD_QW1_STATUS_TSYNINDX_SHIFT I40E_RX_DESC_STATUS_TSYNINDX_SHIFT -#define I40E_RXD_QW1_STATUS_TSYNINDX_MASK (0x7UL << \ +#define I40E_RXD_QW1_STATUS_TSYNINDX_MASK (0x3UL << \ I40E_RXD_QW1_STATUS_TSYNINDX_SHIFT) +#define I40E_RXD_QW1_STATUS_TSYNVALID_SHIFT I40E_RX_DESC_STATUS_TSYNVALID_SHIFT +#define I40E_RXD_QW1_STATUS_TSYNVALID_MASK (0x1UL << \ + I40E_RXD_QW1_STATUS_TSYNVALID_SHIFT) + enum i40e_rx_desc_fltstat_values { I40E_RX_DESC_FLTSTAT_NO_DATA = 0, I40E_RX_DESC_FLTSTAT_RSV_FD_ID = 1, /* 16byte desc? FD_ID : RSV */ @@ -547,28 +553,32 @@ /* Packet type non-ip values */ enum i40e_rx_l2_ptype { - I40E_RX_PTYPE_L2_RESERVED = 0, - I40E_RX_PTYPE_L2_MAC_PAY2 = 1, - I40E_RX_PTYPE_L2_TIMESYNC_PAY2 = 2, - I40E_RX_PTYPE_L2_FIP_PAY2 = 3, - I40E_RX_PTYPE_L2_OUI_PAY2 = 4, - I40E_RX_PTYPE_L2_MACCNTRL_PAY2 = 5, - I40E_RX_PTYPE_L2_LLDP_PAY2 = 6, - I40E_RX_PTYPE_L2_ECP_PAY2 = 7, - I40E_RX_PTYPE_L2_EVB_PAY2 = 8, - I40E_RX_PTYPE_L2_QCN_PAY2 = 9, - I40E_RX_PTYPE_L2_EAPOL_PAY2 = 10, - I40E_RX_PTYPE_L2_ARP = 11, - I40E_RX_PTYPE_L2_FCOE_PAY3 = 12, - I40E_RX_PTYPE_L2_FCOE_FCDATA_PAY3 = 13, - I40E_RX_PTYPE_L2_FCOE_FCRDY_PAY3 = 14, - I40E_RX_PTYPE_L2_FCOE_FCRSP_PAY3 = 15, - I40E_RX_PTYPE_L2_FCOE_FCOTHER_PA = 16, - I40E_RX_PTYPE_L2_FCOE_VFT_PAY3 = 17, - I40E_RX_PTYPE_L2_FCOE_VFT_FCDATA = 18, - I40E_RX_PTYPE_L2_FCOE_VFT_FCRDY = 19, - I40E_RX_PTYPE_L2_FCOE_VFT_FCRSP = 20, - I40E_RX_PTYPE_L2_FCOE_VFT_FCOTHER = 21 + I40E_RX_PTYPE_L2_RESERVED = 0, + I40E_RX_PTYPE_L2_MAC_PAY2 = 1, + I40E_RX_PTYPE_L2_TIMESYNC_PAY2 = 2, + I40E_RX_PTYPE_L2_FIP_PAY2 = 3, + I40E_RX_PTYPE_L2_OUI_PAY2 = 4, + I40E_RX_PTYPE_L2_MACCNTRL_PAY2 = 5, + I40E_RX_PTYPE_L2_LLDP_PAY2 = 6, + I40E_RX_PTYPE_L2_ECP_PAY2 = 7, + I40E_RX_PTYPE_L2_EVB_PAY2 = 8, + I40E_RX_PTYPE_L2_QCN_PAY2 = 9, + I40E_RX_PTYPE_L2_EAPOL_PAY2 = 10, + I40E_RX_PTYPE_L2_ARP = 11, + I40E_RX_PTYPE_L2_FCOE_PAY3 = 12, + I40E_RX_PTYPE_L2_FCOE_FCDATA_PAY3 = 13, + I40E_RX_PTYPE_L2_FCOE_FCRDY_PAY3 = 14, + I40E_RX_PTYPE_L2_FCOE_FCRSP_PAY3 = 15, + I40E_RX_PTYPE_L2_FCOE_FCOTHER_PA = 16, + I40E_RX_PTYPE_L2_FCOE_VFT_PAY3 = 17, + I40E_RX_PTYPE_L2_FCOE_VFT_FCDATA = 18, + I40E_RX_PTYPE_L2_FCOE_VFT_FCRDY = 19, + I40E_RX_PTYPE_L2_FCOE_VFT_FCRSP = 20, + I40E_RX_PTYPE_L2_FCOE_VFT_FCOTHER = 21, + I40E_RX_PTYPE_GRENAT4_MAC_PAY3 = 58, + I40E_RX_PTYPE_GRENAT4_MACVLAN_IPV6_ICMP_PAY4 = 87, + I40E_RX_PTYPE_GRENAT6_MAC_PAY3 = 124, + I40E_RX_PTYPE_GRENAT6_MACVLAN_IPV6_ICMP_PAY4 = 153 }; struct i40e_rx_ptype_decoded { @@ -693,7 +703,7 @@ enum i40e_rx_prog_status_desc_error_bits { /* Note: These are predefined bit offsets */ I40E_RX_PROG_STATUS_DESC_FD_TBL_FULL_SHIFT = 0, - I40E_RX_PROG_STATUS_DESC_NO_FD_QUOTA_SHIFT = 1, + I40E_RX_PROG_STATUS_DESC_NO_FD_ENTRY_SHIFT = 1, I40E_RX_PROG_STATUS_DESC_FCOE_TBL_FULL_SHIFT = 2, I40E_RX_PROG_STATUS_DESC_FCOE_CONFLICT_SHIFT = 3 }; @@ -852,10 +862,7 @@ /* Packet Classifier Types for filters */ enum i40e_filter_pctype { - /* Note: Value 0-25 are reserved for future use */ - I40E_FILTER_PCTYPE_IPV4_TEREDO_UDP = 26, - I40E_FILTER_PCTYPE_IPV6_TEREDO_UDP = 27, - I40E_FILTER_PCTYPE_NONF_IPV4_1588_UDP = 28, + /* Note: Values 0-28 are reserved for future use */ I40E_FILTER_PCTYPE_NONF_UNICAST_IPV4_UDP = 29, I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV4_UDP = 30, I40E_FILTER_PCTYPE_NONF_IPV4_UDP = 31, @@ -864,8 +871,7 @@ I40E_FILTER_PCTYPE_NONF_IPV4_SCTP = 34, I40E_FILTER_PCTYPE_NONF_IPV4_OTHER = 35, I40E_FILTER_PCTYPE_FRAG_IPV4 = 36, - /* Note: Value 37 is reserved for future use */ - I40E_FILTER_PCTYPE_NONF_IPV6_1588_UDP = 38, + /* Note: Values 37-38 are reserved for future use */ I40E_FILTER_PCTYPE_NONF_UNICAST_IPV6_UDP = 39, I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV6_UDP = 40, I40E_FILTER_PCTYPE_NONF_IPV6_UDP = 41, @@ -877,7 +883,8 @@ /* Note: Value 47 is reserved for future use */ I40E_FILTER_PCTYPE_FCOE_OX = 48, I40E_FILTER_PCTYPE_FCOE_RX = 49, - /* Note: Value 50-62 are reserved for future use */ + I40E_FILTER_PCTYPE_FCOE_OTHER = 50, + /* Note: Values 51-62 are reserved for future use */ I40E_FILTER_PCTYPE_L2_PAYLOAD = 63, }; @@ -1008,12 +1015,18 @@ u64 tx_size_big; /* ptc9522 */ u64 mac_short_packet_dropped; /* mspdc */ u64 checksum_error; /* xec */ + /* EEE LPI */ + bool tx_lpi_status; + bool rx_lpi_status; + u64 tx_lpi_count; /* etlpic */ + u64 rx_lpi_count; /* erlpic */ }; /* Checksum and Shadow RAM pointers */ #define I40E_SR_NVM_CONTROL_WORD 0x00 #define I40E_SR_EMP_MODULE_PTR 0x0F #define I40E_SR_NVM_IMAGE_VERSION 0x18 +#define I40E_SR_NVM_WAKE_ON_LAN 0x19 #define I40E_SR_ALTERNATE_SAN_MAC_ADDRESS_PTR 0x27 #define I40E_SR_NVM_EETRACK_LO 0x2D #define I40E_SR_NVM_EETRACK_HI 0x2E @@ -1138,17 +1151,4 @@ I40E_RESET_GLOBR = 2, I40E_RESET_EMPR = 3, }; - -/* IEEE 802.1AB LLDP Agent Variables from NVM */ -#define I40E_NVM_LLDP_CFG_PTR 0xF -struct i40e_lldp_variables { - u16 length; - u16 adminstatus; - u16 msgfasttx; - u16 msgtxinterval; - u16 txparams; - u16 timers; - u16 crc8; -}; - #endif /* _I40E_TYPE_H_ */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_virtchnl.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_virtchnl.h @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -142,7 +141,7 @@ u16 num_queue_pairs; enum i40e_vsi_type vsi_type; u16 qset_handle; - u8 default_mac_addr[I40E_ETH_LENGTH_OF_ADDRESS]; + u8 default_mac_addr[ETH_ALEN]; }; /* VF offload flags */ #define I40E_VIRTCHNL_VF_OFFLOAD_L2 0x00000001 @@ -265,7 +264,7 @@ */ struct i40e_virtchnl_ether_addr { - u8 addr[I40E_ETH_LENGTH_OF_ADDRESS]; + u8 addr[ETH_ALEN]; u8 pad[2]; }; --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -102,130 +101,6 @@ } /** - * i40e_ctrl_vsi_tx_queue - * @vf: pointer to the vf info - * @vsi_idx: index of VSI in PF struct - * @vsi_queue_id: vsi relative queue index - * @ctrl: control flags - * - * enable/disable/enable check/disable check - **/ -static int i40e_ctrl_vsi_tx_queue(struct i40e_vf *vf, u16 vsi_idx, - u16 vsi_queue_id, - enum i40e_queue_ctrl ctrl) -{ - struct i40e_pf *pf = vf->pf; - struct i40e_hw *hw = &pf->hw; - bool writeback = false; - u16 pf_queue_id; - int ret = 0; - u32 reg; - - pf_queue_id = i40e_vc_get_pf_queue_id(vf, vsi_idx, vsi_queue_id); - reg = rd32(hw, I40E_QTX_ENA(pf_queue_id)); - - switch (ctrl) { - case I40E_QUEUE_CTRL_ENABLE: - reg |= I40E_QTX_ENA_QENA_REQ_MASK; - writeback = true; - break; - case I40E_QUEUE_CTRL_ENABLECHECK: - ret = (reg & I40E_QTX_ENA_QENA_STAT_MASK) ? 0 : -EPERM; - break; - case I40E_QUEUE_CTRL_DISABLE: - reg &= ~I40E_QTX_ENA_QENA_REQ_MASK; - writeback = true; - break; - case I40E_QUEUE_CTRL_DISABLECHECK: - ret = (reg & I40E_QTX_ENA_QENA_STAT_MASK) ? -EPERM : 0; - break; - case I40E_QUEUE_CTRL_FASTDISABLE: - reg |= I40E_QTX_ENA_FAST_QDIS_MASK; - writeback = true; - break; - case I40E_QUEUE_CTRL_FASTDISABLECHECK: - ret = (reg & I40E_QTX_ENA_QENA_STAT_MASK) ? -EPERM : 0; - if (!ret) { - reg &= ~I40E_QTX_ENA_FAST_QDIS_MASK; - writeback = true; - } - break; - default: - ret = -EINVAL; - break; - } - - if (writeback) { - wr32(hw, I40E_QTX_ENA(pf_queue_id), reg); - i40e_flush(hw); - } - - return ret; -} - -/** - * i40e_ctrl_vsi_rx_queue - * @vf: pointer to the vf info - * @vsi_idx: index of VSI in PF struct - * @vsi_queue_id: vsi relative queue index - * @ctrl: control flags - * - * enable/disable/enable check/disable check - **/ -static int i40e_ctrl_vsi_rx_queue(struct i40e_vf *vf, u16 vsi_idx, - u16 vsi_queue_id, - enum i40e_queue_ctrl ctrl) -{ - struct i40e_pf *pf = vf->pf; - struct i40e_hw *hw = &pf->hw; - bool writeback = false; - u16 pf_queue_id; - int ret = 0; - u32 reg; - - pf_queue_id = i40e_vc_get_pf_queue_id(vf, vsi_idx, vsi_queue_id); - reg = rd32(hw, I40E_QRX_ENA(pf_queue_id)); - - switch (ctrl) { - case I40E_QUEUE_CTRL_ENABLE: - reg |= I40E_QRX_ENA_QENA_REQ_MASK; - writeback = true; - break; - case I40E_QUEUE_CTRL_ENABLECHECK: - ret = (reg & I40E_QRX_ENA_QENA_STAT_MASK) ? 0 : -EPERM; - break; - case I40E_QUEUE_CTRL_DISABLE: - reg &= ~I40E_QRX_ENA_QENA_REQ_MASK; - writeback = true; - break; - case I40E_QUEUE_CTRL_DISABLECHECK: - ret = (reg & I40E_QRX_ENA_QENA_STAT_MASK) ? -EPERM : 0; - break; - case I40E_QUEUE_CTRL_FASTDISABLE: - reg |= I40E_QRX_ENA_FAST_QDIS_MASK; - writeback = true; - break; - case I40E_QUEUE_CTRL_FASTDISABLECHECK: - ret = (reg & I40E_QRX_ENA_QENA_STAT_MASK) ? -EPERM : 0; - if (!ret) { - reg &= ~I40E_QRX_ENA_FAST_QDIS_MASK; - writeback = true; - } - break; - default: - ret = -EINVAL; - break; - } - - if (writeback) { - wr32(hw, I40E_QRX_ENA(pf_queue_id), reg); - i40e_flush(hw); - } - - return ret; -} - -/** * i40e_config_irq_link_list * @vf: pointer to the vf info * @vsi_idx: index of VSI in PF struct @@ -251,8 +126,8 @@ reg_idx = I40E_VPINT_LNKLST0(vf->vf_id); else reg_idx = I40E_VPINT_LNKLSTN( - (pf->hw.func_caps.num_msix_vectors_vf - * vf->vf_id) + (vector_id - 1)); + ((pf->hw.func_caps.num_msix_vectors_vf - 1) * vf->vf_id) + + (vector_id - 1)); if (vecmap->rxq_map == 0 && vecmap->txq_map == 0) { /* Special case - No queues mapped on this vector */ @@ -260,23 +135,17 @@ goto irq_list_done; } tempmap = vecmap->rxq_map; - vsi_queue_id = find_first_bit(&tempmap, I40E_MAX_VSI_QP); - while (vsi_queue_id < I40E_MAX_VSI_QP) { + for_each_set_bit(vsi_queue_id, &tempmap, I40E_MAX_VSI_QP) { linklistmap |= (1 << (I40E_VIRTCHNL_SUPPORTED_QTYPES * vsi_queue_id)); - vsi_queue_id = - find_next_bit(&tempmap, I40E_MAX_VSI_QP, vsi_queue_id + 1); } tempmap = vecmap->txq_map; - vsi_queue_id = find_first_bit(&tempmap, I40E_MAX_VSI_QP); - while (vsi_queue_id < I40E_MAX_VSI_QP) { + for_each_set_bit(vsi_queue_id, &tempmap, I40E_MAX_VSI_QP) { linklistmap |= (1 << (I40E_VIRTCHNL_SUPPORTED_QTYPES * vsi_queue_id + 1)); - vsi_queue_id = find_next_bit(&tempmap, I40E_MAX_VSI_QP, - vsi_queue_id + 1); } next_q = find_first_bit(&linklistmap, @@ -307,7 +176,8 @@ (I40E_MAX_VSI_QP * I40E_VIRTCHNL_SUPPORTED_QTYPES), next_q + 1); - if (next_q < (I40E_MAX_VSI_QP * I40E_VIRTCHNL_SUPPORTED_QTYPES)) { + if (next_q < + (I40E_MAX_VSI_QP * I40E_VIRTCHNL_SUPPORTED_QTYPES)) { vsi_queue_id = next_q / I40E_VIRTCHNL_SUPPORTED_QTYPES; qtype = next_q % I40E_VIRTCHNL_SUPPORTED_QTYPES; pf_queue_id = i40e_vc_get_pf_queue_id(vf, vsi_idx, @@ -360,6 +230,9 @@ tx_ctx.qlen = info->ring_len; tx_ctx.rdylist = le16_to_cpu(pf->vsi[vsi_idx]->info.qs_handle[0]); tx_ctx.rdylist_act = 0; + tx_ctx.head_wb_ena = 1; + tx_ctx.head_wb_addr = info->dma_ring_addr + + (info->ring_len * sizeof(struct i40e_tx_desc)); /* clear the context in the HMC */ ret = i40e_clear_lan_tx_queue_context(hw, pf_queue_id); @@ -499,7 +372,6 @@ { struct i40e_mac_filter *f = NULL; struct i40e_pf *pf = vf->pf; - struct i40e_hw *hw = &pf->hw; struct i40e_vsi *vsi; int ret = 0; @@ -513,171 +385,42 @@ goto error_alloc_vsi_res; } if (type == I40E_VSI_SRIOV) { + u8 brdcast[ETH_ALEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; vf->lan_vsi_index = vsi->idx; vf->lan_vsi_id = vsi->id; dev_info(&pf->pdev->dev, - "LAN VSI index %d, VSI id %d\n", - vsi->idx, vsi->id); + "VF %d assigned LAN VSI index %d, VSI id %d\n", + vf->vf_id, vsi->idx, vsi->id); + /* If the port VLAN has been configured and then the + * VF driver was removed then the VSI port VLAN + * configuration was destroyed. Check if there is + * a port VLAN and restore the VSI configuration if + * needed. + */ + if (vf->port_vlan_id) + i40e_vsi_add_pvid(vsi, vf->port_vlan_id); f = i40e_add_filter(vsi, vf->default_lan_addr.addr, - 0, true, false); - } - if (!f) { - dev_err(&pf->pdev->dev, "Unable to add ucast filter\n"); - ret = -ENOMEM; - goto error_alloc_vsi_res; + vf->port_vlan_id, true, false); + if (!f) + dev_info(&pf->pdev->dev, + "Could not allocate VF MAC addr\n"); + f = i40e_add_filter(vsi, brdcast, vf->port_vlan_id, + true, false); + if (!f) + dev_info(&pf->pdev->dev, + "Could not allocate VF broadcast filter\n"); } /* program mac filter */ ret = i40e_sync_vsi_filters(vsi); - if (ret) { + if (ret) dev_err(&pf->pdev->dev, "Unable to program ucast filters\n"); - goto error_alloc_vsi_res; - } - - /* accept bcast pkts. by default */ - ret = i40e_aq_set_vsi_broadcast(hw, vsi->seid, true, NULL); - if (ret) { - dev_err(&pf->pdev->dev, - "set vsi bcast failed for vf %d, vsi %d, aq_err %d\n", - vf->vf_id, vsi->idx, pf->hw.aq.asq_last_status); - ret = -EINVAL; - } error_alloc_vsi_res: return ret; } /** - * i40e_reset_vf - * @vf: pointer to the vf structure - * @flr: VFLR was issued or not - * - * reset the vf - **/ -int i40e_reset_vf(struct i40e_vf *vf, bool flr) -{ - int ret = -ENOENT; - struct i40e_pf *pf = vf->pf; - struct i40e_hw *hw = &pf->hw; - u32 reg, reg_idx, msix_vf; - bool rsd = false; - u16 pf_queue_id; - int i, j; - - /* warn the VF */ - wr32(hw, I40E_VFGEN_RSTAT1(vf->vf_id), I40E_VFR_INPROGRESS); - - clear_bit(I40E_VF_STAT_ACTIVE, &vf->vf_states); - - /* PF triggers VFR only when VF requests, in case of - * VFLR, HW triggers VFR - */ - if (!flr) { - /* reset vf using VPGEN_VFRTRIG reg */ - reg = I40E_VPGEN_VFRTRIG_VFSWR_MASK; - wr32(hw, I40E_VPGEN_VFRTRIG(vf->vf_id), reg); - i40e_flush(hw); - } - - /* poll VPGEN_VFRSTAT reg to make sure - * that reset is complete - */ - for (i = 0; i < 4; i++) { - /* vf reset requires driver to first reset the - * vf & than poll the status register to make sure - * that the requested op was completed - * successfully - */ - udelay(10); - reg = rd32(hw, I40E_VPGEN_VFRSTAT(vf->vf_id)); - if (reg & I40E_VPGEN_VFRSTAT_VFRD_MASK) { - rsd = true; - break; - } - } - - if (!rsd) - dev_err(&pf->pdev->dev, "VF reset check timeout %d\n", - vf->vf_id); - - /* fast disable qps */ - for (j = 0; j < pf->vsi[vf->lan_vsi_index]->num_queue_pairs; j++) { - ret = i40e_ctrl_vsi_tx_queue(vf, vf->lan_vsi_index, j, - I40E_QUEUE_CTRL_FASTDISABLE); - ret = i40e_ctrl_vsi_rx_queue(vf, vf->lan_vsi_index, j, - I40E_QUEUE_CTRL_FASTDISABLE); - } - - /* Queue enable/disable requires driver to - * first reset the vf & than poll the status register - * to make sure that the requested op was completed - * successfully - */ - udelay(10); - for (j = 0; j < pf->vsi[vf->lan_vsi_index]->num_queue_pairs; j++) { - ret = i40e_ctrl_vsi_tx_queue(vf, vf->lan_vsi_index, j, - I40E_QUEUE_CTRL_FASTDISABLECHECK); - if (ret) - dev_info(&pf->pdev->dev, - "Queue control check failed on Tx queue %d of VSI %d VF %d\n", - vf->lan_vsi_index, j, vf->vf_id); - ret = i40e_ctrl_vsi_rx_queue(vf, vf->lan_vsi_index, j, - I40E_QUEUE_CTRL_FASTDISABLECHECK); - if (ret) - dev_info(&pf->pdev->dev, - "Queue control check failed on Rx queue %d of VSI %d VF %d\n", - vf->lan_vsi_index, j, vf->vf_id); - } - - /* clear the irq settings */ - msix_vf = pf->hw.func_caps.num_msix_vectors_vf; - for (i = 0; i < msix_vf; i++) { - /* format is same for both registers */ - if (0 == i) - reg_idx = I40E_VPINT_LNKLST0(vf->vf_id); - else - reg_idx = I40E_VPINT_LNKLSTN(((msix_vf - 1) * - (vf->vf_id)) - + (i - 1)); - reg = (I40E_VPINT_LNKLSTN_FIRSTQ_TYPE_MASK | - I40E_VPINT_LNKLSTN_FIRSTQ_INDX_MASK); - wr32(hw, reg_idx, reg); - i40e_flush(hw); - } - /* disable interrupts so the VF starts in a known state */ - for (i = 0; i < msix_vf; i++) { - /* format is same for both registers */ - if (0 == i) - reg_idx = I40E_VFINT_DYN_CTL0(vf->vf_id); - else - reg_idx = I40E_VFINT_DYN_CTLN(((msix_vf - 1) * - (vf->vf_id)) - + (i - 1)); - wr32(hw, reg_idx, I40E_VFINT_DYN_CTLN_CLEARPBA_MASK); - i40e_flush(hw); - } - - /* set the defaults for the rqctl & tqctl registers */ - reg = (I40E_QINT_RQCTL_NEXTQ_INDX_MASK | I40E_QINT_RQCTL_ITR_INDX_MASK | - I40E_QINT_RQCTL_NEXTQ_TYPE_MASK); - for (j = 0; j < pf->vsi[vf->lan_vsi_index]->num_queue_pairs; j++) { - pf_queue_id = i40e_vc_get_pf_queue_id(vf, vf->lan_vsi_index, j); - wr32(hw, I40E_QINT_RQCTL(pf_queue_id), reg); - wr32(hw, I40E_QINT_TQCTL(pf_queue_id), reg); - } - - /* clear the reset bit in the VPGEN_VFRTRIG reg */ - reg = rd32(hw, I40E_VPGEN_VFRTRIG(vf->vf_id)); - reg &= ~I40E_VPGEN_VFRTRIG_VFSWR_MASK; - wr32(hw, I40E_VPGEN_VFRTRIG(vf->vf_id), reg); - /* tell the VF the reset is done */ - wr32(hw, I40E_VFGEN_RSTAT1(vf->vf_id), I40E_VFR_COMPLETED); - i40e_flush(hw); - - return ret; -} - -/** * i40e_enable_vf_mappings * @vf: pointer to the vf info * @@ -756,6 +499,9 @@ static void i40e_free_vf_res(struct i40e_vf *vf) { struct i40e_pf *pf = vf->pf; + struct i40e_hw *hw = &pf->hw; + u32 reg_idx, reg; + int i, msix_vf; /* free vsi & disconnect it from the parent uplink */ if (vf->lan_vsi_index) { @@ -763,6 +509,35 @@ vf->lan_vsi_index = 0; vf->lan_vsi_id = 0; } + msix_vf = pf->hw.func_caps.num_msix_vectors_vf; + + /* disable interrupts so the VF starts in a known state */ + for (i = 0; i < msix_vf; i++) { + /* format is same for both registers */ + if (0 == i) + reg_idx = I40E_VFINT_DYN_CTL0(vf->vf_id); + else + reg_idx = I40E_VFINT_DYN_CTLN(((msix_vf - 1) * + (vf->vf_id)) + + (i - 1)); + wr32(hw, reg_idx, I40E_VFINT_DYN_CTLN_CLEARPBA_MASK); + i40e_flush(hw); + } + + /* clear the irq settings */ + for (i = 0; i < msix_vf; i++) { + /* format is same for both registers */ + if (0 == i) + reg_idx = I40E_VPINT_LNKLST0(vf->vf_id); + else + reg_idx = I40E_VPINT_LNKLSTN(((msix_vf - 1) * + (vf->vf_id)) + + (i - 1)); + reg = (I40E_VPINT_LNKLSTN_FIRSTQ_TYPE_MASK | + I40E_VPINT_LNKLSTN_FIRSTQ_INDX_MASK); + wr32(hw, reg_idx, reg); + i40e_flush(hw); + } /* reset some of the state varibles keeping * track of the resources */ @@ -804,6 +579,111 @@ return ret; } +#define VF_DEVICE_STATUS 0xAA +#define VF_TRANS_PENDING_MASK 0x20 +/** + * i40e_quiesce_vf_pci + * @vf: pointer to the vf structure + * + * Wait for VF PCI transactions to be cleared after reset. Returns -EIO + * if the transactions never clear. + **/ +static int i40e_quiesce_vf_pci(struct i40e_vf *vf) +{ + struct i40e_pf *pf = vf->pf; + struct i40e_hw *hw = &pf->hw; + int vf_abs_id, i; + u32 reg; + + vf_abs_id = vf->vf_id + hw->func_caps.vf_base_id; + + wr32(hw, I40E_PF_PCI_CIAA, + VF_DEVICE_STATUS | (vf_abs_id << I40E_PF_PCI_CIAA_VF_NUM_SHIFT)); + for (i = 0; i < 100; i++) { + reg = rd32(hw, I40E_PF_PCI_CIAD); + if ((reg & VF_TRANS_PENDING_MASK) == 0) + return 0; + udelay(1); + } + return -EIO; +} + +/** + * i40e_reset_vf + * @vf: pointer to the vf structure + * @flr: VFLR was issued or not + * + * reset the vf + **/ +void i40e_reset_vf(struct i40e_vf *vf, bool flr) +{ + struct i40e_pf *pf = vf->pf; + struct i40e_hw *hw = &pf->hw; + bool rsd = false; + int i; + u32 reg; + + /* warn the VF */ + clear_bit(I40E_VF_STAT_ACTIVE, &vf->vf_states); + + /* In the case of a VFLR, the HW has already reset the VF and we + * just need to clean up, so don't hit the VFRTRIG register. + */ + if (!flr) { + /* reset vf using VPGEN_VFRTRIG reg */ + reg = rd32(hw, I40E_VPGEN_VFRTRIG(vf->vf_id)); + reg |= I40E_VPGEN_VFRTRIG_VFSWR_MASK; + wr32(hw, I40E_VPGEN_VFRTRIG(vf->vf_id), reg); + i40e_flush(hw); + } + + if (i40e_quiesce_vf_pci(vf)) + dev_err(&pf->pdev->dev, "VF %d PCI transactions stuck\n", + vf->vf_id); + + /* poll VPGEN_VFRSTAT reg to make sure + * that reset is complete + */ + for (i = 0; i < 100; i++) { + /* vf reset requires driver to first reset the + * vf & than poll the status register to make sure + * that the requested op was completed + * successfully + */ + udelay(10); + reg = rd32(hw, I40E_VPGEN_VFRSTAT(vf->vf_id)); + if (reg & I40E_VPGEN_VFRSTAT_VFRD_MASK) { + rsd = true; + break; + } + } + + if (!rsd) + dev_err(&pf->pdev->dev, "VF reset check timeout on VF %d\n", + vf->vf_id); + wr32(hw, I40E_VFGEN_RSTAT1(vf->vf_id), I40E_VFR_COMPLETED); + /* clear the reset bit in the VPGEN_VFRTRIG reg */ + reg = rd32(hw, I40E_VPGEN_VFRTRIG(vf->vf_id)); + reg &= ~I40E_VPGEN_VFRTRIG_VFSWR_MASK; + wr32(hw, I40E_VPGEN_VFRTRIG(vf->vf_id), reg); + + /* On initial reset, we won't have any queues */ + if (vf->lan_vsi_index == 0) + goto complete_reset; + + i40e_vsi_control_rings(pf->vsi[vf->lan_vsi_index], false); +complete_reset: + /* reallocate vf resources to reset the VSI state */ + i40e_free_vf_res(vf); + i40e_alloc_vf_res(vf); + i40e_enable_vf_mappings(vf); + set_bit(I40E_VF_STAT_ACTIVE, &vf->vf_states); + + /* tell the VF the reset is done */ + wr32(hw, I40E_VFGEN_RSTAT1(vf->vf_id), I40E_VFR_VFACTIVE); + i40e_flush(hw); +} + /** * i40e_vfs_are_assigned * @pf: pointer to the pf structure @@ -816,7 +696,7 @@ struct pci_dev *vfdev; /* loop through all the VFs to see if we own any that are assigned */ - vfdev = pci_get_device(PCI_VENDOR_ID_INTEL, I40E_VF_DEVICE_ID , NULL); + vfdev = pci_get_device(PCI_VENDOR_ID_INTEL, I40E_DEV_ID_VF , NULL); while (vfdev) { /* if we don't own it we don't care */ if (vfdev->is_virtfn && pci_physfn(vfdev) == pdev) { @@ -826,12 +706,82 @@ } vfdev = pci_get_device(PCI_VENDOR_ID_INTEL, - I40E_VF_DEVICE_ID, + I40E_DEV_ID_VF, vfdev); } return false; } +#ifdef CONFIG_PCI_IOV + +/** + * i40e_enable_pf_switch_lb + * @pf: pointer to the pf structure + * + * enable switch loop back or die - no point in a return value + **/ +static void i40e_enable_pf_switch_lb(struct i40e_pf *pf) +{ + struct i40e_vsi *vsi = pf->vsi[pf->lan_vsi]; + struct i40e_vsi_context ctxt; + int aq_ret; + + ctxt.seid = pf->main_vsi_seid; + ctxt.pf_num = pf->hw.pf_id; + ctxt.vf_num = 0; + aq_ret = i40e_aq_get_vsi_params(&pf->hw, &ctxt, NULL); + if (aq_ret) { + dev_info(&pf->pdev->dev, + "%s couldn't get pf vsi config, err %d, aq_err %d\n", + __func__, aq_ret, pf->hw.aq.asq_last_status); + return; + } + ctxt.flags = I40E_AQ_VSI_TYPE_PF; + ctxt.info.valid_sections = cpu_to_le16(I40E_AQ_VSI_PROP_SWITCH_VALID); + ctxt.info.switch_id |= cpu_to_le16(I40E_AQ_VSI_SW_ID_FLAG_ALLOW_LB); + + aq_ret = i40e_aq_update_vsi_params(&vsi->back->hw, &ctxt, NULL); + if (aq_ret) { + dev_info(&pf->pdev->dev, + "%s: update vsi switch failed, aq_err=%d\n", + __func__, vsi->back->hw.aq.asq_last_status); + } +} +#endif + +/** + * i40e_disable_pf_switch_lb + * @pf: pointer to the pf structure + * + * disable switch loop back or die - no point in a return value + **/ +static void i40e_disable_pf_switch_lb(struct i40e_pf *pf) +{ + struct i40e_vsi *vsi = pf->vsi[pf->lan_vsi]; + struct i40e_vsi_context ctxt; + int aq_ret; + + ctxt.seid = pf->main_vsi_seid; + ctxt.pf_num = pf->hw.pf_id; + ctxt.vf_num = 0; + aq_ret = i40e_aq_get_vsi_params(&pf->hw, &ctxt, NULL); + if (aq_ret) { + dev_info(&pf->pdev->dev, + "%s couldn't get pf vsi config, err %d, aq_err %d\n", + __func__, aq_ret, pf->hw.aq.asq_last_status); + return; + } + ctxt.flags = I40E_AQ_VSI_TYPE_PF; + ctxt.info.valid_sections = cpu_to_le16(I40E_AQ_VSI_PROP_SWITCH_VALID); + ctxt.info.switch_id &= ~cpu_to_le16(I40E_AQ_VSI_SW_ID_FLAG_ALLOW_LB); + + aq_ret = i40e_aq_update_vsi_params(&vsi->back->hw, &ctxt, NULL); + if (aq_ret) { + dev_info(&pf->pdev->dev, + "%s: update vsi switch failed, aq_err=%d\n", + __func__, vsi->back->hw.aq.asq_last_status); + } +} /** * i40e_free_vfs @@ -842,17 +792,20 @@ void i40e_free_vfs(struct i40e_pf *pf) { struct i40e_hw *hw = &pf->hw; - int i; + u32 reg_idx, bit_idx; + int i, tmp, vf_id; if (!pf->vf) return; /* Disable interrupt 0 so we don't try to handle the VFLR. */ - wr32(hw, I40E_PFINT_DYN_CTL0, 0); - i40e_flush(hw); + i40e_irq_dynamic_disable_icr0(pf); + mdelay(10); /* let any messages in transit get finished up */ /* free up vf resources */ - for (i = 0; i < pf->num_alloc_vfs; i++) { + tmp = pf->num_alloc_vfs; + pf->num_alloc_vfs = 0; + for (i = 0; i < tmp; i++) { if (test_bit(I40E_VF_STAT_INIT, &pf->vf[i].vf_states)) i40e_free_vf_res(&pf->vf[i]); /* disable qp mappings */ @@ -861,20 +814,25 @@ kfree(pf->vf); pf->vf = NULL; - pf->num_alloc_vfs = 0; - if (!i40e_vfs_are_assigned(pf)) + if (!i40e_vfs_are_assigned(pf)) { pci_disable_sriov(pf->pdev); - else + /* Acknowledge VFLR for all VFS. Without this, VFs will fail to + * work correctly when SR-IOV gets re-enabled. + */ + for (vf_id = 0; vf_id < tmp; vf_id++) { + reg_idx = (hw->func_caps.vf_base_id + vf_id) / 32; + bit_idx = (hw->func_caps.vf_base_id + vf_id) % 32; + wr32(hw, I40E_GLGEN_VFLRSTAT(reg_idx), (1 << bit_idx)); + } + i40e_disable_pf_switch_lb(pf); + } else { dev_warn(&pf->pdev->dev, "unable to disable SR-IOV because VFs are assigned.\n"); + } /* Re-enable interrupt 0. */ - wr32(hw, I40E_PFINT_DYN_CTL0, - I40E_PFINT_DYN_CTL0_INTENA_MASK | - I40E_PFINT_DYN_CTL0_CLEARPBA_MASK | - (I40E_ITR_NONE << I40E_PFINT_DYN_CTL0_ITR_INDX_SHIFT)); - i40e_flush(hw); + i40e_irq_dynamic_enable_icr0(pf); } #ifdef CONFIG_PCI_IOV @@ -885,21 +843,26 @@ * * allocate vf resources **/ -static int i40e_alloc_vfs(struct i40e_pf *pf, u16 num_alloc_vfs) +int i40e_alloc_vfs(struct i40e_pf *pf, u16 num_alloc_vfs) { struct i40e_vf *vfs; int i, ret = 0; - ret = pci_enable_sriov(pf->pdev, num_alloc_vfs); - if (ret) { - dev_err(&pf->pdev->dev, - "pci_enable_sriov failed with error %d!\n", ret); - pf->num_alloc_vfs = 0; - goto err_iov; - } + /* Disable interrupt 0 so we don't try to handle the VFLR. */ + i40e_irq_dynamic_disable_icr0(pf); + /* Check to see if we're just allocating resources for extant VFs */ + if (pci_num_vf(pf->pdev) != num_alloc_vfs) { + ret = pci_enable_sriov(pf->pdev, num_alloc_vfs); + if (ret) { + dev_err(&pf->pdev->dev, + "Failed to enable SR-IOV, error %d.\n", ret); + pf->num_alloc_vfs = 0; + goto err_iov; + } + } /* allocate memory */ - vfs = kzalloc(num_alloc_vfs * sizeof(struct i40e_vf), GFP_KERNEL); + vfs = kcalloc(num_alloc_vfs, sizeof(struct i40e_vf), GFP_KERNEL); if (!vfs) { ret = -ENOMEM; goto err_alloc; @@ -913,11 +876,8 @@ /* assign default capabilities */ set_bit(I40E_VIRTCHNL_VF_CAP_L2, &vfs[i].vf_caps); - - ret = i40e_alloc_vf_res(&vfs[i]); - i40e_reset_vf(&vfs[i], true); - if (ret) - break; + /* vf resources get allocated during reset */ + i40e_reset_vf(&vfs[i], false); /* enable vf vplan_qtable mappings */ i40e_enable_vf_mappings(&vfs[i]); @@ -925,10 +885,13 @@ pf->vf = vfs; pf->num_alloc_vfs = num_alloc_vfs; + i40e_enable_pf_switch_lb(pf); err_alloc: if (ret) i40e_free_vfs(pf); err_iov: + /* Re-enable interrupt 0. */ + i40e_irq_dynamic_enable_icr0(pf); return ret; } @@ -1009,6 +972,7 @@ { struct i40e_pf *pf = vf->pf; struct i40e_hw *hw = &pf->hw; + int true_vf_id = vf->vf_id + hw->func_caps.vf_base_id; i40e_status aq_ret; /* single place to detect unsuccessful return values */ @@ -1028,8 +992,8 @@ vf->num_valid_msgs++; } - aq_ret = i40e_aq_send_msg_to_vf(hw, vf->vf_id, v_opcode, v_retval, - msg, msglen, NULL); + aq_ret = i40e_aq_send_msg_to_vf(hw, true_vf_id, v_opcode, v_retval, + msg, msglen, NULL); if (aq_ret) { dev_err(&pf->pdev->dev, "Unable to send the message to VF %d aq_err %d\n", @@ -1144,12 +1108,10 @@ * unlike other virtchnl messages, pf driver * doesn't send the response back to the vf **/ -static int i40e_vc_reset_vf_msg(struct i40e_vf *vf) +static void i40e_vc_reset_vf_msg(struct i40e_vf *vf) { - if (!test_bit(I40E_VF_STAT_ACTIVE, &vf->vf_states)) - return -ENOENT; - - return i40e_reset_vf(vf, false); + if (test_bit(I40E_VF_STAT_ACTIVE, &vf->vf_states)) + i40e_reset_vf(vf, false); } /** @@ -1291,27 +1253,21 @@ /* lookout for the invalid queue index */ tempmap = map->rxq_map; - vsi_queue_id = find_first_bit(&tempmap, I40E_MAX_VSI_QP); - while (vsi_queue_id < I40E_MAX_VSI_QP) { + for_each_set_bit(vsi_queue_id, &tempmap, I40E_MAX_VSI_QP) { if (!i40e_vc_isvalid_queue_id(vf, vsi_id, vsi_queue_id)) { aq_ret = I40E_ERR_PARAM; goto error_param; } - vsi_queue_id = find_next_bit(&tempmap, I40E_MAX_VSI_QP, - vsi_queue_id + 1); } tempmap = map->txq_map; - vsi_queue_id = find_first_bit(&tempmap, I40E_MAX_VSI_QP); - while (vsi_queue_id < I40E_MAX_VSI_QP) { + for_each_set_bit(vsi_queue_id, &tempmap, I40E_MAX_VSI_QP) { if (!i40e_vc_isvalid_queue_id(vf, vsi_id, vsi_queue_id)) { aq_ret = I40E_ERR_PARAM; goto error_param; } - vsi_queue_id = find_next_bit(&tempmap, I40E_MAX_VSI_QP, - vsi_queue_id + 1); } i40e_config_irq_link_list(vf, vsi_id, map); @@ -1337,8 +1293,6 @@ struct i40e_pf *pf = vf->pf; u16 vsi_id = vqs->vsi_id; i40e_status aq_ret = 0; - unsigned long tempmap; - u16 queue_id; if (!test_bit(I40E_VF_STAT_ACTIVE, &vf->vf_states)) { aq_ret = I40E_ERR_PARAM; @@ -1354,66 +1308,8 @@ aq_ret = I40E_ERR_PARAM; goto error_param; } - - tempmap = vqs->rx_queues; - queue_id = find_first_bit(&tempmap, I40E_MAX_VSI_QP); - while (queue_id < I40E_MAX_VSI_QP) { - if (!i40e_vc_isvalid_queue_id(vf, vsi_id, queue_id)) { - aq_ret = I40E_ERR_PARAM; - goto error_param; - } - i40e_ctrl_vsi_rx_queue(vf, vsi_id, queue_id, - I40E_QUEUE_CTRL_ENABLE); - - queue_id = find_next_bit(&tempmap, I40E_MAX_VSI_QP, - queue_id + 1); - } - - tempmap = vqs->tx_queues; - queue_id = find_first_bit(&tempmap, I40E_MAX_VSI_QP); - while (queue_id < I40E_MAX_VSI_QP) { - if (!i40e_vc_isvalid_queue_id(vf, vsi_id, queue_id)) { - aq_ret = I40E_ERR_PARAM; - goto error_param; - } - i40e_ctrl_vsi_tx_queue(vf, vsi_id, queue_id, - I40E_QUEUE_CTRL_ENABLE); - - queue_id = find_next_bit(&tempmap, I40E_MAX_VSI_QP, - queue_id + 1); - } - - /* Poll the status register to make sure that the - * requested op was completed successfully - */ - udelay(10); - - tempmap = vqs->rx_queues; - queue_id = find_first_bit(&tempmap, I40E_MAX_VSI_QP); - while (queue_id < I40E_MAX_VSI_QP) { - if (i40e_ctrl_vsi_rx_queue(vf, vsi_id, queue_id, - I40E_QUEUE_CTRL_ENABLECHECK)) { - dev_err(&pf->pdev->dev, - "Queue control check failed on RX queue %d of VSI %d VF %d\n", - queue_id, vsi_id, vf->vf_id); - } - queue_id = find_next_bit(&tempmap, I40E_MAX_VSI_QP, - queue_id + 1); - } - - tempmap = vqs->tx_queues; - queue_id = find_first_bit(&tempmap, I40E_MAX_VSI_QP); - while (queue_id < I40E_MAX_VSI_QP) { - if (i40e_ctrl_vsi_tx_queue(vf, vsi_id, queue_id, - I40E_QUEUE_CTRL_ENABLECHECK)) { - dev_err(&pf->pdev->dev, - "Queue control check failed on TX queue %d of VSI %d VF %d\n", - queue_id, vsi_id, vf->vf_id); - } - queue_id = find_next_bit(&tempmap, I40E_MAX_VSI_QP, - queue_id + 1); - } - + if (i40e_vsi_control_rings(pf->vsi[vsi_id], true)) + aq_ret = I40E_ERR_TIMEOUT; error_param: /* send the response to the vf */ return i40e_vc_send_resp_to_vf(vf, I40E_VIRTCHNL_OP_ENABLE_QUEUES, @@ -1436,8 +1332,6 @@ struct i40e_pf *pf = vf->pf; u16 vsi_id = vqs->vsi_id; i40e_status aq_ret = 0; - unsigned long tempmap; - u16 queue_id; if (!test_bit(I40E_VF_STAT_ACTIVE, &vf->vf_states)) { aq_ret = I40E_ERR_PARAM; @@ -1453,65 +1347,8 @@ aq_ret = I40E_ERR_PARAM; goto error_param; } - - tempmap = vqs->rx_queues; - queue_id = find_first_bit(&tempmap, I40E_MAX_VSI_QP); - while (queue_id < I40E_MAX_VSI_QP) { - if (!i40e_vc_isvalid_queue_id(vf, vsi_id, queue_id)) { - aq_ret = I40E_ERR_PARAM; - goto error_param; - } - i40e_ctrl_vsi_rx_queue(vf, vsi_id, queue_id, - I40E_QUEUE_CTRL_DISABLE); - - queue_id = find_next_bit(&tempmap, I40E_MAX_VSI_QP, - queue_id + 1); - } - - tempmap = vqs->tx_queues; - queue_id = find_first_bit(&tempmap, I40E_MAX_VSI_QP); - while (queue_id < I40E_MAX_VSI_QP) { - if (!i40e_vc_isvalid_queue_id(vf, vsi_id, queue_id)) { - aq_ret = I40E_ERR_PARAM; - goto error_param; - } - i40e_ctrl_vsi_tx_queue(vf, vsi_id, queue_id, - I40E_QUEUE_CTRL_DISABLE); - - queue_id = find_next_bit(&tempmap, I40E_MAX_VSI_QP, - queue_id + 1); - } - - /* Poll the status register to make sure that the - * requested op was completed successfully - */ - udelay(10); - - tempmap = vqs->rx_queues; - queue_id = find_first_bit(&tempmap, I40E_MAX_VSI_QP); - while (queue_id < I40E_MAX_VSI_QP) { - if (i40e_ctrl_vsi_rx_queue(vf, vsi_id, queue_id, - I40E_QUEUE_CTRL_DISABLECHECK)) { - dev_err(&pf->pdev->dev, - "Queue control check failed on RX queue %d of VSI %d VF %d\n", - queue_id, vsi_id, vf->vf_id); - } - queue_id = find_next_bit(&tempmap, I40E_MAX_VSI_QP, - queue_id + 1); - } - - tempmap = vqs->tx_queues; - queue_id = find_first_bit(&tempmap, I40E_MAX_VSI_QP); - while (queue_id < I40E_MAX_VSI_QP) { - if (i40e_ctrl_vsi_tx_queue(vf, vsi_id, queue_id, - I40E_QUEUE_CTRL_DISABLECHECK)) { - dev_err(&pf->pdev->dev, - "Queue control check failed on TX queue %d of VSI %d VF %d\n", - queue_id, vsi_id, vf->vf_id); - } - queue_id = find_next_bit(&tempmap, I40E_MAX_VSI_QP, - queue_id + 1); - } + if (i40e_vsi_control_rings(pf->vsi[vsi_id], false)) + aq_ret = I40E_ERR_TIMEOUT; error_param: /* send the response to the vf */ @@ -1554,7 +1391,7 @@ goto error_param; } i40e_update_eth_stats(vsi); - memcpy(&stats, &vsi->eth_stats, sizeof(struct i40e_eth_stats)); + stats = vsi->eth_stats; error_param: /* send the response back to the vf */ @@ -1563,6 +1400,40 @@ } /** + * i40e_check_vf_permission + * @vf: pointer to the vf info + * @macaddr: pointer to the MAC Address being checked + * + * Check if the VF has permission to add or delete unicast MAC address + * filters and return error code -EPERM if not. Then check if the + * address filter requested is broadcast or zero and if so return + * an invalid MAC address error code. + **/ +static inline int i40e_check_vf_permission(struct i40e_vf *vf, u8 *macaddr) +{ + struct i40e_pf *pf = vf->pf; + int ret = 0; + + if (is_broadcast_ether_addr(macaddr) || + is_zero_ether_addr(macaddr)) { + dev_err(&pf->pdev->dev, "invalid VF MAC addr %pM\n", macaddr); + ret = I40E_ERR_INVALID_MAC_ADDR; + } else if (vf->pf_set_mac && !is_multicast_ether_addr(macaddr) && + !ether_addr_equal(macaddr, vf->default_lan_addr.addr)) { + /* If the host VMM administrator has set the VF MAC address + * administratively via the ndo_set_vf_mac command then deny + * permission to the VF to add or delete unicast MAC addresses. + * The VF may request to set the MAC address filter already + * assigned to it so do not return an error in that case. + */ + dev_err(&pf->pdev->dev, + "VF attempting to override administratively set MAC address\nPlease reload the VF driver to resume normal operation\n"); + ret = -EPERM; + } + return ret; +} + +/** * i40e_vc_add_mac_addr_msg * @vf: pointer to the vf info * @msg: pointer to the msg buffer @@ -1577,24 +1448,20 @@ struct i40e_pf *pf = vf->pf; struct i40e_vsi *vsi = NULL; u16 vsi_id = al->vsi_id; - i40e_status aq_ret = 0; + i40e_status ret = 0; int i; if (!test_bit(I40E_VF_STAT_ACTIVE, &vf->vf_states) || !test_bit(I40E_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps) || !i40e_vc_isvalid_vsi_id(vf, vsi_id)) { - aq_ret = I40E_ERR_PARAM; + ret = I40E_ERR_PARAM; goto error_param; } for (i = 0; i < al->num_elements; i++) { - if (is_broadcast_ether_addr(al->list[i].addr) || - is_zero_ether_addr(al->list[i].addr)) { - dev_err(&pf->pdev->dev, "invalid VF MAC addr %pMAC\n", - al->list[i].addr); - aq_ret = I40E_ERR_PARAM; + ret = i40e_check_vf_permission(vf, al->list[i].addr); + if (ret) goto error_param; - } } vsi = pf->vsi[vsi_id]; @@ -1603,7 +1470,7 @@ struct i40e_mac_filter *f; f = i40e_find_mac(vsi, al->list[i].addr, true, false); - if (f) { + if (!f) { if (i40e_is_vsi_in_vlan(vsi)) f = i40e_put_mac_in_vlan(vsi, al->list[i].addr, true, false); @@ -1615,7 +1482,7 @@ if (!f) { dev_err(&pf->pdev->dev, "Unable to add VF MAC filter\n"); - aq_ret = I40E_ERR_PARAM; + ret = I40E_ERR_PARAM; goto error_param; } } @@ -1627,7 +1494,7 @@ error_param: /* send the response to the vf */ return i40e_vc_send_resp_to_vf(vf, I40E_VIRTCHNL_OP_ADD_ETHER_ADDRESS, - aq_ret); + ret); } /** @@ -1645,15 +1512,25 @@ struct i40e_pf *pf = vf->pf; struct i40e_vsi *vsi = NULL; u16 vsi_id = al->vsi_id; - i40e_status aq_ret = 0; + i40e_status ret = 0; int i; if (!test_bit(I40E_VF_STAT_ACTIVE, &vf->vf_states) || !test_bit(I40E_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps) || !i40e_vc_isvalid_vsi_id(vf, vsi_id)) { - aq_ret = I40E_ERR_PARAM; + ret = I40E_ERR_PARAM; goto error_param; } + + for (i = 0; i < al->num_elements; i++) { + if (is_broadcast_ether_addr(al->list[i].addr) || + is_zero_ether_addr(al->list[i].addr)) { + dev_err(&pf->pdev->dev, "invalid VF MAC addr %pM\n", + al->list[i].addr); + ret = I40E_ERR_INVALID_MAC_ADDR; + goto error_param; + } + } vsi = pf->vsi[vsi_id]; /* delete addresses from the list */ @@ -1668,7 +1545,7 @@ error_param: /* send the response to the vf */ return i40e_vc_send_resp_to_vf(vf, I40E_VIRTCHNL_OP_DEL_ETHER_ADDRESS, - aq_ret); + ret); } /** @@ -1777,30 +1654,6 @@ } /** - * i40e_vc_fcoe_msg - * @vf: pointer to the vf info - * @msg: pointer to the msg buffer - * @msglen: msg length - * - * called from the vf for the fcoe msgs - **/ -static int i40e_vc_fcoe_msg(struct i40e_vf *vf, u8 *msg, u16 msglen) -{ - i40e_status aq_ret = 0; - - if (!test_bit(I40E_VF_STAT_ACTIVE, &vf->vf_states) || - !test_bit(I40E_VF_STAT_FCOEENA, &vf->vf_states)) { - aq_ret = I40E_ERR_PARAM; - goto error_param; - } - aq_ret = I40E_ERR_NOT_IMPLEMENTED; - -error_param: - /* send the response to the vf */ - return i40e_vc_send_resp_to_vf(vf, I40E_VIRTCHNL_OP_FCOE, aq_ret); -} - -/** * i40e_vc_validate_vf_msg * @vf: pointer to the vf info * @msg: pointer to the msg buffer @@ -1920,19 +1773,24 @@ int i40e_vc_process_vf_msg(struct i40e_pf *pf, u16 vf_id, u32 v_opcode, u32 v_retval, u8 *msg, u16 msglen) { - struct i40e_vf *vf = &(pf->vf[vf_id]); struct i40e_hw *hw = &pf->hw; + unsigned int local_vf_id = vf_id - hw->func_caps.vf_base_id; + struct i40e_vf *vf; int ret; pf->vf_aq_requests++; + if (local_vf_id >= pf->num_alloc_vfs) + return -EINVAL; + vf = &(pf->vf[local_vf_id]); /* perform basic checks on the msg */ ret = i40e_vc_validate_vf_msg(vf, v_opcode, v_retval, msg, msglen); if (ret) { - dev_err(&pf->pdev->dev, "invalid message from vf %d\n", vf_id); + dev_err(&pf->pdev->dev, "Invalid message from vf %d, opcode %d, len %d\n", + local_vf_id, v_opcode, msglen); return ret; } - wr32(hw, I40E_VFGEN_RSTAT1(vf_id), I40E_VFR_VFACTIVE); + switch (v_opcode) { case I40E_VIRTCHNL_OP_VERSION: ret = i40e_vc_get_version_msg(vf); @@ -1941,7 +1799,8 @@ ret = i40e_vc_get_vf_resources_msg(vf); break; case I40E_VIRTCHNL_OP_RESET_VF: - ret = i40e_vc_reset_vf_msg(vf); + i40e_vc_reset_vf_msg(vf); + ret = 0; break; case I40E_VIRTCHNL_OP_CONFIG_PROMISCUOUS_MODE: ret = i40e_vc_config_promiscuous_mode_msg(vf, msg, msglen); @@ -1973,13 +1832,10 @@ case I40E_VIRTCHNL_OP_GET_STATS: ret = i40e_vc_get_stats_msg(vf, msg, msglen); break; - case I40E_VIRTCHNL_OP_FCOE: - ret = i40e_vc_fcoe_msg(vf, msg, msglen); - break; case I40E_VIRTCHNL_OP_UNKNOWN: default: - dev_err(&pf->pdev->dev, - "Unsupported opcode %d from vf %d\n", v_opcode, vf_id); + dev_err(&pf->pdev->dev, "Unsupported opcode %d from vf %d\n", + v_opcode, local_vf_id); ret = i40e_vc_send_resp_to_vf(vf, v_opcode, I40E_ERR_NOT_IMPLEMENTED); break; @@ -2015,19 +1871,8 @@ /* clear the bit in GLGEN_VFLRSTAT */ wr32(hw, I40E_GLGEN_VFLRSTAT(reg_idx), (1 << bit_idx)); - if (i40e_reset_vf(vf, true)) - dev_err(&pf->pdev->dev, - "Unable to reset the VF %d\n", vf_id); - /* free up vf resources to destroy vsi state */ - i40e_free_vf_res(vf); - - /* allocate new vf resources with the default state */ - if (i40e_alloc_vf_res(vf)) - dev_err(&pf->pdev->dev, - "Unable to allocate VF resources %d\n", - vf_id); - - i40e_enable_vf_mappings(vf); + if (!test_bit(__I40E_DOWN, &pf->state)) + i40e_reset_vf(vf, true); } } @@ -2078,15 +1923,28 @@ void i40e_vc_notify_link_state(struct i40e_pf *pf) { struct i40e_virtchnl_pf_event pfe; + struct i40e_hw *hw = &pf->hw; + struct i40e_vf *vf = pf->vf; + struct i40e_link_status *ls = &pf->hw.phy.link_info; + int i; pfe.event = I40E_VIRTCHNL_EVENT_LINK_CHANGE; pfe.severity = I40E_PF_EVENT_SEVERITY_INFO; - pfe.event_data.link_event.link_status = - pf->hw.phy.link_info.link_info & I40E_AQ_LINK_UP; - pfe.event_data.link_event.link_speed = pf->hw.phy.link_info.link_speed; - - i40e_vc_vf_broadcast(pf, I40E_VIRTCHNL_OP_EVENT, I40E_SUCCESS, - (u8 *)&pfe, sizeof(struct i40e_virtchnl_pf_event)); + for (i = 0; i < pf->num_alloc_vfs; i++) { + if (vf->link_forced) { + pfe.event_data.link_event.link_status = vf->link_up; + pfe.event_data.link_event.link_speed = + (vf->link_up ? I40E_LINK_SPEED_40GB : 0); + } else { + pfe.event_data.link_event.link_status = + ls->link_info & I40E_AQ_LINK_UP; + pfe.event_data.link_event.link_speed = ls->link_speed; + } + i40e_aq_send_msg_to_vf(hw, vf->vf_id, I40E_VIRTCHNL_OP_EVENT, + 0, (u8 *)&pfe, sizeof(pfe), + NULL); + vf++; + } } /** @@ -2183,6 +2041,7 @@ goto error_param; } memcpy(vf->default_lan_addr.addr, mac, ETH_ALEN); + vf->pf_set_mac = true; dev_info(&pf->pdev->dev, "Reload the VF driver to make this change effective.\n"); ret = 0; @@ -2229,6 +2088,20 @@ goto error_pvid; } + if (vsi->info.pvid == 0 && i40e_is_vsi_in_vlan(vsi)) + dev_err(&pf->pdev->dev, + "VF %d has already configured VLAN filters and the administrator is requesting a port VLAN override.\nPlease unload and reload the VF driver for this change to take effect.\n", + vf_id); + + /* Check for condition where there was already a port VLAN ID + * filter set and now it is being deleted by setting it to zero. + * Before deleting all the old VLAN filters we must add new ones + * with -1 (I40E_VLAN_ANY) or otherwise we're left with all our + * MAC addresses deleted. + */ + if (!(vlan_id || qos) && vsi->info.pvid) + ret = i40e_vsi_add_vlan(vsi, I40E_VLAN_ANY); + if (vsi->info.pvid) { /* kill old VLAN */ ret = i40e_vsi_kill_vlan(vsi, (le16_to_cpu(vsi->info.pvid) & @@ -2243,7 +2116,7 @@ ret = i40e_vsi_add_pvid(vsi, vlan_id | (qos << I40E_VLAN_PRIORITY_SHIFT)); else - i40e_vlan_stripping_disable(vsi); + i40e_vsi_remove_pvid(vsi); if (vlan_id) { dev_info(&pf->pdev->dev, "Setting VLAN %d, QOS 0x%x on VF %d\n", @@ -2257,12 +2130,20 @@ vsi->back->hw.aq.asq_last_status); goto error_pvid; } + /* Kill non-vlan MAC filters - ignore error return since + * there might not be any non-vlan MAC filters. + */ + i40e_vsi_kill_vlan(vsi, I40E_VLAN_ANY); } if (ret) { dev_err(&pf->pdev->dev, "Unable to update VF vsi context\n"); goto error_pvid; } + /* The Port VLAN needs to be saved across resets the same as the + * default LAN MAC address. + */ + vf->port_vlan_id = le16_to_cpu(vsi->info.pvid); ret = 0; error_pvid: @@ -2294,7 +2175,6 @@ int vf_id, struct ifla_vf_info *ivi) { struct i40e_netdev_priv *np = netdev_priv(netdev); - struct i40e_mac_filter *f, *ftmp; struct i40e_vsi *vsi = np->vsi; struct i40e_pf *pf = vsi->back; struct i40e_vf *vf; @@ -2318,11 +2198,7 @@ ivi->vf = vf_id; - /* first entry of the list is the default ethernet address */ - list_for_each_entry_safe(f, ftmp, &vsi->mac_filter_list, list) { - memcpy(&ivi->mac, f->macaddr, I40E_ETH_LENGTH_OF_ADDRESS); - break; - } + memcpy(&ivi->mac, vf->default_lan_addr.addr, ETH_ALEN); ivi->tx_rate = 0; ivi->vlan = le16_to_cpu(vsi->info.pvid) & I40E_VLAN_MASK; @@ -2333,3 +2209,64 @@ error_param: return ret; } + +/** + * i40e_ndo_set_vf_link_state + * @netdev: network interface device structure + * @vf_id: vf identifier + * @link: required link state + * + * Set the link state of a specified VF, regardless of physical link state + **/ +int i40e_ndo_set_vf_link_state(struct net_device *netdev, int vf_id, int link) +{ + struct i40e_netdev_priv *np = netdev_priv(netdev); + struct i40e_pf *pf = np->vsi->back; + struct i40e_virtchnl_pf_event pfe; + struct i40e_hw *hw = &pf->hw; + struct i40e_vf *vf; + int ret = 0; + + /* validate the request */ + if (vf_id >= pf->num_alloc_vfs) { + dev_err(&pf->pdev->dev, "Invalid VF Identifier %d\n", vf_id); + ret = -EINVAL; + goto error_out; + } + + vf = &pf->vf[vf_id]; + + pfe.event = I40E_VIRTCHNL_EVENT_LINK_CHANGE; + pfe.severity = I40E_PF_EVENT_SEVERITY_INFO; + + switch (link) { + case IFLA_VF_LINK_STATE_AUTO: + vf->link_forced = false; + pfe.event_data.link_event.link_status = + pf->hw.phy.link_info.link_info & I40E_AQ_LINK_UP; + pfe.event_data.link_event.link_speed = + pf->hw.phy.link_info.link_speed; + break; + case IFLA_VF_LINK_STATE_ENABLE: + vf->link_forced = true; + vf->link_up = true; + pfe.event_data.link_event.link_status = true; + pfe.event_data.link_event.link_speed = I40E_LINK_SPEED_40GB; + break; + case IFLA_VF_LINK_STATE_DISABLE: + vf->link_forced = true; + vf->link_up = false; + pfe.event_data.link_event.link_status = false; + pfe.event_data.link_event.link_speed = 0; + break; + default: + ret = -EINVAL; + goto error_out; + } + /* Notify the VF of its new link state */ + i40e_aq_send_msg_to_vf(hw, vf->vf_id, I40E_VIRTCHNL_OP_EVENT, + 0, (u8 *)&pfe, sizeof(pfe), NULL); + +error_out: + return ret; +} --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h @@ -1,7 +1,7 @@ /******************************************************************************* * * Intel Ethernet Controller XL710 Family Linux Driver - * Copyright(c) 2013 Intel Corporation. + * Copyright(c) 2013 - 2014 Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, @@ -12,9 +12,8 @@ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . * * The full GNU General Public License is included in this distribution in * the file called "COPYING". @@ -82,6 +81,8 @@ struct i40e_virtchnl_ether_addr default_lan_addr; struct i40e_virtchnl_ether_addr default_fcoe_addr; + u16 port_vlan_id; + bool pf_set_mac; /* The VMM admin set the VF MAC address */ /* VSI indices - actual VSI pointers are maintained in the PF structure * When assigned, these will be non-zero, because VSI 0 is always @@ -97,14 +98,17 @@ unsigned long vf_caps; /* vf's adv. capabilities */ unsigned long vf_states; /* vf's runtime states */ + bool link_forced; + bool link_up; /* only valid if vf link is forced */ }; void i40e_free_vfs(struct i40e_pf *pf); int i40e_pci_sriov_configure(struct pci_dev *dev, int num_vfs); +int i40e_alloc_vfs(struct i40e_pf *pf, u16 num_alloc_vfs); int i40e_vc_process_vf_msg(struct i40e_pf *pf, u16 vf_id, u32 v_opcode, u32 v_retval, u8 *msg, u16 msglen); int i40e_vc_process_vflr_event(struct i40e_pf *pf); -int i40e_reset_vf(struct i40e_vf *vf, bool flr); +void i40e_reset_vf(struct i40e_vf *vf, bool flr); void i40e_vc_notify_vf_reset(struct i40e_vf *vf); /* vf configuration related iplink handlers */ @@ -114,6 +118,8 @@ int i40e_ndo_set_vf_bw(struct net_device *netdev, int vf_id, int tx_rate); int i40e_ndo_get_vf_config(struct net_device *netdev, int vf_id, struct ifla_vf_info *ivi); +int i40e_ndo_set_vf_link_state(struct net_device *netdev, int vf_id, int link); + void i40e_vc_notify_link_state(struct i40e_pf *pf); void i40e_vc_notify_reset(struct i40e_pf *pf); --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/Makefile +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/Makefile @@ -0,0 +1,33 @@ +################################################################################ +# +# Intel Ethernet Controller XL710 Family Linux Virtual Function Driver +# Copyright(c) 2013 Intel Corporation. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# +# The full GNU General Public License is included in this distribution in +# the file called "COPYING". +# +# Contact Information: +# e1000-devel Mailing List +# Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 +# +################################################################################ + +# +## Makefile for the Intel(R) 40GbE VF driver +# +# + +obj-$(CONFIG_I40EVF) += i40evf.o + +i40evf-objs := i40evf_main.o i40evf_ethtool.o i40evf_virtchnl.o \ + i40e_txrx.o i40e_common.o i40e_adminq.o + --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40e_adminq.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40e_adminq.c @@ -0,0 +1,927 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#include "i40e_status.h" +#include "i40e_type.h" +#include "i40e_register.h" +#include "i40e_adminq.h" +#include "i40e_prototype.h" + +/** + * i40e_adminq_init_regs - Initialize AdminQ registers + * @hw: pointer to the hardware structure + * + * This assumes the alloc_asq and alloc_arq functions have already been called + **/ +static void i40e_adminq_init_regs(struct i40e_hw *hw) +{ + /* set head and tail registers in our local struct */ + if (hw->mac.type == I40E_MAC_VF) { + hw->aq.asq.tail = I40E_VF_ATQT1; + hw->aq.asq.head = I40E_VF_ATQH1; + hw->aq.asq.len = I40E_VF_ATQLEN1; + hw->aq.arq.tail = I40E_VF_ARQT1; + hw->aq.arq.head = I40E_VF_ARQH1; + hw->aq.arq.len = I40E_VF_ARQLEN1; + } else { + hw->aq.asq.tail = I40E_PF_ATQT; + hw->aq.asq.head = I40E_PF_ATQH; + hw->aq.asq.len = I40E_PF_ATQLEN; + hw->aq.arq.tail = I40E_PF_ARQT; + hw->aq.arq.head = I40E_PF_ARQH; + hw->aq.arq.len = I40E_PF_ARQLEN; + } +} + +/** + * i40e_alloc_adminq_asq_ring - Allocate Admin Queue send rings + * @hw: pointer to the hardware structure + **/ +static i40e_status i40e_alloc_adminq_asq_ring(struct i40e_hw *hw) +{ + i40e_status ret_code; + + ret_code = i40e_allocate_dma_mem(hw, &hw->aq.asq.desc_buf, + i40e_mem_atq_ring, + (hw->aq.num_asq_entries * + sizeof(struct i40e_aq_desc)), + I40E_ADMINQ_DESC_ALIGNMENT); + if (ret_code) + return ret_code; + + ret_code = i40e_allocate_virt_mem(hw, &hw->aq.asq.cmd_buf, + (hw->aq.num_asq_entries * + sizeof(struct i40e_asq_cmd_details))); + if (ret_code) { + i40e_free_dma_mem(hw, &hw->aq.asq.desc_buf); + return ret_code; + } + + return ret_code; +} + +/** + * i40e_alloc_adminq_arq_ring - Allocate Admin Queue receive rings + * @hw: pointer to the hardware structure + **/ +static i40e_status i40e_alloc_adminq_arq_ring(struct i40e_hw *hw) +{ + i40e_status ret_code; + + ret_code = i40e_allocate_dma_mem(hw, &hw->aq.arq.desc_buf, + i40e_mem_arq_ring, + (hw->aq.num_arq_entries * + sizeof(struct i40e_aq_desc)), + I40E_ADMINQ_DESC_ALIGNMENT); + + return ret_code; +} + +/** + * i40e_free_adminq_asq - Free Admin Queue send rings + * @hw: pointer to the hardware structure + * + * This assumes the posted send buffers have already been cleaned + * and de-allocated + **/ +static void i40e_free_adminq_asq(struct i40e_hw *hw) +{ + i40e_free_dma_mem(hw, &hw->aq.asq.desc_buf); +} + +/** + * i40e_free_adminq_arq - Free Admin Queue receive rings + * @hw: pointer to the hardware structure + * + * This assumes the posted receive buffers have already been cleaned + * and de-allocated + **/ +static void i40e_free_adminq_arq(struct i40e_hw *hw) +{ + i40e_free_dma_mem(hw, &hw->aq.arq.desc_buf); +} + +/** + * i40e_alloc_arq_bufs - Allocate pre-posted buffers for the receive queue + * @hw: pointer to the hardware structure + **/ +static i40e_status i40e_alloc_arq_bufs(struct i40e_hw *hw) +{ + i40e_status ret_code; + struct i40e_aq_desc *desc; + struct i40e_dma_mem *bi; + int i; + + /* We'll be allocating the buffer info memory first, then we can + * allocate the mapped buffers for the event processing + */ + + /* buffer_info structures do not need alignment */ + ret_code = i40e_allocate_virt_mem(hw, &hw->aq.arq.dma_head, + (hw->aq.num_arq_entries * sizeof(struct i40e_dma_mem))); + if (ret_code) + goto alloc_arq_bufs; + hw->aq.arq.r.arq_bi = (struct i40e_dma_mem *)hw->aq.arq.dma_head.va; + + /* allocate the mapped buffers */ + for (i = 0; i < hw->aq.num_arq_entries; i++) { + bi = &hw->aq.arq.r.arq_bi[i]; + ret_code = i40e_allocate_dma_mem(hw, bi, + i40e_mem_arq_buf, + hw->aq.arq_buf_size, + I40E_ADMINQ_DESC_ALIGNMENT); + if (ret_code) + goto unwind_alloc_arq_bufs; + + /* now configure the descriptors for use */ + desc = I40E_ADMINQ_DESC(hw->aq.arq, i); + + desc->flags = cpu_to_le16(I40E_AQ_FLAG_BUF); + if (hw->aq.arq_buf_size > I40E_AQ_LARGE_BUF) + desc->flags |= cpu_to_le16(I40E_AQ_FLAG_LB); + desc->opcode = 0; + /* This is in accordance with Admin queue design, there is no + * register for buffer size configuration + */ + desc->datalen = cpu_to_le16((u16)bi->size); + desc->retval = 0; + desc->cookie_high = 0; + desc->cookie_low = 0; + desc->params.external.addr_high = + cpu_to_le32(upper_32_bits(bi->pa)); + desc->params.external.addr_low = + cpu_to_le32(lower_32_bits(bi->pa)); + desc->params.external.param0 = 0; + desc->params.external.param1 = 0; + } + +alloc_arq_bufs: + return ret_code; + +unwind_alloc_arq_bufs: + /* don't try to free the one that failed... */ + i--; + for (; i >= 0; i--) + i40e_free_dma_mem(hw, &hw->aq.arq.r.arq_bi[i]); + i40e_free_virt_mem(hw, &hw->aq.arq.dma_head); + + return ret_code; +} + +/** + * i40e_alloc_asq_bufs - Allocate empty buffer structs for the send queue + * @hw: pointer to the hardware structure + **/ +static i40e_status i40e_alloc_asq_bufs(struct i40e_hw *hw) +{ + i40e_status ret_code; + struct i40e_dma_mem *bi; + int i; + + /* No mapped memory needed yet, just the buffer info structures */ + ret_code = i40e_allocate_virt_mem(hw, &hw->aq.asq.dma_head, + (hw->aq.num_asq_entries * sizeof(struct i40e_dma_mem))); + if (ret_code) + goto alloc_asq_bufs; + hw->aq.asq.r.asq_bi = (struct i40e_dma_mem *)hw->aq.asq.dma_head.va; + + /* allocate the mapped buffers */ + for (i = 0; i < hw->aq.num_asq_entries; i++) { + bi = &hw->aq.asq.r.asq_bi[i]; + ret_code = i40e_allocate_dma_mem(hw, bi, + i40e_mem_asq_buf, + hw->aq.asq_buf_size, + I40E_ADMINQ_DESC_ALIGNMENT); + if (ret_code) + goto unwind_alloc_asq_bufs; + } +alloc_asq_bufs: + return ret_code; + +unwind_alloc_asq_bufs: + /* don't try to free the one that failed... */ + i--; + for (; i >= 0; i--) + i40e_free_dma_mem(hw, &hw->aq.asq.r.asq_bi[i]); + i40e_free_virt_mem(hw, &hw->aq.asq.dma_head); + + return ret_code; +} + +/** + * i40e_free_arq_bufs - Free receive queue buffer info elements + * @hw: pointer to the hardware structure + **/ +static void i40e_free_arq_bufs(struct i40e_hw *hw) +{ + int i; + + /* free descriptors */ + for (i = 0; i < hw->aq.num_arq_entries; i++) + i40e_free_dma_mem(hw, &hw->aq.arq.r.arq_bi[i]); + + /* free the descriptor memory */ + i40e_free_dma_mem(hw, &hw->aq.arq.desc_buf); + + /* free the dma header */ + i40e_free_virt_mem(hw, &hw->aq.arq.dma_head); +} + +/** + * i40e_free_asq_bufs - Free send queue buffer info elements + * @hw: pointer to the hardware structure + **/ +static void i40e_free_asq_bufs(struct i40e_hw *hw) +{ + int i; + + /* only unmap if the address is non-NULL */ + for (i = 0; i < hw->aq.num_asq_entries; i++) + if (hw->aq.asq.r.asq_bi[i].pa) + i40e_free_dma_mem(hw, &hw->aq.asq.r.asq_bi[i]); + + /* free the buffer info list */ + i40e_free_virt_mem(hw, &hw->aq.asq.cmd_buf); + + /* free the descriptor memory */ + i40e_free_dma_mem(hw, &hw->aq.asq.desc_buf); + + /* free the dma header */ + i40e_free_virt_mem(hw, &hw->aq.asq.dma_head); +} + +/** + * i40e_config_asq_regs - configure ASQ registers + * @hw: pointer to the hardware structure + * + * Configure base address and length registers for the transmit queue + **/ +static void i40e_config_asq_regs(struct i40e_hw *hw) +{ + if (hw->mac.type == I40E_MAC_VF) { + /* configure the transmit queue */ + wr32(hw, I40E_VF_ATQBAH1, + upper_32_bits(hw->aq.asq.desc_buf.pa)); + wr32(hw, I40E_VF_ATQBAL1, + lower_32_bits(hw->aq.asq.desc_buf.pa)); + wr32(hw, I40E_VF_ATQLEN1, (hw->aq.num_asq_entries | + I40E_VF_ATQLEN1_ATQENABLE_MASK)); + } else { + /* configure the transmit queue */ + wr32(hw, I40E_PF_ATQBAH, + upper_32_bits(hw->aq.asq.desc_buf.pa)); + wr32(hw, I40E_PF_ATQBAL, + lower_32_bits(hw->aq.asq.desc_buf.pa)); + wr32(hw, I40E_PF_ATQLEN, (hw->aq.num_asq_entries | + I40E_PF_ATQLEN_ATQENABLE_MASK)); + } +} + +/** + * i40e_config_arq_regs - ARQ register configuration + * @hw: pointer to the hardware structure + * + * Configure base address and length registers for the receive (event queue) + **/ +static void i40e_config_arq_regs(struct i40e_hw *hw) +{ + if (hw->mac.type == I40E_MAC_VF) { + /* configure the receive queue */ + wr32(hw, I40E_VF_ARQBAH1, + upper_32_bits(hw->aq.arq.desc_buf.pa)); + wr32(hw, I40E_VF_ARQBAL1, + lower_32_bits(hw->aq.arq.desc_buf.pa)); + wr32(hw, I40E_VF_ARQLEN1, (hw->aq.num_arq_entries | + I40E_VF_ARQLEN1_ARQENABLE_MASK)); + } else { + /* configure the receive queue */ + wr32(hw, I40E_PF_ARQBAH, + upper_32_bits(hw->aq.arq.desc_buf.pa)); + wr32(hw, I40E_PF_ARQBAL, + lower_32_bits(hw->aq.arq.desc_buf.pa)); + wr32(hw, I40E_PF_ARQLEN, (hw->aq.num_arq_entries | + I40E_PF_ARQLEN_ARQENABLE_MASK)); + } + + /* Update tail in the HW to post pre-allocated buffers */ + wr32(hw, hw->aq.arq.tail, hw->aq.num_arq_entries - 1); +} + +/** + * i40e_init_asq - main initialization routine for ASQ + * @hw: pointer to the hardware structure + * + * This is the main initialization routine for the Admin Send Queue + * Prior to calling this function, drivers *MUST* set the following fields + * in the hw->aq structure: + * - hw->aq.num_asq_entries + * - hw->aq.arq_buf_size + * + * Do *NOT* hold the lock when calling this as the memory allocation routines + * called are not going to be atomic context safe + **/ +static i40e_status i40e_init_asq(struct i40e_hw *hw) +{ + i40e_status ret_code = 0; + + if (hw->aq.asq.count > 0) { + /* queue already initialized */ + ret_code = I40E_ERR_NOT_READY; + goto init_adminq_exit; + } + + /* verify input for valid configuration */ + if ((hw->aq.num_asq_entries == 0) || + (hw->aq.asq_buf_size == 0)) { + ret_code = I40E_ERR_CONFIG; + goto init_adminq_exit; + } + + hw->aq.asq.next_to_use = 0; + hw->aq.asq.next_to_clean = 0; + hw->aq.asq.count = hw->aq.num_asq_entries; + + /* allocate the ring memory */ + ret_code = i40e_alloc_adminq_asq_ring(hw); + if (ret_code) + goto init_adminq_exit; + + /* allocate buffers in the rings */ + ret_code = i40e_alloc_asq_bufs(hw); + if (ret_code) + goto init_adminq_free_rings; + + /* initialize base registers */ + i40e_config_asq_regs(hw); + + /* success! */ + goto init_adminq_exit; + +init_adminq_free_rings: + i40e_free_adminq_asq(hw); + +init_adminq_exit: + return ret_code; +} + +/** + * i40e_init_arq - initialize ARQ + * @hw: pointer to the hardware structure + * + * The main initialization routine for the Admin Receive (Event) Queue. + * Prior to calling this function, drivers *MUST* set the following fields + * in the hw->aq structure: + * - hw->aq.num_asq_entries + * - hw->aq.arq_buf_size + * + * Do *NOT* hold the lock when calling this as the memory allocation routines + * called are not going to be atomic context safe + **/ +static i40e_status i40e_init_arq(struct i40e_hw *hw) +{ + i40e_status ret_code = 0; + + if (hw->aq.arq.count > 0) { + /* queue already initialized */ + ret_code = I40E_ERR_NOT_READY; + goto init_adminq_exit; + } + + /* verify input for valid configuration */ + if ((hw->aq.num_arq_entries == 0) || + (hw->aq.arq_buf_size == 0)) { + ret_code = I40E_ERR_CONFIG; + goto init_adminq_exit; + } + + hw->aq.arq.next_to_use = 0; + hw->aq.arq.next_to_clean = 0; + hw->aq.arq.count = hw->aq.num_arq_entries; + + /* allocate the ring memory */ + ret_code = i40e_alloc_adminq_arq_ring(hw); + if (ret_code) + goto init_adminq_exit; + + /* allocate buffers in the rings */ + ret_code = i40e_alloc_arq_bufs(hw); + if (ret_code) + goto init_adminq_free_rings; + + /* initialize base registers */ + i40e_config_arq_regs(hw); + + /* success! */ + goto init_adminq_exit; + +init_adminq_free_rings: + i40e_free_adminq_arq(hw); + +init_adminq_exit: + return ret_code; +} + +/** + * i40e_shutdown_asq - shutdown the ASQ + * @hw: pointer to the hardware structure + * + * The main shutdown routine for the Admin Send Queue + **/ +static i40e_status i40e_shutdown_asq(struct i40e_hw *hw) +{ + i40e_status ret_code = 0; + + if (hw->aq.asq.count == 0) + return I40E_ERR_NOT_READY; + + /* Stop firmware AdminQ processing */ + wr32(hw, hw->aq.asq.head, 0); + wr32(hw, hw->aq.asq.tail, 0); + wr32(hw, hw->aq.asq.len, 0); + + /* make sure lock is available */ + mutex_lock(&hw->aq.asq_mutex); + + hw->aq.asq.count = 0; /* to indicate uninitialized queue */ + + /* free ring buffers */ + i40e_free_asq_bufs(hw); + + mutex_unlock(&hw->aq.asq_mutex); + + return ret_code; +} + +/** + * i40e_shutdown_arq - shutdown ARQ + * @hw: pointer to the hardware structure + * + * The main shutdown routine for the Admin Receive Queue + **/ +static i40e_status i40e_shutdown_arq(struct i40e_hw *hw) +{ + i40e_status ret_code = 0; + + if (hw->aq.arq.count == 0) + return I40E_ERR_NOT_READY; + + /* Stop firmware AdminQ processing */ + wr32(hw, hw->aq.arq.head, 0); + wr32(hw, hw->aq.arq.tail, 0); + wr32(hw, hw->aq.arq.len, 0); + + /* make sure lock is available */ + mutex_lock(&hw->aq.arq_mutex); + + hw->aq.arq.count = 0; /* to indicate uninitialized queue */ + + /* free ring buffers */ + i40e_free_arq_bufs(hw); + + mutex_unlock(&hw->aq.arq_mutex); + + return ret_code; +} + +/** + * i40evf_init_adminq - main initialization routine for Admin Queue + * @hw: pointer to the hardware structure + * + * Prior to calling this function, drivers *MUST* set the following fields + * in the hw->aq structure: + * - hw->aq.num_asq_entries + * - hw->aq.num_arq_entries + * - hw->aq.arq_buf_size + * - hw->aq.asq_buf_size + **/ +i40e_status i40evf_init_adminq(struct i40e_hw *hw) +{ + i40e_status ret_code; + + /* verify input for valid configuration */ + if ((hw->aq.num_arq_entries == 0) || + (hw->aq.num_asq_entries == 0) || + (hw->aq.arq_buf_size == 0) || + (hw->aq.asq_buf_size == 0)) { + ret_code = I40E_ERR_CONFIG; + goto init_adminq_exit; + } + + /* initialize locks */ + mutex_init(&hw->aq.asq_mutex); + mutex_init(&hw->aq.arq_mutex); + + /* Set up register offsets */ + i40e_adminq_init_regs(hw); + + /* allocate the ASQ */ + ret_code = i40e_init_asq(hw); + if (ret_code) + goto init_adminq_destroy_locks; + + /* allocate the ARQ */ + ret_code = i40e_init_arq(hw); + if (ret_code) + goto init_adminq_free_asq; + + /* success! */ + goto init_adminq_exit; + +init_adminq_free_asq: + i40e_shutdown_asq(hw); +init_adminq_destroy_locks: + +init_adminq_exit: + return ret_code; +} + +/** + * i40evf_shutdown_adminq - shutdown routine for the Admin Queue + * @hw: pointer to the hardware structure + **/ +i40e_status i40evf_shutdown_adminq(struct i40e_hw *hw) +{ + i40e_status ret_code = 0; + + if (i40evf_check_asq_alive(hw)) + i40evf_aq_queue_shutdown(hw, true); + + i40e_shutdown_asq(hw); + i40e_shutdown_arq(hw); + + /* destroy the locks */ + + return ret_code; +} + +/** + * i40e_clean_asq - cleans Admin send queue + * @hw: pointer to the hardware structure + * + * returns the number of free desc + **/ +static u16 i40e_clean_asq(struct i40e_hw *hw) +{ + struct i40e_adminq_ring *asq = &(hw->aq.asq); + struct i40e_asq_cmd_details *details; + u16 ntc = asq->next_to_clean; + struct i40e_aq_desc desc_cb; + struct i40e_aq_desc *desc; + + desc = I40E_ADMINQ_DESC(*asq, ntc); + details = I40E_ADMINQ_DETAILS(*asq, ntc); + while (rd32(hw, hw->aq.asq.head) != ntc) { + if (details->callback) { + I40E_ADMINQ_CALLBACK cb_func = + (I40E_ADMINQ_CALLBACK)details->callback; + desc_cb = *desc; + cb_func(hw, &desc_cb); + } + memset((void *)desc, 0, sizeof(struct i40e_aq_desc)); + memset((void *)details, 0, + sizeof(struct i40e_asq_cmd_details)); + ntc++; + if (ntc == asq->count) + ntc = 0; + desc = I40E_ADMINQ_DESC(*asq, ntc); + details = I40E_ADMINQ_DETAILS(*asq, ntc); + } + + asq->next_to_clean = ntc; + + return I40E_DESC_UNUSED(asq); +} + +/** + * i40evf_asq_done - check if FW has processed the Admin Send Queue + * @hw: pointer to the hw struct + * + * Returns true if the firmware has processed all descriptors on the + * admin send queue. Returns false if there are still requests pending. + **/ +bool i40evf_asq_done(struct i40e_hw *hw) +{ + /* AQ designers suggest use of head for better + * timing reliability than DD bit + */ + return rd32(hw, hw->aq.asq.head) == hw->aq.asq.next_to_use; + +} + +/** + * i40evf_asq_send_command - send command to Admin Queue + * @hw: pointer to the hw struct + * @desc: prefilled descriptor describing the command (non DMA mem) + * @buff: buffer to use for indirect commands + * @buff_size: size of buffer for indirect commands + * @cmd_details: pointer to command details structure + * + * This is the main send command driver routine for the Admin Queue send + * queue. It runs the queue, cleans the queue, etc + **/ +i40e_status i40evf_asq_send_command(struct i40e_hw *hw, + struct i40e_aq_desc *desc, + void *buff, /* can be NULL */ + u16 buff_size, + struct i40e_asq_cmd_details *cmd_details) +{ + i40e_status status = 0; + struct i40e_dma_mem *dma_buff = NULL; + struct i40e_asq_cmd_details *details; + struct i40e_aq_desc *desc_on_ring; + bool cmd_completed = false; + u16 retval = 0; + + if (hw->aq.asq.count == 0) { + i40e_debug(hw, I40E_DEBUG_AQ_MESSAGE, + "AQTX: Admin queue not initialized.\n"); + status = I40E_ERR_QUEUE_EMPTY; + goto asq_send_command_exit; + } + + details = I40E_ADMINQ_DETAILS(hw->aq.asq, hw->aq.asq.next_to_use); + if (cmd_details) { + *details = *cmd_details; + + /* If the cmd_details are defined copy the cookie. The + * cpu_to_le32 is not needed here because the data is ignored + * by the FW, only used by the driver + */ + if (details->cookie) { + desc->cookie_high = + cpu_to_le32(upper_32_bits(details->cookie)); + desc->cookie_low = + cpu_to_le32(lower_32_bits(details->cookie)); + } + } else { + memset(details, 0, sizeof(struct i40e_asq_cmd_details)); + } + + /* clear requested flags and then set additional flags if defined */ + desc->flags &= ~cpu_to_le16(details->flags_dis); + desc->flags |= cpu_to_le16(details->flags_ena); + + mutex_lock(&hw->aq.asq_mutex); + + if (buff_size > hw->aq.asq_buf_size) { + i40e_debug(hw, + I40E_DEBUG_AQ_MESSAGE, + "AQTX: Invalid buffer size: %d.\n", + buff_size); + status = I40E_ERR_INVALID_SIZE; + goto asq_send_command_error; + } + + if (details->postpone && !details->async) { + i40e_debug(hw, + I40E_DEBUG_AQ_MESSAGE, + "AQTX: Async flag not set along with postpone flag"); + status = I40E_ERR_PARAM; + goto asq_send_command_error; + } + + /* call clean and check queue available function to reclaim the + * descriptors that were processed by FW, the function returns the + * number of desc available + */ + /* the clean function called here could be called in a separate thread + * in case of asynchronous completions + */ + if (i40e_clean_asq(hw) == 0) { + i40e_debug(hw, + I40E_DEBUG_AQ_MESSAGE, + "AQTX: Error queue is full.\n"); + status = I40E_ERR_ADMIN_QUEUE_FULL; + goto asq_send_command_error; + } + + /* initialize the temp desc pointer with the right desc */ + desc_on_ring = I40E_ADMINQ_DESC(hw->aq.asq, hw->aq.asq.next_to_use); + + /* if the desc is available copy the temp desc to the right place */ + *desc_on_ring = *desc; + + /* if buff is not NULL assume indirect command */ + if (buff != NULL) { + dma_buff = &(hw->aq.asq.r.asq_bi[hw->aq.asq.next_to_use]); + /* copy the user buff into the respective DMA buff */ + memcpy(dma_buff->va, buff, buff_size); + desc_on_ring->datalen = cpu_to_le16(buff_size); + + /* Update the address values in the desc with the pa value + * for respective buffer + */ + desc_on_ring->params.external.addr_high = + cpu_to_le32(upper_32_bits(dma_buff->pa)); + desc_on_ring->params.external.addr_low = + cpu_to_le32(lower_32_bits(dma_buff->pa)); + } + + /* bump the tail */ + i40evf_debug_aq(hw, I40E_DEBUG_AQ_COMMAND, (void *)desc_on_ring, buff); + (hw->aq.asq.next_to_use)++; + if (hw->aq.asq.next_to_use == hw->aq.asq.count) + hw->aq.asq.next_to_use = 0; + if (!details->postpone) + wr32(hw, hw->aq.asq.tail, hw->aq.asq.next_to_use); + + /* if cmd_details are not defined or async flag is not set, + * we need to wait for desc write back + */ + if (!details->async && !details->postpone) { + u32 total_delay = 0; + u32 delay_len = 10; + + do { + /* AQ designers suggest use of head for better + * timing reliability than DD bit + */ + if (i40evf_asq_done(hw)) + break; + /* ugh! delay while spin_lock */ + udelay(delay_len); + total_delay += delay_len; + } while (total_delay < I40E_ASQ_CMD_TIMEOUT); + } + + /* if ready, copy the desc back to temp */ + if (i40evf_asq_done(hw)) { + *desc = *desc_on_ring; + if (buff != NULL) + memcpy(buff, dma_buff->va, buff_size); + retval = le16_to_cpu(desc->retval); + if (retval != 0) { + i40e_debug(hw, + I40E_DEBUG_AQ_MESSAGE, + "AQTX: Command completed with error 0x%X.\n", + retval); + /* strip off FW internal code */ + retval &= 0xff; + } + cmd_completed = true; + if ((enum i40e_admin_queue_err)retval == I40E_AQ_RC_OK) + status = 0; + else + status = I40E_ERR_ADMIN_QUEUE_ERROR; + hw->aq.asq_last_status = (enum i40e_admin_queue_err)retval; + } + + /* update the error if time out occurred */ + if ((!cmd_completed) && + (!details->async && !details->postpone)) { + i40e_debug(hw, + I40E_DEBUG_AQ_MESSAGE, + "AQTX: Writeback timeout.\n"); + status = I40E_ERR_ADMIN_QUEUE_TIMEOUT; + } + +asq_send_command_error: + mutex_unlock(&hw->aq.asq_mutex); +asq_send_command_exit: + return status; +} + +/** + * i40evf_fill_default_direct_cmd_desc - AQ descriptor helper function + * @desc: pointer to the temp descriptor (non DMA mem) + * @opcode: the opcode can be used to decide which flags to turn off or on + * + * Fill the desc with default values + **/ +void i40evf_fill_default_direct_cmd_desc(struct i40e_aq_desc *desc, + u16 opcode) +{ + /* zero out the desc */ + memset((void *)desc, 0, sizeof(struct i40e_aq_desc)); + desc->opcode = cpu_to_le16(opcode); + desc->flags = cpu_to_le16(I40E_AQ_FLAG_SI); +} + +/** + * i40evf_clean_arq_element + * @hw: pointer to the hw struct + * @e: event info from the receive descriptor, includes any buffers + * @pending: number of events that could be left to process + * + * This function cleans one Admin Receive Queue element and returns + * the contents through e. It can also return how many events are + * left to process through 'pending' + **/ +i40e_status i40evf_clean_arq_element(struct i40e_hw *hw, + struct i40e_arq_event_info *e, + u16 *pending) +{ + i40e_status ret_code = 0; + u16 ntc = hw->aq.arq.next_to_clean; + struct i40e_aq_desc *desc; + struct i40e_dma_mem *bi; + u16 desc_idx; + u16 datalen; + u16 flags; + u16 ntu; + + /* take the lock before we start messing with the ring */ + mutex_lock(&hw->aq.arq_mutex); + + /* set next_to_use to head */ + ntu = (rd32(hw, hw->aq.arq.head) & I40E_PF_ARQH_ARQH_MASK); + if (ntu == ntc) { + /* nothing to do - shouldn't need to update ring's values */ + i40e_debug(hw, + I40E_DEBUG_AQ_MESSAGE, + "AQRX: Queue is empty.\n"); + ret_code = I40E_ERR_ADMIN_QUEUE_NO_WORK; + goto clean_arq_element_out; + } + + /* now clean the next descriptor */ + desc = I40E_ADMINQ_DESC(hw->aq.arq, ntc); + desc_idx = ntc; + i40evf_debug_aq(hw, + I40E_DEBUG_AQ_COMMAND, + (void *)desc, + hw->aq.arq.r.arq_bi[desc_idx].va); + + flags = le16_to_cpu(desc->flags); + if (flags & I40E_AQ_FLAG_ERR) { + ret_code = I40E_ERR_ADMIN_QUEUE_ERROR; + hw->aq.arq_last_status = + (enum i40e_admin_queue_err)le16_to_cpu(desc->retval); + i40e_debug(hw, + I40E_DEBUG_AQ_MESSAGE, + "AQRX: Event received with error 0x%X.\n", + hw->aq.arq_last_status); + } else { + e->desc = *desc; + datalen = le16_to_cpu(desc->datalen); + e->msg_size = min(datalen, e->msg_size); + if (e->msg_buf != NULL && (e->msg_size != 0)) + memcpy(e->msg_buf, hw->aq.arq.r.arq_bi[desc_idx].va, + e->msg_size); + } + + /* Restore the original datalen and buffer address in the desc, + * FW updates datalen to indicate the event message + * size + */ + bi = &hw->aq.arq.r.arq_bi[ntc]; + memset((void *)desc, 0, sizeof(struct i40e_aq_desc)); + + desc->flags = cpu_to_le16(I40E_AQ_FLAG_BUF); + if (hw->aq.arq_buf_size > I40E_AQ_LARGE_BUF) + desc->flags |= cpu_to_le16(I40E_AQ_FLAG_LB); + desc->datalen = cpu_to_le16((u16)bi->size); + desc->params.external.addr_high = cpu_to_le32(upper_32_bits(bi->pa)); + desc->params.external.addr_low = cpu_to_le32(lower_32_bits(bi->pa)); + + /* set tail = the last cleaned desc index. */ + wr32(hw, hw->aq.arq.tail, ntc); + /* ntc is updated to tail + 1 */ + ntc++; + if (ntc == hw->aq.num_arq_entries) + ntc = 0; + hw->aq.arq.next_to_clean = ntc; + hw->aq.arq.next_to_use = ntu; + +clean_arq_element_out: + /* Set pending if needed, unlock and return */ + if (pending != NULL) + *pending = (ntc > ntu ? hw->aq.arq.count : 0) + (ntu - ntc); + mutex_unlock(&hw->aq.arq_mutex); + + return ret_code; +} + +void i40evf_resume_aq(struct i40e_hw *hw) +{ + /* Registers are reset after PF reset */ + hw->aq.asq.next_to_use = 0; + hw->aq.asq.next_to_clean = 0; + + i40e_config_asq_regs(hw); + + hw->aq.arq.next_to_use = 0; + hw->aq.arq.next_to_clean = 0; + + i40e_config_arq_regs(hw); +} --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40e_adminq.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40e_adminq.h @@ -0,0 +1,106 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#ifndef _I40E_ADMINQ_H_ +#define _I40E_ADMINQ_H_ + +#include "i40e_osdep.h" +#include "i40e_adminq_cmd.h" + +#define I40E_ADMINQ_DESC(R, i) \ + (&(((struct i40e_aq_desc *)((R).desc_buf.va))[i])) + +#define I40E_ADMINQ_DESC_ALIGNMENT 4096 + +struct i40e_adminq_ring { + struct i40e_virt_mem dma_head; /* space for dma structures */ + struct i40e_dma_mem desc_buf; /* descriptor ring memory */ + struct i40e_virt_mem cmd_buf; /* command buffer memory */ + + union { + struct i40e_dma_mem *asq_bi; + struct i40e_dma_mem *arq_bi; + } r; + + u16 count; /* Number of descriptors */ + u16 rx_buf_len; /* Admin Receive Queue buffer length */ + + /* used for interrupt processing */ + u16 next_to_use; + u16 next_to_clean; + + /* used for queue tracking */ + u32 head; + u32 tail; + u32 len; +}; + +/* ASQ transaction details */ +struct i40e_asq_cmd_details { + void *callback; /* cast from type I40E_ADMINQ_CALLBACK */ + u64 cookie; + u16 flags_ena; + u16 flags_dis; + bool async; + bool postpone; +}; + +#define I40E_ADMINQ_DETAILS(R, i) \ + (&(((struct i40e_asq_cmd_details *)((R).cmd_buf.va))[i])) + +/* ARQ event information */ +struct i40e_arq_event_info { + struct i40e_aq_desc desc; + u16 msg_size; + u8 *msg_buf; +}; + +/* Admin Queue information */ +struct i40e_adminq_info { + struct i40e_adminq_ring arq; /* receive queue */ + struct i40e_adminq_ring asq; /* send queue */ + u16 num_arq_entries; /* receive queue depth */ + u16 num_asq_entries; /* send queue depth */ + u16 arq_buf_size; /* receive queue buffer size */ + u16 asq_buf_size; /* send queue buffer size */ + u16 fw_maj_ver; /* firmware major version */ + u16 fw_min_ver; /* firmware minor version */ + u16 api_maj_ver; /* api major version */ + u16 api_min_ver; /* api minor version */ + + struct mutex asq_mutex; /* Send queue lock */ + struct mutex arq_mutex; /* Receive queue lock */ + + /* last status values on send and receive queues */ + enum i40e_admin_queue_err asq_last_status; + enum i40e_admin_queue_err arq_last_status; +}; + +/* general information */ +#define I40E_AQ_LARGE_BUF 512 +#define I40E_ASQ_CMD_TIMEOUT 100000 /* usecs */ + +void i40evf_fill_default_direct_cmd_desc(struct i40e_aq_desc *desc, + u16 opcode); + +#endif /* _I40E_ADMINQ_H_ */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40e_adminq_cmd.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40e_adminq_cmd.h @@ -0,0 +1,2153 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#ifndef _I40E_ADMINQ_CMD_H_ +#define _I40E_ADMINQ_CMD_H_ + +/* This header file defines the i40e Admin Queue commands and is shared between + * i40e Firmware and Software. + * + * This file needs to comply with the Linux Kernel coding style. + */ + +#define I40E_FW_API_VERSION_MAJOR 0x0001 +#define I40E_FW_API_VERSION_MINOR 0x0001 +#define I40E_FW_API_VERSION_A0_MINOR 0x0000 + +struct i40e_aq_desc { + __le16 flags; + __le16 opcode; + __le16 datalen; + __le16 retval; + __le32 cookie_high; + __le32 cookie_low; + union { + struct { + __le32 param0; + __le32 param1; + __le32 param2; + __le32 param3; + } internal; + struct { + __le32 param0; + __le32 param1; + __le32 addr_high; + __le32 addr_low; + } external; + u8 raw[16]; + } params; +}; + +/* Flags sub-structure + * |0 |1 |2 |3 |4 |5 |6 |7 |8 |9 |10 |11 |12 |13 |14 |15 | + * |DD |CMP|ERR|VFE| * * RESERVED * * |LB |RD |VFC|BUF|SI |EI |FE | + */ + +/* command flags and offsets*/ +#define I40E_AQ_FLAG_DD_SHIFT 0 +#define I40E_AQ_FLAG_CMP_SHIFT 1 +#define I40E_AQ_FLAG_ERR_SHIFT 2 +#define I40E_AQ_FLAG_VFE_SHIFT 3 +#define I40E_AQ_FLAG_LB_SHIFT 9 +#define I40E_AQ_FLAG_RD_SHIFT 10 +#define I40E_AQ_FLAG_VFC_SHIFT 11 +#define I40E_AQ_FLAG_BUF_SHIFT 12 +#define I40E_AQ_FLAG_SI_SHIFT 13 +#define I40E_AQ_FLAG_EI_SHIFT 14 +#define I40E_AQ_FLAG_FE_SHIFT 15 + +#define I40E_AQ_FLAG_DD (1 << I40E_AQ_FLAG_DD_SHIFT) /* 0x1 */ +#define I40E_AQ_FLAG_CMP (1 << I40E_AQ_FLAG_CMP_SHIFT) /* 0x2 */ +#define I40E_AQ_FLAG_ERR (1 << I40E_AQ_FLAG_ERR_SHIFT) /* 0x4 */ +#define I40E_AQ_FLAG_VFE (1 << I40E_AQ_FLAG_VFE_SHIFT) /* 0x8 */ +#define I40E_AQ_FLAG_LB (1 << I40E_AQ_FLAG_LB_SHIFT) /* 0x200 */ +#define I40E_AQ_FLAG_RD (1 << I40E_AQ_FLAG_RD_SHIFT) /* 0x400 */ +#define I40E_AQ_FLAG_VFC (1 << I40E_AQ_FLAG_VFC_SHIFT) /* 0x800 */ +#define I40E_AQ_FLAG_BUF (1 << I40E_AQ_FLAG_BUF_SHIFT) /* 0x1000 */ +#define I40E_AQ_FLAG_SI (1 << I40E_AQ_FLAG_SI_SHIFT) /* 0x2000 */ +#define I40E_AQ_FLAG_EI (1 << I40E_AQ_FLAG_EI_SHIFT) /* 0x4000 */ +#define I40E_AQ_FLAG_FE (1 << I40E_AQ_FLAG_FE_SHIFT) /* 0x8000 */ + +/* error codes */ +enum i40e_admin_queue_err { + I40E_AQ_RC_OK = 0, /* success */ + I40E_AQ_RC_EPERM = 1, /* Operation not permitted */ + I40E_AQ_RC_ENOENT = 2, /* No such element */ + I40E_AQ_RC_ESRCH = 3, /* Bad opcode */ + I40E_AQ_RC_EINTR = 4, /* operation interrupted */ + I40E_AQ_RC_EIO = 5, /* I/O error */ + I40E_AQ_RC_ENXIO = 6, /* No such resource */ + I40E_AQ_RC_E2BIG = 7, /* Arg too long */ + I40E_AQ_RC_EAGAIN = 8, /* Try again */ + I40E_AQ_RC_ENOMEM = 9, /* Out of memory */ + I40E_AQ_RC_EACCES = 10, /* Permission denied */ + I40E_AQ_RC_EFAULT = 11, /* Bad address */ + I40E_AQ_RC_EBUSY = 12, /* Device or resource busy */ + I40E_AQ_RC_EEXIST = 13, /* object already exists */ + I40E_AQ_RC_EINVAL = 14, /* Invalid argument */ + I40E_AQ_RC_ENOTTY = 15, /* Not a typewriter */ + I40E_AQ_RC_ENOSPC = 16, /* No space left or alloc failure */ + I40E_AQ_RC_ENOSYS = 17, /* Function not implemented */ + I40E_AQ_RC_ERANGE = 18, /* Parameter out of range */ + I40E_AQ_RC_EFLUSHED = 19, /* Cmd flushed because of prev cmd error */ + I40E_AQ_RC_BAD_ADDR = 20, /* Descriptor contains a bad pointer */ + I40E_AQ_RC_EMODE = 21, /* Op not allowed in current dev mode */ + I40E_AQ_RC_EFBIG = 22, /* File too large */ +}; + +/* Admin Queue command opcodes */ +enum i40e_admin_queue_opc { + /* aq commands */ + i40e_aqc_opc_get_version = 0x0001, + i40e_aqc_opc_driver_version = 0x0002, + i40e_aqc_opc_queue_shutdown = 0x0003, + + /* resource ownership */ + i40e_aqc_opc_request_resource = 0x0008, + i40e_aqc_opc_release_resource = 0x0009, + + i40e_aqc_opc_list_func_capabilities = 0x000A, + i40e_aqc_opc_list_dev_capabilities = 0x000B, + + i40e_aqc_opc_set_cppm_configuration = 0x0103, + i40e_aqc_opc_set_arp_proxy_entry = 0x0104, + i40e_aqc_opc_set_ns_proxy_entry = 0x0105, + + /* LAA */ + i40e_aqc_opc_mng_laa = 0x0106, /* AQ obsolete */ + i40e_aqc_opc_mac_address_read = 0x0107, + i40e_aqc_opc_mac_address_write = 0x0108, + + /* PXE */ + i40e_aqc_opc_clear_pxe_mode = 0x0110, + + /* internal switch commands */ + i40e_aqc_opc_get_switch_config = 0x0200, + i40e_aqc_opc_add_statistics = 0x0201, + i40e_aqc_opc_remove_statistics = 0x0202, + i40e_aqc_opc_set_port_parameters = 0x0203, + i40e_aqc_opc_get_switch_resource_alloc = 0x0204, + + i40e_aqc_opc_add_vsi = 0x0210, + i40e_aqc_opc_update_vsi_parameters = 0x0211, + i40e_aqc_opc_get_vsi_parameters = 0x0212, + + i40e_aqc_opc_add_pv = 0x0220, + i40e_aqc_opc_update_pv_parameters = 0x0221, + i40e_aqc_opc_get_pv_parameters = 0x0222, + + i40e_aqc_opc_add_veb = 0x0230, + i40e_aqc_opc_update_veb_parameters = 0x0231, + i40e_aqc_opc_get_veb_parameters = 0x0232, + + i40e_aqc_opc_delete_element = 0x0243, + + i40e_aqc_opc_add_macvlan = 0x0250, + i40e_aqc_opc_remove_macvlan = 0x0251, + i40e_aqc_opc_add_vlan = 0x0252, + i40e_aqc_opc_remove_vlan = 0x0253, + i40e_aqc_opc_set_vsi_promiscuous_modes = 0x0254, + i40e_aqc_opc_add_tag = 0x0255, + i40e_aqc_opc_remove_tag = 0x0256, + i40e_aqc_opc_add_multicast_etag = 0x0257, + i40e_aqc_opc_remove_multicast_etag = 0x0258, + i40e_aqc_opc_update_tag = 0x0259, + i40e_aqc_opc_add_control_packet_filter = 0x025A, + i40e_aqc_opc_remove_control_packet_filter = 0x025B, + i40e_aqc_opc_add_cloud_filters = 0x025C, + i40e_aqc_opc_remove_cloud_filters = 0x025D, + + i40e_aqc_opc_add_mirror_rule = 0x0260, + i40e_aqc_opc_delete_mirror_rule = 0x0261, + + i40e_aqc_opc_set_storm_control_config = 0x0280, + i40e_aqc_opc_get_storm_control_config = 0x0281, + + /* DCB commands */ + i40e_aqc_opc_dcb_ignore_pfc = 0x0301, + i40e_aqc_opc_dcb_updated = 0x0302, + + /* TX scheduler */ + i40e_aqc_opc_configure_vsi_bw_limit = 0x0400, + i40e_aqc_opc_configure_vsi_ets_sla_bw_limit = 0x0406, + i40e_aqc_opc_configure_vsi_tc_bw = 0x0407, + i40e_aqc_opc_query_vsi_bw_config = 0x0408, + i40e_aqc_opc_query_vsi_ets_sla_config = 0x040A, + i40e_aqc_opc_configure_switching_comp_bw_limit = 0x0410, + + i40e_aqc_opc_enable_switching_comp_ets = 0x0413, + i40e_aqc_opc_modify_switching_comp_ets = 0x0414, + i40e_aqc_opc_disable_switching_comp_ets = 0x0415, + i40e_aqc_opc_configure_switching_comp_ets_bw_limit = 0x0416, + i40e_aqc_opc_configure_switching_comp_bw_config = 0x0417, + i40e_aqc_opc_query_switching_comp_ets_config = 0x0418, + i40e_aqc_opc_query_port_ets_config = 0x0419, + i40e_aqc_opc_query_switching_comp_bw_config = 0x041A, + i40e_aqc_opc_suspend_port_tx = 0x041B, + i40e_aqc_opc_resume_port_tx = 0x041C, + + /* hmc */ + i40e_aqc_opc_query_hmc_resource_profile = 0x0500, + i40e_aqc_opc_set_hmc_resource_profile = 0x0501, + + /* phy commands*/ + i40e_aqc_opc_get_phy_abilities = 0x0600, + i40e_aqc_opc_set_phy_config = 0x0601, + i40e_aqc_opc_set_mac_config = 0x0603, + i40e_aqc_opc_set_link_restart_an = 0x0605, + i40e_aqc_opc_get_link_status = 0x0607, + i40e_aqc_opc_set_phy_int_mask = 0x0613, + i40e_aqc_opc_get_local_advt_reg = 0x0614, + i40e_aqc_opc_set_local_advt_reg = 0x0615, + i40e_aqc_opc_get_partner_advt = 0x0616, + i40e_aqc_opc_set_lb_modes = 0x0618, + i40e_aqc_opc_get_phy_wol_caps = 0x0621, + i40e_aqc_opc_set_phy_reset = 0x0622, + i40e_aqc_opc_upload_ext_phy_fm = 0x0625, + + /* NVM commands */ + i40e_aqc_opc_nvm_read = 0x0701, + i40e_aqc_opc_nvm_erase = 0x0702, + i40e_aqc_opc_nvm_update = 0x0703, + + /* virtualization commands */ + i40e_aqc_opc_send_msg_to_pf = 0x0801, + i40e_aqc_opc_send_msg_to_vf = 0x0802, + i40e_aqc_opc_send_msg_to_peer = 0x0803, + + /* alternate structure */ + i40e_aqc_opc_alternate_write = 0x0900, + i40e_aqc_opc_alternate_write_indirect = 0x0901, + i40e_aqc_opc_alternate_read = 0x0902, + i40e_aqc_opc_alternate_read_indirect = 0x0903, + i40e_aqc_opc_alternate_write_done = 0x0904, + i40e_aqc_opc_alternate_set_mode = 0x0905, + i40e_aqc_opc_alternate_clear_port = 0x0906, + + /* LLDP commands */ + i40e_aqc_opc_lldp_get_mib = 0x0A00, + i40e_aqc_opc_lldp_update_mib = 0x0A01, + i40e_aqc_opc_lldp_add_tlv = 0x0A02, + i40e_aqc_opc_lldp_update_tlv = 0x0A03, + i40e_aqc_opc_lldp_delete_tlv = 0x0A04, + i40e_aqc_opc_lldp_stop = 0x0A05, + i40e_aqc_opc_lldp_start = 0x0A06, + + /* Tunnel commands */ + i40e_aqc_opc_add_udp_tunnel = 0x0B00, + i40e_aqc_opc_del_udp_tunnel = 0x0B01, + i40e_aqc_opc_tunnel_key_structure = 0x0B10, + + /* Async Events */ + i40e_aqc_opc_event_lan_overflow = 0x1001, + + /* OEM commands */ + i40e_aqc_opc_oem_parameter_change = 0xFE00, + i40e_aqc_opc_oem_device_status_change = 0xFE01, + + /* debug commands */ + i40e_aqc_opc_debug_get_deviceid = 0xFF00, + i40e_aqc_opc_debug_set_mode = 0xFF01, + i40e_aqc_opc_debug_read_reg = 0xFF03, + i40e_aqc_opc_debug_write_reg = 0xFF04, + i40e_aqc_opc_debug_read_reg_sg = 0xFF05, + i40e_aqc_opc_debug_write_reg_sg = 0xFF06, + i40e_aqc_opc_debug_modify_reg = 0xFF07, + i40e_aqc_opc_debug_dump_internals = 0xFF08, + i40e_aqc_opc_debug_modify_internals = 0xFF09, +}; + +/* command structures and indirect data structures */ + +/* Structure naming conventions: + * - no suffix for direct command descriptor structures + * - _data for indirect sent data + * - _resp for indirect return data (data which is both will use _data) + * - _completion for direct return data + * - _element_ for repeated elements (may also be _data or _resp) + * + * Command structures are expected to overlay the params.raw member of the basic + * descriptor, and as such cannot exceed 16 bytes in length. + */ + +/* This macro is used to generate a compilation error if a structure + * is not exactly the correct length. It gives a divide by zero error if the + * structure is not of the correct size, otherwise it creates an enum that is + * never used. + */ +#define I40E_CHECK_STRUCT_LEN(n, X) enum i40e_static_assert_enum_##X \ + { i40e_static_assert_##X = (n)/((sizeof(struct X) == (n)) ? 1 : 0) } + +/* This macro is used extensively to ensure that command structures are 16 + * bytes in length as they have to map to the raw array of that size. + */ +#define I40E_CHECK_CMD_LENGTH(X) I40E_CHECK_STRUCT_LEN(16, X) + +/* internal (0x00XX) commands */ + +/* Get version (direct 0x0001) */ +struct i40e_aqc_get_version { + __le32 rom_ver; + __le32 fw_build; + __le16 fw_major; + __le16 fw_minor; + __le16 api_major; + __le16 api_minor; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_get_version); + +/* Send driver version (indirect 0x0002) */ +struct i40e_aqc_driver_version { + u8 driver_major_ver; + u8 driver_minor_ver; + u8 driver_build_ver; + u8 driver_subbuild_ver; + u8 reserved[4]; + __le32 address_high; + __le32 address_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_driver_version); + +/* Queue Shutdown (direct 0x0003) */ +struct i40e_aqc_queue_shutdown { + __le32 driver_unloading; +#define I40E_AQ_DRIVER_UNLOADING 0x1 + u8 reserved[12]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_queue_shutdown); + +/* Request resource ownership (direct 0x0008) + * Release resource ownership (direct 0x0009) + */ +#define I40E_AQ_RESOURCE_NVM 1 +#define I40E_AQ_RESOURCE_SDP 2 +#define I40E_AQ_RESOURCE_ACCESS_READ 1 +#define I40E_AQ_RESOURCE_ACCESS_WRITE 2 +#define I40E_AQ_RESOURCE_NVM_READ_TIMEOUT 3000 +#define I40E_AQ_RESOURCE_NVM_WRITE_TIMEOUT 180000 + +struct i40e_aqc_request_resource { + __le16 resource_id; + __le16 access_type; + __le32 timeout; + __le32 resource_number; + u8 reserved[4]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_request_resource); + +/* Get function capabilities (indirect 0x000A) + * Get device capabilities (indirect 0x000B) + */ +struct i40e_aqc_list_capabilites { + u8 command_flags; +#define I40E_AQ_LIST_CAP_PF_INDEX_EN 1 + u8 pf_index; + u8 reserved[2]; + __le32 count; + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_list_capabilites); + +struct i40e_aqc_list_capabilities_element_resp { + __le16 id; + u8 major_rev; + u8 minor_rev; + __le32 number; + __le32 logical_id; + __le32 phys_id; + u8 reserved[16]; +}; + +/* list of caps */ + +#define I40E_AQ_CAP_ID_SWITCH_MODE 0x0001 +#define I40E_AQ_CAP_ID_MNG_MODE 0x0002 +#define I40E_AQ_CAP_ID_NPAR_ACTIVE 0x0003 +#define I40E_AQ_CAP_ID_OS2BMC_CAP 0x0004 +#define I40E_AQ_CAP_ID_FUNCTIONS_VALID 0x0005 +#define I40E_AQ_CAP_ID_ALTERNATE_RAM 0x0006 +#define I40E_AQ_CAP_ID_SRIOV 0x0012 +#define I40E_AQ_CAP_ID_VF 0x0013 +#define I40E_AQ_CAP_ID_VMDQ 0x0014 +#define I40E_AQ_CAP_ID_8021QBG 0x0015 +#define I40E_AQ_CAP_ID_8021QBR 0x0016 +#define I40E_AQ_CAP_ID_VSI 0x0017 +#define I40E_AQ_CAP_ID_DCB 0x0018 +#define I40E_AQ_CAP_ID_FCOE 0x0021 +#define I40E_AQ_CAP_ID_RSS 0x0040 +#define I40E_AQ_CAP_ID_RXQ 0x0041 +#define I40E_AQ_CAP_ID_TXQ 0x0042 +#define I40E_AQ_CAP_ID_MSIX 0x0043 +#define I40E_AQ_CAP_ID_VF_MSIX 0x0044 +#define I40E_AQ_CAP_ID_FLOW_DIRECTOR 0x0045 +#define I40E_AQ_CAP_ID_1588 0x0046 +#define I40E_AQ_CAP_ID_IWARP 0x0051 +#define I40E_AQ_CAP_ID_LED 0x0061 +#define I40E_AQ_CAP_ID_SDP 0x0062 +#define I40E_AQ_CAP_ID_MDIO 0x0063 +#define I40E_AQ_CAP_ID_FLEX10 0x00F1 +#define I40E_AQ_CAP_ID_CEM 0x00F2 + +/* Set CPPM Configuration (direct 0x0103) */ +struct i40e_aqc_cppm_configuration { + __le16 command_flags; +#define I40E_AQ_CPPM_EN_LTRC 0x0800 +#define I40E_AQ_CPPM_EN_DMCTH 0x1000 +#define I40E_AQ_CPPM_EN_DMCTLX 0x2000 +#define I40E_AQ_CPPM_EN_HPTC 0x4000 +#define I40E_AQ_CPPM_EN_DMARC 0x8000 + __le16 ttlx; + __le32 dmacr; + __le16 dmcth; + u8 hptc; + u8 reserved; + __le32 pfltrc; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_cppm_configuration); + +/* Set ARP Proxy command / response (indirect 0x0104) */ +struct i40e_aqc_arp_proxy_data { + __le16 command_flags; +#define I40E_AQ_ARP_INIT_IPV4 0x0008 +#define I40E_AQ_ARP_UNSUP_CTL 0x0010 +#define I40E_AQ_ARP_ENA 0x0020 +#define I40E_AQ_ARP_ADD_IPV4 0x0040 +#define I40E_AQ_ARP_DEL_IPV4 0x0080 + __le16 table_id; + __le32 pfpm_proxyfc; + __le32 ip_addr; + u8 mac_addr[6]; +}; + +/* Set NS Proxy Table Entry Command (indirect 0x0105) */ +struct i40e_aqc_ns_proxy_data { + __le16 table_idx_mac_addr_0; + __le16 table_idx_mac_addr_1; + __le16 table_idx_ipv6_0; + __le16 table_idx_ipv6_1; + __le16 control; +#define I40E_AQ_NS_PROXY_ADD_0 0x0100 +#define I40E_AQ_NS_PROXY_DEL_0 0x0200 +#define I40E_AQ_NS_PROXY_ADD_1 0x0400 +#define I40E_AQ_NS_PROXY_DEL_1 0x0800 +#define I40E_AQ_NS_PROXY_ADD_IPV6_0 0x1000 +#define I40E_AQ_NS_PROXY_DEL_IPV6_0 0x2000 +#define I40E_AQ_NS_PROXY_ADD_IPV6_1 0x4000 +#define I40E_AQ_NS_PROXY_DEL_IPV6_1 0x8000 +#define I40E_AQ_NS_PROXY_COMMAND_SEQ 0x0001 +#define I40E_AQ_NS_PROXY_INIT_IPV6_TBL 0x0002 +#define I40E_AQ_NS_PROXY_INIT_MAC_TBL 0x0004 + u8 mac_addr_0[6]; + u8 mac_addr_1[6]; + u8 local_mac_addr[6]; + u8 ipv6_addr_0[16]; /* Warning! spec specifies BE byte order */ + u8 ipv6_addr_1[16]; +}; + +/* Manage LAA Command (0x0106) - obsolete */ +struct i40e_aqc_mng_laa { + __le16 command_flags; +#define I40E_AQ_LAA_FLAG_WR 0x8000 + u8 reserved[2]; + __le32 sal; + __le16 sah; + u8 reserved2[6]; +}; + +/* Manage MAC Address Read Command (indirect 0x0107) */ +struct i40e_aqc_mac_address_read { + __le16 command_flags; +#define I40E_AQC_LAN_ADDR_VALID 0x10 +#define I40E_AQC_SAN_ADDR_VALID 0x20 +#define I40E_AQC_PORT_ADDR_VALID 0x40 +#define I40E_AQC_WOL_ADDR_VALID 0x80 +#define I40E_AQC_ADDR_VALID_MASK 0xf0 + u8 reserved[6]; + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_mac_address_read); + +struct i40e_aqc_mac_address_read_data { + u8 pf_lan_mac[6]; + u8 pf_san_mac[6]; + u8 port_mac[6]; + u8 pf_wol_mac[6]; +}; + +I40E_CHECK_STRUCT_LEN(24, i40e_aqc_mac_address_read_data); + +/* Manage MAC Address Write Command (0x0108) */ +struct i40e_aqc_mac_address_write { + __le16 command_flags; +#define I40E_AQC_WRITE_TYPE_LAA_ONLY 0x0000 +#define I40E_AQC_WRITE_TYPE_LAA_WOL 0x4000 +#define I40E_AQC_WRITE_TYPE_PORT 0x8000 +#define I40E_AQC_WRITE_TYPE_MASK 0xc000 + __le16 mac_sah; + __le32 mac_sal; + u8 reserved[8]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_mac_address_write); + +/* PXE commands (0x011x) */ + +/* Clear PXE Command and response (direct 0x0110) */ +struct i40e_aqc_clear_pxe { + u8 rx_cnt; + u8 reserved[15]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_clear_pxe); + +/* Switch configuration commands (0x02xx) */ + +/* Used by many indirect commands that only pass an seid and a buffer in the + * command + */ +struct i40e_aqc_switch_seid { + __le16 seid; + u8 reserved[6]; + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_switch_seid); + +/* Get Switch Configuration command (indirect 0x0200) + * uses i40e_aqc_switch_seid for the descriptor + */ +struct i40e_aqc_get_switch_config_header_resp { + __le16 num_reported; + __le16 num_total; + u8 reserved[12]; +}; + +struct i40e_aqc_switch_config_element_resp { + u8 element_type; +#define I40E_AQ_SW_ELEM_TYPE_MAC 1 +#define I40E_AQ_SW_ELEM_TYPE_PF 2 +#define I40E_AQ_SW_ELEM_TYPE_VF 3 +#define I40E_AQ_SW_ELEM_TYPE_EMP 4 +#define I40E_AQ_SW_ELEM_TYPE_BMC 5 +#define I40E_AQ_SW_ELEM_TYPE_PV 16 +#define I40E_AQ_SW_ELEM_TYPE_VEB 17 +#define I40E_AQ_SW_ELEM_TYPE_PA 18 +#define I40E_AQ_SW_ELEM_TYPE_VSI 19 + u8 revision; +#define I40E_AQ_SW_ELEM_REV_1 1 + __le16 seid; + __le16 uplink_seid; + __le16 downlink_seid; + u8 reserved[3]; + u8 connection_type; +#define I40E_AQ_CONN_TYPE_REGULAR 0x1 +#define I40E_AQ_CONN_TYPE_DEFAULT 0x2 +#define I40E_AQ_CONN_TYPE_CASCADED 0x3 + __le16 scheduler_id; + __le16 element_info; +}; + +/* Get Switch Configuration (indirect 0x0200) + * an array of elements are returned in the response buffer + * the first in the array is the header, remainder are elements + */ +struct i40e_aqc_get_switch_config_resp { + struct i40e_aqc_get_switch_config_header_resp header; + struct i40e_aqc_switch_config_element_resp element[1]; +}; + +/* Add Statistics (direct 0x0201) + * Remove Statistics (direct 0x0202) + */ +struct i40e_aqc_add_remove_statistics { + __le16 seid; + __le16 vlan; + __le16 stat_index; + u8 reserved[10]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_remove_statistics); + +/* Set Port Parameters command (direct 0x0203) */ +struct i40e_aqc_set_port_parameters { + __le16 command_flags; +#define I40E_AQ_SET_P_PARAMS_SAVE_BAD_PACKETS 1 +#define I40E_AQ_SET_P_PARAMS_PAD_SHORT_PACKETS 2 /* must set! */ +#define I40E_AQ_SET_P_PARAMS_DOUBLE_VLAN_ENA 4 + __le16 bad_frame_vsi; + __le16 default_seid; /* reserved for command */ + u8 reserved[10]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_set_port_parameters); + +/* Get Switch Resource Allocation (indirect 0x0204) */ +struct i40e_aqc_get_switch_resource_alloc { + u8 num_entries; /* reserved for command */ + u8 reserved[7]; + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_get_switch_resource_alloc); + +/* expect an array of these structs in the response buffer */ +struct i40e_aqc_switch_resource_alloc_element_resp { + u8 resource_type; +#define I40E_AQ_RESOURCE_TYPE_VEB 0x0 +#define I40E_AQ_RESOURCE_TYPE_VSI 0x1 +#define I40E_AQ_RESOURCE_TYPE_MACADDR 0x2 +#define I40E_AQ_RESOURCE_TYPE_STAG 0x3 +#define I40E_AQ_RESOURCE_TYPE_ETAG 0x4 +#define I40E_AQ_RESOURCE_TYPE_MULTICAST_HASH 0x5 +#define I40E_AQ_RESOURCE_TYPE_UNICAST_HASH 0x6 +#define I40E_AQ_RESOURCE_TYPE_VLAN 0x7 +#define I40E_AQ_RESOURCE_TYPE_VSI_LIST_ENTRY 0x8 +#define I40E_AQ_RESOURCE_TYPE_ETAG_LIST_ENTRY 0x9 +#define I40E_AQ_RESOURCE_TYPE_VLAN_STAT_POOL 0xA +#define I40E_AQ_RESOURCE_TYPE_MIRROR_RULE 0xB +#define I40E_AQ_RESOURCE_TYPE_QUEUE_SETS 0xC +#define I40E_AQ_RESOURCE_TYPE_VLAN_FILTERS 0xD +#define I40E_AQ_RESOURCE_TYPE_INNER_MAC_FILTERS 0xF +#define I40E_AQ_RESOURCE_TYPE_IP_FILTERS 0x10 +#define I40E_AQ_RESOURCE_TYPE_GRE_VN_KEYS 0x11 +#define I40E_AQ_RESOURCE_TYPE_VN2_KEYS 0x12 +#define I40E_AQ_RESOURCE_TYPE_TUNNEL_PORTS 0x13 + u8 reserved1; + __le16 guaranteed; + __le16 total; + __le16 used; + __le16 total_unalloced; + u8 reserved2[6]; +}; + +/* Add VSI (indirect 0x0210) + * this indirect command uses struct i40e_aqc_vsi_properties_data + * as the indirect buffer (128 bytes) + * + * Update VSI (indirect 0x211) + * uses the same data structure as Add VSI + * + * Get VSI (indirect 0x0212) + * uses the same completion and data structure as Add VSI + */ +struct i40e_aqc_add_get_update_vsi { + __le16 uplink_seid; + u8 connection_type; +#define I40E_AQ_VSI_CONN_TYPE_NORMAL 0x1 +#define I40E_AQ_VSI_CONN_TYPE_DEFAULT 0x2 +#define I40E_AQ_VSI_CONN_TYPE_CASCADED 0x3 + u8 reserved1; + u8 vf_id; + u8 reserved2; + __le16 vsi_flags; +#define I40E_AQ_VSI_TYPE_SHIFT 0x0 +#define I40E_AQ_VSI_TYPE_MASK (0x3 << I40E_AQ_VSI_TYPE_SHIFT) +#define I40E_AQ_VSI_TYPE_VF 0x0 +#define I40E_AQ_VSI_TYPE_VMDQ2 0x1 +#define I40E_AQ_VSI_TYPE_PF 0x2 +#define I40E_AQ_VSI_TYPE_EMP_MNG 0x3 +#define I40E_AQ_VSI_FLAG_CASCADED_PV 0x4 +#define I40E_AQ_VSI_FLAG_CLOUD_VSI 0x8 + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_get_update_vsi); + +struct i40e_aqc_add_get_update_vsi_completion { + __le16 seid; + __le16 vsi_number; + __le16 vsi_used; + __le16 vsi_free; + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_get_update_vsi_completion); + +struct i40e_aqc_vsi_properties_data { + /* first 96 byte are written by SW */ + __le16 valid_sections; +#define I40E_AQ_VSI_PROP_SWITCH_VALID 0x0001 +#define I40E_AQ_VSI_PROP_SECURITY_VALID 0x0002 +#define I40E_AQ_VSI_PROP_VLAN_VALID 0x0004 +#define I40E_AQ_VSI_PROP_CAS_PV_VALID 0x0008 +#define I40E_AQ_VSI_PROP_INGRESS_UP_VALID 0x0010 +#define I40E_AQ_VSI_PROP_EGRESS_UP_VALID 0x0020 +#define I40E_AQ_VSI_PROP_QUEUE_MAP_VALID 0x0040 +#define I40E_AQ_VSI_PROP_QUEUE_OPT_VALID 0x0080 +#define I40E_AQ_VSI_PROP_OUTER_UP_VALID 0x0100 +#define I40E_AQ_VSI_PROP_SCHED_VALID 0x0200 + /* switch section */ + __le16 switch_id; /* 12bit id combined with flags below */ +#define I40E_AQ_VSI_SW_ID_SHIFT 0x0000 +#define I40E_AQ_VSI_SW_ID_MASK (0xFFF << I40E_AQ_VSI_SW_ID_SHIFT) +#define I40E_AQ_VSI_SW_ID_FLAG_NOT_STAG 0x1000 +#define I40E_AQ_VSI_SW_ID_FLAG_ALLOW_LB 0x2000 +#define I40E_AQ_VSI_SW_ID_FLAG_LOCAL_LB 0x4000 + u8 sw_reserved[2]; + /* security section */ + u8 sec_flags; +#define I40E_AQ_VSI_SEC_FLAG_ALLOW_DEST_OVRD 0x01 +#define I40E_AQ_VSI_SEC_FLAG_ENABLE_VLAN_CHK 0x02 +#define I40E_AQ_VSI_SEC_FLAG_ENABLE_MAC_CHK 0x04 + u8 sec_reserved; + /* VLAN section */ + __le16 pvid; /* VLANS include priority bits */ + __le16 fcoe_pvid; + u8 port_vlan_flags; +#define I40E_AQ_VSI_PVLAN_MODE_SHIFT 0x00 +#define I40E_AQ_VSI_PVLAN_MODE_MASK (0x03 << \ + I40E_AQ_VSI_PVLAN_MODE_SHIFT) +#define I40E_AQ_VSI_PVLAN_MODE_TAGGED 0x01 +#define I40E_AQ_VSI_PVLAN_MODE_UNTAGGED 0x02 +#define I40E_AQ_VSI_PVLAN_MODE_ALL 0x03 +#define I40E_AQ_VSI_PVLAN_INSERT_PVID 0x04 +#define I40E_AQ_VSI_PVLAN_EMOD_SHIFT 0x03 +#define I40E_AQ_VSI_PVLAN_EMOD_MASK (0x3 << \ + I40E_AQ_VSI_PVLAN_EMOD_SHIFT) +#define I40E_AQ_VSI_PVLAN_EMOD_STR_BOTH 0x0 +#define I40E_AQ_VSI_PVLAN_EMOD_STR_UP 0x08 +#define I40E_AQ_VSI_PVLAN_EMOD_STR 0x10 +#define I40E_AQ_VSI_PVLAN_EMOD_NOTHING 0x18 + u8 pvlan_reserved[3]; + /* ingress egress up sections */ + __le32 ingress_table; /* bitmap, 3 bits per up */ +#define I40E_AQ_VSI_UP_TABLE_UP0_SHIFT 0 +#define I40E_AQ_VSI_UP_TABLE_UP0_MASK (0x7 << \ + I40E_AQ_VSI_UP_TABLE_UP0_SHIFT) +#define I40E_AQ_VSI_UP_TABLE_UP1_SHIFT 3 +#define I40E_AQ_VSI_UP_TABLE_UP1_MASK (0x7 << \ + I40E_AQ_VSI_UP_TABLE_UP1_SHIFT) +#define I40E_AQ_VSI_UP_TABLE_UP2_SHIFT 6 +#define I40E_AQ_VSI_UP_TABLE_UP2_MASK (0x7 << \ + I40E_AQ_VSI_UP_TABLE_UP2_SHIFT) +#define I40E_AQ_VSI_UP_TABLE_UP3_SHIFT 9 +#define I40E_AQ_VSI_UP_TABLE_UP3_MASK (0x7 << \ + I40E_AQ_VSI_UP_TABLE_UP3_SHIFT) +#define I40E_AQ_VSI_UP_TABLE_UP4_SHIFT 12 +#define I40E_AQ_VSI_UP_TABLE_UP4_MASK (0x7 << \ + I40E_AQ_VSI_UP_TABLE_UP4_SHIFT) +#define I40E_AQ_VSI_UP_TABLE_UP5_SHIFT 15 +#define I40E_AQ_VSI_UP_TABLE_UP5_MASK (0x7 << \ + I40E_AQ_VSI_UP_TABLE_UP5_SHIFT) +#define I40E_AQ_VSI_UP_TABLE_UP6_SHIFT 18 +#define I40E_AQ_VSI_UP_TABLE_UP6_MASK (0x7 << \ + I40E_AQ_VSI_UP_TABLE_UP6_SHIFT) +#define I40E_AQ_VSI_UP_TABLE_UP7_SHIFT 21 +#define I40E_AQ_VSI_UP_TABLE_UP7_MASK (0x7 << \ + I40E_AQ_VSI_UP_TABLE_UP7_SHIFT) + __le32 egress_table; /* same defines as for ingress table */ + /* cascaded PV section */ + __le16 cas_pv_tag; + u8 cas_pv_flags; +#define I40E_AQ_VSI_CAS_PV_TAGX_SHIFT 0x00 +#define I40E_AQ_VSI_CAS_PV_TAGX_MASK (0x03 << \ + I40E_AQ_VSI_CAS_PV_TAGX_SHIFT) +#define I40E_AQ_VSI_CAS_PV_TAGX_LEAVE 0x00 +#define I40E_AQ_VSI_CAS_PV_TAGX_REMOVE 0x01 +#define I40E_AQ_VSI_CAS_PV_TAGX_COPY 0x02 +#define I40E_AQ_VSI_CAS_PV_INSERT_TAG 0x10 +#define I40E_AQ_VSI_CAS_PV_ETAG_PRUNE 0x20 +#define I40E_AQ_VSI_CAS_PV_ACCEPT_HOST_TAG 0x40 + u8 cas_pv_reserved; + /* queue mapping section */ + __le16 mapping_flags; +#define I40E_AQ_VSI_QUE_MAP_CONTIG 0x0 +#define I40E_AQ_VSI_QUE_MAP_NONCONTIG 0x1 + __le16 queue_mapping[16]; +#define I40E_AQ_VSI_QUEUE_SHIFT 0x0 +#define I40E_AQ_VSI_QUEUE_MASK (0x7FF << I40E_AQ_VSI_QUEUE_SHIFT) + __le16 tc_mapping[8]; +#define I40E_AQ_VSI_TC_QUE_OFFSET_SHIFT 0 +#define I40E_AQ_VSI_TC_QUE_OFFSET_MASK (0x1FF << \ + I40E_AQ_VSI_TC_QUE_OFFSET_SHIFT) +#define I40E_AQ_VSI_TC_QUE_NUMBER_SHIFT 9 +#define I40E_AQ_VSI_TC_QUE_NUMBER_MASK (0x7 << \ + I40E_AQ_VSI_TC_QUE_NUMBER_SHIFT) + /* queueing option section */ + u8 queueing_opt_flags; +#define I40E_AQ_VSI_QUE_OPT_TCP_ENA 0x10 +#define I40E_AQ_VSI_QUE_OPT_FCOE_ENA 0x20 + u8 queueing_opt_reserved[3]; + /* scheduler section */ + u8 up_enable_bits; + u8 sched_reserved; + /* outer up section */ + __le32 outer_up_table; /* same structure and defines as ingress table */ + u8 cmd_reserved[8]; + /* last 32 bytes are written by FW */ + __le16 qs_handle[8]; +#define I40E_AQ_VSI_QS_HANDLE_INVALID 0xFFFF + __le16 stat_counter_idx; + __le16 sched_id; + u8 resp_reserved[12]; +}; + +I40E_CHECK_STRUCT_LEN(128, i40e_aqc_vsi_properties_data); + +/* Add Port Virtualizer (direct 0x0220) + * also used for update PV (direct 0x0221) but only flags are used + * (IS_CTRL_PORT only works on add PV) + */ +struct i40e_aqc_add_update_pv { + __le16 command_flags; +#define I40E_AQC_PV_FLAG_PV_TYPE 0x1 +#define I40E_AQC_PV_FLAG_FWD_UNKNOWN_STAG_EN 0x2 +#define I40E_AQC_PV_FLAG_FWD_UNKNOWN_ETAG_EN 0x4 +#define I40E_AQC_PV_FLAG_IS_CTRL_PORT 0x8 + __le16 uplink_seid; + __le16 connected_seid; + u8 reserved[10]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_update_pv); + +struct i40e_aqc_add_update_pv_completion { + /* reserved for update; for add also encodes error if rc == ENOSPC */ + __le16 pv_seid; +#define I40E_AQC_PV_ERR_FLAG_NO_PV 0x1 +#define I40E_AQC_PV_ERR_FLAG_NO_SCHED 0x2 +#define I40E_AQC_PV_ERR_FLAG_NO_COUNTER 0x4 +#define I40E_AQC_PV_ERR_FLAG_NO_ENTRY 0x8 + u8 reserved[14]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_update_pv_completion); + +/* Get PV Params (direct 0x0222) + * uses i40e_aqc_switch_seid for the descriptor + */ + +struct i40e_aqc_get_pv_params_completion { + __le16 seid; + __le16 default_stag; + __le16 pv_flags; /* same flags as add_pv */ +#define I40E_AQC_GET_PV_PV_TYPE 0x1 +#define I40E_AQC_GET_PV_FRWD_UNKNOWN_STAG 0x2 +#define I40E_AQC_GET_PV_FRWD_UNKNOWN_ETAG 0x4 + u8 reserved[8]; + __le16 default_port_seid; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_get_pv_params_completion); + +/* Add VEB (direct 0x0230) */ +struct i40e_aqc_add_veb { + __le16 uplink_seid; + __le16 downlink_seid; + __le16 veb_flags; +#define I40E_AQC_ADD_VEB_FLOATING 0x1 +#define I40E_AQC_ADD_VEB_PORT_TYPE_SHIFT 1 +#define I40E_AQC_ADD_VEB_PORT_TYPE_MASK (0x3 << \ + I40E_AQC_ADD_VEB_PORT_TYPE_SHIFT) +#define I40E_AQC_ADD_VEB_PORT_TYPE_DEFAULT 0x2 +#define I40E_AQC_ADD_VEB_PORT_TYPE_DATA 0x4 +#define I40E_AQC_ADD_VEB_ENABLE_L2_FILTER 0x8 + u8 enable_tcs; + u8 reserved[9]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_veb); + +struct i40e_aqc_add_veb_completion { + u8 reserved[6]; + __le16 switch_seid; + /* also encodes error if rc == ENOSPC; codes are the same as add_pv */ + __le16 veb_seid; +#define I40E_AQC_VEB_ERR_FLAG_NO_VEB 0x1 +#define I40E_AQC_VEB_ERR_FLAG_NO_SCHED 0x2 +#define I40E_AQC_VEB_ERR_FLAG_NO_COUNTER 0x4 +#define I40E_AQC_VEB_ERR_FLAG_NO_ENTRY 0x8 + __le16 statistic_index; + __le16 vebs_used; + __le16 vebs_free; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_veb_completion); + +/* Get VEB Parameters (direct 0x0232) + * uses i40e_aqc_switch_seid for the descriptor + */ +struct i40e_aqc_get_veb_parameters_completion { + __le16 seid; + __le16 switch_id; + __le16 veb_flags; /* only the first/last flags from 0x0230 is valid */ + __le16 statistic_index; + __le16 vebs_used; + __le16 vebs_free; + u8 reserved[4]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_get_veb_parameters_completion); + +/* Delete Element (direct 0x0243) + * uses the generic i40e_aqc_switch_seid + */ + +/* Add MAC-VLAN (indirect 0x0250) */ + +/* used for the command for most vlan commands */ +struct i40e_aqc_macvlan { + __le16 num_addresses; + __le16 seid[3]; +#define I40E_AQC_MACVLAN_CMD_SEID_NUM_SHIFT 0 +#define I40E_AQC_MACVLAN_CMD_SEID_NUM_MASK (0x3FF << \ + I40E_AQC_MACVLAN_CMD_SEID_NUM_SHIFT) +#define I40E_AQC_MACVLAN_CMD_SEID_VALID 0x8000 + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_macvlan); + +/* indirect data for command and response */ +struct i40e_aqc_add_macvlan_element_data { + u8 mac_addr[6]; + __le16 vlan_tag; + __le16 flags; +#define I40E_AQC_MACVLAN_ADD_PERFECT_MATCH 0x0001 +#define I40E_AQC_MACVLAN_ADD_HASH_MATCH 0x0002 +#define I40E_AQC_MACVLAN_ADD_IGNORE_VLAN 0x0004 +#define I40E_AQC_MACVLAN_ADD_TO_QUEUE 0x0008 + __le16 queue_number; +#define I40E_AQC_MACVLAN_CMD_QUEUE_SHIFT 0 +#define I40E_AQC_MACVLAN_CMD_QUEUE_MASK (0x7FF << \ + I40E_AQC_MACVLAN_CMD_SEID_NUM_SHIFT) + /* response section */ + u8 match_method; +#define I40E_AQC_MM_PERFECT_MATCH 0x01 +#define I40E_AQC_MM_HASH_MATCH 0x02 +#define I40E_AQC_MM_ERR_NO_RES 0xFF + u8 reserved1[3]; +}; + +struct i40e_aqc_add_remove_macvlan_completion { + __le16 perfect_mac_used; + __le16 perfect_mac_free; + __le16 unicast_hash_free; + __le16 multicast_hash_free; + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_remove_macvlan_completion); + +/* Remove MAC-VLAN (indirect 0x0251) + * uses i40e_aqc_macvlan for the descriptor + * data points to an array of num_addresses of elements + */ + +struct i40e_aqc_remove_macvlan_element_data { + u8 mac_addr[6]; + __le16 vlan_tag; + u8 flags; +#define I40E_AQC_MACVLAN_DEL_PERFECT_MATCH 0x01 +#define I40E_AQC_MACVLAN_DEL_HASH_MATCH 0x02 +#define I40E_AQC_MACVLAN_DEL_IGNORE_VLAN 0x08 +#define I40E_AQC_MACVLAN_DEL_ALL_VSIS 0x10 + u8 reserved[3]; + /* reply section */ + u8 error_code; +#define I40E_AQC_REMOVE_MACVLAN_SUCCESS 0x0 +#define I40E_AQC_REMOVE_MACVLAN_FAIL 0xFF + u8 reply_reserved[3]; +}; + +/* Add VLAN (indirect 0x0252) + * Remove VLAN (indirect 0x0253) + * use the generic i40e_aqc_macvlan for the command + */ +struct i40e_aqc_add_remove_vlan_element_data { + __le16 vlan_tag; + u8 vlan_flags; +/* flags for add VLAN */ +#define I40E_AQC_ADD_VLAN_LOCAL 0x1 +#define I40E_AQC_ADD_PVLAN_TYPE_SHIFT 1 +#define I40E_AQC_ADD_PVLAN_TYPE_MASK (0x3 << \ + I40E_AQC_ADD_PVLAN_TYPE_SHIFT) +#define I40E_AQC_ADD_PVLAN_TYPE_REGULAR 0x0 +#define I40E_AQC_ADD_PVLAN_TYPE_PRIMARY 0x2 +#define I40E_AQC_ADD_PVLAN_TYPE_SECONDARY 0x4 +#define I40E_AQC_VLAN_PTYPE_SHIFT 3 +#define I40E_AQC_VLAN_PTYPE_MASK (0x3 << I40E_AQC_VLAN_PTYPE_SHIFT) +#define I40E_AQC_VLAN_PTYPE_REGULAR_VSI 0x0 +#define I40E_AQC_VLAN_PTYPE_PROMISC_VSI 0x8 +#define I40E_AQC_VLAN_PTYPE_COMMUNITY_VSI 0x10 +#define I40E_AQC_VLAN_PTYPE_ISOLATED_VSI 0x18 +/* flags for remove VLAN */ +#define I40E_AQC_REMOVE_VLAN_ALL 0x1 + u8 reserved; + u8 result; +/* flags for add VLAN */ +#define I40E_AQC_ADD_VLAN_SUCCESS 0x0 +#define I40E_AQC_ADD_VLAN_FAIL_REQUEST 0xFE +#define I40E_AQC_ADD_VLAN_FAIL_RESOURCE 0xFF +/* flags for remove VLAN */ +#define I40E_AQC_REMOVE_VLAN_SUCCESS 0x0 +#define I40E_AQC_REMOVE_VLAN_FAIL 0xFF + u8 reserved1[3]; +}; + +struct i40e_aqc_add_remove_vlan_completion { + u8 reserved[4]; + __le16 vlans_used; + __le16 vlans_free; + __le32 addr_high; + __le32 addr_low; +}; + +/* Set VSI Promiscuous Modes (direct 0x0254) */ +struct i40e_aqc_set_vsi_promiscuous_modes { + __le16 promiscuous_flags; + __le16 valid_flags; +/* flags used for both fields above */ +#define I40E_AQC_SET_VSI_PROMISC_UNICAST 0x01 +#define I40E_AQC_SET_VSI_PROMISC_MULTICAST 0x02 +#define I40E_AQC_SET_VSI_PROMISC_BROADCAST 0x04 +#define I40E_AQC_SET_VSI_DEFAULT 0x08 +#define I40E_AQC_SET_VSI_PROMISC_VLAN 0x10 + __le16 seid; +#define I40E_AQC_VSI_PROM_CMD_SEID_MASK 0x3FF + u8 reserved[10]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_set_vsi_promiscuous_modes); + +/* Add S/E-tag command (direct 0x0255) + * Uses generic i40e_aqc_add_remove_tag_completion for completion + */ +struct i40e_aqc_add_tag { + __le16 flags; +#define I40E_AQC_ADD_TAG_FLAG_TO_QUEUE 0x0001 + __le16 seid; +#define I40E_AQC_ADD_TAG_CMD_SEID_NUM_SHIFT 0 +#define I40E_AQC_ADD_TAG_CMD_SEID_NUM_MASK (0x3FF << \ + I40E_AQC_ADD_TAG_CMD_SEID_NUM_SHIFT) + __le16 tag; + __le16 queue_number; + u8 reserved[8]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_tag); + +struct i40e_aqc_add_remove_tag_completion { + u8 reserved[12]; + __le16 tags_used; + __le16 tags_free; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_remove_tag_completion); + +/* Remove S/E-tag command (direct 0x0256) + * Uses generic i40e_aqc_add_remove_tag_completion for completion + */ +struct i40e_aqc_remove_tag { + __le16 seid; +#define I40E_AQC_REMOVE_TAG_CMD_SEID_NUM_SHIFT 0 +#define I40E_AQC_REMOVE_TAG_CMD_SEID_NUM_MASK (0x3FF << \ + I40E_AQC_REMOVE_TAG_CMD_SEID_NUM_SHIFT) + __le16 tag; + u8 reserved[12]; +}; + +/* Add multicast E-Tag (direct 0x0257) + * del multicast E-Tag (direct 0x0258) only uses pv_seid and etag fields + * and no external data + */ +struct i40e_aqc_add_remove_mcast_etag { + __le16 pv_seid; + __le16 etag; + u8 num_unicast_etags; + u8 reserved[3]; + __le32 addr_high; /* address of array of 2-byte s-tags */ + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_remove_mcast_etag); + +struct i40e_aqc_add_remove_mcast_etag_completion { + u8 reserved[4]; + __le16 mcast_etags_used; + __le16 mcast_etags_free; + __le32 addr_high; + __le32 addr_low; + +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_remove_mcast_etag_completion); + +/* Update S/E-Tag (direct 0x0259) */ +struct i40e_aqc_update_tag { + __le16 seid; +#define I40E_AQC_UPDATE_TAG_CMD_SEID_NUM_SHIFT 0 +#define I40E_AQC_UPDATE_TAG_CMD_SEID_NUM_MASK (0x3FF << \ + I40E_AQC_UPDATE_TAG_CMD_SEID_NUM_SHIFT) + __le16 old_tag; + __le16 new_tag; + u8 reserved[10]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_update_tag); + +struct i40e_aqc_update_tag_completion { + u8 reserved[12]; + __le16 tags_used; + __le16 tags_free; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_update_tag_completion); + +/* Add Control Packet filter (direct 0x025A) + * Remove Control Packet filter (direct 0x025B) + * uses the i40e_aqc_add_oveb_cloud, + * and the generic direct completion structure + */ +struct i40e_aqc_add_remove_control_packet_filter { + u8 mac[6]; + __le16 etype; + __le16 flags; +#define I40E_AQC_ADD_CONTROL_PACKET_FLAGS_IGNORE_MAC 0x0001 +#define I40E_AQC_ADD_CONTROL_PACKET_FLAGS_DROP 0x0002 +#define I40E_AQC_ADD_CONTROL_PACKET_FLAGS_TO_QUEUE 0x0004 +#define I40E_AQC_ADD_CONTROL_PACKET_FLAGS_TX 0x0008 +#define I40E_AQC_ADD_CONTROL_PACKET_FLAGS_RX 0x0000 + __le16 seid; +#define I40E_AQC_ADD_CONTROL_PACKET_CMD_SEID_NUM_SHIFT 0 +#define I40E_AQC_ADD_CONTROL_PACKET_CMD_SEID_NUM_MASK (0x3FF << \ + I40E_AQC_ADD_CONTROL_PACKET_CMD_SEID_NUM_SHIFT) + __le16 queue; + u8 reserved[2]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_remove_control_packet_filter); + +struct i40e_aqc_add_remove_control_packet_filter_completion { + __le16 mac_etype_used; + __le16 etype_used; + __le16 mac_etype_free; + __le16 etype_free; + u8 reserved[8]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_remove_control_packet_filter_completion); + +/* Add Cloud filters (indirect 0x025C) + * Remove Cloud filters (indirect 0x025D) + * uses the i40e_aqc_add_remove_cloud_filters, + * and the generic indirect completion structure + */ +struct i40e_aqc_add_remove_cloud_filters { + u8 num_filters; + u8 reserved; + __le16 seid; +#define I40E_AQC_ADD_CLOUD_CMD_SEID_NUM_SHIFT 0 +#define I40E_AQC_ADD_CLOUD_CMD_SEID_NUM_MASK (0x3FF << \ + I40E_AQC_ADD_CLOUD_CMD_SEID_NUM_SHIFT) + u8 reserved2[4]; + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_remove_cloud_filters); + +struct i40e_aqc_add_remove_cloud_filters_element_data { + u8 outer_mac[6]; + u8 inner_mac[6]; + __le16 inner_vlan; + union { + struct { + u8 reserved[12]; + u8 data[4]; + } v4; + struct { + u8 data[16]; + } v6; + } ipaddr; + __le16 flags; +#define I40E_AQC_ADD_CLOUD_FILTER_SHIFT 0 +#define I40E_AQC_ADD_CLOUD_FILTER_MASK (0x3F << \ + I40E_AQC_ADD_CLOUD_FILTER_SHIFT) +#define I40E_AQC_ADD_CLOUD_FILTER_OIP_GRE 0x0002 +#define I40E_AQC_ADD_CLOUD_FILTER_IMAC_IVLAN_GRE 0x0004 +#define I40E_AQC_ADD_CLOUD_FILTER_IMAC_IVLAN_VNL 0x0007 +/* 0x0000 reserved */ +#define I40E_AQC_ADD_CLOUD_FILTER_OIP 0x0001 +/* 0x0002 reserved */ +#define I40E_AQC_ADD_CLOUD_FILTER_IMAC_IVLAN 0x0003 +#define I40E_AQC_ADD_CLOUD_FILTER_IMAC_IVLAN_TEN_ID 0x0004 +/* 0x0005 reserved */ +#define I40E_AQC_ADD_CLOUD_FILTER_IMAC_TEN_ID 0x0006 +/* 0x0007 reserved */ +/* 0x0008 reserved */ +#define I40E_AQC_ADD_CLOUD_FILTER_OMAC 0x0009 +#define I40E_AQC_ADD_CLOUD_FILTER_IMAC 0x000A +#define I40E_AQC_ADD_CLOUD_FILTER_OMAC_TEN_ID_IMAC 0x000B +#define I40E_AQC_ADD_CLOUD_FILTER_IIP 0x000C + +#define I40E_AQC_ADD_CLOUD_FLAGS_TO_QUEUE 0x0080 +#define I40E_AQC_ADD_CLOUD_VNK_SHIFT 6 +#define I40E_AQC_ADD_CLOUD_VNK_MASK 0x00C0 +#define I40E_AQC_ADD_CLOUD_FLAGS_IPV4 0 +#define I40E_AQC_ADD_CLOUD_FLAGS_IPV6 0x0100 + +#define I40E_AQC_ADD_CLOUD_TNL_TYPE_SHIFT 9 +#define I40E_AQC_ADD_CLOUD_TNL_TYPE_MASK 0x1E00 +#define I40E_AQC_ADD_CLOUD_TNL_TYPE_XVLAN 0 +#define I40E_AQC_ADD_CLOUD_TNL_TYPE_NVGRE_OMAC 1 +#define I40E_AQC_ADD_CLOUD_TNL_TYPE_NGE 2 +#define I40E_AQC_ADD_CLOUD_TNL_TYPE_IP 3 + + __le32 tenant_id; + u8 reserved[4]; + __le16 queue_number; +#define I40E_AQC_ADD_CLOUD_QUEUE_SHIFT 0 +#define I40E_AQC_ADD_CLOUD_QUEUE_MASK (0x3F << \ + I40E_AQC_ADD_CLOUD_QUEUE_SHIFT) + u8 reserved2[14]; + /* response section */ + u8 allocation_result; +#define I40E_AQC_ADD_CLOUD_FILTER_SUCCESS 0x0 +#define I40E_AQC_ADD_CLOUD_FILTER_FAIL 0xFF + u8 response_reserved[7]; +}; + +struct i40e_aqc_remove_cloud_filters_completion { + __le16 perfect_ovlan_used; + __le16 perfect_ovlan_free; + __le16 vlan_used; + __le16 vlan_free; + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_remove_cloud_filters_completion); + +/* Add Mirror Rule (indirect or direct 0x0260) + * Delete Mirror Rule (indirect or direct 0x0261) + * note: some rule types (4,5) do not use an external buffer. + * take care to set the flags correctly. + */ +struct i40e_aqc_add_delete_mirror_rule { + __le16 seid; + __le16 rule_type; +#define I40E_AQC_MIRROR_RULE_TYPE_SHIFT 0 +#define I40E_AQC_MIRROR_RULE_TYPE_MASK (0x7 << \ + I40E_AQC_MIRROR_RULE_TYPE_SHIFT) +#define I40E_AQC_MIRROR_RULE_TYPE_VPORT_INGRESS 1 +#define I40E_AQC_MIRROR_RULE_TYPE_VPORT_EGRESS 2 +#define I40E_AQC_MIRROR_RULE_TYPE_VLAN 3 +#define I40E_AQC_MIRROR_RULE_TYPE_ALL_INGRESS 4 +#define I40E_AQC_MIRROR_RULE_TYPE_ALL_EGRESS 5 + __le16 num_entries; + __le16 destination; /* VSI for add, rule id for delete */ + __le32 addr_high; /* address of array of 2-byte VSI or VLAN ids */ + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_delete_mirror_rule); + +struct i40e_aqc_add_delete_mirror_rule_completion { + u8 reserved[2]; + __le16 rule_id; /* only used on add */ + __le16 mirror_rules_used; + __le16 mirror_rules_free; + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_delete_mirror_rule_completion); + +/* Set Storm Control Configuration (direct 0x0280) + * Get Storm Control Configuration (direct 0x0281) + * the command and response use the same descriptor structure + */ +struct i40e_aqc_set_get_storm_control_config { + __le32 broadcast_threshold; + __le32 multicast_threshold; + __le32 control_flags; +#define I40E_AQC_STORM_CONTROL_MDIPW 0x01 +#define I40E_AQC_STORM_CONTROL_MDICW 0x02 +#define I40E_AQC_STORM_CONTROL_BDIPW 0x04 +#define I40E_AQC_STORM_CONTROL_BDICW 0x08 +#define I40E_AQC_STORM_CONTROL_BIDU 0x10 +#define I40E_AQC_STORM_CONTROL_INTERVAL_SHIFT 8 +#define I40E_AQC_STORM_CONTROL_INTERVAL_MASK (0x3FF << \ + I40E_AQC_STORM_CONTROL_INTERVAL_SHIFT) + u8 reserved[4]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_set_get_storm_control_config); + +/* DCB 0x03xx*/ + +/* PFC Ignore (direct 0x0301) + * the command and response use the same descriptor structure + */ +struct i40e_aqc_pfc_ignore { + u8 tc_bitmap; + u8 command_flags; /* unused on response */ +#define I40E_AQC_PFC_IGNORE_SET 0x80 +#define I40E_AQC_PFC_IGNORE_CLEAR 0x0 + u8 reserved[14]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_pfc_ignore); + +/* DCB Update (direct 0x0302) uses the i40e_aq_desc structure + * with no parameters + */ + +/* TX scheduler 0x04xx */ + +/* Almost all the indirect commands use + * this generic struct to pass the SEID in param0 + */ +struct i40e_aqc_tx_sched_ind { + __le16 vsi_seid; + u8 reserved[6]; + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_tx_sched_ind); + +/* Several commands respond with a set of queue set handles */ +struct i40e_aqc_qs_handles_resp { + __le16 qs_handles[8]; +}; + +/* Configure VSI BW limits (direct 0x0400) */ +struct i40e_aqc_configure_vsi_bw_limit { + __le16 vsi_seid; + u8 reserved[2]; + __le16 credit; + u8 reserved1[2]; + u8 max_credit; /* 0-3, limit = 2^max */ + u8 reserved2[7]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_configure_vsi_bw_limit); + +/* Configure VSI Bandwidth Limit per Traffic Type (indirect 0x0406) + * responds with i40e_aqc_qs_handles_resp + */ +struct i40e_aqc_configure_vsi_ets_sla_bw_data { + u8 tc_valid_bits; + u8 reserved[15]; + __le16 tc_bw_credits[8]; /* FW writesback QS handles here */ + + /* 4 bits per tc 0-7, 4th bit is reserved, limit = 2^max */ + __le16 tc_bw_max[2]; + u8 reserved1[28]; +}; + +/* Configure VSI Bandwidth Allocation per Traffic Type (indirect 0x0407) + * responds with i40e_aqc_qs_handles_resp + */ +struct i40e_aqc_configure_vsi_tc_bw_data { + u8 tc_valid_bits; + u8 reserved[3]; + u8 tc_bw_credits[8]; + u8 reserved1[4]; + __le16 qs_handles[8]; +}; + +/* Query vsi bw configuration (indirect 0x0408) */ +struct i40e_aqc_query_vsi_bw_config_resp { + u8 tc_valid_bits; + u8 tc_suspended_bits; + u8 reserved[14]; + __le16 qs_handles[8]; + u8 reserved1[4]; + __le16 port_bw_limit; + u8 reserved2[2]; + u8 max_bw; /* 0-3, limit = 2^max */ + u8 reserved3[23]; +}; + +/* Query VSI Bandwidth Allocation per Traffic Type (indirect 0x040A) */ +struct i40e_aqc_query_vsi_ets_sla_config_resp { + u8 tc_valid_bits; + u8 reserved[3]; + u8 share_credits[8]; + __le16 credits[8]; + + /* 4 bits per tc 0-7, 4th bit is reserved, limit = 2^max */ + __le16 tc_bw_max[2]; +}; + +/* Configure Switching Component Bandwidth Limit (direct 0x0410) */ +struct i40e_aqc_configure_switching_comp_bw_limit { + __le16 seid; + u8 reserved[2]; + __le16 credit; + u8 reserved1[2]; + u8 max_bw; /* 0-3, limit = 2^max */ + u8 reserved2[7]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_configure_switching_comp_bw_limit); + +/* Enable Physical Port ETS (indirect 0x0413) + * Modify Physical Port ETS (indirect 0x0414) + * Disable Physical Port ETS (indirect 0x0415) + */ +struct i40e_aqc_configure_switching_comp_ets_data { + u8 reserved[4]; + u8 tc_valid_bits; + u8 reserved1; + u8 tc_strict_priority_flags; + u8 reserved2[17]; + u8 tc_bw_share_credits[8]; + u8 reserved3[96]; +}; + +/* Configure Switching Component Bandwidth Limits per Tc (indirect 0x0416) */ +struct i40e_aqc_configure_switching_comp_ets_bw_limit_data { + u8 tc_valid_bits; + u8 reserved[15]; + __le16 tc_bw_credit[8]; + + /* 4 bits per tc 0-7, 4th bit is reserved, limit = 2^max */ + __le16 tc_bw_max[2]; + u8 reserved1[28]; +}; + +/* Configure Switching Component Bandwidth Allocation per Tc + * (indirect 0x0417) + */ +struct i40e_aqc_configure_switching_comp_bw_config_data { + u8 tc_valid_bits; + u8 reserved[2]; + u8 absolute_credits; /* bool */ + u8 tc_bw_share_credits[8]; + u8 reserved1[20]; +}; + +/* Query Switching Component Configuration (indirect 0x0418) */ +struct i40e_aqc_query_switching_comp_ets_config_resp { + u8 tc_valid_bits; + u8 reserved[35]; + __le16 port_bw_limit; + u8 reserved1[2]; + u8 tc_bw_max; /* 0-3, limit = 2^max */ + u8 reserved2[23]; +}; + +/* Query PhysicalPort ETS Configuration (indirect 0x0419) */ +struct i40e_aqc_query_port_ets_config_resp { + u8 reserved[4]; + u8 tc_valid_bits; + u8 reserved1; + u8 tc_strict_priority_bits; + u8 reserved2; + u8 tc_bw_share_credits[8]; + __le16 tc_bw_limits[8]; + + /* 4 bits per tc 0-7, 4th bit reserved, limit = 2^max */ + __le16 tc_bw_max[2]; + u8 reserved3[32]; +}; + +/* Query Switching Component Bandwidth Allocation per Traffic Type + * (indirect 0x041A) + */ +struct i40e_aqc_query_switching_comp_bw_config_resp { + u8 tc_valid_bits; + u8 reserved[2]; + u8 absolute_credits_enable; /* bool */ + u8 tc_bw_share_credits[8]; + __le16 tc_bw_limits[8]; + + /* 4 bits per tc 0-7, 4th bit is reserved, limit = 2^max */ + __le16 tc_bw_max[2]; +}; + +/* Suspend/resume port TX traffic + * (direct 0x041B and 0x041C) uses the generic SEID struct + */ + +/* Get and set the active HMC resource profile and status. + * (direct 0x0500) and (direct 0x0501) + */ +struct i40e_aq_get_set_hmc_resource_profile { + u8 pm_profile; + u8 pe_vf_enabled; + u8 reserved[14]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aq_get_set_hmc_resource_profile); + +enum i40e_aq_hmc_profile { + /* I40E_HMC_PROFILE_NO_CHANGE = 0, reserved */ + I40E_HMC_PROFILE_DEFAULT = 1, + I40E_HMC_PROFILE_FAVOR_VF = 2, + I40E_HMC_PROFILE_EQUAL = 3, +}; + +#define I40E_AQ_GET_HMC_RESOURCE_PROFILE_PM_MASK 0xF +#define I40E_AQ_GET_HMC_RESOURCE_PROFILE_COUNT_MASK 0x3F + +/* Get PHY Abilities (indirect 0x0600) uses the generic indirect struct */ + +/* set in param0 for get phy abilities to report qualified modules */ +#define I40E_AQ_PHY_REPORT_QUALIFIED_MODULES 0x0001 +#define I40E_AQ_PHY_REPORT_INITIAL_VALUES 0x0002 + +enum i40e_aq_phy_type { + I40E_PHY_TYPE_SGMII = 0x0, + I40E_PHY_TYPE_1000BASE_KX = 0x1, + I40E_PHY_TYPE_10GBASE_KX4 = 0x2, + I40E_PHY_TYPE_10GBASE_KR = 0x3, + I40E_PHY_TYPE_40GBASE_KR4 = 0x4, + I40E_PHY_TYPE_XAUI = 0x5, + I40E_PHY_TYPE_XFI = 0x6, + I40E_PHY_TYPE_SFI = 0x7, + I40E_PHY_TYPE_XLAUI = 0x8, + I40E_PHY_TYPE_XLPPI = 0x9, + I40E_PHY_TYPE_40GBASE_CR4_CU = 0xA, + I40E_PHY_TYPE_10GBASE_CR1_CU = 0xB, + I40E_PHY_TYPE_100BASE_TX = 0x11, + I40E_PHY_TYPE_1000BASE_T = 0x12, + I40E_PHY_TYPE_10GBASE_T = 0x13, + I40E_PHY_TYPE_10GBASE_SR = 0x14, + I40E_PHY_TYPE_10GBASE_LR = 0x15, + I40E_PHY_TYPE_10GBASE_SFPP_CU = 0x16, + I40E_PHY_TYPE_10GBASE_CR1 = 0x17, + I40E_PHY_TYPE_40GBASE_CR4 = 0x18, + I40E_PHY_TYPE_40GBASE_SR4 = 0x19, + I40E_PHY_TYPE_40GBASE_LR4 = 0x1A, + I40E_PHY_TYPE_20GBASE_KR2 = 0x1B, + I40E_PHY_TYPE_MAX +}; + +#define I40E_LINK_SPEED_100MB_SHIFT 0x1 +#define I40E_LINK_SPEED_1000MB_SHIFT 0x2 +#define I40E_LINK_SPEED_10GB_SHIFT 0x3 +#define I40E_LINK_SPEED_40GB_SHIFT 0x4 +#define I40E_LINK_SPEED_20GB_SHIFT 0x5 + +enum i40e_aq_link_speed { + I40E_LINK_SPEED_UNKNOWN = 0, + I40E_LINK_SPEED_100MB = (1 << I40E_LINK_SPEED_100MB_SHIFT), + I40E_LINK_SPEED_1GB = (1 << I40E_LINK_SPEED_1000MB_SHIFT), + I40E_LINK_SPEED_10GB = (1 << I40E_LINK_SPEED_10GB_SHIFT), + I40E_LINK_SPEED_40GB = (1 << I40E_LINK_SPEED_40GB_SHIFT), + I40E_LINK_SPEED_20GB = (1 << I40E_LINK_SPEED_20GB_SHIFT) +}; + +struct i40e_aqc_module_desc { + u8 oui[3]; + u8 reserved1; + u8 part_number[16]; + u8 revision[4]; + u8 reserved2[8]; +}; + +struct i40e_aq_get_phy_abilities_resp { + __le32 phy_type; /* bitmap using the above enum for offsets */ + u8 link_speed; /* bitmap using the above enum bit patterns */ + u8 abilities; +#define I40E_AQ_PHY_FLAG_PAUSE_TX 0x01 +#define I40E_AQ_PHY_FLAG_PAUSE_RX 0x02 +#define I40E_AQ_PHY_FLAG_LOW_POWER 0x04 +#define I40E_AQ_PHY_FLAG_AN_SHIFT 3 +#define I40E_AQ_PHY_FLAG_AN_MASK (0x3 << I40E_AQ_PHY_FLAG_AN_SHIFT) +#define I40E_AQ_PHY_FLAG_AN_OFF 0x00 /* link forced on */ +#define I40E_AQ_PHY_FLAG_AN_OFF_LINK_DOWN 0x01 +#define I40E_AQ_PHY_FLAG_AN_ON 0x02 +#define I40E_AQ_PHY_FLAG_MODULE_QUAL 0x20 + __le16 eee_capability; +#define I40E_AQ_EEE_100BASE_TX 0x0002 +#define I40E_AQ_EEE_1000BASE_T 0x0004 +#define I40E_AQ_EEE_10GBASE_T 0x0008 +#define I40E_AQ_EEE_1000BASE_KX 0x0010 +#define I40E_AQ_EEE_10GBASE_KX4 0x0020 +#define I40E_AQ_EEE_10GBASE_KR 0x0040 + __le32 eeer_val; + u8 d3_lpan; +#define I40E_AQ_SET_PHY_D3_LPAN_ENA 0x01 + u8 reserved[3]; + u8 phy_id[4]; + u8 module_type[3]; + u8 qualified_module_count; +#define I40E_AQ_PHY_MAX_QMS 16 + struct i40e_aqc_module_desc qualified_module[I40E_AQ_PHY_MAX_QMS]; +}; + +/* Set PHY Config (direct 0x0601) */ +struct i40e_aq_set_phy_config { /* same bits as above in all */ + __le32 phy_type; + u8 link_speed; + u8 abilities; +/* bits 0-2 use the values from get_phy_abilities_resp */ +#define I40E_AQ_PHY_ENABLE_LINK 0x08 +#define I40E_AQ_PHY_ENABLE_AN 0x10 +#define I40E_AQ_PHY_ENABLE_ATOMIC_LINK 0x20 + __le16 eee_capability; + __le32 eeer; + u8 low_power_ctrl; + u8 reserved[3]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aq_set_phy_config); + +/* Set MAC Config command data structure (direct 0x0603) */ +struct i40e_aq_set_mac_config { + __le16 max_frame_size; + u8 params; +#define I40E_AQ_SET_MAC_CONFIG_CRC_EN 0x04 +#define I40E_AQ_SET_MAC_CONFIG_PACING_MASK 0x78 +#define I40E_AQ_SET_MAC_CONFIG_PACING_SHIFT 3 +#define I40E_AQ_SET_MAC_CONFIG_PACING_NONE 0x0 +#define I40E_AQ_SET_MAC_CONFIG_PACING_1B_13TX 0xF +#define I40E_AQ_SET_MAC_CONFIG_PACING_1DW_9TX 0x9 +#define I40E_AQ_SET_MAC_CONFIG_PACING_1DW_4TX 0x8 +#define I40E_AQ_SET_MAC_CONFIG_PACING_3DW_7TX 0x7 +#define I40E_AQ_SET_MAC_CONFIG_PACING_2DW_3TX 0x6 +#define I40E_AQ_SET_MAC_CONFIG_PACING_1DW_1TX 0x5 +#define I40E_AQ_SET_MAC_CONFIG_PACING_3DW_2TX 0x4 +#define I40E_AQ_SET_MAC_CONFIG_PACING_7DW_3TX 0x3 +#define I40E_AQ_SET_MAC_CONFIG_PACING_4DW_1TX 0x2 +#define I40E_AQ_SET_MAC_CONFIG_PACING_9DW_1TX 0x1 + u8 tx_timer_priority; /* bitmap */ + __le16 tx_timer_value; + __le16 fc_refresh_threshold; + u8 reserved[8]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aq_set_mac_config); + +/* Restart Auto-Negotiation (direct 0x605) */ +struct i40e_aqc_set_link_restart_an { + u8 command; +#define I40E_AQ_PHY_RESTART_AN 0x02 +#define I40E_AQ_PHY_LINK_ENABLE 0x04 + u8 reserved[15]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_set_link_restart_an); + +/* Get Link Status cmd & response data structure (direct 0x0607) */ +struct i40e_aqc_get_link_status { + __le16 command_flags; /* only field set on command */ +#define I40E_AQ_LSE_MASK 0x3 +#define I40E_AQ_LSE_NOP 0x0 +#define I40E_AQ_LSE_DISABLE 0x2 +#define I40E_AQ_LSE_ENABLE 0x3 +/* only response uses this flag */ +#define I40E_AQ_LSE_IS_ENABLED 0x1 + u8 phy_type; /* i40e_aq_phy_type */ + u8 link_speed; /* i40e_aq_link_speed */ + u8 link_info; +#define I40E_AQ_LINK_UP 0x01 +#define I40E_AQ_LINK_FAULT 0x02 +#define I40E_AQ_LINK_FAULT_TX 0x04 +#define I40E_AQ_LINK_FAULT_RX 0x08 +#define I40E_AQ_LINK_FAULT_REMOTE 0x10 +#define I40E_AQ_MEDIA_AVAILABLE 0x40 +#define I40E_AQ_SIGNAL_DETECT 0x80 + u8 an_info; +#define I40E_AQ_AN_COMPLETED 0x01 +#define I40E_AQ_LP_AN_ABILITY 0x02 +#define I40E_AQ_PD_FAULT 0x04 +#define I40E_AQ_FEC_EN 0x08 +#define I40E_AQ_PHY_LOW_POWER 0x10 +#define I40E_AQ_LINK_PAUSE_TX 0x20 +#define I40E_AQ_LINK_PAUSE_RX 0x40 +#define I40E_AQ_QUALIFIED_MODULE 0x80 + u8 ext_info; +#define I40E_AQ_LINK_PHY_TEMP_ALARM 0x01 +#define I40E_AQ_LINK_XCESSIVE_ERRORS 0x02 +#define I40E_AQ_LINK_TX_SHIFT 0x02 +#define I40E_AQ_LINK_TX_MASK (0x03 << I40E_AQ_LINK_TX_SHIFT) +#define I40E_AQ_LINK_TX_ACTIVE 0x00 +#define I40E_AQ_LINK_TX_DRAINED 0x01 +#define I40E_AQ_LINK_TX_FLUSHED 0x03 + u8 loopback; /* use defines from i40e_aqc_set_lb_mode */ + __le16 max_frame_size; + u8 config; +#define I40E_AQ_CONFIG_CRC_ENA 0x04 +#define I40E_AQ_CONFIG_PACING_MASK 0x78 + u8 reserved[5]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_get_link_status); + +/* Set event mask command (direct 0x613) */ +struct i40e_aqc_set_phy_int_mask { + u8 reserved[8]; + __le16 event_mask; +#define I40E_AQ_EVENT_LINK_UPDOWN 0x0002 +#define I40E_AQ_EVENT_MEDIA_NA 0x0004 +#define I40E_AQ_EVENT_LINK_FAULT 0x0008 +#define I40E_AQ_EVENT_PHY_TEMP_ALARM 0x0010 +#define I40E_AQ_EVENT_EXCESSIVE_ERRORS 0x0020 +#define I40E_AQ_EVENT_SIGNAL_DETECT 0x0040 +#define I40E_AQ_EVENT_AN_COMPLETED 0x0080 +#define I40E_AQ_EVENT_MODULE_QUAL_FAIL 0x0100 +#define I40E_AQ_EVENT_PORT_TX_SUSPENDED 0x0200 + u8 reserved1[6]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_set_phy_int_mask); + +/* Get Local AN advt register (direct 0x0614) + * Set Local AN advt register (direct 0x0615) + * Get Link Partner AN advt register (direct 0x0616) + */ +struct i40e_aqc_an_advt_reg { + __le32 local_an_reg0; + __le16 local_an_reg1; + u8 reserved[10]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_an_advt_reg); + +/* Set Loopback mode (0x0618) */ +struct i40e_aqc_set_lb_mode { + __le16 lb_mode; +#define I40E_AQ_LB_PHY_LOCAL 0x01 +#define I40E_AQ_LB_PHY_REMOTE 0x02 +#define I40E_AQ_LB_MAC_LOCAL 0x04 + u8 reserved[14]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_set_lb_mode); + +/* Set PHY Reset command (0x0622) */ +struct i40e_aqc_set_phy_reset { + u8 reset_flags; +#define I40E_AQ_PHY_RESET_REQUEST 0x02 + u8 reserved[15]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_set_phy_reset); + +enum i40e_aq_phy_reg_type { + I40E_AQC_PHY_REG_INTERNAL = 0x1, + I40E_AQC_PHY_REG_EXERNAL_BASET = 0x2, + I40E_AQC_PHY_REG_EXERNAL_MODULE = 0x3 +}; + +/* NVM Read command (indirect 0x0701) + * NVM Erase commands (direct 0x0702) + * NVM Update commands (indirect 0x0703) + */ +struct i40e_aqc_nvm_update { + u8 command_flags; +#define I40E_AQ_NVM_LAST_CMD 0x01 +#define I40E_AQ_NVM_FLASH_ONLY 0x80 + u8 module_pointer; + __le16 length; + __le32 offset; + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_nvm_update); + +/* Send to PF command (indirect 0x0801) id is only used by PF + * Send to VF command (indirect 0x0802) id is only used by PF + * Send to Peer PF command (indirect 0x0803) + */ +struct i40e_aqc_pf_vf_message { + __le32 id; + u8 reserved[4]; + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_pf_vf_message); + +/* Alternate structure */ + +/* Direct write (direct 0x0900) + * Direct read (direct 0x0902) + */ +struct i40e_aqc_alternate_write { + __le32 address0; + __le32 data0; + __le32 address1; + __le32 data1; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_alternate_write); + +/* Indirect write (indirect 0x0901) + * Indirect read (indirect 0x0903) + */ + +struct i40e_aqc_alternate_ind_write { + __le32 address; + __le32 length; + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_alternate_ind_write); + +/* Done alternate write (direct 0x0904) + * uses i40e_aq_desc + */ +struct i40e_aqc_alternate_write_done { + __le16 cmd_flags; +#define I40E_AQ_ALTERNATE_MODE_BIOS_MASK 1 +#define I40E_AQ_ALTERNATE_MODE_BIOS_LEGACY 0 +#define I40E_AQ_ALTERNATE_MODE_BIOS_UEFI 1 +#define I40E_AQ_ALTERNATE_RESET_NEEDED 2 + u8 reserved[14]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_alternate_write_done); + +/* Set OEM mode (direct 0x0905) */ +struct i40e_aqc_alternate_set_mode { + __le32 mode; +#define I40E_AQ_ALTERNATE_MODE_NONE 0 +#define I40E_AQ_ALTERNATE_MODE_OEM 1 + u8 reserved[12]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_alternate_set_mode); + +/* Clear port Alternate RAM (direct 0x0906) uses i40e_aq_desc */ + +/* async events 0x10xx */ + +/* Lan Queue Overflow Event (direct, 0x1001) */ +struct i40e_aqc_lan_overflow { + __le32 prtdcb_rupto; + __le32 otx_ctl; + u8 reserved[8]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_lan_overflow); + +/* Get LLDP MIB (indirect 0x0A00) */ +struct i40e_aqc_lldp_get_mib { + u8 type; + u8 reserved1; +#define I40E_AQ_LLDP_MIB_TYPE_MASK 0x3 +#define I40E_AQ_LLDP_MIB_LOCAL 0x0 +#define I40E_AQ_LLDP_MIB_REMOTE 0x1 +#define I40E_AQ_LLDP_MIB_LOCAL_AND_REMOTE 0x2 +#define I40E_AQ_LLDP_BRIDGE_TYPE_MASK 0xC +#define I40E_AQ_LLDP_BRIDGE_TYPE_SHIFT 0x2 +#define I40E_AQ_LLDP_BRIDGE_TYPE_NEAREST_BRIDGE 0x0 +#define I40E_AQ_LLDP_BRIDGE_TYPE_NON_TPMR 0x1 +#define I40E_AQ_LLDP_TX_SHIFT 0x4 +#define I40E_AQ_LLDP_TX_MASK (0x03 << I40E_AQ_LLDP_TX_SHIFT) +/* TX pause flags use I40E_AQ_LINK_TX_* above */ + __le16 local_len; + __le16 remote_len; + u8 reserved2[2]; + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_lldp_get_mib); + +/* Configure LLDP MIB Change Event (direct 0x0A01) + * also used for the event (with type in the command field) + */ +struct i40e_aqc_lldp_update_mib { + u8 command; +#define I40E_AQ_LLDP_MIB_UPDATE_ENABLE 0x0 +#define I40E_AQ_LLDP_MIB_UPDATE_DISABLE 0x1 + u8 reserved[7]; + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_lldp_update_mib); + +/* Add LLDP TLV (indirect 0x0A02) + * Delete LLDP TLV (indirect 0x0A04) + */ +struct i40e_aqc_lldp_add_tlv { + u8 type; /* only nearest bridge and non-TPMR from 0x0A00 */ + u8 reserved1[1]; + __le16 len; + u8 reserved2[4]; + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_lldp_add_tlv); + +/* Update LLDP TLV (indirect 0x0A03) */ +struct i40e_aqc_lldp_update_tlv { + u8 type; /* only nearest bridge and non-TPMR from 0x0A00 */ + u8 reserved; + __le16 old_len; + __le16 new_offset; + __le16 new_len; + __le32 addr_high; + __le32 addr_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_lldp_update_tlv); + +/* Stop LLDP (direct 0x0A05) */ +struct i40e_aqc_lldp_stop { + u8 command; +#define I40E_AQ_LLDP_AGENT_STOP 0x0 +#define I40E_AQ_LLDP_AGENT_SHUTDOWN 0x1 + u8 reserved[15]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_lldp_stop); + +/* Start LLDP (direct 0x0A06) */ + +struct i40e_aqc_lldp_start { + u8 command; +#define I40E_AQ_LLDP_AGENT_START 0x1 + u8 reserved[15]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_lldp_start); + +/* Apply MIB changes (0x0A07) + * uses the generic struc as it contains no data + */ + +/* Add Udp Tunnel command and completion (direct 0x0B00) */ +struct i40e_aqc_add_udp_tunnel { + __le16 udp_port; + u8 header_len; /* in DWords, 1 to 15 */ + u8 protocol_type; +#define I40E_AQC_TUNNEL_TYPE_TEREDO 0x0 +#define I40E_AQC_TUNNEL_TYPE_VXLAN 0x2 +#define I40E_AQC_TUNNEL_TYPE_NGE 0x3 + u8 variable_udp_length; +#define I40E_AQC_TUNNEL_FIXED_UDP_LENGTH 0x0 +#define I40E_AQC_TUNNEL_VARIABLE_UDP_LENGTH 0x1 + u8 udp_key_index; +#define I40E_AQC_TUNNEL_KEY_INDEX_VXLAN 0x0 +#define I40E_AQC_TUNNEL_KEY_INDEX_NGE 0x1 +#define I40E_AQC_TUNNEL_KEY_INDEX_PROPRIETARY_UDP 0x2 + u8 reserved[10]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_udp_tunnel); + +struct i40e_aqc_add_udp_tunnel_completion { + __le16 udp_port; + u8 filter_entry_index; + u8 multiple_pfs; +#define I40E_AQC_SINGLE_PF 0x0 +#define I40E_AQC_MULTIPLE_PFS 0x1 + u8 total_filters; + u8 reserved[11]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_add_udp_tunnel_completion); + +/* remove UDP Tunnel command (0x0B01) */ +struct i40e_aqc_remove_udp_tunnel { + u8 reserved[2]; + u8 index; /* 0 to 15 */ + u8 pf_filters; + u8 total_filters; + u8 reserved2[11]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_remove_udp_tunnel); + +struct i40e_aqc_del_udp_tunnel_completion { + __le16 udp_port; + u8 index; /* 0 to 15 */ + u8 multiple_pfs; + u8 total_filters_used; + u8 reserved; + u8 tunnels_free; + u8 reserved1[9]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_del_udp_tunnel_completion); + +/* tunnel key structure 0x0B10 */ + +struct i40e_aqc_tunnel_key_structure_A0 { + __le16 key1_off; + __le16 key1_len; + __le16 key2_off; + __le16 key2_len; + __le16 flags; +#define I40E_AQC_TUNNEL_KEY_STRUCT_OVERRIDE 0x01 +/* response flags */ +#define I40E_AQC_TUNNEL_KEY_STRUCT_SUCCESS 0x01 +#define I40E_AQC_TUNNEL_KEY_STRUCT_MODIFIED 0x02 +#define I40E_AQC_TUNNEL_KEY_STRUCT_OVERRIDDEN 0x03 + u8 resreved[6]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_tunnel_key_structure_A0); + +struct i40e_aqc_tunnel_key_structure { + u8 key1_off; + u8 key2_off; + u8 key1_len; /* 0 to 15 */ + u8 key2_len; /* 0 to 15 */ + u8 flags; +#define I40E_AQC_TUNNEL_KEY_STRUCT_OVERRIDE 0x01 +/* response flags */ +#define I40E_AQC_TUNNEL_KEY_STRUCT_SUCCESS 0x01 +#define I40E_AQC_TUNNEL_KEY_STRUCT_MODIFIED 0x02 +#define I40E_AQC_TUNNEL_KEY_STRUCT_OVERRIDDEN 0x03 + u8 network_key_index; +#define I40E_AQC_NETWORK_KEY_INDEX_VXLAN 0x0 +#define I40E_AQC_NETWORK_KEY_INDEX_NGE 0x1 +#define I40E_AQC_NETWORK_KEY_INDEX_FLEX_MAC_IN_UDP 0x2 +#define I40E_AQC_NETWORK_KEY_INDEX_GRE 0x3 + u8 reserved[10]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_tunnel_key_structure); + +/* OEM mode commands (direct 0xFE0x) */ +struct i40e_aqc_oem_param_change { + __le32 param_type; +#define I40E_AQ_OEM_PARAM_TYPE_PF_CTL 0 +#define I40E_AQ_OEM_PARAM_TYPE_BW_CTL 1 +#define I40E_AQ_OEM_PARAM_MAC 2 + __le32 param_value1; + u8 param_value2[8]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_oem_param_change); + +struct i40e_aqc_oem_state_change { + __le32 state; +#define I40E_AQ_OEM_STATE_LINK_DOWN 0x0 +#define I40E_AQ_OEM_STATE_LINK_UP 0x1 + u8 reserved[12]; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_oem_state_change); + +/* debug commands */ + +/* get device id (0xFF00) uses the generic structure */ + +/* set test more (0xFF01, internal) */ + +struct i40e_acq_set_test_mode { + u8 mode; +#define I40E_AQ_TEST_PARTIAL 0 +#define I40E_AQ_TEST_FULL 1 +#define I40E_AQ_TEST_NVM 2 + u8 reserved[3]; + u8 command; +#define I40E_AQ_TEST_OPEN 0 +#define I40E_AQ_TEST_CLOSE 1 +#define I40E_AQ_TEST_INC 2 + u8 reserved2[3]; + __le32 address_high; + __le32 address_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_acq_set_test_mode); + +/* Debug Read Register command (0xFF03) + * Debug Write Register command (0xFF04) + */ +struct i40e_aqc_debug_reg_read_write { + __le32 reserved; + __le32 address; + __le32 value_high; + __le32 value_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_debug_reg_read_write); + +/* Scatter/gather Reg Read (indirect 0xFF05) + * Scatter/gather Reg Write (indirect 0xFF06) + */ + +/* i40e_aq_desc is used for the command */ +struct i40e_aqc_debug_reg_sg_element_data { + __le32 address; + __le32 value; +}; + +/* Debug Modify register (direct 0xFF07) */ +struct i40e_aqc_debug_modify_reg { + __le32 address; + __le32 value; + __le32 clear_mask; + __le32 set_mask; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_debug_modify_reg); + +/* dump internal data (0xFF08, indirect) */ + +#define I40E_AQ_CLUSTER_ID_AUX 0 +#define I40E_AQ_CLUSTER_ID_SWITCH_FLU 1 +#define I40E_AQ_CLUSTER_ID_TXSCHED 2 +#define I40E_AQ_CLUSTER_ID_HMC 3 +#define I40E_AQ_CLUSTER_ID_MAC0 4 +#define I40E_AQ_CLUSTER_ID_MAC1 5 +#define I40E_AQ_CLUSTER_ID_MAC2 6 +#define I40E_AQ_CLUSTER_ID_MAC3 7 +#define I40E_AQ_CLUSTER_ID_DCB 8 +#define I40E_AQ_CLUSTER_ID_EMP_MEM 9 +#define I40E_AQ_CLUSTER_ID_PKT_BUF 10 +#define I40E_AQ_CLUSTER_ID_ALTRAM 11 + +struct i40e_aqc_debug_dump_internals { + u8 cluster_id; + u8 table_id; + __le16 data_size; + __le32 idx; + __le32 address_high; + __le32 address_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_debug_dump_internals); + +struct i40e_aqc_debug_modify_internals { + u8 cluster_id; + u8 cluster_specific_params[7]; + __le32 address_high; + __le32 address_low; +}; + +I40E_CHECK_CMD_LENGTH(i40e_aqc_debug_modify_internals); + +#endif --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40e_alloc.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40e_alloc.h @@ -0,0 +1,55 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#ifndef _I40E_ALLOC_H_ +#define _I40E_ALLOC_H_ + +struct i40e_hw; + +/* Memory allocation types */ +enum i40e_memory_type { + i40e_mem_arq_buf = 0, /* ARQ indirect command buffer */ + i40e_mem_asq_buf = 1, + i40e_mem_atq_buf = 2, /* ATQ indirect command buffer */ + i40e_mem_arq_ring = 3, /* ARQ descriptor ring */ + i40e_mem_atq_ring = 4, /* ATQ descriptor ring */ + i40e_mem_pd = 5, /* Page Descriptor */ + i40e_mem_bp = 6, /* Backing Page - 4KB */ + i40e_mem_bp_jumbo = 7, /* Backing Page - > 4KB */ + i40e_mem_reserved +}; + +/* prototype for functions used for dynamic memory allocation */ +i40e_status i40e_allocate_dma_mem(struct i40e_hw *hw, + struct i40e_dma_mem *mem, + enum i40e_memory_type type, + u64 size, u32 alignment); +i40e_status i40e_free_dma_mem(struct i40e_hw *hw, + struct i40e_dma_mem *mem); +i40e_status i40e_allocate_virt_mem(struct i40e_hw *hw, + struct i40e_virt_mem *mem, + u32 size); +i40e_status i40e_free_virt_mem(struct i40e_hw *hw, + struct i40e_virt_mem *mem); + +#endif /* _I40E_ALLOC_H_ */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40e_common.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40e_common.c @@ -0,0 +1,619 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#include "i40e_type.h" +#include "i40e_adminq.h" +#include "i40e_prototype.h" +#include "i40e_virtchnl.h" + +/** + * i40e_set_mac_type - Sets MAC type + * @hw: pointer to the HW structure + * + * This function sets the mac type of the adapter based on the + * vendor ID and device ID stored in the hw structure. + **/ +i40e_status i40e_set_mac_type(struct i40e_hw *hw) +{ + i40e_status status = 0; + + if (hw->vendor_id == PCI_VENDOR_ID_INTEL) { + switch (hw->device_id) { + case I40E_DEV_ID_SFP_XL710: + case I40E_DEV_ID_SFP_X710: + case I40E_DEV_ID_QEMU: + case I40E_DEV_ID_KX_A: + case I40E_DEV_ID_KX_B: + case I40E_DEV_ID_KX_C: + case I40E_DEV_ID_KX_D: + case I40E_DEV_ID_QSFP_A: + case I40E_DEV_ID_QSFP_B: + case I40E_DEV_ID_QSFP_C: + hw->mac.type = I40E_MAC_XL710; + break; + case I40E_DEV_ID_VF: + case I40E_DEV_ID_VF_HV: + hw->mac.type = I40E_MAC_VF; + break; + default: + hw->mac.type = I40E_MAC_GENERIC; + break; + } + } else { + status = I40E_ERR_DEVICE_NOT_SUPPORTED; + } + + hw_dbg(hw, "i40e_set_mac_type found mac: %d, returns: %d\n", + hw->mac.type, status); + return status; +} + +/** + * i40evf_debug_aq + * @hw: debug mask related to admin queue + * @mask: debug mask + * @desc: pointer to admin queue descriptor + * @buffer: pointer to command buffer + * + * Dumps debug log about adminq command with descriptor contents. + **/ +void i40evf_debug_aq(struct i40e_hw *hw, enum i40e_debug_mask mask, void *desc, + void *buffer) +{ + struct i40e_aq_desc *aq_desc = (struct i40e_aq_desc *)desc; + u8 *aq_buffer = (u8 *)buffer; + u32 data[4]; + u32 i = 0; + + if ((!(mask & hw->debug_mask)) || (desc == NULL)) + return; + + i40e_debug(hw, mask, + "AQ CMD: opcode 0x%04X, flags 0x%04X, datalen 0x%04X, retval 0x%04X\n", + aq_desc->opcode, aq_desc->flags, aq_desc->datalen, + aq_desc->retval); + i40e_debug(hw, mask, "\tcookie (h,l) 0x%08X 0x%08X\n", + aq_desc->cookie_high, aq_desc->cookie_low); + i40e_debug(hw, mask, "\tparam (0,1) 0x%08X 0x%08X\n", + aq_desc->params.internal.param0, + aq_desc->params.internal.param1); + i40e_debug(hw, mask, "\taddr (h,l) 0x%08X 0x%08X\n", + aq_desc->params.external.addr_high, + aq_desc->params.external.addr_low); + + if ((buffer != NULL) && (aq_desc->datalen != 0)) { + memset(data, 0, sizeof(data)); + i40e_debug(hw, mask, "AQ CMD Buffer:\n"); + for (i = 0; i < le16_to_cpu(aq_desc->datalen); i++) { + data[((i % 16) / 4)] |= + ((u32)aq_buffer[i]) << (8 * (i % 4)); + if ((i % 16) == 15) { + i40e_debug(hw, mask, + "\t0x%04X %08X %08X %08X %08X\n", + i - 15, data[0], data[1], data[2], + data[3]); + memset(data, 0, sizeof(data)); + } + } + if ((i % 16) != 0) + i40e_debug(hw, mask, "\t0x%04X %08X %08X %08X %08X\n", + i - (i % 16), data[0], data[1], data[2], + data[3]); + } +} + +/** + * i40evf_check_asq_alive + * @hw: pointer to the hw struct + * + * Returns true if Queue is enabled else false. + **/ +bool i40evf_check_asq_alive(struct i40e_hw *hw) +{ + return !!(rd32(hw, hw->aq.asq.len) & I40E_PF_ATQLEN_ATQENABLE_MASK); +} + +/** + * i40evf_aq_queue_shutdown + * @hw: pointer to the hw struct + * @unloading: is the driver unloading itself + * + * Tell the Firmware that we're shutting down the AdminQ and whether + * or not the driver is unloading as well. + **/ +i40e_status i40evf_aq_queue_shutdown(struct i40e_hw *hw, + bool unloading) +{ + struct i40e_aq_desc desc; + struct i40e_aqc_queue_shutdown *cmd = + (struct i40e_aqc_queue_shutdown *)&desc.params.raw; + i40e_status status; + + i40evf_fill_default_direct_cmd_desc(&desc, + i40e_aqc_opc_queue_shutdown); + + if (unloading) + cmd->driver_unloading = cpu_to_le32(I40E_AQ_DRIVER_UNLOADING); + status = i40evf_asq_send_command(hw, &desc, NULL, 0, NULL); + + return status; +} + + +/* The i40evf_ptype_lookup table is used to convert from the 8-bit ptype in the + * hardware to a bit-field that can be used by SW to more easily determine the + * packet type. + * + * Macros are used to shorten the table lines and make this table human + * readable. + * + * We store the PTYPE in the top byte of the bit field - this is just so that + * we can check that the table doesn't have a row missing, as the index into + * the table should be the PTYPE. + * + * Typical work flow: + * + * IF NOT i40evf_ptype_lookup[ptype].known + * THEN + * Packet is unknown + * ELSE IF i40evf_ptype_lookup[ptype].outer_ip == I40E_RX_PTYPE_OUTER_IP + * Use the rest of the fields to look at the tunnels, inner protocols, etc + * ELSE + * Use the enum i40e_rx_l2_ptype to decode the packet type + * ENDIF + */ + +/* macro to make the table lines short */ +#define I40E_PTT(PTYPE, OUTER_IP, OUTER_IP_VER, OUTER_FRAG, T, TE, TEF, I, PL)\ + { PTYPE, \ + 1, \ + I40E_RX_PTYPE_OUTER_##OUTER_IP, \ + I40E_RX_PTYPE_OUTER_##OUTER_IP_VER, \ + I40E_RX_PTYPE_##OUTER_FRAG, \ + I40E_RX_PTYPE_TUNNEL_##T, \ + I40E_RX_PTYPE_TUNNEL_END_##TE, \ + I40E_RX_PTYPE_##TEF, \ + I40E_RX_PTYPE_INNER_PROT_##I, \ + I40E_RX_PTYPE_PAYLOAD_LAYER_##PL } + +#define I40E_PTT_UNUSED_ENTRY(PTYPE) \ + { PTYPE, 0, 0, 0, 0, 0, 0, 0, 0, 0 } + +/* shorter macros makes the table fit but are terse */ +#define I40E_RX_PTYPE_NOF I40E_RX_PTYPE_NOT_FRAG +#define I40E_RX_PTYPE_FRG I40E_RX_PTYPE_FRAG +#define I40E_RX_PTYPE_INNER_PROT_TS I40E_RX_PTYPE_INNER_PROT_TIMESYNC + +/* Lookup table mapping the HW PTYPE to the bit field for decoding */ +struct i40e_rx_ptype_decoded i40evf_ptype_lookup[] = { + /* L2 Packet types */ + I40E_PTT_UNUSED_ENTRY(0), + I40E_PTT(1, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY2), + I40E_PTT(2, L2, NONE, NOF, NONE, NONE, NOF, TS, PAY2), + I40E_PTT(3, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY2), + I40E_PTT_UNUSED_ENTRY(4), + I40E_PTT_UNUSED_ENTRY(5), + I40E_PTT(6, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY2), + I40E_PTT(7, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY2), + I40E_PTT_UNUSED_ENTRY(8), + I40E_PTT_UNUSED_ENTRY(9), + I40E_PTT(10, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY2), + I40E_PTT(11, L2, NONE, NOF, NONE, NONE, NOF, NONE, NONE), + I40E_PTT(12, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(13, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(14, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(15, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(16, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(17, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(18, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(19, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(20, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(21, L2, NONE, NOF, NONE, NONE, NOF, NONE, PAY3), + + /* Non Tunneled IPv4 */ + I40E_PTT(22, IP, IPV4, FRG, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(23, IP, IPV4, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(24, IP, IPV4, NOF, NONE, NONE, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(25), + I40E_PTT(26, IP, IPV4, NOF, NONE, NONE, NOF, TCP, PAY4), + I40E_PTT(27, IP, IPV4, NOF, NONE, NONE, NOF, SCTP, PAY4), + I40E_PTT(28, IP, IPV4, NOF, NONE, NONE, NOF, ICMP, PAY4), + + /* IPv4 --> IPv4 */ + I40E_PTT(29, IP, IPV4, NOF, IP_IP, IPV4, FRG, NONE, PAY3), + I40E_PTT(30, IP, IPV4, NOF, IP_IP, IPV4, NOF, NONE, PAY3), + I40E_PTT(31, IP, IPV4, NOF, IP_IP, IPV4, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(32), + I40E_PTT(33, IP, IPV4, NOF, IP_IP, IPV4, NOF, TCP, PAY4), + I40E_PTT(34, IP, IPV4, NOF, IP_IP, IPV4, NOF, SCTP, PAY4), + I40E_PTT(35, IP, IPV4, NOF, IP_IP, IPV4, NOF, ICMP, PAY4), + + /* IPv4 --> IPv6 */ + I40E_PTT(36, IP, IPV4, NOF, IP_IP, IPV6, FRG, NONE, PAY3), + I40E_PTT(37, IP, IPV4, NOF, IP_IP, IPV6, NOF, NONE, PAY3), + I40E_PTT(38, IP, IPV4, NOF, IP_IP, IPV6, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(39), + I40E_PTT(40, IP, IPV4, NOF, IP_IP, IPV6, NOF, TCP, PAY4), + I40E_PTT(41, IP, IPV4, NOF, IP_IP, IPV6, NOF, SCTP, PAY4), + I40E_PTT(42, IP, IPV4, NOF, IP_IP, IPV6, NOF, ICMP, PAY4), + + /* IPv4 --> GRE/NAT */ + I40E_PTT(43, IP, IPV4, NOF, IP_GRENAT, NONE, NOF, NONE, PAY3), + + /* IPv4 --> GRE/NAT --> IPv4 */ + I40E_PTT(44, IP, IPV4, NOF, IP_GRENAT, IPV4, FRG, NONE, PAY3), + I40E_PTT(45, IP, IPV4, NOF, IP_GRENAT, IPV4, NOF, NONE, PAY3), + I40E_PTT(46, IP, IPV4, NOF, IP_GRENAT, IPV4, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(47), + I40E_PTT(48, IP, IPV4, NOF, IP_GRENAT, IPV4, NOF, TCP, PAY4), + I40E_PTT(49, IP, IPV4, NOF, IP_GRENAT, IPV4, NOF, SCTP, PAY4), + I40E_PTT(50, IP, IPV4, NOF, IP_GRENAT, IPV4, NOF, ICMP, PAY4), + + /* IPv4 --> GRE/NAT --> IPv6 */ + I40E_PTT(51, IP, IPV4, NOF, IP_GRENAT, IPV6, FRG, NONE, PAY3), + I40E_PTT(52, IP, IPV4, NOF, IP_GRENAT, IPV6, NOF, NONE, PAY3), + I40E_PTT(53, IP, IPV4, NOF, IP_GRENAT, IPV6, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(54), + I40E_PTT(55, IP, IPV4, NOF, IP_GRENAT, IPV6, NOF, TCP, PAY4), + I40E_PTT(56, IP, IPV4, NOF, IP_GRENAT, IPV6, NOF, SCTP, PAY4), + I40E_PTT(57, IP, IPV4, NOF, IP_GRENAT, IPV6, NOF, ICMP, PAY4), + + /* IPv4 --> GRE/NAT --> MAC */ + I40E_PTT(58, IP, IPV4, NOF, IP_GRENAT_MAC, NONE, NOF, NONE, PAY3), + + /* IPv4 --> GRE/NAT --> MAC --> IPv4 */ + I40E_PTT(59, IP, IPV4, NOF, IP_GRENAT_MAC, IPV4, FRG, NONE, PAY3), + I40E_PTT(60, IP, IPV4, NOF, IP_GRENAT_MAC, IPV4, NOF, NONE, PAY3), + I40E_PTT(61, IP, IPV4, NOF, IP_GRENAT_MAC, IPV4, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(62), + I40E_PTT(63, IP, IPV4, NOF, IP_GRENAT_MAC, IPV4, NOF, TCP, PAY4), + I40E_PTT(64, IP, IPV4, NOF, IP_GRENAT_MAC, IPV4, NOF, SCTP, PAY4), + I40E_PTT(65, IP, IPV4, NOF, IP_GRENAT_MAC, IPV4, NOF, ICMP, PAY4), + + /* IPv4 --> GRE/NAT -> MAC --> IPv6 */ + I40E_PTT(66, IP, IPV4, NOF, IP_GRENAT_MAC, IPV6, FRG, NONE, PAY3), + I40E_PTT(67, IP, IPV4, NOF, IP_GRENAT_MAC, IPV6, NOF, NONE, PAY3), + I40E_PTT(68, IP, IPV4, NOF, IP_GRENAT_MAC, IPV6, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(69), + I40E_PTT(70, IP, IPV4, NOF, IP_GRENAT_MAC, IPV6, NOF, TCP, PAY4), + I40E_PTT(71, IP, IPV4, NOF, IP_GRENAT_MAC, IPV6, NOF, SCTP, PAY4), + I40E_PTT(72, IP, IPV4, NOF, IP_GRENAT_MAC, IPV6, NOF, ICMP, PAY4), + + /* IPv4 --> GRE/NAT --> MAC/VLAN */ + I40E_PTT(73, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, NONE, NOF, NONE, PAY3), + + /* IPv4 ---> GRE/NAT -> MAC/VLAN --> IPv4 */ + I40E_PTT(74, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV4, FRG, NONE, PAY3), + I40E_PTT(75, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, NONE, PAY3), + I40E_PTT(76, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(77), + I40E_PTT(78, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, TCP, PAY4), + I40E_PTT(79, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, SCTP, PAY4), + I40E_PTT(80, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, ICMP, PAY4), + + /* IPv4 -> GRE/NAT -> MAC/VLAN --> IPv6 */ + I40E_PTT(81, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV6, FRG, NONE, PAY3), + I40E_PTT(82, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, NONE, PAY3), + I40E_PTT(83, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(84), + I40E_PTT(85, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, TCP, PAY4), + I40E_PTT(86, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, SCTP, PAY4), + I40E_PTT(87, IP, IPV4, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, ICMP, PAY4), + + /* Non Tunneled IPv6 */ + I40E_PTT(88, IP, IPV6, FRG, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(89, IP, IPV6, NOF, NONE, NONE, NOF, NONE, PAY3), + I40E_PTT(90, IP, IPV6, NOF, NONE, NONE, NOF, UDP, PAY3), + I40E_PTT_UNUSED_ENTRY(91), + I40E_PTT(92, IP, IPV6, NOF, NONE, NONE, NOF, TCP, PAY4), + I40E_PTT(93, IP, IPV6, NOF, NONE, NONE, NOF, SCTP, PAY4), + I40E_PTT(94, IP, IPV6, NOF, NONE, NONE, NOF, ICMP, PAY4), + + /* IPv6 --> IPv4 */ + I40E_PTT(95, IP, IPV6, NOF, IP_IP, IPV4, FRG, NONE, PAY3), + I40E_PTT(96, IP, IPV6, NOF, IP_IP, IPV4, NOF, NONE, PAY3), + I40E_PTT(97, IP, IPV6, NOF, IP_IP, IPV4, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(98), + I40E_PTT(99, IP, IPV6, NOF, IP_IP, IPV4, NOF, TCP, PAY4), + I40E_PTT(100, IP, IPV6, NOF, IP_IP, IPV4, NOF, SCTP, PAY4), + I40E_PTT(101, IP, IPV6, NOF, IP_IP, IPV4, NOF, ICMP, PAY4), + + /* IPv6 --> IPv6 */ + I40E_PTT(102, IP, IPV6, NOF, IP_IP, IPV6, FRG, NONE, PAY3), + I40E_PTT(103, IP, IPV6, NOF, IP_IP, IPV6, NOF, NONE, PAY3), + I40E_PTT(104, IP, IPV6, NOF, IP_IP, IPV6, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(105), + I40E_PTT(106, IP, IPV6, NOF, IP_IP, IPV6, NOF, TCP, PAY4), + I40E_PTT(107, IP, IPV6, NOF, IP_IP, IPV6, NOF, SCTP, PAY4), + I40E_PTT(108, IP, IPV6, NOF, IP_IP, IPV6, NOF, ICMP, PAY4), + + /* IPv6 --> GRE/NAT */ + I40E_PTT(109, IP, IPV6, NOF, IP_GRENAT, NONE, NOF, NONE, PAY3), + + /* IPv6 --> GRE/NAT -> IPv4 */ + I40E_PTT(110, IP, IPV6, NOF, IP_GRENAT, IPV4, FRG, NONE, PAY3), + I40E_PTT(111, IP, IPV6, NOF, IP_GRENAT, IPV4, NOF, NONE, PAY3), + I40E_PTT(112, IP, IPV6, NOF, IP_GRENAT, IPV4, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(113), + I40E_PTT(114, IP, IPV6, NOF, IP_GRENAT, IPV4, NOF, TCP, PAY4), + I40E_PTT(115, IP, IPV6, NOF, IP_GRENAT, IPV4, NOF, SCTP, PAY4), + I40E_PTT(116, IP, IPV6, NOF, IP_GRENAT, IPV4, NOF, ICMP, PAY4), + + /* IPv6 --> GRE/NAT -> IPv6 */ + I40E_PTT(117, IP, IPV6, NOF, IP_GRENAT, IPV6, FRG, NONE, PAY3), + I40E_PTT(118, IP, IPV6, NOF, IP_GRENAT, IPV6, NOF, NONE, PAY3), + I40E_PTT(119, IP, IPV6, NOF, IP_GRENAT, IPV6, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(120), + I40E_PTT(121, IP, IPV6, NOF, IP_GRENAT, IPV6, NOF, TCP, PAY4), + I40E_PTT(122, IP, IPV6, NOF, IP_GRENAT, IPV6, NOF, SCTP, PAY4), + I40E_PTT(123, IP, IPV6, NOF, IP_GRENAT, IPV6, NOF, ICMP, PAY4), + + /* IPv6 --> GRE/NAT -> MAC */ + I40E_PTT(124, IP, IPV6, NOF, IP_GRENAT_MAC, NONE, NOF, NONE, PAY3), + + /* IPv6 --> GRE/NAT -> MAC -> IPv4 */ + I40E_PTT(125, IP, IPV6, NOF, IP_GRENAT_MAC, IPV4, FRG, NONE, PAY3), + I40E_PTT(126, IP, IPV6, NOF, IP_GRENAT_MAC, IPV4, NOF, NONE, PAY3), + I40E_PTT(127, IP, IPV6, NOF, IP_GRENAT_MAC, IPV4, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(128), + I40E_PTT(129, IP, IPV6, NOF, IP_GRENAT_MAC, IPV4, NOF, TCP, PAY4), + I40E_PTT(130, IP, IPV6, NOF, IP_GRENAT_MAC, IPV4, NOF, SCTP, PAY4), + I40E_PTT(131, IP, IPV6, NOF, IP_GRENAT_MAC, IPV4, NOF, ICMP, PAY4), + + /* IPv6 --> GRE/NAT -> MAC -> IPv6 */ + I40E_PTT(132, IP, IPV6, NOF, IP_GRENAT_MAC, IPV6, FRG, NONE, PAY3), + I40E_PTT(133, IP, IPV6, NOF, IP_GRENAT_MAC, IPV6, NOF, NONE, PAY3), + I40E_PTT(134, IP, IPV6, NOF, IP_GRENAT_MAC, IPV6, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(135), + I40E_PTT(136, IP, IPV6, NOF, IP_GRENAT_MAC, IPV6, NOF, TCP, PAY4), + I40E_PTT(137, IP, IPV6, NOF, IP_GRENAT_MAC, IPV6, NOF, SCTP, PAY4), + I40E_PTT(138, IP, IPV6, NOF, IP_GRENAT_MAC, IPV6, NOF, ICMP, PAY4), + + /* IPv6 --> GRE/NAT -> MAC/VLAN */ + I40E_PTT(139, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, NONE, NOF, NONE, PAY3), + + /* IPv6 --> GRE/NAT -> MAC/VLAN --> IPv4 */ + I40E_PTT(140, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV4, FRG, NONE, PAY3), + I40E_PTT(141, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, NONE, PAY3), + I40E_PTT(142, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(143), + I40E_PTT(144, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, TCP, PAY4), + I40E_PTT(145, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, SCTP, PAY4), + I40E_PTT(146, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV4, NOF, ICMP, PAY4), + + /* IPv6 --> GRE/NAT -> MAC/VLAN --> IPv6 */ + I40E_PTT(147, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV6, FRG, NONE, PAY3), + I40E_PTT(148, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, NONE, PAY3), + I40E_PTT(149, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, UDP, PAY4), + I40E_PTT_UNUSED_ENTRY(150), + I40E_PTT(151, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, TCP, PAY4), + I40E_PTT(152, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, SCTP, PAY4), + I40E_PTT(153, IP, IPV6, NOF, IP_GRENAT_MAC_VLAN, IPV6, NOF, ICMP, PAY4), + + /* unused entries */ + I40E_PTT_UNUSED_ENTRY(154), + I40E_PTT_UNUSED_ENTRY(155), + I40E_PTT_UNUSED_ENTRY(156), + I40E_PTT_UNUSED_ENTRY(157), + I40E_PTT_UNUSED_ENTRY(158), + I40E_PTT_UNUSED_ENTRY(159), + + I40E_PTT_UNUSED_ENTRY(160), + I40E_PTT_UNUSED_ENTRY(161), + I40E_PTT_UNUSED_ENTRY(162), + I40E_PTT_UNUSED_ENTRY(163), + I40E_PTT_UNUSED_ENTRY(164), + I40E_PTT_UNUSED_ENTRY(165), + I40E_PTT_UNUSED_ENTRY(166), + I40E_PTT_UNUSED_ENTRY(167), + I40E_PTT_UNUSED_ENTRY(168), + I40E_PTT_UNUSED_ENTRY(169), + + I40E_PTT_UNUSED_ENTRY(170), + I40E_PTT_UNUSED_ENTRY(171), + I40E_PTT_UNUSED_ENTRY(172), + I40E_PTT_UNUSED_ENTRY(173), + I40E_PTT_UNUSED_ENTRY(174), + I40E_PTT_UNUSED_ENTRY(175), + I40E_PTT_UNUSED_ENTRY(176), + I40E_PTT_UNUSED_ENTRY(177), + I40E_PTT_UNUSED_ENTRY(178), + I40E_PTT_UNUSED_ENTRY(179), + + I40E_PTT_UNUSED_ENTRY(180), + I40E_PTT_UNUSED_ENTRY(181), + I40E_PTT_UNUSED_ENTRY(182), + I40E_PTT_UNUSED_ENTRY(183), + I40E_PTT_UNUSED_ENTRY(184), + I40E_PTT_UNUSED_ENTRY(185), + I40E_PTT_UNUSED_ENTRY(186), + I40E_PTT_UNUSED_ENTRY(187), + I40E_PTT_UNUSED_ENTRY(188), + I40E_PTT_UNUSED_ENTRY(189), + + I40E_PTT_UNUSED_ENTRY(190), + I40E_PTT_UNUSED_ENTRY(191), + I40E_PTT_UNUSED_ENTRY(192), + I40E_PTT_UNUSED_ENTRY(193), + I40E_PTT_UNUSED_ENTRY(194), + I40E_PTT_UNUSED_ENTRY(195), + I40E_PTT_UNUSED_ENTRY(196), + I40E_PTT_UNUSED_ENTRY(197), + I40E_PTT_UNUSED_ENTRY(198), + I40E_PTT_UNUSED_ENTRY(199), + + I40E_PTT_UNUSED_ENTRY(200), + I40E_PTT_UNUSED_ENTRY(201), + I40E_PTT_UNUSED_ENTRY(202), + I40E_PTT_UNUSED_ENTRY(203), + I40E_PTT_UNUSED_ENTRY(204), + I40E_PTT_UNUSED_ENTRY(205), + I40E_PTT_UNUSED_ENTRY(206), + I40E_PTT_UNUSED_ENTRY(207), + I40E_PTT_UNUSED_ENTRY(208), + I40E_PTT_UNUSED_ENTRY(209), + + I40E_PTT_UNUSED_ENTRY(210), + I40E_PTT_UNUSED_ENTRY(211), + I40E_PTT_UNUSED_ENTRY(212), + I40E_PTT_UNUSED_ENTRY(213), + I40E_PTT_UNUSED_ENTRY(214), + I40E_PTT_UNUSED_ENTRY(215), + I40E_PTT_UNUSED_ENTRY(216), + I40E_PTT_UNUSED_ENTRY(217), + I40E_PTT_UNUSED_ENTRY(218), + I40E_PTT_UNUSED_ENTRY(219), + + I40E_PTT_UNUSED_ENTRY(220), + I40E_PTT_UNUSED_ENTRY(221), + I40E_PTT_UNUSED_ENTRY(222), + I40E_PTT_UNUSED_ENTRY(223), + I40E_PTT_UNUSED_ENTRY(224), + I40E_PTT_UNUSED_ENTRY(225), + I40E_PTT_UNUSED_ENTRY(226), + I40E_PTT_UNUSED_ENTRY(227), + I40E_PTT_UNUSED_ENTRY(228), + I40E_PTT_UNUSED_ENTRY(229), + + I40E_PTT_UNUSED_ENTRY(230), + I40E_PTT_UNUSED_ENTRY(231), + I40E_PTT_UNUSED_ENTRY(232), + I40E_PTT_UNUSED_ENTRY(233), + I40E_PTT_UNUSED_ENTRY(234), + I40E_PTT_UNUSED_ENTRY(235), + I40E_PTT_UNUSED_ENTRY(236), + I40E_PTT_UNUSED_ENTRY(237), + I40E_PTT_UNUSED_ENTRY(238), + I40E_PTT_UNUSED_ENTRY(239), + + I40E_PTT_UNUSED_ENTRY(240), + I40E_PTT_UNUSED_ENTRY(241), + I40E_PTT_UNUSED_ENTRY(242), + I40E_PTT_UNUSED_ENTRY(243), + I40E_PTT_UNUSED_ENTRY(244), + I40E_PTT_UNUSED_ENTRY(245), + I40E_PTT_UNUSED_ENTRY(246), + I40E_PTT_UNUSED_ENTRY(247), + I40E_PTT_UNUSED_ENTRY(248), + I40E_PTT_UNUSED_ENTRY(249), + + I40E_PTT_UNUSED_ENTRY(250), + I40E_PTT_UNUSED_ENTRY(251), + I40E_PTT_UNUSED_ENTRY(252), + I40E_PTT_UNUSED_ENTRY(253), + I40E_PTT_UNUSED_ENTRY(254), + I40E_PTT_UNUSED_ENTRY(255) +}; + + +/** + * i40e_aq_send_msg_to_pf + * @hw: pointer to the hardware structure + * @v_opcode: opcodes for VF-PF communication + * @v_retval: return error code + * @msg: pointer to the msg buffer + * @msglen: msg length + * @cmd_details: pointer to command details + * + * Send message to PF driver using admin queue. By default, this message + * is sent asynchronously, i.e. i40evf_asq_send_command() does not wait for + * completion before returning. + **/ +i40e_status i40e_aq_send_msg_to_pf(struct i40e_hw *hw, + enum i40e_virtchnl_ops v_opcode, + i40e_status v_retval, + u8 *msg, u16 msglen, + struct i40e_asq_cmd_details *cmd_details) +{ + struct i40e_aq_desc desc; + i40e_status status; + + i40evf_fill_default_direct_cmd_desc(&desc, i40e_aqc_opc_send_msg_to_pf); + desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_SI); + desc.cookie_high = cpu_to_le32(v_opcode); + desc.cookie_low = cpu_to_le32(v_retval); + if (msglen) { + desc.flags |= cpu_to_le16((u16)(I40E_AQ_FLAG_BUF + | I40E_AQ_FLAG_RD)); + if (msglen > I40E_AQ_LARGE_BUF) + desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_LB); + desc.datalen = cpu_to_le16(msglen); + } + if (!cmd_details) { + struct i40e_asq_cmd_details details; + memset(&details, 0, sizeof(details)); + details.async = true; + cmd_details = &details; + } + status = i40evf_asq_send_command(hw, &desc, msg, msglen, cmd_details); + return status; +} + +/** + * i40e_vf_parse_hw_config + * @hw: pointer to the hardware structure + * @msg: pointer to the virtual channel VF resource structure + * + * Given a VF resource message from the PF, populate the hw struct + * with appropriate information. + **/ +void i40e_vf_parse_hw_config(struct i40e_hw *hw, + struct i40e_virtchnl_vf_resource *msg) +{ + struct i40e_virtchnl_vsi_resource *vsi_res; + int i; + + vsi_res = &msg->vsi_res[0]; + + hw->dev_caps.num_vsis = msg->num_vsis; + hw->dev_caps.num_rx_qp = msg->num_queue_pairs; + hw->dev_caps.num_tx_qp = msg->num_queue_pairs; + hw->dev_caps.num_msix_vectors_vf = msg->max_vectors; + hw->dev_caps.dcb = msg->vf_offload_flags & + I40E_VIRTCHNL_VF_OFFLOAD_L2; + hw->dev_caps.fcoe = (msg->vf_offload_flags & + I40E_VIRTCHNL_VF_OFFLOAD_FCOE) ? 1 : 0; + for (i = 0; i < msg->num_vsis; i++) { + if (vsi_res->vsi_type == I40E_VSI_SRIOV) { + memcpy(hw->mac.perm_addr, vsi_res->default_mac_addr, + ETH_ALEN); + memcpy(hw->mac.addr, vsi_res->default_mac_addr, + ETH_ALEN); + } + vsi_res++; + } +} + +/** + * i40e_vf_reset + * @hw: pointer to the hardware structure + * + * Send a VF_RESET message to the PF. Does not wait for response from PF + * as none will be forthcoming. Immediately after calling this function, + * the admin queue should be shut down and (optionally) reinitialized. + **/ +i40e_status i40e_vf_reset(struct i40e_hw *hw) +{ + return i40e_aq_send_msg_to_pf(hw, I40E_VIRTCHNL_OP_RESET_VF, + 0, NULL, 0, NULL); +} --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40e_hmc.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40e_hmc.h @@ -0,0 +1,238 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#ifndef _I40E_HMC_H_ +#define _I40E_HMC_H_ + +#define I40E_HMC_MAX_BP_COUNT 512 + +/* forward-declare the HW struct for the compiler */ +struct i40e_hw; + +#define I40E_HMC_INFO_SIGNATURE 0x484D5347 /* HMSG */ +#define I40E_HMC_PD_CNT_IN_SD 512 +#define I40E_HMC_DIRECT_BP_SIZE 0x200000 /* 2M */ +#define I40E_HMC_PAGED_BP_SIZE 4096 +#define I40E_HMC_PD_BP_BUF_ALIGNMENT 4096 +#define I40E_FIRST_VF_FPM_ID 16 + +struct i40e_hmc_obj_info { + u64 base; /* base addr in FPM */ + u32 max_cnt; /* max count available for this hmc func */ + u32 cnt; /* count of objects driver actually wants to create */ + u64 size; /* size in bytes of one object */ +}; + +enum i40e_sd_entry_type { + I40E_SD_TYPE_INVALID = 0, + I40E_SD_TYPE_PAGED = 1, + I40E_SD_TYPE_DIRECT = 2 +}; + +struct i40e_hmc_bp { + enum i40e_sd_entry_type entry_type; + struct i40e_dma_mem addr; /* populate to be used by hw */ + u32 sd_pd_index; + u32 ref_cnt; +}; + +struct i40e_hmc_pd_entry { + struct i40e_hmc_bp bp; + u32 sd_index; + bool valid; +}; + +struct i40e_hmc_pd_table { + struct i40e_dma_mem pd_page_addr; /* populate to be used by hw */ + struct i40e_hmc_pd_entry *pd_entry; /* [512] for sw book keeping */ + struct i40e_virt_mem pd_entry_virt_mem; /* virt mem for pd_entry */ + + u32 ref_cnt; + u32 sd_index; +}; + +struct i40e_hmc_sd_entry { + enum i40e_sd_entry_type entry_type; + bool valid; + + union { + struct i40e_hmc_pd_table pd_table; + struct i40e_hmc_bp bp; + } u; +}; + +struct i40e_hmc_sd_table { + struct i40e_virt_mem addr; /* used to track sd_entry allocations */ + u32 sd_cnt; + u32 ref_cnt; + struct i40e_hmc_sd_entry *sd_entry; /* (sd_cnt*512) entries max */ +}; + +struct i40e_hmc_info { + u32 signature; + /* equals to pci func num for PF and dynamically allocated for VFs */ + u8 hmc_fn_id; + u16 first_sd_index; /* index of the first available SD */ + + /* hmc objects */ + struct i40e_hmc_obj_info *hmc_obj; + struct i40e_virt_mem hmc_obj_virt_mem; + struct i40e_hmc_sd_table sd_table; +}; + +#define I40E_INC_SD_REFCNT(sd_table) ((sd_table)->ref_cnt++) +#define I40E_INC_PD_REFCNT(pd_table) ((pd_table)->ref_cnt++) +#define I40E_INC_BP_REFCNT(bp) ((bp)->ref_cnt++) + +#define I40E_DEC_SD_REFCNT(sd_table) ((sd_table)->ref_cnt--) +#define I40E_DEC_PD_REFCNT(pd_table) ((pd_table)->ref_cnt--) +#define I40E_DEC_BP_REFCNT(bp) ((bp)->ref_cnt--) + +/** + * I40E_SET_PF_SD_ENTRY - marks the sd entry as valid in the hardware + * @hw: pointer to our hw struct + * @pa: pointer to physical address + * @sd_index: segment descriptor index + * @type: if sd entry is direct or paged + **/ +#define I40E_SET_PF_SD_ENTRY(hw, pa, sd_index, type) \ +{ \ + u32 val1, val2, val3; \ + val1 = (u32)(upper_32_bits(pa)); \ + val2 = (u32)(pa) | (I40E_HMC_MAX_BP_COUNT << \ + I40E_PFHMC_SDDATALOW_PMSDBPCOUNT_SHIFT) | \ + ((((type) == I40E_SD_TYPE_PAGED) ? 0 : 1) << \ + I40E_PFHMC_SDDATALOW_PMSDTYPE_SHIFT) | \ + (1 << I40E_PFHMC_SDDATALOW_PMSDVALID_SHIFT); \ + val3 = (sd_index) | (1 << I40E_PFHMC_SDCMD_PMSDWR_SHIFT); \ + wr32((hw), I40E_PFHMC_SDDATAHIGH, val1); \ + wr32((hw), I40E_PFHMC_SDDATALOW, val2); \ + wr32((hw), I40E_PFHMC_SDCMD, val3); \ +} + +/** + * I40E_CLEAR_PF_SD_ENTRY - marks the sd entry as invalid in the hardware + * @hw: pointer to our hw struct + * @sd_index: segment descriptor index + * @type: if sd entry is direct or paged + **/ +#define I40E_CLEAR_PF_SD_ENTRY(hw, sd_index, type) \ +{ \ + u32 val2, val3; \ + val2 = (I40E_HMC_MAX_BP_COUNT << \ + I40E_PFHMC_SDDATALOW_PMSDBPCOUNT_SHIFT) | \ + ((((type) == I40E_SD_TYPE_PAGED) ? 0 : 1) << \ + I40E_PFHMC_SDDATALOW_PMSDTYPE_SHIFT); \ + val3 = (sd_index) | (1 << I40E_PFHMC_SDCMD_PMSDWR_SHIFT); \ + wr32((hw), I40E_PFHMC_SDDATAHIGH, 0); \ + wr32((hw), I40E_PFHMC_SDDATALOW, val2); \ + wr32((hw), I40E_PFHMC_SDCMD, val3); \ +} + +/** + * I40E_INVALIDATE_PF_HMC_PD - Invalidates the pd cache in the hardware + * @hw: pointer to our hw struct + * @sd_idx: segment descriptor index + * @pd_idx: page descriptor index + **/ +#define I40E_INVALIDATE_PF_HMC_PD(hw, sd_idx, pd_idx) \ + wr32((hw), I40E_PFHMC_PDINV, \ + (((sd_idx) << I40E_PFHMC_PDINV_PMSDIDX_SHIFT) | \ + ((pd_idx) << I40E_PFHMC_PDINV_PMPDIDX_SHIFT))) + +#define I40E_INVALIDATE_VF_HMC_PD(hw, sd_idx, pd_idx, hmc_fn_id) \ + wr32((hw), I40E_GLHMC_VFPDINV((hmc_fn_id) - I40E_FIRST_VF_FPM_ID), \ + (((sd_idx) << I40E_PFHMC_PDINV_PMSDIDX_SHIFT) | \ + ((pd_idx) << I40E_PFHMC_PDINV_PMPDIDX_SHIFT))) + +/** + * I40E_FIND_SD_INDEX_LIMIT - finds segment descriptor index limit + * @hmc_info: pointer to the HMC configuration information structure + * @type: type of HMC resources we're searching + * @index: starting index for the object + * @cnt: number of objects we're trying to create + * @sd_idx: pointer to return index of the segment descriptor in question + * @sd_limit: pointer to return the maximum number of segment descriptors + * + * This function calculates the segment descriptor index and index limit + * for the resource defined by i40e_hmc_rsrc_type. + **/ +#define I40E_FIND_SD_INDEX_LIMIT(hmc_info, type, index, cnt, sd_idx, sd_limit)\ +{ \ + u64 fpm_addr, fpm_limit; \ + fpm_addr = (hmc_info)->hmc_obj[(type)].base + \ + (hmc_info)->hmc_obj[(type)].size * (index); \ + fpm_limit = fpm_addr + (hmc_info)->hmc_obj[(type)].size * (cnt);\ + *(sd_idx) = (u32)(fpm_addr / I40E_HMC_DIRECT_BP_SIZE); \ + *(sd_limit) = (u32)((fpm_limit - 1) / I40E_HMC_DIRECT_BP_SIZE); \ + /* add one more to the limit to correct our range */ \ + *(sd_limit) += 1; \ +} + +/** + * I40E_FIND_PD_INDEX_LIMIT - finds page descriptor index limit + * @hmc_info: pointer to the HMC configuration information struct + * @type: HMC resource type we're examining + * @idx: starting index for the object + * @cnt: number of objects we're trying to create + * @pd_index: pointer to return page descriptor index + * @pd_limit: pointer to return page descriptor index limit + * + * Calculates the page descriptor index and index limit for the resource + * defined by i40e_hmc_rsrc_type. + **/ +#define I40E_FIND_PD_INDEX_LIMIT(hmc_info, type, idx, cnt, pd_index, pd_limit)\ +{ \ + u64 fpm_adr, fpm_limit; \ + fpm_adr = (hmc_info)->hmc_obj[(type)].base + \ + (hmc_info)->hmc_obj[(type)].size * (idx); \ + fpm_limit = fpm_adr + (hmc_info)->hmc_obj[(type)].size * (cnt); \ + *(pd_index) = (u32)(fpm_adr / I40E_HMC_PAGED_BP_SIZE); \ + *(pd_limit) = (u32)((fpm_limit - 1) / I40E_HMC_PAGED_BP_SIZE); \ + /* add one more to the limit to correct our range */ \ + *(pd_limit) += 1; \ +} +i40e_status i40e_add_sd_table_entry(struct i40e_hw *hw, + struct i40e_hmc_info *hmc_info, + u32 sd_index, + enum i40e_sd_entry_type type, + u64 direct_mode_sz); + +i40e_status i40e_add_pd_table_entry(struct i40e_hw *hw, + struct i40e_hmc_info *hmc_info, + u32 pd_index); +i40e_status i40e_remove_pd_bp(struct i40e_hw *hw, + struct i40e_hmc_info *hmc_info, + u32 idx, bool is_pf); +i40e_status i40e_prep_remove_sd_bp(struct i40e_hmc_info *hmc_info, + u32 idx); +i40e_status i40e_remove_sd_bp_new(struct i40e_hw *hw, + struct i40e_hmc_info *hmc_info, + u32 idx, bool is_pf); +i40e_status i40e_prep_remove_pd_page(struct i40e_hmc_info *hmc_info, + u32 idx); +i40e_status i40e_remove_pd_page_new(struct i40e_hw *hw, + struct i40e_hmc_info *hmc_info, + u32 idx, bool is_pf); + +#endif /* _I40E_HMC_H_ */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40e_lan_hmc.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40e_lan_hmc.h @@ -0,0 +1,165 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#ifndef _I40E_LAN_HMC_H_ +#define _I40E_LAN_HMC_H_ + +/* forward-declare the HW struct for the compiler */ +struct i40e_hw; + +/* HMC element context information */ + +/* Rx queue context data */ +struct i40e_hmc_obj_rxq { + u16 head; + u8 cpuid; + u64 base; + u16 qlen; +#define I40E_RXQ_CTX_DBUFF_SHIFT 7 + u8 dbuff; +#define I40E_RXQ_CTX_HBUFF_SHIFT 6 + u8 hbuff; + u8 dtype; + u8 dsize; + u8 crcstrip; + u8 fc_ena; + u8 l2tsel; + u8 hsplit_0; + u8 hsplit_1; + u8 showiv; + u16 rxmax; + u8 tphrdesc_ena; + u8 tphwdesc_ena; + u8 tphdata_ena; + u8 tphhead_ena; + u8 lrxqthresh; +}; + +/* Tx queue context data */ +struct i40e_hmc_obj_txq { + u16 head; + u8 new_context; + u64 base; + u8 fc_ena; + u8 timesync_ena; + u8 fd_ena; + u8 alt_vlan_ena; + u16 thead_wb; + u16 cpuid; + u8 head_wb_ena; + u16 qlen; + u8 tphrdesc_ena; + u8 tphrpacket_ena; + u8 tphwdesc_ena; + u64 head_wb_addr; + u32 crc; + u16 rdylist; + u8 rdylist_act; +}; + +/* for hsplit_0 field of Rx HMC context */ +enum i40e_hmc_obj_rx_hsplit_0 { + I40E_HMC_OBJ_RX_HSPLIT_0_NO_SPLIT = 0, + I40E_HMC_OBJ_RX_HSPLIT_0_SPLIT_L2 = 1, + I40E_HMC_OBJ_RX_HSPLIT_0_SPLIT_IP = 2, + I40E_HMC_OBJ_RX_HSPLIT_0_SPLIT_TCP_UDP = 4, + I40E_HMC_OBJ_RX_HSPLIT_0_SPLIT_SCTP = 8, +}; + +/* fcoe_cntx and fcoe_filt are for debugging purpose only */ +struct i40e_hmc_obj_fcoe_cntx { + u32 rsv[32]; +}; + +struct i40e_hmc_obj_fcoe_filt { + u32 rsv[8]; +}; + +/* Context sizes for LAN objects */ +enum i40e_hmc_lan_object_size { + I40E_HMC_LAN_OBJ_SZ_8 = 0x3, + I40E_HMC_LAN_OBJ_SZ_16 = 0x4, + I40E_HMC_LAN_OBJ_SZ_32 = 0x5, + I40E_HMC_LAN_OBJ_SZ_64 = 0x6, + I40E_HMC_LAN_OBJ_SZ_128 = 0x7, + I40E_HMC_LAN_OBJ_SZ_256 = 0x8, + I40E_HMC_LAN_OBJ_SZ_512 = 0x9, +}; + +#define I40E_HMC_L2OBJ_BASE_ALIGNMENT 512 +#define I40E_HMC_OBJ_SIZE_TXQ 128 +#define I40E_HMC_OBJ_SIZE_RXQ 32 +#define I40E_HMC_OBJ_SIZE_FCOE_CNTX 128 +#define I40E_HMC_OBJ_SIZE_FCOE_FILT 64 + +enum i40e_hmc_lan_rsrc_type { + I40E_HMC_LAN_FULL = 0, + I40E_HMC_LAN_TX = 1, + I40E_HMC_LAN_RX = 2, + I40E_HMC_FCOE_CTX = 3, + I40E_HMC_FCOE_FILT = 4, + I40E_HMC_LAN_MAX = 5 +}; + +enum i40e_hmc_model { + I40E_HMC_MODEL_DIRECT_PREFERRED = 0, + I40E_HMC_MODEL_DIRECT_ONLY = 1, + I40E_HMC_MODEL_PAGED_ONLY = 2, + I40E_HMC_MODEL_UNKNOWN, +}; + +struct i40e_hmc_lan_create_obj_info { + struct i40e_hmc_info *hmc_info; + u32 rsrc_type; + u32 start_idx; + u32 count; + enum i40e_sd_entry_type entry_type; + u64 direct_mode_sz; +}; + +struct i40e_hmc_lan_delete_obj_info { + struct i40e_hmc_info *hmc_info; + u32 rsrc_type; + u32 start_idx; + u32 count; +}; + +i40e_status i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num, + u32 rxq_num, u32 fcoe_cntx_num, + u32 fcoe_filt_num); +i40e_status i40e_configure_lan_hmc(struct i40e_hw *hw, + enum i40e_hmc_model model); +i40e_status i40e_shutdown_lan_hmc(struct i40e_hw *hw); + +i40e_status i40e_clear_lan_tx_queue_context(struct i40e_hw *hw, + u16 queue); +i40e_status i40e_set_lan_tx_queue_context(struct i40e_hw *hw, + u16 queue, + struct i40e_hmc_obj_txq *s); +i40e_status i40e_clear_lan_rx_queue_context(struct i40e_hw *hw, + u16 queue); +i40e_status i40e_set_lan_rx_queue_context(struct i40e_hw *hw, + u16 queue, + struct i40e_hmc_obj_rxq *s); + +#endif /* _I40E_LAN_HMC_H_ */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40e_osdep.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40e_osdep.h @@ -0,0 +1,72 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#ifndef _I40E_OSDEP_H_ +#define _I40E_OSDEP_H_ + +#include +#include +#include +#include +#include + +/* get readq/writeq support for 32 bit kernels, use the low-first version */ +#include + +/* File to be the magic between shared code and + * actual OS primitives + */ + +#define hw_dbg(hw, S, A...) do {} while (0) + +#define wr32(a, reg, value) writel((value), ((a)->hw_addr + (reg))) +#define rd32(a, reg) readl((a)->hw_addr + (reg)) + +#define wr64(a, reg, value) writeq((value), ((a)->hw_addr + (reg))) +#define rd64(a, reg) readq((a)->hw_addr + (reg)) +#define i40e_flush(a) readl((a)->hw_addr + I40E_VFGEN_RSTAT) + +/* memory allocation tracking */ +struct i40e_dma_mem { + void *va; + dma_addr_t pa; + u32 size; +} __packed; + +#define i40e_allocate_dma_mem(h, m, unused, s, a) \ + i40evf_allocate_dma_mem_d(h, m, s, a) +#define i40e_free_dma_mem(h, m) i40evf_free_dma_mem_d(h, m) + +struct i40e_virt_mem { + void *va; + u32 size; +} __packed; +#define i40e_allocate_virt_mem(h, m, s) i40evf_allocate_virt_mem_d(h, m, s) +#define i40e_free_virt_mem(h, m) i40evf_free_virt_mem_d(h, m) + +#define i40e_debug(h, m, s, ...) i40evf_debug_d(h, m, s, ##__VA_ARGS__) +extern void i40evf_debug_d(void *hw, u32 mask, char *fmt_str, ...) + __attribute__ ((format(gnu_printf, 3, 4))); + +typedef enum i40e_status_code i40e_status; +#endif /* _I40E_OSDEP_H_ */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40e_prototype.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40e_prototype.h @@ -0,0 +1,91 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#ifndef _I40E_PROTOTYPE_H_ +#define _I40E_PROTOTYPE_H_ + +#include "i40e_type.h" +#include "i40e_alloc.h" +#include "i40e_virtchnl.h" + +/* Prototypes for shared code functions that are not in + * the standard function pointer structures. These are + * mostly because they are needed even before the init + * has happened and will assist in the early SW and FW + * setup. + */ + +/* adminq functions */ +i40e_status i40evf_init_adminq(struct i40e_hw *hw); +i40e_status i40evf_shutdown_adminq(struct i40e_hw *hw); +void i40e_adminq_init_ring_data(struct i40e_hw *hw); +i40e_status i40evf_clean_arq_element(struct i40e_hw *hw, + struct i40e_arq_event_info *e, + u16 *events_pending); +i40e_status i40evf_asq_send_command(struct i40e_hw *hw, + struct i40e_aq_desc *desc, + void *buff, /* can be NULL */ + u16 buff_size, + struct i40e_asq_cmd_details *cmd_details); +bool i40evf_asq_done(struct i40e_hw *hw); + +/* debug function for adminq */ +void i40evf_debug_aq(struct i40e_hw *hw, + enum i40e_debug_mask mask, + void *desc, + void *buffer); + +void i40e_idle_aq(struct i40e_hw *hw); +void i40evf_resume_aq(struct i40e_hw *hw); +bool i40evf_check_asq_alive(struct i40e_hw *hw); +i40e_status i40evf_aq_queue_shutdown(struct i40e_hw *hw, + bool unloading); + +i40e_status i40e_set_mac_type(struct i40e_hw *hw); + +extern struct i40e_rx_ptype_decoded i40evf_ptype_lookup[]; + +static inline struct i40e_rx_ptype_decoded decode_rx_desc_ptype(u8 ptype) +{ + return i40evf_ptype_lookup[ptype]; +} + +/* prototype for functions used for SW locks */ + +/* i40e_common for VF drivers*/ +void i40e_vf_parse_hw_config(struct i40e_hw *hw, + struct i40e_virtchnl_vf_resource *msg); +i40e_status i40e_vf_reset(struct i40e_hw *hw); +i40e_status i40e_aq_send_msg_to_pf(struct i40e_hw *hw, + enum i40e_virtchnl_ops v_opcode, + i40e_status v_retval, + u8 *msg, u16 msglen, + struct i40e_asq_cmd_details *cmd_details); +i40e_status i40e_set_filter_control(struct i40e_hw *hw, + struct i40e_filter_control_settings *settings); +i40e_status i40e_aq_add_rem_control_packet_filter(struct i40e_hw *hw, + u8 *mac_addr, u16 ethtype, u16 flags, + u16 vsi_seid, u16 queue, bool is_add, + struct i40e_control_filter_stats *stats, + struct i40e_asq_cmd_details *cmd_details); +#endif /* _I40E_PROTOTYPE_H_ */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40e_register.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40e_register.h @@ -0,0 +1,4667 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#ifndef _I40E_REGISTER_H_ +#define _I40E_REGISTER_H_ + +#define I40E_GL_GP_FUSE(_i) (0x0009400C + ((_i) * 4)) /* _i=0...28 */ +#define I40E_GL_GP_FUSE_MAX_INDEX 28 +#define I40E_GL_GP_FUSE_GL_GP_FUSE_SHIFT 0 +#define I40E_GL_GP_FUSE_GL_GP_FUSE_MASK (0xFFFFFFFF << I40E_GL_GP_FUSE_GL_GP_FUSE_SHIFT) +#define I40E_GLPCI_PM_MUX_NPQ 0x0009C4F4 +#define I40E_GLPCI_PM_MUX_NPQ_NPQ_NUM_PORT_SEL_SHIFT 0 +#define I40E_GLPCI_PM_MUX_NPQ_NPQ_NUM_PORT_SEL_MASK (0x7 << I40E_GLPCI_PM_MUX_NPQ_NPQ_NUM_PORT_SEL_SHIFT) +#define I40E_GLPCI_PM_MUX_NPQ_INNER_NPQ_SEL_SHIFT 16 +#define I40E_GLPCI_PM_MUX_NPQ_INNER_NPQ_SEL_MASK (0x1F << I40E_GLPCI_PM_MUX_NPQ_INNER_NPQ_SEL_SHIFT) +#define I40E_GLPCI_PM_MUX_PFB 0x0009C4F0 +#define I40E_GLPCI_PM_MUX_PFB_PFB_PORT_SEL_SHIFT 0 +#define I40E_GLPCI_PM_MUX_PFB_PFB_PORT_SEL_MASK (0x1F << I40E_GLPCI_PM_MUX_PFB_PFB_PORT_SEL_SHIFT) +#define I40E_GLPCI_PM_MUX_PFB_INNER_PORT_SEL_SHIFT 16 +#define I40E_GLPCI_PM_MUX_PFB_INNER_PORT_SEL_MASK (0x7 << I40E_GLPCI_PM_MUX_PFB_INNER_PORT_SEL_SHIFT) +#define I40E_GLPCI_PQ_MAX_USED_SPC 0x0009C4EC +#define I40E_GLPCI_PQ_MAX_USED_SPC_GLPCI_PQ_MAX_USED_SPC_12_SHIFT 0 +#define I40E_GLPCI_PQ_MAX_USED_SPC_GLPCI_PQ_MAX_USED_SPC_12_MASK (0xFF << I40E_GLPCI_PQ_MAX_USED_SPC_GLPCI_PQ_MAX_USED_SPC_12_SHIFT) +#define I40E_GLPCI_PQ_MAX_USED_SPC_GLPCI_PQ_MAX_USED_SPC_13_SHIFT 8 +#define I40E_GLPCI_PQ_MAX_USED_SPC_GLPCI_PQ_MAX_USED_SPC_13_MASK (0xFF << I40E_GLPCI_PQ_MAX_USED_SPC_GLPCI_PQ_MAX_USED_SPC_13_SHIFT) +#define I40E_GLPCI_SPARE_BITS_0 0x0009C4F8 +#define I40E_GLPCI_SPARE_BITS_0_SPARE_BITS_SHIFT 0 +#define I40E_GLPCI_SPARE_BITS_0_SPARE_BITS_MASK (0xFFFFFFFF << I40E_GLPCI_SPARE_BITS_0_SPARE_BITS_SHIFT) +#define I40E_GLPCI_SPARE_BITS_1 0x0009C4FC +#define I40E_GLPCI_SPARE_BITS_1_SPARE_BITS_SHIFT 0 +#define I40E_GLPCI_SPARE_BITS_1_SPARE_BITS_MASK (0xFFFFFFFF << I40E_GLPCI_SPARE_BITS_1_SPARE_BITS_SHIFT) +#define I40E_PFPCI_PF_FLUSH_DONE 0x0009C800 +#define I40E_PFPCI_PF_FLUSH_DONE_FLUSH_DONE_SHIFT 0 +#define I40E_PFPCI_PF_FLUSH_DONE_FLUSH_DONE_MASK (0x1 << I40E_PFPCI_PF_FLUSH_DONE_FLUSH_DONE_SHIFT) +#define I40E_PFPCI_VF_FLUSH_DONE 0x0009C600 +#define I40E_PFPCI_VF_FLUSH_DONE_FLUSH_DONE_SHIFT 0 +#define I40E_PFPCI_VF_FLUSH_DONE_FLUSH_DONE_MASK (0x1 << I40E_PFPCI_VF_FLUSH_DONE_FLUSH_DONE_SHIFT) +#define I40E_PFPCI_VF_FLUSH_DONE1(_VF) (0x0009C600 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_PFPCI_VF_FLUSH_DONE1_MAX_INDEX 127 +#define I40E_PFPCI_VF_FLUSH_DONE1_FLUSH_DONE_SHIFT 0 +#define I40E_PFPCI_VF_FLUSH_DONE1_FLUSH_DONE_MASK (0x1 << I40E_PFPCI_VF_FLUSH_DONE1_FLUSH_DONE_SHIFT) +#define I40E_PFPCI_VM_FLUSH_DONE 0x0009C880 +#define I40E_PFPCI_VM_FLUSH_DONE_FLUSH_DONE_SHIFT 0 +#define I40E_PFPCI_VM_FLUSH_DONE_FLUSH_DONE_MASK (0x1 << I40E_PFPCI_VM_FLUSH_DONE_FLUSH_DONE_SHIFT) + +#define I40E_PF_ARQBAH 0x00080180 +#define I40E_PF_ARQBAH_ARQBAH_SHIFT 0 +#define I40E_PF_ARQBAH_ARQBAH_MASK (0xFFFFFFFF << I40E_PF_ARQBAH_ARQBAH_SHIFT) +#define I40E_PF_ARQBAL 0x00080080 +#define I40E_PF_ARQBAL_ARQBAL_SHIFT 0 +#define I40E_PF_ARQBAL_ARQBAL_MASK (0xFFFFFFFF << I40E_PF_ARQBAL_ARQBAL_SHIFT) +#define I40E_PF_ARQH 0x00080380 +#define I40E_PF_ARQH_ARQH_SHIFT 0 +#define I40E_PF_ARQH_ARQH_MASK (0x3FF << I40E_PF_ARQH_ARQH_SHIFT) +#define I40E_PF_ARQLEN 0x00080280 +#define I40E_PF_ARQLEN_ARQLEN_SHIFT 0 +#define I40E_PF_ARQLEN_ARQLEN_MASK (0x3FF << I40E_PF_ARQLEN_ARQLEN_SHIFT) +#define I40E_PF_ARQLEN_ARQVFE_SHIFT 28 +#define I40E_PF_ARQLEN_ARQVFE_MASK (0x1 << I40E_PF_ARQLEN_ARQVFE_SHIFT) +#define I40E_PF_ARQLEN_ARQOVFL_SHIFT 29 +#define I40E_PF_ARQLEN_ARQOVFL_MASK (0x1 << I40E_PF_ARQLEN_ARQOVFL_SHIFT) +#define I40E_PF_ARQLEN_ARQCRIT_SHIFT 30 +#define I40E_PF_ARQLEN_ARQCRIT_MASK (0x1 << I40E_PF_ARQLEN_ARQCRIT_SHIFT) +#define I40E_PF_ARQLEN_ARQENABLE_SHIFT 31 +#define I40E_PF_ARQLEN_ARQENABLE_MASK (0x1 << I40E_PF_ARQLEN_ARQENABLE_SHIFT) +#define I40E_PF_ARQT 0x00080480 +#define I40E_PF_ARQT_ARQT_SHIFT 0 +#define I40E_PF_ARQT_ARQT_MASK (0x3FF << I40E_PF_ARQT_ARQT_SHIFT) +#define I40E_PF_ATQBAH 0x00080100 +#define I40E_PF_ATQBAH_ATQBAH_SHIFT 0 +#define I40E_PF_ATQBAH_ATQBAH_MASK (0xFFFFFFFF << I40E_PF_ATQBAH_ATQBAH_SHIFT) +#define I40E_PF_ATQBAL 0x00080000 +#define I40E_PF_ATQBAL_ATQBAL_SHIFT 0 +#define I40E_PF_ATQBAL_ATQBAL_MASK (0xFFFFFFFF << I40E_PF_ATQBAL_ATQBAL_SHIFT) +#define I40E_PF_ATQH 0x00080300 +#define I40E_PF_ATQH_ATQH_SHIFT 0 +#define I40E_PF_ATQH_ATQH_MASK (0x3FF << I40E_PF_ATQH_ATQH_SHIFT) +#define I40E_PF_ATQLEN 0x00080200 +#define I40E_PF_ATQLEN_ATQLEN_SHIFT 0 +#define I40E_PF_ATQLEN_ATQLEN_MASK (0x3FF << I40E_PF_ATQLEN_ATQLEN_SHIFT) +#define I40E_PF_ATQLEN_ATQVFE_SHIFT 28 +#define I40E_PF_ATQLEN_ATQVFE_MASK (0x1 << I40E_PF_ATQLEN_ATQVFE_SHIFT) +#define I40E_PF_ATQLEN_ATQOVFL_SHIFT 29 +#define I40E_PF_ATQLEN_ATQOVFL_MASK (0x1 << I40E_PF_ATQLEN_ATQOVFL_SHIFT) +#define I40E_PF_ATQLEN_ATQCRIT_SHIFT 30 +#define I40E_PF_ATQLEN_ATQCRIT_MASK (0x1 << I40E_PF_ATQLEN_ATQCRIT_SHIFT) +#define I40E_PF_ATQLEN_ATQENABLE_SHIFT 31 +#define I40E_PF_ATQLEN_ATQENABLE_MASK (0x1 << I40E_PF_ATQLEN_ATQENABLE_SHIFT) +#define I40E_PF_ATQT 0x00080400 +#define I40E_PF_ATQT_ATQT_SHIFT 0 +#define I40E_PF_ATQT_ATQT_MASK (0x3FF << I40E_PF_ATQT_ATQT_SHIFT) +#define I40E_VF_ARQBAH(_VF) (0x00081400 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VF_ARQBAH_MAX_INDEX 127 +#define I40E_VF_ARQBAH_ARQBAH_SHIFT 0 +#define I40E_VF_ARQBAH_ARQBAH_MASK (0xFFFFFFFF << I40E_VF_ARQBAH_ARQBAH_SHIFT) +#define I40E_VF_ARQBAL(_VF) (0x00080C00 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VF_ARQBAL_MAX_INDEX 127 +#define I40E_VF_ARQBAL_ARQBAL_SHIFT 0 +#define I40E_VF_ARQBAL_ARQBAL_MASK (0xFFFFFFFF << I40E_VF_ARQBAL_ARQBAL_SHIFT) +#define I40E_VF_ARQH(_VF) (0x00082400 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VF_ARQH_MAX_INDEX 127 +#define I40E_VF_ARQH_ARQH_SHIFT 0 +#define I40E_VF_ARQH_ARQH_MASK (0x3FF << I40E_VF_ARQH_ARQH_SHIFT) +#define I40E_VF_ARQLEN(_VF) (0x00081C00 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VF_ARQLEN_MAX_INDEX 127 +#define I40E_VF_ARQLEN_ARQLEN_SHIFT 0 +#define I40E_VF_ARQLEN_ARQLEN_MASK (0x3FF << I40E_VF_ARQLEN_ARQLEN_SHIFT) +#define I40E_VF_ARQLEN_ARQVFE_SHIFT 28 +#define I40E_VF_ARQLEN_ARQVFE_MASK (0x1 << I40E_VF_ARQLEN_ARQVFE_SHIFT) +#define I40E_VF_ARQLEN_ARQOVFL_SHIFT 29 +#define I40E_VF_ARQLEN_ARQOVFL_MASK (0x1 << I40E_VF_ARQLEN_ARQOVFL_SHIFT) +#define I40E_VF_ARQLEN_ARQCRIT_SHIFT 30 +#define I40E_VF_ARQLEN_ARQCRIT_MASK (0x1 << I40E_VF_ARQLEN_ARQCRIT_SHIFT) +#define I40E_VF_ARQLEN_ARQENABLE_SHIFT 31 +#define I40E_VF_ARQLEN_ARQENABLE_MASK (0x1 << I40E_VF_ARQLEN_ARQENABLE_SHIFT) +#define I40E_VF_ARQT(_VF) (0x00082C00 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VF_ARQT_MAX_INDEX 127 +#define I40E_VF_ARQT_ARQT_SHIFT 0 +#define I40E_VF_ARQT_ARQT_MASK (0x3FF << I40E_VF_ARQT_ARQT_SHIFT) +#define I40E_VF_ATQBAH(_VF) (0x00081000 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VF_ATQBAH_MAX_INDEX 127 +#define I40E_VF_ATQBAH_ATQBAH_SHIFT 0 +#define I40E_VF_ATQBAH_ATQBAH_MASK (0xFFFFFFFF << I40E_VF_ATQBAH_ATQBAH_SHIFT) +#define I40E_VF_ATQBAL(_VF) (0x00080800 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VF_ATQBAL_MAX_INDEX 127 +#define I40E_VF_ATQBAL_ATQBAL_SHIFT 0 +#define I40E_VF_ATQBAL_ATQBAL_MASK (0xFFFFFFFF << I40E_VF_ATQBAL_ATQBAL_SHIFT) +#define I40E_VF_ATQH(_VF) (0x00082000 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VF_ATQH_MAX_INDEX 127 +#define I40E_VF_ATQH_ATQH_SHIFT 0 +#define I40E_VF_ATQH_ATQH_MASK (0x3FF << I40E_VF_ATQH_ATQH_SHIFT) +#define I40E_VF_ATQLEN(_VF) (0x00081800 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VF_ATQLEN_MAX_INDEX 127 +#define I40E_VF_ATQLEN_ATQLEN_SHIFT 0 +#define I40E_VF_ATQLEN_ATQLEN_MASK (0x3FF << I40E_VF_ATQLEN_ATQLEN_SHIFT) +#define I40E_VF_ATQLEN_ATQVFE_SHIFT 28 +#define I40E_VF_ATQLEN_ATQVFE_MASK (0x1 << I40E_VF_ATQLEN_ATQVFE_SHIFT) +#define I40E_VF_ATQLEN_ATQOVFL_SHIFT 29 +#define I40E_VF_ATQLEN_ATQOVFL_MASK (0x1 << I40E_VF_ATQLEN_ATQOVFL_SHIFT) +#define I40E_VF_ATQLEN_ATQCRIT_SHIFT 30 +#define I40E_VF_ATQLEN_ATQCRIT_MASK (0x1 << I40E_VF_ATQLEN_ATQCRIT_SHIFT) +#define I40E_VF_ATQLEN_ATQENABLE_SHIFT 31 +#define I40E_VF_ATQLEN_ATQENABLE_MASK (0x1 << I40E_VF_ATQLEN_ATQENABLE_SHIFT) +#define I40E_VF_ATQT(_VF) (0x00082800 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VF_ATQT_MAX_INDEX 127 +#define I40E_VF_ATQT_ATQT_SHIFT 0 +#define I40E_VF_ATQT_ATQT_MASK (0x3FF << I40E_VF_ATQT_ATQT_SHIFT) +#define I40E_PRT_L2TAGSEN 0x001C0B20 +#define I40E_PRT_L2TAGSEN_ENABLE_SHIFT 0 +#define I40E_PRT_L2TAGSEN_ENABLE_MASK (0xFF << I40E_PRT_L2TAGSEN_ENABLE_SHIFT) +#define I40E_PFCM_LAN_ERRDATA 0x0010C080 +#define I40E_PFCM_LAN_ERRDATA_ERROR_CODE_SHIFT 0 +#define I40E_PFCM_LAN_ERRDATA_ERROR_CODE_MASK (0xF << I40E_PFCM_LAN_ERRDATA_ERROR_CODE_SHIFT) +#define I40E_PFCM_LAN_ERRDATA_Q_TYPE_SHIFT 4 +#define I40E_PFCM_LAN_ERRDATA_Q_TYPE_MASK (0x7 << I40E_PFCM_LAN_ERRDATA_Q_TYPE_SHIFT) +#define I40E_PFCM_LAN_ERRDATA_Q_NUM_SHIFT 8 +#define I40E_PFCM_LAN_ERRDATA_Q_NUM_MASK (0xFFF << I40E_PFCM_LAN_ERRDATA_Q_NUM_SHIFT) +#define I40E_PFCM_LAN_ERRINFO 0x0010C000 +#define I40E_PFCM_LAN_ERRINFO_ERROR_VALID_SHIFT 0 +#define I40E_PFCM_LAN_ERRINFO_ERROR_VALID_MASK (0x1 << I40E_PFCM_LAN_ERRINFO_ERROR_VALID_SHIFT) +#define I40E_PFCM_LAN_ERRINFO_ERROR_INST_SHIFT 4 +#define I40E_PFCM_LAN_ERRINFO_ERROR_INST_MASK (0x7 << I40E_PFCM_LAN_ERRINFO_ERROR_INST_SHIFT) +#define I40E_PFCM_LAN_ERRINFO_DBL_ERROR_CNT_SHIFT 8 +#define I40E_PFCM_LAN_ERRINFO_DBL_ERROR_CNT_MASK (0xFF << I40E_PFCM_LAN_ERRINFO_DBL_ERROR_CNT_SHIFT) +#define I40E_PFCM_LAN_ERRINFO_RLU_ERROR_CNT_SHIFT 16 +#define I40E_PFCM_LAN_ERRINFO_RLU_ERROR_CNT_MASK (0xFF << I40E_PFCM_LAN_ERRINFO_RLU_ERROR_CNT_SHIFT) +#define I40E_PFCM_LAN_ERRINFO_RLS_ERROR_CNT_SHIFT 24 +#define I40E_PFCM_LAN_ERRINFO_RLS_ERROR_CNT_MASK (0xFF << I40E_PFCM_LAN_ERRINFO_RLS_ERROR_CNT_SHIFT) +#define I40E_PFCM_LANCTXCTL(_pf) (0x0010C300 + ((_pf) * 4))/* _pf=0..15 */ +#define I40E_PFCM_LANCTXCTL_QUEUE_NUM_SHIFT 0 +#define I40E_PFCM_LANCTXCTL_QUEUE_NUM_MASK (0xFFF << I40E_PFCM_LANCTXCTL_QUEUE_NUM_SHIFT) +#define I40E_PFCM_LANCTXCTL_SUB_LINE_SHIFT 12 +#define I40E_PFCM_LANCTXCTL_SUB_LINE_MASK (0x7 << I40E_PFCM_LANCTXCTL_SUB_LINE_SHIFT) +#define I40E_PFCM_LANCTXCTL_QUEUE_TYPE_SHIFT 15 +#define I40E_PFCM_LANCTXCTL_QUEUE_TYPE_MASK (0x3 << I40E_PFCM_LANCTXCTL_QUEUE_TYPE_SHIFT) +#define I40E_PFCM_LANCTXCTL_OP_CODE_SHIFT 17 +#define I40E_PFCM_LANCTXCTL_OP_CODE_MASK (0x3 << I40E_PFCM_LANCTXCTL_OP_CODE_SHIFT) +#define I40E_PFCM_LANCTXDATA(_i, _pf) (0x0010C100 + ((_i) * 4) + ((_pf) * 16))/* _i=0...3 _pf=0..15 */ +#define I40E_PFCM_LANCTXDATA_MAX_INDEX 3 +#define I40E_PFCM_LANCTXDATA_DATA_SHIFT 0 +#define I40E_PFCM_LANCTXDATA_DATA_MASK (0xFFFFFFFF << I40E_PFCM_LANCTXDATA_DATA_SHIFT) +#define I40E_PFCM_LANCTXSTAT(_pf) (0x0010C380 + ((_pf) * 4))/* _pf=0..15 */ +#define I40E_PFCM_LANCTXSTAT_CTX_DONE_SHIFT 0 +#define I40E_PFCM_LANCTXSTAT_CTX_DONE_MASK (0x1 << I40E_PFCM_LANCTXSTAT_CTX_DONE_SHIFT) +#define I40E_PFCM_LANCTXSTAT_CTX_MISS_SHIFT 1 +#define I40E_PFCM_LANCTXSTAT_CTX_MISS_MASK (0x1 << I40E_PFCM_LANCTXSTAT_CTX_MISS_SHIFT) +#define I40E_PFCM_PE_ERRDATA 0x00138D00 +#define I40E_PFCM_PE_ERRDATA_ERROR_CODE_SHIFT 0 +#define I40E_PFCM_PE_ERRDATA_ERROR_CODE_MASK (0xF << I40E_PFCM_PE_ERRDATA_ERROR_CODE_SHIFT) +#define I40E_PFCM_PE_ERRDATA_Q_TYPE_SHIFT 4 +#define I40E_PFCM_PE_ERRDATA_Q_TYPE_MASK (0x7 << I40E_PFCM_PE_ERRDATA_Q_TYPE_SHIFT) +#define I40E_PFCM_PE_ERRDATA_Q_NUM_SHIFT 8 +#define I40E_PFCM_PE_ERRDATA_Q_NUM_MASK (0x3FFFF << I40E_PFCM_PE_ERRDATA_Q_NUM_SHIFT) +#define I40E_PFCM_PE_ERRINFO 0x00138C80 +#define I40E_PFCM_PE_ERRINFO_ERROR_VALID_SHIFT 0 +#define I40E_PFCM_PE_ERRINFO_ERROR_VALID_MASK (0x1 << I40E_PFCM_PE_ERRINFO_ERROR_VALID_SHIFT) +#define I40E_PFCM_PE_ERRINFO_ERROR_INST_SHIFT 4 +#define I40E_PFCM_PE_ERRINFO_ERROR_INST_MASK (0x7 << I40E_PFCM_PE_ERRINFO_ERROR_INST_SHIFT) +#define I40E_PFCM_PE_ERRINFO_DBL_ERROR_CNT_SHIFT 8 +#define I40E_PFCM_PE_ERRINFO_DBL_ERROR_CNT_MASK (0xFF << I40E_PFCM_PE_ERRINFO_DBL_ERROR_CNT_SHIFT) +#define I40E_PFCM_PE_ERRINFO_RLU_ERROR_CNT_SHIFT 16 +#define I40E_PFCM_PE_ERRINFO_RLU_ERROR_CNT_MASK (0xFF << I40E_PFCM_PE_ERRINFO_RLU_ERROR_CNT_SHIFT) +#define I40E_PFCM_PE_ERRINFO_RLS_ERROR_CNT_SHIFT 24 +#define I40E_PFCM_PE_ERRINFO_RLS_ERROR_CNT_MASK (0xFF << I40E_PFCM_PE_ERRINFO_RLS_ERROR_CNT_SHIFT) +#define I40E_VFCM_PE_ERRDATA1(_VF) (0x00138800 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFCM_PE_ERRDATA1_MAX_INDEX 127 +#define I40E_VFCM_PE_ERRDATA1_ERROR_CODE_SHIFT 0 +#define I40E_VFCM_PE_ERRDATA1_ERROR_CODE_MASK (0xF << I40E_VFCM_PE_ERRDATA1_ERROR_CODE_SHIFT) +#define I40E_VFCM_PE_ERRDATA1_Q_TYPE_SHIFT 4 +#define I40E_VFCM_PE_ERRDATA1_Q_TYPE_MASK (0x7 << I40E_VFCM_PE_ERRDATA1_Q_TYPE_SHIFT) +#define I40E_VFCM_PE_ERRDATA1_Q_NUM_SHIFT 8 +#define I40E_VFCM_PE_ERRDATA1_Q_NUM_MASK (0x3FFFF << I40E_VFCM_PE_ERRDATA1_Q_NUM_SHIFT) +#define I40E_VFCM_PE_ERRINFO1(_VF) (0x00138400 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFCM_PE_ERRINFO1_MAX_INDEX 127 +#define I40E_VFCM_PE_ERRINFO1_ERROR_VALID_SHIFT 0 +#define I40E_VFCM_PE_ERRINFO1_ERROR_VALID_MASK (0x1 << I40E_VFCM_PE_ERRINFO1_ERROR_VALID_SHIFT) +#define I40E_VFCM_PE_ERRINFO1_ERROR_INST_SHIFT 4 +#define I40E_VFCM_PE_ERRINFO1_ERROR_INST_MASK (0x7 << I40E_VFCM_PE_ERRINFO1_ERROR_INST_SHIFT) +#define I40E_VFCM_PE_ERRINFO1_DBL_ERROR_CNT_SHIFT 8 +#define I40E_VFCM_PE_ERRINFO1_DBL_ERROR_CNT_MASK (0xFF << I40E_VFCM_PE_ERRINFO1_DBL_ERROR_CNT_SHIFT) +#define I40E_VFCM_PE_ERRINFO1_RLU_ERROR_CNT_SHIFT 16 +#define I40E_VFCM_PE_ERRINFO1_RLU_ERROR_CNT_MASK (0xFF << I40E_VFCM_PE_ERRINFO1_RLU_ERROR_CNT_SHIFT) +#define I40E_VFCM_PE_ERRINFO1_RLS_ERROR_CNT_SHIFT 24 +#define I40E_VFCM_PE_ERRINFO1_RLS_ERROR_CNT_MASK (0xFF << I40E_VFCM_PE_ERRINFO1_RLS_ERROR_CNT_SHIFT) +#define I40E_GLDCB_GENC 0x00083044 +#define I40E_GLDCB_GENC_PCIRTT_SHIFT 0 +#define I40E_GLDCB_GENC_PCIRTT_MASK (0xFFFF << I40E_GLDCB_GENC_PCIRTT_SHIFT) +#define I40E_GLDCB_RUPTI 0x00122618 +#define I40E_GLDCB_RUPTI_PFCTIMEOUT_UP_SHIFT 0 +#define I40E_GLDCB_RUPTI_PFCTIMEOUT_UP_MASK (0xFFFFFFFF << I40E_GLDCB_RUPTI_PFCTIMEOUT_UP_SHIFT) +#define I40E_PRTDCB_FCCFG 0x001E4640 +#define I40E_PRTDCB_FCCFG_TFCE_SHIFT 3 +#define I40E_PRTDCB_FCCFG_TFCE_MASK (0x3 << I40E_PRTDCB_FCCFG_TFCE_SHIFT) +#define I40E_PRTDCB_FCRTV 0x001E4600 +#define I40E_PRTDCB_FCRTV_FC_REFRESH_TH_SHIFT 0 +#define I40E_PRTDCB_FCRTV_FC_REFRESH_TH_MASK (0xFFFF << I40E_PRTDCB_FCRTV_FC_REFRESH_TH_SHIFT) +#define I40E_PRTDCB_FCTTVN(_i) (0x001E4580 + ((_i) * 32)) /* _i=0...3 */ +#define I40E_PRTDCB_FCTTVN_MAX_INDEX 3 +#define I40E_PRTDCB_FCTTVN_TTV_2N_SHIFT 0 +#define I40E_PRTDCB_FCTTVN_TTV_2N_MASK (0xFFFF << I40E_PRTDCB_FCTTVN_TTV_2N_SHIFT) +#define I40E_PRTDCB_FCTTVN_TTV_2N_P1_SHIFT 16 +#define I40E_PRTDCB_FCTTVN_TTV_2N_P1_MASK (0xFFFF << I40E_PRTDCB_FCTTVN_TTV_2N_P1_SHIFT) +#define I40E_PRTDCB_GENC 0x00083000 +#define I40E_PRTDCB_GENC_RESERVED_1_SHIFT 0 +#define I40E_PRTDCB_GENC_RESERVED_1_MASK (0x3 << I40E_PRTDCB_GENC_RESERVED_1_SHIFT) +#define I40E_PRTDCB_GENC_NUMTC_SHIFT 2 +#define I40E_PRTDCB_GENC_NUMTC_MASK (0xF << I40E_PRTDCB_GENC_NUMTC_SHIFT) +#define I40E_PRTDCB_GENC_FCOEUP_SHIFT 6 +#define I40E_PRTDCB_GENC_FCOEUP_MASK (0x7 << I40E_PRTDCB_GENC_FCOEUP_SHIFT) +#define I40E_PRTDCB_GENC_FCOEUP_VALID_SHIFT 9 +#define I40E_PRTDCB_GENC_FCOEUP_VALID_MASK (0x1 << I40E_PRTDCB_GENC_FCOEUP_VALID_SHIFT) +#define I40E_PRTDCB_GENC_PFCLDA_SHIFT 16 +#define I40E_PRTDCB_GENC_PFCLDA_MASK (0xFFFF << I40E_PRTDCB_GENC_PFCLDA_SHIFT) +#define I40E_PRTDCB_GENS 0x00083020 +#define I40E_PRTDCB_GENS_DCBX_STATUS_SHIFT 0 +#define I40E_PRTDCB_GENS_DCBX_STATUS_MASK (0x7 << I40E_PRTDCB_GENS_DCBX_STATUS_SHIFT) +#define I40E_PRTDCB_MFLCN 0x001E2400 +#define I40E_PRTDCB_MFLCN_PMCF_SHIFT 0 +#define I40E_PRTDCB_MFLCN_PMCF_MASK (0x1 << I40E_PRTDCB_MFLCN_PMCF_SHIFT) +#define I40E_PRTDCB_MFLCN_DPF_SHIFT 1 +#define I40E_PRTDCB_MFLCN_DPF_MASK (0x1 << I40E_PRTDCB_MFLCN_DPF_SHIFT) +#define I40E_PRTDCB_MFLCN_RPFCM_SHIFT 2 +#define I40E_PRTDCB_MFLCN_RPFCM_MASK (0x1 << I40E_PRTDCB_MFLCN_RPFCM_SHIFT) +#define I40E_PRTDCB_MFLCN_RFCE_SHIFT 3 +#define I40E_PRTDCB_MFLCN_RFCE_MASK (0x1 << I40E_PRTDCB_MFLCN_RFCE_SHIFT) +#define I40E_PRTDCB_MFLCN_RPFCE_SHIFT 4 +#define I40E_PRTDCB_MFLCN_RPFCE_MASK (0xFF << I40E_PRTDCB_MFLCN_RPFCE_SHIFT) +#define I40E_PRTDCB_RETSC 0x001223E0 +#define I40E_PRTDCB_RETSC_ETS_MODE_SHIFT 0 +#define I40E_PRTDCB_RETSC_ETS_MODE_MASK (0x1 << I40E_PRTDCB_RETSC_ETS_MODE_SHIFT) +#define I40E_PRTDCB_RETSC_NON_ETS_MODE_SHIFT 1 +#define I40E_PRTDCB_RETSC_NON_ETS_MODE_MASK (0x1 << I40E_PRTDCB_RETSC_NON_ETS_MODE_SHIFT) +#define I40E_PRTDCB_RETSC_ETS_MAX_EXP_SHIFT 2 +#define I40E_PRTDCB_RETSC_ETS_MAX_EXP_MASK (0xF << I40E_PRTDCB_RETSC_ETS_MAX_EXP_SHIFT) +#define I40E_PRTDCB_RETSC_LLTC_SHIFT 8 +#define I40E_PRTDCB_RETSC_LLTC_MASK (0xFF << I40E_PRTDCB_RETSC_LLTC_SHIFT) +#define I40E_PRTDCB_RETSTCC(_i) (0x00122180 + ((_i) * 32)) /* _i=0...7 */ +#define I40E_PRTDCB_RETSTCC_MAX_INDEX 7 +#define I40E_PRTDCB_RETSTCC_BWSHARE_SHIFT 0 +#define I40E_PRTDCB_RETSTCC_BWSHARE_MASK (0x7F << I40E_PRTDCB_RETSTCC_BWSHARE_SHIFT) +#define I40E_PRTDCB_RETSTCC_UPINTC_MODE_SHIFT 30 +#define I40E_PRTDCB_RETSTCC_UPINTC_MODE_MASK (0x1 << I40E_PRTDCB_RETSTCC_UPINTC_MODE_SHIFT) +#define I40E_PRTDCB_RETSTCC_ETSTC_SHIFT 31 +#define I40E_PRTDCB_RETSTCC_ETSTC_MASK (0x1 << I40E_PRTDCB_RETSTCC_ETSTC_SHIFT) +#define I40E_PRTDCB_RPPMC 0x001223A0 +#define I40E_PRTDCB_RPPMC_LANRPPM_SHIFT 0 +#define I40E_PRTDCB_RPPMC_LANRPPM_MASK (0xFF << I40E_PRTDCB_RPPMC_LANRPPM_SHIFT) +#define I40E_PRTDCB_RPPMC_RDMARPPM_SHIFT 8 +#define I40E_PRTDCB_RPPMC_RDMARPPM_MASK (0xFF << I40E_PRTDCB_RPPMC_RDMARPPM_SHIFT) +#define I40E_PRTDCB_RPPMC_RX_FIFO_SIZE_SHIFT 16 +#define I40E_PRTDCB_RPPMC_RX_FIFO_SIZE_MASK (0xFF << I40E_PRTDCB_RPPMC_RX_FIFO_SIZE_SHIFT) +#define I40E_PRTDCB_RUP 0x001C0B00 +#define I40E_PRTDCB_RUP_NOVLANUP_SHIFT 0 +#define I40E_PRTDCB_RUP_NOVLANUP_MASK (0x7 << I40E_PRTDCB_RUP_NOVLANUP_SHIFT) +#define I40E_PRTDCB_RUP2TC 0x001C09A0 +#define I40E_PRTDCB_RUP2TC_UP0TC_SHIFT 0 +#define I40E_PRTDCB_RUP2TC_UP0TC_MASK (0x7 << I40E_PRTDCB_RUP2TC_UP0TC_SHIFT) +#define I40E_PRTDCB_RUP2TC_UP1TC_SHIFT 3 +#define I40E_PRTDCB_RUP2TC_UP1TC_MASK (0x7 << I40E_PRTDCB_RUP2TC_UP1TC_SHIFT) +#define I40E_PRTDCB_RUP2TC_UP2TC_SHIFT 6 +#define I40E_PRTDCB_RUP2TC_UP2TC_MASK (0x7 << I40E_PRTDCB_RUP2TC_UP2TC_SHIFT) +#define I40E_PRTDCB_RUP2TC_UP3TC_SHIFT 9 +#define I40E_PRTDCB_RUP2TC_UP3TC_MASK (0x7 << I40E_PRTDCB_RUP2TC_UP3TC_SHIFT) +#define I40E_PRTDCB_RUP2TC_UP4TC_SHIFT 12 +#define I40E_PRTDCB_RUP2TC_UP4TC_MASK (0x7 << I40E_PRTDCB_RUP2TC_UP4TC_SHIFT) +#define I40E_PRTDCB_RUP2TC_UP5TC_SHIFT 15 +#define I40E_PRTDCB_RUP2TC_UP5TC_MASK (0x7 << I40E_PRTDCB_RUP2TC_UP5TC_SHIFT) +#define I40E_PRTDCB_RUP2TC_UP6TC_SHIFT 18 +#define I40E_PRTDCB_RUP2TC_UP6TC_MASK (0x7 << I40E_PRTDCB_RUP2TC_UP6TC_SHIFT) +#define I40E_PRTDCB_RUP2TC_UP7TC_SHIFT 21 +#define I40E_PRTDCB_RUP2TC_UP7TC_MASK (0x7 << I40E_PRTDCB_RUP2TC_UP7TC_SHIFT) +#define I40E_PRTDCB_TC2PFC 0x001C0980 +#define I40E_PRTDCB_TC2PFC_TC2PFC_SHIFT 0 +#define I40E_PRTDCB_TC2PFC_TC2PFC_MASK (0xFF << I40E_PRTDCB_TC2PFC_TC2PFC_SHIFT) +#define I40E_PRTDCB_TCPMC 0x000A21A0 +#define I40E_PRTDCB_TCPMC_CPM_SHIFT 0 +#define I40E_PRTDCB_TCPMC_CPM_MASK (0x1FFF << I40E_PRTDCB_TCPMC_CPM_SHIFT) +#define I40E_PRTDCB_TCPMC_LLTC_SHIFT 13 +#define I40E_PRTDCB_TCPMC_LLTC_MASK (0xFF << I40E_PRTDCB_TCPMC_LLTC_SHIFT) +#define I40E_PRTDCB_TCPMC_TCPM_MODE_SHIFT 30 +#define I40E_PRTDCB_TCPMC_TCPM_MODE_MASK (0x1 << I40E_PRTDCB_TCPMC_TCPM_MODE_SHIFT) +#define I40E_PRTDCB_TCWSTC(_i) (0x000A2040 + ((_i) * 32)) /* _i=0...7 */ +#define I40E_PRTDCB_TCWSTC_MAX_INDEX 7 +#define I40E_PRTDCB_TCWSTC_MSTC_SHIFT 0 +#define I40E_PRTDCB_TCWSTC_MSTC_MASK (0xFFFFF << I40E_PRTDCB_TCWSTC_MSTC_SHIFT) +#define I40E_PRTDCB_TDPMC 0x000A0180 +#define I40E_PRTDCB_TDPMC_DPM_SHIFT 0 +#define I40E_PRTDCB_TDPMC_DPM_MASK (0xFF << I40E_PRTDCB_TDPMC_DPM_SHIFT) +#define I40E_PRTDCB_TDPMC_TCPM_MODE_SHIFT 30 +#define I40E_PRTDCB_TDPMC_TCPM_MODE_MASK (0x1 << I40E_PRTDCB_TDPMC_TCPM_MODE_SHIFT) +#define I40E_PRTDCB_TDPUC 0x00044100 +#define I40E_PRTDCB_TDPUC_MAX_TXFRAME_SHIFT 0 +#define I40E_PRTDCB_TDPUC_MAX_TXFRAME_MASK (0xFFFF << I40E_PRTDCB_TDPUC_MAX_TXFRAME_SHIFT) +#define I40E_PRTDCB_TETSC_TCB 0x000AE060 +#define I40E_PRTDCB_TETSC_TCB_EN_LL_STRICT_PRIORITY_SHIFT 0 +#define I40E_PRTDCB_TETSC_TCB_EN_LL_STRICT_PRIORITY_MASK (0x1 << I40E_PRTDCB_TETSC_TCB_EN_LL_STRICT_PRIORITY_SHIFT) +#define I40E_PRTDCB_TETSC_TCB_LLTC_SHIFT 8 +#define I40E_PRTDCB_TETSC_TCB_LLTC_MASK (0xFF << I40E_PRTDCB_TETSC_TCB_LLTC_SHIFT) +#define I40E_PRTDCB_TETSC_TPB 0x00098060 +#define I40E_PRTDCB_TETSC_TPB_EN_LL_STRICT_PRIORITY_SHIFT 0 +#define I40E_PRTDCB_TETSC_TPB_EN_LL_STRICT_PRIORITY_MASK (0x1 << I40E_PRTDCB_TETSC_TPB_EN_LL_STRICT_PRIORITY_SHIFT) +#define I40E_PRTDCB_TETSC_TPB_LLTC_SHIFT 8 +#define I40E_PRTDCB_TETSC_TPB_LLTC_MASK (0xFF << I40E_PRTDCB_TETSC_TPB_LLTC_SHIFT) +#define I40E_PRTDCB_TFCS 0x001E4560 +#define I40E_PRTDCB_TFCS_TXOFF_SHIFT 0 +#define I40E_PRTDCB_TFCS_TXOFF_MASK (0x1 << I40E_PRTDCB_TFCS_TXOFF_SHIFT) +#define I40E_PRTDCB_TFCS_TXOFF0_SHIFT 8 +#define I40E_PRTDCB_TFCS_TXOFF0_MASK (0x1 << I40E_PRTDCB_TFCS_TXOFF0_SHIFT) +#define I40E_PRTDCB_TFCS_TXOFF1_SHIFT 9 +#define I40E_PRTDCB_TFCS_TXOFF1_MASK (0x1 << I40E_PRTDCB_TFCS_TXOFF1_SHIFT) +#define I40E_PRTDCB_TFCS_TXOFF2_SHIFT 10 +#define I40E_PRTDCB_TFCS_TXOFF2_MASK (0x1 << I40E_PRTDCB_TFCS_TXOFF2_SHIFT) +#define I40E_PRTDCB_TFCS_TXOFF3_SHIFT 11 +#define I40E_PRTDCB_TFCS_TXOFF3_MASK (0x1 << I40E_PRTDCB_TFCS_TXOFF3_SHIFT) +#define I40E_PRTDCB_TFCS_TXOFF4_SHIFT 12 +#define I40E_PRTDCB_TFCS_TXOFF4_MASK (0x1 << I40E_PRTDCB_TFCS_TXOFF4_SHIFT) +#define I40E_PRTDCB_TFCS_TXOFF5_SHIFT 13 +#define I40E_PRTDCB_TFCS_TXOFF5_MASK (0x1 << I40E_PRTDCB_TFCS_TXOFF5_SHIFT) +#define I40E_PRTDCB_TFCS_TXOFF6_SHIFT 14 +#define I40E_PRTDCB_TFCS_TXOFF6_MASK (0x1 << I40E_PRTDCB_TFCS_TXOFF6_SHIFT) +#define I40E_PRTDCB_TFCS_TXOFF7_SHIFT 15 +#define I40E_PRTDCB_TFCS_TXOFF7_MASK (0x1 << I40E_PRTDCB_TFCS_TXOFF7_SHIFT) +#define I40E_PRTDCB_TFWSTC(_i) (0x000A0040 + ((_i) * 32)) /* _i=0...7 */ +#define I40E_PRTDCB_TFWSTC_MAX_INDEX 7 +#define I40E_PRTDCB_TFWSTC_MSTC_SHIFT 0 +#define I40E_PRTDCB_TFWSTC_MSTC_MASK (0xFFFFF << I40E_PRTDCB_TFWSTC_MSTC_SHIFT) +#define I40E_PRTDCB_TPFCTS(_i) (0x001E4660 + ((_i) * 32)) /* _i=0...7 */ +#define I40E_PRTDCB_TPFCTS_MAX_INDEX 7 +#define I40E_PRTDCB_TPFCTS_PFCTIMER_SHIFT 0 +#define I40E_PRTDCB_TPFCTS_PFCTIMER_MASK (0x3FFF << I40E_PRTDCB_TPFCTS_PFCTIMER_SHIFT) +#define I40E_GLFCOE_RCTL 0x00269B94 +#define I40E_GLFCOE_RCTL_FCOEVER_SHIFT 0 +#define I40E_GLFCOE_RCTL_FCOEVER_MASK (0xF << I40E_GLFCOE_RCTL_FCOEVER_SHIFT) +#define I40E_GLFCOE_RCTL_SAVBAD_SHIFT 4 +#define I40E_GLFCOE_RCTL_SAVBAD_MASK (0x1 << I40E_GLFCOE_RCTL_SAVBAD_SHIFT) +#define I40E_GLFCOE_RCTL_ICRC_SHIFT 5 +#define I40E_GLFCOE_RCTL_ICRC_MASK (0x1 << I40E_GLFCOE_RCTL_ICRC_SHIFT) +#define I40E_GLFCOE_RCTL_MAX_SIZE_SHIFT 16 +#define I40E_GLFCOE_RCTL_MAX_SIZE_MASK (0x3FFF << I40E_GLFCOE_RCTL_MAX_SIZE_SHIFT) +#define I40E_GL_FWSTS 0x00083048 +#define I40E_GL_FWSTS_FWS0B_SHIFT 0 +#define I40E_GL_FWSTS_FWS0B_MASK (0xFF << I40E_GL_FWSTS_FWS0B_SHIFT) +#define I40E_GL_FWSTS_FWRI_SHIFT 9 +#define I40E_GL_FWSTS_FWRI_MASK (0x1 << I40E_GL_FWSTS_FWRI_SHIFT) +#define I40E_GL_FWSTS_FWS1B_SHIFT 16 +#define I40E_GL_FWSTS_FWS1B_MASK (0xFF << I40E_GL_FWSTS_FWS1B_SHIFT) +#define I40E_GLGEN_CLKSTAT 0x000B8184 +#define I40E_GLGEN_CLKSTAT_CLKMODE_SHIFT 0 +#define I40E_GLGEN_CLKSTAT_CLKMODE_MASK (0x1 << I40E_GLGEN_CLKSTAT_CLKMODE_SHIFT) +#define I40E_GLGEN_CLKSTAT_U_CLK_SPEED_SHIFT 4 +#define I40E_GLGEN_CLKSTAT_U_CLK_SPEED_MASK (0x3 << I40E_GLGEN_CLKSTAT_U_CLK_SPEED_SHIFT) +#define I40E_GLGEN_CLKSTAT_P0_CLK_SPEED_SHIFT 8 +#define I40E_GLGEN_CLKSTAT_P0_CLK_SPEED_MASK (0x7 << I40E_GLGEN_CLKSTAT_P0_CLK_SPEED_SHIFT) +#define I40E_GLGEN_CLKSTAT_P1_CLK_SPEED_SHIFT 12 +#define I40E_GLGEN_CLKSTAT_P1_CLK_SPEED_MASK (0x7 << I40E_GLGEN_CLKSTAT_P1_CLK_SPEED_SHIFT) +#define I40E_GLGEN_CLKSTAT_P2_CLK_SPEED_SHIFT 16 +#define I40E_GLGEN_CLKSTAT_P2_CLK_SPEED_MASK (0x7 << I40E_GLGEN_CLKSTAT_P2_CLK_SPEED_SHIFT) +#define I40E_GLGEN_CLKSTAT_P3_CLK_SPEED_SHIFT 20 +#define I40E_GLGEN_CLKSTAT_P3_CLK_SPEED_MASK (0x7 << I40E_GLGEN_CLKSTAT_P3_CLK_SPEED_SHIFT) +#define I40E_GLGEN_GPIO_CTL(_i) (0x00088100 + ((_i) * 4)) /* _i=0...29 */ +#define I40E_GLGEN_GPIO_CTL_MAX_INDEX 29 +#define I40E_GLGEN_GPIO_CTL_PRT_NUM_SHIFT 0 +#define I40E_GLGEN_GPIO_CTL_PRT_NUM_MASK (0x3 << I40E_GLGEN_GPIO_CTL_PRT_NUM_SHIFT) +#define I40E_GLGEN_GPIO_CTL_PRT_NUM_NA_SHIFT 3 +#define I40E_GLGEN_GPIO_CTL_PRT_NUM_NA_MASK (0x1 << I40E_GLGEN_GPIO_CTL_PRT_NUM_NA_SHIFT) +#define I40E_GLGEN_GPIO_CTL_PIN_DIR_SHIFT 4 +#define I40E_GLGEN_GPIO_CTL_PIN_DIR_MASK (0x1 << I40E_GLGEN_GPIO_CTL_PIN_DIR_SHIFT) +#define I40E_GLGEN_GPIO_CTL_TRI_CTL_SHIFT 5 +#define I40E_GLGEN_GPIO_CTL_TRI_CTL_MASK (0x1 << I40E_GLGEN_GPIO_CTL_TRI_CTL_SHIFT) +#define I40E_GLGEN_GPIO_CTL_OUT_CTL_SHIFT 6 +#define I40E_GLGEN_GPIO_CTL_OUT_CTL_MASK (0x1 << I40E_GLGEN_GPIO_CTL_OUT_CTL_SHIFT) +#define I40E_GLGEN_GPIO_CTL_PIN_FUNC_SHIFT 7 +#define I40E_GLGEN_GPIO_CTL_PIN_FUNC_MASK (0x7 << I40E_GLGEN_GPIO_CTL_PIN_FUNC_SHIFT) +#define I40E_GLGEN_GPIO_CTL_LED_INVRT_SHIFT 10 +#define I40E_GLGEN_GPIO_CTL_LED_INVRT_MASK (0x1 << I40E_GLGEN_GPIO_CTL_LED_INVRT_SHIFT) +#define I40E_GLGEN_GPIO_CTL_LED_BLINK_SHIFT 11 +#define I40E_GLGEN_GPIO_CTL_LED_BLINK_MASK (0x1 << I40E_GLGEN_GPIO_CTL_LED_BLINK_SHIFT) +#define I40E_GLGEN_GPIO_CTL_LED_MODE_SHIFT 12 +#define I40E_GLGEN_GPIO_CTL_LED_MODE_MASK (0xF << I40E_GLGEN_GPIO_CTL_LED_MODE_SHIFT) +#define I40E_GLGEN_GPIO_CTL_INT_MODE_SHIFT 17 +#define I40E_GLGEN_GPIO_CTL_INT_MODE_MASK (0x3 << I40E_GLGEN_GPIO_CTL_INT_MODE_SHIFT) +#define I40E_GLGEN_GPIO_CTL_OUT_DEFAULT_SHIFT 19 +#define I40E_GLGEN_GPIO_CTL_OUT_DEFAULT_MASK (0x1 << I40E_GLGEN_GPIO_CTL_OUT_DEFAULT_SHIFT) +#define I40E_GLGEN_GPIO_CTL_PHY_PIN_NAME_SHIFT 20 +#define I40E_GLGEN_GPIO_CTL_PHY_PIN_NAME_MASK (0x3F << I40E_GLGEN_GPIO_CTL_PHY_PIN_NAME_SHIFT) +#define I40E_GLGEN_GPIO_SET 0x00088184 +#define I40E_GLGEN_GPIO_SET_GPIO_INDX_SHIFT 0 +#define I40E_GLGEN_GPIO_SET_GPIO_INDX_MASK (0x1F << I40E_GLGEN_GPIO_SET_GPIO_INDX_SHIFT) +#define I40E_GLGEN_GPIO_SET_SDP_DATA_SHIFT 5 +#define I40E_GLGEN_GPIO_SET_SDP_DATA_MASK (0x1 << I40E_GLGEN_GPIO_SET_SDP_DATA_SHIFT) +#define I40E_GLGEN_GPIO_SET_DRIVE_SDP_SHIFT 6 +#define I40E_GLGEN_GPIO_SET_DRIVE_SDP_MASK (0x1 << I40E_GLGEN_GPIO_SET_DRIVE_SDP_SHIFT) +#define I40E_GLGEN_GPIO_STAT 0x0008817C +#define I40E_GLGEN_GPIO_STAT_GPIO_VALUE_SHIFT 0 +#define I40E_GLGEN_GPIO_STAT_GPIO_VALUE_MASK (0x3FFFFFFF << I40E_GLGEN_GPIO_STAT_GPIO_VALUE_SHIFT) +#define I40E_GLGEN_GPIO_TRANSIT 0x00088180 +#define I40E_GLGEN_GPIO_TRANSIT_GPIO_TRANSITION_SHIFT 0 +#define I40E_GLGEN_GPIO_TRANSIT_GPIO_TRANSITION_MASK (0x3FFFFFFF << I40E_GLGEN_GPIO_TRANSIT_GPIO_TRANSITION_SHIFT) +#define I40E_GLGEN_I2CCMD(_i) (0x000881E0 + ((_i) * 4)) /* _i=0...3 */ +#define I40E_GLGEN_I2CCMD_MAX_INDEX 3 +#define I40E_GLGEN_I2CCMD_DATA_SHIFT 0 +#define I40E_GLGEN_I2CCMD_DATA_MASK (0xFFFF << I40E_GLGEN_I2CCMD_DATA_SHIFT) +#define I40E_GLGEN_I2CCMD_REGADD_SHIFT 16 +#define I40E_GLGEN_I2CCMD_REGADD_MASK (0xFF << I40E_GLGEN_I2CCMD_REGADD_SHIFT) +#define I40E_GLGEN_I2CCMD_PHYADD_SHIFT 24 +#define I40E_GLGEN_I2CCMD_PHYADD_MASK (0x7 << I40E_GLGEN_I2CCMD_PHYADD_SHIFT) +#define I40E_GLGEN_I2CCMD_OP_SHIFT 27 +#define I40E_GLGEN_I2CCMD_OP_MASK (0x1 << I40E_GLGEN_I2CCMD_OP_SHIFT) +#define I40E_GLGEN_I2CCMD_RESET_SHIFT 28 +#define I40E_GLGEN_I2CCMD_RESET_MASK (0x1 << I40E_GLGEN_I2CCMD_RESET_SHIFT) +#define I40E_GLGEN_I2CCMD_R_SHIFT 29 +#define I40E_GLGEN_I2CCMD_R_MASK (0x1 << I40E_GLGEN_I2CCMD_R_SHIFT) +#define I40E_GLGEN_I2CCMD_E_SHIFT 31 +#define I40E_GLGEN_I2CCMD_E_MASK (0x1 << I40E_GLGEN_I2CCMD_E_SHIFT) +#define I40E_GLGEN_I2CPARAMS(_i) (0x000881AC + ((_i) * 4)) /* _i=0...3 */ +#define I40E_GLGEN_I2CPARAMS_MAX_INDEX 3 +#define I40E_GLGEN_I2CPARAMS_WRITE_TIME_SHIFT 0 +#define I40E_GLGEN_I2CPARAMS_WRITE_TIME_MASK (0x1F << I40E_GLGEN_I2CPARAMS_WRITE_TIME_SHIFT) +#define I40E_GLGEN_I2CPARAMS_READ_TIME_SHIFT 5 +#define I40E_GLGEN_I2CPARAMS_READ_TIME_MASK (0x7 << I40E_GLGEN_I2CPARAMS_READ_TIME_SHIFT) +#define I40E_GLGEN_I2CPARAMS_I2CBB_EN_SHIFT 8 +#define I40E_GLGEN_I2CPARAMS_I2CBB_EN_MASK (0x1 << I40E_GLGEN_I2CPARAMS_I2CBB_EN_SHIFT) +#define I40E_GLGEN_I2CPARAMS_CLK_SHIFT 9 +#define I40E_GLGEN_I2CPARAMS_CLK_MASK (0x1 << I40E_GLGEN_I2CPARAMS_CLK_SHIFT) +#define I40E_GLGEN_I2CPARAMS_DATA_OUT_SHIFT 10 +#define I40E_GLGEN_I2CPARAMS_DATA_OUT_MASK (0x1 << I40E_GLGEN_I2CPARAMS_DATA_OUT_SHIFT) +#define I40E_GLGEN_I2CPARAMS_DATA_OE_N_SHIFT 11 +#define I40E_GLGEN_I2CPARAMS_DATA_OE_N_MASK (0x1 << I40E_GLGEN_I2CPARAMS_DATA_OE_N_SHIFT) +#define I40E_GLGEN_I2CPARAMS_DATA_IN_SHIFT 12 +#define I40E_GLGEN_I2CPARAMS_DATA_IN_MASK (0x1 << I40E_GLGEN_I2CPARAMS_DATA_IN_SHIFT) +#define I40E_GLGEN_I2CPARAMS_CLK_OE_N_SHIFT 13 +#define I40E_GLGEN_I2CPARAMS_CLK_OE_N_MASK (0x1 << I40E_GLGEN_I2CPARAMS_CLK_OE_N_SHIFT) +#define I40E_GLGEN_I2CPARAMS_CLK_IN_SHIFT 14 +#define I40E_GLGEN_I2CPARAMS_CLK_IN_MASK (0x1 << I40E_GLGEN_I2CPARAMS_CLK_IN_SHIFT) +#define I40E_GLGEN_I2CPARAMS_CLK_STRETCH_DIS_SHIFT 15 +#define I40E_GLGEN_I2CPARAMS_CLK_STRETCH_DIS_MASK (0x1 << I40E_GLGEN_I2CPARAMS_CLK_STRETCH_DIS_SHIFT) +#define I40E_GLGEN_I2CPARAMS_I2C_DATA_ORDER_SHIFT 31 +#define I40E_GLGEN_I2CPARAMS_I2C_DATA_ORDER_MASK (0x1 << I40E_GLGEN_I2CPARAMS_I2C_DATA_ORDER_SHIFT) +#define I40E_GLGEN_LED_CTL 0x00088178 +#define I40E_GLGEN_LED_CTL_GLOBAL_BLINK_MODE_SHIFT 0 +#define I40E_GLGEN_LED_CTL_GLOBAL_BLINK_MODE_MASK (0x1 << I40E_GLGEN_LED_CTL_GLOBAL_BLINK_MODE_SHIFT) +#define I40E_GLGEN_MDIO_CTRL(_i) (0x000881D0 + ((_i) * 4)) /* _i=0...3 */ +#define I40E_GLGEN_MDIO_CTRL_MAX_INDEX 3 +#define I40E_GLGEN_MDIO_CTRL_LEGACY_RSVD2_SHIFT 0 +#define I40E_GLGEN_MDIO_CTRL_LEGACY_RSVD2_MASK (0x1FFFF << I40E_GLGEN_MDIO_CTRL_LEGACY_RSVD2_SHIFT) +#define I40E_GLGEN_MDIO_CTRL_CONTMDC_SHIFT 17 +#define I40E_GLGEN_MDIO_CTRL_CONTMDC_MASK (0x1 << I40E_GLGEN_MDIO_CTRL_CONTMDC_SHIFT) +#define I40E_GLGEN_MDIO_CTRL_LEGACY_RSVD1_SHIFT 18 +#define I40E_GLGEN_MDIO_CTRL_LEGACY_RSVD1_MASK (0x3FFF << I40E_GLGEN_MDIO_CTRL_LEGACY_RSVD1_SHIFT) +#define I40E_GLGEN_MDIO_I2C_SEL(_i) (0x000881C0 + ((_i) * 4)) /* _i=0...3 */ +#define I40E_GLGEN_MDIO_I2C_SEL_MAX_INDEX 3 +#define I40E_GLGEN_MDIO_I2C_SEL_MDIO_I2C_SEL_SHIFT 0 +#define I40E_GLGEN_MDIO_I2C_SEL_MDIO_I2C_SEL_MASK (0x1 << I40E_GLGEN_MDIO_I2C_SEL_MDIO_I2C_SEL_SHIFT) +#define I40E_GLGEN_MDIO_I2C_SEL_PHY_PORT_NUM_SHIFT 1 +#define I40E_GLGEN_MDIO_I2C_SEL_PHY_PORT_NUM_MASK (0xF << I40E_GLGEN_MDIO_I2C_SEL_PHY_PORT_NUM_SHIFT) +#define I40E_GLGEN_MDIO_I2C_SEL_PHY0_ADDRESS_SHIFT 5 +#define I40E_GLGEN_MDIO_I2C_SEL_PHY0_ADDRESS_MASK (0x1F << I40E_GLGEN_MDIO_I2C_SEL_PHY0_ADDRESS_SHIFT) +#define I40E_GLGEN_MDIO_I2C_SEL_PHY1_ADDRESS_SHIFT 10 +#define I40E_GLGEN_MDIO_I2C_SEL_PHY1_ADDRESS_MASK (0x1F << I40E_GLGEN_MDIO_I2C_SEL_PHY1_ADDRESS_SHIFT) +#define I40E_GLGEN_MDIO_I2C_SEL_PHY2_ADDRESS_SHIFT 15 +#define I40E_GLGEN_MDIO_I2C_SEL_PHY2_ADDRESS_MASK (0x1F << I40E_GLGEN_MDIO_I2C_SEL_PHY2_ADDRESS_SHIFT) +#define I40E_GLGEN_MDIO_I2C_SEL_PHY3_ADDRESS_SHIFT 20 +#define I40E_GLGEN_MDIO_I2C_SEL_PHY3_ADDRESS_MASK (0x1F << I40E_GLGEN_MDIO_I2C_SEL_PHY3_ADDRESS_SHIFT) +#define I40E_GLGEN_MDIO_I2C_SEL_MDIO_IF_MODE_SHIFT 25 +#define I40E_GLGEN_MDIO_I2C_SEL_MDIO_IF_MODE_MASK (0xF << I40E_GLGEN_MDIO_I2C_SEL_MDIO_IF_MODE_SHIFT) +#define I40E_GLGEN_MDIO_I2C_SEL_EN_FAST_MODE_SHIFT 31 +#define I40E_GLGEN_MDIO_I2C_SEL_EN_FAST_MODE_MASK (0x1 << I40E_GLGEN_MDIO_I2C_SEL_EN_FAST_MODE_SHIFT) +#define I40E_GLGEN_MSCA(_i) (0x0008818C + ((_i) * 4)) /* _i=0...3 */ +#define I40E_GLGEN_MSCA_MAX_INDEX 3 +#define I40E_GLGEN_MSCA_MDIADD_SHIFT 0 +#define I40E_GLGEN_MSCA_MDIADD_MASK (0xFFFF << I40E_GLGEN_MSCA_MDIADD_SHIFT) +#define I40E_GLGEN_MSCA_DEVADD_SHIFT 16 +#define I40E_GLGEN_MSCA_DEVADD_MASK (0x1F << I40E_GLGEN_MSCA_DEVADD_SHIFT) +#define I40E_GLGEN_MSCA_PHYADD_SHIFT 21 +#define I40E_GLGEN_MSCA_PHYADD_MASK (0x1F << I40E_GLGEN_MSCA_PHYADD_SHIFT) +#define I40E_GLGEN_MSCA_OPCODE_SHIFT 26 +#define I40E_GLGEN_MSCA_OPCODE_MASK (0x3 << I40E_GLGEN_MSCA_OPCODE_SHIFT) +#define I40E_GLGEN_MSCA_STCODE_SHIFT 28 +#define I40E_GLGEN_MSCA_STCODE_MASK (0x3 << I40E_GLGEN_MSCA_STCODE_SHIFT) +#define I40E_GLGEN_MSCA_MDICMD_SHIFT 30 +#define I40E_GLGEN_MSCA_MDICMD_MASK (0x1 << I40E_GLGEN_MSCA_MDICMD_SHIFT) +#define I40E_GLGEN_MSCA_MDIINPROGEN_SHIFT 31 +#define I40E_GLGEN_MSCA_MDIINPROGEN_MASK (0x1 << I40E_GLGEN_MSCA_MDIINPROGEN_SHIFT) +#define I40E_GLGEN_MSRWD(_i) (0x0008819C + ((_i) * 4)) /* _i=0...3 */ +#define I40E_GLGEN_MSRWD_MAX_INDEX 3 +#define I40E_GLGEN_MSRWD_MDIWRDATA_SHIFT 0 +#define I40E_GLGEN_MSRWD_MDIWRDATA_MASK (0xFFFF << I40E_GLGEN_MSRWD_MDIWRDATA_SHIFT) +#define I40E_GLGEN_MSRWD_MDIRDDATA_SHIFT 16 +#define I40E_GLGEN_MSRWD_MDIRDDATA_MASK (0xFFFF << I40E_GLGEN_MSRWD_MDIRDDATA_SHIFT) +#define I40E_GLGEN_PCIFCNCNT 0x001C0AB4 +#define I40E_GLGEN_PCIFCNCNT_PCIPFCNT_SHIFT 0 +#define I40E_GLGEN_PCIFCNCNT_PCIPFCNT_MASK (0x1F << I40E_GLGEN_PCIFCNCNT_PCIPFCNT_SHIFT) +#define I40E_GLGEN_PCIFCNCNT_PCIVFCNT_SHIFT 16 +#define I40E_GLGEN_PCIFCNCNT_PCIVFCNT_MASK (0xFF << I40E_GLGEN_PCIFCNCNT_PCIVFCNT_SHIFT) +#define I40E_GLGEN_PE_ENA 0x000B81A0 +#define I40E_GLGEN_PE_ENA_PE_ENA_SHIFT 0 +#define I40E_GLGEN_PE_ENA_PE_ENA_MASK (0x1 << I40E_GLGEN_PE_ENA_PE_ENA_SHIFT) +#define I40E_GLGEN_PE_ENA_PE_CLK_SRC_SEL_SHIFT 1 +#define I40E_GLGEN_PE_ENA_PE_CLK_SRC_SEL_MASK (0x3 << I40E_GLGEN_PE_ENA_PE_CLK_SRC_SEL_SHIFT) +#define I40E_GLGEN_RSTAT 0x000B8188 +#define I40E_GLGEN_RSTAT_DEVSTATE_SHIFT 0 +#define I40E_GLGEN_RSTAT_DEVSTATE_MASK (0x3 << I40E_GLGEN_RSTAT_DEVSTATE_SHIFT) +#define I40E_GLGEN_RSTAT_RESET_TYPE_SHIFT 2 +#define I40E_GLGEN_RSTAT_RESET_TYPE_MASK (0x3 << I40E_GLGEN_RSTAT_RESET_TYPE_SHIFT) +#define I40E_GLGEN_RSTAT_CORERCNT_SHIFT 4 +#define I40E_GLGEN_RSTAT_CORERCNT_MASK (0x3 << I40E_GLGEN_RSTAT_CORERCNT_SHIFT) +#define I40E_GLGEN_RSTAT_GLOBRCNT_SHIFT 6 +#define I40E_GLGEN_RSTAT_GLOBRCNT_MASK (0x3 << I40E_GLGEN_RSTAT_GLOBRCNT_SHIFT) +#define I40E_GLGEN_RSTAT_EMPRCNT_SHIFT 8 +#define I40E_GLGEN_RSTAT_EMPRCNT_MASK (0x3 << I40E_GLGEN_RSTAT_EMPRCNT_SHIFT) +#define I40E_GLGEN_RSTAT_TIME_TO_RST_SHIFT 10 +#define I40E_GLGEN_RSTAT_TIME_TO_RST_MASK (0x3F << I40E_GLGEN_RSTAT_TIME_TO_RST_SHIFT) +#define I40E_GLGEN_RSTCTL 0x000B8180 +#define I40E_GLGEN_RSTCTL_GRSTDEL_SHIFT 0 +#define I40E_GLGEN_RSTCTL_GRSTDEL_MASK (0x3F << I40E_GLGEN_RSTCTL_GRSTDEL_SHIFT) +#define I40E_GLGEN_RSTCTL_ECC_RST_ENA_SHIFT 8 +#define I40E_GLGEN_RSTCTL_ECC_RST_ENA_MASK (0x1 << I40E_GLGEN_RSTCTL_ECC_RST_ENA_SHIFT) +#define I40E_GLGEN_RSTENA_EMP 0x000B818C +#define I40E_GLGEN_RSTENA_EMP_EMP_RST_ENA_SHIFT 0 +#define I40E_GLGEN_RSTENA_EMP_EMP_RST_ENA_MASK (0x1 << I40E_GLGEN_RSTENA_EMP_EMP_RST_ENA_SHIFT) +#define I40E_GLGEN_RTRIG 0x000B8190 +#define I40E_GLGEN_RTRIG_CORER_SHIFT 0 +#define I40E_GLGEN_RTRIG_CORER_MASK (0x1 << I40E_GLGEN_RTRIG_CORER_SHIFT) +#define I40E_GLGEN_RTRIG_GLOBR_SHIFT 1 +#define I40E_GLGEN_RTRIG_GLOBR_MASK (0x1 << I40E_GLGEN_RTRIG_GLOBR_SHIFT) +#define I40E_GLGEN_RTRIG_EMPFWR_SHIFT 2 +#define I40E_GLGEN_RTRIG_EMPFWR_MASK (0x1 << I40E_GLGEN_RTRIG_EMPFWR_SHIFT) +#define I40E_GLGEN_STAT 0x000B612C +#define I40E_GLGEN_STAT_HWRSVD0_SHIFT 0 +#define I40E_GLGEN_STAT_HWRSVD0_MASK (0x3 << I40E_GLGEN_STAT_HWRSVD0_SHIFT) +#define I40E_GLGEN_STAT_DCBEN_SHIFT 2 +#define I40E_GLGEN_STAT_DCBEN_MASK (0x1 << I40E_GLGEN_STAT_DCBEN_SHIFT) +#define I40E_GLGEN_STAT_VTEN_SHIFT 3 +#define I40E_GLGEN_STAT_VTEN_MASK (0x1 << I40E_GLGEN_STAT_VTEN_SHIFT) +#define I40E_GLGEN_STAT_FCOEN_SHIFT 4 +#define I40E_GLGEN_STAT_FCOEN_MASK (0x1 << I40E_GLGEN_STAT_FCOEN_SHIFT) +#define I40E_GLGEN_STAT_EVBEN_SHIFT 5 +#define I40E_GLGEN_STAT_EVBEN_MASK (0x1 << I40E_GLGEN_STAT_EVBEN_SHIFT) +#define I40E_GLGEN_STAT_HWRSVD1_SHIFT 6 +#define I40E_GLGEN_STAT_HWRSVD1_MASK (0x3 << I40E_GLGEN_STAT_HWRSVD1_SHIFT) +#define I40E_GLGEN_VFLRSTAT(_i) (0x00092600 + ((_i) * 4)) /* _i=0...3 */ +#define I40E_GLGEN_VFLRSTAT_MAX_INDEX 3 +#define I40E_GLGEN_VFLRSTAT_VFLRE_SHIFT 0 +#define I40E_GLGEN_VFLRSTAT_VFLRE_MASK (0xFFFFFFFF << I40E_GLGEN_VFLRSTAT_VFLRE_SHIFT) +#define I40E_GLVFGEN_TIMER 0x000881BC +#define I40E_GLVFGEN_TIMER_GTIME_SHIFT 0 +#define I40E_GLVFGEN_TIMER_GTIME_MASK (0xFFFFFFFF << I40E_GLVFGEN_TIMER_GTIME_SHIFT) +#define I40E_PFGEN_CTRL 0x00092400 +#define I40E_PFGEN_CTRL_PFSWR_SHIFT 0 +#define I40E_PFGEN_CTRL_PFSWR_MASK (0x1 << I40E_PFGEN_CTRL_PFSWR_SHIFT) +#define I40E_PFGEN_DRUN 0x00092500 +#define I40E_PFGEN_DRUN_DRVUNLD_SHIFT 0 +#define I40E_PFGEN_DRUN_DRVUNLD_MASK (0x1 << I40E_PFGEN_DRUN_DRVUNLD_SHIFT) +#define I40E_PFGEN_PORTNUM 0x001C0480 +#define I40E_PFGEN_PORTNUM_PORT_NUM_SHIFT 0 +#define I40E_PFGEN_PORTNUM_PORT_NUM_MASK (0x3 << I40E_PFGEN_PORTNUM_PORT_NUM_SHIFT) +#define I40E_PFGEN_STATE 0x00088000 +#define I40E_PFGEN_STATE_PFPEEN_SHIFT 0 +#define I40E_PFGEN_STATE_PFPEEN_MASK (0x1 << I40E_PFGEN_STATE_PFPEEN_SHIFT) +#define I40E_PFGEN_STATE_PFFCEN_SHIFT 1 +#define I40E_PFGEN_STATE_PFFCEN_MASK (0x1 << I40E_PFGEN_STATE_PFFCEN_SHIFT) +#define I40E_PFGEN_STATE_PFLINKEN_SHIFT 2 +#define I40E_PFGEN_STATE_PFLINKEN_MASK (0x1 << I40E_PFGEN_STATE_PFLINKEN_SHIFT) +#define I40E_PFGEN_STATE_PFSCEN_SHIFT 3 +#define I40E_PFGEN_STATE_PFSCEN_MASK (0x1 << I40E_PFGEN_STATE_PFSCEN_SHIFT) +#define I40E_PRTGEN_CNF 0x000B8120 +#define I40E_PRTGEN_CNF_PORT_DIS_SHIFT 0 +#define I40E_PRTGEN_CNF_PORT_DIS_MASK (0x1 << I40E_PRTGEN_CNF_PORT_DIS_SHIFT) +#define I40E_PRTGEN_CNF_ALLOW_PORT_DIS_SHIFT 1 +#define I40E_PRTGEN_CNF_ALLOW_PORT_DIS_MASK (0x1 << I40E_PRTGEN_CNF_ALLOW_PORT_DIS_SHIFT) +#define I40E_PRTGEN_CNF_EMP_PORT_DIS_SHIFT 2 +#define I40E_PRTGEN_CNF_EMP_PORT_DIS_MASK (0x1 << I40E_PRTGEN_CNF_EMP_PORT_DIS_SHIFT) +#define I40E_PRTGEN_CNF2 0x000B8160 +#define I40E_PRTGEN_CNF2_ACTIVATE_PORT_LINK_SHIFT 0 +#define I40E_PRTGEN_CNF2_ACTIVATE_PORT_LINK_MASK (0x1 << I40E_PRTGEN_CNF2_ACTIVATE_PORT_LINK_SHIFT) +#define I40E_PRTGEN_STATUS 0x000B8100 +#define I40E_PRTGEN_STATUS_PORT_VALID_SHIFT 0 +#define I40E_PRTGEN_STATUS_PORT_VALID_MASK (0x1 << I40E_PRTGEN_STATUS_PORT_VALID_SHIFT) +#define I40E_PRTGEN_STATUS_PORT_ACTIVE_SHIFT 1 +#define I40E_PRTGEN_STATUS_PORT_ACTIVE_MASK (0x1 << I40E_PRTGEN_STATUS_PORT_ACTIVE_SHIFT) +#define I40E_VFGEN_RSTAT1(_VF) (0x00074400 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFGEN_RSTAT1_MAX_INDEX 127 +#define I40E_VFGEN_RSTAT1_VFR_STATE_SHIFT 0 +#define I40E_VFGEN_RSTAT1_VFR_STATE_MASK (0x3 << I40E_VFGEN_RSTAT1_VFR_STATE_SHIFT) +#define I40E_VPGEN_VFRSTAT(_VF) (0x00091C00 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VPGEN_VFRSTAT_MAX_INDEX 127 +#define I40E_VPGEN_VFRSTAT_VFRD_SHIFT 0 +#define I40E_VPGEN_VFRSTAT_VFRD_MASK (0x1 << I40E_VPGEN_VFRSTAT_VFRD_SHIFT) +#define I40E_VPGEN_VFRTRIG(_VF) (0x00091800 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VPGEN_VFRTRIG_MAX_INDEX 127 +#define I40E_VPGEN_VFRTRIG_VFSWR_SHIFT 0 +#define I40E_VPGEN_VFRTRIG_VFSWR_MASK (0x1 << I40E_VPGEN_VFRTRIG_VFSWR_SHIFT) +#define I40E_VSIGEN_RSTAT(_VSI) (0x00090800 + ((_VSI) * 4)) /* _i=0...383 */ +#define I40E_VSIGEN_RSTAT_MAX_INDEX 383 +#define I40E_VSIGEN_RSTAT_VMRD_SHIFT 0 +#define I40E_VSIGEN_RSTAT_VMRD_MASK (0x1 << I40E_VSIGEN_RSTAT_VMRD_SHIFT) +#define I40E_VSIGEN_RTRIG(_VSI) (0x00090000 + ((_VSI) * 4)) /* _i=0...383 */ +#define I40E_VSIGEN_RTRIG_MAX_INDEX 383 +#define I40E_VSIGEN_RTRIG_VMSWR_SHIFT 0 +#define I40E_VSIGEN_RTRIG_VMSWR_MASK (0x1 << I40E_VSIGEN_RTRIG_VMSWR_SHIFT) +#define I40E_GLHMC_APBVTINUSEBASE(_i) (0x000C4a00 + ((_i) * 4)) +#define I40E_GLHMC_APBVTINUSEBASE_MAX_INDEX 15 +#define I40E_GLHMC_APBVTINUSEBASE_FPMAPBINUSEBASE_SHIFT 0 +#define I40E_GLHMC_APBVTINUSEBASE_FPMAPBINUSEBASE_MASK (0xFFFFFF << I40E_GLHMC_APBVTINUSEBASE_FPMAPBINUSEBASE_SHIFT) +#define I40E_GLHMC_CEQPART(_i) (0x001312C0 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_CEQPART_MAX_INDEX 15 +#define I40E_GLHMC_CEQPART_PMCEQBASE_SHIFT 0 +#define I40E_GLHMC_CEQPART_PMCEQBASE_MASK (0xFF << I40E_GLHMC_CEQPART_PMCEQBASE_SHIFT) +#define I40E_GLHMC_CEQPART_PMCEQSIZE_SHIFT 16 +#define I40E_GLHMC_CEQPART_PMCEQSIZE_MASK (0x1FF << I40E_GLHMC_CEQPART_PMCEQSIZE_SHIFT) +#define I40E_GLHMC_DBCQPART(_i) (0x00131240 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_DBCQPART_MAX_INDEX 15 +#define I40E_GLHMC_DBCQPART_PMDBCQBASE_SHIFT 0 +#define I40E_GLHMC_DBCQPART_PMDBCQBASE_MASK (0x3FFF << I40E_GLHMC_DBCQPART_PMDBCQBASE_SHIFT) +#define I40E_GLHMC_DBCQPART_PMDBCQSIZE_SHIFT 16 +#define I40E_GLHMC_DBCQPART_PMDBCQSIZE_MASK (0x7FFF << I40E_GLHMC_DBCQPART_PMDBCQSIZE_SHIFT) +#define I40E_GLHMC_DBQPPART(_i) (0x00138D80 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_DBQPPART_MAX_INDEX 15 +#define I40E_GLHMC_DBQPPART_PMDBQPBASE_SHIFT 0 +#define I40E_GLHMC_DBQPPART_PMDBQPBASE_MASK (0x3FFF << I40E_GLHMC_DBQPPART_PMDBQPBASE_SHIFT) +#define I40E_GLHMC_DBQPPART_PMDBQPSIZE_SHIFT 16 +#define I40E_GLHMC_DBQPPART_PMDBQPSIZE_MASK (0x7FFF << I40E_GLHMC_DBQPPART_PMDBQPSIZE_SHIFT) +#define I40E_GLHMC_FCOEDDPBASE(_i) (0x000C6600 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_FCOEDDPBASE_MAX_INDEX 15 +#define I40E_GLHMC_FCOEDDPBASE_FPMFCOEDDPBASE_SHIFT 0 +#define I40E_GLHMC_FCOEDDPBASE_FPMFCOEDDPBASE_MASK (0xFFFFFF << I40E_GLHMC_FCOEDDPBASE_FPMFCOEDDPBASE_SHIFT) +#define I40E_GLHMC_FCOEDDPCNT(_i) (0x000C6700 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_FCOEDDPCNT_MAX_INDEX 15 +#define I40E_GLHMC_FCOEDDPCNT_FPMFCOEDDPCNT_SHIFT 0 +#define I40E_GLHMC_FCOEDDPCNT_FPMFCOEDDPCNT_MASK (0xFFFFF << I40E_GLHMC_FCOEDDPCNT_FPMFCOEDDPCNT_SHIFT) +#define I40E_GLHMC_FCOEDDPOBJSZ 0x000C2010 +#define I40E_GLHMC_FCOEDDPOBJSZ_PMFCOEDDPOBJSZ_SHIFT 0 +#define I40E_GLHMC_FCOEDDPOBJSZ_PMFCOEDDPOBJSZ_MASK (0xF << I40E_GLHMC_FCOEDDPOBJSZ_PMFCOEDDPOBJSZ_SHIFT) +#define I40E_GLHMC_FCOEFBASE(_i) (0x000C6800 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_FCOEFBASE_MAX_INDEX 15 +#define I40E_GLHMC_FCOEFBASE_FPMFCOEFBASE_SHIFT 0 +#define I40E_GLHMC_FCOEFBASE_FPMFCOEFBASE_MASK (0xFFFFFF << I40E_GLHMC_FCOEFBASE_FPMFCOEFBASE_SHIFT) +#define I40E_GLHMC_FCOEFCNT(_i) (0x000C6900 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_FCOEFCNT_MAX_INDEX 15 +#define I40E_GLHMC_FCOEFCNT_FPMFCOEFCNT_SHIFT 0 +#define I40E_GLHMC_FCOEFCNT_FPMFCOEFCNT_MASK (0x7FFFFF << I40E_GLHMC_FCOEFCNT_FPMFCOEFCNT_SHIFT) +#define I40E_GLHMC_FCOEFMAX 0x000C20D0 +#define I40E_GLHMC_FCOEFMAX_PMFCOEFMAX_SHIFT 0 +#define I40E_GLHMC_FCOEFMAX_PMFCOEFMAX_MASK (0xFFFF << I40E_GLHMC_FCOEFMAX_PMFCOEFMAX_SHIFT) +#define I40E_GLHMC_FCOEFOBJSZ 0x000C2018 +#define I40E_GLHMC_FCOEFOBJSZ_PMFCOEFOBJSZ_SHIFT 0 +#define I40E_GLHMC_FCOEFOBJSZ_PMFCOEFOBJSZ_MASK (0xF << I40E_GLHMC_FCOEFOBJSZ_PMFCOEFOBJSZ_SHIFT) +#define I40E_GLHMC_FCOEMAX 0x000C2014 +#define I40E_GLHMC_FCOEMAX_PMFCOEMAX_SHIFT 0 +#define I40E_GLHMC_FCOEMAX_PMFCOEMAX_MASK (0x1FFF << I40E_GLHMC_FCOEMAX_PMFCOEMAX_SHIFT) +#define I40E_GLHMC_FSIAVBASE(_i) (0x000C5600 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_FSIAVBASE_MAX_INDEX 15 +#define I40E_GLHMC_FSIAVBASE_FPMFSIAVBASE_SHIFT 0 +#define I40E_GLHMC_FSIAVBASE_FPMFSIAVBASE_MASK (0xFFFFFF << I40E_GLHMC_FSIAVBASE_FPMFSIAVBASE_SHIFT) +#define I40E_GLHMC_FSIAVCNT(_i) (0x000C5700 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_FSIAVCNT_MAX_INDEX 15 +#define I40E_GLHMC_FSIAVCNT_FPMFSIAVCNT_SHIFT 0 +#define I40E_GLHMC_FSIAVCNT_FPMFSIAVCNT_MASK (0x1FFFFFFF << I40E_GLHMC_FSIAVCNT_FPMFSIAVCNT_SHIFT) +#define I40E_GLHMC_FSIAVCNT_RSVD_SHIFT 29 +#define I40E_GLHMC_FSIAVCNT_RSVD_MASK (0x7 << I40E_GLHMC_FSIAVCNT_RSVD_SHIFT) +#define I40E_GLHMC_FSIAVMAX 0x000C2068 +#define I40E_GLHMC_FSIAVMAX_PMFSIAVMAX_SHIFT 0 +#define I40E_GLHMC_FSIAVMAX_PMFSIAVMAX_MASK (0x1FFFF << I40E_GLHMC_FSIAVMAX_PMFSIAVMAX_SHIFT) +#define I40E_GLHMC_FSIAVOBJSZ 0x000C2064 +#define I40E_GLHMC_FSIAVOBJSZ_PMFSIAVOBJSZ_SHIFT 0 +#define I40E_GLHMC_FSIAVOBJSZ_PMFSIAVOBJSZ_MASK (0xF << I40E_GLHMC_FSIAVOBJSZ_PMFSIAVOBJSZ_SHIFT) +#define I40E_GLHMC_FSIMCBASE(_i) (0x000C6000 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_FSIMCBASE_MAX_INDEX 15 +#define I40E_GLHMC_FSIMCBASE_FPMFSIMCBASE_SHIFT 0 +#define I40E_GLHMC_FSIMCBASE_FPMFSIMCBASE_MASK (0xFFFFFF << I40E_GLHMC_FSIMCBASE_FPMFSIMCBASE_SHIFT) +#define I40E_GLHMC_FSIMCCNT(_i) (0x000C6100 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_FSIMCCNT_MAX_INDEX 15 +#define I40E_GLHMC_FSIMCCNT_FPMFSIMCSZ_SHIFT 0 +#define I40E_GLHMC_FSIMCCNT_FPMFSIMCSZ_MASK (0x1FFFFFFF << I40E_GLHMC_FSIMCCNT_FPMFSIMCSZ_SHIFT) +#define I40E_GLHMC_FSIMCMAX 0x000C2060 +#define I40E_GLHMC_FSIMCMAX_PMFSIMCMAX_SHIFT 0 +#define I40E_GLHMC_FSIMCMAX_PMFSIMCMAX_MASK (0x3FFF << I40E_GLHMC_FSIMCMAX_PMFSIMCMAX_SHIFT) +#define I40E_GLHMC_FSIMCOBJSZ 0x000C205c +#define I40E_GLHMC_FSIMCOBJSZ_PMFSIMCOBJSZ_SHIFT 0 +#define I40E_GLHMC_FSIMCOBJSZ_PMFSIMCOBJSZ_MASK (0xF << I40E_GLHMC_FSIMCOBJSZ_PMFSIMCOBJSZ_SHIFT) +#define I40E_GLHMC_LANQMAX 0x000C2008 +#define I40E_GLHMC_LANQMAX_PMLANQMAX_SHIFT 0 +#define I40E_GLHMC_LANQMAX_PMLANQMAX_MASK (0x7FF << I40E_GLHMC_LANQMAX_PMLANQMAX_SHIFT) +#define I40E_GLHMC_LANRXBASE(_i) (0x000C6400 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_LANRXBASE_MAX_INDEX 15 +#define I40E_GLHMC_LANRXBASE_FPMLANRXBASE_SHIFT 0 +#define I40E_GLHMC_LANRXBASE_FPMLANRXBASE_MASK (0xFFFFFF << I40E_GLHMC_LANRXBASE_FPMLANRXBASE_SHIFT) +#define I40E_GLHMC_LANRXCNT(_i) (0x000C6500 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_LANRXCNT_MAX_INDEX 15 +#define I40E_GLHMC_LANRXCNT_FPMLANRXCNT_SHIFT 0 +#define I40E_GLHMC_LANRXCNT_FPMLANRXCNT_MASK (0x7FF << I40E_GLHMC_LANRXCNT_FPMLANRXCNT_SHIFT) +#define I40E_GLHMC_LANRXOBJSZ 0x000C200c +#define I40E_GLHMC_LANRXOBJSZ_PMLANRXOBJSZ_SHIFT 0 +#define I40E_GLHMC_LANRXOBJSZ_PMLANRXOBJSZ_MASK (0xF << I40E_GLHMC_LANRXOBJSZ_PMLANRXOBJSZ_SHIFT) +#define I40E_GLHMC_LANTXBASE(_i) (0x000C6200 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_LANTXBASE_MAX_INDEX 15 +#define I40E_GLHMC_LANTXBASE_FPMLANTXBASE_SHIFT 0 +#define I40E_GLHMC_LANTXBASE_FPMLANTXBASE_MASK (0xFFFFFF << I40E_GLHMC_LANTXBASE_FPMLANTXBASE_SHIFT) +#define I40E_GLHMC_LANTXBASE_RSVD_SHIFT 24 +#define I40E_GLHMC_LANTXBASE_RSVD_MASK (0xFF << I40E_GLHMC_LANTXBASE_RSVD_SHIFT) +#define I40E_GLHMC_LANTXCNT(_i) (0x000C6300 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_LANTXCNT_MAX_INDEX 15 +#define I40E_GLHMC_LANTXCNT_FPMLANTXCNT_SHIFT 0 +#define I40E_GLHMC_LANTXCNT_FPMLANTXCNT_MASK (0x7FF << I40E_GLHMC_LANTXCNT_FPMLANTXCNT_SHIFT) +#define I40E_GLHMC_LANTXOBJSZ 0x000C2004 +#define I40E_GLHMC_LANTXOBJSZ_PMLANTXOBJSZ_SHIFT 0 +#define I40E_GLHMC_LANTXOBJSZ_PMLANTXOBJSZ_MASK (0xF << I40E_GLHMC_LANTXOBJSZ_PMLANTXOBJSZ_SHIFT) +#define I40E_GLHMC_PEARPBASE(_i) (0x000C4800 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PEARPBASE_MAX_INDEX 15 +#define I40E_GLHMC_PEARPBASE_FPMPEARPBASE_SHIFT 0 +#define I40E_GLHMC_PEARPBASE_FPMPEARPBASE_MASK (0xFFFFFF << I40E_GLHMC_PEARPBASE_FPMPEARPBASE_SHIFT) +#define I40E_GLHMC_PEARPCNT(_i) (0x000C4900 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PEARPCNT_MAX_INDEX 15 +#define I40E_GLHMC_PEARPCNT_FPMPEARPCNT_SHIFT 0 +#define I40E_GLHMC_PEARPCNT_FPMPEARPCNT_MASK (0x1FFFFFFF << I40E_GLHMC_PEARPCNT_FPMPEARPCNT_SHIFT) +#define I40E_GLHMC_PEARPMAX 0x000C2038 +#define I40E_GLHMC_PEARPMAX_PMPEARPMAX_SHIFT 0 +#define I40E_GLHMC_PEARPMAX_PMPEARPMAX_MASK (0x1FFFF << I40E_GLHMC_PEARPMAX_PMPEARPMAX_SHIFT) +#define I40E_GLHMC_PEARPOBJSZ 0x000C2034 +#define I40E_GLHMC_PEARPOBJSZ_PMPEARPOBJSZ_SHIFT 0 +#define I40E_GLHMC_PEARPOBJSZ_PMPEARPOBJSZ_MASK (0x7 << I40E_GLHMC_PEARPOBJSZ_PMPEARPOBJSZ_SHIFT) +#define I40E_GLHMC_PECQBASE(_i) (0x000C4200 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PECQBASE_MAX_INDEX 15 +#define I40E_GLHMC_PECQBASE_FPMPECQBASE_SHIFT 0 +#define I40E_GLHMC_PECQBASE_FPMPECQBASE_MASK (0xFFFFFF << I40E_GLHMC_PECQBASE_FPMPECQBASE_SHIFT) +#define I40E_GLHMC_PECQCNT(_i) (0x000C4300 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PECQCNT_MAX_INDEX 15 +#define I40E_GLHMC_PECQCNT_FPMPECQCNT_SHIFT 0 +#define I40E_GLHMC_PECQCNT_FPMPECQCNT_MASK (0x1FFFFFFF << I40E_GLHMC_PECQCNT_FPMPECQCNT_SHIFT) +#define I40E_GLHMC_PECQOBJSZ 0x000C2020 +#define I40E_GLHMC_PECQOBJSZ_PMPECQOBJSZ_SHIFT 0 +#define I40E_GLHMC_PECQOBJSZ_PMPECQOBJSZ_MASK (0xF << I40E_GLHMC_PECQOBJSZ_PMPECQOBJSZ_SHIFT) +#define I40E_GLHMC_PEHTCNT(_i) (0x000C4700 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PEHTCNT_MAX_INDEX 15 +#define I40E_GLHMC_PEHTCNT_FPMPEHTCNT_SHIFT 0 +#define I40E_GLHMC_PEHTCNT_FPMPEHTCNT_MASK (0x1FFFFFFF << I40E_GLHMC_PEHTCNT_FPMPEHTCNT_SHIFT) +#define I40E_GLHMC_PEHTEBASE(_i) (0x000C4600 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PEHTEBASE_MAX_INDEX 15 +#define I40E_GLHMC_PEHTEBASE_FPMPEHTEBASE_SHIFT 0 +#define I40E_GLHMC_PEHTEBASE_FPMPEHTEBASE_MASK (0xFFFFFF << I40E_GLHMC_PEHTEBASE_FPMPEHTEBASE_SHIFT) +#define I40E_GLHMC_PEHTEOBJSZ 0x000C202c +#define I40E_GLHMC_PEHTEOBJSZ_PMPEHTEOBJSZ_SHIFT 0 +#define I40E_GLHMC_PEHTEOBJSZ_PMPEHTEOBJSZ_MASK (0xF << I40E_GLHMC_PEHTEOBJSZ_PMPEHTEOBJSZ_SHIFT) +#define I40E_GLHMC_PEHTMAX 0x000C2030 +#define I40E_GLHMC_PEHTMAX_PMPEHTMAX_SHIFT 0 +#define I40E_GLHMC_PEHTMAX_PMPEHTMAX_MASK (0x1FFFFF << I40E_GLHMC_PEHTMAX_PMPEHTMAX_SHIFT) +#define I40E_GLHMC_PEMRBASE(_i) (0x000C4c00 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PEMRBASE_MAX_INDEX 15 +#define I40E_GLHMC_PEMRBASE_FPMPEMRBASE_SHIFT 0 +#define I40E_GLHMC_PEMRBASE_FPMPEMRBASE_MASK (0xFFFFFF << I40E_GLHMC_PEMRBASE_FPMPEMRBASE_SHIFT) +#define I40E_GLHMC_PEMRCNT(_i) (0x000C4d00 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PEMRCNT_MAX_INDEX 15 +#define I40E_GLHMC_PEMRCNT_FPMPEMRSZ_SHIFT 0 +#define I40E_GLHMC_PEMRCNT_FPMPEMRSZ_MASK (0x1FFFFFFF << I40E_GLHMC_PEMRCNT_FPMPEMRSZ_SHIFT) +#define I40E_GLHMC_PEMRMAX 0x000C2040 +#define I40E_GLHMC_PEMRMAX_PMPEMRMAX_SHIFT 0 +#define I40E_GLHMC_PEMRMAX_PMPEMRMAX_MASK (0x7FFFFF << I40E_GLHMC_PEMRMAX_PMPEMRMAX_SHIFT) +#define I40E_GLHMC_PEMROBJSZ 0x000C203c +#define I40E_GLHMC_PEMROBJSZ_PMPEMROBJSZ_SHIFT 0 +#define I40E_GLHMC_PEMROBJSZ_PMPEMROBJSZ_MASK (0xF << I40E_GLHMC_PEMROBJSZ_PMPEMROBJSZ_SHIFT) +#define I40E_GLHMC_PEPBLBASE(_i) (0x000C5800 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PEPBLBASE_MAX_INDEX 15 +#define I40E_GLHMC_PEPBLBASE_FPMPEPBLBASE_SHIFT 0 +#define I40E_GLHMC_PEPBLBASE_FPMPEPBLBASE_MASK (0xFFFFFF << I40E_GLHMC_PEPBLBASE_FPMPEPBLBASE_SHIFT) +#define I40E_GLHMC_PEPBLCNT(_i) (0x000C5900 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PEPBLCNT_MAX_INDEX 15 +#define I40E_GLHMC_PEPBLCNT_FPMPEPBLCNT_SHIFT 0 +#define I40E_GLHMC_PEPBLCNT_FPMPEPBLCNT_MASK (0x1FFFFFFF << I40E_GLHMC_PEPBLCNT_FPMPEPBLCNT_SHIFT) +#define I40E_GLHMC_PEPBLMAX 0x000C206c +#define I40E_GLHMC_PEPBLMAX_PMPEPBLMAX_SHIFT 0 +#define I40E_GLHMC_PEPBLMAX_PMPEPBLMAX_MASK (0x1FFFFFFF << I40E_GLHMC_PEPBLMAX_PMPEPBLMAX_SHIFT) +#define I40E_GLHMC_PEQ1BASE(_i) (0x000C5200 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PEQ1BASE_MAX_INDEX 15 +#define I40E_GLHMC_PEQ1BASE_FPMPEQ1BASE_SHIFT 0 +#define I40E_GLHMC_PEQ1BASE_FPMPEQ1BASE_MASK (0xFFFFFF << I40E_GLHMC_PEQ1BASE_FPMPEQ1BASE_SHIFT) +#define I40E_GLHMC_PEQ1CNT(_i) (0x000C5300 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PEQ1CNT_MAX_INDEX 15 +#define I40E_GLHMC_PEQ1CNT_FPMPEQ1CNT_SHIFT 0 +#define I40E_GLHMC_PEQ1CNT_FPMPEQ1CNT_MASK (0x1FFFFFFF << I40E_GLHMC_PEQ1CNT_FPMPEQ1CNT_SHIFT) +#define I40E_GLHMC_PEQ1FLBASE(_i) (0x000C5400 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PEQ1FLBASE_MAX_INDEX 15 +#define I40E_GLHMC_PEQ1FLBASE_FPMPEQ1FLBASE_SHIFT 0 +#define I40E_GLHMC_PEQ1FLBASE_FPMPEQ1FLBASE_MASK (0xFFFFFF << I40E_GLHMC_PEQ1FLBASE_FPMPEQ1FLBASE_SHIFT) +#define I40E_GLHMC_PEQ1FLCNT(_i) (0x000C5500 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PEQ1FLCNT_MAX_INDEX 15 +#define I40E_GLHMC_PEQ1FLCNT_FPMPEQ1FLCNT_SHIFT 0 +#define I40E_GLHMC_PEQ1FLCNT_FPMPEQ1FLCNT_MASK (0x1FFFFFFF << I40E_GLHMC_PEQ1FLCNT_FPMPEQ1FLCNT_SHIFT) +#define I40E_GLHMC_PEQ1FLMAX 0x000C2058 +#define I40E_GLHMC_PEQ1FLMAX_PMPEQ1FLMAX_SHIFT 0 +#define I40E_GLHMC_PEQ1FLMAX_PMPEQ1FLMAX_MASK (0x3FFFFFF << I40E_GLHMC_PEQ1FLMAX_PMPEQ1FLMAX_SHIFT) +#define I40E_GLHMC_PEQ1MAX 0x000C2054 +#define I40E_GLHMC_PEQ1MAX_PMPEQ1MAX_SHIFT 0 +#define I40E_GLHMC_PEQ1MAX_PMPEQ1MAX_MASK (0x3FFFFFF << I40E_GLHMC_PEQ1MAX_PMPEQ1MAX_SHIFT) +#define I40E_GLHMC_PEQ1OBJSZ 0x000C2050 +#define I40E_GLHMC_PEQ1OBJSZ_PMPEQ1OBJSZ_SHIFT 0 +#define I40E_GLHMC_PEQ1OBJSZ_PMPEQ1OBJSZ_MASK (0xF << I40E_GLHMC_PEQ1OBJSZ_PMPEQ1OBJSZ_SHIFT) +#define I40E_GLHMC_PEQPBASE(_i) (0x000C4000 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PEQPBASE_MAX_INDEX 15 +#define I40E_GLHMC_PEQPBASE_FPMPEQPBASE_SHIFT 0 +#define I40E_GLHMC_PEQPBASE_FPMPEQPBASE_MASK (0xFFFFFF << I40E_GLHMC_PEQPBASE_FPMPEQPBASE_SHIFT) +#define I40E_GLHMC_PEQPCNT(_i) (0x000C4100 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PEQPCNT_MAX_INDEX 15 +#define I40E_GLHMC_PEQPCNT_FPMPEQPCNT_SHIFT 0 +#define I40E_GLHMC_PEQPCNT_FPMPEQPCNT_MASK (0x1FFFFFFF << I40E_GLHMC_PEQPCNT_FPMPEQPCNT_SHIFT) +#define I40E_GLHMC_PEQPOBJSZ 0x000C201c +#define I40E_GLHMC_PEQPOBJSZ_PMPEQPOBJSZ_SHIFT 0 +#define I40E_GLHMC_PEQPOBJSZ_PMPEQPOBJSZ_MASK (0xF << I40E_GLHMC_PEQPOBJSZ_PMPEQPOBJSZ_SHIFT) +#define I40E_GLHMC_PESRQBASE(_i) (0x000C4400 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PESRQBASE_MAX_INDEX 15 +#define I40E_GLHMC_PESRQBASE_FPMPESRQBASE_SHIFT 0 +#define I40E_GLHMC_PESRQBASE_FPMPESRQBASE_MASK (0xFFFFFF << I40E_GLHMC_PESRQBASE_FPMPESRQBASE_SHIFT) +#define I40E_GLHMC_PESRQCNT(_i) (0x000C4500 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PESRQCNT_MAX_INDEX 15 +#define I40E_GLHMC_PESRQCNT_FPMPESRQCNT_SHIFT 0 +#define I40E_GLHMC_PESRQCNT_FPMPESRQCNT_MASK (0x1FFFFFFF << I40E_GLHMC_PESRQCNT_FPMPESRQCNT_SHIFT) +#define I40E_GLHMC_PESRQMAX 0x000C2028 +#define I40E_GLHMC_PESRQMAX_PMPESRQMAX_SHIFT 0 +#define I40E_GLHMC_PESRQMAX_PMPESRQMAX_MASK (0xFFFF << I40E_GLHMC_PESRQMAX_PMPESRQMAX_SHIFT) +#define I40E_GLHMC_PESRQOBJSZ 0x000C2024 +#define I40E_GLHMC_PESRQOBJSZ_PMPESRQOBJSZ_SHIFT 0 +#define I40E_GLHMC_PESRQOBJSZ_PMPESRQOBJSZ_MASK (0xF << I40E_GLHMC_PESRQOBJSZ_PMPESRQOBJSZ_SHIFT) +#define I40E_GLHMC_PESRQOBJSZ_RSVD_SHIFT 4 +#define I40E_GLHMC_PESRQOBJSZ_RSVD_MASK (0xFFFFFFF << I40E_GLHMC_PESRQOBJSZ_RSVD_SHIFT) +#define I40E_GLHMC_PETIMERBASE(_i) (0x000C5A00 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PETIMERBASE_MAX_INDEX 15 +#define I40E_GLHMC_PETIMERBASE_FPMPETIMERBASE_SHIFT 0 +#define I40E_GLHMC_PETIMERBASE_FPMPETIMERBASE_MASK (0xFFFFFF << I40E_GLHMC_PETIMERBASE_FPMPETIMERBASE_SHIFT) +#define I40E_GLHMC_PETIMERCNT(_i) (0x000C5B00 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PETIMERCNT_MAX_INDEX 15 +#define I40E_GLHMC_PETIMERCNT_FPMPETIMERCNT_SHIFT 0 +#define I40E_GLHMC_PETIMERCNT_FPMPETIMERCNT_MASK (0x1FFFFFFF << I40E_GLHMC_PETIMERCNT_FPMPETIMERCNT_SHIFT) +#define I40E_GLHMC_PETIMERMAX 0x000C2084 +#define I40E_GLHMC_PETIMERMAX_PMPETIMERMAX_SHIFT 0 +#define I40E_GLHMC_PETIMERMAX_PMPETIMERMAX_MASK (0x1FFFFFFF << I40E_GLHMC_PETIMERMAX_PMPETIMERMAX_SHIFT) +#define I40E_GLHMC_PETIMEROBJSZ 0x000C2080 +#define I40E_GLHMC_PETIMEROBJSZ_PMPETIMEROBJSZ_SHIFT 0 +#define I40E_GLHMC_PETIMEROBJSZ_PMPETIMEROBJSZ_MASK (0xF << I40E_GLHMC_PETIMEROBJSZ_PMPETIMEROBJSZ_SHIFT) +#define I40E_GLHMC_PEXFBASE(_i) (0x000C4e00 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PEXFBASE_MAX_INDEX 15 +#define I40E_GLHMC_PEXFBASE_FPMPEXFBASE_SHIFT 0 +#define I40E_GLHMC_PEXFBASE_FPMPEXFBASE_MASK (0xFFFFFF << I40E_GLHMC_PEXFBASE_FPMPEXFBASE_SHIFT) +#define I40E_GLHMC_PEXFCNT(_i) (0x000C4f00 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PEXFCNT_MAX_INDEX 15 +#define I40E_GLHMC_PEXFCNT_FPMPEXFCNT_SHIFT 0 +#define I40E_GLHMC_PEXFCNT_FPMPEXFCNT_MASK (0x1FFFFFFF << I40E_GLHMC_PEXFCNT_FPMPEXFCNT_SHIFT) +#define I40E_GLHMC_PEXFFLBASE(_i) (0x000C5000 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PEXFFLBASE_MAX_INDEX 15 +#define I40E_GLHMC_PEXFFLBASE_FPMPEXFFLBASE_SHIFT 0 +#define I40E_GLHMC_PEXFFLBASE_FPMPEXFFLBASE_MASK (0xFFFFFF << I40E_GLHMC_PEXFFLBASE_FPMPEXFFLBASE_SHIFT) +#define I40E_GLHMC_PEXFFLCNT(_i) (0x000C5100 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PEXFFLCNT_MAX_INDEX 15 +#define I40E_GLHMC_PEXFFLCNT_FPMPEXFFLCNT_SHIFT 0 +#define I40E_GLHMC_PEXFFLCNT_FPMPEXFFLCNT_MASK (0x1FFFFFFF << I40E_GLHMC_PEXFFLCNT_FPMPEXFFLCNT_SHIFT) +#define I40E_GLHMC_PEXFFLMAX 0x000C204c +#define I40E_GLHMC_PEXFFLMAX_PMPEXFFLMAX_SHIFT 0 +#define I40E_GLHMC_PEXFFLMAX_PMPEXFFLMAX_MASK (0x1FFFFFF << I40E_GLHMC_PEXFFLMAX_PMPEXFFLMAX_SHIFT) +#define I40E_GLHMC_PEXFMAX 0x000C2048 +#define I40E_GLHMC_PEXFMAX_PMPEXFMAX_SHIFT 0 +#define I40E_GLHMC_PEXFMAX_PMPEXFMAX_MASK (0x3FFFFFF << I40E_GLHMC_PEXFMAX_PMPEXFMAX_SHIFT) +#define I40E_GLHMC_PEXFOBJSZ 0x000C2044 +#define I40E_GLHMC_PEXFOBJSZ_PMPEXFOBJSZ_SHIFT 0 +#define I40E_GLHMC_PEXFOBJSZ_PMPEXFOBJSZ_MASK (0xF << I40E_GLHMC_PEXFOBJSZ_PMPEXFOBJSZ_SHIFT) +#define I40E_GLHMC_PEXFOBJSZ_RSVD_SHIFT 4 +#define I40E_GLHMC_PEXFOBJSZ_RSVD_MASK (0xFFFFFFF << I40E_GLHMC_PEXFOBJSZ_RSVD_SHIFT) +#define I40E_GLHMC_PFASSIGN(_i) (0x000C0c00 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_PFASSIGN_MAX_INDEX 15 +#define I40E_GLHMC_PFASSIGN_PMFCNPFASSIGN_SHIFT 0 +#define I40E_GLHMC_PFASSIGN_PMFCNPFASSIGN_MASK (0xF << I40E_GLHMC_PFASSIGN_PMFCNPFASSIGN_SHIFT) +#define I40E_GLHMC_SDPART(_i) (0x000C0800 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLHMC_SDPART_MAX_INDEX 15 +#define I40E_GLHMC_SDPART_PMSDBASE_SHIFT 0 +#define I40E_GLHMC_SDPART_PMSDBASE_MASK (0xFFF << I40E_GLHMC_SDPART_PMSDBASE_SHIFT) +#define I40E_GLHMC_SDPART_PMSDSIZE_SHIFT 16 +#define I40E_GLHMC_SDPART_PMSDSIZE_MASK (0x1FFF << I40E_GLHMC_SDPART_PMSDSIZE_SHIFT) +#define I40E_GLHMC_VFAPBVTINUSEBASE(_i) (0x000Cca00 + ((_i) * 4)) +#define I40E_GLHMC_VFAPBVTINUSEBASE_MAX_INDEX 31 +#define I40E_GLHMC_VFAPBVTINUSEBASE_FPMAPBINUSEBASE_SHIFT 0 +#define I40E_GLHMC_VFAPBVTINUSEBASE_FPMAPBINUSEBASE_MASK (0xFFFFFF << I40E_GLHMC_VFAPBVTINUSEBASE_FPMAPBINUSEBASE_SHIFT) +#define I40E_GLHMC_VFCEQPART(_i) (0x00132240 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFCEQPART_MAX_INDEX 31 +#define I40E_GLHMC_VFCEQPART_PMCEQBASE_SHIFT 0 +#define I40E_GLHMC_VFCEQPART_PMCEQBASE_MASK (0xFF << I40E_GLHMC_VFCEQPART_PMCEQBASE_SHIFT) +#define I40E_GLHMC_VFCEQPART_PMCEQSIZE_SHIFT 16 +#define I40E_GLHMC_VFCEQPART_PMCEQSIZE_MASK (0x1FF << I40E_GLHMC_VFCEQPART_PMCEQSIZE_SHIFT) +#define I40E_GLHMC_VFDBCQPART(_i) (0x00132140 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFDBCQPART_MAX_INDEX 31 +#define I40E_GLHMC_VFDBCQPART_PMDBCQBASE_SHIFT 0 +#define I40E_GLHMC_VFDBCQPART_PMDBCQBASE_MASK (0x3FFF << I40E_GLHMC_VFDBCQPART_PMDBCQBASE_SHIFT) +#define I40E_GLHMC_VFDBCQPART_PMDBCQSIZE_SHIFT 16 +#define I40E_GLHMC_VFDBCQPART_PMDBCQSIZE_MASK (0x7FFF << I40E_GLHMC_VFDBCQPART_PMDBCQSIZE_SHIFT) +#define I40E_GLHMC_VFDBQPPART(_i) (0x00138E00 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFDBQPPART_MAX_INDEX 31 +#define I40E_GLHMC_VFDBQPPART_PMDBQPBASE_SHIFT 0 +#define I40E_GLHMC_VFDBQPPART_PMDBQPBASE_MASK (0x3FFF << I40E_GLHMC_VFDBQPPART_PMDBQPBASE_SHIFT) +#define I40E_GLHMC_VFDBQPPART_PMDBQPSIZE_SHIFT 16 +#define I40E_GLHMC_VFDBQPPART_PMDBQPSIZE_MASK (0x7FFF << I40E_GLHMC_VFDBQPPART_PMDBQPSIZE_SHIFT) +#define I40E_GLHMC_VFFSIAVBASE(_i) (0x000Cd600 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFFSIAVBASE_MAX_INDEX 31 +#define I40E_GLHMC_VFFSIAVBASE_FPMFSIAVBASE_SHIFT 0 +#define I40E_GLHMC_VFFSIAVBASE_FPMFSIAVBASE_MASK (0xFFFFFF << I40E_GLHMC_VFFSIAVBASE_FPMFSIAVBASE_SHIFT) +#define I40E_GLHMC_VFFSIAVCNT(_i) (0x000Cd700 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFFSIAVCNT_MAX_INDEX 31 +#define I40E_GLHMC_VFFSIAVCNT_FPMFSIAVCNT_SHIFT 0 +#define I40E_GLHMC_VFFSIAVCNT_FPMFSIAVCNT_MASK (0x1FFFFFFF << I40E_GLHMC_VFFSIAVCNT_FPMFSIAVCNT_SHIFT) +#define I40E_GLHMC_VFFSIAVCNT_RSVD_SHIFT 29 +#define I40E_GLHMC_VFFSIAVCNT_RSVD_MASK (0x7 << I40E_GLHMC_VFFSIAVCNT_RSVD_SHIFT) +#define I40E_GLHMC_VFPDINV(_i) (0x000C8300 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPDINV_MAX_INDEX 31 +#define I40E_GLHMC_VFPDINV_PMSDIDX_SHIFT 0 +#define I40E_GLHMC_VFPDINV_PMSDIDX_MASK (0xFFF << I40E_GLHMC_VFPDINV_PMSDIDX_SHIFT) +#define I40E_GLHMC_VFPDINV_PMPDIDX_SHIFT 16 +#define I40E_GLHMC_VFPDINV_PMPDIDX_MASK (0x1FF << I40E_GLHMC_VFPDINV_PMPDIDX_SHIFT) +#define I40E_GLHMC_VFPEARPBASE(_i) (0x000Cc800 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPEARPBASE_MAX_INDEX 31 +#define I40E_GLHMC_VFPEARPBASE_FPMPEARPBASE_SHIFT 0 +#define I40E_GLHMC_VFPEARPBASE_FPMPEARPBASE_MASK (0xFFFFFF << I40E_GLHMC_VFPEARPBASE_FPMPEARPBASE_SHIFT) +#define I40E_GLHMC_VFPEARPCNT(_i) (0x000Cc900 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPEARPCNT_MAX_INDEX 31 +#define I40E_GLHMC_VFPEARPCNT_FPMPEARPCNT_SHIFT 0 +#define I40E_GLHMC_VFPEARPCNT_FPMPEARPCNT_MASK (0x1FFFFFFF << I40E_GLHMC_VFPEARPCNT_FPMPEARPCNT_SHIFT) +#define I40E_GLHMC_VFPECQBASE(_i) (0x000Cc200 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPECQBASE_MAX_INDEX 31 +#define I40E_GLHMC_VFPECQBASE_FPMPECQBASE_SHIFT 0 +#define I40E_GLHMC_VFPECQBASE_FPMPECQBASE_MASK (0xFFFFFF << I40E_GLHMC_VFPECQBASE_FPMPECQBASE_SHIFT) +#define I40E_GLHMC_VFPECQCNT(_i) (0x000Cc300 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPECQCNT_MAX_INDEX 31 +#define I40E_GLHMC_VFPECQCNT_FPMPECQCNT_SHIFT 0 +#define I40E_GLHMC_VFPECQCNT_FPMPECQCNT_MASK (0x1FFFFFFF << I40E_GLHMC_VFPECQCNT_FPMPECQCNT_SHIFT) +#define I40E_GLHMC_VFPEHTCNT(_i) (0x000Cc700 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPEHTCNT_MAX_INDEX 31 +#define I40E_GLHMC_VFPEHTCNT_FPMPEHTCNT_SHIFT 0 +#define I40E_GLHMC_VFPEHTCNT_FPMPEHTCNT_MASK (0x1FFFFFFF << I40E_GLHMC_VFPEHTCNT_FPMPEHTCNT_SHIFT) +#define I40E_GLHMC_VFPEHTEBASE(_i) (0x000Cc600 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPEHTEBASE_MAX_INDEX 31 +#define I40E_GLHMC_VFPEHTEBASE_FPMPEHTEBASE_SHIFT 0 +#define I40E_GLHMC_VFPEHTEBASE_FPMPEHTEBASE_MASK (0xFFFFFF << I40E_GLHMC_VFPEHTEBASE_FPMPEHTEBASE_SHIFT) +#define I40E_GLHMC_VFPEMRBASE(_i) (0x000Ccc00 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPEMRBASE_MAX_INDEX 31 +#define I40E_GLHMC_VFPEMRBASE_FPMPEMRBASE_SHIFT 0 +#define I40E_GLHMC_VFPEMRBASE_FPMPEMRBASE_MASK (0xFFFFFF << I40E_GLHMC_VFPEMRBASE_FPMPEMRBASE_SHIFT) +#define I40E_GLHMC_VFPEMRCNT(_i) (0x000Ccd00 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPEMRCNT_MAX_INDEX 31 +#define I40E_GLHMC_VFPEMRCNT_FPMPEMRSZ_SHIFT 0 +#define I40E_GLHMC_VFPEMRCNT_FPMPEMRSZ_MASK (0x1FFFFFFF << I40E_GLHMC_VFPEMRCNT_FPMPEMRSZ_SHIFT) +#define I40E_GLHMC_VFPEPBLBASE(_i) (0x000Cd800 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPEPBLBASE_MAX_INDEX 31 +#define I40E_GLHMC_VFPEPBLBASE_FPMPEPBLBASE_SHIFT 0 +#define I40E_GLHMC_VFPEPBLBASE_FPMPEPBLBASE_MASK (0xFFFFFF << I40E_GLHMC_VFPEPBLBASE_FPMPEPBLBASE_SHIFT) +#define I40E_GLHMC_VFPEPBLCNT(_i) (0x000Cd900 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPEPBLCNT_MAX_INDEX 31 +#define I40E_GLHMC_VFPEPBLCNT_FPMPEPBLCNT_SHIFT 0 +#define I40E_GLHMC_VFPEPBLCNT_FPMPEPBLCNT_MASK (0x1FFFFFFF << I40E_GLHMC_VFPEPBLCNT_FPMPEPBLCNT_SHIFT) +#define I40E_GLHMC_VFPEQ1BASE(_i) (0x000Cd200 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPEQ1BASE_MAX_INDEX 31 +#define I40E_GLHMC_VFPEQ1BASE_FPMPEQ1BASE_SHIFT 0 +#define I40E_GLHMC_VFPEQ1BASE_FPMPEQ1BASE_MASK (0xFFFFFF << I40E_GLHMC_VFPEQ1BASE_FPMPEQ1BASE_SHIFT) +#define I40E_GLHMC_VFPEQ1CNT(_i) (0x000Cd300 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPEQ1CNT_MAX_INDEX 31 +#define I40E_GLHMC_VFPEQ1CNT_FPMPEQ1CNT_SHIFT 0 +#define I40E_GLHMC_VFPEQ1CNT_FPMPEQ1CNT_MASK (0x1FFFFFFF << I40E_GLHMC_VFPEQ1CNT_FPMPEQ1CNT_SHIFT) +#define I40E_GLHMC_VFPEQ1FLBASE(_i) (0x000Cd400 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPEQ1FLBASE_MAX_INDEX 31 +#define I40E_GLHMC_VFPEQ1FLBASE_FPMPEQ1FLBASE_SHIFT 0 +#define I40E_GLHMC_VFPEQ1FLBASE_FPMPEQ1FLBASE_MASK (0xFFFFFF << I40E_GLHMC_VFPEQ1FLBASE_FPMPEQ1FLBASE_SHIFT) +#define I40E_GLHMC_VFPEQ1FLCNT(_i) (0x000Cd500 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPEQ1FLCNT_MAX_INDEX 31 +#define I40E_GLHMC_VFPEQ1FLCNT_FPMPEQ1FLCNT_SHIFT 0 +#define I40E_GLHMC_VFPEQ1FLCNT_FPMPEQ1FLCNT_MASK (0x1FFFFFFF << I40E_GLHMC_VFPEQ1FLCNT_FPMPEQ1FLCNT_SHIFT) +#define I40E_GLHMC_VFPEQPBASE(_i) (0x000Cc000 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPEQPBASE_MAX_INDEX 31 +#define I40E_GLHMC_VFPEQPBASE_FPMPEQPBASE_SHIFT 0 +#define I40E_GLHMC_VFPEQPBASE_FPMPEQPBASE_MASK (0xFFFFFF << I40E_GLHMC_VFPEQPBASE_FPMPEQPBASE_SHIFT) +#define I40E_GLHMC_VFPEQPCNT(_i) (0x000Cc100 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPEQPCNT_MAX_INDEX 31 +#define I40E_GLHMC_VFPEQPCNT_FPMPEQPCNT_SHIFT 0 +#define I40E_GLHMC_VFPEQPCNT_FPMPEQPCNT_MASK (0x1FFFFFFF << I40E_GLHMC_VFPEQPCNT_FPMPEQPCNT_SHIFT) +#define I40E_GLHMC_VFPESRQBASE(_i) (0x000Cc400 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPESRQBASE_MAX_INDEX 31 +#define I40E_GLHMC_VFPESRQBASE_FPMPESRQBASE_SHIFT 0 +#define I40E_GLHMC_VFPESRQBASE_FPMPESRQBASE_MASK (0xFFFFFF << I40E_GLHMC_VFPESRQBASE_FPMPESRQBASE_SHIFT) +#define I40E_GLHMC_VFPESRQCNT(_i) (0x000Cc500 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPESRQCNT_MAX_INDEX 31 +#define I40E_GLHMC_VFPESRQCNT_FPMPESRQCNT_SHIFT 0 +#define I40E_GLHMC_VFPESRQCNT_FPMPESRQCNT_MASK (0x1FFFFFFF << I40E_GLHMC_VFPESRQCNT_FPMPESRQCNT_SHIFT) +#define I40E_GLHMC_VFPETIMERBASE(_i) (0x000CDA00 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPETIMERBASE_MAX_INDEX 31 +#define I40E_GLHMC_VFPETIMERBASE_FPMPETIMERBASE_SHIFT 0 +#define I40E_GLHMC_VFPETIMERBASE_FPMPETIMERBASE_MASK (0xFFFFFF << I40E_GLHMC_VFPETIMERBASE_FPMPETIMERBASE_SHIFT) +#define I40E_GLHMC_VFPETIMERCNT(_i) (0x000CDB00 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPETIMERCNT_MAX_INDEX 31 +#define I40E_GLHMC_VFPETIMERCNT_FPMPETIMERCNT_SHIFT 0 +#define I40E_GLHMC_VFPETIMERCNT_FPMPETIMERCNT_MASK (0x1FFFFFFF << I40E_GLHMC_VFPETIMERCNT_FPMPETIMERCNT_SHIFT) +#define I40E_GLHMC_VFPEXFBASE(_i) (0x000Cce00 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPEXFBASE_MAX_INDEX 31 +#define I40E_GLHMC_VFPEXFBASE_FPMPEXFBASE_SHIFT 0 +#define I40E_GLHMC_VFPEXFBASE_FPMPEXFBASE_MASK (0xFFFFFF << I40E_GLHMC_VFPEXFBASE_FPMPEXFBASE_SHIFT) +#define I40E_GLHMC_VFPEXFCNT(_i) (0x000Ccf00 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPEXFCNT_MAX_INDEX 31 +#define I40E_GLHMC_VFPEXFCNT_FPMPEXFCNT_SHIFT 0 +#define I40E_GLHMC_VFPEXFCNT_FPMPEXFCNT_MASK (0x1FFFFFFF << I40E_GLHMC_VFPEXFCNT_FPMPEXFCNT_SHIFT) +#define I40E_GLHMC_VFPEXFFLBASE(_i) (0x000Cd000 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPEXFFLBASE_MAX_INDEX 31 +#define I40E_GLHMC_VFPEXFFLBASE_FPMPEXFFLBASE_SHIFT 0 +#define I40E_GLHMC_VFPEXFFLBASE_FPMPEXFFLBASE_MASK (0xFFFFFF << I40E_GLHMC_VFPEXFFLBASE_FPMPEXFFLBASE_SHIFT) +#define I40E_GLHMC_VFPEXFFLCNT(_i) (0x000Cd100 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFPEXFFLCNT_MAX_INDEX 31 +#define I40E_GLHMC_VFPEXFFLCNT_FPMPEXFFLCNT_SHIFT 0 +#define I40E_GLHMC_VFPEXFFLCNT_FPMPEXFFLCNT_MASK (0x1FFFFFFF << I40E_GLHMC_VFPEXFFLCNT_FPMPEXFFLCNT_SHIFT) +#define I40E_GLHMC_VFSDPART(_i) (0x000C8800 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLHMC_VFSDPART_MAX_INDEX 31 +#define I40E_GLHMC_VFSDPART_PMSDBASE_SHIFT 0 +#define I40E_GLHMC_VFSDPART_PMSDBASE_MASK (0xFFF << I40E_GLHMC_VFSDPART_PMSDBASE_SHIFT) +#define I40E_GLHMC_VFSDPART_PMSDSIZE_SHIFT 16 +#define I40E_GLHMC_VFSDPART_PMSDSIZE_MASK (0x1FFF << I40E_GLHMC_VFSDPART_PMSDSIZE_SHIFT) +#define I40E_PFHMC_ERRORDATA 0x000C0500 +#define I40E_PFHMC_ERRORDATA_HMC_ERROR_DATA_SHIFT 0 +#define I40E_PFHMC_ERRORDATA_HMC_ERROR_DATA_MASK (0x3FFFFFFF << I40E_PFHMC_ERRORDATA_HMC_ERROR_DATA_SHIFT) +#define I40E_PFHMC_ERRORINFO 0x000C0400 +#define I40E_PFHMC_ERRORINFO_PMF_INDEX_SHIFT 0 +#define I40E_PFHMC_ERRORINFO_PMF_INDEX_MASK (0x1F << I40E_PFHMC_ERRORINFO_PMF_INDEX_SHIFT) +#define I40E_PFHMC_ERRORINFO_PMF_ISVF_SHIFT 7 +#define I40E_PFHMC_ERRORINFO_PMF_ISVF_MASK (0x1 << I40E_PFHMC_ERRORINFO_PMF_ISVF_SHIFT) +#define I40E_PFHMC_ERRORINFO_HMC_ERROR_TYPE_SHIFT 8 +#define I40E_PFHMC_ERRORINFO_HMC_ERROR_TYPE_MASK (0xF << I40E_PFHMC_ERRORINFO_HMC_ERROR_TYPE_SHIFT) +#define I40E_PFHMC_ERRORINFO_HMC_OBJECT_TYPE_SHIFT 16 +#define I40E_PFHMC_ERRORINFO_HMC_OBJECT_TYPE_MASK (0x1F << I40E_PFHMC_ERRORINFO_HMC_OBJECT_TYPE_SHIFT) +#define I40E_PFHMC_ERRORINFO_ERROR_DETECTED_SHIFT 31 +#define I40E_PFHMC_ERRORINFO_ERROR_DETECTED_MASK (0x1 << I40E_PFHMC_ERRORINFO_ERROR_DETECTED_SHIFT) +#define I40E_PFHMC_PDINV 0x000C0300 +#define I40E_PFHMC_PDINV_PMSDIDX_SHIFT 0 +#define I40E_PFHMC_PDINV_PMSDIDX_MASK (0xFFF << I40E_PFHMC_PDINV_PMSDIDX_SHIFT) +#define I40E_PFHMC_PDINV_PMPDIDX_SHIFT 16 +#define I40E_PFHMC_PDINV_PMPDIDX_MASK (0x1FF << I40E_PFHMC_PDINV_PMPDIDX_SHIFT) +#define I40E_PFHMC_SDCMD 0x000C0000 +#define I40E_PFHMC_SDCMD_PMSDIDX_SHIFT 0 +#define I40E_PFHMC_SDCMD_PMSDIDX_MASK (0xFFF << I40E_PFHMC_SDCMD_PMSDIDX_SHIFT) +#define I40E_PFHMC_SDCMD_PMSDWR_SHIFT 31 +#define I40E_PFHMC_SDCMD_PMSDWR_MASK (0x1 << I40E_PFHMC_SDCMD_PMSDWR_SHIFT) +#define I40E_PFHMC_SDDATAHIGH 0x000C0200 +#define I40E_PFHMC_SDDATAHIGH_PMSDDATAHIGH_SHIFT 0 +#define I40E_PFHMC_SDDATAHIGH_PMSDDATAHIGH_MASK (0xFFFFFFFF << I40E_PFHMC_SDDATAHIGH_PMSDDATAHIGH_SHIFT) +#define I40E_PFHMC_SDDATALOW 0x000C0100 +#define I40E_PFHMC_SDDATALOW_PMSDVALID_SHIFT 0 +#define I40E_PFHMC_SDDATALOW_PMSDVALID_MASK (0x1 << I40E_PFHMC_SDDATALOW_PMSDVALID_SHIFT) +#define I40E_PFHMC_SDDATALOW_PMSDTYPE_SHIFT 1 +#define I40E_PFHMC_SDDATALOW_PMSDTYPE_MASK (0x1 << I40E_PFHMC_SDDATALOW_PMSDTYPE_SHIFT) +#define I40E_PFHMC_SDDATALOW_PMSDBPCOUNT_SHIFT 2 +#define I40E_PFHMC_SDDATALOW_PMSDBPCOUNT_MASK (0x3FF << I40E_PFHMC_SDDATALOW_PMSDBPCOUNT_SHIFT) +#define I40E_PFHMC_SDDATALOW_PMSDDATALOW_SHIFT 12 +#define I40E_PFHMC_SDDATALOW_PMSDDATALOW_MASK (0xFFFFF << I40E_PFHMC_SDDATALOW_PMSDDATALOW_SHIFT) +#define I40E_GL_UFUSE 0x00094008 +#define I40E_GL_UFUSE_FOUR_PORT_ENABLE_SHIFT 1 +#define I40E_GL_UFUSE_FOUR_PORT_ENABLE_MASK (0x1 << I40E_GL_UFUSE_FOUR_PORT_ENABLE_SHIFT) +#define I40E_GL_UFUSE_NIC_ID_SHIFT 2 +#define I40E_GL_UFUSE_NIC_ID_MASK (0x1 << I40E_GL_UFUSE_NIC_ID_SHIFT) +#define I40E_GL_UFUSE_ULT_LOCKOUT_SHIFT 10 +#define I40E_GL_UFUSE_ULT_LOCKOUT_MASK (0x1 << I40E_GL_UFUSE_ULT_LOCKOUT_SHIFT) +#define I40E_GL_UFUSE_CLS_LOCKOUT_SHIFT 11 +#define I40E_GL_UFUSE_CLS_LOCKOUT_MASK (0x1 << I40E_GL_UFUSE_CLS_LOCKOUT_SHIFT) +#define I40E_EMPINT_GPIO_ENA 0x00088188 +#define I40E_EMPINT_GPIO_ENA_GPIO0_ENA_SHIFT 0 +#define I40E_EMPINT_GPIO_ENA_GPIO0_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO0_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO1_ENA_SHIFT 1 +#define I40E_EMPINT_GPIO_ENA_GPIO1_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO1_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO2_ENA_SHIFT 2 +#define I40E_EMPINT_GPIO_ENA_GPIO2_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO2_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO3_ENA_SHIFT 3 +#define I40E_EMPINT_GPIO_ENA_GPIO3_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO3_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO4_ENA_SHIFT 4 +#define I40E_EMPINT_GPIO_ENA_GPIO4_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO4_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO5_ENA_SHIFT 5 +#define I40E_EMPINT_GPIO_ENA_GPIO5_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO5_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO6_ENA_SHIFT 6 +#define I40E_EMPINT_GPIO_ENA_GPIO6_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO6_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO7_ENA_SHIFT 7 +#define I40E_EMPINT_GPIO_ENA_GPIO7_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO7_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO8_ENA_SHIFT 8 +#define I40E_EMPINT_GPIO_ENA_GPIO8_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO8_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO9_ENA_SHIFT 9 +#define I40E_EMPINT_GPIO_ENA_GPIO9_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO9_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO10_ENA_SHIFT 10 +#define I40E_EMPINT_GPIO_ENA_GPIO10_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO10_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO11_ENA_SHIFT 11 +#define I40E_EMPINT_GPIO_ENA_GPIO11_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO11_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO12_ENA_SHIFT 12 +#define I40E_EMPINT_GPIO_ENA_GPIO12_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO12_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO13_ENA_SHIFT 13 +#define I40E_EMPINT_GPIO_ENA_GPIO13_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO13_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO14_ENA_SHIFT 14 +#define I40E_EMPINT_GPIO_ENA_GPIO14_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO14_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO15_ENA_SHIFT 15 +#define I40E_EMPINT_GPIO_ENA_GPIO15_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO15_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO16_ENA_SHIFT 16 +#define I40E_EMPINT_GPIO_ENA_GPIO16_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO16_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO17_ENA_SHIFT 17 +#define I40E_EMPINT_GPIO_ENA_GPIO17_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO17_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO18_ENA_SHIFT 18 +#define I40E_EMPINT_GPIO_ENA_GPIO18_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO18_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO19_ENA_SHIFT 19 +#define I40E_EMPINT_GPIO_ENA_GPIO19_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO19_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO20_ENA_SHIFT 20 +#define I40E_EMPINT_GPIO_ENA_GPIO20_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO20_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO21_ENA_SHIFT 21 +#define I40E_EMPINT_GPIO_ENA_GPIO21_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO21_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO22_ENA_SHIFT 22 +#define I40E_EMPINT_GPIO_ENA_GPIO22_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO22_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO23_ENA_SHIFT 23 +#define I40E_EMPINT_GPIO_ENA_GPIO23_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO23_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO24_ENA_SHIFT 24 +#define I40E_EMPINT_GPIO_ENA_GPIO24_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO24_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO25_ENA_SHIFT 25 +#define I40E_EMPINT_GPIO_ENA_GPIO25_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO25_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO26_ENA_SHIFT 26 +#define I40E_EMPINT_GPIO_ENA_GPIO26_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO26_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO27_ENA_SHIFT 27 +#define I40E_EMPINT_GPIO_ENA_GPIO27_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO27_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO28_ENA_SHIFT 28 +#define I40E_EMPINT_GPIO_ENA_GPIO28_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO28_ENA_SHIFT) +#define I40E_EMPINT_GPIO_ENA_GPIO29_ENA_SHIFT 29 +#define I40E_EMPINT_GPIO_ENA_GPIO29_ENA_MASK (0x1 << I40E_EMPINT_GPIO_ENA_GPIO29_ENA_SHIFT) +#define I40E_PFGEN_PORTMDIO_NUM 0x0003F100 +#define I40E_PFGEN_PORTMDIO_NUM_PORT_NUM_SHIFT 0 +#define I40E_PFGEN_PORTMDIO_NUM_PORT_NUM_MASK (0x3 << I40E_PFGEN_PORTMDIO_NUM_PORT_NUM_SHIFT) +#define I40E_PFGEN_PORTMDIO_NUM_VFLINK_STAT_ENA_SHIFT 4 +#define I40E_PFGEN_PORTMDIO_NUM_VFLINK_STAT_ENA_MASK (0x1 << I40E_PFGEN_PORTMDIO_NUM_VFLINK_STAT_ENA_SHIFT) +#define I40E_PFINT_AEQCTL 0x00038700 +#define I40E_PFINT_AEQCTL_MSIX_INDX_SHIFT 0 +#define I40E_PFINT_AEQCTL_MSIX_INDX_MASK (0xFF << I40E_PFINT_AEQCTL_MSIX_INDX_SHIFT) +#define I40E_PFINT_AEQCTL_ITR_INDX_SHIFT 11 +#define I40E_PFINT_AEQCTL_ITR_INDX_MASK (0x3 << I40E_PFINT_AEQCTL_ITR_INDX_SHIFT) +#define I40E_PFINT_AEQCTL_MSIX0_INDX_SHIFT 13 +#define I40E_PFINT_AEQCTL_MSIX0_INDX_MASK (0x7 << I40E_PFINT_AEQCTL_MSIX0_INDX_SHIFT) +#define I40E_PFINT_AEQCTL_CAUSE_ENA_SHIFT 30 +#define I40E_PFINT_AEQCTL_CAUSE_ENA_MASK (0x1 << I40E_PFINT_AEQCTL_CAUSE_ENA_SHIFT) +#define I40E_PFINT_AEQCTL_INTEVENT_SHIFT 31 +#define I40E_PFINT_AEQCTL_INTEVENT_MASK (0x1 << I40E_PFINT_AEQCTL_INTEVENT_SHIFT) +#define I40E_PFINT_CEQCTL(_INTPF) (0x00036800 + ((_INTPF) * 4)) /* _i=0...511 */ +#define I40E_PFINT_CEQCTL_MAX_INDEX 511 +#define I40E_PFINT_CEQCTL_MSIX_INDX_SHIFT 0 +#define I40E_PFINT_CEQCTL_MSIX_INDX_MASK (0xFF << I40E_PFINT_CEQCTL_MSIX_INDX_SHIFT) +#define I40E_PFINT_CEQCTL_ITR_INDX_SHIFT 11 +#define I40E_PFINT_CEQCTL_ITR_INDX_MASK (0x3 << I40E_PFINT_CEQCTL_ITR_INDX_SHIFT) +#define I40E_PFINT_CEQCTL_MSIX0_INDX_SHIFT 13 +#define I40E_PFINT_CEQCTL_MSIX0_INDX_MASK (0x7 << I40E_PFINT_CEQCTL_MSIX0_INDX_SHIFT) +#define I40E_PFINT_CEQCTL_NEXTQ_INDX_SHIFT 16 +#define I40E_PFINT_CEQCTL_NEXTQ_INDX_MASK (0x7FF << I40E_PFINT_CEQCTL_NEXTQ_INDX_SHIFT) +#define I40E_PFINT_CEQCTL_NEXTQ_TYPE_SHIFT 27 +#define I40E_PFINT_CEQCTL_NEXTQ_TYPE_MASK (0x3 << I40E_PFINT_CEQCTL_NEXTQ_TYPE_SHIFT) +#define I40E_PFINT_CEQCTL_CAUSE_ENA_SHIFT 30 +#define I40E_PFINT_CEQCTL_CAUSE_ENA_MASK (0x1 << I40E_PFINT_CEQCTL_CAUSE_ENA_SHIFT) +#define I40E_PFINT_CEQCTL_INTEVENT_SHIFT 31 +#define I40E_PFINT_CEQCTL_INTEVENT_MASK (0x1 << I40E_PFINT_CEQCTL_INTEVENT_SHIFT) +#define I40E_PFINT_DYN_CTL0 0x00038480 +#define I40E_PFINT_DYN_CTL0_INTENA_SHIFT 0 +#define I40E_PFINT_DYN_CTL0_INTENA_MASK (0x1 << I40E_PFINT_DYN_CTL0_INTENA_SHIFT) +#define I40E_PFINT_DYN_CTL0_CLEARPBA_SHIFT 1 +#define I40E_PFINT_DYN_CTL0_CLEARPBA_MASK (0x1 << I40E_PFINT_DYN_CTL0_CLEARPBA_SHIFT) +#define I40E_PFINT_DYN_CTL0_SWINT_TRIG_SHIFT 2 +#define I40E_PFINT_DYN_CTL0_SWINT_TRIG_MASK (0x1 << I40E_PFINT_DYN_CTL0_SWINT_TRIG_SHIFT) +#define I40E_PFINT_DYN_CTL0_ITR_INDX_SHIFT 3 +#define I40E_PFINT_DYN_CTL0_ITR_INDX_MASK (0x3 << I40E_PFINT_DYN_CTL0_ITR_INDX_SHIFT) +#define I40E_PFINT_DYN_CTL0_INTERVAL_SHIFT 5 +#define I40E_PFINT_DYN_CTL0_INTERVAL_MASK (0xFFF << I40E_PFINT_DYN_CTL0_INTERVAL_SHIFT) +#define I40E_PFINT_DYN_CTL0_SW_ITR_INDX_ENA_SHIFT 24 +#define I40E_PFINT_DYN_CTL0_SW_ITR_INDX_ENA_MASK (0x1 << I40E_PFINT_DYN_CTL0_SW_ITR_INDX_ENA_SHIFT) +#define I40E_PFINT_DYN_CTL0_SW_ITR_INDX_SHIFT 25 +#define I40E_PFINT_DYN_CTL0_SW_ITR_INDX_MASK (0x3 << I40E_PFINT_DYN_CTL0_SW_ITR_INDX_SHIFT) +#define I40E_PFINT_DYN_CTL0_INTENA_MSK_SHIFT 31 +#define I40E_PFINT_DYN_CTL0_INTENA_MSK_MASK (0x1 << I40E_PFINT_DYN_CTL0_INTENA_MSK_SHIFT) +#define I40E_PFINT_DYN_CTLN(_INTPF) (0x00034800 + ((_INTPF) * 4)) /* _i=0...511 */ +#define I40E_PFINT_DYN_CTLN_MAX_INDEX 511 +#define I40E_PFINT_DYN_CTLN_INTENA_SHIFT 0 +#define I40E_PFINT_DYN_CTLN_INTENA_MASK (0x1 << I40E_PFINT_DYN_CTLN_INTENA_SHIFT) +#define I40E_PFINT_DYN_CTLN_CLEARPBA_SHIFT 1 +#define I40E_PFINT_DYN_CTLN_CLEARPBA_MASK (0x1 << I40E_PFINT_DYN_CTLN_CLEARPBA_SHIFT) +#define I40E_PFINT_DYN_CTLN_SWINT_TRIG_SHIFT 2 +#define I40E_PFINT_DYN_CTLN_SWINT_TRIG_MASK (0x1 << I40E_PFINT_DYN_CTLN_SWINT_TRIG_SHIFT) +#define I40E_PFINT_DYN_CTLN_ITR_INDX_SHIFT 3 +#define I40E_PFINT_DYN_CTLN_ITR_INDX_MASK (0x3 << I40E_PFINT_DYN_CTLN_ITR_INDX_SHIFT) +#define I40E_PFINT_DYN_CTLN_INTERVAL_SHIFT 5 +#define I40E_PFINT_DYN_CTLN_INTERVAL_MASK (0xFFF << I40E_PFINT_DYN_CTLN_INTERVAL_SHIFT) +#define I40E_PFINT_DYN_CTLN_SW_ITR_INDX_ENA_SHIFT 24 +#define I40E_PFINT_DYN_CTLN_SW_ITR_INDX_ENA_MASK (0x1 << I40E_PFINT_DYN_CTLN_SW_ITR_INDX_ENA_SHIFT) +#define I40E_PFINT_DYN_CTLN_SW_ITR_INDX_SHIFT 25 +#define I40E_PFINT_DYN_CTLN_SW_ITR_INDX_MASK (0x3 << I40E_PFINT_DYN_CTLN_SW_ITR_INDX_SHIFT) +#define I40E_PFINT_DYN_CTLN_INTENA_MSK_SHIFT 31 +#define I40E_PFINT_DYN_CTLN_INTENA_MSK_MASK (0x1 << I40E_PFINT_DYN_CTLN_INTENA_MSK_SHIFT) +#define I40E_PFINT_GPIO_ENA 0x00088080 +#define I40E_PFINT_GPIO_ENA_GPIO0_ENA_SHIFT 0 +#define I40E_PFINT_GPIO_ENA_GPIO0_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO0_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO1_ENA_SHIFT 1 +#define I40E_PFINT_GPIO_ENA_GPIO1_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO1_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO2_ENA_SHIFT 2 +#define I40E_PFINT_GPIO_ENA_GPIO2_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO2_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO3_ENA_SHIFT 3 +#define I40E_PFINT_GPIO_ENA_GPIO3_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO3_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO4_ENA_SHIFT 4 +#define I40E_PFINT_GPIO_ENA_GPIO4_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO4_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO5_ENA_SHIFT 5 +#define I40E_PFINT_GPIO_ENA_GPIO5_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO5_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO6_ENA_SHIFT 6 +#define I40E_PFINT_GPIO_ENA_GPIO6_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO6_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO7_ENA_SHIFT 7 +#define I40E_PFINT_GPIO_ENA_GPIO7_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO7_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO8_ENA_SHIFT 8 +#define I40E_PFINT_GPIO_ENA_GPIO8_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO8_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO9_ENA_SHIFT 9 +#define I40E_PFINT_GPIO_ENA_GPIO9_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO9_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO10_ENA_SHIFT 10 +#define I40E_PFINT_GPIO_ENA_GPIO10_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO10_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO11_ENA_SHIFT 11 +#define I40E_PFINT_GPIO_ENA_GPIO11_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO11_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO12_ENA_SHIFT 12 +#define I40E_PFINT_GPIO_ENA_GPIO12_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO12_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO13_ENA_SHIFT 13 +#define I40E_PFINT_GPIO_ENA_GPIO13_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO13_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO14_ENA_SHIFT 14 +#define I40E_PFINT_GPIO_ENA_GPIO14_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO14_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO15_ENA_SHIFT 15 +#define I40E_PFINT_GPIO_ENA_GPIO15_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO15_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO16_ENA_SHIFT 16 +#define I40E_PFINT_GPIO_ENA_GPIO16_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO16_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO17_ENA_SHIFT 17 +#define I40E_PFINT_GPIO_ENA_GPIO17_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO17_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO18_ENA_SHIFT 18 +#define I40E_PFINT_GPIO_ENA_GPIO18_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO18_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO19_ENA_SHIFT 19 +#define I40E_PFINT_GPIO_ENA_GPIO19_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO19_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO20_ENA_SHIFT 20 +#define I40E_PFINT_GPIO_ENA_GPIO20_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO20_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO21_ENA_SHIFT 21 +#define I40E_PFINT_GPIO_ENA_GPIO21_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO21_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO22_ENA_SHIFT 22 +#define I40E_PFINT_GPIO_ENA_GPIO22_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO22_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO23_ENA_SHIFT 23 +#define I40E_PFINT_GPIO_ENA_GPIO23_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO23_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO24_ENA_SHIFT 24 +#define I40E_PFINT_GPIO_ENA_GPIO24_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO24_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO25_ENA_SHIFT 25 +#define I40E_PFINT_GPIO_ENA_GPIO25_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO25_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO26_ENA_SHIFT 26 +#define I40E_PFINT_GPIO_ENA_GPIO26_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO26_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO27_ENA_SHIFT 27 +#define I40E_PFINT_GPIO_ENA_GPIO27_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO27_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO28_ENA_SHIFT 28 +#define I40E_PFINT_GPIO_ENA_GPIO28_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO28_ENA_SHIFT) +#define I40E_PFINT_GPIO_ENA_GPIO29_ENA_SHIFT 29 +#define I40E_PFINT_GPIO_ENA_GPIO29_ENA_MASK (0x1 << I40E_PFINT_GPIO_ENA_GPIO29_ENA_SHIFT) +#define I40E_PFINT_ICR0 0x00038780 +#define I40E_PFINT_ICR0_INTEVENT_SHIFT 0 +#define I40E_PFINT_ICR0_INTEVENT_MASK (0x1 << I40E_PFINT_ICR0_INTEVENT_SHIFT) +#define I40E_PFINT_ICR0_QUEUE_0_SHIFT 1 +#define I40E_PFINT_ICR0_QUEUE_0_MASK (0x1 << I40E_PFINT_ICR0_QUEUE_0_SHIFT) +#define I40E_PFINT_ICR0_QUEUE_1_SHIFT 2 +#define I40E_PFINT_ICR0_QUEUE_1_MASK (0x1 << I40E_PFINT_ICR0_QUEUE_1_SHIFT) +#define I40E_PFINT_ICR0_QUEUE_2_SHIFT 3 +#define I40E_PFINT_ICR0_QUEUE_2_MASK (0x1 << I40E_PFINT_ICR0_QUEUE_2_SHIFT) +#define I40E_PFINT_ICR0_QUEUE_3_SHIFT 4 +#define I40E_PFINT_ICR0_QUEUE_3_MASK (0x1 << I40E_PFINT_ICR0_QUEUE_3_SHIFT) +#define I40E_PFINT_ICR0_QUEUE_4_SHIFT 5 +#define I40E_PFINT_ICR0_QUEUE_4_MASK (0x1 << I40E_PFINT_ICR0_QUEUE_4_SHIFT) +#define I40E_PFINT_ICR0_QUEUE_5_SHIFT 6 +#define I40E_PFINT_ICR0_QUEUE_5_MASK (0x1 << I40E_PFINT_ICR0_QUEUE_5_SHIFT) +#define I40E_PFINT_ICR0_QUEUE_6_SHIFT 7 +#define I40E_PFINT_ICR0_QUEUE_6_MASK (0x1 << I40E_PFINT_ICR0_QUEUE_6_SHIFT) +#define I40E_PFINT_ICR0_QUEUE_7_SHIFT 8 +#define I40E_PFINT_ICR0_QUEUE_7_MASK (0x1 << I40E_PFINT_ICR0_QUEUE_7_SHIFT) +#define I40E_PFINT_ICR0_ECC_ERR_SHIFT 16 +#define I40E_PFINT_ICR0_ECC_ERR_MASK (0x1 << I40E_PFINT_ICR0_ECC_ERR_SHIFT) +#define I40E_PFINT_ICR0_MAL_DETECT_SHIFT 19 +#define I40E_PFINT_ICR0_MAL_DETECT_MASK (0x1 << I40E_PFINT_ICR0_MAL_DETECT_SHIFT) +#define I40E_PFINT_ICR0_GRST_SHIFT 20 +#define I40E_PFINT_ICR0_GRST_MASK (0x1 << I40E_PFINT_ICR0_GRST_SHIFT) +#define I40E_PFINT_ICR0_PCI_EXCEPTION_SHIFT 21 +#define I40E_PFINT_ICR0_PCI_EXCEPTION_MASK (0x1 << I40E_PFINT_ICR0_PCI_EXCEPTION_SHIFT) +#define I40E_PFINT_ICR0_GPIO_SHIFT 22 +#define I40E_PFINT_ICR0_GPIO_MASK (0x1 << I40E_PFINT_ICR0_GPIO_SHIFT) +#define I40E_PFINT_ICR0_TIMESYNC_SHIFT 23 +#define I40E_PFINT_ICR0_TIMESYNC_MASK (0x1 << I40E_PFINT_ICR0_TIMESYNC_SHIFT) +#define I40E_PFINT_ICR0_STORM_DETECT_SHIFT 24 +#define I40E_PFINT_ICR0_STORM_DETECT_MASK (0x1 << I40E_PFINT_ICR0_STORM_DETECT_SHIFT) +#define I40E_PFINT_ICR0_LINK_STAT_CHANGE_SHIFT 25 +#define I40E_PFINT_ICR0_LINK_STAT_CHANGE_MASK (0x1 << I40E_PFINT_ICR0_LINK_STAT_CHANGE_SHIFT) +#define I40E_PFINT_ICR0_HMC_ERR_SHIFT 26 +#define I40E_PFINT_ICR0_HMC_ERR_MASK (0x1 << I40E_PFINT_ICR0_HMC_ERR_SHIFT) +#define I40E_PFINT_ICR0_PE_CRITERR_SHIFT 28 +#define I40E_PFINT_ICR0_PE_CRITERR_MASK (0x1 << I40E_PFINT_ICR0_PE_CRITERR_SHIFT) +#define I40E_PFINT_ICR0_VFLR_SHIFT 29 +#define I40E_PFINT_ICR0_VFLR_MASK (0x1 << I40E_PFINT_ICR0_VFLR_SHIFT) +#define I40E_PFINT_ICR0_ADMINQ_SHIFT 30 +#define I40E_PFINT_ICR0_ADMINQ_MASK (0x1 << I40E_PFINT_ICR0_ADMINQ_SHIFT) +#define I40E_PFINT_ICR0_SWINT_SHIFT 31 +#define I40E_PFINT_ICR0_SWINT_MASK (0x1 << I40E_PFINT_ICR0_SWINT_SHIFT) +#define I40E_PFINT_ICR0_ENA 0x00038800 +#define I40E_PFINT_ICR0_ENA_ECC_ERR_SHIFT 16 +#define I40E_PFINT_ICR0_ENA_ECC_ERR_MASK (0x1 << I40E_PFINT_ICR0_ENA_ECC_ERR_SHIFT) +#define I40E_PFINT_ICR0_ENA_MAL_DETECT_SHIFT 19 +#define I40E_PFINT_ICR0_ENA_MAL_DETECT_MASK (0x1 << I40E_PFINT_ICR0_ENA_MAL_DETECT_SHIFT) +#define I40E_PFINT_ICR0_ENA_GRST_SHIFT 20 +#define I40E_PFINT_ICR0_ENA_GRST_MASK (0x1 << I40E_PFINT_ICR0_ENA_GRST_SHIFT) +#define I40E_PFINT_ICR0_ENA_PCI_EXCEPTION_SHIFT 21 +#define I40E_PFINT_ICR0_ENA_PCI_EXCEPTION_MASK (0x1 << I40E_PFINT_ICR0_ENA_PCI_EXCEPTION_SHIFT) +#define I40E_PFINT_ICR0_ENA_GPIO_SHIFT 22 +#define I40E_PFINT_ICR0_ENA_GPIO_MASK (0x1 << I40E_PFINT_ICR0_ENA_GPIO_SHIFT) +#define I40E_PFINT_ICR0_ENA_TIMESYNC_SHIFT 23 +#define I40E_PFINT_ICR0_ENA_TIMESYNC_MASK (0x1 << I40E_PFINT_ICR0_ENA_TIMESYNC_SHIFT) +#define I40E_PFINT_ICR0_ENA_STORM_DETECT_SHIFT 24 +#define I40E_PFINT_ICR0_ENA_STORM_DETECT_MASK (0x1 << I40E_PFINT_ICR0_ENA_STORM_DETECT_SHIFT) +#define I40E_PFINT_ICR0_ENA_LINK_STAT_CHANGE_SHIFT 25 +#define I40E_PFINT_ICR0_ENA_LINK_STAT_CHANGE_MASK (0x1 << I40E_PFINT_ICR0_ENA_LINK_STAT_CHANGE_SHIFT) +#define I40E_PFINT_ICR0_ENA_HMC_ERR_SHIFT 26 +#define I40E_PFINT_ICR0_ENA_HMC_ERR_MASK (0x1 << I40E_PFINT_ICR0_ENA_HMC_ERR_SHIFT) +#define I40E_PFINT_ICR0_ENA_PE_CRITERR_SHIFT 28 +#define I40E_PFINT_ICR0_ENA_PE_CRITERR_MASK (0x1 << I40E_PFINT_ICR0_ENA_PE_CRITERR_SHIFT) +#define I40E_PFINT_ICR0_ENA_VFLR_SHIFT 29 +#define I40E_PFINT_ICR0_ENA_VFLR_MASK (0x1 << I40E_PFINT_ICR0_ENA_VFLR_SHIFT) +#define I40E_PFINT_ICR0_ENA_ADMINQ_SHIFT 30 +#define I40E_PFINT_ICR0_ENA_ADMINQ_MASK (0x1 << I40E_PFINT_ICR0_ENA_ADMINQ_SHIFT) +#define I40E_PFINT_ICR0_ENA_RSVD_SHIFT 31 +#define I40E_PFINT_ICR0_ENA_RSVD_MASK (0x1 << I40E_PFINT_ICR0_ENA_RSVD_SHIFT) +#define I40E_PFINT_ITR0(_i) (0x00038000 + ((_i) * 128)) /* _i=0...2 */ +#define I40E_PFINT_ITR0_MAX_INDEX 2 +#define I40E_PFINT_ITR0_INTERVAL_SHIFT 0 +#define I40E_PFINT_ITR0_INTERVAL_MASK (0xFFF << I40E_PFINT_ITR0_INTERVAL_SHIFT) +#define I40E_PFINT_ITRN(_i, _INTPF) (0x00030000 + ((_i) * 2048 + (_INTPF) * 4)) +#define I40E_PFINT_ITRN_MAX_INDEX 2 +#define I40E_PFINT_ITRN_INTERVAL_SHIFT 0 +#define I40E_PFINT_ITRN_INTERVAL_MASK (0xFFF << I40E_PFINT_ITRN_INTERVAL_SHIFT) +#define I40E_PFINT_LNKLST0 0x00038500 +#define I40E_PFINT_LNKLST0_FIRSTQ_INDX_SHIFT 0 +#define I40E_PFINT_LNKLST0_FIRSTQ_INDX_MASK (0x7FF << I40E_PFINT_LNKLST0_FIRSTQ_INDX_SHIFT) +#define I40E_PFINT_LNKLST0_FIRSTQ_TYPE_SHIFT 11 +#define I40E_PFINT_LNKLST0_FIRSTQ_TYPE_MASK (0x3 << I40E_PFINT_LNKLST0_FIRSTQ_TYPE_SHIFT) +#define I40E_PFINT_LNKLSTN(_INTPF) (0x00035000 + ((_INTPF) * 4)) /* _i=0...511 */ +#define I40E_PFINT_LNKLSTN_MAX_INDEX 511 +#define I40E_PFINT_LNKLSTN_FIRSTQ_INDX_SHIFT 0 +#define I40E_PFINT_LNKLSTN_FIRSTQ_INDX_MASK (0x7FF << I40E_PFINT_LNKLSTN_FIRSTQ_INDX_SHIFT) +#define I40E_PFINT_LNKLSTN_FIRSTQ_TYPE_SHIFT 11 +#define I40E_PFINT_LNKLSTN_FIRSTQ_TYPE_MASK (0x3 << I40E_PFINT_LNKLSTN_FIRSTQ_TYPE_SHIFT) +#define I40E_PFINT_RATE0 0x00038580 +#define I40E_PFINT_RATE0_INTERVAL_SHIFT 0 +#define I40E_PFINT_RATE0_INTERVAL_MASK (0x3F << I40E_PFINT_RATE0_INTERVAL_SHIFT) +#define I40E_PFINT_RATE0_INTRL_ENA_SHIFT 6 +#define I40E_PFINT_RATE0_INTRL_ENA_MASK (0x1 << I40E_PFINT_RATE0_INTRL_ENA_SHIFT) +#define I40E_PFINT_RATEN(_INTPF) (0x00035800 + ((_INTPF) * 4)) /* _i=0...511 */ +#define I40E_PFINT_RATEN_MAX_INDEX 511 +#define I40E_PFINT_RATEN_INTERVAL_SHIFT 0 +#define I40E_PFINT_RATEN_INTERVAL_MASK (0x3F << I40E_PFINT_RATEN_INTERVAL_SHIFT) +#define I40E_PFINT_RATEN_INTRL_ENA_SHIFT 6 +#define I40E_PFINT_RATEN_INTRL_ENA_MASK (0x1 << I40E_PFINT_RATEN_INTRL_ENA_SHIFT) +#define I40E_PFINT_STAT_CTL0 0x00038400 +#define I40E_PFINT_STAT_CTL0_OTHER_ITR_INDX_SHIFT 2 +#define I40E_PFINT_STAT_CTL0_OTHER_ITR_INDX_MASK (0x3 << I40E_PFINT_STAT_CTL0_OTHER_ITR_INDX_SHIFT) +#define I40E_QINT_RQCTL(_Q) (0x0003A000 + ((_Q) * 4)) /* _i=0...1535 */ +#define I40E_QINT_RQCTL_MAX_INDEX 1535 +#define I40E_QINT_RQCTL_MSIX_INDX_SHIFT 0 +#define I40E_QINT_RQCTL_MSIX_INDX_MASK (0xFF << I40E_QINT_RQCTL_MSIX_INDX_SHIFT) +#define I40E_QINT_RQCTL_ITR_INDX_SHIFT 11 +#define I40E_QINT_RQCTL_ITR_INDX_MASK (0x3 << I40E_QINT_RQCTL_ITR_INDX_SHIFT) +#define I40E_QINT_RQCTL_MSIX0_INDX_SHIFT 13 +#define I40E_QINT_RQCTL_MSIX0_INDX_MASK (0x7 << I40E_QINT_RQCTL_MSIX0_INDX_SHIFT) +#define I40E_QINT_RQCTL_NEXTQ_INDX_SHIFT 16 +#define I40E_QINT_RQCTL_NEXTQ_INDX_MASK (0x7FF << I40E_QINT_RQCTL_NEXTQ_INDX_SHIFT) +#define I40E_QINT_RQCTL_NEXTQ_TYPE_SHIFT 27 +#define I40E_QINT_RQCTL_NEXTQ_TYPE_MASK (0x3 << I40E_QINT_RQCTL_NEXTQ_TYPE_SHIFT) +#define I40E_QINT_RQCTL_CAUSE_ENA_SHIFT 30 +#define I40E_QINT_RQCTL_CAUSE_ENA_MASK (0x1 << I40E_QINT_RQCTL_CAUSE_ENA_SHIFT) +#define I40E_QINT_RQCTL_INTEVENT_SHIFT 31 +#define I40E_QINT_RQCTL_INTEVENT_MASK (0x1 << I40E_QINT_RQCTL_INTEVENT_SHIFT) +#define I40E_QINT_TQCTL(_Q) (0x0003C000 + ((_Q) * 4)) /* _i=0...1535 */ +#define I40E_QINT_TQCTL_MAX_INDEX 1535 +#define I40E_QINT_TQCTL_MSIX_INDX_SHIFT 0 +#define I40E_QINT_TQCTL_MSIX_INDX_MASK (0xFF << I40E_QINT_TQCTL_MSIX_INDX_SHIFT) +#define I40E_QINT_TQCTL_ITR_INDX_SHIFT 11 +#define I40E_QINT_TQCTL_ITR_INDX_MASK (0x3 << I40E_QINT_TQCTL_ITR_INDX_SHIFT) +#define I40E_QINT_TQCTL_MSIX0_INDX_SHIFT 13 +#define I40E_QINT_TQCTL_MSIX0_INDX_MASK (0x7 << I40E_QINT_TQCTL_MSIX0_INDX_SHIFT) +#define I40E_QINT_TQCTL_NEXTQ_INDX_SHIFT 16 +#define I40E_QINT_TQCTL_NEXTQ_INDX_MASK (0x7FF << I40E_QINT_TQCTL_NEXTQ_INDX_SHIFT) +#define I40E_QINT_TQCTL_NEXTQ_TYPE_SHIFT 27 +#define I40E_QINT_TQCTL_NEXTQ_TYPE_MASK (0x3 << I40E_QINT_TQCTL_NEXTQ_TYPE_SHIFT) +#define I40E_QINT_TQCTL_CAUSE_ENA_SHIFT 30 +#define I40E_QINT_TQCTL_CAUSE_ENA_MASK (0x1 << I40E_QINT_TQCTL_CAUSE_ENA_SHIFT) +#define I40E_QINT_TQCTL_INTEVENT_SHIFT 31 +#define I40E_QINT_TQCTL_INTEVENT_MASK (0x1 << I40E_QINT_TQCTL_INTEVENT_SHIFT) +#define I40E_VFINT_DYN_CTL0(_VF) (0x0002A400 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFINT_DYN_CTL0_MAX_INDEX 127 +#define I40E_VFINT_DYN_CTL0_INTENA_SHIFT 0 +#define I40E_VFINT_DYN_CTL0_INTENA_MASK (0x1 << I40E_VFINT_DYN_CTL0_INTENA_SHIFT) +#define I40E_VFINT_DYN_CTL0_CLEARPBA_SHIFT 1 +#define I40E_VFINT_DYN_CTL0_CLEARPBA_MASK (0x1 << I40E_VFINT_DYN_CTL0_CLEARPBA_SHIFT) +#define I40E_VFINT_DYN_CTL0_SWINT_TRIG_SHIFT 2 +#define I40E_VFINT_DYN_CTL0_SWINT_TRIG_MASK (0x1 << I40E_VFINT_DYN_CTL0_SWINT_TRIG_SHIFT) +#define I40E_VFINT_DYN_CTL0_ITR_INDX_SHIFT 3 +#define I40E_VFINT_DYN_CTL0_ITR_INDX_MASK (0x3 << I40E_VFINT_DYN_CTL0_ITR_INDX_SHIFT) +#define I40E_VFINT_DYN_CTL0_INTERVAL_SHIFT 5 +#define I40E_VFINT_DYN_CTL0_INTERVAL_MASK (0xFFF << I40E_VFINT_DYN_CTL0_INTERVAL_SHIFT) +#define I40E_VFINT_DYN_CTL0_SW_ITR_INDX_ENA_SHIFT 24 +#define I40E_VFINT_DYN_CTL0_SW_ITR_INDX_ENA_MASK (0x1 << I40E_VFINT_DYN_CTL0_SW_ITR_INDX_ENA_SHIFT) +#define I40E_VFINT_DYN_CTL0_SW_ITR_INDX_SHIFT 25 +#define I40E_VFINT_DYN_CTL0_SW_ITR_INDX_MASK (0x3 << I40E_VFINT_DYN_CTL0_SW_ITR_INDX_SHIFT) +#define I40E_VFINT_DYN_CTL0_INTENA_MSK_SHIFT 31 +#define I40E_VFINT_DYN_CTL0_INTENA_MSK_MASK (0x1 << I40E_VFINT_DYN_CTL0_INTENA_MSK_SHIFT) +#define I40E_VFINT_DYN_CTLN(_INTVF) (0x00024800 + ((_INTVF) * 4)) /* _i=0...511 */ +#define I40E_VFINT_DYN_CTLN_MAX_INDEX 511 +#define I40E_VFINT_DYN_CTLN_INTENA_SHIFT 0 +#define I40E_VFINT_DYN_CTLN_INTENA_MASK (0x1 << I40E_VFINT_DYN_CTLN_INTENA_SHIFT) +#define I40E_VFINT_DYN_CTLN_CLEARPBA_SHIFT 1 +#define I40E_VFINT_DYN_CTLN_CLEARPBA_MASK (0x1 << I40E_VFINT_DYN_CTLN_CLEARPBA_SHIFT) +#define I40E_VFINT_DYN_CTLN_SWINT_TRIG_SHIFT 2 +#define I40E_VFINT_DYN_CTLN_SWINT_TRIG_MASK (0x1 << I40E_VFINT_DYN_CTLN_SWINT_TRIG_SHIFT) +#define I40E_VFINT_DYN_CTLN_ITR_INDX_SHIFT 3 +#define I40E_VFINT_DYN_CTLN_ITR_INDX_MASK (0x3 << I40E_VFINT_DYN_CTLN_ITR_INDX_SHIFT) +#define I40E_VFINT_DYN_CTLN_INTERVAL_SHIFT 5 +#define I40E_VFINT_DYN_CTLN_INTERVAL_MASK (0xFFF << I40E_VFINT_DYN_CTLN_INTERVAL_SHIFT) +#define I40E_VFINT_DYN_CTLN_SW_ITR_INDX_ENA_SHIFT 24 +#define I40E_VFINT_DYN_CTLN_SW_ITR_INDX_ENA_MASK (0x1 << I40E_VFINT_DYN_CTLN_SW_ITR_INDX_ENA_SHIFT) +#define I40E_VFINT_DYN_CTLN_SW_ITR_INDX_SHIFT 25 +#define I40E_VFINT_DYN_CTLN_SW_ITR_INDX_MASK (0x3 << I40E_VFINT_DYN_CTLN_SW_ITR_INDX_SHIFT) +#define I40E_VFINT_DYN_CTLN_INTENA_MSK_SHIFT 31 +#define I40E_VFINT_DYN_CTLN_INTENA_MSK_MASK (0x1 << I40E_VFINT_DYN_CTLN_INTENA_MSK_SHIFT) +#define I40E_VFINT_ICR0(_VF) (0x0002BC00 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFINT_ICR0_MAX_INDEX 127 +#define I40E_VFINT_ICR0_INTEVENT_SHIFT 0 +#define I40E_VFINT_ICR0_INTEVENT_MASK (0x1 << I40E_VFINT_ICR0_INTEVENT_SHIFT) +#define I40E_VFINT_ICR0_QUEUE_0_SHIFT 1 +#define I40E_VFINT_ICR0_QUEUE_0_MASK (0x1 << I40E_VFINT_ICR0_QUEUE_0_SHIFT) +#define I40E_VFINT_ICR0_QUEUE_1_SHIFT 2 +#define I40E_VFINT_ICR0_QUEUE_1_MASK (0x1 << I40E_VFINT_ICR0_QUEUE_1_SHIFT) +#define I40E_VFINT_ICR0_QUEUE_2_SHIFT 3 +#define I40E_VFINT_ICR0_QUEUE_2_MASK (0x1 << I40E_VFINT_ICR0_QUEUE_2_SHIFT) +#define I40E_VFINT_ICR0_QUEUE_3_SHIFT 4 +#define I40E_VFINT_ICR0_QUEUE_3_MASK (0x1 << I40E_VFINT_ICR0_QUEUE_3_SHIFT) +#define I40E_VFINT_ICR0_LINK_STAT_CHANGE_SHIFT 25 +#define I40E_VFINT_ICR0_LINK_STAT_CHANGE_MASK (0x1 << I40E_VFINT_ICR0_LINK_STAT_CHANGE_SHIFT) +#define I40E_VFINT_ICR0_ADMINQ_SHIFT 30 +#define I40E_VFINT_ICR0_ADMINQ_MASK (0x1 << I40E_VFINT_ICR0_ADMINQ_SHIFT) +#define I40E_VFINT_ICR0_SWINT_SHIFT 31 +#define I40E_VFINT_ICR0_SWINT_MASK (0x1 << I40E_VFINT_ICR0_SWINT_SHIFT) +#define I40E_VFINT_ICR0_ENA(_VF) (0x0002C000 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFINT_ICR0_ENA_MAX_INDEX 127 +#define I40E_VFINT_ICR0_ENA_LINK_STAT_CHANGE_SHIFT 25 +#define I40E_VFINT_ICR0_ENA_LINK_STAT_CHANGE_MASK (0x1 << I40E_VFINT_ICR0_ENA_LINK_STAT_CHANGE_SHIFT) +#define I40E_VFINT_ICR0_ENA_ADMINQ_SHIFT 30 +#define I40E_VFINT_ICR0_ENA_ADMINQ_MASK (0x1 << I40E_VFINT_ICR0_ENA_ADMINQ_SHIFT) +#define I40E_VFINT_ICR0_ENA_RSVD_SHIFT 31 +#define I40E_VFINT_ICR0_ENA_RSVD_MASK (0x1 << I40E_VFINT_ICR0_ENA_RSVD_SHIFT) +#define I40E_VFINT_ITR0(_i, _VF) (0x00028000 + ((_i) * 1024 + (_VF) * 4)) /* _i=0...2, _VF=0...127 */ +#define I40E_VFINT_ITR0_MAX_INDEX 2 +#define I40E_VFINT_ITR0_INTERVAL_SHIFT 0 +#define I40E_VFINT_ITR0_INTERVAL_MASK (0xFFF << I40E_VFINT_ITR0_INTERVAL_SHIFT) +#define I40E_VFINT_ITRN(_i, _INTVF) (0x00020000 + ((_i) * 2048 + (_INTVF) * 4)) +#define I40E_VFINT_ITRN_MAX_INDEX 2 +#define I40E_VFINT_ITRN_INTERVAL_SHIFT 0 +#define I40E_VFINT_ITRN_INTERVAL_MASK (0xFFF << I40E_VFINT_ITRN_INTERVAL_SHIFT) +#define I40E_VFINT_STAT_CTL0(_VF) (0x0002A000 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFINT_STAT_CTL0_MAX_INDEX 127 +#define I40E_VFINT_STAT_CTL0_OTHER_ITR_INDX_SHIFT 2 +#define I40E_VFINT_STAT_CTL0_OTHER_ITR_INDX_MASK (0x3 << I40E_VFINT_STAT_CTL0_OTHER_ITR_INDX_SHIFT) +#define I40E_VPINT_AEQCTL(_VF) (0x0002B800 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VPINT_AEQCTL_MAX_INDEX 127 +#define I40E_VPINT_AEQCTL_MSIX_INDX_SHIFT 0 +#define I40E_VPINT_AEQCTL_MSIX_INDX_MASK (0xFF << I40E_VPINT_AEQCTL_MSIX_INDX_SHIFT) +#define I40E_VPINT_AEQCTL_ITR_INDX_SHIFT 11 +#define I40E_VPINT_AEQCTL_ITR_INDX_MASK (0x3 << I40E_VPINT_AEQCTL_ITR_INDX_SHIFT) +#define I40E_VPINT_AEQCTL_MSIX0_INDX_SHIFT 13 +#define I40E_VPINT_AEQCTL_MSIX0_INDX_MASK (0x7 << I40E_VPINT_AEQCTL_MSIX0_INDX_SHIFT) +#define I40E_VPINT_AEQCTL_CAUSE_ENA_SHIFT 30 +#define I40E_VPINT_AEQCTL_CAUSE_ENA_MASK (0x1 << I40E_VPINT_AEQCTL_CAUSE_ENA_SHIFT) +#define I40E_VPINT_AEQCTL_INTEVENT_SHIFT 31 +#define I40E_VPINT_AEQCTL_INTEVENT_MASK (0x1 << I40E_VPINT_AEQCTL_INTEVENT_SHIFT) +#define I40E_VPINT_CEQCTL(_INTVF) (0x00026800 + ((_INTVF) * 4)) /* _i=0...511 */ +#define I40E_VPINT_CEQCTL_MAX_INDEX 511 +#define I40E_VPINT_CEQCTL_MSIX_INDX_SHIFT 0 +#define I40E_VPINT_CEQCTL_MSIX_INDX_MASK (0xFF << I40E_VPINT_CEQCTL_MSIX_INDX_SHIFT) +#define I40E_VPINT_CEQCTL_ITR_INDX_SHIFT 11 +#define I40E_VPINT_CEQCTL_ITR_INDX_MASK (0x3 << I40E_VPINT_CEQCTL_ITR_INDX_SHIFT) +#define I40E_VPINT_CEQCTL_MSIX0_INDX_SHIFT 13 +#define I40E_VPINT_CEQCTL_MSIX0_INDX_MASK (0x7 << I40E_VPINT_CEQCTL_MSIX0_INDX_SHIFT) +#define I40E_VPINT_CEQCTL_NEXTQ_INDX_SHIFT 16 +#define I40E_VPINT_CEQCTL_NEXTQ_INDX_MASK (0x7FF << I40E_VPINT_CEQCTL_NEXTQ_INDX_SHIFT) +#define I40E_VPINT_CEQCTL_NEXTQ_TYPE_SHIFT 27 +#define I40E_VPINT_CEQCTL_NEXTQ_TYPE_MASK (0x3 << I40E_VPINT_CEQCTL_NEXTQ_TYPE_SHIFT) +#define I40E_VPINT_CEQCTL_CAUSE_ENA_SHIFT 30 +#define I40E_VPINT_CEQCTL_CAUSE_ENA_MASK (0x1 << I40E_VPINT_CEQCTL_CAUSE_ENA_SHIFT) +#define I40E_VPINT_CEQCTL_INTEVENT_SHIFT 31 +#define I40E_VPINT_CEQCTL_INTEVENT_MASK (0x1 << I40E_VPINT_CEQCTL_INTEVENT_SHIFT) +#define I40E_VPINT_LNKLST0(_VF) (0x0002A800 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VPINT_LNKLST0_MAX_INDEX 127 +#define I40E_VPINT_LNKLST0_FIRSTQ_INDX_SHIFT 0 +#define I40E_VPINT_LNKLST0_FIRSTQ_INDX_MASK (0x7FF << I40E_VPINT_LNKLST0_FIRSTQ_INDX_SHIFT) +#define I40E_VPINT_LNKLST0_FIRSTQ_TYPE_SHIFT 11 +#define I40E_VPINT_LNKLST0_FIRSTQ_TYPE_MASK (0x3 << I40E_VPINT_LNKLST0_FIRSTQ_TYPE_SHIFT) +#define I40E_VPINT_LNKLSTN(_INTVF) (0x00025000 + ((_INTVF) * 4)) /* _i=0...511 */ +#define I40E_VPINT_LNKLSTN_MAX_INDEX 511 +#define I40E_VPINT_LNKLSTN_FIRSTQ_INDX_SHIFT 0 +#define I40E_VPINT_LNKLSTN_FIRSTQ_INDX_MASK (0x7FF << I40E_VPINT_LNKLSTN_FIRSTQ_INDX_SHIFT) +#define I40E_VPINT_LNKLSTN_FIRSTQ_TYPE_SHIFT 11 +#define I40E_VPINT_LNKLSTN_FIRSTQ_TYPE_MASK (0x3 << I40E_VPINT_LNKLSTN_FIRSTQ_TYPE_SHIFT) +#define I40E_VPINT_RATE0(_VF) (0x0002AC00 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VPINT_RATE0_MAX_INDEX 127 +#define I40E_VPINT_RATE0_INTERVAL_SHIFT 0 +#define I40E_VPINT_RATE0_INTERVAL_MASK (0x3F << I40E_VPINT_RATE0_INTERVAL_SHIFT) +#define I40E_VPINT_RATE0_INTRL_ENA_SHIFT 6 +#define I40E_VPINT_RATE0_INTRL_ENA_MASK (0x1 << I40E_VPINT_RATE0_INTRL_ENA_SHIFT) +#define I40E_VPINT_RATEN(_INTVF) (0x00025800 + ((_INTVF) * 4)) /* _i=0...511 */ +#define I40E_VPINT_RATEN_MAX_INDEX 511 +#define I40E_VPINT_RATEN_INTERVAL_SHIFT 0 +#define I40E_VPINT_RATEN_INTERVAL_MASK (0x3F << I40E_VPINT_RATEN_INTERVAL_SHIFT) +#define I40E_VPINT_RATEN_INTRL_ENA_SHIFT 6 +#define I40E_VPINT_RATEN_INTRL_ENA_MASK (0x1 << I40E_VPINT_RATEN_INTRL_ENA_SHIFT) +#define I40E_GL_RDPU_CNTRL 0x00051060 +#define I40E_GL_RDPU_CNTRL_RX_PAD_EN_SHIFT 0 +#define I40E_GL_RDPU_CNTRL_RX_PAD_EN_MASK (0x1 << I40E_GL_RDPU_CNTRL_RX_PAD_EN_SHIFT) +#define I40E_GL_RDPU_CNTRL_ECO_SHIFT 1 +#define I40E_GL_RDPU_CNTRL_ECO_MASK (0x7FFFFFFF << I40E_GL_RDPU_CNTRL_ECO_SHIFT) +#define I40E_GLLAN_RCTL_0 0x0012A500 +#define I40E_GLLAN_RCTL_0_PXE_MODE_SHIFT 0 +#define I40E_GLLAN_RCTL_0_PXE_MODE_MASK (0x1 << I40E_GLLAN_RCTL_0_PXE_MODE_SHIFT) +#define I40E_GLLAN_TSOMSK_F 0x000442D8 +#define I40E_GLLAN_TSOMSK_F_TCPMSKF_SHIFT 0 +#define I40E_GLLAN_TSOMSK_F_TCPMSKF_MASK (0xFFF << I40E_GLLAN_TSOMSK_F_TCPMSKF_SHIFT) +#define I40E_GLLAN_TSOMSK_L 0x000442E0 +#define I40E_GLLAN_TSOMSK_L_TCPMSKL_SHIFT 0 +#define I40E_GLLAN_TSOMSK_L_TCPMSKL_MASK (0xFFF << I40E_GLLAN_TSOMSK_L_TCPMSKL_SHIFT) +#define I40E_GLLAN_TSOMSK_M 0x000442DC +#define I40E_GLLAN_TSOMSK_M_TCPMSKM_SHIFT 0 +#define I40E_GLLAN_TSOMSK_M_TCPMSKM_MASK (0xFFF << I40E_GLLAN_TSOMSK_M_TCPMSKM_SHIFT) +#define I40E_PFLAN_QALLOC 0x001C0400 +#define I40E_PFLAN_QALLOC_FIRSTQ_SHIFT 0 +#define I40E_PFLAN_QALLOC_FIRSTQ_MASK (0x7FF << I40E_PFLAN_QALLOC_FIRSTQ_SHIFT) +#define I40E_PFLAN_QALLOC_LASTQ_SHIFT 16 +#define I40E_PFLAN_QALLOC_LASTQ_MASK (0x7FF << I40E_PFLAN_QALLOC_LASTQ_SHIFT) +#define I40E_PFLAN_QALLOC_VALID_SHIFT 31 +#define I40E_PFLAN_QALLOC_VALID_MASK (0x1 << I40E_PFLAN_QALLOC_VALID_SHIFT) +#define I40E_QRX_ENA(_Q) (0x00120000 + ((_Q) * 4)) /* _i=0...1535 */ +#define I40E_QRX_ENA_MAX_INDEX 1535 +#define I40E_QRX_ENA_QENA_REQ_SHIFT 0 +#define I40E_QRX_ENA_QENA_REQ_MASK (0x1 << I40E_QRX_ENA_QENA_REQ_SHIFT) +#define I40E_QRX_ENA_FAST_QDIS_SHIFT 1 +#define I40E_QRX_ENA_FAST_QDIS_MASK (0x1 << I40E_QRX_ENA_FAST_QDIS_SHIFT) +#define I40E_QRX_ENA_QENA_STAT_SHIFT 2 +#define I40E_QRX_ENA_QENA_STAT_MASK (0x1 << I40E_QRX_ENA_QENA_STAT_SHIFT) +#define I40E_QRX_TAIL(_Q) (0x00128000 + ((_Q) * 4)) /* _i=0...1535 */ +#define I40E_QRX_TAIL_MAX_INDEX 1535 +#define I40E_QRX_TAIL_TAIL_SHIFT 0 +#define I40E_QRX_TAIL_TAIL_MASK (0x1FFF << I40E_QRX_TAIL_TAIL_SHIFT) +#define I40E_QTX_CTL(_Q) (0x00104000 + ((_Q) * 4)) /* _i=0...1535 */ +#define I40E_QTX_CTL_MAX_INDEX 1535 +#define I40E_QTX_CTL_PFVF_Q_SHIFT 0 +#define I40E_QTX_CTL_PFVF_Q_MASK (0x3 << I40E_QTX_CTL_PFVF_Q_SHIFT) +#define I40E_QTX_CTL_PF_INDX_SHIFT 2 +#define I40E_QTX_CTL_PF_INDX_MASK (0xF << I40E_QTX_CTL_PF_INDX_SHIFT) +#define I40E_QTX_CTL_VFVM_INDX_SHIFT 7 +#define I40E_QTX_CTL_VFVM_INDX_MASK (0x1FF << I40E_QTX_CTL_VFVM_INDX_SHIFT) +#define I40E_QTX_ENA(_Q) (0x00100000 + ((_Q) * 4)) /* _i=0...1535 */ +#define I40E_QTX_ENA_MAX_INDEX 1535 +#define I40E_QTX_ENA_QENA_REQ_SHIFT 0 +#define I40E_QTX_ENA_QENA_REQ_MASK (0x1 << I40E_QTX_ENA_QENA_REQ_SHIFT) +#define I40E_QTX_ENA_FAST_QDIS_SHIFT 1 +#define I40E_QTX_ENA_FAST_QDIS_MASK (0x1 << I40E_QTX_ENA_FAST_QDIS_SHIFT) +#define I40E_QTX_ENA_QENA_STAT_SHIFT 2 +#define I40E_QTX_ENA_QENA_STAT_MASK (0x1 << I40E_QTX_ENA_QENA_STAT_SHIFT) +#define I40E_QTX_HEAD(_Q) (0x000E4000 + ((_Q) * 4)) /* _i=0...1535 */ +#define I40E_QTX_HEAD_MAX_INDEX 1535 +#define I40E_QTX_HEAD_HEAD_SHIFT 0 +#define I40E_QTX_HEAD_HEAD_MASK (0x1FFF << I40E_QTX_HEAD_HEAD_SHIFT) +#define I40E_QTX_HEAD_RS_PENDING_SHIFT 16 +#define I40E_QTX_HEAD_RS_PENDING_MASK (0x1 << I40E_QTX_HEAD_RS_PENDING_SHIFT) +#define I40E_QTX_TAIL(_Q) (0x00108000 + ((_Q) * 4)) /* _i=0...1535 */ +#define I40E_QTX_TAIL_MAX_INDEX 1535 +#define I40E_QTX_TAIL_TAIL_SHIFT 0 +#define I40E_QTX_TAIL_TAIL_MASK (0x1FFF << I40E_QTX_TAIL_TAIL_SHIFT) +#define I40E_VPLAN_MAPENA(_VF) (0x00074000 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VPLAN_MAPENA_MAX_INDEX 127 +#define I40E_VPLAN_MAPENA_TXRX_ENA_SHIFT 0 +#define I40E_VPLAN_MAPENA_TXRX_ENA_MASK (0x1 << I40E_VPLAN_MAPENA_TXRX_ENA_SHIFT) +#define I40E_VPLAN_QTABLE(_i, _VF) (0x00070000 + ((_i) * 1024 + (_VF) * 4)) /* _i=0...15, _VF=0...127 */ +#define I40E_VPLAN_QTABLE_MAX_INDEX 15 +#define I40E_VPLAN_QTABLE_QINDEX_SHIFT 0 +#define I40E_VPLAN_QTABLE_QINDEX_MASK (0x7FF << I40E_VPLAN_QTABLE_QINDEX_SHIFT) +#define I40E_VSILAN_QBASE(_VSI) (0x0020C800 + ((_VSI) * 4)) /* _i=0...383 */ +#define I40E_VSILAN_QBASE_MAX_INDEX 383 +#define I40E_VSILAN_QBASE_VSIBASE_SHIFT 0 +#define I40E_VSILAN_QBASE_VSIBASE_MASK (0x7FF << I40E_VSILAN_QBASE_VSIBASE_SHIFT) +#define I40E_VSILAN_QBASE_VSIQTABLE_ENA_SHIFT 11 +#define I40E_VSILAN_QBASE_VSIQTABLE_ENA_MASK (0x1 << I40E_VSILAN_QBASE_VSIQTABLE_ENA_SHIFT) +#define I40E_VSILAN_QTABLE(_i, _VSI) (0x00200000 + ((_i) * 2048 + (_VSI) * 4)) +#define I40E_VSILAN_QTABLE_MAX_INDEX 7 +#define I40E_VSILAN_QTABLE_QINDEX_0_SHIFT 0 +#define I40E_VSILAN_QTABLE_QINDEX_0_MASK (0x7FF << I40E_VSILAN_QTABLE_QINDEX_0_SHIFT) +#define I40E_VSILAN_QTABLE_QINDEX_1_SHIFT 16 +#define I40E_VSILAN_QTABLE_QINDEX_1_MASK (0x7FF << I40E_VSILAN_QTABLE_QINDEX_1_SHIFT) +#define I40E_PRTGL_SAH 0x001E2140 +#define I40E_PRTGL_SAH_FC_SAH_SHIFT 0 +#define I40E_PRTGL_SAH_FC_SAH_MASK (0xFFFF << I40E_PRTGL_SAH_FC_SAH_SHIFT) +#define I40E_PRTGL_SAH_MFS_SHIFT 16 +#define I40E_PRTGL_SAH_MFS_MASK (0xFFFF << I40E_PRTGL_SAH_MFS_SHIFT) +#define I40E_PRTGL_SAL 0x001E2120 +#define I40E_PRTGL_SAL_FC_SAL_SHIFT 0 +#define I40E_PRTGL_SAL_FC_SAL_MASK (0xFFFFFFFF << I40E_PRTGL_SAL_FC_SAL_SHIFT) +#define I40E_PRTMAC_HLCTLA 0x001E4760 +#define I40E_PRTMAC_HLCTLA_DROP_US_PKTS_SHIFT 0 +#define I40E_PRTMAC_HLCTLA_DROP_US_PKTS_MASK (0x1 << I40E_PRTMAC_HLCTLA_DROP_US_PKTS_SHIFT) +#define I40E_PRTMAC_HLCTLA_RX_FWRD_CTRL_SHIFT 1 +#define I40E_PRTMAC_HLCTLA_RX_FWRD_CTRL_MASK (0x1 << I40E_PRTMAC_HLCTLA_RX_FWRD_CTRL_SHIFT) +#define I40E_PRTMAC_HLCTLA_CHOP_OS_PKT_SHIFT 2 +#define I40E_PRTMAC_HLCTLA_CHOP_OS_PKT_MASK (0x1 << I40E_PRTMAC_HLCTLA_CHOP_OS_PKT_SHIFT) +#define I40E_PRTMAC_HLCTLA_TX_HYSTERESIS_SHIFT 4 +#define I40E_PRTMAC_HLCTLA_TX_HYSTERESIS_MASK (0x7 << I40E_PRTMAC_HLCTLA_TX_HYSTERESIS_SHIFT) +#define I40E_PRTMAC_HLCTLA_HYS_FLUSH_PKT_SHIFT 7 +#define I40E_PRTMAC_HLCTLA_HYS_FLUSH_PKT_MASK (0x1 << I40E_PRTMAC_HLCTLA_HYS_FLUSH_PKT_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_RX_CHECK_SA_GCP 0x001E3130 +#define I40E_PRTMAC_HSEC_CTL_RX_CHECK_SA_GCP_HSEC_CTL_RX_CHECK_SA_GCP_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_RX_CHECK_SA_GCP_HSEC_CTL_RX_CHECK_SA_GCP_MASK (0x1 << I40E_PRTMAC_HSEC_CTL_RX_CHECK_SA_GCP_HSEC_CTL_RX_CHECK_SA_GCP_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_RX_CHECK_SA_GPP 0x001E3290 +#define I40E_PRTMAC_HSEC_CTL_RX_CHECK_SA_GPP_HSEC_CTL_RX_CHECK_SA_GPP_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_RX_CHECK_SA_GPP_HSEC_CTL_RX_CHECK_SA_GPP_MASK (0x1 << I40E_PRTMAC_HSEC_CTL_RX_CHECK_SA_GPP_HSEC_CTL_RX_CHECK_SA_GPP_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_RX_CHECK_SA_PPP 0x001E3310 +#define I40E_PRTMAC_HSEC_CTL_RX_CHECK_SA_PPP_HSEC_CTL_RX_CHECK_SA_PPP_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_RX_CHECK_SA_PPP_HSEC_CTL_RX_CHECK_SA_PPP_MASK (0x1 << I40E_PRTMAC_HSEC_CTL_RX_CHECK_SA_PPP_HSEC_CTL_RX_CHECK_SA_PPP_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_RX_CHECK_UCAST_GCP 0x001E3100 +#define I40E_PRTMAC_HSEC_CTL_RX_CHECK_UCAST_GCP_HSEC_CTL_RX_CHECK_UCAST_GCP_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_RX_CHECK_UCAST_GCP_HSEC_CTL_RX_CHECK_UCAST_GCP_MASK (0x1 << I40E_PRTMAC_HSEC_CTL_RX_CHECK_UCAST_GCP_HSEC_CTL_RX_CHECK_UCAST_GCP_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_RX_CHECK_UCAST_GPP 0x001E3280 +#define I40E_PRTMAC_HSEC_CTL_RX_CHECK_UCAST_GPP_HSEC_CTL_RX_CHECK_UCAST_GPP_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_RX_CHECK_UCAST_GPP_HSEC_CTL_RX_CHECK_UCAST_GPP_MASK (0x1 << I40E_PRTMAC_HSEC_CTL_RX_CHECK_UCAST_GPP_HSEC_CTL_RX_CHECK_UCAST_GPP_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_RX_CHECK_UCAST_PPP 0x001E3300 +#define I40E_PRTMAC_HSEC_CTL_RX_CHECK_UCAST_PPP_HSEC_CTL_RX_CHECK_UCAST_PPP_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_RX_CHECK_UCAST_PPP_HSEC_CTL_RX_CHECK_UCAST_PPP_MASK (0x1 << I40E_PRTMAC_HSEC_CTL_RX_CHECK_UCAST_PPP_HSEC_CTL_RX_CHECK_UCAST_PPP_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_RX_ENABLE_GCP 0x001E30E0 +#define I40E_PRTMAC_HSEC_CTL_RX_ENABLE_GCP_HSEC_CTL_RX_ENABLE_GCP_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_RX_ENABLE_GCP_HSEC_CTL_RX_ENABLE_GCP_MASK (0x1 << I40E_PRTMAC_HSEC_CTL_RX_ENABLE_GCP_HSEC_CTL_RX_ENABLE_GCP_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_RX_ENABLE_GPP 0x001E3260 +#define I40E_PRTMAC_HSEC_CTL_RX_ENABLE_GPP_HSEC_CTL_RX_ENABLE_GPP_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_RX_ENABLE_GPP_HSEC_CTL_RX_ENABLE_GPP_MASK (0x1 << I40E_PRTMAC_HSEC_CTL_RX_ENABLE_GPP_HSEC_CTL_RX_ENABLE_GPP_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_RX_ENABLE_PPP 0x001E32E0 +#define I40E_PRTMAC_HSEC_CTL_RX_ENABLE_PPP_HSEC_CTL_RX_ENABLE_PPP_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_RX_ENABLE_PPP_HSEC_CTL_RX_ENABLE_PPP_MASK (0x1 << I40E_PRTMAC_HSEC_CTL_RX_ENABLE_PPP_HSEC_CTL_RX_ENABLE_PPP_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_RX_FORWARD_CONTROL 0x001E3360 +#define I40E_PRTMAC_HSEC_CTL_RX_FORWARD_CONTROL_HSEC_CTL_RX_FORWARD_CONTROL_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_RX_FORWARD_CONTROL_HSEC_CTL_RX_FORWARD_CONTROL_MASK (0x1 << I40E_PRTMAC_HSEC_CTL_RX_FORWARD_CONTROL_HSEC_CTL_RX_FORWARD_CONTROL_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_RX_PAUSE_DA_UCAST_PART1 0x001E3110 +#define I40E_PRTMAC_HSEC_CTL_RX_PAUSE_DA_UCAST_PART1_HSEC_CTL_RX_PAUSE_DA_UCAST_PART1_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_RX_PAUSE_DA_UCAST_PART1_HSEC_CTL_RX_PAUSE_DA_UCAST_PART1_MASK (0xFFFFFFFF << I40E_PRTMAC_HSEC_CTL_RX_PAUSE_DA_UCAST_PART1_HSEC_CTL_RX_PAUSE_DA_UCAST_PART1_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_RX_PAUSE_DA_UCAST_PART2 0x001E3120 +#define I40E_PRTMAC_HSEC_CTL_RX_PAUSE_DA_UCAST_PART2_HSEC_CTL_RX_PAUSE_DA_UCAST_PART2_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_RX_PAUSE_DA_UCAST_PART2_HSEC_CTL_RX_PAUSE_DA_UCAST_PART2_MASK (0xFFFF << I40E_PRTMAC_HSEC_CTL_RX_PAUSE_DA_UCAST_PART2_HSEC_CTL_RX_PAUSE_DA_UCAST_PART2_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_RX_PAUSE_ENABLE 0x001E30C0 +#define I40E_PRTMAC_HSEC_CTL_RX_PAUSE_ENABLE_HSEC_CTL_RX_PAUSE_ENABLE_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_RX_PAUSE_ENABLE_HSEC_CTL_RX_PAUSE_ENABLE_MASK (0x1FF << I40E_PRTMAC_HSEC_CTL_RX_PAUSE_ENABLE_HSEC_CTL_RX_PAUSE_ENABLE_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_RX_PAUSE_SA_PART1 0x001E3140 +#define I40E_PRTMAC_HSEC_CTL_RX_PAUSE_SA_PART1_HSEC_CTL_RX_PAUSE_SA_PART1_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_RX_PAUSE_SA_PART1_HSEC_CTL_RX_PAUSE_SA_PART1_MASK (0xFFFFFFFF << I40E_PRTMAC_HSEC_CTL_RX_PAUSE_SA_PART1_HSEC_CTL_RX_PAUSE_SA_PART1_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_RX_PAUSE_SA_PART2 0x001E3150 +#define I40E_PRTMAC_HSEC_CTL_RX_PAUSE_SA_PART2_HSEC_CTL_RX_PAUSE_SA_PART2_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_RX_PAUSE_SA_PART2_HSEC_CTL_RX_PAUSE_SA_PART2_MASK (0xFFFF << I40E_PRTMAC_HSEC_CTL_RX_PAUSE_SA_PART2_HSEC_CTL_RX_PAUSE_SA_PART2_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_TX_ENABLE 0x001E3000 +#define I40E_PRTMAC_HSEC_CTL_TX_ENABLE_HSEC_CTL_TX_ENABLE_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_TX_ENABLE_HSEC_CTL_TX_ENABLE_MASK (0x1 << I40E_PRTMAC_HSEC_CTL_TX_ENABLE_HSEC_CTL_TX_ENABLE_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_TX_PAUSE_ENABLE 0x001E30D0 +#define I40E_PRTMAC_HSEC_CTL_TX_PAUSE_ENABLE_HSEC_CTL_TX_PAUSE_ENABLE_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_TX_PAUSE_ENABLE_HSEC_CTL_TX_PAUSE_ENABLE_MASK (0x1FF << I40E_PRTMAC_HSEC_CTL_TX_PAUSE_ENABLE_HSEC_CTL_TX_PAUSE_ENABLE_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_TX_PAUSE_QUANTA(_i) (0x001E3370 + ((_i) * 16)) +#define I40E_PRTMAC_HSEC_CTL_TX_PAUSE_QUANTA_MAX_INDEX 8 +#define I40E_PRTMAC_HSEC_CTL_TX_PAUSE_QUANTA_HSEC_CTL_TX_PAUSE_QUANTA_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_TX_PAUSE_QUANTA_HSEC_CTL_TX_PAUSE_QUANTA_MASK (0xFFFF << I40E_PRTMAC_HSEC_CTL_TX_PAUSE_QUANTA_HSEC_CTL_TX_PAUSE_QUANTA_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_TX_PAUSE_REFRESH_TIMER(_i) (0x001E3400 + ((_i) * 16)) +#define I40E_PRTMAC_HSEC_CTL_TX_PAUSE_REFRESH_TIMER_MAX_INDEX 8 +#define I40E_PRTMAC_HSEC_CTL_TX_PAUSE_REFRESH_TIMER_HSEC_CTL_TX_PAUSE_REFRESH_TIMER_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_TX_PAUSE_REFRESH_TIMER_HSEC_CTL_TX_PAUSE_REFRESH_TIMER_MASK (0xFFFF << I40E_PRTMAC_HSEC_CTL_TX_PAUSE_REFRESH_TIMER_HSEC_CTL_TX_PAUSE_REFRESH_TIMER_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_TX_SA_PART1 0x001E34B0 +#define I40E_PRTMAC_HSEC_CTL_TX_SA_PART1_HSEC_CTL_TX_SA_PART1_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_TX_SA_PART1_HSEC_CTL_TX_SA_PART1_MASK (0xFFFFFFFF << I40E_PRTMAC_HSEC_CTL_TX_SA_PART1_HSEC_CTL_TX_SA_PART1_SHIFT) +#define I40E_PRTMAC_HSEC_CTL_TX_SA_PART2 0x001E34C0 +#define I40E_PRTMAC_HSEC_CTL_TX_SA_PART2_HSEC_CTL_TX_SA_PART2_SHIFT 0 +#define I40E_PRTMAC_HSEC_CTL_TX_SA_PART2_HSEC_CTL_TX_SA_PART2_MASK (0xFFFF << I40E_PRTMAC_HSEC_CTL_TX_SA_PART2_HSEC_CTL_TX_SA_PART2_SHIFT) +#define I40E_PRTMAC_HSECTL1 0x001E3560 +#define I40E_PRTMAC_HSECTL1_DROP_US_PKTS_SHIFT 0 +#define I40E_PRTMAC_HSECTL1_DROP_US_PKTS_MASK (0x1 << I40E_PRTMAC_HSECTL1_DROP_US_PKTS_SHIFT) +#define I40E_PRTMAC_HSECTL1_PAD_US_PKT_SHIFT 3 +#define I40E_PRTMAC_HSECTL1_PAD_US_PKT_MASK (0x1 << I40E_PRTMAC_HSECTL1_PAD_US_PKT_SHIFT) +#define I40E_PRTMAC_HSECTL1_TX_HYSTERESIS_SHIFT 4 +#define I40E_PRTMAC_HSECTL1_TX_HYSTERESIS_MASK (0x7 << I40E_PRTMAC_HSECTL1_TX_HYSTERESIS_SHIFT) +#define I40E_PRTMAC_HSECTL1_HYS_FLUSH_PKT_SHIFT 7 +#define I40E_PRTMAC_HSECTL1_HYS_FLUSH_PKT_MASK (0x1 << I40E_PRTMAC_HSECTL1_HYS_FLUSH_PKT_SHIFT) +#define I40E_PRTMAC_HSECTL1_EN_SFD_CHECK_SHIFT 30 +#define I40E_PRTMAC_HSECTL1_EN_SFD_CHECK_MASK (0x1 << I40E_PRTMAC_HSECTL1_EN_SFD_CHECK_SHIFT) +#define I40E_PRTMAC_HSECTL1_EN_PREAMBLE_CHECK_SHIFT 31 +#define I40E_PRTMAC_HSECTL1_EN_PREAMBLE_CHECK_MASK (0x1 << I40E_PRTMAC_HSECTL1_EN_PREAMBLE_CHECK_SHIFT) +#define I40E_PRTMAC_PCS_XAUI_SWAP_A 0x0008C480 +#define I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_TX_LANE3_SHIFT 0 +#define I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_TX_LANE3_MASK (0x3 << I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_TX_LANE3_SHIFT) +#define I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_TX_LANE2_SHIFT 2 +#define I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_TX_LANE2_MASK (0x3 << I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_TX_LANE2_SHIFT) +#define I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_TX_LANE1_SHIFT 4 +#define I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_TX_LANE1_MASK (0x3 << I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_TX_LANE1_SHIFT) +#define I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_TX_LANE0_SHIFT 6 +#define I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_TX_LANE0_MASK (0x3 << I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_TX_LANE0_SHIFT) +#define I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_RX_LANE3_SHIFT 8 +#define I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_RX_LANE3_MASK (0x3 << I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_RX_LANE3_SHIFT) +#define I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_RX_LANE2_SHIFT 10 +#define I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_RX_LANE2_MASK (0x3 << I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_RX_LANE2_SHIFT) +#define I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_RX_LANE1_SHIFT 12 +#define I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_RX_LANE1_MASK (0x3 << I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_RX_LANE1_SHIFT) +#define I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_RX_LANE0_SHIFT 14 +#define I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_RX_LANE0_MASK (0x3 << I40E_PRTMAC_PCS_XAUI_SWAP_A_SWAP_RX_LANE0_SHIFT) +#define I40E_PRTMAC_PCS_XAUI_SWAP_B 0x0008C484 +#define I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_TX_LANE3_SHIFT 0 +#define I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_TX_LANE3_MASK (0x3 << I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_TX_LANE3_SHIFT) +#define I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_TX_LANE2_SHIFT 2 +#define I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_TX_LANE2_MASK (0x3 << I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_TX_LANE2_SHIFT) +#define I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_TX_LANE1_SHIFT 4 +#define I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_TX_LANE1_MASK (0x3 << I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_TX_LANE1_SHIFT) +#define I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_TX_LANE0_SHIFT 6 +#define I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_TX_LANE0_MASK (0x3 << I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_TX_LANE0_SHIFT) +#define I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_RX_LANE3_SHIFT 8 +#define I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_RX_LANE3_MASK (0x3 << I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_RX_LANE3_SHIFT) +#define I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_RX_LANE2_SHIFT 10 +#define I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_RX_LANE2_MASK (0x3 << I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_RX_LANE2_SHIFT) +#define I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_RX_LANE1_SHIFT 12 +#define I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_RX_LANE1_MASK (0x3 << I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_RX_LANE1_SHIFT) +#define I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_RX_LANE0_SHIFT 14 +#define I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_RX_LANE0_MASK (0x3 << I40E_PRTMAC_PCS_XAUI_SWAP_B_SWAP_RX_LANE0_SHIFT) +#define I40E_GL_MNG_FWSM 0x000B6134 +#define I40E_GL_MNG_FWSM_FW_MODES_SHIFT 1 +#define I40E_GL_MNG_FWSM_FW_MODES_MASK (0x7 << I40E_GL_MNG_FWSM_FW_MODES_SHIFT) +#define I40E_GL_MNG_FWSM_EEP_RELOAD_IND_SHIFT 6 +#define I40E_GL_MNG_FWSM_EEP_RELOAD_IND_MASK (0x1 << I40E_GL_MNG_FWSM_EEP_RELOAD_IND_SHIFT) +#define I40E_GL_MNG_FWSM_CRC_ERROR_MODULE_SHIFT 11 +#define I40E_GL_MNG_FWSM_CRC_ERROR_MODULE_MASK (0xF << I40E_GL_MNG_FWSM_CRC_ERROR_MODULE_SHIFT) +#define I40E_GL_MNG_FWSM_FW_STATUS_VALID_SHIFT 15 +#define I40E_GL_MNG_FWSM_FW_STATUS_VALID_MASK (0x1 << I40E_GL_MNG_FWSM_FW_STATUS_VALID_SHIFT) +#define I40E_GL_MNG_FWSM_RESET_CNT_SHIFT 16 +#define I40E_GL_MNG_FWSM_RESET_CNT_MASK (0x7 << I40E_GL_MNG_FWSM_RESET_CNT_SHIFT) +#define I40E_GL_MNG_FWSM_EXT_ERR_IND_SHIFT 19 +#define I40E_GL_MNG_FWSM_EXT_ERR_IND_MASK (0x3F << I40E_GL_MNG_FWSM_EXT_ERR_IND_SHIFT) +#define I40E_GL_MNG_FWSM_RSVD_SHIFT 25 +#define I40E_GL_MNG_FWSM_RSVD_MASK (0x1 << I40E_GL_MNG_FWSM_RSVD_SHIFT) +#define I40E_GL_MNG_FWSM_PHY_SERDES0_CONFIG_ERR_SHIFT 26 +#define I40E_GL_MNG_FWSM_PHY_SERDES0_CONFIG_ERR_MASK (0x1 << I40E_GL_MNG_FWSM_PHY_SERDES0_CONFIG_ERR_SHIFT) +#define I40E_GL_MNG_FWSM_PHY_SERDES1_CONFIG_ERR_SHIFT 27 +#define I40E_GL_MNG_FWSM_PHY_SERDES1_CONFIG_ERR_MASK (0x1 << I40E_GL_MNG_FWSM_PHY_SERDES1_CONFIG_ERR_SHIFT) +#define I40E_GL_MNG_FWSM_PHY_SERDES2_CONFIG_ERR_SHIFT 28 +#define I40E_GL_MNG_FWSM_PHY_SERDES2_CONFIG_ERR_MASK (0x1 << I40E_GL_MNG_FWSM_PHY_SERDES2_CONFIG_ERR_SHIFT) +#define I40E_GL_MNG_FWSM_PHY_SERDES3_CONFIG_ERR_SHIFT 29 +#define I40E_GL_MNG_FWSM_PHY_SERDES3_CONFIG_ERR_MASK (0x1 << I40E_GL_MNG_FWSM_PHY_SERDES3_CONFIG_ERR_SHIFT) +#define I40E_GL_MNG_HWARB_CTRL 0x000B6130 +#define I40E_GL_MNG_HWARB_CTRL_NCSI_ARB_EN_SHIFT 0 +#define I40E_GL_MNG_HWARB_CTRL_NCSI_ARB_EN_MASK (0x1 << I40E_GL_MNG_HWARB_CTRL_NCSI_ARB_EN_SHIFT) +#define I40E_PRT_MNG_FTFT_DATA(_i) (0x000852A0 + ((_i) * 32)) /* _i=0...31 */ +#define I40E_PRT_MNG_FTFT_DATA_MAX_INDEX 31 +#define I40E_PRT_MNG_FTFT_DATA_DWORD_SHIFT 0 +#define I40E_PRT_MNG_FTFT_DATA_DWORD_MASK (0xFFFFFFFF << I40E_PRT_MNG_FTFT_DATA_DWORD_SHIFT) +#define I40E_PRT_MNG_FTFT_LENGTH 0x00085260 +#define I40E_PRT_MNG_FTFT_LENGTH_LENGTH_SHIFT 0 +#define I40E_PRT_MNG_FTFT_LENGTH_LENGTH_MASK (0xFF << I40E_PRT_MNG_FTFT_LENGTH_LENGTH_SHIFT) +#define I40E_PRT_MNG_FTFT_MASK(_i) (0x00085160 + ((_i) * 32)) /* _i=0...7 */ +#define I40E_PRT_MNG_FTFT_MASK_MAX_INDEX 7 +#define I40E_PRT_MNG_FTFT_MASK_MASK_SHIFT 0 +#define I40E_PRT_MNG_FTFT_MASK_MASK_MASK (0xFFFF << I40E_PRT_MNG_FTFT_MASK_MASK_SHIFT) +#define I40E_PRT_MNG_MANC 0x00256A20 +#define I40E_PRT_MNG_MANC_FLOW_CONTROL_DISCARD_SHIFT 0 +#define I40E_PRT_MNG_MANC_FLOW_CONTROL_DISCARD_MASK (0x1 << I40E_PRT_MNG_MANC_FLOW_CONTROL_DISCARD_SHIFT) +#define I40E_PRT_MNG_MANC_NCSI_DISCARD_SHIFT 1 +#define I40E_PRT_MNG_MANC_NCSI_DISCARD_MASK (0x1 << I40E_PRT_MNG_MANC_NCSI_DISCARD_SHIFT) +#define I40E_PRT_MNG_MANC_RCV_TCO_EN_SHIFT 17 +#define I40E_PRT_MNG_MANC_RCV_TCO_EN_MASK (0x1 << I40E_PRT_MNG_MANC_RCV_TCO_EN_SHIFT) +#define I40E_PRT_MNG_MANC_RCV_ALL_SHIFT 19 +#define I40E_PRT_MNG_MANC_RCV_ALL_MASK (0x1 << I40E_PRT_MNG_MANC_RCV_ALL_SHIFT) +#define I40E_PRT_MNG_MANC_FIXED_NET_TYPE_SHIFT 25 +#define I40E_PRT_MNG_MANC_FIXED_NET_TYPE_MASK (0x1 << I40E_PRT_MNG_MANC_FIXED_NET_TYPE_SHIFT) +#define I40E_PRT_MNG_MANC_NET_TYPE_SHIFT 26 +#define I40E_PRT_MNG_MANC_NET_TYPE_MASK (0x1 << I40E_PRT_MNG_MANC_NET_TYPE_SHIFT) +#define I40E_PRT_MNG_MANC_EN_BMC2OS_SHIFT 28 +#define I40E_PRT_MNG_MANC_EN_BMC2OS_MASK (0x1 << I40E_PRT_MNG_MANC_EN_BMC2OS_SHIFT) +#define I40E_PRT_MNG_MANC_EN_BMC2NET_SHIFT 29 +#define I40E_PRT_MNG_MANC_EN_BMC2NET_MASK (0x1 << I40E_PRT_MNG_MANC_EN_BMC2NET_SHIFT) +#define I40E_PRT_MNG_MAVTV(_i) (0x00255900 + ((_i) * 32)) /* _i=0...7 */ +#define I40E_PRT_MNG_MAVTV_MAX_INDEX 7 +#define I40E_PRT_MNG_MAVTV_VID_SHIFT 0 +#define I40E_PRT_MNG_MAVTV_VID_MASK (0xFFF << I40E_PRT_MNG_MAVTV_VID_SHIFT) +#define I40E_PRT_MNG_MDEF(_i) (0x00255D00 + ((_i) * 32)) +#define I40E_PRT_MNG_MDEF_MAX_INDEX 7 +#define I40E_PRT_MNG_MDEF_MAC_EXACT_AND_SHIFT 0 +#define I40E_PRT_MNG_MDEF_MAC_EXACT_AND_MASK (0xF << I40E_PRT_MNG_MDEF_MAC_EXACT_AND_SHIFT) +#define I40E_PRT_MNG_MDEF_BROADCAST_AND_SHIFT 4 +#define I40E_PRT_MNG_MDEF_BROADCAST_AND_MASK (0x1 << I40E_PRT_MNG_MDEF_BROADCAST_AND_SHIFT) +#define I40E_PRT_MNG_MDEF_VLAN_AND_SHIFT 5 +#define I40E_PRT_MNG_MDEF_VLAN_AND_MASK (0xFF << I40E_PRT_MNG_MDEF_VLAN_AND_SHIFT) +#define I40E_PRT_MNG_MDEF_IPV4_ADDRESS_AND_SHIFT 13 +#define I40E_PRT_MNG_MDEF_IPV4_ADDRESS_AND_MASK (0xF << I40E_PRT_MNG_MDEF_IPV4_ADDRESS_AND_SHIFT) +#define I40E_PRT_MNG_MDEF_IPV6_ADDRESS_AND_SHIFT 17 +#define I40E_PRT_MNG_MDEF_IPV6_ADDRESS_AND_MASK (0xF << I40E_PRT_MNG_MDEF_IPV6_ADDRESS_AND_SHIFT) +#define I40E_PRT_MNG_MDEF_MAC_EXACT_OR_SHIFT 21 +#define I40E_PRT_MNG_MDEF_MAC_EXACT_OR_MASK (0xF << I40E_PRT_MNG_MDEF_MAC_EXACT_OR_SHIFT) +#define I40E_PRT_MNG_MDEF_BROADCAST_OR_SHIFT 25 +#define I40E_PRT_MNG_MDEF_BROADCAST_OR_MASK (0x1 << I40E_PRT_MNG_MDEF_BROADCAST_OR_SHIFT) +#define I40E_PRT_MNG_MDEF_MULTICAST_AND_SHIFT 26 +#define I40E_PRT_MNG_MDEF_MULTICAST_AND_MASK (0x1 << I40E_PRT_MNG_MDEF_MULTICAST_AND_SHIFT) +#define I40E_PRT_MNG_MDEF_ARP_REQUEST_OR_SHIFT 27 +#define I40E_PRT_MNG_MDEF_ARP_REQUEST_OR_MASK (0x1 << I40E_PRT_MNG_MDEF_ARP_REQUEST_OR_SHIFT) +#define I40E_PRT_MNG_MDEF_ARP_RESPONSE_OR_SHIFT 28 +#define I40E_PRT_MNG_MDEF_ARP_RESPONSE_OR_MASK (0x1 << I40E_PRT_MNG_MDEF_ARP_RESPONSE_OR_SHIFT) +#define I40E_PRT_MNG_MDEF_NEIGHBOR_DISCOVERY_134_OR_SHIFT 29 +#define I40E_PRT_MNG_MDEF_NEIGHBOR_DISCOVERY_134_OR_MASK (0x1 << I40E_PRT_MNG_MDEF_NEIGHBOR_DISCOVERY_134_OR_SHIFT) +#define I40E_PRT_MNG_MDEF_PORT_0X298_OR_SHIFT 30 +#define I40E_PRT_MNG_MDEF_PORT_0X298_OR_MASK (0x1 << I40E_PRT_MNG_MDEF_PORT_0X298_OR_SHIFT) +#define I40E_PRT_MNG_MDEF_PORT_0X26F_OR_SHIFT 31 +#define I40E_PRT_MNG_MDEF_PORT_0X26F_OR_MASK (0x1 << I40E_PRT_MNG_MDEF_PORT_0X26F_OR_SHIFT) +#define I40E_PRT_MNG_MDEF_EXT(_i) (0x00255F00 + ((_i) * 32)) +#define I40E_PRT_MNG_MDEF_EXT_MAX_INDEX 7 +#define I40E_PRT_MNG_MDEF_EXT_L2_ETHERTYPE_AND_SHIFT 0 +#define I40E_PRT_MNG_MDEF_EXT_L2_ETHERTYPE_AND_MASK (0xF << I40E_PRT_MNG_MDEF_EXT_L2_ETHERTYPE_AND_SHIFT) +#define I40E_PRT_MNG_MDEF_EXT_L2_ETHERTYPE_OR_SHIFT 4 +#define I40E_PRT_MNG_MDEF_EXT_L2_ETHERTYPE_OR_MASK (0xF << I40E_PRT_MNG_MDEF_EXT_L2_ETHERTYPE_OR_SHIFT) +#define I40E_PRT_MNG_MDEF_EXT_FLEX_PORT_OR_SHIFT 8 +#define I40E_PRT_MNG_MDEF_EXT_FLEX_PORT_OR_MASK (0xFFFF << I40E_PRT_MNG_MDEF_EXT_FLEX_PORT_OR_SHIFT) +#define I40E_PRT_MNG_MDEF_EXT_FLEX_TCO_SHIFT 24 +#define I40E_PRT_MNG_MDEF_EXT_FLEX_TCO_MASK (0x1 << I40E_PRT_MNG_MDEF_EXT_FLEX_TCO_SHIFT) +#define I40E_PRT_MNG_MDEF_EXT_NEIGHBOR_DISCOVERY_135_OR_SHIFT 25 +#define I40E_PRT_MNG_MDEF_EXT_NEIGHBOR_DISCOVERY_135_OR_MASK (0x1 << I40E_PRT_MNG_MDEF_EXT_NEIGHBOR_DISCOVERY_135_OR_SHIFT) +#define I40E_PRT_MNG_MDEF_EXT_NEIGHBOR_DISCOVERY_136_OR_SHIFT 26 +#define I40E_PRT_MNG_MDEF_EXT_NEIGHBOR_DISCOVERY_136_OR_MASK (0x1 << I40E_PRT_MNG_MDEF_EXT_NEIGHBOR_DISCOVERY_136_OR_SHIFT) +#define I40E_PRT_MNG_MDEF_EXT_NEIGHBOR_DISCOVERY_137_OR_SHIFT 27 +#define I40E_PRT_MNG_MDEF_EXT_NEIGHBOR_DISCOVERY_137_OR_MASK (0x1 << I40E_PRT_MNG_MDEF_EXT_NEIGHBOR_DISCOVERY_137_OR_SHIFT) +#define I40E_PRT_MNG_MDEF_EXT_ICMP_OR_SHIFT 28 +#define I40E_PRT_MNG_MDEF_EXT_ICMP_OR_MASK (0x1 << I40E_PRT_MNG_MDEF_EXT_ICMP_OR_SHIFT) +#define I40E_PRT_MNG_MDEF_EXT_MLD_SHIFT 29 +#define I40E_PRT_MNG_MDEF_EXT_MLD_MASK (0x1 << I40E_PRT_MNG_MDEF_EXT_MLD_SHIFT) +#define I40E_PRT_MNG_MDEF_EXT_APPLY_TO_NETWORK_TRAFFIC_SHIFT 30 +#define I40E_PRT_MNG_MDEF_EXT_APPLY_TO_NETWORK_TRAFFIC_MASK (0x1 << I40E_PRT_MNG_MDEF_EXT_APPLY_TO_NETWORK_TRAFFIC_SHIFT) +#define I40E_PRT_MNG_MDEF_EXT_APPLY_TO_HOST_TRAFFIC_SHIFT 31 +#define I40E_PRT_MNG_MDEF_EXT_APPLY_TO_HOST_TRAFFIC_MASK (0x1 << I40E_PRT_MNG_MDEF_EXT_APPLY_TO_HOST_TRAFFIC_SHIFT) +#define I40E_PRT_MNG_MDEFVSI(_i) (0x00256580 + ((_i) * 32)) /* _i=0...3 */ +#define I40E_PRT_MNG_MDEFVSI_MAX_INDEX 3 +#define I40E_PRT_MNG_MDEFVSI_MDEFVSI_2N_SHIFT 0 +#define I40E_PRT_MNG_MDEFVSI_MDEFVSI_2N_MASK (0xFFFF << I40E_PRT_MNG_MDEFVSI_MDEFVSI_2N_SHIFT) +#define I40E_PRT_MNG_MDEFVSI_MDEFVSI_2NP1_SHIFT 16 +#define I40E_PRT_MNG_MDEFVSI_MDEFVSI_2NP1_MASK (0xFFFF << I40E_PRT_MNG_MDEFVSI_MDEFVSI_2NP1_SHIFT) +#define I40E_PRT_MNG_METF(_i) (0x00256780 + ((_i) * 32)) /* _i=0...3 */ +#define I40E_PRT_MNG_METF_MAX_INDEX 3 +#define I40E_PRT_MNG_METF_ETYPE_SHIFT 0 +#define I40E_PRT_MNG_METF_ETYPE_MASK (0xFFFF << I40E_PRT_MNG_METF_ETYPE_SHIFT) +#define I40E_PRT_MNG_METF_POLARITY_SHIFT 30 +#define I40E_PRT_MNG_METF_POLARITY_MASK (0x1 << I40E_PRT_MNG_METF_POLARITY_SHIFT) +#define I40E_PRT_MNG_MFUTP(_i) (0x00254E00 + ((_i) * 32)) /* _i=0...15 */ +#define I40E_PRT_MNG_MFUTP_MAX_INDEX 15 +#define I40E_PRT_MNG_MFUTP_MFUTP_N_SHIFT 0 +#define I40E_PRT_MNG_MFUTP_MFUTP_N_MASK (0xFFFF << I40E_PRT_MNG_MFUTP_MFUTP_N_SHIFT) +#define I40E_PRT_MNG_MFUTP_UDP_SHIFT 16 +#define I40E_PRT_MNG_MFUTP_UDP_MASK (0x1 << I40E_PRT_MNG_MFUTP_UDP_SHIFT) +#define I40E_PRT_MNG_MFUTP_TCP_SHIFT 17 +#define I40E_PRT_MNG_MFUTP_TCP_MASK (0x1 << I40E_PRT_MNG_MFUTP_TCP_SHIFT) +#define I40E_PRT_MNG_MFUTP_SOURCE_DESTINATION_SHIFT 18 +#define I40E_PRT_MNG_MFUTP_SOURCE_DESTINATION_MASK (0x1 << I40E_PRT_MNG_MFUTP_SOURCE_DESTINATION_SHIFT) +#define I40E_PRT_MNG_MIPAF4(_i) (0x00256280 + ((_i) * 32)) /* _i=0...3 */ +#define I40E_PRT_MNG_MIPAF4_MAX_INDEX 3 +#define I40E_PRT_MNG_MIPAF4_MIPAF_SHIFT 0 +#define I40E_PRT_MNG_MIPAF4_MIPAF_MASK (0xFFFFFFFF << I40E_PRT_MNG_MIPAF4_MIPAF_SHIFT) +#define I40E_PRT_MNG_MIPAF6(_i) (0x00254200 + ((_i) * 32)) /* _i=0...15 */ +#define I40E_PRT_MNG_MIPAF6_MAX_INDEX 15 +#define I40E_PRT_MNG_MIPAF6_MIPAF_SHIFT 0 +#define I40E_PRT_MNG_MIPAF6_MIPAF_MASK (0xFFFFFFFF << I40E_PRT_MNG_MIPAF6_MIPAF_SHIFT) +#define I40E_PRT_MNG_MMAH(_i) (0x00256380 + ((_i) * 32)) /* _i=0...3 */ +#define I40E_PRT_MNG_MMAH_MAX_INDEX 3 +#define I40E_PRT_MNG_MMAH_MMAH_SHIFT 0 +#define I40E_PRT_MNG_MMAH_MMAH_MASK (0xFFFF << I40E_PRT_MNG_MMAH_MMAH_SHIFT) +#define I40E_PRT_MNG_MMAL(_i) (0x00256480 + ((_i) * 32)) /* _i=0...3 */ +#define I40E_PRT_MNG_MMAL_MAX_INDEX 3 +#define I40E_PRT_MNG_MMAL_MMAL_SHIFT 0 +#define I40E_PRT_MNG_MMAL_MMAL_MASK (0xFFFFFFFF << I40E_PRT_MNG_MMAL_MMAL_SHIFT) +#define I40E_PRT_MNG_MNGONLY 0x00256A60 +#define I40E_PRT_MNG_MNGONLY_EXCLUSIVE_TO_MANAGEABILITY_SHIFT 0 +#define I40E_PRT_MNG_MNGONLY_EXCLUSIVE_TO_MANAGEABILITY_MASK (0xFF << I40E_PRT_MNG_MNGONLY_EXCLUSIVE_TO_MANAGEABILITY_SHIFT) +#define I40E_PRT_MNG_MSFM 0x00256AA0 +#define I40E_PRT_MNG_MSFM_PORT_26F_UDP_SHIFT 0 +#define I40E_PRT_MNG_MSFM_PORT_26F_UDP_MASK (0x1 << I40E_PRT_MNG_MSFM_PORT_26F_UDP_SHIFT) +#define I40E_PRT_MNG_MSFM_PORT_26F_TCP_SHIFT 1 +#define I40E_PRT_MNG_MSFM_PORT_26F_TCP_MASK (0x1 << I40E_PRT_MNG_MSFM_PORT_26F_TCP_SHIFT) +#define I40E_PRT_MNG_MSFM_PORT_298_UDP_SHIFT 2 +#define I40E_PRT_MNG_MSFM_PORT_298_UDP_MASK (0x1 << I40E_PRT_MNG_MSFM_PORT_298_UDP_SHIFT) +#define I40E_PRT_MNG_MSFM_PORT_298_TCP_SHIFT 3 +#define I40E_PRT_MNG_MSFM_PORT_298_TCP_MASK (0x1 << I40E_PRT_MNG_MSFM_PORT_298_TCP_SHIFT) +#define I40E_PRT_MNG_MSFM_IPV6_0_MASK_SHIFT 4 +#define I40E_PRT_MNG_MSFM_IPV6_0_MASK_MASK (0x1 << I40E_PRT_MNG_MSFM_IPV6_0_MASK_SHIFT) +#define I40E_PRT_MNG_MSFM_IPV6_1_MASK_SHIFT 5 +#define I40E_PRT_MNG_MSFM_IPV6_1_MASK_MASK (0x1 << I40E_PRT_MNG_MSFM_IPV6_1_MASK_SHIFT) +#define I40E_PRT_MNG_MSFM_IPV6_2_MASK_SHIFT 6 +#define I40E_PRT_MNG_MSFM_IPV6_2_MASK_MASK (0x1 << I40E_PRT_MNG_MSFM_IPV6_2_MASK_SHIFT) +#define I40E_PRT_MNG_MSFM_IPV6_3_MASK_SHIFT 7 +#define I40E_PRT_MNG_MSFM_IPV6_3_MASK_MASK (0x1 << I40E_PRT_MNG_MSFM_IPV6_3_MASK_SHIFT) +#define I40E_MSIX_PBA(_i) (0x00004900 + ((_i) * 4)) /* _i=0...5 */ +#define I40E_MSIX_PBA_MAX_INDEX 5 +#define I40E_MSIX_PBA_PENBIT_SHIFT 0 +#define I40E_MSIX_PBA_PENBIT_MASK (0xFFFFFFFF << I40E_MSIX_PBA_PENBIT_SHIFT) +#define I40E_MSIX_TADD(_i) (0x00000000 + ((_i) * 16)) /* _i=0...128 */ +#define I40E_MSIX_TADD_MAX_INDEX 128 +#define I40E_MSIX_TADD_MSIXTADD10_SHIFT 0 +#define I40E_MSIX_TADD_MSIXTADD10_MASK (0x3 << I40E_MSIX_TADD_MSIXTADD10_SHIFT) +#define I40E_MSIX_TADD_MSIXTADD_SHIFT 2 +#define I40E_MSIX_TADD_MSIXTADD_MASK (0x3FFFFFFF << I40E_MSIX_TADD_MSIXTADD_SHIFT) +#define I40E_MSIX_TMSG(_i) (0x00000008 + ((_i) * 16)) /* _i=0...128 */ +#define I40E_MSIX_TMSG_MAX_INDEX 128 +#define I40E_MSIX_TMSG_MSIXTMSG_SHIFT 0 +#define I40E_MSIX_TMSG_MSIXTMSG_MASK (0xFFFFFFFF << I40E_MSIX_TMSG_MSIXTMSG_SHIFT) +#define I40E_MSIX_TUADD(_i) (0x00000004 + ((_i) * 16)) /* _i=0...128 */ +#define I40E_MSIX_TUADD_MAX_INDEX 128 +#define I40E_MSIX_TUADD_MSIXTUADD_SHIFT 0 +#define I40E_MSIX_TUADD_MSIXTUADD_MASK (0xFFFFFFFF << I40E_MSIX_TUADD_MSIXTUADD_SHIFT) +#define I40E_MSIX_TVCTRL(_i) (0x0000000C + ((_i) * 16)) /* _i=0...128 */ +#define I40E_MSIX_TVCTRL_MAX_INDEX 128 +#define I40E_MSIX_TVCTRL_MASK_SHIFT 0 +#define I40E_MSIX_TVCTRL_MASK_MASK (0x1 << I40E_MSIX_TVCTRL_MASK_SHIFT) +#define I40E_VFMSIX_PBA1(_i) (0x00004944 + ((_i) * 4)) /* _i=0...19 */ +#define I40E_VFMSIX_PBA1_MAX_INDEX 19 +#define I40E_VFMSIX_PBA1_PENBIT_SHIFT 0 +#define I40E_VFMSIX_PBA1_PENBIT_MASK (0xFFFFFFFF << I40E_VFMSIX_PBA1_PENBIT_SHIFT) +#define I40E_VFMSIX_TADD1(_i) (0x00002100 + ((_i) * 16)) /* _i=0...639 */ +#define I40E_VFMSIX_TADD1_MAX_INDEX 639 +#define I40E_VFMSIX_TADD1_MSIXTADD10_SHIFT 0 +#define I40E_VFMSIX_TADD1_MSIXTADD10_MASK (0x3 << I40E_VFMSIX_TADD1_MSIXTADD10_SHIFT) +#define I40E_VFMSIX_TADD1_MSIXTADD_SHIFT 2 +#define I40E_VFMSIX_TADD1_MSIXTADD_MASK (0x3FFFFFFF << I40E_VFMSIX_TADD1_MSIXTADD_SHIFT) +#define I40E_VFMSIX_TMSG1(_i) (0x00002108 + ((_i) * 16)) /* _i=0...639 */ +#define I40E_VFMSIX_TMSG1_MAX_INDEX 639 +#define I40E_VFMSIX_TMSG1_MSIXTMSG_SHIFT 0 +#define I40E_VFMSIX_TMSG1_MSIXTMSG_MASK (0xFFFFFFFF << I40E_VFMSIX_TMSG1_MSIXTMSG_SHIFT) +#define I40E_VFMSIX_TUADD1(_i) (0x00002104 + ((_i) * 16)) /* _i=0...639 */ +#define I40E_VFMSIX_TUADD1_MAX_INDEX 639 +#define I40E_VFMSIX_TUADD1_MSIXTUADD_SHIFT 0 +#define I40E_VFMSIX_TUADD1_MSIXTUADD_MASK (0xFFFFFFFF << I40E_VFMSIX_TUADD1_MSIXTUADD_SHIFT) +#define I40E_VFMSIX_TVCTRL1(_i) (0x0000210C + ((_i) * 16)) /* _i=0...639 */ +#define I40E_VFMSIX_TVCTRL1_MAX_INDEX 639 +#define I40E_VFMSIX_TVCTRL1_MASK_SHIFT 0 +#define I40E_VFMSIX_TVCTRL1_MASK_MASK (0x1 << I40E_VFMSIX_TVCTRL1_MASK_SHIFT) +#define I40E_GLNVM_FLA 0x000B6108 +#define I40E_GLNVM_FLA_FL_SCK_SHIFT 0 +#define I40E_GLNVM_FLA_FL_SCK_MASK (0x1 << I40E_GLNVM_FLA_FL_SCK_SHIFT) +#define I40E_GLNVM_FLA_FL_CE_SHIFT 1 +#define I40E_GLNVM_FLA_FL_CE_MASK (0x1 << I40E_GLNVM_FLA_FL_CE_SHIFT) +#define I40E_GLNVM_FLA_FL_SI_SHIFT 2 +#define I40E_GLNVM_FLA_FL_SI_MASK (0x1 << I40E_GLNVM_FLA_FL_SI_SHIFT) +#define I40E_GLNVM_FLA_FL_SO_SHIFT 3 +#define I40E_GLNVM_FLA_FL_SO_MASK (0x1 << I40E_GLNVM_FLA_FL_SO_SHIFT) +#define I40E_GLNVM_FLA_FL_REQ_SHIFT 4 +#define I40E_GLNVM_FLA_FL_REQ_MASK (0x1 << I40E_GLNVM_FLA_FL_REQ_SHIFT) +#define I40E_GLNVM_FLA_FL_GNT_SHIFT 5 +#define I40E_GLNVM_FLA_FL_GNT_MASK (0x1 << I40E_GLNVM_FLA_FL_GNT_SHIFT) +#define I40E_GLNVM_FLA_LOCKED_SHIFT 6 +#define I40E_GLNVM_FLA_LOCKED_MASK (0x1 << I40E_GLNVM_FLA_LOCKED_SHIFT) +#define I40E_GLNVM_FLA_FL_SADDR_SHIFT 18 +#define I40E_GLNVM_FLA_FL_SADDR_MASK (0x7FF << I40E_GLNVM_FLA_FL_SADDR_SHIFT) +#define I40E_GLNVM_FLA_FL_BUSY_SHIFT 30 +#define I40E_GLNVM_FLA_FL_BUSY_MASK (0x1 << I40E_GLNVM_FLA_FL_BUSY_SHIFT) +#define I40E_GLNVM_FLA_FL_DER_SHIFT 31 +#define I40E_GLNVM_FLA_FL_DER_MASK (0x1 << I40E_GLNVM_FLA_FL_DER_SHIFT) +#define I40E_GLNVM_FLASHID 0x000B6104 +#define I40E_GLNVM_FLASHID_FLASHID_SHIFT 0 +#define I40E_GLNVM_FLASHID_FLASHID_MASK (0xFFFFFF << I40E_GLNVM_FLASHID_FLASHID_SHIFT) +#define I40E_GLNVM_GENS 0x000B6100 +#define I40E_GLNVM_GENS_NVM_PRES_SHIFT 0 +#define I40E_GLNVM_GENS_NVM_PRES_MASK (0x1 << I40E_GLNVM_GENS_NVM_PRES_SHIFT) +#define I40E_GLNVM_GENS_SR_SIZE_SHIFT 5 +#define I40E_GLNVM_GENS_SR_SIZE_MASK (0x7 << I40E_GLNVM_GENS_SR_SIZE_SHIFT) +#define I40E_GLNVM_GENS_BANK1VAL_SHIFT 8 +#define I40E_GLNVM_GENS_BANK1VAL_MASK (0x1 << I40E_GLNVM_GENS_BANK1VAL_SHIFT) +#define I40E_GLNVM_GENS_ALT_PRST_SHIFT 23 +#define I40E_GLNVM_GENS_ALT_PRST_MASK (0x1 << I40E_GLNVM_GENS_ALT_PRST_SHIFT) +#define I40E_GLNVM_GENS_FL_AUTO_RD_SHIFT 25 +#define I40E_GLNVM_GENS_FL_AUTO_RD_MASK (0x1 << I40E_GLNVM_GENS_FL_AUTO_RD_SHIFT) +#define I40E_GLNVM_PROTCSR(_i) (0x000B6010 + ((_i) * 4)) /* _i=0...59 */ +#define I40E_GLNVM_PROTCSR_MAX_INDEX 59 +#define I40E_GLNVM_PROTCSR_ADDR_BLOCK_SHIFT 0 +#define I40E_GLNVM_PROTCSR_ADDR_BLOCK_MASK (0xFFFFFF << I40E_GLNVM_PROTCSR_ADDR_BLOCK_SHIFT) +#define I40E_GLNVM_SRCTL 0x000B6110 +#define I40E_GLNVM_SRCTL_SRBUSY_SHIFT 0 +#define I40E_GLNVM_SRCTL_SRBUSY_MASK (0x1 << I40E_GLNVM_SRCTL_SRBUSY_SHIFT) +#define I40E_GLNVM_SRCTL_ADDR_SHIFT 14 +#define I40E_GLNVM_SRCTL_ADDR_MASK (0x7FFF << I40E_GLNVM_SRCTL_ADDR_SHIFT) +#define I40E_GLNVM_SRCTL_WRITE_SHIFT 29 +#define I40E_GLNVM_SRCTL_WRITE_MASK (0x1 << I40E_GLNVM_SRCTL_WRITE_SHIFT) +#define I40E_GLNVM_SRCTL_START_SHIFT 30 +#define I40E_GLNVM_SRCTL_START_MASK (0x1 << I40E_GLNVM_SRCTL_START_SHIFT) +#define I40E_GLNVM_SRCTL_DONE_SHIFT 31 +#define I40E_GLNVM_SRCTL_DONE_MASK (0x1 << I40E_GLNVM_SRCTL_DONE_SHIFT) +#define I40E_GLNVM_SRDATA 0x000B6114 +#define I40E_GLNVM_SRDATA_WRDATA_SHIFT 0 +#define I40E_GLNVM_SRDATA_WRDATA_MASK (0xFFFF << I40E_GLNVM_SRDATA_WRDATA_SHIFT) +#define I40E_GLNVM_SRDATA_RDDATA_SHIFT 16 +#define I40E_GLNVM_SRDATA_RDDATA_MASK (0xFFFF << I40E_GLNVM_SRDATA_RDDATA_SHIFT) +#define I40E_GLNVM_ULD 0x000B6008 +#define I40E_GLNVM_ULD_CONF_PCIR_DONE_SHIFT 0 +#define I40E_GLNVM_ULD_CONF_PCIR_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_PCIR_DONE_SHIFT) +#define I40E_GLNVM_ULD_CONF_PCIRTL_DONE_SHIFT 1 +#define I40E_GLNVM_ULD_CONF_PCIRTL_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_PCIRTL_DONE_SHIFT) +#define I40E_GLNVM_ULD_CONF_LCB_DONE_SHIFT 2 +#define I40E_GLNVM_ULD_CONF_LCB_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_LCB_DONE_SHIFT) +#define I40E_GLNVM_ULD_CONF_CORE_DONE_SHIFT 3 +#define I40E_GLNVM_ULD_CONF_CORE_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_CORE_DONE_SHIFT) +#define I40E_GLNVM_ULD_CONF_GLOBAL_DONE_SHIFT 4 +#define I40E_GLNVM_ULD_CONF_GLOBAL_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_GLOBAL_DONE_SHIFT) +#define I40E_GLNVM_ULD_CONF_POR_DONE_SHIFT 5 +#define I40E_GLNVM_ULD_CONF_POR_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_POR_DONE_SHIFT) +#define I40E_GLNVM_ULD_CONF_PCIE_ANA_DONE_SHIFT 6 +#define I40E_GLNVM_ULD_CONF_PCIE_ANA_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_PCIE_ANA_DONE_SHIFT) +#define I40E_GLNVM_ULD_CONF_PHY_ANA_DONE_SHIFT 7 +#define I40E_GLNVM_ULD_CONF_PHY_ANA_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_PHY_ANA_DONE_SHIFT) +#define I40E_GLNVM_ULD_CONF_EMP_DONE_SHIFT 8 +#define I40E_GLNVM_ULD_CONF_EMP_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_EMP_DONE_SHIFT) +#define I40E_GLNVM_ULD_CONF_PCIALT_DONE_SHIFT 9 +#define I40E_GLNVM_ULD_CONF_PCIALT_DONE_MASK (0x1 << I40E_GLNVM_ULD_CONF_PCIALT_DONE_SHIFT) + +#define I40E_GLPCI_BYTCTH 0x0009C484 +#define I40E_GLPCI_BYTCTH_PCI_COUNT_BW_BCT_SHIFT 0 +#define I40E_GLPCI_BYTCTH_PCI_COUNT_BW_BCT_MASK (0xFFFFFFFF << I40E_GLPCI_BYTCTH_PCI_COUNT_BW_BCT_SHIFT) +#define I40E_GLPCI_BYTCTL 0x0009C488 +#define I40E_GLPCI_BYTCTL_PCI_COUNT_BW_BCT_SHIFT 0 +#define I40E_GLPCI_BYTCTL_PCI_COUNT_BW_BCT_MASK (0xFFFFFFFF << I40E_GLPCI_BYTCTL_PCI_COUNT_BW_BCT_SHIFT) +#define I40E_GLPCI_CAPCTRL 0x000BE4A4 +#define I40E_GLPCI_CAPCTRL_VPD_EN_SHIFT 0 +#define I40E_GLPCI_CAPCTRL_VPD_EN_MASK (0x1 << I40E_GLPCI_CAPCTRL_VPD_EN_SHIFT) +#define I40E_GLPCI_CAPSUP 0x000BE4A8 +#define I40E_GLPCI_CAPSUP_PCIE_VER_SHIFT 0 +#define I40E_GLPCI_CAPSUP_PCIE_VER_MASK (0x1 << I40E_GLPCI_CAPSUP_PCIE_VER_SHIFT) +#define I40E_GLPCI_CAPSUP_LTR_EN_SHIFT 2 +#define I40E_GLPCI_CAPSUP_LTR_EN_MASK (0x1 << I40E_GLPCI_CAPSUP_LTR_EN_SHIFT) +#define I40E_GLPCI_CAPSUP_TPH_EN_SHIFT 3 +#define I40E_GLPCI_CAPSUP_TPH_EN_MASK (0x1 << I40E_GLPCI_CAPSUP_TPH_EN_SHIFT) +#define I40E_GLPCI_CAPSUP_ARI_EN_SHIFT 4 +#define I40E_GLPCI_CAPSUP_ARI_EN_MASK (0x1 << I40E_GLPCI_CAPSUP_ARI_EN_SHIFT) +#define I40E_GLPCI_CAPSUP_IOV_EN_SHIFT 5 +#define I40E_GLPCI_CAPSUP_IOV_EN_MASK (0x1 << I40E_GLPCI_CAPSUP_IOV_EN_SHIFT) +#define I40E_GLPCI_CAPSUP_ACS_EN_SHIFT 6 +#define I40E_GLPCI_CAPSUP_ACS_EN_MASK (0x1 << I40E_GLPCI_CAPSUP_ACS_EN_SHIFT) +#define I40E_GLPCI_CAPSUP_SEC_EN_SHIFT 7 +#define I40E_GLPCI_CAPSUP_SEC_EN_MASK (0x1 << I40E_GLPCI_CAPSUP_SEC_EN_SHIFT) +#define I40E_GLPCI_CAPSUP_ECRC_GEN_EN_SHIFT 16 +#define I40E_GLPCI_CAPSUP_ECRC_GEN_EN_MASK (0x1 << I40E_GLPCI_CAPSUP_ECRC_GEN_EN_SHIFT) +#define I40E_GLPCI_CAPSUP_ECRC_CHK_EN_SHIFT 17 +#define I40E_GLPCI_CAPSUP_ECRC_CHK_EN_MASK (0x1 << I40E_GLPCI_CAPSUP_ECRC_CHK_EN_SHIFT) +#define I40E_GLPCI_CAPSUP_IDO_EN_SHIFT 18 +#define I40E_GLPCI_CAPSUP_IDO_EN_MASK (0x1 << I40E_GLPCI_CAPSUP_IDO_EN_SHIFT) +#define I40E_GLPCI_CAPSUP_MSI_MASK_SHIFT 19 +#define I40E_GLPCI_CAPSUP_MSI_MASK_MASK (0x1 << I40E_GLPCI_CAPSUP_MSI_MASK_SHIFT) +#define I40E_GLPCI_CAPSUP_CSR_CONF_EN_SHIFT 20 +#define I40E_GLPCI_CAPSUP_CSR_CONF_EN_MASK (0x1 << I40E_GLPCI_CAPSUP_CSR_CONF_EN_SHIFT) +#define I40E_GLPCI_CAPSUP_LOAD_SUBSYS_ID_SHIFT 30 +#define I40E_GLPCI_CAPSUP_LOAD_SUBSYS_ID_MASK (0x1 << I40E_GLPCI_CAPSUP_LOAD_SUBSYS_ID_SHIFT) +#define I40E_GLPCI_CAPSUP_LOAD_DEV_ID_SHIFT 31 +#define I40E_GLPCI_CAPSUP_LOAD_DEV_ID_MASK (0x1 << I40E_GLPCI_CAPSUP_LOAD_DEV_ID_SHIFT) +#define I40E_GLPCI_CNF 0x000BE4C0 +#define I40E_GLPCI_CNF_FLEX10_SHIFT 1 +#define I40E_GLPCI_CNF_FLEX10_MASK (0x1 << I40E_GLPCI_CNF_FLEX10_SHIFT) +#define I40E_GLPCI_CNF_WAKE_PIN_EN_SHIFT 2 +#define I40E_GLPCI_CNF_WAKE_PIN_EN_MASK (0x1 << I40E_GLPCI_CNF_WAKE_PIN_EN_SHIFT) +#define I40E_GLPCI_CNF2 0x000BE494 +#define I40E_GLPCI_CNF2_RO_DIS_SHIFT 0 +#define I40E_GLPCI_CNF2_RO_DIS_MASK (0x1 << I40E_GLPCI_CNF2_RO_DIS_SHIFT) +#define I40E_GLPCI_CNF2_CACHELINE_SIZE_SHIFT 1 +#define I40E_GLPCI_CNF2_CACHELINE_SIZE_MASK (0x1 << I40E_GLPCI_CNF2_CACHELINE_SIZE_SHIFT) +#define I40E_GLPCI_CNF2_MSI_X_PF_N_SHIFT 2 +#define I40E_GLPCI_CNF2_MSI_X_PF_N_MASK (0x7FF << I40E_GLPCI_CNF2_MSI_X_PF_N_SHIFT) +#define I40E_GLPCI_CNF2_MSI_X_VF_N_SHIFT 13 +#define I40E_GLPCI_CNF2_MSI_X_VF_N_MASK (0x7FF << I40E_GLPCI_CNF2_MSI_X_VF_N_SHIFT) +#define I40E_GLPCI_DREVID 0x0009C480 +#define I40E_GLPCI_DREVID_DEFAULT_REVID_SHIFT 0 +#define I40E_GLPCI_DREVID_DEFAULT_REVID_MASK (0xFF << I40E_GLPCI_DREVID_DEFAULT_REVID_SHIFT) +#define I40E_GLPCI_GSCL_1 0x0009C48C +#define I40E_GLPCI_GSCL_1_GIO_COUNT_EN_0_SHIFT 0 +#define I40E_GLPCI_GSCL_1_GIO_COUNT_EN_0_MASK (0x1 << I40E_GLPCI_GSCL_1_GIO_COUNT_EN_0_SHIFT) +#define I40E_GLPCI_GSCL_1_GIO_COUNT_EN_1_SHIFT 1 +#define I40E_GLPCI_GSCL_1_GIO_COUNT_EN_1_MASK (0x1 << I40E_GLPCI_GSCL_1_GIO_COUNT_EN_1_SHIFT) +#define I40E_GLPCI_GSCL_1_GIO_COUNT_EN_2_SHIFT 2 +#define I40E_GLPCI_GSCL_1_GIO_COUNT_EN_2_MASK (0x1 << I40E_GLPCI_GSCL_1_GIO_COUNT_EN_2_SHIFT) +#define I40E_GLPCI_GSCL_1_GIO_COUNT_EN_3_SHIFT 3 +#define I40E_GLPCI_GSCL_1_GIO_COUNT_EN_3_MASK (0x1 << I40E_GLPCI_GSCL_1_GIO_COUNT_EN_3_SHIFT) +#define I40E_GLPCI_GSCL_1_LBC_ENABLE_0_SHIFT 4 +#define I40E_GLPCI_GSCL_1_LBC_ENABLE_0_MASK (0x1 << I40E_GLPCI_GSCL_1_LBC_ENABLE_0_SHIFT) +#define I40E_GLPCI_GSCL_1_LBC_ENABLE_1_SHIFT 5 +#define I40E_GLPCI_GSCL_1_LBC_ENABLE_1_MASK (0x1 << I40E_GLPCI_GSCL_1_LBC_ENABLE_1_SHIFT) +#define I40E_GLPCI_GSCL_1_LBC_ENABLE_2_SHIFT 6 +#define I40E_GLPCI_GSCL_1_LBC_ENABLE_2_MASK (0x1 << I40E_GLPCI_GSCL_1_LBC_ENABLE_2_SHIFT) +#define I40E_GLPCI_GSCL_1_LBC_ENABLE_3_SHIFT 7 +#define I40E_GLPCI_GSCL_1_LBC_ENABLE_3_MASK (0x1 << I40E_GLPCI_GSCL_1_LBC_ENABLE_3_SHIFT) +#define I40E_GLPCI_GSCL_1_PCI_COUNT_LAT_EN_SHIFT 8 +#define I40E_GLPCI_GSCL_1_PCI_COUNT_LAT_EN_MASK (0x1 << I40E_GLPCI_GSCL_1_PCI_COUNT_LAT_EN_SHIFT) +#define I40E_GLPCI_GSCL_1_PCI_COUNT_LAT_EV_SHIFT 9 +#define I40E_GLPCI_GSCL_1_PCI_COUNT_LAT_EV_MASK (0x1F << I40E_GLPCI_GSCL_1_PCI_COUNT_LAT_EV_SHIFT) +#define I40E_GLPCI_GSCL_1_PCI_COUNT_BW_EN_SHIFT 14 +#define I40E_GLPCI_GSCL_1_PCI_COUNT_BW_EN_MASK (0x1 << I40E_GLPCI_GSCL_1_PCI_COUNT_BW_EN_SHIFT) +#define I40E_GLPCI_GSCL_1_PCI_COUNT_BW_EV_SHIFT 15 +#define I40E_GLPCI_GSCL_1_PCI_COUNT_BW_EV_MASK (0x1F << I40E_GLPCI_GSCL_1_PCI_COUNT_BW_EV_SHIFT) +#define I40E_GLPCI_GSCL_1_GIO_64_BIT_EN_SHIFT 28 +#define I40E_GLPCI_GSCL_1_GIO_64_BIT_EN_MASK (0x1 << I40E_GLPCI_GSCL_1_GIO_64_BIT_EN_SHIFT) +#define I40E_GLPCI_GSCL_1_GIO_COUNT_RESET_SHIFT 29 +#define I40E_GLPCI_GSCL_1_GIO_COUNT_RESET_MASK (0x1 << I40E_GLPCI_GSCL_1_GIO_COUNT_RESET_SHIFT) +#define I40E_GLPCI_GSCL_1_GIO_COUNT_STOP_SHIFT 30 +#define I40E_GLPCI_GSCL_1_GIO_COUNT_STOP_MASK (0x1 << I40E_GLPCI_GSCL_1_GIO_COUNT_STOP_SHIFT) +#define I40E_GLPCI_GSCL_1_GIO_COUNT_START_SHIFT 31 +#define I40E_GLPCI_GSCL_1_GIO_COUNT_START_MASK (0x1 << I40E_GLPCI_GSCL_1_GIO_COUNT_START_SHIFT) +#define I40E_GLPCI_GSCL_2 0x0009C490 +#define I40E_GLPCI_GSCL_2_GIO_EVENT_NUM_0_SHIFT 0 +#define I40E_GLPCI_GSCL_2_GIO_EVENT_NUM_0_MASK (0xFF << I40E_GLPCI_GSCL_2_GIO_EVENT_NUM_0_SHIFT) +#define I40E_GLPCI_GSCL_2_GIO_EVENT_NUM_1_SHIFT 8 +#define I40E_GLPCI_GSCL_2_GIO_EVENT_NUM_1_MASK (0xFF << I40E_GLPCI_GSCL_2_GIO_EVENT_NUM_1_SHIFT) +#define I40E_GLPCI_GSCL_2_GIO_EVENT_NUM_2_SHIFT 16 +#define I40E_GLPCI_GSCL_2_GIO_EVENT_NUM_2_MASK (0xFF << I40E_GLPCI_GSCL_2_GIO_EVENT_NUM_2_SHIFT) +#define I40E_GLPCI_GSCL_2_GIO_EVENT_NUM_3_SHIFT 24 +#define I40E_GLPCI_GSCL_2_GIO_EVENT_NUM_3_MASK (0xFF << I40E_GLPCI_GSCL_2_GIO_EVENT_NUM_3_SHIFT) +#define I40E_GLPCI_GSCL_5_8(_i) (0x0009C494 + ((_i) * 4)) /* _i=0...3 */ +#define I40E_GLPCI_GSCL_5_8_MAX_INDEX 3 +#define I40E_GLPCI_GSCL_5_8_LBC_THRESHOLD_N_SHIFT 0 +#define I40E_GLPCI_GSCL_5_8_LBC_THRESHOLD_N_MASK (0xFFFF << I40E_GLPCI_GSCL_5_8_LBC_THRESHOLD_N_SHIFT) +#define I40E_GLPCI_GSCL_5_8_LBC_TIMER_N_SHIFT 16 +#define I40E_GLPCI_GSCL_5_8_LBC_TIMER_N_MASK (0xFFFF << I40E_GLPCI_GSCL_5_8_LBC_TIMER_N_SHIFT) +#define I40E_GLPCI_GSCN_0_3(_i) (0x0009C4A4 + ((_i) * 4)) /* _i=0...3 */ +#define I40E_GLPCI_GSCN_0_3_MAX_INDEX 3 +#define I40E_GLPCI_GSCN_0_3_EVENT_COUNTER_SHIFT 0 +#define I40E_GLPCI_GSCN_0_3_EVENT_COUNTER_MASK (0xFFFFFFFF << I40E_GLPCI_GSCN_0_3_EVENT_COUNTER_SHIFT) +#define I40E_GLPCI_LATCT 0x0009C4B4 +#define I40E_GLPCI_LATCT_PCI_COUNT_LAT_CT_SHIFT 0 +#define I40E_GLPCI_LATCT_PCI_COUNT_LAT_CT_MASK (0xFFFFFFFF << I40E_GLPCI_LATCT_PCI_COUNT_LAT_CT_SHIFT) +#define I40E_GLPCI_LBARCTRL 0x000BE484 +#define I40E_GLPCI_LBARCTRL_PREFBAR_SHIFT 0 +#define I40E_GLPCI_LBARCTRL_PREFBAR_MASK (0x1 << I40E_GLPCI_LBARCTRL_PREFBAR_SHIFT) +#define I40E_GLPCI_LBARCTRL_BAR32_SHIFT 1 +#define I40E_GLPCI_LBARCTRL_BAR32_MASK (0x1 << I40E_GLPCI_LBARCTRL_BAR32_SHIFT) +#define I40E_GLPCI_LBARCTRL_FLASH_EXPOSE_SHIFT 3 +#define I40E_GLPCI_LBARCTRL_FLASH_EXPOSE_MASK (0x1 << I40E_GLPCI_LBARCTRL_FLASH_EXPOSE_SHIFT) +#define I40E_GLPCI_LBARCTRL_PE_DB_SIZE_SHIFT 4 +#define I40E_GLPCI_LBARCTRL_PE_DB_SIZE_MASK (0x3 << I40E_GLPCI_LBARCTRL_PE_DB_SIZE_SHIFT) +#define I40E_GLPCI_LBARCTRL_FL_SIZE_SHIFT 6 +#define I40E_GLPCI_LBARCTRL_FL_SIZE_MASK (0x7 << I40E_GLPCI_LBARCTRL_FL_SIZE_SHIFT) +#define I40E_GLPCI_LBARCTRL_VF_PE_DB_SIZE_SHIFT 10 +#define I40E_GLPCI_LBARCTRL_VF_PE_DB_SIZE_MASK (0x1 << I40E_GLPCI_LBARCTRL_VF_PE_DB_SIZE_SHIFT) +#define I40E_GLPCI_LBARCTRL_EXROM_SIZE_SHIFT 11 +#define I40E_GLPCI_LBARCTRL_EXROM_SIZE_MASK (0x7 << I40E_GLPCI_LBARCTRL_EXROM_SIZE_SHIFT) +#define I40E_GLPCI_LINKCAP 0x000BE4AC +#define I40E_GLPCI_LINKCAP_LINK_SPEEDS_VECTOR_SHIFT 0 +#define I40E_GLPCI_LINKCAP_LINK_SPEEDS_VECTOR_MASK (0x3F << I40E_GLPCI_LINKCAP_LINK_SPEEDS_VECTOR_SHIFT) +#define I40E_GLPCI_LINKCAP_MAX_PAYLOAD_SHIFT 6 +#define I40E_GLPCI_LINKCAP_MAX_PAYLOAD_MASK (0x7 << I40E_GLPCI_LINKCAP_MAX_PAYLOAD_SHIFT) +#define I40E_GLPCI_LINKCAP_MAX_LINK_WIDTH_SHIFT 9 +#define I40E_GLPCI_LINKCAP_MAX_LINK_WIDTH_MASK (0xF << I40E_GLPCI_LINKCAP_MAX_LINK_WIDTH_SHIFT) +#define I40E_GLPCI_PCIERR 0x000BE4FC +#define I40E_GLPCI_PCIERR_PCIE_ERR_REP_SHIFT 0 +#define I40E_GLPCI_PCIERR_PCIE_ERR_REP_MASK (0xFFFFFFFF << I40E_GLPCI_PCIERR_PCIE_ERR_REP_SHIFT) +#define I40E_GLPCI_PCITEST2 0x000BE4BC +#define I40E_GLPCI_PCITEST2_IOV_TEST_MODE_SHIFT 0 +#define I40E_GLPCI_PCITEST2_IOV_TEST_MODE_MASK (0x1 << I40E_GLPCI_PCITEST2_IOV_TEST_MODE_SHIFT) +#define I40E_GLPCI_PCITEST2_TAG_ALLOC_SHIFT 1 +#define I40E_GLPCI_PCITEST2_TAG_ALLOC_MASK (0x1 << I40E_GLPCI_PCITEST2_TAG_ALLOC_SHIFT) + +#define I40E_GLPCI_PKTCT 0x0009C4BC +#define I40E_GLPCI_PKTCT_PCI_COUNT_BW_PCT_SHIFT 0 +#define I40E_GLPCI_PKTCT_PCI_COUNT_BW_PCT_MASK (0xFFFFFFFF << I40E_GLPCI_PKTCT_PCI_COUNT_BW_PCT_SHIFT) +#define I40E_GLPCI_PMSUP 0x000BE4B0 +#define I40E_GLPCI_PMSUP_ASPM_SUP_SHIFT 0 +#define I40E_GLPCI_PMSUP_ASPM_SUP_MASK (0x3 << I40E_GLPCI_PMSUP_ASPM_SUP_SHIFT) +#define I40E_GLPCI_PMSUP_L0S_EXIT_LAT_SHIFT 2 +#define I40E_GLPCI_PMSUP_L0S_EXIT_LAT_MASK (0x7 << I40E_GLPCI_PMSUP_L0S_EXIT_LAT_SHIFT) +#define I40E_GLPCI_PMSUP_L1_EXIT_LAT_SHIFT 5 +#define I40E_GLPCI_PMSUP_L1_EXIT_LAT_MASK (0x7 << I40E_GLPCI_PMSUP_L1_EXIT_LAT_SHIFT) +#define I40E_GLPCI_PMSUP_L0S_ACC_LAT_SHIFT 8 +#define I40E_GLPCI_PMSUP_L0S_ACC_LAT_MASK (0x7 << I40E_GLPCI_PMSUP_L0S_ACC_LAT_SHIFT) +#define I40E_GLPCI_PMSUP_L1_ACC_LAT_SHIFT 11 +#define I40E_GLPCI_PMSUP_L1_ACC_LAT_MASK (0x7 << I40E_GLPCI_PMSUP_L1_ACC_LAT_SHIFT) +#define I40E_GLPCI_PMSUP_SLOT_CLK_SHIFT 14 +#define I40E_GLPCI_PMSUP_SLOT_CLK_MASK (0x1 << I40E_GLPCI_PMSUP_SLOT_CLK_SHIFT) +#define I40E_GLPCI_PMSUP_OBFF_SUP_SHIFT 15 +#define I40E_GLPCI_PMSUP_OBFF_SUP_MASK (0x3 << I40E_GLPCI_PMSUP_OBFF_SUP_SHIFT) +#define I40E_GLPCI_PWRDATA 0x000BE490 +#define I40E_GLPCI_PWRDATA_D0_POWER_SHIFT 0 +#define I40E_GLPCI_PWRDATA_D0_POWER_MASK (0xFF << I40E_GLPCI_PWRDATA_D0_POWER_SHIFT) +#define I40E_GLPCI_PWRDATA_COMM_POWER_SHIFT 8 +#define I40E_GLPCI_PWRDATA_COMM_POWER_MASK (0xFF << I40E_GLPCI_PWRDATA_COMM_POWER_SHIFT) +#define I40E_GLPCI_PWRDATA_D3_POWER_SHIFT 16 +#define I40E_GLPCI_PWRDATA_D3_POWER_MASK (0xFF << I40E_GLPCI_PWRDATA_D3_POWER_SHIFT) +#define I40E_GLPCI_PWRDATA_DATA_SCALE_SHIFT 24 +#define I40E_GLPCI_PWRDATA_DATA_SCALE_MASK (0x3 << I40E_GLPCI_PWRDATA_DATA_SCALE_SHIFT) +#define I40E_GLPCI_REVID 0x000BE4B4 +#define I40E_GLPCI_REVID_NVM_REVID_SHIFT 0 +#define I40E_GLPCI_REVID_NVM_REVID_MASK (0xFF << I40E_GLPCI_REVID_NVM_REVID_SHIFT) +#define I40E_GLPCI_SERH 0x000BE49C +#define I40E_GLPCI_SERH_SER_NUM_H_SHIFT 0 +#define I40E_GLPCI_SERH_SER_NUM_H_MASK (0xFFFF << I40E_GLPCI_SERH_SER_NUM_H_SHIFT) +#define I40E_GLPCI_SERL 0x000BE498 +#define I40E_GLPCI_SERL_SER_NUM_L_SHIFT 0 +#define I40E_GLPCI_SERL_SER_NUM_L_MASK (0xFFFFFFFF << I40E_GLPCI_SERL_SER_NUM_L_SHIFT) +#define I40E_GLPCI_SUBSYSID 0x000BE48C +#define I40E_GLPCI_SUBSYSID_SUB_VEN_ID_SHIFT 0 +#define I40E_GLPCI_SUBSYSID_SUB_VEN_ID_MASK (0xFFFF << I40E_GLPCI_SUBSYSID_SUB_VEN_ID_SHIFT) +#define I40E_GLPCI_SUBSYSID_SUB_ID_SHIFT 16 +#define I40E_GLPCI_SUBSYSID_SUB_ID_MASK (0xFFFF << I40E_GLPCI_SUBSYSID_SUB_ID_SHIFT) +#define I40E_GLPCI_UPADD 0x000BE4F8 +#define I40E_GLPCI_UPADD_ADDRESS_SHIFT 1 +#define I40E_GLPCI_UPADD_ADDRESS_MASK (0x7FFFFFFF << I40E_GLPCI_UPADD_ADDRESS_SHIFT) +#define I40E_GLPCI_VFSUP 0x000BE4B8 +#define I40E_GLPCI_VFSUP_VF_PREFETCH_SHIFT 0 +#define I40E_GLPCI_VFSUP_VF_PREFETCH_MASK (0x1 << I40E_GLPCI_VFSUP_VF_PREFETCH_SHIFT) +#define I40E_GLPCI_VFSUP_VR_BAR_TYPE_SHIFT 1 +#define I40E_GLPCI_VFSUP_VR_BAR_TYPE_MASK (0x1 << I40E_GLPCI_VFSUP_VR_BAR_TYPE_SHIFT) +#define I40E_PF_FUNC_RID 0x0009C000 +#define I40E_PF_FUNC_RID_FUNCTION_NUMBER_SHIFT 0 +#define I40E_PF_FUNC_RID_FUNCTION_NUMBER_MASK (0x7 << I40E_PF_FUNC_RID_FUNCTION_NUMBER_SHIFT) +#define I40E_PF_FUNC_RID_DEVICE_NUMBER_SHIFT 3 +#define I40E_PF_FUNC_RID_DEVICE_NUMBER_MASK (0x1F << I40E_PF_FUNC_RID_DEVICE_NUMBER_SHIFT) +#define I40E_PF_FUNC_RID_BUS_NUMBER_SHIFT 8 +#define I40E_PF_FUNC_RID_BUS_NUMBER_MASK (0xFF << I40E_PF_FUNC_RID_BUS_NUMBER_SHIFT) +#define I40E_PF_PCI_CIAA 0x0009C080 +#define I40E_PF_PCI_CIAA_ADDRESS_SHIFT 0 +#define I40E_PF_PCI_CIAA_ADDRESS_MASK (0xFFF << I40E_PF_PCI_CIAA_ADDRESS_SHIFT) +#define I40E_PF_PCI_CIAA_VF_NUM_SHIFT 12 +#define I40E_PF_PCI_CIAA_VF_NUM_MASK (0x7F << I40E_PF_PCI_CIAA_VF_NUM_SHIFT) +#define I40E_PF_PCI_CIAD 0x0009C100 +#define I40E_PF_PCI_CIAD_DATA_SHIFT 0 +#define I40E_PF_PCI_CIAD_DATA_MASK (0xFFFFFFFF << I40E_PF_PCI_CIAD_DATA_SHIFT) +#define I40E_PFPCI_CLASS 0x000BE400 +#define I40E_PFPCI_CLASS_STORAGE_CLASS_SHIFT 0 +#define I40E_PFPCI_CLASS_STORAGE_CLASS_MASK (0x1 << I40E_PFPCI_CLASS_STORAGE_CLASS_SHIFT) +#define I40E_PFPCI_CNF 0x000BE000 +#define I40E_PFPCI_CNF_MSI_EN_SHIFT 2 +#define I40E_PFPCI_CNF_MSI_EN_MASK (0x1 << I40E_PFPCI_CNF_MSI_EN_SHIFT) +#define I40E_PFPCI_CNF_EXROM_DIS_SHIFT 3 +#define I40E_PFPCI_CNF_EXROM_DIS_MASK (0x1 << I40E_PFPCI_CNF_EXROM_DIS_SHIFT) +#define I40E_PFPCI_CNF_IO_BAR_SHIFT 4 +#define I40E_PFPCI_CNF_IO_BAR_MASK (0x1 << I40E_PFPCI_CNF_IO_BAR_SHIFT) +#define I40E_PFPCI_CNF_INT_PIN_SHIFT 5 +#define I40E_PFPCI_CNF_INT_PIN_MASK (0x3 << I40E_PFPCI_CNF_INT_PIN_SHIFT) +#define I40E_PFPCI_FACTPS 0x0009C180 +#define I40E_PFPCI_FACTPS_FUNC_POWER_STATE_SHIFT 0 +#define I40E_PFPCI_FACTPS_FUNC_POWER_STATE_MASK (0x3 << I40E_PFPCI_FACTPS_FUNC_POWER_STATE_SHIFT) +#define I40E_PFPCI_FACTPS_FUNC_AUX_EN_SHIFT 3 +#define I40E_PFPCI_FACTPS_FUNC_AUX_EN_MASK (0x1 << I40E_PFPCI_FACTPS_FUNC_AUX_EN_SHIFT) +#define I40E_PFPCI_FUNC 0x000BE200 +#define I40E_PFPCI_FUNC_FUNC_DIS_SHIFT 0 +#define I40E_PFPCI_FUNC_FUNC_DIS_MASK (0x1 << I40E_PFPCI_FUNC_FUNC_DIS_SHIFT) +#define I40E_PFPCI_FUNC_ALLOW_FUNC_DIS_SHIFT 1 +#define I40E_PFPCI_FUNC_ALLOW_FUNC_DIS_MASK (0x1 << I40E_PFPCI_FUNC_ALLOW_FUNC_DIS_SHIFT) +#define I40E_PFPCI_FUNC_DIS_FUNC_ON_PORT_DIS_SHIFT 2 +#define I40E_PFPCI_FUNC_DIS_FUNC_ON_PORT_DIS_MASK (0x1 << I40E_PFPCI_FUNC_DIS_FUNC_ON_PORT_DIS_SHIFT) +#define I40E_PFPCI_FUNC2 0x000BE180 +#define I40E_PFPCI_FUNC2_EMP_FUNC_DIS_SHIFT 0 +#define I40E_PFPCI_FUNC2_EMP_FUNC_DIS_MASK (0x1 << I40E_PFPCI_FUNC2_EMP_FUNC_DIS_SHIFT) +#define I40E_PFPCI_ICAUSE 0x0009C200 +#define I40E_PFPCI_ICAUSE_PCIE_ERR_CAUSE_SHIFT 0 +#define I40E_PFPCI_ICAUSE_PCIE_ERR_CAUSE_MASK (0xFFFFFFFF << I40E_PFPCI_ICAUSE_PCIE_ERR_CAUSE_SHIFT) +#define I40E_PFPCI_IENA 0x0009C280 +#define I40E_PFPCI_IENA_PCIE_ERR_EN_SHIFT 0 +#define I40E_PFPCI_IENA_PCIE_ERR_EN_MASK (0xFFFFFFFF << I40E_PFPCI_IENA_PCIE_ERR_EN_SHIFT) +#define I40E_PFPCI_PFDEVID 0x000BE080 +#define I40E_PFPCI_PFDEVID_PF_DEV_ID_LAN_SHIFT 0 +#define I40E_PFPCI_PFDEVID_PF_DEV_ID_LAN_MASK (0xFFFF << I40E_PFPCI_PFDEVID_PF_DEV_ID_LAN_SHIFT) +#define I40E_PFPCI_PFDEVID_PF_DEV_ID_SAN_SHIFT 16 +#define I40E_PFPCI_PFDEVID_PF_DEV_ID_SAN_MASK (0xFFFF << I40E_PFPCI_PFDEVID_PF_DEV_ID_SAN_SHIFT) +#define I40E_PFPCI_PM 0x000BE300 +#define I40E_PFPCI_PM_PME_EN_SHIFT 0 +#define I40E_PFPCI_PM_PME_EN_MASK (0x1 << I40E_PFPCI_PM_PME_EN_SHIFT) +#define I40E_PFPCI_STATUS1 0x000BE280 +#define I40E_PFPCI_STATUS1_FUNC_VALID_SHIFT 0 +#define I40E_PFPCI_STATUS1_FUNC_VALID_MASK (0x1 << I40E_PFPCI_STATUS1_FUNC_VALID_SHIFT) +#define I40E_PFPCI_VFDEVID 0x000BE100 +#define I40E_PFPCI_VFDEVID_VF_DEV_ID_LAN_SHIFT 0 +#define I40E_PFPCI_VFDEVID_VF_DEV_ID_LAN_MASK (0xFFFF << I40E_PFPCI_VFDEVID_VF_DEV_ID_LAN_SHIFT) +#define I40E_PFPCI_VFDEVID_VF_DEV_ID_SAN_SHIFT 16 +#define I40E_PFPCI_VFDEVID_VF_DEV_ID_SAN_MASK (0xFFFF << I40E_PFPCI_VFDEVID_VF_DEV_ID_SAN_SHIFT) +#define I40E_PFPCI_VMINDEX 0x0009C300 +#define I40E_PFPCI_VMINDEX_VMINDEX_SHIFT 0 +#define I40E_PFPCI_VMINDEX_VMINDEX_MASK (0x1FF << I40E_PFPCI_VMINDEX_VMINDEX_SHIFT) +#define I40E_PFPCI_VMPEND 0x0009C380 +#define I40E_PFPCI_VMPEND_PENDING_SHIFT 0 +#define I40E_PFPCI_VMPEND_PENDING_MASK (0x1 << I40E_PFPCI_VMPEND_PENDING_SHIFT) +#define I40E_GLPE_CPUSTATUS0 0x0000D040 +#define I40E_GLPE_CPUSTATUS0_PECPUSTATUS0_SHIFT 0 +#define I40E_GLPE_CPUSTATUS0_PECPUSTATUS0_MASK (0xFFFFFFFF << I40E_GLPE_CPUSTATUS0_PECPUSTATUS0_SHIFT) +#define I40E_GLPE_CPUSTATUS1 0x0000D044 +#define I40E_GLPE_CPUSTATUS1_PECPUSTATUS1_SHIFT 0 +#define I40E_GLPE_CPUSTATUS1_PECPUSTATUS1_MASK (0xFFFFFFFF << I40E_GLPE_CPUSTATUS1_PECPUSTATUS1_SHIFT) +#define I40E_GLPE_CPUSTATUS2 0x0000D048 +#define I40E_GLPE_CPUSTATUS2_PECPUSTATUS2_SHIFT 0 +#define I40E_GLPE_CPUSTATUS2_PECPUSTATUS2_MASK (0xFFFFFFFF << I40E_GLPE_CPUSTATUS2_PECPUSTATUS2_SHIFT) +#define I40E_GLPE_PFFLMOBJCTRL(_i) (0x0000D480 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLPE_PFFLMOBJCTRL_MAX_INDEX 15 +#define I40E_GLPE_PFFLMOBJCTRL_XMIT_BLOCKSIZE_SHIFT 0 +#define I40E_GLPE_PFFLMOBJCTRL_XMIT_BLOCKSIZE_MASK (0x7 << I40E_GLPE_PFFLMOBJCTRL_XMIT_BLOCKSIZE_SHIFT) +#define I40E_GLPE_PFFLMOBJCTRL_Q1_BLOCKSIZE_SHIFT 8 +#define I40E_GLPE_PFFLMOBJCTRL_Q1_BLOCKSIZE_MASK (0x7 << I40E_GLPE_PFFLMOBJCTRL_Q1_BLOCKSIZE_SHIFT) +#define I40E_GLPE_VFFLMOBJCTRL(_i) (0x0000D400 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPE_VFFLMOBJCTRL_MAX_INDEX 31 +#define I40E_GLPE_VFFLMOBJCTRL_XMIT_BLOCKSIZE_SHIFT 0 +#define I40E_GLPE_VFFLMOBJCTRL_XMIT_BLOCKSIZE_MASK (0x7 << I40E_GLPE_VFFLMOBJCTRL_XMIT_BLOCKSIZE_SHIFT) +#define I40E_GLPE_VFFLMOBJCTRL_Q1_BLOCKSIZE_SHIFT 8 +#define I40E_GLPE_VFFLMOBJCTRL_Q1_BLOCKSIZE_MASK (0x7 << I40E_GLPE_VFFLMOBJCTRL_Q1_BLOCKSIZE_SHIFT) +#define I40E_GLPE_VFFLMQ1ALLOCERR(_i) (0x0000C700 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPE_VFFLMQ1ALLOCERR_MAX_INDEX 31 +#define I40E_GLPE_VFFLMQ1ALLOCERR_ERROR_COUNT_SHIFT 0 +#define I40E_GLPE_VFFLMQ1ALLOCERR_ERROR_COUNT_MASK (0xFFFF << I40E_GLPE_VFFLMQ1ALLOCERR_ERROR_COUNT_SHIFT) +#define I40E_GLPE_VFFLMXMITALLOCERR(_i) (0x0000C600 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPE_VFFLMXMITALLOCERR_MAX_INDEX 31 +#define I40E_GLPE_VFFLMXMITALLOCERR_ERROR_COUNT_SHIFT 0 +#define I40E_GLPE_VFFLMXMITALLOCERR_ERROR_COUNT_MASK (0xFFFF << I40E_GLPE_VFFLMXMITALLOCERR_ERROR_COUNT_SHIFT) +#define I40E_GLPE_VFUDACTRL(_i) (0x0000C000 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPE_VFUDACTRL_MAX_INDEX 31 +#define I40E_GLPE_VFUDACTRL_IPV4MCFRAGRESBP_SHIFT 0 +#define I40E_GLPE_VFUDACTRL_IPV4MCFRAGRESBP_MASK (0x1 << I40E_GLPE_VFUDACTRL_IPV4MCFRAGRESBP_SHIFT) +#define I40E_GLPE_VFUDACTRL_IPV4UCFRAGRESBP_SHIFT 1 +#define I40E_GLPE_VFUDACTRL_IPV4UCFRAGRESBP_MASK (0x1 << I40E_GLPE_VFUDACTRL_IPV4UCFRAGRESBP_SHIFT) +#define I40E_GLPE_VFUDACTRL_IPV6MCFRAGRESBP_SHIFT 2 +#define I40E_GLPE_VFUDACTRL_IPV6MCFRAGRESBP_MASK (0x1 << I40E_GLPE_VFUDACTRL_IPV6MCFRAGRESBP_SHIFT) +#define I40E_GLPE_VFUDACTRL_IPV6UCFRAGRESBP_SHIFT 3 +#define I40E_GLPE_VFUDACTRL_IPV6UCFRAGRESBP_MASK (0x1 << I40E_GLPE_VFUDACTRL_IPV6UCFRAGRESBP_SHIFT) +#define I40E_GLPE_VFUDACTRL_UDPMCFRAGRESFAIL_SHIFT 4 +#define I40E_GLPE_VFUDACTRL_UDPMCFRAGRESFAIL_MASK (0x1 << I40E_GLPE_VFUDACTRL_UDPMCFRAGRESFAIL_SHIFT) +#define I40E_GLPE_VFUDAUCFBQPN(_i) (0x0000C100 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPE_VFUDAUCFBQPN_MAX_INDEX 31 +#define I40E_GLPE_VFUDAUCFBQPN_QPN_SHIFT 0 +#define I40E_GLPE_VFUDAUCFBQPN_QPN_MASK (0x3FFFF << I40E_GLPE_VFUDAUCFBQPN_QPN_SHIFT) +#define I40E_GLPE_VFUDAUCFBQPN_VALID_SHIFT 31 +#define I40E_GLPE_VFUDAUCFBQPN_VALID_MASK (0x1 << I40E_GLPE_VFUDAUCFBQPN_VALID_SHIFT) +#define I40E_PFPE_AEQALLOC 0x00131180 +#define I40E_PFPE_AEQALLOC_AECOUNT_SHIFT 0 +#define I40E_PFPE_AEQALLOC_AECOUNT_MASK (0xFFFFFFFF << I40E_PFPE_AEQALLOC_AECOUNT_SHIFT) +#define I40E_PFPE_CCQPHIGH 0x00008200 +#define I40E_PFPE_CCQPHIGH_PECCQPHIGH_SHIFT 0 +#define I40E_PFPE_CCQPHIGH_PECCQPHIGH_MASK (0xFFFFFFFF << I40E_PFPE_CCQPHIGH_PECCQPHIGH_SHIFT) +#define I40E_PFPE_CCQPLOW 0x00008180 +#define I40E_PFPE_CCQPLOW_PECCQPLOW_SHIFT 0 +#define I40E_PFPE_CCQPLOW_PECCQPLOW_MASK (0xFFFFFFFF << I40E_PFPE_CCQPLOW_PECCQPLOW_SHIFT) +#define I40E_PFPE_CCQPSTATUS 0x00008100 +#define I40E_PFPE_CCQPSTATUS_CCQP_DONE_SHIFT 0 +#define I40E_PFPE_CCQPSTATUS_CCQP_DONE_MASK (0x1 << I40E_PFPE_CCQPSTATUS_CCQP_DONE_SHIFT) +#define I40E_PFPE_CCQPSTATUS_CCQP_ERR_SHIFT 31 +#define I40E_PFPE_CCQPSTATUS_CCQP_ERR_MASK (0x1 << I40E_PFPE_CCQPSTATUS_CCQP_ERR_SHIFT) +#define I40E_PFPE_CQACK 0x00131100 +#define I40E_PFPE_CQACK_PECQID_SHIFT 0 +#define I40E_PFPE_CQACK_PECQID_MASK (0x1FFFF << I40E_PFPE_CQACK_PECQID_SHIFT) +#define I40E_PFPE_CQARM 0x00131080 +#define I40E_PFPE_CQARM_PECQID_SHIFT 0 +#define I40E_PFPE_CQARM_PECQID_MASK (0x1FFFF << I40E_PFPE_CQARM_PECQID_SHIFT) +#define I40E_PFPE_CQPDB 0x00008000 +#define I40E_PFPE_CQPDB_WQHEAD_SHIFT 0 +#define I40E_PFPE_CQPDB_WQHEAD_MASK (0x7FF << I40E_PFPE_CQPDB_WQHEAD_SHIFT) +#define I40E_PFPE_CQPERRCODES 0x00008880 +#define I40E_PFPE_CQPERRCODES_CQP_MINOR_CODE_SHIFT 0 +#define I40E_PFPE_CQPERRCODES_CQP_MINOR_CODE_MASK (0xFFFF << I40E_PFPE_CQPERRCODES_CQP_MINOR_CODE_SHIFT) +#define I40E_PFPE_CQPERRCODES_CQP_MAJOR_CODE_SHIFT 16 +#define I40E_PFPE_CQPERRCODES_CQP_MAJOR_CODE_MASK (0xFFFF << I40E_PFPE_CQPERRCODES_CQP_MAJOR_CODE_SHIFT) +#define I40E_PFPE_CQPTAIL 0x00008080 +#define I40E_PFPE_CQPTAIL_WQTAIL_SHIFT 0 +#define I40E_PFPE_CQPTAIL_WQTAIL_MASK (0x7FF << I40E_PFPE_CQPTAIL_WQTAIL_SHIFT) +#define I40E_PFPE_CQPTAIL_CQP_OP_ERR_SHIFT 31 +#define I40E_PFPE_CQPTAIL_CQP_OP_ERR_MASK (0x1 << I40E_PFPE_CQPTAIL_CQP_OP_ERR_SHIFT) +#define I40E_PFPE_FLMQ1ALLOCERR 0x00008980 +#define I40E_PFPE_FLMQ1ALLOCERR_ERROR_COUNT_SHIFT 0 +#define I40E_PFPE_FLMQ1ALLOCERR_ERROR_COUNT_MASK (0xFFFF << I40E_PFPE_FLMQ1ALLOCERR_ERROR_COUNT_SHIFT) +#define I40E_PFPE_FLMXMITALLOCERR 0x00008900 +#define I40E_PFPE_FLMXMITALLOCERR_ERROR_COUNT_SHIFT 0 +#define I40E_PFPE_FLMXMITALLOCERR_ERROR_COUNT_MASK (0xFFFF << I40E_PFPE_FLMXMITALLOCERR_ERROR_COUNT_SHIFT) +#define I40E_PFPE_IPCONFIG0 0x00008280 +#define I40E_PFPE_IPCONFIG0_PEIPID_SHIFT 0 +#define I40E_PFPE_IPCONFIG0_PEIPID_MASK (0xFFFF << I40E_PFPE_IPCONFIG0_PEIPID_SHIFT) +#define I40E_PFPE_IPCONFIG0_USEENTIREIDRANGE_SHIFT 16 +#define I40E_PFPE_IPCONFIG0_USEENTIREIDRANGE_MASK (0x1 << I40E_PFPE_IPCONFIG0_USEENTIREIDRANGE_SHIFT) + +#define I40E_PFPE_MRTEIDXMASK 0x00008600 +#define I40E_PFPE_MRTEIDXMASK_MRTEIDXMASKBITS_SHIFT 0 +#define I40E_PFPE_MRTEIDXMASK_MRTEIDXMASKBITS_MASK (0x1F << I40E_PFPE_MRTEIDXMASK_MRTEIDXMASKBITS_SHIFT) +#define I40E_PFPE_RCVUNEXPECTEDERROR 0x00008680 +#define I40E_PFPE_RCVUNEXPECTEDERROR_TCP_RX_UNEXP_ERR_SHIFT 0 +#define I40E_PFPE_RCVUNEXPECTEDERROR_TCP_RX_UNEXP_ERR_MASK (0xFFFFFF << I40E_PFPE_RCVUNEXPECTEDERROR_TCP_RX_UNEXP_ERR_SHIFT) +#define I40E_PFPE_TCPNOWTIMER 0x00008580 +#define I40E_PFPE_TCPNOWTIMER_TCP_NOW_SHIFT 0 +#define I40E_PFPE_TCPNOWTIMER_TCP_NOW_MASK (0xFFFFFFFF << I40E_PFPE_TCPNOWTIMER_TCP_NOW_SHIFT) +#define I40E_PFPE_UDACTRL 0x00008700 +#define I40E_PFPE_UDACTRL_IPV4MCFRAGRESBP_SHIFT 0 +#define I40E_PFPE_UDACTRL_IPV4MCFRAGRESBP_MASK (0x1 << I40E_PFPE_UDACTRL_IPV4MCFRAGRESBP_SHIFT) +#define I40E_PFPE_UDACTRL_IPV4UCFRAGRESBP_SHIFT 1 +#define I40E_PFPE_UDACTRL_IPV4UCFRAGRESBP_MASK (0x1 << I40E_PFPE_UDACTRL_IPV4UCFRAGRESBP_SHIFT) +#define I40E_PFPE_UDACTRL_IPV6MCFRAGRESBP_SHIFT 2 +#define I40E_PFPE_UDACTRL_IPV6MCFRAGRESBP_MASK (0x1 << I40E_PFPE_UDACTRL_IPV6MCFRAGRESBP_SHIFT) +#define I40E_PFPE_UDACTRL_IPV6UCFRAGRESBP_SHIFT 3 +#define I40E_PFPE_UDACTRL_IPV6UCFRAGRESBP_MASK (0x1 << I40E_PFPE_UDACTRL_IPV6UCFRAGRESBP_SHIFT) +#define I40E_PFPE_UDACTRL_UDPMCFRAGRESFAIL_SHIFT 4 +#define I40E_PFPE_UDACTRL_UDPMCFRAGRESFAIL_MASK (0x1 << I40E_PFPE_UDACTRL_UDPMCFRAGRESFAIL_SHIFT) +#define I40E_PFPE_UDAUCFBQPN 0x00008780 +#define I40E_PFPE_UDAUCFBQPN_QPN_SHIFT 0 +#define I40E_PFPE_UDAUCFBQPN_QPN_MASK (0x3FFFF << I40E_PFPE_UDAUCFBQPN_QPN_SHIFT) +#define I40E_PFPE_UDAUCFBQPN_VALID_SHIFT 31 +#define I40E_PFPE_UDAUCFBQPN_VALID_MASK (0x1 << I40E_PFPE_UDAUCFBQPN_VALID_SHIFT) +#define I40E_PFPE_WQEALLOC 0x00138C00 +#define I40E_PFPE_WQEALLOC_PEQPID_SHIFT 0 +#define I40E_PFPE_WQEALLOC_PEQPID_MASK (0x3FFFF << I40E_PFPE_WQEALLOC_PEQPID_SHIFT) +#define I40E_PFPE_WQEALLOC_WQE_DESC_INDEX_SHIFT 20 +#define I40E_PFPE_WQEALLOC_WQE_DESC_INDEX_MASK (0xFFF << I40E_PFPE_WQEALLOC_WQE_DESC_INDEX_SHIFT) +#define I40E_VFPE_AEQALLOC(_VF) (0x00130C00 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFPE_AEQALLOC_MAX_INDEX 127 +#define I40E_VFPE_AEQALLOC_AECOUNT_SHIFT 0 +#define I40E_VFPE_AEQALLOC_AECOUNT_MASK (0xFFFFFFFF << I40E_VFPE_AEQALLOC_AECOUNT_SHIFT) +#define I40E_VFPE_CCQPHIGH(_VF) (0x00001000 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFPE_CCQPHIGH_MAX_INDEX 127 +#define I40E_VFPE_CCQPHIGH_PECCQPHIGH_SHIFT 0 +#define I40E_VFPE_CCQPHIGH_PECCQPHIGH_MASK (0xFFFFFFFF << I40E_VFPE_CCQPHIGH_PECCQPHIGH_SHIFT) +#define I40E_VFPE_CCQPLOW(_VF) (0x00000C00 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFPE_CCQPLOW_MAX_INDEX 127 +#define I40E_VFPE_CCQPLOW_PECCQPLOW_SHIFT 0 +#define I40E_VFPE_CCQPLOW_PECCQPLOW_MASK (0xFFFFFFFF << I40E_VFPE_CCQPLOW_PECCQPLOW_SHIFT) +#define I40E_VFPE_CCQPSTATUS(_VF) (0x00000800 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFPE_CCQPSTATUS_MAX_INDEX 127 +#define I40E_VFPE_CCQPSTATUS_CCQP_DONE_SHIFT 0 +#define I40E_VFPE_CCQPSTATUS_CCQP_DONE_MASK (0x1 << I40E_VFPE_CCQPSTATUS_CCQP_DONE_SHIFT) +#define I40E_VFPE_CCQPSTATUS_CCQP_ERR_SHIFT 31 +#define I40E_VFPE_CCQPSTATUS_CCQP_ERR_MASK (0x1 << I40E_VFPE_CCQPSTATUS_CCQP_ERR_SHIFT) +#define I40E_VFPE_CQACK(_VF) (0x00130800 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFPE_CQACK_MAX_INDEX 127 +#define I40E_VFPE_CQACK_PECQID_SHIFT 0 +#define I40E_VFPE_CQACK_PECQID_MASK (0x1FFFF << I40E_VFPE_CQACK_PECQID_SHIFT) +#define I40E_VFPE_CQARM(_VF) (0x00130400 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFPE_CQARM_MAX_INDEX 127 +#define I40E_VFPE_CQARM_PECQID_SHIFT 0 +#define I40E_VFPE_CQARM_PECQID_MASK (0x1FFFF << I40E_VFPE_CQARM_PECQID_SHIFT) +#define I40E_VFPE_CQPDB(_VF) (0x00000000 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFPE_CQPDB_MAX_INDEX 127 +#define I40E_VFPE_CQPDB_WQHEAD_SHIFT 0 +#define I40E_VFPE_CQPDB_WQHEAD_MASK (0x7FF << I40E_VFPE_CQPDB_WQHEAD_SHIFT) +#define I40E_VFPE_CQPERRCODES(_VF) (0x00001800 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFPE_CQPERRCODES_MAX_INDEX 127 +#define I40E_VFPE_CQPERRCODES_CQP_MINOR_CODE_SHIFT 0 +#define I40E_VFPE_CQPERRCODES_CQP_MINOR_CODE_MASK (0xFFFF << I40E_VFPE_CQPERRCODES_CQP_MINOR_CODE_SHIFT) +#define I40E_VFPE_CQPERRCODES_CQP_MAJOR_CODE_SHIFT 16 +#define I40E_VFPE_CQPERRCODES_CQP_MAJOR_CODE_MASK (0xFFFF << I40E_VFPE_CQPERRCODES_CQP_MAJOR_CODE_SHIFT) +#define I40E_VFPE_CQPTAIL(_VF) (0x00000400 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFPE_CQPTAIL_MAX_INDEX 127 +#define I40E_VFPE_CQPTAIL_WQTAIL_SHIFT 0 +#define I40E_VFPE_CQPTAIL_WQTAIL_MASK (0x7FF << I40E_VFPE_CQPTAIL_WQTAIL_SHIFT) +#define I40E_VFPE_CQPTAIL_CQP_OP_ERR_SHIFT 31 +#define I40E_VFPE_CQPTAIL_CQP_OP_ERR_MASK (0x1 << I40E_VFPE_CQPTAIL_CQP_OP_ERR_SHIFT) +#define I40E_VFPE_IPCONFIG0(_VF) (0x00001400 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFPE_IPCONFIG0_MAX_INDEX 127 +#define I40E_VFPE_IPCONFIG0_PEIPID_SHIFT 0 +#define I40E_VFPE_IPCONFIG0_PEIPID_MASK (0xFFFF << I40E_VFPE_IPCONFIG0_PEIPID_SHIFT) +#define I40E_VFPE_IPCONFIG0_USEENTIREIDRANGE_SHIFT 16 +#define I40E_VFPE_IPCONFIG0_USEENTIREIDRANGE_MASK (0x1 << I40E_VFPE_IPCONFIG0_USEENTIREIDRANGE_SHIFT) +#define I40E_VFPE_MRTEIDXMASK(_VF) (0x00003000 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFPE_MRTEIDXMASK_MAX_INDEX 127 +#define I40E_VFPE_MRTEIDXMASK_MRTEIDXMASKBITS_SHIFT 0 +#define I40E_VFPE_MRTEIDXMASK_MRTEIDXMASKBITS_MASK (0x1F << I40E_VFPE_MRTEIDXMASK_MRTEIDXMASKBITS_SHIFT) +#define I40E_VFPE_RCVUNEXPECTEDERROR(_VF) (0x00003400 + ((_VF) * 4)) +#define I40E_VFPE_RCVUNEXPECTEDERROR_MAX_INDEX 127 +#define I40E_VFPE_RCVUNEXPECTEDERROR_TCP_RX_UNEXP_ERR_SHIFT 0 +#define I40E_VFPE_RCVUNEXPECTEDERROR_TCP_RX_UNEXP_ERR_MASK (0xFFFFFF << I40E_VFPE_RCVUNEXPECTEDERROR_TCP_RX_UNEXP_ERR_SHIFT) +#define I40E_VFPE_TCPNOWTIMER(_VF) (0x00002C00 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFPE_TCPNOWTIMER_MAX_INDEX 127 +#define I40E_VFPE_TCPNOWTIMER_TCP_NOW_SHIFT 0 +#define I40E_VFPE_TCPNOWTIMER_TCP_NOW_MASK (0xFFFFFFFF << I40E_VFPE_TCPNOWTIMER_TCP_NOW_SHIFT) +#define I40E_VFPE_WQEALLOC(_VF) (0x00138000 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VFPE_WQEALLOC_MAX_INDEX 127 +#define I40E_VFPE_WQEALLOC_PEQPID_SHIFT 0 +#define I40E_VFPE_WQEALLOC_PEQPID_MASK (0x3FFFF << I40E_VFPE_WQEALLOC_PEQPID_SHIFT) +#define I40E_VFPE_WQEALLOC_WQE_DESC_INDEX_SHIFT 20 +#define I40E_VFPE_WQEALLOC_WQE_DESC_INDEX_MASK (0xFFF << I40E_VFPE_WQEALLOC_WQE_DESC_INDEX_SHIFT) +#define I40E_GLPES_PFIP4RXDISCARD(_i) (0x00010600 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLPES_PFIP4RXDISCARD_MAX_INDEX 15 +#define I40E_GLPES_PFIP4RXDISCARD_IP4RXDISCARD_SHIFT 0 +#define I40E_GLPES_PFIP4RXDISCARD_IP4RXDISCARD_MASK (0xFFFFFFFF << I40E_GLPES_PFIP4RXDISCARD_IP4RXDISCARD_SHIFT) +#define I40E_GLPES_PFIP4RXFRAGSHI(_i) (0x00010804 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP4RXFRAGSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP4RXFRAGSHI_IP4RXFRAGSHI_SHIFT 0 +#define I40E_GLPES_PFIP4RXFRAGSHI_IP4RXFRAGSHI_MASK (0xFFFF << I40E_GLPES_PFIP4RXFRAGSHI_IP4RXFRAGSHI_SHIFT) +#define I40E_GLPES_PFIP4RXFRAGSLO(_i) (0x00010800 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP4RXFRAGSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP4RXFRAGSLO_IP4RXFRAGSLO_SHIFT 0 +#define I40E_GLPES_PFIP4RXFRAGSLO_IP4RXFRAGSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP4RXFRAGSLO_IP4RXFRAGSLO_SHIFT) +#define I40E_GLPES_PFIP4RXMCOCTSHI(_i) (0x00010A04 + ((_i) * 8)) +#define I40E_GLPES_PFIP4RXMCOCTSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP4RXMCOCTSHI_IP4RXMCOCTSHI_SHIFT 0 +#define I40E_GLPES_PFIP4RXMCOCTSHI_IP4RXMCOCTSHI_MASK (0xFFFF << I40E_GLPES_PFIP4RXMCOCTSHI_IP4RXMCOCTSHI_SHIFT) +#define I40E_GLPES_PFIP4RXMCOCTSLO(_i) (0x00010A00 + ((_i) * 8)) +#define I40E_GLPES_PFIP4RXMCOCTSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP4RXMCOCTSLO_IP4RXMCOCTSLO_SHIFT 0 +#define I40E_GLPES_PFIP4RXMCOCTSLO_IP4RXMCOCTSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP4RXMCOCTSLO_IP4RXMCOCTSLO_SHIFT) +#define I40E_GLPES_PFIP4RXMCPKTSHI(_i) (0x00010C04 + ((_i) * 8)) +#define I40E_GLPES_PFIP4RXMCPKTSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP4RXMCPKTSHI_IP4RXMCPKTSHI_SHIFT 0 +#define I40E_GLPES_PFIP4RXMCPKTSHI_IP4RXMCPKTSHI_MASK (0xFFFF << I40E_GLPES_PFIP4RXMCPKTSHI_IP4RXMCPKTSHI_SHIFT) +#define I40E_GLPES_PFIP4RXMCPKTSLO(_i) (0x00010C00 + ((_i) * 8)) +#define I40E_GLPES_PFIP4RXMCPKTSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP4RXMCPKTSLO_IP4RXMCPKTSLO_SHIFT 0 +#define I40E_GLPES_PFIP4RXMCPKTSLO_IP4RXMCPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP4RXMCPKTSLO_IP4RXMCPKTSLO_SHIFT) +#define I40E_GLPES_PFIP4RXOCTSHI(_i) (0x00010204 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP4RXOCTSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP4RXOCTSHI_IP4RXOCTSHI_SHIFT 0 +#define I40E_GLPES_PFIP4RXOCTSHI_IP4RXOCTSHI_MASK (0xFFFF << I40E_GLPES_PFIP4RXOCTSHI_IP4RXOCTSHI_SHIFT) +#define I40E_GLPES_PFIP4RXOCTSLO(_i) (0x00010200 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP4RXOCTSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP4RXOCTSLO_IP4RXOCTSLO_SHIFT 0 +#define I40E_GLPES_PFIP4RXOCTSLO_IP4RXOCTSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP4RXOCTSLO_IP4RXOCTSLO_SHIFT) +#define I40E_GLPES_PFIP4RXPKTSHI(_i) (0x00010404 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP4RXPKTSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP4RXPKTSHI_IP4RXPKTSHI_SHIFT 0 +#define I40E_GLPES_PFIP4RXPKTSHI_IP4RXPKTSHI_MASK (0xFFFF << I40E_GLPES_PFIP4RXPKTSHI_IP4RXPKTSHI_SHIFT) +#define I40E_GLPES_PFIP4RXPKTSLO(_i) (0x00010400 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP4RXPKTSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP4RXPKTSLO_IP4RXPKTSLO_SHIFT 0 +#define I40E_GLPES_PFIP4RXPKTSLO_IP4RXPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP4RXPKTSLO_IP4RXPKTSLO_SHIFT) +#define I40E_GLPES_PFIP4RXTRUNC(_i) (0x00010700 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLPES_PFIP4RXTRUNC_MAX_INDEX 15 +#define I40E_GLPES_PFIP4RXTRUNC_IP4RXTRUNC_SHIFT 0 +#define I40E_GLPES_PFIP4RXTRUNC_IP4RXTRUNC_MASK (0xFFFFFFFF << I40E_GLPES_PFIP4RXTRUNC_IP4RXTRUNC_SHIFT) +#define I40E_GLPES_PFIP4TXFRAGSHI(_i) (0x00011E04 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP4TXFRAGSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP4TXFRAGSHI_IP4TXFRAGSHI_SHIFT 0 +#define I40E_GLPES_PFIP4TXFRAGSHI_IP4TXFRAGSHI_MASK (0xFFFF << I40E_GLPES_PFIP4TXFRAGSHI_IP4TXFRAGSHI_SHIFT) +#define I40E_GLPES_PFIP4TXFRAGSLO(_i) (0x00011E00 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP4TXFRAGSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP4TXFRAGSLO_IP4TXFRAGSLO_SHIFT 0 +#define I40E_GLPES_PFIP4TXFRAGSLO_IP4TXFRAGSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP4TXFRAGSLO_IP4TXFRAGSLO_SHIFT) +#define I40E_GLPES_PFIP4TXMCOCTSHI(_i) (0x00012004 + ((_i) * 8)) +#define I40E_GLPES_PFIP4TXMCOCTSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP4TXMCOCTSHI_IP4TXMCOCTSHI_SHIFT 0 +#define I40E_GLPES_PFIP4TXMCOCTSHI_IP4TXMCOCTSHI_MASK (0xFFFF << I40E_GLPES_PFIP4TXMCOCTSHI_IP4TXMCOCTSHI_SHIFT) +#define I40E_GLPES_PFIP4TXMCOCTSLO(_i) (0x00012000 + ((_i) * 8)) +#define I40E_GLPES_PFIP4TXMCOCTSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP4TXMCOCTSLO_IP4TXMCOCTSLO_SHIFT 0 +#define I40E_GLPES_PFIP4TXMCOCTSLO_IP4TXMCOCTSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP4TXMCOCTSLO_IP4TXMCOCTSLO_SHIFT) +#define I40E_GLPES_PFIP4TXMCPKTSHI(_i) (0x00012204 + ((_i) * 8)) +#define I40E_GLPES_PFIP4TXMCPKTSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP4TXMCPKTSHI_IP4TXMCPKTSHI_SHIFT 0 +#define I40E_GLPES_PFIP4TXMCPKTSHI_IP4TXMCPKTSHI_MASK (0xFFFF << I40E_GLPES_PFIP4TXMCPKTSHI_IP4TXMCPKTSHI_SHIFT) +#define I40E_GLPES_PFIP4TXMCPKTSLO(_i) (0x00012200 + ((_i) * 8)) +#define I40E_GLPES_PFIP4TXMCPKTSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP4TXMCPKTSLO_IP4TXMCPKTSLO_SHIFT 0 +#define I40E_GLPES_PFIP4TXMCPKTSLO_IP4TXMCPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP4TXMCPKTSLO_IP4TXMCPKTSLO_SHIFT) +#define I40E_GLPES_PFIP4TXNOROUTE(_i) (0x00012E00 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLPES_PFIP4TXNOROUTE_MAX_INDEX 15 +#define I40E_GLPES_PFIP4TXNOROUTE_IP4TXNOROUTE_SHIFT 0 +#define I40E_GLPES_PFIP4TXNOROUTE_IP4TXNOROUTE_MASK (0xFFFFFF << I40E_GLPES_PFIP4TXNOROUTE_IP4TXNOROUTE_SHIFT) +#define I40E_GLPES_PFIP4TXOCTSHI(_i) (0x00011A04 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP4TXOCTSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP4TXOCTSHI_IP4TXOCTSHI_SHIFT 0 +#define I40E_GLPES_PFIP4TXOCTSHI_IP4TXOCTSHI_MASK (0xFFFF << I40E_GLPES_PFIP4TXOCTSHI_IP4TXOCTSHI_SHIFT) +#define I40E_GLPES_PFIP4TXOCTSLO(_i) (0x00011A00 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP4TXOCTSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP4TXOCTSLO_IP4TXOCTSLO_SHIFT 0 +#define I40E_GLPES_PFIP4TXOCTSLO_IP4TXOCTSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP4TXOCTSLO_IP4TXOCTSLO_SHIFT) +#define I40E_GLPES_PFIP4TXPKTSHI(_i) (0x00011C04 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP4TXPKTSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP4TXPKTSHI_IP4TXPKTSHI_SHIFT 0 +#define I40E_GLPES_PFIP4TXPKTSHI_IP4TXPKTSHI_MASK (0xFFFF << I40E_GLPES_PFIP4TXPKTSHI_IP4TXPKTSHI_SHIFT) +#define I40E_GLPES_PFIP4TXPKTSLO(_i) (0x00011C00 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP4TXPKTSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP4TXPKTSLO_IP4TXPKTSLO_SHIFT 0 +#define I40E_GLPES_PFIP4TXPKTSLO_IP4TXPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP4TXPKTSLO_IP4TXPKTSLO_SHIFT) +#define I40E_GLPES_PFIP6RXDISCARD(_i) (0x00011200 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLPES_PFIP6RXDISCARD_MAX_INDEX 15 +#define I40E_GLPES_PFIP6RXDISCARD_IP6RXDISCARD_SHIFT 0 +#define I40E_GLPES_PFIP6RXDISCARD_IP6RXDISCARD_MASK (0xFFFFFFFF << I40E_GLPES_PFIP6RXDISCARD_IP6RXDISCARD_SHIFT) +#define I40E_GLPES_PFIP6RXFRAGSHI(_i) (0x00011404 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP6RXFRAGSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP6RXFRAGSHI_IP6RXFRAGSHI_SHIFT 0 +#define I40E_GLPES_PFIP6RXFRAGSHI_IP6RXFRAGSHI_MASK (0xFFFF << I40E_GLPES_PFIP6RXFRAGSHI_IP6RXFRAGSHI_SHIFT) +#define I40E_GLPES_PFIP6RXFRAGSLO(_i) (0x00011400 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP6RXFRAGSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP6RXFRAGSLO_IP6RXFRAGSLO_SHIFT 0 +#define I40E_GLPES_PFIP6RXFRAGSLO_IP6RXFRAGSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP6RXFRAGSLO_IP6RXFRAGSLO_SHIFT) +#define I40E_GLPES_PFIP6RXMCOCTSHI(_i) (0x00011604 + ((_i) * 8)) +#define I40E_GLPES_PFIP6RXMCOCTSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP6RXMCOCTSHI_IP6RXMCOCTSHI_SHIFT 0 +#define I40E_GLPES_PFIP6RXMCOCTSHI_IP6RXMCOCTSHI_MASK (0xFFFF << I40E_GLPES_PFIP6RXMCOCTSHI_IP6RXMCOCTSHI_SHIFT) +#define I40E_GLPES_PFIP6RXMCOCTSLO(_i) (0x00011600 + ((_i) * 8)) +#define I40E_GLPES_PFIP6RXMCOCTSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP6RXMCOCTSLO_IP6RXMCOCTSLO_SHIFT 0 +#define I40E_GLPES_PFIP6RXMCOCTSLO_IP6RXMCOCTSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP6RXMCOCTSLO_IP6RXMCOCTSLO_SHIFT) +#define I40E_GLPES_PFIP6RXMCPKTSHI(_i) (0x00011804 + ((_i) * 8)) +#define I40E_GLPES_PFIP6RXMCPKTSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP6RXMCPKTSHI_IP6RXMCPKTSHI_SHIFT 0 +#define I40E_GLPES_PFIP6RXMCPKTSHI_IP6RXMCPKTSHI_MASK (0xFFFF << I40E_GLPES_PFIP6RXMCPKTSHI_IP6RXMCPKTSHI_SHIFT) +#define I40E_GLPES_PFIP6RXMCPKTSLO(_i) (0x00011800 + ((_i) * 8)) +#define I40E_GLPES_PFIP6RXMCPKTSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP6RXMCPKTSLO_IP6RXMCPKTSLO_SHIFT 0 +#define I40E_GLPES_PFIP6RXMCPKTSLO_IP6RXMCPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP6RXMCPKTSLO_IP6RXMCPKTSLO_SHIFT) +#define I40E_GLPES_PFIP6RXOCTSHI(_i) (0x00010E04 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP6RXOCTSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP6RXOCTSHI_IP6RXOCTSHI_SHIFT 0 +#define I40E_GLPES_PFIP6RXOCTSHI_IP6RXOCTSHI_MASK (0xFFFF << I40E_GLPES_PFIP6RXOCTSHI_IP6RXOCTSHI_SHIFT) +#define I40E_GLPES_PFIP6RXOCTSLO(_i) (0x00010E00 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP6RXOCTSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP6RXOCTSLO_IP6RXOCTSLO_SHIFT 0 +#define I40E_GLPES_PFIP6RXOCTSLO_IP6RXOCTSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP6RXOCTSLO_IP6RXOCTSLO_SHIFT) +#define I40E_GLPES_PFIP6RXPKTSHI(_i) (0x00011004 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP6RXPKTSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP6RXPKTSHI_IP6RXPKTSHI_SHIFT 0 +#define I40E_GLPES_PFIP6RXPKTSHI_IP6RXPKTSHI_MASK (0xFFFF << I40E_GLPES_PFIP6RXPKTSHI_IP6RXPKTSHI_SHIFT) +#define I40E_GLPES_PFIP6RXPKTSLO(_i) (0x00011000 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP6RXPKTSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP6RXPKTSLO_IP6RXPKTSLO_SHIFT 0 +#define I40E_GLPES_PFIP6RXPKTSLO_IP6RXPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP6RXPKTSLO_IP6RXPKTSLO_SHIFT) +#define I40E_GLPES_PFIP6RXTRUNC(_i) (0x00011300 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLPES_PFIP6RXTRUNC_MAX_INDEX 15 +#define I40E_GLPES_PFIP6RXTRUNC_IP6RXTRUNC_SHIFT 0 +#define I40E_GLPES_PFIP6RXTRUNC_IP6RXTRUNC_MASK (0xFFFFFFFF << I40E_GLPES_PFIP6RXTRUNC_IP6RXTRUNC_SHIFT) +#define I40E_GLPES_PFIP6TXFRAGSHI(_i) (0x00012804 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP6TXFRAGSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP6TXFRAGSHI_IP6TXFRAGSHI_SHIFT 0 +#define I40E_GLPES_PFIP6TXFRAGSHI_IP6TXFRAGSHI_MASK (0xFFFF << I40E_GLPES_PFIP6TXFRAGSHI_IP6TXFRAGSHI_SHIFT) +#define I40E_GLPES_PFIP6TXFRAGSLO(_i) (0x00012800 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP6TXFRAGSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP6TXFRAGSLO_IP6TXFRAGSLO_SHIFT 0 +#define I40E_GLPES_PFIP6TXFRAGSLO_IP6TXFRAGSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP6TXFRAGSLO_IP6TXFRAGSLO_SHIFT) +#define I40E_GLPES_PFIP6TXMCOCTSHI(_i) (0x00012A04 + ((_i) * 8)) +#define I40E_GLPES_PFIP6TXMCOCTSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP6TXMCOCTSHI_IP6TXMCOCTSHI_SHIFT 0 +#define I40E_GLPES_PFIP6TXMCOCTSHI_IP6TXMCOCTSHI_MASK (0xFFFF << I40E_GLPES_PFIP6TXMCOCTSHI_IP6TXMCOCTSHI_SHIFT) +#define I40E_GLPES_PFIP6TXMCOCTSLO(_i) (0x00012A00 + ((_i) * 8)) +#define I40E_GLPES_PFIP6TXMCOCTSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP6TXMCOCTSLO_IP6TXMCOCTSLO_SHIFT 0 +#define I40E_GLPES_PFIP6TXMCOCTSLO_IP6TXMCOCTSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP6TXMCOCTSLO_IP6TXMCOCTSLO_SHIFT) +#define I40E_GLPES_PFIP6TXMCPKTSHI(_i) (0x00012C04 + ((_i) * 8)) +#define I40E_GLPES_PFIP6TXMCPKTSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP6TXMCPKTSHI_IP6TXMCPKTSHI_SHIFT 0 +#define I40E_GLPES_PFIP6TXMCPKTSHI_IP6TXMCPKTSHI_MASK (0xFFFF << I40E_GLPES_PFIP6TXMCPKTSHI_IP6TXMCPKTSHI_SHIFT) +#define I40E_GLPES_PFIP6TXMCPKTSLO(_i) (0x00012C00 + ((_i) * 8)) +#define I40E_GLPES_PFIP6TXMCPKTSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP6TXMCPKTSLO_IP6TXMCPKTSLO_SHIFT 0 +#define I40E_GLPES_PFIP6TXMCPKTSLO_IP6TXMCPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP6TXMCPKTSLO_IP6TXMCPKTSLO_SHIFT) +#define I40E_GLPES_PFIP6TXNOROUTE(_i) (0x00012F00 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLPES_PFIP6TXNOROUTE_MAX_INDEX 15 +#define I40E_GLPES_PFIP6TXNOROUTE_IP6TXNOROUTE_SHIFT 0 +#define I40E_GLPES_PFIP6TXNOROUTE_IP6TXNOROUTE_MASK (0xFFFFFF << I40E_GLPES_PFIP6TXNOROUTE_IP6TXNOROUTE_SHIFT) +#define I40E_GLPES_PFIP6TXOCTSHI(_i) (0x00012404 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP6TXOCTSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP6TXOCTSHI_IP6TXOCTSHI_SHIFT 0 +#define I40E_GLPES_PFIP6TXOCTSHI_IP6TXOCTSHI_MASK (0xFFFF << I40E_GLPES_PFIP6TXOCTSHI_IP6TXOCTSHI_SHIFT) +#define I40E_GLPES_PFIP6TXOCTSLO(_i) (0x00012400 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP6TXOCTSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP6TXOCTSLO_IP6TXOCTSLO_SHIFT 0 +#define I40E_GLPES_PFIP6TXOCTSLO_IP6TXOCTSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP6TXOCTSLO_IP6TXOCTSLO_SHIFT) +#define I40E_GLPES_PFIP6TXPKTSHI(_i) (0x00012604 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP6TXPKTSHI_MAX_INDEX 15 +#define I40E_GLPES_PFIP6TXPKTSHI_IP6TXPKTSHI_SHIFT 0 +#define I40E_GLPES_PFIP6TXPKTSHI_IP6TXPKTSHI_MASK (0xFFFF << I40E_GLPES_PFIP6TXPKTSHI_IP6TXPKTSHI_SHIFT) +#define I40E_GLPES_PFIP6TXPKTSLO(_i) (0x00012600 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFIP6TXPKTSLO_MAX_INDEX 15 +#define I40E_GLPES_PFIP6TXPKTSLO_IP6TXPKTSLO_SHIFT 0 +#define I40E_GLPES_PFIP6TXPKTSLO_IP6TXPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFIP6TXPKTSLO_IP6TXPKTSLO_SHIFT) +#define I40E_GLPES_PFRDMARXRDSHI(_i) (0x00013E04 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFRDMARXRDSHI_MAX_INDEX 15 +#define I40E_GLPES_PFRDMARXRDSHI_RDMARXRDSHI_SHIFT 0 +#define I40E_GLPES_PFRDMARXRDSHI_RDMARXRDSHI_MASK (0xFFFF << I40E_GLPES_PFRDMARXRDSHI_RDMARXRDSHI_SHIFT) +#define I40E_GLPES_PFRDMARXRDSLO(_i) (0x00013E00 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFRDMARXRDSLO_MAX_INDEX 15 +#define I40E_GLPES_PFRDMARXRDSLO_RDMARXRDSLO_SHIFT 0 +#define I40E_GLPES_PFRDMARXRDSLO_RDMARXRDSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFRDMARXRDSLO_RDMARXRDSLO_SHIFT) +#define I40E_GLPES_PFRDMARXSNDSHI(_i) (0x00014004 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFRDMARXSNDSHI_MAX_INDEX 15 +#define I40E_GLPES_PFRDMARXSNDSHI_RDMARXSNDSHI_SHIFT 0 +#define I40E_GLPES_PFRDMARXSNDSHI_RDMARXSNDSHI_MASK (0xFFFF << I40E_GLPES_PFRDMARXSNDSHI_RDMARXSNDSHI_SHIFT) +#define I40E_GLPES_PFRDMARXSNDSLO(_i) (0x00014000 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFRDMARXSNDSLO_MAX_INDEX 15 +#define I40E_GLPES_PFRDMARXSNDSLO_RDMARXSNDSLO_SHIFT 0 +#define I40E_GLPES_PFRDMARXSNDSLO_RDMARXSNDSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFRDMARXSNDSLO_RDMARXSNDSLO_SHIFT) +#define I40E_GLPES_PFRDMARXWRSHI(_i) (0x00013C04 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFRDMARXWRSHI_MAX_INDEX 15 +#define I40E_GLPES_PFRDMARXWRSHI_RDMARXWRSHI_SHIFT 0 +#define I40E_GLPES_PFRDMARXWRSHI_RDMARXWRSHI_MASK (0xFFFF << I40E_GLPES_PFRDMARXWRSHI_RDMARXWRSHI_SHIFT) +#define I40E_GLPES_PFRDMARXWRSLO(_i) (0x00013C00 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFRDMARXWRSLO_MAX_INDEX 15 +#define I40E_GLPES_PFRDMARXWRSLO_RDMARXWRSLO_SHIFT 0 +#define I40E_GLPES_PFRDMARXWRSLO_RDMARXWRSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFRDMARXWRSLO_RDMARXWRSLO_SHIFT) +#define I40E_GLPES_PFRDMATXRDSHI(_i) (0x00014404 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFRDMATXRDSHI_MAX_INDEX 15 +#define I40E_GLPES_PFRDMATXRDSHI_RDMARXRDSHI_SHIFT 0 +#define I40E_GLPES_PFRDMATXRDSHI_RDMARXRDSHI_MASK (0xFFFF << I40E_GLPES_PFRDMATXRDSHI_RDMARXRDSHI_SHIFT) +#define I40E_GLPES_PFRDMATXRDSLO(_i) (0x00014400 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFRDMATXRDSLO_MAX_INDEX 15 +#define I40E_GLPES_PFRDMATXRDSLO_RDMARXRDSLO_SHIFT 0 +#define I40E_GLPES_PFRDMATXRDSLO_RDMARXRDSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFRDMATXRDSLO_RDMARXRDSLO_SHIFT) +#define I40E_GLPES_PFRDMATXSNDSHI(_i) (0x00014604 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFRDMATXSNDSHI_MAX_INDEX 15 +#define I40E_GLPES_PFRDMATXSNDSHI_RDMARXSNDSHI_SHIFT 0 +#define I40E_GLPES_PFRDMATXSNDSHI_RDMARXSNDSHI_MASK (0xFFFF << I40E_GLPES_PFRDMATXSNDSHI_RDMARXSNDSHI_SHIFT) +#define I40E_GLPES_PFRDMATXSNDSLO(_i) (0x00014600 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFRDMATXSNDSLO_MAX_INDEX 15 +#define I40E_GLPES_PFRDMATXSNDSLO_RDMARXSNDSLO_SHIFT 0 +#define I40E_GLPES_PFRDMATXSNDSLO_RDMARXSNDSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFRDMATXSNDSLO_RDMARXSNDSLO_SHIFT) +#define I40E_GLPES_PFRDMATXWRSHI(_i) (0x00014204 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFRDMATXWRSHI_MAX_INDEX 15 +#define I40E_GLPES_PFRDMATXWRSHI_RDMARXWRSHI_SHIFT 0 +#define I40E_GLPES_PFRDMATXWRSHI_RDMARXWRSHI_MASK (0xFFFF << I40E_GLPES_PFRDMATXWRSHI_RDMARXWRSHI_SHIFT) +#define I40E_GLPES_PFRDMATXWRSLO(_i) (0x00014200 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFRDMATXWRSLO_MAX_INDEX 15 +#define I40E_GLPES_PFRDMATXWRSLO_RDMARXWRSLO_SHIFT 0 +#define I40E_GLPES_PFRDMATXWRSLO_RDMARXWRSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFRDMATXWRSLO_RDMARXWRSLO_SHIFT) +#define I40E_GLPES_PFRDMAVBNDHI(_i) (0x00014804 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFRDMAVBNDHI_MAX_INDEX 15 +#define I40E_GLPES_PFRDMAVBNDHI_RDMAVBNDHI_SHIFT 0 +#define I40E_GLPES_PFRDMAVBNDHI_RDMAVBNDHI_MASK (0xFFFFFFFF << I40E_GLPES_PFRDMAVBNDHI_RDMAVBNDHI_SHIFT) +#define I40E_GLPES_PFRDMAVBNDLO(_i) (0x00014800 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFRDMAVBNDLO_MAX_INDEX 15 +#define I40E_GLPES_PFRDMAVBNDLO_RDMAVBNDLO_SHIFT 0 +#define I40E_GLPES_PFRDMAVBNDLO_RDMAVBNDLO_MASK (0xFFFFFFFF << I40E_GLPES_PFRDMAVBNDLO_RDMAVBNDLO_SHIFT) +#define I40E_GLPES_PFRDMAVINVHI(_i) (0x00014A04 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFRDMAVINVHI_MAX_INDEX 15 +#define I40E_GLPES_PFRDMAVINVHI_RDMAVINVHI_SHIFT 0 +#define I40E_GLPES_PFRDMAVINVHI_RDMAVINVHI_MASK (0xFFFFFFFF << I40E_GLPES_PFRDMAVINVHI_RDMAVINVHI_SHIFT) +#define I40E_GLPES_PFRDMAVINVLO(_i) (0x00014A00 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFRDMAVINVLO_MAX_INDEX 15 +#define I40E_GLPES_PFRDMAVINVLO_RDMAVINVLO_SHIFT 0 +#define I40E_GLPES_PFRDMAVINVLO_RDMAVINVLO_MASK (0xFFFFFFFF << I40E_GLPES_PFRDMAVINVLO_RDMAVINVLO_SHIFT) +#define I40E_GLPES_PFRXVLANERR(_i) (0x00010000 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLPES_PFRXVLANERR_MAX_INDEX 15 +#define I40E_GLPES_PFRXVLANERR_RXVLANERR_SHIFT 0 +#define I40E_GLPES_PFRXVLANERR_RXVLANERR_MASK (0xFFFFFF << I40E_GLPES_PFRXVLANERR_RXVLANERR_SHIFT) +#define I40E_GLPES_PFTCPRTXSEG(_i) (0x00013600 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLPES_PFTCPRTXSEG_MAX_INDEX 15 +#define I40E_GLPES_PFTCPRTXSEG_TCPRTXSEG_SHIFT 0 +#define I40E_GLPES_PFTCPRTXSEG_TCPRTXSEG_MASK (0xFFFFFFFF << I40E_GLPES_PFTCPRTXSEG_TCPRTXSEG_SHIFT) +#define I40E_GLPES_PFTCPRXOPTERR(_i) (0x00013200 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_GLPES_PFTCPRXOPTERR_MAX_INDEX 15 +#define I40E_GLPES_PFTCPRXOPTERR_TCPRXOPTERR_SHIFT 0 +#define I40E_GLPES_PFTCPRXOPTERR_TCPRXOPTERR_MASK (0xFFFFFF << I40E_GLPES_PFTCPRXOPTERR_TCPRXOPTERR_SHIFT) +#define I40E_GLPES_PFTCPRXPROTOERR(_i) (0x00013300 + ((_i) * 4)) +#define I40E_GLPES_PFTCPRXPROTOERR_MAX_INDEX 15 +#define I40E_GLPES_PFTCPRXPROTOERR_TCPRXPROTOERR_SHIFT 0 +#define I40E_GLPES_PFTCPRXPROTOERR_TCPRXPROTOERR_MASK (0xFFFFFF << I40E_GLPES_PFTCPRXPROTOERR_TCPRXPROTOERR_SHIFT) +#define I40E_GLPES_PFTCPRXSEGSHI(_i) (0x00013004 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFTCPRXSEGSHI_MAX_INDEX 15 +#define I40E_GLPES_PFTCPRXSEGSHI_TCPRXSEGSHI_SHIFT 0 +#define I40E_GLPES_PFTCPRXSEGSHI_TCPRXSEGSHI_MASK (0xFFFF << I40E_GLPES_PFTCPRXSEGSHI_TCPRXSEGSHI_SHIFT) +#define I40E_GLPES_PFTCPRXSEGSLO(_i) (0x00013000 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFTCPRXSEGSLO_MAX_INDEX 15 +#define I40E_GLPES_PFTCPRXSEGSLO_TCPRXSEGSLO_SHIFT 0 +#define I40E_GLPES_PFTCPRXSEGSLO_TCPRXSEGSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFTCPRXSEGSLO_TCPRXSEGSLO_SHIFT) +#define I40E_GLPES_PFTCPTXSEGHI(_i) (0x00013404 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFTCPTXSEGHI_MAX_INDEX 15 +#define I40E_GLPES_PFTCPTXSEGHI_TCPTXSEGHI_SHIFT 0 +#define I40E_GLPES_PFTCPTXSEGHI_TCPTXSEGHI_MASK (0xFFFF << I40E_GLPES_PFTCPTXSEGHI_TCPTXSEGHI_SHIFT) +#define I40E_GLPES_PFTCPTXSEGLO(_i) (0x00013400 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFTCPTXSEGLO_MAX_INDEX 15 +#define I40E_GLPES_PFTCPTXSEGLO_TCPTXSEGLO_SHIFT 0 +#define I40E_GLPES_PFTCPTXSEGLO_TCPTXSEGLO_MASK (0xFFFFFFFF << I40E_GLPES_PFTCPTXSEGLO_TCPTXSEGLO_SHIFT) +#define I40E_GLPES_PFUDPRXPKTSHI(_i) (0x00013804 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFUDPRXPKTSHI_MAX_INDEX 15 +#define I40E_GLPES_PFUDPRXPKTSHI_UDPRXPKTSHI_SHIFT 0 +#define I40E_GLPES_PFUDPRXPKTSHI_UDPRXPKTSHI_MASK (0xFFFF << I40E_GLPES_PFUDPRXPKTSHI_UDPRXPKTSHI_SHIFT) +#define I40E_GLPES_PFUDPRXPKTSLO(_i) (0x00013800 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFUDPRXPKTSLO_MAX_INDEX 15 +#define I40E_GLPES_PFUDPRXPKTSLO_UDPRXPKTSLO_SHIFT 0 +#define I40E_GLPES_PFUDPRXPKTSLO_UDPRXPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFUDPRXPKTSLO_UDPRXPKTSLO_SHIFT) +#define I40E_GLPES_PFUDPTXPKTSHI(_i) (0x00013A04 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFUDPTXPKTSHI_MAX_INDEX 15 +#define I40E_GLPES_PFUDPTXPKTSHI_UDPTXPKTSHI_SHIFT 0 +#define I40E_GLPES_PFUDPTXPKTSHI_UDPTXPKTSHI_MASK (0xFFFF << I40E_GLPES_PFUDPTXPKTSHI_UDPTXPKTSHI_SHIFT) +#define I40E_GLPES_PFUDPTXPKTSLO(_i) (0x00013A00 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLPES_PFUDPTXPKTSLO_MAX_INDEX 15 +#define I40E_GLPES_PFUDPTXPKTSLO_UDPTXPKTSLO_SHIFT 0 +#define I40E_GLPES_PFUDPTXPKTSLO_UDPTXPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_PFUDPTXPKTSLO_UDPTXPKTSLO_SHIFT) +#define I40E_GLPES_RDMARXMULTFPDUSHI 0x0001E014 +#define I40E_GLPES_RDMARXMULTFPDUSHI_RDMARXMULTFPDUSHI_SHIFT 0 +#define I40E_GLPES_RDMARXMULTFPDUSHI_RDMARXMULTFPDUSHI_MASK (0xFFFFFF << I40E_GLPES_RDMARXMULTFPDUSHI_RDMARXMULTFPDUSHI_SHIFT) +#define I40E_GLPES_RDMARXMULTFPDUSLO 0x0001E010 +#define I40E_GLPES_RDMARXMULTFPDUSLO_RDMARXMULTFPDUSLO_SHIFT 0 +#define I40E_GLPES_RDMARXMULTFPDUSLO_RDMARXMULTFPDUSLO_MASK (0xFFFFFFFF << I40E_GLPES_RDMARXMULTFPDUSLO_RDMARXMULTFPDUSLO_SHIFT) +#define I40E_GLPES_RDMARXOOODDPHI 0x0001E01C +#define I40E_GLPES_RDMARXOOODDPHI_RDMARXOOODDPHI_SHIFT 0 +#define I40E_GLPES_RDMARXOOODDPHI_RDMARXOOODDPHI_MASK (0xFFFFFF << I40E_GLPES_RDMARXOOODDPHI_RDMARXOOODDPHI_SHIFT) +#define I40E_GLPES_RDMARXOOODDPLO 0x0001E018 +#define I40E_GLPES_RDMARXOOODDPLO_RDMARXOOODDPLO_SHIFT 0 +#define I40E_GLPES_RDMARXOOODDPLO_RDMARXOOODDPLO_MASK (0xFFFFFFFF << I40E_GLPES_RDMARXOOODDPLO_RDMARXOOODDPLO_SHIFT) +#define I40E_GLPES_RDMARXOOONOMARK 0x0001E004 +#define I40E_GLPES_RDMARXOOONOMARK_RDMAOOONOMARK_SHIFT 0 +#define I40E_GLPES_RDMARXOOONOMARK_RDMAOOONOMARK_MASK (0xFFFFFFFF << I40E_GLPES_RDMARXOOONOMARK_RDMAOOONOMARK_SHIFT) +#define I40E_GLPES_RDMARXUNALIGN 0x0001E000 +#define I40E_GLPES_RDMARXUNALIGN_RDMRXAUNALIGN_SHIFT 0 +#define I40E_GLPES_RDMARXUNALIGN_RDMRXAUNALIGN_MASK (0xFFFFFFFF << I40E_GLPES_RDMARXUNALIGN_RDMRXAUNALIGN_SHIFT) +#define I40E_GLPES_TCPRXFOURHOLEHI 0x0001E044 +#define I40E_GLPES_TCPRXFOURHOLEHI_TCPRXFOURHOLEHI_SHIFT 0 +#define I40E_GLPES_TCPRXFOURHOLEHI_TCPRXFOURHOLEHI_MASK (0xFFFFFF << I40E_GLPES_TCPRXFOURHOLEHI_TCPRXFOURHOLEHI_SHIFT) +#define I40E_GLPES_TCPRXFOURHOLELO 0x0001E040 +#define I40E_GLPES_TCPRXFOURHOLELO_TCPRXFOURHOLELO_SHIFT 0 +#define I40E_GLPES_TCPRXFOURHOLELO_TCPRXFOURHOLELO_MASK (0xFFFFFFFF << I40E_GLPES_TCPRXFOURHOLELO_TCPRXFOURHOLELO_SHIFT) +#define I40E_GLPES_TCPRXONEHOLEHI 0x0001E02C +#define I40E_GLPES_TCPRXONEHOLEHI_TCPRXONEHOLEHI_SHIFT 0 +#define I40E_GLPES_TCPRXONEHOLEHI_TCPRXONEHOLEHI_MASK (0xFFFFFF << I40E_GLPES_TCPRXONEHOLEHI_TCPRXONEHOLEHI_SHIFT) +#define I40E_GLPES_TCPRXONEHOLELO 0x0001E028 +#define I40E_GLPES_TCPRXONEHOLELO_TCPRXONEHOLELO_SHIFT 0 +#define I40E_GLPES_TCPRXONEHOLELO_TCPRXONEHOLELO_MASK (0xFFFFFFFF << I40E_GLPES_TCPRXONEHOLELO_TCPRXONEHOLELO_SHIFT) +#define I40E_GLPES_TCPRXPUREACKHI 0x0001E024 +#define I40E_GLPES_TCPRXPUREACKHI_TCPRXPUREACKSHI_SHIFT 0 +#define I40E_GLPES_TCPRXPUREACKHI_TCPRXPUREACKSHI_MASK (0xFFFFFF << I40E_GLPES_TCPRXPUREACKHI_TCPRXPUREACKSHI_SHIFT) +#define I40E_GLPES_TCPRXPUREACKSLO 0x0001E020 +#define I40E_GLPES_TCPRXPUREACKSLO_TCPRXPUREACKLO_SHIFT 0 +#define I40E_GLPES_TCPRXPUREACKSLO_TCPRXPUREACKLO_MASK (0xFFFFFFFF << I40E_GLPES_TCPRXPUREACKSLO_TCPRXPUREACKLO_SHIFT) +#define I40E_GLPES_TCPRXTHREEHOLEHI 0x0001E03C +#define I40E_GLPES_TCPRXTHREEHOLEHI_TCPRXTHREEHOLEHI_SHIFT 0 +#define I40E_GLPES_TCPRXTHREEHOLEHI_TCPRXTHREEHOLEHI_MASK (0xFFFFFF << I40E_GLPES_TCPRXTHREEHOLEHI_TCPRXTHREEHOLEHI_SHIFT) +#define I40E_GLPES_TCPRXTHREEHOLELO 0x0001E038 +#define I40E_GLPES_TCPRXTHREEHOLELO_TCPRXTHREEHOLELO_SHIFT 0 +#define I40E_GLPES_TCPRXTHREEHOLELO_TCPRXTHREEHOLELO_MASK (0xFFFFFFFF << I40E_GLPES_TCPRXTHREEHOLELO_TCPRXTHREEHOLELO_SHIFT) +#define I40E_GLPES_TCPRXTWOHOLEHI 0x0001E034 +#define I40E_GLPES_TCPRXTWOHOLEHI_TCPRXTWOHOLEHI_SHIFT 0 +#define I40E_GLPES_TCPRXTWOHOLEHI_TCPRXTWOHOLEHI_MASK (0xFFFFFF << I40E_GLPES_TCPRXTWOHOLEHI_TCPRXTWOHOLEHI_SHIFT) +#define I40E_GLPES_TCPRXTWOHOLELO 0x0001E030 +#define I40E_GLPES_TCPRXTWOHOLELO_TCPRXTWOHOLELO_SHIFT 0 +#define I40E_GLPES_TCPRXTWOHOLELO_TCPRXTWOHOLELO_MASK (0xFFFFFFFF << I40E_GLPES_TCPRXTWOHOLELO_TCPRXTWOHOLELO_SHIFT) +#define I40E_GLPES_TCPRXUNEXPERR 0x0001E008 +#define I40E_GLPES_TCPRXUNEXPERR_TCPRXUNEXPERR_SHIFT 0 +#define I40E_GLPES_TCPRXUNEXPERR_TCPRXUNEXPERR_MASK (0xFFFFFF << I40E_GLPES_TCPRXUNEXPERR_TCPRXUNEXPERR_SHIFT) +#define I40E_GLPES_TCPTXRETRANSFASTHI 0x0001E04C +#define I40E_GLPES_TCPTXRETRANSFASTHI_TCPTXRETRANSFASTHI_SHIFT 0 +#define I40E_GLPES_TCPTXRETRANSFASTHI_TCPTXRETRANSFASTHI_MASK (0xFFFFFF << I40E_GLPES_TCPTXRETRANSFASTHI_TCPTXRETRANSFASTHI_SHIFT) +#define I40E_GLPES_TCPTXRETRANSFASTLO 0x0001E048 +#define I40E_GLPES_TCPTXRETRANSFASTLO_TCPTXRETRANSFASTLO_SHIFT 0 +#define I40E_GLPES_TCPTXRETRANSFASTLO_TCPTXRETRANSFASTLO_MASK (0xFFFFFFFF << I40E_GLPES_TCPTXRETRANSFASTLO_TCPTXRETRANSFASTLO_SHIFT) +#define I40E_GLPES_TCPTXTOUTSFASTHI 0x0001E054 +#define I40E_GLPES_TCPTXTOUTSFASTHI_TCPTXTOUTSFASTHI_SHIFT 0 +#define I40E_GLPES_TCPTXTOUTSFASTHI_TCPTXTOUTSFASTHI_MASK (0xFFFFFF << I40E_GLPES_TCPTXTOUTSFASTHI_TCPTXTOUTSFASTHI_SHIFT) +#define I40E_GLPES_TCPTXTOUTSFASTLO 0x0001E050 +#define I40E_GLPES_TCPTXTOUTSFASTLO_TCPTXTOUTSFASTLO_SHIFT 0 +#define I40E_GLPES_TCPTXTOUTSFASTLO_TCPTXTOUTSFASTLO_MASK (0xFFFFFFFF << I40E_GLPES_TCPTXTOUTSFASTLO_TCPTXTOUTSFASTLO_SHIFT) +#define I40E_GLPES_TCPTXTOUTSHI 0x0001E05C +#define I40E_GLPES_TCPTXTOUTSHI_TCPTXTOUTSHI_SHIFT 0 +#define I40E_GLPES_TCPTXTOUTSHI_TCPTXTOUTSHI_MASK (0xFFFFFF << I40E_GLPES_TCPTXTOUTSHI_TCPTXTOUTSHI_SHIFT) +#define I40E_GLPES_TCPTXTOUTSLO 0x0001E058 +#define I40E_GLPES_TCPTXTOUTSLO_TCPTXTOUTSLO_SHIFT 0 +#define I40E_GLPES_TCPTXTOUTSLO_TCPTXTOUTSLO_MASK (0xFFFFFFFF << I40E_GLPES_TCPTXTOUTSLO_TCPTXTOUTSLO_SHIFT) +#define I40E_GLPES_VFIP4RXDISCARD(_i) (0x00018600 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP4RXDISCARD_MAX_INDEX 31 +#define I40E_GLPES_VFIP4RXDISCARD_IP4RXDISCARD_SHIFT 0 +#define I40E_GLPES_VFIP4RXDISCARD_IP4RXDISCARD_MASK (0xFFFFFFFF << I40E_GLPES_VFIP4RXDISCARD_IP4RXDISCARD_SHIFT) +#define I40E_GLPES_VFIP4RXFRAGSHI(_i) (0x00018804 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP4RXFRAGSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP4RXFRAGSHI_IP4RXFRAGSHI_SHIFT 0 +#define I40E_GLPES_VFIP4RXFRAGSHI_IP4RXFRAGSHI_MASK (0xFFFF << I40E_GLPES_VFIP4RXFRAGSHI_IP4RXFRAGSHI_SHIFT) +#define I40E_GLPES_VFIP4RXFRAGSLO(_i) (0x00018800 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP4RXFRAGSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP4RXFRAGSLO_IP4RXFRAGSLO_SHIFT 0 +#define I40E_GLPES_VFIP4RXFRAGSLO_IP4RXFRAGSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP4RXFRAGSLO_IP4RXFRAGSLO_SHIFT) +#define I40E_GLPES_VFIP4RXMCOCTSHI(_i) (0x00018A04 + ((_i) * 4)) +#define I40E_GLPES_VFIP4RXMCOCTSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP4RXMCOCTSHI_IP4RXMCOCTSHI_SHIFT 0 +#define I40E_GLPES_VFIP4RXMCOCTSHI_IP4RXMCOCTSHI_MASK (0xFFFF << I40E_GLPES_VFIP4RXMCOCTSHI_IP4RXMCOCTSHI_SHIFT) +#define I40E_GLPES_VFIP4RXMCOCTSLO(_i) (0x00018A00 + ((_i) * 4)) +#define I40E_GLPES_VFIP4RXMCOCTSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP4RXMCOCTSLO_IP4RXMCOCTSLO_SHIFT 0 +#define I40E_GLPES_VFIP4RXMCOCTSLO_IP4RXMCOCTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP4RXMCOCTSLO_IP4RXMCOCTSLO_SHIFT) +#define I40E_GLPES_VFIP4RXMCPKTSHI(_i) (0x00018C04 + ((_i) * 4)) +#define I40E_GLPES_VFIP4RXMCPKTSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP4RXMCPKTSHI_IP4RXMCPKTSHI_SHIFT 0 +#define I40E_GLPES_VFIP4RXMCPKTSHI_IP4RXMCPKTSHI_MASK (0xFFFF << I40E_GLPES_VFIP4RXMCPKTSHI_IP4RXMCPKTSHI_SHIFT) +#define I40E_GLPES_VFIP4RXMCPKTSLO(_i) (0x00018C00 + ((_i) * 4)) +#define I40E_GLPES_VFIP4RXMCPKTSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP4RXMCPKTSLO_IP4RXMCPKTSLO_SHIFT 0 +#define I40E_GLPES_VFIP4RXMCPKTSLO_IP4RXMCPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP4RXMCPKTSLO_IP4RXMCPKTSLO_SHIFT) +#define I40E_GLPES_VFIP4RXOCTSHI(_i) (0x00018204 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP4RXOCTSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP4RXOCTSHI_IP4RXOCTSHI_SHIFT 0 +#define I40E_GLPES_VFIP4RXOCTSHI_IP4RXOCTSHI_MASK (0xFFFF << I40E_GLPES_VFIP4RXOCTSHI_IP4RXOCTSHI_SHIFT) +#define I40E_GLPES_VFIP4RXOCTSLO(_i) (0x00018200 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP4RXOCTSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP4RXOCTSLO_IP4RXOCTSLO_SHIFT 0 +#define I40E_GLPES_VFIP4RXOCTSLO_IP4RXOCTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP4RXOCTSLO_IP4RXOCTSLO_SHIFT) +#define I40E_GLPES_VFIP4RXPKTSHI(_i) (0x00018404 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP4RXPKTSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP4RXPKTSHI_IP4RXPKTSHI_SHIFT 0 +#define I40E_GLPES_VFIP4RXPKTSHI_IP4RXPKTSHI_MASK (0xFFFF << I40E_GLPES_VFIP4RXPKTSHI_IP4RXPKTSHI_SHIFT) +#define I40E_GLPES_VFIP4RXPKTSLO(_i) (0x00018400 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP4RXPKTSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP4RXPKTSLO_IP4RXPKTSLO_SHIFT 0 +#define I40E_GLPES_VFIP4RXPKTSLO_IP4RXPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP4RXPKTSLO_IP4RXPKTSLO_SHIFT) +#define I40E_GLPES_VFIP4RXTRUNC(_i) (0x00018700 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP4RXTRUNC_MAX_INDEX 31 +#define I40E_GLPES_VFIP4RXTRUNC_IP4RXTRUNC_SHIFT 0 +#define I40E_GLPES_VFIP4RXTRUNC_IP4RXTRUNC_MASK (0xFFFFFFFF << I40E_GLPES_VFIP4RXTRUNC_IP4RXTRUNC_SHIFT) +#define I40E_GLPES_VFIP4TXFRAGSHI(_i) (0x00019E04 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP4TXFRAGSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP4TXFRAGSHI_IP4TXFRAGSHI_SHIFT 0 +#define I40E_GLPES_VFIP4TXFRAGSHI_IP4TXFRAGSHI_MASK (0xFFFF << I40E_GLPES_VFIP4TXFRAGSHI_IP4TXFRAGSHI_SHIFT) +#define I40E_GLPES_VFIP4TXFRAGSLO(_i) (0x00019E00 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP4TXFRAGSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP4TXFRAGSLO_IP4TXFRAGSLO_SHIFT 0 +#define I40E_GLPES_VFIP4TXFRAGSLO_IP4TXFRAGSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP4TXFRAGSLO_IP4TXFRAGSLO_SHIFT) +#define I40E_GLPES_VFIP4TXMCOCTSHI(_i) (0x0001A004 + ((_i) * 4)) +#define I40E_GLPES_VFIP4TXMCOCTSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP4TXMCOCTSHI_IP4TXMCOCTSHI_SHIFT 0 +#define I40E_GLPES_VFIP4TXMCOCTSHI_IP4TXMCOCTSHI_MASK (0xFFFF << I40E_GLPES_VFIP4TXMCOCTSHI_IP4TXMCOCTSHI_SHIFT) +#define I40E_GLPES_VFIP4TXMCOCTSLO(_i) (0x0001A000 + ((_i) * 4)) +#define I40E_GLPES_VFIP4TXMCOCTSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP4TXMCOCTSLO_IP4TXMCOCTSLO_SHIFT 0 +#define I40E_GLPES_VFIP4TXMCOCTSLO_IP4TXMCOCTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP4TXMCOCTSLO_IP4TXMCOCTSLO_SHIFT) +#define I40E_GLPES_VFIP4TXMCPKTSHI(_i) (0x0001A204 + ((_i) * 4)) +#define I40E_GLPES_VFIP4TXMCPKTSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP4TXMCPKTSHI_IP4TXMCPKTSHI_SHIFT 0 +#define I40E_GLPES_VFIP4TXMCPKTSHI_IP4TXMCPKTSHI_MASK (0xFFFF << I40E_GLPES_VFIP4TXMCPKTSHI_IP4TXMCPKTSHI_SHIFT) +#define I40E_GLPES_VFIP4TXMCPKTSLO(_i) (0x0001A200 + ((_i) * 4)) +#define I40E_GLPES_VFIP4TXMCPKTSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP4TXMCPKTSLO_IP4TXMCPKTSLO_SHIFT 0 +#define I40E_GLPES_VFIP4TXMCPKTSLO_IP4TXMCPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP4TXMCPKTSLO_IP4TXMCPKTSLO_SHIFT) +#define I40E_GLPES_VFIP4TXNOROUTE(_i) (0x0001AE00 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP4TXNOROUTE_MAX_INDEX 31 +#define I40E_GLPES_VFIP4TXNOROUTE_IP4TXNOROUTE_SHIFT 0 +#define I40E_GLPES_VFIP4TXNOROUTE_IP4TXNOROUTE_MASK (0xFFFFFF << I40E_GLPES_VFIP4TXNOROUTE_IP4TXNOROUTE_SHIFT) +#define I40E_GLPES_VFIP4TXOCTSHI(_i) (0x00019A04 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP4TXOCTSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP4TXOCTSHI_IP4TXOCTSHI_SHIFT 0 +#define I40E_GLPES_VFIP4TXOCTSHI_IP4TXOCTSHI_MASK (0xFFFF << I40E_GLPES_VFIP4TXOCTSHI_IP4TXOCTSHI_SHIFT) +#define I40E_GLPES_VFIP4TXOCTSLO(_i) (0x00019A00 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP4TXOCTSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP4TXOCTSLO_IP4TXOCTSLO_SHIFT 0 +#define I40E_GLPES_VFIP4TXOCTSLO_IP4TXOCTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP4TXOCTSLO_IP4TXOCTSLO_SHIFT) +#define I40E_GLPES_VFIP4TXPKTSHI(_i) (0x00019C04 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP4TXPKTSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP4TXPKTSHI_IP4TXPKTSHI_SHIFT 0 +#define I40E_GLPES_VFIP4TXPKTSHI_IP4TXPKTSHI_MASK (0xFFFF << I40E_GLPES_VFIP4TXPKTSHI_IP4TXPKTSHI_SHIFT) +#define I40E_GLPES_VFIP4TXPKTSLO(_i) (0x00019C00 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP4TXPKTSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP4TXPKTSLO_IP4TXPKTSLO_SHIFT 0 +#define I40E_GLPES_VFIP4TXPKTSLO_IP4TXPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP4TXPKTSLO_IP4TXPKTSLO_SHIFT) +#define I40E_GLPES_VFIP6RXDISCARD(_i) (0x00019200 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP6RXDISCARD_MAX_INDEX 31 +#define I40E_GLPES_VFIP6RXDISCARD_IP6RXDISCARD_SHIFT 0 +#define I40E_GLPES_VFIP6RXDISCARD_IP6RXDISCARD_MASK (0xFFFFFFFF << I40E_GLPES_VFIP6RXDISCARD_IP6RXDISCARD_SHIFT) +#define I40E_GLPES_VFIP6RXFRAGSHI(_i) (0x00019404 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP6RXFRAGSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP6RXFRAGSHI_IP6RXFRAGSHI_SHIFT 0 +#define I40E_GLPES_VFIP6RXFRAGSHI_IP6RXFRAGSHI_MASK (0xFFFF << I40E_GLPES_VFIP6RXFRAGSHI_IP6RXFRAGSHI_SHIFT) +#define I40E_GLPES_VFIP6RXFRAGSLO(_i) (0x00019400 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP6RXFRAGSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP6RXFRAGSLO_IP6RXFRAGSLO_SHIFT 0 +#define I40E_GLPES_VFIP6RXFRAGSLO_IP6RXFRAGSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP6RXFRAGSLO_IP6RXFRAGSLO_SHIFT) +#define I40E_GLPES_VFIP6RXMCOCTSHI(_i) (0x00019604 + ((_i) * 4)) +#define I40E_GLPES_VFIP6RXMCOCTSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP6RXMCOCTSHI_IP6RXMCOCTSHI_SHIFT 0 +#define I40E_GLPES_VFIP6RXMCOCTSHI_IP6RXMCOCTSHI_MASK (0xFFFF << I40E_GLPES_VFIP6RXMCOCTSHI_IP6RXMCOCTSHI_SHIFT) +#define I40E_GLPES_VFIP6RXMCOCTSLO(_i) (0x00019600 + ((_i) * 4)) +#define I40E_GLPES_VFIP6RXMCOCTSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP6RXMCOCTSLO_IP6RXMCOCTSLO_SHIFT 0 +#define I40E_GLPES_VFIP6RXMCOCTSLO_IP6RXMCOCTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP6RXMCOCTSLO_IP6RXMCOCTSLO_SHIFT) +#define I40E_GLPES_VFIP6RXMCPKTSHI(_i) (0x00019804 + ((_i) * 4)) +#define I40E_GLPES_VFIP6RXMCPKTSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP6RXMCPKTSHI_IP6RXMCPKTSHI_SHIFT 0 +#define I40E_GLPES_VFIP6RXMCPKTSHI_IP6RXMCPKTSHI_MASK (0xFFFF << I40E_GLPES_VFIP6RXMCPKTSHI_IP6RXMCPKTSHI_SHIFT) +#define I40E_GLPES_VFIP6RXMCPKTSLO(_i) (0x00019800 + ((_i) * 4)) +#define I40E_GLPES_VFIP6RXMCPKTSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP6RXMCPKTSLO_IP6RXMCPKTSLO_SHIFT 0 +#define I40E_GLPES_VFIP6RXMCPKTSLO_IP6RXMCPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP6RXMCPKTSLO_IP6RXMCPKTSLO_SHIFT) +#define I40E_GLPES_VFIP6RXOCTSHI(_i) (0x00018E04 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP6RXOCTSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP6RXOCTSHI_IP6RXOCTSHI_SHIFT 0 +#define I40E_GLPES_VFIP6RXOCTSHI_IP6RXOCTSHI_MASK (0xFFFF << I40E_GLPES_VFIP6RXOCTSHI_IP6RXOCTSHI_SHIFT) +#define I40E_GLPES_VFIP6RXOCTSLO(_i) (0x00018E00 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP6RXOCTSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP6RXOCTSLO_IP6RXOCTSLO_SHIFT 0 +#define I40E_GLPES_VFIP6RXOCTSLO_IP6RXOCTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP6RXOCTSLO_IP6RXOCTSLO_SHIFT) +#define I40E_GLPES_VFIP6RXPKTSHI(_i) (0x00019004 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP6RXPKTSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP6RXPKTSHI_IP6RXPKTSHI_SHIFT 0 +#define I40E_GLPES_VFIP6RXPKTSHI_IP6RXPKTSHI_MASK (0xFFFF << I40E_GLPES_VFIP6RXPKTSHI_IP6RXPKTSHI_SHIFT) +#define I40E_GLPES_VFIP6RXPKTSLO(_i) (0x00019000 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP6RXPKTSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP6RXPKTSLO_IP6RXPKTSLO_SHIFT 0 +#define I40E_GLPES_VFIP6RXPKTSLO_IP6RXPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP6RXPKTSLO_IP6RXPKTSLO_SHIFT) +#define I40E_GLPES_VFIP6RXTRUNC(_i) (0x00019300 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP6RXTRUNC_MAX_INDEX 31 +#define I40E_GLPES_VFIP6RXTRUNC_IP6RXTRUNC_SHIFT 0 +#define I40E_GLPES_VFIP6RXTRUNC_IP6RXTRUNC_MASK (0xFFFFFFFF << I40E_GLPES_VFIP6RXTRUNC_IP6RXTRUNC_SHIFT) +#define I40E_GLPES_VFIP6TXFRAGSHI(_i) (0x0001A804 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP6TXFRAGSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP6TXFRAGSHI_IP6TXFRAGSHI_SHIFT 0 +#define I40E_GLPES_VFIP6TXFRAGSHI_IP6TXFRAGSHI_MASK (0xFFFF << I40E_GLPES_VFIP6TXFRAGSHI_IP6TXFRAGSHI_SHIFT) +#define I40E_GLPES_VFIP6TXFRAGSLO(_i) (0x0001A800 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP6TXFRAGSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP6TXFRAGSLO_IP6TXFRAGSLO_SHIFT 0 +#define I40E_GLPES_VFIP6TXFRAGSLO_IP6TXFRAGSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP6TXFRAGSLO_IP6TXFRAGSLO_SHIFT) +#define I40E_GLPES_VFIP6TXMCOCTSHI(_i) (0x0001AA04 + ((_i) * 4)) +#define I40E_GLPES_VFIP6TXMCOCTSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP6TXMCOCTSHI_IP6TXMCOCTSHI_SHIFT 0 +#define I40E_GLPES_VFIP6TXMCOCTSHI_IP6TXMCOCTSHI_MASK (0xFFFF << I40E_GLPES_VFIP6TXMCOCTSHI_IP6TXMCOCTSHI_SHIFT) +#define I40E_GLPES_VFIP6TXMCOCTSLO(_i) (0x0001AA00 + ((_i) * 4)) +#define I40E_GLPES_VFIP6TXMCOCTSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP6TXMCOCTSLO_IP6TXMCOCTSLO_SHIFT 0 +#define I40E_GLPES_VFIP6TXMCOCTSLO_IP6TXMCOCTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP6TXMCOCTSLO_IP6TXMCOCTSLO_SHIFT) +#define I40E_GLPES_VFIP6TXMCPKTSHI(_i) (0x0001AC04 + ((_i) * 4)) +#define I40E_GLPES_VFIP6TXMCPKTSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP6TXMCPKTSHI_IP6TXMCPKTSHI_SHIFT 0 +#define I40E_GLPES_VFIP6TXMCPKTSHI_IP6TXMCPKTSHI_MASK (0xFFFF << I40E_GLPES_VFIP6TXMCPKTSHI_IP6TXMCPKTSHI_SHIFT) +#define I40E_GLPES_VFIP6TXMCPKTSLO(_i) (0x0001AC00 + ((_i) * 4)) +#define I40E_GLPES_VFIP6TXMCPKTSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP6TXMCPKTSLO_IP6TXMCPKTSLO_SHIFT 0 +#define I40E_GLPES_VFIP6TXMCPKTSLO_IP6TXMCPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP6TXMCPKTSLO_IP6TXMCPKTSLO_SHIFT) +#define I40E_GLPES_VFIP6TXNOROUTE(_i) (0x0001AF00 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP6TXNOROUTE_MAX_INDEX 31 +#define I40E_GLPES_VFIP6TXNOROUTE_IP6TXNOROUTE_SHIFT 0 +#define I40E_GLPES_VFIP6TXNOROUTE_IP6TXNOROUTE_MASK (0xFFFFFF << I40E_GLPES_VFIP6TXNOROUTE_IP6TXNOROUTE_SHIFT) +#define I40E_GLPES_VFIP6TXOCTSHI(_i) (0x0001A404 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP6TXOCTSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP6TXOCTSHI_IP6TXOCTSHI_SHIFT 0 +#define I40E_GLPES_VFIP6TXOCTSHI_IP6TXOCTSHI_MASK (0xFFFF << I40E_GLPES_VFIP6TXOCTSHI_IP6TXOCTSHI_SHIFT) +#define I40E_GLPES_VFIP6TXOCTSLO(_i) (0x0001A400 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP6TXOCTSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP6TXOCTSLO_IP6TXOCTSLO_SHIFT 0 +#define I40E_GLPES_VFIP6TXOCTSLO_IP6TXOCTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP6TXOCTSLO_IP6TXOCTSLO_SHIFT) +#define I40E_GLPES_VFIP6TXPKTSHI(_i) (0x0001A604 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP6TXPKTSHI_MAX_INDEX 31 +#define I40E_GLPES_VFIP6TXPKTSHI_IP6TXPKTSHI_SHIFT 0 +#define I40E_GLPES_VFIP6TXPKTSHI_IP6TXPKTSHI_MASK (0xFFFF << I40E_GLPES_VFIP6TXPKTSHI_IP6TXPKTSHI_SHIFT) +#define I40E_GLPES_VFIP6TXPKTSLO(_i) (0x0001A600 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFIP6TXPKTSLO_MAX_INDEX 31 +#define I40E_GLPES_VFIP6TXPKTSLO_IP6TXPKTSLO_SHIFT 0 +#define I40E_GLPES_VFIP6TXPKTSLO_IP6TXPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFIP6TXPKTSLO_IP6TXPKTSLO_SHIFT) +#define I40E_GLPES_VFRDMARXRDSHI(_i) (0x0001BE04 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFRDMARXRDSHI_MAX_INDEX 31 +#define I40E_GLPES_VFRDMARXRDSHI_RDMARXRDSHI_SHIFT 0 +#define I40E_GLPES_VFRDMARXRDSHI_RDMARXRDSHI_MASK (0xFFFF << I40E_GLPES_VFRDMARXRDSHI_RDMARXRDSHI_SHIFT) +#define I40E_GLPES_VFRDMARXRDSLO(_i) (0x0001BE00 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFRDMARXRDSLO_MAX_INDEX 31 +#define I40E_GLPES_VFRDMARXRDSLO_RDMARXRDSLO_SHIFT 0 +#define I40E_GLPES_VFRDMARXRDSLO_RDMARXRDSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFRDMARXRDSLO_RDMARXRDSLO_SHIFT) +#define I40E_GLPES_VFRDMARXSNDSHI(_i) (0x0001C004 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFRDMARXSNDSHI_MAX_INDEX 31 +#define I40E_GLPES_VFRDMARXSNDSHI_RDMARXSNDSHI_SHIFT 0 +#define I40E_GLPES_VFRDMARXSNDSHI_RDMARXSNDSHI_MASK (0xFFFF << I40E_GLPES_VFRDMARXSNDSHI_RDMARXSNDSHI_SHIFT) +#define I40E_GLPES_VFRDMARXSNDSLO(_i) (0x0001C000 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFRDMARXSNDSLO_MAX_INDEX 31 +#define I40E_GLPES_VFRDMARXSNDSLO_RDMARXSNDSLO_SHIFT 0 +#define I40E_GLPES_VFRDMARXSNDSLO_RDMARXSNDSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFRDMARXSNDSLO_RDMARXSNDSLO_SHIFT) +#define I40E_GLPES_VFRDMARXWRSHI(_i) (0x0001BC04 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFRDMARXWRSHI_MAX_INDEX 31 +#define I40E_GLPES_VFRDMARXWRSHI_RDMARXWRSHI_SHIFT 0 +#define I40E_GLPES_VFRDMARXWRSHI_RDMARXWRSHI_MASK (0xFFFF << I40E_GLPES_VFRDMARXWRSHI_RDMARXWRSHI_SHIFT) +#define I40E_GLPES_VFRDMARXWRSLO(_i) (0x0001BC00 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFRDMARXWRSLO_MAX_INDEX 31 +#define I40E_GLPES_VFRDMARXWRSLO_RDMARXWRSLO_SHIFT 0 +#define I40E_GLPES_VFRDMARXWRSLO_RDMARXWRSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFRDMARXWRSLO_RDMARXWRSLO_SHIFT) +#define I40E_GLPES_VFRDMATXRDSHI(_i) (0x0001C404 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFRDMATXRDSHI_MAX_INDEX 31 +#define I40E_GLPES_VFRDMATXRDSHI_RDMARXRDSHI_SHIFT 0 +#define I40E_GLPES_VFRDMATXRDSHI_RDMARXRDSHI_MASK (0xFFFF << I40E_GLPES_VFRDMATXRDSHI_RDMARXRDSHI_SHIFT) +#define I40E_GLPES_VFRDMATXRDSLO(_i) (0x0001C400 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFRDMATXRDSLO_MAX_INDEX 31 +#define I40E_GLPES_VFRDMATXRDSLO_RDMARXRDSLO_SHIFT 0 +#define I40E_GLPES_VFRDMATXRDSLO_RDMARXRDSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFRDMATXRDSLO_RDMARXRDSLO_SHIFT) +#define I40E_GLPES_VFRDMATXSNDSHI(_i) (0x0001C604 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFRDMATXSNDSHI_MAX_INDEX 31 +#define I40E_GLPES_VFRDMATXSNDSHI_RDMARXSNDSHI_SHIFT 0 +#define I40E_GLPES_VFRDMATXSNDSHI_RDMARXSNDSHI_MASK (0xFFFF << I40E_GLPES_VFRDMATXSNDSHI_RDMARXSNDSHI_SHIFT) +#define I40E_GLPES_VFRDMATXSNDSLO(_i) (0x0001C600 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFRDMATXSNDSLO_MAX_INDEX 31 +#define I40E_GLPES_VFRDMATXSNDSLO_RDMARXSNDSLO_SHIFT 0 +#define I40E_GLPES_VFRDMATXSNDSLO_RDMARXSNDSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFRDMATXSNDSLO_RDMARXSNDSLO_SHIFT) +#define I40E_GLPES_VFRDMATXWRSHI(_i) (0x0001C204 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFRDMATXWRSHI_MAX_INDEX 31 +#define I40E_GLPES_VFRDMATXWRSHI_RDMARXWRSHI_SHIFT 0 +#define I40E_GLPES_VFRDMATXWRSHI_RDMARXWRSHI_MASK (0xFFFF << I40E_GLPES_VFRDMATXWRSHI_RDMARXWRSHI_SHIFT) +#define I40E_GLPES_VFRDMATXWRSLO(_i) (0x0001C200 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFRDMATXWRSLO_MAX_INDEX 31 +#define I40E_GLPES_VFRDMATXWRSLO_RDMARXWRSLO_SHIFT 0 +#define I40E_GLPES_VFRDMATXWRSLO_RDMARXWRSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFRDMATXWRSLO_RDMARXWRSLO_SHIFT) +#define I40E_GLPES_VFRDMAVBNDHI(_i) (0x0001C804 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFRDMAVBNDHI_MAX_INDEX 31 +#define I40E_GLPES_VFRDMAVBNDHI_RDMAVBNDHI_SHIFT 0 +#define I40E_GLPES_VFRDMAVBNDHI_RDMAVBNDHI_MASK (0xFFFFFFFF << I40E_GLPES_VFRDMAVBNDHI_RDMAVBNDHI_SHIFT) +#define I40E_GLPES_VFRDMAVBNDLO(_i) (0x0001C800 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFRDMAVBNDLO_MAX_INDEX 31 +#define I40E_GLPES_VFRDMAVBNDLO_RDMAVBNDLO_SHIFT 0 +#define I40E_GLPES_VFRDMAVBNDLO_RDMAVBNDLO_MASK (0xFFFFFFFF << I40E_GLPES_VFRDMAVBNDLO_RDMAVBNDLO_SHIFT) +#define I40E_GLPES_VFRDMAVINVHI(_i) (0x0001CA04 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFRDMAVINVHI_MAX_INDEX 31 +#define I40E_GLPES_VFRDMAVINVHI_RDMAVINVHI_SHIFT 0 +#define I40E_GLPES_VFRDMAVINVHI_RDMAVINVHI_MASK (0xFFFFFFFF << I40E_GLPES_VFRDMAVINVHI_RDMAVINVHI_SHIFT) +#define I40E_GLPES_VFRDMAVINVLO(_i) (0x0001CA00 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFRDMAVINVLO_MAX_INDEX 31 +#define I40E_GLPES_VFRDMAVINVLO_RDMAVINVLO_SHIFT 0 +#define I40E_GLPES_VFRDMAVINVLO_RDMAVINVLO_MASK (0xFFFFFFFF << I40E_GLPES_VFRDMAVINVLO_RDMAVINVLO_SHIFT) +#define I40E_GLPES_VFRXVLANERR(_i) (0x00018000 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFRXVLANERR_MAX_INDEX 31 +#define I40E_GLPES_VFRXVLANERR_RXVLANERR_SHIFT 0 +#define I40E_GLPES_VFRXVLANERR_RXVLANERR_MASK (0xFFFFFF << I40E_GLPES_VFRXVLANERR_RXVLANERR_SHIFT) +#define I40E_GLPES_VFTCPRTXSEG(_i) (0x0001B600 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFTCPRTXSEG_MAX_INDEX 31 +#define I40E_GLPES_VFTCPRTXSEG_TCPRTXSEG_SHIFT 0 +#define I40E_GLPES_VFTCPRTXSEG_TCPRTXSEG_MASK (0xFFFFFFFF << I40E_GLPES_VFTCPRTXSEG_TCPRTXSEG_SHIFT) +#define I40E_GLPES_VFTCPRXOPTERR(_i) (0x0001B200 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFTCPRXOPTERR_MAX_INDEX 31 +#define I40E_GLPES_VFTCPRXOPTERR_TCPRXOPTERR_SHIFT 0 +#define I40E_GLPES_VFTCPRXOPTERR_TCPRXOPTERR_MASK (0xFFFFFF << I40E_GLPES_VFTCPRXOPTERR_TCPRXOPTERR_SHIFT) +#define I40E_GLPES_VFTCPRXPROTOERR(_i) (0x0001B300 + ((_i) * 4)) +#define I40E_GLPES_VFTCPRXPROTOERR_MAX_INDEX 31 +#define I40E_GLPES_VFTCPRXPROTOERR_TCPRXPROTOERR_SHIFT 0 +#define I40E_GLPES_VFTCPRXPROTOERR_TCPRXPROTOERR_MASK (0xFFFFFF << I40E_GLPES_VFTCPRXPROTOERR_TCPRXPROTOERR_SHIFT) +#define I40E_GLPES_VFTCPRXSEGSHI(_i) (0x0001B004 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFTCPRXSEGSHI_MAX_INDEX 31 +#define I40E_GLPES_VFTCPRXSEGSHI_TCPRXSEGSHI_SHIFT 0 +#define I40E_GLPES_VFTCPRXSEGSHI_TCPRXSEGSHI_MASK (0xFFFF << I40E_GLPES_VFTCPRXSEGSHI_TCPRXSEGSHI_SHIFT) +#define I40E_GLPES_VFTCPRXSEGSLO(_i) (0x0001B000 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFTCPRXSEGSLO_MAX_INDEX 31 +#define I40E_GLPES_VFTCPRXSEGSLO_TCPRXSEGSLO_SHIFT 0 +#define I40E_GLPES_VFTCPRXSEGSLO_TCPRXSEGSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFTCPRXSEGSLO_TCPRXSEGSLO_SHIFT) +#define I40E_GLPES_VFTCPTXSEGHI(_i) (0x0001B404 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFTCPTXSEGHI_MAX_INDEX 31 +#define I40E_GLPES_VFTCPTXSEGHI_TCPTXSEGHI_SHIFT 0 +#define I40E_GLPES_VFTCPTXSEGHI_TCPTXSEGHI_MASK (0xFFFF << I40E_GLPES_VFTCPTXSEGHI_TCPTXSEGHI_SHIFT) +#define I40E_GLPES_VFTCPTXSEGLO(_i) (0x0001B400 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFTCPTXSEGLO_MAX_INDEX 31 +#define I40E_GLPES_VFTCPTXSEGLO_TCPTXSEGLO_SHIFT 0 +#define I40E_GLPES_VFTCPTXSEGLO_TCPTXSEGLO_MASK (0xFFFFFFFF << I40E_GLPES_VFTCPTXSEGLO_TCPTXSEGLO_SHIFT) +#define I40E_GLPES_VFUDPRXPKTSHI(_i) (0x0001B804 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFUDPRXPKTSHI_MAX_INDEX 31 +#define I40E_GLPES_VFUDPRXPKTSHI_UDPRXPKTSHI_SHIFT 0 +#define I40E_GLPES_VFUDPRXPKTSHI_UDPRXPKTSHI_MASK (0xFFFF << I40E_GLPES_VFUDPRXPKTSHI_UDPRXPKTSHI_SHIFT) +#define I40E_GLPES_VFUDPRXPKTSLO(_i) (0x0001B800 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFUDPRXPKTSLO_MAX_INDEX 31 +#define I40E_GLPES_VFUDPRXPKTSLO_UDPRXPKTSLO_SHIFT 0 +#define I40E_GLPES_VFUDPRXPKTSLO_UDPRXPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFUDPRXPKTSLO_UDPRXPKTSLO_SHIFT) +#define I40E_GLPES_VFUDPTXPKTSHI(_i) (0x0001BA04 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFUDPTXPKTSHI_MAX_INDEX 31 +#define I40E_GLPES_VFUDPTXPKTSHI_UDPTXPKTSHI_SHIFT 0 +#define I40E_GLPES_VFUDPTXPKTSHI_UDPTXPKTSHI_MASK (0xFFFF << I40E_GLPES_VFUDPTXPKTSHI_UDPTXPKTSHI_SHIFT) +#define I40E_GLPES_VFUDPTXPKTSLO(_i) (0x0001BA00 + ((_i) * 4)) /* _i=0...31 */ +#define I40E_GLPES_VFUDPTXPKTSLO_MAX_INDEX 31 +#define I40E_GLPES_VFUDPTXPKTSLO_UDPTXPKTSLO_SHIFT 0 +#define I40E_GLPES_VFUDPTXPKTSLO_UDPTXPKTSLO_MASK (0xFFFFFFFF << I40E_GLPES_VFUDPTXPKTSLO_UDPTXPKTSLO_SHIFT) +#define I40E_PRTPM_EEE_STAT 0x001E4320 +#define I40E_PRTPM_EEE_STAT_EEE_NEG_SHIFT 29 +#define I40E_PRTPM_EEE_STAT_EEE_NEG_MASK (0x1 << I40E_PRTPM_EEE_STAT_EEE_NEG_SHIFT) +#define I40E_PRTPM_EEE_STAT_RX_LPI_STATUS_SHIFT 30 +#define I40E_PRTPM_EEE_STAT_RX_LPI_STATUS_MASK (0x1 << I40E_PRTPM_EEE_STAT_RX_LPI_STATUS_SHIFT) +#define I40E_PRTPM_EEE_STAT_TX_LPI_STATUS_SHIFT 31 +#define I40E_PRTPM_EEE_STAT_TX_LPI_STATUS_MASK (0x1 << I40E_PRTPM_EEE_STAT_TX_LPI_STATUS_SHIFT) +#define I40E_PRTPM_EEEC 0x001E4380 +#define I40E_PRTPM_EEEC_TW_WAKE_MIN_SHIFT 16 +#define I40E_PRTPM_EEEC_TW_WAKE_MIN_MASK (0x3F << I40E_PRTPM_EEEC_TW_WAKE_MIN_SHIFT) +#define I40E_PRTPM_EEEC_TX_LU_LPI_DLY_SHIFT 24 +#define I40E_PRTPM_EEEC_TX_LU_LPI_DLY_MASK (0x3 << I40E_PRTPM_EEEC_TX_LU_LPI_DLY_SHIFT) +#define I40E_PRTPM_EEEC_TEEE_DLY_SHIFT 26 +#define I40E_PRTPM_EEEC_TEEE_DLY_MASK (0x3F << I40E_PRTPM_EEEC_TEEE_DLY_SHIFT) +#define I40E_PRTPM_EEEFWD 0x001E4400 +#define I40E_PRTPM_EEEFWD_EEE_FW_CONFIG_DONE_SHIFT 31 +#define I40E_PRTPM_EEEFWD_EEE_FW_CONFIG_DONE_MASK (0x1 << I40E_PRTPM_EEEFWD_EEE_FW_CONFIG_DONE_SHIFT) +#define I40E_PRTPM_EEER 0x001E4360 +#define I40E_PRTPM_EEER_TW_SYSTEM_SHIFT 0 +#define I40E_PRTPM_EEER_TW_SYSTEM_MASK (0xFFFF << I40E_PRTPM_EEER_TW_SYSTEM_SHIFT) +#define I40E_PRTPM_EEER_TX_LPI_EN_SHIFT 16 +#define I40E_PRTPM_EEER_TX_LPI_EN_MASK (0x1 << I40E_PRTPM_EEER_TX_LPI_EN_SHIFT) +#define I40E_PRTPM_EEETXC 0x001E43E0 +#define I40E_PRTPM_EEETXC_TW_PHY_SHIFT 0 +#define I40E_PRTPM_EEETXC_TW_PHY_MASK (0xFFFF << I40E_PRTPM_EEETXC_TW_PHY_SHIFT) +#define I40E_PRTPM_GC 0x000B8140 +#define I40E_PRTPM_GC_EMP_LINK_ON_SHIFT 0 +#define I40E_PRTPM_GC_EMP_LINK_ON_MASK (0x1 << I40E_PRTPM_GC_EMP_LINK_ON_SHIFT) +#define I40E_PRTPM_GC_MNG_VETO_SHIFT 1 +#define I40E_PRTPM_GC_MNG_VETO_MASK (0x1 << I40E_PRTPM_GC_MNG_VETO_SHIFT) +#define I40E_PRTPM_GC_RATD_SHIFT 2 +#define I40E_PRTPM_GC_RATD_MASK (0x1 << I40E_PRTPM_GC_RATD_SHIFT) +#define I40E_PRTPM_GC_LCDMP_SHIFT 3 +#define I40E_PRTPM_GC_LCDMP_MASK (0x1 << I40E_PRTPM_GC_LCDMP_SHIFT) +#define I40E_PRTPM_GC_LPLU_ASSERTED_SHIFT 31 +#define I40E_PRTPM_GC_LPLU_ASSERTED_MASK (0x1 << I40E_PRTPM_GC_LPLU_ASSERTED_SHIFT) +#define I40E_PRTPM_RLPIC 0x001E43A0 +#define I40E_PRTPM_RLPIC_ERLPIC_SHIFT 0 +#define I40E_PRTPM_RLPIC_ERLPIC_MASK (0xFFFFFFFF << I40E_PRTPM_RLPIC_ERLPIC_SHIFT) +#define I40E_PRTPM_TLPIC 0x001E43C0 +#define I40E_PRTPM_TLPIC_ETLPIC_SHIFT 0 +#define I40E_PRTPM_TLPIC_ETLPIC_MASK (0xFFFFFFFF << I40E_PRTPM_TLPIC_ETLPIC_SHIFT) +#define I40E_GLRPB_DPSS 0x000AC828 +#define I40E_GLRPB_DPSS_DPS_TCN_SHIFT 0 +#define I40E_GLRPB_DPSS_DPS_TCN_MASK (0xFFFFF << I40E_GLRPB_DPSS_DPS_TCN_SHIFT) +#define I40E_GLRPB_GHW 0x000AC830 +#define I40E_GLRPB_GHW_GHW_SHIFT 0 +#define I40E_GLRPB_GHW_GHW_MASK (0xFFFFF << I40E_GLRPB_GHW_GHW_SHIFT) +#define I40E_GLRPB_GLW 0x000AC834 +#define I40E_GLRPB_GLW_GLW_SHIFT 0 +#define I40E_GLRPB_GLW_GLW_MASK (0xFFFFF << I40E_GLRPB_GLW_GLW_SHIFT) +#define I40E_GLRPB_PHW 0x000AC844 +#define I40E_GLRPB_PHW_PHW_SHIFT 0 +#define I40E_GLRPB_PHW_PHW_MASK (0xFFFFF << I40E_GLRPB_PHW_PHW_SHIFT) +#define I40E_GLRPB_PLW 0x000AC848 +#define I40E_GLRPB_PLW_PLW_SHIFT 0 +#define I40E_GLRPB_PLW_PLW_MASK (0xFFFFF << I40E_GLRPB_PLW_PLW_SHIFT) +#define I40E_PRTRPB_DHW(_i) (0x000AC100 + ((_i) * 32)) /* _i=0...7 */ +#define I40E_PRTRPB_DHW_MAX_INDEX 7 +#define I40E_PRTRPB_DHW_DHW_TCN_SHIFT 0 +#define I40E_PRTRPB_DHW_DHW_TCN_MASK (0xFFFFF << I40E_PRTRPB_DHW_DHW_TCN_SHIFT) +#define I40E_PRTRPB_DLW(_i) (0x000AC220 + ((_i) * 32)) /* _i=0...7 */ +#define I40E_PRTRPB_DLW_MAX_INDEX 7 +#define I40E_PRTRPB_DLW_DLW_TCN_SHIFT 0 +#define I40E_PRTRPB_DLW_DLW_TCN_MASK (0xFFFFF << I40E_PRTRPB_DLW_DLW_TCN_SHIFT) +#define I40E_PRTRPB_DPS(_i) (0x000AC320 + ((_i) * 32)) /* _i=0...7 */ +#define I40E_PRTRPB_DPS_MAX_INDEX 7 +#define I40E_PRTRPB_DPS_DPS_TCN_SHIFT 0 +#define I40E_PRTRPB_DPS_DPS_TCN_MASK (0xFFFFF << I40E_PRTRPB_DPS_DPS_TCN_SHIFT) +#define I40E_PRTRPB_SHT(_i) (0x000AC480 + ((_i) * 32)) /* _i=0...7 */ +#define I40E_PRTRPB_SHT_MAX_INDEX 7 +#define I40E_PRTRPB_SHT_SHT_TCN_SHIFT 0 +#define I40E_PRTRPB_SHT_SHT_TCN_MASK (0xFFFFF << I40E_PRTRPB_SHT_SHT_TCN_SHIFT) +#define I40E_PRTRPB_SHW 0x000AC580 +#define I40E_PRTRPB_SHW_SHW_SHIFT 0 +#define I40E_PRTRPB_SHW_SHW_MASK (0xFFFFF << I40E_PRTRPB_SHW_SHW_SHIFT) +#define I40E_PRTRPB_SLT(_i) (0x000AC5A0 + ((_i) * 32)) /* _i=0...7 */ +#define I40E_PRTRPB_SLT_MAX_INDEX 7 +#define I40E_PRTRPB_SLT_SLT_TCN_SHIFT 0 +#define I40E_PRTRPB_SLT_SLT_TCN_MASK (0xFFFFF << I40E_PRTRPB_SLT_SLT_TCN_SHIFT) +#define I40E_PRTRPB_SLW 0x000AC6A0 +#define I40E_PRTRPB_SLW_SLW_SHIFT 0 +#define I40E_PRTRPB_SLW_SLW_MASK (0xFFFFF << I40E_PRTRPB_SLW_SLW_SHIFT) +#define I40E_PRTRPB_SPS 0x000AC7C0 +#define I40E_PRTRPB_SPS_SPS_SHIFT 0 +#define I40E_PRTRPB_SPS_SPS_MASK (0xFFFFF << I40E_PRTRPB_SPS_SPS_SHIFT) +#define I40E_GLQF_APBVT(_i) (0x00260000 + ((_i) * 4)) /* _i=0...2047 */ +#define I40E_GLQF_APBVT_MAX_INDEX 2047 +#define I40E_GLQF_APBVT_APBVT_SHIFT 0 +#define I40E_GLQF_APBVT_APBVT_MASK (0xFFFFFFFF << I40E_GLQF_APBVT_APBVT_SHIFT) +#define I40E_GLQF_CTL 0x00269BA4 +#define I40E_GLQF_CTL_HTOEP_SHIFT 1 +#define I40E_GLQF_CTL_HTOEP_MASK (0x1 << I40E_GLQF_CTL_HTOEP_SHIFT) +#define I40E_GLQF_CTL_HTOEP_FCOE_SHIFT 2 +#define I40E_GLQF_CTL_HTOEP_FCOE_MASK (0x1 << I40E_GLQF_CTL_HTOEP_FCOE_SHIFT) +#define I40E_GLQF_CTL_PCNT_ALLOC_SHIFT 3 +#define I40E_GLQF_CTL_PCNT_ALLOC_MASK (0x7 << I40E_GLQF_CTL_PCNT_ALLOC_SHIFT) +#define I40E_GLQF_CTL_RSVD_SHIFT 7 +#define I40E_GLQF_CTL_RSVD_MASK (0x1 << I40E_GLQF_CTL_RSVD_SHIFT) +#define I40E_GLQF_CTL_MAXPEBLEN_SHIFT 8 +#define I40E_GLQF_CTL_MAXPEBLEN_MASK (0x7 << I40E_GLQF_CTL_MAXPEBLEN_SHIFT) +#define I40E_GLQF_CTL_MAXFCBLEN_SHIFT 11 +#define I40E_GLQF_CTL_MAXFCBLEN_MASK (0x7 << I40E_GLQF_CTL_MAXFCBLEN_SHIFT) +#define I40E_GLQF_CTL_MAXFDBLEN_SHIFT 14 +#define I40E_GLQF_CTL_MAXFDBLEN_MASK (0x7 << I40E_GLQF_CTL_MAXFDBLEN_SHIFT) +#define I40E_GLQF_CTL_FDBEST_SHIFT 17 +#define I40E_GLQF_CTL_FDBEST_MASK (0xFF << I40E_GLQF_CTL_FDBEST_SHIFT) +#define I40E_GLQF_CTL_PROGPRIO_SHIFT 25 +#define I40E_GLQF_CTL_PROGPRIO_MASK (0x1 << I40E_GLQF_CTL_PROGPRIO_SHIFT) +#define I40E_GLQF_CTL_INVALPRIO_SHIFT 26 +#define I40E_GLQF_CTL_INVALPRIO_MASK (0x1 << I40E_GLQF_CTL_INVALPRIO_SHIFT) +#define I40E_GLQF_CTL_IGNORE_IP_SHIFT 27 +#define I40E_GLQF_CTL_IGNORE_IP_MASK (0x1 << I40E_GLQF_CTL_IGNORE_IP_SHIFT) +#define I40E_GLQF_FDCNT_0 0x00269BAC +#define I40E_GLQF_FDCNT_0_GUARANT_CNT_SHIFT 0 +#define I40E_GLQF_FDCNT_0_GUARANT_CNT_MASK (0x1FFF << I40E_GLQF_FDCNT_0_GUARANT_CNT_SHIFT) +#define I40E_GLQF_FDCNT_0_BESTCNT_SHIFT 13 +#define I40E_GLQF_FDCNT_0_BESTCNT_MASK (0x1FFF << I40E_GLQF_FDCNT_0_BESTCNT_SHIFT) +#define I40E_GLQF_HSYM(_i) (0x00269D00 + ((_i) * 4)) /* _i=0...63 */ +#define I40E_GLQF_HSYM_MAX_INDEX 63 +#define I40E_GLQF_HSYM_SYMH_ENA_SHIFT 0 +#define I40E_GLQF_HSYM_SYMH_ENA_MASK (0x1 << I40E_GLQF_HSYM_SYMH_ENA_SHIFT) +#define I40E_GLQF_PCNT(_i) (0x00266800 + ((_i) * 4)) /* _i=0...511 */ +#define I40E_GLQF_PCNT_MAX_INDEX 511 +#define I40E_GLQF_PCNT_PCNT_SHIFT 0 +#define I40E_GLQF_PCNT_PCNT_MASK (0xFFFFFFFF << I40E_GLQF_PCNT_PCNT_SHIFT) +#define I40E_GLQF_SWAP(_i, _j) (0x00267E00 + ((_i) * 4 + (_j) * 8)) /* _i=0...1, _j=0...63 */ +#define I40E_GLQF_SWAP_MAX_INDEX 1 +#define I40E_GLQF_SWAP_OFF0_SRC0_SHIFT 0 +#define I40E_GLQF_SWAP_OFF0_SRC0_MASK (0x3F << I40E_GLQF_SWAP_OFF0_SRC0_SHIFT) +#define I40E_GLQF_SWAP_OFF0_SRC1_SHIFT 6 +#define I40E_GLQF_SWAP_OFF0_SRC1_MASK (0x3F << I40E_GLQF_SWAP_OFF0_SRC1_SHIFT) +#define I40E_GLQF_SWAP_FLEN0_SHIFT 12 +#define I40E_GLQF_SWAP_FLEN0_MASK (0xF << I40E_GLQF_SWAP_FLEN0_SHIFT) +#define I40E_GLQF_SWAP_OFF1_SRC0_SHIFT 16 +#define I40E_GLQF_SWAP_OFF1_SRC0_MASK (0x3F << I40E_GLQF_SWAP_OFF1_SRC0_SHIFT) +#define I40E_GLQF_SWAP_OFF1_SRC1_SHIFT 22 +#define I40E_GLQF_SWAP_OFF1_SRC1_MASK (0x3F << I40E_GLQF_SWAP_OFF1_SRC1_SHIFT) +#define I40E_GLQF_SWAP_FLEN1_SHIFT 28 +#define I40E_GLQF_SWAP_FLEN1_MASK (0xF << I40E_GLQF_SWAP_FLEN1_SHIFT) +#define I40E_PFQF_CTL_0 0x001C0AC0 +#define I40E_PFQF_CTL_0_PEHSIZE_SHIFT 0 +#define I40E_PFQF_CTL_0_PEHSIZE_MASK (0x1F << I40E_PFQF_CTL_0_PEHSIZE_SHIFT) +#define I40E_PFQF_CTL_0_PEDSIZE_SHIFT 5 +#define I40E_PFQF_CTL_0_PEDSIZE_MASK (0x1F << I40E_PFQF_CTL_0_PEDSIZE_SHIFT) +#define I40E_PFQF_CTL_0_PFFCHSIZE_SHIFT 10 +#define I40E_PFQF_CTL_0_PFFCHSIZE_MASK (0xF << I40E_PFQF_CTL_0_PFFCHSIZE_SHIFT) +#define I40E_PFQF_CTL_0_PFFCDSIZE_SHIFT 14 +#define I40E_PFQF_CTL_0_PFFCDSIZE_MASK (0x3 << I40E_PFQF_CTL_0_PFFCDSIZE_SHIFT) +#define I40E_PFQF_CTL_0_HASHLUTSIZE_SHIFT 16 +#define I40E_PFQF_CTL_0_HASHLUTSIZE_MASK (0x1 << I40E_PFQF_CTL_0_HASHLUTSIZE_SHIFT) +#define I40E_PFQF_CTL_0_FD_ENA_SHIFT 17 +#define I40E_PFQF_CTL_0_FD_ENA_MASK (0x1 << I40E_PFQF_CTL_0_FD_ENA_SHIFT) +#define I40E_PFQF_CTL_0_ETYPE_ENA_SHIFT 18 +#define I40E_PFQF_CTL_0_ETYPE_ENA_MASK (0x1 << I40E_PFQF_CTL_0_ETYPE_ENA_SHIFT) +#define I40E_PFQF_CTL_0_MACVLAN_ENA_SHIFT 19 +#define I40E_PFQF_CTL_0_MACVLAN_ENA_MASK (0x1 << I40E_PFQF_CTL_0_MACVLAN_ENA_SHIFT) +#define I40E_PFQF_CTL_0_VFFCHSIZE_SHIFT 20 +#define I40E_PFQF_CTL_0_VFFCHSIZE_MASK (0xF << I40E_PFQF_CTL_0_VFFCHSIZE_SHIFT) +#define I40E_PFQF_CTL_0_VFFCDSIZE_SHIFT 24 +#define I40E_PFQF_CTL_0_VFFCDSIZE_MASK (0x3 << I40E_PFQF_CTL_0_VFFCDSIZE_SHIFT) +#define I40E_PFQF_CTL_1 0x00245D80 +#define I40E_PFQF_CTL_1_CLEARFDTABLE_SHIFT 0 +#define I40E_PFQF_CTL_1_CLEARFDTABLE_MASK (0x1 << I40E_PFQF_CTL_1_CLEARFDTABLE_SHIFT) +#define I40E_PFQF_FDALLOC 0x00246280 +#define I40E_PFQF_FDALLOC_FDALLOC_SHIFT 0 +#define I40E_PFQF_FDALLOC_FDALLOC_MASK (0xFF << I40E_PFQF_FDALLOC_FDALLOC_SHIFT) +#define I40E_PFQF_FDALLOC_FDBEST_SHIFT 8 +#define I40E_PFQF_FDALLOC_FDBEST_MASK (0xFF << I40E_PFQF_FDALLOC_FDBEST_SHIFT) +#define I40E_PFQF_FDSTAT 0x00246380 +#define I40E_PFQF_FDSTAT_GUARANT_CNT_SHIFT 0 +#define I40E_PFQF_FDSTAT_GUARANT_CNT_MASK (0x1FFF << I40E_PFQF_FDSTAT_GUARANT_CNT_SHIFT) +#define I40E_PFQF_FDSTAT_BEST_CNT_SHIFT 16 +#define I40E_PFQF_FDSTAT_BEST_CNT_MASK (0x1FFF << I40E_PFQF_FDSTAT_BEST_CNT_SHIFT) +#define I40E_PFQF_HENA(_i) (0x00245900 + ((_i) * 128)) /* _i=0...1 */ +#define I40E_PFQF_HENA_MAX_INDEX 1 +#define I40E_PFQF_HENA_PTYPE_ENA_SHIFT 0 +#define I40E_PFQF_HENA_PTYPE_ENA_MASK (0xFFFFFFFF << I40E_PFQF_HENA_PTYPE_ENA_SHIFT) +#define I40E_PFQF_HKEY(_i) (0x00244800 + ((_i) * 128)) /* _i=0...12 */ +#define I40E_PFQF_HKEY_MAX_INDEX 12 +#define I40E_PFQF_HKEY_KEY_0_SHIFT 0 +#define I40E_PFQF_HKEY_KEY_0_MASK (0xFF << I40E_PFQF_HKEY_KEY_0_SHIFT) +#define I40E_PFQF_HKEY_KEY_1_SHIFT 8 +#define I40E_PFQF_HKEY_KEY_1_MASK (0xFF << I40E_PFQF_HKEY_KEY_1_SHIFT) +#define I40E_PFQF_HKEY_KEY_2_SHIFT 16 +#define I40E_PFQF_HKEY_KEY_2_MASK (0xFF << I40E_PFQF_HKEY_KEY_2_SHIFT) +#define I40E_PFQF_HKEY_KEY_3_SHIFT 24 +#define I40E_PFQF_HKEY_KEY_3_MASK (0xFF << I40E_PFQF_HKEY_KEY_3_SHIFT) +#define I40E_PFQF_HLUT(_i) (0x00240000 + ((_i) * 128)) /* _i=0...127 */ +#define I40E_PFQF_HLUT_MAX_INDEX 127 +#define I40E_PFQF_HLUT_LUT0_SHIFT 0 +#define I40E_PFQF_HLUT_LUT0_MASK (0x3F << I40E_PFQF_HLUT_LUT0_SHIFT) +#define I40E_PFQF_HLUT_LUT1_SHIFT 8 +#define I40E_PFQF_HLUT_LUT1_MASK (0x3F << I40E_PFQF_HLUT_LUT1_SHIFT) +#define I40E_PFQF_HLUT_LUT2_SHIFT 16 +#define I40E_PFQF_HLUT_LUT2_MASK (0x3F << I40E_PFQF_HLUT_LUT2_SHIFT) +#define I40E_PFQF_HLUT_LUT3_SHIFT 24 +#define I40E_PFQF_HLUT_LUT3_MASK (0x3F << I40E_PFQF_HLUT_LUT3_SHIFT) +#define I40E_PFQF_HREGION(_i) (0x00245400 + ((_i) * 128)) /* _i=0...7 */ +#define I40E_PFQF_HREGION_MAX_INDEX 7 +#define I40E_PFQF_HREGION_OVERRIDE_ENA_0_SHIFT 0 +#define I40E_PFQF_HREGION_OVERRIDE_ENA_0_MASK (0x1 << I40E_PFQF_HREGION_OVERRIDE_ENA_0_SHIFT) +#define I40E_PFQF_HREGION_REGION_0_SHIFT 1 +#define I40E_PFQF_HREGION_REGION_0_MASK (0x7 << I40E_PFQF_HREGION_REGION_0_SHIFT) +#define I40E_PFQF_HREGION_OVERRIDE_ENA_1_SHIFT 4 +#define I40E_PFQF_HREGION_OVERRIDE_ENA_1_MASK (0x1 << I40E_PFQF_HREGION_OVERRIDE_ENA_1_SHIFT) +#define I40E_PFQF_HREGION_REGION_1_SHIFT 5 +#define I40E_PFQF_HREGION_REGION_1_MASK (0x7 << I40E_PFQF_HREGION_REGION_1_SHIFT) +#define I40E_PFQF_HREGION_OVERRIDE_ENA_2_SHIFT 8 +#define I40E_PFQF_HREGION_OVERRIDE_ENA_2_MASK (0x1 << I40E_PFQF_HREGION_OVERRIDE_ENA_2_SHIFT) +#define I40E_PFQF_HREGION_REGION_2_SHIFT 9 +#define I40E_PFQF_HREGION_REGION_2_MASK (0x7 << I40E_PFQF_HREGION_REGION_2_SHIFT) +#define I40E_PFQF_HREGION_OVERRIDE_ENA_3_SHIFT 12 +#define I40E_PFQF_HREGION_OVERRIDE_ENA_3_MASK (0x1 << I40E_PFQF_HREGION_OVERRIDE_ENA_3_SHIFT) +#define I40E_PFQF_HREGION_REGION_3_SHIFT 13 +#define I40E_PFQF_HREGION_REGION_3_MASK (0x7 << I40E_PFQF_HREGION_REGION_3_SHIFT) +#define I40E_PFQF_HREGION_OVERRIDE_ENA_4_SHIFT 16 +#define I40E_PFQF_HREGION_OVERRIDE_ENA_4_MASK (0x1 << I40E_PFQF_HREGION_OVERRIDE_ENA_4_SHIFT) +#define I40E_PFQF_HREGION_REGION_4_SHIFT 17 +#define I40E_PFQF_HREGION_REGION_4_MASK (0x7 << I40E_PFQF_HREGION_REGION_4_SHIFT) +#define I40E_PFQF_HREGION_OVERRIDE_ENA_5_SHIFT 20 +#define I40E_PFQF_HREGION_OVERRIDE_ENA_5_MASK (0x1 << I40E_PFQF_HREGION_OVERRIDE_ENA_5_SHIFT) +#define I40E_PFQF_HREGION_REGION_5_SHIFT 21 +#define I40E_PFQF_HREGION_REGION_5_MASK (0x7 << I40E_PFQF_HREGION_REGION_5_SHIFT) +#define I40E_PFQF_HREGION_OVERRIDE_ENA_6_SHIFT 24 +#define I40E_PFQF_HREGION_OVERRIDE_ENA_6_MASK (0x1 << I40E_PFQF_HREGION_OVERRIDE_ENA_6_SHIFT) +#define I40E_PFQF_HREGION_REGION_6_SHIFT 25 +#define I40E_PFQF_HREGION_REGION_6_MASK (0x7 << I40E_PFQF_HREGION_REGION_6_SHIFT) +#define I40E_PFQF_HREGION_OVERRIDE_ENA_7_SHIFT 28 +#define I40E_PFQF_HREGION_OVERRIDE_ENA_7_MASK (0x1 << I40E_PFQF_HREGION_OVERRIDE_ENA_7_SHIFT) +#define I40E_PFQF_HREGION_REGION_7_SHIFT 29 +#define I40E_PFQF_HREGION_REGION_7_MASK (0x7 << I40E_PFQF_HREGION_REGION_7_SHIFT) +#define I40E_PRTQF_CTL_0 0x00256E60 +#define I40E_PRTQF_CTL_0_HSYM_ENA_SHIFT 0 +#define I40E_PRTQF_CTL_0_HSYM_ENA_MASK (0x1 << I40E_PRTQF_CTL_0_HSYM_ENA_SHIFT) +#define I40E_PRTQF_FD_FLXINSET(_i) (0x00253800 + ((_i) * 32)) /* _i=0...63 */ +#define I40E_PRTQF_FD_FLXINSET_MAX_INDEX 63 +#define I40E_PRTQF_FD_FLXINSET_INSET_SHIFT 0 +#define I40E_PRTQF_FD_FLXINSET_INSET_MASK (0xFF << I40E_PRTQF_FD_FLXINSET_INSET_SHIFT) +#define I40E_PRTQF_FD_MSK(_i, _j) (0x00252000 + ((_i) * 64 + (_j) * 32)) /* _i=0...63, _j=0...1 */ +#define I40E_PRTQF_FD_MSK_MAX_INDEX 63 +#define I40E_PRTQF_FD_MSK_MASK_SHIFT 0 +#define I40E_PRTQF_FD_MSK_MASK_MASK (0xFFFF << I40E_PRTQF_FD_MSK_MASK_SHIFT) +#define I40E_PRTQF_FD_MSK_OFFSET_SHIFT 16 +#define I40E_PRTQF_FD_MSK_OFFSET_MASK (0x3F << I40E_PRTQF_FD_MSK_OFFSET_SHIFT) +#define I40E_PRTQF_FLX_PIT(_i) (0x00255200 + ((_i) * 32)) /* _i=0...8 */ +#define I40E_PRTQF_FLX_PIT_MAX_INDEX 8 +#define I40E_PRTQF_FLX_PIT_SOURCE_OFF_SHIFT 0 +#define I40E_PRTQF_FLX_PIT_SOURCE_OFF_MASK (0x1F << I40E_PRTQF_FLX_PIT_SOURCE_OFF_SHIFT) +#define I40E_PRTQF_FLX_PIT_FSIZE_SHIFT 5 +#define I40E_PRTQF_FLX_PIT_FSIZE_MASK (0x1F << I40E_PRTQF_FLX_PIT_FSIZE_SHIFT) +#define I40E_PRTQF_FLX_PIT_DEST_OFF_SHIFT 10 +#define I40E_PRTQF_FLX_PIT_DEST_OFF_MASK (0x3F << I40E_PRTQF_FLX_PIT_DEST_OFF_SHIFT) +#define I40E_VFQF_HENA1(_i, _VF) (0x00230800 + ((_i) * 1024 + (_VF) * 4)) +#define I40E_VFQF_HENA1_MAX_INDEX 1 +#define I40E_VFQF_HENA1_PTYPE_ENA_SHIFT 0 +#define I40E_VFQF_HENA1_PTYPE_ENA_MASK (0xFFFFFFFF << I40E_VFQF_HENA1_PTYPE_ENA_SHIFT) +#define I40E_VFQF_HKEY1(_i, _VF) (0x00228000 + ((_i) * 1024 + (_VF) * 4)) /* _i=0...12, _VF=0...127 */ +#define I40E_VFQF_HKEY1_MAX_INDEX 12 +#define I40E_VFQF_HKEY1_KEY_0_SHIFT 0 +#define I40E_VFQF_HKEY1_KEY_0_MASK (0xFF << I40E_VFQF_HKEY1_KEY_0_SHIFT) +#define I40E_VFQF_HKEY1_KEY_1_SHIFT 8 +#define I40E_VFQF_HKEY1_KEY_1_MASK (0xFF << I40E_VFQF_HKEY1_KEY_1_SHIFT) +#define I40E_VFQF_HKEY1_KEY_2_SHIFT 16 +#define I40E_VFQF_HKEY1_KEY_2_MASK (0xFF << I40E_VFQF_HKEY1_KEY_2_SHIFT) +#define I40E_VFQF_HKEY1_KEY_3_SHIFT 24 +#define I40E_VFQF_HKEY1_KEY_3_MASK (0xFF << I40E_VFQF_HKEY1_KEY_3_SHIFT) +#define I40E_VFQF_HLUT1(_i, _VF) (0x00220000 + ((_i) * 1024 + (_VF) * 4)) /* _i=0...15, _VF=0...127 */ +#define I40E_VFQF_HLUT1_MAX_INDEX 15 +#define I40E_VFQF_HLUT1_LUT0_SHIFT 0 +#define I40E_VFQF_HLUT1_LUT0_MASK (0xF << I40E_VFQF_HLUT1_LUT0_SHIFT) +#define I40E_VFQF_HLUT1_LUT1_SHIFT 8 +#define I40E_VFQF_HLUT1_LUT1_MASK (0xF << I40E_VFQF_HLUT1_LUT1_SHIFT) +#define I40E_VFQF_HLUT1_LUT2_SHIFT 16 +#define I40E_VFQF_HLUT1_LUT2_MASK (0xF << I40E_VFQF_HLUT1_LUT2_SHIFT) +#define I40E_VFQF_HLUT1_LUT3_SHIFT 24 +#define I40E_VFQF_HLUT1_LUT3_MASK (0xF << I40E_VFQF_HLUT1_LUT3_SHIFT) +#define I40E_VFQF_HREGION1(_i, _VF) (0x0022E000 + ((_i) * 1024 + (_VF) * 4)) +#define I40E_VFQF_HREGION1_MAX_INDEX 7 +#define I40E_VFQF_HREGION1_OVERRIDE_ENA_0_SHIFT 0 +#define I40E_VFQF_HREGION1_OVERRIDE_ENA_0_MASK (0x1 << I40E_VFQF_HREGION1_OVERRIDE_ENA_0_SHIFT) +#define I40E_VFQF_HREGION1_REGION_0_SHIFT 1 +#define I40E_VFQF_HREGION1_REGION_0_MASK (0x7 << I40E_VFQF_HREGION1_REGION_0_SHIFT) +#define I40E_VFQF_HREGION1_OVERRIDE_ENA_1_SHIFT 4 +#define I40E_VFQF_HREGION1_OVERRIDE_ENA_1_MASK (0x1 << I40E_VFQF_HREGION1_OVERRIDE_ENA_1_SHIFT) +#define I40E_VFQF_HREGION1_REGION_1_SHIFT 5 +#define I40E_VFQF_HREGION1_REGION_1_MASK (0x7 << I40E_VFQF_HREGION1_REGION_1_SHIFT) +#define I40E_VFQF_HREGION1_OVERRIDE_ENA_2_SHIFT 8 +#define I40E_VFQF_HREGION1_OVERRIDE_ENA_2_MASK (0x1 << I40E_VFQF_HREGION1_OVERRIDE_ENA_2_SHIFT) +#define I40E_VFQF_HREGION1_REGION_2_SHIFT 9 +#define I40E_VFQF_HREGION1_REGION_2_MASK (0x7 << I40E_VFQF_HREGION1_REGION_2_SHIFT) +#define I40E_VFQF_HREGION1_OVERRIDE_ENA_3_SHIFT 12 +#define I40E_VFQF_HREGION1_OVERRIDE_ENA_3_MASK (0x1 << I40E_VFQF_HREGION1_OVERRIDE_ENA_3_SHIFT) +#define I40E_VFQF_HREGION1_REGION_3_SHIFT 13 +#define I40E_VFQF_HREGION1_REGION_3_MASK (0x7 << I40E_VFQF_HREGION1_REGION_3_SHIFT) +#define I40E_VFQF_HREGION1_OVERRIDE_ENA_4_SHIFT 16 +#define I40E_VFQF_HREGION1_OVERRIDE_ENA_4_MASK (0x1 << I40E_VFQF_HREGION1_OVERRIDE_ENA_4_SHIFT) +#define I40E_VFQF_HREGION1_REGION_4_SHIFT 17 +#define I40E_VFQF_HREGION1_REGION_4_MASK (0x7 << I40E_VFQF_HREGION1_REGION_4_SHIFT) +#define I40E_VFQF_HREGION1_OVERRIDE_ENA_5_SHIFT 20 +#define I40E_VFQF_HREGION1_OVERRIDE_ENA_5_MASK (0x1 << I40E_VFQF_HREGION1_OVERRIDE_ENA_5_SHIFT) +#define I40E_VFQF_HREGION1_REGION_5_SHIFT 21 +#define I40E_VFQF_HREGION1_REGION_5_MASK (0x7 << I40E_VFQF_HREGION1_REGION_5_SHIFT) +#define I40E_VFQF_HREGION1_OVERRIDE_ENA_6_SHIFT 24 +#define I40E_VFQF_HREGION1_OVERRIDE_ENA_6_MASK (0x1 << I40E_VFQF_HREGION1_OVERRIDE_ENA_6_SHIFT) +#define I40E_VFQF_HREGION1_REGION_6_SHIFT 25 +#define I40E_VFQF_HREGION1_REGION_6_MASK (0x7 << I40E_VFQF_HREGION1_REGION_6_SHIFT) +#define I40E_VFQF_HREGION1_OVERRIDE_ENA_7_SHIFT 28 +#define I40E_VFQF_HREGION1_OVERRIDE_ENA_7_MASK (0x1 << I40E_VFQF_HREGION1_OVERRIDE_ENA_7_SHIFT) +#define I40E_VFQF_HREGION1_REGION_7_SHIFT 29 +#define I40E_VFQF_HREGION1_REGION_7_MASK (0x7 << I40E_VFQF_HREGION1_REGION_7_SHIFT) +#define I40E_VPQF_CTL(_VF) (0x001C0000 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VPQF_CTL_MAX_INDEX 127 +#define I40E_VPQF_CTL_PEHSIZE_SHIFT 0 +#define I40E_VPQF_CTL_PEHSIZE_MASK (0x1F << I40E_VPQF_CTL_PEHSIZE_SHIFT) +#define I40E_VPQF_CTL_PEDSIZE_SHIFT 5 +#define I40E_VPQF_CTL_PEDSIZE_MASK (0x1F << I40E_VPQF_CTL_PEDSIZE_SHIFT) +#define I40E_VPQF_CTL_FCHSIZE_SHIFT 10 +#define I40E_VPQF_CTL_FCHSIZE_MASK (0xF << I40E_VPQF_CTL_FCHSIZE_SHIFT) +#define I40E_VPQF_CTL_FCDSIZE_SHIFT 14 +#define I40E_VPQF_CTL_FCDSIZE_MASK (0x3 << I40E_VPQF_CTL_FCDSIZE_SHIFT) +#define I40E_VSIQF_CTL(_VSI) (0x0020D800 + ((_VSI) * 4)) /* _i=0...383 */ +#define I40E_VSIQF_CTL_MAX_INDEX 383 +#define I40E_VSIQF_CTL_FCOE_ENA_SHIFT 0 +#define I40E_VSIQF_CTL_FCOE_ENA_MASK (0x1 << I40E_VSIQF_CTL_FCOE_ENA_SHIFT) +#define I40E_VSIQF_CTL_PETCP_ENA_SHIFT 1 +#define I40E_VSIQF_CTL_PETCP_ENA_MASK (0x1 << I40E_VSIQF_CTL_PETCP_ENA_SHIFT) +#define I40E_VSIQF_CTL_PEUUDP_ENA_SHIFT 2 +#define I40E_VSIQF_CTL_PEUUDP_ENA_MASK (0x1 << I40E_VSIQF_CTL_PEUUDP_ENA_SHIFT) +#define I40E_VSIQF_CTL_PEMUDP_ENA_SHIFT 3 +#define I40E_VSIQF_CTL_PEMUDP_ENA_MASK (0x1 << I40E_VSIQF_CTL_PEMUDP_ENA_SHIFT) +#define I40E_VSIQF_CTL_PEUFRAG_ENA_SHIFT 4 +#define I40E_VSIQF_CTL_PEUFRAG_ENA_MASK (0x1 << I40E_VSIQF_CTL_PEUFRAG_ENA_SHIFT) +#define I40E_VSIQF_CTL_PEMFRAG_ENA_SHIFT 5 +#define I40E_VSIQF_CTL_PEMFRAG_ENA_MASK (0x1 << I40E_VSIQF_CTL_PEMFRAG_ENA_SHIFT) +#define I40E_VSIQF_TCREGION(_i, _VSI) (0x00206000 + ((_i) * 2048 + (_VSI) * 4)) +#define I40E_VSIQF_TCREGION_MAX_INDEX 3 +#define I40E_VSIQF_TCREGION_TC_OFFSET_SHIFT 0 +#define I40E_VSIQF_TCREGION_TC_OFFSET_MASK (0x1FF << I40E_VSIQF_TCREGION_TC_OFFSET_SHIFT) +#define I40E_VSIQF_TCREGION_TC_SIZE_SHIFT 9 +#define I40E_VSIQF_TCREGION_TC_SIZE_MASK (0x7 << I40E_VSIQF_TCREGION_TC_SIZE_SHIFT) +#define I40E_VSIQF_TCREGION_TC_OFFSET2_SHIFT 16 +#define I40E_VSIQF_TCREGION_TC_OFFSET2_MASK (0x1FF << I40E_VSIQF_TCREGION_TC_OFFSET2_SHIFT) +#define I40E_VSIQF_TCREGION_TC_SIZE2_SHIFT 25 +#define I40E_VSIQF_TCREGION_TC_SIZE2_MASK (0x7 << I40E_VSIQF_TCREGION_TC_SIZE2_SHIFT) +#define I40E_GL_FCOECRC(_i) (0x00314d80 + ((_i) * 8)) /* _i=0...143 */ +#define I40E_GL_FCOECRC_MAX_INDEX 143 +#define I40E_GL_FCOECRC_FCOECRC_SHIFT 0 +#define I40E_GL_FCOECRC_FCOECRC_MASK (0xFFFFFFFF << I40E_GL_FCOECRC_FCOECRC_SHIFT) +#define I40E_GL_FCOEDDPC(_i) (0x00314480 + ((_i) * 8)) /* _i=0...143 */ +#define I40E_GL_FCOEDDPC_MAX_INDEX 143 +#define I40E_GL_FCOEDDPC_FCOEDDPC_SHIFT 0 +#define I40E_GL_FCOEDDPC_FCOEDDPC_MASK (0xFFFFFFFF << I40E_GL_FCOEDDPC_FCOEDDPC_SHIFT) +/* _i=0...143 */ +#define I40E_GL_FCOEDIFEC(_i) (0x00318480 + ((_i) * 8)) /* _i=0...143 */ +#define I40E_GL_FCOEDIFEC_MAX_INDEX 143 +#define I40E_GL_FCOEDIFEC_FCOEDIFRC_SHIFT 0 +#define I40E_GL_FCOEDIFEC_FCOEDIFRC_MASK (0xFFFFFFFF << I40E_GL_FCOEDIFEC_FCOEDIFRC_SHIFT) +#define I40E_GL_FCOEDIFRC(_i) (0x00318000 + ((_i) * 8)) /* _i=0...143 */ +#define I40E_GL_FCOEDIFRC_MAX_INDEX 143 +#define I40E_GL_FCOEDIFRC_FCOEDIFRC_SHIFT 0 +#define I40E_GL_FCOEDIFRC_FCOEDIFRC_MASK (0xFFFFFFFF << I40E_GL_FCOEDIFRC_FCOEDIFRC_SHIFT) +#define I40E_GL_FCOEDIFTCL(_i) (0x00354000 + ((_i) * 8)) /* _i=0...143 */ +#define I40E_GL_FCOEDIFTCL_MAX_INDEX 143 +#define I40E_GL_FCOEDIFTCL_FCOEDIFTC_SHIFT 0 +#define I40E_GL_FCOEDIFTCL_FCOEDIFTC_MASK (0xFFFFFFFF << I40E_GL_FCOEDIFTCL_FCOEDIFTC_SHIFT) +#define I40E_GL_FCOEDIXAC(_i) (0x0031c000 + ((_i) * 8)) /* _i=0...143 */ +#define I40E_GL_FCOEDIXAC_MAX_INDEX 143 +#define I40E_GL_FCOEDIXAC_FCOEDIXAC_SHIFT 0 +#define I40E_GL_FCOEDIXAC_FCOEDIXAC_MASK (0xFFFFFFFF << I40E_GL_FCOEDIXAC_FCOEDIXAC_SHIFT) +#define I40E_GL_FCOEDIXEC(_i) (0x0034c000 + ((_i) * 8)) /* _i=0...143 */ +#define I40E_GL_FCOEDIXEC_MAX_INDEX 143 +#define I40E_GL_FCOEDIXEC_FCOEDIXEC_SHIFT 0 +#define I40E_GL_FCOEDIXEC_FCOEDIXEC_MASK (0xFFFFFFFF << I40E_GL_FCOEDIXEC_FCOEDIXEC_SHIFT) +#define I40E_GL_FCOEDIXVC(_i) (0x00350000 + ((_i) * 8)) /* _i=0...143 */ +#define I40E_GL_FCOEDIXVC_MAX_INDEX 143 +#define I40E_GL_FCOEDIXVC_FCOEDIXVC_SHIFT 0 +#define I40E_GL_FCOEDIXVC_FCOEDIXVC_MASK (0xFFFFFFFF << I40E_GL_FCOEDIXVC_FCOEDIXVC_SHIFT) +#define I40E_GL_FCOEDWRCH(_i) (0x00320004 + ((_i) * 8)) /* _i=0...143 */ +#define I40E_GL_FCOEDWRCH_MAX_INDEX 143 +#define I40E_GL_FCOEDWRCH_FCOEDWRCH_SHIFT 0 +#define I40E_GL_FCOEDWRCH_FCOEDWRCH_MASK (0xFFFF << I40E_GL_FCOEDWRCH_FCOEDWRCH_SHIFT) +#define I40E_GL_FCOEDWRCL(_i) (0x00320000 + ((_i) * 8)) /* _i=0...143 */ +#define I40E_GL_FCOEDWRCL_MAX_INDEX 143 +#define I40E_GL_FCOEDWRCL_FCOEDWRCL_SHIFT 0 +#define I40E_GL_FCOEDWRCL_FCOEDWRCL_MASK (0xFFFFFFFF << I40E_GL_FCOEDWRCL_FCOEDWRCL_SHIFT) +#define I40E_GL_FCOEDWTCH(_i) (0x00348084 + ((_i) * 8)) /* _i=0...143 */ +#define I40E_GL_FCOEDWTCH_MAX_INDEX 143 +#define I40E_GL_FCOEDWTCH_FCOEDWTCH_SHIFT 0 +#define I40E_GL_FCOEDWTCH_FCOEDWTCH_MASK (0xFFFF << I40E_GL_FCOEDWTCH_FCOEDWTCH_SHIFT) +#define I40E_GL_FCOEDWTCL(_i) (0x00348080 + ((_i) * 8)) /* _i=0...143 */ +#define I40E_GL_FCOEDWTCL_MAX_INDEX 143 +#define I40E_GL_FCOEDWTCL_FCOEDWTCL_SHIFT 0 +#define I40E_GL_FCOEDWTCL_FCOEDWTCL_MASK (0xFFFFFFFF << I40E_GL_FCOEDWTCL_FCOEDWTCL_SHIFT) +#define I40E_GL_FCOELAST(_i) (0x00314000 + ((_i) * 8)) /* _i=0...143 */ +#define I40E_GL_FCOELAST_MAX_INDEX 143 +#define I40E_GL_FCOELAST_FCOELAST_SHIFT 0 +#define I40E_GL_FCOELAST_FCOELAST_MASK (0xFFFFFFFF << I40E_GL_FCOELAST_FCOELAST_SHIFT) +#define I40E_GL_FCOEPRC(_i) (0x00315200 + ((_i) * 8)) /* _i=0...143 */ +#define I40E_GL_FCOEPRC_MAX_INDEX 143 +#define I40E_GL_FCOEPRC_FCOEPRC_SHIFT 0 +#define I40E_GL_FCOEPRC_FCOEPRC_MASK (0xFFFFFFFF << I40E_GL_FCOEPRC_FCOEPRC_SHIFT) +#define I40E_GL_FCOEPTC(_i) (0x00344C00 + ((_i) * 8)) /* _i=0...143 */ +#define I40E_GL_FCOEPTC_MAX_INDEX 143 +#define I40E_GL_FCOEPTC_FCOEPTC_SHIFT 0 +#define I40E_GL_FCOEPTC_FCOEPTC_MASK (0xFFFFFFFF << I40E_GL_FCOEPTC_FCOEPTC_SHIFT) +#define I40E_GL_FCOERPDC(_i) (0x00324000 + ((_i) * 8)) /* _i=0...143 */ +#define I40E_GL_FCOERPDC_MAX_INDEX 143 +#define I40E_GL_FCOERPDC_FCOERPDC_SHIFT 0 +#define I40E_GL_FCOERPDC_FCOERPDC_MASK (0xFFFFFFFF << I40E_GL_FCOERPDC_FCOERPDC_SHIFT) +#define I40E_GLPRT_BPRCH(_i) (0x003005E4 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_BPRCH_MAX_INDEX 3 +#define I40E_GLPRT_BPRCH_UPRCH_SHIFT 0 +#define I40E_GLPRT_BPRCH_UPRCH_MASK (0xFFFF << I40E_GLPRT_BPRCH_UPRCH_SHIFT) +#define I40E_GLPRT_BPRCL(_i) (0x003005E0 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_BPRCL_MAX_INDEX 3 +#define I40E_GLPRT_BPRCL_UPRCH_SHIFT 0 +#define I40E_GLPRT_BPRCL_UPRCH_MASK (0xFFFFFFFF << I40E_GLPRT_BPRCL_UPRCH_SHIFT) +#define I40E_GLPRT_BPTCH(_i) (0x00300A04 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_BPTCH_MAX_INDEX 3 +#define I40E_GLPRT_BPTCH_UPRCH_SHIFT 0 +#define I40E_GLPRT_BPTCH_UPRCH_MASK (0xFFFF << I40E_GLPRT_BPTCH_UPRCH_SHIFT) +#define I40E_GLPRT_BPTCL(_i) (0x00300A00 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_BPTCL_MAX_INDEX 3 +#define I40E_GLPRT_BPTCL_UPRCH_SHIFT 0 +#define I40E_GLPRT_BPTCL_UPRCH_MASK (0xFFFFFFFF << I40E_GLPRT_BPTCL_UPRCH_SHIFT) +#define I40E_GLPRT_CRCERRS(_i) (0x00300080 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_CRCERRS_MAX_INDEX 3 +#define I40E_GLPRT_CRCERRS_CRCERRS_SHIFT 0 +#define I40E_GLPRT_CRCERRS_CRCERRS_MASK (0xFFFFFFFF << I40E_GLPRT_CRCERRS_CRCERRS_SHIFT) +#define I40E_GLPRT_GORCH(_i) (0x00300004 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_GORCH_MAX_INDEX 3 +#define I40E_GLPRT_GORCH_GORCH_SHIFT 0 +#define I40E_GLPRT_GORCH_GORCH_MASK (0xFFFF << I40E_GLPRT_GORCH_GORCH_SHIFT) +#define I40E_GLPRT_GORCL(_i) (0x00300000 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_GORCL_MAX_INDEX 3 +#define I40E_GLPRT_GORCL_GORCL_SHIFT 0 +#define I40E_GLPRT_GORCL_GORCL_MASK (0xFFFFFFFF << I40E_GLPRT_GORCL_GORCL_SHIFT) +#define I40E_GLPRT_GOTCH(_i) (0x00300684 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_GOTCH_MAX_INDEX 3 +#define I40E_GLPRT_GOTCH_GOTCH_SHIFT 0 +#define I40E_GLPRT_GOTCH_GOTCH_MASK (0xFFFF << I40E_GLPRT_GOTCH_GOTCH_SHIFT) +#define I40E_GLPRT_GOTCL(_i) (0x00300680 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_GOTCL_MAX_INDEX 3 +#define I40E_GLPRT_GOTCL_GOTCL_SHIFT 0 +#define I40E_GLPRT_GOTCL_GOTCL_MASK (0xFFFFFFFF << I40E_GLPRT_GOTCL_GOTCL_SHIFT) +#define I40E_GLPRT_ILLERRC(_i) (0x003000E0 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_ILLERRC_MAX_INDEX 3 +#define I40E_GLPRT_ILLERRC_ILLERRC_SHIFT 0 +#define I40E_GLPRT_ILLERRC_ILLERRC_MASK (0xFFFFFFFF << I40E_GLPRT_ILLERRC_ILLERRC_SHIFT) +#define I40E_GLPRT_LDPC(_i) (0x00300620 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_LDPC_MAX_INDEX 3 +#define I40E_GLPRT_LDPC_LDPC_SHIFT 0 +#define I40E_GLPRT_LDPC_LDPC_MASK (0xFFFFFFFF << I40E_GLPRT_LDPC_LDPC_SHIFT) +#define I40E_GLPRT_LXOFFRXC(_i) (0x00300160 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_LXOFFRXC_MAX_INDEX 3 +#define I40E_GLPRT_LXOFFRXC_LXOFFRXCNT_SHIFT 0 +#define I40E_GLPRT_LXOFFRXC_LXOFFRXCNT_MASK (0xFFFFFFFF << I40E_GLPRT_LXOFFRXC_LXOFFRXCNT_SHIFT) +#define I40E_GLPRT_LXOFFTXC(_i) (0x003009A0 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_LXOFFTXC_MAX_INDEX 3 +#define I40E_GLPRT_LXOFFTXC_LXOFFTXC_SHIFT 0 +#define I40E_GLPRT_LXOFFTXC_LXOFFTXC_MASK (0xFFFFFFFF << I40E_GLPRT_LXOFFTXC_LXOFFTXC_SHIFT) +#define I40E_GLPRT_LXONRXC(_i) (0x00300140 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_LXONRXC_MAX_INDEX 3 +#define I40E_GLPRT_LXONRXC_LXONRXCNT_SHIFT 0 +#define I40E_GLPRT_LXONRXC_LXONRXCNT_MASK (0xFFFFFFFF << I40E_GLPRT_LXONRXC_LXONRXCNT_SHIFT) +#define I40E_GLPRT_LXONTXC(_i) (0x00300980 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_LXONTXC_MAX_INDEX 3 +#define I40E_GLPRT_LXONTXC_LXONTXC_SHIFT 0 +#define I40E_GLPRT_LXONTXC_LXONTXC_MASK (0xFFFFFFFF << I40E_GLPRT_LXONTXC_LXONTXC_SHIFT) +#define I40E_GLPRT_MLFC(_i) (0x00300020 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_MLFC_MAX_INDEX 3 +#define I40E_GLPRT_MLFC_MLFC_SHIFT 0 +#define I40E_GLPRT_MLFC_MLFC_MASK (0xFFFFFFFF << I40E_GLPRT_MLFC_MLFC_SHIFT) +#define I40E_GLPRT_MPRCH(_i) (0x003005C4 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_MPRCH_MAX_INDEX 3 +#define I40E_GLPRT_MPRCH_MPRCH_SHIFT 0 +#define I40E_GLPRT_MPRCH_MPRCH_MASK (0xFFFF << I40E_GLPRT_MPRCH_MPRCH_SHIFT) +#define I40E_GLPRT_MPRCL(_i) (0x003005C0 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_MPRCL_MAX_INDEX 3 +#define I40E_GLPRT_MPRCL_MPRCL_SHIFT 0 +#define I40E_GLPRT_MPRCL_MPRCL_MASK (0xFFFFFFFF << I40E_GLPRT_MPRCL_MPRCL_SHIFT) +#define I40E_GLPRT_MPTCH(_i) (0x003009E4 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_MPTCH_MAX_INDEX 3 +#define I40E_GLPRT_MPTCH_MPTCH_SHIFT 0 +#define I40E_GLPRT_MPTCH_MPTCH_MASK (0xFFFF << I40E_GLPRT_MPTCH_MPTCH_SHIFT) +#define I40E_GLPRT_MPTCL(_i) (0x003009E0 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_MPTCL_MAX_INDEX 3 +#define I40E_GLPRT_MPTCL_MPTCL_SHIFT 0 +#define I40E_GLPRT_MPTCL_MPTCL_MASK (0xFFFFFFFF << I40E_GLPRT_MPTCL_MPTCL_SHIFT) +#define I40E_GLPRT_MRFC(_i) (0x00300040 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_MRFC_MAX_INDEX 3 +#define I40E_GLPRT_MRFC_MRFC_SHIFT 0 +#define I40E_GLPRT_MRFC_MRFC_MASK (0xFFFFFFFF << I40E_GLPRT_MRFC_MRFC_SHIFT) +#define I40E_GLPRT_PRC1023H(_i) (0x00300504 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PRC1023H_MAX_INDEX 3 +#define I40E_GLPRT_PRC1023H_PRC1023H_SHIFT 0 +#define I40E_GLPRT_PRC1023H_PRC1023H_MASK (0xFFFF << I40E_GLPRT_PRC1023H_PRC1023H_SHIFT) +#define I40E_GLPRT_PRC1023L(_i) (0x00300500 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PRC1023L_MAX_INDEX 3 +#define I40E_GLPRT_PRC1023L_PRC1023L_SHIFT 0 +#define I40E_GLPRT_PRC1023L_PRC1023L_MASK (0xFFFFFFFF << I40E_GLPRT_PRC1023L_PRC1023L_SHIFT) +#define I40E_GLPRT_PRC127H(_i) (0x003004A4 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PRC127H_MAX_INDEX 3 +#define I40E_GLPRT_PRC127H_PRC127H_SHIFT 0 +#define I40E_GLPRT_PRC127H_PRC127H_MASK (0xFFFF << I40E_GLPRT_PRC127H_PRC127H_SHIFT) +#define I40E_GLPRT_PRC127L(_i) (0x003004A0 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PRC127L_MAX_INDEX 3 +#define I40E_GLPRT_PRC127L_PRC127L_SHIFT 0 +#define I40E_GLPRT_PRC127L_PRC127L_MASK (0xFFFFFFFF << I40E_GLPRT_PRC127L_PRC127L_SHIFT) +#define I40E_GLPRT_PRC1522H(_i) (0x00300524 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PRC1522H_MAX_INDEX 3 +#define I40E_GLPRT_PRC1522H_PRC1522H_SHIFT 0 +#define I40E_GLPRT_PRC1522H_PRC1522H_MASK (0xFFFF << I40E_GLPRT_PRC1522H_PRC1522H_SHIFT) +#define I40E_GLPRT_PRC1522L(_i) (0x00300520 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PRC1522L_MAX_INDEX 3 +#define I40E_GLPRT_PRC1522L_PRC1522L_SHIFT 0 +#define I40E_GLPRT_PRC1522L_PRC1522L_MASK (0xFFFFFFFF << I40E_GLPRT_PRC1522L_PRC1522L_SHIFT) +#define I40E_GLPRT_PRC255H(_i) (0x003004C4 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PRC255H_MAX_INDEX 3 +#define I40E_GLPRT_PRC255H_PRTPRC255H_SHIFT 0 +#define I40E_GLPRT_PRC255H_PRTPRC255H_MASK (0xFFFF << I40E_GLPRT_PRC255H_PRTPRC255H_SHIFT) +#define I40E_GLPRT_PRC255L(_i) (0x003004C0 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PRC255L_MAX_INDEX 3 +#define I40E_GLPRT_PRC255L_PRC255L_SHIFT 0 +#define I40E_GLPRT_PRC255L_PRC255L_MASK (0xFFFFFFFF << I40E_GLPRT_PRC255L_PRC255L_SHIFT) +#define I40E_GLPRT_PRC511H(_i) (0x003004E4 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PRC511H_MAX_INDEX 3 +#define I40E_GLPRT_PRC511H_PRC511H_SHIFT 0 +#define I40E_GLPRT_PRC511H_PRC511H_MASK (0xFFFF << I40E_GLPRT_PRC511H_PRC511H_SHIFT) +#define I40E_GLPRT_PRC511L(_i) (0x003004E0 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PRC511L_MAX_INDEX 3 +#define I40E_GLPRT_PRC511L_PRC511L_SHIFT 0 +#define I40E_GLPRT_PRC511L_PRC511L_MASK (0xFFFFFFFF << I40E_GLPRT_PRC511L_PRC511L_SHIFT) +#define I40E_GLPRT_PRC64H(_i) (0x00300484 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PRC64H_MAX_INDEX 3 +#define I40E_GLPRT_PRC64H_PRC64H_SHIFT 0 +#define I40E_GLPRT_PRC64H_PRC64H_MASK (0xFFFF << I40E_GLPRT_PRC64H_PRC64H_SHIFT) +#define I40E_GLPRT_PRC64L(_i) (0x00300480 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PRC64L_MAX_INDEX 3 +#define I40E_GLPRT_PRC64L_PRC64L_SHIFT 0 +#define I40E_GLPRT_PRC64L_PRC64L_MASK (0xFFFFFFFF << I40E_GLPRT_PRC64L_PRC64L_SHIFT) +#define I40E_GLPRT_PRC9522H(_i) (0x00300544 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PRC9522H_MAX_INDEX 3 +#define I40E_GLPRT_PRC9522H_PRC1522H_SHIFT 0 +#define I40E_GLPRT_PRC9522H_PRC1522H_MASK (0xFFFF << I40E_GLPRT_PRC9522H_PRC1522H_SHIFT) +#define I40E_GLPRT_PRC9522L(_i) (0x00300540 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PRC9522L_MAX_INDEX 3 +#define I40E_GLPRT_PRC9522L_PRC1522L_SHIFT 0 +#define I40E_GLPRT_PRC9522L_PRC1522L_MASK (0xFFFFFFFF << I40E_GLPRT_PRC9522L_PRC1522L_SHIFT) +#define I40E_GLPRT_PTC1023H(_i) (0x00300724 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PTC1023H_MAX_INDEX 3 +#define I40E_GLPRT_PTC1023H_PTC1023H_SHIFT 0 +#define I40E_GLPRT_PTC1023H_PTC1023H_MASK (0xFFFF << I40E_GLPRT_PTC1023H_PTC1023H_SHIFT) +#define I40E_GLPRT_PTC1023L(_i) (0x00300720 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PTC1023L_MAX_INDEX 3 +#define I40E_GLPRT_PTC1023L_PTC1023L_SHIFT 0 +#define I40E_GLPRT_PTC1023L_PTC1023L_MASK (0xFFFFFFFF << I40E_GLPRT_PTC1023L_PTC1023L_SHIFT) +#define I40E_GLPRT_PTC127H(_i) (0x003006C4 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PTC127H_MAX_INDEX 3 +#define I40E_GLPRT_PTC127H_PTC127H_SHIFT 0 +#define I40E_GLPRT_PTC127H_PTC127H_MASK (0xFFFF << I40E_GLPRT_PTC127H_PTC127H_SHIFT) +#define I40E_GLPRT_PTC127L(_i) (0x003006C0 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PTC127L_MAX_INDEX 3 +#define I40E_GLPRT_PTC127L_PTC127L_SHIFT 0 +#define I40E_GLPRT_PTC127L_PTC127L_MASK (0xFFFFFFFF << I40E_GLPRT_PTC127L_PTC127L_SHIFT) +#define I40E_GLPRT_PTC1522H(_i) (0x00300744 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PTC1522H_MAX_INDEX 3 +#define I40E_GLPRT_PTC1522H_PTC1522H_SHIFT 0 +#define I40E_GLPRT_PTC1522H_PTC1522H_MASK (0xFFFF << I40E_GLPRT_PTC1522H_PTC1522H_SHIFT) +#define I40E_GLPRT_PTC1522L(_i) (0x00300740 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PTC1522L_MAX_INDEX 3 +#define I40E_GLPRT_PTC1522L_PTC1522L_SHIFT 0 +#define I40E_GLPRT_PTC1522L_PTC1522L_MASK (0xFFFFFFFF << I40E_GLPRT_PTC1522L_PTC1522L_SHIFT) +#define I40E_GLPRT_PTC255H(_i) (0x003006E4 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PTC255H_MAX_INDEX 3 +#define I40E_GLPRT_PTC255H_PTC255H_SHIFT 0 +#define I40E_GLPRT_PTC255H_PTC255H_MASK (0xFFFF << I40E_GLPRT_PTC255H_PTC255H_SHIFT) +#define I40E_GLPRT_PTC255L(_i) (0x003006E0 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PTC255L_MAX_INDEX 3 +#define I40E_GLPRT_PTC255L_PTC255L_SHIFT 0 +#define I40E_GLPRT_PTC255L_PTC255L_MASK (0xFFFFFFFF << I40E_GLPRT_PTC255L_PTC255L_SHIFT) +#define I40E_GLPRT_PTC511H(_i) (0x00300704 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PTC511H_MAX_INDEX 3 +#define I40E_GLPRT_PTC511H_PTC511H_SHIFT 0 +#define I40E_GLPRT_PTC511H_PTC511H_MASK (0xFFFF << I40E_GLPRT_PTC511H_PTC511H_SHIFT) +#define I40E_GLPRT_PTC511L(_i) (0x00300700 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PTC511L_MAX_INDEX 3 +#define I40E_GLPRT_PTC511L_PTC511L_SHIFT 0 +#define I40E_GLPRT_PTC511L_PTC511L_MASK (0xFFFFFFFF << I40E_GLPRT_PTC511L_PTC511L_SHIFT) +#define I40E_GLPRT_PTC64H(_i) (0x003006A4 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PTC64H_MAX_INDEX 3 +#define I40E_GLPRT_PTC64H_PTC64H_SHIFT 0 +#define I40E_GLPRT_PTC64H_PTC64H_MASK (0xFFFF << I40E_GLPRT_PTC64H_PTC64H_SHIFT) +#define I40E_GLPRT_PTC64L(_i) (0x003006A0 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PTC64L_MAX_INDEX 3 +#define I40E_GLPRT_PTC64L_PTC64L_SHIFT 0 +#define I40E_GLPRT_PTC64L_PTC64L_MASK (0xFFFFFFFF << I40E_GLPRT_PTC64L_PTC64L_SHIFT) +#define I40E_GLPRT_PTC9522H(_i) (0x00300764 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PTC9522H_MAX_INDEX 3 +#define I40E_GLPRT_PTC9522H_PTC9522H_SHIFT 0 +#define I40E_GLPRT_PTC9522H_PTC9522H_MASK (0xFFFF << I40E_GLPRT_PTC9522H_PTC9522H_SHIFT) +#define I40E_GLPRT_PTC9522L(_i) (0x00300760 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_PTC9522L_MAX_INDEX 3 +#define I40E_GLPRT_PTC9522L_PTC9522L_SHIFT 0 +#define I40E_GLPRT_PTC9522L_PTC9522L_MASK (0xFFFFFFFF << I40E_GLPRT_PTC9522L_PTC9522L_SHIFT) +#define I40E_GLPRT_PXOFFRXC(_i, _j) (0x00300280 + ((_i) * 8 + (_j) * 32)) +#define I40E_GLPRT_PXOFFRXC_MAX_INDEX 3 +#define I40E_GLPRT_PXOFFRXC_PRPXOFFRXCNT_SHIFT 0 +#define I40E_GLPRT_PXOFFRXC_PRPXOFFRXCNT_MASK (0xFFFFFFFF << I40E_GLPRT_PXOFFRXC_PRPXOFFRXCNT_SHIFT) +#define I40E_GLPRT_PXOFFTXC(_i, _j) (0x00300880 + ((_i) * 8 + (_j) * 32)) +#define I40E_GLPRT_PXOFFTXC_MAX_INDEX 3 +#define I40E_GLPRT_PXOFFTXC_PRPXOFFTXCNT_SHIFT 0 +#define I40E_GLPRT_PXOFFTXC_PRPXOFFTXCNT_MASK (0xFFFFFFFF << I40E_GLPRT_PXOFFTXC_PRPXOFFTXCNT_SHIFT) +#define I40E_GLPRT_PXONRXC(_i, _j) (0x00300180 + ((_i) * 8 + (_j) * 32)) +#define I40E_GLPRT_PXONRXC_MAX_INDEX 3 +#define I40E_GLPRT_PXONRXC_PRPXONRXCNT_SHIFT 0 +#define I40E_GLPRT_PXONRXC_PRPXONRXCNT_MASK (0xFFFFFFFF << I40E_GLPRT_PXONRXC_PRPXONRXCNT_SHIFT) +#define I40E_GLPRT_PXONTXC(_i, _j) (0x00300780 + ((_i) * 8 + (_j) * 32)) +#define I40E_GLPRT_PXONTXC_MAX_INDEX 3 +#define I40E_GLPRT_PXONTXC_PRPXONTXC_SHIFT 0 +#define I40E_GLPRT_PXONTXC_PRPXONTXC_MASK (0xFFFFFFFF << I40E_GLPRT_PXONTXC_PRPXONTXC_SHIFT) +#define I40E_GLPRT_RDPC(_i) (0x00300600 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_RDPC_MAX_INDEX 3 +#define I40E_GLPRT_RDPC_RDPC_SHIFT 0 +#define I40E_GLPRT_RDPC_RDPC_MASK (0xFFFFFFFF << I40E_GLPRT_RDPC_RDPC_SHIFT) +#define I40E_GLPRT_RFC(_i) (0x00300560 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_RFC_MAX_INDEX 3 +#define I40E_GLPRT_RFC_RFC_SHIFT 0 +#define I40E_GLPRT_RFC_RFC_MASK (0xFFFFFFFF << I40E_GLPRT_RFC_RFC_SHIFT) +#define I40E_GLPRT_RJC(_i) (0x00300580 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_RJC_MAX_INDEX 3 +#define I40E_GLPRT_RJC_RJC_SHIFT 0 +#define I40E_GLPRT_RJC_RJC_MASK (0xFFFFFFFF << I40E_GLPRT_RJC_RJC_SHIFT) +#define I40E_GLPRT_RLEC(_i) (0x003000A0 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_RLEC_MAX_INDEX 3 +#define I40E_GLPRT_RLEC_RLEC_SHIFT 0 +#define I40E_GLPRT_RLEC_RLEC_MASK (0xFFFFFFFF << I40E_GLPRT_RLEC_RLEC_SHIFT) +#define I40E_GLPRT_ROC(_i) (0x00300120 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_ROC_MAX_INDEX 3 +#define I40E_GLPRT_ROC_ROC_SHIFT 0 +#define I40E_GLPRT_ROC_ROC_MASK (0xFFFFFFFF << I40E_GLPRT_ROC_ROC_SHIFT) +#define I40E_GLPRT_RUC(_i) (0x00300100 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_RUC_MAX_INDEX 3 +#define I40E_GLPRT_RUC_RUC_SHIFT 0 +#define I40E_GLPRT_RUC_RUC_MASK (0xFFFFFFFF << I40E_GLPRT_RUC_RUC_SHIFT) +#define I40E_GLPRT_RUPP(_i) (0x00300660 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_RUPP_MAX_INDEX 3 +#define I40E_GLPRT_RUPP_RUPP_SHIFT 0 +#define I40E_GLPRT_RUPP_RUPP_MASK (0xFFFFFFFF << I40E_GLPRT_RUPP_RUPP_SHIFT) +#define I40E_GLPRT_RXON2OFFCNT(_i, _j) (0x00300380 + ((_i) * 8 + (_j) * 32)) +#define I40E_GLPRT_RXON2OFFCNT_MAX_INDEX 3 +#define I40E_GLPRT_RXON2OFFCNT_PRRXON2OFFCNT_SHIFT 0 +#define I40E_GLPRT_RXON2OFFCNT_PRRXON2OFFCNT_MASK (0xFFFFFFFF << I40E_GLPRT_RXON2OFFCNT_PRRXON2OFFCNT_SHIFT) +#define I40E_GLPRT_STDC(_i) (0x00300640 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_STDC_MAX_INDEX 3 +#define I40E_GLPRT_STDC_STDC_SHIFT 0 +#define I40E_GLPRT_STDC_STDC_MASK (0xFFFFFFFF << I40E_GLPRT_STDC_STDC_SHIFT) +#define I40E_GLPRT_TDOLD(_i) (0x00300A20 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_TDOLD_MAX_INDEX 3 +#define I40E_GLPRT_TDOLD_GLPRT_TDOLD_SHIFT 0 +#define I40E_GLPRT_TDOLD_GLPRT_TDOLD_MASK (0xFFFFFFFF << I40E_GLPRT_TDOLD_GLPRT_TDOLD_SHIFT) +#define I40E_GLPRT_TDPC(_i) (0x00375400 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_TDPC_MAX_INDEX 3 +#define I40E_GLPRT_TDPC_TDPC_SHIFT 0 +#define I40E_GLPRT_TDPC_TDPC_MASK (0xFFFFFFFF << I40E_GLPRT_TDPC_TDPC_SHIFT) +#define I40E_GLPRT_UPRCH(_i) (0x003005A4 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_UPRCH_MAX_INDEX 3 +#define I40E_GLPRT_UPRCH_UPRCH_SHIFT 0 +#define I40E_GLPRT_UPRCH_UPRCH_MASK (0xFFFF << I40E_GLPRT_UPRCH_UPRCH_SHIFT) +#define I40E_GLPRT_UPRCL(_i) (0x003005A0 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_UPRCL_MAX_INDEX 3 +#define I40E_GLPRT_UPRCL_UPRCL_SHIFT 0 +#define I40E_GLPRT_UPRCL_UPRCL_MASK (0xFFFFFFFF << I40E_GLPRT_UPRCL_UPRCL_SHIFT) +#define I40E_GLPRT_UPTCH(_i) (0x003009C4 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_UPTCH_MAX_INDEX 3 +#define I40E_GLPRT_UPTCH_UPTCH_SHIFT 0 +#define I40E_GLPRT_UPTCH_UPTCH_MASK (0xFFFF << I40E_GLPRT_UPTCH_UPTCH_SHIFT) +#define I40E_GLPRT_UPTCL(_i) (0x003009C0 + ((_i) * 8)) /* _i=0...3 */ +#define I40E_GLPRT_UPTCL_MAX_INDEX 3 +#define I40E_GLPRT_UPTCL_VUPTCH_SHIFT 0 +#define I40E_GLPRT_UPTCL_VUPTCH_MASK (0xFFFFFFFF << I40E_GLPRT_UPTCL_VUPTCH_SHIFT) +#define I40E_GLSW_BPRCH(_i) (0x00370104 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLSW_BPRCH_MAX_INDEX 15 +#define I40E_GLSW_BPRCH_BPRCH_SHIFT 0 +#define I40E_GLSW_BPRCH_BPRCH_MASK (0xFFFF << I40E_GLSW_BPRCH_BPRCH_SHIFT) +#define I40E_GLSW_BPRCL(_i) (0x00370100 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLSW_BPRCL_MAX_INDEX 15 +#define I40E_GLSW_BPRCL_BPRCL_SHIFT 0 +#define I40E_GLSW_BPRCL_BPRCL_MASK (0xFFFFFFFF << I40E_GLSW_BPRCL_BPRCL_SHIFT) +#define I40E_GLSW_BPTCH(_i) (0x00340104 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLSW_BPTCH_MAX_INDEX 15 +#define I40E_GLSW_BPTCH_BPTCH_SHIFT 0 +#define I40E_GLSW_BPTCH_BPTCH_MASK (0xFFFF << I40E_GLSW_BPTCH_BPTCH_SHIFT) +#define I40E_GLSW_BPTCL(_i) (0x00340100 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLSW_BPTCL_MAX_INDEX 15 +#define I40E_GLSW_BPTCL_BPTCL_SHIFT 0 +#define I40E_GLSW_BPTCL_BPTCL_MASK (0xFFFFFFFF << I40E_GLSW_BPTCL_BPTCL_SHIFT) +#define I40E_GLSW_GORCH(_i) (0x0035C004 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLSW_GORCH_MAX_INDEX 15 +#define I40E_GLSW_GORCH_GORCH_SHIFT 0 +#define I40E_GLSW_GORCH_GORCH_MASK (0xFFFF << I40E_GLSW_GORCH_GORCH_SHIFT) +#define I40E_GLSW_GORCL(_i) (0x0035c000 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLSW_GORCL_MAX_INDEX 15 +#define I40E_GLSW_GORCL_GORCL_SHIFT 0 +#define I40E_GLSW_GORCL_GORCL_MASK (0xFFFFFFFF << I40E_GLSW_GORCL_GORCL_SHIFT) +#define I40E_GLSW_GOTCH(_i) (0x0032C004 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLSW_GOTCH_MAX_INDEX 15 +#define I40E_GLSW_GOTCH_GOTCH_SHIFT 0 +#define I40E_GLSW_GOTCH_GOTCH_MASK (0xFFFF << I40E_GLSW_GOTCH_GOTCH_SHIFT) +#define I40E_GLSW_GOTCL(_i) (0x0032c000 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLSW_GOTCL_MAX_INDEX 15 +#define I40E_GLSW_GOTCL_GOTCL_SHIFT 0 +#define I40E_GLSW_GOTCL_GOTCL_MASK (0xFFFFFFFF << I40E_GLSW_GOTCL_GOTCL_SHIFT) +#define I40E_GLSW_MPRCH(_i) (0x00370084 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLSW_MPRCH_MAX_INDEX 15 +#define I40E_GLSW_MPRCH_MPRCH_SHIFT 0 +#define I40E_GLSW_MPRCH_MPRCH_MASK (0xFFFF << I40E_GLSW_MPRCH_MPRCH_SHIFT) +#define I40E_GLSW_MPRCL(_i) (0x00370080 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLSW_MPRCL_MAX_INDEX 15 +#define I40E_GLSW_MPRCL_MPRCL_SHIFT 0 +#define I40E_GLSW_MPRCL_MPRCL_MASK (0xFFFFFFFF << I40E_GLSW_MPRCL_MPRCL_SHIFT) +#define I40E_GLSW_MPTCH(_i) (0x00340084 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLSW_MPTCH_MAX_INDEX 15 +#define I40E_GLSW_MPTCH_MPTCH_SHIFT 0 +#define I40E_GLSW_MPTCH_MPTCH_MASK (0xFFFF << I40E_GLSW_MPTCH_MPTCH_SHIFT) +#define I40E_GLSW_MPTCL(_i) (0x00340080 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLSW_MPTCL_MAX_INDEX 15 +#define I40E_GLSW_MPTCL_MPTCL_SHIFT 0 +#define I40E_GLSW_MPTCL_MPTCL_MASK (0xFFFFFFFF << I40E_GLSW_MPTCL_MPTCL_SHIFT) +#define I40E_GLSW_RUPP(_i) (0x00370180 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLSW_RUPP_MAX_INDEX 15 +#define I40E_GLSW_RUPP_RUPP_SHIFT 0 +#define I40E_GLSW_RUPP_RUPP_MASK (0xFFFFFFFF << I40E_GLSW_RUPP_RUPP_SHIFT) +#define I40E_GLSW_TDPC(_i) (0x00348000 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLSW_TDPC_MAX_INDEX 15 +#define I40E_GLSW_TDPC_TDPC_SHIFT 0 +#define I40E_GLSW_TDPC_TDPC_MASK (0xFFFFFFFF << I40E_GLSW_TDPC_TDPC_SHIFT) +#define I40E_GLSW_UPRCH(_i) (0x00370004 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLSW_UPRCH_MAX_INDEX 15 +#define I40E_GLSW_UPRCH_UPRCH_SHIFT 0 +#define I40E_GLSW_UPRCH_UPRCH_MASK (0xFFFF << I40E_GLSW_UPRCH_UPRCH_SHIFT) +#define I40E_GLSW_UPRCL(_i) (0x00370000 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLSW_UPRCL_MAX_INDEX 15 +#define I40E_GLSW_UPRCL_UPRCL_SHIFT 0 +#define I40E_GLSW_UPRCL_UPRCL_MASK (0xFFFFFFFF << I40E_GLSW_UPRCL_UPRCL_SHIFT) +#define I40E_GLSW_UPTCH(_i) (0x00340004 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLSW_UPTCH_MAX_INDEX 15 +#define I40E_GLSW_UPTCH_UPTCH_SHIFT 0 +#define I40E_GLSW_UPTCH_UPTCH_MASK (0xFFFF << I40E_GLSW_UPTCH_UPTCH_SHIFT) +#define I40E_GLSW_UPTCL(_i) (0x00340000 + ((_i) * 8)) /* _i=0...15 */ +#define I40E_GLSW_UPTCL_MAX_INDEX 15 +#define I40E_GLSW_UPTCL_UPTCL_SHIFT 0 +#define I40E_GLSW_UPTCL_UPTCL_MASK (0xFFFFFFFF << I40E_GLSW_UPTCL_UPTCL_SHIFT) +#define I40E_GLV_BPRCH(_i) (0x0036D804 + ((_i) * 8)) /* _i=0...383 */ +#define I40E_GLV_BPRCH_MAX_INDEX 383 +#define I40E_GLV_BPRCH_BPRCH_SHIFT 0 +#define I40E_GLV_BPRCH_BPRCH_MASK (0xFFFF << I40E_GLV_BPRCH_BPRCH_SHIFT) +#define I40E_GLV_BPRCL(_i) (0x0036d800 + ((_i) * 8)) /* _i=0...383 */ +#define I40E_GLV_BPRCL_MAX_INDEX 383 +#define I40E_GLV_BPRCL_BPRCL_SHIFT 0 +#define I40E_GLV_BPRCL_BPRCL_MASK (0xFFFFFFFF << I40E_GLV_BPRCL_BPRCL_SHIFT) +#define I40E_GLV_BPTCH(_i) (0x0033D804 + ((_i) * 8)) /* _i=0...383 */ +#define I40E_GLV_BPTCH_MAX_INDEX 383 +#define I40E_GLV_BPTCH_BPTCH_SHIFT 0 +#define I40E_GLV_BPTCH_BPTCH_MASK (0xFFFF << I40E_GLV_BPTCH_BPTCH_SHIFT) +#define I40E_GLV_BPTCL(_i) (0x0033d800 + ((_i) * 8)) /* _i=0...383 */ +#define I40E_GLV_BPTCL_MAX_INDEX 383 +#define I40E_GLV_BPTCL_BPTCL_SHIFT 0 +#define I40E_GLV_BPTCL_BPTCL_MASK (0xFFFFFFFF << I40E_GLV_BPTCL_BPTCL_SHIFT) +#define I40E_GLV_GORCH(_i) (0x00358004 + ((_i) * 8)) /* _i=0...383 */ +#define I40E_GLV_GORCH_MAX_INDEX 383 +#define I40E_GLV_GORCH_GORCH_SHIFT 0 +#define I40E_GLV_GORCH_GORCH_MASK (0xFFFF << I40E_GLV_GORCH_GORCH_SHIFT) +#define I40E_GLV_GORCL(_i) (0x00358000 + ((_i) * 8)) /* _i=0...383 */ +#define I40E_GLV_GORCL_MAX_INDEX 383 +#define I40E_GLV_GORCL_GORCL_SHIFT 0 +#define I40E_GLV_GORCL_GORCL_MASK (0xFFFFFFFF << I40E_GLV_GORCL_GORCL_SHIFT) +#define I40E_GLV_GOTCH(_i) (0x00328004 + ((_i) * 8)) /* _i=0...383 */ +#define I40E_GLV_GOTCH_MAX_INDEX 383 +#define I40E_GLV_GOTCH_GOTCH_SHIFT 0 +#define I40E_GLV_GOTCH_GOTCH_MASK (0xFFFF << I40E_GLV_GOTCH_GOTCH_SHIFT) +#define I40E_GLV_GOTCL(_i) (0x00328000 + ((_i) * 8)) /* _i=0...383 */ +#define I40E_GLV_GOTCL_MAX_INDEX 383 +#define I40E_GLV_GOTCL_GOTCL_SHIFT 0 +#define I40E_GLV_GOTCL_GOTCL_MASK (0xFFFFFFFF << I40E_GLV_GOTCL_GOTCL_SHIFT) +#define I40E_GLV_MPRCH(_i) (0x0036CC04 + ((_i) * 8)) /* _i=0...383 */ +#define I40E_GLV_MPRCH_MAX_INDEX 383 +#define I40E_GLV_MPRCH_MPRCH_SHIFT 0 +#define I40E_GLV_MPRCH_MPRCH_MASK (0xFFFF << I40E_GLV_MPRCH_MPRCH_SHIFT) +#define I40E_GLV_MPRCL(_i) (0x0036cc00 + ((_i) * 8)) /* _i=0...383 */ +#define I40E_GLV_MPRCL_MAX_INDEX 383 +#define I40E_GLV_MPRCL_MPRCL_SHIFT 0 +#define I40E_GLV_MPRCL_MPRCL_MASK (0xFFFFFFFF << I40E_GLV_MPRCL_MPRCL_SHIFT) +#define I40E_GLV_MPTCH(_i) (0x0033CC04 + ((_i) * 8)) /* _i=0...383 */ +#define I40E_GLV_MPTCH_MAX_INDEX 383 +#define I40E_GLV_MPTCH_MPTCH_SHIFT 0 +#define I40E_GLV_MPTCH_MPTCH_MASK (0xFFFF << I40E_GLV_MPTCH_MPTCH_SHIFT) +#define I40E_GLV_MPTCL(_i) (0x0033cc00 + ((_i) * 8)) /* _i=0...383 */ +#define I40E_GLV_MPTCL_MAX_INDEX 383 +#define I40E_GLV_MPTCL_MPTCL_SHIFT 0 +#define I40E_GLV_MPTCL_MPTCL_MASK (0xFFFFFFFF << I40E_GLV_MPTCL_MPTCL_SHIFT) +#define I40E_GLV_RDPC(_i) (0x00310000 + ((_i) * 8)) /* _i=0...383 */ +#define I40E_GLV_RDPC_MAX_INDEX 383 +#define I40E_GLV_RDPC_RDPC_SHIFT 0 +#define I40E_GLV_RDPC_RDPC_MASK (0xFFFFFFFF << I40E_GLV_RDPC_RDPC_SHIFT) +#define I40E_GLV_RUPP(_i) (0x0036E400 + ((_i) * 8)) /* _i=0...383 */ +#define I40E_GLV_RUPP_MAX_INDEX 383 +#define I40E_GLV_RUPP_RUPP_SHIFT 0 +#define I40E_GLV_RUPP_RUPP_MASK (0xFFFFFFFF << I40E_GLV_RUPP_RUPP_SHIFT) +#define I40E_GLV_TEPC(_VSI) (0x00344000 + ((_VSI) * 8)) /* _i=0...383 */ +#define I40E_GLV_TEPC_MAX_INDEX 383 +#define I40E_GLV_TEPC_TEPC_SHIFT 0 +#define I40E_GLV_TEPC_TEPC_MASK (0xFFFFFFFF << I40E_GLV_TEPC_TEPC_SHIFT) +#define I40E_GLV_UPRCH(_i) (0x0036C004 + ((_i) * 8)) /* _i=0...383 */ +#define I40E_GLV_UPRCH_MAX_INDEX 383 +#define I40E_GLV_UPRCH_UPRCH_SHIFT 0 +#define I40E_GLV_UPRCH_UPRCH_MASK (0xFFFF << I40E_GLV_UPRCH_UPRCH_SHIFT) +#define I40E_GLV_UPRCL(_i) (0x0036c000 + ((_i) * 8)) /* _i=0...383 */ +#define I40E_GLV_UPRCL_MAX_INDEX 383 +#define I40E_GLV_UPRCL_UPRCL_SHIFT 0 +#define I40E_GLV_UPRCL_UPRCL_MASK (0xFFFFFFFF << I40E_GLV_UPRCL_UPRCL_SHIFT) +#define I40E_GLV_UPTCH(_i) (0x0033C004 + ((_i) * 8)) /* _i=0...383 */ +#define I40E_GLV_UPTCH_MAX_INDEX 383 +#define I40E_GLV_UPTCH_GLVUPTCH_SHIFT 0 +#define I40E_GLV_UPTCH_GLVUPTCH_MASK (0xFFFF << I40E_GLV_UPTCH_GLVUPTCH_SHIFT) +#define I40E_GLV_UPTCL(_i) (0x0033c000 + ((_i) * 8)) /* _i=0...383 */ +#define I40E_GLV_UPTCL_MAX_INDEX 383 +#define I40E_GLV_UPTCL_UPTCL_SHIFT 0 +#define I40E_GLV_UPTCL_UPTCL_MASK (0xFFFFFFFF << I40E_GLV_UPTCL_UPTCL_SHIFT) +#define I40E_GLVEBTC_RBCH(_i, _j) (0x00364004 + ((_i) * 8 + (_j) * 64)) /* _i=0...7, _j=0...15 */ +#define I40E_GLVEBTC_RBCH_MAX_INDEX 7 +#define I40E_GLVEBTC_RBCH_TCBCH_SHIFT 0 +#define I40E_GLVEBTC_RBCH_TCBCH_MASK (0xFFFF << I40E_GLVEBTC_RBCH_TCBCH_SHIFT) +#define I40E_GLVEBTC_RBCL(_i, _j) (0x00364000 + ((_i) * 8 + (_j) * 64)) /* _i=0...7, _j=0...15 */ +#define I40E_GLVEBTC_RBCL_MAX_INDEX 7 +#define I40E_GLVEBTC_RBCL_TCBCL_SHIFT 0 +#define I40E_GLVEBTC_RBCL_TCBCL_MASK (0xFFFFFFFF << I40E_GLVEBTC_RBCL_TCBCL_SHIFT) +#define I40E_GLVEBTC_RPCH(_i, _j) (0x00368004 + ((_i) * 8 + (_j) * 64)) /* _i=0...7, _j=0...15 */ +#define I40E_GLVEBTC_RPCH_MAX_INDEX 7 +#define I40E_GLVEBTC_RPCH_TCPCH_SHIFT 0 +#define I40E_GLVEBTC_RPCH_TCPCH_MASK (0xFFFF << I40E_GLVEBTC_RPCH_TCPCH_SHIFT) +#define I40E_GLVEBTC_RPCL(_i, _j) (0x00368000 + ((_i) * 8 + (_j) * 64)) /* _i=0...7, _j=0...15 */ +#define I40E_GLVEBTC_RPCL_MAX_INDEX 7 +#define I40E_GLVEBTC_RPCL_TCPCL_SHIFT 0 +#define I40E_GLVEBTC_RPCL_TCPCL_MASK (0xFFFFFFFF << I40E_GLVEBTC_RPCL_TCPCL_SHIFT) +#define I40E_GLVEBTC_TBCH(_i, _j) (0x00334004 + ((_i) * 8 + (_j) * 64)) /* _i=0...7, _j=0...15 */ +#define I40E_GLVEBTC_TBCH_MAX_INDEX 7 +#define I40E_GLVEBTC_TBCH_TCBCH_SHIFT 0 +#define I40E_GLVEBTC_TBCH_TCBCH_MASK (0xFFFF << I40E_GLVEBTC_TBCH_TCBCH_SHIFT) +#define I40E_GLVEBTC_TBCL(_i, _j) (0x00334000 + ((_i) * 8 + (_j) * 64)) /* _i=0...7, _j=0...15 */ +#define I40E_GLVEBTC_TBCL_MAX_INDEX 7 +#define I40E_GLVEBTC_TBCL_TCBCL_SHIFT 0 +#define I40E_GLVEBTC_TBCL_TCBCL_MASK (0xFFFFFFFF << I40E_GLVEBTC_TBCL_TCBCL_SHIFT) +#define I40E_GLVEBTC_TPCH(_i, _j) (0x00338004 + ((_i) * 8 + (_j) * 64)) /* _i=0...7, _j=0...15 */ +#define I40E_GLVEBTC_TPCH_MAX_INDEX 7 +#define I40E_GLVEBTC_TPCH_TCPCH_SHIFT 0 +#define I40E_GLVEBTC_TPCH_TCPCH_MASK (0xFFFF << I40E_GLVEBTC_TPCH_TCPCH_SHIFT) +#define I40E_GLVEBTC_TPCL(_i, _j) (0x00338000 + ((_i) * 8 + (_j) * 64)) /* _i=0...7, _j=0...15 */ +#define I40E_GLVEBTC_TPCL_MAX_INDEX 7 +#define I40E_GLVEBTC_TPCL_TCPCL_SHIFT 0 +#define I40E_GLVEBTC_TPCL_TCPCL_MASK (0xFFFFFFFF << I40E_GLVEBTC_TPCL_TCPCL_SHIFT) +#define I40E_GLVEBVL_BPCH(_i) (0x00374804 + ((_i) * 8)) /* _i=0...127 */ +#define I40E_GLVEBVL_BPCH_MAX_INDEX 127 +#define I40E_GLVEBVL_BPCH_VLBPCH_SHIFT 0 +#define I40E_GLVEBVL_BPCH_VLBPCH_MASK (0xFFFF << I40E_GLVEBVL_BPCH_VLBPCH_SHIFT) +#define I40E_GLVEBVL_BPCL(_i) (0x00374800 + ((_i) * 8)) /* _i=0...127 */ +#define I40E_GLVEBVL_BPCL_MAX_INDEX 127 +#define I40E_GLVEBVL_BPCL_VLBPCL_SHIFT 0 +#define I40E_GLVEBVL_BPCL_VLBPCL_MASK (0xFFFFFFFF << I40E_GLVEBVL_BPCL_VLBPCL_SHIFT) +#define I40E_GLVEBVL_GORCH(_i) (0x00360004 + ((_i) * 8)) /* _i=0...127 */ +#define I40E_GLVEBVL_GORCH_MAX_INDEX 127 +#define I40E_GLVEBVL_GORCH_VLBCH_SHIFT 0 +#define I40E_GLVEBVL_GORCH_VLBCH_MASK (0xFFFF << I40E_GLVEBVL_GORCH_VLBCH_SHIFT) +#define I40E_GLVEBVL_GORCL(_i) (0x00360000 + ((_i) * 8)) /* _i=0...127 */ +#define I40E_GLVEBVL_GORCL_MAX_INDEX 127 +#define I40E_GLVEBVL_GORCL_VLBCL_SHIFT 0 +#define I40E_GLVEBVL_GORCL_VLBCL_MASK (0xFFFFFFFF << I40E_GLVEBVL_GORCL_VLBCL_SHIFT) +#define I40E_GLVEBVL_GOTCH(_i) (0x00330004 + ((_i) * 8)) /* _i=0...127 */ +#define I40E_GLVEBVL_GOTCH_MAX_INDEX 127 +#define I40E_GLVEBVL_GOTCH_VLBCH_SHIFT 0 +#define I40E_GLVEBVL_GOTCH_VLBCH_MASK (0xFFFF << I40E_GLVEBVL_GOTCH_VLBCH_SHIFT) +#define I40E_GLVEBVL_GOTCL(_i) (0x00330000 + ((_i) * 8)) /* _i=0...127 */ +#define I40E_GLVEBVL_GOTCL_MAX_INDEX 127 +#define I40E_GLVEBVL_GOTCL_VLBCL_SHIFT 0 +#define I40E_GLVEBVL_GOTCL_VLBCL_MASK (0xFFFFFFFF << I40E_GLVEBVL_GOTCL_VLBCL_SHIFT) +#define I40E_GLVEBVL_MPCH(_i) (0x00374404 + ((_i) * 8)) /* _i=0...127 */ +#define I40E_GLVEBVL_MPCH_MAX_INDEX 127 +#define I40E_GLVEBVL_MPCH_VLMPCH_SHIFT 0 +#define I40E_GLVEBVL_MPCH_VLMPCH_MASK (0xFFFF << I40E_GLVEBVL_MPCH_VLMPCH_SHIFT) +#define I40E_GLVEBVL_MPCL(_i) (0x00374400 + ((_i) * 8)) /* _i=0...127 */ +#define I40E_GLVEBVL_MPCL_MAX_INDEX 127 +#define I40E_GLVEBVL_MPCL_VLMPCL_SHIFT 0 +#define I40E_GLVEBVL_MPCL_VLMPCL_MASK (0xFFFFFFFF << I40E_GLVEBVL_MPCL_VLMPCL_SHIFT) +#define I40E_GLVEBVL_UPCH(_i) (0x00374004 + ((_i) * 8)) /* _i=0...127 */ +#define I40E_GLVEBVL_UPCH_MAX_INDEX 127 +#define I40E_GLVEBVL_UPCH_VLUPCH_SHIFT 0 +#define I40E_GLVEBVL_UPCH_VLUPCH_MASK (0xFFFF << I40E_GLVEBVL_UPCH_VLUPCH_SHIFT) +#define I40E_GLVEBVL_UPCL(_i) (0x00374000 + ((_i) * 8)) /* _i=0...127 */ +#define I40E_GLVEBVL_UPCL_MAX_INDEX 127 +#define I40E_GLVEBVL_UPCL_VLUPCL_SHIFT 0 +#define I40E_GLVEBVL_UPCL_VLUPCL_MASK (0xFFFFFFFF << I40E_GLVEBVL_UPCL_VLUPCL_SHIFT) +#define I40E_GL_MTG_FLU_MSK_H 0x00269F4C +#define I40E_GL_MTG_FLU_MSK_H_MASK_HIGH_SHIFT 0 +#define I40E_GL_MTG_FLU_MSK_H_MASK_HIGH_MASK (0xFFFF << I40E_GL_MTG_FLU_MSK_H_MASK_HIGH_SHIFT) +#define I40E_GL_MTG_FLU_MSK_L 0x00269F44 +#define I40E_GL_MTG_FLU_MSK_L_MASK_LOW_SHIFT 0 +#define I40E_GL_MTG_FLU_MSK_L_MASK_LOW_MASK (0xFFFFFFFF << I40E_GL_MTG_FLU_MSK_L_MASK_LOW_SHIFT) +#define I40E_GL_SWR_DEF_ACT(_i) (0x0026CF00 + ((_i) * 4)) /* _i=0...25 */ +#define I40E_GL_SWR_DEF_ACT_MAX_INDEX 25 +#define I40E_GL_SWR_DEF_ACT_DEF_ACTION_SHIFT 0 +#define I40E_GL_SWR_DEF_ACT_DEF_ACTION_MASK (0xFFFFFFFF << I40E_GL_SWR_DEF_ACT_DEF_ACTION_SHIFT) +#define I40E_GL_SWR_DEF_ACT_EN 0x0026CF84 +#define I40E_GL_SWR_DEF_ACT_EN_DEF_ACT_EN_BITMAP_SHIFT 0 +#define I40E_GL_SWR_DEF_ACT_EN_DEF_ACT_EN_BITMAP_MASK (0xFFFFFFFF << I40E_GL_SWR_DEF_ACT_EN_DEF_ACT_EN_BITMAP_SHIFT) +#define I40E_PRT_MSCCNT 0x00256BA0 +#define I40E_PRT_MSCCNT_CCOUNT_SHIFT 0 +#define I40E_PRT_MSCCNT_CCOUNT_MASK (0x1FFFFFF << I40E_PRT_MSCCNT_CCOUNT_SHIFT) +#define I40E_PRT_SCSTS 0x00256C20 +#define I40E_PRT_SCSTS_BSCA_SHIFT 0 +#define I40E_PRT_SCSTS_BSCA_MASK (0x1 << I40E_PRT_SCSTS_BSCA_SHIFT) +#define I40E_PRT_SCSTS_BSCAP_SHIFT 1 +#define I40E_PRT_SCSTS_BSCAP_MASK (0x1 << I40E_PRT_SCSTS_BSCAP_SHIFT) +#define I40E_PRT_SCSTS_MSCA_SHIFT 2 +#define I40E_PRT_SCSTS_MSCA_MASK (0x1 << I40E_PRT_SCSTS_MSCA_SHIFT) +#define I40E_PRT_SCSTS_MSCAP_SHIFT 3 +#define I40E_PRT_SCSTS_MSCAP_MASK (0x1 << I40E_PRT_SCSTS_MSCAP_SHIFT) +#define I40E_PRT_SWT_BSCCNT 0x00256C60 +#define I40E_PRT_SWT_BSCCNT_CCOUNT_SHIFT 0 +#define I40E_PRT_SWT_BSCCNT_CCOUNT_MASK (0x1FFFFFF << I40E_PRT_SWT_BSCCNT_CCOUNT_SHIFT) +#define I40E_PRTTSYN_ADJ 0x001E4280 +#define I40E_PRTTSYN_ADJ_TSYNADJ_SHIFT 0 +#define I40E_PRTTSYN_ADJ_TSYNADJ_MASK (0x7FFFFFFF << I40E_PRTTSYN_ADJ_TSYNADJ_SHIFT) +#define I40E_PRTTSYN_ADJ_SIGN_SHIFT 31 +#define I40E_PRTTSYN_ADJ_SIGN_MASK (0x1 << I40E_PRTTSYN_ADJ_SIGN_SHIFT) +#define I40E_PRTTSYN_AUX_0(_i) (0x001E42A0 + ((_i) * 32)) /* _i=0...1 */ +#define I40E_PRTTSYN_AUX_0_MAX_INDEX 1 +#define I40E_PRTTSYN_AUX_0_OUT_ENA_SHIFT 0 +#define I40E_PRTTSYN_AUX_0_OUT_ENA_MASK (0x1 << I40E_PRTTSYN_AUX_0_OUT_ENA_SHIFT) +#define I40E_PRTTSYN_AUX_0_OUTMOD_SHIFT 1 +#define I40E_PRTTSYN_AUX_0_OUTMOD_MASK (0x3 << I40E_PRTTSYN_AUX_0_OUTMOD_SHIFT) +#define I40E_PRTTSYN_AUX_0_OUTLVL_SHIFT 3 +#define I40E_PRTTSYN_AUX_0_OUTLVL_MASK (0x1 << I40E_PRTTSYN_AUX_0_OUTLVL_SHIFT) +#define I40E_PRTTSYN_AUX_0_PULSEW_SHIFT 8 +#define I40E_PRTTSYN_AUX_0_PULSEW_MASK (0xF << I40E_PRTTSYN_AUX_0_PULSEW_SHIFT) +#define I40E_PRTTSYN_AUX_0_EVNTLVL_SHIFT 16 +#define I40E_PRTTSYN_AUX_0_EVNTLVL_MASK (0x3 << I40E_PRTTSYN_AUX_0_EVNTLVL_SHIFT) +#define I40E_PRTTSYN_AUX_1(_i) (0x001E42E0 + ((_i) * 32)) /* _i=0...1 */ +#define I40E_PRTTSYN_AUX_1_MAX_INDEX 1 +#define I40E_PRTTSYN_AUX_1_INSTNT_SHIFT 0 +#define I40E_PRTTSYN_AUX_1_INSTNT_MASK (0x1 << I40E_PRTTSYN_AUX_1_INSTNT_SHIFT) +#define I40E_PRTTSYN_AUX_1_SAMPLE_TIME_SHIFT 1 +#define I40E_PRTTSYN_AUX_1_SAMPLE_TIME_MASK (0x1 << I40E_PRTTSYN_AUX_1_SAMPLE_TIME_SHIFT) +#define I40E_PRTTSYN_CLKO(_i) (0x001E4240 + ((_i) * 32)) /* _i=0...1 */ +#define I40E_PRTTSYN_CLKO_MAX_INDEX 1 +#define I40E_PRTTSYN_CLKO_TSYNCLKO_SHIFT 0 +#define I40E_PRTTSYN_CLKO_TSYNCLKO_MASK (0xFFFFFFFF << I40E_PRTTSYN_CLKO_TSYNCLKO_SHIFT) +#define I40E_PRTTSYN_CTL0 0x001E4200 +#define I40E_PRTTSYN_CTL0_CLEAR_TSYNTIMER_SHIFT 0 +#define I40E_PRTTSYN_CTL0_CLEAR_TSYNTIMER_MASK (0x1 << I40E_PRTTSYN_CTL0_CLEAR_TSYNTIMER_SHIFT) +#define I40E_PRTTSYN_CTL0_TXTIME_INT_ENA_SHIFT 1 +#define I40E_PRTTSYN_CTL0_TXTIME_INT_ENA_MASK (0x1 << I40E_PRTTSYN_CTL0_TXTIME_INT_ENA_SHIFT) +#define I40E_PRTTSYN_CTL0_EVENT_INT_ENA_SHIFT 2 +#define I40E_PRTTSYN_CTL0_EVENT_INT_ENA_MASK (0x1 << I40E_PRTTSYN_CTL0_EVENT_INT_ENA_SHIFT) +#define I40E_PRTTSYN_CTL0_TGT_INT_ENA_SHIFT 3 +#define I40E_PRTTSYN_CTL0_TGT_INT_ENA_MASK (0x1 << I40E_PRTTSYN_CTL0_TGT_INT_ENA_SHIFT) +#define I40E_PRTTSYN_CTL0_PF_ID_SHIFT 8 +#define I40E_PRTTSYN_CTL0_PF_ID_MASK (0xF << I40E_PRTTSYN_CTL0_PF_ID_SHIFT) +#define I40E_PRTTSYN_CTL0_TSYNACT_SHIFT 12 +#define I40E_PRTTSYN_CTL0_TSYNACT_MASK (0x3 << I40E_PRTTSYN_CTL0_TSYNACT_SHIFT) +#define I40E_PRTTSYN_CTL0_TSYNENA_SHIFT 31 +#define I40E_PRTTSYN_CTL0_TSYNENA_MASK (0x1 << I40E_PRTTSYN_CTL0_TSYNENA_SHIFT) +#define I40E_PRTTSYN_CTL1 0x00085020 +#define I40E_PRTTSYN_CTL1_V1MESSTYPE0_SHIFT 0 +#define I40E_PRTTSYN_CTL1_V1MESSTYPE0_MASK (0xFF << I40E_PRTTSYN_CTL1_V1MESSTYPE0_SHIFT) +#define I40E_PRTTSYN_CTL1_V1MESSTYPE1_SHIFT 8 +#define I40E_PRTTSYN_CTL1_V1MESSTYPE1_MASK (0xFF << I40E_PRTTSYN_CTL1_V1MESSTYPE1_SHIFT) +#define I40E_PRTTSYN_CTL1_V2MESSTYPE0_SHIFT 16 +#define I40E_PRTTSYN_CTL1_V2MESSTYPE0_MASK (0xF << I40E_PRTTSYN_CTL1_V2MESSTYPE0_SHIFT) +#define I40E_PRTTSYN_CTL1_V2MESSTYPE1_SHIFT 20 +#define I40E_PRTTSYN_CTL1_V2MESSTYPE1_MASK (0xF << I40E_PRTTSYN_CTL1_V2MESSTYPE1_SHIFT) +#define I40E_PRTTSYN_CTL1_TSYNTYPE_SHIFT 24 +#define I40E_PRTTSYN_CTL1_TSYNTYPE_MASK (0x3 << I40E_PRTTSYN_CTL1_TSYNTYPE_SHIFT) +#define I40E_PRTTSYN_CTL1_UDP_ENA_SHIFT 26 +#define I40E_PRTTSYN_CTL1_UDP_ENA_MASK (0x3 << I40E_PRTTSYN_CTL1_UDP_ENA_SHIFT) +#define I40E_PRTTSYN_CTL1_TSYNENA_SHIFT 31 +#define I40E_PRTTSYN_CTL1_TSYNENA_MASK (0x1 << I40E_PRTTSYN_CTL1_TSYNENA_SHIFT) +#define I40E_PRTTSYN_EVNT_H(_i) (0x001E40C0 + ((_i) * 32)) /* _i=0...1 */ +#define I40E_PRTTSYN_EVNT_H_MAX_INDEX 1 +#define I40E_PRTTSYN_EVNT_H_TSYNEVNT_H_SHIFT 0 +#define I40E_PRTTSYN_EVNT_H_TSYNEVNT_H_MASK (0xFFFFFFFF << I40E_PRTTSYN_EVNT_H_TSYNEVNT_H_SHIFT) +#define I40E_PRTTSYN_EVNT_L(_i) (0x001E4080 + ((_i) * 32)) /* _i=0...1 */ +#define I40E_PRTTSYN_EVNT_L_MAX_INDEX 1 +#define I40E_PRTTSYN_EVNT_L_TSYNEVNT_L_SHIFT 0 +#define I40E_PRTTSYN_EVNT_L_TSYNEVNT_L_MASK (0xFFFFFFFF << I40E_PRTTSYN_EVNT_L_TSYNEVNT_L_SHIFT) +#define I40E_PRTTSYN_INC_H 0x001E4060 +#define I40E_PRTTSYN_INC_H_TSYNINC_H_SHIFT 0 +#define I40E_PRTTSYN_INC_H_TSYNINC_H_MASK (0x3F << I40E_PRTTSYN_INC_H_TSYNINC_H_SHIFT) +#define I40E_PRTTSYN_INC_L 0x001E4040 +#define I40E_PRTTSYN_INC_L_TSYNINC_L_SHIFT 0 +#define I40E_PRTTSYN_INC_L_TSYNINC_L_MASK (0xFFFFFFFF << I40E_PRTTSYN_INC_L_TSYNINC_L_SHIFT) +#define I40E_PRTTSYN_RXTIME_H(_i) (0x00085040 + ((_i) * 32)) /* _i=0...3 */ +#define I40E_PRTTSYN_RXTIME_H_MAX_INDEX 3 +#define I40E_PRTTSYN_RXTIME_H_RXTIEM_H_SHIFT 0 +#define I40E_PRTTSYN_RXTIME_H_RXTIEM_H_MASK (0xFFFFFFFF << I40E_PRTTSYN_RXTIME_H_RXTIEM_H_SHIFT) +#define I40E_PRTTSYN_RXTIME_L(_i) (0x000850C0 + ((_i) * 32)) /* _i=0...3 */ +#define I40E_PRTTSYN_RXTIME_L_MAX_INDEX 3 +#define I40E_PRTTSYN_RXTIME_L_RXTIEM_L_SHIFT 0 +#define I40E_PRTTSYN_RXTIME_L_RXTIEM_L_MASK (0xFFFFFFFF << I40E_PRTTSYN_RXTIME_L_RXTIEM_L_SHIFT) +#define I40E_PRTTSYN_STAT_0 0x001E4220 +#define I40E_PRTTSYN_STAT_0_EVENT0_SHIFT 0 +#define I40E_PRTTSYN_STAT_0_EVENT0_MASK (0x1 << I40E_PRTTSYN_STAT_0_EVENT0_SHIFT) +#define I40E_PRTTSYN_STAT_0_EVENT1_SHIFT 1 +#define I40E_PRTTSYN_STAT_0_EVENT1_MASK (0x1 << I40E_PRTTSYN_STAT_0_EVENT1_SHIFT) +#define I40E_PRTTSYN_STAT_0_TGT0_SHIFT 2 +#define I40E_PRTTSYN_STAT_0_TGT0_MASK (0x1 << I40E_PRTTSYN_STAT_0_TGT0_SHIFT) +#define I40E_PRTTSYN_STAT_0_TGT1_SHIFT 3 +#define I40E_PRTTSYN_STAT_0_TGT1_MASK (0x1 << I40E_PRTTSYN_STAT_0_TGT1_SHIFT) +#define I40E_PRTTSYN_STAT_0_TXTIME_SHIFT 4 +#define I40E_PRTTSYN_STAT_0_TXTIME_MASK (0x1 << I40E_PRTTSYN_STAT_0_TXTIME_SHIFT) +#define I40E_PRTTSYN_STAT_1 0x00085140 +#define I40E_PRTTSYN_STAT_1_RXT0_SHIFT 0 +#define I40E_PRTTSYN_STAT_1_RXT0_MASK (0x1 << I40E_PRTTSYN_STAT_1_RXT0_SHIFT) +#define I40E_PRTTSYN_STAT_1_RXT1_SHIFT 1 +#define I40E_PRTTSYN_STAT_1_RXT1_MASK (0x1 << I40E_PRTTSYN_STAT_1_RXT1_SHIFT) +#define I40E_PRTTSYN_STAT_1_RXT2_SHIFT 2 +#define I40E_PRTTSYN_STAT_1_RXT2_MASK (0x1 << I40E_PRTTSYN_STAT_1_RXT2_SHIFT) +#define I40E_PRTTSYN_STAT_1_RXT3_SHIFT 3 +#define I40E_PRTTSYN_STAT_1_RXT3_MASK (0x1 << I40E_PRTTSYN_STAT_1_RXT3_SHIFT) +#define I40E_PRTTSYN_TGT_H(_i) (0x001E4180 + ((_i) * 32)) /* _i=0...1 */ +#define I40E_PRTTSYN_TGT_H_MAX_INDEX 1 +#define I40E_PRTTSYN_TGT_H_TSYNTGTT_H_SHIFT 0 +#define I40E_PRTTSYN_TGT_H_TSYNTGTT_H_MASK (0xFFFFFFFF << I40E_PRTTSYN_TGT_H_TSYNTGTT_H_SHIFT) +#define I40E_PRTTSYN_TGT_L(_i) (0x001E4140 + ((_i) * 32)) /* _i=0...1 */ +#define I40E_PRTTSYN_TGT_L_MAX_INDEX 1 +#define I40E_PRTTSYN_TGT_L_TSYNTGTT_L_SHIFT 0 +#define I40E_PRTTSYN_TGT_L_TSYNTGTT_L_MASK (0xFFFFFFFF << I40E_PRTTSYN_TGT_L_TSYNTGTT_L_SHIFT) +#define I40E_PRTTSYN_TIME_H 0x001E4120 +#define I40E_PRTTSYN_TIME_H_TSYNTIME_H_SHIFT 0 +#define I40E_PRTTSYN_TIME_H_TSYNTIME_H_MASK (0xFFFFFFFF << I40E_PRTTSYN_TIME_H_TSYNTIME_H_SHIFT) +#define I40E_PRTTSYN_TIME_L 0x001E4100 +#define I40E_PRTTSYN_TIME_L_TSYNTIME_L_SHIFT 0 +#define I40E_PRTTSYN_TIME_L_TSYNTIME_L_MASK (0xFFFFFFFF << I40E_PRTTSYN_TIME_L_TSYNTIME_L_SHIFT) +#define I40E_PRTTSYN_TXTIME_H 0x001E41E0 +#define I40E_PRTTSYN_TXTIME_H_TXTIEM_H_SHIFT 0 +#define I40E_PRTTSYN_TXTIME_H_TXTIEM_H_MASK (0xFFFFFFFF << I40E_PRTTSYN_TXTIME_H_TXTIEM_H_SHIFT) +#define I40E_PRTTSYN_TXTIME_L 0x001E41C0 +#define I40E_PRTTSYN_TXTIME_L_TXTIEM_L_SHIFT 0 +#define I40E_PRTTSYN_TXTIME_L_TXTIEM_L_MASK (0xFFFFFFFF << I40E_PRTTSYN_TXTIME_L_TXTIEM_L_SHIFT) +#define I40E_GLSCD_QUANTA 0x000B2080 +#define I40E_GLSCD_QUANTA_TSCDQUANTA_SHIFT 0 +#define I40E_GLSCD_QUANTA_TSCDQUANTA_MASK (0x7 << I40E_GLSCD_QUANTA_TSCDQUANTA_SHIFT) +#define I40E_GL_MDET_RX 0x0012A510 +#define I40E_GL_MDET_RX_FUNCTION_SHIFT 0 +#define I40E_GL_MDET_RX_FUNCTION_MASK (0xFF << I40E_GL_MDET_RX_FUNCTION_SHIFT) +#define I40E_GL_MDET_RX_EVENT_SHIFT 8 +#define I40E_GL_MDET_RX_EVENT_MASK (0x1FF << I40E_GL_MDET_RX_EVENT_SHIFT) +#define I40E_GL_MDET_RX_QUEUE_SHIFT 17 +#define I40E_GL_MDET_RX_QUEUE_MASK (0x3FFF << I40E_GL_MDET_RX_QUEUE_SHIFT) +#define I40E_GL_MDET_RX_VALID_SHIFT 31 +#define I40E_GL_MDET_RX_VALID_MASK (0x1 << I40E_GL_MDET_RX_VALID_SHIFT) +#define I40E_GL_MDET_TX 0x000E6480 +#define I40E_GL_MDET_TX_FUNCTION_SHIFT 0 +#define I40E_GL_MDET_TX_FUNCTION_MASK (0xFF << I40E_GL_MDET_TX_FUNCTION_SHIFT) +#define I40E_GL_MDET_TX_EVENT_SHIFT 8 +#define I40E_GL_MDET_TX_EVENT_MASK (0x1FF << I40E_GL_MDET_TX_EVENT_SHIFT) +#define I40E_GL_MDET_TX_QUEUE_SHIFT 17 +#define I40E_GL_MDET_TX_QUEUE_MASK (0x3FFF << I40E_GL_MDET_TX_QUEUE_SHIFT) +#define I40E_GL_MDET_TX_VALID_SHIFT 31 +#define I40E_GL_MDET_TX_VALID_MASK (0x1 << I40E_GL_MDET_TX_VALID_SHIFT) +#define I40E_PF_MDET_RX 0x0012A400 +#define I40E_PF_MDET_RX_VALID_SHIFT 0 +#define I40E_PF_MDET_RX_VALID_MASK (0x1 << I40E_PF_MDET_RX_VALID_SHIFT) +#define I40E_PF_MDET_TX 0x000E6400 +#define I40E_PF_MDET_TX_VALID_SHIFT 0 +#define I40E_PF_MDET_TX_VALID_MASK (0x1 << I40E_PF_MDET_TX_VALID_SHIFT) +#define I40E_PF_VT_PFALLOC 0x001C0500 +#define I40E_PF_VT_PFALLOC_FIRSTVF_SHIFT 0 +#define I40E_PF_VT_PFALLOC_FIRSTVF_MASK (0xFF << I40E_PF_VT_PFALLOC_FIRSTVF_SHIFT) +#define I40E_PF_VT_PFALLOC_LASTVF_SHIFT 8 +#define I40E_PF_VT_PFALLOC_LASTVF_MASK (0xFF << I40E_PF_VT_PFALLOC_LASTVF_SHIFT) +#define I40E_PF_VT_PFALLOC_VALID_SHIFT 31 +#define I40E_PF_VT_PFALLOC_VALID_MASK (0x1 << I40E_PF_VT_PFALLOC_VALID_SHIFT) +#define I40E_VP_MDET_RX(_VF) (0x0012A000 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VP_MDET_RX_MAX_INDEX 127 +#define I40E_VP_MDET_RX_VALID_SHIFT 0 +#define I40E_VP_MDET_RX_VALID_MASK (0x1 << I40E_VP_MDET_RX_VALID_SHIFT) +#define I40E_VP_MDET_TX(_VF) (0x000E6000 + ((_VF) * 4)) /* _i=0...127 */ +#define I40E_VP_MDET_TX_MAX_INDEX 127 +#define I40E_VP_MDET_TX_VALID_SHIFT 0 +#define I40E_VP_MDET_TX_VALID_MASK (0x1 << I40E_VP_MDET_TX_VALID_SHIFT) +#define I40E_GLPM_WUMC 0x0006C800 +#define I40E_GLPM_WUMC_NOTCO_SHIFT 0 +#define I40E_GLPM_WUMC_NOTCO_MASK (0x1 << I40E_GLPM_WUMC_NOTCO_SHIFT) +#define I40E_GLPM_WUMC_SRST_PIN_VAL_SHIFT 1 +#define I40E_GLPM_WUMC_SRST_PIN_VAL_MASK (0x1 << I40E_GLPM_WUMC_SRST_PIN_VAL_SHIFT) +#define I40E_GLPM_WUMC_ROL_MODE_SHIFT 2 +#define I40E_GLPM_WUMC_ROL_MODE_MASK (0x1 << I40E_GLPM_WUMC_ROL_MODE_SHIFT) +#define I40E_GLPM_WUMC_RESERVED_4_SHIFT 3 +#define I40E_GLPM_WUMC_RESERVED_4_MASK (0x1FFF << I40E_GLPM_WUMC_RESERVED_4_SHIFT) +#define I40E_GLPM_WUMC_MNG_WU_PF_SHIFT 16 +#define I40E_GLPM_WUMC_MNG_WU_PF_MASK (0xFFFF << I40E_GLPM_WUMC_MNG_WU_PF_SHIFT) +#define I40E_PFPM_APM 0x000B8080 +#define I40E_PFPM_APM_APME_SHIFT 0 +#define I40E_PFPM_APM_APME_MASK (0x1 << I40E_PFPM_APM_APME_SHIFT) +#define I40E_PFPM_FHFT_LENGTH(_i) (0x0006A000 + ((_i) * 128)) /* _i=0...7 */ +#define I40E_PFPM_FHFT_LENGTH_MAX_INDEX 7 +#define I40E_PFPM_FHFT_LENGTH_LENGTH_SHIFT 0 +#define I40E_PFPM_FHFT_LENGTH_LENGTH_MASK (0xFF << I40E_PFPM_FHFT_LENGTH_LENGTH_SHIFT) +#define I40E_PFPM_WUC 0x0006B200 +#define I40E_PFPM_WUC_EN_APM_D0_SHIFT 5 +#define I40E_PFPM_WUC_EN_APM_D0_MASK (0x1 << I40E_PFPM_WUC_EN_APM_D0_SHIFT) +#define I40E_PFPM_WUFC 0x0006B400 +#define I40E_PFPM_WUFC_LNKC_SHIFT 0 +#define I40E_PFPM_WUFC_LNKC_MASK (0x1 << I40E_PFPM_WUFC_LNKC_SHIFT) +#define I40E_PFPM_WUFC_MAG_SHIFT 1 +#define I40E_PFPM_WUFC_MAG_MASK (0x1 << I40E_PFPM_WUFC_MAG_SHIFT) +#define I40E_PFPM_WUFC_MNG_SHIFT 3 +#define I40E_PFPM_WUFC_MNG_MASK (0x1 << I40E_PFPM_WUFC_MNG_SHIFT) +#define I40E_PFPM_WUFC_FLX0_ACT_SHIFT 4 +#define I40E_PFPM_WUFC_FLX0_ACT_MASK (0x1 << I40E_PFPM_WUFC_FLX0_ACT_SHIFT) +#define I40E_PFPM_WUFC_FLX1_ACT_SHIFT 5 +#define I40E_PFPM_WUFC_FLX1_ACT_MASK (0x1 << I40E_PFPM_WUFC_FLX1_ACT_SHIFT) +#define I40E_PFPM_WUFC_FLX2_ACT_SHIFT 6 +#define I40E_PFPM_WUFC_FLX2_ACT_MASK (0x1 << I40E_PFPM_WUFC_FLX2_ACT_SHIFT) +#define I40E_PFPM_WUFC_FLX3_ACT_SHIFT 7 +#define I40E_PFPM_WUFC_FLX3_ACT_MASK (0x1 << I40E_PFPM_WUFC_FLX3_ACT_SHIFT) +#define I40E_PFPM_WUFC_FLX4_ACT_SHIFT 8 +#define I40E_PFPM_WUFC_FLX4_ACT_MASK (0x1 << I40E_PFPM_WUFC_FLX4_ACT_SHIFT) +#define I40E_PFPM_WUFC_FLX5_ACT_SHIFT 9 +#define I40E_PFPM_WUFC_FLX5_ACT_MASK (0x1 << I40E_PFPM_WUFC_FLX5_ACT_SHIFT) +#define I40E_PFPM_WUFC_FLX6_ACT_SHIFT 10 +#define I40E_PFPM_WUFC_FLX6_ACT_MASK (0x1 << I40E_PFPM_WUFC_FLX6_ACT_SHIFT) +#define I40E_PFPM_WUFC_FLX7_ACT_SHIFT 11 +#define I40E_PFPM_WUFC_FLX7_ACT_MASK (0x1 << I40E_PFPM_WUFC_FLX7_ACT_SHIFT) +#define I40E_PFPM_WUFC_FLX0_SHIFT 16 +#define I40E_PFPM_WUFC_FLX0_MASK (0x1 << I40E_PFPM_WUFC_FLX0_SHIFT) +#define I40E_PFPM_WUFC_FLX1_SHIFT 17 +#define I40E_PFPM_WUFC_FLX1_MASK (0x1 << I40E_PFPM_WUFC_FLX1_SHIFT) +#define I40E_PFPM_WUFC_FLX2_SHIFT 18 +#define I40E_PFPM_WUFC_FLX2_MASK (0x1 << I40E_PFPM_WUFC_FLX2_SHIFT) +#define I40E_PFPM_WUFC_FLX3_SHIFT 19 +#define I40E_PFPM_WUFC_FLX3_MASK (0x1 << I40E_PFPM_WUFC_FLX3_SHIFT) +#define I40E_PFPM_WUFC_FLX4_SHIFT 20 +#define I40E_PFPM_WUFC_FLX4_MASK (0x1 << I40E_PFPM_WUFC_FLX4_SHIFT) +#define I40E_PFPM_WUFC_FLX5_SHIFT 21 +#define I40E_PFPM_WUFC_FLX5_MASK (0x1 << I40E_PFPM_WUFC_FLX5_SHIFT) +#define I40E_PFPM_WUFC_FLX6_SHIFT 22 +#define I40E_PFPM_WUFC_FLX6_MASK (0x1 << I40E_PFPM_WUFC_FLX6_SHIFT) +#define I40E_PFPM_WUFC_FLX7_SHIFT 23 +#define I40E_PFPM_WUFC_FLX7_MASK (0x1 << I40E_PFPM_WUFC_FLX7_SHIFT) +#define I40E_PFPM_WUFC_FW_RST_WK_SHIFT 31 +#define I40E_PFPM_WUFC_FW_RST_WK_MASK (0x1 << I40E_PFPM_WUFC_FW_RST_WK_SHIFT) +#define I40E_PFPM_WUS 0x0006B600 +#define I40E_PFPM_WUS_LNKC_SHIFT 0 +#define I40E_PFPM_WUS_LNKC_MASK (0x1 << I40E_PFPM_WUS_LNKC_SHIFT) +#define I40E_PFPM_WUS_MAG_SHIFT 1 +#define I40E_PFPM_WUS_MAG_MASK (0x1 << I40E_PFPM_WUS_MAG_SHIFT) +#define I40E_PFPM_WUS_PME_STATUS_SHIFT 2 +#define I40E_PFPM_WUS_PME_STATUS_MASK (0x1 << I40E_PFPM_WUS_PME_STATUS_SHIFT) +#define I40E_PFPM_WUS_MNG_SHIFT 3 +#define I40E_PFPM_WUS_MNG_MASK (0x1 << I40E_PFPM_WUS_MNG_SHIFT) +#define I40E_PFPM_WUS_FLX0_SHIFT 16 +#define I40E_PFPM_WUS_FLX0_MASK (0x1 << I40E_PFPM_WUS_FLX0_SHIFT) +#define I40E_PFPM_WUS_FLX1_SHIFT 17 +#define I40E_PFPM_WUS_FLX1_MASK (0x1 << I40E_PFPM_WUS_FLX1_SHIFT) +#define I40E_PFPM_WUS_FLX2_SHIFT 18 +#define I40E_PFPM_WUS_FLX2_MASK (0x1 << I40E_PFPM_WUS_FLX2_SHIFT) +#define I40E_PFPM_WUS_FLX3_SHIFT 19 +#define I40E_PFPM_WUS_FLX3_MASK (0x1 << I40E_PFPM_WUS_FLX3_SHIFT) +#define I40E_PFPM_WUS_FLX4_SHIFT 20 +#define I40E_PFPM_WUS_FLX4_MASK (0x1 << I40E_PFPM_WUS_FLX4_SHIFT) +#define I40E_PFPM_WUS_FLX5_SHIFT 21 +#define I40E_PFPM_WUS_FLX5_MASK (0x1 << I40E_PFPM_WUS_FLX5_SHIFT) +#define I40E_PFPM_WUS_FLX6_SHIFT 22 +#define I40E_PFPM_WUS_FLX6_MASK (0x1 << I40E_PFPM_WUS_FLX6_SHIFT) +#define I40E_PFPM_WUS_FLX7_SHIFT 23 +#define I40E_PFPM_WUS_FLX7_MASK (0x1 << I40E_PFPM_WUS_FLX7_SHIFT) +#define I40E_PFPM_WUS_FW_RST_WK_SHIFT 31 +#define I40E_PFPM_WUS_FW_RST_WK_MASK (0x1 << I40E_PFPM_WUS_FW_RST_WK_SHIFT) +#define I40E_PRTPM_FHFHR 0x0006C000 +#define I40E_PRTPM_FHFHR_UNICAST_SHIFT 0 +#define I40E_PRTPM_FHFHR_UNICAST_MASK (0x1 << I40E_PRTPM_FHFHR_UNICAST_SHIFT) +#define I40E_PRTPM_FHFHR_MULTICAST_SHIFT 1 +#define I40E_PRTPM_FHFHR_MULTICAST_MASK (0x1 << I40E_PRTPM_FHFHR_MULTICAST_SHIFT) +#define I40E_PRTPM_SAH(_i) (0x001E44C0 + ((_i) * 32)) /* _i=0...3 */ +#define I40E_PRTPM_SAH_MAX_INDEX 3 +#define I40E_PRTPM_SAH_PFPM_SAH_SHIFT 0 +#define I40E_PRTPM_SAH_PFPM_SAH_MASK (0xFFFF << I40E_PRTPM_SAH_PFPM_SAH_SHIFT) +#define I40E_PRTPM_SAH_PF_NUM_SHIFT 26 +#define I40E_PRTPM_SAH_PF_NUM_MASK (0xF << I40E_PRTPM_SAH_PF_NUM_SHIFT) +#define I40E_PRTPM_SAH_MC_MAG_EN_SHIFT 30 +#define I40E_PRTPM_SAH_MC_MAG_EN_MASK (0x1 << I40E_PRTPM_SAH_MC_MAG_EN_SHIFT) +#define I40E_PRTPM_SAH_AV_SHIFT 31 +#define I40E_PRTPM_SAH_AV_MASK (0x1 << I40E_PRTPM_SAH_AV_SHIFT) +#define I40E_PRTPM_SAL(_i) (0x001E4440 + ((_i) * 32)) /* _i=0...3 */ +#define I40E_PRTPM_SAL_MAX_INDEX 3 +#define I40E_PRTPM_SAL_PFPM_SAL_SHIFT 0 +#define I40E_PRTPM_SAL_PFPM_SAL_MASK (0xFFFFFFFF << I40E_PRTPM_SAL_PFPM_SAL_SHIFT) +#define I40E_VF_ARQBAH1 0x00006000 +#define I40E_VF_ARQBAH1_ARQBAH_SHIFT 0 +#define I40E_VF_ARQBAH1_ARQBAH_MASK (0xFFFFFFFF << I40E_VF_ARQBAH1_ARQBAH_SHIFT) +#define I40E_VF_ARQBAL1 0x00006C00 +#define I40E_VF_ARQBAL1_ARQBAL_SHIFT 0 +#define I40E_VF_ARQBAL1_ARQBAL_MASK (0xFFFFFFFF << I40E_VF_ARQBAL1_ARQBAL_SHIFT) +#define I40E_VF_ARQH1 0x00007400 +#define I40E_VF_ARQH1_ARQH_SHIFT 0 +#define I40E_VF_ARQH1_ARQH_MASK (0x3FF << I40E_VF_ARQH1_ARQH_SHIFT) +#define I40E_VF_ARQLEN1 0x00008000 +#define I40E_VF_ARQLEN1_ARQLEN_SHIFT 0 +#define I40E_VF_ARQLEN1_ARQLEN_MASK (0x3FF << I40E_VF_ARQLEN1_ARQLEN_SHIFT) +#define I40E_VF_ARQLEN1_ARQVFE_SHIFT 28 +#define I40E_VF_ARQLEN1_ARQVFE_MASK (0x1 << I40E_VF_ARQLEN1_ARQVFE_SHIFT) +#define I40E_VF_ARQLEN1_ARQOVFL_SHIFT 29 +#define I40E_VF_ARQLEN1_ARQOVFL_MASK (0x1 << I40E_VF_ARQLEN1_ARQOVFL_SHIFT) +#define I40E_VF_ARQLEN1_ARQCRIT_SHIFT 30 +#define I40E_VF_ARQLEN1_ARQCRIT_MASK (0x1 << I40E_VF_ARQLEN1_ARQCRIT_SHIFT) +#define I40E_VF_ARQLEN1_ARQENABLE_SHIFT 31 +#define I40E_VF_ARQLEN1_ARQENABLE_MASK (0x1 << I40E_VF_ARQLEN1_ARQENABLE_SHIFT) +#define I40E_VF_ARQT1 0x00007000 +#define I40E_VF_ARQT1_ARQT_SHIFT 0 +#define I40E_VF_ARQT1_ARQT_MASK (0x3FF << I40E_VF_ARQT1_ARQT_SHIFT) +#define I40E_VF_ATQBAH1 0x00007800 +#define I40E_VF_ATQBAH1_ATQBAH_SHIFT 0 +#define I40E_VF_ATQBAH1_ATQBAH_MASK (0xFFFFFFFF << I40E_VF_ATQBAH1_ATQBAH_SHIFT) +#define I40E_VF_ATQBAL1 0x00007C00 +#define I40E_VF_ATQBAL1_ATQBAL_SHIFT 0 +#define I40E_VF_ATQBAL1_ATQBAL_MASK (0xFFFFFFFF << I40E_VF_ATQBAL1_ATQBAL_SHIFT) +#define I40E_VF_ATQH1 0x00006400 +#define I40E_VF_ATQH1_ATQH_SHIFT 0 +#define I40E_VF_ATQH1_ATQH_MASK (0x3FF << I40E_VF_ATQH1_ATQH_SHIFT) +#define I40E_VF_ATQLEN1 0x00006800 +#define I40E_VF_ATQLEN1_ATQLEN_SHIFT 0 +#define I40E_VF_ATQLEN1_ATQLEN_MASK (0x3FF << I40E_VF_ATQLEN1_ATQLEN_SHIFT) +#define I40E_VF_ATQLEN1_ATQVFE_SHIFT 28 +#define I40E_VF_ATQLEN1_ATQVFE_MASK (0x1 << I40E_VF_ATQLEN1_ATQVFE_SHIFT) +#define I40E_VF_ATQLEN1_ATQOVFL_SHIFT 29 +#define I40E_VF_ATQLEN1_ATQOVFL_MASK (0x1 << I40E_VF_ATQLEN1_ATQOVFL_SHIFT) +#define I40E_VF_ATQLEN1_ATQCRIT_SHIFT 30 +#define I40E_VF_ATQLEN1_ATQCRIT_MASK (0x1 << I40E_VF_ATQLEN1_ATQCRIT_SHIFT) +#define I40E_VF_ATQLEN1_ATQENABLE_SHIFT 31 +#define I40E_VF_ATQLEN1_ATQENABLE_MASK (0x1 << I40E_VF_ATQLEN1_ATQENABLE_SHIFT) +#define I40E_VF_ATQT1 0x00008400 +#define I40E_VF_ATQT1_ATQT_SHIFT 0 +#define I40E_VF_ATQT1_ATQT_MASK (0x3FF << I40E_VF_ATQT1_ATQT_SHIFT) +#define I40E_VFGEN_RSTAT 0x00008800 +#define I40E_VFGEN_RSTAT_VFR_STATE_SHIFT 0 +#define I40E_VFGEN_RSTAT_VFR_STATE_MASK (0x3 << I40E_VFGEN_RSTAT_VFR_STATE_SHIFT) +#define I40E_VFINT_DYN_CTL01 0x00005C00 +#define I40E_VFINT_DYN_CTL01_INTENA_SHIFT 0 +#define I40E_VFINT_DYN_CTL01_INTENA_MASK (0x1 << I40E_VFINT_DYN_CTL01_INTENA_SHIFT) +#define I40E_VFINT_DYN_CTL01_CLEARPBA_SHIFT 1 +#define I40E_VFINT_DYN_CTL01_CLEARPBA_MASK (0x1 << I40E_VFINT_DYN_CTL01_CLEARPBA_SHIFT) +#define I40E_VFINT_DYN_CTL01_SWINT_TRIG_SHIFT 2 +#define I40E_VFINT_DYN_CTL01_SWINT_TRIG_MASK (0x1 << I40E_VFINT_DYN_CTL01_SWINT_TRIG_SHIFT) +#define I40E_VFINT_DYN_CTL01_ITR_INDX_SHIFT 3 +#define I40E_VFINT_DYN_CTL01_ITR_INDX_MASK (0x3 << I40E_VFINT_DYN_CTL01_ITR_INDX_SHIFT) +#define I40E_VFINT_DYN_CTL01_INTERVAL_SHIFT 5 +#define I40E_VFINT_DYN_CTL01_INTERVAL_MASK (0xFFF << I40E_VFINT_DYN_CTL01_INTERVAL_SHIFT) +#define I40E_VFINT_DYN_CTL01_SW_ITR_INDX_ENA_SHIFT 24 +#define I40E_VFINT_DYN_CTL01_SW_ITR_INDX_ENA_MASK (0x1 << I40E_VFINT_DYN_CTL01_SW_ITR_INDX_ENA_SHIFT) +#define I40E_VFINT_DYN_CTL01_SW_ITR_INDX_SHIFT 25 +#define I40E_VFINT_DYN_CTL01_SW_ITR_INDX_MASK (0x3 << I40E_VFINT_DYN_CTL01_SW_ITR_INDX_SHIFT) +#define I40E_VFINT_DYN_CTL01_INTENA_MSK_SHIFT 31 +#define I40E_VFINT_DYN_CTL01_INTENA_MSK_MASK (0x1 << I40E_VFINT_DYN_CTL01_INTENA_MSK_SHIFT) +#define I40E_VFINT_DYN_CTLN1(_INTVF) (0x00003800 + ((_INTVF) * 4)) +#define I40E_VFINT_DYN_CTLN1_MAX_INDEX 15 +#define I40E_VFINT_DYN_CTLN1_INTENA_SHIFT 0 +#define I40E_VFINT_DYN_CTLN1_INTENA_MASK (0x1 << I40E_VFINT_DYN_CTLN1_INTENA_SHIFT) +#define I40E_VFINT_DYN_CTLN1_CLEARPBA_SHIFT 1 +#define I40E_VFINT_DYN_CTLN1_CLEARPBA_MASK (0x1 << I40E_VFINT_DYN_CTLN1_CLEARPBA_SHIFT) +#define I40E_VFINT_DYN_CTLN1_SWINT_TRIG_SHIFT 2 +#define I40E_VFINT_DYN_CTLN1_SWINT_TRIG_MASK (0x1 << I40E_VFINT_DYN_CTLN1_SWINT_TRIG_SHIFT) +#define I40E_VFINT_DYN_CTLN1_ITR_INDX_SHIFT 3 +#define I40E_VFINT_DYN_CTLN1_ITR_INDX_MASK (0x3 << I40E_VFINT_DYN_CTLN1_ITR_INDX_SHIFT) +#define I40E_VFINT_DYN_CTLN1_INTERVAL_SHIFT 5 +#define I40E_VFINT_DYN_CTLN1_INTERVAL_MASK (0xFFF << I40E_VFINT_DYN_CTLN1_INTERVAL_SHIFT) +#define I40E_VFINT_DYN_CTLN1_SW_ITR_INDX_ENA_SHIFT 24 +#define I40E_VFINT_DYN_CTLN1_SW_ITR_INDX_ENA_MASK (0x1 << I40E_VFINT_DYN_CTLN1_SW_ITR_INDX_ENA_SHIFT) +#define I40E_VFINT_DYN_CTLN1_SW_ITR_INDX_SHIFT 25 +#define I40E_VFINT_DYN_CTLN1_SW_ITR_INDX_MASK (0x3 << I40E_VFINT_DYN_CTLN1_SW_ITR_INDX_SHIFT) +#define I40E_VFINT_DYN_CTLN1_INTENA_MSK_SHIFT 31 +#define I40E_VFINT_DYN_CTLN1_INTENA_MSK_MASK (0x1 << I40E_VFINT_DYN_CTLN1_INTENA_MSK_SHIFT) +#define I40E_VFINT_ICR0_ENA1 0x00005000 +#define I40E_VFINT_ICR0_ENA1_LINK_STAT_CHANGE_SHIFT 25 +#define I40E_VFINT_ICR0_ENA1_LINK_STAT_CHANGE_MASK (0x1 << I40E_VFINT_ICR0_ENA1_LINK_STAT_CHANGE_SHIFT) +#define I40E_VFINT_ICR0_ENA1_ADMINQ_SHIFT 30 +#define I40E_VFINT_ICR0_ENA1_ADMINQ_MASK (0x1 << I40E_VFINT_ICR0_ENA1_ADMINQ_SHIFT) +#define I40E_VFINT_ICR0_ENA1_RSVD_SHIFT 31 +#define I40E_VFINT_ICR0_ENA1_RSVD_MASK (0x1 << I40E_VFINT_ICR0_ENA1_RSVD_SHIFT) +#define I40E_VFINT_ICR01 0x00004800 +#define I40E_VFINT_ICR01_INTEVENT_SHIFT 0 +#define I40E_VFINT_ICR01_INTEVENT_MASK (0x1 << I40E_VFINT_ICR01_INTEVENT_SHIFT) +#define I40E_VFINT_ICR01_QUEUE_0_SHIFT 1 +#define I40E_VFINT_ICR01_QUEUE_0_MASK (0x1 << I40E_VFINT_ICR01_QUEUE_0_SHIFT) +#define I40E_VFINT_ICR01_QUEUE_1_SHIFT 2 +#define I40E_VFINT_ICR01_QUEUE_1_MASK (0x1 << I40E_VFINT_ICR01_QUEUE_1_SHIFT) +#define I40E_VFINT_ICR01_QUEUE_2_SHIFT 3 +#define I40E_VFINT_ICR01_QUEUE_2_MASK (0x1 << I40E_VFINT_ICR01_QUEUE_2_SHIFT) +#define I40E_VFINT_ICR01_QUEUE_3_SHIFT 4 +#define I40E_VFINT_ICR01_QUEUE_3_MASK (0x1 << I40E_VFINT_ICR01_QUEUE_3_SHIFT) +#define I40E_VFINT_ICR01_LINK_STAT_CHANGE_SHIFT 25 +#define I40E_VFINT_ICR01_LINK_STAT_CHANGE_MASK (0x1 << I40E_VFINT_ICR01_LINK_STAT_CHANGE_SHIFT) +#define I40E_VFINT_ICR01_ADMINQ_SHIFT 30 +#define I40E_VFINT_ICR01_ADMINQ_MASK (0x1 << I40E_VFINT_ICR01_ADMINQ_SHIFT) +#define I40E_VFINT_ICR01_SWINT_SHIFT 31 +#define I40E_VFINT_ICR01_SWINT_MASK (0x1 << I40E_VFINT_ICR01_SWINT_SHIFT) +#define I40E_VFINT_ITR01(_i) (0x00004C00 + ((_i) * 4)) /* _i=0...2 */ +#define I40E_VFINT_ITR01_MAX_INDEX 2 +#define I40E_VFINT_ITR01_INTERVAL_SHIFT 0 +#define I40E_VFINT_ITR01_INTERVAL_MASK (0xFFF << I40E_VFINT_ITR01_INTERVAL_SHIFT) +#define I40E_VFINT_ITRN1(_i, _INTVF) (0x00002800 + ((_i) * 64 + (_INTVF) * 4)) +#define I40E_VFINT_ITRN1_MAX_INDEX 2 +#define I40E_VFINT_ITRN1_INTERVAL_SHIFT 0 +#define I40E_VFINT_ITRN1_INTERVAL_MASK (0xFFF << I40E_VFINT_ITRN1_INTERVAL_SHIFT) +#define I40E_VFINT_STAT_CTL01 0x00005400 +#define I40E_VFINT_STAT_CTL01_OTHER_ITR_INDX_SHIFT 2 +#define I40E_VFINT_STAT_CTL01_OTHER_ITR_INDX_MASK (0x3 << I40E_VFINT_STAT_CTL01_OTHER_ITR_INDX_SHIFT) +#define I40E_QRX_TAIL1(_Q) (0x00002000 + ((_Q) * 4)) /* _i=0...15 */ +#define I40E_QRX_TAIL1_MAX_INDEX 15 +#define I40E_QRX_TAIL1_TAIL_SHIFT 0 +#define I40E_QRX_TAIL1_TAIL_MASK (0x1FFF << I40E_QRX_TAIL1_TAIL_SHIFT) +#define I40E_QTX_TAIL1(_Q) (0x00000000 + ((_Q) * 4)) /* _i=0...15 */ +#define I40E_QTX_TAIL1_MAX_INDEX 15 +#define I40E_QTX_TAIL1_TAIL_SHIFT 0 +#define I40E_QTX_TAIL1_TAIL_MASK (0x1FFF << I40E_QTX_TAIL1_TAIL_SHIFT) +#define I40E_VFMSIX_PBA 0x00002000 +#define I40E_VFMSIX_PBA_PENBIT_SHIFT 0 +#define I40E_VFMSIX_PBA_PENBIT_MASK (0xFFFFFFFF << I40E_VFMSIX_PBA_PENBIT_SHIFT) +#define I40E_VFMSIX_TADD(_i) (0x00000000 + ((_i) * 16)) /* _i=0...16 */ +#define I40E_VFMSIX_TADD_MAX_INDEX 16 +#define I40E_VFMSIX_TADD_MSIXTADD10_SHIFT 0 +#define I40E_VFMSIX_TADD_MSIXTADD10_MASK (0x3 << I40E_VFMSIX_TADD_MSIXTADD10_SHIFT) +#define I40E_VFMSIX_TADD_MSIXTADD_SHIFT 2 +#define I40E_VFMSIX_TADD_MSIXTADD_MASK (0x3FFFFFFF << I40E_VFMSIX_TADD_MSIXTADD_SHIFT) +#define I40E_VFMSIX_TMSG(_i) (0x00000008 + ((_i) * 16)) /* _i=0...16 */ +#define I40E_VFMSIX_TMSG_MAX_INDEX 16 +#define I40E_VFMSIX_TMSG_MSIXTMSG_SHIFT 0 +#define I40E_VFMSIX_TMSG_MSIXTMSG_MASK (0xFFFFFFFF << I40E_VFMSIX_TMSG_MSIXTMSG_SHIFT) +#define I40E_VFMSIX_TUADD(_i) (0x00000004 + ((_i) * 16)) /* _i=0...16 */ +#define I40E_VFMSIX_TUADD_MAX_INDEX 16 +#define I40E_VFMSIX_TUADD_MSIXTUADD_SHIFT 0 +#define I40E_VFMSIX_TUADD_MSIXTUADD_MASK (0xFFFFFFFF << I40E_VFMSIX_TUADD_MSIXTUADD_SHIFT) +#define I40E_VFMSIX_TVCTRL(_i) (0x0000000C + ((_i) * 16)) /* _i=0...16 */ +#define I40E_VFMSIX_TVCTRL_MAX_INDEX 16 +#define I40E_VFMSIX_TVCTRL_MASK_SHIFT 0 +#define I40E_VFMSIX_TVCTRL_MASK_MASK (0x1 << I40E_VFMSIX_TVCTRL_MASK_SHIFT) +#define I40E_VFCM_PE_ERRDATA 0x0000DC00 +#define I40E_VFCM_PE_ERRDATA_ERROR_CODE_SHIFT 0 +#define I40E_VFCM_PE_ERRDATA_ERROR_CODE_MASK (0xF << I40E_VFCM_PE_ERRDATA_ERROR_CODE_SHIFT) +#define I40E_VFCM_PE_ERRDATA_Q_TYPE_SHIFT 4 +#define I40E_VFCM_PE_ERRDATA_Q_TYPE_MASK (0x7 << I40E_VFCM_PE_ERRDATA_Q_TYPE_SHIFT) +#define I40E_VFCM_PE_ERRDATA_Q_NUM_SHIFT 8 +#define I40E_VFCM_PE_ERRDATA_Q_NUM_MASK (0x3FFFF << I40E_VFCM_PE_ERRDATA_Q_NUM_SHIFT) +#define I40E_VFCM_PE_ERRINFO 0x0000D800 +#define I40E_VFCM_PE_ERRINFO_ERROR_VALID_SHIFT 0 +#define I40E_VFCM_PE_ERRINFO_ERROR_VALID_MASK (0x1 << I40E_VFCM_PE_ERRINFO_ERROR_VALID_SHIFT) +#define I40E_VFCM_PE_ERRINFO_ERROR_INST_SHIFT 4 +#define I40E_VFCM_PE_ERRINFO_ERROR_INST_MASK (0x7 << I40E_VFCM_PE_ERRINFO_ERROR_INST_SHIFT) +#define I40E_VFCM_PE_ERRINFO_DBL_ERROR_CNT_SHIFT 8 +#define I40E_VFCM_PE_ERRINFO_DBL_ERROR_CNT_MASK (0xFF << I40E_VFCM_PE_ERRINFO_DBL_ERROR_CNT_SHIFT) +#define I40E_VFCM_PE_ERRINFO_RLU_ERROR_CNT_SHIFT 16 +#define I40E_VFCM_PE_ERRINFO_RLU_ERROR_CNT_MASK (0xFF << I40E_VFCM_PE_ERRINFO_RLU_ERROR_CNT_SHIFT) +#define I40E_VFCM_PE_ERRINFO_RLS_ERROR_CNT_SHIFT 24 +#define I40E_VFCM_PE_ERRINFO_RLS_ERROR_CNT_MASK (0xFF << I40E_VFCM_PE_ERRINFO_RLS_ERROR_CNT_SHIFT) +#define I40E_VFPE_AEQALLOC1 0x0000A400 +#define I40E_VFPE_AEQALLOC1_AECOUNT_SHIFT 0 +#define I40E_VFPE_AEQALLOC1_AECOUNT_MASK (0xFFFFFFFF << I40E_VFPE_AEQALLOC1_AECOUNT_SHIFT) +#define I40E_VFPE_CCQPHIGH1 0x00009800 +#define I40E_VFPE_CCQPHIGH1_PECCQPHIGH_SHIFT 0 +#define I40E_VFPE_CCQPHIGH1_PECCQPHIGH_MASK (0xFFFFFFFF << I40E_VFPE_CCQPHIGH1_PECCQPHIGH_SHIFT) +#define I40E_VFPE_CCQPLOW1 0x0000AC00 +#define I40E_VFPE_CCQPLOW1_PECCQPLOW_SHIFT 0 +#define I40E_VFPE_CCQPLOW1_PECCQPLOW_MASK (0xFFFFFFFF << I40E_VFPE_CCQPLOW1_PECCQPLOW_SHIFT) +#define I40E_VFPE_CCQPSTATUS1 0x0000B800 +#define I40E_VFPE_CCQPSTATUS1_CCQP_DONE_SHIFT 0 +#define I40E_VFPE_CCQPSTATUS1_CCQP_DONE_MASK (0x1 << I40E_VFPE_CCQPSTATUS1_CCQP_DONE_SHIFT) +#define I40E_VFPE_CCQPSTATUS1_CCQP_ERR_SHIFT 31 +#define I40E_VFPE_CCQPSTATUS1_CCQP_ERR_MASK (0x1 << I40E_VFPE_CCQPSTATUS1_CCQP_ERR_SHIFT) +#define I40E_VFPE_CQACK1 0x0000B000 +#define I40E_VFPE_CQACK1_PECQID_SHIFT 0 +#define I40E_VFPE_CQACK1_PECQID_MASK (0x1FFFF << I40E_VFPE_CQACK1_PECQID_SHIFT) +#define I40E_VFPE_CQARM1 0x0000B400 +#define I40E_VFPE_CQARM1_PECQID_SHIFT 0 +#define I40E_VFPE_CQARM1_PECQID_MASK (0x1FFFF << I40E_VFPE_CQARM1_PECQID_SHIFT) +#define I40E_VFPE_CQPDB1 0x0000BC00 +#define I40E_VFPE_CQPDB1_WQHEAD_SHIFT 0 +#define I40E_VFPE_CQPDB1_WQHEAD_MASK (0x7FF << I40E_VFPE_CQPDB1_WQHEAD_SHIFT) +#define I40E_VFPE_CQPERRCODES1 0x00009C00 +#define I40E_VFPE_CQPERRCODES1_CQP_MINOR_CODE_SHIFT 0 +#define I40E_VFPE_CQPERRCODES1_CQP_MINOR_CODE_MASK (0xFFFF << I40E_VFPE_CQPERRCODES1_CQP_MINOR_CODE_SHIFT) +#define I40E_VFPE_CQPERRCODES1_CQP_MAJOR_CODE_SHIFT 16 +#define I40E_VFPE_CQPERRCODES1_CQP_MAJOR_CODE_MASK (0xFFFF << I40E_VFPE_CQPERRCODES1_CQP_MAJOR_CODE_SHIFT) +#define I40E_VFPE_CQPTAIL1 0x0000A000 +#define I40E_VFPE_CQPTAIL1_WQTAIL_SHIFT 0 +#define I40E_VFPE_CQPTAIL1_WQTAIL_MASK (0x7FF << I40E_VFPE_CQPTAIL1_WQTAIL_SHIFT) +#define I40E_VFPE_CQPTAIL1_CQP_OP_ERR_SHIFT 31 +#define I40E_VFPE_CQPTAIL1_CQP_OP_ERR_MASK (0x1 << I40E_VFPE_CQPTAIL1_CQP_OP_ERR_SHIFT) +#define I40E_VFPE_IPCONFIG01 0x00008C00 +#define I40E_VFPE_IPCONFIG01_PEIPID_SHIFT 0 +#define I40E_VFPE_IPCONFIG01_PEIPID_MASK (0xFFFF << I40E_VFPE_IPCONFIG01_PEIPID_SHIFT) +#define I40E_VFPE_IPCONFIG01_USEENTIREIDRANGE_SHIFT 16 +#define I40E_VFPE_IPCONFIG01_USEENTIREIDRANGE_MASK (0x1 << I40E_VFPE_IPCONFIG01_USEENTIREIDRANGE_SHIFT) +#define I40E_VFPE_MRTEIDXMASK1 0x00009000 +#define I40E_VFPE_MRTEIDXMASK1_MRTEIDXMASKBITS_SHIFT 0 +#define I40E_VFPE_MRTEIDXMASK1_MRTEIDXMASKBITS_MASK (0x1F << I40E_VFPE_MRTEIDXMASK1_MRTEIDXMASKBITS_SHIFT) +#define I40E_VFPE_RCVUNEXPECTEDERROR1 0x00009400 +#define I40E_VFPE_RCVUNEXPECTEDERROR1_TCP_RX_UNEXP_ERR_SHIFT 0 +#define I40E_VFPE_RCVUNEXPECTEDERROR1_TCP_RX_UNEXP_ERR_MASK (0xFFFFFF << I40E_VFPE_RCVUNEXPECTEDERROR1_TCP_RX_UNEXP_ERR_SHIFT) +#define I40E_VFPE_TCPNOWTIMER1 0x0000A800 +#define I40E_VFPE_TCPNOWTIMER1_TCP_NOW_SHIFT 0 +#define I40E_VFPE_TCPNOWTIMER1_TCP_NOW_MASK (0xFFFFFFFF << I40E_VFPE_TCPNOWTIMER1_TCP_NOW_SHIFT) +#define I40E_VFPE_WQEALLOC1 0x0000C000 +#define I40E_VFPE_WQEALLOC1_PEQPID_SHIFT 0 +#define I40E_VFPE_WQEALLOC1_PEQPID_MASK (0x3FFFF << I40E_VFPE_WQEALLOC1_PEQPID_SHIFT) +#define I40E_VFPE_WQEALLOC1_WQE_DESC_INDEX_SHIFT 20 +#define I40E_VFPE_WQEALLOC1_WQE_DESC_INDEX_MASK (0xFFF << I40E_VFPE_WQEALLOC1_WQE_DESC_INDEX_SHIFT) +#define I40E_VFQF_HENA(_i) (0x0000C400 + ((_i) * 4)) /* _i=0...1 */ +#define I40E_VFQF_HENA_MAX_INDEX 1 +#define I40E_VFQF_HENA_PTYPE_ENA_SHIFT 0 +#define I40E_VFQF_HENA_PTYPE_ENA_MASK (0xFFFFFFFF << I40E_VFQF_HENA_PTYPE_ENA_SHIFT) +#define I40E_VFQF_HKEY(_i) (0x0000CC00 + ((_i) * 4)) /* _i=0...12 */ +#define I40E_VFQF_HKEY_MAX_INDEX 12 +#define I40E_VFQF_HKEY_KEY_0_SHIFT 0 +#define I40E_VFQF_HKEY_KEY_0_MASK (0xFF << I40E_VFQF_HKEY_KEY_0_SHIFT) +#define I40E_VFQF_HKEY_KEY_1_SHIFT 8 +#define I40E_VFQF_HKEY_KEY_1_MASK (0xFF << I40E_VFQF_HKEY_KEY_1_SHIFT) +#define I40E_VFQF_HKEY_KEY_2_SHIFT 16 +#define I40E_VFQF_HKEY_KEY_2_MASK (0xFF << I40E_VFQF_HKEY_KEY_2_SHIFT) +#define I40E_VFQF_HKEY_KEY_3_SHIFT 24 +#define I40E_VFQF_HKEY_KEY_3_MASK (0xFF << I40E_VFQF_HKEY_KEY_3_SHIFT) +#define I40E_VFQF_HLUT(_i) (0x0000D000 + ((_i) * 4)) /* _i=0...15 */ +#define I40E_VFQF_HLUT_MAX_INDEX 15 +#define I40E_VFQF_HLUT_LUT0_SHIFT 0 +#define I40E_VFQF_HLUT_LUT0_MASK (0xF << I40E_VFQF_HLUT_LUT0_SHIFT) +#define I40E_VFQF_HLUT_LUT1_SHIFT 8 +#define I40E_VFQF_HLUT_LUT1_MASK (0xF << I40E_VFQF_HLUT_LUT1_SHIFT) +#define I40E_VFQF_HLUT_LUT2_SHIFT 16 +#define I40E_VFQF_HLUT_LUT2_MASK (0xF << I40E_VFQF_HLUT_LUT2_SHIFT) +#define I40E_VFQF_HLUT_LUT3_SHIFT 24 +#define I40E_VFQF_HLUT_LUT3_MASK (0xF << I40E_VFQF_HLUT_LUT3_SHIFT) +#define I40E_VFQF_HREGION(_i) (0x0000D400 + ((_i) * 4)) /* _i=0...7 */ +#define I40E_VFQF_HREGION_MAX_INDEX 7 +#define I40E_VFQF_HREGION_OVERRIDE_ENA_0_SHIFT 0 +#define I40E_VFQF_HREGION_OVERRIDE_ENA_0_MASK (0x1 << I40E_VFQF_HREGION_OVERRIDE_ENA_0_SHIFT) +#define I40E_VFQF_HREGION_REGION_0_SHIFT 1 +#define I40E_VFQF_HREGION_REGION_0_MASK (0x7 << I40E_VFQF_HREGION_REGION_0_SHIFT) +#define I40E_VFQF_HREGION_OVERRIDE_ENA_1_SHIFT 4 +#define I40E_VFQF_HREGION_OVERRIDE_ENA_1_MASK (0x1 << I40E_VFQF_HREGION_OVERRIDE_ENA_1_SHIFT) +#define I40E_VFQF_HREGION_REGION_1_SHIFT 5 +#define I40E_VFQF_HREGION_REGION_1_MASK (0x7 << I40E_VFQF_HREGION_REGION_1_SHIFT) +#define I40E_VFQF_HREGION_OVERRIDE_ENA_2_SHIFT 8 +#define I40E_VFQF_HREGION_OVERRIDE_ENA_2_MASK (0x1 << I40E_VFQF_HREGION_OVERRIDE_ENA_2_SHIFT) +#define I40E_VFQF_HREGION_REGION_2_SHIFT 9 +#define I40E_VFQF_HREGION_REGION_2_MASK (0x7 << I40E_VFQF_HREGION_REGION_2_SHIFT) +#define I40E_VFQF_HREGION_OVERRIDE_ENA_3_SHIFT 12 +#define I40E_VFQF_HREGION_OVERRIDE_ENA_3_MASK (0x1 << I40E_VFQF_HREGION_OVERRIDE_ENA_3_SHIFT) +#define I40E_VFQF_HREGION_REGION_3_SHIFT 13 +#define I40E_VFQF_HREGION_REGION_3_MASK (0x7 << I40E_VFQF_HREGION_REGION_3_SHIFT) +#define I40E_VFQF_HREGION_OVERRIDE_ENA_4_SHIFT 16 +#define I40E_VFQF_HREGION_OVERRIDE_ENA_4_MASK (0x1 << I40E_VFQF_HREGION_OVERRIDE_ENA_4_SHIFT) +#define I40E_VFQF_HREGION_REGION_4_SHIFT 17 +#define I40E_VFQF_HREGION_REGION_4_MASK (0x7 << I40E_VFQF_HREGION_REGION_4_SHIFT) +#define I40E_VFQF_HREGION_OVERRIDE_ENA_5_SHIFT 20 +#define I40E_VFQF_HREGION_OVERRIDE_ENA_5_MASK (0x1 << I40E_VFQF_HREGION_OVERRIDE_ENA_5_SHIFT) +#define I40E_VFQF_HREGION_REGION_5_SHIFT 21 +#define I40E_VFQF_HREGION_REGION_5_MASK (0x7 << I40E_VFQF_HREGION_REGION_5_SHIFT) +#define I40E_VFQF_HREGION_OVERRIDE_ENA_6_SHIFT 24 +#define I40E_VFQF_HREGION_OVERRIDE_ENA_6_MASK (0x1 << I40E_VFQF_HREGION_OVERRIDE_ENA_6_SHIFT) +#define I40E_VFQF_HREGION_REGION_6_SHIFT 25 +#define I40E_VFQF_HREGION_REGION_6_MASK (0x7 << I40E_VFQF_HREGION_REGION_6_SHIFT) +#define I40E_VFQF_HREGION_OVERRIDE_ENA_7_SHIFT 28 +#define I40E_VFQF_HREGION_OVERRIDE_ENA_7_MASK (0x1 << I40E_VFQF_HREGION_OVERRIDE_ENA_7_SHIFT) +#define I40E_VFQF_HREGION_REGION_7_SHIFT 29 +#define I40E_VFQF_HREGION_REGION_7_MASK (0x7 << I40E_VFQF_HREGION_REGION_7_SHIFT) +#define I40E_RCU_PST_FOC_ACCESS_STATUS 0x00270110 +#define I40E_RCU_PST_FOC_ACCESS_STATUS_WR_ACCESS_CNT_SHIFT 0 +#define I40E_RCU_PST_FOC_ACCESS_STATUS_WR_ACCESS_CNT_MASK (0xFF << I40E_RCU_PST_FOC_ACCESS_STATUS_WR_ACCESS_CNT_SHIFT) +#define I40E_RCU_PST_FOC_ACCESS_STATUS_RD_ACCESS_CNT_SHIFT 8 +#define I40E_RCU_PST_FOC_ACCESS_STATUS_RD_ACCESS_CNT_MASK (0xFF << I40E_RCU_PST_FOC_ACCESS_STATUS_RD_ACCESS_CNT_SHIFT) +#define I40E_RCU_PST_FOC_ACCESS_STATUS_ERR_CNT_SHIFT 16 +#define I40E_RCU_PST_FOC_ACCESS_STATUS_ERR_CNT_MASK (0xFF << I40E_RCU_PST_FOC_ACCESS_STATUS_ERR_CNT_SHIFT) +#define I40E_RCU_PST_FOC_ACCESS_STATUS_LAST_ERR_CODE_SHIFT 24 +#define I40E_RCU_PST_FOC_ACCESS_STATUS_LAST_ERR_CODE_MASK (0x7 << I40E_RCU_PST_FOC_ACCESS_STATUS_LAST_ERR_CODE_SHIFT) +#endif --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40e_status.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40e_status.h @@ -0,0 +1,97 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#ifndef _I40E_STATUS_H_ +#define _I40E_STATUS_H_ + +/* Error Codes */ +enum i40e_status_code { + I40E_SUCCESS = 0, + I40E_ERR_NVM = -1, + I40E_ERR_NVM_CHECKSUM = -2, + I40E_ERR_PHY = -3, + I40E_ERR_CONFIG = -4, + I40E_ERR_PARAM = -5, + I40E_ERR_MAC_TYPE = -6, + I40E_ERR_UNKNOWN_PHY = -7, + I40E_ERR_LINK_SETUP = -8, + I40E_ERR_ADAPTER_STOPPED = -9, + I40E_ERR_INVALID_MAC_ADDR = -10, + I40E_ERR_DEVICE_NOT_SUPPORTED = -11, + I40E_ERR_MASTER_REQUESTS_PENDING = -12, + I40E_ERR_INVALID_LINK_SETTINGS = -13, + I40E_ERR_AUTONEG_NOT_COMPLETE = -14, + I40E_ERR_RESET_FAILED = -15, + I40E_ERR_SWFW_SYNC = -16, + I40E_ERR_NO_AVAILABLE_VSI = -17, + I40E_ERR_NO_MEMORY = -18, + I40E_ERR_BAD_PTR = -19, + I40E_ERR_RING_FULL = -20, + I40E_ERR_INVALID_PD_ID = -21, + I40E_ERR_INVALID_QP_ID = -22, + I40E_ERR_INVALID_CQ_ID = -23, + I40E_ERR_INVALID_CEQ_ID = -24, + I40E_ERR_INVALID_AEQ_ID = -25, + I40E_ERR_INVALID_SIZE = -26, + I40E_ERR_INVALID_ARP_INDEX = -27, + I40E_ERR_INVALID_FPM_FUNC_ID = -28, + I40E_ERR_QP_INVALID_MSG_SIZE = -29, + I40E_ERR_QP_TOOMANY_WRS_POSTED = -30, + I40E_ERR_INVALID_FRAG_COUNT = -31, + I40E_ERR_QUEUE_EMPTY = -32, + I40E_ERR_INVALID_ALIGNMENT = -33, + I40E_ERR_FLUSHED_QUEUE = -34, + I40E_ERR_INVALID_PUSH_PAGE_INDEX = -35, + I40E_ERR_INVALID_IMM_DATA_SIZE = -36, + I40E_ERR_TIMEOUT = -37, + I40E_ERR_OPCODE_MISMATCH = -38, + I40E_ERR_CQP_COMPL_ERROR = -39, + I40E_ERR_INVALID_VF_ID = -40, + I40E_ERR_INVALID_HMCFN_ID = -41, + I40E_ERR_BACKING_PAGE_ERROR = -42, + I40E_ERR_NO_PBLCHUNKS_AVAILABLE = -43, + I40E_ERR_INVALID_PBLE_INDEX = -44, + I40E_ERR_INVALID_SD_INDEX = -45, + I40E_ERR_INVALID_PAGE_DESC_INDEX = -46, + I40E_ERR_INVALID_SD_TYPE = -47, + I40E_ERR_MEMCPY_FAILED = -48, + I40E_ERR_INVALID_HMC_OBJ_INDEX = -49, + I40E_ERR_INVALID_HMC_OBJ_COUNT = -50, + I40E_ERR_INVALID_SRQ_ARM_LIMIT = -51, + I40E_ERR_SRQ_ENABLED = -52, + I40E_ERR_ADMIN_QUEUE_ERROR = -53, + I40E_ERR_ADMIN_QUEUE_TIMEOUT = -54, + I40E_ERR_BUF_TOO_SHORT = -55, + I40E_ERR_ADMIN_QUEUE_FULL = -56, + I40E_ERR_ADMIN_QUEUE_NO_WORK = -57, + I40E_ERR_BAD_IWARP_CQE = -58, + I40E_ERR_NVM_BLANK_MODE = -59, + I40E_ERR_NOT_IMPLEMENTED = -60, + I40E_ERR_PE_DOORBELL_NOT_ENABLED = -61, + I40E_ERR_DIAG_TEST_FAILED = -62, + I40E_ERR_NOT_READY = -63, + I40E_NOT_SUPPORTED = -64, + I40E_ERR_FIRMWARE_API_VERSION = -65, +}; + +#endif /* _I40E_STATUS_H_ */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40e_txrx.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40e_txrx.c @@ -0,0 +1,1633 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#include + +#include "i40evf.h" +#include "i40e_prototype.h" + +static inline __le64 build_ctob(u32 td_cmd, u32 td_offset, unsigned int size, + u32 td_tag) +{ + return cpu_to_le64(I40E_TX_DESC_DTYPE_DATA | + ((u64)td_cmd << I40E_TXD_QW1_CMD_SHIFT) | + ((u64)td_offset << I40E_TXD_QW1_OFFSET_SHIFT) | + ((u64)size << I40E_TXD_QW1_TX_BUF_SZ_SHIFT) | + ((u64)td_tag << I40E_TXD_QW1_L2TAG1_SHIFT)); +} + +#define I40E_TXD_CMD (I40E_TX_DESC_CMD_EOP | I40E_TX_DESC_CMD_RS) + +/** + * i40e_unmap_and_free_tx_resource - Release a Tx buffer + * @ring: the ring that owns the buffer + * @tx_buffer: the buffer to free + **/ +static void i40e_unmap_and_free_tx_resource(struct i40e_ring *ring, + struct i40e_tx_buffer *tx_buffer) +{ + if (tx_buffer->skb) { + dev_kfree_skb_any(tx_buffer->skb); + if (dma_unmap_len(tx_buffer, len)) + dma_unmap_single(ring->dev, + dma_unmap_addr(tx_buffer, dma), + dma_unmap_len(tx_buffer, len), + DMA_TO_DEVICE); + } else if (dma_unmap_len(tx_buffer, len)) { + dma_unmap_page(ring->dev, + dma_unmap_addr(tx_buffer, dma), + dma_unmap_len(tx_buffer, len), + DMA_TO_DEVICE); + } + tx_buffer->next_to_watch = NULL; + tx_buffer->skb = NULL; + dma_unmap_len_set(tx_buffer, len, 0); + /* tx_buffer must be completely set up in the transmit path */ +} + +/** + * i40evf_clean_tx_ring - Free any empty Tx buffers + * @tx_ring: ring to be cleaned + **/ +void i40evf_clean_tx_ring(struct i40e_ring *tx_ring) +{ + unsigned long bi_size; + u16 i; + + /* ring already cleared, nothing to do */ + if (!tx_ring->tx_bi) + return; + + /* Free all the Tx ring sk_buffs */ + for (i = 0; i < tx_ring->count; i++) + i40e_unmap_and_free_tx_resource(tx_ring, &tx_ring->tx_bi[i]); + + bi_size = sizeof(struct i40e_tx_buffer) * tx_ring->count; + memset(tx_ring->tx_bi, 0, bi_size); + + /* Zero out the descriptor ring */ + memset(tx_ring->desc, 0, tx_ring->size); + + tx_ring->next_to_use = 0; + tx_ring->next_to_clean = 0; + + if (!tx_ring->netdev) + return; + + /* cleanup Tx queue statistics */ + netdev_tx_reset_queue(netdev_get_tx_queue(tx_ring->netdev, + tx_ring->queue_index)); +} + +/** + * i40evf_free_tx_resources - Free Tx resources per queue + * @tx_ring: Tx descriptor ring for a specific queue + * + * Free all transmit software resources + **/ +void i40evf_free_tx_resources(struct i40e_ring *tx_ring) +{ + i40evf_clean_tx_ring(tx_ring); + kfree(tx_ring->tx_bi); + tx_ring->tx_bi = NULL; + + if (tx_ring->desc) { + dma_free_coherent(tx_ring->dev, tx_ring->size, + tx_ring->desc, tx_ring->dma); + tx_ring->desc = NULL; + } +} + +/** + * i40e_get_tx_pending - how many tx descriptors not processed + * @tx_ring: the ring of descriptors + * + * Since there is no access to the ring head register + * in XL710, we need to use our local copies + **/ +static u32 i40e_get_tx_pending(struct i40e_ring *ring) +{ + u32 ntu = ((ring->next_to_clean <= ring->next_to_use) + ? ring->next_to_use + : ring->next_to_use + ring->count); + return ntu - ring->next_to_clean; +} + +/** + * i40e_check_tx_hang - Is there a hang in the Tx queue + * @tx_ring: the ring of descriptors + **/ +static bool i40e_check_tx_hang(struct i40e_ring *tx_ring) +{ + u32 tx_pending = i40e_get_tx_pending(tx_ring); + bool ret = false; + + clear_check_for_tx_hang(tx_ring); + + /* Check for a hung queue, but be thorough. This verifies + * that a transmit has been completed since the previous + * check AND there is at least one packet pending. The + * ARMED bit is set to indicate a potential hang. The + * bit is cleared if a pause frame is received to remove + * false hang detection due to PFC or 802.3x frames. By + * requiring this to fail twice we avoid races with + * PFC clearing the ARMED bit and conditions where we + * run the check_tx_hang logic with a transmit completion + * pending but without time to complete it yet. + */ + if ((tx_ring->tx_stats.tx_done_old == tx_ring->stats.packets) && + tx_pending) { + /* make sure it is true for two checks in a row */ + ret = test_and_set_bit(__I40E_HANG_CHECK_ARMED, + &tx_ring->state); + } else { + /* update completed stats and disarm the hang check */ + tx_ring->tx_stats.tx_done_old = tx_ring->stats.packets; + clear_bit(__I40E_HANG_CHECK_ARMED, &tx_ring->state); + } + + return ret; +} + +/** + * i40e_get_head - Retrieve head from head writeback + * @tx_ring: tx ring to fetch head of + * + * Returns value of Tx ring head based on value stored + * in head write-back location + **/ +static inline u32 i40e_get_head(struct i40e_ring *tx_ring) +{ + void *head = (struct i40e_tx_desc *)tx_ring->desc + tx_ring->count; + + return le32_to_cpu(*(volatile __le32 *)head); +} + +/** + * i40e_clean_tx_irq - Reclaim resources after transmit completes + * @tx_ring: tx ring to clean + * @budget: how many cleans we're allowed + * + * Returns true if there's any budget left (e.g. the clean is finished) + **/ +static bool i40e_clean_tx_irq(struct i40e_ring *tx_ring, int budget) +{ + u16 i = tx_ring->next_to_clean; + struct i40e_tx_buffer *tx_buf; + struct i40e_tx_desc *tx_head; + struct i40e_tx_desc *tx_desc; + unsigned int total_packets = 0; + unsigned int total_bytes = 0; + + tx_buf = &tx_ring->tx_bi[i]; + tx_desc = I40E_TX_DESC(tx_ring, i); + i -= tx_ring->count; + + tx_head = I40E_TX_DESC(tx_ring, i40e_get_head(tx_ring)); + + do { + struct i40e_tx_desc *eop_desc = tx_buf->next_to_watch; + + /* if next_to_watch is not set then there is no work pending */ + if (!eop_desc) + break; + + /* prevent any other reads prior to eop_desc */ + read_barrier_depends(); + + /* we have caught up to head, no work left to do */ + if (tx_head == tx_desc) + break; + + /* clear next_to_watch to prevent false hangs */ + tx_buf->next_to_watch = NULL; + + /* update the statistics for this packet */ + total_bytes += tx_buf->bytecount; + total_packets += tx_buf->gso_segs; + + /* free the skb */ + dev_kfree_skb_any(tx_buf->skb); + + /* unmap skb header data */ + dma_unmap_single(tx_ring->dev, + dma_unmap_addr(tx_buf, dma), + dma_unmap_len(tx_buf, len), + DMA_TO_DEVICE); + + /* clear tx_buffer data */ + tx_buf->skb = NULL; + dma_unmap_len_set(tx_buf, len, 0); + + /* unmap remaining buffers */ + while (tx_desc != eop_desc) { + + tx_buf++; + tx_desc++; + i++; + if (unlikely(!i)) { + i -= tx_ring->count; + tx_buf = tx_ring->tx_bi; + tx_desc = I40E_TX_DESC(tx_ring, 0); + } + + /* unmap any remaining paged data */ + if (dma_unmap_len(tx_buf, len)) { + dma_unmap_page(tx_ring->dev, + dma_unmap_addr(tx_buf, dma), + dma_unmap_len(tx_buf, len), + DMA_TO_DEVICE); + dma_unmap_len_set(tx_buf, len, 0); + } + } + + /* move us one more past the eop_desc for start of next pkt */ + tx_buf++; + tx_desc++; + i++; + if (unlikely(!i)) { + i -= tx_ring->count; + tx_buf = tx_ring->tx_bi; + tx_desc = I40E_TX_DESC(tx_ring, 0); + } + + /* update budget accounting */ + budget--; + } while (likely(budget)); + + i += tx_ring->count; + tx_ring->next_to_clean = i; + u64_stats_update_begin(&tx_ring->syncp); + tx_ring->stats.bytes += total_bytes; + tx_ring->stats.packets += total_packets; + u64_stats_update_end(&tx_ring->syncp); + tx_ring->q_vector->tx.total_bytes += total_bytes; + tx_ring->q_vector->tx.total_packets += total_packets; + + if (check_for_tx_hang(tx_ring) && i40e_check_tx_hang(tx_ring)) { + /* schedule immediate reset if we believe we hung */ + dev_info(tx_ring->dev, "Detected Tx Unit Hang\n" + " VSI <%d>\n" + " Tx Queue <%d>\n" + " next_to_use <%x>\n" + " next_to_clean <%x>\n", + tx_ring->vsi->seid, + tx_ring->queue_index, + tx_ring->next_to_use, i); + dev_info(tx_ring->dev, "tx_bi[next_to_clean]\n" + " time_stamp <%lx>\n" + " jiffies <%lx>\n", + tx_ring->tx_bi[i].time_stamp, jiffies); + + netif_stop_subqueue(tx_ring->netdev, tx_ring->queue_index); + + dev_info(tx_ring->dev, + "tx hang detected on queue %d, resetting adapter\n", + tx_ring->queue_index); + + tx_ring->netdev->netdev_ops->ndo_tx_timeout(tx_ring->netdev); + + /* the adapter is about to reset, no point in enabling stuff */ + return true; + } + + netdev_tx_completed_queue(netdev_get_tx_queue(tx_ring->netdev, + tx_ring->queue_index), + total_packets, total_bytes); + +#define TX_WAKE_THRESHOLD (DESC_NEEDED * 2) + if (unlikely(total_packets && netif_carrier_ok(tx_ring->netdev) && + (I40E_DESC_UNUSED(tx_ring) >= TX_WAKE_THRESHOLD))) { + /* Make sure that anybody stopping the queue after this + * sees the new next_to_clean. + */ + smp_mb(); + if (__netif_subqueue_stopped(tx_ring->netdev, + tx_ring->queue_index) && + !test_bit(__I40E_DOWN, &tx_ring->vsi->state)) { + netif_wake_subqueue(tx_ring->netdev, + tx_ring->queue_index); + ++tx_ring->tx_stats.restart_queue; + } + } + + return budget > 0; +} + +/** + * i40e_set_new_dynamic_itr - Find new ITR level + * @rc: structure containing ring performance data + * + * Stores a new ITR value based on packets and byte counts during + * the last interrupt. The advantage of per interrupt computation + * is faster updates and more accurate ITR for the current traffic + * pattern. Constants in this function were computed based on + * theoretical maximum wire speed and thresholds were set based on + * testing data as well as attempting to minimize response time + * while increasing bulk throughput. + **/ +static void i40e_set_new_dynamic_itr(struct i40e_ring_container *rc) +{ + enum i40e_latency_range new_latency_range = rc->latency_range; + u32 new_itr = rc->itr; + int bytes_per_int; + + if (rc->total_packets == 0 || !rc->itr) + return; + + /* simple throttlerate management + * 0-10MB/s lowest (100000 ints/s) + * 10-20MB/s low (20000 ints/s) + * 20-1249MB/s bulk (8000 ints/s) + */ + bytes_per_int = rc->total_bytes / rc->itr; + switch (rc->itr) { + case I40E_LOWEST_LATENCY: + if (bytes_per_int > 10) + new_latency_range = I40E_LOW_LATENCY; + break; + case I40E_LOW_LATENCY: + if (bytes_per_int > 20) + new_latency_range = I40E_BULK_LATENCY; + else if (bytes_per_int <= 10) + new_latency_range = I40E_LOWEST_LATENCY; + break; + case I40E_BULK_LATENCY: + if (bytes_per_int <= 20) + rc->latency_range = I40E_LOW_LATENCY; + break; + } + + switch (new_latency_range) { + case I40E_LOWEST_LATENCY: + new_itr = I40E_ITR_100K; + break; + case I40E_LOW_LATENCY: + new_itr = I40E_ITR_20K; + break; + case I40E_BULK_LATENCY: + new_itr = I40E_ITR_8K; + break; + default: + break; + } + + if (new_itr != rc->itr) { + /* do an exponential smoothing */ + new_itr = (10 * new_itr * rc->itr) / + ((9 * new_itr) + rc->itr); + rc->itr = new_itr & I40E_MAX_ITR; + } + + rc->total_bytes = 0; + rc->total_packets = 0; +} + +/** + * i40e_update_dynamic_itr - Adjust ITR based on bytes per int + * @q_vector: the vector to adjust + **/ +static void i40e_update_dynamic_itr(struct i40e_q_vector *q_vector) +{ + u16 vector = q_vector->vsi->base_vector + q_vector->v_idx; + struct i40e_hw *hw = &q_vector->vsi->back->hw; + u32 reg_addr; + u16 old_itr; + + reg_addr = I40E_VFINT_ITRN1(I40E_RX_ITR, vector - 1); + old_itr = q_vector->rx.itr; + i40e_set_new_dynamic_itr(&q_vector->rx); + if (old_itr != q_vector->rx.itr) + wr32(hw, reg_addr, q_vector->rx.itr); + + reg_addr = I40E_VFINT_ITRN1(I40E_TX_ITR, vector - 1); + old_itr = q_vector->tx.itr; + i40e_set_new_dynamic_itr(&q_vector->tx); + if (old_itr != q_vector->tx.itr) + wr32(hw, reg_addr, q_vector->tx.itr); +} + +/** + * i40evf_setup_tx_descriptors - Allocate the Tx descriptors + * @tx_ring: the tx ring to set up + * + * Return 0 on success, negative on error + **/ +int i40evf_setup_tx_descriptors(struct i40e_ring *tx_ring) +{ + struct device *dev = tx_ring->dev; + int bi_size; + + if (!dev) + return -ENOMEM; + + bi_size = sizeof(struct i40e_tx_buffer) * tx_ring->count; + tx_ring->tx_bi = kzalloc(bi_size, GFP_KERNEL); + if (!tx_ring->tx_bi) + goto err; + + /* round up to nearest 4K */ + tx_ring->size = tx_ring->count * sizeof(struct i40e_tx_desc); + /* add u32 for head writeback, align after this takes care of + * guaranteeing this is at least one cache line in size + */ + tx_ring->size += sizeof(u32); + tx_ring->size = ALIGN(tx_ring->size, 4096); + tx_ring->desc = dma_alloc_coherent(dev, tx_ring->size, + &tx_ring->dma, GFP_KERNEL); + if (!tx_ring->desc) { + dev_info(dev, "Unable to allocate memory for the Tx descriptor ring, size=%d\n", + tx_ring->size); + goto err; + } + + tx_ring->next_to_use = 0; + tx_ring->next_to_clean = 0; + return 0; + +err: + kfree(tx_ring->tx_bi); + tx_ring->tx_bi = NULL; + return -ENOMEM; +} + +/** + * i40evf_clean_rx_ring - Free Rx buffers + * @rx_ring: ring to be cleaned + **/ +void i40evf_clean_rx_ring(struct i40e_ring *rx_ring) +{ + struct device *dev = rx_ring->dev; + struct i40e_rx_buffer *rx_bi; + unsigned long bi_size; + u16 i; + + /* ring already cleared, nothing to do */ + if (!rx_ring->rx_bi) + return; + + /* Free all the Rx ring sk_buffs */ + for (i = 0; i < rx_ring->count; i++) { + rx_bi = &rx_ring->rx_bi[i]; + if (rx_bi->dma) { + dma_unmap_single(dev, + rx_bi->dma, + rx_ring->rx_buf_len, + DMA_FROM_DEVICE); + rx_bi->dma = 0; + } + if (rx_bi->skb) { + dev_kfree_skb(rx_bi->skb); + rx_bi->skb = NULL; + } + if (rx_bi->page) { + if (rx_bi->page_dma) { + dma_unmap_page(dev, + rx_bi->page_dma, + PAGE_SIZE / 2, + DMA_FROM_DEVICE); + rx_bi->page_dma = 0; + } + __free_page(rx_bi->page); + rx_bi->page = NULL; + rx_bi->page_offset = 0; + } + } + + bi_size = sizeof(struct i40e_rx_buffer) * rx_ring->count; + memset(rx_ring->rx_bi, 0, bi_size); + + /* Zero out the descriptor ring */ + memset(rx_ring->desc, 0, rx_ring->size); + + rx_ring->next_to_clean = 0; + rx_ring->next_to_use = 0; +} + +/** + * i40evf_free_rx_resources - Free Rx resources + * @rx_ring: ring to clean the resources from + * + * Free all receive software resources + **/ +void i40evf_free_rx_resources(struct i40e_ring *rx_ring) +{ + i40evf_clean_rx_ring(rx_ring); + kfree(rx_ring->rx_bi); + rx_ring->rx_bi = NULL; + + if (rx_ring->desc) { + dma_free_coherent(rx_ring->dev, rx_ring->size, + rx_ring->desc, rx_ring->dma); + rx_ring->desc = NULL; + } +} + +/** + * i40evf_setup_rx_descriptors - Allocate Rx descriptors + * @rx_ring: Rx descriptor ring (for a specific queue) to setup + * + * Returns 0 on success, negative on failure + **/ +int i40evf_setup_rx_descriptors(struct i40e_ring *rx_ring) +{ + struct device *dev = rx_ring->dev; + int bi_size; + + bi_size = sizeof(struct i40e_rx_buffer) * rx_ring->count; + rx_ring->rx_bi = kzalloc(bi_size, GFP_KERNEL); + if (!rx_ring->rx_bi) + goto err; + + /* Round up to nearest 4K */ + rx_ring->size = ring_is_16byte_desc_enabled(rx_ring) + ? rx_ring->count * sizeof(union i40e_16byte_rx_desc) + : rx_ring->count * sizeof(union i40e_32byte_rx_desc); + rx_ring->size = ALIGN(rx_ring->size, 4096); + rx_ring->desc = dma_alloc_coherent(dev, rx_ring->size, + &rx_ring->dma, GFP_KERNEL); + + if (!rx_ring->desc) { + dev_info(dev, "Unable to allocate memory for the Rx descriptor ring, size=%d\n", + rx_ring->size); + goto err; + } + + rx_ring->next_to_clean = 0; + rx_ring->next_to_use = 0; + + return 0; +err: + kfree(rx_ring->rx_bi); + rx_ring->rx_bi = NULL; + return -ENOMEM; +} + +/** + * i40e_release_rx_desc - Store the new tail and head values + * @rx_ring: ring to bump + * @val: new head index + **/ +static inline void i40e_release_rx_desc(struct i40e_ring *rx_ring, u32 val) +{ + rx_ring->next_to_use = val; + /* Force memory writes to complete before letting h/w + * know there are new descriptors to fetch. (Only + * applicable for weak-ordered memory model archs, + * such as IA-64). + */ + wmb(); + writel(val, rx_ring->tail); +} + +/** + * i40evf_alloc_rx_buffers - Replace used receive buffers; packet split + * @rx_ring: ring to place buffers on + * @cleaned_count: number of buffers to replace + **/ +void i40evf_alloc_rx_buffers(struct i40e_ring *rx_ring, u16 cleaned_count) +{ + u16 i = rx_ring->next_to_use; + union i40e_rx_desc *rx_desc; + struct i40e_rx_buffer *bi; + struct sk_buff *skb; + + /* do nothing if no valid netdev defined */ + if (!rx_ring->netdev || !cleaned_count) + return; + + while (cleaned_count--) { + rx_desc = I40E_RX_DESC(rx_ring, i); + bi = &rx_ring->rx_bi[i]; + skb = bi->skb; + + if (!skb) { + skb = netdev_alloc_skb_ip_align(rx_ring->netdev, + rx_ring->rx_buf_len); + if (!skb) { + rx_ring->rx_stats.alloc_buff_failed++; + goto no_buffers; + } + /* initialize queue mapping */ + skb_record_rx_queue(skb, rx_ring->queue_index); + bi->skb = skb; + } + + if (!bi->dma) { + bi->dma = dma_map_single(rx_ring->dev, + skb->data, + rx_ring->rx_buf_len, + DMA_FROM_DEVICE); + if (dma_mapping_error(rx_ring->dev, bi->dma)) { + rx_ring->rx_stats.alloc_buff_failed++; + bi->dma = 0; + goto no_buffers; + } + } + + if (ring_is_ps_enabled(rx_ring)) { + if (!bi->page) { + bi->page = alloc_page(GFP_ATOMIC); + if (!bi->page) { + rx_ring->rx_stats.alloc_page_failed++; + goto no_buffers; + } + } + + if (!bi->page_dma) { + /* use a half page if we're re-using */ + bi->page_offset ^= PAGE_SIZE / 2; + bi->page_dma = dma_map_page(rx_ring->dev, + bi->page, + bi->page_offset, + PAGE_SIZE / 2, + DMA_FROM_DEVICE); + if (dma_mapping_error(rx_ring->dev, + bi->page_dma)) { + rx_ring->rx_stats.alloc_page_failed++; + bi->page_dma = 0; + goto no_buffers; + } + } + + /* Refresh the desc even if buffer_addrs didn't change + * because each write-back erases this info. + */ + rx_desc->read.pkt_addr = cpu_to_le64(bi->page_dma); + rx_desc->read.hdr_addr = cpu_to_le64(bi->dma); + } else { + rx_desc->read.pkt_addr = cpu_to_le64(bi->dma); + rx_desc->read.hdr_addr = 0; + } + i++; + if (i == rx_ring->count) + i = 0; + } + +no_buffers: + if (rx_ring->next_to_use != i) + i40e_release_rx_desc(rx_ring, i); +} + +/** + * i40e_receive_skb - Send a completed packet up the stack + * @rx_ring: rx ring in play + * @skb: packet to send up + * @vlan_tag: vlan tag for packet + **/ +static void i40e_receive_skb(struct i40e_ring *rx_ring, + struct sk_buff *skb, u16 vlan_tag) +{ + struct i40e_q_vector *q_vector = rx_ring->q_vector; + struct i40e_vsi *vsi = rx_ring->vsi; + u64 flags = vsi->back->flags; + + if (vlan_tag & VLAN_VID_MASK) + __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), vlan_tag); + + if (flags & I40E_FLAG_IN_NETPOLL) + netif_rx(skb); + else + napi_gro_receive(&q_vector->napi, skb); +} + +/** + * i40e_rx_checksum - Indicate in skb if hw indicated a good cksum + * @vsi: the VSI we care about + * @skb: skb currently being received and modified + * @rx_status: status value of last descriptor in packet + * @rx_error: error value of last descriptor in packet + * @rx_ptype: ptype value of last descriptor in packet + **/ +static inline void i40e_rx_checksum(struct i40e_vsi *vsi, + struct sk_buff *skb, + u32 rx_status, + u32 rx_error, + u16 rx_ptype) +{ + bool ipv4_tunnel, ipv6_tunnel; + __wsum rx_udp_csum; + __sum16 csum; + struct iphdr *iph; + + ipv4_tunnel = (rx_ptype > I40E_RX_PTYPE_GRENAT4_MAC_PAY3) && + (rx_ptype < I40E_RX_PTYPE_GRENAT4_MACVLAN_IPV6_ICMP_PAY4); + ipv6_tunnel = (rx_ptype > I40E_RX_PTYPE_GRENAT6_MAC_PAY3) && + (rx_ptype < I40E_RX_PTYPE_GRENAT6_MACVLAN_IPV6_ICMP_PAY4); + + skb->encapsulation = ipv4_tunnel || ipv6_tunnel; + skb->ip_summed = CHECKSUM_NONE; + + /* Rx csum enabled and ip headers found? */ + if (!(vsi->netdev->features & NETIF_F_RXCSUM && + rx_status & (1 << I40E_RX_DESC_STATUS_L3L4P_SHIFT))) + return; + + /* likely incorrect csum if alternate IP extension headers found */ + if (rx_status & (1 << I40E_RX_DESC_STATUS_IPV6EXADD_SHIFT)) + return; + + /* IP or L4 or outmost IP checksum error */ + if (rx_error & ((1 << I40E_RX_DESC_ERROR_IPE_SHIFT) | + (1 << I40E_RX_DESC_ERROR_L4E_SHIFT) | + (1 << I40E_RX_DESC_ERROR_EIPE_SHIFT))) { + vsi->back->hw_csum_rx_error++; + return; + } + + if (ipv4_tunnel && + !(rx_status & (1 << I40E_RX_DESC_STATUS_UDP_0_SHIFT))) { + /* If VXLAN traffic has an outer UDPv4 checksum we need to check + * it in the driver, hardware does not do it for us. + * Since L3L4P bit was set we assume a valid IHL value (>=5) + * so the total length of IPv4 header is IHL*4 bytes + */ + skb->transport_header = skb->mac_header + + sizeof(struct ethhdr) + + (ip_hdr(skb)->ihl * 4); + + /* Add 4 bytes for VLAN tagged packets */ + skb->transport_header += (skb->protocol == htons(ETH_P_8021Q) || + skb->protocol == htons(ETH_P_8021AD)) + ? VLAN_HLEN : 0; + + rx_udp_csum = udp_csum(skb); + iph = ip_hdr(skb); + csum = csum_tcpudp_magic( + iph->saddr, iph->daddr, + (skb->len - skb_transport_offset(skb)), + IPPROTO_UDP, rx_udp_csum); + + if (udp_hdr(skb)->check != csum) { + vsi->back->hw_csum_rx_error++; + return; + } + } + + skb->ip_summed = CHECKSUM_UNNECESSARY; +} + +/** + * i40e_rx_hash - returns the hash value from the Rx descriptor + * @ring: descriptor ring + * @rx_desc: specific descriptor + **/ +static inline u32 i40e_rx_hash(struct i40e_ring *ring, + union i40e_rx_desc *rx_desc) +{ + const __le64 rss_mask = + cpu_to_le64((u64)I40E_RX_DESC_FLTSTAT_RSS_HASH << + I40E_RX_DESC_STATUS_FLTSTAT_SHIFT); + + if ((ring->netdev->features & NETIF_F_RXHASH) && + (rx_desc->wb.qword1.status_error_len & rss_mask) == rss_mask) + return le32_to_cpu(rx_desc->wb.qword0.hi_dword.rss); + else + return 0; +} + +/** + * i40e_ptype_to_hash - get a hash type + * @ptype: the ptype value from the descriptor + * + * Returns a hash type to be used by skb_set_hash + **/ +static inline enum pkt_hash_types i40e_ptype_to_hash(u8 ptype) +{ + struct i40e_rx_ptype_decoded decoded = decode_rx_desc_ptype(ptype); + + if (!decoded.known) + return PKT_HASH_TYPE_NONE; + + if (decoded.outer_ip == I40E_RX_PTYPE_OUTER_IP && + decoded.payload_layer == I40E_RX_PTYPE_PAYLOAD_LAYER_PAY4) + return PKT_HASH_TYPE_L4; + else if (decoded.outer_ip == I40E_RX_PTYPE_OUTER_IP && + decoded.payload_layer == I40E_RX_PTYPE_PAYLOAD_LAYER_PAY3) + return PKT_HASH_TYPE_L3; + else + return PKT_HASH_TYPE_L2; +} + +/** + * i40e_clean_rx_irq - Reclaim resources after receive completes + * @rx_ring: rx ring to clean + * @budget: how many cleans we're allowed + * + * Returns true if there's any budget left (e.g. the clean is finished) + **/ +static int i40e_clean_rx_irq(struct i40e_ring *rx_ring, int budget) +{ + unsigned int total_rx_bytes = 0, total_rx_packets = 0; + u16 rx_packet_len, rx_header_len, rx_sph, rx_hbo; + u16 cleaned_count = I40E_DESC_UNUSED(rx_ring); + const int current_node = numa_node_id(); + struct i40e_vsi *vsi = rx_ring->vsi; + u16 i = rx_ring->next_to_clean; + union i40e_rx_desc *rx_desc; + u32 rx_error, rx_status; + u8 rx_ptype; + u64 qword; + + rx_desc = I40E_RX_DESC(rx_ring, i); + qword = le64_to_cpu(rx_desc->wb.qword1.status_error_len); + rx_status = (qword & I40E_RXD_QW1_STATUS_MASK) >> + I40E_RXD_QW1_STATUS_SHIFT; + + while (rx_status & (1 << I40E_RX_DESC_STATUS_DD_SHIFT)) { + union i40e_rx_desc *next_rxd; + struct i40e_rx_buffer *rx_bi; + struct sk_buff *skb; + u16 vlan_tag; + rx_bi = &rx_ring->rx_bi[i]; + skb = rx_bi->skb; + prefetch(skb->data); + + rx_packet_len = (qword & I40E_RXD_QW1_LENGTH_PBUF_MASK) >> + I40E_RXD_QW1_LENGTH_PBUF_SHIFT; + rx_header_len = (qword & I40E_RXD_QW1_LENGTH_HBUF_MASK) >> + I40E_RXD_QW1_LENGTH_HBUF_SHIFT; + rx_sph = (qword & I40E_RXD_QW1_LENGTH_SPH_MASK) >> + I40E_RXD_QW1_LENGTH_SPH_SHIFT; + + rx_error = (qword & I40E_RXD_QW1_ERROR_MASK) >> + I40E_RXD_QW1_ERROR_SHIFT; + rx_hbo = rx_error & (1 << I40E_RX_DESC_ERROR_HBO_SHIFT); + rx_error &= ~(1 << I40E_RX_DESC_ERROR_HBO_SHIFT); + + rx_ptype = (qword & I40E_RXD_QW1_PTYPE_MASK) >> + I40E_RXD_QW1_PTYPE_SHIFT; + rx_bi->skb = NULL; + + /* This memory barrier is needed to keep us from reading + * any other fields out of the rx_desc until we know the + * STATUS_DD bit is set + */ + rmb(); + + /* Get the header and possibly the whole packet + * If this is an skb from previous receive dma will be 0 + */ + if (rx_bi->dma) { + u16 len; + + if (rx_hbo) + len = I40E_RX_HDR_SIZE; + else if (rx_sph) + len = rx_header_len; + else if (rx_packet_len) + len = rx_packet_len; /* 1buf/no split found */ + else + len = rx_header_len; /* split always mode */ + + skb_put(skb, len); + dma_unmap_single(rx_ring->dev, + rx_bi->dma, + rx_ring->rx_buf_len, + DMA_FROM_DEVICE); + rx_bi->dma = 0; + } + + /* Get the rest of the data if this was a header split */ + if (ring_is_ps_enabled(rx_ring) && rx_packet_len) { + + skb_fill_page_desc(skb, skb_shinfo(skb)->nr_frags, + rx_bi->page, + rx_bi->page_offset, + rx_packet_len); + + skb->len += rx_packet_len; + skb->data_len += rx_packet_len; + skb->truesize += rx_packet_len; + + if ((page_count(rx_bi->page) == 1) && + (page_to_nid(rx_bi->page) == current_node)) + get_page(rx_bi->page); + else + rx_bi->page = NULL; + + dma_unmap_page(rx_ring->dev, + rx_bi->page_dma, + PAGE_SIZE / 2, + DMA_FROM_DEVICE); + rx_bi->page_dma = 0; + } + I40E_RX_NEXT_DESC_PREFETCH(rx_ring, i, next_rxd); + + if (unlikely( + !(rx_status & (1 << I40E_RX_DESC_STATUS_EOF_SHIFT)))) { + struct i40e_rx_buffer *next_buffer; + + next_buffer = &rx_ring->rx_bi[i]; + + if (ring_is_ps_enabled(rx_ring)) { + rx_bi->skb = next_buffer->skb; + rx_bi->dma = next_buffer->dma; + next_buffer->skb = skb; + next_buffer->dma = 0; + } + rx_ring->rx_stats.non_eop_descs++; + goto next_desc; + } + + /* ERR_MASK will only have valid bits if EOP set */ + if (unlikely(rx_error & (1 << I40E_RX_DESC_ERROR_RXE_SHIFT))) { + dev_kfree_skb_any(skb); + goto next_desc; + } + + skb_set_hash(skb, i40e_rx_hash(rx_ring, rx_desc), + i40e_ptype_to_hash(rx_ptype)); + /* probably a little skewed due to removing CRC */ + total_rx_bytes += skb->len; + total_rx_packets++; + + skb->protocol = eth_type_trans(skb, rx_ring->netdev); + + i40e_rx_checksum(vsi, skb, rx_status, rx_error, rx_ptype); + + vlan_tag = rx_status & (1 << I40E_RX_DESC_STATUS_L2TAG1P_SHIFT) + ? le16_to_cpu(rx_desc->wb.qword0.lo_dword.l2tag1) + : 0; + i40e_receive_skb(rx_ring, skb, vlan_tag); + + rx_ring->netdev->last_rx = jiffies; + budget--; +next_desc: + rx_desc->wb.qword1.status_error_len = 0; + if (!budget) + break; + + cleaned_count++; + /* return some buffers to hardware, one at a time is too slow */ + if (cleaned_count >= I40E_RX_BUFFER_WRITE) { + i40evf_alloc_rx_buffers(rx_ring, cleaned_count); + cleaned_count = 0; + } + + /* use prefetched values */ + rx_desc = next_rxd; + qword = le64_to_cpu(rx_desc->wb.qword1.status_error_len); + rx_status = (qword & I40E_RXD_QW1_STATUS_MASK) >> + I40E_RXD_QW1_STATUS_SHIFT; + } + + rx_ring->next_to_clean = i; + u64_stats_update_begin(&rx_ring->syncp); + rx_ring->stats.packets += total_rx_packets; + rx_ring->stats.bytes += total_rx_bytes; + u64_stats_update_end(&rx_ring->syncp); + rx_ring->q_vector->rx.total_packets += total_rx_packets; + rx_ring->q_vector->rx.total_bytes += total_rx_bytes; + + if (cleaned_count) + i40evf_alloc_rx_buffers(rx_ring, cleaned_count); + + return budget > 0; +} + +/** + * i40evf_napi_poll - NAPI polling Rx/Tx cleanup routine + * @napi: napi struct with our devices info in it + * @budget: amount of work driver is allowed to do this pass, in packets + * + * This function will clean all queues associated with a q_vector. + * + * Returns the amount of work done + **/ +int i40evf_napi_poll(struct napi_struct *napi, int budget) +{ + struct i40e_q_vector *q_vector = + container_of(napi, struct i40e_q_vector, napi); + struct i40e_vsi *vsi = q_vector->vsi; + struct i40e_ring *ring; + bool clean_complete = true; + int budget_per_ring; + + if (test_bit(__I40E_DOWN, &vsi->state)) { + napi_complete(napi); + return 0; + } + + /* Since the actual Tx work is minimal, we can give the Tx a larger + * budget and be more aggressive about cleaning up the Tx descriptors. + */ + i40e_for_each_ring(ring, q_vector->tx) + clean_complete &= i40e_clean_tx_irq(ring, vsi->work_limit); + + /* We attempt to distribute budget to each Rx queue fairly, but don't + * allow the budget to go below 1 because that would exit polling early. + */ + budget_per_ring = max(budget/q_vector->num_ringpairs, 1); + + i40e_for_each_ring(ring, q_vector->rx) + clean_complete &= i40e_clean_rx_irq(ring, budget_per_ring); + + /* If work not completed, return budget and polling will return */ + if (!clean_complete) + return budget; + + /* Work is done so exit the polling mode and re-enable the interrupt */ + napi_complete(napi); + if (ITR_IS_DYNAMIC(vsi->rx_itr_setting) || + ITR_IS_DYNAMIC(vsi->tx_itr_setting)) + i40e_update_dynamic_itr(q_vector); + + if (!test_bit(__I40E_DOWN, &vsi->state)) + i40evf_irq_enable_queues(vsi->back, 1 << q_vector->v_idx); + + return 0; +} + +/** + * i40e_tx_prepare_vlan_flags - prepare generic TX VLAN tagging flags for HW + * @skb: send buffer + * @tx_ring: ring to send buffer on + * @flags: the tx flags to be set + * + * Checks the skb and set up correspondingly several generic transmit flags + * related to VLAN tagging for the HW, such as VLAN, DCB, etc. + * + * Returns error code indicate the frame should be dropped upon error and the + * otherwise returns 0 to indicate the flags has been set properly. + **/ +static int i40e_tx_prepare_vlan_flags(struct sk_buff *skb, + struct i40e_ring *tx_ring, + u32 *flags) +{ + __be16 protocol = skb->protocol; + u32 tx_flags = 0; + + /* if we have a HW VLAN tag being added, default to the HW one */ + if (vlan_tx_tag_present(skb)) { + tx_flags |= vlan_tx_tag_get(skb) << I40E_TX_FLAGS_VLAN_SHIFT; + tx_flags |= I40E_TX_FLAGS_HW_VLAN; + /* else if it is a SW VLAN, check the next protocol and store the tag */ + } else if (protocol == htons(ETH_P_8021Q)) { + struct vlan_hdr *vhdr, _vhdr; + vhdr = skb_header_pointer(skb, ETH_HLEN, sizeof(_vhdr), &_vhdr); + if (!vhdr) + return -EINVAL; + + protocol = vhdr->h_vlan_encapsulated_proto; + tx_flags |= ntohs(vhdr->h_vlan_TCI) << I40E_TX_FLAGS_VLAN_SHIFT; + tx_flags |= I40E_TX_FLAGS_SW_VLAN; + } + + *flags = tx_flags; + return 0; +} + +/** + * i40e_tso - set up the tso context descriptor + * @tx_ring: ptr to the ring to send + * @skb: ptr to the skb we're sending + * @tx_flags: the collected send information + * @protocol: the send protocol + * @hdr_len: ptr to the size of the packet header + * @cd_tunneling: ptr to context descriptor bits + * + * Returns 0 if no TSO can happen, 1 if tso is going, or error + **/ +static int i40e_tso(struct i40e_ring *tx_ring, struct sk_buff *skb, + u32 tx_flags, __be16 protocol, u8 *hdr_len, + u64 *cd_type_cmd_tso_mss, u32 *cd_tunneling) +{ + u32 cd_cmd, cd_tso_len, cd_mss; + struct ipv6hdr *ipv6h; + struct tcphdr *tcph; + struct iphdr *iph; + u32 l4len; + int err; + + if (!skb_is_gso(skb)) + return 0; + + err = skb_cow_head(skb, 0); + if (err < 0) + return err; + + if (protocol == htons(ETH_P_IP)) { + iph = skb->encapsulation ? inner_ip_hdr(skb) : ip_hdr(skb); + tcph = skb->encapsulation ? inner_tcp_hdr(skb) : tcp_hdr(skb); + iph->tot_len = 0; + iph->check = 0; + tcph->check = ~csum_tcpudp_magic(iph->saddr, iph->daddr, + 0, IPPROTO_TCP, 0); + } else if (skb_is_gso_v6(skb)) { + + ipv6h = skb->encapsulation ? inner_ipv6_hdr(skb) + : ipv6_hdr(skb); + tcph = skb->encapsulation ? inner_tcp_hdr(skb) : tcp_hdr(skb); + ipv6h->payload_len = 0; + tcph->check = ~csum_ipv6_magic(&ipv6h->saddr, &ipv6h->daddr, + 0, IPPROTO_TCP, 0); + } + + l4len = skb->encapsulation ? inner_tcp_hdrlen(skb) : tcp_hdrlen(skb); + *hdr_len = (skb->encapsulation + ? (skb_inner_transport_header(skb) - skb->data) + : skb_transport_offset(skb)) + l4len; + + /* find the field values */ + cd_cmd = I40E_TX_CTX_DESC_TSO; + cd_tso_len = skb->len - *hdr_len; + cd_mss = skb_shinfo(skb)->gso_size; + *cd_type_cmd_tso_mss |= ((u64)cd_cmd << I40E_TXD_CTX_QW1_CMD_SHIFT) | + ((u64)cd_tso_len << + I40E_TXD_CTX_QW1_TSO_LEN_SHIFT) | + ((u64)cd_mss << I40E_TXD_CTX_QW1_MSS_SHIFT); + return 1; +} + +/** + * i40e_tx_enable_csum - Enable Tx checksum offloads + * @skb: send buffer + * @tx_flags: Tx flags currently set + * @td_cmd: Tx descriptor command bits to set + * @td_offset: Tx descriptor header offsets to set + * @cd_tunneling: ptr to context desc bits + **/ +static void i40e_tx_enable_csum(struct sk_buff *skb, u32 tx_flags, + u32 *td_cmd, u32 *td_offset, + struct i40e_ring *tx_ring, + u32 *cd_tunneling) +{ + struct ipv6hdr *this_ipv6_hdr; + unsigned int this_tcp_hdrlen; + struct iphdr *this_ip_hdr; + u32 network_hdr_len; + u8 l4_hdr = 0; + + if (skb->encapsulation) { + network_hdr_len = skb_inner_network_header_len(skb); + this_ip_hdr = inner_ip_hdr(skb); + this_ipv6_hdr = inner_ipv6_hdr(skb); + this_tcp_hdrlen = inner_tcp_hdrlen(skb); + + if (tx_flags & I40E_TX_FLAGS_IPV4) { + + if (tx_flags & I40E_TX_FLAGS_TSO) { + *cd_tunneling |= I40E_TX_CTX_EXT_IP_IPV4; + ip_hdr(skb)->check = 0; + } else { + *cd_tunneling |= + I40E_TX_CTX_EXT_IP_IPV4_NO_CSUM; + } + } else if (tx_flags & I40E_TX_FLAGS_IPV6) { + if (tx_flags & I40E_TX_FLAGS_TSO) { + *cd_tunneling |= I40E_TX_CTX_EXT_IP_IPV6; + ip_hdr(skb)->check = 0; + } else { + *cd_tunneling |= + I40E_TX_CTX_EXT_IP_IPV4_NO_CSUM; + } + } + + /* Now set the ctx descriptor fields */ + *cd_tunneling |= (skb_network_header_len(skb) >> 2) << + I40E_TXD_CTX_QW0_EXT_IPLEN_SHIFT | + I40E_TXD_CTX_UDP_TUNNELING | + ((skb_inner_network_offset(skb) - + skb_transport_offset(skb)) >> 1) << + I40E_TXD_CTX_QW0_NATLEN_SHIFT; + + } else { + network_hdr_len = skb_network_header_len(skb); + this_ip_hdr = ip_hdr(skb); + this_ipv6_hdr = ipv6_hdr(skb); + this_tcp_hdrlen = tcp_hdrlen(skb); + } + + /* Enable IP checksum offloads */ + if (tx_flags & I40E_TX_FLAGS_IPV4) { + l4_hdr = this_ip_hdr->protocol; + /* the stack computes the IP header already, the only time we + * need the hardware to recompute it is in the case of TSO. + */ + if (tx_flags & I40E_TX_FLAGS_TSO) { + *td_cmd |= I40E_TX_DESC_CMD_IIPT_IPV4_CSUM; + this_ip_hdr->check = 0; + } else { + *td_cmd |= I40E_TX_DESC_CMD_IIPT_IPV4; + } + /* Now set the td_offset for IP header length */ + *td_offset = (network_hdr_len >> 2) << + I40E_TX_DESC_LENGTH_IPLEN_SHIFT; + } else if (tx_flags & I40E_TX_FLAGS_IPV6) { + l4_hdr = this_ipv6_hdr->nexthdr; + *td_cmd |= I40E_TX_DESC_CMD_IIPT_IPV6; + /* Now set the td_offset for IP header length */ + *td_offset = (network_hdr_len >> 2) << + I40E_TX_DESC_LENGTH_IPLEN_SHIFT; + } + /* words in MACLEN + dwords in IPLEN + dwords in L4Len */ + *td_offset |= (skb_network_offset(skb) >> 1) << + I40E_TX_DESC_LENGTH_MACLEN_SHIFT; + + /* Enable L4 checksum offloads */ + switch (l4_hdr) { + case IPPROTO_TCP: + /* enable checksum offloads */ + *td_cmd |= I40E_TX_DESC_CMD_L4T_EOFT_TCP; + *td_offset |= (this_tcp_hdrlen >> 2) << + I40E_TX_DESC_LENGTH_L4_FC_LEN_SHIFT; + break; + case IPPROTO_SCTP: + /* enable SCTP checksum offload */ + *td_cmd |= I40E_TX_DESC_CMD_L4T_EOFT_SCTP; + *td_offset |= (sizeof(struct sctphdr) >> 2) << + I40E_TX_DESC_LENGTH_L4_FC_LEN_SHIFT; + break; + case IPPROTO_UDP: + /* enable UDP checksum offload */ + *td_cmd |= I40E_TX_DESC_CMD_L4T_EOFT_UDP; + *td_offset |= (sizeof(struct udphdr) >> 2) << + I40E_TX_DESC_LENGTH_L4_FC_LEN_SHIFT; + break; + default: + break; + } +} + +/** + * i40e_create_tx_ctx Build the Tx context descriptor + * @tx_ring: ring to create the descriptor on + * @cd_type_cmd_tso_mss: Quad Word 1 + * @cd_tunneling: Quad Word 0 - bits 0-31 + * @cd_l2tag2: Quad Word 0 - bits 32-63 + **/ +static void i40e_create_tx_ctx(struct i40e_ring *tx_ring, + const u64 cd_type_cmd_tso_mss, + const u32 cd_tunneling, const u32 cd_l2tag2) +{ + struct i40e_tx_context_desc *context_desc; + int i = tx_ring->next_to_use; + + if ((cd_type_cmd_tso_mss == I40E_TX_DESC_DTYPE_CONTEXT) && + !cd_tunneling && !cd_l2tag2) + return; + + /* grab the next descriptor */ + context_desc = I40E_TX_CTXTDESC(tx_ring, i); + + i++; + tx_ring->next_to_use = (i < tx_ring->count) ? i : 0; + + /* cpu_to_le32 and assign to struct fields */ + context_desc->tunneling_params = cpu_to_le32(cd_tunneling); + context_desc->l2tag2 = cpu_to_le16(cd_l2tag2); + context_desc->type_cmd_tso_mss = cpu_to_le64(cd_type_cmd_tso_mss); +} + +/** + * i40e_tx_map - Build the Tx descriptor + * @tx_ring: ring to send buffer on + * @skb: send buffer + * @first: first buffer info buffer to use + * @tx_flags: collected send information + * @hdr_len: size of the packet header + * @td_cmd: the command field in the descriptor + * @td_offset: offset for checksum or crc + **/ +static void i40e_tx_map(struct i40e_ring *tx_ring, struct sk_buff *skb, + struct i40e_tx_buffer *first, u32 tx_flags, + const u8 hdr_len, u32 td_cmd, u32 td_offset) +{ + unsigned int data_len = skb->data_len; + unsigned int size = skb_headlen(skb); + struct skb_frag_struct *frag; + struct i40e_tx_buffer *tx_bi; + struct i40e_tx_desc *tx_desc; + u16 i = tx_ring->next_to_use; + u32 td_tag = 0; + dma_addr_t dma; + u16 gso_segs; + + if (tx_flags & I40E_TX_FLAGS_HW_VLAN) { + td_cmd |= I40E_TX_DESC_CMD_IL2TAG1; + td_tag = (tx_flags & I40E_TX_FLAGS_VLAN_MASK) >> + I40E_TX_FLAGS_VLAN_SHIFT; + } + + if (tx_flags & (I40E_TX_FLAGS_TSO | I40E_TX_FLAGS_FSO)) + gso_segs = skb_shinfo(skb)->gso_segs; + else + gso_segs = 1; + + /* multiply data chunks by size of headers */ + first->bytecount = skb->len - hdr_len + (gso_segs * hdr_len); + first->gso_segs = gso_segs; + first->skb = skb; + first->tx_flags = tx_flags; + + dma = dma_map_single(tx_ring->dev, skb->data, size, DMA_TO_DEVICE); + + tx_desc = I40E_TX_DESC(tx_ring, i); + tx_bi = first; + + for (frag = &skb_shinfo(skb)->frags[0];; frag++) { + if (dma_mapping_error(tx_ring->dev, dma)) + goto dma_error; + + /* record length, and DMA address */ + dma_unmap_len_set(tx_bi, len, size); + dma_unmap_addr_set(tx_bi, dma, dma); + + tx_desc->buffer_addr = cpu_to_le64(dma); + + while (unlikely(size > I40E_MAX_DATA_PER_TXD)) { + tx_desc->cmd_type_offset_bsz = + build_ctob(td_cmd, td_offset, + I40E_MAX_DATA_PER_TXD, td_tag); + + tx_desc++; + i++; + if (i == tx_ring->count) { + tx_desc = I40E_TX_DESC(tx_ring, 0); + i = 0; + } + + dma += I40E_MAX_DATA_PER_TXD; + size -= I40E_MAX_DATA_PER_TXD; + + tx_desc->buffer_addr = cpu_to_le64(dma); + } + + if (likely(!data_len)) + break; + + tx_desc->cmd_type_offset_bsz = build_ctob(td_cmd, td_offset, + size, td_tag); + + tx_desc++; + i++; + if (i == tx_ring->count) { + tx_desc = I40E_TX_DESC(tx_ring, 0); + i = 0; + } + + size = skb_frag_size(frag); + data_len -= size; + + dma = skb_frag_dma_map(tx_ring->dev, frag, 0, size, + DMA_TO_DEVICE); + + tx_bi = &tx_ring->tx_bi[i]; + } + + /* Place RS bit on last descriptor of any packet that spans across the + * 4th descriptor (WB_STRIDE aka 0x3) in a 64B cacheline. + */ +#define WB_STRIDE 0x3 + if (((i & WB_STRIDE) != WB_STRIDE) && + (first <= &tx_ring->tx_bi[i]) && + (first >= &tx_ring->tx_bi[i & ~WB_STRIDE])) { + tx_desc->cmd_type_offset_bsz = + build_ctob(td_cmd, td_offset, size, td_tag) | + cpu_to_le64((u64)I40E_TX_DESC_CMD_EOP << + I40E_TXD_QW1_CMD_SHIFT); + } else { + tx_desc->cmd_type_offset_bsz = + build_ctob(td_cmd, td_offset, size, td_tag) | + cpu_to_le64((u64)I40E_TXD_CMD << + I40E_TXD_QW1_CMD_SHIFT); + } + + netdev_tx_sent_queue(netdev_get_tx_queue(tx_ring->netdev, + tx_ring->queue_index), + first->bytecount); + + /* set the timestamp */ + first->time_stamp = jiffies; + + /* Force memory writes to complete before letting h/w + * know there are new descriptors to fetch. (Only + * applicable for weak-ordered memory model archs, + * such as IA-64). + */ + wmb(); + + /* set next_to_watch value indicating a packet is present */ + first->next_to_watch = tx_desc; + + i++; + if (i == tx_ring->count) + i = 0; + + tx_ring->next_to_use = i; + + /* notify HW of packet */ + writel(i, tx_ring->tail); + + return; + +dma_error: + dev_info(tx_ring->dev, "TX DMA map failed\n"); + + /* clear dma mappings for failed tx_bi map */ + for (;;) { + tx_bi = &tx_ring->tx_bi[i]; + i40e_unmap_and_free_tx_resource(tx_ring, tx_bi); + if (tx_bi == first) + break; + if (i == 0) + i = tx_ring->count; + i--; + } + + tx_ring->next_to_use = i; +} + +/** + * __i40e_maybe_stop_tx - 2nd level check for tx stop conditions + * @tx_ring: the ring to be checked + * @size: the size buffer we want to assure is available + * + * Returns -EBUSY if a stop is needed, else 0 + **/ +static inline int __i40e_maybe_stop_tx(struct i40e_ring *tx_ring, int size) +{ + netif_stop_subqueue(tx_ring->netdev, tx_ring->queue_index); + /* Memory barrier before checking head and tail */ + smp_mb(); + + /* Check again in a case another CPU has just made room available. */ + if (likely(I40E_DESC_UNUSED(tx_ring) < size)) + return -EBUSY; + + /* A reprieve! - use start_queue because it doesn't call schedule */ + netif_start_subqueue(tx_ring->netdev, tx_ring->queue_index); + ++tx_ring->tx_stats.restart_queue; + return 0; +} + +/** + * i40e_maybe_stop_tx - 1st level check for tx stop conditions + * @tx_ring: the ring to be checked + * @size: the size buffer we want to assure is available + * + * Returns 0 if stop is not needed + **/ +static int i40e_maybe_stop_tx(struct i40e_ring *tx_ring, int size) +{ + if (likely(I40E_DESC_UNUSED(tx_ring) >= size)) + return 0; + return __i40e_maybe_stop_tx(tx_ring, size); +} + +/** + * i40e_xmit_descriptor_count - calculate number of tx descriptors needed + * @skb: send buffer + * @tx_ring: ring to send buffer on + * + * Returns number of data descriptors needed for this skb. Returns 0 to indicate + * there is not enough descriptors available in this ring since we need at least + * one descriptor. + **/ +static int i40e_xmit_descriptor_count(struct sk_buff *skb, + struct i40e_ring *tx_ring) +{ +#if PAGE_SIZE > I40E_MAX_DATA_PER_TXD + unsigned int f; +#endif + int count = 0; + + /* need: 1 descriptor per page * PAGE_SIZE/I40E_MAX_DATA_PER_TXD, + * + 1 desc for skb_head_len/I40E_MAX_DATA_PER_TXD, + * + 4 desc gap to avoid the cache line where head is, + * + 1 desc for context descriptor, + * otherwise try next time + */ +#if PAGE_SIZE > I40E_MAX_DATA_PER_TXD + for (f = 0; f < skb_shinfo(skb)->nr_frags; f++) + count += TXD_USE_COUNT(skb_shinfo(skb)->frags[f].size); +#else + count += skb_shinfo(skb)->nr_frags; +#endif + count += TXD_USE_COUNT(skb_headlen(skb)); + if (i40e_maybe_stop_tx(tx_ring, count + 4 + 1)) { + tx_ring->tx_stats.tx_busy++; + return 0; + } + return count; +} + +/** + * i40e_xmit_frame_ring - Sends buffer on Tx ring + * @skb: send buffer + * @tx_ring: ring to send buffer on + * + * Returns NETDEV_TX_OK if sent, else an error code + **/ +static netdev_tx_t i40e_xmit_frame_ring(struct sk_buff *skb, + struct i40e_ring *tx_ring) +{ + u64 cd_type_cmd_tso_mss = I40E_TX_DESC_DTYPE_CONTEXT; + u32 cd_tunneling = 0, cd_l2tag2 = 0; + struct i40e_tx_buffer *first; + u32 td_offset = 0; + u32 tx_flags = 0; + __be16 protocol; + u32 td_cmd = 0; + u8 hdr_len = 0; + int tso; + if (0 == i40e_xmit_descriptor_count(skb, tx_ring)) + return NETDEV_TX_BUSY; + + /* prepare the xmit flags */ + if (i40e_tx_prepare_vlan_flags(skb, tx_ring, &tx_flags)) + goto out_drop; + + /* obtain protocol of skb */ + protocol = skb->protocol; + + /* record the location of the first descriptor for this packet */ + first = &tx_ring->tx_bi[tx_ring->next_to_use]; + + /* setup IPv4/IPv6 offloads */ + if (protocol == htons(ETH_P_IP)) + tx_flags |= I40E_TX_FLAGS_IPV4; + else if (protocol == htons(ETH_P_IPV6)) + tx_flags |= I40E_TX_FLAGS_IPV6; + + tso = i40e_tso(tx_ring, skb, tx_flags, protocol, &hdr_len, + &cd_type_cmd_tso_mss, &cd_tunneling); + + if (tso < 0) + goto out_drop; + else if (tso) + tx_flags |= I40E_TX_FLAGS_TSO; + + skb_tx_timestamp(skb); + + /* always enable CRC insertion offload */ + td_cmd |= I40E_TX_DESC_CMD_ICRC; + + /* Always offload the checksum, since it's in the data descriptor */ + if (skb->ip_summed == CHECKSUM_PARTIAL) { + tx_flags |= I40E_TX_FLAGS_CSUM; + + i40e_tx_enable_csum(skb, tx_flags, &td_cmd, &td_offset, + tx_ring, &cd_tunneling); + } + + i40e_create_tx_ctx(tx_ring, cd_type_cmd_tso_mss, + cd_tunneling, cd_l2tag2); + + i40e_tx_map(tx_ring, skb, first, tx_flags, hdr_len, + td_cmd, td_offset); + + i40e_maybe_stop_tx(tx_ring, DESC_NEEDED); + + return NETDEV_TX_OK; + +out_drop: + dev_kfree_skb_any(skb); + return NETDEV_TX_OK; +} + +/** + * i40evf_xmit_frame - Selects the correct VSI and Tx queue to send buffer + * @skb: send buffer + * @netdev: network interface device structure + * + * Returns NETDEV_TX_OK if sent, else an error code + **/ +netdev_tx_t i40evf_xmit_frame(struct sk_buff *skb, struct net_device *netdev) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + struct i40e_ring *tx_ring = adapter->tx_rings[skb->queue_mapping]; + + /* hardware can't handle really short frames, hardware padding works + * beyond this point + */ + if (unlikely(skb->len < I40E_MIN_TX_LEN)) { + if (skb_pad(skb, I40E_MIN_TX_LEN - skb->len)) + return NETDEV_TX_OK; + skb->len = I40E_MIN_TX_LEN; + skb_set_tail_pointer(skb, I40E_MIN_TX_LEN); + } + + return i40e_xmit_frame_ring(skb, tx_ring); +} --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40e_txrx.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40e_txrx.h @@ -0,0 +1,296 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#ifndef _I40E_TXRX_H_ +#define _I40E_TXRX_H_ + +/* Interrupt Throttling and Rate Limiting (storm control) Goodies */ + +#define I40E_MAX_ITR 0x0FF0 /* reg uses 2 usec resolution */ +#define I40E_MIN_ITR 0x0004 /* reg uses 2 usec resolution */ +#define I40E_MAX_IRATE 0x03F +#define I40E_MIN_IRATE 0x001 +#define I40E_IRATE_USEC_RESOLUTION 4 +#define I40E_ITR_100K 0x0005 +#define I40E_ITR_20K 0x0019 +#define I40E_ITR_8K 0x003E +#define I40E_ITR_4K 0x007A +#define I40E_ITR_RX_DEF I40E_ITR_8K +#define I40E_ITR_TX_DEF I40E_ITR_4K +#define I40E_ITR_DYNAMIC 0x8000 /* use top bit as a flag */ +#define I40E_MIN_INT_RATE 250 /* ~= 1000000 / (I40E_MAX_ITR * 2) */ +#define I40E_MAX_INT_RATE 500000 /* == 1000000 / (I40E_MIN_ITR * 2) */ +#define I40E_DEFAULT_IRQ_WORK 256 +#define ITR_TO_REG(setting) ((setting & ~I40E_ITR_DYNAMIC) >> 1) +#define ITR_IS_DYNAMIC(setting) (!!(setting & I40E_ITR_DYNAMIC)) +#define ITR_REG_TO_USEC(itr_reg) (itr_reg << 1) + +#define I40E_QUEUE_END_OF_LIST 0x7FF + +/* this enum matches hardware bits and is meant to be used by DYN_CTLN + * registers and QINT registers or more generally anywhere in the manual + * mentioning ITR_INDX, ITR_NONE cannot be used as an index 'n' into any + * register but instead is a special value meaning "don't update" ITR0/1/2. + */ +enum i40e_dyn_idx_t { + I40E_IDX_ITR0 = 0, + I40E_IDX_ITR1 = 1, + I40E_IDX_ITR2 = 2, + I40E_ITR_NONE = 3 /* ITR_NONE must not be used as an index */ +}; + +/* these are indexes into ITRN registers */ +#define I40E_RX_ITR I40E_IDX_ITR0 +#define I40E_TX_ITR I40E_IDX_ITR1 +#define I40E_PE_ITR I40E_IDX_ITR2 + +/* Supported RSS offloads */ +#define I40E_DEFAULT_RSS_HENA ( \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_UNICAST_IPV4_UDP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV4_UDP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV4_UDP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV4_SCTP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV4_TCP_SYN) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV4_TCP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV4_OTHER) | \ + ((u64)1 << I40E_FILTER_PCTYPE_FRAG_IPV4) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_UNICAST_IPV6_UDP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV6_UDP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV6_UDP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV6_TCP_SYN) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV6_TCP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV6_SCTP) | \ + ((u64)1 << I40E_FILTER_PCTYPE_NONF_IPV6_OTHER) | \ + ((u64)1 << I40E_FILTER_PCTYPE_FRAG_IPV6) | \ + ((u64)1 << I40E_FILTER_PCTYPE_L2_PAYLOAD)) + +/* Supported Rx Buffer Sizes */ +#define I40E_RXBUFFER_512 512 /* Used for packet split */ +#define I40E_RXBUFFER_2048 2048 +#define I40E_RXBUFFER_3072 3072 /* For FCoE MTU of 2158 */ +#define I40E_RXBUFFER_4096 4096 +#define I40E_RXBUFFER_8192 8192 +#define I40E_MAX_RXBUFFER 9728 /* largest size for single descriptor */ + +/* NOTE: netdev_alloc_skb reserves up to 64 bytes, NET_IP_ALIGN means we + * reserve 2 more, and skb_shared_info adds an additional 384 bytes more, + * this adds up to 512 bytes of extra data meaning the smallest allocation + * we could have is 1K. + * i.e. RXBUFFER_512 --> size-1024 slab + */ +#define I40E_RX_HDR_SIZE I40E_RXBUFFER_512 + +/* How many Rx Buffers do we bundle into one write to the hardware ? */ +#define I40E_RX_BUFFER_WRITE 16 /* Must be power of 2 */ +#define I40E_RX_NEXT_DESC(r, i, n) \ + do { \ + (i)++; \ + if ((i) == (r)->count) \ + i = 0; \ + (n) = I40E_RX_DESC((r), (i)); \ + } while (0) + +#define I40E_RX_NEXT_DESC_PREFETCH(r, i, n) \ + do { \ + I40E_RX_NEXT_DESC((r), (i), (n)); \ + prefetch((n)); \ + } while (0) + +#define i40e_rx_desc i40e_32byte_rx_desc + +#define I40E_MIN_TX_LEN 17 +#define I40E_MAX_DATA_PER_TXD 16383 /* aka 16kB - 1 */ + +/* Tx Descriptors needed, worst case */ +#define TXD_USE_COUNT(S) DIV_ROUND_UP((S), I40E_MAX_DATA_PER_TXD) +#define DESC_NEEDED ((MAX_SKB_FRAGS * TXD_USE_COUNT(PAGE_SIZE)) + 4) + +#define I40E_TX_FLAGS_CSUM (u32)(1) +#define I40E_TX_FLAGS_HW_VLAN (u32)(1 << 1) +#define I40E_TX_FLAGS_SW_VLAN (u32)(1 << 2) +#define I40E_TX_FLAGS_TSO (u32)(1 << 3) +#define I40E_TX_FLAGS_IPV4 (u32)(1 << 4) +#define I40E_TX_FLAGS_IPV6 (u32)(1 << 5) +#define I40E_TX_FLAGS_FCCRC (u32)(1 << 6) +#define I40E_TX_FLAGS_FSO (u32)(1 << 7) +#define I40E_TX_FLAGS_VLAN_MASK 0xffff0000 +#define I40E_TX_FLAGS_VLAN_PRIO_MASK 0xe0000000 +#define I40E_TX_FLAGS_VLAN_PRIO_SHIFT 29 +#define I40E_TX_FLAGS_VLAN_SHIFT 16 + +struct i40e_tx_buffer { + struct i40e_tx_desc *next_to_watch; + unsigned long time_stamp; + struct sk_buff *skb; + unsigned int bytecount; + unsigned short gso_segs; + DEFINE_DMA_UNMAP_ADDR(dma); + DEFINE_DMA_UNMAP_LEN(len); + u32 tx_flags; +}; + +struct i40e_rx_buffer { + struct sk_buff *skb; + dma_addr_t dma; + struct page *page; + dma_addr_t page_dma; + unsigned int page_offset; +}; + +struct i40e_queue_stats { + u64 packets; + u64 bytes; +}; + +struct i40e_tx_queue_stats { + u64 restart_queue; + u64 tx_busy; + u64 tx_done_old; +}; + +struct i40e_rx_queue_stats { + u64 non_eop_descs; + u64 alloc_page_failed; + u64 alloc_buff_failed; +}; + +enum i40e_ring_state_t { + __I40E_TX_FDIR_INIT_DONE, + __I40E_TX_XPS_INIT_DONE, + __I40E_TX_DETECT_HANG, + __I40E_HANG_CHECK_ARMED, + __I40E_RX_PS_ENABLED, + __I40E_RX_LRO_ENABLED, + __I40E_RX_16BYTE_DESC_ENABLED, +}; + +#define ring_is_ps_enabled(ring) \ + test_bit(__I40E_RX_PS_ENABLED, &(ring)->state) +#define set_ring_ps_enabled(ring) \ + set_bit(__I40E_RX_PS_ENABLED, &(ring)->state) +#define clear_ring_ps_enabled(ring) \ + clear_bit(__I40E_RX_PS_ENABLED, &(ring)->state) +#define check_for_tx_hang(ring) \ + test_bit(__I40E_TX_DETECT_HANG, &(ring)->state) +#define set_check_for_tx_hang(ring) \ + set_bit(__I40E_TX_DETECT_HANG, &(ring)->state) +#define clear_check_for_tx_hang(ring) \ + clear_bit(__I40E_TX_DETECT_HANG, &(ring)->state) +#define ring_is_lro_enabled(ring) \ + test_bit(__I40E_RX_LRO_ENABLED, &(ring)->state) +#define set_ring_lro_enabled(ring) \ + set_bit(__I40E_RX_LRO_ENABLED, &(ring)->state) +#define clear_ring_lro_enabled(ring) \ + clear_bit(__I40E_RX_LRO_ENABLED, &(ring)->state) +#define ring_is_16byte_desc_enabled(ring) \ + test_bit(__I40E_RX_16BYTE_DESC_ENABLED, &(ring)->state) +#define set_ring_16byte_desc_enabled(ring) \ + set_bit(__I40E_RX_16BYTE_DESC_ENABLED, &(ring)->state) +#define clear_ring_16byte_desc_enabled(ring) \ + clear_bit(__I40E_RX_16BYTE_DESC_ENABLED, &(ring)->state) + +/* struct that defines a descriptor ring, associated with a VSI */ +struct i40e_ring { + struct i40e_ring *next; /* pointer to next ring in q_vector */ + void *desc; /* Descriptor ring memory */ + struct device *dev; /* Used for DMA mapping */ + struct net_device *netdev; /* netdev ring maps to */ + union { + struct i40e_tx_buffer *tx_bi; + struct i40e_rx_buffer *rx_bi; + }; + unsigned long state; + u16 queue_index; /* Queue number of ring */ + u8 dcb_tc; /* Traffic class of ring */ + u8 __iomem *tail; + + u16 count; /* Number of descriptors */ + u16 reg_idx; /* HW register index of the ring */ + u16 rx_hdr_len; + u16 rx_buf_len; + u8 dtype; +#define I40E_RX_DTYPE_NO_SPLIT 0 +#define I40E_RX_DTYPE_SPLIT_ALWAYS 1 +#define I40E_RX_DTYPE_HEADER_SPLIT 2 + u8 hsplit; +#define I40E_RX_SPLIT_L2 0x1 +#define I40E_RX_SPLIT_IP 0x2 +#define I40E_RX_SPLIT_TCP_UDP 0x4 +#define I40E_RX_SPLIT_SCTP 0x8 + + /* used in interrupt processing */ + u16 next_to_use; + u16 next_to_clean; + + u8 atr_sample_rate; + u8 atr_count; + + bool ring_active; /* is ring online or not */ + + /* stats structs */ + struct i40e_queue_stats stats; + struct u64_stats_sync syncp; + union { + struct i40e_tx_queue_stats tx_stats; + struct i40e_rx_queue_stats rx_stats; + }; + + unsigned int size; /* length of descriptor ring in bytes */ + dma_addr_t dma; /* physical address of ring */ + + struct i40e_vsi *vsi; /* Backreference to associated VSI */ + struct i40e_q_vector *q_vector; /* Backreference to associated vector */ + + struct rcu_head rcu; /* to avoid race on free */ +} ____cacheline_internodealigned_in_smp; + +enum i40e_latency_range { + I40E_LOWEST_LATENCY = 0, + I40E_LOW_LATENCY = 1, + I40E_BULK_LATENCY = 2, +}; + +struct i40e_ring_container { + /* array of pointers to rings */ + struct i40e_ring *ring; + unsigned int total_bytes; /* total bytes processed this int */ + unsigned int total_packets; /* total packets processed this int */ + u16 count; + enum i40e_latency_range latency_range; + u16 itr; +}; + +/* iterator for handling rings in ring container */ +#define i40e_for_each_ring(pos, head) \ + for (pos = (head).ring; pos != NULL; pos = pos->next) + +void i40evf_alloc_rx_buffers(struct i40e_ring *rxr, u16 cleaned_count); +netdev_tx_t i40evf_xmit_frame(struct sk_buff *skb, struct net_device *netdev); +void i40evf_clean_tx_ring(struct i40e_ring *tx_ring); +void i40evf_clean_rx_ring(struct i40e_ring *rx_ring); +int i40evf_setup_tx_descriptors(struct i40e_ring *tx_ring); +int i40evf_setup_rx_descriptors(struct i40e_ring *rx_ring); +void i40evf_free_tx_resources(struct i40e_ring *tx_ring); +void i40evf_free_rx_resources(struct i40e_ring *rx_ring); +int i40evf_napi_poll(struct napi_struct *napi, int budget); +#endif /* _I40E_TXRX_H_ */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40e_type.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40e_type.h @@ -0,0 +1,1160 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#ifndef _I40E_TYPE_H_ +#define _I40E_TYPE_H_ + +#include "i40e_status.h" +#include "i40e_osdep.h" +#include "i40e_register.h" +#include "i40e_adminq.h" +#include "i40e_hmc.h" +#include "i40e_lan_hmc.h" + +/* Device IDs */ +#define I40E_DEV_ID_SFP_XL710 0x1572 +#define I40E_DEV_ID_SFP_X710 0x1573 +#define I40E_DEV_ID_QEMU 0x1574 +#define I40E_DEV_ID_KX_A 0x157F +#define I40E_DEV_ID_KX_B 0x1580 +#define I40E_DEV_ID_KX_C 0x1581 +#define I40E_DEV_ID_KX_D 0x1582 +#define I40E_DEV_ID_QSFP_A 0x1583 +#define I40E_DEV_ID_QSFP_B 0x1584 +#define I40E_DEV_ID_QSFP_C 0x1585 +#define I40E_DEV_ID_VF 0x154C +#define I40E_DEV_ID_VF_HV 0x1571 + +#define i40e_is_40G_device(d) ((d) == I40E_DEV_ID_QSFP_A || \ + (d) == I40E_DEV_ID_QSFP_B || \ + (d) == I40E_DEV_ID_QSFP_C) + +#define I40E_MAX_VSI_QP 16 +#define I40E_MAX_VF_VSI 3 +#define I40E_MAX_CHAINED_RX_BUFFERS 5 +#define I40E_MAX_PF_UDP_OFFLOAD_PORTS 16 + +/* Max default timeout in ms, */ +#define I40E_MAX_NVM_TIMEOUT 18000 + +/* Switch from mc to the 2usec global time (this is the GTIME resolution) */ +#define I40E_MS_TO_GTIME(time) (((time) * 1000) / 2) + +/* forward declaration */ +struct i40e_hw; +typedef void (*I40E_ADMINQ_CALLBACK)(struct i40e_hw *, struct i40e_aq_desc *); + +/* Data type manipulation macros. */ + +#define I40E_DESC_UNUSED(R) \ + ((((R)->next_to_clean > (R)->next_to_use) ? 0 : (R)->count) + \ + (R)->next_to_clean - (R)->next_to_use - 1) + +/* bitfields for Tx queue mapping in QTX_CTL */ +#define I40E_QTX_CTL_VF_QUEUE 0x0 +#define I40E_QTX_CTL_VM_QUEUE 0x1 +#define I40E_QTX_CTL_PF_QUEUE 0x2 + +/* debug masks - set these bits in hw->debug_mask to control output */ +enum i40e_debug_mask { + I40E_DEBUG_INIT = 0x00000001, + I40E_DEBUG_RELEASE = 0x00000002, + + I40E_DEBUG_LINK = 0x00000010, + I40E_DEBUG_PHY = 0x00000020, + I40E_DEBUG_HMC = 0x00000040, + I40E_DEBUG_NVM = 0x00000080, + I40E_DEBUG_LAN = 0x00000100, + I40E_DEBUG_FLOW = 0x00000200, + I40E_DEBUG_DCB = 0x00000400, + I40E_DEBUG_DIAG = 0x00000800, + I40E_DEBUG_FD = 0x00001000, + + I40E_DEBUG_AQ_MESSAGE = 0x01000000, + I40E_DEBUG_AQ_DESCRIPTOR = 0x02000000, + I40E_DEBUG_AQ_DESC_BUFFER = 0x04000000, + I40E_DEBUG_AQ_COMMAND = 0x06000000, + I40E_DEBUG_AQ = 0x0F000000, + + I40E_DEBUG_USER = 0xF0000000, + + I40E_DEBUG_ALL = 0xFFFFFFFF +}; + +/* PCI Bus Info */ +#define I40E_PCI_LINK_WIDTH_1 0x10 +#define I40E_PCI_LINK_WIDTH_2 0x20 +#define I40E_PCI_LINK_WIDTH_4 0x40 +#define I40E_PCI_LINK_WIDTH_8 0x80 +#define I40E_PCI_LINK_SPEED_2500 0x1 +#define I40E_PCI_LINK_SPEED_5000 0x2 +#define I40E_PCI_LINK_SPEED_8000 0x3 + +/* These are structs for managing the hardware information and the operations. + * The structures of function pointers are filled out at init time when we + * know for sure exactly which hardware we're working with. This gives us the + * flexibility of using the same main driver code but adapting to slightly + * different hardware needs as new parts are developed. For this architecture, + * the Firmware and AdminQ are intended to insulate the driver from most of the + * future changes, but these structures will also do part of the job. + */ +enum i40e_mac_type { + I40E_MAC_UNKNOWN = 0, + I40E_MAC_X710, + I40E_MAC_XL710, + I40E_MAC_VF, + I40E_MAC_GENERIC, +}; + +enum i40e_media_type { + I40E_MEDIA_TYPE_UNKNOWN = 0, + I40E_MEDIA_TYPE_FIBER, + I40E_MEDIA_TYPE_BASET, + I40E_MEDIA_TYPE_BACKPLANE, + I40E_MEDIA_TYPE_CX4, + I40E_MEDIA_TYPE_DA, + I40E_MEDIA_TYPE_VIRTUAL +}; + +enum i40e_fc_mode { + I40E_FC_NONE = 0, + I40E_FC_RX_PAUSE, + I40E_FC_TX_PAUSE, + I40E_FC_FULL, + I40E_FC_PFC, + I40E_FC_DEFAULT +}; + +enum i40e_vsi_type { + I40E_VSI_MAIN = 0, + I40E_VSI_VMDQ1, + I40E_VSI_VMDQ2, + I40E_VSI_CTRL, + I40E_VSI_FCOE, + I40E_VSI_MIRROR, + I40E_VSI_SRIOV, + I40E_VSI_FDIR, + I40E_VSI_TYPE_UNKNOWN +}; + +enum i40e_queue_type { + I40E_QUEUE_TYPE_RX = 0, + I40E_QUEUE_TYPE_TX, + I40E_QUEUE_TYPE_PE_CEQ, + I40E_QUEUE_TYPE_UNKNOWN +}; + +struct i40e_link_status { + enum i40e_aq_phy_type phy_type; + enum i40e_aq_link_speed link_speed; + u8 link_info; + u8 an_info; + u8 ext_info; + u8 loopback; + /* is Link Status Event notification to SW enabled */ + bool lse_enable; +}; + +struct i40e_phy_info { + struct i40e_link_status link_info; + struct i40e_link_status link_info_old; + u32 autoneg_advertised; + u32 phy_id; + u32 module_type; + bool get_link_info; + enum i40e_media_type media_type; +}; + +#define I40E_HW_CAP_MAX_GPIO 30 +/* Capabilities of a PF or a VF or the whole device */ +struct i40e_hw_capabilities { + u32 switch_mode; +#define I40E_NVM_IMAGE_TYPE_EVB 0x0 +#define I40E_NVM_IMAGE_TYPE_CLOUD 0x2 +#define I40E_NVM_IMAGE_TYPE_UDP_CLOUD 0x3 + + u32 management_mode; + u32 npar_enable; + u32 os2bmc; + u32 valid_functions; + bool sr_iov_1_1; + bool vmdq; + bool evb_802_1_qbg; /* Edge Virtual Bridging */ + bool evb_802_1_qbh; /* Bridge Port Extension */ + bool dcb; + bool fcoe; + bool mfp_mode_1; + bool mgmt_cem; + bool ieee_1588; + bool iwarp; + bool fd; + u32 fd_filters_guaranteed; + u32 fd_filters_best_effort; + bool rss; + u32 rss_table_size; + u32 rss_table_entry_width; + bool led[I40E_HW_CAP_MAX_GPIO]; + bool sdp[I40E_HW_CAP_MAX_GPIO]; + u32 nvm_image_type; + u32 num_flow_director_filters; + u32 num_vfs; + u32 vf_base_id; + u32 num_vsis; + u32 num_rx_qp; + u32 num_tx_qp; + u32 base_queue; + u32 num_msix_vectors; + u32 num_msix_vectors_vf; + u32 led_pin_num; + u32 sdp_pin_num; + u32 mdio_port_num; + u32 mdio_port_mode; + u8 rx_buf_chain_len; + u32 enabled_tcmap; + u32 maxtc; +}; + +struct i40e_mac_info { + enum i40e_mac_type type; + u8 addr[ETH_ALEN]; + u8 perm_addr[ETH_ALEN]; + u8 san_addr[ETH_ALEN]; + u16 max_fcoeq; +}; + +enum i40e_aq_resources_ids { + I40E_NVM_RESOURCE_ID = 1 +}; + +enum i40e_aq_resource_access_type { + I40E_RESOURCE_READ = 1, + I40E_RESOURCE_WRITE +}; + +struct i40e_nvm_info { + u64 hw_semaphore_timeout; /* 2usec global time (GTIME resolution) */ + u64 hw_semaphore_wait; /* - || - */ + u32 timeout; /* [ms] */ + u16 sr_size; /* Shadow RAM size in words */ + bool blank_nvm_mode; /* is NVM empty (no FW present)*/ + u16 version; /* NVM package version */ + u32 eetrack; /* NVM data version */ +}; + +/* PCI bus types */ +enum i40e_bus_type { + i40e_bus_type_unknown = 0, + i40e_bus_type_pci, + i40e_bus_type_pcix, + i40e_bus_type_pci_express, + i40e_bus_type_reserved +}; + +/* PCI bus speeds */ +enum i40e_bus_speed { + i40e_bus_speed_unknown = 0, + i40e_bus_speed_33 = 33, + i40e_bus_speed_66 = 66, + i40e_bus_speed_100 = 100, + i40e_bus_speed_120 = 120, + i40e_bus_speed_133 = 133, + i40e_bus_speed_2500 = 2500, + i40e_bus_speed_5000 = 5000, + i40e_bus_speed_8000 = 8000, + i40e_bus_speed_reserved +}; + +/* PCI bus widths */ +enum i40e_bus_width { + i40e_bus_width_unknown = 0, + i40e_bus_width_pcie_x1 = 1, + i40e_bus_width_pcie_x2 = 2, + i40e_bus_width_pcie_x4 = 4, + i40e_bus_width_pcie_x8 = 8, + i40e_bus_width_32 = 32, + i40e_bus_width_64 = 64, + i40e_bus_width_reserved +}; + +/* Bus parameters */ +struct i40e_bus_info { + enum i40e_bus_speed speed; + enum i40e_bus_width width; + enum i40e_bus_type type; + + u16 func; + u16 device; + u16 lan_id; +}; + +/* Flow control (FC) parameters */ +struct i40e_fc_info { + enum i40e_fc_mode current_mode; /* FC mode in effect */ + enum i40e_fc_mode requested_mode; /* FC mode requested by caller */ +}; + +#define I40E_MAX_TRAFFIC_CLASS 8 +#define I40E_MAX_USER_PRIORITY 8 +#define I40E_DCBX_MAX_APPS 32 +#define I40E_LLDPDU_SIZE 1500 + +/* IEEE 802.1Qaz ETS Configuration data */ +struct i40e_ieee_ets_config { + u8 willing; + u8 cbs; + u8 maxtcs; + u8 prioritytable[I40E_MAX_TRAFFIC_CLASS]; + u8 tcbwtable[I40E_MAX_TRAFFIC_CLASS]; + u8 tsatable[I40E_MAX_TRAFFIC_CLASS]; +}; + +/* IEEE 802.1Qaz ETS Recommendation data */ +struct i40e_ieee_ets_recommend { + u8 prioritytable[I40E_MAX_TRAFFIC_CLASS]; + u8 tcbwtable[I40E_MAX_TRAFFIC_CLASS]; + u8 tsatable[I40E_MAX_TRAFFIC_CLASS]; +}; + +/* IEEE 802.1Qaz PFC Configuration data */ +struct i40e_ieee_pfc_config { + u8 willing; + u8 mbc; + u8 pfccap; + u8 pfcenable; +}; + +/* IEEE 802.1Qaz Application Priority data */ +struct i40e_ieee_app_priority_table { + u8 priority; + u8 selector; + u16 protocolid; +}; + +struct i40e_dcbx_config { + u32 numapps; + struct i40e_ieee_ets_config etscfg; + struct i40e_ieee_ets_recommend etsrec; + struct i40e_ieee_pfc_config pfc; + struct i40e_ieee_app_priority_table app[I40E_DCBX_MAX_APPS]; +}; + +/* Port hardware description */ +struct i40e_hw { + u8 __iomem *hw_addr; + void *back; + + /* function pointer structs */ + struct i40e_phy_info phy; + struct i40e_mac_info mac; + struct i40e_bus_info bus; + struct i40e_nvm_info nvm; + struct i40e_fc_info fc; + + /* pci info */ + u16 device_id; + u16 vendor_id; + u16 subsystem_device_id; + u16 subsystem_vendor_id; + u8 revision_id; + u8 port; + bool adapter_stopped; + + /* capabilities for entire device and PCI func */ + struct i40e_hw_capabilities dev_caps; + struct i40e_hw_capabilities func_caps; + + /* Flow Director shared filter space */ + u16 fdir_shared_filter_count; + + /* device profile info */ + u8 pf_id; + u16 main_vsi_seid; + + /* Closest numa node to the device */ + u16 numa_node; + + /* Admin Queue info */ + struct i40e_adminq_info aq; + + /* HMC info */ + struct i40e_hmc_info hmc; /* HMC info struct */ + + /* LLDP/DCBX Status */ + u16 dcbx_status; + + /* DCBX info */ + struct i40e_dcbx_config local_dcbx_config; + struct i40e_dcbx_config remote_dcbx_config; + + /* debug mask */ + u32 debug_mask; +}; + +struct i40e_driver_version { + u8 major_version; + u8 minor_version; + u8 build_version; + u8 subbuild_version; +}; + +/* RX Descriptors */ +union i40e_16byte_rx_desc { + struct { + __le64 pkt_addr; /* Packet buffer address */ + __le64 hdr_addr; /* Header buffer address */ + } read; + struct { + struct { + struct { + union { + __le16 mirroring_status; + __le16 fcoe_ctx_id; + } mirr_fcoe; + __le16 l2tag1; + } lo_dword; + union { + __le32 rss; /* RSS Hash */ + __le32 fd_id; /* Flow director filter id */ + __le32 fcoe_param; /* FCoE DDP Context id */ + } hi_dword; + } qword0; + struct { + /* ext status/error/pktype/length */ + __le64 status_error_len; + } qword1; + } wb; /* writeback */ +}; + +union i40e_32byte_rx_desc { + struct { + __le64 pkt_addr; /* Packet buffer address */ + __le64 hdr_addr; /* Header buffer address */ + /* bit 0 of hdr_buffer_addr is DD bit */ + __le64 rsvd1; + __le64 rsvd2; + } read; + struct { + struct { + struct { + union { + __le16 mirroring_status; + __le16 fcoe_ctx_id; + } mirr_fcoe; + __le16 l2tag1; + } lo_dword; + union { + __le32 rss; /* RSS Hash */ + __le32 fcoe_param; /* FCoE DDP Context id */ + /* Flow director filter id in case of + * Programming status desc WB + */ + __le32 fd_id; + } hi_dword; + } qword0; + struct { + /* status/error/pktype/length */ + __le64 status_error_len; + } qword1; + struct { + __le16 ext_status; /* extended status */ + __le16 rsvd; + __le16 l2tag2_1; + __le16 l2tag2_2; + } qword2; + struct { + union { + __le32 flex_bytes_lo; + __le32 pe_status; + } lo_dword; + union { + __le32 flex_bytes_hi; + __le32 fd_id; + } hi_dword; + } qword3; + } wb; /* writeback */ +}; + +#define I40E_RXD_QW1_STATUS_SHIFT 0 +#define I40E_RXD_QW1_STATUS_MASK (0x7FFFUL << I40E_RXD_QW1_STATUS_SHIFT) + +enum i40e_rx_desc_status_bits { + /* Note: These are predefined bit offsets */ + I40E_RX_DESC_STATUS_DD_SHIFT = 0, + I40E_RX_DESC_STATUS_EOF_SHIFT = 1, + I40E_RX_DESC_STATUS_L2TAG1P_SHIFT = 2, + I40E_RX_DESC_STATUS_L3L4P_SHIFT = 3, + I40E_RX_DESC_STATUS_CRCP_SHIFT = 4, + I40E_RX_DESC_STATUS_TSYNINDX_SHIFT = 5, /* 2 BITS */ + I40E_RX_DESC_STATUS_TSYNVALID_SHIFT = 7, + I40E_RX_DESC_STATUS_PIF_SHIFT = 8, + I40E_RX_DESC_STATUS_UMBCAST_SHIFT = 9, /* 2 BITS */ + I40E_RX_DESC_STATUS_FLM_SHIFT = 11, + I40E_RX_DESC_STATUS_FLTSTAT_SHIFT = 12, /* 2 BITS */ + I40E_RX_DESC_STATUS_LPBK_SHIFT = 14, + I40E_RX_DESC_STATUS_IPV6EXADD_SHIFT = 15, + I40E_RX_DESC_STATUS_RESERVED_SHIFT = 16, /* 2 BITS */ + I40E_RX_DESC_STATUS_UDP_0_SHIFT = 18 +}; + +#define I40E_RXD_QW1_STATUS_TSYNINDX_SHIFT I40E_RX_DESC_STATUS_TSYNINDX_SHIFT +#define I40E_RXD_QW1_STATUS_TSYNINDX_MASK (0x3UL << \ + I40E_RXD_QW1_STATUS_TSYNINDX_SHIFT) + +#define I40E_RXD_QW1_STATUS_TSYNVALID_SHIFT I40E_RX_DESC_STATUS_TSYNVALID_SHIFT +#define I40E_RXD_QW1_STATUS_TSYNVALID_MASK (0x1UL << \ + I40E_RXD_QW1_STATUS_TSYNVALID_SHIFT) + +enum i40e_rx_desc_fltstat_values { + I40E_RX_DESC_FLTSTAT_NO_DATA = 0, + I40E_RX_DESC_FLTSTAT_RSV_FD_ID = 1, /* 16byte desc? FD_ID : RSV */ + I40E_RX_DESC_FLTSTAT_RSV = 2, + I40E_RX_DESC_FLTSTAT_RSS_HASH = 3, +}; + +#define I40E_RXD_QW1_ERROR_SHIFT 19 +#define I40E_RXD_QW1_ERROR_MASK (0xFFUL << I40E_RXD_QW1_ERROR_SHIFT) + +enum i40e_rx_desc_error_bits { + /* Note: These are predefined bit offsets */ + I40E_RX_DESC_ERROR_RXE_SHIFT = 0, + I40E_RX_DESC_ERROR_RECIPE_SHIFT = 1, + I40E_RX_DESC_ERROR_HBO_SHIFT = 2, + I40E_RX_DESC_ERROR_L3L4E_SHIFT = 3, /* 3 BITS */ + I40E_RX_DESC_ERROR_IPE_SHIFT = 3, + I40E_RX_DESC_ERROR_L4E_SHIFT = 4, + I40E_RX_DESC_ERROR_EIPE_SHIFT = 5, + I40E_RX_DESC_ERROR_OVERSIZE_SHIFT = 6 +}; + +enum i40e_rx_desc_error_l3l4e_fcoe_masks { + I40E_RX_DESC_ERROR_L3L4E_NONE = 0, + I40E_RX_DESC_ERROR_L3L4E_PROT = 1, + I40E_RX_DESC_ERROR_L3L4E_FC = 2, + I40E_RX_DESC_ERROR_L3L4E_DMAC_ERR = 3, + I40E_RX_DESC_ERROR_L3L4E_DMAC_WARN = 4 +}; + +#define I40E_RXD_QW1_PTYPE_SHIFT 30 +#define I40E_RXD_QW1_PTYPE_MASK (0xFFULL << I40E_RXD_QW1_PTYPE_SHIFT) + +/* Packet type non-ip values */ +enum i40e_rx_l2_ptype { + I40E_RX_PTYPE_L2_RESERVED = 0, + I40E_RX_PTYPE_L2_MAC_PAY2 = 1, + I40E_RX_PTYPE_L2_TIMESYNC_PAY2 = 2, + I40E_RX_PTYPE_L2_FIP_PAY2 = 3, + I40E_RX_PTYPE_L2_OUI_PAY2 = 4, + I40E_RX_PTYPE_L2_MACCNTRL_PAY2 = 5, + I40E_RX_PTYPE_L2_LLDP_PAY2 = 6, + I40E_RX_PTYPE_L2_ECP_PAY2 = 7, + I40E_RX_PTYPE_L2_EVB_PAY2 = 8, + I40E_RX_PTYPE_L2_QCN_PAY2 = 9, + I40E_RX_PTYPE_L2_EAPOL_PAY2 = 10, + I40E_RX_PTYPE_L2_ARP = 11, + I40E_RX_PTYPE_L2_FCOE_PAY3 = 12, + I40E_RX_PTYPE_L2_FCOE_FCDATA_PAY3 = 13, + I40E_RX_PTYPE_L2_FCOE_FCRDY_PAY3 = 14, + I40E_RX_PTYPE_L2_FCOE_FCRSP_PAY3 = 15, + I40E_RX_PTYPE_L2_FCOE_FCOTHER_PA = 16, + I40E_RX_PTYPE_L2_FCOE_VFT_PAY3 = 17, + I40E_RX_PTYPE_L2_FCOE_VFT_FCDATA = 18, + I40E_RX_PTYPE_L2_FCOE_VFT_FCRDY = 19, + I40E_RX_PTYPE_L2_FCOE_VFT_FCRSP = 20, + I40E_RX_PTYPE_L2_FCOE_VFT_FCOTHER = 21, + I40E_RX_PTYPE_GRENAT4_MAC_PAY3 = 58, + I40E_RX_PTYPE_GRENAT4_MACVLAN_IPV6_ICMP_PAY4 = 87, + I40E_RX_PTYPE_GRENAT6_MAC_PAY3 = 124, + I40E_RX_PTYPE_GRENAT6_MACVLAN_IPV6_ICMP_PAY4 = 153 +}; + +struct i40e_rx_ptype_decoded { + u32 ptype:8; + u32 known:1; + u32 outer_ip:1; + u32 outer_ip_ver:1; + u32 outer_frag:1; + u32 tunnel_type:3; + u32 tunnel_end_prot:2; + u32 tunnel_end_frag:1; + u32 inner_prot:4; + u32 payload_layer:3; +}; + +enum i40e_rx_ptype_outer_ip { + I40E_RX_PTYPE_OUTER_L2 = 0, + I40E_RX_PTYPE_OUTER_IP = 1 +}; + +enum i40e_rx_ptype_outer_ip_ver { + I40E_RX_PTYPE_OUTER_NONE = 0, + I40E_RX_PTYPE_OUTER_IPV4 = 0, + I40E_RX_PTYPE_OUTER_IPV6 = 1 +}; + +enum i40e_rx_ptype_outer_fragmented { + I40E_RX_PTYPE_NOT_FRAG = 0, + I40E_RX_PTYPE_FRAG = 1 +}; + +enum i40e_rx_ptype_tunnel_type { + I40E_RX_PTYPE_TUNNEL_NONE = 0, + I40E_RX_PTYPE_TUNNEL_IP_IP = 1, + I40E_RX_PTYPE_TUNNEL_IP_GRENAT = 2, + I40E_RX_PTYPE_TUNNEL_IP_GRENAT_MAC = 3, + I40E_RX_PTYPE_TUNNEL_IP_GRENAT_MAC_VLAN = 4, +}; + +enum i40e_rx_ptype_tunnel_end_prot { + I40E_RX_PTYPE_TUNNEL_END_NONE = 0, + I40E_RX_PTYPE_TUNNEL_END_IPV4 = 1, + I40E_RX_PTYPE_TUNNEL_END_IPV6 = 2, +}; + +enum i40e_rx_ptype_inner_prot { + I40E_RX_PTYPE_INNER_PROT_NONE = 0, + I40E_RX_PTYPE_INNER_PROT_UDP = 1, + I40E_RX_PTYPE_INNER_PROT_TCP = 2, + I40E_RX_PTYPE_INNER_PROT_SCTP = 3, + I40E_RX_PTYPE_INNER_PROT_ICMP = 4, + I40E_RX_PTYPE_INNER_PROT_TIMESYNC = 5 +}; + +enum i40e_rx_ptype_payload_layer { + I40E_RX_PTYPE_PAYLOAD_LAYER_NONE = 0, + I40E_RX_PTYPE_PAYLOAD_LAYER_PAY2 = 1, + I40E_RX_PTYPE_PAYLOAD_LAYER_PAY3 = 2, + I40E_RX_PTYPE_PAYLOAD_LAYER_PAY4 = 3, +}; + +#define I40E_RXD_QW1_LENGTH_PBUF_SHIFT 38 +#define I40E_RXD_QW1_LENGTH_PBUF_MASK (0x3FFFULL << \ + I40E_RXD_QW1_LENGTH_PBUF_SHIFT) + +#define I40E_RXD_QW1_LENGTH_HBUF_SHIFT 52 +#define I40E_RXD_QW1_LENGTH_HBUF_MASK (0x7FFULL << \ + I40E_RXD_QW1_LENGTH_HBUF_SHIFT) + +#define I40E_RXD_QW1_LENGTH_SPH_SHIFT 63 +#define I40E_RXD_QW1_LENGTH_SPH_MASK (0x1ULL << \ + I40E_RXD_QW1_LENGTH_SPH_SHIFT) + +enum i40e_rx_desc_ext_status_bits { + /* Note: These are predefined bit offsets */ + I40E_RX_DESC_EXT_STATUS_L2TAG2P_SHIFT = 0, + I40E_RX_DESC_EXT_STATUS_L2TAG3P_SHIFT = 1, + I40E_RX_DESC_EXT_STATUS_FLEXBL_SHIFT = 2, /* 2 BITS */ + I40E_RX_DESC_EXT_STATUS_FLEXBH_SHIFT = 4, /* 2 BITS */ + I40E_RX_DESC_EXT_STATUS_FTYPE_SHIFT = 6, /* 3 BITS */ + I40E_RX_DESC_EXT_STATUS_FDLONGB_SHIFT = 9, + I40E_RX_DESC_EXT_STATUS_FCOELONGB_SHIFT = 10, + I40E_RX_DESC_EXT_STATUS_PELONGB_SHIFT = 11, +}; + +enum i40e_rx_desc_pe_status_bits { + /* Note: These are predefined bit offsets */ + I40E_RX_DESC_PE_STATUS_QPID_SHIFT = 0, /* 18 BITS */ + I40E_RX_DESC_PE_STATUS_L4PORT_SHIFT = 0, /* 16 BITS */ + I40E_RX_DESC_PE_STATUS_IPINDEX_SHIFT = 16, /* 8 BITS */ + I40E_RX_DESC_PE_STATUS_QPIDHIT_SHIFT = 24, + I40E_RX_DESC_PE_STATUS_APBVTHIT_SHIFT = 25, + I40E_RX_DESC_PE_STATUS_PORTV_SHIFT = 26, + I40E_RX_DESC_PE_STATUS_URG_SHIFT = 27, + I40E_RX_DESC_PE_STATUS_IPFRAG_SHIFT = 28, + I40E_RX_DESC_PE_STATUS_IPOPT_SHIFT = 29 +}; + +#define I40E_RX_PROG_STATUS_DESC_LENGTH_SHIFT 38 +#define I40E_RX_PROG_STATUS_DESC_LENGTH 0x2000000 + +#define I40E_RX_PROG_STATUS_DESC_QW1_PROGID_SHIFT 2 +#define I40E_RX_PROG_STATUS_DESC_QW1_PROGID_MASK (0x7UL << \ + I40E_RX_PROG_STATUS_DESC_QW1_PROGID_SHIFT) + +#define I40E_RX_PROG_STATUS_DESC_QW1_ERROR_SHIFT 19 +#define I40E_RX_PROG_STATUS_DESC_QW1_ERROR_MASK (0x3FUL << \ + I40E_RX_PROG_STATUS_DESC_QW1_ERROR_SHIFT) + +enum i40e_rx_prog_status_desc_status_bits { + /* Note: These are predefined bit offsets */ + I40E_RX_PROG_STATUS_DESC_DD_SHIFT = 0, + I40E_RX_PROG_STATUS_DESC_PROG_ID_SHIFT = 2 /* 3 BITS */ +}; + +enum i40e_rx_prog_status_desc_prog_id_masks { + I40E_RX_PROG_STATUS_DESC_FD_FILTER_STATUS = 1, + I40E_RX_PROG_STATUS_DESC_FCOE_CTXT_PROG_STATUS = 2, + I40E_RX_PROG_STATUS_DESC_FCOE_CTXT_INVL_STATUS = 4, +}; + +enum i40e_rx_prog_status_desc_error_bits { + /* Note: These are predefined bit offsets */ + I40E_RX_PROG_STATUS_DESC_FD_TBL_FULL_SHIFT = 0, + I40E_RX_PROG_STATUS_DESC_NO_FD_ENTRY_SHIFT = 1, + I40E_RX_PROG_STATUS_DESC_FCOE_TBL_FULL_SHIFT = 2, + I40E_RX_PROG_STATUS_DESC_FCOE_CONFLICT_SHIFT = 3 +}; + +/* TX Descriptor */ +struct i40e_tx_desc { + __le64 buffer_addr; /* Address of descriptor's data buf */ + __le64 cmd_type_offset_bsz; +}; + +#define I40E_TXD_QW1_DTYPE_SHIFT 0 +#define I40E_TXD_QW1_DTYPE_MASK (0xFUL << I40E_TXD_QW1_DTYPE_SHIFT) + +enum i40e_tx_desc_dtype_value { + I40E_TX_DESC_DTYPE_DATA = 0x0, + I40E_TX_DESC_DTYPE_NOP = 0x1, /* same as Context desc */ + I40E_TX_DESC_DTYPE_CONTEXT = 0x1, + I40E_TX_DESC_DTYPE_FCOE_CTX = 0x2, + I40E_TX_DESC_DTYPE_FILTER_PROG = 0x8, + I40E_TX_DESC_DTYPE_DDP_CTX = 0x9, + I40E_TX_DESC_DTYPE_FLEX_DATA = 0xB, + I40E_TX_DESC_DTYPE_FLEX_CTX_1 = 0xC, + I40E_TX_DESC_DTYPE_FLEX_CTX_2 = 0xD, + I40E_TX_DESC_DTYPE_DESC_DONE = 0xF +}; + +#define I40E_TXD_QW1_CMD_SHIFT 4 +#define I40E_TXD_QW1_CMD_MASK (0x3FFUL << I40E_TXD_QW1_CMD_SHIFT) + +enum i40e_tx_desc_cmd_bits { + I40E_TX_DESC_CMD_EOP = 0x0001, + I40E_TX_DESC_CMD_RS = 0x0002, + I40E_TX_DESC_CMD_ICRC = 0x0004, + I40E_TX_DESC_CMD_IL2TAG1 = 0x0008, + I40E_TX_DESC_CMD_DUMMY = 0x0010, + I40E_TX_DESC_CMD_IIPT_NONIP = 0x0000, /* 2 BITS */ + I40E_TX_DESC_CMD_IIPT_IPV6 = 0x0020, /* 2 BITS */ + I40E_TX_DESC_CMD_IIPT_IPV4 = 0x0040, /* 2 BITS */ + I40E_TX_DESC_CMD_IIPT_IPV4_CSUM = 0x0060, /* 2 BITS */ + I40E_TX_DESC_CMD_FCOET = 0x0080, + I40E_TX_DESC_CMD_L4T_EOFT_UNK = 0x0000, /* 2 BITS */ + I40E_TX_DESC_CMD_L4T_EOFT_TCP = 0x0100, /* 2 BITS */ + I40E_TX_DESC_CMD_L4T_EOFT_SCTP = 0x0200, /* 2 BITS */ + I40E_TX_DESC_CMD_L4T_EOFT_UDP = 0x0300, /* 2 BITS */ + I40E_TX_DESC_CMD_L4T_EOFT_EOF_N = 0x0000, /* 2 BITS */ + I40E_TX_DESC_CMD_L4T_EOFT_EOF_T = 0x0100, /* 2 BITS */ + I40E_TX_DESC_CMD_L4T_EOFT_EOF_NI = 0x0200, /* 2 BITS */ + I40E_TX_DESC_CMD_L4T_EOFT_EOF_A = 0x0300, /* 2 BITS */ +}; + +#define I40E_TXD_QW1_OFFSET_SHIFT 16 +#define I40E_TXD_QW1_OFFSET_MASK (0x3FFFFULL << \ + I40E_TXD_QW1_OFFSET_SHIFT) + +enum i40e_tx_desc_length_fields { + /* Note: These are predefined bit offsets */ + I40E_TX_DESC_LENGTH_MACLEN_SHIFT = 0, /* 7 BITS */ + I40E_TX_DESC_LENGTH_IPLEN_SHIFT = 7, /* 7 BITS */ + I40E_TX_DESC_LENGTH_L4_FC_LEN_SHIFT = 14 /* 4 BITS */ +}; + +#define I40E_TXD_QW1_TX_BUF_SZ_SHIFT 34 +#define I40E_TXD_QW1_TX_BUF_SZ_MASK (0x3FFFULL << \ + I40E_TXD_QW1_TX_BUF_SZ_SHIFT) + +#define I40E_TXD_QW1_L2TAG1_SHIFT 48 +#define I40E_TXD_QW1_L2TAG1_MASK (0xFFFFULL << I40E_TXD_QW1_L2TAG1_SHIFT) + +/* Context descriptors */ +struct i40e_tx_context_desc { + __le32 tunneling_params; + __le16 l2tag2; + __le16 rsvd; + __le64 type_cmd_tso_mss; +}; + +#define I40E_TXD_CTX_QW1_DTYPE_SHIFT 0 +#define I40E_TXD_CTX_QW1_DTYPE_MASK (0xFUL << I40E_TXD_CTX_QW1_DTYPE_SHIFT) + +#define I40E_TXD_CTX_QW1_CMD_SHIFT 4 +#define I40E_TXD_CTX_QW1_CMD_MASK (0xFFFFUL << I40E_TXD_CTX_QW1_CMD_SHIFT) + +enum i40e_tx_ctx_desc_cmd_bits { + I40E_TX_CTX_DESC_TSO = 0x01, + I40E_TX_CTX_DESC_TSYN = 0x02, + I40E_TX_CTX_DESC_IL2TAG2 = 0x04, + I40E_TX_CTX_DESC_IL2TAG2_IL2H = 0x08, + I40E_TX_CTX_DESC_SWTCH_NOTAG = 0x00, + I40E_TX_CTX_DESC_SWTCH_UPLINK = 0x10, + I40E_TX_CTX_DESC_SWTCH_LOCAL = 0x20, + I40E_TX_CTX_DESC_SWTCH_VSI = 0x30, + I40E_TX_CTX_DESC_SWPE = 0x40 +}; + +#define I40E_TXD_CTX_QW1_TSO_LEN_SHIFT 30 +#define I40E_TXD_CTX_QW1_TSO_LEN_MASK (0x3FFFFULL << \ + I40E_TXD_CTX_QW1_TSO_LEN_SHIFT) + +#define I40E_TXD_CTX_QW1_MSS_SHIFT 50 +#define I40E_TXD_CTX_QW1_MSS_MASK (0x3FFFULL << \ + I40E_TXD_CTX_QW1_MSS_SHIFT) + +#define I40E_TXD_CTX_QW1_VSI_SHIFT 50 +#define I40E_TXD_CTX_QW1_VSI_MASK (0x1FFULL << I40E_TXD_CTX_QW1_VSI_SHIFT) + +#define I40E_TXD_CTX_QW0_EXT_IP_SHIFT 0 +#define I40E_TXD_CTX_QW0_EXT_IP_MASK (0x3ULL << \ + I40E_TXD_CTX_QW0_EXT_IP_SHIFT) + +enum i40e_tx_ctx_desc_eipt_offload { + I40E_TX_CTX_EXT_IP_NONE = 0x0, + I40E_TX_CTX_EXT_IP_IPV6 = 0x1, + I40E_TX_CTX_EXT_IP_IPV4_NO_CSUM = 0x2, + I40E_TX_CTX_EXT_IP_IPV4 = 0x3 +}; + +#define I40E_TXD_CTX_QW0_EXT_IPLEN_SHIFT 2 +#define I40E_TXD_CTX_QW0_EXT_IPLEN_MASK (0x3FULL << \ + I40E_TXD_CTX_QW0_EXT_IPLEN_SHIFT) + +#define I40E_TXD_CTX_QW0_NATT_SHIFT 9 +#define I40E_TXD_CTX_QW0_NATT_MASK (0x3ULL << I40E_TXD_CTX_QW0_NATT_SHIFT) + +#define I40E_TXD_CTX_UDP_TUNNELING (0x1ULL << I40E_TXD_CTX_QW0_NATT_SHIFT) +#define I40E_TXD_CTX_GRE_TUNNELING (0x2ULL << I40E_TXD_CTX_QW0_NATT_SHIFT) + +#define I40E_TXD_CTX_QW0_EIP_NOINC_SHIFT 11 +#define I40E_TXD_CTX_QW0_EIP_NOINC_MASK (0x1ULL << \ + I40E_TXD_CTX_QW0_EIP_NOINC_SHIFT) + +#define I40E_TXD_CTX_EIP_NOINC_IPID_CONST I40E_TXD_CTX_QW0_EIP_NOINC_MASK + +#define I40E_TXD_CTX_QW0_NATLEN_SHIFT 12 +#define I40E_TXD_CTX_QW0_NATLEN_MASK (0X7FULL << \ + I40E_TXD_CTX_QW0_NATLEN_SHIFT) + +#define I40E_TXD_CTX_QW0_DECTTL_SHIFT 19 +#define I40E_TXD_CTX_QW0_DECTTL_MASK (0xFULL << \ + I40E_TXD_CTX_QW0_DECTTL_SHIFT) + +struct i40e_filter_program_desc { + __le32 qindex_flex_ptype_vsi; + __le32 rsvd; + __le32 dtype_cmd_cntindex; + __le32 fd_id; +}; +#define I40E_TXD_FLTR_QW0_QINDEX_SHIFT 0 +#define I40E_TXD_FLTR_QW0_QINDEX_MASK (0x7FFUL << \ + I40E_TXD_FLTR_QW0_QINDEX_SHIFT) +#define I40E_TXD_FLTR_QW0_FLEXOFF_SHIFT 11 +#define I40E_TXD_FLTR_QW0_FLEXOFF_MASK (0x7UL << \ + I40E_TXD_FLTR_QW0_FLEXOFF_SHIFT) +#define I40E_TXD_FLTR_QW0_PCTYPE_SHIFT 17 +#define I40E_TXD_FLTR_QW0_PCTYPE_MASK (0x3FUL << \ + I40E_TXD_FLTR_QW0_PCTYPE_SHIFT) + +/* Packet Classifier Types for filters */ +enum i40e_filter_pctype { + /* Note: Values 0-28 are reserved for future use */ + I40E_FILTER_PCTYPE_NONF_UNICAST_IPV4_UDP = 29, + I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV4_UDP = 30, + I40E_FILTER_PCTYPE_NONF_IPV4_UDP = 31, + I40E_FILTER_PCTYPE_NONF_IPV4_TCP_SYN = 32, + I40E_FILTER_PCTYPE_NONF_IPV4_TCP = 33, + I40E_FILTER_PCTYPE_NONF_IPV4_SCTP = 34, + I40E_FILTER_PCTYPE_NONF_IPV4_OTHER = 35, + I40E_FILTER_PCTYPE_FRAG_IPV4 = 36, + /* Note: Values 37-38 are reserved for future use */ + I40E_FILTER_PCTYPE_NONF_UNICAST_IPV6_UDP = 39, + I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV6_UDP = 40, + I40E_FILTER_PCTYPE_NONF_IPV6_UDP = 41, + I40E_FILTER_PCTYPE_NONF_IPV6_TCP_SYN = 42, + I40E_FILTER_PCTYPE_NONF_IPV6_TCP = 43, + I40E_FILTER_PCTYPE_NONF_IPV6_SCTP = 44, + I40E_FILTER_PCTYPE_NONF_IPV6_OTHER = 45, + I40E_FILTER_PCTYPE_FRAG_IPV6 = 46, + /* Note: Value 47 is reserved for future use */ + I40E_FILTER_PCTYPE_FCOE_OX = 48, + I40E_FILTER_PCTYPE_FCOE_RX = 49, + I40E_FILTER_PCTYPE_FCOE_OTHER = 50, + /* Note: Values 51-62 are reserved for future use */ + I40E_FILTER_PCTYPE_L2_PAYLOAD = 63, +}; + +enum i40e_filter_program_desc_dest { + I40E_FILTER_PROGRAM_DESC_DEST_DROP_PACKET = 0x0, + I40E_FILTER_PROGRAM_DESC_DEST_DIRECT_PACKET_QINDEX = 0x1, + I40E_FILTER_PROGRAM_DESC_DEST_DIRECT_PACKET_OTHER = 0x2, +}; + +enum i40e_filter_program_desc_fd_status { + I40E_FILTER_PROGRAM_DESC_FD_STATUS_NONE = 0x0, + I40E_FILTER_PROGRAM_DESC_FD_STATUS_FD_ID = 0x1, + I40E_FILTER_PROGRAM_DESC_FD_STATUS_FD_ID_4FLEX_BYTES = 0x2, + I40E_FILTER_PROGRAM_DESC_FD_STATUS_8FLEX_BYTES = 0x3, +}; + +#define I40E_TXD_FLTR_QW0_DEST_VSI_SHIFT 23 +#define I40E_TXD_FLTR_QW0_DEST_VSI_MASK (0x1FFUL << \ + I40E_TXD_FLTR_QW0_DEST_VSI_SHIFT) + +#define I40E_TXD_FLTR_QW1_CMD_SHIFT 4 +#define I40E_TXD_FLTR_QW1_CMD_MASK (0xFFFFULL << \ + I40E_TXD_FLTR_QW1_CMD_SHIFT) + +#define I40E_TXD_FLTR_QW1_PCMD_SHIFT (0x0ULL + I40E_TXD_FLTR_QW1_CMD_SHIFT) +#define I40E_TXD_FLTR_QW1_PCMD_MASK (0x7ULL << I40E_TXD_FLTR_QW1_PCMD_SHIFT) + +enum i40e_filter_program_desc_pcmd { + I40E_FILTER_PROGRAM_DESC_PCMD_ADD_UPDATE = 0x1, + I40E_FILTER_PROGRAM_DESC_PCMD_REMOVE = 0x2, +}; + +#define I40E_TXD_FLTR_QW1_DEST_SHIFT (0x3ULL + I40E_TXD_FLTR_QW1_CMD_SHIFT) +#define I40E_TXD_FLTR_QW1_DEST_MASK (0x3ULL << I40E_TXD_FLTR_QW1_DEST_SHIFT) + +#define I40E_TXD_FLTR_QW1_CNT_ENA_SHIFT (0x7ULL + I40E_TXD_FLTR_QW1_CMD_SHIFT) +#define I40E_TXD_FLTR_QW1_CNT_ENA_MASK (0x1ULL << \ + I40E_TXD_FLTR_QW1_CNT_ENA_SHIFT) + +#define I40E_TXD_FLTR_QW1_FD_STATUS_SHIFT (0x9ULL + \ + I40E_TXD_FLTR_QW1_CMD_SHIFT) +#define I40E_TXD_FLTR_QW1_FD_STATUS_MASK (0x3ULL << \ + I40E_TXD_FLTR_QW1_FD_STATUS_SHIFT) + +#define I40E_TXD_FLTR_QW1_CNTINDEX_SHIFT 20 +#define I40E_TXD_FLTR_QW1_CNTINDEX_MASK (0x1FFUL << \ + I40E_TXD_FLTR_QW1_CNTINDEX_SHIFT) + +enum i40e_filter_type { + I40E_FLOW_DIRECTOR_FLTR = 0, + I40E_PE_QUAD_HASH_FLTR = 1, + I40E_ETHERTYPE_FLTR, + I40E_FCOE_CTX_FLTR, + I40E_MAC_VLAN_FLTR, + I40E_HASH_FLTR +}; + +struct i40e_vsi_context { + u16 seid; + u16 uplink_seid; + u16 vsi_number; + u16 vsis_allocated; + u16 vsis_unallocated; + u16 flags; + u8 pf_num; + u8 vf_num; + u8 connection_type; + struct i40e_aqc_vsi_properties_data info; +}; + +/* Statistics collected by each port, VSI, VEB, and S-channel */ +struct i40e_eth_stats { + u64 rx_bytes; /* gorc */ + u64 rx_unicast; /* uprc */ + u64 rx_multicast; /* mprc */ + u64 rx_broadcast; /* bprc */ + u64 rx_discards; /* rdpc */ + u64 rx_errors; /* repc */ + u64 rx_missed; /* rmpc */ + u64 rx_unknown_protocol; /* rupp */ + u64 tx_bytes; /* gotc */ + u64 tx_unicast; /* uptc */ + u64 tx_multicast; /* mptc */ + u64 tx_broadcast; /* bptc */ + u64 tx_discards; /* tdpc */ + u64 tx_errors; /* tepc */ +}; + +/* Statistics collected by the MAC */ +struct i40e_hw_port_stats { + /* eth stats collected by the port */ + struct i40e_eth_stats eth; + + /* additional port specific stats */ + u64 tx_dropped_link_down; /* tdold */ + u64 crc_errors; /* crcerrs */ + u64 illegal_bytes; /* illerrc */ + u64 error_bytes; /* errbc */ + u64 mac_local_faults; /* mlfc */ + u64 mac_remote_faults; /* mrfc */ + u64 rx_length_errors; /* rlec */ + u64 link_xon_rx; /* lxonrxc */ + u64 link_xoff_rx; /* lxoffrxc */ + u64 priority_xon_rx[8]; /* pxonrxc[8] */ + u64 priority_xoff_rx[8]; /* pxoffrxc[8] */ + u64 link_xon_tx; /* lxontxc */ + u64 link_xoff_tx; /* lxofftxc */ + u64 priority_xon_tx[8]; /* pxontxc[8] */ + u64 priority_xoff_tx[8]; /* pxofftxc[8] */ + u64 priority_xon_2_xoff[8]; /* pxon2offc[8] */ + u64 rx_size_64; /* prc64 */ + u64 rx_size_127; /* prc127 */ + u64 rx_size_255; /* prc255 */ + u64 rx_size_511; /* prc511 */ + u64 rx_size_1023; /* prc1023 */ + u64 rx_size_1522; /* prc1522 */ + u64 rx_size_big; /* prc9522 */ + u64 rx_undersize; /* ruc */ + u64 rx_fragments; /* rfc */ + u64 rx_oversize; /* roc */ + u64 rx_jabber; /* rjc */ + u64 tx_size_64; /* ptc64 */ + u64 tx_size_127; /* ptc127 */ + u64 tx_size_255; /* ptc255 */ + u64 tx_size_511; /* ptc511 */ + u64 tx_size_1023; /* ptc1023 */ + u64 tx_size_1522; /* ptc1522 */ + u64 tx_size_big; /* ptc9522 */ + u64 mac_short_packet_dropped; /* mspdc */ + u64 checksum_error; /* xec */ + /* EEE LPI */ + bool tx_lpi_status; + bool rx_lpi_status; + u64 tx_lpi_count; /* etlpic */ + u64 rx_lpi_count; /* erlpic */ +}; + +/* Checksum and Shadow RAM pointers */ +#define I40E_SR_NVM_CONTROL_WORD 0x00 +#define I40E_SR_EMP_MODULE_PTR 0x0F +#define I40E_SR_NVM_IMAGE_VERSION 0x18 +#define I40E_SR_NVM_WAKE_ON_LAN 0x19 +#define I40E_SR_ALTERNATE_SAN_MAC_ADDRESS_PTR 0x27 +#define I40E_SR_NVM_EETRACK_LO 0x2D +#define I40E_SR_NVM_EETRACK_HI 0x2E +#define I40E_SR_VPD_PTR 0x2F +#define I40E_SR_PCIE_ALT_AUTO_LOAD_PTR 0x3E +#define I40E_SR_SW_CHECKSUM_WORD 0x3F + +/* Auxiliary field, mask and shift definition for Shadow RAM and NVM Flash */ +#define I40E_SR_VPD_MODULE_MAX_SIZE 1024 +#define I40E_SR_PCIE_ALT_MODULE_MAX_SIZE 1024 +#define I40E_SR_CONTROL_WORD_1_SHIFT 0x06 +#define I40E_SR_CONTROL_WORD_1_MASK (0x03 << I40E_SR_CONTROL_WORD_1_SHIFT) + +/* Shadow RAM related */ +#define I40E_SR_SECTOR_SIZE_IN_WORDS 0x800 +#define I40E_SR_WORDS_IN_1KB 512 +/* Checksum should be calculated such that after adding all the words, + * including the checksum word itself, the sum should be 0xBABA. + */ +#define I40E_SR_SW_CHECKSUM_BASE 0xBABA + +#define I40E_SRRD_SRCTL_ATTEMPTS 100000 + +enum i40e_switch_element_types { + I40E_SWITCH_ELEMENT_TYPE_MAC = 1, + I40E_SWITCH_ELEMENT_TYPE_PF = 2, + I40E_SWITCH_ELEMENT_TYPE_VF = 3, + I40E_SWITCH_ELEMENT_TYPE_EMP = 4, + I40E_SWITCH_ELEMENT_TYPE_BMC = 6, + I40E_SWITCH_ELEMENT_TYPE_PE = 16, + I40E_SWITCH_ELEMENT_TYPE_VEB = 17, + I40E_SWITCH_ELEMENT_TYPE_PA = 18, + I40E_SWITCH_ELEMENT_TYPE_VSI = 19, +}; + +/* Supported EtherType filters */ +enum i40e_ether_type_index { + I40E_ETHER_TYPE_1588 = 0, + I40E_ETHER_TYPE_FIP = 1, + I40E_ETHER_TYPE_OUI_EXTENDED = 2, + I40E_ETHER_TYPE_MAC_CONTROL = 3, + I40E_ETHER_TYPE_LLDP = 4, + I40E_ETHER_TYPE_EVB_PROTOCOL1 = 5, + I40E_ETHER_TYPE_EVB_PROTOCOL2 = 6, + I40E_ETHER_TYPE_QCN_CNM = 7, + I40E_ETHER_TYPE_8021X = 8, + I40E_ETHER_TYPE_ARP = 9, + I40E_ETHER_TYPE_RSV1 = 10, + I40E_ETHER_TYPE_RSV2 = 11, +}; + +/* Filter context base size is 1K */ +#define I40E_HASH_FILTER_BASE_SIZE 1024 +/* Supported Hash filter values */ +enum i40e_hash_filter_size { + I40E_HASH_FILTER_SIZE_1K = 0, + I40E_HASH_FILTER_SIZE_2K = 1, + I40E_HASH_FILTER_SIZE_4K = 2, + I40E_HASH_FILTER_SIZE_8K = 3, + I40E_HASH_FILTER_SIZE_16K = 4, + I40E_HASH_FILTER_SIZE_32K = 5, + I40E_HASH_FILTER_SIZE_64K = 6, + I40E_HASH_FILTER_SIZE_128K = 7, + I40E_HASH_FILTER_SIZE_256K = 8, + I40E_HASH_FILTER_SIZE_512K = 9, + I40E_HASH_FILTER_SIZE_1M = 10, +}; + +/* DMA context base size is 0.5K */ +#define I40E_DMA_CNTX_BASE_SIZE 512 +/* Supported DMA context values */ +enum i40e_dma_cntx_size { + I40E_DMA_CNTX_SIZE_512 = 0, + I40E_DMA_CNTX_SIZE_1K = 1, + I40E_DMA_CNTX_SIZE_2K = 2, + I40E_DMA_CNTX_SIZE_4K = 3, + I40E_DMA_CNTX_SIZE_8K = 4, + I40E_DMA_CNTX_SIZE_16K = 5, + I40E_DMA_CNTX_SIZE_32K = 6, + I40E_DMA_CNTX_SIZE_64K = 7, + I40E_DMA_CNTX_SIZE_128K = 8, + I40E_DMA_CNTX_SIZE_256K = 9, +}; + +/* Supported Hash look up table (LUT) sizes */ +enum i40e_hash_lut_size { + I40E_HASH_LUT_SIZE_128 = 0, + I40E_HASH_LUT_SIZE_512 = 1, +}; + +/* Structure to hold a per PF filter control settings */ +struct i40e_filter_control_settings { + /* number of PE Quad Hash filter buckets */ + enum i40e_hash_filter_size pe_filt_num; + /* number of PE Quad Hash contexts */ + enum i40e_dma_cntx_size pe_cntx_num; + /* number of FCoE filter buckets */ + enum i40e_hash_filter_size fcoe_filt_num; + /* number of FCoE DDP contexts */ + enum i40e_dma_cntx_size fcoe_cntx_num; + /* size of the Hash LUT */ + enum i40e_hash_lut_size hash_lut_size; + /* enable FDIR filters for PF and its VFs */ + bool enable_fdir; + /* enable Ethertype filters for PF and its VFs */ + bool enable_ethtype; + /* enable MAC/VLAN filters for PF and its VFs */ + bool enable_macvlan; +}; + +/* Structure to hold device level control filter counts */ +struct i40e_control_filter_stats { + u16 mac_etype_used; /* Used perfect match MAC/EtherType filters */ + u16 etype_used; /* Used perfect EtherType filters */ + u16 mac_etype_free; /* Un-used perfect match MAC/EtherType filters */ + u16 etype_free; /* Un-used perfect EtherType filters */ +}; + +enum i40e_reset_type { + I40E_RESET_POR = 0, + I40E_RESET_CORER = 1, + I40E_RESET_GLOBR = 2, + I40E_RESET_EMPR = 3, +}; +#endif /* _I40E_TYPE_H_ */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40e_virtchnl.h @@ -0,0 +1,364 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#ifndef _I40E_VIRTCHNL_H_ +#define _I40E_VIRTCHNL_H_ + +#include "i40e_type.h" + +/* Description: + * This header file describes the VF-PF communication protocol used + * by the various i40e drivers. + * + * Admin queue buffer usage: + * desc->opcode is always i40e_aqc_opc_send_msg_to_pf + * flags, retval, datalen, and data addr are all used normally. + * Firmware copies the cookie fields when sending messages between the PF and + * VF, but uses all other fields internally. Due to this limitation, we + * must send all messages as "indirect", i.e. using an external buffer. + * + * All the vsi indexes are relative to the VF. Each VF can have maximum of + * three VSIs. All the queue indexes are relative to the VSI. Each VF can + * have a maximum of sixteen queues for all of its VSIs. + * + * The PF is required to return a status code in v_retval for all messages + * except RESET_VF, which does not require any response. The return value is of + * i40e_status_code type, defined in the i40e_type.h. + * + * In general, VF driver initialization should roughly follow the order of these + * opcodes. The VF driver must first validate the API version of the PF driver, + * then request a reset, then get resources, then configure queues and + * interrupts. After these operations are complete, the VF driver may start + * its queues, optionally add MAC and VLAN filters, and process traffic. + */ + +/* Opcodes for VF-PF communication. These are placed in the v_opcode field + * of the virtchnl_msg structure. + */ +enum i40e_virtchnl_ops { +/* VF sends req. to pf for the following + * ops. + */ + I40E_VIRTCHNL_OP_UNKNOWN = 0, + I40E_VIRTCHNL_OP_VERSION = 1, /* must ALWAYS be 1 */ + I40E_VIRTCHNL_OP_RESET_VF, + I40E_VIRTCHNL_OP_GET_VF_RESOURCES, + I40E_VIRTCHNL_OP_CONFIG_TX_QUEUE, + I40E_VIRTCHNL_OP_CONFIG_RX_QUEUE, + I40E_VIRTCHNL_OP_CONFIG_VSI_QUEUES, + I40E_VIRTCHNL_OP_CONFIG_IRQ_MAP, + I40E_VIRTCHNL_OP_ENABLE_QUEUES, + I40E_VIRTCHNL_OP_DISABLE_QUEUES, + I40E_VIRTCHNL_OP_ADD_ETHER_ADDRESS, + I40E_VIRTCHNL_OP_DEL_ETHER_ADDRESS, + I40E_VIRTCHNL_OP_ADD_VLAN, + I40E_VIRTCHNL_OP_DEL_VLAN, + I40E_VIRTCHNL_OP_CONFIG_PROMISCUOUS_MODE, + I40E_VIRTCHNL_OP_GET_STATS, + I40E_VIRTCHNL_OP_FCOE, +/* PF sends status change events to vfs using + * the following op. + */ + I40E_VIRTCHNL_OP_EVENT, +}; + +/* Virtual channel message descriptor. This overlays the admin queue + * descriptor. All other data is passed in external buffers. + */ + +struct i40e_virtchnl_msg { + u8 pad[8]; /* AQ flags/opcode/len/retval fields */ + enum i40e_virtchnl_ops v_opcode; /* avoid confusion with desc->opcode */ + i40e_status v_retval; /* ditto for desc->retval */ + u32 vfid; /* used by PF when sending to VF */ +}; + +/* Message descriptions and data structures.*/ + +/* I40E_VIRTCHNL_OP_VERSION + * VF posts its version number to the PF. PF responds with its version number + * in the same format, along with a return code. + * Reply from PF has its major/minor versions also in param0 and param1. + * If there is a major version mismatch, then the VF cannot operate. + * If there is a minor version mismatch, then the VF can operate but should + * add a warning to the system log. + * + * This enum element MUST always be specified as == 1, regardless of other + * changes in the API. The PF must always respond to this message without + * error regardless of version mismatch. + */ +#define I40E_VIRTCHNL_VERSION_MAJOR 1 +#define I40E_VIRTCHNL_VERSION_MINOR 0 +struct i40e_virtchnl_version_info { + u32 major; + u32 minor; +}; + +/* I40E_VIRTCHNL_OP_RESET_VF + * VF sends this request to PF with no parameters + * PF does NOT respond! VF driver must delay then poll VFGEN_RSTAT register + * until reset completion is indicated. The admin queue must be reinitialized + * after this operation. + * + * When reset is complete, PF must ensure that all queues in all VSIs associated + * with the VF are stopped, all queue configurations in the HMC are set to 0, + * and all MAC and VLAN filters (except the default MAC address) on all VSIs + * are cleared. + */ + +/* I40E_VIRTCHNL_OP_GET_VF_RESOURCES + * VF sends this request to PF with no parameters + * PF responds with an indirect message containing + * i40e_virtchnl_vf_resource and one or more + * i40e_virtchnl_vsi_resource structures. + */ + +struct i40e_virtchnl_vsi_resource { + u16 vsi_id; + u16 num_queue_pairs; + enum i40e_vsi_type vsi_type; + u16 qset_handle; + u8 default_mac_addr[ETH_ALEN]; +}; +/* VF offload flags */ +#define I40E_VIRTCHNL_VF_OFFLOAD_L2 0x00000001 +#define I40E_VIRTCHNL_VF_OFFLOAD_FCOE 0x00000004 +#define I40E_VIRTCHNL_VF_OFFLOAD_VLAN 0x00010000 + +struct i40e_virtchnl_vf_resource { + u16 num_vsis; + u16 num_queue_pairs; + u16 max_vectors; + u16 max_mtu; + + u32 vf_offload_flags; + u32 max_fcoe_contexts; + u32 max_fcoe_filters; + + struct i40e_virtchnl_vsi_resource vsi_res[1]; +}; + +/* I40E_VIRTCHNL_OP_CONFIG_TX_QUEUE + * VF sends this message to set up parameters for one TX queue. + * External data buffer contains one instance of i40e_virtchnl_txq_info. + * PF configures requested queue and returns a status code. + */ + +/* Tx queue config info */ +struct i40e_virtchnl_txq_info { + u16 vsi_id; + u16 queue_id; + u16 ring_len; /* number of descriptors, multiple of 8 */ + u16 headwb_enabled; + u64 dma_ring_addr; + u64 dma_headwb_addr; +}; + +/* I40E_VIRTCHNL_OP_CONFIG_RX_QUEUE + * VF sends this message to set up parameters for one RX queue. + * External data buffer contains one instance of i40e_virtchnl_rxq_info. + * PF configures requested queue and returns a status code. + */ + +/* Rx queue config info */ +struct i40e_virtchnl_rxq_info { + u16 vsi_id; + u16 queue_id; + u32 ring_len; /* number of descriptors, multiple of 32 */ + u16 hdr_size; + u16 splithdr_enabled; + u32 databuffer_size; + u32 max_pkt_size; + u64 dma_ring_addr; + enum i40e_hmc_obj_rx_hsplit_0 rx_split_pos; +}; + +/* I40E_VIRTCHNL_OP_CONFIG_VSI_QUEUES + * VF sends this message to set parameters for all active TX and RX queues + * associated with the specified VSI. + * PF configures queues and returns status. + * If the number of queues specified is greater than the number of queues + * associated with the VSI, an error is returned and no queues are configured. + */ +struct i40e_virtchnl_queue_pair_info { + /* NOTE: vsi_id and queue_id should be identical for both queues. */ + struct i40e_virtchnl_txq_info txq; + struct i40e_virtchnl_rxq_info rxq; +}; + +struct i40e_virtchnl_vsi_queue_config_info { + u16 vsi_id; + u16 num_queue_pairs; + struct i40e_virtchnl_queue_pair_info qpair[1]; +}; + +/* I40E_VIRTCHNL_OP_CONFIG_IRQ_MAP + * VF uses this message to map vectors to queues. + * The rxq_map and txq_map fields are bitmaps used to indicate which queues + * are to be associated with the specified vector. + * The "other" causes are always mapped to vector 0. + * PF configures interrupt mapping and returns status. + */ +struct i40e_virtchnl_vector_map { + u16 vsi_id; + u16 vector_id; + u16 rxq_map; + u16 txq_map; + u16 rxitr_idx; + u16 txitr_idx; +}; + +struct i40e_virtchnl_irq_map_info { + u16 num_vectors; + struct i40e_virtchnl_vector_map vecmap[1]; +}; + +/* I40E_VIRTCHNL_OP_ENABLE_QUEUES + * I40E_VIRTCHNL_OP_DISABLE_QUEUES + * VF sends these message to enable or disable TX/RX queue pairs. + * The queues fields are bitmaps indicating which queues to act upon. + * (Currently, we only support 16 queues per VF, but we make the field + * u32 to allow for expansion.) + * PF performs requested action and returns status. + */ +struct i40e_virtchnl_queue_select { + u16 vsi_id; + u16 pad; + u32 rx_queues; + u32 tx_queues; +}; + +/* I40E_VIRTCHNL_OP_ADD_ETHER_ADDRESS + * VF sends this message in order to add one or more unicast or multicast + * address filters for the specified VSI. + * PF adds the filters and returns status. + */ + +/* I40E_VIRTCHNL_OP_DEL_ETHER_ADDRESS + * VF sends this message in order to remove one or more unicast or multicast + * filters for the specified VSI. + * PF removes the filters and returns status. + */ + +struct i40e_virtchnl_ether_addr { + u8 addr[ETH_ALEN]; + u8 pad[2]; +}; + +struct i40e_virtchnl_ether_addr_list { + u16 vsi_id; + u16 num_elements; + struct i40e_virtchnl_ether_addr list[1]; +}; + +/* I40E_VIRTCHNL_OP_ADD_VLAN + * VF sends this message to add one or more VLAN tag filters for receives. + * PF adds the filters and returns status. + * If a port VLAN is configured by the PF, this operation will return an + * error to the VF. + */ + +/* I40E_VIRTCHNL_OP_DEL_VLAN + * VF sends this message to remove one or more VLAN tag filters for receives. + * PF removes the filters and returns status. + * If a port VLAN is configured by the PF, this operation will return an + * error to the VF. + */ + +struct i40e_virtchnl_vlan_filter_list { + u16 vsi_id; + u16 num_elements; + u16 vlan_id[1]; +}; + +/* I40E_VIRTCHNL_OP_CONFIG_PROMISCUOUS_MODE + * VF sends VSI id and flags. + * PF returns status code in retval. + * Note: we assume that broadcast accept mode is always enabled. + */ +struct i40e_virtchnl_promisc_info { + u16 vsi_id; + u16 flags; +}; + +#define I40E_FLAG_VF_UNICAST_PROMISC 0x00000001 +#define I40E_FLAG_VF_MULTICAST_PROMISC 0x00000002 + +/* I40E_VIRTCHNL_OP_GET_STATS + * VF sends this message to request stats for the selected VSI. VF uses + * the i40e_virtchnl_queue_select struct to specify the VSI. The queue_id + * field is ignored by the PF. + * + * PF replies with struct i40e_eth_stats in an external buffer. + */ + +/* I40E_VIRTCHNL_OP_EVENT + * PF sends this message to inform the VF driver of events that may affect it. + * No direct response is expected from the VF, though it may generate other + * messages in response to this one. + */ +enum i40e_virtchnl_event_codes { + I40E_VIRTCHNL_EVENT_UNKNOWN = 0, + I40E_VIRTCHNL_EVENT_LINK_CHANGE, + I40E_VIRTCHNL_EVENT_RESET_IMPENDING, + I40E_VIRTCHNL_EVENT_PF_DRIVER_CLOSE, +}; +#define I40E_PF_EVENT_SEVERITY_INFO 0 +#define I40E_PF_EVENT_SEVERITY_CERTAIN_DOOM 255 + +struct i40e_virtchnl_pf_event { + enum i40e_virtchnl_event_codes event; + union { + struct { + enum i40e_aq_link_speed link_speed; + bool link_status; + } link_event; + } event_data; + + int severity; +}; + +/* The following are TBD, not necessary for LAN functionality. + * I40E_VIRTCHNL_OP_FCOE + */ + +/* VF reset states - these are written into the RSTAT register: + * I40E_VFGEN_RSTAT1 on the PF + * I40E_VFGEN_RSTAT on the VF + * When the PF initiates a reset, it writes 0 + * When the reset is complete, it writes 1 + * When the PF detects that the VF has recovered, it writes 2 + * VF checks this register periodically to determine if a reset has occurred, + * then polls it to know when the reset is complete. + * If either the PF or VF reads the register while the hardware + * is in a reset state, it will return DEADBEEF, which, when masked + * will result in 3. + */ +enum i40e_vfr_states { + I40E_VFR_INPROGRESS = 0, + I40E_VFR_COMPLETED, + I40E_VFR_VFACTIVE, + I40E_VFR_UNKNOWN, +}; + +#endif /* _I40E_VIRTCHNL_H_ */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40evf.h +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40evf.h @@ -0,0 +1,293 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#ifndef _I40EVF_H_ +#define _I40EVF_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "i40e_type.h" +#include "i40e_virtchnl.h" +#include "i40e_txrx.h" + +#define DEFAULT_DEBUG_LEVEL_SHIFT 3 +#define PFX "i40evf: " +#define DPRINTK(nlevel, klevel, fmt, args...) \ + ((void)((NETIF_MSG_##nlevel & adapter->msg_enable) && \ + printk(KERN_##klevel PFX "%s: %s: " fmt, adapter->netdev->name, \ + __func__ , ## args))) + +/* dummy struct to make common code less painful */ +struct i40e_vsi { + struct i40evf_adapter *back; + struct net_device *netdev; + unsigned long active_vlans[BITS_TO_LONGS(VLAN_N_VID)]; + u16 seid; + u16 id; + unsigned long state; + int base_vector; + u16 work_limit; + /* high bit set means dynamic, use accessor routines to read/write. + * hardware only supports 2us resolution for the ITR registers. + * these values always store the USER setting, and must be converted + * before programming to a register. + */ + u16 rx_itr_setting; + u16 tx_itr_setting; +}; + +/* How many Rx Buffers do we bundle into one write to the hardware ? */ +#define I40EVF_RX_BUFFER_WRITE 16 /* Must be power of 2 */ +#define I40EVF_DEFAULT_TXD 512 +#define I40EVF_DEFAULT_RXD 512 +#define I40EVF_MAX_TXD 4096 +#define I40EVF_MIN_TXD 64 +#define I40EVF_MAX_RXD 4096 +#define I40EVF_MIN_RXD 64 +#define I40EVF_REQ_DESCRIPTOR_MULTIPLE 8 + +/* Supported Rx Buffer Sizes */ +#define I40EVF_RXBUFFER_64 64 /* Used for packet split */ +#define I40EVF_RXBUFFER_128 128 /* Used for packet split */ +#define I40EVF_RXBUFFER_256 256 /* Used for packet split */ +#define I40EVF_RXBUFFER_2048 2048 +#define I40EVF_MAX_RXBUFFER 16384 /* largest size for single descriptor */ +#define I40EVF_MAX_AQ_BUF_SIZE 4096 +#define I40EVF_AQ_LEN 32 +#define I40EVF_AQ_MAX_ERR 10 /* times to try before resetting AQ */ + +#define MAXIMUM_ETHERNET_VLAN_SIZE (VLAN_ETH_FRAME_LEN + ETH_FCS_LEN) + +#define I40E_RX_DESC(R, i) (&(((union i40e_32byte_rx_desc *)((R)->desc))[i])) +#define I40E_TX_DESC(R, i) (&(((struct i40e_tx_desc *)((R)->desc))[i])) +#define I40E_TX_CTXTDESC(R, i) \ + (&(((struct i40e_tx_context_desc *)((R)->desc))[i])) +#define MAX_RX_QUEUES 8 +#define MAX_TX_QUEUES MAX_RX_QUEUES + +/* MAX_MSIX_Q_VECTORS of these are allocated, + * but we only use one per queue-specific vector. + */ +struct i40e_q_vector { + struct i40evf_adapter *adapter; + struct i40e_vsi *vsi; + struct napi_struct napi; + unsigned long reg_idx; + struct i40e_ring_container rx; + struct i40e_ring_container tx; + u32 ring_mask; + u8 num_ringpairs; /* total number of ring pairs in vector */ + int v_idx; /* vector index in list */ + char name[IFNAMSIZ + 9]; + cpumask_var_t affinity_mask; +}; + +/* Helper macros to switch between ints/sec and what the register uses. + * And yes, it's the same math going both ways. The lowest value + * supported by all of the i40e hardware is 8. + */ +#define EITR_INTS_PER_SEC_TO_REG(_eitr) \ + ((_eitr) ? (1000000000 / ((_eitr) * 256)) : 8) +#define EITR_REG_TO_INTS_PER_SEC EITR_INTS_PER_SEC_TO_REG + +#define I40EVF_DESC_UNUSED(R) \ + ((((R)->next_to_clean > (R)->next_to_use) ? 0 : (R)->count) + \ + (R)->next_to_clean - (R)->next_to_use - 1) + +#define I40EVF_RX_DESC_ADV(R, i) \ + (&(((union i40e_adv_rx_desc *)((R).desc))[i])) +#define I40EVF_TX_DESC_ADV(R, i) \ + (&(((union i40e_adv_tx_desc *)((R).desc))[i])) +#define I40EVF_TX_CTXTDESC_ADV(R, i) \ + (&(((struct i40e_adv_tx_context_desc *)((R).desc))[i])) + +#define OTHER_VECTOR 1 +#define NONQ_VECS (OTHER_VECTOR) + +#define MAX_MSIX_Q_VECTORS 4 +#define MAX_MSIX_COUNT 5 + +#define MIN_MSIX_Q_VECTORS 1 +#define MIN_MSIX_COUNT (MIN_MSIX_Q_VECTORS + NONQ_VECS) + +#define I40EVF_QUEUE_END_OF_LIST 0x7FF +#define I40EVF_FREE_VECTOR 0x7FFF +struct i40evf_mac_filter { + struct list_head list; + u8 macaddr[ETH_ALEN]; + bool remove; /* filter needs to be removed */ + bool add; /* filter needs to be added */ +}; + +struct i40evf_vlan_filter { + struct list_head list; + u16 vlan; + bool remove; /* filter needs to be removed */ + bool add; /* filter needs to be added */ +}; + +/* Driver state. The order of these is important! */ +enum i40evf_state_t { + __I40EVF_STARTUP, /* driver loaded, probe complete */ + __I40EVF_REMOVE, /* driver is being unloaded */ + __I40EVF_INIT_VERSION_CHECK, /* aq msg sent, awaiting reply */ + __I40EVF_INIT_GET_RESOURCES, /* aq msg sent, awaiting reply */ + __I40EVF_INIT_SW, /* got resources, setting up structs */ + __I40EVF_RESETTING, /* in reset */ + /* Below here, watchdog is running */ + __I40EVF_DOWN, /* ready, can be opened */ + __I40EVF_TESTING, /* in ethtool self-test */ + __I40EVF_RUNNING, /* opened, working */ +}; + +enum i40evf_critical_section_t { + __I40EVF_IN_CRITICAL_TASK, /* cannot be interrupted */ +}; +/* make common code happy */ +#define __I40E_DOWN __I40EVF_DOWN + +/* board specific private data structure */ +struct i40evf_adapter { + struct timer_list watchdog_timer; + struct work_struct reset_task; + struct work_struct adminq_task; + struct delayed_work init_task; + struct i40e_q_vector *q_vector[MAX_MSIX_Q_VECTORS]; + struct list_head vlan_filter_list; + char misc_vector_name[IFNAMSIZ + 9]; + + /* TX */ + struct i40e_ring *tx_rings[I40E_MAX_VSI_QP]; + u32 tx_timeout_count; + struct list_head mac_filter_list; + + /* RX */ + struct i40e_ring *rx_rings[I40E_MAX_VSI_QP]; + u64 hw_csum_rx_error; + int num_msix_vectors; + struct msix_entry *msix_entries; + + u32 flags; +#define I40EVF_FLAG_RX_CSUM_ENABLED (u32)(1) +#define I40EVF_FLAG_RX_1BUF_CAPABLE (u32)(1 << 1) +#define I40EVF_FLAG_RX_PS_CAPABLE (u32)(1 << 2) +#define I40EVF_FLAG_RX_PS_ENABLED (u32)(1 << 3) +#define I40EVF_FLAG_IN_NETPOLL (u32)(1 << 4) +#define I40EVF_FLAG_IMIR_ENABLED (u32)(1 << 5) +#define I40EVF_FLAG_MQ_CAPABLE (u32)(1 << 6) +#define I40EVF_FLAG_NEED_LINK_UPDATE (u32)(1 << 7) +#define I40EVF_FLAG_PF_COMMS_FAILED (u32)(1 << 8) +#define I40EVF_FLAG_RESET_PENDING (u32)(1 << 9) +#define I40EVF_FLAG_RESET_NEEDED (u32)(1 << 10) +/* duplcates for common code */ +#define I40E_FLAG_FDIR_ATR_ENABLED 0 +#define I40E_FLAG_DCB_ENABLED 0 +#define I40E_FLAG_IN_NETPOLL I40EVF_FLAG_IN_NETPOLL +#define I40E_FLAG_RX_CSUM_ENABLED I40EVF_FLAG_RX_CSUM_ENABLED + /* flags for admin queue service task */ + u32 aq_required; + u32 aq_pending; +#define I40EVF_FLAG_AQ_ENABLE_QUEUES (u32)(1) +#define I40EVF_FLAG_AQ_DISABLE_QUEUES (u32)(1 << 1) +#define I40EVF_FLAG_AQ_ADD_MAC_FILTER (u32)(1 << 2) +#define I40EVF_FLAG_AQ_ADD_VLAN_FILTER (u32)(1 << 3) +#define I40EVF_FLAG_AQ_DEL_MAC_FILTER (u32)(1 << 4) +#define I40EVF_FLAG_AQ_DEL_VLAN_FILTER (u32)(1 << 5) +#define I40EVF_FLAG_AQ_CONFIGURE_QUEUES (u32)(1 << 6) +#define I40EVF_FLAG_AQ_MAP_VECTORS (u32)(1 << 7) +#define I40EVF_FLAG_AQ_HANDLE_RESET (u32)(1 << 8) + + /* OS defined structs */ + struct net_device *netdev; + struct pci_dev *pdev; + struct net_device_stats net_stats; + + struct i40e_hw hw; /* defined in i40e_type.h */ + + enum i40evf_state_t state; + volatile unsigned long crit_section; + + struct work_struct watchdog_task; + bool netdev_registered; + bool link_up; + enum i40e_virtchnl_ops current_op; + struct i40e_virtchnl_vf_resource *vf_res; /* incl. all VSIs */ + struct i40e_virtchnl_vsi_resource *vsi_res; /* our LAN VSI */ + u16 msg_enable; + struct i40e_eth_stats current_stats; + struct i40e_vsi vsi; + u32 aq_wait_count; +}; + + +/* needed by i40evf_ethtool.c */ +extern char i40evf_driver_name[]; +extern const char i40evf_driver_version[]; + +int i40evf_up(struct i40evf_adapter *adapter); +void i40evf_down(struct i40evf_adapter *adapter); +void i40evf_reinit_locked(struct i40evf_adapter *adapter); +void i40evf_reset(struct i40evf_adapter *adapter); +void i40evf_set_ethtool_ops(struct net_device *netdev); +void i40evf_update_stats(struct i40evf_adapter *adapter); +void i40evf_reset_interrupt_capability(struct i40evf_adapter *adapter); +int i40evf_init_interrupt_scheme(struct i40evf_adapter *adapter); +void i40evf_irq_enable_queues(struct i40evf_adapter *adapter, u32 mask); + +void i40e_napi_add_all(struct i40evf_adapter *adapter); +void i40e_napi_del_all(struct i40evf_adapter *adapter); + +int i40evf_send_api_ver(struct i40evf_adapter *adapter); +int i40evf_verify_api_ver(struct i40evf_adapter *adapter); +int i40evf_send_vf_config_msg(struct i40evf_adapter *adapter); +int i40evf_get_vf_config(struct i40evf_adapter *adapter); +void i40evf_irq_enable(struct i40evf_adapter *adapter, bool flush); +void i40evf_configure_queues(struct i40evf_adapter *adapter); +void i40evf_deconfigure_queues(struct i40evf_adapter *adapter); +void i40evf_enable_queues(struct i40evf_adapter *adapter); +void i40evf_disable_queues(struct i40evf_adapter *adapter); +void i40evf_map_queues(struct i40evf_adapter *adapter); +void i40evf_add_ether_addrs(struct i40evf_adapter *adapter); +void i40evf_del_ether_addrs(struct i40evf_adapter *adapter); +void i40evf_add_vlans(struct i40evf_adapter *adapter); +void i40evf_del_vlans(struct i40evf_adapter *adapter); +void i40evf_set_promiscuous(struct i40evf_adapter *adapter, int flags); +void i40evf_request_stats(struct i40evf_adapter *adapter); +void i40evf_request_reset(struct i40evf_adapter *adapter); +void i40evf_virtchnl_completion(struct i40evf_adapter *adapter, + enum i40e_virtchnl_ops v_opcode, + i40e_status v_retval, u8 *msg, u16 msglen); +#endif /* _I40EVF_H_ */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40evf_ethtool.c @@ -0,0 +1,393 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +/* ethtool support for i40evf */ +#include "i40evf.h" + +#include + + +struct i40evf_stats { + char stat_string[ETH_GSTRING_LEN]; + int stat_offset; +}; + +#define I40EVF_STAT(_name, _stat) { \ + .stat_string = _name, \ + .stat_offset = offsetof(struct i40evf_adapter, _stat) \ +} + +/* All stats are u64, so we don't need to track the size of the field. */ +static const struct i40evf_stats i40evf_gstrings_stats[] = { + I40EVF_STAT("rx_bytes", current_stats.rx_bytes), + I40EVF_STAT("rx_unicast", current_stats.rx_unicast), + I40EVF_STAT("rx_multicast", current_stats.rx_multicast), + I40EVF_STAT("rx_broadcast", current_stats.rx_broadcast), + I40EVF_STAT("rx_discards", current_stats.rx_discards), + I40EVF_STAT("rx_errors", current_stats.rx_errors), + I40EVF_STAT("rx_missed", current_stats.rx_missed), + I40EVF_STAT("rx_unknown_protocol", current_stats.rx_unknown_protocol), + I40EVF_STAT("tx_bytes", current_stats.tx_bytes), + I40EVF_STAT("tx_unicast", current_stats.tx_unicast), + I40EVF_STAT("tx_multicast", current_stats.tx_multicast), + I40EVF_STAT("tx_broadcast", current_stats.tx_broadcast), + I40EVF_STAT("tx_discards", current_stats.tx_discards), + I40EVF_STAT("tx_errors", current_stats.tx_errors), +}; + +#define I40EVF_GLOBAL_STATS_LEN ARRAY_SIZE(i40evf_gstrings_stats) +#define I40EVF_QUEUE_STATS_LEN \ + (((struct i40evf_adapter *) \ + netdev_priv(netdev))->vsi_res->num_queue_pairs * 4) +#define I40EVF_STATS_LEN (I40EVF_GLOBAL_STATS_LEN + I40EVF_QUEUE_STATS_LEN) + +/** + * i40evf_get_settings - Get Link Speed and Duplex settings + * @netdev: network interface device structure + * @ecmd: ethtool command + * + * Reports speed/duplex settings. Because this is a VF, we don't know what + * kind of link we really have, so we fake it. + **/ +static int i40evf_get_settings(struct net_device *netdev, + struct ethtool_cmd *ecmd) +{ + /* In the future the VF will be able to query the PF for + * some information - for now use a dummy value + */ + ecmd->supported = SUPPORTED_10000baseT_Full; + ecmd->autoneg = AUTONEG_DISABLE; + ecmd->transceiver = XCVR_DUMMY1; + ecmd->port = PORT_NONE; + + return 0; +} + +/** + * i40evf_get_sset_count - Get length of string set + * @netdev: network interface device structure + * @sset: id of string set + * + * Reports size of string table. This driver only supports + * strings for statistics. + **/ +static int i40evf_get_sset_count(struct net_device *netdev, int sset) +{ + if (sset == ETH_SS_STATS) + return I40EVF_STATS_LEN; + else + return -ENOTSUPP; +} + +/** + * i40evf_get_ethtool_stats - report device statistics + * @netdev: network interface device structure + * @stats: ethtool statistics structure + * @data: pointer to data buffer + * + * All statistics are added to the data buffer as an array of u64. + **/ +static void i40evf_get_ethtool_stats(struct net_device *netdev, + struct ethtool_stats *stats, u64 *data) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + int i, j; + char *p; + + for (i = 0; i < I40EVF_GLOBAL_STATS_LEN; i++) { + p = (char *)adapter + i40evf_gstrings_stats[i].stat_offset; + data[i] = *(u64 *)p; + } + for (j = 0; j < adapter->vsi_res->num_queue_pairs; j++) { + data[i++] = adapter->tx_rings[j]->stats.packets; + data[i++] = adapter->tx_rings[j]->stats.bytes; + } + for (j = 0; j < adapter->vsi_res->num_queue_pairs; j++) { + data[i++] = adapter->rx_rings[j]->stats.packets; + data[i++] = adapter->rx_rings[j]->stats.bytes; + } +} + +/** + * i40evf_get_strings - Get string set + * @netdev: network interface device structure + * @sset: id of string set + * @data: buffer for string data + * + * Builds stats string table. + **/ +static void i40evf_get_strings(struct net_device *netdev, u32 sset, u8 *data) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + u8 *p = data; + int i; + + if (sset == ETH_SS_STATS) { + for (i = 0; i < I40EVF_GLOBAL_STATS_LEN; i++) { + memcpy(p, i40evf_gstrings_stats[i].stat_string, + ETH_GSTRING_LEN); + p += ETH_GSTRING_LEN; + } + for (i = 0; i < adapter->vsi_res->num_queue_pairs; i++) { + snprintf(p, ETH_GSTRING_LEN, "tx-%u.packets", i); + p += ETH_GSTRING_LEN; + snprintf(p, ETH_GSTRING_LEN, "tx-%u.bytes", i); + p += ETH_GSTRING_LEN; + } + for (i = 0; i < adapter->vsi_res->num_queue_pairs; i++) { + snprintf(p, ETH_GSTRING_LEN, "rx-%u.packets", i); + p += ETH_GSTRING_LEN; + snprintf(p, ETH_GSTRING_LEN, "rx-%u.bytes", i); + p += ETH_GSTRING_LEN; + } + } +} + +/** + * i40evf_get_msglevel - Get debug message level + * @netdev: network interface device structure + * + * Returns current debug message level. + **/ +static u32 i40evf_get_msglevel(struct net_device *netdev) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + return adapter->msg_enable; +} + +/** + * i40evf_get_msglevel - Set debug message level + * @netdev: network interface device structure + * @data: message level + * + * Set current debug message level. Higher values cause the driver to + * be noisier. + **/ +static void i40evf_set_msglevel(struct net_device *netdev, u32 data) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + adapter->msg_enable = data; +} + +/** + * i40evf_get_drvinto - Get driver info + * @netdev: network interface device structure + * @drvinfo: ethool driver info structure + * + * Returns information about the driver and device for display to the user. + **/ +static void i40evf_get_drvinfo(struct net_device *netdev, + struct ethtool_drvinfo *drvinfo) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + + strlcpy(drvinfo->driver, i40evf_driver_name, 32); + strlcpy(drvinfo->version, i40evf_driver_version, 32); + + strlcpy(drvinfo->bus_info, pci_name(adapter->pdev), 32); +} + +/** + * i40evf_get_ringparam - Get ring parameters + * @netdev: network interface device structure + * @ring: ethtool ringparam structure + * + * Returns current ring parameters. TX and RX rings are reported separately, + * but the number of rings is not reported. + **/ +static void i40evf_get_ringparam(struct net_device *netdev, + struct ethtool_ringparam *ring) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + struct i40e_ring *tx_ring = adapter->tx_rings[0]; + struct i40e_ring *rx_ring = adapter->rx_rings[0]; + + ring->rx_max_pending = I40EVF_MAX_RXD; + ring->tx_max_pending = I40EVF_MAX_TXD; + ring->rx_pending = rx_ring->count; + ring->tx_pending = tx_ring->count; +} + +/** + * i40evf_set_ringparam - Set ring parameters + * @netdev: network interface device structure + * @ring: ethtool ringparam structure + * + * Sets ring parameters. TX and RX rings are controlled separately, but the + * number of rings is not specified, so all rings get the same settings. + **/ +static int i40evf_set_ringparam(struct net_device *netdev, + struct ethtool_ringparam *ring) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + u32 new_rx_count, new_tx_count; + int i; + + if ((ring->rx_mini_pending) || (ring->rx_jumbo_pending)) + return -EINVAL; + + new_tx_count = clamp_t(u32, ring->tx_pending, + I40EVF_MIN_TXD, + I40EVF_MAX_TXD); + new_tx_count = ALIGN(new_tx_count, I40EVF_REQ_DESCRIPTOR_MULTIPLE); + + new_rx_count = clamp_t(u32, ring->rx_pending, + I40EVF_MIN_RXD, + I40EVF_MAX_RXD); + new_rx_count = ALIGN(new_rx_count, I40EVF_REQ_DESCRIPTOR_MULTIPLE); + + /* if nothing to do return success */ + if ((new_tx_count == adapter->tx_rings[0]->count) && + (new_rx_count == adapter->rx_rings[0]->count)) + return 0; + + for (i = 0; i < adapter->vsi_res->num_queue_pairs; i++) { + adapter->tx_rings[0]->count = new_tx_count; + adapter->rx_rings[0]->count = new_rx_count; + } + + if (netif_running(netdev)) + i40evf_reinit_locked(adapter); + return 0; +} + +/** + * i40evf_get_coalesce - Get interrupt coalescing settings + * @netdev: network interface device structure + * @ec: ethtool coalesce structure + * + * Returns current coalescing settings. This is referred to elsewhere in the + * driver as Interrupt Throttle Rate, as this is how the hardware describes + * this functionality. + **/ +static int i40evf_get_coalesce(struct net_device *netdev, + struct ethtool_coalesce *ec) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + struct i40e_vsi *vsi = &adapter->vsi; + + ec->tx_max_coalesced_frames = vsi->work_limit; + ec->rx_max_coalesced_frames = vsi->work_limit; + + if (ITR_IS_DYNAMIC(vsi->rx_itr_setting)) + ec->rx_coalesce_usecs = 1; + else + ec->rx_coalesce_usecs = vsi->rx_itr_setting; + + if (ITR_IS_DYNAMIC(vsi->tx_itr_setting)) + ec->tx_coalesce_usecs = 1; + else + ec->tx_coalesce_usecs = vsi->tx_itr_setting; + + return 0; +} + +/** + * i40evf_set_coalesce - Set interrupt coalescing settings + * @netdev: network interface device structure + * @ec: ethtool coalesce structure + * + * Change current coalescing settings. + **/ +static int i40evf_set_coalesce(struct net_device *netdev, + struct ethtool_coalesce *ec) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + struct i40e_hw *hw = &adapter->hw; + struct i40e_vsi *vsi = &adapter->vsi; + struct i40e_q_vector *q_vector; + int i; + + if (ec->tx_max_coalesced_frames || ec->rx_max_coalesced_frames) + vsi->work_limit = ec->tx_max_coalesced_frames; + + switch (ec->rx_coalesce_usecs) { + case 0: + vsi->rx_itr_setting = 0; + break; + case 1: + vsi->rx_itr_setting = (I40E_ITR_DYNAMIC + | ITR_REG_TO_USEC(I40E_ITR_RX_DEF)); + break; + default: + if ((ec->rx_coalesce_usecs < (I40E_MIN_ITR << 1)) || + (ec->rx_coalesce_usecs > (I40E_MAX_ITR << 1))) + return -EINVAL; + vsi->rx_itr_setting = ec->rx_coalesce_usecs; + break; + } + + switch (ec->tx_coalesce_usecs) { + case 0: + vsi->tx_itr_setting = 0; + break; + case 1: + vsi->tx_itr_setting = (I40E_ITR_DYNAMIC + | ITR_REG_TO_USEC(I40E_ITR_TX_DEF)); + break; + default: + if ((ec->tx_coalesce_usecs < (I40E_MIN_ITR << 1)) || + (ec->tx_coalesce_usecs > (I40E_MAX_ITR << 1))) + return -EINVAL; + vsi->tx_itr_setting = ec->tx_coalesce_usecs; + break; + } + + for (i = 0; i < adapter->num_msix_vectors - NONQ_VECS; i++) { + q_vector = adapter->q_vector[i]; + q_vector->rx.itr = ITR_TO_REG(vsi->rx_itr_setting); + wr32(hw, I40E_VFINT_ITRN1(0, i), q_vector->rx.itr); + q_vector->tx.itr = ITR_TO_REG(vsi->tx_itr_setting); + wr32(hw, I40E_VFINT_ITRN1(1, i), q_vector->tx.itr); + i40e_flush(hw); + } + + return 0; +} + +static struct ethtool_ops i40evf_ethtool_ops = { + .get_settings = i40evf_get_settings, + .get_drvinfo = i40evf_get_drvinfo, + .get_link = ethtool_op_get_link, + .get_ringparam = i40evf_get_ringparam, + .set_ringparam = i40evf_set_ringparam, + .get_strings = i40evf_get_strings, + .get_ethtool_stats = i40evf_get_ethtool_stats, + .get_sset_count = i40evf_get_sset_count, + .get_msglevel = i40evf_get_msglevel, + .set_msglevel = i40evf_set_msglevel, + .get_coalesce = i40evf_get_coalesce, + .set_coalesce = i40evf_set_coalesce, +}; + +/** + * i40evf_set_ethtool_ops - Initialize ethtool ops struct + * @netdev: network interface device structure + * + * Sets ethtool ops struct in our netdev so that ethtool can call + * our functions. + **/ +void i40evf_set_ethtool_ops(struct net_device *netdev) +{ + SET_ETHTOOL_OPS(netdev, &i40evf_ethtool_ops); +} --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40evf_main.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40evf_main.c @@ -0,0 +1,2456 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#include "i40evf.h" +#include "i40e_prototype.h" +static int i40evf_setup_all_tx_resources(struct i40evf_adapter *adapter); +static int i40evf_setup_all_rx_resources(struct i40evf_adapter *adapter); +static int i40evf_close(struct net_device *netdev); + +char i40evf_driver_name[] = "i40evf"; +static const char i40evf_driver_string[] = + "Intel(R) XL710 X710 Virtual Function Network Driver"; + +#define DRV_VERSION "0.9.16" +const char i40evf_driver_version[] = DRV_VERSION; +static const char i40evf_copyright[] = + "Copyright (c) 2013 - 2014 Intel Corporation."; + +/* i40evf_pci_tbl - PCI Device ID Table + * + * Wildcard entries (PCI_ANY_ID) should come last + * Last entry must be all 0s + * + * { Vendor ID, Device ID, SubVendor ID, SubDevice ID, + * Class, Class Mask, private data (not used) } + */ +static DEFINE_PCI_DEVICE_TABLE(i40evf_pci_tbl) = { + {PCI_VDEVICE(INTEL, I40E_DEV_ID_VF), 0}, + /* required last entry */ + {0, } +}; + +MODULE_DEVICE_TABLE(pci, i40evf_pci_tbl); + +MODULE_AUTHOR("Intel Corporation, "); +MODULE_DESCRIPTION("Intel(R) XL710 X710 Virtual Function Network Driver"); +MODULE_LICENSE("GPL"); +MODULE_VERSION(DRV_VERSION); + +/** + * i40evf_allocate_dma_mem_d - OS specific memory alloc for shared code + * @hw: pointer to the HW structure + * @mem: ptr to mem struct to fill out + * @size: size of memory requested + * @alignment: what to align the allocation to + **/ +i40e_status i40evf_allocate_dma_mem_d(struct i40e_hw *hw, + struct i40e_dma_mem *mem, + u64 size, u32 alignment) +{ + struct i40evf_adapter *adapter = (struct i40evf_adapter *)hw->back; + + if (!mem) + return I40E_ERR_PARAM; + + mem->size = ALIGN(size, alignment); + mem->va = dma_alloc_coherent(&adapter->pdev->dev, mem->size, + (dma_addr_t *)&mem->pa, GFP_KERNEL); + if (mem->va) + return 0; + else + return I40E_ERR_NO_MEMORY; +} + +/** + * i40evf_free_dma_mem_d - OS specific memory free for shared code + * @hw: pointer to the HW structure + * @mem: ptr to mem struct to free + **/ +i40e_status i40evf_free_dma_mem_d(struct i40e_hw *hw, struct i40e_dma_mem *mem) +{ + struct i40evf_adapter *adapter = (struct i40evf_adapter *)hw->back; + + if (!mem || !mem->va) + return I40E_ERR_PARAM; + dma_free_coherent(&adapter->pdev->dev, mem->size, + mem->va, (dma_addr_t)mem->pa); + return 0; +} + +/** + * i40evf_allocate_virt_mem_d - OS specific memory alloc for shared code + * @hw: pointer to the HW structure + * @mem: ptr to mem struct to fill out + * @size: size of memory requested + **/ +i40e_status i40evf_allocate_virt_mem_d(struct i40e_hw *hw, + struct i40e_virt_mem *mem, u32 size) +{ + if (!mem) + return I40E_ERR_PARAM; + + mem->size = size; + mem->va = kzalloc(size, GFP_KERNEL); + + if (mem->va) + return 0; + else + return I40E_ERR_NO_MEMORY; +} + +/** + * i40evf_free_virt_mem_d - OS specific memory free for shared code + * @hw: pointer to the HW structure + * @mem: ptr to mem struct to free + **/ +i40e_status i40evf_free_virt_mem_d(struct i40e_hw *hw, + struct i40e_virt_mem *mem) +{ + if (!mem) + return I40E_ERR_PARAM; + + /* it's ok to kfree a NULL pointer */ + kfree(mem->va); + + return 0; +} + +/** + * i40evf_debug_d - OS dependent version of debug printing + * @hw: pointer to the HW structure + * @mask: debug level mask + * @fmt_str: printf-type format description + **/ +void i40evf_debug_d(void *hw, u32 mask, char *fmt_str, ...) +{ + char buf[512]; + va_list argptr; + + if (!(mask & ((struct i40e_hw *)hw)->debug_mask)) + return; + + va_start(argptr, fmt_str); + vsnprintf(buf, sizeof(buf), fmt_str, argptr); + va_end(argptr); + + /* the debug string is already formatted with a newline */ + pr_info("%s", buf); +} + +/** + * i40evf_tx_timeout - Respond to a Tx Hang + * @netdev: network interface device structure + **/ +static void i40evf_tx_timeout(struct net_device *netdev) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + + adapter->tx_timeout_count++; + dev_info(&adapter->pdev->dev, "TX timeout detected.\n"); + if (!(adapter->flags & I40EVF_FLAG_RESET_PENDING)) { + adapter->flags |= I40EVF_FLAG_RESET_NEEDED; + schedule_work(&adapter->reset_task); + } +} + +/** + * i40evf_misc_irq_disable - Mask off interrupt generation on the NIC + * @adapter: board private structure + **/ +static void i40evf_misc_irq_disable(struct i40evf_adapter *adapter) +{ + struct i40e_hw *hw = &adapter->hw; + wr32(hw, I40E_VFINT_DYN_CTL01, 0); + + /* read flush */ + rd32(hw, I40E_VFGEN_RSTAT); + + synchronize_irq(adapter->msix_entries[0].vector); +} + +/** + * i40evf_misc_irq_enable - Enable default interrupt generation settings + * @adapter: board private structure + **/ +static void i40evf_misc_irq_enable(struct i40evf_adapter *adapter) +{ + struct i40e_hw *hw = &adapter->hw; + wr32(hw, I40E_VFINT_DYN_CTL01, I40E_VFINT_DYN_CTL01_INTENA_MASK | + I40E_VFINT_DYN_CTL01_ITR_INDX_MASK); + wr32(hw, I40E_VFINT_ICR0_ENA1, I40E_VFINT_ICR0_ENA_ADMINQ_MASK); + + /* read flush */ + rd32(hw, I40E_VFGEN_RSTAT); +} + +/** + * i40evf_irq_disable - Mask off interrupt generation on the NIC + * @adapter: board private structure + **/ +static void i40evf_irq_disable(struct i40evf_adapter *adapter) +{ + int i; + struct i40e_hw *hw = &adapter->hw; + + if (!adapter->msix_entries) + return; + + for (i = 1; i < adapter->num_msix_vectors; i++) { + wr32(hw, I40E_VFINT_DYN_CTLN1(i - 1), 0); + synchronize_irq(adapter->msix_entries[i].vector); + } + /* read flush */ + rd32(hw, I40E_VFGEN_RSTAT); + +} + +/** + * i40evf_irq_enable_queues - Enable interrupt for specified queues + * @adapter: board private structure + * @mask: bitmap of queues to enable + **/ +void i40evf_irq_enable_queues(struct i40evf_adapter *adapter, u32 mask) +{ + struct i40e_hw *hw = &adapter->hw; + int i; + + for (i = 1; i < adapter->num_msix_vectors; i++) { + if (mask & (1 << (i - 1))) { + wr32(hw, I40E_VFINT_DYN_CTLN1(i - 1), + I40E_VFINT_DYN_CTLN1_INTENA_MASK | + I40E_VFINT_DYN_CTLN_CLEARPBA_MASK); + } + } +} + +/** + * i40evf_fire_sw_int - Generate SW interrupt for specified vectors + * @adapter: board private structure + * @mask: bitmap of vectors to trigger + **/ +static void i40evf_fire_sw_int(struct i40evf_adapter *adapter, + u32 mask) +{ + struct i40e_hw *hw = &adapter->hw; + int i; + uint32_t dyn_ctl; + + for (i = 1; i < adapter->num_msix_vectors; i++) { + if (mask & (1 << i)) { + dyn_ctl = rd32(hw, I40E_VFINT_DYN_CTLN1(i - 1)); + dyn_ctl |= I40E_VFINT_DYN_CTLN_SWINT_TRIG_MASK | + I40E_VFINT_DYN_CTLN_CLEARPBA_MASK; + wr32(hw, I40E_VFINT_DYN_CTLN1(i - 1), dyn_ctl); + } + } +} + +/** + * i40evf_irq_enable - Enable default interrupt generation settings + * @adapter: board private structure + **/ +void i40evf_irq_enable(struct i40evf_adapter *adapter, bool flush) +{ + struct i40e_hw *hw = &adapter->hw; + + i40evf_irq_enable_queues(adapter, ~0); + + if (flush) + rd32(hw, I40E_VFGEN_RSTAT); +} + +/** + * i40evf_msix_aq - Interrupt handler for vector 0 + * @irq: interrupt number + * @data: pointer to netdev + **/ +static irqreturn_t i40evf_msix_aq(int irq, void *data) +{ + struct net_device *netdev = data; + struct i40evf_adapter *adapter = netdev_priv(netdev); + struct i40e_hw *hw = &adapter->hw; + u32 val; + u32 ena_mask; + + /* handle non-queue interrupts */ + val = rd32(hw, I40E_VFINT_ICR01); + ena_mask = rd32(hw, I40E_VFINT_ICR0_ENA1); + + + val = rd32(hw, I40E_VFINT_DYN_CTL01); + val = val | I40E_PFINT_DYN_CTL0_CLEARPBA_MASK; + wr32(hw, I40E_VFINT_DYN_CTL01, val); + + /* re-enable interrupt causes */ + wr32(hw, I40E_VFINT_ICR0_ENA1, ena_mask); + wr32(hw, I40E_VFINT_DYN_CTL01, I40E_VFINT_DYN_CTL01_INTENA_MASK); + + /* schedule work on the private workqueue */ + schedule_work(&adapter->adminq_task); + + return IRQ_HANDLED; +} + +/** + * i40evf_msix_clean_rings - MSIX mode Interrupt Handler + * @irq: interrupt number + * @data: pointer to a q_vector + **/ +static irqreturn_t i40evf_msix_clean_rings(int irq, void *data) +{ + struct i40e_q_vector *q_vector = data; + + if (!q_vector->tx.ring && !q_vector->rx.ring) + return IRQ_HANDLED; + + napi_schedule(&q_vector->napi); + + return IRQ_HANDLED; +} + +/** + * i40evf_map_vector_to_rxq - associate irqs with rx queues + * @adapter: board private structure + * @v_idx: interrupt number + * @r_idx: queue number + **/ +static void +i40evf_map_vector_to_rxq(struct i40evf_adapter *adapter, int v_idx, int r_idx) +{ + struct i40e_q_vector *q_vector = adapter->q_vector[v_idx]; + struct i40e_ring *rx_ring = adapter->rx_rings[r_idx]; + + rx_ring->q_vector = q_vector; + rx_ring->next = q_vector->rx.ring; + rx_ring->vsi = &adapter->vsi; + q_vector->rx.ring = rx_ring; + q_vector->rx.count++; + q_vector->rx.latency_range = I40E_LOW_LATENCY; +} + +/** + * i40evf_map_vector_to_txq - associate irqs with tx queues + * @adapter: board private structure + * @v_idx: interrupt number + * @t_idx: queue number + **/ +static void +i40evf_map_vector_to_txq(struct i40evf_adapter *adapter, int v_idx, int t_idx) +{ + struct i40e_q_vector *q_vector = adapter->q_vector[v_idx]; + struct i40e_ring *tx_ring = adapter->tx_rings[t_idx]; + + tx_ring->q_vector = q_vector; + tx_ring->next = q_vector->tx.ring; + tx_ring->vsi = &adapter->vsi; + q_vector->tx.ring = tx_ring; + q_vector->tx.count++; + q_vector->tx.latency_range = I40E_LOW_LATENCY; + q_vector->num_ringpairs++; + q_vector->ring_mask |= (1 << t_idx); +} + +/** + * i40evf_map_rings_to_vectors - Maps descriptor rings to vectors + * @adapter: board private structure to initialize + * + * This function maps descriptor rings to the queue-specific vectors + * we were allotted through the MSI-X enabling code. Ideally, we'd have + * one vector per ring/queue, but on a constrained vector budget, we + * group the rings as "efficiently" as possible. You would add new + * mapping configurations in here. + **/ +static int i40evf_map_rings_to_vectors(struct i40evf_adapter *adapter) +{ + int q_vectors; + int v_start = 0; + int rxr_idx = 0, txr_idx = 0; + int rxr_remaining = adapter->vsi_res->num_queue_pairs; + int txr_remaining = adapter->vsi_res->num_queue_pairs; + int i, j; + int rqpv, tqpv; + int err = 0; + + q_vectors = adapter->num_msix_vectors - NONQ_VECS; + + /* The ideal configuration... + * We have enough vectors to map one per queue. + */ + if (q_vectors == (rxr_remaining * 2)) { + for (; rxr_idx < rxr_remaining; v_start++, rxr_idx++) + i40evf_map_vector_to_rxq(adapter, v_start, rxr_idx); + + for (; txr_idx < txr_remaining; v_start++, txr_idx++) + i40evf_map_vector_to_txq(adapter, v_start, txr_idx); + goto out; + } + + /* If we don't have enough vectors for a 1-to-1 + * mapping, we'll have to group them so there are + * multiple queues per vector. + * Re-adjusting *qpv takes care of the remainder. + */ + for (i = v_start; i < q_vectors; i++) { + rqpv = DIV_ROUND_UP(rxr_remaining, q_vectors - i); + for (j = 0; j < rqpv; j++) { + i40evf_map_vector_to_rxq(adapter, i, rxr_idx); + rxr_idx++; + rxr_remaining--; + } + } + for (i = v_start; i < q_vectors; i++) { + tqpv = DIV_ROUND_UP(txr_remaining, q_vectors - i); + for (j = 0; j < tqpv; j++) { + i40evf_map_vector_to_txq(adapter, i, txr_idx); + txr_idx++; + txr_remaining--; + } + } + +out: + adapter->aq_required |= I40EVF_FLAG_AQ_MAP_VECTORS; + + return err; +} + +/** + * i40evf_request_traffic_irqs - Initialize MSI-X interrupts + * @adapter: board private structure + * + * Allocates MSI-X vectors for tx and rx handling, and requests + * interrupts from the kernel. + **/ +static int +i40evf_request_traffic_irqs(struct i40evf_adapter *adapter, char *basename) +{ + int vector, err, q_vectors; + int rx_int_idx = 0, tx_int_idx = 0; + + i40evf_irq_disable(adapter); + /* Decrement for Other and TCP Timer vectors */ + q_vectors = adapter->num_msix_vectors - NONQ_VECS; + + for (vector = 0; vector < q_vectors; vector++) { + struct i40e_q_vector *q_vector = adapter->q_vector[vector]; + + if (q_vector->tx.ring && q_vector->rx.ring) { + snprintf(q_vector->name, sizeof(q_vector->name) - 1, + "i40evf-%s-%s-%d", basename, + "TxRx", rx_int_idx++); + tx_int_idx++; + } else if (q_vector->rx.ring) { + snprintf(q_vector->name, sizeof(q_vector->name) - 1, + "i40evf-%s-%s-%d", basename, + "rx", rx_int_idx++); + } else if (q_vector->tx.ring) { + snprintf(q_vector->name, sizeof(q_vector->name) - 1, + "i40evf-%s-%s-%d", basename, + "tx", tx_int_idx++); + } else { + /* skip this unused q_vector */ + continue; + } + err = request_irq( + adapter->msix_entries[vector + NONQ_VECS].vector, + i40evf_msix_clean_rings, + 0, + q_vector->name, + q_vector); + if (err) { + dev_info(&adapter->pdev->dev, + "%s: request_irq failed, error: %d\n", + __func__, err); + goto free_queue_irqs; + } + /* assign the mask for this irq */ + irq_set_affinity_hint( + adapter->msix_entries[vector + NONQ_VECS].vector, + q_vector->affinity_mask); + } + + return 0; + +free_queue_irqs: + while (vector) { + vector--; + irq_set_affinity_hint( + adapter->msix_entries[vector + NONQ_VECS].vector, + NULL); + free_irq(adapter->msix_entries[vector + NONQ_VECS].vector, + adapter->q_vector[vector]); + } + return err; +} + +/** + * i40evf_request_misc_irq - Initialize MSI-X interrupts + * @adapter: board private structure + * + * Allocates MSI-X vector 0 and requests interrupts from the kernel. This + * vector is only for the admin queue, and stays active even when the netdev + * is closed. + **/ +static int i40evf_request_misc_irq(struct i40evf_adapter *adapter) +{ + struct net_device *netdev = adapter->netdev; + int err; + + sprintf(adapter->misc_vector_name, "i40evf:mbx"); + err = request_irq(adapter->msix_entries[0].vector, + &i40evf_msix_aq, 0, + adapter->misc_vector_name, netdev); + if (err) { + dev_err(&adapter->pdev->dev, + "request_irq for %s failed: %d\n", + adapter->misc_vector_name, err); + free_irq(adapter->msix_entries[0].vector, netdev); + } + return err; +} + +/** + * i40evf_free_traffic_irqs - Free MSI-X interrupts + * @adapter: board private structure + * + * Frees all MSI-X vectors other than 0. + **/ +static void i40evf_free_traffic_irqs(struct i40evf_adapter *adapter) +{ + int i; + int q_vectors; + q_vectors = adapter->num_msix_vectors - NONQ_VECS; + + for (i = 0; i < q_vectors; i++) { + irq_set_affinity_hint(adapter->msix_entries[i+1].vector, + NULL); + free_irq(adapter->msix_entries[i+1].vector, + adapter->q_vector[i]); + } +} + +/** + * i40evf_free_misc_irq - Free MSI-X miscellaneous vector + * @adapter: board private structure + * + * Frees MSI-X vector 0. + **/ +static void i40evf_free_misc_irq(struct i40evf_adapter *adapter) +{ + struct net_device *netdev = adapter->netdev; + + free_irq(adapter->msix_entries[0].vector, netdev); +} + +/** + * i40evf_configure_tx - Configure Transmit Unit after Reset + * @adapter: board private structure + * + * Configure the Tx unit of the MAC after a reset. + **/ +static void i40evf_configure_tx(struct i40evf_adapter *adapter) +{ + struct i40e_hw *hw = &adapter->hw; + int i; + for (i = 0; i < adapter->vsi_res->num_queue_pairs; i++) + adapter->tx_rings[i]->tail = hw->hw_addr + I40E_QTX_TAIL1(i); +} + +/** + * i40evf_configure_rx - Configure Receive Unit after Reset + * @adapter: board private structure + * + * Configure the Rx unit of the MAC after a reset. + **/ +static void i40evf_configure_rx(struct i40evf_adapter *adapter) +{ + struct i40e_hw *hw = &adapter->hw; + struct net_device *netdev = adapter->netdev; + int max_frame = netdev->mtu + ETH_HLEN + ETH_FCS_LEN; + int i; + int rx_buf_len; + + + adapter->flags &= ~I40EVF_FLAG_RX_PS_CAPABLE; + adapter->flags |= I40EVF_FLAG_RX_1BUF_CAPABLE; + + /* Decide whether to use packet split mode or not */ + if (netdev->mtu > ETH_DATA_LEN) { + if (adapter->flags & I40EVF_FLAG_RX_PS_CAPABLE) + adapter->flags |= I40EVF_FLAG_RX_PS_ENABLED; + else + adapter->flags &= ~I40EVF_FLAG_RX_PS_ENABLED; + } else { + if (adapter->flags & I40EVF_FLAG_RX_1BUF_CAPABLE) + adapter->flags &= ~I40EVF_FLAG_RX_PS_ENABLED; + else + adapter->flags |= I40EVF_FLAG_RX_PS_ENABLED; + } + + /* Set the RX buffer length according to the mode */ + if (adapter->flags & I40EVF_FLAG_RX_PS_ENABLED) { + rx_buf_len = I40E_RX_HDR_SIZE; + } else { + if (netdev->mtu <= ETH_DATA_LEN) + rx_buf_len = I40EVF_RXBUFFER_2048; + else + rx_buf_len = ALIGN(max_frame, 1024); + } + + for (i = 0; i < adapter->vsi_res->num_queue_pairs; i++) { + adapter->rx_rings[i]->tail = hw->hw_addr + I40E_QRX_TAIL1(i); + adapter->rx_rings[i]->rx_buf_len = rx_buf_len; + } +} + +/** + * i40evf_find_vlan - Search filter list for specific vlan filter + * @adapter: board private structure + * @vlan: vlan tag + * + * Returns ptr to the filter object or NULL + **/ +static struct +i40evf_vlan_filter *i40evf_find_vlan(struct i40evf_adapter *adapter, u16 vlan) +{ + struct i40evf_vlan_filter *f; + + list_for_each_entry(f, &adapter->vlan_filter_list, list) { + if (vlan == f->vlan) + return f; + } + return NULL; +} + +/** + * i40evf_add_vlan - Add a vlan filter to the list + * @adapter: board private structure + * @vlan: VLAN tag + * + * Returns ptr to the filter object or NULL when no memory available. + **/ +static struct +i40evf_vlan_filter *i40evf_add_vlan(struct i40evf_adapter *adapter, u16 vlan) +{ + struct i40evf_vlan_filter *f; + + f = i40evf_find_vlan(adapter, vlan); + if (NULL == f) { + f = kzalloc(sizeof(*f), GFP_ATOMIC); + if (NULL == f) { + dev_info(&adapter->pdev->dev, + "%s: no memory for new VLAN filter\n", + __func__); + return NULL; + } + f->vlan = vlan; + + INIT_LIST_HEAD(&f->list); + list_add(&f->list, &adapter->vlan_filter_list); + f->add = true; + adapter->aq_required |= I40EVF_FLAG_AQ_ADD_VLAN_FILTER; + } + + return f; +} + +/** + * i40evf_del_vlan - Remove a vlan filter from the list + * @adapter: board private structure + * @vlan: VLAN tag + **/ +static void i40evf_del_vlan(struct i40evf_adapter *adapter, u16 vlan) +{ + struct i40evf_vlan_filter *f; + + f = i40evf_find_vlan(adapter, vlan); + if (f) { + f->remove = true; + adapter->aq_required |= I40EVF_FLAG_AQ_DEL_VLAN_FILTER; + } + return; +} + +/** + * i40evf_vlan_rx_add_vid - Add a VLAN filter to a device + * @netdev: network device struct + * @vid: VLAN tag + **/ +static int i40evf_vlan_rx_add_vid(struct net_device *netdev, + __always_unused __be16 proto, u16 vid) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + + if (i40evf_add_vlan(adapter, vid) == NULL) + return -ENOMEM; + return 0; +} + +/** + * i40evf_vlan_rx_kill_vid - Remove a VLAN filter from a device + * @netdev: network device struct + * @vid: VLAN tag + **/ +static int i40evf_vlan_rx_kill_vid(struct net_device *netdev, + __always_unused __be16 proto, u16 vid) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + + i40evf_del_vlan(adapter, vid); + return 0; +} + +/** + * i40evf_find_filter - Search filter list for specific mac filter + * @adapter: board private structure + * @macaddr: the MAC address + * + * Returns ptr to the filter object or NULL + **/ +static struct +i40evf_mac_filter *i40evf_find_filter(struct i40evf_adapter *adapter, + u8 *macaddr) +{ + struct i40evf_mac_filter *f; + + if (!macaddr) + return NULL; + + list_for_each_entry(f, &adapter->mac_filter_list, list) { + if (ether_addr_equal(macaddr, f->macaddr)) + return f; + } + return NULL; +} + +/** + * i40e_add_filter - Add a mac filter to the filter list + * @adapter: board private structure + * @macaddr: the MAC address + * + * Returns ptr to the filter object or NULL when no memory available. + **/ +static struct +i40evf_mac_filter *i40evf_add_filter(struct i40evf_adapter *adapter, + u8 *macaddr) +{ + struct i40evf_mac_filter *f; + + if (!macaddr) + return NULL; + + while (test_and_set_bit(__I40EVF_IN_CRITICAL_TASK, + &adapter->crit_section)) + mdelay(1); + + f = i40evf_find_filter(adapter, macaddr); + if (NULL == f) { + f = kzalloc(sizeof(*f), GFP_ATOMIC); + if (NULL == f) { + dev_info(&adapter->pdev->dev, + "%s: no memory for new filter\n", __func__); + clear_bit(__I40EVF_IN_CRITICAL_TASK, + &adapter->crit_section); + return NULL; + } + + memcpy(f->macaddr, macaddr, ETH_ALEN); + + list_add(&f->list, &adapter->mac_filter_list); + f->add = true; + adapter->aq_required |= I40EVF_FLAG_AQ_ADD_MAC_FILTER; + } + + clear_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section); + return f; +} + +/** + * i40evf_set_mac - NDO callback to set port mac address + * @netdev: network interface device structure + * @p: pointer to an address structure + * + * Returns 0 on success, negative on failure + **/ +static int i40evf_set_mac(struct net_device *netdev, void *p) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + struct i40e_hw *hw = &adapter->hw; + struct i40evf_mac_filter *f; + struct sockaddr *addr = p; + + if (!is_valid_ether_addr(addr->sa_data)) + return -EADDRNOTAVAIL; + + if (ether_addr_equal(netdev->dev_addr, addr->sa_data)) + return 0; + + f = i40evf_add_filter(adapter, addr->sa_data); + if (f) { + memcpy(hw->mac.addr, addr->sa_data, netdev->addr_len); + memcpy(netdev->dev_addr, adapter->hw.mac.addr, + netdev->addr_len); + } + + return (f == NULL) ? -ENOMEM : 0; +} + +/** + * i40evf_set_rx_mode - NDO callback to set the netdev filters + * @netdev: network interface device structure + **/ +static void i40evf_set_rx_mode(struct net_device *netdev) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + struct i40evf_mac_filter *f, *ftmp; + struct netdev_hw_addr *uca; + struct netdev_hw_addr *mca; + + /* add addr if not already in the filter list */ + netdev_for_each_uc_addr(uca, netdev) { + i40evf_add_filter(adapter, uca->addr); + } + netdev_for_each_mc_addr(mca, netdev) { + i40evf_add_filter(adapter, mca->addr); + } + + while (test_and_set_bit(__I40EVF_IN_CRITICAL_TASK, + &adapter->crit_section)) + mdelay(1); + /* remove filter if not in netdev list */ + list_for_each_entry_safe(f, ftmp, &adapter->mac_filter_list, list) { + bool found = false; + + if (f->macaddr[0] & 0x01) { + netdev_for_each_mc_addr(mca, netdev) { + if (ether_addr_equal(mca->addr, f->macaddr)) { + found = true; + break; + } + } + } else { + netdev_for_each_uc_addr(uca, netdev) { + if (ether_addr_equal(uca->addr, f->macaddr)) { + found = true; + break; + } + } + } + if (found) { + f->remove = true; + adapter->aq_required |= I40EVF_FLAG_AQ_DEL_MAC_FILTER; + } + } + clear_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section); +} + +/** + * i40evf_napi_enable_all - enable NAPI on all queue vectors + * @adapter: board private structure + **/ +static void i40evf_napi_enable_all(struct i40evf_adapter *adapter) +{ + int q_idx; + struct i40e_q_vector *q_vector; + int q_vectors = adapter->num_msix_vectors - NONQ_VECS; + + for (q_idx = 0; q_idx < q_vectors; q_idx++) { + struct napi_struct *napi; + q_vector = adapter->q_vector[q_idx]; + napi = &q_vector->napi; + napi_enable(napi); + } +} + +/** + * i40evf_napi_disable_all - disable NAPI on all queue vectors + * @adapter: board private structure + **/ +static void i40evf_napi_disable_all(struct i40evf_adapter *adapter) +{ + int q_idx; + struct i40e_q_vector *q_vector; + int q_vectors = adapter->num_msix_vectors - NONQ_VECS; + + for (q_idx = 0; q_idx < q_vectors; q_idx++) { + q_vector = adapter->q_vector[q_idx]; + napi_disable(&q_vector->napi); + } +} + +/** + * i40evf_configure - set up transmit and receive data structures + * @adapter: board private structure + **/ +static void i40evf_configure(struct i40evf_adapter *adapter) +{ + struct net_device *netdev = adapter->netdev; + int i; + + i40evf_set_rx_mode(netdev); + + i40evf_configure_tx(adapter); + i40evf_configure_rx(adapter); + adapter->aq_required |= I40EVF_FLAG_AQ_CONFIGURE_QUEUES; + + for (i = 0; i < adapter->vsi_res->num_queue_pairs; i++) { + struct i40e_ring *ring = adapter->rx_rings[i]; + i40evf_alloc_rx_buffers(ring, ring->count); + ring->next_to_use = ring->count - 1; + writel(ring->next_to_use, ring->tail); + } +} + +/** + * i40evf_up_complete - Finish the last steps of bringing up a connection + * @adapter: board private structure + **/ +static int i40evf_up_complete(struct i40evf_adapter *adapter) +{ + adapter->state = __I40EVF_RUNNING; + clear_bit(__I40E_DOWN, &adapter->vsi.state); + + i40evf_napi_enable_all(adapter); + + adapter->aq_required |= I40EVF_FLAG_AQ_ENABLE_QUEUES; + mod_timer_pending(&adapter->watchdog_timer, jiffies + 1); + return 0; +} + +/** + * i40evf_clean_all_rx_rings - Free Rx Buffers for all queues + * @adapter: board private structure + **/ +static void i40evf_clean_all_rx_rings(struct i40evf_adapter *adapter) +{ + int i; + + for (i = 0; i < adapter->vsi_res->num_queue_pairs; i++) + i40evf_clean_rx_ring(adapter->rx_rings[i]); +} + +/** + * i40evf_clean_all_tx_rings - Free Tx Buffers for all queues + * @adapter: board private structure + **/ +static void i40evf_clean_all_tx_rings(struct i40evf_adapter *adapter) +{ + int i; + + for (i = 0; i < adapter->vsi_res->num_queue_pairs; i++) + i40evf_clean_tx_ring(adapter->tx_rings[i]); +} + +/** + * i40e_down - Shutdown the connection processing + * @adapter: board private structure + **/ +void i40evf_down(struct i40evf_adapter *adapter) +{ + struct net_device *netdev = adapter->netdev; + struct i40evf_mac_filter *f; + + /* remove all MAC filters */ + list_for_each_entry(f, &adapter->mac_filter_list, list) { + f->remove = true; + } + /* remove all VLAN filters */ + list_for_each_entry(f, &adapter->vlan_filter_list, list) { + f->remove = true; + } + if (!(adapter->flags & I40EVF_FLAG_PF_COMMS_FAILED) && + adapter->state != __I40EVF_RESETTING) { + adapter->aq_required |= I40EVF_FLAG_AQ_DEL_MAC_FILTER; + adapter->aq_required |= I40EVF_FLAG_AQ_DEL_VLAN_FILTER; + /* disable receives */ + adapter->aq_required |= I40EVF_FLAG_AQ_DISABLE_QUEUES; + mod_timer_pending(&adapter->watchdog_timer, jiffies + 1); + msleep(20); + } + netif_tx_disable(netdev); + + netif_tx_stop_all_queues(netdev); + + i40evf_irq_disable(adapter); + + i40evf_napi_disable_all(adapter); + + netif_carrier_off(netdev); + + i40evf_clean_all_tx_rings(adapter); + i40evf_clean_all_rx_rings(adapter); +} + +/** + * i40evf_acquire_msix_vectors - Setup the MSIX capability + * @adapter: board private structure + * @vectors: number of vectors to request + * + * Work with the OS to set up the MSIX vectors needed. + * + * Returns 0 on success, negative on failure + **/ +static int +i40evf_acquire_msix_vectors(struct i40evf_adapter *adapter, int vectors) +{ + int err, vector_threshold; + + /* We'll want at least 3 (vector_threshold): + * 0) Other (Admin Queue and link, mostly) + * 1) TxQ[0] Cleanup + * 2) RxQ[0] Cleanup + */ + vector_threshold = MIN_MSIX_COUNT; + + /* The more we get, the more we will assign to Tx/Rx Cleanup + * for the separate queues...where Rx Cleanup >= Tx Cleanup. + * Right now, we simply care about how many we'll get; we'll + * set them up later while requesting irq's. + */ + while (vectors >= vector_threshold) { + err = pci_enable_msix(adapter->pdev, adapter->msix_entries, + vectors); + if (!err) /* Success in acquiring all requested vectors. */ + break; + else if (err < 0) + vectors = 0; /* Nasty failure, quit now */ + else /* err == number of vectors we should try again with */ + vectors = err; + } + + if (vectors < vector_threshold) { + dev_err(&adapter->pdev->dev, "Unable to allocate MSI-X interrupts.\n"); + kfree(adapter->msix_entries); + adapter->msix_entries = NULL; + err = -EIO; + } else { + /* Adjust for only the vectors we'll use, which is minimum + * of max_msix_q_vectors + NONQ_VECS, or the number of + * vectors we were allocated. + */ + adapter->num_msix_vectors = vectors; + } + return err; +} + +/** + * i40evf_free_queues - Free memory for all rings + * @adapter: board private structure to initialize + * + * Free all of the memory associated with queue pairs. + **/ +static void i40evf_free_queues(struct i40evf_adapter *adapter) +{ + int i; + + if (!adapter->vsi_res) + return; + for (i = 0; i < adapter->vsi_res->num_queue_pairs; i++) { + if (adapter->tx_rings[i]) + kfree_rcu(adapter->tx_rings[i], rcu); + adapter->tx_rings[i] = NULL; + adapter->rx_rings[i] = NULL; + } +} + +/** + * i40evf_alloc_queues - Allocate memory for all rings + * @adapter: board private structure to initialize + * + * We allocate one ring per queue at run-time since we don't know the + * number of queues at compile-time. The polling_netdev array is + * intended for Multiqueue, but should work fine with a single queue. + **/ +static int i40evf_alloc_queues(struct i40evf_adapter *adapter) +{ + int i; + + for (i = 0; i < adapter->vsi_res->num_queue_pairs; i++) { + struct i40e_ring *tx_ring; + struct i40e_ring *rx_ring; + + tx_ring = kzalloc(sizeof(struct i40e_ring) * 2, GFP_KERNEL); + if (!tx_ring) + goto err_out; + + tx_ring->queue_index = i; + tx_ring->netdev = adapter->netdev; + tx_ring->dev = &adapter->pdev->dev; + tx_ring->count = I40EVF_DEFAULT_TXD; + adapter->tx_rings[i] = tx_ring; + + rx_ring = &tx_ring[1]; + rx_ring->queue_index = i; + rx_ring->netdev = adapter->netdev; + rx_ring->dev = &adapter->pdev->dev; + rx_ring->count = I40EVF_DEFAULT_RXD; + adapter->rx_rings[i] = rx_ring; + } + + return 0; + +err_out: + i40evf_free_queues(adapter); + return -ENOMEM; +} + +/** + * i40evf_set_interrupt_capability - set MSI-X or FAIL if not supported + * @adapter: board private structure to initialize + * + * Attempt to configure the interrupts using the best available + * capabilities of the hardware and the kernel. + **/ +static int i40evf_set_interrupt_capability(struct i40evf_adapter *adapter) +{ + int vector, v_budget; + int pairs = 0; + int err = 0; + + if (!adapter->vsi_res) { + err = -EIO; + goto out; + } + pairs = adapter->vsi_res->num_queue_pairs; + + /* It's easy to be greedy for MSI-X vectors, but it really + * doesn't do us much good if we have a lot more vectors + * than CPU's. So let's be conservative and only ask for + * (roughly) twice the number of vectors as there are CPU's. + */ + v_budget = min_t(int, pairs, (int)(num_online_cpus() * 2)) + NONQ_VECS; + v_budget = min_t(int, v_budget, (int)adapter->vf_res->max_vectors); + + /* A failure in MSI-X entry allocation isn't fatal, but it does + * mean we disable MSI-X capabilities of the adapter. + */ + adapter->msix_entries = kcalloc(v_budget, + sizeof(struct msix_entry), GFP_KERNEL); + if (!adapter->msix_entries) { + err = -ENOMEM; + goto out; + } + + for (vector = 0; vector < v_budget; vector++) + adapter->msix_entries[vector].entry = vector; + + i40evf_acquire_msix_vectors(adapter, v_budget); + +out: + adapter->netdev->real_num_tx_queues = pairs; + return err; +} + +/** + * i40evf_alloc_q_vectors - Allocate memory for interrupt vectors + * @adapter: board private structure to initialize + * + * We allocate one q_vector per queue interrupt. If allocation fails we + * return -ENOMEM. + **/ +static int i40evf_alloc_q_vectors(struct i40evf_adapter *adapter) +{ + int q_idx, num_q_vectors; + struct i40e_q_vector *q_vector; + + num_q_vectors = adapter->num_msix_vectors - NONQ_VECS; + + for (q_idx = 0; q_idx < num_q_vectors; q_idx++) { + q_vector = kzalloc(sizeof(struct i40e_q_vector), GFP_KERNEL); + if (!q_vector) + goto err_out; + q_vector->adapter = adapter; + q_vector->vsi = &adapter->vsi; + q_vector->v_idx = q_idx; + netif_napi_add(adapter->netdev, &q_vector->napi, + i40evf_napi_poll, 64); + adapter->q_vector[q_idx] = q_vector; + } + + return 0; + +err_out: + while (q_idx) { + q_idx--; + q_vector = adapter->q_vector[q_idx]; + netif_napi_del(&q_vector->napi); + kfree(q_vector); + adapter->q_vector[q_idx] = NULL; + } + return -ENOMEM; +} + +/** + * i40evf_free_q_vectors - Free memory allocated for interrupt vectors + * @adapter: board private structure to initialize + * + * This function frees the memory allocated to the q_vectors. In addition if + * NAPI is enabled it will delete any references to the NAPI struct prior + * to freeing the q_vector. + **/ +static void i40evf_free_q_vectors(struct i40evf_adapter *adapter) +{ + int q_idx, num_q_vectors; + int napi_vectors; + + num_q_vectors = adapter->num_msix_vectors - NONQ_VECS; + napi_vectors = adapter->vsi_res->num_queue_pairs; + + for (q_idx = 0; q_idx < num_q_vectors; q_idx++) { + struct i40e_q_vector *q_vector = adapter->q_vector[q_idx]; + + adapter->q_vector[q_idx] = NULL; + if (q_idx < napi_vectors) + netif_napi_del(&q_vector->napi); + kfree(q_vector); + } +} + +/** + * i40evf_reset_interrupt_capability - Reset MSIX setup + * @adapter: board private structure + * + **/ +void i40evf_reset_interrupt_capability(struct i40evf_adapter *adapter) +{ + pci_disable_msix(adapter->pdev); + kfree(adapter->msix_entries); + adapter->msix_entries = NULL; + + return; +} + +/** + * i40evf_init_interrupt_scheme - Determine if MSIX is supported and init + * @adapter: board private structure to initialize + * + **/ +int i40evf_init_interrupt_scheme(struct i40evf_adapter *adapter) +{ + int err; + + err = i40evf_set_interrupt_capability(adapter); + if (err) { + dev_err(&adapter->pdev->dev, + "Unable to setup interrupt capabilities\n"); + goto err_set_interrupt; + } + + err = i40evf_alloc_q_vectors(adapter); + if (err) { + dev_err(&adapter->pdev->dev, + "Unable to allocate memory for queue vectors\n"); + goto err_alloc_q_vectors; + } + + err = i40evf_alloc_queues(adapter); + if (err) { + dev_err(&adapter->pdev->dev, + "Unable to allocate memory for queues\n"); + goto err_alloc_queues; + } + + dev_info(&adapter->pdev->dev, "Multiqueue %s: Queue pair count = %u", + (adapter->vsi_res->num_queue_pairs > 1) ? "Enabled" : + "Disabled", adapter->vsi_res->num_queue_pairs); + + return 0; +err_alloc_queues: + i40evf_free_q_vectors(adapter); +err_alloc_q_vectors: + i40evf_reset_interrupt_capability(adapter); +err_set_interrupt: + return err; +} + +/** + * i40evf_watchdog_timer - Periodic call-back timer + * @data: pointer to adapter disguised as unsigned long + **/ +static void i40evf_watchdog_timer(unsigned long data) +{ + struct i40evf_adapter *adapter = (struct i40evf_adapter *)data; + schedule_work(&adapter->watchdog_task); + /* timer will be rescheduled in watchdog task */ +} + +/** + * i40evf_watchdog_task - Periodic call-back task + * @work: pointer to work_struct + **/ +static void i40evf_watchdog_task(struct work_struct *work) +{ + struct i40evf_adapter *adapter = container_of(work, + struct i40evf_adapter, + watchdog_task); + struct i40e_hw *hw = &adapter->hw; + + if (test_and_set_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section)) + goto restart_watchdog; + + if (adapter->flags & I40EVF_FLAG_PF_COMMS_FAILED) { + dev_info(&adapter->pdev->dev, "Checking for redemption\n"); + if ((rd32(hw, I40E_VFGEN_RSTAT) & 0x3) == I40E_VFR_VFACTIVE) { + /* A chance for redemption! */ + dev_err(&adapter->pdev->dev, "Hardware came out of reset. Attempting reinit.\n"); + adapter->state = __I40EVF_STARTUP; + adapter->flags &= ~I40EVF_FLAG_PF_COMMS_FAILED; + schedule_delayed_work(&adapter->init_task, 10); + clear_bit(__I40EVF_IN_CRITICAL_TASK, + &adapter->crit_section); + /* Don't reschedule the watchdog, since we've restarted + * the init task. When init_task contacts the PF and + * gets everything set up again, it'll restart the + * watchdog for us. Down, boy. Sit. Stay. Woof. + */ + return; + } + adapter->aq_pending = 0; + adapter->aq_required = 0; + adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN; + goto watchdog_done; + } + + if ((adapter->state < __I40EVF_DOWN) || + (adapter->flags & I40EVF_FLAG_RESET_PENDING)) + goto watchdog_done; + + /* check for reset */ + if (!(adapter->flags & I40EVF_FLAG_RESET_PENDING) && + (rd32(hw, I40E_VFGEN_RSTAT) & 0x3) != I40E_VFR_VFACTIVE) { + adapter->state = __I40EVF_RESETTING; + adapter->flags |= I40EVF_FLAG_RESET_PENDING; + dev_err(&adapter->pdev->dev, "Hardware reset detected.\n"); + dev_info(&adapter->pdev->dev, "Scheduling reset task\n"); + schedule_work(&adapter->reset_task); + adapter->aq_pending = 0; + adapter->aq_required = 0; + adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN; + goto watchdog_done; + } + + /* Process admin queue tasks. After init, everything gets done + * here so we don't race on the admin queue. + */ + if (adapter->aq_pending) + goto watchdog_done; + + if (adapter->aq_required & I40EVF_FLAG_AQ_MAP_VECTORS) { + i40evf_map_queues(adapter); + goto watchdog_done; + } + + if (adapter->aq_required & I40EVF_FLAG_AQ_ADD_MAC_FILTER) { + i40evf_add_ether_addrs(adapter); + goto watchdog_done; + } + + if (adapter->aq_required & I40EVF_FLAG_AQ_ADD_VLAN_FILTER) { + i40evf_add_vlans(adapter); + goto watchdog_done; + } + + if (adapter->aq_required & I40EVF_FLAG_AQ_DEL_MAC_FILTER) { + i40evf_del_ether_addrs(adapter); + goto watchdog_done; + } + + if (adapter->aq_required & I40EVF_FLAG_AQ_DEL_VLAN_FILTER) { + i40evf_del_vlans(adapter); + goto watchdog_done; + } + + if (adapter->aq_required & I40EVF_FLAG_AQ_DISABLE_QUEUES) { + i40evf_disable_queues(adapter); + goto watchdog_done; + } + + if (adapter->aq_required & I40EVF_FLAG_AQ_CONFIGURE_QUEUES) { + i40evf_configure_queues(adapter); + goto watchdog_done; + } + + if (adapter->aq_required & I40EVF_FLAG_AQ_ENABLE_QUEUES) { + i40evf_enable_queues(adapter); + goto watchdog_done; + } + + if (adapter->state == __I40EVF_RUNNING) + i40evf_request_stats(adapter); + + i40evf_irq_enable(adapter, true); + i40evf_fire_sw_int(adapter, 0xFF); + +watchdog_done: + clear_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section); +restart_watchdog: + if (adapter->aq_required) + mod_timer(&adapter->watchdog_timer, + jiffies + msecs_to_jiffies(20)); + else + mod_timer(&adapter->watchdog_timer, jiffies + (HZ * 2)); + schedule_work(&adapter->adminq_task); +} + +/** + * i40evf_configure_rss - increment to next available tx queue + * @adapter: board private structure + * @j: queue counter + * + * Helper function for RSS programming to increment through available + * queus. Returns the next queue value. + **/ +static int next_queue(struct i40evf_adapter *adapter, int j) +{ + j += 1; + + return j >= adapter->vsi_res->num_queue_pairs ? 0 : j; +} + +/** + * i40evf_configure_rss - Prepare for RSS if used + * @adapter: board private structure + **/ +static void i40evf_configure_rss(struct i40evf_adapter *adapter) +{ + struct i40e_hw *hw = &adapter->hw; + u32 lut = 0; + int i, j; + u64 hena; + + /* Set of random keys generated using kernel random number generator */ + static const u32 seed[I40E_VFQF_HKEY_MAX_INDEX + 1] = { + 0x794221b4, 0xbca0c5ab, 0x6cd5ebd9, 0x1ada6127, + 0x983b3aa1, 0x1c4e71eb, 0x7f6328b2, 0xfcdc0da0, + 0xc135cafa, 0x7a6f7e2d, 0xe7102d28, 0x163cd12e, + 0x4954b126 }; + + /* Hash type is configured by the PF - we just supply the key */ + + /* Fill out hash function seed */ + for (i = 0; i <= I40E_VFQF_HKEY_MAX_INDEX; i++) + wr32(hw, I40E_VFQF_HKEY(i), seed[i]); + + /* Enable PCTYPES for RSS, TCP/UDP with IPv4/IPv6 */ + hena = I40E_DEFAULT_RSS_HENA; + wr32(hw, I40E_VFQF_HENA(0), (u32)hena); + wr32(hw, I40E_VFQF_HENA(1), (u32)(hena >> 32)); + + /* Populate the LUT with max no. of queues in round robin fashion */ + j = adapter->vsi_res->num_queue_pairs; + for (i = 0; i <= I40E_VFQF_HLUT_MAX_INDEX; i++) { + j = next_queue(adapter, j); + lut = j; + j = next_queue(adapter, j); + lut |= j << 8; + j = next_queue(adapter, j); + lut |= j << 16; + j = next_queue(adapter, j); + lut |= j << 24; + wr32(hw, I40E_VFQF_HLUT(i), lut); + } + i40e_flush(hw); +} + +#define I40EVF_RESET_WAIT_MS 100 +#define I40EVF_RESET_WAIT_COUNT 200 +/** + * i40evf_reset_task - Call-back task to handle hardware reset + * @work: pointer to work_struct + * + * During reset we need to shut down and reinitialize the admin queue + * before we can use it to communicate with the PF again. We also clear + * and reinit the rings because that context is lost as well. + **/ +static void i40evf_reset_task(struct work_struct *work) +{ + struct i40evf_adapter *adapter = container_of(work, + struct i40evf_adapter, + reset_task); + struct i40e_hw *hw = &adapter->hw; + int i = 0, err; + uint32_t rstat_val; + + while (test_and_set_bit(__I40EVF_IN_CRITICAL_TASK, + &adapter->crit_section)) + udelay(500); + + if (adapter->flags & I40EVF_FLAG_RESET_NEEDED) { + dev_info(&adapter->pdev->dev, "Requesting reset from PF\n"); + i40evf_request_reset(adapter); + } + + /* poll until we see the reset actually happen */ + for (i = 0; i < I40EVF_RESET_WAIT_COUNT; i++) { + rstat_val = rd32(hw, I40E_VFGEN_RSTAT) & + I40E_VFGEN_RSTAT_VFR_STATE_MASK; + if (rstat_val != I40E_VFR_VFACTIVE) { + dev_info(&adapter->pdev->dev, "Reset now occurring\n"); + break; + } else { + msleep(I40EVF_RESET_WAIT_MS); + } + } + if (i == I40EVF_RESET_WAIT_COUNT) { + dev_err(&adapter->pdev->dev, "Reset was not detected\n"); + adapter->flags &= ~I40EVF_FLAG_RESET_PENDING; + goto continue_reset; /* act like the reset happened */ + } + + /* wait until the reset is complete and the PF is responding to us */ + for (i = 0; i < I40EVF_RESET_WAIT_COUNT; i++) { + rstat_val = rd32(hw, I40E_VFGEN_RSTAT) & + I40E_VFGEN_RSTAT_VFR_STATE_MASK; + if (rstat_val == I40E_VFR_VFACTIVE) { + dev_info(&adapter->pdev->dev, "Reset is complete. Reinitializing.\n"); + break; + } else { + msleep(I40EVF_RESET_WAIT_MS); + } + } + if (i == I40EVF_RESET_WAIT_COUNT) { + /* reset never finished */ + dev_err(&adapter->pdev->dev, "Reset never finished (%x). PF driver is dead, and so am I.\n", + rstat_val); + adapter->flags |= I40EVF_FLAG_PF_COMMS_FAILED; + + if (netif_running(adapter->netdev)) + i40evf_close(adapter->netdev); + + i40evf_free_misc_irq(adapter); + i40evf_reset_interrupt_capability(adapter); + i40evf_free_queues(adapter); + kfree(adapter->vf_res); + i40evf_shutdown_adminq(hw); + adapter->netdev->flags &= ~IFF_UP; + clear_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section); + return; /* Do not attempt to reinit. It's dead, Jim. */ + } + +continue_reset: + adapter->flags &= ~I40EVF_FLAG_RESET_PENDING; + + i40evf_down(adapter); + adapter->state = __I40EVF_RESETTING; + + /* kill and reinit the admin queue */ + if (i40evf_shutdown_adminq(hw)) + dev_warn(&adapter->pdev->dev, + "%s: Failed to destroy the Admin Queue resources\n", + __func__); + err = i40evf_init_adminq(hw); + if (err) + dev_info(&adapter->pdev->dev, "%s: init_adminq failed: %d\n", + __func__, err); + + adapter->aq_pending = 0; + adapter->aq_required = 0; + i40evf_map_queues(adapter); + clear_bit(__I40EVF_IN_CRITICAL_TASK, &adapter->crit_section); + + mod_timer(&adapter->watchdog_timer, jiffies + 2); + + if (netif_running(adapter->netdev)) { + /* allocate transmit descriptors */ + err = i40evf_setup_all_tx_resources(adapter); + if (err) + goto reset_err; + + /* allocate receive descriptors */ + err = i40evf_setup_all_rx_resources(adapter); + if (err) + goto reset_err; + + i40evf_configure(adapter); + + err = i40evf_up_complete(adapter); + if (err) + goto reset_err; + + i40evf_irq_enable(adapter, true); + } + return; +reset_err: + dev_err(&adapter->pdev->dev, "failed to allocate resources during reinit.\n"); + i40evf_close(adapter->netdev); +} + +/** + * i40evf_adminq_task - worker thread to clean the admin queue + * @work: pointer to work_struct containing our data + **/ +static void i40evf_adminq_task(struct work_struct *work) +{ + struct i40evf_adapter *adapter = + container_of(work, struct i40evf_adapter, adminq_task); + struct i40e_hw *hw = &adapter->hw; + struct i40e_arq_event_info event; + struct i40e_virtchnl_msg *v_msg; + i40e_status ret; + u16 pending; + + if (adapter->flags & I40EVF_FLAG_PF_COMMS_FAILED) + return; + + event.msg_size = I40EVF_MAX_AQ_BUF_SIZE; + event.msg_buf = kzalloc(event.msg_size, GFP_KERNEL); + if (!event.msg_buf) { + dev_info(&adapter->pdev->dev, "%s: no memory for ARQ clean\n", + __func__); + return; + } + v_msg = (struct i40e_virtchnl_msg *)&event.desc; + do { + ret = i40evf_clean_arq_element(hw, &event, &pending); + if (ret) + break; /* No event to process or error cleaning ARQ */ + + i40evf_virtchnl_completion(adapter, v_msg->v_opcode, + v_msg->v_retval, event.msg_buf, + event.msg_size); + if (pending != 0) { + dev_info(&adapter->pdev->dev, + "%s: ARQ: Pending events %d\n", + __func__, pending); + memset(event.msg_buf, 0, I40EVF_MAX_AQ_BUF_SIZE); + } + } while (pending); + + /* re-enable Admin queue interrupt cause */ + i40evf_misc_irq_enable(adapter); + + kfree(event.msg_buf); +} + +/** + * i40evf_free_all_tx_resources - Free Tx Resources for All Queues + * @adapter: board private structure + * + * Free all transmit software resources + **/ +static void i40evf_free_all_tx_resources(struct i40evf_adapter *adapter) +{ + int i; + + for (i = 0; i < adapter->vsi_res->num_queue_pairs; i++) + if (adapter->tx_rings[i]->desc) + i40evf_free_tx_resources(adapter->tx_rings[i]); + +} + +/** + * i40evf_setup_all_tx_resources - allocate all queues Tx resources + * @adapter: board private structure + * + * If this function returns with an error, then it's possible one or + * more of the rings is populated (while the rest are not). It is the + * callers duty to clean those orphaned rings. + * + * Return 0 on success, negative on failure + **/ +static int i40evf_setup_all_tx_resources(struct i40evf_adapter *adapter) +{ + int i, err = 0; + + for (i = 0; i < adapter->vsi_res->num_queue_pairs; i++) { + err = i40evf_setup_tx_descriptors(adapter->tx_rings[i]); + if (!err) + continue; + dev_err(&adapter->pdev->dev, + "%s: Allocation for Tx Queue %u failed\n", + __func__, i); + break; + } + + return err; +} + +/** + * i40evf_setup_all_rx_resources - allocate all queues Rx resources + * @adapter: board private structure + * + * If this function returns with an error, then it's possible one or + * more of the rings is populated (while the rest are not). It is the + * callers duty to clean those orphaned rings. + * + * Return 0 on success, negative on failure + **/ +static int i40evf_setup_all_rx_resources(struct i40evf_adapter *adapter) +{ + int i, err = 0; + + for (i = 0; i < adapter->vsi_res->num_queue_pairs; i++) { + err = i40evf_setup_rx_descriptors(adapter->rx_rings[i]); + if (!err) + continue; + dev_err(&adapter->pdev->dev, + "%s: Allocation for Rx Queue %u failed\n", + __func__, i); + break; + } + return err; +} + +/** + * i40evf_free_all_rx_resources - Free Rx Resources for All Queues + * @adapter: board private structure + * + * Free all receive software resources + **/ +static void i40evf_free_all_rx_resources(struct i40evf_adapter *adapter) +{ + int i; + + for (i = 0; i < adapter->vsi_res->num_queue_pairs; i++) + if (adapter->rx_rings[i]->desc) + i40evf_free_rx_resources(adapter->rx_rings[i]); +} + +/** + * i40evf_open - Called when a network interface is made active + * @netdev: network interface device structure + * + * Returns 0 on success, negative value on failure + * + * The open entry point is called when a network interface is made + * active by the system (IFF_UP). At this point all resources needed + * for transmit and receive operations are allocated, the interrupt + * handler is registered with the OS, the watchdog timer is started, + * and the stack is notified that the interface is ready. + **/ +static int i40evf_open(struct net_device *netdev) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + int err; + + if (adapter->flags & I40EVF_FLAG_PF_COMMS_FAILED) { + dev_err(&adapter->pdev->dev, "Unable to open device due to PF driver failure.\n"); + return -EIO; + } + if (adapter->state != __I40EVF_DOWN) + return -EBUSY; + + /* allocate transmit descriptors */ + err = i40evf_setup_all_tx_resources(adapter); + if (err) + goto err_setup_tx; + + /* allocate receive descriptors */ + err = i40evf_setup_all_rx_resources(adapter); + if (err) + goto err_setup_rx; + + /* clear any pending interrupts, may auto mask */ + err = i40evf_request_traffic_irqs(adapter, netdev->name); + if (err) + goto err_req_irq; + + i40evf_configure(adapter); + + err = i40evf_up_complete(adapter); + if (err) + goto err_req_irq; + + i40evf_irq_enable(adapter, true); + + return 0; + +err_req_irq: + i40evf_down(adapter); + i40evf_free_traffic_irqs(adapter); +err_setup_rx: + i40evf_free_all_rx_resources(adapter); +err_setup_tx: + i40evf_free_all_tx_resources(adapter); + + return err; +} + +/** + * i40evf_close - Disables a network interface + * @netdev: network interface device structure + * + * Returns 0, this is not allowed to fail + * + * The close entry point is called when an interface is de-activated + * by the OS. The hardware is still under the drivers control, but + * needs to be disabled. All IRQs except vector 0 (reserved for admin queue) + * are freed, along with all transmit and receive resources. + **/ +static int i40evf_close(struct net_device *netdev) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + + if (adapter->state <= __I40EVF_DOWN) + return 0; + + /* signal that we are down to the interrupt handler */ + adapter->state = __I40EVF_DOWN; + + set_bit(__I40E_DOWN, &adapter->vsi.state); + + i40evf_down(adapter); + i40evf_free_traffic_irqs(adapter); + + i40evf_free_all_tx_resources(adapter); + i40evf_free_all_rx_resources(adapter); + + return 0; +} + +/** + * i40evf_get_stats - Get System Network Statistics + * @netdev: network interface device structure + * + * Returns the address of the device statistics structure. + * The statistics are actually updated from the timer callback. + **/ +static struct net_device_stats *i40evf_get_stats(struct net_device *netdev) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + + /* only return the current stats */ + return &adapter->net_stats; +} + +/** + * i40evf_reinit_locked - Software reinit + * @adapter: board private structure + * + * Reinititalizes the ring structures in response to a software configuration + * change. Roughly the same as close followed by open, but skips releasing + * and reallocating the interrupts. + **/ +void i40evf_reinit_locked(struct i40evf_adapter *adapter) +{ + struct net_device *netdev = adapter->netdev; + int err; + + WARN_ON(in_interrupt()); + + adapter->state = __I40EVF_RESETTING; + + i40evf_down(adapter); + + /* allocate transmit descriptors */ + err = i40evf_setup_all_tx_resources(adapter); + if (err) + goto err_reinit; + + /* allocate receive descriptors */ + err = i40evf_setup_all_rx_resources(adapter); + if (err) + goto err_reinit; + + i40evf_configure(adapter); + + err = i40evf_up_complete(adapter); + if (err) + goto err_reinit; + + i40evf_irq_enable(adapter, true); + return; + +err_reinit: + dev_err(&adapter->pdev->dev, "failed to allocate resources during reinit.\n"); + i40evf_close(netdev); +} + +/** + * i40evf_change_mtu - Change the Maximum Transfer Unit + * @netdev: network interface device structure + * @new_mtu: new value for maximum frame size + * + * Returns 0 on success, negative on failure + **/ +static int i40evf_change_mtu(struct net_device *netdev, int new_mtu) +{ + struct i40evf_adapter *adapter = netdev_priv(netdev); + int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN; + + if ((new_mtu < 68) || (max_frame > I40E_MAX_RXBUFFER)) + return -EINVAL; + + /* must set new MTU before calling down or up */ + netdev->mtu = new_mtu; + i40evf_reinit_locked(adapter); + return 0; +} + +static const struct net_device_ops i40evf_netdev_ops = { + .ndo_open = i40evf_open, + .ndo_stop = i40evf_close, + .ndo_start_xmit = i40evf_xmit_frame, + .ndo_get_stats = i40evf_get_stats, + .ndo_set_rx_mode = i40evf_set_rx_mode, + .ndo_validate_addr = eth_validate_addr, + .ndo_set_mac_address = i40evf_set_mac, + .ndo_change_mtu = i40evf_change_mtu, + .ndo_tx_timeout = i40evf_tx_timeout, + .ndo_vlan_rx_add_vid = i40evf_vlan_rx_add_vid, + .ndo_vlan_rx_kill_vid = i40evf_vlan_rx_kill_vid, +}; + +/** + * i40evf_check_reset_complete - check that VF reset is complete + * @hw: pointer to hw struct + * + * Returns 0 if device is ready to use, or -EBUSY if it's in reset. + **/ +static int i40evf_check_reset_complete(struct i40e_hw *hw) +{ + u32 rstat; + int i; + + for (i = 0; i < 100; i++) { + rstat = rd32(hw, I40E_VFGEN_RSTAT); + if (rstat == I40E_VFR_VFACTIVE) + return 0; + udelay(10); + } + return -EBUSY; +} + +/** + * i40evf_init_task - worker thread to perform delayed initialization + * @work: pointer to work_struct containing our data + * + * This task completes the work that was begun in probe. Due to the nature + * of VF-PF communications, we may need to wait tens of milliseconds to get + * reponses back from the PF. Rather than busy-wait in probe and bog down the + * whole system, we'll do it in a task so we can sleep. + * This task only runs during driver init. Once we've established + * communications with the PF driver and set up our netdev, the watchdog + * takes over. + **/ +static void i40evf_init_task(struct work_struct *work) +{ + struct i40evf_adapter *adapter = container_of(work, + struct i40evf_adapter, + init_task.work); + struct net_device *netdev = adapter->netdev; + struct i40evf_mac_filter *f; + struct i40e_hw *hw = &adapter->hw; + struct pci_dev *pdev = adapter->pdev; + int i, err, bufsz; + + switch (adapter->state) { + case __I40EVF_STARTUP: + /* driver loaded, probe complete */ + adapter->flags &= ~I40EVF_FLAG_PF_COMMS_FAILED; + adapter->flags &= ~I40EVF_FLAG_RESET_PENDING; + err = i40e_set_mac_type(hw); + if (err) { + dev_err(&pdev->dev, "Failed to set MAC type (%d)\n", + err); + goto err; + } + err = i40evf_check_reset_complete(hw); + if (err) { + dev_err(&pdev->dev, "Device is still in reset (%d)\n", + err); + goto err; + } + hw->aq.num_arq_entries = I40EVF_AQ_LEN; + hw->aq.num_asq_entries = I40EVF_AQ_LEN; + hw->aq.arq_buf_size = I40EVF_MAX_AQ_BUF_SIZE; + hw->aq.asq_buf_size = I40EVF_MAX_AQ_BUF_SIZE; + + err = i40evf_init_adminq(hw); + if (err) { + dev_err(&pdev->dev, "Failed to init Admin Queue (%d)\n", + err); + goto err; + } + err = i40evf_send_api_ver(adapter); + if (err) { + dev_err(&pdev->dev, "Unable to send to PF (%d)\n", err); + i40evf_shutdown_adminq(hw); + goto err; + } + adapter->state = __I40EVF_INIT_VERSION_CHECK; + goto restart; + break; + case __I40EVF_INIT_VERSION_CHECK: + if (!i40evf_asq_done(hw)) { + dev_err(&pdev->dev, "Admin queue command never completed.\n"); + goto err; + } + + /* aq msg sent, awaiting reply */ + err = i40evf_verify_api_ver(adapter); + if (err) { + dev_err(&pdev->dev, "Unable to verify API version (%d)\n", + err); + goto err; + } + err = i40evf_send_vf_config_msg(adapter); + if (err) { + dev_err(&pdev->dev, "Unable send config request (%d)\n", + err); + goto err; + } + adapter->state = __I40EVF_INIT_GET_RESOURCES; + goto restart; + break; + case __I40EVF_INIT_GET_RESOURCES: + /* aq msg sent, awaiting reply */ + if (!adapter->vf_res) { + bufsz = sizeof(struct i40e_virtchnl_vf_resource) + + (I40E_MAX_VF_VSI * + sizeof(struct i40e_virtchnl_vsi_resource)); + adapter->vf_res = kzalloc(bufsz, GFP_KERNEL); + if (!adapter->vf_res) + goto err; + } + err = i40evf_get_vf_config(adapter); + if (err == I40E_ERR_ADMIN_QUEUE_NO_WORK) + goto restart; + if (err) { + dev_err(&pdev->dev, "Unable to get VF config (%d)\n", + err); + goto err_alloc; + } + adapter->state = __I40EVF_INIT_SW; + break; + default: + goto err_alloc; + } + /* got VF config message back from PF, now we can parse it */ + for (i = 0; i < adapter->vf_res->num_vsis; i++) { + if (adapter->vf_res->vsi_res[i].vsi_type == I40E_VSI_SRIOV) + adapter->vsi_res = &adapter->vf_res->vsi_res[i]; + } + if (!adapter->vsi_res) { + dev_err(&pdev->dev, "No LAN VSI found\n"); + goto err_alloc; + } + + adapter->flags |= I40EVF_FLAG_RX_CSUM_ENABLED; + + netdev->netdev_ops = &i40evf_netdev_ops; + i40evf_set_ethtool_ops(netdev); + netdev->watchdog_timeo = 5 * HZ; + netdev->features |= NETIF_F_HIGHDMA | + NETIF_F_SG | + NETIF_F_IP_CSUM | + NETIF_F_SCTP_CSUM | + NETIF_F_IPV6_CSUM | + NETIF_F_TSO | + NETIF_F_TSO6 | + NETIF_F_RXCSUM | + NETIF_F_GRO; + + if (adapter->vf_res->vf_offload_flags + & I40E_VIRTCHNL_VF_OFFLOAD_VLAN) { + netdev->vlan_features = netdev->features; + netdev->features |= NETIF_F_HW_VLAN_CTAG_TX | + NETIF_F_HW_VLAN_CTAG_RX | + NETIF_F_HW_VLAN_CTAG_FILTER; + } + + /* copy netdev features into list of user selectable features */ + netdev->hw_features |= netdev->features; + netdev->hw_features &= ~NETIF_F_RXCSUM; + + if (!is_valid_ether_addr(adapter->hw.mac.addr)) { + dev_info(&pdev->dev, "Invalid MAC address %pMAC, using random\n", + adapter->hw.mac.addr); + random_ether_addr(adapter->hw.mac.addr); + } + memcpy(netdev->dev_addr, adapter->hw.mac.addr, netdev->addr_len); + memcpy(netdev->perm_addr, adapter->hw.mac.addr, netdev->addr_len); + + INIT_LIST_HEAD(&adapter->mac_filter_list); + INIT_LIST_HEAD(&adapter->vlan_filter_list); + f = kzalloc(sizeof(*f), GFP_ATOMIC); + if (NULL == f) + goto err_sw_init; + + memcpy(f->macaddr, adapter->hw.mac.addr, ETH_ALEN); + f->add = true; + adapter->aq_required |= I40EVF_FLAG_AQ_ADD_MAC_FILTER; + + list_add(&f->list, &adapter->mac_filter_list); + + init_timer(&adapter->watchdog_timer); + adapter->watchdog_timer.function = &i40evf_watchdog_timer; + adapter->watchdog_timer.data = (unsigned long)adapter; + mod_timer(&adapter->watchdog_timer, jiffies + 1); + + err = i40evf_init_interrupt_scheme(adapter); + if (err) + goto err_sw_init; + i40evf_map_rings_to_vectors(adapter); + i40evf_configure_rss(adapter); + err = i40evf_request_misc_irq(adapter); + if (err) + goto err_sw_init; + + netif_carrier_off(netdev); + + adapter->vsi.id = adapter->vsi_res->vsi_id; + adapter->vsi.seid = adapter->vsi_res->vsi_id; /* dummy */ + adapter->vsi.back = adapter; + adapter->vsi.base_vector = 1; + adapter->vsi.work_limit = I40E_DEFAULT_IRQ_WORK; + adapter->vsi.rx_itr_setting = I40E_ITR_DYNAMIC; + adapter->vsi.tx_itr_setting = I40E_ITR_DYNAMIC; + adapter->vsi.netdev = adapter->netdev; + + if (!adapter->netdev_registered) { + err = register_netdev(netdev); + if (err) + goto err_register; + } + + adapter->netdev_registered = true; + + netif_tx_stop_all_queues(netdev); + + dev_info(&pdev->dev, "MAC address: %pMAC\n", adapter->hw.mac.addr); + if (netdev->features & NETIF_F_GRO) + dev_info(&pdev->dev, "GRO is enabled\n"); + + dev_info(&pdev->dev, "%s\n", i40evf_driver_string); + adapter->state = __I40EVF_DOWN; + set_bit(__I40E_DOWN, &adapter->vsi.state); + i40evf_misc_irq_enable(adapter); + return; +restart: + schedule_delayed_work(&adapter->init_task, + msecs_to_jiffies(50)); + return; + +err_register: + i40evf_free_misc_irq(adapter); +err_sw_init: + i40evf_reset_interrupt_capability(adapter); +err_alloc: + kfree(adapter->vf_res); + adapter->vf_res = NULL; +err: + /* Things went into the weeds, so try again later */ + if (++adapter->aq_wait_count > I40EVF_AQ_MAX_ERR) { + dev_err(&pdev->dev, "Failed to communicate with PF; giving up.\n"); + adapter->flags |= I40EVF_FLAG_PF_COMMS_FAILED; + return; /* do not reschedule */ + } + schedule_delayed_work(&adapter->init_task, HZ * 3); + return; +} + +/** + * i40evf_shutdown - Shutdown the device in preparation for a reboot + * @pdev: pci device structure + **/ +static void i40evf_shutdown(struct pci_dev *pdev) +{ + struct net_device *netdev = pci_get_drvdata(pdev); + + netif_device_detach(netdev); + + if (netif_running(netdev)) + i40evf_close(netdev); + +#ifdef CONFIG_PM + pci_save_state(pdev); + +#endif + pci_disable_device(pdev); +} + +/** + * i40evf_probe - Device Initialization Routine + * @pdev: PCI device information struct + * @ent: entry in i40evf_pci_tbl + * + * Returns 0 on success, negative on failure + * + * i40evf_probe initializes an adapter identified by a pci_dev structure. + * The OS initialization, configuring of the adapter private structure, + * and a hardware reset occur. + **/ +static int i40evf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) +{ + struct net_device *netdev; + struct i40evf_adapter *adapter = NULL; + struct i40e_hw *hw = NULL; + int err; + + err = pci_enable_device(pdev); + if (err) + return err; + + err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64)); + if (err) { + err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)); + if (err) { + dev_err(&pdev->dev, + "DMA configuration failed: 0x%x\n", err); + goto err_dma; + } + } + + err = pci_request_regions(pdev, i40evf_driver_name); + if (err) { + dev_err(&pdev->dev, + "pci_request_regions failed 0x%x\n", err); + goto err_pci_reg; + } + + pci_enable_pcie_error_reporting(pdev); + + pci_set_master(pdev); + + netdev = alloc_etherdev_mq(sizeof(struct i40evf_adapter), + MAX_TX_QUEUES); + if (!netdev) { + err = -ENOMEM; + goto err_alloc_etherdev; + } + + SET_NETDEV_DEV(netdev, &pdev->dev); + + pci_set_drvdata(pdev, netdev); + adapter = netdev_priv(netdev); + + adapter->netdev = netdev; + adapter->pdev = pdev; + + hw = &adapter->hw; + hw->back = adapter; + + adapter->msg_enable = (1 << DEFAULT_DEBUG_LEVEL_SHIFT) - 1; + adapter->state = __I40EVF_STARTUP; + + /* Call save state here because it relies on the adapter struct. */ + pci_save_state(pdev); + + hw->hw_addr = ioremap(pci_resource_start(pdev, 0), + pci_resource_len(pdev, 0)); + if (!hw->hw_addr) { + err = -EIO; + goto err_ioremap; + } + hw->vendor_id = pdev->vendor; + hw->device_id = pdev->device; + pci_read_config_byte(pdev, PCI_REVISION_ID, &hw->revision_id); + hw->subsystem_vendor_id = pdev->subsystem_vendor; + hw->subsystem_device_id = pdev->subsystem_device; + hw->bus.device = PCI_SLOT(pdev->devfn); + hw->bus.func = PCI_FUNC(pdev->devfn); + + INIT_WORK(&adapter->reset_task, i40evf_reset_task); + INIT_WORK(&adapter->adminq_task, i40evf_adminq_task); + INIT_WORK(&adapter->watchdog_task, i40evf_watchdog_task); + INIT_DELAYED_WORK(&adapter->init_task, i40evf_init_task); + schedule_delayed_work(&adapter->init_task, 10); + + return 0; + +err_ioremap: + free_netdev(netdev); +err_alloc_etherdev: + pci_release_regions(pdev); +err_pci_reg: +err_dma: + pci_disable_device(pdev); + return err; +} + +#ifdef CONFIG_PM +/** + * i40evf_suspend - Power management suspend routine + * @pdev: PCI device information struct + * @state: unused + * + * Called when the system (VM) is entering sleep/suspend. + **/ +static int i40evf_suspend(struct pci_dev *pdev, pm_message_t state) +{ + struct net_device *netdev = pci_get_drvdata(pdev); + struct i40evf_adapter *adapter = netdev_priv(netdev); + int retval = 0; + + netif_device_detach(netdev); + + if (netif_running(netdev)) { + rtnl_lock(); + i40evf_down(adapter); + rtnl_unlock(); + } + i40evf_free_misc_irq(adapter); + i40evf_reset_interrupt_capability(adapter); + + retval = pci_save_state(pdev); + if (retval) + return retval; + + pci_disable_device(pdev); + + return 0; +} + +/** + * i40evf_resume - Power managment resume routine + * @pdev: PCI device information struct + * + * Called when the system (VM) is resumed from sleep/suspend. + **/ +static int i40evf_resume(struct pci_dev *pdev) +{ + struct i40evf_adapter *adapter = pci_get_drvdata(pdev); + struct net_device *netdev = adapter->netdev; + u32 err; + + pci_set_power_state(pdev, PCI_D0); + pci_restore_state(pdev); + /* pci_restore_state clears dev->state_saved so call + * pci_save_state to restore it. + */ + pci_save_state(pdev); + + err = pci_enable_device_mem(pdev); + if (err) { + dev_err(&pdev->dev, "Cannot enable PCI device from suspend.\n"); + return err; + } + pci_set_master(pdev); + + rtnl_lock(); + err = i40evf_set_interrupt_capability(adapter); + if (err) { + dev_err(&pdev->dev, "Cannot enable MSI-X interrupts.\n"); + return err; + } + err = i40evf_request_misc_irq(adapter); + rtnl_unlock(); + if (err) { + dev_err(&pdev->dev, "Cannot get interrupt vector.\n"); + return err; + } + + schedule_work(&adapter->reset_task); + + netif_device_attach(netdev); + + return err; +} + +#endif /* CONFIG_PM */ +/** + * i40evf_remove - Device Removal Routine + * @pdev: PCI device information struct + * + * i40evf_remove is called by the PCI subsystem to alert the driver + * that it should release a PCI device. The could be caused by a + * Hot-Plug event, or because the driver is going to be removed from + * memory. + **/ +static void i40evf_remove(struct pci_dev *pdev) +{ + struct net_device *netdev = pci_get_drvdata(pdev); + struct i40evf_adapter *adapter = netdev_priv(netdev); + struct i40e_hw *hw = &adapter->hw; + + cancel_delayed_work_sync(&adapter->init_task); + cancel_work_sync(&adapter->reset_task); + + if (adapter->netdev_registered) { + unregister_netdev(netdev); + adapter->netdev_registered = false; + } + adapter->state = __I40EVF_REMOVE; + + if (adapter->msix_entries) { + i40evf_misc_irq_disable(adapter); + i40evf_free_misc_irq(adapter); + i40evf_reset_interrupt_capability(adapter); + } + + del_timer_sync(&adapter->watchdog_timer); + flush_scheduled_work(); + + if (hw->aq.asq.count) + i40evf_shutdown_adminq(hw); + + iounmap(hw->hw_addr); + pci_release_regions(pdev); + + i40evf_free_queues(adapter); + kfree(adapter->vf_res); + + free_netdev(netdev); + + pci_disable_pcie_error_reporting(pdev); + + pci_disable_device(pdev); +} + +static struct pci_driver i40evf_driver = { + .name = i40evf_driver_name, + .id_table = i40evf_pci_tbl, + .probe = i40evf_probe, + .remove = i40evf_remove, +#ifdef CONFIG_PM + .suspend = i40evf_suspend, + .resume = i40evf_resume, +#endif + .shutdown = i40evf_shutdown, +}; + +/** + * i40e_init_module - Driver Registration Routine + * + * i40e_init_module is the first routine called when the driver is + * loaded. All it does is register with the PCI subsystem. + **/ +static int __init i40evf_init_module(void) +{ + int ret; + pr_info("i40evf: %s - version %s\n", i40evf_driver_string, + i40evf_driver_version); + + pr_info("%s\n", i40evf_copyright); + + ret = pci_register_driver(&i40evf_driver); + return ret; +} + +module_init(i40evf_init_module); + +/** + * i40e_exit_module - Driver Exit Cleanup Routine + * + * i40e_exit_module is called just before the driver is removed + * from memory. + **/ +static void __exit i40evf_exit_module(void) +{ + pci_unregister_driver(&i40evf_driver); +} + +module_exit(i40evf_exit_module); + +/* i40evf_main.c */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c +++ linux-3.13.0/drivers/net/ethernet/intel/i40evf/i40evf_virtchnl.c @@ -0,0 +1,789 @@ +/******************************************************************************* + * + * Intel Ethernet Controller XL710 Family Linux Virtual Function Driver + * Copyright(c) 2013 - 2014 Intel Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + * + * Contact Information: + * e1000-devel Mailing List + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + ******************************************************************************/ + +#include "i40evf.h" +#include "i40e_prototype.h" + +/* busy wait delay in msec */ +#define I40EVF_BUSY_WAIT_DELAY 10 +#define I40EVF_BUSY_WAIT_COUNT 50 + +/** + * i40evf_send_pf_msg + * @adapter: adapter structure + * @op: virtual channel opcode + * @msg: pointer to message buffer + * @len: message length + * + * Send message to PF and print status if failure. + **/ +static int i40evf_send_pf_msg(struct i40evf_adapter *adapter, + enum i40e_virtchnl_ops op, u8 *msg, u16 len) +{ + struct i40e_hw *hw = &adapter->hw; + i40e_status err; + + if (adapter->flags & I40EVF_FLAG_PF_COMMS_FAILED) + return 0; /* nothing to see here, move along */ + + err = i40e_aq_send_msg_to_pf(hw, op, 0, msg, len, NULL); + if (err) + dev_err(&adapter->pdev->dev, "Unable to send opcode %d to PF, error %d, aq status %d\n", + op, err, hw->aq.asq_last_status); + return err; +} + +/** + * i40evf_send_api_ver + * @adapter: adapter structure + * + * Send API version admin queue message to the PF. The reply is not checked + * in this function. Returns 0 if the message was successfully + * sent, or one of the I40E_ADMIN_QUEUE_ERROR_ statuses if not. + **/ +int i40evf_send_api_ver(struct i40evf_adapter *adapter) +{ + struct i40e_virtchnl_version_info vvi; + + vvi.major = I40E_VIRTCHNL_VERSION_MAJOR; + vvi.minor = I40E_VIRTCHNL_VERSION_MINOR; + + return i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_VERSION, (u8 *)&vvi, + sizeof(vvi)); +} + +/** + * i40evf_verify_api_ver + * @adapter: adapter structure + * + * Compare API versions with the PF. Must be called after admin queue is + * initialized. Returns 0 if API versions match, -EIO if + * they do not, or I40E_ERR_ADMIN_QUEUE_NO_WORK if the admin queue is empty. + **/ +int i40evf_verify_api_ver(struct i40evf_adapter *adapter) +{ + struct i40e_virtchnl_version_info *pf_vvi; + struct i40e_hw *hw = &adapter->hw; + struct i40e_arq_event_info event; + i40e_status err; + + event.msg_size = I40EVF_MAX_AQ_BUF_SIZE; + event.msg_buf = kzalloc(event.msg_size, GFP_KERNEL); + if (!event.msg_buf) { + err = -ENOMEM; + goto out; + } + + err = i40evf_clean_arq_element(hw, &event, NULL); + if (err == I40E_ERR_ADMIN_QUEUE_NO_WORK) + goto out_alloc; + + err = (i40e_status)le32_to_cpu(event.desc.cookie_low); + if (err) { + err = -EIO; + goto out_alloc; + } + + if ((enum i40e_virtchnl_ops)le32_to_cpu(event.desc.cookie_high) != + I40E_VIRTCHNL_OP_VERSION) { + err = -EIO; + goto out_alloc; + } + + pf_vvi = (struct i40e_virtchnl_version_info *)event.msg_buf; + if ((pf_vvi->major != I40E_VIRTCHNL_VERSION_MAJOR) || + (pf_vvi->minor != I40E_VIRTCHNL_VERSION_MINOR)) + err = -EIO; + +out_alloc: + kfree(event.msg_buf); +out: + return err; +} + +/** + * i40evf_send_vf_config_msg + * @adapter: adapter structure + * + * Send VF configuration request admin queue message to the PF. The reply + * is not checked in this function. Returns 0 if the message was + * successfully sent, or one of the I40E_ADMIN_QUEUE_ERROR_ statuses if not. + **/ +int i40evf_send_vf_config_msg(struct i40evf_adapter *adapter) +{ + return i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_GET_VF_RESOURCES, + NULL, 0); +} + +/** + * i40evf_get_vf_config + * @hw: pointer to the hardware structure + * @len: length of buffer + * + * Get VF configuration from PF and populate hw structure. Must be called after + * admin queue is initialized. Busy waits until response is received from PF, + * with maximum timeout. Response from PF is returned in the buffer for further + * processing by the caller. + **/ +int i40evf_get_vf_config(struct i40evf_adapter *adapter) +{ + struct i40e_hw *hw = &adapter->hw; + struct i40e_arq_event_info event; + u16 len; + i40e_status err; + + len = sizeof(struct i40e_virtchnl_vf_resource) + + I40E_MAX_VF_VSI * sizeof(struct i40e_virtchnl_vsi_resource); + event.msg_size = len; + event.msg_buf = kzalloc(event.msg_size, GFP_KERNEL); + if (!event.msg_buf) { + err = -ENOMEM; + goto out; + } + + err = i40evf_clean_arq_element(hw, &event, NULL); + if (err == I40E_ERR_ADMIN_QUEUE_NO_WORK) + goto out_alloc; + + err = (i40e_status)le32_to_cpu(event.desc.cookie_low); + if (err) { + dev_err(&adapter->pdev->dev, + "%s: Error returned from PF, %d, %d\n", __func__, + le32_to_cpu(event.desc.cookie_high), + le32_to_cpu(event.desc.cookie_low)); + err = -EIO; + goto out_alloc; + } + + if ((enum i40e_virtchnl_ops)le32_to_cpu(event.desc.cookie_high) != + I40E_VIRTCHNL_OP_GET_VF_RESOURCES) { + dev_err(&adapter->pdev->dev, + "%s: Invalid response from PF, %d, %d\n", __func__, + le32_to_cpu(event.desc.cookie_high), + le32_to_cpu(event.desc.cookie_low)); + err = -EIO; + goto out_alloc; + } + memcpy(adapter->vf_res, event.msg_buf, min(event.msg_size, len)); + + i40e_vf_parse_hw_config(hw, adapter->vf_res); +out_alloc: + kfree(event.msg_buf); +out: + return err; +} + +/** + * i40evf_configure_queues + * @adapter: adapter structure + * + * Request that the PF set up our (previously allocated) queues. + **/ +void i40evf_configure_queues(struct i40evf_adapter *adapter) +{ + struct i40e_virtchnl_vsi_queue_config_info *vqci; + struct i40e_virtchnl_queue_pair_info *vqpi; + int pairs = adapter->vsi_res->num_queue_pairs; + int i, len; + + if (adapter->current_op != I40E_VIRTCHNL_OP_UNKNOWN) { + /* bail because we already have a command pending */ + dev_err(&adapter->pdev->dev, "%s: command %d pending\n", + __func__, adapter->current_op); + return; + } + adapter->current_op = I40E_VIRTCHNL_OP_CONFIG_VSI_QUEUES; + len = sizeof(struct i40e_virtchnl_vsi_queue_config_info) + + (sizeof(struct i40e_virtchnl_queue_pair_info) * pairs); + vqci = kzalloc(len, GFP_ATOMIC); + if (!vqci) { + dev_err(&adapter->pdev->dev, "%s: unable to allocate memory\n", + __func__); + return; + } + vqci->vsi_id = adapter->vsi_res->vsi_id; + vqci->num_queue_pairs = pairs; + vqpi = vqci->qpair; + /* Size check is not needed here - HW max is 16 queue pairs, and we + * can fit info for 31 of them into the AQ buffer before it overflows. + */ + for (i = 0; i < pairs; i++) { + vqpi->txq.vsi_id = vqci->vsi_id; + vqpi->txq.queue_id = i; + vqpi->txq.ring_len = adapter->tx_rings[i]->count; + vqpi->txq.dma_ring_addr = adapter->tx_rings[i]->dma; + + vqpi->rxq.vsi_id = vqci->vsi_id; + vqpi->rxq.queue_id = i; + vqpi->rxq.ring_len = adapter->rx_rings[i]->count; + vqpi->rxq.dma_ring_addr = adapter->rx_rings[i]->dma; + vqpi->rxq.max_pkt_size = adapter->netdev->mtu + + ETH_HLEN + VLAN_HLEN + ETH_FCS_LEN; + vqpi->rxq.databuffer_size = adapter->rx_rings[i]->rx_buf_len; + vqpi++; + } + + i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_CONFIG_VSI_QUEUES, + (u8 *)vqci, len); + kfree(vqci); + adapter->aq_pending |= I40EVF_FLAG_AQ_CONFIGURE_QUEUES; + adapter->aq_required &= ~I40EVF_FLAG_AQ_CONFIGURE_QUEUES; +} + +/** + * i40evf_enable_queues + * @adapter: adapter structure + * + * Request that the PF enable all of our queues. + **/ +void i40evf_enable_queues(struct i40evf_adapter *adapter) +{ + struct i40e_virtchnl_queue_select vqs; + + if (adapter->current_op != I40E_VIRTCHNL_OP_UNKNOWN) { + /* bail because we already have a command pending */ + dev_err(&adapter->pdev->dev, "%s: command %d pending\n", + __func__, adapter->current_op); + return; + } + adapter->current_op = I40E_VIRTCHNL_OP_ENABLE_QUEUES; + vqs.vsi_id = adapter->vsi_res->vsi_id; + vqs.tx_queues = (1 << adapter->vsi_res->num_queue_pairs) - 1; + vqs.rx_queues = vqs.tx_queues; + i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_ENABLE_QUEUES, + (u8 *)&vqs, sizeof(vqs)); + adapter->aq_pending |= I40EVF_FLAG_AQ_ENABLE_QUEUES; + adapter->aq_required &= ~I40EVF_FLAG_AQ_ENABLE_QUEUES; +} + +/** + * i40evf_disable_queues + * @adapter: adapter structure + * + * Request that the PF disable all of our queues. + **/ +void i40evf_disable_queues(struct i40evf_adapter *adapter) +{ + struct i40e_virtchnl_queue_select vqs; + + if (adapter->current_op != I40E_VIRTCHNL_OP_UNKNOWN) { + /* bail because we already have a command pending */ + dev_err(&adapter->pdev->dev, "%s: command %d pending\n", + __func__, adapter->current_op); + return; + } + adapter->current_op = I40E_VIRTCHNL_OP_DISABLE_QUEUES; + vqs.vsi_id = adapter->vsi_res->vsi_id; + vqs.tx_queues = (1 << adapter->vsi_res->num_queue_pairs) - 1; + vqs.rx_queues = vqs.tx_queues; + i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_DISABLE_QUEUES, + (u8 *)&vqs, sizeof(vqs)); + adapter->aq_pending |= I40EVF_FLAG_AQ_DISABLE_QUEUES; + adapter->aq_required &= ~I40EVF_FLAG_AQ_DISABLE_QUEUES; +} + +/** + * i40evf_map_queues + * @adapter: adapter structure + * + * Request that the PF map queues to interrupt vectors. Misc causes, including + * admin queue, are always mapped to vector 0. + **/ +void i40evf_map_queues(struct i40evf_adapter *adapter) +{ + struct i40e_virtchnl_irq_map_info *vimi; + int v_idx, q_vectors, len; + struct i40e_q_vector *q_vector; + + if (adapter->current_op != I40E_VIRTCHNL_OP_UNKNOWN) { + /* bail because we already have a command pending */ + dev_err(&adapter->pdev->dev, "%s: command %d pending\n", + __func__, adapter->current_op); + return; + } + adapter->current_op = I40E_VIRTCHNL_OP_CONFIG_IRQ_MAP; + + q_vectors = adapter->num_msix_vectors - NONQ_VECS; + + len = sizeof(struct i40e_virtchnl_irq_map_info) + + (adapter->num_msix_vectors * + sizeof(struct i40e_virtchnl_vector_map)); + vimi = kzalloc(len, GFP_ATOMIC); + if (!vimi) { + dev_err(&adapter->pdev->dev, "%s: unable to allocate memory\n", + __func__); + return; + } + + vimi->num_vectors = adapter->num_msix_vectors; + /* Queue vectors first */ + for (v_idx = 0; v_idx < q_vectors; v_idx++) { + q_vector = adapter->q_vector[v_idx]; + vimi->vecmap[v_idx].vsi_id = adapter->vsi_res->vsi_id; + vimi->vecmap[v_idx].vector_id = v_idx + NONQ_VECS; + vimi->vecmap[v_idx].txq_map = q_vector->ring_mask; + vimi->vecmap[v_idx].rxq_map = q_vector->ring_mask; + } + /* Misc vector last - this is only for AdminQ messages */ + vimi->vecmap[v_idx].vsi_id = adapter->vsi_res->vsi_id; + vimi->vecmap[v_idx].vector_id = 0; + vimi->vecmap[v_idx].txq_map = 0; + vimi->vecmap[v_idx].rxq_map = 0; + + i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_CONFIG_IRQ_MAP, + (u8 *)vimi, len); + kfree(vimi); + adapter->aq_pending |= I40EVF_FLAG_AQ_MAP_VECTORS; + adapter->aq_required &= ~I40EVF_FLAG_AQ_MAP_VECTORS; +} + +/** + * i40evf_add_ether_addrs + * @adapter: adapter structure + * @addrs: the MAC address filters to add (contiguous) + * @count: number of filters + * + * Request that the PF add one or more addresses to our filters. + **/ +void i40evf_add_ether_addrs(struct i40evf_adapter *adapter) +{ + struct i40e_virtchnl_ether_addr_list *veal; + int len, i = 0, count = 0; + struct i40evf_mac_filter *f; + + if (adapter->current_op != I40E_VIRTCHNL_OP_UNKNOWN) { + /* bail because we already have a command pending */ + dev_err(&adapter->pdev->dev, "%s: command %d pending\n", + __func__, adapter->current_op); + return; + } + list_for_each_entry(f, &adapter->mac_filter_list, list) { + if (f->add) + count++; + } + if (!count) { + adapter->aq_required &= ~I40EVF_FLAG_AQ_ADD_MAC_FILTER; + return; + } + adapter->current_op = I40E_VIRTCHNL_OP_ADD_ETHER_ADDRESS; + + len = sizeof(struct i40e_virtchnl_ether_addr_list) + + (count * sizeof(struct i40e_virtchnl_ether_addr)); + if (len > I40EVF_MAX_AQ_BUF_SIZE) { + dev_warn(&adapter->pdev->dev, "%s: Too many MAC address changes in one request.\n", + __func__); + count = (I40EVF_MAX_AQ_BUF_SIZE - + sizeof(struct i40e_virtchnl_ether_addr_list)) / + sizeof(struct i40e_virtchnl_ether_addr); + len = I40EVF_MAX_AQ_BUF_SIZE; + } + + veal = kzalloc(len, GFP_ATOMIC); + if (!veal) { + dev_err(&adapter->pdev->dev, "%s: unable to allocate memory\n", + __func__); + return; + } + veal->vsi_id = adapter->vsi_res->vsi_id; + veal->num_elements = count; + list_for_each_entry(f, &adapter->mac_filter_list, list) { + if (f->add) { + memcpy(veal->list[i].addr, f->macaddr, ETH_ALEN); + i++; + f->add = false; + } + } + i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_ADD_ETHER_ADDRESS, + (u8 *)veal, len); + kfree(veal); + adapter->aq_pending |= I40EVF_FLAG_AQ_ADD_MAC_FILTER; + adapter->aq_required &= ~I40EVF_FLAG_AQ_ADD_MAC_FILTER; + +} + +/** + * i40evf_del_ether_addrs + * @adapter: adapter structure + * @addrs: the MAC address filters to remove (contiguous) + * @count: number of filtes + * + * Request that the PF remove one or more addresses from our filters. + **/ +void i40evf_del_ether_addrs(struct i40evf_adapter *adapter) +{ + struct i40e_virtchnl_ether_addr_list *veal; + struct i40evf_mac_filter *f, *ftmp; + int len, i = 0, count = 0; + + if (adapter->current_op != I40E_VIRTCHNL_OP_UNKNOWN) { + /* bail because we already have a command pending */ + dev_err(&adapter->pdev->dev, "%s: command %d pending\n", + __func__, adapter->current_op); + return; + } + list_for_each_entry(f, &adapter->mac_filter_list, list) { + if (f->remove) + count++; + } + if (!count) { + adapter->aq_required &= ~I40EVF_FLAG_AQ_DEL_MAC_FILTER; + return; + } + adapter->current_op = I40E_VIRTCHNL_OP_DEL_ETHER_ADDRESS; + + len = sizeof(struct i40e_virtchnl_ether_addr_list) + + (count * sizeof(struct i40e_virtchnl_ether_addr)); + if (len > I40EVF_MAX_AQ_BUF_SIZE) { + dev_warn(&adapter->pdev->dev, "%s: Too many MAC address changes in one request.\n", + __func__); + count = (I40EVF_MAX_AQ_BUF_SIZE - + sizeof(struct i40e_virtchnl_ether_addr_list)) / + sizeof(struct i40e_virtchnl_ether_addr); + len = I40EVF_MAX_AQ_BUF_SIZE; + } + veal = kzalloc(len, GFP_ATOMIC); + if (!veal) { + dev_err(&adapter->pdev->dev, "%s: unable to allocate memory\n", + __func__); + return; + } + veal->vsi_id = adapter->vsi_res->vsi_id; + veal->num_elements = count; + list_for_each_entry_safe(f, ftmp, &adapter->mac_filter_list, list) { + if (f->remove) { + memcpy(veal->list[i].addr, f->macaddr, ETH_ALEN); + i++; + list_del(&f->list); + kfree(f); + } + } + i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_DEL_ETHER_ADDRESS, + (u8 *)veal, len); + kfree(veal); + adapter->aq_pending |= I40EVF_FLAG_AQ_DEL_MAC_FILTER; + adapter->aq_required &= ~I40EVF_FLAG_AQ_DEL_MAC_FILTER; +} + +/** + * i40evf_add_vlans + * @adapter: adapter structure + * @vlans: the VLANs to add + * @count: number of VLANs + * + * Request that the PF add one or more VLAN filters to our VSI. + **/ +void i40evf_add_vlans(struct i40evf_adapter *adapter) +{ + struct i40e_virtchnl_vlan_filter_list *vvfl; + int len, i = 0, count = 0; + struct i40evf_vlan_filter *f; + + if (adapter->current_op != I40E_VIRTCHNL_OP_UNKNOWN) { + /* bail because we already have a command pending */ + dev_err(&adapter->pdev->dev, "%s: command %d pending\n", + __func__, adapter->current_op); + return; + } + + list_for_each_entry(f, &adapter->vlan_filter_list, list) { + if (f->add) + count++; + } + if (!count) { + adapter->aq_required &= ~I40EVF_FLAG_AQ_ADD_VLAN_FILTER; + return; + } + adapter->current_op = I40E_VIRTCHNL_OP_ADD_VLAN; + + len = sizeof(struct i40e_virtchnl_vlan_filter_list) + + (count * sizeof(u16)); + if (len > I40EVF_MAX_AQ_BUF_SIZE) { + dev_warn(&adapter->pdev->dev, "%s: Too many VLAN changes in one request.\n", + __func__); + count = (I40EVF_MAX_AQ_BUF_SIZE - + sizeof(struct i40e_virtchnl_vlan_filter_list)) / + sizeof(u16); + len = I40EVF_MAX_AQ_BUF_SIZE; + } + vvfl = kzalloc(len, GFP_ATOMIC); + if (!vvfl) { + dev_err(&adapter->pdev->dev, "%s: unable to allocate memory\n", + __func__); + return; + } + vvfl->vsi_id = adapter->vsi_res->vsi_id; + vvfl->num_elements = count; + list_for_each_entry(f, &adapter->vlan_filter_list, list) { + if (f->add) { + vvfl->vlan_id[i] = f->vlan; + i++; + f->add = false; + } + } + i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_ADD_VLAN, (u8 *)vvfl, len); + kfree(vvfl); + adapter->aq_pending |= I40EVF_FLAG_AQ_ADD_VLAN_FILTER; + adapter->aq_required &= ~I40EVF_FLAG_AQ_ADD_VLAN_FILTER; +} + +/** + * i40evf_del_vlans + * @adapter: adapter structure + * @vlans: the VLANs to remove + * @count: number of VLANs + * + * Request that the PF remove one or more VLAN filters from our VSI. + **/ +void i40evf_del_vlans(struct i40evf_adapter *adapter) +{ + struct i40e_virtchnl_vlan_filter_list *vvfl; + struct i40evf_vlan_filter *f, *ftmp; + int len, i = 0, count = 0; + + if (adapter->current_op != I40E_VIRTCHNL_OP_UNKNOWN) { + /* bail because we already have a command pending */ + dev_err(&adapter->pdev->dev, "%s: command %d pending\n", + __func__, adapter->current_op); + return; + } + + list_for_each_entry(f, &adapter->vlan_filter_list, list) { + if (f->remove) + count++; + } + if (!count) { + adapter->aq_required &= ~I40EVF_FLAG_AQ_DEL_VLAN_FILTER; + return; + } + adapter->current_op = I40E_VIRTCHNL_OP_DEL_VLAN; + + len = sizeof(struct i40e_virtchnl_vlan_filter_list) + + (count * sizeof(u16)); + if (len > I40EVF_MAX_AQ_BUF_SIZE) { + dev_warn(&adapter->pdev->dev, "%s: Too many VLAN changes in one request.\n", + __func__); + count = (I40EVF_MAX_AQ_BUF_SIZE - + sizeof(struct i40e_virtchnl_vlan_filter_list)) / + sizeof(u16); + len = I40EVF_MAX_AQ_BUF_SIZE; + } + vvfl = kzalloc(len, GFP_ATOMIC); + if (!vvfl) { + dev_err(&adapter->pdev->dev, "%s: unable to allocate memory\n", + __func__); + return; + } + vvfl->vsi_id = adapter->vsi_res->vsi_id; + vvfl->num_elements = count; + list_for_each_entry_safe(f, ftmp, &adapter->vlan_filter_list, list) { + if (f->remove) { + vvfl->vlan_id[i] = f->vlan; + i++; + list_del(&f->list); + kfree(f); + } + } + i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_DEL_VLAN, (u8 *)vvfl, len); + kfree(vvfl); + adapter->aq_pending |= I40EVF_FLAG_AQ_DEL_VLAN_FILTER; + adapter->aq_required &= ~I40EVF_FLAG_AQ_DEL_VLAN_FILTER; +} + +/** + * i40evf_set_promiscuous + * @adapter: adapter structure + * @flags: bitmask to control unicast/multicast promiscuous. + * + * Request that the PF enable promiscuous mode for our VSI. + **/ +void i40evf_set_promiscuous(struct i40evf_adapter *adapter, int flags) +{ + struct i40e_virtchnl_promisc_info vpi; + + if (adapter->current_op != I40E_VIRTCHNL_OP_UNKNOWN) { + /* bail because we already have a command pending */ + dev_err(&adapter->pdev->dev, "%s: command %d pending\n", + __func__, adapter->current_op); + return; + } + adapter->current_op = I40E_VIRTCHNL_OP_CONFIG_PROMISCUOUS_MODE; + vpi.vsi_id = adapter->vsi_res->vsi_id; + vpi.flags = flags; + i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_CONFIG_PROMISCUOUS_MODE, + (u8 *)&vpi, sizeof(vpi)); +} + +/** + * i40evf_request_stats + * @adapter: adapter structure + * + * Request VSI statistics from PF. + **/ +void i40evf_request_stats(struct i40evf_adapter *adapter) +{ + struct i40e_virtchnl_queue_select vqs; + if (adapter->current_op != I40E_VIRTCHNL_OP_UNKNOWN) { + /* no error message, this isn't crucial */ + return; + } + adapter->current_op = I40E_VIRTCHNL_OP_GET_STATS; + vqs.vsi_id = adapter->vsi_res->vsi_id; + /* queue maps are ignored for this message - only the vsi is used */ + if (i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_GET_STATS, + (u8 *)&vqs, sizeof(vqs))) + /* if the request failed, don't lock out others */ + adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN; +} +/** + * i40evf_request_reset + * @adapter: adapter structure + * + * Request that the PF reset this VF. No response is expected. + **/ +void i40evf_request_reset(struct i40evf_adapter *adapter) +{ + /* Don't check CURRENT_OP - this is always higher priority */ + i40evf_send_pf_msg(adapter, I40E_VIRTCHNL_OP_RESET_VF, NULL, 0); + adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN; +} + +/** + * i40evf_virtchnl_completion + * @adapter: adapter structure + * @v_opcode: opcode sent by PF + * @v_retval: retval sent by PF + * @msg: message sent by PF + * @msglen: message length + * + * Asynchronous completion function for admin queue messages. Rather than busy + * wait, we fire off our requests and assume that no errors will be returned. + * This function handles the reply messages. + **/ +void i40evf_virtchnl_completion(struct i40evf_adapter *adapter, + enum i40e_virtchnl_ops v_opcode, + i40e_status v_retval, + u8 *msg, u16 msglen) +{ + struct net_device *netdev = adapter->netdev; + + if (v_opcode == I40E_VIRTCHNL_OP_EVENT) { + struct i40e_virtchnl_pf_event *vpe = + (struct i40e_virtchnl_pf_event *)msg; + switch (vpe->event) { + case I40E_VIRTCHNL_EVENT_LINK_CHANGE: + adapter->link_up = + vpe->event_data.link_event.link_status; + if (adapter->link_up && !netif_carrier_ok(netdev)) { + dev_info(&adapter->pdev->dev, "NIC Link is Up\n"); + netif_carrier_on(netdev); + netif_tx_wake_all_queues(netdev); + } else if (!adapter->link_up) { + dev_info(&adapter->pdev->dev, "NIC Link is Down\n"); + netif_carrier_off(netdev); + netif_tx_stop_all_queues(netdev); + } + break; + case I40E_VIRTCHNL_EVENT_RESET_IMPENDING: + dev_info(&adapter->pdev->dev, "PF reset warning received\n"); + if (!(adapter->flags & I40EVF_FLAG_RESET_PENDING)) { + adapter->flags |= I40EVF_FLAG_RESET_PENDING; + dev_info(&adapter->pdev->dev, "Scheduling reset task\n"); + schedule_work(&adapter->reset_task); + } + break; + default: + dev_err(&adapter->pdev->dev, + "%s: Unknown event %d from pf\n", + __func__, vpe->event); + break; + + } + return; + } + if (v_opcode != adapter->current_op) { + dev_err(&adapter->pdev->dev, "%s: Pending op is %d, received %d.\n", + __func__, adapter->current_op, v_opcode); + /* We're probably completely screwed at this point, but clear + * the current op and try to carry on.... + */ + adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN; + return; + } + if (v_retval) { + dev_err(&adapter->pdev->dev, "%s: PF returned error %d to our request %d!\n", + __func__, v_retval, v_opcode); + } + switch (v_opcode) { + case I40E_VIRTCHNL_OP_GET_STATS: { + struct i40e_eth_stats *stats = + (struct i40e_eth_stats *)msg; + adapter->net_stats.rx_packets = stats->rx_unicast + + stats->rx_multicast + + stats->rx_broadcast; + adapter->net_stats.tx_packets = stats->tx_unicast + + stats->tx_multicast + + stats->tx_broadcast; + adapter->net_stats.rx_bytes = stats->rx_bytes; + adapter->net_stats.tx_bytes = stats->tx_bytes; + adapter->net_stats.rx_errors = stats->rx_errors; + adapter->net_stats.tx_errors = stats->tx_errors; + adapter->net_stats.rx_dropped = stats->rx_missed; + adapter->net_stats.tx_dropped = stats->tx_discards; + adapter->current_stats = *stats; + } + break; + case I40E_VIRTCHNL_OP_ADD_ETHER_ADDRESS: + adapter->aq_pending &= ~(I40EVF_FLAG_AQ_ADD_MAC_FILTER); + break; + case I40E_VIRTCHNL_OP_DEL_ETHER_ADDRESS: + adapter->aq_pending &= ~(I40EVF_FLAG_AQ_DEL_MAC_FILTER); + break; + case I40E_VIRTCHNL_OP_ADD_VLAN: + adapter->aq_pending &= ~(I40EVF_FLAG_AQ_ADD_VLAN_FILTER); + break; + case I40E_VIRTCHNL_OP_DEL_VLAN: + adapter->aq_pending &= ~(I40EVF_FLAG_AQ_DEL_VLAN_FILTER); + break; + case I40E_VIRTCHNL_OP_ENABLE_QUEUES: + adapter->aq_pending &= ~(I40EVF_FLAG_AQ_ENABLE_QUEUES); + /* enable transmits */ + i40evf_irq_enable(adapter, true); + netif_tx_start_all_queues(adapter->netdev); + netif_carrier_on(adapter->netdev); + break; + case I40E_VIRTCHNL_OP_DISABLE_QUEUES: + adapter->aq_pending &= ~(I40EVF_FLAG_AQ_DISABLE_QUEUES); + break; + case I40E_VIRTCHNL_OP_CONFIG_VSI_QUEUES: + adapter->aq_pending &= ~(I40EVF_FLAG_AQ_CONFIGURE_QUEUES); + break; + case I40E_VIRTCHNL_OP_CONFIG_IRQ_MAP: + adapter->aq_pending &= ~(I40EVF_FLAG_AQ_MAP_VECTORS); + break; + default: + dev_warn(&adapter->pdev->dev, "%s: Received unexpected message %d from PF.\n", + __func__, v_opcode); + break; + } /* switch v_opcode */ + adapter->current_op = I40E_VIRTCHNL_OP_UNKNOWN; +} --- linux-3.13.0.orig/drivers/net/ethernet/intel/igb/e1000_82575.c +++ linux-3.13.0/drivers/net/ethernet/intel/igb/e1000_82575.c @@ -1403,6 +1403,13 @@ s32 ret_val; u16 i, rar_count = mac->rar_entry_count; + if ((hw->mac.type >= e1000_i210) && + !(igb_get_flash_presence_i210(hw))) { + ret_val = igb_pll_workaround_i210(hw); + if (ret_val) + return ret_val; + } + /* Initialize identification LED */ ret_val = igb_id_led_init(hw); if (ret_val) { --- linux-3.13.0.orig/drivers/net/ethernet/intel/igb/e1000_defines.h +++ linux-3.13.0/drivers/net/ethernet/intel/igb/e1000_defines.h @@ -46,14 +46,15 @@ /* Extended Device Control */ #define E1000_CTRL_EXT_SDP3_DATA 0x00000080 /* Value of SW Defineable Pin 3 */ /* Physical Func Reset Done Indication */ -#define E1000_CTRL_EXT_PFRSTD 0x00004000 -#define E1000_CTRL_EXT_LINK_MODE_MASK 0x00C00000 -#define E1000_CTRL_EXT_LINK_MODE_PCIE_SERDES 0x00C00000 -#define E1000_CTRL_EXT_LINK_MODE_1000BASE_KX 0x00400000 -#define E1000_CTRL_EXT_LINK_MODE_SGMII 0x00800000 -#define E1000_CTRL_EXT_LINK_MODE_GMII 0x00000000 -#define E1000_CTRL_EXT_EIAME 0x01000000 -#define E1000_CTRL_EXT_IRCA 0x00000001 +#define E1000_CTRL_EXT_PFRSTD 0x00004000 +#define E1000_CTRL_EXT_SDLPE 0X00040000 /* SerDes Low Power Enable */ +#define E1000_CTRL_EXT_LINK_MODE_MASK 0x00C00000 +#define E1000_CTRL_EXT_LINK_MODE_PCIE_SERDES 0x00C00000 +#define E1000_CTRL_EXT_LINK_MODE_1000BASE_KX 0x00400000 +#define E1000_CTRL_EXT_LINK_MODE_SGMII 0x00800000 +#define E1000_CTRL_EXT_LINK_MODE_GMII 0x00000000 +#define E1000_CTRL_EXT_EIAME 0x01000000 +#define E1000_CTRL_EXT_IRCA 0x00000001 /* Interrupt delay cancellation */ /* Driver loaded bit for FW */ #define E1000_CTRL_EXT_DRV_LOAD 0x10000000 @@ -62,6 +63,7 @@ /* packet buffer parity error detection enabled */ /* descriptor FIFO parity error detection enable */ #define E1000_CTRL_EXT_PBA_CLR 0x80000000 /* PBA Clear */ +#define E1000_CTRL_EXT_PHYPDEN 0x00100000 #define E1000_I2CCMD_REG_ADDR_SHIFT 16 #define E1000_I2CCMD_PHY_ADDR_SHIFT 24 #define E1000_I2CCMD_OPCODE_READ 0x08000000 --- linux-3.13.0.orig/drivers/net/ethernet/intel/igb/e1000_hw.h +++ linux-3.13.0/drivers/net/ethernet/intel/igb/e1000_hw.h @@ -569,4 +569,7 @@ /* These functions must be implemented by drivers */ s32 igb_read_pcie_cap_reg(struct e1000_hw *hw, u32 reg, u16 *value); s32 igb_write_pcie_cap_reg(struct e1000_hw *hw, u32 reg, u16 *value); + +void igb_read_pci_cfg(struct e1000_hw *hw, u32 reg, u16 *value); +void igb_write_pci_cfg(struct e1000_hw *hw, u32 reg, u16 *value); #endif /* _E1000_HW_H_ */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/igb/e1000_i210.c +++ linux-3.13.0/drivers/net/ethernet/intel/igb/e1000_i210.c @@ -364,7 +364,7 @@ word_address = INVM_DWORD_TO_WORD_ADDRESS(invm_dword); if (word_address == address) { *data = INVM_DWORD_TO_WORD_DATA(invm_dword); - hw_dbg("Read INVM Word 0x%02x = %x", + hw_dbg("Read INVM Word 0x%02x = %x\n", address, *data); status = E1000_SUCCESS; break; @@ -835,3 +835,69 @@ } return ret_val; } + +/** + * igb_pll_workaround_i210 + * @hw: pointer to the HW structure + * + * Works around an errata in the PLL circuit where it occasionally + * provides the wrong clock frequency after power up. + **/ +s32 igb_pll_workaround_i210(struct e1000_hw *hw) +{ + s32 ret_val; + u32 wuc, mdicnfg, ctrl, ctrl_ext, reg_val; + u16 nvm_word, phy_word, pci_word, tmp_nvm; + int i; + + /* Get and set needed register values */ + wuc = rd32(E1000_WUC); + mdicnfg = rd32(E1000_MDICNFG); + reg_val = mdicnfg & ~E1000_MDICNFG_EXT_MDIO; + wr32(E1000_MDICNFG, reg_val); + + /* Get data from NVM, or set default */ + ret_val = igb_read_invm_word_i210(hw, E1000_INVM_AUTOLOAD, + &nvm_word); + if (ret_val) + nvm_word = E1000_INVM_DEFAULT_AL; + tmp_nvm = nvm_word | E1000_INVM_PLL_WO_VAL; + for (i = 0; i < E1000_MAX_PLL_TRIES; i++) { + /* check current state directly from internal PHY */ + igb_read_phy_reg_gs40g(hw, (E1000_PHY_PLL_FREQ_PAGE | + E1000_PHY_PLL_FREQ_REG), &phy_word); + if ((phy_word & E1000_PHY_PLL_UNCONF) + != E1000_PHY_PLL_UNCONF) { + ret_val = 0; + break; + } else { + ret_val = -E1000_ERR_PHY; + } + /* directly reset the internal PHY */ + ctrl = rd32(E1000_CTRL); + wr32(E1000_CTRL, ctrl|E1000_CTRL_PHY_RST); + + ctrl_ext = rd32(E1000_CTRL_EXT); + ctrl_ext |= (E1000_CTRL_EXT_PHYPDEN | E1000_CTRL_EXT_SDLPE); + wr32(E1000_CTRL_EXT, ctrl_ext); + + wr32(E1000_WUC, 0); + reg_val = (E1000_INVM_AUTOLOAD << 4) | (tmp_nvm << 16); + wr32(E1000_EEARBC_I210, reg_val); + + igb_read_pci_cfg(hw, E1000_PCI_PMCSR, &pci_word); + pci_word |= E1000_PCI_PMCSR_D3; + igb_write_pci_cfg(hw, E1000_PCI_PMCSR, &pci_word); + usleep_range(1000, 2000); + pci_word &= ~E1000_PCI_PMCSR_D3; + igb_write_pci_cfg(hw, E1000_PCI_PMCSR, &pci_word); + reg_val = (E1000_INVM_AUTOLOAD << 4) | (nvm_word << 16); + wr32(E1000_EEARBC_I210, reg_val); + + /* restore WUC register */ + wr32(E1000_WUC, wuc); + } + /* restore MDICNFG setting */ + wr32(E1000_MDICNFG, mdicnfg); + return ret_val; +} --- linux-3.13.0.orig/drivers/net/ethernet/intel/igb/e1000_i210.h +++ linux-3.13.0/drivers/net/ethernet/intel/igb/e1000_i210.h @@ -46,6 +46,7 @@ s32 igb_write_xmdio_reg(struct e1000_hw *hw, u16 addr, u8 dev_addr, u16 data); s32 igb_init_nvm_params_i210(struct e1000_hw *hw); bool igb_get_flash_presence_i210(struct e1000_hw *hw); +s32 igb_pll_workaround_i210(struct e1000_hw *hw); #define E1000_STM_OPCODE 0xDB00 #define E1000_EEPROM_FLASH_SIZE_WORD 0x11 @@ -91,4 +92,15 @@ #define NVM_LED_1_CFG_DEFAULT_I211 0x0184 #define NVM_LED_0_2_CFG_DEFAULT_I211 0x200C +/* PLL Defines */ +#define E1000_PCI_PMCSR 0x44 +#define E1000_PCI_PMCSR_D3 0x03 +#define E1000_MAX_PLL_TRIES 5 +#define E1000_PHY_PLL_UNCONF 0xFF +#define E1000_PHY_PLL_FREQ_PAGE 0xFC0000 +#define E1000_PHY_PLL_FREQ_REG 0x000E +#define E1000_INVM_DEFAULT_AL 0x202F +#define E1000_INVM_AUTOLOAD 0x0A +#define E1000_INVM_PLL_WO_VAL 0x0010 + #endif --- linux-3.13.0.orig/drivers/net/ethernet/intel/igb/e1000_mac.c +++ linux-3.13.0/drivers/net/ethernet/intel/igb/e1000_mac.c @@ -930,11 +930,10 @@ */ if (hw->fc.requested_mode == e1000_fc_full) { hw->fc.current_mode = e1000_fc_full; - hw_dbg("Flow Control = FULL.\r\n"); + hw_dbg("Flow Control = FULL.\n"); } else { hw->fc.current_mode = e1000_fc_rx_pause; - hw_dbg("Flow Control = " - "RX PAUSE frames only.\r\n"); + hw_dbg("Flow Control = RX PAUSE frames only.\n"); } } /* For receiving PAUSE frames ONLY. @@ -949,7 +948,7 @@ (mii_nway_lp_ability_reg & NWAY_LPAR_PAUSE) && (mii_nway_lp_ability_reg & NWAY_LPAR_ASM_DIR)) { hw->fc.current_mode = e1000_fc_tx_pause; - hw_dbg("Flow Control = TX PAUSE frames only.\r\n"); + hw_dbg("Flow Control = TX PAUSE frames only.\n"); } /* For transmitting PAUSE frames ONLY. * @@ -963,7 +962,7 @@ !(mii_nway_lp_ability_reg & NWAY_LPAR_PAUSE) && (mii_nway_lp_ability_reg & NWAY_LPAR_ASM_DIR)) { hw->fc.current_mode = e1000_fc_rx_pause; - hw_dbg("Flow Control = RX PAUSE frames only.\r\n"); + hw_dbg("Flow Control = RX PAUSE frames only.\n"); } /* Per the IEEE spec, at this point flow control should be * disabled. However, we want to consider that we could @@ -989,10 +988,10 @@ (hw->fc.requested_mode == e1000_fc_tx_pause) || (hw->fc.strict_ieee)) { hw->fc.current_mode = e1000_fc_none; - hw_dbg("Flow Control = NONE.\r\n"); + hw_dbg("Flow Control = NONE.\n"); } else { hw->fc.current_mode = e1000_fc_rx_pause; - hw_dbg("Flow Control = RX PAUSE frames only.\r\n"); + hw_dbg("Flow Control = RX PAUSE frames only.\n"); } /* Now we need to do one last check... If we auto- --- linux-3.13.0.orig/drivers/net/ethernet/intel/igb/e1000_regs.h +++ linux-3.13.0/drivers/net/ethernet/intel/igb/e1000_regs.h @@ -69,6 +69,7 @@ #define E1000_PBA 0x01000 /* Packet Buffer Allocation - RW */ #define E1000_PBS 0x01008 /* Packet Buffer Size */ #define E1000_EEMNGCTL 0x01010 /* MNG EEprom Control */ +#define E1000_EEARBC_I210 0x12024 /* EEPROM Auto Read Bus Control */ #define E1000_EEWR 0x0102C /* EEPROM Write Register - RW */ #define E1000_I2CCMD 0x01028 /* SFPI2C Command Register - RW */ #define E1000_FRTIMER 0x01048 /* Free Running Timer - RW */ --- linux-3.13.0.orig/drivers/net/ethernet/intel/igb/igb_ethtool.c +++ linux-3.13.0/drivers/net/ethernet/intel/igb/igb_ethtool.c @@ -2270,15 +2270,15 @@ ring = adapter->tx_ring[j]; do { - start = u64_stats_fetch_begin_bh(&ring->tx_syncp); + start = u64_stats_fetch_begin_irq(&ring->tx_syncp); data[i] = ring->tx_stats.packets; data[i+1] = ring->tx_stats.bytes; data[i+2] = ring->tx_stats.restart_queue; - } while (u64_stats_fetch_retry_bh(&ring->tx_syncp, start)); + } while (u64_stats_fetch_retry_irq(&ring->tx_syncp, start)); do { - start = u64_stats_fetch_begin_bh(&ring->tx_syncp2); + start = u64_stats_fetch_begin_irq(&ring->tx_syncp2); restart2 = ring->tx_stats.restart_queue2; - } while (u64_stats_fetch_retry_bh(&ring->tx_syncp2, start)); + } while (u64_stats_fetch_retry_irq(&ring->tx_syncp2, start)); data[i+2] += restart2; i += IGB_TX_QUEUE_STATS_LEN; @@ -2286,13 +2286,13 @@ for (j = 0; j < adapter->num_rx_queues; j++) { ring = adapter->rx_ring[j]; do { - start = u64_stats_fetch_begin_bh(&ring->rx_syncp); + start = u64_stats_fetch_begin_irq(&ring->rx_syncp); data[i] = ring->rx_stats.packets; data[i+1] = ring->rx_stats.bytes; data[i+2] = ring->rx_stats.drops; data[i+3] = ring->rx_stats.csum_err; data[i+4] = ring->rx_stats.alloc_failed; - } while (u64_stats_fetch_retry_bh(&ring->rx_syncp, start)); + } while (u64_stats_fetch_retry_irq(&ring->rx_syncp, start)); i += IGB_RX_QUEUE_STATS_LEN; } spin_unlock(&adapter->stats64_lock); --- linux-3.13.0.orig/drivers/net/ethernet/intel/igb/igb_main.c +++ linux-3.13.0/drivers/net/ethernet/intel/igb/igb_main.c @@ -4909,8 +4909,10 @@ rcu_read_lock(); for (i = 0; i < adapter->num_rx_queues; i++) { - u32 rqdpc = rd32(E1000_RQDPC(i)); struct igb_ring *ring = adapter->rx_ring[i]; + u32 rqdpc = rd32(E1000_RQDPC(i)); + if (hw->mac.type >= e1000_i210) + wr32(E1000_RQDPC(i), 0); if (rqdpc) { ring->rx_stats.drops += rqdpc; @@ -4918,10 +4920,10 @@ } do { - start = u64_stats_fetch_begin_bh(&ring->rx_syncp); + start = u64_stats_fetch_begin_irq(&ring->rx_syncp); _bytes = ring->rx_stats.bytes; _packets = ring->rx_stats.packets; - } while (u64_stats_fetch_retry_bh(&ring->rx_syncp, start)); + } while (u64_stats_fetch_retry_irq(&ring->rx_syncp, start)); bytes += _bytes; packets += _packets; } @@ -4934,10 +4936,10 @@ for (i = 0; i < adapter->num_tx_queues; i++) { struct igb_ring *ring = adapter->tx_ring[i]; do { - start = u64_stats_fetch_begin_bh(&ring->tx_syncp); + start = u64_stats_fetch_begin_irq(&ring->tx_syncp); _bytes = ring->tx_stats.bytes; _packets = ring->tx_stats.packets; - } while (u64_stats_fetch_retry_bh(&ring->tx_syncp, start)); + } while (u64_stats_fetch_retry_irq(&ring->tx_syncp, start)); bytes += _bytes; packets += _packets; } @@ -6912,6 +6914,20 @@ } } +void igb_read_pci_cfg(struct e1000_hw *hw, u32 reg, u16 *value) +{ + struct igb_adapter *adapter = hw->back; + + pci_read_config_word(adapter->pdev, reg, value); +} + +void igb_write_pci_cfg(struct e1000_hw *hw, u32 reg, u16 *value) +{ + struct igb_adapter *adapter = hw->back; + + pci_write_config_word(adapter->pdev, reg, *value); +} + s32 igb_read_pcie_cap_reg(struct e1000_hw *hw, u32 reg, u16 *value) { struct igb_adapter *adapter = hw->back; @@ -7841,6 +7857,8 @@ if (netif_running(netdev)) igb_close(netdev); + else + igb_reset(adapter); igb_clear_interrupt_scheme(adapter); --- linux-3.13.0.orig/drivers/net/ethernet/intel/igb/igb_ptp.c +++ linux-3.13.0/drivers/net/ethernet/intel/igb/igb_ptp.c @@ -387,7 +387,7 @@ dev_kfree_skb_any(adapter->ptp_tx_skb); adapter->ptp_tx_skb = NULL; adapter->tx_hwtstamp_timeouts++; - dev_warn(&adapter->pdev->dev, "clearing Tx timestamp hang"); + dev_warn(&adapter->pdev->dev, "clearing Tx timestamp hang\n"); return; } @@ -454,7 +454,7 @@ rd32(E1000_RXSTMPH); adapter->last_rx_ptp_check = jiffies; adapter->rx_hwtstamp_cleared++; - dev_warn(&adapter->pdev->dev, "clearing Rx timestamp hang"); + dev_warn(&adapter->pdev->dev, "clearing Rx timestamp hang\n"); } } --- linux-3.13.0.orig/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c +++ linux-3.13.0/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c @@ -1208,7 +1208,7 @@ */ hw->eeprom.word_page_size = IXGBE_EEPROM_PAGE_SIZE_MAX - data[0]; - hw_dbg(hw, "Detected EEPROM page size = %d words.", + hw_dbg(hw, "Detected EEPROM page size = %d words.\n", hw->eeprom.word_page_size); out: return status; --- linux-3.13.0.orig/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c +++ linux-3.13.0/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c @@ -1127,10 +1127,10 @@ } do { - start = u64_stats_fetch_begin_bh(&ring->syncp); + start = u64_stats_fetch_begin_irq(&ring->syncp); data[i] = ring->stats.packets; data[i+1] = ring->stats.bytes; - } while (u64_stats_fetch_retry_bh(&ring->syncp, start)); + } while (u64_stats_fetch_retry_irq(&ring->syncp, start)); i += 2; #ifdef BP_EXTENDED_STATS data[i] = ring->stats.yields; @@ -1155,10 +1155,10 @@ } do { - start = u64_stats_fetch_begin_bh(&ring->syncp); + start = u64_stats_fetch_begin_irq(&ring->syncp); data[i] = ring->stats.packets; data[i+1] = ring->stats.bytes; - } while (u64_stats_fetch_retry_bh(&ring->syncp, start)); + } while (u64_stats_fetch_retry_irq(&ring->syncp, start)); i += 2; #ifdef BP_EXTENDED_STATS data[i] = ring->stats.yields; --- linux-3.13.0.orig/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ linux-3.13.0/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -6828,7 +6828,7 @@ } static u16 ixgbe_select_queue(struct net_device *dev, struct sk_buff *skb, - void *accel_priv) + void *accel_priv, select_queue_fallback_t fallback) { struct ixgbe_fwd_adapter *fwd_adapter = accel_priv; #ifdef IXGBE_FCOE @@ -6854,7 +6854,7 @@ if (adapter->flags & IXGBE_FLAG_FCOE_ENABLED) break; default: - return __netdev_pick_tx(dev, skb); + return fallback(dev, skb); } f = &adapter->ring_feature[RING_F_FCOE]; @@ -6867,7 +6867,7 @@ return txq + f->offset; #else - return __netdev_pick_tx(dev, skb); + return fallback(dev, skb); #endif } @@ -7181,10 +7181,10 @@ if (ring) { do { - start = u64_stats_fetch_begin_bh(&ring->syncp); + start = u64_stats_fetch_begin_irq(&ring->syncp); packets = ring->stats.packets; bytes = ring->stats.bytes; - } while (u64_stats_fetch_retry_bh(&ring->syncp, start)); + } while (u64_stats_fetch_retry_irq(&ring->syncp, start)); stats->rx_packets += packets; stats->rx_bytes += bytes; } @@ -7197,10 +7197,10 @@ if (ring) { do { - start = u64_stats_fetch_begin_bh(&ring->syncp); + start = u64_stats_fetch_begin_irq(&ring->syncp); packets = ring->stats.packets; bytes = ring->stats.bytes; - } while (u64_stats_fetch_retry_bh(&ring->syncp, start)); + } while (u64_stats_fetch_retry_irq(&ring->syncp, start)); stats->tx_packets += packets; stats->tx_bytes += bytes; } --- linux-3.13.0.orig/drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c +++ linux-3.13.0/drivers/net/ethernet/intel/ixgbe/ixgbe_phy.c @@ -501,7 +501,7 @@ if (time_out == max_time_out) { status = IXGBE_ERR_LINK_SETUP; - hw_dbg(hw, "ixgbe_setup_phy_link_generic: time out"); + hw_dbg(hw, "ixgbe_setup_phy_link_generic: time out\n"); } return status; @@ -706,7 +706,7 @@ if (time_out == max_time_out) { status = IXGBE_ERR_LINK_SETUP; - hw_dbg(hw, "ixgbe_setup_phy_link_tnx: time out"); + hw_dbg(hw, "ixgbe_setup_phy_link_tnx: time out\n"); } return status; @@ -1132,7 +1132,7 @@ status = 0; } else { if (hw->allow_unsupported_sfp) { - e_warn(drv, "WARNING: Intel (R) Network Connections are quality tested using Intel (R) Ethernet Optics. Using untested modules is not supported and may cause unstable operation or damage to the module or the adapter. Intel Corporation is not responsible for any harm caused by using untested modules."); + e_warn(drv, "WARNING: Intel (R) Network Connections are quality tested using Intel (R) Ethernet Optics. Using untested modules is not supported and may cause unstable operation or damage to the module or the adapter. Intel Corporation is not responsible for any harm caused by using untested modules.\n"); status = 0; } else { hw_dbg(hw, --- linux-3.13.0.orig/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c +++ linux-3.13.0/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c @@ -460,7 +460,7 @@ IXGBE_READ_REG(hw, IXGBE_RXSTMPH); adapter->last_rx_ptp_check = jiffies; - e_warn(drv, "clearing RX Timestamp hang"); + e_warn(drv, "clearing RX Timestamp hang\n"); } } @@ -518,7 +518,7 @@ if (timeout) { dev_kfree_skb_any(adapter->ptp_tx_skb); adapter->ptp_tx_skb = NULL; - e_warn(drv, "clearing Tx Timestamp hang"); + e_warn(drv, "clearing Tx Timestamp hang\n"); return; } --- linux-3.13.0.orig/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +++ linux-3.13.0/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c @@ -3351,10 +3351,10 @@ for (i = 0; i < adapter->num_rx_queues; i++) { ring = &adapter->rx_ring[i]; do { - start = u64_stats_fetch_begin_bh(&ring->syncp); + start = u64_stats_fetch_begin_irq(&ring->syncp); bytes = ring->total_bytes; packets = ring->total_packets; - } while (u64_stats_fetch_retry_bh(&ring->syncp, start)); + } while (u64_stats_fetch_retry_irq(&ring->syncp, start)); stats->rx_bytes += bytes; stats->rx_packets += packets; } @@ -3362,10 +3362,10 @@ for (i = 0; i < adapter->num_tx_queues; i++) { ring = &adapter->tx_ring[i]; do { - start = u64_stats_fetch_begin_bh(&ring->syncp); + start = u64_stats_fetch_begin_irq(&ring->syncp); bytes = ring->total_bytes; packets = ring->total_packets; - } while (u64_stats_fetch_retry_bh(&ring->syncp, start)); + } while (u64_stats_fetch_retry_irq(&ring->syncp, start)); stats->tx_bytes += bytes; stats->tx_packets += packets; } --- linux-3.13.0.orig/drivers/net/ethernet/lantiq_etop.c +++ linux-3.13.0/drivers/net/ethernet/lantiq_etop.c @@ -620,7 +620,7 @@ static u16 ltq_etop_select_queue(struct net_device *dev, struct sk_buff *skb, - void *accel_priv) + void *accel_priv, select_queue_fallback_t fallback) { /* we are currently only using the first queue */ return 0; --- linux-3.13.0.orig/drivers/net/ethernet/marvell/mvneta.c +++ linux-3.13.0/drivers/net/ethernet/marvell/mvneta.c @@ -101,16 +101,56 @@ #define MVNETA_CPU_RXQ_ACCESS_ALL_MASK 0x000000ff #define MVNETA_CPU_TXQ_ACCESS_ALL_MASK 0x0000ff00 #define MVNETA_RXQ_TIME_COAL_REG(q) (0x2580 + ((q) << 2)) + +/* Exception Interrupt Port/Queue Cause register */ + #define MVNETA_INTR_NEW_CAUSE 0x25a0 -#define MVNETA_RX_INTR_MASK(nr_rxqs) (((1 << nr_rxqs) - 1) << 8) #define MVNETA_INTR_NEW_MASK 0x25a4 + +/* bits 0..7 = TXQ SENT, one bit per queue. + * bits 8..15 = RXQ OCCUP, one bit per queue. + * bits 16..23 = RXQ FREE, one bit per queue. + * bit 29 = OLD_REG_SUM, see old reg ? + * bit 30 = TX_ERR_SUM, one bit for 4 ports + * bit 31 = MISC_SUM, one bit for 4 ports + */ +#define MVNETA_TX_INTR_MASK(nr_txqs) (((1 << nr_txqs) - 1) << 0) +#define MVNETA_TX_INTR_MASK_ALL (0xff << 0) +#define MVNETA_RX_INTR_MASK(nr_rxqs) (((1 << nr_rxqs) - 1) << 8) +#define MVNETA_RX_INTR_MASK_ALL (0xff << 8) + #define MVNETA_INTR_OLD_CAUSE 0x25a8 #define MVNETA_INTR_OLD_MASK 0x25ac + +/* Data Path Port/Queue Cause Register */ #define MVNETA_INTR_MISC_CAUSE 0x25b0 #define MVNETA_INTR_MISC_MASK 0x25b4 + +#define MVNETA_CAUSE_PHY_STATUS_CHANGE BIT(0) +#define MVNETA_CAUSE_LINK_CHANGE BIT(1) +#define MVNETA_CAUSE_PTP BIT(4) + +#define MVNETA_CAUSE_INTERNAL_ADDR_ERR BIT(7) +#define MVNETA_CAUSE_RX_OVERRUN BIT(8) +#define MVNETA_CAUSE_RX_CRC_ERROR BIT(9) +#define MVNETA_CAUSE_RX_LARGE_PKT BIT(10) +#define MVNETA_CAUSE_TX_UNDERUN BIT(11) +#define MVNETA_CAUSE_PRBS_ERR BIT(12) +#define MVNETA_CAUSE_PSC_SYNC_CHANGE BIT(13) +#define MVNETA_CAUSE_SERDES_SYNC_ERR BIT(14) + +#define MVNETA_CAUSE_BMU_ALLOC_ERR_SHIFT 16 +#define MVNETA_CAUSE_BMU_ALLOC_ERR_ALL_MASK (0xF << MVNETA_CAUSE_BMU_ALLOC_ERR_SHIFT) +#define MVNETA_CAUSE_BMU_ALLOC_ERR_MASK(pool) (1 << (MVNETA_CAUSE_BMU_ALLOC_ERR_SHIFT + (pool))) + +#define MVNETA_CAUSE_TXQ_ERROR_SHIFT 24 +#define MVNETA_CAUSE_TXQ_ERROR_ALL_MASK (0xFF << MVNETA_CAUSE_TXQ_ERROR_SHIFT) +#define MVNETA_CAUSE_TXQ_ERROR_MASK(q) (1 << (MVNETA_CAUSE_TXQ_ERROR_SHIFT + (q))) + #define MVNETA_INTR_ENABLE 0x25b8 #define MVNETA_TXQ_INTR_ENABLE_ALL_MASK 0x0000ff00 -#define MVNETA_RXQ_INTR_ENABLE_ALL_MASK 0xff000000 +#define MVNETA_RXQ_INTR_ENABLE_ALL_MASK 0xff000000 // note: neta says it's 0x000000FF + #define MVNETA_RXQ_CMD 0x2680 #define MVNETA_RXQ_DISABLE_SHIFT 8 #define MVNETA_RXQ_ENABLE_MASK 0x000000ff @@ -121,7 +161,7 @@ #define MVNETA_GMAC_MAX_RX_SIZE_MASK 0x7ffc #define MVNETA_GMAC0_PORT_ENABLE BIT(0) #define MVNETA_GMAC_CTRL_2 0x2c08 -#define MVNETA_GMAC2_PSC_ENABLE BIT(3) +#define MVNETA_GMAC2_PCS_ENABLE BIT(3) #define MVNETA_GMAC2_PORT_RGMII BIT(4) #define MVNETA_GMAC2_PORT_RESET BIT(6) #define MVNETA_GMAC_STATUS 0x2c10 @@ -172,13 +212,10 @@ /* Various constants */ /* Coalescing */ -#define MVNETA_TXDONE_COAL_PKTS 16 +#define MVNETA_TXDONE_COAL_PKTS 1 #define MVNETA_RX_COAL_PKTS 32 #define MVNETA_RX_COAL_USEC 100 -/* Timer */ -#define MVNETA_TX_DONE_TIMER_PERIOD 10 - /* Napi polling weight */ #define MVNETA_RX_POLL_WEIGHT 64 @@ -221,10 +258,12 @@ #define MVNETA_RX_BUF_SIZE(pkt_size) ((pkt_size) + NET_SKB_PAD) -struct mvneta_stats { +struct mvneta_pcpu_stats { struct u64_stats_sync syncp; - u64 packets; - u64 bytes; + u64 rx_packets; + u64 rx_bytes; + u64 tx_packets; + u64 tx_bytes; }; struct mvneta_port { @@ -232,16 +271,11 @@ void __iomem *base; struct mvneta_rx_queue *rxqs; struct mvneta_tx_queue *txqs; - struct timer_list tx_done_timer; struct net_device *dev; u32 cause_rx_tx; struct napi_struct napi; - /* Flags */ - unsigned long flags; -#define MVNETA_F_TX_DONE_TIMER_BIT 0 - /* Napi weight */ int weight; @@ -250,8 +284,7 @@ u8 mcast_count[256]; u16 tx_ring_size; u16 rx_ring_size; - struct mvneta_stats tx_stats; - struct mvneta_stats rx_stats; + struct mvneta_pcpu_stats *stats; struct mii_bus *mii_bus; struct phy_device *phy_dev; @@ -461,21 +494,29 @@ { struct mvneta_port *pp = netdev_priv(dev); unsigned int start; + int cpu; - memset(stats, 0, sizeof(struct rtnl_link_stats64)); - - do { - start = u64_stats_fetch_begin_bh(&pp->rx_stats.syncp); - stats->rx_packets = pp->rx_stats.packets; - stats->rx_bytes = pp->rx_stats.bytes; - } while (u64_stats_fetch_retry_bh(&pp->rx_stats.syncp, start)); - - - do { - start = u64_stats_fetch_begin_bh(&pp->tx_stats.syncp); - stats->tx_packets = pp->tx_stats.packets; - stats->tx_bytes = pp->tx_stats.bytes; - } while (u64_stats_fetch_retry_bh(&pp->tx_stats.syncp, start)); + for_each_possible_cpu(cpu) { + struct mvneta_pcpu_stats *cpu_stats; + u64 rx_packets; + u64 rx_bytes; + u64 tx_packets; + u64 tx_bytes; + + cpu_stats = per_cpu_ptr(pp->stats, cpu); + do { + start = u64_stats_fetch_begin_irq(&cpu_stats->syncp); + rx_packets = cpu_stats->rx_packets; + rx_bytes = cpu_stats->rx_bytes; + tx_packets = cpu_stats->tx_packets; + tx_bytes = cpu_stats->tx_bytes; + } while (u64_stats_fetch_retry_irq(&cpu_stats->syncp, start)); + + stats->rx_packets += rx_packets; + stats->rx_bytes += rx_bytes; + stats->tx_packets += tx_packets; + stats->tx_bytes += tx_bytes; + } stats->rx_errors = dev->stats.rx_errors; stats->rx_dropped = dev->stats.rx_dropped; @@ -688,7 +729,7 @@ u32 val; val = mvreg_read(pp, MVNETA_GMAC_CTRL_2); - val |= MVNETA_GMAC2_PSC_ENABLE; + val |= MVNETA_GMAC2_PCS_ENABLE; mvreg_write(pp, MVNETA_GMAC_CTRL_2, val); mvreg_write(pp, MVNETA_SGMII_SERDES_CFG, MVNETA_SGMII_SERDES_PROTO); @@ -1100,17 +1141,6 @@ txq->done_pkts_coal = value; } -/* Trigger tx done timer in MVNETA_TX_DONE_TIMER_PERIOD msecs */ -static void mvneta_add_tx_done_timer(struct mvneta_port *pp) -{ - if (test_and_set_bit(MVNETA_F_TX_DONE_TIMER_BIT, &pp->flags) == 0) { - pp->tx_done_timer.expires = jiffies + - msecs_to_jiffies(MVNETA_TX_DONE_TIMER_PERIOD); - add_timer(&pp->tx_done_timer); - } -} - - /* Handle rx descriptor fill by setting buf_cookie and buf_phys_addr */ static void mvneta_rx_desc_fill(struct mvneta_rx_desc *rx_desc, u32 phys_addr, u32 cookie) @@ -1182,7 +1212,7 @@ command = l3_offs << MVNETA_TX_L3_OFF_SHIFT; command |= ip_hdr_len << MVNETA_TX_IP_HLEN_SHIFT; - if (l3_proto == swab16(ETH_P_IP)) + if (l3_proto == htons(ETH_P_IP)) command |= MVNETA_TXD_IP_CSUM; else command |= MVNETA_TX_L3_IP6; @@ -1391,6 +1421,8 @@ { struct net_device *dev = pp->dev; int rx_done, rx_filled; + u32 rcvd_pkts = 0; + u32 rcvd_bytes = 0; /* Get number of received packets */ rx_done = mvneta_rxq_busy_desc_num_get(pp, rxq); @@ -1428,10 +1460,8 @@ rx_bytes = rx_desc->data_size - (ETH_FCS_LEN + MVNETA_MH_SIZE); - u64_stats_update_begin(&pp->rx_stats.syncp); - pp->rx_stats.packets++; - pp->rx_stats.bytes += rx_bytes; - u64_stats_update_end(&pp->rx_stats.syncp); + rcvd_pkts++; + rcvd_bytes += rx_bytes; /* Linux processing */ skb_reserve(skb, MVNETA_MH_SIZE); @@ -1452,6 +1482,15 @@ } } + if (rcvd_pkts) { + struct mvneta_pcpu_stats *stats = this_cpu_ptr(pp->stats); + + u64_stats_update_begin(&stats->syncp); + stats->rx_packets += rcvd_pkts; + stats->rx_bytes += rcvd_bytes; + u64_stats_update_end(&stats->syncp); + } + /* Update rxq management counters */ mvneta_rxq_desc_num_update(pp, rxq, rx_done, rx_filled); @@ -1523,6 +1562,7 @@ u16 txq_id = skb_get_queue_mapping(skb); struct mvneta_tx_queue *txq = &pp->txqs[txq_id]; struct mvneta_tx_desc *tx_desc; + int len = skb->len; struct netdev_queue *nq; int frags = 0; u32 tx_cmd; @@ -1582,25 +1622,17 @@ out: if (frags > 0) { - u64_stats_update_begin(&pp->tx_stats.syncp); - pp->tx_stats.packets++; - pp->tx_stats.bytes += skb->len; - u64_stats_update_end(&pp->tx_stats.syncp); + struct mvneta_pcpu_stats *stats = this_cpu_ptr(pp->stats); + u64_stats_update_begin(&stats->syncp); + stats->tx_packets++; + stats->tx_bytes += len; + u64_stats_update_end(&stats->syncp); } else { dev->stats.tx_dropped++; dev_kfree_skb_any(skb); } - if (txq->count >= MVNETA_TXDONE_COAL_PKTS) - mvneta_txq_done(pp, txq); - - /* If after calling mvneta_txq_done, count equals - * frags, we need to set the timer - */ - if (txq->count == frags && frags > 0) - mvneta_add_tx_done_timer(pp); - return NETDEV_TX_OK; } @@ -1876,14 +1908,22 @@ /* Read cause register */ cause_rx_tx = mvreg_read(pp, MVNETA_INTR_NEW_CAUSE) & - MVNETA_RX_INTR_MASK(rxq_number); + (MVNETA_RX_INTR_MASK(rxq_number) | MVNETA_TX_INTR_MASK(txq_number)); + + /* Release Tx descriptors */ + if (cause_rx_tx & MVNETA_TX_INTR_MASK_ALL) { + int tx_todo = 0; + + mvneta_tx_done_gbe(pp, (cause_rx_tx & MVNETA_TX_INTR_MASK_ALL), &tx_todo); + cause_rx_tx &= ~MVNETA_TX_INTR_MASK_ALL; + } /* For the case where the last mvneta_poll did not process all * RX packets */ cause_rx_tx |= pp->cause_rx_tx; if (rxq_number > 1) { - while ((cause_rx_tx != 0) && (budget > 0)) { + while ((cause_rx_tx & MVNETA_RX_INTR_MASK_ALL) && (budget > 0)) { int count; struct mvneta_rx_queue *rxq; /* get rx queue number from cause_rx_tx */ @@ -1915,7 +1955,7 @@ napi_complete(napi); local_irq_save(flags); mvreg_write(pp, MVNETA_INTR_NEW_MASK, - MVNETA_RX_INTR_MASK(rxq_number)); + MVNETA_RX_INTR_MASK(rxq_number) | MVNETA_TX_INTR_MASK(txq_number)); local_irq_restore(flags); } @@ -1923,26 +1963,6 @@ return rx_done; } -/* tx done timer callback */ -static void mvneta_tx_done_timer_callback(unsigned long data) -{ - struct net_device *dev = (struct net_device *)data; - struct mvneta_port *pp = netdev_priv(dev); - int tx_done = 0, tx_todo = 0; - - if (!netif_running(dev)) - return ; - - clear_bit(MVNETA_F_TX_DONE_TIMER_BIT, &pp->flags); - - tx_done = mvneta_tx_done_gbe(pp, - (((1 << txq_number) - 1) & - MVNETA_CAUSE_TXQ_SENT_DESC_ALL_MASK), - &tx_todo); - if (tx_todo > 0) - mvneta_add_tx_done_timer(pp); -} - /* Handle rxq fill: allocates rxq skbs; called when initializing a port */ static int mvneta_rxq_fill(struct mvneta_port *pp, struct mvneta_rx_queue *rxq, int num) @@ -2192,7 +2212,7 @@ /* Unmask interrupts */ mvreg_write(pp, MVNETA_INTR_NEW_MASK, - MVNETA_RX_INTR_MASK(rxq_number)); + MVNETA_RX_INTR_MASK(rxq_number) | MVNETA_TX_INTR_MASK(txq_number)); phy_start(pp->phy_dev); netif_tx_start_all_queues(pp->dev); @@ -2225,16 +2245,6 @@ mvneta_rx_reset(pp); } -/* tx timeout callback - display a message and stop/start the network device */ -static void mvneta_tx_timeout(struct net_device *dev) -{ - struct mvneta_port *pp = netdev_priv(dev); - - netdev_info(dev, "tx timeout\n"); - mvneta_stop_dev(pp); - mvneta_start_dev(pp); -} - /* Return positive if MTU is valid */ static int mvneta_check_mtu_valid(struct net_device *dev, int mtu) { @@ -2358,7 +2368,7 @@ if (phydev->speed == SPEED_1000) val |= MVNETA_GMAC_CONFIG_GMII_SPEED; - else + else if (phydev->speed == SPEED_100) val |= MVNETA_GMAC_CONFIG_MII_SPEED; mvreg_write(pp, MVNETA_GMAC_AUTONEG_CONFIG, val); @@ -2478,8 +2488,6 @@ free_irq(dev->irq, pp); mvneta_cleanup_rxqs(pp); mvneta_cleanup_txqs(pp); - del_timer(&pp->tx_done_timer); - clear_bit(MVNETA_F_TX_DONE_TIMER_BIT, &pp->flags); return 0; } @@ -2615,7 +2623,6 @@ .ndo_set_rx_mode = mvneta_set_rx_mode, .ndo_set_mac_address = mvneta_set_mac_addr, .ndo_change_mtu = mvneta_change_mtu, - .ndo_tx_timeout = mvneta_tx_timeout, .ndo_get_stats64 = mvneta_get_stats64, .ndo_do_ioctl = mvneta_ioctl, }; @@ -2751,6 +2758,7 @@ const char *mac_from; int phy_mode; int err; + int cpu; /* Our multiqueue support is not complete, so for now, only * allow the usage of the first RX queue @@ -2792,9 +2800,6 @@ pp = netdev_priv(dev); - u64_stats_init(&pp->tx_stats.syncp); - u64_stats_init(&pp->rx_stats.syncp); - pp->weight = MVNETA_RX_POLL_WEIGHT; pp->phy_node = phy_node; pp->phy_interface = phy_mode; @@ -2813,6 +2818,19 @@ goto err_clk; } + /* Alloc per-cpu stats */ + pp->stats = alloc_percpu(struct mvneta_pcpu_stats); + if (!pp->stats) { + err = -ENOMEM; + goto err_unmap; + } + + for_each_possible_cpu(cpu) { + struct mvneta_pcpu_stats *stats; + stats = per_cpu_ptr(pp->stats, cpu); + u64_stats_init(&stats->syncp); + } + dt_mac_addr = of_get_mac_address(dn); if (dt_mac_addr) { mac_from = "device tree"; @@ -2828,11 +2846,6 @@ } } - pp->tx_done_timer.data = (unsigned long)dev; - pp->tx_done_timer.function = mvneta_tx_done_timer_callback; - init_timer(&pp->tx_done_timer); - clear_bit(MVNETA_F_TX_DONE_TIMER_BIT, &pp->flags); - pp->tx_ring_size = MVNETA_MAX_TXD; pp->rx_ring_size = MVNETA_MAX_RXD; @@ -2842,7 +2855,7 @@ err = mvneta_init(pp, phy_addr); if (err < 0) { dev_err(&pdev->dev, "can't init eth hal\n"); - goto err_unmap; + goto err_free_stats; } mvneta_port_power_up(pp, phy_mode); @@ -2872,6 +2885,8 @@ err_deinit: mvneta_deinit(pp); +err_free_stats: + free_percpu(pp->stats); err_unmap: iounmap(pp->base); err_clk: @@ -2892,6 +2907,7 @@ unregister_netdev(dev); mvneta_deinit(pp); clk_disable_unprepare(pp->clk); + free_percpu(pp->stats); iounmap(pp->base); irq_dispose_mapping(dev->irq); free_netdev(dev); --- linux-3.13.0.orig/drivers/net/ethernet/marvell/sky2.c +++ linux-3.13.0/drivers/net/ethernet/marvell/sky2.c @@ -3906,19 +3906,19 @@ u64 _bytes, _packets; do { - start = u64_stats_fetch_begin_bh(&sky2->rx_stats.syncp); + start = u64_stats_fetch_begin_irq(&sky2->rx_stats.syncp); _bytes = sky2->rx_stats.bytes; _packets = sky2->rx_stats.packets; - } while (u64_stats_fetch_retry_bh(&sky2->rx_stats.syncp, start)); + } while (u64_stats_fetch_retry_irq(&sky2->rx_stats.syncp, start)); stats->rx_packets = _packets; stats->rx_bytes = _bytes; do { - start = u64_stats_fetch_begin_bh(&sky2->tx_stats.syncp); + start = u64_stats_fetch_begin_irq(&sky2->tx_stats.syncp); _bytes = sky2->tx_stats.bytes; _packets = sky2->tx_stats.packets; - } while (u64_stats_fetch_retry_bh(&sky2->tx_stats.syncp, start)); + } while (u64_stats_fetch_retry_irq(&sky2->tx_stats.syncp, start)); stats->tx_packets = _packets; stats->tx_bytes = _bytes; --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/Kconfig +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/Kconfig @@ -3,9 +3,10 @@ # config MLX4_EN - tristate "Mellanox Technologies 10Gbit Ethernet support" + tristate "Mellanox Technologies 1/10/40Gbit Ethernet support" depends on PCI select MLX4_CORE + select PTP_1588_CLOCK ---help--- This driver supports Mellanox Technologies ConnectX Ethernet devices. @@ -22,6 +23,13 @@ If unsure, set to Y +config MLX4_EN_VXLAN + bool "VXLAN offloads Support" + default y + depends on MLX4_EN && VXLAN && !(MLX4_EN=y && VXLAN=m) + ---help--- + Say Y here if you want to use VXLAN offloads in the driver. + config MLX4_CORE tristate depends on PCI --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/alloc.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/alloc.c @@ -71,9 +71,9 @@ return obj; } -void mlx4_bitmap_free(struct mlx4_bitmap *bitmap, u32 obj) +void mlx4_bitmap_free(struct mlx4_bitmap *bitmap, u32 obj, int use_rr) { - mlx4_bitmap_free_range(bitmap, obj, 1); + mlx4_bitmap_free_range(bitmap, obj, 1, use_rr); } u32 mlx4_bitmap_alloc_range(struct mlx4_bitmap *bitmap, int cnt, int align) @@ -118,11 +118,17 @@ return bitmap->avail; } -void mlx4_bitmap_free_range(struct mlx4_bitmap *bitmap, u32 obj, int cnt) +void mlx4_bitmap_free_range(struct mlx4_bitmap *bitmap, u32 obj, int cnt, + int use_rr) { obj &= bitmap->max + bitmap->reserved_top - 1; spin_lock(&bitmap->lock); + if (!use_rr) { + bitmap->last = min(bitmap->last, obj); + bitmap->top = (bitmap->top + bitmap->max + bitmap->reserved_top) + & bitmap->mask; + } bitmap_clear(bitmap->table, obj, cnt); bitmap->avail += cnt; spin_unlock(&bitmap->lock); --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/cmd.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/cmd.c @@ -800,16 +800,7 @@ vhcr->op, MLX4_CMD_TIME_CLASS_C, MLX4_CMD_NATIVE); } -static int MLX4_CMD_UPDATE_QP_wrapper(struct mlx4_dev *dev, int slave, - struct mlx4_vhcr *vhcr, - struct mlx4_cmd_mailbox *inbox, - struct mlx4_cmd_mailbox *outbox, - struct mlx4_cmd_info *cmd) -{ - return -EPERM; -} - -static int MLX4_CMD_GET_OP_REQ_wrapper(struct mlx4_dev *dev, int slave, +static int mlx4_CMD_EPERM_wrapper(struct mlx4_dev *dev, int slave, struct mlx4_vhcr *vhcr, struct mlx4_cmd_mailbox *inbox, struct mlx4_cmd_mailbox *outbox, @@ -964,6 +955,15 @@ .wrapper = NULL }, { + .opcode = MLX4_CMD_CONFIG_DEV, + .has_inbox = false, + .has_outbox = false, + .out_is_imm = false, + .encode_slave_id = false, + .verify = NULL, + .wrapper = mlx4_CMD_EPERM_wrapper + }, + { .opcode = MLX4_CMD_ALLOC_RES, .has_inbox = false, .has_outbox = false, @@ -1253,12 +1253,12 @@ }, { .opcode = MLX4_CMD_UPDATE_QP, - .has_inbox = false, + .has_inbox = true, .has_outbox = false, .out_is_imm = false, .encode_slave_id = false, .verify = NULL, - .wrapper = MLX4_CMD_UPDATE_QP_wrapper + .wrapper = mlx4_UPDATE_QP_wrapper }, { .opcode = MLX4_CMD_GET_OP_REQ, @@ -1267,7 +1267,7 @@ .out_is_imm = false, .encode_slave_id = false, .verify = NULL, - .wrapper = MLX4_CMD_GET_OP_REQ_wrapper, + .wrapper = mlx4_CMD_EPERM_wrapper, }, { .opcode = MLX4_CMD_CONF_SPECIAL_QP, @@ -1296,6 +1296,15 @@ .verify = NULL, .wrapper = mlx4_QUERY_IF_STAT_wrapper }, + { + .opcode = MLX4_CMD_ACCESS_REG, + .has_inbox = true, + .has_outbox = true, + .out_is_imm = false, + .encode_slave_id = false, + .verify = NULL, + .wrapper = mlx4_ACCESS_REG_wrapper, + }, /* Native multicast commands are not available for guests */ { .opcode = MLX4_CMD_QP_ATTACH, @@ -1371,6 +1380,15 @@ .verify = NULL, .wrapper = mlx4_QP_FLOW_STEERING_DETACH_wrapper }, + { + .opcode = MLX4_FLOW_STEERING_IB_UC_QP_RANGE, + .has_inbox = false, + .has_outbox = false, + .out_is_imm = false, + .encode_slave_id = false, + .verify = NULL, + .wrapper = mlx4_CMD_EPERM_wrapper + }, }; static int mlx4_master_process_vhcr(struct mlx4_dev *dev, int slave, @@ -1634,8 +1652,16 @@ int port, err; struct mlx4_vport_state *vp_admin; struct mlx4_vport_oper_state *vp_oper; - - for (port = 1; port <= MLX4_MAX_PORTS; port++) { + struct mlx4_active_ports actv_ports = mlx4_get_active_ports( + &priv->dev, slave); + int min_port = find_first_bit(actv_ports.ports, + priv->dev.caps.num_ports) + 1; + int max_port = min_port - 1 + + bitmap_weight(actv_ports.ports, priv->dev.caps.num_ports); + + for (port = min_port; port <= max_port; port++) { + if (!test_bit(port - 1, actv_ports.ports)) + continue; vp_oper = &priv->mfunc.master.vf_oper[slave].vport[port]; vp_admin = &priv->mfunc.master.vf_admin[slave].vport[port]; vp_oper->state = *vp_admin; @@ -1676,8 +1702,17 @@ { int port; struct mlx4_vport_oper_state *vp_oper; + struct mlx4_active_ports actv_ports = mlx4_get_active_ports( + &priv->dev, slave); + int min_port = find_first_bit(actv_ports.ports, + priv->dev.caps.num_ports) + 1; + int max_port = min_port - 1 + + bitmap_weight(actv_ports.ports, priv->dev.caps.num_ports); + - for (port = 1; port <= MLX4_MAX_PORTS; port++) { + for (port = min_port; port <= max_port; port++) { + if (!test_bit(port - 1, actv_ports.ports)) + continue; vp_oper = &priv->mfunc.master.vf_oper[slave].vport[port]; if (NO_INDX != vp_oper->vlan_idx) { __mlx4_unregister_vlan(&priv->dev, @@ -2225,6 +2260,112 @@ return vf+1; } +int mlx4_get_vf_indx(struct mlx4_dev *dev, int slave) +{ + if (slave < 1 || slave > dev->num_vfs) { + mlx4_err(dev, + "Bad slave number:%d (number of activated slaves: %lu)\n", + slave, dev->num_slaves); + return -EINVAL; + } + return slave - 1; +} + +struct mlx4_active_ports mlx4_get_active_ports(struct mlx4_dev *dev, int slave) +{ + struct mlx4_active_ports actv_ports; + int vf; + + bitmap_zero(actv_ports.ports, MLX4_MAX_PORTS); + + if (slave == 0) { + bitmap_fill(actv_ports.ports, dev->caps.num_ports); + return actv_ports; + } + + vf = mlx4_get_vf_indx(dev, slave); + if (vf < 0) + return actv_ports; + + bitmap_set(actv_ports.ports, dev->dev_vfs[vf].min_port - 1, + min((int)dev->dev_vfs[mlx4_get_vf_indx(dev, slave)].n_ports, + dev->caps.num_ports)); + + return actv_ports; +} +EXPORT_SYMBOL_GPL(mlx4_get_active_ports); + +int mlx4_slave_convert_port(struct mlx4_dev *dev, int slave, int port) +{ + unsigned n; + struct mlx4_active_ports actv_ports = mlx4_get_active_ports(dev, slave); + unsigned m = bitmap_weight(actv_ports.ports, dev->caps.num_ports); + + if (port <= 0 || port > m) + return -EINVAL; + + n = find_first_bit(actv_ports.ports, dev->caps.num_ports); + if (port <= n) + port = n + 1; + + return port; +} +EXPORT_SYMBOL_GPL(mlx4_slave_convert_port); + +int mlx4_phys_to_slave_port(struct mlx4_dev *dev, int slave, int port) +{ + struct mlx4_active_ports actv_ports = mlx4_get_active_ports(dev, slave); + if (test_bit(port - 1, actv_ports.ports)) + return port - + find_first_bit(actv_ports.ports, dev->caps.num_ports); + + return -1; +} +EXPORT_SYMBOL_GPL(mlx4_phys_to_slave_port); + +struct mlx4_slaves_pport mlx4_phys_to_slaves_pport(struct mlx4_dev *dev, + int port) +{ + unsigned i; + struct mlx4_slaves_pport slaves_pport; + + bitmap_zero(slaves_pport.slaves, MLX4_MFUNC_MAX); + + if (port <= 0 || port > dev->caps.num_ports) + return slaves_pport; + + for (i = 0; i < dev->num_vfs + 1; i++) { + struct mlx4_active_ports actv_ports = + mlx4_get_active_ports(dev, i); + if (test_bit(port - 1, actv_ports.ports)) + set_bit(i, slaves_pport.slaves); + } + + return slaves_pport; +} +EXPORT_SYMBOL_GPL(mlx4_phys_to_slaves_pport); + +struct mlx4_slaves_pport mlx4_phys_to_slaves_pport_actv( + struct mlx4_dev *dev, + const struct mlx4_active_ports *crit_ports) +{ + unsigned i; + struct mlx4_slaves_pport slaves_pport; + + bitmap_zero(slaves_pport.slaves, MLX4_MFUNC_MAX); + + for (i = 0; i < dev->num_vfs + 1; i++) { + struct mlx4_active_ports actv_ports = + mlx4_get_active_ports(dev, i); + if (bitmap_equal(crit_ports->ports, actv_ports.ports, + dev->caps.num_ports)) + set_bit(i, slaves_pport.slaves); + } + + return slaves_pport; +} +EXPORT_SYMBOL_GPL(mlx4_phys_to_slaves_pport_actv); + int mlx4_set_vf_mac(struct mlx4_dev *dev, int port, int vf, u64 mac) { struct mlx4_priv *priv = mlx4_priv(dev); @@ -2280,6 +2421,30 @@ } EXPORT_SYMBOL_GPL(mlx4_set_vf_vlan); + /* mlx4_get_slave_default_vlan - + * return true if VST ( default vlan) + * if VST, will return vlan & qos (if not NULL) + */ +bool mlx4_get_slave_default_vlan(struct mlx4_dev *dev, int port, int slave, + u16 *vlan, u8 *qos) +{ + struct mlx4_vport_oper_state *vp_oper; + struct mlx4_priv *priv; + + priv = mlx4_priv(dev); + vp_oper = &priv->mfunc.master.vf_oper[slave].vport[port]; + + if (MLX4_VGT != vp_oper->state.default_vlan) { + if (vlan) + *vlan = vp_oper->state.default_vlan; + if (qos) + *qos = vp_oper->state.default_qos; + return true; + } + return false; +} +EXPORT_SYMBOL_GPL(mlx4_get_slave_default_vlan); + int mlx4_set_vf_spoofchk(struct mlx4_dev *dev, int port, int vf, bool setting) { struct mlx4_priv *priv = mlx4_priv(dev); --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/cq.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/cq.c @@ -187,7 +187,7 @@ mlx4_table_put(dev, &cq_table->table, *cqn); err_out: - mlx4_bitmap_free(&cq_table->bitmap, *cqn); + mlx4_bitmap_free(&cq_table->bitmap, *cqn, MLX4_NO_RR); return err; } @@ -217,7 +217,7 @@ mlx4_table_put(dev, &cq_table->cmpt_table, cqn); mlx4_table_put(dev, &cq_table->table, cqn); - mlx4_bitmap_free(&cq_table->bitmap, cqn); + mlx4_bitmap_free(&cq_table->bitmap, cqn, MLX4_NO_RR); } static void mlx4_cq_free_icm(struct mlx4_dev *dev, int cqn) @@ -294,6 +294,7 @@ atomic_set(&cq->refcount, 1); init_completion(&cq->free); + cq->irq = priv->eq_table.eq[cq->vector].irq; return 0; err_radix: --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/en_clock.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/en_clock.c @@ -35,48 +35,6 @@ #include "mlx4_en.h" -int mlx4_en_timestamp_config(struct net_device *dev, int tx_type, int rx_filter) -{ - struct mlx4_en_priv *priv = netdev_priv(dev); - struct mlx4_en_dev *mdev = priv->mdev; - int port_up = 0; - int err = 0; - - mutex_lock(&mdev->state_lock); - if (priv->port_up) { - port_up = 1; - mlx4_en_stop_port(dev, 1); - } - - mlx4_en_free_resources(priv); - - en_warn(priv, "Changing Time Stamp configuration\n"); - - priv->hwtstamp_config.tx_type = tx_type; - priv->hwtstamp_config.rx_filter = rx_filter; - - if (rx_filter != HWTSTAMP_FILTER_NONE) - dev->features &= ~NETIF_F_HW_VLAN_CTAG_RX; - else - dev->features |= NETIF_F_HW_VLAN_CTAG_RX; - - err = mlx4_en_alloc_resources(priv); - if (err) { - en_err(priv, "Failed reallocating port resources\n"); - goto out; - } - if (port_up) { - err = mlx4_en_start_port(dev); - if (err) - en_err(priv, "Failed starting port\n"); - } - -out: - mutex_unlock(&mdev->state_lock); - netdev_features_change(dev); - return err; -} - /* mlx4_en_read_clock - read raw cycle counter (to be used by time counter) */ static cycle_t mlx4_en_read_clock(const struct cyclecounter *tc) @@ -103,19 +61,191 @@ struct skb_shared_hwtstamps *hwts, u64 timestamp) { + unsigned long flags; u64 nsec; + read_lock_irqsave(&mdev->clock_lock, flags); nsec = timecounter_cyc2time(&mdev->clock, timestamp); + read_unlock_irqrestore(&mdev->clock_lock, flags); memset(hwts, 0, sizeof(struct skb_shared_hwtstamps)); hwts->hwtstamp = ns_to_ktime(nsec); } +/** + * mlx4_en_remove_timestamp - disable PTP device + * @mdev: board private structure + * + * Stop the PTP support. + **/ +void mlx4_en_remove_timestamp(struct mlx4_en_dev *mdev) +{ + if (mdev->ptp_clock) { + ptp_clock_unregister(mdev->ptp_clock); + mdev->ptp_clock = NULL; + mlx4_info(mdev, "removed PHC\n"); + } +} + +void mlx4_en_ptp_overflow_check(struct mlx4_en_dev *mdev) +{ + bool timeout = time_is_before_jiffies(mdev->last_overflow_check + + mdev->overflow_period); + unsigned long flags; + + if (timeout) { + write_lock_irqsave(&mdev->clock_lock, flags); + timecounter_read(&mdev->clock); + write_unlock_irqrestore(&mdev->clock_lock, flags); + mdev->last_overflow_check = jiffies; + } +} + +/** + * mlx4_en_phc_adjfreq - adjust the frequency of the hardware clock + * @ptp: ptp clock structure + * @delta: Desired frequency change in parts per billion + * + * Adjust the frequency of the PHC cycle counter by the indicated delta from + * the base frequency. + **/ +static int mlx4_en_phc_adjfreq(struct ptp_clock_info *ptp, s32 delta) +{ + u64 adj; + u32 diff, mult; + int neg_adj = 0; + unsigned long flags; + struct mlx4_en_dev *mdev = container_of(ptp, struct mlx4_en_dev, + ptp_clock_info); + + if (delta < 0) { + neg_adj = 1; + delta = -delta; + } + mult = mdev->nominal_c_mult; + adj = mult; + adj *= delta; + diff = div_u64(adj, 1000000000ULL); + + write_lock_irqsave(&mdev->clock_lock, flags); + timecounter_read(&mdev->clock); + mdev->cycles.mult = neg_adj ? mult - diff : mult + diff; + write_unlock_irqrestore(&mdev->clock_lock, flags); + + return 0; +} + +/** + * mlx4_en_phc_adjtime - Shift the time of the hardware clock + * @ptp: ptp clock structure + * @delta: Desired change in nanoseconds + * + * Adjust the timer by resetting the timecounter structure. + **/ +static int mlx4_en_phc_adjtime(struct ptp_clock_info *ptp, s64 delta) +{ + struct mlx4_en_dev *mdev = container_of(ptp, struct mlx4_en_dev, + ptp_clock_info); + unsigned long flags; + s64 now; + + write_lock_irqsave(&mdev->clock_lock, flags); + now = timecounter_read(&mdev->clock); + now += delta; + timecounter_init(&mdev->clock, &mdev->cycles, now); + write_unlock_irqrestore(&mdev->clock_lock, flags); + + return 0; +} + +/** + * mlx4_en_phc_gettime - Reads the current time from the hardware clock + * @ptp: ptp clock structure + * @ts: timespec structure to hold the current time value + * + * Read the timecounter and return the correct value in ns after converting + * it into a struct timespec. + **/ +static int mlx4_en_phc_gettime(struct ptp_clock_info *ptp, struct timespec *ts) +{ + struct mlx4_en_dev *mdev = container_of(ptp, struct mlx4_en_dev, + ptp_clock_info); + unsigned long flags; + u32 remainder; + u64 ns; + + write_lock_irqsave(&mdev->clock_lock, flags); + ns = timecounter_read(&mdev->clock); + write_unlock_irqrestore(&mdev->clock_lock, flags); + + ts->tv_sec = div_u64_rem(ns, NSEC_PER_SEC, &remainder); + ts->tv_nsec = remainder; + + return 0; +} + +/** + * mlx4_en_phc_settime - Set the current time on the hardware clock + * @ptp: ptp clock structure + * @ts: timespec containing the new time for the cycle counter + * + * Reset the timecounter to use a new base value instead of the kernel + * wall timer value. + **/ +static int mlx4_en_phc_settime(struct ptp_clock_info *ptp, + const struct timespec *ts) +{ + struct mlx4_en_dev *mdev = container_of(ptp, struct mlx4_en_dev, + ptp_clock_info); + u64 ns = timespec_to_ns(ts); + unsigned long flags; + + /* reset the timecounter */ + write_lock_irqsave(&mdev->clock_lock, flags); + timecounter_init(&mdev->clock, &mdev->cycles, ns); + write_unlock_irqrestore(&mdev->clock_lock, flags); + + return 0; +} + +/** + * mlx4_en_phc_enable - enable or disable an ancillary feature + * @ptp: ptp clock structure + * @request: Desired resource to enable or disable + * @on: Caller passes one to enable or zero to disable + * + * Enable (or disable) ancillary features of the PHC subsystem. + * Currently, no ancillary features are supported. + **/ +static int mlx4_en_phc_enable(struct ptp_clock_info __always_unused *ptp, + struct ptp_clock_request __always_unused *request, + int __always_unused on) +{ + return -EOPNOTSUPP; +} + +static const struct ptp_clock_info mlx4_en_ptp_clock_info = { + .owner = THIS_MODULE, + .max_adj = 100000000, + .n_alarm = 0, + .n_ext_ts = 0, + .n_per_out = 0, + .pps = 0, + .adjfreq = mlx4_en_phc_adjfreq, + .adjtime = mlx4_en_phc_adjtime, + .gettime = mlx4_en_phc_gettime, + .settime = mlx4_en_phc_settime, + .enable = mlx4_en_phc_enable, +}; + void mlx4_en_init_timestamp(struct mlx4_en_dev *mdev) { struct mlx4_dev *dev = mdev->dev; + unsigned long flags; u64 ns; + rwlock_init(&mdev->clock_lock); + memset(&mdev->cycles, 0, sizeof(mdev->cycles)); mdev->cycles.read = mlx4_en_read_clock; mdev->cycles.mask = CLOCKSOURCE_MASK(48); @@ -127,9 +257,12 @@ mdev->cycles.shift = 14; mdev->cycles.mult = clocksource_khz2mult(1000 * dev->caps.hca_core_clock, mdev->cycles.shift); + mdev->nominal_c_mult = mdev->cycles.mult; + write_lock_irqsave(&mdev->clock_lock, flags); timecounter_init(&mdev->clock, &mdev->cycles, ktime_to_ns(ktime_get_real())); + write_unlock_irqrestore(&mdev->clock_lock, flags); /* Calculate period in seconds to call the overflow watchdog - to make * sure counter is checked at least once every wrap around. @@ -137,15 +270,18 @@ ns = cyclecounter_cyc2ns(&mdev->cycles, mdev->cycles.mask); do_div(ns, NSEC_PER_SEC / 2 / HZ); mdev->overflow_period = ns; -} - -void mlx4_en_ptp_overflow_check(struct mlx4_en_dev *mdev) -{ - bool timeout = time_is_before_jiffies(mdev->last_overflow_check + - mdev->overflow_period); - if (timeout) { - timecounter_read(&mdev->clock); - mdev->last_overflow_check = jiffies; + /* Configure the PHC */ + mdev->ptp_clock_info = mlx4_en_ptp_clock_info; + snprintf(mdev->ptp_clock_info.name, 16, "mlx4 ptp"); + + mdev->ptp_clock = ptp_clock_register(&mdev->ptp_clock_info, + &mdev->pdev->dev); + if (IS_ERR(mdev->ptp_clock)) { + mdev->ptp_clock = NULL; + mlx4_err(mdev, "ptp_clock_register failed\n"); + } else { + mlx4_info(mdev, "registered PHC clock\n"); } + } --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/en_cq.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/en_cq.c @@ -31,6 +31,7 @@ * */ +#include #include #include #include @@ -66,7 +67,6 @@ cq->ring = ring; cq->is_tx = mode; - spin_lock_init(&cq->lock); /* Allocate HW buffers on provided NUMA node. * dev->numa_node is used in mtt range allocation flow. @@ -130,11 +130,16 @@ "%s ,Falling back to legacy EQ's\n", name); } + } } else { cq->vector = (cq->ring + 1 + priv->port) % mdev->dev->caps.num_comp_vectors; } + + cq->irq_desc = + irq_to_desc(mlx4_eq_get_irq(mdev->dev, + cq->vector)); } else { /* For TX we use the same irq per ring we assigned for the RX */ @@ -161,12 +166,23 @@ cq->mcq.comp = cq->is_tx ? mlx4_en_tx_irq : mlx4_en_rx_irq; cq->mcq.event = mlx4_en_cq_event; - if (!cq->is_tx) { + if (cq->is_tx) { + netif_napi_add(cq->dev, &cq->napi, mlx4_en_poll_tx_cq, + NAPI_POLL_WEIGHT); + } else { + struct mlx4_en_rx_ring *ring = priv->rx_ring[cq->ring]; + + err = irq_set_affinity_hint(cq->mcq.irq, + ring->affinity_mask); + if (err) + mlx4_warn(mdev, "Failed setting affinity hint\n"); + netif_napi_add(cq->dev, &cq->napi, mlx4_en_poll_rx_cq, 64); napi_hash_add(&cq->napi); - napi_enable(&cq->napi); } + napi_enable(&cq->napi); + return 0; } @@ -177,8 +193,9 @@ mlx4_en_unmap_buffer(&cq->wqres.buf); mlx4_free_hwq_res(mdev->dev, &cq->wqres, cq->buf_size); - if (priv->mdev->dev->caps.comp_pool && cq->vector) + if (priv->mdev->dev->caps.comp_pool && cq->vector) { mlx4_release_eq(priv->mdev->dev, cq->vector); + } cq->vector = 0; cq->buf_size = 0; cq->buf = NULL; @@ -188,12 +205,13 @@ void mlx4_en_deactivate_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq) { + napi_disable(&cq->napi); if (!cq->is_tx) { - napi_disable(&cq->napi); napi_hash_del(&cq->napi); synchronize_rcu(); - netif_napi_del(&cq->napi); + irq_set_affinity_hint(cq->mcq.irq, NULL); } + netif_napi_del(&cq->napi); mlx4_cq_free(priv->mdev->dev, &cq->mcq); } --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/en_dcb_nl.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/en_dcb_nl.c @@ -62,7 +62,7 @@ int has_ets_tc = 0; for (i = 0; i < IEEE_8021QAZ_MAX_TCS; i++) { - if (ets->prio_tc[i] > MLX4_EN_NUM_UP) { + if (ets->prio_tc[i] >= MLX4_EN_NUM_UP) { en_err(priv, "Bad priority in UP <=> TC mapping. TC: %d, UP: %d\n", i, ets->prio_tc[i]); return -EINVAL; --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -98,6 +99,10 @@ drvinfo->eedump_len = 0; } +static const char mlx4_en_priv_flags[][ETH_GSTRING_LEN] = { + "blueflame", +}; + static const char main_strings[][ETH_GSTRING_LEN] = { "rx_packets", "tx_packets", "rx_bytes", "tx_bytes", "rx_errors", "tx_errors", "rx_dropped", "tx_dropped", "multicast", "collisions", @@ -235,6 +240,8 @@ case ETH_SS_TEST: return MLX4_EN_NUM_SELF_TEST - !(priv->mdev->dev->caps.flags & MLX4_DEV_CAP_FLAG_UC_LOOPBACK) * 2; + case ETH_SS_PRIV_FLAGS: + return ARRAY_SIZE(mlx4_en_priv_flags); default: return -EOPNOTSUPP; } @@ -358,10 +365,311 @@ #endif } break; + case ETH_SS_PRIV_FLAGS: + for (i = 0; i < ARRAY_SIZE(mlx4_en_priv_flags); i++) + strcpy(data + i * ETH_GSTRING_LEN, + mlx4_en_priv_flags[i]); + break; + } } -static int mlx4_en_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) +static u32 mlx4_en_autoneg_get(struct net_device *dev) +{ + struct mlx4_en_priv *priv = netdev_priv(dev); + struct mlx4_en_dev *mdev = priv->mdev; + u32 autoneg = AUTONEG_DISABLE; + + if ((mdev->dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_ETH_BACKPL_AN_REP) && + (priv->port_state.flags & MLX4_EN_PORT_ANE)) + autoneg = AUTONEG_ENABLE; + + return autoneg; +} + +static u32 ptys_get_supported_port(struct mlx4_ptys_reg *ptys_reg) +{ + u32 eth_proto = be32_to_cpu(ptys_reg->eth_proto_cap); + + if (eth_proto & (MLX4_PROT_MASK(MLX4_10GBASE_T) + | MLX4_PROT_MASK(MLX4_1000BASE_T) + | MLX4_PROT_MASK(MLX4_100BASE_TX))) { + return SUPPORTED_TP; + } + + if (eth_proto & (MLX4_PROT_MASK(MLX4_10GBASE_CR) + | MLX4_PROT_MASK(MLX4_10GBASE_SR) + | MLX4_PROT_MASK(MLX4_56GBASE_SR4) + | MLX4_PROT_MASK(MLX4_40GBASE_CR4) + | MLX4_PROT_MASK(MLX4_40GBASE_SR4) + | MLX4_PROT_MASK(MLX4_1000BASE_CX_SGMII))) { + return SUPPORTED_FIBRE; + } + + if (eth_proto & (MLX4_PROT_MASK(MLX4_56GBASE_KR4) + | MLX4_PROT_MASK(MLX4_40GBASE_KR4) + | MLX4_PROT_MASK(MLX4_20GBASE_KR2) + | MLX4_PROT_MASK(MLX4_10GBASE_KR) + | MLX4_PROT_MASK(MLX4_10GBASE_KX4) + | MLX4_PROT_MASK(MLX4_1000BASE_KX))) { + return SUPPORTED_Backplane; + } + return 0; +} + +static u32 ptys_get_active_port(struct mlx4_ptys_reg *ptys_reg) +{ + u32 eth_proto = be32_to_cpu(ptys_reg->eth_proto_oper); + + if (!eth_proto) /* link down */ + eth_proto = be32_to_cpu(ptys_reg->eth_proto_cap); + + if (eth_proto & (MLX4_PROT_MASK(MLX4_10GBASE_T) + | MLX4_PROT_MASK(MLX4_1000BASE_T) + | MLX4_PROT_MASK(MLX4_100BASE_TX))) { + return PORT_TP; + } + + if (eth_proto & (MLX4_PROT_MASK(MLX4_10GBASE_SR) + | MLX4_PROT_MASK(MLX4_56GBASE_SR4) + | MLX4_PROT_MASK(MLX4_40GBASE_SR4) + | MLX4_PROT_MASK(MLX4_1000BASE_CX_SGMII))) { + return PORT_FIBRE; + } + + if (eth_proto & (MLX4_PROT_MASK(MLX4_10GBASE_CR) + | MLX4_PROT_MASK(MLX4_56GBASE_CR4) + | MLX4_PROT_MASK(MLX4_40GBASE_CR4))) { + return PORT_DA; + } + + if (eth_proto & (MLX4_PROT_MASK(MLX4_56GBASE_KR4) + | MLX4_PROT_MASK(MLX4_40GBASE_KR4) + | MLX4_PROT_MASK(MLX4_20GBASE_KR2) + | MLX4_PROT_MASK(MLX4_10GBASE_KR) + | MLX4_PROT_MASK(MLX4_10GBASE_KX4) + | MLX4_PROT_MASK(MLX4_1000BASE_KX))) { + return PORT_NONE; + } + return PORT_OTHER; +} + +#define MLX4_LINK_MODES_SZ \ + (FIELD_SIZEOF(struct mlx4_ptys_reg, eth_proto_cap) * 8) + +enum ethtool_report { + SUPPORTED = 0, + ADVERTISED = 1, + SPEED = 2 +}; + +/* Translates mlx4 link mode to equivalent ethtool Link modes/speed */ +static u32 ptys2ethtool_map[MLX4_LINK_MODES_SZ][3] = { + [MLX4_100BASE_TX] = { + SUPPORTED_100baseT_Full, + ADVERTISED_100baseT_Full, + SPEED_100 + }, + + [MLX4_1000BASE_T] = { + SUPPORTED_1000baseT_Full, + ADVERTISED_1000baseT_Full, + SPEED_1000 + }, + [MLX4_1000BASE_CX_SGMII] = { + SUPPORTED_1000baseKX_Full, + ADVERTISED_1000baseKX_Full, + SPEED_1000 + }, + [MLX4_1000BASE_KX] = { + SUPPORTED_1000baseKX_Full, + ADVERTISED_1000baseKX_Full, + SPEED_1000 + }, + + [MLX4_10GBASE_T] = { + SUPPORTED_10000baseT_Full, + ADVERTISED_10000baseT_Full, + SPEED_10000 + }, + [MLX4_10GBASE_CX4] = { + SUPPORTED_10000baseKX4_Full, + ADVERTISED_10000baseKX4_Full, + SPEED_10000 + }, + [MLX4_10GBASE_KX4] = { + SUPPORTED_10000baseKX4_Full, + ADVERTISED_10000baseKX4_Full, + SPEED_10000 + }, + [MLX4_10GBASE_KR] = { + SUPPORTED_10000baseKR_Full, + ADVERTISED_10000baseKR_Full, + SPEED_10000 + }, + [MLX4_10GBASE_CR] = { + SUPPORTED_10000baseKR_Full, + ADVERTISED_10000baseKR_Full, + SPEED_10000 + }, + [MLX4_10GBASE_SR] = { + SUPPORTED_10000baseKR_Full, + ADVERTISED_10000baseKR_Full, + SPEED_10000 + }, + + [MLX4_20GBASE_KR2] = { + SUPPORTED_20000baseMLD2_Full | SUPPORTED_20000baseKR2_Full, + ADVERTISED_20000baseMLD2_Full | ADVERTISED_20000baseKR2_Full, + SPEED_20000 + }, + + [MLX4_40GBASE_CR4] = { + SUPPORTED_40000baseCR4_Full, + ADVERTISED_40000baseCR4_Full, + SPEED_40000 + }, + [MLX4_40GBASE_KR4] = { + SUPPORTED_40000baseKR4_Full, + ADVERTISED_40000baseKR4_Full, + SPEED_40000 + }, + [MLX4_40GBASE_SR4] = { + SUPPORTED_40000baseSR4_Full, + ADVERTISED_40000baseSR4_Full, + SPEED_40000 + }, + + [MLX4_56GBASE_KR4] = { + SUPPORTED_56000baseKR4_Full, + ADVERTISED_56000baseKR4_Full, + SPEED_56000 + }, + [MLX4_56GBASE_CR4] = { + SUPPORTED_56000baseCR4_Full, + ADVERTISED_56000baseCR4_Full, + SPEED_56000 + }, + [MLX4_56GBASE_SR4] = { + SUPPORTED_56000baseSR4_Full, + ADVERTISED_56000baseSR4_Full, + SPEED_56000 + }, +}; + +static u32 ptys2ethtool_link_modes(u32 eth_proto, enum ethtool_report report) +{ + int i; + u32 link_modes = 0; + + for (i = 0; i < MLX4_LINK_MODES_SZ; i++) { + if (eth_proto & MLX4_PROT_MASK(i)) + link_modes |= ptys2ethtool_map[i][report]; + } + return link_modes; +} + +static u32 ethtool2ptys_link_modes(u32 link_modes, enum ethtool_report report) +{ + int i; + u32 ptys_modes = 0; + + for (i = 0; i < MLX4_LINK_MODES_SZ; i++) { + if (ptys2ethtool_map[i][report] & link_modes) + ptys_modes |= 1 << i; + } + return ptys_modes; +} + +/* Convert actual speed (SPEED_XXX) to ptys link modes */ +static u32 speed2ptys_link_modes(u32 speed) +{ + int i; + u32 ptys_modes = 0; + + for (i = 0; i < MLX4_LINK_MODES_SZ; i++) { + if (ptys2ethtool_map[i][SPEED] == speed) + ptys_modes |= 1 << i; + } + return ptys_modes; +} + +static int ethtool_get_ptys_settings(struct net_device *dev, + struct ethtool_cmd *cmd) +{ + struct mlx4_en_priv *priv = netdev_priv(dev); + struct mlx4_ptys_reg ptys_reg; + u32 eth_proto; + int ret; + + memset(&ptys_reg, 0, sizeof(ptys_reg)); + ptys_reg.local_port = priv->port; + ptys_reg.proto_mask = MLX4_PTYS_EN; + ret = mlx4_ACCESS_PTYS_REG(priv->mdev->dev, + MLX4_ACCESS_REG_QUERY, &ptys_reg); + if (ret) { + en_warn(priv, "Failed to run mlx4_ACCESS_PTYS_REG status(%x)", + ret); + return ret; + } + en_dbg(DRV, priv, "ptys_reg.proto_mask %x\n", + ptys_reg.proto_mask); + en_dbg(DRV, priv, "ptys_reg.eth_proto_cap %x\n", + be32_to_cpu(ptys_reg.eth_proto_cap)); + en_dbg(DRV, priv, "ptys_reg.eth_proto_admin %x\n", + be32_to_cpu(ptys_reg.eth_proto_admin)); + en_dbg(DRV, priv, "ptys_reg.eth_proto_oper %x\n", + be32_to_cpu(ptys_reg.eth_proto_oper)); + en_dbg(DRV, priv, "ptys_reg.eth_proto_lp_adv %x\n", + be32_to_cpu(ptys_reg.eth_proto_lp_adv)); + + cmd->supported = 0; + cmd->advertising = 0; + + cmd->supported |= ptys_get_supported_port(&ptys_reg); + + eth_proto = be32_to_cpu(ptys_reg.eth_proto_cap); + cmd->supported |= ptys2ethtool_link_modes(eth_proto, SUPPORTED); + + eth_proto = be32_to_cpu(ptys_reg.eth_proto_admin); + cmd->advertising |= ptys2ethtool_link_modes(eth_proto, ADVERTISED); + + cmd->supported |= SUPPORTED_Pause | SUPPORTED_Asym_Pause; + cmd->advertising |= (priv->prof->tx_pause) ? ADVERTISED_Pause : 0; + + cmd->advertising |= (priv->prof->tx_pause ^ priv->prof->rx_pause) ? + ADVERTISED_Asym_Pause : 0; + + cmd->port = ptys_get_active_port(&ptys_reg); + cmd->transceiver = (SUPPORTED_TP & cmd->supported) ? + XCVR_EXTERNAL : XCVR_INTERNAL; + + if (mlx4_en_autoneg_get(dev)) { + cmd->supported |= SUPPORTED_Autoneg; + cmd->advertising |= ADVERTISED_Autoneg; + } + + cmd->autoneg = (priv->port_state.flags & MLX4_EN_PORT_ANC) ? + AUTONEG_ENABLE : AUTONEG_DISABLE; + + eth_proto = be32_to_cpu(ptys_reg.eth_proto_lp_adv); + cmd->lp_advertising = ptys2ethtool_link_modes(eth_proto, ADVERTISED); + + cmd->lp_advertising |= (priv->port_state.flags & MLX4_EN_PORT_ANC) ? + ADVERTISED_Autoneg : 0; + + cmd->phy_address = 0; + cmd->mdio_support = 0; + cmd->maxtxpkt = 0; + cmd->maxrxpkt = 0; + cmd->eth_tp_mdix = ETH_TP_MDI_INVALID; + cmd->eth_tp_mdix_ctrl = ETH_TP_MDI_AUTO; + + return ret; +} + +static void ethtool_get_default_settings(struct net_device *dev, + struct ethtool_cmd *cmd) { struct mlx4_en_priv *priv = netdev_priv(dev); int trans_type; @@ -369,18 +677,7 @@ cmd->autoneg = AUTONEG_DISABLE; cmd->supported = SUPPORTED_10000baseT_Full; cmd->advertising = ADVERTISED_10000baseT_Full; - - if (mlx4_en_QUERY_PORT(priv->mdev, priv->port)) - return -ENOMEM; - - trans_type = priv->port_state.transciver; - if (netif_carrier_ok(dev)) { - ethtool_cmd_speed_set(cmd, priv->port_state.link_speed); - cmd->duplex = DUPLEX_FULL; - } else { - ethtool_cmd_speed_set(cmd, -1); - cmd->duplex = -1; - } + trans_type = priv->port_state.transceiver; if (trans_type > 0 && trans_type <= 0xC) { cmd->port = PORT_FIBRE; @@ -396,17 +693,118 @@ cmd->port = -1; cmd->transceiver = -1; } +} + +static int mlx4_en_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) +{ + struct mlx4_en_priv *priv = netdev_priv(dev); + int ret = -EINVAL; + + if (mlx4_en_QUERY_PORT(priv->mdev, priv->port)) + return -ENOMEM; + + en_dbg(DRV, priv, "query port state.flags ANC(%x) ANE(%x)\n", + priv->port_state.flags & MLX4_EN_PORT_ANC, + priv->port_state.flags & MLX4_EN_PORT_ANE); + + if (priv->mdev->dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_ETH_PROT_CTRL) + ret = ethtool_get_ptys_settings(dev, cmd); + if (ret) /* ETH PROT CRTL is not supported or PTYS CMD failed */ + ethtool_get_default_settings(dev, cmd); + + if (netif_carrier_ok(dev)) { + ethtool_cmd_speed_set(cmd, priv->port_state.link_speed); + cmd->duplex = DUPLEX_FULL; + } else { + ethtool_cmd_speed_set(cmd, SPEED_UNKNOWN); + cmd->duplex = DUPLEX_UNKNOWN; + } return 0; } +/* Calculate PTYS admin according ethtool speed (SPEED_XXX) */ +static __be32 speed_set_ptys_admin(struct mlx4_en_priv *priv, u32 speed, + __be32 proto_cap) +{ + __be32 proto_admin = 0; + + if (!speed) { /* Speed = 0 ==> Reset Link modes */ + proto_admin = proto_cap; + en_info(priv, "Speed was set to 0, Reset advertised Link Modes to default (%x)\n", + be32_to_cpu(proto_cap)); + } else { + u32 ptys_link_modes = speed2ptys_link_modes(speed); + + proto_admin = cpu_to_be32(ptys_link_modes) & proto_cap; + en_info(priv, "Setting Speed to %d\n", speed); + } + return proto_admin; +} + static int mlx4_en_set_settings(struct net_device *dev, struct ethtool_cmd *cmd) { - if ((cmd->autoneg == AUTONEG_ENABLE) || - (ethtool_cmd_speed(cmd) != SPEED_10000) || - (cmd->duplex != DUPLEX_FULL)) + struct mlx4_en_priv *priv = netdev_priv(dev); + struct mlx4_ptys_reg ptys_reg; + __be32 proto_admin; + int ret; + + u32 ptys_adv = ethtool2ptys_link_modes(cmd->advertising, ADVERTISED); + int speed = ethtool_cmd_speed(cmd); + + en_dbg(DRV, priv, "Set Speed=%d adv=0x%x autoneg=%d duplex=%d\n", + speed, cmd->advertising, cmd->autoneg, cmd->duplex); + + if (!(priv->mdev->dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_ETH_PROT_CTRL) || + (cmd->duplex == DUPLEX_HALF)) return -EINVAL; - /* Nothing to change */ + memset(&ptys_reg, 0, sizeof(ptys_reg)); + ptys_reg.local_port = priv->port; + ptys_reg.proto_mask = MLX4_PTYS_EN; + ret = mlx4_ACCESS_PTYS_REG(priv->mdev->dev, + MLX4_ACCESS_REG_QUERY, &ptys_reg); + if (ret) { + en_warn(priv, "Failed to QUERY mlx4_ACCESS_PTYS_REG status(%x)\n", + ret); + return 0; + } + + proto_admin = cpu_to_be32(ptys_adv); + if (speed >= 0 && speed != priv->port_state.link_speed) + /* If speed was set then speed decides :-) */ + proto_admin = speed_set_ptys_admin(priv, speed, + ptys_reg.eth_proto_cap); + + proto_admin &= ptys_reg.eth_proto_cap; + + if (proto_admin == ptys_reg.eth_proto_admin) + return 0; /* Nothing to change */ + + if (!proto_admin) { + en_warn(priv, "Not supported link mode(s) requested, check supported link modes.\n"); + return -EINVAL; /* nothing to change due to bad input */ + } + + en_dbg(DRV, priv, "mlx4_ACCESS_PTYS_REG SET: ptys_reg.eth_proto_admin = 0x%x\n", + be32_to_cpu(proto_admin)); + + ptys_reg.eth_proto_admin = proto_admin; + ret = mlx4_ACCESS_PTYS_REG(priv->mdev->dev, MLX4_ACCESS_REG_WRITE, + &ptys_reg); + if (ret) { + en_warn(priv, "Failed to write mlx4_ACCESS_PTYS_REG eth_proto_admin(0x%x) status(0x%x)", + be32_to_cpu(ptys_reg.eth_proto_admin), ret); + return ret; + } + + en_warn(priv, "Port link mode changed, restarting port...\n"); + mutex_lock(&priv->mdev->state_lock); + if (priv->port_up) { + mlx4_en_stop_port(dev, 1); + if (mlx4_en_start_port(dev)) + en_err(priv, "Failed restarting port %d\n", priv->port); + } + mutex_unlock(&priv->mdev->state_lock); return 0; } @@ -1193,11 +1591,137 @@ info->rx_filters = (1 << HWTSTAMP_FILTER_NONE) | (1 << HWTSTAMP_FILTER_ALL); + + if (mdev->ptp_clock) + info->phc_index = ptp_clock_index(mdev->ptp_clock); } return ret; } +int mlx4_en_set_priv_flags(struct net_device *dev, u32 flags) +{ + struct mlx4_en_priv *priv = netdev_priv(dev); + bool bf_enabled_new = !!(flags & MLX4_EN_PRIV_FLAGS_BLUEFLAME); + bool bf_enabled_old = !!(priv->pflags & MLX4_EN_PRIV_FLAGS_BLUEFLAME); + int i; + + if (bf_enabled_new == bf_enabled_old) + return 0; /* Nothing to do */ + + if (bf_enabled_new) { + bool bf_supported = true; + + for (i = 0; i < priv->tx_ring_num; i++) + bf_supported &= priv->tx_ring[i]->bf_alloced; + + if (!bf_supported) { + en_err(priv, "BlueFlame is not supported\n"); + return -EINVAL; + } + + priv->pflags |= MLX4_EN_PRIV_FLAGS_BLUEFLAME; + } else { + priv->pflags &= ~MLX4_EN_PRIV_FLAGS_BLUEFLAME; + } + + for (i = 0; i < priv->tx_ring_num; i++) + priv->tx_ring[i]->bf_enabled = bf_enabled_new; + + en_info(priv, "BlueFlame %s\n", + bf_enabled_new ? "Enabled" : "Disabled"); + + return 0; +} + +u32 mlx4_en_get_priv_flags(struct net_device *dev) +{ + struct mlx4_en_priv *priv = netdev_priv(dev); + + return priv->pflags; +} + +static int mlx4_en_get_module_info(struct net_device *dev, + struct ethtool_modinfo *modinfo) +{ + struct mlx4_en_priv *priv = netdev_priv(dev); + struct mlx4_en_dev *mdev = priv->mdev; + int ret; + u8 data[4]; + + /* Read first 2 bytes to get Module & REV ID */ + ret = mlx4_get_module_info(mdev->dev, priv->port, + 0/*offset*/, 2/*size*/, data); + if (ret < 2) + return -EIO; + + switch (data[0] /* identifier */) { + case MLX4_MODULE_ID_QSFP: + modinfo->type = ETH_MODULE_SFF_8436; + modinfo->eeprom_len = ETH_MODULE_SFF_8436_LEN; + break; + case MLX4_MODULE_ID_QSFP_PLUS: + if (data[1] >= 0x3) { /* revision id */ + modinfo->type = ETH_MODULE_SFF_8636; + modinfo->eeprom_len = ETH_MODULE_SFF_8636_LEN; + } else { + modinfo->type = ETH_MODULE_SFF_8436; + modinfo->eeprom_len = ETH_MODULE_SFF_8436_LEN; + } + break; + case MLX4_MODULE_ID_QSFP28: + modinfo->type = ETH_MODULE_SFF_8636; + modinfo->eeprom_len = ETH_MODULE_SFF_8636_LEN; + break; + case MLX4_MODULE_ID_SFP: + modinfo->type = ETH_MODULE_SFF_8472; + modinfo->eeprom_len = ETH_MODULE_SFF_8472_LEN; + break; + default: + return -ENOSYS; + } + + return 0; +} + +static int mlx4_en_get_module_eeprom(struct net_device *dev, + struct ethtool_eeprom *ee, + u8 *data) +{ + struct mlx4_en_priv *priv = netdev_priv(dev); + struct mlx4_en_dev *mdev = priv->mdev; + int offset = ee->offset; + int i = 0, ret; + + if (ee->len == 0) + return -EINVAL; + + memset(data, 0, ee->len); + + while (i < ee->len) { + en_dbg(DRV, priv, + "mlx4_get_module_info i(%d) offset(%d) len(%d)\n", + i, offset, ee->len - i); + + ret = mlx4_get_module_info(mdev->dev, priv->port, + offset, ee->len - i, data + i); + + if (!ret) /* Done reading */ + return 0; + + if (ret < 0) { + en_err(priv, + "mlx4_get_module_info i(%d) offset(%d) bytes_to_read(%d) - FAILED (0x%x)\n", + i, offset, ee->len - i, ret); + return 0; + } + + i += ret; + offset += ret; + } + return 0; +} + const struct ethtool_ops mlx4_en_ethtool_ops = { .get_drvinfo = mlx4_en_get_drvinfo, .get_settings = mlx4_en_get_settings, @@ -1225,6 +1749,10 @@ .get_channels = mlx4_en_get_channels, .set_channels = mlx4_en_set_channels, .get_ts_info = mlx4_en_get_ts_info, + .set_priv_flags = mlx4_en_set_priv_flags, + .get_priv_flags = mlx4_en_get_priv_flags, + .get_module_info = mlx4_en_get_module_info, + .get_module_eeprom = mlx4_en_get_module_eeprom }; --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/en_main.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/en_main.c @@ -72,6 +72,12 @@ MLX4_EN_PARM_INT(pfcrx, 0, "Priority based Flow Control policy on RX[7:0]." " Per priority bit mask"); +MLX4_EN_PARM_INT(inline_thold, MAX_INLINE, + "Threshold for using inline data (range: 17-104, default: 104)"); + +#define MAX_PFC_TX 0xff +#define MAX_PFC_RX 0xff + int en_print(const char *level, const struct mlx4_en_priv *priv, const char *format, ...) { @@ -123,8 +129,10 @@ int i; params->udp_rss = udp_rss; - params->num_tx_rings_p_up = min_t(int, num_online_cpus(), - MLX4_EN_MAX_TX_RING_P_UP); + params->num_tx_rings_p_up = mlx4_low_memory_profile() ? + MLX4_EN_MIN_TX_RING_P_UP : + min_t(int, num_online_cpus(), MLX4_EN_MAX_TX_RING_P_UP); + if (params->udp_rss && !(mdev->dev->caps.flags & MLX4_DEV_CAP_FLAG_UDP_RSS)) { mlx4_warn(mdev, "UDP RSS is not supported on this device.\n"); @@ -140,6 +148,7 @@ params->prof[i].tx_ring_num = params->num_tx_rings_p_up * MLX4_EN_NUM_UP; params->prof[i].rss_rings = 0; + params->prof[i].inline_thold = inline_thold; } return 0; @@ -174,6 +183,9 @@ mlx4_err(mdev, "Internal error detected, restarting device\n"); break; + case MLX4_DEV_EVENT_SLAVE_INIT: + case MLX4_DEV_EVENT_SLAVE_SHUTDOWN: + break; default: if (port < 1 || port > dev->caps.num_ports || !mdev->pndev[port]) @@ -196,6 +208,9 @@ if (mdev->pndev[i]) mlx4_en_destroy_netdev(mdev->pndev[i]); + if (mdev->dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_TS) + mlx4_en_remove_timestamp(mdev); + flush_workqueue(mdev->workqueue); destroy_workqueue(mdev->workqueue); (void) mlx4_mr_free(dev, &mdev->mr); @@ -268,19 +283,8 @@ if (mdev->dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_TS) mlx4_en_init_timestamp(mdev); - mlx4_foreach_port(i, dev, MLX4_PORT_TYPE_ETH) { - if (!dev->caps.comp_pool) { - mdev->profile.prof[i].rx_ring_num = - rounddown_pow_of_two(max_t(int, MIN_RX_RINGS, - min_t(int, - dev->caps.num_comp_vectors, - DEF_RX_RINGS))); - } else { - mdev->profile.prof[i].rx_ring_num = rounddown_pow_of_two( - min_t(int, dev->caps.comp_pool/ - dev->caps.num_ports - 1 , MAX_MSIX_P_PORT - 1)); - } - } + /* Set default number of RX rings*/ + mlx4_en_set_num_rx_rings(mdev); /* Create our own workqueue for reset/multicast tasks * Note: we cannot use the shared workqueue because of deadlocks caused @@ -330,8 +334,31 @@ .protocol = MLX4_PROT_ETH, }; +static void mlx4_en_verify_params(void) +{ + if (pfctx > MAX_PFC_TX) { + pr_warn("mlx4_en: WARNING: illegal module parameter pfctx 0x%x - should be in range 0-0x%x, will be changed to default (0)\n", + pfctx, MAX_PFC_TX); + pfctx = 0; + } + + if (pfcrx > MAX_PFC_RX) { + pr_warn("mlx4_en: WARNING: illegal module parameter pfcrx 0x%x - should be in range 0-0x%x, will be changed to default (0)\n", + pfcrx, MAX_PFC_RX); + pfcrx = 0; + } + + if (inline_thold < MIN_PKT_LEN || inline_thold > MAX_INLINE) { + pr_warn("mlx4_en: WARNING: illegal module parameter inline_thold %d - should be in range %d-%d, will be changed to default (%d)\n", + inline_thold, MIN_PKT_LEN, MAX_INLINE, MAX_INLINE); + inline_thold = MAX_INLINE; + } +} + static int __init mlx4_en_init(void) { + mlx4_en_verify_params(); + return mlx4_register_interface(&mlx4_en_interface); } --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/en_netdev.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/en_netdev.c @@ -39,6 +39,7 @@ #include #include #include +#include #include #include @@ -468,6 +469,53 @@ memset(&dst_mac[ETH_ALEN], 0, 2); } + +static int mlx4_en_tunnel_steer_add(struct mlx4_en_priv *priv, unsigned char *addr, + int qpn, u64 *reg_id) +{ + int err; + struct mlx4_spec_list spec_eth_outer = { {NULL} }; + struct mlx4_spec_list spec_vxlan = { {NULL} }; + struct mlx4_spec_list spec_eth_inner = { {NULL} }; + + struct mlx4_net_trans_rule rule = { + .queue_mode = MLX4_NET_TRANS_Q_FIFO, + .exclusive = 0, + .allow_loopback = 1, + .promisc_mode = MLX4_FS_REGULAR, + .priority = MLX4_DOMAIN_NIC, + }; + + __be64 mac_mask = cpu_to_be64(MLX4_MAC_MASK << 16); + + if (priv->mdev->dev->caps.tunnel_offload_mode != MLX4_TUNNEL_OFFLOAD_MODE_VXLAN) + return 0; /* do nothing */ + + rule.port = priv->port; + rule.qpn = qpn; + INIT_LIST_HEAD(&rule.list); + + spec_eth_outer.id = MLX4_NET_TRANS_RULE_ID_ETH; + memcpy(spec_eth_outer.eth.dst_mac, addr, ETH_ALEN); + memcpy(spec_eth_outer.eth.dst_mac_msk, &mac_mask, ETH_ALEN); + + spec_vxlan.id = MLX4_NET_TRANS_RULE_ID_VXLAN; /* any vxlan header */ + spec_eth_inner.id = MLX4_NET_TRANS_RULE_ID_ETH; /* any inner eth header */ + + list_add_tail(&spec_eth_outer.list, &rule.list); + list_add_tail(&spec_vxlan.list, &rule.list); + list_add_tail(&spec_eth_inner.list, &rule.list); + + err = mlx4_flow_attach(priv->mdev->dev, &rule, reg_id); + if (err) { + en_err(priv, "failed to add vxlan steering rule, err %d\n", err); + return err; + } + en_dbg(DRV, priv, "added vxlan steering rule, mac %pM reg_id %llx\n", addr, *reg_id); + return 0; +} + + static int mlx4_en_uc_steer_add(struct mlx4_en_priv *priv, unsigned char *mac, int *qpn, u64 *reg_id) { @@ -556,7 +604,7 @@ int err = 0; u64 reg_id; int *qpn = &priv->base_qpn; - u64 mac = mlx4_en_mac_to_u64(priv->dev->dev_addr); + u64 mac = mlx4_mac_to_u64(priv->dev->dev_addr); en_dbg(DRV, priv, "Registering MAC: %pM for adding\n", priv->dev->dev_addr); @@ -585,12 +633,18 @@ if (err) goto steer_err; + err = mlx4_en_tunnel_steer_add(priv, priv->dev->dev_addr, *qpn, + &priv->tunnel_reg_id); + if (err) + goto tunnel_err; + entry = kmalloc(sizeof(*entry), GFP_KERNEL); if (!entry) { err = -ENOMEM; goto alloc_err; } memcpy(entry->mac, priv->dev->dev_addr, sizeof(entry->mac)); + memcpy(priv->current_mac, entry->mac, sizeof(priv->current_mac)); entry->reg_id = reg_id; hlist_add_head_rcu(&entry->hlist, @@ -599,6 +653,9 @@ return 0; alloc_err: + if (priv->tunnel_reg_id) + mlx4_flow_detach(priv->mdev->dev, priv->tunnel_reg_id); +tunnel_err: mlx4_en_uc_steer_release(priv, priv->dev->dev_addr, *qpn, reg_id); steer_err: @@ -617,7 +674,7 @@ u64 mac; if (dev->caps.steering_mode == MLX4_STEERING_MODE_A0) { - mac = mlx4_en_mac_to_u64(priv->dev->dev_addr); + mac = mlx4_mac_to_u64(priv->dev->dev_addr); en_dbg(DRV, priv, "Registering MAC: %pM for deleting\n", priv->dev->dev_addr); mlx4_unregister_mac(dev, priv->port, mac); @@ -630,7 +687,7 @@ for (i = 0; i < MLX4_EN_MAC_HASH_SIZE; ++i) { bucket = &priv->mac_hash[i]; hlist_for_each_entry_safe(entry, tmp, bucket, hlist) { - mac = mlx4_en_mac_to_u64(entry->mac); + mac = mlx4_mac_to_u64(entry->mac); en_dbg(DRV, priv, "Registering MAC: %pM for deleting\n", entry->mac); mlx4_en_uc_steer_release(priv, entry->mac, @@ -642,6 +699,11 @@ } } + if (priv->tunnel_reg_id) { + mlx4_flow_detach(priv->mdev->dev, priv->tunnel_reg_id); + priv->tunnel_reg_id = 0; + } + en_dbg(DRV, priv, "Releasing qp: port %d, qpn %d\n", priv->port, qpn); mlx4_qp_release_range(dev, qpn, 1); @@ -655,14 +717,14 @@ struct mlx4_en_dev *mdev = priv->mdev; struct mlx4_dev *dev = mdev->dev; int err = 0; - u64 new_mac_u64 = mlx4_en_mac_to_u64(new_mac); + u64 new_mac_u64 = mlx4_mac_to_u64(new_mac); if (dev->caps.steering_mode != MLX4_STEERING_MODE_A0) { struct hlist_head *bucket; unsigned int mac_hash; struct mlx4_mac_entry *entry; struct hlist_node *tmp; - u64 prev_mac_u64 = mlx4_en_mac_to_u64(prev_mac); + u64 prev_mac_u64 = mlx4_mac_to_u64(prev_mac); bucket = &priv->mac_hash[prev_mac[MLX4_EN_MAC_HASH_IDX]]; hlist_for_each_entry_safe(entry, tmp, bucket, hlist) { @@ -682,6 +744,14 @@ err = mlx4_en_uc_steer_add(priv, new_mac, &qpn, &entry->reg_id); + if (err) + return err; + if (priv->tunnel_reg_id) { + mlx4_flow_detach(priv->mdev->dev, priv->tunnel_reg_id); + priv->tunnel_reg_id = 0; + } + err = mlx4_en_tunnel_steer_add(priv, new_mac, qpn, + &priv->tunnel_reg_id); return err; } } @@ -691,33 +761,23 @@ return __mlx4_replace_mac(dev, priv->port, qpn, new_mac_u64); } -u64 mlx4_en_mac_to_u64(u8 *addr) -{ - u64 mac = 0; - int i; - - for (i = 0; i < ETH_ALEN; i++) { - mac <<= 8; - mac |= addr[i]; - } - return mac; -} - -static int mlx4_en_do_set_mac(struct mlx4_en_priv *priv) +static int mlx4_en_do_set_mac(struct mlx4_en_priv *priv, + unsigned char new_mac[ETH_ALEN + 2]) { int err = 0; if (priv->port_up) { /* Remove old MAC and insert the new one */ err = mlx4_en_replace_mac(priv, priv->base_qpn, - priv->dev->dev_addr, priv->prev_mac); + new_mac, priv->current_mac); if (err) en_err(priv, "Failed changing HW MAC address\n"); - memcpy(priv->prev_mac, priv->dev->dev_addr, - sizeof(priv->prev_mac)); } else en_dbg(HW, priv, "Port is down while registering mac, exiting...\n"); + if (!err) + memcpy(priv->current_mac, new_mac, sizeof(priv->current_mac)); + return err; } @@ -726,15 +786,17 @@ struct mlx4_en_priv *priv = netdev_priv(dev); struct mlx4_en_dev *mdev = priv->mdev; struct sockaddr *saddr = addr; + unsigned char new_mac[ETH_ALEN + 2]; int err; if (!is_valid_ether_addr(saddr->sa_data)) return -EADDRNOTAVAIL; - memcpy(dev->dev_addr, saddr->sa_data, ETH_ALEN); - mutex_lock(&mdev->state_lock); - err = mlx4_en_do_set_mac(priv); + memcpy(new_mac, saddr->sa_data, ETH_ALEN); + err = mlx4_en_do_set_mac(priv, new_mac); + if (!err) + memcpy(dev->dev_addr, saddr->sa_data, ETH_ALEN); mutex_unlock(&mdev->state_lock); return err; @@ -782,7 +844,7 @@ list_for_each_entry(dst_tmp, dst, list) { found = false; list_for_each_entry(src_tmp, src, list) { - if (!memcmp(dst_tmp->addr, src_tmp->addr, ETH_ALEN)) { + if (ether_addr_equal(dst_tmp->addr, src_tmp->addr)) { found = true; break; } @@ -797,7 +859,7 @@ list_for_each_entry(src_tmp, src, list) { found = false; list_for_each_entry(dst_tmp, dst, list) { - if (!memcmp(dst_tmp->addr, src_tmp->addr, ETH_ALEN)) { + if (ether_addr_equal(dst_tmp->addr, src_tmp->addr)) { dst_tmp->action = MCLIST_NONE; found = true; break; @@ -1021,7 +1083,7 @@ mlx4_en_cache_mclist(dev); netif_addr_unlock_bh(dev); list_for_each_entry(mclist, &priv->mc_list, list) { - mcast_addr = mlx4_en_mac_to_u64(mclist->addr); + mcast_addr = mlx4_mac_to_u64(mclist->addr); mlx4_SET_MCAST_FLTR(mdev->dev, priv->port, mcast_addr, 0, MLX4_MCAST_CONFIG); } @@ -1044,6 +1106,12 @@ if (err) en_err(priv, "Fail to detach multicast address\n"); + if (mclist->tunnel_reg_id) { + err = mlx4_flow_detach(priv->mdev->dev, mclist->tunnel_reg_id); + if (err) + en_err(priv, "Failed to detach multicast address\n"); + } + /* remove from list */ list_del(&mclist->list); kfree(mclist); @@ -1061,6 +1129,10 @@ if (err) en_err(priv, "Fail to attach multicast address\n"); + err = mlx4_en_tunnel_steer_add(priv, &mc_list[10], priv->base_qpn, + &mclist->tunnel_reg_id); + if (err) + en_err(priv, "Failed to attach multicast address\n"); } } } @@ -1099,11 +1171,12 @@ } /* MAC address of the port is not in uc list */ - if (ether_addr_equal_64bits(entry->mac, dev->dev_addr)) + if (ether_addr_equal_64bits(entry->mac, + priv->current_mac)) found = true; if (!found) { - mac = mlx4_en_mac_to_u64(entry->mac); + mac = mlx4_mac_to_u64(entry->mac); mlx4_en_uc_steer_release(priv, entry->mac, priv->base_qpn, entry->reg_id); @@ -1146,7 +1219,7 @@ priv->flags |= MLX4_EN_FLAG_FORCE_PROMISC; break; } - mac = mlx4_en_mac_to_u64(ha->addr); + mac = mlx4_mac_to_u64(ha->addr); memcpy(entry->mac, ha->addr, ETH_ALEN); err = mlx4_register_mac(mdev->dev, priv->port, mac); if (err < 0) { @@ -1237,15 +1310,11 @@ { struct mlx4_en_priv *priv = netdev_priv(dev); struct mlx4_en_cq *cq; - unsigned long flags; int i; for (i = 0; i < priv->rx_ring_num; i++) { cq = priv->rx_cq[i]; - spin_lock_irqsave(&cq->lock, flags); - napi_synchronize(&cq->napi); - mlx4_en_process_rx_cq(dev, cq, 0); - spin_unlock_irqrestore(&cq->lock, flags); + napi_schedule(&cq->napi); } } #endif @@ -1413,7 +1482,7 @@ queue_delayed_work(mdev->workqueue, &priv->stats_task, STATS_DELAY); } if (mdev->mac_removed[MLX4_MAX_PORTS + 1 - priv->port]) { - mlx4_en_do_set_mac(priv); + mlx4_en_do_set_mac(priv, priv->current_mac); mdev->mac_removed[MLX4_MAX_PORTS + 1 - priv->port] = 0; } mutex_unlock(&mdev->state_lock); @@ -1463,6 +1532,27 @@ mutex_unlock(&mdev->state_lock); } +static int mlx4_en_init_affinity_hint(struct mlx4_en_priv *priv, int ring_idx) +{ + struct mlx4_en_rx_ring *ring = priv->rx_ring[ring_idx]; + int numa_node = priv->mdev->dev->numa_node; + int ret = 0; + + if (!zalloc_cpumask_var(&ring->affinity_mask, GFP_KERNEL)) + return -ENOMEM; + + ret = cpumask_set_cpu_local_first(ring_idx, numa_node, + ring->affinity_mask); + if (ret) + free_cpumask_var(ring->affinity_mask); + + return ret; +} + +static void mlx4_en_free_affinity_hint(struct mlx4_en_priv *priv, int ring_idx) +{ + free_cpumask_var(priv->rx_ring[ring_idx]->affinity_mask); +} int mlx4_en_start_port(struct net_device *dev) { @@ -1504,9 +1594,16 @@ mlx4_en_cq_init_lock(cq); + err = mlx4_en_init_affinity_hint(priv, i); + if (err) { + en_err(priv, "Failed preparing IRQ affinity hint\n"); + goto cq_err; + } + err = mlx4_en_activate_cq(priv, cq, i); if (err) { en_err(priv, "Failed activating Rx CQ\n"); + mlx4_en_free_affinity_hint(priv, i); goto cq_err; } for (j = 0; j < cq->size; j++) @@ -1515,6 +1612,7 @@ if (err) { en_err(priv, "Failed setting cq moderation parameters"); mlx4_en_deactivate_cq(priv, cq); + mlx4_en_free_affinity_hint(priv, i); goto cq_err; } mlx4_en_arm_cq(priv, cq); @@ -1598,6 +1696,15 @@ goto tx_err; } + if (mdev->dev->caps.tunnel_offload_mode == MLX4_TUNNEL_OFFLOAD_MODE_VXLAN) { + err = mlx4_SET_PORT_VXLAN(mdev->dev, priv->port, VXLAN_STEER_BY_OUTER_MAC, 1); + if (err) { + en_err(priv, "Failed setting port L2 tunnel configuration, err %d\n", + err); + goto tx_err; + } + } + /* Init port */ en_dbg(HW, priv, "Initializing port\n"); err = mlx4_INIT_PORT(mdev->dev, priv->port); @@ -1622,6 +1729,10 @@ mlx4_set_stats_bitmap(mdev->dev, &priv->stats_bitmap); +#ifdef CONFIG_MLX4_EN_VXLAN + if (priv->mdev->dev->caps.tunnel_offload_mode == MLX4_TUNNEL_OFFLOAD_MODE_VXLAN) + vxlan_get_rx_port(dev); +#endif priv->port_up = true; netif_tx_start_all_queues(dev); netif_device_attach(dev); @@ -1639,8 +1750,10 @@ mac_err: mlx4_en_put_qp(priv); cq_err: - while (rx_index--) + while (rx_index--) { mlx4_en_deactivate_cq(priv, priv->rx_cq[rx_index]); + mlx4_en_free_affinity_hint(priv, i); + } for (i = 0; i < priv->rx_ring_num; i++) mlx4_en_deactivate_rx_ring(priv, priv->rx_ring[i]); @@ -1713,6 +1826,8 @@ mc_list[5] = priv->port; mlx4_multicast_detach(mdev->dev, &priv->rss_map.indir_qp, mc_list, MLX4_PROT_ETH, mclist->reg_id); + if (mclist->tunnel_reg_id) + mlx4_flow_detach(mdev->dev, mclist->tunnel_reg_id); } mlx4_en_clear_list(dev); list_for_each_entry_safe(mclist, tmp, &priv->curr_list, list) { @@ -1769,6 +1884,8 @@ msleep(1); mlx4_en_deactivate_rx_ring(priv, priv->rx_ring[i]); mlx4_en_deactivate_cq(priv, cq); + + mlx4_en_free_affinity_hint(priv, i); } } @@ -1910,8 +2027,10 @@ prof->tx_ring_size, i, TX, node)) goto err; - if (mlx4_en_create_tx_ring(priv, &priv->tx_ring[i], priv->base_tx_qpn + i, - prof->tx_ring_size, TXBB_SIZE, node)) + if (mlx4_en_create_tx_ring(priv, &priv->tx_ring[i], + priv->base_tx_qpn + i, + prof->tx_ring_size, TXBB_SIZE, + node, i)) goto err; } @@ -2075,7 +2194,7 @@ return -ERANGE; } - if (mlx4_en_timestamp_config(dev, config.tx_type, config.rx_filter)) { + if (mlx4_en_reset_config(dev, config, dev->features)) { config.tx_type = HWTSTAMP_TX_OFF; config.rx_filter = HWTSTAMP_FILTER_NONE; } @@ -2098,6 +2217,16 @@ netdev_features_t features) { struct mlx4_en_priv *priv = netdev_priv(netdev); + int ret = 0; + + if (DEV_FEATURE_CHANGED(netdev, features, NETIF_F_HW_VLAN_CTAG_RX)) { + en_info(priv, "Turn %s RX vlan strip offload\n", + (features & NETIF_F_HW_VLAN_CTAG_RX) ? "ON" : "OFF"); + ret = mlx4_en_reset_config(netdev, priv->hwtstamp_config, + features); + if (ret) + return ret; + } if (features & NETIF_F_LOOPBACK) priv->ctrl_flags |= cpu_to_be32(MLX4_WQE_CTRL_FORCE_LOOPBACK); @@ -2115,7 +2244,7 @@ { struct mlx4_en_priv *en_priv = netdev_priv(dev); struct mlx4_en_dev *mdev = en_priv->mdev; - u64 mac_u64 = mlx4_en_mac_to_u64(mac); + u64 mac_u64 = mlx4_mac_to_u64(mac); if (!is_valid_ether_addr(mac)) return -EINVAL; @@ -2154,6 +2283,104 @@ return mlx4_set_vf_link_state(mdev->dev, en_priv->port, vf, link_state); } + +#define PORT_ID_BYTE_LEN 8 +static int mlx4_en_get_phys_port_id(struct net_device *dev, + struct netdev_phys_port_id *ppid) +{ + struct mlx4_en_priv *priv = netdev_priv(dev); + struct mlx4_dev *mdev = priv->mdev->dev; + int i; + u64 phys_port_id = mdev->caps.phys_port_id[priv->port]; + + if (!phys_port_id) + return -EOPNOTSUPP; + + ppid->id_len = sizeof(phys_port_id); + for (i = PORT_ID_BYTE_LEN - 1; i >= 0; --i) { + ppid->id[i] = phys_port_id & 0xff; + phys_port_id >>= 8; + } + return 0; +} + +#ifdef CONFIG_MLX4_EN_VXLAN +static void mlx4_en_add_vxlan_offloads(struct work_struct *work) +{ + int ret; + struct mlx4_en_priv *priv = container_of(work, struct mlx4_en_priv, + vxlan_add_task); + + ret = mlx4_config_vxlan_port(priv->mdev->dev, priv->vxlan_port); + if (ret) + goto out; + + ret = mlx4_SET_PORT_VXLAN(priv->mdev->dev, priv->port, + VXLAN_STEER_BY_OUTER_MAC, 1); +out: + if (ret) + en_err(priv, "failed setting L2 tunnel configuration ret %d\n", ret); +} + +static void mlx4_en_del_vxlan_offloads(struct work_struct *work) +{ + int ret; + struct mlx4_en_priv *priv = container_of(work, struct mlx4_en_priv, + vxlan_del_task); + + ret = mlx4_SET_PORT_VXLAN(priv->mdev->dev, priv->port, + VXLAN_STEER_BY_OUTER_MAC, 0); + if (ret) + en_err(priv, "failed setting L2 tunnel configuration ret %d\n", ret); + + priv->vxlan_port = 0; +} + +static void mlx4_en_add_vxlan_port(struct net_device *dev, + sa_family_t sa_family, __be16 port) +{ + struct mlx4_en_priv *priv = netdev_priv(dev); + __be16 current_port; + + if (priv->mdev->dev->caps.tunnel_offload_mode != MLX4_TUNNEL_OFFLOAD_MODE_VXLAN) + return; + + if (sa_family == AF_INET6) + return; + + current_port = priv->vxlan_port; + if (current_port && current_port != port) { + en_warn(priv, "vxlan port %d configured, can't add port %d\n", + ntohs(current_port), ntohs(port)); + return; + } + + priv->vxlan_port = port; + queue_work(priv->mdev->workqueue, &priv->vxlan_add_task); +} + +static void mlx4_en_del_vxlan_port(struct net_device *dev, + sa_family_t sa_family, __be16 port) +{ + struct mlx4_en_priv *priv = netdev_priv(dev); + __be16 current_port; + + if (priv->mdev->dev->caps.tunnel_offload_mode != MLX4_TUNNEL_OFFLOAD_MODE_VXLAN) + return; + + if (sa_family == AF_INET6) + return; + + current_port = priv->vxlan_port; + if (current_port != port) { + en_dbg(DRV, priv, "vxlan port %d isn't configured, ignoring\n", ntohs(port)); + return; + } + + queue_work(priv->mdev->workqueue, &priv->vxlan_del_task); +} +#endif + static const struct net_device_ops mlx4_netdev_ops = { .ndo_open = mlx4_en_open, .ndo_stop = mlx4_en_close, @@ -2179,6 +2406,11 @@ #ifdef CONFIG_NET_RX_BUSY_POLL .ndo_busy_poll = mlx4_en_low_latency_recv, #endif + .ndo_get_phys_port_id = mlx4_en_get_phys_port_id, +#ifdef CONFIG_MLX4_EN_VXLAN + .ndo_add_vxlan_port = mlx4_en_add_vxlan_port, + .ndo_del_vxlan_port = mlx4_en_del_vxlan_port, +#endif }; static const struct net_device_ops mlx4_netdev_ops_master = { @@ -2207,6 +2439,11 @@ #ifdef CONFIG_RFS_ACCEL .ndo_rx_flow_steer = mlx4_en_filter_rfs, #endif + .ndo_get_phys_port_id = mlx4_en_get_phys_port_id, +#ifdef CONFIG_MLX4_EN_VXLAN + .ndo_add_vxlan_port = mlx4_en_add_vxlan_port, + .ndo_del_vxlan_port = mlx4_en_del_vxlan_port, +#endif }; int mlx4_en_init_netdev(struct mlx4_en_dev *mdev, int port, @@ -2242,6 +2479,7 @@ priv->port = port; priv->port_up = false; priv->flags = prof->flags; + priv->pflags = MLX4_EN_PRIV_FLAGS_BLUEFLAME; priv->ctrl_flags = cpu_to_be32(MLX4_WQE_CTRL_CQ_UPDATE | MLX4_WQE_CTRL_SOLICITED); priv->num_tx_rings_p_up = mdev->profile.num_tx_rings_p_up; @@ -2261,6 +2499,7 @@ } priv->rx_ring_num = prof->rx_ring_num; priv->cqe_factor = (mdev->dev->caps.cqe_size == 64) ? 1 : 0; + priv->cqe_size = mdev->dev->caps.cqe_size; priv->mac_index = -1; priv->msg_enable = MLX4_EN_MSG_LEVEL; spin_lock_init(&priv->stats_lock); @@ -2269,6 +2508,10 @@ INIT_WORK(&priv->linkstate_task, mlx4_en_linkstate); INIT_DELAYED_WORK(&priv->stats_task, mlx4_en_do_get_stats); INIT_DELAYED_WORK(&priv->service_task, mlx4_en_service_task); +#ifdef CONFIG_MLX4_EN_VXLAN + INIT_WORK(&priv->vxlan_add_task, mlx4_en_add_vxlan_offloads); + INIT_WORK(&priv->vxlan_del_task, mlx4_en_del_vxlan_offloads); +#endif #ifdef CONFIG_MLX4_EN_DCB if (!mlx4_is_slave(priv->mdev->dev)) { if (mdev->dev->caps.flags & MLX4_DEV_CAP_FLAG_SET_ETH_SCHED) { @@ -2293,7 +2536,7 @@ if (mlx4_is_slave(priv->mdev->dev)) { eth_hw_addr_random(dev); en_warn(priv, "Assigned random MAC address %pM\n", dev->dev_addr); - mac_u64 = mlx4_en_mac_to_u64(dev->dev_addr); + mac_u64 = mlx4_mac_to_u64(dev->dev_addr); mdev->dev->caps.def_mac[priv->port] = mac_u64; } else { en_err(priv, "Port: %d, invalid mac burned: %pM, quiting\n", @@ -2303,7 +2546,7 @@ } } - memcpy(priv->prev_mac, dev->dev_addr, sizeof(priv->prev_mac)); + memcpy(priv->current_mac, dev->dev_addr, sizeof(priv->current_mac)); priv->stride = roundup_pow_of_two(sizeof(struct mlx4_en_rx_desc) + DS_SIZE * MLX4_EN_MAX_RX_FRAGS); @@ -2356,7 +2599,8 @@ dev->features = dev->hw_features | NETIF_F_HIGHDMA | NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX | NETIF_F_HW_VLAN_CTAG_FILTER; - dev->hw_features |= NETIF_F_LOOPBACK; + dev->hw_features |= NETIF_F_LOOPBACK | + NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_CTAG_RX; if (mdev->dev->caps.steering_mode == MLX4_STEERING_MODE_DEVICE_MANAGED) @@ -2365,6 +2609,13 @@ if (mdev->dev->caps.steering_mode != MLX4_STEERING_MODE_A0) dev->priv_flags |= IFF_UNICAST_FLT; + if (mdev->dev->caps.tunnel_offload_mode == MLX4_TUNNEL_OFFLOAD_MODE_VXLAN) { + dev->hw_enc_features |= NETIF_F_IP_CSUM | NETIF_F_RXCSUM | + NETIF_F_TSO | NETIF_F_GSO_UDP_TUNNEL; + dev->hw_features |= NETIF_F_GSO_UDP_TUNNEL; + dev->features |= NETIF_F_GSO_UDP_TUNNEL; + } + mdev->pndev[port] = dev; netif_carrier_off(dev); @@ -2394,6 +2645,15 @@ goto out; } + if (mdev->dev->caps.tunnel_offload_mode == MLX4_TUNNEL_OFFLOAD_MODE_VXLAN) { + err = mlx4_SET_PORT_VXLAN(mdev->dev, priv->port, VXLAN_STEER_BY_OUTER_MAC, 1); + if (err) { + en_err(priv, "Failed setting port L2 tunnel configuration, err %d\n", + err); + goto out; + } + } + /* Init port */ en_warn(priv, "Initializing port\n"); err = mlx4_INIT_PORT(mdev->dev, priv->port); @@ -2414,3 +2674,79 @@ return err; } +int mlx4_en_reset_config(struct net_device *dev, + struct hwtstamp_config ts_config, + netdev_features_t features) +{ + struct mlx4_en_priv *priv = netdev_priv(dev); + struct mlx4_en_dev *mdev = priv->mdev; + int port_up = 0; + int err = 0; + + if (priv->hwtstamp_config.tx_type == ts_config.tx_type && + priv->hwtstamp_config.rx_filter == ts_config.rx_filter && + !DEV_FEATURE_CHANGED(dev, features, NETIF_F_HW_VLAN_CTAG_RX)) + return 0; /* Nothing to change */ + + if (DEV_FEATURE_CHANGED(dev, features, NETIF_F_HW_VLAN_CTAG_RX) && + (features & NETIF_F_HW_VLAN_CTAG_RX) && + (priv->hwtstamp_config.rx_filter != HWTSTAMP_FILTER_NONE)) { + en_warn(priv, "Can't turn ON rx vlan offload while time-stamping rx filter is ON\n"); + return -EINVAL; + } + + mutex_lock(&mdev->state_lock); + if (priv->port_up) { + port_up = 1; + mlx4_en_stop_port(dev, 1); + } + + mlx4_en_free_resources(priv); + + en_warn(priv, "Changing device configuration rx filter(%x) rx vlan(%x)\n", + ts_config.rx_filter, !!(features & NETIF_F_HW_VLAN_CTAG_RX)); + + priv->hwtstamp_config.tx_type = ts_config.tx_type; + priv->hwtstamp_config.rx_filter = ts_config.rx_filter; + + if (DEV_FEATURE_CHANGED(dev, features, NETIF_F_HW_VLAN_CTAG_RX)) { + if (features & NETIF_F_HW_VLAN_CTAG_RX) + dev->features |= NETIF_F_HW_VLAN_CTAG_RX; + else + dev->features &= ~NETIF_F_HW_VLAN_CTAG_RX; + } else if (ts_config.rx_filter == HWTSTAMP_FILTER_NONE) { + /* RX time-stamping is OFF, update the RX vlan offload + * to the latest wanted state + */ + if (dev->wanted_features & NETIF_F_HW_VLAN_CTAG_RX) + dev->features |= NETIF_F_HW_VLAN_CTAG_RX; + else + dev->features &= ~NETIF_F_HW_VLAN_CTAG_RX; + } + + /* RX vlan offload and RX time-stamping can't co-exist ! + * Regardless of the caller's choice, + * Turn Off RX vlan offload in case of time-stamping is ON + */ + if (ts_config.rx_filter != HWTSTAMP_FILTER_NONE) { + if (dev->features & NETIF_F_HW_VLAN_CTAG_RX) + en_warn(priv, "Turning off RX vlan offload since RX time-stamping is ON\n"); + dev->features &= ~NETIF_F_HW_VLAN_CTAG_RX; + } + + err = mlx4_en_alloc_resources(priv); + if (err) { + en_err(priv, "Failed reallocating port resources\n"); + goto out; + } + if (port_up) { + err = mlx4_en_start_port(dev); + if (err) + en_err(priv, "Failed starting port\n"); + } + +out: + mutex_unlock(&mdev->state_lock); + netdev_features_change(dev); + return err; +} --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/en_port.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/en_port.c @@ -91,21 +91,37 @@ * already synchronized, no need in locking */ state->link_state = !!(qport_context->link_up & MLX4_EN_LINK_UP_MASK); switch (qport_context->link_speed & MLX4_EN_SPEED_MASK) { + case MLX4_EN_100M_SPEED: + state->link_speed = SPEED_100; + break; case MLX4_EN_1G_SPEED: - state->link_speed = 1000; + state->link_speed = SPEED_1000; break; case MLX4_EN_10G_SPEED_XAUI: case MLX4_EN_10G_SPEED_XFI: - state->link_speed = 10000; + state->link_speed = SPEED_10000; + break; + case MLX4_EN_20G_SPEED: + state->link_speed = SPEED_20000; break; case MLX4_EN_40G_SPEED: - state->link_speed = 40000; + state->link_speed = SPEED_40000; + break; + case MLX4_EN_56G_SPEED: + state->link_speed = SPEED_56000; break; default: state->link_speed = -1; break; } - state->transciver = qport_context->transceiver; + + state->transceiver = qport_context->transceiver; + + state->flags = 0; /* Reset and recalculate the port flags */ + state->flags |= (qport_context->link_up & MLX4_EN_ANC_MASK) ? + MLX4_EN_PORT_ANC : 0; + state->flags |= (qport_context->autoneg & MLX4_EN_AUTONEG_MASK) ? + MLX4_EN_PORT_ANE : 0; out: mlx4_free_cmd_mailbox(mdev->dev, mailbox); @@ -148,10 +164,16 @@ stats->tx_packets = 0; stats->tx_bytes = 0; priv->port_stats.tx_chksum_offload = 0; + priv->port_stats.queue_stopped = 0; + priv->port_stats.wake_queue = 0; + for (i = 0; i < priv->tx_ring_num; i++) { stats->tx_packets += priv->tx_ring[i]->packets; stats->tx_bytes += priv->tx_ring[i]->bytes; priv->port_stats.tx_chksum_offload += priv->tx_ring[i]->tx_csum; + priv->port_stats.queue_stopped += + priv->tx_ring[i]->queue_stopped; + priv->port_stats.wake_queue += priv->tx_ring[i]->wake_queue; } stats->rx_errors = be64_to_cpu(mlx4_en_stats->PCS) + --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/en_port.h +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/en_port.h @@ -53,22 +53,49 @@ MLX4_MCAST_ENABLE = 2, }; +enum mlx4_link_mode { + MLX4_1000BASE_CX_SGMII = 0, + MLX4_1000BASE_KX = 1, + MLX4_10GBASE_CX4 = 2, + MLX4_10GBASE_KX4 = 3, + MLX4_10GBASE_KR = 4, + MLX4_20GBASE_KR2 = 5, + MLX4_40GBASE_CR4 = 6, + MLX4_40GBASE_KR4 = 7, + MLX4_56GBASE_KR4 = 8, + MLX4_10GBASE_CR = 12, + MLX4_10GBASE_SR = 13, + MLX4_40GBASE_SR4 = 15, + MLX4_56GBASE_CR4 = 17, + MLX4_56GBASE_SR4 = 18, + MLX4_100BASE_TX = 24, + MLX4_1000BASE_T = 25, + MLX4_10GBASE_T = 26, +}; + +#define MLX4_PROT_MASK(link_mode) (1<db_rec_addr = cpu_to_be64(priv->res.db.dma << 2); if (!(dev->features & NETIF_F_HW_VLAN_CTAG_RX)) context->param3 |= cpu_to_be32(1 << 30); + + if (!is_tx && !rss && + (mdev->dev->caps.tunnel_offload_mode == MLX4_TUNNEL_OFFLOAD_MODE_VXLAN)) { + en_dbg(HW, priv, "Setting RX qp %x tunnel mode to RX tunneled & non-tunneled\n", qpn); + context->srqn = cpu_to_be32(7 << 28); /* this fills bits 30:28 */ + } } --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/en_rx.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/en_rx.c @@ -40,6 +40,7 @@ #include #include #include +#include #include "mlx4_en.h" @@ -318,6 +319,32 @@ } } +void mlx4_en_set_num_rx_rings(struct mlx4_en_dev *mdev) +{ + int i; + int num_of_eqs; + int num_rx_rings; + struct mlx4_dev *dev = mdev->dev; + + mlx4_foreach_port(i, dev, MLX4_PORT_TYPE_ETH) { + if (!dev->caps.comp_pool) + num_of_eqs = max_t(int, MIN_RX_RINGS, + min_t(int, + dev->caps.num_comp_vectors, + DEF_RX_RINGS)); + else + num_of_eqs = min_t(int, MAX_MSIX_P_PORT, + dev->caps.comp_pool/ + dev->caps.num_ports) - 1; + + num_rx_rings = mlx4_low_memory_profile() ? MIN_RX_RINGS : + min_t(int, num_of_eqs, + netif_get_num_default_rss_queues()); + mdev->profile.prof[i].rx_ring_num = + rounddown_pow_of_two(num_rx_rings); + } +} + int mlx4_en_create_rx_ring(struct mlx4_en_priv *priv, struct mlx4_en_rx_ring **pring, u32 size, u16 stride, int node) @@ -631,15 +658,19 @@ int ip_summed; int factor = priv->cqe_factor; u64 timestamp; + bool l2_tunnel; if (!priv->port_up) return 0; + if (budget <= 0) + return polled; + /* We assume a 1:1 mapping between CQEs and Rx descriptors, so Rx * descriptor offset can be deduced from the CQE index instead of * reading 'cqe->index' */ index = cq->mcq.cons_index & ring->size_mask; - cqe = &cq->buf[(index << factor) + factor]; + cqe = mlx4_en_get_cqe(cq->buf, index, priv->cqe_size) + factor; /* Process all completed CQEs */ while (XNOR(cqe->owner_sr_opcode & MLX4_CQE_OWNER_MASK, @@ -709,6 +740,8 @@ length -= ring->fcs_del; ring->bytes += length; ring->packets++; + l2_tunnel = (dev->hw_enc_features & NETIF_F_RXCSUM) && + (cqe->vlan_my_qpn & cpu_to_be32(MLX4_CQE_L2_TUNNEL)); if (likely(dev->features & NETIF_F_RXCSUM)) { if ((cqe->status & cpu_to_be16(MLX4_CQE_STATUS_IPOK)) && @@ -721,7 +754,7 @@ * - not an IP fragment * - no LLS polling in progress */ - if (!mlx4_en_cq_ll_polling(cq) && + if (!mlx4_en_cq_busy_polling(cq) && (dev->features & NETIF_F_GRO)) { struct sk_buff *gro_skb = napi_get_frags(&cq->napi); if (!gro_skb) @@ -738,6 +771,8 @@ gro_skb->data_len = length; gro_skb->ip_summed = CHECKSUM_UNNECESSARY; + if (l2_tunnel) + gro_skb->encapsulation = 1; if ((cqe->vlan_my_qpn & cpu_to_be32(MLX4_CQE_VLAN_PRESENT_MASK)) && (dev->features & NETIF_F_HW_VLAN_CTAG_RX)) { @@ -788,6 +823,9 @@ skb->protocol = eth_type_trans(skb, dev); skb_record_rx_queue(skb, cq->ring); + if (l2_tunnel) + skb->encapsulation = 1; + if (dev->features & NETIF_F_RXHASH) skb->rxhash = be32_to_cpu(cqe->immed_rss_invalid); @@ -804,8 +842,10 @@ skb_mark_napi_id(skb, &cq->napi); - /* Push it up the stack */ - netif_receive_skb(skb); + if (!mlx4_en_cq_busy_polling(cq)) + napi_gro_receive(&cq->napi, skb); + else + netif_receive_skb(skb); next: for (nr = 0; nr < priv->num_frags; nr++) @@ -813,7 +853,7 @@ ++cq->mcq.cons_index; index = (cq->mcq.cons_index) & ring->size_mask; - cqe = &cq->buf[(index << factor) + factor]; + cqe = mlx4_en_get_cqe(cq->buf, index, priv->cqe_size) + factor; if (++polled == budget) goto out; } @@ -856,9 +896,25 @@ mlx4_en_cq_unlock_napi(cq); /* If we used up all the quota - we're probably not done yet... */ - if (done == budget) + if (done == budget) { + int cpu_curr; + const struct cpumask *aff; + INC_PERF_COUNTER(priv->pstats.napi_quota); - else { + + cpu_curr = smp_processor_id(); + aff = irq_desc_get_irq_data(cq->irq_desc)->affinity; + + if (unlikely(!cpumask_test_cpu(cpu_curr, aff))) { + /* Current cpu is not according to smp_irq_affinity - + * probably affinity changed. need to stop this NAPI + * poll, and restart it on the right CPU + */ + napi_complete(napi); + mlx4_en_arm_cq(priv, cq); + return 0; + } + } else { /* Done for now */ napi_complete(napi); mlx4_en_arm_cq(priv, cq); @@ -1053,6 +1109,12 @@ rss_mask |= MLX4_RSS_UDP_IPV4 | MLX4_RSS_UDP_IPV6; rss_context->base_qpn_udp = rss_context->default_qpn; } + + if (mdev->dev->caps.tunnel_offload_mode == MLX4_TUNNEL_OFFLOAD_MODE_VXLAN) { + en_info(priv, "Setting RSS context tunnel type to RSS on inner headers\n"); + rss_mask |= MLX4_RSS_BY_INNER_HEADERS; + } + rss_context->flags = rss_mask; rss_context->hash_fn = MLX4_RSS_HASH_TOP; for (i = 0; i < 10; i++) --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/en_selftest.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/en_selftest.c @@ -129,9 +129,15 @@ if (mlx4_en_QUERY_PORT(priv->mdev, priv->port)) return -ENOMEM; - /* The device currently only supports 10G speed */ - if (priv->port_state.link_speed != SPEED_10000) + /* The device supports 100M, 1G, 10G, 20G, 40G and 56G speed */ + if (priv->port_state.link_speed != SPEED_100 && + priv->port_state.link_speed != SPEED_1000 && + priv->port_state.link_speed != SPEED_10000 && + priv->port_state.link_speed != SPEED_20000 && + priv->port_state.link_speed != SPEED_40000 && + priv->port_state.link_speed != SPEED_56000) return priv->port_state.link_speed; + return 0; } --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/en_tx.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/en_tx.c @@ -39,23 +39,14 @@ #include #include #include +#include #include #include "mlx4_en.h" -enum { - MAX_INLINE = 104, /* 128 - 16 - 4 - 4 */ - MAX_BF = 256, -}; - -static int inline_thold __read_mostly = MAX_INLINE; - -module_param_named(inline_thold, inline_thold, int, 0444); -MODULE_PARM_DESC(inline_thold, "threshold for using inline data"); - int mlx4_en_create_tx_ring(struct mlx4_en_priv *priv, struct mlx4_en_tx_ring **pring, int qpn, u32 size, - u16 stride, int node) + u16 stride, int node, int queue_index) { struct mlx4_en_dev *mdev = priv->mdev; struct mlx4_en_tx_ring *ring; @@ -74,8 +65,7 @@ ring->size = size; ring->size_mask = size - 1; ring->stride = stride; - - inline_thold = min(inline_thold, MAX_INLINE); + ring->inline_thold = priv->prof->inline_thold; tmp = size * sizeof(struct mlx4_en_tx_info); ring->tx_info = vmalloc_node(tmp, node); @@ -136,10 +126,19 @@ ring->bf.uar = &mdev->priv_uar; ring->bf.uar->map = mdev->uar_map; ring->bf_enabled = false; - } else - ring->bf_enabled = true; + ring->bf_alloced = false; + priv->pflags &= ~MLX4_EN_PRIV_FLAGS_BLUEFLAME; + } else { + ring->bf_alloced = true; + ring->bf_enabled = !!(priv->pflags & + MLX4_EN_PRIV_FLAGS_BLUEFLAME); + } ring->hwtstamp_tx_type = priv->hwtstamp_config.tx_type; + ring->queue_index = queue_index; + + if (queue_index < priv->num_tx_rings_p_up && cpu_online(queue_index)) + cpumask_set_cpu(queue_index, &ring->affinity_mask); *pring = ring; return 0; @@ -167,7 +166,7 @@ struct mlx4_en_tx_ring *ring = *pring; en_dbg(DRV, priv, "Destroying tx ring, qpn: %d\n", ring->qpn); - if (ring->bf_enabled) + if (ring->bf_alloced) mlx4_bf_free(mdev->dev, &ring->bf); mlx4_qp_remove(mdev->dev, &ring->qp); mlx4_qp_free(mdev->dev, &ring->qp); @@ -201,11 +200,14 @@ mlx4_en_fill_qp_context(priv, ring->size, ring->stride, 1, 0, ring->qpn, ring->cqn, user_prio, &ring->context); - if (ring->bf_enabled) + if (ring->bf_alloced) ring->context.usr_page = cpu_to_be32(ring->bf.uar->index); err = mlx4_qp_to_ready(mdev->dev, &ring->wqres.mtt, &ring->context, &ring->qp, &ring->qp_state); + if (!user_prio && cpu_online(ring->queue_index)) + netif_set_xps_queue(priv->dev, &ring->affinity_mask, + ring->queue_index); return err; } @@ -354,7 +356,9 @@ return cnt; } -static void mlx4_en_process_tx_cq(struct net_device *dev, struct mlx4_en_cq *cq) +static int mlx4_en_process_tx_cq(struct net_device *dev, + struct mlx4_en_cq *cq, + int budget) { struct mlx4_en_priv *priv = netdev_priv(dev); struct mlx4_cq *mcq = &cq->mcq; @@ -372,18 +376,19 @@ u32 bytes = 0; int factor = priv->cqe_factor; u64 timestamp = 0; + int done = 0; if (!priv->port_up) - return; + return 0; index = cons_index & size_mask; - cqe = &buf[(index << factor) + factor]; + cqe = mlx4_en_get_cqe(buf, index, priv->cqe_size) + factor; ring_index = ring->cons & size_mask; stamp_index = ring_index; /* Process all completed CQEs */ while (XNOR(cqe->owner_sr_opcode & MLX4_CQE_OWNER_MASK, - cons_index & size)) { + cons_index & size) && (done < budget)) { /* * make sure we read the CQE after we read the * ownership bit @@ -421,11 +426,11 @@ txbbs_stamp = txbbs_skipped; packets++; bytes += ring->tx_info[ring_index].nr_bytes; - } while (ring_index != new_index); + } while ((++done < budget) && (ring_index != new_index)); ++cons_index; index = cons_index & size_mask; - cqe = &buf[(index << factor) + factor]; + cqe = mlx4_en_get_cqe(buf, index, priv->cqe_size) + factor; } @@ -445,8 +450,9 @@ */ if (netif_tx_queue_stopped(ring->tx_queue) && txbbs_skipped > 0) { netif_tx_wake_queue(ring->tx_queue); - priv->port_stats.wake_queue++; + ring->wake_queue++; } + return done; } void mlx4_en_tx_irq(struct mlx4_cq *mcq) @@ -454,10 +460,31 @@ struct mlx4_en_cq *cq = container_of(mcq, struct mlx4_en_cq, mcq); struct mlx4_en_priv *priv = netdev_priv(cq->dev); - mlx4_en_process_tx_cq(cq->dev, cq); - mlx4_en_arm_cq(priv, cq); + if (priv->port_up) + napi_schedule(&cq->napi); + else + mlx4_en_arm_cq(priv, cq); } +/* TX CQ polling - called by NAPI */ +int mlx4_en_poll_tx_cq(struct napi_struct *napi, int budget) +{ + struct mlx4_en_cq *cq = container_of(napi, struct mlx4_en_cq, napi); + struct net_device *dev = cq->dev; + struct mlx4_en_priv *priv = netdev_priv(dev); + int done; + + done = mlx4_en_process_tx_cq(dev, cq, budget); + + /* If we used up all the quota - we're probably not done yet... */ + if (done < budget) { + /* Done for now */ + napi_complete(napi); + mlx4_en_arm_cq(priv, cq); + return done; + } + return budget; +} static struct mlx4_en_tx_desc *mlx4_en_bounce_to_desc(struct mlx4_en_priv *priv, struct mlx4_en_tx_ring *ring, @@ -487,7 +514,7 @@ return ring->buf + index * TXBB_SIZE; } -static int is_inline(struct sk_buff *skb, void **pfrag) +static int is_inline(int inline_thold, struct sk_buff *skb, void **pfrag) { void *ptr; @@ -528,7 +555,10 @@ int real_size; if (skb_is_gso(skb)) { - *lso_header_size = skb_transport_offset(skb) + tcp_hdrlen(skb); + if (skb->encapsulation) + *lso_header_size = (skb_inner_transport_header(skb) - skb->data) + inner_tcp_hdrlen(skb); + else + *lso_header_size = skb_transport_offset(skb) + tcp_hdrlen(skb); real_size = CTRL_SIZE + skb_shinfo(skb)->nr_frags * DS_SIZE + ALIGN(*lso_header_size + 4, DS_SIZE); if (unlikely(*lso_header_size != skb_headlen(skb))) { @@ -544,7 +574,7 @@ } } else { *lso_header_size = 0; - if (!is_inline(skb, NULL)) + if (!is_inline(priv->prof->inline_thold, skb, NULL)) real_size = CTRL_SIZE + (skb_shinfo(skb)->nr_frags + 1) * DS_SIZE; else real_size = inline_size(skb); @@ -560,7 +590,13 @@ int spc = MLX4_INLINE_ALIGN - CTRL_SIZE - sizeof *inl; if (skb->len <= spc) { - inl->byte_count = cpu_to_be32(1 << 31 | skb->len); + if (likely(skb->len >= MIN_PKT_LEN)) { + inl->byte_count = cpu_to_be32(1 << 31 | skb->len); + } else { + inl->byte_count = cpu_to_be32(1 << 31 | MIN_PKT_LEN); + memset(((void *)(inl + 1)) + skb->len, 0, + MIN_PKT_LEN - skb->len); + } skb_copy_from_linear_data(skb, inl + 1, skb_headlen(skb)); if (skb_shinfo(skb)->nr_frags) memcpy(((void *)(inl + 1)) + skb_headlen(skb), fragptr, @@ -593,7 +629,7 @@ } u16 mlx4_en_select_queue(struct net_device *dev, struct sk_buff *skb, - void *accel_priv) + void *accel_priv, select_queue_fallback_t fallback) { struct mlx4_en_priv *priv = netdev_priv(dev); u16 rings_p_up = priv->num_tx_rings_p_up; @@ -605,7 +641,7 @@ if (vlan_tx_tag_present(skb)) up = vlan_tx_tag_get(skb) >> VLAN_PRIO_SHIFT; - return __netdev_pick_tx(dev, skb) % rings_p_up + up * rings_p_up; + return fallback(dev, skb) % rings_p_up + up * rings_p_up; } static void mlx4_bf_copy(void __iomem *dst, unsigned long *src, unsigned bytecnt) @@ -660,7 +696,7 @@ ring->size - HEADROOM - MAX_DESC_TXBBS)) { /* every full Tx ring stops queue */ netif_tx_stop_queue(ring->tx_queue); - priv->port_stats.queue_stopped++; + ring->queue_stopped++; /* If queue was emptied after the if, and before the * stop_queue - need to wake the queue, or else it will remain @@ -673,7 +709,7 @@ if (unlikely(((int)(ring->prod - ring->cons)) <= ring->size - HEADROOM - MAX_DESC_TXBBS)) { netif_tx_wake_queue(ring->tx_queue); - priv->port_stats.wake_queue++; + ring->wake_queue++; } else { return NETDEV_TX_BUSY; } @@ -711,11 +747,11 @@ tx_info->data_offset = (void *)data - (void *)tx_desc; tx_info->linear = (lso_header_size < skb_headlen(skb) && - !is_inline(skb, NULL)) ? 1 : 0; + !is_inline(ring->inline_thold, skb, NULL)) ? 1 : 0; data += skb_shinfo(skb)->nr_frags + tx_info->linear - 1; - if (is_inline(skb, &fragptr)) { + if (is_inline(ring->inline_thold, skb, &fragptr)) { tx_info->inl = 1; } else { /* Map fragments */ @@ -828,6 +864,14 @@ tx_info->inl = 1; } + if (skb->encapsulation) { + struct iphdr *ipv4 = (struct iphdr *)skb_inner_network_header(skb); + if (ipv4->protocol == IPPROTO_TCP || ipv4->protocol == IPPROTO_UDP) + op_own |= cpu_to_be32(MLX4_WQE_CTRL_IIP | MLX4_WQE_CTRL_ILP); + else + op_own |= cpu_to_be32(MLX4_WQE_CTRL_IIP); + } + ring->prod += nr_txbb; /* If we used a bounce buffer then copy descriptor back into place */ @@ -837,7 +881,8 @@ skb_tx_timestamp(skb); if (ring->bf_enabled && desc_size <= MAX_BF && !bounce && !vlan_tx_tag_present(skb)) { - *(__be32 *) (&tx_desc->ctrl.vlan_tag) |= cpu_to_be32(ring->doorbell_qpn); + tx_desc->ctrl.bf_qpn |= cpu_to_be32(ring->doorbell_qpn); + op_own |= htonl((bf_index & 0xffff) << 8); /* Ensure new descirptor hits memory * before setting ownership of this descriptor to HW */ --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/eq.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/eq.c @@ -102,21 +102,24 @@ mb(); } -static struct mlx4_eqe *get_eqe(struct mlx4_eq *eq, u32 entry, u8 eqe_factor) +static struct mlx4_eqe *get_eqe(struct mlx4_eq *eq, u32 entry, u8 eqe_factor, + u8 eqe_size) { /* (entry & (eq->nent - 1)) gives us a cyclic array */ - unsigned long offset = (entry & (eq->nent - 1)) * (MLX4_EQ_ENTRY_SIZE << eqe_factor); - /* CX3 is capable of extending the EQE from 32 to 64 bytes. - * When this feature is enabled, the first (in the lower addresses) + unsigned long offset = (entry & (eq->nent - 1)) * eqe_size; + /* CX3 is capable of extending the EQE from 32 to 64 bytes with + * strides of 64B,128B and 256B. + * When 64B EQE is used, the first (in the lower addresses) * 32 bytes in the 64 byte EQE are reserved and the next 32 bytes * contain the legacy EQE information. + * In all other cases, the first 32B contains the legacy EQE info. */ return eq->page_list[offset / PAGE_SIZE].buf + (offset + (eqe_factor ? MLX4_EQ_ENTRY_SIZE : 0)) % PAGE_SIZE; } -static struct mlx4_eqe *next_eqe_sw(struct mlx4_eq *eq, u8 eqe_factor) +static struct mlx4_eqe *next_eqe_sw(struct mlx4_eq *eq, u8 eqe_factor, u8 size) { - struct mlx4_eqe *eqe = get_eqe(eq, eq->cons_index, eqe_factor); + struct mlx4_eqe *eqe = get_eqe(eq, eq->cons_index, eqe_factor, size); return !!(eqe->owner & 0x80) ^ !!(eq->cons_index & eq->nent) ? NULL : eqe; } @@ -272,7 +275,10 @@ { struct mlx4_priv *priv = mlx4_priv(dev); struct mlx4_slave_state *s_state = priv->mfunc.master.slave_state; - if (slave >= dev->num_slaves || port > MLX4_MAX_PORTS) { + struct mlx4_active_ports actv_ports = mlx4_get_active_ports(dev, slave); + + if (slave >= dev->num_slaves || port > dev->caps.num_ports || + port <= 0 || !test_bit(port - 1, actv_ports.ports)) { pr_err("%s: Error: asking for slave:%d, port:%d\n", __func__, slave, port); return SLAVE_PORT_DOWN; @@ -286,8 +292,10 @@ { struct mlx4_priv *priv = mlx4_priv(dev); struct mlx4_slave_state *s_state = priv->mfunc.master.slave_state; + struct mlx4_active_ports actv_ports = mlx4_get_active_ports(dev, slave); - if (slave >= dev->num_slaves || port > MLX4_MAX_PORTS || port == 0) { + if (slave >= dev->num_slaves || port > dev->caps.num_ports || + port <= 0 || !test_bit(port - 1, actv_ports.ports)) { pr_err("%s: Error: asking for slave:%d, port:%d\n", __func__, slave, port); return -1; @@ -301,9 +309,13 @@ { int i; enum slave_port_gen_event gen_event; + struct mlx4_slaves_pport slaves_pport = mlx4_phys_to_slaves_pport(dev, + port); - for (i = 0; i < dev->num_slaves; i++) - set_and_calc_slave_port_state(dev, i, port, event, &gen_event); + for (i = 0; i < dev->num_vfs + 1; i++) + if (test_bit(i, slaves_pport.slaves)) + set_and_calc_slave_port_state(dev, i, port, + event, &gen_event); } /************************************************************************** The function get as input the new event to that port, @@ -322,12 +334,14 @@ struct mlx4_slave_state *ctx = NULL; unsigned long flags; int ret = -1; + struct mlx4_active_ports actv_ports = mlx4_get_active_ports(dev, slave); enum slave_port_state cur_state = mlx4_get_slave_port_state(dev, slave, port); *gen_event = SLAVE_PORT_GEN_EVENT_NONE; - if (slave >= dev->num_slaves || port > MLX4_MAX_PORTS || port == 0) { + if (slave >= dev->num_slaves || port > dev->caps.num_ports || + port <= 0 || !test_bit(port - 1, actv_ports.ports)) { pr_err("%s: Error: asking for slave:%d, port:%d\n", __func__, slave, port); return ret; @@ -450,8 +464,9 @@ enum slave_port_gen_event gen_event; unsigned long flags; struct mlx4_vport_state *s_info; + int eqe_size = dev->caps.eqe_size; - while ((eqe = next_eqe_sw(eq, dev->caps.eqe_factor))) { + while ((eqe = next_eqe_sw(eq, dev->caps.eqe_factor, eqe_size))) { /* * Make sure we read EQ entry contents after we've * checked the ownership bit. @@ -543,15 +558,19 @@ be64_to_cpu(eqe->event.cmd.out_param)); break; - case MLX4_EVENT_TYPE_PORT_CHANGE: + case MLX4_EVENT_TYPE_PORT_CHANGE: { + struct mlx4_slaves_pport slaves_port; port = be32_to_cpu(eqe->event.port_change.port) >> 28; + slaves_port = mlx4_phys_to_slaves_pport(dev, port); if (eqe->subtype == MLX4_PORT_CHANGE_SUBTYPE_DOWN) { mlx4_dispatch_event(dev, MLX4_DEV_EVENT_PORT_DOWN, port); mlx4_priv(dev)->sense.do_sense_port[port] = 1; if (!mlx4_is_master(dev)) break; - for (i = 0; i < dev->num_slaves; i++) { + for (i = 0; i < dev->num_vfs + 1; i++) { + if (!test_bit(i, slaves_port.slaves)) + continue; if (dev->caps.port_type[port] == MLX4_PORT_TYPE_ETH) { if (i == mlx4_master_func_num(dev)) continue; @@ -559,8 +578,13 @@ " to slave: %d, port:%d\n", __func__, i, port); s_info = &priv->mfunc.master.vf_oper[slave].vport[port].state; - if (IFLA_VF_LINK_STATE_AUTO == s_info->link_state) + if (IFLA_VF_LINK_STATE_AUTO == s_info->link_state) { + eqe->event.port_change.port = + cpu_to_be32( + (be32_to_cpu(eqe->event.port_change.port) & 0xFFFFFFF) + | (mlx4_phys_to_slave_port(dev, i, port) << 28)); mlx4_slave_event(dev, i, eqe); + } } else { /* IB port */ set_and_calc_slave_port_state(dev, i, port, MLX4_PORT_STATE_DEV_EVENT_PORT_DOWN, @@ -581,12 +605,19 @@ if (!mlx4_is_master(dev)) break; if (dev->caps.port_type[port] == MLX4_PORT_TYPE_ETH) - for (i = 0; i < dev->num_slaves; i++) { + for (i = 0; i < dev->num_vfs + 1; i++) { + if (!test_bit(i, slaves_port.slaves)) + continue; if (i == mlx4_master_func_num(dev)) continue; s_info = &priv->mfunc.master.vf_oper[slave].vport[port].state; - if (IFLA_VF_LINK_STATE_AUTO == s_info->link_state) + if (IFLA_VF_LINK_STATE_AUTO == s_info->link_state) { + eqe->event.port_change.port = + cpu_to_be32( + (be32_to_cpu(eqe->event.port_change.port) & 0xFFFFFFF) + | (mlx4_phys_to_slave_port(dev, i, port) << 28)); mlx4_slave_event(dev, i, eqe); + } } else /* IB port */ /* port-up event will be sent to a slave when the @@ -595,6 +626,7 @@ set_all_slave_state(dev, port, MLX4_DEV_EVENT_PORT_UP); } break; + } case MLX4_EVENT_TYPE_CQ_ERROR: mlx4_warn(dev, "CQ %s on CQN %06x\n", @@ -886,8 +918,10 @@ eq->dev = dev; eq->nent = roundup_pow_of_two(max(nent, 2)); - /* CX3 is capable of extending the CQE/EQE from 32 to 64 bytes */ - npages = PAGE_ALIGN(eq->nent * (MLX4_EQ_ENTRY_SIZE << dev->caps.eqe_factor)) / PAGE_SIZE; + /* CX3 is capable of extending the CQE/EQE from 32 to 64 bytes, with + * strides of 64B,128B and 256B. + */ + npages = PAGE_ALIGN(eq->nent * dev->caps.eqe_size) / PAGE_SIZE; eq->page_list = kmalloc(npages * sizeof *eq->page_list, GFP_KERNEL); @@ -963,7 +997,7 @@ mlx4_mtt_cleanup(dev, &eq->mtt); err_out_free_eq: - mlx4_bitmap_free(&priv->eq_table.bitmap, eq->eqn); + mlx4_bitmap_free(&priv->eq_table.bitmap, eq->eqn, MLX4_USE_RR); err_out_free_pages: for (i = 0; i < npages; ++i) @@ -989,8 +1023,10 @@ struct mlx4_cmd_mailbox *mailbox; int err; int i; - /* CX3 is capable of extending the CQE/EQE from 32 to 64 bytes */ - int npages = PAGE_ALIGN((MLX4_EQ_ENTRY_SIZE << dev->caps.eqe_factor) * eq->nent) / PAGE_SIZE; + /* CX3 is capable of extending the CQE/EQE from 32 to 64 bytes, with + * strides of 64B,128B and 256B + */ + int npages = PAGE_ALIGN(dev->caps.eqe_size * eq->nent) / PAGE_SIZE; mailbox = mlx4_alloc_cmd_mailbox(dev); if (IS_ERR(mailbox)) @@ -1018,7 +1054,7 @@ eq->page_list[i].map); kfree(eq->page_list); - mlx4_bitmap_free(&priv->eq_table.bitmap, eq->eqn); + mlx4_bitmap_free(&priv->eq_table.bitmap, eq->eqn, MLX4_USE_RR); mlx4_free_cmd_mailbox(dev, mailbox); } @@ -1345,6 +1381,7 @@ continue; /*we dont want to break here*/ } + eq_set_ci(&priv->eq_table.eq[vec], 1); } } @@ -1360,6 +1397,14 @@ } EXPORT_SYMBOL(mlx4_assign_eq); +int mlx4_eq_get_irq(struct mlx4_dev *dev, int vec) +{ + struct mlx4_priv *priv = mlx4_priv(dev); + + return priv->eq_table.eq[vec].irq; +} +EXPORT_SYMBOL(mlx4_eq_get_irq); + void mlx4_release_eq(struct mlx4_dev *dev, int vec) { struct mlx4_priv *priv = mlx4_priv(dev); --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/fw.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/fw.c @@ -129,12 +129,19 @@ [0] = "RSS support", [1] = "RSS Toeplitz Hash Function support", [2] = "RSS XOR Hash Function support", - [3] = "Device manage flow steering support", + [3] = "Device managed flow steering support", [4] = "Automatic MAC reassignment support", [5] = "Time stamping support", [6] = "VST (control vlan insertion/stripping) support", [7] = "FSM (MAC anti-spoofing) support", - [8] = "Dynamic QP updates support" + [8] = "Dynamic QP updates support", + [9] = "Device managed flow steering IPoIB support", + [10] = "TCP/IP offloads/flow-steering for VXLAN support", + [11] = "MAD DEMUX (Secure-Host) support", + [12] = "Large cache line (>64B) CQE stride support", + [13] = "Large cache line (>64B) EQE stride support", + [14] = "Ethernet protocol control support", + [15] = "Ethernet Backplane autoneg support" }; int i; @@ -207,29 +214,41 @@ /* when opcode modifier = 1 */ #define QUERY_FUNC_CAP_PHYS_PORT_OFFSET 0x3 -#define QUERY_FUNC_CAP_RDMA_PROPS_OFFSET 0x8 -#define QUERY_FUNC_CAP_ETH_PROPS_OFFSET 0xc +#define QUERY_FUNC_CAP_FLAGS0_OFFSET 0x8 +#define QUERY_FUNC_CAP_FLAGS1_OFFSET 0xc #define QUERY_FUNC_CAP_QP0_TUNNEL 0x10 #define QUERY_FUNC_CAP_QP0_PROXY 0x14 #define QUERY_FUNC_CAP_QP1_TUNNEL 0x18 #define QUERY_FUNC_CAP_QP1_PROXY 0x1c +#define QUERY_FUNC_CAP_PHYS_PORT_ID 0x28 -#define QUERY_FUNC_CAP_ETH_PROPS_FORCE_MAC 0x40 -#define QUERY_FUNC_CAP_ETH_PROPS_FORCE_VLAN 0x80 +#define QUERY_FUNC_CAP_FLAGS1_FORCE_MAC 0x40 +#define QUERY_FUNC_CAP_FLAGS1_FORCE_VLAN 0x80 +#define QUERY_FUNC_CAP_FLAGS1_NIC_INFO 0x10 -#define QUERY_FUNC_CAP_RDMA_PROPS_FORCE_PHY_WQE_GID 0x80 +#define QUERY_FUNC_CAP_FLAGS0_FORCE_PHY_WQE_GID 0x80 if (vhcr->op_modifier == 1) { - field = 0; - /* ensure force vlan and force mac bits are not set */ - MLX4_PUT(outbox->buf, field, QUERY_FUNC_CAP_ETH_PROPS_OFFSET); - /* ensure that phy_wqe_gid bit is not set */ - MLX4_PUT(outbox->buf, field, QUERY_FUNC_CAP_RDMA_PROPS_OFFSET); - - field = vhcr->in_modifier; /* phys-port = logical-port */ + struct mlx4_active_ports actv_ports = + mlx4_get_active_ports(dev, slave); + int converted_port = mlx4_slave_convert_port( + dev, slave, vhcr->in_modifier); + + if (converted_port < 0) + return -EINVAL; + + vhcr->in_modifier = converted_port; + /* Set nic_info bit to mark new fields support */ + field = QUERY_FUNC_CAP_FLAGS1_NIC_INFO; + MLX4_PUT(outbox->buf, field, QUERY_FUNC_CAP_FLAGS1_OFFSET); + + /* phys-port = logical-port */ + field = vhcr->in_modifier - + find_first_bit(actv_ports.ports, dev->caps.num_ports); MLX4_PUT(outbox->buf, field, QUERY_FUNC_CAP_PHYS_PORT_OFFSET); + field = vhcr->in_modifier; /* size is now the QP number */ size = dev->phys_caps.base_tunnel_sqpn + 8 * slave + field - 1; MLX4_PUT(outbox->buf, size, QUERY_FUNC_CAP_QP0_TUNNEL); @@ -243,13 +262,20 @@ size += 2; MLX4_PUT(outbox->buf, size, QUERY_FUNC_CAP_QP1_PROXY); + MLX4_PUT(outbox->buf, dev->caps.phys_port_id[vhcr->in_modifier], + QUERY_FUNC_CAP_PHYS_PORT_ID); + } else if (vhcr->op_modifier == 0) { + struct mlx4_active_ports actv_ports = + mlx4_get_active_ports(dev, slave); /* enable rdma and ethernet interfaces, and new quota locations */ field = (QUERY_FUNC_CAP_FLAG_ETH | QUERY_FUNC_CAP_FLAG_RDMA | QUERY_FUNC_CAP_FLAG_QUOTAS); MLX4_PUT(outbox->buf, field, QUERY_FUNC_CAP_FLAGS_OFFSET); - field = dev->caps.num_ports; + field = min( + bitmap_weight(actv_ports.ports, dev->caps.num_ports), + dev->caps.num_ports); MLX4_PUT(outbox->buf, field, QUERY_FUNC_CAP_NUM_PORTS_OFFSET); size = dev->caps.function_caps; /* set PF behaviours */ @@ -391,22 +417,22 @@ goto out; } + MLX4_GET(func_cap->flags1, outbox, QUERY_FUNC_CAP_FLAGS1_OFFSET); if (dev->caps.port_type[gen_or_port] == MLX4_PORT_TYPE_ETH) { - MLX4_GET(field, outbox, QUERY_FUNC_CAP_ETH_PROPS_OFFSET); - if (field & QUERY_FUNC_CAP_ETH_PROPS_FORCE_VLAN) { + if (func_cap->flags1 & QUERY_FUNC_CAP_FLAGS1_OFFSET) { mlx4_err(dev, "VLAN is enforced on this port\n"); err = -EPROTONOSUPPORT; goto out; } - if (field & QUERY_FUNC_CAP_ETH_PROPS_FORCE_MAC) { + if (func_cap->flags1 & QUERY_FUNC_CAP_FLAGS1_FORCE_MAC) { mlx4_err(dev, "Force mac is enabled on this port\n"); err = -EPROTONOSUPPORT; goto out; } } else if (dev->caps.port_type[gen_or_port] == MLX4_PORT_TYPE_IB) { - MLX4_GET(field, outbox, QUERY_FUNC_CAP_RDMA_PROPS_OFFSET); - if (field & QUERY_FUNC_CAP_RDMA_PROPS_FORCE_PHY_WQE_GID) { + MLX4_GET(field, outbox, QUERY_FUNC_CAP_FLAGS0_OFFSET); + if (field & QUERY_FUNC_CAP_FLAGS0_FORCE_PHY_WQE_GID) { mlx4_err(dev, "phy_wqe_gid is " "enforced on this ib port\n"); err = -EPROTONOSUPPORT; @@ -433,6 +459,10 @@ MLX4_GET(size, outbox, QUERY_FUNC_CAP_QP1_PROXY); func_cap->qp1_proxy_qpn = size & 0xFFFFFF; + if (func_cap->flags1 & QUERY_FUNC_CAP_FLAGS1_NIC_INFO) + MLX4_GET(func_cap->phys_port_id, outbox, + QUERY_FUNC_CAP_PHYS_PORT_ID); + /* All other resources are allocated by the master, but we still report * 'num' and 'reserved' capabilities as follows: * - num remains the maximum resource index @@ -513,8 +543,11 @@ #define QUERY_DEV_CAP_MAX_XRC_OFFSET 0x67 #define QUERY_DEV_CAP_MAX_COUNTERS_OFFSET 0x68 #define QUERY_DEV_CAP_EXT_2_FLAGS_OFFSET 0x70 +#define QUERY_DEV_CAP_FLOW_STEERING_IPOIB_OFFSET 0x74 #define QUERY_DEV_CAP_FLOW_STEERING_RANGE_EN_OFFSET 0x76 #define QUERY_DEV_CAP_FLOW_STEERING_MAX_QP_OFFSET 0x77 +#define QUERY_DEV_CAP_CQ_EQ_CACHE_LINE_STRIDE 0x7a +#define QUERY_DEV_CAP_ETH_PROT_CTRL_OFFSET 0x7a #define QUERY_DEV_CAP_RDMARC_ENTRY_SZ_OFFSET 0x80 #define QUERY_DEV_CAP_QPC_ENTRY_SZ_OFFSET 0x82 #define QUERY_DEV_CAP_AUX_ENTRY_SZ_OFFSET 0x84 @@ -528,7 +561,9 @@ #define QUERY_DEV_CAP_BMME_FLAGS_OFFSET 0x94 #define QUERY_DEV_CAP_RSVD_LKEY_OFFSET 0x98 #define QUERY_DEV_CAP_MAX_ICM_SZ_OFFSET 0xa0 +#define QUERY_DEV_CAP_ETH_BACKPL_OFFSET 0x9c #define QUERY_DEV_CAP_FW_REASSIGN_MAC 0x9d +#define QUERY_DEV_CAP_VXLAN 0x9e dev_cap->flags2 = 0; mailbox = mlx4_alloc_cmd_mailbox(dev); @@ -603,6 +638,9 @@ if (field & 0x80) dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_FS_EN; dev_cap->fs_log_max_ucast_qp_range_size = field & 0x1f; + MLX4_GET(field, outbox, QUERY_DEV_CAP_FLOW_STEERING_IPOIB_OFFSET); + if (field & 0x80) + dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_DMFS_IPOIB; MLX4_GET(field, outbox, QUERY_DEV_CAP_FLOW_STEERING_MAX_QP_OFFSET); dev_cap->fs_max_num_qp_per_entry = field; MLX4_GET(stat_rate, outbox, QUERY_DEV_CAP_RATE_SUPPORT_OFFSET); @@ -686,14 +724,26 @@ dev_cap->max_rq_sg = field; MLX4_GET(size, outbox, QUERY_DEV_CAP_MAX_DESC_SZ_RQ_OFFSET); dev_cap->max_rq_desc_sz = size; - + MLX4_GET(field, outbox, QUERY_DEV_CAP_CQ_EQ_CACHE_LINE_STRIDE); + if (field & (1 << 5)) + dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_ETH_PROT_CTRL; + if (field & (1 << 6)) + dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_CQE_STRIDE; + if (field & (1 << 7)) + dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_EQE_STRIDE; MLX4_GET(dev_cap->bmme_flags, outbox, QUERY_DEV_CAP_BMME_FLAGS_OFFSET); MLX4_GET(dev_cap->reserved_lkey, outbox, QUERY_DEV_CAP_RSVD_LKEY_OFFSET); + MLX4_GET(field32, outbox, QUERY_DEV_CAP_ETH_BACKPL_OFFSET); + if (field32 & (1 << 0)) + dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_ETH_BACKPL_AN_REP; MLX4_GET(field, outbox, QUERY_DEV_CAP_FW_REASSIGN_MAC); if (field & 1<<6) dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_REASSIGN_MAC_EN; + MLX4_GET(field, outbox, QUERY_DEV_CAP_VXLAN); + if (field & 1<<3) + dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_VXLAN_OFFLOADS; MLX4_GET(dev_cap->max_icm_sz, outbox, QUERY_DEV_CAP_MAX_ICM_SZ_OFFSET); if (dev_cap->flags & MLX4_DEV_CAP_FLAG_COUNTERS) @@ -823,6 +873,10 @@ int err = 0; u8 field; u32 bmme_flags; + int real_port; + int slave_port; + int first_port; + struct mlx4_active_ports actv_ports; err = mlx4_cmd_box(dev, 0, outbox->dma, 0, 0, MLX4_CMD_QUERY_DEV_CAP, MLX4_CMD_TIME_CLASS_A, MLX4_CMD_NATIVE); @@ -835,20 +889,43 @@ MLX4_GET(flags, outbox->buf, QUERY_DEV_CAP_EXT_FLAGS_OFFSET); flags |= MLX4_DEV_CAP_FLAG_PORT_MNG_CHG_EV; flags &= ~MLX4_DEV_CAP_FLAG_MEM_WINDOW; + actv_ports = mlx4_get_active_ports(dev, slave); + first_port = find_first_bit(actv_ports.ports, dev->caps.num_ports); + for (slave_port = 0, real_port = first_port; + real_port < first_port + + bitmap_weight(actv_ports.ports, dev->caps.num_ports); + ++real_port, ++slave_port) { + if (flags & (MLX4_DEV_CAP_FLAG_WOL_PORT1 << real_port)) + flags |= MLX4_DEV_CAP_FLAG_WOL_PORT1 << slave_port; + else + flags &= ~(MLX4_DEV_CAP_FLAG_WOL_PORT1 << slave_port); + } + for (; slave_port < dev->caps.num_ports; ++slave_port) + flags &= ~(MLX4_DEV_CAP_FLAG_WOL_PORT1 << slave_port); MLX4_PUT(outbox->buf, flags, QUERY_DEV_CAP_EXT_FLAGS_OFFSET); + MLX4_GET(field, outbox->buf, QUERY_DEV_CAP_VL_PORT_OFFSET); + field &= ~0x0F; + field |= bitmap_weight(actv_ports.ports, dev->caps.num_ports) & 0x0F; + MLX4_PUT(outbox->buf, field, QUERY_DEV_CAP_VL_PORT_OFFSET); + /* For guests, disable timestamp */ MLX4_GET(field, outbox->buf, QUERY_DEV_CAP_CQ_TS_SUPPORT_OFFSET); field &= 0x7f; MLX4_PUT(outbox->buf, field, QUERY_DEV_CAP_CQ_TS_SUPPORT_OFFSET); + /* For guests, disable vxlan tunneling */ + MLX4_GET(field, outbox->buf, QUERY_DEV_CAP_VXLAN); + field &= 0xf7; + MLX4_PUT(outbox->buf, field, QUERY_DEV_CAP_VXLAN); + /* For guests, report Blueflame disabled */ MLX4_GET(field, outbox->buf, QUERY_DEV_CAP_BF_OFFSET); field &= 0x7f; MLX4_PUT(outbox->buf, field, QUERY_DEV_CAP_BF_OFFSET); /* For guests, disable mw type 2 */ - MLX4_GET(bmme_flags, outbox, QUERY_DEV_CAP_BMME_FLAGS_OFFSET); + MLX4_GET(bmme_flags, outbox->buf, QUERY_DEV_CAP_BMME_FLAGS_OFFSET); bmme_flags &= ~MLX4_BMME_FLAG_TYPE_2_WIN; MLX4_PUT(outbox->buf, bmme_flags, QUERY_DEV_CAP_BMME_FLAGS_OFFSET); @@ -860,6 +937,12 @@ MLX4_PUT(outbox->buf, field, QUERY_DEV_CAP_FLOW_STEERING_RANGE_EN_OFFSET); } + + /* turn off ipoib managed steering for guests */ + MLX4_GET(field, outbox->buf, QUERY_DEV_CAP_FLOW_STEERING_IPOIB_OFFSET); + field &= ~0x80; + MLX4_PUT(outbox->buf, field, QUERY_DEV_CAP_FLOW_STEERING_IPOIB_OFFSET); + return 0; } @@ -875,12 +958,20 @@ u16 short_field; int err; int admin_link_state; + int port = mlx4_slave_convert_port(dev, slave, + vhcr->in_modifier & 0xFF); #define MLX4_VF_PORT_NO_LINK_SENSE_MASK 0xE0 #define MLX4_PORT_LINK_UP_MASK 0x80 #define QUERY_PORT_CUR_MAX_PKEY_OFFSET 0x0c #define QUERY_PORT_CUR_MAX_GID_OFFSET 0x0e + if (port < 0) + return -EINVAL; + + vhcr->in_modifier = (vhcr->in_modifier & ~0xFF) | + (port & 0xFF); + err = mlx4_cmd_box(dev, 0, outbox->dma, vhcr->in_modifier, 0, MLX4_CMD_QUERY_PORT, MLX4_CMD_TIME_CLASS_B, MLX4_CMD_NATIVE); @@ -907,7 +998,10 @@ MLX4_PUT(outbox->buf, port_type, QUERY_PORT_SUPPORTED_TYPE_OFFSET); - short_field = 1; /* slave max gids */ + if (dev->caps.port_type[vhcr->in_modifier] == MLX4_PORT_TYPE_ETH) + short_field = mlx4_get_slave_num_gids(dev, slave, port); + else + short_field = 1; /* slave max gids */ MLX4_PUT(outbox->buf, short_field, QUERY_PORT_CUR_MAX_GID_OFFSET); @@ -1267,6 +1361,7 @@ #define INIT_HCA_IN_SIZE 0x200 #define INIT_HCA_VERSION_OFFSET 0x000 #define INIT_HCA_VERSION 2 +#define INIT_HCA_VXLAN_OFFSET 0x0c #define INIT_HCA_CACHELINE_SZ_OFFSET 0x0e #define INIT_HCA_FLAGS_OFFSET 0x014 #define INIT_HCA_QPC_OFFSET 0x020 @@ -1277,6 +1372,7 @@ #define INIT_HCA_CQC_BASE_OFFSET (INIT_HCA_QPC_OFFSET + 0x30) #define INIT_HCA_LOG_CQ_OFFSET (INIT_HCA_QPC_OFFSET + 0x37) #define INIT_HCA_EQE_CQE_OFFSETS (INIT_HCA_QPC_OFFSET + 0x38) +#define INIT_HCA_EQE_CQE_STRIDE_OFFSET (INIT_HCA_QPC_OFFSET + 0x3b) #define INIT_HCA_ALTC_BASE_OFFSET (INIT_HCA_QPC_OFFSET + 0x40) #define INIT_HCA_AUXC_BASE_OFFSET (INIT_HCA_QPC_OFFSET + 0x50) #define INIT_HCA_EQC_BASE_OFFSET (INIT_HCA_QPC_OFFSET + 0x60) @@ -1353,11 +1449,25 @@ if (dev->caps.flags & MLX4_DEV_CAP_FLAG_64B_CQE) { *(inbox + INIT_HCA_EQE_CQE_OFFSETS / 4) |= cpu_to_be32(1 << 30); dev->caps.cqe_size = 64; - dev->caps.userspace_caps |= MLX4_USER_DEV_CAP_64B_CQE; + dev->caps.userspace_caps |= MLX4_USER_DEV_CAP_LARGE_CQE; } else { dev->caps.cqe_size = 32; } + /* CX3 is capable of extending CQEs\EQEs to strides larger than 64B */ + if ((dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_EQE_STRIDE) && + (dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_CQE_STRIDE)) { + dev->caps.eqe_size = cache_line_size(); + dev->caps.cqe_size = cache_line_size(); + dev->caps.eqe_factor = 0; + MLX4_PUT(inbox, (u8)((ilog2(dev->caps.eqe_size) - 5) << 4 | + (ilog2(dev->caps.eqe_size) - 5)), + INIT_HCA_EQE_CQE_STRIDE_OFFSET); + + /* User still need to know to support CQE > 32B */ + dev->caps.userspace_caps |= MLX4_USER_DEV_CAP_LARGE_CQE; + } + /* QPC/EEC/CQC/EQC/RDMARC attributes */ MLX4_PUT(inbox, param->qpc_base, INIT_HCA_QPC_BASE_OFFSET); @@ -1425,6 +1535,12 @@ MLX4_PUT(inbox, param->uar_page_sz, INIT_HCA_UAR_PAGE_SZ_OFFSET); MLX4_PUT(inbox, param->log_uar_sz, INIT_HCA_LOG_UAR_SZ_OFFSET); + /* set parser VXLAN attributes */ + if (dev->caps.flags2 & MLX4_DEV_CAP_FLAG2_VXLAN_OFFLOADS) { + u8 parser_params = 0; + MLX4_PUT(inbox, parser_params, INIT_HCA_VXLAN_OFFSET); + } + err = mlx4_cmd(dev, mailbox->dma, 0, 0, MLX4_CMD_INIT_HCA, 10000, MLX4_CMD_NATIVE); @@ -1511,6 +1627,17 @@ if (byte_field & 0x40) /* 64-bytes cqe enabled */ param->dev_cap_enabled |= MLX4_DEV_CAP_64B_CQE_ENABLED; + /* CX3 is capable of extending CQEs\EQEs to strides larger than 64B */ + MLX4_GET(byte_field, outbox, INIT_HCA_EQE_CQE_STRIDE_OFFSET); + if (byte_field) { + param->dev_cap_enabled |= MLX4_DEV_CAP_64B_EQE_ENABLED; + param->dev_cap_enabled |= MLX4_DEV_CAP_64B_CQE_ENABLED; + param->cqe_size = 1 << ((byte_field & + MLX4_CQE_SIZE_MASK_STRIDE) + 5); + param->eqe_size = 1 << (((byte_field & + MLX4_EQE_SIZE_MASK_STRIDE) >> 4) + 5); + } + /* TPT attributes */ MLX4_GET(param->dmpt_base, outbox, INIT_HCA_DMPT_BASE_OFFSET); @@ -1550,9 +1677,12 @@ struct mlx4_cmd_info *cmd) { struct mlx4_priv *priv = mlx4_priv(dev); - int port = vhcr->in_modifier; + int port = mlx4_slave_convert_port(dev, slave, vhcr->in_modifier); int err; + if (port < 0) + return -EINVAL; + if (priv->mfunc.master.slave_state[slave].init_port_mask & (1 << port)) return 0; @@ -1642,9 +1772,12 @@ struct mlx4_cmd_info *cmd) { struct mlx4_priv *priv = mlx4_priv(dev); - int port = vhcr->in_modifier; + int port = mlx4_slave_convert_port(dev, slave, vhcr->in_modifier); int err; + if (port < 0) + return -EINVAL; + if (!(priv->mfunc.master.slave_state[slave].init_port_mask & (1 << port))) return 0; @@ -1689,6 +1822,46 @@ MLX4_CMD_NATIVE); } +struct mlx4_config_dev { + __be32 update_flags; + __be32 rsdv1[3]; + __be16 vxlan_udp_dport; + __be16 rsvd2; +}; + +#define MLX4_VXLAN_UDP_DPORT (1 << 0) + +static int mlx4_CONFIG_DEV(struct mlx4_dev *dev, struct mlx4_config_dev *config_dev) +{ + int err; + struct mlx4_cmd_mailbox *mailbox; + + mailbox = mlx4_alloc_cmd_mailbox(dev); + if (IS_ERR(mailbox)) + return PTR_ERR(mailbox); + + memcpy(mailbox->buf, config_dev, sizeof(*config_dev)); + + err = mlx4_cmd(dev, mailbox->dma, 0, 0, MLX4_CMD_CONFIG_DEV, + MLX4_CMD_TIME_CLASS_B, MLX4_CMD_NATIVE); + + mlx4_free_cmd_mailbox(dev, mailbox); + return err; +} + +int mlx4_config_vxlan_port(struct mlx4_dev *dev, __be16 udp_port) +{ + struct mlx4_config_dev config_dev; + + memset(&config_dev, 0, sizeof(config_dev)); + config_dev.update_flags = cpu_to_be32(MLX4_VXLAN_UDP_DPORT); + config_dev.vxlan_udp_dport = udp_port; + + return mlx4_CONFIG_DEV(dev, &config_dev); +} +EXPORT_SYMBOL_GPL(mlx4_config_vxlan_port); + + int mlx4_SET_ICM_SIZE(struct mlx4_dev *dev, u64 icm_size, u64 *aux_pages) { int ret = mlx4_cmd_imm(dev, icm_size, aux_pages, 0, 0, @@ -1713,6 +1886,43 @@ return mlx4_cmd(dev, 0, 0x1f, 0, MLX4_CMD_NOP, 100, MLX4_CMD_NATIVE); } +int mlx4_get_phys_port_id(struct mlx4_dev *dev) +{ + u8 port; + u32 *outbox; + struct mlx4_cmd_mailbox *mailbox; + u32 in_mod; + u32 guid_hi, guid_lo; + int err, ret = 0; +#define MOD_STAT_CFG_PORT_OFFSET 8 +#define MOD_STAT_CFG_GUID_H 0X14 +#define MOD_STAT_CFG_GUID_L 0X1c + + mailbox = mlx4_alloc_cmd_mailbox(dev); + if (IS_ERR(mailbox)) + return PTR_ERR(mailbox); + outbox = mailbox->buf; + + for (port = 1; port <= dev->caps.num_ports; port++) { + in_mod = port << MOD_STAT_CFG_PORT_OFFSET; + err = mlx4_cmd_box(dev, 0, mailbox->dma, in_mod, 0x2, + MLX4_CMD_MOD_STAT_CFG, MLX4_CMD_TIME_CLASS_A, + MLX4_CMD_NATIVE); + if (err) { + mlx4_err(dev, "Fail to get port %d uplink guid\n", + port); + ret = err; + } else { + MLX4_GET(guid_hi, outbox, MOD_STAT_CFG_GUID_H); + MLX4_GET(guid_lo, outbox, MOD_STAT_CFG_GUID_L); + dev->caps.phys_port_id[port] = (u64)guid_lo | + (u64)guid_hi << 32; + } + } + mlx4_free_cmd_mailbox(dev, mailbox); + return ret; +} + #define MLX4_WOL_SETUP_MODE (5 << 28) int mlx4_wol_read(struct mlx4_dev *dev, u64 *config, int port) { @@ -1819,7 +2029,8 @@ err = EINVAL; break; } - err = mlx4_cmd(dev, 0, ((u32) err | cpu_to_be32(token) << 16), + err = mlx4_cmd(dev, 0, ((u32) err | + (__force u32)cpu_to_be32(token) << 16), 1, MLX4_CMD_GET_OP_REQ, MLX4_CMD_TIME_CLASS_A, MLX4_CMD_NATIVE); if (err) { @@ -1834,3 +2045,142 @@ out: mlx4_free_cmd_mailbox(dev, mailbox); } + +/* Access Reg commands */ +enum mlx4_access_reg_masks { + MLX4_ACCESS_REG_STATUS_MASK = 0x7f, + MLX4_ACCESS_REG_METHOD_MASK = 0x7f, + MLX4_ACCESS_REG_LEN_MASK = 0x7ff +}; + +struct mlx4_access_reg { + __be16 constant1; + u8 status; + u8 resrvd1; + __be16 reg_id; + u8 method; + u8 constant2; + __be32 resrvd2[2]; + __be16 len_const; + __be16 resrvd3; +#define MLX4_ACCESS_REG_HEADER_SIZE (20) + u8 reg_data[MLX4_MAILBOX_SIZE-MLX4_ACCESS_REG_HEADER_SIZE]; +} __attribute__((__packed__)); + +/** + * mlx4_ACCESS_REG - Generic access reg command. + * @dev: mlx4_dev. + * @reg_id: register ID to access. + * @method: Access method Read/Write. + * @reg_len: register length to Read/Write in bytes. + * @reg_data: reg_data pointer to Read/Write From/To. + * + * Access ConnectX registers FW command. + * Returns 0 on success and copies outbox mlx4_access_reg data + * field into reg_data or a negative error code. + */ +static int mlx4_ACCESS_REG(struct mlx4_dev *dev, u16 reg_id, + enum mlx4_access_reg_method method, + u16 reg_len, void *reg_data) +{ + struct mlx4_cmd_mailbox *inbox, *outbox; + struct mlx4_access_reg *inbuf, *outbuf; + int err; + + inbox = mlx4_alloc_cmd_mailbox(dev); + if (IS_ERR(inbox)) + return PTR_ERR(inbox); + + outbox = mlx4_alloc_cmd_mailbox(dev); + if (IS_ERR(outbox)) { + mlx4_free_cmd_mailbox(dev, inbox); + return PTR_ERR(outbox); + } + + inbuf = inbox->buf; + outbuf = outbox->buf; + + inbuf->constant1 = cpu_to_be16(0x1<<11 | 0x4); + inbuf->constant2 = 0x1; + inbuf->reg_id = cpu_to_be16(reg_id); + inbuf->method = method & MLX4_ACCESS_REG_METHOD_MASK; + + reg_len = min(reg_len, (u16)(sizeof(inbuf->reg_data))); + inbuf->len_const = + cpu_to_be16(((reg_len/4 + 1) & MLX4_ACCESS_REG_LEN_MASK) | + ((0x3) << 12)); + + memcpy(inbuf->reg_data, reg_data, reg_len); + err = mlx4_cmd_box(dev, inbox->dma, outbox->dma, 0, 0, + MLX4_CMD_ACCESS_REG, MLX4_CMD_TIME_CLASS_C, + MLX4_CMD_WRAPPED); + if (err) + goto out; + + if (outbuf->status & MLX4_ACCESS_REG_STATUS_MASK) { + err = outbuf->status & MLX4_ACCESS_REG_STATUS_MASK; + mlx4_err(dev, + "MLX4_CMD_ACCESS_REG(%x) returned REG status (%x)\n", + reg_id, err); + goto out; + } + + memcpy(reg_data, outbuf->reg_data, reg_len); +out: + mlx4_free_cmd_mailbox(dev, inbox); + mlx4_free_cmd_mailbox(dev, outbox); + return err; +} + +/* ConnectX registers IDs */ +enum mlx4_reg_id { + MLX4_REG_ID_PTYS = 0x5004, +}; + +/** + * mlx4_ACCESS_PTYS_REG - Access PTYs (Port Type and Speed) + * register + * @dev: mlx4_dev. + * @method: Access method Read/Write. + * @ptys_reg: PTYS register data pointer. + * + * Access ConnectX PTYS register, to Read/Write Port Type/Speed + * configuration + * Returns 0 on success or a negative error code. + */ +int mlx4_ACCESS_PTYS_REG(struct mlx4_dev *dev, + enum mlx4_access_reg_method method, + struct mlx4_ptys_reg *ptys_reg) +{ + return mlx4_ACCESS_REG(dev, MLX4_REG_ID_PTYS, + method, sizeof(*ptys_reg), ptys_reg); +} +EXPORT_SYMBOL_GPL(mlx4_ACCESS_PTYS_REG); + +int mlx4_ACCESS_REG_wrapper(struct mlx4_dev *dev, int slave, + struct mlx4_vhcr *vhcr, + struct mlx4_cmd_mailbox *inbox, + struct mlx4_cmd_mailbox *outbox, + struct mlx4_cmd_info *cmd) +{ + struct mlx4_access_reg *inbuf = inbox->buf; + u8 method = inbuf->method & MLX4_ACCESS_REG_METHOD_MASK; + u16 reg_id = be16_to_cpu(inbuf->reg_id); + + if (slave != mlx4_master_func_num(dev) && + method == MLX4_ACCESS_REG_WRITE) + return -EPERM; + + if (reg_id == MLX4_REG_ID_PTYS) { + struct mlx4_ptys_reg *ptys_reg = + (struct mlx4_ptys_reg *)inbuf->reg_data; + + ptys_reg->local_port = + mlx4_slave_convert_port(dev, slave, + ptys_reg->local_port); + } + + return mlx4_cmd_box(dev, inbox->dma, outbox->dma, vhcr->in_modifier, + 0, MLX4_CMD_ACCESS_REG, MLX4_CMD_TIME_CLASS_C, + MLX4_CMD_NATIVE); +} --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/fw.h +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/fw.h @@ -140,6 +140,8 @@ u32 qp1_proxy_qpn; u8 physical_port; u8 port_flags; + u8 flags1; + u64 phys_port_id; }; struct mlx4_adapter { @@ -175,6 +177,8 @@ u8 uar_page_sz; /* log pg sz in 4k chunks */ u8 steering_mode; /* for QUERY_HCA */ u64 dev_cap_enabled; + u16 cqe_size; /* For use only when CQE stride feature enabled */ + u16 eqe_size; /* For use only when EQE stride feature enabled */ }; struct mlx4_init_ib_param { --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/main.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/main.c @@ -41,7 +41,6 @@ #include #include #include -#include #include #include @@ -78,13 +77,17 @@ #endif /* CONFIG_PCI_MSI */ -static int num_vfs; -module_param(num_vfs, int, 0444); -MODULE_PARM_DESC(num_vfs, "enable #num_vfs functions if num_vfs > 0"); - -static int probe_vf; -module_param(probe_vf, int, 0644); -MODULE_PARM_DESC(probe_vf, "number of vfs to probe by pf driver (num_vfs > 0)"); +static uint8_t num_vfs[3] = {0, 0, 0}; +static int num_vfs_argc = 3; +module_param_array(num_vfs, byte , &num_vfs_argc, 0444); +MODULE_PARM_DESC(num_vfs, "enable #num_vfs functions if num_vfs > 0\n" + "num_vfs=port1,port2,port1+2"); + +static uint8_t probe_vf[3] = {0, 0, 0}; +static int probe_vfs_argc = 3; +module_param_array(probe_vf, byte, &probe_vfs_argc, 0444); +MODULE_PARM_DESC(probe_vf, "number of vfs to probe by pf driver (num_vfs > 0)\n" + "probe_vf=port1,port2,port1+2"); int mlx4_log_num_mgm_entry_size = MLX4_DEFAULT_MGM_LOG_ENTRY_SIZE; module_param_named(log_num_mgm_entry_size, @@ -96,14 +99,15 @@ " To activate device managed" " flow steering when available, set to -1"); -static bool enable_64b_cqe_eqe; +static bool enable_64b_cqe_eqe = true; module_param(enable_64b_cqe_eqe, bool, 0444); MODULE_PARM_DESC(enable_64b_cqe_eqe, - "Enable 64 byte CQEs/EQEs when the FW supports this"); + "Enable 64 byte CQEs/EQEs when the FW supports this (default: True)"); #define HCA_GLOBAL_CAP_MASK 0 -#define PF_CONTEXT_BEHAVIOUR_MASK MLX4_FUNC_CAP_64B_EQE_CQE +#define PF_CONTEXT_BEHAVIOUR_MASK (MLX4_FUNC_CAP_64B_EQE_CQE | \ + MLX4_FUNC_CAP_EQE_CQE_STRIDE) static char mlx4_version[] = DRV_NAME ": Mellanox ConnectX core driver v" @@ -119,6 +123,16 @@ .num_mtt = 1 << 20, /* It is really num mtt segements */ }; +static struct mlx4_profile low_mem_profile = { + .num_qp = 1 << 17, + .num_srq = 1 << 6, + .rdmarc_per_qp = 1 << 4, + .num_cq = 1 << 8, + .num_mcg = 1 << 8, + .num_mpt = 1 << 9, + .num_mtt = 1 << 7, +}; + static int log_num_mac = 7; module_param_named(log_num_mac, log_num_mac, int, 0444); MODULE_PARM_DESC(log_num_mac, "Log2 max number of MACs per ETH port (1-7)"); @@ -128,6 +142,8 @@ MODULE_PARM_DESC(log_num_vlan, "Log2 max number of VLANs per ETH port (0-7)"); /* Log2 max number of VLANs per ETH port (0-7) */ #define MLX4_LOG_NUM_VLANS 7 +#define MLX4_MIN_LOG_NUM_VLANS 0 +#define MLX4_MIN_LOG_NUM_MAC 1 static bool use_prio; module_param_named(use_prio, use_prio, bool, 0444); @@ -150,6 +166,8 @@ struct pci_dev *pdev; }; +static atomic_t pf_loading = ATOMIC_INIT(0); + int mlx4_check_port_params(struct mlx4_dev *dev, enum mlx4_port_type *port_type) { @@ -183,6 +201,40 @@ dev->caps.port_mask[i] = dev->caps.port_type[i]; } +static void mlx4_enable_cqe_eqe_stride(struct mlx4_dev *dev) +{ + struct mlx4_caps *dev_cap = &dev->caps; + + /* FW not supporting or cancelled by user */ + if (!(dev_cap->flags2 & MLX4_DEV_CAP_FLAG2_EQE_STRIDE) || + !(dev_cap->flags2 & MLX4_DEV_CAP_FLAG2_CQE_STRIDE)) + return; + + /* Must have 64B CQE_EQE enabled by FW to use bigger stride + * When FW has NCSI it may decide not to report 64B CQE/EQEs + */ + if (!(dev_cap->flags & MLX4_DEV_CAP_FLAG_64B_EQE) || + !(dev_cap->flags & MLX4_DEV_CAP_FLAG_64B_CQE)) { + dev_cap->flags2 &= ~MLX4_DEV_CAP_FLAG2_CQE_STRIDE; + dev_cap->flags2 &= ~MLX4_DEV_CAP_FLAG2_EQE_STRIDE; + return; + } + + if (cache_line_size() == 128 || cache_line_size() == 256) { + mlx4_dbg(dev, "Enabling CQE stride cacheLine supported\n"); + /* Changing the real data inside CQE size to 32B */ + dev_cap->flags &= ~MLX4_DEV_CAP_FLAG_64B_CQE; + dev_cap->flags &= ~MLX4_DEV_CAP_FLAG_64B_EQE; + + if (mlx4_is_master(dev)) + dev_cap->function_caps |= MLX4_FUNC_CAP_EQE_CQE_STRIDE; + } else { + mlx4_dbg(dev, "Disabling CQE stride cacheLine unsupported\n"); + dev_cap->flags2 &= ~MLX4_DEV_CAP_FLAG2_CQE_STRIDE; + dev_cap->flags2 &= ~MLX4_DEV_CAP_FLAG2_EQE_STRIDE; + } +} + static int mlx4_dev_cap(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap) { int err; @@ -289,9 +341,14 @@ if (mlx4_is_mfunc(dev)) dev->caps.flags &= ~MLX4_DEV_CAP_FLAG_SENSE_SUPPORT; - dev->caps.log_num_macs = log_num_mac; - dev->caps.log_num_vlans = MLX4_LOG_NUM_VLANS; dev->caps.log_num_prios = use_prio ? 3 : 0; + if (mlx4_low_memory_profile()) { + dev->caps.log_num_macs = MLX4_MIN_LOG_NUM_MAC; + dev->caps.log_num_vlans = MLX4_MIN_LOG_NUM_VLANS; + } else { + dev->caps.log_num_macs = log_num_mac; + dev->caps.log_num_vlans = MLX4_LOG_NUM_VLANS; + } for (i = 1; i <= dev->caps.num_ports; ++i) { dev->caps.port_type[i] = MLX4_PORT_TYPE_NONE; @@ -379,6 +436,14 @@ dev->caps.flags &= ~MLX4_DEV_CAP_FLAG_64B_CQE; dev->caps.flags &= ~MLX4_DEV_CAP_FLAG_64B_EQE; } + + if (dev_cap->flags2 & + (MLX4_DEV_CAP_FLAG2_CQE_STRIDE | + MLX4_DEV_CAP_FLAG2_EQE_STRIDE)) { + mlx4_warn(dev, "Disabling EQE/CQE stride per user request\n"); + dev_cap->flags2 &= ~MLX4_DEV_CAP_FLAG2_CQE_STRIDE; + dev_cap->flags2 &= ~MLX4_DEV_CAP_FLAG2_EQE_STRIDE; + } } if ((dev->caps.flags & @@ -386,8 +451,89 @@ mlx4_is_master(dev)) dev->caps.function_caps |= MLX4_FUNC_CAP_64B_EQE_CQE; + if (!mlx4_is_slave(dev)) + mlx4_enable_cqe_eqe_stride(dev); + return 0; } + +static int mlx4_get_pcie_dev_link_caps(struct mlx4_dev *dev, + enum pci_bus_speed *speed, + enum pcie_link_width *width) +{ + u32 lnkcap1, lnkcap2; + int err1, err2; + +#define PCIE_MLW_CAP_SHIFT 4 /* start of MLW mask in link capabilities */ + + *speed = PCI_SPEED_UNKNOWN; + *width = PCIE_LNK_WIDTH_UNKNOWN; + + err1 = pcie_capability_read_dword(dev->pdev, PCI_EXP_LNKCAP, &lnkcap1); + err2 = pcie_capability_read_dword(dev->pdev, PCI_EXP_LNKCAP2, &lnkcap2); + if (!err2 && lnkcap2) { /* PCIe r3.0-compliant */ + if (lnkcap2 & PCI_EXP_LNKCAP2_SLS_8_0GB) + *speed = PCIE_SPEED_8_0GT; + else if (lnkcap2 & PCI_EXP_LNKCAP2_SLS_5_0GB) + *speed = PCIE_SPEED_5_0GT; + else if (lnkcap2 & PCI_EXP_LNKCAP2_SLS_2_5GB) + *speed = PCIE_SPEED_2_5GT; + } + if (!err1) { + *width = (lnkcap1 & PCI_EXP_LNKCAP_MLW) >> PCIE_MLW_CAP_SHIFT; + if (!lnkcap2) { /* pre-r3.0 */ + if (lnkcap1 & PCI_EXP_LNKCAP_SLS_5_0GB) + *speed = PCIE_SPEED_5_0GT; + else if (lnkcap1 & PCI_EXP_LNKCAP_SLS_2_5GB) + *speed = PCIE_SPEED_2_5GT; + } + } + + if (*speed == PCI_SPEED_UNKNOWN || *width == PCIE_LNK_WIDTH_UNKNOWN) { + return err1 ? err1 : + err2 ? err2 : -EINVAL; + } + return 0; +} + +static void mlx4_check_pcie_caps(struct mlx4_dev *dev) +{ + enum pcie_link_width width, width_cap; + enum pci_bus_speed speed, speed_cap; + int err; + +#define PCIE_SPEED_STR(speed) \ + (speed == PCIE_SPEED_8_0GT ? "8.0GT/s" : \ + speed == PCIE_SPEED_5_0GT ? "5.0GT/s" : \ + speed == PCIE_SPEED_2_5GT ? "2.5GT/s" : \ + "Unknown") + + err = mlx4_get_pcie_dev_link_caps(dev, &speed_cap, &width_cap); + if (err) { + mlx4_warn(dev, + "Unable to determine PCIe device BW capabilities\n"); + return; + } + + err = pcie_get_minimum_link(dev->pdev, &speed, &width); + if (err || speed == PCI_SPEED_UNKNOWN || + width == PCIE_LNK_WIDTH_UNKNOWN) { + mlx4_warn(dev, + "Unable to determine PCI device chain minimum BW\n"); + return; + } + + if (width != width_cap || speed != speed_cap) + mlx4_warn(dev, + "PCIe BW is different than device's capability\n"); + + mlx4_info(dev, "PCIe link speed is %s, device supports %s\n", + PCIE_SPEED_STR(speed), PCIE_SPEED_STR(speed_cap)); + mlx4_info(dev, "PCIe link width is x%d, device supports x%d\n", + width, width_cap); + return; +} + /*The function checks if there are live vf, return the num of them*/ static int mlx4_how_many_lives_vf(struct mlx4_dev *dev) { @@ -606,6 +752,7 @@ dev->caps.qp1_tunnel[i - 1] = func_cap.qp1_tunnel_qpn; dev->caps.qp1_proxy[i - 1] = func_cap.qp1_proxy_qpn; dev->caps.port_mask[i] = dev->caps.port_type[i]; + dev->caps.phys_port_id[i] = func_cap.phys_port_id; if (mlx4_get_slave_pkey_gid_tbl_len(dev, i, &dev->caps.gid_table_len[i], &dev->caps.pkey_table_len[i])) @@ -632,11 +779,22 @@ if (hca_param.dev_cap_enabled & MLX4_DEV_CAP_64B_CQE_ENABLED) { dev->caps.cqe_size = 64; - dev->caps.userspace_caps |= MLX4_USER_DEV_CAP_64B_CQE; + dev->caps.userspace_caps |= MLX4_USER_DEV_CAP_LARGE_CQE; } else { dev->caps.cqe_size = 32; } + if (hca_param.dev_cap_enabled & MLX4_DEV_CAP_EQE_STRIDE_ENABLED) { + dev->caps.eqe_size = hca_param.eqe_size; + dev->caps.eqe_factor = 0; + } + + if (hca_param.dev_cap_enabled & MLX4_DEV_CAP_CQE_STRIDE_ENABLED) { + dev->caps.cqe_size = hca_param.cqe_size; + /* User still need to know when CQE > 32B */ + dev->caps.userspace_caps |= MLX4_USER_DEV_CAP_LARGE_CQE; + } + dev->caps.flags2 &= ~MLX4_DEV_CAP_FLAG2_TS; mlx4_warn(dev, "Timestamping is not supported in slave mode.\n"); @@ -670,10 +828,10 @@ has_eth_port = true; } - if (has_ib_port) - request_module_nowait(IB_DRV_NAME); if (has_eth_port) request_module_nowait(EN_DRV_NAME); + if (has_ib_port || (dev->caps.flags & MLX4_DEV_CAP_FLAG_IBOE)) + request_module_nowait(IB_DRV_NAME); } /* @@ -1328,6 +1486,11 @@ u32 slave_read; u32 cmd_channel_ver; + if (atomic_read(&pf_loading)) { + mlx4_warn(dev, "PF is not ready. Deferring probe\n"); + return -EPROBE_DEFER; + } + mutex_lock(&priv->cmd.slave_cmd_mutex); priv->cmd.max_cmds = 1; mlx4_warn(dev, "Sending reset\n"); @@ -1384,7 +1547,11 @@ int i; for (i = 1; i <= dev->caps.num_ports; i++) { - dev->caps.gid_table_len[i] = 1; + if (dev->caps.port_type[i] == MLX4_PORT_TYPE_ETH) + dev->caps.gid_table_len[i] = + mlx4_get_slave_num_gids(dev, 0, i); + else + dev->caps.gid_table_len[i] = 1; dev->caps.pkey_table_len[i] = dev->phys_caps.pkey_phys_table_len[i] - 1; } @@ -1409,7 +1576,7 @@ if (mlx4_log_num_mgm_entry_size == -1 && dev_cap->flags2 & MLX4_DEV_CAP_FLAG2_FS_EN && (!mlx4_is_mfunc(dev) || - (dev_cap->fs_max_num_qp_per_entry >= (num_vfs + 1))) && + (dev_cap->fs_max_num_qp_per_entry >= (dev->num_vfs + 1))) && choose_log_fs_mgm_entry_size(dev_cap->fs_max_num_qp_per_entry) >= MLX4_MIN_MGM_LOG_ENTRY_SIZE) { dev->oper_log_mgm_entry_size = @@ -1443,6 +1610,19 @@ mlx4_log_num_mgm_entry_size); } +static void choose_tunnel_offload_mode(struct mlx4_dev *dev, + struct mlx4_dev_cap *dev_cap) +{ + if (dev->caps.steering_mode == MLX4_STEERING_MODE_DEVICE_MANAGED && + dev_cap->flags2 & MLX4_DEV_CAP_FLAG2_VXLAN_OFFLOADS) + dev->caps.tunnel_offload_mode = MLX4_TUNNEL_OFFLOAD_MODE_VXLAN; + else + dev->caps.tunnel_offload_mode = MLX4_TUNNEL_OFFLOAD_MODE_NONE; + + mlx4_dbg(dev, "Tunneling offload mode is: %s\n", (dev->caps.tunnel_offload_mode + == MLX4_TUNNEL_OFFLOAD_MODE_VXLAN) ? "vxlan" : "none"); +} + static int mlx4_init_hca(struct mlx4_dev *dev) { struct mlx4_priv *priv = mlx4_priv(dev); @@ -1483,11 +1663,21 @@ } choose_steering_mode(dev, &dev_cap); + choose_tunnel_offload_mode(dev, &dev_cap); + + err = mlx4_get_phys_port_id(dev); + if (err) + mlx4_err(dev, "Fail to get physical port id\n"); if (mlx4_is_master(dev)) mlx4_parav_master_pf_caps(dev); - profile = default_profile; + if (mlx4_low_memory_profile()) { + mlx4_info(dev, "Running from within kdump kernel. Using low memory profile\n"); + profile = low_mem_profile; + } else { + profile = default_profile; + } if (dev->caps.steering_mode == MLX4_STEERING_MODE_DEVICE_MANAGED) profile.num_mcg = MLX4_FS_NUM_MCG; @@ -1654,7 +1844,7 @@ void __mlx4_counter_free(struct mlx4_dev *dev, u32 idx) { - mlx4_bitmap_free(&mlx4_priv(dev)->counters_bitmap, idx); + mlx4_bitmap_free(&mlx4_priv(dev)->counters_bitmap, idx, MLX4_USE_RR); return; } @@ -1877,7 +2067,7 @@ struct mlx4_priv *priv = mlx4_priv(dev); struct msix_entry *entries; int nreq = min_t(int, dev->caps.num_ports * - min_t(int, netif_get_num_default_rss_queues() + 1, + min_t(int, num_online_cpus() + 1, MAX_MSIX_P_PORT) + MSIX_LEGACY_SZ, MAX_MSIX); int err; int i; @@ -1944,6 +2134,7 @@ if (!mlx4_is_slave(dev)) { mlx4_init_mac_table(dev, &info->mac_table); mlx4_init_vlan_table(dev, &info->vlan_table); + mlx4_init_roce_gid_table(dev, &info->gid_table); info->base_qpn = mlx4_get_base_qpn(dev, port); } @@ -2097,6 +2288,13 @@ struct mlx4_dev *dev; int err; int port; + int nvfs[MLX4_MAX_PORTS + 1] = {0, 0, 0}; + int prb_vf[MLX4_MAX_PORTS + 1] = {0, 0, 0}; + const int param_map[MLX4_MAX_PORTS + 1][MLX4_MAX_PORTS + 1] = { + {2, 0, 0}, {0, 1, 2}, {0, 1, 2} }; + unsigned total_vfs = 0; + int sriov_initialized = 0; + unsigned int i; pr_info(DRV_NAME ": Initializing %s\n", pci_name(pdev)); @@ -2111,17 +2309,40 @@ * per port, we must limit the number of VFs to 63 (since their are * 128 MACs) */ - if (num_vfs >= MLX4_MAX_NUM_VF) { + for (i = 0; i < sizeof(nvfs)/sizeof(nvfs[0]) && i < num_vfs_argc; + total_vfs += nvfs[param_map[num_vfs_argc - 1][i]], i++) { + nvfs[param_map[num_vfs_argc - 1][i]] = num_vfs[i]; + if (nvfs[i] < 0) { + dev_err(&pdev->dev, "num_vfs module parameter cannot be negative\n"); + return -EINVAL; + } + } + for (i = 0; i < sizeof(prb_vf)/sizeof(prb_vf[0]) && i < probe_vfs_argc; + i++) { + prb_vf[param_map[probe_vfs_argc - 1][i]] = probe_vf[i]; + if (prb_vf[i] < 0 || prb_vf[i] > nvfs[i]) { + dev_err(&pdev->dev, "probe_vf module parameter cannot be negative or greater than num_vfs\n"); + return -EINVAL; + } + } + if (total_vfs >= MLX4_MAX_NUM_VF) { dev_err(&pdev->dev, "Requested more VF's (%d) than allowed (%d)\n", - num_vfs, MLX4_MAX_NUM_VF - 1); + total_vfs, MLX4_MAX_NUM_VF - 1); return -EINVAL; } - if (num_vfs < 0) { - pr_err("num_vfs module parameter cannot be negative\n"); - return -EINVAL; + for (i = 0; i < MLX4_MAX_PORTS; i++) { + if (nvfs[i] + nvfs[2] >= MLX4_MAX_NUM_VF_P_PORT) { + dev_err(&pdev->dev, + "Requested more VF's (%d) for port (%d) than allowed (%d)\n", + nvfs[i] + nvfs[2], i + 1, + MLX4_MAX_NUM_VF_P_PORT - 1); + return -EINVAL; + } } + + /* * Check for BARs. */ @@ -2171,13 +2392,8 @@ /* Allow large DMA segments, up to the firmware limit of 1 GB */ dma_set_max_seg_size(&pdev->dev, 1024 * 1024 * 1024); - priv = kzalloc(sizeof(*priv), GFP_KERNEL); - if (!priv) { - err = -ENOMEM; - goto err_release_regions; - } - - dev = &priv->dev; + dev = pci_get_drvdata(pdev); + priv = mlx4_priv(dev); dev->pdev = pdev; INIT_LIST_HEAD(&priv->ctx_list); spin_lock_init(&priv->ctx_lock); @@ -2196,11 +2412,23 @@ if (pci_dev_data & MLX4_PCI_DEV_IS_VF) { /* When acting as pf, we normally skip vfs unless explicitly * requested to probe them. */ - if (num_vfs && extended_func_num(pdev) > probe_vf) { - mlx4_warn(dev, "Skipping virtual function:%d\n", - extended_func_num(pdev)); - err = -ENODEV; - goto err_free_dev; + if (total_vfs) { + unsigned vfs_offset = 0; + for (i = 0; i < sizeof(nvfs)/sizeof(nvfs[0]) && + vfs_offset + nvfs[i] < extended_func_num(pdev); + vfs_offset += nvfs[i], i++) + ; + if (i == sizeof(nvfs)/sizeof(nvfs[0])) { + err = -ENODEV; + goto err_free_dev; + } + if ((extended_func_num(pdev) - vfs_offset) + > prb_vf[i]) { + mlx4_warn(dev, "Skipping virtual function:%d\n", + extended_func_num(pdev)); + err = -ENODEV; + goto err_free_dev; + } } mlx4_warn(dev, "Detected virtual function - running in slave mode\n"); dev->flags |= MLX4_FLAG_SLAVE; @@ -2220,18 +2448,30 @@ } } - if (num_vfs) { - mlx4_warn(dev, "Enabling SR-IOV with %d VFs\n", num_vfs); - err = pci_enable_sriov(pdev, num_vfs); - if (err) { - mlx4_err(dev, "Failed to enable SR-IOV, continuing without SR-IOV (err = %d).\n", - err); + if (total_vfs) { + mlx4_warn(dev, "Enabling SR-IOV with %d VFs\n", + total_vfs); + dev->dev_vfs = kzalloc( + total_vfs * sizeof(*dev->dev_vfs), + GFP_KERNEL); + if (NULL == dev->dev_vfs) { + mlx4_err(dev, "Failed to allocate memory for VFs\n"); err = 0; } else { - mlx4_warn(dev, "Running in master mode\n"); - dev->flags |= MLX4_FLAG_SRIOV | - MLX4_FLAG_MASTER; - dev->num_vfs = num_vfs; + atomic_inc(&pf_loading); + err = pci_enable_sriov(pdev, total_vfs); + if (err) { + mlx4_err(dev, "Failed to enable SR-IOV, continuing without SR-IOV (err = %d).\n", + err); + atomic_dec(&pf_loading); + err = 0; + } else { + mlx4_warn(dev, "Running in master mode\n"); + dev->flags |= MLX4_FLAG_SRIOV | + MLX4_FLAG_MASTER; + dev->num_vfs = total_vfs; + sriov_initialized = 1; + } } } @@ -2287,15 +2527,45 @@ goto err_mfunc; } + /* check if the device is functioning at its maximum possible speed. + * No return code for this call, just warn the user in case of PCI + * express device capabilities are under-satisfied by the bus. + */ + if (!mlx4_is_slave(dev)) + mlx4_check_pcie_caps(dev); + /* In master functions, the communication channel must be initialized * after obtaining its address from fw */ if (mlx4_is_master(dev)) { + unsigned sum = 0; err = mlx4_multi_func_init(dev); if (err) { mlx4_err(dev, "Failed to init master mfunc" "interface, aborting.\n"); goto err_close; } + if (sriov_initialized) { + int ib_ports = 0; + mlx4_foreach_port(i, dev, MLX4_PORT_TYPE_IB) + ib_ports++; + + if (ib_ports && + (num_vfs_argc > 1 || probe_vfs_argc > 1)) { + mlx4_err(dev, + "Invalid syntax of num_vfs/probe_vfs with IB port - single port VFs syntax is only supported when all ports are configured as ethernet\n"); + err = -EINVAL; + goto err_master_mfunc; + } + for (i = 0; i < sizeof(nvfs)/sizeof(nvfs[0]); i++) { + unsigned j; + for (j = 0; j < nvfs[i]; ++sum, ++j) { + dev->dev_vfs[sum].min_port = + i < 2 ? i + 1 : 1; + dev->dev_vfs[sum].n_ports = i < 2 ? 1 : + dev->caps.num_ports; + } + } + } } err = mlx4_alloc_eq_table(dev); @@ -2350,8 +2620,10 @@ mlx4_sense_init(dev); mlx4_start_sense(dev); - priv->pci_dev_data = pci_dev_data; - pci_set_drvdata(pdev, dev); + priv->removed = 0; + + if (mlx4_is_master(dev) && dev->num_vfs) + atomic_dec(&pf_loading); return 0; @@ -2403,6 +2675,11 @@ if (!mlx4_is_slave(dev)) mlx4_free_ownership(dev); + if (mlx4_is_master(dev) && dev->num_vfs) + atomic_dec(&pf_loading); + + kfree(priv->dev.dev_vfs); + err_free_dev: kfree(priv); @@ -2417,84 +2694,110 @@ static int mlx4_init_one(struct pci_dev *pdev, const struct pci_device_id *id) { + struct mlx4_priv *priv; + struct mlx4_dev *dev; + printk_once(KERN_INFO "%s", mlx4_version); + priv = kzalloc(sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + dev = &priv->dev; + pci_set_drvdata(pdev, dev); + priv->pci_dev_data = id->driver_data; + return __mlx4_init_one(pdev, id->driver_data); } -static void mlx4_remove_one(struct pci_dev *pdev) +static void __mlx4_remove_one(struct pci_dev *pdev) { struct mlx4_dev *dev = pci_get_drvdata(pdev); struct mlx4_priv *priv = mlx4_priv(dev); + int pci_dev_data; int p; - if (dev) { - /* in SRIOV it is not allowed to unload the pf's - * driver while there are alive vf's */ - if (mlx4_is_master(dev)) { - if (mlx4_how_many_lives_vf(dev)) - printk(KERN_ERR "Removing PF when there are assigned VF's !!!\n"); - } - mlx4_stop_sense(dev); - mlx4_unregister_device(dev); + if (priv->removed) + return; - for (p = 1; p <= dev->caps.num_ports; p++) { - mlx4_cleanup_port_info(&priv->port[p]); - mlx4_CLOSE_PORT(dev, p); - } + pci_dev_data = priv->pci_dev_data; - if (mlx4_is_master(dev)) - mlx4_free_resource_tracker(dev, - RES_TR_FREE_SLAVES_ONLY); + /* in SRIOV it is not allowed to unload the pf's + * driver while there are alive vf's */ + if (mlx4_is_master(dev) && mlx4_how_many_lives_vf(dev)) + printk(KERN_ERR "Removing PF when there are assigned VF's !!!\n"); + mlx4_stop_sense(dev); + mlx4_unregister_device(dev); + + for (p = 1; p <= dev->caps.num_ports; p++) { + mlx4_cleanup_port_info(&priv->port[p]); + mlx4_CLOSE_PORT(dev, p); + } - mlx4_cleanup_counters_table(dev); - mlx4_cleanup_qp_table(dev); - mlx4_cleanup_srq_table(dev); - mlx4_cleanup_cq_table(dev); - mlx4_cmd_use_polling(dev); - mlx4_cleanup_eq_table(dev); - mlx4_cleanup_mcg_table(dev); - mlx4_cleanup_mr_table(dev); - mlx4_cleanup_xrcd_table(dev); - mlx4_cleanup_pd_table(dev); + if (mlx4_is_master(dev)) + mlx4_free_resource_tracker(dev, + RES_TR_FREE_SLAVES_ONLY); - if (mlx4_is_master(dev)) - mlx4_free_resource_tracker(dev, - RES_TR_FREE_STRUCTS_ONLY); + mlx4_cleanup_counters_table(dev); + mlx4_cleanup_qp_table(dev); + mlx4_cleanup_srq_table(dev); + mlx4_cleanup_cq_table(dev); + mlx4_cmd_use_polling(dev); + mlx4_cleanup_eq_table(dev); + mlx4_cleanup_mcg_table(dev); + mlx4_cleanup_mr_table(dev); + mlx4_cleanup_xrcd_table(dev); + mlx4_cleanup_pd_table(dev); - iounmap(priv->kar); - mlx4_uar_free(dev, &priv->driver_uar); - mlx4_cleanup_uar_table(dev); - if (!mlx4_is_slave(dev)) - mlx4_clear_steering(dev); - mlx4_free_eq_table(dev); - if (mlx4_is_master(dev)) - mlx4_multi_func_cleanup(dev); - mlx4_close_hca(dev); - if (mlx4_is_slave(dev)) - mlx4_multi_func_cleanup(dev); - mlx4_cmd_cleanup(dev); - - if (dev->flags & MLX4_FLAG_MSI_X) - pci_disable_msix(pdev); - if (dev->flags & MLX4_FLAG_SRIOV) { - mlx4_warn(dev, "Disabling SR-IOV\n"); - pci_disable_sriov(pdev); - } - - if (!mlx4_is_slave(dev)) - mlx4_free_ownership(dev); - - kfree(dev->caps.qp0_tunnel); - kfree(dev->caps.qp0_proxy); - kfree(dev->caps.qp1_tunnel); - kfree(dev->caps.qp1_proxy); - - kfree(priv); - pci_release_regions(pdev); - pci_disable_device(pdev); - pci_set_drvdata(pdev, NULL); + if (mlx4_is_master(dev)) + mlx4_free_resource_tracker(dev, + RES_TR_FREE_STRUCTS_ONLY); + + iounmap(priv->kar); + mlx4_uar_free(dev, &priv->driver_uar); + mlx4_cleanup_uar_table(dev); + if (!mlx4_is_slave(dev)) + mlx4_clear_steering(dev); + mlx4_free_eq_table(dev); + if (mlx4_is_master(dev)) + mlx4_multi_func_cleanup(dev); + mlx4_close_hca(dev); + if (mlx4_is_slave(dev)) + mlx4_multi_func_cleanup(dev); + mlx4_cmd_cleanup(dev); + + if (dev->flags & MLX4_FLAG_MSI_X) + pci_disable_msix(pdev); + if (dev->flags & MLX4_FLAG_SRIOV) { + mlx4_warn(dev, "Disabling SR-IOV\n"); + pci_disable_sriov(pdev); + dev->num_vfs = 0; } + + if (!mlx4_is_slave(dev)) + mlx4_free_ownership(dev); + + kfree(dev->caps.qp0_tunnel); + kfree(dev->caps.qp0_proxy); + kfree(dev->caps.qp1_tunnel); + kfree(dev->caps.qp1_proxy); + kfree(dev->dev_vfs); + + pci_release_regions(pdev); + pci_disable_device(pdev); + memset(priv, 0, sizeof(*priv)); + priv->pci_dev_data = pci_dev_data; + priv->removed = 1; +} + +static void mlx4_remove_one(struct pci_dev *pdev) +{ + struct mlx4_dev *dev = pci_get_drvdata(pdev); + struct mlx4_priv *priv = mlx4_priv(dev); + + __mlx4_remove_one(pdev); + kfree(priv); + pci_set_drvdata(pdev, NULL); } int mlx4_restart_one(struct pci_dev *pdev) @@ -2504,7 +2807,7 @@ int pci_dev_data; pci_dev_data = priv->pci_dev_data; - mlx4_remove_one(pdev); + __mlx4_remove_one(pdev); return __mlx4_init_one(pdev, pci_dev_data); } @@ -2559,7 +2862,7 @@ static pci_ers_result_t mlx4_pci_err_detected(struct pci_dev *pdev, pci_channel_state_t state) { - mlx4_remove_one(pdev); + __mlx4_remove_one(pdev); return state == pci_channel_io_perm_failure ? PCI_ERS_RESULT_DISCONNECT : PCI_ERS_RESULT_NEED_RESET; @@ -2567,7 +2870,11 @@ static pci_ers_result_t mlx4_pci_slot_reset(struct pci_dev *pdev) { - int ret = __mlx4_init_one(pdev, 0); + struct mlx4_dev *dev = pci_get_drvdata(pdev); + struct mlx4_priv *priv = mlx4_priv(dev); + int ret; + + ret = __mlx4_init_one(pdev, priv->pci_dev_data); return ret ? PCI_ERS_RESULT_DISCONNECT : PCI_ERS_RESULT_RECOVERED; } @@ -2581,6 +2888,7 @@ .name = DRV_NAME, .id_table = mlx4_pci_table, .probe = mlx4_init_one, + .shutdown = __mlx4_remove_one, .remove = mlx4_remove_one, .err_handler = &mlx4_err_handler, }; --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/mcg.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/mcg.c @@ -125,9 +125,14 @@ enum mlx4_steer_type steer, u32 qpn) { - struct mlx4_steer *s_steer = &mlx4_priv(dev)->steer[port - 1]; + struct mlx4_steer *s_steer; struct mlx4_promisc_qp *pqp; + if (port < 1 || port > dev->caps.num_ports) + return NULL; + + s_steer = &mlx4_priv(dev)->steer[port - 1]; + list_for_each_entry(pqp, &s_steer->promisc_qps[steer], list) { if (pqp->qpn == qpn) return pqp; @@ -154,6 +159,9 @@ u32 prot; int err; + if (port < 1 || port > dev->caps.num_ports) + return -EINVAL; + s_steer = &mlx4_priv(dev)->steer[port - 1]; new_entry = kzalloc(sizeof *new_entry, GFP_KERNEL); if (!new_entry) @@ -238,6 +246,9 @@ struct mlx4_promisc_qp *pqp; struct mlx4_promisc_qp *dqp; + if (port < 1 || port > dev->caps.num_ports) + return -EINVAL; + s_steer = &mlx4_priv(dev)->steer[port - 1]; pqp = get_promisc_qp(dev, port, steer, qpn); @@ -283,6 +294,9 @@ struct mlx4_steer_index *tmp_entry, *entry = NULL; struct mlx4_promisc_qp *dqp, *tmp_dqp; + if (port < 1 || port > dev->caps.num_ports) + return NULL; + s_steer = &mlx4_priv(dev)->steer[port - 1]; /* if qp is not promisc, it cannot be duplicated */ @@ -324,6 +338,9 @@ bool ret = false; int i; + if (port < 1 || port > dev->caps.num_ports) + return NULL; + s_steer = &mlx4_priv(dev)->steer[port - 1]; mailbox = mlx4_alloc_cmd_mailbox(dev); @@ -378,6 +395,9 @@ int err; struct mlx4_priv *priv = mlx4_priv(dev); + if (port < 1 || port > dev->caps.num_ports) + return -EINVAL; + s_steer = &mlx4_priv(dev)->steer[port - 1]; mutex_lock(&priv->mcg_table.mutex); @@ -484,6 +504,9 @@ int loc, i; int err; + if (port < 1 || port > dev->caps.num_ports) + return -EINVAL; + s_steer = &mlx4_priv(dev)->steer[port - 1]; mutex_lock(&priv->mcg_table.mutex); @@ -674,7 +697,8 @@ [MLX4_NET_TRANS_RULE_ID_IPV6] = 0xE003, [MLX4_NET_TRANS_RULE_ID_IPV4] = 0xE002, [MLX4_NET_TRANS_RULE_ID_TCP] = 0xE004, - [MLX4_NET_TRANS_RULE_ID_UDP] = 0xE006 + [MLX4_NET_TRANS_RULE_ID_UDP] = 0xE006, + [MLX4_NET_TRANS_RULE_ID_VXLAN] = 0xE008 }; int mlx4_map_sw_to_hw_steering_id(struct mlx4_dev *dev, @@ -699,7 +723,9 @@ [MLX4_NET_TRANS_RULE_ID_TCP] = sizeof(struct mlx4_net_trans_rule_hw_tcp_udp), [MLX4_NET_TRANS_RULE_ID_UDP] = - sizeof(struct mlx4_net_trans_rule_hw_tcp_udp) + sizeof(struct mlx4_net_trans_rule_hw_tcp_udp), + [MLX4_NET_TRANS_RULE_ID_VXLAN] = + sizeof(struct mlx4_net_trans_rule_hw_vxlan) }; int mlx4_hw_rule_sz(struct mlx4_dev *dev, @@ -764,6 +790,13 @@ rule_hw->tcp_udp.src_port_msk = spec->tcp_udp.src_port_msk; break; + case MLX4_NET_TRANS_RULE_ID_VXLAN: + rule_hw->vxlan.vni = + cpu_to_be32(be32_to_cpu(spec->vxlan.vni) << 8); + rule_hw->vxlan.vni_mask = + cpu_to_be32(be32_to_cpu(spec->vxlan.vni_mask) << 8); + break; + default: return -EINVAL; } @@ -895,6 +928,23 @@ } EXPORT_SYMBOL_GPL(mlx4_flow_detach); +int mlx4_FLOW_STEERING_IB_UC_QP_RANGE(struct mlx4_dev *dev, u32 min_range_qpn, + u32 max_range_qpn) +{ + int err; + u64 in_param; + + in_param = ((u64) min_range_qpn) << 32; + in_param |= ((u64) max_range_qpn) & 0xFFFFFFFF; + + err = mlx4_cmd(dev, in_param, 0, 0, + MLX4_FLOW_STEERING_IB_UC_QP_RANGE, + MLX4_CMD_TIME_CLASS_A, MLX4_CMD_NATIVE); + + return err; +} +EXPORT_SYMBOL_GPL(mlx4_FLOW_STEERING_IB_UC_QP_RANGE); + int mlx4_qp_attach_common(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16], int block_mcast_loopback, enum mlx4_protocol prot, enum mlx4_steer_type steer) @@ -996,7 +1046,7 @@ index, dev->caps.num_mgms); else mlx4_bitmap_free(&priv->mcg_table.bitmap, - index - dev->caps.num_mgms); + index - dev->caps.num_mgms, MLX4_USE_RR); } mutex_unlock(&priv->mcg_table.mutex); @@ -1087,7 +1137,7 @@ index, amgm_index, dev->caps.num_mgms); else mlx4_bitmap_free(&priv->mcg_table.bitmap, - amgm_index - dev->caps.num_mgms); + amgm_index - dev->caps.num_mgms, MLX4_USE_RR); } } else { /* Remove entry from AMGM */ @@ -1107,7 +1157,7 @@ prev, index, dev->caps.num_mgms); else mlx4_bitmap_free(&priv->mcg_table.bitmap, - index - dev->caps.num_mgms); + index - dev->caps.num_mgms, MLX4_USE_RR); } out: @@ -1337,9 +1387,12 @@ struct mlx4_cmd_info *cmd) { u32 qpn = (u32) vhcr->in_param & 0xffffffff; - u8 port = vhcr->in_param >> 62; + int port = mlx4_slave_convert_port(dev, slave, vhcr->in_param >> 62); enum mlx4_steer_type steer = vhcr->in_modifier; + if (port < 0) + return -EINVAL; + /* Promiscuous unicast is not allowed in mfunc */ if (mlx4_is_mfunc(dev) && steer == MLX4_UC_STEER) return 0; --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/mlx4.h +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/mlx4.h @@ -51,8 +51,8 @@ #define DRV_NAME "mlx4_core" #define PFX DRV_NAME ": " -#define DRV_VERSION "1.1" -#define DRV_RELDATE "Dec, 2011" +#define DRV_VERSION "2.2-1" +#define DRV_RELDATE "Feb, 2014" #define MLX4_FS_UDP_UC_EN (1 << 1) #define MLX4_FS_TCP_UC_EN (1 << 2) @@ -282,6 +282,9 @@ #define MLX4_MPT_STATUS_SW 0xF0 #define MLX4_MPT_STATUS_HW 0x00 +#define MLX4_CQE_SIZE_MASK_STRIDE 0x3 +#define MLX4_EQE_SIZE_MASK_STRIDE 0x30 + /* * Must be packed because mtt_seg is 64 bits but only aligned to 32 bits. */ @@ -695,6 +698,17 @@ int max; }; +#define MLX4_ROCE_GID_ENTRY_SIZE 16 + +struct mlx4_roce_gid_entry { + u8 raw[MLX4_ROCE_GID_ENTRY_SIZE]; +}; + +struct mlx4_roce_gid_table { + struct mlx4_roce_gid_entry roce_gids[MLX4_ROCE_MAX_GIDS]; + struct mutex mutex; +}; + #define MLX4_MAX_VLAN_NUM 128 #define MLX4_VLAN_TABLE_SIZE (MLX4_MAX_VLAN_NUM << 2) @@ -758,6 +772,7 @@ struct device_attribute port_mtu_attr; struct mlx4_mac_table mac_table; struct mlx4_vlan_table vlan_table; + struct mlx4_roce_gid_table gid_table; int base_qpn; }; @@ -783,6 +798,11 @@ MLX4_PCI_DEV_FORCE_SENSE_PORT = 1 << 1, }; +enum { + MLX4_NO_RR = 0, + MLX4_USE_RR = 1, +}; + struct mlx4_priv { struct mlx4_dev dev; @@ -791,6 +811,7 @@ spinlock_t ctx_lock; int pci_dev_data; + int removed; struct list_head pgdir_list; struct mutex pgdir_mutex; @@ -844,9 +865,10 @@ extern struct workqueue_struct *mlx4_wq; u32 mlx4_bitmap_alloc(struct mlx4_bitmap *bitmap); -void mlx4_bitmap_free(struct mlx4_bitmap *bitmap, u32 obj); +void mlx4_bitmap_free(struct mlx4_bitmap *bitmap, u32 obj, int use_rr); u32 mlx4_bitmap_alloc_range(struct mlx4_bitmap *bitmap, int cnt, int align); -void mlx4_bitmap_free_range(struct mlx4_bitmap *bitmap, u32 obj, int cnt); +void mlx4_bitmap_free_range(struct mlx4_bitmap *bitmap, u32 obj, int cnt, + int use_rr); u32 mlx4_bitmap_avail(struct mlx4_bitmap *bitmap); int mlx4_bitmap_init(struct mlx4_bitmap *bitmap, u32 num, u32 mask, u32 reserved_bot, u32 resetrved_top); @@ -1128,6 +1150,8 @@ void mlx4_init_mac_table(struct mlx4_dev *dev, struct mlx4_mac_table *table); void mlx4_init_vlan_table(struct mlx4_dev *dev, struct mlx4_vlan_table *table); +void mlx4_init_roce_gid_table(struct mlx4_dev *dev, + struct mlx4_roce_gid_table *table); void __mlx4_unregister_vlan(struct mlx4_dev *dev, u8 port, u16 vlan); int __mlx4_register_vlan(struct mlx4_dev *dev, u8 port, u16 vlan, int *index); @@ -1137,6 +1161,7 @@ enum mlx4_resource resource_type, u64 resource_id, int *slave); void mlx4_delete_all_resources_for_slave(struct mlx4_dev *dev, int slave_id); +void mlx4_reset_roce_gids(struct mlx4_dev *dev, int slave); int mlx4_init_resource_tracker(struct mlx4_dev *dev); void mlx4_free_resource_tracker(struct mlx4_dev *dev, @@ -1183,6 +1208,12 @@ struct mlx4_cmd_mailbox *outbox, struct mlx4_cmd_info *cmd); +int mlx4_UPDATE_QP_wrapper(struct mlx4_dev *dev, int slave, + struct mlx4_vhcr *vhcr, + struct mlx4_cmd_mailbox *inbox, + struct mlx4_cmd_mailbox *outbox, + struct mlx4_cmd_info *cmd); + int mlx4_PROMISC_wrapper(struct mlx4_dev *dev, int slave, struct mlx4_vhcr *vhcr, struct mlx4_cmd_mailbox *inbox, @@ -1236,6 +1267,11 @@ struct mlx4_cmd_mailbox *inbox, struct mlx4_cmd_mailbox *outbox, struct mlx4_cmd_info *cmd); +int mlx4_ACCESS_REG_wrapper(struct mlx4_dev *dev, int slave, + struct mlx4_vhcr *vhcr, + struct mlx4_cmd_mailbox *inbox, + struct mlx4_cmd_mailbox *outbox, + struct mlx4_cmd_info *cmd); int mlx4_get_mgm_entry_size(struct mlx4_dev *dev); int mlx4_get_qp_per_mgm(struct mlx4_dev *dev); @@ -1271,4 +1307,8 @@ void mlx4_init_quotas(struct mlx4_dev *dev); +int mlx4_get_slave_num_gids(struct mlx4_dev *dev, int slave, int port); +/* Returns the VF index of slave */ +int mlx4_get_vf_indx(struct mlx4_dev *dev, int slave); + #endif /* MLX4_H */ --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h @@ -45,6 +45,7 @@ #include #endif #include +#include #include #include @@ -56,8 +57,8 @@ #include "en_port.h" #define DRV_NAME "mlx4_en" -#define DRV_VERSION "2.0" -#define DRV_RELDATE "Dec 2011" +#define DRV_VERSION "2.2-1" +#define DRV_RELDATE "Feb 2014" #define MLX4_EN_MSG_LEVEL (NETIF_MSG_LINK | NETIF_MSG_IFDOWN) @@ -92,6 +93,8 @@ * OS related constants and tunables */ +#define MLX4_EN_PRIV_FLAGS_BLUEFLAME 1 + #define MLX4_EN_WATCHDOG_TIMEOUT (15 * HZ) /* Use the maximum between 16384 and a single page */ @@ -118,6 +121,7 @@ #define MLX4_EN_MIN_TX_SIZE (4096 / TXBB_SIZE) #define MLX4_EN_SMALL_PKT_SIZE 64 +#define MLX4_EN_MIN_TX_RING_P_UP 1 #define MLX4_EN_MAX_TX_RING_P_UP 32 #define MLX4_EN_NUM_UP 8 #define MLX4_EN_DEF_TX_RING_SIZE 512 @@ -186,6 +190,13 @@ #define GET_AVG_PERF_COUNTER(cnt) (0) #endif /* MLX4_EN_PERF_STAT */ +/* Constants for TX flow */ +enum { + MAX_INLINE = 104, /* 128 - 16 - 4 - 4 */ + MAX_BF = 256, + MIN_PKT_LEN = 17, +}; + /* * Configurables */ @@ -255,6 +266,8 @@ u16 poll_cnt; struct mlx4_en_tx_info *tx_info; u8 *bounce_buf; + u8 queue_index; + cpumask_t affinity_mask; u32 last_nr_txbb; struct mlx4_qp qp; struct mlx4_qp_context context; @@ -264,10 +277,14 @@ unsigned long bytes; unsigned long packets; unsigned long tx_csum; + unsigned long queue_stopped; + unsigned long wake_queue; struct mlx4_bf bf; bool bf_enabled; + bool bf_alloced; struct netdev_queue *tx_queue; int hwtstamp_tx_type; + int inline_thold; }; struct mlx4_en_rx_desc { @@ -300,13 +317,13 @@ unsigned long csum_ok; unsigned long csum_none; int hwtstamp_rx_filter; + cpumask_var_t affinity_mask; }; struct mlx4_en_cq { struct mlx4_cq mcq; struct mlx4_hwq_resources wqres; int ring; - spinlock_t lock; struct net_device *dev; struct napi_struct napi; int size; @@ -330,6 +347,7 @@ #define CQ_USER_PEND (MLX4_EN_CQ_STATE_POLL | MLX4_EN_CQ_STATE_POLL_YIELD) spinlock_t poll_lock; /* protects from LLS/napi conflicts */ #endif /* CONFIG_NET_RX_BUSY_POLL */ + struct irq_desc *irq_desc; }; struct mlx4_en_port_profile { @@ -343,6 +361,7 @@ u8 tx_pause; u8 tx_ppp; int rss_rings; + int inline_thold; }; struct mlx4_en_profile { @@ -373,10 +392,14 @@ u32 priv_pdn; spinlock_t uar_lock; u8 mac_removed[MLX4_MAX_PORTS + 1]; + rwlock_t clock_lock; + u32 nominal_c_mult; struct cyclecounter cycles; struct timecounter clock; unsigned long last_overflow_check; unsigned long overflow_period; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_clock_info; }; @@ -388,10 +411,16 @@ enum mlx4_qp_state indir_state; }; +enum mlx4_en_port_flag { + MLX4_EN_PORT_ANC = 1<<0, /* Auto-negotiation complete */ + MLX4_EN_PORT_ANE = 1<<1, /* Auto-negotiation enabled */ +}; + struct mlx4_en_port_state { int link_state; int link_speed; - int transciver; + int transceiver; + u32 flags; }; struct mlx4_en_pkt_stats { @@ -434,6 +463,7 @@ enum mlx4_en_mclist_act action; u8 addr[ETH_ALEN]; u64 reg_id; + u64 tunnel_reg_id; }; struct mlx4_en_frag_info { @@ -513,11 +543,12 @@ int registered; int allocated; int stride; - unsigned char prev_mac[ETH_ALEN + 2]; + unsigned char current_mac[ETH_ALEN + 2]; int mac_index; unsigned max_mtu; int base_qpn; int cqe_factor; + int cqe_size; struct mlx4_en_rss_map rss_map; __be32 ctrl_flags; @@ -540,6 +571,10 @@ struct work_struct linkstate_task; struct delayed_work stats_task; struct delayed_work service_task; +#ifdef CONFIG_MLX4_EN_VXLAN + struct work_struct vxlan_add_task; + struct work_struct vxlan_del_task; +#endif struct mlx4_en_perf_stats pstats; struct mlx4_en_pkt_stats pkstats; struct mlx4_en_port_stats port_stats; @@ -565,7 +600,10 @@ struct list_head filters; struct hlist_head filter_hash[1 << MLX4_EN_FILTER_HASH_SHIFT]; #endif + u64 tunnel_reg_id; + __be16 vxlan_port; + u32 pflags; }; enum mlx4_en_wol { @@ -580,6 +618,11 @@ struct rcu_head rcu; }; +static inline struct mlx4_cqe *mlx4_en_get_cqe(void *buf, int idx, int cqe_sz) +{ + return buf + idx * cqe_sz; +} + #ifdef CONFIG_NET_RX_BUSY_POLL static inline void mlx4_en_cq_init_lock(struct mlx4_en_cq *cq) { @@ -653,7 +696,7 @@ } /* true if a socket is polling, even if it did not get the lock */ -static inline bool mlx4_en_cq_ll_polling(struct mlx4_en_cq *cq) +static inline bool mlx4_en_cq_busy_polling(struct mlx4_en_cq *cq) { WARN_ON(!(cq->state & MLX4_CQ_LOCKED)); return cq->state & CQ_USER_PEND; @@ -683,7 +726,7 @@ return false; } -static inline bool mlx4_en_cq_ll_polling(struct mlx4_en_cq *cq) +static inline bool mlx4_en_cq_busy_polling(struct mlx4_en_cq *cq) { return false; } @@ -715,12 +758,13 @@ void mlx4_en_tx_irq(struct mlx4_cq *mcq); u16 mlx4_en_select_queue(struct net_device *dev, struct sk_buff *skb, - void *accel_priv); + void *accel_priv, select_queue_fallback_t fallback); netdev_tx_t mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev); int mlx4_en_create_tx_ring(struct mlx4_en_priv *priv, struct mlx4_en_tx_ring **pring, - int qpn, u32 size, u16 stride, int node); + int qpn, u32 size, u16 stride, + int node, int queue_index); void mlx4_en_destroy_tx_ring(struct mlx4_en_priv *priv, struct mlx4_en_tx_ring **pring); int mlx4_en_activate_tx_ring(struct mlx4_en_priv *priv, @@ -728,7 +772,7 @@ int cq, int user_prio); void mlx4_en_deactivate_tx_ring(struct mlx4_en_priv *priv, struct mlx4_en_tx_ring *ring); - +void mlx4_en_set_num_rx_rings(struct mlx4_en_dev *mdev); int mlx4_en_create_rx_ring(struct mlx4_en_priv *priv, struct mlx4_en_rx_ring **pring, u32 size, u16 stride, int node); @@ -742,6 +786,7 @@ struct mlx4_en_cq *cq, int budget); int mlx4_en_poll_rx_cq(struct napi_struct *napi, int budget); +int mlx4_en_poll_tx_cq(struct napi_struct *napi, int budget); void mlx4_en_fill_qp_context(struct mlx4_en_priv *priv, int size, int stride, int is_tx, int rss, int qpn, int cqn, int user_prio, struct mlx4_qp_context *context); @@ -776,9 +821,15 @@ #define MLX4_EN_NUM_SELF_TEST 5 void mlx4_en_ex_selftest(struct net_device *dev, u32 *flags, u64 *buf); -u64 mlx4_en_mac_to_u64(u8 *addr); void mlx4_en_ptp_overflow_check(struct mlx4_en_dev *mdev); +#define DEV_FEATURE_CHANGED(dev, new_features, feature) \ + ((dev->features & feature) ^ (new_features & feature)) + +int mlx4_en_reset_config(struct net_device *dev, + struct hwtstamp_config ts_config, + netdev_features_t new_features); + /* * Functions for time stamping */ @@ -787,9 +838,7 @@ struct skb_shared_hwtstamps *hwts, u64 timestamp); void mlx4_en_init_timestamp(struct mlx4_en_dev *mdev); -int mlx4_en_timestamp_config(struct net_device *dev, - int tx_type, - int rx_filter); +void mlx4_en_remove_timestamp(struct mlx4_en_dev *mdev); /* Globals */ --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/mr.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/mr.c @@ -346,7 +346,7 @@ { struct mlx4_priv *priv = mlx4_priv(dev); - mlx4_bitmap_free(&priv->mr_table.mpt_bitmap, index); + mlx4_bitmap_free(&priv->mr_table.mpt_bitmap, index, MLX4_NO_RR); } static void mlx4_mpt_release(struct mlx4_dev *dev, u32 index) --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/pd.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/pd.c @@ -59,7 +59,7 @@ void mlx4_pd_free(struct mlx4_dev *dev, u32 pdn) { - mlx4_bitmap_free(&mlx4_priv(dev)->pd_bitmap, pdn); + mlx4_bitmap_free(&mlx4_priv(dev)->pd_bitmap, pdn, MLX4_USE_RR); } EXPORT_SYMBOL_GPL(mlx4_pd_free); @@ -96,7 +96,7 @@ void __mlx4_xrcd_free(struct mlx4_dev *dev, u32 xrcdn) { - mlx4_bitmap_free(&mlx4_priv(dev)->xrcd_bitmap, xrcdn); + mlx4_bitmap_free(&mlx4_priv(dev)->xrcd_bitmap, xrcdn, MLX4_USE_RR); } void mlx4_xrcd_free(struct mlx4_dev *dev, u32 xrcdn) @@ -164,7 +164,7 @@ void mlx4_uar_free(struct mlx4_dev *dev, struct mlx4_uar *uar) { - mlx4_bitmap_free(&mlx4_priv(dev)->uar_table.bitmap, uar->index); + mlx4_bitmap_free(&mlx4_priv(dev)->uar_table.bitmap, uar->index, MLX4_USE_RR); } EXPORT_SYMBOL_GPL(mlx4_uar_free); --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/port.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/port.c @@ -75,6 +75,16 @@ table->total = 0; } +void mlx4_init_roce_gid_table(struct mlx4_dev *dev, + struct mlx4_roce_gid_table *table) +{ + int i; + + mutex_init(&table->mutex); + for (i = 0; i < MLX4_ROCE_MAX_GIDS; i++) + memset(table->roce_gids[i].raw, 0, MLX4_ROCE_GID_ENTRY_SIZE); +} + static int validate_index(struct mlx4_dev *dev, struct mlx4_mac_table *table, int index) { @@ -123,6 +133,26 @@ return err; } +int mlx4_find_cached_mac(struct mlx4_dev *dev, u8 port, u64 mac, int *idx) +{ + struct mlx4_port_info *info = &mlx4_priv(dev)->port[port]; + struct mlx4_mac_table *table = &info->mac_table; + int i; + + for (i = 0; i < MLX4_MAX_MAC_NUM; i++) { + if (!table->refs[i]) + continue; + + if (mac == (MLX4_MAC_MASK & be64_to_cpu(table->entries[i]))) { + *idx = i; + return 0; + } + } + + return -ENOENT; +} +EXPORT_SYMBOL_GPL(mlx4_find_cached_mac); + int __mlx4_register_mac(struct mlx4_dev *dev, u8 port, u64 mac) { struct mlx4_port_info *info = &mlx4_priv(dev)->port[port]; @@ -485,6 +515,162 @@ mlx4_free_cmd_mailbox(dev, outmailbox); return err; } +static struct mlx4_roce_gid_entry zgid_entry; + +int mlx4_get_slave_num_gids(struct mlx4_dev *dev, int slave, int port) +{ + int vfs; + int slave_gid = slave; + unsigned i; + struct mlx4_slaves_pport slaves_pport; + struct mlx4_active_ports actv_ports; + unsigned max_port_p_one; + + if (slave == 0) + return MLX4_ROCE_PF_GIDS; + + /* Slave is a VF */ + slaves_pport = mlx4_phys_to_slaves_pport(dev, port); + actv_ports = mlx4_get_active_ports(dev, slave); + max_port_p_one = find_first_bit(actv_ports.ports, dev->caps.num_ports) + + bitmap_weight(actv_ports.ports, dev->caps.num_ports) + 1; + + for (i = 1; i < max_port_p_one; i++) { + struct mlx4_active_ports exclusive_ports; + struct mlx4_slaves_pport slaves_pport_actv; + bitmap_zero(exclusive_ports.ports, dev->caps.num_ports); + set_bit(i - 1, exclusive_ports.ports); + if (i == port) + continue; + slaves_pport_actv = mlx4_phys_to_slaves_pport_actv( + dev, &exclusive_ports); + slave_gid -= bitmap_weight(slaves_pport_actv.slaves, + dev->num_vfs + 1); + } + vfs = bitmap_weight(slaves_pport.slaves, dev->num_vfs + 1) - 1; + if (slave_gid <= ((MLX4_ROCE_MAX_GIDS - MLX4_ROCE_PF_GIDS) % vfs)) + return ((MLX4_ROCE_MAX_GIDS - MLX4_ROCE_PF_GIDS) / vfs) + 1; + return (MLX4_ROCE_MAX_GIDS - MLX4_ROCE_PF_GIDS) / vfs; +} + +int mlx4_get_base_gid_ix(struct mlx4_dev *dev, int slave, int port) +{ + int gids; + unsigned i; + int slave_gid = slave; + int vfs; + + struct mlx4_slaves_pport slaves_pport; + struct mlx4_active_ports actv_ports; + unsigned max_port_p_one; + + if (slave == 0) + return 0; + + slaves_pport = mlx4_phys_to_slaves_pport(dev, port); + actv_ports = mlx4_get_active_ports(dev, slave); + max_port_p_one = find_first_bit(actv_ports.ports, dev->caps.num_ports) + + bitmap_weight(actv_ports.ports, dev->caps.num_ports) + 1; + + for (i = 1; i < max_port_p_one; i++) { + struct mlx4_active_ports exclusive_ports; + struct mlx4_slaves_pport slaves_pport_actv; + bitmap_zero(exclusive_ports.ports, dev->caps.num_ports); + set_bit(i - 1, exclusive_ports.ports); + if (i == port) + continue; + slaves_pport_actv = mlx4_phys_to_slaves_pport_actv( + dev, &exclusive_ports); + slave_gid -= bitmap_weight(slaves_pport_actv.slaves, + dev->num_vfs + 1); + } + gids = MLX4_ROCE_MAX_GIDS - MLX4_ROCE_PF_GIDS; + vfs = bitmap_weight(slaves_pport.slaves, dev->num_vfs + 1) - 1; + if (slave_gid <= gids % vfs) + return MLX4_ROCE_PF_GIDS + ((gids / vfs) + 1) * (slave_gid - 1); + + return MLX4_ROCE_PF_GIDS + (gids % vfs) + + ((gids / vfs) * (slave_gid - 1)); +} +EXPORT_SYMBOL_GPL(mlx4_get_base_gid_ix); + +static int mlx4_reset_roce_port_gids(struct mlx4_dev *dev, int slave, + int port, struct mlx4_cmd_mailbox *mailbox) +{ + struct mlx4_roce_gid_entry *gid_entry_mbox; + struct mlx4_priv *priv = mlx4_priv(dev); + int num_gids, base, offset; + int i, err; + + num_gids = mlx4_get_slave_num_gids(dev, slave, port); + base = mlx4_get_base_gid_ix(dev, slave, port); + + memset(mailbox->buf, 0, MLX4_MAILBOX_SIZE); + + mutex_lock(&(priv->port[port].gid_table.mutex)); + /* Zero-out gids belonging to that slave in the port GID table */ + for (i = 0, offset = base; i < num_gids; offset++, i++) + memcpy(priv->port[port].gid_table.roce_gids[offset].raw, + zgid_entry.raw, MLX4_ROCE_GID_ENTRY_SIZE); + + /* Now, copy roce port gids table to mailbox for passing to FW */ + gid_entry_mbox = (struct mlx4_roce_gid_entry *)mailbox->buf; + for (i = 0; i < MLX4_ROCE_MAX_GIDS; gid_entry_mbox++, i++) + memcpy(gid_entry_mbox->raw, + priv->port[port].gid_table.roce_gids[i].raw, + MLX4_ROCE_GID_ENTRY_SIZE); + + err = mlx4_cmd(dev, mailbox->dma, + ((u32)port) | (MLX4_SET_PORT_GID_TABLE << 8), 1, + MLX4_CMD_SET_PORT, MLX4_CMD_TIME_CLASS_B, + MLX4_CMD_NATIVE); + mutex_unlock(&(priv->port[port].gid_table.mutex)); + return err; +} + + +void mlx4_reset_roce_gids(struct mlx4_dev *dev, int slave) +{ + struct mlx4_active_ports actv_ports; + struct mlx4_cmd_mailbox *mailbox; + int num_eth_ports, err; + int i; + + if (slave < 0 || slave > dev->num_vfs) + return; + + actv_ports = mlx4_get_active_ports(dev, slave); + + for (i = 0, num_eth_ports = 0; i < dev->caps.num_ports; i++) { + if (test_bit(i, actv_ports.ports)) { + if (dev->caps.port_type[i + 1] != MLX4_PORT_TYPE_ETH) + continue; + num_eth_ports++; + } + } + + if (!num_eth_ports) + return; + + /* have ETH ports. Alloc mailbox for SET_PORT command */ + mailbox = mlx4_alloc_cmd_mailbox(dev); + if (IS_ERR(mailbox)) + return; + + for (i = 0; i < dev->caps.num_ports; i++) { + if (test_bit(i, actv_ports.ports)) { + if (dev->caps.port_type[i + 1] != MLX4_PORT_TYPE_ETH) + continue; + err = mlx4_reset_roce_port_gids(dev, slave, i + 1, mailbox); + if (err) + mlx4_warn(dev, "Could not reset ETH port GID table for slave %d, port %d (%d)\n", + slave, i + 1, err); + } + } + + mlx4_free_cmd_mailbox(dev, mailbox); + return; +} static int mlx4_common_set_port(struct mlx4_dev *dev, int slave, u32 in_mod, u8 op_mod, struct mlx4_cmd_mailbox *inbox) @@ -495,14 +681,18 @@ struct mlx4_slave_state *slave_st = &master->slave_state[slave]; struct mlx4_set_port_rqp_calc_context *qpn_context; struct mlx4_set_port_general_context *gen_context; + struct mlx4_roce_gid_entry *gid_entry_tbl, *gid_entry_mbox, *gid_entry_mb1; int reset_qkey_viols; int port; int is_eth; + int num_gids; + int base; u32 in_modifier; u32 promisc; u16 mtu, prev_mtu; int err; - int i; + int i, j; + int offset; __be32 agg_cap_mask; __be32 slave_cap_mask; __be32 new_cap_mask; @@ -515,7 +705,8 @@ /* Slaves cannot perform SET_PORT operations except changing MTU */ if (is_eth) { if (slave != dev->caps.function && - in_modifier != MLX4_SET_PORT_GENERAL) { + in_modifier != MLX4_SET_PORT_GENERAL && + in_modifier != MLX4_SET_PORT_GID_TABLE) { mlx4_warn(dev, "denying SET_PORT for slave:%d\n", slave); return -EINVAL; @@ -561,8 +752,80 @@ gen_context->mtu = cpu_to_be16(master->max_mtu[port]); break; + case MLX4_SET_PORT_GID_TABLE: + /* change to MULTIPLE entries: number of guest's gids + * need a FOR-loop here over number of gids the guest has. + * 1. Check no duplicates in gids passed by slave + */ + num_gids = mlx4_get_slave_num_gids(dev, slave, port); + base = mlx4_get_base_gid_ix(dev, slave, port); + gid_entry_mbox = (struct mlx4_roce_gid_entry *)(inbox->buf); + for (i = 0; i < num_gids; gid_entry_mbox++, i++) { + if (!memcmp(gid_entry_mbox->raw, zgid_entry.raw, + sizeof(zgid_entry))) + continue; + gid_entry_mb1 = gid_entry_mbox + 1; + for (j = i + 1; j < num_gids; gid_entry_mb1++, j++) { + if (!memcmp(gid_entry_mb1->raw, + zgid_entry.raw, sizeof(zgid_entry))) + continue; + if (!memcmp(gid_entry_mb1->raw, gid_entry_mbox->raw, + sizeof(gid_entry_mbox->raw))) { + /* found duplicate */ + return -EINVAL; + } + } + } + + /* 2. Check that do not have duplicates in OTHER + * entries in the port GID table + */ + + mutex_lock(&(priv->port[port].gid_table.mutex)); + for (i = 0; i < MLX4_ROCE_MAX_GIDS; i++) { + if (i >= base && i < base + num_gids) + continue; /* don't compare to slave's current gids */ + gid_entry_tbl = &priv->port[port].gid_table.roce_gids[i]; + if (!memcmp(gid_entry_tbl->raw, zgid_entry.raw, sizeof(zgid_entry))) + continue; + gid_entry_mbox = (struct mlx4_roce_gid_entry *)(inbox->buf); + for (j = 0; j < num_gids; gid_entry_mbox++, j++) { + if (!memcmp(gid_entry_mbox->raw, zgid_entry.raw, + sizeof(zgid_entry))) + continue; + if (!memcmp(gid_entry_mbox->raw, gid_entry_tbl->raw, + sizeof(gid_entry_tbl->raw))) { + /* found duplicate */ + mlx4_warn(dev, "requested gid entry for slave:%d " + "is a duplicate of gid at index %d\n", + slave, i); + mutex_unlock(&(priv->port[port].gid_table.mutex)); + return -EINVAL; + } + } + } + + /* insert slave GIDs with memcpy, starting at slave's base index */ + gid_entry_mbox = (struct mlx4_roce_gid_entry *)(inbox->buf); + for (i = 0, offset = base; i < num_gids; gid_entry_mbox++, offset++, i++) + memcpy(priv->port[port].gid_table.roce_gids[offset].raw, + gid_entry_mbox->raw, MLX4_ROCE_GID_ENTRY_SIZE); + + /* Now, copy roce port gids table to current mailbox for passing to FW */ + gid_entry_mbox = (struct mlx4_roce_gid_entry *)(inbox->buf); + for (i = 0; i < MLX4_ROCE_MAX_GIDS; gid_entry_mbox++, i++) + memcpy(gid_entry_mbox->raw, + priv->port[port].gid_table.roce_gids[i].raw, + MLX4_ROCE_GID_ENTRY_SIZE); + + err = mlx4_cmd(dev, inbox->dma, in_mod & 0xffff, op_mod, + MLX4_CMD_SET_PORT, MLX4_CMD_TIME_CLASS_B, + MLX4_CMD_NATIVE); + mutex_unlock(&(priv->port[port].gid_table.mutex)); + return err; } - return mlx4_cmd(dev, inbox->dma, in_mod, op_mod, + + return mlx4_cmd(dev, inbox->dma, in_mod & 0xffff, op_mod, MLX4_CMD_SET_PORT, MLX4_CMD_TIME_CLASS_B, MLX4_CMD_NATIVE); } @@ -626,6 +889,15 @@ struct mlx4_cmd_mailbox *outbox, struct mlx4_cmd_info *cmd) { + int port = mlx4_slave_convert_port( + dev, slave, vhcr->in_modifier & 0xFF); + + if (port < 0) + return -EINVAL; + + vhcr->in_modifier = (vhcr->in_modifier & ~0xFF) | + (port & 0xFF); + return mlx4_common_set_port(dev, slave, vhcr->in_modifier, vhcr->op_modifier, inbox); } @@ -800,6 +1072,48 @@ } EXPORT_SYMBOL(mlx4_SET_PORT_SCHEDULER); +enum { + VXLAN_ENABLE_MODIFY = 1 << 7, + VXLAN_STEERING_MODIFY = 1 << 6, + + VXLAN_ENABLE = 1 << 7, +}; + +struct mlx4_set_port_vxlan_context { + u32 reserved1; + u8 modify_flags; + u8 reserved2; + u8 enable_flags; + u8 steering; +}; + +int mlx4_SET_PORT_VXLAN(struct mlx4_dev *dev, u8 port, u8 steering, int enable) +{ + int err; + u32 in_mod; + struct mlx4_cmd_mailbox *mailbox; + struct mlx4_set_port_vxlan_context *context; + + mailbox = mlx4_alloc_cmd_mailbox(dev); + if (IS_ERR(mailbox)) + return PTR_ERR(mailbox); + context = mailbox->buf; + memset(context, 0, sizeof(*context)); + + context->modify_flags = VXLAN_ENABLE_MODIFY | VXLAN_STEERING_MODIFY; + if (enable) + context->enable_flags = VXLAN_ENABLE; + context->steering = steering; + + in_mod = MLX4_SET_PORT_VXLAN << 8 | port; + err = mlx4_cmd(dev, mailbox->dma, in_mod, 1, MLX4_CMD_SET_PORT, + MLX4_CMD_TIME_CLASS_B, MLX4_CMD_NATIVE); + + mlx4_free_cmd_mailbox(dev, mailbox); + return err; +} +EXPORT_SYMBOL(mlx4_SET_PORT_VXLAN); + int mlx4_SET_MCAST_FLTR_wrapper(struct mlx4_dev *dev, int slave, struct mlx4_vhcr *vhcr, struct mlx4_cmd_mailbox *inbox, @@ -866,3 +1180,271 @@ *stats_bitmap |= MLX4_STATS_ERROR_COUNTERS_MASK; } EXPORT_SYMBOL(mlx4_set_stats_bitmap); + +int mlx4_get_slave_from_roce_gid(struct mlx4_dev *dev, int port, u8 *gid, + int *slave_id) +{ + struct mlx4_priv *priv = mlx4_priv(dev); + int i, found_ix = -1; + int vf_gids = MLX4_ROCE_MAX_GIDS - MLX4_ROCE_PF_GIDS; + struct mlx4_slaves_pport slaves_pport; + unsigned num_vfs; + int slave_gid; + + if (!mlx4_is_mfunc(dev)) + return -EINVAL; + + slaves_pport = mlx4_phys_to_slaves_pport(dev, port); + num_vfs = bitmap_weight(slaves_pport.slaves, dev->num_vfs + 1) - 1; + + for (i = 0; i < MLX4_ROCE_MAX_GIDS; i++) { + if (!memcmp(priv->port[port].gid_table.roce_gids[i].raw, gid, + MLX4_ROCE_GID_ENTRY_SIZE)) { + found_ix = i; + break; + } + } + + if (found_ix >= 0) { + /* Calculate a slave_gid which is the slave number in the gid + * table and not a globally unique slave number. + */ + if (found_ix < MLX4_ROCE_PF_GIDS) + slave_gid = 0; + else if (found_ix < MLX4_ROCE_PF_GIDS + (vf_gids % num_vfs) * + (vf_gids / num_vfs + 1)) + slave_gid = ((found_ix - MLX4_ROCE_PF_GIDS) / + (vf_gids / num_vfs + 1)) + 1; + else + slave_gid = + ((found_ix - MLX4_ROCE_PF_GIDS - + ((vf_gids % num_vfs) * ((vf_gids / num_vfs + 1)))) / + (vf_gids / num_vfs)) + vf_gids % num_vfs + 1; + + /* Calculate the globally unique slave id */ + if (slave_gid) { + struct mlx4_active_ports exclusive_ports; + struct mlx4_active_ports actv_ports; + struct mlx4_slaves_pport slaves_pport_actv; + unsigned max_port_p_one; + int num_vfs_before = 0; + int candidate_slave_gid; + + /* Calculate how many VFs are on the previous port, if exists */ + for (i = 1; i < port; i++) { + bitmap_zero(exclusive_ports.ports, dev->caps.num_ports); + set_bit(i - 1, exclusive_ports.ports); + slaves_pport_actv = + mlx4_phys_to_slaves_pport_actv( + dev, &exclusive_ports); + num_vfs_before += bitmap_weight( + slaves_pport_actv.slaves, + dev->num_vfs + 1); + } + + /* candidate_slave_gid isn't necessarily the correct slave, but + * it has the same number of ports and is assigned to the same + * ports as the real slave we're looking for. On dual port VF, + * slave_gid = [single port VFs on port ] + + * [offset of the current slave from the first dual port VF] + + * 1 (for the PF). + */ + candidate_slave_gid = slave_gid + num_vfs_before; + + actv_ports = mlx4_get_active_ports(dev, candidate_slave_gid); + max_port_p_one = find_first_bit( + actv_ports.ports, dev->caps.num_ports) + + bitmap_weight(actv_ports.ports, + dev->caps.num_ports) + 1; + + /* Calculate the real slave number */ + for (i = 1; i < max_port_p_one; i++) { + if (i == port) + continue; + bitmap_zero(exclusive_ports.ports, + dev->caps.num_ports); + set_bit(i - 1, exclusive_ports.ports); + slaves_pport_actv = + mlx4_phys_to_slaves_pport_actv( + dev, &exclusive_ports); + slave_gid += bitmap_weight( + slaves_pport_actv.slaves, + dev->num_vfs + 1); + } + } + *slave_id = slave_gid; + } + + return (found_ix >= 0) ? 0 : -EINVAL; +} +EXPORT_SYMBOL(mlx4_get_slave_from_roce_gid); + +int mlx4_get_roce_gid_from_slave(struct mlx4_dev *dev, int port, int slave_id, + u8 *gid) +{ + struct mlx4_priv *priv = mlx4_priv(dev); + + if (!mlx4_is_master(dev)) + return -EINVAL; + + memcpy(gid, priv->port[port].gid_table.roce_gids[slave_id].raw, + MLX4_ROCE_GID_ENTRY_SIZE); + return 0; +} +EXPORT_SYMBOL(mlx4_get_roce_gid_from_slave); + +/* Cable Module Info */ +#define MODULE_INFO_MAX_READ 48 + +#define I2C_ADDR_LOW 0x50 +#define I2C_ADDR_HIGH 0x51 +#define I2C_PAGE_SIZE 256 + +/* Module Info Data */ +struct mlx4_cable_info { + u8 i2c_addr; + u8 page_num; + __be16 dev_mem_address; + __be16 reserved1; + __be16 size; + __be32 reserved2[2]; + u8 data[MODULE_INFO_MAX_READ]; +}; + +enum cable_info_err { + CABLE_INF_INV_PORT = 0x1, + CABLE_INF_OP_NOSUP = 0x2, + CABLE_INF_NOT_CONN = 0x3, + CABLE_INF_NO_EEPRM = 0x4, + CABLE_INF_PAGE_ERR = 0x5, + CABLE_INF_INV_ADDR = 0x6, + CABLE_INF_I2C_ADDR = 0x7, + CABLE_INF_QSFP_VIO = 0x8, + CABLE_INF_I2C_BUSY = 0x9, +}; + +#define MAD_STATUS_2_CABLE_ERR(mad_status) ((mad_status >> 8) & 0xFF) + +static inline const char *cable_info_mad_err_str(u16 mad_status) +{ + u8 err = MAD_STATUS_2_CABLE_ERR(mad_status); + + switch (err) { + case CABLE_INF_INV_PORT: + return "invalid port selected"; + case CABLE_INF_OP_NOSUP: + return "operation not supported for this port (the port is of type CX4 or internal)"; + case CABLE_INF_NOT_CONN: + return "cable is not connected"; + case CABLE_INF_NO_EEPRM: + return "the connected cable has no EPROM (passive copper cable)"; + case CABLE_INF_PAGE_ERR: + return "page number is greater than 15"; + case CABLE_INF_INV_ADDR: + return "invalid device_address or size (that is, size equals 0 or address+size is greater than 256)"; + case CABLE_INF_I2C_ADDR: + return "invalid I2C slave address"; + case CABLE_INF_QSFP_VIO: + return "at least one cable violates the QSFP specification and ignores the modsel signal"; + case CABLE_INF_I2C_BUSY: + return "I2C bus is constantly busy"; + } + return "Unknown Error"; +} + +/** + * mlx4_get_module_info - Read cable module eeprom data + * @dev: mlx4_dev. + * @port: port number. + * @offset: byte offset in eeprom to start reading data from. + * @size: num of bytes to read. + * @data: output buffer to put the requested data into. + * + * Reads cable module eeprom data, puts the outcome data into + * data pointer paramer. + * Returns num of read bytes on success or a negative error + * code. + */ +int mlx4_get_module_info(struct mlx4_dev *dev, u8 port, + u16 offset, u16 size, u8 *data) +{ + struct mlx4_cmd_mailbox *inbox, *outbox; + struct mlx4_mad_ifc *inmad, *outmad; + struct mlx4_cable_info *cable_info; + u16 i2c_addr; + int ret; + + if (size > MODULE_INFO_MAX_READ) + size = MODULE_INFO_MAX_READ; + + inbox = mlx4_alloc_cmd_mailbox(dev); + if (IS_ERR(inbox)) + return PTR_ERR(inbox); + + outbox = mlx4_alloc_cmd_mailbox(dev); + if (IS_ERR(outbox)) { + mlx4_free_cmd_mailbox(dev, inbox); + return PTR_ERR(outbox); + } + + inmad = (struct mlx4_mad_ifc *)(inbox->buf); + outmad = (struct mlx4_mad_ifc *)(outbox->buf); + + inmad->method = 0x1; /* Get */ + inmad->class_version = 0x1; + inmad->mgmt_class = 0x1; + inmad->base_version = 0x1; + inmad->attr_id = cpu_to_be16(0xFF60); /* Module Info */ + + if (offset < I2C_PAGE_SIZE && offset + size > I2C_PAGE_SIZE) + /* Cross pages reads are not allowed + * read until offset 256 in low page + */ + size -= offset + size - I2C_PAGE_SIZE; + + i2c_addr = I2C_ADDR_LOW; + if (offset >= I2C_PAGE_SIZE) { + /* Reset offset to high page */ + i2c_addr = I2C_ADDR_HIGH; + offset -= I2C_PAGE_SIZE; + } + + cable_info = (struct mlx4_cable_info *)inmad->data; + cable_info->dev_mem_address = cpu_to_be16(offset); + cable_info->page_num = 0; + cable_info->i2c_addr = i2c_addr; + cable_info->size = cpu_to_be16(size); + + ret = mlx4_cmd_box(dev, inbox->dma, outbox->dma, port, 3, + MLX4_CMD_MAD_IFC, MLX4_CMD_TIME_CLASS_C, + MLX4_CMD_NATIVE); + if (ret) + goto out; + + if (be16_to_cpu(outmad->status)) { + /* Mad returned with bad status */ + ret = be16_to_cpu(outmad->status); + mlx4_warn(dev, + "MLX4_CMD_MAD_IFC Get Module info attr(%x) port(%d) i2c_addr(%x) offset(%d) size(%d): Response Mad Status(%x) - %s\n", + 0xFF60, port, i2c_addr, offset, size, + ret, cable_info_mad_err_str(ret)); + + if (i2c_addr == I2C_ADDR_HIGH && + MAD_STATUS_2_CABLE_ERR(ret) == CABLE_INF_I2C_ADDR) + /* Some SFP cables do not support i2c slave + * address 0x51 (high page), abort silently. + */ + ret = 0; + else + ret = -ret; + goto out; + } + cable_info = (struct mlx4_cable_info *)outmad->data; + memcpy(data, cable_info->data, size); + ret = size; +out: + mlx4_free_cmd_mailbox(dev, inbox); + mlx4_free_cmd_mailbox(dev, outbox); + return ret; +} +EXPORT_SYMBOL(mlx4_get_module_info); --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/qp.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/qp.c @@ -250,7 +250,7 @@ if (mlx4_is_qp_reserved(dev, (u32) base_qpn)) return; - mlx4_bitmap_free_range(&qp_table->bitmap, base_qpn, cnt); + mlx4_bitmap_free_range(&qp_table->bitmap, base_qpn, cnt, MLX4_USE_RR); } void mlx4_qp_release_range(struct mlx4_dev *dev, int base_qpn, int cnt) @@ -390,6 +390,41 @@ EXPORT_SYMBOL_GPL(mlx4_qp_alloc); +#define MLX4_UPDATE_QP_SUPPORTED_ATTRS MLX4_UPDATE_QP_SMAC +int mlx4_update_qp(struct mlx4_dev *dev, struct mlx4_qp *qp, + enum mlx4_update_qp_attr attr, + struct mlx4_update_qp_params *params) +{ + struct mlx4_cmd_mailbox *mailbox; + struct mlx4_update_qp_context *cmd; + u64 pri_addr_path_mask = 0; + int err = 0; + + mailbox = mlx4_alloc_cmd_mailbox(dev); + if (IS_ERR(mailbox)) + return PTR_ERR(mailbox); + + cmd = (struct mlx4_update_qp_context *)mailbox->buf; + + if (!attr || (attr & ~MLX4_UPDATE_QP_SUPPORTED_ATTRS)) + return -EINVAL; + + if (attr & MLX4_UPDATE_QP_SMAC) { + pri_addr_path_mask |= 1ULL << MLX4_UPD_QP_PATH_MASK_MAC_INDEX; + cmd->qp_context.pri_path.grh_mylmc = params->smac_index; + } + + cmd->primary_addr_path_mask = cpu_to_be64(pri_addr_path_mask); + + err = mlx4_cmd(dev, mailbox->dma, qp->qpn & 0xffffff, 0, + MLX4_CMD_UPDATE_QP, MLX4_CMD_TIME_CLASS_A, + MLX4_CMD_NATIVE); + + mlx4_free_cmd_mailbox(dev, mailbox); + return err; +} +EXPORT_SYMBOL_GPL(mlx4_update_qp); + void mlx4_qp_remove(struct mlx4_dev *dev, struct mlx4_qp *qp) { struct mlx4_qp_table *qp_table = &mlx4_priv(dev)->qp_table; --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c @@ -52,6 +52,8 @@ struct mac_res { struct list_head list; u64 mac; + int ref_count; + u8 smac_index; u8 port; }; @@ -219,6 +221,11 @@ int qpn; }; +static int mlx4_is_eth(struct mlx4_dev *dev, int port) +{ + return dev->caps.port_mask[port] == MLX4_PORT_TYPE_IB ? 0 : 1; +} + static void *res_tracker_lookup(struct rb_root *root, u64 res_id) { struct rb_node *node = root->rb_node; @@ -461,6 +468,8 @@ spin_lock_init(&res_alloc->alloc_lock); for (t = 0; t < dev->num_vfs + 1; t++) { + struct mlx4_active_ports actv_ports = + mlx4_get_active_ports(dev, t); switch (i) { case RES_QP: initialize_res_quotas(dev, res_alloc, RES_QP, @@ -490,10 +499,27 @@ break; case RES_MAC: if (t == mlx4_master_func_num(dev)) { - res_alloc->quota[t] = MLX4_MAX_MAC_NUM; + int max_vfs_pport = 0; + /* Calculate the max vfs per port for */ + /* both ports. */ + for (j = 0; j < dev->caps.num_ports; + j++) { + struct mlx4_slaves_pport slaves_pport = + mlx4_phys_to_slaves_pport(dev, j + 1); + unsigned current_slaves = + bitmap_weight(slaves_pport.slaves, + dev->caps.num_ports) - 1; + if (max_vfs_pport < current_slaves) + max_vfs_pport = + current_slaves; + } + res_alloc->quota[t] = + MLX4_MAX_MAC_NUM - + 2 * max_vfs_pport; res_alloc->guaranteed[t] = 2; for (j = 0; j < MLX4_MAX_PORTS; j++) - res_alloc->res_port_free[j] = MLX4_MAX_MAC_NUM; + res_alloc->res_port_free[j] = + MLX4_MAX_MAC_NUM; } else { res_alloc->quota[t] = MLX4_MAX_MAC_NUM; res_alloc->guaranteed[t] = 2; @@ -521,9 +547,10 @@ break; } if (i == RES_MAC || i == RES_VLAN) { - for (j = 0; j < MLX4_MAX_PORTS; j++) - res_alloc->res_port_rsvd[j] += - res_alloc->guaranteed[t]; + for (j = 0; j < dev->caps.num_ports; j++) + if (test_bit(j, actv_ports.ports)) + res_alloc->res_port_rsvd[j] += + res_alloc->guaranteed[t]; } else { res_alloc->res_reserved += res_alloc->guaranteed[t]; } @@ -559,6 +586,7 @@ } /* free master's vlans */ i = dev->caps.function; + mlx4_reset_roce_gids(dev, i); mutex_lock(&priv->mfunc.master.res_tracker.slave_list[i].mutex); rem_slave_vlans(dev, i); mutex_unlock(&priv->mfunc.master.res_tracker.slave_list[i].mutex); @@ -600,15 +628,37 @@ struct mlx4_qp_context *qp_ctx = inbox->buf + 8; enum mlx4_qp_optpar optpar = be32_to_cpu(*(__be32 *) inbox->buf); u32 ts = (be32_to_cpu(qp_ctx->flags) >> 16) & 0xff; + int port; - if (MLX4_QP_ST_UD == ts) - qp_ctx->pri_path.mgid_index = 0x80 | slave; + if (MLX4_QP_ST_UD == ts) { + port = (qp_ctx->pri_path.sched_queue >> 6 & 1) + 1; + if (mlx4_is_eth(dev, port)) + qp_ctx->pri_path.mgid_index = + mlx4_get_base_gid_ix(dev, slave, port) | 0x80; + else + qp_ctx->pri_path.mgid_index = slave | 0x80; - if (MLX4_QP_ST_RC == ts || MLX4_QP_ST_UC == ts) { - if (optpar & MLX4_QP_OPTPAR_PRIMARY_ADDR_PATH) - qp_ctx->pri_path.mgid_index = slave & 0x7F; - if (optpar & MLX4_QP_OPTPAR_ALT_ADDR_PATH) - qp_ctx->alt_path.mgid_index = slave & 0x7F; + } else if (MLX4_QP_ST_RC == ts || MLX4_QP_ST_XRC == ts || MLX4_QP_ST_UC == ts) { + if (optpar & MLX4_QP_OPTPAR_PRIMARY_ADDR_PATH) { + port = (qp_ctx->pri_path.sched_queue >> 6 & 1) + 1; + if (mlx4_is_eth(dev, port)) { + qp_ctx->pri_path.mgid_index += + mlx4_get_base_gid_ix(dev, slave, port); + qp_ctx->pri_path.mgid_index &= 0x7f; + } else { + qp_ctx->pri_path.mgid_index = slave & 0x7F; + } + } + if (optpar & MLX4_QP_OPTPAR_ALT_ADDR_PATH) { + port = (qp_ctx->alt_path.sched_queue >> 6 & 1) + 1; + if (mlx4_is_eth(dev, port)) { + qp_ctx->alt_path.mgid_index += + mlx4_get_base_gid_ix(dev, slave, port); + qp_ctx->alt_path.mgid_index &= 0x7f; + } else { + qp_ctx->alt_path.mgid_index = slave & 0x7F; + } + } } } @@ -619,7 +669,6 @@ struct mlx4_qp_context *qpc = inbox->buf + 8; struct mlx4_vport_oper_state *vp_oper; struct mlx4_priv *priv; - u32 qp_type; int port; port = (qpc->pri_path.sched_queue & 0x40) ? 2 : 1; @@ -627,12 +676,6 @@ vp_oper = &priv->mfunc.master.vf_oper[slave].vport[port]; if (MLX4_VGT != vp_oper->state.default_vlan) { - qp_type = (be32_to_cpu(qpc->flags) >> 16) & 0xff; - if (MLX4_QP_ST_RC == qp_type || - (MLX4_QP_ST_UD == qp_type && - !mlx4_is_qp_reserved(dev, qpn))) - return -EINVAL; - /* the reserved QPs (special, proxy, tunnel) * do not operate over vlans */ @@ -1340,43 +1383,29 @@ spin_lock_irq(mlx4_tlock(dev)); r = res_tracker_lookup(&tracker->res_tree[RES_CQ], cqn); - if (!r) + if (!r) { err = -ENOENT; - else if (r->com.owner != slave) + } else if (r->com.owner != slave) { err = -EPERM; - else { - switch (state) { - case RES_CQ_BUSY: - err = -EBUSY; - break; - - case RES_CQ_ALLOCATED: - if (r->com.state != RES_CQ_HW) - err = -EINVAL; - else if (atomic_read(&r->ref_count)) - err = -EBUSY; - else - err = 0; - break; - - case RES_CQ_HW: - if (r->com.state != RES_CQ_ALLOCATED) - err = -EINVAL; - else - err = 0; - break; - - default: + } else if (state == RES_CQ_ALLOCATED) { + if (r->com.state != RES_CQ_HW) err = -EINVAL; - } + else if (atomic_read(&r->ref_count)) + err = -EBUSY; + else + err = 0; + } else if (state != RES_CQ_HW || r->com.state != RES_CQ_ALLOCATED) { + err = -EINVAL; + } else { + err = 0; + } - if (!err) { - r->com.from_state = r->com.state; - r->com.to_state = state; - r->com.state = RES_CQ_BUSY; - if (cq) - *cq = r; - } + if (!err) { + r->com.from_state = r->com.state; + r->com.to_state = state; + r->com.state = RES_CQ_BUSY; + if (cq) + *cq = r; } spin_unlock_irq(mlx4_tlock(dev)); @@ -1385,7 +1414,7 @@ } static int srq_res_start_move_to(struct mlx4_dev *dev, int slave, int index, - enum res_cq_states state, struct res_srq **srq) + enum res_srq_states state, struct res_srq **srq) { struct mlx4_priv *priv = mlx4_priv(dev); struct mlx4_resource_tracker *tracker = &priv->mfunc.master.res_tracker; @@ -1394,39 +1423,25 @@ spin_lock_irq(mlx4_tlock(dev)); r = res_tracker_lookup(&tracker->res_tree[RES_SRQ], index); - if (!r) + if (!r) { err = -ENOENT; - else if (r->com.owner != slave) + } else if (r->com.owner != slave) { err = -EPERM; - else { - switch (state) { - case RES_SRQ_BUSY: - err = -EINVAL; - break; - - case RES_SRQ_ALLOCATED: - if (r->com.state != RES_SRQ_HW) - err = -EINVAL; - else if (atomic_read(&r->ref_count)) - err = -EBUSY; - break; - - case RES_SRQ_HW: - if (r->com.state != RES_SRQ_ALLOCATED) - err = -EINVAL; - break; - - default: + } else if (state == RES_SRQ_ALLOCATED) { + if (r->com.state != RES_SRQ_HW) err = -EINVAL; - } + else if (atomic_read(&r->ref_count)) + err = -EBUSY; + } else if (state != RES_SRQ_HW || r->com.state != RES_SRQ_ALLOCATED) { + err = -EINVAL; + } - if (!err) { - r->com.from_state = r->com.state; - r->com.to_state = state; - r->com.state = RES_SRQ_BUSY; - if (srq) - *srq = r; - } + if (!err) { + r->com.from_state = r->com.state; + r->com.to_state = state; + r->com.state = RES_SRQ_BUSY; + if (srq) + *srq = r; } spin_unlock_irq(mlx4_tlock(dev)); @@ -1484,7 +1499,7 @@ switch (op) { case RES_OP_RESERVE: - count = get_param_l(&in_param); + count = get_param_l(&in_param) & 0xffffff; align = get_param_h(&in_param); err = mlx4_grant_resource(dev, slave, RES_QP, count, 0); if (err) @@ -1687,11 +1702,39 @@ return err; } -static int mac_add_to_slave(struct mlx4_dev *dev, int slave, u64 mac, int port) +static int mac_find_smac_ix_in_slave(struct mlx4_dev *dev, int slave, int port, + u8 smac_index, u64 *mac) { struct mlx4_priv *priv = mlx4_priv(dev); struct mlx4_resource_tracker *tracker = &priv->mfunc.master.res_tracker; - struct mac_res *res; + struct list_head *mac_list = + &tracker->slave_list[slave].res_list[RES_MAC]; + struct mac_res *res, *tmp; + + list_for_each_entry_safe(res, tmp, mac_list, list) { + if (res->smac_index == smac_index && res->port == (u8) port) { + *mac = res->mac; + return 0; + } + } + return -ENOENT; +} + +static int mac_add_to_slave(struct mlx4_dev *dev, int slave, u64 mac, int port, u8 smac_index) +{ + struct mlx4_priv *priv = mlx4_priv(dev); + struct mlx4_resource_tracker *tracker = &priv->mfunc.master.res_tracker; + struct list_head *mac_list = + &tracker->slave_list[slave].res_list[RES_MAC]; + struct mac_res *res, *tmp; + + list_for_each_entry_safe(res, tmp, mac_list, list) { + if (res->mac == mac && res->port == (u8) port) { + /* mac found. update ref count */ + ++res->ref_count; + return 0; + } + } if (mlx4_grant_resource(dev, slave, RES_MAC, 1, port)) return -EINVAL; @@ -1702,6 +1745,8 @@ } res->mac = mac; res->port = (u8) port; + res->smac_index = smac_index; + res->ref_count = 1; list_add_tail(&res->list, &tracker->slave_list[slave].res_list[RES_MAC]); return 0; @@ -1718,9 +1763,11 @@ list_for_each_entry_safe(res, tmp, mac_list, list) { if (res->mac == mac && res->port == (u8) port) { - list_del(&res->list); - mlx4_release_resource(dev, slave, RES_MAC, 1, port); - kfree(res); + if (!--res->ref_count) { + list_del(&res->list); + mlx4_release_resource(dev, slave, RES_MAC, 1, port); + kfree(res); + } break; } } @@ -1733,10 +1780,13 @@ struct list_head *mac_list = &tracker->slave_list[slave].res_list[RES_MAC]; struct mac_res *res, *tmp; + int i; list_for_each_entry_safe(res, tmp, mac_list, list) { list_del(&res->list); - __mlx4_unregister_mac(dev, res->port, res->mac); + /* dereference the mac the num times the slave referenced it */ + for (i = 0; i < res->ref_count; i++) + __mlx4_unregister_mac(dev, res->port, res->mac); mlx4_release_resource(dev, slave, RES_MAC, 1, res->port); kfree(res); } @@ -1748,21 +1798,28 @@ int err = -EINVAL; int port; u64 mac; + u8 smac_index; if (op != RES_OP_RESERVE_AND_MAP) return err; port = !in_port ? get_param_l(out_param) : in_port; + port = mlx4_slave_convert_port( + dev, slave, port); + + if (port < 0) + return -EINVAL; mac = in_param; err = __mlx4_register_mac(dev, port, mac); if (err >= 0) { + smac_index = err; set_param_l(out_param, err); err = 0; } if (!err) { - err = mac_add_to_slave(dev, slave, mac, port); + err = mac_add_to_slave(dev, slave, mac, port, smac_index); if (err) __mlx4_unregister_mac(dev, port, mac); } @@ -1859,6 +1916,11 @@ if (!port || op != RES_OP_RESERVE_AND_MAP) return -EINVAL; + port = mlx4_slave_convert_port( + dev, slave, port); + + if (port < 0) + return -EINVAL; /* upstream kernels had NOP for reg/unreg vlan. Continue this. */ if (!in_port && port > 0 && port <= dev->caps.num_ports) { slave_state[slave].old_vlan_api = true; @@ -2156,6 +2218,11 @@ switch (op) { case RES_OP_RESERVE_AND_MAP: port = !in_port ? get_param_l(out_param) : in_port; + port = mlx4_slave_convert_port( + dev, slave, port); + + if (port < 0) + return -EINVAL; mac_del_from_slave(dev, slave, in_param, port); __mlx4_unregister_mac(dev, port, in_param); break; @@ -2175,6 +2242,11 @@ struct mlx4_slave_state *slave_state = priv->mfunc.master.slave_state; int err = 0; + port = mlx4_slave_convert_port( + dev, slave, port); + + if (port < 0) + return -EINVAL; switch (op) { case RES_OP_RESERVE_AND_MAP: if (slave_state[slave].old_vlan_api) @@ -2762,6 +2834,8 @@ u32 qp_type; struct mlx4_qp_context *qp_ctx; enum mlx4_qp_optpar optpar; + int port; + int num_gids; qp_ctx = inbox->buf + 8; qp_type = (be32_to_cpu(qp_ctx->flags) >> 16) & 0xff; @@ -2769,6 +2843,7 @@ switch (qp_type) { case MLX4_QP_ST_RC: + case MLX4_QP_ST_XRC: case MLX4_QP_ST_UC: switch (transition) { case QP_TRANS_INIT2RTR: @@ -2777,13 +2852,24 @@ case QP_TRANS_SQD2SQD: case QP_TRANS_SQD2RTS: if (slave != mlx4_master_func_num(dev)) - /* slaves have only gid index 0 */ - if (optpar & MLX4_QP_OPTPAR_PRIMARY_ADDR_PATH) - if (qp_ctx->pri_path.mgid_index) + if (optpar & MLX4_QP_OPTPAR_PRIMARY_ADDR_PATH) { + port = (qp_ctx->pri_path.sched_queue >> 6 & 1) + 1; + if (dev->caps.port_mask[port] != MLX4_PORT_TYPE_IB) + num_gids = mlx4_get_slave_num_gids(dev, slave, port); + else + num_gids = 1; + if (qp_ctx->pri_path.mgid_index >= num_gids) return -EINVAL; - if (optpar & MLX4_QP_OPTPAR_ALT_ADDR_PATH) - if (qp_ctx->alt_path.mgid_index) + } + if (optpar & MLX4_QP_OPTPAR_ALT_ADDR_PATH) { + port = (qp_ctx->alt_path.sched_queue >> 6 & 1) + 1; + if (dev->caps.port_mask[port] != MLX4_PORT_TYPE_IB) + num_gids = mlx4_get_slave_num_gids(dev, slave, port); + else + num_gids = 1; + if (qp_ctx->alt_path.mgid_index >= num_gids) return -EINVAL; + } break; default: break; @@ -3296,6 +3382,58 @@ return mlx4_GEN_QP_wrapper(dev, slave, vhcr, inbox, outbox, cmd); } +static int adjust_qp_sched_queue(struct mlx4_dev *dev, int slave, + struct mlx4_qp_context *qpc, + struct mlx4_cmd_mailbox *inbox) +{ + enum mlx4_qp_optpar optpar = be32_to_cpu(*(__be32 *)inbox->buf); + u8 pri_sched_queue; + int port = mlx4_slave_convert_port( + dev, slave, (qpc->pri_path.sched_queue >> 6 & 1) + 1) - 1; + + if (port < 0) + return -EINVAL; + + pri_sched_queue = (qpc->pri_path.sched_queue & ~(1 << 6)) | + ((port & 1) << 6); + + if (optpar & MLX4_QP_OPTPAR_PRIMARY_ADDR_PATH || + mlx4_is_eth(dev, port + 1)) { + qpc->pri_path.sched_queue = pri_sched_queue; + } + + if (optpar & MLX4_QP_OPTPAR_ALT_ADDR_PATH) { + port = mlx4_slave_convert_port( + dev, slave, (qpc->alt_path.sched_queue >> 6 & 1) + + 1) - 1; + if (port < 0) + return -EINVAL; + qpc->alt_path.sched_queue = + (qpc->alt_path.sched_queue & ~(1 << 6)) | + (port & 1) << 6; + } + return 0; +} + +static int roce_verify_mac(struct mlx4_dev *dev, int slave, + struct mlx4_qp_context *qpc, + struct mlx4_cmd_mailbox *inbox) +{ + u64 mac; + int port; + u32 ts = (be32_to_cpu(qpc->flags) >> 16) & 0xff; + u8 sched = *(u8 *)(inbox->buf + 64); + u8 smac_ix; + + port = (sched >> 6 & 1) + 1; + if (mlx4_is_eth(dev, port) && (ts != MLX4_QP_ST_MLX)) { + smac_ix = qpc->pri_path.grh_mylmc & 0x7f; + if (mac_find_smac_ix_in_slave(dev, slave, port, smac_ix, &mac)) + return -ENOENT; + } + return 0; +} + int mlx4_INIT2RTR_QP_wrapper(struct mlx4_dev *dev, int slave, struct mlx4_vhcr *vhcr, struct mlx4_cmd_mailbox *inbox, @@ -3314,10 +3452,16 @@ u8 orig_vlan_index = qpc->pri_path.vlan_index; u8 orig_feup = qpc->pri_path.feup; + err = adjust_qp_sched_queue(dev, slave, qpc, inbox); + if (err) + return err; err = verify_qp_parameters(dev, inbox, QP_TRANS_INIT2RTR, slave); if (err) return err; + if (roce_verify_mac(dev, slave, qpc, inbox)) + return -EINVAL; + update_pkey_index(dev, slave, inbox); update_gid(dev, inbox, (u8)slave); adjust_proxy_tun_qkey(dev, vhcr, qpc); @@ -3362,6 +3506,9 @@ int err; struct mlx4_qp_context *context = inbox->buf + 8; + err = adjust_qp_sched_queue(dev, slave, context, inbox); + if (err) + return err; err = verify_qp_parameters(dev, inbox, QP_TRANS_RTR2RTS, slave); if (err) return err; @@ -3381,6 +3528,9 @@ int err; struct mlx4_qp_context *context = inbox->buf + 8; + err = adjust_qp_sched_queue(dev, slave, context, inbox); + if (err) + return err; err = verify_qp_parameters(dev, inbox, QP_TRANS_RTS2RTS, slave); if (err) return err; @@ -3399,6 +3549,9 @@ struct mlx4_cmd_info *cmd) { struct mlx4_qp_context *context = inbox->buf + 8; + int err = adjust_qp_sched_queue(dev, slave, context, inbox); + if (err) + return err; adjust_proxy_tun_qkey(dev, vhcr, context); return mlx4_GEN_QP_wrapper(dev, slave, vhcr, inbox, outbox, cmd); } @@ -3412,6 +3565,9 @@ int err; struct mlx4_qp_context *context = inbox->buf + 8; + err = adjust_qp_sched_queue(dev, slave, context, inbox); + if (err) + return err; err = verify_qp_parameters(dev, inbox, QP_TRANS_SQD2SQD, slave); if (err) return err; @@ -3431,6 +3587,9 @@ int err; struct mlx4_qp_context *context = inbox->buf + 8; + err = adjust_qp_sched_queue(dev, slave, context, inbox); + if (err) + return err; err = verify_qp_parameters(dev, inbox, QP_TRANS_SQD2RTS, slave); if (err) return err; @@ -3534,16 +3693,26 @@ return err; } -static int qp_attach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16], - int block_loopback, enum mlx4_protocol prot, +static int qp_attach(struct mlx4_dev *dev, int slave, struct mlx4_qp *qp, + u8 gid[16], int block_loopback, enum mlx4_protocol prot, enum mlx4_steer_type type, u64 *reg_id) { switch (dev->caps.steering_mode) { - case MLX4_STEERING_MODE_DEVICE_MANAGED: - return mlx4_trans_to_dmfs_attach(dev, qp, gid, gid[5], + case MLX4_STEERING_MODE_DEVICE_MANAGED: { + int port = mlx4_slave_convert_port(dev, slave, gid[5]); + if (port < 0) + return port; + return mlx4_trans_to_dmfs_attach(dev, qp, gid, port, block_loopback, prot, reg_id); + } case MLX4_STEERING_MODE_B0: + if (prot == MLX4_PROT_ETH) { + int port = mlx4_slave_convert_port(dev, slave, gid[5]); + if (port < 0) + return port; + gid[5] = port; + } return mlx4_qp_attach_common(dev, qp, gid, block_loopback, prot, type); default: @@ -3551,9 +3720,9 @@ } } -static int qp_detach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16], - enum mlx4_protocol prot, enum mlx4_steer_type type, - u64 reg_id) +static int qp_detach(struct mlx4_dev *dev, struct mlx4_qp *qp, + u8 gid[16], enum mlx4_protocol prot, + enum mlx4_steer_type type, u64 reg_id) { switch (dev->caps.steering_mode) { case MLX4_STEERING_MODE_DEVICE_MANAGED: @@ -3565,6 +3734,25 @@ } } +static int mlx4_adjust_port(struct mlx4_dev *dev, int slave, + u8 *gid, enum mlx4_protocol prot) +{ + int real_port; + + if (prot != MLX4_PROT_ETH) + return 0; + + if (dev->caps.steering_mode == MLX4_STEERING_MODE_B0 || + dev->caps.steering_mode == MLX4_STEERING_MODE_DEVICE_MANAGED) { + real_port = mlx4_slave_convert_port(dev, slave, gid[5]); + if (real_port < 0) + return -EINVAL; + gid[5] = real_port; + } + + return 0; +} + int mlx4_QP_ATTACH_wrapper(struct mlx4_dev *dev, int slave, struct mlx4_vhcr *vhcr, struct mlx4_cmd_mailbox *inbox, @@ -3590,7 +3778,7 @@ qp.qpn = qpn; if (attach) { - err = qp_attach(dev, &qp, gid, block_loopback, prot, + err = qp_attach(dev, slave, &qp, gid, block_loopback, prot, type, ®_id); if (err) { pr_err("Fail to attach rule to qp 0x%x\n", qpn); @@ -3600,6 +3788,10 @@ if (err) goto ex_detach; } else { + err = mlx4_adjust_port(dev, slave, gid, prot); + if (err) + goto ex_put; + err = rem_mcg_res(dev, slave, rqp, gid, prot, type, ®_id); if (err) goto ex_put; @@ -3634,7 +3826,7 @@ !is_broadcast_ether_addr(eth_header->eth.dst_mac)) { list_for_each_entry_safe(res, tmp, rlist, list) { be_mac = cpu_to_be64(res->mac << 16); - if (!memcmp(&be_mac, eth_header->eth.dst_mac, ETH_ALEN)) + if (ether_addr_equal((u8 *)&be_mac, eth_header->eth.dst_mac)) return 0; } pr_err("MAC %pM doesn't belong to VF %d, Steering rule rejected\n", @@ -3704,6 +3896,60 @@ } +#define MLX4_UPD_QP_PATH_MASK_SUPPORTED (1ULL << MLX4_UPD_QP_PATH_MASK_MAC_INDEX) +int mlx4_UPDATE_QP_wrapper(struct mlx4_dev *dev, int slave, + struct mlx4_vhcr *vhcr, + struct mlx4_cmd_mailbox *inbox, + struct mlx4_cmd_mailbox *outbox, + struct mlx4_cmd_info *cmd_info) +{ + int err; + u32 qpn = vhcr->in_modifier & 0xffffff; + struct res_qp *rqp; + u64 mac; + unsigned port; + u64 pri_addr_path_mask; + struct mlx4_update_qp_context *cmd; + int smac_index; + + cmd = (struct mlx4_update_qp_context *)inbox->buf; + + pri_addr_path_mask = be64_to_cpu(cmd->primary_addr_path_mask); + if (cmd->qp_mask || cmd->secondary_addr_path_mask || + (pri_addr_path_mask & ~MLX4_UPD_QP_PATH_MASK_SUPPORTED)) + return -EPERM; + + /* Just change the smac for the QP */ + err = get_res(dev, slave, qpn, RES_QP, &rqp); + if (err) { + mlx4_err(dev, "Updating qpn 0x%x for slave %d rejected\n", qpn, slave); + return err; + } + + port = (rqp->sched_queue >> 6 & 1) + 1; + smac_index = cmd->qp_context.pri_path.grh_mylmc; + err = mac_find_smac_ix_in_slave(dev, slave, port, + smac_index, &mac); + if (err) { + mlx4_err(dev, "Failed to update qpn 0x%x, MAC is invalid. smac_ix: %d\n", + qpn, smac_index); + goto err_mac; + } + + err = mlx4_cmd(dev, inbox->dma, + vhcr->in_modifier, 0, + MLX4_CMD_UPDATE_QP, MLX4_CMD_TIME_CLASS_A, + MLX4_CMD_NATIVE); + if (err) { + mlx4_err(dev, "Failed to update qpn on qpn 0x%x, command failed\n", qpn); + goto err_mac; + } + +err_mac: + put_res(dev, slave, qpn, RES_QP); + return err; +} + int mlx4_QP_FLOW_STEERING_ATTACH_wrapper(struct mlx4_dev *dev, int slave, struct mlx4_vhcr *vhcr, struct mlx4_cmd_mailbox *inbox, @@ -3726,6 +3972,9 @@ return -EOPNOTSUPP; ctrl = (struct mlx4_net_trans_rule_hw_ctrl *)inbox->buf; + ctrl->port = mlx4_slave_convert_port(dev, slave, ctrl->port); + if (ctrl->port <= 0) + return -EINVAL; qpn = be32_to_cpu(ctrl->qpn) & 0xffffff; err = get_res(dev, slave, qpn, RES_QP, &rqp); if (err) { @@ -4433,7 +4682,7 @@ void mlx4_delete_all_resources_for_slave(struct mlx4_dev *dev, int slave) { struct mlx4_priv *priv = mlx4_priv(dev); - + mlx4_reset_roce_gids(dev, slave); mutex_lock(&priv->mfunc.master.res_tracker.slave_list[slave].mutex); rem_slave_vlans(dev, slave); rem_slave_macs(dev, slave); --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx4/srq.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx4/srq.c @@ -117,7 +117,7 @@ mlx4_table_put(dev, &srq_table->table, *srqn); err_out: - mlx4_bitmap_free(&srq_table->bitmap, *srqn); + mlx4_bitmap_free(&srq_table->bitmap, *srqn, MLX4_NO_RR); return err; } @@ -145,7 +145,7 @@ mlx4_table_put(dev, &srq_table->cmpt_table, srqn); mlx4_table_put(dev, &srq_table->table, srqn); - mlx4_bitmap_free(&srq_table->bitmap, srqn); + mlx4_bitmap_free(&srq_table->bitmap, srqn, MLX4_NO_RR); } static void mlx4_srq_free_icm(struct mlx4_dev *dev, int srqn) --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx5/core/Kconfig +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx5/core/Kconfig @@ -4,5 +4,5 @@ config MLX5_CORE tristate - depends on PCI && X86 + depends on PCI default n --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx5/core/cq.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx5/core/cq.c @@ -201,10 +201,23 @@ int mlx5_core_modify_cq(struct mlx5_core_dev *dev, struct mlx5_core_cq *cq, - int type, struct mlx5_cq_modify_params *params) + struct mlx5_modify_cq_mbox_in *in, int in_sz) { - return -ENOSYS; + struct mlx5_modify_cq_mbox_out out; + int err; + + memset(&out, 0, sizeof(out)); + in->hdr.opcode = cpu_to_be16(MLX5_CMD_OP_MODIFY_CQ); + err = mlx5_cmd_exec(dev, in, in_sz, &out, sizeof(out)); + if (err) + return err; + + if (out.hdr.status) + return mlx5_cmd_status_to_err(&out.hdr); + + return 0; } +EXPORT_SYMBOL(mlx5_core_modify_cq); int mlx5_init_cq_table(struct mlx5_core_dev *dev) { --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx5/core/debugfs.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx5/core/debugfs.c @@ -275,7 +275,7 @@ } static u64 qp_read_field(struct mlx5_core_dev *dev, struct mlx5_core_qp *qp, - int index) + int index, int *is_str) { struct mlx5_query_qp_mbox_out *out; struct mlx5_qp_context *ctx; @@ -293,19 +293,40 @@ goto out; } + *is_str = 0; ctx = &out->ctx; switch (index) { case QP_PID: param = qp->pid; break; case QP_STATE: - param = be32_to_cpu(ctx->flags) >> 28; + param = (u64)mlx5_qp_state_str(be32_to_cpu(ctx->flags) >> 28); + *is_str = 1; break; case QP_XPORT: - param = (be32_to_cpu(ctx->flags) >> 16) & 0xff; + param = (u64)mlx5_qp_type_str((be32_to_cpu(ctx->flags) >> 16) & 0xff); + *is_str = 1; break; case QP_MTU: - param = ctx->mtu_msgmax >> 5; + switch (ctx->mtu_msgmax >> 5) { + case IB_MTU_256: + param = 256; + break; + case IB_MTU_512: + param = 512; + break; + case IB_MTU_1024: + param = 1024; + break; + case IB_MTU_2048: + param = 2048; + break; + case IB_MTU_4096: + param = 4096; + break; + default: + param = 0; + } break; case QP_N_RECV: param = 1 << ((ctx->rq_size_stride >> 3) & 0xf); @@ -414,6 +435,7 @@ struct mlx5_field_desc *desc; struct mlx5_rsc_debug *d; char tbuf[18]; + int is_str = 0; u64 field; int ret; @@ -424,7 +446,7 @@ d = (void *)(desc - desc->i) - sizeof(*d); switch (d->type) { case MLX5_DBG_RSC_QP: - field = qp_read_field(d->dev, d->object, desc->i); + field = qp_read_field(d->dev, d->object, desc->i, &is_str); break; case MLX5_DBG_RSC_EQ: @@ -440,7 +462,12 @@ return -EINVAL; } - ret = snprintf(tbuf, sizeof(tbuf), "0x%llx\n", field); + + if (is_str) + ret = snprintf(tbuf, sizeof(tbuf), "%s\n", (const char *)field); + else + ret = snprintf(tbuf, sizeof(tbuf), "0x%llx\n", field); + if (ret > 0) { if (copy_to_user(buf, tbuf, ret)) return -EFAULT; --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx5/core/main.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx5/core/main.c @@ -46,8 +46,8 @@ #include "mlx5_core.h" #define DRIVER_NAME "mlx5_core" -#define DRIVER_VERSION "1.0" -#define DRIVER_RELDATE "June 2013" +#define DRIVER_VERSION "2.2-1" +#define DRIVER_RELDATE "Feb 2014" MODULE_AUTHOR("Eli Cohen "); MODULE_DESCRIPTION("Mellanox ConnectX-IB HCA core library"); @@ -460,7 +460,10 @@ err_stop_poll: mlx5_stop_health_poll(dev); - mlx5_cmd_teardown_hca(dev); + if (mlx5_cmd_teardown_hca(dev)) { + dev_err(&dev->pdev->dev, "tear_down_hca failed, skip cleanup\n"); + return err; + } err_pagealloc_stop: mlx5_pagealloc_stop(dev); @@ -503,7 +506,10 @@ mlx5_eq_cleanup(dev); mlx5_disable_msix(dev); mlx5_stop_health_poll(dev); - mlx5_cmd_teardown_hca(dev); + if (mlx5_cmd_teardown_hca(dev)) { + dev_err(&dev->pdev->dev, "tear_down_hca failed, skip cleanup\n"); + return; + } mlx5_pagealloc_stop(dev); mlx5_reclaim_startup_pages(dev); mlx5_core_disable_hca(dev); @@ -531,7 +537,6 @@ return 0; - mlx5_health_cleanup(); err_debug: mlx5_unregister_debugfs(); return err; --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c @@ -99,7 +99,7 @@ enum { MLX5_MAX_RECLAIM_TIME_MILI = 5000, - MLX5_NUM_4K_IN_PAGE = PAGE_SIZE / 4096, + MLX5_NUM_4K_IN_PAGE = PAGE_SIZE / MLX5_ADAPTER_PAGE_SIZE, }; static int insert_page(struct mlx5_core_dev *dev, u64 addr, struct page *page, u16 func_id) @@ -192,10 +192,8 @@ struct fw_page *fp; unsigned n; - if (list_empty(&dev->priv.free_list)) { + if (list_empty(&dev->priv.free_list)) return -ENOMEM; - mlx5_core_warn(dev, "\n"); - } fp = list_entry(dev->priv.free_list.next, struct fw_page, list); n = find_first_bit(&fp->bitmask, 8 * sizeof(fp->bitmask)); @@ -208,7 +206,7 @@ if (!fp->free_count) list_del(&fp->list); - *addr = fp->addr + n * 4096; + *addr = fp->addr + n * MLX5_ADAPTER_PAGE_SIZE; return 0; } @@ -224,14 +222,15 @@ return; } - n = (addr & ~PAGE_MASK) % 4096; + n = (addr & ~PAGE_MASK) >> MLX5_ADAPTER_PAGE_SHIFT; fwp->free_count++; set_bit(n, &fwp->bitmask); if (fwp->free_count == MLX5_NUM_4K_IN_PAGE) { rb_erase(&fwp->rb_node, &dev->priv.page_root); if (fwp->free_count != 1) list_del(&fwp->list); - dma_unmap_page(&dev->pdev->dev, addr, PAGE_SIZE, DMA_BIDIRECTIONAL); + dma_unmap_page(&dev->pdev->dev, addr & PAGE_MASK, PAGE_SIZE, + DMA_BIDIRECTIONAL); __free_page(fwp->page); kfree(fwp); } else if (fwp->free_count == 1) { --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx5/core/port.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx5/core/port.c @@ -57,7 +57,7 @@ in->arg = cpu_to_be32(arg); in->register_id = cpu_to_be16(reg_num); err = mlx5_cmd_exec(dev, in, sizeof(*in) + size_in, out, - sizeof(out) + size_out); + sizeof(*out) + size_out); if (err) goto ex2; --- linux-3.13.0.orig/drivers/net/ethernet/mellanox/mlx5/core/qp.c +++ linux-3.13.0/drivers/net/ethernet/mellanox/mlx5/core/qp.c @@ -74,7 +74,7 @@ struct mlx5_destroy_qp_mbox_out dout; int err; - memset(&dout, 0, sizeof(dout)); + memset(&out, 0, sizeof(out)); in->hdr.opcode = cpu_to_be16(MLX5_CMD_OP_CREATE_QP); err = mlx5_cmd_exec(dev, in, inlen, &out, sizeof(out)); @@ -84,7 +84,8 @@ } if (out.hdr.status) { - pr_warn("current num of QPs 0x%x\n", atomic_read(&dev->num_qps)); + mlx5_core_warn(dev, "current num of QPs 0x%x\n", + atomic_read(&dev->num_qps)); return mlx5_cmd_status_to_err(&out.hdr); } --- linux-3.13.0.orig/drivers/net/ethernet/micrel/ks8851.c +++ linux-3.13.0/drivers/net/ethernet/micrel/ks8851.c @@ -23,6 +23,7 @@ #include #include #include +#include #include @@ -83,6 +84,7 @@ * @rc_rxqcr: Cached copy of KS_RXQCR. * @eeprom_size: Companion eeprom size in Bytes, 0 if no eeprom * @eeprom: 93CX6 EEPROM state for accessing on-board EEPROM. + * @vdd_reg: Optional regulator supplying the chip * * The @lock ensures that the chip is protected when certain operations are * in progress. When the read or write packet transfer is in progress, most @@ -130,6 +132,7 @@ struct spi_transfer spi_xfer2[2]; struct eeprom_93cx6 eeprom; + struct regulator *vdd_reg; }; static int msg_enable; @@ -1414,6 +1417,21 @@ ks->spidev = spi; ks->tx_space = 6144; + ks->vdd_reg = regulator_get_optional(&spi->dev, "vdd"); + if (IS_ERR(ks->vdd_reg)) { + ret = PTR_ERR(ks->vdd_reg); + if (ret == -EPROBE_DEFER) + goto err_reg; + } else { + ret = regulator_enable(ks->vdd_reg); + if (ret) { + dev_err(&spi->dev, "regulator enable fail: %d\n", + ret); + goto err_reg_en; + } + } + + mutex_init(&ks->lock); spin_lock_init(&ks->statelock); @@ -1508,8 +1526,14 @@ err_netdev: free_irq(ndev->irq, ks); -err_id: err_irq: +err_id: + if (!IS_ERR(ks->vdd_reg)) + regulator_disable(ks->vdd_reg); +err_reg_en: + if (!IS_ERR(ks->vdd_reg)) + regulator_put(ks->vdd_reg); +err_reg: free_netdev(ndev); return ret; } @@ -1523,6 +1547,10 @@ unregister_netdev(priv->netdev); free_irq(spi->irq, priv); + if (!IS_ERR(priv->vdd_reg)) { + regulator_disable(priv->vdd_reg); + regulator_put(priv->vdd_reg); + } free_netdev(priv->netdev); return 0; --- linux-3.13.0.orig/drivers/net/ethernet/myricom/myri10ge/myri10ge.c +++ linux-3.13.0/drivers/net/ethernet/myricom/myri10ge/myri10ge.c @@ -872,6 +872,10 @@ return -ENOMEM; dmatest_bus = pci_map_page(mgp->pdev, dmatest_page, 0, PAGE_SIZE, DMA_BIDIRECTIONAL); + if (unlikely(pci_dma_mapping_error(mgp->pdev, dmatest_bus))) { + __free_page(dmatest_page); + return -ENOMEM; + } /* Run a small DMA test. * The magic multipliers to the length tell the firmware @@ -1293,6 +1297,7 @@ int bytes, int watchdog) { struct page *page; + dma_addr_t bus; int idx; #if MYRI10GE_ALLOC_SIZE > 4096 int end_offset; @@ -1317,11 +1322,21 @@ rx->watchdog_needed = 1; return; } + + bus = pci_map_page(mgp->pdev, page, 0, + MYRI10GE_ALLOC_SIZE, + PCI_DMA_FROMDEVICE); + if (unlikely(pci_dma_mapping_error(mgp->pdev, bus))) { + __free_pages(page, MYRI10GE_ALLOC_ORDER); + if (rx->fill_cnt - rx->cnt < 16) + rx->watchdog_needed = 1; + return; + } + rx->page = page; rx->page_offset = 0; - rx->bus = pci_map_page(mgp->pdev, page, 0, - MYRI10GE_ALLOC_SIZE, - PCI_DMA_FROMDEVICE); + rx->bus = bus; + } rx->info[idx].page = rx->page; rx->info[idx].page_offset = rx->page_offset; @@ -2765,6 +2780,35 @@ mb(); } +static void myri10ge_unmap_tx_dma(struct myri10ge_priv *mgp, + struct myri10ge_tx_buf *tx, int idx) +{ + unsigned int len; + int last_idx; + + /* Free any DMA resources we've alloced and clear out the skb slot */ + last_idx = (idx + 1) & tx->mask; + idx = tx->req & tx->mask; + do { + len = dma_unmap_len(&tx->info[idx], len); + if (len) { + if (tx->info[idx].skb != NULL) + pci_unmap_single(mgp->pdev, + dma_unmap_addr(&tx->info[idx], + bus), len, + PCI_DMA_TODEVICE); + else + pci_unmap_page(mgp->pdev, + dma_unmap_addr(&tx->info[idx], + bus), len, + PCI_DMA_TODEVICE); + dma_unmap_len_set(&tx->info[idx], len, 0); + tx->info[idx].skb = NULL; + } + idx = (idx + 1) & tx->mask; + } while (idx != last_idx); +} + /* * Transmit a packet. We need to split the packet so that a single * segment does not cross myri10ge->tx_boundary, so this makes segment @@ -2788,7 +2832,7 @@ u32 low; __be32 high_swapped; unsigned int len; - int idx, last_idx, avail, frag_cnt, frag_idx, count, mss, max_segments; + int idx, avail, frag_cnt, frag_idx, count, mss, max_segments; u16 pseudo_hdr_offset, cksum_offset, queue; int cum_len, seglen, boundary, rdma_count; u8 flags, odd_flag; @@ -2885,9 +2929,12 @@ /* map the skb for DMA */ len = skb_headlen(skb); + bus = pci_map_single(mgp->pdev, skb->data, len, PCI_DMA_TODEVICE); + if (unlikely(pci_dma_mapping_error(mgp->pdev, bus))) + goto drop; + idx = tx->req & tx->mask; tx->info[idx].skb = skb; - bus = pci_map_single(mgp->pdev, skb->data, len, PCI_DMA_TODEVICE); dma_unmap_addr_set(&tx->info[idx], bus, bus); dma_unmap_len_set(&tx->info[idx], len, len); @@ -2986,12 +3033,16 @@ break; /* map next fragment for DMA */ - idx = (count + tx->req) & tx->mask; frag = &skb_shinfo(skb)->frags[frag_idx]; frag_idx++; len = skb_frag_size(frag); bus = skb_frag_dma_map(&mgp->pdev->dev, frag, 0, len, DMA_TO_DEVICE); + if (unlikely(pci_dma_mapping_error(mgp->pdev, bus))) { + myri10ge_unmap_tx_dma(mgp, tx, idx); + goto drop; + } + idx = (count + tx->req) & tx->mask; dma_unmap_addr_set(&tx->info[idx], bus, bus); dma_unmap_len_set(&tx->info[idx], len, len); } @@ -3022,31 +3073,8 @@ return NETDEV_TX_OK; abort_linearize: - /* Free any DMA resources we've alloced and clear out the skb - * slot so as to not trip up assertions, and to avoid a - * double-free if linearizing fails */ + myri10ge_unmap_tx_dma(mgp, tx, idx); - last_idx = (idx + 1) & tx->mask; - idx = tx->req & tx->mask; - tx->info[idx].skb = NULL; - do { - len = dma_unmap_len(&tx->info[idx], len); - if (len) { - if (tx->info[idx].skb != NULL) - pci_unmap_single(mgp->pdev, - dma_unmap_addr(&tx->info[idx], - bus), len, - PCI_DMA_TODEVICE); - else - pci_unmap_page(mgp->pdev, - dma_unmap_addr(&tx->info[idx], - bus), len, - PCI_DMA_TODEVICE); - dma_unmap_len_set(&tx->info[idx], len, 0); - tx->info[idx].skb = NULL; - } - idx = (idx + 1) & tx->mask; - } while (idx != last_idx); if (skb_is_gso(skb)) { netdev_err(mgp->dev, "TSO but wanted to linearize?!?!?\n"); goto drop; --- linux-3.13.0.orig/drivers/net/ethernet/neterion/vxge/vxge-main.c +++ linux-3.13.0/drivers/net/ethernet/neterion/vxge/vxge-main.c @@ -3135,12 +3135,12 @@ u64 packets, bytes, multicast; do { - start = u64_stats_fetch_begin_bh(&rxstats->syncp); + start = u64_stats_fetch_begin_irq(&rxstats->syncp); packets = rxstats->rx_frms; multicast = rxstats->rx_mcast; bytes = rxstats->rx_bytes; - } while (u64_stats_fetch_retry_bh(&rxstats->syncp, start)); + } while (u64_stats_fetch_retry_irq(&rxstats->syncp, start)); net_stats->rx_packets += packets; net_stats->rx_bytes += bytes; @@ -3150,11 +3150,11 @@ net_stats->rx_dropped += rxstats->rx_dropped; do { - start = u64_stats_fetch_begin_bh(&txstats->syncp); + start = u64_stats_fetch_begin_irq(&txstats->syncp); packets = txstats->tx_frms; bytes = txstats->tx_bytes; - } while (u64_stats_fetch_retry_bh(&txstats->syncp, start)); + } while (u64_stats_fetch_retry_irq(&txstats->syncp, start)); net_stats->tx_packets += packets; net_stats->tx_bytes += bytes; @@ -4206,6 +4206,9 @@ return ret; } +#define VXGE_PXE_FIRMWARE "vxge/X3fw-pxe.ncf" +#define VXGE_FIRMWARE "vxge/X3fw.ncf" + static int vxge_probe_fw_update(struct vxgedev *vdev) { u32 maj, min, bld; @@ -4248,9 +4251,9 @@ } } if (gpxe) - fw_name = "vxge/X3fw-pxe.ncf"; + fw_name = VXGE_PXE_FIRMWARE; else - fw_name = "vxge/X3fw.ncf"; + fw_name = VXGE_FIRMWARE; ret = vxge_fw_upgrade(vdev, fw_name, 0); /* -EINVAL and -ENOENT are not fatal errors for flashing firmware on @@ -4855,3 +4858,5 @@ } module_init(vxge_starter); module_exit(vxge_closer); +MODULE_FIRMWARE(VXGE_PXE_FIRMWARE); +MODULE_FIRMWARE(VXGE_FIRMWARE); --- linux-3.13.0.orig/drivers/net/ethernet/nvidia/forcedeth.c +++ linux-3.13.0/drivers/net/ethernet/nvidia/forcedeth.c @@ -1755,19 +1755,19 @@ /* software stats */ do { - syncp_start = u64_stats_fetch_begin_bh(&np->swstats_rx_syncp); + syncp_start = u64_stats_fetch_begin_irq(&np->swstats_rx_syncp); storage->rx_packets = np->stat_rx_packets; storage->rx_bytes = np->stat_rx_bytes; storage->rx_dropped = np->stat_rx_dropped; storage->rx_missed_errors = np->stat_rx_missed_errors; - } while (u64_stats_fetch_retry_bh(&np->swstats_rx_syncp, syncp_start)); + } while (u64_stats_fetch_retry_irq(&np->swstats_rx_syncp, syncp_start)); do { - syncp_start = u64_stats_fetch_begin_bh(&np->swstats_tx_syncp); + syncp_start = u64_stats_fetch_begin_irq(&np->swstats_tx_syncp); storage->tx_packets = np->stat_tx_packets; storage->tx_bytes = np->stat_tx_bytes; storage->tx_dropped = np->stat_tx_dropped; - } while (u64_stats_fetch_retry_bh(&np->swstats_tx_syncp, syncp_start)); + } while (u64_stats_fetch_retry_irq(&np->swstats_tx_syncp, syncp_start)); /* If the nic supports hw counters then retrieve latest values */ if (np->driver_data & DEV_HAS_STATISTICS_V123) { --- linux-3.13.0.orig/drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c +++ linux-3.13.0/drivers/net/ethernet/qlogic/qlcnic/qlcnic_dcb.c @@ -1047,6 +1047,7 @@ struct qlcnic_dcb_cee *peer; int i; + memset(info, 0, sizeof(*info)); *app_count = 0; if (!test_bit(QLCNIC_DCB_STATE, &adapter->dcb->state)) --- linux-3.13.0.orig/drivers/net/ethernet/realtek/8139too.c +++ linux-3.13.0/drivers/net/ethernet/realtek/8139too.c @@ -2522,16 +2522,16 @@ netdev_stats_to_stats64(stats, &dev->stats); do { - start = u64_stats_fetch_begin_bh(&tp->rx_stats.syncp); + start = u64_stats_fetch_begin_irq(&tp->rx_stats.syncp); stats->rx_packets = tp->rx_stats.packets; stats->rx_bytes = tp->rx_stats.bytes; - } while (u64_stats_fetch_retry_bh(&tp->rx_stats.syncp, start)); + } while (u64_stats_fetch_retry_irq(&tp->rx_stats.syncp, start)); do { - start = u64_stats_fetch_begin_bh(&tp->tx_stats.syncp); + start = u64_stats_fetch_begin_irq(&tp->tx_stats.syncp); stats->tx_packets = tp->tx_stats.packets; stats->tx_bytes = tp->tx_stats.bytes; - } while (u64_stats_fetch_retry_bh(&tp->tx_stats.syncp, start)); + } while (u64_stats_fetch_retry_irq(&tp->tx_stats.syncp, start)); return stats; } --- linux-3.13.0.orig/drivers/net/ethernet/realtek/r8169.c +++ linux-3.13.0/drivers/net/ethernet/realtek/r8169.c @@ -6591,17 +6591,17 @@ rtl8169_rx_missed(dev, ioaddr); do { - start = u64_stats_fetch_begin_bh(&tp->rx_stats.syncp); + start = u64_stats_fetch_begin_irq(&tp->rx_stats.syncp); stats->rx_packets = tp->rx_stats.packets; stats->rx_bytes = tp->rx_stats.bytes; - } while (u64_stats_fetch_retry_bh(&tp->rx_stats.syncp, start)); + } while (u64_stats_fetch_retry_irq(&tp->rx_stats.syncp, start)); do { - start = u64_stats_fetch_begin_bh(&tp->tx_stats.syncp); + start = u64_stats_fetch_begin_irq(&tp->tx_stats.syncp); stats->tx_packets = tp->tx_stats.packets; stats->tx_bytes = tp->tx_stats.bytes; - } while (u64_stats_fetch_retry_bh(&tp->tx_stats.syncp, start)); + } while (u64_stats_fetch_retry_irq(&tp->tx_stats.syncp, start)); stats->rx_dropped = dev->stats.rx_dropped; stats->tx_dropped = dev->stats.tx_dropped; --- linux-3.13.0.orig/drivers/net/ethernet/renesas/sh_eth.c +++ linux-3.13.0/drivers/net/ethernet/renesas/sh_eth.c @@ -247,6 +247,27 @@ }; static const u16 sh_eth_offset_fast_sh3_sh2[SH_ETH_MAX_REGISTER_OFFSET] = { + [EDMR] = 0x0000, + [EDTRR] = 0x0004, + [EDRRR] = 0x0008, + [TDLAR] = 0x000c, + [RDLAR] = 0x0010, + [EESR] = 0x0014, + [EESIPR] = 0x0018, + [TRSCER] = 0x001c, + [RMFCR] = 0x0020, + [TFTR] = 0x0024, + [FDR] = 0x0028, + [RMCR] = 0x002c, + [EDOCR] = 0x0030, + [FCFTR] = 0x0034, + [RPADIR] = 0x0038, + [TRIMD] = 0x003c, + [RBWAR] = 0x0040, + [RDFAR] = 0x0044, + [TBRAR] = 0x004c, + [TDFAR] = 0x0050, + [ECMR] = 0x0160, [ECSR] = 0x0164, [ECSIPR] = 0x0168, @@ -483,7 +504,6 @@ .register_type = SH_ETH_REG_FAST_SH4, .eesipr_value = DMAC_M_RFRMER | DMAC_M_ECI | 0x003fffff, - .rmcr_value = RMCR_RNC, .tx_check = EESR_FTC | EESR_CND | EESR_DLC | EESR_CD | EESR_RTO, .eesr_err_check = EESR_TWB | EESR_TABT | EESR_RABT | EESR_RFE | @@ -561,7 +581,6 @@ EESR_RFE | EESR_RDE | EESR_RFRMER | EESR_TFE | EESR_TDE | EESR_ECI, .fdr_value = 0x0000072f, - .rmcr_value = RMCR_RNC, .irq_flags = IRQF_SHARED, .apr = 1, @@ -689,7 +708,6 @@ EESR_RFE | EESR_RDE | EESR_RFRMER | EESR_TFE | EESR_TDE | EESR_ECI, .fdr_value = 0x0000070f, - .rmcr_value = RMCR_RNC, .apr = 1, .mpr = 1, @@ -738,9 +756,6 @@ if (!cd->fdr_value) cd->fdr_value = DEFAULT_FDR_INIT; - if (!cd->rmcr_value) - cd->rmcr_value = DEFAULT_RMCR_VALUE; - if (!cd->tx_check) cd->tx_check = DEFAULT_TX_CHECK; @@ -1193,8 +1208,8 @@ sh_eth_write(ndev, mdp->cd->fdr_value, FDR); sh_eth_write(ndev, 0, TFTR); - /* Frame recv control */ - sh_eth_write(ndev, mdp->cd->rmcr_value, RMCR); + /* Frame recv control (enable multiple-packets per rx irq) */ + sh_eth_write(ndev, RMCR_RNC, RMCR); sh_eth_write(ndev, DESC_I_RINT8 | DESC_I_RINT5 | DESC_I_TINT2, TRSCER); --- linux-3.13.0.orig/drivers/net/ethernet/renesas/sh_eth.h +++ linux-3.13.0/drivers/net/ethernet/renesas/sh_eth.h @@ -324,7 +324,6 @@ enum RMCR_BIT { RMCR_RNC = 0x00000001, }; -#define DEFAULT_RMCR_VALUE 0x00000000 /* ECMR */ enum FELIC_MODE_BIT { @@ -473,7 +472,6 @@ unsigned long fdr_value; unsigned long fcftr_value; unsigned long rpadir_value; - unsigned long rmcr_value; /* interrupt checking mask */ unsigned long tx_check; --- linux-3.13.0.orig/drivers/net/ethernet/sfc/ef10.c +++ linux-3.13.0/drivers/net/ethernet/sfc/ef10.c @@ -555,10 +555,17 @@ * several of each (in fact that's the only option if host * page size is >4K). So we may allocate some extra VIs just * for writing PIO buffers through. + * + * The UC mapping contains (min_vis - 1) complete VIs and the + * first half of the next VI. Then the WC mapping begins with + * the second half of this last VI. */ uc_mem_map_size = PAGE_ALIGN((min_vis - 1) * EFX_VI_PAGE_SIZE + ER_DZ_TX_PIOBUF); if (nic_data->n_piobufs) { + /* pio_write_vi_base rounds down to give the number of complete + * VIs inside the UC mapping. + */ pio_write_vi_base = uc_mem_map_size / EFX_VI_PAGE_SIZE; wc_mem_map_size = (PAGE_ALIGN((pio_write_vi_base + nic_data->n_piobufs) * --- linux-3.13.0.orig/drivers/net/ethernet/sfc/efx.c +++ linux-3.13.0/drivers/net/ethernet/sfc/efx.c @@ -1514,6 +1514,8 @@ if (rc) goto fail1; + efx_set_channels(efx); + rc = efx->type->dimension_resources(efx); if (rc) goto fail2; @@ -1524,7 +1526,6 @@ efx->rx_indir_table[i] = ethtool_rxfh_indir_default(i, efx->rss_spread); - efx_set_channels(efx); netif_set_real_num_tx_queues(efx->net_dev, efx->n_tx_channels); netif_set_real_num_rx_queues(efx->net_dev, efx->n_rx_channels); --- linux-3.13.0.orig/drivers/net/ethernet/sfc/efx.h +++ linux-3.13.0/drivers/net/ethernet/sfc/efx.h @@ -66,6 +66,9 @@ #define EFX_RXQ_MIN_ENT 128U #define EFX_TXQ_MIN_ENT(efx) (2 * efx_tx_max_skb_descs(efx)) +#define EFX_TXQ_MAX_ENT(efx) (EFX_WORKAROUND_35388(efx) ? \ + EFX_MAX_DMAQ_SIZE / 2 : EFX_MAX_DMAQ_SIZE) + /* Filters */ /** --- linux-3.13.0.orig/drivers/net/ethernet/sfc/ethtool.c +++ linux-3.13.0/drivers/net/ethernet/sfc/ethtool.c @@ -583,7 +583,7 @@ struct efx_nic *efx = netdev_priv(net_dev); ring->rx_max_pending = EFX_MAX_DMAQ_SIZE; - ring->tx_max_pending = EFX_MAX_DMAQ_SIZE; + ring->tx_max_pending = EFX_TXQ_MAX_ENT(efx); ring->rx_pending = efx->rxq_entries; ring->tx_pending = efx->txq_entries; } @@ -596,7 +596,7 @@ if (ring->rx_mini_pending || ring->rx_jumbo_pending || ring->rx_pending > EFX_MAX_DMAQ_SIZE || - ring->tx_pending > EFX_MAX_DMAQ_SIZE) + ring->tx_pending > EFX_TXQ_MAX_ENT(efx)) return -EINVAL; if (ring->rx_pending < EFX_RXQ_MIN_ENT) { --- linux-3.13.0.orig/drivers/net/ethernet/sfc/io.h +++ linux-3.13.0/drivers/net/ethernet/sfc/io.h @@ -66,10 +66,17 @@ #define EFX_USE_QWORD_IO 1 #endif +/* Hardware issue requires that only 64-bit naturally aligned writes + * are seen by hardware. Its not strictly necessary to restrict to + * x86_64 arch, but done for safety since unusual write combining behaviour + * can break PIO. + */ +#ifdef CONFIG_X86_64 /* PIO is a win only if write-combining is possible */ #ifdef ARCH_HAS_IOREMAP_WC #define EFX_USE_PIO 1 #endif +#endif #ifdef EFX_USE_QWORD_IO static inline void _efx_writeq(struct efx_nic *efx, __le64 value, --- linux-3.13.0.orig/drivers/net/ethernet/sfc/nic.c +++ linux-3.13.0/drivers/net/ethernet/sfc/nic.c @@ -156,13 +156,15 @@ efx->net_dev->rx_cpu_rmap = NULL; #endif - /* Disable MSI/MSI-X interrupts */ - efx_for_each_channel(channel, efx) - free_irq(channel->irq, &efx->msi_context[channel->channel]); - - /* Disable legacy interrupt */ - if (efx->legacy_irq) + if (EFX_INT_MODE_USE_MSI(efx)) { + /* Disable MSI/MSI-X interrupts */ + efx_for_each_channel(channel, efx) + free_irq(channel->irq, + &efx->msi_context[channel->channel]); + } else { + /* Disable legacy interrupt */ free_irq(efx->legacy_irq, efx); + } } /* Register dump */ --- linux-3.13.0.orig/drivers/net/ethernet/sfc/ptp.c +++ linux-3.13.0/drivers/net/ethernet/sfc/ptp.c @@ -1360,6 +1360,13 @@ struct efx_ptp_data *ptp = efx->ptp_data; int code = EFX_QWORD_FIELD(*ev, MCDI_EVENT_CODE); + if (!ptp) { + if (net_ratelimit()) + netif_warn(efx, drv, efx->net_dev, + "Received PTP event but PTP not set up\n"); + return; + } + if (!ptp->enabled) return; --- linux-3.13.0.orig/drivers/net/ethernet/sfc/tx.c +++ linux-3.13.0/drivers/net/ethernet/sfc/tx.c @@ -189,6 +189,18 @@ u8 buf[L1_CACHE_BYTES]; }; +/* Copy in explicit 64-bit writes. */ +static void efx_memcpy_64(void __iomem *dest, void *src, size_t len) +{ + u64 *src64 = src; + u64 __iomem *dest64 = dest; + size_t l64 = len / 8; + size_t i; + + for (i = 0; i < l64; i++) + writeq(src64[i], &dest64[i]); +} + /* Copy to PIO, respecting that writes to PIO buffers must be dword aligned. * Advances piobuf pointer. Leaves additional data in the copy buffer. */ @@ -198,7 +210,7 @@ { int block_len = len & ~(sizeof(copy_buf->buf) - 1); - memcpy_toio(*piobuf, data, block_len); + efx_memcpy_64(*piobuf, data, block_len); *piobuf += block_len; len -= block_len; @@ -230,7 +242,7 @@ if (copy_buf->used < sizeof(copy_buf->buf)) return; - memcpy_toio(*piobuf, copy_buf->buf, sizeof(copy_buf->buf)); + efx_memcpy_64(*piobuf, copy_buf->buf, sizeof(copy_buf->buf)); *piobuf += sizeof(copy_buf->buf); data += copy_to_buf; len -= copy_to_buf; @@ -245,7 +257,7 @@ { /* if there's anything in it, write the whole buffer, including junk */ if (copy_buf->used) - memcpy_toio(piobuf, copy_buf->buf, sizeof(copy_buf->buf)); + efx_memcpy_64(piobuf, copy_buf->buf, sizeof(copy_buf->buf)); } /* Traverse skb structure and copy fragments in to PIO buffer. @@ -304,8 +316,8 @@ */ BUILD_BUG_ON(L1_CACHE_BYTES > SKB_DATA_ALIGN(sizeof(struct skb_shared_info))); - memcpy_toio(tx_queue->piobuf, skb->data, - ALIGN(skb->len, L1_CACHE_BYTES)); + efx_memcpy_64(tx_queue->piobuf, skb->data, + ALIGN(skb->len, L1_CACHE_BYTES)); } EFX_POPULATE_QWORD_5(buffer->option, --- linux-3.13.0.orig/drivers/net/ethernet/smsc/smsc911x.c +++ linux-3.13.0/drivers/net/ethernet/smsc/smsc911x.c @@ -1342,6 +1342,42 @@ spin_unlock(&pdata->mac_lock); } +static int smsc911x_phy_general_power_up(struct smsc911x_data *pdata) +{ + int rc = 0; + + if (!pdata->phy_dev) + return rc; + + /* If the internal PHY is in General Power-Down mode, all, except the + * management interface, is powered-down and stays in that condition as + * long as Phy register bit 0.11 is HIGH. + * + * In that case, clear the bit 0.11, so the PHY powers up and we can + * access to the phy registers. + */ + rc = phy_read(pdata->phy_dev, MII_BMCR); + if (rc < 0) { + SMSC_WARN(pdata, drv, "Failed reading PHY control reg"); + return rc; + } + + /* If the PHY general power-down bit is not set is not necessary to + * disable the general power down-mode. + */ + if (rc & BMCR_PDOWN) { + rc = phy_write(pdata->phy_dev, MII_BMCR, rc & ~BMCR_PDOWN); + if (rc < 0) { + SMSC_WARN(pdata, drv, "Failed writing PHY control reg"); + return rc; + } + + usleep_range(1000, 1500); + } + + return 0; +} + static int smsc911x_phy_disable_energy_detect(struct smsc911x_data *pdata) { int rc = 0; @@ -1415,6 +1451,16 @@ int ret; /* + * Make sure to power-up the PHY chip before doing a reset, otherwise + * the reset fails. + */ + ret = smsc911x_phy_general_power_up(pdata); + if (ret) { + SMSC_WARN(pdata, drv, "Failed to power-up the PHY chip"); + return ret; + } + + /* * LAN9210/LAN9211/LAN9220/LAN9221 chips have an internal PHY that * are initialized in a Energy Detect Power-Down mode that prevents * the MAC chip to be software reseted. So we have to wakeup the PHY --- linux-3.13.0.orig/drivers/net/ethernet/sun/sunvnet.c +++ linux-3.13.0/drivers/net/ethernet/sun/sunvnet.c @@ -656,7 +656,7 @@ spin_lock_irqsave(&port->vio.lock, flags); dr = &port->vio.drings[VIO_DRIVER_TX_RING]; - if (unlikely(vnet_tx_dring_avail(dr) < 2)) { + if (unlikely(vnet_tx_dring_avail(dr) < 1)) { if (!netif_queue_stopped(dev)) { netif_stop_queue(dev); @@ -704,7 +704,7 @@ dev->stats.tx_bytes += skb->len; dr->prod = (dr->prod + 1) & (VNET_TX_RING_SIZE - 1); - if (unlikely(vnet_tx_dring_avail(dr) < 2)) { + if (unlikely(vnet_tx_dring_avail(dr) < 1)) { netif_stop_queue(dev); if (vnet_tx_dring_avail(dr) > VNET_TX_WAKEUP_THRESH(dr)) netif_wake_queue(dev); @@ -1083,6 +1083,24 @@ return vp; } +static void vnet_cleanup(void) +{ + struct vnet *vp; + struct net_device *dev; + + mutex_lock(&vnet_list_mutex); + while (!list_empty(&vnet_list)) { + vp = list_first_entry(&vnet_list, struct vnet, list); + list_del(&vp->list); + dev = vp->dev; + /* vio_unregister_driver() should have cleaned up port_list */ + BUG_ON(!list_empty(&vp->port_list)); + unregister_netdev(dev); + free_netdev(dev); + } + mutex_unlock(&vnet_list_mutex); +} + static const char *local_mac_prop = "local-mac-address"; static struct vnet *vnet_find_parent(struct mdesc_handle *hp, @@ -1240,7 +1258,6 @@ kfree(port); - unregister_netdev(vp->dev); } return 0; } @@ -1268,6 +1285,7 @@ static void __exit vnet_exit(void) { vio_unregister_driver(&vnet_port_driver); + vnet_cleanup(); } module_init(vnet_init); --- linux-3.13.0.orig/drivers/net/ethernet/ti/davinci_emac.c +++ linux-3.13.0/drivers/net/ethernet/ti/davinci_emac.c @@ -1532,7 +1532,7 @@ struct device *emac_dev = &ndev->dev; u32 cnt; struct resource *res; - int ret; + int q, m, ret; int i = 0; int k = 0; struct emac_priv *priv = netdev_priv(ndev); @@ -1567,8 +1567,7 @@ while ((res = platform_get_resource(priv->pdev, IORESOURCE_IRQ, k))) { for (i = res->start; i <= res->end; i++) { - if (devm_request_irq(&priv->pdev->dev, i, emac_irq, - 0, ndev->name, ndev)) + if (request_irq(i, emac_irq, 0, ndev->name, ndev)) goto rollback; } k++; @@ -1641,7 +1640,15 @@ rollback: - dev_err(emac_dev, "DaVinci EMAC: devm_request_irq() failed"); + dev_err(emac_dev, "DaVinci EMAC: request_irq() failed"); + + for (q = k; k >= 0; k--) { + for (m = i; m >= res->start; m--) + free_irq(m, ndev); + res = platform_get_resource(priv->pdev, IORESOURCE_IRQ, k-1); + m = res->end; + } + ret = -EBUSY; err: pm_runtime_put(&priv->pdev->dev); @@ -1659,6 +1666,9 @@ */ static int emac_dev_stop(struct net_device *ndev) { + struct resource *res; + int i = 0; + int irq_num; struct emac_priv *priv = netdev_priv(ndev); struct device *emac_dev = &ndev->dev; @@ -1674,6 +1684,13 @@ if (priv->phydev) phy_disconnect(priv->phydev); + /* Free IRQ */ + while ((res = platform_get_resource(priv->pdev, IORESOURCE_IRQ, i))) { + for (irq_num = res->start; irq_num <= res->end; irq_num++) + free_irq(irq_num, priv->ndev); + i++; + } + if (netif_msg_drv(priv)) dev_notice(emac_dev, "DaVinci EMAC: %s stopped\n", ndev->name); --- linux-3.13.0.orig/drivers/net/ethernet/tile/tilegx.c +++ linux-3.13.0/drivers/net/ethernet/tile/tilegx.c @@ -2081,7 +2081,7 @@ /* Return subqueue id on this core (one per core). */ static u16 tile_net_select_queue(struct net_device *dev, struct sk_buff *skb, - void *accel_priv) + void *accel_priv, select_queue_fallback_t fallback) { return smp_processor_id(); } --- linux-3.13.0.orig/drivers/net/ethernet/tile/tilepro.c +++ linux-3.13.0/drivers/net/ethernet/tile/tilepro.c @@ -2068,14 +2068,14 @@ cpu_stats = &priv->cpu[i]->stats; do { - start = u64_stats_fetch_begin_bh(&cpu_stats->syncp); + start = u64_stats_fetch_begin_irq(&cpu_stats->syncp); trx_packets = cpu_stats->rx_packets; ttx_packets = cpu_stats->tx_packets; trx_bytes = cpu_stats->rx_bytes; ttx_bytes = cpu_stats->tx_bytes; trx_errors = cpu_stats->rx_errors; trx_dropped = cpu_stats->rx_dropped; - } while (u64_stats_fetch_retry_bh(&cpu_stats->syncp, start)); + } while (u64_stats_fetch_retry_irq(&cpu_stats->syncp, start)); rx_packets += trx_packets; tx_packets += ttx_packets; --- linux-3.13.0.orig/drivers/net/ethernet/via/via-rhine.c +++ linux-3.13.0/drivers/net/ethernet/via/via-rhine.c @@ -2070,16 +2070,16 @@ netdev_stats_to_stats64(stats, &dev->stats); do { - start = u64_stats_fetch_begin_bh(&rp->rx_stats.syncp); + start = u64_stats_fetch_begin_irq(&rp->rx_stats.syncp); stats->rx_packets = rp->rx_stats.packets; stats->rx_bytes = rp->rx_stats.bytes; - } while (u64_stats_fetch_retry_bh(&rp->rx_stats.syncp, start)); + } while (u64_stats_fetch_retry_irq(&rp->rx_stats.syncp, start)); do { - start = u64_stats_fetch_begin_bh(&rp->tx_stats.syncp); + start = u64_stats_fetch_begin_irq(&rp->tx_stats.syncp); stats->tx_packets = rp->tx_stats.packets; stats->tx_bytes = rp->tx_stats.bytes; - } while (u64_stats_fetch_retry_bh(&rp->tx_stats.syncp, start)); + } while (u64_stats_fetch_retry_irq(&rp->tx_stats.syncp, start)); return stats; } --- linux-3.13.0.orig/drivers/net/hyperv/hyperv_net.h +++ linux-3.13.0/drivers/net/hyperv/hyperv_net.h @@ -463,7 +463,8 @@ #define NETVSC_MTU 65536 -#define NETVSC_RECEIVE_BUFFER_SIZE (1024*1024*2) /* 2MB */ +#define NETVSC_RECEIVE_BUFFER_SIZE (1024*1024*16) /* 16MB */ +#define NETVSC_RECEIVE_BUFFER_SIZE_LEGACY (1024*1024*15) /* 15MB */ #define NETVSC_RECEIVE_BUFFER_ID 0xcafe --- linux-3.13.0.orig/drivers/net/hyperv/netvsc.c +++ linux-3.13.0/drivers/net/hyperv/netvsc.c @@ -137,8 +137,7 @@ if (net_device->recv_buf) { /* Free up the receive buffer */ - free_pages((unsigned long)net_device->recv_buf, - get_order(net_device->recv_buf_size)); + vfree(net_device->recv_buf); net_device->recv_buf = NULL; } @@ -164,9 +163,7 @@ return -ENODEV; ndev = net_device->ndev; - net_device->recv_buf = - (void *)__get_free_pages(GFP_KERNEL|__GFP_ZERO, - get_order(net_device->recv_buf_size)); + net_device->recv_buf = vzalloc(net_device->recv_buf_size); if (!net_device->recv_buf) { netdev_err(ndev, "unable to allocate receive " "buffer of size %d\n", net_device->recv_buf_size); @@ -362,6 +359,11 @@ goto cleanup; /* Post the big receive buffer to NetVSP */ + if (net_device->nvsp_version <= NVSP_PROTOCOL_VERSION_2) + net_device->recv_buf_size = NETVSC_RECEIVE_BUFFER_SIZE_LEGACY; + else + net_device->recv_buf_size = NETVSC_RECEIVE_BUFFER_SIZE; + ret = netvsc_init_recv_buf(device); cleanup: @@ -911,7 +913,6 @@ ndev = net_device->ndev; /* Initialize the NetVSC channel extension */ - net_device->recv_buf_size = NETVSC_RECEIVE_BUFFER_SIZE; spin_lock_init(&net_device->recv_pkt_list_lock); INIT_LIST_HEAD(&net_device->recv_pkt_list); --- linux-3.13.0.orig/drivers/net/hyperv/netvsc_drv.c +++ linux-3.13.0/drivers/net/hyperv/netvsc_drv.c @@ -89,8 +89,12 @@ { struct net_device_context *net_device_ctx = netdev_priv(net); struct hv_device *device_obj = net_device_ctx->device_ctx; + struct netvsc_device *nvdev; + struct rndis_device *rdev; int ret = 0; + netif_carrier_off(net); + /* Open up the device */ ret = rndis_filter_open(device_obj); if (ret != 0) { @@ -100,6 +104,11 @@ netif_start_queue(net); + nvdev = hv_get_drvdata(device_obj); + rdev = nvdev->extension; + if (!rdev->link_state) + netif_carrier_on(net); + return ret; } @@ -138,6 +147,7 @@ struct hv_netvsc_packet *packet; int ret; unsigned int i, num_pages, npg_data; + u32 skb_length = skb->len; /* Add multipages for skb->data and additional 2 for RNDIS */ npg_data = (((unsigned long)skb->data + skb_headlen(skb) - 1) @@ -208,7 +218,7 @@ ret = rndis_filter_send(net_device_ctx->device_ctx, packet); if (ret == 0) { - net->stats.tx_bytes += skb->len; + net->stats.tx_bytes += skb_length; net->stats.tx_packets++; } else { kfree(packet); @@ -230,23 +240,24 @@ struct net_device *net; struct net_device_context *ndev_ctx; struct netvsc_device *net_device; + struct rndis_device *rdev; net_device = hv_get_drvdata(device_obj); + rdev = net_device->extension; + + rdev->link_state = status != 1; + net = net_device->ndev; - if (!net) { - netdev_err(net, "got link status but net device " - "not initialized yet\n"); + if (!net || net->reg_state != NETREG_REGISTERED) return; - } + ndev_ctx = netdev_priv(net); if (status == 1) { - netif_carrier_on(net); - ndev_ctx = netdev_priv(net); schedule_delayed_work(&ndev_ctx->dwork, 0); schedule_delayed_work(&ndev_ctx->dwork, msecs_to_jiffies(20)); } else { - netif_carrier_off(net); + schedule_delayed_work(&ndev_ctx->dwork, 0); } } @@ -389,17 +400,35 @@ * current context when receiving RNDIS_STATUS_MEDIA_CONNECT event. So, add * another netif_notify_peers() into a delayed work, otherwise GARP packet * will not be sent after quick migration, and cause network disconnection. + * Also, we update the carrier status here. */ -static void netvsc_send_garp(struct work_struct *w) +static void netvsc_link_change(struct work_struct *w) { struct net_device_context *ndev_ctx; struct net_device *net; struct netvsc_device *net_device; + struct rndis_device *rdev; + bool notify; + + rtnl_lock(); ndev_ctx = container_of(w, struct net_device_context, dwork.work); net_device = hv_get_drvdata(ndev_ctx->device_ctx); + rdev = net_device->extension; net = net_device->ndev; - netdev_notify_peers(net); + + if (rdev->link_state) { + netif_carrier_off(net); + notify = false; + } else { + netif_carrier_on(net); + notify = true; + } + + rtnl_unlock(); + + if (notify) + netdev_notify_peers(net); } @@ -415,13 +444,10 @@ if (!net) return -ENOMEM; - /* Set initial state */ - netif_carrier_off(net); - net_device_ctx = netdev_priv(net); net_device_ctx->device_ctx = dev; hv_set_drvdata(dev, net); - INIT_DELAYED_WORK(&net_device_ctx->dwork, netvsc_send_garp); + INIT_DELAYED_WORK(&net_device_ctx->dwork, netvsc_link_change); INIT_WORK(&net_device_ctx->work, do_set_multicast); net->netdev_ops = &device_ops; @@ -444,8 +470,6 @@ } memcpy(net->dev_addr, device_info.mac_adr, ETH_ALEN); - netif_carrier_on(net); - ret = register_netdev(net); if (ret != 0) { pr_err("Unable to register netdev.\n"); --- linux-3.13.0.orig/drivers/net/ieee802154/fakehard.c +++ linux-3.13.0/drivers/net/ieee802154/fakehard.c @@ -376,17 +376,20 @@ err = wpan_phy_register(phy); if (err) - goto out; + goto err_phy_reg; err = register_netdev(dev); - if (err < 0) - goto out; + if (err) + goto err_netdev_reg; dev_info(&pdev->dev, "Added ieee802154 HardMAC hardware\n"); return 0; -out: - unregister_netdev(dev); +err_netdev_reg: + wpan_phy_unregister(phy); +err_phy_reg: + free_netdev(dev); + wpan_phy_free(phy); return err; } --- linux-3.13.0.orig/drivers/net/ifb.c +++ linux-3.13.0/drivers/net/ifb.c @@ -136,18 +136,18 @@ unsigned int start; do { - start = u64_stats_fetch_begin_bh(&dp->rsync); + start = u64_stats_fetch_begin_irq(&dp->rsync); stats->rx_packets = dp->rx_packets; stats->rx_bytes = dp->rx_bytes; - } while (u64_stats_fetch_retry_bh(&dp->rsync, start)); + } while (u64_stats_fetch_retry_irq(&dp->rsync, start)); do { - start = u64_stats_fetch_begin_bh(&dp->tsync); + start = u64_stats_fetch_begin_irq(&dp->tsync); stats->tx_packets = dp->tx_packets; stats->tx_bytes = dp->tx_bytes; - } while (u64_stats_fetch_retry_bh(&dp->tsync, start)); + } while (u64_stats_fetch_retry_irq(&dp->tsync, start)); stats->rx_dropped = dev->stats.rx_dropped; stats->tx_dropped = dev->stats.tx_dropped; --- linux-3.13.0.orig/drivers/net/loopback.c +++ linux-3.13.0/drivers/net/loopback.c @@ -112,10 +112,10 @@ lb_stats = per_cpu_ptr(dev->lstats, i); do { - start = u64_stats_fetch_begin_bh(&lb_stats->syncp); + start = u64_stats_fetch_begin_irq(&lb_stats->syncp); tbytes = lb_stats->bytes; tpackets = lb_stats->packets; - } while (u64_stats_fetch_retry_bh(&lb_stats->syncp, start)); + } while (u64_stats_fetch_retry_irq(&lb_stats->syncp, start)); bytes += tbytes; packets += tpackets; } --- linux-3.13.0.orig/drivers/net/macvlan.c +++ linux-3.13.0/drivers/net/macvlan.c @@ -263,11 +263,9 @@ const struct macvlan_dev *vlan = netdev_priv(dev); const struct macvlan_port *port = vlan->port; const struct macvlan_dev *dest; - __u8 ip_summed = skb->ip_summed; if (vlan->mode == MACVLAN_MODE_BRIDGE) { const struct ethhdr *eth = (void *)skb->data; - skb->ip_summed = CHECKSUM_UNNECESSARY; /* send to other bridge ports directly */ if (is_multicast_ether_addr(eth->h_dest)) { @@ -285,7 +283,6 @@ } xmit_world: - skb->ip_summed = ip_summed; skb->dev = vlan->lowerdev; return dev_queue_xmit(skb); } @@ -462,8 +459,10 @@ struct macvlan_dev *vlan = netdev_priv(dev); struct net_device *lowerdev = vlan->lowerdev; - if (change & IFF_ALLMULTI) - dev_set_allmulti(lowerdev, dev->flags & IFF_ALLMULTI ? 1 : -1); + if (dev->flags & IFF_UP) { + if (change & IFF_ALLMULTI) + dev_set_allmulti(lowerdev, dev->flags & IFF_ALLMULTI ? 1 : -1); + } } static void macvlan_set_mac_lists(struct net_device *dev) @@ -507,6 +506,9 @@ static struct lock_class_key macvlan_netdev_xmit_lock_key; static struct lock_class_key macvlan_netdev_addr_lock_key; +#define ALWAYS_ON_FEATURES \ + (NETIF_F_SG | NETIF_F_GEN_CSUM | NETIF_F_GSO_SOFTWARE | NETIF_F_LLTX) + #define MACVLAN_FEATURES \ (NETIF_F_SG | NETIF_F_ALL_CSUM | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST | \ NETIF_F_GSO | NETIF_F_TSO | NETIF_F_UFO | NETIF_F_GSO_ROBUST | \ @@ -516,6 +518,11 @@ #define MACVLAN_STATE_MASK \ ((1<<__LINK_STATE_NOCARRIER) | (1<<__LINK_STATE_DORMANT)) +static int macvlan_get_nest_level(struct net_device *dev) +{ + return ((struct macvlan_dev *)netdev_priv(dev))->nest_level; +} + static void macvlan_set_lockdep_class_one(struct net_device *dev, struct netdev_queue *txq, void *_unused) @@ -526,8 +533,9 @@ static void macvlan_set_lockdep_class(struct net_device *dev) { - lockdep_set_class(&dev->addr_list_lock, - &macvlan_netdev_addr_lock_key); + lockdep_set_class_and_subclass(&dev->addr_list_lock, + &macvlan_netdev_addr_lock_key, + macvlan_get_nest_level(dev)); netdev_for_each_tx_queue(dev, macvlan_set_lockdep_class_one, NULL); } @@ -540,7 +548,8 @@ dev->state = (dev->state & ~MACVLAN_STATE_MASK) | (lowerdev->state & MACVLAN_STATE_MASK); dev->features = lowerdev->features & MACVLAN_FEATURES; - dev->features |= NETIF_F_LLTX; + dev->features |= ALWAYS_ON_FEATURES; + dev->vlan_features = lowerdev->vlan_features & MACVLAN_FEATURES; dev->gso_max_size = lowerdev->gso_max_size; dev->iflink = lowerdev->ifindex; dev->hard_header_len = lowerdev->hard_header_len; @@ -587,13 +596,13 @@ for_each_possible_cpu(i) { p = per_cpu_ptr(vlan->pcpu_stats, i); do { - start = u64_stats_fetch_begin_bh(&p->syncp); + start = u64_stats_fetch_begin_irq(&p->syncp); rx_packets = p->rx_packets; rx_bytes = p->rx_bytes; rx_multicast = p->rx_multicast; tx_packets = p->tx_packets; tx_bytes = p->tx_bytes; - } while (u64_stats_fetch_retry_bh(&p->syncp, start)); + } while (u64_stats_fetch_retry_irq(&p->syncp, start)); stats->rx_packets += rx_packets; stats->rx_bytes += rx_bytes; @@ -700,7 +709,8 @@ features = netdev_increment_features(vlan->lowerdev->features, features, mask); - features |= NETIF_F_LLTX; + features |= ALWAYS_ON_FEATURES; + features &= ~NETIF_F_NETNS_LOCAL; return features; } @@ -729,6 +739,7 @@ .ndo_fdb_add = macvlan_fdb_add, .ndo_fdb_del = macvlan_fdb_del, .ndo_fdb_dump = ndo_dflt_fdb_dump, + .ndo_get_lock_subclass = macvlan_get_nest_level, }; void macvlan_common_setup(struct net_device *dev) @@ -864,6 +875,7 @@ vlan->receive = receive; vlan->forward = forward; vlan->set_features = MACVLAN_FEATURES; + vlan->nest_level = dev_get_nest_level(lowerdev, netif_is_macvlan) + 1; vlan->mode = MACVLAN_MODE_VEPA; if (data && data[IFLA_MACVLAN_MODE]) @@ -887,14 +899,15 @@ dev->priv_flags |= IFF_MACVLAN; err = netdev_upper_dev_link(lowerdev, dev); if (err) - goto destroy_port; - + goto unregister_netdev; list_add_tail_rcu(&vlan->list, &port->vlans); netif_stacked_transfer_operstate(lowerdev, dev); return 0; +unregister_netdev: + unregister_netdevice(dev); destroy_port: port->count -= 1; if (!port->count) @@ -1042,7 +1055,6 @@ list_for_each_entry_safe(vlan, next, &port->vlans, list) vlan->dev->rtnl_link_ops->dellink(vlan->dev, &list_kill); unregister_netdevice_many(&list_kill); - list_del(&list_kill); break; case NETDEV_PRE_TYPE_CHANGE: /* Forbid underlaying device to change its type. */ --- linux-3.13.0.orig/drivers/net/macvtap.c +++ linux-3.13.0/drivers/net/macvtap.c @@ -17,6 +17,7 @@ #include #include +#include #include #include #include @@ -108,17 +109,15 @@ return err; } +/* Requires RTNL */ static int macvtap_set_queue(struct net_device *dev, struct file *file, struct macvtap_queue *q) { struct macvlan_dev *vlan = netdev_priv(dev); - int err = -EBUSY; - rtnl_lock(); if (vlan->numqueues == MAX_MACVTAP_QUEUES) - goto out; + return -EBUSY; - err = 0; rcu_assign_pointer(q->vlan, vlan); rcu_assign_pointer(vlan->taps[vlan->numvtaps], q); sock_hold(&q->sk); @@ -132,9 +131,7 @@ vlan->numvtaps++; vlan->numqueues++; -out: - rtnl_unlock(); - return err; + return 0; } static int macvtap_disable_queue(struct macvtap_queue *q) @@ -219,7 +216,7 @@ goto out; /* Check if we can use flow to select a queue */ - rxq = skb_get_rxhash(skb); + rxq = skb_get_hash(skb); if (rxq) { tap = rcu_dereference(vlan->taps[rxq % numvtaps]); goto out; @@ -315,6 +312,15 @@ segs = nskb; } } else { + /* If we receive a partial checksum and the tap side + * doesn't support checksum offload, compute the checksum. + * Note: it doesn't matter which checksum feature to + * check, we either support them all or none. + */ + if (skb->ip_summed == CHECKSUM_PARTIAL && + !(features & NETIF_F_ALL_CSUM) && + skb_checksum_help(skb)) + goto drop; skb_queue_tail(&q->sk.sk_receive_queue, skb); } @@ -441,11 +447,12 @@ static int macvtap_open(struct inode *inode, struct file *file) { struct net *net = current->nsproxy->net_ns; - struct net_device *dev = dev_get_by_macvtap_minor(iminor(inode)); + struct net_device *dev; struct macvtap_queue *q; - int err; + int err = -ENODEV; - err = -ENODEV; + rtnl_lock(); + dev = dev_get_by_macvtap_minor(iminor(inode)); if (!dev) goto out; @@ -485,6 +492,7 @@ if (dev) dev_put(dev); + rtnl_unlock(); return err; } @@ -559,6 +567,8 @@ break; case VIRTIO_NET_HDR_GSO_UDP: gso_type = SKB_GSO_UDP; + if (skb->protocol == htons(ETH_P_IPV6)) + ipv6_proxy_select_ident(skb); break; default: return -EINVAL; @@ -615,6 +625,8 @@ if (skb->ip_summed == CHECKSUM_PARTIAL) { vnet_hdr->flags = VIRTIO_NET_HDR_F_NEEDS_CSUM; vnet_hdr->csum_start = skb_checksum_start_offset(skb); + if (vlan_tx_tag_present(skb)) + vnet_hdr->csum_start += VLAN_HLEN; vnet_hdr->csum_offset = skb->csum_offset; } else if (skb->ip_summed == CHECKSUM_UNNECESSARY) { vnet_hdr->flags = VIRTIO_NET_HDR_F_DATA_VALID; --- linux-3.13.0.orig/drivers/net/nlmon.c +++ linux-3.13.0/drivers/net/nlmon.c @@ -99,10 +99,10 @@ nl_stats = per_cpu_ptr(dev->lstats, i); do { - start = u64_stats_fetch_begin_bh(&nl_stats->syncp); + start = u64_stats_fetch_begin_irq(&nl_stats->syncp); tbytes = nl_stats->bytes; tpackets = nl_stats->packets; - } while (u64_stats_fetch_retry_bh(&nl_stats->syncp, start)); + } while (u64_stats_fetch_retry_irq(&nl_stats->syncp, start)); packets += tpackets; bytes += tbytes; --- linux-3.13.0.orig/drivers/net/phy/fixed.c +++ linux-3.13.0/drivers/net/phy/fixed.c @@ -5,6 +5,7 @@ * Anton Vorontsov * * Copyright (c) 2006-2007 MontaVista Software, Inc. + * Copyright 2009 Freescale Semiconductor, Inc. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -17,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -55,6 +57,9 @@ bmcr |= BMCR_FULLDPLX; switch (fp->status.speed) { + case 10000: + fp->regs[MDIO_STAT2] = MDIO_STAT2_DEVPRST_VAL; + break; case 1000: bmsr |= BMSR_ESTATEN; bmcr |= BMCR_SPEED1000; @@ -75,6 +80,9 @@ } } else { switch (fp->status.speed) { + case 10000: + fp->regs[MDIO_STAT2] = MDIO_STAT2_DEVPRST_VAL; + break; case 1000: bmsr |= BMSR_ESTATEN; bmcr |= BMCR_SPEED1000; --- linux-3.13.0.orig/drivers/net/phy/phy_device.c +++ linux-3.13.0/drivers/net/phy/phy_device.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -54,15 +55,13 @@ } static struct phy_driver genphy_driver; +static struct phy_driver gen10g_driver; extern int mdio_bus_init(void); extern void mdio_bus_exit(void); static LIST_HEAD(phy_fixup_list); static DEFINE_MUTEX(phy_fixup_lock); -static int phy_attach_direct(struct net_device *dev, struct phy_device *phydev, - u32 flags, phy_interface_t interface); - /* * Creates a new phy_fixup and adds it to the list * @bus_id: A string which matches phydev->dev.bus_id (or PHY_ANY_ID) @@ -520,13 +519,13 @@ * * Description: Called by drivers to attach to a particular PHY * device. The phy_device is found, and properly hooked up - * to the phy_driver. If no driver is attached, then the - * genphy_driver is used. The phy_device is given a ptr to + * to the phy_driver. If no driver is attached, then a + * generic driver is used. The phy_device is given a ptr to * the attaching device, and given a callback for link status * change. The phy_device is returned to the attaching driver. */ -static int phy_attach_direct(struct net_device *dev, struct phy_device *phydev, - u32 flags, phy_interface_t interface) +int phy_attach_direct(struct net_device *dev, struct phy_device *phydev, + u32 flags, phy_interface_t interface) { struct device *d = &phydev->dev; int err; @@ -534,12 +533,10 @@ /* Assume that if there is no driver, that it doesn't * exist, and we should use the genphy driver. */ if (NULL == d->driver) { - if (phydev->is_c45) { - pr_err("No driver for phy %x\n", phydev->phy_id); - return -ENODEV; - } - - d->driver = &genphy_driver.driver; + if (phydev->is_c45) + d->driver = &gen10g_driver.driver; + else + d->driver = &genphy_driver.driver; err = d->driver->probe(d); if (err >= 0) @@ -572,6 +569,7 @@ return err; } +EXPORT_SYMBOL(phy_attach_direct); /** * phy_attach - attach a network device to a particular PHY device @@ -622,6 +620,8 @@ * real driver could be loaded */ if (phydev->dev.driver == &genphy_driver.driver) device_release_driver(&phydev->dev); + else if (phydev->dev.driver == &gen10g_driver.driver) + device_release_driver(&phydev->dev); } EXPORT_SYMBOL(phy_detach); @@ -689,6 +689,13 @@ return changed; } +int gen10g_config_advert(struct phy_device *dev) +{ + return 0; +} +EXPORT_SYMBOL(gen10g_config_advert); + + /** * genphy_setup_forced - configures/forces speed/duplex from @phydev * @phydev: target phy_device struct @@ -742,6 +749,12 @@ } EXPORT_SYMBOL(genphy_restart_aneg); +int gen10g_restart_aneg(struct phy_device *phydev) +{ + return 0; +} +EXPORT_SYMBOL(gen10g_restart_aneg); + /** * genphy_config_aneg - restart auto-negotiation or write BMCR @@ -784,6 +797,13 @@ } EXPORT_SYMBOL(genphy_config_aneg); +int gen10g_config_aneg(struct phy_device *phydev) +{ + return 0; +} +EXPORT_SYMBOL(gen10g_config_aneg); + + /** * genphy_update_link - update link status in @phydev * @phydev: target phy_device struct @@ -867,6 +887,16 @@ lpa &= adv; + err = phy_read(phydev, MII_BMSR); + + if (err < 0) + return err; + + /* if the link changed while reading speed and duplex + * abort the speed and duplex update */ + if (((err & BMSR_LSTATUS) == 0) != (phydev->link == 0)) + return 0; + phydev->speed = SPEED_10; phydev->duplex = DUPLEX_HALF; phydev->pause = phydev->asym_pause = 0; @@ -913,6 +943,34 @@ } EXPORT_SYMBOL(genphy_read_status); +int gen10g_read_status(struct phy_device *phydev) +{ + int devad, reg; + u32 mmd_mask = phydev->c45_ids.devices_in_package; + + phydev->link = 1; + + /* For now just lie and say it's 10G all the time */ + phydev->speed = 10000; + phydev->duplex = DUPLEX_FULL; + + for (devad = 0; mmd_mask; devad++, mmd_mask = mmd_mask >> 1) { + if (!mmd_mask & 1) + continue; + + /* Read twice because link state is latched and a + * read moves the current state into the register */ + phy_read_mmd(phydev, devad, MDIO_STAT1); + reg = phy_read_mmd(phydev, devad, MDIO_STAT1); + if (reg < 0 || !(reg & MDIO_STAT1_LSTATUS)) + phydev->link = 0; + } + + return 0; +} +EXPORT_SYMBOL(gen10g_read_status); + + static int genphy_config_init(struct phy_device *phydev) { int val; @@ -959,6 +1017,15 @@ return 0; } + +static int gen10g_config_init(struct phy_device *phydev) +{ + /* Temporarily just say we support everything */ + phydev->supported = phydev->advertising = SUPPORTED_10000baseT_Full; + + return 0; +} + int genphy_suspend(struct phy_device *phydev) { int value; @@ -974,6 +1041,13 @@ } EXPORT_SYMBOL(genphy_suspend); +int gen10g_suspend(struct phy_device *phydev) +{ + return 0; +} +EXPORT_SYMBOL(gen10g_suspend); + + int genphy_resume(struct phy_device *phydev) { int value; @@ -989,6 +1063,13 @@ } EXPORT_SYMBOL(genphy_resume); +int gen10g_resume(struct phy_device *phydev) +{ + return 0; +} +EXPORT_SYMBOL(gen10g_resume); + + /** * phy_probe - probe and init a PHY device * @dev: device to probe and init @@ -1129,6 +1210,20 @@ .driver = {.owner= THIS_MODULE, }, }; +static struct phy_driver gen10g_driver = { + .phy_id = 0xffffffff, + .phy_id_mask = 0xffffffff, + .name = "Generic 10G PHY", + .config_init = gen10g_config_init, + .features = 0, + .config_aneg = gen10g_config_aneg, + .read_status = gen10g_read_status, + .suspend = gen10g_suspend, + .resume = gen10g_resume, + .driver = {.owner = THIS_MODULE, }, +}; + + static int __init phy_init(void) { int rc; @@ -1139,13 +1234,25 @@ rc = phy_driver_register(&genphy_driver); if (rc) - mdio_bus_exit(); + goto genphy_register_failed; + + rc = phy_driver_register(&gen10g_driver); + if (rc) + goto gen10g_register_failed; + + return rc; + +gen10g_register_failed: + phy_driver_unregister(&genphy_driver); +genphy_register_failed: + mdio_bus_exit(); return rc; } static void __exit phy_exit(void) { + phy_driver_unregister(&gen10g_driver); phy_driver_unregister(&genphy_driver); mdio_bus_exit(); } --- linux-3.13.0.orig/drivers/net/phy/vitesse.c +++ linux-3.13.0/drivers/net/phy/vitesse.c @@ -74,7 +74,7 @@ MODULE_AUTHOR("Kriston Carson"); MODULE_LICENSE("GPL"); -static int vsc824x_add_skew(struct phy_device *phydev) +int vsc824x_add_skew(struct phy_device *phydev) { int err; int extcon; @@ -94,6 +94,7 @@ return err; } +EXPORT_SYMBOL(vsc824x_add_skew); static int vsc824x_config_init(struct phy_device *phydev) { --- linux-3.13.0.orig/drivers/net/ppp/ppp_generic.c +++ linux-3.13.0/drivers/net/ppp/ppp_generic.c @@ -601,7 +601,7 @@ if (file == ppp->owner) ppp_shutdown_interface(ppp); } - if (atomic_long_read(&file->f_count) <= 2) { + if (atomic_long_read(&file->f_count) < 2) { ppp_release(NULL, file); err = 0; } else --- linux-3.13.0.orig/drivers/net/ppp/pppoe.c +++ linux-3.13.0/drivers/net/ppp/pppoe.c @@ -675,7 +675,7 @@ po->chan.hdrlen = (sizeof(struct pppoe_hdr) + dev->hard_header_len); - po->chan.mtu = dev->mtu - sizeof(struct pppoe_hdr); + po->chan.mtu = dev->mtu - sizeof(struct pppoe_hdr) - 2; po->chan.private = sk; po->chan.ops = &pppoe_chan_ops; --- linux-3.13.0.orig/drivers/net/ppp/pptp.c +++ linux-3.13.0/drivers/net/ppp/pptp.c @@ -281,7 +281,7 @@ nf_reset(skb); skb->ip_summed = CHECKSUM_NONE; - ip_select_ident(skb, &rt->dst, NULL); + ip_select_ident(skb, NULL); ip_send_check(iph); ip_local_out(skb); @@ -506,7 +506,9 @@ int len = sizeof(struct sockaddr_pppox); struct sockaddr_pppox sp; - sp.sa_family = AF_PPPOX; + memset(&sp.sa_addr, 0, sizeof(sp.sa_addr)); + + sp.sa_family = AF_PPPOX; sp.sa_protocol = PX_PROTO_PPTP; sp.sa_addr.pptp = pppox_sk(sock->sk)->proto.pptp.src_addr; --- linux-3.13.0.orig/drivers/net/slip/slip.c +++ linux-3.13.0/drivers/net/slip/slip.c @@ -83,6 +83,7 @@ #include #include #include +#include #include "slip.h" #ifdef CONFIG_INET #include @@ -416,34 +417,44 @@ #endif } -/* - * Called by the driver when there's room for more data. If we have - * more packets to send, we send them here. - */ -static void slip_write_wakeup(struct tty_struct *tty) +/* Write out any remaining transmit buffer. Scheduled when tty is writable */ +static void slip_transmit(struct work_struct *work) { + struct slip *sl = container_of(work, struct slip, tx_work); int actual; - struct slip *sl = tty->disc_data; + spin_lock_bh(&sl->lock); /* First make sure we're connected. */ - if (!sl || sl->magic != SLIP_MAGIC || !netif_running(sl->dev)) + if (!sl->tty || sl->magic != SLIP_MAGIC || !netif_running(sl->dev)) { + spin_unlock_bh(&sl->lock); return; + } - spin_lock(&sl->lock); if (sl->xleft <= 0) { /* Now serial buffer is almost free & we can start * transmission of another packet */ sl->dev->stats.tx_packets++; - clear_bit(TTY_DO_WRITE_WAKEUP, &tty->flags); - spin_unlock(&sl->lock); + clear_bit(TTY_DO_WRITE_WAKEUP, &sl->tty->flags); + spin_unlock_bh(&sl->lock); sl_unlock(sl); return; } - actual = tty->ops->write(tty, sl->xhead, sl->xleft); + actual = sl->tty->ops->write(sl->tty, sl->xhead, sl->xleft); sl->xleft -= actual; sl->xhead += actual; - spin_unlock(&sl->lock); + spin_unlock_bh(&sl->lock); +} + +/* + * Called by the driver when there's room for more data. + * Schedule the transmit. + */ +static void slip_write_wakeup(struct tty_struct *tty) +{ + struct slip *sl = tty->disc_data; + + schedule_work(&sl->tx_work); } static void sl_tx_timeout(struct net_device *dev) @@ -749,6 +760,7 @@ sl->magic = SLIP_MAGIC; sl->dev = dev; spin_lock_init(&sl->lock); + INIT_WORK(&sl->tx_work, slip_transmit); sl->mode = SL_MODE_DEFAULT; #ifdef CONFIG_SLIP_SMART /* initialize timer_list struct */ @@ -872,8 +884,12 @@ if (!sl || sl->magic != SLIP_MAGIC || sl->tty != tty) return; + spin_lock_bh(&sl->lock); tty->disc_data = NULL; sl->tty = NULL; + spin_unlock_bh(&sl->lock); + + flush_work(&sl->tx_work); /* VSV = very important to remove timers */ #ifdef CONFIG_SLIP_SMART --- linux-3.13.0.orig/drivers/net/slip/slip.h +++ linux-3.13.0/drivers/net/slip/slip.h @@ -53,6 +53,7 @@ struct tty_struct *tty; /* ptr to TTY structure */ struct net_device *dev; /* easy for intr handling */ spinlock_t lock; + struct work_struct tx_work; /* Flushes transmit buffer */ #ifdef SL_INCLUDE_CSLIP struct slcompress *slcomp; /* for header compression */ --- linux-3.13.0.orig/drivers/net/team/team.c +++ linux-3.13.0/drivers/net/team/team.c @@ -629,6 +629,7 @@ static void team_notify_peers_work(struct work_struct *work) { struct team *team; + int val; team = container_of(work, struct team, notify_peers.dw.work); @@ -636,9 +637,14 @@ schedule_delayed_work(&team->notify_peers.dw, 0); return; } + val = atomic_dec_if_positive(&team->notify_peers.count_pending); + if (val < 0) { + rtnl_unlock(); + return; + } call_netdevice_notifiers(NETDEV_NOTIFY_PEERS, team->dev); rtnl_unlock(); - if (!atomic_dec_and_test(&team->notify_peers.count_pending)) + if (val) schedule_delayed_work(&team->notify_peers.dw, msecs_to_jiffies(team->notify_peers.interval)); } @@ -647,7 +653,7 @@ { if (!team->notify_peers.count || !netif_running(team->dev)) return; - atomic_set(&team->notify_peers.count_pending, team->notify_peers.count); + atomic_add(team->notify_peers.count, &team->notify_peers.count_pending); schedule_delayed_work(&team->notify_peers.dw, 0); } @@ -669,6 +675,7 @@ static void team_mcast_rejoin_work(struct work_struct *work) { struct team *team; + int val; team = container_of(work, struct team, mcast_rejoin.dw.work); @@ -676,9 +683,14 @@ schedule_delayed_work(&team->mcast_rejoin.dw, 0); return; } + val = atomic_dec_if_positive(&team->mcast_rejoin.count_pending); + if (val < 0) { + rtnl_unlock(); + return; + } call_netdevice_notifiers(NETDEV_RESEND_IGMP, team->dev); rtnl_unlock(); - if (!atomic_dec_and_test(&team->mcast_rejoin.count_pending)) + if (val) schedule_delayed_work(&team->mcast_rejoin.dw, msecs_to_jiffies(team->mcast_rejoin.interval)); } @@ -687,7 +699,7 @@ { if (!team->mcast_rejoin.count || !netif_running(team->dev)) return; - atomic_set(&team->mcast_rejoin.count_pending, team->mcast_rejoin.count); + atomic_add(team->mcast_rejoin.count, &team->mcast_rejoin.count_pending); schedule_delayed_work(&team->mcast_rejoin.dw, 0); } @@ -1648,7 +1660,7 @@ } static u16 team_select_queue(struct net_device *dev, struct sk_buff *skb, - void *accel_priv) + void *accel_priv, select_queue_fallback_t fallback) { /* * This helper function exists to help dev_pick_tx get the correct @@ -1732,6 +1744,7 @@ * to traverse list in reverse under rcu_read_lock */ mutex_lock(&team->lock); + team->port_mtu_change_allowed = true; list_for_each_entry(port, &team->port_list, list) { err = dev_set_mtu(port->dev, new_mtu); if (err) { @@ -1740,6 +1753,7 @@ goto unwind; } } + team->port_mtu_change_allowed = false; mutex_unlock(&team->lock); dev->mtu = new_mtu; @@ -1749,6 +1763,7 @@ unwind: list_for_each_entry_continue_reverse(port, &team->port_list, list) dev_set_mtu(port->dev, dev->mtu); + team->port_mtu_change_allowed = false; mutex_unlock(&team->lock); return err; @@ -1767,13 +1782,13 @@ for_each_possible_cpu(i) { p = per_cpu_ptr(team->pcpu_stats, i); do { - start = u64_stats_fetch_begin_bh(&p->syncp); + start = u64_stats_fetch_begin_irq(&p->syncp); rx_packets = p->rx_packets; rx_bytes = p->rx_bytes; rx_multicast = p->rx_multicast; tx_packets = p->tx_packets; tx_bytes = p->tx_bytes; - } while (u64_stats_fetch_retry_bh(&p->syncp, start)); + } while (u64_stats_fetch_retry_irq(&p->syncp, start)); stats->rx_packets += rx_packets; stats->rx_bytes += rx_bytes; @@ -2853,7 +2868,9 @@ break; case NETDEV_CHANGEMTU: /* Forbid to change mtu of underlaying device */ - return NOTIFY_BAD; + if (!port->team->port_mtu_change_allowed) + return NOTIFY_BAD; + break; case NETDEV_PRE_TYPE_CHANGE: /* Forbid to change type of underlaying device */ return NOTIFY_BAD; --- linux-3.13.0.orig/drivers/net/team/team_mode_loadbalance.c +++ linux-3.13.0/drivers/net/team/team_mode_loadbalance.c @@ -432,9 +432,9 @@ struct lb_stats tmp; do { - start = u64_stats_fetch_begin_bh(syncp); + start = u64_stats_fetch_begin_irq(syncp); tmp.tx_bytes = cpu_stats->tx_bytes; - } while (u64_stats_fetch_retry_bh(syncp, start)); + } while (u64_stats_fetch_retry_irq(syncp, start)); acc_stats->tx_bytes += tmp.tx_bytes; } --- linux-3.13.0.orig/drivers/net/tun.c +++ linux-3.13.0/drivers/net/tun.c @@ -65,6 +65,7 @@ #include #include #include +#include #include #include #include @@ -349,7 +350,7 @@ * hope the rxq no. may help here. */ static u16 tun_select_queue(struct net_device *dev, struct sk_buff *skb, - void *accel_priv) + void *accel_priv, select_queue_fallback_t fallback) { struct tun_struct *tun = netdev_priv(dev); struct tun_flow_entry *e; @@ -359,7 +360,7 @@ rcu_read_lock(); numqueues = ACCESS_ONCE(tun->numqueues); - txq = skb_get_rxhash(skb); + txq = skb_get_hash(skb); if (txq) { e = tun_flow_find(&tun->flows[tun_hashfn(txq)], txq); if (e) @@ -1104,6 +1105,8 @@ break; } + skb_reset_network_header(skb); + if (gso.gso_type != VIRTIO_NET_HDR_GSO_NONE) { pr_debug("GSO!\n"); switch (gso.gso_type & ~VIRTIO_NET_HDR_GSO_ECN) { @@ -1115,6 +1118,8 @@ break; case VIRTIO_NET_HDR_GSO_UDP: skb_shinfo(skb)->gso_type = SKB_GSO_UDP; + if (skb->protocol == htons(ETH_P_IPV6)) + ipv6_proxy_select_ident(skb); break; default: tun->dev->stats.rx_frame_errors++; @@ -1144,10 +1149,9 @@ skb_shinfo(skb)->tx_flags |= SKBTX_SHARED_FRAG; } - skb_reset_network_header(skb); skb_probe_transport_header(skb, 0); - rxhash = skb_get_rxhash(skb); + rxhash = skb_get_hash(skb); netif_rx_ni(skb); tun->dev->stats.rx_packets++; @@ -1186,6 +1190,10 @@ struct tun_pi pi = { 0, skb->protocol }; ssize_t total = 0; int vlan_offset = 0, copied; + int vlan_hlen = 0; + + if (vlan_tx_tag_present(skb)) + vlan_hlen = VLAN_HLEN; if (!(tun->flags & TUN_NO_PI)) { if ((len -= sizeof(pi)) < 0) @@ -1237,7 +1245,8 @@ if (skb->ip_summed == CHECKSUM_PARTIAL) { gso.flags = VIRTIO_NET_HDR_F_NEEDS_CSUM; - gso.csum_start = skb_checksum_start_offset(skb); + gso.csum_start = skb_checksum_start_offset(skb) + + vlan_hlen; gso.csum_offset = skb->csum_offset; } else if (skb->ip_summed == CHECKSUM_UNNECESSARY) { gso.flags = VIRTIO_NET_HDR_F_DATA_VALID; @@ -1250,10 +1259,9 @@ } copied = total; - total += skb->len; - if (!vlan_tx_tag_present(skb)) { - len = min_t(int, skb->len, len); - } else { + len = min_t(int, skb->len + vlan_hlen, len); + total += skb->len + vlan_hlen; + if (vlan_hlen) { int copy, ret; struct { __be16 h_vlan_proto; @@ -1264,8 +1272,6 @@ veth.h_vlan_TCI = htons(vlan_tx_tag_get(skb)); vlan_offset = offsetof(struct vlan_ethhdr, h_vlan_proto); - len = min_t(int, skb->len + VLAN_HLEN, len); - total += VLAN_HLEN; copy = min_t(int, vlan_offset, len); ret = skb_copy_datagram_const_iovec(skb, 0, iv, copied, copy); @@ -1651,7 +1657,9 @@ TUN_USER_FEATURES | NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_STAG_TX; dev->features = dev->hw_features; - dev->vlan_features = dev->features; + dev->vlan_features = dev->features & + ~(NETIF_F_HW_VLAN_CTAG_TX | + NETIF_F_HW_VLAN_STAG_TX); INIT_LIST_HEAD(&tun->disabled); err = tun_attach(tun, file, false); --- linux-3.13.0.orig/drivers/net/usb/asix_devices.c +++ linux-3.13.0/drivers/net/usb/asix_devices.c @@ -918,7 +918,8 @@ .status = asix_status, .link_reset = ax88178_link_reset, .reset = ax88178_reset, - .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_LINK_INTR, + .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_LINK_INTR | + FLAG_MULTI_PACKET, .rx_fixup = asix_rx_fixup_common, .tx_fixup = asix_tx_fixup, }; --- linux-3.13.0.orig/drivers/net/usb/ax88179_178a.c +++ linux-3.13.0/drivers/net/usb/ax88179_178a.c @@ -697,6 +697,7 @@ { struct usbnet *dev = netdev_priv(net); struct sockaddr *addr = p; + int ret; if (netif_running(net)) return -EBUSY; @@ -706,8 +707,12 @@ memcpy(net->dev_addr, addr->sa_data, ETH_ALEN); /* Set the MAC address */ - return ax88179_write_cmd(dev, AX_ACCESS_MAC, AX_NODE_ID, ETH_ALEN, + ret = ax88179_write_cmd(dev, AX_ACCESS_MAC, AX_NODE_ID, ETH_ALEN, ETH_ALEN, net->dev_addr); + if (ret < 0) + return ret; + + return 0; } static const struct net_device_ops ax88179_netdev_ops = { @@ -1030,20 +1035,12 @@ dev->mii.phy_id = 0x03; dev->mii.supports_gmii = 1; - if (usb_device_no_sg_constraint(dev->udev)) - dev->can_dma_sg = 1; - dev->net->features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM; dev->net->hw_features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM; - if (dev->can_dma_sg) { - dev->net->features |= NETIF_F_SG | NETIF_F_TSO; - dev->net->hw_features |= NETIF_F_SG | NETIF_F_TSO; - } - /* Enable checksum offload */ *tmp = AX_RXCOE_IP | AX_RXCOE_TCP | AX_RXCOE_UDP | AX_RXCOE_TCPV6 | AX_RXCOE_UDPV6; @@ -1119,6 +1116,10 @@ u16 hdr_off; u32 *pkt_hdr; + /* This check is no longer done by usbnet */ + if (skb->len < dev->net->hard_header_len) + return 0; + skb_trim(skb, skb->len - 4); memcpy(&rx_hdr, skb_tail_pointer(skb), 4); le32_to_cpus(&rx_hdr); @@ -1418,6 +1419,19 @@ .tx_fixup = ax88179_tx_fixup, }; +static const struct driver_info lenovo_info = { + .description = "Lenovo OneLinkDock Gigabit LAN", + .bind = ax88179_bind, + .unbind = ax88179_unbind, + .status = ax88179_status, + .link_reset = ax88179_link_reset, + .reset = ax88179_reset, + .stop = ax88179_stop, + .flags = FLAG_ETHER | FLAG_FRAMING_AX, + .rx_fixup = ax88179_rx_fixup, + .tx_fixup = ax88179_tx_fixup, +}; + static const struct usb_device_id products[] = { { /* ASIX AX88179 10/100/1000 */ @@ -1435,6 +1449,10 @@ /* Samsung USB Ethernet Adapter */ USB_DEVICE(0x04e8, 0xa100), .driver_info = (unsigned long)&samsung_info, +}, { + /* Lenovo OneLinkDock Gigabit LAN */ + USB_DEVICE(0x17ef, 0x304b), + .driver_info = (unsigned long)&lenovo_info, }, { }, }; --- linux-3.13.0.orig/drivers/net/usb/cdc_mbim.c +++ linux-3.13.0/drivers/net/usb/cdc_mbim.c @@ -120,6 +120,16 @@ cdc_ncm_unbind(dev, intf); } +/* verify that the ethernet protocol is IPv4 or IPv6 */ +static bool is_ip_proto(__be16 proto) +{ + switch (proto) { + case htons(ETH_P_IP): + case htons(ETH_P_IPV6): + return true; + } + return false; +} static struct sk_buff *cdc_mbim_tx_fixup(struct usbnet *dev, struct sk_buff *skb, gfp_t flags) { @@ -128,6 +138,7 @@ struct cdc_ncm_ctx *ctx = info->ctx; __le32 sign = cpu_to_le32(USB_CDC_MBIM_NDP16_IPS_SIGN); u16 tci = 0; + bool is_ip; u8 *c; if (!ctx) @@ -137,25 +148,32 @@ if (skb->len <= ETH_HLEN) goto error; + /* Some applications using e.g. packet sockets will + * bypass the VLAN acceleration and create tagged + * ethernet frames directly. We primarily look for + * the accelerated out-of-band tag, but fall back if + * required + */ + skb_reset_mac_header(skb); + if (vlan_get_tag(skb, &tci) < 0 && skb->len > VLAN_ETH_HLEN && + __vlan_get_tag(skb, &tci) == 0) { + is_ip = is_ip_proto(vlan_eth_hdr(skb)->h_vlan_encapsulated_proto); + skb_pull(skb, VLAN_ETH_HLEN); + } else { + is_ip = is_ip_proto(eth_hdr(skb)->h_proto); + skb_pull(skb, ETH_HLEN); + } + /* mapping VLANs to MBIM sessions: * no tag => IPS session <0> * 1 - 255 => IPS session * 256 - 511 => DSS session * 512 - 4095 => unsupported, drop */ - vlan_get_tag(skb, &tci); - switch (tci & 0x0f00) { case 0x0000: /* VLAN ID 0 - 255 */ - /* verify that datagram is IPv4 or IPv6 */ - skb_reset_mac_header(skb); - switch (eth_hdr(skb)->h_proto) { - case htons(ETH_P_IP): - case htons(ETH_P_IPV6): - break; - default: + if (!is_ip) goto error; - } c = (u8 *)&sign; c[3] = tci; break; @@ -169,7 +187,6 @@ "unsupported tci=0x%04x\n", tci); goto error; } - skb_pull(skb, ETH_HLEN); } spin_lock_bh(&ctx->mtx); @@ -204,17 +221,23 @@ return; /* need to send the NA on the VLAN dev, if any */ - if (tci) + rcu_read_lock(); + if (tci) { netdev = __vlan_find_dev_deep(dev->net, htons(ETH_P_8021Q), tci); - else + if (!netdev) { + rcu_read_unlock(); + return; + } + } else { netdev = dev->net; - if (!netdev) - return; + } + dev_hold(netdev); + rcu_read_unlock(); in6_dev = in6_dev_get(netdev); if (!in6_dev) - return; + goto out; is_router = !!in6_dev->cnf.forwarding; in6_dev_put(in6_dev); @@ -224,6 +247,8 @@ true /* solicited */, false /* override */, true /* inc_opt */); +out: + dev_put(netdev); } static bool is_neigh_solicit(u8 *buf, size_t len) --- linux-3.13.0.orig/drivers/net/usb/cdc_ncm.c +++ linux-3.13.0/drivers/net/usb/cdc_ncm.c @@ -69,7 +69,6 @@ static int cdc_ncm_setup(struct usbnet *dev) { struct cdc_ncm_ctx *ctx = (struct cdc_ncm_ctx *)dev->data[0]; - struct usb_cdc_ncm_ntb_parameters ncm_parm; u32 val; u8 flags; u8 iface_no; @@ -83,22 +82,22 @@ err = usbnet_read_cmd(dev, USB_CDC_GET_NTB_PARAMETERS, USB_TYPE_CLASS | USB_DIR_IN |USB_RECIP_INTERFACE, - 0, iface_no, &ncm_parm, - sizeof(ncm_parm)); + 0, iface_no, &ctx->ncm_parm, + sizeof(ctx->ncm_parm)); if (err < 0) { dev_err(&dev->intf->dev, "failed GET_NTB_PARAMETERS\n"); return err; /* GET_NTB_PARAMETERS is required */ } /* read correct set of parameters according to device mode */ - ctx->rx_max = le32_to_cpu(ncm_parm.dwNtbInMaxSize); - ctx->tx_max = le32_to_cpu(ncm_parm.dwNtbOutMaxSize); - ctx->tx_remainder = le16_to_cpu(ncm_parm.wNdpOutPayloadRemainder); - ctx->tx_modulus = le16_to_cpu(ncm_parm.wNdpOutDivisor); - ctx->tx_ndp_modulus = le16_to_cpu(ncm_parm.wNdpOutAlignment); + ctx->rx_max = le32_to_cpu(ctx->ncm_parm.dwNtbInMaxSize); + ctx->tx_max = le32_to_cpu(ctx->ncm_parm.dwNtbOutMaxSize); + ctx->tx_remainder = le16_to_cpu(ctx->ncm_parm.wNdpOutPayloadRemainder); + ctx->tx_modulus = le16_to_cpu(ctx->ncm_parm.wNdpOutDivisor); + ctx->tx_ndp_modulus = le16_to_cpu(ctx->ncm_parm.wNdpOutAlignment); /* devices prior to NCM Errata shall set this field to zero */ - ctx->tx_max_datagrams = le16_to_cpu(ncm_parm.wNtbOutMaxDatagrams); - ntb_fmt_supported = le16_to_cpu(ncm_parm.bmNtbFormatsSupported); + ctx->tx_max_datagrams = le16_to_cpu(ctx->ncm_parm.wNtbOutMaxDatagrams); + ntb_fmt_supported = le16_to_cpu(ctx->ncm_parm.bmNtbFormatsSupported); /* there are some minor differences in NCM and MBIM defaults */ if (cdc_ncm_comm_intf_is_mbim(ctx->control->cur_altsetting)) { @@ -147,7 +146,7 @@ } /* inform device about NTB input size changes */ - if (ctx->rx_max != le32_to_cpu(ncm_parm.dwNtbInMaxSize)) { + if (ctx->rx_max != le32_to_cpu(ctx->ncm_parm.dwNtbInMaxSize)) { __le32 dwNtbInMaxSize = cpu_to_le32(ctx->rx_max); err = usbnet_write_cmd(dev, USB_CDC_SET_NTB_INPUT_SIZE, @@ -163,14 +162,6 @@ dev_dbg(&dev->intf->dev, "Using default maximum transmit length=%d\n", CDC_NCM_NTB_MAX_SIZE_TX); ctx->tx_max = CDC_NCM_NTB_MAX_SIZE_TX; - - /* Adding a pad byte here simplifies the handling in - * cdc_ncm_fill_tx_frame, by making tx_max always - * represent the real skb max size. - */ - if (ctx->tx_max % usb_maxpacket(dev->udev, dev->out, 1) == 0) - ctx->tx_max++; - } /* @@ -440,6 +431,10 @@ goto error2; } + /* initialize data interface */ + if (cdc_ncm_setup(dev)) + goto error2; + /* configure data interface */ temp = usb_set_interface(dev->udev, iface_no, data_altsetting); if (temp) { @@ -454,12 +449,6 @@ goto error2; } - /* initialize data interface */ - if (cdc_ncm_setup(dev)) { - dev_dbg(&intf->dev, "cdc_ncm_setup() failed\n"); - goto error2; - } - usb_set_intfdata(ctx->data, dev); usb_set_intfdata(ctx->control, dev); @@ -476,6 +465,15 @@ dev->hard_mtu = ctx->tx_max; dev->rx_urb_size = ctx->rx_max; + /* cdc_ncm_setup will override dwNtbOutMaxSize if it is + * outside the sane range. Adding a pad byte here if necessary + * simplifies the handling in cdc_ncm_fill_tx_frame, making + * tx_max always represent the real skb max size. + */ + if (ctx->tx_max != le32_to_cpu(ctx->ncm_parm.dwNtbOutMaxSize) && + ctx->tx_max % usb_maxpacket(dev->udev, dev->out, 1) == 0) + ctx->tx_max++; + return 0; error2: @@ -771,7 +769,7 @@ skb_out->len > CDC_NCM_MIN_TX_PKT) memset(skb_put(skb_out, ctx->tx_max - skb_out->len), 0, ctx->tx_max - skb_out->len); - else if ((skb_out->len % dev->maxpacket) == 0) + else if (skb_out->len < ctx->tx_max && (skb_out->len % dev->maxpacket) == 0) *skb_put(skb_out, 1) = 0; /* force short packet */ /* set final frame length */ --- linux-3.13.0.orig/drivers/net/usb/gl620a.c +++ linux-3.13.0/drivers/net/usb/gl620a.c @@ -86,6 +86,10 @@ u32 size; u32 count; + /* This check is no longer done by usbnet */ + if (skb->len < dev->net->hard_header_len) + return 0; + header = (struct gl_header *) skb->data; // get the packet count of the received skb --- linux-3.13.0.orig/drivers/net/usb/huawei_cdc_ncm.c +++ linux-3.13.0/drivers/net/usb/huawei_cdc_ncm.c @@ -84,12 +84,13 @@ ctx = drvstate->ctx; if (usbnet_dev->status) - /* CDC-WMC r1.1 requires wMaxCommand to be "at least 256 - * decimal (0x100)" + /* The wMaxCommand buffer must be big enough to hold + * any message from the modem. Experience has shown + * that some replies are more than 256 bytes long */ subdriver = usb_cdc_wdm_register(ctx->control, &usbnet_dev->status->desc, - 256, /* wMaxCommand */ + 1024, /* wMaxCommand */ huawei_cdc_ncm_wdm_manage_power); if (IS_ERR(subdriver)) { ret = PTR_ERR(subdriver); @@ -206,6 +207,9 @@ { USB_VENDOR_AND_INTERFACE_INFO(0x12d1, 0xff, 0x02, 0x76), .driver_info = (unsigned long)&huawei_cdc_ncm_info, }, + { USB_VENDOR_AND_INTERFACE_INFO(0x12d1, 0xff, 0x03, 0x16), + .driver_info = (unsigned long)&huawei_cdc_ncm_info, + }, /* Terminating entry */ { --- linux-3.13.0.orig/drivers/net/usb/mcs7830.c +++ linux-3.13.0/drivers/net/usb/mcs7830.c @@ -528,8 +528,9 @@ { u8 status; - if (skb->len == 0) { - dev_err(&dev->udev->dev, "unexpected empty rx frame\n"); + /* This check is no longer done by usbnet */ + if (skb->len < dev->net->hard_header_len) { + dev_err(&dev->udev->dev, "unexpected tiny rx frame\n"); return 0; } --- linux-3.13.0.orig/drivers/net/usb/net1080.c +++ linux-3.13.0/drivers/net/usb/net1080.c @@ -366,6 +366,10 @@ struct nc_trailer *trailer; u16 hdr_len, packet_len; + /* This check is no longer done by usbnet */ + if (skb->len < dev->net->hard_header_len) + return 0; + if (!(skb->len & 0x01)) { netdev_dbg(dev->net, "rx framesize %d range %d..%d mtu %d\n", skb->len, dev->net->hard_header_len, dev->hard_mtu, --- linux-3.13.0.orig/drivers/net/usb/qmi_wwan.c +++ linux-3.13.0/drivers/net/usb/qmi_wwan.c @@ -80,10 +80,10 @@ { __be16 proto; - /* usbnet rx_complete guarantees that skb->len is at least - * hard_header_len, so we can inspect the dest address without - * checking skb->len - */ + /* This check is no longer done by usbnet */ + if (skb->len < dev->net->hard_header_len) + return 0; + switch (skb->data[0] & 0xf0) { case 0x40: proto = htons(ETH_P_IP); @@ -660,8 +660,25 @@ {QMI_FIXED_INTF(0x05c6, 0x9084, 4)}, {QMI_FIXED_INTF(0x05c6, 0x920d, 0)}, {QMI_FIXED_INTF(0x05c6, 0x920d, 5)}, + {QMI_FIXED_INTF(0x0846, 0x68a2, 8)}, {QMI_FIXED_INTF(0x12d1, 0x140c, 1)}, /* Huawei E173 */ {QMI_FIXED_INTF(0x12d1, 0x14ac, 1)}, /* Huawei E1820 */ + {QMI_FIXED_INTF(0x16d8, 0x6003, 0)}, /* CMOTech 6003 */ + {QMI_FIXED_INTF(0x16d8, 0x6007, 0)}, /* CMOTech CHE-628S */ + {QMI_FIXED_INTF(0x16d8, 0x6008, 0)}, /* CMOTech CMU-301 */ + {QMI_FIXED_INTF(0x16d8, 0x6280, 0)}, /* CMOTech CHU-628 */ + {QMI_FIXED_INTF(0x16d8, 0x7001, 0)}, /* CMOTech CHU-720S */ + {QMI_FIXED_INTF(0x16d8, 0x7002, 0)}, /* CMOTech 7002 */ + {QMI_FIXED_INTF(0x16d8, 0x7003, 4)}, /* CMOTech CHU-629K */ + {QMI_FIXED_INTF(0x16d8, 0x7004, 3)}, /* CMOTech 7004 */ + {QMI_FIXED_INTF(0x16d8, 0x7006, 5)}, /* CMOTech CGU-629 */ + {QMI_FIXED_INTF(0x16d8, 0x700a, 4)}, /* CMOTech CHU-629S */ + {QMI_FIXED_INTF(0x16d8, 0x7211, 0)}, /* CMOTech CHU-720I */ + {QMI_FIXED_INTF(0x16d8, 0x7212, 0)}, /* CMOTech 7212 */ + {QMI_FIXED_INTF(0x16d8, 0x7213, 0)}, /* CMOTech 7213 */ + {QMI_FIXED_INTF(0x16d8, 0x7251, 1)}, /* CMOTech 7251 */ + {QMI_FIXED_INTF(0x16d8, 0x7252, 1)}, /* CMOTech 7252 */ + {QMI_FIXED_INTF(0x16d8, 0x7253, 1)}, /* CMOTech 7253 */ {QMI_FIXED_INTF(0x19d2, 0x0002, 1)}, {QMI_FIXED_INTF(0x19d2, 0x0012, 1)}, {QMI_FIXED_INTF(0x19d2, 0x0017, 3)}, @@ -717,19 +734,40 @@ {QMI_FIXED_INTF(0x19d2, 0x1424, 2)}, {QMI_FIXED_INTF(0x19d2, 0x1425, 2)}, {QMI_FIXED_INTF(0x19d2, 0x1426, 2)}, /* ZTE MF91 */ + {QMI_FIXED_INTF(0x19d2, 0x1428, 2)}, /* Telewell TW-LTE 4G v2 */ {QMI_FIXED_INTF(0x19d2, 0x2002, 4)}, /* ZTE (Vodafone) K3765-Z */ {QMI_FIXED_INTF(0x0f3d, 0x68a2, 8)}, /* Sierra Wireless MC7700 */ {QMI_FIXED_INTF(0x114f, 0x68a2, 8)}, /* Sierra Wireless MC7750 */ {QMI_FIXED_INTF(0x1199, 0x68a2, 8)}, /* Sierra Wireless MC7710 in QMI mode */ {QMI_FIXED_INTF(0x1199, 0x68a2, 19)}, /* Sierra Wireless MC7710 in QMI mode */ + {QMI_FIXED_INTF(0x1199, 0x68c0, 8)}, /* Sierra Wireless MC73xx */ + {QMI_FIXED_INTF(0x1199, 0x68c0, 10)}, /* Sierra Wireless MC73xx */ + {QMI_FIXED_INTF(0x1199, 0x68c0, 11)}, /* Sierra Wireless MC73xx */ {QMI_FIXED_INTF(0x1199, 0x901c, 8)}, /* Sierra Wireless EM7700 */ + {QMI_FIXED_INTF(0x1199, 0x901f, 8)}, /* Sierra Wireless EM7355 */ + {QMI_FIXED_INTF(0x1199, 0x9041, 8)}, /* Sierra Wireless MC7305/MC7355 */ + {QMI_FIXED_INTF(0x1199, 0x9051, 8)}, /* Netgear AirCard 340U */ + {QMI_FIXED_INTF(0x1199, 0x9057, 8)}, {QMI_FIXED_INTF(0x1bbb, 0x011e, 4)}, /* Telekom Speedstick LTE II (Alcatel One Touch L100V LTE) */ + {QMI_FIXED_INTF(0x1bbb, 0x0203, 2)}, /* Alcatel L800MA */ {QMI_FIXED_INTF(0x2357, 0x0201, 4)}, /* TP-LINK HSUPA Modem MA180 */ {QMI_FIXED_INTF(0x2357, 0x9000, 4)}, /* TP-LINK MA260 */ {QMI_FIXED_INTF(0x1bc7, 0x1200, 5)}, /* Telit LE920 */ {QMI_FIXED_INTF(0x1bc7, 0x1201, 2)}, /* Telit LE920 */ - {QMI_FIXED_INTF(0x0b3c, 0xc005, 6)}, /* Olivetti Olicard 200 */ + {QMI_FIXED_INTF(0x0b3c, 0xc000, 4)}, /* Olivetti Olicard 100 */ + {QMI_FIXED_INTF(0x0b3c, 0xc001, 4)}, /* Olivetti Olicard 120 */ + {QMI_FIXED_INTF(0x0b3c, 0xc002, 4)}, /* Olivetti Olicard 140 */ + {QMI_FIXED_INTF(0x0b3c, 0xc004, 6)}, /* Olivetti Olicard 155 */ + {QMI_FIXED_INTF(0x0b3c, 0xc005, 6)}, /* Olivetti Olicard 200 */ + {QMI_FIXED_INTF(0x0b3c, 0xc00a, 6)}, /* Olivetti Olicard 160 */ + {QMI_FIXED_INTF(0x0b3c, 0xc00b, 4)}, /* Olivetti Olicard 500 */ {QMI_FIXED_INTF(0x1e2d, 0x0060, 4)}, /* Cinterion PLxx */ + {QMI_FIXED_INTF(0x413c, 0x81a2, 8)}, /* Dell Wireless 5806 Gobi(TM) 4G LTE Mobile Broadband Card */ + {QMI_FIXED_INTF(0x413c, 0x81a3, 8)}, /* Dell Wireless 5570 HSPA+ (42Mbps) Mobile Broadband Card */ + {QMI_FIXED_INTF(0x413c, 0x81a4, 8)}, /* Dell Wireless 5570e HSPA+ (42Mbps) Mobile Broadband Card */ + {QMI_FIXED_INTF(0x413c, 0x81a8, 8)}, /* Dell Wireless 5808 Gobi(TM) 4G LTE Mobile Broadband Card */ + {QMI_FIXED_INTF(0x413c, 0x81a9, 8)}, /* Dell Wireless 5808e Gobi(TM) 4G LTE Mobile Broadband Card */ + {QMI_FIXED_INTF(0x03f0, 0x581d, 4)}, /* HP lt4112 LTE/HSPA+ Gobi 4G Module (Huawei me906e) */ /* 4. Gobi 1000 devices */ {QMI_GOBI1K_DEVICE(0x05c6, 0x9212)}, /* Acer Gobi Modem Device */ --- linux-3.13.0.orig/drivers/net/usb/rndis_host.c +++ linux-3.13.0/drivers/net/usb/rndis_host.c @@ -494,6 +494,10 @@ */ int rndis_rx_fixup(struct usbnet *dev, struct sk_buff *skb) { + /* This check is no longer done by usbnet */ + if (skb->len < dev->net->hard_header_len) + return 0; + /* peripheral may have batched packets to us... */ while (likely(skb->len)) { struct rndis_data_hdr *hdr = (void *)skb->data; --- linux-3.13.0.orig/drivers/net/usb/smsc75xx.c +++ linux-3.13.0/drivers/net/usb/smsc75xx.c @@ -2108,6 +2108,10 @@ static int smsc75xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) { + /* This check is no longer done by usbnet */ + if (skb->len < dev->net->hard_header_len) + return 0; + while (skb->len > 0) { u32 rx_cmd_a, rx_cmd_b, align_count, size; struct sk_buff *ax_skb; --- linux-3.13.0.orig/drivers/net/usb/smsc95xx.c +++ linux-3.13.0/drivers/net/usb/smsc95xx.c @@ -1725,6 +1725,10 @@ static int smsc95xx_rx_fixup(struct usbnet *dev, struct sk_buff *skb) { + /* This check is no longer done by usbnet */ + if (skb->len < dev->net->hard_header_len) + return 0; + while (skb->len > 0) { u32 header, align_count; struct sk_buff *ax_skb; --- linux-3.13.0.orig/drivers/net/usb/usbnet.c +++ linux-3.13.0/drivers/net/usb/usbnet.c @@ -543,17 +543,19 @@ } // else network stack removes extra byte if we forced a short packet - if (skb->len) { - /* all data was already cloned from skb inside the driver */ - if (dev->driver_info->flags & FLAG_MULTI_PACKET) - dev_kfree_skb_any(skb); - else - usbnet_skb_return(dev, skb); + /* all data was already cloned from skb inside the driver */ + if (dev->driver_info->flags & FLAG_MULTI_PACKET) + goto done; + + if (skb->len < ETH_HLEN) { + dev->net->stats.rx_errors++; + dev->net->stats.rx_length_errors++; + netif_dbg(dev, rx_err, dev->net, "rx length %d\n", skb->len); + } else { + usbnet_skb_return(dev, skb); return; } - netif_dbg(dev, rx_err, dev->net, "drop\n"); - dev->net->stats.rx_errors++; done: skb_queue_tail(&dev->done, skb); } @@ -575,13 +577,6 @@ switch (urb_status) { /* success */ case 0: - if (skb->len < dev->net->hard_header_len) { - state = rx_cleanup; - dev->net->stats.rx_errors++; - dev->net->stats.rx_length_errors++; - netif_dbg(dev, rx_err, dev->net, - "rx length %d\n", skb->len); - } break; /* stalls need manual reset. this is rare ... except that @@ -758,14 +753,12 @@ // precondition: never called in_interrupt static void usbnet_terminate_urbs(struct usbnet *dev) { - DECLARE_WAIT_QUEUE_HEAD_ONSTACK(unlink_wakeup); DECLARE_WAITQUEUE(wait, current); int temp; /* ensure there are no more active urbs */ - add_wait_queue(&unlink_wakeup, &wait); + add_wait_queue(&dev->wait, &wait); set_current_state(TASK_UNINTERRUPTIBLE); - dev->wait = &unlink_wakeup; temp = unlink_urbs(dev, &dev->txq) + unlink_urbs(dev, &dev->rxq); @@ -779,15 +772,14 @@ "waited for %d urb completions\n", temp); } set_current_state(TASK_RUNNING); - dev->wait = NULL; - remove_wait_queue(&unlink_wakeup, &wait); + remove_wait_queue(&dev->wait, &wait); } int usbnet_stop (struct net_device *net) { struct usbnet *dev = netdev_priv(net); struct driver_info *info = dev->driver_info; - int retval; + int retval, pm; clear_bit(EVENT_DEV_OPEN, &dev->flags); netif_stop_queue (net); @@ -797,6 +789,8 @@ net->stats.rx_packets, net->stats.tx_packets, net->stats.rx_errors, net->stats.tx_errors); + /* to not race resume */ + pm = usb_autopm_get_interface(dev->intf); /* allow minidriver to stop correctly (wireless devices to turn off * radio etc) */ if (info->stop) { @@ -823,6 +817,9 @@ dev->flags = 0; del_timer_sync (&dev->delay); tasklet_kill (&dev->bh); + if (!pm) + usb_autopm_put_interface(dev->intf); + if (info->manage_power && !test_and_clear_bit(EVENT_NO_RUNTIME_PM, &dev->flags)) info->manage_power(dev, 0); @@ -1443,11 +1440,12 @@ /* restart RX again after disabling due to high error rate */ clear_bit(EVENT_RX_KILL, &dev->flags); - // waiting for all pending urbs to complete? - if (dev->wait) { - if ((dev->txq.qlen + dev->rxq.qlen + dev->done.qlen) == 0) { - wake_up (dev->wait); - } + /* waiting for all pending urbs to complete? + * only then can we forgo submitting anew + */ + if (waitqueue_active(&dev->wait)) { + if (dev->txq.qlen + dev->rxq.qlen + dev->done.qlen == 0) + wake_up_all(&dev->wait); // or are we maybe short a few urbs? } else if (netif_running (dev->net) && @@ -1586,6 +1584,7 @@ dev->driver_name = name; dev->msg_enable = netif_msg_init (msg_level, NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_LINK); + init_waitqueue_head(&dev->wait); skb_queue_head_init (&dev->rxq); skb_queue_head_init (&dev->txq); skb_queue_head_init (&dev->done); @@ -1797,9 +1796,10 @@ spin_unlock_irq(&dev->txq.lock); if (test_bit(EVENT_DEV_OPEN, &dev->flags)) { - /* handle remote wakeup ASAP */ - if (!dev->wait && - netif_device_present(dev->net) && + /* handle remote wakeup ASAP + * we cannot race against stop + */ + if (netif_device_present(dev->net) && !timer_pending(&dev->delay) && !test_bit(EVENT_RX_HALT, &dev->flags)) rx_alloc_submit(dev, GFP_NOIO); --- linux-3.13.0.orig/drivers/net/veth.c +++ linux-3.13.0/drivers/net/veth.c @@ -155,10 +155,10 @@ unsigned int start; do { - start = u64_stats_fetch_begin_bh(&stats->syncp); + start = u64_stats_fetch_begin_irq(&stats->syncp); packets = stats->packets; bytes = stats->bytes; - } while (u64_stats_fetch_retry_bh(&stats->syncp, start)); + } while (u64_stats_fetch_retry_irq(&stats->syncp, start)); result->packets += packets; result->bytes += bytes; } @@ -285,7 +285,8 @@ dev->ethtool_ops = &veth_ethtool_ops; dev->features |= NETIF_F_LLTX; dev->features |= VETH_FEATURES; - dev->vlan_features = dev->features; + dev->vlan_features = dev->features & + ~(NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_STAG_TX); dev->destructor = veth_dev_free; dev->hw_features = VETH_FEATURES; --- linux-3.13.0.orig/drivers/net/virtio_net.c +++ linux-3.13.0/drivers/net/virtio_net.c @@ -633,8 +633,7 @@ } while (rq->vq->num_free); if (unlikely(rq->num > rq->max)) rq->max = rq->num; - if (unlikely(!virtqueue_kick(rq->vq))) - return false; + virtqueue_kick(rq->vq); return !oom; } @@ -840,7 +839,7 @@ err = xmit_skb(sq, skb); /* This should not happen! */ - if (unlikely(err) || unlikely(!virtqueue_kick(sq->vq))) { + if (unlikely(err)) { dev->stats.tx_fifo_errors++; if (net_ratelimit()) dev_warn(&dev->dev, @@ -849,6 +848,7 @@ kfree_skb(skb); return NETDEV_TX_OK; } + virtqueue_kick(sq->vq); /* Don't wait up for transmitted skbs to be freed. */ skb_orphan(skb); @@ -968,16 +968,16 @@ u64 tpackets, tbytes, rpackets, rbytes; do { - start = u64_stats_fetch_begin_bh(&stats->tx_syncp); + start = u64_stats_fetch_begin_irq(&stats->tx_syncp); tpackets = stats->tx_packets; tbytes = stats->tx_bytes; - } while (u64_stats_fetch_retry_bh(&stats->tx_syncp, start)); + } while (u64_stats_fetch_retry_irq(&stats->tx_syncp, start)); do { - start = u64_stats_fetch_begin_bh(&stats->rx_syncp); + start = u64_stats_fetch_begin_irq(&stats->rx_syncp); rpackets = stats->rx_packets; rbytes = stats->rx_bytes; - } while (u64_stats_fetch_retry_bh(&stats->rx_syncp, start)); + } while (u64_stats_fetch_retry_irq(&stats->rx_syncp, start)); tot->rx_packets += rpackets; tot->tx_packets += tpackets; @@ -1645,7 +1645,8 @@ /* If we can receive ANY GSO packets, we must allocate large ones. */ if (virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO4) || virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_TSO6) || - virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_ECN)) + virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_ECN) || + virtio_has_feature(vdev, VIRTIO_NET_F_GUEST_UFO)) vi->big_packets = true; if (virtio_has_feature(vdev, VIRTIO_NET_F_MRG_RXBUF)) --- linux-3.13.0.orig/drivers/net/vmxnet3/vmxnet3_drv.c +++ linux-3.13.0/drivers/net/vmxnet3/vmxnet3_drv.c @@ -1760,11 +1760,20 @@ { struct vmxnet3_adapter *adapter = netdev_priv(netdev); - if (adapter->intr.mask_mode == VMXNET3_IMM_ACTIVE) - vmxnet3_disable_all_intrs(adapter); - - vmxnet3_do_poll(adapter, adapter->rx_queue[0].rx_ring[0].size); - vmxnet3_enable_all_intrs(adapter); + switch (adapter->intr.type) { +#ifdef CONFIG_PCI_MSI + case VMXNET3_IT_MSIX: { + int i; + for (i = 0; i < adapter->num_rx_queues; i++) + vmxnet3_msix_rx(0, &adapter->rx_queue[i]); + break; + } +#endif + case VMXNET3_IT_MSI: + default: + vmxnet3_intr(0, adapter->netdev); + break; + } } #endif /* CONFIG_NET_POLL_CONTROLLER */ --- linux-3.13.0.orig/drivers/net/vxlan.c +++ linux-3.13.0/drivers/net/vxlan.c @@ -40,6 +40,7 @@ #include #include #include +#include #if IS_ENABLED(CONFIG_IPV6) #include #include @@ -278,13 +279,15 @@ return list_first_entry(&fdb->remotes, struct vxlan_rdst, list); } -/* Find VXLAN socket based on network namespace and UDP port */ -static struct vxlan_sock *vxlan_find_sock(struct net *net, __be16 port) +/* Find VXLAN socket based on network namespace, address family and UDP port */ +static struct vxlan_sock *vxlan_find_sock(struct net *net, + sa_family_t family, __be16 port) { struct vxlan_sock *vs; hlist_for_each_entry_rcu(vs, vs_head(net, port), hlist) { - if (inet_sk(vs->sock->sk)->inet_sport == port) + if (inet_sk(vs->sock->sk)->inet_sport == port && + inet_sk(vs->sock->sk)->sk.sk_family == family) return vs; } return NULL; @@ -303,11 +306,12 @@ } /* Look up VNI in a per net namespace table */ -static struct vxlan_dev *vxlan_find_vni(struct net *net, u32 id, __be16 port) +static struct vxlan_dev *vxlan_find_vni(struct net *net, u32 id, + sa_family_t family, __be16 port) { struct vxlan_sock *vs; - vs = vxlan_find_sock(net, port); + vs = vxlan_find_sock(net, family, port); if (!vs) return NULL; @@ -554,13 +558,104 @@ return 1; } +static struct sk_buff **vxlan_gro_receive(struct sk_buff **head, struct sk_buff *skb) +{ + struct sk_buff *p, **pp = NULL; + struct vxlanhdr *vh, *vh2; + struct ethhdr *eh, *eh2; + unsigned int hlen, off_vx, off_eth; + const struct packet_offload *ptype; + __be16 type; + int flush = 1; + + off_vx = skb_gro_offset(skb); + hlen = off_vx + sizeof(*vh); + vh = skb_gro_header_fast(skb, off_vx); + if (skb_gro_header_hard(skb, hlen)) { + vh = skb_gro_header_slow(skb, hlen, off_vx); + if (unlikely(!vh)) + goto out; + } + skb_gro_pull(skb, sizeof(struct vxlanhdr)); /* pull vxlan header */ + + off_eth = skb_gro_offset(skb); + hlen = off_eth + sizeof(*eh); + eh = skb_gro_header_fast(skb, off_eth); + if (skb_gro_header_hard(skb, hlen)) { + eh = skb_gro_header_slow(skb, hlen, off_eth); + if (unlikely(!eh)) + goto out; + } + + flush = 0; + + for (p = *head; p; p = p->next) { + if (!NAPI_GRO_CB(p)->same_flow) + continue; + + vh2 = (struct vxlanhdr *)(p->data + off_vx); + eh2 = (struct ethhdr *)(p->data + off_eth); + if (vh->vx_vni != vh2->vx_vni || compare_ether_header(eh, eh2)) { + NAPI_GRO_CB(p)->same_flow = 0; + continue; + } + } + + type = eh->h_proto; + + rcu_read_lock(); + ptype = gro_find_receive_by_type(type); + if (ptype == NULL) { + flush = 1; + goto out_unlock; + } + + skb_gro_pull(skb, sizeof(*eh)); /* pull inner eth header */ + pp = ptype->callbacks.gro_receive(head, skb); + +out_unlock: + rcu_read_unlock(); +out: + NAPI_GRO_CB(skb)->flush |= flush; + + return pp; +} + +static int vxlan_gro_complete(struct sk_buff *skb, int nhoff) +{ + struct ethhdr *eh; + struct packet_offload *ptype; + __be16 type; + int vxlan_len = sizeof(struct vxlanhdr) + sizeof(struct ethhdr); + int err = -ENOSYS; + + eh = (struct ethhdr *)(skb->data + nhoff + sizeof(struct vxlanhdr)); + type = eh->h_proto; + + rcu_read_lock(); + ptype = gro_find_complete_by_type(type); + if (ptype != NULL) + err = ptype->callbacks.gro_complete(skb, nhoff + vxlan_len); + + rcu_read_unlock(); + return err; +} + /* Notify netdevs that UDP port started listening */ -static void vxlan_notify_add_rx_port(struct sock *sk) +static void vxlan_notify_add_rx_port(struct vxlan_sock *vs) { struct net_device *dev; + struct sock *sk = vs->sock->sk; struct net *net = sock_net(sk); sa_family_t sa_family = sk->sk_family; __be16 port = inet_sk(sk)->inet_sport; + int err; + + if (sa_family == AF_INET) { + err = udp_add_offload(&vs->udp_offloads); + if (err) + pr_warn("vxlan: udp_add_offload failed with status %d\n", err); + } rcu_read_lock(); for_each_netdev_rcu(net, dev) { @@ -572,9 +667,10 @@ } /* Notify netdevs that UDP port is no more listening */ -static void vxlan_notify_del_rx_port(struct sock *sk) +static void vxlan_notify_del_rx_port(struct vxlan_sock *vs) { struct net_device *dev; + struct sock *sk = vs->sock->sk; struct net *net = sock_net(sk); sa_family_t sa_family = sk->sk_family; __be16 port = inet_sk(sk)->inet_sport; @@ -586,6 +682,9 @@ port); } rcu_read_unlock(); + + if (sa_family == AF_INET) + udp_del_offload(&vs->udp_offloads); } /* Add new entry to forwarding table -- assumes lock held */ @@ -777,6 +876,9 @@ if (err) return err; + if (vxlan->default_dst.remote_ip.sa.sa_family != ip.sa.sa_family) + return -EAFNOSUPPORT; + spin_lock_bh(&vxlan->hash_lock); err = vxlan_fdb_create(vxlan, addr, &ip, ndm->ndm_state, flags, port, vni, ifindex, ndm->ndm_flags); @@ -949,7 +1051,7 @@ spin_lock(&vn->sock_lock); hlist_del_rcu(&vs->hlist); rcu_assign_sk_user_data(vs->sock->sk, NULL); - vxlan_notify_del_rx_port(sk); + vxlan_notify_del_rx_port(vs); spin_unlock(&vn->sock_lock); queue_work(vxlan_wq, &vs->del_work); @@ -1047,6 +1149,15 @@ if (!vs) goto drop; + /* If the NIC driver gave us an encapsulated packet + * with the encapsulation mark, the device checksummed it + * for us. Otherwise force the upper layers to verify it. + */ + if (skb->ip_summed != CHECKSUM_UNNECESSARY || !skb->encapsulation) + skb->ip_summed = CHECKSUM_NONE; + + skb->encapsulation = 0; + vs->rcv(vs, skb, vxh->vx_vni); return 0; @@ -1110,8 +1221,8 @@ * leave the CHECKSUM_UNNECESSARY, the device checksummed it * for us. Otherwise force the upper layers to verify it. */ - if (skb->ip_summed != CHECKSUM_UNNECESSARY || !skb->encapsulation || - !(vxlan->dev->features & NETIF_F_RXCSUM)) + if ((skb->ip_summed != CHECKSUM_UNNECESSARY && skb->ip_summed != CHECKSUM_PARTIAL) || + !skb->encapsulation || !(vxlan->dev->features & NETIF_F_RXCSUM)) skb->ip_summed = CHECKSUM_NONE; skb->encapsulation = 0; @@ -1210,6 +1321,9 @@ neigh_release(n); + if (reply == NULL) + goto out; + skb_reset_mac_header(reply); __skb_pull(reply, skb_network_offset(reply)); reply->ip_summed = CHECKSUM_UNNECESSARY; @@ -1220,7 +1334,7 @@ } else if (vxlan->flags & VXLAN_F_L3MISS) { union vxlan_addr ipa = { .sin.sin_addr.s_addr = tip, - .sa.sa_family = AF_INET, + .sin.sin_family = AF_INET, }; vxlan_ip_miss(dev, &ipa); @@ -1231,40 +1345,126 @@ } #if IS_ENABLED(CONFIG_IPV6) + +static struct sk_buff *vxlan_na_create(struct sk_buff *request, + struct neighbour *n, bool isrouter) +{ + struct net_device *dev = request->dev; + struct sk_buff *reply; + struct nd_msg *ns, *na; + struct ipv6hdr *pip6; + u8 *daddr; + int na_olen = 8; /* opt hdr + ETH_ALEN for target */ + int ns_olen; + int i, len; + + if (dev == NULL) + return NULL; + + len = LL_RESERVED_SPACE(dev) + sizeof(struct ipv6hdr) + + sizeof(*na) + na_olen + dev->needed_tailroom; + reply = alloc_skb(len, GFP_ATOMIC); + if (reply == NULL) + return NULL; + + reply->protocol = htons(ETH_P_IPV6); + reply->dev = dev; + skb_reserve(reply, LL_RESERVED_SPACE(request->dev)); + skb_push(reply, sizeof(struct ethhdr)); + skb_set_mac_header(reply, 0); + + ns = (struct nd_msg *)skb_transport_header(request); + + daddr = eth_hdr(request)->h_source; + ns_olen = request->len - skb_transport_offset(request) - sizeof(*ns); + for (i = 0; i < ns_olen-1; i += (ns->opt[i+1]<<3)) { + if (ns->opt[i] == ND_OPT_SOURCE_LL_ADDR) { + daddr = ns->opt + i + sizeof(struct nd_opt_hdr); + break; + } + } + + /* Ethernet header */ + memcpy(eth_hdr(reply)->h_dest, daddr, ETH_ALEN); + memcpy(eth_hdr(reply)->h_source, n->ha, ETH_ALEN); + eth_hdr(reply)->h_proto = htons(ETH_P_IPV6); + reply->protocol = htons(ETH_P_IPV6); + + skb_pull(reply, sizeof(struct ethhdr)); + skb_set_network_header(reply, 0); + skb_put(reply, sizeof(struct ipv6hdr)); + + /* IPv6 header */ + + pip6 = ipv6_hdr(reply); + memset(pip6, 0, sizeof(struct ipv6hdr)); + pip6->version = 6; + pip6->priority = ipv6_hdr(request)->priority; + pip6->nexthdr = IPPROTO_ICMPV6; + pip6->hop_limit = 255; + pip6->daddr = ipv6_hdr(request)->saddr; + pip6->saddr = *(struct in6_addr *)n->primary_key; + + skb_pull(reply, sizeof(struct ipv6hdr)); + skb_set_transport_header(reply, 0); + + na = (struct nd_msg *)skb_put(reply, sizeof(*na) + na_olen); + + /* Neighbor Advertisement */ + memset(na, 0, sizeof(*na)+na_olen); + na->icmph.icmp6_type = NDISC_NEIGHBOUR_ADVERTISEMENT; + na->icmph.icmp6_router = isrouter; + na->icmph.icmp6_override = 1; + na->icmph.icmp6_solicited = 1; + na->target = ns->target; + memcpy(&na->opt[2], n->ha, ETH_ALEN); + na->opt[0] = ND_OPT_TARGET_LL_ADDR; + na->opt[1] = na_olen >> 3; + + na->icmph.icmp6_cksum = csum_ipv6_magic(&pip6->saddr, + &pip6->daddr, sizeof(*na)+na_olen, IPPROTO_ICMPV6, + csum_partial(na, sizeof(*na)+na_olen, 0)); + + pip6->payload_len = htons(sizeof(*na)+na_olen); + + skb_push(reply, sizeof(struct ipv6hdr)); + + reply->ip_summed = CHECKSUM_UNNECESSARY; + + return reply; +} + static int neigh_reduce(struct net_device *dev, struct sk_buff *skb) { struct vxlan_dev *vxlan = netdev_priv(dev); - struct neighbour *n; - union vxlan_addr ipa; + struct nd_msg *msg; const struct ipv6hdr *iphdr; const struct in6_addr *saddr, *daddr; - struct nd_msg *msg; - struct inet6_dev *in6_dev = NULL; + struct neighbour *n; + struct inet6_dev *in6_dev; in6_dev = __in6_dev_get(dev); if (!in6_dev) goto out; - if (!pskb_may_pull(skb, skb->len)) - goto out; - iphdr = ipv6_hdr(skb); saddr = &iphdr->saddr; daddr = &iphdr->daddr; - if (ipv6_addr_loopback(daddr) || - ipv6_addr_is_multicast(daddr)) - goto out; - msg = (struct nd_msg *)skb_transport_header(skb); if (msg->icmph.icmp6_code != 0 || msg->icmph.icmp6_type != NDISC_NEIGHBOUR_SOLICITATION) goto out; - n = neigh_lookup(ipv6_stub->nd_tbl, daddr, dev); + if (ipv6_addr_loopback(daddr) || + ipv6_addr_is_multicast(&msg->target)) + goto out; + + n = neigh_lookup(ipv6_stub->nd_tbl, &msg->target, dev); if (n) { struct vxlan_fdb *f; + struct sk_buff *reply; if (!(n->nud_state & NUD_CONNECTED)) { neigh_release(n); @@ -1278,13 +1478,23 @@ goto out; } - ipv6_stub->ndisc_send_na(dev, n, saddr, &msg->target, - !!in6_dev->cnf.forwarding, - true, false, false); + reply = vxlan_na_create(skb, n, + !!(f ? f->flags & NTF_ROUTER : 0)); + neigh_release(n); + + if (reply == NULL) + goto out; + + if (netif_rx_ni(reply) == NET_RX_DROP) + dev->stats.rx_dropped++; + } else if (vxlan->flags & VXLAN_F_L3MISS) { - ipa.sin6.sin6_addr = *daddr; - ipa.sa.sa_family = AF_INET6; + union vxlan_addr ipa = { + .sin6.sin6_addr = msg->target, + .sin6.sin6_family = AF_INET6, + }; + vxlan_ip_miss(dev, &ipa); } @@ -1315,7 +1525,7 @@ if (!n && (vxlan->flags & VXLAN_F_L3MISS)) { union vxlan_addr ipa = { .sin.sin_addr.s_addr = pip->daddr, - .sa.sa_family = AF_INET, + .sin.sin_family = AF_INET, }; vxlan_ip_miss(dev, &ipa); @@ -1336,7 +1546,7 @@ if (!n && (vxlan->flags & VXLAN_F_L3MISS)) { union vxlan_addr ipa = { .sin6.sin6_addr = pip6->daddr, - .sa.sa_family = AF_INET6, + .sin6.sin6_family = AF_INET6, }; vxlan_ip_miss(dev, &ipa); @@ -1390,7 +1600,7 @@ unsigned int range = (port_max - port_min) + 1; u32 hash; - hash = skb_get_rxhash(skb); + hash = skb_get_hash(skb); if (!hash) hash = jhash(skb->data, 2 * ETH_ALEN, (__force u32) skb->protocol); @@ -1576,6 +1786,8 @@ struct pcpu_tstats *rx_stats = this_cpu_ptr(dst_vxlan->dev->tstats); union vxlan_addr loopback; union vxlan_addr *remote_ip = &dst_vxlan->default_dst.remote_ip; + struct net_device *dev = skb->dev; + int len = skb->len; skb->pkt_type = PACKET_HOST; skb->encapsulation = 0; @@ -1597,16 +1809,16 @@ u64_stats_update_begin(&tx_stats->syncp); tx_stats->tx_packets++; - tx_stats->tx_bytes += skb->len; + tx_stats->tx_bytes += len; u64_stats_update_end(&tx_stats->syncp); if (netif_rx(skb) == NET_RX_SUCCESS) { u64_stats_update_begin(&rx_stats->syncp); rx_stats->rx_packets++; - rx_stats->rx_bytes += skb->len; + rx_stats->rx_bytes += len; u64_stats_update_end(&rx_stats->syncp); } else { - skb->dev->stats.rx_dropped++; + dev->stats.rx_dropped++; } } @@ -1677,7 +1889,8 @@ struct vxlan_dev *dst_vxlan; ip_rt_put(rt); - dst_vxlan = vxlan_find_vni(dev_net(dev), vni, dst_port); + dst_vxlan = vxlan_find_vni(dev_net(dev), vni, + dst->sa.sa_family, dst_port); if (!dst_vxlan) goto tx_error; vxlan_encap_bypass(skb, vxlan, dst_vxlan); @@ -1730,7 +1943,8 @@ struct vxlan_dev *dst_vxlan; dst_release(ndst); - dst_vxlan = vxlan_find_vni(dev_net(dev), vni, dst_port); + dst_vxlan = vxlan_find_vni(dev_net(dev), vni, + dst->sa.sa_family, dst_port); if (!dst_vxlan) goto tx_error; vxlan_encap_bypass(skb, vxlan, dst_vxlan); @@ -1781,7 +1995,8 @@ return arp_reduce(dev, skb); #if IS_ENABLED(CONFIG_IPV6) else if (ntohs(eth->h_proto) == ETH_P_IPV6 && - skb->len >= sizeof(struct ipv6hdr) + sizeof(struct nd_msg) && + pskb_may_pull(skb, sizeof(struct ipv6hdr) + + sizeof(struct nd_msg)) && ipv6_hdr(skb)->nexthdr == IPPROTO_ICMPV6) { struct nd_msg *msg; @@ -1790,6 +2005,7 @@ msg->icmph.icmp6_type == NDISC_NEIGHBOUR_SOLICITATION) return neigh_reduce(dev, skb); } + eth = eth_hdr(skb); #endif } @@ -1879,6 +2095,7 @@ { struct vxlan_dev *vxlan = netdev_priv(dev); struct vxlan_net *vn = net_generic(dev_net(dev), vxlan_net_id); + bool ipv6 = vxlan->flags & VXLAN_F_IPV6; struct vxlan_sock *vs; int i; @@ -1894,10 +2111,10 @@ spin_lock(&vn->sock_lock); - vs = vxlan_find_sock(dev_net(dev), vxlan->dst_port); - if (vs) { + vs = vxlan_find_sock(dev_net(dev), ipv6 ? AF_INET6 : AF_INET, + vxlan->dst_port); + if (vs && atomic_add_unless(&vs->refcnt, 1, 0)) { /* If we have a socket with same port already, reuse it */ - atomic_inc(&vs->refcnt); vxlan_vs_add_dev(vs, vxlan); } else { /* otherwise make new socket outside of RTNL */ @@ -2058,9 +2275,9 @@ eth_hw_addr_random(dev); ether_setup(dev); if (vxlan->default_dst.remote_ip.sa.sa_family == AF_INET6) - dev->hard_header_len = ETH_HLEN + VXLAN6_HEADROOM; + dev->needed_headroom = ETH_HLEN + VXLAN6_HEADROOM; else - dev->hard_header_len = ETH_HLEN + VXLAN_HEADROOM; + dev->needed_headroom = ETH_HLEN + VXLAN_HEADROOM; dev->netdev_ops = &vxlan_netdev_ops; dev->destructor = free_netdev; @@ -2278,7 +2495,7 @@ struct sock *sk; unsigned int h; - vs = kmalloc(sizeof(*vs), GFP_KERNEL); + vs = kzalloc(sizeof(*vs), GFP_KERNEL); if (!vs) return ERR_PTR(-ENOMEM); @@ -2303,9 +2520,14 @@ vs->data = data; rcu_assign_sk_user_data(vs->sock->sk, vs); + /* Initialize the vxlan udp offloads structure */ + vs->udp_offloads.port = port; + vs->udp_offloads.callbacks.gro_receive = vxlan_gro_receive; + vs->udp_offloads.callbacks.gro_complete = vxlan_gro_complete; + spin_lock(&vn->sock_lock); hlist_add_head_rcu(&vs->hlist, vs_head(net, port)); - vxlan_notify_add_rx_port(sk); + vxlan_notify_add_rx_port(vs); spin_unlock(&vn->sock_lock); /* Mark socket as an encapsulation socket. */ @@ -2336,13 +2558,10 @@ return vs; spin_lock(&vn->sock_lock); - vs = vxlan_find_sock(net, port); - if (vs) { - if (vs->rcv == rcv) - atomic_inc(&vs->refcnt); - else + vs = vxlan_find_sock(net, ipv6 ? AF_INET6 : AF_INET, port); + if (vs && ((vs->rcv != rcv) || + !atomic_add_unless(&vs->refcnt, 1, 0))) vs = ERR_PTR(-EBUSY); - } spin_unlock(&vn->sock_lock); if (!vs) @@ -2386,9 +2605,10 @@ vni = nla_get_u32(data[IFLA_VXLAN_ID]); dst->remote_vni = vni; + /* Unless IPv6 is explicitly requested, assume IPv4 */ + dst->remote_ip.sa.sa_family = AF_INET; if (data[IFLA_VXLAN_GROUP]) { dst->remote_ip.sin.sin_addr.s_addr = nla_get_be32(data[IFLA_VXLAN_GROUP]); - dst->remote_ip.sa.sa_family = AF_INET; } else if (data[IFLA_VXLAN_GROUP6]) { if (!IS_ENABLED(CONFIG_IPV6)) return -EPFNOSUPPORT; @@ -2437,8 +2657,7 @@ if (!tb[IFLA_MTU]) dev->mtu = lowerdev->mtu - (use_ipv6 ? VXLAN6_HEADROOM : VXLAN_HEADROOM); - /* update header length based on lower device */ - dev->hard_header_len = lowerdev->hard_header_len + + dev->needed_headroom = lowerdev->hard_header_len + (use_ipv6 ? VXLAN6_HEADROOM : VXLAN_HEADROOM); } else if (use_ipv6) vxlan->flags |= VXLAN_F_IPV6; @@ -2482,7 +2701,8 @@ if (data[IFLA_VXLAN_PORT]) vxlan->dst_port = nla_get_be16(data[IFLA_VXLAN_PORT]); - if (vxlan_find_vni(net, vni, vxlan->dst_port)) { + if (vxlan_find_vni(net, vni, use_ipv6 ? AF_INET6 : AF_INET, + vxlan->dst_port)) { pr_info("duplicate VNI %u\n", vni); return -EEXIST; } --- linux-3.13.0.orig/drivers/net/wireless/ath/ar5523/ar5523.c +++ linux-3.13.0/drivers/net/wireless/ath/ar5523/ar5523.c @@ -1091,7 +1091,8 @@ return ret; } -static void ar5523_flush(struct ieee80211_hw *hw, u32 queues, bool drop) +static void ar5523_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + u32 queues, bool drop) { struct ar5523 *ar = hw->priv; @@ -1765,7 +1766,7 @@ AR5523_DEVICE_UG(0x07d1, 0x3a07), /* D-Link / WUA-2340 rev A1 */ AR5523_DEVICE_UG(0x1690, 0x0712), /* Gigaset / AR5523 */ AR5523_DEVICE_UG(0x1690, 0x0710), /* Gigaset / SMCWUSBTG */ - AR5523_DEVICE_UG(0x129b, 0x160c), /* Gigaset / USB stick 108 + AR5523_DEVICE_UG(0x129b, 0x160b), /* Gigaset / USB stick 108 (CyberTAN Technology) */ AR5523_DEVICE_UG(0x16ab, 0x7801), /* Globalsun / AR5523_1 */ AR5523_DEVICE_UX(0x16ab, 0x7811), /* Globalsun / AR5523_2 */ --- linux-3.13.0.orig/drivers/net/wireless/ath/ath10k/mac.c +++ linux-3.13.0/drivers/net/wireless/ath/ath10k/mac.c @@ -2939,7 +2939,8 @@ return ret; } -static void ath10k_flush(struct ieee80211_hw *hw, u32 queues, bool drop) +static void ath10k_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + u32 queues, bool drop) { struct ath10k *ar = hw->priv; bool skip; --- linux-3.13.0.orig/drivers/net/wireless/ath/ath5k/qcu.c +++ linux-3.13.0/drivers/net/wireless/ath/ath5k/qcu.c @@ -225,13 +225,7 @@ } else { switch (queue_type) { case AR5K_TX_QUEUE_DATA: - for (queue = AR5K_TX_QUEUE_ID_DATA_MIN; - ah->ah_txq[queue].tqi_type != - AR5K_TX_QUEUE_INACTIVE; queue++) { - - if (queue > AR5K_TX_QUEUE_ID_DATA_MAX) - return -EINVAL; - } + queue = queue_info->tqi_subtype; break; case AR5K_TX_QUEUE_UAPSD: queue = AR5K_TX_QUEUE_ID_UAPSD; --- linux-3.13.0.orig/drivers/net/wireless/ath/ath9k/ar9003_phy.c +++ linux-3.13.0/drivers/net/wireless/ath/ath9k/ar9003_phy.c @@ -646,6 +646,19 @@ else ah->enabled_cals &= ~TX_CL_CAL; } + + if (AR_SREV_9340(ah) || AR_SREV_9531(ah) || AR_SREV_9550(ah)) { + if (ah->is_clk_25mhz) { + REG_WRITE(ah, AR_RTC_DERIVED_CLK, 0x17c << 1); + REG_WRITE(ah, AR_SLP32_MODE, 0x0010f3d7); + REG_WRITE(ah, AR_SLP32_INC, 0x0001e7ae); + } else { + REG_WRITE(ah, AR_RTC_DERIVED_CLK, 0x261 << 1); + REG_WRITE(ah, AR_SLP32_MODE, 0x0010f400); + REG_WRITE(ah, AR_SLP32_INC, 0x0001e800); + } + udelay(100); + } } static void ar9003_hw_prog_ini(struct ath_hw *ah, --- linux-3.13.0.orig/drivers/net/wireless/ath/ath9k/ar9462_2p0_initvals.h +++ linux-3.13.0/drivers/net/wireless/ath/ath9k/ar9462_2p0_initvals.h @@ -56,7 +56,7 @@ {0x00009e14, 0x37b95d5e, 0x37b9605e, 0x3236605e, 0x32365a5e}, {0x00009e18, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x00009e1c, 0x0001cf9c, 0x0001cf9c, 0x00021f9c, 0x00021f9c}, - {0x00009e20, 0x000003b5, 0x000003b5, 0x000003ce, 0x000003ce}, + {0x00009e20, 0x000003a5, 0x000003a5, 0x000003a5, 0x000003a5}, {0x00009e2c, 0x0000001c, 0x0000001c, 0x00000021, 0x00000021}, {0x00009e3c, 0xcf946220, 0xcf946220, 0xcfd5c782, 0xcfd5c282}, {0x00009e44, 0x62321e27, 0x62321e27, 0xfe291e27, 0xfe291e27}, @@ -95,7 +95,7 @@ {0x0000ae04, 0x001c0000, 0x001c0000, 0x001c0000, 0x00100000}, {0x0000ae18, 0x00000000, 0x00000000, 0x00000000, 0x00000000}, {0x0000ae1c, 0x0000019c, 0x0000019c, 0x0000019c, 0x0000019c}, - {0x0000ae20, 0x000001b5, 0x000001b5, 0x000001ce, 0x000001ce}, + {0x0000ae20, 0x000001a6, 0x000001a6, 0x000001aa, 0x000001aa}, {0x0000b284, 0x00000000, 0x00000000, 0x00000550, 0x00000550}, }; --- linux-3.13.0.orig/drivers/net/wireless/ath/ath9k/htc_drv_init.c +++ linux-3.13.0/drivers/net/wireless/ath/ath9k/htc_drv_init.c @@ -34,6 +34,10 @@ module_param_named(btcoex_enable, ath9k_htc_btcoex_enable, int, 0444); MODULE_PARM_DESC(btcoex_enable, "Enable wifi-BT coexistence"); +static int ath9k_ps_enable; +module_param_named(ps_enable, ath9k_ps_enable, int, 0444); +MODULE_PARM_DESC(ps_enable, "Enable WLAN PowerSave"); + #define CHAN2G(_freq, _idx) { \ .center_freq = (_freq), \ .hw_value = (_idx), \ @@ -725,12 +729,14 @@ IEEE80211_HW_SPECTRUM_MGMT | IEEE80211_HW_HAS_RATE_CONTROL | IEEE80211_HW_RX_INCLUDES_FCS | - IEEE80211_HW_SUPPORTS_PS | IEEE80211_HW_PS_NULLFUNC_STACK | IEEE80211_HW_REPORTS_TX_ACK_STATUS | IEEE80211_HW_MFP_CAPABLE | IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING; + if (ath9k_ps_enable) + hw->flags |= IEEE80211_HW_SUPPORTS_PS; + hw->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC) | --- linux-3.13.0.orig/drivers/net/wireless/ath/ath9k/htc_drv_main.c +++ linux-3.13.0/drivers/net/wireless/ath/ath9k/htc_drv_main.c @@ -1315,21 +1315,22 @@ struct ath_common *common = ath9k_hw_common(priv->ah); struct ath9k_htc_target_rate trate; + if (!(changed & IEEE80211_RC_SUPP_RATES_CHANGED)) + return; + mutex_lock(&priv->mutex); ath9k_htc_ps_wakeup(priv); - if (changed & IEEE80211_RC_SUPP_RATES_CHANGED) { - memset(&trate, 0, sizeof(struct ath9k_htc_target_rate)); - ath9k_htc_setup_rate(priv, sta, &trate); - if (!ath9k_htc_send_rate_cmd(priv, &trate)) - ath_dbg(common, CONFIG, - "Supported rates for sta: %pM updated, rate caps: 0x%X\n", - sta->addr, be32_to_cpu(trate.capflags)); - else - ath_dbg(common, CONFIG, - "Unable to update supported rates for sta: %pM\n", - sta->addr); - } + memset(&trate, 0, sizeof(struct ath9k_htc_target_rate)); + ath9k_htc_setup_rate(priv, sta, &trate); + if (!ath9k_htc_send_rate_cmd(priv, &trate)) + ath_dbg(common, CONFIG, + "Supported rates for sta: %pM updated, rate caps: 0x%X\n", + sta->addr, be32_to_cpu(trate.capflags)); + else + ath_dbg(common, CONFIG, + "Unable to update supported rates for sta: %pM\n", + sta->addr); ath9k_htc_ps_restore(priv); mutex_unlock(&priv->mutex); --- linux-3.13.0.orig/drivers/net/wireless/ath/ath9k/hw.c +++ linux-3.13.0/drivers/net/wireless/ath/ath9k/hw.c @@ -923,19 +923,6 @@ udelay(RTC_PLL_SETTLE_DELAY); REG_WRITE(ah, AR_RTC_SLEEP_CLK, AR_RTC_FORCE_DERIVED_CLK); - - if (AR_SREV_9340(ah) || AR_SREV_9550(ah)) { - if (ah->is_clk_25mhz) { - REG_WRITE(ah, AR_RTC_DERIVED_CLK, 0x17c << 1); - REG_WRITE(ah, AR_SLP32_MODE, 0x0010f3d7); - REG_WRITE(ah, AR_SLP32_INC, 0x0001e7ae); - } else { - REG_WRITE(ah, AR_RTC_DERIVED_CLK, 0x261 << 1); - REG_WRITE(ah, AR_SLP32_MODE, 0x0010f400); - REG_WRITE(ah, AR_SLP32_INC, 0x0001e800); - } - udelay(100); - } } static void ath9k_hw_init_interrupt_masks(struct ath_hw *ah, @@ -2608,13 +2595,6 @@ ah->eep_ops->get_eeprom(ah, EEP_PAPRD)) pCap->hw_caps |= ATH9K_HW_CAP_PAPRD; - /* - * Fast channel change across bands is available - * only for AR9462 and AR9565. - */ - if (AR_SREV_9462(ah) || AR_SREV_9565(ah)) - pCap->hw_caps |= ATH9K_HW_CAP_FCC_BAND_SWITCH; - return 0; } --- linux-3.13.0.orig/drivers/net/wireless/ath/ath9k/hw.h +++ linux-3.13.0/drivers/net/wireless/ath/ath9k/hw.h @@ -215,8 +215,8 @@ #define AH_WOW_BEACON_MISS BIT(3) enum ath_hw_txq_subtype { - ATH_TXQ_AC_BE = 0, - ATH_TXQ_AC_BK = 1, + ATH_TXQ_AC_BK = 0, + ATH_TXQ_AC_BE = 1, ATH_TXQ_AC_VI = 2, ATH_TXQ_AC_VO = 3, }; --- linux-3.13.0.orig/drivers/net/wireless/ath/ath9k/init.c +++ linux-3.13.0/drivers/net/wireless/ath/ath9k/init.c @@ -57,6 +57,10 @@ module_param_named(bt_ant_diversity, ath9k_bt_ant_diversity, int, 0444); MODULE_PARM_DESC(bt_ant_diversity, "Enable WLAN/BT RX antenna diversity"); +static int ath9k_ps_enable; +module_param_named(ps_enable, ath9k_ps_enable, int, 0444); +MODULE_PARM_DESC(ps_enable, "Enable WLAN PowerSave"); + bool is_ath9k_unloaded; /* We use the hw_value as an index into our private channel structure */ @@ -890,13 +894,15 @@ hw->flags = IEEE80211_HW_RX_INCLUDES_FCS | IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING | IEEE80211_HW_SIGNAL_DBM | - IEEE80211_HW_SUPPORTS_PS | IEEE80211_HW_PS_NULLFUNC_STACK | IEEE80211_HW_SPECTRUM_MGMT | IEEE80211_HW_REPORTS_TX_ACK_STATUS | IEEE80211_HW_SUPPORTS_RC_TABLE | IEEE80211_HW_SUPPORTS_HT_CCK_RATES; + if (ath9k_ps_enable) + hw->flags |= IEEE80211_HW_SUPPORTS_PS; + if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT) { hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION; --- linux-3.13.0.orig/drivers/net/wireless/ath/ath9k/mac.c +++ linux-3.13.0/drivers/net/wireless/ath/ath9k/mac.c @@ -311,14 +311,7 @@ q = ATH9K_NUM_TX_QUEUES - 3; break; case ATH9K_TX_QUEUE_DATA: - for (q = 0; q < ATH9K_NUM_TX_QUEUES; q++) - if (ah->txq[q].tqi_type == - ATH9K_TX_QUEUE_INACTIVE) - break; - if (q == ATH9K_NUM_TX_QUEUES) { - ath_err(common, "No available TX queue\n"); - return -1; - } + q = qinfo->tqi_subtype; break; default: ath_err(common, "Invalid TX queue type: %u\n", type); --- linux-3.13.0.orig/drivers/net/wireless/ath/ath9k/main.c +++ linux-3.13.0/drivers/net/wireless/ath/ath9k/main.c @@ -1818,7 +1818,8 @@ mutex_unlock(&sc->mutex); } -static void ath9k_flush(struct ieee80211_hw *hw, u32 queues, bool drop) +static void ath9k_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + u32 queues, bool drop) { struct ath_softc *sc = hw->priv; struct ath_hw *ah = sc->sc_ah; --- linux-3.13.0.orig/drivers/net/wireless/ath/ath9k/recv.c +++ linux-3.13.0/drivers/net/wireless/ath/ath9k/recv.c @@ -733,11 +733,18 @@ return NULL; /* - * mark descriptor as zero-length and set the 'more' - * flag to ensure that both buffers get discarded + * Re-check previous descriptor, in case it has been filled + * in the mean time. */ - rs->rs_datalen = 0; - rs->rs_more = true; + ret = ath9k_hw_rxprocdesc(ah, ds, rs); + if (ret == -EINPROGRESS) { + /* + * mark descriptor as zero-length and set the 'more' + * flag to ensure that both buffers get discarded + */ + rs->rs_datalen = 0; + rs->rs_more = true; + } } list_del(&bf->list); @@ -851,20 +858,15 @@ enum ieee80211_band band; unsigned int i = 0; struct ath_softc __maybe_unused *sc = common->priv; + struct ath_hw *ah = sc->sc_ah; - band = hw->conf.chandef.chan->band; + band = ah->curchan->chan->band; sband = hw->wiphy->bands[band]; - switch (hw->conf.chandef.width) { - case NL80211_CHAN_WIDTH_5: + if (IS_CHAN_QUARTER_RATE(ah->curchan)) rxs->flag |= RX_FLAG_5MHZ; - break; - case NL80211_CHAN_WIDTH_10: + else if (IS_CHAN_HALF_RATE(ah->curchan)) rxs->flag |= RX_FLAG_10MHZ; - break; - default: - break; - } if (rx_stats->rs_rate & 0x80) { /* HT rate */ @@ -1171,32 +1173,32 @@ struct ath_common *common = ath9k_hw_common(ah); struct ieee80211_hdr *hdr; bool discard_current = sc->rx.discard_next; - int ret = 0; /* * Discard corrupt descriptors which are marked in * ath_get_next_rx_buf(). */ - sc->rx.discard_next = rx_stats->rs_more; if (discard_current) - return -EINVAL; + goto corrupt; + + sc->rx.discard_next = false; /* * Discard zero-length packets. */ if (!rx_stats->rs_datalen) { RX_STAT_INC(rx_len_err); - return -EINVAL; + goto corrupt; } - /* - * rs_status follows rs_datalen so if rs_datalen is too large - * we can take a hint that hardware corrupted it, so ignore - * those frames. - */ + /* + * rs_status follows rs_datalen so if rs_datalen is too large + * we can take a hint that hardware corrupted it, so ignore + * those frames. + */ if (rx_stats->rs_datalen > (common->rx_bufsize - ah->caps.rx_status_len)) { RX_STAT_INC(rx_len_err); - return -EINVAL; + goto corrupt; } /* Only use status info from the last fragment */ @@ -1210,10 +1212,8 @@ * This is different from the other corrupt descriptor * condition handled above. */ - if (rx_stats->rs_status & ATH9K_RXERR_CORRUPT_DESC) { - ret = -EINVAL; - goto exit; - } + if (rx_stats->rs_status & ATH9K_RXERR_CORRUPT_DESC) + goto corrupt; hdr = (struct ieee80211_hdr *) (skb->data + ah->caps.rx_status_len); @@ -1229,18 +1229,15 @@ if (ath_process_fft(sc, hdr, rx_stats, rx_status->mactime)) RX_STAT_INC(rx_spectral); - ret = -EINVAL; - goto exit; + return -EINVAL; } /* * everything but the rate is checked here, the rate check is done * separately to avoid doing two lookups for a rate for each frame. */ - if (!ath9k_rx_accept(common, hdr, rx_status, rx_stats, decrypt_error)) { - ret = -EINVAL; - goto exit; - } + if (!ath9k_rx_accept(common, hdr, rx_status, rx_stats, decrypt_error)) + return -EINVAL; rx_stats->is_mybeacon = ath9k_is_mybeacon(sc, hdr); if (rx_stats->is_mybeacon) { @@ -1248,15 +1245,19 @@ ath_start_rx_poll(sc, 3); } - if (ath9k_process_rate(common, hw, rx_stats, rx_status)) { - ret =-EINVAL; - goto exit; - } + /* + * This shouldn't happen, but have a safety check anyway. + */ + if (WARN_ON(!ah->curchan)) + return -EINVAL; + + if (ath9k_process_rate(common, hw, rx_stats, rx_status)) + return -EINVAL; ath9k_process_rssi(common, hw, rx_stats, rx_status); - rx_status->band = hw->conf.chandef.chan->band; - rx_status->freq = hw->conf.chandef.chan->center_freq; + rx_status->band = ah->curchan->chan->band; + rx_status->freq = ah->curchan->chan->center_freq; rx_status->antenna = rx_stats->rs_antenna; rx_status->flag |= RX_FLAG_MACTIME_END; @@ -1266,9 +1267,11 @@ sc->rx.num_pkts++; #endif -exit: - sc->rx.discard_next = false; - return ret; + return 0; + +corrupt: + sc->rx.discard_next = rx_stats->rs_more; + return -EINVAL; } static void ath9k_rx_skb_postprocess(struct ath_common *common, --- linux-3.13.0.orig/drivers/net/wireless/ath/ath9k/reg.h +++ linux-3.13.0/drivers/net/wireless/ath/ath9k/reg.h @@ -810,6 +810,9 @@ #define AR_SREV_VERSION_9565 0x2C0 #define AR_SREV_REVISION_9565_10 0 #define AR_SREV_VERSION_9550 0x400 +#define AR_SREV_VERSION_9531 0x500 +#define AR_SREV_REVISION_9531_10 0 +#define AR_SREV_REVISION_9531_11 1 #define AR_SREV_5416(_ah) \ (((_ah)->hw_version.macVersion == AR_SREV_VERSION_5416_PCI) || \ @@ -938,11 +941,19 @@ #define AR_SREV_9580(_ah) \ (((_ah)->hw_version.macVersion == AR_SREV_VERSION_9580) && \ ((_ah)->hw_version.macRev >= AR_SREV_REVISION_9580_10)) - #define AR_SREV_9580_10(_ah) \ (((_ah)->hw_version.macVersion == AR_SREV_VERSION_9580) && \ ((_ah)->hw_version.macRev == AR_SREV_REVISION_9580_10)) +#define AR_SREV_9531(_ah) \ + (((_ah)->hw_version.macVersion == AR_SREV_VERSION_9531)) +#define AR_SREV_9531_10(_ah) \ + (((_ah)->hw_version.macVersion == AR_SREV_VERSION_9531) && \ + ((_ah)->hw_version.macRev == AR_SREV_REVISION_9531_10)) +#define AR_SREV_9531_11(_ah) \ + (((_ah)->hw_version.macVersion == AR_SREV_VERSION_9531) && \ + ((_ah)->hw_version.macRev == AR_SREV_REVISION_9531_11)) + /* NOTE: When adding chips newer than Peacock, add chip check here */ #define AR_SREV_9580_10_OR_LATER(_ah) \ (AR_SREV_9580(_ah)) --- linux-3.13.0.orig/drivers/net/wireless/ath/ath9k/xmit.c +++ linux-3.13.0/drivers/net/wireless/ath/ath9k/xmit.c @@ -904,6 +904,15 @@ tx_info = IEEE80211_SKB_CB(skb); tx_info->flags &= ~IEEE80211_TX_CTL_CLEAR_PS_FILT; + + /* + * No aggregation session is running, but there may be frames + * from a previous session or a failed attempt in the queue. + * Send them out as normal data frames + */ + if (!tid->active) + tx_info->flags &= ~IEEE80211_TX_CTL_AMPDU; + if (!(tx_info->flags & IEEE80211_TX_CTL_AMPDU)) { bf->bf_state.bf_type = 0; return bf; @@ -1458,14 +1467,16 @@ for (tidno = 0, tid = &an->tid[tidno]; tidno < IEEE80211_NUM_TIDS; tidno++, tid++) { - if (!tid->sched) - continue; - ac = tid->ac; txq = ac->txq; ath_txq_lock(sc, txq); + if (!tid->sched) { + ath_txq_unlock(sc, txq); + continue; + } + buffered = ath_tid_has_buffered(tid); tid->sched = false; @@ -1710,7 +1721,7 @@ ath9k_hw_get_txq_props(sc->sc_ah, qnum, &qi); - qi.tqi_readyTime = (cur_conf->beacon_interval * + qi.tqi_readyTime = (TU_TO_USEC(cur_conf->beacon_interval) * ATH_CABQ_READY_TIME) / 100; ath_txq_update(sc, qnum, &qi); @@ -2072,7 +2083,7 @@ ATH_TXBUF_RESET(bf); - if (tid) { + if (tid && ieee80211_is_data_present(hdr->frame_control)) { fragno = le16_to_cpu(hdr->seq_ctrl) & IEEE80211_SCTL_FRAG; seqno = tid->seq_next; hdr->seq_ctrl = cpu_to_le16(tid->seq_next << IEEE80211_SEQ_SEQ_SHIFT); @@ -2195,14 +2206,15 @@ txq->stopped = true; } + if (txctl->an && ieee80211_is_data_present(hdr->frame_control)) + tid = ath_get_skb_tid(sc, txctl->an, skb); + if (info->flags & IEEE80211_TX_CTL_PS_RESPONSE) { ath_txq_unlock(sc, txq); txq = sc->tx.uapsdq; ath_txq_lock(sc, txq); } else if (txctl->an && ieee80211_is_data_present(hdr->frame_control)) { - tid = ath_get_skb_tid(sc, txctl->an, skb); - WARN_ON(tid->ac->txq != txctl->txq); if (info->flags & IEEE80211_TX_CTL_CLEAR_PS_FILT) --- linux-3.13.0.orig/drivers/net/wireless/ath/carl9170/carl9170.h +++ linux-3.13.0/drivers/net/wireless/ath/carl9170/carl9170.h @@ -256,6 +256,7 @@ atomic_t rx_work_urbs; atomic_t rx_pool_urbs; kernel_ulong_t features; + bool usb_ep_cmd_is_bulk; /* firmware settings */ struct completion fw_load_wait; --- linux-3.13.0.orig/drivers/net/wireless/ath/carl9170/main.c +++ linux-3.13.0/drivers/net/wireless/ath/carl9170/main.c @@ -1708,7 +1708,9 @@ return 0; } -static void carl9170_op_flush(struct ieee80211_hw *hw, u32 queues, bool drop) +static void carl9170_op_flush(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, + u32 queues, bool drop) { struct ar9170 *ar = hw->priv; unsigned int vid; --- linux-3.13.0.orig/drivers/net/wireless/ath/carl9170/usb.c +++ linux-3.13.0/drivers/net/wireless/ath/carl9170/usb.c @@ -621,9 +621,16 @@ goto err_free; } - usb_fill_int_urb(urb, ar->udev, usb_sndintpipe(ar->udev, - AR9170_USB_EP_CMD), cmd, cmd->hdr.len + 4, - carl9170_usb_cmd_complete, ar, 1); + if (ar->usb_ep_cmd_is_bulk) + usb_fill_bulk_urb(urb, ar->udev, + usb_sndbulkpipe(ar->udev, AR9170_USB_EP_CMD), + cmd, cmd->hdr.len + 4, + carl9170_usb_cmd_complete, ar); + else + usb_fill_int_urb(urb, ar->udev, + usb_sndintpipe(ar->udev, AR9170_USB_EP_CMD), + cmd, cmd->hdr.len + 4, + carl9170_usb_cmd_complete, ar, 1); if (free_buf) urb->transfer_flags |= URB_FREE_BUFFER; @@ -1032,9 +1039,10 @@ static int carl9170_usb_probe(struct usb_interface *intf, const struct usb_device_id *id) { + struct usb_endpoint_descriptor *ep; struct ar9170 *ar; struct usb_device *udev; - int err; + int i, err; err = usb_reset_device(interface_to_usbdev(intf)); if (err) @@ -1050,6 +1058,21 @@ ar->intf = intf; ar->features = id->driver_info; + /* We need to remember the type of endpoint 4 because it differs + * between high- and full-speed configuration. The high-speed + * configuration specifies it as interrupt and the full-speed + * configuration as bulk endpoint. This information is required + * later when sending urbs to that endpoint. + */ + for (i = 0; i < intf->cur_altsetting->desc.bNumEndpoints; ++i) { + ep = &intf->cur_altsetting->endpoint[i].desc; + + if (usb_endpoint_num(ep) == AR9170_USB_EP_CMD && + usb_endpoint_dir_out(ep) && + usb_endpoint_type(ep) == USB_ENDPOINT_XFER_BULK) + ar->usb_ep_cmd_is_bulk = true; + } + usb_set_intfdata(intf, ar); SET_IEEE80211_DEV(ar->hw, &intf->dev); --- linux-3.13.0.orig/drivers/net/wireless/b43/b43.h +++ linux-3.13.0/drivers/net/wireless/b43/b43.h @@ -731,8 +731,6 @@ struct b43_request_fw_context { /* The device we are requesting the fw for. */ struct b43_wldev *dev; - /* a completion event structure needed if this call is asynchronous */ - struct completion fw_load_complete; /* a pointer to the firmware object */ const struct firmware *blob; /* The type of firmware to request. */ @@ -809,6 +807,8 @@ struct b43_wldev { struct b43_bus_dev *dev; struct b43_wl *wl; + /* a completion event structure needed if this call is asynchronous */ + struct completion fw_load_complete; /* The device initialization status. * Use b43_status() to query. */ --- linux-3.13.0.orig/drivers/net/wireless/b43/main.c +++ linux-3.13.0/drivers/net/wireless/b43/main.c @@ -2070,6 +2070,7 @@ static void b43_release_firmware(struct b43_wldev *dev) { + complete(&dev->fw_load_complete); b43_do_release_fw(&dev->fw.ucode); b43_do_release_fw(&dev->fw.pcm); b43_do_release_fw(&dev->fw.initvals); @@ -2095,7 +2096,7 @@ struct b43_request_fw_context *ctx = context; ctx->blob = firmware; - complete(&ctx->fw_load_complete); + complete(&ctx->dev->fw_load_complete); } int b43_do_request_fw(struct b43_request_fw_context *ctx, @@ -2142,7 +2143,7 @@ } if (async) { /* do this part asynchronously */ - init_completion(&ctx->fw_load_complete); + init_completion(&ctx->dev->fw_load_complete); err = request_firmware_nowait(THIS_MODULE, 1, ctx->fwname, ctx->dev->dev->dev, GFP_KERNEL, ctx, b43_fw_cb); @@ -2150,12 +2151,11 @@ pr_err("Unable to load firmware\n"); return err; } - /* stall here until fw ready */ - wait_for_completion(&ctx->fw_load_complete); + wait_for_completion(&ctx->dev->fw_load_complete); if (ctx->blob) goto fw_ready; /* On some ARM systems, the async request will fail, but the next sync - * request works. For this reason, we dall through here + * request works. For this reason, we fall through here */ } err = request_firmware(&ctx->blob, ctx->fwname, @@ -2424,6 +2424,7 @@ static int b43_one_core_attach(struct b43_bus_dev *dev, struct b43_wl *wl); static void b43_one_core_detach(struct b43_bus_dev *dev); +static int b43_rng_init(struct b43_wl *wl); static void b43_request_firmware(struct work_struct *work) { @@ -2475,6 +2476,10 @@ goto err_one_core_detach; wl->hw_registred = true; b43_leds_register(wl->current_dev); + + /* Register HW RNG driver */ + b43_rng_init(wl); + goto out; err_one_core_detach: @@ -4636,9 +4641,6 @@ if (!dev || b43_status(dev) != B43_STAT_INITIALIZED) return; - /* Unregister HW RNG driver */ - b43_rng_exit(dev->wl); - b43_set_status(dev, B43_STAT_UNINIT); /* Stop the microcode PSM. */ @@ -4795,9 +4797,6 @@ b43_set_status(dev, B43_STAT_INITIALIZED); - /* Register HW RNG driver */ - b43_rng_init(dev->wl); - out: return err; @@ -5464,6 +5463,9 @@ b43_one_core_detach(wldev->dev); + /* Unregister HW RNG driver */ + b43_rng_exit(wl); + b43_leds_unregister(wl); ieee80211_free_hw(wl->hw); @@ -5541,6 +5543,9 @@ b43_one_core_detach(dev); + /* Unregister HW RNG driver */ + b43_rng_exit(wl); + if (list_empty(&wl->devlist)) { b43_leds_unregister(wl); /* Last core on the chip unregistered. --- linux-3.13.0.orig/drivers/net/wireless/b43/phy_n.c +++ linux-3.13.0/drivers/net/wireless/b43/phy_n.c @@ -5176,22 +5176,22 @@ int ch = new_channel->hw_value; u16 old_band_5ghz; - u32 tmp32; + u16 tmp16; old_band_5ghz = b43_phy_read(dev, B43_NPHY_BANDCTL) & B43_NPHY_BANDCTL_5GHZ; if (new_channel->band == IEEE80211_BAND_5GHZ && !old_band_5ghz) { - tmp32 = b43_read32(dev, B43_MMIO_PSM_PHY_HDR); - b43_write32(dev, B43_MMIO_PSM_PHY_HDR, tmp32 | 4); + tmp16 = b43_read16(dev, B43_MMIO_PSM_PHY_HDR); + b43_write16(dev, B43_MMIO_PSM_PHY_HDR, tmp16 | 4); b43_phy_set(dev, B43_PHY_B_BBCFG, 0xC000); - b43_write32(dev, B43_MMIO_PSM_PHY_HDR, tmp32); + b43_write16(dev, B43_MMIO_PSM_PHY_HDR, tmp16); b43_phy_set(dev, B43_NPHY_BANDCTL, B43_NPHY_BANDCTL_5GHZ); } else if (new_channel->band == IEEE80211_BAND_2GHZ && old_band_5ghz) { b43_phy_mask(dev, B43_NPHY_BANDCTL, ~B43_NPHY_BANDCTL_5GHZ); - tmp32 = b43_read32(dev, B43_MMIO_PSM_PHY_HDR); - b43_write32(dev, B43_MMIO_PSM_PHY_HDR, tmp32 | 4); + tmp16 = b43_read16(dev, B43_MMIO_PSM_PHY_HDR); + b43_write16(dev, B43_MMIO_PSM_PHY_HDR, tmp16 | 4); b43_phy_mask(dev, B43_PHY_B_BBCFG, 0x3FFF); - b43_write32(dev, B43_MMIO_PSM_PHY_HDR, tmp32); + b43_write16(dev, B43_MMIO_PSM_PHY_HDR, tmp16); } b43_chantab_phy_upload(dev, e); --- linux-3.13.0.orig/drivers/net/wireless/b43/xmit.c +++ linux-3.13.0/drivers/net/wireless/b43/xmit.c @@ -810,9 +810,13 @@ break; case B43_PHYTYPE_G: status.band = IEEE80211_BAND_2GHZ; - /* chanid is the radio channel cookie value as used - * to tune the radio. */ - status.freq = chanid + 2400; + /* Somewhere between 478.104 and 508.1084 firmware for G-PHY + * has been modified to be compatible with N-PHY and others. + */ + if (dev->fw.rev >= 508) + status.freq = ieee80211_channel_to_frequency(chanid, status.band); + else + status.freq = chanid + 2400; break; case B43_PHYTYPE_N: case B43_PHYTYPE_LP: @@ -821,10 +825,10 @@ * channel number in b43. */ if (chanstat & B43_RX_CHAN_5GHZ) { status.band = IEEE80211_BAND_5GHZ; - status.freq = b43_freq_to_channel_5ghz(chanid); + status.freq = b43_channel_to_freq_5ghz(chanid); } else { status.band = IEEE80211_BAND_2GHZ; - status.freq = b43_freq_to_channel_2ghz(chanid); + status.freq = b43_channel_to_freq_2ghz(chanid); } break; default: --- linux-3.13.0.orig/drivers/net/wireless/b43legacy/main.c +++ linux-3.13.0/drivers/net/wireless/b43legacy/main.c @@ -3919,6 +3919,7 @@ * as the ieee80211 unreg will destroy the workqueue. */ cancel_work_sync(&wldev->restart_work); cancel_work_sync(&wl->firmware_load); + complete(&wldev->fw_load_complete); B43legacy_WARN_ON(!wl); if (!wldev->fw.ucode) --- linux-3.13.0.orig/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c +++ linux-3.13.0/drivers/net/wireless/brcm80211/brcmsmac/mac80211_if.c @@ -426,6 +426,12 @@ bool blocked; int err; + if (!wl->ucode.bcm43xx_bomminor) { + err = brcms_request_fw(wl, wl->wlc->hw->d11core); + if (err) + return -ENOENT; + } + ieee80211_wake_queues(hw); spin_lock_bh(&wl->lock); blocked = brcms_rfkill_set_hw_state(wl); @@ -433,14 +439,6 @@ if (!blocked) wiphy_rfkill_stop_polling(wl->pub->ieee_hw->wiphy); - if (!wl->ucode.bcm43xx_bomminor) { - err = brcms_request_fw(wl, wl->wlc->hw->d11core); - if (err) { - brcms_remove(wl->wlc->hw->d11core); - return -ENOENT; - } - } - spin_lock_bh(&wl->lock); /* avoid acknowledging frames before a non-monitor device is added */ wl->mute_tx = true; @@ -899,7 +897,8 @@ return result; } -static void brcms_ops_flush(struct ieee80211_hw *hw, u32 queues, bool drop) +static void brcms_ops_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + u32 queues, bool drop) { struct brcms_info *wl = hw->priv; int ret; --- linux-3.13.0.orig/drivers/net/wireless/cw1200/sta.c +++ linux-3.13.0/drivers/net/wireless/cw1200/sta.c @@ -935,7 +935,8 @@ return ret; } -void cw1200_flush(struct ieee80211_hw *hw, u32 queues, bool drop) +void cw1200_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + u32 queues, bool drop) { struct cw1200_common *priv = hw->priv; --- linux-3.13.0.orig/drivers/net/wireless/cw1200/sta.h +++ linux-3.13.0/drivers/net/wireless/cw1200/sta.h @@ -40,7 +40,8 @@ int cw1200_set_rts_threshold(struct ieee80211_hw *hw, u32 value); -void cw1200_flush(struct ieee80211_hw *hw, u32 queues, bool drop); +void cw1200_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + u32 queues, bool drop); u64 cw1200_prepare_multicast(struct ieee80211_hw *hw, struct netdev_hw_addr_list *mc_list); --- linux-3.13.0.orig/drivers/net/wireless/hostap/hostap_hw.c +++ linux-3.13.0/drivers/net/wireless/hostap/hostap_hw.c @@ -69,7 +69,7 @@ module_param_string(essid, essid, sizeof(essid), 0444); MODULE_PARM_DESC(essid, "Host AP's ESSID"); -static int iw_mode[MAX_PARM_DEVICES] = { IW_MODE_MASTER, DEF_INTS }; +static int iw_mode[MAX_PARM_DEVICES] = { IW_MODE_INFRA, DEF_INTS }; module_param_array(iw_mode, int, NULL, 0444); MODULE_PARM_DESC(iw_mode, "Initial operation mode"); --- linux-3.13.0.orig/drivers/net/wireless/iwlegacy/common.c +++ linux-3.13.0/drivers/net/wireless/iwlegacy/common.c @@ -4702,7 +4702,8 @@ } EXPORT_SYMBOL(il_mac_change_interface); -void il_mac_flush(struct ieee80211_hw *hw, u32 queues, bool drop) +void il_mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + u32 queues, bool drop) { struct il_priv *il = hw->priv; unsigned long timeout = jiffies + msecs_to_jiffies(500); --- linux-3.13.0.orig/drivers/net/wireless/iwlegacy/common.h +++ linux-3.13.0/drivers/net/wireless/iwlegacy/common.h @@ -1722,7 +1722,8 @@ struct ieee80211_vif *vif); int il_mac_change_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum nl80211_iftype newtype, bool newp2p); -void il_mac_flush(struct ieee80211_hw *hw, u32 queues, bool drop); +void il_mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + u32 queues, bool drop); int il_alloc_txq_mem(struct il_priv *il); void il_free_txq_mem(struct il_priv *il); --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/dvm/commands.h +++ linux-3.13.0/drivers/net/wireless/iwlwifi/dvm/commands.h @@ -966,21 +966,21 @@ /* WiFi queues mask */ -#define IWL_SCD_BK_MSK cpu_to_le32(BIT(0)) -#define IWL_SCD_BE_MSK cpu_to_le32(BIT(1)) -#define IWL_SCD_VI_MSK cpu_to_le32(BIT(2)) -#define IWL_SCD_VO_MSK cpu_to_le32(BIT(3)) -#define IWL_SCD_MGMT_MSK cpu_to_le32(BIT(3)) +#define IWL_SCD_BK_MSK BIT(0) +#define IWL_SCD_BE_MSK BIT(1) +#define IWL_SCD_VI_MSK BIT(2) +#define IWL_SCD_VO_MSK BIT(3) +#define IWL_SCD_MGMT_MSK BIT(3) /* PAN queues mask */ -#define IWL_PAN_SCD_BK_MSK cpu_to_le32(BIT(4)) -#define IWL_PAN_SCD_BE_MSK cpu_to_le32(BIT(5)) -#define IWL_PAN_SCD_VI_MSK cpu_to_le32(BIT(6)) -#define IWL_PAN_SCD_VO_MSK cpu_to_le32(BIT(7)) -#define IWL_PAN_SCD_MGMT_MSK cpu_to_le32(BIT(7)) -#define IWL_PAN_SCD_MULTICAST_MSK cpu_to_le32(BIT(8)) +#define IWL_PAN_SCD_BK_MSK BIT(4) +#define IWL_PAN_SCD_BE_MSK BIT(5) +#define IWL_PAN_SCD_VI_MSK BIT(6) +#define IWL_PAN_SCD_VO_MSK BIT(7) +#define IWL_PAN_SCD_MGMT_MSK BIT(7) +#define IWL_PAN_SCD_MULTICAST_MSK BIT(8) -#define IWL_AGG_TX_QUEUE_MSK cpu_to_le32(0xffc00) +#define IWL_AGG_TX_QUEUE_MSK 0xffc00 #define IWL_DROP_ALL BIT(1) @@ -1005,12 +1005,17 @@ * 1: Dump multiple MSDU according to PS, INVALID STA, TTL, TID disable. * 2: Dump all FIFO */ -struct iwl_txfifo_flush_cmd { +struct iwl_txfifo_flush_cmd_v3 { __le32 queue_control; __le16 flush_control; __le16 reserved; } __packed; +struct iwl_txfifo_flush_cmd_v2 { + __le16 queue_control; + __le16 flush_control; +} __packed; + /* * REPLY_WEP_KEY = 0x20 */ --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/dvm/lib.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/dvm/lib.c @@ -138,38 +138,38 @@ */ int iwlagn_txfifo_flush(struct iwl_priv *priv, u32 scd_q_msk) { - struct iwl_txfifo_flush_cmd flush_cmd; - struct iwl_host_cmd cmd = { - .id = REPLY_TXFIFO_FLUSH, - .len = { sizeof(struct iwl_txfifo_flush_cmd), }, - .flags = CMD_SYNC, - .data = { &flush_cmd, }, + struct iwl_txfifo_flush_cmd_v3 flush_cmd_v3 = { + .flush_control = cpu_to_le16(IWL_DROP_ALL), + }; + struct iwl_txfifo_flush_cmd_v2 flush_cmd_v2 = { + .flush_control = cpu_to_le16(IWL_DROP_ALL), }; - memset(&flush_cmd, 0, sizeof(flush_cmd)); + u32 queue_control = IWL_SCD_VO_MSK | IWL_SCD_VI_MSK | + IWL_SCD_BE_MSK | IWL_SCD_BK_MSK | IWL_SCD_MGMT_MSK; - flush_cmd.queue_control = IWL_SCD_VO_MSK | IWL_SCD_VI_MSK | - IWL_SCD_BE_MSK | IWL_SCD_BK_MSK | - IWL_SCD_MGMT_MSK; if ((priv->valid_contexts != BIT(IWL_RXON_CTX_BSS))) - flush_cmd.queue_control |= IWL_PAN_SCD_VO_MSK | - IWL_PAN_SCD_VI_MSK | - IWL_PAN_SCD_BE_MSK | - IWL_PAN_SCD_BK_MSK | - IWL_PAN_SCD_MGMT_MSK | - IWL_PAN_SCD_MULTICAST_MSK; + queue_control |= IWL_PAN_SCD_VO_MSK | IWL_PAN_SCD_VI_MSK | + IWL_PAN_SCD_BE_MSK | IWL_PAN_SCD_BK_MSK | + IWL_PAN_SCD_MGMT_MSK | + IWL_PAN_SCD_MULTICAST_MSK; if (priv->nvm_data->sku_cap_11n_enable) - flush_cmd.queue_control |= IWL_AGG_TX_QUEUE_MSK; + queue_control |= IWL_AGG_TX_QUEUE_MSK; if (scd_q_msk) - flush_cmd.queue_control = cpu_to_le32(scd_q_msk); - - IWL_DEBUG_INFO(priv, "queue control: 0x%x\n", - flush_cmd.queue_control); - flush_cmd.flush_control = cpu_to_le16(IWL_DROP_ALL); + queue_control = scd_q_msk; - return iwl_dvm_send_cmd(priv, &cmd); + IWL_DEBUG_INFO(priv, "queue control: 0x%x\n", queue_control); + flush_cmd_v3.queue_control = cpu_to_le32(queue_control); + flush_cmd_v2.queue_control = cpu_to_le16((u16)queue_control); + + if (IWL_UCODE_API(priv->fw->ucode_ver) > 2) + return iwl_dvm_send_cmd_pdu(priv, REPLY_TXFIFO_FLUSH, 0, + sizeof(flush_cmd_v3), + &flush_cmd_v3); + return iwl_dvm_send_cmd_pdu(priv, REPLY_TXFIFO_FLUSH, 0, + sizeof(flush_cmd_v2), &flush_cmd_v2); } void iwlagn_dev_txfifo_flush(struct iwl_priv *priv) --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/dvm/mac80211.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/dvm/mac80211.c @@ -704,6 +704,24 @@ return ret; } +static inline bool iwl_enable_rx_ampdu(const struct iwl_cfg *cfg) +{ + if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_RXAGG) + return false; + return true; +} + +static inline bool iwl_enable_tx_ampdu(const struct iwl_cfg *cfg) +{ + if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_TXAGG) + return false; + if (iwlwifi_mod_params.disable_11n & IWL_ENABLE_HT_TXAGG) + return true; + + /* disabled by default */ + return false; +} + static int iwlagn_mac_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, @@ -725,7 +743,7 @@ switch (action) { case IEEE80211_AMPDU_RX_START: - if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_RXAGG) + if (!iwl_enable_rx_ampdu(priv->cfg)) break; IWL_DEBUG_HT(priv, "start Rx\n"); ret = iwl_sta_rx_agg_start(priv, sta, tid, *ssn); @@ -737,7 +755,7 @@ case IEEE80211_AMPDU_TX_START: if (!priv->trans->ops->txq_enable) break; - if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_TXAGG) + if (!iwl_enable_tx_ampdu(priv->cfg)) break; IWL_DEBUG_HT(priv, "start Tx\n"); ret = iwlagn_tx_agg_start(priv, vif, sta, tid, ssn); @@ -1081,9 +1099,11 @@ FIF_BCN_PRBRESP_PROMISC | FIF_CONTROL; } -static void iwlagn_mac_flush(struct ieee80211_hw *hw, u32 queues, bool drop) +static void iwlagn_mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + u32 queues, bool drop) { struct iwl_priv *priv = IWL_MAC80211_GET_DVM(hw); + u32 scd_queues; mutex_lock(&priv->mutex); IWL_DEBUG_MAC80211(priv, "enter\n"); @@ -1097,18 +1117,19 @@ goto done; } - /* - * mac80211 will not push any more frames for transmit - * until the flush is completed - */ - if (drop) { - IWL_DEBUG_MAC80211(priv, "send flush command\n"); - if (iwlagn_txfifo_flush(priv, 0)) { - IWL_ERR(priv, "flush request fail\n"); - goto done; - } + scd_queues = BIT(priv->cfg->base_params->num_of_queues) - 1; + scd_queues &= ~(BIT(IWL_IPAN_CMD_QUEUE_NUM) | + BIT(IWL_DEFAULT_CMD_QUEUE_NUM)); + + if (vif) + scd_queues &= ~BIT(vif->hw_queue[IEEE80211_AC_VO]); + + IWL_DEBUG_TX_QUEUES(priv, "Flushing SCD queues: 0x%x\n", scd_queues); + if (iwlagn_txfifo_flush(priv, scd_queues)) { + IWL_ERR(priv, "flush request fail\n"); + goto done; } - IWL_DEBUG_MAC80211(priv, "wait transmit/flush all frames\n"); + IWL_DEBUG_TX_QUEUES(priv, "wait transmit/flush all frames\n"); iwl_trans_wait_tx_queue_empty(priv->trans); done: mutex_unlock(&priv->mutex); --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/dvm/main.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/dvm/main.c @@ -252,13 +252,17 @@ struct iwl_priv *priv = container_of(work, struct iwl_priv, bt_runtime_config); + mutex_lock(&priv->mutex); if (test_bit(STATUS_EXIT_PENDING, &priv->status)) - return; + goto out; /* dont send host command if rf-kill is on */ if (!iwl_is_ready_rf(priv)) - return; + goto out; + iwlagn_send_advance_bt_config(priv); +out: + mutex_unlock(&priv->mutex); } static void iwl_bg_bt_full_concurrency(struct work_struct *work) --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/dvm/sta.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/dvm/sta.c @@ -590,6 +590,7 @@ sizeof(priv->tid_data[sta_id][tid])); priv->stations[sta_id].used &= ~IWL_STA_DRIVER_ACTIVE; + priv->stations[sta_id].used &= ~IWL_STA_UCODE_INPROGRESS; priv->num_stations--; --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/dvm/tx.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/dvm/tx.c @@ -1291,8 +1291,6 @@ struct iwl_compressed_ba_resp *ba_resp = (void *)pkt->data; struct iwl_ht_agg *agg; struct sk_buff_head reclaimed_skbs; - struct ieee80211_tx_info *info; - struct ieee80211_hdr *hdr; struct sk_buff *skb; int sta_id; int tid; @@ -1379,22 +1377,28 @@ freed = 0; skb_queue_walk(&reclaimed_skbs, skb) { - hdr = (struct ieee80211_hdr *)skb->data; + struct ieee80211_hdr *hdr = (void *)skb->data; + struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); if (ieee80211_is_data_qos(hdr->frame_control)) freed++; else WARN_ON_ONCE(1); - info = IEEE80211_SKB_CB(skb); iwl_trans_free_tx_cmd(priv->trans, info->driver_data[1]); + memset(&info->status, 0, sizeof(info->status)); + /* Packet was transmitted successfully, failures come as single + * frames because before failing a frame the firmware transmits + * it without aggregation at least once. + */ + info->flags |= IEEE80211_TX_STAT_ACK; + if (freed == 1) { /* this is the first skb we deliver in this batch */ /* put the rate scaling data there */ info = IEEE80211_SKB_CB(skb); memset(&info->status, 0, sizeof(info->status)); - info->flags |= IEEE80211_TX_STAT_ACK; info->flags |= IEEE80211_TX_STAT_AMPDU; info->status.ampdu_ack_len = ba_resp->txed_2_done; info->status.ampdu_len = ba_resp->txed; --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/iwl-7000.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/iwl-7000.c @@ -223,3 +223,4 @@ MODULE_FIRMWARE(IWL7260_MODULE_FIRMWARE(IWL7260_UCODE_API_OK)); MODULE_FIRMWARE(IWL3160_MODULE_FIRMWARE(IWL3160_UCODE_API_OK)); +MODULE_FIRMWARE(IWL7265_MODULE_FIRMWARE(IWL7260_UCODE_API_OK)); --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/iwl-config.h +++ linux-3.13.0/drivers/net/wireless/iwlwifi/iwl-config.h @@ -119,6 +119,8 @@ #define IWL_LONG_WD_TIMEOUT 10000 #define IWL_MAX_WD_TIMEOUT 120000 +#define IWL_DEFAULT_MAX_TX_POWER 22 + /* Antenna presence definitions */ #define ANT_NONE 0x0 #define ANT_A BIT(0) --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/iwl-drv.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/iwl-drv.c @@ -1247,7 +1247,7 @@ MODULE_PARM_DESC(swcrypto, "using crypto in software (default 0 [hardware])"); module_param_named(11n_disable, iwlwifi_mod_params.disable_11n, uint, S_IRUGO); MODULE_PARM_DESC(11n_disable, - "disable 11n functionality, bitmap: 1: full, 2: agg TX, 4: agg RX"); + "disable 11n functionality, bitmap: 1: full, 2: disable agg TX, 4: disable agg RX, 8 enable agg TX"); module_param_named(amsdu_size_8K, iwlwifi_mod_params.amsdu_size_8K, int, S_IRUGO); MODULE_PARM_DESC(amsdu_size_8K, "enable 8K amsdu size (default 0)"); --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/iwl-fw.h +++ linux-3.13.0/drivers/net/wireless/iwlwifi/iwl-fw.h @@ -88,7 +88,6 @@ * connection when going back to D0 * @IWL_UCODE_TLV_FLAGS_NEW_NSOFFL_SMALL: new NS offload (small version) * @IWL_UCODE_TLV_FLAGS_NEW_NSOFFL_LARGE: new NS offload (large version) - * @IWL_UCODE_TLV_FLAGS_SCHED_SCAN: this uCode image supports scheduled scan. * @IWL_UCODE_TLV_FLAGS_STA_KEY_CMD: new ADD_STA and ADD_STA_KEY command API * @IWL_UCODE_TLV_FLAGS_DEVICE_PS_CMD: support device wide power command * containing CAM (Continuous Active Mode) indication. @@ -110,7 +109,6 @@ IWL_UCODE_TLV_FLAGS_D3_CONTINUITY_API = BIT(14), IWL_UCODE_TLV_FLAGS_NEW_NSOFFL_SMALL = BIT(15), IWL_UCODE_TLV_FLAGS_NEW_NSOFFL_LARGE = BIT(16), - IWL_UCODE_TLV_FLAGS_SCHED_SCAN = BIT(17), IWL_UCODE_TLV_FLAGS_STA_KEY_CMD = BIT(19), IWL_UCODE_TLV_FLAGS_DEVICE_PS_CMD = BIT(20), IWL_UCODE_TLV_FLAGS_UAPSD_SUPPORT = BIT(24), --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/iwl-modparams.h +++ linux-3.13.0/drivers/net/wireless/iwlwifi/iwl-modparams.h @@ -79,9 +79,12 @@ IWL_POWER_NUM }; -#define IWL_DISABLE_HT_ALL BIT(0) -#define IWL_DISABLE_HT_TXAGG BIT(1) -#define IWL_DISABLE_HT_RXAGG BIT(2) +enum iwl_disable_11n { + IWL_DISABLE_HT_ALL = BIT(0), + IWL_DISABLE_HT_TXAGG = BIT(1), + IWL_DISABLE_HT_RXAGG = BIT(2), + IWL_ENABLE_HT_TXAGG = BIT(3), +}; /** * struct iwl_mod_params @@ -90,7 +93,7 @@ * * @sw_crypto: using hardware encryption, default = 0 * @disable_11n: disable 11n capabilities, default = 0, - * use IWL_DISABLE_HT_* constants + * use IWL_[DIS,EN]ABLE_HT_* constants * @amsdu_size_8K: enable 8K amsdu size, default = 0 * @restart_fw: restart firmware, default = 1 * @wd_disable: enable stuck queue check, default = 0 --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/iwl-nvm-parse.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/iwl-nvm-parse.c @@ -118,8 +118,6 @@ #define LAST_2GHZ_HT_PLUS 9 #define LAST_5GHZ_HT 161 -#define DEFAULT_MAX_TX_POWER 16 - /* rate data (static) */ static struct ieee80211_rate iwl_cfg80211_rates[] = { { .bitrate = 1 * 10, .hw_value = 0, .hw_value_short = 0, }, @@ -182,6 +180,11 @@ for (ch_idx = 0; ch_idx < IWL_NUM_CHANNELS; ch_idx++) { ch_flags = __le16_to_cpup(nvm_ch_flags + ch_idx); + + if (ch_idx >= NUM_2GHZ_CHANNELS && + !data->sku_cap_band_52GHz_enable) + ch_flags &= ~NVM_CHANNEL_VALID; + if (!(ch_flags & NVM_CHANNEL_VALID)) { IWL_DEBUG_EEPROM(dev, "Ch. %d Flags %x [%sGHz] - No traffic\n", @@ -237,7 +240,7 @@ * Default value - highest tx power value. max_power * is not used in mvm, and is used for backwards compatibility */ - channel->max_power = DEFAULT_MAX_TX_POWER; + channel->max_power = IWL_DEFAULT_MAX_TX_POWER; is_5ghz = channel->band == IEEE80211_BAND_5GHZ; IWL_DEBUG_EEPROM(dev, "Ch. %d [%sGHz] %s%s%s%s%s%s(0x%02x %ddBm): Ad-Hoc %ssupported\n", --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/iwl-prph.h +++ linux-3.13.0/drivers/net/wireless/iwlwifi/iwl-prph.h @@ -274,4 +274,8 @@ /*********************** END TX SCHEDULER *************************************/ +/* Oscillator clock */ +#define OSC_CLK (0xa04068) +#define OSC_CLK_FORCE_CONTROL (0x8) + #endif /* __iwl_prph_h__ */ --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/iwl-trans.h +++ linux-3.13.0/drivers/net/wireless/iwlwifi/iwl-trans.h @@ -484,6 +484,7 @@ * Set during transport allocation. * @hw_id_str: a string with info about HW ID. Set during transport allocation. * @pm_support: set to true in start_hw if link pm is supported + * @ltr_enabled: set to true if the LTR is enabled * @dev_cmd_pool: pool for Tx cmd allocation - for internal use only. * The user should use iwl_trans_{alloc,free}_tx_cmd. * @dev_cmd_headroom: room needed for the transport's private use before the @@ -508,6 +509,7 @@ u8 rx_mpdu_cmd, rx_mpdu_cmd_hdr_size; bool pm_support; + bool ltr_enabled; /* The following fields are internal only */ struct kmem_cache *dev_cmd_pool; --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/mvm/bt-coex.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/mvm/bt-coex.c @@ -871,8 +871,11 @@ lockdep_assert_held(&mvm->mutex); - /* Rssi update while not associated ?! */ - if (WARN_ON_ONCE(mvmvif->ap_sta_id == IWL_MVM_STATION_COUNT)) + /* + * Rssi update while not associated - can happen since the statistics + * are handled asynchronously + */ + if (mvmvif->ap_sta_id == IWL_MVM_STATION_COUNT) return; /* No BT - reports should be disabled */ --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/mvm/debugfs.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/mvm/debugfs.c @@ -63,6 +63,7 @@ #include "mvm.h" #include "sta.h" #include "iwl-io.h" +#include "fw-error-dump.h" struct iwl_dbgfs_mvm_ctx { struct iwl_mvm *mvm; @@ -139,6 +140,48 @@ return ret; } +static int iwl_dbgfs_fw_error_dump_open(struct inode *inode, struct file *file) +{ + struct iwl_mvm *mvm = inode->i_private; + int ret; + + if (!mvm) + return -EINVAL; + + mutex_lock(&mvm->mutex); + if (!mvm->fw_error_dump) { + ret = -ENODATA; + goto out; + } + + file->private_data = mvm->fw_error_dump; + mvm->fw_error_dump = NULL; + ret = 0; + +out: + mutex_unlock(&mvm->mutex); + return ret; +} + +static ssize_t iwl_dbgfs_fw_error_dump_read(struct file *file, + char __user *user_buf, + size_t count, loff_t *ppos) +{ + struct iwl_fw_error_dump_file *dump_file = file->private_data; + + return simple_read_from_buffer(user_buf, count, ppos, + dump_file, + le32_to_cpu(dump_file->file_len)); +} + +static int iwl_dbgfs_fw_error_dump_release(struct inode *inode, + struct file *file) +{ + vfree(file->private_data); + + return 0; +} + static ssize_t iwl_dbgfs_sram_read(struct file *file, char __user *user_buf, size_t count, loff_t *ppos) { @@ -1170,6 +1213,12 @@ MVM_DEBUGFS_WRITE_FILE_OPS(fw_restart); MVM_DEBUGFS_READ_WRITE_FILE_OPS(scan_ant_rxchain); +static const struct file_operations iwl_dbgfs_fw_error_dump_ops = { + .open = iwl_dbgfs_fw_error_dump_open, + .read = iwl_dbgfs_fw_error_dump_read, + .release = iwl_dbgfs_fw_error_dump_release, +}; + #ifdef CONFIG_PM_SLEEP MVM_DEBUGFS_READ_WRITE_FILE_OPS(d3_sram); #endif @@ -1189,6 +1238,7 @@ MVM_DEBUGFS_ADD_FILE(sta_drain, mvm->debugfs_dir, S_IWUSR); MVM_DEBUGFS_ADD_FILE(sram, mvm->debugfs_dir, S_IWUSR | S_IRUSR); MVM_DEBUGFS_ADD_FILE(stations, dbgfs_dir, S_IRUSR); + MVM_DEBUGFS_ADD_FILE(fw_error_dump, dbgfs_dir, S_IRUSR); MVM_DEBUGFS_ADD_FILE(bt_notif, dbgfs_dir, S_IRUSR); MVM_DEBUGFS_ADD_FILE(bt_cmd, dbgfs_dir, S_IRUSR); if (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_DEVICE_PS_CMD) --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/mvm/fw-api-power.h +++ linux-3.13.0/drivers/net/wireless/iwlwifi/mvm/fw-api-power.h @@ -66,13 +66,46 @@ /* Power Management Commands, Responses, Notifications */ +/** + * enum iwl_ltr_config_flags - masks for LTR config command flags + * @LTR_CFG_FLAG_FEATURE_ENABLE: Feature operational status + * @LTR_CFG_FLAG_HW_DIS_ON_SHADOW_REG_ACCESS: allow LTR change on shadow + * memory access + * @LTR_CFG_FLAG_HW_EN_SHRT_WR_THROUGH: allow LTR msg send on ANY LTR + * reg change + * @LTR_CFG_FLAG_HW_DIS_ON_D0_2_D3: allow LTR msg send on transition from + * D0 to D3 + * @LTR_CFG_FLAG_SW_SET_SHORT: fixed static short LTR register + * @LTR_CFG_FLAG_SW_SET_LONG: fixed static short LONG register + * @LTR_CFG_FLAG_DENIE_C10_ON_PD: allow going into C10 on PD + */ +enum iwl_ltr_config_flags { + LTR_CFG_FLAG_FEATURE_ENABLE = BIT(0), + LTR_CFG_FLAG_HW_DIS_ON_SHADOW_REG_ACCESS = BIT(1), + LTR_CFG_FLAG_HW_EN_SHRT_WR_THROUGH = BIT(2), + LTR_CFG_FLAG_HW_DIS_ON_D0_2_D3 = BIT(3), + LTR_CFG_FLAG_SW_SET_SHORT = BIT(4), + LTR_CFG_FLAG_SW_SET_LONG = BIT(5), + LTR_CFG_FLAG_DENIE_C10_ON_PD = BIT(6), +}; + +/** + * struct iwl_ltr_config_cmd - configures the LTR + * @flags: See %enum iwl_ltr_config_flags + */ +struct iwl_ltr_config_cmd { + __le32 flags; + __le32 static_long; + __le32 static_short; +} __packed; + /* Radio LP RX Energy Threshold measured in dBm */ #define POWER_LPRX_RSSI_THRESHOLD 75 #define POWER_LPRX_RSSI_THRESHOLD_MAX 94 #define POWER_LPRX_RSSI_THRESHOLD_MIN 30 /** - * enum iwl_scan_flags - masks for power table command flags + * enum iwl_power_flags - masks for power table command flags * @POWER_FLAGS_POWER_SAVE_ENA_MSK: '1' Allow to save power by turning off * receiver and transmitter. '0' - does not allow. * @POWER_FLAGS_POWER_MANAGEMENT_ENA_MSK: '0' Driver disables power management, --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/mvm/fw-api.h +++ linux-3.13.0/drivers/net/wireless/iwlwifi/mvm/fw-api.h @@ -141,6 +141,7 @@ /* Power - legacy power table command */ POWER_TABLE_CMD = 0x77, + LTR_CONFIG = 0xee, /* Thermal Throttling*/ REPLY_THERMAL_MNG_BACKOFF = 0x7e, --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/mvm/fw-error-dump.h +++ linux-3.13.0/drivers/net/wireless/iwlwifi/mvm/fw-error-dump.h @@ -0,0 +1,106 @@ +/****************************************************************************** + * + * This file is provided under a dual BSD/GPLv2 license. When using or + * redistributing this file, you may do so under either license. + * + * GPL LICENSE SUMMARY + * + * Copyright(c) 2014 Intel Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, + * USA + * + * The full GNU General Public License is included in this distribution + * in the file called COPYING. + * + * Contact Information: + * Intel Linux Wireless + * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 + * + * BSD LICENSE + * + * Copyright(c) 2014 Intel Corporation. All rights reserved. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *****************************************************************************/ + +#ifndef __fw_error_dump_h__ +#define __fw_error_dump_h__ + +#include + +#define IWL_FW_ERROR_DUMP_BARKER 0x14789632 + +/** + * enum iwl_fw_error_dump_type - types of data in the dump file + * @IWL_FW_ERROR_DUMP_SRAM: + * @IWL_FW_ERROR_DUMP_REG: + */ +enum iwl_fw_error_dump_type { + IWL_FW_ERROR_DUMP_SRAM = 0, + IWL_FW_ERROR_DUMP_REG = 1, + + IWL_FW_ERROR_DUMP_MAX, +}; + +/** + * struct iwl_fw_error_dump_data - data for one type + * @type: %enum iwl_fw_error_dump_type + * @len: the length starting from %data - must be a multiplier of 4. + * @data: the data itself padded to be a multiplier of 4. + */ +struct iwl_fw_error_dump_data { + __le32 type; + __le32 len; + __u8 data[]; +} __packed __aligned(4); + +/** + * struct iwl_fw_error_dump_file - the layout of the header of the file + * @barker: must be %IWL_FW_ERROR_DUMP_BARKER + * @file_len: the length of all the file starting from %barker + * @data: array of %struct iwl_fw_error_dump_data + */ +struct iwl_fw_error_dump_file { + __le32 barker; + __le32 file_len; + u8 data[0]; +} __packed __aligned(4); + +#endif /* __fw_error_dump_h__ */ --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/mvm/fw.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/mvm/fw.c @@ -431,6 +431,15 @@ goto error; } + if (mvm->trans->ltr_enabled) { + struct iwl_ltr_config_cmd cmd = { + .flags = cpu_to_le32(LTR_CFG_FLAG_FEATURE_ENABLE), + }; + + WARN_ON(iwl_mvm_send_cmd_pdu(mvm, LTR_CONFIG, 0, + sizeof(cmd), &cmd)); + } + ret = iwl_mvm_power_update_device_mode(mvm); if (ret) goto error; --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/mvm/mac-ctxt.c @@ -566,13 +566,8 @@ if (vif->bss_conf.qos) cmd->qos_flags |= cpu_to_le32(MAC_QOS_FLG_UPDATE_EDCA); - /* Don't use cts to self as the fw doesn't support it currently. */ - if (vif->bss_conf.use_cts_prot) { + if (vif->bss_conf.use_cts_prot) cmd->protection_flags |= cpu_to_le32(MAC_PROT_FLG_TGG_PROTECT); - if (IWL_UCODE_API(mvm->fw->ucode_ver) >= 8) - cmd->protection_flags |= - cpu_to_le32(MAC_PROT_FLG_SELF_CTS_EN); - } /* * I think that we should enable these 2 flags regardless the HT PROT @@ -1153,10 +1148,18 @@ static void iwl_mvm_beacon_loss_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) { - u16 *id = _data; + struct iwl_missed_beacons_notif *missed_beacons = _data; struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif); - if (mvmvif->id == *id) + if (mvmvif->id != (u16)le32_to_cpu(missed_beacons->mac_id)) + return; + + /* + * TODO: the threshold should be adjusted based on latency conditions, + * and/or in case of a CS flow on one of the other AP vifs. + */ + if (le32_to_cpu(missed_beacons->consec_missed_beacons_since_last_rx) > + IWL_MVM_MISSED_BEACONS_THRESHOLD) ieee80211_beacon_loss(vif); } @@ -1165,12 +1168,19 @@ struct iwl_device_cmd *cmd) { struct iwl_rx_packet *pkt = rxb_addr(rxb); - struct iwl_missed_beacons_notif *missed_beacons = (void *)pkt->data; - u16 id = (u16)le32_to_cpu(missed_beacons->mac_id); + struct iwl_missed_beacons_notif *mb = (void *)pkt->data; + + IWL_DEBUG_INFO(mvm, + "missed bcn mac_id=%u, consecutive=%u (%u, %u, %u)\n", + le32_to_cpu(mb->mac_id), + le32_to_cpu(mb->consec_missed_beacons), + le32_to_cpu(mb->consec_missed_beacons_since_last_rx), + le32_to_cpu(mb->num_recvd_beacons), + le32_to_cpu(mb->num_expected_beacons)); ieee80211_iterate_active_interfaces_atomic(mvm->hw, IEEE80211_IFACE_ITER_NORMAL, iwl_mvm_beacon_loss_iterator, - &id); + mb); return 0; } --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/mvm/mac80211.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/mvm/mac80211.c @@ -179,7 +179,7 @@ !iwlwifi_mod_params.sw_crypto) hw->flags |= IEEE80211_HW_MFP_CAPABLE; - if (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_UAPSD_SUPPORT) { + if (0 && mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_UAPSD_SUPPORT) { hw->flags |= IEEE80211_HW_SUPPORTS_UAPSD; hw->uapsd_queues = IWL_UAPSD_AC_INFO; hw->uapsd_max_sp_len = IWL_UAPSD_MAX_SP; @@ -246,13 +246,13 @@ else hw->wiphy->flags &= ~WIPHY_FLAG_PS_ON_BY_DEFAULT; - if (mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_SCHED_SCAN) { + if (IWL_UCODE_API(mvm->fw->ucode_ver) >= 10) { hw->wiphy->flags |= WIPHY_FLAG_SUPPORTS_SCHED_SCAN; hw->wiphy->max_sched_scan_ssids = PROBE_OPTION_MAX; hw->wiphy->max_match_sets = IWL_SCAN_MAX_PROFILES; /* we create the 802.11 header and zero length SSID IE. */ hw->wiphy->max_sched_scan_ie_len = - SCAN_OFFLOAD_PROBE_REQ_SIZE - 24 - 2; + SCAN_OFFLOAD_PROBE_REQ_SIZE - 24 - 2; } hw->wiphy->features |= NL80211_FEATURE_P2P_GO_CTWIN | @@ -321,6 +321,24 @@ ieee80211_free_txskb(hw, skb); } +static inline bool iwl_enable_rx_ampdu(const struct iwl_cfg *cfg) +{ + if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_RXAGG) + return false; + return true; +} + +static inline bool iwl_enable_tx_ampdu(const struct iwl_cfg *cfg) +{ + if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_TXAGG) + return false; + if (iwlwifi_mod_params.disable_11n & IWL_ENABLE_HT_TXAGG) + return true; + + /* enabled by default */ + return true; +} + static int iwl_mvm_mac_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, enum ieee80211_ampdu_mlme_action action, @@ -340,7 +358,7 @@ switch (action) { case IEEE80211_AMPDU_RX_START: - if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_RXAGG) { + if (!iwl_enable_rx_ampdu(mvm->cfg)) { ret = -EINVAL; break; } @@ -350,7 +368,7 @@ ret = iwl_mvm_sta_rx_agg(mvm, sta, tid, 0, false); break; case IEEE80211_AMPDU_TX_START: - if (iwlwifi_mod_params.disable_11n & IWL_DISABLE_HT_TXAGG) { + if (!iwl_enable_tx_ampdu(mvm->cfg)) { ret = -EINVAL; break; } @@ -397,6 +415,14 @@ static void iwl_mvm_restart_cleanup(struct iwl_mvm *mvm) { +#ifdef CONFIG_IWLWIFI_DEBUGFS + static char *env[] = { "DRIVER=iwlwifi", "EVENT=error_dump", NULL }; + + /* notify the userspace about the error we had */ + if (iwl_mvm_fw_error_dump(mvm)) + kobject_uevent_env(&mvm->hw->wiphy->dev.kobj, KOBJ_CHANGE, env); +#endif + iwl_trans_stop_device(mvm->trans); iwl_trans_stop_hw(mvm->trans, false); @@ -601,7 +627,7 @@ if (ret) goto out_remove_mac; - if (!mvm->bf_allowed_vif && + if (!mvm->bf_allowed_vif && false && vif->type == NL80211_IFTYPE_STATION && !vif->p2p && mvm->fw->ucode_capa.flags & IWL_UCODE_TLV_FLAGS_BF_UPDATED){ mvm->bf_allowed_vif = mvmvif; @@ -802,7 +828,7 @@ memcpy(mcast_filter_cmd.bssid, vif->bss_conf.bssid, ETH_ALEN); - return iwl_mvm_send_cmd_pdu(mvm, MCAST_FILTER_CMD, CMD_SYNC, + return iwl_mvm_send_cmd_pdu(mvm, MCAST_FILTER_CMD, CMD_ASYNC, sizeof(mcast_filter_cmd), &mcast_filter_cmd); } --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/mvm/mvm.h +++ linux-3.13.0/drivers/net/wireless/iwlwifi/mvm/mvm.h @@ -68,6 +68,7 @@ #include #include #include +#include #include "iwl-op-mode.h" #include "iwl-trans.h" @@ -81,6 +82,7 @@ #define IWL_MVM_MAX_ADDRESSES 5 /* RSSI offset for WkP */ #define IWL_RSSI_OFFSET 50 +#define IWL_MVM_MISSED_BEACONS_THRESHOLD 8 enum iwl_mvm_tx_fifo { IWL_MVM_TX_FIFO_BK = 0, @@ -151,7 +153,7 @@ IWL_POWER_SCHEME_LP }; -#define IWL_CONN_MAX_LISTEN_INTERVAL 70 +#define IWL_CONN_MAX_LISTEN_INTERVAL 10 #define IWL_UAPSD_AC_INFO (IEEE80211_WMM_IE_STA_QOSINFO_AC_VO |\ IEEE80211_WMM_IE_STA_QOSINFO_AC_VI |\ IEEE80211_WMM_IE_STA_QOSINFO_AC_BK |\ @@ -517,6 +519,9 @@ /* -1 for always, 0 for never, >0 for that many times */ s8 restart_fw; + void *fw_error_dump; + void *fw_error_sram; + u32 fw_error_sram_len; struct led_classdev led; @@ -600,7 +605,10 @@ struct ieee80211_tx_rate *r); u8 iwl_mvm_mac80211_idx_to_hwrate(int rate_idx); void iwl_mvm_dump_nic_error_log(struct iwl_mvm *mvm); -void iwl_mvm_dump_sram(struct iwl_mvm *mvm); +#ifdef CONFIG_IWLWIFI_DEBUGFS +bool iwl_mvm_fw_error_dump(struct iwl_mvm *mvm); +void iwl_mvm_fw_error_sram_dump(struct iwl_mvm *mvm); +#endif u8 first_antenna(u8 mask); u8 iwl_mvm_next_antenna(struct iwl_mvm *mvm, u8 valid, u8 last_idx); --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/mvm/ops.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/mvm/ops.c @@ -61,6 +61,7 @@ * *****************************************************************************/ #include +#include #include #include "iwl-notif-wait.h" @@ -78,6 +79,7 @@ #include "iwl-prph.h" #include "rs.h" #include "fw-api-scan.h" +#include "fw-error-dump.h" #include "time-event.h" /* @@ -310,6 +312,7 @@ CMD(REPLY_BEACON_FILTERING_CMD), CMD(REPLY_THERMAL_MNG_BACKOFF), CMD(MAC_PM_POWER_TABLE), + CMD(LTR_CONFIG), CMD(BT_COEX_CI), }; #undef CMD @@ -470,6 +473,7 @@ out_unregister: ieee80211_unregister_hw(mvm->hw); + iwl_mvm_leds_exit(mvm); out_free: iwl_phy_db_free(mvm->phy_db); kfree(mvm->scan_cmd); @@ -491,6 +495,8 @@ ieee80211_unregister_hw(mvm->hw); kfree(mvm->scan_cmd); + vfree(mvm->fw_error_dump); + kfree(mvm->fw_error_sram); #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_IWLWIFI_DEBUGFS) kfree(mvm->d3_resume_sram); @@ -751,13 +757,66 @@ } } +#ifdef CONFIG_IWLWIFI_DEBUGFS +/* Returns true if a dump was created */ +bool iwl_mvm_fw_error_dump(struct iwl_mvm *mvm) +{ + struct iwl_fw_error_dump_file *dump_file; + struct iwl_fw_error_dump_data *dump_data; + u32 file_len; + + lockdep_assert_held(&mvm->mutex); + + /* + * Don't create an error dump if we'v already got one, but return + * true to trigger a (re-?)notification to userspace that there's + * something there to read. + */ + if (mvm->fw_error_dump) + return true; + + if (!mvm->fw_error_sram) + return false; + + file_len = mvm->fw_error_sram_len + + sizeof(*dump_file) + + sizeof(*dump_data); + + dump_file = vmalloc(file_len); + if (!dump_file) + return false; + + mvm->fw_error_dump = dump_file; + + dump_file->barker = cpu_to_le32(IWL_FW_ERROR_DUMP_BARKER); + dump_file->file_len = cpu_to_le32(file_len); + dump_data = (void *)dump_file->data; + dump_data->type = IWL_FW_ERROR_DUMP_SRAM; + dump_data->len = cpu_to_le32(mvm->fw_error_sram_len); + + /* + * No need for lock since at the stage the FW isn't loaded. So it + * can't assert - we are the only one who can possibly be accessing + * mvm->fw_error_sram right now. + */ + memcpy(dump_data->data, mvm->fw_error_sram, mvm->fw_error_sram_len); + kfree(mvm->fw_error_sram); + mvm->fw_error_sram = NULL; + mvm->fw_error_sram_len = 0; + + return true; +} +#endif + static void iwl_mvm_nic_error(struct iwl_op_mode *op_mode) { struct iwl_mvm *mvm = IWL_OP_MODE_GET_MVM(op_mode); iwl_mvm_dump_nic_error_log(mvm); - if (!mvm->restart_fw) - iwl_mvm_dump_sram(mvm); + +#ifdef CONFIG_IWLWIFI_DEBUGFS + iwl_mvm_fw_error_sram_dump(mvm); +#endif iwl_mvm_nic_restart(mvm); } --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/mvm/scan.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/mvm/scan.c @@ -325,7 +325,8 @@ iwl_mvm_scan_fill_ssids(cmd, req, basic_ssid ? 1 : 0); - cmd->tx_cmd.tx_flags = cpu_to_le32(TX_CMD_FLG_SEQ_CTL); + cmd->tx_cmd.tx_flags = cpu_to_le32(TX_CMD_FLG_SEQ_CTL | + TX_CMD_FLG_BT_DIS); cmd->tx_cmd.sta_id = mvm->aux_sta.sta_id; cmd->tx_cmd.life_time = cpu_to_le32(TX_CMD_LIFE_TIME_INFINITE); cmd->tx_cmd.rate_n_flags = --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/mvm/tx.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/mvm/tx.c @@ -822,16 +822,12 @@ struct iwl_mvm_ba_notif *ba_notif = (void *)pkt->data; struct sk_buff_head reclaimed_skbs; struct iwl_mvm_tid_data *tid_data; - struct ieee80211_tx_info *info; struct ieee80211_sta *sta; struct iwl_mvm_sta *mvmsta; - struct ieee80211_hdr *hdr; struct sk_buff *skb; int sta_id, tid, freed; - /* "flow" corresponds to Tx queue */ u16 scd_flow = le16_to_cpu(ba_notif->scd_flow); - /* "ssn" is start of block-ack Tx window, corresponds to index * (in Tx queue's circular buffer) of first TFD/frame in window */ u16 ba_resp_scd_ssn = le16_to_cpu(ba_notif->scd_ssn); @@ -888,22 +884,26 @@ freed = 0; skb_queue_walk(&reclaimed_skbs, skb) { - hdr = (struct ieee80211_hdr *)skb->data; + struct ieee80211_hdr *hdr = (void *)skb->data; + struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); if (ieee80211_is_data_qos(hdr->frame_control)) freed++; else WARN_ON_ONCE(1); - info = IEEE80211_SKB_CB(skb); iwl_trans_free_tx_cmd(mvm->trans, info->driver_data[1]); + memset(&info->status, 0, sizeof(info->status)); + /* Packet was transmitted successfully, failures come as single + * frames because before failing a frame the firmware transmits + * it without aggregation at least once. + */ + info->flags |= IEEE80211_TX_STAT_ACK; + if (freed == 1) { /* this is the first skb we deliver in this batch */ /* put the rate scaling data there */ - info = IEEE80211_SKB_CB(skb); - memset(&info->status, 0, sizeof(info->status)); - info->flags |= IEEE80211_TX_STAT_ACK; info->flags |= IEEE80211_TX_STAT_AMPDU; info->status.ampdu_ack_len = ba_notif->txed_2_done; info->status.ampdu_len = ba_notif->txed; --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/mvm/utils.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/mvm/utils.c @@ -411,6 +411,8 @@ mvm->status, table.valid); } + IWL_ERR(mvm, "Loaded firmware version: %s\n", mvm->fw->fw_version); + trace_iwlwifi_dev_ucode_error(trans->dev, table.error_id, table.tsf_low, table.data1, table.data2, table.data3, table.blink1, table.blink2, table.ilink1, @@ -453,27 +455,26 @@ IWL_ERR(mvm, "0x%08X | flow_handler\n", table.flow_handler); } -void iwl_mvm_dump_sram(struct iwl_mvm *mvm) +void iwl_mvm_fw_error_sram_dump(struct iwl_mvm *mvm) { const struct fw_img *img; - int ofs, len = 0; - u8 *buf; + u32 ofs, sram_len; + void *sram; - if (!mvm->ucode_loaded) + if (!mvm->ucode_loaded || mvm->fw_error_sram) return; img = &mvm->fw->img[mvm->cur_ucode]; ofs = img->sec[IWL_UCODE_SECTION_DATA].offset; - len = img->sec[IWL_UCODE_SECTION_DATA].len; + sram_len = img->sec[IWL_UCODE_SECTION_DATA].len; - buf = kzalloc(len, GFP_ATOMIC); - if (!buf) + sram = kzalloc(sram_len, GFP_ATOMIC); + if (!sram) return; - iwl_trans_read_mem_bytes(mvm->trans, ofs, buf, len); - iwl_print_hex_error(mvm->trans, buf, len); - - kfree(buf); + iwl_trans_read_mem_bytes(mvm->trans, ofs, sram, sram_len); + mvm->fw_error_sram = sram; + mvm->fw_error_sram_len = sram_len; } /** --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/pcie/drv.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/pcie/drv.c @@ -272,6 +272,8 @@ {IWL_PCI_DEVICE(0x08B1, 0x4070, iwl7260_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x4072, iwl7260_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x4170, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4C60, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4C70, iwl7260_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x4060, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x406A, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x4160, iwl7260_2n_cfg)}, @@ -297,6 +299,9 @@ {IWL_PCI_DEVICE(0x08B2, 0x4370, iwl7260_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B2, 0x4360, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x5070, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x5072, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x5170, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x5770, iwl7260_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x4020, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x402A, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B2, 0x4220, iwl7260_2n_cfg)}, @@ -312,6 +317,8 @@ {IWL_PCI_DEVICE(0x08B1, 0xC770, iwl7260_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0xC760, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B2, 0xC270, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xCC70, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xCC60, iwl7260_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B2, 0xC272, iwl7260_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B2, 0xC260, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B2, 0xC26A, iwl7260_n_cfg)}, @@ -350,25 +357,34 @@ {IWL_PCI_DEVICE(0x08B4, 0x8270, iwl3160_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B3, 0x8470, iwl3160_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B3, 0x8570, iwl3160_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x1070, iwl3160_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x1170, iwl3160_2ac_cfg)}, /* 7265 Series */ {IWL_PCI_DEVICE(0x095A, 0x5010, iwl7265_2ac_cfg)}, {IWL_PCI_DEVICE(0x095A, 0x5110, iwl7265_2ac_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5100, iwl7265_2ac_cfg)}, {IWL_PCI_DEVICE(0x095B, 0x5310, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095B, 0x5302, iwl7265_2ac_cfg)}, + {IWL_PCI_DEVICE(0x095B, 0x5302, iwl7265_n_cfg)}, {IWL_PCI_DEVICE(0x095B, 0x5210, iwl7265_2ac_cfg)}, {IWL_PCI_DEVICE(0x095A, 0x5012, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x500A, iwl7265_2ac_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5412, iwl7265_2ac_cfg)}, {IWL_PCI_DEVICE(0x095A, 0x5410, iwl7265_2ac_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5510, iwl7265_2ac_cfg)}, {IWL_PCI_DEVICE(0x095A, 0x5400, iwl7265_2ac_cfg)}, {IWL_PCI_DEVICE(0x095A, 0x1010, iwl7265_2ac_cfg)}, {IWL_PCI_DEVICE(0x095A, 0x5000, iwl7265_2n_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x500A, iwl7265_2n_cfg)}, {IWL_PCI_DEVICE(0x095B, 0x5200, iwl7265_2n_cfg)}, {IWL_PCI_DEVICE(0x095A, 0x5002, iwl7265_n_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5102, iwl7265_n_cfg)}, {IWL_PCI_DEVICE(0x095B, 0x5202, iwl7265_n_cfg)}, {IWL_PCI_DEVICE(0x095A, 0x9010, iwl7265_2ac_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x9012, iwl7265_2ac_cfg)}, {IWL_PCI_DEVICE(0x095A, 0x9110, iwl7265_2ac_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x9112, iwl7265_2ac_cfg)}, {IWL_PCI_DEVICE(0x095A, 0x9210, iwl7265_2ac_cfg)}, + {IWL_PCI_DEVICE(0x095B, 0x9200, iwl7265_2ac_cfg)}, {IWL_PCI_DEVICE(0x095A, 0x9510, iwl7265_2ac_cfg)}, {IWL_PCI_DEVICE(0x095A, 0x9310, iwl7265_2ac_cfg)}, {IWL_PCI_DEVICE(0x095A, 0x9410, iwl7265_2ac_cfg)}, --- linux-3.13.0.orig/drivers/net/wireless/iwlwifi/pcie/trans.c +++ linux-3.13.0/drivers/net/wireless/iwlwifi/pcie/trans.c @@ -121,6 +121,7 @@ { struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans); u16 lctl; + u16 cap; /* * HW bug W/A for instability in PCIe bus L0S->L1 transition. @@ -131,16 +132,17 @@ * power savings, even without L1. */ pcie_capability_read_word(trans_pcie->pci_dev, PCI_EXP_LNKCTL, &lctl); - if (lctl & PCI_EXP_LNKCTL_ASPM_L1) { - /* L1-ASPM enabled; disable(!) L0S */ + if (lctl & PCI_EXP_LNKCTL_ASPM_L1) iwl_set_bit(trans, CSR_GIO_REG, CSR_GIO_REG_VAL_L0S_ENABLED); - dev_info(trans->dev, "L1 Enabled; Disabling L0S\n"); - } else { - /* L1-ASPM disabled; enable(!) L0S */ + else iwl_clear_bit(trans, CSR_GIO_REG, CSR_GIO_REG_VAL_L0S_ENABLED); - dev_info(trans->dev, "L1 Disabled; Enabling L0S\n"); - } trans->pm_support = !(lctl & PCI_EXP_LNKCTL_ASPM_L0S); + + pcie_capability_read_word(trans_pcie->pci_dev, PCI_EXP_DEVCTL2, &cap); + trans->ltr_enabled = cap & PCI_EXP_DEVCTL2_LTR_EN; + dev_info(trans->dev, "L1 %sabled - LTR %sabled\n", + (lctl & PCI_EXP_LNKCTL_ASPM_L1) ? "En" : "Dis", + trans->ltr_enabled ? "En" : "Dis"); } /* @@ -206,6 +208,28 @@ goto out; } + if (trans->cfg->host_interrupt_operation_mode) { + /* + * This is a bit of an abuse - This is needed for 7260 / 3160 + * only check host_interrupt_operation_mode even if this is + * not related to host_interrupt_operation_mode. + * + * Enable the oscillator to count wake up time for L1 exit. This + * consumes slightly more power (100uA) - but allows to be sure + * that we wake up from L1 on time. + * + * This looks weird: read twice the same register, discard the + * value, set a bit, and yet again, read that same register + * just to discard the value. But that's the way the hardware + * seems to like it. + */ + iwl_read_prph(trans, OSC_CLK); + iwl_read_prph(trans, OSC_CLK); + iwl_set_bits_prph(trans, OSC_CLK, OSC_CLK_FORCE_CONTROL); + iwl_read_prph(trans, OSC_CLK); + iwl_read_prph(trans, OSC_CLK); + } + /* * Enable DMA clock and wait for it to stabilize. * @@ -326,6 +350,7 @@ { int ret; int t = 0; + int iter; IWL_DEBUG_INFO(trans, "iwl_trans_prepare_card_hw enter\n"); @@ -334,18 +359,23 @@ if (ret >= 0) return 0; - /* If HW is not ready, prepare the conditions to check again */ - iwl_set_bit(trans, CSR_HW_IF_CONFIG_REG, - CSR_HW_IF_CONFIG_REG_PREPARE); + for (iter = 0; iter < 10; iter++) { + /* If HW is not ready, prepare the conditions to check again */ + iwl_set_bit(trans, CSR_HW_IF_CONFIG_REG, + CSR_HW_IF_CONFIG_REG_PREPARE); + + do { + ret = iwl_pcie_set_hw_ready(trans); + if (ret >= 0) + return 0; + + usleep_range(200, 1000); + t += 200; + } while (t < 150000); + msleep(25); + } - do { - ret = iwl_pcie_set_hw_ready(trans); - if (ret >= 0) - return 0; - - usleep_range(200, 1000); - t += 200; - } while (t < 150000); + IWL_DEBUG_INFO(trans, "got NIC after %d iterations\n", iter); return ret; } --- linux-3.13.0.orig/drivers/net/wireless/mac80211_hwsim.c +++ linux-3.13.0/drivers/net/wireless/mac80211_hwsim.c @@ -1466,7 +1466,9 @@ return 0; } -static void mac80211_hwsim_flush(struct ieee80211_hw *hw, u32 queues, bool drop) +static void mac80211_hwsim_flush(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, + u32 queues, bool drop) { /* Not implemented, queues only on kernel side */ } --- linux-3.13.0.orig/drivers/net/wireless/mwifiex/11ac.c +++ linux-3.13.0/drivers/net/wireless/mwifiex/11ac.c @@ -189,8 +189,7 @@ vht_cap->header.len = cpu_to_le16(sizeof(struct ieee80211_vht_cap)); memcpy((u8 *)vht_cap + sizeof(struct mwifiex_ie_types_header), - (u8 *)bss_desc->bcn_vht_cap + - sizeof(struct ieee_types_header), + (u8 *)bss_desc->bcn_vht_cap, le16_to_cpu(vht_cap->header.len)); mwifiex_fill_vht_cap_tlv(priv, vht_cap, bss_desc->bss_band); --- linux-3.13.0.orig/drivers/net/wireless/mwifiex/11n.c +++ linux-3.13.0/drivers/net/wireless/mwifiex/11n.c @@ -308,8 +308,7 @@ ht_cap->header.len = cpu_to_le16(sizeof(struct ieee80211_ht_cap)); memcpy((u8 *) ht_cap + sizeof(struct mwifiex_ie_types_header), - (u8 *) bss_desc->bcn_ht_cap + - sizeof(struct ieee_types_header), + (u8 *)bss_desc->bcn_ht_cap, le16_to_cpu(ht_cap->header.len)); mwifiex_fill_cap_info(priv, radio_type, ht_cap); --- linux-3.13.0.orig/drivers/net/wireless/mwifiex/fw.h +++ linux-3.13.0/drivers/net/wireless/mwifiex/fw.h @@ -226,7 +226,7 @@ /* HW_SPEC fw_cap_info */ -#define ISSUPP_11ACENABLED(fw_cap_info) (fw_cap_info & (BIT(13)|BIT(14))) +#define ISSUPP_11ACENABLED(fw_cap_info) (fw_cap_info & (BIT(12)|BIT(13))) #define GET_VHTCAP_CHWDSET(vht_cap_info) ((vht_cap_info >> 2) & 0x3) #define GET_VHTNSSMCS(mcs_mapset, nss) ((mcs_mapset >> (2 * (nss - 1))) & 0x3) --- linux-3.13.0.orig/drivers/net/wireless/mwifiex/main.c +++ linux-3.13.0/drivers/net/wireless/mwifiex/main.c @@ -646,6 +646,7 @@ } tx_info = MWIFIEX_SKB_TXCB(skb); + memset(tx_info, 0, sizeof(*tx_info)); tx_info->bss_num = priv->bss_num; tx_info->bss_type = priv->bss_type; @@ -747,7 +748,7 @@ static u16 mwifiex_netdev_select_wmm_queue(struct net_device *dev, struct sk_buff *skb, - void *accel_priv) + void *accel_priv, select_queue_fallback_t fallback) { skb->priority = cfg80211_classify8021d(skb); return mwifiex_1d_to_wmm_queue[skb->priority]; --- linux-3.13.0.orig/drivers/net/wireless/mwifiex/pcie.c +++ linux-3.13.0/drivers/net/wireless/mwifiex/pcie.c @@ -1211,6 +1211,12 @@ rd_index = card->rxbd_rdptr & reg->rx_mask; skb_data = card->rx_buf_list[rd_index]; + /* If skb allocation was failed earlier for Rx packet, + * rx_buf_list[rd_index] would have been left with a NULL. + */ + if (!skb_data) + return -ENOMEM; + MWIFIEX_SKB_PACB(skb_data, &buf_pa); pci_unmap_single(card->dev, buf_pa, MWIFIEX_RX_DATA_BUF_SIZE, PCI_DMA_FROMDEVICE); @@ -1525,6 +1531,14 @@ if (adapter->ps_state == PS_STATE_SLEEP_CFM) { mwifiex_process_sleep_confirm_resp(adapter, skb->data, skb->len); + mwifiex_pcie_enable_host_int(adapter); + if (mwifiex_write_reg(adapter, + PCIE_CPU_INT_EVENT, + CPU_INTR_SLEEP_CFM_DONE)) { + dev_warn(adapter->dev, + "Write register failed\n"); + return -1; + } while (reg->sleep_cookie && (count++ < 10) && mwifiex_pcie_ok_to_access_hw(adapter)) usleep_range(50, 60); @@ -1993,23 +2007,9 @@ adapter->int_status |= pcie_ireg; spin_unlock_irqrestore(&adapter->int_lock, flags); - if (pcie_ireg & HOST_INTR_CMD_DONE) { - if ((adapter->ps_state == PS_STATE_SLEEP_CFM) || - (adapter->ps_state == PS_STATE_SLEEP)) { - mwifiex_pcie_enable_host_int(adapter); - if (mwifiex_write_reg(adapter, - PCIE_CPU_INT_EVENT, - CPU_INTR_SLEEP_CFM_DONE) - ) { - dev_warn(adapter->dev, - "Write register failed\n"); - return; - - } - } - } else if (!adapter->pps_uapsd_mode && - adapter->ps_state == PS_STATE_SLEEP && - mwifiex_pcie_ok_to_access_hw(adapter)) { + if (!adapter->pps_uapsd_mode && + adapter->ps_state == PS_STATE_SLEEP && + mwifiex_pcie_ok_to_access_hw(adapter)) { /* Potentially for PCIe we could get other * interrupts like shared. Don't change power * state until cookie is set */ --- linux-3.13.0.orig/drivers/net/wireless/mwifiex/scan.c +++ linux-3.13.0/drivers/net/wireless/mwifiex/scan.c @@ -1681,7 +1681,7 @@ const u8 *ie_buf; size_t ie_len; u16 channel = 0; - u64 fw_tsf = 0; + __le64 fw_tsf = 0; u16 beacon_size = 0; u32 curr_bcn_bytes; u32 freq; @@ -1815,7 +1815,7 @@ ie_buf, ie_len, rssi, GFP_KERNEL); bss_priv = (struct mwifiex_bss_priv *)bss->priv; bss_priv->band = band; - bss_priv->fw_tsf = fw_tsf; + bss_priv->fw_tsf = le64_to_cpu(fw_tsf); if (priv->media_connected && !memcmp(bssid, priv->curr_bss_params.bss_descriptor @@ -2101,12 +2101,12 @@ curr_bss->ht_info_offset); if (curr_bss->bcn_vht_cap) - curr_bss->bcn_ht_cap = (void *)(curr_bss->beacon_buf + - curr_bss->vht_cap_offset); + curr_bss->bcn_vht_cap = (void *)(curr_bss->beacon_buf + + curr_bss->vht_cap_offset); if (curr_bss->bcn_vht_oper) - curr_bss->bcn_ht_oper = (void *)(curr_bss->beacon_buf + - curr_bss->vht_info_offset); + curr_bss->bcn_vht_oper = (void *)(curr_bss->beacon_buf + + curr_bss->vht_info_offset); if (curr_bss->bcn_bss_co_2040) curr_bss->bcn_bss_co_2040 = --- linux-3.13.0.orig/drivers/net/wireless/mwifiex/usb.c +++ linux-3.13.0/drivers/net/wireless/mwifiex/usb.c @@ -511,13 +511,6 @@ MWIFIEX_BSS_ROLE_ANY), MWIFIEX_ASYNC_CMD); -#ifdef CONFIG_PM - /* Resume handler may be called due to remote wakeup, - * force to exit suspend anyway - */ - usb_disable_autosuspend(card->udev); -#endif /* CONFIG_PM */ - return 0; } @@ -557,7 +550,6 @@ .id_table = mwifiex_usb_table, .suspend = mwifiex_usb_suspend, .resume = mwifiex_usb_resume, - .supports_autosuspend = 1, }; static int mwifiex_usb_tx_init(struct mwifiex_adapter *adapter) --- linux-3.13.0.orig/drivers/net/wireless/mwifiex/wmm.c +++ linux-3.13.0/drivers/net/wireless/mwifiex/wmm.c @@ -559,7 +559,8 @@ mwifiex_wmm_delete_all_ralist(priv); memcpy(tos_to_tid, ac_to_tid, sizeof(tos_to_tid)); - if (priv->adapter->if_ops.clean_pcie_ring) + if (priv->adapter->if_ops.clean_pcie_ring && + !priv->adapter->surprise_removed) priv->adapter->if_ops.clean_pcie_ring(priv->adapter); spin_unlock_irqrestore(&priv->wmm.ra_list_spinlock, flags); } --- linux-3.13.0.orig/drivers/net/wireless/p54/main.c +++ linux-3.13.0/drivers/net/wireless/p54/main.c @@ -670,7 +670,8 @@ return total; } -static void p54_flush(struct ieee80211_hw *dev, u32 queues, bool drop) +static void p54_flush(struct ieee80211_hw *dev, struct ieee80211_vif *vif, + u32 queues, bool drop) { struct p54_common *priv = dev->priv; unsigned int total, i; --- linux-3.13.0.orig/drivers/net/wireless/p54/txrx.c +++ linux-3.13.0/drivers/net/wireless/p54/txrx.c @@ -587,7 +587,7 @@ chan = priv->curchan; if (chan) { struct survey_info *survey = &priv->survey[chan->hw_value]; - survey->noise = clamp_t(s8, priv->noise, -128, 127); + survey->noise = clamp(priv->noise, -128, 127); survey->channel_time = priv->survey_raw.active; survey->channel_time_tx = priv->survey_raw.tx; survey->channel_time_busy = priv->survey_raw.tx + --- linux-3.13.0.orig/drivers/net/wireless/rt2x00/rt2500pci.c +++ linux-3.13.0/drivers/net/wireless/rt2x00/rt2500pci.c @@ -1684,8 +1684,13 @@ /* * Detect if this device has an hardware controlled radio. */ - if (rt2x00_get_field16(eeprom, EEPROM_ANTENNA_HARDWARE_RADIO)) + if (rt2x00_get_field16(eeprom, EEPROM_ANTENNA_HARDWARE_RADIO)) { __set_bit(CAPABILITY_HW_BUTTON, &rt2x00dev->cap_flags); + /* + * On this device RFKILL initialized during probe does not work. + */ + __set_bit(REQUIRE_DELAYED_RFKILL, &rt2x00dev->cap_flags); + } /* * Check if the BBP tuning should be enabled. --- linux-3.13.0.orig/drivers/net/wireless/rt2x00/rt2800.h +++ linux-3.13.0/drivers/net/wireless/rt2x00/rt2800.h @@ -2041,7 +2041,7 @@ * 2 - drop tx power by 12dBm, * 3 - increase tx power by 6dBm */ -#define BBP1_TX_POWER_CTRL FIELD8(0x07) +#define BBP1_TX_POWER_CTRL FIELD8(0x03) #define BBP1_TX_ANTENNA FIELD8(0x18) /* --- linux-3.13.0.orig/drivers/net/wireless/rt2x00/rt2800usb.c +++ linux-3.13.0/drivers/net/wireless/rt2x00/rt2800usb.c @@ -1064,6 +1064,7 @@ /* Ovislink */ { USB_DEVICE(0x1b75, 0x3071) }, { USB_DEVICE(0x1b75, 0x3072) }, + { USB_DEVICE(0x1b75, 0xa200) }, /* Para */ { USB_DEVICE(0x20b8, 0x8888) }, /* Pegatron */ --- linux-3.13.0.orig/drivers/net/wireless/rt2x00/rt2x00.h +++ linux-3.13.0/drivers/net/wireless/rt2x00/rt2x00.h @@ -695,6 +695,7 @@ REQUIRE_SW_SEQNO, REQUIRE_HT_TX_DESC, REQUIRE_PS_AUTOWAKE, + REQUIRE_DELAYED_RFKILL, /* * Capabilities @@ -1450,7 +1451,8 @@ struct ieee80211_vif *vif, u16 queue, const struct ieee80211_tx_queue_params *params); void rt2x00mac_rfkill_poll(struct ieee80211_hw *hw); -void rt2x00mac_flush(struct ieee80211_hw *hw, u32 queues, bool drop); +void rt2x00mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + u32 queues, bool drop); int rt2x00mac_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant); int rt2x00mac_get_antenna(struct ieee80211_hw *hw, u32 *tx_ant, u32 *rx_ant); void rt2x00mac_get_ringparam(struct ieee80211_hw *hw, --- linux-3.13.0.orig/drivers/net/wireless/rt2x00/rt2x00dev.c +++ linux-3.13.0/drivers/net/wireless/rt2x00/rt2x00dev.c @@ -1128,9 +1128,10 @@ return; /* - * Unregister extra components. + * Stop rfkill polling. */ - rt2x00rfkill_unregister(rt2x00dev); + if (test_bit(REQUIRE_DELAYED_RFKILL, &rt2x00dev->cap_flags)) + rt2x00rfkill_unregister(rt2x00dev); /* * Allow the HW to uninitialize. @@ -1168,6 +1169,12 @@ set_bit(DEVICE_STATE_INITIALIZED, &rt2x00dev->flags); + /* + * Start rfkill polling. + */ + if (test_bit(REQUIRE_DELAYED_RFKILL, &rt2x00dev->cap_flags)) + rt2x00rfkill_register(rt2x00dev); + return 0; } @@ -1377,7 +1384,12 @@ rt2x00link_register(rt2x00dev); rt2x00leds_register(rt2x00dev); rt2x00debug_register(rt2x00dev); - rt2x00rfkill_register(rt2x00dev); + + /* + * Start rfkill polling. + */ + if (!test_bit(REQUIRE_DELAYED_RFKILL, &rt2x00dev->cap_flags)) + rt2x00rfkill_register(rt2x00dev); return 0; @@ -1393,6 +1405,12 @@ clear_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags); /* + * Stop rfkill polling. + */ + if (!test_bit(REQUIRE_DELAYED_RFKILL, &rt2x00dev->cap_flags)) + rt2x00rfkill_unregister(rt2x00dev); + + /* * Disable radio. */ rt2x00lib_disable_radio(rt2x00dev); --- linux-3.13.0.orig/drivers/net/wireless/rt2x00/rt2x00mac.c +++ linux-3.13.0/drivers/net/wireless/rt2x00/rt2x00mac.c @@ -489,6 +489,8 @@ crypto.cipher = rt2x00crypto_key_to_cipher(key); if (crypto.cipher == CIPHER_NONE) return -EOPNOTSUPP; + if (crypto.cipher == CIPHER_TKIP && rt2x00_is_usb(rt2x00dev)) + return -EOPNOTSUPP; crypto.cmd = cmd; @@ -623,20 +625,18 @@ bss_conf->bssid); /* - * Update the beacon. This is only required on USB devices. PCI - * devices fetch beacons periodically. - */ - if (changes & BSS_CHANGED_BEACON && rt2x00_is_usb(rt2x00dev)) - rt2x00queue_update_beacon(rt2x00dev, vif); - - /* * Start/stop beaconing. */ if (changes & BSS_CHANGED_BEACON_ENABLED) { if (!bss_conf->enable_beacon && intf->enable_beacon) { - rt2x00queue_clear_beacon(rt2x00dev, vif); rt2x00dev->intf_beaconing--; intf->enable_beacon = false; + /* + * Clear beacon in the H/W for this vif. This is needed + * to disable beaconing on this particular interface + * and keep it running on other interfaces. + */ + rt2x00queue_clear_beacon(rt2x00dev, vif); if (rt2x00dev->intf_beaconing == 0) { /* @@ -647,11 +647,15 @@ rt2x00queue_stop_queue(rt2x00dev->bcn); mutex_unlock(&intf->beacon_skb_mutex); } - - } else if (bss_conf->enable_beacon && !intf->enable_beacon) { rt2x00dev->intf_beaconing++; intf->enable_beacon = true; + /* + * Upload beacon to the H/W. This is only required on + * USB devices. PCI devices fetch beacons periodically. + */ + if (rt2x00_is_usb(rt2x00dev)) + rt2x00queue_update_beacon(rt2x00dev, vif); if (rt2x00dev->intf_beaconing == 1) { /* @@ -749,7 +753,8 @@ } EXPORT_SYMBOL_GPL(rt2x00mac_rfkill_poll); -void rt2x00mac_flush(struct ieee80211_hw *hw, u32 queues, bool drop) +void rt2x00mac_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + u32 queues, bool drop) { struct rt2x00_dev *rt2x00dev = hw->priv; struct data_queue *queue; --- linux-3.13.0.orig/drivers/net/wireless/rt2x00/rt2x00queue.c +++ linux-3.13.0/drivers/net/wireless/rt2x00/rt2x00queue.c @@ -160,55 +160,29 @@ skb_trim(skb, frame_length); } -void rt2x00queue_insert_l2pad(struct sk_buff *skb, unsigned int header_length) +/* + * H/W needs L2 padding between the header and the paylod if header size + * is not 4 bytes aligned. + */ +void rt2x00queue_insert_l2pad(struct sk_buff *skb, unsigned int hdr_len) { - unsigned int payload_length = skb->len - header_length; - unsigned int header_align = ALIGN_SIZE(skb, 0); - unsigned int payload_align = ALIGN_SIZE(skb, header_length); - unsigned int l2pad = payload_length ? L2PAD_SIZE(header_length) : 0; - - /* - * Adjust the header alignment if the payload needs to be moved more - * than the header. - */ - if (payload_align > header_align) - header_align += 4; + unsigned int l2pad = (skb->len > hdr_len) ? L2PAD_SIZE(hdr_len) : 0; - /* There is nothing to do if no alignment is needed */ - if (!header_align) + if (!l2pad) return; - /* Reserve the amount of space needed in front of the frame */ - skb_push(skb, header_align); - - /* - * Move the header. - */ - memmove(skb->data, skb->data + header_align, header_length); - - /* Move the payload, if present and if required */ - if (payload_length && payload_align) - memmove(skb->data + header_length + l2pad, - skb->data + header_length + l2pad + payload_align, - payload_length); - - /* Trim the skb to the correct size */ - skb_trim(skb, header_length + l2pad + payload_length); + skb_push(skb, l2pad); + memmove(skb->data, skb->data + l2pad, hdr_len); } -void rt2x00queue_remove_l2pad(struct sk_buff *skb, unsigned int header_length) +void rt2x00queue_remove_l2pad(struct sk_buff *skb, unsigned int hdr_len) { - /* - * L2 padding is only present if the skb contains more than just the - * IEEE 802.11 header. - */ - unsigned int l2pad = (skb->len > header_length) ? - L2PAD_SIZE(header_length) : 0; + unsigned int l2pad = (skb->len > hdr_len) ? L2PAD_SIZE(hdr_len) : 0; if (!l2pad) return; - memmove(skb->data + l2pad, skb->data, header_length); + memmove(skb->data + l2pad, skb->data, hdr_len); skb_pull(skb, l2pad); } --- linux-3.13.0.orig/drivers/net/wireless/rtl818x/rtl8187/rtl8187.h +++ linux-3.13.0/drivers/net/wireless/rtl818x/rtl8187/rtl8187.h @@ -15,6 +15,8 @@ #ifndef RTL8187_H #define RTL8187_H +#include + #include "rtl818x.h" #include "leds.h" @@ -139,7 +141,10 @@ u8 aifsn[4]; u8 rfkill_mask; struct { - __le64 buf; + union { + __le64 buf; + u8 dummy1[L1_CACHE_BYTES]; + } ____cacheline_aligned; struct sk_buff_head queue; } b_tx_status; /* This queue is used by both -b and non-b devices */ struct mutex io_mutex; @@ -147,7 +152,8 @@ u8 bits8; __le16 bits16; __le32 bits32; - } *io_dmabuf; + u8 dummy2[L1_CACHE_BYTES]; + } *io_dmabuf ____cacheline_aligned; bool rfkill_off; u16 seqno; }; --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/Kconfig +++ linux-3.13.0/drivers/net/wireless/rtlwifi/Kconfig @@ -5,7 +5,7 @@ ---help--- This option will enable support for the Realtek mac80211-based wireless drivers. Drivers rtl8192ce, rtl8192cu, rtl8192se, rtl8192de, - rtl8723eu, and rtl8188eu share some common code. + rtl8723ae, rtl8723be, and rtl8188ae share some common code. if RTL_CARDS @@ -48,12 +48,27 @@ depends on PCI select RTLWIFI select RTLWIFI_PCI + select RTL8723_COMMON + select RTLBTCOEXIST ---help--- This is the driver for Realtek RTL8723AE 802.11n PCIe wireless network adapters. If you choose to build it as a module, it will be called rtl8723ae +config RTL8723BE + tristate "Realtek RTL8723BE PCIe Wireless Network Adapter" + depends on PCI + select RTLWIFI + select RTLWIFI_PCI + select RTL8723_COMMON + select RTLBTCOEXIST + ---help--- + This is the driver for Realtek RTL8723BE 802.11n PCIe + wireless network adapters. + + If you choose to build it as a module, it will be called rtl8723be + config RTL8188EE tristate "Realtek RTL8188EE Wireless Network Adapter" depends on PCI @@ -101,4 +116,14 @@ depends on RTL8192CE || RTL8192CU default y +config RTL8723_COMMON + tristate + depends on RTL8723AE || RTL8723BE + default y + +config RTLBTCOEXIST + tristate + depends on RTL8723AE || RTL8723BE + default y + endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/Makefile +++ linux-3.13.0/drivers/net/wireless/rtlwifi/Makefile @@ -24,6 +24,9 @@ obj-$(CONFIG_RTL8192SE) += rtl8192se/ obj-$(CONFIG_RTL8192DE) += rtl8192de/ obj-$(CONFIG_RTL8723AE) += rtl8723ae/ +obj-$(CONFIG_RTL8723BE) += rtl8723be/ obj-$(CONFIG_RTL8188EE) += rtl8188ee/ +obj-$(CONFIG_RTLBTCOEXIST) += btcoexist/ +obj-$(CONFIG_RTL8723_COMMON) += rtl8723com/ ccflags-y += -D__CHECK_ENDIAN__ --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/base.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/base.c @@ -1437,7 +1437,8 @@ /* if we can't recv beacon for 6s, we should * reconnect this AP */ - if (rtlpriv->link_info.roam_times >= 3) { + if ((rtlpriv->link_info.roam_times >= 3) && + !is_zero_ether_addr(rtlpriv->mac80211.bssid)) { RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "AP off, try to reconnect now\n"); rtlpriv->link_info.roam_times = 0; --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/btcoexist/Makefile +++ linux-3.13.0/drivers/net/wireless/rtlwifi/btcoexist/Makefile @@ -0,0 +1,7 @@ +btcoexist-objs := halbtc8723b2ant.o \ + halbtcoutsrc.o \ + rtl_btc.o + +obj-$(CONFIG_RTLBTCOEXIST) += btcoexist.o + +ccflags-y += -D__CHECK_ENDIAN__ --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/btcoexist/halbt_precomp.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/btcoexist/halbt_precomp.h @@ -0,0 +1,87 @@ +/****************************************************************************** + * + * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * Larry Finger + * + ******************************************************************************/ + +#ifndef __HALBT_PRECOMP_H__ +#define __HALBT_PRECOMP_H__ +/************************************************************* + * include files + *************************************************************/ +#include "../wifi.h" +#include "../efuse.h" +#include "../base.h" +#include "../regd.h" +#include "../cam.h" +#include "../ps.h" +#include "../pci.h" + +#include "halbtcoutsrc.h" + +#include "halbtc8723b2ant.h" + +#define BIT0 0x00000001 +#define BIT1 0x00000002 +#define BIT2 0x00000004 +#define BIT3 0x00000008 +#define BIT4 0x00000010 +#define BIT5 0x00000020 +#define BIT6 0x00000040 +#define BIT7 0x00000080 +#define BIT8 0x00000100 +#define BIT9 0x00000200 +#define BIT10 0x00000400 +#define BIT11 0x00000800 +#define BIT12 0x00001000 +#define BIT13 0x00002000 +#define BIT14 0x00004000 +#define BIT15 0x00008000 +#define BIT16 0x00010000 +#define BIT17 0x00020000 +#define BIT18 0x00040000 +#define BIT19 0x00080000 +#define BIT20 0x00100000 +#define BIT21 0x00200000 +#define BIT22 0x00400000 +#define BIT23 0x00800000 +#define BIT24 0x01000000 +#define BIT25 0x02000000 +#define BIT26 0x04000000 +#define BIT27 0x08000000 +#define BIT28 0x10000000 +#define BIT29 0x20000000 +#define BIT30 0x40000000 +#define BIT31 0x80000000 + +#define MASKBYTE0 0xff +#define MASKBYTE1 0xff00 +#define MASKBYTE2 0xff0000 +#define MASKBYTE3 0xff000000 +#define MASKHWORD 0xffff0000 +#define MASKLWORD 0x0000ffff +#define MASKDWORD 0xffffffff +#define MASK12BITS 0xfff +#define MASKH4BITS 0xf0000000 +#define MASKOFDM_D 0xffc00000 +#define MASKCCK 0x3f3f3f3f + +#endif /* __HALBT_PRECOMP_H__ */ --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/btcoexist/halbtc8723b2ant.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/btcoexist/halbtc8723b2ant.c @@ -0,0 +1,3698 @@ +/****************************************************************************** + * + * Copyright(c) 2012 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ +/*************************************************************** + * Description: + * + * This file is for RTL8723B Co-exist mechanism + * + * History + * 2012/11/15 Cosa first check in. + * + **************************************************************/ +/************************************************************** + * include files + **************************************************************/ +#include "halbt_precomp.h" +/************************************************************** + * Global variables, these are static variables + **************************************************************/ +static struct coex_dm_8723b_2ant glcoex_dm_8723b_2ant; +static struct coex_dm_8723b_2ant *coex_dm = &glcoex_dm_8723b_2ant; +static struct coex_sta_8723b_2ant glcoex_sta_8723b_2ant; +static struct coex_sta_8723b_2ant *coex_sta = &glcoex_sta_8723b_2ant; + +static const char *const glbt_info_src_8723b_2ant[] = { + "BT Info[wifi fw]", + "BT Info[bt rsp]", + "BT Info[bt auto report]", +}; + +static u32 glcoex_ver_date_8723b_2ant = 20130731; +static u32 glcoex_ver_8723b_2ant = 0x3b; + +/************************************************************** + * local function proto type if needed + **************************************************************/ +/************************************************************** + * local function start with btc8723b2ant_ + **************************************************************/ +static u8 btc8723b2ant_bt_rssi_state(u8 level_num, u8 rssi_thresh, + u8 rssi_thresh1) +{ + s32 bt_rssi = 0; + u8 bt_rssi_state = coex_sta->pre_bt_rssi_state; + + bt_rssi = coex_sta->bt_rssi; + + if (level_num == 2) { + if ((coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_LOW) || + (coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_STAY_LOW)) { + if (bt_rssi >= rssi_thresh + + BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT) { + bt_rssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "switch to High\n"); + } else { + bt_rssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "stay at Low\n"); + } + } else { + if (bt_rssi < rssi_thresh) { + bt_rssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "switch to Low\n"); + } else { + bt_rssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "stay at High\n"); + } + } + } else if (level_num == 3) { + if (rssi_thresh > rssi_thresh1) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi thresh error!!\n"); + return coex_sta->pre_bt_rssi_state; + } + + if ((coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_LOW) || + (coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_STAY_LOW)) { + if (bt_rssi >= rssi_thresh + + BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT) { + bt_rssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "switch to Medium\n"); + } else { + bt_rssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "stay at Low\n"); + } + } else if ((coex_sta->pre_bt_rssi_state == + BTC_RSSI_STATE_MEDIUM) || + (coex_sta->pre_bt_rssi_state == + BTC_RSSI_STATE_STAY_MEDIUM)) { + if (bt_rssi >= rssi_thresh1 + + BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT) { + bt_rssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "switch to High\n"); + } else if (bt_rssi < rssi_thresh) { + bt_rssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "switch to Low\n"); + } else { + bt_rssi_state = BTC_RSSI_STATE_STAY_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "stay at Medium\n"); + } + } else { + if (bt_rssi < rssi_thresh1) { + bt_rssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "switch to Medium\n"); + } else { + bt_rssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "stay at High\n"); + } + } + } + + coex_sta->pre_bt_rssi_state = bt_rssi_state; + + return bt_rssi_state; +} + +static u8 btc8723b2ant_wifi_rssi_state(struct btc_coexist *btcoexist, + u8 index, u8 level_num, + u8 rssi_thresh, u8 rssi_thresh1) +{ + s32 wifi_rssi = 0; + u8 wifi_rssi_state = coex_sta->pre_wifi_rssi_state[index]; + + btcoexist->btc_get(btcoexist, BTC_GET_S4_WIFI_RSSI, &wifi_rssi); + + if (level_num == 2) { + if ((coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_LOW) || + (coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_STAY_LOW)) { + if (wifi_rssi >= rssi_thresh + + BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT) { + wifi_rssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "switch to High\n"); + } else { + wifi_rssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "stay at Low\n"); + } + } else { + if (wifi_rssi < rssi_thresh) { + wifi_rssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "switch to Low\n"); + } else { + wifi_rssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "stay at High\n"); + } + } + } else if (level_num == 3) { + if (rssi_thresh > rssi_thresh1) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI thresh error!!\n"); + return coex_sta->pre_wifi_rssi_state[index]; + } + + if ((coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_LOW) || + (coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_STAY_LOW)) { + if (wifi_rssi >= rssi_thresh + + BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT) { + wifi_rssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "switch to Medium\n"); + } else { + wifi_rssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "stay at Low\n"); + } + } else if ((coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_MEDIUM) || + (coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_STAY_MEDIUM)) { + if (wifi_rssi >= rssi_thresh1 + + BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT) { + wifi_rssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "switch to High\n"); + } else if (wifi_rssi < rssi_thresh) { + wifi_rssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "switch to Low\n"); + } else { + wifi_rssi_state = BTC_RSSI_STATE_STAY_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "stay at Medium\n"); + } + } else { + if (wifi_rssi < rssi_thresh1) { + wifi_rssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "switch to Medium\n"); + } else { + wifi_rssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "stay at High\n"); + } + } + } + + coex_sta->pre_wifi_rssi_state[index] = wifi_rssi_state; + + return wifi_rssi_state; +} + +static void btc8723b2ant_monitor_bt_ctr(struct btc_coexist *btcoexist) +{ + u32 reg_hp_txrx, reg_lp_txrx, u32tmp; + u32 reg_hp_tx = 0, reg_hp_rx = 0; + u32 reg_lp_tx = 0, reg_lp_rx = 0; + + reg_hp_txrx = 0x770; + reg_lp_txrx = 0x774; + + u32tmp = btcoexist->btc_read_4byte(btcoexist, reg_hp_txrx); + reg_hp_tx = u32tmp & MASKLWORD; + reg_hp_rx = (u32tmp & MASKHWORD) >> 16; + + u32tmp = btcoexist->btc_read_4byte(btcoexist, reg_lp_txrx); + reg_lp_tx = u32tmp & MASKLWORD; + reg_lp_rx = (u32tmp & MASKHWORD) >> 16; + + coex_sta->high_priority_tx = reg_hp_tx; + coex_sta->high_priority_rx = reg_hp_rx; + coex_sta->low_priority_tx = reg_lp_tx; + coex_sta->low_priority_rx = reg_lp_rx; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex], High Priority Tx/Rx(reg 0x%x)=0x%x(%d)/0x%x(%d)\n", + reg_hp_txrx, reg_hp_tx, reg_hp_tx, reg_hp_rx, reg_hp_rx); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex], Low Priority Tx/Rx(reg 0x%x)=0x%x(%d)/0x%x(%d)\n", + reg_lp_txrx, reg_lp_tx, reg_lp_tx, reg_lp_rx, reg_lp_rx); + + /* reset counter */ + btcoexist->btc_write_1byte(btcoexist, 0x76e, 0xc); +} + +static bool btc8723b2ant_is_wifi_status_changed(struct btc_coexist *btcoexist) +{ + static bool pre_wifi_busy; + static bool pre_under_4way; + static bool pre_bt_hs_on; + bool wifi_busy = false, under_4way = false, bt_hs_on = false; + bool wifi_connected = false; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_4_WAY_PROGRESS, + &under_4way); + + if (wifi_connected) { + if (wifi_busy != pre_wifi_busy) { + pre_wifi_busy = wifi_busy; + return true; + } + + if (under_4way != pre_under_4way) { + pre_under_4way = under_4way; + return true; + } + + if (bt_hs_on != pre_bt_hs_on) { + pre_bt_hs_on = bt_hs_on; + return true; + } + } + + return false; +} + +static void btc8723b2ant_update_bt_link_info(struct btc_coexist *btcoexist) +{ + /*struct btc_stack_info *stack_info = &btcoexist->stack_info;*/ + struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; + bool bt_hs_on = false; + +#if (BT_AUTO_REPORT_ONLY_8723B_2ANT == 1) /* profile from bt patch */ + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + + bt_link_info->bt_link_exist = coex_sta->bt_link_exist; + bt_link_info->sco_exist = coex_sta->sco_exist; + bt_link_info->a2dp_exist = coex_sta->a2dp_exist; + bt_link_info->pan_exist = coex_sta->pan_exist; + bt_link_info->hid_exist = coex_sta->hid_exist; + + /* work around for HS mode. */ + if (bt_hs_on) { + bt_link_info->pan_exist = true; + bt_link_info->bt_link_exist = true; + } +#else /* profile from bt stack */ + bt_link_info->bt_link_exist = stack_info->bt_link_exist; + bt_link_info->sco_exist = stack_info->sco_exist; + bt_link_info->a2dp_exist = stack_info->a2dp_exist; + bt_link_info->pan_exist = stack_info->pan_exist; + bt_link_info->hid_exist = stack_info->hid_exist; + + /*for win-8 stack HID report error*/ + if (!stack_info->hid_exist) + stack_info->hid_exist = coex_sta->hid_exist; + /*sync BTInfo with BT firmware and stack*/ + /* when stack HID report error, here we use the info from bt fw.*/ + if (!stack_info->bt_link_exist) + stack_info->bt_link_exist = coex_sta->bt_link_exist; +#endif + /* check if Sco only */ + if (bt_link_info->sco_exist && !bt_link_info->a2dp_exist && + !bt_link_info->pan_exist && !bt_link_info->hid_exist) + bt_link_info->sco_only = true; + else + bt_link_info->sco_only = false; + + /* check if A2dp only */ + if (!bt_link_info->sco_exist && bt_link_info->a2dp_exist && + !bt_link_info->pan_exist && !bt_link_info->hid_exist) + bt_link_info->a2dp_only = true; + else + bt_link_info->a2dp_only = false; + + /* check if Pan only */ + if (!bt_link_info->sco_exist && !bt_link_info->a2dp_exist && + bt_link_info->pan_exist && !bt_link_info->hid_exist) + bt_link_info->pan_only = true; + else + bt_link_info->pan_only = false; + + /* check if Hid only */ + if (!bt_link_info->sco_exist && !bt_link_info->a2dp_exist && + !bt_link_info->pan_exist && bt_link_info->hid_exist) + bt_link_info->hid_only = true; + else + bt_link_info->hid_only = false; +} + +static u8 btc8723b2ant_action_algorithm(struct btc_coexist *btcoexist) +{ + struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; + bool bt_hs_on = false; + u8 algorithm = BT_8723B_2ANT_COEX_ALGO_UNDEFINED; + u8 num_of_diff_profile = 0; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + + if (!bt_link_info->bt_link_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], No BT link exists!!!\n"); + return algorithm; + } + + if (bt_link_info->sco_exist) + num_of_diff_profile++; + if (bt_link_info->hid_exist) + num_of_diff_profile++; + if (bt_link_info->pan_exist) + num_of_diff_profile++; + if (bt_link_info->a2dp_exist) + num_of_diff_profile++; + + if (num_of_diff_profile == 1) { + if (bt_link_info->sco_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO only\n"); + algorithm = BT_8723B_2ANT_COEX_ALGO_SCO; + } else { + if (bt_link_info->hid_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], HID only\n"); + algorithm = BT_8723B_2ANT_COEX_ALGO_HID; + } else if (bt_link_info->a2dp_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], A2DP only\n"); + algorithm = BT_8723B_2ANT_COEX_ALGO_A2DP; + } else if (bt_link_info->pan_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], PAN(HS) only\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANHS; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], PAN(EDR) only\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANEDR; + } + } + } + } else if (num_of_diff_profile == 2) { + if (bt_link_info->sco_exist) { + if (bt_link_info->hid_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + HID\n"); + algorithm = BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } else if (bt_link_info->a2dp_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + A2DP ==> SCO\n"); + algorithm = BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } else if (bt_link_info->pan_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + PAN(HS)\n"); + algorithm = BT_8723B_2ANT_COEX_ALGO_SCO; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + PAN(EDR)\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } + } + } else { + if (bt_link_info->hid_exist && + bt_link_info->a2dp_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], HID + A2DP\n"); + algorithm = BT_8723B_2ANT_COEX_ALGO_HID_A2DP; + } else if (bt_link_info->hid_exist && + bt_link_info->pan_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], HID + PAN(HS)\n"); + algorithm = BT_8723B_2ANT_COEX_ALGO_HID; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], HID + PAN(EDR)\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } + } else if (bt_link_info->pan_exist && + bt_link_info->a2dp_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], A2DP + PAN(HS)\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_A2DP_PANHS; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex],A2DP + PAN(EDR)\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANEDR_A2DP; + } + } + } + } else if (num_of_diff_profile == 3) { + if (bt_link_info->sco_exist) { + if (bt_link_info->hid_exist && + bt_link_info->a2dp_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + HID + A2DP" + " ==> HID\n"); + algorithm = BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } else if (bt_link_info->hid_exist && + bt_link_info->pan_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + HID + " + "PAN(HS)\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + HID + " + "PAN(EDR)\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } + } else if (bt_link_info->pan_exist && + bt_link_info->a2dp_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + A2DP + " + "PAN(HS)\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + A2DP + " + "PAN(EDR) ==> HID\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } + } + } else { + if (bt_link_info->hid_exist && + bt_link_info->pan_exist && + bt_link_info->a2dp_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], HID + A2DP + " + "PAN(HS)\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_HID_A2DP; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], HID + A2DP + " + "PAN(EDR)\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_HID_A2DP_PANEDR; + } + } + } + } else if (num_of_diff_profile >= 3) { + if (bt_link_info->sco_exist) { + if (bt_link_info->hid_exist && + bt_link_info->pan_exist && + bt_link_info->a2dp_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Error!!! SCO + HID" + " + A2DP + PAN(HS)\n"); + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + HID + A2DP +" + " PAN(EDR)==>PAN(EDR)+HID\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } + } + } + } + return algorithm; +} + +static bool btc8723b_need_dec_pwr(struct btc_coexist *btcoexist) +{ + bool ret = false; + bool bt_hs_on = false, wifi_connected = false; + s32 bt_hs_rssi = 0; + u8 bt_rssi_state; + + if (!btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on)) + return false; + if (!btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected)) + return false; + if (!btcoexist->btc_get(btcoexist, BTC_GET_S4_HS_RSSI, &bt_hs_rssi)) + return false; + + bt_rssi_state = btc8723b2ant_bt_rssi_state(2, 35, 0); + + if (wifi_connected) { + if (bt_hs_on) { + if (bt_hs_rssi > 37) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], Need to decrease bt " + "power for HS mode!!\n"); + ret = true; + } + } else { + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], Need to decrease bt " + "power for Wifi is connected!!\n"); + ret = true; + } + } + } + + return ret; +} + +static void btc8723b2ant_set_fw_dac_swing_level(struct btc_coexist *btcoexist, + u8 dac_swing_lvl) +{ + u8 h2c_parameter[1] = {0}; + + /* There are several type of dacswing + * 0x18/ 0x10/ 0xc/ 0x8/ 0x4/ 0x6 + */ + h2c_parameter[0] = dac_swing_lvl; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], Set Dac Swing Level=0x%x\n", dac_swing_lvl); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], FW write 0x64=0x%x\n", h2c_parameter[0]); + + btcoexist->btc_fill_h2c(btcoexist, 0x64, 1, h2c_parameter); +} + +static void btc8723b2ant_set_fw_dec_bt_pwr(struct btc_coexist *btcoexist, + bool dec_bt_pwr) +{ + u8 h2c_parameter[1] = {0}; + + h2c_parameter[0] = 0; + + if (dec_bt_pwr) + h2c_parameter[0] |= BIT1; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], decrease Bt Power : %s, FW write 0x62=0x%x\n", + (dec_bt_pwr ? "Yes!!" : "No!!"), h2c_parameter[0]); + + btcoexist->btc_fill_h2c(btcoexist, 0x62, 1, h2c_parameter); +} + +static void btc8723b2ant_dec_bt_pwr(struct btc_coexist *btcoexist, + bool force_exec, bool dec_bt_pwr) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s Dec BT power = %s\n", + (force_exec ? "force to" : ""), (dec_bt_pwr ? "ON" : "OFF")); + coex_dm->cur_dec_bt_pwr = dec_bt_pwr; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], bPreDecBtPwr=%d, bCurDecBtPwr=%d\n", + coex_dm->pre_dec_bt_pwr, coex_dm->cur_dec_bt_pwr); + + if (coex_dm->pre_dec_bt_pwr == coex_dm->cur_dec_bt_pwr) + return; + } + btc8723b2ant_set_fw_dec_bt_pwr(btcoexist, coex_dm->cur_dec_bt_pwr); + + coex_dm->pre_dec_bt_pwr = coex_dm->cur_dec_bt_pwr; +} + +static void btc8723b2ant_fw_dac_swing_lvl(struct btc_coexist *btcoexist, + bool force_exec, u8 fw_dac_swing_lvl) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s set FW Dac Swing level = %d\n", + (force_exec ? "force to" : ""), fw_dac_swing_lvl); + coex_dm->cur_fw_dac_swing_lvl = fw_dac_swing_lvl; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], preFwDacSwingLvl=%d, " + "curFwDacSwingLvl=%d\n", + coex_dm->pre_fw_dac_swing_lvl, + coex_dm->cur_fw_dac_swing_lvl); + + if (coex_dm->pre_fw_dac_swing_lvl == + coex_dm->cur_fw_dac_swing_lvl) + return; + } + + btc8723b2ant_set_fw_dac_swing_level(btcoexist, + coex_dm->cur_fw_dac_swing_lvl); + coex_dm->pre_fw_dac_swing_lvl = coex_dm->cur_fw_dac_swing_lvl; +} + +static void btc8723b2ant_set_sw_rf_rx_lpf_corner(struct btc_coexist *btcoexist, + bool rx_rf_shrink_on) +{ + if (rx_rf_shrink_on) { + /* Shrink RF Rx LPF corner */ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Shrink RF Rx LPF corner!!\n"); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1e, + 0xfffff, 0xffffc); + } else { + /* Resume RF Rx LPF corner */ + /* After initialized, we can use coex_dm->btRf0x1eBackup */ + if (btcoexist->initilized) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Resume RF Rx LPF corner!!\n"); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1e, + 0xfffff, + coex_dm->bt_rf0x1e_backup); + } + } +} + +static void btc8723b2ant_rf_shrink(struct btc_coexist *btcoexist, + bool force_exec, bool rx_rf_shrink_on) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s turn Rx RF Shrink = %s\n", + (force_exec ? "force to" : ""), (rx_rf_shrink_on ? + "ON" : "OFF")); + coex_dm->cur_rf_rx_lpf_shrink = rx_rf_shrink_on; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], bPreRfRxLpfShrink=%d, " + "bCurRfRxLpfShrink=%d\n", + coex_dm->pre_rf_rx_lpf_shrink, + coex_dm->cur_rf_rx_lpf_shrink); + + if (coex_dm->pre_rf_rx_lpf_shrink == + coex_dm->cur_rf_rx_lpf_shrink) + return; + } + btc8723b2ant_set_sw_rf_rx_lpf_corner(btcoexist, + coex_dm->cur_rf_rx_lpf_shrink); + + coex_dm->pre_rf_rx_lpf_shrink = coex_dm->cur_rf_rx_lpf_shrink; +} + +static void btc8723b_set_penalty_txrate(struct btc_coexist *btcoexist, + bool low_penalty_ra) +{ + u8 h2c_parameter[6] = {0}; + + h2c_parameter[0] = 0x6; /* opCode, 0x6= Retry_Penalty*/ + + if (low_penalty_ra) { + h2c_parameter[1] |= BIT0; + /*normal rate except MCS7/6/5, OFDM54/48/36*/ + h2c_parameter[2] = 0x00; + h2c_parameter[3] = 0xf7; /*MCS7 or OFDM54*/ + h2c_parameter[4] = 0xf8; /*MCS6 or OFDM48*/ + h2c_parameter[5] = 0xf9; /*MCS5 or OFDM36*/ + } + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], set WiFi Low-Penalty Retry: %s", + (low_penalty_ra ? "ON!!" : "OFF!!")); + + btcoexist->btc_fill_h2c(btcoexist, 0x69, 6, h2c_parameter); +} + +static void btc8723b2ant_low_penalty_ra(struct btc_coexist *btcoexist, + bool force_exec, bool low_penalty_ra) +{ + /*return; */ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s turn LowPenaltyRA = %s\n", + (force_exec ? "force to" : ""), (low_penalty_ra ? + "ON" : "OFF")); + coex_dm->cur_low_penalty_ra = low_penalty_ra; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], bPreLowPenaltyRa=%d, " + "bCurLowPenaltyRa=%d\n", + coex_dm->pre_low_penalty_ra, + coex_dm->cur_low_penalty_ra); + + if (coex_dm->pre_low_penalty_ra == coex_dm->cur_low_penalty_ra) + return; + } + btc8723b_set_penalty_txrate(btcoexist, coex_dm->cur_low_penalty_ra); + + coex_dm->pre_low_penalty_ra = coex_dm->cur_low_penalty_ra; +} + +static void btc8723b2ant_set_dac_swing_reg(struct btc_coexist *btcoexist, + u32 level) +{ + u8 val = (u8) level; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Write SwDacSwing = 0x%x\n", level); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x883, 0x3e, val); +} + +static void btc8723b2ant_set_sw_fulltime_dac_swing(struct btc_coexist *btcoex, + bool sw_dac_swing_on, + u32 sw_dac_swing_lvl) +{ + if (sw_dac_swing_on) + btc8723b2ant_set_dac_swing_reg(btcoex, sw_dac_swing_lvl); + else + btc8723b2ant_set_dac_swing_reg(btcoex, 0x18); +} + + +static void btc8723b2ant_dac_swing(struct btc_coexist *btcoexist, + bool force_exec, bool dac_swing_on, + u32 dac_swing_lvl) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s turn DacSwing=%s, dac_swing_lvl=0x%x\n", + (force_exec ? "force to" : ""), + (dac_swing_on ? "ON" : "OFF"), dac_swing_lvl); + coex_dm->cur_dac_swing_on = dac_swing_on; + coex_dm->cur_dac_swing_lvl = dac_swing_lvl; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], bPreDacSwingOn=%d, preDacSwingLvl=0x%x," + " bCurDacSwingOn=%d, curDacSwingLvl=0x%x\n", + coex_dm->pre_dac_swing_on, coex_dm->pre_dac_swing_lvl, + coex_dm->cur_dac_swing_on, + coex_dm->cur_dac_swing_lvl); + + if ((coex_dm->pre_dac_swing_on == coex_dm->cur_dac_swing_on) && + (coex_dm->pre_dac_swing_lvl == coex_dm->cur_dac_swing_lvl)) + return; + } + mdelay(30); + btc8723b2ant_set_sw_fulltime_dac_swing(btcoexist, dac_swing_on, + dac_swing_lvl); + + coex_dm->pre_dac_swing_on = coex_dm->cur_dac_swing_on; + coex_dm->pre_dac_swing_lvl = coex_dm->cur_dac_swing_lvl; +} + +static void btc8723b2ant_set_agc_table(struct btc_coexist *btcoexist, + bool agc_table_en) +{ + u8 rssi_adjust_val = 0; + + /* BB AGC Gain Table */ + if (agc_table_en) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], BB Agc Table On!\n"); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x6e1A0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x6d1B0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x6c1C0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x6b1D0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x6a1E0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x691F0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x68200001); + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], BB Agc Table Off!\n"); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xaa1A0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xa91B0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xa81C0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xa71D0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xa61E0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xa51F0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xa4200001); + } + + + /* RF Gain */ + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0xef, 0xfffff, 0x02000); + if (agc_table_en) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Agc Table On!\n"); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, + 0xfffff, 0x38fff); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, + 0xfffff, 0x38ffe); + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Agc Table Off!\n"); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, + 0xfffff, 0x380c3); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, + 0xfffff, 0x28ce6); + } + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0xef, 0xfffff, 0x0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0xed, 0xfffff, 0x1); + + if (agc_table_en) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Agc Table On!\n"); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x40, + 0xfffff, 0x38fff); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x40, + 0xfffff, 0x38ffe); + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Agc Table Off!\n"); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x40, + 0xfffff, 0x380c3); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x40, + 0xfffff, 0x28ce6); + } + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0xed, 0xfffff, 0x0); + + /* set rssiAdjustVal for wifi module. */ + if (agc_table_en) + rssi_adjust_val = 8; + btcoexist->btc_set(btcoexist, BTC_SET_U1_RSSI_ADJ_VAL_FOR_AGC_TABLE_ON, + &rssi_adjust_val); +} + +static void btc8723b2ant_agc_table(struct btc_coexist *btcoexist, + bool force_exec, bool agc_table_en) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s %s Agc Table\n", + (force_exec ? "force to" : ""), + (agc_table_en ? "Enable" : "Disable")); + coex_dm->cur_agc_table_en = agc_table_en; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], bPreAgcTableEn=%d, bCurAgcTableEn=%d\n", + coex_dm->pre_agc_table_en, coex_dm->cur_agc_table_en); + + if (coex_dm->pre_agc_table_en == coex_dm->cur_agc_table_en) + return; + } + btc8723b2ant_set_agc_table(btcoexist, agc_table_en); + + coex_dm->pre_agc_table_en = coex_dm->cur_agc_table_en; +} + +static void btc8723b2ant_set_coex_table(struct btc_coexist *btcoexist, + u32 val0x6c0, u32 val0x6c4, + u32 val0x6c8, u8 val0x6cc) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], set coex table, set 0x6c0=0x%x\n", val0x6c0); + btcoexist->btc_write_4byte(btcoexist, 0x6c0, val0x6c0); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], set coex table, set 0x6c4=0x%x\n", val0x6c4); + btcoexist->btc_write_4byte(btcoexist, 0x6c4, val0x6c4); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], set coex table, set 0x6c8=0x%x\n", val0x6c8); + btcoexist->btc_write_4byte(btcoexist, 0x6c8, val0x6c8); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], set coex table, set 0x6cc=0x%x\n", val0x6cc); + btcoexist->btc_write_1byte(btcoexist, 0x6cc, val0x6cc); +} + +static void btc8723b2ant_coex_table(struct btc_coexist *btcoexist, + bool force_exec, u32 val0x6c0, + u32 val0x6c4, u32 val0x6c8, + u8 val0x6cc) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s write Coex Table 0x6c0=0x%x," + " 0x6c4=0x%x, 0x6c8=0x%x, 0x6cc=0x%x\n", + (force_exec ? "force to" : ""), val0x6c0, + val0x6c4, val0x6c8, val0x6cc); + coex_dm->cur_val0x6c0 = val0x6c0; + coex_dm->cur_val0x6c4 = val0x6c4; + coex_dm->cur_val0x6c8 = val0x6c8; + coex_dm->cur_val0x6cc = val0x6cc; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], preVal0x6c0=0x%x, " + "preVal0x6c4=0x%x, preVal0x6c8=0x%x, " + "preVal0x6cc=0x%x !!\n", + coex_dm->pre_val0x6c0, coex_dm->pre_val0x6c4, + coex_dm->pre_val0x6c8, coex_dm->pre_val0x6cc); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], curVal0x6c0=0x%x, " + "curVal0x6c4=0x%x, curVal0x6c8=0x%x, " + "curVal0x6cc=0x%x !!\n", + coex_dm->cur_val0x6c0, coex_dm->cur_val0x6c4, + coex_dm->cur_val0x6c8, coex_dm->cur_val0x6cc); + + if ((coex_dm->pre_val0x6c0 == coex_dm->cur_val0x6c0) && + (coex_dm->pre_val0x6c4 == coex_dm->cur_val0x6c4) && + (coex_dm->pre_val0x6c8 == coex_dm->cur_val0x6c8) && + (coex_dm->pre_val0x6cc == coex_dm->cur_val0x6cc)) + return; + } + btc8723b2ant_set_coex_table(btcoexist, val0x6c0, val0x6c4, + val0x6c8, val0x6cc); + + coex_dm->pre_val0x6c0 = coex_dm->cur_val0x6c0; + coex_dm->pre_val0x6c4 = coex_dm->cur_val0x6c4; + coex_dm->pre_val0x6c8 = coex_dm->cur_val0x6c8; + coex_dm->pre_val0x6cc = coex_dm->cur_val0x6cc; +} + +static void btc8723b_coex_tbl_type(struct btc_coexist *btcoexist, + bool force_exec, u8 type) +{ + switch (type) { + case 0: + btc8723b2ant_coex_table(btcoexist, force_exec, 0x55555555, + 0x55555555, 0xffff, 0x3); + break; + case 1: + btc8723b2ant_coex_table(btcoexist, force_exec, 0x55555555, + 0x5afa5afa, 0xffff, 0x3); + break; + case 2: + btc8723b2ant_coex_table(btcoexist, force_exec, 0x5a5a5a5a, + 0x5a5a5a5a, 0xffff, 0x3); + break; + case 3: + btc8723b2ant_coex_table(btcoexist, force_exec, 0xaaaaaaaa, + 0xaaaaaaaa, 0xffff, 0x3); + break; + case 4: + btc8723b2ant_coex_table(btcoexist, force_exec, 0xffffffff, + 0xffffffff, 0xffff, 0x3); + break; + case 5: + btc8723b2ant_coex_table(btcoexist, force_exec, 0x5fff5fff, + 0x5fff5fff, 0xffff, 0x3); + break; + case 6: + btc8723b2ant_coex_table(btcoexist, force_exec, 0x55ff55ff, + 0x5a5a5a5a, 0xffff, 0x3); + break; + case 7: + btc8723b2ant_coex_table(btcoexist, force_exec, 0x55ff55ff, + 0x5afa5afa, 0xffff, 0x3); + break; + case 8: + btc8723b2ant_coex_table(btcoexist, force_exec, 0x5aea5aea, + 0x5aea5aea, 0xffff, 0x3); + break; + case 9: + btc8723b2ant_coex_table(btcoexist, force_exec, 0x55ff55ff, + 0x5aea5aea, 0xffff, 0x3); + break; + case 10: + btc8723b2ant_coex_table(btcoexist, force_exec, 0x55ff55ff, + 0x5aff5aff, 0xffff, 0x3); + break; + case 11: + btc8723b2ant_coex_table(btcoexist, force_exec, 0x55ff55ff, + 0x5a5f5a5f, 0xffff, 0x3); + break; + case 12: + btc8723b2ant_coex_table(btcoexist, force_exec, 0x55ff55ff, + 0x5f5f5f5f, 0xffff, 0x3); + break; + default: + break; + } +} + +static void btc8723b2ant_set_fw_ignore_wlan_act(struct btc_coexist *btcoexist, + bool enable) +{ + u8 h2c_parameter[1] = {0}; + + if (enable) + h2c_parameter[0] |= BIT0;/* function enable*/ + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], set FW for BT Ignore Wlan_Act, " + "FW write 0x63=0x%x\n", h2c_parameter[0]); + + btcoexist->btc_fill_h2c(btcoexist, 0x63, 1, h2c_parameter); +} + +static void btc8723b2ant_ignore_wlan_act(struct btc_coexist *btcoexist, + bool force_exec, bool enable) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s turn Ignore WlanAct %s\n", + (force_exec ? "force to" : ""), (enable ? "ON" : "OFF")); + coex_dm->cur_ignore_wlan_act = enable; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], bPreIgnoreWlanAct = %d, " + "bCurIgnoreWlanAct = %d!!\n", + coex_dm->pre_ignore_wlan_act, + coex_dm->cur_ignore_wlan_act); + + if (coex_dm->pre_ignore_wlan_act == + coex_dm->cur_ignore_wlan_act) + return; + } + btc8723b2ant_set_fw_ignore_wlan_act(btcoexist, enable); + + coex_dm->pre_ignore_wlan_act = coex_dm->cur_ignore_wlan_act; +} + +static void btc8723b2ant_set_fw_ps_tdma(struct btc_coexist *btcoexist, u8 byte1, + u8 byte2, u8 byte3, u8 byte4, u8 byte5) +{ + u8 h2c_parameter[5]; + + h2c_parameter[0] = byte1; + h2c_parameter[1] = byte2; + h2c_parameter[2] = byte3; + h2c_parameter[3] = byte4; + h2c_parameter[4] = byte5; + + coex_dm->ps_tdma_para[0] = byte1; + coex_dm->ps_tdma_para[1] = byte2; + coex_dm->ps_tdma_para[2] = byte3; + coex_dm->ps_tdma_para[3] = byte4; + coex_dm->ps_tdma_para[4] = byte5; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], FW write 0x60(5bytes)=0x%x%08x\n", + h2c_parameter[0], + h2c_parameter[1] << 24 | h2c_parameter[2] << 16 | + h2c_parameter[3] << 8 | h2c_parameter[4]); + + btcoexist->btc_fill_h2c(btcoexist, 0x60, 5, h2c_parameter); +} + +static void btc8723b2ant_sw_mechanism1(struct btc_coexist *btcoexist, + bool shrink_rx_lpf, bool low_penalty_ra, + bool limited_dig, bool bt_lna_constrain) +{ + btc8723b2ant_rf_shrink(btcoexist, NORMAL_EXEC, shrink_rx_lpf); + btc8723b2ant_low_penalty_ra(btcoexist, NORMAL_EXEC, low_penalty_ra); +} + +static void btc8723b2ant_sw_mechanism2(struct btc_coexist *btcoexist, + bool agc_table_shift, bool adc_backoff, + bool sw_dac_swing, u32 dac_swing_lvl) +{ + btc8723b2ant_agc_table(btcoexist, NORMAL_EXEC, agc_table_shift); + btc8723b2ant_dac_swing(btcoexist, NORMAL_EXEC, sw_dac_swing, + dac_swing_lvl); +} + +static void btc8723b2ant_ps_tdma(struct btc_coexist *btcoexist, bool force_exec, + bool turn_on, u8 type) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s turn %s PS TDMA, type=%d\n", + (force_exec ? "force to" : ""), + (turn_on ? "ON" : "OFF"), type); + coex_dm->cur_ps_tdma_on = turn_on; + coex_dm->cur_ps_tdma = type; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], bPrePsTdmaOn = %d, bCurPsTdmaOn = %d!!\n", + coex_dm->pre_ps_tdma_on, coex_dm->cur_ps_tdma_on); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], prePsTdma = %d, curPsTdma = %d!!\n", + coex_dm->pre_ps_tdma, coex_dm->cur_ps_tdma); + + if ((coex_dm->pre_ps_tdma_on == coex_dm->cur_ps_tdma_on) && + (coex_dm->pre_ps_tdma == coex_dm->cur_ps_tdma)) + return; + } + if (turn_on) { + switch (type) { + case 1: + default: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x1a, + 0x1a, 0xe1, 0x90); + break; + case 2: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x12, + 0x12, 0xe1, 0x90); + break; + case 3: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x1c, + 0x3, 0xf1, 0x90); + break; + case 4: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x10, + 0x03, 0xf1, 0x90); + break; + case 5: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x1a, + 0x1a, 0x60, 0x90); + break; + case 6: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x12, + 0x12, 0x60, 0x90); + break; + case 7: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x1c, + 0x3, 0x70, 0x90); + break; + case 8: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xa3, 0x10, + 0x3, 0x70, 0x90); + break; + case 9: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x1a, + 0x1a, 0xe1, 0x90); + break; + case 10: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x12, + 0x12, 0xe1, 0x90); + break; + case 11: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0xa, + 0xa, 0xe1, 0x90); + break; + case 12: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x5, + 0x5, 0xe1, 0x90); + break; + case 13: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x1a, + 0x1a, 0x60, 0x90); + break; + case 14: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x12, + 0x12, 0x60, 0x90); + break; + case 15: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0xa, + 0xa, 0x60, 0x90); + break; + case 16: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x5, + 0x5, 0x60, 0x90); + break; + case 17: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xa3, 0x2f, + 0x2f, 0x60, 0x90); + break; + case 18: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x5, + 0x5, 0xe1, 0x90); + break; + case 19: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x25, + 0x25, 0xe1, 0x90); + break; + case 20: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x25, + 0x25, 0x60, 0x90); + break; + case 21: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x15, + 0x03, 0x70, 0x90); + break; + case 71: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x1a, + 0x1a, 0xe1, 0x90); + break; + } + } else { + /* disable PS tdma */ + switch (type) { + case 0: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0x0, 0x0, 0x0, + 0x40, 0x0); + break; + case 1: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0x0, 0x0, 0x0, + 0x48, 0x0); + break; + default: + btc8723b2ant_set_fw_ps_tdma(btcoexist, 0x0, 0x0, 0x0, + 0x40, 0x0); + break; + } + } + + /* update pre state */ + coex_dm->pre_ps_tdma_on = coex_dm->cur_ps_tdma_on; + coex_dm->pre_ps_tdma = coex_dm->cur_ps_tdma; +} + +static void btc8723b2ant_coex_alloff(struct btc_coexist *btcoexist) +{ + /* fw all off */ + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 1); + btc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + /* sw all off */ + btc8723b2ant_sw_mechanism1(btcoexist, false, false, false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, false, 0x18); + + /* hw all off */ + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 0); +} + +static void btc8723b2ant_init_coex_dm(struct btc_coexist *btcoexist) +{ + /* force to reset coex mechanism*/ + + btc8723b2ant_ps_tdma(btcoexist, FORCE_EXEC, false, 1); + btc8723b2ant_fw_dac_swing_lvl(btcoexist, FORCE_EXEC, 6); + btc8723b2ant_dec_bt_pwr(btcoexist, FORCE_EXEC, false); + + btc8723b2ant_sw_mechanism1(btcoexist, false, false, false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, false, 0x18); +} + +static void btc8723b2ant_action_bt_inquiry(struct btc_coexist *btcoexist) +{ + bool wifi_connected = false; + bool low_pwr_disable = true; + + btcoexist->btc_set(btcoexist, BTC_SET_ACT_DISABLE_LOW_POWER, + &low_pwr_disable); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + + if (wifi_connected) { + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 7); + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 3); + } else { + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 0); + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 1); + } + btc8723b2ant_fw_dac_swing_lvl(btcoexist, FORCE_EXEC, 6); + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btc8723b2ant_sw_mechanism1(btcoexist, false, false, false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, false, 0x18); + + coex_dm->need_recover_0x948 = true; + coex_dm->backup_0x948 = btcoexist->btc_read_2byte(btcoexist, 0x948); + + btcoexist->btc_write_2byte(btcoexist, 0x948, 0x280); +} + +static bool btc8723b2ant_is_common_action(struct btc_coexist *btcoexist) +{ + bool common = false, wifi_connected = false; + bool wifi_busy = false; + bool bt_hs_on = false, low_pwr_disable = false; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + + if (!wifi_connected) { + low_pwr_disable = false; + btcoexist->btc_set(btcoexist, BTC_SET_ACT_DISABLE_LOW_POWER, + &low_pwr_disable); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Wifi non-connected idle!!\n"); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, + 0x0); + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 0); + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 1); + btc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btc8723b2ant_sw_mechanism1(btcoexist, false, false, false, + false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, false, + 0x18); + + common = true; + } else { + if (BT_8723B_2ANT_BT_STATUS_NON_CONNECTED_IDLE == + coex_dm->bt_status) { + low_pwr_disable = false; + btcoexist->btc_set(btcoexist, + BTC_SET_ACT_DISABLE_LOW_POWER, + &low_pwr_disable); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Wifi connected + " + "BT non connected-idle!!\n"); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, + 0xfffff, 0x0); + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 0); + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 1); + btc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, + 0xb); + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, + false); + + btc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + + common = true; + } else if (BT_8723B_2ANT_BT_STATUS_CONNECTED_IDLE == + coex_dm->bt_status) { + low_pwr_disable = true; + btcoexist->btc_set(btcoexist, + BTC_SET_ACT_DISABLE_LOW_POWER, + &low_pwr_disable); + + if (bt_hs_on) + return false; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Wifi connected + " + "BT connected-idle!!\n"); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, + 0xfffff, 0x0); + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 0); + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 1); + btc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, + 0xb); + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, + false); + + btc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + + common = true; + } else { + low_pwr_disable = true; + btcoexist->btc_set(btcoexist, + BTC_SET_ACT_DISABLE_LOW_POWER, + &low_pwr_disable); + + if (wifi_busy) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Wifi Connected-Busy + " + "BT Busy!!\n"); + common = false; + } else { + if (bt_hs_on) + return false; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Wifi Connected-Idle + " + "BT Busy!!\n"); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, + 0x1, 0xfffff, 0x0); + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, + 7); + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 21); + btc8723b2ant_fw_dac_swing_lvl(btcoexist, + NORMAL_EXEC, + 0xb); + if (btc8723b_need_dec_pwr(btcoexist)) + btc8723b2ant_dec_bt_pwr(btcoexist, + NORMAL_EXEC, + true); + else + btc8723b2ant_dec_bt_pwr(btcoexist, + NORMAL_EXEC, + false); + btc8723b2ant_sw_mechanism1(btcoexist, false, + false, false, + false); + btc8723b2ant_sw_mechanism2(btcoexist, false, + false, false, + 0x18); + common = true; + } + } + } + + return common; +} + +static void set_tdma_int1(struct btc_coexist *btcoexist, bool tx_pause, + s32 result) +{ + /* Set PS TDMA for max interval == 1 */ + if (tx_pause) { + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], TxPause = 1\n"); + + if (coex_dm->cur_ps_tdma == 71) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 5); + coex_dm->tdma_adj_type = 5; + } else if (coex_dm->cur_ps_tdma == 1) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 5); + coex_dm->tdma_adj_type = 5; + } else if (coex_dm->cur_ps_tdma == 2) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 6); + coex_dm->tdma_adj_type = 6; + } else if (coex_dm->cur_ps_tdma == 3) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 7); + coex_dm->tdma_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 4) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 8); + coex_dm->tdma_adj_type = 8; + } else if (coex_dm->cur_ps_tdma == 9) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 13); + coex_dm->tdma_adj_type = 13; + } else if (coex_dm->cur_ps_tdma == 10) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 14); + coex_dm->tdma_adj_type = 14; + } else if (coex_dm->cur_ps_tdma == 11) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 15); + coex_dm->tdma_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 12) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 16); + coex_dm->tdma_adj_type = 16; + } + + if (result == -1) { + if (coex_dm->cur_ps_tdma == 5) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 6); + coex_dm->tdma_adj_type = 6; + } else if (coex_dm->cur_ps_tdma == 6) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 7); + coex_dm->tdma_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 7) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 8); + coex_dm->tdma_adj_type = 8; + } else if (coex_dm->cur_ps_tdma == 13) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 14); + coex_dm->tdma_adj_type = 14; + } else if (coex_dm->cur_ps_tdma == 14) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 15); + coex_dm->tdma_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 15) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 16); + coex_dm->tdma_adj_type = 16; + } + } else if (result == 1) { + if (coex_dm->cur_ps_tdma == 8) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 7); + coex_dm->tdma_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 7) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 6); + coex_dm->tdma_adj_type = 6; + } else if (coex_dm->cur_ps_tdma == 6) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 5); + coex_dm->tdma_adj_type = 5; + } else if (coex_dm->cur_ps_tdma == 16) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 15); + coex_dm->tdma_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 15) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 14); + coex_dm->tdma_adj_type = 14; + } else if (coex_dm->cur_ps_tdma == 14) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 13); + coex_dm->tdma_adj_type = 13; + } + } + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], TxPause = 0\n"); + if (coex_dm->cur_ps_tdma == 5) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 71); + coex_dm->tdma_adj_type = 71; + } else if (coex_dm->cur_ps_tdma == 6) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 2); + coex_dm->tdma_adj_type = 2; + } else if (coex_dm->cur_ps_tdma == 7) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 3); + coex_dm->tdma_adj_type = 3; + } else if (coex_dm->cur_ps_tdma == 8) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 4); + coex_dm->tdma_adj_type = 4; + } else if (coex_dm->cur_ps_tdma == 13) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 9); + coex_dm->tdma_adj_type = 9; + } else if (coex_dm->cur_ps_tdma == 14) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 10); + coex_dm->tdma_adj_type = 10; + } else if (coex_dm->cur_ps_tdma == 15) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 11); + coex_dm->tdma_adj_type = 11; + } else if (coex_dm->cur_ps_tdma == 16) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 12); + coex_dm->tdma_adj_type = 12; + } + + if (result == -1) { + if (coex_dm->cur_ps_tdma == 71) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 1); + coex_dm->tdma_adj_type = 1; + } else if (coex_dm->cur_ps_tdma == 1) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 2); + coex_dm->tdma_adj_type = 2; + } else if (coex_dm->cur_ps_tdma == 2) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 3); + coex_dm->tdma_adj_type = 3; + } else if (coex_dm->cur_ps_tdma == 3) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 4); + coex_dm->tdma_adj_type = 4; + } else if (coex_dm->cur_ps_tdma == 9) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 10); + coex_dm->tdma_adj_type = 10; + } else if (coex_dm->cur_ps_tdma == 10) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 11); + coex_dm->tdma_adj_type = 11; + } else if (coex_dm->cur_ps_tdma == 11) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 12); + coex_dm->tdma_adj_type = 12; + } + } else if (result == 1) { + int tmp = coex_dm->cur_ps_tdma; + switch (tmp) { + case 4: + case 3: + case 2: + case 12: + case 11: + case 10: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, tmp - 1); + coex_dm->tdma_adj_type = tmp - 1; + break; + case 1: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 71); + coex_dm->tdma_adj_type = 71; + break; + } + } + } +} + +static void set_tdma_int2(struct btc_coexist *btcoexist, bool tx_pause, + s32 result) +{ + /* Set PS TDMA for max interval == 2 */ + if (tx_pause) { + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], TxPause = 1\n"); + if (coex_dm->cur_ps_tdma == 1) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 6); + coex_dm->tdma_adj_type = 6; + } else if (coex_dm->cur_ps_tdma == 2) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 6); + coex_dm->tdma_adj_type = 6; + } else if (coex_dm->cur_ps_tdma == 3) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 7); + coex_dm->tdma_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 4) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 8); + coex_dm->tdma_adj_type = 8; + } else if (coex_dm->cur_ps_tdma == 9) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 14); + coex_dm->tdma_adj_type = 14; + } else if (coex_dm->cur_ps_tdma == 10) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 14); + coex_dm->tdma_adj_type = 14; + } else if (coex_dm->cur_ps_tdma == 11) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 15); + coex_dm->tdma_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 12) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 16); + coex_dm->tdma_adj_type = 16; + } + if (result == -1) { + if (coex_dm->cur_ps_tdma == 5) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 6); + coex_dm->tdma_adj_type = 6; + } else if (coex_dm->cur_ps_tdma == 6) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 7); + coex_dm->tdma_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 7) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 8); + coex_dm->tdma_adj_type = 8; + } else if (coex_dm->cur_ps_tdma == 13) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 14); + coex_dm->tdma_adj_type = 14; + } else if (coex_dm->cur_ps_tdma == 14) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 15); + coex_dm->tdma_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 15) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 16); + coex_dm->tdma_adj_type = 16; + } + } else if (result == 1) { + if (coex_dm->cur_ps_tdma == 8) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 7); + coex_dm->tdma_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 7) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 6); + coex_dm->tdma_adj_type = 6; + } else if (coex_dm->cur_ps_tdma == 6) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 6); + coex_dm->tdma_adj_type = 6; + } else if (coex_dm->cur_ps_tdma == 16) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 15); + coex_dm->tdma_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 15) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 14); + coex_dm->tdma_adj_type = 14; + } else if (coex_dm->cur_ps_tdma == 14) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 14); + coex_dm->tdma_adj_type = 14; + } + } + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], TxPause = 0\n"); + if (coex_dm->cur_ps_tdma == 5) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 2); + coex_dm->tdma_adj_type = 2; + } else if (coex_dm->cur_ps_tdma == 6) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 2); + coex_dm->tdma_adj_type = 2; + } else if (coex_dm->cur_ps_tdma == 7) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 3); + coex_dm->tdma_adj_type = 3; + } else if (coex_dm->cur_ps_tdma == 8) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 4); + coex_dm->tdma_adj_type = 4; + } else if (coex_dm->cur_ps_tdma == 13) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 10); + coex_dm->tdma_adj_type = 10; + } else if (coex_dm->cur_ps_tdma == 14) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 10); + coex_dm->tdma_adj_type = 10; + } else if (coex_dm->cur_ps_tdma == 15) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 11); + coex_dm->tdma_adj_type = 11; + } else if (coex_dm->cur_ps_tdma == 16) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 12); + coex_dm->tdma_adj_type = 12; + } + if (result == -1) { + if (coex_dm->cur_ps_tdma == 1) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 2); + coex_dm->tdma_adj_type = 2; + } else if (coex_dm->cur_ps_tdma == 2) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 3); + coex_dm->tdma_adj_type = 3; + } else if (coex_dm->cur_ps_tdma == 3) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 4); + coex_dm->tdma_adj_type = 4; + } else if (coex_dm->cur_ps_tdma == 9) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 10); + coex_dm->tdma_adj_type = 10; + } else if (coex_dm->cur_ps_tdma == 10) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 11); + coex_dm->tdma_adj_type = 11; + } else if (coex_dm->cur_ps_tdma == 11) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 12); + coex_dm->tdma_adj_type = 12; + } + } else if (result == 1) { + if (coex_dm->cur_ps_tdma == 4) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 3); + coex_dm->tdma_adj_type = 3; + } else if (coex_dm->cur_ps_tdma == 3) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 2); + coex_dm->tdma_adj_type = 2; + } else if (coex_dm->cur_ps_tdma == 2) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 2); + coex_dm->tdma_adj_type = 2; + } else if (coex_dm->cur_ps_tdma == 12) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 11); + coex_dm->tdma_adj_type = 11; + } else if (coex_dm->cur_ps_tdma == 11) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 10); + coex_dm->tdma_adj_type = 10; + } else if (coex_dm->cur_ps_tdma == 10) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 10); + coex_dm->tdma_adj_type = 10; + } + } + } +} + +static void set_tdma_int3(struct btc_coexist *btcoexist, bool tx_pause, + s32 result) +{ + /* Set PS TDMA for max interval == 3 */ + if (tx_pause) { + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], TxPause = 1\n"); + if (coex_dm->cur_ps_tdma == 1) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 7); + coex_dm->tdma_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 2) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 7); + coex_dm->tdma_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 3) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 7); + coex_dm->tdma_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 4) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 8); + coex_dm->tdma_adj_type = 8; + } else if (coex_dm->cur_ps_tdma == 9) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 15); + coex_dm->tdma_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 10) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 15); + coex_dm->tdma_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 11) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 15); + coex_dm->tdma_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 12) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 16); + coex_dm->tdma_adj_type = 16; + } + if (result == -1) { + if (coex_dm->cur_ps_tdma == 5) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 7); + coex_dm->tdma_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 6) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 7); + coex_dm->tdma_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 7) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 8); + coex_dm->tdma_adj_type = 8; + } else if (coex_dm->cur_ps_tdma == 13) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 15); + coex_dm->tdma_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 14) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 15); + coex_dm->tdma_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 15) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 16); + coex_dm->tdma_adj_type = 16; + } + } else if (result == 1) { + if (coex_dm->cur_ps_tdma == 8) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 7); + coex_dm->tdma_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 7) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 7); + coex_dm->tdma_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 6) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 7); + coex_dm->tdma_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 16) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 15); + coex_dm->tdma_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 15) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 15); + coex_dm->tdma_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 14) { + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 15); + coex_dm->tdma_adj_type = 15; + } + } + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], TxPause = 0\n"); + switch (coex_dm->cur_ps_tdma) { + case 5: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 3); + coex_dm->tdma_adj_type = 3; + break; + case 6: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 3); + coex_dm->tdma_adj_type = 3; + break; + case 7: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 3); + coex_dm->tdma_adj_type = 3; + break; + case 8: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 4); + coex_dm->tdma_adj_type = 4; + break; + case 13: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 11); + coex_dm->tdma_adj_type = 11; + break; + case 14: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 11); + coex_dm->tdma_adj_type = 11; + break; + case 15: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 11); + coex_dm->tdma_adj_type = 11; + break; + case 16: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 12); + coex_dm->tdma_adj_type = 12; + break; + } + if (result == -1) { + switch (coex_dm->cur_ps_tdma) { + case 1: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 3); + coex_dm->tdma_adj_type = 3; + break; + case 2: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 3); + coex_dm->tdma_adj_type = 3; + break; + case 3: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 4); + coex_dm->tdma_adj_type = 4; + break; + case 9: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 11); + coex_dm->tdma_adj_type = 11; + break; + case 10: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 11); + coex_dm->tdma_adj_type = 11; + break; + case 11: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 12); + coex_dm->tdma_adj_type = 12; + break; + } + } else if (result == 1) { + switch (coex_dm->cur_ps_tdma) { + case 4: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 3); + coex_dm->tdma_adj_type = 3; + break; + case 3: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 3); + coex_dm->tdma_adj_type = 3; + break; + case 2: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 3); + coex_dm->tdma_adj_type = 3; + break; + case 12: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 11); + coex_dm->tdma_adj_type = 11; + break; + case 11: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 11); + coex_dm->tdma_adj_type = 11; + break; + case 10: + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 11); + coex_dm->tdma_adj_type = 11; + } + } + } +} + +static void btc8723b2ant_tdma_duration_adjust(struct btc_coexist *btcoexist, + bool sco_hid, bool tx_pause, + u8 max_interval) +{ + static s32 up, dn, m, n, wait_count; + /*0: no change, +1: increase WiFi duration, -1: decrease WiFi duration*/ + s32 result; + u8 retry_count = 0; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], TdmaDurationAdjust()\n"); + + if (!coex_dm->auto_tdma_adjust) { + coex_dm->auto_tdma_adjust = true; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], first run TdmaDurationAdjust()!!\n"); + if (sco_hid) { + if (tx_pause) { + if (max_interval == 1) { + btc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 13); + coex_dm->tdma_adj_type = 13; + } else if (max_interval == 2) { + btc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->tdma_adj_type = 14; + } else if (max_interval == 3) { + btc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->tdma_adj_type = 15; + } else { + btc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->tdma_adj_type = 15; + } + } else { + if (max_interval == 1) { + btc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 9); + coex_dm->tdma_adj_type = 9; + } else if (max_interval == 2) { + btc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->tdma_adj_type = 10; + } else if (max_interval == 3) { + btc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->tdma_adj_type = 11; + } else { + btc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->tdma_adj_type = 11; + } + } + } else { + if (tx_pause) { + if (max_interval == 1) { + btc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 5); + coex_dm->tdma_adj_type = 5; + } else if (max_interval == 2) { + btc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->tdma_adj_type = 6; + } else if (max_interval == 3) { + btc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->tdma_adj_type = 7; + } else { + btc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->tdma_adj_type = 7; + } + } else { + if (max_interval == 1) { + btc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 1); + coex_dm->tdma_adj_type = 1; + } else if (max_interval == 2) { + btc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->tdma_adj_type = 2; + } else if (max_interval == 3) { + btc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->tdma_adj_type = 3; + } else { + btc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->tdma_adj_type = 3; + } + } + } + + up = 0; + dn = 0; + m = 1; + n = 3; + result = 0; + wait_count = 0; + } else { + /*accquire the BT TRx retry count from BT_Info byte2*/ + retry_count = coex_sta->bt_retry_cnt; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], retry_count = %d\n", retry_count); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], up=%d, dn=%d, m=%d, n=%d, wait_count=%d\n", + up, dn, m, n, wait_count); + result = 0; + wait_count++; + /* no retry in the last 2-second duration*/ + if (retry_count == 0) { + up++; + dn--; + + if (dn <= 0) + dn = 0; + + if (up >= n) { + wait_count = 0; + n = 3; + up = 0; + dn = 0; + result = 1; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], Increase wifi " + "duration!!\n"); + } /* <=3 retry in the last 2-second duration*/ + } else if (retry_count <= 3) { + up--; + dn++; + + if (up <= 0) + up = 0; + + if (dn == 2) { + if (wait_count <= 2) + m++; + else + m = 1; + + if (m >= 20) + m = 20; + + n = 3 * m; + up = 0; + dn = 0; + wait_count = 0; + result = -1; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], Decrease wifi duration " + "for retry_counter<3!!\n"); + } + } else { + if (wait_count == 1) + m++; + else + m = 1; + + if (m >= 20) + m = 20; + + n = 3 * m; + up = 0; + dn = 0; + wait_count = 0; + result = -1; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], Decrease wifi duration " + "for retry_counter>3!!\n"); + } + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], max Interval = %d\n", max_interval); + if (max_interval == 1) + set_tdma_int1(btcoexist, tx_pause, result); + else if (max_interval == 2) + set_tdma_int2(btcoexist, tx_pause, result); + else if (max_interval == 3) + set_tdma_int3(btcoexist, tx_pause, result); + } + + /*if current PsTdma not match with the recorded one (when scan, dhcp..), + *then we have to adjust it back to the previous recorded one. + */ + if (coex_dm->cur_ps_tdma != coex_dm->tdma_adj_type) { + bool scan = false, link = false, roam = false; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], PsTdma type dismatch!!!, " + "curPsTdma=%d, recordPsTdma=%d\n", + coex_dm->cur_ps_tdma, coex_dm->tdma_adj_type); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam); + + if (!scan && !link && !roam) + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, + coex_dm->tdma_adj_type); + else + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], roaming/link/scan is under" + " progress, will adjust next time!!!\n"); + } +} + +/* SCO only or SCO+PAN(HS) */ +static void btc8723b2ant_action_sco(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = btc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + + btc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 4); + + if (btc8723b_need_dec_pwr(btcoexist)) + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + /*for SCO quality at 11b/g mode*/ + if (BTC_WIFI_BW_LEGACY == wifi_bw) + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 2); + else /*for SCO quality & wifi performance balance at 11n mode*/ + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 8); + + /*for voice quality */ + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0); + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + true, 0x4); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + true, 0x4); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + true, 0x4); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + true, 0x4); + } + } +} + +static void btc8723b2ant_action_hid(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = btc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + bt_rssi_state = btc8723b2ant_bt_rssi_state(2, 35, 0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + + btc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (btc8723b_need_dec_pwr(btcoexist)) + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if (BTC_WIFI_BW_LEGACY == wifi_bw) /*/for HID at 11b/g mode*/ + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 7); + else /*for HID quality & wifi performance balance at 11n mode*/ + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 9); + + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 9); + else + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 13); + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +/*A2DP only / PAN(EDR) only/ A2DP+PAN(HS)*/ +static void btc8723b2ant_action_a2dp(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = btc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + bt_rssi_state = btc8723b2ant_bt_rssi_state(2, 35, 0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + + btc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (btc8723b_need_dec_pwr(btcoexist)) + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 7); + + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) + btc8723b2ant_tdma_duration_adjust(btcoexist, false, + false, 1); + else + btc8723b2ant_tdma_duration_adjust(btcoexist, false, true, 1); + + /* sw mechanism */ + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +static void btc8723b2ant_action_a2dp_pan_hs(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = btc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + + btc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (btc8723b_need_dec_pwr(btcoexist)) + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 7); + + btc8723b2ant_tdma_duration_adjust(btcoexist, false, true, 2); + + /* sw mechanism */ + btcoexist->btc_get(btcoexist, + BTC_GET_U4_WIFI_BW, &wifi_bw); + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +static void btc8723b2ant_action_pan_edr(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = btc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + bt_rssi_state = btc8723b2ant_bt_rssi_state(2, 35, 0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + + btc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (btc8723b_need_dec_pwr(btcoexist)) + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 10); + + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 1); + else + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 5); + + /* sw mechanism */ + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +/*PAN(HS) only*/ +static void btc8723b2ant_action_pan_hs(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = btc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + + btc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 7); + + btc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 1); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +/*PAN(EDR)+A2DP*/ +static void btc8723b2ant_action_pan_edr_a2dp(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = btc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + bt_rssi_state = btc8723b2ant_bt_rssi_state(2, 35, 0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + + btc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (btc8723b_need_dec_pwr(btcoexist)) + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 12); + if (BTC_WIFI_BW_HT40 == wifi_bw) + btc8723b2ant_tdma_duration_adjust(btcoexist, false, + true, 3); + else + btc8723b2ant_tdma_duration_adjust(btcoexist, false, + false, 3); + } else { + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 7); + btc8723b2ant_tdma_duration_adjust(btcoexist, false, true, 3); + } + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +static void btc8723b2ant_action_pan_edr_hid(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = btc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + bt_rssi_state = btc8723b2ant_bt_rssi_state(2, 35, 0); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if (btc8723b_need_dec_pwr(btcoexist)) + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + if (BTC_WIFI_BW_HT40 == wifi_bw) { + btc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, + 3); + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 11); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, + 0xfffff, 0x780); + } else { + btc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, + 6); + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 7); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, + 0xfffff, 0x0); + } + btc8723b2ant_tdma_duration_adjust(btcoexist, true, false, 2); + } else { + btc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 11); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, + 0x0); + btc8723b2ant_tdma_duration_adjust(btcoexist, true, true, 2); + } + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +/* HID+A2DP+PAN(EDR) */ +static void btc8723b2ant_action_hid_a2dp_pan_edr(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = btc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + bt_rssi_state = btc8723b2ant_bt_rssi_state(2, 35, 0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + + btc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (btc8723b_need_dec_pwr(btcoexist)) + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 7); + + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + if (BTC_WIFI_BW_HT40 == wifi_bw) + btc8723b2ant_tdma_duration_adjust(btcoexist, true, + true, 2); + else + btc8723b2ant_tdma_duration_adjust(btcoexist, true, + false, 3); + } else { + btc8723b2ant_tdma_duration_adjust(btcoexist, true, true, 3); + } + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +static void btc8723b2ant_action_hid_a2dp(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = btc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + bt_rssi_state = btc8723b2ant_bt_rssi_state(2, 35, 0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + + btc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (btc8723b_need_dec_pwr(btcoexist)) + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + btc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + btc8723b_coex_tbl_type(btcoexist, NORMAL_EXEC, 7); + + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) + btc8723b2ant_tdma_duration_adjust(btcoexist, true, false, 2); + else + btc8723b2ant_tdma_duration_adjust(btcoexist, true, true, 2); + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + btc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + btc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + btc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +static void btc8723b2ant_run_coexist_mechanism(struct btc_coexist *btcoexist) +{ + u8 algorithm = 0; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], RunCoexistMechanism()===>\n"); + + if (btcoexist->manual_control) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], RunCoexistMechanism(), " + "return for Manual CTRL <===\n"); + return; + } + + if (coex_sta->under_ips) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], wifi is under IPS !!!\n"); + return; + } + + algorithm = btc8723b2ant_action_algorithm(btcoexist); + if (coex_sta->c2h_bt_inquiry_page && + (BT_8723B_2ANT_COEX_ALGO_PANHS != algorithm)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT is under inquiry/page scan !!\n"); + btc8723b2ant_action_bt_inquiry(btcoexist); + return; + } else { + if (coex_dm->need_recover_0x948) { + coex_dm->need_recover_0x948 = false; + btcoexist->btc_write_2byte(btcoexist, 0x948, + coex_dm->backup_0x948); + } + } + + coex_dm->cur_algorithm = algorithm; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, "[BTCoex], Algorithm = %d\n", + coex_dm->cur_algorithm); + + if (btc8723b2ant_is_common_action(btcoexist)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant common.\n"); + coex_dm->auto_tdma_adjust = false; + } else { + if (coex_dm->cur_algorithm != coex_dm->pre_algorithm) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], preAlgorithm=%d, " + "curAlgorithm=%d\n", coex_dm->pre_algorithm, + coex_dm->cur_algorithm); + coex_dm->auto_tdma_adjust = false; + } + switch (coex_dm->cur_algorithm) { + case BT_8723B_2ANT_COEX_ALGO_SCO: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, algorithm = SCO.\n"); + btc8723b2ant_action_sco(btcoexist); + break; + case BT_8723B_2ANT_COEX_ALGO_HID: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, algorithm = HID.\n"); + btc8723b2ant_action_hid(btcoexist); + break; + case BT_8723B_2ANT_COEX_ALGO_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, " + "algorithm = A2DP.\n"); + btc8723b2ant_action_a2dp(btcoexist); + break; + case BT_8723B_2ANT_COEX_ALGO_A2DP_PANHS: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, " + "algorithm = A2DP+PAN(HS).\n"); + btc8723b2ant_action_a2dp_pan_hs(btcoexist); + break; + case BT_8723B_2ANT_COEX_ALGO_PANEDR: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, " + "algorithm = PAN(EDR).\n"); + btc8723b2ant_action_pan_edr(btcoexist); + break; + case BT_8723B_2ANT_COEX_ALGO_PANHS: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, " + "algorithm = HS mode.\n"); + btc8723b2ant_action_pan_hs(btcoexist); + break; + case BT_8723B_2ANT_COEX_ALGO_PANEDR_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, " + "algorithm = PAN+A2DP.\n"); + btc8723b2ant_action_pan_edr_a2dp(btcoexist); + break; + case BT_8723B_2ANT_COEX_ALGO_PANEDR_HID: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, " + "algorithm = PAN(EDR)+HID.\n"); + btc8723b2ant_action_pan_edr_hid(btcoexist); + break; + case BT_8723B_2ANT_COEX_ALGO_HID_A2DP_PANEDR: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, " + "algorithm = HID+A2DP+PAN.\n"); + btc8723b2ant_action_hid_a2dp_pan_edr(btcoexist); + break; + case BT_8723B_2ANT_COEX_ALGO_HID_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, " + "algorithm = HID+A2DP.\n"); + btc8723b2ant_action_hid_a2dp(btcoexist); + break; + default: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, " + "algorithm = coexist All Off!!\n"); + btc8723b2ant_coex_alloff(btcoexist); + break; + } + coex_dm->pre_algorithm = coex_dm->cur_algorithm; + } +} + + + +/********************************************************************* + * work around function start with wa_btc8723b2ant_ + *********************************************************************/ +/********************************************************************* + * extern function start with EXbtc8723b2ant_ + *********************************************************************/ +void ex_halbtc8723b2ant_init_hwconfig(struct btc_coexist *btcoexist) +{ + struct btc_board_info *board_info = &btcoexist->board_info; + u32 u32tmp = 0, fw_ver; + u8 u8tmp = 0; + u8 h2c_parameter[2] = {0}; + + + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], 2Ant Init HW Config!!\n"); + + /* backup rf 0x1e value */ + coex_dm->bt_rf0x1e_backup = btcoexist->btc_get_rf_reg(btcoexist, + BTC_RF_A, 0x1e, + 0xfffff); + + /* 0x4c[23]=0, 0x4c[24]=1 Antenna control by WL/BT */ + u32tmp = btcoexist->btc_read_4byte(btcoexist, 0x4c); + u32tmp &= ~BIT23; + u32tmp |= BIT24; + btcoexist->btc_write_4byte(btcoexist, 0x4c, u32tmp); + + btcoexist->btc_write_1byte(btcoexist, 0x974, 0xff); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x944, 0x3, 0x3); + btcoexist->btc_write_1byte(btcoexist, 0x930, 0x77); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x67, 0x20, 0x1); + + /* Antenna switch control parameter */ + /* btcoexist->btc_write_4byte(btcoexist, 0x858, 0x55555555);*/ + + /*Force GNT_BT to low*/ + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x765, 0x18, 0x0); + btcoexist->btc_write_2byte(btcoexist, 0x948, 0x0); + + /* 0x790[5:0]=0x5 */ + u8tmp = btcoexist->btc_read_1byte(btcoexist, 0x790); + u8tmp &= 0xc0; + u8tmp |= 0x5; + btcoexist->btc_write_1byte(btcoexist, 0x790, u8tmp); + + + /*Antenna config */ + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_FW_VER, &fw_ver); + + /*ext switch for fw ver < 0xc */ + if (fw_ver < 0xc00) { + if (board_info->btdm_ant_pos == BTC_ANTENNA_AT_MAIN_PORT) { + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x92c, + 0x3, 0x1); + /*Main Ant to BT for IPS case 0x4c[23]=1*/ + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x64, 0x1, + 0x1); + + /*tell firmware "no antenna inverse"*/ + h2c_parameter[0] = 0; + h2c_parameter[1] = 1; /* ext switch type */ + btcoexist->btc_fill_h2c(btcoexist, 0x65, 2, + h2c_parameter); + } else { + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x92c, + 0x3, 0x2); + /*Aux Ant to BT for IPS case 0x4c[23]=1*/ + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x64, 0x1, + 0x0); + + /*tell firmware "antenna inverse"*/ + h2c_parameter[0] = 1; + h2c_parameter[1] = 1; /*ext switch type*/ + btcoexist->btc_fill_h2c(btcoexist, 0x65, 2, + h2c_parameter); + } + } else { + /*ext switch always at s1 (if exist) */ + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x92c, 0x3, 0x1); + /*Main Ant to BT for IPS case 0x4c[23]=1*/ + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x64, 0x1, 0x1); + + if (board_info->btdm_ant_pos == BTC_ANTENNA_AT_MAIN_PORT) { + /*tell firmware "no antenna inverse"*/ + h2c_parameter[0] = 0; + h2c_parameter[1] = 0; /*ext switch type*/ + btcoexist->btc_fill_h2c(btcoexist, 0x65, 2, + h2c_parameter); + } else { + /*tell firmware "antenna inverse"*/ + h2c_parameter[0] = 1; + h2c_parameter[1] = 0; /*ext switch type*/ + btcoexist->btc_fill_h2c(btcoexist, 0x65, 2, + h2c_parameter); + } + } + + /* PTA parameter */ + btc8723b_coex_tbl_type(btcoexist, FORCE_EXEC, 0); + + /* Enable counter statistics */ + /*0x76e[3] =1, WLAN_Act control by PTA*/ + btcoexist->btc_write_1byte(btcoexist, 0x76e, 0xc); + btcoexist->btc_write_1byte(btcoexist, 0x778, 0x3); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x40, 0x20, 0x1); +} + +void ex_halbtc8723b2ant_init_coex_dm(struct btc_coexist *btcoexist) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], Coex Mechanism Init!!\n"); + btc8723b2ant_init_coex_dm(btcoexist); +} + +void ex_halbtc8723b2ant_display_coex_info(struct btc_coexist *btcoexist) +{ + struct btc_board_info *board_info = &btcoexist->board_info; + struct btc_stack_info *stack_info = &btcoexist->stack_info; + struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; + u8 *cli_buf = btcoexist->cli_buf; + u8 u8tmp[4], i, bt_info_ext, ps_tdma_case = 0; + u32 u32tmp[4]; + bool roam = false, scan = false; + bool link = false, wifi_under_5g = false; + bool bt_hs_on = false, wifi_busy = false; + s32 wifi_rssi = 0, bt_hs_rssi = 0; + u32 wifi_bw, wifi_traffic_dir, fa_ofdm, fa_cck; + u8 wifi_dot11_chnl, wifi_hs_chnl; + u32 fw_ver = 0, bt_patch_ver = 0; + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n ============[BT Coexist info]============"); + CL_PRINTF(cli_buf); + + if (btcoexist->manual_control) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n ==========[Under Manual Control]============"); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n =========================================="); + CL_PRINTF(cli_buf); + } + + if (!board_info->bt_exist) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n BT not exists !!!"); + CL_PRINTF(cli_buf); + return; + } + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d ", + "Ant PG number/ Ant mechanism:", + board_info->pg_ant_num, board_info->btdm_ant_num); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s / %d", + "BT stack/ hci ext ver", + ((stack_info->profile_notified) ? "Yes" : "No"), + stack_info->hci_version); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_BT_PATCH_VER, &bt_patch_ver); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_FW_VER, &fw_ver); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %d_%x/ 0x%x/ 0x%x(%d)", + "CoexVer/ FwVer/ PatchVer", + glcoex_ver_date_8723b_2ant, glcoex_ver_8723b_2ant, + fw_ver, bt_patch_ver, bt_patch_ver); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_DOT11_CHNL, + &wifi_dot11_chnl); + btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_HS_CHNL, &wifi_hs_chnl); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d(%d)", + "Dot11 channel / HsChnl(HsMode)", + wifi_dot11_chnl, wifi_hs_chnl, bt_hs_on); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x ", + "H2C Wifi inform bt chnl Info", coex_dm->wifi_chnl_info[0], + coex_dm->wifi_chnl_info[1], coex_dm->wifi_chnl_info[2]); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_S4_WIFI_RSSI, &wifi_rssi); + btcoexist->btc_get(btcoexist, BTC_GET_S4_HS_RSSI, &bt_hs_rssi); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", + "Wifi rssi/ HS rssi", wifi_rssi, bt_hs_rssi); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d ", + "Wifi link/ roam/ scan", link, roam, scan); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_TRAFFIC_DIRECTION, + &wifi_traffic_dir); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s / %s/ %s ", + "Wifi status", (wifi_under_5g ? "5G" : "2.4G"), + ((BTC_WIFI_BW_LEGACY == wifi_bw) ? "Legacy" : + (((BTC_WIFI_BW_HT40 == wifi_bw) ? "HT40" : "HT20"))), + ((!wifi_busy) ? "idle" : + ((BTC_WIFI_TRAFFIC_TX == wifi_traffic_dir) ? + "uplink" : "downlink"))); + CL_PRINTF(cli_buf); + + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d / %d / %d", + "SCO/HID/PAN/A2DP", + bt_link_info->sco_exist, bt_link_info->hid_exist, + bt_link_info->pan_exist, bt_link_info->a2dp_exist); + CL_PRINTF(cli_buf); + btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_BT_LINK_INFO); + + bt_info_ext = coex_sta->bt_info_ext; + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s", + "BT Info A2DP rate", + (bt_info_ext&BIT0) ? "Basic rate" : "EDR rate"); + CL_PRINTF(cli_buf); + + for (i = 0; i < BT_INFO_SRC_8723B_2ANT_MAX; i++) { + if (coex_sta->bt_info_c2h_cnt[i]) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %02x %02x %02x " + "%02x %02x %02x %02x(%d)", + glbt_info_src_8723b_2ant[i], + coex_sta->bt_info_c2h[i][0], + coex_sta->bt_info_c2h[i][1], + coex_sta->bt_info_c2h[i][2], + coex_sta->bt_info_c2h[i][3], + coex_sta->bt_info_c2h[i][4], + coex_sta->bt_info_c2h[i][5], + coex_sta->bt_info_c2h[i][6], + coex_sta->bt_info_c2h_cnt[i]); + CL_PRINTF(cli_buf); + } + } + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/%s", + "PS state, IPS/LPS", + ((coex_sta->under_ips ? "IPS ON" : "IPS OFF")), + ((coex_sta->under_lps ? "LPS ON" : "LPS OFF"))); + CL_PRINTF(cli_buf); + btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_FW_PWR_MODE_CMD); + + /* Sw mechanism */ + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s", "============[Sw mechanism]============"); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d ", + "SM1[ShRf/ LpRA/ LimDig]", coex_dm->cur_rf_rx_lpf_shrink, + coex_dm->cur_low_penalty_ra, coex_dm->limited_dig); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d(0x%x) ", + "SM2[AgcT/ AdcB/ SwDacSwing(lvl)]", + coex_dm->cur_agc_table_en, coex_dm->cur_adc_back_off, + coex_dm->cur_dac_swing_on, coex_dm->cur_dac_swing_lvl); + CL_PRINTF(cli_buf); + + /* Fw mechanism */ + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", + "============[Fw mechanism]============"); + CL_PRINTF(cli_buf); + + ps_tdma_case = coex_dm->cur_ps_tdma; + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %02x %02x %02x %02x %02x case-%d (auto:%d)", + "PS TDMA", coex_dm->ps_tdma_para[0], + coex_dm->ps_tdma_para[1], coex_dm->ps_tdma_para[2], + coex_dm->ps_tdma_para[3], coex_dm->ps_tdma_para[4], + ps_tdma_case, coex_dm->auto_tdma_adjust); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d ", + "DecBtPwr/ IgnWlanAct", coex_dm->cur_dec_bt_pwr, + coex_dm->cur_ignore_wlan_act); + CL_PRINTF(cli_buf); + + /* Hw setting */ + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", + "============[Hw setting]============"); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", + "RF-A, 0x1e initVal", coex_dm->bt_rf0x1e_backup); + CL_PRINTF(cli_buf); + + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x778); + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x880); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", + "0x778/0x880[29:25]", u8tmp[0], + (u32tmp[0]&0x3e000000) >> 25); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x948); + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x67); + u8tmp[1] = btcoexist->btc_read_1byte(btcoexist, 0x765); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", + "0x948/ 0x67[5] / 0x765", + u32tmp[0], ((u8tmp[0]&0x20) >> 5), u8tmp[1]); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x92c); + u32tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0x930); + u32tmp[2] = btcoexist->btc_read_4byte(btcoexist, 0x944); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", + "0x92c[1:0]/ 0x930[7:0]/0x944[1:0]", + u32tmp[0]&0x3, u32tmp[1]&0xff, u32tmp[2]&0x3); + CL_PRINTF(cli_buf); + + + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x39); + u8tmp[1] = btcoexist->btc_read_1byte(btcoexist, 0x40); + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x4c); + u8tmp[2] = btcoexist->btc_read_1byte(btcoexist, 0x64); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", + "0x38[11]/0x40/0x4c[24:23]/0x64[0]", + ((u8tmp[0] & 0x8)>>3), u8tmp[1], + ((u32tmp[0]&0x01800000)>>23), u8tmp[2]&0x1); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x550); + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x522); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", + "0x550(bcn ctrl)/0x522", u32tmp[0], u8tmp[0]); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0xc50); + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x49c); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", + "0xc50(dig)/0x49c(null-drop)", u32tmp[0]&0xff, u8tmp[0]); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0xda0); + u32tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0xda4); + u32tmp[2] = btcoexist->btc_read_4byte(btcoexist, 0xda8); + u32tmp[3] = btcoexist->btc_read_4byte(btcoexist, 0xcf0); + + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0xa5b); + u8tmp[1] = btcoexist->btc_read_1byte(btcoexist, 0xa5c); + + fa_ofdm = ((u32tmp[0]&0xffff0000) >> 16) + + ((u32tmp[1]&0xffff0000) >> 16) + + (u32tmp[1] & 0xffff) + + (u32tmp[2] & 0xffff) + + ((u32tmp[3]&0xffff0000) >> 16) + + (u32tmp[3] & 0xffff); + fa_cck = (u8tmp[0] << 8) + u8tmp[1]; + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", + "OFDM-CCA/OFDM-FA/CCK-FA", + u32tmp[0]&0xffff, fa_ofdm, fa_cck); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x6c0); + u32tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0x6c4); + u32tmp[2] = btcoexist->btc_read_4byte(btcoexist, 0x6c8); + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x6cc); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", + "0x6c0/0x6c4/0x6c8/0x6cc(coexTable)", + u32tmp[0], u32tmp[1], u32tmp[2], u8tmp[0]); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", + "0x770(high-pri rx/tx)", + coex_sta->high_priority_rx, coex_sta->high_priority_tx); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", + "0x774(low-pri rx/tx)", coex_sta->low_priority_rx, + coex_sta->low_priority_tx); + CL_PRINTF(cli_buf); +#if (BT_AUTO_REPORT_ONLY_8723B_2ANT == 1) + btc8723b2ant_monitor_bt_ctr(btcoexist); +#endif + btcoexist->btc_disp_dbg_msg(btcoexist, + BTC_DBG_DISP_COEX_STATISTICS); +} + + +void ex_halbtc8723b2ant_ips_notify(struct btc_coexist *btcoexist, u8 type) +{ + if (BTC_IPS_ENTER == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], IPS ENTER notify\n"); + coex_sta->under_ips = true; + btc8723b2ant_coex_alloff(btcoexist); + } else if (BTC_IPS_LEAVE == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], IPS LEAVE notify\n"); + coex_sta->under_ips = false; + } +} + +void ex_halbtc8723b2ant_lps_notify(struct btc_coexist *btcoexist, u8 type) +{ + if (BTC_LPS_ENABLE == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], LPS ENABLE notify\n"); + coex_sta->under_lps = true; + } else if (BTC_LPS_DISABLE == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], LPS DISABLE notify\n"); + coex_sta->under_lps = false; + } +} + +void ex_halbtc8723b2ant_scan_notify(struct btc_coexist *btcoexist, u8 type) +{ + if (BTC_SCAN_START == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], SCAN START notify\n"); + else if (BTC_SCAN_FINISH == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], SCAN FINISH notify\n"); +} + +void ex_halbtc8723b2ant_connect_notify(struct btc_coexist *btcoexist, u8 type) +{ + if (BTC_ASSOCIATE_START == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], CONNECT START notify\n"); + else if (BTC_ASSOCIATE_FINISH == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], CONNECT FINISH notify\n"); +} + +void btc8723b_med_stat_notify(struct btc_coexist *btcoexist, + u8 type) +{ + u8 h2c_parameter[3] = {0}; + u32 wifi_bw; + u8 wifi_central_chnl; + + if (BTC_MEDIA_CONNECT == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], MEDIA connect notify\n"); + else + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], MEDIA disconnect notify\n"); + + /* only 2.4G we need to inform bt the chnl mask */ + btcoexist->btc_get(btcoexist, + BTC_GET_U1_WIFI_CENTRAL_CHNL, &wifi_central_chnl); + if ((BTC_MEDIA_CONNECT == type) && + (wifi_central_chnl <= 14)) { + h2c_parameter[0] = 0x1; + h2c_parameter[1] = wifi_central_chnl; + btcoexist->btc_get(btcoexist, + BTC_GET_U4_WIFI_BW, &wifi_bw); + if (BTC_WIFI_BW_HT40 == wifi_bw) + h2c_parameter[2] = 0x30; + else + h2c_parameter[2] = 0x20; + } + + coex_dm->wifi_chnl_info[0] = h2c_parameter[0]; + coex_dm->wifi_chnl_info[1] = h2c_parameter[1]; + coex_dm->wifi_chnl_info[2] = h2c_parameter[2]; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], FW write 0x66=0x%x\n", + h2c_parameter[0] << 16 | h2c_parameter[1] << 8 | + h2c_parameter[2]); + + btcoexist->btc_fill_h2c(btcoexist, 0x66, 3, h2c_parameter); +} + +void ex_halbtc8723b2ant_special_packet_notify(struct btc_coexist *btcoexist, + u8 type) +{ + if (type == BTC_PACKET_DHCP) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], DHCP Packet notify\n"); +} + +void ex_halbtc8723b2ant_bt_info_notify(struct btc_coexist *btcoexist, + u8 *tmpbuf, u8 length) +{ + u8 bt_info = 0; + u8 i, rsp_source = 0; + bool bt_busy = false, limited_dig = false; + bool wifi_connected = false; + + coex_sta->c2h_bt_info_req_sent = false; + + rsp_source = tmpbuf[0]&0xf; + if (rsp_source >= BT_INFO_SRC_8723B_2ANT_MAX) + rsp_source = BT_INFO_SRC_8723B_2ANT_WIFI_FW; + coex_sta->bt_info_c2h_cnt[rsp_source]++; + + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], Bt info[%d], length=%d, hex data=[", + rsp_source, length); + for (i = 0; i < length; i++) { + coex_sta->bt_info_c2h[rsp_source][i] = tmpbuf[i]; + if (i == 1) + bt_info = tmpbuf[i]; + if (i == length-1) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "0x%02x]\n", tmpbuf[i]); + else + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "0x%02x, ", tmpbuf[i]); + } + + if (btcoexist->manual_control) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BtInfoNotify(), " + "return for Manual CTRL<===\n"); + return; + } + + if (BT_INFO_SRC_8723B_2ANT_WIFI_FW != rsp_source) { + coex_sta->bt_retry_cnt = /* [3:0]*/ + coex_sta->bt_info_c2h[rsp_source][2] & 0xf; + + coex_sta->bt_rssi = + coex_sta->bt_info_c2h[rsp_source][3] * 2 + 10; + + coex_sta->bt_info_ext = + coex_sta->bt_info_c2h[rsp_source][4]; + + /* Here we need to resend some wifi info to BT + * because bt is reset and loss of the info. + */ + if ((coex_sta->bt_info_ext & BIT1)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT ext info bit1 check," + " send wifi BW&Chnl to BT!!\n"); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + if (wifi_connected) + btc8723b_med_stat_notify(btcoexist, + BTC_MEDIA_CONNECT); + else + btc8723b_med_stat_notify(btcoexist, + BTC_MEDIA_DISCONNECT); + } + + if ((coex_sta->bt_info_ext & BIT3)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT ext info bit3 check, " + "set BT NOT to ignore Wlan active!!\n"); + btc8723b2ant_ignore_wlan_act(btcoexist, FORCE_EXEC, + false); + } else { + /* BT already NOT ignore Wlan active, do nothing here.*/ + } +#if (BT_AUTO_REPORT_ONLY_8723B_2ANT == 0) + if ((coex_sta->bt_info_ext & BIT4)) { + /* BT auto report already enabled, do nothing*/ + } else { + btc8723b2ant_bt_auto_report(btcoexist, FORCE_EXEC, + true); + } +#endif + } + + /* check BIT2 first ==> check if bt is under inquiry or page scan*/ + if (bt_info & BT_INFO_8723B_2ANT_B_INQ_PAGE) + coex_sta->c2h_bt_inquiry_page = true; + else + coex_sta->c2h_bt_inquiry_page = false; + + /* set link exist status*/ + if (!(bt_info & BT_INFO_8723B_2ANT_B_CONNECTION)) { + coex_sta->bt_link_exist = false; + coex_sta->pan_exist = false; + coex_sta->a2dp_exist = false; + coex_sta->hid_exist = false; + coex_sta->sco_exist = false; + } else { /* connection exists */ + coex_sta->bt_link_exist = true; + if (bt_info & BT_INFO_8723B_2ANT_B_FTP) + coex_sta->pan_exist = true; + else + coex_sta->pan_exist = false; + if (bt_info & BT_INFO_8723B_2ANT_B_A2DP) + coex_sta->a2dp_exist = true; + else + coex_sta->a2dp_exist = false; + if (bt_info & BT_INFO_8723B_2ANT_B_HID) + coex_sta->hid_exist = true; + else + coex_sta->hid_exist = false; + if (bt_info & BT_INFO_8723B_2ANT_B_SCO_ESCO) + coex_sta->sco_exist = true; + else + coex_sta->sco_exist = false; + } + + btc8723b2ant_update_bt_link_info(btcoexist); + + if (!(bt_info & BT_INFO_8723B_2ANT_B_CONNECTION)) { + coex_dm->bt_status = BT_8723B_2ANT_BT_STATUS_NON_CONNECTED_IDLE; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BtInfoNotify(), " + "BT Non-Connected idle!!!\n"); + /* connection exists but no busy */ + } else if (bt_info == BT_INFO_8723B_2ANT_B_CONNECTION) { + coex_dm->bt_status = BT_8723B_2ANT_BT_STATUS_CONNECTED_IDLE; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BtInfoNotify(), BT Connected-idle!!!\n"); + } else if ((bt_info & BT_INFO_8723B_2ANT_B_SCO_ESCO) || + (bt_info & BT_INFO_8723B_2ANT_B_SCO_BUSY)) { + coex_dm->bt_status = BT_8723B_2ANT_BT_STATUS_SCO_BUSY; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BtInfoNotify(), BT SCO busy!!!\n"); + } else if (bt_info & BT_INFO_8723B_2ANT_B_ACL_BUSY) { + coex_dm->bt_status = BT_8723B_2ANT_BT_STATUS_ACL_BUSY; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BtInfoNotify(), BT ACL busy!!!\n"); + } else { + coex_dm->bt_status = BT_8723B_2ANT_BT_STATUS_MAX; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BtInfoNotify(), " + "BT Non-Defined state!!!\n"); + } + + if ((BT_8723B_2ANT_BT_STATUS_ACL_BUSY == coex_dm->bt_status) || + (BT_8723B_2ANT_BT_STATUS_SCO_BUSY == coex_dm->bt_status) || + (BT_8723B_2ANT_BT_STATUS_ACL_SCO_BUSY == coex_dm->bt_status)) { + bt_busy = true; + limited_dig = true; + } else { + bt_busy = false; + limited_dig = false; + } + + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_TRAFFIC_BUSY, &bt_busy); + + coex_dm->limited_dig = limited_dig; + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_LIMITED_DIG, &limited_dig); + + btc8723b2ant_run_coexist_mechanism(btcoexist); +} + +void ex_halbtc8723b2ant_stack_operation_notify(struct btc_coexist *btcoexist, + u8 type) +{ + if (BTC_STACK_OP_INQ_PAGE_PAIR_START == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex],StackOP Inquiry/page/pair start notify\n"); + else if (BTC_STACK_OP_INQ_PAGE_PAIR_FINISH == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex],StackOP Inquiry/page/pair finish notify\n"); +} + +void ex_halbtc8723b2ant_halt_notify(struct btc_coexist *btcoexist) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, "[BTCoex], Halt notify\n"); + + btc8723b2ant_ignore_wlan_act(btcoexist, FORCE_EXEC, true); + btc8723b_med_stat_notify(btcoexist, BTC_MEDIA_DISCONNECT); +} + +void ex_halbtc8723b2ant_periodical(struct btc_coexist *btcoexist) +{ + struct btc_board_info *board_info = &btcoexist->board_info; + struct btc_stack_info *stack_info = &btcoexist->stack_info; + static u8 dis_ver_info_cnt; + u32 fw_ver = 0, bt_patch_ver = 0; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], ==========================" + "Periodical===========================\n"); + + if (dis_ver_info_cnt <= 5) { + dis_ver_info_cnt += 1; + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], ****************************" + "************************************\n"); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], Ant PG Num/ Ant Mech/ " + "Ant Pos = %d/ %d/ %d\n", board_info->pg_ant_num, + board_info->btdm_ant_num, board_info->btdm_ant_pos); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], BT stack/ hci ext ver = %s / %d\n", + ((stack_info->profile_notified) ? "Yes" : "No"), + stack_info->hci_version); + btcoexist->btc_get(btcoexist, BTC_GET_U4_BT_PATCH_VER, + &bt_patch_ver); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_FW_VER, &fw_ver); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], CoexVer/ FwVer/ PatchVer = " + "%d_%x/ 0x%x/ 0x%x(%d)\n", + glcoex_ver_date_8723b_2ant, glcoex_ver_8723b_2ant, + fw_ver, bt_patch_ver, bt_patch_ver); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], *****************************" + "***********************************\n"); + } + +#if (BT_AUTO_REPORT_ONLY_8723B_2ANT == 0) + btc8723b2ant_query_bt_info(btcoexist); + btc8723b2ant_monitor_bt_ctr(btcoexist); + btc8723b2ant_monitor_bt_enable_disable(btcoexist); +#else + if (btc8723b2ant_is_wifi_status_changed(btcoexist) || + coex_dm->auto_tdma_adjust) + btc8723b2ant_run_coexist_mechanism(btcoexist); +#endif +} --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/btcoexist/halbtc8723b2ant.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/btcoexist/halbtc8723b2ant.h @@ -0,0 +1,173 @@ +/****************************************************************************** + * + * Copyright(c) 2012 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ +#ifndef _HAL8723B_2_ANT +#define _HAL8723B_2_ANT + +/************************************************************************ + * The following is for 8723B 2Ant BT Co-exist definition + ************************************************************************/ +#define BT_AUTO_REPORT_ONLY_8723B_2ANT 1 + +#define BT_INFO_8723B_2ANT_B_FTP BIT7 +#define BT_INFO_8723B_2ANT_B_A2DP BIT6 +#define BT_INFO_8723B_2ANT_B_HID BIT5 +#define BT_INFO_8723B_2ANT_B_SCO_BUSY BIT4 +#define BT_INFO_8723B_2ANT_B_ACL_BUSY BIT3 +#define BT_INFO_8723B_2ANT_B_INQ_PAGE BIT2 +#define BT_INFO_8723B_2ANT_B_SCO_ESCO BIT1 +#define BT_INFO_8723B_2ANT_B_CONNECTION BIT0 + +#define BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT 2 + +enum BT_INFO_SRC_8723B_2ANT { + BT_INFO_SRC_8723B_2ANT_WIFI_FW = 0x0, + BT_INFO_SRC_8723B_2ANT_BT_RSP = 0x1, + BT_INFO_SRC_8723B_2ANT_BT_ACTIVE_SEND = 0x2, + BT_INFO_SRC_8723B_2ANT_MAX +}; + +enum BT_8723B_2ANT_BT_STATUS { + BT_8723B_2ANT_BT_STATUS_NON_CONNECTED_IDLE = 0x0, + BT_8723B_2ANT_BT_STATUS_CONNECTED_IDLE = 0x1, + BT_8723B_2ANT_BT_STATUS_INQ_PAGE = 0x2, + BT_8723B_2ANT_BT_STATUS_ACL_BUSY = 0x3, + BT_8723B_2ANT_BT_STATUS_SCO_BUSY = 0x4, + BT_8723B_2ANT_BT_STATUS_ACL_SCO_BUSY = 0x5, + BT_8723B_2ANT_BT_STATUS_MAX +}; + +enum BT_8723B_2ANT_COEX_ALGO { + BT_8723B_2ANT_COEX_ALGO_UNDEFINED = 0x0, + BT_8723B_2ANT_COEX_ALGO_SCO = 0x1, + BT_8723B_2ANT_COEX_ALGO_HID = 0x2, + BT_8723B_2ANT_COEX_ALGO_A2DP = 0x3, + BT_8723B_2ANT_COEX_ALGO_A2DP_PANHS = 0x4, + BT_8723B_2ANT_COEX_ALGO_PANEDR = 0x5, + BT_8723B_2ANT_COEX_ALGO_PANHS = 0x6, + BT_8723B_2ANT_COEX_ALGO_PANEDR_A2DP = 0x7, + BT_8723B_2ANT_COEX_ALGO_PANEDR_HID = 0x8, + BT_8723B_2ANT_COEX_ALGO_HID_A2DP_PANEDR = 0x9, + BT_8723B_2ANT_COEX_ALGO_HID_A2DP = 0xa, + BT_8723B_2ANT_COEX_ALGO_MAX = 0xb, +}; + +struct coex_dm_8723b_2ant { + /* fw mechanism */ + bool pre_dec_bt_pwr; + bool cur_dec_bt_pwr; + u8 pre_fw_dac_swing_lvl; + u8 cur_fw_dac_swing_lvl; + bool cur_ignore_wlan_act; + bool pre_ignore_wlan_act; + u8 pre_ps_tdma; + u8 cur_ps_tdma; + u8 ps_tdma_para[5]; + u8 tdma_adj_type; + bool reset_tdma_adjust; + bool auto_tdma_adjust; + bool pre_ps_tdma_on; + bool cur_ps_tdma_on; + bool pre_bt_auto_report; + bool cur_bt_auto_report; + + /* sw mechanism */ + bool pre_rf_rx_lpf_shrink; + bool cur_rf_rx_lpf_shrink; + u32 bt_rf0x1e_backup; + bool pre_low_penalty_ra; + bool cur_low_penalty_ra; + bool pre_dac_swing_on; + u32 pre_dac_swing_lvl; + bool cur_dac_swing_on; + u32 cur_dac_swing_lvl; + bool pre_adc_back_off; + bool cur_adc_back_off; + bool pre_agc_table_en; + bool cur_agc_table_en; + u32 pre_val0x6c0; + u32 cur_val0x6c0; + u32 pre_val0x6c4; + u32 cur_val0x6c4; + u32 pre_val0x6c8; + u32 cur_val0x6c8; + u8 pre_val0x6cc; + u8 cur_val0x6cc; + bool limited_dig; + + /* algorithm related */ + u8 pre_algorithm; + u8 cur_algorithm; + u8 bt_status; + u8 wifi_chnl_info[3]; + + bool need_recover_0x948; + u16 backup_0x948; +}; + +struct coex_sta_8723b_2ant { + bool bt_link_exist; + bool sco_exist; + bool a2dp_exist; + bool hid_exist; + bool pan_exist; + + bool under_lps; + bool under_ips; + u32 high_priority_tx; + u32 high_priority_rx; + u32 low_priority_tx; + u32 low_priority_rx; + u8 bt_rssi; + u8 pre_bt_rssi_state; + u8 pre_wifi_rssi_state[4]; + bool c2h_bt_info_req_sent; + u8 bt_info_c2h[BT_INFO_SRC_8723B_2ANT_MAX][10]; + u32 bt_info_c2h_cnt[BT_INFO_SRC_8723B_2ANT_MAX]; + bool c2h_bt_inquiry_page; + u8 bt_retry_cnt; + u8 bt_info_ext; +}; + +/********************************************************************* + * The following is interface which will notify coex module. + *********************************************************************/ +void ex_halbtc8723b2ant_init_hwconfig(struct btc_coexist *btcoexist); +void ex_halbtc8723b2ant_init_coex_dm(struct btc_coexist *btcoexist); +void ex_halbtc8723b2ant_ips_notify(struct btc_coexist *btcoexist, u8 type); +void ex_halbtc8723b2ant_lps_notify(struct btc_coexist *btcoexist, u8 type); +void ex_halbtc8723b2ant_scan_notify(struct btc_coexist *btcoexist, u8 type); +void ex_halbtc8723b2ant_connect_notify(struct btc_coexist *btcoexist, u8 type); +void btc8723b_med_stat_notify(struct btc_coexist *btcoexist, u8 type); +void ex_halbtc8723b2ant_special_packet_notify(struct btc_coexist *btcoexist, + u8 type); +void ex_halbtc8723b2ant_bt_info_notify(struct btc_coexist *btcoexist, + u8 *tmpbuf, u8 length); +void ex_halbtc8723b2ant_stack_operation_notify(struct btc_coexist *btcoexist, + u8 type); +void ex_halbtc8723b2ant_halt_notify(struct btc_coexist *btcoexist); +void ex_halbtc8723b2ant_periodical(struct btc_coexist *btcoexist); +void ex_halbtc8723b2ant_display_coex_info(struct btc_coexist *btcoexist); + +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/btcoexist/halbtcoutsrc.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/btcoexist/halbtcoutsrc.c @@ -0,0 +1,1011 @@ +/****************************************************************************** + * + * Copyright(c) 2007 - 2013 Realtek Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + ******************************************************************************/ + +#include "halbt_precomp.h" + +/*********************************************** + * Global variables + ***********************************************/ + +struct btc_coexist gl_bt_coexist; + +u32 btc_dbg_type[BTC_MSG_MAX]; +static u8 btc_dbg_buf[100]; + +/*************************************************** + * Debug related function + ***************************************************/ +static bool halbtc_is_bt_coexist_available(struct btc_coexist *btcoexist) +{ + if (!btcoexist->binded || NULL == btcoexist->adapter) + return false; + + return true; +} + +static bool halbtc_is_wifi_busy(struct rtl_priv *rtlpriv) +{ + if (rtlpriv->link_info.busytraffic) + return true; + else + return false; +} + +static void halbtc_dbg_init(void) +{ + u8 i; + + for (i = 0; i < BTC_MSG_MAX; i++) + btc_dbg_type[i] = 0; + + btc_dbg_type[BTC_MSG_INTERFACE] = +/* INTF_INIT | */ +/* INTF_NOTIFY | */ + 0; + + btc_dbg_type[BTC_MSG_ALGORITHM] = +/* ALGO_BT_RSSI_STATE | */ +/* ALGO_WIFI_RSSI_STATE | */ +/* ALGO_BT_MONITOR | */ +/* ALGO_TRACE | */ +/* ALGO_TRACE_FW | */ +/* ALGO_TRACE_FW_DETAIL | */ +/* ALGO_TRACE_FW_EXEC | */ +/* ALGO_TRACE_SW | */ +/* ALGO_TRACE_SW_DETAIL | */ +/* ALGO_TRACE_SW_EXEC | */ + 0; +} + +static bool halbtc_is_bt40(struct rtl_priv *adapter) +{ + struct rtl_priv *rtlpriv = adapter; + struct rtl_phy *rtlphy = &(rtlpriv->phy); + bool is_ht40 = true; + enum ht_channel_width bw = rtlphy->current_chan_bw; + + if (bw == HT_CHANNEL_WIDTH_20) + is_ht40 = false; + else if (bw == HT_CHANNEL_WIDTH_20_40) + is_ht40 = true; + + return is_ht40; +} + +static bool halbtc_legacy(struct rtl_priv *adapter) +{ + struct rtl_priv *rtlpriv = adapter; + struct rtl_mac *mac = rtl_mac(rtlpriv); + + bool is_legacy = false; + + if ((mac->mode == WIRELESS_MODE_B) || (mac->mode == WIRELESS_MODE_B)) + is_legacy = true; + + return is_legacy; +} + +bool halbtc_is_wifi_uplink(struct rtl_priv *adapter) +{ + struct rtl_priv *rtlpriv = adapter; + + if (rtlpriv->link_info.tx_busy_traffic) + return true; + else + return false; +} + +static u32 halbtc_get_wifi_bw(struct btc_coexist *btcoexist) +{ + struct rtl_priv *rtlpriv = + (struct rtl_priv *)btcoexist->adapter; + u32 wifi_bw = BTC_WIFI_BW_HT20; + + if (halbtc_is_bt40(rtlpriv)) { + wifi_bw = BTC_WIFI_BW_HT40; + } else { + if (halbtc_legacy(rtlpriv)) + wifi_bw = BTC_WIFI_BW_LEGACY; + else + wifi_bw = BTC_WIFI_BW_HT20; + } + return wifi_bw; +} + +static u8 halbtc_get_wifi_central_chnl(struct btc_coexist *btcoexist) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 chnl = 1; + + if (rtlphy->current_channel != 0) + chnl = rtlphy->current_channel; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "static halbtc_get_wifi_central_chnl:%d\n", chnl); + return chnl; +} + +static void halbtc_leave_lps(struct btc_coexist *btcoexist) +{ + struct rtl_priv *rtlpriv; + struct rtl_ps_ctl *ppsc; + bool ap_enable = false; + + rtlpriv = btcoexist->adapter; + ppsc = rtl_psc(rtlpriv); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_AP_MODE_ENABLE, + &ap_enable); + + if (ap_enable) { + pr_info("halbtc_leave_lps()<--dont leave lps under AP mode\n"); + return; + } + + btcoexist->bt_info.bt_ctrl_lps = true; + btcoexist->bt_info.bt_lps_on = false; +} + +static void halbtc_enter_lps(struct btc_coexist *btcoexist) +{ + struct rtl_priv *rtlpriv; + struct rtl_ps_ctl *ppsc; + bool ap_enable = false; + + rtlpriv = btcoexist->adapter; + ppsc = rtl_psc(rtlpriv); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_AP_MODE_ENABLE, + &ap_enable); + + if (ap_enable) { + pr_info("halbtc_enter_lps()<--dont enter lps under AP mode\n"); + return; + } + + btcoexist->bt_info.bt_ctrl_lps = true; + btcoexist->bt_info.bt_lps_on = false; +} + +static void halbtc_normal_lps(struct btc_coexist *btcoexist) +{ + if (btcoexist->bt_info.bt_ctrl_lps) { + btcoexist->bt_info.bt_lps_on = false; + btcoexist->bt_info.bt_ctrl_lps = false; + } +} + +static void halbtc_leave_low_power(void) +{ +} + +static void halbtc_nomal_low_power(void) +{ +} + +static void halbtc_disable_low_power(void) +{ +} + +static void halbtc_aggregation_check(void) +{ +} + +static u32 halbtc_get_bt_patch_version(struct btc_coexist *btcoexist) +{ + return 0; +} + +static s32 halbtc_get_wifi_rssi(struct rtl_priv *adapter) +{ + struct rtl_priv *rtlpriv = adapter; + s32 undec_sm_pwdb = 0; + + if (rtlpriv->mac80211.link_state >= MAC80211_LINKED) + undec_sm_pwdb = rtlpriv->dm.undec_sm_pwdb; + else /* associated entry pwdb */ + undec_sm_pwdb = rtlpriv->dm.undec_sm_pwdb; + return undec_sm_pwdb; +} + +static bool halbtc_get(void *void_btcoexist, u8 get_type, void *out_buf) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)void_btcoexist; + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_mac *mac = rtl_mac(rtlpriv); + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + bool *bool_tmp = (bool *)out_buf; + int *s32_tmp = (int *)out_buf; + u32 *u32_tmp = (u32 *)out_buf; + u8 *u8_tmp = (u8 *)out_buf; + bool tmp = false; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return false; + + switch (get_type) { + case BTC_GET_BL_HS_OPERATION: + *bool_tmp = false; + break; + case BTC_GET_BL_HS_CONNECTING: + *bool_tmp = false; + break; + case BTC_GET_BL_WIFI_CONNECTED: + if (rtlpriv->mac80211.link_state >= MAC80211_LINKED) + tmp = true; + *bool_tmp = tmp; + break; + case BTC_GET_BL_WIFI_BUSY: + if (halbtc_is_wifi_busy(rtlpriv)) + *bool_tmp = true; + else + *bool_tmp = false; + break; + case BTC_GET_BL_WIFI_SCAN: + if (mac->act_scanning) + *bool_tmp = true; + else + *bool_tmp = false; + break; + case BTC_GET_BL_WIFI_LINK: + if (mac->link_state == MAC80211_LINKING) + *bool_tmp = true; + else + *bool_tmp = false; + break; + case BTC_GET_BL_WIFI_ROAM: /*TODO*/ + if (mac->link_state == MAC80211_LINKING) + *bool_tmp = true; + else + *bool_tmp = false; + break; + case BTC_GET_BL_WIFI_4_WAY_PROGRESS: /*TODO*/ + *bool_tmp = false; + + break; + case BTC_GET_BL_WIFI_UNDER_5G: + *bool_tmp = false; /*TODO*/ + + case BTC_GET_BL_WIFI_DHCP: /*TODO*/ + break; + case BTC_GET_BL_WIFI_SOFTAP_IDLE: + *bool_tmp = true; + break; + case BTC_GET_BL_WIFI_SOFTAP_LINKING: + *bool_tmp = false; + break; + case BTC_GET_BL_WIFI_IN_EARLY_SUSPEND: + *bool_tmp = false; + break; + case BTC_GET_BL_WIFI_AP_MODE_ENABLE: + *bool_tmp = false; + break; + case BTC_GET_BL_WIFI_ENABLE_ENCRYPTION: + if (NO_ENCRYPTION == rtlpriv->sec.pairwise_enc_algorithm) + *bool_tmp = false; + else + *bool_tmp = true; + break; + case BTC_GET_BL_WIFI_UNDER_B_MODE: + *bool_tmp = false; /*TODO*/ + break; + case BTC_GET_BL_EXT_SWITCH: + *bool_tmp = false; + break; + case BTC_GET_S4_WIFI_RSSI: + *s32_tmp = halbtc_get_wifi_rssi(rtlpriv); + break; + case BTC_GET_S4_HS_RSSI: /*TODO*/ + *s32_tmp = halbtc_get_wifi_rssi(rtlpriv); + break; + case BTC_GET_U4_WIFI_BW: + *u32_tmp = halbtc_get_wifi_bw(btcoexist); + break; + case BTC_GET_U4_WIFI_TRAFFIC_DIRECTION: + if (halbtc_is_wifi_uplink(rtlpriv)) + *u32_tmp = BTC_WIFI_TRAFFIC_TX; + else + *u32_tmp = BTC_WIFI_TRAFFIC_RX; + break; + case BTC_GET_U4_WIFI_FW_VER: + *u32_tmp = rtlhal->fw_version; + break; + case BTC_GET_U4_BT_PATCH_VER: + *u32_tmp = halbtc_get_bt_patch_version(btcoexist); + break; + case BTC_GET_U1_WIFI_DOT11_CHNL: + *u8_tmp = rtlphy->current_channel; + break; + case BTC_GET_U1_WIFI_CENTRAL_CHNL: + *u8_tmp = halbtc_get_wifi_central_chnl(btcoexist); + break; + case BTC_GET_U1_WIFI_HS_CHNL: + *u8_tmp = 1;/*BT_OperateChnl(rtlpriv);*/ + break; + case BTC_GET_U1_MAC_PHY_MODE: + *u8_tmp = BTC_MP_UNKNOWN; + break; + + /************* 1Ant **************/ + case BTC_GET_U1_LPS_MODE: + *u8_tmp = btcoexist->pwr_mode_val[0]; + break; + + default: + break; + } + + return true; +} + +static bool halbtc_set(void *void_btcoexist, u8 set_type, void *in_buf) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)void_btcoexist; + bool *bool_tmp = (bool *)in_buf; + u8 *u8_tmp = (u8 *)in_buf; + u32 *u32_tmp = (u32 *)in_buf; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return false; + + switch (set_type) { + /* set some bool type variables. */ + case BTC_SET_BL_BT_DISABLE: + btcoexist->bt_info.bt_disabled = *bool_tmp; + break; + case BTC_SET_BL_BT_TRAFFIC_BUSY: + btcoexist->bt_info.bt_busy = *bool_tmp; + break; + case BTC_SET_BL_BT_LIMITED_DIG: + btcoexist->bt_info.limited_dig = *bool_tmp; + break; + case BTC_SET_BL_FORCE_TO_ROAM: + btcoexist->bt_info.force_to_roam = *bool_tmp; + break; + case BTC_SET_BL_TO_REJ_AP_AGG_PKT: + btcoexist->bt_info.reject_agg_pkt = *bool_tmp; + break; + case BTC_SET_BL_BT_CTRL_AGG_SIZE: + btcoexist->bt_info.b_bt_ctrl_buf_size = *bool_tmp; + break; + case BTC_SET_BL_INC_SCAN_DEV_NUM: + btcoexist->bt_info.increase_scan_dev_num = *bool_tmp; + break; + /* set some u1Byte type variables. */ + case BTC_SET_U1_RSSI_ADJ_VAL_FOR_AGC_TABLE_ON: + btcoexist->bt_info.rssi_adjust_for_agc_table_on = *u8_tmp; + break; + case BTC_SET_U1_AGG_BUF_SIZE: + btcoexist->bt_info.agg_buf_size = *u8_tmp; + break; + /* the following are some action which will be triggered */ + case BTC_SET_ACT_GET_BT_RSSI: + /*BTHCI_SendGetBtRssiEvent(rtlpriv);*/ + break; + case BTC_SET_ACT_AGGREGATE_CTRL: + halbtc_aggregation_check(); + break; + + /* 1Ant */ + case BTC_SET_U1_RSSI_ADJ_VAL_FOR_1ANT_COEX_TYPE: + btcoexist->bt_info.rssi_adjust_for_1ant_coex_type = *u8_tmp; + break; + case BTC_SET_UI_SCAN_SIG_COMPENSATION: + /* rtlpriv->mlmepriv.scan_compensation = *u8_tmp; */ + break; + case BTC_SET_U1_1ANT_LPS: + btcoexist->bt_info.lps_1ant = *u8_tmp; + break; + case BTC_SET_U1_1ANT_RPWM: + btcoexist->bt_info.rpwm_1ant = *u8_tmp; + break; + /* the following are some action which will be triggered */ + case BTC_SET_ACT_LEAVE_LPS: + halbtc_leave_lps(btcoexist); + break; + case BTC_SET_ACT_ENTER_LPS: + halbtc_enter_lps(btcoexist); + break; + case BTC_SET_ACT_NORMAL_LPS: + halbtc_normal_lps(btcoexist); + break; + case BTC_SET_ACT_DISABLE_LOW_POWER: + halbtc_disable_low_power(); + break; + case BTC_SET_ACT_UPDATE_ra_mask: + btcoexist->bt_info.ra_mask = *u32_tmp; + break; + case BTC_SET_ACT_SEND_MIMO_PS: + break; + case BTC_SET_ACT_INC_FORCE_EXEC_PWR_CMD_CNT: + btcoexist->bt_info.force_exec_pwr_cmd_cnt++; + break; + case BTC_SET_ACT_CTRL_BT_INFO: /*wait for 8812/8821*/ + break; + case BTC_SET_ACT_CTRL_BT_COEX: + break; + default: + break; + } + + return true; +} + +static void halbtc_display_coex_statistics(struct btc_coexist *btcoexist) +{ +} + +static void halbtc_display_bt_link_info(struct btc_coexist *btcoexist) +{ +} + +static void halbtc_display_bt_fw_info(struct btc_coexist *btcoexist) +{ +} + +static void halbtc_display_fw_pwr_mode_cmd(struct btc_coexist *btcoexist) +{ +} + +/************************************************************ + * IO related function + ************************************************************/ +static u8 halbtc_read_1byte(void *bt_context, u32 reg_addr) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + return rtl_read_byte(rtlpriv, reg_addr); +} + +static u16 halbtc_read_2byte(void *bt_context, u32 reg_addr) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + return rtl_read_word(rtlpriv, reg_addr); +} + +static u32 halbtc_read_4byte(void *bt_context, u32 reg_addr) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + return rtl_read_dword(rtlpriv, reg_addr); +} + +static void halbtc_write_1byte(void *bt_context, u32 reg_addr, u8 data) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + rtl_write_byte(rtlpriv, reg_addr, data); +} + +static void halbtc_bitmask_write_1byte(void *bt_context, u32 reg_addr, + u32 bit_mask, u8 data) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + u8 original_value, bit_shift = 0; + u8 i; + + if (bit_mask != MASKDWORD) {/*if not "double word" write*/ + original_value = rtl_read_byte(rtlpriv, reg_addr); + for (i = 0; i <= 7; i++) { + if ((bit_mask>>i) & 0x1) + break; + } + bit_shift = i; + data = (original_value & (~bit_mask)) | + ((data << bit_shift) & bit_mask); + } + rtl_write_byte(rtlpriv, reg_addr, data); +} + +static void halbtc_write_2byte(void *bt_context, u32 reg_addr, u16 data) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + rtl_write_word(rtlpriv, reg_addr, data); +} + +static void halbtc_write_4byte(void *bt_context, u32 reg_addr, u32 data) +{ + struct btc_coexist *btcoexist = + (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + rtl_write_dword(rtlpriv, reg_addr, data); +} + +static void halbtc_set_bbreg(void *bt_context, u32 reg_addr, u32 bit_mask, + u32 data) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + rtl_set_bbreg(rtlpriv->mac80211.hw, reg_addr, bit_mask, data); +} + +static u32 halbtc_get_bbreg(void *bt_context, u32 reg_addr, u32 bit_mask) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + return rtl_get_bbreg(rtlpriv->mac80211.hw, reg_addr, bit_mask); +} + +static void halbtc_set_rfreg(void *bt_context, u8 rf_path, u32 reg_addr, + u32 bit_mask, u32 data) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + rtl_set_rfreg(rtlpriv->mac80211.hw, rf_path, reg_addr, bit_mask, data); +} + +static u32 halbtc_get_rfreg(void *bt_context, u8 rf_path, u32 reg_addr, + u32 bit_mask) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + return rtl_get_rfreg(rtlpriv->mac80211.hw, rf_path, reg_addr, bit_mask); +} + +static void halbtc_fill_h2c_cmd(void *bt_context, u8 element_id, + u32 cmd_len, u8 *cmd_buf) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + rtlpriv->cfg->ops->fill_h2c_cmd(rtlpriv->mac80211.hw, element_id, + cmd_len, cmd_buf); +} + +static void halbtc_display_dbg_msg(void *bt_context, u8 disp_type) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + switch (disp_type) { + case BTC_DBG_DISP_COEX_STATISTICS: + halbtc_display_coex_statistics(btcoexist); + break; + case BTC_DBG_DISP_BT_LINK_INFO: + halbtc_display_bt_link_info(btcoexist); + break; + case BTC_DBG_DISP_BT_FW_VER: + halbtc_display_bt_fw_info(btcoexist); + break; + case BTC_DBG_DISP_FW_PWR_MODE_CMD: + halbtc_display_fw_pwr_mode_cmd(btcoexist); + break; + default: + break; + } +} + +/***************************************************************** + * Extern functions called by other module + *****************************************************************/ +bool exhalbtc_initlize_variables(struct rtl_priv *adapter) +{ + struct btc_coexist *btcoexist = &gl_bt_coexist; + + btcoexist->statistics.cnt_bind++; + + halbtc_dbg_init(); + + if (btcoexist->binded) + return false; + else + btcoexist->binded = true; + +#if (defined(CONFIG_PCI_HCI)) + btcoexist->chip_interface = BTC_INTF_PCI; +#elif (defined(CONFIG_USB_HCI)) + btcoexist->chip_interface = BTC_INTF_USB; +#elif (defined(CONFIG_SDIO_HCI)) + btcoexist->chip_interface = BTC_INTF_SDIO; +#elif (defined(CONFIG_GSPI_HCI)) + btcoexist->chip_interface = BTC_INTF_GSPI; +#else + btcoexist->chip_interface = BTC_INTF_UNKNOWN; +#endif + + if (NULL == btcoexist->adapter) + btcoexist->adapter = adapter; + + btcoexist->stack_info.profile_notified = false; + + btcoexist->btc_read_1byte = halbtc_read_1byte; + btcoexist->btc_write_1byte = halbtc_write_1byte; + btcoexist->btc_write_1byte_bitmask = halbtc_bitmask_write_1byte; + btcoexist->btc_read_2byte = halbtc_read_2byte; + btcoexist->btc_write_2byte = halbtc_write_2byte; + btcoexist->btc_read_4byte = halbtc_read_4byte; + btcoexist->btc_write_4byte = halbtc_write_4byte; + + btcoexist->btc_set_bb_reg = halbtc_set_bbreg; + btcoexist->btc_get_bb_reg = halbtc_get_bbreg; + + btcoexist->btc_set_rf_reg = halbtc_set_rfreg; + btcoexist->btc_get_rf_reg = halbtc_get_rfreg; + + btcoexist->btc_fill_h2c = halbtc_fill_h2c_cmd; + btcoexist->btc_disp_dbg_msg = halbtc_display_dbg_msg; + + btcoexist->btc_get = halbtc_get; + btcoexist->btc_set = halbtc_set; + + btcoexist->cli_buf = &btc_dbg_buf[0]; + + btcoexist->bt_info.b_bt_ctrl_buf_size = false; + btcoexist->bt_info.agg_buf_size = 5; + + btcoexist->bt_info.increase_scan_dev_num = false; + return true; +} + +void exhalbtc_init_hw_config(struct btc_coexist *btcoexist) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + + btcoexist->statistics.cnt_init_hw_config++; + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) + ex_halbtc8723b2ant_init_hwconfig(btcoexist); +} + +void exhalbtc_init_coex_dm(struct btc_coexist *btcoexist) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + + btcoexist->statistics.cnt_init_coex_dm++; + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) + ex_halbtc8723b2ant_init_coex_dm(btcoexist); + + btcoexist->initilized = true; +} + +void exhalbtc_ips_notify(struct btc_coexist *btcoexist, u8 type) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + u8 ips_type; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_ips_notify++; + if (btcoexist->manual_control) + return; + + if (ERFOFF == type) + ips_type = BTC_IPS_ENTER; + else + ips_type = BTC_IPS_LEAVE; + + halbtc_leave_low_power(); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) + ex_halbtc8723b2ant_ips_notify(btcoexist, ips_type); + + halbtc_nomal_low_power(); +} + +void exhalbtc_lps_notify(struct btc_coexist *btcoexist, u8 type) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + u8 lps_type; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_lps_notify++; + if (btcoexist->manual_control) + return; + + if (EACTIVE == type) + lps_type = BTC_LPS_DISABLE; + else + lps_type = BTC_LPS_ENABLE; + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) + ex_halbtc8723b2ant_lps_notify(btcoexist, lps_type); +} + +void exhalbtc_scan_notify(struct btc_coexist *btcoexist, u8 type) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + u8 scan_type; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_scan_notify++; + if (btcoexist->manual_control) + return; + + if (type) + scan_type = BTC_SCAN_START; + else + scan_type = BTC_SCAN_FINISH; + + halbtc_leave_low_power(); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) + ex_halbtc8723b2ant_scan_notify(btcoexist, scan_type); + + halbtc_nomal_low_power(); +} + +void exhalbtc_connect_notify(struct btc_coexist *btcoexist, u8 action) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + u8 asso_type; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_connect_notify++; + if (btcoexist->manual_control) + return; + + if (action) + asso_type = BTC_ASSOCIATE_START; + else + asso_type = BTC_ASSOCIATE_FINISH; + + halbtc_leave_low_power(); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) + ex_halbtc8723b2ant_connect_notify(btcoexist, asso_type); +} + +void exhalbtc_mediastatus_notify(struct btc_coexist *btcoexist, + enum _RT_MEDIA_STATUS media_status) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + u8 status; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_media_status_notify++; + if (btcoexist->manual_control) + return; + + if (RT_MEDIA_CONNECT == media_status) + status = BTC_MEDIA_CONNECT; + else + status = BTC_MEDIA_DISCONNECT; + + halbtc_leave_low_power(); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) + btc8723b_med_stat_notify(btcoexist, status); + + halbtc_nomal_low_power(); +} + +void exhalbtc_special_packet_notify(struct btc_coexist *btcoexist, u8 pkt_type) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + u8 packet_type; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_special_packet_notify++; + if (btcoexist->manual_control) + return; + + packet_type = BTC_PACKET_DHCP; + + halbtc_leave_low_power(); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) + ex_halbtc8723b2ant_special_packet_notify(btcoexist, + packet_type); + + halbtc_nomal_low_power(); +} + +void exhalbtc_bt_info_notify(struct btc_coexist *btcoexist, + u8 *tmp_buf, u8 length) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_bt_info_notify++; + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) + ex_halbtc8723b2ant_bt_info_notify(btcoexist, tmp_buf, length); +} + +void exhalbtc_stack_operation_notify(struct btc_coexist *btcoexist, u8 type) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + u8 stack_op_type; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_stack_operation_notify++; + if (btcoexist->manual_control) + return; + + stack_op_type = BTC_STACK_OP_NONE; + + halbtc_leave_low_power(); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) + ex_halbtc8723b2ant_stack_operation_notify(btcoexist, + stack_op_type); + + halbtc_nomal_low_power(); +} + +void exhalbtc_halt_notify(struct btc_coexist *btcoexist) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) + ex_halbtc8723b2ant_halt_notify(btcoexist); +} + +void exhalbtc_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state) +{ + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; +} + +void exhalbtc_periodical(struct btc_coexist *btcoexist) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_periodical++; + + halbtc_leave_low_power(); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) + ex_halbtc8723b2ant_periodical(btcoexist); + + halbtc_nomal_low_power(); +} + +void exhalbtc_dbg_control(struct btc_coexist *btcoexist, + u8 code, u8 len, u8 *data) +{ + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_dbg_ctrl++; +} + +void exhalbtc_stack_update_profile_info(void) +{ +} + +void exhalbtc_update_min_bt_rssi(char bt_rssi) +{ + struct btc_coexist *btcoexist = &gl_bt_coexist; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + + btcoexist->stack_info.min_bt_rssi = bt_rssi; +} + +void exhalbtc_set_hci_version(u16 hci_version) +{ + struct btc_coexist *btcoexist = &gl_bt_coexist; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + + btcoexist->stack_info.hci_version = hci_version; +} + +void exhalbtc_set_bt_patch_version(u16 bt_hci_version, u16 bt_patch_version) +{ + struct btc_coexist *btcoexist = &gl_bt_coexist; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + + btcoexist->bt_info.bt_real_fw_ver = bt_patch_version; + btcoexist->bt_info.bt_hci_ver = bt_hci_version; +} + +void exhalbtc_set_bt_exist(bool bt_exist) +{ + gl_bt_coexist.board_info.bt_exist = bt_exist; +} + +void exhalbtc_set_chip_type(u8 chip_type) +{ + switch (chip_type) { + default: + case BT_2WIRE: + case BT_ISSC_3WIRE: + case BT_ACCEL: + case BT_RTL8756: + gl_bt_coexist.board_info.bt_chip_type = BTC_CHIP_UNDEF; + break; + case BT_CSR_BC4: + gl_bt_coexist.board_info.bt_chip_type = BTC_CHIP_CSR_BC4; + break; + case BT_CSR_BC8: + gl_bt_coexist.board_info.bt_chip_type = BTC_CHIP_CSR_BC8; + break; + case BT_RTL8723A: + gl_bt_coexist.board_info.bt_chip_type = BTC_CHIP_RTL8723A; + break; + case BT_RTL8821: + gl_bt_coexist.board_info.bt_chip_type = BTC_CHIP_RTL8821; + break; + case BT_RTL8723B: + gl_bt_coexist.board_info.bt_chip_type = BTC_CHIP_RTL8723B; + break; + } +} + +void exhalbtc_set_ant_num(u8 type, u8 ant_num) +{ + if (BT_COEX_ANT_TYPE_PG == type) { + gl_bt_coexist.board_info.pg_ant_num = ant_num; + gl_bt_coexist.board_info.btdm_ant_num = ant_num; + } else if (BT_COEX_ANT_TYPE_ANTDIV == type) { + gl_bt_coexist.board_info.btdm_ant_num = ant_num; + } +} + +void exhalbtc_display_bt_coex_info(struct btc_coexist *btcoexist) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) + ex_halbtc8723b2ant_display_coex_info(btcoexist); +} --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/btcoexist/halbtcoutsrc.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/btcoexist/halbtcoutsrc.h @@ -0,0 +1,559 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2012 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ +#ifndef __HALBTC_OUT_SRC_H__ +#define __HALBTC_OUT_SRC_H__ + +#include "../wifi.h" + +#define NORMAL_EXEC false +#define FORCE_EXEC true + +#define BTC_RF_A RF90_PATH_A +#define BTC_RF_B RF90_PATH_B +#define BTC_RF_C RF90_PATH_C +#define BTC_RF_D RF90_PATH_D + +#define BTC_SMSP SINGLEMAC_SINGLEPHY +#define BTC_DMDP DUALMAC_DUALPHY +#define BTC_DMSP DUALMAC_SINGLEPHY +#define BTC_MP_UNKNOWN 0xff + +#define IN +#define OUT + +#define BT_TMP_BUF_SIZE 100 + +#define BT_COEX_ANT_TYPE_PG 0 +#define BT_COEX_ANT_TYPE_ANTDIV 1 +#define BT_COEX_ANT_TYPE_DETECTED 2 + +#define BTC_MIMO_PS_STATIC 0 +#define BTC_MIMO_PS_DYNAMIC 1 + +#define BTC_RATE_DISABLE 0 +#define BTC_RATE_ENABLE 1 + +#define BTC_ANT_PATH_WIFI 0 +#define BTC_ANT_PATH_BT 1 +#define BTC_ANT_PATH_PTA 2 + +enum btc_chip_interface { + BTC_INTF_UNKNOWN = 0, + BTC_INTF_PCI = 1, + BTC_INTF_USB = 2, + BTC_INTF_SDIO = 3, + BTC_INTF_GSPI = 4, + BTC_INTF_MAX +}; + +enum BTC_CHIP_TYPE { + BTC_CHIP_UNDEF = 0, + BTC_CHIP_CSR_BC4 = 1, + BTC_CHIP_CSR_BC8 = 2, + BTC_CHIP_RTL8723A = 3, + BTC_CHIP_RTL8821 = 4, + BTC_CHIP_RTL8723B = 5, + BTC_CHIP_MAX +}; + +enum BTC_MSG_TYPE { + BTC_MSG_INTERFACE = 0x0, + BTC_MSG_ALGORITHM = 0x1, + BTC_MSG_MAX +}; +extern u32 btc_dbg_type[]; + +/* following is for BTC_MSG_INTERFACE */ +#define INTF_INIT BIT0 +#define INTF_NOTIFY BIT2 + +/* following is for BTC_ALGORITHM */ +#define ALGO_BT_RSSI_STATE BIT0 +#define ALGO_WIFI_RSSI_STATE BIT1 +#define ALGO_BT_MONITOR BIT2 +#define ALGO_TRACE BIT3 +#define ALGO_TRACE_FW BIT4 +#define ALGO_TRACE_FW_DETAIL BIT5 +#define ALGO_TRACE_FW_EXEC BIT6 +#define ALGO_TRACE_SW BIT7 +#define ALGO_TRACE_SW_DETAIL BIT8 +#define ALGO_TRACE_SW_EXEC BIT9 + +#define BT_COEX_ANT_TYPE_PG 0 +#define BT_COEX_ANT_TYPE_ANTDIV 1 +#define BT_COEX_ANT_TYPE_DETECTED 2 +#define BTC_MIMO_PS_STATIC 0 +#define BTC_MIMO_PS_DYNAMIC 1 +#define BTC_RATE_DISABLE 0 +#define BTC_RATE_ENABLE 1 +#define BTC_ANT_PATH_WIFI 0 +#define BTC_ANT_PATH_BT 1 +#define BTC_ANT_PATH_PTA 2 + + +#define CL_SPRINTF snprintf +#define CL_PRINTF printk + +#define BTC_PRINT(dbgtype, dbgflag, printstr, ...) \ + do { \ + if (unlikely(btc_dbg_type[dbgtype] & dbgflag)) {\ + printk(printstr, ##__VA_ARGS__); \ + } \ + } while (0) + +#define BTC_PRINT_F(dbgtype, dbgflag, printstr, ...) \ + do { \ + if (unlikely(btc_dbg_type[dbgtype] & dbgflag)) {\ + pr_info("%s: ", __func__); \ + printk(printstr, ##__VA_ARGS__); \ + } \ + } while (0) + +#define BTC_PRINT_ADDR(dbgtype, dbgflag, printstr, _ptr) \ + do { \ + if (unlikely(btc_dbg_type[dbgtype] & dbgflag)) { \ + int __i; \ + u8 *__ptr = (u8 *)_ptr; \ + printk printstr; \ + for (__i = 0; __i < 6; __i++) \ + printk("%02X%s", __ptr[__i], (__i == 5) ? \ + "" : "-"); \ + pr_info("\n"); \ + } \ + } while (0) + +#define BTC_PRINT_DATA(dbgtype, dbgflag, _titlestring, _hexdata, _hexdatalen) \ + do { \ + if (unlikely(btc_dbg_type[dbgtype] & dbgflag)) { \ + int __i; \ + u8 *__ptr = (u8 *)_hexdata; \ + printk(_titlestring); \ + for (__i = 0; __i < (int)_hexdatalen; __i++) { \ + printk("%02X%s", __ptr[__i], (((__i + 1) % 4) \ + == 0) ? " " : " ");\ + if (((__i + 1) % 16) == 0) \ + printk("\n"); \ + } \ + pr_debug("\n"); \ + } \ + } while (0) + +#define BTC_ANT_PATH_WIFI 0 +#define BTC_ANT_PATH_BT 1 +#define BTC_ANT_PATH_PTA 2 + +enum btc_power_save_type { + BTC_PS_WIFI_NATIVE = 0, + BTC_PS_LPS_ON = 1, + BTC_PS_LPS_OFF = 2, + BTC_PS_LPS_MAX +}; + +struct btc_board_info { + /* The following is some board information */ + u8 bt_chip_type; + u8 pg_ant_num; /* pg ant number */ + u8 btdm_ant_num; /* ant number for btdm */ + u8 btdm_ant_pos; + bool bt_exist; +}; + +enum btc_dbg_opcode { + BTC_DBG_SET_COEX_NORMAL = 0x0, + BTC_DBG_SET_COEX_WIFI_ONLY = 0x1, + BTC_DBG_SET_COEX_BT_ONLY = 0x2, + BTC_DBG_MAX +}; + +enum btc_rssi_state { + BTC_RSSI_STATE_HIGH = 0x0, + BTC_RSSI_STATE_MEDIUM = 0x1, + BTC_RSSI_STATE_LOW = 0x2, + BTC_RSSI_STATE_STAY_HIGH = 0x3, + BTC_RSSI_STATE_STAY_MEDIUM = 0x4, + BTC_RSSI_STATE_STAY_LOW = 0x5, + BTC_RSSI_MAX +}; + +enum btc_wifi_role { + BTC_ROLE_STATION = 0x0, + BTC_ROLE_AP = 0x1, + BTC_ROLE_IBSS = 0x2, + BTC_ROLE_HS_MODE = 0x3, + BTC_ROLE_MAX +}; + +enum btc_wifi_bw_mode { + BTC_WIFI_BW_LEGACY = 0x0, + BTC_WIFI_BW_HT20 = 0x1, + BTC_WIFI_BW_HT40 = 0x2, + BTC_WIFI_BW_MAX +}; + +enum btc_wifi_traffic_dir { + BTC_WIFI_TRAFFIC_TX = 0x0, + BTC_WIFI_TRAFFIC_RX = 0x1, + BTC_WIFI_TRAFFIC_MAX +}; + +enum btc_wifi_pnp { + BTC_WIFI_PNP_WAKE_UP = 0x0, + BTC_WIFI_PNP_SLEEP = 0x1, + BTC_WIFI_PNP_MAX +}; + + +enum btc_get_type { + /* type bool */ + BTC_GET_BL_HS_OPERATION, + BTC_GET_BL_HS_CONNECTING, + BTC_GET_BL_WIFI_CONNECTED, + BTC_GET_BL_WIFI_BUSY, + BTC_GET_BL_WIFI_SCAN, + BTC_GET_BL_WIFI_LINK, + BTC_GET_BL_WIFI_DHCP, + BTC_GET_BL_WIFI_SOFTAP_IDLE, + BTC_GET_BL_WIFI_SOFTAP_LINKING, + BTC_GET_BL_WIFI_IN_EARLY_SUSPEND, + BTC_GET_BL_WIFI_ROAM, + BTC_GET_BL_WIFI_4_WAY_PROGRESS, + BTC_GET_BL_WIFI_UNDER_5G, + BTC_GET_BL_WIFI_AP_MODE_ENABLE, + BTC_GET_BL_WIFI_ENABLE_ENCRYPTION, + BTC_GET_BL_WIFI_UNDER_B_MODE, + BTC_GET_BL_EXT_SWITCH, + + /* type s4Byte */ + BTC_GET_S4_WIFI_RSSI, + BTC_GET_S4_HS_RSSI, + + /* type u32 */ + BTC_GET_U4_WIFI_BW, + BTC_GET_U4_WIFI_TRAFFIC_DIRECTION, + BTC_GET_U4_WIFI_FW_VER, + BTC_GET_U4_BT_PATCH_VER, + + /* type u1Byte */ + BTC_GET_U1_WIFI_DOT11_CHNL, + BTC_GET_U1_WIFI_CENTRAL_CHNL, + BTC_GET_U1_WIFI_HS_CHNL, + BTC_GET_U1_MAC_PHY_MODE, + + /* for 1Ant */ + BTC_GET_U1_LPS_MODE, + BTC_GET_BL_BT_SCO_BUSY, + + /* for test mode */ + BTC_GET_DRIVER_TEST_CFG, + BTC_GET_MAX +}; + + +enum btc_set_type { + /* type bool */ + BTC_SET_BL_BT_DISABLE, + BTC_SET_BL_BT_TRAFFIC_BUSY, + BTC_SET_BL_BT_LIMITED_DIG, + BTC_SET_BL_FORCE_TO_ROAM, + BTC_SET_BL_TO_REJ_AP_AGG_PKT, + BTC_SET_BL_BT_CTRL_AGG_SIZE, + BTC_SET_BL_INC_SCAN_DEV_NUM, + + /* type u1Byte */ + BTC_SET_U1_RSSI_ADJ_VAL_FOR_AGC_TABLE_ON, + BTC_SET_U1_RSSI_ADJ_VAL_FOR_1ANT_COEX_TYPE, + BTC_SET_UI_SCAN_SIG_COMPENSATION, + BTC_SET_U1_AGG_BUF_SIZE, + + /* type trigger some action */ + BTC_SET_ACT_GET_BT_RSSI, + BTC_SET_ACT_AGGREGATE_CTRL, + + /********* for 1Ant **********/ + /* type bool */ + BTC_SET_BL_BT_SCO_BUSY, + /* type u1Byte */ + BTC_SET_U1_1ANT_LPS, + BTC_SET_U1_1ANT_RPWM, + /* type trigger some action */ + BTC_SET_ACT_LEAVE_LPS, + BTC_SET_ACT_ENTER_LPS, + BTC_SET_ACT_NORMAL_LPS, + BTC_SET_ACT_INC_FORCE_EXEC_PWR_CMD_CNT, + BTC_SET_ACT_DISABLE_LOW_POWER, + BTC_SET_ACT_UPDATE_ra_mask, + BTC_SET_ACT_SEND_MIMO_PS, + /* BT Coex related */ + BTC_SET_ACT_CTRL_BT_INFO, + BTC_SET_ACT_CTRL_BT_COEX, + /***************************/ + BTC_SET_MAX +}; + +enum btc_dbg_disp_type { + BTC_DBG_DISP_COEX_STATISTICS = 0x0, + BTC_DBG_DISP_BT_LINK_INFO = 0x1, + BTC_DBG_DISP_BT_FW_VER = 0x2, + BTC_DBG_DISP_FW_PWR_MODE_CMD = 0x3, + BTC_DBG_DISP_MAX +}; + +enum btc_notify_type_ips { + BTC_IPS_LEAVE = 0x0, + BTC_IPS_ENTER = 0x1, + BTC_IPS_MAX +}; + +enum btc_notify_type_lps { + BTC_LPS_DISABLE = 0x0, + BTC_LPS_ENABLE = 0x1, + BTC_LPS_MAX +}; + +enum btc_notify_type_scan { + BTC_SCAN_FINISH = 0x0, + BTC_SCAN_START = 0x1, + BTC_SCAN_MAX +}; + +enum btc_notify_type_associate { + BTC_ASSOCIATE_FINISH = 0x0, + BTC_ASSOCIATE_START = 0x1, + BTC_ASSOCIATE_MAX +}; + +enum btc_notify_type_media_status { + BTC_MEDIA_DISCONNECT = 0x0, + BTC_MEDIA_CONNECT = 0x1, + BTC_MEDIA_MAX +}; + +enum btc_notify_type_special_packet { + BTC_PACKET_UNKNOWN = 0x0, + BTC_PACKET_DHCP = 0x1, + BTC_PACKET_ARP = 0x2, + BTC_PACKET_EAPOL = 0x3, + BTC_PACKET_MAX +}; + +enum btc_notify_type_stack_operation { + BTC_STACK_OP_NONE = 0x0, + BTC_STACK_OP_INQ_PAGE_PAIR_START = 0x1, + BTC_STACK_OP_INQ_PAGE_PAIR_FINISH = 0x2, + BTC_STACK_OP_MAX +}; + + +typedef u8 (*bfp_btc_r1)(void *btc_context, u32 reg_addr); + +typedef u16 (*bfp_btc_r2)(void *btc_context, u32 reg_addr); + +typedef u32 (*bfp_btc_r4)(void *btc_context, u32 reg_addr); + +typedef void (*bfp_btc_w1)(void *btc_context, u32 reg_addr, u8 data); + +typedef void (*bfp_btc_w1_bit_mak)(void *btc_context, u32 reg_addr, + u32 bit_mask, u8 data1b); + +typedef void (*bfp_btc_w2)(void *btc_context, u32 reg_addr, u16 data); + +typedef void (*bfp_btc_w4)(void *btc_context, u32 reg_addr, u32 data); + +typedef void (*bfp_btc_wr_1byte_bit_mask)(void *btc_context, u32 reg_addr, + u8 bit_mask, u8 data); + +typedef void (*bfp_btc_set_bb_reg)(void *btc_context, u32 reg_addr, + u32 bit_mask, u32 data); + +typedef u32 (*bfp_btc_get_bb_reg)(void *btc_context, u32 reg_addr, + u32 bit_mask); + +typedef void (*bfp_btc_set_rf_reg)(void *btc_context, u8 rf_path, u32 reg_addr, + u32 bit_mask, u32 data); + +typedef u32 (*bfp_btc_get_rf_reg)(void *btc_context, u8 rf_path, + u32 reg_addr, u32 bit_mask); + +typedef void (*bfp_btc_fill_h2c)(void *btc_context, u8 element_id, + u32 cmd_len, u8 *cmd_buffer); + +typedef bool (*bfp_btc_get)(void *btcoexist, u8 get_type, void *out_buf); + +typedef bool (*bfp_btc_set)(void *btcoexist, u8 set_type, void *in_buf); + +typedef void (*bfp_btc_disp_dbg_msg)(void *btcoexist, u8 disp_type); + +struct btc_bt_info { + bool bt_disabled; + u8 rssi_adjust_for_agc_table_on; + u8 rssi_adjust_for_1ant_coex_type; + bool bt_busy; + u8 agg_buf_size; + bool limited_dig; + bool reject_agg_pkt; + bool b_bt_ctrl_buf_size; + bool increase_scan_dev_num; + u16 bt_hci_ver; + u16 bt_real_fw_ver; + u8 bt_fw_ver; + + /* the following is for 1Ant solution */ + bool bt_ctrl_lps; + bool bt_pwr_save_mode; + bool bt_lps_on; + bool force_to_roam; + u8 force_exec_pwr_cmd_cnt; + u8 lps_1ant; + u8 rpwm_1ant; + u32 ra_mask; +}; + +struct btc_stack_info { + bool profile_notified; + u16 hci_version; /* stack hci version */ + u8 num_of_link; + bool bt_link_exist; + bool sco_exist; + bool acl_exist; + bool a2dp_exist; + bool hid_exist; + u8 num_of_hid; + bool pan_exist; + bool unknown_acl_exist; + char min_bt_rssi; +}; + +struct btc_statistics { + u32 cnt_bind; + u32 cnt_init_hw_config; + u32 cnt_init_coex_dm; + u32 cnt_ips_notify; + u32 cnt_lps_notify; + u32 cnt_scan_notify; + u32 cnt_connect_notify; + u32 cnt_media_status_notify; + u32 cnt_special_packet_notify; + u32 cnt_bt_info_notify; + u32 cnt_periodical; + u32 cnt_stack_operation_notify; + u32 cnt_dbg_ctrl; +}; + +struct btc_bt_link_info { + bool bt_link_exist; + bool sco_exist; + bool sco_only; + bool a2dp_exist; + bool a2dp_only; + bool hid_exist; + bool hid_only; + bool pan_exist; + bool pan_only; +}; + +enum btc_antenna_pos { + BTC_ANTENNA_AT_MAIN_PORT = 0x1, + BTC_ANTENNA_AT_AUX_PORT = 0x2, +}; + +struct btc_coexist { + /* make sure only one adapter can bind the data context */ + bool binded; + /* default adapter */ + void *adapter; + struct btc_board_info board_info; + /* some bt info referenced by non-bt module */ + struct btc_bt_info bt_info; + struct btc_stack_info stack_info; + enum btc_chip_interface chip_interface; + struct btc_bt_link_info bt_link_info; + + bool initilized; + bool stop_coex_dm; + bool manual_control; + u8 *cli_buf; + struct btc_statistics statistics; + u8 pwr_mode_val[10]; + + /* function pointers - io related */ + bfp_btc_r1 btc_read_1byte; + bfp_btc_w1 btc_write_1byte; + bfp_btc_w1_bit_mak btc_write_1byte_bitmask; + bfp_btc_r2 btc_read_2byte; + bfp_btc_w2 btc_write_2byte; + bfp_btc_r4 btc_read_4byte; + bfp_btc_w4 btc_write_4byte; + + bfp_btc_set_bb_reg btc_set_bb_reg; + bfp_btc_get_bb_reg btc_get_bb_reg; + + + bfp_btc_set_rf_reg btc_set_rf_reg; + bfp_btc_get_rf_reg btc_get_rf_reg; + + bfp_btc_fill_h2c btc_fill_h2c; + + bfp_btc_disp_dbg_msg btc_disp_dbg_msg; + + bfp_btc_get btc_get; + bfp_btc_set btc_set; +}; + +bool halbtc_is_wifi_uplink(struct rtl_priv *adapter); + +extern struct btc_coexist gl_bt_coexist; + +bool exhalbtc_initlize_variables(struct rtl_priv *adapter); +void exhalbtc_init_hw_config(struct btc_coexist *btcoexist); +void exhalbtc_init_coex_dm(struct btc_coexist *btcoexist); +void exhalbtc_ips_notify(struct btc_coexist *btcoexist, u8 type); +void exhalbtc_lps_notify(struct btc_coexist *btcoexist, u8 type); +void exhalbtc_scan_notify(struct btc_coexist *btcoexist, u8 type); +void exhalbtc_connect_notify(struct btc_coexist *btcoexist, u8 action); +void exhalbtc_mediastatus_notify(struct btc_coexist *btcoexist, + enum _RT_MEDIA_STATUS media_status); +void exhalbtc_special_packet_notify(struct btc_coexist *btcoexist, u8 pkt_type); +void exhalbtc_bt_info_notify(struct btc_coexist *btcoexist, u8 *tmp_buf, + u8 length); +void exhalbtc_stack_operation_notify(struct btc_coexist *btcoexist, u8 type); +void exhalbtc_halt_notify(struct btc_coexist *btcoexist); +void exhalbtc_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state); +void exhalbtc_periodical(struct btc_coexist *btcoexist); +void exhalbtc_dbg_control(struct btc_coexist *btcoexist, u8 code, u8 len, + u8 *data); +void exhalbtc_stack_update_profile_info(void); +void exhalbtc_set_hci_version(u16 hci_version); +void exhalbtc_set_bt_patch_version(u16 bt_hci_version, u16 bt_patch_version); +void exhalbtc_update_min_bt_rssi(char bt_rssi); +void exhalbtc_set_bt_exist(bool bt_exist); +void exhalbtc_set_chip_type(u8 chip_type); +void exhalbtc_set_ant_num(u8 type, u8 ant_num); +void exhalbtc_display_bt_coex_info(struct btc_coexist *btcoexist); +void exhalbtc_signal_compensation(struct btc_coexist *btcoexist, + u8 *rssi_wifi, u8 *rssi_bt); +void exhalbtc_lps_leave(struct btc_coexist *btcoexist); +void exhalbtc_low_wifi_traffic_notify(struct btc_coexist *btcoexist); + +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/btcoexist/rtl_btc.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/btcoexist/rtl_btc.c @@ -0,0 +1,218 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2013 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "rtl_btc.h" +#include "halbt_precomp.h" + +#include +#include + +static struct rtl_btc_ops rtl_btc_operation = { + .btc_init_variables = rtl_btc_init_variables, + .btc_init_hal_vars = rtl_btc_init_hal_vars, + .btc_init_hw_config = rtl_btc_init_hw_config, + .btc_ips_notify = rtl_btc_ips_notify, + .btc_scan_notify = rtl_btc_scan_notify, + .btc_connect_notify = rtl_btc_connect_notify, + .btc_mediastatus_notify = rtl_btc_mediastatus_notify, + .btc_periodical = rtl_btc_periodical, + .btc_halt_notify = rtl_btc_halt_notify, + .btc_btinfo_notify = rtl_btc_btinfo_notify, + .btc_is_limited_dig = rtl_btc_is_limited_dig, + .btc_is_disable_edca_turbo = rtl_btc_is_disable_edca_turbo, + .btc_is_bt_disabled = rtl_btc_is_bt_disabled, +}; + +void rtl_btc_init_variables(struct rtl_priv *rtlpriv) +{ + exhalbtc_initlize_variables(rtlpriv); +} + +void rtl_btc_init_hal_vars(struct rtl_priv *rtlpriv) +{ + u8 ant_num; + u8 bt_exist; + u8 bt_type; + + ant_num = rtl_get_hwpg_ant_num(rtlpriv); + RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, + "%s, antNum is %d\n", __func__, ant_num); + + bt_exist = rtl_get_hwpg_bt_exist(rtlpriv); + RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, + "%s, bt_exist is %d\n", __func__, bt_exist); + exhalbtc_set_bt_exist(bt_exist); + + bt_type = rtl_get_hwpg_bt_type(rtlpriv); + RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "%s, bt_type is %d\n", + __func__, bt_type); + exhalbtc_set_chip_type(bt_type); + + exhalbtc_set_ant_num(BT_COEX_ANT_TYPE_PG, ant_num); +} + +void rtl_btc_init_hw_config(struct rtl_priv *rtlpriv) +{ + exhalbtc_init_hw_config(&gl_bt_coexist); + exhalbtc_init_coex_dm(&gl_bt_coexist); +} + +void rtl_btc_ips_notify(struct rtl_priv *rtlpriv, u8 type) +{ + exhalbtc_ips_notify(&gl_bt_coexist, type); +} + +void rtl_btc_scan_notify(struct rtl_priv *rtlpriv, u8 scantype) +{ + exhalbtc_scan_notify(&gl_bt_coexist, scantype); +} + +void rtl_btc_connect_notify(struct rtl_priv *rtlpriv, u8 action) +{ + exhalbtc_connect_notify(&gl_bt_coexist, action); +} + +void rtl_btc_mediastatus_notify(struct rtl_priv *rtlpriv, + enum _RT_MEDIA_STATUS mstatus) +{ + exhalbtc_mediastatus_notify(&gl_bt_coexist, mstatus); +} + +void rtl_btc_periodical(struct rtl_priv *rtlpriv) +{ + exhalbtc_periodical(&gl_bt_coexist); +} + +void rtl_btc_halt_notify(void) +{ + exhalbtc_halt_notify(&gl_bt_coexist); +} + +void rtl_btc_btinfo_notify(struct rtl_priv *rtlpriv, u8 *tmp_buf, u8 length) +{ + exhalbtc_bt_info_notify(&gl_bt_coexist, tmp_buf, length); +} + +bool rtl_btc_is_limited_dig(struct rtl_priv *rtlpriv) +{ + return gl_bt_coexist.bt_info.limited_dig; +} + +bool rtl_btc_is_disable_edca_turbo(struct rtl_priv *rtlpriv) +{ + bool bt_change_edca = false; + u32 cur_edca_val; + u32 edca_bt_hs_uplink = 0x5ea42b, edca_bt_hs_downlink = 0x5ea42b; + u32 edca_hs; + u32 edca_addr = 0x504; + + cur_edca_val = rtl_read_dword(rtlpriv, edca_addr); + if (halbtc_is_wifi_uplink(rtlpriv)) { + if (cur_edca_val != edca_bt_hs_uplink) { + edca_hs = edca_bt_hs_uplink; + bt_change_edca = true; + } + } else { + if (cur_edca_val != edca_bt_hs_downlink) { + edca_hs = edca_bt_hs_downlink; + bt_change_edca = true; + } + } + + if (bt_change_edca) + rtl_write_dword(rtlpriv, edca_addr, edca_hs); + + return true; +} + +bool rtl_btc_is_bt_disabled(struct rtl_priv *rtlpriv) +{ + if (gl_bt_coexist.bt_info.bt_disabled) + return true; + else + return false; +} + +struct rtl_btc_ops *rtl_btc_get_ops_pointer(void) +{ + return &rtl_btc_operation; +} +EXPORT_SYMBOL(rtl_btc_get_ops_pointer); + +u8 rtl_get_hwpg_ant_num(struct rtl_priv *rtlpriv) +{ + u8 num; + + if (rtlpriv->btcoexist.btc_info.ant_num == ANT_X2) + num = 2; + else + num = 1; + + return num; +} + +enum _RT_MEDIA_STATUS mgnt_link_status_query(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + enum _RT_MEDIA_STATUS m_status = RT_MEDIA_DISCONNECT; + + u8 bibss = (mac->opmode == NL80211_IFTYPE_ADHOC) ? 1 : 0; + + if (bibss || rtlpriv->mac80211.link_state >= MAC80211_LINKED) + m_status = RT_MEDIA_CONNECT; + + return m_status; +} + +u8 rtl_get_hwpg_bt_exist(struct rtl_priv *rtlpriv) +{ + return rtlpriv->btcoexist.btc_info.btcoexist; +} + +u8 rtl_get_hwpg_bt_type(struct rtl_priv *rtlpriv) +{ + return rtlpriv->btcoexist.btc_info.bt_type; +} + +MODULE_AUTHOR("Page He "); +MODULE_AUTHOR("Realtek WlanFAE "); +MODULE_AUTHOR("Larry Finger "); +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Realtek 802.11n PCI wireless core"); + +static int __init rtl_btcoexist_module_init(void) +{ + return 0; +} + +static void __exit rtl_btcoexist_module_exit(void) +{ + return; +} + +module_init(rtl_btcoexist_module_init); +module_exit(rtl_btcoexist_module_exit); --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/btcoexist/rtl_btc.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/btcoexist/rtl_btc.h @@ -0,0 +1,52 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL_BTC_H__ +#define __RTL_BTC_H__ + +#include "halbt_precomp.h" + +void rtl_btc_init_variables(struct rtl_priv *rtlpriv); +void rtl_btc_init_hal_vars(struct rtl_priv *rtlpriv); +void rtl_btc_init_hw_config(struct rtl_priv *rtlpriv); +void rtl_btc_ips_notify(struct rtl_priv *rtlpriv, u8 type); +void rtl_btc_scan_notify(struct rtl_priv *rtlpriv, u8 scantype); +void rtl_btc_connect_notify(struct rtl_priv *rtlpriv, u8 action); +void rtl_btc_mediastatus_notify(struct rtl_priv *rtlpriv, + enum _RT_MEDIA_STATUS mstatus); +void rtl_btc_periodical(struct rtl_priv *rtlpriv); +void rtl_btc_halt_notify(void); +void rtl_btc_btinfo_notify(struct rtl_priv *rtlpriv, u8 *tmpbuf, u8 length); +bool rtl_btc_is_limited_dig(struct rtl_priv *rtlpriv); +bool rtl_btc_is_disable_edca_turbo(struct rtl_priv *rtlpriv); +bool rtl_btc_is_bt_disabled(struct rtl_priv *rtlpriv); + +struct rtl_btc_ops *rtl_btc_get_ops_pointer(void); + +u8 rtl_get_hwpg_ant_num(struct rtl_priv *rtlpriv); +u8 rtl_get_hwpg_bt_exist(struct rtl_priv *rtlpriv); +u8 rtl_get_hwpg_bt_type(struct rtl_priv *rtlpriv); +enum _RT_MEDIA_STATUS mgnt_link_status_query(struct ieee80211_hw *hw); + +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/core.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/core.c @@ -46,10 +46,20 @@ "Firmware callback routine entered!\n"); complete(&rtlpriv->firmware_loading_complete); if (!firmware) { + if (rtlpriv->cfg->alt_fw_name) { + err = request_firmware(&firmware, + rtlpriv->cfg->alt_fw_name, + rtlpriv->io.dev); + pr_info("Loading alternative firmware %s\n", + rtlpriv->cfg->alt_fw_name); + if (!err) + goto found_alt; + } pr_err("Firmware %s not available\n", rtlpriv->cfg->fw_name); rtlpriv->max_fw_size = 0; return; } +found_alt: if (firmware->size > rtlpriv->max_fw_size) { RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Firmware is too big!\n"); @@ -727,6 +737,11 @@ rtlpriv->cfg->ops->linked_set_reg(hw); rcu_read_lock(); sta = ieee80211_find_sta(vif, (u8 *)bss_conf->bssid); + if (!sta) { + pr_err("ieee80211_find_sta returned NULL\n"); + rcu_read_unlock(); + goto out; + } if (vif->type == NL80211_IFTYPE_STATION && sta) rtlpriv->cfg->ops->update_rate_tbl(hw, sta, 0); @@ -881,7 +896,7 @@ mac->basic_rates = basic_rates; rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_BASIC_RATE, - (u8 *) (&basic_rates)); + (u8 *)(&basic_rates)); } rcu_read_unlock(); } @@ -895,6 +910,11 @@ if (bss_conf->assoc) { if (ppsc->fwctrl_lps) { u8 mstatus = RT_MEDIA_CONNECT; + u8 keep_alive = 10; + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_KEEP_ALIVE, + (u8 *)(&keep_alive)); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_H2C_FW_JOINBSSRPT, &mstatus); @@ -1298,7 +1318,8 @@ * before switch channel or power save, or tx buffer packet * maybe send after offchannel or rf sleep, this may cause * dis-association by AP */ -static void rtl_op_flush(struct ieee80211_hw *hw, u32 queues, bool drop) +static void rtl_op_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + u32 queues, bool drop) { struct rtl_priv *rtlpriv = rtl_priv(hw); --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/pci.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/pci.c @@ -1068,7 +1068,7 @@ mac->current_ampdu_factor = 3; /*QOS*/ - rtlpci->acm_method = eAcmWay2_SW; + rtlpci->acm_method = EACMWAY2_SW; /*task */ tasklet_init(&rtlpriv->works.irq_tasklet, @@ -1843,6 +1843,65 @@ return true; } +static int rtl_pci_intr_mode_msi(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(pcipriv); + int ret; + + ret = pci_enable_msi(rtlpci->pdev); + if (ret < 0) + return ret; + + ret = request_irq(rtlpci->pdev->irq, &_rtl_pci_interrupt, + IRQF_SHARED, KBUILD_MODNAME, hw); + if (ret < 0) { + pci_disable_msi(rtlpci->pdev); + return ret; + } + + rtlpci->using_msi = true; + + RT_TRACE(rtlpriv, COMP_INIT|COMP_INTR, DBG_DMESG, + "MSI Interrupt Mode!\n"); + return 0; +} + +static int rtl_pci_intr_mode_legacy(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(pcipriv); + int ret; + + ret = request_irq(rtlpci->pdev->irq, &_rtl_pci_interrupt, + IRQF_SHARED, KBUILD_MODNAME, hw); + if (ret < 0) + return ret; + + rtlpci->using_msi = false; + RT_TRACE(rtlpriv, COMP_INIT|COMP_INTR, DBG_DMESG, + "Pin-based Interrupt Mode!\n"); + return 0; +} + +static int rtl_pci_intr_mode_decide(struct ieee80211_hw *hw) +{ + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(pcipriv); + int ret; + + if (rtlpci->msi_support) { + ret = rtl_pci_intr_mode_msi(hw); + if (ret < 0) + ret = rtl_pci_intr_mode_legacy(hw); + } else { + ret = rtl_pci_intr_mode_legacy(hw); + } + return ret; +} + int rtl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { @@ -1985,8 +2044,7 @@ } rtlpci = rtl_pcidev(pcipriv); - err = request_irq(rtlpci->pdev->irq, &_rtl_pci_interrupt, - IRQF_SHARED, KBUILD_MODNAME, hw); + err = rtl_pci_intr_mode_decide(hw); if (err) { RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "%s: failed to register IRQ handler\n", @@ -2054,6 +2112,9 @@ rtlpci->irq_alloc = 0; } + if (rtlpci->using_msi) + pci_disable_msi(rtlpci->pdev); + list_del(&rtlpriv->list); if (rtlpriv->io.pci_mem_start != 0) { pci_iounmap(pdev, (void __iomem *)rtlpriv->io.pci_mem_start); --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/pci.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/pci.h @@ -199,6 +199,10 @@ u16 shortretry_limit; u16 longretry_limit; + + /* MSI support */ + bool msi_support; + bool using_msi; }; struct mp_adapter { --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/ps.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/ps.c @@ -48,7 +48,7 @@ /*<2> Enable Adapter */ if (rtlpriv->cfg->ops->hw_init(hw)) - return 1; + return false; RT_CLEAR_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC); /*<3> Enable Interrupt */ --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8188ee/dm.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8188ee/dm.c @@ -235,7 +235,7 @@ u8 pwr_val = 0; u8 cck_base = rtldm->swing_idx_cck_base; u8 cck_val = rtldm->swing_idx_cck; - u8 ofdm_base = rtldm->swing_idx_ofdm_base; + u8 ofdm_base = rtldm->swing_idx_ofdm_base[0]; u8 ofdm_val = rtlpriv->dm.swing_idx_ofdm[RF90_PATH_A]; if (type == 0) { @@ -726,7 +726,7 @@ static u64 last_rx; long tmp_entry_max_pwdb = 0, tmp_entry_min_pwdb = 0xff; - if (rtlhal->oem_id == RT_CID_819x_HP) { + if (rtlhal->oem_id == RT_CID_819X_HP) { u64 cur_txok_cnt = 0; u64 cur_rxok_cnt = 0; cur_txok_cnt = rtlpriv->stats.txbytesunicast - last_txok; @@ -912,7 +912,7 @@ for (i = 0; i < OFDM_TABLE_LENGTH; i++) { if (ele_d == (ofdmswing_table[i] & MASKOFDM_D)) { ofdm_old[0] = (u8) i; - rtldm->swing_idx_ofdm_base = (u8)i; + rtldm->swing_idx_ofdm_base[0] = (u8)i; RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, "Initial pathA ele_d reg0x%x = 0x%lx, ofdm_index = 0x%x\n", ROFDM0_XATXIQIMBAL, @@ -1078,7 +1078,7 @@ rtldm->swing_flag_ofdm = true; } - if (rtldm->swing_idx_cck != rtldm->swing_idx_cck) { + if (rtldm->swing_idx_cck_cur != rtldm->swing_idx_cck) { rtldm->swing_idx_cck_cur = rtldm->swing_idx_cck; rtldm->swing_flag_cck = true; } --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8188ee/hw.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8188ee/hw.c @@ -509,7 +509,7 @@ u8 e_aci = *((u8 *)val); rtl88e_dm_init_edca_turbo(hw); - if (rtlpci->acm_method != eAcmWay2_SW) + if (rtlpci->acm_method != EACMWAY2_SW) rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ACM_CTRL, (u8 *)(&e_aci)); break; } @@ -1025,9 +1025,20 @@ bool rtstatus = true; int err = 0; u8 tmp_u1b, u1byte; + unsigned long flags; RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Rtl8188EE hw init\n"); rtlpriv->rtlhal.being_init_adapter = true; + /* As this function can take a very long time (up to 350 ms) + * and can be called with irqs disabled, reenable the irqs + * to let the other devices continue being serviced. + * + * It is safe doing so since our own interrupts will only be enabled + * in a subsequent step. + */ + local_save_flags(flags); + local_irq_enable(); + rtlpriv->intf_ops->disable_aspm(hw); tmp_u1b = rtl_read_byte(rtlpriv, REG_SYS_CLKR+1); @@ -1043,7 +1054,7 @@ if (rtstatus != true) { RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Init MAC failed\n"); err = 1; - return err; + goto exit; } err = rtl88e_download_fw(hw, false); @@ -1051,8 +1062,7 @@ RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, "Failed to download FW. Init HW without FW now..\n"); err = 1; - rtlhal->fw_ready = false; - return err; + goto exit; } else { rtlhal->fw_ready = true; } @@ -1097,7 +1107,7 @@ if (ppsc->rfpwr_state == ERFON) { if ((rtlefuse->antenna_div_type == CGCS_RX_HW_ANTDIV) || ((rtlefuse->antenna_div_type == CG_TRX_HW_ANTDIV) && - (rtlhal->oem_id == RT_CID_819x_HP))) { + (rtlhal->oem_id == RT_CID_819X_HP))) { rtl88e_phy_set_rfpath_switch(hw, true); rtlpriv->dm.fat_table.rx_idle_ant = MAIN_ANT; } else { @@ -1135,10 +1145,12 @@ } rtl_write_byte(rtlpriv, REG_NAV_CTRL+2, ((30000+127)/128)); rtl88e_dm_init(hw); +exit: + local_irq_restore(flags); rtlpriv->rtlhal.being_init_adapter = false; RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "end of Rtl8188EE hw init %x\n", err); - return 0; + return err; } static enum version_8188e _rtl88ee_read_chip_version(struct ieee80211_hw *hw) @@ -1872,15 +1884,15 @@ case EEPROM_CID_DEFAULT: if (rtlefuse->eeprom_did == 0x8179) { if (rtlefuse->eeprom_svid == 0x1025) { - rtlhal->oem_id = RT_CID_819x_Acer; + rtlhal->oem_id = RT_CID_819X_ACER; } else if ((rtlefuse->eeprom_svid == 0x10EC && rtlefuse->eeprom_smid == 0x0179) || (rtlefuse->eeprom_svid == 0x17AA && rtlefuse->eeprom_smid == 0x0179)) { - rtlhal->oem_id = RT_CID_819x_Lenovo; + rtlhal->oem_id = RT_CID_819X_LENOVO; } else if (rtlefuse->eeprom_svid == 0x103c && rtlefuse->eeprom_smid == 0x197d) { - rtlhal->oem_id = RT_CID_819x_HP; + rtlhal->oem_id = RT_CID_819X_HP; } else { rtlhal->oem_id = RT_CID_DEFAULT; } @@ -1892,7 +1904,7 @@ rtlhal->oem_id = RT_CID_TOSHIBA; break; case EEPROM_CID_QMI: - rtlhal->oem_id = RT_CID_819x_QMI; + rtlhal->oem_id = RT_CID_819X_QMI; break; case EEPROM_CID_WHQL: default: @@ -1911,14 +1923,14 @@ pcipriv->ledctl.led_opendrain = true; switch (rtlhal->oem_id) { - case RT_CID_819x_HP: + case RT_CID_819X_HP: pcipriv->ledctl.led_opendrain = true; break; - case RT_CID_819x_Lenovo: + case RT_CID_819X_LENOVO: case RT_CID_DEFAULT: case RT_CID_TOSHIBA: case RT_CID_CCX: - case RT_CID_819x_Acer: + case RT_CID_819X_ACER: case RT_CID_WHQL: default: break; --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8188ee/phy.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8188ee/phy.c @@ -1002,7 +1002,7 @@ } } - if (rtlhal->oem_id == RT_CID_819x_HP) + if (rtlhal->oem_id == RT_CID_819X_HP) rtl88_config_s(hw, 0x52, 0x7E4BD); break; --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8188ee/sw.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8188ee/sw.c @@ -93,6 +93,7 @@ u8 tid; rtl8188ee_bt_reg_init(hw); + rtlpci->msi_support = rtlpriv->cfg->mod_params->msi_support; rtlpriv->dm.dm_initialgain_enable = 1; rtlpriv->dm.dm_flag = 0; @@ -266,6 +267,7 @@ .inactiveps = true, .swctrl_lps = false, .fwctrl_lps = true, + .msi_support = false, .debug = DBG_EMERG, }; @@ -382,10 +384,12 @@ module_param_named(ips, rtl88ee_mod_params.inactiveps, bool, 0444); module_param_named(swlps, rtl88ee_mod_params.swctrl_lps, bool, 0444); module_param_named(fwlps, rtl88ee_mod_params.fwctrl_lps, bool, 0444); +module_param_named(msi, rtl88ee_mod_params.msi_support, bool, 0444); MODULE_PARM_DESC(swenc, "Set to 1 for software crypto (default 0)\n"); MODULE_PARM_DESC(ips, "Set to 0 to not use link power save (default 1)\n"); MODULE_PARM_DESC(swlps, "Set to 1 to use SW control power save (default 0)\n"); MODULE_PARM_DESC(fwlps, "Set to 1 to use FW control power save (default 1)\n"); +MODULE_PARM_DESC(msi, "Set to 1 to use MSI interrupts mode (default 0)\n"); MODULE_PARM_DESC(debug, "Set debug level (0-5) (default 0)"); static SIMPLE_DEV_PM_OPS(rtlwifi_pm_ops, rtl_pci_suspend, rtl_pci_resume); --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8188ee/trx.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8188ee/trx.c @@ -293,7 +293,7 @@ u8 *psaddr; __le16 fc; u16 type, ufc; - bool match_bssid, packet_toself, packet_beacon, addr; + bool match_bssid, packet_toself, packet_beacon = false, addr; tmp_buf = skb->data + pstatus->rx_drvinfo_size + pstatus->rx_bufshift; @@ -452,7 +452,7 @@ /* During testing, hdr was NULL */ return false; } - if ((ieee80211_is_robust_mgmt_frame(hdr)) && + if ((_ieee80211_is_robust_mgmt_frame(hdr)) && (ieee80211_has_protected(hdr->frame_control))) rx_status->flag &= ~RX_FLAG_DECRYPTED; else --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c @@ -158,6 +158,42 @@ {0x09, 0x08, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00} }; +static u32 power_index_reg[6] = {0xc90, 0xc91, 0xc92, 0xc98, 0xc99, 0xc9a}; + +void dm_restorepowerindex(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 index; + + for (index = 0; index < 6; index++) + rtl_write_byte(rtlpriv, power_index_reg[index], + rtlpriv->dm.powerindex_backup[index]); +} +EXPORT_SYMBOL_GPL(dm_restorepowerindex); + +void dm_writepowerindex(struct ieee80211_hw *hw, u8 value) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 index; + + for (index = 0; index < 6; index++) + rtl_write_byte(rtlpriv, power_index_reg[index], value); +} +EXPORT_SYMBOL_GPL(dm_writepowerindex); + +void dm_savepowerindex(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 index; + u8 tmp; + + for (index = 0; index < 6; index++) { + tmp = rtl_read_byte(rtlpriv, power_index_reg[index]); + rtlpriv->dm.powerindex_backup[index] = tmp; + } +} +EXPORT_SYMBOL_GPL(dm_savepowerindex); + static void rtl92c_dm_diginit(struct ieee80211_hw *hw) { struct rtl_priv *rtlpriv = rtl_priv(hw); @@ -180,7 +216,12 @@ dm_digtable->back_range_max = DM_DIG_BACKOFF_MAX; dm_digtable->back_range_min = DM_DIG_BACKOFF_MIN; dm_digtable->pre_cck_pd_state = CCK_PD_STAGE_MAX; - dm_digtable->cur_cck_pd_state = CCK_PD_STAGE_MAX; + dm_digtable->cur_cck_pd_state = CCK_PD_STAGE_LowRssi; + + dm_digtable->forbidden_igi = DM_DIG_MIN; + dm_digtable->large_fa_hit = 0; + dm_digtable->recover_cnt = 0; + dm_digtable->dig_dynamic_min = 0x25; } static u8 rtl92c_dm_initial_gain_min_pwdb(struct ieee80211_hw *hw) @@ -206,7 +247,9 @@ rssi_val_min = rtlpriv->dm.entry_min_undec_sm_pwdb; } - return (u8) rssi_val_min; + if (rssi_val_min > 100) + rssi_val_min = 100; + return (u8)rssi_val_min; } static void rtl92c_dm_false_alarm_counter_statistics(struct ieee80211_hw *hw) @@ -224,9 +267,17 @@ ret_value = rtl_get_bbreg(hw, ROFDM_PHYCOUNTER3, MASKDWORD); falsealm_cnt->cnt_mcs_fail = (ret_value & 0xffff); + + ret_value = rtl_get_bbreg(hw, ROFDM0_FRAMESYNC, MASKDWORD); + falsealm_cnt->cnt_fast_fsync_fail = (ret_value & 0xffff); + falsealm_cnt->cnt_sb_search_fail = ((ret_value & 0xffff0000) >> 16); + falsealm_cnt->cnt_ofdm_fail = falsealm_cnt->cnt_parity_fail + - falsealm_cnt->cnt_rate_illegal + - falsealm_cnt->cnt_crc8_fail + falsealm_cnt->cnt_mcs_fail; + falsealm_cnt->cnt_rate_illegal + + falsealm_cnt->cnt_crc8_fail + + falsealm_cnt->cnt_mcs_fail + + falsealm_cnt->cnt_fast_fsync_fail + + falsealm_cnt->cnt_sb_search_fail; rtl_set_bbreg(hw, RCCK0_FALSEALARMREPORT, BIT(14), 1); ret_value = rtl_get_bbreg(hw, RCCK0_FACOUNTERLOWER, MASKBYTE0); @@ -271,12 +322,14 @@ value_igi++; else if (rtlpriv->falsealm_cnt.cnt_all >= DM_DIG_FA_TH2) value_igi += 2; + if (value_igi > DM_DIG_FA_UPPER) value_igi = DM_DIG_FA_UPPER; else if (value_igi < DM_DIG_FA_LOWER) value_igi = DM_DIG_FA_LOWER; + if (rtlpriv->falsealm_cnt.cnt_all > 10000) - value_igi = 0x32; + value_igi = DM_DIG_FA_UPPER; dm_digtable->cur_igvalue = value_igi; rtl92c_dm_write_dig(hw); @@ -286,32 +339,80 @@ { struct rtl_priv *rtlpriv = rtl_priv(hw); struct dig_t *digtable = &rtlpriv->dm_digtable; + u32 isbt; - if (rtlpriv->falsealm_cnt.cnt_all > digtable->fa_highthresh) { - if ((digtable->back_val - 2) < digtable->back_range_min) - digtable->back_val = digtable->back_range_min; - else - digtable->back_val -= 2; - } else if (rtlpriv->falsealm_cnt.cnt_all < digtable->fa_lowthresh) { - if ((digtable->back_val + 2) > digtable->back_range_max) - digtable->back_val = digtable->back_range_max; - else - digtable->back_val += 2; + /* modify DIG lower bound, deal with abnorally large false alarm */ + if (rtlpriv->falsealm_cnt.cnt_all > 10000) { + digtable->large_fa_hit++; + if (digtable->forbidden_igi < digtable->cur_igvalue) { + digtable->forbidden_igi = digtable->cur_igvalue; + digtable->large_fa_hit = 1; + } + + if (digtable->large_fa_hit >= 3) { + if ((digtable->forbidden_igi + 1) > + digtable->rx_gain_max) + digtable->rx_gain_min = digtable->rx_gain_max; + else + digtable->rx_gain_min = (digtable->forbidden_igi + 1); + digtable->recover_cnt = 3600; /* 3600=2hr */ + } + } else { + /* Recovery mechanism for IGI lower bound */ + if (digtable->recover_cnt != 0) { + digtable->recover_cnt--; + } else { + if (digtable->large_fa_hit == 0) { + if ((digtable->forbidden_igi-1) < DM_DIG_MIN) { + digtable->forbidden_igi = DM_DIG_MIN; + digtable->rx_gain_min = DM_DIG_MIN; + } else { + digtable->forbidden_igi--; + digtable->rx_gain_min = digtable->forbidden_igi + 1; + } + } else if (digtable->large_fa_hit == 3) { + digtable->large_fa_hit = 0; + } + } } + if (rtlpriv->falsealm_cnt.cnt_all < 250) { + isbt = rtl_read_byte(rtlpriv, 0x4fd) & 0x01; - if ((digtable->rssi_val_min + 10 - digtable->back_val) > - digtable->rx_gain_max) + if (!isbt) { + if (rtlpriv->falsealm_cnt.cnt_all > + digtable->fa_lowthresh) { + if ((digtable->back_val - 2) < + digtable->back_range_min) + digtable->back_val = digtable->back_range_min; + else + digtable->back_val -= 2; + } else if (rtlpriv->falsealm_cnt.cnt_all < + digtable->fa_lowthresh) { + if ((digtable->back_val + 2) > + digtable->back_range_max) + digtable->back_val = digtable->back_range_max; + else + digtable->back_val += 2; + } + } else { + digtable->back_val = DM_DIG_BACKOFF_DEFAULT; + } + } else { + /* Adjust initial gain by false alarm */ + if (rtlpriv->falsealm_cnt.cnt_all > 1000) + digtable->cur_igvalue = digtable->pre_igvalue + 2; + else if (rtlpriv->falsealm_cnt.cnt_all > 750) + digtable->cur_igvalue = digtable->pre_igvalue + 1; + else if (rtlpriv->falsealm_cnt.cnt_all < 500) + digtable->cur_igvalue = digtable->pre_igvalue - 1; + } + + /* Check initial gain by upper/lower bound */ + if (digtable->cur_igvalue > digtable->rx_gain_max) digtable->cur_igvalue = digtable->rx_gain_max; - else if ((digtable->rssi_val_min + 10 - - digtable->back_val) < digtable->rx_gain_min) - digtable->cur_igvalue = digtable->rx_gain_min; - else - digtable->cur_igvalue = digtable->rssi_val_min + 10 - - digtable->back_val; - RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE, - "rssi_val_min = %x back_val %x\n", - digtable->rssi_val_min, digtable->back_val); + if (digtable->cur_igvalue < digtable->rx_gain_min) + digtable->cur_igvalue = digtable->rx_gain_min; rtl92c_dm_write_dig(hw); } @@ -329,7 +430,7 @@ multi_sta = true; if (!multi_sta || - dm_digtable->cursta_cstate != DIG_STA_DISCONNECT) { + dm_digtable->cursta_cstate == DIG_STA_DISCONNECT) { initialized = false; dm_digtable->dig_ext_port_stage = DIG_EXT_PORT_STAGE_MAX; return; @@ -375,7 +476,6 @@ RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE, "presta_cstate = %x, cursta_cstate = %x\n", dm_digtable->presta_cstate, dm_digtable->cursta_cstate); - if (dm_digtable->presta_cstate == dm_digtable->cursta_cstate || dm_digtable->cursta_cstate == DIG_STA_BEFORE_CONNECT || dm_digtable->cursta_cstate == DIG_STA_CONNECT) { @@ -383,6 +483,8 @@ if (dm_digtable->cursta_cstate != DIG_STA_DISCONNECT) { dm_digtable->rssi_val_min = rtl92c_dm_initial_gain_min_pwdb(hw); + if (dm_digtable->rssi_val_min > 100) + dm_digtable->rssi_val_min = 100; rtl92c_dm_ctrl_initgain_by_rssi(hw); } } else { @@ -398,11 +500,12 @@ static void rtl92c_dm_cck_packet_detection_thresh(struct ieee80211_hw *hw) { struct rtl_priv *rtlpriv = rtl_priv(hw); - struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); struct dig_t *dm_digtable = &rtlpriv->dm_digtable; if (dm_digtable->cursta_cstate == DIG_STA_CONNECT) { dm_digtable->rssi_val_min = rtl92c_dm_initial_gain_min_pwdb(hw); + if (dm_digtable->rssi_val_min > 100) + dm_digtable->rssi_val_min = 100; if (dm_digtable->pre_cck_pd_state == CCK_PD_STAGE_LowRssi) { if (dm_digtable->rssi_val_min <= 25) @@ -424,48 +527,14 @@ } if (dm_digtable->pre_cck_pd_state != dm_digtable->cur_cck_pd_state) { - if (dm_digtable->cur_cck_pd_state == CCK_PD_STAGE_LowRssi) { - if (rtlpriv->falsealm_cnt.cnt_cck_fail > 800) - dm_digtable->cur_cck_fa_state = - CCK_FA_STAGE_High; - else - dm_digtable->cur_cck_fa_state = CCK_FA_STAGE_Low; - - if (dm_digtable->pre_cck_fa_state != - dm_digtable->cur_cck_fa_state) { - if (dm_digtable->cur_cck_fa_state == - CCK_FA_STAGE_Low) - rtl_set_bbreg(hw, RCCK0_CCA, MASKBYTE2, - 0x83); - else - rtl_set_bbreg(hw, RCCK0_CCA, MASKBYTE2, - 0xcd); - - dm_digtable->pre_cck_fa_state = - dm_digtable->cur_cck_fa_state; - } - - rtl_set_bbreg(hw, RCCK0_SYSTEM, MASKBYTE1, 0x40); - - if (IS_92C_SERIAL(rtlhal->version)) - rtl_set_bbreg(hw, RCCK0_FALSEALARMREPORT, - MASKBYTE2, 0xd7); - } else { + if ((dm_digtable->cur_cck_pd_state == CCK_PD_STAGE_LowRssi) || + (dm_digtable->cur_cck_pd_state == CCK_PD_STAGE_MAX)) + rtl_set_bbreg(hw, RCCK0_CCA, MASKBYTE2, 0x83); + else rtl_set_bbreg(hw, RCCK0_CCA, MASKBYTE2, 0xcd); - rtl_set_bbreg(hw, RCCK0_SYSTEM, MASKBYTE1, 0x47); - if (IS_92C_SERIAL(rtlhal->version)) - rtl_set_bbreg(hw, RCCK0_FALSEALARMREPORT, - MASKBYTE2, 0xd3); - } dm_digtable->pre_cck_pd_state = dm_digtable->cur_cck_pd_state; } - - RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE, "CCKPDStage=%x\n", - dm_digtable->cur_cck_pd_state); - - RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE, "is92C=%x\n", - IS_92C_SERIAL(rtlhal->version)); } static void rtl92c_dm_ctrl_initgain_by_twoport(struct ieee80211_hw *hw) @@ -482,6 +551,8 @@ else dm_digtable->cursta_cstate = DIG_STA_DISCONNECT; + dm_digtable->curmultista_cstate = DIG_MULTISTA_DISCONNECT; + rtl92c_dm_initial_gain_sta(hw); rtl92c_dm_initial_gain_multi_sta(hw); rtl92c_dm_cck_packet_detection_thresh(hw); @@ -493,23 +564,26 @@ static void rtl92c_dm_dig(struct ieee80211_hw *hw) { struct rtl_priv *rtlpriv = rtl_priv(hw); - struct dig_t *dm_digtable = &rtlpriv->dm_digtable; if (rtlpriv->dm.dm_initialgain_enable == false) return; - if (dm_digtable->dig_enable_flag == false) + if (!rtlpriv->dm.dm_flag & DYNAMIC_FUNC_DIG) return; rtl92c_dm_ctrl_initgain_by_twoport(hw); - } static void rtl92c_dm_init_dynamic_txpower(struct ieee80211_hw *hw) { struct rtl_priv *rtlpriv = rtl_priv(hw); - rtlpriv->dm.dynamic_txpower_enable = false; - + if (rtlpriv->rtlhal.interface == INTF_USB && + rtlpriv->rtlhal.board_type & 0x1) { + dm_savepowerindex(hw); + rtlpriv->dm.dynamic_txpower_enable = true; + } else { + rtlpriv->dm.dynamic_txpower_enable = false; + } rtlpriv->dm.last_dtp_lvl = TXHIGHPWRLEVEL_NORMAL; rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_NORMAL; } @@ -524,9 +598,14 @@ dm_digtable->cur_igvalue, dm_digtable->pre_igvalue, dm_digtable->back_val); - dm_digtable->cur_igvalue += 2; - if (dm_digtable->cur_igvalue > 0x3f) - dm_digtable->cur_igvalue = 0x3f; + if (rtlpriv->rtlhal.interface == INTF_USB && + !dm_digtable->dig_enable_flag) { + dm_digtable->pre_igvalue = 0x17; + return; + } + dm_digtable->cur_igvalue -= 1; + if (dm_digtable->cur_igvalue < DM_DIG_MIN) + dm_digtable->cur_igvalue = DM_DIG_MIN; if (dm_digtable->pre_igvalue != dm_digtable->cur_igvalue) { rtl_set_bbreg(hw, ROFDM0_XAAGCCORE1, 0x7f, @@ -536,11 +615,47 @@ dm_digtable->pre_igvalue = dm_digtable->cur_igvalue; } + RT_TRACE(rtlpriv, COMP_DIG, DBG_WARNING, + "dig values 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n", + dm_digtable->cur_igvalue, dm_digtable->pre_igvalue, + dm_digtable->rssi_val_min, dm_digtable->back_val, + dm_digtable->rx_gain_max, dm_digtable->rx_gain_min, + dm_digtable->large_fa_hit, dm_digtable->forbidden_igi); } EXPORT_SYMBOL(rtl92c_dm_write_dig); static void rtl92c_dm_pwdb_monitor(struct ieee80211_hw *hw) { + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + long tmpentry_max_pwdb = 0, tmpentry_min_pwdb = 0xff; + + if (mac->link_state != MAC80211_LINKED) + return; + + if (mac->opmode == NL80211_IFTYPE_ADHOC || + mac->opmode == NL80211_IFTYPE_AP) { + /* TODO: Handle ADHOC and AP Mode */ + } + + if (tmpentry_max_pwdb != 0) + rtlpriv->dm.entry_max_undec_sm_pwdb = tmpentry_max_pwdb; + else + rtlpriv->dm.entry_max_undec_sm_pwdb = 0; + + if (tmpentry_min_pwdb != 0xff) + rtlpriv->dm.entry_min_undec_sm_pwdb = tmpentry_min_pwdb; + else + rtlpriv->dm.entry_min_undec_sm_pwdb = 0; + +/* TODO: + * if (mac->opmode == NL80211_IFTYPE_STATION) { + * if (rtlpriv->rtlhal.fw_ready) { + * u32 param = (u32)(rtlpriv->dm.undec_sm_pwdb << 16); + * rtl8192c_set_rssi_cmd(hw, param); + * } + * } + */ } void rtl92c_dm_init_edca_turbo(struct ieee80211_hw *hw) @@ -750,6 +865,7 @@ rtlpriv->dm.ofdm_index[i] = ofdm_index_old[i]; rtlpriv->dm.cck_index = cck_index_old; } + /* Handle USB High PA boards */ delta = (thermalvalue > rtlpriv->dm.thermalvalue) ? (thermalvalue - rtlpriv->dm.thermalvalue) : @@ -1140,22 +1256,22 @@ { struct rtl_priv *rtlpriv = rtl_priv(hw); struct ps_t *dm_pstable = &rtlpriv->dm_pstable; - static u8 initialize; - static u32 reg_874, reg_c70, reg_85c, reg_a74; - if (initialize == 0) { - reg_874 = (rtl_get_bbreg(hw, RFPGA0_XCD_RFINTERFACESW, - MASKDWORD) & 0x1CC000) >> 14; + if (!rtlpriv->reg_init) { + rtlpriv->reg_874 = (rtl_get_bbreg(hw, + RFPGA0_XCD_RFINTERFACESW, + MASKDWORD) & 0x1CC000) >> 14; - reg_c70 = (rtl_get_bbreg(hw, ROFDM0_AGCPARAMETER1, - MASKDWORD) & BIT(3)) >> 3; + rtlpriv->reg_c70 = (rtl_get_bbreg(hw, ROFDM0_AGCPARAMETER1, + MASKDWORD) & BIT(3)) >> 3; - reg_85c = (rtl_get_bbreg(hw, RFPGA0_XCD_SWITCHCONTROL, - MASKDWORD) & 0xFF000000) >> 24; + rtlpriv->reg_85c = (rtl_get_bbreg(hw, RFPGA0_XCD_SWITCHCONTROL, + MASKDWORD) & 0xFF000000) >> 24; - reg_a74 = (rtl_get_bbreg(hw, 0xa74, MASKDWORD) & 0xF000) >> 12; + rtlpriv->reg_a74 = (rtl_get_bbreg(hw, 0xa74, MASKDWORD) & + 0xF000) >> 12; - initialize = 1; + rtlpriv->reg_init = true; } if (!bforce_in_normal) { @@ -1192,12 +1308,12 @@ rtl_set_bbreg(hw, 0x818, BIT(28), 0x1); } else { rtl_set_bbreg(hw, RFPGA0_XCD_RFINTERFACESW, - 0x1CC000, reg_874); + 0x1CC000, rtlpriv->reg_874); rtl_set_bbreg(hw, ROFDM0_AGCPARAMETER1, BIT(3), - reg_c70); + rtlpriv->reg_c70); rtl_set_bbreg(hw, RFPGA0_XCD_SWITCHCONTROL, 0xFF000000, - reg_85c); - rtl_set_bbreg(hw, 0xa74, 0xF000, reg_a74); + rtlpriv->reg_85c); + rtl_set_bbreg(hw, 0xa74, 0xF000, rtlpriv->reg_a74); rtl_set_bbreg(hw, 0x818, BIT(28), 0x0); } @@ -1213,6 +1329,7 @@ struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + /* Determine the minimum RSSI */ if (((mac->link_state == MAC80211_NOLINK)) && (rtlpriv->dm.entry_min_undec_sm_pwdb == 0)) { dm_pstable->rssi_val_min = 0; @@ -1241,6 +1358,7 @@ dm_pstable->rssi_val_min); } + /* Power Saving for 92C */ if (IS_92C_SERIAL(rtlhal->version)) ;/* rtl92c_dm_1r_cca(hw); */ else @@ -1252,12 +1370,23 @@ struct rtl_priv *rtlpriv = rtl_priv(hw); rtlpriv->dm.dm_type = DM_TYPE_BYDRIVER; + rtlpriv->dm.dm_flag = DYNAMIC_FUNC_DISABLE | DYNAMIC_FUNC_DIG; + rtlpriv->dm.undec_sm_pwdb = -1; + rtlpriv->dm.undec_sm_cck = -1; + rtlpriv->dm.dm_initialgain_enable = true; rtl92c_dm_diginit(hw); + + rtlpriv->dm.dm_flag |= HAL_DM_HIPWR_DISABLE; rtl92c_dm_init_dynamic_txpower(hw); + rtl92c_dm_init_edca_turbo(hw); rtl92c_dm_init_rate_adaptive_mask(hw); + rtlpriv->dm.dm_flag |= DYNAMIC_FUNC_SS; rtl92c_dm_initialize_txpower_tracking(hw); rtl92c_dm_init_dynamic_bb_powersaving(hw); + + rtlpriv->dm.ofdm_pkt_cnt = 0; + rtlpriv->dm.dm_rssi_sel = RSSI_DEFAULT; } EXPORT_SYMBOL(rtl92c_dm_init); @@ -1308,7 +1437,7 @@ } if (undec_sm_pwdb >= TX_POWER_NEAR_FIELD_THRESH_LVL2) { - rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_LEVEL1; + rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_LEVEL2; RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, "TXHIGHPWRLEVEL_LEVEL1 (TxPwr=0x0)\n"); } else if ((undec_sm_pwdb < (TX_POWER_NEAR_FIELD_THRESH_LVL2 - 3)) && @@ -1328,8 +1457,16 @@ "PHY_SetTxPowerLevel8192S() Channel = %d\n", rtlphy->current_channel); rtl92c_phy_set_txpower_level(hw, rtlphy->current_channel); + if (rtlpriv->dm.dynamic_txhighpower_lvl == + TXHIGHPWRLEVEL_NORMAL) + dm_restorepowerindex(hw); + else if (rtlpriv->dm.dynamic_txhighpower_lvl == + TXHIGHPWRLEVEL_LEVEL1) + dm_writepowerindex(hw, 0x14); + else if (rtlpriv->dm.dynamic_txhighpower_lvl == + TXHIGHPWRLEVEL_LEVEL2) + dm_writepowerindex(hw, 0x10); } - rtlpriv->dm.last_dtp_lvl = rtlpriv->dm.dynamic_txhighpower_lvl; } @@ -1400,12 +1537,6 @@ else curr_bt_rssi_state &= (~BT_RSSI_STATE_SPECIAL_LOW); - /* Set Tx Power according to BT status. */ - if (undec_sm_pwdb >= 30) - curr_bt_rssi_state |= BT_RSSI_STATE_TXPOWER_LOW; - else if (undec_sm_pwdb < 25) - curr_bt_rssi_state &= (~BT_RSSI_STATE_TXPOWER_LOW); - /* Check BT state related to BT_Idle in B/G mode. */ if (undec_sm_pwdb < 15) curr_bt_rssi_state |= BT_RSSI_STATE_BG_EDCA_LOW; --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.h @@ -91,6 +91,17 @@ #define TX_POWER_NEAR_FIELD_THRESH_LVL2 74 #define TX_POWER_NEAR_FIELD_THRESH_LVL1 67 +#define DYNAMIC_FUNC_DISABLE 0x0 +#define DYNAMIC_FUNC_DIG BIT(0) +#define DYNAMIC_FUNC_HP BIT(1) +#define DYNAMIC_FUNC_SS BIT(2) /*Tx Power Tracking*/ +#define DYNAMIC_FUNC_BT BIT(3) +#define DYNAMIC_FUNC_ANT_DIV BIT(4) + +#define RSSI_CCK 0 +#define RSSI_OFDM 1 +#define RSSI_DEFAULT 2 + struct swat_t { u8 failure_cnt; u8 try_flag; @@ -167,5 +178,8 @@ void rtl92c_phy_iq_calibrate(struct ieee80211_hw *hw, bool recovery); void rtl92c_dm_dynamic_txpower(struct ieee80211_hw *hw); void rtl92c_dm_bt_coexist(struct ieee80211_hw *hw); +void dm_savepowerindex(struct ieee80211_hw *hw); +void dm_writepowerindex(struct ieee80211_hw *hw, u8 value); +void dm_restorepowerindex(struct ieee80211_hw *hw); #endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c @@ -319,7 +319,7 @@ u8 e_aci = *(val); rtl92c_dm_init_edca_turbo(hw); - if (rtlpci->acm_method != eAcmWay2_SW) + if (rtlpci->acm_method != EACMWAY2_SW) rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ACM_CTRL, (&e_aci)); @@ -937,14 +937,27 @@ bool is92c; int err; u8 tmp_u1b; + unsigned long flags; rtlpci->being_init_adapter = true; + + /* Since this function can take a very long time (up to 350 ms) + * and can be called with irqs disabled, reenable the irqs + * to let the other devices continue being serviced. + * + * It is safe doing so since our own interrupts will only be enabled + * in a subsequent step. + */ + local_save_flags(flags); + local_irq_enable(); + + rtlhal->fw_ready = false; rtlpriv->intf_ops->disable_aspm(hw); rtstatus = _rtl92ce_init_mac(hw); if (!rtstatus) { RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Init MAC failed\n"); err = 1; - return err; + goto exit; } err = rtl92c_download_fw(hw); @@ -952,9 +965,10 @@ RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, "Failed to download FW. Init HW without FW now..\n"); err = 1; - return err; + goto exit; } + rtlhal->fw_ready = true; rtlhal->last_hmeboxnum = 0; rtl92c_phy_mac_config(hw); /* because last function modify RCR, so we update @@ -1032,6 +1046,8 @@ RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "under 1.5V\n"); } rtl92c_dm_init(hw); +exit: + local_irq_restore(flags); rtlpci->being_init_adapter = false; return err; } @@ -1720,7 +1736,7 @@ if (rtlefuse->eeprom_did == 0x8176) { if ((rtlefuse->eeprom_svid == 0x103C && rtlefuse->eeprom_smid == 0x1629)) - rtlhal->oem_id = RT_CID_819x_HP; + rtlhal->oem_id = RT_CID_819X_HP; else rtlhal->oem_id = RT_CID_DEFAULT; } else { @@ -1731,7 +1747,7 @@ rtlhal->oem_id = RT_CID_TOSHIBA; break; case EEPROM_CID_QMI: - rtlhal->oem_id = RT_CID_819x_QMI; + rtlhal->oem_id = RT_CID_819X_QMI; break; case EEPROM_CID_WHQL: default: @@ -1750,14 +1766,14 @@ struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); switch (rtlhal->oem_id) { - case RT_CID_819x_HP: + case RT_CID_819X_HP: pcipriv->ledctl.led_opendrain = true; break; - case RT_CID_819x_Lenovo: + case RT_CID_819X_LENOVO: case RT_CID_DEFAULT: case RT_CID_TOSHIBA: case RT_CID_CCX: - case RT_CID_819x_Acer: + case RT_CID_819X_ACER: case RT_CID_WHQL: default: break; --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8192ce/trx.c @@ -393,7 +393,7 @@ /* In testing, hdr was NULL here */ return false; } - if ((ieee80211_is_robust_mgmt_frame(hdr)) && + if ((_ieee80211_is_robust_mgmt_frame(hdr)) && (ieee80211_has_protected(hdr->frame_control))) rx_status->flag &= ~RX_FLAG_DECRYPTED; else --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8192cu/dm.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8192cu/dm.c @@ -101,6 +101,15 @@ "PHY_SetTxPowerLevel8192S() Channel = %d\n", rtlphy->current_channel); rtl92c_phy_set_txpower_level(hw, rtlphy->current_channel); + if (rtlpriv->dm.dynamic_txhighpower_lvl == + TXHIGHPWRLEVEL_NORMAL) + dm_restorepowerindex(hw); + else if (rtlpriv->dm.dynamic_txhighpower_lvl == + TXHIGHPWRLEVEL_LEVEL1) + dm_writepowerindex(hw, 0x14); + else if (rtlpriv->dm.dynamic_txhighpower_lvl == + TXHIGHPWRLEVEL_LEVEL2) + dm_writepowerindex(hw, 0x10); } rtlpriv->dm.last_dtp_lvl = rtlpriv->dm.dynamic_txhighpower_lvl; --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8192cu/dm.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8192cu/dm.h @@ -30,3 +30,6 @@ #include "../rtl8192ce/dm.h" void rtl92cu_dm_dynamic_txpower(struct ieee80211_hw *hw); +void dm_savepowerindex(struct ieee80211_hw *hw); +void dm_writepowerindex(struct ieee80211_hw *hw, u8 value); +void dm_restorepowerindex(struct ieee80211_hw *hw); --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8192cu/hw.c @@ -394,7 +394,7 @@ if (rtlefuse->eeprom_did == 0x8176) { if ((rtlefuse->eeprom_svid == 0x103C && rtlefuse->eeprom_smid == 0x1629)) - rtlhal->oem_id = RT_CID_819x_HP; + rtlhal->oem_id = RT_CID_819X_HP; else rtlhal->oem_id = RT_CID_DEFAULT; } else { @@ -405,7 +405,7 @@ rtlhal->oem_id = RT_CID_TOSHIBA; break; case EEPROM_CID_QMI: - rtlhal->oem_id = RT_CID_819x_QMI; + rtlhal->oem_id = RT_CID_819X_QMI; break; case EEPROM_CID_WHQL: default: @@ -423,14 +423,14 @@ struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); switch (rtlhal->oem_id) { - case RT_CID_819x_HP: + case RT_CID_819X_HP: usb_priv->ledctl.led_opendrain = true; break; - case RT_CID_819x_Lenovo: + case RT_CID_819X_LENOVO: case RT_CID_DEFAULT: case RT_CID_TOSHIBA: case RT_CID_CCX: - case RT_CID_819x_Acer: + case RT_CID_819X_ACER: case RT_CID_WHQL: default: break; @@ -985,19 +985,30 @@ struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); int err = 0; static bool iqk_initialized; + unsigned long flags; + + /* As this function can take a very long time (up to 350 ms) + * and can be called with irqs disabled, reenable the irqs + * to let the other devices continue being serviced. + * + * It is safe doing so since our own interrupts will only be enabled + * in a subsequent step. + */ + local_save_flags(flags); + local_irq_enable(); rtlhal->hw_type = HARDWARE_TYPE_RTL8192CU; err = _rtl92cu_init_mac(hw); if (err) { RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "init mac failed!\n"); - return err; + goto exit; } err = rtl92c_download_fw(hw); if (err) { RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, "Failed to download FW. Init HW without FW now..\n"); err = 1; - return err; + goto exit; } rtlhal->last_hmeboxnum = 0; /* h2c */ _rtl92cu_phy_param_tab_init(hw); @@ -1034,6 +1045,8 @@ _InitPABias(hw); _update_mac_setting(hw); rtl92c_dm_init(hw); +exit: + local_irq_restore(flags); return err; } @@ -1795,7 +1808,7 @@ e_aci); break; } - if (rtlusb->acm_method != eAcmWay2_SW) + if (rtlusb->acm_method != EACMWAY2_SW) rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ACM_CTRL, &e_aci); break; --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8192cu/rf.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8192cu/rf.c @@ -85,17 +85,15 @@ if (mac->act_scanning) { tx_agc[RF90_PATH_A] = 0x3f3f3f3f; tx_agc[RF90_PATH_B] = 0x3f3f3f3f; - if (turbo_scanoff) { - for (idx1 = RF90_PATH_A; idx1 <= RF90_PATH_B; idx1++) { - tx_agc[idx1] = ppowerlevel[idx1] | - (ppowerlevel[idx1] << 8) | - (ppowerlevel[idx1] << 16) | - (ppowerlevel[idx1] << 24); - if (rtlhal->interface == INTF_USB) { - if (tx_agc[idx1] > 0x20 && - rtlefuse->external_pa) - tx_agc[idx1] = 0x20; - } + for (idx1 = RF90_PATH_A; idx1 <= RF90_PATH_B; idx1++) { + tx_agc[idx1] = ppowerlevel[idx1] | + (ppowerlevel[idx1] << 8) | + (ppowerlevel[idx1] << 16) | + (ppowerlevel[idx1] << 24); + if (rtlhal->interface == INTF_USB) { + if (tx_agc[idx1] > 0x20 && + rtlefuse->external_pa) + tx_agc[idx1] = 0x20; } } } else { @@ -107,7 +105,7 @@ TXHIGHPWRLEVEL_LEVEL2) { tx_agc[RF90_PATH_A] = 0x00000000; tx_agc[RF90_PATH_B] = 0x00000000; - } else{ + } else { for (idx1 = RF90_PATH_A; idx1 <= RF90_PATH_B; idx1++) { tx_agc[idx1] = ppowerlevel[idx1] | (ppowerlevel[idx1] << 8) | @@ -373,7 +371,12 @@ regoffset == RTXAGC_B_MCS07_MCS04) regoffset = 0xc98; for (i = 0; i < 3; i++) { - writeVal = (writeVal > 6) ? (writeVal - 6) : 0; + if (i != 2) + writeVal = (writeVal > 8) ? + (writeVal - 8) : 0; + else + writeVal = (writeVal > 6) ? + (writeVal - 6) : 0; rtl_write_byte(rtlpriv, (u32)(regoffset + i), (u8)writeVal); } --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c @@ -50,6 +50,9 @@ MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("Realtek 8192C/8188C 802.11n USB wireless"); MODULE_FIRMWARE("rtlwifi/rtl8192cufw.bin"); +MODULE_FIRMWARE("rtlwifi/rtl8192cufw_A.bin"); +MODULE_FIRMWARE("rtlwifi/rtl8192cufw_B.bin"); +MODULE_FIRMWARE("rtlwifi/rtl8192cufw_TMSC.bin"); static int rtl92cu_init_sw_vars(struct ieee80211_hw *hw) { @@ -69,14 +72,21 @@ "Can't alloc buffer for fw\n"); return 1; } - + if (IS_VENDOR_UMC_A_CUT(rtlpriv->rtlhal.version) && + !IS_92C_SERIAL(rtlpriv->rtlhal.version)) { + rtlpriv->cfg->fw_name = "rtlwifi/rtl8192cufw_A.bin"; + } else if (IS_81xxC_VENDOR_UMC_B_CUT(rtlpriv->rtlhal.version)) { + rtlpriv->cfg->fw_name = "rtlwifi/rtl8192cufw_B.bin"; + } else { + rtlpriv->cfg->fw_name = "rtlwifi/rtl8192cufw_TMSC.bin"; + } + /* provide name of alternative file */ + rtlpriv->cfg->alt_fw_name = "rtlwifi/rtl8192cufw.bin"; pr_info("Loading firmware %s\n", rtlpriv->cfg->fw_name); rtlpriv->max_fw_size = 0x4000; err = request_firmware_nowait(THIS_MODULE, 1, rtlpriv->cfg->fw_name, rtlpriv->io.dev, GFP_KERNEL, hw, rtl_fw_cb); - - return err; } @@ -307,6 +317,8 @@ {RTL_USB_DEVICE(0x0bda, 0x5088, rtl92cu_hal_cfg)}, /*Thinkware-CC&C*/ {RTL_USB_DEVICE(0x0df6, 0x0052, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/ {RTL_USB_DEVICE(0x0df6, 0x005c, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/ + {RTL_USB_DEVICE(0x0df6, 0x0070, rtl92cu_hal_cfg)}, /*Sitecom - 150N */ + {RTL_USB_DEVICE(0x0df6, 0x0077, rtl92cu_hal_cfg)}, /*Sitecom-WLA2100V2*/ {RTL_USB_DEVICE(0x0eb0, 0x9071, rtl92cu_hal_cfg)}, /*NO Brand - Etop*/ {RTL_USB_DEVICE(0x4856, 0x0091, rtl92cu_hal_cfg)}, /*NetweeN - Feixun*/ /* HP - Lite-On ,8188CUS Slim Combo */ --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8192de/hw.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8192de/hw.c @@ -318,7 +318,7 @@ case HW_VAR_AC_PARAM: { u8 e_aci = *val; rtl92d_dm_init_edca_turbo(hw); - if (rtlpci->acm_method != eAcmWay2_SW) + if (rtlpci->acm_method != EACMWAY2_SW) rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ACM_CTRL, &e_aci); break; --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8192se/hw.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8192se/hw.c @@ -251,7 +251,7 @@ u8 e_aci = *val; rtl92s_dm_init_edca_turbo(hw); - if (rtlpci->acm_method != eAcmWay2_SW) + if (rtlpci->acm_method != EACMWAY2_SW) rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ACM_CTRL, &e_aci); @@ -955,7 +955,7 @@ struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); u8 tmp_byte = 0; - + unsigned long flags; bool rtstatus = true; u8 tmp_u1b; int err = false; @@ -967,6 +967,16 @@ rtlpci->being_init_adapter = true; + /* As this function can take a very long time (up to 350 ms) + * and can be called with irqs disabled, reenable the irqs + * to let the other devices continue being serviced. + * + * It is safe doing so since our own interrupts will only be enabled + * in a subsequent step. + */ + local_save_flags(flags); + local_irq_enable(); + rtlpriv->intf_ops->disable_aspm(hw); /* 1. MAC Initialize */ @@ -984,7 +994,8 @@ RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, "Failed to download FW. Init HW without FW now... " "Please copy FW into /lib/firmware/rtlwifi\n"); - return 1; + err = 1; + goto exit; } /* After FW download, we have to reset MAC register */ @@ -997,7 +1008,8 @@ /* 3. Initialize MAC/PHY Config by MACPHY_reg.txt */ if (!rtl92s_phy_mac_config(hw)) { RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "MAC Config failed\n"); - return rtstatus; + err = rtstatus; + goto exit; } /* because last function modify RCR, so we update @@ -1016,7 +1028,8 @@ /* 4. Initialize BB After MAC Config PHY_reg.txt, AGC_Tab.txt */ if (!rtl92s_phy_bb_config(hw)) { RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG, "BB Config failed\n"); - return rtstatus; + err = rtstatus; + goto exit; } /* 5. Initiailze RF RAIO_A.txt RF RAIO_B.txt */ @@ -1033,7 +1046,8 @@ if (!rtl92s_phy_rf_config(hw)) { RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "RF Config failed\n"); - return rtstatus; + err = rtstatus; + goto exit; } /* After read predefined TXT, we must set BB/MAC/RF @@ -1122,8 +1136,9 @@ rtlpriv->cfg->ops->led_control(hw, LED_CTL_POWER_ON); rtl92s_dm_init(hw); +exit: + local_irq_restore(flags); rtlpci->being_init_adapter = false; - return err; } --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8192se/trx.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8192se/trx.c @@ -49,6 +49,12 @@ if (ieee80211_is_nullfunc(fc)) return QSLT_HIGH; + /* Kernel commit 1bf4bbb4024dcdab changed EAPOL packets to use + * queue V0 at priority 7; however, the RTL8192SE appears to have + * that queue at priority 6 + */ + if (skb->priority == 7) + return QSLT_VO; return skb->priority; } @@ -310,7 +316,7 @@ /* during testing, hdr was NULL here */ return false; } - if ((ieee80211_is_robust_mgmt_frame(hdr)) && + if ((_ieee80211_is_robust_mgmt_frame(hdr)) && (ieee80211_has_protected(hdr->frame_control))) rx_status->flag &= ~RX_FLAG_DECRYPTED; else --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723ae/def.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723ae/def.h @@ -46,11 +46,6 @@ #define E_CUT_VERSION BIT(14) #define RF_RL_ID (BIT(31)|BIT(30)|BIT(29)|BIT(28)) -enum version_8723e { - VERSION_TEST_UMC_CHIP_8723 = 0x0081, - VERSION_NORMAL_UMC_CHIP_8723_1T1R_A_CUT = 0x0089, - VERSION_NORMAL_UMC_CHIP_8723_1T1R_B_CUT = 0x1089, -}; /* MASK */ #define IC_TYPE_MASK (BIT(0)|BIT(1)|BIT(2)) --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723ae/dm.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723ae/dm.c @@ -35,6 +35,7 @@ #include "def.h" #include "phy.h" #include "dm.h" +#include "../rtl8723com/dm_common.h" #include "fw.h" #include "hal_btc.h" @@ -483,16 +484,6 @@ rtl8723ae_dm_ctrl_initgain_by_twoport(hw); } -static void rtl8723ae_dm_init_dynamic_txpower(struct ieee80211_hw *hw) -{ - struct rtl_priv *rtlpriv = rtl_priv(hw); - - rtlpriv->dm.dynamic_txpower_enable = false; - - rtlpriv->dm.last_dtp_lvl = TXHIGHPWRLEVEL_NORMAL; - rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_NORMAL; -} - static void rtl8723ae_dm_dynamic_txpower(struct ieee80211_hw *hw) { struct rtl_priv *rtlpriv = rtl_priv(hw); @@ -585,19 +576,6 @@ } } -static void rtl8723ae_dm_pwdmonitor(struct ieee80211_hw *hw) -{ -} - -void rtl8723ae_dm_init_edca_turbo(struct ieee80211_hw *hw) -{ - struct rtl_priv *rtlpriv = rtl_priv(hw); - - rtlpriv->dm.current_turbo_edca = false; - rtlpriv->dm.is_any_nonbepkts = false; - rtlpriv->dm.is_cur_rdlstate = false; -} - static void rtl8723ae_dm_check_edca_turbo(struct ieee80211_hw *hw) { struct rtl_priv *rtlpriv = rtl_priv(hw); @@ -778,17 +756,6 @@ } } -static void rtl8723ae_dm_init_dynamic_bpowersaving(struct ieee80211_hw *hw) -{ - struct rtl_priv *rtlpriv = rtl_priv(hw); - - rtlpriv->dm_pstable.pre_ccastate = CCA_MAX; - rtlpriv->dm_pstable.cur_ccasate = CCA_MAX; - rtlpriv->dm_pstable.pre_rfstate = RF_MAX; - rtlpriv->dm_pstable.cur_rfstate = RF_MAX; - rtlpriv->dm_pstable.rssi_val_min = 0; -} - void rtl8723ae_dm_rf_saving(struct ieee80211_hw *hw, u8 force_in_normal) { struct rtl_priv *rtlpriv = rtl_priv(hw); @@ -905,11 +872,11 @@ rtlpriv->dm.dm_type = DM_TYPE_BYDRIVER; rtl8723ae_dm_diginit(hw); - rtl8723ae_dm_init_dynamic_txpower(hw); - rtl8723ae_dm_init_edca_turbo(hw); + rtl8723_dm_init_dynamic_txpower(hw); + rtl8723_dm_init_edca_turbo(hw); rtl8723ae_dm_init_rate_adaptive_mask(hw); rtl8723ae_dm_initialize_txpower_tracking(hw); - rtl8723ae_dm_init_dynamic_bpowersaving(hw); + rtl8723_dm_init_dynamic_bb_powersaving(hw); } void rtl8723ae_dm_watchdog(struct ieee80211_hw *hw) @@ -930,7 +897,6 @@ if ((ppsc->rfpwr_state == ERFON) && ((!fw_current_inpsmode) && fw_ps_awake) && (!ppsc->rfchange_inprogress)) { - rtl8723ae_dm_pwdmonitor(hw); rtl8723ae_dm_dig(hw); rtl8723ae_dm_false_alarm_counter_statistics(hw); rtl8723ae_dm_dynamic_bpowersaving(hw); --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723ae/dm.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723ae/dm.h @@ -147,7 +147,6 @@ void rtl8723ae_dm_init(struct ieee80211_hw *hw); void rtl8723ae_dm_watchdog(struct ieee80211_hw *hw); void rtl8723ae_dm_write_dig(struct ieee80211_hw *hw); -void rtl8723ae_dm_init_edca_turbo(struct ieee80211_hw *hw); void rtl8723ae_dm_init_rate_adaptive_mask(struct ieee80211_hw *hw); void rtl8723ae_dm_rf_saving(struct ieee80211_hw *hw, u8 bforce_in_normal); void rtl8723ae_dm_bt_coexist(struct ieee80211_hw *hw); --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723ae/fw.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723ae/fw.c @@ -34,199 +34,7 @@ #include "reg.h" #include "def.h" #include "fw.h" - -static void _rtl8723ae_enable_fw_download(struct ieee80211_hw *hw, bool enable) -{ - struct rtl_priv *rtlpriv = rtl_priv(hw); - u8 tmp; - if (enable) { - tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN + 1); - rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN + 1, tmp | 0x04); - - tmp = rtl_read_byte(rtlpriv, REG_MCUFWDL); - rtl_write_byte(rtlpriv, REG_MCUFWDL, tmp | 0x01); - - tmp = rtl_read_byte(rtlpriv, REG_MCUFWDL + 2); - rtl_write_byte(rtlpriv, REG_MCUFWDL + 2, tmp & 0xf7); - } else { - tmp = rtl_read_byte(rtlpriv, REG_MCUFWDL); - rtl_write_byte(rtlpriv, REG_MCUFWDL, tmp & 0xfe); - - rtl_write_byte(rtlpriv, REG_MCUFWDL + 1, 0x00); - } -} - -static void _rtl8723ae_fw_block_write(struct ieee80211_hw *hw, - const u8 *buffer, u32 size) -{ - struct rtl_priv *rtlpriv = rtl_priv(hw); - u32 blockSize = sizeof(u32); - u8 *bufferPtr = (u8 *) buffer; - u32 *pu4BytePtr = (u32 *) buffer; - u32 i, offset, blockCount, remainSize; - - blockCount = size / blockSize; - remainSize = size % blockSize; - - for (i = 0; i < blockCount; i++) { - offset = i * blockSize; - rtl_write_dword(rtlpriv, (FW_8192C_START_ADDRESS + offset), - *(pu4BytePtr + i)); - } - - if (remainSize) { - offset = blockCount * blockSize; - bufferPtr += offset; - for (i = 0; i < remainSize; i++) { - rtl_write_byte(rtlpriv, (FW_8192C_START_ADDRESS + - offset + i), *(bufferPtr + i)); - } - } -} - -static void _rtl8723ae_fw_page_write(struct ieee80211_hw *hw, - u32 page, const u8 *buffer, u32 size) -{ - struct rtl_priv *rtlpriv = rtl_priv(hw); - u8 value8; - u8 u8page = (u8) (page & 0x07); - - value8 = (rtl_read_byte(rtlpriv, REG_MCUFWDL + 2) & 0xF8) | u8page; - - rtl_write_byte(rtlpriv, (REG_MCUFWDL + 2), value8); - _rtl8723ae_fw_block_write(hw, buffer, size); -} - -static void _rtl8723ae_write_fw(struct ieee80211_hw *hw, - enum version_8723e version, u8 *buffer, - u32 size) -{ - struct rtl_priv *rtlpriv = rtl_priv(hw); - u8 *bufferPtr = (u8 *) buffer; - u32 page_nums, remain_size; - u32 page, offset; - - RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE, "FW size is %d bytes,\n", size); - - page_nums = size / FW_8192C_PAGE_SIZE; - remain_size = size % FW_8192C_PAGE_SIZE; - - if (page_nums > 6) { - RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, - "Page numbers should not be greater then 6\n"); - } - - for (page = 0; page < page_nums; page++) { - offset = page * FW_8192C_PAGE_SIZE; - _rtl8723ae_fw_page_write(hw, page, (bufferPtr + offset), - FW_8192C_PAGE_SIZE); - } - - if (remain_size) { - offset = page_nums * FW_8192C_PAGE_SIZE; - page = page_nums; - _rtl8723ae_fw_page_write(hw, page, (bufferPtr + offset), - remain_size); - } - - RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE, "FW write done.\n"); -} - -static int _rtl8723ae_fw_free_to_go(struct ieee80211_hw *hw) -{ - struct rtl_priv *rtlpriv = rtl_priv(hw); - int err = -EIO; - u32 counter = 0; - u32 value32; - - do { - value32 = rtl_read_dword(rtlpriv, REG_MCUFWDL); - } while ((counter++ < FW_8192C_POLLING_TIMEOUT_COUNT) && - (!(value32 & FWDL_ChkSum_rpt))); - - if (counter >= FW_8192C_POLLING_TIMEOUT_COUNT) { - RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, - "chksum report faill ! REG_MCUFWDL:0x%08x .\n", - value32); - goto exit; - } - - RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE, - "Checksum report OK ! REG_MCUFWDL:0x%08x .\n", value32); - - value32 = rtl_read_dword(rtlpriv, REG_MCUFWDL); - value32 |= MCUFWDL_RDY; - value32 &= ~WINTINI_RDY; - rtl_write_dword(rtlpriv, REG_MCUFWDL, value32); - - counter = 0; - - do { - value32 = rtl_read_dword(rtlpriv, REG_MCUFWDL); - if (value32 & WINTINI_RDY) { - RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE, - "Polling FW ready success!! REG_MCUFWDL:0x%08x .\n", - value32); - err = 0; - goto exit; - } - - mdelay(FW_8192C_POLLING_DELAY); - - } while (counter++ < FW_8192C_POLLING_TIMEOUT_COUNT); - - RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, - "Polling FW ready fail!! REG_MCUFWDL:0x%08x .\n", value32); - -exit: - return err; -} - -int rtl8723ae_download_fw(struct ieee80211_hw *hw) -{ - struct rtl_priv *rtlpriv = rtl_priv(hw); - struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); - struct rtl8723ae_firmware_header *pfwheader; - u8 *pfwdata; - u32 fwsize; - int err; - enum version_8723e version = rtlhal->version; - - if (!rtlhal->pfirmware) - return 1; - - pfwheader = (struct rtl8723ae_firmware_header *)rtlhal->pfirmware; - pfwdata = (u8 *) rtlhal->pfirmware; - fwsize = rtlhal->fwsize; - - if (IS_FW_HEADER_EXIST(pfwheader)) { - RT_TRACE(rtlpriv, COMP_FW, DBG_DMESG, - "Firmware Version(%d), Signature(%#x),Size(%d)\n", - pfwheader->version, pfwheader->signature, - (int)sizeof(struct rtl8723ae_firmware_header)); - - pfwdata = pfwdata + sizeof(struct rtl8723ae_firmware_header); - fwsize = fwsize - sizeof(struct rtl8723ae_firmware_header); - } - - if (rtl_read_byte(rtlpriv, REG_MCUFWDL)&BIT(7)) { - rtl8723ae_firmware_selfreset(hw); - rtl_write_byte(rtlpriv, REG_MCUFWDL, 0x00); - } - _rtl8723ae_enable_fw_download(hw, true); - _rtl8723ae_write_fw(hw, version, pfwdata, fwsize); - _rtl8723ae_enable_fw_download(hw, false); - - err = _rtl8723ae_fw_free_to_go(hw); - if (err) { - RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, - "Firmware is not ready to run!\n"); - } else { - RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE, - "Firmware is ready to run!\n"); - } - return 0; -} +#include "../rtl8723com/fw_common.h" static bool rtl8723ae_check_fw_read_last_h2c(struct ieee80211_hw *hw, u8 boxnum) { @@ -463,50 +271,6 @@ return; } -void rtl8723ae_firmware_selfreset(struct ieee80211_hw *hw) -{ - u8 u1tmp; - u8 delay = 100; - struct rtl_priv *rtlpriv = rtl_priv(hw); - - rtl_write_byte(rtlpriv, REG_HMETFR + 3, 0x20); - u1tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN + 1); - - while (u1tmp & BIT(2)) { - delay--; - if (delay == 0) - break; - udelay(50); - u1tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN + 1); - } - if (delay == 0) { - u1tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN + 1); - rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN + 1, u1tmp&(~BIT(2))); - } -} - -void rtl8723ae_set_fw_pwrmode_cmd(struct ieee80211_hw *hw, u8 mode) -{ - struct rtl_priv *rtlpriv = rtl_priv(hw); - u8 u1_h2c_set_pwrmode[3] = { 0 }; - struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); - - RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, "FW LPS mode = %d\n", mode); - - SET_H2CCMD_PWRMODE_PARM_MODE(u1_h2c_set_pwrmode, mode); - SET_H2CCMD_PWRMODE_PARM_SMART_PS(u1_h2c_set_pwrmode, - (rtlpriv->mac80211.p2p) ? - ppsc->smart_ps : 1); - SET_H2CCMD_PWRMODE_PARM_BCN_PASS_TIME(u1_h2c_set_pwrmode, - ppsc->reg_max_lps_awakeintvl); - - RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG, - "rtl8723ae_set_fw_rsvdpagepkt(): u1_h2c_set_pwrmode\n", - u1_h2c_set_pwrmode, 3); - rtl8723ae_fill_h2c_cmd(hw, H2C_SETPWRMODE, 3, u1_h2c_set_pwrmode); - -} - static bool _rtl8723ae_cmd_send_packet(struct ieee80211_hw *hw, struct sk_buff *skb) { @@ -812,7 +576,6 @@ rtl_write_byte(rtlpriv, REG_DUAL_TSF_RST, BIT(4)); p2p_ps_offload->offload_en = 1; - if (P2P_ROLE_GO == rtlpriv->mac80211.p2p) { p2p_ps_offload->role = 1; p2p_ps_offload->allstasleep = 0; @@ -836,3 +599,24 @@ } rtl8723ae_fill_h2c_cmd(hw, H2C_P2P_PS_OFFLOAD, 1, (u8 *)p2p_ps_offload); } + +void rtl8723ae_set_fw_pwrmode_cmd(struct ieee80211_hw *hw, u8 mode) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 u1_h2c_set_pwrmode[3] = { 0 }; + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + + RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, "FW LPS mode = %d\n", mode); + + SET_H2CCMD_PWRMODE_PARM_MODE(u1_h2c_set_pwrmode, mode); + SET_H2CCMD_PWRMODE_PARM_SMART_PS_23A(u1_h2c_set_pwrmode, + (rtlpriv->mac80211.p2p) ? + ppsc->smart_ps : 1); + SET_H2CCMD_PWRMODE_PARM_BCN_PASS_TIME(u1_h2c_set_pwrmode, + ppsc->reg_max_lps_awakeintvl); + + RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG, + "rtl8723ae_set_fw_rsvdpagepkt(): u1_h2c_set_pwrmode\n", + u1_h2c_set_pwrmode, 3); + rtl8723ae_fill_h2c_cmd(hw, H2C_SETPWRMODE, 3, u1_h2c_set_pwrmode); +} --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723ae/fw.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723ae/fw.h @@ -34,7 +34,7 @@ #define FW_8192C_END_ADDRESS 0x3FFF #define FW_8192C_PAGE_SIZE 4096 #define FW_8192C_POLLING_DELAY 5 -#define FW_8192C_POLLING_TIMEOUT_COUNT 1000 +#define FW_8192C_POLLING_TIMEOUT_COUNT 6000 #define BEACON_PG 0 #define PSPOLL_PG 2 @@ -65,21 +65,9 @@ u32 rsvd5; }; -enum rtl8192c_h2c_cmd { - H2C_AP_OFFLOAD = 0, - H2C_SETPWRMODE = 1, - H2C_JOINBSSRPT = 2, - H2C_RSVDPAGE = 3, - H2C_RSSI_REPORT = 4, - H2C_P2P_PS_CTW_CMD = 5, - H2C_P2P_PS_OFFLOAD = 6, - H2C_RA_MASK = 7, - MAX_H2CCMD -}; - #define SET_H2CCMD_PWRMODE_PARM_MODE(__ph2ccmd, __val) \ SET_BITS_TO_LE_1BYTE(__ph2ccmd, 0, 8, __val) -#define SET_H2CCMD_PWRMODE_PARM_SMART_PS(__ph2ccmd, __val) \ +#define SET_H2CCMD_PWRMODE_PARM_SMART_PS_23A(__ph2ccmd, __val) \ SET_BITS_TO_LE_1BYTE((__ph2ccmd)+1, 0, 8, __val) #define SET_H2CCMD_PWRMODE_PARM_BCN_PASS_TIME(__ph2ccmd, __val) \ SET_BITS_TO_LE_1BYTE((__ph2ccmd)+2, 0, 8, __val) @@ -92,10 +80,8 @@ #define SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(__ph2ccmd, __val) \ SET_BITS_TO_LE_1BYTE((__ph2ccmd)+2, 0, 8, __val) -int rtl8723ae_download_fw(struct ieee80211_hw *hw); void rtl8723ae_fill_h2c_cmd(struct ieee80211_hw *hw, u8 element_id, u32 cmd_len, u8 *p_cmdbuffer); -void rtl8723ae_firmware_selfreset(struct ieee80211_hw *hw); void rtl8723ae_set_fw_pwrmode_cmd(struct ieee80211_hw *hw, u8 mode); void rtl8723ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished); void rtl8723ae_set_fw_joinbss_report_cmd(struct ieee80211_hw *hw, u8 mstatus); --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723ae/hal_bt_coexist.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723ae/hal_bt_coexist.c @@ -31,6 +31,8 @@ #include "../pci.h" #include "dm.h" #include "fw.h" +#include "../rtl8723com/fw_common.h" +#include "../rtl8723com/fw_common.h" #include "phy.h" #include "reg.h" #include "hal_btc.h" --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723ae/hal_btc.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723ae/hal_btc.c @@ -30,7 +30,9 @@ #include "hal_btc.h" #include "../pci.h" #include "phy.h" +#include "../rtl8723com/phy_common.h" #include "fw.h" +#include "../rtl8723com/fw_common.h" #include "reg.h" #include "def.h" @@ -391,13 +393,13 @@ if (sw_dac_swing_on) { RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_TRACE, "[BTCoex], SwDacSwing = 0x%x\n", sw_dac_swing_lvl); - rtl8723ae_phy_set_bb_reg(hw, 0x880, 0xff000000, - sw_dac_swing_lvl); + rtl8723_phy_set_bb_reg(hw, 0x880, 0xff000000, + sw_dac_swing_lvl); rtlpcipriv->bt_coexist.sw_coexist_all_off = false; } else { RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_TRACE, "[BTCoex], SwDacSwing Off!\n"); - rtl8723ae_phy_set_bb_reg(hw, 0x880, 0xff000000, 0xc0); + rtl8723_phy_set_bb_reg(hw, 0x880, 0xff000000, 0xc0); } } --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723ae/hw.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723ae/hw.c @@ -38,7 +38,9 @@ #include "def.h" #include "phy.h" #include "dm.h" +#include "../rtl8723com/dm_common.h" #include "fw.h" +#include "../rtl8723com/fw_common.h" #include "led.h" #include "hw.h" #include "pwrseqcmd.h" @@ -304,9 +306,9 @@ break; } case HW_VAR_AC_PARAM:{ u8 e_aci = *((u8 *) val); - rtl8723ae_dm_init_edca_turbo(hw); + rtl8723_dm_init_edca_turbo(hw); - if (rtlpci->acm_method != eAcmWay2_SW) + if (rtlpci->acm_method != EACMWAY2_SW) rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ACM_CTRL, (u8 *) (&e_aci)); @@ -880,23 +882,33 @@ bool rtstatus = true; int err; u8 tmp_u1b; + unsigned long flags; rtlpriv->rtlhal.being_init_adapter = true; + /* As this function can take a very long time (up to 350 ms) + * and can be called with irqs disabled, reenable the irqs + * to let the other devices continue being serviced. + * + * It is safe doing so since our own interrupts will only be enabled + * in a subsequent step. + */ + local_save_flags(flags); + local_irq_enable(); + rtlpriv->intf_ops->disable_aspm(hw); rtstatus = _rtl8712e_init_mac(hw); if (rtstatus != true) { RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Init MAC failed\n"); err = 1; - return err; + goto exit; } - err = rtl8723ae_download_fw(hw); + err = rtl8723_download_fw(hw, false); if (err) { RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, "Failed to download FW. Init HW without FW now..\n"); err = 1; - rtlhal->fw_ready = false; - return err; + goto exit; } else { rtlhal->fw_ready = true; } @@ -971,6 +983,8 @@ RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "under 1.5V\n"); } rtl8723ae_dm_init(hw); +exit: + local_irq_restore(flags); rtlpriv->rtlhal.being_init_adapter = false; return err; } @@ -1153,7 +1167,7 @@ { struct rtl_priv *rtlpriv = rtl_priv(hw); - rtl8723ae_dm_init_edca_turbo(hw); + rtl8723_dm_init_edca_turbo(hw); switch (aci) { case AC1_BK: rtl_write_dword(rtlpriv, REG_EDCA_BK_PARAM, 0xa44f); @@ -1655,7 +1669,7 @@ CHK_SVID_SMID(0x10EC, 0x9185)) rtlhal->oem_id = RT_CID_TOSHIBA; else if (rtlefuse->eeprom_svid == 0x1025) - rtlhal->oem_id = RT_CID_819x_Acer; + rtlhal->oem_id = RT_CID_819X_ACER; else if (CHK_SVID_SMID(0x10EC, 0x6191) || CHK_SVID_SMID(0x10EC, 0x6192) || CHK_SVID_SMID(0x10EC, 0x6193) || @@ -1665,7 +1679,7 @@ CHK_SVID_SMID(0x10EC, 0x8191) || CHK_SVID_SMID(0x10EC, 0x8192) || CHK_SVID_SMID(0x10EC, 0x8193)) - rtlhal->oem_id = RT_CID_819x_SAMSUNG; + rtlhal->oem_id = RT_CID_819X_SAMSUNG; else if (CHK_SVID_SMID(0x10EC, 0x8195) || CHK_SVID_SMID(0x10EC, 0x9195) || CHK_SVID_SMID(0x10EC, 0x7194) || @@ -1673,24 +1687,24 @@ CHK_SVID_SMID(0x10EC, 0x8201) || CHK_SVID_SMID(0x10EC, 0x8202) || CHK_SVID_SMID(0x10EC, 0x9200)) - rtlhal->oem_id = RT_CID_819x_Lenovo; + rtlhal->oem_id = RT_CID_819X_LENOVO; else if (CHK_SVID_SMID(0x10EC, 0x8197) || CHK_SVID_SMID(0x10EC, 0x9196)) - rtlhal->oem_id = RT_CID_819x_CLEVO; + rtlhal->oem_id = RT_CID_819X_CLEVO; else if (CHK_SVID_SMID(0x1028, 0x8194) || CHK_SVID_SMID(0x1028, 0x8198) || CHK_SVID_SMID(0x1028, 0x9197) || CHK_SVID_SMID(0x1028, 0x9198)) - rtlhal->oem_id = RT_CID_819x_DELL; + rtlhal->oem_id = RT_CID_819X_DELL; else if (CHK_SVID_SMID(0x103C, 0x1629)) - rtlhal->oem_id = RT_CID_819x_HP; + rtlhal->oem_id = RT_CID_819X_HP; else if (CHK_SVID_SMID(0x1A32, 0x2315)) - rtlhal->oem_id = RT_CID_819x_QMI; + rtlhal->oem_id = RT_CID_819X_QMI; else if (CHK_SVID_SMID(0x10EC, 0x8203)) - rtlhal->oem_id = RT_CID_819x_PRONETS; + rtlhal->oem_id = RT_CID_819X_PRONETS; else if (CHK_SVID_SMID(0x1043, 0x84B5)) rtlhal->oem_id = - RT_CID_819x_Edimax_ASUS; + RT_CID_819X_EDIMAX_ASUS; else rtlhal->oem_id = RT_CID_DEFAULT; } else if (rtlefuse->eeprom_did == 0x8178) { @@ -1712,12 +1726,12 @@ CHK_SVID_SMID(0x10EC, 0x9185)) rtlhal->oem_id = RT_CID_TOSHIBA; else if (rtlefuse->eeprom_svid == 0x1025) - rtlhal->oem_id = RT_CID_819x_Acer; + rtlhal->oem_id = RT_CID_819X_ACER; else if (CHK_SVID_SMID(0x10EC, 0x8186)) - rtlhal->oem_id = RT_CID_819x_PRONETS; + rtlhal->oem_id = RT_CID_819X_PRONETS; else if (CHK_SVID_SMID(0x1043, 0x8486)) rtlhal->oem_id = - RT_CID_819x_Edimax_ASUS; + RT_CID_819X_EDIMAX_ASUS; else rtlhal->oem_id = RT_CID_DEFAULT; } else { @@ -1731,7 +1745,7 @@ rtlhal->oem_id = RT_CID_CCX; break; case EEPROM_CID_QMI: - rtlhal->oem_id = RT_CID_819x_QMI; + rtlhal->oem_id = RT_CID_819X_QMI; break; case EEPROM_CID_WHQL: break; --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723ae/phy.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723ae/phy.c @@ -36,6 +36,7 @@ #include "rf.h" #include "dm.h" #include "table.h" +#include "../rtl8723com/phy_common.h" /* static forward definitions */ static u32 _phy_fw_rf_serial_read(struct ieee80211_hw *hw, @@ -43,72 +44,17 @@ static void _phy_fw_rf_serial_write(struct ieee80211_hw *hw, enum radio_path rfpath, u32 offset, u32 data); -static u32 _phy_rf_serial_read(struct ieee80211_hw *hw, - enum radio_path rfpath, u32 offset); -static void _phy_rf_serial_write(struct ieee80211_hw *hw, - enum radio_path rfpath, u32 offset, u32 data); -static u32 _phy_calculate_bit_shift(u32 bitmask); static bool _phy_bb8192c_config_parafile(struct ieee80211_hw *hw); static bool _phy_cfg_mac_w_header(struct ieee80211_hw *hw); static bool _phy_cfg_bb_w_header(struct ieee80211_hw *hw, u8 configtype); static bool _phy_cfg_bb_w_pgheader(struct ieee80211_hw *hw, u8 configtype); -static void _phy_init_bb_rf_reg_def(struct ieee80211_hw *hw); -static bool _phy_set_sw_chnl_cmdarray(struct swchnlcmd *cmdtable, - u32 cmdtableidx, u32 cmdtablesz, - enum swchnlcmd_id cmdid, - u32 para1, u32 para2, - u32 msdelay); static bool _phy_sw_chnl_step_by_step(struct ieee80211_hw *hw, u8 channel, u8 *stage, u8 *step, u32 *delay); static u8 _phy_dbm_to_txpwr_Idx(struct ieee80211_hw *hw, enum wireless_mode wirelessmode, long power_indbm); -static long _phy_txpwr_idx_to_dbm(struct ieee80211_hw *hw, - enum wireless_mode wirelessmode, u8 txpwridx); static void rtl8723ae_phy_set_io(struct ieee80211_hw *hw); -u32 rtl8723ae_phy_query_bb_reg(struct ieee80211_hw *hw, u32 regaddr, - u32 bitmask) -{ - struct rtl_priv *rtlpriv = rtl_priv(hw); - u32 returnvalue, originalvalue, bitshift; - - RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, - "regaddr(%#x), bitmask(%#x)\n", regaddr, bitmask); - originalvalue = rtl_read_dword(rtlpriv, regaddr); - bitshift = _phy_calculate_bit_shift(bitmask); - returnvalue = (originalvalue & bitmask) >> bitshift; - - RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, - "BBR MASK=0x%x Addr[0x%x]=0x%x\n", bitmask, regaddr, - originalvalue); - - return returnvalue; -} - -void rtl8723ae_phy_set_bb_reg(struct ieee80211_hw *hw, - u32 regaddr, u32 bitmask, u32 data) -{ - struct rtl_priv *rtlpriv = rtl_priv(hw); - u32 originalvalue, bitshift; - - RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, - "regaddr(%#x), bitmask(%#x), data(%#x)\n", regaddr, - bitmask, data); - - if (bitmask != MASKDWORD) { - originalvalue = rtl_read_dword(rtlpriv, regaddr); - bitshift = _phy_calculate_bit_shift(bitmask); - data = ((originalvalue & (~bitmask)) | (data << bitshift)); - } - - rtl_write_dword(rtlpriv, regaddr, data); - - RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, - "regaddr(%#x), bitmask(%#x), data(%#x)\n", - regaddr, bitmask, data); -} - u32 rtl8723ae_phy_query_rf_reg(struct ieee80211_hw *hw, enum radio_path rfpath, u32 regaddr, u32 bitmask) { @@ -124,11 +70,11 @@ spin_lock_irqsave(&rtlpriv->locks.rf_lock, flags); if (rtlphy->rf_mode != RF_OP_BY_FW) - original_value = _phy_rf_serial_read(hw, rfpath, regaddr); + original_value = rtl8723_phy_rf_serial_read(hw, rfpath, regaddr); else original_value = _phy_fw_rf_serial_read(hw, rfpath, regaddr); - bitshift = _phy_calculate_bit_shift(bitmask); + bitshift = rtl8723_phy_calculate_bit_shift(bitmask); readback_value = (original_value & bitmask) >> bitshift; spin_unlock_irqrestore(&rtlpriv->locks.rf_lock, flags); @@ -157,19 +103,19 @@ if (rtlphy->rf_mode != RF_OP_BY_FW) { if (bitmask != RFREG_OFFSET_MASK) { - original_value = _phy_rf_serial_read(hw, rfpath, - regaddr); - bitshift = _phy_calculate_bit_shift(bitmask); + original_value = rtl8723_phy_rf_serial_read(hw, rfpath, + regaddr); + bitshift = rtl8723_phy_calculate_bit_shift(bitmask); data = ((original_value & (~bitmask)) | (data << bitshift)); } - _phy_rf_serial_write(hw, rfpath, regaddr, data); + rtl8723_phy_rf_serial_write(hw, rfpath, regaddr, data); } else { if (bitmask != RFREG_OFFSET_MASK) { original_value = _phy_fw_rf_serial_read(hw, rfpath, regaddr); - bitshift = _phy_calculate_bit_shift(bitmask); + bitshift = rtl8723_phy_calculate_bit_shift(bitmask); data = ((original_value & (~bitmask)) | (data << bitshift)); } @@ -197,87 +143,6 @@ RT_ASSERT(false, "deprecated!\n"); } -static u32 _phy_rf_serial_read(struct ieee80211_hw *hw, - enum radio_path rfpath, u32 offset) -{ - struct rtl_priv *rtlpriv = rtl_priv(hw); - struct rtl_phy *rtlphy = &(rtlpriv->phy); - struct bb_reg_def *pphyreg = &rtlphy->phyreg_def[rfpath]; - u32 newoffset; - u32 tmplong, tmplong2; - u8 rfpi_enable = 0; - u32 retvalue; - - offset &= 0x3f; - newoffset = offset; - if (RT_CANNOT_IO(hw)) { - RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "return all one\n"); - return 0xFFFFFFFF; - } - tmplong = rtl_get_bbreg(hw, RFPGA0_XA_HSSIPARAMETER2, MASKDWORD); - if (rfpath == RF90_PATH_A) - tmplong2 = tmplong; - else - tmplong2 = rtl_get_bbreg(hw, pphyreg->rfhssi_para2, MASKDWORD); - tmplong2 = (tmplong2 & (~BLSSIREADADDRESS)) | - (newoffset << 23) | BLSSIREADEDGE; - rtl_set_bbreg(hw, RFPGA0_XA_HSSIPARAMETER2, MASKDWORD, - tmplong & (~BLSSIREADEDGE)); - mdelay(1); - rtl_set_bbreg(hw, pphyreg->rfhssi_para2, MASKDWORD, tmplong2); - mdelay(1); - rtl_set_bbreg(hw, RFPGA0_XA_HSSIPARAMETER2, MASKDWORD, - tmplong | BLSSIREADEDGE); - mdelay(1); - if (rfpath == RF90_PATH_A) - rfpi_enable = (u8) rtl_get_bbreg(hw, RFPGA0_XA_HSSIPARAMETER1, - BIT(8)); - else if (rfpath == RF90_PATH_B) - rfpi_enable = (u8) rtl_get_bbreg(hw, RFPGA0_XB_HSSIPARAMETER1, - BIT(8)); - if (rfpi_enable) - retvalue = rtl_get_bbreg(hw, pphyreg->rf_rbpi, - BLSSIREADBACKDATA); - else - retvalue = rtl_get_bbreg(hw, pphyreg->rf_rb, - BLSSIREADBACKDATA); - RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, "RFR-%d Addr[0x%x]=0x%x\n", - rfpath, pphyreg->rf_rb, retvalue); - return retvalue; -} - -static void _phy_rf_serial_write(struct ieee80211_hw *hw, - enum radio_path rfpath, u32 offset, u32 data) -{ - u32 data_and_addr; - u32 newoffset; - struct rtl_priv *rtlpriv = rtl_priv(hw); - struct rtl_phy *rtlphy = &(rtlpriv->phy); - struct bb_reg_def *pphyreg = &rtlphy->phyreg_def[rfpath]; - - if (RT_CANNOT_IO(hw)) { - RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "stop\n"); - return; - } - offset &= 0x3f; - newoffset = offset; - data_and_addr = ((newoffset << 20) | (data & 0x000fffff)) & 0x0fffffff; - rtl_set_bbreg(hw, pphyreg->rf3wire_offset, MASKDWORD, data_and_addr); - RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, "RFW-%d Addr[0x%x]=0x%x\n", - rfpath, pphyreg->rf3wire_offset, data_and_addr); -} - -static u32 _phy_calculate_bit_shift(u32 bitmask) -{ - u32 i; - - for (i = 0; i <= 31; i++) { - if (((bitmask >> i) & 0x1) == 1) - break; - } - return i; -} - static void _rtl8723ae_phy_bb_config_1t(struct ieee80211_hw *hw) { rtl_set_bbreg(hw, RFPGA0_TXINFO, 0x3, 0x2); @@ -307,7 +172,7 @@ u8 tmpu1b; u8 reg_hwparafile = 1; - _phy_init_bb_rf_reg_def(hw); + rtl8723_phy_init_bb_rf_reg_def(hw); /* 1. 0x28[1] = 1 */ tmpu1b = rtl_read_byte(rtlpriv, REG_AFE_PLL_CTRL); @@ -690,92 +555,6 @@ ROFDM0_RXDETECTOR3, rtlphy->framesync); } -static void _phy_init_bb_rf_reg_def(struct ieee80211_hw *hw) -{ - struct rtl_priv *rtlpriv = rtl_priv(hw); - struct rtl_phy *rtlphy = &(rtlpriv->phy); - - rtlphy->phyreg_def[RF90_PATH_A].rfintfs = RFPGA0_XAB_RFINTERFACESW; - rtlphy->phyreg_def[RF90_PATH_B].rfintfs = RFPGA0_XAB_RFINTERFACESW; - rtlphy->phyreg_def[RF90_PATH_C].rfintfs = RFPGA0_XCD_RFINTERFACESW; - rtlphy->phyreg_def[RF90_PATH_D].rfintfs = RFPGA0_XCD_RFINTERFACESW; - - rtlphy->phyreg_def[RF90_PATH_A].rfintfi = RFPGA0_XAB_RFINTERFACERB; - rtlphy->phyreg_def[RF90_PATH_B].rfintfi = RFPGA0_XAB_RFINTERFACERB; - rtlphy->phyreg_def[RF90_PATH_C].rfintfi = RFPGA0_XCD_RFINTERFACERB; - rtlphy->phyreg_def[RF90_PATH_D].rfintfi = RFPGA0_XCD_RFINTERFACERB; - - rtlphy->phyreg_def[RF90_PATH_A].rfintfo = RFPGA0_XA_RFINTERFACEOE; - rtlphy->phyreg_def[RF90_PATH_B].rfintfo = RFPGA0_XB_RFINTERFACEOE; - - rtlphy->phyreg_def[RF90_PATH_A].rfintfe = RFPGA0_XA_RFINTERFACEOE; - rtlphy->phyreg_def[RF90_PATH_B].rfintfe = RFPGA0_XB_RFINTERFACEOE; - - rtlphy->phyreg_def[RF90_PATH_A].rf3wire_offset = - RFPGA0_XA_LSSIPARAMETER; - rtlphy->phyreg_def[RF90_PATH_B].rf3wire_offset = - RFPGA0_XB_LSSIPARAMETER; - - rtlphy->phyreg_def[RF90_PATH_A].rflssi_select = rFPGA0_XAB_RFPARAMETER; - rtlphy->phyreg_def[RF90_PATH_B].rflssi_select = rFPGA0_XAB_RFPARAMETER; - rtlphy->phyreg_def[RF90_PATH_C].rflssi_select = rFPGA0_XCD_RFPARAMETER; - rtlphy->phyreg_def[RF90_PATH_D].rflssi_select = rFPGA0_XCD_RFPARAMETER; - - rtlphy->phyreg_def[RF90_PATH_A].rftxgain_stage = RFPGA0_TXGAINSTAGE; - rtlphy->phyreg_def[RF90_PATH_B].rftxgain_stage = RFPGA0_TXGAINSTAGE; - rtlphy->phyreg_def[RF90_PATH_C].rftxgain_stage = RFPGA0_TXGAINSTAGE; - rtlphy->phyreg_def[RF90_PATH_D].rftxgain_stage = RFPGA0_TXGAINSTAGE; - - rtlphy->phyreg_def[RF90_PATH_A].rfhssi_para1 = RFPGA0_XA_HSSIPARAMETER1; - rtlphy->phyreg_def[RF90_PATH_B].rfhssi_para1 = RFPGA0_XB_HSSIPARAMETER1; - - rtlphy->phyreg_def[RF90_PATH_A].rfhssi_para2 = RFPGA0_XA_HSSIPARAMETER2; - rtlphy->phyreg_def[RF90_PATH_B].rfhssi_para2 = RFPGA0_XB_HSSIPARAMETER2; - - rtlphy->phyreg_def[RF90_PATH_A].rfsw_ctrl = RFPGA0_XAB_SWITCHCONTROL; - rtlphy->phyreg_def[RF90_PATH_B].rfsw_ctrl = RFPGA0_XAB_SWITCHCONTROL; - rtlphy->phyreg_def[RF90_PATH_C].rfsw_ctrl = RFPGA0_XCD_SWITCHCONTROL; - rtlphy->phyreg_def[RF90_PATH_D].rfsw_ctrl = RFPGA0_XCD_SWITCHCONTROL; - - rtlphy->phyreg_def[RF90_PATH_A].rfagc_control1 = ROFDM0_XAAGCCORE1; - rtlphy->phyreg_def[RF90_PATH_B].rfagc_control1 = ROFDM0_XBAGCCORE1; - rtlphy->phyreg_def[RF90_PATH_C].rfagc_control1 = ROFDM0_XCAGCCORE1; - rtlphy->phyreg_def[RF90_PATH_D].rfagc_control1 = ROFDM0_XDAGCCORE1; - - rtlphy->phyreg_def[RF90_PATH_A].rfagc_control2 = ROFDM0_XAAGCCORE2; - rtlphy->phyreg_def[RF90_PATH_B].rfagc_control2 = ROFDM0_XBAGCCORE2; - rtlphy->phyreg_def[RF90_PATH_C].rfagc_control2 = ROFDM0_XCAGCCORE2; - rtlphy->phyreg_def[RF90_PATH_D].rfagc_control2 = ROFDM0_XDAGCCORE2; - - rtlphy->phyreg_def[RF90_PATH_A].rfrxiq_imbal = ROFDM0_XARXIQIMBALANCE; - rtlphy->phyreg_def[RF90_PATH_B].rfrxiq_imbal = ROFDM0_XBRXIQIMBALANCE; - rtlphy->phyreg_def[RF90_PATH_C].rfrxiq_imbal = ROFDM0_XCRXIQIMBANLANCE; - rtlphy->phyreg_def[RF90_PATH_D].rfrxiq_imbal = ROFDM0_XDRXIQIMBALANCE; - - rtlphy->phyreg_def[RF90_PATH_A].rfrx_afe = ROFDM0_XARXAFE; - rtlphy->phyreg_def[RF90_PATH_B].rfrx_afe = ROFDM0_XBRXAFE; - rtlphy->phyreg_def[RF90_PATH_C].rfrx_afe = ROFDM0_XCRXAFE; - rtlphy->phyreg_def[RF90_PATH_D].rfrx_afe = ROFDM0_XDRXAFE; - - rtlphy->phyreg_def[RF90_PATH_A].rftxiq_imbal = ROFDM0_XATXIQIMBALANCE; - rtlphy->phyreg_def[RF90_PATH_B].rftxiq_imbal = ROFDM0_XBTXIQIMBALANCE; - rtlphy->phyreg_def[RF90_PATH_C].rftxiq_imbal = ROFDM0_XCTXIQIMBALANCE; - rtlphy->phyreg_def[RF90_PATH_D].rftxiq_imbal = ROFDM0_XDTXIQIMBALANCE; - - rtlphy->phyreg_def[RF90_PATH_A].rftx_afe = ROFDM0_XATXAFE; - rtlphy->phyreg_def[RF90_PATH_B].rftx_afe = ROFDM0_XBTXAFE; - rtlphy->phyreg_def[RF90_PATH_C].rftx_afe = ROFDM0_XCTXAFE; - rtlphy->phyreg_def[RF90_PATH_D].rftx_afe = ROFDM0_XDTXAFE; - - rtlphy->phyreg_def[RF90_PATH_A].rf_rb = RFPGA0_XA_LSSIREADBACK; - rtlphy->phyreg_def[RF90_PATH_B].rf_rb = RFPGA0_XB_LSSIREADBACK; - rtlphy->phyreg_def[RF90_PATH_C].rf_rb = RFPGA0_XC_LSSIREADBACK; - rtlphy->phyreg_def[RF90_PATH_D].rf_rb = RFPGA0_XD_LSSIREADBACK; - - rtlphy->phyreg_def[RF90_PATH_A].rf_rbpi = TRANSCEIVEA_HSPI_READBACK; - rtlphy->phyreg_def[RF90_PATH_B].rf_rbpi = TRANSCEIVEB_HSPI_READBACK; -} - void rtl8723ae_phy_get_txpower_level(struct ieee80211_hw *hw, long *powerlevel) { struct rtl_priv *rtlpriv = rtl_priv(hw); @@ -785,17 +564,17 @@ long txpwr_dbm; txpwr_level = rtlphy->cur_cck_txpwridx; - txpwr_dbm = _phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_B, txpwr_level); + txpwr_dbm = rtl8723_phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_B, txpwr_level); txpwr_level = rtlphy->cur_ofdm24g_txpwridx + rtlefuse->legacy_ht_txpowerdiff; - if (_phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_G, txpwr_level) > txpwr_dbm) - txpwr_dbm = _phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_G, + if (rtl8723_phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_G, txpwr_level) > txpwr_dbm) + txpwr_dbm = rtl8723_phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_G, txpwr_level); txpwr_level = rtlphy->cur_ofdm24g_txpwridx; - if (_phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_N_24G, txpwr_level) > + if (rtl8723_phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_N_24G, txpwr_level) > txpwr_dbm) - txpwr_dbm = _phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_N_24G, - txpwr_level); + txpwr_dbm = rtl8723_phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_N_24G, + txpwr_level); *powerlevel = txpwr_dbm; } @@ -912,28 +691,6 @@ return txpwridx; } -static long _phy_txpwr_idx_to_dbm(struct ieee80211_hw *hw, - enum wireless_mode wirelessmode, u8 txpwridx) -{ - long offset; - long pwrout_dbm; - - switch (wirelessmode) { - case WIRELESS_MODE_B: - offset = -7; - break; - case WIRELESS_MODE_G: - case WIRELESS_MODE_N_24G: - offset = -8; - break; - default: - offset = -8; - break; - } - pwrout_dbm = txpwridx / 2 + offset; - return pwrout_dbm; -} - void rtl8723ae_phy_set_bw_mode_callback(struct ieee80211_hw *hw) { struct rtl_priv *rtlpriv = rtl_priv(hw); @@ -1117,26 +874,26 @@ u8 num_total_rfpath = rtlphy->num_total_rfpath; precommoncmdcnt = 0; - _phy_set_sw_chnl_cmdarray(precommoncmd, precommoncmdcnt++, - MAX_PRECMD_CNT, CMDID_SET_TXPOWEROWER_LEVEL, - 0, 0, 0); - _phy_set_sw_chnl_cmdarray(precommoncmd, precommoncmdcnt++, - MAX_PRECMD_CNT, CMDID_END, 0, 0, 0); + rtl8723_phy_set_sw_chnl_cmdarray(precommoncmd, precommoncmdcnt++, + MAX_PRECMD_CNT, CMDID_SET_TXPOWEROWER_LEVEL, + 0, 0, 0); + rtl8723_phy_set_sw_chnl_cmdarray(precommoncmd, precommoncmdcnt++, + MAX_PRECMD_CNT, CMDID_END, 0, 0, 0); postcommoncmdcnt = 0; - _phy_set_sw_chnl_cmdarray(postcommoncmd, postcommoncmdcnt++, - MAX_POSTCMD_CNT, CMDID_END, 0, 0, 0); + rtl8723_phy_set_sw_chnl_cmdarray(postcommoncmd, postcommoncmdcnt++, + MAX_POSTCMD_CNT, CMDID_END, 0, 0, 0); rfdependcmdcnt = 0; RT_ASSERT((channel >= 1 && channel <= 14), "illegal channel for Zebra: %d\n", channel); - _phy_set_sw_chnl_cmdarray(rfdependcmd, rfdependcmdcnt++, - MAX_RFDEPENDCMD_CNT, CMDID_RF_WRITEREG, + rtl8723_phy_set_sw_chnl_cmdarray(rfdependcmd, rfdependcmdcnt++, + MAX_RFDEPENDCMD_CNT, CMDID_RF_WRITEREG, RF_CHNLBW, channel, 10); - _phy_set_sw_chnl_cmdarray(rfdependcmd, rfdependcmdcnt++, - MAX_RFDEPENDCMD_CNT, CMDID_END, 0, 0, 0); + rtl8723_phy_set_sw_chnl_cmdarray(rfdependcmd, rfdependcmdcnt++, + MAX_RFDEPENDCMD_CNT, CMDID_END, 0, 0, 0); do { switch (*stage) { @@ -1204,29 +961,6 @@ return false; } -static bool _phy_set_sw_chnl_cmdarray(struct swchnlcmd *cmdtable, - u32 cmdtableidx, u32 cmdtablesz, - enum swchnlcmd_id cmdid, u32 para1, - u32 para2, u32 msdelay) -{ - struct swchnlcmd *pcmd; - - if (cmdtable == NULL) { - RT_ASSERT(false, "cmdtable cannot be NULL.\n"); - return false; - } - - if (cmdtableidx >= cmdtablesz) - return false; - - pcmd = cmdtable + cmdtableidx; - pcmd->cmdid = cmdid; - pcmd->para1 = para1; - pcmd->para2 = para2; - pcmd->msdelay = msdelay; - return true; -} - static u8 _rtl8723ae_phy_path_a_iqk(struct ieee80211_hw *hw, bool config_pathb) { u32 reg_eac, reg_e94, reg_e9c, reg_ea4; @@ -1297,136 +1031,6 @@ return result; } -static void phy_path_a_fill_iqk_matrix(struct ieee80211_hw *hw, bool iqk_ok, - long result[][8], u8 final_candidate, - bool btxonly) -{ - u32 oldval_0, x, tx0_a, reg; - long y, tx0_c; - - if (final_candidate == 0xFF) { - return; - } else if (iqk_ok) { - oldval_0 = (rtl_get_bbreg(hw, ROFDM0_XATXIQIMBALANCE, - MASKDWORD) >> 22) & 0x3FF; - x = result[final_candidate][0]; - if ((x & 0x00000200) != 0) - x = x | 0xFFFFFC00; - tx0_a = (x * oldval_0) >> 8; - rtl_set_bbreg(hw, ROFDM0_XATXIQIMBALANCE, 0x3FF, tx0_a); - rtl_set_bbreg(hw, ROFDM0_ECCATHRESHOLD, BIT(31), - ((x * oldval_0 >> 7) & 0x1)); - y = result[final_candidate][1]; - if ((y & 0x00000200) != 0) - y = y | 0xFFFFFC00; - tx0_c = (y * oldval_0) >> 8; - rtl_set_bbreg(hw, ROFDM0_XCTXAFE, 0xF0000000, - ((tx0_c & 0x3C0) >> 6)); - rtl_set_bbreg(hw, ROFDM0_XATXIQIMBALANCE, 0x003F0000, - (tx0_c & 0x3F)); - rtl_set_bbreg(hw, ROFDM0_ECCATHRESHOLD, BIT(29), - ((y * oldval_0 >> 7) & 0x1)); - if (btxonly) - return; - reg = result[final_candidate][2]; - rtl_set_bbreg(hw, ROFDM0_XARXIQIMBALANCE, 0x3FF, reg); - reg = result[final_candidate][3] & 0x3F; - rtl_set_bbreg(hw, ROFDM0_XARXIQIMBALANCE, 0xFC00, reg); - reg = (result[final_candidate][3] >> 6) & 0xF; - rtl_set_bbreg(hw, 0xca0, 0xF0000000, reg); - } -} - -static void phy_save_adda_regs(struct ieee80211_hw *hw, - u32 *addareg, u32 *addabackup, - u32 registernum) -{ - u32 i; - - for (i = 0; i < registernum; i++) - addabackup[i] = rtl_get_bbreg(hw, addareg[i], MASKDWORD); -} - -static void phy_save_mac_regs(struct ieee80211_hw *hw, u32 *macreg, - u32 *macbackup) -{ - struct rtl_priv *rtlpriv = rtl_priv(hw); - u32 i; - - for (i = 0; i < (IQK_MAC_REG_NUM - 1); i++) - macbackup[i] = rtl_read_byte(rtlpriv, macreg[i]); - macbackup[i] = rtl_read_dword(rtlpriv, macreg[i]); -} - -static void phy_reload_adda_regs(struct ieee80211_hw *hw, u32 *addareg, - u32 *addabackup, u32 regiesternum) -{ - u32 i; - - for (i = 0; i < regiesternum; i++) - rtl_set_bbreg(hw, addareg[i], MASKDWORD, addabackup[i]); -} - -static void phy_reload_mac_regs(struct ieee80211_hw *hw, u32 *macreg, - u32 *macbackup) -{ - struct rtl_priv *rtlpriv = rtl_priv(hw); - u32 i; - - for (i = 0; i < (IQK_MAC_REG_NUM - 1); i++) - rtl_write_byte(rtlpriv, macreg[i], (u8) macbackup[i]); - rtl_write_dword(rtlpriv, macreg[i], macbackup[i]); -} - -static void _rtl8723ae_phy_path_adda_on(struct ieee80211_hw *hw, - u32 *addareg, bool is_patha_on, - bool is2t) -{ - u32 pathOn; - u32 i; - - pathOn = is_patha_on ? 0x04db25a4 : 0x0b1b25a4; - if (false == is2t) { - pathOn = 0x0bdb25a0; - rtl_set_bbreg(hw, addareg[0], MASKDWORD, 0x0b1b25a0); - } else { - rtl_set_bbreg(hw, addareg[0], MASKDWORD, pathOn); - } - - for (i = 1; i < IQK_ADDA_REG_NUM; i++) - rtl_set_bbreg(hw, addareg[i], MASKDWORD, pathOn); -} - -static void _rtl8723ae_phy_mac_setting_calibration(struct ieee80211_hw *hw, - u32 *macreg, u32 *macbackup) -{ - struct rtl_priv *rtlpriv = rtl_priv(hw); - u32 i = 0; - - rtl_write_byte(rtlpriv, macreg[i], 0x3F); - - for (i = 1; i < (IQK_MAC_REG_NUM - 1); i++) - rtl_write_byte(rtlpriv, macreg[i], - (u8) (macbackup[i] & (~BIT(3)))); - rtl_write_byte(rtlpriv, macreg[i], (u8) (macbackup[i] & (~BIT(5)))); -} - -static void _rtl8723ae_phy_path_a_standby(struct ieee80211_hw *hw) -{ - rtl_set_bbreg(hw, 0xe28, MASKDWORD, 0x0); - rtl_set_bbreg(hw, 0x840, MASKDWORD, 0x00010000); - rtl_set_bbreg(hw, 0xe28, MASKDWORD, 0x80800000); -} - -static void _rtl8723ae_phy_pi_mode_switch(struct ieee80211_hw *hw, bool pi_mode) -{ - u32 mode; - - mode = pi_mode ? 0x01000100 : 0x01000000; - rtl_set_bbreg(hw, 0x820, MASKDWORD, mode); - rtl_set_bbreg(hw, 0x828, MASKDWORD, mode); -} - static bool phy_simularity_comp(struct ieee80211_hw *hw, long result[][8], u8 c1, u8 c2) { @@ -1498,10 +1102,12 @@ const u32 retrycount = 2; if (t == 0) { - phy_save_adda_regs(hw, adda_reg, rtlphy->adda_backup, 16); - phy_save_mac_regs(hw, iqk_mac_reg, rtlphy->iqk_mac_backup); + rtl8723_save_adda_registers(hw, adda_reg, rtlphy->adda_backup, + 16); + rtl8723_phy_save_mac_registers(hw, iqk_mac_reg, + rtlphy->iqk_mac_backup); } - _rtl8723ae_phy_path_adda_on(hw, adda_reg, true, is2t); + rtl8723_phy_path_adda_on(hw, adda_reg, true, is2t); if (t == 0) { rtlphy->rfpi_enable = (u8) rtl_get_bbreg(hw, RFPGA0_XA_HSSIPARAMETER1, @@ -1509,7 +1115,7 @@ } if (!rtlphy->rfpi_enable) - _rtl8723ae_phy_pi_mode_switch(hw, true); + rtl8723_phy_pi_mode_switch(hw, true); if (t == 0) { rtlphy->reg_c04 = rtl_get_bbreg(hw, 0xc04, MASKDWORD); rtlphy->reg_c08 = rtl_get_bbreg(hw, 0xc08, MASKDWORD); @@ -1522,7 +1128,7 @@ rtl_set_bbreg(hw, 0x840, MASKDWORD, 0x00010000); rtl_set_bbreg(hw, 0x844, MASKDWORD, 0x00010000); } - _rtl8723ae_phy_mac_setting_calibration(hw, iqk_mac_reg, + rtl8723_phy_mac_setting_calibration(hw, iqk_mac_reg, rtlphy->iqk_mac_backup); rtl_set_bbreg(hw, 0xb68, MASKDWORD, 0x00080000); if (is2t) @@ -1552,8 +1158,8 @@ } if (is2t) { - _rtl8723ae_phy_path_a_standby(hw); - _rtl8723ae_phy_path_adda_on(hw, adda_reg, false, is2t); + rtl8723_phy_path_a_standby(hw); + rtl8723_phy_path_adda_on(hw, adda_reg, false, is2t); for (i = 0; i < retrycount; i++) { pathb_ok = _rtl8723ae_phy_path_b_iqk(hw); if (pathb_ok == 0x03) { @@ -1588,9 +1194,11 @@ rtl_set_bbreg(hw, 0x844, MASKDWORD, 0x00032ed3); if (t != 0) { if (!rtlphy->rfpi_enable) - _rtl8723ae_phy_pi_mode_switch(hw, false); - phy_reload_adda_regs(hw, adda_reg, rtlphy->adda_backup, 16); - phy_reload_mac_regs(hw, iqk_mac_reg, rtlphy->iqk_mac_backup); + rtl8723_phy_pi_mode_switch(hw, false); + rtl8723_phy_reload_adda_registers(hw, adda_reg, + rtlphy->adda_backup, 16); + rtl8723_phy_reload_mac_registers(hw, iqk_mac_reg, + rtlphy->iqk_mac_backup); } } @@ -1691,7 +1299,8 @@ }; if (recovery) { - phy_reload_adda_regs(hw, iqk_bb_reg, rtlphy->iqk_bb_backup, 10); + rtl8723_phy_reload_adda_registers(hw, iqk_bb_reg, + rtlphy->iqk_bb_backup, 10); return; } if (start_conttx || singletone) @@ -1756,9 +1365,10 @@ rtlphy->reg_e9c = rtlphy->reg_ebc = 0x0; } if (reg_e94 != 0) /*&&(reg_ea4 != 0) */ - phy_path_a_fill_iqk_matrix(hw, patha_ok, result, - final_candidate, (reg_ea4 == 0)); - phy_save_adda_regs(hw, iqk_bb_reg, rtlphy->iqk_bb_backup, 10); + rtl8723_phy_path_a_fill_iqk_matrix(hw, patha_ok, result, + final_candidate, + (reg_ea4 == 0)); + rtl8723_save_adda_registers(hw, iqk_bb_reg, rtlphy->iqk_bb_backup, 10); } void rtl8723ae_phy_lc_calibrate(struct ieee80211_hw *hw) --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723ae/phy.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723ae/phy.h @@ -76,23 +76,6 @@ #define RTL92C_MAX_PATH_NUM 2 -enum swchnlcmd_id { - CMDID_END, - CMDID_SET_TXPOWEROWER_LEVEL, - CMDID_BBREGWRITE10, - CMDID_WRITEPORT_ULONG, - CMDID_WRITEPORT_USHORT, - CMDID_WRITEPORT_UCHAR, - CMDID_RF_WRITEREG, -}; - -struct swchnlcmd { - enum swchnlcmd_id cmdid; - u32 para1; - u32 para2; - u32 msdelay; -}; - enum hw90_block_e { HW90_BLOCK_MAC = 0, HW90_BLOCK_PHY0 = 1, @@ -183,10 +166,6 @@ u32 mcs_original_offset[4][16]; }; -u32 rtl8723ae_phy_query_bb_reg(struct ieee80211_hw *hw, - u32 regaddr, u32 bitmask); -void rtl8723ae_phy_set_bb_reg(struct ieee80211_hw *hw, - u32 regaddr, u32 bitmask, u32 data); u32 rtl8723ae_phy_query_rf_reg(struct ieee80211_hw *hw, enum radio_path rfpath, u32 regaddr, u32 bitmask); --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723ae/sw.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723ae/sw.c @@ -37,8 +37,11 @@ #include "reg.h" #include "def.h" #include "phy.h" +#include "../rtl8723com/phy_common.h" #include "dm.h" #include "hw.h" +#include "fw.h" +#include "../rtl8723com/fw_common.h" #include "sw.h" #include "trx.h" #include "led.h" @@ -193,6 +196,11 @@ } } +static bool is_fw_header(struct rtl92c_firmware_header *hdr) +{ + return (hdr->signature & 0xfff0) == 0x2300; +} + static struct rtl_hal_ops rtl8723ae_hal_ops = { .init_sw_vars = rtl8723ae_init_sw_vars, .deinit_sw_vars = rtl8723ae_deinit_sw_vars, @@ -231,13 +239,14 @@ .set_key = rtl8723ae_set_key, .init_sw_leds = rtl8723ae_init_sw_leds, .allow_all_destaddr = rtl8723ae_allow_all_destaddr, - .get_bbreg = rtl8723ae_phy_query_bb_reg, - .set_bbreg = rtl8723ae_phy_set_bb_reg, + .get_bbreg = rtl8723_phy_query_bb_reg, + .set_bbreg = rtl8723_phy_set_bb_reg, .get_rfreg = rtl8723ae_phy_query_rf_reg, .set_rfreg = rtl8723ae_phy_set_rf_reg, .c2h_command_handle = rtl_8723e_c2h_command_handle, .bt_wifi_media_status_notify = rtl_8723e_bt_wifi_media_status_notify, .bt_coex_off_before_lps = rtl8723ae_bt_coex_off_before_lps, + .is_fw_header = is_fw_header, }; static struct rtl_mod_params rtl8723ae_mod_params = { --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723ae/trx.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723ae/trx.c @@ -334,7 +334,7 @@ /* during testing, hdr could be NULL here */ return false; } - if ((ieee80211_is_robust_mgmt_frame(hdr)) && + if ((_ieee80211_is_robust_mgmt_frame(hdr)) && (ieee80211_has_protected(hdr->frame_control))) rx_status->flag &= ~RX_FLAG_DECRYPTED; else --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723ae/trx.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723ae/trx.h @@ -521,12 +521,6 @@ memset(__pdesc, 0, _size); \ } while (0) -#define RTL8723E_RX_HAL_IS_CCK_RATE(rxmcs) \ - ((rxmcs) == DESC92_RATE1M || \ - (rxmcs) == DESC92_RATE2M || \ - (rxmcs) == DESC92_RATE5_5M || \ - (rxmcs) == DESC92_RATE11M) - struct rx_fwinfo_8723e { u8 gain_trsw[4]; u8 pwdb_all; --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/Makefile +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/Makefile @@ -0,0 +1,20 @@ +obj-m := rtl8723be.o + + +rtl8723be-objs := \ + dm.o \ + fw.o \ + hw.o \ + led.o \ + phy.o \ + pwrseq.o \ + pwrseqcmd.o \ + rf.o \ + sw.o \ + table.o \ + trx.o \ + + +obj-$(CONFIG_RTL8723BE) += rtl8723be.o + +ccflags-y += -D__CHECK_ENDIAN__ --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/def.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/def.h @@ -0,0 +1,248 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8723BE_DEF_H__ +#define __RTL8723BE_DEF_H__ + +#define HAL_RETRY_LIMIT_INFRA 48 +#define HAL_RETRY_LIMIT_AP_ADHOC 7 + +#define RESET_DELAY_8185 20 + +#define RT_IBSS_INT_MASKS (IMR_BCNINT | IMR_TBDOK | IMR_TBDER) +#define RT_AC_INT_MASKS (IMR_VIDOK | IMR_VODOK | IMR_BEDOK|IMR_BKDOK) + +#define NUM_OF_FIRMWARE_QUEUE 10 +#define NUM_OF_PAGES_IN_FW 0x100 +#define NUM_OF_PAGE_IN_FW_QUEUE_BK 0x07 +#define NUM_OF_PAGE_IN_FW_QUEUE_BE 0x07 +#define NUM_OF_PAGE_IN_FW_QUEUE_VI 0x07 +#define NUM_OF_PAGE_IN_FW_QUEUE_VO 0x07 +#define NUM_OF_PAGE_IN_FW_QUEUE_HCCA 0x0 +#define NUM_OF_PAGE_IN_FW_QUEUE_CMD 0x0 +#define NUM_OF_PAGE_IN_FW_QUEUE_MGNT 0x02 +#define NUM_OF_PAGE_IN_FW_QUEUE_HIGH 0x02 +#define NUM_OF_PAGE_IN_FW_QUEUE_BCN 0x2 +#define NUM_OF_PAGE_IN_FW_QUEUE_PUB 0xA1 + +#define NUM_OF_PAGE_IN_FW_QUEUE_BK_DTM 0x026 +#define NUM_OF_PAGE_IN_FW_QUEUE_BE_DTM 0x048 +#define NUM_OF_PAGE_IN_FW_QUEUE_VI_DTM 0x048 +#define NUM_OF_PAGE_IN_FW_QUEUE_VO_DTM 0x026 +#define NUM_OF_PAGE_IN_FW_QUEUE_PUB_DTM 0x00 + +#define MAX_LINES_HWCONFIG_TXT 1000 +#define MAX_BYTES_LINE_HWCONFIG_TXT 256 + +#define SW_THREE_WIRE 0 +#define HW_THREE_WIRE 2 + +#define BT_DEMO_BOARD 0 +#define BT_QA_BOARD 1 +#define BT_FPGA 2 + +#define HAL_PRIME_CHNL_OFFSET_DONT_CARE 0 +#define HAL_PRIME_CHNL_OFFSET_LOWER 1 +#define HAL_PRIME_CHNL_OFFSET_UPPER 2 + +#define MAX_H2C_QUEUE_NUM 10 + +#define RX_MPDU_QUEUE 0 +#define RX_CMD_QUEUE 1 +#define RX_MAX_QUEUE 2 +#define AC2QUEUEID(_AC) (_AC) + +#define C2H_RX_CMD_HDR_LEN 8 +#define GET_C2H_CMD_CMD_LEN(__prxhdr) \ + LE_BITS_TO_4BYTE((__prxhdr), 0, 16) +#define GET_C2H_CMD_ELEMENT_ID(__prxhdr) \ + LE_BITS_TO_4BYTE((__prxhdr), 16, 8) +#define GET_C2H_CMD_CMD_SEQ(__prxhdr) \ + LE_BITS_TO_4BYTE((__prxhdr), 24, 7) +#define GET_C2H_CMD_CONTINUE(__prxhdr) \ + LE_BITS_TO_4BYTE((__prxhdr), 31, 1) +#define GET_C2H_CMD_CONTENT(__prxhdr) \ + ((u8 *)(__prxhdr) + C2H_RX_CMD_HDR_LEN) + +#define GET_C2H_CMD_FEEDBACK_ELEMENT_ID(__pcmdfbhdr) \ + LE_BITS_TO_4BYTE((__pcmdfbhdr), 0, 8) +#define GET_C2H_CMD_FEEDBACK_CCX_LEN(__pcmdfbhdr) \ + LE_BITS_TO_4BYTE((__pcmdfbhdr), 8, 8) +#define GET_C2H_CMD_FEEDBACK_CCX_CMD_CNT(__pcmdfbhdr) \ + LE_BITS_TO_4BYTE((__pcmdfbhdr), 16, 16) +#define GET_C2H_CMD_FEEDBACK_CCX_MAC_ID(__pcmdfbhdr) \ + LE_BITS_TO_4BYTE(((__pcmdfbhdr) + 4), 0, 5) +#define GET_C2H_CMD_FEEDBACK_CCX_VALID(__pcmdfbhdr) \ + LE_BITS_TO_4BYTE(((__pcmdfbhdr) + 4), 7, 1) +#define GET_C2H_CMD_FEEDBACK_CCX_RETRY_CNT(__pcmdfbhdr) \ + LE_BITS_TO_4BYTE(((__pcmdfbhdr) + 4), 8, 5) +#define GET_C2H_CMD_FEEDBACK_CCX_TOK(__pcmdfbhdr) \ + LE_BITS_TO_4BYTE(((__pcmdfbhdr) + 4), 15, 1) +#define GET_C2H_CMD_FEEDBACK_CCX_QSEL(__pcmdfbhdr) \ + LE_BITS_TO_4BYTE(((__pcmdfbhdr) + 4), 16, 4) +#define GET_C2H_CMD_FEEDBACK_CCX_SEQ(__pcmdfbhdr) \ + LE_BITS_TO_4BYTE(((__pcmdfbhdr) + 4), 20, 12) + +#define CHIP_BONDING_IDENTIFIER(_value) (((_value)>>22)&0x3) +#define CHIP_BONDING_92C_1T2R 0x1 + +#define CHIP_8723 BIT(0) +#define CHIP_8723B (BIT(1) | BIT(2)) +#define NORMAL_CHIP BIT(3) +#define RF_TYPE_1T1R (~(BIT(4) | BIT(5) | BIT(6))) +#define RF_TYPE_1T2R BIT(4) +#define RF_TYPE_2T2R BIT(5) +#define CHIP_VENDOR_UMC BIT(7) +#define B_CUT_VERSION BIT(12) +#define C_CUT_VERSION BIT(13) +#define D_CUT_VERSION ((BIT(12) | BIT(13))) +#define E_CUT_VERSION BIT(14) +#define RF_RL_ID (BIT(31) | BIT(30) | BIT(29) | BIT(28)) + +/* MASK */ +#define IC_TYPE_MASK (BIT(0) | BIT(1) | BIT(2)) +#define CHIP_TYPE_MASK BIT(3) +#define RF_TYPE_MASK (BIT(4) | BIT(5) | BIT(6)) +#define MANUFACTUER_MASK BIT(7) +#define ROM_VERSION_MASK (BIT(11) | BIT(10) | BIT(9) | BIT(8)) +#define CUT_VERSION_MASK (BIT(15) | BIT(14) | BIT(13) | BIT(12)) + +/* Get element */ +#define GET_CVID_IC_TYPE(version) ((version) & IC_TYPE_MASK) +#define GET_CVID_CHIP_TYPE(version) ((version) & CHIP_TYPE_MASK) +#define GET_CVID_RF_TYPE(version) ((version) & RF_TYPE_MASK) +#define GET_CVID_MANUFACTUER(version) ((version) & MANUFACTUER_MASK) +#define GET_CVID_ROM_VERSION(version) ((version) & ROM_VERSION_MASK) +#define GET_CVID_CUT_VERSION(version) ((version) & CUT_VERSION_MASK) + +#define IS_92C_SERIAL(version) ((IS_81XXC(version) && IS_2T2R(version)) ?\ + true : false) +#define IS_81XXC(version) ((GET_CVID_IC_TYPE(version) == 0) ?\ + true : false) +#define IS_8723_SERIES(version) ((GET_CVID_IC_TYPE(version) == CHIP_8723) ?\ + true : false) +#define IS_1T1R(version) ((GET_CVID_RF_TYPE(version)) ? false : true) +#define IS_1T2R(version) ((GET_CVID_RF_TYPE(version) == RF_TYPE_1T2R)\ + ? true : false) +#define IS_2T2R(version) ((GET_CVID_RF_TYPE(version) == RF_TYPE_2T2R)\ + ? true : false) +enum rf_optype { + RF_OP_BY_SW_3WIRE = 0, + RF_OP_BY_FW, + RF_OP_MAX +}; + +enum rf_power_state { + RF_ON, + RF_OFF, + RF_SLEEP, + RF_SHUT_DOWN, +}; + +enum power_save_mode { + POWER_SAVE_MODE_ACTIVE, + POWER_SAVE_MODE_SAVE, +}; + +enum power_polocy_config { + POWERCFG_MAX_POWER_SAVINGS, + POWERCFG_GLOBAL_POWER_SAVINGS, + POWERCFG_LOCAL_POWER_SAVINGS, + POWERCFG_LENOVO, +}; + +enum interface_select_pci { + INTF_SEL1_MINICARD = 0, + INTF_SEL0_PCIE = 1, + INTF_SEL2_RSV = 2, + INTF_SEL3_RSV = 3, +}; + +enum rtl_desc_qsel { + QSLT_BK = 0x2, + QSLT_BE = 0x0, + QSLT_VI = 0x5, + QSLT_VO = 0x7, + QSLT_BEACON = 0x10, + QSLT_HIGH = 0x11, + QSLT_MGNT = 0x12, + QSLT_CMD = 0x13, +}; + +enum rtl_desc8723e_rate { + DESC92C_RATE1M = 0x00, + DESC92C_RATE2M = 0x01, + DESC92C_RATE5_5M = 0x02, + DESC92C_RATE11M = 0x03, + + DESC92C_RATE6M = 0x04, + DESC92C_RATE9M = 0x05, + DESC92C_RATE12M = 0x06, + DESC92C_RATE18M = 0x07, + DESC92C_RATE24M = 0x08, + DESC92C_RATE36M = 0x09, + DESC92C_RATE48M = 0x0a, + DESC92C_RATE54M = 0x0b, + + DESC92C_RATEMCS0 = 0x0c, + DESC92C_RATEMCS1 = 0x0d, + DESC92C_RATEMCS2 = 0x0e, + DESC92C_RATEMCS3 = 0x0f, + DESC92C_RATEMCS4 = 0x10, + DESC92C_RATEMCS5 = 0x11, + DESC92C_RATEMCS6 = 0x12, + DESC92C_RATEMCS7 = 0x13, + DESC92C_RATEMCS8 = 0x14, + DESC92C_RATEMCS9 = 0x15, + DESC92C_RATEMCS10 = 0x16, + DESC92C_RATEMCS11 = 0x17, + DESC92C_RATEMCS12 = 0x18, + DESC92C_RATEMCS13 = 0x19, + DESC92C_RATEMCS14 = 0x1a, + DESC92C_RATEMCS15 = 0x1b, + DESC92C_RATEMCS15_SG = 0x1c, + DESC92C_RATEMCS32 = 0x20, +}; + +enum rx_packet_type { + NORMAL_RX, + TX_REPORT1, + TX_REPORT2, + HIS_REPORT, +}; + +struct phy_sts_cck_8723e_t { + u8 adc_pwdb_X[4]; + u8 sq_rpt; + u8 cck_agc_rpt; +}; + +struct h2c_cmd_8723e { + u8 element_id; + u32 cmd_len; + u8 *p_cmdbuffer; +}; + +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/dm.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/dm.c @@ -0,0 +1,1325 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "../base.h" +#include "../pci.h" +#include "reg.h" +#include "def.h" +#include "phy.h" +#include "dm.h" +#include "../rtl8723com/dm_common.h" +#include "fw.h" +#include "../rtl8723com/fw_common.h" +#include "trx.h" +#include "../btcoexist/rtl_btc.h" + +static const u32 ofdmswing_table[] = { + 0x0b40002d, /* 0, -15.0dB */ + 0x0c000030, /* 1, -14.5dB */ + 0x0cc00033, /* 2, -14.0dB */ + 0x0d800036, /* 3, -13.5dB */ + 0x0e400039, /* 4, -13.0dB */ + 0x0f00003c, /* 5, -12.5dB */ + 0x10000040, /* 6, -12.0dB */ + 0x11000044, /* 7, -11.5dB */ + 0x12000048, /* 8, -11.0dB */ + 0x1300004c, /* 9, -10.5dB */ + 0x14400051, /* 10, -10.0dB */ + 0x15800056, /* 11, -9.5dB */ + 0x16c0005b, /* 12, -9.0dB */ + 0x18000060, /* 13, -8.5dB */ + 0x19800066, /* 14, -8.0dB */ + 0x1b00006c, /* 15, -7.5dB */ + 0x1c800072, /* 16, -7.0dB */ + 0x1e400079, /* 17, -6.5dB */ + 0x20000080, /* 18, -6.0dB */ + 0x22000088, /* 19, -5.5dB */ + 0x24000090, /* 20, -5.0dB */ + 0x26000098, /* 21, -4.5dB */ + 0x288000a2, /* 22, -4.0dB */ + 0x2ac000ab, /* 23, -3.5dB */ + 0x2d4000b5, /* 24, -3.0dB */ + 0x300000c0, /* 25, -2.5dB */ + 0x32c000cb, /* 26, -2.0dB */ + 0x35c000d7, /* 27, -1.5dB */ + 0x390000e4, /* 28, -1.0dB */ + 0x3c8000f2, /* 29, -0.5dB */ + 0x40000100, /* 30, +0dB */ + 0x43c0010f, /* 31, +0.5dB */ + 0x47c0011f, /* 32, +1.0dB */ + 0x4c000130, /* 33, +1.5dB */ + 0x50800142, /* 34, +2.0dB */ + 0x55400155, /* 35, +2.5dB */ + 0x5a400169, /* 36, +3.0dB */ + 0x5fc0017f, /* 37, +3.5dB */ + 0x65400195, /* 38, +4.0dB */ + 0x6b8001ae, /* 39, +4.5dB */ + 0x71c001c7, /* 40, +5.0dB */ + 0x788001e2, /* 41, +5.5dB */ + 0x7f8001fe /* 42, +6.0dB */ +}; + +static const u8 cckswing_table_ch1ch13[CCK_TABLE_SIZE][8] = { + {0x09, 0x08, 0x07, 0x06, 0x04, 0x03, 0x01, 0x01}, /* 0, -16.0dB */ + {0x09, 0x09, 0x08, 0x06, 0x05, 0x03, 0x01, 0x01}, /* 1, -15.5dB */ + {0x0a, 0x09, 0x08, 0x07, 0x05, 0x03, 0x02, 0x01}, /* 2, -15.0dB */ + {0x0a, 0x0a, 0x09, 0x07, 0x05, 0x03, 0x02, 0x01}, /* 3, -14.5dB */ + {0x0b, 0x0a, 0x09, 0x08, 0x06, 0x04, 0x02, 0x01}, /* 4, -14.0dB */ + {0x0b, 0x0b, 0x0a, 0x08, 0x06, 0x04, 0x02, 0x01}, /* 5, -13.5dB */ + {0x0c, 0x0c, 0x0a, 0x09, 0x06, 0x04, 0x02, 0x01}, /* 6, -13.0dB */ + {0x0d, 0x0c, 0x0b, 0x09, 0x07, 0x04, 0x02, 0x01}, /* 7, -12.5dB */ + {0x0d, 0x0d, 0x0c, 0x0a, 0x07, 0x05, 0x02, 0x01}, /* 8, -12.0dB */ + {0x0e, 0x0e, 0x0c, 0x0a, 0x08, 0x05, 0x02, 0x01}, /* 9, -11.5dB */ + {0x0f, 0x0f, 0x0d, 0x0b, 0x08, 0x05, 0x03, 0x01}, /* 10, -11.0dB */ + {0x10, 0x10, 0x0e, 0x0b, 0x08, 0x05, 0x03, 0x01}, /* 11, -10.5dB */ + {0x11, 0x11, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01}, /* 12, -10.0dB */ + {0x12, 0x12, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01}, /* 13, -9.5dB */ + {0x13, 0x13, 0x10, 0x0d, 0x0a, 0x06, 0x03, 0x01}, /* 14, -9.0dB */ + {0x14, 0x14, 0x11, 0x0e, 0x0b, 0x07, 0x03, 0x02}, /* 15, -8.5dB */ + {0x16, 0x15, 0x12, 0x0f, 0x0b, 0x07, 0x04, 0x01}, /* 16, -8.0dB */ + {0x17, 0x16, 0x13, 0x10, 0x0c, 0x08, 0x04, 0x02}, /* 17, -7.5dB */ + {0x18, 0x17, 0x15, 0x11, 0x0c, 0x08, 0x04, 0x02}, /* 18, -7.0dB */ + {0x1a, 0x19, 0x16, 0x12, 0x0d, 0x09, 0x04, 0x02}, /* 19, -6.5dB */ + {0x1b, 0x1a, 0x17, 0x13, 0x0e, 0x09, 0x04, 0x02}, /* 20, -6.0dB */ + {0x1d, 0x1c, 0x18, 0x14, 0x0f, 0x0a, 0x05, 0x02}, /* 21, -5.5dB */ + {0x1f, 0x1e, 0x1a, 0x15, 0x10, 0x0a, 0x05, 0x02}, /* 22, -5.0dB */ + {0x20, 0x20, 0x1b, 0x16, 0x11, 0x08, 0x05, 0x02}, /* 23, -4.5dB */ + {0x22, 0x21, 0x1d, 0x18, 0x11, 0x0b, 0x06, 0x02}, /* 24, -4.0dB */ + {0x24, 0x23, 0x1f, 0x19, 0x13, 0x0c, 0x06, 0x03}, /* 25, -3.5dB */ + {0x26, 0x25, 0x21, 0x1b, 0x14, 0x0d, 0x06, 0x03}, /* 26, -3.0dB */ + {0x28, 0x28, 0x22, 0x1c, 0x15, 0x0d, 0x07, 0x03}, /* 27, -2.5dB */ + {0x2b, 0x2a, 0x25, 0x1e, 0x16, 0x0e, 0x07, 0x03}, /* 28, -2.0dB */ + {0x2d, 0x2d, 0x27, 0x1f, 0x18, 0x0f, 0x08, 0x03}, /* 29, -1.5dB */ + {0x30, 0x2f, 0x29, 0x21, 0x19, 0x10, 0x08, 0x03}, /* 30, -1.0dB */ + {0x33, 0x32, 0x2b, 0x23, 0x1a, 0x11, 0x08, 0x04}, /* 31, -0.5dB */ + {0x36, 0x35, 0x2e, 0x25, 0x1c, 0x12, 0x09, 0x04} /* 32, +0dB */ +}; + +static const u8 cckswing_table_ch14[CCK_TABLE_SIZE][8] = { + {0x09, 0x08, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00}, /* 0, -16.0dB */ + {0x09, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00}, /* 1, -15.5dB */ + {0x0a, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00}, /* 2, -15.0dB */ + {0x0a, 0x0a, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00}, /* 3, -14.5dB */ + {0x0b, 0x0a, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00}, /* 4, -14.0dB */ + {0x0b, 0x0b, 0x0a, 0x06, 0x00, 0x00, 0x00, 0x00}, /* 5, -13.5dB */ + {0x0c, 0x0c, 0x0a, 0x06, 0x00, 0x00, 0x00, 0x00}, /* 6, -13.0dB */ + {0x0d, 0x0c, 0x0b, 0x06, 0x00, 0x00, 0x00, 0x00}, /* 7, -12.5dB */ + {0x0d, 0x0d, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x00}, /* 8, -12.0dB */ + {0x0e, 0x0e, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x00}, /* 9, -11.5dB */ + {0x0f, 0x0f, 0x0d, 0x08, 0x00, 0x00, 0x00, 0x00}, /* 10, -11.0dB */ + {0x10, 0x10, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x00}, /* 11, -10.5dB */ + {0x11, 0x11, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00}, /* 12, -10.0dB */ + {0x12, 0x12, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00}, /* 13, -9.5dB */ + {0x13, 0x13, 0x10, 0x0a, 0x00, 0x00, 0x00, 0x00}, /* 14, -9.0dB */ + {0x14, 0x14, 0x11, 0x0a, 0x00, 0x00, 0x00, 0x00}, /* 15, -8.5dB */ + {0x16, 0x15, 0x12, 0x0b, 0x00, 0x00, 0x00, 0x00}, /* 16, -8.0dB */ + {0x17, 0x16, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x00}, /* 17, -7.5dB */ + {0x18, 0x17, 0x15, 0x0c, 0x00, 0x00, 0x00, 0x00}, /* 18, -7.0dB */ + {0x1a, 0x19, 0x16, 0x0d, 0x00, 0x00, 0x00, 0x00}, /* 19, -6.5dB */ + {0x1b, 0x1a, 0x17, 0x0e, 0x00, 0x00, 0x00, 0x00}, /* 20, -6.0dB */ + {0x1d, 0x1c, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00}, /* 21, -5.5dB */ + {0x1f, 0x1e, 0x1a, 0x0f, 0x00, 0x00, 0x00, 0x00}, /* 22, -5.0dB */ + {0x20, 0x20, 0x1b, 0x10, 0x00, 0x00, 0x00, 0x00}, /* 23, -4.5dB */ + {0x22, 0x21, 0x1d, 0x11, 0x00, 0x00, 0x00, 0x00}, /* 24, -4.0dB */ + {0x24, 0x23, 0x1f, 0x12, 0x00, 0x00, 0x00, 0x00}, /* 25, -3.5dB */ + {0x26, 0x25, 0x21, 0x13, 0x00, 0x00, 0x00, 0x00}, /* 26, -3.0dB */ + {0x28, 0x28, 0x24, 0x14, 0x00, 0x00, 0x00, 0x00}, /* 27, -2.5dB */ + {0x2b, 0x2a, 0x25, 0x15, 0x00, 0x00, 0x00, 0x00}, /* 28, -2.0dB */ + {0x2d, 0x2d, 0x17, 0x17, 0x00, 0x00, 0x00, 0x00}, /* 29, -1.5dB */ + {0x30, 0x2f, 0x29, 0x18, 0x00, 0x00, 0x00, 0x00}, /* 30, -1.0dB */ + {0x33, 0x32, 0x2b, 0x19, 0x00, 0x00, 0x00, 0x00}, /* 31, -0.5dB */ + {0x36, 0x35, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00} /* 32, +0dB */ +}; + +static const u32 edca_setting_dl[PEER_MAX] = { + 0xa44f, /* 0 UNKNOWN */ + 0x5ea44f, /* 1 REALTEK_90 */ + 0x5e4322, /* 2 REALTEK_92SE */ + 0x5ea42b, /* 3 BROAD */ + 0xa44f, /* 4 RAL */ + 0xa630, /* 5 ATH */ + 0x5ea630, /* 6 CISCO */ + 0x5ea42b, /* 7 MARVELL */ +}; + +static const u32 edca_setting_ul[PEER_MAX] = { + 0x5e4322, /* 0 UNKNOWN */ + 0xa44f, /* 1 REALTEK_90 */ + 0x5ea44f, /* 2 REALTEK_92SE */ + 0x5ea32b, /* 3 BROAD */ + 0x5ea422, /* 4 RAL */ + 0x5ea322, /* 5 ATH */ + 0x3ea430, /* 6 CISCO */ + 0x5ea44f, /* 7 MARV */ +}; + +void rtl8723be_dm_txpower_track_adjust(struct ieee80211_hw *hw, u8 type, + u8 *pdirection, u32 *poutwrite_val) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + u8 pwr_val = 0; + u8 ofdm_base = rtlpriv->dm.swing_idx_ofdm_base[RF90_PATH_A]; + u8 ofdm_val = rtlpriv->dm.swing_idx_ofdm[RF90_PATH_A]; + u8 cck_base = rtldm->swing_idx_cck_base; + u8 cck_val = rtldm->swing_idx_cck; + + if (type == 0) { + if (ofdm_val <= ofdm_base) { + *pdirection = 1; + pwr_val = ofdm_base - ofdm_val; + } else { + *pdirection = 2; + pwr_val = ofdm_val - ofdm_base; + } + } else if (type == 1) { + if (cck_val <= cck_base) { + *pdirection = 1; + pwr_val = cck_base - cck_val; + } else { + *pdirection = 2; + pwr_val = cck_val - cck_base; + } + } + + if (pwr_val >= TXPWRTRACK_MAX_IDX && (*pdirection == 1)) + pwr_val = TXPWRTRACK_MAX_IDX; + + *poutwrite_val = pwr_val | (pwr_val << 8) | + (pwr_val << 16) | (pwr_val << 24); +} + +static void rtl8723be_dm_diginit(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct dig_t *dm_digtable = &rtlpriv->dm_digtable; + + dm_digtable->dig_enable_flag = true; + dm_digtable->cur_igvalue = rtl_get_bbreg(hw, + ROFDM0_XAAGCCORE1, 0x7f); + dm_digtable->rssi_lowthresh = DM_DIG_THRESH_LOW; + dm_digtable->rssi_highthresh = DM_DIG_THRESH_HIGH; + dm_digtable->fa_lowthresh = DM_FALSEALARM_THRESH_LOW; + dm_digtable->fa_highthresh = DM_FALSEALARM_THRESH_HIGH; + dm_digtable->rx_gain_max = DM_DIG_MAX; + dm_digtable->rx_gain_min = DM_DIG_MIN; + dm_digtable->back_val = DM_DIG_BACKOFF_DEFAULT; + dm_digtable->back_range_max = DM_DIG_BACKOFF_MAX; + dm_digtable->back_range_min = DM_DIG_BACKOFF_MIN; + dm_digtable->pre_cck_cca_thres = 0xff; + dm_digtable->cur_cck_cca_thres = 0x83; + dm_digtable->forbidden_igi = DM_DIG_MIN; + dm_digtable->large_fa_hit = 0; + dm_digtable->recover_cnt = 0; + dm_digtable->dig_min_0 = DM_DIG_MIN; + dm_digtable->dig_min_1 = DM_DIG_MIN; + dm_digtable->media_connect_0 = false; + dm_digtable->media_connect_1 = false; + rtlpriv->dm.dm_initialgain_enable = true; + dm_digtable->bt30_cur_igi = 0x32; +} + +void rtl8723be_dm_init_rate_adaptive_mask(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rate_adaptive *ra = &(rtlpriv->ra); + + ra->ratr_state = DM_RATR_STA_INIT; + ra->pre_ratr_state = DM_RATR_STA_INIT; + + if (rtlpriv->dm.dm_type == DM_TYPE_BYDRIVER) + rtlpriv->dm.useramask = true; + else + rtlpriv->dm.useramask = false; + + ra->high_rssi_thresh_for_ra = 50; + ra->low_rssi_thresh_for_ra40m = 20; +} + +static void rtl8723be_dm_init_txpower_tracking(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtlpriv->dm.txpower_tracking = true; + rtlpriv->dm.txpower_track_control = true; + rtlpriv->dm.thermalvalue = 0; + + rtlpriv->dm.ofdm_index[0] = 30; + rtlpriv->dm.cck_index = 20; + + rtlpriv->dm.swing_idx_cck_base = rtlpriv->dm.cck_index; + + rtlpriv->dm.swing_idx_ofdm_base[0] = rtlpriv->dm.ofdm_index[0]; + rtlpriv->dm.delta_power_index[RF90_PATH_A] = 0; + rtlpriv->dm.delta_power_index_last[RF90_PATH_A] = 0; + rtlpriv->dm.power_index_offset[RF90_PATH_A] = 0; + + RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, + " rtlpriv->dm.txpower_tracking = %d\n", + rtlpriv->dm.txpower_tracking); +} + +static void rtl8723be_dm_init_dynamic_atc_switch(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtlpriv->dm.crystal_cap = rtlpriv->efuse.crystalcap; + rtlpriv->dm.atc_status = rtl_get_bbreg(hw, ROFDM1_CFOTRACKING, 0x800); + rtlpriv->dm.cfo_threshold = CFO_THRESHOLD_XTAL; +} + +void rtl8723be_dm_init(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtlpriv->dm.dm_type = DM_TYPE_BYDRIVER; + rtl8723be_dm_diginit(hw); + rtl8723be_dm_init_rate_adaptive_mask(hw); + rtl8723_dm_init_edca_turbo(hw); + rtl8723_dm_init_dynamic_bb_powersaving(hw); + rtl8723_dm_init_dynamic_txpower(hw); + rtl8723be_dm_init_txpower_tracking(hw); + rtl8723be_dm_init_dynamic_atc_switch(hw); +} + +static void rtl8723be_dm_find_minimum_rssi(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct dig_t *rtl_dm_dig = &(rtlpriv->dm_digtable); + struct rtl_mac *mac = rtl_mac(rtlpriv); + + /* Determine the minimum RSSI */ + if ((mac->link_state < MAC80211_LINKED) && + (rtlpriv->dm.entry_min_undec_sm_pwdb == 0)) { + rtl_dm_dig->min_undec_pwdb_for_dm = 0; + RT_TRACE(rtlpriv, COMP_BB_POWERSAVING, DBG_LOUD, + "Not connected to any\n"); + } + if (mac->link_state >= MAC80211_LINKED) { + if (mac->opmode == NL80211_IFTYPE_AP || + mac->opmode == NL80211_IFTYPE_ADHOC) { + rtl_dm_dig->min_undec_pwdb_for_dm = + rtlpriv->dm.entry_min_undec_sm_pwdb; + RT_TRACE(rtlpriv, COMP_BB_POWERSAVING, DBG_LOUD, + "AP Client PWDB = 0x%lx\n", + rtlpriv->dm.entry_min_undec_sm_pwdb); + } else { + rtl_dm_dig->min_undec_pwdb_for_dm = + rtlpriv->dm.undec_sm_pwdb; + RT_TRACE(rtlpriv, COMP_BB_POWERSAVING, DBG_LOUD, + "STA Default Port PWDB = 0x%x\n", + rtl_dm_dig->min_undec_pwdb_for_dm); + } + } else { + rtl_dm_dig->min_undec_pwdb_for_dm = + rtlpriv->dm.entry_min_undec_sm_pwdb; + RT_TRACE(rtlpriv, COMP_BB_POWERSAVING, DBG_LOUD, + "AP Ext Port or disconnet PWDB = 0x%x\n", + rtl_dm_dig->min_undec_pwdb_for_dm); + } + RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, "MinUndecoratedPWDBForDM =%d\n", + rtl_dm_dig->min_undec_pwdb_for_dm); +} + +static void rtl8723be_dm_check_rssi_monitor(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_sta_info *drv_priv; + u8 h2c_parameter[3] = { 0 }; + long tmp_entry_max_pwdb = 0, tmp_entry_min_pwdb = 0xff; + + /* AP & ADHOC & MESH */ + spin_lock_bh(&rtlpriv->locks.entry_list_lock); + list_for_each_entry(drv_priv, &rtlpriv->entry_list, list) { + if (drv_priv->rssi_stat.undec_sm_pwdb < + tmp_entry_min_pwdb) + tmp_entry_min_pwdb = + drv_priv->rssi_stat.undec_sm_pwdb; + if (drv_priv->rssi_stat.undec_sm_pwdb > + tmp_entry_max_pwdb) + tmp_entry_max_pwdb = + drv_priv->rssi_stat.undec_sm_pwdb; + } + spin_unlock_bh(&rtlpriv->locks.entry_list_lock); + + /* If associated entry is found */ + if (tmp_entry_max_pwdb != 0) { + rtlpriv->dm.entry_max_undec_sm_pwdb = tmp_entry_max_pwdb; + RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, + "EntryMaxPWDB = 0x%lx(%ld)\n", + tmp_entry_max_pwdb, tmp_entry_max_pwdb); + } else { + rtlpriv->dm.entry_max_undec_sm_pwdb = 0; + } + /* If associated entry is found */ + if (tmp_entry_min_pwdb != 0xff) { + rtlpriv->dm.entry_min_undec_sm_pwdb = tmp_entry_min_pwdb; + RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, + "EntryMinPWDB = 0x%lx(%ld)\n", + tmp_entry_min_pwdb, tmp_entry_min_pwdb); + } else { + rtlpriv->dm.entry_min_undec_sm_pwdb = 0; + } + /* Indicate Rx signal strength to FW. */ + if (rtlpriv->dm.useramask) { + h2c_parameter[2] = (u8) (rtlpriv->dm.undec_sm_pwdb & 0xFF); + h2c_parameter[1] = 0x20; + h2c_parameter[0] = 0; + rtl8723be_fill_h2c_cmd(hw, H2C_RSSI_REPORT, 3, h2c_parameter); + } else { + rtl_write_byte(rtlpriv, 0x4fe, rtlpriv->dm.undec_sm_pwdb); + } + rtl8723be_dm_find_minimum_rssi(hw); + rtlpriv->dm_digtable.rssi_val_min = + rtlpriv->dm_digtable.min_undec_pwdb_for_dm; +} + +void rtl8723be_dm_write_dig(struct ieee80211_hw *hw, u8 current_igi) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if (rtlpriv->dm_digtable.cur_igvalue != current_igi) { + rtl_set_bbreg(hw, ROFDM0_XAAGCCORE1, 0x7f, current_igi); + if (rtlpriv->phy.rf_type != RF_1T1R) + rtl_set_bbreg(hw, ROFDM0_XBAGCCORE1, 0x7f, current_igi); + } + rtlpriv->dm_digtable.pre_igvalue = rtlpriv->dm_digtable.cur_igvalue; + rtlpriv->dm_digtable.cur_igvalue = current_igi; +} + +static void rtl8723be_dm_dig(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct dig_t *dm_digtable = &(rtlpriv->dm_digtable); + u8 dig_dynamic_min, dig_maxofmin; + bool firstconnect, firstdisconnect; + u8 dm_dig_max, dm_dig_min; + u8 current_igi = dm_digtable->cur_igvalue; + u8 offset; + + /* AP, BT */ + if (mac->act_scanning) + return; + + dig_dynamic_min = dm_digtable->dig_min_0; + firstconnect = (mac->link_state >= MAC80211_LINKED) && + !dm_digtable->media_connect_0; + firstdisconnect = (mac->link_state < MAC80211_LINKED) && + dm_digtable->media_connect_0; + + dm_dig_max = 0x5a; + dm_dig_min = DM_DIG_MIN; + dig_maxofmin = DM_DIG_MAX_AP; + + if (mac->link_state >= MAC80211_LINKED) { + if ((dm_digtable->rssi_val_min + 10) > dm_dig_max) + dm_digtable->rx_gain_max = dm_dig_max; + else if ((dm_digtable->rssi_val_min + 10) < dm_dig_min) + dm_digtable->rx_gain_max = dm_dig_min; + else + dm_digtable->rx_gain_max = + dm_digtable->rssi_val_min + 10; + + if (rtlpriv->dm.one_entry_only) { + offset = 12; + if (dm_digtable->rssi_val_min - offset < dm_dig_min) + dig_dynamic_min = dm_dig_min; + else if (dm_digtable->rssi_val_min - offset > + dig_maxofmin) + dig_dynamic_min = dig_maxofmin; + else + dig_dynamic_min = + dm_digtable->rssi_val_min - offset; + } else { + dig_dynamic_min = dm_dig_min; + } + } else { + dm_digtable->rx_gain_max = dm_dig_max; + dig_dynamic_min = dm_dig_min; + RT_TRACE(rtlpriv, COMP_DIG, DBG_LOUD, "no link\n"); + } + + if (rtlpriv->falsealm_cnt.cnt_all > 10000) { + if (dm_digtable->large_fa_hit != 3) + dm_digtable->large_fa_hit++; + if (dm_digtable->forbidden_igi < current_igi) { + dm_digtable->forbidden_igi = current_igi; + dm_digtable->large_fa_hit = 1; + } + + if (dm_digtable->large_fa_hit >= 3) { + if ((dm_digtable->forbidden_igi + 1) > + dm_digtable->rx_gain_max) + dm_digtable->rx_gain_min = + dm_digtable->rx_gain_max; + else + dm_digtable->rx_gain_min = + dm_digtable->forbidden_igi + 1; + dm_digtable->recover_cnt = 3600; + } + } else { + if (dm_digtable->recover_cnt != 0) { + dm_digtable->recover_cnt--; + } else { + if (dm_digtable->large_fa_hit < 3) { + if ((dm_digtable->forbidden_igi - 1) < + dig_dynamic_min) { + dm_digtable->forbidden_igi = + dig_dynamic_min; + dm_digtable->rx_gain_min = + dig_dynamic_min; + } else { + dm_digtable->forbidden_igi--; + dm_digtable->rx_gain_min = + dm_digtable->forbidden_igi + 1; + } + } else { + dm_digtable->large_fa_hit = 0; + } + } + } + if (dm_digtable->rx_gain_min > dm_digtable->rx_gain_max) + dm_digtable->rx_gain_min = dm_digtable->rx_gain_max; + + if (mac->link_state >= MAC80211_LINKED) { + if (firstconnect) { + if (dm_digtable->rssi_val_min <= dig_maxofmin) + current_igi = dm_digtable->rssi_val_min; + else + current_igi = dig_maxofmin; + + dm_digtable->large_fa_hit = 0; + } else { + if (rtlpriv->falsealm_cnt.cnt_all > DM_DIG_FA_TH2) + current_igi += 4; + else if (rtlpriv->falsealm_cnt.cnt_all > DM_DIG_FA_TH1) + current_igi += 2; + else if (rtlpriv->falsealm_cnt.cnt_all < DM_DIG_FA_TH0) + current_igi -= 2; + } + } else { + if (firstdisconnect) { + current_igi = dm_digtable->rx_gain_min; + } else { + if (rtlpriv->falsealm_cnt.cnt_all > 10000) + current_igi += 4; + else if (rtlpriv->falsealm_cnt.cnt_all > 8000) + current_igi += 2; + else if (rtlpriv->falsealm_cnt.cnt_all < 500) + current_igi -= 2; + } + } + + if (current_igi > dm_digtable->rx_gain_max) + current_igi = dm_digtable->rx_gain_max; + else if (current_igi < dm_digtable->rx_gain_min) + current_igi = dm_digtable->rx_gain_min; + + rtl8723be_dm_write_dig(hw, current_igi); + dm_digtable->media_connect_0 = + ((mac->link_state >= MAC80211_LINKED) ? true : false); + dm_digtable->dig_min_0 = dig_dynamic_min; +} + +static void rtl8723be_dm_false_alarm_counter_statistics(struct ieee80211_hw *hw) +{ + u32 ret_value; + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct false_alarm_statistics *falsealm_cnt = &(rtlpriv->falsealm_cnt); + + rtl_set_bbreg(hw, DM_REG_OFDM_FA_HOLDC_11N, BIT(31), 1); + rtl_set_bbreg(hw, DM_REG_OFDM_FA_RSTD_11N, BIT(31), 1); + + ret_value = rtl_get_bbreg(hw, DM_REG_OFDM_FA_TYPE1_11N, MASKDWORD); + falsealm_cnt->cnt_fast_fsync_fail = ret_value & 0xffff; + falsealm_cnt->cnt_sb_search_fail = (ret_value & 0xffff0000) >> 16; + + ret_value = rtl_get_bbreg(hw, DM_REG_OFDM_FA_TYPE2_11N, MASKDWORD); + falsealm_cnt->cnt_ofdm_cca = ret_value & 0xffff; + falsealm_cnt->cnt_parity_fail = (ret_value & 0xffff0000) >> 16; + + ret_value = rtl_get_bbreg(hw, DM_REG_OFDM_FA_TYPE3_11N, MASKDWORD); + falsealm_cnt->cnt_rate_illegal = ret_value & 0xffff; + falsealm_cnt->cnt_crc8_fail = (ret_value & 0xffff0000) >> 16; + + ret_value = rtl_get_bbreg(hw, DM_REG_OFDM_FA_TYPE4_11N, MASKDWORD); + falsealm_cnt->cnt_mcs_fail = ret_value & 0xffff; + + falsealm_cnt->cnt_ofdm_fail = falsealm_cnt->cnt_parity_fail + + falsealm_cnt->cnt_rate_illegal + + falsealm_cnt->cnt_crc8_fail + + falsealm_cnt->cnt_mcs_fail + + falsealm_cnt->cnt_fast_fsync_fail + + falsealm_cnt->cnt_sb_search_fail; + + rtl_set_bbreg(hw, DM_REG_CCK_FA_RST_11N, BIT(12), 1); + rtl_set_bbreg(hw, DM_REG_CCK_FA_RST_11N, BIT(14), 1); + + ret_value = rtl_get_bbreg(hw, DM_REG_CCK_FA_RST_11N, MASKBYTE0); + falsealm_cnt->cnt_cck_fail = ret_value; + + ret_value = rtl_get_bbreg(hw, DM_REG_CCK_FA_MSB_11N, MASKBYTE3); + falsealm_cnt->cnt_cck_fail += (ret_value & 0xff) << 8; + + ret_value = rtl_get_bbreg(hw, DM_REG_CCK_CCA_CNT_11N, MASKDWORD); + falsealm_cnt->cnt_cck_cca = ((ret_value & 0xff) << 8) | + ((ret_value & 0xff00) >> 8); + + falsealm_cnt->cnt_all = falsealm_cnt->cnt_fast_fsync_fail + + falsealm_cnt->cnt_sb_search_fail + + falsealm_cnt->cnt_parity_fail + + falsealm_cnt->cnt_rate_illegal + + falsealm_cnt->cnt_crc8_fail + + falsealm_cnt->cnt_mcs_fail + + falsealm_cnt->cnt_cck_fail; + + falsealm_cnt->cnt_cca_all = falsealm_cnt->cnt_ofdm_cca + + falsealm_cnt->cnt_cck_cca; + + rtl_set_bbreg(hw, DM_REG_OFDM_FA_RSTC_11N, BIT(31), 1); + rtl_set_bbreg(hw, DM_REG_OFDM_FA_RSTC_11N, BIT(31), 0); + rtl_set_bbreg(hw, DM_REG_OFDM_FA_RSTD_11N, BIT(27), 1); + rtl_set_bbreg(hw, DM_REG_OFDM_FA_RSTD_11N, BIT(27), 0); + + rtl_set_bbreg(hw, DM_REG_OFDM_FA_HOLDC_11N, BIT(31), 0); + rtl_set_bbreg(hw, DM_REG_OFDM_FA_RSTD_11N, BIT(31), 0); + + rtl_set_bbreg(hw, DM_REG_CCK_FA_RST_11N, BIT(13) | BIT(12), 0); + rtl_set_bbreg(hw, DM_REG_CCK_FA_RST_11N, BIT(13) | BIT(12), 2); + + rtl_set_bbreg(hw, DM_REG_CCK_FA_RST_11N, BIT(15) | BIT(14), 0); + rtl_set_bbreg(hw, DM_REG_CCK_FA_RST_11N, BIT(15) | BIT(14), 2); + + RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE, + "cnt_parity_fail = %d, cnt_rate_illegal = %d, " + "cnt_crc8_fail = %d, cnt_mcs_fail = %d\n", + falsealm_cnt->cnt_parity_fail, + falsealm_cnt->cnt_rate_illegal, + falsealm_cnt->cnt_crc8_fail, + falsealm_cnt->cnt_mcs_fail); + + RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE, + "cnt_ofdm_fail = %x, cnt_cck_fail = %x," + " cnt_all = %x\n", + falsealm_cnt->cnt_ofdm_fail, + falsealm_cnt->cnt_cck_fail, + falsealm_cnt->cnt_all); +} + +static void rtl8723be_dm_dynamic_txpower(struct ieee80211_hw *hw) +{ + /* 8723BE does not support ODM_BB_DYNAMIC_TXPWR*/ + return; +} + +static void rtl8723be_set_iqk_matrix(struct ieee80211_hw *hw, u8 ofdm_index, + u8 rfpath, long iqk_result_x, + long iqk_result_y) +{ + long ele_a = 0, ele_d, ele_c = 0, value32; + + if (ofdm_index >= 43) + ofdm_index = 43 - 1; + + ele_d = (ofdmswing_table[ofdm_index] & 0xFFC00000) >> 22; + + if (iqk_result_x != 0) { + if ((iqk_result_x & 0x00000200) != 0) + iqk_result_x = iqk_result_x | 0xFFFFFC00; + ele_a = ((iqk_result_x * ele_d) >> 8) & 0x000003FF; + + if ((iqk_result_y & 0x00000200) != 0) + iqk_result_y = iqk_result_y | 0xFFFFFC00; + ele_c = ((iqk_result_y * ele_d) >> 8) & 0x000003FF; + + switch (rfpath) { + case RF90_PATH_A: + value32 = (ele_d << 22) | + ((ele_c & 0x3F) << 16) | ele_a; + rtl_set_bbreg(hw, ROFDM0_XATXIQIMBALANCE, MASKDWORD, + value32); + value32 = (ele_c & 0x000003C0) >> 6; + rtl_set_bbreg(hw, ROFDM0_XCTXAFE, MASKH4BITS, value32); + value32 = ((iqk_result_x * ele_d) >> 7) & 0x01; + rtl_set_bbreg(hw, ROFDM0_ECCATHRESHOLD, BIT(24), + value32); + break; + default: + break; + } + } else { + switch (rfpath) { + case RF90_PATH_A: + rtl_set_bbreg(hw, ROFDM0_XATXIQIMBALANCE, MASKDWORD, + ofdmswing_table[ofdm_index]); + rtl_set_bbreg(hw, ROFDM0_XCTXAFE, MASKH4BITS, 0x00); + rtl_set_bbreg(hw, ROFDM0_ECCATHRESHOLD, BIT(24), 0x00); + break; + default: + break; + } + } +} + +static void rtl8723be_dm_tx_power_track_set_power(struct ieee80211_hw *hw, + enum pwr_track_control_method method, + u8 rfpath, u8 idx) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + u8 swing_idx_ofdm_limit = 36; + + if (method == TXAGC) { + rtl8723be_phy_set_txpower_level(hw, rtlphy->current_channel); + } else if (method == BBSWING) { + if (rtldm->swing_idx_cck >= CCK_TABLE_SIZE) + rtldm->swing_idx_cck = CCK_TABLE_SIZE - 1; + + if (!rtldm->cck_inch14) { + rtl_write_byte(rtlpriv, 0xa22, + cckswing_table_ch1ch13[rtldm->swing_idx_cck][0]); + rtl_write_byte(rtlpriv, 0xa23, + cckswing_table_ch1ch13[rtldm->swing_idx_cck][1]); + rtl_write_byte(rtlpriv, 0xa24, + cckswing_table_ch1ch13[rtldm->swing_idx_cck][2]); + rtl_write_byte(rtlpriv, 0xa25, + cckswing_table_ch1ch13[rtldm->swing_idx_cck][3]); + rtl_write_byte(rtlpriv, 0xa26, + cckswing_table_ch1ch13[rtldm->swing_idx_cck][4]); + rtl_write_byte(rtlpriv, 0xa27, + cckswing_table_ch1ch13[rtldm->swing_idx_cck][5]); + rtl_write_byte(rtlpriv, 0xa28, + cckswing_table_ch1ch13[rtldm->swing_idx_cck][6]); + rtl_write_byte(rtlpriv, 0xa29, + cckswing_table_ch1ch13[rtldm->swing_idx_cck][7]); + } else { + rtl_write_byte(rtlpriv, 0xa22, + cckswing_table_ch14[rtldm->swing_idx_cck][0]); + rtl_write_byte(rtlpriv, 0xa23, + cckswing_table_ch14[rtldm->swing_idx_cck][1]); + rtl_write_byte(rtlpriv, 0xa24, + cckswing_table_ch14[rtldm->swing_idx_cck][2]); + rtl_write_byte(rtlpriv, 0xa25, + cckswing_table_ch14[rtldm->swing_idx_cck][3]); + rtl_write_byte(rtlpriv, 0xa26, + cckswing_table_ch14[rtldm->swing_idx_cck][4]); + rtl_write_byte(rtlpriv, 0xa27, + cckswing_table_ch14[rtldm->swing_idx_cck][5]); + rtl_write_byte(rtlpriv, 0xa28, + cckswing_table_ch14[rtldm->swing_idx_cck][6]); + rtl_write_byte(rtlpriv, 0xa29, + cckswing_table_ch14[rtldm->swing_idx_cck][7]); + } + + if (rfpath == RF90_PATH_A) { + if (rtldm->swing_idx_ofdm[RF90_PATH_A] < + swing_idx_ofdm_limit) + swing_idx_ofdm_limit = + rtldm->swing_idx_ofdm[RF90_PATH_A]; + + rtl8723be_set_iqk_matrix(hw, + rtldm->swing_idx_ofdm[rfpath], rfpath, + rtlphy->iqk_matrix[idx].value[0][0], + rtlphy->iqk_matrix[idx].value[0][1]); + } else if (rfpath == RF90_PATH_B) { + if (rtldm->swing_idx_ofdm[RF90_PATH_B] < + swing_idx_ofdm_limit) + swing_idx_ofdm_limit = + rtldm->swing_idx_ofdm[RF90_PATH_B]; + + rtl8723be_set_iqk_matrix(hw, + rtldm->swing_idx_ofdm[rfpath], rfpath, + rtlphy->iqk_matrix[idx].value[0][4], + rtlphy->iqk_matrix[idx].value[0][5]); + } + } else { + return; + } +} + +static void txpwr_track_cb_therm(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + u8 thermalvalue = 0, delta, delta_lck, delta_iqk; + u8 thermalvalue_avg_count = 0; + u32 thermalvalue_avg = 0; + int i = 0; + + u8 ofdm_min_index = 6; + u8 index = 0; + + char delta_swing_table_idx_tup_a[] = { + 0, 0, 1, 2, 2, 2, 3, 3, 3, 4, 5, + 5, 6, 6, 7, 7, 8, 8, 9, 9, 9, 10, + 10, 11, 11, 12, 12, 13, 14, 15}; + char delta_swing_table_idx_tdown_a[] = { + 0, 0, 1, 2, 2, 2, 3, 3, 3, 4, 5, + 5, 6, 6, 6, 6, 7, 7, 7, 8, 8, 9, + 9, 10, 10, 11, 12, 13, 14, 15}; + + /*Initilization ( 7 steps in total)*/ + rtlpriv->dm.txpower_trackinginit = true; + RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, + "rtl8723be_dm_txpower_tracking" + "_callback_thermalmeter\n"); + + thermalvalue = (u8)rtl_get_rfreg(hw, RF90_PATH_A, RF_T_METER, 0xfc00); + if (!rtlpriv->dm.txpower_track_control || thermalvalue == 0 || + rtlefuse->eeprom_thermalmeter == 0xFF) + return; + RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, + "Readback Thermal Meter = 0x%x pre thermal meter 0x%x " + "eeprom_thermalmeter 0x%x\n", + thermalvalue, rtldm->thermalvalue, + rtlefuse->eeprom_thermalmeter); + /*3 Initialize ThermalValues of RFCalibrateInfo*/ + if (!rtldm->thermalvalue) { + rtlpriv->dm.thermalvalue_lck = thermalvalue; + rtlpriv->dm.thermalvalue_iqk = thermalvalue; + } + + /*4 Calculate average thermal meter*/ + rtldm->thermalvalue_avg[rtldm->thermalvalue_avg_index] = thermalvalue; + rtldm->thermalvalue_avg_index++; + if (rtldm->thermalvalue_avg_index == AVG_THERMAL_NUM_8723BE) + rtldm->thermalvalue_avg_index = 0; + + for (i = 0; i < AVG_THERMAL_NUM_8723BE; i++) { + if (rtldm->thermalvalue_avg[i]) { + thermalvalue_avg += rtldm->thermalvalue_avg[i]; + thermalvalue_avg_count++; + } + } + + if (thermalvalue_avg_count) + thermalvalue = (u8)(thermalvalue_avg / thermalvalue_avg_count); + + /* 5 Calculate delta, delta_LCK, delta_IQK.*/ + delta = (thermalvalue > rtlpriv->dm.thermalvalue) ? + (thermalvalue - rtlpriv->dm.thermalvalue) : + (rtlpriv->dm.thermalvalue - thermalvalue); + delta_lck = (thermalvalue > rtlpriv->dm.thermalvalue_lck) ? + (thermalvalue - rtlpriv->dm.thermalvalue_lck) : + (rtlpriv->dm.thermalvalue_lck - thermalvalue); + delta_iqk = (thermalvalue > rtlpriv->dm.thermalvalue_iqk) ? + (thermalvalue - rtlpriv->dm.thermalvalue_iqk) : + (rtlpriv->dm.thermalvalue_iqk - thermalvalue); + + RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, + "Readback Thermal Meter = 0x%x pre thermal meter 0x%x " + "eeprom_thermalmeter 0x%x delta 0x%x " + "delta_lck 0x%x delta_iqk 0x%x\n", + thermalvalue, rtlpriv->dm.thermalvalue, + rtlefuse->eeprom_thermalmeter, delta, delta_lck, delta_iqk); + /* 6 If necessary, do LCK.*/ + if (delta_lck >= IQK_THRESHOLD) { + rtlpriv->dm.thermalvalue_lck = thermalvalue; + rtl8723be_phy_lc_calibrate(hw); + } + + /* 7 If necessary, move the index of + * swing table to adjust Tx power. + */ + if (delta > 0 && rtlpriv->dm.txpower_track_control) { + delta = (thermalvalue > rtlefuse->eeprom_thermalmeter) ? + (thermalvalue - rtlefuse->eeprom_thermalmeter) : + (rtlefuse->eeprom_thermalmeter - thermalvalue); + + if (delta >= TXSCALE_TABLE_SIZE) + delta = TXSCALE_TABLE_SIZE - 1; + /* 7.1 Get the final CCK_index and + * OFDM_index for each swing table. + */ + if (thermalvalue > rtlefuse->eeprom_thermalmeter) { + rtldm->delta_power_index_last[RF90_PATH_A] = + rtldm->delta_power_index[RF90_PATH_A]; + rtldm->delta_power_index[RF90_PATH_A] = + delta_swing_table_idx_tup_a[delta]; + } else { + rtldm->delta_power_index_last[RF90_PATH_A] = + rtldm->delta_power_index[RF90_PATH_A]; + rtldm->delta_power_index[RF90_PATH_A] = + -1 * delta_swing_table_idx_tdown_a[delta]; + } + + /* 7.2 Handle boundary conditions of index.*/ + if (rtldm->delta_power_index[RF90_PATH_A] == + rtldm->delta_power_index_last[RF90_PATH_A]) + rtldm->power_index_offset[RF90_PATH_A] = 0; + else + rtldm->power_index_offset[RF90_PATH_A] = + rtldm->delta_power_index[RF90_PATH_A] - + rtldm->delta_power_index_last[RF90_PATH_A]; + + rtldm->ofdm_index[0] = + rtldm->swing_idx_ofdm_base[RF90_PATH_A] + + rtldm->power_index_offset[RF90_PATH_A]; + rtldm->cck_index = rtldm->swing_idx_cck_base + + rtldm->power_index_offset[RF90_PATH_A]; + + rtldm->swing_idx_cck = rtldm->cck_index; + rtldm->swing_idx_ofdm[0] = rtldm->ofdm_index[0]; + + if (rtldm->ofdm_index[0] > OFDM_TABLE_SIZE - 1) + rtldm->ofdm_index[0] = OFDM_TABLE_SIZE - 1; + else if (rtldm->ofdm_index[0] < ofdm_min_index) + rtldm->ofdm_index[0] = ofdm_min_index; + + if (rtldm->cck_index > CCK_TABLE_SIZE - 1) + rtldm->cck_index = CCK_TABLE_SIZE - 1; + else if (rtldm->cck_index < 0) + rtldm->cck_index = 0; + } else { + rtldm->power_index_offset[RF90_PATH_A] = 0; + } + + if ((rtldm->power_index_offset[RF90_PATH_A] != 0) && + (rtldm->txpower_track_control)) { + rtldm->done_txpower = true; + if (thermalvalue > rtlefuse->eeprom_thermalmeter) + rtl8723be_dm_tx_power_track_set_power(hw, BBSWING, 0, + index); + else + rtl8723be_dm_tx_power_track_set_power(hw, BBSWING, 0, + index); + + rtldm->swing_idx_cck_base = rtldm->swing_idx_cck; + rtldm->swing_idx_ofdm_base[RF90_PATH_A] = + rtldm->swing_idx_ofdm[0]; + rtldm->thermalvalue = thermalvalue; + } + + if (delta_iqk >= IQK_THRESHOLD) { + rtldm->thermalvalue_iqk = thermalvalue; + rtl8723be_phy_iq_calibrate(hw, false); + } + + rtldm->txpowercount = 0; + RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, "end\n"); +} + +void rtl8723be_dm_check_txpower_tracking(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + static u8 tm_trigger; + + if (!rtlpriv->dm.txpower_tracking) + return; + + if (!tm_trigger) { + rtl_set_rfreg(hw, RF90_PATH_A, RF_T_METER, BIT(17) | BIT(16), + 0x03); + RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, + "Trigger 8723be Thermal Meter!!\n"); + tm_trigger = 1; + return; + } else { + RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, + "Schedule TxPowerTracking !!\n"); + txpwr_track_cb_therm(hw); + tm_trigger = 0; + } +} + +static void rtl8723be_dm_refresh_rate_adaptive_mask(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rate_adaptive *ra = &(rtlpriv->ra); + struct ieee80211_sta *sta = NULL; + u32 low_rssithresh_for_ra = ra->low2high_rssi_thresh_for_ra40m; + u32 high_rssithresh_for_ra = ra->high_rssi_thresh_for_ra; + u8 go_up_gap = 5; + + if (is_hal_stop(rtlhal)) { + RT_TRACE(rtlpriv, COMP_RATE, DBG_LOUD, + "driver is going to unload\n"); + return; + } + + if (!rtlpriv->dm.useramask) { + RT_TRACE(rtlpriv, COMP_RATE, DBG_LOUD, + "driver does not control rate adaptive mask\n"); + return; + } + + if (mac->link_state == MAC80211_LINKED && + mac->opmode == NL80211_IFTYPE_STATION) { + switch (ra->pre_ratr_state) { + case DM_RATR_STA_MIDDLE: + high_rssithresh_for_ra += go_up_gap; + break; + case DM_RATR_STA_LOW: + high_rssithresh_for_ra += go_up_gap; + low_rssithresh_for_ra += go_up_gap; + break; + default: + break; + } + + if (rtlpriv->dm.undec_sm_pwdb > + (long)high_rssithresh_for_ra) + ra->ratr_state = DM_RATR_STA_HIGH; + else if (rtlpriv->dm.undec_sm_pwdb > + (long)low_rssithresh_for_ra) + ra->ratr_state = DM_RATR_STA_MIDDLE; + else + ra->ratr_state = DM_RATR_STA_LOW; + + if (ra->pre_ratr_state != ra->ratr_state) { + RT_TRACE(rtlpriv, COMP_RATE, DBG_LOUD, + "RSSI = %ld\n", + rtlpriv->dm.undec_sm_pwdb); + RT_TRACE(rtlpriv, COMP_RATE, DBG_LOUD, + "RSSI_LEVEL = %d\n", ra->ratr_state); + RT_TRACE(rtlpriv, COMP_RATE, DBG_LOUD, + "PreState = %d, CurState = %d\n", + ra->pre_ratr_state, ra->ratr_state); + + rcu_read_lock(); + sta = rtl_find_sta(hw, mac->bssid); + if (sta) + rtlpriv->cfg->ops->update_rate_tbl(hw, sta, + ra->ratr_state); + rcu_read_unlock(); + + ra->pre_ratr_state = ra->ratr_state; + } + } +} + +static bool rtl8723be_dm_is_edca_turbo_disable(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if (rtlpriv->cfg->ops->get_btc_status()) { + if (rtlpriv->btcoexist.btc_ops->btc_is_disable_edca_turbo(rtlpriv)) + return true; + } + if (rtlpriv->mac80211.mode == WIRELESS_MODE_B) + return true; + + return false; +} + +static void rtl8723be_dm_check_edca_turbo(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + static u64 last_txok_cnt; + static u64 last_rxok_cnt; + u64 cur_txok_cnt = 0; + u64 cur_rxok_cnt = 0; + u32 edca_be_ul = 0x6ea42b; + u32 edca_be_dl = 0x6ea42b;/*not sure*/ + u32 edca_be = 0x5ea42b; + u32 iot_peer = 0; + bool is_cur_rdlstate; + bool last_is_cur_rdlstate = false; + bool bias_on_rx = false; + bool edca_turbo_on = false; + + last_is_cur_rdlstate = rtlpriv->dm.is_cur_rdlstate; + + cur_txok_cnt = rtlpriv->stats.txbytesunicast - last_txok_cnt; + cur_rxok_cnt = rtlpriv->stats.rxbytesunicast - last_rxok_cnt; + + iot_peer = rtlpriv->mac80211.vendor; + bias_on_rx = (iot_peer == PEER_RAL || iot_peer == PEER_ATH) ? + true : false; + edca_turbo_on = ((!rtlpriv->dm.is_any_nonbepkts) && + (!rtlpriv->dm.disable_framebursting)) ? + true : false; + + if ((iot_peer == PEER_CISCO) && + (mac->mode == WIRELESS_MODE_N_24G)) { + edca_be_dl = edca_setting_dl[iot_peer]; + edca_be_ul = edca_setting_ul[iot_peer]; + } + if (rtl8723be_dm_is_edca_turbo_disable(hw)) + goto exit; + + if (edca_turbo_on) { + if (bias_on_rx) + is_cur_rdlstate = (cur_txok_cnt > cur_rxok_cnt * 4) ? + false : true; + else + is_cur_rdlstate = (cur_rxok_cnt > cur_txok_cnt * 4) ? + true : false; + + edca_be = (is_cur_rdlstate) ? edca_be_dl : edca_be_ul; + rtl_write_dword(rtlpriv, REG_EDCA_BE_PARAM, edca_be); + rtlpriv->dm.is_cur_rdlstate = is_cur_rdlstate; + rtlpriv->dm.current_turbo_edca = true; + } else { + if (rtlpriv->dm.current_turbo_edca) { + u8 tmp = AC0_BE; + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_AC_PARAM, + (u8 *)(&tmp)); + } + rtlpriv->dm.current_turbo_edca = false; + } + +exit: + rtlpriv->dm.is_any_nonbepkts = false; + last_txok_cnt = rtlpriv->stats.txbytesunicast; + last_rxok_cnt = rtlpriv->stats.rxbytesunicast; +} + +static void rtl8723be_dm_cck_packet_detection_thresh(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 cur_cck_cca_thresh; + + if (rtlpriv->mac80211.link_state >= MAC80211_LINKED) { + if (rtlpriv->dm_digtable.rssi_val_min > 25) { + cur_cck_cca_thresh = 0xcd; + } else if ((rtlpriv->dm_digtable.rssi_val_min <= 25) && + (rtlpriv->dm_digtable.rssi_val_min > 10)) { + cur_cck_cca_thresh = 0x83; + } else { + if (rtlpriv->falsealm_cnt.cnt_cck_fail > 1000) + cur_cck_cca_thresh = 0x83; + else + cur_cck_cca_thresh = 0x40; + } + } else { + if (rtlpriv->falsealm_cnt.cnt_cck_fail > 1000) + cur_cck_cca_thresh = 0x83; + else + cur_cck_cca_thresh = 0x40; + } + + if (rtlpriv->dm_digtable.cur_cck_cca_thres != cur_cck_cca_thresh) + rtl_set_bbreg(hw, RCCK0_CCA, MASKBYTE2, cur_cck_cca_thresh); + + rtlpriv->dm_digtable.pre_cck_cca_thres = rtlpriv->dm_digtable.cur_cck_cca_thres; + rtlpriv->dm_digtable.cur_cck_cca_thres = cur_cck_cca_thresh; + RT_TRACE(rtlpriv, COMP_DIG, DBG_TRACE, + "CCK cca thresh hold =%x\n", + rtlpriv->dm_digtable.cur_cck_cca_thres); +} + +static void rtl8723be_dm_dynamic_edcca(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 reg_c50, reg_c58; + bool fw_current_in_ps_mode = false; + + rtlpriv->cfg->ops->get_hw_reg(hw, HW_VAR_FW_PSMODE_STATUS, + (u8 *)(&fw_current_in_ps_mode)); + if (fw_current_in_ps_mode) + return; + + reg_c50 = rtl_get_bbreg(hw, ROFDM0_XAAGCCORE1, MASKBYTE0); + reg_c58 = rtl_get_bbreg(hw, ROFDM0_XBAGCCORE1, MASKBYTE0); + + if (reg_c50 > 0x28 && reg_c58 > 0x28) { + if (!rtlpriv->rtlhal.pre_edcca_enable) { + rtl_write_byte(rtlpriv, ROFDM0_ECCATHRESHOLD, 0x03); + rtl_write_byte(rtlpriv, ROFDM0_ECCATHRESHOLD + 2, 0x00); + } + } else if (reg_c50 < 0x25 && reg_c58 < 0x25) { + if (rtlpriv->rtlhal.pre_edcca_enable) { + rtl_write_byte(rtlpriv, ROFDM0_ECCATHRESHOLD, 0x7f); + rtl_write_byte(rtlpriv, ROFDM0_ECCATHRESHOLD + 2, 0x7f); + } + } +} + +static void rtl8723be_dm_dynamic_atc_switch(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + u8 crystal_cap; + u32 packet_count; + int cfo_khz_a, cfo_khz_b, cfo_ave = 0, adjust_xtal = 0; + int cfo_ave_diff; + + if (rtlpriv->mac80211.link_state < MAC80211_LINKED) { + if (rtldm->atc_status == ATC_STATUS_OFF) { + rtl_set_bbreg(hw, ROFDM1_CFOTRACKING, BIT(11), + ATC_STATUS_ON); + rtldm->atc_status = ATC_STATUS_ON; + } + if (rtlpriv->cfg->ops->get_btc_status()) { + if (!rtlpriv->btcoexist.btc_ops->btc_is_bt_disabled(rtlpriv)) { + RT_TRACE(rtlpriv, COMP_BT_COEXIST, DBG_LOUD, + "odm_DynamicATCSwitch(): Disable" + " CFO tracking for BT!!\n"); + return; + } + } + + if (rtldm->crystal_cap != rtlpriv->efuse.crystalcap) { + rtldm->crystal_cap = rtlpriv->efuse.crystalcap; + crystal_cap = rtldm->crystal_cap & 0x3f; + rtl_set_bbreg(hw, REG_MAC_PHY_CTRL, 0xFFF000, + (crystal_cap | (crystal_cap << 6))); + } + } else { + cfo_khz_a = (int)(rtldm->cfo_tail[0] * 3125) / 1280; + cfo_khz_b = (int)(rtldm->cfo_tail[1] * 3125) / 1280; + packet_count = rtldm->packet_count; + + if (packet_count == rtldm->packet_count_pre) + return; + + rtldm->packet_count_pre = packet_count; + + if (rtlpriv->phy.rf_type == RF_1T1R) + cfo_ave = cfo_khz_a; + else + cfo_ave = (int)(cfo_khz_a + cfo_khz_b) >> 1; + + cfo_ave_diff = (rtldm->cfo_ave_pre >= cfo_ave) ? + (rtldm->cfo_ave_pre - cfo_ave) : + (cfo_ave - rtldm->cfo_ave_pre); + + if (cfo_ave_diff > 20 && rtldm->large_cfo_hit == 0) { + rtldm->large_cfo_hit = 1; + return; + } else { + rtldm->large_cfo_hit = 0; + } + + rtldm->cfo_ave_pre = cfo_ave; + + if (cfo_ave >= -rtldm->cfo_threshold && + cfo_ave <= rtldm->cfo_threshold && rtldm->is_freeze == 0) { + if (rtldm->cfo_threshold == CFO_THRESHOLD_XTAL) { + rtldm->cfo_threshold = CFO_THRESHOLD_XTAL + 10; + rtldm->is_freeze = 1; + } else { + rtldm->cfo_threshold = CFO_THRESHOLD_XTAL; + } + } + + if (cfo_ave > rtldm->cfo_threshold && rtldm->crystal_cap < 0x3f) + adjust_xtal = ((cfo_ave - CFO_THRESHOLD_XTAL) >> 1) + 1; + else if ((cfo_ave < -rtlpriv->dm.cfo_threshold) && + rtlpriv->dm.crystal_cap > 0) + adjust_xtal = ((cfo_ave + CFO_THRESHOLD_XTAL) >> 1) - 1; + + if (adjust_xtal != 0) { + rtldm->is_freeze = 0; + rtldm->crystal_cap += adjust_xtal; + + if (rtldm->crystal_cap > 0x3f) + rtldm->crystal_cap = 0x3f; + else if (rtldm->crystal_cap < 0) + rtldm->crystal_cap = 0; + + crystal_cap = rtldm->crystal_cap & 0x3f; + rtl_set_bbreg(hw, REG_MAC_PHY_CTRL, 0xFFF000, + (crystal_cap | (crystal_cap << 6))); + } + + if (cfo_ave < CFO_THRESHOLD_ATC && + cfo_ave > -CFO_THRESHOLD_ATC) { + if (rtldm->atc_status == ATC_STATUS_ON) { + rtl_set_bbreg(hw, ROFDM1_CFOTRACKING, BIT(11), + ATC_STATUS_OFF); + rtldm->atc_status = ATC_STATUS_OFF; + } + } else { + if (rtldm->atc_status == ATC_STATUS_OFF) { + rtl_set_bbreg(hw, ROFDM1_CFOTRACKING, BIT(11), + ATC_STATUS_ON); + rtldm->atc_status = ATC_STATUS_ON; + } + } + } +} + +static void rtl8723be_dm_common_info_self_update(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_sta_info *drv_priv; + u8 cnt = 0; + + rtlpriv->dm.one_entry_only = false; + + if (rtlpriv->mac80211.opmode == NL80211_IFTYPE_STATION && + rtlpriv->mac80211.link_state >= MAC80211_LINKED) { + rtlpriv->dm.one_entry_only = true; + return; + } + + if (rtlpriv->mac80211.opmode == NL80211_IFTYPE_AP || + rtlpriv->mac80211.opmode == NL80211_IFTYPE_ADHOC || + rtlpriv->mac80211.opmode == NL80211_IFTYPE_MESH_POINT) { + spin_lock_bh(&rtlpriv->locks.entry_list_lock); + list_for_each_entry(drv_priv, &rtlpriv->entry_list, list) { + cnt++; + } + spin_unlock_bh(&rtlpriv->locks.entry_list_lock); + + if (cnt == 1) + rtlpriv->dm.one_entry_only = true; + } +} + +void rtl8723be_dm_watchdog(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + bool fw_current_inpsmode = false; + bool fw_ps_awake = true; + + rtlpriv->cfg->ops->get_hw_reg(hw, HW_VAR_FW_PSMODE_STATUS, + (u8 *)(&fw_current_inpsmode)); + + rtlpriv->cfg->ops->get_hw_reg(hw, HW_VAR_FWLPS_RF_ON, + (u8 *)(&fw_ps_awake)); + + if (ppsc->p2p_ps_info.p2p_ps_mode) + fw_ps_awake = false; + + if ((ppsc->rfpwr_state == ERFON) && + ((!fw_current_inpsmode) && fw_ps_awake) && + (!ppsc->rfchange_inprogress)) { + rtl8723be_dm_common_info_self_update(hw); + rtl8723be_dm_false_alarm_counter_statistics(hw); + rtl8723be_dm_check_rssi_monitor(hw); + rtl8723be_dm_dig(hw); + rtl8723be_dm_dynamic_edcca(hw); + rtl8723be_dm_cck_packet_detection_thresh(hw); + rtl8723be_dm_refresh_rate_adaptive_mask(hw); + rtl8723be_dm_check_edca_turbo(hw); + rtl8723be_dm_dynamic_atc_switch(hw); + rtl8723be_dm_check_txpower_tracking(hw); + rtl8723be_dm_dynamic_txpower(hw); + if (rtlpriv->cfg->ops->get_btc_status()) + rtlpriv->btcoexist.btc_ops->btc_periodical(rtlpriv); + } + rtlpriv->dm.dbginfo.num_qry_beacon_pkt = 0; +} --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/dm.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/dm.h @@ -0,0 +1,310 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8723BE_DM_H__ +#define __RTL8723BE_DM_H__ + +#define MAIN_ANT 0 +#define AUX_ANT 1 +#define MAIN_ANT_CG_TRX 1 +#define AUX_ANT_CG_TRX 0 +#define MAIN_ANT_CGCS_RX 0 +#define AUX_ANT_CGCS_RX 1 + +#define TXSCALE_TABLE_SIZE 30 + +/*RF REG LIST*/ +#define DM_REG_RF_MODE_11N 0x00 +#define DM_REG_RF_0B_11N 0x0B +#define DM_REG_CHNBW_11N 0x18 +#define DM_REG_T_METER_11N 0x24 +#define DM_REG_RF_25_11N 0x25 +#define DM_REG_RF_26_11N 0x26 +#define DM_REG_RF_27_11N 0x27 +#define DM_REG_RF_2B_11N 0x2B +#define DM_REG_RF_2C_11N 0x2C +#define DM_REG_RXRF_A3_11N 0x3C +#define DM_REG_T_METER_92D_11N 0x42 +#define DM_REG_T_METER_88E_11N 0x42 + +/*BB REG LIST*/ +/*PAGE 8 */ +#define DM_REG_BB_CTRL_11N 0x800 +#define DM_REG_RF_PIN_11N 0x804 +#define DM_REG_PSD_CTRL_11N 0x808 +#define DM_REG_TX_ANT_CTRL_11N 0x80C +#define DM_REG_BB_PWR_SAV5_11N 0x818 +#define DM_REG_CCK_RPT_FORMAT_11N 0x824 +#define DM_REG_RX_DEFUALT_A_11N 0x858 +#define DM_REG_RX_DEFUALT_B_11N 0x85A +#define DM_REG_BB_PWR_SAV3_11N 0x85C +#define DM_REG_ANTSEL_CTRL_11N 0x860 +#define DM_REG_RX_ANT_CTRL_11N 0x864 +#define DM_REG_PIN_CTRL_11N 0x870 +#define DM_REG_BB_PWR_SAV1_11N 0x874 +#define DM_REG_ANTSEL_PATH_11N 0x878 +#define DM_REG_BB_3WIRE_11N 0x88C +#define DM_REG_SC_CNT_11N 0x8C4 +#define DM_REG_PSD_DATA_11N 0x8B4 +/*PAGE 9*/ +#define DM_REG_ANT_MAPPING1_11N 0x914 +#define DM_REG_ANT_MAPPING2_11N 0x918 +/*PAGE A*/ +#define DM_REG_CCK_ANTDIV_PARA1_11N 0xA00 +#define DM_REG_CCK_CCA_11N 0xA0A +#define DM_REG_CCK_ANTDIV_PARA2_11N 0xA0C +#define DM_REG_CCK_ANTDIV_PARA3_11N 0xA10 +#define DM_REG_CCK_ANTDIV_PARA4_11N 0xA14 +#define DM_REG_CCK_FILTER_PARA1_11N 0xA22 +#define DM_REG_CCK_FILTER_PARA2_11N 0xA23 +#define DM_REG_CCK_FILTER_PARA3_11N 0xA24 +#define DM_REG_CCK_FILTER_PARA4_11N 0xA25 +#define DM_REG_CCK_FILTER_PARA5_11N 0xA26 +#define DM_REG_CCK_FILTER_PARA6_11N 0xA27 +#define DM_REG_CCK_FILTER_PARA7_11N 0xA28 +#define DM_REG_CCK_FILTER_PARA8_11N 0xA29 +#define DM_REG_CCK_FA_RST_11N 0xA2C +#define DM_REG_CCK_FA_MSB_11N 0xA58 +#define DM_REG_CCK_FA_LSB_11N 0xA5C +#define DM_REG_CCK_CCA_CNT_11N 0xA60 +#define DM_REG_BB_PWR_SAV4_11N 0xA74 +/*PAGE B */ +#define DM_REG_LNA_SWITCH_11N 0xB2C +#define DM_REG_PATH_SWITCH_11N 0xB30 +#define DM_REG_RSSI_CTRL_11N 0xB38 +#define DM_REG_CONFIG_ANTA_11N 0xB68 +#define DM_REG_RSSI_BT_11N 0xB9C +/*PAGE C */ +#define DM_REG_OFDM_FA_HOLDC_11N 0xC00 +#define DM_REG_RX_PATH_11N 0xC04 +#define DM_REG_TRMUX_11N 0xC08 +#define DM_REG_OFDM_FA_RSTC_11N 0xC0C +#define DM_REG_RXIQI_MATRIX_11N 0xC14 +#define DM_REG_TXIQK_MATRIX_LSB1_11N 0xC4C +#define DM_REG_IGI_A_11N 0xC50 +#define DM_REG_ANTDIV_PARA2_11N 0xC54 +#define DM_REG_IGI_B_11N 0xC58 +#define DM_REG_ANTDIV_PARA3_11N 0xC5C +#define DM_REG_BB_PWR_SAV2_11N 0xC70 +#define DM_REG_RX_OFF_11N 0xC7C +#define DM_REG_TXIQK_MATRIXA_11N 0xC80 +#define DM_REG_TXIQK_MATRIXB_11N 0xC88 +#define DM_REG_TXIQK_MATRIXA_LSB2_11N 0xC94 +#define DM_REG_TXIQK_MATRIXB_LSB2_11N 0xC9C +#define DM_REG_RXIQK_MATRIX_LSB_11N 0xCA0 +#define DM_REG_ANTDIV_PARA1_11N 0xCA4 +#define DM_REG_OFDM_FA_TYPE1_11N 0xCF0 +/*PAGE D */ +#define DM_REG_OFDM_FA_RSTD_11N 0xD00 +#define DM_REG_OFDM_FA_TYPE2_11N 0xDA0 +#define DM_REG_OFDM_FA_TYPE3_11N 0xDA4 +#define DM_REG_OFDM_FA_TYPE4_11N 0xDA8 +/*PAGE E */ +#define DM_REG_TXAGC_A_6_18_11N 0xE00 +#define DM_REG_TXAGC_A_24_54_11N 0xE04 +#define DM_REG_TXAGC_A_1_MCS32_11N 0xE08 +#define DM_REG_TXAGC_A_MCS0_3_11N 0xE10 +#define DM_REG_TXAGC_A_MCS4_7_11N 0xE14 +#define DM_REG_TXAGC_A_MCS8_11_11N 0xE18 +#define DM_REG_TXAGC_A_MCS12_15_11N 0xE1C +#define DM_REG_FPGA0_IQK_11N 0xE28 +#define DM_REG_TXIQK_TONE_A_11N 0xE30 +#define DM_REG_RXIQK_TONE_A_11N 0xE34 +#define DM_REG_TXIQK_PI_A_11N 0xE38 +#define DM_REG_RXIQK_PI_A_11N 0xE3C +#define DM_REG_TXIQK_11N 0xE40 +#define DM_REG_RXIQK_11N 0xE44 +#define DM_REG_IQK_AGC_PTS_11N 0xE48 +#define DM_REG_IQK_AGC_RSP_11N 0xE4C +#define DM_REG_BLUETOOTH_11N 0xE6C +#define DM_REG_RX_WAIT_CCA_11N 0xE70 +#define DM_REG_TX_CCK_RFON_11N 0xE74 +#define DM_REG_TX_CCK_BBON_11N 0xE78 +#define DM_REG_OFDM_RFON_11N 0xE7C +#define DM_REG_OFDM_BBON_11N 0xE80 +#define DM_REG_TX2RX_11N 0xE84 +#define DM_REG_TX2TX_11N 0xE88 +#define DM_REG_RX_CCK_11N 0xE8C +#define DM_REG_RX_OFDM_11N 0xED0 +#define DM_REG_RX_WAIT_RIFS_11N 0xED4 +#define DM_REG_RX2RX_11N 0xED8 +#define DM_REG_STANDBY_11N 0xEDC +#define DM_REG_SLEEP_11N 0xEE0 +#define DM_REG_PMPD_ANAEN_11N 0xEEC + +/*MAC REG LIST*/ +#define DM_REG_BB_RST_11N 0x02 +#define DM_REG_ANTSEL_PIN_11N 0x4C +#define DM_REG_EARLY_MODE_11N 0x4D0 +#define DM_REG_RSSI_MONITOR_11N 0x4FE +#define DM_REG_EDCA_VO_11N 0x500 +#define DM_REG_EDCA_VI_11N 0x504 +#define DM_REG_EDCA_BE_11N 0x508 +#define DM_REG_EDCA_BK_11N 0x50C +#define DM_REG_TXPAUSE_11N 0x522 +#define DM_REG_RESP_TX_11N 0x6D8 +#define DM_REG_ANT_TRAIN_PARA1_11N 0x7b0 +#define DM_REG_ANT_TRAIN_PARA2_11N 0x7b4 + +/*DIG Related*/ +#define DM_BIT_IGI_11N 0x0000007F + +#define HAL_DM_DIG_DISABLE BIT(0) +#define HAL_DM_HIPWR_DISABLE BIT(1) + +#define OFDM_TABLE_LENGTH 43 +#define CCK_TABLE_LENGTH 33 + +#define OFDM_TABLE_SIZE 37 +#define CCK_TABLE_SIZE 33 + +#define BW_AUTO_SWITCH_HIGH_LOW 25 +#define BW_AUTO_SWITCH_LOW_HIGH 30 + +#define DM_DIG_THRESH_HIGH 40 +#define DM_DIG_THRESH_LOW 35 + +#define DM_FALSEALARM_THRESH_LOW 400 +#define DM_FALSEALARM_THRESH_HIGH 1000 + +#define DM_DIG_MAX 0x3e +#define DM_DIG_MIN 0x1e + +#define DM_DIG_MAX_AP 0x32 +#define DM_DIG_MIN_AP 0x20 + +#define DM_DIG_FA_UPPER 0x3e +#define DM_DIG_FA_LOWER 0x1e +#define DM_DIG_FA_TH0 0x200 +#define DM_DIG_FA_TH1 0x300 +#define DM_DIG_FA_TH2 0x400 + +#define DM_DIG_BACKOFF_MAX 12 +#define DM_DIG_BACKOFF_MIN -4 +#define DM_DIG_BACKOFF_DEFAULT 10 + +#define RXPATHSELECTION_DIFF_TH 18 + +#define DM_RATR_STA_INIT 0 +#define DM_RATR_STA_HIGH 1 +#define DM_RATR_STA_MIDDLE 2 +#define DM_RATR_STA_LOW 3 + +#define CTS2SELF_THVAL 30 +#define REGC38_TH 20 + +#define TXHIGHPWRLEVEL_NORMAL 0 +#define TXHIGHPWRLEVEL_LEVEL1 1 +#define TXHIGHPWRLEVEL_LEVEL2 2 +#define TXHIGHPWRLEVEL_BT1 3 +#define TXHIGHPWRLEVEL_BT2 4 + +#define DM_TYPE_BYFW 0 +#define DM_TYPE_BYDRIVER 1 + +#define TX_POWER_NEAR_FIELD_THRESH_LVL2 74 +#define TX_POWER_NEAR_FIELD_THRESH_LVL1 67 +#define TXPWRTRACK_MAX_IDX 6 + +/* Dynamic ATC switch */ +#define ATC_STATUS_OFF 0x0 /* enable */ +#define ATC_STATUS_ON 0x1 /* disable */ +#define CFO_THRESHOLD_XTAL 10 /* kHz */ +#define CFO_THRESHOLD_ATC 80 /* kHz */ + +enum FAT_STATE { + FAT_NORMAL_STATE = 0, + FAT_TRAINING_STATE = 1, +}; + +enum tag_dynamic_init_gain_operation_type_definition { + DIG_TYPE_THRESH_HIGH = 0, + DIG_TYPE_THRESH_LOW = 1, + DIG_TYPE_BACKOFF = 2, + DIG_TYPE_RX_GAIN_MIN = 3, + DIG_TYPE_RX_GAIN_MAX = 4, + DIG_TYPE_ENABLE = 5, + DIG_TYPE_DISABLE = 6, + DIG_OP_TYPE_MAX +}; + +enum dm_1r_cca_e { + CCA_1R = 0, + CCA_2R = 1, + CCA_MAX = 2, +}; + +enum dm_rf_e { + RF_SAVE = 0, + RF_NORMAL = 1, + RF_MAX = 2, +}; + +enum dm_sw_ant_switch_e { + ANS_ANTENNA_B = 1, + ANS_ANTENNA_A = 2, + ANS_ANTENNA_MAX = 3, +}; + +enum dm_dig_ext_port_alg_e { + DIG_EXT_PORT_STAGE_0 = 0, + DIG_EXT_PORT_STAGE_1 = 1, + DIG_EXT_PORT_STAGE_2 = 2, + DIG_EXT_PORT_STAGE_3 = 3, + DIG_EXT_PORT_STAGE_MAX = 4, +}; + +enum dm_dig_connect_e { + DIG_STA_DISCONNECT = 0, + DIG_STA_CONNECT = 1, + DIG_STA_BEFORE_CONNECT = 2, + DIG_MULTISTA_DISCONNECT = 3, + DIG_MULTISTA_CONNECT = 4, + DIG_CONNECT_MAX +}; + +enum pwr_track_control_method { + BBSWING, + TXAGC +}; + +#define BT_RSSI_STATE_NORMAL_POWER BIT_OFFSET_LEN_MASK_32(0, 1) +#define BT_RSSI_STATE_AMDPU_OFF BIT_OFFSET_LEN_MASK_32(1, 1) +#define BT_RSSI_STATE_SPECIAL_LOW BIT_OFFSET_LEN_MASK_32(2, 1) +#define BT_RSSI_STATE_BG_EDCA_LOW BIT_OFFSET_LEN_MASK_32(3, 1) +#define BT_RSSI_STATE_TXPOWER_LOW BIT_OFFSET_LEN_MASK_32(4, 1) + +void rtl8723be_dm_set_tx_ant_by_tx_info(struct ieee80211_hw *hw, u8 *pdesc, + u32 mac_id); +void rtl8723be_dm_ant_sel_statistics(struct ieee80211_hw *hw, u8 antsel_tr_mux, + u32 mac_id, u32 rx_pwdb_all); +void rtl8723be_dm_fast_antenna_trainning_callback(unsigned long data); +void rtl8723be_dm_init(struct ieee80211_hw *hw); +void rtl8723be_dm_watchdog(struct ieee80211_hw *hw); +void rtl8723be_dm_write_dig(struct ieee80211_hw *hw, u8 current_igi); +void rtl8723be_dm_check_txpower_tracking(struct ieee80211_hw *hw); +void rtl8723be_dm_init_rate_adaptive_mask(struct ieee80211_hw *hw); +void rtl8723be_dm_txpower_track_adjust(struct ieee80211_hw *hw, u8 type, + u8 *pdirection, u32 *poutwrite_val); +void rtl8723be_dm_init_edca_turbo(struct ieee80211_hw *hw); + +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/fw.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/fw.c @@ -0,0 +1,628 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "../pci.h" +#include "../base.h" +#include "reg.h" +#include "def.h" +#include "fw.h" +#include "../rtl8723com/fw_common.h" + +static bool _rtl8723be_check_fw_read_last_h2c(struct ieee80211_hw *hw, + u8 boxnum) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 val_hmetfr; + bool result = false; + + val_hmetfr = rtl_read_byte(rtlpriv, REG_HMETFR); + if (((val_hmetfr >> boxnum) & BIT(0)) == 0) + result = true; + return result; +} + +static void _rtl8723be_fill_h2c_command(struct ieee80211_hw *hw, u8 element_id, + u32 cmd_len, u8 *p_cmdbuffer) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 boxnum; + u16 box_reg = 0, box_extreg = 0; + u8 u1b_tmp; + bool isfw_read = false; + u8 buf_index = 0; + bool bwrite_sucess = false; + u8 wait_h2c_limit = 100; + u8 wait_writeh2c_limit = 100; + u8 boxcontent[4], boxextcontent[4]; + u32 h2c_waitcounter = 0; + unsigned long flag; + u8 idx; + + RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "come in\n"); + + while (true) { + spin_lock_irqsave(&rtlpriv->locks.h2c_lock, flag); + if (rtlhal->h2c_setinprogress) { + RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, + "H2C set in progress! Wait to set.." + "element_id(%d).\n", element_id); + + while (rtlhal->h2c_setinprogress) { + spin_unlock_irqrestore(&rtlpriv->locks.h2c_lock, + flag); + h2c_waitcounter++; + RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, + "Wait 100 us (%d times)...\n", + h2c_waitcounter); + udelay(100); + + if (h2c_waitcounter > 1000) + return; + spin_lock_irqsave(&rtlpriv->locks.h2c_lock, + flag); + } + spin_unlock_irqrestore(&rtlpriv->locks.h2c_lock, flag); + } else { + rtlhal->h2c_setinprogress = true; + spin_unlock_irqrestore(&rtlpriv->locks.h2c_lock, flag); + break; + } + } + while (!bwrite_sucess) { + wait_writeh2c_limit--; + if (wait_writeh2c_limit == 0) { + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "Write H2C fail because no trigger " + "for FW INT!\n"); + break; + } + boxnum = rtlhal->last_hmeboxnum; + switch (boxnum) { + case 0: + box_reg = REG_HMEBOX_0; + box_extreg = REG_HMEBOX_EXT_0; + break; + case 1: + box_reg = REG_HMEBOX_1; + box_extreg = REG_HMEBOX_EXT_1; + break; + case 2: + box_reg = REG_HMEBOX_2; + box_extreg = REG_HMEBOX_EXT_2; + break; + case 3: + box_reg = REG_HMEBOX_3; + box_extreg = REG_HMEBOX_EXT_3; + break; + default: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "switch case not processed\n"); + break; + } + isfw_read = _rtl8723be_check_fw_read_last_h2c(hw, boxnum); + while (!isfw_read) { + wait_h2c_limit--; + if (wait_h2c_limit == 0) { + RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, + "Wating too long for FW read " + "clear HMEBox(%d)!\n", boxnum); + break; + } + udelay(10); + + isfw_read = _rtl8723be_check_fw_read_last_h2c(hw, + boxnum); + u1b_tmp = rtl_read_byte(rtlpriv, 0x130); + RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, + "Wating for FW read clear HMEBox(%d)!!! 0x130 = %2x\n", + boxnum, u1b_tmp); + } + if (!isfw_read) { + RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, + "Write H2C register BOX[%d] fail!!!!! " + "Fw do not read.\n", boxnum); + break; + } + memset(boxcontent, 0, sizeof(boxcontent)); + memset(boxextcontent, 0, sizeof(boxextcontent)); + boxcontent[0] = element_id; + RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, + "Write element_id box_reg(%4x) = %2x\n", + box_reg, element_id); + + switch (cmd_len) { + case 1: + case 2: + case 3: + /*boxcontent[0] &= ~(BIT(7));*/ + memcpy((u8 *)(boxcontent) + 1, + p_cmdbuffer + buf_index, cmd_len); + + for (idx = 0; idx < 4; idx++) { + rtl_write_byte(rtlpriv, box_reg + idx, + boxcontent[idx]); + } + break; + case 4: + case 5: + case 6: + case 7: + /*boxcontent[0] |= (BIT(7));*/ + memcpy((u8 *)(boxextcontent), + p_cmdbuffer + buf_index+3, cmd_len-3); + memcpy((u8 *)(boxcontent) + 1, + p_cmdbuffer + buf_index, 3); + + for (idx = 0; idx < 4; idx++) { + rtl_write_byte(rtlpriv, box_extreg + idx, + boxextcontent[idx]); + } + for (idx = 0; idx < 4; idx++) { + rtl_write_byte(rtlpriv, box_reg + idx, + boxcontent[idx]); + } + break; + default: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "switch case not process\n"); + break; + } + bwrite_sucess = true; + + rtlhal->last_hmeboxnum = boxnum + 1; + if (rtlhal->last_hmeboxnum == 4) + rtlhal->last_hmeboxnum = 0; + + RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, + "pHalData->last_hmeboxnum = %d\n", + rtlhal->last_hmeboxnum); + } + if (!rtlpriv) { + pr_err("rtlpriv bad\n"); + return; + } + if (!rtlhal) { + pr_err("rtlhal bad\n"); + return; + } + spin_lock_irqsave(&rtlpriv->locks.h2c_lock, flag); + rtlhal->h2c_setinprogress = false; + spin_unlock_irqrestore(&rtlpriv->locks.h2c_lock, flag); + + RT_TRACE(rtlpriv, COMP_CMD, DBG_LOUD, "go out\n"); +} + +void rtl8723be_fill_h2c_cmd(struct ieee80211_hw *hw, u8 element_id, + u32 cmd_len, u8 *p_cmdbuffer) +{ + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u32 tmp_cmdbuf[2]; + + if (!rtlhal->fw_ready) { + RT_ASSERT(false, + "return H2C cmd because of Fw download fail!!!\n"); + return; + } + memset(tmp_cmdbuf, 0, 8); + memcpy(tmp_cmdbuf, p_cmdbuffer, cmd_len); + _rtl8723be_fill_h2c_command(hw, element_id, cmd_len, + (u8 *)&tmp_cmdbuf); + return; +} + +void rtl8723be_set_fw_pwrmode_cmd(struct ieee80211_hw *hw, u8 mode) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 u1_h2c_set_pwrmode[H2C_8723BE_PWEMODE_LENGTH] = { 0 }; + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + u8 rlbm, power_state = 0; + RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, "FW LPS mode = %d\n", mode); + + SET_H2CCMD_PWRMODE_PARM_MODE(u1_h2c_set_pwrmode, ((mode) ? 1 : 0)); + rlbm = 0;/*YJ, temp, 120316. FW now not support RLBM = 2.*/ + SET_H2CCMD_PWRMODE_PARM_RLBM(u1_h2c_set_pwrmode, rlbm); + SET_H2CCMD_PWRMODE_PARM_SMART_PS(u1_h2c_set_pwrmode, + (rtlpriv->mac80211.p2p) ? + ppsc->smart_ps : 1); + SET_H2CCMD_PWRMODE_PARM_AWAKE_INTERVAL(u1_h2c_set_pwrmode, + ppsc->reg_max_lps_awakeintvl); + SET_H2CCMD_PWRMODE_PARM_ALL_QUEUE_UAPSD(u1_h2c_set_pwrmode, 0); + if (mode == FW_PS_ACTIVE_MODE) + power_state |= FW_PWR_STATE_ACTIVE; + else + power_state |= FW_PWR_STATE_RF_OFF; + SET_H2CCMD_PWRMODE_PARM_PWR_STATE(u1_h2c_set_pwrmode, power_state); + + RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG, + "rtl92c_set_fw_pwrmode(): u1_h2c_set_pwrmode\n", + u1_h2c_set_pwrmode, H2C_8723BE_PWEMODE_LENGTH); + rtl8723be_fill_h2c_cmd(hw, H2C_8723BE_SETPWRMODE, + H2C_8723BE_PWEMODE_LENGTH, + u1_h2c_set_pwrmode); +} + +static bool _rtl8723be_cmd_send_packet(struct ieee80211_hw *hw, + struct sk_buff *skb) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl8192_tx_ring *ring; + struct rtl_tx_desc *pdesc; + struct sk_buff *pskb = NULL; + u8 own; + unsigned long flags; + + ring = &rtlpci->tx_ring[BEACON_QUEUE]; + + pskb = __skb_dequeue(&ring->queue); + if (pskb) + kfree_skb(pskb); + + spin_lock_irqsave(&rtlpriv->locks.irq_th_lock, flags); + + pdesc = &ring->desc[0]; + own = (u8) rtlpriv->cfg->ops->get_desc((u8 *)pdesc, true, HW_DESC_OWN); + + rtlpriv->cfg->ops->fill_tx_cmddesc(hw, (u8 *)pdesc, 1, 1, skb); + + __skb_queue_tail(&ring->queue, skb); + + spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags); + + rtlpriv->cfg->ops->tx_polling(hw, BEACON_QUEUE); + + return true; +} +#define BEACON_PG 0 /* ->1 */ +#define PSPOLL_PG 2 +#define NULL_PG 3 +#define PROBERSP_PG 4 /* ->5 */ + +#define TOTAL_RESERVED_PKT_LEN 768 + +static u8 reserved_page_packet[TOTAL_RESERVED_PKT_LEN] = { + /* page 0 beacon */ + 0x80, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x00, 0xE0, 0x4C, 0x02, 0xB1, 0x78, + 0xEC, 0x1A, 0x59, 0x0B, 0xAD, 0xD4, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x10, 0x04, 0x00, 0x05, 0x54, 0x65, + 0x73, 0x74, 0x32, 0x01, 0x08, 0x82, 0x84, 0x0B, + 0x16, 0x24, 0x30, 0x48, 0x6C, 0x03, 0x01, 0x06, + 0x06, 0x02, 0x00, 0x00, 0x2A, 0x01, 0x02, 0x32, + 0x04, 0x0C, 0x12, 0x18, 0x60, 0x2D, 0x1A, 0x6C, + 0x09, 0x03, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3D, 0x00, 0xDD, 0x07, 0x00, 0xE0, 0x4C, + 0x02, 0x02, 0x00, 0x00, 0xDD, 0x18, 0x00, 0x50, + 0xF2, 0x01, 0x01, 0x00, 0x00, 0x50, 0xF2, 0x04, + 0x01, 0x00, 0x00, 0x50, 0xF2, 0x04, 0x01, 0x00, + + /* page 1 beacon */ + 0x00, 0x50, 0xF2, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x28, 0x8C, 0x00, 0x12, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + /* page 2 ps-poll */ + 0xA4, 0x10, 0x01, 0xC0, 0xEC, 0x1A, 0x59, 0x0B, + 0xAD, 0xD4, 0x00, 0xE0, 0x4C, 0x02, 0xB1, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x28, 0x8C, 0x00, 0x12, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + /* page 3 null */ + 0x48, 0x01, 0x00, 0x00, 0xEC, 0x1A, 0x59, 0x0B, + 0xAD, 0xD4, 0x00, 0xE0, 0x4C, 0x02, 0xB1, 0x78, + 0xEC, 0x1A, 0x59, 0x0B, 0xAD, 0xD4, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x72, 0x00, 0x28, 0x8C, 0x00, 0x12, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + /* page 4 probe_resp */ + 0x50, 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x10, + 0x00, 0x03, 0x00, 0xE0, 0x4C, 0x76, 0x00, 0x42, + 0x00, 0x40, 0x10, 0x10, 0x00, 0x03, 0x00, 0x00, + 0x9E, 0x46, 0x15, 0x32, 0x27, 0xF2, 0x2D, 0x00, + 0x64, 0x00, 0x00, 0x04, 0x00, 0x0C, 0x6C, 0x69, + 0x6E, 0x6B, 0x73, 0x79, 0x73, 0x5F, 0x77, 0x6C, + 0x61, 0x6E, 0x01, 0x04, 0x82, 0x84, 0x8B, 0x96, + 0x03, 0x01, 0x01, 0x06, 0x02, 0x00, 0x00, 0x2A, + 0x01, 0x00, 0x32, 0x08, 0x24, 0x30, 0x48, 0x6C, + 0x0C, 0x12, 0x18, 0x60, 0x2D, 0x1A, 0x6C, 0x18, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3D, 0x00, 0xDD, 0x06, 0x00, 0xE0, 0x4C, 0x02, + 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + /* page 5 probe_resp */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +void rtl8723be_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, + bool dl_finished) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct sk_buff *skb = NULL; + + u32 totalpacketlen; + bool rtstatus; + u8 u1rsvdpageloc[5] = { 0 }; + bool dlok = false; + + u8 *beacon; + u8 *p_pspoll; + u8 *nullfunc; + u8 *p_probersp; + /*--------------------------------------------------------- + * (1) beacon + *--------------------------------------------------------- + */ + beacon = &reserved_page_packet[BEACON_PG * 128]; + SET_80211_HDR_ADDRESS2(beacon, mac->mac_addr); + SET_80211_HDR_ADDRESS3(beacon, mac->bssid); + + /*------------------------------------------------------- + * (2) ps-poll + *------------------------------------------------------- + */ + p_pspoll = &reserved_page_packet[PSPOLL_PG * 128]; + SET_80211_PS_POLL_AID(p_pspoll, (mac->assoc_id | 0xc000)); + SET_80211_PS_POLL_BSSID(p_pspoll, mac->bssid); + SET_80211_PS_POLL_TA(p_pspoll, mac->mac_addr); + + SET_H2CCMD_RSVDPAGE_LOC_PSPOLL(u1rsvdpageloc, PSPOLL_PG); + + /*-------------------------------------------------------- + * (3) null data + *-------------------------------------------------------- + */ + nullfunc = &reserved_page_packet[NULL_PG * 128]; + SET_80211_HDR_ADDRESS1(nullfunc, mac->bssid); + SET_80211_HDR_ADDRESS2(nullfunc, mac->mac_addr); + SET_80211_HDR_ADDRESS3(nullfunc, mac->bssid); + + SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(u1rsvdpageloc, NULL_PG); + + /*--------------------------------------------------------- + * (4) probe response + *--------------------------------------------------------- + */ + p_probersp = &reserved_page_packet[PROBERSP_PG * 128]; + SET_80211_HDR_ADDRESS1(p_probersp, mac->bssid); + SET_80211_HDR_ADDRESS2(p_probersp, mac->mac_addr); + SET_80211_HDR_ADDRESS3(p_probersp, mac->bssid); + + SET_H2CCMD_RSVDPAGE_LOC_PROBE_RSP(u1rsvdpageloc, PROBERSP_PG); + + totalpacketlen = TOTAL_RESERVED_PKT_LEN; + + RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD, + "rtl8723be_set_fw_rsvdpagepkt(): " + "HW_VAR_SET_TX_CMD: ALL\n", + &reserved_page_packet[0], totalpacketlen); + RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG, + "rtl8723be_set_fw_rsvdpagepkt(): " + "HW_VAR_SET_TX_CMD: ALL\n", u1rsvdpageloc, 3); + + + skb = dev_alloc_skb(totalpacketlen); + memcpy((u8 *)skb_put(skb, totalpacketlen), + &reserved_page_packet, totalpacketlen); + + rtstatus = _rtl8723be_cmd_send_packet(hw, skb); + + if (rtstatus) + dlok = true; + + if (dlok) { + RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, + "Set RSVD page location to Fw.\n"); + RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG, "H2C_RSVDPAGE:\n", + u1rsvdpageloc, 3); + rtl8723be_fill_h2c_cmd(hw, H2C_8723BE_RSVDPAGE, + sizeof(u1rsvdpageloc), u1rsvdpageloc); + } else { + RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, + "Set RSVD page location to Fw FAIL!!!!!!.\n"); + } +} + +/*Should check FW support p2p or not.*/ +static void rtl8723be_set_p2p_ctw_period_cmd(struct ieee80211_hw *hw, + u8 ctwindow) +{ + u8 u1_ctwindow_period[1] = {ctwindow}; + + rtl8723be_fill_h2c_cmd(hw, H2C_8723BE_P2P_PS_CTW_CMD, 1, + u1_ctwindow_period); +} + +void rtl8723be_set_p2p_ps_offload_cmd(struct ieee80211_hw *hw, + u8 p2p_ps_state) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *rtlps = rtl_psc(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_p2p_ps_info *p2pinfo = &(rtlps->p2p_ps_info); + struct p2p_ps_offload_t *p2p_ps_offload = &rtlhal->p2p_ps_offload; + u8 i; + u16 ctwindow; + u32 start_time, tsf_low; + + switch (p2p_ps_state) { + case P2P_PS_DISABLE: + RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD, "P2P_PS_DISABLE\n"); + memset(p2p_ps_offload, 0, sizeof(struct p2p_ps_offload_t)); + break; + case P2P_PS_ENABLE: + RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD, "P2P_PS_ENABLE\n"); + /* update CTWindow value. */ + if (p2pinfo->ctwindow > 0) { + p2p_ps_offload->ctwindow_en = 1; + ctwindow = p2pinfo->ctwindow; + rtl8723be_set_p2p_ctw_period_cmd(hw, ctwindow); + } + /* hw only support 2 set of NoA */ + for (i = 0; i < p2pinfo->noa_num; i++) { + /* To control the register setting + * for which NOA + */ + rtl_write_byte(rtlpriv, 0x5cf, (i << 4)); + if (i == 0) + p2p_ps_offload->noa0_en = 1; + else + p2p_ps_offload->noa1_en = 1; + + /* config P2P NoA Descriptor Register */ + rtl_write_dword(rtlpriv, 0x5E0, + p2pinfo->noa_duration[i]); + rtl_write_dword(rtlpriv, 0x5E4, + p2pinfo->noa_interval[i]); + + /*Get Current TSF value */ + tsf_low = rtl_read_dword(rtlpriv, REG_TSFTR); + + start_time = p2pinfo->noa_start_time[i]; + if (p2pinfo->noa_count_type[i] != 1) { + while (start_time <= (tsf_low + (50 * 1024))) { + start_time += p2pinfo->noa_interval[i]; + if (p2pinfo->noa_count_type[i] != 255) + p2pinfo->noa_count_type[i]--; + } + } + rtl_write_dword(rtlpriv, 0x5E8, start_time); + rtl_write_dword(rtlpriv, 0x5EC, + p2pinfo->noa_count_type[i]); + } + if ((p2pinfo->opp_ps == 1) || + (p2pinfo->noa_num > 0)) { + /* rst p2p circuit */ + rtl_write_byte(rtlpriv, REG_DUAL_TSF_RST, BIT(4)); + + p2p_ps_offload->offload_en = 1; + + if (P2P_ROLE_GO == rtlpriv->mac80211.p2p) { + p2p_ps_offload->role = 1; + p2p_ps_offload->allstasleep = 0; + } else { + p2p_ps_offload->role = 0; + } + p2p_ps_offload->discovery = 0; + } + break; + case P2P_PS_SCAN: + RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD, "P2P_PS_SCAN\n"); + p2p_ps_offload->discovery = 1; + break; + case P2P_PS_SCAN_DONE: + RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD, "P2P_PS_SCAN_DONE\n"); + p2p_ps_offload->discovery = 0; + p2pinfo->p2p_ps_state = P2P_PS_ENABLE; + break; + default: + break; + } + rtl8723be_fill_h2c_cmd(hw, H2C_8723BE_P2P_PS_OFFLOAD, 1, + (u8 *)p2p_ps_offload); +} + +void rtl8723be_set_fw_joinbss_report_cmd(struct ieee80211_hw *hw, u8 mstatus) +{ + u8 u1_joinbssrpt_parm[1] = { 0 }; + + SET_H2CCMD_JOINBSSRPT_PARM_OPMODE(u1_joinbssrpt_parm, mstatus); + + rtl8723be_fill_h2c_cmd(hw, H2C_8723BE_JOINBSSRPT, 1, + u1_joinbssrpt_parm); +} + +void rtl8723be_set_fw_ap_off_load_cmd(struct ieee80211_hw *hw, + u8 ap_offload_enable) +{ + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + u8 u1_apoffload_parm[H2C_8723BE_AP_OFFLOAD_LENGTH] = { 0 }; + + SET_H2CCMD_AP_OFFLOAD_ON(u1_apoffload_parm, ap_offload_enable); + SET_H2CCMD_AP_OFFLOAD_HIDDEN(u1_apoffload_parm, mac->hiddenssid); + SET_H2CCMD_AP_OFFLOAD_DENYANY(u1_apoffload_parm, 0); + + rtl8723be_fill_h2c_cmd(hw, H2C_8723BE_AP_OFFLOAD, + H2C_8723BE_AP_OFFLOAD_LENGTH, u1_apoffload_parm); +} --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/fw.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/fw.h @@ -0,0 +1,248 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8723BE__FW__H__ +#define __RTL8723BE__FW__H__ + +#define FW_8192C_SIZE 0x8000 +#define FW_8192C_START_ADDRESS 0x1000 +#define FW_8192C_END_ADDRESS 0x5FFF +#define FW_8192C_PAGE_SIZE 4096 +#define FW_8192C_POLLING_DELAY 5 +#define FW_8192C_POLLING_TIMEOUT_COUNT 6000 + +#define IS_FW_HEADER_EXIST(_pfwhdr) \ + ((_pfwhdr->signature&0xFFF0) == 0x5300) +#define USE_OLD_WOWLAN_DEBUG_FW 0 + +#define H2C_8723BE_RSVDPAGE_LOC_LEN 5 +#define H2C_8723BE_PWEMODE_LENGTH 5 +#define H2C_8723BE_JOINBSSRPT_LENGTH 1 +#define H2C_8723BE_AP_OFFLOAD_LENGTH 3 +#define H2C_8723BE_WOWLAN_LENGTH 3 +#define H2C_8723BE_KEEP_ALIVE_CTRL_LENGTH 3 +#if (USE_OLD_WOWLAN_DEBUG_FW == 0) +#define H2C_8723BE_REMOTE_WAKE_CTRL_LEN 1 +#else +#define H2C_8723BE_REMOTE_WAKE_CTRL_LEN 3 +#endif +#define H2C_8723BE_AOAC_GLOBAL_INFO_LEN 2 +#define H2C_8723BE_AOAC_RSVDPAGE_LOC_LEN 7 + + +/* Fw PS state for RPWM. +*BIT[2:0] = HW state +*BIT[3] = Protocol PS state, 1: register active state , 0: register sleep state +*BIT[4] = sub-state +*/ +#define FW_PS_GO_ON BIT(0) +#define FW_PS_TX_NULL BIT(1) +#define FW_PS_RF_ON BIT(2) +#define FW_PS_REGISTER_ACTIVE BIT(3) + +#define FW_PS_DPS BIT(0) +#define FW_PS_LCLK (FW_PS_DPS) +#define FW_PS_RF_OFF BIT(1) +#define FW_PS_ALL_ON BIT(2) +#define FW_PS_ST_ACTIVE BIT(3) +#define FW_PS_ISR_ENABLE BIT(4) +#define FW_PS_IMR_ENABLE BIT(5) + + +#define FW_PS_ACK BIT(6) +#define FW_PS_TOGGLE BIT(7) + + /* 88E RPWM value*/ + /* BIT[0] = 1: 32k, 0: 40M*/ +#define FW_PS_CLOCK_OFF BIT(0) /* 32k*/ +#define FW_PS_CLOCK_ON 0 /*40M*/ + +#define FW_PS_STATE_MASK (0x0F) +#define FW_PS_STATE_HW_MASK (0x07) +/*ISR_ENABLE, IMR_ENABLE, and PS mode should be inherited.*/ +#define FW_PS_STATE_INT_MASK (0x3F) + +#define FW_PS_STATE(x) (FW_PS_STATE_MASK & (x)) +#define FW_PS_STATE_HW(x) (FW_PS_STATE_HW_MASK & (x)) +#define FW_PS_STATE_INT(x) (FW_PS_STATE_INT_MASK & (x)) +#define FW_PS_ISR_VAL(x) ((x) & 0x70) +#define FW_PS_IMR_MASK(x) ((x) & 0xDF) +#define FW_PS_KEEP_IMR(x) ((x) & 0x20) + + +#define FW_PS_STATE_S0 (FW_PS_DPS) +#define FW_PS_STATE_S1 (FW_PS_LCLK) +#define FW_PS_STATE_S2 (FW_PS_RF_OFF) +#define FW_PS_STATE_S3 (FW_PS_ALL_ON) +#define FW_PS_STATE_S4 ((FW_PS_ST_ACTIVE) | (FW_PS_ALL_ON)) + +/* ((FW_PS_RF_ON) | (FW_PS_REGISTER_ACTIVE))*/ +#define FW_PS_STATE_ALL_ON_88E (FW_PS_CLOCK_ON) +/* (FW_PS_RF_ON)*/ +#define FW_PS_STATE_RF_ON_88E (FW_PS_CLOCK_ON) +/* 0x0*/ +#define FW_PS_STATE_RF_OFF_88E (FW_PS_CLOCK_ON) +/* (FW_PS_STATE_RF_OFF)*/ +#define FW_PS_STATE_RF_OFF_LOW_PWR_88E (FW_PS_CLOCK_OFF) + +#define FW_PS_STATE_ALL_ON_92C (FW_PS_STATE_S4) +#define FW_PS_STATE_RF_ON_92C (FW_PS_STATE_S3) +#define FW_PS_STATE_RF_OFF_92C (FW_PS_STATE_S2) +#define FW_PS_STATE_RF_OFF_LOW_PWR_92C (FW_PS_STATE_S1) + + +/* For 88E H2C PwrMode Cmd ID 5.*/ +#define FW_PWR_STATE_ACTIVE ((FW_PS_RF_ON) | (FW_PS_REGISTER_ACTIVE)) +#define FW_PWR_STATE_RF_OFF 0 + +#define FW_PS_IS_ACK(x) ((x) & FW_PS_ACK) +#define FW_PS_IS_CLK_ON(x) ((x) & (FW_PS_RF_OFF | FW_PS_ALL_ON)) +#define FW_PS_IS_RF_ON(x) ((x) & (FW_PS_ALL_ON)) +#define FW_PS_IS_ACTIVE(x) ((x) & (FW_PS_ST_ACTIVE)) +#define FW_PS_IS_CPWM_INT(x) ((x) & 0x40) + +#define FW_CLR_PS_STATE(x) ((x) = ((x) & (0xF0))) + +#define IS_IN_LOW_POWER_STATE_88E(fwpsstate) \ + (FW_PS_STATE(fwpsstate) == FW_PS_CLOCK_OFF) + +#define FW_PWR_STATE_ACTIVE ((FW_PS_RF_ON) | (FW_PS_REGISTER_ACTIVE)) +#define FW_PWR_STATE_RF_OFF 0 + +#define pagenum_128(_len) (u32)(((_len)>>7) + ((_len)&0x7F ? 1 : 0)) + +#define SET_88E_H2CCMD_WOWLAN_FUNC_ENABLE(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 0, 1, __val) +#define SET_88E_H2CCMD_WOWLAN_PATTERN_MATCH_ENABLE(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 1, 1, __val) +#define SET_88E_H2CCMD_WOWLAN_MAGIC_PKT_ENABLE(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 2, 1, __val) +#define SET_88E_H2CCMD_WOWLAN_UNICAST_PKT_ENABLE(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 3, 1, __val) +#define SET_88E_H2CCMD_WOWLAN_ALL_PKT_DROP(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 4, 1, __val) +#define SET_88E_H2CCMD_WOWLAN_GPIO_ACTIVE(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 5, 1, __val) +#define SET_88E_H2CCMD_WOWLAN_REKEY_WAKE_UP(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 6, 1, __val) +#define SET_88E_H2CCMD_WOWLAN_DISCONNECT_WAKE_UP(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 7, 1, __val) +#define SET_88E_H2CCMD_WOWLAN_GPIONUM(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+1, 0, 8, __val) +#define SET_88E_H2CCMD_WOWLAN_GPIO_DURATION(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+2, 0, 8, __val) + + +#define SET_H2CCMD_PWRMODE_PARM_MODE(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 0, 8, __val) +#define SET_H2CCMD_PWRMODE_PARM_RLBM(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+1, 0, 4, __val) +#define SET_H2CCMD_PWRMODE_PARM_SMART_PS(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+1, 4, 4, __val) +#define SET_H2CCMD_PWRMODE_PARM_AWAKE_INTERVAL(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+2, 0, 8, __val) +#define SET_H2CCMD_PWRMODE_PARM_ALL_QUEUE_UAPSD(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+3, 0, 8, __val) +#define SET_H2CCMD_PWRMODE_PARM_PWR_STATE(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+4, 0, 8, __val) +#define GET_88E_H2CCMD_PWRMODE_PARM_MODE(__ph2ccmd) \ + LE_BITS_TO_1BYTE(__ph2ccmd, 0, 8) + +#define SET_H2CCMD_JOINBSSRPT_PARM_OPMODE(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 0, 8, __val) +#define SET_H2CCMD_RSVDPAGE_LOC_PROBE_RSP(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 0, 8, __val) +#define SET_H2CCMD_RSVDPAGE_LOC_PSPOLL(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+1, 0, 8, __val) +#define SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+2, 0, 8, __val) + +/* AP_OFFLOAD */ +#define SET_H2CCMD_AP_OFFLOAD_ON(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 0, 8, __val) +#define SET_H2CCMD_AP_OFFLOAD_HIDDEN(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+1, 0, 8, __val) +#define SET_H2CCMD_AP_OFFLOAD_DENYANY(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+2, 0, 8, __val) +#define SET_H2CCMD_AP_OFFLOAD_WAKEUP_EVT_RPT(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+3, 0, 8, __val) + +/* Keep Alive Control*/ +#define SET_88E_H2CCMD_KEEP_ALIVE_ENABLE(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 0, 1, __val) +#define SET_88E_H2CCMD_KEEP_ALIVE_ACCPEPT_USER_DEFINED(__ph2ccmd, __val)\ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 1, 1, __val) +#define SET_88E_H2CCMD_KEEP_ALIVE_PERIOD(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+1, 0, 8, __val) + +/*REMOTE_WAKE_CTRL */ +#define SET_88E_H2CCMD_REMOTE_WAKE_CTRL_EN(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 0, 1, __val) +#if (USE_OLD_WOWLAN_DEBUG_FW == 0) +#define SET_88E_H2CCMD_REMOTE_WAKE_CTRL_ARP_OFFLOAD_EN(__ph2ccmd, __val)\ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 1, 1, __val) +#define SET_88E_H2CCMD_REMOTE_WAKE_CTRL_NDP_OFFLOAD_EN(__ph2ccmd, __val)\ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 2, 1, __val) +#define SET_88E_H2CCMD_REMOTE_WAKE_CTRL_GTK_OFFLOAD_EN(__ph2ccmd, __val)\ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 3, 1, __val) +#else +#define SET_88E_H2CCMD_REMOTE_WAKE_CTRL_PAIRWISE_ENC_ALG(__ph2ccmd, __val)\ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+1, 0, 8, __val) +#define SET_88E_H2CCMD_REMOTE_WAKE_CTRL_GROUP_ENC_ALG(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+2, 0, 8, __val) +#endif + +/* GTK_OFFLOAD */ +#define SET_88E_H2CCMD_AOAC_GLOBAL_INFO_PAIRWISE_ENC_ALG(__ph2ccmd, __val)\ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 0, 8, __val) +#define SET_88E_H2CCMD_AOAC_GLOBAL_INFO_GROUP_ENC_ALG(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+1, 0, 8, __val) + +/* AOAC_RSVDPAGE_LOC */ +#define SET_88E_H2CCMD_AOAC_RSVDPAGE_LOC_REM_WAKE_CTRL_INFO(__ph2ccmd, __val)\ + SET_BITS_TO_LE_1BYTE((__ph2ccmd), 0, 8, __val) +#define SET_88E_H2CCMD_AOAC_RSVDPAGE_LOC_ARP_RSP(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+1, 0, 8, __val) +#define SET_88E_H2CCMD_AOAC_RSVDPAGE_LOC_NEIGHBOR_ADV(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+2, 0, 8, __val) +#define SET_88E_H2CCMD_AOAC_RSVDPAGE_LOC_GTK_RSP(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+3, 0, 8, __val) +#define SET_88E_H2CCMD_AOAC_RSVDPAGE_LOC_GTK_INFO(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+4, 0, 8, __val) + +void rtl8723be_set_fw_pwrmode_cmd(struct ieee80211_hw *hw, u8 mode); +void rtl8723be_set_fw_ap_off_load_cmd(struct ieee80211_hw *hw, + u8 ap_offload_enable); +void rtl8723be_fill_h2c_cmd(struct ieee80211_hw *hw, u8 element_id, + u32 cmd_len, u8 *p_cmdbuffer); +void rtl8723be_firmware_selfreset(struct ieee80211_hw *hw); +void rtl8723be_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, + bool dl_finished); +void rtl8723be_set_fw_joinbss_report_cmd(struct ieee80211_hw *hw, u8 mstatus); +int rtl8723be_download_fw(struct ieee80211_hw *hw, + bool buse_wake_on_wlan_fw); +void rtl8723be_set_p2p_ps_offload_cmd(struct ieee80211_hw *hw, + u8 p2p_ps_state); + +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/hw.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/hw.c @@ -0,0 +1,2529 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "../efuse.h" +#include "../base.h" +#include "../regd.h" +#include "../cam.h" +#include "../ps.h" +#include "../pci.h" +#include "reg.h" +#include "def.h" +#include "phy.h" +#include "dm.h" +#include "../rtl8723com/dm_common.h" +#include "fw.h" +#include "../rtl8723com/fw_common.h" +#include "led.h" +#include "hw.h" +#include "pwrseqcmd.h" +#include "pwrseq.h" +#include "../btcoexist/rtl_btc.h" + +#define LLT_CONFIG 5 + +static void _rtl8723be_return_beacon_queue_skb(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[BEACON_QUEUE]; + + while (skb_queue_len(&ring->queue)) { + struct rtl_tx_desc *entry = &ring->desc[ring->idx]; + struct sk_buff *skb = __skb_dequeue(&ring->queue); + + pci_unmap_single(rtlpci->pdev, + rtlpriv->cfg->ops->get_desc( + (u8 *)entry, true, HW_DESC_TXBUFF_ADDR), + skb->len, PCI_DMA_TODEVICE); + kfree_skb(skb); + ring->idx = (ring->idx + 1) % ring->entries; + } +} + +static void _rtl8723be_set_bcn_ctrl_reg(struct ieee80211_hw *hw, + u8 set_bits, u8 clear_bits) +{ + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtlpci->reg_bcn_ctrl_val |= set_bits; + rtlpci->reg_bcn_ctrl_val &= ~clear_bits; + + rtl_write_byte(rtlpriv, REG_BCN_CTRL, (u8) rtlpci->reg_bcn_ctrl_val); +} + +static void _rtl8723be_stop_tx_beacon(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 tmp1byte; + + tmp1byte = rtl_read_byte(rtlpriv, REG_FWHW_TXQ_CTRL + 2); + rtl_write_byte(rtlpriv, REG_FWHW_TXQ_CTRL + 2, tmp1byte & (~BIT(6))); + rtl_write_byte(rtlpriv, REG_TBTT_PROHIBIT + 1, 0x64); + tmp1byte = rtl_read_byte(rtlpriv, REG_TBTT_PROHIBIT + 2); + tmp1byte &= ~(BIT(0)); + rtl_write_byte(rtlpriv, REG_TBTT_PROHIBIT + 2, tmp1byte); +} + +static void _rtl8723be_resume_tx_beacon(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 tmp1byte; + + tmp1byte = rtl_read_byte(rtlpriv, REG_FWHW_TXQ_CTRL + 2); + rtl_write_byte(rtlpriv, REG_FWHW_TXQ_CTRL + 2, tmp1byte | BIT(6)); + rtl_write_byte(rtlpriv, REG_TBTT_PROHIBIT + 1, 0xff); + tmp1byte = rtl_read_byte(rtlpriv, REG_TBTT_PROHIBIT + 2); + tmp1byte |= BIT(1); + rtl_write_byte(rtlpriv, REG_TBTT_PROHIBIT + 2, tmp1byte); +} + +static void _rtl8723be_enable_bcn_sub_func(struct ieee80211_hw *hw) +{ + _rtl8723be_set_bcn_ctrl_reg(hw, 0, BIT(1)); +} + +static void _rtl8723be_disable_bcn_sub_func(struct ieee80211_hw *hw) +{ + _rtl8723be_set_bcn_ctrl_reg(hw, BIT(1), 0); +} + +static void _rtl8723be_set_fw_clock_on(struct ieee80211_hw *hw, u8 rpwm_val, + bool need_turn_off_ckk) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + bool support_remote_wake_up; + u32 count = 0, isr_regaddr, content; + bool schedule_timer = need_turn_off_ckk; + rtlpriv->cfg->ops->get_hw_reg(hw, HAL_DEF_WOWLAN, + (u8 *)(&support_remote_wake_up)); + + if (!rtlhal->fw_ready) + return; + if (!rtlpriv->psc.fw_current_inpsmode) + return; + + while (1) { + spin_lock_bh(&rtlpriv->locks.fw_ps_lock); + if (rtlhal->fw_clk_change_in_progress) { + while (rtlhal->fw_clk_change_in_progress) { + spin_unlock_bh(&rtlpriv->locks.fw_ps_lock); + count++; + udelay(100); + if (count > 1000) + return; + spin_lock_bh(&rtlpriv->locks.fw_ps_lock); + } + spin_unlock_bh(&rtlpriv->locks.fw_ps_lock); + } else { + rtlhal->fw_clk_change_in_progress = false; + spin_unlock_bh(&rtlpriv->locks.fw_ps_lock); + break; + } + } + if (IS_IN_LOW_POWER_STATE_88E(rtlhal->fw_ps_state)) { + rtlpriv->cfg->ops->get_hw_reg(hw, HW_VAR_SET_RPWM, + (u8 *)(&rpwm_val)); + if (FW_PS_IS_ACK(rpwm_val)) { + isr_regaddr = REG_HISR; + content = rtl_read_dword(rtlpriv, isr_regaddr); + while (!(content & IMR_CPWM) && (count < 500)) { + udelay(50); + count++; + content = rtl_read_dword(rtlpriv, isr_regaddr); + } + + if (content & IMR_CPWM) { + rtl_write_word(rtlpriv, isr_regaddr, 0x0100); + rtlhal->fw_ps_state = FW_PS_STATE_RF_ON_88E; + RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, + "Receive CPWM INT!!! Set " + "pHalData->FwPSState = %X\n", + rtlhal->fw_ps_state); + } + } + spin_lock_bh(&rtlpriv->locks.fw_ps_lock); + rtlhal->fw_clk_change_in_progress = false; + spin_unlock_bh(&rtlpriv->locks.fw_ps_lock); + if (schedule_timer) { + mod_timer(&rtlpriv->works.fw_clockoff_timer, + jiffies + MSECS(10)); + } + } else { + spin_lock_bh(&rtlpriv->locks.fw_ps_lock); + rtlhal->fw_clk_change_in_progress = false; + spin_unlock_bh(&rtlpriv->locks.fw_ps_lock); + } +} + +static void _rtl8723be_set_fw_clock_off(struct ieee80211_hw *hw, u8 rpwm_val) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl8192_tx_ring *ring; + enum rf_pwrstate rtstate; + bool schedule_timer = false; + u8 queue; + + if (!rtlhal->fw_ready) + return; + if (!rtlpriv->psc.fw_current_inpsmode) + return; + if (!rtlhal->allow_sw_to_change_hwclc) + return; + rtlpriv->cfg->ops->get_hw_reg(hw, HW_VAR_RF_STATE, (u8 *)(&rtstate)); + if (rtstate == ERFOFF || rtlpriv->psc.inactive_pwrstate == ERFOFF) + return; + + for (queue = 0; queue < RTL_PCI_MAX_TX_QUEUE_COUNT; queue++) { + ring = &rtlpci->tx_ring[queue]; + if (skb_queue_len(&ring->queue)) { + schedule_timer = true; + break; + } + } + if (schedule_timer) { + mod_timer(&rtlpriv->works.fw_clockoff_timer, + jiffies + MSECS(10)); + return; + } + if (FW_PS_STATE(rtlhal->fw_ps_state) != + FW_PS_STATE_RF_OFF_LOW_PWR_88E) { + spin_lock_bh(&rtlpriv->locks.fw_ps_lock); + if (!rtlhal->fw_clk_change_in_progress) { + rtlhal->fw_clk_change_in_progress = true; + spin_unlock_bh(&rtlpriv->locks.fw_ps_lock); + rtlhal->fw_ps_state = FW_PS_STATE(rpwm_val); + rtl_write_word(rtlpriv, REG_HISR, 0x0100); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SET_RPWM, + (u8 *)(&rpwm_val)); + spin_lock_bh(&rtlpriv->locks.fw_ps_lock); + rtlhal->fw_clk_change_in_progress = false; + spin_unlock_bh(&rtlpriv->locks.fw_ps_lock); + } else { + spin_unlock_bh(&rtlpriv->locks.fw_ps_lock); + mod_timer(&rtlpriv->works.fw_clockoff_timer, + jiffies + MSECS(10)); + } + } +} + +static void _rtl8723be_set_fw_ps_rf_on(struct ieee80211_hw *hw) +{ + u8 rpwm_val = 0; + rpwm_val |= (FW_PS_STATE_RF_OFF_88E | FW_PS_ACK); + _rtl8723be_set_fw_clock_on(hw, rpwm_val, true); +} + +static void _rtl8723be_fwlps_leave(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + bool fw_current_inps = false; + u8 rpwm_val = 0, fw_pwrmode = FW_PS_ACTIVE_MODE; + + if (ppsc->low_power_enable) { + rpwm_val = (FW_PS_STATE_ALL_ON_88E | FW_PS_ACK);/* RF on */ + _rtl8723be_set_fw_clock_on(hw, rpwm_val, false); + rtlhal->allow_sw_to_change_hwclc = false; + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_H2C_FW_PWRMODE, + (u8 *)(&fw_pwrmode)); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_FW_PSMODE_STATUS, + (u8 *)(&fw_current_inps)); + } else { + rpwm_val = FW_PS_STATE_ALL_ON_88E; /* RF on */ + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SET_RPWM, + (u8 *)(&rpwm_val)); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_H2C_FW_PWRMODE, + (u8 *)(&fw_pwrmode)); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_FW_PSMODE_STATUS, + (u8 *)(&fw_current_inps)); + } +} + +static void _rtl8723be_fwlps_enter(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + bool fw_current_inps = true; + u8 rpwm_val; + + if (ppsc->low_power_enable) { + rpwm_val = FW_PS_STATE_RF_OFF_LOW_PWR_88E; /* RF off */ + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_FW_PSMODE_STATUS, + (u8 *)(&fw_current_inps)); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_H2C_FW_PWRMODE, + (u8 *)(&ppsc->fwctrl_psmode)); + rtlhal->allow_sw_to_change_hwclc = true; + _rtl8723be_set_fw_clock_off(hw, rpwm_val); + + } else { + rpwm_val = FW_PS_STATE_RF_OFF_88E; /* RF off */ + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_FW_PSMODE_STATUS, + (u8 *)(&fw_current_inps)); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_H2C_FW_PWRMODE, + (u8 *)(&ppsc->fwctrl_psmode)); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SET_RPWM, + (u8 *)(&rpwm_val)); + } +} + +void rtl8723be_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + + switch (variable) { + case HW_VAR_RCR: + *((u32 *)(val)) = rtlpci->receive_config; + break; + case HW_VAR_RF_STATE: + *((enum rf_pwrstate *)(val)) = ppsc->rfpwr_state; + break; + case HW_VAR_FWLPS_RF_ON: { + enum rf_pwrstate rfstate; + u32 val_rcr; + + rtlpriv->cfg->ops->get_hw_reg(hw, HW_VAR_RF_STATE, + (u8 *)(&rfstate)); + if (rfstate == ERFOFF) { + *((bool *)(val)) = true; + } else { + val_rcr = rtl_read_dword(rtlpriv, REG_RCR); + val_rcr &= 0x00070000; + if (val_rcr) + *((bool *)(val)) = false; + else + *((bool *)(val)) = true; + } + break; } + case HW_VAR_FW_PSMODE_STATUS: + *((bool *)(val)) = ppsc->fw_current_inpsmode; + break; + case HW_VAR_CORRECT_TSF: { + u64 tsf; + u32 *ptsf_low = (u32 *)&tsf; + u32 *ptsf_high = ((u32 *)&tsf) + 1; + + *ptsf_high = rtl_read_dword(rtlpriv, (REG_TSFTR + 4)); + *ptsf_low = rtl_read_dword(rtlpriv, REG_TSFTR); + + *((u64 *)(val)) = tsf; + + break; } + default: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "switch case not process %x\n", variable); + break; + } +} + +void rtl8723be_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + u8 idx; + + switch (variable) { + case HW_VAR_ETHER_ADDR: + for (idx = 0; idx < ETH_ALEN; idx++) + rtl_write_byte(rtlpriv, (REG_MACID + idx), val[idx]); + break; + case HW_VAR_BASIC_RATE: { + u16 rate_cfg = ((u16 *)val)[0]; + u8 rate_index = 0; + rate_cfg = rate_cfg & 0x15f; + rate_cfg |= 0x01; + rtl_write_byte(rtlpriv, REG_RRSR, rate_cfg & 0xff); + rtl_write_byte(rtlpriv, REG_RRSR + 1, (rate_cfg >> 8) & 0xff); + while (rate_cfg > 0x1) { + rate_cfg = (rate_cfg >> 1); + rate_index++; + } + rtl_write_byte(rtlpriv, REG_INIRTS_RATE_SEL, rate_index); + break; } + case HW_VAR_BSSID: + for (idx = 0; idx < ETH_ALEN; idx++) + rtl_write_byte(rtlpriv, (REG_BSSID + idx), val[idx]); + break; + case HW_VAR_SIFS: + rtl_write_byte(rtlpriv, REG_SIFS_CTX + 1, val[0]); + rtl_write_byte(rtlpriv, REG_SIFS_TRX + 1, val[1]); + + rtl_write_byte(rtlpriv, REG_SPEC_SIFS + 1, val[0]); + rtl_write_byte(rtlpriv, REG_MAC_SPEC_SIFS + 1, val[0]); + + if (!mac->ht_enable) + rtl_write_word(rtlpriv, REG_RESP_SIFS_OFDM, 0x0e0e); + else + rtl_write_word(rtlpriv, REG_RESP_SIFS_OFDM, + *((u16 *)val)); + break; + case HW_VAR_SLOT_TIME: { + u8 e_aci; + + RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD, + "HW_VAR_SLOT_TIME %x\n", val[0]); + + rtl_write_byte(rtlpriv, REG_SLOT, val[0]); + + for (e_aci = 0; e_aci < AC_MAX; e_aci++) { + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_AC_PARAM, + (u8 *)(&e_aci)); + } + break; } + case HW_VAR_ACK_PREAMBLE: { + u8 reg_tmp; + u8 short_preamble = (bool) (*(u8 *)val); + reg_tmp = rtl_read_byte(rtlpriv, REG_TRXPTCL_CTL + 2); + if (short_preamble) { + reg_tmp |= 0x02; + rtl_write_byte(rtlpriv, REG_TRXPTCL_CTL + 2, reg_tmp); + } else { + reg_tmp &= 0xFD; + rtl_write_byte(rtlpriv, REG_TRXPTCL_CTL + 2, reg_tmp); + } + break; } + case HW_VAR_WPA_CONFIG: + rtl_write_byte(rtlpriv, REG_SECCFG, *((u8 *)val)); + break; + case HW_VAR_AMPDU_MIN_SPACE: { + u8 min_spacing_to_set; + u8 sec_min_space; + + min_spacing_to_set = *((u8 *)val); + if (min_spacing_to_set <= 7) { + sec_min_space = 0; + + if (min_spacing_to_set < sec_min_space) + min_spacing_to_set = sec_min_space; + + mac->min_space_cfg = ((mac->min_space_cfg & 0xf8) | + min_spacing_to_set); + + *val = min_spacing_to_set; + + RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD, + "Set HW_VAR_AMPDU_MIN_SPACE: %#x\n", + mac->min_space_cfg); + + rtl_write_byte(rtlpriv, REG_AMPDU_MIN_SPACE, + mac->min_space_cfg); + } + break; } + case HW_VAR_SHORTGI_DENSITY: { + u8 density_to_set; + + density_to_set = *((u8 *)val); + mac->min_space_cfg |= (density_to_set << 3); + + RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD, + "Set HW_VAR_SHORTGI_DENSITY: %#x\n", + mac->min_space_cfg); + + rtl_write_byte(rtlpriv, REG_AMPDU_MIN_SPACE, + mac->min_space_cfg); + break; } + case HW_VAR_AMPDU_FACTOR: { + u8 regtoset_normal[4] = {0x41, 0xa8, 0x72, 0xb9}; + u8 factor_toset; + u8 *p_regtoset = NULL; + u8 index = 0; + + p_regtoset = regtoset_normal; + + factor_toset = *((u8 *)val); + if (factor_toset <= 3) { + factor_toset = (1 << (factor_toset + 2)); + if (factor_toset > 0xf) + factor_toset = 0xf; + + for (index = 0; index < 4; index++) { + if ((p_regtoset[index] & 0xf0) > + (factor_toset << 4)) + p_regtoset[index] = + (p_regtoset[index] & 0x0f) | + (factor_toset << 4); + + if ((p_regtoset[index] & 0x0f) > factor_toset) + p_regtoset[index] = + (p_regtoset[index] & 0xf0) | + (factor_toset); + + rtl_write_byte(rtlpriv, + (REG_AGGLEN_LMT + index), + p_regtoset[index]); + } + RT_TRACE(rtlpriv, COMP_MLME, DBG_LOUD, + "Set HW_VAR_AMPDU_FACTOR: %#x\n", + factor_toset); + } + break; } + case HW_VAR_AC_PARAM: { + u8 e_aci = *((u8 *)val); + rtl8723_dm_init_edca_turbo(hw); + + if (rtlpci->acm_method != EACMWAY2_SW) + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ACM_CTRL, + (u8 *)(&e_aci)); + break; } + case HW_VAR_ACM_CTRL: { + u8 e_aci = *((u8 *)val); + union aci_aifsn *p_aci_aifsn = + (union aci_aifsn *)(&(mac->ac[0].aifs)); + u8 acm = p_aci_aifsn->f.acm; + u8 acm_ctrl = rtl_read_byte(rtlpriv, REG_ACMHWCTRL); + + acm_ctrl = + acm_ctrl | ((rtlpci->acm_method == 2) ? 0x0 : 0x1); + + if (acm) { + switch (e_aci) { + case AC0_BE: + acm_ctrl |= ACMHW_BEQEN; + break; + case AC2_VI: + acm_ctrl |= ACMHW_VIQEN; + break; + case AC3_VO: + acm_ctrl |= ACMHW_VOQEN; + break; + default: + RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, + "HW_VAR_ACM_CTRL acm set " + "failed: eACI is %d\n", acm); + break; + } + } else { + switch (e_aci) { + case AC0_BE: + acm_ctrl &= (~ACMHW_BEQEN); + break; + case AC2_VI: + acm_ctrl &= (~ACMHW_VIQEN); + break; + case AC3_VO: + acm_ctrl &= (~ACMHW_BEQEN); + break; + default: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "switch case not process\n"); + break; + } + } + RT_TRACE(rtlpriv, COMP_QOS, DBG_TRACE, + "SetHwReg8190pci(): [HW_VAR_ACM_CTRL] " + "Write 0x%X\n", acm_ctrl); + rtl_write_byte(rtlpriv, REG_ACMHWCTRL, acm_ctrl); + break; } + case HW_VAR_RCR: + rtl_write_dword(rtlpriv, REG_RCR, ((u32 *)(val))[0]); + rtlpci->receive_config = ((u32 *)(val))[0]; + break; + case HW_VAR_RETRY_LIMIT: { + u8 retry_limit = ((u8 *)(val))[0]; + + rtl_write_word(rtlpriv, REG_RL, + retry_limit << RETRY_LIMIT_SHORT_SHIFT | + retry_limit << RETRY_LIMIT_LONG_SHIFT); + break; } + case HW_VAR_DUAL_TSF_RST: + rtl_write_byte(rtlpriv, REG_DUAL_TSF_RST, (BIT(0) | BIT(1))); + break; + case HW_VAR_EFUSE_BYTES: + rtlefuse->efuse_usedbytes = *((u16 *)val); + break; + case HW_VAR_EFUSE_USAGE: + rtlefuse->efuse_usedpercentage = *((u8 *)val); + break; + case HW_VAR_IO_CMD: + rtl8723be_phy_set_io_cmd(hw, (*(enum io_type *)val)); + break; + case HW_VAR_SET_RPWM: { + u8 rpwm_val; + + rpwm_val = rtl_read_byte(rtlpriv, REG_PCIE_HRPWM); + udelay(1); + + if (rpwm_val & BIT(7)) { + rtl_write_byte(rtlpriv, REG_PCIE_HRPWM, (*(u8 *)val)); + } else { + rtl_write_byte(rtlpriv, REG_PCIE_HRPWM, + ((*(u8 *)val) | BIT(7))); + } + break; } + case HW_VAR_H2C_FW_PWRMODE: + rtl8723be_set_fw_pwrmode_cmd(hw, (*(u8 *)val)); + break; + case HW_VAR_FW_PSMODE_STATUS: + ppsc->fw_current_inpsmode = *((bool *)val); + break; + case HW_VAR_RESUME_CLK_ON: + _rtl8723be_set_fw_ps_rf_on(hw); + break; + case HW_VAR_FW_LPS_ACTION: { + bool enter_fwlps = *((bool *)val); + + if (enter_fwlps) + _rtl8723be_fwlps_enter(hw); + else + _rtl8723be_fwlps_leave(hw); + + break; } + case HW_VAR_H2C_FW_JOINBSSRPT: { + u8 mstatus = (*(u8 *)val); + u8 tmp_regcr, tmp_reg422, bcnvalid_reg; + u8 count = 0, dlbcn_count = 0; + bool recover = false; + + if (mstatus == RT_MEDIA_CONNECT) { + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_AID, NULL); + + tmp_regcr = rtl_read_byte(rtlpriv, REG_CR + 1); + rtl_write_byte(rtlpriv, REG_CR + 1, + (tmp_regcr | BIT(0))); + + _rtl8723be_set_bcn_ctrl_reg(hw, 0, BIT(3)); + _rtl8723be_set_bcn_ctrl_reg(hw, BIT(4), 0); + + tmp_reg422 = rtl_read_byte(rtlpriv, + REG_FWHW_TXQ_CTRL + 2); + rtl_write_byte(rtlpriv, REG_FWHW_TXQ_CTRL + 2, + tmp_reg422 & (~BIT(6))); + if (tmp_reg422 & BIT(6)) + recover = true; + + do { + bcnvalid_reg = rtl_read_byte(rtlpriv, + REG_TDECTRL + 2); + rtl_write_byte(rtlpriv, REG_TDECTRL + 2, + (bcnvalid_reg | BIT(0))); + _rtl8723be_return_beacon_queue_skb(hw); + + rtl8723be_set_fw_rsvdpagepkt(hw, 0); + bcnvalid_reg = rtl_read_byte(rtlpriv, + REG_TDECTRL + 2); + count = 0; + while (!(bcnvalid_reg & BIT(0)) && count < 20) { + count++; + udelay(10); + bcnvalid_reg = rtl_read_byte(rtlpriv, + REG_TDECTRL + 2); + } + dlbcn_count++; + } while (!(bcnvalid_reg & BIT(0)) && dlbcn_count < 5); + + if (bcnvalid_reg & BIT(0)) + rtl_write_byte(rtlpriv, REG_TDECTRL+2, BIT(0)); + + _rtl8723be_set_bcn_ctrl_reg(hw, BIT(3), 0); + _rtl8723be_set_bcn_ctrl_reg(hw, 0, BIT(4)); + + if (recover) { + rtl_write_byte(rtlpriv, REG_FWHW_TXQ_CTRL + 2, + tmp_reg422); + } + rtl_write_byte(rtlpriv, REG_CR + 1, + (tmp_regcr & ~(BIT(0)))); + } + rtl8723be_set_fw_joinbss_report_cmd(hw, (*(u8 *)val)); + break; } + case HW_VAR_H2C_FW_P2P_PS_OFFLOAD: + rtl8723be_set_p2p_ps_offload_cmd(hw, (*(u8 *)val)); + break; + case HW_VAR_AID: { + u16 u2btmp; + u2btmp = rtl_read_word(rtlpriv, REG_BCN_PSR_RPT); + u2btmp &= 0xC000; + rtl_write_word(rtlpriv, REG_BCN_PSR_RPT, + (u2btmp | mac->assoc_id)); + break; } + case HW_VAR_CORRECT_TSF: { + u8 btype_ibss = ((u8 *)(val))[0]; + + if (btype_ibss) + _rtl8723be_stop_tx_beacon(hw); + + _rtl8723be_set_bcn_ctrl_reg(hw, 0, BIT(3)); + + rtl_write_dword(rtlpriv, REG_TSFTR, + (u32) (mac->tsf & 0xffffffff)); + rtl_write_dword(rtlpriv, REG_TSFTR + 4, + (u32) ((mac->tsf >> 32) & 0xffffffff)); + + _rtl8723be_set_bcn_ctrl_reg(hw, BIT(3), 0); + + if (btype_ibss) + _rtl8723be_resume_tx_beacon(hw); + break; } + case HW_VAR_KEEP_ALIVE: { + u8 array[2]; + array[0] = 0xff; + array[1] = *((u8 *)val); + rtl8723be_fill_h2c_cmd(hw, H2C_8723BE_KEEP_ALIVE_CTRL, + 2, array); + break; } + default: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "switch case not process %x\n", + variable); + break; + } +} + +static bool _rtl8723be_llt_write(struct ieee80211_hw *hw, u32 address, u32 data) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + bool status = true; + int count = 0; + u32 value = _LLT_INIT_ADDR(address) | _LLT_INIT_DATA(data) | + _LLT_OP(_LLT_WRITE_ACCESS); + + rtl_write_dword(rtlpriv, REG_LLT_INIT, value); + + do { + value = rtl_read_dword(rtlpriv, REG_LLT_INIT); + if (_LLT_NO_ACTIVE == _LLT_OP_VALUE(value)) + break; + + if (count > POLLING_LLT_THRESHOLD) { + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "Failed to polling write LLT done at " + "address %d!\n", address); + status = false; + break; + } + } while (++count); + + return status; +} + +static bool _rtl8723be_llt_table_init(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + unsigned short i; + u8 txpktbuf_bndy; + u8 maxpage; + bool status; + + maxpage = 255; + txpktbuf_bndy = 245; + + rtl_write_dword(rtlpriv, REG_TRXFF_BNDY, + (0x27FF0000 | txpktbuf_bndy)); + rtl_write_byte(rtlpriv, REG_TDECTRL + 1, txpktbuf_bndy); + + rtl_write_byte(rtlpriv, REG_TXPKTBUF_BCNQ_BDNY, txpktbuf_bndy); + rtl_write_byte(rtlpriv, REG_TXPKTBUF_MGQ_BDNY, txpktbuf_bndy); + + rtl_write_byte(rtlpriv, 0x45D, txpktbuf_bndy); + rtl_write_byte(rtlpriv, REG_PBP, 0x31); + rtl_write_byte(rtlpriv, REG_RX_DRVINFO_SZ, 0x4); + + for (i = 0; i < (txpktbuf_bndy - 1); i++) { + status = _rtl8723be_llt_write(hw, i, i + 1); + if (!status) + return status; + } + status = _rtl8723be_llt_write(hw, (txpktbuf_bndy - 1), 0xFF); + + if (!status) + return status; + + for (i = txpktbuf_bndy; i < maxpage; i++) { + status = _rtl8723be_llt_write(hw, i, (i + 1)); + if (!status) + return status; + } + status = _rtl8723be_llt_write(hw, maxpage, txpktbuf_bndy); + if (!status) + return status; + + rtl_write_dword(rtlpriv, REG_RQPN, 0x80e40808); + rtl_write_byte(rtlpriv, REG_RQPN_NPQ, 0x00); + + return true; +} + +static void _rtl8723be_gen_refresh_led_state(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_led *pled0 = &(pcipriv->ledctl.sw_led0); + + if (rtlpriv->rtlhal.up_first_time) + return; + + if (ppsc->rfoff_reason == RF_CHANGE_BY_IPS) + rtl8723be_sw_led_on(hw, pled0); + else if (ppsc->rfoff_reason == RF_CHANGE_BY_INIT) + rtl8723be_sw_led_on(hw, pled0); + else + rtl8723be_sw_led_off(hw, pled0); +} + +static bool _rtl8723be_init_mac(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + + unsigned char bytetmp; + unsigned short wordtmp; + u16 retry = 0; + bool mac_func_enable; + + rtl_write_byte(rtlpriv, REG_RSV_CTRL, 0x00); + + /*Auto Power Down to CHIP-off State*/ + bytetmp = rtl_read_byte(rtlpriv, REG_APS_FSMCO + 1) & (~BIT(7)); + rtl_write_byte(rtlpriv, REG_APS_FSMCO + 1, bytetmp); + + bytetmp = rtl_read_byte(rtlpriv, REG_CR); + if (bytetmp == 0xFF) + mac_func_enable = true; + else + mac_func_enable = false; + + /* HW Power on sequence */ + if (!rtlbe_hal_pwrseqcmdparsing(rtlpriv, PWR_CUT_ALL_MSK, + PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, + RTL8723_NIC_ENABLE_FLOW)) { + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "init MAC Fail as power on failure\n"); + return false; + } + bytetmp = rtl_read_byte(rtlpriv, REG_APS_FSMCO) | BIT(4); + rtl_write_byte(rtlpriv, REG_APS_FSMCO, bytetmp); + + bytetmp = rtl_read_byte(rtlpriv, REG_CR); + bytetmp = 0xff; + rtl_write_byte(rtlpriv, REG_CR, bytetmp); + mdelay(2); + + bytetmp = rtl_read_byte(rtlpriv, REG_HWSEQ_CTRL); + bytetmp |= 0x7f; + rtl_write_byte(rtlpriv, REG_HWSEQ_CTRL, bytetmp); + mdelay(2); + + bytetmp = rtl_read_byte(rtlpriv, REG_SYS_CFG + 3); + if (bytetmp & BIT(0)) { + bytetmp = rtl_read_byte(rtlpriv, 0x7c); + bytetmp |= BIT(6); + rtl_write_byte(rtlpriv, 0x7c, bytetmp); + } + bytetmp = rtl_read_byte(rtlpriv, REG_SYS_CLKR); + bytetmp |= BIT(3); + rtl_write_byte(rtlpriv, REG_SYS_CLKR, bytetmp); + bytetmp = rtl_read_byte(rtlpriv, REG_GPIO_MUXCFG + 1); + bytetmp &= ~BIT(4); + rtl_write_byte(rtlpriv, REG_GPIO_MUXCFG + 1, bytetmp); + + bytetmp = rtl_read_byte(rtlpriv, REG_PCIE_CTRL_REG+3); + rtl_write_byte(rtlpriv, REG_PCIE_CTRL_REG+3, bytetmp | 0x77); + + rtl_write_word(rtlpriv, REG_CR, 0x2ff); + + if (!mac_func_enable) { + if (!_rtl8723be_llt_table_init(hw)) + return false; + } + rtl_write_dword(rtlpriv, REG_HISR, 0xffffffff); + rtl_write_dword(rtlpriv, REG_HISRE, 0xffffffff); + + /* Enable FW Beamformer Interrupt */ + bytetmp = rtl_read_byte(rtlpriv, REG_FWIMR + 3); + rtl_write_byte(rtlpriv, REG_FWIMR + 3, bytetmp | BIT(6)); + + wordtmp = rtl_read_word(rtlpriv, REG_TRXDMA_CTRL); + wordtmp &= 0xf; + wordtmp |= 0xF5B1; + rtl_write_word(rtlpriv, REG_TRXDMA_CTRL, wordtmp); + + rtl_write_byte(rtlpriv, REG_FWHW_TXQ_CTRL + 1, 0x1F); + rtl_write_dword(rtlpriv, REG_RCR, rtlpci->receive_config); + rtl_write_word(rtlpriv, REG_RXFLTMAP2, 0xFFFF); + rtl_write_dword(rtlpriv, REG_TCR, rtlpci->transmit_config); + + rtl_write_byte(rtlpriv, 0x4d0, 0x0); + + rtl_write_dword(rtlpriv, REG_BCNQ_DESA, + ((u64) rtlpci->tx_ring[BEACON_QUEUE].dma) & + DMA_BIT_MASK(32)); + rtl_write_dword(rtlpriv, REG_MGQ_DESA, + (u64) rtlpci->tx_ring[MGNT_QUEUE].dma & + DMA_BIT_MASK(32)); + rtl_write_dword(rtlpriv, REG_VOQ_DESA, + (u64) rtlpci->tx_ring[VO_QUEUE].dma & DMA_BIT_MASK(32)); + rtl_write_dword(rtlpriv, REG_VIQ_DESA, + (u64) rtlpci->tx_ring[VI_QUEUE].dma & DMA_BIT_MASK(32)); + rtl_write_dword(rtlpriv, REG_BEQ_DESA, + (u64) rtlpci->tx_ring[BE_QUEUE].dma & DMA_BIT_MASK(32)); + rtl_write_dword(rtlpriv, REG_BKQ_DESA, + (u64) rtlpci->tx_ring[BK_QUEUE].dma & DMA_BIT_MASK(32)); + rtl_write_dword(rtlpriv, REG_HQ_DESA, + (u64) rtlpci->tx_ring[HIGH_QUEUE].dma & + DMA_BIT_MASK(32)); + rtl_write_dword(rtlpriv, REG_RX_DESA, + (u64) rtlpci->rx_ring[RX_MPDU_QUEUE].dma & + DMA_BIT_MASK(32)); + + bytetmp = rtl_read_byte(rtlpriv, REG_PCIE_CTRL_REG + 3); + rtl_write_byte(rtlpriv, REG_PCIE_CTRL_REG + 3, bytetmp | 0x77); + + rtl_write_dword(rtlpriv, REG_INT_MIG, 0); + + bytetmp = rtl_read_byte(rtlpriv, REG_APSD_CTRL); + rtl_write_byte(rtlpriv, REG_APSD_CTRL, bytetmp & ~BIT(6)); + + rtl_write_byte(rtlpriv, REG_SECONDARY_CCA_CTRL, 0x3); + + do { + retry++; + bytetmp = rtl_read_byte(rtlpriv, REG_APSD_CTRL); + } while ((retry < 200) && (bytetmp & BIT(7))); + + _rtl8723be_gen_refresh_led_state(hw); + + rtl_write_dword(rtlpriv, REG_MCUTST_1, 0x0); + + bytetmp = rtl_read_byte(rtlpriv, REG_RXDMA_CONTROL); + rtl_write_byte(rtlpriv, REG_RXDMA_CONTROL, bytetmp & ~BIT(2)); + + return true; +} + +static void _rtl8723be_hw_configure(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 reg_bw_opmode; + u32 reg_ratr, reg_prsr; + + reg_bw_opmode = BW_OPMODE_20MHZ; + reg_ratr = RATE_ALL_CCK | RATE_ALL_OFDM_AG | + RATE_ALL_OFDM_1SS | RATE_ALL_OFDM_2SS; + reg_prsr = RATE_ALL_CCK | RATE_ALL_OFDM_AG; + + rtl_write_dword(rtlpriv, REG_RRSR, reg_prsr); + rtl_write_byte(rtlpriv, REG_HWSEQ_CTRL, 0xFF); +} + +static void _rtl8723be_enable_aspm_back_door(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + + rtl_write_byte(rtlpriv, 0x34b, 0x93); + rtl_write_word(rtlpriv, 0x350, 0x870c); + rtl_write_byte(rtlpriv, 0x352, 0x1); + + if (ppsc->support_backdoor) + rtl_write_byte(rtlpriv, 0x349, 0x1b); + else + rtl_write_byte(rtlpriv, 0x349, 0x03); + + rtl_write_word(rtlpriv, 0x350, 0x2718); + rtl_write_byte(rtlpriv, 0x352, 0x1); +} + +void rtl8723be_enable_hw_security_config(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 sec_reg_value; + + RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, + "PairwiseEncAlgorithm = %d GroupEncAlgorithm = %d\n", + rtlpriv->sec.pairwise_enc_algorithm, + rtlpriv->sec.group_enc_algorithm); + + if (rtlpriv->cfg->mod_params->sw_crypto || rtlpriv->sec.use_sw_sec) { + RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, + "not open hw encryption\n"); + return; + } + sec_reg_value = SCR_TXENCENABLE | SCR_RXDECENABLE; + + if (rtlpriv->sec.use_defaultkey) { + sec_reg_value |= SCR_TXUSEDK; + sec_reg_value |= SCR_RXUSEDK; + } + sec_reg_value |= (SCR_RXBCUSEDK | SCR_TXBCUSEDK); + + rtl_write_byte(rtlpriv, REG_CR + 1, 0x02); + + RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "The SECR-value %x\n", + sec_reg_value); + + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_WPA_CONFIG, &sec_reg_value); +} + +int rtl8723be_hw_init(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + bool rtstatus = true; + int err; + u8 tmp_u1b; + unsigned long flags; + + /* reenable interrupts to not interfere with other devices */ + local_save_flags(flags); + local_irq_enable(); + + rtlpriv->rtlhal.being_init_adapter = true; + rtlpriv->intf_ops->disable_aspm(hw); + rtstatus = _rtl8723be_init_mac(hw); + if (!rtstatus) { + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Init MAC failed\n"); + err = 1; + goto exit; + } + tmp_u1b = rtl_read_byte(rtlpriv, REG_SYS_CFG); + tmp_u1b &= 0x7F; + rtl_write_byte(rtlpriv, REG_SYS_CFG, tmp_u1b); + + err = rtl8723_download_fw(hw, true); + if (err) { + RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, + "Failed to download FW. Init HW without FW now..\n"); + err = 1; + rtlhal->fw_ready = false; + goto exit; + } else { + rtlhal->fw_ready = true; + } + rtlhal->last_hmeboxnum = 0; + rtl8723be_phy_mac_config(hw); + /* because last function modify RCR, so we update + * rcr var here, or TP will unstable for receive_config + * is wrong, RX RCR_ACRC32 will cause TP unstabel & Rx + * RCR_APP_ICV will cause mac80211 unassoc for cisco 1252 + */ + rtlpci->receive_config = rtl_read_dword(rtlpriv, REG_RCR); + rtlpci->receive_config &= ~(RCR_ACRC32 | RCR_AICV); + rtl_write_dword(rtlpriv, REG_RCR, rtlpci->receive_config); + + rtl8723be_phy_bb_config(hw); + rtlphy->rf_mode = RF_OP_BY_SW_3WIRE; + rtl8723be_phy_rf_config(hw); + + rtlphy->rfreg_chnlval[0] = rtl_get_rfreg(hw, (enum radio_path)0, + RF_CHNLBW, RFREG_OFFSET_MASK); + rtlphy->rfreg_chnlval[1] = rtl_get_rfreg(hw, (enum radio_path)1, + RF_CHNLBW, RFREG_OFFSET_MASK); + rtlphy->rfreg_chnlval[0] &= 0xFFF03FF; + rtlphy->rfreg_chnlval[0] |= (BIT(10) | BIT(11)); + + rtl_set_bbreg(hw, RFPGA0_RFMOD, BCCKEN, 0x1); + rtl_set_bbreg(hw, RFPGA0_RFMOD, BOFDMEN, 0x1); + rtl_set_bbreg(hw, RFPGA0_ANALOGPARAMETER2, BIT(10), 1); + _rtl8723be_hw_configure(hw); + rtl_cam_reset_all_entry(hw); + rtl8723be_enable_hw_security_config(hw); + + ppsc->rfpwr_state = ERFON; + + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ETHER_ADDR, mac->mac_addr); + _rtl8723be_enable_aspm_back_door(hw); + rtlpriv->intf_ops->enable_aspm(hw); + + rtl8723be_bt_hw_init(hw); + + rtl_set_bbreg(hw, 0x64, BIT(20), 0); + rtl_set_bbreg(hw, 0x64, BIT(24), 0); + + rtl_set_bbreg(hw, 0x40, BIT(4), 0); + rtl_set_bbreg(hw, 0x40, BIT(3), 1); + + rtl_set_bbreg(hw, 0x944, BIT(0)|BIT(1), 0x3); + rtl_set_bbreg(hw, 0x930, 0xff, 0x77); + + rtl_set_bbreg(hw, 0x38, BIT(11), 0x1); + + rtl_set_bbreg(hw, 0xb2c, 0xffffffff, 0x80000000); + + if (ppsc->rfpwr_state == ERFON) { + rtl8723be_dm_check_txpower_tracking(hw); + rtl8723be_phy_lc_calibrate(hw); + } + tmp_u1b = efuse_read_1byte(hw, 0x1FA); + if (!(tmp_u1b & BIT(0))) { + rtl_set_rfreg(hw, RF90_PATH_A, 0x15, 0x0F, 0x05); + RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "PA BIAS path A\n"); + } + if (!(tmp_u1b & BIT(4))) { + tmp_u1b = rtl_read_byte(rtlpriv, 0x16); + tmp_u1b &= 0x0F; + rtl_write_byte(rtlpriv, 0x16, tmp_u1b | 0x80); + udelay(10); + rtl_write_byte(rtlpriv, 0x16, tmp_u1b | 0x90); + RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "under 1.5V\n"); + } + rtl8723be_dm_init(hw); +exit: + local_irq_restore(flags); + rtlpriv->rtlhal.being_init_adapter = false; + return err; +} + +static enum version_8723e _rtl8723be_read_chip_version(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + enum version_8723e version = VERSION_UNKNOWN; + u8 count = 0; + u8 value8; + u32 value32; + + rtl_write_byte(rtlpriv, REG_RSV_CTRL, 0); + + value8 = rtl_read_byte(rtlpriv, REG_APS_FSMCO + 2); + rtl_write_byte(rtlpriv, REG_APS_FSMCO + 2, value8 | BIT(0)); + + value8 = rtl_read_byte(rtlpriv, REG_APS_FSMCO + 1); + rtl_write_byte(rtlpriv, REG_APS_FSMCO + 1, value8 | BIT(0)); + + value8 = rtl_read_byte(rtlpriv, REG_APS_FSMCO + 1); + while (((value8 & BIT(0))) && (count++ < 100)) { + udelay(10); + value8 = rtl_read_byte(rtlpriv, REG_APS_FSMCO + 1); + } + count = 0; + value8 = rtl_read_byte(rtlpriv, REG_ROM_VERSION); + while ((value8 == 0) && (count++ < 50)) { + value8 = rtl_read_byte(rtlpriv, REG_ROM_VERSION); + mdelay(1); + } + value32 = rtl_read_dword(rtlpriv, REG_SYS_CFG1); + if ((value32 & (CHIP_8723B)) != CHIP_8723B) + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "unkown chip version\n"); + else + version = (enum version_8723e) VERSION_TEST_CHIP_1T1R_8723B; + + rtlphy->rf_type = RF_1T1R; + + value8 = rtl_read_byte(rtlpriv, REG_ROM_VERSION); + if (value8 >= 0x02) + version |= BIT(3); + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "Chip RF Type: %s\n", (rtlphy->rf_type == RF_2T2R) ? + "RF_2T2R" : "RF_1T1R"); + + return version; +} + +static int _rtl8723be_set_media_status(struct ieee80211_hw *hw, + enum nl80211_iftype type) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 bt_msr = rtl_read_byte(rtlpriv, MSR) & 0xfc; + enum led_ctl_mode ledaction = LED_CTL_NO_LINK; + + rtl_write_dword(rtlpriv, REG_BCN_CTRL, 0); + RT_TRACE(rtlpriv, COMP_BEACON, DBG_LOUD, + "clear 0x550 when set HW_VAR_MEDIA_STATUS\n"); + + if (type == NL80211_IFTYPE_UNSPECIFIED || + type == NL80211_IFTYPE_STATION) { + _rtl8723be_stop_tx_beacon(hw); + _rtl8723be_enable_bcn_sub_func(hw); + } else if (type == NL80211_IFTYPE_ADHOC || type == NL80211_IFTYPE_AP) { + _rtl8723be_resume_tx_beacon(hw); + _rtl8723be_disable_bcn_sub_func(hw); + } else { + RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, + "Set HW_VAR_MEDIA_STATUS: " + "No such media status(%x).\n", type); + } + switch (type) { + case NL80211_IFTYPE_UNSPECIFIED: + bt_msr |= MSR_NOLINK; + ledaction = LED_CTL_LINK; + RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, + "Set Network type to NO LINK!\n"); + break; + case NL80211_IFTYPE_ADHOC: + bt_msr |= MSR_ADHOC; + RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, + "Set Network type to Ad Hoc!\n"); + break; + case NL80211_IFTYPE_STATION: + bt_msr |= MSR_INFRA; + ledaction = LED_CTL_LINK; + RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, + "Set Network type to STA!\n"); + break; + case NL80211_IFTYPE_AP: + bt_msr |= MSR_AP; + RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, + "Set Network type to AP!\n"); + break; + default: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "Network type %d not support!\n", type); + return 1; + } + rtl_write_byte(rtlpriv, (MSR), bt_msr); + rtlpriv->cfg->ops->led_control(hw, ledaction); + if ((bt_msr & 0x03) == MSR_AP) + rtl_write_byte(rtlpriv, REG_BCNTCFG + 1, 0x00); + else + rtl_write_byte(rtlpriv, REG_BCNTCFG + 1, 0x66); + return 0; +} + +void rtl8723be_set_check_bssid(struct ieee80211_hw *hw, bool check_bssid) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + u32 reg_rcr = rtlpci->receive_config; + + if (rtlpriv->psc.rfpwr_state != ERFON) + return; + + if (check_bssid) { + reg_rcr |= (RCR_CBSSID_DATA | RCR_CBSSID_BCN); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, + (u8 *)(®_rcr)); + _rtl8723be_set_bcn_ctrl_reg(hw, 0, BIT(4)); + } else if (!check_bssid) { + reg_rcr &= (~(RCR_CBSSID_DATA | RCR_CBSSID_BCN)); + _rtl8723be_set_bcn_ctrl_reg(hw, BIT(4), 0); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, + (u8 *)(®_rcr)); + } +} + +int rtl8723be_set_network_type(struct ieee80211_hw *hw, + enum nl80211_iftype type) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if (_rtl8723be_set_media_status(hw, type)) + return -EOPNOTSUPP; + + if (rtlpriv->mac80211.link_state == MAC80211_LINKED) { + if (type != NL80211_IFTYPE_AP) + rtl8723be_set_check_bssid(hw, true); + } else { + rtl8723be_set_check_bssid(hw, false); + } + return 0; +} + +/* don't set REG_EDCA_BE_PARAM here + * because mac80211 will send pkt when scan + */ +void rtl8723be_set_qos(struct ieee80211_hw *hw, int aci) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + rtl8723_dm_init_edca_turbo(hw); + switch (aci) { + case AC1_BK: + rtl_write_dword(rtlpriv, REG_EDCA_BK_PARAM, 0xa44f); + break; + case AC0_BE: + break; + case AC2_VI: + rtl_write_dword(rtlpriv, REG_EDCA_VI_PARAM, 0x5e4322); + break; + case AC3_VO: + rtl_write_dword(rtlpriv, REG_EDCA_VO_PARAM, 0x2f3222); + break; + default: + RT_ASSERT(false, "invalid aci: %d !\n", aci); + break; + } +} + +void rtl8723be_enable_interrupt(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + + rtl_write_dword(rtlpriv, REG_HIMR, rtlpci->irq_mask[0] & 0xFFFFFFFF); + rtl_write_dword(rtlpriv, REG_HIMRE, rtlpci->irq_mask[1] & 0xFFFFFFFF); + rtlpci->irq_enabled = true; + /* there are some C2H CMDs have been sent + * before system interrupt is enabled, e.g., C2H, CPWM. + * So we need to clear all C2H events that FW has notified, + * otherwise FW won't schedule any commands anymore. + */ + rtl_write_byte(rtlpriv, REG_C2HEVT_CLEAR, 0); + /*enable system interrupt*/ + rtl_write_dword(rtlpriv, REG_HSIMR, rtlpci->sys_irq_mask & 0xFFFFFFFF); +} + +void rtl8723be_disable_interrupt(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + + rtl_write_dword(rtlpriv, REG_HIMR, IMR_DISABLED); + rtl_write_dword(rtlpriv, REG_HIMRE, IMR_DISABLED); + rtlpci->irq_enabled = false; + synchronize_irq(rtlpci->pdev->irq); +} + +static void _rtl8723be_poweroff_adapter(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 u1b_tmp; + + /* Combo (PCIe + USB) Card and PCIe-MF Card */ + /* 1. Run LPS WL RFOFF flow */ + rtlbe_hal_pwrseqcmdparsing(rtlpriv, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, + PWR_INTF_PCI_MSK, RTL8723_NIC_LPS_ENTER_FLOW); + + /* 2. 0x1F[7:0] = 0 */ + /* turn off RF */ + rtl_write_byte(rtlpriv, REG_RF_CTRL, 0x00); + if ((rtl_read_byte(rtlpriv, REG_MCUFWDL) & BIT(7)) && + rtlhal->fw_ready) + rtl8723be_firmware_selfreset(hw); + + /* Reset MCU. Suggested by Filen. */ + u1b_tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN + 1); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN + 1, (u1b_tmp & (~BIT(2)))); + + /* g. MCUFWDL 0x80[1:0]= 0 */ + /* reset MCU ready status */ + rtl_write_byte(rtlpriv, REG_MCUFWDL, 0x00); + + /* HW card disable configuration. */ + rtlbe_hal_pwrseqcmdparsing(rtlpriv, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, + PWR_INTF_PCI_MSK, RTL8723_NIC_DISABLE_FLOW); + + /* Reset MCU IO Wrapper */ + u1b_tmp = rtl_read_byte(rtlpriv, REG_RSV_CTRL + 1); + rtl_write_byte(rtlpriv, REG_RSV_CTRL + 1, (u1b_tmp & (~BIT(0)))); + u1b_tmp = rtl_read_byte(rtlpriv, REG_RSV_CTRL + 1); + rtl_write_byte(rtlpriv, REG_RSV_CTRL + 1, u1b_tmp | BIT(0)); + + /* 7. RSV_CTRL 0x1C[7:0] = 0x0E */ + /* lock ISO/CLK/Power control register */ + rtl_write_byte(rtlpriv, REG_RSV_CTRL, 0x0e); +} + +void rtl8723be_card_disable(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + enum nl80211_iftype opmode; + + mac->link_state = MAC80211_NOLINK; + opmode = NL80211_IFTYPE_UNSPECIFIED; + _rtl8723be_set_media_status(hw, opmode); + if (rtlpriv->rtlhal.driver_is_goingto_unload || + ppsc->rfoff_reason > RF_CHANGE_BY_PS) + rtlpriv->cfg->ops->led_control(hw, LED_CTL_POWER_OFF); + RT_SET_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC); + _rtl8723be_poweroff_adapter(hw); + + /* after power off we should do iqk again */ + rtlpriv->phy.iqk_initialized = false; +} + +void rtl8723be_interrupt_recognized(struct ieee80211_hw *hw, + u32 *p_inta, u32 *p_intb) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + + *p_inta = rtl_read_dword(rtlpriv, ISR) & rtlpci->irq_mask[0]; + rtl_write_dword(rtlpriv, ISR, *p_inta); + + *p_intb = rtl_read_dword(rtlpriv, REG_HISRE) & + rtlpci->irq_mask[1]; + rtl_write_dword(rtlpriv, REG_HISRE, *p_intb); +} + +void rtl8723be_set_beacon_related_registers(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + u16 bcn_interval, atim_window; + + bcn_interval = mac->beacon_interval; + atim_window = 2; /*FIX MERGE */ + rtl8723be_disable_interrupt(hw); + rtl_write_word(rtlpriv, REG_ATIMWND, atim_window); + rtl_write_word(rtlpriv, REG_BCN_INTERVAL, bcn_interval); + rtl_write_word(rtlpriv, REG_BCNTCFG, 0x660f); + rtl_write_byte(rtlpriv, REG_RXTSF_OFFSET_CCK, 0x18); + rtl_write_byte(rtlpriv, REG_RXTSF_OFFSET_OFDM, 0x18); + rtl_write_byte(rtlpriv, 0x606, 0x30); + rtl8723be_enable_interrupt(hw); +} + +void rtl8723be_set_beacon_interval(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + u16 bcn_interval = mac->beacon_interval; + + RT_TRACE(rtlpriv, COMP_BEACON, DBG_DMESG, + "beacon_interval:%d\n", bcn_interval); + rtl8723be_disable_interrupt(hw); + rtl_write_word(rtlpriv, REG_BCN_INTERVAL, bcn_interval); + rtl8723be_enable_interrupt(hw); +} + +void rtl8723be_update_interrupt_mask(struct ieee80211_hw *hw, + u32 add_msr, u32 rm_msr) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + + RT_TRACE(rtlpriv, COMP_INTR, DBG_LOUD, + "add_msr:%x, rm_msr:%x\n", add_msr, rm_msr); + + if (add_msr) + rtlpci->irq_mask[0] |= add_msr; + if (rm_msr) + rtlpci->irq_mask[0] &= (~rm_msr); + rtl8723be_disable_interrupt(hw); + rtl8723be_enable_interrupt(hw); +} + +static u8 _rtl8723be_get_chnl_group(u8 chnl) +{ + u8 group; + + if (chnl < 3) + group = 0; + else if (chnl < 9) + group = 1; + else + group = 2; + return group; +} + +static void _rtl8723be_read_power_value_fromprom(struct ieee80211_hw *hw, + struct txpower_info_2g *pw2g, + struct txpower_info_5g *pw5g, + bool autoload_fail, u8 *hwinfo) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 path, addr = EEPROM_TX_PWR_INX, group, cnt = 0; + + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "hal_ReadPowerValueFromPROM8723BE(): " + "PROMContent[0x%x]= 0x%x\n", + (addr + 1), hwinfo[addr + 1]); + if (0xFF == hwinfo[addr + 1]) /*YJ, add, 120316*/ + autoload_fail = true; + + if (autoload_fail) { + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "auto load fail : Use Default value!\n"); + for (path = 0; path < MAX_RF_PATH; path++) { + /* 2.4G default value */ + for (group = 0; group < MAX_CHNL_GROUP_24G; group++) { + pw2g->index_cck_base[path][group] = 0x2D; + pw2g->index_bw40_base[path][group] = 0x2D; + } + for (cnt = 0; cnt < MAX_TX_COUNT; cnt++) { + if (cnt == 0) { + pw2g->bw20_diff[path][0] = 0x02; + pw2g->ofdm_diff[path][0] = 0x04; + } else { + pw2g->bw20_diff[path][cnt] = 0xFE; + pw2g->bw40_diff[path][cnt] = 0xFE; + pw2g->cck_diff[path][cnt] = 0xFE; + pw2g->ofdm_diff[path][cnt] = 0xFE; + } + } + } + return; + } + for (path = 0; path < MAX_RF_PATH; path++) { + /*2.4G default value*/ + for (group = 0; group < MAX_CHNL_GROUP_24G; group++) { + pw2g->index_cck_base[path][group] = hwinfo[addr++]; + if (pw2g->index_cck_base[path][group] == 0xFF) + pw2g->index_cck_base[path][group] = 0x2D; + } + for (group = 0; group < MAX_CHNL_GROUP_24G - 1; group++) { + pw2g->index_bw40_base[path][group] = hwinfo[addr++]; + if (pw2g->index_bw40_base[path][group] == 0xFF) + pw2g->index_bw40_base[path][group] = 0x2D; + } + for (cnt = 0; cnt < MAX_TX_COUNT; cnt++) { + if (cnt == 0) { + pw2g->bw40_diff[path][cnt] = 0; + if (hwinfo[addr] == 0xFF) { + pw2g->bw20_diff[path][cnt] = 0x02; + } else { + pw2g->bw20_diff[path][cnt] = + (hwinfo[addr] & 0xf0) >> 4; + /*bit sign number to 8 bit sign number*/ + if (pw2g->bw20_diff[path][cnt] & BIT(3)) + pw2g->bw20_diff[path][cnt] |= 0xF0; + } + if (hwinfo[addr] == 0xFF) { + pw2g->ofdm_diff[path][cnt] = 0x04; + } else { + pw2g->ofdm_diff[path][cnt] = + (hwinfo[addr] & 0x0f); + /*bit sign number to 8 bit sign number*/ + if (pw2g->ofdm_diff[path][cnt] & BIT(3)) + pw2g->ofdm_diff[path][cnt] |= + 0xF0; + } + pw2g->cck_diff[path][cnt] = 0; + addr++; + } else { + if (hwinfo[addr] == 0xFF) { + pw2g->bw40_diff[path][cnt] = 0xFE; + } else { + pw2g->bw40_diff[path][cnt] = + (hwinfo[addr] & 0xf0) >> 4; + if (pw2g->bw40_diff[path][cnt] & BIT(3)) + pw2g->bw40_diff[path][cnt] |= + 0xF0; + } + if (hwinfo[addr] == 0xFF) { + pw2g->bw20_diff[path][cnt] = 0xFE; + } else { + pw2g->bw20_diff[path][cnt] = + (hwinfo[addr] & 0x0f); + if (pw2g->bw20_diff[path][cnt] & BIT(3)) + pw2g->bw20_diff[path][cnt] |= + 0xF0; + } + addr++; + + if (hwinfo[addr] == 0xFF) { + pw2g->ofdm_diff[path][cnt] = 0xFE; + } else { + pw2g->ofdm_diff[path][cnt] = + (hwinfo[addr] & 0xf0) >> 4; + if (pw2g->ofdm_diff[path][cnt] & BIT(3)) + pw2g->ofdm_diff[path][cnt] |= + 0xF0; + } + if (hwinfo[addr] == 0xFF) { + pw2g->cck_diff[path][cnt] = 0xFE; + } else { + pw2g->cck_diff[path][cnt] = + (hwinfo[addr] & 0x0f); + if (pw2g->cck_diff[path][cnt] & BIT(3)) + pw2g->cck_diff[path][cnt] |= + 0xF0; + } + addr++; + } + } + /*5G default value*/ + for (group = 0; group < MAX_CHNL_GROUP_5G; group++) { + pw5g->index_bw40_base[path][group] = hwinfo[addr++]; + if (pw5g->index_bw40_base[path][group] == 0xFF) + pw5g->index_bw40_base[path][group] = 0xFE; + } + for (cnt = 0; cnt < MAX_TX_COUNT; cnt++) { + if (cnt == 0) { + pw5g->bw40_diff[path][cnt] = 0; + + if (hwinfo[addr] == 0xFF) { + pw5g->bw20_diff[path][cnt] = 0; + } else { + pw5g->bw20_diff[path][0] = + (hwinfo[addr] & 0xf0) >> 4; + if (pw5g->bw20_diff[path][cnt] & BIT(3)) + pw5g->bw20_diff[path][cnt] |= + 0xF0; + } + if (hwinfo[addr] == 0xFF) { + pw5g->ofdm_diff[path][cnt] = 0x04; + } else { + pw5g->ofdm_diff[path][0] = + (hwinfo[addr] & 0x0f); + if (pw5g->ofdm_diff[path][cnt] & BIT(3)) + pw5g->ofdm_diff[path][cnt] |= + 0xF0; + } + addr++; + } else { + if (hwinfo[addr] == 0xFF) { + pw5g->bw40_diff[path][cnt] = 0xFE; + } else { + pw5g->bw40_diff[path][cnt] = + (hwinfo[addr] & 0xf0) >> 4; + if (pw5g->bw40_diff[path][cnt] & BIT(3)) + pw5g->bw40_diff[path][cnt] |= 0xF0; + } + if (hwinfo[addr] == 0xFF) { + pw5g->bw20_diff[path][cnt] = 0xFE; + } else { + pw5g->bw20_diff[path][cnt] = + (hwinfo[addr] & 0x0f); + if (pw5g->bw20_diff[path][cnt] & BIT(3)) + pw5g->bw20_diff[path][cnt] |= 0xF0; + } + addr++; + } + } + if (hwinfo[addr] == 0xFF) { + pw5g->ofdm_diff[path][1] = 0xFE; + pw5g->ofdm_diff[path][2] = 0xFE; + } else { + pw5g->ofdm_diff[path][1] = (hwinfo[addr] & 0xf0) >> 4; + pw5g->ofdm_diff[path][2] = (hwinfo[addr] & 0x0f); + } + addr++; + + if (hwinfo[addr] == 0xFF) + pw5g->ofdm_diff[path][3] = 0xFE; + else + pw5g->ofdm_diff[path][3] = (hwinfo[addr] & 0x0f); + addr++; + + for (cnt = 1; cnt < MAX_TX_COUNT; cnt++) { + if (pw5g->ofdm_diff[path][cnt] == 0xFF) + pw5g->ofdm_diff[path][cnt] = 0xFE; + else if (pw5g->ofdm_diff[path][cnt] & BIT(3)) + pw5g->ofdm_diff[path][cnt] |= 0xF0; + } + } +} + +static void _rtl8723be_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, + bool autoload_fail, + u8 *hwinfo) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct txpower_info_2g pw2g; + struct txpower_info_5g pw5g; + u8 rf_path, index; + u8 i; + + _rtl8723be_read_power_value_fromprom(hw, &pw2g, &pw5g, autoload_fail, + hwinfo); + + for (rf_path = 0; rf_path < 2; rf_path++) { + for (i = 0; i < 14; i++) { + index = _rtl8723be_get_chnl_group(i+1); + + rtlefuse->txpwrlevel_cck[rf_path][i] = + pw2g.index_cck_base[rf_path][index]; + rtlefuse->txpwrlevel_ht40_1s[rf_path][i] = + pw2g.index_bw40_base[rf_path][index]; + } + for (i = 0; i < MAX_TX_COUNT; i++) { + rtlefuse->txpwr_ht20diff[rf_path][i] = + pw2g.bw20_diff[rf_path][i]; + rtlefuse->txpwr_ht40diff[rf_path][i] = + pw2g.bw40_diff[rf_path][i]; + rtlefuse->txpwr_legacyhtdiff[rf_path][i] = + pw2g.ofdm_diff[rf_path][i]; + } + for (i = 0; i < 14; i++) { + RTPRINT(rtlpriv, FINIT, INIT_EEPROM, + "RF(%d)-Ch(%d) [CCK / HT40_1S ] = " + "[0x%x / 0x%x ]\n", rf_path, i, + rtlefuse->txpwrlevel_cck[rf_path][i], + rtlefuse->txpwrlevel_ht40_1s[rf_path][i]); + } + } + if (!autoload_fail) + rtlefuse->eeprom_thermalmeter = + hwinfo[EEPROM_THERMAL_METER_88E]; + else + rtlefuse->eeprom_thermalmeter = EEPROM_DEFAULT_THERMALMETER; + + if (rtlefuse->eeprom_thermalmeter == 0xff || autoload_fail) { + rtlefuse->apk_thermalmeterignore = true; + rtlefuse->eeprom_thermalmeter = EEPROM_DEFAULT_THERMALMETER; + } + rtlefuse->thermalmeter[0] = rtlefuse->eeprom_thermalmeter; + RTPRINT(rtlpriv, FINIT, INIT_EEPROM, + "thermalmeter = 0x%x\n", rtlefuse->eeprom_thermalmeter); + + if (!autoload_fail) { + rtlefuse->eeprom_regulatory = + hwinfo[EEPROM_RF_BOARD_OPTION_88E] & 0x07;/*bit0~2*/ + if (hwinfo[EEPROM_RF_BOARD_OPTION_88E] == 0xFF) + rtlefuse->eeprom_regulatory = 0; + } else { + rtlefuse->eeprom_regulatory = 0; + } + RTPRINT(rtlpriv, FINIT, INIT_EEPROM, + "eeprom_regulatory = 0x%x\n", rtlefuse->eeprom_regulatory); +} + +static void _rtl8723be_read_adapter_info(struct ieee80211_hw *hw, + bool pseudo_test) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u16 i, usvalue; + u8 hwinfo[HWSET_MAX_SIZE]; + u16 eeprom_id; + bool is_toshiba_smid1 = false; + bool is_toshiba_smid2 = false; + bool is_samsung_smid = false; + bool is_lenovo_smid = false; + u16 toshiba_smid1[] = { + 0x6151, 0x6152, 0x6154, 0x6155, 0x6177, 0x6178, 0x6179, 0x6180, + 0x7151, 0x7152, 0x7154, 0x7155, 0x7177, 0x7178, 0x7179, 0x7180, + 0x8151, 0x8152, 0x8154, 0x8155, 0x8181, 0x8182, 0x8184, 0x8185, + 0x9151, 0x9152, 0x9154, 0x9155, 0x9181, 0x9182, 0x9184, 0x9185 + }; + u16 toshiba_smid2[] = { + 0x6181, 0x6184, 0x6185, 0x7181, 0x7182, 0x7184, 0x7185, 0x8181, + 0x8182, 0x8184, 0x8185, 0x9181, 0x9182, 0x9184, 0x9185 + }; + u16 samsung_smid[] = { + 0x6191, 0x6192, 0x6193, 0x7191, 0x7192, 0x7193, 0x8191, 0x8192, + 0x8193, 0x9191, 0x9192, 0x9193 + }; + u16 lenovo_smid[] = { + 0x8195, 0x9195, 0x7194, 0x8200, 0x8201, 0x8202, 0x9199, 0x9200 + }; + + if (pseudo_test) { + /* needs to be added */ + return; + } + if (rtlefuse->epromtype == EEPROM_BOOT_EFUSE) { + rtl_efuse_shadow_map_update(hw); + + memcpy(hwinfo, &rtlefuse->efuse_map[EFUSE_INIT_MAP][0], + HWSET_MAX_SIZE); + } else if (rtlefuse->epromtype == EEPROM_93C46) { + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "RTL819X Not boot from eeprom, check it !!"); + } + RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_DMESG, ("MAP\n"), + hwinfo, HWSET_MAX_SIZE); + + eeprom_id = *((u16 *)&hwinfo[0]); + if (eeprom_id != RTL8723BE_EEPROM_ID) { + RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, + "EEPROM ID(%#x) is invalid!!\n", eeprom_id); + rtlefuse->autoload_failflag = true; + } else { + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Autoload OK\n"); + rtlefuse->autoload_failflag = false; + } + if (rtlefuse->autoload_failflag) + return; + + rtlefuse->eeprom_vid = *(u16 *)&hwinfo[EEPROM_VID]; + rtlefuse->eeprom_did = *(u16 *)&hwinfo[EEPROM_DID]; + rtlefuse->eeprom_svid = *(u16 *)&hwinfo[EEPROM_SVID]; + rtlefuse->eeprom_smid = *(u16 *)&hwinfo[EEPROM_SMID]; + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "EEPROMId = 0x%4x\n", eeprom_id); + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "EEPROM VID = 0x%4x\n", rtlefuse->eeprom_vid); + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "EEPROM DID = 0x%4x\n", rtlefuse->eeprom_did); + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "EEPROM SVID = 0x%4x\n", rtlefuse->eeprom_svid); + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "EEPROM SMID = 0x%4x\n", rtlefuse->eeprom_smid); + + for (i = 0; i < 6; i += 2) { + usvalue = *(u16 *)&hwinfo[EEPROM_MAC_ADDR + i]; + *((u16 *)(&rtlefuse->dev_addr[i])) = usvalue; + } + RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "dev_addr: %pM\n", + rtlefuse->dev_addr); + + /*parse xtal*/ + rtlefuse->crystalcap = hwinfo[EEPROM_XTAL_8723BE]; + if (rtlefuse->crystalcap == 0xFF) + rtlefuse->crystalcap = 0x20; + + _rtl8723be_read_txpower_info_from_hwpg(hw, rtlefuse->autoload_failflag, + hwinfo); + + rtl8723be_read_bt_coexist_info_from_hwpg(hw, + rtlefuse->autoload_failflag, + hwinfo); + + rtlefuse->eeprom_channelplan = *(u8 *)&hwinfo[EEPROM_CHANNELPLAN]; + rtlefuse->eeprom_version = *(u16 *)&hwinfo[EEPROM_VERSION]; + rtlefuse->txpwr_fromeprom = true; + rtlefuse->eeprom_oemid = *(u8 *)&hwinfo[EEPROM_CUSTOMER_ID]; + + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "EEPROM Customer ID: 0x%2x\n", rtlefuse->eeprom_oemid); + + /* set channel plan to world wide 13 */ + rtlefuse->channel_plan = COUNTRY_CODE_WORLD_WIDE_13; + + if (rtlhal->oem_id == RT_CID_DEFAULT) { + /* Does this one have a Toshiba SMID from group 1? */ + for (i = 0; i < sizeof(toshiba_smid1) / sizeof(u16); i++) { + if (rtlefuse->eeprom_smid == toshiba_smid1[i]) { + is_toshiba_smid1 = true; + break; + } + } + /* Does this one have a Toshiba SMID from group 2? */ + for (i = 0; i < sizeof(toshiba_smid2) / sizeof(u16); i++) { + if (rtlefuse->eeprom_smid == toshiba_smid2[i]) { + is_toshiba_smid2 = true; + break; + } + } + /* Does this one have a Samsung SMID? */ + for (i = 0; i < sizeof(samsung_smid) / sizeof(u16); i++) { + if (rtlefuse->eeprom_smid == samsung_smid[i]) { + is_samsung_smid = true; + break; + } + } + /* Does this one have a Lenovo SMID? */ + for (i = 0; i < sizeof(lenovo_smid) / sizeof(u16); i++) { + if (rtlefuse->eeprom_smid == lenovo_smid[i]) { + is_lenovo_smid = true; + break; + } + } + switch (rtlefuse->eeprom_oemid) { + case EEPROM_CID_DEFAULT: + if (rtlefuse->eeprom_did == 0x8176) { + if (rtlefuse->eeprom_svid == 0x10EC && + is_toshiba_smid1) { + rtlhal->oem_id = RT_CID_TOSHIBA; + } else if (rtlefuse->eeprom_svid == 0x1025) { + rtlhal->oem_id = RT_CID_819X_ACER; + } else if (rtlefuse->eeprom_svid == 0x10EC && + is_samsung_smid) { + rtlhal->oem_id = RT_CID_819X_SAMSUNG; + } else if (rtlefuse->eeprom_svid == 0x10EC && + is_lenovo_smid) { + rtlhal->oem_id = RT_CID_819X_LENOVO; + } else if ((rtlefuse->eeprom_svid == 0x10EC && + rtlefuse->eeprom_smid == 0x8197) || + (rtlefuse->eeprom_svid == 0x10EC && + rtlefuse->eeprom_smid == 0x9196)) { + rtlhal->oem_id = RT_CID_819X_CLEVO; + } else if ((rtlefuse->eeprom_svid == 0x1028 && + rtlefuse->eeprom_smid == 0x8194) || + (rtlefuse->eeprom_svid == 0x1028 && + rtlefuse->eeprom_smid == 0x8198) || + (rtlefuse->eeprom_svid == 0x1028 && + rtlefuse->eeprom_smid == 0x9197) || + (rtlefuse->eeprom_svid == 0x1028 && + rtlefuse->eeprom_smid == 0x9198)) { + rtlhal->oem_id = RT_CID_819X_DELL; + } else if ((rtlefuse->eeprom_svid == 0x103C && + rtlefuse->eeprom_smid == 0x1629)) { + rtlhal->oem_id = RT_CID_819X_HP; + } else if ((rtlefuse->eeprom_svid == 0x1A32 && + rtlefuse->eeprom_smid == 0x2315)) { + rtlhal->oem_id = RT_CID_819X_QMI; + } else if ((rtlefuse->eeprom_svid == 0x10EC && + rtlefuse->eeprom_smid == 0x8203)) { + rtlhal->oem_id = RT_CID_819X_PRONETS; + } else if ((rtlefuse->eeprom_svid == 0x1043 && + rtlefuse->eeprom_smid == 0x84B5)) { + rtlhal->oem_id = RT_CID_819X_EDIMAX_ASUS; + } else { + rtlhal->oem_id = RT_CID_DEFAULT; + } + } else if (rtlefuse->eeprom_did == 0x8178) { + if (rtlefuse->eeprom_svid == 0x10EC && + is_toshiba_smid2) + rtlhal->oem_id = RT_CID_TOSHIBA; + else if (rtlefuse->eeprom_svid == 0x1025) + rtlhal->oem_id = RT_CID_819X_ACER; + else if ((rtlefuse->eeprom_svid == 0x10EC && + rtlefuse->eeprom_smid == 0x8186)) + rtlhal->oem_id = RT_CID_819X_PRONETS; + else if ((rtlefuse->eeprom_svid == 0x1043 && + rtlefuse->eeprom_smid == 0x84B6)) + rtlhal->oem_id = + RT_CID_819X_EDIMAX_ASUS; + else + rtlhal->oem_id = RT_CID_DEFAULT; + } else { + rtlhal->oem_id = RT_CID_DEFAULT; + } + break; + case EEPROM_CID_TOSHIBA: + rtlhal->oem_id = RT_CID_TOSHIBA; + break; + case EEPROM_CID_CCX: + rtlhal->oem_id = RT_CID_CCX; + break; + case EEPROM_CID_QMI: + rtlhal->oem_id = RT_CID_819X_QMI; + break; + case EEPROM_CID_WHQL: + break; + default: + rtlhal->oem_id = RT_CID_DEFAULT; + break; + } + } +} + +static void _rtl8723be_hal_customized_behavior(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + + pcipriv->ledctl.led_opendrain = true; + switch (rtlhal->oem_id) { + case RT_CID_819X_HP: + pcipriv->ledctl.led_opendrain = true; + break; + case RT_CID_819X_LENOVO: + case RT_CID_DEFAULT: + case RT_CID_TOSHIBA: + case RT_CID_CCX: + case RT_CID_819X_ACER: + case RT_CID_WHQL: + default: + break; + } + RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, + "RT Customized ID: 0x%02X\n", rtlhal->oem_id); +} + +void rtl8723be_read_eeprom_info(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 tmp_u1b; + + rtlhal->version = _rtl8723be_read_chip_version(hw); + if (get_rf_type(rtlphy) == RF_1T1R) + rtlpriv->dm.rfpath_rxenable[0] = true; + else + rtlpriv->dm.rfpath_rxenable[0] = + rtlpriv->dm.rfpath_rxenable[1] = true; + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "VersionID = 0x%4x\n", + rtlhal->version); + tmp_u1b = rtl_read_byte(rtlpriv, REG_9346CR); + if (tmp_u1b & BIT(4)) { + RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "Boot from EEPROM\n"); + rtlefuse->epromtype = EEPROM_93C46; + } else { + RT_TRACE(rtlpriv, COMP_INIT, DBG_DMESG, "Boot from EFUSE\n"); + rtlefuse->epromtype = EEPROM_BOOT_EFUSE; + } + if (tmp_u1b & BIT(5)) { + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Autoload OK\n"); + rtlefuse->autoload_failflag = false; + _rtl8723be_read_adapter_info(hw, false); + } else { + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Autoload ERR!!\n"); + } + _rtl8723be_hal_customized_behavior(hw); +} + +static void rtl8723be_update_hal_rate_table(struct ieee80211_hw *hw, + struct ieee80211_sta *sta) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u32 ratr_value; + u8 ratr_index = 0; + u8 nmode = mac->ht_enable; + u8 mimo_ps = IEEE80211_SMPS_OFF; + u16 shortgi_rate; + u32 tmp_ratr_value; + u8 curtxbw_40mhz = mac->bw_40; + u8 curshortgi_40mhz = (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_40) ? + 1 : 0; + u8 curshortgi_20mhz = (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_20) ? + 1 : 0; + enum wireless_mode wirelessmode = mac->mode; + + if (rtlhal->current_bandtype == BAND_ON_5G) + ratr_value = sta->supp_rates[1] << 4; + else + ratr_value = sta->supp_rates[0]; + if (mac->opmode == NL80211_IFTYPE_ADHOC) + ratr_value = 0xfff; + ratr_value |= (sta->ht_cap.mcs.rx_mask[1] << 20 | + sta->ht_cap.mcs.rx_mask[0] << 12); + switch (wirelessmode) { + case WIRELESS_MODE_B: + if (ratr_value & 0x0000000c) + ratr_value &= 0x0000000d; + else + ratr_value &= 0x0000000f; + break; + case WIRELESS_MODE_G: + ratr_value &= 0x00000FF5; + break; + case WIRELESS_MODE_N_24G: + case WIRELESS_MODE_N_5G: + nmode = 1; + if (mimo_ps == IEEE80211_SMPS_STATIC) { + ratr_value &= 0x0007F005; + } else { + u32 ratr_mask; + + if (get_rf_type(rtlphy) == RF_1T2R || + get_rf_type(rtlphy) == RF_1T1R) + ratr_mask = 0x000ff005; + else + ratr_mask = 0x0f0ff005; + ratr_value &= ratr_mask; + } + break; + default: + if (rtlphy->rf_type == RF_1T2R) + ratr_value &= 0x000ff0ff; + else + ratr_value &= 0x0f0ff0ff; + break; + } + if ((rtlpriv->btcoexist.bt_coexistence) && + (rtlpriv->btcoexist.bt_coexist_type == BT_CSR_BC4) && + (rtlpriv->btcoexist.bt_cur_state) && + (rtlpriv->btcoexist.bt_ant_isolation) && + ((rtlpriv->btcoexist.bt_service == BT_SCO) || + (rtlpriv->btcoexist.bt_service == BT_BUSY))) + ratr_value &= 0x0fffcfc0; + else + ratr_value &= 0x0FFFFFFF; + + if (nmode && ((curtxbw_40mhz && curshortgi_40mhz) || + (!curtxbw_40mhz && curshortgi_20mhz))) { + ratr_value |= 0x10000000; + tmp_ratr_value = (ratr_value >> 12); + + for (shortgi_rate = 15; shortgi_rate > 0; shortgi_rate--) { + if ((1 << shortgi_rate) & tmp_ratr_value) + break; + } + shortgi_rate = (shortgi_rate << 12) | (shortgi_rate << 8) | + (shortgi_rate << 4) | (shortgi_rate); + } + rtl_write_dword(rtlpriv, REG_ARFR0 + ratr_index * 4, ratr_value); + + RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG, + "%x\n", rtl_read_dword(rtlpriv, REG_ARFR0)); +} + +static u8 _rtl8723be_mrate_idx_to_arfr_id(struct ieee80211_hw *hw, + u8 rate_index) +{ + u8 ret = 0; + + switch (rate_index) { + case RATR_INX_WIRELESS_NGB: + ret = 1; + break; + case RATR_INX_WIRELESS_N: + case RATR_INX_WIRELESS_NG: + ret = 5; + break; + case RATR_INX_WIRELESS_NB: + ret = 3; + break; + case RATR_INX_WIRELESS_GB: + ret = 6; + break; + case RATR_INX_WIRELESS_G: + ret = 7; + break; + case RATR_INX_WIRELESS_B: + ret = 8; + break; + default: + ret = 0; + break; + } + return ret; +} + +static void rtl8723be_update_hal_rate_mask(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, + u8 rssi_level) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_sta_info *sta_entry = NULL; + u32 ratr_bitmap; + u8 ratr_index; + u8 curtxbw_40mhz = (sta->ht_cap.cap & + IEEE80211_HT_CAP_SUP_WIDTH_20_40) ? 1 : 0; + u8 curshortgi_40mhz = (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_40) ? + 1 : 0; + u8 curshortgi_20mhz = (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_20) ? + 1 : 0; + enum wireless_mode wirelessmode = 0; + bool shortgi = false; + u8 rate_mask[7]; + u8 macid = 0; + u8 mimo_ps = IEEE80211_SMPS_OFF; + + sta_entry = (struct rtl_sta_info *)sta->drv_priv; + wirelessmode = sta_entry->wireless_mode; + if (mac->opmode == NL80211_IFTYPE_STATION || + mac->opmode == NL80211_IFTYPE_MESH_POINT) + curtxbw_40mhz = mac->bw_40; + else if (mac->opmode == NL80211_IFTYPE_AP || + mac->opmode == NL80211_IFTYPE_ADHOC) + macid = sta->aid + 1; + + ratr_bitmap = sta->supp_rates[0]; + + if (mac->opmode == NL80211_IFTYPE_ADHOC) + ratr_bitmap = 0xfff; + + ratr_bitmap |= (sta->ht_cap.mcs.rx_mask[1] << 20 | + sta->ht_cap.mcs.rx_mask[0] << 12); + switch (wirelessmode) { + case WIRELESS_MODE_B: + ratr_index = RATR_INX_WIRELESS_B; + if (ratr_bitmap & 0x0000000c) + ratr_bitmap &= 0x0000000d; + else + ratr_bitmap &= 0x0000000f; + break; + case WIRELESS_MODE_G: + ratr_index = RATR_INX_WIRELESS_GB; + + if (rssi_level == 1) + ratr_bitmap &= 0x00000f00; + else if (rssi_level == 2) + ratr_bitmap &= 0x00000ff0; + else + ratr_bitmap &= 0x00000ff5; + break; + case WIRELESS_MODE_A: + ratr_index = RATR_INX_WIRELESS_A; + ratr_bitmap &= 0x00000ff0; + break; + case WIRELESS_MODE_N_24G: + case WIRELESS_MODE_N_5G: + ratr_index = RATR_INX_WIRELESS_NGB; + + if (mimo_ps == IEEE80211_SMPS_STATIC || + mimo_ps == IEEE80211_SMPS_DYNAMIC) { + if (rssi_level == 1) + ratr_bitmap &= 0x00070000; + else if (rssi_level == 2) + ratr_bitmap &= 0x0007f000; + else + ratr_bitmap &= 0x0007f005; + } else { + if (rtlphy->rf_type == RF_1T1R) { + if (curtxbw_40mhz) { + if (rssi_level == 1) + ratr_bitmap &= 0x000f0000; + else if (rssi_level == 2) + ratr_bitmap &= 0x000ff000; + else + ratr_bitmap &= 0x000ff015; + } else { + if (rssi_level == 1) + ratr_bitmap &= 0x000f0000; + else if (rssi_level == 2) + ratr_bitmap &= 0x000ff000; + else + ratr_bitmap &= 0x000ff005; + } + } else { + if (curtxbw_40mhz) { + if (rssi_level == 1) + ratr_bitmap &= 0x0f8f0000; + else if (rssi_level == 2) + ratr_bitmap &= 0x0f8ff000; + else + ratr_bitmap &= 0x0f8ff015; + } else { + if (rssi_level == 1) + ratr_bitmap &= 0x0f8f0000; + else if (rssi_level == 2) + ratr_bitmap &= 0x0f8ff000; + else + ratr_bitmap &= 0x0f8ff005; + } + } + } + if ((curtxbw_40mhz && curshortgi_40mhz) || + (!curtxbw_40mhz && curshortgi_20mhz)) { + if (macid == 0) + shortgi = true; + else if (macid == 1) + shortgi = false; + } + break; + default: + ratr_index = RATR_INX_WIRELESS_NGB; + + if (rtlphy->rf_type == RF_1T2R) + ratr_bitmap &= 0x000ff0ff; + else + ratr_bitmap &= 0x0f0ff0ff; + break; + } + sta_entry->ratr_index = ratr_index; + + RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG, + "ratr_bitmap :%x\n", ratr_bitmap); + *(u32 *)&rate_mask = EF4BYTE((ratr_bitmap & 0x0fffffff) | + (ratr_index << 28)); + rate_mask[0] = macid; + rate_mask[1] = _rtl8723be_mrate_idx_to_arfr_id(hw, ratr_index) | + (shortgi ? 0x80 : 0x00); + rate_mask[2] = curtxbw_40mhz; + /* if (prox_priv->proxim_modeinfo->power_output > 0) + * rate_mask[2] |= BIT(6); + */ + + rate_mask[3] = (u8)(ratr_bitmap & 0x000000ff); + rate_mask[4] = (u8)((ratr_bitmap & 0x0000ff00) >> 8); + rate_mask[5] = (u8)((ratr_bitmap & 0x00ff0000) >> 16); + rate_mask[6] = (u8)((ratr_bitmap & 0xff000000) >> 24); + + RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG, + "Rate_index:%x, ratr_val:%x, %x:%x:%x:%x:%x:%x:%x\n", + ratr_index, ratr_bitmap, + rate_mask[0], rate_mask[1], + rate_mask[2], rate_mask[3], + rate_mask[4], rate_mask[5], + rate_mask[6]); + rtl8723be_fill_h2c_cmd(hw, H2C_8723BE_RA_MASK, 7, rate_mask); + _rtl8723be_set_bcn_ctrl_reg(hw, BIT(3), 0); +} + +void rtl8723be_update_hal_rate_tbl(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, + u8 rssi_level) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + if (rtlpriv->dm.useramask) + rtl8723be_update_hal_rate_mask(hw, sta, rssi_level); + else + rtl8723be_update_hal_rate_table(hw, sta); +} + +void rtl8723be_update_channel_access_setting(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + u16 sifs_timer; + + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SLOT_TIME, + (u8 *)&mac->slot_time); + if (!mac->ht_enable) + sifs_timer = 0x0a0a; + else + sifs_timer = 0x0e0e; + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SIFS, (u8 *)&sifs_timer); +} + +bool rtl8723be_gpio_radio_on_off_checking(struct ieee80211_hw *hw, u8 *valid) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + enum rf_pwrstate e_rfpowerstate_toset, cur_rfstate; + u8 u1tmp; + bool actuallyset = false; + + if (rtlpriv->rtlhal.being_init_adapter) + return false; + + if (ppsc->swrf_processing) + return false; + + spin_lock(&rtlpriv->locks.rf_ps_lock); + if (ppsc->rfchange_inprogress) { + spin_unlock(&rtlpriv->locks.rf_ps_lock); + return false; + } else { + ppsc->rfchange_inprogress = true; + spin_unlock(&rtlpriv->locks.rf_ps_lock); + } + cur_rfstate = ppsc->rfpwr_state; + + rtl_write_byte(rtlpriv, REG_GPIO_IO_SEL_2, + rtl_read_byte(rtlpriv, REG_GPIO_IO_SEL_2) & ~(BIT(1))); + + u1tmp = rtl_read_byte(rtlpriv, REG_GPIO_PIN_CTRL_2); + + if (rtlphy->polarity_ctl) + e_rfpowerstate_toset = (u1tmp & BIT(1)) ? ERFOFF : ERFON; + else + e_rfpowerstate_toset = (u1tmp & BIT(1)) ? ERFON : ERFOFF; + + if (ppsc->hwradiooff && + (e_rfpowerstate_toset == ERFON)) { + RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG, + "GPIOChangeRF - HW Radio ON, RF ON\n"); + + e_rfpowerstate_toset = ERFON; + ppsc->hwradiooff = false; + actuallyset = true; + } else if (!ppsc->hwradiooff && + (e_rfpowerstate_toset == ERFOFF)) { + RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG, + "GPIOChangeRF - HW Radio OFF, RF OFF\n"); + + e_rfpowerstate_toset = ERFOFF; + ppsc->hwradiooff = true; + actuallyset = true; + } + if (actuallyset) { + spin_lock(&rtlpriv->locks.rf_ps_lock); + ppsc->rfchange_inprogress = false; + spin_unlock(&rtlpriv->locks.rf_ps_lock); + } else { + if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_HALT_NIC) + RT_SET_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC); + + spin_lock(&rtlpriv->locks.rf_ps_lock); + ppsc->rfchange_inprogress = false; + spin_unlock(&rtlpriv->locks.rf_ps_lock); + } + *valid = 1; + return !ppsc->hwradiooff; +} + +void rtl8723be_set_key(struct ieee80211_hw *hw, u32 key_index, + u8 *p_macaddr, bool is_group, u8 enc_algo, + bool is_wepkey, bool clear_all) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + u8 *macaddr = p_macaddr; + u32 entry_id = 0; + bool is_pairwise = false; + + static u8 cam_const_addr[4][6] = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x01}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x02}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x03} + }; + static u8 cam_const_broad[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + }; + + if (clear_all) { + u8 idx = 0; + u8 cam_offset = 0; + u8 clear_number = 5; + + RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "clear_all\n"); + + for (idx = 0; idx < clear_number; idx++) { + rtl_cam_mark_invalid(hw, cam_offset + idx); + rtl_cam_empty_entry(hw, cam_offset + idx); + + if (idx < 5) { + memset(rtlpriv->sec.key_buf[idx], 0, + MAX_KEY_LEN); + rtlpriv->sec.key_len[idx] = 0; + } + } + } else { + switch (enc_algo) { + case WEP40_ENCRYPTION: + enc_algo = CAM_WEP40; + break; + case WEP104_ENCRYPTION: + enc_algo = CAM_WEP104; + break; + case TKIP_ENCRYPTION: + enc_algo = CAM_TKIP; + break; + case AESCCMP_ENCRYPTION: + enc_algo = CAM_AES; + break; + default: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "switch case not process\n"); + enc_algo = CAM_TKIP; + break; + } + + if (is_wepkey || rtlpriv->sec.use_defaultkey) { + macaddr = cam_const_addr[key_index]; + entry_id = key_index; + } else { + if (is_group) { + macaddr = cam_const_broad; + entry_id = key_index; + } else { + if (mac->opmode == NL80211_IFTYPE_AP) { + entry_id = rtl_cam_get_free_entry(hw, + p_macaddr); + if (entry_id >= TOTAL_CAM_ENTRY) { + RT_TRACE(rtlpriv, COMP_SEC, + DBG_EMERG, + "Can not find free" + " hw security cam " + "entry\n"); + return; + } + } else { + entry_id = CAM_PAIRWISE_KEY_POSITION; + } + key_index = PAIRWISE_KEYIDX; + is_pairwise = true; + } + } + if (rtlpriv->sec.key_len[key_index] == 0) { + RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, + "delete one entry, entry_id is %d\n", + entry_id); + if (mac->opmode == NL80211_IFTYPE_AP) + rtl_cam_del_entry(hw, p_macaddr); + rtl_cam_delete_one_entry(hw, p_macaddr, entry_id); + } else { + RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, + "add one entry\n"); + if (is_pairwise) { + RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, + "set Pairwise key\n"); + + rtl_cam_add_one_entry(hw, macaddr, key_index, + entry_id, enc_algo, + CAM_CONFIG_NO_USEDK, + rtlpriv->sec.key_buf[key_index]); + } else { + RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, + "set group key\n"); + + if (mac->opmode == NL80211_IFTYPE_ADHOC) { + rtl_cam_add_one_entry(hw, + rtlefuse->dev_addr, + PAIRWISE_KEYIDX, + CAM_PAIRWISE_KEY_POSITION, + enc_algo, + CAM_CONFIG_NO_USEDK, + rtlpriv->sec.key_buf + [entry_id]); + } + rtl_cam_add_one_entry(hw, macaddr, key_index, + entry_id, enc_algo, + CAM_CONFIG_NO_USEDK, + rtlpriv->sec.key_buf[entry_id]); + } + } + } +} + +void rtl8723be_read_bt_coexist_info_from_hwpg(struct ieee80211_hw *hw, + bool auto_load_fail, u8 *hwinfo) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 value; + u32 tmpu_32; + + if (!auto_load_fail) { + tmpu_32 = rtl_read_dword(rtlpriv, REG_MULTI_FUNC_CTRL); + if (tmpu_32 & BIT(18)) + rtlpriv->btcoexist.btc_info.btcoexist = 1; + else + rtlpriv->btcoexist.btc_info.btcoexist = 0; + value = hwinfo[RF_OPTION4]; + rtlpriv->btcoexist.btc_info.bt_type = BT_RTL8723B; + rtlpriv->btcoexist.btc_info.ant_num = (value & 0x1); + } else { + rtlpriv->btcoexist.btc_info.btcoexist = 0; + rtlpriv->btcoexist.btc_info.bt_type = BT_RTL8723B; + rtlpriv->btcoexist.btc_info.ant_num = ANT_X2; + } +} + +void rtl8723be_bt_reg_init(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + /* 0:Low, 1:High, 2:From Efuse. */ + rtlpriv->btcoexist.reg_bt_iso = 2; + /* 0:Idle, 1:None-SCO, 2:SCO, 3:From Counter. */ + rtlpriv->btcoexist.reg_bt_sco = 3; + /* 0:Disable BT control A-MPDU, 1:Enable BT control A-MPDU. */ + rtlpriv->btcoexist.reg_bt_sco = 0; +} + +void rtl8723be_bt_hw_init(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if (rtlpriv->cfg->ops->get_btc_status()) + rtlpriv->btcoexist.btc_ops->btc_init_hw_config(rtlpriv); +} + +void rtl8723be_suspend(struct ieee80211_hw *hw) +{ +} + +void rtl8723be_resume(struct ieee80211_hw *hw) +{ +} + +/* Turn on AAP (RCR:bit 0) for promicuous mode. */ +void rtl8723be_allow_all_destaddr(struct ieee80211_hw *hw, bool allow_all_da, + bool write_into_reg) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + + if (allow_all_da) /* Set BIT0 */ + rtlpci->receive_config |= RCR_AAP; + else /* Clear BIT0 */ + rtlpci->receive_config &= ~RCR_AAP; + + if (write_into_reg) + rtl_write_dword(rtlpriv, REG_RCR, rtlpci->receive_config); + + RT_TRACE(rtlpriv, COMP_TURBO | COMP_INIT, DBG_LOUD, + "receive_config = 0x%08X, write_into_reg =%d\n", + rtlpci->receive_config, write_into_reg); +} --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/hw.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/hw.h @@ -0,0 +1,64 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8723BE_HW_H__ +#define __RTL8723BE_HW_H__ + +void rtl8723be_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val); +void rtl8723be_read_eeprom_info(struct ieee80211_hw *hw); + +void rtl8723be_interrupt_recognized(struct ieee80211_hw *hw, + u32 *p_inta, u32 *p_intb); +int rtl8723be_hw_init(struct ieee80211_hw *hw); +void rtl8723be_card_disable(struct ieee80211_hw *hw); +void rtl8723be_enable_interrupt(struct ieee80211_hw *hw); +void rtl8723be_disable_interrupt(struct ieee80211_hw *hw); +int rtl8723be_set_network_type(struct ieee80211_hw *hw, + enum nl80211_iftype type); +void rtl8723be_set_check_bssid(struct ieee80211_hw *hw, bool check_bssid); +void rtl8723be_set_qos(struct ieee80211_hw *hw, int aci); +void rtl8723be_set_beacon_related_registers(struct ieee80211_hw *hw); +void rtl8723be_set_beacon_interval(struct ieee80211_hw *hw); +void rtl8723be_update_interrupt_mask(struct ieee80211_hw *hw, + u32 add_msr, u32 rm_msr); +void rtl8723be_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val); +void rtl8723be_update_hal_rate_tbl(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, + u8 rssi_level); +void rtl8723be_update_channel_access_setting(struct ieee80211_hw *hw); +bool rtl8723be_gpio_radio_on_off_checking(struct ieee80211_hw *hw, u8 *valid); +void rtl8723be_enable_hw_security_config(struct ieee80211_hw *hw); +void rtl8723be_set_key(struct ieee80211_hw *hw, u32 key_index, + u8 *p_macaddr, bool is_group, u8 enc_algo, + bool is_wepkey, bool clear_all); +void rtl8723be_read_bt_coexist_info_from_hwpg(struct ieee80211_hw *hw, + bool autoload_fail, u8 *hwinfo); +void rtl8723be_bt_reg_init(struct ieee80211_hw *hw); +void rtl8723be_bt_hw_init(struct ieee80211_hw *hw); +void rtl8723be_suspend(struct ieee80211_hw *hw); +void rtl8723be_resume(struct ieee80211_hw *hw); +void rtl8723be_allow_all_destaddr(struct ieee80211_hw *hw, bool allow_all_da, + bool write_into_reg); +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/led.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/led.c @@ -0,0 +1,153 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "../pci.h" +#include "reg.h" +#include "led.h" + +static void _rtl8723be_init_led(struct ieee80211_hw *hw, struct rtl_led *pled, + enum rtl_led_pin ledpin) +{ + pled->hw = hw; + pled->ledpin = ledpin; + pled->ledon = false; +} + +void rtl8723be_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled) +{ + u8 ledcfg; + struct rtl_priv *rtlpriv = rtl_priv(hw); + + RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, + "LedAddr:%X ledpin =%d\n", REG_LEDCFG2, pled->ledpin); + + switch (pled->ledpin) { + case LED_PIN_GPIO0: + break; + case LED_PIN_LED0: + ledcfg = rtl_read_byte(rtlpriv, REG_LEDCFG2); + ledcfg &= ~BIT(6); + rtl_write_byte(rtlpriv, REG_LEDCFG2, (ledcfg & 0xf0) | BIT(5)); + break; + case LED_PIN_LED1: + ledcfg = rtl_read_byte(rtlpriv, REG_LEDCFG1); + rtl_write_byte(rtlpriv, REG_LEDCFG1, ledcfg & 0x10); + break; + default: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "switch case not process\n"); + break; + } + pled->ledon = true; +} + +void rtl8723be_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + u8 ledcfg; + + RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, + "LedAddr:%X ledpin =%d\n", REG_LEDCFG2, pled->ledpin); + + ledcfg = rtl_read_byte(rtlpriv, REG_LEDCFG2); + + switch (pled->ledpin) { + case LED_PIN_GPIO0: + break; + case LED_PIN_LED0: + ledcfg &= 0xf0; + if (pcipriv->ledctl.led_opendrain) { + ledcfg &= 0x90; /* Set to software control. */ + rtl_write_byte(rtlpriv, REG_LEDCFG2, (ledcfg|BIT(3))); + ledcfg = rtl_read_byte(rtlpriv, REG_MAC_PINMUX_CFG); + ledcfg &= 0xFE; + rtl_write_byte(rtlpriv, REG_MAC_PINMUX_CFG, ledcfg); + } else { + ledcfg &= ~BIT(6); + rtl_write_byte(rtlpriv, REG_LEDCFG2, + (ledcfg | BIT(3) | BIT(5))); + } + break; + case LED_PIN_LED1: + ledcfg = rtl_read_byte(rtlpriv, REG_LEDCFG1); + ledcfg &= 0x10; /* Set to software control. */ + rtl_write_byte(rtlpriv, REG_LEDCFG1, ledcfg|BIT(3)); + + break; + default: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "switch case not processed\n"); + break; + } + pled->ledon = false; +} + +void rtl8723be_init_sw_leds(struct ieee80211_hw *hw) +{ + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + _rtl8723be_init_led(hw, &(pcipriv->ledctl.sw_led0), LED_PIN_LED0); + _rtl8723be_init_led(hw, &(pcipriv->ledctl.sw_led1), LED_PIN_LED1); +} + +static void _rtl8723be_sw_led_control(struct ieee80211_hw *hw, + enum led_ctl_mode ledaction) +{ + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_led *pled0 = &(pcipriv->ledctl.sw_led0); + switch (ledaction) { + case LED_CTL_POWER_ON: + case LED_CTL_LINK: + case LED_CTL_NO_LINK: + rtl8723be_sw_led_on(hw, pled0); + break; + case LED_CTL_POWER_OFF: + rtl8723be_sw_led_off(hw, pled0); + break; + default: + break; + } +} + +void rtl8723be_led_control(struct ieee80211_hw *hw, + enum led_ctl_mode ledaction) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + + if ((ppsc->rfoff_reason > RF_CHANGE_BY_PS) && + (ledaction == LED_CTL_TX || + ledaction == LED_CTL_RX || + ledaction == LED_CTL_SITE_SURVEY || + ledaction == LED_CTL_LINK || + ledaction == LED_CTL_NO_LINK || + ledaction == LED_CTL_START_TO_LINK || + ledaction == LED_CTL_POWER_ON)) { + return; + } + RT_TRACE(rtlpriv, COMP_LED, DBG_LOUD, "ledaction %d,\n", ledaction); + _rtl8723be_sw_led_control(hw, ledaction); +} --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/led.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/led.h @@ -0,0 +1,35 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8723BE_LED_H__ +#define __RTL8723BE_LED_H__ + +void rtl8723be_init_sw_leds(struct ieee80211_hw *hw); +void rtl8723be_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled); +void rtl8723be_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled); +void rtl8723be_led_control(struct ieee80211_hw *hw, + enum led_ctl_mode ledaction); + +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/phy.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/phy.c @@ -0,0 +1,2175 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "../pci.h" +#include "../ps.h" +#include "reg.h" +#include "def.h" +#include "phy.h" +#include "../rtl8723com/phy_common.h" +#include "rf.h" +#include "dm.h" +#include "table.h" +#include "trx.h" + +static bool _rtl8723be_phy_bb8723b_config_parafile(struct ieee80211_hw *hw); +static bool _rtl8723be_phy_config_bb_with_pgheaderfile(struct ieee80211_hw *hw, + u8 configtype); +static bool rtl8723be_phy_sw_chn_step_by_step(struct ieee80211_hw *hw, + u8 channel, u8 *stage, + u8 *step, u32 *delay); +static void _rtl8723be_config_bb_reg(struct ieee80211_hw *hw, + u32 addr, u32 data); + +static bool _rtl8723be_check_condition(struct ieee80211_hw *hw, + const u32 condition) +{ + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + u32 _board = rtlefuse->board_type; /*need efuse define*/ + u32 _interface = rtlhal->interface; + u32 _platform = 0x08;/*SupportPlatform */ + u32 cond = condition; + + if (condition == 0xCDCDCDCD) + return true; + + cond = condition & 0xFF; + if ((_board & cond) == 0 && cond != 0x1F) + return false; + + cond = condition & 0xFF00; + cond = cond >> 8; + if ((_interface & cond) == 0 && cond != 0x07) + return false; + + cond = condition & 0xFF0000; + cond = cond >> 16; + if ((_platform & cond) == 0 && cond != 0x0F) + return false; + return true; +} + +static bool _rtl8723be_phy_config_mac_with_headerfile(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 i; + u32 arraylength; + u32 *ptrarray; + + RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "Read rtl8723beMACPHY_Array\n"); + arraylength = RTL8723BEMAC_1T_ARRAYLEN; + ptrarray = RTL8723BEMAC_1T_ARRAY; + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "Img:RTL8723bEMAC_1T_ARRAY LEN %d\n", arraylength); + for (i = 0; i < arraylength; i = i + 2) + rtl_write_byte(rtlpriv, ptrarray[i], (u8) ptrarray[i + 1]); + return true; +} + +static bool _rtl8723be_phy_config_bb_with_headerfile(struct ieee80211_hw *hw, + u8 configtype) +{ + #define READ_NEXT_PAIR(v1, v2, i) \ + do { \ + i += 2; \ + v1 = array_table[i];\ + v2 = array_table[i+1]; \ + } while (0) + + int i; + u32 *array_table; + u16 arraylen; + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 v1 = 0, v2 = 0; + + if (configtype == BASEBAND_CONFIG_PHY_REG) { + arraylen = RTL8723BEPHY_REG_1TARRAYLEN; + array_table = RTL8723BEPHY_REG_1TARRAY; + + for (i = 0; i < arraylen; i = i + 2) { + v1 = array_table[i]; + v2 = array_table[i+1]; + if (v1 < 0xcdcdcdcd) { + _rtl8723be_config_bb_reg(hw, v1, v2); + } else {/*This line is the start line of branch.*/ + if (!_rtl8723be_check_condition(hw, array_table[i])) { + /*Discard the following (offset, data) pairs*/ + READ_NEXT_PAIR(v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && + i < arraylen - 2) { + READ_NEXT_PAIR(v1, v2, i); + } + i -= 2; /* prevent from for-loop += 2*/ + /* Configure matched pairs and + * skip to end of if-else. + */ + } else { + READ_NEXT_PAIR(v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && + i < arraylen - 2) { + _rtl8723be_config_bb_reg(hw, + v1, v2); + READ_NEXT_PAIR(v1, v2, i); + } + + while (v2 != 0xDEAD && i < arraylen - 2) + READ_NEXT_PAIR(v1, v2, i); + } + } + } + } else if (configtype == BASEBAND_CONFIG_AGC_TAB) { + arraylen = RTL8723BEAGCTAB_1TARRAYLEN; + array_table = RTL8723BEAGCTAB_1TARRAY; + + for (i = 0; i < arraylen; i = i + 2) { + v1 = array_table[i]; + v2 = array_table[i+1]; + if (v1 < 0xCDCDCDCD) { + rtl_set_bbreg(hw, array_table[i], + MASKDWORD, + array_table[i + 1]); + udelay(1); + continue; + } else {/*This line is the start line of branch.*/ + if (!_rtl8723be_check_condition(hw, array_table[i])) { + /* Discard the following + * (offset, data) pairs + */ + READ_NEXT_PAIR(v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && + i < arraylen - 2) { + READ_NEXT_PAIR(v1, v2, i); + } + i -= 2; /* prevent from for-loop += 2*/ + /*Configure matched pairs and + *skip to end of if-else. + */ + } else { + READ_NEXT_PAIR(v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && + i < arraylen - 2) { + rtl_set_bbreg(hw, array_table[i], + MASKDWORD, + array_table[i + 1]); + udelay(1); + READ_NEXT_PAIR(v1, v2, i); + } + + while (v2 != 0xDEAD && i < arraylen - 2) + READ_NEXT_PAIR(v1, v2, i); + } + } + RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, + "The agctab_array_table[0] is " + "%x Rtl818EEPHY_REGArray[1] is %x\n", + array_table[i], array_table[i + 1]); + } + } + return true; +} + +static u8 _rtl8723be_get_rate_section_index(u32 regaddr) +{ + u8 index = 0; + + switch (regaddr) { + case RTXAGC_A_RATE18_06: + case RTXAGC_B_RATE18_06: + index = 0; + break; + case RTXAGC_A_RATE54_24: + case RTXAGC_B_RATE54_24: + index = 1; + break; + case RTXAGC_A_CCK1_MCS32: + case RTXAGC_B_CCK1_55_MCS32: + index = 2; + break; + case RTXAGC_B_CCK11_A_CCK2_11: + index = 3; + break; + case RTXAGC_A_MCS03_MCS00: + case RTXAGC_B_MCS03_MCS00: + index = 4; + break; + case RTXAGC_A_MCS07_MCS04: + case RTXAGC_B_MCS07_MCS04: + index = 5; + break; + case RTXAGC_A_MCS11_MCS08: + case RTXAGC_B_MCS11_MCS08: + index = 6; + break; + case RTXAGC_A_MCS15_MCS12: + case RTXAGC_B_MCS15_MCS12: + index = 7; + break; + default: + regaddr &= 0xFFF; + if (regaddr >= 0xC20 && regaddr <= 0xC4C) + index = (u8) ((regaddr - 0xC20) / 4); + else if (regaddr >= 0xE20 && regaddr <= 0xE4C) + index = (u8) ((regaddr - 0xE20) / 4); + break; + }; + return index; +} + +u32 rtl8723be_phy_query_rf_reg(struct ieee80211_hw *hw, enum radio_path rfpath, + u32 regaddr, u32 bitmask) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 original_value, readback_value, bitshift; + unsigned long flags; + + RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, + "regaddr(%#x), rfpath(%#x), bitmask(%#x)\n", + regaddr, rfpath, bitmask); + + spin_lock_irqsave(&rtlpriv->locks.rf_lock, flags); + + original_value = rtl8723_phy_rf_serial_read(hw, rfpath, regaddr); + bitshift = rtl8723_phy_calculate_bit_shift(bitmask); + readback_value = (original_value & bitmask) >> bitshift; + + spin_unlock_irqrestore(&rtlpriv->locks.rf_lock, flags); + + RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, + "regaddr(%#x), rfpath(%#x), " + "bitmask(%#x), original_value(%#x)\n", + regaddr, rfpath, bitmask, original_value); + + return readback_value; +} + +void rtl8723be_phy_set_rf_reg(struct ieee80211_hw *hw, enum radio_path path, + u32 regaddr, u32 bitmask, u32 data) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 original_value, bitshift; + unsigned long flags; + + RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, + "regaddr(%#x), bitmask(%#x), data(%#x), rfpath(%#x)\n", + regaddr, bitmask, data, path); + + spin_lock_irqsave(&rtlpriv->locks.rf_lock, flags); + + if (bitmask != RFREG_OFFSET_MASK) { + original_value = rtl8723_phy_rf_serial_read(hw, path, + regaddr); + bitshift = rtl8723_phy_calculate_bit_shift(bitmask); + data = ((original_value & (~bitmask)) | + (data << bitshift)); + } + + rtl8723_phy_rf_serial_write(hw, path, regaddr, data); + + spin_unlock_irqrestore(&rtlpriv->locks.rf_lock, flags); + + RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, + "regaddr(%#x), bitmask(%#x), data(%#x), rfpath(%#x)\n", + regaddr, bitmask, data, path); +} + +bool rtl8723be_phy_mac_config(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + bool rtstatus = _rtl8723be_phy_config_mac_with_headerfile(hw); + + rtl_write_byte(rtlpriv, 0x04CA, 0x0B); + return rtstatus; +} + +bool rtl8723be_phy_bb_config(struct ieee80211_hw *hw) +{ + bool rtstatus = true; + struct rtl_priv *rtlpriv = rtl_priv(hw); + u16 regval; + u8 reg_hwparafile = 1; + u32 tmp; + u8 crystalcap = rtlpriv->efuse.crystalcap; + rtl8723_phy_init_bb_rf_reg_def(hw); + regval = rtl_read_word(rtlpriv, REG_SYS_FUNC_EN); + rtl_write_word(rtlpriv, REG_SYS_FUNC_EN, + regval | BIT(13) | BIT(0) | BIT(1)); + + rtl_write_byte(rtlpriv, REG_RF_CTRL, RF_EN | RF_RSTB | RF_SDMRSTB); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, + FEN_PPLL | FEN_PCIEA | FEN_DIO_PCIE | + FEN_BB_GLB_RSTN | FEN_BBRSTB); + tmp = rtl_read_dword(rtlpriv, 0x4c); + rtl_write_dword(rtlpriv, 0x4c, tmp | BIT(23)); + + rtl_write_byte(rtlpriv, REG_AFE_XTAL_CTRL + 1, 0x80); + + if (reg_hwparafile == 1) + rtstatus = _rtl8723be_phy_bb8723b_config_parafile(hw); + + crystalcap = crystalcap & 0x3F; + rtl_set_bbreg(hw, REG_MAC_PHY_CTRL, 0xFFF000, + (crystalcap | crystalcap << 6)); + + return rtstatus; +} + +bool rtl8723be_phy_rf_config(struct ieee80211_hw *hw) +{ + return rtl8723be_phy_rf6052_config(hw); +} + +static void _rtl8723be_config_rf_reg(struct ieee80211_hw *hw, u32 addr, + u32 data, enum radio_path rfpath, + u32 regaddr) +{ + if (addr == 0xfe || addr == 0xffe) { + mdelay(50); + } else { + rtl_set_rfreg(hw, rfpath, regaddr, RFREG_OFFSET_MASK, data); + udelay(1); + } +} + +static void _rtl8723be_config_rf_radio_a(struct ieee80211_hw *hw, + u32 addr, u32 data) +{ + u32 content = 0x1000; /*RF Content: radio_a_txt*/ + u32 maskforphyset = (u32)(content & 0xE000); + + _rtl8723be_config_rf_reg(hw, addr, data, RF90_PATH_A, + addr | maskforphyset); +} + +static void _rtl8723be_phy_init_tx_power_by_rate(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + u8 band, path, txnum, section; + + for (band = BAND_ON_2_4G; band <= BAND_ON_5G; ++band) + for (path = 0; path < TX_PWR_BY_RATE_NUM_RF; ++path) + for (txnum = 0; txnum < TX_PWR_BY_RATE_NUM_RF; ++txnum) + for (section = 0; + section < TX_PWR_BY_RATE_NUM_SECTION; + ++section) + rtlphy->tx_power_by_rate_offset[band] + [path][txnum][section] = 0; +} + +static void _rtl8723be_config_bb_reg(struct ieee80211_hw *hw, + u32 addr, u32 data) +{ + if (addr == 0xfe) { + mdelay(50); + } else if (addr == 0xfd) { + mdelay(5); + } else if (addr == 0xfc) { + mdelay(1); + } else if (addr == 0xfb) { + udelay(50); + } else if (addr == 0xfa) { + udelay(5); + } else if (addr == 0xf9) { + udelay(1); + } else { + rtl_set_bbreg(hw, addr, MASKDWORD, data); + udelay(1); + } +} + +static void phy_set_txpwr_by_rate_base(struct ieee80211_hw *hw, u8 band, + u8 path, u8 rate_section, + u8 txnum, u8 value) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + if (path > RF90_PATH_D) { + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "Invalid Rf Path %d in phy_SetTxPowerByRatBase()\n", + path); + return; + } + + if (band == BAND_ON_2_4G) { + switch (rate_section) { + case CCK: + rtlphy->txpwr_by_rate_base_24g[path][txnum][0] = value; + break; + case OFDM: + rtlphy->txpwr_by_rate_base_24g[path][txnum][1] = value; + break; + case HT_MCS0_MCS7: + rtlphy->txpwr_by_rate_base_24g[path][txnum][2] = value; + break; + case HT_MCS8_MCS15: + rtlphy->txpwr_by_rate_base_24g[path][txnum][3] = value; + break; + default: + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "Invalid RateSection %d in Band 2.4G, Rf Path" + " %d, %dTx in PHY_SetTxPowerByRateBase()\n", + rate_section, path, txnum); + break; + }; + } else { + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "Invalid Band %d in PHY_SetTxPowerByRateBase()\n", + band); + } +} + +static u8 phy_get_txpwr_by_rate_base(struct ieee80211_hw *hw, u8 band, u8 path, + u8 txnum, u8 rate_section) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 value = 0; + if (path > RF90_PATH_D) { + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "Invalid Rf Path %d in PHY_GetTxPowerByRateBase()\n", + path); + return 0; + } + + if (band == BAND_ON_2_4G) { + switch (rate_section) { + case CCK: + value = rtlphy->txpwr_by_rate_base_24g[path][txnum][0]; + break; + case OFDM: + value = rtlphy->txpwr_by_rate_base_24g[path][txnum][1]; + break; + case HT_MCS0_MCS7: + value = rtlphy->txpwr_by_rate_base_24g[path][txnum][2]; + break; + case HT_MCS8_MCS15: + value = rtlphy->txpwr_by_rate_base_24g[path][txnum][3]; + break; + default: + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "Invalid RateSection %d in Band 2.4G, Rf Path" + " %d, %dTx in PHY_GetTxPowerByRateBase()\n", + rate_section, path, txnum); + break; + }; + } else { + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "Invalid Band %d in PHY_GetTxPowerByRateBase()\n", + band); + } + + return value; +} + +static void _rtl8723be_phy_store_txpower_by_rate_base(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u16 raw_value = 0; + u8 base = 0, path = 0; + + for (path = RF90_PATH_A; path <= RF90_PATH_B; ++path) { + if (path == RF90_PATH_A) { + raw_value = (u16) (rtlphy->tx_power_by_rate_offset + [BAND_ON_2_4G][path][RF_1TX][3] >> 24) & 0xFF; + base = (raw_value >> 4) * 10 + (raw_value & 0xF); + phy_set_txpwr_by_rate_base(hw, BAND_ON_2_4G, path, CCK, + RF_1TX, base); + } else if (path == RF90_PATH_B) { + raw_value = (u16) (rtlphy->tx_power_by_rate_offset + [BAND_ON_2_4G][path][RF_1TX][3] >> 0) & 0xFF; + base = (raw_value >> 4) * 10 + (raw_value & 0xF); + phy_set_txpwr_by_rate_base(hw, BAND_ON_2_4G, path, + CCK, RF_1TX, base); + } + raw_value = (u16) (rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G] + [path][RF_1TX][1] >> 24) & 0xFF; + base = (raw_value >> 4) * 10 + (raw_value & 0xF); + phy_set_txpwr_by_rate_base(hw, BAND_ON_2_4G, path, OFDM, RF_1TX, + base); + + raw_value = (u16) (rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G] + [path][RF_1TX][5] >> 24) & 0xFF; + base = (raw_value >> 4) * 10 + (raw_value & 0xF); + phy_set_txpwr_by_rate_base(hw, BAND_ON_2_4G, path, HT_MCS0_MCS7, + RF_1TX, base); + + raw_value = (u16) (rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G] + [path][RF_2TX][7] >> 24) & 0xFF; + base = (raw_value >> 4) * 10 + (raw_value & 0xF); + phy_set_txpwr_by_rate_base(hw, BAND_ON_2_4G, path, + HT_MCS8_MCS15, RF_2TX, base); + } +} + +static void phy_conv_dbm_to_rel(u32 *data, u8 start, u8 end, u8 base_val) +{ + char i = 0; + u8 temp_value = 0; + u32 temp_data = 0; + + for (i = 3; i >= 0; --i) { + if (i >= start && i <= end) { + /* Get the exact value */ + temp_value = (u8) (*data >> (i * 8)) & 0xF; + temp_value += ((u8) ((*data >> (i*8 + 4)) & 0xF)) * 10; + + /* Change the value to a relative value */ + temp_value = (temp_value > base_val) ? + temp_value - base_val : + base_val - temp_value; + } else { + temp_value = (u8) (*data >> (i * 8)) & 0xFF; + } + temp_data <<= 8; + temp_data |= temp_value; + } + *data = temp_data; +} + +static void conv_dbm_to_rel(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 base = 0, rfpath = RF90_PATH_A; + + base = phy_get_txpwr_by_rate_base(hw, BAND_ON_2_4G, rfpath, + RF_1TX, CCK); + phy_conv_dbm_to_rel(&(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G] + [rfpath][RF_1TX][2]), 1, 1, base); + phy_conv_dbm_to_rel(&(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G] + [rfpath][RF_1TX][3]), 1, 3, base); + + base = phy_get_txpwr_by_rate_base(hw, BAND_ON_2_4G, rfpath, + RF_1TX, OFDM); + phy_conv_dbm_to_rel(&(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G] + [rfpath][RF_1TX][0]), 0, 3, base); + phy_conv_dbm_to_rel(&(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G] + [rfpath][RF_1TX][1]), 0, 3, base); + + base = phy_get_txpwr_by_rate_base(hw, BAND_ON_2_4G, rfpath, + RF_1TX, HT_MCS0_MCS7); + phy_conv_dbm_to_rel(&(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G] + [rfpath][RF_1TX][4]), 0, 3, base); + phy_conv_dbm_to_rel(&(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G] + [rfpath][RF_1TX][5]), 0, 3, base); + + base = phy_get_txpwr_by_rate_base(hw, BAND_ON_2_4G, rfpath, + RF_2TX, HT_MCS8_MCS15); + phy_conv_dbm_to_rel(&(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G] + [rfpath][RF_2TX][6]), 0, 3, base); + + phy_conv_dbm_to_rel(&(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G] + [rfpath][RF_2TX][7]), 0, 3, base); + + RT_TRACE(rtlpriv, COMP_POWER, DBG_TRACE, + "<=== conv_dbm_to_rel()\n"); +} + +static void _rtl8723be_phy_txpower_by_rate_configuration( + struct ieee80211_hw *hw) +{ + _rtl8723be_phy_store_txpower_by_rate_base(hw); + conv_dbm_to_rel(hw); +} + +static bool _rtl8723be_phy_bb8723b_config_parafile(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + bool rtstatus; + + rtstatus = _rtl8723be_phy_config_bb_with_headerfile(hw, + BASEBAND_CONFIG_PHY_REG); + if (!rtstatus) { + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "Write BB Reg Fail!!"); + return false; + } + _rtl8723be_phy_init_tx_power_by_rate(hw); + if (!rtlefuse->autoload_failflag) { + rtlphy->pwrgroup_cnt = 0; + rtstatus = _rtl8723be_phy_config_bb_with_pgheaderfile(hw, + BASEBAND_CONFIG_PHY_REG); + } + _rtl8723be_phy_txpower_by_rate_configuration(hw); + if (!rtstatus) { + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "BB_PG Reg Fail!!"); + return false; + } + rtstatus = _rtl8723be_phy_config_bb_with_headerfile(hw, + BASEBAND_CONFIG_AGC_TAB); + if (!rtstatus) { + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "AGC Table Fail\n"); + return false; + } + rtlphy->cck_high_power = (bool) (rtl_get_bbreg(hw, + RFPGA0_XA_HSSIPARAMETER2, + 0x200)); + return true; +} + +static void _rtl8723be_store_tx_power_by_rate(struct ieee80211_hw *hw, + u32 band, u32 rfpath, + u32 txnum, u32 regaddr, + u32 bitmask, u32 data) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 rate_section = _rtl8723be_get_rate_section_index(regaddr); + + if (band != BAND_ON_2_4G && band != BAND_ON_5G) + RT_TRACE(rtlpriv, COMP_POWER, PHY_TXPWR, + "Invalid Band %d\n", band); + + if (rfpath > MAX_RF_PATH) + RT_TRACE(rtlpriv, COMP_POWER, PHY_TXPWR, + "Invalid RfPath %d\n", rfpath); + + if (txnum > MAX_RF_PATH) + RT_TRACE(rtlpriv, COMP_POWER, PHY_TXPWR, + "Invalid TxNum %d\n", txnum); + + rtlphy->tx_power_by_rate_offset[band][rfpath][txnum][rate_section] = + data; +} + +static bool _rtl8723be_phy_config_bb_with_pgheaderfile(struct ieee80211_hw *hw, + u8 configtype) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + int i; + u32 *phy_regarray_table_pg; + u16 phy_regarray_pg_len; + u32 v1 = 0, v2 = 0, v3 = 0, v4 = 0, v5 = 0, v6 = 0; + + phy_regarray_pg_len = RTL8723BEPHY_REG_ARRAY_PGLEN; + phy_regarray_table_pg = RTL8723BEPHY_REG_ARRAY_PG; + + if (configtype == BASEBAND_CONFIG_PHY_REG) { + for (i = 0; i < phy_regarray_pg_len; i = i + 6) { + v1 = phy_regarray_table_pg[i]; + v2 = phy_regarray_table_pg[i+1]; + v3 = phy_regarray_table_pg[i+2]; + v4 = phy_regarray_table_pg[i+3]; + v5 = phy_regarray_table_pg[i+4]; + v6 = phy_regarray_table_pg[i+5]; + + if (v1 < 0xcdcdcdcd) { + if (phy_regarray_table_pg[i] == 0xfe || + phy_regarray_table_pg[i] == 0xffe) + mdelay(50); + else + _rtl8723be_store_tx_power_by_rate(hw, + v1, v2, v3, v4, v5, v6); + continue; + } else { + /*don't need the hw_body*/ + if (!_rtl8723be_check_condition(hw, + phy_regarray_table_pg[i])) { + i += 2; /* skip the pair of expression*/ + v1 = phy_regarray_table_pg[i]; + v2 = phy_regarray_table_pg[i+1]; + v3 = phy_regarray_table_pg[i+2]; + while (v2 != 0xDEAD) { + i += 3; + v1 = phy_regarray_table_pg[i]; + v2 = phy_regarray_table_pg[i+1]; + v3 = phy_regarray_table_pg[i+2]; + } + } + } + } + } else { + RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, + "configtype != BaseBand_Config_PHY_REG\n"); + } + return true; +} + +bool rtl8723be_phy_config_rf_with_headerfile(struct ieee80211_hw *hw, + enum radio_path rfpath) +{ + #define READ_NEXT_RF_PAIR(v1, v2, i) \ + do { \ + i += 2; \ + v1 = radioa_array_table[i]; \ + v2 = radioa_array_table[i+1]; \ + } while (0) + + int i; + bool rtstatus = true; + u32 *radioa_array_table; + u16 radioa_arraylen; + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u32 v1 = 0, v2 = 0; + + radioa_arraylen = RTL8723BE_RADIOA_1TARRAYLEN; + radioa_array_table = RTL8723BE_RADIOA_1TARRAY; + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "Radio_A:RTL8723BE_RADIOA_1TARRAY %d\n", radioa_arraylen); + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "Radio No %x\n", rfpath); + rtstatus = true; + switch (rfpath) { + case RF90_PATH_A: + for (i = 0; i < radioa_arraylen; i = i + 2) { + v1 = radioa_array_table[i]; + v2 = radioa_array_table[i+1]; + if (v1 < 0xcdcdcdcd) { + _rtl8723be_config_rf_radio_a(hw, v1, v2); + } else { /*This line is the start line of branch.*/ + if (!_rtl8723be_check_condition(hw, + radioa_array_table[i])) { + /* Discard the following + * (offset, data) pairs + */ + READ_NEXT_RF_PAIR(v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && + i < radioa_arraylen - 2) + READ_NEXT_RF_PAIR(v1, v2, i); + i -= 2; /* prevent from for-loop += 2*/ + } else { + /* Configure matched pairs + * and skip to end of if-else. + */ + READ_NEXT_RF_PAIR(v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && + i < radioa_arraylen - 2) { + _rtl8723be_config_rf_radio_a(hw, + v1, v2); + READ_NEXT_RF_PAIR(v1, v2, i); + } + + while (v2 != 0xDEAD && + i < radioa_arraylen - 2) { + READ_NEXT_RF_PAIR(v1, v2, i); + } + } + } + } + + if (rtlhal->oem_id == RT_CID_819X_HP) + _rtl8723be_config_rf_radio_a(hw, 0x52, 0x7E4BD); + + break; + case RF90_PATH_B: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "switch case not process\n"); + break; + case RF90_PATH_C: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "switch case not process\n"); + break; + case RF90_PATH_D: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "switch case not process\n"); + break; + } + return true; +} + +void rtl8723be_phy_get_hw_reg_originalvalue(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + rtlphy->default_initialgain[0] = + (u8) rtl_get_bbreg(hw, ROFDM0_XAAGCCORE1, MASKBYTE0); + rtlphy->default_initialgain[1] = + (u8) rtl_get_bbreg(hw, ROFDM0_XBAGCCORE1, MASKBYTE0); + rtlphy->default_initialgain[2] = + (u8) rtl_get_bbreg(hw, ROFDM0_XCAGCCORE1, MASKBYTE0); + rtlphy->default_initialgain[3] = + (u8) rtl_get_bbreg(hw, ROFDM0_XDAGCCORE1, MASKBYTE0); + + RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, + "Default initial gain (c50 = 0x%x, " + "c58 = 0x%x, c60 = 0x%x, c68 = 0x%x\n", + rtlphy->default_initialgain[0], + rtlphy->default_initialgain[1], + rtlphy->default_initialgain[2], + rtlphy->default_initialgain[3]); + + rtlphy->framesync = (u8) rtl_get_bbreg(hw, ROFDM0_RXDETECTOR3, + MASKBYTE0); + rtlphy->framesync_c34 = rtl_get_bbreg(hw, ROFDM0_RXDETECTOR2, + MASKDWORD); + + RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, + "Default framesync (0x%x) = 0x%x\n", + ROFDM0_RXDETECTOR3, rtlphy->framesync); +} + +void rtl8723be_phy_get_txpower_level(struct ieee80211_hw *hw, long *powerlevel) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 txpwr_level; + long txpwr_dbm; + + txpwr_level = rtlphy->cur_cck_txpwridx; + txpwr_dbm = rtl8723_phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_B, + txpwr_level); + txpwr_level = rtlphy->cur_ofdm24g_txpwridx; + if (rtl8723_phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_G, txpwr_level) > + txpwr_dbm) + txpwr_dbm = + rtl8723_phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_G, + txpwr_level); + txpwr_level = rtlphy->cur_ofdm24g_txpwridx; + if (rtl8723_phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_N_24G, + txpwr_level) > txpwr_dbm) + txpwr_dbm = + rtl8723_phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_N_24G, + txpwr_level); + *powerlevel = txpwr_dbm; +} + +static u8 _rtl8723be_phy_get_ratesection_intxpower_byrate(enum radio_path path, + u8 rate) +{ + u8 rate_section = 0; + + switch (rate) { + case DESC92C_RATE1M: + rate_section = 2; + break; + case DESC92C_RATE2M: + case DESC92C_RATE5_5M: + if (path == RF90_PATH_A) + rate_section = 3; + else if (path == RF90_PATH_B) + rate_section = 2; + break; + case DESC92C_RATE11M: + rate_section = 3; + break; + case DESC92C_RATE6M: + case DESC92C_RATE9M: + case DESC92C_RATE12M: + case DESC92C_RATE18M: + rate_section = 0; + break; + case DESC92C_RATE24M: + case DESC92C_RATE36M: + case DESC92C_RATE48M: + case DESC92C_RATE54M: + rate_section = 1; + break; + case DESC92C_RATEMCS0: + case DESC92C_RATEMCS1: + case DESC92C_RATEMCS2: + case DESC92C_RATEMCS3: + rate_section = 4; + break; + case DESC92C_RATEMCS4: + case DESC92C_RATEMCS5: + case DESC92C_RATEMCS6: + case DESC92C_RATEMCS7: + rate_section = 5; + break; + case DESC92C_RATEMCS8: + case DESC92C_RATEMCS9: + case DESC92C_RATEMCS10: + case DESC92C_RATEMCS11: + rate_section = 6; + break; + case DESC92C_RATEMCS12: + case DESC92C_RATEMCS13: + case DESC92C_RATEMCS14: + case DESC92C_RATEMCS15: + rate_section = 7; + break; + default: + RT_ASSERT(true, "Rate_Section is Illegal\n"); + break; + } + return rate_section; +} + +static u8 _rtl8723be_get_txpower_by_rate(struct ieee80211_hw *hw, + enum band_type band, + enum radio_path rfpath, u8 rate) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 shift = 0, rate_section, tx_num; + char tx_pwr_diff = 0; + + rate_section = _rtl8723be_phy_get_ratesection_intxpower_byrate(rfpath, + rate); + tx_num = RF_TX_NUM_NONIMPLEMENT; + + if (tx_num == RF_TX_NUM_NONIMPLEMENT) { + if (rate >= DESC92C_RATEMCS8 && rate <= DESC92C_RATEMCS15) + tx_num = RF_2TX; + else + tx_num = RF_1TX; + } + + switch (rate) { + case DESC92C_RATE6M: + case DESC92C_RATE24M: + case DESC92C_RATEMCS0: + case DESC92C_RATEMCS4: + case DESC92C_RATEMCS8: + case DESC92C_RATEMCS12: + shift = 0; + break; + case DESC92C_RATE1M: + case DESC92C_RATE2M: + case DESC92C_RATE9M: + case DESC92C_RATE36M: + case DESC92C_RATEMCS1: + case DESC92C_RATEMCS5: + case DESC92C_RATEMCS9: + case DESC92C_RATEMCS13: + shift = 8; + break; + case DESC92C_RATE5_5M: + case DESC92C_RATE12M: + case DESC92C_RATE48M: + case DESC92C_RATEMCS2: + case DESC92C_RATEMCS6: + case DESC92C_RATEMCS10: + case DESC92C_RATEMCS14: + shift = 16; + break; + case DESC92C_RATE11M: + case DESC92C_RATE18M: + case DESC92C_RATE54M: + case DESC92C_RATEMCS3: + case DESC92C_RATEMCS7: + case DESC92C_RATEMCS11: + case DESC92C_RATEMCS15: + shift = 24; + break; + default: + RT_ASSERT(true, "Rate_Section is Illegal\n"); + break; + } + tx_pwr_diff = (u8)(rtlphy->tx_power_by_rate_offset[band][rfpath][tx_num] + [rate_section] >> shift) & 0xff; + + return tx_pwr_diff; +} + +static u8 _rtl8723be_get_txpower_index(struct ieee80211_hw *hw, u8 path, + u8 rate, u8 bandwidth, u8 channel) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + u8 index = (channel - 1); + u8 txpower; + u8 power_diff_byrate = 0; + + if (channel > 14 || channel < 1) { + index = 0; + RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, + "Illegal channel!\n"); + } + if (RTL8723E_RX_HAL_IS_CCK_RATE(rate)) + txpower = rtlefuse->txpwrlevel_cck[path][index]; + else if (DESC92C_RATE6M <= rate) + txpower = rtlefuse->txpwrlevel_ht40_1s[path][index]; + else + RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD, + "invalid rate\n"); + + if (DESC92C_RATE6M <= rate && rate <= DESC92C_RATE54M && + !RTL8723E_RX_HAL_IS_CCK_RATE(rate)) + txpower += rtlefuse->txpwr_legacyhtdiff[0][TX_1S]; + + if (bandwidth == HT_CHANNEL_WIDTH_20) { + if (DESC92C_RATEMCS0 <= rate && rate <= DESC92C_RATEMCS15) + txpower += rtlefuse->txpwr_ht20diff[0][TX_1S]; + if (DESC92C_RATEMCS8 <= rate && rate <= DESC92C_RATEMCS15) + txpower += rtlefuse->txpwr_ht20diff[0][TX_2S]; + } else if (bandwidth == HT_CHANNEL_WIDTH_20_40) { + if (DESC92C_RATEMCS0 <= rate && rate <= DESC92C_RATEMCS15) + txpower += rtlefuse->txpwr_ht40diff[0][TX_1S]; + if (DESC92C_RATEMCS8 <= rate && rate <= DESC92C_RATEMCS15) + txpower += rtlefuse->txpwr_ht40diff[0][TX_2S]; + } + if (rtlefuse->eeprom_regulatory != 2) + power_diff_byrate = _rtl8723be_get_txpower_by_rate(hw, + BAND_ON_2_4G, + path, rate); + + txpower += power_diff_byrate; + + if (txpower > MAX_POWER_INDEX) + txpower = MAX_POWER_INDEX; + + return txpower; +} + +static void _rtl8723be_phy_set_txpower_index(struct ieee80211_hw *hw, + u8 power_index, u8 path, u8 rate) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + if (path == RF90_PATH_A) { + switch (rate) { + case DESC92C_RATE1M: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_CCK1_MCS32, + MASKBYTE1, power_index); + break; + case DESC92C_RATE2M: + rtl8723_phy_set_bb_reg(hw, RTXAGC_B_CCK11_A_CCK2_11, + MASKBYTE1, power_index); + break; + case DESC92C_RATE5_5M: + rtl8723_phy_set_bb_reg(hw, RTXAGC_B_CCK11_A_CCK2_11, + MASKBYTE2, power_index); + break; + case DESC92C_RATE11M: + rtl8723_phy_set_bb_reg(hw, RTXAGC_B_CCK11_A_CCK2_11, + MASKBYTE3, power_index); + break; + case DESC92C_RATE6M: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_RATE18_06, + MASKBYTE0, power_index); + break; + case DESC92C_RATE9M: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_RATE18_06, + MASKBYTE1, power_index); + break; + case DESC92C_RATE12M: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_RATE18_06, + MASKBYTE2, power_index); + break; + case DESC92C_RATE18M: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_RATE18_06, + MASKBYTE3, power_index); + break; + case DESC92C_RATE24M: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_RATE54_24, + MASKBYTE0, power_index); + break; + case DESC92C_RATE36M: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_RATE54_24, + MASKBYTE1, power_index); + break; + case DESC92C_RATE48M: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_RATE54_24, + MASKBYTE2, power_index); + break; + case DESC92C_RATE54M: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_RATE54_24, + MASKBYTE3, power_index); + break; + case DESC92C_RATEMCS0: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_MCS03_MCS00, + MASKBYTE0, power_index); + break; + case DESC92C_RATEMCS1: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_MCS03_MCS00, + MASKBYTE1, power_index); + break; + case DESC92C_RATEMCS2: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_MCS03_MCS00, + MASKBYTE2, power_index); + break; + case DESC92C_RATEMCS3: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_MCS03_MCS00, + MASKBYTE3, power_index); + break; + case DESC92C_RATEMCS4: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_MCS07_MCS04, + MASKBYTE0, power_index); + break; + case DESC92C_RATEMCS5: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_MCS07_MCS04, + MASKBYTE1, power_index); + break; + case DESC92C_RATEMCS6: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_MCS07_MCS04, + MASKBYTE2, power_index); + break; + case DESC92C_RATEMCS7: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_MCS07_MCS04, + MASKBYTE3, power_index); + break; + case DESC92C_RATEMCS8: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_MCS11_MCS08, + MASKBYTE0, power_index); + break; + case DESC92C_RATEMCS9: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_MCS11_MCS08, + MASKBYTE1, power_index); + break; + case DESC92C_RATEMCS10: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_MCS11_MCS08, + MASKBYTE2, power_index); + break; + case DESC92C_RATEMCS11: + rtl8723_phy_set_bb_reg(hw, RTXAGC_A_MCS11_MCS08, + MASKBYTE3, power_index); + break; + default: + RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, + "Invalid Rate!!\n"); + break; + } + } else { + RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD, "Invalid RFPath!!\n"); + } +} + +void rtl8723be_phy_set_txpower_level(struct ieee80211_hw *hw, u8 channel) +{ + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + u8 cck_rates[] = {DESC92C_RATE1M, DESC92C_RATE2M, + DESC92C_RATE5_5M, DESC92C_RATE11M}; + u8 ofdm_rates[] = {DESC92C_RATE6M, DESC92C_RATE9M, + DESC92C_RATE12M, DESC92C_RATE18M, + DESC92C_RATE24M, DESC92C_RATE36M, + DESC92C_RATE48M, DESC92C_RATE54M}; + u8 ht_rates_1t[] = {DESC92C_RATEMCS0, DESC92C_RATEMCS1, + DESC92C_RATEMCS2, DESC92C_RATEMCS3, + DESC92C_RATEMCS4, DESC92C_RATEMCS5, + DESC92C_RATEMCS6, DESC92C_RATEMCS7}; + u8 i, size; + u8 power_index; + + if (!rtlefuse->txpwr_fromeprom) + return; + + size = sizeof(cck_rates) / sizeof(u8); + for (i = 0; i < size; i++) { + power_index = _rtl8723be_get_txpower_index(hw, RF90_PATH_A, + cck_rates[i], + rtl_priv(hw)->phy.current_chan_bw, + channel); + _rtl8723be_phy_set_txpower_index(hw, power_index, RF90_PATH_A, + cck_rates[i]); + } + size = sizeof(ofdm_rates) / sizeof(u8); + for (i = 0; i < size; i++) { + power_index = _rtl8723be_get_txpower_index(hw, RF90_PATH_A, + ofdm_rates[i], + rtl_priv(hw)->phy.current_chan_bw, + channel); + _rtl8723be_phy_set_txpower_index(hw, power_index, RF90_PATH_A, + ofdm_rates[i]); + } + size = sizeof(ht_rates_1t) / sizeof(u8); + for (i = 0; i < size; i++) { + power_index = _rtl8723be_get_txpower_index(hw, RF90_PATH_A, + ht_rates_1t[i], + rtl_priv(hw)->phy.current_chan_bw, + channel); + _rtl8723be_phy_set_txpower_index(hw, power_index, RF90_PATH_A, + ht_rates_1t[i]); + } +} + +void rtl8723be_phy_scan_operation_backup(struct ieee80211_hw *hw, u8 operation) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + enum io_type iotype; + + if (!is_hal_stop(rtlhal)) { + switch (operation) { + case SCAN_OPT_BACKUP: + iotype = IO_CMD_PAUSE_DM_BY_SCAN; + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_IO_CMD, + (u8 *)&iotype); + break; + case SCAN_OPT_RESTORE: + iotype = IO_CMD_RESUME_DM_BY_SCAN; + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_IO_CMD, + (u8 *)&iotype); + break; + default: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "Unknown Scan Backup operation.\n"); + break; + } + } +} + +void rtl8723be_phy_set_bw_mode_callback(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + u8 reg_bw_opmode; + u8 reg_prsr_rsc; + + RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, + "Switch to %s bandwidth\n", + rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20 ? + "20MHz" : "40MHz"); + + if (is_hal_stop(rtlhal)) { + rtlphy->set_bwmode_inprogress = false; + return; + } + + reg_bw_opmode = rtl_read_byte(rtlpriv, REG_BWOPMODE); + reg_prsr_rsc = rtl_read_byte(rtlpriv, REG_RRSR + 2); + + switch (rtlphy->current_chan_bw) { + case HT_CHANNEL_WIDTH_20: + reg_bw_opmode |= BW_OPMODE_20MHZ; + rtl_write_byte(rtlpriv, REG_BWOPMODE, reg_bw_opmode); + break; + case HT_CHANNEL_WIDTH_20_40: + reg_bw_opmode &= ~BW_OPMODE_20MHZ; + rtl_write_byte(rtlpriv, REG_BWOPMODE, reg_bw_opmode); + reg_prsr_rsc = (reg_prsr_rsc & 0x90) | + (mac->cur_40_prime_sc << 5); + rtl_write_byte(rtlpriv, REG_RRSR + 2, reg_prsr_rsc); + break; + default: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "unknown bandwidth: %#X\n", rtlphy->current_chan_bw); + break; + } + + switch (rtlphy->current_chan_bw) { + case HT_CHANNEL_WIDTH_20: + rtl_set_bbreg(hw, RFPGA0_RFMOD, BRFMOD, 0x0); + rtl_set_bbreg(hw, RFPGA1_RFMOD, BRFMOD, 0x0); + break; + case HT_CHANNEL_WIDTH_20_40: + rtl_set_bbreg(hw, RFPGA0_RFMOD, BRFMOD, 0x1); + rtl_set_bbreg(hw, RFPGA1_RFMOD, BRFMOD, 0x1); + rtl_set_bbreg(hw, RCCK0_SYSTEM, BCCK_SIDEBAND, + (mac->cur_40_prime_sc >> 1)); + rtl_set_bbreg(hw, ROFDM1_LSTF, 0xC00, mac->cur_40_prime_sc); + rtl_set_bbreg(hw, 0x818, (BIT(26) | BIT(27)), + (mac->cur_40_prime_sc == + HAL_PRIME_CHNL_OFFSET_LOWER) ? 2 : 1); + break; + default: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "unknown bandwidth: %#X\n", rtlphy->current_chan_bw); + break; + } + rtl8723be_phy_rf6052_set_bandwidth(hw, rtlphy->current_chan_bw); + rtlphy->set_bwmode_inprogress = false; + RT_TRACE(rtlpriv, COMP_SCAN, DBG_LOUD, "\n"); +} + +void rtl8723be_phy_set_bw_mode(struct ieee80211_hw *hw, + enum nl80211_channel_type ch_type) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 tmp_bw = rtlphy->current_chan_bw; + + if (rtlphy->set_bwmode_inprogress) + return; + rtlphy->set_bwmode_inprogress = true; + if ((!is_hal_stop(rtlhal)) && !(RT_CANNOT_IO(hw))) { + rtl8723be_phy_set_bw_mode_callback(hw); + } else { + RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, + "false driver sleep or unload\n"); + rtlphy->set_bwmode_inprogress = false; + rtlphy->current_chan_bw = tmp_bw; + } +} + +void rtl8723be_phy_sw_chnl_callback(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u32 delay; + + RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, + "switch to channel%d\n", rtlphy->current_channel); + if (is_hal_stop(rtlhal)) + return; + do { + if (!rtlphy->sw_chnl_inprogress) + break; + if (!rtl8723be_phy_sw_chn_step_by_step(hw, + rtlphy->current_channel, + &rtlphy->sw_chnl_stage, + &rtlphy->sw_chnl_step, + &delay)) { + if (delay > 0) + mdelay(delay); + else + continue; + } else { + rtlphy->sw_chnl_inprogress = false; + } + break; + } while (true); + RT_TRACE(rtlpriv, COMP_SCAN, DBG_TRACE, "\n"); +} + +u8 rtl8723be_phy_sw_chnl(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + + if (rtlphy->sw_chnl_inprogress) + return 0; + if (rtlphy->set_bwmode_inprogress) + return 0; + RT_ASSERT((rtlphy->current_channel <= 14), + "WIRELESS_MODE_G but channel>14"); + rtlphy->sw_chnl_inprogress = true; + rtlphy->sw_chnl_stage = 0; + rtlphy->sw_chnl_step = 0; + if (!(is_hal_stop(rtlhal)) && !(RT_CANNOT_IO(hw))) { + rtl8723be_phy_sw_chnl_callback(hw); + RT_TRACE(rtlpriv, COMP_CHAN, DBG_LOUD, + "sw_chnl_inprogress false schdule " + "workitem current channel %d\n", + rtlphy->current_channel); + rtlphy->sw_chnl_inprogress = false; + } else { + RT_TRACE(rtlpriv, COMP_CHAN, DBG_LOUD, + "sw_chnl_inprogress false driver sleep or" + " unload\n"); + rtlphy->sw_chnl_inprogress = false; + } + return 1; +} + +static bool rtl8723be_phy_sw_chn_step_by_step(struct ieee80211_hw *hw, + u8 channel, u8 *stage, + u8 *step, u32 *delay) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct swchnlcmd precommoncmd[MAX_PRECMD_CNT]; + u32 precommoncmdcnt; + struct swchnlcmd postcommoncmd[MAX_POSTCMD_CNT]; + u32 postcommoncmdcnt; + struct swchnlcmd rfdependcmd[MAX_RFDEPENDCMD_CNT]; + u32 rfdependcmdcnt; + struct swchnlcmd *currentcmd = NULL; + u8 rfpath; + u8 num_total_rfpath = rtlphy->num_total_rfpath; + + precommoncmdcnt = 0; + rtl8723_phy_set_sw_chnl_cmdarray(precommoncmd, precommoncmdcnt++, + MAX_PRECMD_CNT, + CMDID_SET_TXPOWEROWER_LEVEL, + 0, 0, 0); + rtl8723_phy_set_sw_chnl_cmdarray(precommoncmd, precommoncmdcnt++, + MAX_PRECMD_CNT, CMDID_END, 0, 0, 0); + postcommoncmdcnt = 0; + rtl8723_phy_set_sw_chnl_cmdarray(postcommoncmd, postcommoncmdcnt++, + MAX_POSTCMD_CNT, CMDID_END, + 0, 0, 0); + rfdependcmdcnt = 0; + + RT_ASSERT((channel >= 1 && channel <= 14), + "illegal channel for Zebra: %d\n", channel); + + rtl8723_phy_set_sw_chnl_cmdarray(rfdependcmd, rfdependcmdcnt++, + MAX_RFDEPENDCMD_CNT, + CMDID_RF_WRITEREG, + RF_CHNLBW, channel, 10); + + rtl8723_phy_set_sw_chnl_cmdarray(rfdependcmd, rfdependcmdcnt++, + MAX_RFDEPENDCMD_CNT, + CMDID_END, 0, 0, 0); + + do { + switch (*stage) { + case 0: + currentcmd = &precommoncmd[*step]; + break; + case 1: + currentcmd = &rfdependcmd[*step]; + break; + case 2: + currentcmd = &postcommoncmd[*step]; + break; + } + + if (currentcmd->cmdid == CMDID_END) { + if ((*stage) == 2) { + return true; + } else { + (*stage)++; + (*step) = 0; + continue; + } + } + + switch (currentcmd->cmdid) { + case CMDID_SET_TXPOWEROWER_LEVEL: + rtl8723be_phy_set_txpower_level(hw, channel); + break; + case CMDID_WRITEPORT_ULONG: + rtl_write_dword(rtlpriv, currentcmd->para1, + currentcmd->para2); + break; + case CMDID_WRITEPORT_USHORT: + rtl_write_word(rtlpriv, currentcmd->para1, + (u16) currentcmd->para2); + break; + case CMDID_WRITEPORT_UCHAR: + rtl_write_byte(rtlpriv, currentcmd->para1, + (u8) currentcmd->para2); + break; + case CMDID_RF_WRITEREG: + for (rfpath = 0; rfpath < num_total_rfpath; rfpath++) { + rtlphy->rfreg_chnlval[rfpath] = + ((rtlphy->rfreg_chnlval[rfpath] & + 0xfffffc00) | currentcmd->para2); + + rtl_set_rfreg(hw, (enum radio_path)rfpath, + currentcmd->para1, + RFREG_OFFSET_MASK, + rtlphy->rfreg_chnlval[rfpath]); + } + break; + default: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "switch case not process\n"); + break; + } + + break; + } while (true); + + (*delay) = currentcmd->msdelay; + (*step)++; + return false; +} + +static u8 _rtl8723be_phy_path_a_iqk(struct ieee80211_hw *hw, bool config_pathb) +{ + u32 reg_eac, reg_e94, reg_e9c, reg_ea4; + u8 result = 0x00; + + rtl_set_bbreg(hw, 0xe30, MASKDWORD, 0x10008c1c); + rtl_set_bbreg(hw, 0xe34, MASKDWORD, 0x30008c1c); + rtl_set_bbreg(hw, 0xe38, MASKDWORD, 0x8214032a); + rtl_set_bbreg(hw, 0xe3c, MASKDWORD, 0x28160000); + + rtl_set_bbreg(hw, 0xe4c, MASKDWORD, 0x00462911); + rtl_set_bbreg(hw, 0xe48, MASKDWORD, 0xf9000000); + rtl_set_bbreg(hw, 0xe48, MASKDWORD, 0xf8000000); + + mdelay(IQK_DELAY_TIME); + + reg_eac = rtl_get_bbreg(hw, 0xeac, MASKDWORD); + reg_e94 = rtl_get_bbreg(hw, 0xe94, MASKDWORD); + reg_e9c = rtl_get_bbreg(hw, 0xe9c, MASKDWORD); + reg_ea4 = rtl_get_bbreg(hw, 0xea4, MASKDWORD); + + if (!(reg_eac & BIT(28)) && + (((reg_e94 & 0x03FF0000) >> 16) != 0x142) && + (((reg_e9c & 0x03FF0000) >> 16) != 0x42)) + result |= 0x01; + return result; +} + +static bool phy_similarity_cmp(struct ieee80211_hw *hw, long result[][8], + u8 c1, u8 c2) +{ + u32 i, j, diff, simularity_bitmap, bound; + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + + u8 final_candidate[2] = { 0xFF, 0xFF }; + bool bresult = true, is2t = IS_92C_SERIAL(rtlhal->version); + + if (is2t) + bound = 8; + else + bound = 4; + + simularity_bitmap = 0; + + for (i = 0; i < bound; i++) { + diff = (result[c1][i] > result[c2][i]) ? + (result[c1][i] - result[c2][i]) : + (result[c2][i] - result[c1][i]); + + if (diff > MAX_TOLERANCE) { + if ((i == 2 || i == 6) && !simularity_bitmap) { + if (result[c1][i] + result[c1][i + 1] == 0) + final_candidate[(i / 4)] = c2; + else if (result[c2][i] + result[c2][i + 1] == 0) + final_candidate[(i / 4)] = c1; + else + simularity_bitmap |= (1 << i); + } else { + simularity_bitmap |= (1 << i); + } + } + } + + if (simularity_bitmap == 0) { + for (i = 0; i < (bound / 4); i++) { + if (final_candidate[i] != 0xFF) { + for (j = i * 4; j < (i + 1) * 4 - 2; j++) + result[3][j] = + result[final_candidate[i]][j]; + bresult = false; + } + } + return bresult; + } else if (!(simularity_bitmap & 0x0F)) { + for (i = 0; i < 4; i++) + result[3][i] = result[c1][i]; + return false; + } else if (!(simularity_bitmap & 0xF0) && is2t) { + for (i = 4; i < 8; i++) + result[3][i] = result[c1][i]; + return false; + } else { + return false; + } +} + +static void _rtl8723be_phy_iq_calibrate(struct ieee80211_hw *hw, + long result[][8], u8 t, bool is2t) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u32 i; + u8 patha_ok; + u32 adda_reg[IQK_ADDA_REG_NUM] = { + 0x85c, 0xe6c, 0xe70, 0xe74, + 0xe78, 0xe7c, 0xe80, 0xe84, + 0xe88, 0xe8c, 0xed0, 0xed4, + 0xed8, 0xedc, 0xee0, 0xeec + }; + + u32 iqk_mac_reg[IQK_MAC_REG_NUM] = { + 0x522, 0x550, 0x551, 0x040 + }; + u32 iqk_bb_reg[IQK_BB_REG_NUM] = { + ROFDM0_TRXPATHENABLE, ROFDM0_TRMUXPAR, + RFPGA0_XCD_RFINTERFACESW, 0xb68, 0xb6c, + 0x870, 0x860, + 0x864, 0x800 + }; + const u32 retrycount = 2; + u32 path_sel_bb, path_sel_rf; + u8 tmp_reg_c50, tmp_reg_c58; + + tmp_reg_c50 = rtl_get_bbreg(hw, 0xc50, MASKBYTE0); + tmp_reg_c58 = rtl_get_bbreg(hw, 0xc58, MASKBYTE0); + + if (t == 0) { + rtl8723_save_adda_registers(hw, adda_reg, + rtlphy->adda_backup, 16); + rtl8723_phy_save_mac_registers(hw, iqk_mac_reg, + rtlphy->iqk_mac_backup); + rtl8723_save_adda_registers(hw, iqk_bb_reg, + rtlphy->iqk_bb_backup, + IQK_BB_REG_NUM); + } + rtl8723_phy_path_adda_on(hw, adda_reg, true, is2t); + if (t == 0) { + rtlphy->rfpi_enable = (u8) rtl_get_bbreg(hw, + RFPGA0_XA_HSSIPARAMETER1, + BIT(8)); + } + if (!rtlphy->rfpi_enable) + rtl8723_phy_pi_mode_switch(hw, true); + + path_sel_bb = rtl_get_bbreg(hw, 0x948, MASKDWORD); + path_sel_rf = rtl_get_rfreg(hw, RF90_PATH_A, 0xb0, 0xfffff); + + /*BB Setting*/ + rtl_set_bbreg(hw, 0x800, BIT(24), 0x00); + rtl_set_bbreg(hw, 0xc04, MASKDWORD, 0x03a05600); + rtl_set_bbreg(hw, 0xc08, MASKDWORD, 0x000800e4); + rtl_set_bbreg(hw, 0x874, MASKDWORD, 0x22204000); + + rtl_set_bbreg(hw, 0x870, BIT(10), 0x01); + rtl_set_bbreg(hw, 0x870, BIT(26), 0x01); + rtl_set_bbreg(hw, 0x860, BIT(10), 0x00); + rtl_set_bbreg(hw, 0x864, BIT(10), 0x00); + + if (is2t) + rtl_set_rfreg(hw, RF90_PATH_B, 0x00, MASKDWORD, 0x10000); + rtl8723_phy_mac_setting_calibration(hw, iqk_mac_reg, + rtlphy->iqk_mac_backup); + rtl_set_bbreg(hw, 0xb68, MASKDWORD, 0x0f600000); + + rtl_set_bbreg(hw, 0xe28, MASKDWORD, 0x80800000); + rtl_set_bbreg(hw, 0xe40, MASKDWORD, 0x01007c00); + rtl_set_bbreg(hw, 0xe44, MASKDWORD, 0x81004800); + for (i = 0; i < retrycount; i++) { + patha_ok = _rtl8723be_phy_path_a_iqk(hw, is2t); + if (patha_ok == 0x01) { + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "Path A Tx IQK Success!!\n"); + result[t][0] = (rtl_get_bbreg(hw, 0xe94, MASKDWORD) & + 0x3FF0000) >> 16; + result[t][1] = (rtl_get_bbreg(hw, 0xe9c, MASKDWORD) & + 0x3FF0000) >> 16; + break; + } + } + + if (0 == patha_ok) + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "Path A IQK Success!!\n"); + if (is2t) { + rtl8723_phy_path_a_standby(hw); + rtl8723_phy_path_adda_on(hw, adda_reg, false, is2t); + } + + rtl_set_bbreg(hw, 0xe28, MASKDWORD, 0); + + if (t != 0) { + if (!rtlphy->rfpi_enable) + rtl8723_phy_pi_mode_switch(hw, false); + rtl8723_phy_reload_adda_registers(hw, adda_reg, + rtlphy->adda_backup, 16); + rtl8723_phy_reload_mac_registers(hw, iqk_mac_reg, + rtlphy->iqk_mac_backup); + rtl8723_phy_reload_adda_registers(hw, iqk_bb_reg, + rtlphy->iqk_bb_backup, + IQK_BB_REG_NUM); + + rtl_set_bbreg(hw, 0x948, MASKDWORD, path_sel_bb); + rtl_set_rfreg(hw, RF90_PATH_B, 0xb0, 0xfffff, path_sel_rf); + + rtl_set_bbreg(hw, 0xc50, MASKBYTE0, 0x50); + rtl_set_bbreg(hw, 0xc50, MASKBYTE0, tmp_reg_c50); + if (is2t) { + rtl_set_bbreg(hw, 0xc58, MASKBYTE0, 0x50); + rtl_set_bbreg(hw, 0xc58, MASKBYTE0, tmp_reg_c58); + } + rtl_set_bbreg(hw, 0xe30, MASKDWORD, 0x01008c00); + rtl_set_bbreg(hw, 0xe34, MASKDWORD, 0x01008c00); + } + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "8723be IQK Finish!!\n"); +} + +static void _rtl8723be_phy_lc_calibrate(struct ieee80211_hw *hw, bool is2t) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 tmpreg; + u32 rf_a_mode = 0, rf_b_mode = 0, lc_cal; + + tmpreg = rtl_read_byte(rtlpriv, 0xd03); + + if ((tmpreg & 0x70) != 0) + rtl_write_byte(rtlpriv, 0xd03, tmpreg & 0x8F); + else + rtl_write_byte(rtlpriv, REG_TXPAUSE, 0xFF); + + if ((tmpreg & 0x70) != 0) { + rf_a_mode = rtl_get_rfreg(hw, RF90_PATH_A, 0x00, MASK12BITS); + + if (is2t) + rf_b_mode = rtl_get_rfreg(hw, RF90_PATH_B, 0x00, + MASK12BITS); + + rtl_set_rfreg(hw, RF90_PATH_A, 0x00, MASK12BITS, + (rf_a_mode & 0x8FFFF) | 0x10000); + + if (is2t) + rtl_set_rfreg(hw, RF90_PATH_B, 0x00, MASK12BITS, + (rf_b_mode & 0x8FFFF) | 0x10000); + } + lc_cal = rtl_get_rfreg(hw, RF90_PATH_A, 0x18, MASK12BITS); + + rtl_set_rfreg(hw, RF90_PATH_A, 0xb0, RFREG_OFFSET_MASK, 0xdfbe0); + rtl_set_rfreg(hw, RF90_PATH_A, 0x18, MASK12BITS, 0x8c0a); + + mdelay(100); + + rtl_set_rfreg(hw, RF90_PATH_A, 0xb0, RFREG_OFFSET_MASK, 0xdffe0); + + if ((tmpreg & 0x70) != 0) { + rtl_write_byte(rtlpriv, 0xd03, tmpreg); + rtl_set_rfreg(hw, RF90_PATH_A, 0x00, MASK12BITS, rf_a_mode); + + if (is2t) + rtl_set_rfreg(hw, RF90_PATH_B, 0x00, + MASK12BITS, rf_b_mode); + } else { + rtl_write_byte(rtlpriv, REG_TXPAUSE, 0x00); + } + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "\n"); +} + +static void _rtl8723be_phy_set_rfpath_switch(struct ieee80211_hw *hw, + bool bmain, bool is2t) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, "\n"); + + if (is_hal_stop(rtlhal)) { + u8 u1btmp; + u1btmp = rtl_read_byte(rtlpriv, REG_LEDCFG0); + rtl_write_byte(rtlpriv, REG_LEDCFG0, u1btmp | BIT(7)); + rtl_set_bbreg(hw, RFPGA0_XAB_RFPARAMETER, BIT(13), 0x01); + } + if (is2t) { + if (bmain) + rtl_set_bbreg(hw, RFPGA0_XB_RFINTERFACEOE, + BIT(5) | BIT(6), 0x1); + else + rtl_set_bbreg(hw, RFPGA0_XB_RFINTERFACEOE, + BIT(5) | BIT(6), 0x2); + } else { + rtl_set_bbreg(hw, RFPGA0_XAB_RFINTERFACESW, BIT(8) | BIT(9), 0); + rtl_set_bbreg(hw, 0x914, MASKLWORD, 0x0201); + + /* We use the RF definition of MAIN and AUX, + * left antenna and right antenna repectively. + * Default output at AUX. + */ + if (bmain) { + rtl_set_bbreg(hw, RFPGA0_XA_RFINTERFACEOE, + BIT(14) | BIT(13) | BIT(12), 0); + rtl_set_bbreg(hw, RFPGA0_XB_RFINTERFACEOE, + BIT(5) | BIT(4) | BIT(3), 0); + if (rtlefuse->antenna_div_type == CGCS_RX_HW_ANTDIV) + rtl_set_bbreg(hw, CONFIG_RAM64X16, BIT(31), 0); + } else { + rtl_set_bbreg(hw, RFPGA0_XA_RFINTERFACEOE, + BIT(14) | BIT(13) | BIT(12), 1); + rtl_set_bbreg(hw, RFPGA0_XB_RFINTERFACEOE, + BIT(5) | BIT(4) | BIT(3), 1); + if (rtlefuse->antenna_div_type == CGCS_RX_HW_ANTDIV) + rtl_set_bbreg(hw, CONFIG_RAM64X16, BIT(31), 1); + } + } +} + +#undef IQK_ADDA_REG_NUM +#undef IQK_DELAY_TIME + +void rtl8723be_phy_iq_calibrate(struct ieee80211_hw *hw, bool recovery) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + long result[4][8]; + u8 i, final_candidate; + bool patha_ok, pathb_ok; + long reg_e94, reg_e9c, reg_ea4, reg_eac, reg_eb4, reg_ebc, reg_ec4, + reg_ecc, reg_tmp = 0; + bool is12simular, is13simular, is23simular; + u32 iqk_bb_reg[9] = { + ROFDM0_XARXIQIMBALANCE, + ROFDM0_XBRXIQIMBALANCE, + ROFDM0_ECCATHRESHOLD, + ROFDM0_AGCRSSITABLE, + ROFDM0_XATXIQIMBALANCE, + ROFDM0_XBTXIQIMBALANCE, + ROFDM0_XCTXAFE, + ROFDM0_XDTXAFE, + ROFDM0_RXIQEXTANTA + }; + + if (recovery) { + rtl8723_phy_reload_adda_registers(hw, iqk_bb_reg, + rtlphy->iqk_bb_backup, 9); + return; + } + + for (i = 0; i < 8; i++) { + result[0][i] = 0; + result[1][i] = 0; + result[2][i] = 0; + result[3][i] = 0; + } + final_candidate = 0xff; + patha_ok = false; + pathb_ok = false; + is12simular = false; + is23simular = false; + is13simular = false; + for (i = 0; i < 3; i++) { + if (get_rf_type(rtlphy) == RF_2T2R) + _rtl8723be_phy_iq_calibrate(hw, result, i, true); + else + _rtl8723be_phy_iq_calibrate(hw, result, i, false); + if (i == 1) { + is12simular = phy_similarity_cmp(hw, result, 0, 1); + if (is12simular) { + final_candidate = 0; + break; + } + } + if (i == 2) { + is13simular = phy_similarity_cmp(hw, result, 0, 2); + if (is13simular) { + final_candidate = 0; + break; + } + is23simular = phy_similarity_cmp(hw, result, 1, 2); + if (is23simular) { + final_candidate = 1; + } else { + for (i = 0; i < 8; i++) + reg_tmp += result[3][i]; + + if (reg_tmp != 0) + final_candidate = 3; + else + final_candidate = 0xFF; + } + } + } + for (i = 0; i < 4; i++) { + reg_e94 = result[i][0]; + reg_e9c = result[i][1]; + reg_ea4 = result[i][2]; + reg_eac = result[i][3]; + reg_eb4 = result[i][4]; + reg_ebc = result[i][5]; + reg_ec4 = result[i][6]; + reg_ecc = result[i][7]; + } + if (final_candidate != 0xff) { + reg_e94 = result[final_candidate][0]; + rtlphy->reg_e94 = reg_e94; + reg_e9c = result[final_candidate][1]; + rtlphy->reg_e9c = reg_e9c; + reg_ea4 = result[final_candidate][2]; + reg_eac = result[final_candidate][3]; + reg_eb4 = result[final_candidate][4]; + rtlphy->reg_eb4 = reg_eb4; + reg_ebc = result[final_candidate][5]; + rtlphy->reg_ebc = reg_ebc; + reg_ec4 = result[final_candidate][6]; + reg_ecc = result[final_candidate][7]; + patha_ok = true; + pathb_ok = true; + } else { + rtlphy->reg_e94 = 0x100; + rtlphy->reg_eb4 = 0x100; + rtlphy->reg_e9c = 0x0; + rtlphy->reg_ebc = 0x0; + } + if (reg_e94 != 0) /*&&(reg_ea4 != 0) */ + rtl8723_phy_path_a_fill_iqk_matrix(hw, patha_ok, result, + final_candidate, + (reg_ea4 == 0)); + if (final_candidate != 0xFF) { + for (i = 0; i < IQK_MATRIX_REG_NUM; i++) + rtlphy->iqk_matrix[0].value[0][i] = + result[final_candidate][i]; + rtlphy->iqk_matrix[0].iqk_done = true; + } + rtl8723_save_adda_registers(hw, iqk_bb_reg, rtlphy->iqk_bb_backup, 9); +} + +void rtl8723be_phy_lc_calibrate(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_hal *rtlhal = &(rtlpriv->rtlhal); + u32 timeout = 2000, timecount = 0; + + while (rtlpriv->mac80211.act_scanning && timecount < timeout) { + udelay(50); + timecount += 50; + } + + rtlphy->lck_inprogress = true; + RTPRINT(rtlpriv, FINIT, INIT_EEPROM, + "LCK:Start!!! currentband %x delay %d ms\n", + rtlhal->current_bandtype, timecount); + + _rtl8723be_phy_lc_calibrate(hw, false); + + rtlphy->lck_inprogress = false; +} + +void rtl23b_phy_ap_calibrate(struct ieee80211_hw *hw, char delta) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + if (rtlphy->apk_done) + return; + + return; +} + +void rtl8723be_phy_set_rfpath_switch(struct ieee80211_hw *hw, bool bmain) +{ + _rtl8723be_phy_set_rfpath_switch(hw, bmain, false); +} + +static void rtl8723be_phy_set_io(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE, + "--->Cmd(%#x), set_io_inprogress(%d)\n", + rtlphy->current_io_type, rtlphy->set_io_inprogress); + switch (rtlphy->current_io_type) { + case IO_CMD_RESUME_DM_BY_SCAN: + rtlpriv->dm_digtable.cur_igvalue = + rtlphy->initgain_backup.xaagccore1; + /*rtl92c_dm_write_dig(hw);*/ + rtl8723be_phy_set_txpower_level(hw, rtlphy->current_channel); + rtl_set_bbreg(hw, RCCK0_CCA, 0xff0000, 0x83); + break; + case IO_CMD_PAUSE_DM_BY_SCAN: + rtlphy->initgain_backup.xaagccore1 = + rtlpriv->dm_digtable.cur_igvalue; + rtlpriv->dm_digtable.cur_igvalue = 0x17; + rtl_set_bbreg(hw, RCCK0_CCA, 0xff0000, 0x40); + break; + default: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "switch case not process\n"); + break; + } + rtlphy->set_io_inprogress = false; + RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE, + "(%#x)\n", rtlphy->current_io_type); +} + +bool rtl8723be_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + bool postprocessing = false; + + RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE, + "-->IO Cmd(%#x), set_io_inprogress(%d)\n", + iotype, rtlphy->set_io_inprogress); + do { + switch (iotype) { + case IO_CMD_RESUME_DM_BY_SCAN: + RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE, + "[IO CMD] Resume DM after scan.\n"); + postprocessing = true; + break; + case IO_CMD_PAUSE_DM_BY_SCAN: + RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE, + "[IO CMD] Pause DM before scan.\n"); + postprocessing = true; + break; + default: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "switch case not process\n"); + break; + } + } while (false); + if (postprocessing && !rtlphy->set_io_inprogress) { + rtlphy->set_io_inprogress = true; + rtlphy->current_io_type = iotype; + } else { + return false; + } + rtl8723be_phy_set_io(hw); + RT_TRACE(rtlpriv, COMP_CMD, DBG_TRACE, "IO Type(%#x)\n", iotype); + return true; +} + +static void rtl8723be_phy_set_rf_on(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtl_write_byte(rtlpriv, REG_SPS0_CTRL, 0x2b); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, 0xE3); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, 0xE2); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, 0xE3); + rtl_write_byte(rtlpriv, REG_TXPAUSE, 0x00); +} + +static void _rtl8723be_phy_set_rf_sleep(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtl_write_byte(rtlpriv, REG_TXPAUSE, 0xFF); + rtl_set_rfreg(hw, RF90_PATH_A, 0x00, RFREG_OFFSET_MASK, 0x00); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, 0xE2); + rtl_write_byte(rtlpriv, REG_SPS0_CTRL, 0x22); +} + +static bool _rtl8723be_phy_set_rf_power_state(struct ieee80211_hw *hw, + enum rf_pwrstate rfpwr_state) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + bool bresult = true; + u8 i, queue_id; + struct rtl8192_tx_ring *ring = NULL; + + switch (rfpwr_state) { + case ERFON: + if ((ppsc->rfpwr_state == ERFOFF) && + RT_IN_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC)) { + bool rtstatus; + u32 initialize_count = 0; + do { + initialize_count++; + RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG, + "IPS Set eRf nic enable\n"); + rtstatus = rtl_ps_enable_nic(hw); + } while (!rtstatus && (initialize_count < 10)); + RT_CLEAR_PS_LEVEL(ppsc, + RT_RF_OFF_LEVL_HALT_NIC); + } else { + RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG, + "Set ERFON sleeped:%d ms\n", + jiffies_to_msecs(jiffies - + ppsc->last_sleep_jiffies)); + ppsc->last_awake_jiffies = jiffies; + rtl8723be_phy_set_rf_on(hw); + } + if (mac->link_state == MAC80211_LINKED) + rtlpriv->cfg->ops->led_control(hw, LED_CTL_LINK); + else + rtlpriv->cfg->ops->led_control(hw, LED_CTL_NO_LINK); + break; + case ERFOFF: + for (queue_id = 0, i = 0; + queue_id < RTL_PCI_MAX_TX_QUEUE_COUNT;) { + ring = &pcipriv->dev.tx_ring[queue_id]; + if (skb_queue_len(&ring->queue) == 0) { + queue_id++; + continue; + } else { + RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, + "eRf Off/Sleep: %d times " + "TcbBusyQueue[%d] =%d before " + "doze!\n", (i + 1), queue_id, + skb_queue_len(&ring->queue)); + + udelay(10); + i++; + } + if (i >= MAX_DOZE_WAITING_TIMES_9x) { + RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, + "\n ERFSLEEP: %d times " + "TcbBusyQueue[%d] = %d !\n", + MAX_DOZE_WAITING_TIMES_9x, + queue_id, + skb_queue_len(&ring->queue)); + break; + } + } + + if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_HALT_NIC) { + RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG, + "IPS Set eRf nic disable\n"); + rtl_ps_disable_nic(hw); + RT_SET_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC); + } else { + if (ppsc->rfoff_reason == RF_CHANGE_BY_IPS) { + rtlpriv->cfg->ops->led_control(hw, + LED_CTL_NO_LINK); + } else { + rtlpriv->cfg->ops->led_control(hw, + LED_CTL_POWER_OFF); + } + } + break; + case ERFSLEEP: + if (ppsc->rfpwr_state == ERFOFF) + break; + for (queue_id = 0, i = 0; + queue_id < RTL_PCI_MAX_TX_QUEUE_COUNT;) { + ring = &pcipriv->dev.tx_ring[queue_id]; + if (skb_queue_len(&ring->queue) == 0) { + queue_id++; + continue; + } else { + RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, + "eRf Off/Sleep: %d times " + "TcbBusyQueue[%d] =%d before " + "doze!\n", (i + 1), queue_id, + skb_queue_len(&ring->queue)); + + udelay(10); + i++; + } + if (i >= MAX_DOZE_WAITING_TIMES_9x) { + RT_TRACE(rtlpriv, COMP_ERR, DBG_WARNING, + "\n ERFSLEEP: %d times " + "TcbBusyQueue[%d] = %d !\n", + MAX_DOZE_WAITING_TIMES_9x, + queue_id, + skb_queue_len(&ring->queue)); + break; + } + } + RT_TRACE(rtlpriv, COMP_RF, DBG_DMESG, + "Set ERFSLEEP awaked:%d ms\n", + jiffies_to_msecs(jiffies - + ppsc->last_awake_jiffies)); + ppsc->last_sleep_jiffies = jiffies; + _rtl8723be_phy_set_rf_sleep(hw); + break; + default: + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "switch case not process\n"); + bresult = false; + break; + } + if (bresult) + ppsc->rfpwr_state = rfpwr_state; + return bresult; +} + +bool rtl8723be_phy_set_rf_power_state(struct ieee80211_hw *hw, + enum rf_pwrstate rfpwr_state) +{ + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + + bool bresult = false; + + if (rfpwr_state == ppsc->rfpwr_state) + return bresult; + bresult = _rtl8723be_phy_set_rf_power_state(hw, rfpwr_state); + return bresult; +} --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/phy.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/phy.h @@ -0,0 +1,217 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8723BE_PHY_H__ +#define __RTL8723BE_PHY_H__ + +/*It must always set to 4, otherwise read efuse table secquence will be wrong.*/ +#define MAX_TX_COUNT 4 +#define TX_1S 0 +#define TX_2S 1 + +#define MAX_POWER_INDEX 0x3F + +#define MAX_PRECMD_CNT 16 +#define MAX_RFDEPENDCMD_CNT 16 +#define MAX_POSTCMD_CNT 16 + +#define MAX_DOZE_WAITING_TIMES_9x 64 + +#define RT_CANNOT_IO(hw) false +#define HIGHPOWER_RADIOA_ARRAYLEN 22 + +#define IQK_ADDA_REG_NUM 16 +#define IQK_BB_REG_NUM 9 +#define MAX_TOLERANCE 5 +#define IQK_DELAY_TIME 10 +#define index_mapping_NUM 15 + +#define APK_BB_REG_NUM 5 +#define APK_AFE_REG_NUM 16 +#define APK_CURVE_REG_NUM 4 +#define PATH_NUM 1 + +#define LOOP_LIMIT 5 +#define MAX_STALL_TIME 50 +#define ANTENNADIVERSITYVALUE 0x80 +#define MAX_TXPWR_IDX_NMODE_92S 63 +#define RESET_CNT_LIMIT 3 + +#define IQK_ADDA_REG_NUM 16 +#define IQK_MAC_REG_NUM 4 + +#define RF6052_MAX_PATH 2 + +#define CT_OFFSET_MAC_ADDR 0X16 + +#define CT_OFFSET_CCK_TX_PWR_IDX 0x5A +#define CT_OFFSET_HT401S_TX_PWR_IDX 0x60 +#define CT_OFFSET_HT402S_TX_PWR_IDX_DIFF 0x66 +#define CT_OFFSET_HT20_TX_PWR_IDX_DIFF 0x69 +#define CT_OFFSET_OFDM_TX_PWR_IDX_DIFF 0x6C + +#define CT_OFFSET_HT40_MAX_PWR_OFFSET 0x6F +#define CT_OFFSET_HT20_MAX_PWR_OFFSET 0x72 + +#define CT_OFFSET_CHANNEL_PLAH 0x75 +#define CT_OFFSET_THERMAL_METER 0x78 +#define CT_OFFSET_RF_OPTION 0x79 +#define CT_OFFSET_VERSION 0x7E +#define CT_OFFSET_CUSTOMER_ID 0x7F + +#define RTL92C_MAX_PATH_NUM 2 + +enum hw90_block_e { + HW90_BLOCK_MAC = 0, + HW90_BLOCK_PHY0 = 1, + HW90_BLOCK_PHY1 = 2, + HW90_BLOCK_RF = 3, + HW90_BLOCK_MAXIMUM = 4, +}; + +enum baseband_config_type { + BASEBAND_CONFIG_PHY_REG = 0, + BASEBAND_CONFIG_AGC_TAB = 1, +}; + +enum ra_offset_area { + RA_OFFSET_LEGACY_OFDM1, + RA_OFFSET_LEGACY_OFDM2, + RA_OFFSET_HT_OFDM1, + RA_OFFSET_HT_OFDM2, + RA_OFFSET_HT_OFDM3, + RA_OFFSET_HT_OFDM4, + RA_OFFSET_HT_CCK, +}; + +enum antenna_path { + ANTENNA_NONE, + ANTENNA_D, + ANTENNA_C, + ANTENNA_CD, + ANTENNA_B, + ANTENNA_BD, + ANTENNA_BC, + ANTENNA_BCD, + ANTENNA_A, + ANTENNA_AD, + ANTENNA_AC, + ANTENNA_ACD, + ANTENNA_AB, + ANTENNA_ABD, + ANTENNA_ABC, + ANTENNA_ABCD +}; + +struct r_antenna_select_ofdm { + u32 r_tx_antenna:4; + u32 r_ant_l:4; + u32 r_ant_non_ht:4; + u32 r_ant_ht1:4; + u32 r_ant_ht2:4; + u32 r_ant_ht_s1:4; + u32 r_ant_non_ht_s1:4; + u32 ofdm_txsc:2; + u32 reserved:2; +}; + +struct r_antenna_select_cck { + u8 r_cckrx_enable_2:2; + u8 r_cckrx_enable:2; + u8 r_ccktx_enable:4; +}; + + +struct efuse_contents { + u8 mac_addr[ETH_ALEN]; + u8 cck_tx_power_idx[6]; + u8 ht40_1s_tx_power_idx[6]; + u8 ht40_2s_tx_power_idx_diff[3]; + u8 ht20_tx_power_idx_diff[3]; + u8 ofdm_tx_power_idx_diff[3]; + u8 ht40_max_power_offset[3]; + u8 ht20_max_power_offset[3]; + u8 channel_plan; + u8 thermal_meter; + u8 rf_option[5]; + u8 version; + u8 oem_id; + u8 regulatory; +}; + +struct tx_power_struct { + u8 cck[RTL92C_MAX_PATH_NUM][CHANNEL_MAX_NUMBER]; + u8 ht40_1s[RTL92C_MAX_PATH_NUM][CHANNEL_MAX_NUMBER]; + u8 ht40_2s[RTL92C_MAX_PATH_NUM][CHANNEL_MAX_NUMBER]; + u8 ht20_diff[RTL92C_MAX_PATH_NUM][CHANNEL_MAX_NUMBER]; + u8 legacy_ht_diff[RTL92C_MAX_PATH_NUM][CHANNEL_MAX_NUMBER]; + u8 legacy_ht_txpowerdiff; + u8 groupht20[RTL92C_MAX_PATH_NUM][CHANNEL_MAX_NUMBER]; + u8 groupht40[RTL92C_MAX_PATH_NUM][CHANNEL_MAX_NUMBER]; + u8 pwrgroup_cnt; + u32 mcs_original_offset[4][16]; +}; + +enum _ANT_DIV_TYPE { + NO_ANTDIV = 0xFF, + CG_TRX_HW_ANTDIV = 0x01, + CGCS_RX_HW_ANTDIV = 0x02, + FIXED_HW_ANTDIV = 0x03, + CG_TRX_SMART_ANTDIV = 0x04, + CGCS_RX_SW_ANTDIV = 0x05, +}; + +u32 rtl8723be_phy_query_rf_reg(struct ieee80211_hw *hw, + enum radio_path rfpath, + u32 regaddr, u32 bitmask); +void rtl8723be_phy_set_rf_reg(struct ieee80211_hw *hw, + enum radio_path rfpath, + u32 regaddr, u32 bitmask, u32 data); +bool rtl8723be_phy_mac_config(struct ieee80211_hw *hw); +bool rtl8723be_phy_bb_config(struct ieee80211_hw *hw); +bool rtl8723be_phy_rf_config(struct ieee80211_hw *hw); +void rtl8723be_phy_get_hw_reg_originalvalue(struct ieee80211_hw *hw); +void rtl8723be_phy_get_txpower_level(struct ieee80211_hw *hw, + long *powerlevel); +void rtl8723be_phy_set_txpower_level(struct ieee80211_hw *hw, + u8 channel); +void rtl8723be_phy_scan_operation_backup(struct ieee80211_hw *hw, + u8 operation); +void rtl8723be_phy_set_bw_mode_callback(struct ieee80211_hw *hw); +void rtl8723be_phy_set_bw_mode(struct ieee80211_hw *hw, + enum nl80211_channel_type ch_type); +void rtl8723be_phy_sw_chnl_callback(struct ieee80211_hw *hw); +u8 rtl8723be_phy_sw_chnl(struct ieee80211_hw *hw); +void rtl8723be_phy_iq_calibrate(struct ieee80211_hw *hw, + bool b_recovery); +void rtl23b_phy_ap_calibrate(struct ieee80211_hw *hw, char delta); +void rtl8723be_phy_lc_calibrate(struct ieee80211_hw *hw); +void rtl8723be_phy_set_rfpath_switch(struct ieee80211_hw *hw, bool bmain); +bool rtl8723be_phy_config_rf_with_headerfile(struct ieee80211_hw *hw, + enum radio_path rfpath); +bool rtl8723be_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype); +bool rtl8723be_phy_set_rf_power_state(struct ieee80211_hw *hw, + enum rf_pwrstate rfpwr_state); +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/pwrseq.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/pwrseq.c @@ -0,0 +1,106 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "pwrseqcmd.h" +#include "pwrseq.h" + + +/* drivers should parse below arrays and do the corresponding actions */ +/*3 Power on Array*/ +struct wlan_pwr_cfg rtl8723B_power_on_flow[RTL8723B_TRANS_CARDEMU_TO_ACT_STEPS + + RTL8723B_TRANS_END_STEPS] = { + RTL8723B_TRANS_CARDEMU_TO_ACT + RTL8723B_TRANS_END +}; + +/*3Radio off GPIO Array */ +struct wlan_pwr_cfg rtl8723B_radio_off_flow[RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8723B_TRANS_END_STEPS] = { + RTL8723B_TRANS_ACT_TO_CARDEMU + RTL8723B_TRANS_END +}; + +/*3Card Disable Array*/ +struct wlan_pwr_cfg rtl8723B_card_disable_flow + [RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8723B_TRANS_CARDEMU_TO_PDN_STEPS + + RTL8723B_TRANS_END_STEPS] = { + RTL8723B_TRANS_ACT_TO_CARDEMU + RTL8723B_TRANS_CARDEMU_TO_CARDDIS + RTL8723B_TRANS_END +}; + +/*3 Card Enable Array*/ +struct wlan_pwr_cfg rtl8723B_card_enable_flow + [RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8723B_TRANS_CARDEMU_TO_PDN_STEPS + + RTL8723B_TRANS_END_STEPS] = { + RTL8723B_TRANS_CARDDIS_TO_CARDEMU + RTL8723B_TRANS_CARDEMU_TO_ACT + RTL8723B_TRANS_END +}; + +/*3Suspend Array*/ +struct wlan_pwr_cfg rtl8723B_suspend_flow[RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8723B_TRANS_CARDEMU_TO_SUS_STEPS + + RTL8723B_TRANS_END_STEPS] = { + RTL8723B_TRANS_ACT_TO_CARDEMU + RTL8723B_TRANS_CARDEMU_TO_SUS + RTL8723B_TRANS_END +}; + +/*3 Resume Array*/ +struct wlan_pwr_cfg rtl8723B_resume_flow[RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8723B_TRANS_CARDEMU_TO_SUS_STEPS + + RTL8723B_TRANS_END_STEPS] = { + RTL8723B_TRANS_SUS_TO_CARDEMU + RTL8723B_TRANS_CARDEMU_TO_ACT + RTL8723B_TRANS_END +}; + +/*3HWPDN Array*/ +struct wlan_pwr_cfg rtl8723B_hwpdn_flow[RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8723B_TRANS_CARDEMU_TO_PDN_STEPS + + RTL8723B_TRANS_END_STEPS] = { + RTL8723B_TRANS_ACT_TO_CARDEMU + RTL8723B_TRANS_CARDEMU_TO_PDN + RTL8723B_TRANS_END +}; + +/*3 Enter LPS */ +struct wlan_pwr_cfg rtl8723B_enter_lps_flow[RTL8723B_TRANS_ACT_TO_LPS_STEPS + + RTL8723B_TRANS_END_STEPS] = { + /*FW behavior*/ + RTL8723B_TRANS_ACT_TO_LPS + RTL8723B_TRANS_END +}; + +/*3 Leave LPS */ +struct wlan_pwr_cfg rtl8723B_leave_lps_flow[RTL8723B_TRANS_LPS_TO_ACT_STEPS + + RTL8723B_TRANS_END_STEPS] = { + /*FW behavior*/ + RTL8723B_TRANS_LPS_TO_ACT + RTL8723B_TRANS_END +}; --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/pwrseq.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/pwrseq.h @@ -0,0 +1,305 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8723BE_PWRSEQ_H__ +#define __RTL8723BE_PWRSEQ_H__ + +#include "pwrseqcmd.h" +/* Check document WM-20130425-JackieLau-RTL8723B_Power_Architecture v05.vsd + * There are 6 HW Power States: + * 0: POFF--Power Off + * 1: PDN--Power Down + * 2: CARDEMU--Card Emulation + * 3: ACT--Active Mode + * 4: LPS--Low Power State + * 5: SUS--Suspend + * + * The transition from different states are defined below + * TRANS_CARDEMU_TO_ACT + * TRANS_ACT_TO_CARDEMU + * TRANS_CARDEMU_TO_SUS + * TRANS_SUS_TO_CARDEMU + * TRANS_CARDEMU_TO_PDN + * TRANS_ACT_TO_LPS + * TRANS_LPS_TO_ACT + * + * TRANS_END + */ +#define RTL8723B_TRANS_CARDEMU_TO_ACT_STEPS 23 +#define RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS 15 +#define RTL8723B_TRANS_CARDEMU_TO_SUS_STEPS 15 +#define RTL8723B_TRANS_SUS_TO_CARDEMU_STEPS 15 +#define RTL8723B_TRANS_CARDEMU_TO_PDN_STEPS 15 +#define RTL8723B_TRANS_PDN_TO_CARDEMU_STEPS 15 +#define RTL8723B_TRANS_ACT_TO_LPS_STEPS 15 +#define RTL8723B_TRANS_LPS_TO_ACT_STEPS 15 +#define RTL8723B_TRANS_END_STEPS 1 + +#define RTL8723B_TRANS_CARDEMU_TO_ACT \ + {0x0020, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ + PWR_INTF_USB_MSK | PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ + {0x0067, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ + PWR_INTF_USB_MSK | PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0}, \ + {0x0001, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ + PWR_INTF_USB_MSK | PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_DELAY, 1, PWRSEQ_DELAY_MS}, \ + {0x0000, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ + PWR_INTF_USB_MSK | PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(5), 0}, \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, (BIT(4)|BIT(3)|BIT(2)), 0}, \ + {0x0075, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0) , 0}, \ + {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(1), BIT(1)}, \ + {0x0075, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0) , BIT(0)}, \ + {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), 0}, \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, (BIT(4)|BIT(3)), 0}, \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(0), 0}, \ + {0x0010, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(6), BIT(6)}, \ + {0x0049, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1)}, \ + {0x0063, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1)}, \ + {0x0062, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), 0}, \ + {0x0058, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ + {0x005A, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1)}, \ + {0x0068, PWR_CUT_TESTCHIP_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,\ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3), BIT(3)}, \ + {0x0069, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(6), BIT(6)}, + +#define RTL8723B_TRANS_ACT_TO_CARDEMU \ + {0x001F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0}, \ + {0x004F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 0}, \ + {0x0049, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), 0}, \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1)}, \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(1), 0}, \ + {0x0010, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(6), 0}, \ + {0x0000, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ + PWR_INTF_USB_MSK | PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ + PWR_CMD_WRITE, BIT(5), BIT(5)}, \ + {0x0020, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ + PWR_INTF_USB_MSK | PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ + PWR_CMD_WRITE, BIT(0), 0}, + +#define RTL8723B_TRANS_CARDEMU_TO_SUS \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4) | BIT(3), (BIT(4) | BIT(3))}, \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ + PWR_INTF_USB_MSK | PWR_INTF_SDIO_MSK, PWR_BASEADDR_MAC, \ + PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3)}, \ + {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4)}, \ + {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x20}, \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3) | BIT(4), BIT(3) | BIT(4)},\ + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), 0}, + +#define RTL8723B_TRANS_SUS_TO_CARDEMU \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3) | BIT(7), 0}, \ + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), 0}, \ + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), BIT(1)}, \ + {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0}, \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3)|BIT(4), 0}, + +#define RTL8723B_TRANS_CARDEMU_TO_CARDDIS \ + {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x20}, \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ + PWR_INTF_USB_MSK | PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3)|BIT(4), BIT(3)}, \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(2), BIT(2)}, \ + {0x004A, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 1}, \ + {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4)}, \ + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), BIT(0)}, \ + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), 0}, + +#define RTL8723B_TRANS_CARDDIS_TO_CARDEMU \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3) | BIT(7), 0}, \ + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_SDIO, PWR_CMD_WRITE, BIT(0), 0}, \ + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_SDIO, PWR_CMD_POLLING, BIT(1), BIT(1)}, \ + {0x004A, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 0}, \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(3)|BIT(4), 0}, \ + {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0}, \ + {0x0301, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0}, + +#define RTL8723B_TRANS_CARDEMU_TO_PDN \ + {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), BIT(4)}, \ + {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, \ + PWR_INTF_SDIO_MSK | PWR_INTF_USB_MSK, PWR_BASEADDR_MAC, \ + PWR_CMD_WRITE, 0xFF, 0x20}, \ + {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 0}, \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), BIT(7)}, + +#define RTL8723B_TRANS_PDN_TO_CARDEMU \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(7), 0}, + +#define RTL8723B_TRANS_ACT_TO_LPS \ + {0x0301, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xFF}, \ + {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xFF}, \ + {0x05F8, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0}, \ + {0x05F9, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0}, \ + {0x05FA, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0}, \ + {0x05FB, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_POLLING, 0xFF, 0}, \ + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(0), 0}, \ + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_US}, \ + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), 0}, \ + {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x03}, \ + {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), 0}, \ + {0x0093, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x00}, \ + {0x0553, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(5), BIT(5)}, + +#define RTL8723B_TRANS_LPS_TO_ACT \ + {0x0080, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK, \ + PWR_BASEADDR_SDIO, PWR_CMD_WRITE, 0xFF, 0x84}, \ + {0xFE58, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84}, \ + {0x0361, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0x84}, \ + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_DELAY, 0, PWRSEQ_DELAY_MS}, \ + {0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(4), 0}, \ + {0x0109, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_POLLING, BIT(7), 0}, \ + {0x0029, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(6)|BIT(7), 0}, \ + {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1), BIT(1)}, \ + {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0xFF}, \ + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, BIT(1) | BIT(0), BIT(1) | BIT(0)}, \ + {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, \ + PWR_BASEADDR_MAC, PWR_CMD_WRITE, 0xFF, 0}, + +#define RTL8723B_TRANS_END \ + {0xFFFF, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK, 0, \ + PWR_CMD_END, 0, 0}, + +extern struct wlan_pwr_cfg rtl8723B_power_on_flow + [RTL8723B_TRANS_CARDEMU_TO_ACT_STEPS + + RTL8723B_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8723B_radio_off_flow + [RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8723B_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8723B_card_disable_flow + [RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8723B_TRANS_CARDEMU_TO_PDN_STEPS + + RTL8723B_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8723B_card_enable_flow + [RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8723B_TRANS_CARDEMU_TO_PDN_STEPS + + RTL8723B_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8723B_suspend_flow + [RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8723B_TRANS_CARDEMU_TO_SUS_STEPS + + RTL8723B_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8723B_resume_flow + [RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8723B_TRANS_CARDEMU_TO_SUS_STEPS + + RTL8723B_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8723B_hwpdn_flow + [RTL8723B_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8723B_TRANS_CARDEMU_TO_PDN_STEPS + + RTL8723B_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8723B_enter_lps_flow + [RTL8723B_TRANS_ACT_TO_LPS_STEPS + + RTL8723B_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8723B_leave_lps_flow + [RTL8723B_TRANS_LPS_TO_ACT_STEPS + + RTL8723B_TRANS_END_STEPS]; + +/* RTL8723 Power Configuration CMDs for PCIe interface */ +#define RTL8723_NIC_PWR_ON_FLOW rtl8723B_power_on_flow +#define RTL8723_NIC_RF_OFF_FLOW rtl8723B_radio_off_flow +#define RTL8723_NIC_DISABLE_FLOW rtl8723B_card_disable_flow +#define RTL8723_NIC_ENABLE_FLOW rtl8723B_card_enable_flow +#define RTL8723_NIC_SUSPEND_FLOW rtl8723B_suspend_flow +#define RTL8723_NIC_RESUME_FLOW rtl8723B_resume_flow +#define RTL8723_NIC_PDN_FLOW rtl8723B_hwpdn_flow +#define RTL8723_NIC_LPS_ENTER_FLOW rtl8723B_enter_lps_flow +#define RTL8723_NIC_LPS_LEAVE_FLOW rtl8723B_leave_lps_flow + +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/pwrseqcmd.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/pwrseqcmd.c @@ -0,0 +1,140 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "pwrseq.h" + +/* Description: + * This routine deal with the Power Configuration CMDs + * parsing for RTL8723/RTL8188E Series IC. + * Assumption: + * We should follow specific format which was released from HW SD. + * + * 2011.07.07, added by Roger. + */ +bool rtlbe_hal_pwrseqcmdparsing(struct rtl_priv *rtlpriv, u8 cut_version, + u8 fab_version, u8 interface_type, + struct wlan_pwr_cfg pwrcfgcmd[]) + +{ + struct wlan_pwr_cfg pwr_cfg_cmd = {0}; + bool b_polling_bit = false; + u32 ary_idx = 0; + u8 value = 0; + u32 offset = 0; + u32 polling_count = 0; + u32 max_polling_cnt = 5000; + + do { + pwr_cfg_cmd = pwrcfgcmd[ary_idx]; + RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, + "rtlbe_hal_pwrseqcmdparsing(): " + "offset(%#x),cut_msk(%#x), fab_msk(%#x)," + "interface_msk(%#x), base(%#x), " + "cmd(%#x), msk(%#x), value(%#x)\n", + GET_PWR_CFG_OFFSET(pwr_cfg_cmd), + GET_PWR_CFG_CUT_MASK(pwr_cfg_cmd), + GET_PWR_CFG_FAB_MASK(pwr_cfg_cmd), + GET_PWR_CFG_INTF_MASK(pwr_cfg_cmd), + GET_PWR_CFG_BASE(pwr_cfg_cmd), + GET_PWR_CFG_CMD(pwr_cfg_cmd), + GET_PWR_CFG_MASK(pwr_cfg_cmd), + GET_PWR_CFG_VALUE(pwr_cfg_cmd)); + + if ((GET_PWR_CFG_FAB_MASK(pwr_cfg_cmd)&fab_version) && + (GET_PWR_CFG_CUT_MASK(pwr_cfg_cmd)&cut_version) && + (GET_PWR_CFG_INTF_MASK(pwr_cfg_cmd)&interface_type)) { + switch (GET_PWR_CFG_CMD(pwr_cfg_cmd)) { + case PWR_CMD_READ: + RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, + "rtlbe_hal_pwrseqcmdparsing(): " + "PWR_CMD_READ\n"); + break; + case PWR_CMD_WRITE: + RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, + "rtlbe_hal_pwrseqcmdparsing(): " + "PWR_CMD_WRITE\n"); + offset = GET_PWR_CFG_OFFSET(pwr_cfg_cmd); + + /*Read the value from system register*/ + value = rtl_read_byte(rtlpriv, offset); + value &= (~(GET_PWR_CFG_MASK(pwr_cfg_cmd))); + value = value | (GET_PWR_CFG_VALUE(pwr_cfg_cmd) + & GET_PWR_CFG_MASK(pwr_cfg_cmd)); + + /*Write the value back to sytem register*/ + rtl_write_byte(rtlpriv, offset, value); + break; + case PWR_CMD_POLLING: + RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, + "rtlbe_hal_pwrseqcmdparsing(): " + "PWR_CMD_POLLING\n"); + b_polling_bit = false; + offset = GET_PWR_CFG_OFFSET(pwr_cfg_cmd); + + do { + value = rtl_read_byte(rtlpriv, offset); + + value &= GET_PWR_CFG_MASK(pwr_cfg_cmd); + if (value == + (GET_PWR_CFG_VALUE(pwr_cfg_cmd) & + GET_PWR_CFG_MASK(pwr_cfg_cmd))) + b_polling_bit = true; + else + udelay(10); + + if (polling_count++ > max_polling_cnt) + return false; + + } while (!b_polling_bit); + break; + case PWR_CMD_DELAY: + RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, + "rtlbe_hal_pwrseqcmdparsing(): " + "PWR_CMD_DELAY\n"); + if (GET_PWR_CFG_VALUE(pwr_cfg_cmd) == + PWRSEQ_DELAY_US) + udelay(GET_PWR_CFG_OFFSET(pwr_cfg_cmd)); + else + mdelay(GET_PWR_CFG_OFFSET(pwr_cfg_cmd)); + break; + case PWR_CMD_END: + RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, + "rtlbe_hal_pwrseqcmdparsing(): " + "PWR_CMD_END\n"); + return true; + break; + default: + RT_ASSERT(false, + "rtlbe_hal_pwrseqcmdparsing(): " + "Unknown CMD!!\n"); + break; + } + } + + ary_idx++; + } while (1); + + return true; +} --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/pwrseqcmd.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/pwrseqcmd.h @@ -0,0 +1,95 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8723BE_PWRSEQCMD_H__ +#define __RTL8723BE_PWRSEQCMD_H__ + +#include "../wifi.h" +/*---------------------------------------------*/ +/*The value of cmd: 4 bits */ +/*---------------------------------------------*/ +#define PWR_CMD_READ 0x00 +#define PWR_CMD_WRITE 0x01 +#define PWR_CMD_POLLING 0x02 +#define PWR_CMD_DELAY 0x03 +#define PWR_CMD_END 0x04 + +/* define the base address of each block */ +#define PWR_BASEADDR_MAC 0x00 +#define PWR_BASEADDR_USB 0x01 +#define PWR_BASEADDR_PCIE 0x02 +#define PWR_BASEADDR_SDIO 0x03 + +#define PWR_INTF_SDIO_MSK BIT(0) +#define PWR_INTF_USB_MSK BIT(1) +#define PWR_INTF_PCI_MSK BIT(2) +#define PWR_INTF_ALL_MSK (BIT(0) | BIT(1) | BIT(2) | BIT(3)) + +#define PWR_FAB_TSMC_MSK BIT(0) +#define PWR_FAB_UMC_MSK BIT(1) +#define PWR_FAB_ALL_MSK (BIT(0) | BIT(1) | BIT(2) | BIT(3)) + +#define PWR_CUT_TESTCHIP_MSK BIT(0) +#define PWR_CUT_A_MSK BIT(1) +#define PWR_CUT_B_MSK BIT(2) +#define PWR_CUT_C_MSK BIT(3) +#define PWR_CUT_D_MSK BIT(4) +#define PWR_CUT_E_MSK BIT(5) +#define PWR_CUT_F_MSK BIT(6) +#define PWR_CUT_G_MSK BIT(7) +#define PWR_CUT_ALL_MSK 0xFF + + +enum pwrseq_delay_unit { + PWRSEQ_DELAY_US, + PWRSEQ_DELAY_MS, +}; + +struct wlan_pwr_cfg { + u16 offset; + u8 cut_msk; + u8 fab_msk:4; + u8 interface_msk:4; + u8 base:4; + u8 cmd:4; + u8 msk; + u8 value; + +}; + +#define GET_PWR_CFG_OFFSET(__PWR_CMD) __PWR_CMD.offset +#define GET_PWR_CFG_CUT_MASK(__PWR_CMD) __PWR_CMD.cut_msk +#define GET_PWR_CFG_FAB_MASK(__PWR_CMD) __PWR_CMD.fab_msk +#define GET_PWR_CFG_INTF_MASK(__PWR_CMD) __PWR_CMD.interface_msk +#define GET_PWR_CFG_BASE(__PWR_CMD) __PWR_CMD.base +#define GET_PWR_CFG_CMD(__PWR_CMD) __PWR_CMD.cmd +#define GET_PWR_CFG_MASK(__PWR_CMD) __PWR_CMD.msk +#define GET_PWR_CFG_VALUE(__PWR_CMD) __PWR_CMD.value + +bool rtlbe_hal_pwrseqcmdparsing(struct rtl_priv *rtlpriv, u8 cut_version, + u8 fab_version, u8 interface_type, + struct wlan_pwr_cfg pwrcfgcmd[]); + +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/reg.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/reg.h @@ -0,0 +1,2293 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8723BE_REG_H__ +#define __RTL8723BE_REG_H__ + +#define TXPKT_BUF_SELECT 0x69 +#define RXPKT_BUF_SELECT 0xA5 +#define DISABLE_TRXPKT_BUF_ACCESS 0x0 + +#define REG_SYS_ISO_CTRL 0x0000 +#define REG_SYS_FUNC_EN 0x0002 +#define REG_APS_FSMCO 0x0004 +#define REG_SYS_CLKR 0x0008 +#define REG_9346CR 0x000A +#define REG_EE_VPD 0x000C +#define REG_AFE_MISC 0x0010 +#define REG_SPS0_CTRL 0x0011 +#define REG_SPS_OCP_CFG 0x0018 +#define REG_RSV_CTRL 0x001C +#define REG_RF_CTRL 0x001F +#define REG_LDOA15_CTRL 0x0020 +#define REG_LDOV12D_CTRL 0x0021 +#define REG_LDOHCI12_CTRL 0x0022 +#define REG_LPLDO_CTRL 0x0023 +#define REG_AFE_XTAL_CTRL 0x0024 +/* 1.5v for 8188EE test chip, 1.4v for MP chip */ +#define REG_AFE_LDO_CTRL 0x0027 +#define REG_AFE_PLL_CTRL 0x0028 +#define REG_MAC_PHY_CTRL 0x002c +#define REG_EFUSE_CTRL 0x0030 +#define REG_EFUSE_TEST 0x0034 +#define REG_PWR_DATA 0x0038 +#define REG_CAL_TIMER 0x003C +#define REG_ACLK_MON 0x003E +#define REG_GPIO_MUXCFG 0x0040 +#define REG_GPIO_IO_SEL 0x0042 +#define REG_MAC_PINMUX_CFG 0x0043 +#define REG_GPIO_PIN_CTRL 0x0044 +#define REG_GPIO_INTM 0x0048 +#define REG_LEDCFG0 0x004C +#define REG_LEDCFG1 0x004D +#define REG_LEDCFG2 0x004E +#define REG_LEDCFG3 0x004F +#define REG_FSIMR 0x0050 +#define REG_FSISR 0x0054 +#define REG_HSIMR 0x0058 +#define REG_HSISR 0x005c +#define REG_GPIO_PIN_CTRL_2 0x0060 +#define REG_GPIO_IO_SEL_2 0x0062 +#define REG_MULTI_FUNC_CTRL 0x0068 +#define REG_GPIO_OUTPUT 0x006c +#define REG_AFE_XTAL_CTRL_EXT 0x0078 +#define REG_XCK_OUT_CTRL 0x007c +#define REG_MCUFWDL 0x0080 +#define REG_WOL_EVENT 0x0081 +#define REG_MCUTSTCFG 0x0084 + + +#define REG_HIMR 0x00B0 +#define REG_HISR 0x00B4 +#define REG_HIMRE 0x00B8 +#define REG_HISRE 0x00BC + +#define REG_EFUSE_ACCESS 0x00CF + +#define REG_BIST_SCAN 0x00D0 +#define REG_BIST_RPT 0x00D4 +#define REG_BIST_ROM_RPT 0x00D8 +#define REG_USB_SIE_INTF 0x00E0 +#define REG_PCIE_MIO_INTF 0x00E4 +#define REG_PCIE_MIO_INTD 0x00E8 +#define REG_HPON_FSM 0x00EC +#define REG_SYS_CFG 0x00F0 +#define REG_GPIO_OUTSTS 0x00F4 +#define REG_SYS_CFG1 0x00F0 +#define REG_ROM_VERSION 0x00FD + +#define REG_CR 0x0100 +#define REG_PBP 0x0104 +#define REG_PKT_BUFF_ACCESS_CTRL 0x0106 +#define REG_TRXDMA_CTRL 0x010C +#define REG_TRXFF_BNDY 0x0114 +#define REG_TRXFF_STATUS 0x0118 +#define REG_RXFF_PTR 0x011C + +#define REG_CPWM 0x012F +#define REG_FWIMR 0x0130 +#define REG_FWISR 0x0134 +#define REG_PKTBUF_DBG_CTRL 0x0140 +#define REG_PKTBUF_DBG_DATA_L 0x0144 +#define REG_PKTBUF_DBG_DATA_H 0x0148 +#define REG_RXPKTBUF_CTRL (REG_PKTBUF_DBG_CTRL + 2) + +#define REG_TC0_CTRL 0x0150 +#define REG_TC1_CTRL 0x0154 +#define REG_TC2_CTRL 0x0158 +#define REG_TC3_CTRL 0x015C +#define REG_TC4_CTRL 0x0160 +#define REG_TCUNIT_BASE 0x0164 +#define REG_MBIST_START 0x0174 +#define REG_MBIST_DONE 0x0178 +#define REG_MBIST_FAIL 0x017C +#define REG_32K_CTRL 0x0194 +#define REG_C2HEVT_MSG_NORMAL 0x01A0 +#define REG_C2HEVT_CLEAR 0x01AF +#define REG_C2HEVT_MSG_TEST 0x01B8 +#define REG_MCUTST_1 0x01c0 +#define REG_FMETHR 0x01C8 +#define REG_HMETFR 0x01CC +#define REG_HMEBOX_0 0x01D0 +#define REG_HMEBOX_1 0x01D4 +#define REG_HMEBOX_2 0x01D8 +#define REG_HMEBOX_3 0x01DC + +#define REG_LLT_INIT 0x01E0 +#define REG_BB_ACCEESS_CTRL 0x01E8 +#define REG_BB_ACCESS_DATA 0x01EC + +#define REG_HMEBOX_EXT_0 0x01F0 +#define REG_HMEBOX_EXT_1 0x01F4 +#define REG_HMEBOX_EXT_2 0x01F8 +#define REG_HMEBOX_EXT_3 0x01FC + +#define REG_RQPN 0x0200 +#define REG_FIFOPAGE 0x0204 +#define REG_TDECTRL 0x0208 +#define REG_TXDMA_OFFSET_CHK 0x020C +#define REG_TXDMA_STATUS 0x0210 +#define REG_RQPN_NPQ 0x0214 + +#define REG_RXDMA_AGG_PG_TH 0x0280 +/* FW shall update this register before FW write RXPKT_RELEASE_POLL to 1 */ +#define REG_FW_UPD_RDPTR 0x0284 +/* Control the RX DMA.*/ +#define REG_RXDMA_CONTROL 0x0286 +/* The number of packets in RXPKTBUF. */ +#define REG_RXPKT_NUM 0x0287 + +#define REG_PCIE_CTRL_REG 0x0300 +#define REG_INT_MIG 0x0304 +#define REG_BCNQ_DESA 0x0308 +#define REG_HQ_DESA 0x0310 +#define REG_MGQ_DESA 0x0318 +#define REG_VOQ_DESA 0x0320 +#define REG_VIQ_DESA 0x0328 +#define REG_BEQ_DESA 0x0330 +#define REG_BKQ_DESA 0x0338 +#define REG_RX_DESA 0x0340 + +#define REG_DBI 0x0348 +#define REG_MDIO 0x0354 +#define REG_DBG_SEL 0x0360 +#define REG_PCIE_HRPWM 0x0361 +#define REG_PCIE_HCPWM 0x0363 +#define REG_UART_CTRL 0x0364 +#define REG_WATCH_DOG 0x0368 +#define REG_UART_TX_DESA 0x0370 +#define REG_UART_RX_DESA 0x0378 + + +#define REG_HDAQ_DESA_NODEF 0x0000 +#define REG_CMDQ_DESA_NODEF 0x0000 + +#define REG_VOQ_INFORMATION 0x0400 +#define REG_VIQ_INFORMATION 0x0404 +#define REG_BEQ_INFORMATION 0x0408 +#define REG_BKQ_INFORMATION 0x040C +#define REG_MGQ_INFORMATION 0x0410 +#define REG_HGQ_INFORMATION 0x0414 +#define REG_BCNQ_INFORMATION 0x0418 +#define REG_TXPKT_EMPTY 0x041A + + +#define REG_CPU_MGQ_INFORMATION 0x041C +#define REG_FWHW_TXQ_CTRL 0x0420 +#define REG_HWSEQ_CTRL 0x0423 +#define REG_TXPKTBUF_BCNQ_BDNY 0x0424 +#define REG_TXPKTBUF_MGQ_BDNY 0x0425 +#define REG_MULTI_BCNQ_EN 0x0426 +#define REG_MULTI_BCNQ_OFFSET 0x0427 +#define REG_SPEC_SIFS 0x0428 +#define REG_RL 0x042A +#define REG_DARFRC 0x0430 +#define REG_RARFRC 0x0438 +#define REG_RRSR 0x0440 +#define REG_ARFR0 0x0444 +#define REG_ARFR1 0x0448 +#define REG_ARFR2 0x044C +#define REG_ARFR3 0x0450 +#define REG_AMPDU_MAX_TIME 0x0456 +#define REG_AGGLEN_LMT 0x0458 +#define REG_AMPDU_MIN_SPACE 0x045C +#define REG_TXPKTBUF_WMAC_LBK_BF_HD 0x045D +#define REG_FAST_EDCA_CTRL 0x0460 +#define REG_RD_RESP_PKT_TH 0x0463 +#define REG_INIRTS_RATE_SEL 0x0480 +#define REG_INIDATA_RATE_SEL 0x0484 +#define REG_POWER_STATUS 0x04A4 +#define REG_POWER_STAGE1 0x04B4 +#define REG_POWER_STAGE2 0x04B8 +#define REG_PKT_LIFE_TIME 0x04C0 +#define REG_STBC_SETTING 0x04C4 +#define REG_PROT_MODE_CTRL 0x04C8 +#define REG_BAR_MODE_CTRL 0x04CC +#define REG_RA_TRY_RATE_AGG_LMT 0x04CF +#define REG_EARLY_MODE_CONTROL 0x04D0 +#define REG_NQOS_SEQ 0x04DC +#define REG_QOS_SEQ 0x04DE +#define REG_NEED_CPU_HANDLE 0x04E0 +#define REG_PKT_LOSE_RPT 0x04E1 +#define REG_PTCL_ERR_STATUS 0x04E2 +#define REG_TX_RPT_CTRL 0x04EC +#define REG_TX_RPT_TIME 0x04F0 +#define REG_DUMMY 0x04FC + +#define REG_EDCA_VO_PARAM 0x0500 +#define REG_EDCA_VI_PARAM 0x0504 +#define REG_EDCA_BE_PARAM 0x0508 +#define REG_EDCA_BK_PARAM 0x050C +#define REG_BCNTCFG 0x0510 +#define REG_PIFS 0x0512 +#define REG_RDG_PIFS 0x0513 +#define REG_SIFS_CTX 0x0514 +#define REG_SIFS_TRX 0x0516 +#define REG_AGGR_BREAK_TIME 0x051A +#define REG_SLOT 0x051B +#define REG_TX_PTCL_CTRL 0x0520 +#define REG_TXPAUSE 0x0522 +#define REG_DIS_TXREQ_CLR 0x0523 +#define REG_RD_CTRL 0x0524 +#define REG_TBTT_PROHIBIT 0x0540 +#define REG_RD_NAV_NXT 0x0544 +#define REG_NAV_PROT_LEN 0x0546 +#define REG_BCN_CTRL 0x0550 +#define REG_USTIME_TSF 0x0551 +#define REG_MBID_NUM 0x0552 +#define REG_DUAL_TSF_RST 0x0553 +#define REG_BCN_INTERVAL 0x0554 +#define REG_MBSSID_BCN_SPACE 0x0554 +#define REG_DRVERLYINT 0x0558 +#define REG_BCNDMATIM 0x0559 +#define REG_ATIMWND 0x055A +#define REG_BCN_MAX_ERR 0x055D +#define REG_RXTSF_OFFSET_CCK 0x055E +#define REG_RXTSF_OFFSET_OFDM 0x055F +#define REG_TSFTR 0x0560 +#define REG_INIT_TSFTR 0x0564 +#define REG_SECONDARY_CCA_CTRL 0x0577 +#define REG_PSTIMER 0x0580 +#define REG_TIMER0 0x0584 +#define REG_TIMER1 0x0588 +#define REG_ACMHWCTRL 0x05C0 +#define REG_ACMRSTCTRL 0x05C1 +#define REG_ACMAVG 0x05C2 +#define REG_VO_ADMTIME 0x05C4 +#define REG_VI_ADMTIME 0x05C6 +#define REG_BE_ADMTIME 0x05C8 +#define REG_EDCA_RANDOM_GEN 0x05CC +#define REG_SCH_TXCMD 0x05D0 + +#define REG_APSD_CTRL 0x0600 +#define REG_BWOPMODE 0x0603 +#define REG_TCR 0x0604 +#define REG_RCR 0x0608 +#define REG_RX_PKT_LIMIT 0x060C +#define REG_RX_DLK_TIME 0x060D +#define REG_RX_DRVINFO_SZ 0x060F + +#define REG_MACID 0x0610 +#define REG_BSSID 0x0618 +#define REG_MAR 0x0620 +#define REG_MBIDCAMCFG 0x0628 + +#define REG_USTIME_EDCA 0x0638 +#define REG_MAC_SPEC_SIFS 0x063A +#define REG_RESP_SIFS_CCK 0x063C +#define REG_RESP_SIFS_OFDM 0x063E +#define REG_ACKTO 0x0640 +#define REG_CTS2TO 0x0641 +#define REG_EIFS 0x0642 + +#define REG_NAV_CTRL 0x0650 +#define REG_BACAMCMD 0x0654 +#define REG_BACAMCONTENT 0x0658 +#define REG_LBDLY 0x0660 +#define REG_FWDLY 0x0661 +#define REG_RXERR_RPT 0x0664 +#define REG_TRXPTCL_CTL 0x0668 + +#define REG_CAMCMD 0x0670 +#define REG_CAMWRITE 0x0674 +#define REG_CAMREAD 0x0678 +#define REG_CAMDBG 0x067C +#define REG_SECCFG 0x0680 + +#define REG_WOW_CTRL 0x0690 +#define REG_PSSTATUS 0x0691 +#define REG_PS_RX_INFO 0x0692 +#define REG_UAPSD_TID 0x0693 +#define REG_LPNAV_CTRL 0x0694 +#define REG_WKFMCAM_NUM 0x0698 +#define REG_WKFMCAM_RWD 0x069C +#define REG_RXFLTMAP0 0x06A0 +#define REG_RXFLTMAP1 0x06A2 +#define REG_RXFLTMAP2 0x06A4 +#define REG_BCN_PSR_RPT 0x06A8 +#define REG_CALB32K_CTRL 0x06AC +#define REG_PKT_MON_CTRL 0x06B4 +#define REG_BT_COEX_TABLE 0x06C0 +#define REG_WMAC_RESP_TXINFO 0x06D8 + +#define REG_USB_INFO 0xFE17 +#define REG_USB_SPECIAL_OPTION 0xFE55 +#define REG_USB_DMA_AGG_TO 0xFE5B +#define REG_USB_AGG_TO 0xFE5C +#define REG_USB_AGG_TH 0xFE5D + +#define REG_TEST_USB_TXQS 0xFE48 +#define REG_TEST_SIE_VID 0xFE60 +#define REG_TEST_SIE_PID 0xFE62 +#define REG_TEST_SIE_OPTIONAL 0xFE64 +#define REG_TEST_SIE_CHIRP_K 0xFE65 +#define REG_TEST_SIE_PHY 0xFE66 +#define REG_TEST_SIE_MAC_ADDR 0xFE70 +#define REG_TEST_SIE_STRING 0xFE80 + +#define REG_NORMAL_SIE_VID 0xFE60 +#define REG_NORMAL_SIE_PID 0xFE62 +#define REG_NORMAL_SIE_OPTIONAL 0xFE64 +#define REG_NORMAL_SIE_EP 0xFE65 +#define REG_NORMAL_SIE_PHY 0xFE68 +#define REG_NORMAL_SIE_MAC_ADDR 0xFE70 +#define REG_NORMAL_SIE_STRING 0xFE80 + +#define CR9346 REG_9346CR +#define MSR (REG_CR + 2) +#define ISR REG_HISR +#define TSFR REG_TSFTR + +#define MACIDR0 REG_MACID +#define MACIDR4 (REG_MACID + 4) + +#define PBP REG_PBP + +#define IDR0 MACIDR0 +#define IDR4 MACIDR4 + +#define UNUSED_REGISTER 0x1BF +#define DCAM UNUSED_REGISTER +#define PSR UNUSED_REGISTER +#define BBADDR UNUSED_REGISTER +#define PHYDATAR UNUSED_REGISTER + +#define INVALID_BBRF_VALUE 0x12345678 + +#define MAX_MSS_DENSITY_2T 0x13 +#define MAX_MSS_DENSITY_1T 0x0A + +#define CMDEEPROM_EN BIT(5) +#define CMDEEPROM_SEL BIT(4) +#define CMD9346CR_9356SEL BIT(4) +#define AUTOLOAD_EEPROM (CMDEEPROM_EN | CMDEEPROM_SEL) +#define AUTOLOAD_EFUSE CMDEEPROM_EN + +#define GPIOSEL_GPIO 0 +#define GPIOSEL_ENBT BIT(5) + +#define GPIO_IN REG_GPIO_PIN_CTRL +#define GPIO_OUT (REG_GPIO_PIN_CTRL + 1) +#define GPIO_IO_SEL (REG_GPIO_PIN_CTRL + 2) +#define GPIO_MOD (REG_GPIO_PIN_CTRL + 3) + +/* 8723/8188E Host System Interrupt Mask Register (offset 0x58, 32 byte) */ +#define HSIMR_GPIO12_0_INT_EN BIT(0) +#define HSIMR_SPS_OCP_INT_EN BIT(5) +#define HSIMR_RON_INT_EN BIT(6) +#define HSIMR_PDN_INT_EN BIT(7) +#define HSIMR_GPIO9_INT_EN BIT(25) + +/* 8723/8188E Host System Interrupt Status Register (offset 0x5C, 32 byte) */ + +#define HSISR_GPIO12_0_INT BIT(0) +#define HSISR_SPS_OCP_INT BIT(5) +#define HSISR_RON_INT_EN BIT(6) +#define HSISR_PDNINT BIT(7) +#define HSISR_GPIO9_INT BIT(25) + +#define MSR_NOLINK 0x00 +#define MSR_ADHOC 0x01 +#define MSR_INFRA 0x02 +#define MSR_AP 0x03 + +#define RRSR_RSC_OFFSET 21 +#define RRSR_SHORT_OFFSET 23 +#define RRSR_RSC_BW_40M 0x600000 +#define RRSR_RSC_UPSUBCHNL 0x400000 +#define RRSR_RSC_LOWSUBCHNL 0x200000 +#define RRSR_SHORT 0x800000 +#define RRSR_1M BIT(0) +#define RRSR_2M BIT(1) +#define RRSR_5_5M BIT(2) +#define RRSR_11M BIT(3) +#define RRSR_6M BIT(4) +#define RRSR_9M BIT(5) +#define RRSR_12M BIT(6) +#define RRSR_18M BIT(7) +#define RRSR_24M BIT(8) +#define RRSR_36M BIT(9) +#define RRSR_48M BIT(10) +#define RRSR_54M BIT(11) +#define RRSR_MCS0 BIT(12) +#define RRSR_MCS1 BIT(13) +#define RRSR_MCS2 BIT(14) +#define RRSR_MCS3 BIT(15) +#define RRSR_MCS4 BIT(16) +#define RRSR_MCS5 BIT(17) +#define RRSR_MCS6 BIT(18) +#define RRSR_MCS7 BIT(19) +#define BRSR_ACKSHORTPMB BIT(23) + +#define RATR_1M 0x00000001 +#define RATR_2M 0x00000002 +#define RATR_55M 0x00000004 +#define RATR_11M 0x00000008 +#define RATR_6M 0x00000010 +#define RATR_9M 0x00000020 +#define RATR_12M 0x00000040 +#define RATR_18M 0x00000080 +#define RATR_24M 0x00000100 +#define RATR_36M 0x00000200 +#define RATR_48M 0x00000400 +#define RATR_54M 0x00000800 +#define RATR_MCS0 0x00001000 +#define RATR_MCS1 0x00002000 +#define RATR_MCS2 0x00004000 +#define RATR_MCS3 0x00008000 +#define RATR_MCS4 0x00010000 +#define RATR_MCS5 0x00020000 +#define RATR_MCS6 0x00040000 +#define RATR_MCS7 0x00080000 +#define RATR_MCS8 0x00100000 +#define RATR_MCS9 0x00200000 +#define RATR_MCS10 0x00400000 +#define RATR_MCS11 0x00800000 +#define RATR_MCS12 0x01000000 +#define RATR_MCS13 0x02000000 +#define RATR_MCS14 0x04000000 +#define RATR_MCS15 0x08000000 + +#define RATE_1M BIT(0) +#define RATE_2M BIT(1) +#define RATE_5_5M BIT(2) +#define RATE_11M BIT(3) +#define RATE_6M BIT(4) +#define RATE_9M BIT(5) +#define RATE_12M BIT(6) +#define RATE_18M BIT(7) +#define RATE_24M BIT(8) +#define RATE_36M BIT(9) +#define RATE_48M BIT(10) +#define RATE_54M BIT(11) +#define RATE_MCS0 BIT(12) +#define RATE_MCS1 BIT(13) +#define RATE_MCS2 BIT(14) +#define RATE_MCS3 BIT(15) +#define RATE_MCS4 BIT(16) +#define RATE_MCS5 BIT(17) +#define RATE_MCS6 BIT(18) +#define RATE_MCS7 BIT(19) +#define RATE_MCS8 BIT(20) +#define RATE_MCS9 BIT(21) +#define RATE_MCS10 BIT(22) +#define RATE_MCS11 BIT(23) +#define RATE_MCS12 BIT(24) +#define RATE_MCS13 BIT(25) +#define RATE_MCS14 BIT(26) +#define RATE_MCS15 BIT(27) + +#define RATE_ALL_CCK (RATR_1M | RATR_2M | RATR_55M | RATR_11M) +#define RATE_ALL_OFDM_AG (RATR_6M | RATR_9M | RATR_12M | RATR_18M |\ + RATR_24M | RATR_36M | RATR_48M | RATR_54M) +#define RATE_ALL_OFDM_1SS (RATR_MCS0 | RATR_MCS1 | RATR_MCS2 |\ + RATR_MCS3 | RATR_MCS4 | RATR_MCS5 |\ + RATR_MCS6 | RATR_MCS7) +#define RATE_ALL_OFDM_2SS (RATR_MCS8 | RATR_MCS9 | RATR_MCS10 |\ + RATR_MCS11 | RATR_MCS12 | RATR_MCS13 |\ + RATR_MCS14 | RATR_MCS15) + +#define BW_OPMODE_20MHZ BIT(2) +#define BW_OPMODE_5G BIT(1) +#define BW_OPMODE_11J BIT(0) + +#define CAM_VALID BIT(15) +#define CAM_NOTVALID 0x0000 +#define CAM_USEDK BIT(5) + +#define CAM_NONE 0x0 +#define CAM_WEP40 0x01 +#define CAM_TKIP 0x02 +#define CAM_AES 0x04 +#define CAM_WEP104 0x05 + +#define TOTAL_CAM_ENTRY 32 +#define HALF_CAM_ENTRY 16 + +#define CAM_WRITE BIT(16) +#define CAM_READ 0x00000000 +#define CAM_POLLINIG BIT(31) + +#define SCR_USEDK 0x01 +#define SCR_TXSEC_ENABLE 0x02 +#define SCR_RXSEC_ENABLE 0x04 + +#define WOW_PMEN BIT(0) +#define WOW_WOMEN BIT(1) +#define WOW_MAGIC BIT(2) +#define WOW_UWF BIT(3) + +/********************************************* +* 8723BE IMR/ISR bits +**********************************************/ +#define IMR_DISABLED 0x0 +/* IMR DW0(0x0060-0063) Bit 0-31 */ +#define IMR_TXCCK BIT(30) /* TXRPT interrupt when + * CCX bit of the packet is set + */ +#define IMR_PSTIMEOUT BIT(29) /* Power Save Time Out Interrupt */ +#define IMR_GTINT4 BIT(28) /* When GTIMER4 expires, + * this bit is set to 1 + */ +#define IMR_GTINT3 BIT(27) /* When GTIMER3 expires, + * this bit is set to 1 + */ +#define IMR_TBDER BIT(26) /* Transmit Beacon0 Error */ +#define IMR_TBDOK BIT(25) /* Transmit Beacon0 OK */ +#define IMR_TSF_BIT32_TOGGLE BIT(24) /* TSF Timer BIT32 toggle + * indication interrupt + */ +#define IMR_BCNDMAINT0 BIT(20) /* Beacon DMA Interrupt 0 */ +#define IMR_BCNDOK0 BIT(16) /* Beacon Queue DMA OK0 */ +#define IMR_HSISR_IND_ON_INT BIT(15) /* HSISR Indicator (HSIMR & HSISR is + * true, this bit is set to 1) + */ +#define IMR_BCNDMAINT_E BIT(14) /* Beacon DMA Interrupt + * Extension for Win7 + */ +#define IMR_ATIMEND BIT(12) /* CTWidnow End or ATIM Window End */ +#define IMR_HISR1_IND_INT BIT(11) /* HISR1 Indicator (HISR1 & HIMR1 is + * true, this bit is set to 1) + */ +#define IMR_C2HCMD BIT(10) /* CPU to Host Command INT Status, + * Write 1 clear + */ +#define IMR_CPWM2 BIT(9) /* CPU power Mode exchange INT Status, + * Write 1 clear + */ +#define IMR_CPWM BIT(8) /* CPU power Mode exchange INT Status, + * Write 1 clear + */ +#define IMR_HIGHDOK BIT(7) /* High Queue DMA OK */ +#define IMR_MGNTDOK BIT(6) /* Management Queue DMA OK */ +#define IMR_BKDOK BIT(5) /* AC_BK DMA OK */ +#define IMR_BEDOK BIT(4) /* AC_BE DMA OK */ +#define IMR_VIDOK BIT(3) /* AC_VI DMA OK */ +#define IMR_VODOK BIT(2) /* AC_VO DMA OK */ +#define IMR_RDU BIT(1) /* Rx Descriptor Unavailable */ +#define IMR_ROK BIT(0) /* Receive DMA OK */ + +/* IMR DW1(0x00B4-00B7) Bit 0-31 */ +#define IMR_BCNDMAINT7 BIT(27) /* Beacon DMA Interrupt 7 */ +#define IMR_BCNDMAINT6 BIT(26) /* Beacon DMA Interrupt 6 */ +#define IMR_BCNDMAINT5 BIT(25) /* Beacon DMA Interrupt 5 */ +#define IMR_BCNDMAINT4 BIT(24) /* Beacon DMA Interrupt 4 */ +#define IMR_BCNDMAINT3 BIT(23) /* Beacon DMA Interrupt 3 */ +#define IMR_BCNDMAINT2 BIT(22) /* Beacon DMA Interrupt 2 */ +#define IMR_BCNDMAINT1 BIT(21) /* Beacon DMA Interrupt 1 */ +#define IMR_BCNDOK7 BIT(20) /* Beacon Queue DMA OK Interrup 7 */ +#define IMR_BCNDOK6 BIT(19) /* Beacon Queue DMA OK Interrup 6 */ +#define IMR_BCNDOK5 BIT(18) /* Beacon Queue DMA OK Interrup 5 */ +#define IMR_BCNDOK4 BIT(17) /* Beacon Queue DMA OK Interrup 4 */ +#define IMR_BCNDOK3 BIT(16) /* Beacon Queue DMA OK Interrup 3 */ +#define IMR_BCNDOK2 BIT(15) /* Beacon Queue DMA OK Interrup 2 */ +#define IMR_BCNDOK1 BIT(14) /* Beacon Queue DMA OK Interrup 1 */ +#define IMR_ATIMEND_E BIT(13) /* ATIM Window End Extension for Win7 */ +#define IMR_TXERR BIT(11) /* Tx Error Flag Interrupt Status, + * write 1 clear. + */ +#define IMR_RXERR BIT(10) /* Rx Error Flag INT Status, + * Write 1 clear + */ +#define IMR_TXFOVW BIT(9) /* Transmit FIFO Overflow */ +#define IMR_RXFOVW BIT(8) /* Receive FIFO Overflow */ + +#define HWSET_MAX_SIZE 512 +#define EFUSE_MAX_SECTION 64 +#define EFUSE_REAL_CONTENT_LEN 256 +#define EFUSE_OOB_PROTECT_BYTES 18 /* PG data exclude header, + * dummy 7 bytes frome CP test + * and reserved 1byte. + */ + +#define EEPROM_DEFAULT_TSSI 0x0 +#define EEPROM_DEFAULT_TXPOWERDIFF 0x0 +#define EEPROM_DEFAULT_CRYSTALCAP 0x5 +#define EEPROM_DEFAULT_BOARDTYPE 0x02 +#define EEPROM_DEFAULT_TXPOWER 0x1010 +#define EEPROM_DEFAULT_HT2T_TXPWR 0x10 + +#define EEPROM_DEFAULT_LEGACYHTTXPOWERDIFF 0x3 +#define EEPROM_DEFAULT_THERMALMETER 0x18 +#define EEPROM_DEFAULT_ANTTXPOWERDIFF 0x0 +#define EEPROM_DEFAULT_TXPWDIFF_CRYSTALCAP 0x5 +#define EEPROM_DEFAULT_TXPOWERLEVEL 0x22 +#define EEPROM_DEFAULT_HT40_2SDIFF 0x0 +#define EEPROM_DEFAULT_HT20_DIFF 2 +#define EEPROM_DEFAULT_LEGACYHTTXPOWERDIFF 0x3 +#define EEPROM_DEFAULT_HT40_PWRMAXOFFSET 0 +#define EEPROM_DEFAULT_HT20_PWRMAXOFFSET 0 + +#define RF_OPTION1 0x79 +#define RF_OPTION2 0x7A +#define RF_OPTION3 0x7B +#define RF_OPTION4 0xC3 + +#define EEPROM_DEFAULT_PID 0x1234 +#define EEPROM_DEFAULT_VID 0x5678 +#define EEPROM_DEFAULT_CUSTOMERID 0xAB +#define EEPROM_DEFAULT_SUBCUSTOMERID 0xCD +#define EEPROM_DEFAULT_VERSION 0 + +#define EEPROM_CHANNEL_PLAN_FCC 0x0 +#define EEPROM_CHANNEL_PLAN_IC 0x1 +#define EEPROM_CHANNEL_PLAN_ETSI 0x2 +#define EEPROM_CHANNEL_PLAN_SPAIN 0x3 +#define EEPROM_CHANNEL_PLAN_FRANCE 0x4 +#define EEPROM_CHANNEL_PLAN_MKK 0x5 +#define EEPROM_CHANNEL_PLAN_MKK1 0x6 +#define EEPROM_CHANNEL_PLAN_ISRAEL 0x7 +#define EEPROM_CHANNEL_PLAN_TELEC 0x8 +#define EEPROM_CHANNEL_PLAN_GLOBAL_DOMAIN 0x9 +#define EEPROM_CHANNEL_PLAN_WORLD_WIDE_13 0xA +#define EEPROM_CHANNEL_PLAN_NCC 0xB +#define EEPROM_CHANNEL_PLAN_BY_HW_MASK 0x80 + +#define EEPROM_CID_DEFAULT 0x0 +#define EEPROM_CID_TOSHIBA 0x4 +#define EEPROM_CID_CCX 0x10 +#define EEPROM_CID_QMI 0x0D +#define EEPROM_CID_WHQL 0xFE + +#define RTL8723BE_EEPROM_ID 0x8129 + +#define EEPROM_HPON 0x02 +#define EEPROM_CLK 0x06 +#define EEPROM_TESTR 0x08 + + +#define EEPROM_TXPOWERCCK 0x10 +#define EEPROM_TXPOWERHT40_1S 0x16 +#define EEPROM_TXPOWERHT20DIFF 0x1B +#define EEPROM_TXPOWER_OFDMDIFF 0x1B + + + +#define EEPROM_TX_PWR_INX 0x10 + +#define EEPROM_CHANNELPLAN 0xB8 +#define EEPROM_XTAL_8723BE 0xB9 +#define EEPROM_THERMAL_METER_88E 0xBA +#define EEPROM_IQK_LCK_88E 0xBB + +#define EEPROM_RF_BOARD_OPTION_88E 0xC1 +#define EEPROM_RF_FEATURE_OPTION_88E 0xC2 +#define EEPROM_RF_BT_SETTING_88E 0xC3 +#define EEPROM_VERSION 0xC4 +#define EEPROM_CUSTOMER_ID 0xC5 +#define EEPROM_RF_ANTENNA_OPT_88E 0xC9 + +#define EEPROM_MAC_ADDR 0xD0 +#define EEPROM_VID 0xD6 +#define EEPROM_DID 0xD8 +#define EEPROM_SVID 0xDA +#define EEPROM_SMID 0xDC + +#define STOPBECON BIT(6) +#define STOPHIGHT BIT(5) +#define STOPMGT BIT(4) +#define STOPVO BIT(3) +#define STOPVI BIT(2) +#define STOPBE BIT(1) +#define STOPBK BIT(0) + +#define RCR_APPFCS BIT(31) +#define RCR_APP_MIC BIT(30) +#define RCR_APP_ICV BIT(29) +#define RCR_APP_PHYST_RXFF BIT(28) +#define RCR_APP_BA_SSN BIT(27) +#define RCR_ENMBID BIT(24) +#define RCR_LSIGEN BIT(23) +#define RCR_MFBEN BIT(22) +#define RCR_HTC_LOC_CTRL BIT(14) +#define RCR_AMF BIT(13) +#define RCR_ACF BIT(12) +#define RCR_ADF BIT(11) +#define RCR_AICV BIT(9) +#define RCR_ACRC32 BIT(8) +#define RCR_CBSSID_BCN BIT(7) +#define RCR_CBSSID_DATA BIT(6) +#define RCR_CBSSID RCR_CBSSID_DATA +#define RCR_APWRMGT BIT(5) +#define RCR_ADD3 BIT(4) +#define RCR_AB BIT(3) +#define RCR_AM BIT(2) +#define RCR_APM BIT(1) +#define RCR_AAP BIT(0) +#define RCR_MXDMA_OFFSET 8 +#define RCR_FIFO_OFFSET 13 + +#define RSV_CTRL 0x001C +#define RD_CTRL 0x0524 + +#define REG_USB_INFO 0xFE17 +#define REG_USB_SPECIAL_OPTION 0xFE55 +#define REG_USB_DMA_AGG_TO 0xFE5B +#define REG_USB_AGG_TO 0xFE5C +#define REG_USB_AGG_TH 0xFE5D + +#define REG_USB_VID 0xFE60 +#define REG_USB_PID 0xFE62 +#define REG_USB_OPTIONAL 0xFE64 +#define REG_USB_CHIRP_K 0xFE65 +#define REG_USB_PHY 0xFE66 +#define REG_USB_MAC_ADDR 0xFE70 +#define REG_USB_HRPWM 0xFE58 +#define REG_USB_HCPWM 0xFE57 + +#define SW18_FPWM BIT(3) + +#define ISO_MD2PP BIT(0) +#define ISO_UA2USB BIT(1) +#define ISO_UD2CORE BIT(2) +#define ISO_PA2PCIE BIT(3) +#define ISO_PD2CORE BIT(4) +#define ISO_IP2MAC BIT(5) +#define ISO_DIOP BIT(6) +#define ISO_DIOE BIT(7) +#define ISO_EB2CORE BIT(8) +#define ISO_DIOR BIT(9) + +#define PWC_EV25V BIT(14) +#define PWC_EV12V BIT(15) + +#define FEN_BBRSTB BIT(0) +#define FEN_BB_GLB_RSTN BIT(1) +#define FEN_USBA BIT(2) +#define FEN_UPLL BIT(3) +#define FEN_USBD BIT(4) +#define FEN_DIO_PCIE BIT(5) +#define FEN_PCIEA BIT(6) +#define FEN_PPLL BIT(7) +#define FEN_PCIED BIT(8) +#define FEN_DIOE BIT(9) +#define FEN_CPUEN BIT(10) +#define FEN_DCORE BIT(11) +#define FEN_ELDR BIT(12) +#define FEN_DIO_RF BIT(13) +#define FEN_HWPDN BIT(14) +#define FEN_MREGEN BIT(15) + +#define PFM_LDALL BIT(0) +#define PFM_ALDN BIT(1) +#define PFM_LDKP BIT(2) +#define PFM_WOWL BIT(3) +#define ENPDN BIT(4) +#define PDN_PL BIT(5) +#define APFM_ONMAC BIT(8) +#define APFM_OFF BIT(9) +#define APFM_RSM BIT(10) +#define AFSM_HSUS BIT(11) +#define AFSM_PCIE BIT(12) +#define APDM_MAC BIT(13) +#define APDM_HOST BIT(14) +#define APDM_HPDN BIT(15) +#define RDY_MACON BIT(16) +#define SUS_HOST BIT(17) +#define ROP_ALD BIT(20) +#define ROP_PWR BIT(21) +#define ROP_SPS BIT(22) +#define SOP_MRST BIT(25) +#define SOP_FUSE BIT(26) +#define SOP_ABG BIT(27) +#define SOP_AMB BIT(28) +#define SOP_RCK BIT(29) +#define SOP_A8M BIT(30) +#define XOP_BTCK BIT(31) + +#define ANAD16V_EN BIT(0) +#define ANA8M BIT(1) +#define MACSLP BIT(4) +#define LOADER_CLK_EN BIT(5) +#define _80M_SSC_DIS BIT(7) +#define _80M_SSC_EN_HO BIT(8) +#define PHY_SSC_RSTB BIT(9) +#define SEC_CLK_EN BIT(10) +#define MAC_CLK_EN BIT(11) +#define SYS_CLK_EN BIT(12) +#define RING_CLK_EN BIT(13) + +#define BOOT_FROM_EEPROM BIT(4) +#define EEPROM_EN BIT(5) + +#define AFE_BGEN BIT(0) +#define AFE_MBEN BIT(1) +#define MAC_ID_EN BIT(7) + +#define WLOCK_ALL BIT(0) +#define WLOCK_00 BIT(1) +#define WLOCK_04 BIT(2) +#define WLOCK_08 BIT(3) +#define WLOCK_40 BIT(4) +#define R_DIS_PRST_0 BIT(5) +#define R_DIS_PRST_1 BIT(6) +#define LOCK_ALL_EN BIT(7) + +#define RF_EN BIT(0) +#define RF_RSTB BIT(1) +#define RF_SDMRSTB BIT(2) + +#define LDA15_EN BIT(0) +#define LDA15_STBY BIT(1) +#define LDA15_OBUF BIT(2) +#define LDA15_REG_VOS BIT(3) +#define _LDA15_VOADJ(x) (((x) & 0x7) << 4) + +#define LDV12_EN BIT(0) +#define LDV12_SDBY BIT(1) +#define LPLDO_HSM BIT(2) +#define LPLDO_LSM_DIS BIT(3) +#define _LDV12_VADJ(x) (((x) & 0xF) << 4) + +#define XTAL_EN BIT(0) +#define XTAL_BSEL BIT(1) +#define _XTAL_BOSC(x) (((x) & 0x3) << 2) +#define _XTAL_CADJ(x) (((x) & 0xF) << 4) +#define XTAL_GATE_USB BIT(8) +#define _XTAL_USB_DRV(x) (((x) & 0x3) << 9) +#define XTAL_GATE_AFE BIT(11) +#define _XTAL_AFE_DRV(x) (((x) & 0x3) << 12) +#define XTAL_RF_GATE BIT(14) +#define _XTAL_RF_DRV(x) (((x) & 0x3) << 15) +#define XTAL_GATE_DIG BIT(17) +#define _XTAL_DIG_DRV(x) (((x) & 0x3) << 18) +#define XTAL_BT_GATE BIT(20) +#define _XTAL_BT_DRV(x) (((x) & 0x3) << 21) +#define _XTAL_GPIO(x) (((x) & 0x7) << 23) + +#define CKDLY_AFE BIT(26) +#define CKDLY_USB BIT(27) +#define CKDLY_DIG BIT(28) +#define CKDLY_BT BIT(29) + +#define APLL_EN BIT(0) +#define APLL_320_EN BIT(1) +#define APLL_FREF_SEL BIT(2) +#define APLL_EDGE_SEL BIT(3) +#define APLL_WDOGB BIT(4) +#define APLL_LPFEN BIT(5) + +#define APLL_REF_CLK_13MHZ 0x1 +#define APLL_REF_CLK_19_2MHZ 0x2 +#define APLL_REF_CLK_20MHZ 0x3 +#define APLL_REF_CLK_25MHZ 0x4 +#define APLL_REF_CLK_26MHZ 0x5 +#define APLL_REF_CLK_38_4MHZ 0x6 +#define APLL_REF_CLK_40MHZ 0x7 + +#define APLL_320EN BIT(14) +#define APLL_80EN BIT(15) +#define APLL_1MEN BIT(24) + +#define ALD_EN BIT(18) +#define EF_PD BIT(19) +#define EF_FLAG BIT(31) + +#define EF_TRPT BIT(7) +#define LDOE25_EN BIT(31) + +#define RSM_EN BIT(0) +#define TIMER_EN BIT(4) + +#define TRSW0EN BIT(2) +#define TRSW1EN BIT(3) +#define EROM_EN BIT(4) +#define ENBT BIT(5) +#define ENUART BIT(8) +#define UART_910 BIT(9) +#define ENPMAC BIT(10) +#define SIC_SWRST BIT(11) +#define ENSIC BIT(12) +#define SIC_23 BIT(13) +#define ENHDP BIT(14) +#define SIC_LBK BIT(15) + +#define LED0PL BIT(4) +#define LED1PL BIT(12) +#define LED0DIS BIT(7) + +#define MCUFWDL_EN BIT(0) +#define MCUFWDL_RDY BIT(1) +#define FWDL_CHKSUM_RPT BIT(2) +#define MACINI_RDY BIT(3) +#define BBINI_RDY BIT(4) +#define RFINI_RDY BIT(5) +#define WINTINI_RDY BIT(6) +#define CPRST BIT(23) + +#define XCLK_VLD BIT(0) +#define ACLK_VLD BIT(1) +#define UCLK_VLD BIT(2) +#define PCLK_VLD BIT(3) +#define PCIRSTB BIT(4) +#define V15_VLD BIT(5) +#define TRP_B15V_EN BIT(7) +#define SIC_IDLE BIT(8) +#define BD_MAC2 BIT(9) +#define BD_MAC1 BIT(10) +#define IC_MACPHY_MODE BIT(11) +#define VENDOR_ID BIT(19) +#define PAD_HWPD_IDN BIT(22) +#define TRP_VAUX_EN BIT(23) +#define TRP_BT_EN BIT(24) +#define BD_PKG_SEL BIT(25) +#define BD_HCI_SEL BIT(26) +#define TYPE_ID BIT(27) + +#define CHIP_VER_RTL_MASK 0xF000 +#define CHIP_VER_RTL_SHIFT 12 + +#define REG_LBMODE (REG_CR + 3) + +#define HCI_TXDMA_EN BIT(0) +#define HCI_RXDMA_EN BIT(1) +#define TXDMA_EN BIT(2) +#define RXDMA_EN BIT(3) +#define PROTOCOL_EN BIT(4) +#define SCHEDULE_EN BIT(5) +#define MACTXEN BIT(6) +#define MACRXEN BIT(7) +#define ENSWBCN BIT(8) +#define ENSEC BIT(9) + +#define _NETTYPE(x) (((x) & 0x3) << 16) +#define MASK_NETTYPE 0x30000 +#define NT_NO_LINK 0x0 +#define NT_LINK_AD_HOC 0x1 +#define NT_LINK_AP 0x2 +#define NT_AS_AP 0x3 + +#define _LBMODE(x) (((x) & 0xF) << 24) +#define MASK_LBMODE 0xF000000 +#define LOOPBACK_NORMAL 0x0 +#define LOOPBACK_IMMEDIATELY 0xB +#define LOOPBACK_MAC_DELAY 0x3 +#define LOOPBACK_PHY 0x1 +#define LOOPBACK_DMA 0x7 + +#define GET_RX_PAGE_SIZE(value) ((value) & 0xF) +#define GET_TX_PAGE_SIZE(value) (((value) & 0xF0) >> 4) +#define _PSRX_MASK 0xF +#define _PSTX_MASK 0xF0 +#define _PSRX(x) (x) +#define _PSTX(x) ((x) << 4) + +#define PBP_64 0x0 +#define PBP_128 0x1 +#define PBP_256 0x2 +#define PBP_512 0x3 +#define PBP_1024 0x4 + +#define RXDMA_ARBBW_EN BIT(0) +#define RXSHFT_EN BIT(1) +#define RXDMA_AGG_EN BIT(2) +#define QS_VO_QUEUE BIT(8) +#define QS_VI_QUEUE BIT(9) +#define QS_BE_QUEUE BIT(10) +#define QS_BK_QUEUE BIT(11) +#define QS_MANAGER_QUEUE BIT(12) +#define QS_HIGH_QUEUE BIT(13) + +#define HQSEL_VOQ BIT(0) +#define HQSEL_VIQ BIT(1) +#define HQSEL_BEQ BIT(2) +#define HQSEL_BKQ BIT(3) +#define HQSEL_MGTQ BIT(4) +#define HQSEL_HIQ BIT(5) + +#define _TXDMA_HIQ_MAP(x) (((x)&0x3) << 14) +#define _TXDMA_MGQ_MAP(x) (((x)&0x3) << 12) +#define _TXDMA_BKQ_MAP(x) (((x)&0x3) << 10) +#define _TXDMA_BEQ_MAP(x) (((x)&0x3) << 8) +#define _TXDMA_VIQ_MAP(x) (((x)&0x3) << 6) +#define _TXDMA_VOQ_MAP(x) (((x)&0x3) << 4) + +#define QUEUE_LOW 1 +#define QUEUE_NORMAL 2 +#define QUEUE_HIGH 3 + +#define _LLT_NO_ACTIVE 0x0 +#define _LLT_WRITE_ACCESS 0x1 +#define _LLT_READ_ACCESS 0x2 + +#define _LLT_INIT_DATA(x) ((x) & 0xFF) +#define _LLT_INIT_ADDR(x) (((x) & 0xFF) << 8) +#define _LLT_OP(x) (((x) & 0x3) << 30) +#define _LLT_OP_VALUE(x) (((x) >> 30) & 0x3) + +#define BB_WRITE_READ_MASK (BIT(31) | BIT(30)) +#define BB_WRITE_EN BIT(30) +#define BB_READ_EN BIT(31) + +#define _HPQ(x) ((x) & 0xFF) +#define _LPQ(x) (((x) & 0xFF) << 8) +#define _PUBQ(x) (((x) & 0xFF) << 16) +#define _NPQ(x) ((x) & 0xFF) + +#define HPQ_PUBLIC_DIS BIT(24) +#define LPQ_PUBLIC_DIS BIT(25) +#define LD_RQPN BIT(31) + +#define BCN_VALID BIT(16) +#define BCN_HEAD(x) (((x) & 0xFF) << 8) +#define BCN_HEAD_MASK 0xFF00 + +#define BLK_DESC_NUM_SHIFT 4 +#define BLK_DESC_NUM_MASK 0xF + +#define DROP_DATA_EN BIT(9) + +#define EN_AMPDU_RTY_NEW BIT(7) + +#define _INIRTSMCS_SEL(x) ((x) & 0x3F) + +#define _SPEC_SIFS_CCK(x) ((x) & 0xFF) +#define _SPEC_SIFS_OFDM(x) (((x) & 0xFF) << 8) + +#define RATE_REG_BITMAP_ALL 0xFFFFF + +#define _RRSC_BITMAP(x) ((x) & 0xFFFFF) + +#define _RRSR_RSC(x) (((x) & 0x3) << 21) +#define RRSR_RSC_RESERVED 0x0 +#define RRSR_RSC_UPPER_SUBCHANNEL 0x1 +#define RRSR_RSC_LOWER_SUBCHANNEL 0x2 +#define RRSR_RSC_DUPLICATE_MODE 0x3 + +#define USE_SHORT_G1 BIT(20) + +#define _AGGLMT_MCS0(x) ((x) & 0xF) +#define _AGGLMT_MCS1(x) (((x) & 0xF) << 4) +#define _AGGLMT_MCS2(x) (((x) & 0xF) << 8) +#define _AGGLMT_MCS3(x) (((x) & 0xF) << 12) +#define _AGGLMT_MCS4(x) (((x) & 0xF) << 16) +#define _AGGLMT_MCS5(x) (((x) & 0xF) << 20) +#define _AGGLMT_MCS6(x) (((x) & 0xF) << 24) +#define _AGGLMT_MCS7(x) (((x) & 0xF) << 28) + +#define RETRY_LIMIT_SHORT_SHIFT 8 +#define RETRY_LIMIT_LONG_SHIFT 0 + +#define _DARF_RC1(x) ((x) & 0x1F) +#define _DARF_RC2(x) (((x) & 0x1F) << 8) +#define _DARF_RC3(x) (((x) & 0x1F) << 16) +#define _DARF_RC4(x) (((x) & 0x1F) << 24) +#define _DARF_RC5(x) ((x) & 0x1F) +#define _DARF_RC6(x) (((x) & 0x1F) << 8) +#define _DARF_RC7(x) (((x) & 0x1F) << 16) +#define _DARF_RC8(x) (((x) & 0x1F) << 24) + +#define _RARF_RC1(x) ((x) & 0x1F) +#define _RARF_RC2(x) (((x) & 0x1F) << 8) +#define _RARF_RC3(x) (((x) & 0x1F) << 16) +#define _RARF_RC4(x) (((x) & 0x1F) << 24) +#define _RARF_RC5(x) ((x) & 0x1F) +#define _RARF_RC6(x) (((x) & 0x1F) << 8) +#define _RARF_RC7(x) (((x) & 0x1F) << 16) +#define _RARF_RC8(x) (((x) & 0x1F) << 24) + +#define AC_PARAM_TXOP_LIMIT_OFFSET 16 +#define AC_PARAM_ECW_MAX_OFFSET 12 +#define AC_PARAM_ECW_MIN_OFFSET 8 +#define AC_PARAM_AIFS_OFFSET 0 + +#define _AIFS(x) (x) +#define _ECW_MAX_MIN(x) ((x) << 8) +#define _TXOP_LIMIT(x) ((x) << 16) + +#define _BCNIFS(x) ((x) & 0xFF) +#define _BCNECW(x) ((((x) & 0xF)) << 8) + +#define _LRL(x) ((x) & 0x3F) +#define _SRL(x) (((x) & 0x3F) << 8) + +#define _SIFS_CCK_CTX(x) ((x) & 0xFF) +#define _SIFS_CCK_TRX(x) (((x) & 0xFF) << 8) + +#define _SIFS_OFDM_CTX(x) ((x) & 0xFF) +#define _SIFS_OFDM_TRX(x) (((x) & 0xFF) << 8) + +#define _TBTT_PROHIBIT_HOLD(x) (((x) & 0xFF) << 8) + +#define DIS_EDCA_CNT_DWN BIT(11) + +#define EN_MBSSID BIT(1) +#define EN_TXBCN_RPT BIT(2) +#define EN_BCN_FUNCTION BIT(3) + +#define TSFTR_RST BIT(0) +#define TSFTR1_RST BIT(1) + +#define STOP_BCNQ BIT(6) + +#define DIS_TSF_UDT0_NORMAL_CHIP BIT(4) +#define DIS_TSF_UDT0_TEST_CHIP BIT(5) + +#define ACMHW_HWEN BIT(0) +#define ACMHW_BEQEN BIT(1) +#define ACMHW_VIQEN BIT(2) +#define ACMHW_VOQEN BIT(3) +#define ACMHW_BEQSTATUS BIT(4) +#define ACMHW_VIQSTATUS BIT(5) +#define ACMHW_VOQSTATUS BIT(6) + +#define APSDOFF BIT(6) +#define APSDOFF_STATUS BIT(7) + +#define BW_20MHZ BIT(2) + +#define RATE_BITMAP_ALL 0xFFFFF + +#define RATE_RRSR_CCK_ONLY_1M 0xFFFF1 + +#define TSFRST BIT(0) +#define DIS_GCLK BIT(1) +#define PAD_SEL BIT(2) +#define PWR_ST BIT(6) +#define PWRBIT_OW_EN BIT(7) +#define ACRC BIT(8) +#define CFENDFORM BIT(9) +#define ICV BIT(10) + +#define AAP BIT(0) +#define APM BIT(1) +#define AM BIT(2) +#define AB BIT(3) +#define ADD3 BIT(4) +#define APWRMGT BIT(5) +#define CBSSID BIT(6) +#define CBSSID_DATA BIT(6) +#define CBSSID_BCN BIT(7) +#define ACRC32 BIT(8) +#define AICV BIT(9) +#define ADF BIT(11) +#define ACF BIT(12) +#define AMF BIT(13) +#define HTC_LOC_CTRL BIT(14) +#define UC_DATA_EN BIT(16) +#define BM_DATA_EN BIT(17) +#define MFBEN BIT(22) +#define LSIGEN BIT(23) +#define ENMBID BIT(24) +#define APP_BASSN BIT(27) +#define APP_PHYSTS BIT(28) +#define APP_ICV BIT(29) +#define APP_MIC BIT(30) +#define APP_FCS BIT(31) + +#define _MIN_SPACE(x) ((x) & 0x7) +#define _SHORT_GI_PADDING(x) (((x) & 0x1F) << 3) + +#define RXERR_TYPE_OFDM_PPDU 0 +#define RXERR_TYPE_OFDM_FALSE_ALARM 1 +#define RXERR_TYPE_OFDM_MPDU_OK 2 +#define RXERR_TYPE_OFDM_MPDU_FAIL 3 +#define RXERR_TYPE_CCK_PPDU 4 +#define RXERR_TYPE_CCK_FALSE_ALARM 5 +#define RXERR_TYPE_CCK_MPDU_OK 6 +#define RXERR_TYPE_CCK_MPDU_FAIL 7 +#define RXERR_TYPE_HT_PPDU 8 +#define RXERR_TYPE_HT_FALSE_ALARM 9 +#define RXERR_TYPE_HT_MPDU_TOTAL 10 +#define RXERR_TYPE_HT_MPDU_OK 11 +#define RXERR_TYPE_HT_MPDU_FAIL 12 +#define RXERR_TYPE_RX_FULL_DROP 15 + +#define RXERR_COUNTER_MASK 0xFFFFF +#define RXERR_RPT_RST BIT(27) +#define _RXERR_RPT_SEL(type) ((type) << 28) + +#define SCR_TXUSEDK BIT(0) +#define SCR_RXUSEDK BIT(1) +#define SCR_TXENCENABLE BIT(2) +#define SCR_RXDECENABLE BIT(3) +#define SCR_SKBYA2 BIT(4) +#define SCR_NOSKMC BIT(5) +#define SCR_TXBCUSEDK BIT(6) +#define SCR_RXBCUSEDK BIT(7) + +#define XCLK_VLD BIT(0) +#define ACLK_VLD BIT(1) +#define UCLK_VLD BIT(2) +#define PCLK_VLD BIT(3) +#define PCIRSTB BIT(4) +#define V15_VLD BIT(5) +#define TRP_B15V_EN BIT(7) +#define SIC_IDLE BIT(8) +#define BD_MAC2 BIT(9) +#define BD_MAC1 BIT(10) +#define IC_MACPHY_MODE BIT(11) +#define BT_FUNC BIT(16) +#define VENDOR_ID BIT(19) +#define PAD_HWPD_IDN BIT(22) +#define TRP_VAUX_EN BIT(23) +#define TRP_BT_EN BIT(24) +#define BD_PKG_SEL BIT(25) +#define BD_HCI_SEL BIT(26) +#define TYPE_ID BIT(27) + +#define USB_IS_HIGH_SPEED 0 +#define USB_IS_FULL_SPEED 1 +#define USB_SPEED_MASK BIT(5) + +#define USB_NORMAL_SIE_EP_MASK 0xF +#define USB_NORMAL_SIE_EP_SHIFT 4 + +#define USB_TEST_EP_MASK 0x30 +#define USB_TEST_EP_SHIFT 4 + +#define USB_AGG_EN BIT(3) + +#define MAC_ADDR_LEN 6 +#define LAST_ENTRY_OF_TX_PKT_BUFFER 175/*255 88e*/ + +#define POLLING_LLT_THRESHOLD 20 +#define POLLING_READY_TIMEOUT_COUNT 3000 + +#define MAX_MSS_DENSITY_2T 0x13 +#define MAX_MSS_DENSITY_1T 0x0A + +#define EPROM_CMD_OPERATING_MODE_MASK ((1<<7)|(1<<6)) +#define EPROM_CMD_CONFIG 0x3 +#define EPROM_CMD_LOAD 1 + +#define HWSET_MAX_SIZE_92S HWSET_MAX_SIZE + +#define HAL_8192C_HW_GPIO_WPS_BIT BIT(2) + +#define RPMAC_RESET 0x100 +#define RPMAC_TXSTART 0x104 +#define RPMAC_TXLEGACYSIG 0x108 +#define RPMAC_TXHTSIG1 0x10c +#define RPMAC_TXHTSIG2 0x110 +#define RPMAC_PHYDEBUG 0x114 +#define RPMAC_TXPACKETNUM 0x118 +#define RPMAC_TXIDLE 0x11c +#define RPMAC_TXMACHEADER0 0x120 +#define RPMAC_TXMACHEADER1 0x124 +#define RPMAC_TXMACHEADER2 0x128 +#define RPMAC_TXMACHEADER3 0x12c +#define RPMAC_TXMACHEADER4 0x130 +#define RPMAC_TXMACHEADER5 0x134 +#define RPMAC_TXDADATYPE 0x138 +#define RPMAC_TXRANDOMSEED 0x13c +#define RPMAC_CCKPLCPPREAMBLE 0x140 +#define RPMAC_CCKPLCPHEADER 0x144 +#define RPMAC_CCKCRC16 0x148 +#define RPMAC_OFDMRXCRC32OK 0x170 +#define RPMAC_OFDMRXCRC32ER 0x174 +#define RPMAC_OFDMRXPARITYER 0x178 +#define RPMAC_OFDMRXCRC8ER 0x17c +#define RPMAC_CCKCRXRC16ER 0x180 +#define RPMAC_CCKCRXRC32ER 0x184 +#define RPMAC_CCKCRXRC32OK 0x188 +#define RPMAC_TXSTATUS 0x18c + +#define RFPGA0_RFMOD 0x800 + +#define RFPGA0_TXINFO 0x804 +#define RFPGA0_PSDFUNCTION 0x808 + +#define RFPGA0_TXGAINSTAGE 0x80c + +#define RFPGA0_RFTIMING1 0x810 +#define RFPGA0_RFTIMING2 0x814 + +#define RFPGA0_XA_HSSIPARAMETER1 0x820 +#define RFPGA0_XA_HSSIPARAMETER2 0x824 +#define RFPGA0_XB_HSSIPARAMETER1 0x828 +#define RFPGA0_XB_HSSIPARAMETER2 0x82c + +#define RFPGA0_XA_LSSIPARAMETER 0x840 +#define RFPGA0_XB_LSSIPARAMETER 0x844 + +#define RFPGA0_RFWAKEUPPARAMETER 0x850 +#define RFPGA0_RFSLEEPUPPARAMETER 0x854 + +#define RFPGA0_XAB_SWITCHCONTROL 0x858 +#define RFPGA0_XCD_SWITCHCONTROL 0x85c + +#define RFPGA0_XA_RFINTERFACEOE 0x860 +#define RFPGA0_XB_RFINTERFACEOE 0x864 + +#define RFPGA0_XAB_RFINTERFACESW 0x870 +#define RFPGA0_XCD_RFINTERFACESW 0x874 + +#define RFPGA0_XAB_RFPARAMETER 0x878 +#define RFPGA0_XCD_RFPARAMETER 0x87c + +#define RFPGA0_ANALOGPARAMETER1 0x880 +#define RFPGA0_ANALOGPARAMETER2 0x884 +#define RFPGA0_ANALOGPARAMETER3 0x888 +#define RFPGA0_ANALOGPARAMETER4 0x88c + +#define RFPGA0_XA_LSSIREADBACK 0x8a0 +#define RFPGA0_XB_LSSIREADBACK 0x8a4 +#define RFPGA0_XC_LSSIREADBACK 0x8a8 +#define RFPGA0_XD_LSSIREADBACK 0x8ac + +#define RFPGA0_PSDREPORT 0x8b4 +#define TRANSCEIVEA_HSPI_READBACK 0x8b8 +#define TRANSCEIVEB_HSPI_READBACK 0x8bc +#define REG_SC_CNT 0x8c4 +#define RFPGA0_XAB_RFINTERFACERB 0x8e0 +#define RFPGA0_XCD_RFINTERFACERB 0x8e4 + +#define RFPGA1_RFMOD 0x900 + +#define RFPGA1_TXBLOCK 0x904 +#define RFPGA1_DEBUGSELECT 0x908 +#define RFPGA1_TXINFO 0x90c + +#define RCCK0_SYSTEM 0xa00 + +#define RCCK0_AFESETTING 0xa04 +#define RCCK0_CCA 0xa08 + +#define RCCK0_RXAGC1 0xa0c +#define RCCK0_RXAGC2 0xa10 + +#define RCCK0_RXHP 0xa14 + +#define RCCK0_DSPPARAMETER1 0xa18 +#define RCCK0_DSPPARAMETER2 0xa1c + +#define RCCK0_TXFILTER1 0xa20 +#define RCCK0_TXFILTER2 0xa24 +#define RCCK0_DEBUGPORT 0xa28 +#define RCCK0_FALSEALARMREPORT 0xa2c +#define RCCK0_TRSSIREPORT 0xa50 +#define RCCK0_RXREPORT 0xa54 +#define RCCK0_FACOUNTERLOWER 0xa5c +#define RCCK0_FACOUNTERUPPER 0xa58 +#define RCCK0_CCA_CNT 0xa60 + + +/* PageB(0xB00) */ +#define RPDP_ANTA 0xb00 +#define RPDP_ANTA_4 0xb04 +#define RPDP_ANTA_8 0xb08 +#define RPDP_ANTA_C 0xb0c +#define RPDP_ANTA_10 0xb10 +#define RPDP_ANTA_14 0xb14 +#define RPDP_ANTA_18 0xb18 +#define RPDP_ANTA_1C 0xb1c +#define RPDP_ANTA_20 0xb20 +#define RPDP_ANTA_24 0xb24 + +#define RCONFIG_PMPD_ANTA 0xb28 +#define CONFIG_RAM64X16 0xb2c + +#define RBNDA 0xb30 +#define RHSSIPAR 0xb34 + +#define RCONFIG_ANTA 0xb68 +#define RCONFIG_ANTB 0xb6c + +#define RPDP_ANTB 0xb70 +#define RPDP_ANTB_4 0xb74 +#define RPDP_ANTB_8 0xb78 +#define RPDP_ANTB_C 0xb7c +#define RPDP_ANTB_10 0xb80 +#define RPDP_ANTB_14 0xb84 +#define RPDP_ANTB_18 0xb88 +#define RPDP_ANTB_1C 0xb8c +#define RPDP_ANTB_20 0xb90 +#define RPDP_ANTB_24 0xb94 + +#define RCONFIG_PMPD_ANTB 0xb98 + +#define RBNDB 0xba0 + +#define RAPK 0xbd8 +#define RPM_RX0_ANTA 0xbdc +#define RPM_RX1_ANTA 0xbe0 +#define RPM_RX2_ANTA 0xbe4 +#define RPM_RX3_ANTA 0xbe8 +#define RPM_RX0_ANTB 0xbec +#define RPM_RX1_ANTB 0xbf0 +#define RPM_RX2_ANTB 0xbf4 +#define RPM_RX3_ANTB 0xbf8 + +/*Page C*/ +#define ROFDM0_LSTF 0xc00 + +#define ROFDM0_TRXPATHENABLE 0xc04 +#define ROFDM0_TRMUXPAR 0xc08 +#define ROFDM0_TRSWISOLATION 0xc0c + +#define ROFDM0_XARXAFE 0xc10 +#define ROFDM0_XARXIQIMBALANCE 0xc14 +#define ROFDM0_XBRXAFE 0xc18 +#define ROFDM0_XBRXIQIMBALANCE 0xc1c +#define ROFDM0_XCRXAFE 0xc20 +#define ROFDM0_XCRXIQIMBANLANCE 0xc24 +#define ROFDM0_XDRXAFE 0xc28 +#define ROFDM0_XDRXIQIMBALANCE 0xc2c + +#define ROFDM0_RXDETECTOR1 0xc30 +#define ROFDM0_RXDETECTOR2 0xc34 +#define ROFDM0_RXDETECTOR3 0xc38 +#define ROFDM0_RXDETECTOR4 0xc3c + +#define ROFDM0_RXDSP 0xc40 +#define ROFDM0_CFOANDDAGC 0xc44 +#define ROFDM0_CCADROPTHRESHOLD 0xc48 +#define ROFDM0_ECCATHRESHOLD 0xc4c + +#define ROFDM0_XAAGCCORE1 0xc50 +#define ROFDM0_XAAGCCORE2 0xc54 +#define ROFDM0_XBAGCCORE1 0xc58 +#define ROFDM0_XBAGCCORE2 0xc5c +#define ROFDM0_XCAGCCORE1 0xc60 +#define ROFDM0_XCAGCCORE2 0xc64 +#define ROFDM0_XDAGCCORE1 0xc68 +#define ROFDM0_XDAGCCORE2 0xc6c + +#define ROFDM0_AGCPARAMETER1 0xc70 +#define ROFDM0_AGCPARAMETER2 0xc74 +#define ROFDM0_AGCRSSITABLE 0xc78 +#define ROFDM0_HTSTFAGC 0xc7c + +#define ROFDM0_XATXIQIMBALANCE 0xc80 +#define ROFDM0_XATXAFE 0xc84 +#define ROFDM0_XBTXIQIMBALANCE 0xc88 +#define ROFDM0_XBTXAFE 0xc8c +#define ROFDM0_XCTXIQIMBALANCE 0xc90 +#define ROFDM0_XCTXAFE 0xc94 +#define ROFDM0_XDTXIQIMBALANCE 0xc98 +#define ROFDM0_XDTXAFE 0xc9c + +#define ROFDM0_RXIQEXTANTA 0xca0 +#define ROFDM0_TXCOEFF1 0xca4 +#define ROFDM0_TXCOEFF2 0xca8 +#define ROFDM0_TXCOEFF3 0xcac +#define ROFDM0_TXCOEFF4 0xcb0 +#define ROFDM0_TXCOEFF5 0xcb4 +#define ROFDM0_TXCOEFF6 0xcb8 + +#define ROFDM0_RXHPPARAMETER 0xce0 +#define ROFDM0_TXPSEUDONOISEWGT 0xce4 +#define ROFDM0_FRAMESYNC 0xcf0 +#define ROFDM0_DFSREPORT 0xcf4 + + +#define ROFDM1_LSTF 0xd00 +#define ROFDM1_TRXPATHENABLE 0xd04 + +#define ROFDM1_CF0 0xd08 +#define ROFDM1_CSI1 0xd10 +#define ROFDM1_SBD 0xd14 +#define ROFDM1_CSI2 0xd18 +#define ROFDM1_CFOTRACKING 0xd2c +#define ROFDM1_TRXMESAURE1 0xd34 +#define ROFDM1_INTFDET 0xd3c +#define ROFDM1_PSEUDONOISESTATEAB 0xd50 +#define ROFDM1_PSEUDONOISESTATECD 0xd54 +#define ROFDM1_RXPSEUDONOISEWGT 0xd58 + +#define ROFDM_PHYCOUNTER1 0xda0 +#define ROFDM_PHYCOUNTER2 0xda4 +#define ROFDM_PHYCOUNTER3 0xda8 + +#define ROFDM_SHORTCFOAB 0xdac +#define ROFDM_SHORTCFOCD 0xdb0 +#define ROFDM_LONGCFOAB 0xdb4 +#define ROFDM_LONGCFOCD 0xdb8 +#define ROFDM_TAILCF0AB 0xdbc +#define ROFDM_TAILCF0CD 0xdc0 +#define ROFDM_PWMEASURE1 0xdc4 +#define ROFDM_PWMEASURE2 0xdc8 +#define ROFDM_BWREPORT 0xdcc +#define ROFDM_AGCREPORT 0xdd0 +#define ROFDM_RXSNR 0xdd4 +#define ROFDM_RXEVMCSI 0xdd8 +#define ROFDM_SIGREPORT 0xddc + +#define RTXAGC_A_RATE18_06 0xe00 +#define RTXAGC_A_RATE54_24 0xe04 +#define RTXAGC_A_CCK1_MCS32 0xe08 +#define RTXAGC_A_MCS03_MCS00 0xe10 +#define RTXAGC_A_MCS07_MCS04 0xe14 +#define RTXAGC_A_MCS11_MCS08 0xe18 +#define RTXAGC_A_MCS15_MCS12 0xe1c + +#define RTXAGC_B_RATE18_06 0x830 +#define RTXAGC_B_RATE54_24 0x834 +#define RTXAGC_B_CCK1_55_MCS32 0x838 +#define RTXAGC_B_MCS03_MCS00 0x83c +#define RTXAGC_B_MCS07_MCS04 0x848 +#define RTXAGC_B_MCS11_MCS08 0x84c +#define RTXAGC_B_MCS15_MCS12 0x868 +#define RTXAGC_B_CCK11_A_CCK2_11 0x86c + +#define RFPGA0_IQK 0xe28 +#define RTX_IQK_TONE_A 0xe30 +#define RRX_IQK_TONE_A 0xe34 +#define RTX_IQK_PI_A 0xe38 +#define RRX_IQK_PI_A 0xe3c + +#define RTX_IQK 0xe40 +#define RRX_IQK 0xe44 +#define RIQK_AGC_PTS 0xe48 +#define RIQK_AGC_RSP 0xe4c +#define RTX_IQK_TONE_B 0xe50 +#define RRX_IQK_TONE_B 0xe54 +#define RTX_IQK_PI_B 0xe58 +#define RRX_IQK_PI_B 0xe5c +#define RIQK_AGC_CONT 0xe60 + +#define RBLUE_TOOTH 0xe6c +#define RRX_WAIT_CCA 0xe70 +#define RTX_CCK_RFON 0xe74 +#define RTX_CCK_BBON 0xe78 +#define RTX_OFDM_RFON 0xe7c +#define RTX_OFDM_BBON 0xe80 +#define RTX_TO_RX 0xe84 +#define RTX_TO_TX 0xe88 +#define RRX_CCK 0xe8c + +#define RTX_POWER_BEFORE_IQK_A 0xe94 +#define RTX_POWER_AFTER_IQK_A 0xe9c + +#define RRX_POWER_BEFORE_IQK_A 0xea0 +#define RRX_POWER_BEFORE_IQK_A_2 0xea4 +#define RRX_POWER_AFTER_IQK_A 0xea8 +#define RRX_POWER_AFTER_IQK_A_2 0xeac + +#define RTX_POWER_BEFORE_IQK_B 0xeb4 +#define RTX_POWER_AFTER_IQK_B 0xebc + +#define RRX_POWER_BEFORE_IQK_B 0xec0 +#define RRX_POWER_BEFORE_IQK_B_2 0xec4 +#define RRX_POWER_AFTER_IQK_B 0xec8 +#define RRX_POWER_AFTER_IQK_B_2 0xecc + +#define RRX_OFDM 0xed0 +#define RRX_WAIT_RIFS 0xed4 +#define RRX_TO_RX 0xed8 +#define RSTANDBY 0xedc +#define RSLEEP 0xee0 +#define RPMPD_ANAEN 0xeec + +#define RZEBRA1_HSSIENABLE 0x0 +#define RZEBRA1_TRXENABLE1 0x1 +#define RZEBRA1_TRXENABLE2 0x2 +#define RZEBRA1_AGC 0x4 +#define RZEBRA1_CHARGEPUMP 0x5 +#define RZEBRA1_CHANNEL 0x7 + +#define RZEBRA1_TXGAIN 0x8 +#define RZEBRA1_TXLPF 0x9 +#define RZEBRA1_RXLPF 0xb +#define RZEBRA1_RXHPFCORNER 0xc + +#define RGLOBALCTRL 0 +#define RRTL8256_TXLPF 19 +#define RRTL8256_RXLPF 11 +#define RRTL8258_TXLPF 0x11 +#define RRTL8258_RXLPF 0x13 +#define RRTL8258_RSSILPF 0xa + +#define RF_AC 0x00 + +#define RF_IQADJ_G1 0x01 +#define RF_IQADJ_G2 0x02 +#define RF_POW_TRSW 0x05 + +#define RF_GAIN_RX 0x06 +#define RF_GAIN_TX 0x07 + +#define RF_TXM_IDAC 0x08 +#define RF_BS_IQGEN 0x0F + +#define RF_MODE1 0x10 +#define RF_MODE2 0x11 + +#define RF_RX_AGC_HP 0x12 +#define RF_TX_AGC 0x13 +#define RF_BIAS 0x14 +#define RF_IPA 0x15 +#define RF_POW_ABILITY 0x17 +#define RF_MODE_AG 0x18 +#define RRFCHANNEL 0x18 +#define RF_CHNLBW 0x18 +#define RF_TOP 0x19 + +#define RF_RX_G1 0x1A +#define RF_RX_G2 0x1B + +#define RF_RX_BB2 0x1C +#define RF_RX_BB1 0x1D + +#define RF_RCK1 0x1E +#define RF_RCK2 0x1F + +#define RF_TX_G1 0x20 +#define RF_TX_G2 0x21 +#define RF_TX_G3 0x22 + +#define RF_TX_BB1 0x23 +#define RF_T_METER 0x42 + +#define RF_SYN_G1 0x25 +#define RF_SYN_G2 0x26 +#define RF_SYN_G3 0x27 +#define RF_SYN_G4 0x28 +#define RF_SYN_G5 0x29 +#define RF_SYN_G6 0x2A +#define RF_SYN_G7 0x2B +#define RF_SYN_G8 0x2C + +#define RF_RCK_OS 0x30 +#define RF_TXPA_G1 0x31 +#define RF_TXPA_G2 0x32 +#define RF_TXPA_G3 0x33 + +#define RF_TX_BIAS_A 0x35 +#define RF_TX_BIAS_D 0x36 +#define RF_LOBF_9 0x38 +#define RF_RXRF_A3 0x3C +#define RF_TRSW 0x3F + +#define RF_TXRF_A2 0x41 +#define RF_TXPA_G4 0x46 +#define RF_TXPA_A4 0x4B + +#define RF_WE_LUT 0xEF + +#define BBBRESETB 0x100 +#define BGLOBALRESETB 0x200 +#define BOFDMTXSTART 0x4 +#define BCCKTXSTART 0x8 +#define BCRC32DEBUG 0x100 +#define BPMACLOOPBACK 0x10 +#define BTXLSIG 0xffffff +#define BOFDMTXRATE 0xf +#define BOFDMTXRESERVED 0x10 +#define BOFDMTXLENGTH 0x1ffe0 +#define BOFDMTXPARITY 0x20000 +#define BTXHTSIG1 0xffffff +#define BTXHTMCSRATE 0x7f +#define BTXHTBW 0x80 +#define BTXHTLENGTH 0xffff00 +#define BTXHTSIG2 0xffffff +#define BTXHTSMOOTHING 0x1 +#define BTXHTSOUNDING 0x2 +#define BTXHTRESERVED 0x4 +#define BTXHTAGGREATION 0x8 +#define BTXHTSTBC 0x30 +#define BTXHTADVANCECODING 0x40 +#define BTXHTSHORTGI 0x80 +#define BTXHTNUMBERHT_LTF 0x300 +#define BTXHTCRC8 0x3fc00 +#define BCOUNTERRESET 0x10000 +#define BNUMOFOFDMTX 0xffff +#define BNUMOFCCKTX 0xffff0000 +#define BTXIDLEINTERVAL 0xffff +#define BOFDMSERVICE 0xffff0000 +#define BTXMACHEADER 0xffffffff +#define BTXDATAINIT 0xff +#define BTXHTMODE 0x100 +#define BTXDATATYPE 0x30000 +#define BTXRANDOMSEED 0xffffffff +#define BCCKTXPREAMBLE 0x1 +#define BCCKTXSFD 0xffff0000 +#define BCCKTXSIG 0xff +#define BCCKTXSERVICE 0xff00 +#define BCCKLENGTHEXT 0x8000 +#define BCCKTXLENGHT 0xffff0000 +#define BCCKTXCRC16 0xffff +#define BCCKTXSTATUS 0x1 +#define BOFDMTXSTATUS 0x2 +#define IS_BB_REG_OFFSET_92S(_offset) \ + ((_offset >= 0x800) && (_offset <= 0xfff)) + +#define BRFMOD 0x1 +#define BJAPANMODE 0x2 +#define BCCKTXSC 0x30 +#define BCCKEN 0x1000000 +#define BOFDMEN 0x2000000 + +#define BOFDMRXADCPHASE 0x10000 +#define BOFDMTXDACPHASE 0x40000 +#define BXATXAGC 0x3f + +#define BXBTXAGC 0xf00 +#define BXCTXAGC 0xf000 +#define BXDTXAGC 0xf0000 + +#define BPASTART 0xf0000000 +#define BTRSTART 0x00f00000 +#define BRFSTART 0x0000f000 +#define BBBSTART 0x000000f0 +#define BBBCCKSTART 0x0000000f +#define BPAEND 0xf +#define BTREND 0x0f000000 +#define BRFEND 0x000f0000 +#define BCCAMASK 0x000000f0 +#define BR2RCCAMASK 0x00000f00 +#define BHSSI_R2TDELAY 0xf8000000 +#define BHSSI_T2RDELAY 0xf80000 +#define BCONTXHSSI 0x400 +#define BIGFROMCCK 0x200 +#define BAGCADDRESS 0x3f +#define BRXHPTX 0x7000 +#define BRXHP2RX 0x38000 +#define BRXHPCCKINI 0xc0000 +#define BAGCTXCODE 0xc00000 +#define BAGCRXCODE 0x300000 + +#define B3WIREDATALENGTH 0x800 +#define B3WIREADDREAALENGTH 0x400 + +#define B3WIRERFPOWERDOWN 0x1 +#define B5GPAPEPOLARITY 0x40000000 +#define B2GPAPEPOLARITY 0x80000000 +#define BRFSW_TXDEFAULTANT 0x3 +#define BRFSW_TXOPTIONANT 0x30 +#define BRFSW_RXDEFAULTANT 0x300 +#define BRFSW_RXOPTIONANT 0x3000 +#define BRFSI_3WIREDATA 0x1 +#define BRFSI_3WIRECLOCK 0x2 +#define BRFSI_3WIRELOAD 0x4 +#define BRFSI_3WIRERW 0x8 +#define BRFSI_3WIRE 0xf + +#define BRFSI_RFENV 0x10 + +#define BRFSI_TRSW 0x20 +#define BRFSI_TRSWB 0x40 +#define BRFSI_ANTSW 0x100 +#define BRFSI_ANTSWB 0x200 +#define BRFSI_PAPE 0x400 +#define BRFSI_PAPE5G 0x800 +#define BBANDSELECT 0x1 +#define BHTSIG2_GI 0x80 +#define BHTSIG2_SMOOTHING 0x01 +#define BHTSIG2_SOUNDING 0x02 +#define BHTSIG2_AGGREATON 0x08 +#define BHTSIG2_STBC 0x30 +#define BHTSIG2_ADVCODING 0x40 +#define BHTSIG2_NUMOFHTLTF 0x300 +#define BHTSIG2_CRC8 0x3fc +#define BHTSIG1_MCS 0x7f +#define BHTSIG1_BANDWIDTH 0x80 +#define BHTSIG1_HTLENGTH 0xffff +#define BLSIG_RATE 0xf +#define BLSIG_RESERVED 0x10 +#define BLSIG_LENGTH 0x1fffe +#define BLSIG_PARITY 0x20 +#define BCCKRXPHASE 0x4 + +#define BLSSIREADADDRESS 0x7f800000 +#define BLSSIREADEDGE 0x80000000 + +#define BLSSIREADBACKDATA 0xfffff + +#define BLSSIREADOKFLAG 0x1000 +#define BCCKSAMPLERATE 0x8 +#define BREGULATOR0STANDBY 0x1 +#define BREGULATORPLLSTANDBY 0x2 +#define BREGULATOR1STANDBY 0x4 +#define BPLLPOWERUP 0x8 +#define BDPLLPOWERUP 0x10 +#define BDA10POWERUP 0x20 +#define BAD7POWERUP 0x200 +#define BDA6POWERUP 0x2000 +#define BXTALPOWERUP 0x4000 +#define B40MDCLKPOWERUP 0x8000 +#define BDA6DEBUGMODE 0x20000 +#define BDA6SWING 0x380000 + +#define BADCLKPHASE 0x4000000 +#define B80MCLKDELAY 0x18000000 +#define BAFEWATCHDOGENABLE 0x20000000 + +#define BXTALCAP01 0xc0000000 +#define BXTALCAP23 0x3 +#define BXTALCAP92X 0x0f000000 +#define BXTALCAP 0x0f000000 + +#define BINTDIFCLKENABLE 0x400 +#define BEXTSIGCLKENABLE 0x800 +#define BBANDGAP_MBIAS_POWERUP 0x10000 +#define BAD11SH_GAIN 0xc0000 +#define BAD11NPUT_RANGE 0x700000 +#define BAD110P_CURRENT 0x3800000 +#define BLPATH_LOOPBACK 0x4000000 +#define BQPATH_LOOPBACK 0x8000000 +#define BAFE_LOOPBACK 0x10000000 +#define BDA10_SWING 0x7e0 +#define BDA10_REVERSE 0x800 +#define BDA_CLK_SOURCE 0x1000 +#define BDA7INPUT_RANGE 0x6000 +#define BDA7_GAIN 0x38000 +#define BDA7OUTPUT_CM_MODE 0x40000 +#define BDA7INPUT_CM_MODE 0x380000 +#define BDA7CURRENT 0xc00000 +#define BREGULATOR_ADJUST 0x7000000 +#define BAD11POWERUP_ATTX 0x1 +#define BDA10PS_ATTX 0x10 +#define BAD11POWERUP_ATRX 0x100 +#define BDA10PS_ATRX 0x1000 +#define BCCKRX_AGC_FORMAT 0x200 +#define BPSDFFT_SAMPLE_POINT 0xc000 +#define BPSD_AVERAGE_NUM 0x3000 +#define BIQPATH_CONTROL 0xc00 +#define BPSD_FREQ 0x3ff +#define BPSD_ANTENNA_PATH 0x30 +#define BPSD_IQ_SWITCH 0x40 +#define BPSD_RX_TRIGGER 0x400000 +#define BPSD_TX_TRIGGER 0x80000000 +#define BPSD_SINE_TONE_SCALE 0x7f000000 +#define BPSD_REPORT 0xffff + +#define BOFDM_TXSC 0x30000000 +#define BCCK_TXON 0x1 +#define BOFDM_TXON 0x2 +#define BDEBUG_PAGE 0xfff +#define BDEBUG_ITEM 0xff +#define BANTL 0x10 +#define BANT_NONHT 0x100 +#define BANT_HT1 0x1000 +#define BANT_HT2 0x10000 +#define BANT_HT1S1 0x100000 +#define BANT_NONHTS1 0x1000000 + +#define BCCK_BBMODE 0x3 +#define BCCK_TXPOWERSAVING 0x80 +#define BCCK_RXPOWERSAVING 0x40 + +#define BCCK_SIDEBAND 0x10 + +#define BCCK_SCRAMBLE 0x8 +#define BCCK_ANTDIVERSITY 0x8000 +#define BCCK_CARRIER_RECOVERY 0x4000 +#define BCCK_TXRATE 0x3000 +#define BCCK_DCCANCEL 0x0800 +#define BCCK_ISICANCEL 0x0400 +#define BCCK_MATCH_FILTER 0x0200 +#define BCCK_EQUALIZER 0x0100 +#define BCCK_PREAMBLE_DETECT 0x800000 +#define BCCK_FAST_FALSECCA 0x400000 +#define BCCK_CH_ESTSTART 0x300000 +#define BCCK_CCA_COUNT 0x080000 +#define BCCK_CS_LIM 0x070000 +#define BCCK_BIST_MODE 0x80000000 +#define BCCK_CCAMASK 0x40000000 +#define BCCK_TX_DAC_PHASE 0x4 +#define BCCK_RX_ADC_PHASE 0x20000000 +#define BCCKR_CP_MODE 0x0100 +#define BCCK_TXDC_OFFSET 0xf0 +#define BCCK_RXDC_OFFSET 0xf +#define BCCK_CCA_MODE 0xc000 +#define BCCK_FALSECS_LIM 0x3f00 +#define BCCK_CS_RATIO 0xc00000 +#define BCCK_CORGBIT_SEL 0x300000 +#define BCCK_PD_LIM 0x0f0000 +#define BCCK_NEWCCA 0x80000000 +#define BCCK_RXHP_OF_IG 0x8000 +#define BCCK_RXIG 0x7f00 +#define BCCK_LNA_POLARITY 0x800000 +#define BCCK_RX1ST_BAIN 0x7f0000 +#define BCCK_RF_EXTEND 0x20000000 +#define BCCK_RXAGC_SATLEVEL 0x1f000000 +#define BCCK_RXAGC_SATCOUNT 0xe0 +#define BCCKRXRFSETTLE 0x1f +#define BCCK_FIXED_RXAGC 0x8000 +#define BCCK_ANTENNA_POLARITY 0x2000 +#define BCCK_TXFILTER_TYPE 0x0c00 +#define BCCK_RXAGC_REPORTTYPE 0x0300 +#define BCCK_RXDAGC_EN 0x80000000 +#define BCCK_RXDAGC_PERIOD 0x20000000 +#define BCCK_RXDAGC_SATLEVEL 0x1f000000 +#define BCCK_TIMING_RECOVERY 0x800000 +#define BCCK_TXC0 0x3f0000 +#define BCCK_TXC1 0x3f000000 +#define BCCK_TXC2 0x3f +#define BCCK_TXC3 0x3f00 +#define BCCK_TXC4 0x3f0000 +#define BCCK_TXC5 0x3f000000 +#define BCCK_TXC6 0x3f +#define BCCK_TXC7 0x3f00 +#define BCCK_DEBUGPORT 0xff0000 +#define BCCK_DAC_DEBUG 0x0f000000 +#define BCCK_FALSEALARM_ENABLE 0x8000 +#define BCCK_FALSEALARM_READ 0x4000 +#define BCCK_TRSSI 0x7f +#define BCCK_RXAGC_REPORT 0xfe +#define BCCK_RXREPORT_ANTSEL 0x80000000 +#define BCCK_RXREPORT_MFOFF 0x40000000 +#define BCCK_RXREPORT_SQLOSS 0x20000000 +#define BCCK_RXREPORT_PKTLOSS 0x10000000 +#define BCCK_RXREPORT_LOCKEDBIT 0x08000000 +#define BCCK_RXREPORT_RATEERROR 0x04000000 +#define BCCK_RXREPORT_RXRATE 0x03000000 +#define BCCK_RXFA_COUNTER_LOWER 0xff +#define BCCK_RXFA_COUNTER_UPPER 0xff000000 +#define BCCK_RXHPAGC_START 0xe000 +#define BCCK_RXHPAGC_FINAL 0x1c00 +#define BCCK_RXFALSEALARM_ENABLE 0x8000 +#define BCCK_FACOUNTER_FREEZE 0x4000 +#define BCCK_TXPATH_SEL 0x10000000 +#define BCCK_DEFAULT_RXPATH 0xc000000 +#define BCCK_OPTION_RXPATH 0x3000000 + +#define BNUM_OFSTF 0x3 +#define BSHIFT_L 0xc0 +#define BGI_TH 0xc +#define BRXPATH_A 0x1 +#define BRXPATH_B 0x2 +#define BRXPATH_C 0x4 +#define BRXPATH_D 0x8 +#define BTXPATH_A 0x1 +#define BTXPATH_B 0x2 +#define BTXPATH_C 0x4 +#define BTXPATH_D 0x8 +#define BTRSSI_FREQ 0x200 +#define BADC_BACKOFF 0x3000 +#define BDFIR_BACKOFF 0xc000 +#define BTRSSI_LATCH_PHASE 0x10000 +#define BRX_LDC_OFFSET 0xff +#define BRX_QDC_OFFSET 0xff00 +#define BRX_DFIR_MODE 0x1800000 +#define BRX_DCNF_TYPE 0xe000000 +#define BRXIQIMB_A 0x3ff +#define BRXIQIMB_B 0xfc00 +#define BRXIQIMB_C 0x3f0000 +#define BRXIQIMB_D 0xffc00000 +#define BDC_DC_NOTCH 0x60000 +#define BRXNB_NOTCH 0x1f000000 +#define BPD_TH 0xf +#define BPD_TH_OPT2 0xc000 +#define BPWED_TH 0x700 +#define BIFMF_WIN_L 0x800 +#define BPD_OPTION 0x1000 +#define BMF_WIN_L 0xe000 +#define BBW_SEARCH_L 0x30000 +#define BWIN_ENH_L 0xc0000 +#define BBW_TH 0x700000 +#define BED_TH2 0x3800000 +#define BBW_OPTION 0x4000000 +#define BRADIO_TH 0x18000000 +#define BWINDOW_L 0xe0000000 +#define BSBD_OPTION 0x1 +#define BFRAME_TH 0x1c +#define BFS_OPTION 0x60 +#define BDC_SLOPE_CHECK 0x80 +#define BFGUARD_COUNTER_DC_L 0xe00 +#define BFRAME_WEIGHT_SHORT 0x7000 +#define BSUB_TUNE 0xe00000 +#define BFRAME_DC_LENGTH 0xe000000 +#define BSBD_START_OFFSET 0x30000000 +#define BFRAME_TH_2 0x7 +#define BFRAME_GI2_TH 0x38 +#define BGI2_SYNC_EN 0x40 +#define BSARCH_SHORT_EARLY 0x300 +#define BSARCH_SHORT_LATE 0xc00 +#define BSARCH_GI2_LATE 0x70000 +#define BCFOANTSUM 0x1 +#define BCFOACC 0x2 +#define BCFOSTARTOFFSET 0xc +#define BCFOLOOPBACK 0x70 +#define BCFOSUMWEIGHT 0x80 +#define BDAGCENABLE 0x10000 +#define BTXIQIMB_A 0x3ff +#define BTXIQIMB_b 0xfc00 +#define BTXIQIMB_C 0x3f0000 +#define BTXIQIMB_D 0xffc00000 +#define BTXIDCOFFSET 0xff +#define BTXIQDCOFFSET 0xff00 +#define BTXDFIRMODE 0x10000 +#define BTXPESUDO_NOISEON 0x4000000 +#define BTXPESUDO_NOISE_A 0xff +#define BTXPESUDO_NOISE_B 0xff00 +#define BTXPESUDO_NOISE_C 0xff0000 +#define BTXPESUDO_NOISE_D 0xff000000 +#define BCCA_DROPOPTION 0x20000 +#define BCCA_DROPTHRES 0xfff00000 +#define BEDCCA_H 0xf +#define BEDCCA_L 0xf0 +#define BLAMBDA_ED 0x300 +#define BRX_INITIALGAIN 0x7f +#define BRX_ANTDIV_EN 0x80 +#define BRX_AGC_ADDRESS_FOR_LNA 0x7f00 +#define BRX_HIGHPOWER_FLOW 0x8000 +#define BRX_AGC_FREEZE_THRES 0xc0000 +#define BRX_FREEZESTEP_AGC1 0x300000 +#define BRX_FREEZESTEP_AGC2 0xc00000 +#define BRX_FREEZESTEP_AGC3 0x3000000 +#define BRX_FREEZESTEP_AGC0 0xc000000 +#define BRXRSSI_CMP_EN 0x10000000 +#define BRXQUICK_AGCEN 0x20000000 +#define BRXAGC_FREEZE_THRES_MODE 0x40000000 +#define BRX_OVERFLOW_CHECKTYPE 0x80000000 +#define BRX_AGCSHIFT 0x7f +#define BTRSW_TRI_ONLY 0x80 +#define BPOWER_THRES 0x300 +#define BRXAGC_EN 0x1 +#define BRXAGC_TOGETHER_EN 0x2 +#define BRXAGC_MIN 0x4 +#define BRXHP_INI 0x7 +#define BRXHP_TRLNA 0x70 +#define BRXHP_RSSI 0x700 +#define BRXHP_BBP1 0x7000 +#define BRXHP_BBP2 0x70000 +#define BRXHP_BBP3 0x700000 +#define BRSSI_H 0x7f0000 +#define BRSSI_GEN 0x7f000000 +#define BRXSETTLE_TRSW 0x7 +#define BRXSETTLE_LNA 0x38 +#define BRXSETTLE_RSSI 0x1c0 +#define BRXSETTLE_BBP 0xe00 +#define BRXSETTLE_RXHP 0x7000 +#define BRXSETTLE_ANTSW_RSSI 0x38000 +#define BRXSETTLE_ANTSW 0xc0000 +#define BRXPROCESS_TIME_DAGC 0x300000 +#define BRXSETTLE_HSSI 0x400000 +#define BRXPROCESS_TIME_BBPPW 0x800000 +#define BRXANTENNA_POWER_SHIFT 0x3000000 +#define BRSSI_TABLE_SELECT 0xc000000 +#define BRXHP_FINAL 0x7000000 +#define BRXHPSETTLE_BBP 0x7 +#define BRXHTSETTLE_HSSI 0x8 +#define BRXHTSETTLE_RXHP 0x70 +#define BRXHTSETTLE_BBPPW 0x80 +#define BRXHTSETTLE_IDLE 0x300 +#define BRXHTSETTLE_RESERVED 0x1c00 +#define BRXHT_RXHP_EN 0x8000 +#define BRXAGC_FREEZE_THRES 0x30000 +#define BRXAGC_TOGETHEREN 0x40000 +#define BRXHTAGC_MIN 0x80000 +#define BRXHTAGC_EN 0x100000 +#define BRXHTDAGC_EN 0x200000 +#define BRXHT_RXHP_BBP 0x1c00000 +#define BRXHT_RXHP_FINAL 0xe0000000 +#define BRXPW_RADIO_TH 0x3 +#define BRXPW_RADIO_EN 0x4 +#define BRXMF_HOLD 0x3800 +#define BRXPD_DELAY_TH1 0x38 +#define BRXPD_DELAY_TH2 0x1c0 +#define BRXPD_DC_COUNT_MAX 0x600 +#define BRXPD_DELAY_TH 0x8000 +#define BRXPROCESS_DELAY 0xf0000 +#define BRXSEARCHRANGE_GI2_EARLY 0x700000 +#define BRXFRAME_FUARD_COUNTER_L 0x3800000 +#define BRXSGI_GUARD_L 0xc000000 +#define BRXSGI_SEARCH_L 0x30000000 +#define BRXSGI_TH 0xc0000000 +#define BDFSCNT0 0xff +#define BDFSCNT1 0xff00 +#define BDFSFLAG 0xf0000 +#define BMF_WEIGHT_SUM 0x300000 +#define BMINIDX_TH 0x7f000000 +#define BDAFORMAT 0x40000 +#define BTXCH_EMU_ENABLE 0x01000000 +#define BTRSW_ISOLATION_A 0x7f +#define BTRSW_ISOLATION_B 0x7f00 +#define BTRSW_ISOLATION_C 0x7f0000 +#define BTRSW_ISOLATION_D 0x7f000000 +#define BEXT_LNA_GAIN 0x7c00 + +#define BSTBC_EN 0x4 +#define BANTENNA_MAPPING 0x10 +#define BNSS 0x20 +#define BCFO_ANTSUM_ID 0x200 +#define BPHY_COUNTER_RESET 0x8000000 +#define BCFO_REPORT_GET 0x4000000 +#define BOFDM_CONTINUE_TX 0x10000000 +#define BOFDM_SINGLE_CARRIER 0x20000000 +#define BOFDM_SINGLE_TONE 0x40000000 +#define BHT_DETECT 0x100 +#define BCFOEN 0x10000 +#define BCFOVALUE 0xfff00000 +#define BSIGTONE_RE 0x3f +#define BSIGTONE_IM 0x7f00 +#define BCOUNTER_CCA 0xffff +#define BCOUNTER_PARITYFAIL 0xffff0000 +#define BCOUNTER_RATEILLEGAL 0xffff +#define BCOUNTER_CRC8FAIL 0xffff0000 +#define BCOUNTER_MCSNOSUPPORT 0xffff +#define BCOUNTER_FASTSYNC 0xffff +#define BSHORTCFO 0xfff +#define BSHORTCFOT_LENGTH 12 +#define BSHORTCFOF_LENGTH 11 +#define BLONGCFO 0x7ff +#define BLONGCFOT_LENGTH 11 +#define BLONGCFOF_LENGTH 11 +#define BTAILCFO 0x1fff +#define BTAILCFOT_LENGTH 13 +#define BTAILCFOF_LENGTH 12 +#define BNOISE_EN_PWDB 0xffff +#define BCC_POWER_DB 0xffff0000 +#define BMOISE_PWDB 0xffff +#define BPOWERMEAST_LENGTH 10 +#define BPOWERMEASF_LENGTH 3 +#define BRX_HT_BW 0x1 +#define BRXSC 0x6 +#define BRX_HT 0x8 +#define BNB_INTF_DET_ON 0x1 +#define BINTF_WIN_LEN_CFG 0x30 +#define BNB_INTF_TH_CFG 0x1c0 +#define BRFGAIN 0x3f +#define BTABLESEL 0x40 +#define BTRSW 0x80 +#define BRXSNR_A 0xff +#define BRXSNR_B 0xff00 +#define BRXSNR_C 0xff0000 +#define BRXSNR_D 0xff000000 +#define BSNR_EVMT_LENGTH 8 +#define BSNR_EVMF_LENGTH 1 +#define BCSI1ST 0xff +#define BCSI2ND 0xff00 +#define BRXEVM1ST 0xff0000 +#define BRXEVM2ND 0xff000000 +#define BSIGEVM 0xff +#define BPWDB 0xff00 +#define BSGIEN 0x10000 + +#define BSFACTOR_QMA1 0xf +#define BSFACTOR_QMA2 0xf0 +#define BSFACTOR_QMA3 0xf00 +#define BSFACTOR_QMA4 0xf000 +#define BSFACTOR_QMA5 0xf0000 +#define BSFACTOR_QMA6 0xf0000 +#define BSFACTOR_QMA7 0xf00000 +#define BSFACTOR_QMA8 0xf000000 +#define BSFACTOR_QMA9 0xf0000000 +#define BCSI_SCHEME 0x100000 + +#define BNOISE_LVL_TOP_SET 0x3 +#define BCHSMOOTH 0x4 +#define BCHSMOOTH_CFG1 0x38 +#define BCHSMOOTH_CFG2 0x1c0 +#define BCHSMOOTH_CFG3 0xe00 +#define BCHSMOOTH_CFG4 0x7000 +#define BMRCMODE 0x800000 +#define BTHEVMCFG 0x7000000 + +#define BLOOP_FIT_TYPE 0x1 +#define BUPD_CFO 0x40 +#define BUPD_CFO_OFFDATA 0x80 +#define BADV_UPD_CFO 0x100 +#define BADV_TIME_CTRL 0x800 +#define BUPD_CLKO 0x1000 +#define BFC 0x6000 +#define BTRACKING_MODE 0x8000 +#define BPHCMP_ENABLE 0x10000 +#define BUPD_CLKO_LTF 0x20000 +#define BCOM_CH_CFO 0x40000 +#define BCSI_ESTI_MODE 0x80000 +#define BADV_UPD_EQZ 0x100000 +#define BUCHCFG 0x7000000 +#define BUPDEQZ 0x8000000 + +#define BRX_PESUDO_NOISE_ON 0x20000000 +#define BRX_PESUDO_NOISE_A 0xff +#define BRX_PESUDO_NOISE_B 0xff00 +#define BRX_PESUDO_NOISE_C 0xff0000 +#define BRX_PESUDO_NOISE_D 0xff000000 +#define BRX_PESUDO_NOISESTATE_A 0xffff +#define BRX_PESUDO_NOISESTATE_B 0xffff0000 +#define BRX_PESUDO_NOISESTATE_C 0xffff +#define BRX_PESUDO_NOISESTATE_D 0xffff0000 + +#define BZEBRA1_HSSIENABLE 0x8 +#define BZEBRA1_TRXCONTROL 0xc00 +#define BZEBRA1_TRXGAINSETTING 0x07f +#define BZEBRA1_RXCOUNTER 0xc00 +#define BZEBRA1_TXCHANGEPUMP 0x38 +#define BZEBRA1_RXCHANGEPUMP 0x7 +#define BZEBRA1_CHANNEL_NUM 0xf80 +#define BZEBRA1_TXLPFBW 0x400 +#define BZEBRA1_RXLPFBW 0x600 + +#define BRTL8256REG_MODE_CTRL1 0x100 +#define BRTL8256REG_MODE_CTRL0 0x40 +#define BRTL8256REG_TXLPFBW 0x18 +#define BRTL8256REG_RXLPFBW 0x600 + +#define BRTL8258_TXLPFBW 0xc +#define BRTL8258_RXLPFBW 0xc00 +#define BRTL8258_RSSILPFBW 0xc0 + +#define BBYTE0 0x1 +#define BBYTE1 0x2 +#define BBYTE2 0x4 +#define BBYTE3 0x8 +#define BWORD0 0x3 +#define BWORD1 0xc +#define BWORD 0xf + +#define MASKBYTE0 0xff +#define MASKBYTE1 0xff00 +#define MASKBYTE2 0xff0000 +#define MASKBYTE3 0xff000000 +#define MASKHWORD 0xffff0000 +#define MASKLWORD 0x0000ffff +#define MASKDWORD 0xffffffff +#define MASK12BITS 0xfff +#define MASKH4BITS 0xf0000000 +#define MASKOFDM_D 0xffc00000 +#define MASKCCK 0x3f3f3f3f + +#define MASK4BITS 0x0f +#define MASK20BITS 0xfffff +#define RFREG_OFFSET_MASK 0xfffff + +#define BENABLE 0x1 +#define BDISABLE 0x0 + +#define LEFT_ANTENNA 0x0 +#define RIGHT_ANTENNA 0x1 + +#define TCHECK_TXSTATUS 500 +#define TUPDATE_RXCOUNTER 100 + +#define REG_UN_used_register 0x01bf + +/* WOL bit information */ +#define HAL92C_WOL_PTK_UPDATE_EVENT BIT(0) +#define HAL92C_WOL_GTK_UPDATE_EVENT BIT(1) +#define HAL92C_WOL_DISASSOC_EVENT BIT(2) +#define HAL92C_WOL_DEAUTH_EVENT BIT(3) +#define HAL92C_WOL_FW_DISCONNECT_EVENT BIT(4) + +#define WOL_REASON_PTK_UPDATE BIT(0) +#define WOL_REASON_GTK_UPDATE BIT(1) +#define WOL_REASON_DISASSOC BIT(2) +#define WOL_REASON_DEAUTH BIT(3) +#define WOL_REASON_FW_DISCONNECT BIT(4) + +/* 2 EFUSE_TEST (For RTL8723 partially) */ +#define EFUSE_SEL(x) (((x) & 0x3) << 8) +#define EFUSE_SEL_MASK 0x300 +#define EFUSE_WIFI_SEL_0 0x0 + +#define WL_HWPDN_EN BIT(0) /* Enable GPIO[9] as WiFi HW PDn source*/ +#define WL_HWPDN_SL BIT(1) /* WiFi HW PDn polarity control*/ + +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/rf.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/rf.c @@ -0,0 +1,504 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "reg.h" +#include "def.h" +#include "phy.h" +#include "rf.h" +#include "dm.h" + +static bool _rtl8723be_phy_rf6052_config_parafile(struct ieee80211_hw *hw); + +void rtl8723be_phy_rf6052_set_bandwidth(struct ieee80211_hw *hw, u8 bandwidth) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + switch (bandwidth) { + case HT_CHANNEL_WIDTH_20: + rtlphy->rfreg_chnlval[0] = ((rtlphy->rfreg_chnlval[0] & + 0xfffff3ff) | BIT(10) | BIT(11)); + rtl_set_rfreg(hw, RF90_PATH_A, RF_CHNLBW, RFREG_OFFSET_MASK, + rtlphy->rfreg_chnlval[0]); + break; + case HT_CHANNEL_WIDTH_20_40: + rtlphy->rfreg_chnlval[0] = ((rtlphy->rfreg_chnlval[0] & + 0xfffff3ff) | BIT(10)); + rtl_set_rfreg(hw, RF90_PATH_A, RF_CHNLBW, RFREG_OFFSET_MASK, + rtlphy->rfreg_chnlval[0]); + break; + default: + RT_TRACE(rtlpriv, COMP_INIT, DBG_EMERG, + "unknown bandwidth: %#X\n", bandwidth); + break; + } +} + +void rtl8723be_phy_rf6052_set_cck_txpower(struct ieee80211_hw *hw, + u8 *ppowerlevel) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + u32 tx_agc[2] = {0, 0}, tmpval; + bool turbo_scanoff = false; + u8 idx1, idx2; + u8 *ptr; + u8 direction; + u32 pwrtrac_value; + + if (rtlefuse->eeprom_regulatory != 0) + turbo_scanoff = true; + + if (mac->act_scanning) { + tx_agc[RF90_PATH_A] = 0x3f3f3f3f; + tx_agc[RF90_PATH_B] = 0x3f3f3f3f; + + if (turbo_scanoff) { + for (idx1 = RF90_PATH_A; idx1 <= RF90_PATH_B; idx1++) { + tx_agc[idx1] = ppowerlevel[idx1] | + (ppowerlevel[idx1] << 8) | + (ppowerlevel[idx1] << 16) | + (ppowerlevel[idx1] << 24); + } + } + } else { + for (idx1 = RF90_PATH_A; idx1 <= RF90_PATH_B; idx1++) { + tx_agc[idx1] = ppowerlevel[idx1] | + (ppowerlevel[idx1] << 8) | + (ppowerlevel[idx1] << 16) | + (ppowerlevel[idx1] << 24); + } + if (rtlefuse->eeprom_regulatory == 0) { + tmpval = + (rtlphy->mcs_offset[0][6]) + + (rtlphy->mcs_offset[0][7] << 8); + tx_agc[RF90_PATH_A] += tmpval; + + tmpval = (rtlphy->mcs_offset[0][14]) + + (rtlphy->mcs_offset[0][15] << + 24); + tx_agc[RF90_PATH_B] += tmpval; + } + } + for (idx1 = RF90_PATH_A; idx1 <= RF90_PATH_B; idx1++) { + ptr = (u8 *)(&(tx_agc[idx1])); + for (idx2 = 0; idx2 < 4; idx2++) { + if (*ptr > RF6052_MAX_TX_PWR) + *ptr = RF6052_MAX_TX_PWR; + ptr++; + } + } + rtl8723be_dm_txpower_track_adjust(hw, 1, &direction, &pwrtrac_value); + if (direction == 1) { + tx_agc[0] += pwrtrac_value; + tx_agc[1] += pwrtrac_value; + } else if (direction == 2) { + tx_agc[0] -= pwrtrac_value; + tx_agc[1] -= pwrtrac_value; + } + tmpval = tx_agc[RF90_PATH_A] & 0xff; + rtl_set_bbreg(hw, RTXAGC_A_CCK1_MCS32, MASKBYTE1, tmpval); + + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "CCK PWR 1M (rf-A) = 0x%x (reg 0x%x)\n", tmpval, + RTXAGC_A_CCK1_MCS32); + + tmpval = tx_agc[RF90_PATH_A] >> 8; + + rtl_set_bbreg(hw, RTXAGC_B_CCK11_A_CCK2_11, 0xffffff00, tmpval); + + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "CCK PWR 2~11M (rf-A) = 0x%x (reg 0x%x)\n", tmpval, + RTXAGC_B_CCK11_A_CCK2_11); + + tmpval = tx_agc[RF90_PATH_B] >> 24; + rtl_set_bbreg(hw, RTXAGC_B_CCK11_A_CCK2_11, MASKBYTE0, tmpval); + + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "CCK PWR 11M (rf-B) = 0x%x (reg 0x%x)\n", tmpval, + RTXAGC_B_CCK11_A_CCK2_11); + + tmpval = tx_agc[RF90_PATH_B] & 0x00ffffff; + rtl_set_bbreg(hw, RTXAGC_B_CCK1_55_MCS32, 0xffffff00, tmpval); + + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "CCK PWR 1~5.5M (rf-B) = 0x%x (reg 0x%x)\n", tmpval, + RTXAGC_B_CCK1_55_MCS32); +} + +static void rtl8723be_phy_get_power_base(struct ieee80211_hw *hw, + u8 *ppowerlevel_ofdm, + u8 *ppowerlevel_bw20, + u8 *ppowerlevel_bw40, + u8 channel, u32 *ofdmbase, + u32 *mcsbase) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u32 powerbase0, powerbase1; + u8 i, powerlevel[2]; + + for (i = 0; i < 2; i++) { + powerbase0 = ppowerlevel_ofdm[i]; + + powerbase0 = (powerbase0 << 24) | (powerbase0 << 16) | + (powerbase0 << 8) | powerbase0; + *(ofdmbase + i) = powerbase0; + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + " [OFDM power base index rf(%c) = 0x%x]\n", + ((i == 0) ? 'A' : 'B'), *(ofdmbase + i)); + } + + for (i = 0; i < 2; i++) { + if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20) + powerlevel[i] = ppowerlevel_bw20[i]; + else + powerlevel[i] = ppowerlevel_bw40[i]; + powerbase1 = powerlevel[i]; + powerbase1 = (powerbase1 << 24) | (powerbase1 << 16) | + (powerbase1 << 8) | powerbase1; + + *(mcsbase + i) = powerbase1; + + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + " [MCS power base index rf(%c) = 0x%x]\n", + ((i == 0) ? 'A' : 'B'), *(mcsbase + i)); + } +} + +static void txpwr_by_regulatory(struct ieee80211_hw *hw, u8 channel, u8 index, + u32 *powerbase0, u32 *powerbase1, + u32 *p_outwriteval) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + u8 i, chnlgroup = 0, pwr_diff_limit[4]; + u8 pwr_diff = 0, customer_pwr_diff; + u32 writeval, customer_limit, rf; + + for (rf = 0; rf < 2; rf++) { + switch (rtlefuse->eeprom_regulatory) { + case 0: + chnlgroup = 0; + + writeval = + rtlphy->mcs_offset[chnlgroup][index + (rf ? 8 : 0)] + + ((index < 2) ? powerbase0[rf] : powerbase1[rf]); + + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "RTK better performance, " + "writeval(%c) = 0x%x\n", + ((rf == 0) ? 'A' : 'B'), writeval); + break; + case 1: + if (rtlphy->pwrgroup_cnt == 1) { + chnlgroup = 0; + } else { + if (channel < 3) + chnlgroup = 0; + else if (channel < 6) + chnlgroup = 1; + else if (channel < 9) + chnlgroup = 2; + else if (channel < 12) + chnlgroup = 3; + else if (channel < 14) + chnlgroup = 4; + else if (channel == 14) + chnlgroup = 5; + } + writeval = rtlphy->mcs_offset[chnlgroup] + [index + (rf ? 8 : 0)] + ((index < 2) ? + powerbase0[rf] : + powerbase1[rf]); + + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "Realtek regulatory, 20MHz, " + "writeval(%c) = 0x%x\n", + ((rf == 0) ? 'A' : 'B'), writeval); + + break; + case 2: + writeval = + ((index < 2) ? powerbase0[rf] : powerbase1[rf]); + + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "Better regulatory, " + "writeval(%c) = 0x%x\n", + ((rf == 0) ? 'A' : 'B'), writeval); + break; + case 3: + chnlgroup = 0; + + if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) { + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "customer's limit, 40MHz " + "rf(%c) = 0x%x\n", + ((rf == 0) ? 'A' : 'B'), + rtlefuse->pwrgroup_ht40[rf] + [channel-1]); + } else { + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "customer's limit, 20MHz " + "rf(%c) = 0x%x\n", + ((rf == 0) ? 'A' : 'B'), + rtlefuse->pwrgroup_ht20[rf] + [channel-1]); + } + + if (index < 2) + pwr_diff = + rtlefuse->txpwr_legacyhtdiff[rf][channel-1]; + else if (rtlphy->current_chan_bw == + HT_CHANNEL_WIDTH_20) + pwr_diff = + rtlefuse->txpwr_ht20diff[rf][channel-1]; + + if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) + customer_pwr_diff = + rtlefuse->pwrgroup_ht40[rf][channel-1]; + else + customer_pwr_diff = + rtlefuse->pwrgroup_ht20[rf][channel-1]; + + if (pwr_diff > customer_pwr_diff) + pwr_diff = 0; + else + pwr_diff = customer_pwr_diff - pwr_diff; + + for (i = 0; i < 4; i++) { + pwr_diff_limit[i] = + (u8)((rtlphy->mcs_offset + [chnlgroup][index + (rf ? 8 : 0)] & + (0x7f << (i * 8))) >> (i * 8)); + + if (pwr_diff_limit[i] > pwr_diff) + pwr_diff_limit[i] = pwr_diff; + } + + customer_limit = (pwr_diff_limit[3] << 24) | + (pwr_diff_limit[2] << 16) | + (pwr_diff_limit[1] << 8) | + (pwr_diff_limit[0]); + + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "Customer's limit rf(%c) = 0x%x\n", + ((rf == 0) ? 'A' : 'B'), customer_limit); + + writeval = customer_limit + ((index < 2) ? + powerbase0[rf] : + powerbase1[rf]); + + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "Customer, writeval rf(%c)= 0x%x\n", + ((rf == 0) ? 'A' : 'B'), writeval); + break; + default: + chnlgroup = 0; + writeval = + rtlphy->mcs_offset[chnlgroup] + [index + (rf ? 8 : 0)] + + ((index < 2) ? powerbase0[rf] : powerbase1[rf]); + + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "RTK better performance, writeval " + "rf(%c) = 0x%x\n", + ((rf == 0) ? 'A' : 'B'), writeval); + break; + } + + if (rtlpriv->dm.dynamic_txhighpower_lvl == TXHIGHPWRLEVEL_BT1) + writeval = writeval - 0x06060606; + else if (rtlpriv->dm.dynamic_txhighpower_lvl == + TXHIGHPWRLEVEL_BT2) + writeval = writeval - 0x0c0c0c0c; + *(p_outwriteval + rf) = writeval; + } +} + +static void _rtl8723be_write_ofdm_power_reg(struct ieee80211_hw *hw, + u8 index, u32 *value) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u16 regoffset_a[6] = { + RTXAGC_A_RATE18_06, RTXAGC_A_RATE54_24, + RTXAGC_A_MCS03_MCS00, RTXAGC_A_MCS07_MCS04, + RTXAGC_A_MCS11_MCS08, RTXAGC_A_MCS15_MCS12 + }; + u16 regoffset_b[6] = { + RTXAGC_B_RATE18_06, RTXAGC_B_RATE54_24, + RTXAGC_B_MCS03_MCS00, RTXAGC_B_MCS07_MCS04, + RTXAGC_B_MCS11_MCS08, RTXAGC_B_MCS15_MCS12 + }; + u8 i, rf, pwr_val[4]; + u32 writeval; + u16 regoffset; + + for (rf = 0; rf < 2; rf++) { + writeval = value[rf]; + for (i = 0; i < 4; i++) { + pwr_val[i] = (u8) ((writeval & (0x7f << + (i * 8))) >> (i * 8)); + + if (pwr_val[i] > RF6052_MAX_TX_PWR) + pwr_val[i] = RF6052_MAX_TX_PWR; + } + writeval = (pwr_val[3] << 24) | (pwr_val[2] << 16) | + (pwr_val[1] << 8) | pwr_val[0]; + + if (rf == 0) + regoffset = regoffset_a[index]; + else + regoffset = regoffset_b[index]; + rtl_set_bbreg(hw, regoffset, MASKDWORD, writeval); + + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + "Set 0x%x = %08x\n", regoffset, writeval); + } +} + +void rtl8723be_phy_rf6052_set_ofdm_txpower(struct ieee80211_hw *hw, + u8 *ppowerlevel_ofdm, + u8 *ppowerlevel_bw20, + u8 *ppowerlevel_bw40, u8 channel) +{ + u32 writeval[2], powerbase0[2], powerbase1[2]; + u8 index; + u8 direction; + u32 pwrtrac_value; + + rtl8723be_phy_get_power_base(hw, ppowerlevel_ofdm, ppowerlevel_bw20, + ppowerlevel_bw40, channel, + &powerbase0[0], &powerbase1[0]); + + rtl8723be_dm_txpower_track_adjust(hw, 1, &direction, &pwrtrac_value); + + for (index = 0; index < 6; index++) { + txpwr_by_regulatory(hw, channel, index, &powerbase0[0], + &powerbase1[0], &writeval[0]); + if (direction == 1) { + writeval[0] += pwrtrac_value; + writeval[1] += pwrtrac_value; + } else if (direction == 2) { + writeval[0] -= pwrtrac_value; + writeval[1] -= pwrtrac_value; + } + _rtl8723be_write_ofdm_power_reg(hw, index, &writeval[0]); + } +} + +bool rtl8723be_phy_rf6052_config(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + if (rtlphy->rf_type == RF_1T1R) + rtlphy->num_total_rfpath = 1; + else + rtlphy->num_total_rfpath = 2; + + return _rtl8723be_phy_rf6052_config_parafile(hw); +} + +static bool _rtl8723be_phy_rf6052_config_parafile(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct bb_reg_def *pphyreg; + u32 u4_regvalue = 0; + u8 rfpath; + bool rtstatus = true; + + for (rfpath = 0; rfpath < rtlphy->num_total_rfpath; rfpath++) { + pphyreg = &rtlphy->phyreg_def[rfpath]; + + switch (rfpath) { + case RF90_PATH_A: + case RF90_PATH_C: + u4_regvalue = rtl_get_bbreg(hw, pphyreg->rfintfs, + BRFSI_RFENV); + break; + case RF90_PATH_B: + case RF90_PATH_D: + u4_regvalue = rtl_get_bbreg(hw, pphyreg->rfintfs, + BRFSI_RFENV << 16); + break; + } + + rtl_set_bbreg(hw, pphyreg->rfintfe, BRFSI_RFENV << 16, 0x1); + udelay(1); + + rtl_set_bbreg(hw, pphyreg->rfintfo, BRFSI_RFENV, 0x1); + udelay(1); + + rtl_set_bbreg(hw, pphyreg->rfhssi_para2, + B3WIREADDREAALENGTH, 0x0); + udelay(1); + + rtl_set_bbreg(hw, pphyreg->rfhssi_para2, B3WIREDATALENGTH, 0x0); + udelay(1); + + switch (rfpath) { + case RF90_PATH_A: + rtstatus = rtl8723be_phy_config_rf_with_headerfile(hw, + (enum radio_path)rfpath); + break; + case RF90_PATH_B: + rtstatus = rtl8723be_phy_config_rf_with_headerfile(hw, + (enum radio_path)rfpath); + break; + case RF90_PATH_C: + break; + case RF90_PATH_D: + break; + } + + switch (rfpath) { + case RF90_PATH_A: + case RF90_PATH_C: + rtl_set_bbreg(hw, pphyreg->rfintfs, + BRFSI_RFENV, u4_regvalue); + break; + case RF90_PATH_B: + case RF90_PATH_D: + rtl_set_bbreg(hw, pphyreg->rfintfs, + BRFSI_RFENV << 16, u4_regvalue); + break; + } + + if (!rtstatus) { + RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, + "Radio[%d] Fail!!", rfpath); + return false; + } + } + + RT_TRACE(rtlpriv, COMP_INIT, DBG_TRACE, "\n"); + return rtstatus; +} --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/rf.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/rf.h @@ -0,0 +1,43 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8723BE_RF_H__ +#define __RTL8723BE_RF_H__ + +#define RF6052_MAX_TX_PWR 0x3F +#define RF6052_MAX_REG 0x3F + +void rtl8723be_phy_rf6052_set_bandwidth(struct ieee80211_hw *hw, + u8 bandwidth); +void rtl8723be_phy_rf6052_set_cck_txpower(struct ieee80211_hw *hw, + u8 *ppowerlevel); +void rtl8723be_phy_rf6052_set_ofdm_txpower(struct ieee80211_hw *hw, + u8 *ppowerlevel_ofdm, + u8 *ppowerlevel_bw20, + u8 *ppowerlevel_bw40, + u8 channel); +bool rtl8723be_phy_rf6052_config(struct ieee80211_hw *hw); + +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/sw.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/sw.c @@ -0,0 +1,388 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "../core.h" +#include "../pci.h" +#include "reg.h" +#include "def.h" +#include "phy.h" +#include "../rtl8723com/phy_common.h" +#include "dm.h" +#include "hw.h" +#include "fw.h" +#include "../rtl8723com/fw_common.h" +#include "sw.h" +#include "trx.h" +#include "led.h" +#include "table.h" +#include "../btcoexist/rtl_btc.h" + +#include +#include + +static void rtl8723be_init_aspm_vars(struct ieee80211_hw *hw) +{ + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + + /*close ASPM for AMD defaultly */ + rtlpci->const_amdpci_aspm = 0; + + /* ASPM PS mode. + * 0 - Disable ASPM, + * 1 - Enable ASPM without Clock Req, + * 2 - Enable ASPM with Clock Req, + * 3 - Alwyas Enable ASPM with Clock Req, + * 4 - Always Enable ASPM without Clock Req. + * set defult to RTL8192CE:3 RTL8192E:2 + */ + rtlpci->const_pci_aspm = 3; + + /*Setting for PCI-E device */ + rtlpci->const_devicepci_aspm_setting = 0x03; + + /*Setting for PCI-E bridge */ + rtlpci->const_hostpci_aspm_setting = 0x02; + + /* In Hw/Sw Radio Off situation. + * 0 - Default, + * 1 - From ASPM setting without low Mac Pwr, + * 2 - From ASPM setting with low Mac Pwr, + * 3 - Bus D3 + * set default to RTL8192CE:0 RTL8192SE:2 + */ + rtlpci->const_hwsw_rfoff_d3 = 0; + + /* This setting works for those device with + * backdoor ASPM setting such as EPHY setting. + * 0 - Not support ASPM, + * 1 - Support ASPM, + * 2 - According to chipset. + */ + rtlpci->const_support_pciaspm = 1; +} + +int rtl8723be_init_sw_vars(struct ieee80211_hw *hw) +{ + int err = 0; + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + + rtl8723be_bt_reg_init(hw); + rtlpci->msi_support = rtlpriv->cfg->mod_params->msi_support; + rtlpriv->btcoexist.btc_ops = rtl_btc_get_ops_pointer(); + + rtlpriv->dm.dm_initialgain_enable = 1; + rtlpriv->dm.dm_flag = 0; + rtlpriv->dm.disable_framebursting = 0; + rtlpriv->dm.thermalvalue = 0; + rtlpci->transmit_config = CFENDFORM | BIT(15) | BIT(24) | BIT(25); + + mac->ht_enable = true; + + /* compatible 5G band 88ce just 2.4G band & smsp */ + rtlpriv->rtlhal.current_bandtype = BAND_ON_2_4G; + rtlpriv->rtlhal.bandset = BAND_ON_2_4G; + rtlpriv->rtlhal.macphymode = SINGLEMAC_SINGLEPHY; + + rtlpci->receive_config = (RCR_APPFCS | + RCR_APP_MIC | + RCR_APP_ICV | + RCR_APP_PHYST_RXFF | + RCR_HTC_LOC_CTRL | + RCR_AMF | + RCR_ACF | + RCR_ADF | + RCR_AICV | + RCR_AB | + RCR_AM | + RCR_APM | + 0); + + rtlpci->irq_mask[0] = (u32) (IMR_PSTIMEOUT | + IMR_HSISR_IND_ON_INT | + IMR_C2HCMD | + IMR_HIGHDOK | + IMR_MGNTDOK | + IMR_BKDOK | + IMR_BEDOK | + IMR_VIDOK | + IMR_VODOK | + IMR_RDU | + IMR_ROK | + 0); + + rtlpci->irq_mask[1] = (u32)(IMR_RXFOVW | 0); + + /* for debug level */ + rtlpriv->dbg.global_debuglevel = rtlpriv->cfg->mod_params->debug; + /* for LPS & IPS */ + rtlpriv->psc.inactiveps = rtlpriv->cfg->mod_params->inactiveps; + rtlpriv->psc.swctrl_lps = rtlpriv->cfg->mod_params->swctrl_lps; + rtlpriv->psc.fwctrl_lps = rtlpriv->cfg->mod_params->fwctrl_lps; + rtlpriv->psc.reg_fwctrl_lps = 3; + rtlpriv->psc.reg_max_lps_awakeintvl = 5; + /* for ASPM, you can close aspm through + * set const_support_pciaspm = 0 + */ + rtl8723be_init_aspm_vars(hw); + + if (rtlpriv->psc.reg_fwctrl_lps == 1) + rtlpriv->psc.fwctrl_psmode = FW_PS_MIN_MODE; + else if (rtlpriv->psc.reg_fwctrl_lps == 2) + rtlpriv->psc.fwctrl_psmode = FW_PS_MAX_MODE; + else if (rtlpriv->psc.reg_fwctrl_lps == 3) + rtlpriv->psc.fwctrl_psmode = FW_PS_DTIM_MODE; + + /* for firmware buf */ + rtlpriv->rtlhal.pfirmware = vzalloc(0x8000); + if (!rtlpriv->rtlhal.pfirmware) { + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "Can't alloc buffer for fw.\n"); + return 1; + } + + rtlpriv->max_fw_size = 0x8000; + pr_info("Using firmware %s\n", rtlpriv->cfg->fw_name); + err = request_firmware_nowait(THIS_MODULE, 1, rtlpriv->cfg->fw_name, + rtlpriv->io.dev, GFP_KERNEL, hw, + rtl_fw_cb); + if (err) { + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "Failed to request firmware!\n"); + return 1; + } + return 0; +} + +void rtl8723be_deinit_sw_vars(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if (rtlpriv->cfg->ops->get_btc_status()) + rtlpriv->btcoexist.btc_ops->btc_halt_notify(); + if (rtlpriv->rtlhal.pfirmware) { + vfree(rtlpriv->rtlhal.pfirmware); + rtlpriv->rtlhal.pfirmware = NULL; + } +} + +/* get bt coexist status */ +bool rtl8723be_get_btc_status(void) +{ + return true; +} + +static bool is_fw_header(struct rtl92c_firmware_header *hdr) +{ + return (hdr->signature & 0xfff0) == 0x5300; +} + +static struct rtl_hal_ops rtl8723be_hal_ops = { + .init_sw_vars = rtl8723be_init_sw_vars, + .deinit_sw_vars = rtl8723be_deinit_sw_vars, + .read_eeprom_info = rtl8723be_read_eeprom_info, + .interrupt_recognized = rtl8723be_interrupt_recognized, + .hw_init = rtl8723be_hw_init, + .hw_disable = rtl8723be_card_disable, + .hw_suspend = rtl8723be_suspend, + .hw_resume = rtl8723be_resume, + .enable_interrupt = rtl8723be_enable_interrupt, + .disable_interrupt = rtl8723be_disable_interrupt, + .set_network_type = rtl8723be_set_network_type, + .set_chk_bssid = rtl8723be_set_check_bssid, + .set_qos = rtl8723be_set_qos, + .set_bcn_reg = rtl8723be_set_beacon_related_registers, + .set_bcn_intv = rtl8723be_set_beacon_interval, + .update_interrupt_mask = rtl8723be_update_interrupt_mask, + .get_hw_reg = rtl8723be_get_hw_reg, + .set_hw_reg = rtl8723be_set_hw_reg, + .update_rate_tbl = rtl8723be_update_hal_rate_tbl, + .fill_tx_desc = rtl8723be_tx_fill_desc, + .fill_tx_cmddesc = rtl8723be_tx_fill_cmddesc, + .query_rx_desc = rtl8723be_rx_query_desc, + .set_channel_access = rtl8723be_update_channel_access_setting, + .radio_onoff_checking = rtl8723be_gpio_radio_on_off_checking, + .set_bw_mode = rtl8723be_phy_set_bw_mode, + .switch_channel = rtl8723be_phy_sw_chnl, + .dm_watchdog = rtl8723be_dm_watchdog, + .scan_operation_backup = rtl8723be_phy_scan_operation_backup, + .set_rf_power_state = rtl8723be_phy_set_rf_power_state, + .led_control = rtl8723be_led_control, + .set_desc = rtl8723be_set_desc, + .get_desc = rtl8723be_get_desc, + .is_tx_desc_closed = rtl8723be_is_tx_desc_closed, + .tx_polling = rtl8723be_tx_polling, + .enable_hw_sec = rtl8723be_enable_hw_security_config, + .set_key = rtl8723be_set_key, + .init_sw_leds = rtl8723be_init_sw_leds, + .allow_all_destaddr = rtl8723be_allow_all_destaddr, + .get_bbreg = rtl8723_phy_query_bb_reg, + .set_bbreg = rtl8723_phy_set_bb_reg, + .get_rfreg = rtl8723be_phy_query_rf_reg, + .set_rfreg = rtl8723be_phy_set_rf_reg, + .fill_h2c_cmd = rtl8723be_fill_h2c_cmd, + .get_btc_status = rtl8723be_get_btc_status, + .is_fw_header = is_fw_header, +}; + +static struct rtl_mod_params rtl8723be_mod_params = { + .sw_crypto = false, + .inactiveps = true, + .swctrl_lps = false, + .fwctrl_lps = true, + .msi_support = false, + .debug = DBG_EMERG, +}; + +static struct rtl_hal_cfg rtl8723be_hal_cfg = { + .bar_id = 2, + .write_readback = true, + .name = "rtl8723be_pci", + .fw_name = "rtlwifi/rtl8723befw.bin", + .ops = &rtl8723be_hal_ops, + .mod_params = &rtl8723be_mod_params, + .maps[SYS_ISO_CTRL] = REG_SYS_ISO_CTRL, + .maps[SYS_FUNC_EN] = REG_SYS_FUNC_EN, + .maps[SYS_CLK] = REG_SYS_CLKR, + .maps[MAC_RCR_AM] = AM, + .maps[MAC_RCR_AB] = AB, + .maps[MAC_RCR_ACRC32] = ACRC32, + .maps[MAC_RCR_ACF] = ACF, + .maps[MAC_RCR_AAP] = AAP, + + .maps[EFUSE_ACCESS] = REG_EFUSE_ACCESS, + + .maps[EFUSE_TEST] = REG_EFUSE_TEST, + .maps[EFUSE_CTRL] = REG_EFUSE_CTRL, + .maps[EFUSE_CLK] = 0, + .maps[EFUSE_CLK_CTRL] = REG_EFUSE_CTRL, + .maps[EFUSE_PWC_EV12V] = PWC_EV12V, + .maps[EFUSE_FEN_ELDR] = FEN_ELDR, + .maps[EFUSE_LOADER_CLK_EN] = LOADER_CLK_EN, + .maps[EFUSE_ANA8M] = ANA8M, + .maps[EFUSE_HWSET_MAX_SIZE] = HWSET_MAX_SIZE, + .maps[EFUSE_MAX_SECTION_MAP] = EFUSE_MAX_SECTION, + .maps[EFUSE_REAL_CONTENT_SIZE] = EFUSE_REAL_CONTENT_LEN, + .maps[EFUSE_OOB_PROTECT_BYTES_LEN] = EFUSE_OOB_PROTECT_BYTES, + + .maps[RWCAM] = REG_CAMCMD, + .maps[WCAMI] = REG_CAMWRITE, + .maps[RCAMO] = REG_CAMREAD, + .maps[CAMDBG] = REG_CAMDBG, + .maps[SECR] = REG_SECCFG, + .maps[SEC_CAM_NONE] = CAM_NONE, + .maps[SEC_CAM_WEP40] = CAM_WEP40, + .maps[SEC_CAM_TKIP] = CAM_TKIP, + .maps[SEC_CAM_AES] = CAM_AES, + .maps[SEC_CAM_WEP104] = CAM_WEP104, + + .maps[RTL_IMR_BCNDMAINT6] = IMR_BCNDMAINT6, + .maps[RTL_IMR_BCNDMAINT5] = IMR_BCNDMAINT5, + .maps[RTL_IMR_BCNDMAINT4] = IMR_BCNDMAINT4, + .maps[RTL_IMR_BCNDMAINT3] = IMR_BCNDMAINT3, + .maps[RTL_IMR_BCNDMAINT2] = IMR_BCNDMAINT2, + .maps[RTL_IMR_BCNDMAINT1] = IMR_BCNDMAINT1, + .maps[RTL_IMR_BCNDOK7] = IMR_BCNDOK7, + .maps[RTL_IMR_BCNDOK6] = IMR_BCNDOK6, + .maps[RTL_IMR_BCNDOK5] = IMR_BCNDOK5, + .maps[RTL_IMR_BCNDOK4] = IMR_BCNDOK4, + .maps[RTL_IMR_BCNDOK3] = IMR_BCNDOK3, + .maps[RTL_IMR_BCNDOK2] = IMR_BCNDOK2, + .maps[RTL_IMR_BCNDOK1] = IMR_BCNDOK1, + + .maps[RTL_IMR_TXFOVW] = IMR_TXFOVW, + .maps[RTL_IMR_PSTIMEOUT] = IMR_PSTIMEOUT, + .maps[RTL_IMR_BCNINT] = IMR_BCNDMAINT0, + .maps[RTL_IMR_RXFOVW] = IMR_RXFOVW, + .maps[RTL_IMR_RDU] = IMR_RDU, + .maps[RTL_IMR_ATIMEND] = IMR_ATIMEND, + .maps[RTL_IMR_BDOK] = IMR_BCNDOK0, + .maps[RTL_IMR_MGNTDOK] = IMR_MGNTDOK, + .maps[RTL_IMR_TBDER] = IMR_TBDER, + .maps[RTL_IMR_HIGHDOK] = IMR_HIGHDOK, + .maps[RTL_IMR_TBDOK] = IMR_TBDOK, + .maps[RTL_IMR_BKDOK] = IMR_BKDOK, + .maps[RTL_IMR_BEDOK] = IMR_BEDOK, + .maps[RTL_IMR_VIDOK] = IMR_VIDOK, + .maps[RTL_IMR_VODOK] = IMR_VODOK, + .maps[RTL_IMR_ROK] = IMR_ROK, + .maps[RTL_IBSS_INT_MASKS] = (IMR_BCNDMAINT0 | IMR_TBDOK | IMR_TBDER), + + .maps[RTL_RC_CCK_RATE1M] = DESC92C_RATE1M, + .maps[RTL_RC_CCK_RATE2M] = DESC92C_RATE2M, + .maps[RTL_RC_CCK_RATE5_5M] = DESC92C_RATE5_5M, + .maps[RTL_RC_CCK_RATE11M] = DESC92C_RATE11M, + .maps[RTL_RC_OFDM_RATE6M] = DESC92C_RATE6M, + .maps[RTL_RC_OFDM_RATE9M] = DESC92C_RATE9M, + .maps[RTL_RC_OFDM_RATE12M] = DESC92C_RATE12M, + .maps[RTL_RC_OFDM_RATE18M] = DESC92C_RATE18M, + .maps[RTL_RC_OFDM_RATE24M] = DESC92C_RATE24M, + .maps[RTL_RC_OFDM_RATE36M] = DESC92C_RATE36M, + .maps[RTL_RC_OFDM_RATE48M] = DESC92C_RATE48M, + .maps[RTL_RC_OFDM_RATE54M] = DESC92C_RATE54M, + + .maps[RTL_RC_HT_RATEMCS7] = DESC92C_RATEMCS7, + .maps[RTL_RC_HT_RATEMCS15] = DESC92C_RATEMCS15, +}; + +static DEFINE_PCI_DEVICE_TABLE(rtl8723be_pci_id) = { + {RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0xb723, rtl8723be_hal_cfg)}, + {}, +}; + +MODULE_DEVICE_TABLE(pci, rtl8723be_pci_id); + +MODULE_AUTHOR("PageHe "); +MODULE_AUTHOR("Realtek WlanFAE "); +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Realtek 8723BE 802.11n PCI wireless"); +MODULE_FIRMWARE("rtlwifi/rtl8723befw.bin"); + +module_param_named(swenc, rtl8723be_mod_params.sw_crypto, bool, 0444); +module_param_named(debug, rtl8723be_mod_params.debug, int, 0444); +module_param_named(ips, rtl8723be_mod_params.inactiveps, bool, 0444); +module_param_named(swlps, rtl8723be_mod_params.swctrl_lps, bool, 0444); +module_param_named(fwlps, rtl8723be_mod_params.fwctrl_lps, bool, 0444); +module_param_named(msi, rtl8723be_mod_params.msi_support, bool, 0444); +MODULE_PARM_DESC(swenc, "using hardware crypto (default 0 [hardware])\n"); +MODULE_PARM_DESC(ips, "using no link power save (default 1 is open)\n"); +MODULE_PARM_DESC(fwlps, "using linked fw control power save (default 1 is open)\n"); +MODULE_PARM_DESC(msi, "Set to 1 to use MSI interrupts mode (default 0)\n"); +MODULE_PARM_DESC(debug, "Set debug level (0-5) (default 0)"); + +static const SIMPLE_DEV_PM_OPS(rtlwifi_pm_ops, rtl_pci_suspend, rtl_pci_resume); + +static struct pci_driver rtl8723be_driver = { + .name = KBUILD_MODNAME, + .id_table = rtl8723be_pci_id, + .probe = rtl_pci_probe, + .remove = rtl_pci_disconnect, + + .driver.pm = &rtlwifi_pm_ops, +}; + +module_pci_driver(rtl8723be_driver); --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/sw.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/sw.h @@ -0,0 +1,35 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8723BE_SW_H__ +#define __RTL8723BE_SW_H__ + +int rtl8723be_init_sw_vars(struct ieee80211_hw *hw); +void rtl8723be_deinit_sw_vars(struct ieee80211_hw *hw); +void rtl8723be_init_var_map(struct ieee80211_hw *hw); +bool rtl8723be_get_btc_status(void); + + +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/table.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/table.c @@ -0,0 +1,572 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Created on 2010/ 5/18, 1:41 + * + * Larry Finger + * + *****************************************************************************/ + +#include "table.h" +u32 RTL8723BEPHY_REG_1TARRAY[] = { + 0x800, 0x80040000, + 0x804, 0x00000003, + 0x808, 0x0000FC00, + 0x80C, 0x0000000A, + 0x810, 0x10001331, + 0x814, 0x020C3D10, + 0x818, 0x02200385, + 0x81C, 0x00000000, + 0x820, 0x01000100, + 0x824, 0x00390204, + 0x828, 0x00000000, + 0x82C, 0x00000000, + 0x830, 0x00000000, + 0x834, 0x00000000, + 0x838, 0x00000000, + 0x83C, 0x00000000, + 0x840, 0x00010000, + 0x844, 0x00000000, + 0x848, 0x00000000, + 0x84C, 0x00000000, + 0x850, 0x00000000, + 0x854, 0x00000000, + 0x858, 0x569A11A9, + 0x85C, 0x01000014, + 0x860, 0x66F60110, + 0x864, 0x061F0649, + 0x868, 0x00000000, + 0x86C, 0x27272700, + 0x870, 0x07000760, + 0x874, 0x25004000, + 0x878, 0x00000808, + 0x87C, 0x00000000, + 0x880, 0xB0000C1C, + 0x884, 0x00000001, + 0x888, 0x00000000, + 0x88C, 0xCCC000C0, + 0x890, 0x00000800, + 0x894, 0xFFFFFFFE, + 0x898, 0x40302010, + 0x89C, 0x00706050, + 0x900, 0x00000000, + 0x904, 0x00000023, + 0x908, 0x00000000, + 0x90C, 0x81121111, + 0x910, 0x00000002, + 0x914, 0x00000201, + 0x948, 0x00000000, + 0xA00, 0x00D047C8, + 0xA04, 0x80FF000C, + 0xA08, 0x8C838300, + 0xA0C, 0x2E7F120F, + 0xA10, 0x9500BB78, + 0xA14, 0x1114D028, + 0xA18, 0x00881117, + 0xA1C, 0x89140F00, + 0xA20, 0x1A1B0000, + 0xA24, 0x090E1317, + 0xA28, 0x00000204, + 0xA2C, 0x00D30000, + 0xA70, 0x101FBF00, + 0xA74, 0x00000007, + 0xA78, 0x00000900, + 0xA7C, 0x225B0606, + 0xA80, 0x21806490, + 0xB2C, 0x00000000, + 0xC00, 0x48071D40, + 0xC04, 0x03A05611, + 0xC08, 0x000000E4, + 0xC0C, 0x6C6C6C6C, + 0xC10, 0x08800000, + 0xC14, 0x40000100, + 0xC18, 0x08800000, + 0xC1C, 0x40000100, + 0xC20, 0x00000000, + 0xC24, 0x00000000, + 0xC28, 0x00000000, + 0xC2C, 0x00000000, + 0xC30, 0x69E9AC44, + 0xC34, 0x469652AF, + 0xC38, 0x49795994, + 0xC3C, 0x0A97971C, + 0xC40, 0x1F7C403F, + 0xC44, 0x000100B7, + 0xC48, 0xEC020107, + 0xC4C, 0x007F037F, + 0xC50, 0x69553420, + 0xC54, 0x43BC0094, + 0xC58, 0x00023169, + 0xC5C, 0x00250492, + 0xC60, 0x00000000, + 0xC64, 0x7112848B, + 0xC68, 0x47C00BFF, + 0xC6C, 0x00000036, + 0xC70, 0x2C7F000D, + 0xC74, 0x020610DB, + 0xC78, 0x0000001F, + 0xC7C, 0x00B91612, + 0xC80, 0x390000E4, + 0xC84, 0x20F60000, + 0xC88, 0x40000100, + 0xC8C, 0x20200000, + 0xC90, 0x00020E1A, + 0xC94, 0x00000000, + 0xC98, 0x00020E1A, + 0xC9C, 0x00007F7F, + 0xCA0, 0x00000000, + 0xCA4, 0x000300A0, + 0xCA8, 0x00000000, + 0xCAC, 0x00000000, + 0xCB0, 0x00000000, + 0xCB4, 0x00000000, + 0xCB8, 0x00000000, + 0xCBC, 0x28000000, + 0xCC0, 0x00000000, + 0xCC4, 0x00000000, + 0xCC8, 0x00000000, + 0xCCC, 0x00000000, + 0xCD0, 0x00000000, + 0xCD4, 0x00000000, + 0xCD8, 0x64B22427, + 0xCDC, 0x00766932, + 0xCE0, 0x00222222, + 0xCE4, 0x00000000, + 0xCE8, 0x37644302, + 0xCEC, 0x2F97D40C, + 0xD00, 0x00000740, + 0xD04, 0x40020401, + 0xD08, 0x0000907F, + 0xD0C, 0x20010201, + 0xD10, 0xA0633333, + 0xD14, 0x3333BC53, + 0xD18, 0x7A8F5B6F, + 0xD2C, 0xCC979975, + 0xD30, 0x00000000, + 0xD34, 0x80608000, + 0xD38, 0x00000000, + 0xD3C, 0x00127353, + 0xD40, 0x00000000, + 0xD44, 0x00000000, + 0xD48, 0x00000000, + 0xD4C, 0x00000000, + 0xD50, 0x6437140A, + 0xD54, 0x00000000, + 0xD58, 0x00000282, + 0xD5C, 0x30032064, + 0xD60, 0x4653DE68, + 0xD64, 0x04518A3C, + 0xD68, 0x00002101, + 0xD6C, 0x2A201C16, + 0xD70, 0x1812362E, + 0xD74, 0x322C2220, + 0xD78, 0x000E3C24, + 0xE00, 0x2D2D2D2D, + 0xE04, 0x2D2D2D2D, + 0xE08, 0x0390272D, + 0xE10, 0x2D2D2D2D, + 0xE14, 0x2D2D2D2D, + 0xE18, 0x2D2D2D2D, + 0xE1C, 0x2D2D2D2D, + 0xE28, 0x00000000, + 0xE30, 0x1000DC1F, + 0xE34, 0x10008C1F, + 0xE38, 0x02140102, + 0xE3C, 0x681604C2, + 0xE40, 0x01007C00, + 0xE44, 0x01004800, + 0xE48, 0xFB000000, + 0xE4C, 0x000028D1, + 0xE50, 0x1000DC1F, + 0xE54, 0x10008C1F, + 0xE58, 0x02140102, + 0xE5C, 0x28160D05, + 0xE60, 0x00000008, + 0xE68, 0x001B2556, + 0xE6C, 0x00C00096, + 0xE70, 0x00C00096, + 0xE74, 0x01000056, + 0xE78, 0x01000014, + 0xE7C, 0x01000056, + 0xE80, 0x01000014, + 0xE84, 0x00C00096, + 0xE88, 0x01000056, + 0xE8C, 0x00C00096, + 0xED0, 0x00C00096, + 0xED4, 0x00C00096, + 0xED8, 0x00C00096, + 0xEDC, 0x000000D6, + 0xEE0, 0x000000D6, + 0xEEC, 0x01C00016, + 0xF14, 0x00000003, + 0xF4C, 0x00000000, + 0xF00, 0x00000300, + 0x820, 0x01000100, + 0x800, 0x83040000, +}; + +u32 RTL8723BEPHY_REG_ARRAY_PG[] = { + 0, 0, 0, 0x00000e08, 0x0000ff00, 0x00004000, + 0, 0, 0, 0x0000086c, 0xffffff00, 0x34363800, + 0, 0, 0, 0x00000e00, 0xffffffff, 0x42444646, + 0, 0, 0, 0x00000e04, 0xffffffff, 0x30343840, + 0, 0, 0, 0x00000e10, 0xffffffff, 0x38404244, + 0, 0, 0, 0x00000e14, 0xffffffff, 0x26303436 +}; + +u32 RTL8723BE_RADIOA_1TARRAY[] = { + 0x000, 0x00010000, + 0x0B0, 0x000DFFE0, + 0x0FE, 0x00000000, + 0x0FE, 0x00000000, + 0x0FE, 0x00000000, + 0x0B1, 0x00000018, + 0x0FE, 0x00000000, + 0x0FE, 0x00000000, + 0x0FE, 0x00000000, + 0x0B2, 0x00084C00, + 0x0B5, 0x0000D2CC, + 0x0B6, 0x000925AA, + 0x0B7, 0x00000010, + 0x0B8, 0x0000907F, + 0x05C, 0x00000002, + 0x07C, 0x00000002, + 0x07E, 0x00000005, + 0x08B, 0x0006FC00, + 0x0B0, 0x000FF9F0, + 0x01C, 0x000739D2, + 0x01E, 0x00000000, + 0x0DF, 0x00000780, + 0x050, 0x00067435, + 0x051, 0x0006B04E, + 0x052, 0x000007D2, + 0x053, 0x00000000, + 0x054, 0x00050400, + 0x055, 0x0004026E, + 0x0DD, 0x0000004C, + 0x070, 0x00067435, + 0x071, 0x0006B04E, + 0x072, 0x000007D2, + 0x073, 0x00000000, + 0x074, 0x00050400, + 0x075, 0x0004026E, + 0x0EF, 0x00000100, + 0x034, 0x0000ADD7, + 0x035, 0x00005C00, + 0x034, 0x00009DD4, + 0x035, 0x00005000, + 0x034, 0x00008DD1, + 0x035, 0x00004400, + 0x034, 0x00007DCE, + 0x035, 0x00003800, + 0x034, 0x00006CD1, + 0x035, 0x00004400, + 0x034, 0x00005CCE, + 0x035, 0x00003800, + 0x034, 0x000048CE, + 0x035, 0x00004400, + 0x034, 0x000034CE, + 0x035, 0x00003800, + 0x034, 0x00002451, + 0x035, 0x00004400, + 0x034, 0x0000144E, + 0x035, 0x00003800, + 0x034, 0x00000051, + 0x035, 0x00004400, + 0x0EF, 0x00000000, + 0x0EF, 0x00000100, + 0x0ED, 0x00000010, + 0x044, 0x0000ADD7, + 0x044, 0x00009DD4, + 0x044, 0x00008DD1, + 0x044, 0x00007DCE, + 0x044, 0x00006CC1, + 0x044, 0x00005CCE, + 0x044, 0x000044D1, + 0x044, 0x000034CE, + 0x044, 0x00002451, + 0x044, 0x0000144E, + 0x044, 0x00000051, + 0x0EF, 0x00000000, + 0x0ED, 0x00000000, + 0x0EF, 0x00002000, + 0x03B, 0x000380EF, + 0x03B, 0x000302FE, + 0x03B, 0x00028CE6, + 0x03B, 0x000200BC, + 0x03B, 0x000188A5, + 0x03B, 0x00010FBC, + 0x03B, 0x00008F71, + 0x03B, 0x00000900, + 0x0EF, 0x00000000, + 0x0ED, 0x00000001, + 0x040, 0x000380EF, + 0x040, 0x000302FE, + 0x040, 0x00028CE6, + 0x040, 0x000200BC, + 0x040, 0x000188A5, + 0x040, 0x00010FBC, + 0x040, 0x00008F71, + 0x040, 0x00000900, + 0x0ED, 0x00000000, + 0x082, 0x00080000, + 0x083, 0x00008000, + 0x084, 0x00048D80, + 0x085, 0x00068000, + 0x0A2, 0x00080000, + 0x0A3, 0x00008000, + 0x0A4, 0x00048D80, + 0x0A5, 0x00068000, + 0x000, 0x00033D80, +}; + +u32 RTL8723BEMAC_1T_ARRAY[] = { + 0x02F, 0x00000030, + 0x035, 0x00000000, + 0x428, 0x0000000A, + 0x429, 0x00000010, + 0x430, 0x00000000, + 0x431, 0x00000000, + 0x432, 0x00000000, + 0x433, 0x00000001, + 0x434, 0x00000004, + 0x435, 0x00000005, + 0x436, 0x00000007, + 0x437, 0x00000008, + 0x43C, 0x00000004, + 0x43D, 0x00000005, + 0x43E, 0x00000007, + 0x43F, 0x00000008, + 0x440, 0x0000005D, + 0x441, 0x00000001, + 0x442, 0x00000000, + 0x444, 0x00000010, + 0x445, 0x00000000, + 0x446, 0x00000000, + 0x447, 0x00000000, + 0x448, 0x00000000, + 0x449, 0x000000F0, + 0x44A, 0x0000000F, + 0x44B, 0x0000003E, + 0x44C, 0x00000010, + 0x44D, 0x00000000, + 0x44E, 0x00000000, + 0x44F, 0x00000000, + 0x450, 0x00000000, + 0x451, 0x000000F0, + 0x452, 0x0000000F, + 0x453, 0x00000000, + 0x456, 0x0000005E, + 0x460, 0x00000066, + 0x461, 0x00000066, + 0x4C8, 0x000000FF, + 0x4C9, 0x00000008, + 0x4CC, 0x000000FF, + 0x4CD, 0x000000FF, + 0x4CE, 0x00000001, + 0x500, 0x00000026, + 0x501, 0x000000A2, + 0x502, 0x0000002F, + 0x503, 0x00000000, + 0x504, 0x00000028, + 0x505, 0x000000A3, + 0x506, 0x0000005E, + 0x507, 0x00000000, + 0x508, 0x0000002B, + 0x509, 0x000000A4, + 0x50A, 0x0000005E, + 0x50B, 0x00000000, + 0x50C, 0x0000004F, + 0x50D, 0x000000A4, + 0x50E, 0x00000000, + 0x50F, 0x00000000, + 0x512, 0x0000001C, + 0x514, 0x0000000A, + 0x516, 0x0000000A, + 0x525, 0x0000004F, + 0x550, 0x00000010, + 0x551, 0x00000010, + 0x559, 0x00000002, + 0x55C, 0x00000050, + 0x55D, 0x000000FF, + 0x605, 0x00000030, + 0x608, 0x0000000E, + 0x609, 0x0000002A, + 0x620, 0x000000FF, + 0x621, 0x000000FF, + 0x622, 0x000000FF, + 0x623, 0x000000FF, + 0x624, 0x000000FF, + 0x625, 0x000000FF, + 0x626, 0x000000FF, + 0x627, 0x000000FF, + 0x638, 0x00000050, + 0x63C, 0x0000000A, + 0x63D, 0x0000000A, + 0x63E, 0x0000000E, + 0x63F, 0x0000000E, + 0x640, 0x00000040, + 0x642, 0x00000040, + 0x643, 0x00000000, + 0x652, 0x000000C8, + 0x66E, 0x00000005, + 0x700, 0x00000021, + 0x701, 0x00000043, + 0x702, 0x00000065, + 0x703, 0x00000087, + 0x708, 0x00000021, + 0x709, 0x00000043, + 0x70A, 0x00000065, + 0x70B, 0x00000087, +}; + +u32 RTL8723BEAGCTAB_1TARRAY[] = { + 0xC78, 0xFD000001, + 0xC78, 0xFC010001, + 0xC78, 0xFB020001, + 0xC78, 0xFA030001, + 0xC78, 0xF9040001, + 0xC78, 0xF8050001, + 0xC78, 0xF7060001, + 0xC78, 0xF6070001, + 0xC78, 0xF5080001, + 0xC78, 0xF4090001, + 0xC78, 0xF30A0001, + 0xC78, 0xF20B0001, + 0xC78, 0xF10C0001, + 0xC78, 0xF00D0001, + 0xC78, 0xEF0E0001, + 0xC78, 0xEE0F0001, + 0xC78, 0xED100001, + 0xC78, 0xEC110001, + 0xC78, 0xEB120001, + 0xC78, 0xEA130001, + 0xC78, 0xE9140001, + 0xC78, 0xE8150001, + 0xC78, 0xE7160001, + 0xC78, 0xAA170001, + 0xC78, 0xA9180001, + 0xC78, 0xA8190001, + 0xC78, 0xA71A0001, + 0xC78, 0xA61B0001, + 0xC78, 0xA51C0001, + 0xC78, 0xA41D0001, + 0xC78, 0xA31E0001, + 0xC78, 0x671F0001, + 0xC78, 0x66200001, + 0xC78, 0x65210001, + 0xC78, 0x64220001, + 0xC78, 0x63230001, + 0xC78, 0x62240001, + 0xC78, 0x61250001, + 0xC78, 0x47260001, + 0xC78, 0x46270001, + 0xC78, 0x45280001, + 0xC78, 0x44290001, + 0xC78, 0x432A0001, + 0xC78, 0x422B0001, + 0xC78, 0x292C0001, + 0xC78, 0x282D0001, + 0xC78, 0x272E0001, + 0xC78, 0x262F0001, + 0xC78, 0x25300001, + 0xC78, 0x24310001, + 0xC78, 0x09320001, + 0xC78, 0x08330001, + 0xC78, 0x07340001, + 0xC78, 0x06350001, + 0xC78, 0x05360001, + 0xC78, 0x04370001, + 0xC78, 0x03380001, + 0xC78, 0x02390001, + 0xC78, 0x013A0001, + 0xC78, 0x003B0001, + 0xC78, 0x003C0001, + 0xC78, 0x003D0001, + 0xC78, 0x003E0001, + 0xC78, 0x003F0001, + 0xC78, 0xFC400001, + 0xC78, 0xFB410001, + 0xC78, 0xFA420001, + 0xC78, 0xF9430001, + 0xC78, 0xF8440001, + 0xC78, 0xF7450001, + 0xC78, 0xF6460001, + 0xC78, 0xF5470001, + 0xC78, 0xF4480001, + 0xC78, 0xF3490001, + 0xC78, 0xF24A0001, + 0xC78, 0xF14B0001, + 0xC78, 0xF04C0001, + 0xC78, 0xEF4D0001, + 0xC78, 0xEE4E0001, + 0xC78, 0xED4F0001, + 0xC78, 0xEC500001, + 0xC78, 0xEB510001, + 0xC78, 0xEA520001, + 0xC78, 0xE9530001, + 0xC78, 0xE8540001, + 0xC78, 0xE7550001, + 0xC78, 0xE6560001, + 0xC78, 0xE5570001, + 0xC78, 0xAA580001, + 0xC78, 0xA9590001, + 0xC78, 0xA85A0001, + 0xC78, 0xA75B0001, + 0xC78, 0xA65C0001, + 0xC78, 0xA55D0001, + 0xC78, 0xA45E0001, + 0xC78, 0x675F0001, + 0xC78, 0x66600001, + 0xC78, 0x65610001, + 0xC78, 0x64620001, + 0xC78, 0x63630001, + 0xC78, 0x62640001, + 0xC78, 0x61650001, + 0xC78, 0x47660001, + 0xC78, 0x46670001, + 0xC78, 0x45680001, + 0xC78, 0x44690001, + 0xC78, 0x436A0001, + 0xC78, 0x426B0001, + 0xC78, 0x296C0001, + 0xC78, 0x286D0001, + 0xC78, 0x276E0001, + 0xC78, 0x266F0001, + 0xC78, 0x25700001, + 0xC78, 0x24710001, + 0xC78, 0x09720001, + 0xC78, 0x08730001, + 0xC78, 0x07740001, + 0xC78, 0x06750001, + 0xC78, 0x05760001, + 0xC78, 0x04770001, + 0xC78, 0x03780001, + 0xC78, 0x02790001, + 0xC78, 0x017A0001, + 0xC78, 0x007B0001, + 0xC78, 0x007C0001, + 0xC78, 0x007D0001, + 0xC78, 0x007E0001, + 0xC78, 0x007F0001, + 0xC50, 0x69553422, + 0xC50, 0x69553420, +}; --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/table.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/table.h @@ -0,0 +1,43 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Created on 2010/ 5/18, 1:41 + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8723BE_TABLE__H_ +#define __RTL8723BE_TABLE__H_ + +#include +#define RTL8723BEPHY_REG_1TARRAYLEN 388 +extern u32 RTL8723BEPHY_REG_1TARRAY[]; +#define RTL8723BEPHY_REG_ARRAY_PGLEN 36 +extern u32 RTL8723BEPHY_REG_ARRAY_PG[]; +#define RTL8723BE_RADIOA_1TARRAYLEN 206 +extern u32 RTL8723BE_RADIOA_1TARRAY[]; +#define RTL8723BEMAC_1T_ARRAYLEN 194 +extern u32 RTL8723BEMAC_1T_ARRAY[]; +#define RTL8723BEAGCTAB_1TARRAYLEN 260 +extern u32 RTL8723BEAGCTAB_1TARRAY[]; + +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/trx.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/trx.c @@ -0,0 +1,959 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "../pci.h" +#include "../base.h" +#include "../stats.h" +#include "reg.h" +#include "def.h" +#include "phy.h" +#include "trx.h" +#include "led.h" +#include "dm.h" +#include "phy.h" + +static u8 _rtl8723be_map_hwqueue_to_fwqueue(struct sk_buff *skb, u8 hw_queue) +{ + __le16 fc = rtl_get_fc(skb); + + if (unlikely(ieee80211_is_beacon(fc))) + return QSLT_BEACON; + if (ieee80211_is_mgmt(fc) || ieee80211_is_ctl(fc)) + return QSLT_MGNT; + + return skb->priority; +} + +/* mac80211's rate_idx is like this: + * + * 2.4G band:rx_status->band == IEEE80211_BAND_2GHZ + * + * B/G rate: + * (rx_status->flag & RX_FLAG_HT) = 0, + * DESC92C_RATE1M-->DESC92C_RATE54M ==> idx is 0-->11, + * + * N rate: + * (rx_status->flag & RX_FLAG_HT) = 1, + * DESC92C_RATEMCS0-->DESC92C_RATEMCS15 ==> idx is 0-->15 + * + * 5G band:rx_status->band == IEEE80211_BAND_5GHZ + * A rate: + * (rx_status->flag & RX_FLAG_HT) = 0, + * DESC92C_RATE6M-->DESC92C_RATE54M ==> idx is 0-->7, + * + * N rate: + * (rx_status->flag & RX_FLAG_HT) = 1, + * DESC92C_RATEMCS0-->DESC92C_RATEMCS15 ==> idx is 0-->15 + */ +static int _rtl8723be_rate_mapping(struct ieee80211_hw *hw, + bool isht, u8 desc_rate) +{ + int rate_idx; + + if (!isht) { + if (IEEE80211_BAND_2GHZ == hw->conf.chandef.chan->band) { + switch (desc_rate) { + case DESC92C_RATE1M: + rate_idx = 0; + break; + case DESC92C_RATE2M: + rate_idx = 1; + break; + case DESC92C_RATE5_5M: + rate_idx = 2; + break; + case DESC92C_RATE11M: + rate_idx = 3; + break; + case DESC92C_RATE6M: + rate_idx = 4; + break; + case DESC92C_RATE9M: + rate_idx = 5; + break; + case DESC92C_RATE12M: + rate_idx = 6; + break; + case DESC92C_RATE18M: + rate_idx = 7; + break; + case DESC92C_RATE24M: + rate_idx = 8; + break; + case DESC92C_RATE36M: + rate_idx = 9; + break; + case DESC92C_RATE48M: + rate_idx = 10; + break; + case DESC92C_RATE54M: + rate_idx = 11; + break; + default: + rate_idx = 0; + break; + } + } else { + switch (desc_rate) { + case DESC92C_RATE6M: + rate_idx = 0; + break; + case DESC92C_RATE9M: + rate_idx = 1; + break; + case DESC92C_RATE12M: + rate_idx = 2; + break; + case DESC92C_RATE18M: + rate_idx = 3; + break; + case DESC92C_RATE24M: + rate_idx = 4; + break; + case DESC92C_RATE36M: + rate_idx = 5; + break; + case DESC92C_RATE48M: + rate_idx = 6; + break; + case DESC92C_RATE54M: + rate_idx = 7; + break; + default: + rate_idx = 0; + break; + } + } + } else { + switch (desc_rate) { + case DESC92C_RATEMCS0: + rate_idx = 0; + break; + case DESC92C_RATEMCS1: + rate_idx = 1; + break; + case DESC92C_RATEMCS2: + rate_idx = 2; + break; + case DESC92C_RATEMCS3: + rate_idx = 3; + break; + case DESC92C_RATEMCS4: + rate_idx = 4; + break; + case DESC92C_RATEMCS5: + rate_idx = 5; + break; + case DESC92C_RATEMCS6: + rate_idx = 6; + break; + case DESC92C_RATEMCS7: + rate_idx = 7; + break; + case DESC92C_RATEMCS8: + rate_idx = 8; + break; + case DESC92C_RATEMCS9: + rate_idx = 9; + break; + case DESC92C_RATEMCS10: + rate_idx = 10; + break; + case DESC92C_RATEMCS11: + rate_idx = 11; + break; + case DESC92C_RATEMCS12: + rate_idx = 12; + break; + case DESC92C_RATEMCS13: + rate_idx = 13; + break; + case DESC92C_RATEMCS14: + rate_idx = 14; + break; + case DESC92C_RATEMCS15: + rate_idx = 15; + break; + default: + rate_idx = 0; + break; + } + } + return rate_idx; +} + +static void _rtl8723be_query_rxphystatus(struct ieee80211_hw *hw, + struct rtl_stats *pstatus, u8 *pdesc, + struct rx_fwinfo_8723be *p_drvinfo, + bool packet_match_bssid, + bool packet_toself, + bool packet_beacon) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtlpriv); + struct phy_sts_cck_8723e_t *cck_buf; + struct phy_status_rpt *p_phystrpt = (struct phy_status_rpt *)p_drvinfo; + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + char rx_pwr_all = 0, rx_pwr[4]; + u8 rf_rx_num = 0, evm, pwdb_all; + u8 i, max_spatial_stream; + u32 rssi, total_rssi = 0; + bool is_cck = pstatus->is_cck; + u8 lan_idx, vga_idx; + + /* Record it for next packet processing */ + pstatus->packet_matchbssid = packet_match_bssid; + pstatus->packet_toself = packet_toself; + pstatus->packet_beacon = packet_beacon; + pstatus->rx_mimo_sig_qual[0] = -1; + pstatus->rx_mimo_sig_qual[1] = -1; + + if (is_cck) { + u8 cck_highpwr; + u8 cck_agc_rpt; + /* CCK Driver info Structure is not the same as OFDM packet. */ + cck_buf = (struct phy_sts_cck_8723e_t *)p_drvinfo; + cck_agc_rpt = cck_buf->cck_agc_rpt; + + /* (1)Hardware does not provide RSSI for CCK + * (2)PWDB, Average PWDB cacluated by + * hardware (for rate adaptive) + */ + if (ppsc->rfpwr_state == ERFON) + cck_highpwr = (u8) rtl_get_bbreg(hw, + RFPGA0_XA_HSSIPARAMETER2, + BIT(9)); + else + cck_highpwr = false; + + lan_idx = ((cck_agc_rpt & 0xE0) >> 5); + vga_idx = (cck_agc_rpt & 0x1f); + switch (lan_idx) { + case 7: + if (vga_idx <= 27)/*VGA_idx = 27~2*/ + rx_pwr_all = -100 + 2 * (27 - vga_idx); + else + rx_pwr_all = -100; + break; + case 6:/*VGA_idx = 2~0*/ + rx_pwr_all = -48 + 2 * (2 - vga_idx); + break; + case 5:/*VGA_idx = 7~5*/ + rx_pwr_all = -42 + 2 * (7 - vga_idx); + break; + case 4:/*VGA_idx = 7~4*/ + rx_pwr_all = -36 + 2 * (7 - vga_idx); + break; + case 3:/*VGA_idx = 7~0*/ + rx_pwr_all = -24 + 2 * (7 - vga_idx); + break; + case 2: + if (cck_highpwr)/*VGA_idx = 5~0*/ + rx_pwr_all = -12 + 2 * (5 - vga_idx); + else + rx_pwr_all = -6 + 2 * (5 - vga_idx); + break; + case 1: + rx_pwr_all = 8 - 2 * vga_idx; + break; + case 0: + rx_pwr_all = 14 - 2 * vga_idx; + break; + default: + break; + } + rx_pwr_all += 6; + pwdb_all = rtl_query_rxpwrpercentage(rx_pwr_all); + /* CCK gain is smaller than OFDM/MCS gain, */ + /* so we add gain diff by experiences, + * the val is 6 + */ + pwdb_all += 6; + if (pwdb_all > 100) + pwdb_all = 100; + /* modify the offset to make the same gain index with OFDM. */ + if (pwdb_all > 34 && pwdb_all <= 42) + pwdb_all -= 2; + else if (pwdb_all > 26 && pwdb_all <= 34) + pwdb_all -= 6; + else if (pwdb_all > 14 && pwdb_all <= 26) + pwdb_all -= 8; + else if (pwdb_all > 4 && pwdb_all <= 14) + pwdb_all -= 4; + if (!cck_highpwr) { + if (pwdb_all >= 80) + pwdb_all = ((pwdb_all - 80) << 1) + + ((pwdb_all - 80) >> 1) + 80; + else if ((pwdb_all <= 78) && (pwdb_all >= 20)) + pwdb_all += 3; + if (pwdb_all > 100) + pwdb_all = 100; + } + + pstatus->rx_pwdb_all = pwdb_all; + pstatus->recvsignalpower = rx_pwr_all; + + /* (3) Get Signal Quality (EVM) */ + if (packet_match_bssid) { + u8 sq; + + if (pstatus->rx_pwdb_all > 40) { + sq = 100; + } else { + sq = cck_buf->sq_rpt; + if (sq > 64) + sq = 0; + else if (sq < 20) + sq = 100; + else + sq = ((64 - sq) * 100) / 44; + } + + pstatus->signalquality = sq; + pstatus->rx_mimo_sig_qual[0] = sq; + pstatus->rx_mimo_sig_qual[1] = -1; + } + } else { + rtlpriv->dm.rfpath_rxenable[0] = true; + rtlpriv->dm.rfpath_rxenable[1] = true; + + /* (1)Get RSSI for HT rate */ + for (i = RF90_PATH_A; i < RF6052_MAX_PATH; i++) { + /* we will judge RF RX path now. */ + if (rtlpriv->dm.rfpath_rxenable[i]) + rf_rx_num++; + + rx_pwr[i] = ((p_drvinfo->gain_trsw[i] & 0x3f)*2) - 110; + + /* Translate DBM to percentage. */ + rssi = rtl_query_rxpwrpercentage(rx_pwr[i]); + total_rssi += rssi; + + /* Get Rx snr value in DB */ + rtlpriv->stats.rx_snr_db[i] = + (long)(p_drvinfo->rxsnr[i] / 2); + + /* Record Signal Strength for next packet */ + if (packet_match_bssid) + pstatus->rx_mimo_signalstrength[i] = (u8) rssi; + } + + /* (2)PWDB, Avg cacluated by hardware (for rate adaptive) */ + rx_pwr_all = ((p_drvinfo->pwdb_all >> 1) & 0x7f) - 110; + + pwdb_all = rtl_query_rxpwrpercentage(rx_pwr_all); + pstatus->rx_pwdb_all = pwdb_all; + pstatus->rxpower = rx_pwr_all; + pstatus->recvsignalpower = rx_pwr_all; + + /* (3)EVM of HT rate */ + if (pstatus->is_ht && pstatus->rate >= DESC92C_RATEMCS8 && + pstatus->rate <= DESC92C_RATEMCS15) + max_spatial_stream = 2; + else + max_spatial_stream = 1; + + for (i = 0; i < max_spatial_stream; i++) { + evm = rtl_evm_db_to_percentage(p_drvinfo->rxevm[i]); + + if (packet_match_bssid) { + /* Fill value in RFD, Get the first + * spatial stream only + */ + if (i == 0) + pstatus->signalquality = + (u8) (evm & 0xff); + pstatus->rx_mimo_sig_qual[i] = + (u8) (evm & 0xff); + } + } + if (packet_match_bssid) { + for (i = RF90_PATH_A; i <= RF90_PATH_B; i++) + rtl_priv(hw)->dm.cfo_tail[i] = + (char)p_phystrpt->path_cfotail[i]; + + rtl_priv(hw)->dm.packet_count++; + if (rtl_priv(hw)->dm.packet_count == 0xffffffff) + rtl_priv(hw)->dm.packet_count = 0; + } + } + + /* UI BSS List signal strength(in percentage), + * make it good looking, from 0~100. + */ + if (is_cck) + pstatus->signalstrength = (u8)(rtl_signal_scale_mapping(hw, + pwdb_all)); + else if (rf_rx_num != 0) + pstatus->signalstrength = (u8)(rtl_signal_scale_mapping(hw, + total_rssi /= rf_rx_num)); + /*HW antenna diversity*/ + rtldm->fat_table.antsel_rx_keep_0 = p_phystrpt->ant_sel; + rtldm->fat_table.antsel_rx_keep_1 = p_phystrpt->ant_sel_b; + rtldm->fat_table.antsel_rx_keep_2 = p_phystrpt->antsel_rx_keep_2; +} + +static void _rtl8723be_translate_rx_signal_stuff(struct ieee80211_hw *hw, + struct sk_buff *skb, + struct rtl_stats *pstatus, + u8 *pdesc, + struct rx_fwinfo_8723be *p_drvinfo) +{ + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct ieee80211_hdr *hdr; + u8 *tmp_buf; + u8 *praddr; + u8 *psaddr; + u16 fc, type; + bool packet_matchbssid, packet_toself, packet_beacon; + + tmp_buf = skb->data + pstatus->rx_drvinfo_size + pstatus->rx_bufshift; + + hdr = (struct ieee80211_hdr *)tmp_buf; + fc = le16_to_cpu(hdr->frame_control); + type = WLAN_FC_GET_TYPE(hdr->frame_control); + praddr = hdr->addr1; + psaddr = ieee80211_get_SA(hdr); + memcpy(pstatus->psaddr, psaddr, ETH_ALEN); + + packet_matchbssid = ((IEEE80211_FTYPE_CTL != type) && + (!ether_addr_equal(mac->bssid, (fc & IEEE80211_FCTL_TODS) ? + hdr->addr1 : (fc & IEEE80211_FCTL_FROMDS) ? + hdr->addr2 : hdr->addr3)) && + (!pstatus->hwerror) && + (!pstatus->crc) && (!pstatus->icv)); + + packet_toself = packet_matchbssid && + (!ether_addr_equal(praddr, rtlefuse->dev_addr)); + + /* YP: packet_beacon is not initialized, + * this assignment is neccesary, + * otherwise it counld be true in this case + * the situation is much worse in Kernel 3.10 + */ + if (ieee80211_is_beacon(hdr->frame_control)) + packet_beacon = true; + else + packet_beacon = false; + + if (packet_beacon && packet_matchbssid) + rtl_priv(hw)->dm.dbginfo.num_qry_beacon_pkt++; + + _rtl8723be_query_rxphystatus(hw, pstatus, pdesc, p_drvinfo, + packet_matchbssid, + packet_toself, + packet_beacon); + + rtl_process_phyinfo(hw, tmp_buf, pstatus); +} + +static void _rtl8723be_insert_emcontent(struct rtl_tcb_desc *ptcb_desc, + u8 *virtualaddress) +{ + u32 dwtmp = 0; + memset(virtualaddress, 0, 8); + + SET_EARLYMODE_PKTNUM(virtualaddress, ptcb_desc->empkt_num); + if (ptcb_desc->empkt_num == 1) { + dwtmp = ptcb_desc->empkt_len[0]; + } else { + dwtmp = ptcb_desc->empkt_len[0]; + dwtmp += ((dwtmp % 4) ? (4 - dwtmp % 4) : 0) + 4; + dwtmp += ptcb_desc->empkt_len[1]; + } + SET_EARLYMODE_LEN0(virtualaddress, dwtmp); + + if (ptcb_desc->empkt_num <= 3) { + dwtmp = ptcb_desc->empkt_len[2]; + } else { + dwtmp = ptcb_desc->empkt_len[2]; + dwtmp += ((dwtmp % 4) ? (4 - dwtmp % 4) : 0) + 4; + dwtmp += ptcb_desc->empkt_len[3]; + } + SET_EARLYMODE_LEN1(virtualaddress, dwtmp); + if (ptcb_desc->empkt_num <= 5) { + dwtmp = ptcb_desc->empkt_len[4]; + } else { + dwtmp = ptcb_desc->empkt_len[4]; + dwtmp += ((dwtmp % 4) ? (4 - dwtmp % 4) : 0) + 4; + dwtmp += ptcb_desc->empkt_len[5]; + } + SET_EARLYMODE_LEN2_1(virtualaddress, dwtmp & 0xF); + SET_EARLYMODE_LEN2_2(virtualaddress, dwtmp >> 4); + if (ptcb_desc->empkt_num <= 7) { + dwtmp = ptcb_desc->empkt_len[6]; + } else { + dwtmp = ptcb_desc->empkt_len[6]; + dwtmp += ((dwtmp % 4) ? (4 - dwtmp % 4) : 0) + 4; + dwtmp += ptcb_desc->empkt_len[7]; + } + SET_EARLYMODE_LEN3(virtualaddress, dwtmp); + if (ptcb_desc->empkt_num <= 9) { + dwtmp = ptcb_desc->empkt_len[8]; + } else { + dwtmp = ptcb_desc->empkt_len[8]; + dwtmp += ((dwtmp % 4) ? (4 - dwtmp % 4) : 0) + 4; + dwtmp += ptcb_desc->empkt_len[9]; + } + SET_EARLYMODE_LEN4(virtualaddress, dwtmp); +} + +bool rtl8723be_rx_query_desc(struct ieee80211_hw *hw, + struct rtl_stats *status, + struct ieee80211_rx_status *rx_status, + u8 *pdesc, struct sk_buff *skb) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rx_fwinfo_8723be *p_drvinfo; + struct ieee80211_hdr *hdr; + + u32 phystatus = GET_RX_DESC_PHYST(pdesc); + status->packet_report_type = (u8)GET_RX_STATUS_DESC_RPT_SEL(pdesc); + if (status->packet_report_type == TX_REPORT2) + status->length = (u16) GET_RX_RPT2_DESC_PKT_LEN(pdesc); + else + status->length = (u16) GET_RX_DESC_PKT_LEN(pdesc); + status->rx_drvinfo_size = (u8) GET_RX_DESC_DRV_INFO_SIZE(pdesc) * + RX_DRV_INFO_SIZE_UNIT; + status->rx_bufshift = (u8) (GET_RX_DESC_SHIFT(pdesc) & 0x03); + status->icv = (u16) GET_RX_DESC_ICV(pdesc); + status->crc = (u16) GET_RX_DESC_CRC32(pdesc); + status->hwerror = (status->crc | status->icv); + status->decrypted = !GET_RX_DESC_SWDEC(pdesc); + status->rate = (u8) GET_RX_DESC_RXMCS(pdesc); + status->shortpreamble = (u16) GET_RX_DESC_SPLCP(pdesc); + status->isampdu = (bool) (GET_RX_DESC_PAGGR(pdesc) == 1); + status->isfirst_ampdu = (bool) (GET_RX_DESC_PAGGR(pdesc) == 1); + if (status->packet_report_type == NORMAL_RX) + status->timestamp_low = GET_RX_DESC_TSFL(pdesc); + status->rx_is40Mhzpacket = (bool) GET_RX_DESC_BW(pdesc); + status->is_ht = (bool)GET_RX_DESC_RXHT(pdesc); + + status->is_cck = RTL8723E_RX_HAL_IS_CCK_RATE(status->rate); + + status->macid = GET_RX_DESC_MACID(pdesc); + if (GET_RX_STATUS_DESC_MAGIC_MATCH(pdesc)) + status->wake_match = BIT(2); + else if (GET_RX_STATUS_DESC_MAGIC_MATCH(pdesc)) + status->wake_match = BIT(1); + else if (GET_RX_STATUS_DESC_UNICAST_MATCH(pdesc)) + status->wake_match = BIT(0); + else + status->wake_match = 0; + if (status->wake_match) + RT_TRACE(rtlpriv, COMP_RXDESC, DBG_LOUD, + "GGGGGGGGGGGGGet Wakeup Packet!! WakeMatch=%d\n", + status->wake_match); + rx_status->freq = hw->conf.chandef.chan->center_freq; + rx_status->band = hw->conf.chandef.chan->band; + + + hdr = (struct ieee80211_hdr *)(skb->data + status->rx_drvinfo_size + + status->rx_bufshift); + + if (status->crc) + rx_status->flag |= RX_FLAG_FAILED_FCS_CRC; + + if (status->rx_is40Mhzpacket) + rx_status->flag |= RX_FLAG_40MHZ; + + if (status->is_ht) + rx_status->flag |= RX_FLAG_HT; + + rx_status->flag |= RX_FLAG_MACTIME_START; + + /* hw will set status->decrypted true, if it finds the + * frame is open data frame or mgmt frame. + * So hw will not decryption robust managment frame + * for IEEE80211w but still set status->decrypted + * true, so here we should set it back to undecrypted + * for IEEE80211w frame, and mac80211 sw will help + * to decrypt it + */ + if (status->decrypted) { + if (!hdr) { + WARN_ON_ONCE(true); + pr_err("decrypted is true but hdr NULL in skb %p\n", + rtl_get_hdr(skb)); + return false; + } + + if ((_ieee80211_is_robust_mgmt_frame(hdr)) && + (ieee80211_has_protected(hdr->frame_control))) + rx_status->flag &= ~RX_FLAG_DECRYPTED; + else + rx_status->flag |= RX_FLAG_DECRYPTED; + } + + /* rate_idx: index of data rate into band's + * supported rates or MCS index if HT rates + * are use (RX_FLAG_HT) + * Notice: this is diff with windows define + */ + rx_status->rate_idx = _rtl8723be_rate_mapping(hw, status->is_ht, + status->rate); + + rx_status->mactime = status->timestamp_low; + if (phystatus) { + p_drvinfo = (struct rx_fwinfo_8723be *)(skb->data + + status->rx_bufshift); + + _rtl8723be_translate_rx_signal_stuff(hw, skb, status, + pdesc, p_drvinfo); + } + + /*rx_status->qual = status->signal; */ + rx_status->signal = status->recvsignalpower + 10; + if (status->packet_report_type == TX_REPORT2) { + status->macid_valid_entry[0] = + GET_RX_RPT2_DESC_MACID_VALID_1(pdesc); + status->macid_valid_entry[1] = + GET_RX_RPT2_DESC_MACID_VALID_2(pdesc); + } + return true; +} + +void rtl8723be_tx_fill_desc(struct ieee80211_hw *hw, + struct ieee80211_hdr *hdr, u8 *pdesc_tx, + struct ieee80211_tx_info *info, + struct ieee80211_sta *sta, struct sk_buff *skb, + u8 hw_queue, struct rtl_tcb_desc *ptcb_desc) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + u8 *pdesc = (u8 *)pdesc_tx; + u16 seq_number; + __le16 fc = hdr->frame_control; + unsigned int buf_len = 0; + unsigned int skb_len = skb->len; + u8 fw_qsel = _rtl8723be_map_hwqueue_to_fwqueue(skb, hw_queue); + bool firstseg = ((hdr->seq_ctrl & + cpu_to_le16(IEEE80211_SCTL_FRAG)) == 0); + bool lastseg = ((hdr->frame_control & + cpu_to_le16(IEEE80211_FCTL_MOREFRAGS)) == 0); + dma_addr_t mapping; + u8 bw_40 = 0; + u8 short_gi = 0; + + if (mac->opmode == NL80211_IFTYPE_STATION) { + bw_40 = mac->bw_40; + } else if (mac->opmode == NL80211_IFTYPE_AP || + mac->opmode == NL80211_IFTYPE_ADHOC) { + if (sta) + bw_40 = sta->ht_cap.cap & + IEEE80211_HT_CAP_SUP_WIDTH_20_40; + } + seq_number = (le16_to_cpu(hdr->seq_ctrl) & IEEE80211_SCTL_SEQ) >> 4; + rtl_get_tcb_desc(hw, info, sta, skb, ptcb_desc); + /* reserve 8 byte for AMPDU early mode */ + if (rtlhal->earlymode_enable) { + skb_push(skb, EM_HDR_LEN); + memset(skb->data, 0, EM_HDR_LEN); + } + buf_len = skb->len; + mapping = pci_map_single(rtlpci->pdev, skb->data, skb->len, + PCI_DMA_TODEVICE); + if (pci_dma_mapping_error(rtlpci->pdev, mapping)) { + RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, "DMA mapping error"); + return; + } + CLEAR_PCI_TX_DESC_CONTENT(pdesc, sizeof(struct tx_desc_8723be)); + if (ieee80211_is_nullfunc(fc) || ieee80211_is_ctl(fc)) { + firstseg = true; + lastseg = true; + } + if (firstseg) { + if (rtlhal->earlymode_enable) { + SET_TX_DESC_PKT_OFFSET(pdesc, 1); + SET_TX_DESC_OFFSET(pdesc, USB_HWDESC_HEADER_LEN + + EM_HDR_LEN); + if (ptcb_desc->empkt_num) { + RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, + "Insert 8 byte.pTcb->EMPktNum:%d\n", + ptcb_desc->empkt_num); + _rtl8723be_insert_emcontent(ptcb_desc, + (u8 *)(skb->data)); + } + } else { + SET_TX_DESC_OFFSET(pdesc, USB_HWDESC_HEADER_LEN); + } + + /* ptcb_desc->use_driver_rate = true; */ + SET_TX_DESC_TX_RATE(pdesc, ptcb_desc->hw_rate); + if (ptcb_desc->hw_rate > DESC92C_RATEMCS0) + short_gi = (ptcb_desc->use_shortgi) ? 1 : 0; + else + short_gi = (ptcb_desc->use_shortpreamble) ? 1 : 0; + + SET_TX_DESC_DATA_SHORTGI(pdesc, short_gi); + + if (info->flags & IEEE80211_TX_CTL_AMPDU) { + SET_TX_DESC_AGG_ENABLE(pdesc, 1); + SET_TX_DESC_MAX_AGG_NUM(pdesc, 0x14); + } + SET_TX_DESC_SEQ(pdesc, seq_number); + SET_TX_DESC_RTS_ENABLE(pdesc, ((ptcb_desc->rts_enable && + !ptcb_desc->cts_enable) ? + 1 : 0)); + SET_TX_DESC_HW_RTS_ENABLE(pdesc, 0); + SET_TX_DESC_CTS2SELF(pdesc, ((ptcb_desc->cts_enable) ? + 1 : 0)); + + SET_TX_DESC_RTS_RATE(pdesc, ptcb_desc->rts_rate); + + SET_TX_DESC_RTS_SC(pdesc, ptcb_desc->rts_sc); + SET_TX_DESC_RTS_SHORT(pdesc, + ((ptcb_desc->rts_rate <= DESC92C_RATE54M) ? + (ptcb_desc->rts_use_shortpreamble ? 1 : 0) : + (ptcb_desc->rts_use_shortgi ? 1 : 0))); + + if (ptcb_desc->btx_enable_sw_calc_duration) + SET_TX_DESC_NAV_USE_HDR(pdesc, 1); + + if (bw_40) { + if (ptcb_desc->packet_bw) { + SET_TX_DESC_DATA_BW(pdesc, 1); + SET_TX_DESC_TX_SUB_CARRIER(pdesc, 3); + } else { + SET_TX_DESC_DATA_BW(pdesc, 0); + SET_TX_DESC_TX_SUB_CARRIER(pdesc, mac->cur_40_prime_sc); + } + } else { + SET_TX_DESC_DATA_BW(pdesc, 0); + SET_TX_DESC_TX_SUB_CARRIER(pdesc, 0); + } + + SET_TX_DESC_LINIP(pdesc, 0); + SET_TX_DESC_PKT_SIZE(pdesc, (u16) skb_len); + if (sta) { + u8 ampdu_density = sta->ht_cap.ampdu_density; + SET_TX_DESC_AMPDU_DENSITY(pdesc, ampdu_density); + } + if (info->control.hw_key) { + struct ieee80211_key_conf *keyconf = + info->control.hw_key; + switch (keyconf->cipher) { + case WLAN_CIPHER_SUITE_WEP40: + case WLAN_CIPHER_SUITE_WEP104: + case WLAN_CIPHER_SUITE_TKIP: + SET_TX_DESC_SEC_TYPE(pdesc, 0x1); + break; + case WLAN_CIPHER_SUITE_CCMP: + SET_TX_DESC_SEC_TYPE(pdesc, 0x3); + break; + default: + SET_TX_DESC_SEC_TYPE(pdesc, 0x0); + break; + } + } + + SET_TX_DESC_QUEUE_SEL(pdesc, fw_qsel); + SET_TX_DESC_DATA_RATE_FB_LIMIT(pdesc, 0x1F); + SET_TX_DESC_RTS_RATE_FB_LIMIT(pdesc, 0xF); + SET_TX_DESC_DISABLE_FB(pdesc, ptcb_desc->disable_ratefallback ? + 1 : 0); + SET_TX_DESC_USE_RATE(pdesc, ptcb_desc->use_driver_rate ? 1 : 0); + + if (ieee80211_is_data_qos(fc)) { + if (mac->rdg_en) { + RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, + "Enable RDG function.\n"); + SET_TX_DESC_RDG_ENABLE(pdesc, 1); + SET_TX_DESC_HTC(pdesc, 1); + } + } + } + + SET_TX_DESC_FIRST_SEG(pdesc, (firstseg ? 1 : 0)); + SET_TX_DESC_LAST_SEG(pdesc, (lastseg ? 1 : 0)); + SET_TX_DESC_TX_BUFFER_SIZE(pdesc, (u16) buf_len); + SET_TX_DESC_TX_BUFFER_ADDRESS(pdesc, mapping); + SET_TX_DESC_RATE_ID(pdesc, ptcb_desc->ratr_index); + SET_TX_DESC_MACID(pdesc, ptcb_desc->mac_id); + + if (!ieee80211_is_data_qos(fc)) { + SET_TX_DESC_HWSEQ_EN(pdesc, 1); + SET_TX_DESC_HWSEQ_SEL(pdesc, 0); + } + SET_TX_DESC_MORE_FRAG(pdesc, (lastseg ? 0 : 1)); + if (is_multicast_ether_addr(ieee80211_get_DA(hdr)) || + is_broadcast_ether_addr(ieee80211_get_DA(hdr))) { + SET_TX_DESC_BMC(pdesc, 1); + } + RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, "\n"); +} + +void rtl8723be_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc, + bool b_firstseg, bool b_lastseg, + struct sk_buff *skb) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + u8 fw_queue = QSLT_BEACON; + + dma_addr_t mapping = pci_map_single(rtlpci->pdev, + skb->data, skb->len, + PCI_DMA_TODEVICE); + + if (pci_dma_mapping_error(rtlpci->pdev, mapping)) { + RT_TRACE(rtlpriv, COMP_SEND, DBG_TRACE, + "DMA mapping error"); + return; + } + CLEAR_PCI_TX_DESC_CONTENT(pdesc, TX_DESC_SIZE); + + SET_TX_DESC_OFFSET(pdesc, USB_HWDESC_HEADER_LEN); + + SET_TX_DESC_TX_RATE(pdesc, DESC92C_RATE1M); + + SET_TX_DESC_SEQ(pdesc, 0); + + SET_TX_DESC_LINIP(pdesc, 0); + + SET_TX_DESC_QUEUE_SEL(pdesc, fw_queue); + + SET_TX_DESC_FIRST_SEG(pdesc, 1); + SET_TX_DESC_LAST_SEG(pdesc, 1); + + SET_TX_DESC_TX_BUFFER_SIZE(pdesc, (u16)(skb->len)); + + SET_TX_DESC_TX_BUFFER_ADDRESS(pdesc, mapping); + + SET_TX_DESC_RATE_ID(pdesc, 0); + SET_TX_DESC_MACID(pdesc, 0); + + SET_TX_DESC_OWN(pdesc, 1); + + SET_TX_DESC_PKT_SIZE((u8 *)pdesc, (u16)(skb->len)); + + SET_TX_DESC_FIRST_SEG(pdesc, 1); + SET_TX_DESC_LAST_SEG(pdesc, 1); + + SET_TX_DESC_USE_RATE(pdesc, 1); +} + +void rtl8723be_set_desc(u8 *pdesc, bool istx, u8 desc_name, u8 *val) +{ + if (istx) { + switch (desc_name) { + case HW_DESC_OWN: + SET_TX_DESC_OWN(pdesc, 1); + break; + case HW_DESC_TX_NEXTDESC_ADDR: + SET_TX_DESC_NEXT_DESC_ADDRESS(pdesc, *(u32 *)val); + break; + default: + RT_ASSERT(false, "ERR txdesc :%d not process\n", + desc_name); + break; + } + } else { + switch (desc_name) { + case HW_DESC_RXOWN: + SET_RX_DESC_OWN(pdesc, 1); + break; + case HW_DESC_RXBUFF_ADDR: + SET_RX_DESC_BUFF_ADDR(pdesc, *(u32 *)val); + break; + case HW_DESC_RXPKT_LEN: + SET_RX_DESC_PKT_LEN(pdesc, *(u32 *)val); + break; + case HW_DESC_RXERO: + SET_RX_DESC_EOR(pdesc, 1); + break; + default: + RT_ASSERT(false, "ERR rxdesc :%d not process\n", + desc_name); + break; + } + } +} + +u32 rtl8723be_get_desc(u8 *pdesc, bool istx, u8 desc_name) +{ + u32 ret = 0; + + if (istx) { + switch (desc_name) { + case HW_DESC_OWN: + ret = GET_TX_DESC_OWN(pdesc); + break; + case HW_DESC_TXBUFF_ADDR: + ret = GET_TX_DESC_TX_BUFFER_ADDRESS(pdesc); + break; + default: + RT_ASSERT(false, "ERR txdesc :%d not process\n", + desc_name); + break; + } + } else { + switch (desc_name) { + case HW_DESC_OWN: + ret = GET_RX_DESC_OWN(pdesc); + break; + case HW_DESC_RXPKT_LEN: + ret = GET_RX_DESC_PKT_LEN(pdesc); + break; + default: + RT_ASSERT(false, "ERR rxdesc :%d not process\n", + desc_name); + break; + } + } + return ret; +} + +bool rtl8723be_is_tx_desc_closed(struct ieee80211_hw *hw, + u8 hw_queue, u16 index) +{ + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[hw_queue]; + u8 *entry = (u8 *)(&ring->desc[ring->idx]); + u8 own = (u8) rtl8723be_get_desc(entry, true, HW_DESC_OWN); + + /*beacon packet will only use the first + *descriptor by default, and the own may not + *be cleared by the hardware + */ + if (own) + return false; + else + return true; +} + +void rtl8723be_tx_polling(struct ieee80211_hw *hw, u8 hw_queue) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + if (hw_queue == BEACON_QUEUE) { + rtl_write_word(rtlpriv, REG_PCIE_CTRL_REG, BIT(4)); + } else { + rtl_write_word(rtlpriv, REG_PCIE_CTRL_REG, + BIT(0) << (hw_queue)); + } +} --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723be/trx.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723be/trx.h @@ -0,0 +1,616 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8723BE_TRX_H__ +#define __RTL8723BE_TRX_H__ + +#define TX_DESC_SIZE 40 +#define TX_DESC_AGGR_SUBFRAME_SIZE 32 + +#define RX_DESC_SIZE 32 +#define RX_DRV_INFO_SIZE_UNIT 8 + +#define TX_DESC_NEXT_DESC_OFFSET 40 +#define USB_HWDESC_HEADER_LEN 40 +#define CRCLENGTH 4 + +#define SET_TX_DESC_PKT_SIZE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 0, 16, __val) +#define SET_TX_DESC_OFFSET(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 16, 8, __val) +#define SET_TX_DESC_BMC(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 24, 1, __val) +#define SET_TX_DESC_HTC(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 25, 1, __val) +#define SET_TX_DESC_LAST_SEG(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 26, 1, __val) +#define SET_TX_DESC_FIRST_SEG(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 27, 1, __val) +#define SET_TX_DESC_LINIP(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 28, 1, __val) +#define SET_TX_DESC_NO_ACM(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 29, 1, __val) +#define SET_TX_DESC_GF(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 30, 1, __val) +#define SET_TX_DESC_OWN(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 31, 1, __val) + +#define GET_TX_DESC_PKT_SIZE(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 0, 16) +#define GET_TX_DESC_OFFSET(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 16, 8) +#define GET_TX_DESC_BMC(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 24, 1) +#define GET_TX_DESC_HTC(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 25, 1) +#define GET_TX_DESC_LAST_SEG(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 26, 1) +#define GET_TX_DESC_FIRST_SEG(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 27, 1) +#define GET_TX_DESC_LINIP(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 28, 1) +#define GET_TX_DESC_NO_ACM(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 29, 1) +#define GET_TX_DESC_GF(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 30, 1) +#define GET_TX_DESC_OWN(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 31, 1) + +#define SET_TX_DESC_MACID(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+4, 0, 7, __val) +#define SET_TX_DESC_QUEUE_SEL(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+4, 8, 5, __val) +#define SET_TX_DESC_RDG_NAV_EXT(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+4, 13, 1, __val) +#define SET_TX_DESC_LSIG_TXOP_EN(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+4, 14, 1, __val) +#define SET_TX_DESC_PIFS(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+4, 15, 1, __val) +#define SET_TX_DESC_RATE_ID(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+4, 16, 5, __val) +#define SET_TX_DESC_EN_DESC_ID(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+4, 21, 1, __val) +#define SET_TX_DESC_SEC_TYPE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+4, 22, 2, __val) +#define SET_TX_DESC_PKT_OFFSET(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+4, 24, 5, __val) + + +#define SET_TX_DESC_PAID(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 0, 9, __val) +#define SET_TX_DESC_CCA_RTS(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 10, 2, __val) +#define SET_TX_DESC_AGG_ENABLE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 12, 1, __val) +#define SET_TX_DESC_RDG_ENABLE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 13, 1, __val) +#define SET_TX_DESC_BAR_RTY_TH(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 14, 2, __val) +#define SET_TX_DESC_AGG_BREAK(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 16, 1, __val) +#define SET_TX_DESC_MORE_FRAG(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 17, 1, __val) +#define SET_TX_DESC_RAW(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 18, 1, __val) +#define SET_TX_DESC_SPE_RPT(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 19, 1, __val) +#define SET_TX_DESC_AMPDU_DENSITY(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 20, 3, __val) +#define SET_TX_DESC_BT_INT(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 23, 1, __val) +#define SET_TX_DESC_GID(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 24, 6, __val) + + +#define SET_TX_DESC_WHEADER_LEN(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 0, 4, __val) +#define SET_TX_DESC_CHK_EN(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 4, 1, __val) +#define SET_TX_DESC_EARLY_MODE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 5, 1, __val) +#define SET_TX_DESC_HWSEQ_SEL(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 6, 2, __val) +#define SET_TX_DESC_USE_RATE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 8, 1, __val) +#define SET_TX_DESC_DISABLE_RTS_FB(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 9, 1, __val) +#define SET_TX_DESC_DISABLE_FB(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 10, 1, __val) +#define SET_TX_DESC_CTS2SELF(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 11, 1, __val) +#define SET_TX_DESC_RTS_ENABLE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 12, 1, __val) +#define SET_TX_DESC_HW_RTS_ENABLE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 13, 1, __val) +#define SET_TX_DESC_NAV_USE_HDR(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 15, 1, __val) +#define SET_TX_DESC_USE_MAX_LEN(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 16, 1, __val) +#define SET_TX_DESC_MAX_AGG_NUM(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 17, 5, __val) +#define SET_TX_DESC_NDPA(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 22, 2, __val) +#define SET_TX_DESC_AMPDU_MAX_TIME(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 24, 8, __val) + + +#define SET_TX_DESC_TX_RATE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+16, 0, 7, __val) +#define SET_TX_DESC_DATA_RATE_FB_LIMIT(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+16, 8, 5, __val) +#define SET_TX_DESC_RTS_RATE_FB_LIMIT(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+16, 13, 4, __val) +#define SET_TX_DESC_RETRY_LIMIT_ENABLE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+16, 17, 1, __val) +#define SET_TX_DESC_DATA_RETRY_LIMIT(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+16, 18, 6, __val) +#define SET_TX_DESC_RTS_RATE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+16, 24, 5, __val) + + +#define SET_TX_DESC_TX_SUB_CARRIER(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+20, 0, 4, __val) +#define SET_TX_DESC_DATA_SHORTGI(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+20, 4, 1, __val) +#define SET_TX_DESC_DATA_BW(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+20, 5, 2, __val) +#define SET_TX_DESC_DATA_LDPC(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+20, 7, 1, __val) +#define SET_TX_DESC_DATA_STBC(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+20, 8, 2, __val) +#define SET_TX_DESC_CTROL_STBC(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+20, 10, 2, __val) +#define SET_TX_DESC_RTS_SHORT(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+20, 12, 1, __val) +#define SET_TX_DESC_RTS_SC(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+20, 13, 4, __val) + + +#define SET_TX_DESC_TX_BUFFER_SIZE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+28, 0, 16, __val) + +#define GET_TX_DESC_TX_BUFFER_SIZE(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+28, 0, 16) + +#define SET_TX_DESC_HWSEQ_EN(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+32, 15, 1, __val) + +#define SET_TX_DESC_SEQ(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+36, 12, 12, __val) + +#define SET_TX_DESC_TX_BUFFER_ADDRESS(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+40, 0, 32, __val) + +#define GET_TX_DESC_TX_BUFFER_ADDRESS(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+40, 0, 32) + + +#define SET_TX_DESC_NEXT_DESC_ADDRESS(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+48, 0, 32, __val) + +#define GET_TX_DESC_NEXT_DESC_ADDRESS(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+48, 0, 32) + +#define GET_RX_DESC_PKT_LEN(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 0, 14) +#define GET_RX_DESC_CRC32(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 14, 1) +#define GET_RX_DESC_ICV(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 15, 1) +#define GET_RX_DESC_DRV_INFO_SIZE(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 16, 4) +#define GET_RX_DESC_SECURITY(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 20, 3) +#define GET_RX_DESC_QOS(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 23, 1) +#define GET_RX_DESC_SHIFT(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 24, 2) +#define GET_RX_DESC_PHYST(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 26, 1) +#define GET_RX_DESC_SWDEC(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 27, 1) +#define GET_RX_DESC_LS(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 28, 1) +#define GET_RX_DESC_FS(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 29, 1) +#define GET_RX_DESC_EOR(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 30, 1) +#define GET_RX_DESC_OWN(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 31, 1) + +#define SET_RX_DESC_PKT_LEN(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 0, 14, __val) +#define SET_RX_DESC_EOR(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 30, 1, __val) +#define SET_RX_DESC_OWN(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 31, 1, __val) + +#define GET_RX_DESC_MACID(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 0, 7) +#define GET_RX_DESC_TID(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 8, 4) +#define GET_RX_DESC_AMSDU(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 13, 1) +#define GET_RX_STATUS_DESC_RXID_MATCH(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 14, 1) +#define GET_RX_DESC_PAGGR(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 15, 1) +#define GET_RX_DESC_A1_FIT(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 16, 4) +#define GET_RX_DESC_CHKERR(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 20, 1) +#define GET_RX_DESC_IPVER(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 21, 1) +#define GET_RX_STATUS_DESC_IS_TCPUDP(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 22, 1) +#define GET_RX_STATUS_DESC_CHK_VLD(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 23, 1) +#define GET_RX_DESC_PAM(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 24, 1) +#define GET_RX_DESC_PWR(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 25, 1) +#define GET_RX_DESC_MD(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 26, 1) +#define GET_RX_DESC_MF(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 27, 1) +#define GET_RX_DESC_TYPE(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 28, 2) +#define GET_RX_DESC_MC(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 30, 1) +#define GET_RX_DESC_BC(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 31, 1) + + +#define GET_RX_DESC_SEQ(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+8, 0, 12) +#define GET_RX_DESC_FRAG(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+8, 12, 4) +#define GET_RX_STATUS_DESC_RX_IS_QOS(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+8, 16, 1) +#define GET_RX_STATUS_DESC_WLANHD_IV_LEN(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+8, 18, 6) +#define GET_RX_STATUS_DESC_RPT_SEL(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+8, 28, 1) + + +#define GET_RX_DESC_RXMCS(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+12, 0, 7) +#define GET_RX_DESC_RXHT(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+12, 6, 1) +#define GET_RX_STATUS_DESC_RX_GF(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+12, 7, 1) +#define GET_RX_DESC_HTC(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+12, 10, 1) +#define GET_RX_STATUS_DESC_EOSP(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+12, 11, 1) +#define GET_RX_STATUS_DESC_BSSID_FIT(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+12, 12, 2) + +#define GET_RX_STATUS_DESC_PATTERN_MATCH(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+12, 29, 1) +#define GET_RX_STATUS_DESC_UNICAST_MATCH(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+12, 30, 1) +#define GET_RX_STATUS_DESC_MAGIC_MATCH(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+12, 31, 1) + +#define GET_RX_DESC_SPLCP(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+16, 0, 1) +#define GET_RX_STATUS_DESC_LDPC(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+16, 1, 1) +#define GET_RX_STATUS_DESC_STBC(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+16, 2, 1) +#define GET_RX_DESC_BW(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+16, 4, 2) + +#define GET_RX_DESC_TSFL(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+20, 0, 32) + +#define GET_RX_DESC_BUFF_ADDR(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+24, 0, 32) +#define GET_RX_DESC_BUFF_ADDR64(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+28, 0, 32) + +#define SET_RX_DESC_BUFF_ADDR(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+24, 0, 32, __val) +#define SET_RX_DESC_BUFF_ADDR64(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+28, 0, 32, __val) + + +/* TX report 2 format in Rx desc*/ + +#define GET_RX_RPT2_DESC_PKT_LEN(__rxstatusdesc) \ + LE_BITS_TO_4BYTE(__rxstatusdesc, 0, 9) +#define GET_RX_RPT2_DESC_MACID_VALID_1(__rxstatusdesc) \ + LE_BITS_TO_4BYTE(__rxstatusdesc+16, 0, 32) +#define GET_RX_RPT2_DESC_MACID_VALID_2(__rxstatusdesc) \ + LE_BITS_TO_4BYTE(__rxstatusdesc+20, 0, 32) + +#define SET_EARLYMODE_PKTNUM(__paddr, __value) \ + SET_BITS_TO_LE_4BYTE(__paddr, 0, 4, __value) +#define SET_EARLYMODE_LEN0(__paddr, __value) \ + SET_BITS_TO_LE_4BYTE(__paddr, 4, 12, __value) +#define SET_EARLYMODE_LEN1(__paddr, __value) \ + SET_BITS_TO_LE_4BYTE(__paddr, 16, 12, __value) +#define SET_EARLYMODE_LEN2_1(__paddr, __value) \ + SET_BITS_TO_LE_4BYTE(__paddr, 28, 4, __value) +#define SET_EARLYMODE_LEN2_2(__paddr, __value) \ + SET_BITS_TO_LE_4BYTE(__paddr+4, 0, 8, __value) +#define SET_EARLYMODE_LEN3(__paddr, __value) \ + SET_BITS_TO_LE_4BYTE(__paddr+4, 8, 12, __value) +#define SET_EARLYMODE_LEN4(__paddr, __value) \ + SET_BITS_TO_LE_4BYTE(__paddr+4, 20, 12, __value) + +#define CLEAR_PCI_TX_DESC_CONTENT(__pdesc, _size) \ +do { \ + if (_size > TX_DESC_NEXT_DESC_OFFSET) \ + memset(__pdesc, 0, TX_DESC_NEXT_DESC_OFFSET); \ + else \ + memset(__pdesc, 0, _size); \ +} while (0) + +struct phy_rx_agc_info_t { + #ifdef __LITTLE_ENDIAN + u8 gain:7, trsw:1; + #else + u8 trsw:1, gain:7; + #endif +}; +struct phy_status_rpt { + struct phy_rx_agc_info_t path_agc[2]; + u8 ch_corr[2]; + u8 cck_sig_qual_ofdm_pwdb_all; + u8 cck_agc_rpt_ofdm_cfosho_a; + u8 cck_rpt_b_ofdm_cfosho_b; + u8 rsvd_1;/* ch_corr_msb; */ + u8 noise_power_db_msb; + char path_cfotail[2]; + u8 pcts_mask[2]; + char stream_rxevm[2]; + u8 path_rxsnr[2]; + u8 noise_power_db_lsb; + u8 rsvd_2[3]; + u8 stream_csi[2]; + u8 stream_target_csi[2]; + u8 sig_evm; + u8 rsvd_3; +#ifdef __LITTLE_ENDIAN + u8 antsel_rx_keep_2:1; /*ex_intf_flg:1;*/ + u8 sgi_en:1; + u8 rxsc:2; + u8 idle_long:1; + u8 r_ant_train_en:1; + u8 ant_sel_b:1; + u8 ant_sel:1; +#else /* _BIG_ENDIAN_ */ + u8 ant_sel:1; + u8 ant_sel_b:1; + u8 r_ant_train_en:1; + u8 idle_long:1; + u8 rxsc:2; + u8 sgi_en:1; + u8 antsel_rx_keep_2:1; /*ex_intf_flg:1;*/ +#endif +} __packed; + +struct rx_fwinfo_8723be { + u8 gain_trsw[4]; + u8 pwdb_all; + u8 cfosho[4]; + u8 cfotail[4]; + char rxevm[2]; + char rxsnr[4]; + u8 pdsnr[2]; + u8 csi_current[2]; + u8 csi_target[2]; + u8 sigevm; + u8 max_ex_pwr; + u8 ex_intf_flag:1; + u8 sgi_en:1; + u8 rxsc:2; + u8 reserve:4; +} __packed; + +struct tx_desc_8723be { + u32 pktsize:16; + u32 offset:8; + u32 bmc:1; + u32 htc:1; + u32 lastseg:1; + u32 firstseg:1; + u32 linip:1; + u32 noacm:1; + u32 gf:1; + u32 own:1; + + u32 macid:6; + u32 rsvd0:2; + u32 queuesel:5; + u32 rd_nav_ext:1; + u32 lsig_txop_en:1; + u32 pifs:1; + u32 rateid:4; + u32 nav_usehdr:1; + u32 en_descid:1; + u32 sectype:2; + u32 pktoffset:8; + + u32 rts_rc:6; + u32 data_rc:6; + u32 agg_en:1; + u32 rdg_en:1; + u32 bar_retryht:2; + u32 agg_break:1; + u32 morefrag:1; + u32 raw:1; + u32 ccx:1; + u32 ampdudensity:3; + u32 bt_int:1; + u32 ant_sela:1; + u32 ant_selb:1; + u32 txant_cck:2; + u32 txant_l:2; + u32 txant_ht:2; + + u32 nextheadpage:8; + u32 tailpage:8; + u32 seq:12; + u32 cpu_handle:1; + u32 tag1:1; + u32 trigger_int:1; + u32 hwseq_en:1; + + u32 rtsrate:5; + u32 apdcfe:1; + u32 qos:1; + u32 hwseq_ssn:1; + u32 userrate:1; + u32 dis_rtsfb:1; + u32 dis_datafb:1; + u32 cts2self:1; + u32 rts_en:1; + u32 hwrts_en:1; + u32 portid:1; + u32 pwr_status:3; + u32 waitdcts:1; + u32 cts2ap_en:1; + u32 txsc:2; + u32 stbc:2; + u32 txshort:1; + u32 txbw:1; + u32 rtsshort:1; + u32 rtsbw:1; + u32 rtssc:2; + u32 rtsstbc:2; + + u32 txrate:6; + u32 shortgi:1; + u32 ccxt:1; + u32 txrate_fb_lmt:5; + u32 rtsrate_fb_lmt:4; + u32 retrylmt_en:1; + u32 txretrylmt:6; + u32 usb_txaggnum:8; + + u32 txagca:5; + u32 txagcb:5; + u32 usemaxlen:1; + u32 maxaggnum:5; + u32 mcsg1maxlen:4; + u32 mcsg2maxlen:4; + u32 mcsg3maxlen:4; + u32 mcs7sgimaxlen:4; + + u32 txbuffersize:16; + u32 sw_offset30:8; + u32 sw_offset31:4; + u32 rsvd1:1; + u32 antsel_c:1; + u32 null_0:1; + u32 null_1:1; + + u32 txbuffaddr; + u32 txbufferaddr64; + u32 nextdescaddress; + u32 nextdescaddress64; + + u32 reserve_pass_pcie_mm_limit[4]; +} __packed; + +struct rx_desc_8723be { + u32 length:14; + u32 crc32:1; + u32 icverror:1; + u32 drv_infosize:4; + u32 security:3; + u32 qos:1; + u32 shift:2; + u32 phystatus:1; + u32 swdec:1; + u32 lastseg:1; + u32 firstseg:1; + u32 eor:1; + u32 own:1; + + u32 macid:6; + u32 tid:4; + u32 hwrsvd:5; + u32 paggr:1; + u32 faggr:1; + u32 a1_fit:4; + u32 a2_fit:4; + u32 pam:1; + u32 pwr:1; + u32 moredata:1; + u32 morefrag:1; + u32 type:2; + u32 mc:1; + u32 bc:1; + + u32 seq:12; + u32 frag:4; + u32 nextpktlen:14; + u32 nextind:1; + u32 rsvd:1; + + u32 rxmcs:6; + u32 rxht:1; + u32 amsdu:1; + u32 splcp:1; + u32 bandwidth:1; + u32 htc:1; + u32 tcpchk_rpt:1; + u32 ipcchk_rpt:1; + u32 tcpchk_valid:1; + u32 hwpcerr:1; + u32 hwpcind:1; + u32 iv0:16; + + u32 iv1; + + u32 tsfl; + + u32 bufferaddress; + u32 bufferaddress64; + +} __packed; + +void rtl8723be_tx_fill_desc(struct ieee80211_hw *hw, + struct ieee80211_hdr *hdr, u8 *pdesc_tx, + struct ieee80211_tx_info *info, + struct ieee80211_sta *sta, struct sk_buff *skb, + u8 hw_queue, struct rtl_tcb_desc *ptcb_desc); +bool rtl8723be_rx_query_desc(struct ieee80211_hw *hw, + struct rtl_stats *status, + struct ieee80211_rx_status *rx_status, + u8 *pdesc, struct sk_buff *skb); +void rtl8723be_set_desc(u8 *pdesc, bool istx, u8 desc_name, u8 *val); +u32 rtl8723be_get_desc(u8 *pdesc, bool istx, u8 desc_name); +bool rtl8723be_is_tx_desc_closed(struct ieee80211_hw *hw, + u8 hw_queue, u16 index); +void rtl8723be_tx_polling(struct ieee80211_hw *hw, u8 hw_queue); +void rtl8723be_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc, + bool b_firstseg, bool b_lastseg, + struct sk_buff *skb); +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723com/Makefile +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723com/Makefile @@ -0,0 +1,9 @@ +rtl8723-common-objs := \ + main.o \ + dm_common.o \ + fw_common.o \ + phy_common.o + +obj-$(CONFIG_RTL8723_COMMON) += rtl8723-common.o + +ccflags-y += -D__CHECK_ENDIAN__ --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723com/dm_common.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723com/dm_common.c @@ -0,0 +1,65 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "dm_common.h" +#include "../rtl8723ae/dm.h" +#include + +/* These routines are common to RTL8723AE and RTL8723bE */ + +void rtl8723_dm_init_dynamic_txpower(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtlpriv->dm.dynamic_txpower_enable = false; + + rtlpriv->dm.last_dtp_lvl = TXHIGHPWRLEVEL_NORMAL; + rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_NORMAL; +} +EXPORT_SYMBOL_GPL(rtl8723_dm_init_dynamic_txpower); + +void rtl8723_dm_init_edca_turbo(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtlpriv->dm.current_turbo_edca = false; + rtlpriv->dm.is_any_nonbepkts = false; + rtlpriv->dm.is_cur_rdlstate = false; +} +EXPORT_SYMBOL_GPL(rtl8723_dm_init_edca_turbo); + +void rtl8723_dm_init_dynamic_bb_powersaving(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtlpriv->dm_pstable.pre_ccastate = CCA_MAX; + rtlpriv->dm_pstable.cur_ccasate = CCA_MAX; + rtlpriv->dm_pstable.pre_rfstate = RF_MAX; + rtlpriv->dm_pstable.cur_rfstate = RF_MAX; + rtlpriv->dm_pstable.rssi_val_min = 0; + rtlpriv->dm_pstable.initialize = 0; +} +EXPORT_SYMBOL_GPL(rtl8723_dm_init_dynamic_bb_powersaving); --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723com/dm_common.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723com/dm_common.h @@ -0,0 +1,33 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __DM_COMMON_H__ +#define __DM_COMMON_H__ + +void rtl8723_dm_init_dynamic_txpower(struct ieee80211_hw *hw); +void rtl8723_dm_init_edca_turbo(struct ieee80211_hw *hw); +void rtl8723_dm_init_dynamic_bb_powersaving(struct ieee80211_hw *hw); + +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723com/fw_common.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723com/fw_common.c @@ -0,0 +1,329 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "../pci.h" +#include "../base.h" +#include "fw_common.h" +#include + +void rtl8723_enable_fw_download(struct ieee80211_hw *hw, bool enable) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 tmp; + + if (enable) { + tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN + 1); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN + 1, tmp | 0x04); + + tmp = rtl_read_byte(rtlpriv, REG_MCUFWDL); + rtl_write_byte(rtlpriv, REG_MCUFWDL, tmp | 0x01); + + tmp = rtl_read_byte(rtlpriv, REG_MCUFWDL + 2); + rtl_write_byte(rtlpriv, REG_MCUFWDL + 2, tmp & 0xf7); + } else { + tmp = rtl_read_byte(rtlpriv, REG_MCUFWDL); + rtl_write_byte(rtlpriv, REG_MCUFWDL, tmp & 0xfe); + + rtl_write_byte(rtlpriv, REG_MCUFWDL + 1, 0x00); + } +} +EXPORT_SYMBOL_GPL(rtl8723_enable_fw_download); + +void rtl8723_fw_block_write(struct ieee80211_hw *hw, + const u8 *buffer, u32 size) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 blocksize = sizeof(u32); + u8 *bufferptr = (u8 *)buffer; + u32 *pu4byteptr = (u32 *)buffer; + u32 i, offset, blockcount, remainsize; + + blockcount = size / blocksize; + remainsize = size % blocksize; + + for (i = 0; i < blockcount; i++) { + offset = i * blocksize; + rtl_write_dword(rtlpriv, (FW_8192C_START_ADDRESS + offset), + *(pu4byteptr + i)); + } + if (remainsize) { + offset = blockcount * blocksize; + bufferptr += offset; + for (i = 0; i < remainsize; i++) { + rtl_write_byte(rtlpriv, + (FW_8192C_START_ADDRESS + offset + i), + *(bufferptr + i)); + } + } +} +EXPORT_SYMBOL_GPL(rtl8723_fw_block_write); + +void rtl8723_fw_page_write(struct ieee80211_hw *hw, + u32 page, const u8 *buffer, u32 size) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 value8; + u8 u8page = (u8) (page & 0x07); + + value8 = (rtl_read_byte(rtlpriv, REG_MCUFWDL + 2) & 0xF8) | u8page; + + rtl_write_byte(rtlpriv, (REG_MCUFWDL + 2), value8); + rtl8723_fw_block_write(hw, buffer, size); +} +EXPORT_SYMBOL_GPL(rtl8723_fw_page_write); + +static void rtl8723_fill_dummy(u8 *pfwbuf, u32 *pfwlen) +{ + u32 fwlen = *pfwlen; + u8 remain = (u8) (fwlen % 4); + + remain = (remain == 0) ? 0 : (4 - remain); + + while (remain > 0) { + pfwbuf[fwlen] = 0; + fwlen++; + remain--; + } + *pfwlen = fwlen; +} + +void rtl8723_write_fw(struct ieee80211_hw *hw, + enum version_8723e version, + u8 *buffer, u32 size) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 *bufferptr = (u8 *)buffer; + u32 pagenums, remainsize; + u32 page, offset; + + RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD, "FW size is %d bytes,\n", size); + + rtl8723_fill_dummy(bufferptr, &size); + + pagenums = size / FW_8192C_PAGE_SIZE; + remainsize = size % FW_8192C_PAGE_SIZE; + + if (pagenums > 8) { + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "Page numbers should not greater then 8\n"); + } + for (page = 0; page < pagenums; page++) { + offset = page * FW_8192C_PAGE_SIZE; + rtl8723_fw_page_write(hw, page, (bufferptr + offset), + FW_8192C_PAGE_SIZE); + } + if (remainsize) { + offset = pagenums * FW_8192C_PAGE_SIZE; + page = pagenums; + rtl8723_fw_page_write(hw, page, (bufferptr + offset), + remainsize); + } +} +EXPORT_SYMBOL_GPL(rtl8723_write_fw); + +void rtl8723ae_firmware_selfreset(struct ieee80211_hw *hw) +{ + u8 u1tmp; + u8 delay = 100; + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtl_write_byte(rtlpriv, REG_HMETFR + 3, 0x20); + u1tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN + 1); + + while (u1tmp & BIT(2)) { + delay--; + if (delay == 0) + break; + udelay(50); + u1tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN + 1); + } + if (delay == 0) { + u1tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN + 1); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN + 1, u1tmp&(~BIT(2))); + } +} +EXPORT_SYMBOL_GPL(rtl8723ae_firmware_selfreset); + +void rtl8723be_firmware_selfreset(struct ieee80211_hw *hw) +{ + u8 u1b_tmp; + struct rtl_priv *rtlpriv = rtl_priv(hw); + + u1b_tmp = rtl_read_byte(rtlpriv, REG_RSV_CTRL + 1); + rtl_write_byte(rtlpriv, REG_RSV_CTRL + 1, (u1b_tmp & (~BIT(0)))); + + u1b_tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN + 1); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN + 1, (u1b_tmp & (~BIT(2)))); + udelay(50); + + u1b_tmp = rtl_read_byte(rtlpriv, REG_RSV_CTRL + 1); + rtl_write_byte(rtlpriv, REG_RSV_CTRL + 1, (u1b_tmp | BIT(0))); + + u1b_tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN + 1); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN + 1, (u1b_tmp | BIT(2))); + + RT_TRACE(rtlpriv, COMP_INIT, DBG_LOUD, + " _8051Reset8723be(): 8051 reset success .\n"); +} +EXPORT_SYMBOL_GPL(rtl8723be_firmware_selfreset); + +int rtl8723_fw_free_to_go(struct ieee80211_hw *hw, bool is_8723be) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + int err = -EIO; + u32 counter = 0; + u32 value32; + + do { + value32 = rtl_read_dword(rtlpriv, REG_MCUFWDL); + } while ((counter++ < FW_8192C_POLLING_TIMEOUT_COUNT) && + (!(value32 & FWDL_CHKSUM_RPT))); + + if (counter >= FW_8192C_POLLING_TIMEOUT_COUNT) { + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "chksum report fail ! REG_MCUFWDL:0x%08x .\n", + value32); + goto exit; + } + RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE, + "Checksum report OK ! REG_MCUFWDL:0x%08x .\n", value32); + + value32 = rtl_read_dword(rtlpriv, REG_MCUFWDL) | MCUFWDL_RDY; + value32 &= ~WINTINI_RDY; + rtl_write_dword(rtlpriv, REG_MCUFWDL, value32); + + if (is_8723be) + rtl8723be_firmware_selfreset(hw); + counter = 0; + + do { + value32 = rtl_read_dword(rtlpriv, REG_MCUFWDL); + if (value32 & WINTINI_RDY) { + RT_TRACE(rtlpriv, COMP_FW, DBG_TRACE, + "Polling FW ready success!! " + "REG_MCUFWDL:0x%08x .\n", + value32); + err = 0; + goto exit; + } + udelay(FW_8192C_POLLING_DELAY); + + } while (counter++ < FW_8192C_POLLING_TIMEOUT_COUNT); + + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "Polling FW ready fail!! REG_MCUFWDL:0x%08x .\n", + value32); + +exit: + return err; +} +EXPORT_SYMBOL_GPL(rtl8723_fw_free_to_go); + +int rtl8723_download_fw(struct ieee80211_hw *hw, + bool is_8723be) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl92c_firmware_header *pfwheader; + u8 *pfwdata; + u32 fwsize; + int err; + enum version_8723e version = rtlhal->version; + + if (!rtlhal->pfirmware) + return 1; + + pfwheader = (struct rtl92c_firmware_header *)rtlhal->pfirmware; + pfwdata = (u8 *)rtlhal->pfirmware; + fwsize = rtlhal->fwsize; + RT_TRACE(rtlpriv, COMP_FW, DBG_DMESG, + "normal Firmware SIZE %d\n", fwsize); + + if (rtlpriv->cfg->ops->is_fw_header(pfwheader)) { + RT_TRACE(rtlpriv, COMP_FW, DBG_EMERG, + "Firmware Version(%d), Signature(%#x), Size(%d)\n", + pfwheader->version, pfwheader->signature, + (int)sizeof(struct rtl92c_firmware_header)); + + pfwdata = pfwdata + sizeof(struct rtl92c_firmware_header); + fwsize = fwsize - sizeof(struct rtl92c_firmware_header); + } + if (rtl_read_byte(rtlpriv, REG_MCUFWDL) & BIT(7)) { + rtl_write_byte(rtlpriv, REG_MCUFWDL, 0); + if (is_8723be) + rtl8723be_firmware_selfreset(hw); + else + rtl8723ae_firmware_selfreset(hw); + } + rtl8723_enable_fw_download(hw, true); + rtl8723_write_fw(hw, version, pfwdata, fwsize); + rtl8723_enable_fw_download(hw, false); + + err = rtl8723_fw_free_to_go(hw, is_8723be); + if (err) { + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, + "Firmware is not ready to run!\n"); + } else { + RT_TRACE(rtlpriv, COMP_FW, DBG_LOUD, + "Firmware is ready to run!\n"); + } + return 0; +} +EXPORT_SYMBOL_GPL(rtl8723_download_fw); + +bool rtl8723_cmd_send_packet(struct ieee80211_hw *hw, + struct sk_buff *skb) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl8192_tx_ring *ring; + struct rtl_tx_desc *pdesc; + struct sk_buff *pskb = NULL; + u8 own; + unsigned long flags; + + ring = &rtlpci->tx_ring[BEACON_QUEUE]; + + pskb = __skb_dequeue(&ring->queue); + if (pskb) + kfree_skb(pskb); + + spin_lock_irqsave(&rtlpriv->locks.irq_th_lock, flags); + + pdesc = &ring->desc[0]; + own = (u8) rtlpriv->cfg->ops->get_desc((u8 *)pdesc, true, HW_DESC_OWN); + + rtlpriv->cfg->ops->fill_tx_cmddesc(hw, (u8 *)pdesc, 1, 1, skb); + + __skb_queue_tail(&ring->queue, skb); + + spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags); + + rtlpriv->cfg->ops->tx_polling(hw, BEACON_QUEUE); + + return true; +} +EXPORT_SYMBOL_GPL(rtl8723_cmd_send_packet); --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723com/fw_common.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723com/fw_common.h @@ -0,0 +1,126 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __FW_COMMON_H__ +#define __FW_COMMON_H__ + +#define REG_SYS_FUNC_EN 0x0002 +#define REG_MCUFWDL 0x0080 +#define FW_8192C_START_ADDRESS 0x1000 +#define FW_8192C_PAGE_SIZE 4096 +#define FW_8192C_POLLING_TIMEOUT_COUNT 6000 +#define FW_8192C_POLLING_DELAY 5 + +#define MCUFWDL_RDY BIT(1) +#define FWDL_CHKSUM_RPT BIT(2) +#define WINTINI_RDY BIT(6) + +#define REG_RSV_CTRL 0x001C +#define REG_HMETFR 0x01CC + +enum version_8723e { + VERSION_TEST_UMC_CHIP_8723 = 0x0081, + VERSION_NORMAL_UMC_CHIP_8723_1T1R_A_CUT = 0x0089, + VERSION_NORMAL_UMC_CHIP_8723_1T1R_B_CUT = 0x1089, + VERSION_TEST_CHIP_1T1R_8723B = 0x0106, + VERSION_NORMAL_SMIC_CHIP_1T1R_8723B = 0x010E, + VERSION_UNKNOWN = 0xFF, +}; + +enum rtl8723ae_h2c_cmd { + H2C_AP_OFFLOAD = 0, + H2C_SETPWRMODE = 1, + H2C_JOINBSSRPT = 2, + H2C_RSVDPAGE = 3, + H2C_RSSI_REPORT = 4, + H2C_P2P_PS_CTW_CMD = 5, + H2C_P2P_PS_OFFLOAD = 6, + H2C_RA_MASK = 7, + MAX_H2CCMD +}; + +enum rtl8723be_cmd { + H2C_8723BE_RSVDPAGE = 0, + H2C_8723BE_JOINBSSRPT = 1, + H2C_8723BE_SCAN = 2, + H2C_8723BE_KEEP_ALIVE_CTRL = 3, + H2C_8723BE_DISCONNECT_DECISION = 4, + H2C_8723BE_INIT_OFFLOAD = 6, + H2C_8723BE_AP_OFFLOAD = 8, + H2C_8723BE_BCN_RSVDPAGE = 9, + H2C_8723BE_PROBERSP_RSVDPAGE = 10, + + H2C_8723BE_SETPWRMODE = 0x20, + H2C_8723BE_PS_TUNING_PARA = 0x21, + H2C_8723BE_PS_TUNING_PARA2 = 0x22, + H2C_8723BE_PS_LPS_PARA = 0x23, + H2C_8723BE_P2P_PS_OFFLOAD = 0x24, + + H2C_8723BE_WO_WLAN = 0x80, + H2C_8723BE_REMOTE_WAKE_CTRL = 0x81, + H2C_8723BE_AOAC_GLOBAL_INFO = 0x82, + H2C_8723BE_AOAC_RSVDPAGE = 0x83, + H2C_8723BE_RSSI_REPORT = 0x42, + H2C_8723BE_RA_MASK = 0x40, + H2C_8723BE_SELECTIVE_SUSPEND_ROF_CMD, + H2C_8723BE_P2P_PS_MODE, + H2C_8723BE_PSD_RESULT, + /*Not defined CTW CMD for P2P yet*/ + H2C_8723BE_P2P_PS_CTW_CMD, + MAX_8723BE_H2CCMD +}; + +struct rtl92c_firmware_header { + u16 signature; + u8 category; + u8 function; + u16 version; + u8 subversion; + u8 rsvd1; + u8 month; + u8 date; + u8 hour; + u8 minute; + u16 ramcodesize; + u16 rsvd2; + u32 svnindex; + u32 rsvd3; + u32 rsvd4; + u32 rsvd5; +}; + +void rtl8723ae_firmware_selfreset(struct ieee80211_hw *hw); +void rtl8723be_firmware_selfreset(struct ieee80211_hw *hw); +void rtl8723_enable_fw_download(struct ieee80211_hw *hw, bool enable); +void rtl8723_fw_block_write(struct ieee80211_hw *hw, + const u8 *buffer, u32 size); +void rtl8723_fw_page_write(struct ieee80211_hw *hw, + u32 page, const u8 *buffer, u32 size); +void rtl8723_write_fw(struct ieee80211_hw *hw, + enum version_8723e version, + u8 *buffer, u32 size); +int rtl8723_fw_free_to_go(struct ieee80211_hw *hw, bool is_8723be); +int rtl8723_download_fw(struct ieee80211_hw *hw, bool is_8723be); +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723com/main.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723com/main.c @@ -0,0 +1,33 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include + + +MODULE_AUTHOR("Realtek WlanFAE "); +MODULE_AUTHOR("Larry Finger "); +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Realtek RTL8723AE/RTL8723BE 802.11n PCI wireless common routines"); --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723com/phy_common.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723com/phy_common.c @@ -0,0 +1,434 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "phy_common.h" +#include "../rtl8723ae/reg.h" +#include + +/* These routines are common to RTL8723AE and RTL8723bE */ + +u32 rtl8723_phy_query_bb_reg(struct ieee80211_hw *hw, + u32 regaddr, u32 bitmask) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 returnvalue, originalvalue, bitshift; + + RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, + "regaddr(%#x), bitmask(%#x)\n", regaddr, bitmask); + originalvalue = rtl_read_dword(rtlpriv, regaddr); + bitshift = rtl8723_phy_calculate_bit_shift(bitmask); + returnvalue = (originalvalue & bitmask) >> bitshift; + + RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, + "BBR MASK = 0x%x Addr[0x%x]= 0x%x\n", + bitmask, regaddr, originalvalue); + + return returnvalue; +} +EXPORT_SYMBOL_GPL(rtl8723_phy_query_bb_reg); + +void rtl8723_phy_set_bb_reg(struct ieee80211_hw *hw, u32 regaddr, + u32 bitmask, u32 data) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 originalvalue, bitshift; + + RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, + "regaddr(%#x), bitmask(%#x), data(%#x)\n", + regaddr, bitmask, data); + + if (bitmask != MASKDWORD) { + originalvalue = rtl_read_dword(rtlpriv, regaddr); + bitshift = rtl8723_phy_calculate_bit_shift(bitmask); + data = ((originalvalue & (~bitmask)) | (data << bitshift)); + } + + rtl_write_dword(rtlpriv, regaddr, data); + + RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, + "regaddr(%#x), bitmask(%#x), data(%#x)\n", + regaddr, bitmask, data); +} +EXPORT_SYMBOL_GPL(rtl8723_phy_set_bb_reg); + +u32 rtl8723_phy_calculate_bit_shift(u32 bitmask) +{ + u32 i; + + for (i = 0; i <= 31; i++) { + if (((bitmask >> i) & 0x1) == 1) + break; + } + return i; +} +EXPORT_SYMBOL_GPL(rtl8723_phy_calculate_bit_shift); + +u32 rtl8723_phy_rf_serial_read(struct ieee80211_hw *hw, + enum radio_path rfpath, u32 offset) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct bb_reg_def *pphyreg = &rtlphy->phyreg_def[rfpath]; + u32 newoffset; + u32 tmplong, tmplong2; + u8 rfpi_enable = 0; + u32 retvalue; + + offset &= 0xff; + newoffset = offset; + if (RT_CANNOT_IO(hw)) { + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "return all one\n"); + return 0xFFFFFFFF; + } + tmplong = rtl_get_bbreg(hw, RFPGA0_XA_HSSIPARAMETER2, MASKDWORD); + if (rfpath == RF90_PATH_A) + tmplong2 = tmplong; + else + tmplong2 = rtl_get_bbreg(hw, pphyreg->rfhssi_para2, MASKDWORD); + tmplong2 = (tmplong2 & (~BLSSIREADADDRESS)) | + (newoffset << 23) | BLSSIREADEDGE; + rtl_set_bbreg(hw, RFPGA0_XA_HSSIPARAMETER2, MASKDWORD, + tmplong & (~BLSSIREADEDGE)); + mdelay(1); + rtl_set_bbreg(hw, pphyreg->rfhssi_para2, MASKDWORD, tmplong2); + mdelay(2); + if (rfpath == RF90_PATH_A) + rfpi_enable = (u8) rtl_get_bbreg(hw, RFPGA0_XA_HSSIPARAMETER1, + BIT(8)); + else if (rfpath == RF90_PATH_B) + rfpi_enable = (u8) rtl_get_bbreg(hw, RFPGA0_XB_HSSIPARAMETER1, + BIT(8)); + if (rfpi_enable) + retvalue = rtl_get_bbreg(hw, pphyreg->rf_rbpi, + BLSSIREADBACKDATA); + else + retvalue = rtl_get_bbreg(hw, pphyreg->rf_rb, + BLSSIREADBACKDATA); + RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, + "RFR-%d Addr[0x%x]= 0x%x\n", + rfpath, pphyreg->rf_rb, retvalue); + return retvalue; +} +EXPORT_SYMBOL_GPL(rtl8723_phy_rf_serial_read); + +void rtl8723_phy_rf_serial_write(struct ieee80211_hw *hw, + enum radio_path rfpath, + u32 offset, u32 data) +{ + u32 data_and_addr; + u32 newoffset; + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct bb_reg_def *pphyreg = &rtlphy->phyreg_def[rfpath]; + + if (RT_CANNOT_IO(hw)) { + RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG, "stop\n"); + return; + } + offset &= 0xff; + newoffset = offset; + data_and_addr = ((newoffset << 20) | (data & 0x000fffff)) & 0x0fffffff; + rtl_set_bbreg(hw, pphyreg->rf3wire_offset, MASKDWORD, data_and_addr); + RT_TRACE(rtlpriv, COMP_RF, DBG_TRACE, + "RFW-%d Addr[0x%x]= 0x%x\n", rfpath, + pphyreg->rf3wire_offset, data_and_addr); +} +EXPORT_SYMBOL_GPL(rtl8723_phy_rf_serial_write); + +long rtl8723_phy_txpwr_idx_to_dbm(struct ieee80211_hw *hw, + enum wireless_mode wirelessmode, + u8 txpwridx) +{ + long offset; + long pwrout_dbm; + + switch (wirelessmode) { + case WIRELESS_MODE_B: + offset = -7; + break; + case WIRELESS_MODE_G: + case WIRELESS_MODE_N_24G: + default: + offset = -8; + break; + } + pwrout_dbm = txpwridx / 2 + offset; + return pwrout_dbm; +} +EXPORT_SYMBOL_GPL(rtl8723_phy_txpwr_idx_to_dbm); + +void rtl8723_phy_init_bb_rf_reg_def(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + rtlphy->phyreg_def[RF90_PATH_A].rfintfs = RFPGA0_XAB_RFINTERFACESW; + rtlphy->phyreg_def[RF90_PATH_B].rfintfs = RFPGA0_XAB_RFINTERFACESW; + rtlphy->phyreg_def[RF90_PATH_C].rfintfs = RFPGA0_XCD_RFINTERFACESW; + rtlphy->phyreg_def[RF90_PATH_D].rfintfs = RFPGA0_XCD_RFINTERFACESW; + + rtlphy->phyreg_def[RF90_PATH_A].rfintfi = RFPGA0_XAB_RFINTERFACERB; + rtlphy->phyreg_def[RF90_PATH_B].rfintfi = RFPGA0_XAB_RFINTERFACERB; + rtlphy->phyreg_def[RF90_PATH_C].rfintfi = RFPGA0_XCD_RFINTERFACERB; + rtlphy->phyreg_def[RF90_PATH_D].rfintfi = RFPGA0_XCD_RFINTERFACERB; + + rtlphy->phyreg_def[RF90_PATH_A].rfintfo = RFPGA0_XA_RFINTERFACEOE; + rtlphy->phyreg_def[RF90_PATH_B].rfintfo = RFPGA0_XB_RFINTERFACEOE; + + rtlphy->phyreg_def[RF90_PATH_A].rfintfe = RFPGA0_XA_RFINTERFACEOE; + rtlphy->phyreg_def[RF90_PATH_B].rfintfe = RFPGA0_XB_RFINTERFACEOE; + + rtlphy->phyreg_def[RF90_PATH_A].rf3wire_offset = + RFPGA0_XA_LSSIPARAMETER; + rtlphy->phyreg_def[RF90_PATH_B].rf3wire_offset = + RFPGA0_XB_LSSIPARAMETER; + + rtlphy->phyreg_def[RF90_PATH_A].rflssi_select = rFPGA0_XAB_RFPARAMETER; + rtlphy->phyreg_def[RF90_PATH_B].rflssi_select = rFPGA0_XAB_RFPARAMETER; + rtlphy->phyreg_def[RF90_PATH_C].rflssi_select = rFPGA0_XCD_RFPARAMETER; + rtlphy->phyreg_def[RF90_PATH_D].rflssi_select = rFPGA0_XCD_RFPARAMETER; + + rtlphy->phyreg_def[RF90_PATH_A].rftxgain_stage = RFPGA0_TXGAINSTAGE; + rtlphy->phyreg_def[RF90_PATH_B].rftxgain_stage = RFPGA0_TXGAINSTAGE; + rtlphy->phyreg_def[RF90_PATH_C].rftxgain_stage = RFPGA0_TXGAINSTAGE; + rtlphy->phyreg_def[RF90_PATH_D].rftxgain_stage = RFPGA0_TXGAINSTAGE; + + rtlphy->phyreg_def[RF90_PATH_A].rfhssi_para1 = RFPGA0_XA_HSSIPARAMETER1; + rtlphy->phyreg_def[RF90_PATH_B].rfhssi_para1 = RFPGA0_XB_HSSIPARAMETER1; + + rtlphy->phyreg_def[RF90_PATH_A].rfhssi_para2 = RFPGA0_XA_HSSIPARAMETER2; + rtlphy->phyreg_def[RF90_PATH_B].rfhssi_para2 = RFPGA0_XB_HSSIPARAMETER2; + + rtlphy->phyreg_def[RF90_PATH_A].rfsw_ctrl = RFPGA0_XAB_SWITCHCONTROL; + rtlphy->phyreg_def[RF90_PATH_B].rfsw_ctrl = RFPGA0_XAB_SWITCHCONTROL; + rtlphy->phyreg_def[RF90_PATH_C].rfsw_ctrl = RFPGA0_XCD_SWITCHCONTROL; + rtlphy->phyreg_def[RF90_PATH_D].rfsw_ctrl = RFPGA0_XCD_SWITCHCONTROL; + + rtlphy->phyreg_def[RF90_PATH_A].rfagc_control1 = ROFDM0_XAAGCCORE1; + rtlphy->phyreg_def[RF90_PATH_B].rfagc_control1 = ROFDM0_XBAGCCORE1; + rtlphy->phyreg_def[RF90_PATH_C].rfagc_control1 = ROFDM0_XCAGCCORE1; + rtlphy->phyreg_def[RF90_PATH_D].rfagc_control1 = ROFDM0_XDAGCCORE1; + + rtlphy->phyreg_def[RF90_PATH_A].rfagc_control2 = ROFDM0_XAAGCCORE2; + rtlphy->phyreg_def[RF90_PATH_B].rfagc_control2 = ROFDM0_XBAGCCORE2; + rtlphy->phyreg_def[RF90_PATH_C].rfagc_control2 = ROFDM0_XCAGCCORE2; + rtlphy->phyreg_def[RF90_PATH_D].rfagc_control2 = ROFDM0_XDAGCCORE2; + + rtlphy->phyreg_def[RF90_PATH_A].rfrxiq_imbal = ROFDM0_XARXIQIMBALANCE; + rtlphy->phyreg_def[RF90_PATH_B].rfrxiq_imbal = ROFDM0_XBRXIQIMBALANCE; + rtlphy->phyreg_def[RF90_PATH_C].rfrxiq_imbal = ROFDM0_XCRXIQIMBANLANCE; + rtlphy->phyreg_def[RF90_PATH_D].rfrxiq_imbal = ROFDM0_XDRXIQIMBALANCE; + + rtlphy->phyreg_def[RF90_PATH_A].rfrx_afe = ROFDM0_XARXAFE; + rtlphy->phyreg_def[RF90_PATH_B].rfrx_afe = ROFDM0_XBRXAFE; + rtlphy->phyreg_def[RF90_PATH_C].rfrx_afe = ROFDM0_XCRXAFE; + rtlphy->phyreg_def[RF90_PATH_D].rfrx_afe = ROFDM0_XDRXAFE; + + rtlphy->phyreg_def[RF90_PATH_A].rftxiq_imbal = ROFDM0_XATXIQIMBALANCE; + rtlphy->phyreg_def[RF90_PATH_B].rftxiq_imbal = ROFDM0_XBTXIQIMBALANCE; + rtlphy->phyreg_def[RF90_PATH_C].rftxiq_imbal = ROFDM0_XCTXIQIMBALANCE; + rtlphy->phyreg_def[RF90_PATH_D].rftxiq_imbal = ROFDM0_XDTXIQIMBALANCE; + + rtlphy->phyreg_def[RF90_PATH_A].rftx_afe = ROFDM0_XATXAFE; + rtlphy->phyreg_def[RF90_PATH_B].rftx_afe = ROFDM0_XBTXAFE; + rtlphy->phyreg_def[RF90_PATH_C].rftx_afe = ROFDM0_XCTXAFE; + rtlphy->phyreg_def[RF90_PATH_D].rftx_afe = ROFDM0_XDTXAFE; + + rtlphy->phyreg_def[RF90_PATH_A].rf_rb = RFPGA0_XA_LSSIREADBACK; + rtlphy->phyreg_def[RF90_PATH_B].rf_rb = RFPGA0_XB_LSSIREADBACK; + rtlphy->phyreg_def[RF90_PATH_C].rf_rb = RFPGA0_XC_LSSIREADBACK; + rtlphy->phyreg_def[RF90_PATH_D].rf_rb = RFPGA0_XD_LSSIREADBACK; + + rtlphy->phyreg_def[RF90_PATH_A].rf_rbpi = TRANSCEIVEA_HSPI_READBACK; + rtlphy->phyreg_def[RF90_PATH_B].rf_rbpi = TRANSCEIVEB_HSPI_READBACK; +} +EXPORT_SYMBOL_GPL(rtl8723_phy_init_bb_rf_reg_def); + +bool rtl8723_phy_set_sw_chnl_cmdarray(struct swchnlcmd *cmdtable, + u32 cmdtableidx, + u32 cmdtablesz, + enum swchnlcmd_id cmdid, + u32 para1, u32 para2, + u32 msdelay) +{ + struct swchnlcmd *pcmd; + + if (cmdtable == NULL) { + RT_ASSERT(false, "cmdtable cannot be NULL.\n"); + return false; + } + + if (cmdtableidx >= cmdtablesz) + return false; + + pcmd = cmdtable + cmdtableidx; + pcmd->cmdid = cmdid; + pcmd->para1 = para1; + pcmd->para2 = para2; + pcmd->msdelay = msdelay; + return true; +} +EXPORT_SYMBOL_GPL(rtl8723_phy_set_sw_chnl_cmdarray); + +void rtl8723_phy_path_a_fill_iqk_matrix(struct ieee80211_hw *hw, + bool iqk_ok, + long result[][8], + u8 final_candidate, + bool btxonly) +{ + u32 oldval_0, x, tx0_a, reg; + long y, tx0_c; + + if (final_candidate == 0xFF) { + return; + } else if (iqk_ok) { + oldval_0 = (rtl_get_bbreg(hw, ROFDM0_XATXIQIMBALANCE, + MASKDWORD) >> 22) & 0x3FF; + x = result[final_candidate][0]; + if ((x & 0x00000200) != 0) + x = x | 0xFFFFFC00; + tx0_a = (x * oldval_0) >> 8; + rtl_set_bbreg(hw, ROFDM0_XATXIQIMBALANCE, 0x3FF, tx0_a); + rtl_set_bbreg(hw, ROFDM0_ECCATHRESHOLD, BIT(31), + ((x * oldval_0 >> 7) & 0x1)); + y = result[final_candidate][1]; + if ((y & 0x00000200) != 0) + y = y | 0xFFFFFC00; + tx0_c = (y * oldval_0) >> 8; + rtl_set_bbreg(hw, ROFDM0_XCTXAFE, 0xF0000000, + ((tx0_c & 0x3C0) >> 6)); + rtl_set_bbreg(hw, ROFDM0_XATXIQIMBALANCE, 0x003F0000, + (tx0_c & 0x3F)); + rtl_set_bbreg(hw, ROFDM0_ECCATHRESHOLD, BIT(29), + ((y * oldval_0 >> 7) & 0x1)); + if (btxonly) + return; + reg = result[final_candidate][2]; + rtl_set_bbreg(hw, ROFDM0_XARXIQIMBALANCE, 0x3FF, reg); + reg = result[final_candidate][3] & 0x3F; + rtl_set_bbreg(hw, ROFDM0_XARXIQIMBALANCE, 0xFC00, reg); + reg = (result[final_candidate][3] >> 6) & 0xF; + rtl_set_bbreg(hw, 0xca0, 0xF0000000, reg); + } +} +EXPORT_SYMBOL_GPL(rtl8723_phy_path_a_fill_iqk_matrix); + +void rtl8723_save_adda_registers(struct ieee80211_hw *hw, u32 *addareg, + u32 *addabackup, u32 registernum) +{ + u32 i; + + for (i = 0; i < registernum; i++) + addabackup[i] = rtl_get_bbreg(hw, addareg[i], MASKDWORD); +} +EXPORT_SYMBOL_GPL(rtl8723_save_adda_registers); + +void rtl8723_phy_save_mac_registers(struct ieee80211_hw *hw, + u32 *macreg, u32 *macbackup) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 i; + + for (i = 0; i < (IQK_MAC_REG_NUM - 1); i++) + macbackup[i] = rtl_read_byte(rtlpriv, macreg[i]); + macbackup[i] = rtl_read_dword(rtlpriv, macreg[i]); +} +EXPORT_SYMBOL_GPL(rtl8723_phy_save_mac_registers); + +void rtl8723_phy_reload_adda_registers(struct ieee80211_hw *hw, + u32 *addareg, u32 *addabackup, + u32 regiesternum) +{ + u32 i; + + for (i = 0; i < regiesternum; i++) + rtl_set_bbreg(hw, addareg[i], MASKDWORD, addabackup[i]); +} +EXPORT_SYMBOL_GPL(rtl8723_phy_reload_adda_registers); + +void rtl8723_phy_reload_mac_registers(struct ieee80211_hw *hw, + u32 *macreg, u32 *macbackup) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 i; + + for (i = 0; i < (IQK_MAC_REG_NUM - 1); i++) + rtl_write_byte(rtlpriv, macreg[i], (u8) macbackup[i]); + rtl_write_dword(rtlpriv, macreg[i], macbackup[i]); +} +EXPORT_SYMBOL_GPL(rtl8723_phy_reload_mac_registers); + +void rtl8723_phy_path_adda_on(struct ieee80211_hw *hw, u32 *addareg, + bool is_patha_on, bool is2t) +{ + u32 pathon; + u32 i; + + pathon = is_patha_on ? 0x04db25a4 : 0x0b1b25a4; + if (!is2t) { + pathon = 0x0bdb25a0; + rtl_set_bbreg(hw, addareg[0], MASKDWORD, 0x0b1b25a0); + } else { + rtl_set_bbreg(hw, addareg[0], MASKDWORD, pathon); + } + + for (i = 1; i < IQK_ADDA_REG_NUM; i++) + rtl_set_bbreg(hw, addareg[i], MASKDWORD, pathon); +} +EXPORT_SYMBOL_GPL(rtl8723_phy_path_adda_on); + +void rtl8723_phy_mac_setting_calibration(struct ieee80211_hw *hw, + u32 *macreg, u32 *macbackup) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 i = 0; + + rtl_write_byte(rtlpriv, macreg[i], 0x3F); + + for (i = 1; i < (IQK_MAC_REG_NUM - 1); i++) + rtl_write_byte(rtlpriv, macreg[i], + (u8) (macbackup[i] & (~BIT(3)))); + rtl_write_byte(rtlpriv, macreg[i], (u8) (macbackup[i] & (~BIT(5)))); +} +EXPORT_SYMBOL_GPL(rtl8723_phy_mac_setting_calibration); + +void rtl8723_phy_path_a_standby(struct ieee80211_hw *hw) +{ + rtl_set_bbreg(hw, 0xe28, MASKDWORD, 0x0); + rtl_set_bbreg(hw, 0x840, MASKDWORD, 0x00010000); + rtl_set_bbreg(hw, 0xe28, MASKDWORD, 0x80800000); +} +EXPORT_SYMBOL_GPL(rtl8723_phy_path_a_standby); + +void rtl8723_phy_pi_mode_switch(struct ieee80211_hw *hw, bool pi_mode) +{ + u32 mode; + + mode = pi_mode ? 0x01000100 : 0x01000000; + rtl_set_bbreg(hw, 0x820, MASKDWORD, mode); + rtl_set_bbreg(hw, 0x828, MASKDWORD, mode); +} +EXPORT_SYMBOL_GPL(rtl8723_phy_pi_mode_switch); --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/rtl8723com/phy_common.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/rtl8723com/phy_common.h @@ -0,0 +1,89 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2014 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __PHY_COMMON__ +#define __PHY_COMMON__ + +#define RT_CANNOT_IO(hw) false + +enum swchnlcmd_id { + CMDID_END, + CMDID_SET_TXPOWEROWER_LEVEL, + CMDID_BBREGWRITE10, + CMDID_WRITEPORT_ULONG, + CMDID_WRITEPORT_USHORT, + CMDID_WRITEPORT_UCHAR, + CMDID_RF_WRITEREG, +}; + +struct swchnlcmd { + enum swchnlcmd_id cmdid; + u32 para1; + u32 para2; + u32 msdelay; +}; + +u32 rtl8723_phy_query_bb_reg(struct ieee80211_hw *hw, + u32 regaddr, u32 bitmask); +void rtl8723_phy_set_bb_reg(struct ieee80211_hw *hw, u32 regaddr, + u32 bitmask, u32 data); +u32 rtl8723_phy_calculate_bit_shift(u32 bitmask); +u32 rtl8723_phy_rf_serial_read(struct ieee80211_hw *hw, + enum radio_path rfpath, u32 offset); +void rtl8723_phy_rf_serial_write(struct ieee80211_hw *hw, + enum radio_path rfpath, + u32 offset, u32 data); +long rtl8723_phy_txpwr_idx_to_dbm(struct ieee80211_hw *hw, + enum wireless_mode wirelessmode, + u8 txpwridx); +void rtl8723_phy_init_bb_rf_reg_def(struct ieee80211_hw *hw); +bool rtl8723_phy_set_sw_chnl_cmdarray(struct swchnlcmd *cmdtable, + u32 cmdtableidx, + u32 cmdtablesz, + enum swchnlcmd_id cmdid, + u32 para1, u32 para2, + u32 msdelay); +void rtl8723_phy_path_a_fill_iqk_matrix(struct ieee80211_hw *hw, + bool iqk_ok, + long result[][8], + u8 final_candidate, + bool btxonly); +void rtl8723_save_adda_registers(struct ieee80211_hw *hw, u32 *addareg, + u32 *addabackup, u32 registernum); +void rtl8723_phy_save_mac_registers(struct ieee80211_hw *hw, + u32 *macreg, u32 *macbackup); +void rtl8723_phy_reload_adda_registers(struct ieee80211_hw *hw, + u32 *addareg, u32 *addabackup, + u32 regiesternum); +void rtl8723_phy_reload_mac_registers(struct ieee80211_hw *hw, + u32 *macreg, u32 *macbackup); +void rtl8723_phy_path_adda_on(struct ieee80211_hw *hw, u32 *addareg, + bool is_patha_on, bool is2t); +void rtl8723_phy_mac_setting_calibration(struct ieee80211_hw *hw, + u32 *macreg, u32 *macbackup); +void rtl8723_phy_path_a_standby(struct ieee80211_hw *hw); +void rtl8723_phy_pi_mode_switch(struct ieee80211_hw *hw, bool pi_mode); + +#endif --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/stats.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/stats.c @@ -176,6 +176,7 @@ struct rtl_sta_info *drv_priv = NULL; struct ieee80211_sta *sta = NULL; long undec_sm_pwdb; + long undec_sm_cck; rcu_read_lock(); if (rtlpriv->mac80211.opmode != NL80211_IFTYPE_STATION) @@ -185,12 +186,16 @@ if (sta) { drv_priv = (struct rtl_sta_info *) sta->drv_priv; undec_sm_pwdb = drv_priv->rssi_stat.undec_sm_pwdb; + undec_sm_cck = drv_priv->rssi_stat.undec_sm_cck; } else { undec_sm_pwdb = rtlpriv->dm.undec_sm_pwdb; + undec_sm_cck = rtlpriv->dm.undec_sm_cck; } if (undec_sm_pwdb < 0) undec_sm_pwdb = pstatus->rx_pwdb_all; + if (undec_sm_cck < 0) + undec_sm_cck = pstatus->rx_pwdb_all; if (pstatus->rx_pwdb_all > (u32) undec_sm_pwdb) { undec_sm_pwdb = (((undec_sm_pwdb) * (RX_SMOOTH_FACTOR - 1)) + @@ -200,6 +205,15 @@ undec_sm_pwdb = (((undec_sm_pwdb) * (RX_SMOOTH_FACTOR - 1)) + (pstatus->rx_pwdb_all)) / (RX_SMOOTH_FACTOR); } + if (pstatus->rx_pwdb_all > (u32) undec_sm_cck) { + undec_sm_cck = (((undec_sm_pwdb) * + (RX_SMOOTH_FACTOR - 1)) + + (pstatus->rx_pwdb_all)) / (RX_SMOOTH_FACTOR); + undec_sm_cck = undec_sm_cck + 1; + } else { + undec_sm_pwdb = (((undec_sm_cck) * (RX_SMOOTH_FACTOR - 1)) + + (pstatus->rx_pwdb_all)) / (RX_SMOOTH_FACTOR); + } if (sta) { drv_priv->rssi_stat.undec_sm_pwdb = undec_sm_pwdb; --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/usb.c +++ linux-3.13.0/drivers/net/wireless/rtlwifi/usb.c @@ -410,7 +410,7 @@ mac->current_ampdu_factor = 3; /* QOS */ - rtlusb->acm_method = eAcmWay2_SW; + rtlusb->acm_method = EACMWAY2_SW; /* IRQ */ /* HIMR - turn all on */ @@ -483,6 +483,8 @@ if (unicast) rtlpriv->link_info.num_rx_inperiod++; } + /* static bcn for roaming */ + rtl_beacon_statistic(hw, skb); } } @@ -553,7 +555,7 @@ } } -#define __RX_SKB_MAX_QUEUED 32 +#define __RX_SKB_MAX_QUEUED 64 static void _rtl_rx_work(unsigned long param) { --- linux-3.13.0.orig/drivers/net/wireless/rtlwifi/wifi.h +++ linux-3.13.0/drivers/net/wireless/rtlwifi/wifi.h @@ -49,6 +49,7 @@ #define IQK_ADDA_REG_NUM 16 #define IQK_MAC_REG_NUM 4 +#define IQK_THRESHOLD 8 #define MAX_KEY_LEN 61 #define KEY_BUF_SIZE 5 @@ -96,6 +97,7 @@ #define CHANNEL_MAX_NUMBER_2G 14 #define AVG_THERMAL_NUM 8 #define AVG_THERMAL_NUM_88E 4 +#define AVG_THERMAL_NUM_8723BE 4 #define MAX_TID_COUNT 9 /* for early mode */ @@ -107,6 +109,19 @@ #define MAX_CHNL_GROUP_24G 6 #define MAX_CHNL_GROUP_5G 14 +#define TX_PWR_BY_RATE_NUM_BAND 2 +#define TX_PWR_BY_RATE_NUM_RF 4 +#define TX_PWR_BY_RATE_NUM_SECTION 12 +#define MAX_BASE_NUM_IN_PHY_REG_PG_24G 6 +#define MAX_BASE_NUM_IN_PHY_REG_PG_5G 5 + +enum rf_tx_num { + RF_1TX = 0, + RF_2TX, + RF_MAX_TX_NUM, + RF_TX_NUM_NONIMPLEMENT, +}; + struct txpower_info_2g { u8 index_cck_base[MAX_RF_PATH][MAX_CHNL_GROUP_24G]; u8 index_bw40_base[MAX_RF_PATH][MAX_CHNL_GROUP_24G]; @@ -115,6 +130,8 @@ u8 ofdm_diff[MAX_RF_PATH][MAX_TX_COUNT]; u8 bw20_diff[MAX_RF_PATH][MAX_TX_COUNT]; u8 bw40_diff[MAX_RF_PATH][MAX_TX_COUNT]; + u8 bw80_diff[MAX_RF_PATH][MAX_TX_COUNT]; + u8 bw160_diff[MAX_RF_PATH][MAX_TX_COUNT]; }; struct txpower_info_5g { @@ -125,6 +142,15 @@ u8 bw40_diff[MAX_RF_PATH][MAX_TX_COUNT]; }; +enum rate_section { + CCK = 0, + OFDM, + HT_MCS0_MCS7, + HT_MCS8_MCS15, + VHT_1SSMCS0_1SSMCS9, + VHT_2SSMCS0_2SSMCS9, +}; + enum intf_type { INTF_PCI = 0, INTF_USB = 1, @@ -158,6 +184,7 @@ HARDWARE_TYPE_RTL8192DU, HARDWARE_TYPE_RTL8723AE, HARDWARE_TYPE_RTL8723U, + HARDWARE_TYPE_RTL8723BE, HARDWARE_TYPE_RTL8188EE, /* keep it last */ @@ -195,6 +222,12 @@ _pdesc->rxmcs == DESC92_RATE5_5M || \ _pdesc->rxmcs == DESC92_RATE11M) +#define RTL8723E_RX_HAL_IS_CCK_RATE(rxmcs) \ + ((rxmcs) == DESC92_RATE1M || \ + (rxmcs) == DESC92_RATE2M || \ + (rxmcs) == DESC92_RATE5_5M || \ + (rxmcs) == DESC92_RATE11M) + enum scan_operation_backup_opt { SCAN_OPT_BACKUP = 0, SCAN_OPT_RESTORE, @@ -330,6 +363,7 @@ HAL_DEF_WOWLAN, HW_VAR_MRC, + HW_VAR_KEEP_ALIVE, HW_VAR_MGT_FILTER, HW_VAR_CTRL_FILTER, @@ -348,34 +382,34 @@ RT_CID_8187_HW_LED = 3, RT_CID_8187_NETGEAR = 4, RT_CID_WHQL = 5, - RT_CID_819x_CAMEO = 6, - RT_CID_819x_RUNTOP = 7, - RT_CID_819x_Senao = 8, + RT_CID_819X_CAMEO = 6, + RT_CID_819X_RUNTOP = 7, + RT_CID_819X_SENAO = 8, RT_CID_TOSHIBA = 9, - RT_CID_819x_Netcore = 10, - RT_CID_Nettronix = 11, + RT_CID_819X_NETCORE = 10, + RT_CID_NETTRONIX = 11, RT_CID_DLINK = 12, RT_CID_PRONET = 13, RT_CID_COREGA = 14, - RT_CID_819x_ALPHA = 15, - RT_CID_819x_Sitecom = 16, + RT_CID_819X_ALPHA = 15, + RT_CID_819X_SITECOM = 16, RT_CID_CCX = 17, - RT_CID_819x_Lenovo = 18, - RT_CID_819x_QMI = 19, - RT_CID_819x_Edimax_Belkin = 20, - RT_CID_819x_Sercomm_Belkin = 21, - RT_CID_819x_CAMEO1 = 22, - RT_CID_819x_MSI = 23, - RT_CID_819x_Acer = 24, - RT_CID_819x_HP = 27, - RT_CID_819x_CLEVO = 28, - RT_CID_819x_Arcadyan_Belkin = 29, - RT_CID_819x_SAMSUNG = 30, - RT_CID_819x_WNC_COREGA = 31, - RT_CID_819x_Foxcoon = 32, - RT_CID_819x_DELL = 33, - RT_CID_819x_PRONETS = 34, - RT_CID_819x_Edimax_ASUS = 35, + RT_CID_819X_LENOVO = 18, + RT_CID_819X_QMI = 19, + RT_CID_819X_EDIMAX_BELKIN = 20, + RT_CID_819X_SERCOMM_BELKIN = 21, + RT_CID_819X_CAMEO1 = 22, + RT_CID_819X_MSI = 23, + RT_CID_819X_ACER = 24, + RT_CID_819X_HP = 27, + RT_CID_819X_CLEVO = 28, + RT_CID_819X_ARCADYAN_BELKIN = 29, + RT_CID_819X_SAMSUNG = 30, + RT_CID_819X_WNC_COREGA = 31, + RT_CID_819X_FOXCOON = 32, + RT_CID_819X_DELL = 33, + RT_CID_819X_PRONETS = 34, + RT_CID_819X_EDIMAX_ASUS = 35, RT_CID_NETGEAR = 36, RT_CID_PLANEX = 37, RT_CID_CC_C = 38, @@ -608,7 +642,7 @@ enum acm_method { eAcmWay0_SwAndHw = 0, eAcmWay1_HW = 1, - eAcmWay2_SW = 2, + EACMWAY2_SW = 2, }; enum macphy_mode { @@ -817,9 +851,9 @@ u32 high_rssi_thresh_for_ra; u32 high2low_rssi_thresh_for_ra; u8 low2high_rssi_thresh_for_ra40m; - u32 low_rssi_thresh_for_ra40M; + u32 low_rssi_thresh_for_ra40m; u8 low2high_rssi_thresh_for_ra20m; - u32 low_rssi_thresh_for_ra20M; + u32 low_rssi_thresh_for_ra20m; u32 upper_rssi_threshold_ratr; u32 middleupper_rssi_threshold_ratr; u32 middle_rssi_threshold_ratr; @@ -986,6 +1020,13 @@ u8 cck_high_power; /* MAX_PG_GROUP groups of pwr diff by rates */ u32 mcs_offset[MAX_PG_GROUP][16]; + u32 tx_power_by_rate_offset[TX_PWR_BY_RATE_NUM_BAND] + [TX_PWR_BY_RATE_NUM_RF] + [TX_PWR_BY_RATE_NUM_RF] + [TX_PWR_BY_RATE_NUM_SECTION]; + u8 txpwr_by_rate_base_24g[TX_PWR_BY_RATE_NUM_RF] + [TX_PWR_BY_RATE_NUM_RF] + [MAX_BASE_NUM_IN_PHY_REG_PG_24G]; u8 default_initialgain[4]; /* the current Tx power level */ @@ -1033,6 +1074,7 @@ struct rssi_sta { long undec_sm_pwdb; + long undec_sm_cck; }; struct rtl_tid_data { @@ -1212,6 +1254,7 @@ bool being_init_adapter; bool bbrf_ready; bool mac_func_enable; + bool pre_edcca_enable; struct bt_coexist_8723 hal_coex_8723; enum intf_type interface; @@ -1320,11 +1363,23 @@ bool becomelinked; }; +struct dm_phy_dbg_info { + char rx_snrdb[4]; + u64 num_qry_phy_status; + u64 num_qry_phy_status_cck; + u64 num_qry_phy_status_ofdm; + u16 num_qry_beacon_pkt; + u16 num_non_be_pkt; + s32 rx_evm[4]; +}; + struct rtl_dm { /*PHY status for Dynamic Management */ long entry_min_undec_sm_pwdb; + long undec_sm_cck; long undec_sm_pwdb; /*out dm */ long entry_max_undec_sm_pwdb; + s32 ofdm_pkt_cnt; bool dm_initialgain_enable; bool dynamic_txpower_enable; bool current_turbo_edca; @@ -1339,6 +1394,7 @@ bool inform_fw_driverctrldm; bool current_mrc_switch; u8 txpowercount; + u8 powerindex_backup[6]; u8 thermalvalue_rxgain; u8 thermalvalue_iqk; @@ -1350,20 +1406,36 @@ bool done_txpower; u8 dynamic_txhighpower_lvl; /*Tx high power level */ u8 dm_flag; /*Indicate each dynamic mechanism's status. */ + u8 dm_flag_tmp; u8 dm_type; + u8 dm_rssi_sel; u8 txpower_track_control; bool interrupt_migration; bool disable_tx_int; char ofdm_index[2]; char cck_index; - char delta_power_index; - char delta_power_index_last; - char power_index_offset; + char delta_power_index[MAX_RF_PATH]; + char delta_power_index_last[MAX_RF_PATH]; + char power_index_offset[MAX_RF_PATH]; + + bool one_entry_only; + struct dm_phy_dbg_info dbginfo; + + /* Dynamic ATC switch */ + bool atc_status; + bool large_cfo_hit; + bool is_freeze; + int cfo_tail[2]; + int cfo_ave_pre; + int crystal_cap; + u8 cfo_threshold; + u32 packet_count; + u32 packet_count_pre; /*88e tx power tracking*/ u8 swing_idx_ofdm[2]; u8 swing_idx_ofdm_cur; - u8 swing_idx_ofdm_base; + u8 swing_idx_ofdm_base[MAX_RF_PATH]; bool swing_flag_ofdm; u8 swing_idx_cck; u8 swing_idx_cck_cur; @@ -1416,12 +1488,14 @@ u8 eeprom_tssi_5g[3][2]; /* for 5GL/5GM/5GH band. */ u8 eeprom_pwrlimit_ht20[CHANNEL_GROUP_MAX]; u8 eeprom_pwrlimit_ht40[CHANNEL_GROUP_MAX]; - u8 eeprom_chnlarea_txpwr_cck[2][CHANNEL_GROUP_MAX_2G]; - u8 eeprom_chnlarea_txpwr_ht40_1s[2][CHANNEL_GROUP_MAX]; - u8 eprom_chnl_txpwr_ht40_2sdf[2][CHANNEL_GROUP_MAX]; + u8 eeprom_chnlarea_txpwr_cck[MAX_RF_PATH][CHANNEL_GROUP_MAX_2G]; + u8 eeprom_chnlarea_txpwr_ht40_1s[MAX_RF_PATH][CHANNEL_GROUP_MAX]; + u8 eprom_chnl_txpwr_ht40_2sdf[MAX_RF_PATH][CHANNEL_GROUP_MAX]; u8 txpwrlevel_cck[2][CHANNEL_MAX_NUMBER_2G]; - u8 txpwrlevel_ht40_1s[2][CHANNEL_MAX_NUMBER]; /*For HT 40MHZ pwr */ - u8 txpwrlevel_ht40_2s[2][CHANNEL_MAX_NUMBER]; /*For HT 40MHZ pwr */ + /* For HT 40MHZ pwr */ + u8 txpwrlevel_ht40_1s[MAX_RF_PATH][CHANNEL_MAX_NUMBER]; + u8 txpwrlevel_ht40_2s[MAX_RF_PATH][CHANNEL_MAX_NUMBER]; + u8 txpwr_ht40diff[MAX_RF_PATH][MAX_TX_COUNT];/*BW40_24G_Diff*/ u8 internal_pa_5g[2]; /* pathA / pathB */ u8 eeprom_c9; @@ -1638,6 +1712,8 @@ bool btx_enable_sw_calc_duration; }; +struct rtl92c_firmware_header; + struct rtl_hal_ops { int (*init_sw_vars) (struct ieee80211_hw *hw); void (*deinit_sw_vars) (struct ieee80211_hw *hw); @@ -1694,6 +1770,8 @@ enum led_ctl_mode ledaction); void (*set_desc) (u8 *pdesc, bool istx, u8 desc_name, u8 *val); u32 (*get_desc) (u8 *pdesc, bool istx, u8 desc_name); + bool (*is_tx_desc_closed) (struct ieee80211_hw *hw, + u8 hw_queue, u16 index); void (*tx_polling) (struct ieee80211_hw *hw, u8 hw_queue); void (*enable_hw_sec) (struct ieee80211_hw *hw); void (*set_key) (struct ieee80211_hw *hw, u32 key_index, @@ -1732,6 +1810,8 @@ void (*bt_coex_off_before_lps) (struct ieee80211_hw *hw); void (*fill_h2c_cmd) (struct ieee80211_hw *hw, u8 element_id, u32 cmd_len, u8 *p_cmdbuffer); + bool (*get_btc_status) (void); + bool (*is_fw_header) (struct rtl92c_firmware_header *hdr); }; struct rtl_intf_ops { @@ -1774,6 +1854,10 @@ /* default: 1 = using linked fw power save */ bool fwctrl_lps; + + /* default: 0 = not using MSI interrupts mode */ + /* submodules should set their own defalut value */ + bool msi_support; }; struct rtl_hal_usbint_cfg { @@ -1804,6 +1888,7 @@ bool write_readback; char *name; char *fw_name; + char *alt_fw_name; struct rtl_hal_ops *ops; struct rtl_mod_params *mod_params; struct rtl_hal_usbint_cfg *usb_interface_cfg; @@ -1908,6 +1993,7 @@ u8 cur_ccasate; u8 pre_rfstate; u8 cur_rfstate; + u8 initialize; long rssi_val_min; }; @@ -1948,6 +2034,7 @@ u8 pre_ccastate; u8 cur_ccasate; u8 large_fa_hit; + u8 dig_dynamic_min; u8 forbidden_igi; u8 dig_state; u8 dig_highpwrstate; @@ -1964,6 +2051,7 @@ char backoffval_range_min; u8 dig_min_0; u8 dig_min_1; + u8 bt30_cur_igi; bool media_connect_0; bool media_connect_1; @@ -1978,6 +2066,96 @@ spinlock_t glb_list_lock; }; +struct rtl_btc_info { + u8 bt_type; + u8 btcoexist; + u8 ant_num; +}; + +struct bt_coexist_info { + struct rtl_btc_ops *btc_ops; + struct rtl_btc_info btc_info; + /* EEPROM BT info. */ + u8 eeprom_bt_coexist; + u8 eeprom_bt_type; + u8 eeprom_bt_ant_num; + u8 eeprom_bt_ant_isol; + u8 eeprom_bt_radio_shared; + + u8 bt_coexistence; + u8 bt_ant_num; + u8 bt_coexist_type; + u8 bt_state; + u8 bt_cur_state; /* 0:on, 1:off */ + u8 bt_ant_isolation; /* 0:good, 1:bad */ + u8 bt_pape_ctrl; /* 0:SW, 1:SW/HW dynamic */ + u8 bt_service; + u8 bt_radio_shared_type; + u8 bt_rfreg_origin_1e; + u8 bt_rfreg_origin_1f; + u8 bt_rssi_state; + u32 ratio_tx; + u32 ratio_pri; + u32 bt_edca_ul; + u32 bt_edca_dl; + + bool init_set; + bool bt_busy_traffic; + bool bt_traffic_mode_set; + bool bt_non_traffic_mode_set; + + bool fw_coexist_all_off; + bool sw_coexist_all_off; + bool hw_coexist_all_off; + u32 cstate; + u32 previous_state; + u32 cstate_h; + u32 previous_state_h; + + u8 bt_pre_rssi_state; + u8 bt_pre_rssi_state1; + + u8 reg_bt_iso; + u8 reg_bt_sco; + bool balance_on; + u8 bt_active_zero_cnt; + bool cur_bt_disabled; + bool pre_bt_disabled; + + u8 bt_profile_case; + u8 bt_profile_action; + bool bt_busy; + bool hold_for_bt_operation; + u8 lps_counter; +}; + +struct rtl_btc_ops { + void (*btc_init_variables) (struct rtl_priv *rtlpriv); + void (*btc_init_hal_vars) (struct rtl_priv *rtlpriv); + void (*btc_init_hw_config) (struct rtl_priv *rtlpriv); + void (*btc_ips_notify) (struct rtl_priv *rtlpriv, u8 type); + void (*btc_scan_notify) (struct rtl_priv *rtlpriv, u8 scantype); + void (*btc_connect_notify) (struct rtl_priv *rtlpriv, u8 action); + void (*btc_mediastatus_notify) (struct rtl_priv *rtlpriv, + enum _RT_MEDIA_STATUS mstatus); + void (*btc_periodical) (struct rtl_priv *rtlpriv); + void (*btc_halt_notify) (void); + void (*btc_btinfo_notify) (struct rtl_priv *rtlpriv, + u8 *tmp_buf, u8 length); + bool (*btc_is_limited_dig) (struct rtl_priv *rtlpriv); + bool (*btc_is_disable_edca_turbo) (struct rtl_priv *rtlpriv); + bool (*btc_is_bt_disabled) (struct rtl_priv *rtlpriv); +}; + +struct proxim { + bool proxim_on; + + void *proximity_priv; + int (*proxim_rx)(struct ieee80211_hw *hw, struct rtl_stats *status, + struct sk_buff *skb); + u8 (*proxim_get_var)(struct ieee80211_hw *hw, u8 type); +}; + struct rtl_priv { struct ieee80211_hw *hw; struct completion firmware_loading_complete; @@ -2028,25 +2206,32 @@ struct dig_t dm_digtable; struct ps_t dm_pstable; - /* section shared by individual drivers */ - union { - struct { /* data buffer pointer for USB reads */ - __le32 *usb_data; - int usb_data_index; - bool initialized; - }; - struct { /* section for 8723ae */ - bool reg_init; /* true if regs saved */ - u32 reg_874; - u32 reg_c70; - u32 reg_85c; - u32 reg_a74; - bool bt_operation_on; - }; - }; + u32 reg_874; + u32 reg_c70; + u32 reg_85c; + u32 reg_a74; + bool reg_init; /* true if regs saved */ + bool bt_operation_on; + __le32 *usb_data; + int usb_data_index; + bool initialized; bool enter_ps; /* true when entering PS */ u8 rate_mask[5]; + /* intel Proximity, should be alloc mem + * in intel Proximity module and can only + * be used in intel Proximity mode + */ + struct proxim proximity; + + /*for bt coexist use*/ + struct bt_coexist_info btcoexist; + + /* separate 92ee from other ICs, + * 92ee use new trx flow. + */ + bool use_new_trx_flow; + /*This must be the last item so that it points to the data allocated beyond this structure like: @@ -2078,6 +2263,9 @@ BT_CSR_BC8 = 4, BT_RTL8756 = 5, BT_RTL8723A = 6, + BT_RTL8821 = 7, + BT_RTL8723B = 8, + BT_RTL8192E = 9, }; enum bt_cur_state { @@ -2103,62 +2291,6 @@ BT_RADIO_INDIVIDUAL = 1, }; -struct bt_coexist_info { - - /* EEPROM BT info. */ - u8 eeprom_bt_coexist; - u8 eeprom_bt_type; - u8 eeprom_bt_ant_num; - u8 eeprom_bt_ant_isol; - u8 eeprom_bt_radio_shared; - - u8 bt_coexistence; - u8 bt_ant_num; - u8 bt_coexist_type; - u8 bt_state; - u8 bt_cur_state; /* 0:on, 1:off */ - u8 bt_ant_isolation; /* 0:good, 1:bad */ - u8 bt_pape_ctrl; /* 0:SW, 1:SW/HW dynamic */ - u8 bt_service; - u8 bt_radio_shared_type; - u8 bt_rfreg_origin_1e; - u8 bt_rfreg_origin_1f; - u8 bt_rssi_state; - u32 ratio_tx; - u32 ratio_pri; - u32 bt_edca_ul; - u32 bt_edca_dl; - - bool init_set; - bool bt_busy_traffic; - bool bt_traffic_mode_set; - bool bt_non_traffic_mode_set; - - bool fw_coexist_all_off; - bool sw_coexist_all_off; - bool hw_coexist_all_off; - u32 cstate; - u32 previous_state; - u32 cstate_h; - u32 previous_state_h; - - u8 bt_pre_rssi_state; - u8 bt_pre_rssi_state1; - - u8 reg_bt_iso; - u8 reg_bt_sco; - bool balance_on; - u8 bt_active_zero_cnt; - bool cur_bt_disabled; - bool pre_bt_disabled; - - u8 bt_profile_case; - u8 bt_profile_action; - bool bt_busy; - bool hold_for_bt_operation; - u8 lps_counter; -}; - /**************************************** mem access macro define start --- linux-3.13.0.orig/drivers/net/wireless/ti/wlcore/main.c +++ linux-3.13.0/drivers/net/wireless/ti/wlcore/main.c @@ -5147,7 +5147,8 @@ mutex_unlock(&wl->mutex); } -static void wlcore_op_flush(struct ieee80211_hw *hw, u32 queues, bool drop) +static void wlcore_op_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + u32 queues, bool drop) { struct wl1271 *wl = hw->priv; --- linux-3.13.0.orig/drivers/net/xen-netback/common.h +++ linux-3.13.0/drivers/net/xen-netback/common.h @@ -113,6 +113,11 @@ domid_t domid; unsigned int handle; + /* Is this interface disabled? True when backend discovers + * frontend is rogue. + */ + bool disabled; + /* Use NAPI for guest TX */ struct napi_struct napi; /* When feature-split-event-channels = 0, tx_irq = rx_irq. */ --- linux-3.13.0.orig/drivers/net/xen-netback/interface.c +++ linux-3.13.0/drivers/net/xen-netback/interface.c @@ -67,6 +67,15 @@ struct xenvif *vif = container_of(napi, struct xenvif, napi); int work_done; + /* This vif is rogue, we pretend we've there is nothing to do + * for this vif to deschedule it from NAPI. But this interface + * will be turned off in thread context later. + */ + if (unlikely(vif->disabled)) { + napi_complete(napi); + return 0; + } + work_done = xenvif_tx_action(vif, budget); if (work_done < budget) { @@ -323,6 +332,8 @@ vif->ip_csum = 1; vif->dev = dev; + vif->disabled = false; + vif->credit_bytes = vif->remaining_credit = ~0UL; vif->credit_usec = 0UL; init_timer(&vif->credit_timeout); --- linux-3.13.0.orig/drivers/net/xen-netback/netback.c +++ linux-3.13.0/drivers/net/xen-netback/netback.c @@ -203,8 +203,8 @@ * into multiple copies tend to give large frags their * own buffers as before. */ - if ((offset + size > MAX_BUFFER_OFFSET) && - (size <= MAX_BUFFER_OFFSET) && offset && !head) + BUG_ON(size > MAX_BUFFER_OFFSET); + if ((offset + size > MAX_BUFFER_OFFSET) && offset && !head) return true; return false; @@ -338,7 +338,7 @@ struct gnttab_copy *copy_gop; struct xenvif_rx_meta *meta; unsigned long bytes; - int gso_type; + int gso_type = XEN_NETIF_GSO_TYPE_NONE; /* Data must not cross a page boundary. */ BUG_ON(size + offset > PAGE_SIZE<gso_type & SKB_GSO_TCPV4) - gso_type = XEN_NETIF_GSO_TYPE_TCPV4; - else if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV6) - gso_type = XEN_NETIF_GSO_TYPE_TCPV6; - else - gso_type = XEN_NETIF_GSO_TYPE_NONE; + if (skb_is_gso(skb)) { + if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV4) + gso_type = XEN_NETIF_GSO_TYPE_TCPV4; + else if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV6) + gso_type = XEN_NETIF_GSO_TYPE_TCPV6; + } if (*head && ((1 << gso_type) & vif->gso_mask)) vif->rx.req_cons++; @@ -436,19 +436,15 @@ int head = 1; int old_meta_prod; int gso_type; - int gso_size; old_meta_prod = npo->meta_prod; - if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV4) { - gso_type = XEN_NETIF_GSO_TYPE_TCPV4; - gso_size = skb_shinfo(skb)->gso_size; - } else if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV6) { - gso_type = XEN_NETIF_GSO_TYPE_TCPV6; - gso_size = skb_shinfo(skb)->gso_size; - } else { - gso_type = XEN_NETIF_GSO_TYPE_NONE; - gso_size = 0; + gso_type = XEN_NETIF_GSO_TYPE_NONE; + if (skb_is_gso(skb)) { + if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV4) + gso_type = XEN_NETIF_GSO_TYPE_TCPV4; + else if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV6) + gso_type = XEN_NETIF_GSO_TYPE_TCPV6; } /* Set up a GSO prefix descriptor, if necessary */ @@ -456,7 +452,7 @@ req = RING_GET_REQUEST(&vif->rx, vif->rx.req_cons++); meta = npo->meta + npo->meta_prod++; meta->gso_type = gso_type; - meta->gso_size = gso_size; + meta->gso_size = skb_shinfo(skb)->gso_size; meta->size = 0; meta->id = req->id; } @@ -466,7 +462,7 @@ if ((1 << gso_type) & vif->gso_mask) { meta->gso_type = gso_type; - meta->gso_size = gso_size; + meta->gso_size = skb_shinfo(skb)->gso_size; } else { meta->gso_type = XEN_NETIF_GSO_TYPE_NONE; meta->gso_size = 0; @@ -756,7 +752,8 @@ static void xenvif_fatal_tx_err(struct xenvif *vif) { netdev_err(vif->dev, "fatal error; disabling device\n"); - xenvif_carrier_off(vif); + vif->disabled = true; + xenvif_kick_thread(vif); } static int xenvif_count_requests(struct xenvif *vif, @@ -1483,7 +1480,7 @@ vif->tx.sring->req_prod, vif->tx.req_cons, XEN_NETIF_TX_RING_SIZE); xenvif_fatal_tx_err(vif); - continue; + break; } work_to_do = RING_HAS_UNCONSUMED_REQUESTS(&vif->tx); @@ -1877,7 +1874,18 @@ while (!kthread_should_stop()) { wait_event_interruptible(vif->wq, rx_work_todo(vif) || + vif->disabled || kthread_should_stop()); + + /* This frontend is found to be rogue, disable it in + * kthread context. Currently this is only set when + * netback finds out frontend sends malformed packet, + * but we cannot disable the interface in softirq + * context so we defer it here. + */ + if (unlikely(vif->disabled && netif_carrier_ok(vif->dev))) + xenvif_carrier_off(vif); + if (kthread_should_stop()) break; --- linux-3.13.0.orig/drivers/net/xen-netfront.c +++ linux-3.13.0/drivers/net/xen-netfront.c @@ -117,6 +117,7 @@ } tx_skbs[NET_TX_RING_SIZE]; grant_ref_t gref_tx_head; grant_ref_t grant_tx_ref[NET_TX_RING_SIZE]; + struct page *grant_tx_page[NET_TX_RING_SIZE]; unsigned tx_skb_freelist; spinlock_t rx_lock ____cacheline_aligned_in_smp; @@ -396,6 +397,7 @@ gnttab_release_grant_reference( &np->gref_tx_head, np->grant_tx_ref[id]); np->grant_tx_ref[id] = GRANT_INVALID_REF; + np->grant_tx_page[id] = NULL; add_id_to_freelist(&np->tx_skb_freelist, np->tx_skbs, id); dev_kfree_skb_irq(skb); } @@ -452,6 +454,7 @@ gnttab_grant_foreign_access_ref(ref, np->xbdev->otherend_id, mfn, GNTMAP_readonly); + np->grant_tx_page[id] = virt_to_page(data); tx->gref = np->grant_tx_ref[id] = ref; tx->offset = offset; tx->size = len; @@ -466,9 +469,6 @@ len = skb_frag_size(frag); offset = frag->page_offset; - /* Data must not cross a page boundary. */ - BUG_ON(len + offset > PAGE_SIZE<> PAGE_SHIFT; offset &= ~PAGE_MASK; @@ -476,8 +476,6 @@ while (len > 0) { unsigned long bytes; - BUG_ON(offset >= PAGE_SIZE); - bytes = PAGE_SIZE - offset; if (bytes > len) bytes = len; @@ -497,6 +495,7 @@ np->xbdev->otherend_id, mfn, GNTMAP_readonly); + np->grant_tx_page[id] = page; tx->gref = np->grant_tx_ref[id] = ref; tx->offset = offset; tx->size = bytes; @@ -569,9 +568,13 @@ slots = DIV_ROUND_UP(offset + len, PAGE_SIZE) + xennet_count_skb_frag_slots(skb); if (unlikely(slots > MAX_SKB_FRAGS + 1)) { - net_alert_ratelimited( - "xennet: skb rides the rocket: %d slots\n", slots); - goto drop; + net_dbg_ratelimited("xennet: skb rides the rocket: %d slots, %d bytes\n", + slots, skb->len); + if (skb_linearize(skb)) + goto drop; + data = skb->data; + offset = offset_in_page(data); + len = skb_headlen(skb); } spin_lock_irqsave(&np->tx_lock, flags); @@ -596,6 +599,7 @@ mfn = virt_to_mfn(data); gnttab_grant_foreign_access_ref( ref, np->xbdev->otherend_id, mfn, GNTMAP_readonly); + np->grant_tx_page[id] = virt_to_page(data); tx->gref = np->grant_tx_ref[id] = ref; tx->offset = offset; tx->size = len; @@ -1091,13 +1095,13 @@ unsigned int start; do { - start = u64_stats_fetch_begin_bh(&stats->syncp); + start = u64_stats_fetch_begin_irq(&stats->syncp); rx_packets = stats->rx_packets; tx_packets = stats->tx_packets; rx_bytes = stats->rx_bytes; tx_bytes = stats->tx_bytes; - } while (u64_stats_fetch_retry_bh(&stats->syncp, start)); + } while (u64_stats_fetch_retry_irq(&stats->syncp, start)); tot->rx_packets += rx_packets; tot->tx_packets += tx_packets; @@ -1122,10 +1126,11 @@ continue; skb = np->tx_skbs[i].skb; - gnttab_end_foreign_access_ref(np->grant_tx_ref[i], - GNTMAP_readonly); - gnttab_release_grant_reference(&np->gref_tx_head, - np->grant_tx_ref[i]); + get_page(np->grant_tx_page[i]); + gnttab_end_foreign_access(np->grant_tx_ref[i], + GNTMAP_readonly, + (unsigned long)page_address(np->grant_tx_page[i])); + np->grant_tx_page[i] = NULL; np->grant_tx_ref[i] = GRANT_INVALID_REF; add_id_to_freelist(&np->tx_skb_freelist, np->tx_skbs, i); dev_kfree_skb_irq(skb); @@ -1134,78 +1139,35 @@ static void xennet_release_rx_bufs(struct netfront_info *np) { - struct mmu_update *mmu = np->rx_mmu; - struct multicall_entry *mcl = np->rx_mcl; - struct sk_buff_head free_list; - struct sk_buff *skb; - unsigned long mfn; - int xfer = 0, noxfer = 0, unused = 0; int id, ref; - dev_warn(&np->netdev->dev, "%s: fix me for copying receiver.\n", - __func__); - return; - - skb_queue_head_init(&free_list); - spin_lock_bh(&np->rx_lock); for (id = 0; id < NET_RX_RING_SIZE; id++) { - ref = np->grant_rx_ref[id]; - if (ref == GRANT_INVALID_REF) { - unused++; - continue; - } + struct sk_buff *skb; + struct page *page; skb = np->rx_skbs[id]; - mfn = gnttab_end_foreign_transfer_ref(ref); - gnttab_release_grant_reference(&np->gref_rx_head, ref); - np->grant_rx_ref[id] = GRANT_INVALID_REF; - - if (0 == mfn) { - skb_shinfo(skb)->nr_frags = 0; - dev_kfree_skb(skb); - noxfer++; + if (!skb) continue; - } - if (!xen_feature(XENFEAT_auto_translated_physmap)) { - /* Remap the page. */ - const struct page *page = - skb_frag_page(&skb_shinfo(skb)->frags[0]); - unsigned long pfn = page_to_pfn(page); - void *vaddr = page_address(page); + ref = np->grant_rx_ref[id]; + if (ref == GRANT_INVALID_REF) + continue; - MULTI_update_va_mapping(mcl, (unsigned long)vaddr, - mfn_pte(mfn, PAGE_KERNEL), - 0); - mcl++; - mmu->ptr = ((u64)mfn << PAGE_SHIFT) - | MMU_MACHPHYS_UPDATE; - mmu->val = pfn; - mmu++; + page = skb_frag_page(&skb_shinfo(skb)->frags[0]); - set_phys_to_machine(pfn, mfn); - } - __skb_queue_tail(&free_list, skb); - xfer++; - } - - dev_info(&np->netdev->dev, "%s: %d xfer, %d noxfer, %d unused\n", - __func__, xfer, noxfer, unused); + /* gnttab_end_foreign_access() needs a page ref until + * foreign access is ended (which may be deferred). + */ + get_page(page); + gnttab_end_foreign_access(ref, 0, + (unsigned long)page_address(page)); + np->grant_rx_ref[id] = GRANT_INVALID_REF; - if (xfer) { - if (!xen_feature(XENFEAT_auto_translated_physmap)) { - /* Do all the remapping work and M2P updates. */ - MULTI_mmu_update(mcl, np->rx_mmu, mmu - np->rx_mmu, - NULL, DOMID_SELF); - mcl++; - HYPERVISOR_multicall(np->rx_mcl, mcl - np->rx_mcl); - } + kfree_skb(skb); } - __skb_queue_purge(&free_list); - spin_unlock_bh(&np->rx_lock); } @@ -1358,6 +1320,7 @@ for (i = 0; i < NET_RX_RING_SIZE; i++) { np->rx_skbs[i] = NULL; np->grant_rx_ref[i] = GRANT_INVALID_REF; + np->grant_tx_page[i] = NULL; } /* A grant for every tx ring slot */ @@ -2115,7 +2078,7 @@ if (!xen_domain()) return -ENODEV; - if (xen_hvm_domain() && !xen_platform_pci_unplug) + if (!xen_has_pv_nic_devices()) return -ENODEV; pr_info("Initialising Xen virtual ethernet driver\n"); --- linux-3.13.0.orig/drivers/of/address.c +++ linux-3.13.0/drivers/of/address.c @@ -99,11 +99,12 @@ static int of_bus_pci_match(struct device_node *np) { /* + * "pciex" is PCI Express * "vci" is for the /chaos bridge on 1st-gen PCI powermacs * "ht" is hypertransport */ - return !strcmp(np->type, "pci") || !strcmp(np->type, "vci") || - !strcmp(np->type, "ht"); + return !strcmp(np->type, "pci") || !strcmp(np->type, "pciex") || + !strcmp(np->type, "vci") || !strcmp(np->type, "ht"); } static void of_bus_pci_count_cells(struct device_node *np, @@ -400,6 +401,21 @@ return NULL; } +static int of_empty_ranges_quirk(void) +{ + if (IS_ENABLED(CONFIG_PPC)) { + /* To save cycles, we cache the result */ + static int quirk_state = -1; + + if (quirk_state < 0) + quirk_state = + of_machine_is_compatible("Power Macintosh") || + of_machine_is_compatible("MacRISC"); + return quirk_state; + } + return false; +} + static int of_translate_one(struct device_node *parent, struct of_bus *bus, struct of_bus *pbus, __be32 *addr, int na, int ns, int pna, const char *rprop) @@ -425,12 +441,10 @@ * This code is only enabled on powerpc. --gcl */ ranges = of_get_property(parent, rprop, &rlen); -#if !defined(CONFIG_PPC) - if (ranges == NULL) { + if (ranges == NULL && !of_empty_ranges_quirk()) { pr_err("OF: no ranges; cannot translate\n"); return 1; } -#endif /* !defined(CONFIG_PPC) */ if (ranges == NULL || rlen == 0) { offset = of_read_number(addr, na); memset(addr, 0, pna * 4); --- linux-3.13.0.orig/drivers/of/base.c +++ linux-3.13.0/drivers/of/base.c @@ -1075,52 +1075,6 @@ EXPORT_SYMBOL_GPL(of_property_read_string); /** - * of_property_read_string_index - Find and read a string from a multiple - * strings property. - * @np: device node from which the property value is to be read. - * @propname: name of the property to be searched. - * @index: index of the string in the list of strings - * @out_string: pointer to null terminated return string, modified only if - * return value is 0. - * - * Search for a property in a device tree node and retrieve a null - * terminated string value (pointer to data, not a copy) in the list of strings - * contained in that property. - * Returns 0 on success, -EINVAL if the property does not exist, -ENODATA if - * property does not have a value, and -EILSEQ if the string is not - * null-terminated within the length of the property data. - * - * The out_string pointer is modified only if a valid string can be decoded. - */ -int of_property_read_string_index(struct device_node *np, const char *propname, - int index, const char **output) -{ - struct property *prop = of_find_property(np, propname, NULL); - int i = 0; - size_t l = 0, total = 0; - const char *p; - - if (!prop) - return -EINVAL; - if (!prop->value) - return -ENODATA; - if (strnlen(prop->value, prop->length) >= prop->length) - return -EILSEQ; - - p = prop->value; - - for (i = 0; total < prop->length; total += l, p += l) { - l = strlen(p) + 1; - if (i++ == index) { - *output = p; - return 0; - } - } - return -ENODATA; -} -EXPORT_SYMBOL_GPL(of_property_read_string_index); - -/** * of_property_match_string() - Find string in a list and return index * @np: pointer to node containing string list property * @propname: string list property name @@ -1146,7 +1100,7 @@ end = p + prop->length; for (i = 0; p < end; i++, p += l) { - l = strlen(p) + 1; + l = strnlen(p, end - p) + 1; if (p + l > end) return -EILSEQ; pr_debug("comparing %s with %s\n", string, p); @@ -1158,39 +1112,41 @@ EXPORT_SYMBOL_GPL(of_property_match_string); /** - * of_property_count_strings - Find and return the number of strings from a - * multiple strings property. + * of_property_read_string_util() - Utility helper for parsing string properties * @np: device node from which the property value is to be read. * @propname: name of the property to be searched. + * @out_strs: output array of string pointers. + * @sz: number of array elements to read. + * @skip: Number of strings to skip over at beginning of list. * - * Search for a property in a device tree node and retrieve the number of null - * terminated string contain in it. Returns the number of strings on - * success, -EINVAL if the property does not exist, -ENODATA if property - * does not have a value, and -EILSEQ if the string is not null-terminated - * within the length of the property data. + * Don't call this function directly. It is a utility helper for the + * of_property_read_string*() family of functions. */ -int of_property_count_strings(struct device_node *np, const char *propname) +int of_property_read_string_helper(struct device_node *np, const char *propname, + const char **out_strs, size_t sz, int skip) { struct property *prop = of_find_property(np, propname, NULL); - int i = 0; - size_t l = 0, total = 0; - const char *p; + int l = 0, i = 0; + const char *p, *end; if (!prop) return -EINVAL; if (!prop->value) return -ENODATA; - if (strnlen(prop->value, prop->length) >= prop->length) - return -EILSEQ; - p = prop->value; + end = p + prop->length; - for (i = 0; total < prop->length; total += l, p += l, i++) - l = strlen(p) + 1; - - return i; + for (i = 0; p < end && (!out_strs || i < skip + sz); i++, p += l) { + l = strnlen(p, end - p) + 1; + if (p + l > end) + return -EILSEQ; + if (out_strs && i >= skip) + *out_strs++ = p; + } + i -= skip; + return i <= 0 ? -ENODATA : i; } -EXPORT_SYMBOL_GPL(of_property_count_strings); +EXPORT_SYMBOL_GPL(of_property_read_string_helper); void of_print_phandle_args(const char *msg, const struct of_phandle_args *args) { --- linux-3.13.0.orig/drivers/of/irq.c +++ linux-3.13.0/drivers/of/irq.c @@ -298,16 +298,17 @@ /* Get the reg property (if any) */ addr = of_get_property(device, "reg", NULL); + /* Try the new-style interrupts-extended first */ + res = of_parse_phandle_with_args(device, "interrupts-extended", + "#interrupt-cells", index, out_irq); + if (!res) + return of_irq_parse_raw(addr, out_irq); + /* Get the interrupts property */ intspec = of_get_property(device, "interrupts", &intlen); - if (intspec == NULL) { - /* Try the new-style interrupts-extended */ - res = of_parse_phandle_with_args(device, "interrupts-extended", - "#interrupt-cells", index, out_irq); - if (res) - return -EINVAL; - return of_irq_parse_raw(addr, out_irq); - } + if (intspec == NULL) + return -EINVAL; + intlen /= sizeof(*intspec); pr_debug(" intspec=%d intlen=%d\n", be32_to_cpup(intspec), intlen); @@ -377,6 +378,54 @@ EXPORT_SYMBOL_GPL(of_irq_to_resource); /** + * of_irq_get - Decode a node's IRQ and return it as a Linux irq number + * @dev: pointer to device tree node + * @index: zero-based index of the irq + * + * Returns Linux irq number on success, or -EPROBE_DEFER if the irq domain + * is not yet created. + * + */ +int of_irq_get(struct device_node *dev, int index) +{ + int rc; + struct of_phandle_args oirq; + struct irq_domain *domain; + + rc = of_irq_parse_one(dev, index, &oirq); + if (rc) + return rc; + + domain = irq_find_host(oirq.np); + if (!domain) + return -EPROBE_DEFER; + + return irq_create_of_mapping(&oirq); +} + +/** + * of_irq_get_byname - Decode a node's IRQ and return it as a Linux irq number + * @dev: pointer to device tree node + * @name: irq name + * + * Returns Linux irq number on success, or -EPROBE_DEFER if the irq domain + * is not yet created, or error code in case of any other failure. + */ +int of_irq_get_byname(struct device_node *dev, const char *name) +{ + int index; + + if (unlikely(!name)) + return -EINVAL; + + index = of_property_match_string(dev, "interrupt-names", name); + if (index < 0) + return index; + + return of_irq_get(dev, index); +} + +/** * of_irq_count - Count the number of IRQs a node uses * @dev: pointer to device tree node */ --- linux-3.13.0.orig/drivers/of/of_mdio.c +++ linux-3.13.0/drivers/of/of_mdio.c @@ -247,3 +247,17 @@ return IS_ERR(phy) ? NULL : phy; } EXPORT_SYMBOL(of_phy_connect_fixed_link); + +/* XXX add comment */ +struct phy_device *of_phy_attach(struct net_device *dev, + struct device_node *phy_np, u32 flags, + phy_interface_t iface) +{ + struct phy_device *phy = of_phy_find_device(phy_np); + + if (!phy) + return NULL; + + return phy_attach_direct(dev, phy, flags, iface) ? NULL : phy; +} +EXPORT_SYMBOL(of_phy_attach); --- linux-3.13.0.orig/drivers/of/of_net.c +++ linux-3.13.0/drivers/of/of_net.c @@ -13,8 +13,8 @@ /** * It maps 'enum phy_interface_t' found in include/linux/phy.h - * into the device tree binding of 'phy-mode', so that Ethernet - * device driver can get phy interface from device tree. + * into the device tree binding of 'phy-mode' or 'phy-connection-type', + * so that Ethernet device driver can get phy interface from device tree. */ static const char *phy_modes[] = { [PHY_INTERFACE_MODE_NA] = "", @@ -30,14 +30,16 @@ [PHY_INTERFACE_MODE_RGMII_TXID] = "rgmii-txid", [PHY_INTERFACE_MODE_RTBI] = "rtbi", [PHY_INTERFACE_MODE_SMII] = "smii", + [PHY_INTERFACE_MODE_XGMII] = "xgmii", }; /** * of_get_phy_mode - Get phy mode for given device_node * @np: Pointer to the given device_node * - * The function gets phy interface string from property 'phy-mode', - * and return its index in phy_modes table, or errno in error case. + * The function gets phy interface string from property 'phy-mode' or + * 'phy-connection-type', and return its index in phy_modes table, or errno in + * error case. */ int of_get_phy_mode(struct device_node *np) { @@ -46,6 +48,8 @@ err = of_property_read_string(np, "phy-mode", &pm); if (err < 0) + err = of_property_read_string(np, "phy-connection-type", &pm); + if (err < 0) return err; for (i = 0; i < ARRAY_SIZE(phy_modes); i++) --- linux-3.13.0.orig/drivers/of/platform.c +++ linux-3.13.0/drivers/of/platform.c @@ -168,7 +168,9 @@ rc = of_address_to_resource(np, i, res); WARN_ON(rc); } - WARN_ON(of_irq_to_resource_table(np, res, num_irq) != num_irq); + if (of_irq_to_resource_table(np, res, num_irq) != num_irq) + pr_debug("not all legacy IRQ resources mapped for %s\n", + np->name); } dev->dev.of_node = of_node_get(np); --- linux-3.13.0.orig/drivers/of/selftest.c +++ linux-3.13.0/drivers/of/selftest.c @@ -132,8 +132,9 @@ selftest(rc == -EINVAL, "expected:%i got:%i\n", -EINVAL, rc); } -static void __init of_selftest_property_match_string(void) +static void __init of_selftest_property_string(void) { + const char *strings[4]; struct device_node *np; int rc; @@ -150,13 +151,66 @@ rc = of_property_match_string(np, "phandle-list-names", "third"); selftest(rc == 2, "third expected:0 got:%i\n", rc); rc = of_property_match_string(np, "phandle-list-names", "fourth"); - selftest(rc == -ENODATA, "unmatched string; rc=%i", rc); + selftest(rc == -ENODATA, "unmatched string; rc=%i\n", rc); rc = of_property_match_string(np, "missing-property", "blah"); - selftest(rc == -EINVAL, "missing property; rc=%i", rc); + selftest(rc == -EINVAL, "missing property; rc=%i\n", rc); rc = of_property_match_string(np, "empty-property", "blah"); - selftest(rc == -ENODATA, "empty property; rc=%i", rc); + selftest(rc == -ENODATA, "empty property; rc=%i\n", rc); rc = of_property_match_string(np, "unterminated-string", "blah"); - selftest(rc == -EILSEQ, "unterminated string; rc=%i", rc); + selftest(rc == -EILSEQ, "unterminated string; rc=%i\n", rc); + + /* of_property_count_strings() tests */ + rc = of_property_count_strings(np, "string-property"); + selftest(rc == 1, "Incorrect string count; rc=%i\n", rc); + rc = of_property_count_strings(np, "phandle-list-names"); + selftest(rc == 3, "Incorrect string count; rc=%i\n", rc); + rc = of_property_count_strings(np, "unterminated-string"); + selftest(rc == -EILSEQ, "unterminated string; rc=%i\n", rc); + rc = of_property_count_strings(np, "unterminated-string-list"); + selftest(rc == -EILSEQ, "unterminated string array; rc=%i\n", rc); + + /* of_property_read_string_index() tests */ + rc = of_property_read_string_index(np, "string-property", 0, strings); + selftest(rc == 0 && !strcmp(strings[0], "foobar"), "of_property_read_string_index() failure; rc=%i\n", rc); + strings[0] = NULL; + rc = of_property_read_string_index(np, "string-property", 1, strings); + selftest(rc == -ENODATA && strings[0] == NULL, "of_property_read_string_index() failure; rc=%i\n", rc); + rc = of_property_read_string_index(np, "phandle-list-names", 0, strings); + selftest(rc == 0 && !strcmp(strings[0], "first"), "of_property_read_string_index() failure; rc=%i\n", rc); + rc = of_property_read_string_index(np, "phandle-list-names", 1, strings); + selftest(rc == 0 && !strcmp(strings[0], "second"), "of_property_read_string_index() failure; rc=%i\n", rc); + rc = of_property_read_string_index(np, "phandle-list-names", 2, strings); + selftest(rc == 0 && !strcmp(strings[0], "third"), "of_property_read_string_index() failure; rc=%i\n", rc); + strings[0] = NULL; + rc = of_property_read_string_index(np, "phandle-list-names", 3, strings); + selftest(rc == -ENODATA && strings[0] == NULL, "of_property_read_string_index() failure; rc=%i\n", rc); + strings[0] = NULL; + rc = of_property_read_string_index(np, "unterminated-string", 0, strings); + selftest(rc == -EILSEQ && strings[0] == NULL, "of_property_read_string_index() failure; rc=%i\n", rc); + rc = of_property_read_string_index(np, "unterminated-string-list", 0, strings); + selftest(rc == 0 && !strcmp(strings[0], "first"), "of_property_read_string_index() failure; rc=%i\n", rc); + strings[0] = NULL; + rc = of_property_read_string_index(np, "unterminated-string-list", 2, strings); /* should fail */ + selftest(rc == -EILSEQ && strings[0] == NULL, "of_property_read_string_index() failure; rc=%i\n", rc); + strings[1] = NULL; + + /* of_property_read_string_array() tests */ + rc = of_property_read_string_array(np, "string-property", strings, 4); + selftest(rc == 1, "Incorrect string count; rc=%i\n", rc); + rc = of_property_read_string_array(np, "phandle-list-names", strings, 4); + selftest(rc == 3, "Incorrect string count; rc=%i\n", rc); + rc = of_property_read_string_array(np, "unterminated-string", strings, 4); + selftest(rc == -EILSEQ, "unterminated string; rc=%i\n", rc); + /* -- An incorrectly formed string should cause a failure */ + rc = of_property_read_string_array(np, "unterminated-string-list", strings, 4); + selftest(rc == -EILSEQ, "unterminated string array; rc=%i\n", rc); + /* -- parsing the correctly formed strings should still work: */ + strings[2] = NULL; + rc = of_property_read_string_array(np, "unterminated-string-list", strings, 2); + selftest(rc == 2 && strings[2] == NULL, "of_property_read_string_array() failure; rc=%i\n", rc); + strings[1] = NULL; + rc = of_property_read_string_array(np, "phandle-list-names", strings, 1); + selftest(rc == 1 && strings[1] == NULL, "Overwrote end of string array; rc=%i, str='%s'\n", rc, strings[1]); } static void __init of_selftest_parse_interrupts(void) @@ -313,7 +367,7 @@ pr_info("start of selftest - you will see error messages\n"); of_selftest_parse_phandle_with_args(); - of_selftest_property_match_string(); + of_selftest_property_string(); of_selftest_parse_interrupts(); of_selftest_parse_interrupts_extended(); pr_info("end of selftest - %i passed, %i failed\n", --- linux-3.13.0.orig/drivers/parport/Kconfig +++ linux-3.13.0/drivers/parport/Kconfig @@ -5,6 +5,12 @@ # Parport configuration. # +config ARCH_MIGHT_HAVE_PC_PARPORT + bool + help + Select this config option from the architecture Kconfig if + the architecture might have PC parallel port hardware. + menuconfig PARPORT tristate "Parallel port support" depends on HAS_IOMEM @@ -31,12 +37,6 @@ If unsure, say Y. -config ARCH_MIGHT_HAVE_PC_PARPORT - bool - help - Select this config option from the architecture Kconfig if - the architecture might have PC parallel port hardware. - if PARPORT config PARPORT_PC --- linux-3.13.0.orig/drivers/parport/parport_pc.c +++ linux-3.13.0/drivers/parport/parport_pc.c @@ -2600,8 +2600,6 @@ syba_2p_epp, syba_1p_ecp, titan_010l, - titan_1284p1, - titan_1284p2, avlab_1p, avlab_2p, oxsemi_952, @@ -2660,8 +2658,6 @@ /* syba_2p_epp AP138B */ { 2, { { 0, 0x078 }, { 0, 0x178 }, } }, /* syba_1p_ecp W83787 */ { 1, { { 0, 0x078 }, } }, /* titan_010l */ { 1, { { 3, -1 }, } }, - /* titan_1284p1 */ { 1, { { 0, 1 }, } }, - /* titan_1284p2 */ { 2, { { 0, 1 }, { 2, 3 }, } }, /* avlab_1p */ { 1, { { 0, 1}, } }, /* avlab_2p */ { 2, { { 0, 1}, { 2, 3 },} }, /* The Oxford Semi cards are unusual: 954 doesn't support ECP, @@ -2677,8 +2673,8 @@ /* netmos_9705 */ { 1, { { 0, -1 }, } }, /* netmos_9715 */ { 2, { { 0, 1 }, { 2, 3 },} }, /* netmos_9755 */ { 2, { { 0, 1 }, { 2, 3 },} }, - /* netmos_9805 */ { 1, { { 0, -1 }, } }, - /* netmos_9815 */ { 2, { { 0, -1 }, { 2, -1 }, } }, + /* netmos_9805 */ { 1, { { 0, 1 }, } }, + /* netmos_9815 */ { 2, { { 0, 1 }, { 2, 3 }, } }, /* netmos_9901 */ { 1, { { 0, -1 }, } }, /* netmos_9865 */ { 1, { { 0, -1 }, } }, /* quatech_sppxp100 */ { 1, { { 0, 1 }, } }, @@ -2722,8 +2718,6 @@ PCI_ANY_ID, PCI_ANY_ID, 0, 0, syba_1p_ecp }, { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_010L, PCI_ANY_ID, PCI_ANY_ID, 0, 0, titan_010l }, - { 0x9710, 0x9805, 0x1000, 0x0010, 0, 0, titan_1284p1 }, - { 0x9710, 0x9815, 0x1000, 0x0020, 0, 0, titan_1284p2 }, /* PCI_VENDOR_ID_AVLAB/Intek21 has another bunch of cards ...*/ /* AFAVLAB_TK9902 */ { 0x14db, 0x2120, PCI_ANY_ID, PCI_ANY_ID, 0, 0, avlab_1p}, --- linux-3.13.0.orig/drivers/pci/Makefile +++ linux-3.13.0/drivers/pci/Makefile @@ -48,6 +48,7 @@ obj-$(CONFIG_TILE) += setup-bus.o setup-irq.o obj-$(CONFIG_SPARC_LEON) += setup-bus.o setup-irq.o obj-$(CONFIG_M68K) += setup-bus.o setup-irq.o +obj-$(CONFIG_ARM64) += setup-bus.o setup-irq.o # # ACPI Related PCI FW Functions --- linux-3.13.0.orig/drivers/pci/host/Kconfig +++ linux-3.13.0/drivers/pci/host/Kconfig @@ -33,4 +33,18 @@ There are 3 internal PCI controllers available with a single built-in EHCI/OHCI host controller present on each one. +config PCI_XGENE_MSI + bool + +config PCI_XGENE + bool "X-Gene PCIe controller" + depends on ARCH_XGENE + depends on OF + select PCIEPORTBUS + select PCI_XGENE_MSI if PCI_MSI + help + Say Y here if you want internal PCI support on APM X-Gene SoC. + There are 5 internal PCIe ports available. Each port is GEN3 capable + and have varied lanes from x1 to x8. + endmenu --- linux-3.13.0.orig/drivers/pci/host/Makefile +++ linux-3.13.0/drivers/pci/host/Makefile @@ -4,3 +4,5 @@ obj-$(CONFIG_PCI_MVEBU) += pci-mvebu.o obj-$(CONFIG_PCI_TEGRA) += pci-tegra.o obj-$(CONFIG_PCI_RCAR_GEN2) += pci-rcar-gen2.o +obj-$(CONFIG_PCI_XGENE) += pci-xgene.o +obj-$(CONFIG_PCI_XGENE_MSI) += pci-xgene-msi.o --- linux-3.13.0.orig/drivers/pci/host/pci-mvebu.c +++ linux-3.13.0/drivers/pci/host/pci-mvebu.c @@ -60,14 +60,6 @@ #define PCIE_DEBUG_CTRL 0x1a60 #define PCIE_DEBUG_SOFT_RESET BIT(20) -/* - * This product ID is registered by Marvell, and used when the Marvell - * SoC is not the root complex, but an endpoint on the PCIe bus. It is - * therefore safe to re-use this PCI ID for our emulated PCI-to-PCI - * bridge. - */ -#define MARVELL_EMULATED_PCI_PCI_BRIDGE_ID 0x7846 - /* PCI configuration space of a PCI-to-PCI bridge */ struct mvebu_sw_pci_bridge { u16 vendor; @@ -294,6 +286,58 @@ return PCIBIOS_SUCCESSFUL; } +/* + * Remove windows, starting from the largest ones to the smallest + * ones. + */ +static void mvebu_pcie_del_windows(struct mvebu_pcie_port *port, + phys_addr_t base, size_t size) +{ + while (size) { + size_t sz = 1 << (fls(size) - 1); + + mvebu_mbus_del_window(base, sz); + base += sz; + size -= sz; + } +} + +/* + * MBus windows can only have a power of two size, but PCI BARs do not + * have this constraint. Therefore, we have to split the PCI BAR into + * areas each having a power of two size. We start from the largest + * one (i.e highest order bit set in the size). + */ +static void mvebu_pcie_add_windows(struct mvebu_pcie_port *port, + unsigned int target, unsigned int attribute, + phys_addr_t base, size_t size, + phys_addr_t remap) +{ + size_t size_mapped = 0; + + while (size) { + size_t sz = 1 << (fls(size) - 1); + int ret; + + ret = mvebu_mbus_add_window_remap_by_id(target, attribute, base, + sz, remap); + if (ret) { + dev_err(&port->pcie->pdev->dev, + "Could not create MBus window at 0x%x, size 0x%x: %d\n", + base, sz, ret); + mvebu_pcie_del_windows(port, base - size_mapped, + size_mapped); + return; + } + + size -= sz; + size_mapped += sz; + base += sz; + if (remap != MVEBU_MBUS_NO_REMAP) + remap += sz; + } +} + static void mvebu_pcie_handle_iobase_change(struct mvebu_pcie_port *port) { phys_addr_t iobase; @@ -304,8 +348,8 @@ /* If a window was configured, remove it */ if (port->iowin_base) { - mvebu_mbus_del_window(port->iowin_base, - port->iowin_size); + mvebu_pcie_del_windows(port, port->iowin_base, + port->iowin_size); port->iowin_base = 0; port->iowin_size = 0; } @@ -325,11 +369,11 @@ port->iowin_base = port->pcie->io.start + iobase; port->iowin_size = ((0xFFF | ((port->bridge.iolimit & 0xF0) << 8) | (port->bridge.iolimitupper << 16)) - - iobase); + iobase) + 1; - mvebu_mbus_add_window_remap_by_id(port->io_target, port->io_attr, - port->iowin_base, port->iowin_size, - iobase); + mvebu_pcie_add_windows(port, port->io_target, port->io_attr, + port->iowin_base, port->iowin_size, + iobase); pci_ioremap_io(iobase, port->iowin_base); } @@ -341,8 +385,8 @@ /* If a window was configured, remove it */ if (port->memwin_base) { - mvebu_mbus_del_window(port->memwin_base, - port->memwin_size); + mvebu_pcie_del_windows(port, port->memwin_base, + port->memwin_size); port->memwin_base = 0; port->memwin_size = 0; } @@ -359,10 +403,11 @@ port->memwin_base = ((port->bridge.membase & 0xFFF0) << 16); port->memwin_size = (((port->bridge.memlimit & 0xFFF0) << 16) | 0xFFFFF) - - port->memwin_base; + port->memwin_base + 1; - mvebu_mbus_add_window_by_id(port->mem_target, port->mem_attr, - port->memwin_base, port->memwin_size); + mvebu_pcie_add_windows(port, port->mem_target, port->mem_attr, + port->memwin_base, port->memwin_size, + MVEBU_MBUS_NO_REMAP); } /* @@ -377,7 +422,8 @@ bridge->class = PCI_CLASS_BRIDGE_PCI; bridge->vendor = PCI_VENDOR_ID_MARVELL; - bridge->device = MARVELL_EMULATED_PCI_PCI_BRIDGE_ID; + bridge->device = mvebu_readl(port, PCIE_DEV_ID_OFF) >> 16; + bridge->revision = mvebu_readl(port, PCIE_DEV_REV_OFF) & 0xff; bridge->header_type = PCI_HEADER_TYPE_BRIDGE; bridge->cache_line_size = 0x10; @@ -702,14 +748,21 @@ /* * On the PCI-to-PCI bridge side, the I/O windows must have at - * least a 64 KB size and be aligned on their size, and the - * memory windows must have at least a 1 MB size and be - * aligned on their size + * least a 64 KB size and the memory windows must have at + * least a 1 MB size. Moreover, MBus windows need to have a + * base address aligned on their size, and their size must be + * a power of two. This means that if the BAR doesn't have a + * power of two size, several MBus windows will actually be + * created. We need to ensure that the biggest MBus window + * (which will be the first one) is aligned on its size, which + * explains the rounddown_pow_of_two() being done here. */ if (res->flags & IORESOURCE_IO) - return round_up(start, max((resource_size_t)SZ_64K, size)); + return round_up(start, max((resource_size_t)SZ_64K, + rounddown_pow_of_two(size))); else if (res->flags & IORESOURCE_MEM) - return round_up(start, max((resource_size_t)SZ_1M, size)); + return round_up(start, max((resource_size_t)SZ_1M, + rounddown_pow_of_two(size))); else return start; } @@ -771,9 +824,9 @@ rangesz = pna + na + ns; nranges = rlen / sizeof(__be32) / rangesz; - for (i = 0; i < nranges; i++) { + for (i = 0; i < nranges; i++, range += rangesz) { u32 flags = of_read_number(range, 1); - u32 slot = of_read_number(range, 2); + u32 slot = of_read_number(range + 1, 1); u64 cpuaddr = of_read_number(range + na, pna); unsigned long rtype; @@ -781,14 +834,14 @@ rtype = IORESOURCE_IO; else if (DT_FLAGS_TO_TYPE(flags) == DT_TYPE_MEM32) rtype = IORESOURCE_MEM; + else + continue; if (slot == PCI_SLOT(devfn) && type == rtype) { *tgt = DT_CPUADDR_TO_TARGET(cpuaddr); *attr = DT_CPUADDR_TO_ATTR(cpuaddr); return 0; } - - range += rangesz; } return -ENOENT; --- linux-3.13.0.orig/drivers/pci/host/pci-xgene-msi.c +++ linux-3.13.0/drivers/pci/host/pci-xgene-msi.c @@ -0,0 +1,567 @@ +/* + * XGene MSI Driver + * + * Copyright (c) 2010, Applied Micro Circuits Corporation + * Author: Tanmay Inamdar + * Tuan Phan + * Jim Hull + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define NR_MSI_REG 16 +#define IRQS_PER_MSI_INDEX 32 +#define IRQS_PER_MSI_REG 256 +#define NR_MSI_IRQS (NR_MSI_REG * IRQS_PER_MSI_REG) + +#define XGENE_PIC_IP_MASK 0x0000000F +#define XGENE_PIC_IP_GIC 0x00000001 + +/* PCIe MSI Index Registers */ +#define MSI0IR0 0x000000 +#define MSIFIR7 0x7F0000 + +/* PCIe MSI Interrupt Register */ +#define MSI1INT0 0x800000 +#define MSI1INTF 0x8F0000 + +struct xgene_msi { + struct irq_domain *irqhost; + unsigned long cascade_irq; + u32 msiir_offset; + u32 msi_addr_lo; + u32 msi_addr_hi; + void __iomem *msi_regs; + u32 feature; + int msi_virqs[NR_MSI_REG]; + struct msi_bitmap bitmap; + struct list_head list; /* support multiple MSI banks */ + phandle phandle; +}; + +#ifdef CONFIG_ARCH_MSLIM +static inline u64 xgene_pcie_get_iof_addr(u64 addr) +{ + return mslim_pa_to_iof_axi(lower_32_bits(addr)); +} +#else +#define xgene_pcie_get_iof_addr(addr) addr +#endif + +#define MSI_DRIVER_VERSION "0.1" + +struct xgene_msi_feature { + u32 xgene_pic_ip; + u32 msiir_offset; /* Offset of MSIIR, relative to start of MSIR bank */ +}; + +struct xgene_msi_cascade_data { + struct xgene_msi *msi_data; + int index; +}; + +LIST_HEAD(msi_head); + +static const struct xgene_msi_feature gic_msi_feature = { + .xgene_pic_ip = XGENE_PIC_IP_GIC, + .msiir_offset = 0, +}; + +irq_hw_number_t virq_to_hw(unsigned int virq) +{ + struct irq_data *irq_data = irq_get_irq_data(virq); + return WARN_ON(!irq_data) ? 0 : irq_data->hwirq; +} + +static inline u32 xgene_msi_intr_read(phys_addr_t __iomem *base, + unsigned int reg) +{ + u32 irq_reg = MSI1INT0 + (reg << 16); + return readl((void *)((phys_addr_t) base + irq_reg)); +} + +static inline u32 xgene_msi_read(phys_addr_t __iomem *base, unsigned int group, + unsigned int reg) +{ + u32 irq_reg = MSI0IR0 + (group << 19) + (reg << 16); + return readl((void *)((phys_addr_t) base + irq_reg)); +} + +/* + * We do not need this actually. The MSIR register has been read once + * in the cascade interrupt. So, this MSI interrupt has been acked +*/ +static void xgene_msi_end_irq(struct irq_data *d) +{ +} + +#ifdef CONFIG_SMP +static int xgene_msi_set_affinity(struct irq_data *d, + const struct cpumask *mask_val, bool force) +{ + u64 virt_msir; + + virt_msir = (u64)irq_get_handler_data(d->irq); + return irq_set_affinity(virt_msir, mask_val); +} +#endif + +static struct irq_chip xgene_msi_chip = { + .irq_mask = mask_msi_irq, + .irq_unmask = unmask_msi_irq, + .irq_ack = xgene_msi_end_irq, +#ifdef CONFIG_SMP + .irq_set_affinity = xgene_msi_set_affinity, +#endif + .name = "xgene-msi", +}; + +static int xgene_msi_host_map(struct irq_domain *h, unsigned int virq, + irq_hw_number_t hw) +{ + struct xgene_msi *msi_data = h->host_data; + struct irq_chip *chip = &xgene_msi_chip; + + pr_debug("\nENTER %s, virq=%u\n", __func__, virq); + irq_set_status_flags(virq, IRQ_TYPE_LEVEL_HIGH); + irq_set_chip_data(virq, msi_data); + irq_set_chip_and_handler(virq, chip, handle_level_irq); + + return 0; +} + +static const struct irq_domain_ops xgene_msi_host_ops = { + .map = xgene_msi_host_map, +}; + +static int xgene_msi_init_allocator(struct xgene_msi *msi_data) +{ +#ifdef CONFIG_ACPI + if (efi_enabled(EFI_BOOT)) + return msi_bitmap_alloc(&msi_data->bitmap, NR_MSI_IRQS, NULL); + else +#endif + return msi_bitmap_alloc(&msi_data->bitmap, NR_MSI_IRQS, + msi_data->irqhost->of_node); +} + +int arch_msi_check_device(struct pci_dev *dev, int nvec, int type) +{ + pr_debug("ENTER %s\n", __func__); + return 0; +} + +void arch_teardown_msi_irqs(struct pci_dev *dev) +{ + struct msi_desc *entry; + struct xgene_msi *msi_data; + + pr_debug("ENTER %s\n", __func__); + list_for_each_entry(entry, &dev->msi_list, list) { + if (entry->irq == 0) + continue; + + msi_data = irq_get_chip_data(entry->irq); + irq_set_msi_desc(entry->irq, NULL); + msi_bitmap_free_hwirqs(&msi_data->bitmap, + virq_to_hw(entry->irq), 1); + irq_dispose_mapping(entry->irq); + } +} + +static void xgene_compose_msi_msg(struct pci_dev *dev, int hwirq, + struct msi_msg *msg, + struct xgene_msi *msi_data) +{ + int reg_set, group; + + group = hwirq % NR_MSI_REG; + reg_set = hwirq / (NR_MSI_REG * IRQS_PER_MSI_INDEX); + + pr_debug("group = %d, reg_set : 0x%x\n", group, reg_set); + msg->address_lo = msi_data->msi_addr_lo + + (((8 * group) + reg_set) << 16); + msg->address_hi = msi_data->msi_addr_hi; + msg->data = (hwirq / NR_MSI_REG) % IRQS_PER_MSI_INDEX; + pr_debug("addr : 0x%08x, data : 0x%x\n", msg->address_lo, msg->data); +} + +int arch_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type) +{ + struct device_node *np; + struct msi_desc *entry; + struct msi_msg msg; + u64 gic_irq; + unsigned int virq; + struct xgene_msi *msi_data; + phandle phandle = 0; + int rc = 0; + int hwirq = -1; + + pr_debug("ENTER %s - nvec = %d, type = %d\n", __func__, nvec, type); +#ifdef CONFIG_ACPI + if (!efi_enabled(EFI_BOOT)) +#endif + { + np = pci_device_to_OF_node(pdev); + /* + * If the PCI node has an xgene,msi property, + * then we need to use it to find the specific MSI. + */ + np = of_parse_phandle(np, "xgene,msi", 0); + if (np) { + if (of_device_is_compatible(np, + "xgene,gic-msi-cascade")) + phandle = np->phandle; + else { + dev_err(&pdev->dev, + "node %s has an invalid xgene,msi phandle %u\n", + np->full_name, np->phandle); + rc = -EINVAL; + goto exit; + } + } else + dev_info(&pdev->dev, "Found no xgene,msi phandle\n"); + } + + list_for_each_entry(entry, &pdev->msi_list, list) { + pr_debug("Loop over MSI devices\n"); + /* + * Loop over all the MSI devices until we find one that has an + * available interrupt. + */ + list_for_each_entry(msi_data, &msi_head, list) { + if (phandle && (phandle != msi_data->phandle)) + continue; + pr_debug("Xgene msi pointer : %p\n", msi_data); + hwirq = msi_bitmap_alloc_hwirqs(&msi_data->bitmap, 1); + break; + } + + if (hwirq < 0) { + dev_err(&pdev->dev, + "could not allocate MSI interrupt\n"); + rc = -ENOSPC; + goto exit; + } + + virq = irq_create_mapping(msi_data->irqhost, hwirq); + if (virq == 0) { + dev_err(&pdev->dev, "fail mapping hwirq %i\n", hwirq); + msi_bitmap_free_hwirqs(&msi_data->bitmap, hwirq, 1); + rc = -ENOSPC; + goto exit; + } + + gic_irq = msi_data->msi_virqs[hwirq % NR_MSI_REG]; + pr_debug("Created Mapping HWIRQ %d on GIC IRQ %llu " + "TO VIRQ %d\n", + hwirq, gic_irq, virq); + /* chip_data is msi_data via host->hostdata in host->map() */ + irq_set_msi_desc(virq, entry); + xgene_compose_msi_msg(pdev, hwirq, &msg, msi_data); + irq_set_handler_data(virq, (void *)gic_irq); + write_msi_msg(virq, &msg); + } + +exit: + return rc; +} + +static void xgene_msi_cascade(unsigned int irq, struct irq_desc *desc) +{ + struct irq_chip *chip = irq_desc_get_chip(desc); + struct xgene_msi_cascade_data *cascade_data; + struct xgene_msi *msi_data; + unsigned int cascade_irq; + int msir_index = -1; + u32 msir_value = 0; + u32 intr_index = 0; + u32 msi_intr_reg_value = 0; + u32 msi_intr_reg; + + chained_irq_enter(chip, desc); + cascade_data = irq_get_handler_data(irq); + msi_data = cascade_data->msi_data; + + msi_intr_reg = cascade_data->index; + + if (msi_intr_reg >= NR_MSI_REG) + cascade_irq = 0; + + switch (msi_data->feature & XGENE_PIC_IP_MASK) { + case XGENE_PIC_IP_GIC: + msi_intr_reg_value = xgene_msi_intr_read(msi_data->msi_regs, + msi_intr_reg); + break; + } + + while (msi_intr_reg_value) { + msir_index = ffs(msi_intr_reg_value) - 1; + msir_value = xgene_msi_read(msi_data->msi_regs, msi_intr_reg, + msir_index); + while (msir_value) { + intr_index = ffs(msir_value) - 1; + cascade_irq = irq_linear_revmap(msi_data->irqhost, + msir_index * IRQS_PER_MSI_INDEX * NR_MSI_REG + + intr_index * NR_MSI_REG + msi_intr_reg); + if (cascade_irq != 0) + generic_handle_irq(cascade_irq); + msir_value &= ~(1 << intr_index); + } + msi_intr_reg_value &= ~(1 << msir_index); + } + + chained_irq_exit(chip, desc); +} + +static int xgene_msi_remove(struct platform_device *pdev) +{ + int virq, i; + struct xgene_msi *msi = platform_get_drvdata(pdev); + + pr_debug("ENTER %s\n", __func__); + for (i = 0; i < NR_MSI_REG; i++) { + virq = msi->msi_virqs[i]; + if (virq != 0) + irq_dispose_mapping(virq); + } + + if (msi->bitmap.bitmap) + msi_bitmap_free(&msi->bitmap); + + return 0; +} + +static int xgene_msi_setup_hwirq(struct xgene_msi *msi, + struct platform_device *pdev, + int offset, int irq_index) +{ + int virt_msir; + cpumask_var_t mask; + struct xgene_msi_cascade_data *cascade_data = NULL; + + virt_msir = platform_get_irq(pdev, irq_index); + if (virt_msir < 0) { + dev_err(&pdev->dev, "Cannot translate IRQ index %d\n", + irq_index); + return -EINVAL; + } + + cascade_data = devm_kzalloc(&pdev->dev, + sizeof(struct xgene_msi_cascade_data), GFP_KERNEL); + if (!cascade_data) { + dev_err(&pdev->dev, "No memory for MSI cascade data\n"); + return -ENOMEM; + } + + if (alloc_cpumask_var(&mask, GFP_KERNEL)) { + cpumask_setall(mask); + irq_set_affinity(virt_msir, mask); + free_cpumask_var(mask); + } + + msi->msi_virqs[irq_index] = virt_msir; + cascade_data->index = offset; + cascade_data->msi_data = msi; + irq_set_handler_data(virt_msir, cascade_data); + irq_set_chained_handler(virt_msir, xgene_msi_cascade); + pr_debug("mapped phys irq %d\n", virt_msir); + + return 0; +} + +static int xgene_msi_get_param(struct platform_device *pdev, const char *name, + u32 *buf, int count) +{ + int rc = 0; + +#ifdef CONFIG_ACPI + if (efi_enabled(EFI_BOOT)) { + struct acpi_dsm_entry entry; + + if (acpi_dsm_lookup_value(ACPI_HANDLE(&pdev->dev), + name, 0, &entry) || !entry.value) + return -EINVAL; + + if (count == 2) + sscanf(entry.value, "%d %d", &buf[0], &buf[1]); + else + rc = -EINVAL; + + kfree(entry.key); + kfree(entry.value); + } else +#endif + if (of_property_read_u32_array(pdev->dev.of_node, name, + buf, count)) + rc = -EINVAL; + + return rc; +} + +static int xgene_msi_probe(struct platform_device *pdev) +{ + struct xgene_msi *msi; + struct resource *res; + phys_addr_t msiir_offset; + int rc, j, irq_index, count; + u32 offset; + u32 buf[] = { 0, NR_MSI_IRQS}; + + msi = devm_kzalloc(&pdev->dev, sizeof(struct xgene_msi), GFP_KERNEL); + if (!msi) { + dev_err(&pdev->dev, "No memory for MSI structure\n"); + return -ENOMEM; + } + + platform_set_drvdata(pdev, msi); + +#ifdef CONFIG_ACPI + if (efi_enabled(EFI_BOOT)) + msi->irqhost = irq_domain_add_linear(NULL, + NR_MSI_IRQS, &xgene_msi_host_ops, msi); + else +#endif + msi->irqhost = irq_domain_add_linear(pdev->dev.of_node, + NR_MSI_IRQS, &xgene_msi_host_ops, msi); + if (msi->irqhost == NULL) { + dev_err(&pdev->dev, "No memory for MSI irqhost\n"); + rc = -ENOMEM; + goto error; + } + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + msi->msi_regs = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(msi->msi_regs)) { + dev_err(&pdev->dev, "no reg space\n"); + rc = -EINVAL; + goto error; + } + + pr_debug("mapped 0x%08llx to 0x%p Size : 0x%08llx\n", res->start, + msi->msi_regs, resource_size(res)); + + msiir_offset = lower_32_bits(xgene_pcie_get_iof_addr(res->start)); + msi->msiir_offset = gic_msi_feature.msiir_offset + + (msiir_offset & 0xfffff); + msi->msi_addr_hi = upper_32_bits(res->start); + msi->msi_addr_lo = gic_msi_feature.msiir_offset + + (msiir_offset & 0xffffffff); + msi->feature = gic_msi_feature.xgene_pic_ip; + +#ifdef CONFIG_ACPI + if (efi_enabled(EFI_BOOT)) + msi->phandle = 0; + else +#endif + msi->phandle = pdev->dev.of_node->phandle; + + rc = xgene_msi_init_allocator(msi); + if (rc) { + dev_err(&pdev->dev, "Error allocating MSI bitmap\n"); + goto error; + } + + rc = xgene_msi_get_param(pdev, "msi-available-ranges", buf, 2); + if (rc) { + dev_err(&pdev->dev, "Error getting MSI ranges\n"); + goto error; + } + + pr_debug("buf[0] = 0x%x buf[1] = 0x%x\n", buf[0], buf[1]); + if (buf[0] % IRQS_PER_MSI_REG || buf[1] % IRQS_PER_MSI_REG) { + pr_err_once("msi available range of" + "%u at %u is not IRQ-aligned\n", + buf[1], buf[0]); + rc = -EINVAL; + goto error; + } + + offset = buf[0] / IRQS_PER_MSI_REG; + count = buf[1] / IRQS_PER_MSI_REG; + pr_debug("offset = %d count = %d\n", offset, count); + + for (irq_index = 0, j = 0; j < count; j++, irq_index++) { + rc = xgene_msi_setup_hwirq(msi, pdev, offset + j, irq_index); + if (rc) + goto error; + } + + list_add_tail(&msi->list, &msi_head); + + pr_info("XGene: PCIe MSI driver v%s\n", MSI_DRIVER_VERSION); + + return 0; + +error: + xgene_msi_remove(pdev); + return rc; +} + +static const struct of_device_id xgene_msi_of_ids[] = { + { + .compatible = "xgene,gic-msi", + }, + {} +}; + +#ifdef CONFIG_ACPI +static const struct acpi_device_id xgene_msi_acpi_ids[] = { + {"APMC0D0E", 0}, + {}, +}; +#endif + +static struct platform_driver xgene_msi_driver = { + .driver = { + .name = "xgene-msi", + .owner = THIS_MODULE, + .of_match_table = xgene_msi_of_ids, +#ifdef CONFIG_ACPI + .acpi_match_table = ACPI_PTR(xgene_msi_acpi_ids), +#endif + }, + .probe = xgene_msi_probe, + .remove = xgene_msi_remove, +}; + +static __init int xgene_msi_init(void) +{ + return platform_driver_register(&xgene_msi_driver); +} + +subsys_initcall_sync(xgene_msi_init); --- linux-3.13.0.orig/drivers/pci/host/pci-xgene.c +++ linux-3.13.0/drivers/pci/host/pci-xgene.c @@ -0,0 +1,784 @@ +/** + * APM X-Gene PCIe Driver + * + * Copyright (c) 2013 Applied Micro Circuits Corporation. + * + * Author: Tanmay Inamdar . + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define PCIECORE_LTSSM 0x4c +#define PCIECORE_CTLANDSTATUS 0x50 +#define PIPE_PHY_RATE_RD(src) ((0xc000 & (u32)(src)) >> 0xe) +#define INTXSTATUSMASK 0x6c +#define PIM1_1L 0x80 +#define IBAR2 0x98 +#define IR2MSK 0x9c +#define PIM2_1L 0xa0 +#define IBAR3L 0xb4 +#define IR3MSKL 0xbc +#define PIM3_1L 0xc4 +#define OMR1BARL 0x100 +#define OMR2BARL 0x118 +#define CFGBARL 0x154 +#define CFGBARH 0x158 +#define CFGCTL 0x15c +#define RTDID 0x160 +#define BRIDGE_CFG_0 0x2000 +#define BRIDGE_CFG_1 0x2004 +#define BRIDGE_CFG_4 0x2010 +#define BRIDGE_CFG_32 0x2030 +#define BRIDGE_CFG_14 0x2038 +#define BRIDGE_CTRL_1 0x2204 +#define BRIDGE_CTRL_2 0x2208 +#define BRIDGE_CTRL_5 0x2214 +#define BRIDGE_STATUS_0 0x2600 +#define MEM_RAM_SHUTDOWN 0xd070 +#define BLOCK_MEM_RDY 0xd074 + +#define DEVICE_PORT_TYPE_MASK 0x03c00000 +#define PM_FORCE_RP_MODE_MASK 0x00000400 +#define SWITCH_PORT_MODE_MASK 0x00000800 +#define CLASS_CODE_MASK 0xffffff00 +#define LINK_UP_MASK 0x00000100 +#define AER_OPTIONAL_ERROR_EN 0xffc00000 +#define XGENE_PCIE_DEV_CTRL 0x2f02 +#define AXI_EP_CFG_ACCESS 0x10000 +#define ENABLE_ASPM 0x08000000 +#define XGENE_PORT_TYPE_RC 0x05000000 +#define BLOCK_MEM_RDY_VAL 0xFFFFFFFF +#define EN_COHERENCY 0xF0000000 +#define EN_REG 0x00000001 +#define OB_LO_IO 0x00000002 +#define XGENE_PCIE_VENDORID 0xE008 +#define XGENE_PCIE_DEVICEID 0xE004 +#define XGENE_PCIE_TIMEOUT (500*1000) /* us */ +#define XGENE_LTSSM_DETECT_WAIT 20 +#define XGENE_LTSSM_L0_WAIT 4 +#define SZ_1T (SZ_1G*1024ULL) + +struct xgene_res_cfg { + struct resource res; + u64 pci_addr; +}; + +struct xgene_pcie_port { + struct device_node *node; + struct device *dev; + struct clk *clk; + struct xgene_res_cfg mem; + struct xgene_res_cfg io; + struct resource realio; + void __iomem *csr_base; + void __iomem *cfg_base; + u8 link_up; +}; + +static inline u32 pcie_bar_low_val(u32 addr, u32 flags) +{ + return (addr & PCI_BASE_ADDRESS_MEM_MASK) | flags; +} + +static inline struct xgene_pcie_port * +xgene_pcie_bus_to_port(struct pci_bus *bus) +{ + struct pci_sys_data *sys = bus->sysdata; + return sys->private_data; +} + +/* PCIE Configuration Out/In */ +static inline void xgene_pcie_cfg_out32(void __iomem *addr, u32 val) +{ + writel(val, addr); +} + +static inline void xgene_pcie_cfg_out16(void __iomem *addr, u16 val) +{ + u64 temp_addr = (u64)addr & ~0x3; + u32 val32 = readl((void __iomem *)temp_addr); + + switch ((u64) addr & 0x3) { + case 2: + val32 &= ~0xFFFF0000; + val32 |= (u32) val << 16; + break; + case 0: + default: + val32 &= ~0xFFFF; + val32 |= val; + break; + } + writel(val32, (void __iomem *)temp_addr); +} + +static inline void xgene_pcie_cfg_out8(void __iomem *addr, u8 val) +{ + phys_addr_t temp_addr = (u64) addr & ~0x3; + u32 val32 = readl((void __iomem *)temp_addr); + + switch ((u64) addr & 0x3) { + case 0: + val32 &= ~0xFF; + val32 |= val; + break; + case 1: + val32 &= ~0xFF00; + val32 |= (u32) val << 8; + break; + case 2: + val32 &= ~0xFF0000; + val32 |= (u32) val << 16; + break; + case 3: + default: + val32 &= ~0xFF000000; + val32 |= (u32) val << 24; + break; + } + writel(val32, (void __iomem *)temp_addr); +} + +static inline void xgene_pcie_cfg_in32(void __iomem *addr, u32 *val) +{ + *val = readl(addr); +} + +static inline void xgene_pcie_cfg_in16(void __iomem *addr, u16 *val) +{ + u64 temp_addr = (u64)addr & ~0x3; + u32 val32; + + val32 = readl((void __iomem *)temp_addr); + + switch ((u64)addr & 0x3) { + case 2: + *val = val32 >> 16; + break; + case 0: + default: + *val = val32; + break; + } +} + +static inline void xgene_pcie_cfg_in8(void __iomem *addr, u8 *val) +{ + u64 temp_addr = (u64)addr & ~0x3; + u32 val32; + + val32 = readl((void __iomem *)temp_addr); + + switch ((u64)addr & 0x3) { + case 3: + *val = val32 >> 24; + break; + case 2: + *val = val32 >> 16; + break; + case 1: + *val = val32 >> 8; + break; + case 0: + default: + *val = val32; + break; + } +} + +/* When the address bit [17:16] is 2'b01, the Configuration access will be + * treated as Type 1 and it will be forwarded to external PCIe device. + */ +static void __iomem *xgene_pcie_get_cfg_base(struct pci_bus *bus) +{ + struct xgene_pcie_port *port = xgene_pcie_bus_to_port(bus); + + if (bus->number >= (bus->primary + 1)) + return port->cfg_base + AXI_EP_CFG_ACCESS; + + return port->cfg_base; +} + +/* For Configuration request, RTDID register is used as Bus Number, + * Device Number and Function number of the header fields. + */ +static void xgene_pcie_set_rtdid_reg(struct pci_bus *bus, uint devfn) +{ + struct xgene_pcie_port *port = xgene_pcie_bus_to_port(bus); + unsigned int b, d, f; + u32 rtdid_val = 0; + + b = bus->number; + d = PCI_SLOT(devfn); + f = PCI_FUNC(devfn); + + if (!pci_is_root_bus(bus)) + rtdid_val = (b << 8) | (d << 3) | f; + + writel(rtdid_val, port->csr_base + RTDID); + /* read the register back to ensure flush */ + readl(port->csr_base + RTDID); +} + +static int xgene_pcie_read_config(struct pci_bus *bus, unsigned int devfn, + int offset, int len, u32 *val) +{ + struct xgene_pcie_port *port = xgene_pcie_bus_to_port(bus); + void __iomem *addr; + u8 val8; + u16 val16; + + if ((pci_is_root_bus(bus) && devfn != 0) || !port->link_up) + return PCIBIOS_DEVICE_NOT_FOUND; + + xgene_pcie_set_rtdid_reg(bus, devfn); + addr = xgene_pcie_get_cfg_base(bus); + switch (len) { + case 1: + xgene_pcie_cfg_in8(addr + offset, &val8); + *val = val8; + break; + case 2: + xgene_pcie_cfg_in16(addr + offset, &val16); + *val = val16; + break; + default: + xgene_pcie_cfg_in32(addr + offset, val); + break; + } + return PCIBIOS_SUCCESSFUL; +} + +static int xgene_pcie_write_config(struct pci_bus *bus, unsigned int devfn, + int offset, int len, u32 val) +{ + struct xgene_pcie_port *port = xgene_pcie_bus_to_port(bus); + void __iomem *addr; + + if ((pci_is_root_bus(bus) && devfn != 0) || !port->link_up) + return PCIBIOS_DEVICE_NOT_FOUND; + + xgene_pcie_set_rtdid_reg(bus, devfn); + addr = xgene_pcie_get_cfg_base(bus); + switch (len) { + case 1: + xgene_pcie_cfg_out8(addr + offset, (u8) val); + break; + case 2: + xgene_pcie_cfg_out16(addr + offset, (u16) val); + break; + default: + xgene_pcie_cfg_out32(addr + offset, val); + break; + } + return PCIBIOS_SUCCESSFUL; +} + +static struct pci_ops xgene_pcie_ops = { + .read = xgene_pcie_read_config, + .write = xgene_pcie_write_config +}; + +static void xgene_pcie_program_core(void __iomem *csr_base) +{ + u32 val; + + val = readl(csr_base + BRIDGE_CFG_0); + val |= AER_OPTIONAL_ERROR_EN; + writel(val, csr_base + BRIDGE_CFG_0); + writel(0x0, csr_base + INTXSTATUSMASK); + val = readl(csr_base + BRIDGE_CTRL_1); + val = (val & ~0xffff) | XGENE_PCIE_DEV_CTRL; + writel(val, csr_base + BRIDGE_CTRL_1); +} + +static u64 xgene_pcie_set_ib_mask(void __iomem *csr_base, u32 addr, + u32 flags, u64 size) +{ + u64 mask = (~(size - 1) & PCI_BASE_ADDRESS_MEM_MASK) | flags; + u32 val32 = 0; + u32 val; + + val32 = readl(csr_base + addr); + val = (val32 & 0x0000ffff) | (lower_32_bits(mask) << 16); + writel(val, csr_base + addr); + + val32 = readl(csr_base + addr + 0x04); + val = (val32 & 0xffff0000) | (lower_32_bits(mask) >> 16); + writel(val, csr_base + addr + 0x04); + + val32 = readl(csr_base + addr + 0x04); + val = (val32 & 0x0000ffff) | (upper_32_bits(mask) << 16); + writel(val, csr_base + addr + 0x04); + + val32 = readl(csr_base + addr + 0x08); + val = (val32 & 0xffff0000) | (upper_32_bits(mask) >> 16); + writel(val, csr_base + addr + 0x08); + + return mask; +} + +static void xgene_pcie_poll_linkup(struct xgene_pcie_port *port, + u32 *lanes, u32 *speed) +{ + void __iomem *csr_base = port->csr_base; + u32 val32; + u64 start_time, time; + + /* + * A component enters the LTSSM Detect state within + * 20ms of the end of fundamental core reset. + */ + msleep(XGENE_LTSSM_DETECT_WAIT); + port->link_up = 0; + start_time = jiffies; + do { + val32 = readl(csr_base + PCIECORE_CTLANDSTATUS); + if (val32 & LINK_UP_MASK) { + port->link_up = 1; + *speed = PIPE_PHY_RATE_RD(val32); + val32 = readl(csr_base + BRIDGE_STATUS_0); + *lanes = val32 >> 26; + } + time = jiffies_to_msecs(jiffies - start_time); + } while ((!port->link_up) && (time <= XGENE_LTSSM_L0_WAIT)); +} + +static void xgene_pcie_setup_root_complex(struct xgene_pcie_port *port) +{ + void __iomem *csr_base = port->csr_base; + u32 val; + + val = (XGENE_PCIE_DEVICEID << 16) | XGENE_PCIE_VENDORID; + writel(val, csr_base + BRIDGE_CFG_0); + + val = readl(csr_base + BRIDGE_CFG_1); + val &= ~CLASS_CODE_MASK; + val |= PCI_CLASS_BRIDGE_PCI << 16; + writel(val, csr_base + BRIDGE_CFG_1); + + val = readl(csr_base + BRIDGE_CFG_14); + val |= SWITCH_PORT_MODE_MASK; + val &= ~PM_FORCE_RP_MODE_MASK; + writel(val, csr_base + BRIDGE_CFG_14); + + val = readl(csr_base + BRIDGE_CTRL_5); + val &= ~DEVICE_PORT_TYPE_MASK; + val |= XGENE_PORT_TYPE_RC; + writel(val, csr_base + BRIDGE_CTRL_5); + + val = readl(csr_base + BRIDGE_CTRL_2); + val |= ENABLE_ASPM; + writel(val, csr_base + BRIDGE_CTRL_2); + + val = readl(csr_base + BRIDGE_CFG_32); + writel(val | (1 << 19), csr_base + BRIDGE_CFG_32); +} + +/* Return 0 on success */ +static int xgene_pcie_init_ecc(struct xgene_pcie_port *port) +{ + void __iomem *csr_base = port->csr_base; + int timeout = XGENE_PCIE_TIMEOUT; + u32 val; + + val = readl(csr_base + MEM_RAM_SHUTDOWN); + if (val == 0) + return 0; + writel(0x0, csr_base + MEM_RAM_SHUTDOWN); + do { + val = readl(csr_base + BLOCK_MEM_RDY); + udelay(1); + } while ((val != BLOCK_MEM_RDY_VAL) && timeout--); + + return !(timeout > 0); +} + +static int xgene_pcie_init_port(struct xgene_pcie_port *port) +{ + int rc; + + port->clk = clk_get(port->dev, NULL); + if (IS_ERR_OR_NULL(port->clk)) { + dev_err(port->dev, "clock not available\n"); + return -ENODEV; + } + + rc = clk_prepare_enable(port->clk); + if (rc) { + dev_err(port->dev, "clock enable failed\n"); + return rc; + } + + rc = xgene_pcie_init_ecc(port); + if (rc) { + dev_err(port->dev, "memory init failed\n"); + return rc; + } + + return 0; +} + +struct device_node *pcibios_get_phb_of_node(struct pci_bus *bus) +{ + struct xgene_pcie_port *port = xgene_pcie_bus_to_port(bus); + + return of_node_get(port->node); +} + +static void xgene_pcie_fixup_bridge(struct pci_dev *dev) +{ + int i; + + /* Hide the PCI host BARs from the kernel as their content doesn't + * fit well in the resource management + */ + for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) { + dev->resource[i].start = dev->resource[i].end = 0; + dev->resource[i].flags = 0; + } + dev_info(&dev->dev, "Hiding X-Gene pci host bridge resources %s\n", + pci_name(dev)); +} +DECLARE_PCI_FIXUP_HEADER(XGENE_PCIE_VENDORID, XGENE_PCIE_DEVICEID, + xgene_pcie_fixup_bridge); + +static int xgene_pcie_map_reg(struct xgene_pcie_port *port, + struct platform_device *pdev, u64 *cfg_addr) +{ + struct resource *res; + + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "csr"); + port->csr_base = devm_ioremap_resource(port->dev, res); + if (IS_ERR(port->csr_base)) + return PTR_ERR(port->csr_base); + + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "cfg"); + port->cfg_base = devm_ioremap_resource(port->dev, res); + if (IS_ERR(port->cfg_base)) + return PTR_ERR(port->cfg_base); + *cfg_addr = res->start; + + return 0; +} + +static void xgene_pcie_setup_ob_reg(struct xgene_pcie_port *port, + u32 addr, u32 restype) +{ + struct resource *res; + void __iomem *base = port->csr_base + addr; + resource_size_t size; + u64 cpu_addr, pci_addr; + u64 mask = 0; + u32 min_size; + u32 flag = EN_REG; + + if (restype == IORESOURCE_MEM) { + res = &port->mem.res; + pci_addr = port->mem.pci_addr; + min_size = SZ_128M; + } else { + res = &port->io.res; + pci_addr = port->io.pci_addr; + min_size = 128; + flag |= OB_LO_IO; + } + size = resource_size(res); + if (size >= min_size) + mask = ~(size - 1) | flag; + else + dev_warn(port->dev, "res size 0x%llx less than minimum 0x%x\n", + (u64)size, min_size); + cpu_addr = res->start; + writel(lower_32_bits(cpu_addr), base); + writel(upper_32_bits(cpu_addr), base + 0x04); + writel(lower_32_bits(mask), base + 0x08); + writel(upper_32_bits(mask), base + 0x0c); + writel(lower_32_bits(pci_addr), base + 0x10); + writel(upper_32_bits(pci_addr), base + 0x14); +} + +static void xgene_pcie_setup_cfg_reg(void __iomem *csr_base, u64 addr) +{ + writel(lower_32_bits(addr), csr_base + CFGBARL); + writel(upper_32_bits(addr), csr_base + CFGBARH); + writel(EN_REG, csr_base + CFGCTL); +} + +static int xgene_pcie_parse_map_ranges(struct xgene_pcie_port *port, + u64 cfg_addr) +{ + struct device_node *np = port->node; + struct of_pci_range range; + struct of_pci_range_parser parser; + struct device *dev = port->dev; + + if (of_pci_range_parser_init(&parser, np)) { + dev_err(dev, "missing ranges property\n"); + return -EINVAL; + } + + /* Get the I/O, memory ranges from DT */ + for_each_of_pci_range(&parser, &range) { + struct resource *res = NULL; + u64 restype = range.flags & IORESOURCE_TYPE_BITS; + u64 end = range.cpu_addr + range.size - 1; + dev_dbg(port->dev, "0x%08x 0x%016llx..0x%016llx -> 0x%016llx\n", + range.flags, range.cpu_addr, end, range.pci_addr); + + switch (restype) { + case IORESOURCE_IO: + res = &port->io.res; + port->io.pci_addr = range.pci_addr; + of_pci_range_to_resource(&range, np, res); + xgene_pcie_setup_ob_reg(port, OMR1BARL, restype); + break; + case IORESOURCE_MEM: + res = &port->mem.res; + port->mem.pci_addr = range.pci_addr; + of_pci_range_to_resource(&range, np, res); + xgene_pcie_setup_ob_reg(port, OMR2BARL, restype); + break; + default: + dev_err(dev, "invalid io resource!"); + return -EINVAL; + } + } + xgene_pcie_setup_cfg_reg(port->csr_base, cfg_addr); + return 0; +} + +static void xgene_pcie_setup_pims(void *addr, u64 pim, u64 size) +{ + writel(lower_32_bits(pim), addr); + writel(upper_32_bits(pim) | EN_COHERENCY, addr + 0x04); + writel(lower_32_bits(size), addr + 0x10); + writel(upper_32_bits(size), addr + 0x14); +} + +/* + * X-Gene PCIe support maximum 3 inbound memory regions + * This function helps to select a region based on size of region + */ +static int xgene_pcie_select_ib_reg(u8 *ib_reg_mask, u64 size) +{ + if ((size > 4) && (size < SZ_16M) && !(*ib_reg_mask & (1 << 1))) { + *ib_reg_mask |= (1 << 1); + return 1; + } + + if ((size > SZ_1K) && (size < SZ_1T) && !(*ib_reg_mask & (1 << 0))) { + *ib_reg_mask |= (1 << 0); + return 0; + } + + if ((size > SZ_1M) && (size < SZ_1T) && !(*ib_reg_mask & (1 << 2))) { + *ib_reg_mask |= (1 << 2); + return 2; + } + return -EINVAL; +} + +static void xgene_pcie_setup_ib_reg(struct xgene_pcie_port *port, + struct of_pci_range *range, u8 *ib_reg_mask) +{ + void __iomem *csr_base = port->csr_base; + void __iomem *cfg_base = port->cfg_base; + void *bar_addr; + void *pim_addr; + u64 restype = range->flags & IORESOURCE_TYPE_BITS; + u64 cpu_addr = range->cpu_addr; + u64 pci_addr = range->pci_addr; + u64 size = range->size; + u64 mask = ~(size - 1) | EN_REG; + u32 flags = PCI_BASE_ADDRESS_MEM_TYPE_64; + u32 bar_low; + int region; + + region = xgene_pcie_select_ib_reg(ib_reg_mask, range->size); + if (region < 0) { + dev_warn(port->dev, "invalid pcie dma-range config\n"); + return; + } + + if (restype == PCI_BASE_ADDRESS_MEM_PREFETCH) + flags |= PCI_BASE_ADDRESS_MEM_PREFETCH; + + bar_low = pcie_bar_low_val((u32)cpu_addr, flags); + switch (region) { + case 0: + xgene_pcie_set_ib_mask(csr_base, BRIDGE_CFG_4, flags, size); + bar_addr = cfg_base + PCI_BASE_ADDRESS_0; + writel(bar_low, bar_addr); + writel(upper_32_bits(cpu_addr), bar_addr + 0x4); + pim_addr = csr_base + PIM1_1L; + break; + case 1: + bar_addr = csr_base + IBAR2; + writel(bar_low, bar_addr); + writel(lower_32_bits(mask), csr_base + IR2MSK); + pim_addr = csr_base + PIM2_1L; + break; + case 2: + bar_addr = csr_base + IBAR3L; + writel(bar_low, bar_addr); + writel(upper_32_bits(cpu_addr), bar_addr + 0x4); + writel(lower_32_bits(mask), csr_base + IR3MSKL); + writel(upper_32_bits(mask), csr_base + IR3MSKL + 0x4); + pim_addr = csr_base + PIM3_1L; + break; + } + + xgene_pcie_setup_pims(pim_addr, pci_addr, size); +} + +static int pci_dma_range_parser_init(struct of_pci_range_parser *parser, + struct device_node *node) +{ + const int na = 3, ns = 2; + int rlen; + + parser->node = node; + parser->pna = of_n_addr_cells(node); + parser->np = parser->pna + na + ns; + + parser->range = of_get_property(node, "ib-ranges", &rlen); + if (!parser->range) + return -ENOENT; + + parser->end = parser->range + rlen / sizeof(__be32); + return 0; +} + +static int xgene_pcie_parse_map_dma_ranges(struct xgene_pcie_port *port) +{ + struct device_node *np = port->node; + struct of_pci_range range; + struct of_pci_range_parser parser; + struct device *dev = port->dev; + u8 ib_reg_mask = 0; + + if (pci_dma_range_parser_init(&parser, np)) { + dev_err(dev, "missing ib-ranges property\n"); + return -EINVAL; + } + + /* Get the ib-ranges from DT */ + for_each_of_pci_range(&parser, &range) { + u64 end = range.cpu_addr + range.size - 1; + dev_dbg(port->dev, "0x%08x 0x%016llx..0x%016llx -> 0x%016llx\n", + range.flags, range.cpu_addr, end, range.pci_addr); + xgene_pcie_setup_ib_reg(port, &range, &ib_reg_mask); + } + return 0; +} + +static int xgene_pcie_setup(int nr, struct pci_sys_data *sys) +{ + struct xgene_pcie_port *pp = sys->private_data; + struct resource *io = &pp->realio; + + io->start = sys->domain * SZ_64K; + io->end = io->start + SZ_64K; + io->flags = pp->io.res.flags; + io->name = "PCI IO"; + pci_ioremap_io(io->start, pp->io.res.start); + + pci_add_resource_offset(&sys->resources, io, sys->io_offset); + sys->mem_offset = pp->mem.res.start - pp->mem.pci_addr; + pci_add_resource_offset(&sys->resources, &pp->mem.res, + sys->mem_offset); + return 1; +} + +static int xgene_pcie_probe_bridge(struct platform_device *pdev) +{ + struct device_node *np = of_node_get(pdev->dev.of_node); + struct xgene_pcie_port *port; + struct hw_pci xgene_pcie_hw; + u32 lanes = 0, speed = 0; + u64 cfg_addr = 0; + static u32 domain; + int ret; + + port = devm_kzalloc(&pdev->dev, sizeof(*port), GFP_KERNEL); + if (!port) + return -ENOMEM; + port->node = np; + port->dev = &pdev->dev; + + ret = xgene_pcie_map_reg(port, pdev, &cfg_addr); + if (ret) + return ret; + + ret = xgene_pcie_init_port(port); + if (ret) + goto skip; + xgene_pcie_program_core(port->csr_base); + xgene_pcie_setup_root_complex(port); + ret = xgene_pcie_parse_map_ranges(port, cfg_addr); + if (ret) + goto skip; + ret = xgene_pcie_parse_map_dma_ranges(port); + if (ret) + goto skip; + xgene_pcie_poll_linkup(port, &lanes, &speed); +skip: + if (!port->link_up) + dev_info(port->dev, "(rc) link down\n"); + else + dev_info(port->dev, "(rc) x%d gen-%d link up\n", + lanes, speed + 1); + platform_set_drvdata(pdev, port); + memset(&xgene_pcie_hw, 0, sizeof(xgene_pcie_hw)); + xgene_pcie_hw.domain = domain++; + xgene_pcie_hw.private_data = (void **)&port; + xgene_pcie_hw.nr_controllers = 1; + xgene_pcie_hw.setup = xgene_pcie_setup; + xgene_pcie_hw.map_irq = of_irq_parse_and_map_pci; + xgene_pcie_hw.ops = &xgene_pcie_ops; + pci_common_init(&xgene_pcie_hw); + return 0; +} + +static const struct of_device_id xgene_pcie_match_table[] = { + {.compatible = "apm,xgene-pcie",}, + {}, +}; + +static struct platform_driver xgene_pcie_driver = { + .driver = { + .name = "xgene-pcie", + .owner = THIS_MODULE, + .of_match_table = of_match_ptr(xgene_pcie_match_table), + }, + .probe = xgene_pcie_probe_bridge, +}; +module_platform_driver(xgene_pcie_driver); + +MODULE_AUTHOR("Tanmay Inamdar "); +MODULE_DESCRIPTION("APM X-Gene PCIe driver"); +MODULE_LICENSE("GPL v2"); --- linux-3.13.0.orig/drivers/pci/host/pcie-designware.c +++ linux-3.13.0/drivers/pci/host/pcie-designware.c @@ -498,13 +498,13 @@ dw_pcie_writel_rc(pp, PCIE_ATU_REGION_OUTBOUND | PCIE_ATU_REGION_INDEX1, PCIE_ATU_VIEWPORT); dw_pcie_writel_rc(pp, PCIE_ATU_TYPE_CFG1, PCIE_ATU_CR1); - dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2); dw_pcie_writel_rc(pp, pp->cfg1_base, PCIE_ATU_LOWER_BASE); dw_pcie_writel_rc(pp, (pp->cfg1_base >> 32), PCIE_ATU_UPPER_BASE); dw_pcie_writel_rc(pp, pp->cfg1_base + pp->config.cfg1_size - 1, PCIE_ATU_LIMIT); dw_pcie_writel_rc(pp, busdev, PCIE_ATU_LOWER_TARGET); dw_pcie_writel_rc(pp, 0, PCIE_ATU_UPPER_TARGET); + dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2); } static void dw_pcie_prog_viewport_mem_outbound(struct pcie_port *pp) @@ -513,7 +513,6 @@ dw_pcie_writel_rc(pp, PCIE_ATU_REGION_OUTBOUND | PCIE_ATU_REGION_INDEX0, PCIE_ATU_VIEWPORT); dw_pcie_writel_rc(pp, PCIE_ATU_TYPE_MEM, PCIE_ATU_CR1); - dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2); dw_pcie_writel_rc(pp, pp->mem_base, PCIE_ATU_LOWER_BASE); dw_pcie_writel_rc(pp, (pp->mem_base >> 32), PCIE_ATU_UPPER_BASE); dw_pcie_writel_rc(pp, pp->mem_base + pp->config.mem_size - 1, @@ -521,6 +520,7 @@ dw_pcie_writel_rc(pp, pp->config.mem_bus_addr, PCIE_ATU_LOWER_TARGET); dw_pcie_writel_rc(pp, upper_32_bits(pp->config.mem_bus_addr), PCIE_ATU_UPPER_TARGET); + dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2); } static void dw_pcie_prog_viewport_io_outbound(struct pcie_port *pp) @@ -529,7 +529,6 @@ dw_pcie_writel_rc(pp, PCIE_ATU_REGION_OUTBOUND | PCIE_ATU_REGION_INDEX1, PCIE_ATU_VIEWPORT); dw_pcie_writel_rc(pp, PCIE_ATU_TYPE_IO, PCIE_ATU_CR1); - dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2); dw_pcie_writel_rc(pp, pp->io_base, PCIE_ATU_LOWER_BASE); dw_pcie_writel_rc(pp, (pp->io_base >> 32), PCIE_ATU_UPPER_BASE); dw_pcie_writel_rc(pp, pp->io_base + pp->config.io_size - 1, @@ -537,6 +536,7 @@ dw_pcie_writel_rc(pp, pp->config.io_bus_addr, PCIE_ATU_LOWER_TARGET); dw_pcie_writel_rc(pp, upper_32_bits(pp->config.io_bus_addr), PCIE_ATU_UPPER_TARGET); + dw_pcie_writel_rc(pp, PCIE_ATU_ENABLE, PCIE_ATU_CR2); } static int dw_pcie_rd_other_conf(struct pcie_port *pp, struct pci_bus *bus, @@ -773,7 +773,7 @@ /* setup RC BARs */ dw_pcie_writel_rc(pp, 0x00000004, PCI_BASE_ADDRESS_0); - dw_pcie_writel_rc(pp, 0x00000004, PCI_BASE_ADDRESS_1); + dw_pcie_writel_rc(pp, 0x00000000, PCI_BASE_ADDRESS_1); /* setup interrupt pins */ dw_pcie_readl_rc(pp, PCI_INTERRUPT_LINE, &val); --- linux-3.13.0.orig/drivers/pci/hotplug/acpiphp_glue.c +++ linux-3.13.0/drivers/pci/hotplug/acpiphp_glue.c @@ -706,6 +706,17 @@ return (unsigned int)sta; } +static inline bool device_status_valid(unsigned int sta) +{ + /* + * ACPI spec says that _STA may return bit 0 clear with bit 3 set + * if the device is valid but does not require a device driver to be + * loaded (Section 6.3.7 of ACPI 5.0A). + */ + unsigned int mask = ACPI_STA_DEVICE_ENABLED | ACPI_STA_DEVICE_FUNCTIONING; + return (sta & mask) == mask; +} + /** * trim_stale_devices - remove PCI devices that are not responding. * @dev: PCI device to start walking the hierarchy from. @@ -721,7 +732,7 @@ unsigned long long sta; status = acpi_evaluate_integer(handle, "_STA", NULL, &sta); - alive = (ACPI_SUCCESS(status) && sta == ACPI_STA_ALL) + alive = (ACPI_SUCCESS(status) && device_status_valid(sta)) || acpiphp_no_hotplug(handle); } if (!alive) { @@ -764,7 +775,7 @@ mutex_lock(&slot->crit_sect); if (slot_no_hotplug(slot)) { ; /* do nothing */ - } else if (get_slot_status(slot) == ACPI_STA_ALL) { + } else if (device_status_valid(get_slot_status(slot))) { /* remove stale devices if any */ list_for_each_entry_safe(dev, tmp, &bus->devices, bus_list) --- linux-3.13.0.orig/drivers/pci/hotplug/shpchp_ctrl.c +++ linux-3.13.0/drivers/pci/hotplug/shpchp_ctrl.c @@ -282,8 +282,8 @@ return WRONG_BUS_FREQUENCY; } - bsp = ctrl->pci_dev->bus->cur_bus_speed; - msp = ctrl->pci_dev->bus->max_bus_speed; + bsp = ctrl->pci_dev->subordinate->cur_bus_speed; + msp = ctrl->pci_dev->subordinate->max_bus_speed; /* Check if there are other slots or devices on the same bus */ if (!list_empty(&ctrl->pci_dev->subordinate->devices)) --- linux-3.13.0.orig/drivers/pci/msi.c +++ linux-3.13.0/drivers/pci/msi.c @@ -563,6 +563,20 @@ return ret; } +static int msi_verify_entries(struct pci_dev *dev) +{ + struct msi_desc *entry; + + list_for_each_entry(entry, &dev->msi_list, list) { + if (!dev->no_64bit_msi || !entry->msg.address_hi) + continue; + dev_err(&dev->dev, "Device has broken 64-bit MSI but arch" + " tried to assign one above 4G\n"); + return -EIO; + } + return 0; +} + /** * msi_capability_init - configure device's MSI capability structure * @dev: pointer to the pci_dev data structure of MSI device function @@ -616,6 +630,13 @@ return ret; } + ret = msi_verify_entries(dev); + if (ret) { + msi_mask_irq(entry, mask, ~mask); + free_msi_irqs(dev); + return ret; + } + ret = populate_msi_sysfs(dev); if (ret) { msi_mask_irq(entry, mask, ~mask); @@ -731,6 +752,11 @@ if (ret) goto error; + /* Check if all MSI entries honor device restrictions */ + ret = msi_verify_entries(dev); + if (ret) + goto error; + /* * Some devices require MSI-X to be enabled before we can touch the * MSI-X registers. We need to mask all the vectors to prevent @@ -1079,3 +1105,77 @@ if (dev->msix_cap) msix_set_enable(dev, 0); } + +/** + * pci_enable_msi_range - configure device's MSI capability structure + * @dev: device to configure + * @minvec: minimal number of interrupts to configure + * @maxvec: maximum number of interrupts to configure + * + * This function tries to allocate a maximum possible number of interrupts in a + * range between @minvec and @maxvec. It returns a negative errno if an error + * occurs. If it succeeds, it returns the actual number of interrupts allocated + * and updates the @dev's irq member to the lowest new interrupt number; + * the other interrupt numbers allocated to this device are consecutive. + **/ +int pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec) +{ + int nvec = maxvec; + int rc; + + if (maxvec < minvec) + return -ERANGE; + + do { + rc = pci_enable_msi_block(dev, nvec); + if (rc < 0) { + return rc; + } else if (rc > 0) { + if (rc < minvec) + return -ENOSPC; + nvec = rc; + } + } while (rc); + + return nvec; +} +EXPORT_SYMBOL(pci_enable_msi_range); + +/** + * pci_enable_msix_range - configure device's MSI-X capability structure + * @dev: pointer to the pci_dev data structure of MSI-X device function + * @entries: pointer to an array of MSI-X entries + * @minvec: minimum number of MSI-X irqs requested + * @maxvec: maximum number of MSI-X irqs requested + * + * Setup the MSI-X capability structure of device function with a maximum + * possible number of interrupts in the range between @minvec and @maxvec + * upon its software driver call to request for MSI-X mode enabled on its + * hardware device function. It returns a negative errno if an error occurs. + * If it succeeds, it returns the actual number of interrupts allocated and + * indicates the successful configuration of MSI-X capability structure + * with new allocated MSI-X interrupts. + **/ +int pci_enable_msix_range(struct pci_dev *dev, struct msix_entry *entries, + int minvec, int maxvec) +{ + int nvec = maxvec; + int rc; + + if (maxvec < minvec) + return -ERANGE; + + do { + rc = pci_enable_msix(dev, entries, nvec); + if (rc < 0) { + return rc; + } else if (rc > 0) { + if (rc < minvec) + return -ENOSPC; + nvec = rc; + } + } while (rc); + + return nvec; +} +EXPORT_SYMBOL(pci_enable_msix_range); --- linux-3.13.0.orig/drivers/pci/pci-sysfs.c +++ linux-3.13.0/drivers/pci/pci-sysfs.c @@ -178,7 +178,7 @@ { struct pci_dev *pci_dev = to_pci_dev(dev); - return sprintf(buf, "pci:v%08Xd%08Xsv%08Xsd%08Xbc%02Xsc%02Xi%02x\n", + return sprintf(buf, "pci:v%08Xd%08Xsv%08Xsd%08Xbc%02Xsc%02Xi%02X\n", pci_dev->vendor, pci_dev->device, pci_dev->subsystem_vendor, pci_dev->subsystem_device, (u8)(pci_dev->class >> 16), (u8)(pci_dev->class >> 8), @@ -186,7 +186,7 @@ } static DEVICE_ATTR_RO(modalias); -static ssize_t enabled_store(struct device *dev, +static ssize_t enable_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { @@ -212,7 +212,7 @@ return result < 0 ? result : count; } -static ssize_t enabled_show(struct device *dev, +static ssize_t enable_show(struct device *dev, struct device_attribute *attr, char *buf) { struct pci_dev *pdev; @@ -220,7 +220,7 @@ pdev = to_pci_dev (dev); return sprintf (buf, "%u\n", atomic_read(&pdev->enable_cnt)); } -static DEVICE_ATTR_RW(enabled); +static DEVICE_ATTR_RW(enable); #ifdef CONFIG_NUMA static ssize_t @@ -531,7 +531,7 @@ #endif &dev_attr_dma_mask_bits.attr, &dev_attr_consistent_dma_mask_bits.attr, - &dev_attr_enabled.attr, + &dev_attr_enable.attr, &dev_attr_broken_parity_status.attr, &dev_attr_msi_bus.attr, #if defined(CONFIG_PM_RUNTIME) && defined(CONFIG_ACPI) --- linux-3.13.0.orig/drivers/pci/pci.c +++ linux-3.13.0/drivers/pci/pci.c @@ -782,12 +782,6 @@ if (!__pci_complete_power_transition(dev, state)) error = 0; - /* - * When aspm_policy is "powersave" this call ensures - * that ASPM is configured. - */ - if (!error && dev->bus->self) - pcie_aspm_powersave_config_link(dev->bus->self); return error; } @@ -1120,15 +1114,34 @@ static int do_pci_enable_device(struct pci_dev *dev, int bars) { int err; + struct pci_dev *bridge; + u16 cmd; + u8 pin; err = pci_set_power_state(dev, PCI_D0); if (err < 0 && err != -EIO) return err; + + bridge = pci_upstream_bridge(dev); + if (bridge) + pcie_aspm_powersave_config_link(bridge); + err = pcibios_enable_device(dev, bars); if (err < 0) return err; pci_fixup_device(pci_fixup_enable, dev); + if (dev->msi_enabled || dev->msix_enabled) + return 0; + + pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin); + if (pin) { + pci_read_config_word(dev, PCI_COMMAND, &cmd); + if (cmd & PCI_COMMAND_INTX_DISABLE) + pci_write_config_word(dev, PCI_COMMAND, + cmd & ~PCI_COMMAND_INTX_DISABLE); + } + return 0; } --- linux-3.13.0.orig/drivers/pci/probe.c +++ linux-3.13.0/drivers/pci/probe.c @@ -214,14 +214,17 @@ res->flags |= IORESOURCE_SIZEALIGN; if (res->flags & IORESOURCE_IO) { l &= PCI_BASE_ADDRESS_IO_MASK; + sz &= PCI_BASE_ADDRESS_IO_MASK; mask = PCI_BASE_ADDRESS_IO_MASK & (u32) IO_SPACE_LIMIT; } else { l &= PCI_BASE_ADDRESS_MEM_MASK; + sz &= PCI_BASE_ADDRESS_MEM_MASK; mask = (u32)PCI_BASE_ADDRESS_MEM_MASK; } } else { res->flags |= (l & IORESOURCE_ROM_ENABLE); l &= PCI_ROM_ADDRESS_MASK; + sz &= PCI_ROM_ADDRESS_MASK; mask = (u32)PCI_ROM_ADDRESS_MASK; } --- linux-3.13.0.orig/drivers/pci/quirks.c +++ linux-3.13.0/drivers/pci/quirks.c @@ -24,6 +24,7 @@ #include #include #include +#include #include /* isa_dma_bridge_buggy */ #include "pci.h" @@ -40,6 +41,21 @@ DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on); +/* The BAR0 ~ BAR4 of Marvell 9125 device can't be accessed +* by IO resource file, and need to skip the files +*/ +static void quirk_marvell_mask_bar(struct pci_dev *dev) +{ + int i; + + for (i = 0; i < 5; i++) + if (dev->resource[i].start) + dev->resource[i].start = + dev->resource[i].end = 0; +} +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9125, + quirk_marvell_mask_bar); + /* The Mellanox Tavor device gives false positive parity errors * Mark this device with a broken_parity_status, to allow * PCI scanning code to "skip" this now blacklisted device. @@ -287,6 +303,25 @@ } DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_IBM, PCI_DEVICE_ID_IBM_CITRINE, quirk_citrine); +/* On IBM Crocodile ipr SAS adapters, expand BAR to system page size */ +static void quirk_extend_bar_to_page(struct pci_dev *dev) +{ + int i; + + for (i = 0; i < PCI_STD_RESOURCE_END; i++) { + struct resource *r = &dev->resource[i]; + + if (r->flags & IORESOURCE_MEM && resource_size(r) < PAGE_SIZE) { + r->end = PAGE_SIZE - 1; + r->start = 0; + r->flags |= IORESOURCE_UNSET; + dev_info(&dev->dev, "expanded BAR %d to page size: %pR\n", + i, r); + } + } +} +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_IBM, 0x034a, quirk_extend_bar_to_page); + /* * S3 868 and 968 chips report region size equal to 32M, but they decode 64M. * If it's needed, re-allocate the region. @@ -2949,6 +2984,7 @@ } DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0102, disable_igfx_irq); DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq); /* * PCI devices which are on Intel chips can skip the 10ms delay --- linux-3.13.0.orig/drivers/pci/xen-pcifront.c +++ linux-3.13.0/drivers/pci/xen-pcifront.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #define INVALID_GRANT_REF (0) @@ -1138,6 +1139,9 @@ if (!xen_pv_domain() || xen_initial_domain()) return -ENODEV; + if (!xen_has_pv_devices()) + return -ENODEV; + pci_frontend_registrar(1 /* enable */); return xenbus_register_frontend(&xenpci_driver); --- linux-3.13.0.orig/drivers/phy/Kconfig +++ linux-3.13.0/drivers/phy/Kconfig @@ -51,4 +51,11 @@ help Support for Display Port PHY found on Samsung EXYNOS SoCs. +config PHY_XGENE + tristate "APM X-Gene 15Gbps PHY support" + depends on HAS_IOMEM && OF && (ARM64 || COMPILE_TEST) + select GENERIC_PHY + help + This option enables support for APM X-Gene SoC multi-purpose PHY. + endmenu --- linux-3.13.0.orig/drivers/phy/Makefile +++ linux-3.13.0/drivers/phy/Makefile @@ -7,3 +7,4 @@ obj-$(CONFIG_PHY_EXYNOS_MIPI_VIDEO) += phy-exynos-mipi-video.o obj-$(CONFIG_OMAP_USB2) += phy-omap-usb2.o obj-$(CONFIG_TWL4030_USB) += phy-twl4030-usb.o +obj-$(CONFIG_PHY_XGENE) += phy-xgene.o --- linux-3.13.0.orig/drivers/phy/phy-core.c +++ linux-3.13.0/drivers/phy/phy-core.c @@ -161,6 +161,8 @@ dev_err(&phy->dev, "phy init failed --> %d\n", ret); goto out; } + } else { + ret = 0; /* Override possible ret == -ENOTSUPP */ } out: @@ -209,6 +211,8 @@ dev_err(&phy->dev, "phy poweron failed --> %d\n", ret); goto out; } + } else { + ret = 0; /* Override possible ret == -ENOTSUPP */ } out: @@ -477,8 +481,9 @@ return phy; put_dev: - put_device(&phy->dev); - ida_remove(&phy_ida, phy->id); + put_device(&phy->dev); /* calls phy_release() which frees resources */ + return ERR_PTR(ret); + free_phy: kfree(phy); return ERR_PTR(ret); @@ -662,7 +667,7 @@ phy = to_phy(dev); dev_vdbg(dev, "releasing '%s'\n", dev_name(dev)); - ida_remove(&phy_ida, phy->id); + ida_simple_remove(&phy_ida, phy->id); kfree(phy); } --- linux-3.13.0.orig/drivers/phy/phy-twl4030-usb.c +++ linux-3.13.0/drivers/phy/phy-twl4030-usb.c @@ -560,7 +560,15 @@ */ omap_musb_mailbox(status); } - sysfs_notify(&twl->dev->kobj, NULL, "vbus"); + + /* don't schedule during sleep - irq works right then */ + if (status == OMAP_MUSB_ID_GROUND && !twl->asleep) { + cancel_delayed_work(&twl->id_workaround_work); + schedule_delayed_work(&twl->id_workaround_work, HZ); + } + + if (irq) + sysfs_notify(&twl->dev->kobj, NULL, "vbus"); return IRQ_HANDLED; } @@ -569,29 +577,8 @@ { struct twl4030_usb *twl = container_of(work, struct twl4030_usb, id_workaround_work.work); - enum omap_musb_vbus_id_status status; - bool status_changed = false; - - status = twl4030_usb_linkstat(twl); - - spin_lock_irq(&twl->lock); - if (status >= 0 && status != twl->linkstat) { - twl->linkstat = status; - status_changed = true; - } - spin_unlock_irq(&twl->lock); - if (status_changed) { - dev_dbg(twl->dev, "handle missing status change to %d\n", - status); - omap_musb_mailbox(status); - } - - /* don't schedule during sleep - irq works right then */ - if (status == OMAP_MUSB_ID_GROUND && !twl->asleep) { - cancel_delayed_work(&twl->id_workaround_work); - schedule_delayed_work(&twl->id_workaround_work, HZ); - } + twl4030_usb_irq(0, twl); } static int twl4030_phy_init(struct phy *phy) --- linux-3.13.0.orig/drivers/phy/phy-xgene.c +++ linux-3.13.0/drivers/phy/phy-xgene.c @@ -0,0 +1,1768 @@ +/* + * AppliedMicro X-Gene Multi-purpose PHY driver + * + * Copyright (c) 2014, Applied Micro Circuits Corporation + * Author: Loc Ho + * Tuan Phan + * Suman Tripathi + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * The APM X-Gene PHY consists of two PLL clock macro's (CMU) and lanes. + * The first PLL clock macro is used for internal reference clock. The second + * PLL clock macro is used to generate the clock for the PHY. This driver + * configures the first PLL CMU, the second PLL CMU, and programs the PHY to + * operate according to the mode of operation. The first PLL CMU is only + * required if internal clock is enabled. + * + * Logical Layer Out Of HW module units: + * + * ----------------- + * | Internal | |------| + * | Ref PLL CMU |----| | ------------- --------- + * ------------ ---- | MUX |-----|PHY PLL CMU|----| Serdes| + * | | | | --------- + * External Clock ------| | ------------- + * |------| + * + * The Ref PLL CMU CSR (Configuration System Registers) is accessed + * indirectly from the SDS offset at 0x2000. It is only required for + * internal reference clock. + * The PHY PLL CMU CSR is accessed indirectly from the SDS offset at 0x0000. + * The Serdes CSR is accessed indirectly from the SDS offset at 0x0400. + * + * The Ref PLL CMU can be located within the same PHY IP or outside the PHY IP + * due to shared Ref PLL CMU. For PHY with Ref PLL CMU shared with another IP, + * it is located outside the PHY IP. This is the case for the PHY located + * at 0x1f23a000 (SATA Port 4/5). For such PHY, another resource is required + * to located the SDS/Ref PLL CMU module and its clock for that IP enabled. + * + * Currently, this driver only supports Gen3 SATA mode with external clock. + */ +#include +#include +#include +#include +#include +#include + +/* Max 2 lanes per a PHY unit */ +#define MAX_LANE 2 + +/* Register offset inside the PHY */ +#define SERDES_PLL_INDIRECT_OFFSET 0x0000 +#define SERDES_PLL_REF_INDIRECT_OFFSET 0x2000 +#define SERDES_INDIRECT_OFFSET 0x0400 +#define SERDES_LANE_STRIDE 0x0200 + +/* Some default Serdes parameters */ +#define DEFAULT_SATA_TXBOOST_GAIN { 0x1e, 0x1e, 0x1e } +#define DEFAULT_SATA_TXEYEDIRECTION { 0x0, 0x0, 0x0 } +#define DEFAULT_SATA_TXEYETUNING { 0xa, 0xa, 0xa } +#define DEFAULT_SATA_SPD_SEL { 0x1, 0x3, 0x7 } +#define DEFAULT_SATA_TXAMP { 0x8, 0x8, 0x8 } +#define DEFAULT_SATA_TXCN1 { 0x2, 0x2, 0x2 } +#define DEFAULT_SATA_TXCN2 { 0x0, 0x0, 0x0 } +#define DEFAULT_SATA_TXCP1 { 0xa, 0xa, 0xa } + +#define SATA_SPD_SEL_GEN3 0x7 +#define SATA_SPD_SEL_GEN2 0x3 +#define SATA_SPD_SEL_GEN1 0x1 + +#define SSC_DISABLE 0 +#define SSC_ENABLE 1 + +#define FBDIV_VAL_50M 0x77 +#define REFDIV_VAL_50M 0x1 +#define FBDIV_VAL_100M 0x3B +#define REFDIV_VAL_100M 0x0 + +/* SATA Clock/Reset CSR */ +#define SATACLKENREG 0x00000000 +#define SATA0_CORE_CLKEN 0x00000002 +#define SATA1_CORE_CLKEN 0x00000004 +#define SATASRESETREG 0x00000004 +#define SATA_MEM_RESET_MASK 0x00000020 +#define SATA_MEM_RESET_RD(src) (((src) & 0x00000020) >> 5) +#define SATA_SDS_RESET_MASK 0x00000004 +#define SATA_CSR_RESET_MASK 0x00000001 +#define SATA_CORE_RESET_MASK 0x00000002 +#define SATA_PMCLK_RESET_MASK 0x00000010 +#define SATA_PCLK_RESET_MASK 0x00000008 + +/* SDS CSR used for PHY Indirect access */ +#define SATA_ENET_SDS_PCS_CTL0 0x00000000 +#define REGSPEC_CFG_I_TX_WORDMODE0_SET(dst, src) \ + (((dst) & ~0x00070000) | (((u32) (src) << 16) & 0x00070000)) +#define REGSPEC_CFG_I_RX_WORDMODE0_SET(dst, src) \ + (((dst) & ~0x00e00000) | (((u32) (src) << 21) & 0x00e00000)) +#define SATA_ENET_SDS_CTL0 0x0000000c +#define REGSPEC_CFG_I_CUSTOMER_PIN_MODE0_SET(dst, src) \ + (((dst) & ~0x00007fff) | (((u32) (src)) & 0x00007fff)) +#define SATA_ENET_SDS_CTL1 0x00000010 +#define CFG_I_SPD_SEL_CDR_OVR1_SET(dst, src) \ + (((dst) & ~0x0000000f) | (((u32) (src)) & 0x0000000f)) +#define SATA_ENET_SDS_RST_CTL 0x00000024 +#define SATA_ENET_SDS_IND_CMD_REG 0x0000003c +#define CFG_IND_WR_CMD_MASK 0x00000001 +#define CFG_IND_RD_CMD_MASK 0x00000002 +#define CFG_IND_CMD_DONE_MASK 0x00000004 +#define CFG_IND_ADDR_SET(dst, src) \ + (((dst) & ~0x003ffff0) | (((u32) (src) << 4) & 0x003ffff0)) +#define SATA_ENET_SDS_IND_RDATA_REG 0x00000040 +#define SATA_ENET_SDS_IND_WDATA_REG 0x00000044 +#define SATA_ENET_CLK_MACRO_REG 0x0000004c +#define I_RESET_B_SET(dst, src) \ + (((dst) & ~0x00000001) | (((u32) (src)) & 0x00000001)) +#define I_PLL_FBDIV_SET(dst, src) \ + (((dst) & ~0x001ff000) | (((u32) (src) << 12) & 0x001ff000)) +#define I_CUSTOMEROV_SET(dst, src) \ + (((dst) & ~0x00000f80) | (((u32) (src) << 7) & 0x00000f80)) +#define O_PLL_LOCK_RD(src) (((src) & 0x40000000) >> 30) +#define O_PLL_READY_RD(src) (((src) & 0x80000000) >> 31) + +/* PLL Clock Macro Unit (CMU) CSR accessing from SDS indirectly */ +#define CMU_REG0 0x00000 +#define CMU_REG0_PLL_REF_SEL_MASK 0x00002000 +#define CMU_REG0_PLL_REF_SEL_SET(dst, src) \ + (((dst) & ~0x00002000) | (((u32) (src) << 13) & 0x00002000)) +#define CMU_REG0_PDOWN_MASK 0x00004000 +#define CMU_REG0_CAL_COUNT_RESOL_SET(dst, src) \ + (((dst) & ~0x000000e0) | (((u32) (src) << 5) & 0x000000e0)) +#define CMU_REG1 0x00002 +#define CMU_REG1_PLL_CP_SET(dst, src) \ + (((dst) & ~0x00003c00) | (((u32) (src) << 10) & 0x00003c00)) +#define CMU_REG1_PLL_MANUALCAL_SET(dst, src) \ + (((dst) & ~0x00000008) | (((u32) (src) << 3) & 0x00000008)) +#define CMU_REG1_PLL_CP_SEL_SET(dst, src) \ + (((dst) & ~0x000003e0) | (((u32) (src) << 5) & 0x000003e0)) +#define CMU_REG1_REFCLK_CMOS_SEL_MASK 0x00000001 +#define CMU_REG1_REFCLK_CMOS_SEL_SET(dst, src) \ + (((dst) & ~0x00000001) | (((u32) (src) << 0) & 0x00000001)) +#define CMU_REG2 0x00004 +#define CMU_REG2_PLL_REFDIV_SET(dst, src) \ + (((dst) & ~0x0000c000) | (((u32) (src) << 14) & 0x0000c000)) +#define CMU_REG2_PLL_LFRES_SET(dst, src) \ + (((dst) & ~0x0000001e) | (((u32) (src) << 1) & 0x0000001e)) +#define CMU_REG2_PLL_FBDIV_SET(dst, src) \ + (((dst) & ~0x00003fe0) | (((u32) (src) << 5) & 0x00003fe0)) +#define CMU_REG3 0x00006 +#define CMU_REG3_VCOVARSEL_SET(dst, src) \ + (((dst) & ~0x0000000f) | (((u32) (src) << 0) & 0x0000000f)) +#define CMU_REG3_VCO_MOMSEL_INIT_SET(dst, src) \ + (((dst) & ~0x000003f0) | (((u32) (src) << 4) & 0x000003f0)) +#define CMU_REG3_VCO_MANMOMSEL_SET(dst, src) \ + (((dst) & ~0x0000fc00) | (((u32) (src) << 10) & 0x0000fc00)) +#define CMU_REG4 0x00008 +#define CMU_REG5 0x0000a +#define CMU_REG5_PLL_LFSMCAP_SET(dst, src) \ + (((dst) & ~0x0000c000) | (((u32) (src) << 14) & 0x0000c000)) +#define CMU_REG5_PLL_LOCK_RESOLUTION_SET(dst, src) \ + (((dst) & ~0x0000000e) | (((u32) (src) << 1) & 0x0000000e)) +#define CMU_REG5_PLL_LFCAP_SET(dst, src) \ + (((dst) & ~0x00003000) | (((u32) (src) << 12) & 0x00003000)) +#define CMU_REG5_PLL_RESETB_MASK 0x00000001 +#define CMU_REG6 0x0000c +#define CMU_REG6_PLL_VREGTRIM_SET(dst, src) \ + (((dst) & ~0x00000600) | (((u32) (src) << 9) & 0x00000600)) +#define CMU_REG6_MAN_PVT_CAL_SET(dst, src) \ + (((dst) & ~0x00000004) | (((u32) (src) << 2) & 0x00000004)) +#define CMU_REG7 0x0000e +#define CMU_REG7_PLL_CALIB_DONE_RD(src) ((0x00004000 & (u32) (src)) >> 14) +#define CMU_REG7_VCO_CAL_FAIL_RD(src) ((0x00000c00 & (u32) (src)) >> 10) +#define CMU_REG8 0x00010 +#define CMU_REG9 0x00012 +#define CMU_REG9_WORD_LEN_8BIT 0x000 +#define CMU_REG9_WORD_LEN_10BIT 0x001 +#define CMU_REG9_WORD_LEN_16BIT 0x002 +#define CMU_REG9_WORD_LEN_20BIT 0x003 +#define CMU_REG9_WORD_LEN_32BIT 0x004 +#define CMU_REG9_WORD_LEN_40BIT 0x005 +#define CMU_REG9_WORD_LEN_64BIT 0x006 +#define CMU_REG9_WORD_LEN_66BIT 0x007 +#define CMU_REG9_TX_WORD_MODE_CH1_SET(dst, src) \ + (((dst) & ~0x00000380) | (((u32) (src) << 7) & 0x00000380)) +#define CMU_REG9_TX_WORD_MODE_CH0_SET(dst, src) \ + (((dst) & ~0x00000070) | (((u32) (src) << 4) & 0x00000070)) +#define CMU_REG9_PLL_POST_DIVBY2_SET(dst, src) \ + (((dst) & ~0x00000008) | (((u32) (src) << 3) & 0x00000008)) +#define CMU_REG9_VBG_BYPASSB_SET(dst, src) \ + (((dst) & ~0x00000004) | (((u32) (src) << 2) & 0x00000004)) +#define CMU_REG9_IGEN_BYPASS_SET(dst, src) \ + (((dst) & ~0x00000002) | (((u32) (src) << 1) & 0x00000002)) +#define CMU_REG10 0x00014 +#define CMU_REG10_VREG_REFSEL_SET(dst, src) \ + (((dst) & ~0x00000001) | (((u32) (src) << 0) & 0x00000001)) +#define CMU_REG11 0x00016 +#define CMU_REG12 0x00018 +#define CMU_REG12_STATE_DELAY9_SET(dst, src) \ + (((dst) & ~0x000000f0) | (((u32) (src) << 4) & 0x000000f0)) +#define CMU_REG13 0x0001a +#define CMU_REG14 0x0001c +#define CMU_REG15 0x0001e +#define CMU_REG16 0x00020 +#define CMU_REG16_PVT_DN_MAN_ENA_MASK 0x00000001 +#define CMU_REG16_PVT_UP_MAN_ENA_MASK 0x00000002 +#define CMU_REG16_VCOCAL_WAIT_BTW_CODE_SET(dst, src) \ + (((dst) & ~0x0000001c) | (((u32) (src) << 2) & 0x0000001c)) +#define CMU_REG16_CALIBRATION_DONE_OVERRIDE_SET(dst, src) \ + (((dst) & ~0x00000040) | (((u32) (src) << 6) & 0x00000040)) +#define CMU_REG16_BYPASS_PLL_LOCK_SET(dst, src) \ + (((dst) & ~0x00000020) | (((u32) (src) << 5) & 0x00000020)) +#define CMU_REG17 0x00022 +#define CMU_REG17_PVT_CODE_R2A_SET(dst, src) \ + (((dst) & ~0x00007f00) | (((u32) (src) << 8) & 0x00007f00)) +#define CMU_REG17_RESERVED_7_SET(dst, src) \ + (((dst) & ~0x000000e0) | (((u32) (src) << 5) & 0x000000e0)) +#define CMU_REG17_PVT_TERM_MAN_ENA_MASK 0x00008000 +#define CMU_REG18 0x00024 +#define CMU_REG19 0x00026 +#define CMU_REG20 0x00028 +#define CMU_REG21 0x0002a +#define CMU_REG22 0x0002c +#define CMU_REG23 0x0002e +#define CMU_REG24 0x00030 +#define CMU_REG25 0x00032 +#define CMU_REG26 0x00034 +#define CMU_REG26_FORCE_PLL_LOCK_SET(dst, src) \ + (((dst) & ~0x00000001) | (((u32) (src) << 0) & 0x00000001)) +#define CMU_REG27 0x00036 +#define CMU_REG28 0x00038 +#define CMU_REG29 0x0003a +#define CMU_REG30 0x0003c +#define CMU_REG30_LOCK_COUNT_SET(dst, src) \ + (((dst) & ~0x00000006) | (((u32) (src) << 1) & 0x00000006)) +#define CMU_REG30_PCIE_MODE_SET(dst, src) \ + (((dst) & ~0x00000008) | (((u32) (src) << 3) & 0x00000008)) +#define CMU_REG31 0x0003e +#define CMU_REG32 0x00040 +#define CMU_REG32_FORCE_VCOCAL_START_MASK 0x00004000 +#define CMU_REG32_PVT_CAL_WAIT_SEL_SET(dst, src) \ + (((dst) & ~0x00000006) | (((u32) (src) << 1) & 0x00000006)) +#define CMU_REG32_IREF_ADJ_SET(dst, src) \ + (((dst) & ~0x00000180) | (((u32) (src) << 7) & 0x00000180)) +#define CMU_REG33 0x00042 +#define CMU_REG34 0x00044 +#define CMU_REG34_VCO_CAL_VTH_LO_MAX_SET(dst, src) \ + (((dst) & ~0x0000000f) | (((u32) (src) << 0) & 0x0000000f)) +#define CMU_REG34_VCO_CAL_VTH_HI_MAX_SET(dst, src) \ + (((dst) & ~0x00000f00) | (((u32) (src) << 8) & 0x00000f00)) +#define CMU_REG34_VCO_CAL_VTH_LO_MIN_SET(dst, src) \ + (((dst) & ~0x000000f0) | (((u32) (src) << 4) & 0x000000f0)) +#define CMU_REG34_VCO_CAL_VTH_HI_MIN_SET(dst, src) \ + (((dst) & ~0x0000f000) | (((u32) (src) << 12) & 0x0000f000)) +#define CMU_REG35 0x00046 +#define CMU_REG35_PLL_SSC_MOD_SET(dst, src) \ + (((dst) & ~0x0000fe00) | (((u32) (src) << 9) & 0x0000fe00)) +#define CMU_REG36 0x00048 +#define CMU_REG36_PLL_SSC_EN_SET(dst, src) \ + (((dst) & ~0x00000010) | (((u32) (src) << 4) & 0x00000010)) +#define CMU_REG36_PLL_SSC_VSTEP_SET(dst, src) \ + (((dst) & ~0x0000ffc0) | (((u32) (src) << 6) & 0x0000ffc0)) +#define CMU_REG36_PLL_SSC_DSMSEL_SET(dst, src) \ + (((dst) & ~0x00000020) | (((u32) (src) << 5) & 0x00000020)) +#define CMU_REG37 0x0004a +#define CMU_REG38 0x0004c +#define CMU_REG39 0x0004e + +/* PHY lane CSR accessing from SDS indirectly */ +#define RXTX_REG0 0x000 +#define RXTX_REG0_CTLE_EQ_HR_SET(dst, src) \ + (((dst) & ~0x0000f800) | (((u32) (src) << 11) & 0x0000f800)) +#define RXTX_REG0_CTLE_EQ_QR_SET(dst, src) \ + (((dst) & ~0x000007c0) | (((u32) (src) << 6) & 0x000007c0)) +#define RXTX_REG0_CTLE_EQ_FR_SET(dst, src) \ + (((dst) & ~0x0000003e) | (((u32) (src) << 1) & 0x0000003e)) +#define RXTX_REG1 0x002 +#define RXTX_REG1_RXACVCM_SET(dst, src) \ + (((dst) & ~0x0000f000) | (((u32) (src) << 12) & 0x0000f000)) +#define RXTX_REG1_CTLE_EQ_SET(dst, src) \ + (((dst) & ~0x00000f80) | (((u32) (src) << 7) & 0x00000f80)) +#define RXTX_REG1_RXVREG1_SET(dst, src) \ + (((dst) & ~0x00000060) | (((u32) (src) << 5) & 0x00000060)) +#define RXTX_REG1_RXIREF_ADJ_SET(dst, src) \ + (((dst) & ~0x00000006) | (((u32) (src) << 1) & 0x00000006)) +#define RXTX_REG2 0x004 +#define RXTX_REG2_VTT_ENA_SET(dst, src) \ + (((dst) & ~0x00000100) | (((u32) (src) << 8) & 0x00000100)) +#define RXTX_REG2_TX_FIFO_ENA_SET(dst, src) \ + (((dst) & ~0x00000020) | (((u32) (src) << 5) & 0x00000020)) +#define RXTX_REG2_VTT_SEL_SET(dst, src) \ + (((dst) & ~0x000000c0) | (((u32) (src) << 6) & 0x000000c0)) +#define RXTX_REG4 0x008 +#define RXTX_REG4_TX_LOOPBACK_BUF_EN_MASK 0x00000040 +#define RXTX_REG4_TX_DATA_RATE_SET(dst, src) \ + (((dst) & ~0x0000c000) | (((u32) (src) << 14) & 0x0000c000)) +#define RXTX_REG4_TX_WORD_MODE_SET(dst, src) \ + (((dst) & ~0x00003800) | (((u32) (src) << 11) & 0x00003800)) +#define RXTX_REG5 0x00a +#define RXTX_REG5_TX_CN1_SET(dst, src) \ + (((dst) & ~0x0000f800) | (((u32) (src) << 11) & 0x0000f800)) +#define RXTX_REG5_TX_CP1_SET(dst, src) \ + (((dst) & ~0x000007e0) | (((u32) (src) << 5) & 0x000007e0)) +#define RXTX_REG5_TX_CN2_SET(dst, src) \ + (((dst) & ~0x0000001f) | (((u32) (src) << 0) & 0x0000001f)) +#define RXTX_REG6 0x00c +#define RXTX_REG6_TXAMP_CNTL_SET(dst, src) \ + (((dst) & ~0x00000780) | (((u32) (src) << 7) & 0x00000780)) +#define RXTX_REG6_TXAMP_ENA_SET(dst, src) \ + (((dst) & ~0x00000040) | (((u32) (src) << 6) & 0x00000040)) +#define RXTX_REG6_RX_BIST_ERRCNT_RD_SET(dst, src) \ + (((dst) & ~0x00000001) | (((u32) (src) << 0) & 0x00000001)) +#define RXTX_REG6_TX_IDLE_SET(dst, src) \ + (((dst) & ~0x00000008) | (((u32) (src) << 3) & 0x00000008)) +#define RXTX_REG6_RX_BIST_RESYNC_SET(dst, src) \ + (((dst) & ~0x00000002) | (((u32) (src) << 1) & 0x00000002)) +#define RXTX_REG7 0x00e +#define RXTX_REG7_RESETB_RXD_MASK 0x00000100 +#define RXTX_REG7_RESETB_RXA_MASK 0x00000080 +#define RXTX_REG7_BIST_ENA_RX_SET(dst, src) \ + (((dst) & ~0x00000040) | (((u32) (src) << 6) & 0x00000040)) +#define RXTX_REG7_RX_WORD_MODE_SET(dst, src) \ + (((dst) & ~0x00003800) | (((u32) (src) << 11) & 0x00003800)) +#define RXTX_REG8 0x010 +#define RXTX_REG8_CDR_LOOP_ENA_SET(dst, src) \ + (((dst) & ~0x00004000) | (((u32) (src) << 14) & 0x00004000)) +#define RXTX_REG8_CDR_BYPASS_RXLOS_SET(dst, src) \ + (((dst) & ~0x00000800) | (((u32) (src) << 11) & 0x00000800)) +#define RXTX_REG8_SSC_ENABLE_SET(dst, src) \ + (((dst) & ~0x00000200) | (((u32) (src) << 9) & 0x00000200)) +#define RXTX_REG8_SD_VREF_SET(dst, src) \ + (((dst) & ~0x000000f0) | (((u32) (src) << 4) & 0x000000f0)) +#define RXTX_REG8_SD_DISABLE_SET(dst, src) \ + (((dst) & ~0x00000100) | (((u32) (src) << 8) & 0x00000100)) +#define RXTX_REG7 0x00e +#define RXTX_REG7_RESETB_RXD_SET(dst, src) \ + (((dst) & ~0x00000100) | (((u32) (src) << 8) & 0x00000100)) +#define RXTX_REG7_RESETB_RXA_SET(dst, src) \ + (((dst) & ~0x00000080) | (((u32) (src) << 7) & 0x00000080)) +#define RXTX_REG7_LOOP_BACK_ENA_CTLE_MASK 0x00004000 +#define RXTX_REG7_LOOP_BACK_ENA_CTLE_SET(dst, src) \ + (((dst) & ~0x00004000) | (((u32) (src) << 14) & 0x00004000)) +#define RXTX_REG11 0x016 +#define RXTX_REG11_PHASE_ADJUST_LIMIT_SET(dst, src) \ + (((dst) & ~0x0000f800) | (((u32) (src) << 11) & 0x0000f800)) +#define RXTX_REG12 0x018 +#define RXTX_REG12_LATCH_OFF_ENA_SET(dst, src) \ + (((dst) & ~0x00002000) | (((u32) (src) << 13) & 0x00002000)) +#define RXTX_REG12_SUMOS_ENABLE_SET(dst, src) \ + (((dst) & ~0x00000004) | (((u32) (src) << 2) & 0x00000004)) +#define RXTX_REG12_RX_DET_TERM_ENABLE_MASK 0x00000002 +#define RXTX_REG12_RX_DET_TERM_ENABLE_SET(dst, src) \ + (((dst) & ~0x00000002) | (((u32) (src) << 1) & 0x00000002)) +#define RXTX_REG13 0x01a +#define RXTX_REG14 0x01c +#define RXTX_REG14_CLTE_LATCAL_MAN_PROG_SET(dst, src) \ + (((dst) & ~0x0000003f) | (((u32) (src) << 0) & 0x0000003f)) +#define RXTX_REG14_CTLE_LATCAL_MAN_ENA_SET(dst, src) \ + (((dst) & ~0x00000040) | (((u32) (src) << 6) & 0x00000040)) +#define RXTX_REG26 0x034 +#define RXTX_REG26_PERIOD_ERROR_LATCH_SET(dst, src) \ + (((dst) & ~0x00003800) | (((u32) (src) << 11) & 0x00003800)) +#define RXTX_REG26_BLWC_ENA_SET(dst, src) \ + (((dst) & ~0x00000008) | (((u32) (src) << 3) & 0x00000008)) +#define RXTX_REG21 0x02a +#define RXTX_REG21_DO_LATCH_CALOUT_RD(src) ((0x0000fc00 & (u32) (src)) >> 10) +#define RXTX_REG21_XO_LATCH_CALOUT_RD(src) ((0x000003f0 & (u32) (src)) >> 4) +#define RXTX_REG21_LATCH_CAL_FAIL_ODD_RD(src) ((0x0000000f & (u32)(src))) +#define RXTX_REG22 0x02c +#define RXTX_REG22_SO_LATCH_CALOUT_RD(src) ((0x000003f0 & (u32) (src)) >> 4) +#define RXTX_REG22_EO_LATCH_CALOUT_RD(src) ((0x0000fc00 & (u32) (src)) >> 10) +#define RXTX_REG22_LATCH_CAL_FAIL_EVEN_RD(src) ((0x0000000f & (u32)(src))) +#define RXTX_REG23 0x02e +#define RXTX_REG23_DE_LATCH_CALOUT_RD(src) ((0x0000fc00 & (u32) (src)) >> 10) +#define RXTX_REG23_XE_LATCH_CALOUT_RD(src) ((0x000003f0 & (u32) (src)) >> 4) +#define RXTX_REG24 0x030 +#define RXTX_REG24_EE_LATCH_CALOUT_RD(src) ((0x0000fc00 & (u32) (src)) >> 10) +#define RXTX_REG24_SE_LATCH_CALOUT_RD(src) ((0x000003f0 & (u32) (src)) >> 4) +#define RXTX_REG27 0x036 +#define RXTX_REG28 0x038 +#define RXTX_REG31 0x03e +#define RXTX_REG38 0x04c +#define RXTX_REG38_CUSTOMER_PINMODE_INV_SET(dst, src) \ + (((dst) & 0x0000fffe) | (((u32) (src) << 1) & 0x0000fffe)) +#define RXTX_REG39 0x04e +#define RXTX_REG40 0x050 +#define RXTX_REG41 0x052 +#define RXTX_REG42 0x054 +#define RXTX_REG43 0x056 +#define RXTX_REG44 0x058 +#define RXTX_REG45 0x05a +#define RXTX_REG46 0x05c +#define RXTX_REG47 0x05e +#define RXTX_REG48 0x060 +#define RXTX_REG49 0x062 +#define RXTX_REG50 0x064 +#define RXTX_REG51 0x066 +#define RXTX_REG52 0x068 +#define RXTX_REG53 0x06a +#define RXTX_REG54 0x06c +#define RXTX_REG55 0x06e +#define RXTX_REG61 0x07a +#define RXTX_REG61_ISCAN_INBERT_SET(dst, src) \ + (((dst) & ~0x00000010) | (((u32) (src) << 4) & 0x00000010)) +#define RXTX_REG61_LOADFREQ_SHIFT_SET(dst, src) \ + (((dst) & ~0x00000008) | (((u32) (src) << 3) & 0x00000008)) +#define RXTX_REG61_EYE_COUNT_WIDTH_SEL_SET(dst, src) \ + (((dst) & ~0x000000c0) | (((u32) (src) << 6) & 0x000000c0)) +#define RXTX_REG61_SPD_SEL_CDR_SET(dst, src) \ + (((dst) & ~0x00003c00) | (((u32) (src) << 10) & 0x00003c00)) +#define RXTX_REG62 0x07c +#define RXTX_REG62_PERIOD_H1_QLATCH_SET(dst, src) \ + (((dst) & ~0x00003800) | (((u32) (src) << 11) & 0x00003800)) +#define RXTX_REG81 0x0a2 +#define RXTX_REG89_MU_TH7_SET(dst, src) \ + (((dst) & ~0x0000f800) | (((u32) (src) << 11) & 0x0000f800)) +#define RXTX_REG89_MU_TH8_SET(dst, src) \ + (((dst) & ~0x000007c0) | (((u32) (src) << 6) & 0x000007c0)) +#define RXTX_REG89_MU_TH9_SET(dst, src) \ + (((dst) & ~0x0000003e) | (((u32) (src) << 1) & 0x0000003e)) +#define RXTX_REG96 0x0c0 +#define RXTX_REG96_MU_FREQ1_SET(dst, src) \ + (((dst) & ~0x0000f800) | (((u32) (src) << 11) & 0x0000f800)) +#define RXTX_REG96_MU_FREQ2_SET(dst, src) \ + (((dst) & ~0x000007c0) | (((u32) (src) << 6) & 0x000007c0)) +#define RXTX_REG96_MU_FREQ3_SET(dst, src) \ + (((dst) & ~0x0000003e) | (((u32) (src) << 1) & 0x0000003e)) +#define RXTX_REG99 0x0c6 +#define RXTX_REG99_MU_PHASE1_SET(dst, src) \ + (((dst) & ~0x0000f800) | (((u32) (src) << 11) & 0x0000f800)) +#define RXTX_REG99_MU_PHASE2_SET(dst, src) \ + (((dst) & ~0x000007c0) | (((u32) (src) << 6) & 0x000007c0)) +#define RXTX_REG99_MU_PHASE3_SET(dst, src) \ + (((dst) & ~0x0000003e) | (((u32) (src) << 1) & 0x0000003e)) +#define RXTX_REG102 0x0cc +#define RXTX_REG102_FREQLOOP_LIMIT_SET(dst, src) \ + (((dst) & ~0x00000060) | (((u32) (src) << 5) & 0x00000060)) +#define RXTX_REG114 0x0e4 +#define RXTX_REG121 0x0f2 +#define RXTX_REG121_SUMOS_CAL_CODE_RD(src) ((0x0000003e & (u32)(src)) >> 0x1) +#define RXTX_REG125 0x0fa +#define RXTX_REG125_PQ_REG_SET(dst, src) \ + (((dst) & ~0x0000fe00) | (((u32) (src) << 9) & 0x0000fe00)) +#define RXTX_REG125_SIGN_PQ_SET(dst, src) \ + (((dst) & ~0x00000100) | (((u32) (src) << 8) & 0x00000100)) +#define RXTX_REG125_SIGN_PQ_2C_SET(dst, src) \ + (((dst) & ~0x00000080) | (((u32) (src) << 7) & 0x00000080)) +#define RXTX_REG125_PHZ_MANUALCODE_SET(dst, src) \ + (((dst) & ~0x0000007c) | (((u32) (src) << 2) & 0x0000007c)) +#define RXTX_REG125_PHZ_MANUAL_SET(dst, src) \ + (((dst) & ~0x00000002) | (((u32) (src) << 1) & 0x00000002)) +#define RXTX_REG127 0x0fe +#define RXTX_REG127_FORCE_SUM_CAL_START_MASK 0x00000002 +#define RXTX_REG127_FORCE_LAT_CAL_START_MASK 0x00000004 +#define RXTX_REG127_FORCE_SUM_CAL_START_SET(dst, src) \ + (((dst) & ~0x00000002) | (((u32) (src) << 1) & 0x00000002)) +#define RXTX_REG127_FORCE_LAT_CAL_START_SET(dst, src) \ + (((dst) & ~0x00000004) | (((u32) (src) << 2) & 0x00000004)) +#define RXTX_REG127_LATCH_MAN_CAL_ENA_SET(dst, src) \ + (((dst) & ~0x00000008) | (((u32) (src) << 3) & 0x00000008)) +#define RXTX_REG127_DO_LATCH_MANCAL_SET(dst, src) \ + (((dst) & ~0x0000fc00) | (((u32) (src) << 10) & 0x0000fc00)) +#define RXTX_REG127_XO_LATCH_MANCAL_SET(dst, src) \ + (((dst) & ~0x000003f0) | (((u32) (src) << 4) & 0x000003f0)) +#define RXTX_REG128 0x100 +#define RXTX_REG128_LATCH_CAL_WAIT_SEL_SET(dst, src) \ + (((dst) & ~0x0000000c) | (((u32) (src) << 2) & 0x0000000c)) +#define RXTX_REG128_EO_LATCH_MANCAL_SET(dst, src) \ + (((dst) & ~0x0000fc00) | (((u32) (src) << 10) & 0x0000fc00)) +#define RXTX_REG128_SO_LATCH_MANCAL_SET(dst, src) \ + (((dst) & ~0x000003f0) | (((u32) (src) << 4) & 0x000003f0)) +#define RXTX_REG129 0x102 +#define RXTX_REG129_DE_LATCH_MANCAL_SET(dst, src) \ + (((dst) & ~0x0000fc00) | (((u32) (src) << 10) & 0x0000fc00)) +#define RXTX_REG129_XE_LATCH_MANCAL_SET(dst, src) \ + (((dst) & ~0x000003f0) | (((u32) (src) << 4) & 0x000003f0)) +#define RXTX_REG130 0x104 +#define RXTX_REG130_EE_LATCH_MANCAL_SET(dst, src) \ + (((dst) & ~0x0000fc00) | (((u32) (src) << 10) & 0x0000fc00)) +#define RXTX_REG130_SE_LATCH_MANCAL_SET(dst, src) \ + (((dst) & ~0x000003f0) | (((u32) (src) << 4) & 0x000003f0)) +#define RXTX_REG145 0x122 +#define RXTX_REG145_TX_IDLE_SATA_SET(dst, src) \ + (((dst) & ~0x00000001) | (((u32) (src) << 0) & 0x00000001)) +#define RXTX_REG145_RXES_ENA_SET(dst, src) \ + (((dst) & ~0x00000002) | (((u32) (src) << 1) & 0x00000002)) +#define RXTX_REG145_RXDFE_CONFIG_SET(dst, src) \ + (((dst) & ~0x0000c000) | (((u32) (src) << 14) & 0x0000c000)) +#define RXTX_REG145_RXVWES_LATENA_SET(dst, src) \ + (((dst) & ~0x00000004) | (((u32) (src) << 2) & 0x00000004)) +#define RXTX_REG147 0x126 +#define RXTX_REG148 0x128 + +/* Clock macro type */ +enum cmu_type_t { + REF_CMU = 0, /* Clock macro is the internal reference clock */ + PHY_CMU = 1, /* Clock macro is the PLL for the Serdes */ +}; + +enum mux_type_t { + MUX_SELECT_ATA = 0, /* Switch the MUX to ATA */ + MUX_SELECT_SGMMII = 0, /* Switch the MUX to SGMII */ +}; + +enum clk_type_t { + CLK_EXT_DIFF = 0, /* External differential */ + CLK_INT_DIFF = 1, /* Internal differential */ + CLK_INT_SING = 2, /* Internal single ended */ +}; + +enum phy_mode { + MODE_SATA = 0, /* List them for simple reference */ + MODE_SGMII = 1, + MODE_PCIE = 2, + MODE_USB = 3, + MODE_XFI = 4, + MODE_MAX +}; + +struct xgene_sata_override_param { + u32 speed[MAX_LANE]; /* Index for override parameter per lane */ + u32 txspeed[3]; /* Tx speed */ + u32 txboostgain[MAX_LANE*3]; /* Tx freq boost and gain control */ + u32 txeyetuning[MAX_LANE*3]; /* Tx eye tuning */ + u32 txeyedirection[MAX_LANE*3]; /* Tx eye tuning direction */ + u32 txamplitude[MAX_LANE*3]; /* Tx amplitude control */ + u32 txprecursor_cn1[MAX_LANE*3]; /* Tx emphasis taps 1st pre-cursor */ + u32 txprecursor_cn2[MAX_LANE*3]; /* Tx emphasis taps 2nd pre-cursor */ + u32 txpostcursor_cp1[MAX_LANE*3]; /* Tx emphasis taps post-cursor */ +}; + +struct xgene_phy_ctx { + struct device *dev; + struct phy *phy; + enum phy_mode mode; /* Mode of operation */ + enum clk_type_t clk_type; /* Input clock selection */ + void __iomem *sds_base; /* PHY CSR base addr */ + struct clk *clk; /* Optional clock */ + + /* Override Serdes parameters */ + struct xgene_sata_override_param sata_param; +}; + +/* + * For chip earlier than A3 version, enable this flag. + * To enable, pass boot argument phy_xgene.preA3Chip=1 + */ +static int preA3Chip; +MODULE_PARM_DESC(preA3Chip, "Enable pre-A3 chip support (1=enable 0=disable)"); +module_param_named(preA3Chip, preA3Chip, int, 0444); + +static int is_custom_eval_board(void) +{ + struct device_node *root = of_find_node_by_path("/"); + const char *model; + + if (!root) + return 0; + model = of_get_property(root, "model", NULL); + if (model == NULL) + return 0; + return strstr(model, "Mustang") ? 0 : 1; +} + +static void sds_wr(void __iomem *csr_base, u32 indirect_cmd_reg, + u32 indirect_data_reg, u32 addr, u32 data) +{ + unsigned long deadline = jiffies + HZ; + u32 val; + u32 cmd; + + cmd = CFG_IND_WR_CMD_MASK | CFG_IND_CMD_DONE_MASK; + cmd = CFG_IND_ADDR_SET(cmd, addr); + writel(data, csr_base + indirect_data_reg); + readl(csr_base + indirect_data_reg); /* Force a barrier */ + writel(cmd, csr_base + indirect_cmd_reg); + readl(csr_base + indirect_cmd_reg); /* Force a barrier */ + do { + val = readl(csr_base + indirect_cmd_reg); + } while (!(val & CFG_IND_CMD_DONE_MASK) && + time_before(jiffies, deadline)); + if (!(val & CFG_IND_CMD_DONE_MASK)) + pr_err("SDS WR timeout at 0x%p offset 0x%08X value 0x%08X\n", + csr_base + indirect_cmd_reg, addr, data); +} + +static void sds_rd(void __iomem *csr_base, u32 indirect_cmd_reg, + u32 indirect_data_reg, u32 addr, u32 *data) +{ + unsigned long deadline = jiffies + HZ; + u32 val; + u32 cmd; + + cmd = CFG_IND_RD_CMD_MASK | CFG_IND_CMD_DONE_MASK; + cmd = CFG_IND_ADDR_SET(cmd, addr); + writel(cmd, csr_base + indirect_cmd_reg); + readl(csr_base + indirect_cmd_reg); /* Force a barrier */ + do { + val = readl(csr_base + indirect_cmd_reg); + } while (!(val & CFG_IND_CMD_DONE_MASK) && + time_before(jiffies, deadline)); + *data = readl(csr_base + indirect_data_reg); + if (!(val & CFG_IND_CMD_DONE_MASK)) + pr_err("SDS WR timeout at 0x%p offset 0x%08X value 0x%08X\n", + csr_base + indirect_cmd_reg, addr, *data); +} + +static void cmu_wr(struct xgene_phy_ctx *ctx, enum cmu_type_t cmu_type, + u32 reg, u32 data) +{ + void __iomem *sds_base = ctx->sds_base; + u32 val; + + if (cmu_type == REF_CMU) + reg += SERDES_PLL_REF_INDIRECT_OFFSET; + else + reg += SERDES_PLL_INDIRECT_OFFSET; + sds_wr(sds_base, SATA_ENET_SDS_IND_CMD_REG, + SATA_ENET_SDS_IND_WDATA_REG, reg, data); + sds_rd(sds_base, SATA_ENET_SDS_IND_CMD_REG, + SATA_ENET_SDS_IND_RDATA_REG, reg, &val); + pr_debug("CMU WR addr 0x%X value 0x%08X <-> 0x%08X\n", reg, data, val); +} + +static void cmu_rd(struct xgene_phy_ctx *ctx, enum cmu_type_t cmu_type, + u32 reg, u32 *data) +{ + void __iomem *sds_base = ctx->sds_base; + + if (cmu_type == REF_CMU) + reg += SERDES_PLL_REF_INDIRECT_OFFSET; + else + reg += SERDES_PLL_INDIRECT_OFFSET; + sds_rd(sds_base, SATA_ENET_SDS_IND_CMD_REG, + SATA_ENET_SDS_IND_RDATA_REG, reg, data); + pr_debug("CMU RD addr 0x%X value 0x%08X\n", reg, *data); +} + +static void cmu_toggle1to0(struct xgene_phy_ctx *ctx, enum cmu_type_t cmu_type, + u32 reg, u32 bits) +{ + u32 val; + + cmu_rd(ctx, cmu_type, reg, &val); + val |= bits; + cmu_wr(ctx, cmu_type, reg, val); + cmu_rd(ctx, cmu_type, reg, &val); + val &= ~bits; + cmu_wr(ctx, cmu_type, reg, val); +} + +static void cmu_clrbits(struct xgene_phy_ctx *ctx, enum cmu_type_t cmu_type, + u32 reg, u32 bits) +{ + u32 val; + + cmu_rd(ctx, cmu_type, reg, &val); + val &= ~bits; + cmu_wr(ctx, cmu_type, reg, val); +} + +static void cmu_setbits(struct xgene_phy_ctx *ctx, enum cmu_type_t cmu_type, + u32 reg, u32 bits) +{ + u32 val; + + cmu_rd(ctx, cmu_type, reg, &val); + val |= bits; + cmu_wr(ctx, cmu_type, reg, val); +} + +static void serdes_wr(struct xgene_phy_ctx *ctx, int lane, u32 reg, u32 data) +{ + void __iomem *sds_base = ctx->sds_base; + u32 val; + + reg += SERDES_INDIRECT_OFFSET; + reg += lane * SERDES_LANE_STRIDE; + sds_wr(sds_base, SATA_ENET_SDS_IND_CMD_REG, + SATA_ENET_SDS_IND_WDATA_REG, reg, data); + sds_rd(sds_base, SATA_ENET_SDS_IND_CMD_REG, + SATA_ENET_SDS_IND_RDATA_REG, reg, &val); + pr_debug("SERDES WR addr 0x%X value 0x%08X <-> 0x%08X\n", reg, data, + val); +} + +static void serdes_rd(struct xgene_phy_ctx *ctx, int lane, u32 reg, u32 *data) +{ + void __iomem *sds_base = ctx->sds_base; + + reg += SERDES_INDIRECT_OFFSET; + reg += lane * SERDES_LANE_STRIDE; + sds_rd(sds_base, SATA_ENET_SDS_IND_CMD_REG, + SATA_ENET_SDS_IND_RDATA_REG, reg, data); + pr_debug("SERDES RD addr 0x%X value 0x%08X\n", reg, *data); +} + +static void serdes_clrbits(struct xgene_phy_ctx *ctx, int lane, u32 reg, + u32 bits) +{ + u32 val; + + serdes_rd(ctx, lane, reg, &val); + val &= ~bits; + serdes_wr(ctx, lane, reg, val); +} + +static void serdes_setbits(struct xgene_phy_ctx *ctx, int lane, u32 reg, + u32 bits) +{ + u32 val; + + serdes_rd(ctx, lane, reg, &val); + val |= bits; + serdes_wr(ctx, lane, reg, val); +} + +static void xgene_phy_cfg_cmu_clk_type(struct xgene_phy_ctx *ctx, + enum cmu_type_t cmu_type, + enum clk_type_t clk_type) +{ + u32 val; + + /* Set the reset sequence delay for TX ready assertion */ + cmu_rd(ctx, cmu_type, CMU_REG12, &val); + val = CMU_REG12_STATE_DELAY9_SET(val, 0x1); + cmu_wr(ctx, cmu_type, CMU_REG12, val); + /* Set the programmable stage delays between various enable stages */ + cmu_wr(ctx, cmu_type, CMU_REG13, 0x0222); + cmu_wr(ctx, cmu_type, CMU_REG14, 0x2225); + + /* Configure clock type */ + if (clk_type == CLK_EXT_DIFF) { + /* Select external clock mux */ + cmu_rd(ctx, cmu_type, CMU_REG0, &val); + val = CMU_REG0_PLL_REF_SEL_SET(val, 0x0); + cmu_wr(ctx, cmu_type, CMU_REG0, val); + /* Select CMOS as reference clock */ + cmu_rd(ctx, cmu_type, CMU_REG1, &val); + val = CMU_REG1_REFCLK_CMOS_SEL_SET(val, 0x0); + cmu_wr(ctx, cmu_type, CMU_REG1, val); + dev_dbg(ctx->dev, "Set external reference clock\n"); + } else if (clk_type == CLK_INT_DIFF) { + /* Select internal clock mux */ + cmu_rd(ctx, cmu_type, CMU_REG0, &val); + val = CMU_REG0_PLL_REF_SEL_SET(val, 0x1); + cmu_wr(ctx, cmu_type, CMU_REG0, val); + /* Select CMOS as reference clock */ + cmu_rd(ctx, cmu_type, CMU_REG1, &val); + val = CMU_REG1_REFCLK_CMOS_SEL_SET(val, 0x1); + cmu_wr(ctx, cmu_type, CMU_REG1, val); + dev_dbg(ctx->dev, "Set internal reference clock\n"); + } else if (clk_type == CLK_INT_SING) { + /* + * NOTE: This clock type is NOT support for controller + * whose internal clock shared in the PCIe controller + * + * Select internal clock mux + */ + cmu_rd(ctx, cmu_type, CMU_REG1, &val); + val = CMU_REG1_REFCLK_CMOS_SEL_SET(val, 0x1); + cmu_wr(ctx, cmu_type, CMU_REG1, val); + /* Select CML as reference clock */ + cmu_rd(ctx, cmu_type, CMU_REG1, &val); + val = CMU_REG1_REFCLK_CMOS_SEL_SET(val, 0x0); + cmu_wr(ctx, cmu_type, CMU_REG1, val); + dev_dbg(ctx->dev, + "Set internal single ended reference clock\n"); + } +} + +static void xgene_phy_sata_cfg_cmu_core(struct xgene_phy_ctx *ctx, + enum cmu_type_t cmu_type, + enum clk_type_t clk_type) +{ + u32 val; + int ref_100MHz; + + if (cmu_type == REF_CMU) { + /* Set VCO calibration voltage threshold */ + cmu_rd(ctx, cmu_type, CMU_REG34, &val); + val = CMU_REG34_VCO_CAL_VTH_LO_MAX_SET(val, 0x7); + val = CMU_REG34_VCO_CAL_VTH_HI_MAX_SET(val, 0xc); + val = CMU_REG34_VCO_CAL_VTH_LO_MIN_SET(val, 0x3); + val = CMU_REG34_VCO_CAL_VTH_HI_MIN_SET(val, 0x8); + cmu_wr(ctx, cmu_type, CMU_REG34, val); + } + + /* Set the VCO calibration counter */ + cmu_rd(ctx, cmu_type, CMU_REG0, &val); + if (cmu_type == REF_CMU || preA3Chip) + val = CMU_REG0_CAL_COUNT_RESOL_SET(val, 0x4); + else + val = CMU_REG0_CAL_COUNT_RESOL_SET(val, 0x7); + cmu_wr(ctx, cmu_type, CMU_REG0, val); + + /* Configure PLL for calibration */ + cmu_rd(ctx, cmu_type, CMU_REG1, &val); + val = CMU_REG1_PLL_CP_SET(val, 0x1); + if (cmu_type == REF_CMU || preA3Chip) + val = CMU_REG1_PLL_CP_SEL_SET(val, 0x5); + else + val = CMU_REG1_PLL_CP_SEL_SET(val, 0x3); + if (cmu_type == REF_CMU) + val = CMU_REG1_PLL_MANUALCAL_SET(val, 0x0); + else + val = CMU_REG1_PLL_MANUALCAL_SET(val, 0x1); + cmu_wr(ctx, cmu_type, CMU_REG1, val); + + if (cmu_type != REF_CMU) + cmu_clrbits(ctx, cmu_type, CMU_REG5, CMU_REG5_PLL_RESETB_MASK); + + /* Configure the PLL for either 100MHz or 50MHz */ + cmu_rd(ctx, cmu_type, CMU_REG2, &val); + if (cmu_type == REF_CMU) { + val = CMU_REG2_PLL_LFRES_SET(val, 0xa); + ref_100MHz = 1; + } else { + val = CMU_REG2_PLL_LFRES_SET(val, 0x3); + if (clk_type == CLK_EXT_DIFF) + ref_100MHz = 0; + else + ref_100MHz = 1; + } + if (ref_100MHz) { + val = CMU_REG2_PLL_FBDIV_SET(val, FBDIV_VAL_100M); + val = CMU_REG2_PLL_REFDIV_SET(val, REFDIV_VAL_100M); + } else { + val = CMU_REG2_PLL_FBDIV_SET(val, FBDIV_VAL_50M); + val = CMU_REG2_PLL_REFDIV_SET(val, REFDIV_VAL_50M); + } + cmu_wr(ctx, cmu_type, CMU_REG2, val); + + /* Configure the VCO */ + cmu_rd(ctx, cmu_type, CMU_REG3, &val); + if (cmu_type == REF_CMU) { + val = CMU_REG3_VCOVARSEL_SET(val, 0x3); + val = CMU_REG3_VCO_MOMSEL_INIT_SET(val, 0x10); + } else { + val = CMU_REG3_VCOVARSEL_SET(val, 0xF); + if (preA3Chip) + val = CMU_REG3_VCO_MOMSEL_INIT_SET(val, 0x15); + else + val = CMU_REG3_VCO_MOMSEL_INIT_SET(val, 0x1a); + val = CMU_REG3_VCO_MANMOMSEL_SET(val, 0x15); + } + cmu_wr(ctx, cmu_type, CMU_REG3, val); + + /* Disable force PLL lock */ + cmu_rd(ctx, cmu_type, CMU_REG26, &val); + val = CMU_REG26_FORCE_PLL_LOCK_SET(val, 0x0); + cmu_wr(ctx, cmu_type, CMU_REG26, val); + + /* Setup PLL loop filter */ + cmu_rd(ctx, cmu_type, CMU_REG5, &val); + val = CMU_REG5_PLL_LFSMCAP_SET(val, 0x3); + val = CMU_REG5_PLL_LFCAP_SET(val, 0x3); + if (cmu_type == REF_CMU || !preA3Chip) + val = CMU_REG5_PLL_LOCK_RESOLUTION_SET(val, 0x7); + else + val = CMU_REG5_PLL_LOCK_RESOLUTION_SET(val, 0x4); + cmu_wr(ctx, cmu_type, CMU_REG5, val); + + /* Enable or disable manual calibration */ + cmu_rd(ctx, cmu_type, CMU_REG6, &val); + val = CMU_REG6_PLL_VREGTRIM_SET(val, preA3Chip ? 0x0 : 0x2); + val = CMU_REG6_MAN_PVT_CAL_SET(val, preA3Chip ? 0x1 : 0x0); + cmu_wr(ctx, cmu_type, CMU_REG6, val); + + /* Configure lane for 20-bits */ + if (cmu_type == PHY_CMU) { + cmu_rd(ctx, cmu_type, CMU_REG9, &val); + val = CMU_REG9_TX_WORD_MODE_CH1_SET(val, + CMU_REG9_WORD_LEN_20BIT); + val = CMU_REG9_TX_WORD_MODE_CH0_SET(val, + CMU_REG9_WORD_LEN_20BIT); + val = CMU_REG9_PLL_POST_DIVBY2_SET(val, 0x1); + if (!preA3Chip) { + val = CMU_REG9_VBG_BYPASSB_SET(val, 0x0); + val = CMU_REG9_IGEN_BYPASS_SET(val , 0x0); + } + cmu_wr(ctx, cmu_type, CMU_REG9, val); + + if (!preA3Chip) { + cmu_rd(ctx, cmu_type, CMU_REG10, &val); + if (!is_custom_eval_board()) { + val = CMU_REG10_VREG_REFSEL_SET(val, 0x1); + } else { + val = CMU_REG10_VREG_REFSEL_SET(val, 0x0); + } + cmu_wr(ctx, cmu_type, CMU_REG10, val); + } + } + + cmu_rd(ctx, cmu_type, CMU_REG16, &val); + val = CMU_REG16_CALIBRATION_DONE_OVERRIDE_SET(val, 0x1); + val = CMU_REG16_BYPASS_PLL_LOCK_SET(val, 0x1); + if (cmu_type == REF_CMU || preA3Chip) + val = CMU_REG16_VCOCAL_WAIT_BTW_CODE_SET(val, 0x4); + else + val = CMU_REG16_VCOCAL_WAIT_BTW_CODE_SET(val, 0x7); + cmu_wr(ctx, cmu_type, CMU_REG16, val); + + /* Configure for SATA */ + cmu_rd(ctx, cmu_type, CMU_REG30, &val); + val = CMU_REG30_PCIE_MODE_SET(val, 0x0); + val = CMU_REG30_LOCK_COUNT_SET(val, 0x3); + cmu_wr(ctx, cmu_type, CMU_REG30, val); + + /* Disable state machine bypass */ + cmu_wr(ctx, cmu_type, CMU_REG31, 0xF); + + cmu_rd(ctx, cmu_type, CMU_REG32, &val); + val = CMU_REG32_PVT_CAL_WAIT_SEL_SET(val, 0x3); + if (cmu_type == REF_CMU || preA3Chip || is_custom_eval_board()) { + val = CMU_REG32_IREF_ADJ_SET(val, 0x3); + } else { + val = CMU_REG32_IREF_ADJ_SET(val, 0x1); + } + cmu_wr(ctx, cmu_type, CMU_REG32, val); + + /* Set VCO calibration threshold */ + if (cmu_type != REF_CMU && preA3Chip) + cmu_wr(ctx, cmu_type, CMU_REG34, 0x8d27); + else + cmu_wr(ctx, cmu_type, CMU_REG34, 0x873c); + + /* Set CTLE Override and override waiting from state machine */ + cmu_wr(ctx, cmu_type, CMU_REG37, 0xF00F); +} + +static void xgene_phy_ssc_enable(struct xgene_phy_ctx *ctx, + enum cmu_type_t cmu_type) +{ + u32 val; + + /* Set SSC modulation value */ + cmu_rd(ctx, cmu_type, CMU_REG35, &val); + val = CMU_REG35_PLL_SSC_MOD_SET(val, 98); + cmu_wr(ctx, cmu_type, CMU_REG35, val); + + /* Enable SSC, set vertical step and DSM value */ + cmu_rd(ctx, cmu_type, CMU_REG36, &val); + val = CMU_REG36_PLL_SSC_VSTEP_SET(val, 30); + val = CMU_REG36_PLL_SSC_EN_SET(val, 1); + val = CMU_REG36_PLL_SSC_DSMSEL_SET(val, 1); + cmu_wr(ctx, cmu_type, CMU_REG36, val); + + /* Reset the PLL */ + cmu_clrbits(ctx, cmu_type, CMU_REG5, CMU_REG5_PLL_RESETB_MASK); + cmu_setbits(ctx, cmu_type, CMU_REG5, CMU_REG5_PLL_RESETB_MASK); + + /* Force VCO calibration to restart */ + cmu_toggle1to0(ctx, cmu_type, CMU_REG32, + CMU_REG32_FORCE_VCOCAL_START_MASK); +} + +static void xgene_phy_sata_cfg_lanes(struct xgene_phy_ctx *ctx) +{ + u32 val; + u32 reg; + int i; + int lane; + + for (lane = 0; lane < MAX_LANE; lane++) { + serdes_wr(ctx, lane, RXTX_REG147, 0x6); + + /* Set boost control for quarter, half, and full rate */ + serdes_rd(ctx, lane, RXTX_REG0, &val); + val = RXTX_REG0_CTLE_EQ_HR_SET(val, 0x10); + val = RXTX_REG0_CTLE_EQ_QR_SET(val, 0x10); + val = RXTX_REG0_CTLE_EQ_FR_SET(val, 0x10); + serdes_wr(ctx, lane, RXTX_REG0, val); + + /* Set boost control value */ + serdes_rd(ctx, lane, RXTX_REG1, &val); + val = RXTX_REG1_RXACVCM_SET(val, 0x7); + val = RXTX_REG1_CTLE_EQ_SET(val, + ctx->sata_param.txboostgain[lane * 3 + + ctx->sata_param.speed[lane]]); + serdes_wr(ctx, lane, RXTX_REG1, val); + + /* Latch VTT value based on the termination to ground and + enable TX FIFO */ + serdes_rd(ctx, lane, RXTX_REG2, &val); + val = RXTX_REG2_VTT_ENA_SET(val, 0x1); + val = RXTX_REG2_VTT_SEL_SET(val, 0x1); + val = RXTX_REG2_TX_FIFO_ENA_SET(val, 0x1); + serdes_wr(ctx, lane, RXTX_REG2, val); + + /* Configure Tx for 20-bits */ + serdes_rd(ctx, lane, RXTX_REG4, &val); + val = RXTX_REG4_TX_WORD_MODE_SET(val, CMU_REG9_WORD_LEN_20BIT); + serdes_wr(ctx, lane, RXTX_REG4, val); + + if (!preA3Chip) { + serdes_rd(ctx, lane, RXTX_REG1, &val); + val = RXTX_REG1_RXVREG1_SET(val, 0x2); + val = RXTX_REG1_RXIREF_ADJ_SET(val, 0x2); + serdes_wr(ctx, lane, RXTX_REG1, val); + } + + /* Set pre-emphasis first 1 and 2, and post-emphasis values */ + serdes_rd(ctx, lane, RXTX_REG5, &val); + val = RXTX_REG5_TX_CN1_SET(val, + ctx->sata_param.txprecursor_cn1[lane * 3 + + ctx->sata_param.speed[lane]]); + val = RXTX_REG5_TX_CP1_SET(val, + ctx->sata_param.txpostcursor_cp1[lane * 3 + + ctx->sata_param.speed[lane]]); + val = RXTX_REG5_TX_CN2_SET(val, + ctx->sata_param.txprecursor_cn2[lane * 3 + + ctx->sata_param.speed[lane]]); + serdes_wr(ctx, lane, RXTX_REG5, val); + + /* Set TX amplitude value */ + serdes_rd(ctx, lane, RXTX_REG6, &val); + val = RXTX_REG6_TXAMP_CNTL_SET(val, + ctx->sata_param.txamplitude[lane * 3 + + ctx->sata_param.speed[lane]]); + val = RXTX_REG6_TXAMP_ENA_SET(val, 0x1); + val = RXTX_REG6_TX_IDLE_SET(val, 0x0); + val = RXTX_REG6_RX_BIST_RESYNC_SET(val, 0x0); + val = RXTX_REG6_RX_BIST_ERRCNT_RD_SET(val, 0x0); + serdes_wr(ctx, lane, RXTX_REG6, val); + + /* Configure Rx for 20-bits */ + serdes_rd(ctx, lane, RXTX_REG7, &val); + val = RXTX_REG7_BIST_ENA_RX_SET(val, 0x0); + val = RXTX_REG7_RX_WORD_MODE_SET(val, CMU_REG9_WORD_LEN_20BIT); + serdes_wr(ctx, lane, RXTX_REG7, val); + + /* Set CDR and LOS values and enable Rx SSC */ + serdes_rd(ctx, lane, RXTX_REG8, &val); + val = RXTX_REG8_CDR_LOOP_ENA_SET(val, 0x1); + val = RXTX_REG8_CDR_BYPASS_RXLOS_SET(val, 0x0); + val = RXTX_REG8_SSC_ENABLE_SET(val, 0x1); + val = RXTX_REG8_SD_DISABLE_SET(val, 0x0); + val = RXTX_REG8_SD_VREF_SET(val, 0x4); + serdes_wr(ctx, lane, RXTX_REG8, val); + + /* Set phase adjust upper/lower limits */ + serdes_rd(ctx, lane, RXTX_REG11, &val); + val = RXTX_REG11_PHASE_ADJUST_LIMIT_SET(val, 0x0); + serdes_wr(ctx, lane, RXTX_REG11, val); + + /* Enable Latch Off; disable SUMOS and Tx termination */ + serdes_rd(ctx, lane, RXTX_REG12, &val); + val = RXTX_REG12_LATCH_OFF_ENA_SET(val, 0x1); + val = RXTX_REG12_SUMOS_ENABLE_SET(val, 0x0); + val = RXTX_REG12_RX_DET_TERM_ENABLE_SET(val, 0x0); + serdes_wr(ctx, lane, RXTX_REG12, val); + + /* Set period error latch to 512T and enable BWL */ + serdes_rd(ctx, lane, RXTX_REG26, &val); + val = RXTX_REG26_PERIOD_ERROR_LATCH_SET(val, 0x0); + val = RXTX_REG26_BLWC_ENA_SET(val, 0x1); + serdes_wr(ctx, lane, RXTX_REG26, val); + + serdes_wr(ctx, lane, RXTX_REG28, 0x0); + + /* Set DFE loop preset value */ + serdes_wr(ctx, lane, RXTX_REG31, 0x0); + + /* Set Eye Monitor counter width to 12-bit */ + serdes_rd(ctx, lane, RXTX_REG61, &val); + val = RXTX_REG61_ISCAN_INBERT_SET(val, 0x1); + val = RXTX_REG61_LOADFREQ_SHIFT_SET(val, 0x0); + val = RXTX_REG61_EYE_COUNT_WIDTH_SEL_SET(val, 0x0); + serdes_wr(ctx, lane, RXTX_REG61, val); + + serdes_rd(ctx, lane, RXTX_REG62, &val); + val = RXTX_REG62_PERIOD_H1_QLATCH_SET(val, 0x0); + serdes_wr(ctx, lane, RXTX_REG62, val); + + /* Set BW select tap X for DFE loop */ + for (i = 0; i < 9; i++) { + reg = RXTX_REG81 + i * 2; + serdes_rd(ctx, lane, reg, &val); + val = RXTX_REG89_MU_TH7_SET(val, 0xe); + val = RXTX_REG89_MU_TH8_SET(val, 0xe); + val = RXTX_REG89_MU_TH9_SET(val, 0xe); + serdes_wr(ctx, lane, reg, val); + } + + /* Set BW select tap X for frequency adjust loop */ + for (i = 0; i < 3; i++) { + reg = RXTX_REG96 + i * 2; + serdes_rd(ctx, lane, reg, &val); + val = RXTX_REG96_MU_FREQ1_SET(val, 0x10); + val = RXTX_REG96_MU_FREQ2_SET(val, 0x10); + val = RXTX_REG96_MU_FREQ3_SET(val, 0x10); + serdes_wr(ctx, lane, reg, val); + } + + /* Set BW select tap X for phase adjust loop */ + for (i = 0; i < 3; i++) { + reg = RXTX_REG99 + i * 2; + serdes_rd(ctx, lane, reg, &val); + val = RXTX_REG99_MU_PHASE1_SET(val, 0x7); + val = RXTX_REG99_MU_PHASE2_SET(val, 0x7); + val = RXTX_REG99_MU_PHASE3_SET(val, 0x7); + serdes_wr(ctx, lane, reg, val); + } + + serdes_rd(ctx, lane, RXTX_REG102, &val); + val = RXTX_REG102_FREQLOOP_LIMIT_SET(val, 0x0); + serdes_wr(ctx, lane, RXTX_REG102, val); + + serdes_wr(ctx, lane, RXTX_REG114, 0xffe0); + + serdes_rd(ctx, lane, RXTX_REG125, &val); + val = RXTX_REG125_SIGN_PQ_SET(val, + ctx->sata_param.txeyedirection[lane * 3 + + ctx->sata_param.speed[lane]]); + val = RXTX_REG125_PQ_REG_SET(val, + ctx->sata_param.txeyetuning[lane * 3 + + ctx->sata_param.speed[lane]]); + val = RXTX_REG125_PHZ_MANUAL_SET(val, 0x1); + serdes_wr(ctx, lane, RXTX_REG125, val); + + serdes_rd(ctx, lane, RXTX_REG127, &val); + val = RXTX_REG127_LATCH_MAN_CAL_ENA_SET(val, 0x0); + serdes_wr(ctx, lane, RXTX_REG127, val); + + serdes_rd(ctx, lane, RXTX_REG128, &val); + val = RXTX_REG128_LATCH_CAL_WAIT_SEL_SET(val, 0x3); + serdes_wr(ctx, lane, RXTX_REG128, val); + + serdes_rd(ctx, lane, RXTX_REG145, &val); + val = RXTX_REG145_RXDFE_CONFIG_SET(val, 0x3); + val = RXTX_REG145_TX_IDLE_SATA_SET(val, 0x0); + if (preA3Chip) { + val = RXTX_REG145_RXES_ENA_SET(val, 0x1); + val = RXTX_REG145_RXVWES_LATENA_SET(val, 0x1); + } else { + val = RXTX_REG145_RXES_ENA_SET(val, 0x0); + val = RXTX_REG145_RXVWES_LATENA_SET(val, 0x0); + } + serdes_wr(ctx, lane, RXTX_REG145, val); + + /* + * Set Rx LOS filter clock rate, sample rate, and threshold + * windows + */ + for (i = 0; i < 4; i++) { + reg = RXTX_REG148 + i * 2; + serdes_wr(ctx, lane, reg, 0xFFFF); + } + } +} + +static int xgene_phy_cal_rdy_chk(struct xgene_phy_ctx *ctx, + enum cmu_type_t cmu_type, + enum clk_type_t clk_type) +{ + void __iomem *csr_serdes = ctx->sds_base; + int loop; + u32 val; + + /* Release PHY main reset */ + writel(0xdf, csr_serdes + SATA_ENET_SDS_RST_CTL); + readl(csr_serdes + SATA_ENET_SDS_RST_CTL); /* Force a barrier */ + + if (cmu_type != REF_CMU) { + cmu_setbits(ctx, cmu_type, CMU_REG5, CMU_REG5_PLL_RESETB_MASK); + /* + * As per PHY design spec, the PLL reset requires a minimum + * of 800us. + */ + usleep_range(800, 1000); + + cmu_rd(ctx, cmu_type, CMU_REG1, &val); + val = CMU_REG1_PLL_MANUALCAL_SET(val, 0x0); + cmu_wr(ctx, cmu_type, CMU_REG1, val); + /* + * As per PHY design spec, the PLL auto calibration requires + * a minimum of 800us. + */ + usleep_range(800, 1000); + + cmu_toggle1to0(ctx, cmu_type, CMU_REG32, + CMU_REG32_FORCE_VCOCAL_START_MASK); + /* + * As per PHY design spec, the PLL requires a minimum of + * 800us to settle. + */ + usleep_range(800, 1000); + } + + if (!preA3Chip) + goto skip_manual_cal; + + /* + * Configure the termination resister calibration + * The serial receive pins, RXP/RXN, have TERMination resistor + * that is required to be calibrated. + */ + cmu_rd(ctx, cmu_type, CMU_REG17, &val); + val = CMU_REG17_PVT_CODE_R2A_SET(val, 0x12); + val = CMU_REG17_RESERVED_7_SET(val, 0x0); + cmu_wr(ctx, cmu_type, CMU_REG17, val); + cmu_toggle1to0(ctx, cmu_type, CMU_REG17, + CMU_REG17_PVT_TERM_MAN_ENA_MASK); + /* + * The serial transmit pins, TXP/TXN, have Pull-UP and Pull-DOWN + * resistors that are required to the calibrated. + * Configure the pull DOWN calibration + */ + cmu_rd(ctx, cmu_type, CMU_REG17, &val); + val = CMU_REG17_PVT_CODE_R2A_SET(val, 0x29); + val = CMU_REG17_RESERVED_7_SET(val, 0x0); + cmu_wr(ctx, cmu_type, CMU_REG17, val); + cmu_toggle1to0(ctx, cmu_type, CMU_REG16, + CMU_REG16_PVT_DN_MAN_ENA_MASK); + /* Configure the pull UP calibration */ + cmu_rd(ctx, cmu_type, CMU_REG17, &val); + val = CMU_REG17_PVT_CODE_R2A_SET(val, 0x28); + val = CMU_REG17_RESERVED_7_SET(val, 0x0); + cmu_wr(ctx, cmu_type, CMU_REG17, val); + cmu_toggle1to0(ctx, cmu_type, CMU_REG16, + CMU_REG16_PVT_UP_MAN_ENA_MASK); + +skip_manual_cal: + /* Poll the PLL calibration completion status for at least 1 ms */ + loop = 100; + do { + cmu_rd(ctx, cmu_type, CMU_REG7, &val); + if (CMU_REG7_PLL_CALIB_DONE_RD(val)) + break; + /* + * As per PHY design spec, PLL calibration status requires + * a minimum of 10us to be updated. + */ + usleep_range(10, 100); + } while (--loop > 0); + + cmu_rd(ctx, cmu_type, CMU_REG7, &val); + dev_dbg(ctx->dev, "PLL calibration %s\n", + CMU_REG7_PLL_CALIB_DONE_RD(val) ? "done" : "failed"); + if (CMU_REG7_VCO_CAL_FAIL_RD(val)) { + dev_err(ctx->dev, + "PLL calibration failed due to VCO failure\n"); + return -1; + } + dev_dbg(ctx->dev, "PLL calibration successful\n"); + + cmu_rd(ctx, cmu_type, CMU_REG15, &val); + dev_dbg(ctx->dev, "PHY Tx is %sready\n", val & 0x300 ? "" : "not "); + return 0; +} + +static void xgene_phy_pdwn_force_vco(struct xgene_phy_ctx *ctx, + enum cmu_type_t cmu_type, + enum clk_type_t clk_type) +{ + u32 val; + + dev_dbg(ctx->dev, "Reset VCO and re-start again\n"); + if (cmu_type == PHY_CMU) { + cmu_rd(ctx, cmu_type, CMU_REG16, &val); + val = CMU_REG16_VCOCAL_WAIT_BTW_CODE_SET(val, 0x7); + cmu_wr(ctx, cmu_type, CMU_REG16, val); + } + + cmu_toggle1to0(ctx, cmu_type, CMU_REG0, CMU_REG0_PDOWN_MASK); + cmu_toggle1to0(ctx, cmu_type, CMU_REG32, + CMU_REG32_FORCE_VCOCAL_START_MASK); +} + +static int xgene_phy_hw_init_sata(struct xgene_phy_ctx *ctx, + enum clk_type_t clk_type, int ssc_enable) +{ + void __iomem *sds_base = ctx->sds_base; + u32 val; + int i; + + /* Configure the PHY for operation */ + dev_dbg(ctx->dev, "Reset PHY\n"); + /* Place PHY into reset */ + writel(0x0, sds_base + SATA_ENET_SDS_RST_CTL); + val = readl(sds_base + SATA_ENET_SDS_RST_CTL); /* Force a barrier */ + /* Release PHY lane from reset (active high) */ + writel(0x20, sds_base + SATA_ENET_SDS_RST_CTL); + readl(sds_base + SATA_ENET_SDS_RST_CTL); /* Force a barrier */ + /* Release all PHY module out of reset except PHY main reset */ + writel(0xde, sds_base + SATA_ENET_SDS_RST_CTL); + readl(sds_base + SATA_ENET_SDS_RST_CTL); /* Force a barrier */ + + /* Set the operation speed */ + val = readl(sds_base + SATA_ENET_SDS_CTL1); + val = CFG_I_SPD_SEL_CDR_OVR1_SET(val, + ctx->sata_param.txspeed[ctx->sata_param.speed[0]]); + writel(val, sds_base + SATA_ENET_SDS_CTL1); + + dev_dbg(ctx->dev, "Set the customer pin mode to SATA\n"); + val = readl(sds_base + SATA_ENET_SDS_CTL0); + val = REGSPEC_CFG_I_CUSTOMER_PIN_MODE0_SET(val, 0x4421); + writel(val, sds_base + SATA_ENET_SDS_CTL0); + + /* Configure the clock macro unit (CMU) clock type */ + xgene_phy_cfg_cmu_clk_type(ctx, PHY_CMU, clk_type); + + /* Configure the clock macro */ + xgene_phy_sata_cfg_cmu_core(ctx, PHY_CMU, clk_type); + + /* Enable SSC if enabled */ + if (ssc_enable) + xgene_phy_ssc_enable(ctx, PHY_CMU); + + /* Configure PHY lanes */ + xgene_phy_sata_cfg_lanes(ctx); + + /* Set Rx/Tx 20-bit */ + val = readl(sds_base + SATA_ENET_SDS_PCS_CTL0); + val = REGSPEC_CFG_I_RX_WORDMODE0_SET(val, 0x3); + val = REGSPEC_CFG_I_TX_WORDMODE0_SET(val, 0x3); + writel(val, sds_base + SATA_ENET_SDS_PCS_CTL0); + + /* Start PLL calibration and try for three times */ + i = 10; + do { + if (!xgene_phy_cal_rdy_chk(ctx, PHY_CMU, clk_type)) + break; + /* If failed, toggle the VCO power signal and start again */ + xgene_phy_pdwn_force_vco(ctx, PHY_CMU, clk_type); + } while (--i > 0); + /* Even on failure, allow to continue any way */ + if (i <= 0) + dev_err(ctx->dev, "PLL calibration failed\n"); + + return 0; +} + +static int xgene_phy_hw_initialize(struct xgene_phy_ctx *ctx, + enum clk_type_t clk_type, + int ssc_enable) +{ + int rc; + + dev_dbg(ctx->dev, "PHY init clk type %d\n", clk_type); + + if (ctx->mode == MODE_SATA) { + rc = xgene_phy_hw_init_sata(ctx, clk_type, ssc_enable); + if (rc) + return rc; + } else { + dev_err(ctx->dev, "Un-supported customer pin mode %d\n", + ctx->mode); + return -ENODEV; + } + + return 0; +} + +/* + * Receiver Offset Calibration: + * + * Calibrate the receiver signal path offset in two steps - summar and + * latch calibrations + */ +static void xgene_phy_force_lat_summer_cal(struct xgene_phy_ctx *ctx, int lane) +{ + int i; + struct { + u32 reg; + u32 val; + } serdes_reg[] = { + {RXTX_REG38, 0x0}, + {RXTX_REG39, 0xff00}, + {RXTX_REG40, 0xffff}, + {RXTX_REG41, 0xffff}, + {RXTX_REG42, 0xffff}, + {RXTX_REG43, 0xffff}, + {RXTX_REG44, 0xffff}, + {RXTX_REG45, 0xffff}, + {RXTX_REG46, 0xffff}, + {RXTX_REG47, 0xfffc}, + {RXTX_REG48, 0x0}, + {RXTX_REG49, 0x0}, + {RXTX_REG50, 0x0}, + {RXTX_REG51, 0x0}, + {RXTX_REG52, 0x0}, + {RXTX_REG53, 0x0}, + {RXTX_REG54, 0x0}, + {RXTX_REG55, 0x0}, + }; + + /* Start SUMMER calibration */ + serdes_setbits(ctx, lane, RXTX_REG127, + RXTX_REG127_FORCE_SUM_CAL_START_MASK); + /* + * As per PHY design spec, the Summer calibration requires a minimum + * of 100us to complete. + */ + usleep_range(100, 500); + serdes_clrbits(ctx, lane, RXTX_REG127, + RXTX_REG127_FORCE_SUM_CAL_START_MASK); + /* + * As per PHY design spec, the auto calibration requires a minimum + * of 100us to complete. + */ + usleep_range(100, 500); + + /* Start latch calibration */ + serdes_setbits(ctx, lane, RXTX_REG127, + RXTX_REG127_FORCE_LAT_CAL_START_MASK); + /* + * As per PHY design spec, the latch calibration requires a minimum + * of 100us to complete. + */ + usleep_range(100, 500); + serdes_clrbits(ctx, lane, RXTX_REG127, + RXTX_REG127_FORCE_LAT_CAL_START_MASK); + + /* Configure the PHY lane for calibration */ + serdes_wr(ctx, lane, RXTX_REG28, 0x7); + serdes_wr(ctx, lane, RXTX_REG31, 0x7e00); + serdes_clrbits(ctx, lane, RXTX_REG4, + RXTX_REG4_TX_LOOPBACK_BUF_EN_MASK); + serdes_clrbits(ctx, lane, RXTX_REG7, + RXTX_REG7_LOOP_BACK_ENA_CTLE_MASK); + for (i = 0; i < ARRAY_SIZE(serdes_reg); i++) + serdes_wr(ctx, lane, serdes_reg[i].reg, + serdes_reg[i].val); +} + +static void xgene_phy_reset_rxd(struct xgene_phy_ctx *ctx, int lane) +{ + /* Reset digital Rx */ + serdes_clrbits(ctx, lane, RXTX_REG7, RXTX_REG7_RESETB_RXD_MASK); + /* As per PHY design spec, the reset requires a minimum of 100us. */ + usleep_range(100, 150); + serdes_setbits(ctx, lane, RXTX_REG7, RXTX_REG7_RESETB_RXD_MASK); +} + +static int xgene_phy_get_avg(int accum, int samples) +{ + return (accum + (samples / 2)) / samples; +} + +static void xgene_phy_gen_avg_val(struct xgene_phy_ctx *ctx, int lane) +{ + int max_loop = 10; + int avg_loop = 0; + int lat_do = 0, lat_xo = 0, lat_eo = 0, lat_so = 0; + int lat_de = 0, lat_xe = 0, lat_ee = 0, lat_se = 0; + int sum_cal = 0; + int lat_do_itr, lat_xo_itr, lat_eo_itr, lat_so_itr; + int lat_de_itr, lat_xe_itr, lat_ee_itr, lat_se_itr; + int sum_cal_itr; + int fail_even; + int fail_odd; + u32 val; + + dev_dbg(ctx->dev, "Generating avg calibration value for lane %d\n", + lane); + + /* Enable RX Hi-Z termination */ + serdes_setbits(ctx, lane, RXTX_REG12, + RXTX_REG12_RX_DET_TERM_ENABLE_MASK); + /* Turn off DFE */ + serdes_wr(ctx, lane, RXTX_REG28, 0x0000); + /* DFE Presets to zero */ + serdes_wr(ctx, lane, RXTX_REG31, 0x0000); + + /* + * Receiver Offset Calibration: + * Calibrate the receiver signal path offset in two steps - summar + * and latch calibration. + * Runs the "Receiver Offset Calibration multiple times to determine + * the average value to use. + */ + while (avg_loop < max_loop) { + /* Start the calibration */ + xgene_phy_force_lat_summer_cal(ctx, lane); + + serdes_rd(ctx, lane, RXTX_REG21, &val); + lat_do_itr = RXTX_REG21_DO_LATCH_CALOUT_RD(val); + lat_xo_itr = RXTX_REG21_XO_LATCH_CALOUT_RD(val); + fail_odd = RXTX_REG21_LATCH_CAL_FAIL_ODD_RD(val); + + serdes_rd(ctx, lane, RXTX_REG22, &val); + lat_eo_itr = RXTX_REG22_EO_LATCH_CALOUT_RD(val); + lat_so_itr = RXTX_REG22_SO_LATCH_CALOUT_RD(val); + fail_even = RXTX_REG22_LATCH_CAL_FAIL_EVEN_RD(val); + + serdes_rd(ctx, lane, RXTX_REG23, &val); + lat_de_itr = RXTX_REG23_DE_LATCH_CALOUT_RD(val); + lat_xe_itr = RXTX_REG23_XE_LATCH_CALOUT_RD(val); + + serdes_rd(ctx, lane, RXTX_REG24, &val); + lat_ee_itr = RXTX_REG24_EE_LATCH_CALOUT_RD(val); + lat_se_itr = RXTX_REG24_SE_LATCH_CALOUT_RD(val); + + serdes_rd(ctx, lane, RXTX_REG121, &val); + sum_cal_itr = RXTX_REG121_SUMOS_CAL_CODE_RD(val); + + /* Check for failure. If passed, sum them for averaging */ + if ((fail_even == 0 || fail_even == 1) && + (fail_odd == 0 || fail_odd == 1)) { + lat_do += lat_do_itr; + lat_xo += lat_xo_itr; + lat_eo += lat_eo_itr; + lat_so += lat_so_itr; + lat_de += lat_de_itr; + lat_xe += lat_xe_itr; + lat_ee += lat_ee_itr; + lat_se += lat_se_itr; + sum_cal += sum_cal_itr; + + dev_dbg(ctx->dev, "Iteration %d:\n", avg_loop); + dev_dbg(ctx->dev, "DO 0x%x XO 0x%x EO 0x%x SO 0x%x\n", + lat_do_itr, lat_xo_itr, lat_eo_itr, + lat_so_itr); + dev_dbg(ctx->dev, "DE 0x%x XE 0x%x EE 0x%x SE 0x%x\n", + lat_de_itr, lat_xe_itr, lat_ee_itr, + lat_se_itr); + dev_dbg(ctx->dev, "SUM 0x%x\n", sum_cal_itr); + ++avg_loop; + } else { + dev_err(ctx->dev, + "Receiver calibration failed at %d loop\n", + avg_loop); + } + xgene_phy_reset_rxd(ctx, lane); + } + + /* Update latch manual calibration with average value */ + serdes_rd(ctx, lane, RXTX_REG127, &val); + val = RXTX_REG127_DO_LATCH_MANCAL_SET(val, + xgene_phy_get_avg(lat_do, max_loop)); + val = RXTX_REG127_XO_LATCH_MANCAL_SET(val, + xgene_phy_get_avg(lat_xo, max_loop)); + serdes_wr(ctx, lane, RXTX_REG127, val); + + serdes_rd(ctx, lane, RXTX_REG128, &val); + val = RXTX_REG128_EO_LATCH_MANCAL_SET(val, + xgene_phy_get_avg(lat_eo, max_loop)); + val = RXTX_REG128_SO_LATCH_MANCAL_SET(val, + xgene_phy_get_avg(lat_so, max_loop)); + serdes_wr(ctx, lane, RXTX_REG128, val); + + serdes_rd(ctx, lane, RXTX_REG129, &val); + val = RXTX_REG129_DE_LATCH_MANCAL_SET(val, + xgene_phy_get_avg(lat_de, max_loop)); + val = RXTX_REG129_XE_LATCH_MANCAL_SET(val, + xgene_phy_get_avg(lat_xe, max_loop)); + serdes_wr(ctx, lane, RXTX_REG129, val); + + serdes_rd(ctx, lane, RXTX_REG130, &val); + val = RXTX_REG130_EE_LATCH_MANCAL_SET(val, + xgene_phy_get_avg(lat_ee, max_loop)); + val = RXTX_REG130_SE_LATCH_MANCAL_SET(val, + xgene_phy_get_avg(lat_se, max_loop)); + serdes_wr(ctx, lane, RXTX_REG130, val); + + /* Update SUMMER calibration with average value */ + serdes_rd(ctx, lane, RXTX_REG14, &val); + val = RXTX_REG14_CLTE_LATCAL_MAN_PROG_SET(val, + xgene_phy_get_avg(sum_cal, max_loop)); + serdes_wr(ctx, lane, RXTX_REG14, val); + + dev_dbg(ctx->dev, "Average Value:\n"); + dev_dbg(ctx->dev, "DO 0x%x XO 0x%x EO 0x%x SO 0x%x\n", + xgene_phy_get_avg(lat_do, max_loop), + xgene_phy_get_avg(lat_xo, max_loop), + xgene_phy_get_avg(lat_eo, max_loop), + xgene_phy_get_avg(lat_so, max_loop)); + dev_dbg(ctx->dev, "DE 0x%x XE 0x%x EE 0x%x SE 0x%x\n", + xgene_phy_get_avg(lat_de, max_loop), + xgene_phy_get_avg(lat_xe, max_loop), + xgene_phy_get_avg(lat_ee, max_loop), + xgene_phy_get_avg(lat_se, max_loop)); + dev_dbg(ctx->dev, "SUM 0x%x\n", + xgene_phy_get_avg(sum_cal, max_loop)); + + serdes_rd(ctx, lane, RXTX_REG14, &val); + val = RXTX_REG14_CTLE_LATCAL_MAN_ENA_SET(val, 0x1); + serdes_wr(ctx, lane, RXTX_REG14, val); + dev_dbg(ctx->dev, "Enable Manual Summer calibration\n"); + + serdes_rd(ctx, lane, RXTX_REG127, &val); + val = RXTX_REG127_LATCH_MAN_CAL_ENA_SET(val, 0x1); + dev_dbg(ctx->dev, "Enable Manual Latch calibration\n"); + serdes_wr(ctx, lane, RXTX_REG127, val); + + /* Disable RX Hi-Z termination */ + serdes_rd(ctx, lane, RXTX_REG12, &val); + val = RXTX_REG12_RX_DET_TERM_ENABLE_SET(val, 0); + serdes_wr(ctx, lane, RXTX_REG12, val); + /* Turn on DFE */ + serdes_wr(ctx, lane, RXTX_REG28, 0x0007); + /* Set DFE preset */ + serdes_wr(ctx, lane, RXTX_REG31, 0x7e00); +} + +static int xgene_phy_hw_init(struct phy *phy) +{ + struct xgene_phy_ctx *ctx = phy_get_drvdata(phy); + int rc; + int i; + + rc = xgene_phy_hw_initialize(ctx, CLK_EXT_DIFF, SSC_DISABLE); + if (rc) { + dev_err(ctx->dev, "PHY initialize failed %d\n", rc); + return rc; + } + + /* Setup clock properly after PHY configuration */ + if (!IS_ERR(ctx->clk)) { + /* HW requires an toggle of the clock */ + clk_prepare_enable(ctx->clk); + clk_disable_unprepare(ctx->clk); + clk_prepare_enable(ctx->clk); + } + + /* Compute average value */ + for (i = 0; i < MAX_LANE; i++) + xgene_phy_gen_avg_val(ctx, i); + + dev_dbg(ctx->dev, "PHY initialized\n"); + return 0; +} + +static const struct phy_ops xgene_phy_ops = { + .init = xgene_phy_hw_init, + .owner = THIS_MODULE, +}; + +static struct phy *xgene_phy_xlate(struct device *dev, + struct of_phandle_args *args) +{ + struct xgene_phy_ctx *ctx = dev_get_drvdata(dev); + + if (args->args_count <= 0) + return ERR_PTR(-EINVAL); + if (args->args[0] < MODE_SATA || args->args[0] >= MODE_MAX) + return ERR_PTR(-EINVAL); + + ctx->mode = args->args[0]; + return ctx->phy; +} + +static void xgene_phy_get_param(struct platform_device *pdev, + const char *name, u32 *buffer, + int count, u32 *default_val, + u32 conv_factor) +{ + int i; + + if (!of_property_read_u32_array(pdev->dev.of_node, name, buffer, + count)) { + for (i = 0; i < count; i++) + buffer[i] /= conv_factor; + return; + } + /* Does not exist, load default */ + for (i = 0; i < count; i++) + buffer[i] = default_val[i % 3]; +} + +static int xgene_phy_probe(struct platform_device *pdev) +{ + struct phy_provider *phy_provider; + struct xgene_phy_ctx *ctx; + struct resource *res; + int rc = 0; + u32 default_spd[] = DEFAULT_SATA_SPD_SEL; + u32 default_txboost_gain[] = DEFAULT_SATA_TXBOOST_GAIN; + u32 default_txeye_direction[] = DEFAULT_SATA_TXEYEDIRECTION; + u32 default_txeye_tuning[] = DEFAULT_SATA_TXEYETUNING; + u32 default_txamp[] = DEFAULT_SATA_TXAMP; + u32 default_txcn1[] = DEFAULT_SATA_TXCN1; + u32 default_txcn2[] = DEFAULT_SATA_TXCN2; + u32 default_txcp1[] = DEFAULT_SATA_TXCP1; + int i; + + ctx = devm_kzalloc(&pdev->dev, sizeof(*ctx), GFP_KERNEL); + if (!ctx) + return -ENOMEM; + + ctx->dev = &pdev->dev; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + ctx->sds_base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(ctx->sds_base)) { + rc = PTR_ERR(ctx->sds_base); + goto error; + } + + /* Retrieve optional clock */ + ctx->clk = clk_get(&pdev->dev, NULL); + + /* Load override paramaters */ + xgene_phy_get_param(pdev, "apm,tx-eye-tuning", + ctx->sata_param.txeyetuning, 6, default_txeye_tuning, 1); + xgene_phy_get_param(pdev, "apm,tx-eye-direction", + ctx->sata_param.txeyedirection, 6, default_txeye_direction, 1); + xgene_phy_get_param(pdev, "apm,tx-boost-gain", + ctx->sata_param.txboostgain, 6, default_txboost_gain, 1); + xgene_phy_get_param(pdev, "apm,tx-amplitude", + ctx->sata_param.txamplitude, 6, default_txamp, 13300); + xgene_phy_get_param(pdev, "apm,tx-pre-cursor1", + ctx->sata_param.txprecursor_cn1, 6, default_txcn1, 18200); + xgene_phy_get_param(pdev, "apm,tx-pre-cursor2", + ctx->sata_param.txprecursor_cn2, 6, default_txcn2, 18200); + xgene_phy_get_param(pdev, "apm,tx-post-cursor", + ctx->sata_param.txpostcursor_cp1, 6, default_txcp1, 18200); + xgene_phy_get_param(pdev, "apm,tx-speed", + ctx->sata_param.txspeed, 3, default_spd, 1); + for (i = 0; i < MAX_LANE; i++) + ctx->sata_param.speed[i] = 2; /* Default to Gen3 */ + + ctx->dev = &pdev->dev; + platform_set_drvdata(pdev, ctx); + + ctx->phy = devm_phy_create(ctx->dev, &xgene_phy_ops, NULL); + if (IS_ERR(ctx->phy)) { + dev_dbg(&pdev->dev, "Failed to create PHY\n"); + rc = PTR_ERR(ctx->phy); + goto error; + } + phy_set_drvdata(ctx->phy, ctx); + + phy_provider = devm_of_phy_provider_register(ctx->dev, + xgene_phy_xlate); + if (IS_ERR(phy_provider)) { + rc = PTR_ERR(phy_provider); + goto error; + } + + return 0; + +error: + return rc; +} + +static const struct of_device_id xgene_phy_of_match[] = { + {.compatible = "apm,xgene-phy",}, + {}, +}; +MODULE_DEVICE_TABLE(of, xgene_phy_of_match); + +static struct platform_driver xgene_phy_driver = { + .probe = xgene_phy_probe, + .driver = { + .name = "xgene-phy", + .owner = THIS_MODULE, + .of_match_table = xgene_phy_of_match, + }, +}; +module_platform_driver(xgene_phy_driver); + +MODULE_DESCRIPTION("APM X-Gene Multi-Purpose PHY driver"); +MODULE_AUTHOR("Loc Ho "); +MODULE_LICENSE("GPL v2"); +MODULE_VERSION("0.1"); --- linux-3.13.0.orig/drivers/pinctrl/core.c +++ linux-3.13.0/drivers/pinctrl/core.c @@ -851,7 +851,9 @@ kref_init(&p->users); /* Add the pinctrl handle to the global list */ + mutex_lock(&pinctrl_list_mutex); list_add_tail(&p->node, &pinctrl_list); + mutex_unlock(&pinctrl_list_mutex); return p; } --- linux-3.13.0.orig/drivers/pinctrl/pinctrl-at91.c +++ linux-3.13.0/drivers/pinctrl/pinctrl-at91.c @@ -1260,22 +1260,22 @@ switch (type) { case IRQ_TYPE_EDGE_RISING: - irq_set_handler(d->irq, handle_simple_irq); + __irq_set_handler_locked(d->irq, handle_simple_irq); writel_relaxed(mask, pio + PIO_ESR); writel_relaxed(mask, pio + PIO_REHLSR); break; case IRQ_TYPE_EDGE_FALLING: - irq_set_handler(d->irq, handle_simple_irq); + __irq_set_handler_locked(d->irq, handle_simple_irq); writel_relaxed(mask, pio + PIO_ESR); writel_relaxed(mask, pio + PIO_FELLSR); break; case IRQ_TYPE_LEVEL_LOW: - irq_set_handler(d->irq, handle_level_irq); + __irq_set_handler_locked(d->irq, handle_level_irq); writel_relaxed(mask, pio + PIO_LSR); writel_relaxed(mask, pio + PIO_FELLSR); break; case IRQ_TYPE_LEVEL_HIGH: - irq_set_handler(d->irq, handle_level_irq); + __irq_set_handler_locked(d->irq, handle_level_irq); writel_relaxed(mask, pio + PIO_LSR); writel_relaxed(mask, pio + PIO_REHLSR); break; @@ -1284,7 +1284,7 @@ * disable additional interrupt modes: * fall back to default behavior */ - irq_set_handler(d->irq, handle_simple_irq); + __irq_set_handler_locked(d->irq, handle_simple_irq); writel_relaxed(mask, pio + PIO_AIMDR); return 0; case IRQ_TYPE_NONE: --- linux-3.13.0.orig/drivers/pinctrl/pinctrl-imx1-core.c +++ linux-3.13.0/drivers/pinctrl/pinctrl-imx1-core.c @@ -45,7 +45,7 @@ #define MX1_DDIR 0x00 #define MX1_OCR 0x04 #define MX1_ICONFA 0x0c -#define MX1_ICONFB 0x10 +#define MX1_ICONFB 0x14 #define MX1_GIUS 0x20 #define MX1_GPR 0x38 #define MX1_PUEN 0x40 @@ -97,13 +97,13 @@ u32 old_val; u32 new_val; - dev_dbg(ipctl->dev, "write: register 0x%p offset %d value 0x%x\n", - reg, offset, value); - /* Use the next register if the pin's port pin number is >=16 */ if (pin_id % 32 >= 16) reg += 0x04; + dev_dbg(ipctl->dev, "write: register 0x%p offset %d value 0x%x\n", + reg, offset, value); + /* Get current state of pins */ old_val = readl(reg); old_val &= mask; @@ -139,7 +139,7 @@ u32 reg_offset) { void __iomem *reg = imx1_mem(ipctl, pin_id) + reg_offset; - int offset = pin_id % 16; + int offset = (pin_id % 16) * 2; /* Use the next register if the pin's port pin number is >=16 */ if (pin_id % 32 >= 16) --- linux-3.13.0.orig/drivers/pinctrl/pinctrl-sunxi.c +++ linux-3.13.0/drivers/pinctrl/pinctrl-sunxi.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -469,12 +470,6 @@ return val; } -static int sunxi_pinctrl_gpio_direction_output(struct gpio_chip *chip, - unsigned offset, int value) -{ - return pinctrl_gpio_direction_output(chip->base + offset); -} - static void sunxi_pinctrl_gpio_set(struct gpio_chip *chip, unsigned offset, int value) { @@ -498,6 +493,13 @@ spin_unlock_irqrestore(&pctl->lock, flags); } +static int sunxi_pinctrl_gpio_direction_output(struct gpio_chip *chip, + unsigned offset, int value) +{ + sunxi_pinctrl_gpio_set(chip, offset, value); + return pinctrl_gpio_direction_output(chip->base + offset); +} + static int sunxi_pinctrl_gpio_of_xlate(struct gpio_chip *gc, const struct of_phandle_args *gpiospec, u32 *flags) @@ -664,6 +666,7 @@ static void sunxi_pinctrl_irq_handler(unsigned irq, struct irq_desc *desc) { + struct irq_chip *chip = irq_get_chip(irq); struct sunxi_pinctrl *pctl = irq_get_handler_data(irq); const unsigned long reg = readl(pctl->membase + IRQ_STATUS_REG); @@ -673,10 +676,12 @@ if (reg) { int irqoffset; + chained_irq_enter(chip, desc); for_each_set_bit(irqoffset, ®, SUNXI_IRQ_NUMBER) { int pin_irq = irq_find_mapping(pctl->domain, irqoffset); generic_handle_irq(pin_irq); } + chained_irq_exit(chip, desc); } } --- linux-3.13.0.orig/drivers/pinctrl/vt8500/pinctrl-wmt.c +++ linux-3.13.0/drivers/pinctrl/vt8500/pinctrl-wmt.c @@ -276,7 +276,20 @@ if (!configs) return -ENOMEM; - configs[0] = pull; + switch (pull) { + case 0: + configs[0] = PIN_CONFIG_BIAS_DISABLE; + break; + case 1: + configs[0] = PIN_CONFIG_BIAS_PULL_DOWN; + break; + case 2: + configs[0] = PIN_CONFIG_BIAS_PULL_UP; + break; + default: + configs[0] = PIN_CONFIG_BIAS_DISABLE; + dev_err(data->dev, "invalid pull state %d - disabling\n", pull); + } map->type = PIN_MAP_TYPE_CONFIGS_PIN; map->data.configs.group_or_pin = data->groups[group]; --- linux-3.13.0.orig/drivers/platform/x86/Kconfig +++ linux-3.13.0/drivers/platform/x86/Kconfig @@ -197,6 +197,17 @@ To compile this driver as a module, choose M here: the module will be called hp_accel. +config HP_WIRELESS + tristate "HP wireless button" + depends on ACPI + depends on INPUT + help + This driver provides supports for new HP wireless button for Windows 8. + On such systems the driver should load automatically (via ACPI alias). + + To compile this driver as a module, choose M here: the module will + be called hp-wireless. + config HP_WMI tristate "HP WMI extras" depends on ACPI_WMI --- linux-3.13.0.orig/drivers/platform/x86/Makefile +++ linux-3.13.0/drivers/platform/x86/Makefile @@ -16,6 +16,7 @@ obj-$(CONFIG_ACER_WMI) += acer-wmi.o obj-$(CONFIG_ACERHDF) += acerhdf.o obj-$(CONFIG_HP_ACCEL) += hp_accel.o +obj-$(CONFIG_HP_WIRELESS) += hp-wireless.o obj-$(CONFIG_HP_WMI) += hp-wmi.o obj-$(CONFIG_AMILO_RFKILL) += amilo-rfkill.o obj-$(CONFIG_TC1100_WMI) += tc1100-wmi.o --- linux-3.13.0.orig/drivers/platform/x86/acer-wmi.c +++ linux-3.13.0/drivers/platform/x86/acer-wmi.c @@ -572,6 +572,25 @@ DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5750"), }, }, + { + .callback = video_set_backlight_video_vendor, + .ident = "Acer Aspire 5741", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Acer"), + DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5741"), + }, + }, + { + /* + * Note no video_set_backlight_video_vendor, we must use the + * acer interface, as there is no native backlight interface. + */ + .ident = "Acer KAV80", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Acer"), + DMI_MATCH(DMI_PRODUCT_NAME, "KAV80"), + }, + }, {} }; --- linux-3.13.0.orig/drivers/platform/x86/dell-laptop.c +++ linux-3.13.0/drivers/platform/x86/dell-laptop.c @@ -559,6 +559,29 @@ } static DECLARE_DELAYED_WORK(dell_rfkill_work, dell_update_rfkill); +static bool dell_laptop_i8042_filter(unsigned char data, unsigned char str, + struct serio *port) +{ + static bool extended; + + if (str & 0x20) + return false; + + if (unlikely(data == 0xe0)) { + extended = true; + return false; + } else if (unlikely(extended)) { + switch (data) { + case 0x8: + schedule_delayed_work(&dell_rfkill_work, + round_jiffies_relative(HZ / 4)); + break; + } + extended = false; + } + + return false; +} static int __init dell_setup_rfkill(void) { @@ -633,7 +656,16 @@ goto err_wwan; } + ret = i8042_install_filter(dell_laptop_i8042_filter); + if (ret) { + pr_warn("Unable to install key filter\n"); + goto err_filter; + } + return 0; +err_filter: + if (wwan_rfkill) + rfkill_unregister(wwan_rfkill); err_wwan: rfkill_destroy(wwan_rfkill); if (bluetooth_rfkill) @@ -755,30 +787,6 @@ led_classdev_unregister(&touchpad_led); } -static bool dell_laptop_i8042_filter(unsigned char data, unsigned char str, - struct serio *port) -{ - static bool extended; - - if (str & 0x20) - return false; - - if (unlikely(data == 0xe0)) { - extended = true; - return false; - } else if (unlikely(extended)) { - switch (data) { - case 0x8: - schedule_delayed_work(&dell_rfkill_work, - round_jiffies_relative(HZ / 4)); - break; - } - extended = false; - } - - return false; -} - static int __init dell_init(void) { int max_intensity = 0; @@ -828,12 +836,6 @@ goto fail_rfkill; } - ret = i8042_install_filter(dell_laptop_i8042_filter); - if (ret) { - pr_warn("Unable to install key filter\n"); - goto fail_filter; - } - if (quirks && quirks->touchpad_led) touchpad_led_init(&platform_device->dev); @@ -885,7 +887,6 @@ fail_backlight: i8042_remove_filter(dell_laptop_i8042_filter); cancel_delayed_work_sync(&dell_rfkill_work); -fail_filter: dell_cleanup_rfkill(); fail_rfkill: free_page((unsigned long)bufferpage); --- linux-3.13.0.orig/drivers/platform/x86/dell-wmi.c +++ linux-3.13.0/drivers/platform/x86/dell-wmi.c @@ -166,7 +166,7 @@ u16 *buffer_entry = (u16 *)obj->buffer.pointer; if (dell_new_hk_type && (buffer_entry[1] != 0x10)) { - pr_info("Received unknown WMI event (0x%x)\n", + pr_debug("Received unknown WMI event (0x%x)\n", buffer_entry[1]); kfree(obj); return; --- linux-3.13.0.orig/drivers/platform/x86/hp-wireless.c +++ linux-3.13.0/drivers/platform/x86/hp-wireless.c @@ -0,0 +1,132 @@ +/* + * hp-wireless button for Windows 8 + * + * Copyright (C) 2014 Alex Hung + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include +#include +#include +#include +#include +#include +#include + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Alex Hung"); +MODULE_ALIAS("acpi*:HPQ6001:*"); + +static struct input_dev *hpwl_input_dev; + +static const struct acpi_device_id hpwl_ids[] = { + {"HPQ6001", 0}, + {"", 0}, +}; + +static int hp_wireless_input_setup(void) +{ + int err; + + hpwl_input_dev = input_allocate_device(); + if (!hpwl_input_dev) + return -ENOMEM; + + hpwl_input_dev->name = "HP Wireless hotkeys"; + hpwl_input_dev->phys = "hpq6001/input0"; + hpwl_input_dev->id.bustype = BUS_HOST; + hpwl_input_dev->evbit[0] = BIT(EV_KEY); + set_bit(KEY_RFKILL, hpwl_input_dev->keybit); + + err = input_register_device(hpwl_input_dev); + if (err) + goto err_free_dev; + + return 0; + +err_free_dev: + input_free_device(hpwl_input_dev); + return err; +} + +static void hp_wireless_input_destroy(void) +{ + input_unregister_device(hpwl_input_dev); +} + +static void hpwl_notify(struct acpi_device *acpi_dev, u32 event) +{ + if (event != 0x80) { + pr_info("Received unknown event (0x%x)\n", event); + return; + } + + input_report_key(hpwl_input_dev, KEY_RFKILL, 1); + input_sync(hpwl_input_dev); + input_report_key(hpwl_input_dev, KEY_RFKILL, 0); + input_sync(hpwl_input_dev); +} + +static int hpwl_add(struct acpi_device *device) +{ + int err; + + err = hp_wireless_input_setup(); + return err; +} + +static int hpwl_remove(struct acpi_device *device) +{ + hp_wireless_input_destroy(); + return 0; +} + +static struct acpi_driver hpwl_driver = { + .name = "hp-wireless", + .owner = THIS_MODULE, + .ids = hpwl_ids, + .ops = { + .add = hpwl_add, + .remove = hpwl_remove, + .notify = hpwl_notify, + }, +}; + +static int __init hpwl_init(void) +{ + int err; + + pr_info("Initializing HPQ6001 module\n"); + err = acpi_bus_register_driver(&hpwl_driver); + if (err) { + pr_err("Unable to register HP wireless control driver.\n"); + goto error_acpi_register; + } + + return 0; + +error_acpi_register: + return err; +} + +static void __exit hpwl_exit(void) +{ + pr_info("Exiting HPQ6001 module\n"); + acpi_bus_unregister_driver(&hpwl_driver); +} + +module_init(hpwl_init); +module_exit(hpwl_exit); --- linux-3.13.0.orig/drivers/platform/x86/hp_accel.c +++ linux-3.13.0/drivers/platform/x86/hp_accel.c @@ -77,6 +77,7 @@ static struct acpi_device_id lis3lv02d_device_ids[] = { {"HPQ0004", 0}, /* HP Mobile Data Protection System PNP */ {"HPQ6000", 0}, /* HP Mobile Data Protection System PNP */ + {"HPQ6007", 0}, /* HP Mobile Data Protection System PNP */ {"", 0}, }; MODULE_DEVICE_TABLE(acpi, lis3lv02d_device_ids); @@ -236,6 +237,7 @@ AXIS_DMI_MATCH("HPB64xx", "HP ProBook 64", xy_swap), AXIS_DMI_MATCH("HPB64xx", "HP EliteBook 84", xy_swap), AXIS_DMI_MATCH("HPB65xx", "HP ProBook 65", x_inverted), + AXIS_DMI_MATCH("HPZBook15", "HP ZBook 15", x_inverted), { NULL, } /* Laptop models without axis info (yet): * "NC6910" "HP Compaq 6910" --- linux-3.13.0.orig/drivers/platform/x86/intel_ips.c +++ linux-3.13.0/drivers/platform/x86/intel_ips.c @@ -74,6 +74,7 @@ #include #include #include +#include #include #include #include "intel_ips.h" @@ -250,6 +251,8 @@ static const int IPS_ADJUST_PERIOD = 5000; /* ms */ static bool late_i915_load = false; +int i915_bdw_enabled = 0; +EXPORT_SYMBOL(i915_bdw_enabled); /* For initial average collection */ static const int IPS_SAMPLE_PERIOD = 200; /* ms */ @@ -1421,8 +1424,43 @@ * enable graphics turbo, otherwise we must disable it to avoid exceeding * thermal and power limits in the MCP. */ +static bool ips_get_i915_bdw_syms(struct ips_driver *ips) +{ + ips->read_mch_val = symbol_get(i915_bdw_read_mch_val); + if (!ips->read_mch_val) + goto out_err; + ips->gpu_raise = symbol_get(i915_bdw_gpu_raise); + if (!ips->gpu_raise) + goto out_put_mch; + ips->gpu_lower = symbol_get(i915_bdw_gpu_lower); + if (!ips->gpu_lower) + goto out_put_raise; + ips->gpu_busy = symbol_get(i915_bdw_gpu_busy); + if (!ips->gpu_busy) + goto out_put_lower; + ips->gpu_turbo_disable = symbol_get(i915_bdw_gpu_turbo_disable); + if (!ips->gpu_turbo_disable) + goto out_put_busy; + + return true; + +out_put_busy: + symbol_put(i915_bdw_gpu_busy); +out_put_lower: + symbol_put(i915_bdw_gpu_lower); +out_put_raise: + symbol_put(i915_bdw_gpu_raise); +out_put_mch: + symbol_put(i915_bdw_read_mch_val); +out_err: + return false; +} + static bool ips_get_i915_syms(struct ips_driver *ips) { + if (ips_get_i915_bdw_syms(ips) != false) + return true; + ips->read_mch_val = symbol_get(i915_read_mch_val); if (!ips->read_mch_val) goto out_err; @@ -1501,6 +1539,14 @@ DMI_MATCH(DMI_PRODUCT_NAME, "HP ProBook"), }, }, + { + .callback = ips_blacklist_callback, + .ident = "G60JX", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "G60JX"), + }, + }, { } /* terminating entry */ }; --- linux-3.13.0.orig/drivers/platform/x86/samsung-laptop.c +++ linux-3.13.0/drivers/platform/x86/samsung-laptop.c @@ -1534,6 +1534,16 @@ }, .driver_data = &samsung_broken_acpi_video, }, + { + .callback = samsung_dmi_matched, + .ident = "NC210", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), + DMI_MATCH(DMI_PRODUCT_NAME, "NC210/NC110"), + DMI_MATCH(DMI_BOARD_NAME, "NC210/NC110"), + }, + .driver_data = &samsung_broken_acpi_video, + }, { }, }; MODULE_DEVICE_TABLE(dmi, samsung_dmi_table); --- linux-3.13.0.orig/drivers/platform/x86/sony-laptop.c +++ linux-3.13.0/drivers/platform/x86/sony-laptop.c @@ -2917,6 +2917,10 @@ struct sonypi_event *events; }; +struct sony_pic_quirk_entry { + u8 set_wwan_power; +}; + struct sony_pic_dev { struct acpi_device *acpi_dev; struct sony_pic_irq *cur_irq; @@ -2927,6 +2931,7 @@ struct sonypi_eventtypes *event_types; int (*handle_irq)(const u8, const u8); int model; + struct sony_pic_quirk_entry *quirks; u16 evport_offset; u8 camera_power; u8 bluetooth_power; @@ -4362,6 +4367,12 @@ if (result) goto err_remove_pf; + if (spic_dev.quirks && spic_dev.quirks->set_wwan_power) { + /* + * Power isn't enabled by default. + */ + __sony_pic_set_wwanpower(1); + } return 0; err_remove_pf: @@ -4436,6 +4447,16 @@ .drv.pm = &sony_pic_pm, }; +static struct sony_pic_quirk_entry sony_pic_vaio_vgn = { + .set_wwan_power = 1, +}; + +static int dmi_matched(const struct dmi_system_id *dmi) +{ + spic_dev.quirks = dmi->driver_data; + return 0; +} + static struct dmi_system_id __initdata sonypi_dmi_table[] = { { .ident = "Sony Vaio", @@ -4450,6 +4471,8 @@ DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), DMI_MATCH(DMI_PRODUCT_NAME, "VGN-"), }, + .callback = dmi_matched, + .driver_data = &sony_pic_vaio_vgn, }, { } }; --- linux-3.13.0.orig/drivers/platform/x86/thinkpad_acpi.c +++ linux-3.13.0/drivers/platform/x86/thinkpad_acpi.c @@ -3443,6 +3443,106 @@ return (res < 0)? res : 1; } +/* Thinkpad X1 Carbon support 5 modes including Home mode, Web browser + * mode, Web conference mode, Function mode and Lay-flat mode. + * We support Home mode and Function mode currently. + * + * Will consider support rest of modes in future. + * + */ +enum ADAPTIVE_KEY_MODE { + HOME_MODE, + WEB_BROWSER_MODE, + WEB_CONFERENCE_MODE, + FUNCTION_MODE, + LAYFLAT_MODE +}; + +const int adaptive_keyboard_modes[] = { + HOME_MODE, +/* WEB_BROWSER_MODE = 2, + WEB_CONFERENCE_MODE = 3, */ + FUNCTION_MODE +}; + +#define DFR_CHANGE_ROW 0x101 +#define DFR_SHOW_QUICKVIEW_ROW 0x102 + +/* press Fn key a while second, it will switch to Function Mode. Then + * release Fn key, previous mode be restored. + */ +static bool adaptive_keyboard_mode_is_saved; +static int adaptive_keyboard_prev_mode; + +static int adaptive_keyboard_get_next_mode(int mode) +{ + size_t i; + size_t max_mode = ARRAY_SIZE(adaptive_keyboard_modes) - 1; + + for (i = 0; i <= max_mode; i++) { + if (adaptive_keyboard_modes[i] == mode) + break; + } + + if (i >= max_mode) + i = 0; + else + i++; + + return adaptive_keyboard_modes[i]; +} + +static bool adaptive_keyboard_hotkey_notify_hotkey(unsigned int scancode) +{ + u32 current_mode = 0; + int new_mode = 0; + + switch (scancode) { + case DFR_CHANGE_ROW: + if (adaptive_keyboard_mode_is_saved) { + new_mode = adaptive_keyboard_prev_mode; + adaptive_keyboard_mode_is_saved = false; + } else { + if (!acpi_evalf( + hkey_handle, ¤t_mode, + "GTRW", "dd", 0)) { + pr_err("Cannot read adaptive keyboard mode\n"); + return false; + } else { + new_mode = adaptive_keyboard_get_next_mode( + current_mode); + } + } + + if (!acpi_evalf(hkey_handle, NULL, "STRW", "vd", new_mode)) { + pr_err("Cannot set adaptive keyboard mode\n"); + return false; + } + + return true; + + case DFR_SHOW_QUICKVIEW_ROW: + if (!acpi_evalf(hkey_handle, + &adaptive_keyboard_prev_mode, + "GTRW", "dd", 0)) { + pr_err("Cannot read adaptive keyboard mode\n"); + return false; + } else { + adaptive_keyboard_mode_is_saved = true; + + if (!acpi_evalf(hkey_handle, + NULL, "STRW", "vd", FUNCTION_MODE)) { + pr_err("Cannot set adaptive keyboard mode\n"); + return false; + } + } + return true; + + default: + return false; + } +} + static bool hotkey_notify_hotkey(const u32 hkey, bool *send_acpi_ev, bool *ignore_acpi_ev) @@ -3462,6 +3562,8 @@ *ignore_acpi_ev = true; } return true; + } else { + return adaptive_keyboard_hotkey_notify_hotkey(scancode); } return false; } @@ -3734,13 +3836,28 @@ static void hotkey_suspend(void) { + int hkeyv; + /* Do these on suspend, we get the events on early resume! */ hotkey_wakeup_reason = TP_ACPI_WAKEUP_NONE; hotkey_autosleep_ack = 0; + + /* save previous mode of adaptive keyboard of X1 Carbon */ + if (acpi_evalf(hkey_handle, &hkeyv, "MHKV", "qd")) { + if ((hkeyv >> 8) == 2) { + if (!acpi_evalf(hkey_handle, + &adaptive_keyboard_prev_mode, + "GTRW", "dd", 0)) { + pr_err("Cannot read adaptive keyboard mode.\n"); + } + } + } } static void hotkey_resume(void) { + int hkeyv; + tpacpi_disable_brightness_delay(); if (hotkey_status_set(true) < 0 || @@ -3753,6 +3870,18 @@ hotkey_wakeup_reason_notify_change(); hotkey_wakeup_hotunplug_complete_notify_change(); hotkey_poll_setup_safe(false); + + /* restore previous mode of adapive keyboard of X1 Carbon */ + if (acpi_evalf(hkey_handle, &hkeyv, "MHKV", "qd")) { + if ((hkeyv >> 8) == 2) { + if (!acpi_evalf(hkey_handle, + NULL, + "STRW", "vd", + adaptive_keyboard_prev_mode)) { + pr_err("Cannot set adaptive keyboard mode.\n"); + } + } + } } /* procfs -------------------------------------------------------------- */ @@ -8453,9 +8582,21 @@ tpacpi_led_set(i, false); } +static void mute_led_resume(void) +{ + int i; + + for (i = 0; i < TPACPI_LED_MAX; i++) { + struct tp_led_table *t = &led_tables[i]; + if (t->state >= 0) + mute_led_on_off(t, t->state); + } +} + static struct ibm_struct mute_led_driver_data = { .name = "mute_led", .exit = mute_led_exit, + .resume = mute_led_resume, }; /**************************************************************************** --- linux-3.13.0.orig/drivers/pnp/isapnp/core.c +++ linux-3.13.0/drivers/pnp/isapnp/core.c @@ -41,6 +41,7 @@ #include #include #include +#include #include #include "../base.h" @@ -990,7 +991,7 @@ .disable = isapnp_disable_resources, }; -static int __init isapnp_init(void) +static int __init real_isapnp_init(void) { int cards; struct pnp_card *card; @@ -1084,6 +1085,16 @@ return 0; } +static void __init async_isapnp_init(void *unused, async_cookie_t cookie) +{ + (void)real_isapnp_init(); +} + +static int __init isapnp_init(void) +{ + async_schedule(async_isapnp_init, NULL); + return 0; +} device_initcall(isapnp_init); /* format is: noisapnp */ --- linux-3.13.0.orig/drivers/pnp/pnpacpi/rsparser.c +++ linux-3.13.0/drivers/pnp/pnpacpi/rsparser.c @@ -183,9 +183,7 @@ struct resource r = {0}; int i, flags; - if (acpi_dev_resource_memory(res, &r) - || acpi_dev_resource_io(res, &r) - || acpi_dev_resource_address_space(res, &r) + if (acpi_dev_resource_address_space(res, &r) || acpi_dev_resource_ext_address_space(res, &r)) { pnp_add_resource(dev, &r); return AE_OK; @@ -217,6 +215,17 @@ } switch (res->type) { + case ACPI_RESOURCE_TYPE_MEMORY24: + case ACPI_RESOURCE_TYPE_MEMORY32: + case ACPI_RESOURCE_TYPE_FIXED_MEMORY32: + if (acpi_dev_resource_memory(res, &r)) + pnp_add_resource(dev, &r); + break; + case ACPI_RESOURCE_TYPE_IO: + case ACPI_RESOURCE_TYPE_FIXED_IO: + if (acpi_dev_resource_io(res, &r)) + pnp_add_resource(dev, &r); + break; case ACPI_RESOURCE_TYPE_DMA: dma = &res->data.dma; if (dma->channel_count > 0 && dma->channels[0] != (u8) -1) --- linux-3.13.0.orig/drivers/power/charger-manager.c +++ linux-3.13.0/drivers/power/charger-manager.c @@ -86,6 +86,7 @@ static bool is_batt_present(struct charger_manager *cm) { union power_supply_propval val; + struct power_supply *psy; bool present = false; int i, ret; @@ -102,10 +103,17 @@ present = true; break; case CM_CHARGER_STAT: - for (i = 0; cm->charger_stat[i]; i++) { - ret = cm->charger_stat[i]->get_property( - cm->charger_stat[i], - POWER_SUPPLY_PROP_PRESENT, &val); + for (i = 0; cm->desc->psy_charger_stat[i]; i++) { + psy = power_supply_get_by_name( + cm->desc->psy_charger_stat[i]); + if (!psy) { + dev_err(cm->dev, "Cannot find power supply \"%s\"\n", + cm->desc->psy_charger_stat[i]); + continue; + } + + ret = psy->get_property(psy, POWER_SUPPLY_PROP_PRESENT, + &val); if (ret == 0 && val.intval) { present = true; break; @@ -128,14 +136,20 @@ static bool is_ext_pwr_online(struct charger_manager *cm) { union power_supply_propval val; + struct power_supply *psy; bool online = false; int i, ret; /* If at least one of them has one, it's yes. */ - for (i = 0; cm->charger_stat[i]; i++) { - ret = cm->charger_stat[i]->get_property( - cm->charger_stat[i], - POWER_SUPPLY_PROP_ONLINE, &val); + for (i = 0; cm->desc->psy_charger_stat[i]; i++) { + psy = power_supply_get_by_name(cm->desc->psy_charger_stat[i]); + if (!psy) { + dev_err(cm->dev, "Cannot find power supply \"%s\"\n", + cm->desc->psy_charger_stat[i]); + continue; + } + + ret = psy->get_property(psy, POWER_SUPPLY_PROP_ONLINE, &val); if (ret == 0 && val.intval) { online = true; break; @@ -178,6 +192,7 @@ { int i, ret; bool charging = false; + struct power_supply *psy; union power_supply_propval val; /* If there is no battery, it cannot be charged */ @@ -185,17 +200,22 @@ return false; /* If at least one of the charger is charging, return yes */ - for (i = 0; cm->charger_stat[i]; i++) { + for (i = 0; cm->desc->psy_charger_stat[i]; i++) { /* 1. The charger sholuld not be DISABLED */ if (cm->emergency_stop) continue; if (!cm->charger_enabled) continue; + psy = power_supply_get_by_name(cm->desc->psy_charger_stat[i]); + if (!psy) { + dev_err(cm->dev, "Cannot find power supply \"%s\"\n", + cm->desc->psy_charger_stat[i]); + continue; + } + /* 2. The charger should be online (ext-power) */ - ret = cm->charger_stat[i]->get_property( - cm->charger_stat[i], - POWER_SUPPLY_PROP_ONLINE, &val); + ret = psy->get_property(psy, POWER_SUPPLY_PROP_ONLINE, &val); if (ret) { dev_warn(cm->dev, "Cannot read ONLINE value from %s\n", cm->desc->psy_charger_stat[i]); @@ -208,9 +228,7 @@ * 3. The charger should not be FULL, DISCHARGING, * or NOT_CHARGING. */ - ret = cm->charger_stat[i]->get_property( - cm->charger_stat[i], - POWER_SUPPLY_PROP_STATUS, &val); + ret = psy->get_property(psy, POWER_SUPPLY_PROP_STATUS, &val); if (ret) { dev_warn(cm->dev, "Cannot read STATUS value from %s\n", cm->desc->psy_charger_stat[i]); @@ -1501,19 +1519,21 @@ return -EINVAL; } + if (!desc->psy_fuel_gauge) { + dev_err(&pdev->dev, "No fuel gauge power supply defined\n"); + return -EINVAL; + } + /* Counting index only */ while (desc->psy_charger_stat[i]) i++; - cm->charger_stat = devm_kzalloc(&pdev->dev, - sizeof(struct power_supply *) * i, GFP_KERNEL); - if (!cm->charger_stat) - return -ENOMEM; - + /* Check if charger's supplies are present at probe */ for (i = 0; desc->psy_charger_stat[i]; i++) { - cm->charger_stat[i] = power_supply_get_by_name( - desc->psy_charger_stat[i]); - if (!cm->charger_stat[i]) { + struct power_supply *psy; + + psy = power_supply_get_by_name(desc->psy_charger_stat[i]); + if (!psy) { dev_err(&pdev->dev, "Cannot find power supply \"%s\"\n", desc->psy_charger_stat[i]); return -ENODEV; @@ -1843,8 +1863,8 @@ int i; bool found = false; - for (i = 0; cm->charger_stat[i]; i++) { - if (psy == cm->charger_stat[i]) { + for (i = 0; cm->desc->psy_charger_stat[i]; i++) { + if (!strcmp(psy->name, cm->desc->psy_charger_stat[i])) { found = true; break; } --- linux-3.13.0.orig/drivers/power/max17040_battery.c +++ linux-3.13.0/drivers/power/max17040_battery.c @@ -148,7 +148,7 @@ { struct max17040_chip *chip = i2c_get_clientdata(client); - if (chip->pdata->battery_online) + if (chip->pdata && chip->pdata->battery_online) chip->online = chip->pdata->battery_online(); else chip->online = 1; @@ -158,7 +158,8 @@ { struct max17040_chip *chip = i2c_get_clientdata(client); - if (!chip->pdata->charger_online || !chip->pdata->charger_enable) { + if (!chip->pdata || !chip->pdata->charger_online + || !chip->pdata->charger_enable) { chip->status = POWER_SUPPLY_STATUS_UNKNOWN; return; } --- linux-3.13.0.orig/drivers/power/reset/Kconfig +++ linux-3.13.0/drivers/power/reset/Kconfig @@ -51,3 +51,11 @@ depends on POWER_RESET help Reboot support for the APM SoC X-Gene Eval boards. + +config POWER_RESET_SYSCON + bool "Generic SYSCON regmap reset driver" + depends on MFD_SYSCON + depends on POWER_RESET + depends on ARCH_XGENE + help + Reboot support for generic SYSCON mapped register reset. --- linux-3.13.0.orig/drivers/power/reset/Makefile +++ linux-3.13.0/drivers/power/reset/Makefile @@ -4,3 +4,4 @@ obj-$(CONFIG_POWER_RESET_RESTART) += restart-poweroff.o obj-$(CONFIG_POWER_RESET_VEXPRESS) += vexpress-poweroff.o obj-$(CONFIG_POWER_RESET_XGENE) += xgene-reboot.o +obj-$(CONFIG_POWER_RESET_SYSCON) += syscon-reboot.o --- linux-3.13.0.orig/drivers/power/reset/syscon-reboot.c +++ linux-3.13.0/drivers/power/reset/syscon-reboot.c @@ -0,0 +1,100 @@ +/* + * Generic Syscon Reboot Driver + * + * Copyright (c) 2013, Applied Micro Circuits Corporation + * Author: Feng Kan + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * This driver provides system reboot functionality for APM X-Gene SoC. + * For system shutdown, this is board specify. If a board designer + * implements GPIO shutdown, use the gpio-poweroff.c driver. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct syscon_reboot_context { + struct regmap *map; + u32 offset; + u32 mask; +}; + +static struct syscon_reboot_context *syscon_reboot_ctx; + +static void syscon_restart(enum reboot_mode reboot_mode, const char *cmd) +{ + struct syscon_reboot_context *ctx = syscon_reboot_ctx; + unsigned long timeout; + + /* Issue the reboot */ + if (ctx->map) + regmap_write(ctx->map, ctx->offset, ctx->mask); + + timeout = jiffies + HZ; + while (time_before(jiffies, timeout)) + cpu_relax(); + + pr_emerg("Unable to restart system\n"); +} + +static int syscon_reboot_probe(struct platform_device *pdev) +{ + struct syscon_reboot_context *ctx; + struct device *dev = &pdev->dev; + + ctx = devm_kzalloc(&pdev->dev, sizeof(*ctx), GFP_KERNEL); + if (!ctx) { + dev_err(&pdev->dev, "out of memory for context\n"); + return -ENOMEM; + } + + ctx->map = syscon_regmap_lookup_by_phandle(dev->of_node, "regmap"); + if (IS_ERR(ctx->map)) + return PTR_ERR(ctx->map); + + if (of_property_read_u32(pdev->dev.of_node, "offset", &ctx->offset)) + return -EINVAL; + + if (of_property_read_u32(pdev->dev.of_node, "mask", &ctx->mask)) + return -EINVAL; + + arm_pm_restart = syscon_restart; + syscon_reboot_ctx = ctx; + + return 0; +} + +static struct of_device_id syscon_reboot_of_match[] = { + { .compatible = "syscon-reboot" }, + {} +}; + +static struct platform_driver syscon_reboot_driver = { + .probe = syscon_reboot_probe, + .driver = { + .name = "syscon-reboot", + .of_match_table = syscon_reboot_of_match, + }, +}; +module_platform_driver(syscon_reboot_driver); --- linux-3.13.0.orig/drivers/rapidio/devices/tsi721.h +++ linux-3.13.0/drivers/rapidio/devices/tsi721.h @@ -678,6 +678,7 @@ struct list_head free_list; dma_cookie_t completed_cookie; struct tasklet_struct tasklet; + bool active; }; #endif /* CONFIG_RAPIDIO_DMA_ENGINE */ --- linux-3.13.0.orig/drivers/rapidio/devices/tsi721_dma.c +++ linux-3.13.0/drivers/rapidio/devices/tsi721_dma.c @@ -206,8 +206,8 @@ { /* Disable BDMA channel interrupts */ iowrite32(0, bdma_chan->regs + TSI721_DMAC_INTE); - - tasklet_schedule(&bdma_chan->tasklet); + if (bdma_chan->active) + tasklet_schedule(&bdma_chan->tasklet); } #ifdef CONFIG_PCI_MSI @@ -287,6 +287,12 @@ "desc %p not ACKed\n", tx_desc); } + if (ret == NULL) { + dev_dbg(bdma_chan->dchan.device->dev, + "%s: unable to obtain tx descriptor\n", __func__); + goto err_out; + } + i = bdma_chan->wr_count_next % bdma_chan->bd_num; if (i == bdma_chan->bd_num - 1) { i = 0; @@ -297,7 +303,7 @@ tx_desc->txd.phys = bdma_chan->bd_phys + i * sizeof(struct tsi721_dma_desc); tx_desc->hw_desc = &((struct tsi721_dma_desc *)bdma_chan->bd_base)[i]; - +err_out: spin_unlock_bh(&bdma_chan->lock); return ret; @@ -562,7 +568,7 @@ } #endif /* CONFIG_PCI_MSI */ - tasklet_enable(&bdma_chan->tasklet); + bdma_chan->active = true; tsi721_bdma_interrupt_enable(bdma_chan, 1); return bdma_chan->bd_num - 1; @@ -576,9 +582,7 @@ static void tsi721_free_chan_resources(struct dma_chan *dchan) { struct tsi721_bdma_chan *bdma_chan = to_tsi721_chan(dchan); -#ifdef CONFIG_PCI_MSI struct tsi721_device *priv = to_tsi721(dchan->device); -#endif LIST_HEAD(list); dev_dbg(dchan->device->dev, "%s: Entry\n", __func__); @@ -589,14 +593,25 @@ BUG_ON(!list_empty(&bdma_chan->active_list)); BUG_ON(!list_empty(&bdma_chan->queue)); - tasklet_disable(&bdma_chan->tasklet); + tsi721_bdma_interrupt_enable(bdma_chan, 0); + bdma_chan->active = false; + +#ifdef CONFIG_PCI_MSI + if (priv->flags & TSI721_USING_MSIX) { + synchronize_irq(priv->msix[TSI721_VECT_DMA0_DONE + + bdma_chan->id].vector); + synchronize_irq(priv->msix[TSI721_VECT_DMA0_INT + + bdma_chan->id].vector); + } else +#endif + synchronize_irq(priv->pdev->irq); + + tasklet_kill(&bdma_chan->tasklet); spin_lock_bh(&bdma_chan->lock); list_splice_init(&bdma_chan->free_list, &list); spin_unlock_bh(&bdma_chan->lock); - tsi721_bdma_interrupt_enable(bdma_chan, 0); - #ifdef CONFIG_PCI_MSI if (priv->flags & TSI721_USING_MSIX) { free_irq(priv->msix[TSI721_VECT_DMA0_DONE + @@ -790,6 +805,7 @@ bdma_chan->dchan.cookie = 1; bdma_chan->dchan.chan_id = i; bdma_chan->id = i; + bdma_chan->active = false; spin_lock_init(&bdma_chan->lock); @@ -799,7 +815,6 @@ tasklet_init(&bdma_chan->tasklet, tsi721_dma_tasklet, (unsigned long)bdma_chan); - tasklet_disable(&bdma_chan->tasklet); list_add_tail(&bdma_chan->dchan.device_node, &mport->dma.channels); } --- linux-3.13.0.orig/drivers/regulator/arizona-ldo1.c +++ linux-3.13.0/drivers/regulator/arizona-ldo1.c @@ -141,8 +141,6 @@ .map_voltage = regulator_map_voltage_linear, .get_voltage_sel = regulator_get_voltage_sel_regmap, .set_voltage_sel = regulator_set_voltage_sel_regmap, - .get_bypass = regulator_get_bypass_regmap, - .set_bypass = regulator_set_bypass_regmap, }; static const struct regulator_desc arizona_ldo1 = { @@ -153,11 +151,9 @@ .vsel_reg = ARIZONA_LDO1_CONTROL_1, .vsel_mask = ARIZONA_LDO1_VSEL_MASK, - .bypass_reg = ARIZONA_LDO1_CONTROL_1, - .bypass_mask = ARIZONA_LDO1_BYPASS, .min_uV = 900000, - .uV_step = 50000, - .n_voltages = 7, + .uV_step = 25000, + .n_voltages = 13, .enable_time = 500, .owner = THIS_MODULE, @@ -203,6 +199,7 @@ */ switch (arizona->type) { case WM5102: + case WM8997: desc = &arizona_ldo1_hc; ldo1->init_data = arizona_ldo1_dvfs; break; --- linux-3.13.0.orig/drivers/regulator/core.c +++ linux-3.13.0/drivers/regulator/core.c @@ -953,6 +953,8 @@ return 0; } +static int _regulator_do_enable(struct regulator_dev *rdev); + /** * set_machine_constraints - sets regulator constraints * @rdev: regulator source @@ -1013,10 +1015,9 @@ /* If the constraints say the regulator should be on at this point * and we have control then make sure it is enabled. */ - if ((rdev->constraints->always_on || rdev->constraints->boot_on) && - ops->enable) { - ret = ops->enable(rdev); - if (ret < 0) { + if (rdev->constraints->always_on || rdev->constraints->boot_on) { + ret = _regulator_do_enable(rdev); + if (ret < 0 && ret != -EINVAL) { rdev_err(rdev, "failed to enable\n"); goto out; } @@ -1272,6 +1273,8 @@ if (r->dev.parent && node == r->dev.of_node) return r; + *ret = -EPROBE_DEFER; + return NULL; } else { /* * If we couldn't even get the node then it's @@ -1312,7 +1315,7 @@ struct regulator_dev *rdev; struct regulator *regulator = ERR_PTR(-EPROBE_DEFER); const char *devname = NULL; - int ret = -EPROBE_DEFER; + int ret; if (id == NULL) { pr_err("get() with no identifier\n"); @@ -1322,6 +1325,11 @@ if (dev) devname = dev_name(dev); + if (have_full_constraints()) + ret = -ENODEV; + else + ret = -EPROBE_DEFER; + mutex_lock(®ulator_list_mutex); rdev = regulator_dev_lookup(dev, id, &ret); @@ -1352,7 +1360,7 @@ rdev = dummy_regulator_rdev; goto found; } else { - dev_err(dev, "dummy supplies not allowed\n"); + dev_warn(dev, "dummy supplies not allowed\n"); } mutex_unlock(®ulator_list_mutex); @@ -1900,8 +1908,6 @@ trace_regulator_disable_complete(rdev_get_name(rdev)); - _notifier_call_chain(rdev, REGULATOR_EVENT_DISABLE, - NULL); return 0; } @@ -1925,6 +1931,8 @@ rdev_err(rdev, "failed to disable\n"); return ret; } + _notifier_call_chain(rdev, REGULATOR_EVENT_DISABLE, + NULL); } rdev->use_count = 0; @@ -1977,20 +1985,16 @@ { int ret = 0; - /* force disable */ - if (rdev->desc->ops->disable) { - /* ah well, who wants to live forever... */ - ret = rdev->desc->ops->disable(rdev); - if (ret < 0) { - rdev_err(rdev, "failed to force disable\n"); - return ret; - } - /* notify other consumers that power has been forced off */ - _notifier_call_chain(rdev, REGULATOR_EVENT_FORCE_DISABLE | - REGULATOR_EVENT_DISABLE, NULL); + ret = _regulator_do_disable(rdev); + if (ret < 0) { + rdev_err(rdev, "failed to force disable\n"); + return ret; } - return ret; + _notifier_call_chain(rdev, REGULATOR_EVENT_FORCE_DISABLE | + REGULATOR_EVENT_DISABLE, NULL); + + return 0; } /** @@ -3623,23 +3627,18 @@ mutex_lock(®ulator_list_mutex); list_for_each_entry(rdev, ®ulator_list, list) { - struct regulator_ops *ops = rdev->desc->ops; - mutex_lock(&rdev->mutex); - if ((rdev->use_count > 0 || rdev->constraints->always_on) && - ops->enable) { - error = ops->enable(rdev); + if (rdev->use_count > 0 || rdev->constraints->always_on) { + error = _regulator_do_enable(rdev); if (error) ret = error; } else { if (!have_full_constraints()) goto unlock; - if (!ops->disable) - goto unlock; if (!_regulator_is_enabled(rdev)) goto unlock; - error = ops->disable(rdev); + error = _regulator_do_disable(rdev); if (error) ret = error; } @@ -3813,7 +3812,7 @@ ops = rdev->desc->ops; c = rdev->constraints; - if (!ops->disable || (c && c->always_on)) + if (c && c->always_on) continue; mutex_lock(&rdev->mutex); @@ -3834,7 +3833,7 @@ /* We log since this may kill the system if it * goes wrong. */ rdev_info(rdev, "disabling\n"); - ret = ops->disable(rdev); + ret = _regulator_do_disable(rdev); if (ret != 0) { rdev_err(rdev, "couldn't disable: %d\n", ret); } --- linux-3.13.0.orig/drivers/regulator/da9063-regulator.c +++ linux-3.13.0/drivers/regulator/da9063-regulator.c @@ -1,3 +1,4 @@ + /* * Regulator driver for DA9063 PMIC series * @@ -60,7 +61,8 @@ .desc.ops = &da9063_ldo_ops, \ .desc.min_uV = (min_mV) * 1000, \ .desc.uV_step = (step_mV) * 1000, \ - .desc.n_voltages = (((max_mV) - (min_mV))/(step_mV) + 1), \ + .desc.n_voltages = (((max_mV) - (min_mV))/(step_mV) + 1 \ + + (DA9063_V##regl_name##_BIAS)), \ .desc.enable_reg = DA9063_REG_##regl_name##_CONT, \ .desc.enable_mask = DA9063_LDO_EN, \ .desc.vsel_reg = DA9063_REG_V##regl_name##_A, \ --- linux-3.13.0.orig/drivers/regulator/max77693.c +++ linux-3.13.0/drivers/regulator/max77693.c @@ -231,7 +231,7 @@ struct max77693_pmic_dev *max77693_pmic; struct max77693_regulator_data *rdata = NULL; int num_rdata, i; - struct regulator_config config; + struct regulator_config config = { }; num_rdata = max77693_pmic_init_rdata(&pdev->dev, &rdata); if (!rdata || num_rdata <= 0) { --- linux-3.13.0.orig/drivers/rtc/Kconfig +++ linux-3.13.0/drivers/rtc/Kconfig @@ -1286,6 +1286,15 @@ This driver can also be built as a module. If so, the module will be called rtc-moxart +config RTC_DRV_XGENE + tristate "APM X-Gene RTC" + help + If you say yes here you get support for the APM X-Gene SoC real time + clock. + + This driver can also be built as a module, if so, the module + will be called "rtc-xgene". + comment "HID Sensor RTC drivers" config RTC_DRV_HID_SENSOR_TIME --- linux-3.13.0.orig/drivers/rtc/Makefile +++ linux-3.13.0/drivers/rtc/Makefile @@ -131,5 +131,6 @@ obj-$(CONFIG_RTC_DRV_WM831X) += rtc-wm831x.o obj-$(CONFIG_RTC_DRV_WM8350) += rtc-wm8350.o obj-$(CONFIG_RTC_DRV_X1205) += rtc-x1205.o +obj-$(CONFIG_RTC_DRV_XGENE) += rtc-xgene.o obj-$(CONFIG_RTC_DRV_SIRFSOC) += rtc-sirfsoc.o obj-$(CONFIG_RTC_DRV_MOXART) += rtc-moxart.o --- linux-3.13.0.orig/drivers/rtc/rtc-at91rm9200.c +++ linux-3.13.0/drivers/rtc/rtc-at91rm9200.c @@ -48,6 +48,7 @@ static const struct at91_rtc_config *at91_rtc_config; static DECLARE_COMPLETION(at91_rtc_updated); +static DECLARE_COMPLETION(at91_rtc_upd_rdy); static unsigned int at91_alarm_year = AT91_RTC_EPOCH; static void __iomem *at91_rtc_regs; static int irq; @@ -161,6 +162,8 @@ 1900 + tm->tm_year, tm->tm_mon, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec); + wait_for_completion(&at91_rtc_upd_rdy); + /* Stop Time/Calendar from counting */ cr = at91_rtc_read(AT91_RTC_CR); at91_rtc_write(AT91_RTC_CR, cr | AT91_RTC_UPDCAL | AT91_RTC_UPDTIM); @@ -183,7 +186,9 @@ /* Restart Time/Calendar */ cr = at91_rtc_read(AT91_RTC_CR); + at91_rtc_write(AT91_RTC_SCCR, AT91_RTC_SECEV); at91_rtc_write(AT91_RTC_CR, cr & ~(AT91_RTC_UPDCAL | AT91_RTC_UPDTIM)); + at91_rtc_write_ier(AT91_RTC_SECEV); return 0; } @@ -290,8 +295,10 @@ if (rtsr) { /* this interrupt is shared! Is it ours? */ if (rtsr & AT91_RTC_ALARM) events |= (RTC_AF | RTC_IRQF); - if (rtsr & AT91_RTC_SECEV) - events |= (RTC_UF | RTC_IRQF); + if (rtsr & AT91_RTC_SECEV) { + complete(&at91_rtc_upd_rdy); + at91_rtc_write_idr(AT91_RTC_SECEV); + } if (rtsr & AT91_RTC_ACKUPD) complete(&at91_rtc_updated); @@ -413,6 +420,11 @@ return PTR_ERR(rtc); platform_set_drvdata(pdev, rtc); + /* enable SECEV interrupt in order to initialize at91_rtc_upd_rdy + * completion. + */ + at91_rtc_write_ier(AT91_RTC_SECEV); + dev_info(&pdev->dev, "AT91 Real Time Clock driver.\n"); return 0; } --- linux-3.13.0.orig/drivers/rtc/rtc-cmos.c +++ linux-3.13.0/drivers/rtc/rtc-cmos.c @@ -34,11 +34,11 @@ #include #include #include -#include #include #include #include #include +#include /* this is for "generic access to PC-style RTC" using CMOS_READ/CMOS_WRITE */ #include @@ -377,6 +377,51 @@ return 0; } +/* + * Do not disable RTC alarm on shutdown - workaround for b0rked BIOSes. + */ +static bool alarm_disable_quirk; + +static int __init set_alarm_disable_quirk(const struct dmi_system_id *id) +{ + alarm_disable_quirk = true; + pr_info("rtc-cmos: BIOS has alarm-disable quirk. "); + pr_info("RTC alarms disabled\n"); + return 0; +} + +static const struct dmi_system_id rtc_quirks[] __initconst = { + /* https://bugzilla.novell.com/show_bug.cgi?id=805740 */ + { + .callback = set_alarm_disable_quirk, + .ident = "IBM Truman", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "4852570"), + }, + }, + /* https://bugzilla.novell.com/show_bug.cgi?id=812592 */ + { + .callback = set_alarm_disable_quirk, + .ident = "Gigabyte GA-990XA-UD3", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, + "Gigabyte Technology Co., Ltd."), + DMI_MATCH(DMI_PRODUCT_NAME, "GA-990XA-UD3"), + }, + }, + /* http://permalink.gmane.org/gmane.linux.kernel/1604474 */ + { + .callback = set_alarm_disable_quirk, + .ident = "Toshiba Satellite L300", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "Satellite L300"), + }, + }, + {} +}; + static int cmos_alarm_irq_enable(struct device *dev, unsigned int enabled) { struct cmos_rtc *cmos = dev_get_drvdata(dev); @@ -385,6 +430,9 @@ if (!is_valid_irq(cmos->irq)) return -EINVAL; + if (alarm_disable_quirk) + return 0; + spin_lock_irqsave(&rtc_lock, flags); if (enabled) @@ -1157,6 +1205,8 @@ platform_driver_registered = true; } + dmi_check_system(rtc_quirks); + if (retval == 0) return 0; --- linux-3.13.0.orig/drivers/rtc/rtc-max8907.c +++ linux-3.13.0/drivers/rtc/rtc-max8907.c @@ -51,7 +51,7 @@ { struct max8907_rtc *rtc = data; - regmap_update_bits(rtc->regmap, MAX8907_REG_ALARM0_CNTL, 0x7f, 0); + regmap_write(rtc->regmap, MAX8907_REG_ALARM0_CNTL, 0); rtc_update_irq(rtc->rtc_dev, 1, RTC_IRQF | RTC_AF); @@ -64,7 +64,7 @@ bcd2bin(regs[RTC_YEAR1]) - 1900; tm->tm_mon = bcd2bin(regs[RTC_MONTH] & 0x1f) - 1; tm->tm_mday = bcd2bin(regs[RTC_DATE] & 0x3f); - tm->tm_wday = (regs[RTC_WEEKDAY] & 0x07) - 1; + tm->tm_wday = (regs[RTC_WEEKDAY] & 0x07); if (regs[RTC_HOUR] & HOUR_12) { tm->tm_hour = bcd2bin(regs[RTC_HOUR] & 0x01f); if (tm->tm_hour == 12) @@ -88,7 +88,7 @@ regs[RTC_YEAR1] = bin2bcd(low); regs[RTC_MONTH] = bin2bcd(tm->tm_mon + 1); regs[RTC_DATE] = bin2bcd(tm->tm_mday); - regs[RTC_WEEKDAY] = tm->tm_wday + 1; + regs[RTC_WEEKDAY] = tm->tm_wday; regs[RTC_HOUR] = bin2bcd(tm->tm_hour); regs[RTC_MIN] = bin2bcd(tm->tm_min); regs[RTC_SEC] = bin2bcd(tm->tm_sec); @@ -153,7 +153,7 @@ tm_to_regs(&alrm->time, regs); /* Disable alarm while we update the target time */ - ret = regmap_update_bits(rtc->regmap, MAX8907_REG_ALARM0_CNTL, 0x7f, 0); + ret = regmap_write(rtc->regmap, MAX8907_REG_ALARM0_CNTL, 0); if (ret < 0) return ret; @@ -163,8 +163,7 @@ return ret; if (alrm->enabled) - ret = regmap_update_bits(rtc->regmap, MAX8907_REG_ALARM0_CNTL, - 0x7f, 0x7f); + ret = regmap_write(rtc->regmap, MAX8907_REG_ALARM0_CNTL, 0x77); return ret; } --- linux-3.13.0.orig/drivers/rtc/rtc-omap.c +++ linux-3.13.0/drivers/rtc/rtc-omap.c @@ -379,6 +379,8 @@ rtc_writel(KICK1_VALUE, OMAP_RTC_KICK1_REG); } + device_init_wakeup(&pdev->dev, true); + rtc = devm_rtc_device_register(&pdev->dev, pdev->name, &omap_rtc_ops, THIS_MODULE); if (IS_ERR(rtc)) { @@ -441,8 +443,6 @@ * is write-only, and always reads as zero...) */ - device_init_wakeup(&pdev->dev, true); - if (new_ctrl & (u8) OMAP_RTC_CTRL_SPLIT) pr_info("%s: split power mode\n", pdev->name); @@ -452,6 +452,7 @@ return 0; fail0: + device_init_wakeup(&pdev->dev, false); if (id_entry && (id_entry->driver_data & OMAP_RTC_HAS_KICKER)) rtc_writel(0, OMAP_RTC_KICK0_REG); pm_runtime_put_sync(&pdev->dev); --- linux-3.13.0.orig/drivers/rtc/rtc-sirfsoc.c +++ linux-3.13.0/drivers/rtc/rtc-sirfsoc.c @@ -290,14 +290,6 @@ rtc_div = ((32768 / RTC_HZ) / 2) - 1; sirfsoc_rtc_iobrg_writel(rtc_div, rtcdrv->rtc_base + RTC_DIV); - rtcdrv->rtc = devm_rtc_device_register(&pdev->dev, pdev->name, - &sirfsoc_rtc_ops, THIS_MODULE); - if (IS_ERR(rtcdrv->rtc)) { - err = PTR_ERR(rtcdrv->rtc); - dev_err(&pdev->dev, "can't register RTC device\n"); - return err; - } - /* 0x3 -> RTC_CLK */ sirfsoc_rtc_iobrg_writel(SIRFSOC_RTC_CLK, rtcdrv->rtc_base + RTC_CLOCK_SWITCH); @@ -312,6 +304,14 @@ rtcdrv->overflow_rtc = sirfsoc_rtc_iobrg_readl(rtcdrv->rtc_base + RTC_SW_VALUE); + rtcdrv->rtc = devm_rtc_device_register(&pdev->dev, pdev->name, + &sirfsoc_rtc_ops, THIS_MODULE); + if (IS_ERR(rtcdrv->rtc)) { + err = PTR_ERR(rtcdrv->rtc); + dev_err(&pdev->dev, "can't register RTC device\n"); + return err; + } + rtcdrv->irq = platform_get_irq(pdev, 0); err = devm_request_irq( &pdev->dev, --- linux-3.13.0.orig/drivers/rtc/rtc-xgene.c +++ linux-3.13.0/drivers/rtc/rtc-xgene.c @@ -0,0 +1,278 @@ +/* + * APM X-Gene SoC Real Time Clock Driver + * + * Copyright (c) 2014, Applied Micro Circuits Corporation + * Author: Rameshwar Prasad Sahu + * Loc Ho + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* RTC CSR Registers */ +#define RTC_CCVR 0x00 +#define RTC_CMR 0x04 +#define RTC_CLR 0x08 +#define RTC_CCR 0x0C +#define RTC_CCR_IE BIT(0) +#define RTC_CCR_MASK BIT(1) +#define RTC_CCR_EN BIT(2) +#define RTC_CCR_WEN BIT(3) +#define RTC_STAT 0x10 +#define RTC_STAT_BIT BIT(0) +#define RTC_RSTAT 0x14 +#define RTC_EOI 0x18 +#define RTC_VER 0x1C + +struct xgene_rtc_dev { + struct rtc_device *rtc; + struct device *dev; + unsigned long alarm_time; + void __iomem *csr_base; + struct clk *clk; + unsigned int irq_wake; +}; + +static int xgene_rtc_read_time(struct device *dev, struct rtc_time *tm) +{ + struct xgene_rtc_dev *pdata = dev_get_drvdata(dev); + + rtc_time_to_tm(readl(pdata->csr_base + RTC_CCVR), tm); + return rtc_valid_tm(tm); +} + +static int xgene_rtc_set_mmss(struct device *dev, unsigned long secs) +{ + struct xgene_rtc_dev *pdata = dev_get_drvdata(dev); + + /* + * NOTE: After the following write, the RTC_CCVR is only reflected + * after the update cycle of 1 seconds. + */ + writel((u32) secs, pdata->csr_base + RTC_CLR); + readl(pdata->csr_base + RTC_CLR); /* Force a barrier */ + + return 0; +} + +static int xgene_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm) +{ + struct xgene_rtc_dev *pdata = dev_get_drvdata(dev); + + rtc_time_to_tm(pdata->alarm_time, &alrm->time); + alrm->enabled = readl(pdata->csr_base + RTC_CCR) & RTC_CCR_IE; + + return 0; +} + +static int xgene_rtc_alarm_irq_enable(struct device *dev, u32 enabled) +{ + struct xgene_rtc_dev *pdata = dev_get_drvdata(dev); + u32 ccr; + + ccr = readl(pdata->csr_base + RTC_CCR); + if (enabled) { + ccr &= ~RTC_CCR_MASK; + ccr |= RTC_CCR_IE; + } else { + ccr &= ~RTC_CCR_IE; + ccr |= RTC_CCR_MASK; + } + writel(ccr, pdata->csr_base + RTC_CCR); + + return 0; +} + +static int xgene_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm) +{ + struct xgene_rtc_dev *pdata = dev_get_drvdata(dev); + unsigned long rtc_time; + unsigned long alarm_time; + + rtc_time = readl(pdata->csr_base + RTC_CCVR); + rtc_tm_to_time(&alrm->time, &alarm_time); + + pdata->alarm_time = alarm_time; + writel((u32) pdata->alarm_time, pdata->csr_base + RTC_CMR); + + xgene_rtc_alarm_irq_enable(dev, alrm->enabled); + + return 0; +} + +static const struct rtc_class_ops xgene_rtc_ops = { + .read_time = xgene_rtc_read_time, + .set_mmss = xgene_rtc_set_mmss, + .read_alarm = xgene_rtc_read_alarm, + .set_alarm = xgene_rtc_set_alarm, + .alarm_irq_enable = xgene_rtc_alarm_irq_enable, +}; + +static irqreturn_t xgene_rtc_interrupt(int irq, void *id) +{ + struct xgene_rtc_dev *pdata = (struct xgene_rtc_dev *) id; + + /* Check if interrupt asserted */ + if (!(readl(pdata->csr_base + RTC_STAT) & RTC_STAT_BIT)) + return IRQ_NONE; + + /* Clear interrupt */ + readl(pdata->csr_base + RTC_EOI); + + rtc_update_irq(pdata->rtc, 1, RTC_IRQF | RTC_AF); + + return IRQ_HANDLED; +} + +static int xgene_rtc_probe(struct platform_device *pdev) +{ + struct xgene_rtc_dev *pdata; + struct resource *res; + int ret; + int irq; + + pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL); + if (!pdata) + return -ENOMEM; + platform_set_drvdata(pdev, pdata); + pdata->dev = &pdev->dev; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + pdata->csr_base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(pdata->csr_base)) + return PTR_ERR(pdata->csr_base); + + irq = platform_get_irq(pdev, 0); + if (irq < 0) { + dev_err(&pdev->dev, "No IRQ resource\n"); + return irq; + } + ret = devm_request_irq(&pdev->dev, irq, xgene_rtc_interrupt, 0, + dev_name(&pdev->dev), pdata); + if (ret) { + dev_err(&pdev->dev, "Could not request IRQ\n"); + return ret; + } + + pdata->clk = devm_clk_get(&pdev->dev, NULL); + if (IS_ERR(pdata->clk)) { + dev_err(&pdev->dev, "Couldn't get the clock for RTC\n"); + return -ENODEV; + } + clk_prepare_enable(pdata->clk); + + /* Turn on the clock and the crystal */ + writel(RTC_CCR_EN, pdata->csr_base + RTC_CCR); + + device_init_wakeup(&pdev->dev, 1); + + pdata->rtc = devm_rtc_device_register(&pdev->dev, pdev->name, + &xgene_rtc_ops, THIS_MODULE); + if (IS_ERR(pdata->rtc)) { + clk_disable_unprepare(pdata->clk); + return PTR_ERR(pdata->rtc); + } + + /* HW does not support update faster than 1 seconds */ + pdata->rtc->uie_unsupported = 1; + + return 0; +} + +static int xgene_rtc_remove(struct platform_device *pdev) +{ + struct xgene_rtc_dev *pdata = platform_get_drvdata(pdev); + + xgene_rtc_alarm_irq_enable(&pdev->dev, 0); + device_init_wakeup(&pdev->dev, 0); + clk_disable_unprepare(pdata->clk); + return 0; +} + +#ifdef CONFIG_PM_SLEEP +static int xgene_rtc_suspend(struct device *dev) +{ + struct platform_device *pdev = to_platform_device(dev); + struct xgene_rtc_dev *pdata = platform_get_drvdata(pdev); + int irq; + + irq = platform_get_irq(pdev, 0); + if (device_may_wakeup(&pdev->dev)) { + if (!enable_irq_wake(irq)) + pdata->irq_wake = 1; + } else { + xgene_rtc_alarm_irq_enable(dev, 0); + clk_disable(pdata->clk); + } + + return 0; +} + +static int xgene_rtc_resume(struct device *dev) +{ + struct platform_device *pdev = to_platform_device(dev); + struct xgene_rtc_dev *pdata = platform_get_drvdata(pdev); + int irq; + + irq = platform_get_irq(pdev, 0); + if (device_may_wakeup(&pdev->dev)) { + if (pdata->irq_wake) { + disable_irq_wake(irq); + pdata->irq_wake = 0; + } + } else { + clk_enable(pdata->clk); + xgene_rtc_alarm_irq_enable(dev, 1); + } + + return 0; +} +#endif + +static SIMPLE_DEV_PM_OPS(xgene_rtc_pm_ops, xgene_rtc_suspend, xgene_rtc_resume); + +#ifdef CONFIG_OF +static const struct of_device_id xgene_rtc_of_match[] = { + {.compatible = "apm,xgene-rtc" }, + { } +}; +MODULE_DEVICE_TABLE(of, xgene_rtc_of_match); +#endif + +static struct platform_driver xgene_rtc_driver = { + .probe = xgene_rtc_probe, + .remove = xgene_rtc_remove, + .driver = { + .owner = THIS_MODULE, + .name = "xgene-rtc", + .pm = &xgene_rtc_pm_ops, + .of_match_table = of_match_ptr(xgene_rtc_of_match), + }, +}; + +module_platform_driver(xgene_rtc_driver); + +MODULE_DESCRIPTION("APM X-Gene SoC RTC driver"); +MODULE_AUTHOR("Rameshwar Sahu "); +MODULE_LICENSE("GPL"); --- linux-3.13.0.orig/drivers/s390/char/con3215.c +++ linux-3.13.0/drivers/s390/char/con3215.c @@ -922,7 +922,7 @@ raw3215_freelist = req; } - cdev = ccw_device_probe_console(); + cdev = ccw_device_probe_console(&raw3215_ccw_driver); if (IS_ERR(cdev)) return -ENODEV; --- linux-3.13.0.orig/drivers/s390/char/con3270.c +++ linux-3.13.0/drivers/s390/char/con3270.c @@ -576,7 +576,6 @@ static int __init con3270_init(void) { - struct ccw_device *cdev; struct raw3270 *rp; void *cbuf; int i; @@ -591,10 +590,7 @@ cpcmd("TERM AUTOCR OFF", NULL, 0, NULL); } - cdev = ccw_device_probe_console(); - if (IS_ERR(cdev)) - return -ENODEV; - rp = raw3270_setup_console(cdev); + rp = raw3270_setup_console(); if (IS_ERR(rp)) return PTR_ERR(rp); --- linux-3.13.0.orig/drivers/s390/char/raw3270.c +++ linux-3.13.0/drivers/s390/char/raw3270.c @@ -776,16 +776,24 @@ } #ifdef CONFIG_TN3270_CONSOLE +/* Tentative definition - see below for actual definition. */ +static struct ccw_driver raw3270_ccw_driver; + /* * Setup 3270 device configured as console. */ -struct raw3270 __init *raw3270_setup_console(struct ccw_device *cdev) +struct raw3270 __init *raw3270_setup_console(void) { + struct ccw_device *cdev; unsigned long flags; struct raw3270 *rp; char *ascebc; int rc; + cdev = ccw_device_probe_console(&raw3270_ccw_driver); + if (IS_ERR(cdev)) + return ERR_CAST(cdev); + rp = kzalloc(sizeof(struct raw3270), GFP_KERNEL | GFP_DMA); ascebc = kzalloc(256, GFP_KERNEL); rc = raw3270_setup_device(cdev, rp, ascebc); --- linux-3.13.0.orig/drivers/s390/char/raw3270.h +++ linux-3.13.0/drivers/s390/char/raw3270.h @@ -190,7 +190,7 @@ wake_up(&raw3270_wait_queue); } -struct raw3270 *raw3270_setup_console(struct ccw_device *cdev); +struct raw3270 *raw3270_setup_console(void); void raw3270_wait_cons_dev(struct raw3270 *); /* Notifier for device addition/removal */ --- linux-3.13.0.orig/drivers/s390/cio/chsc.c +++ linux-3.13.0/drivers/s390/cio/chsc.c @@ -560,18 +560,27 @@ static void chsc_process_event_information(struct chsc_sei *sei, u64 ntsm) { - do { + static int ntsm_unsupported; + + while (true) { memset(sei, 0, sizeof(*sei)); sei->request.length = 0x0010; sei->request.code = 0x000e; - sei->ntsm = ntsm; + if (!ntsm_unsupported) + sei->ntsm = ntsm; if (chsc(sei)) break; if (sei->response.code != 0x0001) { - CIO_CRW_EVENT(2, "chsc: sei failed (rc=%04x)\n", - sei->response.code); + CIO_CRW_EVENT(2, "chsc: sei failed (rc=%04x, ntsm=%llx)\n", + sei->response.code, sei->ntsm); + + if (sei->response.code == 3 && sei->ntsm) { + /* Fallback for old firmware. */ + ntsm_unsupported = 1; + continue; + } break; } @@ -587,7 +596,10 @@ CIO_CRW_EVENT(2, "chsc: unhandled nt: %d\n", sei->nt); break; } - } while (sei->u.nt0_area.flags & 0x80); + + if (!(sei->u.nt0_area.flags & 0x80)) + break; + } } /* --- linux-3.13.0.orig/drivers/s390/cio/device.c +++ linux-3.13.0/drivers/s390/cio/device.c @@ -1610,7 +1610,7 @@ return rc; } -struct ccw_device *ccw_device_probe_console(void) +struct ccw_device *ccw_device_probe_console(struct ccw_driver *drv) { struct io_subchannel_private *io_priv; struct ccw_device *cdev; @@ -1632,6 +1632,7 @@ kfree(io_priv); return cdev; } + cdev->drv = drv; set_io_private(sch, io_priv); ret = ccw_device_console_enable(cdev, sch); if (ret) { --- linux-3.13.0.orig/drivers/sbus/char/bbc_envctrl.c +++ linux-3.13.0/drivers/sbus/char/bbc_envctrl.c @@ -452,6 +452,9 @@ if (!tp) return; + INIT_LIST_HEAD(&tp->bp_list); + INIT_LIST_HEAD(&tp->glob_list); + tp->client = bbc_i2c_attach(bp, op); if (!tp->client) { kfree(tp); @@ -497,6 +500,9 @@ if (!fp) return; + INIT_LIST_HEAD(&fp->bp_list); + INIT_LIST_HEAD(&fp->glob_list); + fp->client = bbc_i2c_attach(bp, op); if (!fp->client) { kfree(fp); --- linux-3.13.0.orig/drivers/sbus/char/bbc_i2c.c +++ linux-3.13.0/drivers/sbus/char/bbc_i2c.c @@ -301,13 +301,18 @@ if (!bp) return NULL; + INIT_LIST_HEAD(&bp->temps); + INIT_LIST_HEAD(&bp->fans); + bp->i2c_control_regs = of_ioremap(&op->resource[0], 0, 0x2, "bbc_i2c_regs"); if (!bp->i2c_control_regs) goto fail; - bp->i2c_bussel_reg = of_ioremap(&op->resource[1], 0, 0x1, "bbc_i2c_bussel"); - if (!bp->i2c_bussel_reg) - goto fail; + if (op->num_resources == 2) { + bp->i2c_bussel_reg = of_ioremap(&op->resource[1], 0, 0x1, "bbc_i2c_bussel"); + if (!bp->i2c_bussel_reg) + goto fail; + } bp->waiting = 0; init_waitqueue_head(&bp->wq); --- linux-3.13.0.orig/drivers/scsi/NCR5380.c +++ linux-3.13.0/drivers/scsi/NCR5380.c @@ -2655,14 +2655,14 @@ * * Purpose : abort a command * - * Inputs : cmd - the Scsi_Cmnd to abort, code - code to set the - * host byte of the result field to, if zero DID_ABORTED is + * Inputs : cmd - the Scsi_Cmnd to abort, code - code to set the + * host byte of the result field to, if zero DID_ABORTED is * used. * - * Returns : 0 - success, -1 on failure. + * Returns : SUCCESS - success, FAILED on failure. * - * XXX - there is no way to abort the command that is currently - * connected, you have to wait for it to complete. If this is + * XXX - there is no way to abort the command that is currently + * connected, you have to wait for it to complete. If this is * a problem, we could implement longjmp() / setjmp(), setjmp() * called where the loop started in NCR5380_main(). * @@ -2712,7 +2712,7 @@ * aborted flag and get back into our main loop. */ - return 0; + return SUCCESS; } #endif --- linux-3.13.0.orig/drivers/scsi/aha1740.c +++ linux-3.13.0/drivers/scsi/aha1740.c @@ -531,7 +531,7 @@ * quiet as possible... */ - return 0; + return SUCCESS; } static struct scsi_host_template aha1740_template = { --- linux-3.13.0.orig/drivers/scsi/atari_NCR5380.c +++ linux-3.13.0/drivers/scsi/atari_NCR5380.c @@ -2613,7 +2613,7 @@ * host byte of the result field to, if zero DID_ABORTED is * used. * - * Returns : 0 - success, -1 on failure. + * Returns : SUCCESS - success, FAILED on failure. * * XXX - there is no way to abort the command that is currently * connected, you have to wait for it to complete. If this is --- linux-3.13.0.orig/drivers/scsi/be2iscsi/be_mgmt.c +++ linux-3.13.0/drivers/scsi/be2iscsi/be_mgmt.c @@ -897,17 +897,20 @@ if (ip_action == IP_ACTION_ADD) { memcpy(req->ip_params.ip_record.ip_addr.addr, ip_param->value, - ip_param->len); + sizeof(req->ip_params.ip_record.ip_addr.addr)); if (subnet_param) memcpy(req->ip_params.ip_record.ip_addr.subnet_mask, - subnet_param->value, subnet_param->len); + subnet_param->value, + sizeof(req->ip_params.ip_record.ip_addr.subnet_mask)); } else { memcpy(req->ip_params.ip_record.ip_addr.addr, - if_info->ip_addr.addr, ip_param->len); + if_info->ip_addr.addr, + sizeof(req->ip_params.ip_record.ip_addr.addr)); memcpy(req->ip_params.ip_record.ip_addr.subnet_mask, - if_info->ip_addr.subnet_mask, ip_param->len); + if_info->ip_addr.subnet_mask, + sizeof(req->ip_params.ip_record.ip_addr.subnet_mask)); } rc = mgmt_exec_nonemb_cmd(phba, &nonemb_cmd, NULL, 0); @@ -935,7 +938,7 @@ req->action = gtway_action; req->ip_addr.ip_type = BE2_IPV4; - memcpy(req->ip_addr.addr, gt_addr, param_len); + memcpy(req->ip_addr.addr, gt_addr, sizeof(req->ip_addr.addr)); return mgmt_exec_nonemb_cmd(phba, &nonemb_cmd, NULL, 0); } --- linux-3.13.0.orig/drivers/scsi/bfa/bfa_ioc.h +++ linux-3.13.0/drivers/scsi/bfa/bfa_ioc.h @@ -72,7 +72,7 @@ } while (0) #define bfa_swap_words(_x) ( \ - ((_x) << 32) | ((_x) >> 32)) + ((u64)(_x) << 32) | ((u64)(_x) >> 32)) #ifdef __BIG_ENDIAN #define bfa_sge_to_be(_x) --- linux-3.13.0.orig/drivers/scsi/bfa/bfad.c +++ linux-3.13.0/drivers/scsi/bfa/bfad.c @@ -1802,7 +1802,7 @@ static u32 * bfad_load_fwimg(struct pci_dev *pdev) { - if (pdev->device == BFA_PCI_DEVICE_ID_CT2) { + if (bfa_asic_id_ct2(pdev->device)) { if (bfi_image_ct2_size == 0) bfad_read_firmware(pdev, &bfi_image_ct2, &bfi_image_ct2_size, BFAD_FW_FILE_CT2); @@ -1812,12 +1812,14 @@ bfad_read_firmware(pdev, &bfi_image_ct, &bfi_image_ct_size, BFAD_FW_FILE_CT); return bfi_image_ct; - } else { + } else if (bfa_asic_id_cb(pdev->device)) { if (bfi_image_cb_size == 0) bfad_read_firmware(pdev, &bfi_image_cb, &bfi_image_cb_size, BFAD_FW_FILE_CB); return bfi_image_cb; } + + return NULL; } static void --- linux-3.13.0.orig/drivers/scsi/bnx2fc/bnx2fc_fcoe.c +++ linux-3.13.0/drivers/scsi/bnx2fc/bnx2fc_fcoe.c @@ -411,6 +411,7 @@ struct fc_frame_header *fh; struct fcoe_rcv_info *fr; struct fcoe_percpu_s *bg; + struct sk_buff *tmp_skb; unsigned short oxid; interface = container_of(ptype, struct bnx2fc_interface, @@ -423,6 +424,12 @@ goto err; } + tmp_skb = skb_share_check(skb, GFP_ATOMIC); + if (!tmp_skb) + goto err; + + skb = tmp_skb; + if (unlikely(eth_hdr(skb)->h_proto != htons(ETH_P_FCOE))) { printk(KERN_ERR PFX "bnx2fc_rcv: Wrong FC type frame\n"); goto err; --- linux-3.13.0.orig/drivers/scsi/esas2r/esas2r_main.c +++ linux-3.13.0/drivers/scsi/esas2r/esas2r_main.c @@ -1057,7 +1057,7 @@ cmd->scsi_done(cmd); - return 0; + return SUCCESS; } spin_lock_irqsave(&a->queue_lock, flags); --- linux-3.13.0.orig/drivers/scsi/hpsa.c +++ linux-3.13.0/drivers/scsi/hpsa.c @@ -117,9 +117,15 @@ {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21C3}, {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21C4}, {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21C5}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21C6}, {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21C7}, {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21C8}, {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21C9}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21CA}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21CB}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21CC}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21CD}, + {PCI_VENDOR_ID_HP, PCI_DEVICE_ID_HP_CISSI, 0x103C, 0x21CE}, {PCI_VENDOR_ID_HP, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_RAID << 8, 0xffff << 8, 0}, {0,} @@ -163,9 +169,15 @@ {0x21C3103C, "Smart Array", &SA5_access}, {0x21C4103C, "Smart Array", &SA5_access}, {0x21C5103C, "Smart Array", &SA5_access}, + {0x21C6103C, "Smart Array", &SA5_access}, {0x21C7103C, "Smart Array", &SA5_access}, {0x21C8103C, "Smart Array", &SA5_access}, {0x21C9103C, "Smart Array", &SA5_access}, + {0x21CA103C, "Smart Array", &SA5_access}, + {0x21CB103C, "Smart Array", &SA5_access}, + {0x21CC103C, "Smart Array", &SA5_access}, + {0x21CD103C, "Smart Array", &SA5_access}, + {0x21CE103C, "Smart Array", &SA5_access}, {0xFFFF103C, "Unknown Smart Array", &SA5_access}, }; @@ -3139,7 +3151,7 @@ } if (ioc->Request.Type.Direction == XFER_WRITE) { if (copy_from_user(buff[sg_used], data_ptr, sz)) { - status = -ENOMEM; + status = -EFAULT; goto cleanup1; } } else --- linux-3.13.0.orig/drivers/scsi/ibmvscsi/ibmvscsi.c +++ linux-3.13.0/drivers/scsi/ibmvscsi/ibmvscsi.c @@ -185,6 +185,11 @@ if (crq->valid & 0x80) { if (++queue->cur == queue->size) queue->cur = 0; + + /* Ensure the read of the valid bit occurs before reading any + * other bits of the CRQ entry + */ + rmb(); } else crq = NULL; spin_unlock_irqrestore(&queue->lock, flags); @@ -203,6 +208,11 @@ { struct vio_dev *vdev = to_vio_dev(hostdata->dev); + /* + * Ensure the command buffer is flushed to memory before handing it + * over to the VIOS to prevent it from fetching any stale data. + */ + mb(); return plpar_hcall_norets(H_SEND_CRQ, vdev->unit_address, word1, word2); } @@ -797,7 +807,8 @@ evt->hostdata->dev); if (evt->cmnd_done) evt->cmnd_done(evt->cmnd); - } else if (evt->done) + } else if (evt->done && evt->crq.format != VIOSRP_MAD_FORMAT && + evt->iu.srp.login_req.opcode != SRP_LOGIN_REQ) evt->done(evt); free_event_struct(&evt->hostdata->pool, evt); spin_lock_irqsave(hostdata->host->host_lock, flags); --- linux-3.13.0.orig/drivers/scsi/isci/host.h +++ linux-3.13.0/drivers/scsi/isci/host.h @@ -311,9 +311,8 @@ } #define for_each_isci_host(id, ihost, pdev) \ - for (id = 0, ihost = to_pci_info(pdev)->hosts[id]; \ - id < ARRAY_SIZE(to_pci_info(pdev)->hosts) && ihost; \ - ihost = to_pci_info(pdev)->hosts[++id]) + for (id = 0; id < SCI_MAX_CONTROLLERS && \ + (ihost = to_pci_info(pdev)->hosts[id]); id++) static inline void wait_for_start(struct isci_host *ihost) { --- linux-3.13.0.orig/drivers/scsi/isci/port_config.c +++ linux-3.13.0/drivers/scsi/isci/port_config.c @@ -615,13 +615,6 @@ SCIC_SDS_APC_WAIT_LINK_UP_NOTIFICATION); } else { /* the phy is already the part of the port */ - u32 port_state = iport->sm.current_state_id; - - /* if the PORT'S state is resetting then the link up is from - * port hard reset in this case, we need to tell the port - * that link up is recieved - */ - BUG_ON(port_state != SCI_PORT_RESETTING); port_agent->phy_ready_mask |= 1 << phy_index; sci_port_link_up(iport, iphy); } --- linux-3.13.0.orig/drivers/scsi/isci/task.c +++ linux-3.13.0/drivers/scsi/isci/task.c @@ -801,7 +801,7 @@ /* XXX: need to cleanup any ireqs targeting this * domain_device */ - ret = TMF_RESP_FUNC_COMPLETE; + ret = -ENODEV; goto out; } --- linux-3.13.0.orig/drivers/scsi/libiscsi.c +++ linux-3.13.0/drivers/scsi/libiscsi.c @@ -717,11 +717,21 @@ return NULL; } + if (data_size > ISCSI_DEF_MAX_RECV_SEG_LEN) { + iscsi_conn_printk(KERN_ERR, conn, "Invalid buffer len of %u for login task. Max len is %u\n", data_size, ISCSI_DEF_MAX_RECV_SEG_LEN); + return NULL; + } + task = conn->login_task; } else { if (session->state != ISCSI_STATE_LOGGED_IN) return NULL; + if (data_size != 0) { + iscsi_conn_printk(KERN_ERR, conn, "Can not send data buffer of len %u for op 0x%x\n", data_size, opcode); + return NULL; + } + BUG_ON(conn->c_stage == ISCSI_CONN_INITIAL_STAGE); BUG_ON(conn->c_stage == ISCSI_CONN_STOPPED); --- linux-3.13.0.orig/drivers/scsi/megaraid.c +++ linux-3.13.0/drivers/scsi/megaraid.c @@ -1967,7 +1967,7 @@ cmd->device->id, cmd->device->lun); if(list_empty(&adapter->pending_list)) - return FALSE; + return FAILED; list_for_each_safe(pos, next, &adapter->pending_list) { @@ -1990,7 +1990,7 @@ (aor==SCB_ABORT) ? "ABORTING":"RESET", scb->idx); - return FALSE; + return FAILED; } else { @@ -2015,12 +2015,12 @@ list_add_tail(SCSI_LIST(cmd), &adapter->completed_list); - return TRUE; + return SUCCESS; } } } - return FALSE; + return FAILED; } static inline int --- linux-3.13.0.orig/drivers/scsi/megaraid/megaraid_sas.h +++ linux-3.13.0/drivers/scsi/megaraid/megaraid_sas.h @@ -1527,7 +1527,7 @@ u32 *reply_queue; dma_addr_t reply_queue_h; - unsigned long base_addr; + resource_size_t base_addr; struct megasas_register_set __iomem *reg_set; u32 *reply_post_host_index_addr[MR_MAX_MSIX_REG_ARRAY]; struct megasas_pd_list pd_list[MEGASAS_MAX_PD]; --- linux-3.13.0.orig/drivers/scsi/megaraid/megaraid_sas_base.c +++ linux-3.13.0/drivers/scsi/megaraid/megaraid_sas_base.c @@ -953,7 +953,7 @@ cpu_to_le32(upper_32_bits(cmd_to_abort->frame_phys_addr)); cmd->sync_cmd = 1; - cmd->cmd_status = 0xFF; + cmd->cmd_status = ENODATA; instance->instancet->issue_dcmd(instance, cmd); --- linux-3.13.0.orig/drivers/scsi/mpt2sas/mpt2sas_scsih.c +++ linux-3.13.0/drivers/scsi/mpt2sas/mpt2sas_scsih.c @@ -8293,7 +8293,6 @@ mpt2sas_base_free_resources(ioc); pci_save_state(pdev); - pci_disable_device(pdev); pci_set_power_state(pdev, device_state); return 0; } --- linux-3.13.0.orig/drivers/scsi/mpt2sas/mpt2sas_transport.c +++ linux-3.13.0/drivers/scsi/mpt2sas/mpt2sas_transport.c @@ -1006,12 +1006,9 @@ &mpt2sas_phy->remote_identify); _transport_add_phy_to_an_existing_port(ioc, sas_node, mpt2sas_phy, mpt2sas_phy->remote_identify.sas_address); - } else { + } else memset(&mpt2sas_phy->remote_identify, 0 , sizeof(struct sas_identify)); - _transport_del_phy_from_an_existing_port(ioc, sas_node, - mpt2sas_phy); - } if (mpt2sas_phy->phy) mpt2sas_phy->phy->negotiated_linkrate = --- linux-3.13.0.orig/drivers/scsi/mpt3sas/mpt3sas_transport.c +++ linux-3.13.0/drivers/scsi/mpt3sas/mpt3sas_transport.c @@ -1003,12 +1003,9 @@ &mpt3sas_phy->remote_identify); _transport_add_phy_to_an_existing_port(ioc, sas_node, mpt3sas_phy, mpt3sas_phy->remote_identify.sas_address); - } else { + } else memset(&mpt3sas_phy->remote_identify, 0 , sizeof(struct sas_identify)); - _transport_del_phy_from_an_existing_port(ioc, sas_node, - mpt3sas_phy); - } if (mpt3sas_phy->phy) mpt3sas_phy->phy->negotiated_linkrate = --- linux-3.13.0.orig/drivers/scsi/qla2xxx/qla_def.h +++ linux-3.13.0/drivers/scsi/qla2xxx/qla_def.h @@ -2993,8 +2993,7 @@ IS_QLA82XX(ha) || IS_QLA83XX(ha) || \ IS_QLA8044(ha)) #define IS_MSIX_NACK_CAPABLE(ha) (IS_QLA81XX(ha) || IS_QLA83XX(ha)) -#define IS_NOPOLLING_TYPE(ha) ((IS_QLA25XX(ha) || IS_QLA81XX(ha) || \ - IS_QLA83XX(ha)) && (ha)->flags.msix_enabled) +#define IS_NOPOLLING_TYPE(ha) (IS_QLA81XX(ha) && (ha)->flags.msix_enabled) #define IS_FAC_REQUIRED(ha) (IS_QLA81XX(ha) || IS_QLA83XX(ha)) #define IS_NOCACHE_VPD_TYPE(ha) (IS_QLA81XX(ha) || IS_QLA83XX(ha)) #define IS_ALOGIO_CAPABLE(ha) (IS_QLA23XX(ha) || IS_FWI2_CAPABLE(ha)) --- linux-3.13.0.orig/drivers/scsi/qla2xxx/qla_isr.c +++ linux-3.13.0/drivers/scsi/qla2xxx/qla_isr.c @@ -2829,6 +2829,7 @@ qla24xx_enable_msix(struct qla_hw_data *ha, struct rsp_que *rsp) { #define MIN_MSIX_COUNT 2 +#define ATIO_VECTOR 2 int i, ret; struct msix_entry *entries; struct qla_msix_entry *qentry; @@ -2885,34 +2886,47 @@ } /* Enable MSI-X vectors for the base queue */ - for (i = 0; i < ha->msix_count; i++) { + for (i = 0; i < 2; i++) { qentry = &ha->msix_entries[i]; - if (QLA_TGT_MODE_ENABLED() && IS_ATIO_MSIX_CAPABLE(ha)) { - ret = request_irq(qentry->vector, - qla83xx_msix_entries[i].handler, - 0, qla83xx_msix_entries[i].name, rsp); - } else if (IS_P3P_TYPE(ha)) { + if (IS_P3P_TYPE(ha)) ret = request_irq(qentry->vector, qla82xx_msix_entries[i].handler, 0, qla82xx_msix_entries[i].name, rsp); - } else { + else ret = request_irq(qentry->vector, msix_entries[i].handler, 0, msix_entries[i].name, rsp); - } - if (ret) { - ql_log(ql_log_fatal, vha, 0x00cb, - "MSI-X: unable to register handler -- %x/%d.\n", - qentry->vector, ret); - qla24xx_disable_msix(ha); - ha->mqenable = 0; - goto msix_out; - } + if (ret) + goto msix_register_fail; qentry->have_irq = 1; qentry->rsp = rsp; rsp->msix = qentry; } + /* + * If target mode is enable, also request the vector for the ATIO + * queue. + */ + if (QLA_TGT_MODE_ENABLED() && IS_ATIO_MSIX_CAPABLE(ha)) { + qentry = &ha->msix_entries[ATIO_VECTOR]; + ret = request_irq(qentry->vector, + qla83xx_msix_entries[ATIO_VECTOR].handler, + 0, qla83xx_msix_entries[ATIO_VECTOR].name, rsp); + qentry->have_irq = 1; + qentry->rsp = rsp; + rsp->msix = qentry; + } + +msix_register_fail: + if (ret) { + ql_log(ql_log_fatal, vha, 0x00cb, + "MSI-X: unable to register handler -- %x/%d.\n", + qentry->vector, ret); + qla24xx_disable_msix(ha); + ha->mqenable = 0; + goto msix_out; + } + /* Enable MSI-X vector for response queue update for queue 0 */ if (IS_QLA83XX(ha)) { if (ha->msixbase && ha->mqiobase && --- linux-3.13.0.orig/drivers/scsi/qla2xxx/qla_target.c +++ linux-3.13.0/drivers/scsi/qla2xxx/qla_target.c @@ -1361,12 +1361,10 @@ static int qlt_check_reserve_free_req(struct scsi_qla_host *vha, uint32_t req_cnt) { - struct qla_hw_data *ha = vha->hw; - device_reg_t __iomem *reg = ha->iobase; uint32_t cnt; if (vha->req->cnt < (req_cnt + 2)) { - cnt = (uint16_t)RD_REG_DWORD(®->isp24.req_q_out); + cnt = (uint16_t)RD_REG_DWORD(vha->req->req_q_out); ql_dbg(ql_dbg_tgt, vha, 0xe00a, "Request ring circled: cnt=%d, vha->->ring_index=%d, " @@ -3186,7 +3184,8 @@ ql_dbg(ql_dbg_tgt_mgt, vha, 0xf02c, "SRR cmd %p (se_cmd %p, tag %d, op %x), " "sg_cnt=%d, offset=%d", cmd, &cmd->se_cmd, cmd->tag, - se_cmd->t_task_cdb[0], cmd->sg_cnt, cmd->offset); + se_cmd->t_task_cdb ? se_cmd->t_task_cdb[0] : 0, + cmd->sg_cnt, cmd->offset); qlt_handle_srr(vha, sctio, imm); --- linux-3.13.0.orig/drivers/scsi/qla2xxx/tcm_qla2xxx.c +++ linux-3.13.0/drivers/scsi/qla2xxx/tcm_qla2xxx.c @@ -740,7 +740,16 @@ pr_debug("fc_rport domain: port_id 0x%06x\n", nacl->nport_id); node = btree_remove32(&lport->lport_fcport_map, nacl->nport_id); - WARN_ON(node && (node != se_nacl)); + if (WARN_ON(node && (node != se_nacl))) { + /* + * The nacl no longer matches what we think it should be. + * Most likely a new dynamic acl has been added while + * someone dropped the hardware lock. It clearly is a + * bug elsewhere, but this bit can't make things worse. + */ + btree_insert32(&lport->lport_fcport_map, nacl->nport_id, + node, GFP_ATOMIC); + } pr_debug("Removed from fcport_map: %p for WWNN: 0x%016LX, port_id: 0x%06x\n", se_nacl, nacl->nport_wwnn, nacl->nport_id); --- linux-3.13.0.orig/drivers/scsi/qla4xxx/ql4_os.c +++ linux-3.13.0/drivers/scsi/qla4xxx/ql4_os.c @@ -802,6 +802,7 @@ int type; int rem = len; int rc = 0; + int size; memset(&chap_rec, 0, sizeof(chap_rec)); @@ -816,12 +817,14 @@ chap_rec.chap_type = param_info->value[0]; break; case ISCSI_CHAP_PARAM_USERNAME: - memcpy(chap_rec.username, param_info->value, - param_info->len); + size = min_t(size_t, sizeof(chap_rec.username), + param_info->len); + memcpy(chap_rec.username, param_info->value, size); break; case ISCSI_CHAP_PARAM_PASSWORD: - memcpy(chap_rec.password, param_info->value, - param_info->len); + size = min_t(size_t, sizeof(chap_rec.password), + param_info->len); + memcpy(chap_rec.password, param_info->value, size); break; case ISCSI_CHAP_PARAM_PASSWORD_LEN: chap_rec.password_length = param_info->value[0]; --- linux-3.13.0.orig/drivers/scsi/scsi_devinfo.c +++ linux-3.13.0/drivers/scsi/scsi_devinfo.c @@ -202,6 +202,7 @@ {"IOMEGA", "Io20S *F", NULL, BLIST_KEY}, {"INSITE", "Floptical F*8I", NULL, BLIST_KEY}, {"INSITE", "I325VM", NULL, BLIST_KEY}, + {"Intel", "Multi-Flex", NULL, BLIST_NO_RSOC}, {"iRiver", "iFP Mass Driver", NULL, BLIST_NOT_LOCKABLE | BLIST_INQUIRY_36}, {"LASOUND", "CDX7405", "3.10", BLIST_MAX5LUN | BLIST_SINGLELUN}, {"MATSHITA", "PD-1", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, @@ -210,6 +211,7 @@ {"Medion", "Flash XL MMC/SD", "2.6D", BLIST_FORCELUN}, {"MegaRAID", "LD", NULL, BLIST_FORCELUN}, {"MICROP", "4110", NULL, BLIST_NOTQ}, + {"MSFT", "Virtual HD", NULL, BLIST_NO_RSOC}, {"MYLEX", "DACARMRB", "*", BLIST_REPORTLUN2}, {"nCipher", "Fastness Crypto", NULL, BLIST_FORCELUN}, {"NAKAMICH", "MJ-4.8S", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, @@ -222,6 +224,7 @@ {"PIONEER", "CD-ROM DRM-602X", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, {"PIONEER", "CD-ROM DRM-604X", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, {"PIONEER", "CD-ROM DRM-624X", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, + {"Promise", "VTrak E610f", NULL, BLIST_SPARSELUN | BLIST_NO_RSOC}, {"Promise", "", NULL, BLIST_SPARSELUN}, {"QUANTUM", "XP34301", "1071", BLIST_NOTQ}, {"REGAL", "CDC-4X", NULL, BLIST_MAX5LUN | BLIST_SINGLELUN}, --- linux-3.13.0.orig/drivers/scsi/scsi_error.c +++ linux-3.13.0/drivers/scsi/scsi_error.c @@ -161,7 +161,7 @@ else if (host->hostt->eh_timed_out) rtn = host->hostt->eh_timed_out(scmd); - scmd->result |= DID_TIME_OUT << 16; + set_host_byte(scmd, DID_TIME_OUT); if (unlikely(rtn == BLK_EH_NOT_HANDLED && !scsi_eh_scmd_add(scmd, SCSI_EH_CANCEL_CMD))) @@ -1860,8 +1860,10 @@ * is no point trying to lock the door of an off-line device. */ shost_for_each_device(sdev, shost) { - if (scsi_device_online(sdev) && sdev->locked) + if (scsi_device_online(sdev) && sdev->was_reset && sdev->locked) { scsi_eh_lock_door(sdev); + sdev->was_reset = 0; + } } /* --- linux-3.13.0.orig/drivers/scsi/scsi_lib.c +++ linux-3.13.0/drivers/scsi/scsi_lib.c @@ -831,6 +831,14 @@ scsi_next_command(cmd); return; } + } else if (blk_rq_bytes(req) == 0 && result && !sense_deferred) { + /* + * Certain non BLOCK_PC requests are commands that don't + * actually transfer anything (FLUSH), so cannot use + * good_bytes != blk_rq_bytes(req) as the signal for an error. + * This sets the error explicitly for the problem case. + */ + error = __scsi_error_from_host_byte(cmd, result); } /* no bidi support for !REQ_TYPE_BLOCK_PC yet */ @@ -1684,7 +1692,7 @@ host_dev = scsi_get_device(shost); if (host_dev && host_dev->dma_mask) - bounce_limit = dma_max_pfn(host_dev) << PAGE_SHIFT; + bounce_limit = (u64)dma_max_pfn(host_dev) << PAGE_SHIFT; return bounce_limit; } --- linux-3.13.0.orig/drivers/scsi/scsi_netlink.c +++ linux-3.13.0/drivers/scsi/scsi_netlink.c @@ -77,7 +77,7 @@ goto next_msg; } - if (!capable(CAP_SYS_ADMIN)) { + if (!netlink_capable(skb, CAP_SYS_ADMIN)) { err = -EPERM; goto next_msg; } --- linux-3.13.0.orig/drivers/scsi/scsi_scan.c +++ linux-3.13.0/drivers/scsi/scsi_scan.c @@ -320,6 +320,7 @@ struct Scsi_Host *shost = dev_to_shost(dev->parent); unsigned long flags; + starget->state = STARGET_DEL; transport_destroy_device(dev); spin_lock_irqsave(shost->host_lock, flags); if (shost->hostt->target_destroy) @@ -371,6 +372,37 @@ } /** + * scsi_target_reap_ref_release - remove target from visibility + * @kref: the reap_ref in the target being released + * + * Called on last put of reap_ref, which is the indication that no device + * under this target is visible anymore, so render the target invisible in + * sysfs. Note: we have to be in user context here because the target reaps + * should be done in places where the scsi device visibility is being removed. + */ +static void scsi_target_reap_ref_release(struct kref *kref) +{ + struct scsi_target *starget + = container_of(kref, struct scsi_target, reap_ref); + + /* + * if we get here and the target is still in the CREATED state that + * means it was allocated but never made visible (because a scan + * turned up no LUNs), so don't call device_del() on it. + */ + if (starget->state != STARGET_CREATED) { + transport_remove_device(&starget->dev); + device_del(&starget->dev); + } + scsi_target_destroy(starget); +} + +static void scsi_target_reap_ref_put(struct scsi_target *starget) +{ + kref_put(&starget->reap_ref, scsi_target_reap_ref_release); +} + +/** * scsi_alloc_target - allocate a new or find an existing target * @parent: parent of the target (need not be a scsi host) * @channel: target channel number (zero if no channels) @@ -392,7 +424,7 @@ + shost->transportt->target_size; struct scsi_target *starget; struct scsi_target *found_target; - int error; + int error, ref_got; starget = kzalloc(size, GFP_KERNEL); if (!starget) { @@ -401,7 +433,7 @@ } dev = &starget->dev; device_initialize(dev); - starget->reap_ref = 1; + kref_init(&starget->reap_ref); dev->parent = get_device(parent); dev_set_name(dev, "target%d:%d:%d", shost->host_no, channel, id); dev->bus = &scsi_bus_type; @@ -441,29 +473,36 @@ return starget; found: - found_target->reap_ref++; + /* + * release routine already fired if kref is zero, so if we can still + * take the reference, the target must be alive. If we can't, it must + * be dying and we need to wait for a new target + */ + ref_got = kref_get_unless_zero(&found_target->reap_ref); + spin_unlock_irqrestore(shost->host_lock, flags); - if (found_target->state != STARGET_DEL) { + if (ref_got) { put_device(dev); return found_target; } - /* Unfortunately, we found a dying target; need to - * wait until it's dead before we can get a new one */ + /* + * Unfortunately, we found a dying target; need to wait until it's + * dead before we can get a new one. There is an anomaly here. We + * *should* call scsi_target_reap() to balance the kref_get() of the + * reap_ref above. However, since the target being released, it's + * already invisible and the reap_ref is irrelevant. If we call + * scsi_target_reap() we might spuriously do another device_del() on + * an already invisible target. + */ put_device(&found_target->dev); - flush_scheduled_work(); + /* + * length of time is irrelevant here, we just want to yield the CPU + * for a tick to avoid busy waiting for the target to die. + */ + msleep(1); goto retry; } -static void scsi_target_reap_usercontext(struct work_struct *work) -{ - struct scsi_target *starget = - container_of(work, struct scsi_target, ew.work); - - transport_remove_device(&starget->dev); - device_del(&starget->dev); - scsi_target_destroy(starget); -} - /** * scsi_target_reap - check to see if target is in use and destroy if not * @starget: target to be checked @@ -474,28 +513,13 @@ */ void scsi_target_reap(struct scsi_target *starget) { - struct Scsi_Host *shost = dev_to_shost(starget->dev.parent); - unsigned long flags; - enum scsi_target_state state; - int empty = 0; - - spin_lock_irqsave(shost->host_lock, flags); - state = starget->state; - if (--starget->reap_ref == 0 && list_empty(&starget->devices)) { - empty = 1; - starget->state = STARGET_DEL; - } - spin_unlock_irqrestore(shost->host_lock, flags); - - if (!empty) - return; - - BUG_ON(state == STARGET_DEL); - if (state == STARGET_CREATED) - scsi_target_destroy(starget); - else - execute_in_process_context(scsi_target_reap_usercontext, - &starget->ew); + /* + * serious problem if this triggers: STARGET_DEL is only set in the if + * the reap_ref drops to zero, so we're trying to do another final put + * on an already released kref + */ + BUG_ON(starget->state == STARGET_DEL); + scsi_target_reap_ref_put(starget); } /** @@ -898,6 +922,12 @@ if (*bflags & BLIST_USE_10_BYTE_MS) sdev->use_10_for_ms = 1; + /* some devices don't like REPORT SUPPORTED OPERATION CODES + * and will simply timeout causing sd_mod init to take a very + * very long time */ + if (*bflags & BLIST_NO_RSOC) + sdev->no_report_opcodes = 1; + /* set the device running here so that slave configure * may do I/O */ ret = scsi_device_set_state(sdev, SDEV_RUNNING); @@ -926,7 +956,9 @@ sdev->eh_timeout = SCSI_DEFAULT_EH_TIMEOUT; - if (*bflags & BLIST_SKIP_VPD_PAGES) + if (*bflags & BLIST_TRY_VPD_PAGES) + sdev->try_vpd_pages = 1; + else if (*bflags & BLIST_SKIP_VPD_PAGES) sdev->skip_vpd_pages = 1; transport_configure_device(&sdev->sdev_gendev); @@ -1532,6 +1564,10 @@ } mutex_unlock(&shost->scan_mutex); scsi_autopm_put_target(starget); + /* + * paired with scsi_alloc_target(). Target will be destroyed unless + * scsi_probe_and_add_lun made an underlying device visible + */ scsi_target_reap(starget); put_device(&starget->dev); @@ -1612,8 +1648,10 @@ out_reap: scsi_autopm_put_target(starget); - /* now determine if the target has any children at all - * and if not, nuke it */ + /* + * paired with scsi_alloc_target(): determine if the target has + * any children at all and if not, nuke it + */ scsi_target_reap(starget); put_device(&starget->dev); --- linux-3.13.0.orig/drivers/scsi/scsi_sysfs.c +++ linux-3.13.0/drivers/scsi/scsi_sysfs.c @@ -369,17 +369,14 @@ { struct scsi_device *sdev; struct device *parent; - struct scsi_target *starget; struct list_head *this, *tmp; unsigned long flags; sdev = container_of(work, struct scsi_device, ew.work); parent = sdev->sdev_gendev.parent; - starget = to_scsi_target(parent); spin_lock_irqsave(sdev->host->host_lock, flags); - starget->reap_ref++; list_del(&sdev->siblings); list_del(&sdev->same_target_siblings); list_del(&sdev->starved_entry); @@ -399,8 +396,6 @@ /* NULL queue means the device can't be used */ sdev->request_queue = NULL; - scsi_target_reap(scsi_target(sdev)); - kfree(sdev->inquiry); kfree(sdev); @@ -1057,6 +1052,13 @@ sdev->host->hostt->slave_destroy(sdev); transport_destroy_device(dev); + /* + * Paired with the kref_get() in scsi_sysfs_initialize(). We have + * remoed sysfs visibility from the device, so make the target + * invisible if this was the last device underneath it. + */ + scsi_target_reap(scsi_target(sdev)); + put_device(dev); } @@ -1119,7 +1121,7 @@ continue; if (starget->dev.parent == dev || &starget->dev == dev) { /* assuming new targets arrive at the end */ - starget->reap_ref++; + kref_get(&starget->reap_ref); spin_unlock_irqrestore(shost->host_lock, flags); if (last) scsi_target_reap(last); @@ -1203,6 +1205,12 @@ list_add_tail(&sdev->same_target_siblings, &starget->devices); list_add_tail(&sdev->siblings, &shost->__devices); spin_unlock_irqrestore(shost->host_lock, flags); + /* + * device can now only be removed via __scsi_remove_device() so hold + * the target. Target will be held in CREATED state until something + * beneath it becomes visible (in which case it moves to RUNNING) + */ + kref_get(&starget->reap_ref); } int scsi_is_sdev_device(const struct device *dev) --- linux-3.13.0.orig/drivers/scsi/scsi_transport_sas.c +++ linux-3.13.0/drivers/scsi/scsi_transport_sas.c @@ -1621,8 +1621,6 @@ list_del(&rphy->list); mutex_unlock(&sas_host->lock); - sas_bsg_remove(shost, rphy); - transport_destroy_device(dev); put_device(dev); @@ -1681,6 +1679,7 @@ } sas_rphy_unlink(rphy); + sas_bsg_remove(NULL, rphy); transport_remove_device(dev); device_del(dev); } --- linux-3.13.0.orig/drivers/scsi/sd.c +++ linux-3.13.0/drivers/scsi/sd.c @@ -830,7 +830,7 @@ static int scsi_setup_flush_cmnd(struct scsi_device *sdp, struct request *rq) { - rq->timeout *= SD_FLUSH_TIMEOUT_MULTIPLIER; + rq->timeout = rq->q->rq_timeout * SD_FLUSH_TIMEOUT_MULTIPLIER; rq->retries = SD_MAX_RETRIES; rq->cmd[0] = SYNCHRONIZE_CACHE; rq->cmd_len = 10; @@ -1463,8 +1463,8 @@ sd_print_sense_hdr(sdkp, &sshdr); /* we need to evaluate the error return */ if (scsi_sense_valid(&sshdr) && - /* 0x3a is medium not present */ - sshdr.asc == 0x3a) + (sshdr.asc == 0x3a || /* medium not present */ + sshdr.asc == 0x20)) /* invalid command */ /* this is no error here */ return 0; @@ -2454,7 +2454,10 @@ } sdkp->DPOFUA = (data.device_specific & 0x10) != 0; - if (sdkp->DPOFUA && !sdkp->device->use_10_for_rw) { + if (sdp->broken_fua) { + sd_printk(KERN_NOTICE, sdkp, "Disabling FUA\n"); + sdkp->DPOFUA = 0; + } else if (sdkp->DPOFUA && !sdkp->device->use_10_for_rw) { sd_printk(KERN_NOTICE, sdkp, "Uses READ/WRITE(6), disabling FUA\n"); sdkp->DPOFUA = 0; @@ -2688,6 +2691,11 @@ static int sd_try_extended_inquiry(struct scsi_device *sdp) { + /* Attempt VPD inquiry if the device blacklist explicitly calls + * for it. + */ + if (sdp->try_vpd_pages) + return 1; /* * Although VPD inquiries can go to SCSI-2 type devices, * some USB ones crash on receiving them, and the pages --- linux-3.13.0.orig/drivers/scsi/storvsc_drv.c +++ linux-3.13.0/drivers/scsi/storvsc_drv.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -326,21 +327,23 @@ */ static int storvsc_timeout = 180; +static int msft_blist_flags = BLIST_TRY_VPD_PAGES; + #define STORVSC_MAX_IO_REQUESTS 200 static void storvsc_on_channel_callback(void *context); -/* - * In Hyper-V, each port/path/target maps to 1 scsi host adapter. In - * reality, the path/target is not used (ie always set to 0) so our - * scsi host adapter essentially has 1 bus with 1 target that contains - * up to 256 luns. - */ -#define STORVSC_MAX_LUNS_PER_TARGET 64 -#define STORVSC_MAX_TARGETS 1 -#define STORVSC_MAX_CHANNELS 1 - - +#define STORVSC_MAX_LUNS_PER_TARGET 255 +#define STORVSC_MAX_TARGETS 2 +#define STORVSC_MAX_CHANNELS 8 + +#define STORVSC_FC_MAX_LUNS_PER_TARGET 255 +#define STORVSC_FC_MAX_TARGETS 128 +#define STORVSC_FC_MAX_CHANNELS 8 + +#define STORVSC_IDE_MAX_LUNS_PER_TARGET 64 +#define STORVSC_IDE_MAX_TARGETS 1 +#define STORVSC_IDE_MAX_CHANNELS 1 struct storvsc_cmd_request { struct list_head entry; @@ -1017,6 +1020,13 @@ case ATA_12: set_host_byte(scmnd, DID_PASSTHROUGH); break; + /* + * On Some Windows hosts TEST_UNIT_READY command can return + * SRB_STATUS_ERROR, let the upper level code deal with it + * based on the sense information. + */ + case TEST_UNIT_READY: + break; default: set_host_byte(scmnd, DID_TARGET_FAILURE); } @@ -1419,6 +1429,9 @@ { struct stor_mem_pools *memp = sdevice->hostdata; + if (!memp) + return; + mempool_destroy(memp->request_mempool); kmem_cache_destroy(memp->request_pool); kfree(memp); @@ -1438,6 +1451,27 @@ sdevice->no_write_same = 1; + /* + * Add blist flags to permit the reading of the VPD pages even when + * the target may claim SPC-2 compliance. MSFT targets currently + * claim SPC-2 compliance while they implement post SPC-2 features. + * With this patch we can correctly handle WRITE_SAME_16 issues. + */ + sdevice->sdev_bflags |= msft_blist_flags; + + /* + * If the host is WIN8 or WIN8 R2, claim conformance to SPC-3 + * if the device is a MSFT virtual device. + */ + if (!strncmp(sdevice->vendor, "Msft", 4)) { + switch (vmbus_proto_version) { + case VERSION_WIN8: + case VERSION_WIN8_1: + sdevice->scsi_level = SCSI_SPC_3; + break; + } + } + return 0; } @@ -1515,6 +1549,16 @@ return SUCCESS; } +/* + * The host guarantees to respond to each command, although I/O latencies might + * be unbounded on Azure. Reset the timer unconditionally to give the host a + * chance to perform EH. + */ +static enum blk_eh_timer_return storvsc_eh_timed_out(struct scsi_cmnd *scmnd) +{ + return BLK_EH_RESET_TIMER; +} + static bool storvsc_scsi_cmd_ok(struct scsi_cmnd *scmnd) { bool allowed = true; @@ -1550,9 +1594,19 @@ struct vmscsi_request *vm_srb; struct stor_mem_pools *memp = scmnd->device->hostdata; - if (!storvsc_scsi_cmd_ok(scmnd)) { - scmnd->scsi_done(scmnd); - return 0; + if (vmstor_current_major <= VMSTOR_WIN8_MAJOR) { + /* + * On legacy hosts filter unimplemented commands. + * Future hosts are expected to correctly handle + * unsupported commands. Furthermore, it is + * possible that some of the currently + * unsupported commands maybe supported in + * future versions of the host. + */ + if (!storvsc_scsi_cmd_ok(scmnd)) { + scmnd->scsi_done(scmnd); + return 0; + } } request_size = sizeof(struct storvsc_cmd_request); @@ -1577,26 +1631,24 @@ vm_srb = &cmd_request->vstor_packet.vm_srb; vm_srb->win8_extension.time_out_value = 60; + vm_srb->win8_extension.srb_flags |= + (SRB_FLAGS_QUEUE_ACTION_ENABLE | + SRB_FLAGS_DISABLE_SYNCH_TRANSFER); /* Build the SRB */ switch (scmnd->sc_data_direction) { case DMA_TO_DEVICE: vm_srb->data_in = WRITE_TYPE; vm_srb->win8_extension.srb_flags |= SRB_FLAGS_DATA_OUT; - vm_srb->win8_extension.srb_flags |= - (SRB_FLAGS_QUEUE_ACTION_ENABLE | - SRB_FLAGS_DISABLE_SYNCH_TRANSFER); break; case DMA_FROM_DEVICE: vm_srb->data_in = READ_TYPE; vm_srb->win8_extension.srb_flags |= SRB_FLAGS_DATA_IN; - vm_srb->win8_extension.srb_flags |= - (SRB_FLAGS_QUEUE_ACTION_ENABLE | - SRB_FLAGS_DISABLE_SYNCH_TRANSFER); break; default: vm_srb->data_in = UNKNOWN_TYPE; - vm_srb->win8_extension.srb_flags = 0; + vm_srb->win8_extension.srb_flags |= (SRB_FLAGS_DATA_IN | + SRB_FLAGS_DATA_OUT); break; } @@ -1661,13 +1713,12 @@ if (ret == -EAGAIN) { /* no more space */ - if (cmd_request->bounce_sgl_count) { + if (cmd_request->bounce_sgl_count) destroy_bounce_buffer(cmd_request->bounce_sgl, cmd_request->bounce_sgl_count); - ret = SCSI_MLQUEUE_DEVICE_BUSY; - goto queue_error; - } + ret = SCSI_MLQUEUE_DEVICE_BUSY; + goto queue_error; } return 0; @@ -1684,11 +1735,11 @@ .bios_param = storvsc_get_chs, .queuecommand = storvsc_queuecommand, .eh_host_reset_handler = storvsc_host_reset_handler, + .eh_timed_out = storvsc_eh_timed_out, .slave_alloc = storvsc_device_alloc, .slave_destroy = storvsc_device_destroy, .slave_configure = storvsc_device_configure, - .cmd_per_lun = 1, - /* 64 max_queue * 1 target */ + .cmd_per_lun = 255, .can_queue = STORVSC_MAX_IO_REQUESTS*STORVSC_MAX_TARGETS, .this_id = -1, /* no use setting to 0 since ll_blk_rw reset it to 1 */ @@ -1740,19 +1791,25 @@ * set state to properly communicate with the host. */ - if (vmbus_proto_version == VERSION_WIN8) { - sense_buffer_size = POST_WIN7_STORVSC_SENSE_BUFFER_SIZE; - vmscsi_size_delta = 0; - vmstor_current_major = VMSTOR_WIN8_MAJOR; - vmstor_current_minor = VMSTOR_WIN8_MINOR; - } else { + switch (vmbus_proto_version) { + case VERSION_WS2008: + case VERSION_WIN7: sense_buffer_size = PRE_WIN8_STORVSC_SENSE_BUFFER_SIZE; vmscsi_size_delta = sizeof(struct vmscsi_win8_extension); vmstor_current_major = VMSTOR_WIN7_MAJOR; vmstor_current_minor = VMSTOR_WIN7_MINOR; + break; + default: + sense_buffer_size = POST_WIN7_STORVSC_SENSE_BUFFER_SIZE; + vmscsi_size_delta = 0; + vmstor_current_major = VMSTOR_WIN8_MAJOR; + vmstor_current_minor = VMSTOR_WIN8_MINOR; + break; } - + if (dev_id->driver_data == SFC_GUID) + scsi_driver.can_queue = (STORVSC_MAX_IO_REQUESTS * + STORVSC_FC_MAX_TARGETS); host = scsi_host_alloc(&scsi_driver, sizeof(struct hv_host_device)); if (!host) @@ -1786,12 +1843,25 @@ host_dev->path = stor_device->path_id; host_dev->target = stor_device->target_id; - /* max # of devices per target */ - host->max_lun = STORVSC_MAX_LUNS_PER_TARGET; - /* max # of targets per channel */ - host->max_id = STORVSC_MAX_TARGETS; - /* max # of channels */ - host->max_channel = STORVSC_MAX_CHANNELS - 1; + switch (dev_id->driver_data) { + case SFC_GUID: + host->max_lun = STORVSC_FC_MAX_LUNS_PER_TARGET; + host->max_id = STORVSC_FC_MAX_TARGETS; + host->max_channel = STORVSC_FC_MAX_CHANNELS - 1; + break; + + case SCSI_GUID: + host->max_lun = STORVSC_MAX_LUNS_PER_TARGET; + host->max_id = STORVSC_MAX_TARGETS; + host->max_channel = STORVSC_MAX_CHANNELS - 1; + break; + + default: + host->max_lun = STORVSC_IDE_MAX_LUNS_PER_TARGET; + host->max_id = STORVSC_IDE_MAX_TARGETS; + host->max_channel = STORVSC_IDE_MAX_CHANNELS - 1; + break; + } /* max cmd length */ host->max_cmd_len = STORVSC_MAX_CMD_LEN; --- linux-3.13.0.orig/drivers/scsi/sun3_NCR5380.c +++ linux-3.13.0/drivers/scsi/sun3_NCR5380.c @@ -2597,15 +2597,15 @@ * Purpose : abort a command * * Inputs : cmd - the struct scsi_cmnd to abort, code - code to set the - * host byte of the result field to, if zero DID_ABORTED is + * host byte of the result field to, if zero DID_ABORTED is * used. * - * Returns : 0 - success, -1 on failure. + * Returns : SUCCESS - success, FAILED on failure. * - * XXX - there is no way to abort the command that is currently - * connected, you have to wait for it to complete. If this is + * XXX - there is no way to abort the command that is currently + * connected, you have to wait for it to complete. If this is * a problem, we could implement longjmp() / setjmp(), setjmp() - * called where the loop started in NCR5380_main(). + * called where the loop started in NCR5380_main(). */ static int NCR5380_abort(struct scsi_cmnd *cmd) --- linux-3.13.0.orig/drivers/scsi/virtio_scsi.c +++ linux-3.13.0/drivers/scsi/virtio_scsi.c @@ -273,6 +273,16 @@ virtscsi_vq_done(vscsi, req_vq, virtscsi_complete_cmd); }; +static void virtscsi_poll_requests(struct virtio_scsi *vscsi) +{ + int i, num_vqs; + + num_vqs = vscsi->num_queues; + for (i = 0; i < num_vqs; i++) + virtscsi_vq_done(vscsi, &vscsi->req_vqs[i], + virtscsi_complete_cmd); +} + static void virtscsi_complete_free(struct virtio_scsi *vscsi, void *buf) { struct virtio_scsi_cmd *cmd = buf; @@ -291,6 +301,8 @@ virtscsi_vq_done(vscsi, &vscsi->ctrl_vq, virtscsi_complete_free); }; +static void virtscsi_handle_event(struct work_struct *work); + static int virtscsi_kick_event(struct virtio_scsi *vscsi, struct virtio_scsi_event_node *event_node) { @@ -298,6 +310,7 @@ struct scatterlist sg; unsigned long flags; + INIT_WORK(&event_node->work, virtscsi_handle_event); sg_init_one(&sg, &event_node->event, sizeof(struct virtio_scsi_event)); spin_lock_irqsave(&vscsi->event_vq.vq_lock, flags); @@ -415,7 +428,6 @@ { struct virtio_scsi_event_node *event_node = buf; - INIT_WORK(&event_node->work, virtscsi_handle_event); schedule_work(&event_node->work); } @@ -605,6 +617,18 @@ cmd->resp.tmf.response == VIRTIO_SCSI_S_FUNCTION_SUCCEEDED) ret = SUCCESS; + /* + * The spec guarantees that all requests related to the TMF have + * been completed, but the callback might not have run yet if + * we're using independent interrupts (e.g. MSI). Poll the + * virtqueues once. + * + * In the abort case, sc->scsi_done will do nothing, because + * the block layer must have detected a timeout and as a result + * REQ_ATOM_COMPLETE has been set. + */ + virtscsi_poll_requests(vscsi); + out: mempool_free(cmd, virtscsi_cmd_pool); return ret; @@ -750,8 +774,12 @@ vscsi->affinity_hint_set = true; } else { - for (i = 0; i < vscsi->num_queues; i++) + for (i = 0; i < vscsi->num_queues; i++) { + if (!vscsi->req_vqs[i].vq) + continue; + virtqueue_set_affinity(vscsi->req_vqs[i].vq, -1); + } vscsi->affinity_hint_set = false; } @@ -956,6 +984,10 @@ #ifdef CONFIG_PM_SLEEP static int virtscsi_freeze(struct virtio_device *vdev) { + struct Scsi_Host *sh = virtio_scsi_host(vdev); + struct virtio_scsi *vscsi = shost_priv(sh); + + unregister_hotcpu_notifier(&vscsi->nb); virtscsi_remove_vqs(vdev); return 0; } @@ -964,8 +996,17 @@ { struct Scsi_Host *sh = virtio_scsi_host(vdev); struct virtio_scsi *vscsi = shost_priv(sh); + int err; + + err = virtscsi_init(vdev, vscsi); + if (err) + return err; + + err = register_hotcpu_notifier(&vscsi->nb); + if (err) + vdev->config->del_vqs(vdev); - return virtscsi_init(vdev, vscsi); + return err; } #endif --- linux-3.13.0.orig/drivers/spi/spi-ath79.c +++ linux-3.13.0/drivers/spi/spi-ath79.c @@ -132,9 +132,9 @@ flags = GPIOF_DIR_OUT; if (spi->mode & SPI_CS_HIGH) - flags |= GPIOF_INIT_HIGH; - else flags |= GPIOF_INIT_LOW; + else + flags |= GPIOF_INIT_HIGH; status = gpio_request_one(cdata->gpio, flags, dev_name(&spi->dev)); --- linux-3.13.0.orig/drivers/spi/spi-bcm63xx.c +++ linux-3.13.0/drivers/spi/spi-bcm63xx.c @@ -169,8 +169,6 @@ transfer_list); } - len -= prepend_len; - init_completion(&bs->done); /* Fill in the Message control register */ --- linux-3.13.0.orig/drivers/spi/spi-coldfire-qspi.c +++ linux-3.13.0/drivers/spi/spi-coldfire-qspi.c @@ -539,7 +539,8 @@ #ifdef CONFIG_PM_RUNTIME static int mcfqspi_runtime_suspend(struct device *dev) { - struct mcfqspi *mcfqspi = dev_get_drvdata(dev); + struct spi_master *master = dev_get_drvdata(dev); + struct mcfqspi *mcfqspi = spi_master_get_devdata(master); clk_disable(mcfqspi->clk); @@ -548,7 +549,8 @@ static int mcfqspi_runtime_resume(struct device *dev) { - struct mcfqspi *mcfqspi = dev_get_drvdata(dev); + struct spi_master *master = dev_get_drvdata(dev); + struct mcfqspi *mcfqspi = spi_master_get_devdata(master); clk_enable(mcfqspi->clk); --- linux-3.13.0.orig/drivers/spi/spi-dw-mid.c +++ linux-3.13.0/drivers/spi/spi-dw-mid.c @@ -89,7 +89,10 @@ static void mid_spi_dma_exit(struct dw_spi *dws) { + dmaengine_terminate_all(dws->txchan); dma_release_channel(dws->txchan); + + dmaengine_terminate_all(dws->rxchan); dma_release_channel(dws->rxchan); } @@ -136,7 +139,7 @@ txconf.dst_addr = dws->dma_addr; txconf.dst_maxburst = LNW_DMA_MSIZE_16; txconf.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; - txconf.dst_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES; + txconf.dst_addr_width = dws->dma_width; txconf.device_fc = false; txchan->device->device_control(txchan, DMA_SLAVE_CONFIG, @@ -159,7 +162,7 @@ rxconf.src_addr = dws->dma_addr; rxconf.src_maxburst = LNW_DMA_MSIZE_16; rxconf.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; - rxconf.src_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES; + rxconf.src_addr_width = dws->dma_width; rxconf.device_fc = false; rxchan->device->device_control(rxchan, DMA_SLAVE_CONFIG, --- linux-3.13.0.orig/drivers/spi/spi-dw.c +++ linux-3.13.0/drivers/spi/spi-dw.c @@ -394,9 +394,6 @@ chip = dws->cur_chip; spi = message->spi; - if (unlikely(!chip->clk_div)) - chip->clk_div = dws->max_freq / chip->speed_hz; - if (message->state == ERROR_STATE) { message->status = -EIO; goto early_exit; @@ -438,7 +435,7 @@ if (transfer->speed_hz) { speed = chip->speed_hz; - if (transfer->speed_hz != speed) { + if ((transfer->speed_hz != speed) || (!chip->clk_div)) { speed = transfer->speed_hz; if (speed > dws->max_freq) { printk(KERN_ERR "MRST SPI0: unsupported" @@ -658,7 +655,6 @@ dev_err(&spi->dev, "No max speed HZ parameter\n"); return -EINVAL; } - chip->speed_hz = spi->max_speed_hz; chip->tmode = 0; /* Tx & Rx */ /* Default SPI mode is SCPOL = 0, SCPH = 0 */ @@ -675,6 +671,7 @@ { struct chip_data *chip = spi_get_ctldata(spi); kfree(chip); + spi_set_ctldata(spi, NULL); } static int init_queue(struct dw_spi *dws) --- linux-3.13.0.orig/drivers/spi/spi-efm32.c +++ linux-3.13.0/drivers/spi/spi-efm32.c @@ -487,6 +487,9 @@ static const struct of_device_id efm32_spi_dt_ids[] = { { + .compatible = "energymicro,efm32-spi", + }, { + /* doesn't follow the "vendor,device" scheme, don't use */ .compatible = "efm32,spi", }, { /* sentinel */ --- linux-3.13.0.orig/drivers/spi/spi-fsl-dspi.c +++ linux-3.13.0/drivers/spi/spi-fsl-dspi.c @@ -45,7 +45,7 @@ #define SPI_TCR 0x08 -#define SPI_CTAR(x) (0x0c + (x * 4)) +#define SPI_CTAR(x) (0x0c + (((x) & 0x3) * 4)) #define SPI_CTAR_FMSZ(x) (((x) & 0x0000000f) << 27) #define SPI_CTAR_CPOL(x) ((x) << 26) #define SPI_CTAR_CPHA(x) ((x) << 25) @@ -69,7 +69,7 @@ #define SPI_PUSHR 0x34 #define SPI_PUSHR_CONT (1 << 31) -#define SPI_PUSHR_CTAS(x) (((x) & 0x00000007) << 28) +#define SPI_PUSHR_CTAS(x) (((x) & 0x00000003) << 28) #define SPI_PUSHR_EOQ (1 << 27) #define SPI_PUSHR_CTCNT (1 << 26) #define SPI_PUSHR_PCS(x) (((1 << x) & 0x0000003f) << 16) @@ -421,7 +421,6 @@ static int dspi_resume(struct device *dev) { - struct spi_master *master = dev_get_drvdata(dev); struct fsl_dspi *dspi = spi_master_get_devdata(master); @@ -505,7 +504,7 @@ clk_prepare_enable(dspi->clk); init_waitqueue_head(&dspi->waitq); - platform_set_drvdata(pdev, dspi); + platform_set_drvdata(pdev, master); ret = spi_bitbang_start(&dspi->bitbang); if (ret != 0) { @@ -526,7 +525,8 @@ static int dspi_remove(struct platform_device *pdev) { - struct fsl_dspi *dspi = platform_get_drvdata(pdev); + struct spi_master *master = platform_get_drvdata(pdev); + struct fsl_dspi *dspi = spi_master_get_devdata(master); /* Disconnect from the SPI framework */ spi_bitbang_stop(&dspi->bitbang); --- linux-3.13.0.orig/drivers/spi/spi-fsl-espi.c +++ linux-3.13.0/drivers/spi/spi-fsl-espi.c @@ -456,16 +456,16 @@ int retval; u32 hw_mode; u32 loop_mode; - struct spi_mpc8xxx_cs *cs = spi->controller_state; + struct spi_mpc8xxx_cs *cs = spi_get_ctldata(spi); if (!spi->max_speed_hz) return -EINVAL; if (!cs) { - cs = kzalloc(sizeof *cs, GFP_KERNEL); + cs = kzalloc(sizeof(*cs), GFP_KERNEL); if (!cs) return -ENOMEM; - spi->controller_state = cs; + spi_set_ctldata(spi, cs); } mpc8xxx_spi = spi_master_get_devdata(spi->master); @@ -500,6 +500,14 @@ return 0; } +static void fsl_espi_cleanup(struct spi_device *spi) +{ + struct spi_mpc8xxx_cs *cs = spi_get_ctldata(spi); + + kfree(cs); + spi_set_ctldata(spi, NULL); +} + void fsl_espi_cpu_irq(struct mpc8xxx_spi *mspi, u32 events) { struct fsl_espi_reg *reg_base = mspi->reg_base; @@ -607,6 +615,7 @@ master->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 16); master->setup = fsl_espi_setup; + master->cleanup = fsl_espi_cleanup; mpc8xxx_spi = spi_master_get_devdata(master); mpc8xxx_spi->spi_do_one_msg = fsl_espi_do_one_msg; --- linux-3.13.0.orig/drivers/spi/spi-fsl-spi.c +++ linux-3.13.0/drivers/spi/spi-fsl-spi.c @@ -420,16 +420,16 @@ struct fsl_spi_reg *reg_base; int retval; u32 hw_mode; - struct spi_mpc8xxx_cs *cs = spi->controller_state; + struct spi_mpc8xxx_cs *cs = spi_get_ctldata(spi); if (!spi->max_speed_hz) return -EINVAL; if (!cs) { - cs = kzalloc(sizeof *cs, GFP_KERNEL); + cs = kzalloc(sizeof(*cs), GFP_KERNEL); if (!cs) return -ENOMEM; - spi->controller_state = cs; + spi_set_ctldata(spi, cs); } mpc8xxx_spi = spi_master_get_devdata(spi->master); @@ -491,9 +491,13 @@ static void fsl_spi_cleanup(struct spi_device *spi) { struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(spi->master); + struct spi_mpc8xxx_cs *cs = spi_get_ctldata(spi); if (mpc8xxx_spi->type == TYPE_GRLIB && gpio_is_valid(spi->cs_gpio)) gpio_free(spi->cs_gpio); + + kfree(cs); + spi_set_ctldata(spi, NULL); } static void fsl_spi_cpu_irq(struct mpc8xxx_spi *mspi, u32 events) --- linux-3.13.0.orig/drivers/spi/spi-imx.c +++ linux-3.13.0/drivers/spi/spi-imx.c @@ -925,8 +925,8 @@ spi_bitbang_stop(&spi_imx->bitbang); writel(0, spi_imx->base + MXC_CSPICTRL); - clk_disable_unprepare(spi_imx->clk_ipg); - clk_disable_unprepare(spi_imx->clk_per); + clk_unprepare(spi_imx->clk_ipg); + clk_unprepare(spi_imx->clk_per); spi_master_put(master); return 0; --- linux-3.13.0.orig/drivers/spi/spi-nuc900.c +++ linux-3.13.0/drivers/spi/spi-nuc900.c @@ -363,6 +363,8 @@ init_completion(&hw->done); master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH; + if (hw->pdata->lsb) + master->mode_bits |= SPI_LSB_FIRST; master->num_chipselect = hw->pdata->num_cs; master->bus_num = hw->pdata->bus_num; hw->bitbang.master = hw->master; --- linux-3.13.0.orig/drivers/spi/spi-omap2-mcspi.c +++ linux-3.13.0/drivers/spi/spi-omap2-mcspi.c @@ -320,7 +320,8 @@ disable_fifo: if (t->rx_buf != NULL) chconf &= ~OMAP2_MCSPI_CHCONF_FFER; - else + + if (t->tx_buf != NULL) chconf &= ~OMAP2_MCSPI_CHCONF_FFET; mcspi_write_chconf0(spi, chconf); --- linux-3.13.0.orig/drivers/spi/spi-orion.c +++ linux-3.13.0/drivers/spi/spi-orion.c @@ -404,8 +404,6 @@ struct resource *r; unsigned long tclk_hz; int status = 0; - const u32 *iprop; - int size; master = spi_alloc_master(&pdev->dev, sizeof(*spi)); if (master == NULL) { @@ -416,10 +414,10 @@ if (pdev->id != -1) master->bus_num = pdev->id; if (pdev->dev.of_node) { - iprop = of_get_property(pdev->dev.of_node, "cell-index", - &size); - if (iprop && size == sizeof(*iprop)) - master->bus_num = *iprop; + u32 cell_index; + if (!of_property_read_u32(pdev->dev.of_node, "cell-index", + &cell_index)) + master->bus_num = cell_index; } /* we support only mode 0, and no options */ --- linux-3.13.0.orig/drivers/spi/spi-pl022.c +++ linux-3.13.0/drivers/spi/spi-pl022.c @@ -1075,7 +1075,7 @@ pl022->sgt_tx.nents, DMA_TO_DEVICE); err_tx_sgmap: dma_unmap_sg(rxchan->device->dev, pl022->sgt_rx.sgl, - pl022->sgt_tx.nents, DMA_FROM_DEVICE); + pl022->sgt_rx.nents, DMA_FROM_DEVICE); err_rx_sgmap: sg_free_table(&pl022->sgt_tx); err_alloc_tx_sg: --- linux-3.13.0.orig/drivers/spi/spi-pxa2xx.c +++ linux-3.13.0/drivers/spi/spi-pxa2xx.c @@ -1066,6 +1066,8 @@ pdata->num_chipselect = 1; pdata->enable_dma = true; + pdata->tx_chan_id = -1; + pdata->rx_chan_id = -1; return pdata; } @@ -1076,6 +1078,7 @@ { "INT3430", 0 }, { "INT3431", 0 }, { "80860F0E", 0 }, + { "8086228E", 0 }, { }, }; MODULE_DEVICE_TABLE(acpi, pxa2xx_spi_acpi_match); @@ -1277,7 +1280,9 @@ if (status != 0) return status; write_SSCR0(0, drv_data->ioaddr); - clk_disable_unprepare(ssp->clk); + + if (!pm_runtime_suspended(dev)) + clk_disable_unprepare(ssp->clk); return 0; } @@ -1291,7 +1296,8 @@ pxa2xx_spi_dma_resume(drv_data); /* Enable the SSP clock */ - clk_prepare_enable(ssp->clk); + if (!pm_runtime_suspended(dev)) + clk_prepare_enable(ssp->clk); /* Restore LPSS private register bits */ lpss_ssp_setup(drv_data); --- linux-3.13.0.orig/drivers/spi/spi-sirf.c +++ linux-3.13.0/drivers/spi/spi-sirf.c @@ -366,7 +366,9 @@ writel(SIRFSOC_SPI_RX_OFLOW_INT_EN | SIRFSOC_SPI_TX_UFLOW_INT_EN | SIRFSOC_SPI_RXFIFO_THD_INT_EN | SIRFSOC_SPI_TXFIFO_THD_INT_EN | SIRFSOC_SPI_FRM_END_INT_EN | SIRFSOC_SPI_RXFIFO_FULL_INT_EN | - SIRFSOC_SPI_TXFIFO_EMPTY_INT_EN, sspi->base + SIRFSOC_SPI_INT_EN); + SIRFSOC_SPI_TXFIFO_EMPTY_INT_EN | + SIRFSOC_SPI_RX_IO_DMA_INT_EN, + sspi->base + SIRFSOC_SPI_INT_EN); } writel(SIRFSOC_SPI_RX_EN | SIRFSOC_SPI_TX_EN, sspi->base + SIRFSOC_SPI_TX_RX_EN); --- linux-3.13.0.orig/drivers/spi/spi.c +++ linux-3.13.0/drivers/spi/spi.c @@ -1551,7 +1551,7 @@ */ int spi_setup(struct spi_device *spi) { - unsigned bad_bits; + unsigned bad_bits, ugly_bits; int status = 0; /* check mode to prevent that DUAL and QUAD set at the same time @@ -1571,6 +1571,15 @@ * that aren't supported with their current master */ bad_bits = spi->mode & ~spi->master->mode_bits; + ugly_bits = bad_bits & + (SPI_TX_DUAL | SPI_TX_QUAD | SPI_RX_DUAL | SPI_RX_QUAD); + if (ugly_bits) { + dev_warn(&spi->dev, + "setup: ignoring unsupported mode bits %x\n", + ugly_bits); + spi->mode &= ~ugly_bits; + bad_bits &= ~ugly_bits; + } if (bad_bits) { dev_err(&spi->dev, "setup: unsupported mode bits %x\n", bad_bits); --- linux-3.13.0.orig/drivers/staging/Kconfig +++ linux-3.13.0/drivers/staging/Kconfig @@ -52,6 +52,8 @@ source "drivers/staging/rtl8188eu/Kconfig" +source "drivers/staging/rtl8821ae/Kconfig" + source "drivers/staging/rts5139/Kconfig" source "drivers/staging/frontier/Kconfig" @@ -150,4 +152,8 @@ source "drivers/staging/dgap/Kconfig" +source "drivers/staging/fsl_qbman/Kconfig" + +source "drivers/staging/fsl_pme2/Kconfig" + endif # STAGING --- linux-3.13.0.orig/drivers/staging/Makefile +++ linux-3.13.0/drivers/staging/Makefile @@ -18,6 +18,7 @@ obj-$(CONFIG_RTL8192E) += rtl8192e/ obj-$(CONFIG_R8712U) += rtl8712/ obj-$(CONFIG_R8188EU) += rtl8188eu/ +obj-$(CONFIG_R8821AE) += rtl8821ae/ obj-$(CONFIG_RTS5139) += rts5139/ obj-$(CONFIG_TRANZPORT) += frontier/ obj-$(CONFIG_IDE_PHISON) += phison/ @@ -67,3 +68,5 @@ obj-$(CONFIG_DGNC) += dgnc/ obj-$(CONFIG_DGAP) += dgap/ obj-$(CONFIG_MTD_SPINAND_MT29F) += mt29f_spinand/ +obj-$(CONFIG_FSL_DPA) += fsl_qbman/ +obj-$(CONFIG_FSL_PME2) += fsl_pme2/ --- linux-3.13.0.orig/drivers/staging/android/binder.c +++ linux-3.13.0/drivers/staging/android/binder.c @@ -2904,7 +2904,7 @@ refs++; if (!ref->death) - goto out; + continue; death++; @@ -2917,7 +2917,6 @@ BUG(); } -out: binder_debug(BINDER_DEBUG_DEAD_BINDER, "node %d now dead, refs %d, death %d\n", node->debug_id, refs, death); --- linux-3.13.0.orig/drivers/staging/bcm/Bcmnet.c +++ linux-3.13.0/drivers/staging/bcm/Bcmnet.c @@ -40,7 +40,7 @@ } static u16 bcm_select_queue(struct net_device *dev, struct sk_buff *skb, - void *accel_priv) + void *accel_priv, select_queue_fallback_t fallback) { return ClassifyPacket(netdev_priv(dev), skb); } --- linux-3.13.0.orig/drivers/staging/comedi/comedi_fops.c +++ linux-3.13.0/drivers/staging/comedi/comedi_fops.c @@ -1425,6 +1425,7 @@ async->cmd.chanlist_len * sizeof(int)); if (IS_ERR(async->cmd.chanlist)) { ret = PTR_ERR(async->cmd.chanlist); + async->cmd.chanlist = NULL; DPRINTK("memdup_user failed with code %d\n", ret); goto cleanup; } @@ -1547,6 +1548,7 @@ cmd.chanlist_len * sizeof(int)); if (IS_ERR(chanlist)) { ret = PTR_ERR(chanlist); + chanlist = NULL; DPRINTK("memdup_user exited with code %d", ret); goto cleanup; } --- linux-3.13.0.orig/drivers/staging/comedi/drivers/8255_pci.c +++ linux-3.13.0/drivers/staging/comedi/drivers/8255_pci.c @@ -56,6 +56,7 @@ #include "../comedidev.h" #include "8255.h" +#include "mite.h" enum pci_8255_boardid { BOARD_ADLINK_PCI7224, @@ -79,6 +80,7 @@ const char *name; int dio_badr; int n_8255; + unsigned int has_mite:1; }; static const struct pci_8255_boardinfo pci_8255_boards[] = { @@ -126,36 +128,43 @@ .name = "ni_pci-dio-96", .dio_badr = 1, .n_8255 = 4, + .has_mite = 1, }, [BOARD_NI_PCIDIO96B] = { .name = "ni_pci-dio-96b", .dio_badr = 1, .n_8255 = 4, + .has_mite = 1, }, [BOARD_NI_PXI6508] = { .name = "ni_pxi-6508", .dio_badr = 1, .n_8255 = 4, + .has_mite = 1, }, [BOARD_NI_PCI6503] = { .name = "ni_pci-6503", .dio_badr = 1, .n_8255 = 1, + .has_mite = 1, }, [BOARD_NI_PCI6503B] = { .name = "ni_pci-6503b", .dio_badr = 1, .n_8255 = 1, + .has_mite = 1, }, [BOARD_NI_PCI6503X] = { .name = "ni_pci-6503x", .dio_badr = 1, .n_8255 = 1, + .has_mite = 1, }, [BOARD_NI_PXI_6503] = { .name = "ni_pxi-6503", .dio_badr = 1, .n_8255 = 1, + .has_mite = 1, }, }; @@ -163,6 +172,25 @@ void __iomem *mmio_base; }; +static int pci_8255_mite_init(struct pci_dev *pcidev) +{ + void __iomem *mite_base; + u32 main_phys_addr; + + /* ioremap the MITE registers (BAR 0) temporarily */ + mite_base = pci_ioremap_bar(pcidev, 0); + if (!mite_base) + return -ENOMEM; + + /* set data window to main registers (BAR 1) */ + main_phys_addr = pci_resource_start(pcidev, 1); + writel(main_phys_addr | WENAB, mite_base + MITE_IODWBSR); + + /* finished with MITE registers */ + iounmap(mite_base); + return 0; +} + static int pci_8255_mmio(int dir, int port, int data, unsigned long iobase) { void __iomem *mmio_base = (void __iomem *)iobase; @@ -201,6 +229,12 @@ if (ret) return ret; + if (board->has_mite) { + ret = pci_8255_mite_init(pcidev); + if (ret) + return ret; + } + is_mmio = (pci_resource_flags(pcidev, board->dio_badr) & IORESOURCE_MEM) != 0; if (is_mmio) { --- linux-3.13.0.orig/drivers/staging/comedi/drivers/addi_apci_1032.c +++ linux-3.13.0/drivers/staging/comedi/drivers/addi_apci_1032.c @@ -325,8 +325,8 @@ s = &dev->subdevices[1]; if (dev->irq) { dev->read_subdev = s; - s->type = COMEDI_SUBD_DI | SDF_CMD_READ; - s->subdev_flags = SDF_READABLE; + s->type = COMEDI_SUBD_DI; + s->subdev_flags = SDF_READABLE | SDF_CMD_READ; s->n_chan = 1; s->maxdata = 1; s->range_table = &range_digital; --- linux-3.13.0.orig/drivers/staging/comedi/drivers/adl_pci9111.c +++ linux-3.13.0/drivers/staging/comedi/drivers/adl_pci9111.c @@ -859,7 +859,7 @@ pci9111_reset(dev); if (pcidev->irq > 0) { - ret = request_irq(dev->irq, pci9111_interrupt, + ret = request_irq(pcidev->irq, pci9111_interrupt, IRQF_SHARED, dev->board_name, dev); if (ret) return ret; --- linux-3.13.0.orig/drivers/staging/comedi/drivers/adv_pci1710.c +++ linux-3.13.0/drivers/staging/comedi/drivers/adv_pci1710.c @@ -489,6 +489,7 @@ struct comedi_insn *insn, unsigned int *data) { struct pci1710_private *devpriv = dev->private; + unsigned int val; int n, chan, range, ofs; chan = CR_CHAN(insn->chanspec); @@ -504,11 +505,14 @@ outw(devpriv->da_ranges, dev->iobase + PCI171x_DAREF); ofs = PCI171x_DA1; } + val = devpriv->ao_data[chan]; - for (n = 0; n < insn->n; n++) - outw(data[n], dev->iobase + ofs); + for (n = 0; n < insn->n; n++) { + val = data[n]; + outw(val, dev->iobase + ofs); + } - devpriv->ao_data[chan] = data[n]; + devpriv->ao_data[chan] = val; return n; @@ -674,6 +678,7 @@ struct comedi_insn *insn, unsigned int *data) { struct pci1710_private *devpriv = dev->private; + unsigned int val; int n, rangereg, chan; chan = CR_CHAN(insn->chanspec); @@ -683,13 +688,15 @@ outb(rangereg, dev->iobase + PCI1720_RANGE); devpriv->da_ranges = rangereg; } + val = devpriv->ao_data[chan]; for (n = 0; n < insn->n; n++) { - outw(data[n], dev->iobase + PCI1720_DA0 + (chan << 1)); + val = data[n]; + outw(val, dev->iobase + PCI1720_DA0 + (chan << 1)); outb(0, dev->iobase + PCI1720_SYNCOUT); /* update outputs */ } - devpriv->ao_data[chan] = data[n]; + devpriv->ao_data[chan] = val; return n; } --- linux-3.13.0.orig/drivers/staging/fsl_pme2/Kconfig +++ linux-3.13.0/drivers/staging/fsl_pme2/Kconfig @@ -0,0 +1,215 @@ +config FSL_PME2 + bool "Freescale Datapath Pattern Matcher support" + depends on HAS_FSL_PME && FSL_QMAN_PORTAL + default y + +menu "Freescale Datapath PME options" + depends on FSL_PME2 + +config FSL_PME2_CTRL + bool "Freescale PME2 (p4080, etc) device control" + default y + ---help--- + This compiles device support for the Freescale PME2 pattern matching + part contained in datapath-enabled SoCs (ie. accessed via Qman and + Bman portal functionality). At least one guest operating system must + have this driver support, together with the appropriate device-tree + entry, for PME2 functionality to be available. It is responsible for + allocating system memory to the device and configuring it for + operation. For this reason, it must be built into the kernel and will + initialise during early kernel boot. + +config FSL_PME2_PDSRSIZE + int "Pattern Description and Stateful Rule default table size" + depends on FSL_PME2_CTRL + range 74240 1048573 + default 131072 + help + Select the default size of the Pattern Description and Stateful Rule + table as the number of 128 byte entries. This only takes effect if + the device tree node doesn't have the 'fsl,pme-pdsr' property. + range 74240-1048573 (9.5MB-134MB) + default 131072 (16MB) + +if FSL_PME2_CTRL +comment "Statefule Rule Engine" +endif + +config FSL_PME2_SRESIZE + int "SRE Session Context Entries table default table size" + depends on FSL_PME2_CTRL + range 0 134217727 + default 327680 + help + Select the default size of the SRE Context Table as the number of 32 + byte entries. This only takes effect if the device tree node doesn't + have the 'fsl,pme-sre' property. + range 0-134217727 (0-4GB) + default 327680 (10MB) + +config FSL_PME2_SRE_AIM + bool "Alternate Inconclusive Mode" + depends on FSL_PME2_CTRL + default n + help + Select the inconclusive match mode treatment. When true the + “alternate” inconclusive mode is used. When false the “default” + inconclusive mode is used. + +config FSL_PME2_SRE_ESR + bool "End of SUI Simple Report" + depends on FSL_PME2_CTRL + default n + help + Select if an End of SUI will produce a Simple End of SUI report. + +config FSL_PME2_SRE_CTX_SIZE_PER_SESSION + int "Default SRE Context Size per Session (16 => 64KB, 17 => 128KB)" + depends on FSL_PME2_CTRL + range 5 17 + default 17 + help + Select SRE context size per session as a power of 2. + range 5-17 + Examples: + 5 => 32 B + 6 => 64 B + 7 => 128 B + 8 => 256 B + 9 => 512 B + 10 => 1 KB + 11 => 2 KB + 12 => 4 KB + 13 => 8 KB + 14 => 16 KB + 15 => 32 KB + 16 => 64 KB + 17 => 128 KB + +config FSL_PME2_SRE_CNR + int "Configured Number of Stateful Rules as a multiple of 256 (128 => 32768 )" + depends on FSL_PME2_CTRL + range 0 128 + default 128 + help + Select number of stateful rules as a multiple of 256. + range 0-128 + Examples: + 0 => 0 + 1 => 256 + 2 => 512 + ... + 127 => 32512 + 128 => 32768 + +config FSL_PME2_SRE_MAX_INSTRUCTION_LIMIT + int "Maximum number of SRE instructions to be executed per reaction." + depends on FSL_PME2_CTRL + range 0 65535 + default 65535 + help + Select the maximum number of SRE instructions to be executed per + reaction. + range 0 65535 + +config FSL_PME2_SRE_MAX_BLOCK_NUMBER + int "Maximum number of Reaction Head blocks to be traversed per pattern match event" + depends on FSL_PME2_CTRL + range 0 32767 + default 32767 + help + Select the maximum number of reaction head blocks to be traversed per + pattern match event (e.g. a matched pattern or an End of SUI event). + range 0-32767 + +config FSL_PME2_PORTAL + tristate "Freescale PME2 (p4080, etc) device usage" + default y + ---help--- + This compiles I/O support for the Freescale PME2 pattern matching + part contained in datapath-enabled SoCs (ie. accessed via Qman and + Bman portal functionality). + +if FSL_PME2_PORTAL + +config FSL_PME2_TEST_HIGH + tristate "PME2 high-level self-test" + default n + ---help--- + This uses the high-level Qman driver (and the cpu-affine portals it + manages) to perform high-level PME2 API testing with it. + +config FSL_PME2_TEST_SCAN + tristate "PME2 scan self-test" + default n + ---help--- + This uses the high-level Qman driver (and the cpu-affine portals it + manages) to perform scan PME2 API testing with it. + +config FSL_PME2_TEST_SCAN_WITH_BPID + bool "PME2 scan self-test with buffer pool" + depends on FSL_PME2_TEST_SCAN && FSL_BMAN_PORTAL + default y + ---help--- + This uses a buffer pool id for scan test + +config FSL_PME2_TEST_SCAN_WITH_BPID_SIZE + int "Buffer Pool size." + depends on FSL_PME2_TEST_SCAN_WITH_BPID + range 0 11 + default 3 + ---help--- + This uses the specified buffer pool size. + +config FSL_PME2_DB + tristate "PME2 Database support" + depends on FSL_PME2_CTRL + default y + ---help--- + This compiles the database driver for PME2. + +config FSL_PME2_DB_QOSOUT_PRIORITY + int "PME DB output frame queue priority." + depends on FSL_PME2_DB + range 0 7 + default 2 + ---help--- + The PME DB has a scheduled output frame queue. The qos priority level is configurable. + range 0-7 + 0 => High Priority 0 + 1 => High Priority 1 + 2 => Medium Priority + 3 => Medium Priority + 4 => Medium Priority + 5 => Low Priority + 6 => Low Priority + 7 => Low Priority + +config FSL_PME2_SCAN + tristate "PME2 Scan support" + default y + ---help--- + This compiles the scan driver for PME2. + +config FSL_PME2_SCAN_DEBUG + bool "Debug Statements" + default n + depends on FSL_PME2_SCAN + ---help--- + The PME2_SCAN driver can optionally trace with more verbosity + of verbosity. + +endif + +config FSL_PME2_STAT_ACCUMULATOR_UPDATE_INTERVAL + int "Configure the pme2 statistics update interval in milliseconds" + depends on FSL_PME2_CTRL + range 0 10000 + default 3400 + help + The pme accumulator reads the current device statistics and add it + to a running counter. The frequency of these updates may be + controlled. If 0 is specified, no automatic updates is done. + range 0-10000 + +endmenu --- linux-3.13.0.orig/drivers/staging/fsl_pme2/Makefile +++ linux-3.13.0/drivers/staging/fsl_pme2/Makefile @@ -0,0 +1,10 @@ +# PME +obj-$(CONFIG_FSL_PME2_CTRL) += pme2_ctrl.o pme2_sysfs.o +obj-$(CONFIG_FSL_PME2_PORTAL) += pme2.o +pme2-y := pme2_low.o pme2_high.o +obj-$(CONFIG_FSL_PME2_TEST_HIGH) += pme2_test_high.o +obj-$(CONFIG_FSL_PME2_TEST_SCAN) += pme2_test_scanning.o +pme2_test_scanning-y = pme2_test_scan.o pme2_sample_db.o +obj-$(CONFIG_FSL_PME2_DB) += pme2_db.o +obj-$(CONFIG_FSL_PME2_SCAN) += pme2_scan.o + --- linux-3.13.0.orig/drivers/staging/fsl_pme2/pme2_ctrl.c +++ linux-3.13.0/drivers/staging/fsl_pme2/pme2_ctrl.c @@ -0,0 +1,1335 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include + +#include "pme2_private.h" +#include "pme2_regs.h" + +/* PME HW Revision */ +#define PME_REV(rev1_reg) (rev1_reg & 0x0000FFFF) +#define PME_REV_2_0 0x00000200 +#define PME_REV_2_1 0x00000201 +#define DEC1_MAX_REV_2_0 0x000FFFFC +#define DEC1_MAX_REV_2_1 0x0007FFFC + + +/* Driver Name is used in naming the sysfs directory + * /sys/bus/of_platform/drivers/DRV_NAME + */ +#define DRV_NAME "fsl-pme" + +#define DEFAULT_PDSR_SZ (CONFIG_FSL_PME2_PDSRSIZE << 7) +#define DEFAULT_SRE_SZ (CONFIG_FSL_PME2_SRESIZE << 5) +#define PDSR_TBL_ALIGN (1 << 7) +#define SRE_TBL_ALIGN (1 << 5) +#define DEFAULT_SRFCC 400 + +/* Defaults */ +#define DEFAULT_DEC0_MTE 0x3FFF +#define DEFAULT_DLC_MPM 0xFFFF +#define DEFAULT_DLC_MPE 0xFFFF +/* Boot parameters */ +DECLARE_GLOBAL(max_test_line_per_pat, unsigned int, uint, + DEFAULT_DEC0_MTE, + "Maximum allowed Test Line Executions per pattern, " + "scaled by a factor of 8"); +DECLARE_GLOBAL(max_pat_eval_per_sui, unsigned int, uint, + DEFAULT_DLC_MPE, + "Maximum Pattern Evaluations per SUI, scaled by a factor of 8") +DECLARE_GLOBAL(max_pat_matches_per_sui, unsigned int, uint, + DEFAULT_DLC_MPM, + "Maximum Pattern Matches per SUI"); +/* SRE */ +DECLARE_GLOBAL(sre_rule_num, unsigned int, uint, + CONFIG_FSL_PME2_SRE_CNR, + "Configured Number of Stateful Rules"); +DECLARE_GLOBAL(sre_session_ctx_size, unsigned int, uint, + 1 << CONFIG_FSL_PME2_SRE_CTX_SIZE_PER_SESSION, + "SRE Context Size per Session"); + +/************ + * Section 1 + ************ + * This code is called during kernel early-boot and could never be made + * loadable. + */ +static dma_addr_t dxe_a, sre_a; +static size_t dxe_sz = DEFAULT_PDSR_SZ, sre_sz = DEFAULT_SRE_SZ; + +/* Parse the property to extract the memory location and size and + * memblock_reserve() it. If it isn't supplied, memblock_alloc() the default size. */ +static __init int parse_mem_property(struct device_node *node, const char *name, + dma_addr_t *addr, size_t *sz, u64 align, int zero) +{ + const u32 *pint; + int ret; + + pint = of_get_property(node, name, &ret); + if (!pint || (ret != 16)) { + pr_info("pme: No %s property '%s', using memblock_alloc(0x%016zx)\n", + node->full_name, name, *sz); + *addr = memblock_alloc(*sz, align); + if (zero) + memset(phys_to_virt(*addr), 0, *sz); + return 0; + } + pr_info("pme: Using %s property '%s'\n", node->full_name, name); + /* If using a "zero-pma", don't try to zero it, even if you asked */ + if (zero && of_find_property(node, "zero-pma", &ret)) { + pr_info(" it's a 'zero-pma', not zeroing from s/w\n"); + zero = 0; + } + *addr = ((u64)pint[0] << 32) | (u64)pint[1]; + *sz = ((u64)pint[2] << 32) | (u64)pint[3]; + if((u64)*addr & (align - 1)) { + pr_err("pme: Invalid alignment, address %016llx\n",(u64)*addr); + return -EINVAL; + } + /* Keep things simple, it's either all in the DRAM range or it's all + * outside. */ + if (*addr < memblock_end_of_DRAM()) { + if ((u64)*addr + (u64)*sz > memblock_end_of_DRAM()){ + pr_err("pme: outside DRAM range\n"); + return -EINVAL; + } + if (memblock_reserve(*addr, *sz) < 0) { + pr_err("pme: Failed to reserve %s\n", name); + return -ENOMEM; + } + if (zero) + memset(phys_to_virt(*addr), 0, *sz); + } else if (zero) { + /* map as cacheable, non-guarded */ + void *tmpp = ioremap_prot(*addr, *sz, 0); + memset(tmpp, 0, *sz); + iounmap(tmpp); + } + return 0; +} + +/* No errors/interrupts. Physical addresses are assumed <= 32bits. */ +static int __init fsl_pme2_init(struct device_node *node) +{ + const char *s; + int ret = 0; + + s = of_get_property(node, "fsl,hv-claimable", &ret); + if (s && !strcmp(s, "standby")) { + pr_info(" -> in standby mode\n"); + return 0; + } + /* Check if pdsr memory already allocated */ + if (dxe_a) { + pr_err("pme: Error fsl_pme2_init already done\n"); + return -EINVAL; + } + ret = parse_mem_property(node, "fsl,pme-pdsr", &dxe_a, &dxe_sz, + PDSR_TBL_ALIGN, 0); + if (ret) + return ret; + ret = parse_mem_property(node, "fsl,pme-sre", &sre_a, &sre_sz, + SRE_TBL_ALIGN, 0); + return ret; +} + +__init void pme2_init_early(void) +{ + struct device_node *dn; + int ret; + for_each_compatible_node(dn, NULL, "fsl,pme") { + ret = fsl_pme2_init(dn); + if (ret) + pr_err("pme: Error fsl_pme2_init\n"); + } +} + +/************ + * Section 2 + *********** + * This code is called during driver initialisation. It doesn't do anything with + * the device-tree entries nor the PME device, it simply creates the sysfs stuff + * and gives the user something to hold. This could be made loadable, if there + * was any benefit to doing so - but as the device is already "bound" by static + * code, there's little point to hiding the fact. + */ + +MODULE_AUTHOR("Geoff Thorpe"); +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_DESCRIPTION("FSL PME2 (p4080) device control"); + +/* Opaque pointer target used to represent the PME CCSR map, ... */ +struct pme; + +/* ... and the instance of it. */ +static struct pme *global_pme; +static int pme_err_irq; + +static inline void __pme_out(struct pme *p, u32 offset, u32 val) +{ + u32 __iomem *regs = (void *)p; + out_be32(regs + (offset >> 2), val); +} +#define pme_out(p, r, v) __pme_out(p, PME_REG_##r, v) +static inline u32 __pme_in(struct pme *p, u32 offset) +{ + u32 __iomem *regs = (void *)p; + return in_be32(regs + (offset >> 2)); +} +#define pme_in(p, r) __pme_in(p, PME_REG_##r) + +#define PME_EFQC(en, fq) \ + ({ \ + /* Assume a default delay of 64 cycles */ \ + u8 __i419 = 0x1; \ + u32 __fq419 = (fq) & 0x00ffffff; \ + ((en) ? 0x80000000 : 0) | (__i419 << 28) | __fq419; \ + }) + +#define PME_FACONF_ENABLE 0x00000002 +#define PME_FACONF_RESET 0x00000001 + +/* pme stats accumulator work */ +static void accumulator_update(struct work_struct *work); +void accumulator_update_interval(u32 interval); +static DECLARE_DELAYED_WORK(accumulator_work, accumulator_update); +u32 pme_stat_interval = CONFIG_FSL_PME2_STAT_ACCUMULATOR_UPDATE_INTERVAL; +#define PME_SBE_ERR 0x01000000 +#define PME_DBE_ERR 0x00080000 +#define PME_PME_ERR 0x00000100 +#define PME_ALL_ERR (PME_SBE_ERR | PME_DBE_ERR | PME_PME_ERR) + +static struct of_device_id of_fsl_pme_ids[] = { + { + .compatible = "fsl,pme", + }, + {} +}; +MODULE_DEVICE_TABLE(of, of_fsl_pme_ids); + +/* Pme interrupt handler */ +static irqreturn_t pme_isr(int irq, void *ptr) +{ + static u32 last_isrstate; + u32 isrstate = pme_in(global_pme, ISR) ^ last_isrstate; + + /* What new ISR state has been raise */ + if (!isrstate) + return IRQ_NONE; + if (isrstate & PME_SBE_ERR) + pr_crit("PME: SBE detected\n"); + if (isrstate & PME_DBE_ERR) + pr_crit("PME: DBE detected\n"); + if (isrstate & PME_PME_ERR) + pr_crit("PME: PME serious detected\n"); + /* Clear the ier interrupt bit */ + last_isrstate |= isrstate; + pme_out(global_pme, IER, ~last_isrstate); + return IRQ_HANDLED; +} + +static int of_fsl_pme_remove(struct platform_device *ofdev) +{ + /* Cancel pme accumulator */ + accumulator_update_interval(0); + cancel_delayed_work_sync(&accumulator_work); + /* Disable PME..TODO need to wait till it's quiet */ + pme_out(global_pme, FACONF, PME_FACONF_RESET); + /* Release interrupt */ + if (likely(pme_err_irq != NO_IRQ)) + free_irq(pme_err_irq, &ofdev->dev); + /* Remove sysfs attribute */ + pme2_remove_sysfs_dev_files(ofdev); + /* Unmap controller region */ + iounmap(global_pme); + global_pme = NULL; + return 0; +} + +static int of_fsl_pme_probe(struct platform_device *ofdev) +{ + int ret, err = 0; + void __iomem *regs; + struct device *dev = &ofdev->dev; + struct device_node *nprop = dev->of_node; + u32 clkfreq = DEFAULT_SRFCC * 1000000; + const u32 *value; + const char *s; + int srec_aim = 0, srec_esr = 0; + u32 srecontextsize_code; + u32 dec1; + + /* TODO: This standby handling won't work properly after failover, it's + * just to allow bring up for now. */ + s = of_get_property(nprop, "fsl,hv-claimable", &ret); + if (s && !strcmp(s, "standby")) + return 0; + pme_err_irq = of_irq_to_resource(nprop, 0, NULL); + if (unlikely(pme_err_irq == NO_IRQ)) + dev_warn(dev, "Can't get %s property '%s'\n", nprop->full_name, + "interrupts"); + + /* Get configuration properties from device tree */ + /* First, get register page */ + regs = of_iomap(nprop, 0); + if (regs == NULL) { + dev_err(dev, "of_iomap() failed\n"); + err = -EINVAL; + goto out; + } + + /* Global configuration, leave pme disabled */ + global_pme = (struct pme *)regs; + pme_out(global_pme, FACONF, 0); + pme_out(global_pme, EFQC, PME_EFQC(0, 0)); + + /* TODO: these coherency settings for PMFA, DXE, and SRE force all + * transactions to snoop, as the kernel does not yet support flushing in + * dma_map_***() APIs (ie. h/w can not treat otherwise coherent memory + * in a non-coherent manner, temporarily or otherwise). When the kernel + * supports this, we should tune these settings back to; + * FAMCR = 0x00010001 + * DMCR = 0x00000000 + * SMCR = 0x00000000 + */ + /* PME HW rev 2.1: Added TWC field in FAMCR */ + pme_out(global_pme, FAMCR, 0x11010101); + pme_out(global_pme, DMCR, 0x00000001); + pme_out(global_pme, SMCR, 0x00000211); + + if (likely(pme_err_irq != NO_IRQ)) { + /* Register the pme ISR handler */ + err = request_irq(pme_err_irq, pme_isr, IRQF_SHARED, "pme-err", + dev); + if (err) { + dev_err(dev, "request_irq() failed\n"); + goto out_unmap_ctrl_region; + } + } + +#ifdef CONFIG_FSL_PME2_SRE_AIM + srec_aim = 1; +#endif +#ifdef CONFIG_FSL_PME2_SRE_ESR + srec_esr = 1; +#endif + /* Validate some parameters */ + if (!sre_session_ctx_size || !is_power_of_2(sre_session_ctx_size) || + (sre_session_ctx_size < 32) || + (sre_session_ctx_size > (131072))) { + dev_err(dev, "invalid sre_session_ctx_size\n"); + err = -EINVAL; + goto out_free_irq; + } + srecontextsize_code = ilog2(sre_session_ctx_size); + srecontextsize_code -= 4; + + /* Configure Clock Frequency */ + value = of_get_property(nprop, "clock-frequency", NULL); + if (value) + clkfreq = *value; + pme_out(global_pme, SFRCC, DIV_ROUND_UP(clkfreq, 1000000)); + + pme_out(global_pme, PDSRBAH, upper_32_bits(dxe_a)); + pme_out(global_pme, PDSRBAL, lower_32_bits(dxe_a)); + pme_out(global_pme, SCBARH, upper_32_bits(sre_a)); + pme_out(global_pme, SCBARL, lower_32_bits(sre_a)); + /* Maximum allocated index into the PDSR table available to the DXE + * Rev 2.0: Max 0xF_FFFC + * Rev 2.1: Max 0x7_FFFC + */ + if (PME_REV(pme_in(global_pme, PM_IP_REV1)) == PME_REV_2_0) { + if (((dxe_sz/PDSR_TBL_ALIGN)-1) > DEC1_MAX_REV_2_0) + dec1 = DEC1_MAX_REV_2_0; + else + dec1 = (dxe_sz/PDSR_TBL_ALIGN)-1; + } else { + if (((dxe_sz/PDSR_TBL_ALIGN)-1) > DEC1_MAX_REV_2_1) + dec1 = DEC1_MAX_REV_2_1; + else + dec1 = (dxe_sz/PDSR_TBL_ALIGN)-1; + } + pme_out(global_pme, DEC1, dec1); + /* Maximum allocated index into the PDSR table available to the SRE */ + pme_out(global_pme, SEC2, dec1); + /* Maximum allocated 32-byte offset into SRE Context Table.*/ + if (sre_sz) + pme_out(global_pme, SEC3, (sre_sz/SRE_TBL_ALIGN)-1); + /* Max test line execution */ + pme_out(global_pme, DEC0, max_test_line_per_pat); + pme_out(global_pme, DLC, + (max_pat_eval_per_sui << 16) | max_pat_matches_per_sui); + + /* SREC - SRE Config */ + pme_out(global_pme, SREC, + /* Number of rules in database */ + (sre_rule_num << 0) | + /* Simple Report Enabled */ + ((srec_esr ? 1 : 0) << 18) | + /* Context Size per Session */ + (srecontextsize_code << 19) | + /* Alternate Inclusive Mode */ + ((srec_aim ? 1 : 0) << 29)); + pme_out(global_pme, SEC1, + (CONFIG_FSL_PME2_SRE_MAX_INSTRUCTION_LIMIT << 16) | + CONFIG_FSL_PME2_SRE_MAX_BLOCK_NUMBER); + + /* Setup Accumulator */ + if (pme_stat_interval) + schedule_delayed_work(&accumulator_work, + msecs_to_jiffies(pme_stat_interval)); + /* Create sysfs entries */ + err = pme2_create_sysfs_dev_files(ofdev); + if (err) + goto out_stop_accumulator; + + /* Enable interrupts */ + pme_out(global_pme, IER, PME_ALL_ERR); + dev_info(dev, "ver: 0x%08x\n", pme_in(global_pme, PM_IP_REV1)); + + /* Enable pme */ + pme_out(global_pme, FACONF, PME_FACONF_ENABLE); + return 0; + +out_stop_accumulator: + if (pme_stat_interval) { + accumulator_update_interval(0); + cancel_delayed_work_sync(&accumulator_work); + } +out_free_irq: + if (likely(pme_err_irq != NO_IRQ)) + free_irq(pme_err_irq, &ofdev->dev); +out_unmap_ctrl_region: + pme_out(global_pme, FACONF, PME_FACONF_RESET); + iounmap(global_pme); + global_pme = NULL; +out: + return err; +} + +static struct platform_driver of_fsl_pme_driver = { + .driver = { + .owner = THIS_MODULE, + .name = DRV_NAME, + .of_match_table = of_fsl_pme_ids, + }, + .probe = of_fsl_pme_probe, + .remove = of_fsl_pme_remove, +}; + +static int pme2_ctrl_init(void) +{ + return platform_driver_register(&of_fsl_pme_driver); +} + +static void pme2_ctrl_exit(void) +{ + platform_driver_unregister(&of_fsl_pme_driver); +} + +module_init(pme2_ctrl_init); +module_exit(pme2_ctrl_exit); + +/************ + * Section 3 + ************ + * These APIs are the only functional hooks into the control driver, besides the + * sysfs attributes. + */ + +int pme2_have_control(void) +{ + return global_pme ? 1 : 0; +} +EXPORT_SYMBOL(pme2_have_control); + +int pme2_exclusive_set(struct qman_fq *fq) +{ + if (!pme2_have_control()) + return -ENODEV; + pme_out(global_pme, EFQC, PME_EFQC(1, qman_fq_fqid(fq))); + return 0; +} +EXPORT_SYMBOL(pme2_exclusive_set); + +int pme2_exclusive_unset(void) +{ + if (!pme2_have_control()) + return -ENODEV; + pme_out(global_pme, EFQC, PME_EFQC(0, 0)); + return 0; +} +EXPORT_SYMBOL(pme2_exclusive_unset); + +int pme_attr_set(enum pme_attr attr, u32 val) +{ + u32 mask; + u32 attr_val; + + if (!pme2_have_control()) + return -ENODEV; + + /* Check if Buffer size configuration */ + if (attr >= pme_attr_bsc_first && attr <= pme_attr_bsc_last) { + u32 bsc_pool_id = attr - pme_attr_bsc_first; + u32 bsc_pool_offset = bsc_pool_id % 8; + u32 bsc_pool_mask = ~(0xF << ((7-bsc_pool_offset)*4)); + /* range for val 0..0xB */ + if (val > 0xb) + return -EINVAL; + /* calculate which sky-blue reg */ + /* 0..7 -> bsc_(0..7), PME_REG_BSC0 */ + /* 8..15 -> bsc_(8..15) PME_REG_BSC1*/ + /* ... */ + /* 56..63 -> bsc_(56..63) PME_REG_BSC7*/ + attr_val = pme_in(global_pme, BSC0 + ((bsc_pool_id/8)*4)); + /* Now mask in the new value */ + attr_val = attr_val & bsc_pool_mask; + attr_val = attr_val | (val << ((7-bsc_pool_offset)*4)); + pme_out(global_pme, BSC0 + ((bsc_pool_id/8)*4), attr_val); + return 0; + } + + switch (attr) { + case pme_attr_efqc_int: + if (val > 4) + return -EINVAL; + mask = 0x8FFFFFFF; + attr_val = pme_in(global_pme, EFQC); + /* clear efqc_int */ + attr_val &= mask; + val <<= 28; + val |= attr_val; + pme_out(global_pme, EFQC, val); + break; + + case pme_attr_sw_db: + pme_out(global_pme, SWDB, val); + break; + + case pme_attr_dmcr: + pme_out(global_pme, DMCR, val); + break; + + case pme_attr_smcr: + pme_out(global_pme, SMCR, val); + break; + + case pme_attr_famcr: + pme_out(global_pme, FAMCR, val); + break; + + case pme_attr_kvlts: + if (val < 2 || val > 16) + return -EINVAL; + /* HW range: 1..15, SW range: 2..16 */ + pme_out(global_pme, KVLTS, --val); + break; + + case pme_attr_max_chain_length: + if (val > 0x7FFF) + val = 0x7FFF; + pme_out(global_pme, KEC, val); + break; + + case pme_attr_pattern_range_counter_idx: + if (val > 0x1FFFF) + val = 0x1FFFF; + pme_out(global_pme, DRCIC, val); + break; + + case pme_attr_pattern_range_counter_mask: + if (val > 0x1FFFF) + val = 0x1FFFF; + pme_out(global_pme, DRCMC, val); + break; + + case pme_attr_max_allowed_test_line_per_pattern: + if (val > 0x3FFF) + val = 0x3FFF; + pme_out(global_pme, DEC0, val); + break; + + case pme_attr_max_pattern_matches_per_sui: + /* mpe, mpm */ + if (val > 0xFFFF) + val = 0xFFFF; + mask = 0xFFFF0000; + attr_val = pme_in(global_pme, DLC); + /* clear mpm */ + attr_val &= mask; + val &= ~mask; + val |= attr_val; + pme_out(global_pme, DLC, val); + break; + + case pme_attr_max_pattern_evaluations_per_sui: + /* mpe, mpm */ + if (val > 0xFFFF) + val = 0xFFFF; + mask = 0x0000FFFF; + attr_val = pme_in(global_pme, DLC); + /* clear mpe */ + attr_val &= mask; + /* clear unwanted bits in val*/ + val &= mask; + val <<= 16; + val |= attr_val; + pme_out(global_pme, DLC, val); + break; + + case pme_attr_report_length_limit: + if (val > 0xFFFF) + val = 0xFFFF; + pme_out(global_pme, RLL, val); + break; + + case pme_attr_end_of_simple_sui_report: + /* bit 13 */ + mask = 0x00040000; + attr_val = pme_in(global_pme, SREC); + if (val) + attr_val |= mask; + else + attr_val &= ~mask; + pme_out(global_pme, SREC, attr_val); + break; + + case pme_attr_aim: + /* bit 2 */ + mask = 0x20000000; + attr_val = pme_in(global_pme, SREC); + if (val) + attr_val |= mask; + else + attr_val &= ~mask; + pme_out(global_pme, SREC, attr_val); + break; + + case pme_attr_end_of_sui_reaction_ptr: + if (val > 0xFFFFF) + val = 0xFFFFF; + pme_out(global_pme, ESRP, val); + break; + + case pme_attr_sre_pscl: + pme_out(global_pme, SFRCC, val); + break; + + case pme_attr_sre_max_block_num: + /* bits 17..31 */ + if (val > 0x7FFF) + val = 0x7FFF; + mask = 0xFFFF8000; + attr_val = pme_in(global_pme, SEC1); + /* clear mbn */ + attr_val &= mask; + /* clear unwanted bits in val*/ + val &= ~mask; + val |= attr_val; + pme_out(global_pme, SEC1, val); + break; + + case pme_attr_sre_max_instruction_limit: + /* bits 0..15 */ + if (val > 0xFFFF) + val = 0xFFFF; + mask = 0x0000FFFF; + attr_val = pme_in(global_pme, SEC1); + /* clear mil */ + attr_val &= mask; + /* clear unwanted bits in val*/ + val &= mask; + val <<= 16; + val |= attr_val; + pme_out(global_pme, SEC1, val); + break; + + case pme_attr_srrv0: + pme_out(global_pme, SRRV0, val); + break; + case pme_attr_srrv1: + pme_out(global_pme, SRRV1, val); + break; + case pme_attr_srrv2: + pme_out(global_pme, SRRV2, val); + break; + case pme_attr_srrv3: + pme_out(global_pme, SRRV3, val); + break; + case pme_attr_srrv4: + pme_out(global_pme, SRRV4, val); + break; + case pme_attr_srrv5: + pme_out(global_pme, SRRV5, val); + break; + case pme_attr_srrv6: + pme_out(global_pme, SRRV6, val); + break; + case pme_attr_srrv7: + pme_out(global_pme, SRRV7, val); + break; + case pme_attr_srrfi: + pme_out(global_pme, SRRFI, val); + break; + case pme_attr_srri: + pme_out(global_pme, SRRI, val); + break; + case pme_attr_srrwc: + pme_out(global_pme, SRRWC, val); + break; + case pme_attr_srrr: + pme_out(global_pme, SRRR, val); + break; + case pme_attr_tbt0ecc1th: + pme_out(global_pme, TBT0ECC1TH, val); + break; + case pme_attr_tbt1ecc1th: + pme_out(global_pme, TBT1ECC1TH, val); + break; + case pme_attr_vlt0ecc1th: + pme_out(global_pme, VLT0ECC1TH, val); + break; + case pme_attr_vlt1ecc1th: + pme_out(global_pme, VLT1ECC1TH, val); + break; + case pme_attr_cmecc1th: + pme_out(global_pme, CMECC1TH, val); + break; + case pme_attr_dxcmecc1th: + pme_out(global_pme, DXCMECC1TH, val); + break; + case pme_attr_dxemecc1th: + pme_out(global_pme, DXEMECC1TH, val); + break; + case pme_attr_esr: + pme_out(global_pme, ESR, val); + break; + case pme_attr_pehd: + pme_out(global_pme, PEHD, val); + break; + case pme_attr_ecc1bes: + pme_out(global_pme, ECC1BES, val); + break; + case pme_attr_ecc2bes: + pme_out(global_pme, ECC2BES, val); + break; + case pme_attr_miace: + pme_out(global_pme, MIA_CE, val); + break; + case pme_attr_miacr: + pme_out(global_pme, MIA_CR, val); + break; + case pme_attr_cdcr: + pme_out(global_pme, CDCR, val); + break; + case pme_attr_pmtr: + pme_out(global_pme, PMTR, val); + break; + + default: + pr_err("pme: Unknown attr %u\n", attr); + return -EINVAL; + }; + return 0; +} +EXPORT_SYMBOL(pme_attr_set); + +int pme_attr_get(enum pme_attr attr, u32 *val) +{ + u32 mask; + u32 attr_val; + + if (!pme2_have_control()) + return -ENODEV; + + /* Check if Buffer size configuration */ + if (attr >= pme_attr_bsc_first && attr <= pme_attr_bsc_last) { + u32 bsc_pool_id = attr - pme_attr_bsc_first; + u32 bsc_pool_offset = bsc_pool_id % 8; + /* calculate which sky-blue reg */ + /* 0..7 -> bsc_(0..7), PME_REG_BSC0 */ + /* 8..15 -> bsc_(8..15) PME_REG_BSC1*/ + /* ... */ + /* 56..63 -> bsc_(56..63) PME_REG_BSC7*/ + attr_val = pme_in(global_pme, BSC0 + ((bsc_pool_id/8)*4)); + attr_val = attr_val >> ((7-bsc_pool_offset)*4); + attr_val = attr_val & 0x0000000F; + *val = attr_val; + return 0; + } + + switch (attr) { + case pme_attr_efqc_int: + mask = 0x8FFFFFFF; + attr_val = pme_in(global_pme, EFQC); + attr_val &= ~mask; + attr_val >>= 28; + break; + + case pme_attr_sw_db: + attr_val = pme_in(global_pme, SWDB); + break; + + case pme_attr_dmcr: + attr_val = pme_in(global_pme, DMCR); + break; + + case pme_attr_smcr: + attr_val = pme_in(global_pme, SMCR); + break; + + case pme_attr_famcr: + attr_val = pme_in(global_pme, FAMCR); + break; + + case pme_attr_kvlts: + /* bit 28-31 */ + attr_val = pme_in(global_pme, KVLTS); + attr_val &= 0x0000000F; + /* HW range: 1..15, SW range: 2..16 */ + attr_val += 1; + break; + + case pme_attr_max_chain_length: + /* bit 17-31 */ + attr_val = pme_in(global_pme, KEC); + attr_val &= 0x00007FFF; + break; + + case pme_attr_pattern_range_counter_idx: + /* bit 15-31 */ + attr_val = pme_in(global_pme, DRCIC); + attr_val &= 0x0001FFFF; + break; + + case pme_attr_pattern_range_counter_mask: + /* bit 15-31 */ + attr_val = pme_in(global_pme, DRCMC); + attr_val &= 0x0001FFFF; + break; + + case pme_attr_max_allowed_test_line_per_pattern: + /* bit 18-31 */ + attr_val = pme_in(global_pme, DEC0); + attr_val &= 0x00003FFF; + break; + + case pme_attr_max_pdsr_index: + /* bit 12-31 */ + attr_val = pme_in(global_pme, DEC1); + attr_val &= 0x000FFFFF; + break; + + case pme_attr_max_pattern_matches_per_sui: + attr_val = pme_in(global_pme, DLC); + attr_val &= 0x0000FFFF; + break; + + case pme_attr_max_pattern_evaluations_per_sui: + attr_val = pme_in(global_pme, DLC); + attr_val >>= 16; + break; + + case pme_attr_report_length_limit: + attr_val = pme_in(global_pme, RLL); + /* clear unwanted bits in val*/ + attr_val &= 0x0000FFFF; + break; + + case pme_attr_end_of_simple_sui_report: + /* bit 13 */ + attr_val = pme_in(global_pme, SREC); + attr_val >>= 18; + /* clear unwanted bits in val*/ + attr_val &= 0x00000001; + break; + + case pme_attr_aim: + /* bit 2 */ + attr_val = pme_in(global_pme, SREC); + attr_val >>= 29; + /* clear unwanted bits in val*/ + attr_val &= 0x00000001; + break; + + case pme_attr_sre_context_size: + /* bits 9..12 */ + attr_val = pme_in(global_pme, SREC); + attr_val >>= 19; + /* clear unwanted bits in val*/ + attr_val &= 0x0000000F; + attr_val += 4; + attr_val = 1 << attr_val; + break; + + case pme_attr_sre_rule_num: + /* bits 24..31 */ + attr_val = pme_in(global_pme, SREC); + /* clear unwanted bits in val*/ + attr_val &= 0x000000FF; + /* Multiply by 256 */ + attr_val <<= 8; + break; + + case pme_attr_sre_session_ctx_num: { + u32 ctx_sz = 0; + /* = sre_table_size / sre_session_ctx_size */ + attr_val = pme_in(global_pme, SEC3); + /* clear unwanted bits in val*/ + attr_val &= 0x07FFFFFF; + attr_val += 1; + attr_val *= 32; + ctx_sz = pme_in(global_pme, SREC); + ctx_sz >>= 19; + /* clear unwanted bits in val*/ + ctx_sz &= 0x0000000F; + ctx_sz += 4; + attr_val /= (1 << ctx_sz); + } + break; + + case pme_attr_end_of_sui_reaction_ptr: + /* bits 12..31 */ + attr_val = pme_in(global_pme, ESRP); + /* clear unwanted bits in val*/ + attr_val &= 0x000FFFFF; + break; + + case pme_attr_sre_pscl: + /* bits 22..31 */ + attr_val = pme_in(global_pme, SFRCC); + break; + + case pme_attr_sre_max_block_num: + /* bits 17..31 */ + attr_val = pme_in(global_pme, SEC1); + /* clear unwanted bits in val*/ + attr_val &= 0x00007FFF; + break; + + case pme_attr_sre_max_instruction_limit: + /* bits 0..15 */ + attr_val = pme_in(global_pme, SEC1); + attr_val >>= 16; + break; + + case pme_attr_sre_max_index_size: + /* bits 12..31 */ + attr_val = pme_in(global_pme, SEC2); + /* clear unwanted bits in val*/ + attr_val &= 0x000FFFFF; + break; + + case pme_attr_sre_max_offset_ctrl: + /* bits 5..31 */ + attr_val = pme_in(global_pme, SEC3); + /* clear unwanted bits in val*/ + attr_val &= 0x07FFFFFF; + break; + + case pme_attr_src_id: + /* bits 24..31 */ + attr_val = pme_in(global_pme, SRCIDR); + /* clear unwanted bits in val*/ + attr_val &= 0x000000FF; + break; + + case pme_attr_liodnr: + /* bits 20..31 */ + attr_val = pme_in(global_pme, LIODNR); + /* clear unwanted bits in val*/ + attr_val &= 0x00000FFF; + break; + + case pme_attr_rev1: + /* bits 0..31 */ + attr_val = pme_in(global_pme, PM_IP_REV1); + break; + + case pme_attr_rev2: + /* bits 0..31 */ + attr_val = pme_in(global_pme, PM_IP_REV2); + break; + + case pme_attr_srrr: + attr_val = pme_in(global_pme, SRRR); + break; + + case pme_attr_trunci: + attr_val = pme_in(global_pme, TRUNCI); + break; + + case pme_attr_rbc: + attr_val = pme_in(global_pme, RBC); + break; + + case pme_attr_tbt0ecc1ec: + attr_val = pme_in(global_pme, TBT0ECC1EC); + break; + + case pme_attr_tbt1ecc1ec: + attr_val = pme_in(global_pme, TBT1ECC1EC); + break; + + case pme_attr_vlt0ecc1ec: + attr_val = pme_in(global_pme, VLT0ECC1EC); + break; + + case pme_attr_vlt1ecc1ec: + attr_val = pme_in(global_pme, VLT1ECC1EC); + break; + + case pme_attr_cmecc1ec: + attr_val = pme_in(global_pme, CMECC1EC); + break; + + case pme_attr_dxcmecc1ec: + attr_val = pme_in(global_pme, DXCMECC1EC); + break; + + case pme_attr_dxemecc1ec: + attr_val = pme_in(global_pme, DXEMECC1EC); + break; + + case pme_attr_tbt0ecc1th: + attr_val = pme_in(global_pme, TBT0ECC1TH); + break; + + case pme_attr_tbt1ecc1th: + attr_val = pme_in(global_pme, TBT1ECC1TH); + break; + + case pme_attr_vlt0ecc1th: + attr_val = pme_in(global_pme, VLT0ECC1TH); + break; + + case pme_attr_vlt1ecc1th: + attr_val = pme_in(global_pme, VLT1ECC1TH); + break; + + case pme_attr_cmecc1th: + attr_val = pme_in(global_pme, CMECC1TH); + break; + + case pme_attr_dxcmecc1th: + attr_val = pme_in(global_pme, DXCMECC1TH); + break; + + case pme_attr_dxemecc1th: + attr_val = pme_in(global_pme, DXEMECC1TH); + break; + + case pme_attr_stnib: + attr_val = pme_in(global_pme, STNIB); + break; + + case pme_attr_stnis: + attr_val = pme_in(global_pme, STNIS); + break; + + case pme_attr_stnth1: + attr_val = pme_in(global_pme, STNTH1); + break; + + case pme_attr_stnth2: + attr_val = pme_in(global_pme, STNTH2); + break; + + case pme_attr_stnthv: + attr_val = pme_in(global_pme, STNTHV); + break; + + case pme_attr_stnths: + attr_val = pme_in(global_pme, STNTHS); + break; + + case pme_attr_stnch: + attr_val = pme_in(global_pme, STNCH); + break; + + case pme_attr_stnpm: + attr_val = pme_in(global_pme, STNPM); + break; + + case pme_attr_stns1m: + attr_val = pme_in(global_pme, STNS1M); + break; + + case pme_attr_stnpmr: + attr_val = pme_in(global_pme, STNPMR); + break; + + case pme_attr_stndsr: + attr_val = pme_in(global_pme, STNDSR); + break; + + case pme_attr_stnesr: + attr_val = pme_in(global_pme, STNESR); + break; + + case pme_attr_stns1r: + attr_val = pme_in(global_pme, STNS1R); + break; + + case pme_attr_stnob: + attr_val = pme_in(global_pme, STNOB); + break; + + case pme_attr_mia_byc: + attr_val = pme_in(global_pme, MIA_BYC); + break; + + case pme_attr_mia_blc: + attr_val = pme_in(global_pme, MIA_BLC); + break; + + case pme_attr_isr: + attr_val = pme_in(global_pme, ISR); + break; + + case pme_attr_ecr0: + attr_val = pme_in(global_pme, ECR0); + break; + + case pme_attr_ecr1: + attr_val = pme_in(global_pme, ECR1); + break; + + case pme_attr_esr: + attr_val = pme_in(global_pme, ESR); + break; + + case pme_attr_pmstat: + attr_val = pme_in(global_pme, PMSTAT); + break; + + case pme_attr_pehd: + attr_val = pme_in(global_pme, PEHD); + break; + + case pme_attr_ecc1bes: + attr_val = pme_in(global_pme, ECC1BES); + break; + + case pme_attr_ecc2bes: + attr_val = pme_in(global_pme, ECC2BES); + break; + + case pme_attr_eccaddr: + attr_val = pme_in(global_pme, ECCADDR); + break; + + case pme_attr_ecccode: + attr_val = pme_in(global_pme, ECCCODE); + break; + + case pme_attr_miace: + attr_val = pme_in(global_pme, MIA_CE); + break; + + case pme_attr_miacr: + attr_val = pme_in(global_pme, MIA_CR); + break; + + case pme_attr_cdcr: + attr_val = pme_in(global_pme, CDCR); + break; + + case pme_attr_pmtr: + attr_val = pme_in(global_pme, PMTR); + break; + + case pme_attr_faconf: + attr_val = pme_in(global_pme, FACONF); + break; + + case pme_attr_pdsrbah: + attr_val = pme_in(global_pme, PDSRBAH); + break; + + case pme_attr_pdsrbal: + attr_val = pme_in(global_pme, PDSRBAL); + break; + + case pme_attr_scbarh: + attr_val = pme_in(global_pme, SCBARH); + break; + + case pme_attr_scbarl: + attr_val = pme_in(global_pme, SCBARL); + break; + + case pme_attr_srrv0: + attr_val = pme_in(global_pme, SRRV0); + break; + + case pme_attr_srrv1: + attr_val = pme_in(global_pme, SRRV1); + break; + + case pme_attr_srrv2: + attr_val = pme_in(global_pme, SRRV2); + break; + + case pme_attr_srrv3: + attr_val = pme_in(global_pme, SRRV3); + break; + + case pme_attr_srrv4: + attr_val = pme_in(global_pme, SRRV4); + break; + + case pme_attr_srrv5: + attr_val = pme_in(global_pme, SRRV5); + break; + + case pme_attr_srrv6: + attr_val = pme_in(global_pme, SRRV6); + break; + + case pme_attr_srrv7: + attr_val = pme_in(global_pme, SRRV7); + break; + + case pme_attr_srrfi: + attr_val = pme_in(global_pme, SRRFI); + break; + + case pme_attr_srri: + attr_val = pme_in(global_pme, SRRI); + break; + + case pme_attr_srrwc: + attr_val = pme_in(global_pme, SRRWC); + break; + + default: + pr_err("pme: Unknown attr %u\n", attr); + return -EINVAL; + }; + *val = attr_val; + return 0; +} +EXPORT_SYMBOL(pme_attr_get); + +static enum pme_attr stat_list[] = { + pme_attr_trunci, + pme_attr_rbc, + pme_attr_tbt0ecc1ec, + pme_attr_tbt1ecc1ec, + pme_attr_vlt0ecc1ec, + pme_attr_vlt1ecc1ec, + pme_attr_cmecc1ec, + pme_attr_dxcmecc1ec, + pme_attr_dxemecc1ec, + pme_attr_stnib, + pme_attr_stnis, + pme_attr_stnth1, + pme_attr_stnth2, + pme_attr_stnthv, + pme_attr_stnths, + pme_attr_stnch, + pme_attr_stnpm, + pme_attr_stns1m, + pme_attr_stnpmr, + pme_attr_stndsr, + pme_attr_stnesr, + pme_attr_stns1r, + pme_attr_stnob, + pme_attr_mia_byc, + pme_attr_mia_blc +}; + +static u64 pme_stats[sizeof(stat_list)/sizeof(enum pme_attr)]; +static DEFINE_SPINLOCK(stat_lock); + +int pme_stat_get(enum pme_attr stat, u64 *value, int reset) +{ + int i, ret = 0; + int value_set = 0; + u32 val; + + spin_lock_irq(&stat_lock); + for (i = 0; i < sizeof(stat_list)/sizeof(enum pme_attr); i++) { + if (stat_list[i] == stat) { + ret = pme_attr_get(stat_list[i], &val); + /* Do I need to check ret */ + pme_stats[i] += val; + *value = pme_stats[i]; + value_set = 1; + if (reset) + pme_stats[i] = 0; + break; + } + } + if (!value_set) { + pr_err("pme: Invalid stat request %d\n", stat); + ret = -EINVAL; + } + spin_unlock_irq(&stat_lock); + return ret; +} +EXPORT_SYMBOL(pme_stat_get); + +void accumulator_update_interval(u32 interval) +{ + int schedule = 0; + + spin_lock_irq(&stat_lock); + if (!pme_stat_interval && interval) + schedule = 1; + pme_stat_interval = interval; + spin_unlock_irq(&stat_lock); + if (schedule) + schedule_delayed_work(&accumulator_work, + msecs_to_jiffies(interval)); +} + +static void accumulator_update(struct work_struct *work) +{ + int i, ret; + u32 local_interval; + u32 val; + + spin_lock_irq(&stat_lock); + local_interval = pme_stat_interval; + for (i = 0; i < sizeof(stat_list)/sizeof(enum pme_attr); i++) { + ret = pme_attr_get(stat_list[i], &val); + pme_stats[i] += val; + } + spin_unlock_irq(&stat_lock); + if (local_interval) + schedule_delayed_work(&accumulator_work, + msecs_to_jiffies(local_interval)); +} + --- linux-3.13.0.orig/drivers/staging/fsl_pme2/pme2_db.c +++ linux-3.13.0/drivers/staging/fsl_pme2/pme2_db.c @@ -0,0 +1,572 @@ +/* Copyright 2009-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "pme2_private.h" +#include + +/* Forward declaration */ +static struct miscdevice fsl_pme2_db_dev; + +/* Global spinlock for handling exclusive inc/dec */ +static DEFINE_SPINLOCK(exclusive_lock); + +/* Private structure that is allocated for each open that is done on the + * pme_db device. This is used to maintain the state of a database session */ +struct db_session { + /* The ctx that is needed to communicate with the pme high level */ + struct pme_ctx ctx; + /* Used to track the EXCLUSIVE_INC and EXCLUSIVE_DEC ioctls */ + unsigned int exclusive_counter; +}; + +struct cmd_token { + /* pme high level token */ + struct pme_ctx_token hl_token; + /* data */ + struct qm_fd rx_fd; + /* Completion interface */ + struct completion cb_done; + u8 ern; +}; + +#ifdef CONFIG_COMPAT +static void compat_to_db(struct pme_db *dst, struct compat_pme_db *src) +{ + dst->flags = src->flags; + dst->status = src->status; + dst->input.data = compat_ptr(src->input.data); + dst->input.size = src->input.size; + dst->output.data = compat_ptr(src->output.data); + dst->output.size = src->output.size; +} + +static void db_to_compat(struct compat_pme_db *dst, struct pme_db *src) +{ + dst->flags = src->flags; + dst->status = src->status; + dst->output.data = ptr_to_compat(src->output.data); + dst->output.size = src->output.size; + dst->input.data = ptr_to_compat(src->input.data); + dst->input.size = src->input.size; +} +#endif + +/* PME Compound Frame Index */ +#define INPUT_FRM 1 +#define OUTPUT_FRM 0 + +/* Callback for database operations */ +static void db_cb(struct pme_ctx *ctx, const struct qm_fd *fd, + struct pme_ctx_token *ctx_token) +{ + struct cmd_token *token = (struct cmd_token *)ctx_token; + token->rx_fd = *fd; + complete(&token->cb_done); +} + +static void db_ern_cb(struct pme_ctx *ctx, const struct qm_mr_entry *mr, + struct pme_ctx_token *ctx_token) +{ + struct cmd_token *token = (struct cmd_token *)ctx_token; + token->ern = 1; + token->rx_fd = mr->ern.fd; + complete(&token->cb_done); +} + +struct ctrl_op { + struct pme_ctx_ctrl_token ctx_ctr; + struct completion cb_done; + enum pme_status cmd_status; + u8 res_flag; + u8 ern; +}; + +static void ctrl_cb(struct pme_ctx *ctx, const struct qm_fd *fd, + struct pme_ctx_ctrl_token *token) +{ + struct ctrl_op *ctrl = (struct ctrl_op *)token; + ctrl->cmd_status = pme_fd_res_status(fd); + ctrl->res_flag = pme_fd_res_flags(fd) & PME_STATUS_UNRELIABLE; + complete(&ctrl->cb_done); +} + +static void ctrl_ern_cb(struct pme_ctx *ctx, const struct qm_mr_entry *mr, + struct pme_ctx_ctrl_token *token) +{ + struct ctrl_op *ctrl = (struct ctrl_op *)token; + ctrl->ern = 1; + complete(&ctrl->cb_done); +} + +static int exclusive_inc(struct file *fp, struct db_session *db) +{ + int ret; + + BUG_ON(!db); + BUG_ON(!(db->ctx.flags & PME_CTX_FLAG_EXCLUSIVE)); + spin_lock(&exclusive_lock); + ret = pme_ctx_exclusive_inc(&db->ctx, + (PME_CTX_OP_WAIT | PME_CTX_OP_WAIT_INT)); + if (!ret) + db->exclusive_counter++; + spin_unlock(&exclusive_lock); + return ret; +} + +static int exclusive_dec(struct file *fp, struct db_session *db) +{ + int ret = 0; + + BUG_ON(!db); + BUG_ON(!(db->ctx.flags & PME_CTX_FLAG_EXCLUSIVE)); + spin_lock(&exclusive_lock); + if (!db->exclusive_counter) { + PMEPRERR("exclusivity counter already zero\n"); + ret = -EINVAL; + } else { + pme_ctx_exclusive_dec(&db->ctx); + db->exclusive_counter--; + } + spin_unlock(&exclusive_lock); + return ret; +} + +static int execute_cmd(struct file *fp, struct db_session *db, + struct pme_db *db_cmd) +{ + int ret = 0; + struct cmd_token token; + struct qm_sg_entry tx_comp[2]; + struct qm_fd tx_fd; + void *tx_data = NULL; + void *rx_data = NULL; + u32 src_sz, dst_sz; + dma_addr_t dma_addr; + + memset(&token, 0, sizeof(struct cmd_token)); + memset(tx_comp, 0, sizeof(tx_comp)); + memset(&tx_fd, 0, sizeof(struct qm_fd)); + init_completion(&token.cb_done); + + PMEPRINFO("Received User Space Contiguous mem\n"); + PMEPRINFO("length = %d\n", db_cmd->input.size); + tx_data = kmalloc(db_cmd->input.size, GFP_KERNEL); + if (!tx_data) { + PMEPRERR("Err alloc %zd byte\n", db_cmd->input.size); + return -ENOMEM; + } + + if (copy_from_user(tx_data, + (void __user *)db_cmd->input.data, + db_cmd->input.size)) { + PMEPRERR("Error copying contigous user data\n"); + ret = -EFAULT; + goto free_tx_data; + } + + /* Setup input frame */ + tx_comp[INPUT_FRM].final = 1; + tx_comp[INPUT_FRM].length = db_cmd->input.size; + dma_addr = pme_map(tx_data); + if (pme_map_error(dma_addr)) { + PMEPRERR("Error pme_map_error\n"); + ret = -EIO; + goto free_tx_data; + } + set_sg_addr(&tx_comp[INPUT_FRM], dma_addr); + /* setup output frame, if output is expected */ + if (db_cmd->output.size) { + PMEPRINFO("expect output %d\n", db_cmd->output.size); + rx_data = kmalloc(db_cmd->output.size, GFP_KERNEL); + if (!rx_data) { + PMEPRERR("Err alloc %zd byte", db_cmd->output.size); + ret = -ENOMEM; + goto unmap_input_frame; + } + /* Setup output frame */ + tx_comp[OUTPUT_FRM].length = db_cmd->output.size; + dma_addr = pme_map(rx_data); + if (pme_map_error(dma_addr)) { + PMEPRERR("Error pme_map_error\n"); + ret = -EIO; + goto comp_frame_free_rx; + } + set_sg_addr(&tx_comp[OUTPUT_FRM], dma_addr); + tx_fd.format = qm_fd_compound; + /* Build compound frame */ + dma_addr = pme_map(tx_comp); + if (pme_map_error(dma_addr)) { + PMEPRERR("Error pme_map_error\n"); + ret = -EIO; + goto comp_frame_unmap_output; + } + set_fd_addr(&tx_fd, dma_addr); + } else { + tx_fd.format = qm_fd_sg_big; + tx_fd.length29 = db_cmd->input.size; + /* Build sg frame */ + dma_addr = pme_map(&tx_comp[INPUT_FRM]); + if (pme_map_error(dma_addr)) { + PMEPRERR("Error pme_map_error\n"); + ret = -EIO; + goto unmap_input_frame; + } + set_fd_addr(&tx_fd, dma_addr); + } + ret = pme_ctx_pmtcc(&db->ctx, PME_CTX_OP_WAIT, &tx_fd, + (struct pme_ctx_token *)&token); + if (unlikely(ret)) { + PMEPRINFO("pme_ctx_pmtcc error %d\n", ret); + goto unmap_frame; + } + PMEPRINFO("Wait for completion\n"); + /* Wait for the command to complete */ + wait_for_completion(&token.cb_done); + + if (token.ern) { + ret = -EIO; + goto unmap_frame; + } + + PMEPRINFO("pme2_db: process_completed_token\n"); + PMEPRINFO("pme2_db: received %d frame type\n", token.rx_fd.format); + if (token.rx_fd.format == qm_fd_compound) { + /* Need to copy output */ + src_sz = tx_comp[OUTPUT_FRM].length; + dst_sz = db_cmd->output.size; + PMEPRINFO("pme gen %u data, have space for %u\n", + src_sz, dst_sz); + db_cmd->output.size = min(dst_sz, src_sz); + /* Doesn't make sense we generated more than available space + * should have got truncation. + */ + BUG_ON(dst_sz < src_sz); + if (copy_to_user((void __user *)db_cmd->output.data, rx_data, + db_cmd->output.size)) { + PMEPRERR("Error copying to user data\n"); + ret = -EFAULT; + goto comp_frame_unmap_cf; + } + } else if (token.rx_fd.format == qm_fd_sg_big) + db_cmd->output.size = 0; + else + panic("unexpected frame type received %d\n", + token.rx_fd.format); + + db_cmd->flags = pme_fd_res_flags(&token.rx_fd); + db_cmd->status = pme_fd_res_status(&token.rx_fd); + +unmap_frame: + if (token.rx_fd.format == qm_fd_sg_big) + goto single_frame_unmap_frame; + +comp_frame_unmap_cf: +comp_frame_unmap_output: +comp_frame_free_rx: + kfree(rx_data); + goto unmap_input_frame; +single_frame_unmap_frame: +unmap_input_frame: +free_tx_data: + kfree(tx_data); + + return ret; +} + +static int execute_nop(struct file *fp, struct db_session *db) +{ + int ret = 0; + struct ctrl_op ctx_ctrl = { + .ctx_ctr.cb = ctrl_cb, + .ctx_ctr.ern_cb = ctrl_ern_cb + }; + init_completion(&ctx_ctrl.cb_done); + + ret = pme_ctx_ctrl_nop(&db->ctx, PME_CTX_OP_WAIT|PME_CTX_OP_WAIT_INT, + &ctx_ctrl.ctx_ctr); + if (!ret) + wait_for_completion(&ctx_ctrl.cb_done); + + if (ctx_ctrl.ern) + ret = -EIO; + return ret; +} + +static atomic_t sre_reset_lock = ATOMIC_INIT(1); +static int ioctl_sre_reset(unsigned long arg) +{ + struct pme_db_sre_reset reset_vals; + int i; + u32 srrr_val; + int ret = 0; + + if (copy_from_user(&reset_vals, (struct pme_db_sre_reset __user *)arg, + sizeof(struct pme_db_sre_reset))) + return -EFAULT; + PMEPRINFO("sre_reset:\n"); + PMEPRINFO(" rule_index = 0x%x:\n", reset_vals.rule_index); + PMEPRINFO(" rule_increment = 0x%x:\n", reset_vals.rule_increment); + PMEPRINFO(" rule_repetitions = 0x%x:\n", reset_vals.rule_repetitions); + PMEPRINFO(" rule_reset_interval = 0x%x:\n", + reset_vals.rule_reset_interval); + PMEPRINFO(" rule_reset_priority = 0x%x:\n", + reset_vals.rule_reset_priority); + + /* Validate ranges */ + if ((reset_vals.rule_index >= PME_PMFA_SRE_INDEX_MAX) || + (reset_vals.rule_increment > PME_PMFA_SRE_INC_MAX) || + (reset_vals.rule_repetitions >= PME_PMFA_SRE_REP_MAX) || + (reset_vals.rule_reset_interval >= + PME_PMFA_SRE_INTERVAL_MAX)) + return -ERANGE; + /* Check and make sure only one caller is present */ + if (!atomic_dec_and_test(&sre_reset_lock)) { + /* Someone else is already in this call */ + atomic_inc(&sre_reset_lock); + return -EBUSY; + }; + /* All validated. Run the command */ + for (i = 0; i < PME_SRE_RULE_VECTOR_SIZE; i++) + pme_attr_set(pme_attr_srrv0 + i, reset_vals.rule_vector[i]); + pme_attr_set(pme_attr_srrfi, reset_vals.rule_index); + pme_attr_set(pme_attr_srri, reset_vals.rule_increment); + pme_attr_set(pme_attr_srrwc, + (0xFFF & reset_vals.rule_reset_interval) << 1 | + (reset_vals.rule_reset_priority ? 1 : 0)); + /* Need to set SRRR last */ + pme_attr_set(pme_attr_srrr, reset_vals.rule_repetitions); + do { + mdelay(PME_PMFA_SRE_POLL_MS); + ret = pme_attr_get(pme_attr_srrr, &srrr_val); + if (ret) { + PMEPRCRIT("pme2: Error reading srrr\n"); + /* bail */ + break; + } + /* Check for error */ + else if (srrr_val & 0x10000000) { + PMEPRERR("pme2: Error in SRRR\n"); + ret = -EIO; + } + PMEPRINFO("pme2: srrr count %d\n", srrr_val); + } while (srrr_val); + atomic_inc(&sre_reset_lock); + return ret; +} + +/** + * fsl_pme2_db_open - open the driver + * + * Open the driver and prepare for requests. + * + * Every time an application opens the driver, we create a db_session object + * for that file handle. + */ +static int fsl_pme2_db_open(struct inode *node, struct file *fp) +{ + int ret; + struct db_session *db = NULL; + + db = kzalloc(sizeof(struct db_session), GFP_KERNEL); + if (!db) + return -ENOMEM; + fp->private_data = db; + db->ctx.cb = db_cb; + db->ctx.ern_cb = db_ern_cb; + + ret = pme_ctx_init(&db->ctx, + PME_CTX_FLAG_EXCLUSIVE | + PME_CTX_FLAG_PMTCC | + PME_CTX_FLAG_DIRECT| + PME_CTX_FLAG_LOCAL, + 0, 4, CONFIG_FSL_PME2_DB_QOSOUT_PRIORITY, 0, NULL); + if (ret) { + PMEPRERR("pme_ctx_init %d\n", ret); + goto free_data; + } + + /* enable the context */ + ret = pme_ctx_enable(&db->ctx); + if (ret) { + PMEPRERR("error enabling ctx %d\n", ret); + pme_ctx_finish(&db->ctx); + goto free_data; + } + PMEPRINFO("pme2_db: Finish pme_db open %d\n", smp_processor_id()); + return 0; +free_data: + kfree(fp->private_data); + fp->private_data = NULL; + return ret; +} + +static int fsl_pme2_db_close(struct inode *node, struct file *fp) +{ + int ret = 0; + struct db_session *db = fp->private_data; + + PMEPRINFO("Start pme_db close\n"); + while (db->exclusive_counter) { + pme_ctx_exclusive_dec(&db->ctx); + db->exclusive_counter--; + } + + /* Disable context. */ + ret = pme_ctx_disable(&db->ctx, PME_CTX_OP_WAIT, NULL); + if (ret) + PMEPRCRIT("Error disabling ctx %d\n", ret); + pme_ctx_finish(&db->ctx); + kfree(db); + PMEPRINFO("Finish pme_db close\n"); + return 0; +} + +/* Main switch loop for ioctl operations */ +static long fsl_pme2_db_ioctl(struct file *fp, unsigned int cmd, + unsigned long arg) +{ + struct db_session *db = fp->private_data; + int ret = 0; + + switch (cmd) { + + case PMEIO_PMTCC: { + int ret; + struct pme_db db_cmd; + + /* Copy the command to kernel space */ + if (copy_from_user(&db_cmd, (void __user *)arg, + sizeof(db_cmd))) + return -EFAULT; + ret = execute_cmd(fp, db, &db_cmd); + if (!ret) + ret = copy_to_user((struct pme_db __user *)arg, + &db_cmd, sizeof(db_cmd)); + return ret; + } + break; + + case PMEIO_EXL_INC: + return exclusive_inc(fp, db); + case PMEIO_EXL_DEC: + return exclusive_dec(fp, db); + case PMEIO_EXL_GET: + BUG_ON(!db); + BUG_ON(!(db->ctx.flags & PME_CTX_FLAG_EXCLUSIVE)); + if (copy_to_user((void __user *)arg, + &db->exclusive_counter, + sizeof(db->exclusive_counter))) + ret = -EFAULT; + return ret; + case PMEIO_NOP: + return execute_nop(fp, db); + case PMEIO_SRE_RESET: + return ioctl_sre_reset(arg); + +#ifdef CONFIG_COMPAT + case PMEIO_PMTCC32: { + int ret; + struct pme_db db_cmd; + struct compat_pme_db db_cmd32; + struct compat_pme_db __user *user_db_cmd = compat_ptr(arg); + + /* Copy the command to kernel space */ + if (copy_from_user(&db_cmd32, user_db_cmd, sizeof(db_cmd32))) + return -EFAULT; + /* Convert to 64-bit struct */ + compat_to_db(&db_cmd, &db_cmd32); + ret = execute_cmd(fp, db, &db_cmd); + if (!ret) { + /* Convert to compat struct */ + db_to_compat(&db_cmd32, &db_cmd); + ret = copy_to_user(user_db_cmd, &db_cmd32, + sizeof(*user_db_cmd)); + } + return ret; + } + break; +#endif + } + pr_info("Unknown pme_db ioctl cmd %u\n", cmd); + return -EINVAL; +} + +static const struct file_operations fsl_pme2_db_fops = { + .owner = THIS_MODULE, + .open = fsl_pme2_db_open, + .release = fsl_pme2_db_close, + .unlocked_ioctl = fsl_pme2_db_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = fsl_pme2_db_ioctl, +#endif +}; + +static struct miscdevice fsl_pme2_db_dev = { + .minor = MISC_DYNAMIC_MINOR, + .name = PME_DEV_DB_NODE, + .fops = &fsl_pme2_db_fops +}; + +static int __init fsl_pme2_db_init(void) +{ + int err = 0; + + pr_info("Freescale pme2 db driver\n"); + if (!pme2_have_control()) { + PMEPRERR("not on ctrl-plane\n"); + return -ENODEV; + } + err = misc_register(&fsl_pme2_db_dev); + if (err) { + PMEPRERR("cannot register device\n"); + return err; + } + PMEPRINFO("device %s registered\n", fsl_pme2_db_dev.name); + return 0; +} + +static void __exit fsl_pme2_db_exit(void) +{ + int err = misc_deregister(&fsl_pme2_db_dev); + if (err) { + PMEPRERR("Failed to deregister device %s, " + "code %d\n", fsl_pme2_db_dev.name, err); + return; + } + PMEPRINFO("device %s deregistered\n", fsl_pme2_db_dev.name); +} + +module_init(fsl_pme2_db_init); +module_exit(fsl_pme2_db_exit); + +MODULE_AUTHOR("Freescale Semiconductor - OTC"); +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_DESCRIPTION("FSL PME2 db driver"); --- linux-3.13.0.orig/drivers/staging/fsl_pme2/pme2_high.c +++ linux-3.13.0/drivers/staging/fsl_pme2/pme2_high.c @@ -0,0 +1,944 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "pme2_private.h" + +/* The pme_ctx state machine is described via the following list of + * internal PME_CTX_FLAG_*** bits and cross-referenced to the APIs (and + * functionality) they track. + * + * DEAD: set at any point, an error has been hit, doesn't "cause" disabling or + * any autonomous ref-decrement (been there, hit the gotchas, won't do it + * again). + * + * DISABLING: set by pme_ctx_disable() at any point that is not already + * disabling, disabled, or in ctrl, and the ref is decremented. DISABLING is + * unset by pme_ctx_enable(). + * + * DISABLED: once pme_ctx_disable() has set DISABLING and refs==0, DISABLED is + * set before returning. (Any failure will clear DISABLING and increment the ref + * count.) DISABLING is unset by pme_ctx_enable(). + * + * ENABLING: set by pme_ctx_enable() provided the context is disabled, not dead, + * not in RECONFIG, and not already enabling. Once set, the ref is incremented + * and the tx FQ is scheduled (for non-exclusive flows). If this fails, the ref + * is decremented and the context is re-disabled. ENABLING is unset once + * pme_ctx_enable() completes. + * + * RECONFIG: set by pme_ctx_reconfigure_[rt]x() provided the context is + * disabled, not dead, and not already in reconfig. RECONFIG is cleared prior to + * the function returning. + * + * Simplifications: the do_flag() wrapper provides synchronised modifications of + * the ctx 'flags', and callers can rely on the following implications to reduce + * the number of flags in the masks being passed in; + * DISABLED implies DISABLING (and enable will clear both) + */ + +/* Internal-only ctx flags, mustn't conflict with exported ones */ +#define PME_CTX_FLAG_DEAD 0x80000000 +#define PME_CTX_FLAG_DISABLING 0x40000000 +#define PME_CTX_FLAG_DISABLED 0x20000000 +#define PME_CTX_FLAG_ENABLING 0x10000000 +#define PME_CTX_FLAG_RECONFIG 0x08000000 +#define PME_CTX_FLAG_PRIVATE 0xf8000000 /* mask of them all */ + +/* Internal-only cmd flags, musn't conflict with exported ones */ +#define PME_CTX_OP_INSIDE_DISABLE 0x80000000 +#define PME_CTX_OP_PRIVATE 0x80000000 /* mask of them all */ + +struct pme_nostash { + struct qman_fq fqin; + struct pme_ctx *parent; +}; + +/* This wrapper simplifies conditional (and locked) read-modify-writes to + * 'flags'. Inlining should allow the compiler to optimise it based on the + * parameters, eg. if 'must_be_set'/'must_not_be_set' are zero it will + * degenerate to an unconditional read-modify-write, if 'to_set'/'to_unset' are + * zero it will degenerate to a read-only flag-check, etc. */ +static inline int do_flags(struct pme_ctx *ctx, + u32 must_be_set, u32 must_not_be_set, + u32 to_set, u32 to_unset) +{ + int err = -EBUSY; + unsigned long irqflags; + + spin_lock_irqsave(&ctx->lock, irqflags); + if (((ctx->flags & must_be_set) == must_be_set) && + !(ctx->flags & must_not_be_set)) { + ctx->flags |= to_set; + ctx->flags &= ~to_unset; + err = 0; + } + spin_unlock_irqrestore(&ctx->lock, irqflags); + return err; +} + +static enum qman_cb_dqrr_result cb_dqrr(struct qman_portal *, struct qman_fq *, + const struct qm_dqrr_entry *); +static void cb_ern(struct qman_portal *, struct qman_fq *, + const struct qm_mr_entry *); +static void cb_dc_ern(struct qman_portal *, struct qman_fq *, + const struct qm_mr_entry *); +static void cb_fqs(struct qman_portal *, struct qman_fq *, + const struct qm_mr_entry *); +static const struct qman_fq_cb pme_fq_base_in = { + .fqs = cb_fqs, + .ern = cb_ern +}; +static const struct qman_fq_cb pme_fq_base_out = { + .dqrr = cb_dqrr, + .dc_ern = cb_dc_ern, + .fqs = cb_fqs +}; + +/* Globals related to competition for PME_EFQC, ie. exclusivity */ +static DECLARE_WAIT_QUEUE_HEAD(exclusive_queue); +static spinlock_t exclusive_lock = __SPIN_LOCK_UNLOCKED(exclusive_lock); +static unsigned int exclusive_refs; +static struct pme_ctx *exclusive_ctx; + +/* Index 0..255, bools do indicated which errors are serious + * 0x40, 0x41, 0x48, 0x49, 0x4c, 0x4e, 0x4f, 0x50, 0x51, 0x59, 0x5a, 0x5b, + * 0x5c, 0x5d, 0x5f, 0x60, 0x80, 0xc0, 0xc1, 0xc2, 0xc4, 0xd2, + * 0xd4, 0xd5, 0xd7, 0xd9, 0xda, 0xe0, 0xe7 + */ +static u8 serious_error_vec[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +/* TODO: this is hitting the rx FQ with a large blunt instrument, ie. park() + * does a retire, query, oos, and (re)init. It's possible to force-eligible the + * rx FQ instead, then use a DCA_PK within the cb_dqrr() callback to park it. + * Implement this optimisation later if it's an issue (and incur the additional + * complexity in the state-machine). */ +static int park(struct qman_fq *fq, struct qm_mcc_initfq *initfq) +{ + int ret; + u32 flags; + + ret = qman_retire_fq(fq, &flags); + if (ret) + return ret; + BUG_ON(flags & QMAN_FQ_STATE_BLOCKOOS); + /* We can't revert from now on */ + ret = qman_query_fq(fq, &initfq->fqd); + BUG_ON(ret); + ret = qman_oos_fq(fq); + BUG_ON(ret); + /* can't set QM_INITFQ_WE_OAC and QM_INITFQ_WE_TDTHRESH + * at the same time */ + initfq->we_mask = QM_INITFQ_WE_MASK & ~QM_INITFQ_WE_TDTHRESH; + ret = qman_init_fq(fq, 0, initfq); + BUG_ON(ret); + initfq->we_mask = QM_INITFQ_WE_TDTHRESH; + ret = qman_init_fq(fq, 0, initfq); + BUG_ON(ret); + return 0; +} + +static inline int reconfigure_rx(struct pme_ctx *ctx, int to_park, u8 qosout, + enum qm_channel dest, + const struct qm_fqd_stashing *stashing) +{ + struct qm_mcc_initfq initfq; + u32 flags = QMAN_INITFQ_FLAG_SCHED; + int ret; + + ret = do_flags(ctx, PME_CTX_FLAG_DISABLED, + PME_CTX_FLAG_DEAD | PME_CTX_FLAG_RECONFIG, + PME_CTX_FLAG_RECONFIG, 0); + if (ret) + return ret; + if (to_park) { + ret = park(&ctx->fq, &initfq); + if (ret) + goto done; + } + initfq.we_mask = QM_INITFQ_WE_DESTWQ | QM_INITFQ_WE_FQCTRL; + initfq.fqd.dest.wq = qosout; + if (stashing) { + initfq.we_mask |= QM_INITFQ_WE_CONTEXTA; + initfq.fqd.context_a.stashing = *stashing; + initfq.fqd.fq_ctrl = QM_FQCTRL_CTXASTASHING; + } else + initfq.fqd.fq_ctrl = 0; /* disable stashing */ + if (ctx->flags & PME_CTX_FLAG_LOCAL) + flags |= QMAN_INITFQ_FLAG_LOCAL; + else { + initfq.fqd.dest.channel = dest; + /* Set hold-active *IFF* it's a pool channel */ + if (dest >= qm_channel_pool1) + initfq.fqd.fq_ctrl |= QM_FQCTRL_HOLDACTIVE; + } + ret = qman_init_fq(&ctx->fq, flags, &initfq); +done: + do_flags(ctx, 0, 0, 0, PME_CTX_FLAG_RECONFIG); + return ret; +} + +/* this code is factored out of pme_ctx_disable() and get_ctrl() */ +static int empty_pipeline(struct pme_ctx *ctx, __maybe_unused u32 flags) +{ + int ret; +#ifdef CONFIG_FSL_DPA_CAN_WAIT + if (flags & PME_CTX_OP_WAIT) { + if (flags & PME_CTX_OP_WAIT_INT) { + ret = -EINTR; + wait_event_interruptible(ctx->queue, + !(ret = atomic_read(&ctx->refs))); + } else + wait_event(ctx->queue, + !(ret = atomic_read(&ctx->refs))); + } else +#endif + ret = atomic_read(&ctx->refs); + if (ret) + /* convert a +ve ref-count to a -ve error code */ + ret = -EBUSY; + return ret; +} + +int pme_ctx_init(struct pme_ctx *ctx, u32 flags, u32 bpid, u8 qosin, + u8 qosout, enum qm_channel dest, + const struct qm_fqd_stashing *stashing) +{ + u32 fqid_rx = 0, fqid_tx = 0; + int rxinit = 0, ret = -ENOMEM, fqin_inited = 0; + + ctx->fq.cb = pme_fq_base_out; + atomic_set(&ctx->refs, 0); + ctx->flags = (flags & ~PME_CTX_FLAG_PRIVATE) | PME_CTX_FLAG_DISABLED | + PME_CTX_FLAG_DISABLING; + if (ctx->flags & PME_CTX_FLAG_PMTCC) + ctx->flags |= PME_CTX_FLAG_DIRECT | PME_CTX_FLAG_EXCLUSIVE; + spin_lock_init(&ctx->lock); + init_waitqueue_head(&ctx->queue); + INIT_LIST_HEAD(&ctx->tokens); + ctx->hw_flow = NULL; + ctx->hw_residue = NULL; + + ctx->us_data = kzalloc(sizeof(struct pme_nostash), GFP_KERNEL); + if (!ctx->us_data) + goto err; + ctx->us_data->parent = ctx; + fqid_rx = qm_fq_new(); + fqid_tx = qm_fq_new(); + if (!fqid_rx || !fqid_tx || !ctx->us_data) + goto err; + ctx->us_data->fqin.cb = pme_fq_base_in; + if (qman_create_fq(fqid_rx, QMAN_FQ_FLAG_TO_DCPORTAL | + ((flags & PME_CTX_FLAG_LOCKED) ? + QMAN_FQ_FLAG_LOCKED : 0), + &ctx->us_data->fqin)) + goto err; + fqin_inited = 1; + if (qman_create_fq(fqid_tx, QMAN_FQ_FLAG_NO_ENQUEUE | + ((flags & PME_CTX_FLAG_LOCKED) ? + QMAN_FQ_FLAG_LOCKED : 0), &ctx->fq)) + goto err; + rxinit = 1; + /* Input FQ */ + if (!(flags & PME_CTX_FLAG_DIRECT)) { + ctx->hw_flow = pme_hw_flow_new(); + if (!ctx->hw_flow) + goto err; + } + ret = pme_ctx_reconfigure_tx(ctx, bpid, qosin); + if (ret) + goto err; + /* Output FQ */ + ret = reconfigure_rx(ctx, 0, qosout, dest, stashing); + if (ret) { + /* Need to OOS the FQ before it gets free'd */ + ret = qman_oos_fq(&ctx->us_data->fqin); + BUG_ON(ret); + goto err; + } + return 0; +err: + if (fqid_rx) + qm_fq_free(fqid_rx); + if (fqid_tx) + qm_fq_free(fqid_tx); + if (ctx->hw_flow) + pme_hw_flow_free(ctx->hw_flow); + if (ctx->us_data) { + if (fqin_inited) + qman_destroy_fq(&ctx->us_data->fqin, 0); + kfree(ctx->us_data); + } + if (rxinit) + qman_destroy_fq(&ctx->fq, 0); + return ret; +} +EXPORT_SYMBOL(pme_ctx_init); + +/* NB, we don't lock here because there must be no other callers (even if we + * locked, what does the loser do after we win?) */ +void pme_ctx_finish(struct pme_ctx *ctx) +{ + u32 flags, fqid_rx, fqid_tx; + int ret; + + ret = do_flags(ctx, PME_CTX_FLAG_DISABLED, PME_CTX_FLAG_RECONFIG, 0, 0); + BUG_ON(ret); + /* Rx/Tx are empty (coz ctx is disabled) so retirement should be + * immediate */ + ret = qman_retire_fq(&ctx->us_data->fqin, &flags); + BUG_ON(ret); + BUG_ON(flags & QMAN_FQ_STATE_BLOCKOOS); + ret = qman_retire_fq(&ctx->fq, &flags); + BUG_ON(ret); + BUG_ON(flags & QMAN_FQ_STATE_BLOCKOOS); + /* OOS and free (don't kfree fq, it's a static ctx member) */ + ret = qman_oos_fq(&ctx->us_data->fqin); + BUG_ON(ret); + ret = qman_oos_fq(&ctx->fq); + BUG_ON(ret); + fqid_rx = qman_fq_fqid(&ctx->us_data->fqin); + fqid_tx = qman_fq_fqid(&ctx->fq); + qman_destroy_fq(&ctx->us_data->fqin, 0); + qman_destroy_fq(&ctx->fq, 0); + qm_fq_free(fqid_rx); + qm_fq_free(fqid_tx); + kfree(ctx->us_data); + if (ctx->hw_flow) + pme_hw_flow_free(ctx->hw_flow); + if (ctx->hw_residue) + pme_hw_residue_free(ctx->hw_residue); +} +EXPORT_SYMBOL(pme_ctx_finish); + +int pme_ctx_is_disabled(struct pme_ctx *ctx) +{ + return (ctx->flags & PME_CTX_FLAG_DISABLED); +} +EXPORT_SYMBOL(pme_ctx_is_disabled); + +int pme_ctx_is_dead(struct pme_ctx *ctx) +{ + return (ctx->flags & PME_CTX_FLAG_DEAD); +} +EXPORT_SYMBOL(pme_ctx_is_dead); + +/* predeclare this here because pme_ctx_disable() may invoke it in "privileged + * mode". The code is down with the other ctrl commands, where it belongs. */ +static inline int __update_flow(struct pme_ctx *ctx, u32 flags, + struct pme_flow *params, struct pme_ctx_ctrl_token *token, + int is_disabling); + +/* This gets invoked by pme_ctx_disable() if it runs to completion, otherwise + * it's called from cb_helper. */ +static inline void __disable_done(struct pme_ctx *ctx) +{ + struct qm_mcc_initfq initfq; + int ret = 0; + if (!(ctx->flags & PME_CTX_FLAG_EXCLUSIVE)) { + /* Park fqin (exclusive is always parked) */ + ret = park(&ctx->us_data->fqin, &initfq); + /* All the conditions for park() to succeed should be met. If + * this fails, there's a bug (s/w or h/w). */ + if (ret) + pr_crit("pme2: park() should never fail! (%d)\n", ret); + } + do_flags(ctx, 0, 0, PME_CTX_FLAG_DISABLED, 0); +} + +int pme_ctx_disable(struct pme_ctx *ctx, u32 flags, + struct pme_ctx_ctrl_token *token) +{ + int ret; + + /* We must not (already) be DISABLING */ + ret = do_flags(ctx, 0, PME_CTX_FLAG_DISABLING, + PME_CTX_FLAG_DISABLING, 0); + if (ret) + return ret; + /* Make sure the pipeline is empty */ + atomic_dec(&ctx->refs); + ret = empty_pipeline(ctx, flags); + if (ret) + goto err; + /* We're idle, but is the flow context flushed from PME onboard cache? + * If it's not flushed when the system deallocates it, that 32 bytes + * could be in use later when PME decides to flush a write to it. Need + * to make it coherent again... */ + if (!(ctx->flags & PME_CTX_FLAG_DIRECT)) { + /* Pass on wait flags (if any) but cancel any flow-context field + * writes (this is not the pme_ctx_ctrl_update_flow() API). */ + ret = __update_flow(ctx, flags & ~PME_CMD_FCW_ALL, NULL, + token, 1); + if (ret) + goto err; + return 1; + } + __disable_done(ctx); + return 0; +err: + atomic_inc(&ctx->refs); + do_flags(ctx, 0, 0, 0, PME_CTX_FLAG_DISABLING); + wake_up(&ctx->queue); + return ret; +} +EXPORT_SYMBOL(pme_ctx_disable); + +int pme_ctx_enable(struct pme_ctx *ctx) +{ + int ret; + ret = do_flags(ctx, PME_CTX_FLAG_DISABLED, + PME_CTX_FLAG_DEAD | PME_CTX_FLAG_RECONFIG | + PME_CTX_FLAG_ENABLING, + PME_CTX_FLAG_ENABLING, 0); + if (ret) + return ret; + if (!(ctx->flags & PME_CTX_FLAG_EXCLUSIVE)) { + ret = qman_init_fq(&ctx->us_data->fqin, + QMAN_INITFQ_FLAG_SCHED, NULL); + if (ret) { + do_flags(ctx, 0, 0, 0, PME_CTX_FLAG_ENABLING); + return ret; + } + } + atomic_inc(&ctx->refs); + do_flags(ctx, 0, 0, 0, PME_CTX_FLAG_DISABLED | PME_CTX_FLAG_DISABLING | + PME_CTX_FLAG_ENABLING); + return 0; +} +EXPORT_SYMBOL(pme_ctx_enable); + +int pme_ctx_reconfigure_tx(struct pme_ctx *ctx, u32 bpid, u8 qosin) +{ + struct qm_mcc_initfq initfq; + int ret; + + ret = do_flags(ctx, PME_CTX_FLAG_DISABLED, + PME_CTX_FLAG_DEAD | PME_CTX_FLAG_RECONFIG, + PME_CTX_FLAG_RECONFIG, 0); + if (ret) + return ret; + memset(&initfq,0,sizeof(initfq)); + pme_initfq(&initfq, ctx->hw_flow, qosin, bpid, qman_fq_fqid(&ctx->fq)); + ret = qman_init_fq(&ctx->us_data->fqin, 0, &initfq); + do_flags(ctx, 0, 0, 0, PME_CTX_FLAG_RECONFIG); + return ret; +} +EXPORT_SYMBOL(pme_ctx_reconfigure_tx); + +int pme_ctx_reconfigure_rx(struct pme_ctx *ctx, u8 qosout, + enum qm_channel dest, const struct qm_fqd_stashing *stashing) +{ + return reconfigure_rx(ctx, 1, qosout, dest, stashing); +} +EXPORT_SYMBOL(pme_ctx_reconfigure_rx); + +/* Helpers for 'ctrl' and 'work' APIs. These are used when the 'ctx' in question + * is EXCLUSIVE. */ +static inline void release_exclusive(__maybe_unused struct pme_ctx *ctx) +{ + unsigned long irqflags; + + BUG_ON(exclusive_ctx != ctx); + BUG_ON(!exclusive_refs); + spin_lock_irqsave(&exclusive_lock, irqflags); + if (!(--exclusive_refs)) { + exclusive_ctx = NULL; + pme2_exclusive_unset(); + wake_up(&exclusive_queue); + } + spin_unlock_irqrestore(&exclusive_lock, irqflags); +} +static int __try_exclusive(struct pme_ctx *ctx) +{ + int ret = 0; + unsigned long irqflags; + + spin_lock_irqsave(&exclusive_lock, irqflags); + if (exclusive_refs) { + /* exclusivity already held, continue if we're the owner */ + if (exclusive_ctx != ctx) + ret = -EBUSY; + } else { + /* it's not currently held */ + ret = pme2_exclusive_set(&ctx->us_data->fqin); + if (!ret) + exclusive_ctx = ctx; + } + if (!ret) + exclusive_refs++; + spin_unlock_irqrestore(&exclusive_lock, irqflags); + return ret; +} +/* Use this macro as the wait expression because we don't want to continue + * looping if the reason we're failing is that we don't have CCSR access + * (-ENODEV). */ +#define try_exclusive(ret, ctx) \ + (!(ret = __try_exclusive(ctx)) || (ret == -ENODEV)) +static inline int get_exclusive(struct pme_ctx *ctx, __maybe_unused u32 flags) +{ + int ret; +#ifdef CONFIG_FSL_DPA_CAN_WAIT + if (flags & PME_CTX_OP_WAIT) { + if (flags & PME_CTX_OP_WAIT_INT) { + ret = -EINTR; + wait_event_interruptible(exclusive_queue, + try_exclusive(ret, ctx)); + } else + wait_event(exclusive_queue, + try_exclusive(ret, ctx)); + } else +#endif + ret = __try_exclusive(ctx); + return ret; +} + +/* Used for 'work' APIs, convert PME->QMAN wait flags. The PME and + * QMAN "wait" flags have been aligned so that the below conversion should + * compile with good straight-line speed. */ +static inline u32 ctrl2eq(u32 flags) +{ +#ifdef CONFIG_FSL_DPA_CAN_WAIT + return flags & (QMAN_ENQUEUE_FLAG_WAIT | QMAN_ENQUEUE_FLAG_WAIT_INT); +#else + return flags; +#endif +} + +static inline void release_work(struct pme_ctx *ctx) +{ + if (atomic_dec_and_test(&ctx->refs)) + wake_up(&ctx->queue); +} + +#define BLOCK_NORMAL_WORK (PME_CTX_FLAG_DEAD | PME_CTX_FLAG_DISABLING) +static int try_work(struct pme_ctx *ctx, u32 flags) +{ + atomic_inc(&ctx->refs); + if (unlikely(!(flags & PME_CTX_OP_INSIDE_DISABLE) && + (ctx->flags & BLOCK_NORMAL_WORK))) { + release_work(ctx); + return -EIO; + } + return 0; +} + +static int get_work(struct pme_ctx *ctx, u32 flags) +{ + int ret = 0; +#ifdef CONFIG_FSL_DPA_CAN_WAIT + if (flags & PME_CTX_OP_WAIT) { + if (flags & PME_CTX_OP_WAIT_INT) { + ret = -EINTR; + wait_event_interruptible(ctx->queue, + !(ret = try_work(ctx, flags))); + } else + wait_event(ctx->queue, !try_work(ctx, flags)); + } else +#endif + ret = try_work(ctx, flags); + return ret; +} + +static inline int do_work(struct pme_ctx *ctx, u32 flags, struct qm_fd *fd, + struct pme_ctx_token *token, struct qman_fq *orp_fq, u16 seqnum) +{ + unsigned long irqflags; + int ret = get_work(ctx, flags); + if (ret) + return ret; + if (ctx->flags & PME_CTX_FLAG_EXCLUSIVE) { + ret = get_exclusive(ctx, flags); + if (ret) { + release_work(ctx); + return ret; + } + } + BUG_ON(sizeof(*fd) != sizeof(token->blob)); + memcpy(&token->blob, fd, sizeof(*fd)); + + spin_lock_irqsave(&ctx->lock, irqflags); + list_add_tail(&token->node, &ctx->tokens); + spin_unlock_irqrestore(&ctx->lock, irqflags); + + if (!orp_fq) + ret = qman_enqueue(&ctx->us_data->fqin, fd, ctrl2eq(flags)); + else + ret = qman_enqueue_orp(&ctx->us_data->fqin, fd, ctrl2eq(flags), + orp_fq, seqnum); + if (ret) { + spin_lock_irqsave(&ctx->lock, irqflags); + list_del(&token->node); + spin_unlock_irqrestore(&ctx->lock, irqflags); + if (ctx->flags & PME_CTX_FLAG_EXCLUSIVE) + release_exclusive(ctx); + release_work(ctx); + } + return ret; +} + +static inline int __update_flow(struct pme_ctx *ctx, u32 flags, + struct pme_flow *params, struct pme_ctx_ctrl_token *token, + int is_disabling) +{ + struct qm_fd fd; + int ret; + int hw_res_used = 0; + struct pme_hw_residue *hw_res = pme_hw_residue_new(); + unsigned long irqflags; + + BUG_ON(ctx->flags & PME_CTX_FLAG_DIRECT); + if (!hw_res) + return -ENOMEM; + token->internal_flow_ptr = pme_hw_flow_new(); + if (!token->internal_flow_ptr) { + pme_hw_residue_free(hw_res); + return -ENOMEM; + } + token->base_token.cmd_type = pme_cmd_flow_write; + + flags &= ~PME_CTX_OP_PRIVATE; + /* The callback will want to know this */ + token->base_token.is_disable_flush = is_disabling ? 1 : 0; + flags |= (is_disabling ? PME_CTX_OP_INSIDE_DISABLE : 0); + spin_lock_irqsave(&ctx->lock, irqflags); + if (flags & PME_CTX_OP_RESETRESLEN) { + if (ctx->hw_residue) { + params->ren = 1; + flags |= PME_CMD_FCW_RES; + } else + flags &= ~PME_CMD_FCW_RES; + } + /* allocate residue memory if it is being added */ + if ((flags & PME_CMD_FCW_RES) && params->ren && !ctx->hw_residue) { + ctx->hw_residue = hw_res; + hw_res_used = 1; + } + spin_unlock_irqrestore(&ctx->lock, irqflags); + if (!hw_res_used) + pme_hw_residue_free(hw_res); + /* enqueue the FCW command to PME */ + memset(&fd, 0, sizeof(fd)); + if (params) + memcpy(token->internal_flow_ptr, params, + sizeof(struct pme_flow)); + pme_fd_cmd_fcw(&fd, flags & PME_CMD_FCW_ALL, + (struct pme_flow *)token->internal_flow_ptr, + ctx->hw_residue); + ret = do_work(ctx, flags, &fd, &token->base_token, NULL, 0); + return ret; +} + +int pme_ctx_ctrl_update_flow(struct pme_ctx *ctx, u32 flags, + struct pme_flow *params, struct pme_ctx_ctrl_token *token) +{ + return __update_flow(ctx, flags, params, token, 0); +} +EXPORT_SYMBOL(pme_ctx_ctrl_update_flow); + +int pme_ctx_ctrl_read_flow(struct pme_ctx *ctx, u32 flags, + struct pme_flow *params, struct pme_ctx_ctrl_token *token) +{ + struct qm_fd fd; + + BUG_ON(ctx->flags & (PME_CTX_FLAG_DIRECT | PME_CTX_FLAG_PMTCC)); + token->base_token.cmd_type = pme_cmd_flow_read; + /* enqueue the FCR command to PME */ + token->usr_flow_ptr = params; + token->internal_flow_ptr = pme_hw_flow_new(); + if (!token->internal_flow_ptr) + return -ENOMEM; + memset(&fd, 0, sizeof(fd)); + pme_fd_cmd_fcr(&fd, (struct pme_flow *)token->internal_flow_ptr); + return do_work(ctx, flags, &fd, &token->base_token, NULL, 0); +} +EXPORT_SYMBOL(pme_ctx_ctrl_read_flow); + +int pme_ctx_ctrl_nop(struct pme_ctx *ctx, u32 flags, + struct pme_ctx_ctrl_token *token) +{ + struct qm_fd fd; + + token->base_token.cmd_type = pme_cmd_nop; + /* enqueue the NOP command to PME */ + memset(&fd, 0, sizeof(fd)); + qm_fd_addr_set64(&fd, (unsigned long)token); + pme_fd_cmd_nop(&fd); + return do_work(ctx, flags, &fd, &token->base_token, NULL, 0); +} +EXPORT_SYMBOL(pme_ctx_ctrl_nop); + +static inline void __prep_scan(__maybe_unused struct pme_ctx *ctx, + struct qm_fd *fd, u32 args, struct pme_ctx_token *token) +{ + BUG_ON(ctx->flags & PME_CTX_FLAG_PMTCC); + token->cmd_type = pme_cmd_scan; + pme_fd_cmd_scan(fd, args); +} + +int pme_ctx_scan(struct pme_ctx *ctx, u32 flags, struct qm_fd *fd, u32 args, + struct pme_ctx_token *token) +{ + __prep_scan(ctx, fd, args, token); + return do_work(ctx, flags, fd, token, NULL, 0); +} +EXPORT_SYMBOL(pme_ctx_scan); + +int pme_ctx_scan_orp(struct pme_ctx *ctx, u32 flags, struct qm_fd *fd, u32 args, + struct pme_ctx_token *token, struct qman_fq *orp_fq, u16 seqnum) +{ + __prep_scan(ctx, fd, args, token); + return do_work(ctx, flags, fd, token, orp_fq, seqnum); +} +EXPORT_SYMBOL(pme_ctx_scan_orp); + +int pme_ctx_pmtcc(struct pme_ctx *ctx, u32 flags, struct qm_fd *fd, + struct pme_ctx_token *token) +{ + BUG_ON(!(ctx->flags & PME_CTX_FLAG_PMTCC)); + token->cmd_type = pme_cmd_pmtcc; + pme_fd_cmd_pmtcc(fd); + return do_work(ctx, flags, fd, token, NULL, 0); +} +EXPORT_SYMBOL(pme_ctx_pmtcc); + +int pme_ctx_exclusive_inc(struct pme_ctx *ctx, u32 flags) +{ + return get_exclusive(ctx, flags); +} +EXPORT_SYMBOL(pme_ctx_exclusive_inc); + +void pme_ctx_exclusive_dec(struct pme_ctx *ctx) +{ + release_exclusive(ctx); +} +EXPORT_SYMBOL(pme_ctx_exclusive_dec); + +/* The 99.99% case is that enqueues happen in order or they get order-restored + * by the ORP, and so dequeues of responses happen in order too, so our FIFO + * linked-list of tokens is append-on-enqueue and pop-on-dequeue, and all's + * well. + * + * *EXCEPT*, if ever an enqueue gets rejected ... what then happens is that we + * have dequeues and ERNs to deal with, and the order we see them in is not + * necessarily the linked-list order. So we need to handle this in DQRR and MR + * callbacks, without sacrificing fast-path performance. Ouch. + * + * We use pop_matching_token() to take care of the mess (inlined, of course). */ +#define MATCH(fd1,fd2) \ + ((qm_fd_addr_get64(fd1) == qm_fd_addr_get64(fd2)) && \ + ((fd1)->opaque == (fd2)->opaque)) +static inline struct pme_ctx_token *pop_matching_token(struct pme_ctx *ctx, + const struct qm_fd *fd) +{ + struct pme_ctx_token *token; + const struct qm_fd *t_fd; + unsigned long irqflags; + + /* The fast-path case is that the for() loop actually degenerates into; + * token = list_first_entry(); + * if (likely(MATCH())) + * [done] + * The penalty of the slow-path case is the for() loop plus the fact + * we're optimising for a "likely" match first time, which might hurt + * when that assumption is wrong a few times in succession. */ + spin_lock_irqsave(&ctx->lock, irqflags); + list_for_each_entry(token, &ctx->tokens, node) { + t_fd = (const struct qm_fd *)&token->blob[0]; + if (likely(MATCH(t_fd, fd))) { + list_del(&token->node); + goto found; + } + } + token = NULL; + pr_err("PME2 Could not find matching token!\n"); + BUG(); +found: + spin_unlock_irqrestore(&ctx->lock, irqflags); + return token; +} + +static inline void cb_helper(__always_unused struct qman_portal *portal, + struct pme_ctx *ctx, const struct qm_fd *fd, int error) +{ + struct pme_ctx_token *token; + struct pme_ctx_ctrl_token *ctrl_token; + + /* Resist the urge to use "unlikely" - 'error' is a constant param to an + * inline fn, so the compiler can collapse this completely. */ + if (error) + do_flags(ctx, 0, 0, PME_CTX_FLAG_DEAD, 0); + token = pop_matching_token(ctx, fd); + if (likely(token->cmd_type == pme_cmd_scan)) + ctx->cb(ctx, fd, token); + else if (token->cmd_type == pme_cmd_pmtcc) + ctx->cb(ctx, fd, token); + else { + /* outcast ctx and call supplied callback */ + ctrl_token = container_of(token, struct pme_ctx_ctrl_token, + base_token); + if (token->cmd_type == pme_cmd_flow_write) { + /* Release the allocated flow context */ + pme_hw_flow_free(ctrl_token->internal_flow_ptr); + /* Is this pme_ctx_disable() completion? */ + if (token->is_disable_flush) + __disable_done(ctx); + } else if (token->cmd_type == pme_cmd_flow_read) { + /* Copy read result */ + memcpy(ctrl_token->usr_flow_ptr, + ctrl_token->internal_flow_ptr, + sizeof(struct pme_flow)); + /* Release the allocated flow context */ + pme_hw_flow_free(ctrl_token->internal_flow_ptr); + } + ctrl_token->cb(ctx, fd, ctrl_token); + } + /* Consume the frame */ + if (ctx->flags & PME_CTX_FLAG_EXCLUSIVE) + release_exclusive(ctx); + if (atomic_dec_and_test(&ctx->refs)) + wake_up(&ctx->queue); +} + +/* TODO: this scheme does not allow PME receivers to use held-active at all. Eg. + * there's no configuration of held-active for 'fq', and if there was, there's + * (a) nothing in the cb_dqrr() to support "park" or "defer" logic, and (b) + * nothing in cb_fqs() to support a delayed FQPN (DCAP_PK) notification. */ +static enum qman_cb_dqrr_result cb_dqrr(struct qman_portal *portal, + struct qman_fq *fq, const struct qm_dqrr_entry *dq) +{ + u8 status = (u8)pme_fd_res_status(&dq->fd); + u8 flags = pme_fd_res_flags(&dq->fd); + struct pme_ctx *ctx = (struct pme_ctx *)fq; + + /* Put context into dead state is an unreliable or serious error is + * received + */ + if (unlikely(flags & PME_STATUS_UNRELIABLE)) + cb_helper(portal, ctx, &dq->fd, 1); + else if (unlikely((serious_error_vec[status]))) + cb_helper(portal, ctx, &dq->fd, 1); + else + cb_helper(portal, ctx, &dq->fd, 0); + + return qman_cb_dqrr_consume; +} + +static void cb_ern(__always_unused struct qman_portal *portal, + struct qman_fq *fq, const struct qm_mr_entry *mr) +{ + struct pme_ctx *ctx; + struct pme_nostash *data; + struct pme_ctx_token *token; + + data = container_of(fq, struct pme_nostash, fqin); + ctx = data->parent; + + token = pop_matching_token(ctx, &mr->ern.fd); + if (likely(token->cmd_type == pme_cmd_scan)) { + BUG_ON(!ctx->ern_cb); + ctx->ern_cb(ctx, mr, token); + } else if (token->cmd_type == pme_cmd_pmtcc) { + BUG_ON(!ctx->ern_cb); + ctx->ern_cb(ctx, mr, token); + } else { + struct pme_ctx_ctrl_token *ctrl_token; + /* outcast ctx and call supplied callback */ + ctrl_token = container_of(token, struct pme_ctx_ctrl_token, + base_token); + if (token->cmd_type == pme_cmd_flow_write) { + /* Release the allocated flow context */ + pme_hw_flow_free(ctrl_token->internal_flow_ptr); + } else if (token->cmd_type == pme_cmd_flow_read) { + /* Copy read result */ + memcpy(ctrl_token->usr_flow_ptr, + ctrl_token->internal_flow_ptr, + sizeof(struct pme_flow)); + /* Release the allocated flow context */ + pme_hw_flow_free(ctrl_token->internal_flow_ptr); + } + BUG_ON(!ctrl_token->ern_cb); + ctrl_token->ern_cb(ctx, mr, ctrl_token); + } + /* Consume the frame */ + if (ctx->flags & PME_CTX_FLAG_EXCLUSIVE) + release_exclusive(ctx); + if (atomic_dec_and_test(&ctx->refs)) + wake_up(&ctx->queue); +} + +static void cb_dc_ern(struct qman_portal *portal, struct qman_fq *fq, + const struct qm_mr_entry *mr) +{ + struct pme_ctx *ctx = (struct pme_ctx *)fq; + /* This, umm, *shouldn't* happen. It's pretty bad. Things are expected + * to fall apart here, but we'll continue long enough to get out of + * interrupt context and let the user unwind whatever they can. */ + pr_err("PME2 h/w enqueue rejection - expect catastrophe!\n"); + cb_helper(portal, ctx, &mr->dcern.fd, 1); +} + +static void cb_fqs(__always_unused struct qman_portal *portal, + __always_unused struct qman_fq *fq, + const struct qm_mr_entry *mr) +{ + u8 verb = mr->verb & QM_MR_VERB_TYPE_MASK; + if (verb == QM_MR_VERB_FQRNI) + return; + /* nothing else is supposed to occur */ + BUG(); +} + --- linux-3.13.0.orig/drivers/staging/fsl_pme2/pme2_low.c +++ linux-3.13.0/drivers/staging/fsl_pme2/pme2_low.c @@ -0,0 +1,276 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "pme2_private.h" + +MODULE_AUTHOR("Geoff Thorpe"); +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_DESCRIPTION("FSL PME2 (p4080) device usage"); + +#define PME_RESIDUE_SIZE 128 +#define PME_RESIDUE_ALIGN 64 +#define PME_FLOW_SIZE sizeof(struct pme_flow) +#define PME_FLOW_ALIGN 32 +static struct kmem_cache *slab_residue; +static struct kmem_cache *slab_flow; +static struct kmem_cache *slab_fq; + +/* Hack to support "pme_map()". The point of this is that dma_map_single() now + * requires a non-NULL device, so the idea is that address mapping must be + * device-sensitive. Now the PAMU IO-MMU already takes care of this, as can be + * seen by the device-tree structure generated by the hypervisor (each portal + * node has sub-nodes for each h/w end-point it provides access to, and each + * sub-node has its own LIODN configuration). So we just need to map cpu + * pointers to (guest-)physical address and the PAMU takes care of the rest, so + * this doesn't need to be portal-sensitive nor device-sensitive. */ +static struct platform_device *pdev; + +static int pme2_low_init(void) +{ + int ret = -ENOMEM; + + slab_residue = kmem_cache_create("pme2_residue", PME_RESIDUE_SIZE, + PME_RESIDUE_ALIGN, SLAB_HWCACHE_ALIGN, NULL); + if (!slab_residue) + goto end; + slab_flow = kmem_cache_create("pme2_flow", PME_FLOW_SIZE, + PME_FLOW_ALIGN, 0, NULL); + if (!slab_flow) + goto end; + slab_fq = kmem_cache_create("pme2_fqslab", sizeof(struct qman_fq), + __alignof__(struct qman_fq), SLAB_HWCACHE_ALIGN, NULL); + if (!slab_fq) + goto end; + ret = -ENODEV; + pdev = platform_device_alloc("pme", -1); + if (!pdev) + goto end; + if (dma_set_mask(&pdev->dev, DMA_BIT_MASK(40))) + goto end; + if (platform_device_add(pdev)) + goto end; + return 0; +end: + if (pdev) { + platform_device_put(pdev); + pdev = NULL; + } + if (slab_flow) { + kmem_cache_destroy(slab_flow); + slab_flow = NULL; + } + if (slab_residue) { + kmem_cache_destroy(slab_residue); + slab_residue = NULL; + } + if (slab_fq) { + kmem_cache_destroy(slab_fq); + slab_fq = NULL; + } + return ret; +} + +static void pme2_low_exit(void) +{ + platform_device_del(pdev); + platform_device_put(pdev); + pdev = NULL; + kmem_cache_destroy(slab_fq); + kmem_cache_destroy(slab_flow); + kmem_cache_destroy(slab_residue); + slab_fq = slab_flow = slab_residue = NULL; +} + +module_init(pme2_low_init); +module_exit(pme2_low_exit); + +struct qman_fq *slabfq_alloc(void) +{ + return kmem_cache_alloc(slab_fq, GFP_KERNEL); +} + +void slabfq_free(struct qman_fq *fq) +{ + kmem_cache_free(slab_fq, fq); +} + +/***********************/ +/* low-level functions */ +/***********************/ + +struct pme_hw_residue *pme_hw_residue_new(void) +{ + return kmem_cache_alloc(slab_residue, GFP_KERNEL); +} +EXPORT_SYMBOL(pme_hw_residue_new); + +void pme_hw_residue_free(struct pme_hw_residue *p) +{ + kmem_cache_free(slab_residue, p); +} +EXPORT_SYMBOL(pme_hw_residue_free); + +struct pme_hw_flow *pme_hw_flow_new(void) +{ + struct pme_flow *flow = kmem_cache_zalloc(slab_flow, GFP_KERNEL); + return (struct pme_hw_flow *)flow; +} +EXPORT_SYMBOL(pme_hw_flow_new); + +void pme_hw_flow_free(struct pme_hw_flow *p) +{ + kmem_cache_free(slab_flow, p); +} +EXPORT_SYMBOL(pme_hw_flow_free); + +static const struct pme_flow default_sw_flow = { + .sos = 1, + .srvm = 0, + .esee = 1, + .ren = 0, + .rlen = 0, + .seqnum_hi = 0, + .seqnum_lo = 0, + .sessionid = 0x7ffffff, + .rptr_hi = 0, + .rptr_lo = 0, + .clim = 0xffff, + .mlim = 0xffff +}; + +void pme_sw_flow_init(struct pme_flow *flow) +{ + memcpy(flow, &default_sw_flow, sizeof(*flow)); +} +EXPORT_SYMBOL(pme_sw_flow_init); + +void pme_initfq(struct qm_mcc_initfq *initfq, struct pme_hw_flow *flow, u8 qos, + u8 rbpid, u32 rfqid) +{ + struct pme_context_a *pme_a = + (struct pme_context_a *)&initfq->fqd.context_a; + struct pme_context_b *pme_b = + (struct pme_context_b *)&initfq->fqd.context_b; + + initfq->we_mask = QM_INITFQ_WE_DESTWQ | QM_INITFQ_WE_CONTEXTA | + QM_INITFQ_WE_CONTEXTB; + initfq->fqd.dest.channel = qm_channel_pme; + initfq->fqd.dest.wq = qos; + if (flow) { + dma_addr_t fcp = flow_map((struct pme_flow *)flow); + pme_a->mode = pme_mode_flow; + pme_context_a_set64(pme_a, fcp); + } else { + pme_a->mode = pme_mode_direct; + pme_context_a_set64(pme_a, 0); + } + pme_b->rbpid = rbpid; + pme_b->rfqid = rfqid; +} +EXPORT_SYMBOL(pme_initfq); + +void pme_fd_cmd_nop(struct qm_fd *fd) +{ + struct pme_cmd_nop *nop = (struct pme_cmd_nop *)&fd->cmd; + nop->cmd = pme_cmd_nop; +} +EXPORT_SYMBOL(pme_fd_cmd_nop); + +void pme_fd_cmd_fcw(struct qm_fd *fd, u8 flags, struct pme_flow *flow, + struct pme_hw_residue *residue) +{ + dma_addr_t f; + struct pme_cmd_flow_write *fcw = (struct pme_cmd_flow_write *)&fd->cmd; + + BUG_ON(!flow); + BUG_ON((unsigned long)flow & 31); + fcw->cmd = pme_cmd_flow_write; + fcw->flags = flags; + if (flags & PME_CMD_FCW_RES) { + if (residue) { + dma_addr_t rptr = residue_map(residue); + BUG_ON(!residue); + BUG_ON((unsigned long)residue & 63); + pme_flow_rptr_set64(flow, rptr); + } else + pme_flow_rptr_set64(flow, 0); + } + f = flow_map(flow); + qm_fd_addr_set64(fd, f); + fd->format = qm_fd_contig; + fd->offset = 0; + fd->length20 = sizeof(*flow); +} +EXPORT_SYMBOL(pme_fd_cmd_fcw); + +void pme_fd_cmd_fcr(struct qm_fd *fd, struct pme_flow *flow) +{ + dma_addr_t f; + struct pme_cmd_flow_read *fcr = (struct pme_cmd_flow_read *)&fd->cmd; + + BUG_ON(!flow); + BUG_ON((unsigned long)flow & 31); + fcr->cmd = pme_cmd_flow_read; + f = flow_map(flow); + qm_fd_addr_set64(fd, f); + fd->format = qm_fd_contig; + fd->offset = 0; + fd->length20 = sizeof(*flow); +} +EXPORT_SYMBOL(pme_fd_cmd_fcr); + +void pme_fd_cmd_pmtcc(struct qm_fd *fd) +{ + struct pme_cmd_pmtcc *pmtcc = (struct pme_cmd_pmtcc *)&fd->cmd; + pmtcc->cmd = pme_cmd_pmtcc; +} +EXPORT_SYMBOL(pme_fd_cmd_pmtcc); + +void pme_fd_cmd_scan(struct qm_fd *fd, u32 args) +{ + struct pme_cmd_scan *scan = (struct pme_cmd_scan *)&fd->cmd; + fd->cmd = args; + scan->cmd = pme_cmd_scan; +} +EXPORT_SYMBOL(pme_fd_cmd_scan); + +dma_addr_t pme_map(void *ptr) +{ + return dma_map_single(&pdev->dev, ptr, 1, DMA_BIDIRECTIONAL); +} +EXPORT_SYMBOL(pme_map); + +int pme_map_error(dma_addr_t dma_addr) +{ + return dma_mapping_error(&pdev->dev, dma_addr); +} +EXPORT_SYMBOL(pme_map_error); + --- linux-3.13.0.orig/drivers/staging/fsl_pme2/pme2_private.h +++ linux-3.13.0/drivers/staging/fsl_pme2/pme2_private.h @@ -0,0 +1,180 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "pme2_sys.h" +#include + +#undef PME2_DEBUG + +#ifdef PME2_DEBUG +#define PMEPRINFO(fmt, args...) pr_info("PME2: %s: " fmt, __func__, ## args) +#else +#define PMEPRINFO(fmt, args...) +#endif + +#define PMEPRERR(fmt, args...) pr_err("PME2: %s: " fmt, __func__, ## args) +#define PMEPRCRIT(fmt, args...) pr_crit("PME2: %s: " fmt, __func__, ## args) + +#ifdef CONFIG_FSL_PME2_CTRL +/* Hooks */ +int pme2_create_sysfs_dev_files(struct platform_device *ofdev); +void pme2_remove_sysfs_dev_files(struct platform_device *ofdev); +void accumulator_update_interval(u32 interval); +#endif + +static inline void set_fd_addr(struct qm_fd *fd, dma_addr_t addr) +{ + qm_fd_addr_set64(fd, addr); +} +static inline dma_addr_t get_fd_addr(const struct qm_fd *fd) +{ + return (dma_addr_t)qm_fd_addr_get64(fd); +} +static inline void set_sg_addr(struct qm_sg_entry *sg, dma_addr_t addr) +{ + qm_sg_entry_set64(sg, addr); +} +static inline dma_addr_t get_sg_addr(const struct qm_sg_entry *sg) +{ + return (dma_addr_t)qm_sg_entry_get64(sg); +} + +/******************/ +/* Datapath types */ +/******************/ + +enum pme_mode { + pme_mode_direct = 0x00, + pme_mode_flow = 0x80 +}; + +struct pme_context_a { + enum pme_mode mode:8; + u8 __reserved; + /* Flow Context pointer (48-bit), ignored if mode==direct */ + u16 flow_hi; + u32 flow_lo; +} __packed; +static inline u64 pme_context_a_get64(const struct pme_context_a *p) +{ + return ((u64)p->flow_hi << 32) | (u64)p->flow_lo; +} +/* Macro, so we compile better if 'v' isn't always 64-bit */ +#define pme_context_a_set64(p, v) \ + do { \ + struct pme_context_a *__p931 = (p); \ + __p931->flow_hi = upper_32_bits(v); \ + __p931->flow_lo = lower_32_bits(v); \ + } while (0) + +struct pme_context_b { + u32 rbpid:8; + u32 rfqid:24; +} __packed; + + +/* This is the 32-bit frame "cmd/status" field, sent to PME */ +union pme_cmd { + struct pme_cmd_nop { + enum pme_cmd_type cmd:3; + } nop; + struct pme_cmd_flow_read { + enum pme_cmd_type cmd:3; + } fcr; + struct pme_cmd_flow_write { + enum pme_cmd_type cmd:3; + u8 __reserved:5; + u8 flags; /* See PME_CMD_FCW_*** */ + } __packed fcw; + struct pme_cmd_pmtcc { + enum pme_cmd_type cmd:3; + } pmtcc; + struct pme_cmd_scan { + union { + struct { + enum pme_cmd_type cmd:3; + u8 flags:5; /* See PME_CMD_SCAN_*** */ + } __packed; + }; + u8 set; + u16 subset; + } __packed scan; +}; + +/* The exported macro forms a "scan_args" u32 from 3 inputs, these private + * inlines do the inverse, if you need to crack one apart. */ +static inline u8 scan_args_get_flags(u32 args) +{ + return args >> 24; +} +static inline u8 scan_args_get_set(u32 args) +{ + return (args >> 16) & 0xff; +} +static inline u16 scan_args_get_subset(u32 args) +{ + return args & 0xffff; +} + +/* Hook from pme2_high to pme2_low */ +struct qman_fq *slabfq_alloc(void); +void slabfq_free(struct qman_fq *fq); + +/* Hook from pme2_high to pme2_ctrl */ +int pme2_have_control(void); +int pme2_exclusive_set(struct qman_fq *fq); +int pme2_exclusive_unset(void); + +#define DECLARE_GLOBAL(name, t, mt, def, desc) \ + static t name = def; \ + module_param(name, mt, 0644); \ + MODULE_PARM_DESC(name, desc ", default: " __stringify(def)); + +/* Constants used by the SRE ioctl. */ +#define PME_PMFA_SRE_POLL_MS 100 +#define PME_PMFA_SRE_INDEX_MAX (1 << 27) +#define PME_PMFA_SRE_INC_MAX (1 << 12) +#define PME_PMFA_SRE_REP_MAX (1 << 28) +#define PME_PMFA_SRE_INTERVAL_MAX (1 << 12) + +/* Encapsulations for mapping */ +#define flow_map(flow) \ +({ \ + struct pme_flow *__f913 = (flow); \ + pme_map(__f913); \ +}) + +#define residue_map(residue) \ +({ \ + struct pme_hw_residue *__f913 = (residue); \ + pme_map(__f913); \ +}) + --- linux-3.13.0.orig/drivers/staging/fsl_pme2/pme2_regs.h +++ linux-3.13.0/drivers/staging/fsl_pme2/pme2_regs.h @@ -0,0 +1,173 @@ +/* Copyright 2009-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef PME2_REGS_H +#define PME2_REGS_H + +#define PME_REG_ISR 0x000 +#define PME_REG_IER 0x004 +#define PME_REG_ISDR 0x008 +#define PME_REG_IIR 0x00C +#define PME_REG_RLL 0x014 +#define PME_REG_CDCR 0x018 +#define PME_REG_TRUNCI 0x024 +#define PME_REG_RBC 0x028 +#define PME_REG_ESR 0x02C +#define PME_REG_ECR0 0x030 +#define PME_REG_ECR1 0x034 +#define PME_REG_EFQC 0x050 +#define PME_REG_FACONF 0x060 +#define PME_REG_PMSTAT 0x064 +#define PME_REG_FAMCR 0x068 +#define PME_REG_PMTR 0x06C +#define PME_REG_PEHD 0x074 +#define PME_REG_BSC0 0x080 +#define PME_REG_BSC1 0x084 +#define PME_REG_BSC2 0x088 +#define PME_REG_BSC3 0x08C +#define PME_REG_BSC4 0x090 +#define PME_REG_BSC5 0x094 +#define PME_REG_BSC6 0x098 +#define PME_REG_BSC7 0x09C +#define PME_REG_QMBFD0 0x0E0 +#define PME_REG_QMBFD1 0x0E4 +#define PME_REG_QMBFD2 0x0E8 +#define PME_REG_QMBFD3 0x0EC +#define PME_REG_QMBCTXTAH 0x0F0 +#define PME_REG_QMBCTXTAL 0x0F4 +#define PME_REG_QMBCTXTB 0x0F8 +#define PME_REG_QMBCTL 0x0FC +#define PME_REG_ECC1BES 0x100 +#define PME_REG_ECC2BES 0x104 +#define PME_REG_ECCADDR 0x110 +#define PME_REG_ECCCODE 0x118 +#define PME_REG_TBT0ECC1TH 0x180 +#define PME_REG_TBT0ECC1EC 0x184 +#define PME_REG_TBT1ECC1TH 0x188 +#define PME_REG_TBT1ECC1EC 0x18C +#define PME_REG_VLT0ECC1TH 0x190 +#define PME_REG_VLT0ECC1EC 0x194 +#define PME_REG_VLT1ECC1TH 0x198 +#define PME_REG_VLT1ECC1EC 0x19C +#define PME_REG_CMECC1TH 0x1A0 +#define PME_REG_CMECC1EC 0x1A4 +#define PME_REG_DXCMECC1TH 0x1B0 +#define PME_REG_DXCMECC1EC 0x1B4 +#define PME_REG_DXEMECC1TH 0x1C0 +#define PME_REG_DXEMECC1EC 0x1C4 +#define PME_REG_STNIB 0x200 +#define PME_REG_STNIS 0x204 +#define PME_REG_STNTH1 0x208 +#define PME_REG_STNTH2 0x20C +#define PME_REG_STNTHV 0x210 +#define PME_REG_STNTHS 0x214 +#define PME_REG_STNCH 0x218 +#define PME_REG_SWDB 0x21C +#define PME_REG_KVLTS 0x220 +#define PME_REG_KEC 0x224 +#define PME_REG_STNPM 0x280 +#define PME_REG_STNS1M 0x284 +#define PME_REG_DRCIC 0x288 +#define PME_REG_DRCMC 0x28C +#define PME_REG_STNPMR 0x290 +#define PME_REG_PDSRBAH 0x2A0 +#define PME_REG_PDSRBAL 0x2A4 +#define PME_REG_DMCR 0x2A8 +#define PME_REG_DEC0 0x2AC +#define PME_REG_DEC1 0x2B0 +#define PME_REG_DLC 0x2C0 +#define PME_REG_STNDSR 0x300 +#define PME_REG_STNESR 0x304 +#define PME_REG_STNS1R 0x308 +#define PME_REG_STNOB 0x30C +#define PME_REG_SCBARH 0x310 +#define PME_REG_SCBARL 0x314 +#define PME_REG_SMCR 0x318 +#define PME_REG_SREC 0x320 +#define PME_REG_ESRP 0x328 +#define PME_REG_SRRV0 0x338 +#define PME_REG_SRRV1 0x33C +#define PME_REG_SRRV2 0x340 +#define PME_REG_SRRV3 0x344 +#define PME_REG_SRRV4 0x348 +#define PME_REG_SRRV5 0x34C +#define PME_REG_SRRV6 0x350 +#define PME_REG_SRRV7 0x354 +#define PME_REG_SRRFI 0x358 +#define PME_REG_SRRI 0x360 +#define PME_REG_SRRR 0x364 +#define PME_REG_SRRWC 0x368 +#define PME_REG_SFRCC 0x36C +#define PME_REG_SEC1 0x370 +#define PME_REG_SEC2 0x374 +#define PME_REG_SEC3 0x378 +#define PME_REG_MIA_BYC 0x380 +#define PME_REG_MIA_BLC 0x384 +#define PME_REG_MIA_CE 0x388 +#define PME_REG_MIA_CR 0x390 +#define PME_REG_PPIDMR0 0x800 +#define PME_REG_PPIDMR1 0x804 +#define PME_REG_PPIDMR2 0x808 +#define PME_REG_PPIDMR3 0x80C +#define PME_REG_PPIDMR4 0x810 +#define PME_REG_PPIDMR5 0x814 +#define PME_REG_PPIDMR6 0x818 +#define PME_REG_PPIDMR7 0x81C +#define PME_REG_PPIDMR8 0x820 +#define PME_REG_PPIDMR9 0x824 +#define PME_REG_PPIDMR10 0x828 +#define PME_REG_PPIDMR11 0x82C +#define PME_REG_PPIDMR12 0x830 +#define PME_REG_PPIDMR13 0x834 +#define PME_REG_PPIDMR14 0x838 +#define PME_REG_PPIDMR15 0x83C +#define PME_REG_PPIDMR16 0x840 +#define PME_REG_PPIDMR17 0x844 +#define PME_REG_PPIDMR18 0x848 +#define PME_REG_PPIDMR19 0x84C +#define PME_REG_PPIDMR20 0x850 +#define PME_REG_PPIDMR21 0x854 +#define PME_REG_PPIDMR22 0x858 +#define PME_REG_PPIDMR23 0x85C +#define PME_REG_PPIDMR24 0x860 +#define PME_REG_PPIDMR25 0x864 +#define PME_REG_PPIDMR26 0x868 +#define PME_REG_PPIDMR27 0x86C +#define PME_REG_PPIDMR28 0x870 +#define PME_REG_PPIDMR29 0x874 +#define PME_REG_PPIDMR30 0x878 +#define PME_REG_PPIDMR31 0x87C +#define PME_REG_SRCIDR 0xA00 +#define PME_REG_LIODNR 0xA0C +#define PME_REG_PM_IP_REV1 0xBF8 +#define PME_REG_PM_IP_REV2 0xBFC + +#endif /* REGS_H */ --- linux-3.13.0.orig/drivers/staging/fsl_pme2/pme2_sample_db.c +++ linux-3.13.0/drivers/staging/fsl_pme2/pme2_sample_db.c @@ -0,0 +1,426 @@ +/* Copyright 2009-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "pme2_test.h" + +static u8 pme_db[] = { + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +/* Rev 2.1 */ + 0x00, 0x0c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x90, 0x41, 0x40, 0x20, 0x00, 0x11, +/* Rev 2.0 */ +/* 0x00, 0x0c, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, + 0x20, 0x41, 0x40, 0x20, 0x00, 0x11, */ + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +/* Rev 2.1 */ + 0x00, 0x0d, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x90, 0x41, 0xff, 0x81, 0x00, 0x00, +/* Rev 2.0 */ +/* 0x00, 0x0d, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01, + 0x20, 0x41, 0xff, 0x81, 0x00, 0x00, */ + 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x01, + 0x01, 0xff, 0x80, 0x00, 0x41, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, + 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, + 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, + 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, + 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, + 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, + 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, + 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, + 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x5b, + 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x41, 0x42, 0x43, + 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, + 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, + 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x7b, + 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, + 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, + 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, + 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, + 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, + 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, + 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, + 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, + 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xc3, + 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, + 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, + 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, + 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3, + 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb, + 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, + 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, + 0xfc, 0xfd, 0xfe, 0xff +}; + +static u8 db_read[] = { + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, +/* Rev 2.1 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x90, 0x41 +/* Rev 2.0 */ +/* 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, + 0x20, 0x41 */ +}; + +static u8 db_read_expected_result[] = { + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, + 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, +/* Rev 2.1 */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x90, 0x41, 0x40, 0x20, 0x00, 0x11 +/* Rev 2.0 */ +/* 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, + 0x20, 0x41, 0x40, 0x20, 0x00, 0x11*/ +}; + +struct pmtcc_ctx { + struct pme_ctx base_ctx; + struct qm_fd result_fd; + struct completion done; + u8 ern; +}; + +static void pmtcc_cb(struct pme_ctx *ctx, const struct qm_fd *fd, + struct pme_ctx_token *ctx_token) +{ + struct pmtcc_ctx *my_ctx = (struct pmtcc_ctx *)ctx; + memcpy(&my_ctx->result_fd, fd, sizeof(*fd)); + complete(&my_ctx->done); +} + +static void pmtcc_ern_cb(struct pme_ctx *ctx, const struct qm_mr_entry *mr, + struct pme_ctx_token *ctx_token) +{ + struct pmtcc_ctx *my_ctx = (struct pmtcc_ctx *)ctx; + my_ctx->result_fd = mr->ern.fd; + my_ctx->ern = 1; + complete(&my_ctx->done); +} + +#define FIRST_PMTCC 56 +int pme2_clear_sample_db(void) +{ + struct pmtcc_ctx ctx = { + .base_ctx.cb = pmtcc_cb, + .base_ctx.ern_cb = pmtcc_ern_cb, + .ern = 0 + }; + struct qm_fd fd; + int ret = 0; + enum pme_status status; + struct pme_ctx_token token; + void *mem; + struct cpumask backup_mask = current->cpus_allowed; + struct cpumask new_mask = *qman_affine_cpus(); + + cpumask_and(&new_mask, &new_mask, bman_affine_cpus()); + ret = set_cpus_allowed_ptr(current, &new_mask); + if (ret) { + pr_info("cleanr_sample_db: can't set cpumask\n"); + goto _clear_0; + } + init_completion(&ctx.done); + ret = pme_ctx_init(&ctx.base_ctx, + PME_CTX_FLAG_EXCLUSIVE | + PME_CTX_FLAG_PMTCC | + PME_CTX_FLAG_LOCAL, 0, 4, 4, 0, NULL); + if (ret) { + pr_err("clear_sample_db: can't init ctx\n"); + goto _clear_1; + } + + /* enable the context */ + ret = pme_ctx_enable(&ctx.base_ctx); + if (ret) { + pr_err("clear_sample_db: can't enable ctx\n"); + goto _clear_2; + } + + /* Write the database */ + memset(&fd, 0, sizeof(struct qm_fd)); + mem = kmalloc(FIRST_PMTCC, GFP_KERNEL); + if (!mem) + goto _clear_3; + memcpy(mem, pme_db, FIRST_PMTCC); + + fd.length20 = FIRST_PMTCC; + qm_fd_addr_set64(&fd, pme_map(mem)); + + ret = pme_ctx_pmtcc(&ctx.base_ctx, PME_CTX_OP_WAIT, &fd, &token); + if (ret == -ENODEV) { + pr_err("clear_sample_db: not the control plane, bailing\n"); + goto _clear_4; + } + if (ret) { + pr_err("clear_sample_db: error with pmtcc\n"); + goto _clear_4; + } + wait_for_completion(&ctx.done); + if (ctx.ern) { + pr_err("clear_sample_db: Rx ERN from pmtcc\n"); + goto _clear_4; + } + status = pme_fd_res_status(&ctx.result_fd); + if (status) { + pr_info("clear_sample_db: PMTCC write status failed %d\n", + status); + goto _clear_4; + } +_clear_4: + kfree(mem); +_clear_3: + /* Disable */ + ret = pme_ctx_disable(&ctx.base_ctx, + PME_CTX_OP_WAIT | PME_CTX_OP_WAIT_INT, NULL); +_clear_2: + pme_ctx_finish(&ctx.base_ctx); +_clear_1: + ret = set_cpus_allowed_ptr(current, &backup_mask); + if (ret) + pr_info("clear_sample_db: can't restore cpumask"); +_clear_0: + if (!ret) + pr_info("clear_sample_db: Done\n"); + else + pr_info("clear_sample_db: Error 0x%x\n", ret); + return ret; + +} + +int pme2_sample_db(void) +{ + struct pmtcc_ctx ctx = { + .base_ctx.cb = pmtcc_cb, + .base_ctx.ern_cb = pmtcc_ern_cb, + .ern = 0 + }; + struct qm_fd fd; + struct qm_sg_entry *sg_table = NULL; + int ret = 0; + enum pme_status status; + struct pme_ctx_token token; + void *mem = NULL, *mem_result = NULL; + u32 pme_rev; + struct cpumask backup_mask = current->cpus_allowed; + struct cpumask new_mask = *qman_affine_cpus(); + + cpumask_and(&new_mask, &new_mask, bman_affine_cpus()); + ret = set_cpus_allowed_ptr(current, &new_mask); + if (ret) { + pr_info("sample_db: can't set cpumask\n"); + goto _finish_0; + } + ret = pme_attr_get(pme_attr_rev1, &pme_rev); + if (ret) { + pr_err("sample_db: can't read pme revision %d\n", ret); + goto _finish_1; + } + /* If Rev 2.0...update database */ + if ((pme_rev & 0x0000FFFF) == 0x00000200) { + pr_info("sample_db: db for pme ver 2.0\n"); + pme_db[133] = 0x01; + pme_db[134] = 0x20; + pme_db[161] = 0x01; + pme_db[162] = 0x20; + db_read[21] = 0x01; + db_read[22] = 0x20; + db_read_expected_result[21] = 0x01; + db_read_expected_result[22] = 0x20; + } else + pr_info("sample_db: db for pme ver 2.1 or greater\n"); + init_completion(&ctx.done); + ret = pme_ctx_init(&ctx.base_ctx, + PME_CTX_FLAG_EXCLUSIVE | + PME_CTX_FLAG_PMTCC | + PME_CTX_FLAG_LOCAL, 0, 4, 4, 0, NULL); + if (ret) { + pr_err("sample_db: can't init ctx\n"); + goto _finish_1; + } + + /* enable the context */ + ret = pme_ctx_enable(&ctx.base_ctx); + if (ret) { + pr_err("sample_db: can't enable ctx\n"); + goto _finish_2; + } + + /* Write the database */ + memset(&fd, 0, sizeof(struct qm_fd)); + mem = kmalloc(sizeof(pme_db), GFP_KERNEL); + if (!mem) + goto _finish_3; + memcpy(mem, pme_db, sizeof(pme_db)); + + fd.length20 = sizeof(pme_db); + qm_fd_addr_set64(&fd, pme_map(mem)); + + ret = pme_ctx_pmtcc(&ctx.base_ctx, PME_CTX_OP_WAIT, &fd, &token); + if (ret == -ENODEV) { + pr_err("sample_db: not the control plane, bailing\n"); + goto _finish_4; + } + if (ret) { + pr_err("sample_db: error with pmtcc\n"); + goto _finish_4; + } + wait_for_completion(&ctx.done); + if (ctx.ern) { + pr_err("sample_db: Rx ERN from pmtcc\n"); + goto _finish_4; + } + status = pme_fd_res_status(&ctx.result_fd); + if (status) { + pr_info("sample_db: PMTCC write status failed %d\n", status); + goto _finish_4; + } + kfree(mem); + mem = NULL; + /* Read back the database */ + init_completion(&ctx.done); + memset(&fd, 0, sizeof(struct qm_fd)); + sg_table = kzalloc(2 * sizeof(*sg_table), GFP_KERNEL | GFP_DMA); + mem_result = kmalloc(28, GFP_KERNEL); + mem = kmalloc(sizeof(db_read), GFP_KERNEL); + if (!sg_table || !mem || !mem_result) { + pr_err("sample_db: out of memory\n"); + ret = -ENOMEM; + goto _finish_4; + } + memcpy(mem, db_read, sizeof(db_read)); + qm_sg_entry_set64(&sg_table[0], pme_map(mem_result)); + sg_table[0].length = 28; + qm_sg_entry_set64(&sg_table[1], pme_map(mem)); + sg_table[1].length = sizeof(db_read); + sg_table[1].final = 1; + fd.format = qm_fd_compound; + qm_fd_addr_set64(&fd, pme_map(sg_table)); + ret = pme_ctx_pmtcc(&ctx.base_ctx, PME_CTX_OP_WAIT, &fd, &token); + if (ret) { + pr_err("sample_db: error with pmtcc\n"); + goto _finish_4; + } + wait_for_completion(&ctx.done); + if (ctx.ern) { + ret = -EINVAL; + pr_err("sample_db: Rx ERN from pmtcc\n"); + goto _finish_4; + } + status = pme_fd_res_status(&ctx.result_fd); + if (status) { + ret = -EINVAL; + pr_err("sample_db: PMTCC read status failed %d\n", status); + goto _finish_4; + } + if (pme_fd_res_flags(&ctx.result_fd) & PME_STATUS_UNRELIABLE) { + pr_err("sample_db: flags result set %x\n", + pme_fd_res_flags(&ctx.result_fd)); + ret = -EINVAL; + goto _finish_4; + } + if (memcmp(db_read_expected_result, mem_result, 28) != 0) { + pr_err("sample_db: DB read result not expected\n"); + pr_err("Expected\n"); + hexdump(db_read_expected_result, + sizeof(db_read_expected_result)); + pr_info("Received\n"); + hexdump(mem_result, 28); + ret = -EINVAL; + } +_finish_4: + kfree(mem_result); + kfree(sg_table); + kfree(mem); +_finish_3: + /* Disable */ + ret = pme_ctx_disable(&ctx.base_ctx, + PME_CTX_OP_WAIT | PME_CTX_OP_WAIT_INT, NULL); +_finish_2: + pme_ctx_finish(&ctx.base_ctx); +_finish_1: + if (ret) + set_cpus_allowed_ptr(current, &backup_mask); + else { + ret = set_cpus_allowed_ptr(current, &backup_mask); + if (ret) + pr_info("sample_db: can't restore cpumask"); + } + +_finish_0: + if (!ret) + pr_info("pme: sample DB initialised\n"); + else + pr_info("pme: Error during sample DB 0x%x\n", ret); + return ret; +} + --- linux-3.13.0.orig/drivers/staging/fsl_pme2/pme2_scan.c +++ linux-3.13.0/drivers/staging/fsl_pme2/pme2_scan.c @@ -0,0 +1,1111 @@ +/* Copyright 2009-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "pme2_private.h" +#include +#include +#include +#include + +#define WAIT_AND_INTERRUPTABLE (PME_CTX_OP_WAIT|PME_CTX_OP_WAIT_INT) +#define INPUT_FRM 1 +#define OUTPUT_FRM 0 +/* Private structure that is allocated for each open that is done on the + * pme_scan device. */ +struct scan_session { + /* The ctx that is needed to communicate with the pme high level */ + struct pme_ctx ctx; + /* Locks completed_commands */ + spinlock_t set_subset_lock; + __u8 set; + __u16 subset; + /* For asynchronous processing */ + wait_queue_head_t waiting_for_completion; + struct list_head completed_commands; + /* Locks completed_commands */ + spinlock_t completed_commands_lock; + u32 completed_count; +}; + +/* Command Token for scan operations. One of these is created for every + * operation on a context. When the context operation is complete cleanup + * is done */ +struct cmd_token { + /* pme high level token */ + struct pme_ctx_token hl_token; + /* The kernels copy of the user op structure */ + struct pme_scan_cmd kernel_op; + /* Set to non zero if this is a synchronous request */ + u8 synchronous; + /* data */ + struct qm_fd tx_fd; + struct qm_sg_entry tx_comp[2]; + struct qm_fd rx_fd; + void *tx_data; + size_t tx_size; + void *rx_data; + size_t rx_size; + /* For blocking requests, we need a wait point and condition */ + wait_queue_head_t *queue; + /* List management for completed async requests */ + struct list_head completed_list; + u8 done; + u8 ern; +}; + +struct ctrl_op { + struct pme_ctx_ctrl_token ctx_ctr; + struct completion cb_done; + enum pme_status cmd_status; + u8 res_flag; + u8 ern; +}; + +#ifdef CONFIG_COMPAT +static void compat_to_scan_cmd(struct pme_scan_cmd *dst, + struct compat_pme_scan_cmd *src) +{ + dst->flags = src->flags; + dst->opaque = compat_ptr(src->opaque); + dst->input.data = compat_ptr(src->input.data); + dst->input.size = src->input.size; + dst->output.data = compat_ptr(src->output.data); + dst->output.size = src->output.size; +} + +static void scan_result_to_compat(struct compat_pme_scan_result *dst, + struct pme_scan_result *src) +{ + dst->flags = src->flags; + dst->opaque = ptr_to_compat(src->opaque); + dst->status = src->status; + dst->output.data = ptr_to_compat(src->output.data); + dst->output.size = src->output.size; +} + +static void compat_to_scan_result(struct pme_scan_result *dst, + struct compat_pme_scan_result *src) +{ + dst->flags = src->flags; + dst->opaque = compat_ptr(src->opaque); + dst->status = src->status; + dst->output.data = compat_ptr(src->output.data); + dst->output.size = src->output.size; +} +#endif + +static void ctrl_cb(struct pme_ctx *ctx, const struct qm_fd *fd, + struct pme_ctx_ctrl_token *token) +{ + struct ctrl_op *ctrl = (struct ctrl_op *)token; + ctrl->cmd_status = pme_fd_res_status(fd); + ctrl->res_flag = pme_fd_res_flags(fd) & PME_STATUS_UNRELIABLE; + complete(&ctrl->cb_done); +} + +static void ctrl_ern_cb(struct pme_ctx *ctx, const struct qm_mr_entry *mr, + struct pme_ctx_ctrl_token *token) +{ + struct ctrl_op *ctrl = (struct ctrl_op *)token; + ctrl->ern = 1; + complete(&ctrl->cb_done); +} + +static inline int scan_data_empty(struct scan_session *session) +{ + return list_empty(&session->completed_commands); +} + +/* Cleanup for the execute_cmd method */ +static inline void cleanup_token(struct cmd_token *token_p) +{ + kfree(token_p->tx_data); + kfree(token_p->rx_data); + return; +} + +/* Callback for scan operations */ +static void scan_cb(struct pme_ctx *ctx, const struct qm_fd *fd, + struct pme_ctx_token *ctx_token) +{ + struct cmd_token *token = (struct cmd_token *)ctx_token; + struct scan_session *session = (struct scan_session *)ctx; + + token->rx_fd = *fd; + /* If this is a asynchronous command, queue the token */ + if (!token->synchronous) { + spin_lock(&session->completed_commands_lock); + list_add_tail(&token->completed_list, + &session->completed_commands); + session->completed_count++; + spin_unlock(&session->completed_commands_lock); + } + /* Wake up the thread that's waiting for us */ + token->done = 1; + wake_up(token->queue); + return; +} + +static void scan_ern_cb(struct pme_ctx *ctx, const struct qm_mr_entry *mr, + struct pme_ctx_token *ctx_token) +{ + struct cmd_token *token = (struct cmd_token *)ctx_token; + struct scan_session *session = (struct scan_session *)ctx; + + token->ern = 1; + token->rx_fd = mr->ern.fd; + /* If this is a asynchronous command, queue the token */ + if (!token->synchronous) { + spin_lock(&session->completed_commands_lock); + list_add_tail(&token->completed_list, + &session->completed_commands); + session->completed_count++; + spin_unlock(&session->completed_commands_lock); + } + /* Wake up the thread that's waiting for us */ + token->done = 1; + wake_up(token->queue); + return; +} + +static int process_completed_token(struct file *fp, struct cmd_token *token_p, + struct pme_scan_result *scan_result) +{ + int ret = 0; + u32 src_sz, dst_sz; + + memset(scan_result, 0, sizeof(struct pme_scan_result)); + if (token_p->ern) { + ret = -EIO; + goto done; + } + scan_result->output.data = token_p->kernel_op.output.data; + + if (token_p->rx_fd.format == qm_fd_compound) { + /* Need to copy output */ + src_sz = token_p->tx_comp[OUTPUT_FRM].length; + dst_sz = token_p->kernel_op.output.size; + scan_result->output.size = min(dst_sz, src_sz); + /* Doesn't make sense we generated more than available space + * should have got truncation. + */ + BUG_ON(dst_sz < src_sz); + if (copy_to_user(scan_result->output.data, token_p->rx_data, + scan_result->output.size)) { + pr_err("Error copying to user data\n"); + cleanup_token(token_p); + return -EFAULT; + } + } else if (token_p->rx_fd.format == qm_fd_sg_big) + scan_result->output.size = 0; + else + pr_err("pme2_scan: unexpected frame type received\n"); + + scan_result->flags |= pme_fd_res_flags(&token_p->rx_fd); + scan_result->status |= pme_fd_res_status(&token_p->rx_fd); +done: + scan_result->opaque = token_p->kernel_op.opaque; + cleanup_token(token_p); + return ret; +} + +static int getscan_cmd(struct file *fp, struct scan_session *session, + struct pme_scan_params __user *user_scan_params) +{ + int ret = 0; + struct pme_flow params; + struct pme_scan_params local_scan_params; + struct ctrl_op ctx_ctrl = { + .ctx_ctr.cb = ctrl_cb, + .ctx_ctr.ern_cb = ctrl_ern_cb, + .cmd_status = 0, + .res_flag = 0, + .ern = 0 + }; + init_completion(&ctx_ctrl.cb_done); + + memset(&local_scan_params, 0, sizeof(local_scan_params)); + + /* must be enabled */ + if (pme_ctx_is_disabled(&session->ctx)) { + pr_err("pme2_scan: ctx is disabled\n"); + ret = -EINVAL; + goto done; + } + ret = pme_ctx_ctrl_read_flow(&session->ctx, WAIT_AND_INTERRUPTABLE, + ¶ms, &ctx_ctrl.ctx_ctr); + if (ret) { + PMEPRINFO("read flow error %d\n", ret); + goto done; + } + wait_for_completion(&ctx_ctrl.cb_done); + + if (ctx_ctrl.ern || ctx_ctrl.cmd_status || ctx_ctrl.res_flag) { + PMEPRINFO("read flow error %d\n", ctx_ctrl.cmd_status); + ret = -EFAULT; + goto done; + } + local_scan_params.residue.enable = params.ren; + local_scan_params.residue.length = params.rlen; + local_scan_params.sre.sessionid = params.sessionid; + local_scan_params.sre.verbose = params.srvm; + local_scan_params.sre.esee = params.esee; + local_scan_params.dxe.clim = params.clim; + local_scan_params.dxe.mlim = params.mlim; + spin_lock(&session->set_subset_lock); + local_scan_params.pattern.set = session->set; + local_scan_params.pattern.subset = session->subset; + spin_unlock(&session->set_subset_lock); + + if (copy_to_user(user_scan_params, &local_scan_params, + sizeof(local_scan_params))) { + pr_err("Error copying to user data\n"); + ret = -EFAULT; + } +done: + return ret; +} + +static int setscan_cmd(struct file *fp, struct scan_session *session, + struct pme_scan_params __user *user_params) +{ + int ret = 0; + u32 flag = WAIT_AND_INTERRUPTABLE; + struct ctrl_op ctx_ctrl = { + .ctx_ctr.cb = ctrl_cb, + .ctx_ctr.ern_cb = ctrl_ern_cb, + .cmd_status = 0, + .res_flag = 0, + .ern = 0 + }; + struct pme_flow params; + struct pme_scan_params local_params; + + pme_sw_flow_init(¶ms); + init_completion(&ctx_ctrl.cb_done); + if (copy_from_user(&local_params, user_params, sizeof(local_params))) + return -EFAULT; + + /* must be enabled */ + if (pme_ctx_is_disabled(&session->ctx)) { + ret = -EINVAL; + goto done; + } + /* Only send a flw_ctx_w if PME_SCAN_PARAMS_{RESIDUE, SRE or DXE} + * is being done */ + if (local_params.flags == PME_SCAN_PARAMS_PATTERN) + goto set_subset; + if (local_params.flags & PME_SCAN_PARAMS_RESIDUE) + flag |= PME_CMD_FCW_RES; + if (local_params.flags & PME_SCAN_PARAMS_SRE) + flag |= PME_CMD_FCW_SRE; + if (local_params.flags & PME_SCAN_PARAMS_DXE) + flag |= PME_CMD_FCW_DXE; + params.ren = local_params.residue.enable; + params.sessionid = local_params.sre.sessionid; + params.srvm = local_params.sre.verbose; + params.esee = local_params.sre.esee; + params.clim = local_params.dxe.clim; + params.mlim = local_params.dxe.mlim; + + ret = pme_ctx_ctrl_update_flow(&session->ctx, flag, ¶ms, + &ctx_ctrl.ctx_ctr); + if (ret) { + PMEPRINFO("update flow error %d\n", ret); + goto done; + } + wait_for_completion(&ctx_ctrl.cb_done); + if (ctx_ctrl.ern || ctx_ctrl.cmd_status || ctx_ctrl.res_flag) { + PMEPRINFO("update flow err %d\n", ctx_ctrl.cmd_status); + ret = -EFAULT; + goto done; + } + +set_subset: + if (local_params.flags & PME_SCAN_PARAMS_PATTERN) { + spin_lock(&session->set_subset_lock); + session->set = local_params.pattern.set; + session->subset = local_params.pattern.subset; + spin_unlock(&session->set_subset_lock); + goto done; + } +done: + return ret; +} + +static int resetseq_cmd(struct file *fp, struct scan_session *session) +{ + int ret = 0; + struct pme_flow params; + struct ctrl_op ctx_ctrl = { + .ctx_ctr.cb = ctrl_cb, + .ctx_ctr.ern_cb = ctrl_ern_cb, + .cmd_status = 0, + .res_flag = 0, + .ern = 0 + }; + init_completion(&ctx_ctrl.cb_done); + pme_sw_flow_init(¶ms); + + /* must be enabled */ + if (pme_ctx_is_disabled(&session->ctx)) { + pr_err("pme2_scan: ctx is disabled\n"); + ret = -EINVAL; + goto done; + } + pme_flow_seqnum_set64(¶ms, 0); + params.sos = 1; + + ret = pme_ctx_ctrl_update_flow(&session->ctx, PME_CMD_FCW_SEQ, ¶ms, + &ctx_ctrl.ctx_ctr); + if (ret) { + pr_err("pme2_scan: update flow error %d\n", ret); + return ret; + } + wait_for_completion(&ctx_ctrl.cb_done); + if (ctx_ctrl.ern || ctx_ctrl.cmd_status || ctx_ctrl.res_flag) { + PMEPRINFO("update flow err %d\n", ctx_ctrl.cmd_status); + ret = -EFAULT; + } +done: + return ret; +} + +static int resetresidue_cmd(struct file *fp, struct scan_session *session) +{ + int ret = 0; + struct pme_flow params; + struct ctrl_op ctx_ctrl = { + .ctx_ctr.cb = ctrl_cb, + .ctx_ctr.ern_cb = ctrl_ern_cb, + .cmd_status = 0, + .res_flag = 0, + .ern = 0 + }; + + init_completion(&ctx_ctrl.cb_done); + pme_sw_flow_init(¶ms); + /* must be enabled */ + if (pme_ctx_is_disabled(&session->ctx)) { + pr_err("pme2_scan: ctx is disabled\n"); + ret = -EINVAL; + goto done; + } + params.rlen = 0; + ret = pme_ctx_ctrl_update_flow(&session->ctx, + WAIT_AND_INTERRUPTABLE | PME_CTX_OP_RESETRESLEN, + ¶ms, &ctx_ctrl.ctx_ctr); + if (ret) + pr_info("pme2_scan: update flow error %d\n", ret); + wait_for_completion(&ctx_ctrl.cb_done); + if (ctx_ctrl.ern || ctx_ctrl.cmd_status || ctx_ctrl.res_flag) { + PMEPRINFO("update flow err %d\n", ctx_ctrl.cmd_status); + ret = -EFAULT; + } +done: + return ret; +} + +static int process_scan_cmd( + struct file *fp, + struct scan_session *session, + struct pme_scan_cmd *user_cmd, + struct pme_scan_result *user_ret, + u8 synchronous) +{ + int ret = 0; + struct cmd_token local_token; + struct cmd_token *token_p = NULL; + DECLARE_WAIT_QUEUE_HEAD(local_waitqueue); + u8 scan_flags = 0; + + BUG_ON(synchronous && !user_ret); + + /* If synchronous, use a local token (from the stack) + * If asynchronous, allocate a token to use */ + if (synchronous) + token_p = &local_token; + else { + token_p = kmalloc(sizeof(*token_p), GFP_KERNEL); + if (!token_p) + return -ENOMEM; + } + memset(token_p, 0, sizeof(*token_p)); + /* Copy the command to kernel space */ + memcpy(&token_p->kernel_op, user_cmd, sizeof(struct pme_scan_cmd)); + /* Copy the input */ + token_p->synchronous = synchronous; + token_p->tx_size = token_p->kernel_op.input.size; + token_p->tx_data = kmalloc(token_p->kernel_op.input.size, GFP_KERNEL); + if (!token_p->tx_data) { + pr_err("pme2_scan: Err alloc %zd byte", token_p->tx_size); + cleanup_token(token_p); + return -ENOMEM; + } + if (copy_from_user(token_p->tx_data, + token_p->kernel_op.input.data, + token_p->kernel_op.input.size)) { + pr_err("Error copying contigous user data\n"); + cleanup_token(token_p); + return -EFAULT; + } + /* Setup input frame */ + token_p->tx_comp[INPUT_FRM].final = 1; + token_p->tx_comp[INPUT_FRM].length = token_p->tx_size; + qm_sg_entry_set64(&token_p->tx_comp[INPUT_FRM], + pme_map(token_p->tx_data)); + /* setup output frame, if output is expected */ + if (token_p->kernel_op.output.size) { + token_p->rx_size = token_p->kernel_op.output.size; + PMEPRINFO("pme2_scan: expect output %d\n", token_p->rx_size); + token_p->rx_data = kmalloc(token_p->rx_size, GFP_KERNEL); + if (!token_p->rx_data) { + pr_err("pme2_scan: Err alloc %zd byte", + token_p->rx_size); + cleanup_token(token_p); + return -ENOMEM; + } + /* Setup output frame */ + token_p->tx_comp[OUTPUT_FRM].length = token_p->rx_size; + qm_sg_entry_set64(&token_p->tx_comp[OUTPUT_FRM], + pme_map(token_p->rx_data)); + token_p->tx_fd.format = qm_fd_compound; + /* Build compound frame */ + qm_fd_addr_set64(&token_p->tx_fd, + pme_map(token_p->tx_comp)); + } else { + token_p->tx_fd.format = qm_fd_sg_big; + /* Build sg frame */ + qm_fd_addr_set64(&token_p->tx_fd, + pme_map(&token_p->tx_comp[INPUT_FRM])); + token_p->tx_fd.length29 = token_p->tx_size; + } + + /* use the local wait queue if synchronous, the shared + * queue if asynchronous */ + if (synchronous) + token_p->queue = &local_waitqueue; + else + token_p->queue = &session->waiting_for_completion; + token_p->done = 0; + + if (token_p->kernel_op.flags & PME_SCAN_CMD_STARTRESET) + scan_flags |= PME_CMD_SCAN_SR; + if (token_p->kernel_op.flags & PME_SCAN_CMD_END) + scan_flags |= PME_CMD_SCAN_E; + ret = pme_ctx_scan(&session->ctx, WAIT_AND_INTERRUPTABLE, + &token_p->tx_fd, + PME_SCAN_ARGS(scan_flags, session->set, session->subset), + &token_p->hl_token); + if (unlikely(ret)) { + cleanup_token(token_p); + return ret; + } + + if (!synchronous) + /* Don't wait. The command is away */ + return 0; + + PMEPRINFO("Wait for completion\n"); + /* Wait for the command to complete */ + /* TODO: Should this be wait_event_interruptible ? + * If so, will need logic to indicate */ + wait_event(*token_p->queue, token_p->done == 1); + return process_completed_token(fp, token_p, user_ret); +} + +/** + * fsl_pme2_scan_open - open the driver + * + * Open the driver and prepare for requests. + * + * Every time an application opens the driver, we create a scan_session object + * for that file handle. + */ +static int fsl_pme2_scan_open(struct inode *node, struct file *fp) +{ + int ret; + struct scan_session *session; + struct pme_flow flow; + struct ctrl_op ctx_ctrl = { + .ctx_ctr.cb = ctrl_cb, + .ctx_ctr.ern_cb = ctrl_ern_cb, + .cmd_status = 0, + .res_flag = 0, + .ern = 0 + }; + + pme_sw_flow_init(&flow); + init_completion(&ctx_ctrl.cb_done); + PMEPRINFO("pme2_scan: open %d\n", smp_processor_id()); + fp->private_data = kzalloc(sizeof(*session), GFP_KERNEL); + if (!fp->private_data) + return -ENOMEM; + session = (struct scan_session *)fp->private_data; + /* Set up the structures used for asynchronous requests */ + init_waitqueue_head(&session->waiting_for_completion); + INIT_LIST_HEAD(&session->completed_commands); + spin_lock_init(&session->completed_commands_lock); + spin_lock_init(&session->set_subset_lock); + PMEPRINFO("kmalloc session %p\n", fp->private_data); + session = fp->private_data; + session->ctx.cb = scan_cb; + session->ctx.ern_cb = scan_ern_cb; + + /* qosin, qosout should be driver attributes */ + ret = pme_ctx_init(&session->ctx, PME_CTX_FLAG_LOCAL, 0, 4, 4, 0, NULL); + if (ret) { + pr_err("pme2_scan: pme_ctx_init %d\n", ret); + goto exit; + } + /* enable the context */ + ret = pme_ctx_enable(&session->ctx); + if (ret) { + PMEPRINFO("error enabling ctx %d\n", ret); + pme_ctx_finish(&session->ctx); + goto exit; + } + /* Update flow to set sane defaults in the flow context */ + ret = pme_ctx_ctrl_update_flow(&session->ctx, + PME_CTX_OP_WAIT | PME_CMD_FCW_ALL, &flow, &ctx_ctrl.ctx_ctr); + if (!ret) { + wait_for_completion(&ctx_ctrl.cb_done); + if (ctx_ctrl.ern || ctx_ctrl.cmd_status || ctx_ctrl.res_flag) + ret = -EFAULT; + } + if (ret) { + int my_ret; + PMEPRINFO("error updating flow ctx %d\n", ret); + my_ret = pme_ctx_disable(&session->ctx, PME_CTX_OP_WAIT, + &ctx_ctrl.ctx_ctr); + if (my_ret > 0) + wait_for_completion(&ctx_ctrl.cb_done); + else if (my_ret < 0) + PMEPRINFO("error disabling ctx %d\n", ret); + pme_ctx_finish(&session->ctx); + goto exit; + } + /* Set up the structures used for asynchronous requests */ + PMEPRINFO("pme2_scan: Finish pme_scan open %d\n", smp_processor_id()); + return 0; +exit: + kfree(fp->private_data); + fp->private_data = NULL; + return ret; +} + +static int fsl_pme2_scan_close(struct inode *node, struct file *fp) +{ + struct ctrl_op ctx_ctrl = { + .ctx_ctr.cb = ctrl_cb, + .ctx_ctr.ern_cb = ctrl_ern_cb, + .cmd_status = 0, + .res_flag = 0, + .ern = 0 + }; + int ret = 0; + struct scan_session *session = fp->private_data; + + init_completion(&ctx_ctrl.cb_done); + /* Before disabling check to see if it's already disabled. This can + * happen if a pme serious error has occurred for instance.*/ + if (!pme_ctx_is_disabled(&session->ctx)) { + ret = pme_ctx_disable(&session->ctx, PME_CTX_OP_WAIT, + &ctx_ctrl.ctx_ctr); + if (ret > 0) { + wait_for_completion(&ctx_ctrl.cb_done); + if (ctx_ctrl.ern) + PMEPRCRIT("Unexpected ERN\n"); + } else if (ret < 0) { + pr_err("pme2_scan: Error disabling ctx %d\n", ret); + return ret; + } + } + pme_ctx_finish(&session->ctx); + kfree(session); + PMEPRINFO("pme2_scan: Finish pme_session close\n"); + return 0; +} + +static unsigned int fsl_pme2_scan_poll(struct file *fp, + struct poll_table_struct *wait) +{ + struct scan_session *session; + unsigned int mask = POLLOUT | POLLWRNORM; + + if (!fp->private_data) + return -EINVAL; + + session = (struct scan_session *)fp->private_data; + + poll_wait(fp, &session->waiting_for_completion, wait); + + if (!scan_data_empty(session)) + mask |= (POLLIN | POLLRDNORM); + return mask; +} + + +/* Main switch loop for ioctl operations */ +static long fsl_pme2_scan_ioctl(struct file *fp, unsigned int cmd, + unsigned long arg) +{ + struct scan_session *session = fp->private_data; + int ret = 0; + + switch (cmd) { + + case PMEIO_GETSCAN: + return getscan_cmd(fp, session, (struct pme_scan_params *)arg); + break; + + case PMEIO_SETSCAN: + return setscan_cmd(fp, session, (struct pme_scan_params *)arg); + break; + + case PMEIO_RESETSEQ: + return resetseq_cmd(fp, session); + break; + + case PMEIO_RESETRES: + return resetresidue_cmd(fp, session); + break; + + case PMEIO_SCAN: + { + int ret; + struct pme_scan scan; + + if (copy_from_user(&scan, (void __user *)arg, sizeof(scan))) + return -EFAULT; + ret = process_scan_cmd(fp, session, &scan.cmd, &scan.result, 1); + if (!ret) { + struct pme_scan_result __user *user_result = + &((struct pme_scan __user *)arg)->result; + ret = copy_to_user(user_result, &scan.result, + sizeof(*user_result)); + } + return ret; + } + break; + + case PMEIO_SCAN_W1: + { + struct pme_scan_cmd scan_cmd; + + if (copy_from_user(&scan_cmd, (void __user *)arg, + sizeof(scan_cmd))) + return -EFAULT; + return process_scan_cmd(fp, session, &scan_cmd, NULL, 0); + } + break; + + case PMEIO_SCAN_R1: + { + struct pme_scan_result result; + struct cmd_token *completed_cmd = NULL; + struct pme_scan_result __user *ur = + (struct pme_scan_result __user *)arg; + int ret; + + if (copy_from_user(&result, (void __user *)arg, + sizeof(result))) + return -EFAULT; + + /* Check to see if any results */ + spin_lock(&session->completed_commands_lock); + if (!list_empty(&session->completed_commands)) { + completed_cmd = list_first_entry( + &session->completed_commands, + struct cmd_token, + completed_list); + list_del(&completed_cmd->completed_list); + session->completed_count--; + } + spin_unlock(&session->completed_commands_lock); + if (completed_cmd) { + ret = process_completed_token(fp, completed_cmd, + &result); + if (!ret) + ret = copy_to_user(ur, &result, sizeof(result)); + return ret; + } else + return -EIO; + } + break; + + case PMEIO_SCAN_Wn: + { + struct pme_scan_cmds scan_cmds; + int i, ret = 0; + + /* Copy the command to kernel space */ + if (copy_from_user(&scan_cmds, (void __user *)arg, + sizeof(scan_cmds))) + return -EFAULT; + PMEPRINFO("Received Wn for %d cmds\n", scan_cmds.num); + for (i = 0; i < scan_cmds.num; i++) { + struct pme_scan_cmd scan_cmd; + + if (copy_from_user(&scan_cmd, &scan_cmds.cmds[i], + sizeof(scan_cmd))) { + pr_err("pme2_scan: Err with %d\n", i); + scan_cmds.num = i; + if (copy_to_user((void __user *)arg, &scan_cmds, + sizeof(scan_cmds))) { + return -EFAULT; + } + return -EFAULT; + } + ret = process_scan_cmd(fp, session, &scan_cmd, NULL, 0); + if (ret) { + pr_err("pme2_scan: Err with %d cmd %d\n", + i, ret); + scan_cmds.num = i; + if (copy_to_user((void *)arg, &scan_cmds, + sizeof(scan_cmds))) { + pr_err("Error copying to user data\n"); + return -EFAULT; + } + return -EINTR; + } + } + return ret; + } + break; + + case PMEIO_SCAN_Rn: + { + struct pme_scan_results results; + struct pme_scan_result result; + struct pme_scan_result __user *ur; + int i = 0, ret = 0; + struct cmd_token *completed_cmd = NULL; + + /* Copy the command to kernel space */ + if (copy_from_user(&results, (void __user *)arg, + sizeof(results))) + return -EFAULT; + ur = ((struct pme_scan_results __user *)arg)->results + PMEPRINFO("pme2_scan: Received Rn for %d res\n", results.num); + if (!results.num) + return 0; + do { + completed_cmd = NULL; + ret = 0; + /* Check to see if any results */ + spin_lock(&session->completed_commands_lock); + if (!list_empty(&session->completed_commands)) { + /* Move to a different list */ + PMEPRINFO("pme2_scan: Pop response\n"); + completed_cmd = list_first_entry( + &session->completed_commands, + struct cmd_token, + completed_list); + list_del(&completed_cmd->completed_list); + session->completed_count--; + } + spin_unlock(&session->completed_commands_lock); + if (completed_cmd) { + if (copy_from_user(&result, (void __user *)ur+i, + sizeof(result))) + return -EFAULT; + ret = process_completed_token(fp, completed_cmd, + &result); + if (!ret) + ret = copy_to_user(ur, &result, + sizeof(struct pme_scan_result)); + if (!ret) { + i++; + ur++; + } + } + } while (!ret && completed_cmd && (i != results.num)); + + if (i != results.num) { + PMEPRINFO("pme2_scan: Only filled %d responses\n", i); + results.num = i; + PMEPRINFO("pme2_scan: results.num = %d\n", results.num); + if (copy_to_user((void __user *)arg, &results, + sizeof(struct pme_scan_results))) { + pr_err("Error copying to user data\n"); + return -EFAULT; + } + } + return ret; + } + break; + + case PMEIO_RELEASE_BUFS: + return -EINVAL; + break; + +#ifdef CONFIG_COMPAT + case PMEIO_SCAN32: + { + int ret; + struct compat_pme_scan scan32; + struct compat_pme_scan __user *user_scan = compat_ptr(arg); + struct pme_scan scan; + + if (copy_from_user(&scan32, user_scan, sizeof(scan32))) + return -EFAULT; + /* Convert to 64-bit structs */ + compat_to_scan_cmd(&scan.cmd, &scan32.cmd); + compat_to_scan_result(&scan.result, &scan32.result); + + ret = process_scan_cmd(fp, session, &scan.cmd, &scan.result, 1); + if (!ret) { + struct compat_pme_scan_result __user *user_result = + &user_scan->result; + /* Convert to 32-bit struct */ + scan_result_to_compat(&scan32.result, &scan.result); + ret = copy_to_user(user_result, &scan32.result, + sizeof(*user_result)); + } + return ret; + } + break; + + case PMEIO_SCAN_W132: + { + struct compat_pme_scan_cmd scan_cmd32; + struct pme_scan_cmd scan_cmd; + + if (copy_from_user(&scan_cmd32, compat_ptr(arg), + sizeof(scan_cmd32))) + return -EFAULT; + /* Convert to 64-bit struct */ + compat_to_scan_cmd(&scan_cmd, &scan_cmd32); + return process_scan_cmd(fp, session, &scan_cmd, NULL, 0); + } + break; + + case PMEIO_SCAN_R132: + { + struct compat_pme_scan_result result32; + struct pme_scan_result result; + struct cmd_token *completed_cmd = NULL; + struct compat_pme_scan_result __user *ur = compat_ptr(arg); + int ret; + + if (copy_from_user(&result32, (void __user *)arg, + sizeof(result32))) + return -EFAULT; + /* copy to 64-bit structure */ + compat_to_scan_result(&result, &result32); + + /* Check to see if any results */ + spin_lock(&session->completed_commands_lock); + if (!list_empty(&session->completed_commands)) { + completed_cmd = list_first_entry( + &session->completed_commands, + struct cmd_token, + completed_list); + list_del(&completed_cmd->completed_list); + session->completed_count--; + } + spin_unlock(&session->completed_commands_lock); + if (completed_cmd) { + ret = process_completed_token(fp, completed_cmd, + &result); + scan_result_to_compat(&result32, &result); + ret = copy_to_user(ur, &result32, sizeof(result32)); + } else + return -EIO; + } + break; + + case PMEIO_SCAN_Wn32: + { + struct compat_pme_scan_cmds scan_cmds32; + int i, ret = 0; + + /* Copy the command to kernel space */ + if (copy_from_user(&scan_cmds32, compat_ptr(arg), + sizeof(scan_cmds32))) + return -EFAULT; + PMEPRINFO("Received Wn for %d cmds\n", scan_cmds32.num); + for (i = 0; i < scan_cmds32.num; i++) { + struct pme_scan_cmd scan_cmd; + struct compat_pme_scan_cmd __user *u_scan_cmd32; + struct compat_pme_scan_cmd scan_cmd32; + + u_scan_cmd32 = compat_ptr(scan_cmds32.cmds); + u_scan_cmd32 += i; + + if (copy_from_user(&scan_cmd32, u_scan_cmd32, + sizeof(scan_cmd32))) { + pr_err("pme2_scan: Err with %d\n", i); + scan_cmds32.num = i; + if (copy_to_user(compat_ptr(arg), &scan_cmds32, + sizeof(scan_cmds32))) + return -EFAULT; + return -EFAULT; + } + compat_to_scan_cmd(&scan_cmd, &scan_cmd32); + ret = process_scan_cmd(fp, session, &scan_cmd, NULL, 0); + if (ret) { + pr_err("pme2_scan: Err with %d cmd %d\n", + i, ret); + scan_cmds32.num = i; + if (copy_to_user(compat_ptr(arg), &scan_cmds32, + sizeof(scan_cmds32))) + return -EFAULT; + return -EINTR; + } + } + return ret; + } + break; + + case PMEIO_SCAN_Rn32: + { + struct compat_pme_scan_results results32; + int i = 0, ret = 0; + struct cmd_token *completed_cmd = NULL; + struct compat_pme_scan_result __user *ur; + + /* Copy the command to kernel space */ + if (copy_from_user(&results32, compat_ptr(arg), + sizeof(results32))) + return -EFAULT; + ur = compat_ptr(results32.results); + PMEPRINFO("pme2_scan: Rx Rn for %d res\n", results32.num); + if (!results32.num) + return 0; + do { + completed_cmd = NULL; + ret = 0; + /* Check to see if any results */ + spin_lock(&session->completed_commands_lock); + if (!list_empty(&session->completed_commands)) { + /* Move to a different list */ + PMEPRINFO("pme2_scan: Pop response\n"); + completed_cmd = list_first_entry( + &session->completed_commands, + struct cmd_token, + completed_list); + list_del(&completed_cmd->completed_list); + session->completed_count--; + } + spin_unlock(&session->completed_commands_lock); + if (completed_cmd) { + struct compat_pme_scan_result l_result32; + struct pme_scan_result result; + + if (copy_from_user(&l_result32, ur+i, + sizeof(l_result32))) + return -EFAULT; + compat_to_scan_result(&result, &l_result32); + ret = process_completed_token(fp, completed_cmd, + &result); + scan_result_to_compat(&l_result32, &result); + ret = copy_to_user(ur+i, &l_result32, + sizeof(l_result32)); + if (!ret) + i++; + } + } while (!ret && completed_cmd && (i != results32.num)); + + if (i != results32.num) { + PMEPRINFO("pme2_scan: Only filled %d responses\n", i); + results32.num = i; + PMEPRINFO("pme2_scan: results32.num = %d\n", + results32.num); + if (copy_to_user(compat_ptr(arg), &results32, + sizeof(struct pme_scan_results))) { + pr_err("Error copying to user data\n"); + return -EFAULT; + } + } + return ret; + } + break; +#endif /* CONFIG_COMPAT */ + + default: + pr_err("UNKNOWN IOCTL cmd 0x%x\n", cmd); + return -EINVAL; + break; + } + + return ret; +} + +static const struct file_operations fsl_pme2_scan_fops = { + .owner = THIS_MODULE, + .open = fsl_pme2_scan_open, + .release = fsl_pme2_scan_close, + .poll = fsl_pme2_scan_poll, + .unlocked_ioctl = fsl_pme2_scan_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = fsl_pme2_scan_ioctl, +#endif +}; + +static struct miscdevice fsl_pme2_scan_dev = { + .minor = MISC_DYNAMIC_MINOR, + .name = PME_DEV_SCAN_NODE, + .fops = &fsl_pme2_scan_fops +}; + +static int __init fsl_pme2_scan_init(void) +{ + int err = 0; + + pr_info("Freescale pme2 scan driver\n"); + err = misc_register(&fsl_pme2_scan_dev); + if (err) { + pr_err("fsl-pme2-scan: cannot register device\n"); + return err; + } + pr_info("fsl-pme2-scan: device %s registered\n", + fsl_pme2_scan_dev.name); + return 0; +} + +static void __exit fsl_pme2_scan_exit(void) +{ + int err = misc_deregister(&fsl_pme2_scan_dev); + if (err) + pr_err("fsl-pme2-scan: Failed to deregister device %s, " + "code %d\n", fsl_pme2_scan_dev.name, err); + pr_info("fsl-pme2-scan: device %s deregistered\n", + fsl_pme2_scan_dev.name); +} + +module_init(fsl_pme2_scan_init); +module_exit(fsl_pme2_scan_exit); + +MODULE_AUTHOR("Jeffrey Ladouceur "); +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_DESCRIPTION("Freescale PME2 scan driver"); --- linux-3.13.0.orig/drivers/staging/fsl_pme2/pme2_sys.h +++ linux-3.13.0/drivers/staging/fsl_pme2/pme2_sys.h @@ -0,0 +1,64 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int pme2_create_sysfs_dev_files(struct platform_device *ofdev); +void pme2_remove_sysfs_dev_files(struct platform_device *ofdev); +void accumulator_update_interval(u32 interval); + --- linux-3.13.0.orig/drivers/staging/fsl_pme2/pme2_sysfs.c +++ linux-3.13.0/drivers/staging/fsl_pme2/pme2_sysfs.c @@ -0,0 +1,565 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "pme2_regs.h" +#include "pme2_private.h" + +#define MAX_ACCUMULATOR_INTERVAL 10000 +extern u32 pme_stat_interval; + +/* The pme sysfs contains the following types of attributes + * 1) root level: general pme confuration + * 2) bsc: bufferpool size configuration + * 3) stats: pme statistics + */ +static ssize_t pme_store(struct device *dev, struct device_attribute *dev_attr, + const char *buf, size_t count, enum pme_attr attr) +{ + unsigned long val; + size_t ret; + if (strict_strtoul(buf, 0, &val)) { + dev_dbg(dev, "invalid input %s\n",buf); + return -EINVAL; + } + ret = pme_attr_set(attr, val); + if (ret) { + dev_err(dev, "attr_set err attr=%u, val=%lu\n", attr, val); + return ret; + } + return count; +} + +static ssize_t pme_show(struct device *dev, struct device_attribute *dev_attr, + char *buf, enum pme_attr attr, const char *fmt) +{ + u32 data; + int ret; + + ret = pme_attr_get(attr, &data); + if (!ret) + return snprintf(buf, PAGE_SIZE, fmt, data); + return ret; +} + + +static ssize_t pme_stat_show(struct device *dev, + struct device_attribute *dev_attr, char *buf, enum pme_attr attr) +{ + u64 data = 0; + int ret = 0; + + ret = pme_stat_get(attr, &data, 0); + if (!ret) + return snprintf(buf, PAGE_SIZE, "%llu\n", data); + else + return ret; +} + +static ssize_t pme_stat_store(struct device *dev, + struct device_attribute *dev_attr, const char *buf, + size_t count, enum pme_attr attr) +{ + unsigned long val; + u64 data = 0; + size_t ret = 0; + if (strict_strtoul(buf, 0, &val)) { + pr_err("pme: invalid input %s\n", buf); + return -EINVAL; + } + if (val) { + pr_err("pme: invalid input %s\n", buf); + return -EINVAL; + } + ret = pme_stat_get(attr, &data, 1); + return count; +} + + +#define PME_SYSFS_ATTR(pme_attr, perm, showhex) \ +static ssize_t pme_store_##pme_attr(struct device *dev, \ + struct device_attribute *attr, const char *buf, size_t count) \ +{ \ + return pme_store(dev, attr, buf, count, pme_attr_##pme_attr);\ +} \ +static ssize_t pme_show_##pme_attr(struct device *dev, \ + struct device_attribute *attr, char *buf) \ +{ \ + return pme_show(dev, attr, buf, pme_attr_##pme_attr, showhex);\ +} \ +static DEVICE_ATTR( pme_attr, perm, pme_show_##pme_attr, pme_store_##pme_attr); + + +#define PME_SYSFS_STAT_ATTR(pme_attr, perm) \ +static ssize_t pme_store_##pme_attr(struct device *dev, \ + struct device_attribute *attr, const char *buf, size_t count) \ +{ \ + return pme_stat_store(dev, attr, buf, count, pme_attr_##pme_attr);\ +} \ +static ssize_t pme_show_##pme_attr(struct device *dev, \ + struct device_attribute *attr, char *buf) \ +{ \ + return pme_stat_show(dev, attr, buf, pme_attr_##pme_attr);\ +} \ +static DEVICE_ATTR(pme_attr, perm, pme_show_##pme_attr, pme_store_##pme_attr); + + +#define PME_SYSFS_BSC_ATTR(bsc_id, perm, showhex) \ +static ssize_t pme_store_bsc_##bsc_id(struct device *dev,\ + struct device_attribute *attr, const char *buf, size_t count) \ +{ \ + return pme_store(dev, attr, buf, count, pme_attr_bsc(bsc_id));\ +} \ +static ssize_t pme_show_bsc_##bsc_id(struct device *dev,\ + struct device_attribute *attr, char *buf) \ +{ \ + return pme_show(dev, attr, buf, pme_attr_bsc(bsc_id), showhex);\ +} \ +static DEVICE_ATTR(bsc_id, perm, pme_show_bsc_##bsc_id, \ + pme_store_bsc_##bsc_id); + +/* Statistics Ctrl: update interval */ +static ssize_t pme_store_update_interval(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + unsigned long val; + + if (!pme2_have_control()) { + PMEPRERR("not on ctrl-plane\n"); + return -ENODEV; + } + if (strict_strtoul(buf, 0, &val)) { + dev_info(dev, "invalid input %s\n", buf); + return -EINVAL; + } + if (val > MAX_ACCUMULATOR_INTERVAL) { + dev_info(dev, "invalid input %s\n", buf); + return -ERANGE; + } + accumulator_update_interval(val); + return count; +} +static ssize_t pme_show_update_interval(struct device *dev, + struct device_attribute *attr, char *buf) +{ + if (!pme2_have_control()) + return -ENODEV; + return snprintf(buf, PAGE_SIZE, "%u\n", pme_stat_interval); +} + +#define FMT_0HEX "0x%08x\n" +#define FMT_HEX "0x%x\n" +#define FMT_DEC "%u\n" +#define PRIV_RO S_IRUSR +#define PRIV_RW (S_IRUSR | S_IWUSR) + +/* Register Interfaces */ +/* read-write; */ +PME_SYSFS_ATTR(efqc_int, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(sw_db, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(dmcr, PRIV_RW, FMT_0HEX); +PME_SYSFS_ATTR(smcr, PRIV_RW, FMT_0HEX); +PME_SYSFS_ATTR(famcr, PRIV_RW, FMT_0HEX); +PME_SYSFS_ATTR(kvlts, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(max_chain_length, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(pattern_range_counter_idx, PRIV_RW, FMT_0HEX); +PME_SYSFS_ATTR(pattern_range_counter_mask, PRIV_RW, FMT_0HEX); +PME_SYSFS_ATTR(max_allowed_test_line_per_pattern, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(max_pattern_matches_per_sui, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(max_pattern_evaluations_per_sui, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(report_length_limit, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(end_of_simple_sui_report, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(aim, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(end_of_sui_reaction_ptr, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(sre_pscl, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(sre_max_block_num, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(sre_max_instruction_limit, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(esr, PRIV_RW, FMT_0HEX); +PME_SYSFS_ATTR(pehd, PRIV_RW, FMT_0HEX); +PME_SYSFS_ATTR(ecc1bes, PRIV_RW, FMT_0HEX); +PME_SYSFS_ATTR(ecc2bes, PRIV_RW, FMT_0HEX); +PME_SYSFS_ATTR(miace, PRIV_RW, FMT_0HEX); +PME_SYSFS_ATTR(miacr, PRIV_RW, FMT_0HEX); +PME_SYSFS_ATTR(cdcr, PRIV_RW, FMT_0HEX); +PME_SYSFS_ATTR(pmtr, PRIV_RW, FMT_DEC); + +/* read-only; */ +PME_SYSFS_ATTR(max_pdsr_index, PRIV_RO, FMT_DEC); +PME_SYSFS_ATTR(sre_context_size, PRIV_RO, FMT_DEC); +PME_SYSFS_ATTR(sre_rule_num, PRIV_RO, FMT_DEC); +PME_SYSFS_ATTR(sre_session_ctx_num, PRIV_RO, FMT_DEC); +PME_SYSFS_ATTR(sre_max_index_size, PRIV_RO, FMT_DEC); +PME_SYSFS_ATTR(sre_max_offset_ctrl, PRIV_RO, FMT_DEC); +PME_SYSFS_ATTR(src_id, PRIV_RO, FMT_DEC); +PME_SYSFS_ATTR(liodnr, PRIV_RO, FMT_DEC); +PME_SYSFS_ATTR(rev1, PRIV_RO, FMT_0HEX); +PME_SYSFS_ATTR(rev2, PRIV_RO, FMT_0HEX); +PME_SYSFS_ATTR(isr, PRIV_RO, FMT_0HEX); +PME_SYSFS_ATTR(ecr0, PRIV_RO, FMT_0HEX); +PME_SYSFS_ATTR(ecr1, PRIV_RO, FMT_0HEX); +PME_SYSFS_ATTR(pmstat, PRIV_RO, FMT_0HEX); +PME_SYSFS_ATTR(eccaddr, PRIV_RO, FMT_0HEX); +PME_SYSFS_ATTR(ecccode, PRIV_RO, FMT_0HEX); +PME_SYSFS_ATTR(faconf, PRIV_RO, FMT_0HEX); +PME_SYSFS_ATTR(pdsrbah, PRIV_RO, FMT_0HEX); +PME_SYSFS_ATTR(pdsrbal, PRIV_RO, FMT_0HEX); +PME_SYSFS_ATTR(scbarh, PRIV_RO, FMT_0HEX); +PME_SYSFS_ATTR(scbarl, PRIV_RO, FMT_0HEX); + + +/* Buffer Pool Size Configuration */ +PME_SYSFS_BSC_ATTR(0, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(1, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(2, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(3, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(4, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(5, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(6, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(7, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(8, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(9, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(10, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(11, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(12, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(13, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(14, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(15, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(16, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(17, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(18, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(19, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(20, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(21, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(22, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(23, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(24, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(25, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(26, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(27, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(28, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(29, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(30, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(31, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(32, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(33, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(34, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(35, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(36, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(37, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(38, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(39, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(40, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(41, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(42, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(43, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(44, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(45, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(46, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(47, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(48, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(49, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(50, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(51, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(52, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(53, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(54, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(55, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(56, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(57, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(58, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(59, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(60, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(61, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(62, PRIV_RW, FMT_DEC); +PME_SYSFS_BSC_ATTR(63, PRIV_RW, FMT_DEC); + +/* Stats Counters*/ +PME_SYSFS_STAT_ATTR(trunci, PRIV_RW); +PME_SYSFS_STAT_ATTR(rbc, PRIV_RW); +PME_SYSFS_STAT_ATTR(tbt0ecc1ec, PRIV_RW); +PME_SYSFS_STAT_ATTR(tbt1ecc1ec, PRIV_RW); +PME_SYSFS_STAT_ATTR(vlt0ecc1ec, PRIV_RW); +PME_SYSFS_STAT_ATTR(vlt1ecc1ec, PRIV_RW); +PME_SYSFS_STAT_ATTR(cmecc1ec, PRIV_RW); +PME_SYSFS_STAT_ATTR(dxcmecc1ec, PRIV_RW); +PME_SYSFS_STAT_ATTR(dxemecc1ec, PRIV_RW); +PME_SYSFS_STAT_ATTR(stnib, PRIV_RW); +PME_SYSFS_STAT_ATTR(stnis, PRIV_RW); +PME_SYSFS_STAT_ATTR(stnth1, PRIV_RW); +PME_SYSFS_STAT_ATTR(stnth2, PRIV_RW); +PME_SYSFS_STAT_ATTR(stnthv, PRIV_RW); +PME_SYSFS_STAT_ATTR(stnths, PRIV_RW); +PME_SYSFS_STAT_ATTR(stnch, PRIV_RW); +PME_SYSFS_STAT_ATTR(stnpm, PRIV_RW); +PME_SYSFS_STAT_ATTR(stns1m, PRIV_RW); +PME_SYSFS_STAT_ATTR(stnpmr, PRIV_RW); +PME_SYSFS_STAT_ATTR(stndsr, PRIV_RW); +PME_SYSFS_STAT_ATTR(stnesr, PRIV_RW); +PME_SYSFS_STAT_ATTR(stns1r, PRIV_RW); +PME_SYSFS_STAT_ATTR(stnob, PRIV_RW); +PME_SYSFS_STAT_ATTR(mia_byc, PRIV_RW); +PME_SYSFS_STAT_ATTR(mia_blc, PRIV_RW); + +/* Stats Control */ +PME_SYSFS_ATTR(tbt0ecc1th, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(tbt1ecc1th, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(vlt0ecc1th, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(vlt1ecc1th, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(cmecc1th, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(dxcmecc1th, PRIV_RW, FMT_DEC); +PME_SYSFS_ATTR(dxemecc1th, PRIV_RW, FMT_DEC); + +static DEVICE_ATTR(update_interval, (S_IRUSR | S_IWUSR), + pme_show_update_interval, pme_store_update_interval); + +static struct attribute *pme_dev_bsc_attributes[] = { + &dev_attr_0.attr, + &dev_attr_1.attr, + &dev_attr_2.attr, + &dev_attr_3.attr, + &dev_attr_4.attr, + &dev_attr_5.attr, + &dev_attr_6.attr, + &dev_attr_7.attr, + &dev_attr_8.attr, + &dev_attr_9.attr, + &dev_attr_10.attr, + &dev_attr_11.attr, + &dev_attr_12.attr, + &dev_attr_13.attr, + &dev_attr_14.attr, + &dev_attr_15.attr, + &dev_attr_16.attr, + &dev_attr_17.attr, + &dev_attr_18.attr, + &dev_attr_19.attr, + &dev_attr_20.attr, + &dev_attr_21.attr, + &dev_attr_22.attr, + &dev_attr_23.attr, + &dev_attr_24.attr, + &dev_attr_25.attr, + &dev_attr_26.attr, + &dev_attr_27.attr, + &dev_attr_28.attr, + &dev_attr_29.attr, + &dev_attr_30.attr, + &dev_attr_31.attr, + &dev_attr_32.attr, + &dev_attr_33.attr, + &dev_attr_34.attr, + &dev_attr_35.attr, + &dev_attr_36.attr, + &dev_attr_37.attr, + &dev_attr_38.attr, + &dev_attr_39.attr, + &dev_attr_40.attr, + &dev_attr_41.attr, + &dev_attr_42.attr, + &dev_attr_43.attr, + &dev_attr_44.attr, + &dev_attr_45.attr, + &dev_attr_46.attr, + &dev_attr_47.attr, + &dev_attr_48.attr, + &dev_attr_49.attr, + &dev_attr_50.attr, + &dev_attr_51.attr, + &dev_attr_52.attr, + &dev_attr_53.attr, + &dev_attr_54.attr, + &dev_attr_55.attr, + &dev_attr_56.attr, + &dev_attr_57.attr, + &dev_attr_58.attr, + &dev_attr_59.attr, + &dev_attr_60.attr, + &dev_attr_61.attr, + &dev_attr_62.attr, + &dev_attr_63.attr, + NULL +}; + +static struct attribute *pme_dev_attributes[] = { + &dev_attr_efqc_int.attr, + &dev_attr_sw_db.attr, + &dev_attr_dmcr.attr, + &dev_attr_smcr.attr, + &dev_attr_famcr.attr, + &dev_attr_kvlts.attr, + &dev_attr_max_chain_length.attr, + &dev_attr_pattern_range_counter_idx.attr, + &dev_attr_pattern_range_counter_mask.attr, + &dev_attr_max_allowed_test_line_per_pattern.attr, + &dev_attr_max_pdsr_index.attr, + &dev_attr_max_pattern_matches_per_sui.attr, + &dev_attr_max_pattern_evaluations_per_sui.attr, + &dev_attr_report_length_limit.attr, + &dev_attr_end_of_simple_sui_report.attr, + &dev_attr_aim.attr, + &dev_attr_sre_context_size.attr, + &dev_attr_sre_rule_num.attr, + &dev_attr_sre_session_ctx_num.attr, + &dev_attr_end_of_sui_reaction_ptr.attr, + &dev_attr_sre_pscl.attr, + &dev_attr_sre_max_block_num.attr, + &dev_attr_sre_max_instruction_limit.attr, + &dev_attr_sre_max_index_size.attr, + &dev_attr_sre_max_offset_ctrl.attr, + &dev_attr_src_id.attr, + &dev_attr_liodnr.attr, + &dev_attr_rev1.attr, + &dev_attr_rev2.attr, + &dev_attr_isr.attr, + &dev_attr_ecr0.attr, + &dev_attr_ecr1.attr, + &dev_attr_esr.attr, + &dev_attr_pmstat.attr, + &dev_attr_pehd.attr, + &dev_attr_ecc1bes.attr, + &dev_attr_ecc2bes.attr, + &dev_attr_eccaddr.attr, + &dev_attr_ecccode.attr, + &dev_attr_miace.attr, + &dev_attr_miacr.attr, + &dev_attr_cdcr.attr, + &dev_attr_pmtr.attr, + &dev_attr_faconf.attr, + &dev_attr_pdsrbah.attr, + &dev_attr_pdsrbal.attr, + &dev_attr_scbarh.attr, + &dev_attr_scbarl.attr, + NULL +}; + +static struct attribute *pme_dev_stats_counter_attributes[] = { + &dev_attr_trunci.attr, + &dev_attr_rbc.attr, + &dev_attr_tbt0ecc1ec.attr, + &dev_attr_tbt1ecc1ec.attr, + &dev_attr_vlt0ecc1ec.attr, + &dev_attr_vlt1ecc1ec.attr, + &dev_attr_cmecc1ec.attr, + &dev_attr_dxcmecc1ec.attr, + &dev_attr_dxemecc1ec.attr, + &dev_attr_stnib.attr, + &dev_attr_stnis.attr, + &dev_attr_stnth1.attr, + &dev_attr_stnth2.attr, + &dev_attr_stnthv.attr, + &dev_attr_stnths.attr, + &dev_attr_stnch.attr, + &dev_attr_stnpm.attr, + &dev_attr_stns1m.attr, + &dev_attr_stnpmr.attr, + &dev_attr_stndsr.attr, + &dev_attr_stnesr.attr, + &dev_attr_stns1r.attr, + &dev_attr_stnob.attr, + &dev_attr_mia_byc.attr, + &dev_attr_mia_blc.attr, + NULL +}; + +static struct attribute *pme_dev_stats_ctrl_attributes[] = { + &dev_attr_update_interval.attr, + &dev_attr_tbt0ecc1th.attr, + &dev_attr_tbt1ecc1th.attr, + &dev_attr_vlt0ecc1th.attr, + &dev_attr_vlt1ecc1th.attr, + &dev_attr_cmecc1th.attr, + &dev_attr_dxcmecc1th.attr, + &dev_attr_dxemecc1th.attr, + NULL +}; + +/* root level */ +static const struct attribute_group pme_dev_attr_grp = { + .name = NULL, /* put in device directory */ + .attrs = pme_dev_attributes +}; + +/* root/bsc */ +static struct attribute_group pme_dev_bsc_attr_grp = { + .name = "bsc", + .attrs = pme_dev_bsc_attributes +}; + +/* root/stats */ +static struct attribute_group pme_dev_stats_counters_attr_grp = { + .name = "stats", + .attrs = pme_dev_stats_counter_attributes +}; + +/* root/stats_ctrl */ +static struct attribute_group pme_dev_stats_ctrl_attr_grp = { + .name = "stats_ctrl", + .attrs = pme_dev_stats_ctrl_attributes +}; + + +int pme2_create_sysfs_dev_files(struct platform_device *ofdev) +{ + int ret; + + ret = sysfs_create_group(&ofdev->dev.kobj, &pme_dev_attr_grp); + if (ret) + goto done; + ret = sysfs_create_group(&ofdev->dev.kobj, &pme_dev_bsc_attr_grp); + if (ret) + goto del_group_1; + ret = sysfs_create_group(&ofdev->dev.kobj, &pme_dev_stats_counters_attr_grp); + if (ret) + goto del_group_2; + ret = sysfs_create_group(&ofdev->dev.kobj, &pme_dev_stats_ctrl_attr_grp); + if (ret) + goto del_group_3; + goto done; +del_group_3: + sysfs_remove_group(&ofdev->dev.kobj, &pme_dev_stats_counters_attr_grp); +del_group_2: + sysfs_remove_group(&ofdev->dev.kobj, &pme_dev_bsc_attr_grp); +del_group_1: + sysfs_remove_group(&ofdev->dev.kobj, &pme_dev_attr_grp); +done: + if (ret) + dev_err(&ofdev->dev, + "Cannot create dev attributes ret=%d\n", ret); + return ret; +} + +void pme2_remove_sysfs_dev_files(struct platform_device *ofdev) +{ + sysfs_remove_group(&ofdev->dev.kobj, &pme_dev_stats_ctrl_attr_grp); + sysfs_remove_group(&ofdev->dev.kobj, &pme_dev_stats_counters_attr_grp); + sysfs_remove_group(&ofdev->dev.kobj, &pme_dev_bsc_attr_grp); + sysfs_remove_group(&ofdev->dev.kobj, &pme_dev_attr_grp); +} + + --- linux-3.13.0.orig/drivers/staging/fsl_pme2/pme2_test.h +++ linux-3.13.0/drivers/staging/fsl_pme2/pme2_test.h @@ -0,0 +1,74 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "pme2_sys.h" + +static inline void __hexdump(unsigned long start, unsigned long end, + unsigned long p, size_t sz, const unsigned char *c) +{ + while (start < end) { + unsigned int pos = 0; + char buf[64]; + int nl = 0; + pos += sprintf(buf + pos, "%08lx: ", start); + do { + if ((start < p) || (start >= (p + sz))) + pos += sprintf(buf + pos, ".."); + else + pos += sprintf(buf + pos, "%02x", *(c++)); + if (!(++start & 15)) { + buf[pos++] = '\n'; + nl = 1; + } else { + nl = 0; + if(!(start & 1)) + buf[pos++] = ' '; + if(!(start & 3)) + buf[pos++] = ' '; + } + } while (start & 15); + if (!nl) + buf[pos++] = '\n'; + buf[pos] = '\0'; + pr_info("%s", buf); + } +} +static inline void hexdump(const void *ptr, size_t sz) +{ + unsigned long p = (unsigned long)ptr; + unsigned long start = p & ~(unsigned long)15; + unsigned long end = (p + sz + 15) & ~(unsigned long)15; + const unsigned char *c = ptr; + __hexdump(start, end, p, sz, c); +} + +int pme2_sample_db(void); +int pme2_clear_sample_db(void); --- linux-3.13.0.orig/drivers/staging/fsl_pme2/pme2_test_high.c +++ linux-3.13.0/drivers/staging/fsl_pme2/pme2_test_high.c @@ -0,0 +1,238 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "pme2_test.h" + +MODULE_AUTHOR("Geoff Thorpe"); +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_DESCRIPTION("FSL PME2 (p4080) high-level self-test"); + +/* Default Flow Context State */ +static u8 fl_ctx_exp[]={ + 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 +}; + +void scan_cb(struct pme_ctx *ctx, const struct qm_fd *fd, + struct pme_ctx_token *token) +{ + hexdump(fd, sizeof(*fd)); +} + +struct ctrl_op { + struct pme_ctx_ctrl_token ctx_ctr; + struct completion cb_done; + enum pme_status cmd_status; + u8 res_flag; +}; + +static void ctrl_cb(struct pme_ctx *ctx, const struct qm_fd *fd, + struct pme_ctx_ctrl_token *token) +{ + struct ctrl_op *ctrl = (struct ctrl_op *)token; + pr_info("pme2_test_high: ctrl_cb() invoked, fd;!\n"); + ctrl->cmd_status = pme_fd_res_status(fd); + ctrl->res_flag = pme_fd_res_flags(fd); + hexdump(fd, sizeof(*fd)); + complete(&ctrl->cb_done); +} + + +#define POST_CTRL(val) \ +do { \ + if (ret) \ + val = -1;\ + else if (pme_ctx_is_dead(&ctx))\ + val = -1;\ + else if (ctx_ctrl.cmd_status)\ + val = -1;\ + else if (ctx_ctrl.res_flag)\ + val = -1;\ +} while (0) + +void pme2_test_high(void) +{ + int post_ctrl = 0; + struct pme_flow flow; + struct qm_fqd_stashing stashing; + struct pme_ctx ctx = { + .cb = scan_cb + }; + int ret; + struct ctrl_op ctx_ctrl = { + .ctx_ctr.cb = ctrl_cb, + .cmd_status = 0, + .res_flag = 0 + }; + struct cpumask backup_mask = current->cpus_allowed; + struct cpumask new_mask = *qman_affine_cpus(); + + pr_info("PME2: high-level test starting\n"); + + cpumask_and(&new_mask, &new_mask, bman_affine_cpus()); + ret = set_cpus_allowed_ptr(current, &new_mask); + if (ret) { + post_ctrl = -1; + pr_info("PME2: test high: can't set cpumask\n"); + goto done; + } + + pme_sw_flow_init(&flow); + init_completion(&ctx_ctrl.cb_done); + ret = pme_ctx_init(&ctx, PME_CTX_FLAG_LOCAL, 0, 4, 4, 0, NULL); + POST_CTRL(post_ctrl); + if (post_ctrl) + goto restore_mask; + + /* enable the context */ + pme_ctx_enable(&ctx); + pr_info("PME2: pme_ctx_enable done\n"); + ret = pme_ctx_ctrl_update_flow(&ctx, PME_CTX_OP_WAIT | PME_CMD_FCW_ALL, + &flow, &ctx_ctrl.ctx_ctr); + pr_info("PME2: pme_ctx_ctrl_update_flow done\n"); + wait_for_completion(&ctx_ctrl.cb_done); + POST_CTRL(post_ctrl); + if (post_ctrl) + goto disable_ctx; + /* read back flow settings */ + ret = pme_ctx_ctrl_read_flow(&ctx, PME_CTX_OP_WAIT, &flow, + &ctx_ctrl.ctx_ctr); + pr_info("PME2: pme_ctx_ctrl_read_flow done\n"); + wait_for_completion(&ctx_ctrl.cb_done); + POST_CTRL(post_ctrl); + if (post_ctrl) + goto disable_ctx; + if (memcmp(&flow, fl_ctx_exp, sizeof(flow))) { + pr_info("Default Flow Context Read FAIL\n"); + pr_info("Expected:\n"); + hexdump(fl_ctx_exp, sizeof(fl_ctx_exp)); + pr_info("Received:\n"); + hexdump(&flow, sizeof(flow)); + post_ctrl = -1; + goto disable_ctx; + } else + pr_info("Default Flow Context Read OK\n"); + /* start a NOP */ + ret = pme_ctx_ctrl_nop(&ctx, 0, &ctx_ctrl.ctx_ctr); + pr_info("PME2: pme_ctx_ctrl_nop done\n"); + wait_for_completion(&ctx_ctrl.cb_done); + POST_CTRL(post_ctrl); + if (post_ctrl) + goto disable_ctx; + /* start an update to add residue to the context */ + flow.ren = 1; + ret = pme_ctx_ctrl_update_flow(&ctx, PME_CTX_OP_WAIT | PME_CMD_FCW_RES, + &flow, &ctx_ctrl.ctx_ctr); + pr_info("PME2: pme_ctx_ctrl_update_flow done\n"); + wait_for_completion(&ctx_ctrl.cb_done); + POST_CTRL(post_ctrl); + if (post_ctrl) + goto disable_ctx; + /* start a blocking disable */ + ret = pme_ctx_disable(&ctx, PME_CTX_OP_WAIT, &ctx_ctrl.ctx_ctr); + if (ret < 1) { + post_ctrl = -1; + goto finish_ctx; + } + wait_for_completion(&ctx_ctrl.cb_done); + /* do some reconfiguration */ + ret = pme_ctx_reconfigure_tx(&ctx, 63, 7); + if (ret) { + post_ctrl = -1; + goto finish_ctx; + } + stashing.exclusive = 0; + stashing.annotation_cl = 0; + stashing.data_cl = 2; + stashing.context_cl = 2; + ret = pme_ctx_reconfigure_rx(&ctx, 7, 0, &stashing); + if (ret) { + post_ctrl = -1; + goto finish_ctx; + } + /* reenable */ + ret = pme_ctx_enable(&ctx); + if (ret) { + post_ctrl = -1; + goto finish_ctx; + } + /* read back flow settings */ + ret = pme_ctx_ctrl_read_flow(&ctx, + PME_CTX_OP_WAIT | PME_CTX_OP_WAIT_INT | PME_CMD_FCW_RES, &flow, + &ctx_ctrl.ctx_ctr); + pr_info("PME2: pme_ctx_ctrl_read_flow done\n"); + wait_for_completion(&ctx_ctrl.cb_done); + POST_CTRL(post_ctrl); + if (post_ctrl) + goto disable_ctx; + /* blocking NOP */ + ret = pme_ctx_ctrl_nop(&ctx, PME_CTX_OP_WAIT | PME_CTX_OP_WAIT_INT, + &ctx_ctrl.ctx_ctr); + pr_info("PME2: pme_ctx_ctrl_nop done\n"); + wait_for_completion(&ctx_ctrl.cb_done); + POST_CTRL(post_ctrl); + /* Disable, and done */ +disable_ctx: + ret = pme_ctx_disable(&ctx, PME_CTX_OP_WAIT, &ctx_ctrl.ctx_ctr); + BUG_ON(ret < 1); + wait_for_completion(&ctx_ctrl.cb_done); +finish_ctx: + pme_ctx_finish(&ctx); +restore_mask: + ret = set_cpus_allowed_ptr(current, &backup_mask); + if (ret) { + pr_err("PME2 test high: can't restore cpumask"); + post_ctrl = -1; + } +done: + if (post_ctrl) + pr_info("PME2: high-level test failed\n"); + else + pr_info("PME2: high-level test passed\n"); +} + +static int pme2_test_high_init(void) +{ + int big_loop = 2; + while (big_loop--) + pme2_test_high(); + return 0; +} + +static void pme2_test_high_exit(void) +{ +} + +module_init(pme2_test_high_init); +module_exit(pme2_test_high_exit); + --- linux-3.13.0.orig/drivers/staging/fsl_pme2/pme2_test_scan.c +++ linux-3.13.0/drivers/staging/fsl_pme2/pme2_test_scan.c @@ -0,0 +1,653 @@ +/* Copyright 2009-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "pme2_test.h" + +enum scan_ctrl_mode { + no_scan = 0, + do_scan = 1, +}; + +enum db_ctrl_mode { + create_destroy = 0, + create = 1, + destroy = 2, + nothing = 3 +}; + +MODULE_AUTHOR("Jeffrey Ladouceur"); +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_DESCRIPTION("PME scan testing"); + +static enum db_ctrl_mode db_ctrl; +module_param(db_ctrl, uint, 0644); +MODULE_PARM_DESC(db_ctrl, "PME Database control"); + +static enum scan_ctrl_mode scan_ctrl = 1; +module_param(scan_ctrl, uint, 0644); +MODULE_PARM_DESC(scan_ctrl, "Scan control"); + +static u8 scan_result_direct_mode_inc_mode[] = { + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 +}; + +static u8 fl_ctx_exp[] = { + 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 +}; + +/* same again with 'sos' bit cleared */ +static u8 fl_ctx_exp_post_scan[] = { + 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 +}; + +struct scan_ctx { + struct pme_ctx base_ctx; + struct qm_fd result_fd; +}; + +struct ctrl_op { + struct pme_ctx_ctrl_token ctx_ctr; + struct completion cb_done; + enum pme_status cmd_status; + u8 res_flag; +}; + +static void ctrl_cb(struct pme_ctx *ctx, const struct qm_fd *fd, + struct pme_ctx_ctrl_token *token) +{ + struct ctrl_op *ctrl = (struct ctrl_op *)token; + ctrl->cmd_status = pme_fd_res_status(fd); + ctrl->res_flag = pme_fd_res_flags(fd) & PME_STATUS_UNRELIABLE; + /* hexdump(fd, sizeof(*fd)); */ + complete(&ctrl->cb_done); +} + +static DECLARE_COMPLETION(scan_comp); + +static void scan_cb(struct pme_ctx *ctx, const struct qm_fd *fd, + struct pme_ctx_token *ctx_token) +{ + struct scan_ctx *my_ctx = (struct scan_ctx *)ctx; + memcpy(&my_ctx->result_fd, fd, sizeof(*fd)); + complete(&scan_comp); +} + +#ifdef CONFIG_FSL_PME2_TEST_SCAN_WITH_BPID + +static struct bman_pool *pool; +static u32 pme_bpid; +static void *bman_buffers_virt_base; +static dma_addr_t bman_buffers_phys_base; + +static void release_buffer(dma_addr_t addr) +{ + struct bm_buffer bufs_in; + bm_buffer_set64(&bufs_in, addr); + if (bman_release(pool, &bufs_in, 1, BMAN_RELEASE_FLAG_WAIT)) + panic("bman_release() failed\n"); +} + +static void empty_buffer(void) +{ + struct bm_buffer bufs_in; + int ret; + + do { + ret = bman_acquire(pool, &bufs_in, 1, 0); + } while (!ret); +} +#endif /*CONFIG_FSL_PME2_TEST_SCAN_WITH_BPID*/ + +static int scan_test_direct(int trunc, int use_bp) +{ + struct scan_ctx a_scan_ctx = { + .base_ctx = { + .cb = scan_cb + } + }; + struct ctrl_op ctx_ctrl = { + .ctx_ctr.cb = ctrl_cb, + .cmd_status = 0, + .res_flag = 0 + }; + struct qm_fd fd; + struct qm_sg_entry sg_table[2]; + int ret; + enum pme_status status; + struct pme_ctx_token token; + u8 *scan_result; + u32 scan_result_size; + u8 scan_data[] = { + 0x41, 0x42, 0x43, 0x44, 0x45 + }; + u8 result_data[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00 + }; + + init_completion(&ctx_ctrl.cb_done); + scan_result = scan_result_direct_mode_inc_mode; + scan_result_size = sizeof(scan_result_direct_mode_inc_mode); + + ret = pme_ctx_init(&a_scan_ctx.base_ctx, + PME_CTX_FLAG_DIRECT | PME_CTX_FLAG_LOCAL, + 0, 4, 4, 0, NULL); + if (ret) { + pr_err("pme scan test failed: 0x%x\n", ret); + return ret; + } + /* enable the context */ + ret = pme_ctx_enable(&a_scan_ctx.base_ctx); + if (ret) { + pr_err("pme scan test failed: 0x%x\n", ret); + goto ctx_finish; + } + + /* Do a pre-built output, scan with match test */ + /* Build a frame descriptor */ + memset(&fd, 0, sizeof(struct qm_fd)); + memset(&sg_table, 0, sizeof(sg_table)); + + if (trunc) { + fd.length20 = sizeof(scan_data); + qm_fd_addr_set64(&fd, pme_map(scan_data)); + } else { + /* build the result */ + qm_sg_entry_set64(&sg_table[0], pme_map(result_data)); + sg_table[0].length = sizeof(result_data); + qm_sg_entry_set64(&sg_table[1], pme_map(scan_data)); + sg_table[1].length = sizeof(scan_data); + sg_table[1].final = 1; + fd._format2 = qm_fd_compound; + qm_fd_addr_set64(&fd, pme_map(sg_table)); + } + + ret = pme_ctx_scan(&a_scan_ctx.base_ctx, 0, &fd, + PME_SCAN_ARGS(PME_CMD_SCAN_SR | PME_CMD_SCAN_E, 0, 0xff00), + &token); + if (ret) { + pr_err("pme scan test failed: 0x%x\n", ret); + goto ctx_disable; + } + wait_for_completion(&scan_comp); + + status = pme_fd_res_status(&a_scan_ctx.result_fd); + if (status) { + pr_err("pme scan test failed 0x%x\n", status); + goto ctx_disable; + } + if (trunc) { + int res_flag = pme_fd_res_flags(&a_scan_ctx.result_fd); + /* Check the response...expect truncation bit to be set */ + if (!(res_flag & PME_STATUS_TRUNCATED)) { + pr_err("pme scan test failed, expected truncation\n"); + goto ctx_disable; + } + } else { + if (memcmp(scan_result, result_data, scan_result_size) != 0) { + pr_err("pme scan test result not expected\n"); + hexdump(scan_result, scan_result_size); + pr_err("Received...\n"); + hexdump(result_data, sizeof(result_data)); + goto ctx_disable; + } + } + + ret = pme_ctx_disable(&a_scan_ctx.base_ctx, PME_CTX_OP_WAIT, NULL); + if (ret) { + pr_err("pme scan test failed: 0x%x\n", ret); + goto ctx_finish; + } + if (!use_bp) { + pme_ctx_finish(&a_scan_ctx.base_ctx); + return 0; + } + /* use buffer pool */ + /* Check with bman */ + /* reconfigure */ + +#ifdef CONFIG_FSL_PME2_TEST_SCAN_WITH_BPID + ret = pme_ctx_reconfigure_tx(&a_scan_ctx.base_ctx, pme_bpid, 5); + if (ret) { + pr_err("pme scan test failed: 0x%x\n", ret); + goto ctx_finish; + } + ret = pme_ctx_enable(&a_scan_ctx.base_ctx); + if (ret) { + pr_err("pme scan test failed: 0x%x\n", ret); + goto ctx_finish; + } + /* Do a pre-built output, scan with match test */ + /* Build a frame descriptor */ + memset(&fd, 0, sizeof(struct qm_fd)); + memset(&sg_table, 0, sizeof(sg_table)); + + /* build the result */ + /* result is all zero...use bman */ + qm_sg_entry_set64(&sg_table[1], pme_map(scan_data)); + sg_table[1].length = sizeof(scan_data); + sg_table[1].final = 1; + + fd._format2 = qm_fd_compound; + qm_fd_addr_set64(&fd, pme_map(sg_table)); + + ret = pme_ctx_scan(&a_scan_ctx.base_ctx, 0, &fd, + PME_SCAN_ARGS(PME_CMD_SCAN_SR | PME_CMD_SCAN_E, 0, 0xff00), + &token); + if (ret) { + pr_err("pme scan test failed: 0x%x\n", ret); + goto ctx_disable; + } + wait_for_completion(&scan_comp); + + status = pme_fd_res_status(&a_scan_ctx.result_fd); + if (status) { + pr_err("pme scan test failed 0x%x\n", status); + goto ctx_disable; + } + /* sg result should point to bman buffer */ + if (!qm_sg_entry_get64(&sg_table[0])) { + pr_err("pme scan test failed, sg result not bman buffer\n"); + goto ctx_disable; + } + if (memcmp(scan_result, bman_buffers_virt_base, scan_result_size) + != 0) { + pr_err("pme scan test not expected, Expected\n"); + hexdump(scan_result, scan_result_size); + pr_err("Received...\n"); + hexdump(bman_buffers_virt_base, scan_result_size); + release_buffer(qm_sg_entry_get64(&sg_table[0])); + goto ctx_disable; + } + release_buffer(qm_sg_entry_get64(&sg_table[0])); + ret = pme_ctx_disable(&a_scan_ctx.base_ctx, PME_CTX_OP_WAIT, NULL); + if (ret) { + pr_err("pme scan test failed: 0x%x\n", ret); + goto ctx_finish; + } + pme_ctx_finish(&a_scan_ctx.base_ctx); + return 0; +#endif + +/* failure path */ +ctx_disable: + ret = pme_ctx_disable(&a_scan_ctx.base_ctx, PME_CTX_OP_WAIT, NULL); +ctx_finish: + pme_ctx_finish(&a_scan_ctx.base_ctx); + return (!ret) ? -EINVAL : ret; +} + +static int scan_test_flow(void) +{ + struct pme_flow flow; + struct pme_flow rb_flow; + struct scan_ctx a_scan_ctx = { + .base_ctx = { + .cb = scan_cb + } + }; + struct ctrl_op ctx_ctrl = { + .ctx_ctr.cb = ctrl_cb, + .cmd_status = 0, + .res_flag = 0 + }; + struct qm_fd fd; + struct qm_sg_entry sg_table[2]; + int ret; + enum pme_status status; + struct pme_ctx_token token; + u8 *scan_result; + u32 scan_result_size; + u8 scan_data[] = { + 0x41, 0x42, 0x43, 0x44, 0x45 + }; + u8 result_data[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00 + }; + + pme_sw_flow_init(&flow); + init_completion(&ctx_ctrl.cb_done); + scan_result = scan_result_direct_mode_inc_mode; + scan_result_size = sizeof(scan_result_direct_mode_inc_mode); + + ret = pme_ctx_init(&a_scan_ctx.base_ctx, + PME_CTX_FLAG_LOCAL, 0, 4, 4, 0, NULL); + if (ret) { + pr_err("pme scan test failed: 0x%x\n", ret); + return ret; + } + /* enable the context */ + ret = pme_ctx_enable(&a_scan_ctx.base_ctx); + if (ret) { + pr_err("pme scan test failed: 0x%x\n", ret); + goto flow_ctx_finish; + } + ret = pme_ctx_ctrl_update_flow(&a_scan_ctx.base_ctx, + PME_CTX_OP_WAIT | PME_CMD_FCW_ALL, &flow, &ctx_ctrl.ctx_ctr); + if (ret) { + pr_err("pme scan test failed: 0x%x\n", ret); + goto flow_ctx_disable; + } + wait_for_completion(&ctx_ctrl.cb_done); + if (ctx_ctrl.cmd_status || ctx_ctrl.res_flag) { + pr_err("pme scan test failed: 0x%x\n", ret); + goto flow_ctx_disable; + } + /* read back flow settings */ + ret = pme_ctx_ctrl_read_flow(&a_scan_ctx.base_ctx, + PME_CTX_OP_WAIT, &rb_flow, &ctx_ctrl.ctx_ctr); + if (ret) { + pr_err("pme scan test failed: 0x%x\n", ret); + goto flow_ctx_disable; + } + wait_for_completion(&ctx_ctrl.cb_done); + if (ctx_ctrl.cmd_status || ctx_ctrl.res_flag) { + pr_err("pme scan test failed: 0x%x\n", ret); + goto flow_ctx_disable; + } + if (memcmp(&rb_flow, fl_ctx_exp, sizeof(rb_flow)) != 0) { + pr_err("pme scan test Flow Context Read FAIL\n"); + pr_err("Expected\n"); + hexdump(fl_ctx_exp, sizeof(fl_ctx_exp)); + pr_err("Received...\n"); + hexdump(&rb_flow, sizeof(rb_flow)); + goto flow_ctx_disable; + } + + /* Do a pre-built output, scan with match test */ + /* Build a frame descriptor */ + memset(&fd, 0, sizeof(struct qm_fd)); + memset(&sg_table, 0, sizeof(sg_table)); + + /* build the result */ + qm_sg_entry_set64(&sg_table[0], pme_map(result_data)); + sg_table[0].length = sizeof(result_data); + qm_sg_entry_set64(&sg_table[1], pme_map(scan_data)); + sg_table[1].length = sizeof(scan_data); + sg_table[1].final = 1; + + fd._format2 = qm_fd_compound; + qm_fd_addr_set64(&fd, pme_map(sg_table)); + + ret = pme_ctx_scan(&a_scan_ctx.base_ctx, 0, &fd, + PME_SCAN_ARGS(PME_CMD_SCAN_SR | PME_CMD_SCAN_E, 0, 0xff00), + &token); + if (ret) { + pr_err("pme scan test failed: 0x%x\n", ret); + goto flow_ctx_disable; + } + wait_for_completion(&scan_comp); + + status = pme_fd_res_status(&a_scan_ctx.result_fd); + if (status) { + pr_err("pme scan test failed 0x%x\n", status); + goto flow_ctx_disable; + } + + if (memcmp(scan_result, result_data, scan_result_size) != 0) { + pr_err("pme scan test result not expected\n"); + hexdump(scan_result, scan_result_size); + pr_err("Received...\n"); + hexdump(result_data, sizeof(result_data)); + goto flow_ctx_disable; + } + + /* read back flow settings */ + ret = pme_ctx_ctrl_read_flow(&a_scan_ctx.base_ctx, + PME_CTX_OP_WAIT, &rb_flow, &ctx_ctrl.ctx_ctr); + if (ret) { + pr_err("pme scan test failed 0x%x\n", status); + goto flow_ctx_disable; + } + wait_for_completion(&ctx_ctrl.cb_done); + if (ctx_ctrl.cmd_status || ctx_ctrl.res_flag) { + pr_err("pme scan test failed: 0x%x\n", ret); + goto flow_ctx_disable; + } + if (memcmp(&rb_flow, fl_ctx_exp_post_scan, sizeof(rb_flow)) != 0) { + pr_err("pme scan test Flow Context Read FAIL\n"); + pr_err("Expected\n"); + hexdump(fl_ctx_exp_post_scan, sizeof(fl_ctx_exp_post_scan)); + pr_err("Received\n"); + hexdump(&rb_flow, sizeof(rb_flow)); + goto flow_ctx_disable; + } + + /* Test truncation test */ + /* Build a frame descriptor */ + memset(&fd, 0, sizeof(struct qm_fd)); + + fd.length20 = sizeof(scan_data); + qm_fd_addr_set64(&fd, pme_map(scan_data)); + + ret = pme_ctx_scan(&a_scan_ctx.base_ctx, 0, &fd, + PME_SCAN_ARGS(PME_CMD_SCAN_SR | PME_CMD_SCAN_E, 0, 0xff00), + &token); + if (ret) { + pr_err("pme scan test failed 0x%x\n", status); + goto flow_ctx_disable; + } + wait_for_completion(&scan_comp); + + status = pme_fd_res_status(&a_scan_ctx.result_fd); + if (status) { + pr_err("pme scan test failed 0x%x\n", status); + goto flow_ctx_disable; + } + /* Check the response...expect truncation bit to be set */ + if (!(pme_fd_res_flags(&a_scan_ctx.result_fd) & PME_STATUS_TRUNCATED)) { + pr_err("st: Scan result failed...expected trunc\n"); + goto flow_ctx_disable; + } + + /* read back flow settings */ + ret = pme_ctx_ctrl_read_flow(&a_scan_ctx.base_ctx, + PME_CTX_OP_WAIT, &rb_flow, &ctx_ctrl.ctx_ctr); + if (ret) { + pr_err("pme scan test failed: 0x%x\n", ret); + goto flow_ctx_disable; + } + wait_for_completion(&ctx_ctrl.cb_done); + if (ctx_ctrl.cmd_status || ctx_ctrl.res_flag) { + pr_err("pme scan test failed: 0x%x\n", ret); + goto flow_ctx_disable; + } + if (memcmp(&rb_flow, fl_ctx_exp_post_scan, sizeof(rb_flow)) != 0) { + pr_err("pme scan test Flow Context Read FAIL\n"); + pr_err("Expected\n"); + hexdump(fl_ctx_exp_post_scan, sizeof(fl_ctx_exp_post_scan)); + pr_err("Received\n"); + hexdump(&rb_flow, sizeof(rb_flow)); + goto flow_ctx_disable; + } + + /* Disable */ + ret = pme_ctx_disable(&a_scan_ctx.base_ctx, PME_CTX_OP_WAIT, + &ctx_ctrl.ctx_ctr); + if (ret < 1) { + pr_err("pme scan test failed 0x%x\n", ret); + goto flow_ctx_finish; + } + wait_for_completion(&ctx_ctrl.cb_done); + pme_ctx_finish(&a_scan_ctx.base_ctx); + return 0; + /* error path */ +/* failure path */ +flow_ctx_disable: + ret = pme_ctx_disable(&a_scan_ctx.base_ctx, PME_CTX_OP_WAIT, NULL); +flow_ctx_finish: + pme_ctx_finish(&a_scan_ctx.base_ctx); + return (!ret) ? -EINVAL : ret; +} + +void pme2_test_scan(void) +{ + int ret; + + ret = scan_test_direct(0, 0); + if (ret) + goto done; + ret = scan_test_direct(1, 0); + if (ret) + goto done; +#ifdef CONFIG_FSL_PME2_TEST_SCAN_WITH_BPID + ret = scan_test_direct(0, 1); + if (ret) + goto done; +#endif + ret = scan_test_flow(); +done: + if (ret) + pr_info("pme scan test FAILED 0x%x\n", ret); + else + pr_info("pme Scan Test Passed\n"); +} + +static int setup_buffer_pool(void) +{ +#ifdef CONFIG_FSL_PME2_TEST_SCAN_WITH_BPID + u32 bpid_size = CONFIG_FSL_PME2_TEST_SCAN_WITH_BPID_SIZE; + struct bman_pool_params pparams = { + .flags = BMAN_POOL_FLAG_DYNAMIC_BPID, + .thresholds = { + 0, + 0, + 0, + 0 + } + }; + + if (!pme2_have_control()) { + pr_err("pme scan test: Not the ctrl-plane\n"); + return -EINVAL; + } + pool = bman_new_pool(&pparams); + if (!pool) { + pr_err("pme scan test: can't get buffer pool\n"); + return -EINVAL; + } + pme_bpid = bman_get_params(pool)->bpid; + bman_buffers_virt_base = kmalloc(1<<(bpid_size+5), GFP_KERNEL); + bman_buffers_phys_base = pme_map(bman_buffers_virt_base); + if (pme_map_error(bman_buffers_phys_base)) { + pr_info("pme scan test: pme_map_error\n"); + bman_free_pool(pool); + kfree(bman_buffers_virt_base); + return -ENODEV; + } + release_buffer(bman_buffers_phys_base); + /* Configure the buffer pool */ + pme_attr_set(pme_attr_bsc(pme_bpid), bpid_size); + /* realease to the specified buffer pool */ + return 0; +#endif + return 0; +} + +static int teardown_buffer_pool(void) +{ +#ifdef CONFIG_FSL_PME2_TEST_SCAN_WITH_BPID + pme_attr_set(pme_attr_bsc(pme_bpid), 0); + empty_buffer(); + bman_free_pool(pool); + kfree(bman_buffers_virt_base); +#endif + return 0; +} + +static int pme2_test_scan_init(void) +{ + int big_loop = 2; + int ret = 0; + struct cpumask backup_mask = current->cpus_allowed; + struct cpumask new_mask = *qman_affine_cpus(); + + cpumask_and(&new_mask, &new_mask, bman_affine_cpus()); + ret = set_cpus_allowed_ptr(current, &new_mask); + if (ret) { + pr_info("pme scan test: can't set cpumask\n"); + goto done_all; + } + + ret = setup_buffer_pool(); + if (ret) + goto done_cpu_mask; + + /* create sample database */ + if (db_ctrl == create_destroy || db_ctrl == create) { + if (!pme2_have_control()) { + pr_err("pme scan test: Not the ctrl-plane\n"); + ret = -EINVAL; + goto done_scan; + } + if (pme2_sample_db()) { + pr_err("pme scan test: error creating db\n"); + goto done_scan; + } + } + + if (scan_ctrl == do_scan) { + while (big_loop--) + pme2_test_scan(); + } + + if (db_ctrl == create_destroy || db_ctrl == destroy) { + /* Clear database */ + if (pme2_clear_sample_db()) + pr_err("pme scan test: error clearing db\n"); + } + +done_scan: + teardown_buffer_pool(); +done_cpu_mask: + ret = set_cpus_allowed_ptr(current, &backup_mask); + if (ret) + pr_err("PME2 test high: can't restore cpumask"); +done_all: + return ret; +} + +static void pme2_test_scan_exit(void) +{ +} + +module_init(pme2_test_scan_init); +module_exit(pme2_test_scan_exit); --- linux-3.13.0.orig/drivers/staging/fsl_qbman/Kconfig +++ linux-3.13.0/drivers/staging/fsl_qbman/Kconfig @@ -0,0 +1,278 @@ +config FSL_DPA + bool "Freescale Datapath Queue and Buffer management" + depends on HAS_FSL_QBMAN + default y + select FSL_QMAN_FQ_LOOKUP if PPC64 + +menu "Freescale Datapath QMan/BMan options" + depends on FSL_DPA + +config FSL_DPA_CHECKING + bool "additional driver checking" + default n + ---help--- + Compiles in additional checks to sanity-check the drivers and any + use of it by other code. Not recommended for performance. + +config FSL_DPA_HAVE_IRQ + bool + default y + +config FSL_DPA_CAN_WAIT + bool + default y + +config FSL_DPA_CAN_WAIT_SYNC + bool + default y + +config FSL_DPA_PIRQ_FAST + bool "fast-path processing via IRQ" + depends on FSL_DPA_HAVE_IRQ + default y + ---help--- + By default, configure fast-path handling to be triggered by IRQ. + Drivers can modify this at run-time, but for linux it makes sense + for all handling to be triggered by IRQ, unless a special + run-to-completion application is being built. + +config FSL_DPA_PIRQ_SLOW + bool "slow-path processing via IRQ" + depends on FSL_DPA_HAVE_IRQ + default y + ---help--- + By default, configure slow-path handling to be triggered by IRQ. + Drivers can modify this at run-time, but for linux it makes sense + for all handling to be triggered by IRQ, unless a special + run-to-completion application is being built. + +config FSL_DPA_PORTAL_SHARE + bool "allow portals to be affine to multiple CPUs" + default y + ---help--- + If the kernel, via its device-tree, will be required to use a + single Qman or Bman portal for multiple CPUs, then select this + option. Note however that compiling with this option will result + in a very slight (but non-zero) overhead even when the feature + is not being used. + +config FSL_DPA_UIO + tristate "Export USDPAA portals via UIO" + depends on UIO + default y + ---help--- + Portals are exported as UIO devices for use by USDPAA (User + Space DataPath Acceleration Architecture) applications. + +config FSL_BMAN + bool "Freescale Buffer Manager support" + default y + +if FSL_BMAN + +config FSL_BMAN_PORTAL + bool "Bman portal support" + default y + ---help--- + Compiles support to detect and support Bman software corenet portals + (as provided by the device-tree). + +config FSL_BMAN_CONFIG + bool "Bman device management" + default y + ---help--- + If this linux image is running natively, you need this option. If this + linux image is running as a guest OS under the hypervisor, only one + guest OS ("the control plane") needs this option. + +config FSL_BMAN_TEST + tristate "Bman self-tests" + depends on FSL_BMAN_PORTAL + default n + ---help--- + This option compiles self-test code for Bman. + +config FSL_BMAN_TEST_HIGH + bool "Bman high-level self-test" + depends on FSL_BMAN_TEST + default y + ---help--- + This requires the presence of cpu-affine portals, and performs + high-level API testing with them (whichever portal(s) are affine to + the cpu(s) the test executes on). + +config FSL_BMAN_TEST_THRESH + bool "Bman threshold test" + depends on FSL_BMAN_TEST + default y + ---help--- + Multi-threaded (SMP) test of Bman pool depletion. A pool is seeded + before multiple threads (one per cpu) create pool objects to track + depletion state changes. The pool is then drained to empty by a + "drainer" thread, and the other threads that they observe exactly + the depletion state changes that are expected. + +config FSL_BMAN_DEBUGFS + tristate "Bman debugfs interface" + depends on FSL_BMAN_PORTAL && DEBUG_FS + default y + ---help--- + This option compiles bman debugfs code for Bman. + +endif # FSL_BMAN + +config FSL_QMAN + bool "Freescale Queue Manager support" + default y + +if FSL_QMAN + +config FSL_QMAN_PORTAL + bool "Qman portal support" + default y + ---help--- + Compiles support to detect and support Qman software corenet portals + (as provided by the device-tree). + +config FSL_QMAN_BUG_AND_FEATURE_REV1 + bool "workarounds for errata and missing features in p4080 rev1" + depends on FSL_QMAN_PORTAL + default y + ---help--- + If this option is selected, the driver will be compiled with + workarounds for errata as well as feature limitations (relative to + more recent parts) of p4080 rev1. On unaffected revisions, this + support incurs only a negligable overhead, typically only a couple of + instructions per non-fast-path operation (the fast-path operations are + unaffected). + + If in doubt, say Y. + +config FSL_QMAN_POLL_LIMIT + int + default 32 + +config FSL_QMAN_PORTAL_DISABLEAUTO_DCA + bool "disable discrete-consumption support on cpu-affine portals" + default n + ---help--- + By default, auto-initialised cpu-affine portals support + discrete-consumption acknowledgements, but this may be unimplemented + in the simulation model. + +config FSL_QMAN_NULL_FQ_DEMUX + bool "support NULL demux handlers" + default y + ---help--- + Normally, incoming frame dequeues and messages from Qman to a software + portal provide a direct demux to the owner of the corresponding FQ. + However, exotic "zero-conf" possibilities can be supported if other + cpus (or operating systems) can schedule "NULL" FQs to a receiver's + portal. If this option is selected, the driver will support this + feature, but it adds a small overhead to the hottest-path in the + driver, so it should be disabled unless needed. + +config FSL_QMAN_DQRR_PREFETCHING + bool "support prefetching or DQRR (if stashing disabled)" + default y + ---help--- + Normally, portals are configured to stash DQRR entries, but if this is + not the case, then s/w needs to invalidate and prefetch ring entries. + Selecting this option supports both cases and chooses the best one at + run-time, but introduces a small overhead in some hot paths of the + driver, so disable it if you know stashing will be configured. + +config FSL_QMAN_CONFIG + bool "Qman device management" + default y + ---help--- + If this linux image is running natively, you need this option. If this + linux image is running as a guest OS under the hypervisor, only one + guest OS ("the control plane") needs this option. + +config FSL_QMAN_TEST + tristate "Qman self-tests" + depends on FSL_QMAN_PORTAL + default n + ---help--- + This option compiles self-test code for Qman. + +config FSL_QMAN_TEST_STASH_POTATO + bool "Qman 'hot potato' data-stashing self-test" + depends on FSL_QMAN_TEST + default y + ---help--- + This performs a "hot potato" style test enqueuing/dequeuing a frame + across a series of FQs scheduled to different portals (and cpus), with + DQRR, data and context stashing always on. + +config FSL_QMAN_TEST_HIGH + bool "Qman high-level self-test" + depends on FSL_QMAN_TEST + default y + ---help--- + This requires the presence of cpu-affine portals, and performs + high-level API testing with them (whichever portal(s) are affine to + the cpu(s) the test executes on). + +config FSL_QMAN_TEST_ERRATA + bool "Qman errata-handling self-test" + depends on FSL_QMAN_TEST + default y + ---help--- + This requires the presence of cpu-affine portals, and performs + testing that handling for known hardware-errata is correct. + +config FSL_QMAN_DEBUGFS + tristate "Qman debugfs interface" + depends on FSL_QMAN_PORTAL + default y + ---help--- + This option compiles qman debugfs code for Qman. + +# H/w settings that can be hard-coded for now. +config FSL_QMAN_FQD_SZ + int "Size of Frame Queue Descriptor region" + default 9 + ---help--- + This is the size of the FQD region defined as: PAGE_SIZE * (2^value) + ex: 9 => PAGE_SIZE * (2^9) + +# Corenet initiator settings. Stash request queues are 4-deep to match cores' +# ability to snart. Stash priority is 3, other priorities are 2. +config FSL_QMAN_CI_SCHED_CFG_SRCCIV + int + depends on FSL_QMAN_CONFIG + default 4 +config FSL_QMAN_CI_SCHED_CFG_SRQ_W + int + depends on FSL_QMAN_CONFIG + default 3 +config FSL_QMAN_CI_SCHED_CFG_RW_W + int + depends on FSL_QMAN_CONFIG + default 2 +config FSL_QMAN_CI_SCHED_CFG_BMAN_W + int + depends on FSL_QMAN_CONFIG + default 2 + +# portal interrupt settings +config FSL_QMAN_PIRQ_DQRR_ITHRESH + int + default 12 +config FSL_QMAN_PIRQ_MR_ITHRESH + int + default 4 +config FSL_QMAN_PIRQ_IPERIOD + int + default 100 + +# 64 bit kernel support +config FSL_QMAN_FQ_LOOKUP + bool + default n + +endif # FSL_QMAN + +endmenu --- linux-3.13.0.orig/drivers/staging/fsl_qbman/Makefile +++ linux-3.13.0/drivers/staging/fsl_qbman/Makefile @@ -0,0 +1,23 @@ +# Bman +obj-$(CONFIG_FSL_BMAN_CONFIG) += bman_config.o bman_driver.o +obj-$(CONFIG_FSL_BMAN_PORTAL) += bman_high.o +obj-$(CONFIG_FSL_BMAN_TEST) += bman_tester.o +obj-$(CONFIG_FSL_BMAN_DEBUGFS) += bman_debugfs_interface.o +bman_tester-y = bman_test.o +bman_tester-$(CONFIG_FSL_BMAN_TEST_HIGH) += bman_test_high.o +bman_tester-$(CONFIG_FSL_BMAN_TEST_THRESH) += bman_test_thresh.o +bman_debugfs_interface-y = bman_debugfs.o + +# Qman +obj-$(CONFIG_FSL_QMAN) += qman_utility.o qman_fqalloc.o +obj-$(CONFIG_FSL_QMAN_CONFIG) += qman_config.o qman_driver.o +obj-$(CONFIG_FSL_QMAN_PORTAL) += qman_high.o +obj-$(CONFIG_FSL_QMAN_TEST) += qman_tester.o +qman_tester-y = qman_test.o qman_test_hotpotato.o \ + qman_test_high.o +qman_tester-$(CONFIG_FSL_QMAN_TEST_ERRATA) += qman_test_errata.o +obj-$(CONFIG_FSL_QMAN_DEBUGFS) += qman_debugfs_interface.o +qman_debugfs_interface-y = qman_debugfs.o + +# USDPAA +obj-$(CONFIG_FSL_DPA_UIO) += dpa_uio.o --- linux-3.13.0.orig/drivers/staging/fsl_qbman/bman_config.c +++ linux-3.13.0/drivers/staging/fsl_qbman/bman_config.c @@ -0,0 +1,690 @@ +/* Copyright (c) 2009-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef CONFIG_SMP +#include /* get_hard_smp_processor_id() */ +#endif +#include +#include + +#include "bman_private.h" + +/* Last updated for v00.79 of the BG */ + +struct bman; + +/* Register offsets */ +#define REG_POOL_SWDET(n) (0x0000 + ((n) * 0x04)) +#define REG_POOL_HWDET(n) (0x0100 + ((n) * 0x04)) +#define REG_POOL_SWDXT(n) (0x0200 + ((n) * 0x04)) +#define REG_POOL_HWDXT(n) (0x0300 + ((n) * 0x04)) +#define REG_POOL_CONTENT(n) (0x0600 + ((n) * 0x04)) +#define REG_FBPR_FPC 0x0800 +#define REG_ECSR 0x0a00 +#define REG_ECIR 0x0a04 +#define REG_EADR 0x0a08 +#define REG_EDATA(n) (0x0a10 + ((n) * 0x04)) +#define REG_SBEC(n) (0x0a80 + ((n) * 0x04)) +#define REG_IP_REV_1 0x0bf8 +#define REG_IP_REV_2 0x0bfc +#define REG_FBPR_BARE 0x0c00 +#define REG_FBPR_BAR 0x0c04 +#define REG_FBPR_AR 0x0c10 +#define REG_SRCIDR 0x0d04 +#define REG_LIODNR 0x0d08 +#define REG_ERR_ISR 0x0e00 /* + "enum bm_isr_reg" */ + +/* Used by all error interrupt registers except 'inhibit' */ +#define BM_EIRQ_IVCI 0x00000010 /* Invalid Command Verb */ +#define BM_EIRQ_FLWI 0x00000008 /* FBPR Low Watermark */ +#define BM_EIRQ_MBEI 0x00000004 /* Multi-bit ECC Error */ +#define BM_EIRQ_SBEI 0x00000002 /* Single-bit ECC Error */ +#define BM_EIRQ_BSCN 0x00000001 /* pool State Change Notification */ + +/* BMAN_ECIR valid error bit */ +#define PORTAL_ECSR_ERR (BM_EIRQ_IVCI) + +union bman_ecir { + u32 ecir_raw; + struct { + u32 __reserved1:4; + u32 portal_num:4; + u32 __reserved2:12; + u32 numb:4; + u32 __reserved3:2; + u32 pid:6; + } __packed info; +}; + +union bman_eadr { + u32 eadr_raw; + struct { + u32 __reserved1:5; + u32 memid:3; + u32 __reserved2:14; + u32 eadr:10; + } __packed info; +}; + +struct bman_hwerr_txt { + u32 mask; + const char *txt; +}; + +#define BMAN_HWE_TXT(a, b) { .mask = BM_EIRQ_##a, .txt = b } + +static const struct bman_hwerr_txt bman_hwerr_txts[] = { + BMAN_HWE_TXT(IVCI, "Invalid Command Verb"), + BMAN_HWE_TXT(FLWI, "FBPR Low Watermark"), + BMAN_HWE_TXT(MBEI, "Multi-bit ECC Error"), + BMAN_HWE_TXT(SBEI, "Single-bit ECC Error"), + BMAN_HWE_TXT(BSCN, "Pool State Change Notification"), +}; +#define BMAN_HWE_COUNT (sizeof(bman_hwerr_txts)/sizeof(struct bman_hwerr_txt)) + +struct bman_error_info_mdata { + u16 addr_mask; + u16 bits; + const char *txt; +}; + +#define BMAN_ERR_MDATA(a, b, c) { .addr_mask = a, .bits = b, .txt = c} +static const struct bman_error_info_mdata error_mdata[] = { + BMAN_ERR_MDATA(0x03FF, 192, "Stockpile memory"), + BMAN_ERR_MDATA(0x00FF, 256, "SW portal ring memory port 1"), + BMAN_ERR_MDATA(0x00FF, 256, "SW portal ring memory port 2"), +}; +#define BMAN_ERR_MDATA_COUNT \ + (sizeof(error_mdata)/sizeof(struct bman_error_info_mdata)) + +/* Add this in Kconfig */ +#define BMAN_ERRS_TO_UNENABLE (BM_EIRQ_FLWI) + +/** + * bm_err_isr__ - Manipulate global interrupt registers + * @v: for accessors that write values, this is the 32-bit value + * + * Manipulates BMAN_ERR_ISR, BMAN_ERR_IER, BMAN_ERR_ISDR, BMAN_ERR_IIR. All + * manipulations except bm_err_isr_[un]inhibit() use 32-bit masks composed of + * the BM_EIRQ_*** definitions. Note that "bm_err_isr_enable_write" means + * "write the enable register" rather than "enable the write register"! + */ +#define bm_err_isr_status_read(bm) __bm_err_isr_read(bm, bm_isr_status) +#define bm_err_isr_status_clear(bm, m) __bm_err_isr_write(bm, bm_isr_status,m) +#define bm_err_isr_enable_read(bm) __bm_err_isr_read(bm, bm_isr_enable) +#define bm_err_isr_enable_write(bm, v) __bm_err_isr_write(bm, bm_isr_enable,v) +#define bm_err_isr_disable_read(bm) __bm_err_isr_read(bm, bm_isr_disable) +#define bm_err_isr_disable_write(bm, v) __bm_err_isr_write(bm, bm_isr_disable,v) +#define bm_err_isr_inhibit(bm) __bm_err_isr_write(bm, bm_isr_inhibit,1) +#define bm_err_isr_uninhibit(bm) __bm_err_isr_write(bm, bm_isr_inhibit,0) + +/* + * TODO: unimplemented registers + * + * BMAN_POOLk_SDCNT, BMAN_POOLk_HDCNT, BMAN_FULT, + * BMAN_VLDPL, BMAN_EECC, BMAN_SBET, BMAN_EINJ + */ + +/* Encapsulate "struct bman *" as a cast of the register space address. */ + +static struct bman *bm_create(void *regs) +{ + return (struct bman *)regs; +} + +static inline u32 __bm_in(struct bman *bm, u32 offset) +{ + return in_be32((void *)bm + offset); +} +static inline void __bm_out(struct bman *bm, u32 offset, u32 val) +{ + out_be32((void *)bm + offset, val); +} +#define bm_in(reg) __bm_in(bm, REG_##reg) +#define bm_out(reg, val) __bm_out(bm, REG_##reg, val) + +static u32 __bm_err_isr_read(struct bman *bm, enum bm_isr_reg n) +{ + return __bm_in(bm, REG_ERR_ISR + (n << 2)); +} + +static void __bm_err_isr_write(struct bman *bm, enum bm_isr_reg n, u32 val) +{ + __bm_out(bm, REG_ERR_ISR + (n << 2), val); +} + +#if 0 +static void bm_get_details(struct bman *bm, u8 *int_options, u8 *errata, + u8 *conf_options) +{ + u32 v = bm_in(IP_REV_1); + *int_options = (v >> 16) & 0xff; + *errata = (v >> 8) & 0xff; + *conf_options = v & 0xff; +} + +static u8 bm_get_corenet_sourceid(struct bman *bm) +{ + return bm_in(SRCIDR); +} + +static void bm_set_liodn(struct bman *bm, u16 liodn) +{ + bm_out(LIODNR, liodn & 0xfff); +} + +#endif + +static void bm_get_version(struct bman *bm, u16 *id, u8 *major, u8 *minor) +{ + u32 v = bm_in(IP_REV_1); + *id = (v >> 16); + *major = (v >> 8) & 0xff; + *minor = v & 0xff; +} + +static u32 __generate_thresh(u32 val, int roundup) +{ + u32 e = 0; /* co-efficient, exponent */ + int oddbit = 0; + while(val > 0xff) { + oddbit = val & 1; + val >>= 1; + e++; + if(roundup && oddbit) + val++; + } + DPA_ASSERT(e < 0x10); + return (val | (e << 8)); +} + +static void bm_set_pool(struct bman *bm, u8 pool, u32 swdet, u32 swdxt, + u32 hwdet, u32 hwdxt) +{ + DPA_ASSERT(pool < bman_pool_max); + bm_out(POOL_SWDET(pool), __generate_thresh(swdet, 0)); + bm_out(POOL_SWDXT(pool), __generate_thresh(swdxt, 1)); + bm_out(POOL_HWDET(pool), __generate_thresh(hwdet, 0)); + bm_out(POOL_HWDXT(pool), __generate_thresh(hwdxt, 1)); +} + +static void bm_set_memory(struct bman *bm, u64 ba, int prio, u32 size) +{ + u32 exp = ilog2(size); + /* choke if size isn't within range */ + DPA_ASSERT((size >= 4096) && (size <= 1073741824) && + is_power_of_2(size)); + /* choke if '[e]ba' has lower-alignment than 'size' */ + DPA_ASSERT(!(ba & (size - 1))); + bm_out(FBPR_BARE, upper_32_bits(ba)); + bm_out(FBPR_BAR, lower_32_bits(ba)); + bm_out(FBPR_AR, (prio ? 0x40000000 : 0) | (exp - 1)); +} + +/*****************/ +/* Config driver */ +/*****************/ + +/* We support only one of these. */ +static struct bman *bm; +static struct device_node *bm_node; + +/* TODO: Kconfig these? */ +#define DEFAULT_FBPR_SZ (PAGE_SIZE << 12) + +/* Parse the property to extract the memory location and size and + * memblock_reserve() it. If it isn't supplied, memblock_alloc() the default size. */ +static __init int parse_mem_property(struct device_node *node, const char *name, + dma_addr_t *addr, size_t *sz, int zero) +{ + const u32 *pint; + int ret; + + pint = of_get_property(node, name, &ret); + if (!pint || (ret != 16)) { + pr_info("No %s property '%s', using memblock_alloc(%016zx)\n", + node->full_name, name, *sz); + *addr = memblock_alloc(*sz, *sz); + if (zero) + memset(phys_to_virt(*addr), 0, *sz); + return 0; + } + pr_info("Using %s property '%s'\n", node->full_name, name); + /* If using a "zero-pma", don't try to zero it, even if you asked */ + if (zero && of_find_property(node, "zero-pma", &ret)) { + pr_info(" it's a 'zero-pma', not zeroing from s/w\n"); + zero = 0; + } + *addr = ((u64)pint[0] << 32) | (u64)pint[1]; + *sz = ((u64)pint[2] << 32) | (u64)pint[3]; + /* Keep things simple, it's either all in the DRAM range or it's all + * outside. */ + if (*addr < memblock_end_of_DRAM()) { + BUG_ON((u64)*addr + (u64)*sz > memblock_end_of_DRAM()); + if (memblock_reserve(*addr, *sz) < 0) { + pr_err("Failed to reserve %s\n", name); + return -ENOMEM; + } + if (zero) + memset(phys_to_virt(*addr), 0, *sz); + } else if (zero) { + /* map as cacheable, non-guarded */ + void *tmpp = ioremap_prot(*addr, *sz, 0); + memset(tmpp, 0, *sz); + iounmap(tmpp); + } + return 0; +} + +static int __init fsl_bman_init(struct device_node *node) +{ + struct resource res; + u32 __iomem *regs; + const char *s; + dma_addr_t fbpr_a = 0; /* gcc doesn't know this is unnecessary */ + size_t fbpr_sz = DEFAULT_FBPR_SZ; + int ret, standby = 0; + u16 id; + u8 major, minor; + + ret = of_address_to_resource(node, 0, &res); + if (ret) { + pr_err("Can't get %s property 'reg'\n", + node->full_name); + return ret; + } + s = of_get_property(node, "fsl,hv-claimable", &ret); + if (s && !strcmp(s, "standby")) + standby = 1; + if (!standby) { + ret = parse_mem_property(node, "fsl,bman-fbpr", + &fbpr_a, &fbpr_sz, 0); + BUG_ON(ret); + } + /* Global configuration */ + regs = ioremap(res.start, res.end - res.start + 1); + bm = bm_create(regs); + BUG_ON(!bm); + bm_node = node; + bm_get_version(bm, &id, &major, &minor); + pr_info("Bman ver:%04x,%02x,%02x\n", id, major, minor); + if ((major == 1) && (minor == 0)) { + bman_ip_rev = BMAN_REV10; + bman_pool_max = 64; + } else if ((major == 2) && (minor == 0)) { + bman_ip_rev = BMAN_REV20; + bman_pool_max = 8; + } else { + pr_warning("unknown Bman version, default to rev1.0\n"); + } + + if (standby) { + pr_info(" -> in standby mode\n"); + return 0; + } + /* FBPR memory */ + bm_set_memory(bm, fbpr_a, 0, fbpr_sz); + return 0; +} + +int bman_have_ccsr(void) +{ + return (bm ? 1 : 0); +} + +int bm_pool_set(u32 bpid, const u32 *thresholds) +{ + if (!bm) + return -ENODEV; + bm_set_pool(bm, bpid, thresholds[0], thresholds[1], + thresholds[2], thresholds[3]); + return 0; +} +EXPORT_SYMBOL(bm_pool_set); + +__init void bman_init_early(void) +{ + struct device_node *dn; + for_each_compatible_node(dn, NULL, "fsl,bman") { + if (bm) + pr_err("%s: only one 'fsl,bman' allowed\n", + dn->full_name); + else { + int ret = fsl_bman_init(dn); + BUG_ON(ret); + } + } +} + +static void log_edata_bits(u32 bit_count) +{ + u32 i, j, mask = 0xffffffff; + + pr_warning("Bman ErrInt, EDATA:\n"); + i = bit_count/32; + if (bit_count%32) { + i++; + mask = ~(mask << bit_count%32); + } + j = 16-i; + pr_warning(" 0x%08x\n", bm_in(EDATA(j)) & mask); + j++; + for (; j < 16; j++) + pr_warning(" 0x%08x\n", bm_in(EDATA(j))); +} + +static void log_additional_error_info(u32 isr_val, u32 ecsr_val) +{ + union bman_ecir ecir_val; + union bman_eadr eadr_val; + + ecir_val.ecir_raw = bm_in(ECIR); + /* Is portal info valid */ + if (ecsr_val & PORTAL_ECSR_ERR) { + pr_warning("Bman ErrInt: SWP id %d, numb %d, pid %d\n", + ecir_val.info.portal_num, ecir_val.info.numb, + ecir_val.info.pid); + } + if (ecsr_val & (BM_EIRQ_SBEI|BM_EIRQ_MBEI)) { + eadr_val.eadr_raw = bm_in(EADR); + pr_warning("Bman ErrInt: EADR Memory: %s, 0x%x\n", + error_mdata[eadr_val.info.memid].txt, + error_mdata[eadr_val.info.memid].addr_mask + & eadr_val.info.eadr); + log_edata_bits(error_mdata[eadr_val.info.memid].bits); + } +} + +/* Bman interrupt handler */ +static irqreturn_t bman_isr(int irq, void *ptr) +{ + u32 isr_val, ier_val, ecsr_val, isr_mask, i; + + ier_val = bm_err_isr_enable_read(bm); + isr_val = bm_err_isr_status_read(bm); + ecsr_val = bm_in(ECSR); + isr_mask = isr_val & ier_val; + + if (!isr_mask) + return IRQ_NONE; + for (i = 0; i < BMAN_HWE_COUNT; i++) { + if (bman_hwerr_txts[i].mask & isr_mask) { + pr_warning("Bman ErrInt: %s\n", bman_hwerr_txts[i].txt); + if (bman_hwerr_txts[i].mask & ecsr_val) { + log_additional_error_info(isr_mask, ecsr_val); + /* Re-arm error capture registers */ + bm_out(ECSR, ecsr_val); + } + if (bman_hwerr_txts[i].mask & BMAN_ERRS_TO_UNENABLE) { + pr_devel("Bman un-enabling error 0x%x\n", + bman_hwerr_txts[i].mask); + ier_val &= ~bman_hwerr_txts[i].mask; + bm_err_isr_enable_write(bm, ier_val); + } + } + } + bm_err_isr_status_clear(bm, isr_val); + return IRQ_HANDLED; +} + +static int __bind_irq(void) +{ + int ret, err_irq; + + err_irq = of_irq_to_resource(bm_node, 0, NULL); + if (err_irq == NO_IRQ) { + pr_info("Can't get %s property '%s'\n", bm_node->full_name, + "interrupts"); + return -ENODEV; + } + ret = request_irq(err_irq, bman_isr, IRQF_SHARED, "bman-err", bm_node); + if (ret) { + pr_err("request_irq() failed %d for '%s'\n", ret, + bm_node->full_name); + return -ENODEV; + } + /* Disable Buffer Pool State Change */ + bm_err_isr_disable_write(bm, BM_EIRQ_BSCN); + /* Write-to-clear any stale bits, (eg. starvation being asserted prior + * to resource allocation during driver init). */ + bm_err_isr_status_clear(bm, 0xffffffff); + /* Enable Error Interrupts */ + bm_err_isr_enable_write(bm, 0xffffffff); + return 0; +} + +/* Initialise Error Interrupt Handler */ +int bman_init_error_int(struct device_node *node) +{ + if (!bman_have_ccsr()) + return 0; + if (node != bm_node) + return -EINVAL; + return __bind_irq(); +} + +#ifdef CONFIG_SYSFS + +#define DRV_NAME "fsl-bman" + +static ssize_t show_fbpr_fpc(struct device *dev, + struct device_attribute *dev_attr, char *buf) +{ + return snprintf(buf, PAGE_SIZE, "%u\n", bm_in(FBPR_FPC)); +}; + +static ssize_t show_pool_count(struct device *dev, + struct device_attribute *dev_attr, char *buf) +{ + u32 data; + int i; + + if (!sscanf(dev_attr->attr.name, "%d", &i)) + return -EINVAL; + data = bm_in(POOL_CONTENT(i)); + return snprintf(buf, PAGE_SIZE, "%d\n", data); +}; + +static ssize_t show_err_isr(struct device *dev, + struct device_attribute *dev_attr, char *buf) +{ + return snprintf(buf, PAGE_SIZE, "0x%08x\n", bm_in(ERR_ISR)); +}; + +static ssize_t show_sbec(struct device *dev, + struct device_attribute *dev_attr, char *buf) +{ + int i; + + if (!sscanf(dev_attr->attr.name, "sbec_%d", &i)) + return -EINVAL; + return snprintf(buf, PAGE_SIZE, "%u\n", bm_in(SBEC(i))); +}; + +static DEVICE_ATTR(err_isr, S_IRUSR, show_err_isr, NULL); +static DEVICE_ATTR(fbpr_fpc, S_IRUSR, show_fbpr_fpc, NULL); + +/* Didn't use DEVICE_ATTR as 64 of this would be required. + * Initialize them when needed. */ +static char *name_attrs_pool_count; /* "xx" + null-terminator */ +static struct device_attribute *dev_attr_buffer_pool_count; + +static DEVICE_ATTR(sbec_0, S_IRUSR, show_sbec, NULL); +static DEVICE_ATTR(sbec_1, S_IRUSR, show_sbec, NULL); + +static struct attribute *bman_dev_attributes[] = { + &dev_attr_fbpr_fpc.attr, + &dev_attr_err_isr.attr, + NULL +}; + +static struct attribute *bman_dev_ecr_attributes[] = { + &dev_attr_sbec_0.attr, + &dev_attr_sbec_1.attr, + NULL +}; + +static struct attribute **bman_dev_pool_count_attributes; + + +/* root level */ +static const struct attribute_group bman_dev_attr_grp = { + .name = NULL, + .attrs = bman_dev_attributes +}; +static const struct attribute_group bman_dev_ecr_grp = { + .name = "error_capture", + .attrs = bman_dev_ecr_attributes +}; +static struct attribute_group bman_dev_pool_countent_grp = { + .name = "pool_count", +}; + +static int of_fsl_bman_remove(struct platform_device *ofdev) +{ + sysfs_remove_group(&ofdev->dev.kobj, &bman_dev_attr_grp); + return 0; +}; + +static int of_fsl_bman_probe(struct platform_device *ofdev) +{ + int ret, i; + + ret = sysfs_create_group(&ofdev->dev.kobj, &bman_dev_attr_grp); + if (ret) + goto done; + ret = sysfs_create_group(&ofdev->dev.kobj, &bman_dev_ecr_grp); + if (ret) + goto del_group_0; + + name_attrs_pool_count = kmalloc(sizeof(char) * bman_pool_max * 3, + GFP_KERNEL); + if (!name_attrs_pool_count) { + pr_err("Can't alloc name_attrs_pool_count\n"); + goto del_group_1; + } + + dev_attr_buffer_pool_count = kmalloc(sizeof(struct device_attribute) * + bman_pool_max, GFP_KERNEL); + if (!dev_attr_buffer_pool_count) { + pr_err("Can't alloc dev_attr-buffer_pool_count\n"); + goto del_group_2; + } + + bman_dev_pool_count_attributes = kmalloc(sizeof(struct attribute *) * + (bman_pool_max + 1), GFP_KERNEL); + if (!bman_dev_pool_count_attributes) { + pr_err("can't alloc bman_dev_pool_count_attributes\n"); + goto del_group_3; + } + + for (i = 0; i < (bman_pool_max + 1); i++) { + bman_dev_pool_count_attributes[i] = + kmalloc(sizeof(struct attribute), GFP_KERNEL); + if (!bman_dev_pool_count_attributes[i]) { + pr_err("cannot alloc for each" + " bman_dev_pool_count_attributes\n"); + goto del_group_3; + } + } + + for (i = 0; i < bman_pool_max; i++) { + ret = scnprintf((name_attrs_pool_count + i * 3), 3, "%d", i); + if (!ret) + goto del_group_4; + dev_attr_buffer_pool_count[i].attr.name = + (name_attrs_pool_count + i * 3); + dev_attr_buffer_pool_count[i].attr.mode = S_IRUSR; + dev_attr_buffer_pool_count[i].show = show_pool_count; + bman_dev_pool_count_attributes[i] = + &dev_attr_buffer_pool_count[i].attr; + } + bman_dev_pool_count_attributes[bman_pool_max] = NULL; + + bman_dev_pool_countent_grp.attrs = bman_dev_pool_count_attributes; + + ret = sysfs_create_group(&ofdev->dev.kobj, &bman_dev_pool_countent_grp); + if (ret) + goto del_group_4; + + goto done; + +del_group_4: + for (i = 0; i < (bman_pool_max + 1); i++) + kfree(bman_dev_pool_count_attributes[i]); + kfree(bman_dev_pool_count_attributes); +del_group_3: + kfree(dev_attr_buffer_pool_count); +del_group_2: + kfree(name_attrs_pool_count); +del_group_1: + sysfs_remove_group(&ofdev->dev.kobj, &bman_dev_ecr_grp); +del_group_0: + sysfs_remove_group(&ofdev->dev.kobj, &bman_dev_attr_grp); +done: + if (ret) + dev_err(&ofdev->dev, + "Cannot create dev attributes ret=%d\n", ret); + return ret; +}; + +static struct of_device_id of_fsl_bman_ids[] = { + { + .compatible = "fsl,bman", + }, + {} +}; +MODULE_DEVICE_TABLE(of, of_fsl_bman_ids); + +static struct platform_driver of_fsl_bman_driver = { + .driver = { + .owner = THIS_MODULE, + .name = DRV_NAME, + .of_match_table = of_fsl_bman_ids, + }, + .probe = of_fsl_bman_probe, + .remove = of_fsl_bman_remove, +}; + +static int bman_ctrl_init(void) +{ + return platform_driver_register(&of_fsl_bman_driver); +} + +static void bman_ctrl_exit(void) +{ + platform_driver_unregister(&of_fsl_bman_driver); +} + +module_init(bman_ctrl_init); +module_exit(bman_ctrl_exit); + +#endif /* CONFIG_SYSFS */ --- linux-3.13.0.orig/drivers/staging/fsl_qbman/bman_debugfs.c +++ linux-3.13.0/drivers/staging/fsl_qbman/bman_debugfs.c @@ -0,0 +1,121 @@ +/* Copyright 2010-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include +#include +#include +#include +#include + +static struct dentry *dfs_root; /* debugfs root directory */ + +/******************************************************************************* + * Query Buffer Pool State + ******************************************************************************/ +static int query_bp_state_show(struct seq_file *file, void *offset) +{ + int ret; + struct bm_pool_state state; + int i, j; + u32 mask; + + memset(&state, 0, sizeof(struct bm_pool_state)); + ret = bman_query_pools(&state); + if (ret) { + seq_printf(file, "Error %d\n", ret); + return 0; + } + seq_printf(file, "bp_id free_buffers_avail bp_depleted\n"); + for (i = 0; i < 2; i++) { + mask = 0x80000000; + for (j = 0; j < 32; j++) { + seq_printf(file, + " %-2u %-3s %-3s\n", + (i*32)+j, + (state.as.state.__state[i] & mask) ? "no" : "yes", + (state.ds.state.__state[i] & mask) ? "yes" : "no"); + mask >>= 1; + } + } + return 0; +} + +static int query_bp_state_open(struct inode *inode, struct file *file) +{ + return single_open(file, query_bp_state_show, NULL); +} + +static const struct file_operations query_bp_state_fops = { + .owner = THIS_MODULE, + .open = query_bp_state_open, + .read = seq_read, + .release = single_release, +}; + +static int __init bman_debugfs_module_init(void) +{ + int ret = 0; + struct dentry *d; + + dfs_root = debugfs_create_dir("bman", NULL); + + if (dfs_root == NULL) { + ret = -ENOMEM; + pr_err("Cannot create bman debugfs dir\n"); + goto _return; + } + d = debugfs_create_file("query_bp_state", + S_IRUGO, + dfs_root, + NULL, + &query_bp_state_fops); + if (d == NULL) { + ret = -ENOMEM; + pr_err("Cannot create query_bp_state\n"); + goto _return; + } + return 0; + +_return: + if (dfs_root) + debugfs_remove_recursive(dfs_root); + return ret; +} + +static void __exit bman_debugfs_module_exit(void) +{ + debugfs_remove_recursive(dfs_root); +} + + +module_init(bman_debugfs_module_init); +module_exit(bman_debugfs_module_exit); +MODULE_LICENSE("Dual BSD/GPL"); + --- linux-3.13.0.orig/drivers/staging/fsl_qbman/bman_driver.c +++ linux-3.13.0/drivers/staging/fsl_qbman/bman_driver.c @@ -0,0 +1,588 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include "bman_private.h" + +/* + * Global variables of the max portal/pool number this bman version supported + */ +u16 bman_ip_rev; +EXPORT_SYMBOL(bman_ip_rev); +u16 bman_pool_max; +EXPORT_SYMBOL(bman_pool_max); + +/*****************/ +/* Portal driver */ +/*****************/ + +/* Compatibility behaviour (when no bpool-range is present) is that; + * (a) on a control plane, all pools that aren't explicitly mentioned in the dtb + * are available for allocation, + * (b) on a non-control plane, there is never any allocation possible at all. + * + * New behaviour is that if any "fsl,bpool-range" nodes are declared, they + * declare what is available for allocation, and this is independent of which + * pools are/aren't mentioned in the dtb. Eg. to stipulate that no allocation is + * possible, a fsl,bpool-range should be specified with zero items in it. + * + * This "pools" struct contains the allocator, and "explicit allocator" + * indicates whether the range is seeded explicitly (via at least one range) or + * implicitly (by being the set of pools that aren't declared). + */ +static struct bman_depletion pools; +static u8 num_pools; +static DEFINE_SPINLOCK(pools_lock); +static int explicit_allocator; + +static struct dpa_uio_class bman_uio = { + .list = LIST_HEAD_INIT(bman_uio.list), + .dev_prefix = "bman-uio-" +}; +const struct dpa_uio_class *dpa_uio_bman(void) +{ + return &bman_uio; +} +EXPORT_SYMBOL(dpa_uio_bman); + +static int __bm_pool_add(u32 bpid, u32 *cfg, int triplets) +{ + u64 total = 0; + BUG_ON(bpid >= bman_pool_max); +#ifdef CONFIG_FSL_BMAN_PORTAL + while (triplets--) { + struct bman_pool_params params = { + .bpid = bpid, + .flags = BMAN_POOL_FLAG_ONLY_RELEASE + }; + u64 c = ((u64)cfg[0] << 32) | cfg[1]; + u64 d = ((u64)cfg[2] << 32) | cfg[3]; + u64 b = ((u64)cfg[4] << 32) | cfg[5]; + struct bman_pool *pobj = bman_new_pool(¶ms); + if (!pobj) + return -ENOMEM; + while (c) { + struct bm_buffer bufs[8]; + int ret, num_bufs = 0; + do { + BUG_ON(b > 0xffffffffffffull); + bufs[num_bufs].bpid = bpid; + bm_buffer_set64(&bufs[num_bufs++], b); + b += d; + } while (--c && (num_bufs < 8)); + ret = bman_release(pobj, bufs, num_bufs, + BMAN_RELEASE_FLAG_WAIT); + if (ret) + panic("Seeding reserved buffer pool failed\n"); + total += num_bufs; + } + bman_free_pool(pobj); + cfg += 6; + } +#endif + /* Remove this pool from the allocator (by treating its declaration as + * an implicit "reservation") iff the allocator is *not* being set up + * explicitly defined via "bpool-range" nodes. */ + if (!explicit_allocator && !bman_depletion_get(&pools, bpid)) { + bman_depletion_set(&pools, bpid); + num_pools++; + } + if (total) + pr_info("Bman: reserved bpid %d, seeded %lld items\n", bpid, + total); + else + pr_info("Bman: reserved bpid %d\n", bpid); + return 0; +} + +int bm_pool_new(u32 *bpid) +{ + int ret = 0, b = bman_pool_max; + spin_lock(&pools_lock); + if (num_pools >= bman_pool_max) + ret = -ENOMEM; + else { + while (b-- && bman_depletion_get(&pools, b)) + ; + BUG_ON(b < 0); + bman_depletion_set(&pools, b); + *bpid = b; + num_pools++; + } + spin_unlock(&pools_lock); + return ret; +} +EXPORT_SYMBOL(bm_pool_new); + +void bm_pool_free(u32 bpid) +{ + spin_lock(&pools_lock); + BUG_ON(bpid >= bman_pool_max); + BUG_ON(!bman_depletion_get(&pools, bpid)); + bman_depletion_unset(&pools, bpid); + num_pools--; + spin_unlock(&pools_lock); +} +EXPORT_SYMBOL(bm_pool_free); + +#ifdef CONFIG_FSL_BMAN_PORTAL +/* To understand the use of this structure and the flow of operation for all + * this portal-setup code, please see qman_driver.c. The Bman case is much the + * same, but simpler (no Qman-specific fiddly bits). */ +struct affine_portal_data { + struct completion done; + const struct bm_portal_config *pconfig; + struct bman_portal *redirect; + int recovery_mode; + struct bman_portal *portal; +}; + +static __init int thread_init_affine_portal(void *__data) +{ + struct affine_portal_data *data = __data; + const struct bm_portal_config *pconfig = data->pconfig; + if (data->redirect) + data->portal = bman_create_affine_slave(data->redirect); + else { + data->portal = bman_create_affine_portal(pconfig, + data->recovery_mode); +#ifdef CONFIG_FSL_DPA_PIRQ_SLOW + if (data->portal) + bman_irqsource_add(BM_PIRQ_RCRI | BM_PIRQ_BSCN); +#endif + } + complete(&data->done); + return 0; +} + +static __init struct bman_portal *init_affine_portal( + struct bm_portal_config *pconfig, + int cpu, struct bman_portal *redirect, + int recovery_mode) +{ + struct affine_portal_data data = { + .done = COMPLETION_INITIALIZER_ONSTACK(data.done), + .pconfig = pconfig, + .redirect = redirect, + .recovery_mode = recovery_mode, + .portal = NULL + }; + struct task_struct *k = kthread_create(thread_init_affine_portal, &data, + "bman_affine%d", cpu); + int ret; + if (IS_ERR(k)) { + pr_err("Failed to init %sBman affine portal for cpu %d\n", + redirect ? "(slave) " : "", cpu); + return NULL; + } + kthread_bind(k, cpu); + wake_up_process(k); + wait_for_completion(&data.done); + ret = kthread_stop(k); + if (ret) { + pr_err("Bman portal initialisation failed, cpu %d, code %d\n", + cpu, ret); + return NULL; + } + if (data.portal) + pr_info("Bman portal %sinitialised, cpu %d\n", + redirect ? "(slave) " : + pconfig->public_cfg.is_shared ? "(shared) " : "", cpu); + return data.portal; +} +#endif + +static struct bm_portal_config * __init fsl_bman_portal_init( + struct device_node *node) +{ + struct bm_portal_config *pcfg; + const u32 *index; + const phandle *ph = NULL; + int irq, ret; + + pcfg = kmalloc(sizeof(*pcfg), GFP_KERNEL); + if (!pcfg) { + pr_err("can't allocate portal config"); + return NULL; + } + + if (of_device_is_compatible(node, "fsl,bman-portal-1.0")) { + bman_ip_rev = BMAN_REV10; + bman_pool_max = 64; + } else if (of_device_is_compatible(node, "fsl,bman-portal-2.0")) { + bman_ip_rev = BMAN_REV20; + bman_pool_max = 8; + } + + ret = of_address_to_resource(node, BM_ADDR_CE, + &pcfg->addr_phys[BM_ADDR_CE]); + if (ret) { + pr_err("Can't get %s property 'reg::CE'\n", node->full_name); + goto err; + } + ret = of_address_to_resource(node, BM_ADDR_CI, + &pcfg->addr_phys[BM_ADDR_CI]); + if (ret) { + pr_err("Can't get %s property 'reg::CI'\n", node->full_name); + goto err; + } + index = of_get_property(node, "cell-index", &ret); + if (!index || (ret != 4)) { + pr_err("Can't get %s property '%s'\n", node->full_name, + "cell-index"); + goto err; + } + ph = of_get_property(node, "cpu-handle", &ret); + if (ph) { + if (ret != sizeof(phandle)) { + pr_err("Malformed %s property '%s'\n", node->full_name, + "cpu-handle"); + goto err; + } + ret = check_cpu_phandle(*ph); + if (ret < 0) + goto err; + pcfg->public_cfg.cpu = ret; + } else + pcfg->public_cfg.cpu = -1; + + irq = irq_of_parse_and_map(node, 0); + if (irq == NO_IRQ) { + pr_err("Can't get %s property 'interrupts'\n", node->full_name); + goto err; + } + pcfg->public_cfg.irq = irq; + pcfg->public_cfg.index = *index; + bman_depletion_fill(&pcfg->public_cfg.mask); + + if (of_get_property(node, "fsl,usdpaa-portal", &ret)) { + struct dpa_uio_portal *u = kmalloc(sizeof(*u), GFP_KERNEL); + if (!u) + goto err; + u->type = dpa_uio_portal_bman; + u->bm_cfg = pcfg; + list_add_tail(&u->node, &bman_uio.list); + /* Return NULL, otherwise the kernel may share it on CPUs that + * don't have their own portals, which would be ... *bad*. */ + return NULL; + } + + /* Map the portals now we know they aren't for UIO (the UIO code doesn't + * need the CE mapping, and so will do its own CI-only mapping). */ + pcfg->addr_virt[BM_ADDR_CE] = ioremap_prot( + pcfg->addr_phys[BM_ADDR_CE].start, + resource_size(&pcfg->addr_phys[BM_ADDR_CE]), + 0); + pcfg->addr_virt[BM_ADDR_CI] = ioremap_prot( + pcfg->addr_phys[BM_ADDR_CI].start, + resource_size(&pcfg->addr_phys[BM_ADDR_CI]), + _PAGE_GUARDED | _PAGE_NO_CACHE); + return pcfg; +err: + kfree(pcfg); + return NULL; +} + +static void __init fsl_bman_portal_destroy(struct bm_portal_config *pcfg) +{ + iounmap(pcfg->addr_virt[BM_ADDR_CE]); + iounmap(pcfg->addr_virt[BM_ADDR_CI]); + kfree(pcfg); +} + +static int __init fsl_bpool_init(struct device_node *node) +{ + int ret; + u32 *cfg = NULL, *thresh; + struct device_node *tmp_node; + u32 *bpid = (u32 *)of_get_property(node, "fsl,bpid", &ret); + if (!bpid || (ret!= 4)) { + pr_err("Can't get %s property 'fsl,bpid'\n", node->full_name); + return -ENODEV; + } + thresh = (u32 *)of_get_property(node, "fsl,bpool-thresholds", &ret); + if (thresh) { + if (ret != 16) { + pr_err("Invalid %s property '%s'\n", + node->full_name, "fsl,bpool-thresholds"); + return -ENODEV; + } +#ifndef CONFIG_FSL_BMAN_CONFIG + pr_err("Ignoring %s property '%s', no CCSR support\n", + node->full_name, "fsl,bpool-thresholds"); +#endif + } + /* If rebooted, we should not re-seed any pools via bpool-cfg. */ + /* TODO: parsing hypervisor fields to determine qualitative things like + * "was I rebooted" should probably be wrapped in fsl_hypervisor.h. */ + tmp_node = of_find_node_by_name(NULL, "hypervisor"); + if (!tmp_node || !of_find_property(tmp_node, "fsl,hv-stopped-by", + &ret)) + cfg = (u32 *)of_get_property(node, "fsl,bpool-cfg", &ret); + if (cfg && (!ret || (ret % 24))) { + pr_err("Invalid %s property '%s'\n", node->full_name, + "fsl,bpool-cfg"); + return -ENODEV; + } + if (cfg) + ret = __bm_pool_add(*bpid, cfg, ret / 24); + else + ret = __bm_pool_add(*bpid, NULL, 0); + if (ret) { + pr_err("Can't reserve bpid %d from node %s\n", *bpid, + node->full_name); + return ret; + } +#ifdef CONFIG_FSL_BMAN_CONFIG + if (thresh) { + ret = bm_pool_set(*bpid, thresh); + if (ret) + pr_err("No CCSR node for %s property '%s'\n", + node->full_name, "fsl,bpool-thresholds"); + } +#endif + return ret; +} + +static int __init fsl_bpool_range_init(struct device_node *node, + int recovery_mode) +{ + int ret, warned = 0; + u32 bpid; + u32 *range = (u32 *)of_get_property(node, "fsl,bpool-range", &ret); + if (!range) { + pr_err("No 'fsl,bpool-range' property in node %s\n", + node->full_name); + return -EINVAL; + } + if (ret != 8) { + pr_err("'fsl,bpool-range' is not a 2-cell range in node %s\n", + node->full_name); + return -EINVAL; + } + for (bpid = range[0]; bpid < (range[0] + range[1]); bpid++) { + if (bpid >= bman_pool_max) { + pr_err("BPIDs out of range in node %s\n", + node->full_name); + return -EINVAL; + } + if (!bman_depletion_get(&pools, bpid)) { + if (!warned) { + warned = 1; + pr_err("BPID overlap in node %s, ignoring\n", + node->full_name); + } + } else { + bman_depletion_unset(&pools, bpid); + num_pools--; + } + } +#ifdef CONFIG_FSL_BMAN_PORTAL + /* If in recovery mode *and* we are using a private BPID allocation + * range, then automatically clean up all BPIDs in that range so we can + * automatically exit recovery mode too. */ + if (recovery_mode) { + for (bpid = range[0]; bpid < (range[0] + range[1]); bpid++) { + ret = bman_recovery_cleanup_bpid(bpid); + if (ret) { + pr_err("Failed to recovery BPID %d\n", bpid); + return ret; + } + } + } +#else + BUG_ON(recovery_mode); +#endif + pr_info("Bman: BPID allocator includes range %d:%d%s\n", + range[0], range[1], recovery_mode ? " (recovered)" : ""); + return 0; +} + +#ifdef CONFIG_FSL_BMAN_PORTAL +static __init int __leave_recovery(void *__data) +{ + struct completion *done = __data; + bman_recovery_exit_local(); + complete(done); + return 0; +} + +int bman_recovery_exit(void) +{ + struct completion done = COMPLETION_INITIALIZER_ONSTACK(done); + unsigned int cpu; + + for_each_cpu(cpu, bman_affine_cpus()) { + struct task_struct *k = kthread_create(__leave_recovery, &done, + "bman_recovery"); + int ret; + if (IS_ERR(k)) { + pr_err("Thread failure (recovery) on cpu %d\n", cpu); + return -ENOMEM; + } + kthread_bind(k, cpu); + wake_up_process(k); + wait_for_completion(&done); + ret = kthread_stop(k); + if (ret) { + pr_err("Failed to exit recovery on cpu %d\n", cpu); + return ret; + } + pr_info("Bman portal exited recovery, cpu %d\n", cpu); + } + return 0; +} +EXPORT_SYMBOL(bman_recovery_exit); +#endif + +static __init int bman_init(void) +{ +#ifdef CONFIG_FSL_BMAN_PORTAL + struct cpumask primary_cpus = *cpu_none_mask; + struct cpumask slave_cpus = *cpu_online_mask; + struct bman_portal *sharing_portal = NULL; + int sharing_cpu = -1; +#endif + struct device_node *dn; + struct bm_portal_config *pcfg; + int ret, recovery_mode = 0; + LIST_HEAD(cfg_list); + + for_each_compatible_node(dn, NULL, "fsl,bman") { + if (!bman_init_error_int(dn)) + pr_info("Bman err interrupt handler present\n"); + else + pr_err("Bman err interrupt handler missing\n"); + } + if (!bman_have_ccsr()) { + /* If there's no CCSR, our bpid allocator is empty unless + * fsl,bpool-range nodes are used. */ + bman_depletion_fill(&pools); + num_pools = bman_pool_max; + } +#ifdef CONFIG_FSL_BMAN_PORTAL + if (fsl_dpa_should_recover()) + recovery_mode = 1; + for_each_compatible_node(dn, NULL, "fsl,bman-portal") { + pcfg = fsl_bman_portal_init(dn); + if (pcfg) { + if (pcfg->public_cfg.cpu >= 0) { + cpumask_set_cpu(pcfg->public_cfg.cpu, + &primary_cpus); + list_add(&pcfg->list, &cfg_list); + } else + fsl_bman_portal_destroy(pcfg); + } + } + /* only consider "online" CPUs */ + cpumask_and(&primary_cpus, &primary_cpus, cpu_online_mask); + if (cpumask_empty(&primary_cpus)) + /* No portals, we're done */ + return 0; + if (!cpumask_subset(cpu_online_mask, &primary_cpus)) { + /* Need to do some sharing. In lieu of anything more scientific + * (or configurable), we pick the last-most CPU that has a + * portal and share that one. */ + int next = cpumask_first(&primary_cpus); + while (next < nr_cpu_ids) { + sharing_cpu = next; + next = cpumask_next(next, &primary_cpus); + } + } + /* Parsing is done and sharing decisions are made, now initialise the + * portals and determine which "slave" CPUs are left over. */ + list_for_each_entry(pcfg, &cfg_list, list) { + struct bman_portal *p; + int is_shared = (!sharing_portal && (sharing_cpu >= 0) && + (pcfg->public_cfg.cpu == sharing_cpu)); + pcfg->public_cfg.is_shared = is_shared; + /* If it's not mapped to a CPU, or another portal is already + * initialised to the same CPU, skip this portal. */ + if (pcfg->public_cfg.cpu < 0 || !cpumask_test_cpu( + pcfg->public_cfg.cpu, &slave_cpus)) + continue; + p = init_affine_portal(pcfg, pcfg->public_cfg.cpu, NULL, + recovery_mode); + if (p) { + if (is_shared) + sharing_portal = p; + cpumask_clear_cpu(pcfg->public_cfg.cpu, &slave_cpus); + } + } + + if (sharing_portal) { + int loop; + for_each_cpu(loop, &slave_cpus) { + struct bman_portal *p = init_affine_portal(NULL, loop, + sharing_portal, recovery_mode); + if (!p) + pr_err("Failed slave Bman portal for cpu %d\n", + loop); + } + } +#else + for_each_compatible_node(dn, NULL, "fsl,bman-portal") { + pcfg = fsl_bman_portal_init(dn); + if (pcfg) + /* No kernel portal support, so if USDPAA didn't consume + * the portal, we've no other use for it. */ + fsl_bman_portal_destroy(pcfg); + } +#endif + for_each_compatible_node(dn, NULL, "fsl,bpool-range") { + if (!explicit_allocator) { + explicit_allocator = 1; + bman_depletion_fill(&pools); + num_pools = 64; + } + ret = fsl_bpool_range_init(dn, recovery_mode); + if (ret) + return ret; + } +#ifdef CONFIG_FSL_BMAN_PORTAL + /* If using private BPID allocation, exit recovery mode automatically + * (ie. after automatic recovery) */ + if (recovery_mode && explicit_allocator) { + ret = bman_recovery_exit(); + if (ret) + return ret; + } +#endif + for_each_compatible_node(dn, NULL, "fsl,bpool") { + ret = fsl_bpool_init(dn); + if (ret) + return ret; + } + pr_info("Bman portals initialised\n"); + return 0; +} +subsys_initcall(bman_init); --- linux-3.13.0.orig/drivers/staging/fsl_qbman/bman_high.c +++ linux-3.13.0/drivers/staging/fsl_qbman/bman_high.c @@ -0,0 +1,1043 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "bman_low.h" + +/* Compilation constants */ +#define RCR_THRESH 2 /* reread h/w CI when running out of space */ +#define IRQNAME "BMan portal %d" +#define MAX_IRQNAME 16 /* big enough for "BMan portal %d" */ + +struct bman_portal { + struct bm_portal p; + /* 2-element array. pools[0] is mask, pools[1] is snapshot. */ + struct bman_depletion *pools; + int thresh_set; + unsigned long irq_sources; + u32 slowpoll; /* only used when interrupts are off */ +#ifdef CONFIG_FSL_DPA_CAN_WAIT_SYNC + struct bman_pool *rcri_owned; /* only 1 release WAIT_SYNC at a time */ +#endif +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE + spinlock_t sharing_lock; /* only used if is_shared */ + int is_shared; + struct bman_portal *sharing_redirect; +#endif + /* When the cpu-affine portal is activated, this is non-NULL */ + const struct bm_portal_config *config; + /* 64-entry hash-table of pool objects that are tracking depletion + * entry/exit (ie. BMAN_POOL_FLAG_DEPLETION). This isn't fast-path, so + * we're not fussy about cache-misses and so forth - whereas the above + * members should all fit in one cacheline. + * BTW, with 64 entries in the hash table and 64 buffer pools to track, + * you'll never guess the hash-function ... */ + struct bman_pool *cb[64]; + char irqname[MAX_IRQNAME]; +}; + +/* For an explanation of the locking, redirection, or affine-portal logic, + * please consult the Qman driver for details. This is the same, only simpler + * (no fiddly Qman-specific bits.) */ +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE +#define PORTAL_IRQ_LOCK(p, irqflags) \ + do { \ + if ((p)->is_shared) \ + spin_lock_irqsave(&(p)->sharing_lock, irqflags); \ + else \ + local_irq_save(irqflags); \ + } while (0) +#define PORTAL_IRQ_UNLOCK(p, irqflags) \ + do { \ + if ((p)->is_shared) \ + spin_unlock_irqrestore(&(p)->sharing_lock, irqflags); \ + else \ + local_irq_restore(irqflags); \ + } while (0) +#else +#define PORTAL_IRQ_LOCK(p, irqflags) local_irq_save(irqflags) +#define PORTAL_IRQ_UNLOCK(p, irqflags) local_irq_restore(irqflags) +#endif + +static cpumask_t affine_mask; +static DEFINE_SPINLOCK(affine_mask_lock); +static DEFINE_PER_CPU(struct bman_portal, bman_affine_portal); +static inline struct bman_portal *get_raw_affine_portal(void) +{ + return &get_cpu_var(bman_affine_portal); +} +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE +static inline struct bman_portal *get_affine_portal(void) +{ + struct bman_portal *p = get_raw_affine_portal(); + if (p->sharing_redirect) + return p->sharing_redirect; + return p; +} +#else +#define get_affine_portal() get_raw_affine_portal() +#endif +static inline void put_affine_portal(void) +{ + put_cpu_var(bman_affine_portal); +} + +/* GOTCHA: this object type refers to a pool, it isn't *the* pool. There may be + * more than one such object per Bman buffer pool, eg. if different users of the + * pool are operating via different portals. */ +struct bman_pool { + struct bman_pool_params params; + /* Used for hash-table admin when using depletion notifications. */ + struct bman_portal *portal; + struct bman_pool *next; + /* stockpile state - NULL unless BMAN_POOL_FLAG_STOCKPILE is set */ + struct bm_buffer *sp; + unsigned int sp_fill; +#ifdef CONFIG_FSL_DPA_CHECKING + atomic_t in_use; +#endif +}; + +/* (De)Registration of depletion notification callbacks */ +static void depletion_link(struct bman_portal *portal, struct bman_pool *pool) +{ + __maybe_unused unsigned long irqflags; + pool->portal = portal; + PORTAL_IRQ_LOCK(portal, irqflags); + pool->next = portal->cb[pool->params.bpid]; + portal->cb[pool->params.bpid] = pool; + if (!pool->next) + /* First object for that bpid on this portal, enable the BSCN + * mask bit. */ + bm_isr_bscn_mask(&portal->p, pool->params.bpid, 1); + PORTAL_IRQ_UNLOCK(portal, irqflags); +} +static void depletion_unlink(struct bman_pool *pool) +{ + struct bman_pool *it, *last = NULL; + struct bman_pool **base = &pool->portal->cb[pool->params.bpid]; + __maybe_unused unsigned long irqflags; + PORTAL_IRQ_LOCK(pool->portal, irqflags); + it = *base; /* <-- gotcha, don't do this prior to the irq_save */ + while (it != pool) { + last = it; + it = it->next; + } + if (!last) + *base = pool->next; + else + last->next = pool->next; + if (!last && !pool->next) { + /* Last object for that bpid on this portal, disable the BSCN + * mask bit. */ + bm_isr_bscn_mask(&pool->portal->p, pool->params.bpid, 0); + /* And "forget" that we last saw this pool as depleted */ + bman_depletion_unset(&pool->portal->pools[1], + pool->params.bpid); + } + PORTAL_IRQ_UNLOCK(pool->portal, irqflags); +} + +/* In the case that the application's core loop calls qman_poll() and + * bman_poll(), we ought to balance how often we incur the overheads of the + * slow-path poll. We'll use two decrementer sources. The idle decrementer + * constant is used when the last slow-poll detected no work to do, and the busy + * decrementer constant when the last slow-poll had work to do. */ +#define SLOW_POLL_IDLE 1000 +#define SLOW_POLL_BUSY 10 +static u32 __poll_portal_slow(struct bman_portal *p, u32 is); + +#ifdef CONFIG_FSL_DPA_HAVE_IRQ +/* Portal interrupt handler */ +static irqreturn_t portal_isr(__always_unused int irq, void *ptr) +{ + struct bman_portal *p = ptr; + u32 clear = p->irq_sources; + u32 is = bm_isr_status_read(&p->p) & p->irq_sources; + clear |= __poll_portal_slow(p, is); + bm_isr_status_clear(&p->p, clear); + return IRQ_HANDLED; +} +#endif + +struct bman_portal *bman_create_affine_portal( + const struct bm_portal_config *config, + int recovery_mode __maybe_unused) +{ + struct bman_portal *portal = get_raw_affine_portal(); + struct bm_portal *__p = &portal->p; + const struct bman_depletion *pools = &config->public_cfg.mask; + int ret; + + /* prep the low-level portal struct with the mapped addresses from the + * config, everything that follows depends on it and "config" is more + * for (de)reference... */ + __p->addr.addr_ce = config->addr_virt[BM_ADDR_CE]; + __p->addr.addr_ci = config->addr_virt[BM_ADDR_CI]; + if (bm_rcr_init(__p, bm_rcr_pvb, bm_rcr_cce)) { + pr_err("Bman RCR initialisation failed\n"); + goto fail_rcr; + } + if (bm_mc_init(__p)) { + pr_err("Bman MC initialisation failed\n"); + goto fail_mc; + } + if (bm_isr_init(__p)) { + pr_err("Bman ISR initialisation failed\n"); + goto fail_isr; + } + if (!pools) + portal->pools = NULL; + else { + u8 bpid = 0; + portal->pools = kmalloc(2 * sizeof(*pools), GFP_KERNEL); + if (!portal->pools) + goto fail_pools; + portal->pools[0] = *pools; + bman_depletion_init(portal->pools + 1); + while (bpid < bman_pool_max) { + /* Default to all BPIDs disabled, we enable as required + * at run-time. */ + bm_isr_bscn_mask(__p, bpid, 0); + bpid++; + } + } + portal->slowpoll = 0; +#ifdef CONFIG_FSL_DPA_CAN_WAIT_SYNC + portal->rcri_owned = NULL; +#endif +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE + spin_lock_init(&portal->sharing_lock); + portal->is_shared = config->public_cfg.is_shared; + portal->sharing_redirect = NULL; +#endif + memset(&portal->cb, 0, sizeof(portal->cb)); + /* Write-to-clear any stale interrupt status bits */ + bm_isr_disable_write(__p, 0xffffffff); + portal->irq_sources = 0; + bm_isr_enable_write(__p, portal->irq_sources); + bm_isr_status_clear(__p, 0xffffffff); +#ifdef CONFIG_FSL_DPA_HAVE_IRQ + snprintf(portal->irqname, MAX_IRQNAME, IRQNAME, config->public_cfg.cpu); + if (request_irq(config->public_cfg.irq, portal_isr, + IRQF_NOBALANCING | IRQF_DISABLED, portal->irqname, + portal)) { + pr_err("request_irq() failed\n"); + goto fail_irq; + } + if (config->public_cfg.cpu != -1) { + disable_irq(config->public_cfg.irq); + irq_set_affinity(config->public_cfg.irq, + cpumask_of(config->public_cfg.cpu)); + } + enable_irq(config->public_cfg.irq); + /* Enable the bits that make sense */ + if (!recovery_mode) + bm_isr_uninhibit(__p); +#endif + /* Need RCR to be empty before continuing */ + bm_isr_disable_write(__p, ~BM_PIRQ_RCRI); + ret = bm_rcr_get_fill(__p); + if (ret) { + pr_err("Bman RCR unclean, need recovery\n"); + goto fail_rcr_empty; + } + /* Success */ + portal->config = config; + spin_lock(&affine_mask_lock); + cpumask_set_cpu(config->public_cfg.cpu, &affine_mask); + spin_unlock(&affine_mask_lock); + bm_isr_disable_write(__p, 0); + put_affine_portal(); + return portal; +fail_rcr_empty: +#ifdef CONFIG_FSL_DPA_HAVE_IRQ + free_irq(config->public_cfg.irq, portal); +fail_irq: +#endif + if (portal->pools) + kfree(portal->pools); +fail_pools: + bm_isr_finish(__p); +fail_isr: + bm_mc_finish(__p); +fail_mc: + bm_rcr_finish(__p); +fail_rcr: + put_affine_portal(); + return NULL; +} + +struct bman_portal *bman_create_affine_slave(struct bman_portal *redirect) +{ +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE + struct bman_portal *p = get_raw_affine_portal(); + BUG_ON(p->config); + BUG_ON(p->is_shared); + BUG_ON(!redirect->config->public_cfg.is_shared); + p->irq_sources = 0; + p->sharing_redirect = redirect; + put_affine_portal(); + return p; +#else + BUG(); + return NULL; +#endif +} + +const struct bm_portal_config *bman_destroy_affine_portal(void) +{ + struct bman_portal *bm = get_raw_affine_portal(); + const struct bm_portal_config *pcfg; +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE + if (bm->sharing_redirect) { + bm->sharing_redirect = NULL; + put_affine_portal(); + return NULL; + } + bm->is_shared = 0; +#endif + pcfg = bm->config; + bm_rcr_cce_update(&bm->p); + bm_rcr_cce_update(&bm->p); +#ifdef CONFIG_FSL_DPA_HAVE_IRQ + free_irq(pcfg->public_cfg.irq, bm); +#endif + kfree(bm->pools); + bm_isr_finish(&bm->p); + bm_mc_finish(&bm->p); + bm_rcr_finish(&bm->p); + bm->config = NULL; + spin_lock(&affine_mask_lock); + cpumask_clear_cpu(pcfg->public_cfg.cpu, &affine_mask); + spin_unlock(&affine_mask_lock); + put_affine_portal(); + return pcfg; +} + +/* When release logic waits on available RCR space, we need a global waitqueue + * in the case of "affine" use (as the waits wake on different cpus which means + * different portals - so we can't wait on any per-portal waitqueue). */ +static DECLARE_WAIT_QUEUE_HEAD(affine_queue); + +static u32 __poll_portal_slow(struct bman_portal *p, u32 is) +{ + struct bman_depletion tmp; + u32 ret = is; + + /* There is a gotcha to be aware of. If we do the query before clearing + * the status register, we may miss state changes that occur between the + * two. If we write to clear the status register before the query, the + * cache-enabled query command may overtake the status register write + * unless we use a heavyweight sync (which we don't want). Instead, we + * write-to-clear the status register then *read it back* before doing + * the query, hence the odd while loop with the 'is' accumulation. */ + if (is & BM_PIRQ_BSCN) { + struct bm_mc_result *mcr; + __maybe_unused unsigned long irqflags; + unsigned int i, j; + u32 __is; + bm_isr_status_clear(&p->p, BM_PIRQ_BSCN); + while ((__is = bm_isr_status_read(&p->p)) & BM_PIRQ_BSCN) { + is |= __is; + bm_isr_status_clear(&p->p, BM_PIRQ_BSCN); + } + is &= ~BM_PIRQ_BSCN; + PORTAL_IRQ_LOCK(p, irqflags); + bm_mc_start(&p->p); + bm_mc_commit(&p->p, BM_MCC_VERB_CMD_QUERY); + while (!(mcr = bm_mc_result(&p->p))) + cpu_relax(); + tmp = mcr->query.ds.state; + PORTAL_IRQ_UNLOCK(p, irqflags); + for (i = 0; i < 2; i++) { + int idx = i * 32; + /* tmp is a mask of currently-depleted pools. + * pools[0] is mask of those we care about. + * pools[1] is our previous view (we only want to + * be told about changes). */ + tmp.__state[i] &= p->pools[0].__state[i]; + if (tmp.__state[i] == p->pools[1].__state[i]) + /* fast-path, nothing to see, move along */ + continue; + for (j = 0; j <= 31; j++, idx++) { + struct bman_pool *pool = p->cb[idx]; + int b4 = bman_depletion_get(&p->pools[1], idx); + int af = bman_depletion_get(&tmp, idx); + if (b4 == af) + continue; + while (pool) { + pool->params.cb(p, pool, + pool->params.cb_ctx, af); + pool = pool->next; + } + } + } + p->pools[1] = tmp; + } + + if (is & BM_PIRQ_RCRI) { + __maybe_unused unsigned long irqflags; + PORTAL_IRQ_LOCK(p, irqflags); + bm_rcr_cce_update(&p->p); +#ifdef CONFIG_FSL_DPA_CAN_WAIT_SYNC + /* If waiting for sync, we only cancel the interrupt threshold + * when the ring utilisation hits zero. */ + if (p->rcri_owned) { + if (!bm_rcr_get_fill(&p->p)) { + p->rcri_owned = NULL; + bm_rcr_set_ithresh(&p->p, 0); + } + } else +#endif + bm_rcr_set_ithresh(&p->p, 0); + PORTAL_IRQ_UNLOCK(p, irqflags); + wake_up(&affine_queue); + bm_isr_status_clear(&p->p, BM_PIRQ_RCRI); + is &= ~BM_PIRQ_RCRI; + } + + /* There should be no status register bits left undefined */ + DPA_ASSERT(!is); + return ret; +} + +const struct bman_portal_config *bman_get_portal_config(void) +{ + struct bman_portal *p = get_affine_portal(); + const struct bman_portal_config *ret = &p->config->public_cfg; + put_affine_portal(); + return ret; +} +EXPORT_SYMBOL(bman_get_portal_config); + +u32 bman_irqsource_get(void) +{ + struct bman_portal *p = get_raw_affine_portal(); + u32 ret = p->irq_sources & BM_PIRQ_VISIBLE; + put_affine_portal(); + return ret; +} +EXPORT_SYMBOL(bman_irqsource_get); + +int bman_irqsource_add(__maybe_unused u32 bits) +{ +#ifdef CONFIG_FSL_DPA_HAVE_IRQ + struct bman_portal *p = get_raw_affine_portal(); + int ret = 0; +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE + if (p->sharing_redirect) + ret = -EINVAL; + else +#endif + { + __maybe_unused unsigned long irqflags; + PORTAL_IRQ_LOCK(p, irqflags); + set_bits(bits & BM_PIRQ_VISIBLE, &p->irq_sources); + bm_isr_enable_write(&p->p, p->irq_sources); + PORTAL_IRQ_UNLOCK(p, irqflags); + } + put_affine_portal(); + return ret; +#else + pr_err("No Bman portal IRQ support, mustn't specify IRQ flags!"); + return -EINVAL; +#endif +} +EXPORT_SYMBOL(bman_irqsource_add); + +int bman_irqsource_remove(u32 bits) +{ +#ifdef CONFIG_FSL_DPA_HAVE_IRQ + struct bman_portal *p = get_raw_affine_portal(); + __maybe_unused unsigned long irqflags; + u32 ier; +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE + if (p->sharing_redirect) { + put_affine_portal(); + return -EINVAL; + } +#endif + /* Our interrupt handler only processes+clears status register bits that + * are in p->irq_sources. As we're trimming that mask, if one of them + * were to assert in the status register just before we remove it from + * the enable register, there would be an interrupt-storm when we + * release the IRQ lock. So we wait for the enable register update to + * take effect in h/w (by reading it back) and then clear all other bits + * in the status register. Ie. we clear them from ISR once it's certain + * IER won't allow them to reassert. */ + PORTAL_IRQ_LOCK(p, irqflags); + bits &= BM_PIRQ_VISIBLE; + clear_bits(bits, &p->irq_sources); + bm_isr_enable_write(&p->p, p->irq_sources); + ier = bm_isr_enable_read(&p->p); + /* Using "~ier" (rather than "bits" or "~p->irq_sources") creates a + * data-dependency, ie. to protect against re-ordering. */ + bm_isr_status_clear(&p->p, ~ier); + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + return 0; +#else + pr_err("No Bman portal IRQ support, mustn't specify IRQ flags!"); + return -EINVAL; +#endif +} +EXPORT_SYMBOL(bman_irqsource_remove); + +const cpumask_t *bman_affine_cpus(void) +{ + return &affine_mask; +} +EXPORT_SYMBOL(bman_affine_cpus); + +u32 bman_poll_slow(void) +{ + struct bman_portal *p = get_raw_affine_portal(); + u32 ret; +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE + if (unlikely(p->sharing_redirect)) + ret = (u32)-1; + else +#endif + { + u32 is = bm_isr_status_read(&p->p) & ~p->irq_sources; + ret = __poll_portal_slow(p, is); + bm_isr_status_clear(&p->p, ret); + } + put_affine_portal(); + return ret; +} +EXPORT_SYMBOL(bman_poll_slow); + +/* Legacy wrapper */ +void bman_poll(void) +{ + struct bman_portal *p = get_raw_affine_portal(); +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE + if (unlikely(p->sharing_redirect)) + goto done; +#endif + if (!(p->slowpoll--)) { + u32 is = bm_isr_status_read(&p->p) & ~p->irq_sources; + u32 active = __poll_portal_slow(p, is); + if (active) + p->slowpoll = SLOW_POLL_BUSY; + else + p->slowpoll = SLOW_POLL_IDLE; + } +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE +done: +#endif + put_affine_portal(); +} +EXPORT_SYMBOL(bman_poll); + +int bman_recovery_cleanup_bpid(u32 bpid) +{ + struct bman_pool pool = { + .params = { + .bpid = bpid + } + }; + struct bm_buffer bufs[8]; + int ret = 0; + unsigned int num_bufs = 0; + do { + /* Acquire is all-or-nothing, so we drain in 8s, then in + * 1s for the remainder. */ + if (ret != 1) + ret = bman_acquire(&pool, bufs, 8, 0); + if (ret < 8) + ret = bman_acquire(&pool, bufs, 1, 0); + if (ret > 0) + num_bufs += ret; + } while (ret > 0); + if (num_bufs) + pr_info("Bman: BPID %d recovered (%d bufs)\n", bpid, num_bufs); + return 0; +} +EXPORT_SYMBOL(bman_recovery_cleanup_bpid); + +/* called from bman_driver.c::bman_recovery_exit() only (if exporting, use + * get_raw_affine_portal() and check for the "SLAVE" bit). */ +void bman_recovery_exit_local(void) +{ + struct bman_portal *p = get_affine_portal(); + bm_isr_status_clear(&p->p, 0xffffffff); + bm_isr_uninhibit(&p->p); + put_affine_portal(); +} + +static const u32 zero_thresholds[4] = {0, 0, 0, 0}; + +struct bman_pool *bman_new_pool(const struct bman_pool_params *params) +{ + struct bman_pool *pool = NULL; + u32 bpid; + + if (params->flags & BMAN_POOL_FLAG_DYNAMIC_BPID) { + int ret = bm_pool_new(&bpid); + if (ret) + return NULL; + } else { + if (params->bpid >= bman_pool_max) + return NULL; + bpid = params->bpid; + } +#ifdef CONFIG_FSL_BMAN_CONFIG + if (params->flags & BMAN_POOL_FLAG_THRESH) { + int ret = bm_pool_set(bpid, params->thresholds); + if (ret) + goto err; + } +#else + if (params->flags & BMAN_POOL_FLAG_THRESH) + goto err; +#endif + pool = kmalloc(sizeof(*pool), GFP_KERNEL); + if (!pool) + goto err; + pool->sp = NULL; + pool->sp_fill = 0; + pool->params = *params; +#ifdef CONFIG_FSL_DPA_CHECKING + atomic_set(&pool->in_use, 1); +#endif + if (params->flags & BMAN_POOL_FLAG_DYNAMIC_BPID) + pool->params.bpid = bpid; + if (params->flags & BMAN_POOL_FLAG_STOCKPILE) { + pool->sp = kmalloc(sizeof(struct bm_buffer) * BMAN_STOCKPILE_SZ, + GFP_KERNEL); + if (!pool->sp) + goto err; + } + if (pool->params.flags & BMAN_POOL_FLAG_DEPLETION) { + struct bman_portal *p = get_affine_portal(); + if (!p->pools || !bman_depletion_get(&p->pools[0], bpid)) { + pr_err("Depletion events disabled for bpid %d\n", bpid); + goto err; + } + depletion_link(p, pool); + put_affine_portal(); + } + return pool; +err: +#ifdef CONFIG_FSL_BMAN_CONFIG + if (params->flags & BMAN_POOL_FLAG_THRESH) + bm_pool_set(bpid, zero_thresholds); +#endif + if (params->flags & BMAN_POOL_FLAG_DYNAMIC_BPID) + bm_pool_free(bpid); + if (pool) { + if (pool->sp) + kfree(pool->sp); + kfree(pool); + } + return NULL; +} +EXPORT_SYMBOL(bman_new_pool); + +void bman_free_pool(struct bman_pool *pool) +{ +#ifdef CONFIG_FSL_BMAN_CONFIG + if (pool->params.flags & BMAN_POOL_FLAG_THRESH) + bm_pool_set(pool->params.bpid, zero_thresholds); +#endif + if (pool->params.flags & BMAN_POOL_FLAG_DEPLETION) + depletion_unlink(pool); + if (pool->params.flags & BMAN_POOL_FLAG_STOCKPILE) { + if (pool->sp_fill) + pr_err("Stockpile not flushed, has %u in bpid %u.\n", + pool->sp_fill, pool->params.bpid); + kfree(pool->sp); + pool->sp = NULL; + pool->params.flags ^= BMAN_POOL_FLAG_STOCKPILE; + } + if (pool->params.flags & BMAN_POOL_FLAG_DYNAMIC_BPID) { + /* When releasing a BPID to the dynamic allocator, that pool + * must be *empty*. This code makes it so by dropping everything + * into the bit-bucket. This ignores whether or not it was a + * mistake (or a leak) on the caller's part not to drain the + * pool beforehand. */ + struct bm_buffer bufs[8]; + int ret = 0; + do { + /* Acquire is all-or-nothing, so we drain in 8s, then in + * 1s for the remainder. */ + if (ret != 1) + ret = bman_acquire(pool, bufs, 8, 0); + if (ret < 8) + ret = bman_acquire(pool, bufs, 1, 0); + } while (ret > 0); + bm_pool_free(pool->params.bpid); + } + kfree(pool); +} +EXPORT_SYMBOL(bman_free_pool); + +const struct bman_pool_params *bman_get_params(const struct bman_pool *pool) +{ + return &pool->params; +} +EXPORT_SYMBOL(bman_get_params); + +static noinline void update_rcr_ci(struct bman_portal *p, u8 avail) +{ + if (avail) + bm_rcr_cce_prefetch(&p->p); + else + bm_rcr_cce_update(&p->p); +} + +int bman_rcr_is_empty(void) +{ + __maybe_unused unsigned long irqflags; + struct bman_portal *p = get_affine_portal(); + u8 avail; + + PORTAL_IRQ_LOCK(p, irqflags); + update_rcr_ci(p, 0); + avail = bm_rcr_get_fill(&p->p); + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + return (avail == 0); +} +EXPORT_SYMBOL(bman_rcr_is_empty); + +static inline struct bm_rcr_entry *try_rel_start(struct bman_portal **p, +#ifdef CONFIG_FSL_DPA_CAN_WAIT + __maybe_unused struct bman_pool *pool, +#endif + __maybe_unused unsigned long *irqflags, + __maybe_unused u32 flags) +{ + struct bm_rcr_entry *r; + u8 avail; + + *p = get_affine_portal(); + PORTAL_IRQ_LOCK(*p, (*irqflags)); +#ifdef CONFIG_FSL_DPA_CAN_WAIT_SYNC + if (unlikely((flags & BMAN_RELEASE_FLAG_WAIT) && + (flags & BMAN_RELEASE_FLAG_WAIT_SYNC))) { + if ((*p)->rcri_owned) { + PORTAL_IRQ_UNLOCK(*p, (*irqflags)); + put_affine_portal(); + return NULL; + } + (*p)->rcri_owned = pool; + } +#endif + avail = bm_rcr_get_avail(&(*p)->p); + if (avail < 2) + update_rcr_ci(*p, avail); + r = bm_rcr_start(&(*p)->p); + if (unlikely(!r)) { +#ifdef CONFIG_FSL_DPA_CAN_WAIT_SYNC + if (unlikely((flags & BMAN_RELEASE_FLAG_WAIT) && + (flags & BMAN_RELEASE_FLAG_WAIT_SYNC))) + (*p)->rcri_owned = NULL; +#endif + PORTAL_IRQ_UNLOCK(*p, (*irqflags)); + put_affine_portal(); + } + return r; +} + +#ifdef CONFIG_FSL_DPA_CAN_WAIT +static noinline struct bm_rcr_entry *__wait_rel_start(struct bman_portal **p, + struct bman_pool *pool, + __maybe_unused unsigned long *irqflags, + u32 flags) +{ + struct bm_rcr_entry *rcr = try_rel_start(p, pool, irqflags, flags); + if (!rcr) + bm_rcr_set_ithresh(&(*p)->p, 1); + return rcr; +} + +static noinline struct bm_rcr_entry *wait_rel_start(struct bman_portal **p, + struct bman_pool *pool, + __maybe_unused unsigned long *irqflags, + u32 flags) +{ + struct bm_rcr_entry *rcr; +#ifndef CONFIG_FSL_DPA_CAN_WAIT_SYNC + pool = NULL; +#endif + if (flags & BMAN_RELEASE_FLAG_WAIT_INT) + wait_event_interruptible(affine_queue, + (rcr = __wait_rel_start(p, pool, irqflags, flags))); + else + wait_event(affine_queue, + (rcr = __wait_rel_start(p, pool, irqflags, flags))); + return rcr; +} +#endif + +/* to facilitate better copying of bufs into the ring without either (a) copying + * noise into the first byte (prematurely triggering the command), nor (b) being + * very inefficient by copying small fields using read-modify-write */ +struct overlay_bm_buffer { + u32 first; + u32 second; +}; + +static inline int __bman_release(struct bman_pool *pool, + const struct bm_buffer *bufs, u8 num, u32 flags) +{ + struct bman_portal *p; + struct bm_rcr_entry *r; + struct overlay_bm_buffer *o_dest; + struct overlay_bm_buffer *o_src = (struct overlay_bm_buffer *)&bufs[0]; + __maybe_unused unsigned long irqflags; + u32 i = num - 1; + +#ifdef CONFIG_FSL_DPA_CAN_WAIT + if (flags & BMAN_RELEASE_FLAG_WAIT) + r = wait_rel_start(&p, pool, &irqflags, flags); + else + r = try_rel_start(&p, pool, &irqflags, flags); +#else + r = try_rel_start(&p, &irqflags, flags); +#endif + if (!r) + return -EBUSY; + /* We can copy all but the first entry, as this can trigger badness + * with the valid-bit. Use the overlay to mask the verb byte. */ + o_dest = (struct overlay_bm_buffer *)&r->bufs[0]; + o_dest->first = (o_src->first & 0x0000ffff) | + (((u32)pool->params.bpid << 16) & 0x00ff0000); + o_dest->second = o_src->second; + if (i) + copy_words(&r->bufs[1], &bufs[1], i * sizeof(bufs[0])); + bm_rcr_pvb_commit(&p->p, BM_RCR_VERB_CMD_BPID_SINGLE | + (num & BM_RCR_VERB_BUFCOUNT_MASK)); +#ifdef CONFIG_FSL_DPA_CAN_WAIT_SYNC + /* if we wish to sync we need to set the threshold after h/w sees the + * new ring entry. As we're mixing cache-enabled and cache-inhibited + * accesses, this requires a heavy-weight sync. */ + if (unlikely((flags & BMAN_RELEASE_FLAG_WAIT) && + (flags & BMAN_RELEASE_FLAG_WAIT_SYNC))) { + hwsync(); + bm_rcr_set_ithresh(&p->p, 1); + } +#endif + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); +#ifdef CONFIG_FSL_DPA_CAN_WAIT_SYNC + if (unlikely((flags & BMAN_RELEASE_FLAG_WAIT) && + (flags & BMAN_RELEASE_FLAG_WAIT_SYNC))) { + if (flags & BMAN_RELEASE_FLAG_WAIT_INT) + wait_event_interruptible(affine_queue, + (p->rcri_owned != pool)); + else + wait_event(affine_queue, (p->rcri_owned != pool)); + } +#endif + return 0; +} + +int bman_release(struct bman_pool *pool, const struct bm_buffer *bufs, u8 num, + u32 flags) +{ + int ret = 0; +#ifdef CONFIG_FSL_DPA_CHECKING + if (!num || (num > 8)) + return -EINVAL; + if (pool->params.flags & BMAN_POOL_FLAG_NO_RELEASE) + return -EINVAL; + if (!atomic_dec_and_test(&pool->in_use)) { + pr_crit("Parallel attempts to enter bman_released() detected."); + panic("only one instance of bman_released/acquired allowed"); + } +#endif + /* Without stockpile, this API is a pass-through to the h/w operation */ + if (!(pool->params.flags & BMAN_POOL_FLAG_STOCKPILE)) { + ret = __bman_release(pool, bufs, num, flags); + goto release_done; + } + /* This needs some explanation. Adding the given buffers may take the + * stockpile over the threshold, but in fact the stockpile may already + * *be* over the threshold if a previous release-to-hw attempt had + * failed. So we have 3 cases to cover; + * 1. we add to the stockpile and don't hit the threshold, + * 2. we add to the stockpile, hit the threshold and release-to-hw, + * 3. we have to release-to-hw before adding to the stockpile + * (not enough room in the stockpile for case 2). + * Our constraints on thresholds guarantee that in case 3, there must be + * at least 8 bufs already in the stockpile, so all release-to-hw ops + * are for 8 bufs. Despite all this, the API must indicate whether the + * given buffers were taken off the caller's hands, irrespective of + * whether a release-to-hw was attempted. */ + while (num) { + /* Add buffers to stockpile if they fit */ + if ((pool->sp_fill + num) < BMAN_STOCKPILE_SZ) { + copy_words(pool->sp + pool->sp_fill, bufs, + sizeof(struct bm_buffer) * num); + pool->sp_fill += num; + num = 0; /* --> will return success no matter what */ + } + /* Do hw op if hitting the high-water threshold */ + if ((pool->sp_fill + num) >= BMAN_STOCKPILE_HIGH) { + ret = __bman_release(pool, + pool->sp + (pool->sp_fill - 8), 8, flags); + if (ret) { + ret = (num ? ret : 0); + goto release_done; + } + pool->sp_fill -= 8; + } + } +release_done: +#ifdef CONFIG_FSL_DPA_CHECKING + atomic_inc(&pool->in_use); +#endif + return ret; +} +EXPORT_SYMBOL(bman_release); + +static inline int __bman_acquire(struct bman_pool *pool, struct bm_buffer *bufs, + u8 num) +{ + struct bman_portal *p = get_affine_portal(); + struct bm_mc_command *mcc; + struct bm_mc_result *mcr; + __maybe_unused unsigned long irqflags; + int ret; + + PORTAL_IRQ_LOCK(p, irqflags); + mcc = bm_mc_start(&p->p); + mcc->acquire.bpid = pool->params.bpid; + bm_mc_commit(&p->p, BM_MCC_VERB_CMD_ACQUIRE | + (num & BM_MCC_VERB_ACQUIRE_BUFCOUNT)); + while (!(mcr = bm_mc_result(&p->p))) + cpu_relax(); + ret = mcr->verb & BM_MCR_VERB_ACQUIRE_BUFCOUNT; + if (bufs) + copy_words(&bufs[0], &mcr->acquire.bufs[0], + num * sizeof(bufs[0])); + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + if (ret != num) + ret = -ENOMEM; + return ret; +} + +int bman_acquire(struct bman_pool *pool, struct bm_buffer *bufs, u8 num, + u32 flags) +{ + int ret = 0; +#ifdef CONFIG_FSL_DPA_CHECKING + if (!num || (num > 8)) + return -EINVAL; + if (pool->params.flags & BMAN_POOL_FLAG_ONLY_RELEASE) + return -EINVAL; + if (!atomic_dec_and_test(&pool->in_use)) { + pr_crit("Parallel attempts to enter bman_acquire() detected."); + panic("only one instance of bman_released/acquired allowed"); + } +#endif + /* Without stockpile, this API is a pass-through to the h/w operation */ + if (!(pool->params.flags & BMAN_POOL_FLAG_STOCKPILE)) { + ret = __bman_acquire(pool, bufs, num); + goto acquire_done; + } + /* Only need a h/w op if we'll hit the low-water thresh */ + if (!(flags & BMAN_ACQUIRE_FLAG_STOCKPILE) && + (pool->sp_fill <= (BMAN_STOCKPILE_LOW + num))) { + /* refill stockpile with max amount, but if max amount + * isn't available, try amount the user wants */ + int bufcount = 8; + ret = __bman_acquire(pool, pool->sp + pool->sp_fill, bufcount); + if (ret < 0 && bufcount != num) { + bufcount = num; + /* Maybe buffer pool has less than 8 */ + ret = __bman_acquire(pool, pool->sp + pool->sp_fill, + bufcount); + } + if (ret < 0) + goto hw_starved; + DPA_ASSERT(ret == bufcount); + pool->sp_fill += bufcount; + } else { +hw_starved: + if (pool->sp_fill < num) { + ret = -ENOMEM; + goto acquire_done; + } + } + copy_words(bufs, pool->sp + (pool->sp_fill - num), + sizeof(struct bm_buffer) * num); + pool->sp_fill -= num; + ret = num; +acquire_done: +#ifdef CONFIG_FSL_DPA_CHECKING + atomic_inc(&pool->in_use); +#endif + return ret; +} +EXPORT_SYMBOL(bman_acquire); + +int bman_flush_stockpile(struct bman_pool *pool, u32 flags) +{ + u8 num; + int ret; + + while (pool->sp_fill) { + num = ((pool->sp_fill > 8) ? 8 : pool->sp_fill); + ret = __bman_release(pool, pool->sp + (pool->sp_fill - num), + num, flags); + if (ret) + return ret; + pool->sp_fill -= num; + } + return 0; +} +EXPORT_SYMBOL(bman_flush_stockpile); + +int bman_query_pools(struct bm_pool_state *state) +{ + struct bman_portal *p = get_affine_portal(); + struct bm_mc_result *mcr; + __maybe_unused unsigned long irqflags; + + PORTAL_IRQ_LOCK(p, irqflags); + bm_mc_start(&p->p); + bm_mc_commit(&p->p, BM_MCC_VERB_CMD_QUERY); + while (!(mcr = bm_mc_result(&p->p))) + cpu_relax(); + DPA_ASSERT((mcr->verb & BM_MCR_VERB_CMD_MASK) == BM_MCR_VERB_CMD_QUERY); + *state = mcr->query; + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + return 0; +} +EXPORT_SYMBOL(bman_query_pools); + --- linux-3.13.0.orig/drivers/staging/fsl_qbman/bman_low.h +++ linux-3.13.0/drivers/staging/fsl_qbman/bman_low.h @@ -0,0 +1,494 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "bman_private.h" + +/***************************/ +/* Portal register assists */ +/***************************/ + +/* Cache-inhibited register offsets */ +#define REG_RCR_PI_CINH 0x0000 +#define REG_RCR_CI_CINH 0x0004 +#define REG_RCR_ITR 0x0008 +#define REG_CFG 0x0100 +#define REG_SCN(n) (0x0200 + ((n) << 2)) +#define REG_ISR 0x0e00 + +/* Cache-enabled register offsets */ +#define CL_CR 0x0000 +#define CL_RR0 0x0100 +#define CL_RR1 0x0140 +#define CL_RCR 0x1000 +#define CL_RCR_PI_CENA 0x3000 +#define CL_RCR_CI_CENA 0x3100 + +/* BTW, the drivers (and h/w programming model) already obtain the required + * synchronisation for portal accesses via lwsync(), hwsync(), and + * data-dependencies. Use of barrier()s or other order-preserving primitives + * simply degrade performance. Hence the use of the __raw_*() interfaces, which + * simply ensure that the compiler treats the portal registers as volatile (ie. + * non-coherent). */ + +/* Cache-inhibited register access. */ +#define __bm_in(bm, o) __raw_readl((bm)->addr_ci + (o)) +#define __bm_out(bm, o, val) __raw_writel((val), (bm)->addr_ci + (o)) +#define bm_in(reg) __bm_in(&portal->addr, REG_##reg) +#define bm_out(reg, val) __bm_out(&portal->addr, REG_##reg, val) + +/* Cache-enabled (index) register access */ +#define __bm_cl_touch_ro(bm, o) dcbt_ro((bm)->addr_ce + (o)) +#define __bm_cl_touch_rw(bm, o) dcbt_rw((bm)->addr_ce + (o)) +#define __bm_cl_in(bm, o) __raw_readl((bm)->addr_ce + (o)) +#define __bm_cl_out(bm, o, val) \ + do { \ + u32 *__tmpclout = (bm)->addr_ce + (o); \ + __raw_writel((val), __tmpclout); \ + dcbf(__tmpclout); \ + } while (0) +#define __bm_cl_invalidate(bm, o) dcbi((bm)->addr_ce + (o)) +#define bm_cl_touch_ro(reg) __bm_cl_touch_ro(&portal->addr, CL_##reg##_CENA) +#define bm_cl_touch_rw(reg) __bm_cl_touch_rw(&portal->addr, CL_##reg##_CENA) +#define bm_cl_in(reg) __bm_cl_in(&portal->addr, CL_##reg##_CENA) +#define bm_cl_out(reg, val) __bm_cl_out(&portal->addr, CL_##reg##_CENA, val) +#define bm_cl_invalidate(reg) __bm_cl_invalidate(&portal->addr, CL_##reg##_CENA) + +/* Cyclic helper for rings. FIXME: once we are able to do fine-grain perf + * analysis, look at using the "extra" bit in the ring index registers to avoid + * cyclic issues. */ +static inline u8 cyc_diff(u8 ringsize, u8 first, u8 last) +{ + /* 'first' is included, 'last' is excluded */ + if (first <= last) + return last - first; + return ringsize + last - first; +} + +/* Portal modes. + * Enum types; + * pmode == production mode + * cmode == consumption mode, + * Enum values use 3 letter codes. First letter matches the portal mode, + * remaining two letters indicate; + * ci == cache-inhibited portal register + * ce == cache-enabled portal register + * vb == in-band valid-bit (cache-enabled) + */ +enum bm_rcr_pmode { /* matches BCSP_CFG::RPM */ + bm_rcr_pci = 0, /* PI index, cache-inhibited */ + bm_rcr_pce = 1, /* PI index, cache-enabled */ + bm_rcr_pvb = 2 /* valid-bit */ +}; +enum bm_rcr_cmode { /* s/w-only */ + bm_rcr_cci, /* CI index, cache-inhibited */ + bm_rcr_cce /* CI index, cache-enabled */ +}; + + +/* ------------------------- */ +/* --- Portal structures --- */ + +#define BM_RCR_SIZE 8 + +struct bm_rcr { + struct bm_rcr_entry *ring, *cursor; + u8 ci, available, ithresh, vbit; +#ifdef CONFIG_FSL_DPA_CHECKING + u32 busy; + enum bm_rcr_pmode pmode; + enum bm_rcr_cmode cmode; +#endif +}; + +struct bm_mc { + struct bm_mc_command *cr; + struct bm_mc_result *rr; + u8 rridx, vbit; +#ifdef CONFIG_FSL_DPA_CHECKING + enum { + /* Can only be _mc_start()ed */ + mc_idle, + /* Can only be _mc_commit()ed or _mc_abort()ed */ + mc_user, + /* Can only be _mc_retry()ed */ + mc_hw + } state; +#endif +}; + +struct bm_addr { + void __iomem *addr_ce; /* cache-enabled */ + void __iomem *addr_ci; /* cache-inhibited */ +}; + +struct bm_portal { + struct bm_addr addr; + struct bm_rcr rcr; + struct bm_mc mc; + struct bm_portal_config config; +} ____cacheline_aligned; + + +/* --------------- */ +/* --- RCR API --- */ + +/* Bit-wise logic to wrap a ring pointer by clearing the "carry bit" */ +#define RCR_CARRYCLEAR(p) \ + (void *)((unsigned long)(p) & (~(unsigned long)(BM_RCR_SIZE << 6))) + +/* Bit-wise logic to convert a ring pointer to a ring index */ +static inline u8 RCR_PTR2IDX(struct bm_rcr_entry *e) +{ + return ((uintptr_t)e >> 6) & (BM_RCR_SIZE - 1); +} + +/* Increment the 'cursor' ring pointer, taking 'vbit' into account */ +static inline void RCR_INC(struct bm_rcr *rcr) +{ + /* NB: this is odd-looking, but experiments show that it generates + * fast code with essentially no branching overheads. We increment to + * the next RCR pointer and handle overflow and 'vbit'. */ + struct bm_rcr_entry *partial = rcr->cursor + 1; + rcr->cursor = RCR_CARRYCLEAR(partial); + if (partial != rcr->cursor) + rcr->vbit ^= BM_RCR_VERB_VBIT; +} + +static inline int bm_rcr_init(struct bm_portal *portal, enum bm_rcr_pmode pmode, + __maybe_unused enum bm_rcr_cmode cmode) +{ + /* This use of 'register', as well as all other occurances, is because + * it has been observed to generate much faster code with gcc than is + * otherwise the case. */ + register struct bm_rcr *rcr = &portal->rcr; + u32 cfg; + u8 pi; + + rcr->ring = portal->addr.addr_ce + CL_RCR; + rcr->ci = bm_in(RCR_CI_CINH) & (BM_RCR_SIZE - 1); + pi = bm_in(RCR_PI_CINH) & (BM_RCR_SIZE - 1); + rcr->cursor = rcr->ring + pi; + rcr->vbit = (bm_in(RCR_PI_CINH) & BM_RCR_SIZE) ? BM_RCR_VERB_VBIT : 0; + rcr->available = BM_RCR_SIZE - 1 - cyc_diff(BM_RCR_SIZE, rcr->ci, pi); + rcr->ithresh = bm_in(RCR_ITR); +#ifdef CONFIG_FSL_DPA_CHECKING + rcr->busy = 0; + rcr->pmode = pmode; + rcr->cmode = cmode; +#endif + cfg = (bm_in(CFG) & 0xffffffe0) | (pmode & 0x3); /* BCSP_CFG::RPM */ + bm_out(CFG, cfg); + return 0; +} + +static inline void bm_rcr_finish(struct bm_portal *portal) +{ + register struct bm_rcr *rcr = &portal->rcr; + u8 pi = bm_in(RCR_PI_CINH) & (BM_RCR_SIZE - 1); + u8 ci = bm_in(RCR_CI_CINH) & (BM_RCR_SIZE - 1); + DPA_ASSERT(!rcr->busy); + if (pi != RCR_PTR2IDX(rcr->cursor)) + pr_crit("losing uncommited RCR entries\n"); + if (ci != rcr->ci) + pr_crit("missing existing RCR completions\n"); + if (rcr->ci != RCR_PTR2IDX(rcr->cursor)) + pr_crit("RCR destroyed unquiesced\n"); +} + +static inline struct bm_rcr_entry *bm_rcr_start(struct bm_portal *portal) +{ + register struct bm_rcr *rcr = &portal->rcr; + DPA_ASSERT(!rcr->busy); + if (!rcr->available) + return NULL; +#ifdef CONFIG_FSL_DPA_CHECKING + rcr->busy = 1; +#endif + dcbz_64(rcr->cursor); + return rcr->cursor; +} + +static inline void bm_rcr_abort(struct bm_portal *portal) +{ + __maybe_unused register struct bm_rcr *rcr = &portal->rcr; + DPA_ASSERT(rcr->busy); +#ifdef CONFIG_FSL_DPA_CHECKING + rcr->busy = 0; +#endif +} + +static inline struct bm_rcr_entry *bm_rcr_pend_and_next( + struct bm_portal *portal, u8 myverb) +{ + register struct bm_rcr *rcr = &portal->rcr; + DPA_ASSERT(rcr->busy); + DPA_ASSERT(rcr->pmode != bm_rcr_pvb); + if (rcr->available == 1) + return NULL; + rcr->cursor->__dont_write_directly__verb = myverb | rcr->vbit; + dcbf_64(rcr->cursor); + RCR_INC(rcr); + rcr->available--; + dcbz_64(rcr->cursor); + return rcr->cursor; +} + +static inline void bm_rcr_pci_commit(struct bm_portal *portal, u8 myverb) +{ + register struct bm_rcr *rcr = &portal->rcr; + DPA_ASSERT(rcr->busy); + DPA_ASSERT(rcr->pmode == bm_rcr_pci); + rcr->cursor->__dont_write_directly__verb = myverb | rcr->vbit; + RCR_INC(rcr); + rcr->available--; + hwsync(); + bm_out(RCR_PI_CINH, RCR_PTR2IDX(rcr->cursor)); +#ifdef CONFIG_FSL_DPA_CHECKING + rcr->busy = 0; +#endif +} + +static inline void bm_rcr_pce_prefetch(struct bm_portal *portal) +{ + __maybe_unused register struct bm_rcr *rcr = &portal->rcr; + DPA_ASSERT(rcr->pmode == bm_rcr_pce); + bm_cl_invalidate(RCR_PI); + bm_cl_touch_rw(RCR_PI); +} + +static inline void bm_rcr_pce_commit(struct bm_portal *portal, u8 myverb) +{ + register struct bm_rcr *rcr = &portal->rcr; + DPA_ASSERT(rcr->busy); + DPA_ASSERT(rcr->pmode == bm_rcr_pce); + rcr->cursor->__dont_write_directly__verb = myverb | rcr->vbit; + RCR_INC(rcr); + rcr->available--; + lwsync(); + bm_cl_out(RCR_PI, RCR_PTR2IDX(rcr->cursor)); +#ifdef CONFIG_FSL_DPA_CHECKING + rcr->busy = 0; +#endif +} + +static inline void bm_rcr_pvb_commit(struct bm_portal *portal, u8 myverb) +{ + register struct bm_rcr *rcr = &portal->rcr; + struct bm_rcr_entry *rcursor; + DPA_ASSERT(rcr->busy); + DPA_ASSERT(rcr->pmode == bm_rcr_pvb); + lwsync(); + rcursor = rcr->cursor; + rcursor->__dont_write_directly__verb = myverb | rcr->vbit; + dcbf_64(rcursor); + RCR_INC(rcr); + rcr->available--; +#ifdef CONFIG_FSL_DPA_CHECKING + rcr->busy = 0; +#endif +} + +static inline u8 bm_rcr_cci_update(struct bm_portal *portal) +{ + register struct bm_rcr *rcr = &portal->rcr; + u8 diff, old_ci = rcr->ci; + DPA_ASSERT(rcr->cmode == bm_rcr_cci); + rcr->ci = bm_in(RCR_CI_CINH) & (BM_RCR_SIZE - 1); + diff = cyc_diff(BM_RCR_SIZE, old_ci, rcr->ci); + rcr->available += diff; + return diff; +} + +static inline void bm_rcr_cce_prefetch(struct bm_portal *portal) +{ + __maybe_unused register struct bm_rcr *rcr = &portal->rcr; + DPA_ASSERT(rcr->cmode == bm_rcr_cce); + bm_cl_touch_ro(RCR_CI); +} + +static inline u8 bm_rcr_cce_update(struct bm_portal *portal) +{ + register struct bm_rcr *rcr = &portal->rcr; + u8 diff, old_ci = rcr->ci; + DPA_ASSERT(rcr->cmode == bm_rcr_cce); + rcr->ci = bm_cl_in(RCR_CI) & (BM_RCR_SIZE - 1); + bm_cl_invalidate(RCR_CI); + diff = cyc_diff(BM_RCR_SIZE, old_ci, rcr->ci); + rcr->available += diff; + return diff; +} + +static inline u8 bm_rcr_get_ithresh(struct bm_portal *portal) +{ + register struct bm_rcr *rcr = &portal->rcr; + return rcr->ithresh; +} + +static inline void bm_rcr_set_ithresh(struct bm_portal *portal, u8 ithresh) +{ + register struct bm_rcr *rcr = &portal->rcr; + rcr->ithresh = ithresh; + bm_out(RCR_ITR, ithresh); +} + +static inline u8 bm_rcr_get_avail(struct bm_portal *portal) +{ + register struct bm_rcr *rcr = &portal->rcr; + return rcr->available; +} + +static inline u8 bm_rcr_get_fill(struct bm_portal *portal) +{ + register struct bm_rcr *rcr = &portal->rcr; + return BM_RCR_SIZE - 1 - rcr->available; +} + + +/* ------------------------------ */ +/* --- Management command API --- */ + +static inline int bm_mc_init(struct bm_portal *portal) +{ + register struct bm_mc *mc = &portal->mc; + mc->cr = portal->addr.addr_ce + CL_CR; + mc->rr = portal->addr.addr_ce + CL_RR0; + mc->rridx = (__raw_readb(&mc->cr->__dont_write_directly__verb) & + BM_MCC_VERB_VBIT) ? 0 : 1; + mc->vbit = mc->rridx ? BM_MCC_VERB_VBIT : 0; +#ifdef CONFIG_FSL_DPA_CHECKING + mc->state = mc_idle; +#endif + return 0; +} + +static inline void bm_mc_finish(struct bm_portal *portal) +{ + __maybe_unused register struct bm_mc *mc = &portal->mc; + DPA_ASSERT(mc->state == mc_idle); +#ifdef CONFIG_FSL_DPA_CHECKING + if (mc->state != mc_idle) + pr_crit("Losing incomplete MC command\n"); +#endif +} + +static inline struct bm_mc_command *bm_mc_start(struct bm_portal *portal) +{ + register struct bm_mc *mc = &portal->mc; + DPA_ASSERT(mc->state == mc_idle); +#ifdef CONFIG_FSL_DPA_CHECKING + mc->state = mc_user; +#endif + dcbz_64(mc->cr); + return mc->cr; +} + +static inline void bm_mc_abort(struct bm_portal *portal) +{ + __maybe_unused register struct bm_mc *mc = &portal->mc; + DPA_ASSERT(mc->state == mc_user); +#ifdef CONFIG_FSL_DPA_CHECKING + mc->state = mc_idle; +#endif +} + +static inline void bm_mc_commit(struct bm_portal *portal, u8 myverb) +{ + register struct bm_mc *mc = &portal->mc; + struct bm_mc_result *rr = mc->rr + mc->rridx; + DPA_ASSERT(mc->state == mc_user); + lwsync(); + mc->cr->__dont_write_directly__verb = myverb | mc->vbit; + dcbf(mc->cr); + dcbit_ro(rr); +#ifdef CONFIG_FSL_DPA_CHECKING + mc->state = mc_hw; +#endif +} + +static inline struct bm_mc_result *bm_mc_result(struct bm_portal *portal) +{ + register struct bm_mc *mc = &portal->mc; + struct bm_mc_result *rr = mc->rr + mc->rridx; + DPA_ASSERT(mc->state == mc_hw); + /* The inactive response register's verb byte always returns zero until + * its command is submitted and completed. This includes the valid-bit, + * in case you were wondering... */ + if (!__raw_readb(&rr->verb)) { + dcbit_ro(rr); + return NULL; + } + mc->rridx ^= 1; + mc->vbit ^= BM_MCC_VERB_VBIT; +#ifdef CONFIG_FSL_DPA_CHECKING + mc->state = mc_idle; +#endif + return rr; +} + + +/* ------------------------------------- */ +/* --- Portal interrupt register API --- */ + +static inline int bm_isr_init(__always_unused struct bm_portal *portal) +{ + return 0; +} + +static inline void bm_isr_finish(__always_unused struct bm_portal *portal) +{ +} + +#define SCN_REG(bpid) REG_SCN((bpid) / 32) +#define SCN_BIT(bpid) (0x80000000 >> (bpid & 31)) +static inline void bm_isr_bscn_mask(struct bm_portal *portal, u8 bpid, + int enable) +{ + u32 val; + DPA_ASSERT(bpid < bman_pool_max); + /* REG_SCN for bpid=0..31, REG_SCN+4 for bpid=32..63 */ + val = __bm_in(&portal->addr, SCN_REG(bpid)); + if (enable) + val |= SCN_BIT(bpid); + else + val &= ~SCN_BIT(bpid); + __bm_out(&portal->addr, SCN_REG(bpid), val); +} + +static inline u32 __bm_isr_read(struct bm_portal *portal, enum bm_isr_reg n) +{ + return __bm_in(&portal->addr, REG_ISR + (n << 2)); +} + +static inline void __bm_isr_write(struct bm_portal *portal, enum bm_isr_reg n, + u32 val) +{ + __bm_out(&portal->addr, REG_ISR + (n << 2), val); +} --- linux-3.13.0.orig/drivers/staging/fsl_qbman/bman_private.h +++ linux-3.13.0/drivers/staging/fsl_qbman/bman_private.h @@ -0,0 +1,149 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "dpa_sys.h" +#include + +/* Revision info (for errata and feature handling) */ +#define BMAN_REV10 0x0100 +#define BMAN_REV20 0x0200 +extern u16 bman_ip_rev; /* 0 if uninitialised, otherwise QMAN_REVx */ + +/* + * Global variables of the max portal/pool number this bman version supported + */ +extern u16 bman_pool_max; + +/* used by CCSR and portal interrupt code */ +enum bm_isr_reg { + bm_isr_status = 0, + bm_isr_enable = 1, + bm_isr_disable = 2, + bm_isr_inhibit = 3 +}; + +#define BM_ADDR_CE 0 +#define BM_ADDR_CI 1 +struct bm_portal_config { + /* Corenet portal addresses; + * [0]==cache-enabled, [1]==cache-inhibited. */ + __iomem void *addr_virt[2]; + struct resource addr_phys[2]; + /* Allow these to be joined in lists */ + struct list_head list; + /* User-visible portal configuration settings */ + struct bman_portal_config public_cfg; +}; + +#ifdef CONFIG_FSL_BMAN_CONFIG +/* Hooks from bman_driver.c to bman_config.c */ +int bman_init_error_int(struct device_node *node); +#endif + +/* Hooks from bman_driver.c in to bman_high.c */ +struct bman_portal *bman_create_affine_portal( + const struct bm_portal_config *config, + int recovery_mode); +struct bman_portal *bman_create_affine_slave(struct bman_portal *redirect); +const struct bm_portal_config *bman_destroy_affine_portal(void); +void bman_recovery_exit_local(void); + +/* Pool logic in the portal driver, during initialisation, needs to know if + * there's access to CCSR or not (if not, it'll cripple the pool allocator). */ +#ifdef CONFIG_FSL_BMAN_CONFIG +int bman_have_ccsr(void); +#else +#define bman_have_ccsr() 0 +#endif + +/* Stockpile build constants. The _LOW value: when bman_acquire() is called and + * the stockpile fill-level is <= _LOW, an acquire is attempted from h/w but it + * might fail (if the buffer pool is depleted). So this value provides some + * "stagger" in that the bman_acquire() function will only fail if lots of bufs + * are requested at once or if h/w has been tested a couple of times without + * luck. The _HIGH value: when bman_release() is called and the stockpile + * fill-level is >= _HIGH, a release is attempted to h/w but it might fail (if + * the release ring is full). So this value provides some "stagger" so that + * ring-access is retried a couple of times prior to the API returning a + * failure. The following *must* be true; + * BMAN_STOCKPILE_HIGH-BMAN_STOCKPILE_LOW > 8 + * (to avoid thrashing) + * BMAN_STOCKPILE_SZ >= 16 + * (as the release logic expects to either send 8 buffers to hw prior to + * adding the given buffers to the stockpile or add the buffers to the + * stockpile before sending 8 to hw, as the API must be an all-or-nothing + * success/fail.) + */ +#define BMAN_STOCKPILE_SZ 16u /* number of bufs in per-pool cache */ +#define BMAN_STOCKPILE_LOW 2u /* when fill is <= this, acquire from hw */ +#define BMAN_STOCKPILE_HIGH 14u /* when fill is >= this, release to hw */ + +/*************************************************/ +/* BMan s/w corenet portal, low-level i/face */ +/*************************************************/ + +/* Used by all portal interrupt registers except 'inhibit'. NB, some of these + * definitions are exported for use by the bman_irqsource_***() APIs, so are + * commented-out here. */ +#if 0 +#define BM_PIRQ_RCRI 0x00000002 /* RCR Ring (below threshold) */ +#define BM_PIRQ_BSCN 0x00000001 /* Buffer depletion State Change */ +#endif +/* This mask contains all the "irqsource" bits visible to API users */ +#define BM_PIRQ_VISIBLE (BM_PIRQ_RCRI | BM_PIRQ_BSCN) + +/* These are bm__(). So for example, bm_disable_write() means "write + * the disable register" rather than "disable the ability to write". */ +#define bm_isr_status_read(bm) __bm_isr_read(bm, bm_isr_status) +#define bm_isr_status_clear(bm, m) __bm_isr_write(bm, bm_isr_status, m) +#define bm_isr_enable_read(bm) __bm_isr_read(bm, bm_isr_enable) +#define bm_isr_enable_write(bm, v) __bm_isr_write(bm, bm_isr_enable, v) +#define bm_isr_disable_read(bm) __bm_isr_read(bm, bm_isr_disable) +#define bm_isr_disable_write(bm, v) __bm_isr_write(bm, bm_isr_disable, v) +#define bm_isr_inhibit(bm) __bm_isr_write(bm, bm_isr_inhibit, 1) +#define bm_isr_uninhibit(bm) __bm_isr_write(bm, bm_isr_inhibit, 0) + +/* Allocate/release an unreserved buffer pool id */ +int bm_pool_new(u32 *bpid); +void bm_pool_free(u32 bpid); + +#ifdef CONFIG_FSL_BMAN_CONFIG +/* Set depletion thresholds associated with a buffer pool. Requires that the + * operating system have access to Bman CCSR (ie. compiled in support and + * run-time access courtesy of the device-tree). */ +int bm_pool_set(u32 bpid, const u32 *thresholds); +#define BM_POOL_THRESH_SW_ENTER 0 +#define BM_POOL_THRESH_SW_EXIT 1 +#define BM_POOL_THRESH_HW_ENTER 2 +#define BM_POOL_THRESH_HW_EXIT 3 + +#endif /* CONFIG_FSL_BMAN_CONFIG */ + --- linux-3.13.0.orig/drivers/staging/fsl_qbman/bman_test.c +++ linux-3.13.0/drivers/staging/fsl_qbman/bman_test.c @@ -0,0 +1,57 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "bman_test.h" + +MODULE_AUTHOR("Geoff Thorpe"); +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_DESCRIPTION("Bman testing"); + +static int test_init(void) +{ +#ifdef CONFIG_FSL_BMAN_TEST_HIGH + int loop = 1; + while (loop--) + bman_test_high(); +#endif +#ifdef CONFIG_FSL_BMAN_TEST_THRESH + bman_test_thresh(); +#endif + return 0; +} + +static void test_exit(void) +{ +} + +module_init(test_init); +module_exit(test_exit); + --- linux-3.13.0.orig/drivers/staging/fsl_qbman/bman_test.h +++ linux-3.13.0/drivers/staging/fsl_qbman/bman_test.h @@ -0,0 +1,92 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +void bman_test_high(void); +void bman_test_thresh(void); + +static inline void __hexdump(unsigned long start, unsigned long end, + unsigned long p, size_t sz, unsigned char *c) +{ + while (start < end) { + unsigned int pos = 0; + char buf[64]; + int nl = 0; + pos += sprintf(buf + pos, "%08lx: ", start); + do { + if ((start < p) || (start >= (p + sz))) + pos += sprintf(buf + pos, ".."); + else + pos += sprintf(buf + pos, "%02x", *(c++)); + if (!(++start & 15)) { + buf[pos++] = '\n'; + nl = 1; + } else { + nl = 0; + if(!(start & 1)) + buf[pos++] = ' '; + if(!(start & 3)) + buf[pos++] = ' '; + } + } while (start & 15); + if (!nl) + buf[pos++] = '\n'; + buf[pos] = '\0'; + pr_info("%s", buf); + } +} +static inline void hexdump(void *ptr, size_t sz) +{ + unsigned long p = (unsigned long)ptr; + unsigned long start = p & ~(unsigned long)15; + unsigned long end = (p + sz + 15) & ~(unsigned long)15; + unsigned char *c = ptr; + __hexdump(start, end, p, sz, c); +} +static inline void hexdump_by_cl(void *ptr, size_t sz) +{ + unsigned long p = (unsigned long)ptr; + unsigned long start = p & ~(unsigned long)63; + unsigned long end = (p + sz + 63) & ~(unsigned long)63; + unsigned char *c = ptr; + __hexdump(start, end, p, sz, c); +} + --- linux-3.13.0.orig/drivers/staging/fsl_qbman/bman_test_high.c +++ linux-3.13.0/drivers/staging/fsl_qbman/bman_test_high.c @@ -0,0 +1,181 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "bman_test.h" +#include "bman_private.h" + +/*************/ +/* constants */ +/*************/ + +#define PORTAL_OPAQUE (void *)0xf00dbeef +#define POOL_OPAQUE (void *)0xdeadabba +#define NUM_BUFS 93 +#define LOOPS 3 +#define BMAN_TOKEN_MASK 0x00FFFFFFFFFFLLU + +/***************/ +/* global vars */ +/***************/ + +static struct bman_pool *pool; +static int depleted; +static struct bm_buffer bufs_in[NUM_BUFS] ____cacheline_aligned; +static struct bm_buffer bufs_out[NUM_BUFS] ____cacheline_aligned; +static int bufs_received; + +/* Predeclare the callback so we can instantiate pool parameters */ +static void depletion_cb(struct bman_portal *, struct bman_pool *, void *, int); + +/**********************/ +/* internal functions */ +/**********************/ + +static void bufs_init(void) +{ + int i; + for (i = 0; i < NUM_BUFS; i++) + bm_buffer_set64(&bufs_in[i], 0xfedc01234567LLU * i); + bufs_received = 0; +} + +static inline int bufs_cmp(const struct bm_buffer *a, const struct bm_buffer *b) +{ + if (bman_ip_rev == BMAN_REV20) { + /* On SoCs with Bman revison 2.0, Bman only respects the 40 + * LS-bits of buffer addresses, masking off the upper 8-bits on + * release commands. The API provides for 48-bit addresses + * because some SoCs support all 48-bits. When generating + * garbage addresses for testing, we either need to zero the + * upper 8-bits when releasing to Bman (otherwise we'll be + * disappointed when the buffers we acquire back from Bman + * don't match), or we need to mask the upper 8-bits off when + * comparing. We do the latter. + */ + if ((bm_buffer_get64(a) & BMAN_TOKEN_MASK) + < (bm_buffer_get64(b) & BMAN_TOKEN_MASK)) + return -1; + if ((bm_buffer_get64(a) & BMAN_TOKEN_MASK) + > (bm_buffer_get64(b) & BMAN_TOKEN_MASK)) + return 1; + } else { + if (bm_buffer_get64(a) < bm_buffer_get64(b)) + return -1; + if (bm_buffer_get64(a) > bm_buffer_get64(b)) + return 1; + } + + return 0; +} + +static void bufs_confirm(void) +{ + int i, j; + for (i = 0; i < NUM_BUFS; i++) { + int matches = 0; + for (j = 0; j < NUM_BUFS; j++) + if (!bufs_cmp(&bufs_in[i], &bufs_out[j])) + matches++; + BUG_ON(matches != 1); + } +} + +/********/ +/* test */ +/********/ + +static void depletion_cb(struct bman_portal *__portal, struct bman_pool *__pool, + void *pool_ctx, int __depleted) +{ + BUG_ON(__pool != pool); + BUG_ON(pool_ctx != POOL_OPAQUE); + depleted = __depleted; +} + +void bman_test_high(void) +{ + struct bman_pool_params pparams = { + .flags = BMAN_POOL_FLAG_DEPLETION | BMAN_POOL_FLAG_DYNAMIC_BPID, + .cb = depletion_cb, + .cb_ctx = POOL_OPAQUE, + }; + int i, loops = LOOPS; + + bufs_init(); + + pr_info("BMAN: --- starting high-level test ---\n"); + + pool = bman_new_pool(&pparams); + BUG_ON(!pool); + + /*******************/ + /* Release buffers */ + /*******************/ +do_loop: + i = 0; + while (i < NUM_BUFS) { + u32 flags = BMAN_RELEASE_FLAG_WAIT; + int num = 8; + if ((i + num) > NUM_BUFS) + num = NUM_BUFS - i; + if ((i + num) == NUM_BUFS) + flags |= BMAN_RELEASE_FLAG_WAIT_SYNC; + if (bman_release(pool, bufs_in + i, num, flags)) + panic("bman_release() failed\n"); + i += num; + } + + /*******************/ + /* Acquire buffers */ + /*******************/ + while (i > 0) { + int tmp, num = 8; + if (num > i) + num = i; + tmp = bman_acquire(pool, bufs_out + i - num, num, 0); + BUG_ON(tmp != num); + i -= num; + } + i = bman_acquire(pool, NULL, 1, 0); + BUG_ON(i > 0); + + bufs_confirm(); + + if (--loops) + goto do_loop; + + /************/ + /* Clean up */ + /************/ + bman_free_pool(pool); + pr_info("BMAN: --- finished high-level test ---\n"); +} + --- linux-3.13.0.orig/drivers/staging/fsl_qbman/bman_test_thresh.c +++ linux-3.13.0/drivers/staging/fsl_qbman/bman_test_thresh.c @@ -0,0 +1,197 @@ +/* Copyright 2010-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "bman_test.h" + +/* Test constants */ +#define TEST_NUMBUFS 129728 +#define TEST_EXIT 129536 +#define TEST_ENTRY 129024 + +struct affine_test_data { + struct task_struct *t; + int cpu; + int expect_affinity; + int drain; + int num_enter; + int num_exit; + struct list_head node; + struct completion wakethread; + struct completion wakeparent; +}; + +static void cb_depletion(struct bman_portal *portal, + struct bman_pool *pool, + void *opaque, + int depleted) +{ + struct affine_test_data *data = opaque; + int c = smp_processor_id(); + pr_info("cb_depletion: bpid=%d, depleted=%d, cpu=%d, original=%d\n", + bman_get_params(pool)->bpid, depleted, c, data->cpu); + /* We should be executing on the CPU of the thread that owns the pool if + * and that CPU has an affine portal (ie. it isn't slaved). */ + BUG_ON((c != data->cpu) && data->expect_affinity); + BUG_ON((c == data->cpu) && !data->expect_affinity); + if (depleted) + data->num_enter++; + else + data->num_exit++; +} + +/* Params used to set up a pool, this also dynamically allocates a BPID */ +struct bman_pool_params params_nocb = { + .flags = BMAN_POOL_FLAG_DYNAMIC_BPID | BMAN_POOL_FLAG_THRESH, + .thresholds = { TEST_ENTRY, TEST_EXIT, 0, 0 } +}; + +/* Params used to set up each cpu's pool with callbacks enabled */ +struct bman_pool_params params_cb = { + .bpid = 0, /* will be replaced to match pool_nocb */ + .flags = BMAN_POOL_FLAG_DEPLETION, + .cb = cb_depletion +}; + +static struct bman_pool *pool_nocb; +static LIST_HEAD(threads); + +static int affine_test(void *__data) +{ + struct bman_pool *pool; + struct affine_test_data *data = __data; + struct bman_pool_params my_params = params_cb; + + pr_info("thread %d: starting\n", data->cpu); + /* create the pool */ + my_params.cb_ctx = data; + pool = bman_new_pool(&my_params); + BUG_ON(!pool); + complete(&data->wakeparent); + wait_for_completion(&data->wakethread); + init_completion(&data->wakethread); + + /* if we're the drainer, we get signalled for that */ + if (data->drain) { + struct bm_buffer buf; + int ret; + pr_info("thread %d: draining...\n", data->cpu); + do { + ret = bman_acquire(pool, &buf, 1, 0); + } while (ret > 0); + pr_info("thread %d: draining done.\n", data->cpu); + complete(&data->wakeparent); + wait_for_completion(&data->wakethread); + init_completion(&data->wakethread); + } + + /* cleanup */ + bman_free_pool(pool); + while (!kthread_should_stop()) + cpu_relax(); + pr_info("thread %d: exiting\n", data->cpu); + return 0; +} + +static struct affine_test_data *start_affine_test(int cpu, int drain) +{ + struct affine_test_data *data = kmalloc(sizeof(*data), GFP_KERNEL); + + if (!data) + return NULL; + data->cpu = cpu; + data->expect_affinity = cpumask_test_cpu(cpu, bman_affine_cpus()); + data->drain = drain; + data->num_enter = 0; + data->num_exit = 0; + init_completion(&data->wakethread); + init_completion(&data->wakeparent); + list_add_tail(&data->node, &threads); + data->t = kthread_create(affine_test, data, "threshtest%d", cpu); + BUG_ON(IS_ERR(data->t)); + kthread_bind(data->t, cpu); + wake_up_process(data->t); + return data; +} + +void bman_test_thresh(void) +{ + int loop = TEST_NUMBUFS; + int ret, num_cpus = 0; + struct affine_test_data *data, *drainer = NULL; + + pr_info("bman_test_thresh: start\n"); + + /* allocate a BPID and seed it */ + pool_nocb = bman_new_pool(¶ms_nocb); + BUG_ON(!pool_nocb); + while (loop--) { + struct bm_buffer buf; + bm_buffer_set64(&buf, 0x0badbeef + loop); + ret = bman_release(pool_nocb, &buf, 1, + BMAN_RELEASE_FLAG_WAIT); + BUG_ON(ret); + } + while (!bman_rcr_is_empty()) + cpu_relax(); + pr_info("bman_test_thresh: buffers are in\n"); + + /* create threads and wait for them to create pools */ + params_cb.bpid = bman_get_params(pool_nocb)->bpid; + for_each_cpu(loop, cpu_online_mask) { + data = start_affine_test(loop, drainer ? 0 : 1); + BUG_ON(!data); + if (!drainer) + drainer = data; + num_cpus++; + wait_for_completion(&data->wakeparent); + } + + /* signal the drainer to start draining */ + complete(&drainer->wakethread); + wait_for_completion(&drainer->wakeparent); + init_completion(&drainer->wakeparent); + + /* tear down */ + list_for_each_entry_safe(data, drainer, &threads, node) { + complete(&data->wakethread); + ret = kthread_stop(data->t); + BUG_ON(ret); + list_del(&data->node); + /* check that we get the expected callbacks (and no others) */ + BUG_ON(data->num_enter != 1); + BUG_ON(data->num_exit != 0); + kfree(data); + } + bman_free_pool(pool_nocb); + + pr_info("bman_test_thresh: done\n"); +} + --- linux-3.13.0.orig/drivers/staging/fsl_qbman/dpa_sys.h +++ linux-3.13.0/drivers/staging/fsl_qbman/dpa_sys.h @@ -0,0 +1,324 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef DPA_SYS_H +#define DPA_SYS_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* When copying aligned words or shorts, try to avoid memcpy() */ +#define CONFIG_TRY_BETTER_MEMCPY + +/* This takes a "phandle" and dereferences to the cpu device-tree node, + * returning the cpu index. Returns negative error codes. */ +static inline int check_cpu_phandle(phandle ph) +{ + const u32 *cpu_val; + struct device_node *tmp_node = of_find_node_by_phandle(ph); + int cpu, ret; + + if (!tmp_node) { + pr_err("Bad 'cpu-handle'\n"); + return -EINVAL; + } + cpu_val = of_get_property(tmp_node, "reg", &ret); + if (!cpu_val || (ret != sizeof(*cpu_val))) { + pr_err("Can't get %s property 'reg'\n", tmp_node->full_name); + return -ENODEV; + } + for_each_present_cpu(cpu) { + if (*cpu_val == get_hard_smp_processor_id(cpu)) + goto done; + } + pr_err("Invalid cpu index %d in %s\n", *cpu_val, tmp_node->full_name); + return -ENODEV; +done: + of_node_put(tmp_node); + return cpu; +} + +/* Handle portals destined for USDPAA (user-space). + * + * The UIO layer is mostly Qman/Bman-agnostic, however the rest of the driver is + * separated along interface and implementation lines. So each Qman/Bman driver + * instantiates a dpa_uio_class and links dpa_uio_portal objects into it. If + * the dpa_uio driver module is built, it queries these two classes and creates + * the UIO devices accordingly. + */ +struct dpa_uio_class { + struct list_head list; + const char *dev_prefix; +}; +struct dpa_uio_portal { + enum { + dpa_uio_portal_bman, + dpa_uio_portal_qman, + } type; + union { + const struct bm_portal_config *bm_cfg; + const struct qm_portal_config *qm_cfg; + }; + struct list_head node; +}; +const struct dpa_uio_class *dpa_uio_bman(void); +const struct dpa_uio_class *dpa_uio_qman(void); + +/* These stubs are re-mapped to hypervisor+failover features in kernel trees + * that contain that support. */ +static inline int fsl_dpa_should_recover(void) +{ + return 0; +} +static inline int pamu_enable_liodn(struct device_node *n, int i) +{ + return 0; +} +/***********************/ +/* Misc inline assists */ +/***********************/ + +/* TODO: NB, we currently assume that hwsync() and lwsync() imply compiler + * barriers and that dcb*() won't fall victim to compiler or execution + * reordering with respect to other code/instructions that manipulate the same + * cacheline. */ +#define hwsync() \ + do { \ + __asm__ __volatile__ ("sync" : : : "memory"); \ + } while(0) +#define lwsync() \ + do { \ + __asm__ __volatile__ (stringify_in_c(LWSYNC) : : : "memory"); \ + } while(0) +#define dcbf(p) \ + do { \ + __asm__ __volatile__ ("dcbf 0,%0" : : "r" (p) : "memory"); \ + } while(0) +#define dcbt_ro(p) \ + do { \ + __asm__ __volatile__ ("dcbt 0,%0" : : "r" (p)); \ + } while(0) +#define dcbt_rw(p) \ + do { \ + __asm__ __volatile__ ("dcbtst 0,%0" : : "r" (p)); \ + } while(0) +#define dcbi(p) dcbf(p) +#ifdef CONFIG_PPC_E500MC +#define dcbzl(p) \ + do { \ + __asm__ __volatile__ ("dcbzl 0,%0" : : "r" (p)); \ + } while (0) +#define dcbz_64(p) \ + do { \ + dcbzl(p); \ + } while (0) +#define dcbf_64(p) \ + do { \ + dcbf(p); \ + } while (0) +/* Commonly used combo */ +#define dcbit_ro(p) \ + do { \ + dcbi(p); \ + dcbt_ro(p); \ + } while (0) +#else +#define dcbz(p) \ + do { \ + __asm__ __volatile__ ("dcbz 0,%0" : : "r" (p)); \ + } while (0) +#define dcbz_64(p) \ + do { \ + dcbz((u32)p + 32); \ + dcbz(p); \ + } while (0) +#define dcbf_64(p) \ + do { \ + dcbf((u32)p + 32); \ + dcbf(p); \ + } while (0) +/* Commonly used combo */ +#define dcbit_ro(p) \ + do { \ + dcbi(p); \ + dcbi((u32)p + 32); \ + dcbt_ro(p); \ + dcbt_ro((u32)p + 32); \ + } while (0) +#endif /* CONFIG_PPC_E500MC */ + +static inline u64 mfatb(void) +{ + u32 hi, lo, chk; + do { + hi = mfspr(SPRN_ATBU); + lo = mfspr(SPRN_ATBL); + chk = mfspr(SPRN_ATBU); + } while (unlikely(hi != chk)); + return ((u64)hi << 32) | (u64)lo; +} + +#ifdef CONFIG_FSL_DPA_CHECKING +#define DPA_ASSERT(x) \ + do { \ + if (!(x)) { \ + pr_crit("ASSERT: (%s:%d) %s\n", __FILE__, __LINE__, \ + __stringify_1(x)); \ + dump_stack(); \ + panic("assertion failure"); \ + } \ + } while(0) +#else +#define DPA_ASSERT(x) +#endif + +/* memcpy() stuff - when you know alignments in advance */ +#ifdef CONFIG_TRY_BETTER_MEMCPY +static inline void copy_words(void *dest, const void *src, size_t sz) +{ + u32 *__dest = dest; + const u32 *__src = src; + size_t __sz = sz >> 2; + BUG_ON((unsigned long)dest & 0x3); + BUG_ON((unsigned long)src & 0x3); + BUG_ON(sz & 0x3); + while (__sz--) + *(__dest++) = *(__src++); +} +static inline void copy_shorts(void *dest, const void *src, size_t sz) +{ + u16 *__dest = dest; + const u16 *__src = src; + size_t __sz = sz >> 1; + BUG_ON((unsigned long)dest & 0x1); + BUG_ON((unsigned long)src & 0x1); + BUG_ON(sz & 0x1); + while (__sz--) + *(__dest++) = *(__src++); +} +static inline void copy_bytes(void *dest, const void *src, size_t sz) +{ + u8 *__dest = dest; + const u8 *__src = src; + while (sz--) + *(__dest++) = *(__src++); +} +#else +#define copy_words memcpy +#define copy_shorts memcpy +#define copy_bytes memcpy +#endif + +/************/ +/* RB-trees */ +/************/ + +/* We encapsulate RB-trees so that its easier to use non-linux forms in + * non-linux systems. This also encapsulates the extra plumbing that linux code + * usually provides when using RB-trees. This encapsulation assumes that the + * data type held by the tree is u32. */ + +struct dpa_rbtree { + struct rb_root root; +}; +#define DPA_RBTREE { .root = RB_ROOT } + +static inline void dpa_rbtree_init(struct dpa_rbtree *tree) +{ + tree->root = RB_ROOT; +} + +#define IMPLEMENT_DPA_RBTREE(name, type, node_field, val_field) \ +static inline int name##_push(struct dpa_rbtree *tree, type *obj) \ +{ \ + struct rb_node *parent = NULL, **p = &tree->root.rb_node; \ + while (*p) { \ + u32 item; \ + parent = *p; \ + item = rb_entry(parent, type, node_field)->val_field; \ + if (obj->val_field < item) \ + p = &parent->rb_left; \ + else if (obj->val_field > item) \ + p = &parent->rb_right; \ + else \ + return -EBUSY; \ + } \ + rb_link_node(&obj->node_field, parent, p); \ + rb_insert_color(&obj->node_field, &tree->root); \ + return 0; \ +} \ +static inline void name##_del(struct dpa_rbtree *tree, type *obj) \ +{ \ + rb_erase(&obj->node_field, &tree->root); \ +} \ +static inline type *name##_find(struct dpa_rbtree *tree, u32 val) \ +{ \ + type *ret; \ + struct rb_node *p = tree->root.rb_node; \ + while (p) { \ + ret = rb_entry(p, type, node_field); \ + if (val < ret->val_field) \ + p = p->rb_left; \ + else if (val > ret->val_field) \ + p = p->rb_right; \ + else \ + return ret; \ + } \ + return NULL; \ +} + +#endif /* DPA_SYS_H */ + --- linux-3.13.0.orig/drivers/staging/fsl_qbman/dpa_uio.c +++ linux-3.13.0/drivers/staging/fsl_qbman/dpa_uio.c @@ -0,0 +1,231 @@ +/* Copyright 2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "bman_private.h" +#include "qman_private.h" + +static const char dpa_uio_version[] = "USDPAA UIO portal driver v0.2"; + +static LIST_HEAD(uio_portal_list); + +struct dpa_uio_info { + atomic_t ref; /* exclusive, only one open() at a time */ + struct uio_info uio; + void *addr_ci; + char name[16]; /* big enough for "qman-uio-xx" */ + struct platform_device *pdev; + struct list_head node; +}; + +static int dpa_uio_open(struct uio_info *info, struct inode *inode) +{ + struct dpa_uio_info *i = container_of(info, struct dpa_uio_info, uio); + if (!atomic_dec_and_test(&i->ref)) { + atomic_inc(&i->ref); + return -EBUSY; + } + return 0; +} + +static int dpa_uio_release(struct uio_info *info, struct inode *inode) +{ + struct dpa_uio_info *i = container_of(info, struct dpa_uio_info, uio); + atomic_inc(&i->ref); + return 0; +} + +static int dpa_uio_mmap(struct uio_info *info, struct vm_area_struct *vma) +{ + struct uio_mem *mem; + struct dpa_uio_info *i = container_of(info, struct dpa_uio_info, uio); + + if (vma->vm_pgoff == 0) { + /* CENA */ + mem = &i->uio.mem[0]; + vma->vm_page_prot &= + ~(_PAGE_GUARDED | _PAGE_NO_CACHE | _PAGE_COHERENT); + } else if (vma->vm_pgoff == 1) { + /* CINH */ + mem = &i->uio.mem[1]; + vma->vm_page_prot |= _PAGE_GUARDED | _PAGE_NO_CACHE; + } else { + pr_err("%s: unknown mmap offset %d, rejecting\n", + i->name, (int)vma->vm_pgoff); + return -EINVAL; + } + if ((vma->vm_end - vma->vm_start) != mem->size) { + pr_err("%s: invalid mmap() size %d, expect %d\n", + i->name, (int)(vma->vm_end - vma->vm_start), + (int)mem->size); + return -EINVAL; + } + /* FIXME: UIO appears not to support sizeof(phys_addr_t) > sizeof(void*) + * as mem->addr is 32-bit. Also, it would have been more natural (and in + * keeping with UIO's design intent) to have used the UIO_MEM_PHYS type + * for our two memory regions, and to rely on UIO's own mmap() handler + * (by not declaring our own). Unfortunately UIO does not allow any + * specification of pgprots and assumes cache-inhibited mappings for + * anything physical (see drivers/uio/uio.c, eg. uio_mmap_physical()). + * So UIO could use a couple of improvements as it is not saving us much + * on the kernel nor the user side. The first would be to use PFN + * instead of a raw base address in the uio_mem structs (same reason as + * everywhere else, this covers 4096 times as much address space, and + * why waste lower bits given it has to be page-aligned anyway?). The + * second is to add a pgprot field to uio_mem to be used with _PHYS + * mappings. (Or use a new _PHYS_PGPROT type, for backwards + * compatibility?) */ + /* Normally, we'd ">>PAGE_SHIFT" the mem->addr value here, but due to + * the 36-bit issue, it is already stored as a PFN. */ + return io_remap_pfn_range(vma, vma->vm_start, mem->addr, mem->size, + vma->vm_page_prot); +} + +static irqreturn_t dpa_uio_irq_handler(int irq, struct uio_info *info) +{ + struct dpa_uio_info *i = container_of(info, struct dpa_uio_info, uio); + /* This is the only code outside the regular portal driver that + * manipulates any portal register, so rather than breaking that + * encapsulation I am simply hard-coding the offset to the inhibit + * register here. */ + out_be32(i->addr_ci + 0xe0c, ~(u32)0); + return IRQ_HANDLED; +} + +static void __init dpa_uio_portal_init(struct dpa_uio_portal *p, + const struct dpa_uio_class *c) +{ + struct dpa_uio_info *info; + const struct resource *res; + u32 index; + int irq, ret; + + /* allocate 'info' */ + info = kzalloc(sizeof(*info), GFP_KERNEL); + if (!info) + return; + atomic_set(&info->ref, 1); + if (p->type == dpa_uio_portal_bman) { + res = &p->bm_cfg->addr_phys[0]; + index = p->bm_cfg->public_cfg.index; + irq = p->bm_cfg->public_cfg.irq; + } else { + res = &p->qm_cfg->addr_phys[0]; + index = p->qm_cfg->public_cfg.index; + irq = p->qm_cfg->public_cfg.irq; + } + /* We need to map the cache-inhibited region in the kernel for + * interrupt-handling purposes. */ + info->addr_ci = ioremap_prot(res[BM_ADDR_CI].start, + resource_size(&res[BM_ADDR_CI]), + _PAGE_GUARDED | _PAGE_NO_CACHE); + /* Name the UIO device according to the cell-index. It's supposed to be + * unique for each device class (Qman/Bman), and is also a convenient + * way for user-space to find the UIO device that corresponds to a given + * portal device-tree node. */ + sprintf(info->name, "%s%x", c->dev_prefix, index); + info->pdev = platform_device_alloc(info->name, -1); + if (!info->pdev) { + iounmap(info->addr_ci); + kfree(info); + pr_err("dpa_uio_portal: platform_device_alloc() failed\n"); + return; + } + ret = platform_device_add(info->pdev); + if (ret) { + platform_device_put(info->pdev); + iounmap(info->addr_ci); + kfree(info); + pr_err("dpa_uio_portal: platform_device_add() failed\n"); + return; + } + info->uio.name = info->name; + info->uio.version = dpa_uio_version; + /* Work around the 36-bit UIO issue by bit-shifting the addresses */ + info->uio.mem[BM_ADDR_CE].name = "cena"; + info->uio.mem[BM_ADDR_CE].addr = res[BM_ADDR_CE].start >> PAGE_SHIFT; + info->uio.mem[BM_ADDR_CE].size = resource_size(&res[BM_ADDR_CE]); + info->uio.mem[BM_ADDR_CI].name = "cinh"; + info->uio.mem[BM_ADDR_CI].addr = res[BM_ADDR_CI].start >> PAGE_SHIFT; + info->uio.mem[BM_ADDR_CI].size = resource_size(&res[BM_ADDR_CI]); + info->uio.irq = irq; + info->uio.handler = dpa_uio_irq_handler; + info->uio.mmap = dpa_uio_mmap; + info->uio.open = dpa_uio_open; + info->uio.release = dpa_uio_release; + ret = uio_register_device(&info->pdev->dev, &info->uio); + if (ret) { + platform_device_del(info->pdev); + platform_device_put(info->pdev); + iounmap(info->addr_ci); + kfree(info); + pr_err("dpa_uio_portal: UIO registration failed\n"); + return; + } + list_add_tail(&info->node, &uio_portal_list); + pr_info("USDPAA portal initialised, %s\n", info->name); +} + +static int __init dpa_uio_init(void) +{ + const struct dpa_uio_class *classes[3], **c = classes; + classes[0] = dpa_uio_bman(); + classes[1] = dpa_uio_qman(); + classes[2] = NULL; + while (*c) { + struct dpa_uio_portal *p; + list_for_each_entry(p, &(*c)->list, node) + dpa_uio_portal_init(p, *c); + c++; + } + pr_info("USDPAA portal layer loaded\n"); + return 0; +} + +static void __exit dpa_uio_exit(void) +{ + struct dpa_uio_info *info, *tmp; + list_for_each_entry_safe(info, tmp, &uio_portal_list, node) { + list_del(&info->node); + uio_unregister_device(&info->uio); + platform_device_del(info->pdev); + platform_device_put(info->pdev); + iounmap(info->addr_ci); + pr_info("USDPAA portal removed, %s\n", info->name); + kfree(info); + } + pr_info("USDPAA portal layer unloaded\n"); +} + + +module_init(dpa_uio_init) +module_exit(dpa_uio_exit) +MODULE_LICENSE("GPL"); + --- linux-3.13.0.orig/drivers/staging/fsl_qbman/qman_config.c +++ linux-3.13.0/drivers/staging/fsl_qbman/qman_config.c @@ -0,0 +1,1013 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef CONFIG_SMP +#include /* get_hard_smp_processor_id() */ +#endif + +#include +#include + +#include "qman_private.h" + +/* Last updated for v00.800 of the BG */ + +/* Register offsets */ +#define REG_QCSP_PID_CFG(n) (0x0000 + ((n) * 0x10)) +#define REG_QCSP_IO_CFG(n) (0x0004 + ((n) * 0x10)) +#define REG_QCSP_DD_CFG(n) (0x000c + ((n) * 0x10)) +#define REG_DD_CFG 0x0200 +#define REG_DCP_CFG(n) (0x0300 + ((n) * 0x10)) +#define REG_DCP_DD_CFG(n) (0x0304 + ((n) * 0x10)) +#define REG_DCP_DLM_AVG(n) (0x030c + ((n) * 0x10)) +#define REG_PFDR_FPC 0x0400 +#define REG_PFDR_FP_HEAD 0x0404 +#define REG_PFDR_FP_TAIL 0x0408 +#define REG_PFDR_FP_LWIT 0x0410 +#define REG_PFDR_CFG 0x0414 +#define REG_SFDR_CFG 0x0500 +#define REG_SFDR_IN_USE 0x0504 +#define REG_WQ_CS_CFG(n) (0x0600 + ((n) * 0x04)) +#define REG_WQ_DEF_ENC_WQID 0x0630 +#define REG_WQ_SC_DD_CFG(n) (0x640 + ((n) * 0x04)) +#define REG_WQ_PC_DD_CFG(n) (0x680 + ((n) * 0x04)) +#define REG_WQ_DC0_DD_CFG(n) (0x6c0 + ((n) * 0x04)) +#define REG_WQ_DC1_DD_CFG(n) (0x700 + ((n) * 0x04)) +#define REG_WQ_DCn_DD_CFG(n) (0x6c0 + ((n) * 0x40)) /* n=2,3 */ +#define REG_CM_CFG 0x0800 +#define REG_ECSR 0x0a00 +#define REG_ECIR 0x0a04 +#define REG_EADR 0x0a08 +#define REG_EDATA(n) (0x0a10 + ((n) * 0x04)) +#define REG_SBEC(n) (0x0a80 + ((n) * 0x04)) +#define REG_MCR 0x0b00 +#define REG_MCP(n) (0x0b04 + ((n) * 0x04)) +#define REG_HID_CFG 0x0bf0 +#define REG_IDLE_STAT 0x0bf4 +#define REG_IP_REV_1 0x0bf8 +#define REG_IP_REV_2 0x0bfc +#define REG_FQD_BARE 0x0c00 +#define REG_PFDR_BARE 0x0c20 +#define REG_offset_BAR 0x0004 /* relative to REG_[FQD|PFDR]_BARE */ +#define REG_offset_AR 0x0010 /* relative to REG_[FQD|PFDR]_BARE */ +#define REG_QCSP_BARE 0x0c80 +#define REG_QCSP_BAR 0x0c84 +#define REG_CI_SCHED_CFG 0x0d00 +#define REG_SRCIDR 0x0d04 +#define REG_LIODNR 0x0d08 +#define REG_CI_RLM_AVG 0x0d14 +#define REG_ERR_ISR 0x0e00 /* + "enum qm_isr_reg" */ + +/* Assists for QMAN_MCR */ +#define MCR_INIT_PFDR 0x01000000 +#define MCR_get_rslt(v) (u8)((v) >> 24) +#define MCR_rslt_idle(r) (!rslt || (rslt >= 0xf0)) +#define MCR_rslt_ok(r) (rslt == 0xf0) +#define MCR_rslt_eaccess(r) (rslt == 0xf8) +#define MCR_rslt_inval(r) (rslt == 0xff) + +struct qman; + +/* Follows WQ_CS_CFG0-5 */ +enum qm_wq_class { + qm_wq_portal = 0, + qm_wq_pool = 1, + qm_wq_fman0 = 2, + qm_wq_fman1 = 3, + qm_wq_caam = 4, + qm_wq_pme = 5, + qm_wq_first = qm_wq_portal, + qm_wq_last = qm_wq_pme +}; + +/* Follows FQD_[BARE|BAR|AR] and PFDR_[BARE|BAR|AR] */ +enum qm_memory { + qm_memory_fqd, + qm_memory_pfdr +}; + +/* Used by all error interrupt registers except 'inhibit' */ +#define QM_EIRQ_CIDE 0x20000000 /* Corenet Initiator Data Error */ +#define QM_EIRQ_CTDE 0x10000000 /* Corenet Target Data Error */ +#define QM_EIRQ_CITT 0x08000000 /* Corenet Invalid Target Transaction */ +#define QM_EIRQ_PLWI 0x04000000 /* PFDR Low Watermark */ +#define QM_EIRQ_MBEI 0x02000000 /* Multi-bit ECC Error */ +#define QM_EIRQ_SBEI 0x01000000 /* Single-bit ECC Error */ +#define QM_EIRQ_PEBI 0x00800000 /* PFDR Enqueues Blocked Interrupt */ +#define QM_EIRQ_ICVI 0x00010000 /* Invalid Command Verb */ +#define QM_EIRQ_IDDI 0x00000800 /* Invalid Dequeue (Direct-connect) */ +#define QM_EIRQ_IDFI 0x00000400 /* Invalid Dequeue FQ */ +#define QM_EIRQ_IDSI 0x00000200 /* Invalid Dequeue Source */ +#define QM_EIRQ_IDQI 0x00000100 /* Invalid Dequeue Queue */ +#define QM_EIRQ_IEOI 0x00000008 /* Invalid Enqueue Overflow */ +#define QM_EIRQ_IESI 0x00000004 /* Invalid Enqueue State */ +#define QM_EIRQ_IECI 0x00000002 /* Invalid Enqueue Channel */ +#define QM_EIRQ_IEQI 0x00000001 /* Invalid Enqueue Queue */ + +/* QMAN_ECIR valid error bit */ +#define PORTAL_ECSR_ERR (QM_EIRQ_IEQI | QM_EIRQ_IESI | QM_EIRQ_IEOI | \ + QM_EIRQ_IDQI | QM_EIRQ_IDSI | QM_EIRQ_IDFI | \ + QM_EIRQ_IDDI | QM_EIRQ_ICVI) +#define FQID_ECSR_ERR (QM_EIRQ_IEQI | QM_EIRQ_IECI | QM_EIRQ_IESI | \ + QM_EIRQ_IEOI | QM_EIRQ_IDQI | QM_EIRQ_IDFI) + +union qman_ecir { + u32 ecir_raw; + struct { + u32 __reserved:2; + u32 portal_type:1; + u32 portal_num:5; + u32 fqid:24; + } __packed info; +}; + +union qman_eadr { + u32 eadr_raw; + struct { + u32 __reserved1:4; + u32 memid:4; + u32 __reserved2:12; + u32 eadr:12; + } __packed info; +}; + +struct qman_hwerr_txt { + u32 mask; + const char *txt; +}; + +#define QMAN_HWE_TXT(a, b) { .mask = QM_EIRQ_##a, .txt = b } + +static const struct qman_hwerr_txt qman_hwerr_txts[] = { + QMAN_HWE_TXT(CIDE, "Corenet Initiator Data Error"), + QMAN_HWE_TXT(CTDE, "Corenet Target Data Error"), + QMAN_HWE_TXT(CITT, "Corenet Invalid Target Transaction"), + QMAN_HWE_TXT(PLWI, "PFDR Low Watermark"), + QMAN_HWE_TXT(MBEI, "Multi-bit ECC Error"), + QMAN_HWE_TXT(SBEI, "Single-bit ECC Error"), + QMAN_HWE_TXT(PEBI, "PFDR Enqueues Blocked Interrupt"), + QMAN_HWE_TXT(ICVI, "Invalid Command Verb"), + QMAN_HWE_TXT(IDDI, "Invalid Dequeue (Direct-connect)"), + QMAN_HWE_TXT(IDFI, "Invalid Dequeue FQ"), + QMAN_HWE_TXT(IDSI, "Invalid Dequeue Source"), + QMAN_HWE_TXT(IDQI, "Invalid Dequeue Queue"), + QMAN_HWE_TXT(IEOI, "Invalid Enqueue Overflow"), + QMAN_HWE_TXT(IESI, "Invalid Enqueue State"), + QMAN_HWE_TXT(IECI, "Invalid Enqueue Channel"), + QMAN_HWE_TXT(IEQI, "Invalid Enqueue Queue") +}; +#define QMAN_HWE_COUNT (sizeof(qman_hwerr_txts)/sizeof(struct qman_hwerr_txt)) + +struct qman_error_info_mdata { + u16 addr_mask; + u16 bits; + const char *txt; +}; + +#define QMAN_ERR_MDATA(a, b, c) { .addr_mask = a, .bits = b, .txt = c} +static const struct qman_error_info_mdata error_mdata[] = { + QMAN_ERR_MDATA(0x01FF, 24, "FQD cache tag memory 0"), + QMAN_ERR_MDATA(0x01FF, 24, "FQD cache tag memory 1"), + QMAN_ERR_MDATA(0x01FF, 24, "FQD cache tag memory 2"), + QMAN_ERR_MDATA(0x01FF, 24, "FQD cache tag memory 3"), + QMAN_ERR_MDATA(0x0FFF, 512, "FQD cache memory"), + QMAN_ERR_MDATA(0x07FF, 128, "SFDR memory"), + QMAN_ERR_MDATA(0x01FF, 72, "WQ context memory"), + QMAN_ERR_MDATA(0x00FF, 240, "CGR memory"), + QMAN_ERR_MDATA(0x00FF, 302, "Internal Order Restoration List memory"), + QMAN_ERR_MDATA(0x01FF, 256, "SW portal ring memory"), +}; +#define QMAN_ERR_MDATA_COUNT \ + (sizeof(error_mdata)/sizeof(struct qman_error_info_mdata)) + +/* Add this in Kconfig */ +#define QMAN_ERRS_TO_UNENABLE (QM_EIRQ_PLWI | QM_EIRQ_PEBI) + +/** + * qm_err_isr__ - Manipulate global interrupt registers + * @v: for accessors that write values, this is the 32-bit value + * + * Manipulates QMAN_ERR_ISR, QMAN_ERR_IER, QMAN_ERR_ISDR, QMAN_ERR_IIR. All + * manipulations except qm_err_isr_[un]inhibit() use 32-bit masks composed of + * the QM_EIRQ_*** definitions. Note that "qm_err_isr_enable_write" means + * "write the enable register" rather than "enable the write register"! + */ +#define qm_err_isr_status_read(qm) __qm_err_isr_read(qm, qm_isr_status) +#define qm_err_isr_status_clear(qm, m) __qm_err_isr_write(qm, qm_isr_status,m) +#define qm_err_isr_enable_read(qm) __qm_err_isr_read(qm, qm_isr_enable) +#define qm_err_isr_enable_write(qm, v) __qm_err_isr_write(qm, qm_isr_enable,v) +#define qm_err_isr_disable_read(qm) __qm_err_isr_read(qm, qm_isr_disable) +#define qm_err_isr_disable_write(qm, v) __qm_err_isr_write(qm, qm_isr_disable,v) +#define qm_err_isr_inhibit(qm) __qm_err_isr_write(qm, qm_isr_inhibit,1) +#define qm_err_isr_uninhibit(qm) __qm_err_isr_write(qm, qm_isr_inhibit,0) + +/* + * TODO: unimplemented registers + * + * Keeping a list here of Qman registers I have not yet covered; + * QCSP_DD_IHRSR, QCSP_DD_IHRFR, QCSP_DD_HASR, + * DCP_DD_IHRSR, DCP_DD_IHRFR, DCP_DD_HASR, CM_CFG, + * QMAN_EECC, QMAN_SBET, QMAN_EINJ, QMAN_SBEC0-12 + */ + +/* Encapsulate "struct qman *" as a cast of the register space address. */ + +static struct qman *qm_create(void *regs) +{ + return (struct qman *)regs; +} + +static inline u32 __qm_in(struct qman *qm, u32 offset) +{ + return in_be32((void *)qm + offset); +} +static inline void __qm_out(struct qman *qm, u32 offset, u32 val) +{ + out_be32((void *)qm + offset, val); +} +#define qm_in(reg) __qm_in(qm, REG_##reg) +#define qm_out(reg, val) __qm_out(qm, REG_##reg, val) + +static u32 __qm_err_isr_read(struct qman *qm, enum qm_isr_reg n) +{ + return __qm_in(qm, REG_ERR_ISR + (n << 2)); +} + +static void __qm_err_isr_write(struct qman *qm, enum qm_isr_reg n, u32 val) +{ + __qm_out(qm, REG_ERR_ISR + (n << 2), val); +} + +#if 0 + +static void qm_set_portal(struct qman *qm, u8 swportalID, + u16 ec_tp_cfg, u16 ecd_tp_cfg) +{ + qm_out(QCSP_DD_CFG(swportalID), + ((ec_tp_cfg & 0x1ff) << 16) | (ecd_tp_cfg & 0x1ff)); +} + +static void qm_set_ddebug(struct qman *qm, u8 mdd, u8 m_cfg) +{ + qm_out(DD_CFG, ((mdd & 0x3) << 4) | (m_cfg & 0xf)); +} + +static void qm_set_dc_ddebug(struct qman *qm, enum qm_dc_portal portal, u16 ecd_tp_cfg) +{ + qm_out(DCP_DD_CFG(portal), ecd_tp_cfg & 0x1ff); +} + +static u32 qm_get_pfdr_free_pool_count(struct qman *qm) +{ + return qm_in(PFDR_FPC); +} + +static void qm_get_pfdr_free_pool(struct qman *qm, u32 *head, u32 *tail) +{ + *head = qm_in(PFDR_FP_HEAD); + *tail = qm_in(PFDR_FP_TAIL); +} + +static void qm_set_default_wq(struct qman *qm, u16 wqid) +{ + qm_out(WQ_DEF_ENC_WQID, wqid); +} + +static void qm_set_channel_ddebug(struct qman *qm, enum qm_channel channel, + u16 tp_cfg) +{ + u32 offset; + int upperhalf = 0; + if ((channel >= qm_channel_swportal0) && + (channel <= qm_channel_swportal9)) { + offset = (channel - qm_channel_swportal0); + upperhalf = offset & 0x1; + offset = REG_WQ_SC_DD_CFG(offset / 2); + } else if ((channel >= qm_channel_pool1) && + (channel <= qm_channel_pool15)) { + offset = (channel + 1 - qm_channel_pool1); + upperhalf = offset & 0x1; + offset = REG_WQ_PC_DD_CFG(offset / 2); + } else if ((channel >= qm_channel_fman0_sp0) && + (channel <= qm_channel_fman0_sp11)) { + offset = (channel - qm_channel_fman0_sp0); + upperhalf = offset & 0x1; + offset = REG_WQ_DC0_DD_CFG(offset / 2); + } + else if ((channel >= qm_channel_fman1_sp0) && + (channel <= qm_channel_fman1_sp11)) { + offset = (channel - qm_channel_fman1_sp0); + upperhalf = offset & 0x1; + offset = REG_WQ_DC1_DD_CFG(offset / 2); + } + else if (channel == qm_channel_caam) + offset = REG_WQ_DCn_DD_CFG(2); + else if (channel == qm_channel_pme) + offset = REG_WQ_DCn_DD_CFG(3); + else { + pr_crit("Illegal qm_channel type %d\n", channel); + return; + } + __qm_out(qm, offset, upperhalf ? ((u32)tp_cfg << 16) : tp_cfg); +} + +static void qm_get_details(struct qman *qm, u8 *int_options, u8 *errata, + u8 *conf_options) +{ + u32 v = qm_in(IP_REV_1); + *int_options = (v >> 16) & 0xff; + *errata = (v >> 8) & 0xff; + *conf_options = v & 0xff; +} + +static void qm_set_corenet_bar(struct qman *qm, u16 eba, u32 ba) +{ + /* choke if 'ba' isn't properly aligned */ + DPA_ASSERT(!(ba & 0x001fffff)); + qm_out(QCSP_BARE, eba); + qm_out(QCSP_BAR, ba); +} + +static u8 qm_get_corenet_sourceid(struct qman *qm) +{ + return qm_in(SRCIDR); +} + +static u16 qm_get_liodn(struct qman *qm) +{ + return qm_in(LIODNR); +} + +static void qm_set_congestion_config(struct qman *qm, u16 pres) +{ + qm_out(CM_CFG, pres); +} + +#endif + +static void qm_set_dc(struct qman *qm, enum qm_dc_portal portal, + int ed, u8 sernd) +{ + DPA_ASSERT(!ed || (portal == qm_dc_portal_fman0) || + (portal == qm_dc_portal_fman1)); + qm_out(DCP_CFG(portal), (ed ? 0x100 : 0) | (sernd & 0x1f)); +} + +static void qm_set_wq_scheduling(struct qman *qm, enum qm_wq_class wq_class, + u8 cs_elev, u8 csw2, u8 csw3, u8 csw4, u8 csw5, + u8 csw6, u8 csw7) +{ +#ifdef CONFIG_FSL_QMAN_BUG_AND_FEATURE_REV1 +#define csw(x) \ +do { \ + if (++x == 8) \ + x = 7; \ +} while (0) + if (qman_ip_rev == QMAN_REV10) { + csw(csw2); + csw(csw3); + csw(csw4); + csw(csw5); + csw(csw6); + csw(csw7); + } +#endif + qm_out(WQ_CS_CFG(wq_class), ((cs_elev & 0xff) << 24) | + ((csw2 & 0x7) << 20) | ((csw3 & 0x7) << 16) | + ((csw4 & 0x7) << 12) | ((csw5 & 0x7) << 8) | + ((csw6 & 0x7) << 4) | (csw7 & 0x7)); +} + +static void qm_set_hid(struct qman *qm) +{ +#ifdef CONFIG_FSL_QMAN_BUG_AND_FEATURE_REV1 + if (qman_ip_rev == QMAN_REV10) + qm_out(HID_CFG, 3); + else +#endif + qm_out(HID_CFG, 0); +} + +static void qm_set_corenet_initiator(struct qman *qm) +{ + qm_out(CI_SCHED_CFG, + 0x80000000 | /* write srcciv enable */ + (CONFIG_FSL_QMAN_CI_SCHED_CFG_SRCCIV << 24) | + (CONFIG_FSL_QMAN_CI_SCHED_CFG_SRQ_W << 8) | + (CONFIG_FSL_QMAN_CI_SCHED_CFG_RW_W << 4) | + CONFIG_FSL_QMAN_CI_SCHED_CFG_BMAN_W); +} + +static void qm_get_version(struct qman *qm, u16 *id, u8 *major, u8 *minor) +{ + u32 v = qm_in(IP_REV_1); + *id = (v >> 16); + *major = (v >> 8) & 0xff; + *minor = v & 0xff; +} + +static void qm_set_memory(struct qman *qm, enum qm_memory memory, u64 ba, + int enable, int prio, int stash, u32 size) +{ + u32 offset = (memory == qm_memory_fqd) ? REG_FQD_BARE : REG_PFDR_BARE; + u32 exp = ilog2(size); + /* choke if size isn't within range */ + DPA_ASSERT((size >= 4096) && (size <= 1073741824) && + is_power_of_2(size)); + /* choke if 'ba' has lower-alignment than 'size' */ + DPA_ASSERT(!(ba & (size - 1))); + __qm_out(qm, offset, upper_32_bits(ba)); + __qm_out(qm, offset + REG_offset_BAR, lower_32_bits(ba)); + __qm_out(qm, offset + REG_offset_AR, + (enable ? 0x80000000 : 0) | + (prio ? 0x40000000 : 0) | + (stash ? 0x20000000 : 0) | + (exp - 1)); +} + +static void qm_set_pfdr_threshold(struct qman *qm, u32 th, u8 k) +{ + qm_out(PFDR_FP_LWIT, th & 0xffffff); + qm_out(PFDR_CFG, k); +} + +static void qm_set_sfdr_threshold(struct qman *qm, u16 th) +{ + qm_out(SFDR_CFG, th & 0x3ff); +} + +static int qm_init_pfdr(struct qman *qm, u32 pfdr_start, u32 num) +{ + u8 rslt = MCR_get_rslt(qm_in(MCR)); + + DPA_ASSERT(pfdr_start && !(pfdr_start & 7) && !(num & 7) && num); + /* Make sure the command interface is 'idle' */ + if(!MCR_rslt_idle(rslt)) + panic("QMAN_MCR isn't idle"); + + /* Write the MCR command params then the verb */ + qm_out(MCP(0), pfdr_start ); + /* TODO: remove this - it's a workaround for a model bug that is + * corrected in more recent versions. We use the workaround until + * everyone has upgraded. */ + qm_out(MCP(1), (pfdr_start + num - 16)); + lwsync(); + qm_out(MCR, MCR_INIT_PFDR); + + /* Poll for the result */ + do { + rslt = MCR_get_rslt(qm_in(MCR)); + } while(!MCR_rslt_idle(rslt)); + if (MCR_rslt_ok(rslt)) + return 0; + if (MCR_rslt_eaccess(rslt)) + return -EACCES; + if (MCR_rslt_inval(rslt)) + return -EINVAL; + pr_crit("Unexpected result from MCR_INIT_PFDR: %02x\n", rslt); + return -ENOSYS; +} + +/*****************/ +/* Config driver */ +/*****************/ + +/* TODO: Kconfig these? */ +#define DEFAULT_FQD_SZ (PAGE_SIZE << CONFIG_FSL_QMAN_FQD_SZ) +#define DEFAULT_PFDR_SZ (PAGE_SIZE << 12) + +/* We support only one of these */ +static struct qman *qm; +static struct device_node *qm_node; + +/* Parse the property to extract the memory location and size and + * memblock_reserve() it. If it isn't supplied, memblock_alloc() the default size. */ +static __init int parse_mem_property(struct device_node *node, const char *name, + dma_addr_t *addr, size_t *sz, int zero) +{ + const u32 *pint; + int ret; + + pint = of_get_property(node, name, &ret); + if (!pint || (ret != 16)) { + pr_info("No %s property '%s', using memblock_alloc(%016zx)\n", + node->full_name, name, *sz); + *addr = memblock_alloc(*sz, *sz); + if (zero) + memset(phys_to_virt(*addr), 0, *sz); + return 0; + } + pr_info("Using %s property '%s'\n", node->full_name, name); + /* If using a "zero-pma", don't try to zero it, even if you asked */ + if (zero && of_find_property(node, "zero-pma", &ret)) { + pr_info(" it's a 'zero-pma', not zeroing from s/w\n"); + zero = 0; + } + *addr = ((u64)pint[0] << 32) | (u64)pint[1]; + *sz = ((u64)pint[2] << 32) | (u64)pint[3]; + /* Keep things simple, it's either all in the DRAM range or it's all + * outside. */ + if (*addr < memblock_end_of_DRAM()) { + BUG_ON((u64)*addr + (u64)*sz > memblock_end_of_DRAM()); + if (memblock_reserve(*addr, *sz) < 0) { + pr_err("Failed to reserve %s\n", name); + return -ENOMEM; + } + if (zero) + memset(phys_to_virt(*addr), 0, *sz); + } else if (zero) { + /* map as cacheable, non-guarded */ + void *tmpp = ioremap_prot(*addr, *sz, 0); + memset(tmpp, 0, *sz); + iounmap(tmpp); + } + return 0; +} + +/* TODO: + * - there is obviously no handling of errors, + * - the calls to qm_set_memory() hard-code the priority and CPC-stashing for + * both memory resources to zero. + */ +static int __init fsl_qman_init(struct device_node *node) +{ + struct resource res; + u32 __iomem *regs; + const char *s; + dma_addr_t fqd_a = 0, pfdr_a = 0; + size_t fqd_sz = DEFAULT_FQD_SZ, pfdr_sz = DEFAULT_PFDR_SZ; + int ret, standby = 0; + u16 id; + u8 major, minor; + + ret = of_address_to_resource(node, 0, &res); + if (ret) { + pr_err("Can't get %s property '%s'\n", node->full_name, "reg"); + return ret; + } + s = of_get_property(node, "fsl,hv-claimable", &ret); + if (s && !strcmp(s, "standby")) + standby = 1; + if (!standby) { + ret = parse_mem_property(node, "fsl,qman-fqd", + &fqd_a, &fqd_sz, 1); + BUG_ON(ret); + ret = parse_mem_property(node, "fsl,qman-pfdr", + &pfdr_a, &pfdr_sz, 0); + BUG_ON(ret); + } + /* Global configuration */ + regs = ioremap(res.start, res.end - res.start + 1); + qm = qm_create(regs); + qm_node = node; + qm_get_version(qm, &id, &major, &minor); + pr_info("Qman ver:%04x,%02x,%02x\n", id, major, minor); + if (!qman_ip_rev) { + if ((major == 1) && (minor == 0)) + qman_ip_rev = QMAN_REV10; + else if ((major == 1) && (minor == 1)) + qman_ip_rev = QMAN_REV11; + else if ((major == 1) && (minor == 2)) + qman_ip_rev = QMAN_REV12; + else if ((major == 2) && (minor == 0)) + qman_ip_rev = QMAN_REV20; + else { + pr_warning("unknown Qman version, default to rev1.1\n"); + qman_ip_rev = QMAN_REV11; + } + } + + if (standby) { + pr_info(" -> in standby mode\n"); + return 0; + } + /* FQD memory */ + qm_set_memory(qm, qm_memory_fqd, fqd_a, 1, 0, 0, fqd_sz); + /* PFDR memory */ + qm_set_memory(qm, qm_memory_pfdr, pfdr_a, 1, 0, 0, pfdr_sz); + qm_init_pfdr(qm, 8, pfdr_sz / 64 - 8); + /* thresholds */ + qm_set_pfdr_threshold(qm, 512, 64); + qm_set_sfdr_threshold(qm, 128); + /* clear stale PEBI bit from interrupt status register */ + qm_err_isr_status_clear(qm, QM_EIRQ_PEBI); + /* corenet initiator settings */ + qm_set_corenet_initiator(qm); + /* HID settings */ + qm_set_hid(qm); + /* Set scheduling weights to defaults */ + for (ret = qm_wq_first; ret <= qm_wq_last; ret++) + qm_set_wq_scheduling(qm, ret, 0, 0, 0, 0, 0, 0, 0); + /* We are not prepared to accept ERNs for hardware enqueues */ + qm_set_dc(qm, qm_dc_portal_fman0, 1, 0); + qm_set_dc(qm, qm_dc_portal_fman1, 1, 0); + return 0; +} + +int qman_have_ccsr(void) +{ + return qm ? 1 : 0; +} + +__init void qman_init_early(void) +{ + struct device_node *dn; + for_each_compatible_node(dn, NULL, "fsl,qman") { + if (qm) + pr_err("%s: only one 'fsl,qman' allowed\n", + dn->full_name); + else { + int ret = fsl_qman_init(dn); + BUG_ON(ret); + } + } +} + +static void log_edata_bits(u32 bit_count) +{ + u32 i, j, mask = 0xffffffff; + + pr_warning("Qman ErrInt, EDATA:\n"); + i = bit_count/32; + if (bit_count%32) { + i++; + mask = ~(mask << bit_count%32); + } + j = 16-i; + pr_warning(" 0x%08x\n", qm_in(EDATA(j)) & mask); + j++; + for (; j < 16; j++) + pr_warning(" 0x%08x\n", qm_in(EDATA(j))); +} + +static void log_additional_error_info(u32 isr_val, u32 ecsr_val) +{ + union qman_ecir ecir_val; + union qman_eadr eadr_val; + + ecir_val.ecir_raw = qm_in(ECIR); + /* Is portal info valid */ + if (ecsr_val & PORTAL_ECSR_ERR) { + pr_warning("Qman ErrInt: %s id %d\n", + (ecir_val.info.portal_type) ? + "DCP" : "SWP", ecir_val.info.portal_num); + } + if (ecsr_val & FQID_ECSR_ERR) { + pr_warning("Qman ErrInt: ecir.fqid 0x%x\n", + ecir_val.info.fqid); + } + if (ecsr_val & (QM_EIRQ_SBEI|QM_EIRQ_MBEI)) { + eadr_val.eadr_raw = qm_in(EADR); + pr_warning("Qman ErrInt: EADR Memory: %s, 0x%x\n", + error_mdata[eadr_val.info.memid].txt, + error_mdata[eadr_val.info.memid].addr_mask + & eadr_val.info.eadr); + log_edata_bits(error_mdata[eadr_val.info.memid].bits); + } +} + +/* Qman interrupt handler */ +static irqreturn_t qman_isr(int irq, void *ptr) +{ + u32 isr_val, ier_val, ecsr_val, isr_mask, i; + + ier_val = qm_err_isr_enable_read(qm); + isr_val = qm_err_isr_status_read(qm); + ecsr_val = qm_in(ECSR); + isr_mask = isr_val & ier_val; + + if (!isr_mask) + return IRQ_NONE; + for (i = 0; i < QMAN_HWE_COUNT; i++) { + if (qman_hwerr_txts[i].mask & isr_mask) { + pr_warning("Qman ErrInt: %s\n", qman_hwerr_txts[i].txt); + if (qman_hwerr_txts[i].mask & ecsr_val) { + log_additional_error_info(isr_mask, ecsr_val); + /* Re-arm error capture registers */ + qm_out(ECSR, ecsr_val); + } + if (qman_hwerr_txts[i].mask & QMAN_ERRS_TO_UNENABLE) { + pr_devel("Qman un-enabling error 0x%x\n", + qman_hwerr_txts[i].mask); + ier_val &= ~qman_hwerr_txts[i].mask; + qm_err_isr_enable_write(qm, ier_val); + } + } + } + qm_err_isr_status_clear(qm, isr_val); + return IRQ_HANDLED; +} + +static int __bind_irq(void) +{ + int ret, err_irq; + + err_irq = of_irq_to_resource(qm_node, 0, NULL); + if (err_irq == NO_IRQ) { + pr_info("Can't get %s property '%s'\n", qm_node->full_name, + "interrupts"); + return -ENODEV; + } + ret = request_irq(err_irq, qman_isr, IRQF_SHARED, "qman-err", qm_node); + if (ret) { + pr_err("request_irq() failed %d for '%s'\n", ret, + qm_node->full_name); + return -ENODEV; + } + /* Write-to-clear any stale bits, (eg. starvation being asserted prior + * to resource allocation during driver init). */ + qm_err_isr_status_clear(qm, 0xffffffff); + /* Enable Error Interrupts */ + qm_err_isr_enable_write(qm, 0xffffffff); + return 0; +} + +/* Initialise Error Interrupt Handler */ +int qman_init_error_int(struct device_node *node) +{ + if (!qman_have_ccsr()) + return 0; + if (node != qm_node) + return -EINVAL; + return __bind_irq(); +} + +#define PID_CFG_LIODN_MASK 0x0fff0000 +void qman_liodn_fixup(enum qm_channel channel) +{ + static int done; + static u32 liodn_offset; + u32 before, after; + int idx = channel - qm_channel_swportal0; + + if (!qman_have_ccsr()) + return; + before = qm_in(QCSP_PID_CFG(idx)); + if (!done) { + liodn_offset = before & PID_CFG_LIODN_MASK; + done = 1; + return; + } + after = (before & (~PID_CFG_LIODN_MASK)) | liodn_offset; + qm_out(QCSP_PID_CFG(idx), after); +} + +#ifdef CONFIG_SYSFS + +#define DRV_NAME "fsl-qman" + +static ssize_t show_pfdr_fpc(struct device *dev, + struct device_attribute *dev_attr, char *buf) +{ + return snprintf(buf, PAGE_SIZE, "%u\n", qm_in(PFDR_FPC)); +}; + +static ssize_t show_dlm_avg(struct device *dev, + struct device_attribute *dev_attr, char *buf) +{ + u32 data; + int i; + + if (!sscanf(dev_attr->attr.name, "dcp%d_dlm_avg", &i)) + return -EINVAL; + data = qm_in(DCP_DLM_AVG(i)); + return snprintf(buf, PAGE_SIZE, "%d.%08d\n", data>>8, + (data & 0x000000ff)*390625); +}; + +static ssize_t set_dlm_avg(struct device *dev, + struct device_attribute *dev_attr, const char *buf, size_t count) +{ + unsigned long val; + int i; + + if (!sscanf(dev_attr->attr.name, "dcp%d_dlm_avg", &i)) + return -EINVAL; + if (strict_strtoul(buf, 0, &val)) { + dev_dbg(dev, "invalid input %s\n", buf); + return -EINVAL; + } + qm_out(DCP_DLM_AVG(i), val); + return count; +}; + +static ssize_t show_pfdr_cfg(struct device *dev, + struct device_attribute *dev_attr, char *buf) +{ + return snprintf(buf, PAGE_SIZE, "%u\n", qm_in(PFDR_CFG)); +}; + +static ssize_t set_pfdr_cfg(struct device *dev, + struct device_attribute *dev_attr, const char *buf, size_t count) +{ + unsigned long val; + + if (strict_strtoul(buf, 0, &val)) { + dev_dbg(dev, "invalid input %s\n", buf); + return -EINVAL; + } + qm_out(PFDR_CFG, val); + return count; +}; + +static ssize_t show_sfdr_in_use(struct device *dev, + struct device_attribute *dev_attr, char *buf) +{ + return snprintf(buf, PAGE_SIZE, "%u\n", qm_in(SFDR_IN_USE)); +}; + +static ssize_t show_idle_stat(struct device *dev, + struct device_attribute *dev_attr, char *buf) +{ + return snprintf(buf, PAGE_SIZE, "%u\n", qm_in(IDLE_STAT)); +}; + +static ssize_t show_ci_rlm_avg(struct device *dev, + struct device_attribute *dev_attr, char *buf) +{ + u32 data = qm_in(CI_RLM_AVG); + return snprintf(buf, PAGE_SIZE, "%d.%08d\n", data>>8, + (data & 0x000000ff)*390625); +}; + +static ssize_t set_ci_rlm_avg(struct device *dev, + struct device_attribute *dev_attr, const char *buf, size_t count) +{ + unsigned long val; + + if (strict_strtoul(buf, 0, &val)) { + dev_dbg(dev, "invalid input %s\n", buf); + return -EINVAL; + } + qm_out(CI_RLM_AVG, val); + return count; +}; + +static ssize_t show_err_isr(struct device *dev, + struct device_attribute *dev_attr, char *buf) +{ + return snprintf(buf, PAGE_SIZE, "0x%08x\n", qm_in(ERR_ISR)); +}; + + +static ssize_t show_sbec(struct device *dev, + struct device_attribute *dev_attr, char *buf) +{ + int i; + + if (!sscanf(dev_attr->attr.name, "sbec_%d", &i)) + return -EINVAL; + return snprintf(buf, PAGE_SIZE, "%u\n", qm_in(SBEC(i))); +}; + +static DEVICE_ATTR(pfdr_fpc, S_IRUSR, show_pfdr_fpc, NULL); +static DEVICE_ATTR(pfdr_cfg, S_IRUSR, show_pfdr_cfg, set_pfdr_cfg); +static DEVICE_ATTR(idle_stat, S_IRUSR, show_idle_stat, NULL); +static DEVICE_ATTR(ci_rlm_avg, (S_IRUSR|S_IWUGO), + show_ci_rlm_avg, set_ci_rlm_avg); +static DEVICE_ATTR(err_isr, S_IRUSR, show_err_isr, NULL); +static DEVICE_ATTR(sfdr_in_use, S_IRUSR, show_sfdr_in_use, NULL); + +static DEVICE_ATTR(dcp0_dlm_avg, (S_IRUSR|S_IWUGO), show_dlm_avg, set_dlm_avg); +static DEVICE_ATTR(dcp1_dlm_avg, (S_IRUSR|S_IWUGO), show_dlm_avg, set_dlm_avg); +static DEVICE_ATTR(dcp2_dlm_avg, (S_IRUSR|S_IWUGO), show_dlm_avg, set_dlm_avg); +static DEVICE_ATTR(dcp3_dlm_avg, (S_IRUSR|S_IWUGO), show_dlm_avg, set_dlm_avg); + +static DEVICE_ATTR(sbec_0, S_IRUSR, show_sbec, NULL); +static DEVICE_ATTR(sbec_1, S_IRUSR, show_sbec, NULL); +static DEVICE_ATTR(sbec_2, S_IRUSR, show_sbec, NULL); +static DEVICE_ATTR(sbec_3, S_IRUSR, show_sbec, NULL); +static DEVICE_ATTR(sbec_4, S_IRUSR, show_sbec, NULL); +static DEVICE_ATTR(sbec_5, S_IRUSR, show_sbec, NULL); +static DEVICE_ATTR(sbec_6, S_IRUSR, show_sbec, NULL); + + +static struct attribute *qman_dev_attributes[] = { + &dev_attr_pfdr_fpc.attr, + &dev_attr_pfdr_cfg.attr, + &dev_attr_idle_stat.attr, + &dev_attr_ci_rlm_avg.attr, + &dev_attr_err_isr.attr, + &dev_attr_dcp0_dlm_avg.attr, + &dev_attr_dcp1_dlm_avg.attr, + &dev_attr_dcp2_dlm_avg.attr, + &dev_attr_dcp3_dlm_avg.attr, + /* sfdr_in_use will be added if necessary */ + NULL +}; + +static struct attribute *qman_dev_ecr_attributes[] = { + &dev_attr_sbec_0.attr, + &dev_attr_sbec_1.attr, + &dev_attr_sbec_2.attr, + &dev_attr_sbec_3.attr, + &dev_attr_sbec_4.attr, + &dev_attr_sbec_5.attr, + &dev_attr_sbec_6.attr, + NULL +}; + +/* root level */ +static const struct attribute_group qman_dev_attr_grp = { + .name = NULL, + .attrs = qman_dev_attributes +}; +static const struct attribute_group qman_dev_ecr_grp = { + .name = "error_capture", + .attrs = qman_dev_ecr_attributes +}; + +static int of_fsl_qman_remove(struct platform_device *ofdev) +{ + sysfs_remove_group(&ofdev->dev.kobj, &qman_dev_attr_grp); + return 0; +}; + +static int of_fsl_qman_probe(struct platform_device *ofdev) +{ + int ret; + + ret = sysfs_create_group(&ofdev->dev.kobj, &qman_dev_attr_grp); + if (ret) + goto done; + if (qman_ip_rev != QMAN_REV10) { + ret = sysfs_add_file_to_group(&ofdev->dev.kobj, + &dev_attr_sfdr_in_use.attr, qman_dev_attr_grp.name); + if (ret) + goto del_group_0; + } + ret = sysfs_create_group(&ofdev->dev.kobj, &qman_dev_ecr_grp); + if (ret) + goto del_group_0; + + goto done; + +del_group_0: + sysfs_remove_group(&ofdev->dev.kobj, &qman_dev_attr_grp); +done: + if (ret) + dev_err(&ofdev->dev, + "Cannot create dev attributes ret=%d\n", ret); + return ret; +}; + +static struct of_device_id of_fsl_qman_ids[] = { + { + .compatible = "fsl,qman", + }, + {} +}; +MODULE_DEVICE_TABLE(of, of_fsl_qman_ids); + +static struct platform_driver of_fsl_qman_driver = { + .driver = { + .owner = THIS_MODULE, + .name = DRV_NAME, + .of_match_table = of_fsl_qman_ids, + }, + .probe = of_fsl_qman_probe, + .remove = of_fsl_qman_remove, +}; + +static int qman_ctrl_init(void) +{ + return platform_driver_register(&of_fsl_qman_driver); +} + +static void qman_ctrl_exit(void) +{ + platform_driver_unregister(&of_fsl_qman_driver); +} + +module_init(qman_ctrl_init); +module_exit(qman_ctrl_exit); + +#endif /* CONFIG_SYSFS */ --- linux-3.13.0.orig/drivers/staging/fsl_qbman/qman_debugfs.c +++ linux-3.13.0/drivers/staging/fsl_qbman/qman_debugfs.c @@ -0,0 +1,1314 @@ +/* Copyright 2010-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include + +#include "qman_private.h" + +#define MAX_FQID (0x00ffffff) +#define QM_FQD_BLOCK_SIZE 64 +#define QM_FQD_AR (0xC10) + +static u32 fqid_max; +static u64 qman_ccsr_start; +static u64 qman_ccsr_size; + +static const char *state_txt[] = { + "Out of Service", + "Retired", + "Tentatively Scheduled", + "Truly Scheduled", + "Parked", + "Active, Active Held or Held Suspended", + "Unknown State 6", + "Unknown State 7", + NULL, +}; + +static const u8 fqd_states[] = { + QM_MCR_NP_STATE_OOS, QM_MCR_NP_STATE_RETIRED, QM_MCR_NP_STATE_TEN_SCHED, + QM_MCR_NP_STATE_TRU_SCHED, QM_MCR_NP_STATE_PARKED, + QM_MCR_NP_STATE_ACTIVE}; +static const u32 fqd_states_count = sizeof(fqd_states)/sizeof(u8); + +struct mask_to_text { + u16 mask; + const char *txt; +}; + +struct mask_filter_s { + u16 mask; + u8 filter; +}; + +static const struct mask_filter_s mask_filter[] = { + {QM_FQCTRL_PREFERINCACHE, 0}, + {QM_FQCTRL_PREFERINCACHE, 1}, + {QM_FQCTRL_HOLDACTIVE, 0}, + {QM_FQCTRL_HOLDACTIVE, 1}, + {QM_FQCTRL_AVOIDBLOCK, 0}, + {QM_FQCTRL_AVOIDBLOCK, 1}, + {QM_FQCTRL_FORCESFDR, 0}, + {QM_FQCTRL_FORCESFDR, 1}, + {QM_FQCTRL_CPCSTASH, 0}, + {QM_FQCTRL_CPCSTASH, 1}, + {QM_FQCTRL_CTXASTASHING, 0}, + {QM_FQCTRL_CTXASTASHING, 1}, + {QM_FQCTRL_ORP, 0}, + {QM_FQCTRL_ORP, 1}, + {QM_FQCTRL_TDE, 0}, + {QM_FQCTRL_TDE, 1}, + {QM_FQCTRL_CGE, 0}, + {QM_FQCTRL_CGE, 1} +}; +static const u32 mask_filter_count = + sizeof(mask_filter)/sizeof(struct mask_filter_s); + +static const struct mask_to_text fq_ctrl_text_list[] = { + { + .mask = QM_FQCTRL_PREFERINCACHE, + .txt = "Prefer in cache", + }, + { + .mask = QM_FQCTRL_HOLDACTIVE, + .txt = "Hold active in portal", + }, + { + .mask = QM_FQCTRL_AVOIDBLOCK, + .txt = "Avoid Blocking", + }, + { + .mask = QM_FQCTRL_FORCESFDR, + .txt = "High-priority SFDRs", + }, + { + .mask = QM_FQCTRL_CPCSTASH, + .txt = "CPC Stash Enable", + }, + { + .mask = QM_FQCTRL_CTXASTASHING, + .txt = "Context-A stashing", + }, + { + .mask = QM_FQCTRL_ORP, + .txt = "ORP Enable", + }, + { + .mask = QM_FQCTRL_TDE, + .txt = "Tail-Drop Enable", + }, + { + .mask = QM_FQCTRL_CGE, + .txt = "Congestion Group Enable", + }, + { + .mask = 0, + .txt = NULL, + } +}; + +static const char *get_fqd_ctrl_text(u16 mask) +{ + int i = 0; + + while (fq_ctrl_text_list[i].txt != NULL) { + if (fq_ctrl_text_list[i].mask == mask) + return fq_ctrl_text_list[i].txt; + i++; + } + return NULL; +} + +static const struct mask_to_text stashing_text_list[] = { + { + .mask = QM_STASHING_EXCL_CTX, + .txt = "FQ Ctx Stash" + }, + { + .mask = QM_STASHING_EXCL_DATA, + .txt = "Frame Data Stash", + }, + { + .mask = QM_STASHING_EXCL_ANNOTATION, + .txt = "Frame Annotation Stash", + }, + { + .mask = 0, + .txt = NULL, + }, +}; + +static int user_input_convert(const char __user *user_buf, size_t count, + unsigned long *val) +{ + char buf[12]; + + if (count > sizeof(buf) - 1) + return -EINVAL; + if (copy_from_user(buf, user_buf, count)) + return -EFAULT; + buf[count] = '\0'; + if (strict_strtoul(buf, 0, val)) + return -EINVAL; + return 0; +} + +struct line_buffer_fq { + u32 buf[8]; + u32 buf_cnt; + int line_cnt; +}; + +static void add_to_line_buffer(struct line_buffer_fq *line_buf, u32 fqid, + struct seq_file *file) +{ + line_buf->buf[line_buf->buf_cnt] = fqid; + line_buf->buf_cnt++; + if (line_buf->buf_cnt == 8) { + /* Buffer is full, flush it */ + if (line_buf->line_cnt != 0) + seq_printf(file, ",\n"); + seq_printf(file, "0x%06x,0x%06x,0x%06x,0x%06x,0x%06x," + "0x%06x,0x%06x,0x%06x", + line_buf->buf[0], line_buf->buf[1], line_buf->buf[2], + line_buf->buf[3], line_buf->buf[4], line_buf->buf[5], + line_buf->buf[6], line_buf->buf[7]); + line_buf->buf_cnt = 0; + line_buf->line_cnt++; + } +} + +static void flush_line_buffer(struct line_buffer_fq *line_buf, + struct seq_file *file) +{ + if (line_buf->buf_cnt) { + int y = 0; + if (line_buf->line_cnt != 0) + seq_printf(file, ",\n"); + while (y != line_buf->buf_cnt) { + if (y+1 == line_buf->buf_cnt) + seq_printf(file, "0x%06x", line_buf->buf[y]); + else + seq_printf(file, "0x%06x,", line_buf->buf[y]); + y++; + } + line_buf->line_cnt++; + } + if (line_buf->line_cnt) + seq_printf(file, "\n"); +} + +static struct dentry *dfs_root; /* debugfs root directory */ + +/******************************************************************************* + * Query Frame Queue Non Programmable Fields + ******************************************************************************/ +struct query_fq_np_fields_data_s { + u32 fqid; +}; +static struct query_fq_np_fields_data_s query_fq_np_fields_data = { + .fqid = 1, +}; + +static int query_fq_np_fields_show(struct seq_file *file, void *offset) +{ + int ret; + struct qm_mcr_queryfq_np np; + struct qman_fq fq; + + fq.fqid = query_fq_np_fields_data.fqid; + ret = qman_query_fq_np(&fq, &np); + if (ret) + return ret; + /* Print state */ + seq_printf(file, "Query FQ Non Programmable Fields Result fqid 0x%x\n", + fq.fqid); + seq_printf(file, " force eligible pending: %s\n", + (np.state & QM_MCR_NP_STATE_FE) ? "yes" : "no"); + seq_printf(file, " retirement pending: %s\n", + (np.state & QM_MCR_NP_STATE_R) ? "yes" : "no"); + seq_printf(file, " state: %s\n", + state_txt[np.state & QM_MCR_NP_STATE_MASK]); + seq_printf(file, " fq_link: 0x%x\n", np.fqd_link); + seq_printf(file, " odp_seq: %u\n", np.odp_seq); + seq_printf(file, " orp_nesn: %u\n", np.orp_nesn); + seq_printf(file, " orp_ea_hseq: %u\n", np.orp_ea_hseq); + seq_printf(file, " orp_ea_tseq: %u\n", np.orp_ea_tseq); + seq_printf(file, " orp_ea_hptr: 0x%x\n", np.orp_ea_hptr); + seq_printf(file, " orp_ea_tptr: 0x%x\n", np.orp_ea_tptr); + seq_printf(file, " pfdr_hptr: 0x%x\n", np.pfdr_hptr); + seq_printf(file, " pfdr_tptr: 0x%x\n", np.pfdr_tptr); + seq_printf(file, " is: ics_surp contains a %s\n", + (np.is) ? "deficit" : "surplus"); + seq_printf(file, " ics_surp: %u\n", np.ics_surp); + seq_printf(file, " byte_cnt: %u\n", np.byte_cnt); + seq_printf(file, " frm_cnt: %u\n", np.frm_cnt); + seq_printf(file, " ra1_sfdr: 0x%x\n", np.ra1_sfdr); + seq_printf(file, " ra2_sfdr: 0x%x\n", np.ra2_sfdr); + seq_printf(file, " od1_sfdr: 0x%x\n", np.od1_sfdr); + seq_printf(file, " od2_sfdr: 0x%x\n", np.od2_sfdr); + seq_printf(file, " od3_sfdr: 0x%x\n", np.od3_sfdr); + return 0; +} + +static int query_fq_np_fields_open(struct inode *inode, + struct file *file) +{ + return single_open(file, query_fq_np_fields_show, NULL); +} + +static ssize_t query_fq_np_fields_write(struct file *f, + const char __user *buf, size_t count, loff_t *off) +{ + int ret; + unsigned long val; + + ret = user_input_convert(buf, count, &val); + if (ret) + return ret; + if (val > MAX_FQID) + return -EINVAL; + query_fq_np_fields_data.fqid = (u32)val; + return count; +} + +static const struct file_operations query_fq_np_fields_fops = { + .owner = THIS_MODULE, + .open = query_fq_np_fields_open, + .read = seq_read, + .write = query_fq_np_fields_write, + .release = single_release, +}; + +/******************************************************************************* + * Frame Queue Programmable Fields + ******************************************************************************/ +struct query_fq_fields_data_s { + u32 fqid; +}; + +static struct query_fq_fields_data_s query_fq_fields_data = { + .fqid = 1, +}; + +static int query_fq_fields_show(struct seq_file *file, void *offset) +{ + int ret; + struct qm_fqd fqd; + struct qman_fq fq; + int i = 0; + + memset(&fqd, 0, sizeof(struct qm_fqd)); + fq.fqid = query_fq_fields_data.fqid; + ret = qman_query_fq(&fq, &fqd); + if (ret) + return ret; + seq_printf(file, "Query FQ Programmable Fields Result fqid 0x%x\n", + fq.fqid); + seq_printf(file, " orprws: %u\n", fqd.orprws); + seq_printf(file, " oa: %u\n", fqd.oa); + seq_printf(file, " olws: %u\n", fqd.olws); + + seq_printf(file, " cgid: %u\n", fqd.cgid); + + if ((fqd.fq_ctrl & QM_FQCTRL_MASK) == 0) + seq_printf(file, " fq_ctrl: None\n"); + else { + i = 0; + seq_printf(file, " fq_ctrl:\n"); + while (fq_ctrl_text_list[i].txt != NULL) { + if ((fqd.fq_ctrl & QM_FQCTRL_MASK) & + fq_ctrl_text_list[i].mask) + seq_printf(file, " %s\n", + fq_ctrl_text_list[i].txt); + i++; + } + } + seq_printf(file, " dest_channel: %u\n", fqd.dest.channel); + seq_printf(file, " dest_wq: %u\n", fqd.dest.wq); + seq_printf(file, " ics_cred: %u\n", fqd.ics_cred); + seq_printf(file, " td_mant: %u\n", fqd.td.mant); + seq_printf(file, " td_exp: %u\n", fqd.td.exp); + + seq_printf(file, " ctx_b: 0x%x\n", fqd.context_b); + + seq_printf(file, " ctx_a: 0x%llx\n", qm_fqd_stashing_get64(&fqd)); + /* Any stashing configured */ + if ((fqd.context_a.stashing.exclusive & 0x7) == 0) + seq_printf(file, " ctx_a_stash_exclusive: None\n"); + else { + seq_printf(file, " ctx_a_stash_exclusive:\n"); + i = 0; + while (stashing_text_list[i].txt != NULL) { + if ((fqd.fq_ctrl & 0x7) & stashing_text_list[i].mask) + seq_printf(file, " %s\n", + stashing_text_list[i].txt); + i++; + } + } + seq_printf(file, " ctx_a_stash_annotation_cl: %u\n", + fqd.context_a.stashing.annotation_cl); + seq_printf(file, " ctx_a_stash_data_cl: %u\n", + fqd.context_a.stashing.data_cl); + seq_printf(file, " ctx_a_stash_context_cl: %u\n", + fqd.context_a.stashing.context_cl); + return 0; +} + +static int query_fq_fields_open(struct inode *inode, + struct file *file) +{ + return single_open(file, query_fq_fields_show, NULL); +} + +static ssize_t query_fq_fields_write(struct file *f, + const char __user *buf, size_t count, loff_t *off) +{ + int ret; + unsigned long val; + + ret = user_input_convert(buf, count, &val); + if (ret) + return ret; + if (val > MAX_FQID) + return -EINVAL; + query_fq_fields_data.fqid = (u32)val; + return count; +} + +static const struct file_operations query_fq_fields_fops = { + .owner = THIS_MODULE, + .open = query_fq_fields_open, + .read = seq_read, + .write = query_fq_fields_write, + .release = single_release, +}; + +/******************************************************************************* + * Query WQ lengths + ******************************************************************************/ +struct query_wq_lengths_data_s { + union { + u16 channel_wq; /* ignores wq (3 lsbits) */ + struct { + u16 id:13; /* enum qm_channel */ + u16 __reserved:3; + } __packed channel; + }; +}; +static struct query_wq_lengths_data_s query_wq_lengths_data; +static int query_wq_lengths_show(struct seq_file *file, void *offset) +{ + int ret; + struct qm_mcr_querywq wq; + int i; + + memset(&wq, 0, sizeof(struct qm_mcr_querywq)); + wq.channel.id = query_wq_lengths_data.channel.id; + ret = qman_query_wq(0, &wq); + if (ret) + return ret; + seq_printf(file, "Query Result For Channel: 0x%x\n", wq.channel.id); + for (i = 0; i < 8; i++) + /* mask out upper 4 bits since they are not part of length */ + seq_printf(file, " wq%d_len : %u\n", i, wq.wq_len[i] & 0x0fff); + return 0; +} + +static int query_wq_lengths_open(struct inode *inode, + struct file *file) +{ + return single_open(file, query_wq_lengths_show, NULL); +} + +static ssize_t query_wq_lengths_write(struct file *f, + const char __user *buf, size_t count, loff_t *off) +{ + int ret; + unsigned long val; + + ret = user_input_convert(buf, count, &val); + if (ret) + return ret; + if (val > 0xfff8) + return -EINVAL; + query_wq_lengths_data.channel.id = (u16)val; + return count; +} + +static const struct file_operations query_wq_lengths_fops = { + .owner = THIS_MODULE, + .open = query_wq_lengths_open, + .read = seq_read, + .write = query_wq_lengths_write, + .release = single_release, +}; + +/******************************************************************************* + * Query CGR + ******************************************************************************/ +struct query_cgr_s { + u8 cgid; +}; +static struct query_cgr_s query_cgr_data; + +static int query_cgr_show(struct seq_file *file, void *offset) +{ + int ret; + struct qm_mcr_querycgr cgrd; + struct qman_cgr cgr; + + memset(&cgr, 0, sizeof(struct qm_mcr_querycgr)); + cgr.cgrid = query_cgr_data.cgid; + ret = qman_query_cgr(&cgr, &cgrd); + if (ret) + return ret; + seq_printf(file, "Query CGR id 0x%x\n", cgr.cgrid); + seq_printf(file, " wr_parm_g MA: %u, Mn: %u, SA: %u, Sn: %u, Pn: %u\n", + cgrd.cgr.wr_parm_g.MA, cgrd.cgr.wr_parm_g.Mn, + cgrd.cgr.wr_parm_g.SA, cgrd.cgr.wr_parm_g.Sn, + cgrd.cgr.wr_parm_g.Pn); + + seq_printf(file, " wr_parm_y MA: %u, Mn: %u, SA: %u, Sn: %u, Pn: %u\n", + cgrd.cgr.wr_parm_y.MA, cgrd.cgr.wr_parm_y.Mn, + cgrd.cgr.wr_parm_y.SA, cgrd.cgr.wr_parm_y.Sn, + cgrd.cgr.wr_parm_y.Pn); + + seq_printf(file, " wr_parm_r MA: %u, Mn: %u, SA: %u, Sn: %u, Pn: %u\n", + cgrd.cgr.wr_parm_r.MA, cgrd.cgr.wr_parm_r.Mn, + cgrd.cgr.wr_parm_r.SA, cgrd.cgr.wr_parm_r.Sn, + cgrd.cgr.wr_parm_r.Pn); + + seq_printf(file, " wr_en_g: %u, wr_en_y: %u, we_en_r: %u\n", + cgrd.cgr.wr_en_g, cgrd.cgr.wr_en_y, cgrd.cgr.wr_en_r); + + seq_printf(file, " cscn_en: %u\n", cgrd.cgr.cscn_en); + seq_printf(file, " cscn_targ: %u\n", cgrd.cgr.cscn_targ); + seq_printf(file, " cstd_en: %u\n", cgrd.cgr.cstd_en); + seq_printf(file, " cs: %u\n", cgrd.cgr.cs); + + seq_printf(file, " cs_thresh_TA: %u, cs_thresh_Tn: %u\n", + cgrd.cgr.cs_thres.TA, cgrd.cgr.cs_thres.Tn); + + if (qman_ip_rev != QMAN_REV10) { + seq_printf(file, " mode: %s\n", + (cgrd.cgr.mode & QMAN_CGR_MODE_FRAME) ? + "frame count" : "byte count"); + } + seq_printf(file, " i_bcnt: %llu\n", qm_mcr_querycgr_i_get64(&cgrd)); + seq_printf(file, " a_bcnt: %llu\n", qm_mcr_querycgr_a_get64(&cgrd)); + + return 0; +} + +static int query_cgr_open(struct inode *inode, struct file *file) +{ + return single_open(file, query_cgr_show, NULL); +} + +static ssize_t query_cgr_write(struct file *f, const char __user *buf, + size_t count, loff_t *off) +{ + int ret; + unsigned long val; + + ret = user_input_convert(buf, count, &val); + if (ret) + return ret; + if (val > 0xff) + return -EINVAL; + query_cgr_data.cgid = (u8)val; + return count; +} + +static const struct file_operations query_cgr_fops = { + .owner = THIS_MODULE, + .open = query_cgr_open, + .read = seq_read, + .write = query_cgr_write, + .release = single_release, +}; + +/******************************************************************************* + * Test Write CGR + ******************************************************************************/ +struct test_write_cgr_s { + u64 i_bcnt; + u8 cgid; +}; +static struct test_write_cgr_s test_write_cgr_data; + +static int testwrite_cgr_show(struct seq_file *file, void *offset) +{ + int ret; + struct qm_mcr_cgrtestwrite result; + struct qman_cgr cgr; + u64 i_bcnt; + + memset(&cgr, 0, sizeof(struct qman_cgr)); + memset(&result, 0, sizeof(struct qm_mcr_cgrtestwrite)); + cgr.cgrid = test_write_cgr_data.cgid; + i_bcnt = test_write_cgr_data.i_bcnt; + ret = qman_testwrite_cgr(&cgr, i_bcnt, &result); + if (ret) + return ret; + seq_printf(file, "CGR Test Write CGR id 0x%x\n", cgr.cgrid); + seq_printf(file, " wr_parm_g MA: %u, Mn: %u, SA: %u, Sn: %u, Pn: %u\n", + result.cgr.wr_parm_g.MA, result.cgr.wr_parm_g.Mn, + result.cgr.wr_parm_g.SA, result.cgr.wr_parm_g.Sn, + result.cgr.wr_parm_g.Pn); + seq_printf(file, " wr_parm_y MA: %u, Mn: %u, SA: %u, Sn: %u, Pn: %u\n", + result.cgr.wr_parm_y.MA, result.cgr.wr_parm_y.Mn, + result.cgr.wr_parm_y.SA, result.cgr.wr_parm_y.Sn, + result.cgr.wr_parm_y.Pn); + seq_printf(file, " wr_parm_r MA: %u, Mn: %u, SA: %u, Sn: %u, Pn: %u\n", + result.cgr.wr_parm_r.MA, result.cgr.wr_parm_r.Mn, + result.cgr.wr_parm_r.SA, result.cgr.wr_parm_r.Sn, + result.cgr.wr_parm_r.Pn); + seq_printf(file, " wr_en_g: %u, wr_en_y: %u, we_en_r: %u\n", + result.cgr.wr_en_g, result.cgr.wr_en_y, result.cgr.wr_en_r); + seq_printf(file, " cscn_en: %u\n", result.cgr.cscn_en); + seq_printf(file, " cscn_targ: %u\n", result.cgr.cscn_targ); + seq_printf(file, " cstd_en: %u\n", result.cgr.cstd_en); + seq_printf(file, " cs: %u\n", result.cgr.cs); + seq_printf(file, " cs_thresh_TA: %u, cs_thresh_Tn: %u\n", + result.cgr.cs_thres.TA, result.cgr.cs_thres.Tn); + + /* Add Mode for Si 2 */ + if (qman_ip_rev != QMAN_REV10) { + seq_printf(file, " mode: %s\n", + (result.cgr.mode & QMAN_CGR_MODE_FRAME) ? + "frame count" : "byte count"); + } + + seq_printf(file, " i_bcnt: %llu\n", + qm_mcr_cgrtestwrite_i_get64(&result)); + seq_printf(file, " a_bcnt: %llu\n", + qm_mcr_cgrtestwrite_a_get64(&result)); + seq_printf(file, " wr_prob_g: %u\n", result.wr_prob_g); + seq_printf(file, " wr_prob_y: %u\n", result.wr_prob_y); + seq_printf(file, " wr_prob_r: %u\n", result.wr_prob_r); + return 0; +} + +static int testwrite_cgr_open(struct inode *inode, struct file *file) +{ + return single_open(file, testwrite_cgr_show, NULL); +} + +static const struct file_operations testwrite_cgr_fops = { + .owner = THIS_MODULE, + .open = testwrite_cgr_open, + .read = seq_read, + .release = single_release, +}; + + +static int testwrite_cgr_ibcnt_show(struct seq_file *file, void *offset) +{ + seq_printf(file, "i_bcnt: %llu\n", test_write_cgr_data.i_bcnt); + return 0; +} +static int testwrite_cgr_ibcnt_open(struct inode *inode, struct file *file) +{ + return single_open(file, testwrite_cgr_ibcnt_show, NULL); +} + +static ssize_t testwrite_cgr_ibcnt_write(struct file *f, const char __user *buf, + size_t count, loff_t *off) +{ + int ret; + unsigned long val; + + ret = user_input_convert(buf, count, &val); + if (ret) + return ret; + test_write_cgr_data.i_bcnt = val; + return count; +} + +static const struct file_operations teswrite_cgr_ibcnt_fops = { + .owner = THIS_MODULE, + .open = testwrite_cgr_ibcnt_open, + .read = seq_read, + .write = testwrite_cgr_ibcnt_write, + .release = single_release, +}; + +static int testwrite_cgr_cgrid_show(struct seq_file *file, void *offset) +{ + seq_printf(file, "cgrid: %u\n", (u32)test_write_cgr_data.cgid); + return 0; +} +static int testwrite_cgr_cgrid_open(struct inode *inode, struct file *file) +{ + return single_open(file, testwrite_cgr_cgrid_show, NULL); +} + +static ssize_t testwrite_cgr_cgrid_write(struct file *f, const char __user *buf, + size_t count, loff_t *off) +{ + int ret; + unsigned long val; + + ret = user_input_convert(buf, count, &val); + if (ret) + return ret; + if (val > 0xff) + return -EINVAL; + test_write_cgr_data.cgid = (u8)val; + return count; +} + +static const struct file_operations teswrite_cgr_cgrid_fops = { + .owner = THIS_MODULE, + .open = testwrite_cgr_cgrid_open, + .read = seq_read, + .write = testwrite_cgr_cgrid_write, + .release = single_release, +}; + +/******************************************************************************* + * Query Congestion State + ******************************************************************************/ +static int query_congestion_show(struct seq_file *file, void *offset) +{ + int ret; + struct qm_mcr_querycongestion cs; + int i, j, in_cong = 0; + u32 mask; + + memset(&cs, 0, sizeof(struct qm_mcr_querycongestion)); + ret = qman_query_congestion(&cs); + if (ret) + return ret; + seq_printf(file, "Query Congestion Result\n"); + for (i = 0; i < 8; i++) { + mask = 0x80000000; + for (j = 0; j < 32; j++) { + if (cs.state.__state[i] & mask) { + in_cong = 1; + seq_printf(file, " cg %u: %s\n", (i*32)+j, + "in congestion"); + } + mask >>= 1; + } + } + if (!in_cong) + seq_printf(file, " All congestion groups not congested.\n"); + return 0; +} + +static int query_congestion_open(struct inode *inode, struct file *file) +{ + return single_open(file, query_congestion_show, NULL); +} + +static const struct file_operations query_congestion_fops = { + .owner = THIS_MODULE, + .open = query_congestion_open, + .read = seq_read, + .release = single_release, +}; + +/******************************************************************************* + * QMan register + ******************************************************************************/ +struct qman_register_s { + u32 val; +}; +static struct qman_register_s qman_register_data; + +static void init_ccsrmempeek(void) +{ + struct device_node *dn; + const u32 *regaddr_p; + + dn = of_find_compatible_node(NULL, NULL, "fsl,qman"); + if (!dn) { + pr_info("No fsl,qman node\n"); + return; + } + regaddr_p = of_get_address(dn, 0, &qman_ccsr_size, NULL); + if (!regaddr_p) { + of_node_put(dn); + return; + } + qman_ccsr_start = of_translate_address(dn, regaddr_p); + of_node_put(dn); +} +/* This function provides access to QMan ccsr memory map */ +static int qman_ccsrmempeek(u32 *val, u32 offset) +{ + void __iomem *addr; + u64 phys_addr; + + if (!qman_ccsr_start) + return -EINVAL; + + if (offset > (qman_ccsr_size - sizeof(u32))) + return -EINVAL; + + phys_addr = qman_ccsr_start + offset; + addr = ioremap(phys_addr, sizeof(u32)); + if (!addr) { + pr_err("ccsrmempeek, ioremap failed\n"); + return -EINVAL; + } + *val = in_be32(addr); + iounmap(addr); + return 0; +} + +static int qman_ccsrmempeek_show(struct seq_file *file, void *offset) +{ + u32 b; + + qman_ccsrmempeek(&b, qman_register_data.val); + seq_printf(file, "QMan register offset = 0x%x\n", + qman_register_data.val); + seq_printf(file, "value = 0x%08x\n", b); + + return 0; +} + +static int qman_ccsrmempeek_open(struct inode *inode, struct file *file) +{ + return single_open(file, qman_ccsrmempeek_show, NULL); +} + +static ssize_t qman_ccsrmempeek_write(struct file *f, const char __user *buf, + size_t count, loff_t *off) +{ + int ret; + unsigned long val; + + ret = user_input_convert(buf, count, &val); + if (ret) + return ret; + /* multiple of 4 */ + if (val > (qman_ccsr_size - sizeof(u32))) { + pr_info("Input 0x%lx > 0x%llx\n", + val, (qman_ccsr_size - sizeof(u32))); + return -EINVAL; + } + if (val & 0x3) { + pr_info("Input 0x%lx not multiple of 4\n", val); + return -EINVAL; + } + qman_register_data.val = val; + return count; +} + +static const struct file_operations qman_ccsrmempeek_fops = { + .owner = THIS_MODULE, + .open = qman_ccsrmempeek_open, + .read = seq_read, + .write = qman_ccsrmempeek_write, +}; + +/******************************************************************************* + * QMan state + ******************************************************************************/ +static int qman_fqd_state_show(struct seq_file *file, void *offset) +{ + struct qm_mcr_queryfq_np np; + struct qman_fq fq; + struct line_buffer_fq line_buf; + int ret, i; + u8 *state = file->private; + u32 qm_fq_state_cnt[fqd_states_count]; + + memset(qm_fq_state_cnt, 0, sizeof(qm_fq_state_cnt)); + memset(&line_buf, 0, sizeof(line_buf)); + + seq_printf(file, "List of fq ids in state: %s\n", state_txt[*state]); + + for (i = 1; i < fqid_max; i++) { + fq.fqid = i; + ret = qman_query_fq_np(&fq, &np); + if (ret) + return ret; + if (*state == (np.state & QM_MCR_NP_STATE_MASK)) + add_to_line_buffer(&line_buf, fq.fqid, file); + /* Keep a summary count of all states */ + if ((np.state & QM_MCR_NP_STATE_MASK) < fqd_states_count) + qm_fq_state_cnt[(np.state & QM_MCR_NP_STATE_MASK)]++; + } + flush_line_buffer(&line_buf, file); + + for (i = 0; i < fqd_states_count; i++) { + seq_printf(file, "%s count = %u\n", state_txt[i], + qm_fq_state_cnt[i]); + } + return 0; +} + +static int qman_fqd_state_open(struct inode *inode, struct file *file) +{ + return single_open(file, qman_fqd_state_show, inode->i_private); +} + +static const struct file_operations qman_fqd_state_fops = { + .owner = THIS_MODULE, + .open = qman_fqd_state_open, + .read = seq_read, +}; + +static int qman_fqd_ctrl_show(struct seq_file *file, void *offset) +{ + struct qm_fqd fqd; + struct qman_fq fq; + u32 fq_en_cnt = 0, fq_di_cnt = 0; + int ret, i; + struct mask_filter_s *data = file->private; + const char *ctrl_txt = get_fqd_ctrl_text(data->mask); + struct line_buffer_fq line_buf; + + memset(&line_buf, 0, sizeof(line_buf)); + seq_printf(file, "List of fq ids with: %s :%s\n", + ctrl_txt, (data->filter) ? "enabled" : "disabled"); + for (i = 1; i < fqid_max; i++) { + fq.fqid = i; + memset(&fqd, 0, sizeof(struct qm_fqd)); + ret = qman_query_fq(&fq, &fqd); + if (ret) + return ret; + if (data->filter) { + if (fqd.fq_ctrl & data->mask) + add_to_line_buffer(&line_buf, fq.fqid, file); + } else { + if (!(fqd.fq_ctrl & data->mask)) + add_to_line_buffer(&line_buf, fq.fqid, file); + } + if (fqd.fq_ctrl & data->mask) + fq_en_cnt++; + else + fq_di_cnt++; + } + flush_line_buffer(&line_buf, file); + + seq_printf(file, "Total FQD with: %s : enabled = %u\n", + ctrl_txt, fq_en_cnt); + seq_printf(file, "Total FQD with: %s : disabled = %u\n", + ctrl_txt, fq_di_cnt); + return 0; +} + +/******************************************************************************* + * QMan ctrl CGE, TDE, ORP, CTX, CPC, SFDR, BLOCK, HOLD, CACHE + ******************************************************************************/ +static int qman_fqd_ctrl_open(struct inode *inode, struct file *file) +{ + return single_open(file, qman_fqd_ctrl_show, inode->i_private); +} + +static const struct file_operations qman_fqd_ctrl_fops = { + .owner = THIS_MODULE, + .open = qman_fqd_ctrl_open, + .read = seq_read, +}; + +/******************************************************************************* + * QMan ctrl summary + ******************************************************************************/ +/******************************************************************************* + * QMan summary state + ******************************************************************************/ +static int qman_fqd_non_prog_summary_show(struct seq_file *file, void *offset) +{ + struct qm_mcr_queryfq_np np; + struct qman_fq fq; + int ret, i; + u32 qm_fq_state_cnt[fqd_states_count]; + + memset(qm_fq_state_cnt, 0, sizeof(qm_fq_state_cnt)); + + for (i = 1; i < fqid_max; i++) { + fq.fqid = i; + ret = qman_query_fq_np(&fq, &np); + if (ret) + return ret; + /* Keep a summary count of all states */ + if ((np.state & QM_MCR_NP_STATE_MASK) < fqd_states_count) + qm_fq_state_cnt[(np.state & QM_MCR_NP_STATE_MASK)]++; + } + + for (i = 0; i < fqd_states_count; i++) { + seq_printf(file, "%s count = %u\n", state_txt[i], + qm_fq_state_cnt[i]); + } + return 0; +} + +static int qman_fqd_prog_summary_show(struct seq_file *file, void *offset) +{ + struct qm_fqd fqd; + struct qman_fq fq; + int ret, i , j; + u32 qm_prog_cnt[mask_filter_count/2]; + + memset(qm_prog_cnt, 0, sizeof(qm_prog_cnt)); + + for (i = 1; i < fqid_max; i++) { + memset(&fqd, 0, sizeof(struct qm_fqd)); + fq.fqid = i; + ret = qman_query_fq(&fq, &fqd); + if (ret) + return ret; + /* Keep a summary count of all states */ + for (j = 0; j < mask_filter_count; j += 2) + if ((fqd.fq_ctrl & QM_FQCTRL_MASK) & + mask_filter[j].mask) + qm_prog_cnt[j/2]++; + } + for (i = 0; i < mask_filter_count/2; i++) { + seq_printf(file, "%s count = %u\n", + get_fqd_ctrl_text(mask_filter[i*2].mask), + qm_prog_cnt[i]); + } + return 0; +} + +static int qman_fqd_summary_show(struct seq_file *file, void *offset) +{ + int ret; + + /* Display summary of non programmable fields */ + ret = qman_fqd_non_prog_summary_show(file, offset); + if (ret) + return ret; + seq_printf(file, "-----------------------------------------\n"); + /* Display programmable fields */ + ret = qman_fqd_prog_summary_show(file, offset); + if (ret) + return ret; + return 0; +} + +static int qman_fqd_summary_open(struct inode *inode, struct file *file) +{ + return single_open(file, qman_fqd_summary_show, NULL); +} + +static const struct file_operations qman_fqd_summary_fops = { + .owner = THIS_MODULE, + .open = qman_fqd_summary_open, + .read = seq_read, +}; + +/******************************************************************************* + * QMan destination work queue + ******************************************************************************/ +struct qman_dest_wq_s { + u16 wq_id; +}; +static struct qman_dest_wq_s qman_dest_wq_data = { + .wq_id = 0, +}; + +static int qman_fqd_dest_wq_show(struct seq_file *file, void *offset) +{ + struct qm_fqd fqd; + struct qman_fq fq; + int ret, i; + u16 *wq, wq_id = qman_dest_wq_data.wq_id; + struct line_buffer_fq line_buf; + + memset(&line_buf, 0, sizeof(line_buf)); + /* use vmalloc : need to allocate large memory region and don't + * require the memory to be physically contiguous. */ + wq = vmalloc(sizeof(u16) * (0xFFFF+1)); + if (!wq) + return -ENOMEM; + memset(wq, 0, sizeof(u16) * (0xFFFF+1)); + + seq_printf(file, "List of fq ids with destination work queue id" + " = 0x%x\n", wq_id); + + for (i = 1; i < fqid_max; i++) { + fq.fqid = i; + memset(&fqd, 0, sizeof(struct qm_fqd)); + ret = qman_query_fq(&fq, &fqd); + if (ret) { + vfree(wq); + return ret; + } + if (wq_id == fqd.dest_wq) + add_to_line_buffer(&line_buf, fq.fqid, file); + wq[fqd.dest_wq]++; + } + flush_line_buffer(&line_buf, file); + + seq_printf(file, "Summary of all FQD destination work queue values\n"); + for (i = 0; i < 0xFFFF; i++) { + if (wq[i]) + seq_printf(file, "Channel: 0x%x WQ: 0x%x WQ_ID: 0x%x, " + "count = %u\n", i >> 3, i & 0x3, i, wq[i]); + } + vfree(wq); + return 0; +} + +static ssize_t qman_fqd_dest_wq_write(struct file *f, const char __user *buf, + size_t count, loff_t *off) +{ + int ret; + unsigned long val; + + ret = user_input_convert(buf, count, &val); + if (ret) + return ret; + if (val > 0xFFFF) + return -EINVAL; + qman_dest_wq_data.wq_id = val; + return count; +} + +static int qman_fqd_dest_wq_open(struct inode *inode, struct file *file) +{ + return single_open(file, qman_fqd_dest_wq_show, NULL); +} + +static const struct file_operations qman_fqd_dest_wq_fops = { + .owner = THIS_MODULE, + .open = qman_fqd_dest_wq_open, + .read = seq_read, + .write = qman_fqd_dest_wq_write, +}; + +/******************************************************************************* + * QMan Intra-Class Scheduling Credit + ******************************************************************************/ +static int qman_fqd_cred_show(struct seq_file *file, void *offset) +{ + struct qm_fqd fqd; + struct qman_fq fq; + int ret, i; + u32 fq_cnt = 0; + struct line_buffer_fq line_buf; + + memset(&line_buf, 0, sizeof(line_buf)); + seq_printf(file, "List of fq ids with Intra-Class Scheduling Credit > 0" + "\n"); + + for (i = 1; i < fqid_max; i++) { + fq.fqid = i; + memset(&fqd, 0, sizeof(struct qm_fqd)); + ret = qman_query_fq(&fq, &fqd); + if (ret) + return ret; + if (fqd.ics_cred > 0) { + add_to_line_buffer(&line_buf, fq.fqid, file); + fq_cnt++; + } + } + flush_line_buffer(&line_buf, file); + + seq_printf(file, "Total FQD with ics_cred > 0 = %d\n", fq_cnt); + return 0; +} + +static int qman_fqd_cred_open(struct inode *inode, struct file *file) +{ + return single_open(file, qman_fqd_cred_show, NULL); +} + +static const struct file_operations qman_fqd_cred_fops = { + .owner = THIS_MODULE, + .open = qman_fqd_cred_open, + .read = seq_read, +}; + +/* helper macros used in qman_debugfs_module_init */ +#define QMAN_DBGFS_ENTRY(name, mode, parent, data, fops) \ + do { \ + d = debugfs_create_file(name, \ + mode, parent, \ + data, \ + fops); \ + if (d == NULL) { \ + ret = -ENOMEM; \ + goto _return; \ + } \ + } while (0) + +/* dfs_root as parent */ +#define QMAN_DBGFS_ENTRY_ROOT(name, mode, data, fops) \ + QMAN_DBGFS_ENTRY(name, mode, dfs_root, data, fops) + +/* fqd_root as parent */ +#define QMAN_DBGFS_ENTRY_FQDROOT(name, mode, data, fops) \ + QMAN_DBGFS_ENTRY(name, mode, fqd_root, data, fops) + +/* fqd state */ +#define QMAN_DBGFS_ENTRY_FQDSTATE(name, index) \ + QMAN_DBGFS_ENTRY_FQDROOT(name, S_IRUGO, \ + (void *)&mask_filter[index], &qman_fqd_ctrl_fops) + +static int __init qman_debugfs_module_init(void) +{ + int ret = 0; + struct dentry *d, *fqd_root; + u32 reg; + + fqid_max = 0; + init_ccsrmempeek(); + if (qman_ccsr_start) { + if (!qman_ccsrmempeek(®, QM_FQD_AR)) { + /* extract the size of the FQD window */ + reg = reg & 0x3f; + /* calculate valid frame queue descriptor range */ + fqid_max = (1 << (reg + 1)) / QM_FQD_BLOCK_SIZE; + } + } + dfs_root = debugfs_create_dir("qman", NULL); + fqd_root = debugfs_create_dir("fqd", dfs_root); + if (dfs_root == NULL || fqd_root == NULL) { + ret = -ENOMEM; + pr_err("Cannot create qman/fqd debugfs dir\n"); + goto _return; + } + if (fqid_max) { + QMAN_DBGFS_ENTRY_ROOT("ccsrmempeek", S_IRUGO | S_IWUGO, + NULL, &qman_ccsrmempeek_fops); + } + QMAN_DBGFS_ENTRY_ROOT("query_fq_np_fields", S_IRUGO | S_IWUGO, + &query_fq_np_fields_data, &query_fq_np_fields_fops); + + QMAN_DBGFS_ENTRY_ROOT("query_fq_fields", S_IRUGO | S_IWUGO, + &query_fq_fields_data, &query_fq_fields_fops); + + QMAN_DBGFS_ENTRY_ROOT("query_wq_lengths", S_IRUGO | S_IWUGO, + &query_wq_lengths_data, &query_wq_lengths_fops); + + QMAN_DBGFS_ENTRY_ROOT("query_cgr", S_IRUGO | S_IWUGO, + &query_cgr_data, &query_cgr_fops); + + QMAN_DBGFS_ENTRY_ROOT("query_congestion", S_IRUGO, + NULL, &query_congestion_fops); + + QMAN_DBGFS_ENTRY_ROOT("testwrite_cgr", S_IRUGO, + NULL, &testwrite_cgr_fops); + + QMAN_DBGFS_ENTRY_ROOT("testwrite_cgr_cgrid", S_IRUGO | S_IWUGO, + NULL, &teswrite_cgr_cgrid_fops); + + QMAN_DBGFS_ENTRY_ROOT("testwrite_cgr_ibcnt", S_IRUGO | S_IWUGO, + NULL, &teswrite_cgr_ibcnt_fops); + + /* Create files with fqd_root as parent */ + + QMAN_DBGFS_ENTRY_FQDROOT("stateoos", S_IRUGO, + (void *)&fqd_states[QM_MCR_NP_STATE_OOS], &qman_fqd_state_fops); + + QMAN_DBGFS_ENTRY_FQDROOT("state_retired", S_IRUGO, + (void *)&fqd_states[QM_MCR_NP_STATE_RETIRED], + &qman_fqd_state_fops); + + QMAN_DBGFS_ENTRY_FQDROOT("state_tentatively_sched", S_IRUGO, + (void *)&fqd_states[QM_MCR_NP_STATE_TEN_SCHED], + &qman_fqd_state_fops); + + QMAN_DBGFS_ENTRY_FQDROOT("state_truly_sched", S_IRUGO, + (void *)&fqd_states[QM_MCR_NP_STATE_TRU_SCHED], + &qman_fqd_state_fops); + + QMAN_DBGFS_ENTRY_FQDROOT("state_parked", S_IRUGO, + (void *)&fqd_states[QM_MCR_NP_STATE_PARKED], + &qman_fqd_state_fops); + + QMAN_DBGFS_ENTRY_FQDROOT("state_active", S_IRUGO, + (void *)&fqd_states[QM_MCR_NP_STATE_ACTIVE], + &qman_fqd_state_fops); + + QMAN_DBGFS_ENTRY_FQDSTATE("cge_enable", 17); + + QMAN_DBGFS_ENTRY_FQDSTATE("cge_disable", 16); + + QMAN_DBGFS_ENTRY_FQDSTATE("tde_enable", 15); + + QMAN_DBGFS_ENTRY_FQDSTATE("tde_disable", 14); + + QMAN_DBGFS_ENTRY_FQDSTATE("orp_enable", 13); + + QMAN_DBGFS_ENTRY_FQDSTATE("orp_disable", 12); + + QMAN_DBGFS_ENTRY_FQDSTATE("ctx_a_stashing_enable", 11); + + QMAN_DBGFS_ENTRY_FQDSTATE("ctx_a_stashing_disable", 10); + + QMAN_DBGFS_ENTRY_FQDSTATE("cpc_enable", 9); + + QMAN_DBGFS_ENTRY_FQDSTATE("cpc_disable", 8); + + QMAN_DBGFS_ENTRY_FQDSTATE("sfdr_enable", 7); + + QMAN_DBGFS_ENTRY_FQDSTATE("sfdr_disable", 6); + + QMAN_DBGFS_ENTRY_FQDSTATE("avoid_blocking_enable", 5); + + QMAN_DBGFS_ENTRY_FQDSTATE("avoid_blocking_disable", 4); + + QMAN_DBGFS_ENTRY_FQDSTATE("hold_active_enable", 3); + + QMAN_DBGFS_ENTRY_FQDSTATE("hold_active_disable", 2); + + QMAN_DBGFS_ENTRY_FQDSTATE("prefer_in_cache_enable", 1); + + QMAN_DBGFS_ENTRY_FQDSTATE("prefer_in_cache_disable", 0); + + QMAN_DBGFS_ENTRY_FQDROOT("summary", S_IRUGO, + NULL, &qman_fqd_summary_fops); + + QMAN_DBGFS_ENTRY_FQDROOT("wq", S_IRUGO | S_IWUGO, + NULL, &qman_fqd_dest_wq_fops); + + QMAN_DBGFS_ENTRY_FQDROOT("cred", S_IRUGO, + NULL, &qman_fqd_cred_fops); + + return 0; + +_return: + if (dfs_root) + debugfs_remove_recursive(dfs_root); + return ret; +} + +static void __exit qman_debugfs_module_exit(void) +{ + debugfs_remove_recursive(dfs_root); +} + +module_init(qman_debugfs_module_init); +module_exit(qman_debugfs_module_exit); +MODULE_LICENSE("Dual BSD/GPL"); + --- linux-3.13.0.orig/drivers/staging/fsl_qbman/qman_driver.c +++ linux-3.13.0/drivers/staging/fsl_qbman/qman_driver.c @@ -0,0 +1,544 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include + +#include "qman_private.h" + +/* Global variable containing revision id (even on non-control plane systems + * where CCSR isn't available) */ +u16 qman_ip_rev; +EXPORT_SYMBOL(qman_ip_rev); + +/* size of the fqd region in bytes */ +#ifdef CONFIG_FSL_QMAN_FQ_LOOKUP +static u32 fqd_size = (PAGE_SIZE << CONFIG_FSL_QMAN_FQD_SZ); +#endif + +/*****************/ +/* Portal driver */ +/*****************/ + +static struct dpa_uio_class qman_uio = { + .list = LIST_HEAD_INIT(qman_uio.list), + .dev_prefix = "qman-uio-" +}; +const struct dpa_uio_class *dpa_uio_qman(void) +{ + return &qman_uio; +} +EXPORT_SYMBOL(dpa_uio_qman); + +#ifdef CONFIG_FSL_QMAN_NULL_FQ_DEMUX +/* Handlers for NULL portal callbacks (ie. where the contextB field, normally + * pointing to the corresponding FQ object, is NULL). */ +static enum qman_cb_dqrr_result null_cb_dqrr(struct qman_portal *qm, + struct qman_fq *fq, + const struct qm_dqrr_entry *dqrr) +{ + pr_warning("Ignoring unowned DQRR frame on portal %p.\n", qm); + return qman_cb_dqrr_consume; +} +static void null_cb_mr(struct qman_portal *qm, struct qman_fq *fq, + const struct qm_mr_entry *msg) +{ + pr_warning("Ignoring unowned MR msg on portal %p, verb 0x%02x.\n", + qm, msg->verb); +} +static const struct qman_fq_cb null_cb = { + .dqrr = null_cb_dqrr, + .ern = null_cb_mr, + .dc_ern = null_cb_mr, + .fqs = null_cb_mr +}; +#endif + +#ifdef CONFIG_FSL_QMAN_PORTAL +/* This structure carries parameters from the device-tree handling code that + * wants to set up a portal for use on 1 or more CPUs, and each temporary thread + * created to run on those CPUs. The 'portal' member is the return value. */ +struct affine_portal_data { + struct completion done; + const struct qm_portal_config *pconfig; + struct qman_portal *redirect; + int recovery_mode; + struct qman_portal *portal; +}; + +/* This function is called in a temporary thread for each CPU, to initialise the + * "affine" portal that the CPU should use. The thread is created and run from + * the init_affine_portal() bootstrapper. If the CPU has not been assigned its + * own portal, "redirect" will be non-NULL indicating it should share another + * CPU's portal (it becomes a "slave"). */ +static __init int thread_init_affine_portal(void *__data) +{ + struct affine_portal_data *data = __data; + const struct qm_portal_config *pconfig = data->pconfig; + if (data->redirect) + data->portal = qman_create_affine_slave(data->redirect); + else { + /* TODO: cgrs ?? */ + data->portal = qman_create_affine_portal(pconfig, NULL, +#ifdef CONFIG_FSL_QMAN_NULL_FQ_DEMUX + &null_cb, +#endif + data->recovery_mode); + if (data->portal) { + u32 irq_sources = 0; + /* default: enable all (available) pool channels */ + qman_static_dequeue_add(~0); + /* Determine what should be interrupt-vs-poll driven */ +#ifdef CONFIG_FSL_DPA_PIRQ_SLOW + irq_sources |= QM_PIRQ_EQCI | QM_PIRQ_EQRI | + QM_PIRQ_MRI | QM_PIRQ_CSCI; +#endif +#ifdef CONFIG_FSL_DPA_PIRQ_FAST + irq_sources |= QM_PIRQ_DQRI; +#endif + qman_irqsource_add(irq_sources); + } + } + complete(&data->done); + return 0; +} + +/* This function is just a bootstrap for running thread_init_affine_portal() on + * a given CPU. The parameters are passed in via the (void*) thread-arg (and + * results are received back) using the affine_portal_data struct. */ +static __init struct qman_portal *init_affine_portal( + const struct qm_portal_config *pconfig, + int cpu, struct qman_portal *redirect, + int recovery_mode) +{ + struct affine_portal_data data = { + .done = COMPLETION_INITIALIZER_ONSTACK(data.done), + .pconfig = pconfig, + .redirect = redirect, + .recovery_mode = recovery_mode, + .portal = NULL + }; + struct task_struct *k = kthread_create(thread_init_affine_portal, &data, + "qman_affine%d", cpu); + int ret; + if (IS_ERR(k)) { + pr_err("Failed to init %sQman affine portal for cpu %d\n", + redirect ? "(slave) " : "", cpu); + return NULL; + } + kthread_bind(k, cpu); + wake_up_process(k); + wait_for_completion(&data.done); + ret = kthread_stop(k); + if (ret) { + pr_err("Qman portal initialisation failed, cpu %d, code %d\n", + cpu, ret); + return NULL; + } + if (data.portal) + pr_info("Qman portal %sinitialised, cpu %d\n", + redirect ? "(slave) " : + pconfig->public_cfg.is_shared ? "(shared) " : "", cpu); + return data.portal; +} +#endif + +/* Parses the device-tree node, extracts the configuration, and if appropriate + * initialises the portal for use on one or more CPUs. */ +static __init struct qm_portal_config *fsl_qman_portal_init( + struct device_node *node) +{ + struct qm_portal_config *pcfg; + const u32 *index, *channel; + const phandle *ph; + struct device_node *tmp_node; + int irq, ret, numpools; + u16 ip_rev = 0; + + pcfg = kmalloc(sizeof(*pcfg), GFP_KERNEL); + if (!pcfg) { + pr_err("can't allocate portal config"); + return NULL; + } + + if (of_device_is_compatible(node, "fsl,qman-portal-1.0")) + ip_rev = QMAN_REV10; + else if (of_device_is_compatible(node, "fsl,qman-portal-1.1")) + ip_rev = QMAN_REV11; + else if (of_device_is_compatible(node, "fsl,qman-portal-1.2")) + ip_rev = QMAN_REV12; + else if (of_device_is_compatible(node, "fsl,qman-portal-2.0")) + ip_rev = QMAN_REV20; + + if (!qman_ip_rev) { + if (ip_rev) + qman_ip_rev = ip_rev; + else { + pr_warning("unknown Qman version, default to rev1.1\n"); + qman_ip_rev = QMAN_REV11; + } + } else if (ip_rev && (qman_ip_rev != ip_rev)) + pr_warning("Revision=0x%04x, but portal '%s' has 0x%04x\n", + qman_ip_rev, node->full_name, ip_rev); + + ret = of_address_to_resource(node, QM_ADDR_CE, + &pcfg->addr_phys[QM_ADDR_CE]); + if (ret) { + pr_err("Can't get %s property '%s'\n", node->full_name, + "reg::CE"); + goto err; + } + ret = of_address_to_resource(node, QM_ADDR_CI, + &pcfg->addr_phys[QM_ADDR_CI]); + if (ret) { + pr_err("Can't get %s property '%s'\n", node->full_name, + "reg::CI"); + goto err; + } + index = of_get_property(node, "cell-index", &ret); + if (!index || (ret != 4)) { + pr_err("Can't get %s property '%s'\n", node->full_name, + "cell-index"); + goto err; + } + channel = of_get_property(node, "fsl,qman-channel-id", &ret); + if (!channel || (ret != 4)) { + pr_err("Can't get %s property '%s'\n", node->full_name, + "fsl,qman-channel-id"); + goto err; + } + if (*channel != (*index + qm_channel_swportal0)) + pr_err("Warning: node %s has mismatched %s and %s\n", + node->full_name, "cell-index", "fsl,qman-channel-id"); + pcfg->public_cfg.channel = *channel; + /* Parse cpu associations for this portal. This involves dereferencing + * to the cpu device-tree nodes, but it also ensures we only try to work + * with CPUs that exist. (Eg. under a hypervisor.) */ + ph = of_get_property(node, "cpu-handle", &ret); + if (ph) { + if (ret != sizeof(phandle)) { + pr_err("Malformed %s property '%s'\n", node->full_name, + "cpu-handle"); + return NULL; + } + ret = check_cpu_phandle(*ph); + if (ret < 0) + return NULL; + pcfg->public_cfg.cpu = ret; + } else + pcfg->public_cfg.cpu = -1; + + ph = of_get_property(node, "fsl,qman-pool-channels", &ret); + if (ph && (ret % sizeof(phandle))) { + pr_err("Malformed %s property '%s'\n", node->full_name, + "fsl,qman-pool-channels"); + goto err; + } + numpools = ph ? (ret / sizeof(phandle)) : 0; + irq = irq_of_parse_and_map(node, 0); + if (irq == NO_IRQ) { + pr_err("Can't get %s property '%s'\n", node->full_name, + "interrupts"); + goto err; + } + pcfg->public_cfg.irq = irq; + pcfg->public_cfg.index = *index; + if (of_get_property(node, "fsl,hv-dma-handle", &ret)) + pcfg->public_cfg.has_stashing = 1; + else if (qman_ip_rev == QMAN_REV20) + pcfg->public_cfg.has_stashing = 1; + else +#ifdef CONFIG_FSL_PAMU + pcfg->public_cfg.has_stashing = 1; +#else + pcfg->public_cfg.has_stashing = 0; +#endif + pcfg->public_cfg.pools = 0; + pcfg->node = node; +#ifdef CONFIG_FSL_QMAN_CONFIG + /* We need the same LIODN offset for all portals */ + qman_liodn_fixup(pcfg->public_cfg.channel); +#endif + + if (of_get_property(node, "fsl,usdpaa-portal", &ret)) { + struct dpa_uio_portal *u = kmalloc(sizeof(*u), GFP_KERNEL); + if (!u) + goto err; + u->type = dpa_uio_portal_qman; + u->qm_cfg = pcfg; + list_add_tail(&u->node, &qman_uio.list); + /* Return NULL, otherwise the kernel may share it on CPUs that + * don't have their own portals, which would be ... *bad*. */ + return NULL; + } + + /* Map the portals now we know they aren't for UIO (the UIO code doesn't + * need the CE mapping, and so will do its own CI-only mapping). */ + pcfg->addr_virt[QM_ADDR_CE] = ioremap_prot( + pcfg->addr_phys[QM_ADDR_CE].start, + resource_size(&pcfg->addr_phys[QM_ADDR_CE]), + 0); + pcfg->addr_virt[QM_ADDR_CI] = ioremap_prot( + pcfg->addr_phys[QM_ADDR_CI].start, + resource_size(&pcfg->addr_phys[QM_ADDR_CI]), + _PAGE_GUARDED | _PAGE_NO_CACHE); + + while (numpools--) { + for_each_compatible_node(tmp_node, NULL, + "fsl,qman-pool-channel") { + phandle *lph = (phandle *)of_get_property(tmp_node, + "linux,phandle", &ret); + if (*lph == *ph) { + u32 *index = (u32 *)of_get_property(tmp_node, + "cell-index", &ret); + pcfg->public_cfg.pools |= + QM_SDQCR_CHANNELS_POOL(*index); + } + } + ph++; + } + if (pcfg->public_cfg.pools == 0) + panic("Unrecoverable error linking pool channels"); + + return pcfg; +err: + kfree(pcfg); + return NULL; +} + +static void __init fsl_qman_portal_destroy(struct qm_portal_config *pcfg) +{ + iounmap(pcfg->addr_virt[QM_ADDR_CE]); + iounmap(pcfg->addr_virt[QM_ADDR_CI]); + kfree(pcfg); +} + +static __init int fsl_fqid_range_init(struct device_node *node, + int recovery_mode) +{ + int ret; + u32 *range = (u32 *)of_get_property(node, "fsl,fqid-range", &ret); + if (!range) { + pr_err("No 'fsl,fqid-range' property in node %s\n", + node->full_name); + return -EINVAL; + } + if (ret != 8) { + pr_err("'fsl,fqid-range' is not a 2-cell range in node %s\n", + node->full_name); + return -EINVAL; + } + qman_release_fqid_range(range[0], range[1]); +#ifdef CONFIG_FSL_QMAN_PORTAL + /* If in recovery mode *and* we are using a private FQ allocation range, + * then automatically clean up all FQs in that range so we can + * automatically exit recovery mode too. */ + if (recovery_mode) { + u32 fqid; + for (fqid = range[0]; fqid < (range[0] + range[1]); fqid++) { + ret = qman_recovery_cleanup_fq(fqid); + if (ret) { + pr_err("Failed to recovery FQID %d\n", fqid); + return ret; + } + } + } +#else + BUG_ON(recovery_mode); +#endif + pr_info("Qman: FQID allocator includes range %d:%d%s\n", + range[0], range[1], recovery_mode ? " (recovered)" : ""); + return 0; +} + +#ifdef CONFIG_FSL_QMAN_PORTAL +static __init int __leave_recovery(void *__data) +{ + struct completion *done = __data; + qman_recovery_exit_local(); + complete(done); + return 0; +} + +int qman_recovery_exit(void) +{ + struct completion done = COMPLETION_INITIALIZER_ONSTACK(done); + unsigned int cpu; + + for_each_cpu(cpu, qman_affine_cpus()) { + struct task_struct *k = kthread_create(__leave_recovery, &done, + "qman_recovery"); + int ret; + if (IS_ERR(k)) { + pr_err("Thread failure (recovery) on cpu %d\n", cpu); + return -ENOMEM; + } + kthread_bind(k, cpu); + wake_up_process(k); + wait_for_completion(&done); + ret = kthread_stop(k); + if (ret) { + pr_err("Failed to exit recovery on cpu %d\n", cpu); + return ret; + } + pr_info("Qman portal exited recovery, cpu %d\n", cpu); + } + return 0; +} +EXPORT_SYMBOL(qman_recovery_exit); +#endif + +/***************/ +/* Driver load */ +/***************/ + +static __init int qman_init(void) +{ +#ifdef CONFIG_FSL_QMAN_PORTAL + struct qman_cgr cgr; + struct cpumask primary_cpus = *cpu_none_mask; + struct cpumask slave_cpus = *cpu_online_mask; + struct qman_portal *sharing_portal = NULL; + int sharing_cpu = -1; +#endif + struct device_node *dn; + struct qm_portal_config *pcfg; + int ret, use_bpid0 = 1, recovery_mode = 0; + LIST_HEAD(cfg_list); + + for_each_compatible_node(dn, NULL, "fsl,qman") { + if (!qman_init_error_int(dn)) + pr_info("Qman err interrupt handler present\n"); + else + pr_err("Qman err interrupt handler missing\n"); + } +#ifdef CONFIG_FSL_QMAN_FQ_LOOKUP + ret = qman_setup_fq_lookup_table(fqd_size/64); + if (ret) + return ret; +#endif +#ifdef CONFIG_FSL_QMAN_PORTAL + if (fsl_dpa_should_recover()) + recovery_mode = 1; + for_each_compatible_node(dn, NULL, "fsl,qman-portal") { + pcfg = fsl_qman_portal_init(dn); + if (pcfg) { + if (pcfg->public_cfg.cpu >= 0) { + cpumask_set_cpu(pcfg->public_cfg.cpu, + &primary_cpus); + list_add(&pcfg->list, &cfg_list); + } else + fsl_qman_portal_destroy(pcfg); + } + } + /* only consider "online" CPUs */ + cpumask_and(&primary_cpus, &primary_cpus, cpu_online_mask); + if (cpumask_empty(&primary_cpus)) + /* No portals, we're done */ + return 0; + if (!cpumask_subset(cpu_online_mask, &primary_cpus)) { + /* Need to do some sharing. In lieu of anything more scientific + * (or configurable), we pick the last-most CPU that has a + * portal and share that one. */ + int next = cpumask_first(&primary_cpus); + while (next < nr_cpu_ids) { + sharing_cpu = next; + next = cpumask_next(next, &primary_cpus); + } + } + /* Parsing is done and sharing decisions are made, now initialise the + * portals and determine which "slave" CPUs are left over. */ + list_for_each_entry(pcfg, &cfg_list, list) { + struct qman_portal *p; + int is_shared = (!sharing_portal && (sharing_cpu >= 0) && + (pcfg->public_cfg.cpu == sharing_cpu)); + pcfg->public_cfg.is_shared = is_shared; + /* If it's not mapped to a CPU, or another portal is already + * initialised to the same CPU, skip this portal. */ + if (pcfg->public_cfg.cpu < 0 || !cpumask_test_cpu( + pcfg->public_cfg.cpu, &slave_cpus)) + continue; + p = init_affine_portal(pcfg, pcfg->public_cfg.cpu, NULL, + recovery_mode); + if (p) { + if (is_shared) + sharing_portal = p; + cpumask_clear_cpu(pcfg->public_cfg.cpu, &slave_cpus); + } + } + if (sharing_portal) { + int loop; + for_each_cpu(loop, &slave_cpus) { + struct qman_portal *p = init_affine_portal(NULL, loop, + sharing_portal, recovery_mode); + if (!p) + pr_err("Failed slave Qman portal for cpu %d\n", + loop); + } + } +#else + for_each_compatible_node(dn, NULL, "fsl,qman-portal") { + pcfg = fsl_qman_portal_init(dn); + if (pcfg) + /* No kernel portal support, so if USDPAA didn't consume + * the portal, we've no other use for it. */ + fsl_qman_portal_destroy(pcfg); + } +#endif + for_each_compatible_node(dn, NULL, "fsl,fqid-range") { + use_bpid0 = 0; + ret = fsl_fqid_range_init(dn, recovery_mode); + if (ret) + return ret; + } +#ifdef CONFIG_FSL_QMAN_PORTAL + /* If using private FQ allocation, exit recovery mode automatically (ie. + * after automatic recovery) */ + if (recovery_mode && !use_bpid0) { + ret = qman_recovery_exit(); + if (ret) + return ret; + } + for (cgr.cgrid = 0; cgr.cgrid < __CGR_NUM; cgr.cgrid++) { + /* This is to ensure h/w-internal CGR memory is zeroed out. Note + * that we do this for all conceivable CGRIDs, not all of which + * are necessarily available on the underlying hardware version. + * We ignore any errors for this reason. */ + qman_modify_cgr(&cgr, QMAN_CGR_FLAG_USE_INIT, NULL); + } +#endif + ret = fqalloc_init(use_bpid0); + if (ret) + return ret; + pr_info("Qman portals initialised\n"); + return 0; +} +subsys_initcall(qman_init); --- linux-3.13.0.orig/drivers/staging/fsl_qbman/qman_fqalloc.c +++ linux-3.13.0/drivers/staging/fsl_qbman/qman_fqalloc.c @@ -0,0 +1,264 @@ +/* Copyright 2009-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "qman_private.h" + +#include + +/****************/ +/* FQ allocator */ +/****************/ + +/* Global flag: use BPID==0 (fq_pool), or use the range-allocator? */ +static int use_bman; + +#ifdef CONFIG_FSL_BMAN_PORTAL +static struct bman_pool *fq_pool; +static const struct bman_pool_params fq_pool_params; +#endif + +__init int fqalloc_init(int __use_bman) +{ + use_bman = __use_bman; +#ifdef CONFIG_FSL_BMAN_PORTAL + if (use_bman) { + fq_pool = bman_new_pool(&fq_pool_params); + if (!fq_pool) + return -ENOMEM; + } +#else + BUG_ON(use_bman); +#endif + return 0; +} + +u32 qm_fq_new(void) +{ +#ifdef CONFIG_FSL_BMAN_PORTAL + struct bm_buffer buf; + int ret; +#endif + + if (!use_bman) { + u32 result; + if (qman_alloc_fqid(&result) < 0) + return 0; + return result; + } +#ifdef CONFIG_FSL_BMAN_PORTAL + BUG_ON(!fq_pool); + ret = bman_acquire(fq_pool, &buf, 1, 0); + if (ret != 1) + return 0; + return (u32)bm_buffer_get64(&buf); +#else + BUG(); +#endif +} +EXPORT_SYMBOL(qm_fq_new); + +int qm_fq_free_flags(u32 fqid, __maybe_unused u32 flags) +{ +#ifdef CONFIG_FSL_BMAN_PORTAL + struct bm_buffer buf; + u32 bflags = 0; + int ret; + bm_buffer_set64(&buf, fqid); +#endif + + if (!use_bman) { + qman_release_fqid(fqid); + return 0; + } +#ifdef CONFIG_FSL_BMAN_PORTAL +#ifdef CONFIG_FSL_DPA_CAN_WAIT + if (flags & QM_FQ_FREE_WAIT) { + bflags |= BMAN_RELEASE_FLAG_WAIT; + if (flags & BMAN_RELEASE_FLAG_WAIT_INT) + bflags |= BMAN_RELEASE_FLAG_WAIT_INT; + if (flags & BMAN_RELEASE_FLAG_WAIT_SYNC) + bflags |= BMAN_RELEASE_FLAG_WAIT_SYNC; + } +#endif + ret = bman_release(fq_pool, &buf, 1, bflags); + return ret; +#else + BUG(); +#endif +} +EXPORT_SYMBOL(qm_fq_free_flags); + +/* Global state for the allocator */ +static DEFINE_SPINLOCK(alloc_lock); +static LIST_HEAD(alloc_list); + +/* The allocator is a (possibly-empty) list of these; */ +struct alloc_node { + struct list_head list; + u32 base; + u32 num; +}; + +/* #define FQRANGE_DEBUG */ + +#ifdef FQRANGE_DEBUG +#define DPRINT pr_info +static void DUMP(void) +{ + int off = 0; + char buf[256]; + struct alloc_node *p; + list_for_each_entry(p, &alloc_list, list) { + if (off < 255) + off += snprintf(buf + off, 255-off, "{%d,%d}", + p->base, p->base + p->num - 1); + } + pr_info("%s\n", buf); +} +#else +#define DPRINT(x...) do { ; } while(0) +#define DUMP() do { ; } while(0) +#endif + +int qman_alloc_fqid_range(u32 *result, u32 count, u32 align, int partial) +{ + struct alloc_node *i = NULL, *next_best = NULL; + u32 base, next_best_base = 0, num = 0, next_best_num = 0; + struct alloc_node *margin_left, *margin_right; + + *result = (u32)-1; + DPRINT("alloc_range(%d,%d,%d)\n", count, align, partial); + DUMP(); + /* If 'align' is 0, it should behave as though it was 1 */ + if (!align) + align = 1; + margin_left = kmalloc(sizeof(*margin_left), GFP_KERNEL); + if (!margin_left) + goto err; + margin_right = kmalloc(sizeof(*margin_right), GFP_KERNEL); + if (!margin_right) { + kfree(margin_left); + goto err; + } + spin_lock_irq(&alloc_lock); + list_for_each_entry(i, &alloc_list, list) { + base = (i->base + align - 1) / align; + base *= align; + if ((base - i->base) >= i->num) + /* alignment is impossible, regardless of count */ + continue; + num = i->num - (base - i->base); + if (num >= count) { + /* this one will do nicely */ + num = count; + goto done; + } + if (num > next_best_num) { + next_best = i; + next_best_base = base; + next_best_num = num; + } + } + if (partial && next_best) { + i = next_best; + base = next_best_base; + num = next_best_num; + } else + i = NULL; +done: + if (i) { + if (base != i->base) { + margin_left->base = i->base; + margin_left->num = base - i->base; + list_add_tail(&margin_left->list, &i->list); + } else + kfree(margin_left); + if ((base + num) < (i->base + i->num)) { + margin_right->base = base + num; + margin_right->num = (i->base + i->num) - + (base + num); + list_add(&margin_right->list, &i->list); + } else + kfree(margin_right); + list_del(&i->list); + kfree(i); + *result = base; + } + spin_unlock_irq(&alloc_lock); +err: + DPRINT("returning %d\n", i ? num : -ENOMEM); + DUMP(); + return i ? (int)num : -ENOMEM; +} +EXPORT_SYMBOL(qman_alloc_fqid_range); + +void qman_release_fqid_range(u32 fqid, u32 count) +{ + struct alloc_node *i, *node = kmalloc(sizeof(*node), GFP_KERNEL); + DPRINT("release_range(%d,%d)\n", fqid, count); + DUMP(); + spin_lock_irq(&alloc_lock); + node->base = fqid; + node->num = count; + list_for_each_entry(i, &alloc_list, list) { + if (i->base >= node->base) { + list_add_tail(&node->list, &i->list); + goto done; + } + } + list_add_tail(&node->list, &alloc_list); +done: + /* Merge to the left */ + i = list_entry(node->list.prev, struct alloc_node, list); + if (node->list.prev != &alloc_list) { + BUG_ON((i->base + i->num) > node->base); + if ((i->base + i->num) == node->base) { + node->base = i->base; + node->num += i->num; + list_del(&i->list); + kfree(i); + } + } + /* Merge to the right */ + i = list_entry(node->list.next, struct alloc_node, list); + if (node->list.next != &alloc_list) { + BUG_ON((node->base + node->num) > i->base); + if ((node->base + node->num) == i->base) { + node->num += i->num; + list_del(&i->list); + kfree(i); + } + } + spin_unlock_irq(&alloc_lock); + DUMP(); +} +EXPORT_SYMBOL(qman_release_fqid_range); + --- linux-3.13.0.orig/drivers/staging/fsl_qbman/qman_high.c +++ linux-3.13.0/drivers/staging/fsl_qbman/qman_high.c @@ -0,0 +1,2360 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "qman_low.h" + +/* Compilation constants */ +#define DQRR_MAXFILL 15 +#define EQCR_ITHRESH 4 /* if EQCR congests, interrupt threshold */ +#define IRQNAME "QMan portal %d" +#define MAX_IRQNAME 16 /* big enough for "QMan portal %d" */ + +/* Lock/unlock frame queues, subject to the "LOCKED" flag. This is about + * inter-processor locking only. Note, FQLOCK() is always called either under a + * local_irq_save() or from interrupt context - hence there's no need for irq + * protection (and indeed, attempting to nest irq-protection doesn't work, as + * the "irq en/disable" machinery isn't recursive...). */ +#define FQLOCK(fq) \ + do { \ + struct qman_fq *__fq478 = (fq); \ + if (fq_isset(__fq478, QMAN_FQ_FLAG_LOCKED)) \ + spin_lock(&__fq478->fqlock); \ + } while(0) +#define FQUNLOCK(fq) \ + do { \ + struct qman_fq *__fq478 = (fq); \ + if (fq_isset(__fq478, QMAN_FQ_FLAG_LOCKED)) \ + spin_unlock(&__fq478->fqlock); \ + } while(0) + +static inline void fq_set(struct qman_fq *fq, u32 mask) +{ + set_bits(mask, &fq->flags); +} +static inline void fq_clear(struct qman_fq *fq, u32 mask) +{ + clear_bits(mask, &fq->flags); +} +static inline int fq_isset(struct qman_fq *fq, u32 mask) +{ + return fq->flags & mask; +} +static inline int fq_isclear(struct qman_fq *fq, u32 mask) +{ + return !(fq->flags & mask); +} + +#define PORTAL_BITS_CI_PREFETCH 0x00020000 /* EQCR::CI prefetched */ +#define PORTAL_BITS_RECOVERY 0x00040000 /* recovery mode */ + +struct qman_portal { + struct qm_portal p; + unsigned long bits; /* PORTAL_BITS_*** - dynamic, strictly internal */ + unsigned long irq_sources; + u32 slowpoll; /* only used when interrupts are off */ + struct qman_fq *vdqcr_owned; /* only 1 volatile dequeue at a time */ +#ifdef CONFIG_FSL_DPA_CAN_WAIT_SYNC + struct qman_fq *eqci_owned; /* only 1 enqueue WAIT_SYNC at a time */ +#endif +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE + spinlock_t sharing_lock; /* only used if is_shared */ + int is_shared; + struct qman_portal *sharing_redirect; +#endif + u32 sdqcr; + int dqrr_disable_ref; +#ifdef CONFIG_FSL_QMAN_NULL_FQ_DEMUX + /* If we receive a DQRR or MR ring entry for a "null" FQ, ie. for which + * FQD::contextB is NULL rather than pointing to a FQ object, we use + * these handlers. (This is not considered a fast-path mechanism.) */ + struct qman_fq_cb null_cb; +#endif + /* When the cpu-affine portal is activated, this is non-NULL */ + const struct qm_portal_config *config; + /* This is needed for providing a non-NULL device to dma_map_***() */ + struct platform_device *pdev; + struct dpa_rbtree retire_table; + char irqname[MAX_IRQNAME]; + /* 2-element array. cgrs[0] is mask, cgrs[1] is snapshot. */ + struct qman_cgrs *cgrs; + /* 256-element array, each is a linked-list of CSCN handlers. */ + struct list_head cgr_cbs[256]; + /* list lock */ + spinlock_t cgr_lock; +}; + +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE +#define PORTAL_IRQ_LOCK(p, irqflags) \ + do { \ + if ((p)->is_shared) \ + spin_lock_irqsave(&(p)->sharing_lock, irqflags); \ + else \ + local_irq_save(irqflags); \ + } while (0) +#define PORTAL_IRQ_UNLOCK(p, irqflags) \ + do { \ + if ((p)->is_shared) \ + spin_unlock_irqrestore(&(p)->sharing_lock, irqflags); \ + else \ + local_irq_restore(irqflags); \ + } while (0) +#else +#define PORTAL_IRQ_LOCK(p, irqflags) local_irq_save(irqflags) +#define PORTAL_IRQ_UNLOCK(p, irqflags) local_irq_restore(irqflags) +#endif + +static cpumask_t affine_mask; +static DEFINE_SPINLOCK(affine_mask_lock); +static DEFINE_PER_CPU(struct qman_portal, qman_affine_portal); +/* "raw" gets the cpu-local struct whether it's a redirect or not. */ +static inline struct qman_portal *get_raw_affine_portal(void) +{ + return &get_cpu_var(qman_affine_portal); +} +/* For ops that can redirect, this obtains the portal to use */ +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE +static inline struct qman_portal *get_affine_portal(void) +{ + struct qman_portal *p = get_raw_affine_portal(); + if (p->sharing_redirect) + return p->sharing_redirect; + return p; +} +#else +#define get_affine_portal() get_raw_affine_portal() +#endif +/* For every "get", there must be a "put" */ +static inline void put_affine_portal(void) +{ + put_cpu_var(qman_affine_portal); +} + +/* This gives a FQID->FQ lookup to cover the fact that we can't directly demux + * retirement notifications (the fact they are sometimes h/w-consumed means that + * contextB isn't always a s/w demux - and as we can't know which case it is + * when looking at the notification, we have to use the slow lookup for all of + * them). NB, it's possible to have multiple FQ objects refer to the same FQID + * (though at most one of them should be the consumer), so this table isn't for + * all FQs - FQs are added when retirement commands are issued, and removed when + * they complete, which also massively reduces the size of this table. */ +IMPLEMENT_DPA_RBTREE(fqtree, struct qman_fq, node, fqid); + +/* This is what everything can wait on, even if it migrates to a different cpu + * to the one whose affine portal it is waiting on. */ +static DECLARE_WAIT_QUEUE_HEAD(affine_queue); + +static inline int table_push_fq(struct qman_portal *p, struct qman_fq *fq) +{ + int ret = fqtree_push(&p->retire_table, fq); + if (ret) + pr_err("ERROR: double FQ-retirement %d\n", fq->fqid); + return ret; +} + +static inline void table_del_fq(struct qman_portal *p, struct qman_fq *fq) +{ + fqtree_del(&p->retire_table, fq); +} + +static inline struct qman_fq *table_find_fq(struct qman_portal *p, u32 fqid) +{ + return fqtree_find(&p->retire_table, fqid); +} + +#ifdef CONFIG_FSL_QMAN_FQ_LOOKUP +static void **qman_fq_lookup_table; +static size_t qman_fq_lookup_table_size; + +int qman_setup_fq_lookup_table(size_t num_entries) +{ + num_entries++; + /* Allocate 1 more entry since the first entry is not used */ + qman_fq_lookup_table = vmalloc((num_entries * sizeof(void *))); + if (!qman_fq_lookup_table) { + pr_err("QMan: Could not allocate fq lookup table\n"); + return -ENOMEM; + } + memset(qman_fq_lookup_table, 0, num_entries * sizeof(void *)); + qman_fq_lookup_table_size = num_entries; + pr_info("QMan: Allocated lookup table at %p, entry count %lu\n", + qman_fq_lookup_table, + (unsigned long)qman_fq_lookup_table_size); + return 0; +} + +/* global structure that maintains fq object mapping */ +static DEFINE_SPINLOCK(fq_hash_table_lock); + +static int find_empty_fq_table_entry(u32 *entry, struct qman_fq *fq) +{ + u32 i; + + spin_lock(&fq_hash_table_lock); + /* Can't use index zero because this has special meaning + * in context_b field. */ + for (i = 1; i < qman_fq_lookup_table_size; i++) { + if (qman_fq_lookup_table[i] == NULL) { + *entry = i; + qman_fq_lookup_table[i] = fq; + spin_unlock(&fq_hash_table_lock); + return 0; + } + } + spin_unlock(&fq_hash_table_lock); + return -ENOMEM; +} + +static void clear_fq_table_entry(u32 entry) +{ + spin_lock(&fq_hash_table_lock); + BUG_ON(entry >= qman_fq_lookup_table_size); + qman_fq_lookup_table[entry] = NULL; + spin_unlock(&fq_hash_table_lock); +} + +static inline struct qman_fq *get_fq_table_entry(u32 entry) +{ + BUG_ON(entry >= qman_fq_lookup_table_size); + return qman_fq_lookup_table[entry]; +} +#endif + +/* In the case that slow- and fast-path handling are both done by qman_poll() + * (ie. because there is no interrupt handling), we ought to balance how often + * we do the fast-path poll versus the slow-path poll. We'll use two decrementer + * sources, so we call the fast poll 'n' times before calling the slow poll + * once. The idle decrementer constant is used when the last slow-poll detected + * no work to do, and the busy decrementer constant when the last slow-poll had + * work to do. */ +#define SLOW_POLL_IDLE 1000 +#define SLOW_POLL_BUSY 10 +static u32 __poll_portal_slow(struct qman_portal *p, u32 is); +static inline unsigned int __poll_portal_fast(struct qman_portal *p, + unsigned int poll_limit); + +#ifdef CONFIG_FSL_DPA_HAVE_IRQ +/* Portal interrupt handler */ +static irqreturn_t portal_isr(__always_unused int irq, void *ptr) +{ + struct qman_portal *p = ptr; + u32 clear = QM_DQAVAIL_MASK | p->irq_sources; + u32 is = qm_isr_status_read(&p->p) & p->irq_sources; + /* DQRR-handling if it's interrupt-driven */ + if (is & QM_PIRQ_DQRI) + __poll_portal_fast(p, CONFIG_FSL_QMAN_POLL_LIMIT); + /* Handling of anything else that's interrupt-driven */ + clear |= __poll_portal_slow(p, is); + qm_isr_status_clear(&p->p, clear); + return IRQ_HANDLED; +} +#endif + +/* This inner version is used privately by qman_create_affine_portal(), as well + * as by the exported qman_stop_dequeues(). */ +static inline void qman_stop_dequeues_ex(struct qman_portal *p) +{ + unsigned long irqflags __maybe_unused; + PORTAL_IRQ_LOCK(p, irqflags); + if (!(p->dqrr_disable_ref++)) + qm_dqrr_set_maxfill(&p->p, 0); + PORTAL_IRQ_UNLOCK(p, irqflags); +} + +static int drain_mr_fqrni(struct qm_portal *p) +{ + const struct qm_mr_entry *msg; +loop: + msg = qm_mr_current(p); + if (!msg) { + /* if MR was full and h/w had other FQRNI entries to produce, we + * need to allow it time to produce those entries once the + * existing entries are consumed. A worst-case situation + * (fully-loaded system) means h/w sequencers may have to do 3-4 + * other things before servicing the portal's MR pump, each of + * which (if slow) may take ~50 qman cycles (which is ~200 + * processor cycles). So rounding up and then multiplying this + * worst-case estimate by a factor of 10, just to be + * ultra-paranoid, goes as high as 10,000 cycles. NB, we consume + * one entry at a time, so h/w has an opportunity to produce new + * entries well before the ring has been fully consumed, so + * we're being *really* paranoid here. */ + u64 now, then = mfatb(); + do { + now = mfatb(); + } while ((then + 10000) > now); + msg = qm_mr_current(p); + if (!msg) + return 0; + } + if ((msg->verb & QM_MR_VERB_TYPE_MASK) != QM_MR_VERB_FQRNI) + /* We aren't draining anything but FQRNIs */ + return -1; + qm_mr_next(p); + qm_mr_cci_consume(p, 1); + goto loop; +} + +/* this is called from qman_create_affine_portal() if not initialising in + * recovery mode, otherwise from qman_recovery_exit_local() after recovery is + * done. */ +static void post_recovery(struct qman_portal *p __always_unused, + const struct qm_portal_config *config) +{ + struct device_node *tmp_node, *node = config->node; + /* Enable DMA on portal LIODNs (stashing) and those of its sub-nodes + * (Fman TX and SEC/PME accelerators, where available). */ + if (pamu_enable_liodn(node, -1)) + /* If there's a PAMU problem, best to continue anyway and let + * the corresponding traffic hit whatever problems it will hit, + * than to fail portal initialisation and trigger a crash in + * dependent code that has no relationship to the PAMU issue. */ + pr_err("Failed to enable portal LIODN %s\n", + node->full_name); + for_each_child_of_node(node, tmp_node) + if (pamu_enable_liodn(tmp_node, -1)) + pr_err("Failed to enable portal LIODN %s\n", + tmp_node->full_name); +} + +struct qman_portal *qman_create_affine_portal( + const struct qm_portal_config *config, + const struct qman_cgrs *cgrs, + const struct qman_fq_cb *null_cb, + int recovery_mode) +{ + struct qman_portal *portal = get_raw_affine_portal(); + struct qm_portal *__p = &portal->p; + char buf[16]; + int ret; + u32 isdr; + + /* A criteria for calling this function (from qman_driver.c) is that + * we're already affine to the cpu and won't schedule onto another cpu. + * This means we can put_affine_portal() and yet continue to use + * "portal", which in turn means aspects of this routine can sleep. */ + put_affine_portal(); +#ifndef CONFIG_FSL_QMAN_NULL_FQ_DEMUX + if (null_cb) { + pr_err("Driver does not support 'NULL FQ' callbacks\n"); + return NULL; + } +#endif + /* prep the low-level portal struct with the mapped addresses from the + * config, everything that follows depends on it and "config" is more + * for (de)reference... */ + __p->addr.addr_ce = config->addr_virt[QM_ADDR_CE]; + __p->addr.addr_ci = config->addr_virt[QM_ADDR_CI]; + if (qm_eqcr_init(__p, qm_eqcr_pvb, qm_eqcr_cce)) { + pr_err("Qman EQCR initialisation failed\n"); + goto fail_eqcr; + } +#ifdef CONFIG_FSL_QMAN_PORTAL_DISABLEAUTO_DCA +#define QM_DQRR_CMODE qm_dqrr_cci +#else +#define QM_DQRR_CMODE qm_dqrr_cdc +#endif + /* for recovery mode, don't enable stashing yet */ + if (qm_dqrr_init(__p, config, qm_dqrr_dpush, qm_dqrr_pvb, + recovery_mode ? qm_dqrr_cci : QM_DQRR_CMODE, + DQRR_MAXFILL, recovery_mode)) { + pr_err("Qman DQRR initialisation failed\n"); + goto fail_dqrr; + } + if (qm_mr_init(__p, qm_mr_pvb, qm_mr_cci)) { + pr_err("Qman MR initialisation failed\n"); + goto fail_mr; + } + /* for recovery mode, quiesce SDQCR/VDQCR and drain DQRR+MR until h/w + * wraps up anything it was doing (5ms is ample idle time). */ + if (recovery_mode) { + const struct qm_dqrr_entry *dq; + const struct qm_mr_entry *msg; + int idle = 0; + /* quiesce SDQCR/VDQCR, then drain till h/w wraps up anything it + * was doing (5ms is more than enough to ensure it's done). */ + qm_dqrr_sdqcr_set(__p, 0); + qm_dqrr_vdqcr_set(__p, 0); +drain_loop: + qm_dqrr_pvb_update(__p, 0); + dq = qm_dqrr_current(__p); + qm_mr_pvb_update(__p); + msg = qm_mr_current(__p); + if (dq) { + pr_warning("DQRR recovery: dumping dqrr %02x:%02x for " + "FQID %d\n", dq->verb & QM_DQRR_VERB_MASK, + dq->stat, dq->fqid); + qm_dqrr_next(__p); + qm_dqrr_cci_consume(__p, 1); + } + if (msg) { + pr_warning("MR recovery: dumping msg 0x%02x for " + "FQID %d\n", msg->verb & QM_MR_VERB_TYPE_MASK, + msg->fq.fqid); + qm_mr_next(__p); + qm_mr_cci_consume(__p, 1); + } + if (!dq && !msg) { + if (++idle < 5) { + msleep(1); + goto drain_loop; + } + } else { + idle = 0; + goto drain_loop; + } + } + if (qm_mc_init(__p)) { + pr_err("Qman MC initialisation failed\n"); + goto fail_mc; + } + if (qm_isr_init(__p)) { + pr_err("Qman ISR initialisation failed\n"); + goto fail_isr; + } + /* static interrupt-gating controls */ + qm_dqrr_set_ithresh(__p, CONFIG_FSL_QMAN_PIRQ_DQRR_ITHRESH); + qm_mr_set_ithresh(__p, CONFIG_FSL_QMAN_PIRQ_MR_ITHRESH); + qm_isr_set_iperiod(__p, CONFIG_FSL_QMAN_PIRQ_IPERIOD); + portal->cgrs = kmalloc(2 * sizeof(*cgrs), GFP_KERNEL); + if (!portal->cgrs) + goto fail_cgrs; + /* initial snapshot is no-depletion */ + qman_cgrs_init(&portal->cgrs[1]); + if (cgrs) + portal->cgrs[0] = *cgrs; + else + /* if the given mask is NULL, assume all CGRs can be seen */ + qman_cgrs_fill(&portal->cgrs[0]); + for (ret = 0; ret < __CGR_NUM; ret++) + INIT_LIST_HEAD(&portal->cgr_cbs[ret]); + spin_lock_init(&portal->cgr_lock); + portal->bits = recovery_mode ? PORTAL_BITS_RECOVERY : 0; + portal->slowpoll = 0; +#ifdef CONFIG_FSL_DPA_CAN_WAIT_SYNC + portal->eqci_owned = NULL; +#endif +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE + spin_lock_init(&portal->sharing_lock); + portal->is_shared = config->public_cfg.is_shared; + portal->sharing_redirect = NULL; +#endif + portal->sdqcr = QM_SDQCR_SOURCE_CHANNELS | QM_SDQCR_COUNT_UPTO3 | + QM_SDQCR_DEDICATED_PRECEDENCE | QM_SDQCR_TYPE_PRIO_QOS | + QM_SDQCR_TOKEN_SET(0xab) | QM_SDQCR_CHANNELS_DEDICATED; + portal->dqrr_disable_ref = 0; +#ifdef CONFIG_FSL_QMAN_NULL_FQ_DEMUX + if (null_cb) + portal->null_cb = *null_cb; + else + memset(&portal->null_cb, 0, sizeof(*null_cb)); +#endif + sprintf(buf, "qportal-%d", config->public_cfg.channel); + portal->pdev = platform_device_alloc(buf, -1); + if (!portal->pdev) + goto fail_devalloc; + if (dma_set_mask(&portal->pdev->dev, DMA_BIT_MASK(40))) + goto fail_devadd; + ret = platform_device_add(portal->pdev); + if (ret) + goto fail_devadd; + dpa_rbtree_init(&portal->retire_table); + isdr = 0xffffffff; + qm_isr_disable_write(__p, isdr); + portal->irq_sources = 0; + qm_isr_enable_write(__p, portal->irq_sources); + qm_isr_status_clear(__p, 0xffffffff); +#ifdef CONFIG_FSL_DPA_HAVE_IRQ + snprintf(portal->irqname, MAX_IRQNAME, IRQNAME, config->public_cfg.cpu); + if (request_irq(config->public_cfg.irq, portal_isr, + IRQF_NOBALANCING | IRQF_DISABLED, portal->irqname, + portal)) { + pr_err("request_irq() failed\n"); + goto fail_irq; + } + if (config->public_cfg.cpu != -1) { + disable_irq(config->public_cfg.irq); + irq_set_affinity(config->public_cfg.irq, + cpumask_of(config->public_cfg.cpu)); + } + enable_irq(config->public_cfg.irq); + + if (recovery_mode) { + qm_isr_inhibit(__p); + } else { + post_recovery(portal, config); + qm_isr_uninhibit(__p); + } +#endif + /* Need EQCR to be empty before continuing */ + isdr ^= QM_PIRQ_EQCI; + qm_isr_disable_write(__p, isdr); + ret = qm_eqcr_get_fill(__p); + if (ret) { + pr_err("Qman EQCR unclean, need recovery\n"); + goto fail_eqcr_empty; + } + isdr ^= (QM_PIRQ_DQRI | QM_PIRQ_MRI); + qm_isr_disable_write(__p, isdr); + if (qm_dqrr_current(__p) != NULL) { + pr_err("Qman DQRR unclean, need recovery\n"); + goto fail_dqrr_mr_empty; + } + if (qm_mr_current(__p) != NULL) { + /* special handling, drain just in case it's a few FQRNIs */ + if (drain_mr_fqrni(__p)) { + pr_err("Qman MR unclean, need recovery\n"); + goto fail_dqrr_mr_empty; + } + } + /* Success */ + portal->config = config; + spin_lock(&affine_mask_lock); + cpumask_set_cpu(config->public_cfg.cpu, &affine_mask); + spin_unlock(&affine_mask_lock); + qm_isr_disable_write(__p, 0); + /* Write a sane SDQCR */ + qm_dqrr_sdqcr_set(__p, recovery_mode ? 0 : portal->sdqcr); + return portal; +fail_dqrr_mr_empty: +fail_eqcr_empty: +#ifdef CONFIG_FSL_DPA_HAVE_IRQ + free_irq(config->public_cfg.irq, portal); +fail_irq: +#endif + platform_device_del(portal->pdev); +fail_devadd: + platform_device_put(portal->pdev); +fail_devalloc: + if (portal->cgrs) + kfree(portal->cgrs); +fail_cgrs: + qm_isr_finish(__p); +fail_isr: + qm_mc_finish(__p); +fail_mc: + qm_mr_finish(__p); +fail_mr: + qm_dqrr_finish(__p); +fail_dqrr: + qm_eqcr_finish(__p); +fail_eqcr: + put_affine_portal(); + return NULL; +} + +/* These checks are BUG_ON()s because the driver is already supposed to avoid + * these cases. */ +struct qman_portal *qman_create_affine_slave(struct qman_portal *redirect) +{ +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE + struct qman_portal *p = get_raw_affine_portal(); + /* Check that we don't already have our own portal */ + BUG_ON(p->config); + /* Check that we aren't already slaving to another portal */ + BUG_ON(p->is_shared); + /* Check that 'redirect' is prepared to have us */ + BUG_ON(!redirect->config->public_cfg.is_shared); + /* These are the only elements to initialise when redirecting */ + p->irq_sources = 0; + p->sharing_redirect = redirect; + put_affine_portal(); + return p; +#else + BUG(); + return NULL; +#endif +} + +const struct qm_portal_config *qman_destroy_affine_portal(void) +{ + /* We don't want to redirect if we're a slave, use "raw" */ + struct qman_portal *qm = get_raw_affine_portal(); + const struct qm_portal_config *pcfg; + int cpu; +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE + if (qm->sharing_redirect) { + qm->sharing_redirect = NULL; + put_affine_portal(); + return NULL; + } + qm->is_shared = 0; +#endif + pcfg = qm->config; + cpu = pcfg->public_cfg.cpu; + /* NB we do this to "quiesce" EQCR. If we add enqueue-completions or + * something related to QM_PIRQ_EQCI, this may need fixing. + * Also, due to the prefetching model used for CI updates in the enqueue + * path, this update will only invalidate the CI cacheline *after* + * working on it, so we need to call this twice to ensure a full update + * irrespective of where the enqueue processing was at when the teardown + * began. */ + qm_eqcr_cce_update(&qm->p); + qm_eqcr_cce_update(&qm->p); +#ifdef CONFIG_FSL_DPA_HAVE_IRQ + free_irq(pcfg->public_cfg.irq, qm); +#endif + kfree(qm->cgrs); + qm_isr_finish(&qm->p); + qm_mc_finish(&qm->p); + qm_mr_finish(&qm->p); + qm_dqrr_finish(&qm->p); + qm_eqcr_finish(&qm->p); + qm->config = NULL; + spin_lock(&affine_mask_lock); + cpumask_clear_cpu(cpu, &affine_mask); + spin_unlock(&affine_mask_lock); + put_affine_portal(); + return pcfg; +} + +const struct qman_portal_config *qman_get_portal_config(void) +{ + struct qman_portal *p = get_affine_portal(); + const struct qman_portal_config *ret = &p->config->public_cfg; + put_affine_portal(); + return ret; +} +EXPORT_SYMBOL(qman_get_portal_config); + +#ifdef CONFIG_FSL_QMAN_NULL_FQ_DEMUX +void qman_get_null_cb(struct qman_fq_cb *null_cb) +{ + struct qman_portal *p = get_affine_portal(); + *null_cb = p->null_cb; + put_affine_portal(); +} +EXPORT_SYMBOL(qman_get_null_cb); + +void qman_set_null_cb(const struct qman_fq_cb *null_cb) +{ + struct qman_portal *p = get_affine_portal(); + p->null_cb = *null_cb; + put_affine_portal(); +} +EXPORT_SYMBOL(qman_set_null_cb); +#endif + +/* Inline helper to reduce nesting in __poll_portal_slow() */ +static inline void fq_state_change(struct qman_portal *p, struct qman_fq *fq, + const struct qm_mr_entry *msg, u8 verb) +{ + FQLOCK(fq); + switch(verb) { + case QM_MR_VERB_FQRL: + DPA_ASSERT(fq_isset(fq, QMAN_FQ_STATE_ORL)); + fq_clear(fq, QMAN_FQ_STATE_ORL); + table_del_fq(p, fq); + break; + case QM_MR_VERB_FQRN: + DPA_ASSERT((fq->state == qman_fq_state_parked) || + (fq->state == qman_fq_state_sched)); + DPA_ASSERT(fq_isset(fq, QMAN_FQ_STATE_CHANGING)); + fq_clear(fq, QMAN_FQ_STATE_CHANGING); + if (msg->fq.fqs & QM_MR_FQS_NOTEMPTY) + fq_set(fq, QMAN_FQ_STATE_NE); + if (msg->fq.fqs & QM_MR_FQS_ORLPRESENT) + fq_set(fq, QMAN_FQ_STATE_ORL); + else + table_del_fq(p, fq); + fq->state = qman_fq_state_retired; + break; + case QM_MR_VERB_FQPN: + DPA_ASSERT(fq->state == qman_fq_state_sched); + DPA_ASSERT(fq_isclear(fq, QMAN_FQ_STATE_CHANGING)); + fq->state = qman_fq_state_parked; + } + FQUNLOCK(fq); +} + +static u32 __poll_portal_slow(struct qman_portal *p, u32 is) +{ + const struct qm_mr_entry *msg; + + BUG_ON(p->bits & PORTAL_BITS_RECOVERY); + + if (is & QM_PIRQ_CSCI) { + struct qman_cgrs rr, c; + struct qm_mc_result *mcr; + struct qman_cgr *cgr; + int i; + unsigned long irqflags __maybe_unused; + + spin_lock_irqsave(&p->cgr_lock, irqflags); + qm_mc_start(&p->p); + qm_mc_commit(&p->p, QM_MCC_VERB_QUERYCONGESTION); + while (!(mcr = qm_mc_result(&p->p))) + cpu_relax(); + /* mask out the ones I'm not interested in */ + qman_cgrs_and(&rr, (const struct qman_cgrs *) + &mcr->querycongestion.state, &p->cgrs[0]); + /* check previous snapshot for delta, enter/exit congestion */ + qman_cgrs_xor(&c, &rr, &p->cgrs[1]); + /* update snapshot */ + qman_cgrs_cp(&p->cgrs[1], &rr); + /* Invoke callback */ + qman_cgrs_for_each_1(i, &c) + list_for_each_entry(cgr, &p->cgr_cbs[i], node) { + if (cgr->cb) + cgr->cb(p, cgr, qman_cgrs_get(&rr, i)); + } + spin_unlock_irqrestore(&p->cgr_lock, irqflags); + } + +#ifdef CONFIG_FSL_DPA_CAN_WAIT_SYNC + if (is & QM_PIRQ_EQCI) { + unsigned long irqflags; + PORTAL_IRQ_LOCK(p, irqflags); + p->eqci_owned = NULL; + PORTAL_IRQ_UNLOCK(p, irqflags); + wake_up(&affine_queue); + } +#endif + + if (is & QM_PIRQ_EQRI) { + unsigned long irqflags __maybe_unused; + PORTAL_IRQ_LOCK(p, irqflags); + qm_eqcr_cce_update(&p->p); + qm_eqcr_set_ithresh(&p->p, 0); + PORTAL_IRQ_UNLOCK(p, irqflags); + wake_up(&affine_queue); + } + + if (is & QM_PIRQ_MRI) { + u8 num = 0; +mr_loop: + qm_mr_pvb_update(&p->p); + msg = qm_mr_current(&p->p); + if (msg) { + u8 verb = msg->verb & QM_MR_VERB_TYPE_MASK; +#ifdef CONFIG_FSL_QMAN_FQ_LOOKUP + struct qman_fq *fq; +#else + struct qman_fq *fq = (void *)(uintptr_t)msg->ern.tag; +#endif + if (verb == QM_MR_VERB_FQRNI) { + ; /* nada, we drop FQRNIs on the floor */ + } else if ((verb == QM_MR_VERB_FQRN) || + (verb == QM_MR_VERB_FQRL)) { + /* It's retirement related - need a lookup */ + fq = table_find_fq(p, msg->fq.fqid); + if (!fq) + panic("unexpected FQ retirement"); + fq_state_change(p, fq, msg, verb); + if (fq->cb.fqs) + fq->cb.fqs(p, fq, msg); +#ifdef CONFIG_FSL_QMAN_FQ_LOOKUP + } else if (likely(msg->ern.tag)) { + fq = get_fq_table_entry(msg->ern.tag); +#else + } else if (likely(fq)) { +#endif + /* As per the header note, this is the way to + * determine if it's a s/w ERN or not. */ + if (likely(!(verb & QM_MR_VERB_DC_ERN))) + fq->cb.ern(p, fq, msg); + else + fq->cb.dc_ern(p, fq, msg); + } +#ifdef CONFIG_FSL_QMAN_NULL_FQ_DEMUX + else { + /* use portal default handlers for 'null's */ + if (likely(!(verb & QM_MR_VERB_DC_ERN))) + p->null_cb.ern(p, NULL, msg); + else if (verb == QM_MR_VERB_DC_ERN) + p->null_cb.dc_ern(p, NULL, msg); + else if (p->null_cb.fqs) + p->null_cb.fqs(p, NULL, msg); + } +#endif + num++; + qm_mr_next(&p->p); + goto mr_loop; + } + qm_mr_cci_consume(&p->p, num); + } + + return is & (QM_PIRQ_CSCI | QM_PIRQ_EQCI | QM_PIRQ_EQRI | QM_PIRQ_MRI); +} + +/* remove some slowish-path stuff from the "fast path" and make sure it isn't + * inlined. */ +static noinline void clear_vdqcr(struct qman_portal *p, struct qman_fq *fq) +{ + p->vdqcr_owned = NULL; + FQLOCK(fq); + fq_clear(fq, QMAN_FQ_STATE_VDQCR); + FQUNLOCK(fq); + wake_up(&affine_queue); +} + +/* Look: no locks, no irq_save()s, no preempt_disable()s! :-) The only states + * that would conflict with other things if they ran at the same time on the + * same cpu are; + * + * (i) setting/clearing vdqcr_owned, and + * (ii) clearing the NE (Not Empty) flag. + * + * Both are safe. Because; + * + * (i) this clearing can only occur after qman_volatile_dequeue() has set the + * vdqcr_owned field (which it does before setting VDQCR), and + * qman_volatile_dequeue() blocks interrupts and preemption while this is + * done so that we can't interfere. + * (ii) the NE flag is only cleared after qman_retire_fq() has set it, and as + * with (i) that API prevents us from interfering until it's safe. + * + * The good thing is that qman_volatile_dequeue() and qman_retire_fq() run far + * less frequently (ie. per-FQ) than __poll_portal_fast() does, so the nett + * advantage comes from this function not having to "lock" anything at all. + * + * Note also that the callbacks are invoked at points which are safe against the + * above potential conflicts, but that this function itself is not re-entrant + * (this is because the function tracks one end of each FIFO in the portal and + * we do *not* want to lock that). So the consequence is that it is safe for + * user callbacks to call into any Qman API *except* qman_poll() (as that's the + * sole API that could be invoking the callback through this function). + */ +static inline unsigned int __poll_portal_fast(struct qman_portal *p, + unsigned int poll_limit) +{ + const struct qm_dqrr_entry *dq; + struct qman_fq *fq; + enum qman_cb_dqrr_result res; +#ifdef CONFIG_FSL_QMAN_DQRR_PREFETCHING + int coherent = (p->config->public_cfg.has_stashing); +#endif + unsigned int limit = 0; + + BUG_ON(p->bits & PORTAL_BITS_RECOVERY); +loop: +#ifdef CONFIG_FSL_QMAN_DQRR_PREFETCHING + qm_dqrr_pvb_update(&p->p, coherent); +#else + qm_dqrr_pvb_update(&p->p, 1); +#endif + dq = qm_dqrr_current(&p->p); + if (!dq) + goto done; + if (dq->stat & QM_DQRR_STAT_UNSCHEDULED) { + /* VDQCR: don't trust contextB as the FQ may have been + * configured for h/w consumption and we're draining it + * post-retirement. */ + fq = p->vdqcr_owned; + /* We only set QMAN_FQ_STATE_NE when retiring, so we only need + * to check for clearing it when doing volatile dequeues. It's + * one less thing to check in the critical path (SDQCR). */ + if (dq->stat & QM_DQRR_STAT_FQ_EMPTY) + fq_clear(fq, QMAN_FQ_STATE_NE); + /* this is duplicated from the SDQCR code, but we have stuff to + * do before *and* after this callback, and we don't want + * multiple if()s in the critical path (SDQCR). */ + res = fq->cb.dqrr(p, fq, dq); + if (res == qman_cb_dqrr_stop) + goto done; + /* Check for VDQCR completion */ + if (dq->stat & QM_DQRR_STAT_DQCR_EXPIRED) + clear_vdqcr(p, fq); + } else { + /* SDQCR: contextB points to the FQ */ +#ifdef CONFIG_FSL_QMAN_FQ_LOOKUP + fq = get_fq_table_entry(dq->contextB); +#else + fq = (void *)(uintptr_t)dq->contextB; +#endif +#ifdef CONFIG_FSL_QMAN_NULL_FQ_DEMUX + if (unlikely(!fq)) { + /* use portal default handlers */ + res = p->null_cb.dqrr(p, NULL, dq); + DPA_ASSERT(res == qman_cb_dqrr_consume); + res = qman_cb_dqrr_consume; + } else +#endif + { + /* Now let the callback do its stuff */ + res = fq->cb.dqrr(p, fq, dq); + /* The callback can request that we exit without + * consuming this entry nor advancing; */ + if (res == qman_cb_dqrr_stop) + goto done; + } + } + /* Interpret 'dq' from a driver perspective. */ + /* Parking isn't possible unless HELDACTIVE was set. NB, + * FORCEELIGIBLE implies HELDACTIVE, so we only need to + * check for HELDACTIVE to cover both. */ + DPA_ASSERT((dq->stat & QM_DQRR_STAT_FQ_HELDACTIVE) || + (res != qman_cb_dqrr_park)); +#ifdef CONFIG_FSL_QMAN_PORTAL_DISABLEAUTO_DCA + if (res == qman_cb_dqrr_park) + /* The only thing to do for non-DCA is the park-request */ + qm_dqrr_park_current(&p->p); + /* Move forward */ + qm_dqrr_next(&p->p); + qm_dqrr_cci_consume(&p->p, 1); +#else + /* Defer just means "skip it, I'll consume it myself later on" */ + if (res != qman_cb_dqrr_defer) + qm_dqrr_cdc_consume_1ptr(&p->p, dq, (res == qman_cb_dqrr_park)); + /* Move forward */ + qm_dqrr_next(&p->p); +#endif + /* Entry processed and consumed, increment our counter. The callback can + * request that we exit after consuming the entry, and we also exit if + * we reach our processing limit, so loop back only if neither of these + * conditions is met. */ + if ((++limit < poll_limit) && (res != qman_cb_dqrr_consume_stop)) + goto loop; +done: + return limit; +} + +u32 qman_irqsource_get(void) +{ + /* "irqsource" and "poll" APIs mustn't redirect when sharing, they + * should shut the user out if they are not the primary CPU hosting the + * portal. That's why we use the "raw" interface. */ + struct qman_portal *p = get_raw_affine_portal(); + u32 ret = p->irq_sources & QM_PIRQ_VISIBLE; + put_affine_portal(); + return ret; +} +EXPORT_SYMBOL(qman_irqsource_get); + +int qman_irqsource_add(u32 bits __maybe_unused) +{ +#ifdef CONFIG_FSL_DPA_HAVE_IRQ + struct qman_portal *p = get_raw_affine_portal(); + int ret = 0; +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE + if (p->sharing_redirect) + ret = -EINVAL; + else +#endif + { + __maybe_unused unsigned long irqflags; + PORTAL_IRQ_LOCK(p, irqflags); + set_bits(bits & QM_PIRQ_VISIBLE, &p->irq_sources); + qm_isr_enable_write(&p->p, p->irq_sources); + PORTAL_IRQ_UNLOCK(p, irqflags); + } + put_affine_portal(); + return ret; +#else + pr_err("No Qman portal IRQ support, mustn't specify IRQ flags!"); + return -EINVAL; +#endif +} +EXPORT_SYMBOL(qman_irqsource_add); + +int qman_irqsource_remove(u32 bits) +{ +#ifdef CONFIG_FSL_DPA_HAVE_IRQ + struct qman_portal *p = get_raw_affine_portal(); + __maybe_unused unsigned long irqflags; + u32 ier; +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE + if (p->sharing_redirect) { + put_affine_portal(); + return -EINVAL; + } +#endif + /* Our interrupt handler only processes+clears status register bits that + * are in p->irq_sources. As we're trimming that mask, if one of them + * were to assert in the status register just before we remove it from + * the enable register, there would be an interrupt-storm when we + * release the IRQ lock. So we wait for the enable register update to + * take effect in h/w (by reading it back) and then clear all other bits + * in the status register. Ie. we clear them from ISR once it's certain + * IER won't allow them to reassert. */ + PORTAL_IRQ_LOCK(p, irqflags); + bits &= QM_PIRQ_VISIBLE; + clear_bits(bits, &p->irq_sources); + qm_isr_enable_write(&p->p, p->irq_sources); + ier = qm_isr_enable_read(&p->p); + /* Using "~ier" (rather than "bits" or "~p->irq_sources") creates a + * data-dependency, ie. to protect against re-ordering. */ + qm_isr_status_clear(&p->p, ~ier); + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + return 0; +#else + pr_err("No Qman portal IRQ support, mustn't specify IRQ flags!"); + return -EINVAL; +#endif +} +EXPORT_SYMBOL(qman_irqsource_remove); + +const cpumask_t *qman_affine_cpus(void) +{ + return &affine_mask; +} +EXPORT_SYMBOL(qman_affine_cpus); + +int qman_poll_dqrr(unsigned int limit) +{ + /* We need to fail when called for a "slave", so use "raw" */ + struct qman_portal *p = get_raw_affine_portal(); + int ret; +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE + if (unlikely(p->sharing_redirect)) + ret = -EINVAL; + else +#endif + { + BUG_ON(p->irq_sources & QM_PIRQ_DQRI); + ret = __poll_portal_fast(p, limit); + } + put_affine_portal(); + return ret; +} +EXPORT_SYMBOL(qman_poll_dqrr); + +u32 qman_poll_slow(void) +{ + /* We need to fail when called for a "slave", so use "raw" */ + struct qman_portal *p = get_raw_affine_portal(); + u32 ret; +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE + if (unlikely(p->sharing_redirect)) + ret = (u32)-1; + else +#endif + { + u32 is = qm_isr_status_read(&p->p) & ~p->irq_sources; + ret = __poll_portal_slow(p, is); + qm_isr_status_clear(&p->p, ret); + } + put_affine_portal(); + return ret; +} +EXPORT_SYMBOL(qman_poll_slow); + +/* Legacy wrapper */ +void qman_poll(void) +{ + struct qman_portal *p = get_raw_affine_portal(); +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE + if (unlikely(p->sharing_redirect)) + goto done; +#endif + if ((~p->irq_sources) & QM_PIRQ_SLOW) { + if (!(p->slowpoll--)) { + u32 is = qm_isr_status_read(&p->p) & ~p->irq_sources; + u32 active = __poll_portal_slow(p, is); + if (active) { + qm_isr_status_clear(&p->p, active); + p->slowpoll = SLOW_POLL_BUSY; + } else + p->slowpoll = SLOW_POLL_IDLE; + } + } + if ((~p->irq_sources) & QM_PIRQ_DQRI) + __poll_portal_fast(p, CONFIG_FSL_QMAN_POLL_LIMIT); +#ifdef CONFIG_FSL_DPA_PORTAL_SHARE +done: +#endif + put_affine_portal(); +} +EXPORT_SYMBOL(qman_poll); + +/* Recovery processing. */ +static int recovery_poll_mr(struct qman_portal *p, u32 fqid) +{ + const struct qm_mr_entry *msg; + enum { + wait_for_fqrn, + wait_for_fqrl, + done + } state = wait_for_fqrn; + u8 v, fqs = 0; + +loop: + qm_mr_pvb_update(&p->p); + msg = qm_mr_current(&p->p); + if (!msg) { + cpu_relax(); + goto loop; + } + v = msg->verb & QM_MR_VERB_TYPE_MASK; + /* all MR messages have "fqid" in the same place */ + if (msg->fq.fqid != fqid) { +ignore_msg: + pr_warning("recovery_poll_mr(), ignoring msg 0x%02x for " + "FQID %d\n", v, msg->fq.fqid); + goto next_msg; + } + if (state == wait_for_fqrn) { + if ((v != QM_MR_VERB_FQRN) && (v != QM_MR_VERB_FQRNI)) + goto ignore_msg; + fqs = msg->fq.fqs; + if (!(fqs & QM_MR_FQS_ORLPRESENT)) + state = done; + else + state = wait_for_fqrl; + } else { + if (v != QM_MR_VERB_FQRL) + goto ignore_msg; + state = done; + } +next_msg: + qm_mr_next(&p->p); + qm_mr_cci_consume(&p->p, 1); + if (state != done) + goto loop; + return (fqs & QM_MR_FQS_NOTEMPTY) ? 1 : 0; +} +static unsigned int recovery_poll_dqrr(struct qman_portal *p, u32 fqid) +{ + const struct qm_dqrr_entry *dq; + u8 empty = 0, num_fds = 0; + +loop: + qm_dqrr_pvb_update(&p->p, 0); + dq = qm_dqrr_current(&p->p); + if (!dq) { + cpu_relax(); + goto loop; + } + if (!(dq->stat & QM_DQRR_STAT_UNSCHEDULED)) { +ignore_dqrr: + pr_warning("recovery_poll_dqrr(), ignoring dqrr %02x:%02x " + "for FQID %d\n", + dq->verb & QM_DQRR_VERB_MASK, dq->stat, dq->fqid); + goto next_dqrr; + } + if (dq->fqid != fqid) + goto ignore_dqrr; + if (dq->stat & QM_DQRR_STAT_FD_VALID) + num_fds++; + if (dq->stat & QM_DQRR_STAT_FQ_EMPTY) + empty = 1; +next_dqrr: + qm_dqrr_next(&p->p); + qm_dqrr_cci_consume(&p->p, 1); + if (!empty) + goto loop; + return num_fds; +} +int qman_recovery_cleanup_fq(u32 fqid) +{ + struct qm_mc_command *mcc; + struct qm_mc_result *mcr; + struct qman_portal *p = get_affine_portal(); + unsigned long irqflags __maybe_unused; + int ret = 0; + unsigned int num_fds = 0; + const char *s; + u8 state; + + /* Lock this whole flow down via the portal's "vdqcr" */ + PORTAL_IRQ_LOCK(p, irqflags); + BUG_ON(!(p->bits & PORTAL_BITS_RECOVERY)); + if (p->vdqcr_owned) + ret = -EBUSY; + else + p->vdqcr_owned = (void *)1; + PORTAL_IRQ_UNLOCK(p, irqflags); + if (ret) + goto out; + + /* Query the FQ's state */ + mcc = qm_mc_start(&p->p); + mcc->queryfq.fqid = fqid; + qm_mc_commit(&p->p, QM_MCC_VERB_QUERYFQ_NP); + while (!(mcr = qm_mc_result(&p->p))) + cpu_relax(); + DPA_ASSERT((mcr->verb & QM_MCR_VERB_MASK) == QM_MCR_VERB_QUERYFQ_NP); + if (mcr->result != QM_MCR_RESULT_OK) { + ret = -EIO; + goto out; + } + state = mcr->queryfq_np.state & QM_MCR_NP_STATE_MASK; + + /* OOS: nothing to do */ + if (state == QM_MCR_NP_STATE_OOS) + goto out; + /* Otherwise: must be retired */ + if (state != QM_MCR_NP_STATE_RETIRED) { + mcc = qm_mc_start(&p->p); + mcc->alterfq.fqid = fqid; + qm_mc_commit(&p->p, QM_MCC_VERB_ALTER_RETIRE); + while (!(mcr = qm_mc_result(&p->p))) + cpu_relax(); + DPA_ASSERT((mcr->verb & QM_MCR_VERB_MASK) == + QM_MCR_VERB_ALTER_RETIRE); + if ((mcr->result != QM_MCR_RESULT_OK) && + (mcr->result != QM_MCR_RESULT_PENDING)) { + ret = -EIO; + goto out; + } + ret = recovery_poll_mr(p, fqid); + if (!ret) + /* FQ empty */ + goto oos; + } + /* Drain till empty */ + qm_dqrr_vdqcr_set(&p->p, fqid & 0x00ffffff); + num_fds = recovery_poll_dqrr(p, fqid); + +oos: + mcc = qm_mc_start(&p->p); + mcc->alterfq.fqid = fqid; + qm_mc_commit(&p->p, QM_MCC_VERB_ALTER_OOS); + while (!(mcr = qm_mc_result(&p->p))) + cpu_relax(); + DPA_ASSERT((mcr->verb & QM_MCR_VERB_MASK) == QM_MCR_VERB_ALTER_OOS); + if (mcr->result != QM_MCR_RESULT_OK) + ret = -EIO; + /* done */ + s = (state == QM_MCR_NP_STATE_RETIRED) ? "retired" : + (state == QM_MCR_NP_STATE_PARKED) ? "parked" : "scheduled"; + pr_info("Qman: %s FQID %d recovered (%d frames)\n", s, fqid, num_fds); +out: + PORTAL_IRQ_LOCK(p, irqflags); + p->vdqcr_owned = NULL; + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + return ret; +} +EXPORT_SYMBOL(qman_recovery_cleanup_fq); + +/* called from qman_driver.c::qman_recovery_exit() only (if exporting, use + * get_raw_affine_portal() and check for the "SLAVE" bit). */ +void qman_recovery_exit_local(void) +{ + struct qman_portal *p = get_affine_portal(); + BUG_ON(!(p->bits & PORTAL_BITS_RECOVERY)); + /* Reinitialise DQRR using expected settings */ + qm_dqrr_finish(&p->p); + post_recovery(p, p->config); + clear_bits(PORTAL_BITS_RECOVERY, &p->bits); + if (qm_dqrr_init(&p->p, p->config, qm_dqrr_dpush, qm_dqrr_pvb, + QM_DQRR_CMODE, DQRR_MAXFILL, 0)) + panic("Qman DQRR initialisation failed, recovery broken"); + qm_dqrr_sdqcr_set(&p->p, p->sdqcr); + qm_isr_status_clear(&p->p, 0xffffffff); + qm_isr_uninhibit(&p->p); + put_affine_portal(); +} + +void qman_stop_dequeues(void) +{ + struct qman_portal *p = get_affine_portal(); + qman_stop_dequeues_ex(p); + put_affine_portal(); +} +EXPORT_SYMBOL(qman_stop_dequeues); + +void qman_start_dequeues(void) +{ + struct qman_portal *p = get_affine_portal(); + unsigned long irqflags __maybe_unused; + PORTAL_IRQ_LOCK(p, irqflags); + DPA_ASSERT(p->dqrr_disable_ref > 0); + if (!(--p->dqrr_disable_ref)) + qm_dqrr_set_maxfill(&p->p, DQRR_MAXFILL); + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); +} +EXPORT_SYMBOL(qman_start_dequeues); + +void qman_static_dequeue_add(u32 pools) +{ + unsigned long irqflags __maybe_unused; + struct qman_portal *p = get_affine_portal(); + PORTAL_IRQ_LOCK(p, irqflags); + pools &= p->config->public_cfg.pools; + p->sdqcr |= pools; + qm_dqrr_sdqcr_set(&p->p, p->sdqcr); + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); +} +EXPORT_SYMBOL(qman_static_dequeue_add); + +void qman_static_dequeue_del(u32 pools) +{ + struct qman_portal *p = get_affine_portal(); + unsigned long irqflags __maybe_unused; + PORTAL_IRQ_LOCK(p, irqflags); + pools &= p->config->public_cfg.pools; + p->sdqcr &= ~pools; + qm_dqrr_sdqcr_set(&p->p, p->sdqcr); + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); +} +EXPORT_SYMBOL(qman_static_dequeue_del); + +u32 qman_static_dequeue_get(void) +{ + struct qman_portal *p = get_affine_portal(); + u32 ret = p->sdqcr; + put_affine_portal(); + return ret; +} +EXPORT_SYMBOL(qman_static_dequeue_get); + +void qman_dca(struct qm_dqrr_entry *dq, int park_request) +{ + struct qman_portal *p = get_affine_portal(); + qm_dqrr_cdc_consume_1ptr(&p->p, dq, park_request); + put_affine_portal(); +} +EXPORT_SYMBOL(qman_dca); + +/*******************/ +/* Frame queue API */ +/*******************/ + +static const char *mcr_result_str(u8 result) +{ + switch (result) { + case QM_MCR_RESULT_NULL: + return "QM_MCR_RESULT_NULL"; + case QM_MCR_RESULT_OK: + return "QM_MCR_RESULT_OK"; + case QM_MCR_RESULT_ERR_FQID: + return "QM_MCR_RESULT_ERR_FQID"; + case QM_MCR_RESULT_ERR_FQSTATE: + return "QM_MCR_RESULT_ERR_FQSTATE"; + case QM_MCR_RESULT_ERR_NOTEMPTY: + return "QM_MCR_RESULT_ERR_NOTEMPTY"; + case QM_MCR_RESULT_PENDING: + return "QM_MCR_RESULT_PENDING"; + case QM_MCR_RESULT_ERR_BADCOMMAND: + return "QM_MCR_RESULT_ERR_BADCOMMAND"; + } + return ""; +} + +int qman_create_fq(u32 fqid, u32 flags, struct qman_fq *fq) +{ + struct qm_fqd fqd; + struct qm_mcr_queryfq_np np; + struct qm_mc_command *mcc; + struct qm_mc_result *mcr; + struct qman_portal *p; + unsigned long irqflags __maybe_unused; + + if (flags & QMAN_FQ_FLAG_DYNAMIC_FQID) { + fqid = qm_fq_new(); + if (!fqid) + return -ENOMEM; + } + spin_lock_init(&fq->fqlock); + fq->fqid = fqid; + fq->flags = flags; + fq->state = qman_fq_state_oos; + fq->cgr_groupid = 0; +#ifdef CONFIG_FSL_QMAN_FQ_LOOKUP + if (unlikely(find_empty_fq_table_entry(&fq->key, fq))) + return -ENOMEM; +#endif + if (!(flags & QMAN_FQ_FLAG_AS_IS) || (flags & QMAN_FQ_FLAG_NO_MODIFY)) + return 0; + /* Everything else is AS_IS support */ + p = get_affine_portal(); + PORTAL_IRQ_LOCK(p, irqflags); + mcc = qm_mc_start(&p->p); + mcc->queryfq.fqid = fqid; + qm_mc_commit(&p->p, QM_MCC_VERB_QUERYFQ); + while (!(mcr = qm_mc_result(&p->p))) + cpu_relax(); + DPA_ASSERT((mcr->verb & QM_MCR_VERB_MASK) == QM_MCC_VERB_QUERYFQ); + if (mcr->result != QM_MCR_RESULT_OK) { + pr_err("QUERYFQ failed: %s\n", mcr_result_str(mcr->result)); + goto err; + } + fqd = mcr->queryfq.fqd; + mcc = qm_mc_start(&p->p); + mcc->queryfq_np.fqid = fqid; + qm_mc_commit(&p->p, QM_MCC_VERB_QUERYFQ_NP); + while (!(mcr = qm_mc_result(&p->p))) + cpu_relax(); + DPA_ASSERT((mcr->verb & QM_MCR_VERB_MASK) == QM_MCC_VERB_QUERYFQ_NP); + if (mcr->result != QM_MCR_RESULT_OK) { + pr_err("QUERYFQ_NP failed: %s\n", mcr_result_str(mcr->result)); + goto err; + } + np = mcr->queryfq_np; + /* Phew, have queryfq and queryfq_np results, stitch together + * the FQ object from those. */ + fq->cgr_groupid = fqd.cgid; + switch (np.state & QM_MCR_NP_STATE_MASK) { + case QM_MCR_NP_STATE_OOS: + break; + case QM_MCR_NP_STATE_RETIRED: + fq->state = qman_fq_state_retired; + if (np.frm_cnt) + fq_set(fq, QMAN_FQ_STATE_NE); + break; + case QM_MCR_NP_STATE_TEN_SCHED: + case QM_MCR_NP_STATE_TRU_SCHED: + case QM_MCR_NP_STATE_ACTIVE: + fq->state = qman_fq_state_sched; + if (np.state & QM_MCR_NP_STATE_R) + fq_set(fq, QMAN_FQ_STATE_CHANGING); + break; + case QM_MCR_NP_STATE_PARKED: + fq->state = qman_fq_state_parked; + break; + default: + DPA_ASSERT(NULL == "invalid FQ state"); + } + if (fqd.fq_ctrl & QM_FQCTRL_CGE) + fq->state |= QMAN_FQ_STATE_CGR_EN; + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + return 0; +err: + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + if (flags & QMAN_FQ_FLAG_DYNAMIC_FQID) + qm_fq_free(fqid); + return -EIO; +} +EXPORT_SYMBOL(qman_create_fq); + +void qman_destroy_fq(struct qman_fq *fq, u32 flags __maybe_unused) +{ + /* We don't need to lock the FQ as it is a pre-condition that the FQ be + * quiesced. Instead, run some checks. */ + switch (fq->state) { + case qman_fq_state_parked: + DPA_ASSERT(flags & QMAN_FQ_DESTROY_PARKED); + case qman_fq_state_oos: + if (fq_isset(fq, QMAN_FQ_FLAG_DYNAMIC_FQID)) + qm_fq_free(fq->fqid); +#ifdef CONFIG_FSL_QMAN_FQ_LOOKUP + clear_fq_table_entry(fq->key); +#endif + return; + default: + break; + } + DPA_ASSERT(NULL == "qman_free_fq() on unquiesced FQ!"); +} +EXPORT_SYMBOL(qman_destroy_fq); + +u32 qman_fq_fqid(struct qman_fq *fq) +{ + return fq->fqid; +} +EXPORT_SYMBOL(qman_fq_fqid); + +void qman_fq_state(struct qman_fq *fq, enum qman_fq_state *state, u32 *flags) +{ + if (state) + *state = fq->state; + if (flags) + *flags = fq->flags; +} +EXPORT_SYMBOL(qman_fq_state); + +int qman_init_fq(struct qman_fq *fq, u32 flags, struct qm_mcc_initfq *opts) +{ + struct qm_mc_command *mcc; + struct qm_mc_result *mcr; + struct qman_portal *p; + unsigned long irqflags __maybe_unused; + u8 res, myverb = (flags & QMAN_INITFQ_FLAG_SCHED) ? + QM_MCC_VERB_INITFQ_SCHED : QM_MCC_VERB_INITFQ_PARKED; + + DPA_ASSERT((fq->state == qman_fq_state_oos) || + (fq->state == qman_fq_state_parked)); +#ifdef CONFIG_FSL_DPA_CHECKING + if (unlikely(fq_isset(fq, QMAN_FQ_FLAG_NO_MODIFY))) + return -EINVAL; +#endif + if (opts && (opts->we_mask & QM_INITFQ_WE_OAC)) { + /* OAC not supported on rev1.0 */ + if (unlikely(qman_ip_rev == QMAN_REV10)) + return -EINVAL; + /* And can't be set at the same time as TDTHRESH */ + if (opts->we_mask & QM_INITFQ_WE_TDTHRESH) + return -EINVAL; + } + /* Issue an INITFQ_[PARKED|SCHED] management command */ + p = get_affine_portal(); + PORTAL_IRQ_LOCK(p, irqflags); + FQLOCK(fq); + if (unlikely((fq_isset(fq, QMAN_FQ_STATE_CHANGING)) || + ((fq->state != qman_fq_state_oos) && + (fq->state != qman_fq_state_parked)))) { + FQUNLOCK(fq); + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + return -EBUSY; + } + mcc = qm_mc_start(&p->p); + if (opts) + mcc->initfq = *opts; + mcc->initfq.fqid = fq->fqid; + mcc->initfq.count = 0; + /* If INITFQ_FLAG_NULL is passed, contextB is set to zero. Otherwise, + * if the FQ does *not* have the TO_DCPORTAL flag, contextB is set as a + * demux pointer. Otherwise, TO_DCPORTAL is set, so the caller-provided + * value is allowed to stand, don't overwrite it. */ + if ((flags & QMAN_INITFQ_FLAG_NULL) || + fq_isclear(fq, QMAN_FQ_FLAG_TO_DCPORTAL)) { + dma_addr_t phys_fq; + mcc->initfq.we_mask |= QM_INITFQ_WE_CONTEXTB; +#ifdef CONFIG_FSL_QMAN_FQ_LOOKUP + mcc->initfq.fqd.context_b = (flags & QMAN_INITFQ_FLAG_NULL) ? + 0 : fq->key; +#else + mcc->initfq.fqd.context_b = (flags & QMAN_INITFQ_FLAG_NULL) ? + 0 : (u32)(uintptr_t)fq; +#endif + /* and the physical address - NB, if the user wasn't trying to + * set CONTEXTA, clear the stashing settings. */ + if (!(mcc->initfq.we_mask & QM_INITFQ_WE_CONTEXTA)) { + mcc->initfq.we_mask |= QM_INITFQ_WE_CONTEXTA; + memset(&mcc->initfq.fqd.context_a, 0, + sizeof(mcc->initfq.fqd.context_a)); + } else { + phys_fq = dma_map_single(&p->pdev->dev, fq, sizeof(*fq), + DMA_TO_DEVICE); + qm_fqd_stashing_set64(&mcc->initfq.fqd, phys_fq); + } + } + if (flags & QMAN_INITFQ_FLAG_LOCAL) { + mcc->initfq.fqd.dest.channel = p->config->public_cfg.channel; + if (!(mcc->initfq.we_mask & QM_INITFQ_WE_DESTWQ)) { + mcc->initfq.we_mask |= QM_INITFQ_WE_DESTWQ; + mcc->initfq.fqd.dest.wq = 4; + } + } + qm_mc_commit(&p->p, myverb); + while (!(mcr = qm_mc_result(&p->p))) + cpu_relax(); + DPA_ASSERT((mcr->verb & QM_MCR_VERB_MASK) == myverb); + res = mcr->result; + if (res != QM_MCR_RESULT_OK) { + FQUNLOCK(fq); + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + return -EIO; + } + if (opts) { + if (opts->we_mask & QM_INITFQ_WE_FQCTRL) { + if (opts->fqd.fq_ctrl & QM_FQCTRL_CGE) + fq_set(fq, QMAN_FQ_STATE_CGR_EN); + else + fq_clear(fq, QMAN_FQ_STATE_CGR_EN); + } + if (opts->we_mask & QM_INITFQ_WE_CGID) + fq->cgr_groupid = opts->fqd.cgid; + } + fq->state = (flags & QMAN_INITFQ_FLAG_SCHED) ? + qman_fq_state_sched : qman_fq_state_parked; + FQUNLOCK(fq); + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + return 0; +} +EXPORT_SYMBOL(qman_init_fq); + +int qman_schedule_fq(struct qman_fq *fq) +{ + struct qm_mc_command *mcc; + struct qm_mc_result *mcr; + struct qman_portal *p; + unsigned long irqflags __maybe_unused; + int ret = 0; + u8 res; + + DPA_ASSERT(fq->state == qman_fq_state_parked); +#ifdef CONFIG_FSL_DPA_CHECKING + if (unlikely(fq_isset(fq, QMAN_FQ_FLAG_NO_MODIFY))) + return -EINVAL; +#endif + /* Issue a ALTERFQ_SCHED management command */ + p = get_affine_portal(); + PORTAL_IRQ_LOCK(p, irqflags); + FQLOCK(fq); + if (unlikely((fq_isset(fq, QMAN_FQ_STATE_CHANGING)) || + (fq->state != qman_fq_state_parked))) { + ret = -EBUSY; + goto out; + } + mcc = qm_mc_start(&p->p); + mcc->alterfq.fqid = fq->fqid; + qm_mc_commit(&p->p, QM_MCC_VERB_ALTER_SCHED); + while (!(mcr = qm_mc_result(&p->p))) + cpu_relax(); + DPA_ASSERT((mcr->verb & QM_MCR_VERB_MASK) == QM_MCR_VERB_ALTER_SCHED); + res = mcr->result; + if (res != QM_MCR_RESULT_OK) { + ret = -EIO; + goto out; + } + fq->state = qman_fq_state_sched; +out: + FQUNLOCK(fq); + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + return ret; +} +EXPORT_SYMBOL(qman_schedule_fq); + +int qman_retire_fq(struct qman_fq *fq, u32 *flags) +{ + struct qm_mc_command *mcc; + struct qm_mc_result *mcr; + struct qman_portal *p; + unsigned long irqflags __maybe_unused; + int rval; + u8 res; + + DPA_ASSERT((fq->state == qman_fq_state_parked) || + (fq->state == qman_fq_state_sched)); +#ifdef CONFIG_FSL_DPA_CHECKING + if (unlikely(fq_isset(fq, QMAN_FQ_FLAG_NO_MODIFY))) + return -EINVAL; +#endif + p = get_affine_portal(); + PORTAL_IRQ_LOCK(p, irqflags); + FQLOCK(fq); + if (unlikely((fq_isset(fq, QMAN_FQ_STATE_CHANGING)) || + (fq->state == qman_fq_state_retired) || + (fq->state == qman_fq_state_oos))) { + rval = -EBUSY; + goto out; + } + rval = table_push_fq(p, fq); + if (rval) + goto out; + mcc = qm_mc_start(&p->p); + mcc->alterfq.fqid = fq->fqid; + qm_mc_commit(&p->p, QM_MCC_VERB_ALTER_RETIRE); + while (!(mcr = qm_mc_result(&p->p))) + cpu_relax(); + DPA_ASSERT((mcr->verb & QM_MCR_VERB_MASK) == QM_MCR_VERB_ALTER_RETIRE); + res = mcr->result; + /* "Elegant" would be to treat OK/PENDING the same way; set CHANGING, + * and defer the flags until FQRNI or FQRN (respectively) show up. But + * "Friendly" is to process OK immediately, and not set CHANGING. We do + * friendly, otherwise the caller doesn't necessarily have a fully + * "retired" FQ on return even if the retirement was immediate. However + * this does mean some code duplication between here and + * fq_state_change(). */ + if (likely(res == QM_MCR_RESULT_OK)) { + rval = 0; + /* Process 'fq' right away, we'll ignore FQRNI */ + if (mcr->alterfq.fqs & QM_MCR_FQS_NOTEMPTY) + fq_set(fq, QMAN_FQ_STATE_NE); + if (mcr->alterfq.fqs & QM_MCR_FQS_ORLPRESENT) + fq_set(fq, QMAN_FQ_STATE_ORL); + else + table_del_fq(p, fq); + if (flags) + *flags = fq->flags; + fq->state = qman_fq_state_retired; + if (fq->cb.fqs) { + /* Another issue with supporting "immediate" retirement + * is that we're forced to drop FQRNIs, because by the + * time they're seen it may already be "too late" (the + * fq may have been OOS'd and free()'d already). But if + * the upper layer wants a callback whether it's + * immediate or not, we have to fake a "MR" entry to + * look like an FQRNI... */ + struct qm_mr_entry msg; + msg.verb = QM_MR_VERB_FQRNI; + msg.fq.fqs = mcr->alterfq.fqs; + msg.fq.fqid = fq->fqid; +#ifdef CONFIG_FSL_QMAN_FQ_LOOKUP + msg.fq.contextB = fq->key; +#else + msg.fq.contextB = (u32)(uintptr_t)fq; +#endif + fq->cb.fqs(p, fq, &msg); + } + } else if (res == QM_MCR_RESULT_PENDING) { + rval = 1; + fq_set(fq, QMAN_FQ_STATE_CHANGING); + } else { + rval = -EIO; + table_del_fq(p, fq); + } +out: + FQUNLOCK(fq); + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + return rval; +} +EXPORT_SYMBOL(qman_retire_fq); + +int qman_oos_fq(struct qman_fq *fq) +{ + struct qm_mc_command *mcc; + struct qm_mc_result *mcr; + struct qman_portal *p; + unsigned long irqflags __maybe_unused; + int ret = 0; + u8 res; + + DPA_ASSERT(fq->state == qman_fq_state_retired); +#ifdef CONFIG_FSL_DPA_CHECKING + if (unlikely(fq_isset(fq, QMAN_FQ_FLAG_NO_MODIFY))) + return -EINVAL; +#endif + p = get_affine_portal(); + PORTAL_IRQ_LOCK(p, irqflags); + FQLOCK(fq); + if (unlikely((fq_isset(fq, QMAN_FQ_STATE_BLOCKOOS)) || + (fq->state != qman_fq_state_retired))) { + ret = -EBUSY; + goto out; + } + mcc = qm_mc_start(&p->p); + mcc->alterfq.fqid = fq->fqid; + qm_mc_commit(&p->p, QM_MCC_VERB_ALTER_OOS); + while (!(mcr = qm_mc_result(&p->p))) + cpu_relax(); + DPA_ASSERT((mcr->verb & QM_MCR_VERB_MASK) == QM_MCR_VERB_ALTER_OOS); + res = mcr->result; + if (res != QM_MCR_RESULT_OK) { + ret = -EIO; + goto out; + } + fq->state = qman_fq_state_oos; +out: + FQUNLOCK(fq); + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + return ret; +} +EXPORT_SYMBOL(qman_oos_fq); + +int qman_query_fq(struct qman_fq *fq, struct qm_fqd *fqd) +{ + struct qm_mc_command *mcc; + struct qm_mc_result *mcr; + struct qman_portal *p = get_affine_portal(); + unsigned long irqflags __maybe_unused; + u8 res; + + PORTAL_IRQ_LOCK(p, irqflags); + mcc = qm_mc_start(&p->p); + mcc->queryfq.fqid = fq->fqid; + qm_mc_commit(&p->p, QM_MCC_VERB_QUERYFQ); + while (!(mcr = qm_mc_result(&p->p))) + cpu_relax(); + DPA_ASSERT((mcr->verb & QM_MCR_VERB_MASK) == QM_MCR_VERB_QUERYFQ); + res = mcr->result; + if (res == QM_MCR_RESULT_OK) + *fqd = mcr->queryfq.fqd; + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + if (res != QM_MCR_RESULT_OK) + return -EIO; + return 0; +} +EXPORT_SYMBOL(qman_query_fq); + +int qman_query_fq_np(struct qman_fq *fq, struct qm_mcr_queryfq_np *np) +{ + struct qm_mc_command *mcc; + struct qm_mc_result *mcr; + struct qman_portal *p = get_affine_portal(); + unsigned long irqflags __maybe_unused; + u8 res; + + PORTAL_IRQ_LOCK(p, irqflags); + mcc = qm_mc_start(&p->p); + mcc->queryfq.fqid = fq->fqid; + qm_mc_commit(&p->p, QM_MCC_VERB_QUERYFQ_NP); + while (!(mcr = qm_mc_result(&p->p))) + cpu_relax(); + DPA_ASSERT((mcr->verb & QM_MCR_VERB_MASK) == QM_MCR_VERB_QUERYFQ_NP); + res = mcr->result; + if (res == QM_MCR_RESULT_OK) + *np = mcr->queryfq_np; + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + if (res != QM_MCR_RESULT_OK) + return -EIO; + return 0; +} +EXPORT_SYMBOL(qman_query_fq_np); + +int qman_query_wq(u8 query_dedicated, struct qm_mcr_querywq *wq) +{ + struct qm_mc_command *mcc; + struct qm_mc_result *mcr; + struct qman_portal *p = get_affine_portal(); + unsigned long irqflags __maybe_unused; + u8 res, myverb; + + PORTAL_IRQ_LOCK(p, irqflags); + myverb = (query_dedicated) ? QM_MCR_VERB_QUERYWQ_DEDICATED : + QM_MCR_VERB_QUERYWQ; + mcc = qm_mc_start(&p->p); + mcc->querywq.channel.id = wq->channel.id; + qm_mc_commit(&p->p, myverb); + while (!(mcr = qm_mc_result(&p->p))) + cpu_relax(); + DPA_ASSERT((mcr->verb & QM_MCR_VERB_MASK) == myverb); + res = mcr->result; + if (res == QM_MCR_RESULT_OK) + *wq = mcr->querywq; + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + if (res != QM_MCR_RESULT_OK) { + pr_err("QUERYWQ failed: %s\n", mcr_result_str(res)); + return -EIO; + } + return 0; +} +EXPORT_SYMBOL(qman_query_wq); + +int qman_testwrite_cgr(struct qman_cgr *cgr, u64 i_bcnt, + struct qm_mcr_cgrtestwrite *result) +{ + struct qm_mc_command *mcc; + struct qm_mc_result *mcr; + struct qman_portal *p = get_affine_portal(); + unsigned long irqflags __maybe_unused; + u8 res; + + PORTAL_IRQ_LOCK(p, irqflags); + mcc = qm_mc_start(&p->p); + mcc->cgrtestwrite.cgid = cgr->cgrid; + mcc->cgrtestwrite.i_bcnt_hi = (u8)(i_bcnt >> 32); + mcc->cgrtestwrite.i_bcnt_lo = (u32)i_bcnt; + qm_mc_commit(&p->p, QM_MCC_VERB_CGRTESTWRITE); + while (!(mcr = qm_mc_result(&p->p))) + cpu_relax(); + DPA_ASSERT((mcr->verb & QM_MCR_VERB_MASK) == QM_MCC_VERB_CGRTESTWRITE); + res = mcr->result; + if (res == QM_MCR_RESULT_OK) + *result = mcr->cgrtestwrite; + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + if (res != QM_MCR_RESULT_OK) { + pr_err("CGR TEST WRITE failed: %s\n", mcr_result_str(res)); + return -EIO; + } + return 0; +} +EXPORT_SYMBOL(qman_testwrite_cgr); + +int qman_query_cgr(struct qman_cgr *cgr, struct qm_mcr_querycgr *cgrd) +{ + struct qm_mc_command *mcc; + struct qm_mc_result *mcr; + struct qman_portal *p = get_affine_portal(); + unsigned long irqflags __maybe_unused; + u8 res; + + PORTAL_IRQ_LOCK(p, irqflags); + mcc = qm_mc_start(&p->p); + mcc->querycgr.cgid = cgr->cgrid; + qm_mc_commit(&p->p, QM_MCC_VERB_QUERYCGR); + while (!(mcr = qm_mc_result(&p->p))) + cpu_relax(); + DPA_ASSERT((mcr->verb & QM_MCR_VERB_MASK) == QM_MCC_VERB_QUERYCGR); + res = mcr->result; + if (res == QM_MCR_RESULT_OK) + *cgrd = mcr->querycgr; + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + if (res != QM_MCR_RESULT_OK) { + pr_err("QUERY_CGR failed: %s\n", mcr_result_str(res)); + return -EIO; + } + return 0; +} +EXPORT_SYMBOL(qman_query_cgr); + +int qman_query_congestion(struct qm_mcr_querycongestion *congestion) +{ + struct qm_mc_result *mcr; + struct qman_portal *p = get_affine_portal(); + unsigned long irqflags __maybe_unused; + u8 res; + + PORTAL_IRQ_LOCK(p, irqflags); + qm_mc_start(&p->p); + qm_mc_commit(&p->p, QM_MCC_VERB_QUERYCONGESTION); + while (!(mcr = qm_mc_result(&p->p))) + cpu_relax(); + DPA_ASSERT((mcr->verb & QM_MCR_VERB_MASK) == + QM_MCC_VERB_QUERYCONGESTION); + res = mcr->result; + if (res == QM_MCR_RESULT_OK) + *congestion = mcr->querycongestion; + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + if (res != QM_MCR_RESULT_OK) { + pr_err("QUERY_CONGESTION failed: %s\n", mcr_result_str(res)); + return -EIO; + } + return 0; +} +EXPORT_SYMBOL(qman_query_congestion); + +/* internal function used as a wait_event() expression */ +static int set_vdqcr(struct qman_portal **p, struct qman_fq *fq, u32 vdqcr) +{ + unsigned long irqflags __maybe_unused; + int ret = -EBUSY; + *p = get_affine_portal(); + PORTAL_IRQ_LOCK(*p, irqflags); + if (!(*p)->vdqcr_owned) { + FQLOCK(fq); + if (fq_isset(fq, QMAN_FQ_STATE_VDQCR)) + goto escape; + fq_set(fq, QMAN_FQ_STATE_VDQCR); + FQUNLOCK(fq); + (*p)->vdqcr_owned = fq; + ret = 0; + } +escape: + PORTAL_IRQ_UNLOCK(*p, irqflags); + if (!ret) + qm_dqrr_vdqcr_set(&(*p)->p, vdqcr); + put_affine_portal(); + return ret; +} + +#ifdef CONFIG_FSL_DPA_CAN_WAIT +static int wait_vdqcr_start(struct qman_portal **p, struct qman_fq *fq, + u32 vdqcr, u32 flags) +{ + int ret = 0; + if (flags & QMAN_VOLATILE_FLAG_WAIT_INT) + ret = wait_event_interruptible(affine_queue, + !(ret = set_vdqcr(p, fq, vdqcr))); + else + wait_event(affine_queue, !(ret = set_vdqcr(p, fq, vdqcr))); + return ret; +} +#endif + +int qman_volatile_dequeue(struct qman_fq *fq, u32 flags __maybe_unused, + u32 vdqcr) +{ + struct qman_portal *p; + int ret; + + DPA_ASSERT(!fq || (fq->state == qman_fq_state_parked) || + (fq->state == qman_fq_state_retired)); + DPA_ASSERT(!fq || !(vdqcr & QM_VDQCR_FQID_MASK)); + DPA_ASSERT(!fq || !fq_isset(fq, QMAN_FQ_STATE_VDQCR)); + if (fq) + vdqcr = (vdqcr & ~QM_VDQCR_FQID_MASK) | fq->fqid; +#ifdef CONFIG_FSL_DPA_CAN_WAIT + if (flags & QMAN_VOLATILE_FLAG_WAIT) + ret = wait_vdqcr_start(&p, fq, vdqcr, flags); + else +#endif + ret = set_vdqcr(&p, fq, vdqcr); + if (ret) + return ret; + /* VDQCR is set */ +#ifdef CONFIG_FSL_DPA_CAN_WAIT + if (flags & QMAN_VOLATILE_FLAG_FINISH) { + if (flags & QMAN_VOLATILE_FLAG_WAIT_INT) + /* NB: don't propagate any error - the caller wouldn't + * know whether the VDQCR was issued or not. A signal + * could arrive after returning anyway, so the caller + * can check signal_pending() if that's an issue. */ + wait_event_interruptible(affine_queue, + !fq_isset(fq, QMAN_FQ_STATE_VDQCR)); + else + wait_event(affine_queue, + !fq_isset(fq, QMAN_FQ_STATE_VDQCR)); + } +#endif + return 0; +} +EXPORT_SYMBOL(qman_volatile_dequeue); + +static noinline void update_eqcr_ci(struct qman_portal *p, u8 avail) +{ + if (avail) + qm_eqcr_cce_prefetch(&p->p); + else + qm_eqcr_cce_update(&p->p); +} + +int qman_eqcr_is_empty(void) +{ + unsigned long irqflags __maybe_unused; + struct qman_portal *p = get_affine_portal(); + u8 avail; + + PORTAL_IRQ_LOCK(p, irqflags); + update_eqcr_ci(p, 0); + avail = qm_eqcr_get_fill(&p->p); + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + return (avail == 0); +} +EXPORT_SYMBOL(qman_eqcr_is_empty); + +static inline struct qm_eqcr_entry *try_eq_start(struct qman_portal **p, + unsigned long *irqflags __maybe_unused, + struct qman_fq *fq, + const struct qm_fd *fd, + u32 flags) +{ + struct qm_eqcr_entry *eq; + u8 avail; + + *p = get_affine_portal(); + PORTAL_IRQ_LOCK(*p, (*irqflags)); +#ifdef CONFIG_FSL_DPA_CAN_WAIT_SYNC + if (unlikely((flags & QMAN_ENQUEUE_FLAG_WAIT) && + (flags & QMAN_ENQUEUE_FLAG_WAIT_SYNC))) { + if ((*p)->eqci_owned) { + PORTAL_IRQ_UNLOCK(*p, (*irqflags)); + put_affine_portal(); + return NULL; + } + (*p)->eqci_owned = fq; + } +#endif + avail = qm_eqcr_get_avail(&(*p)->p); + if (avail < 2) + update_eqcr_ci(*p, avail); + eq = qm_eqcr_start(&(*p)->p); + if (unlikely(!eq)) { +#ifdef CONFIG_FSL_DPA_CAN_WAIT_SYNC + if (unlikely((flags & QMAN_ENQUEUE_FLAG_WAIT) && + (flags & QMAN_ENQUEUE_FLAG_WAIT_SYNC))) + (*p)->eqci_owned = NULL; +#endif + PORTAL_IRQ_UNLOCK(*p, (*irqflags)); + put_affine_portal(); + return NULL; + } + if (flags & QMAN_ENQUEUE_FLAG_DCA) + eq->dca = QM_EQCR_DCA_ENABLE | + ((flags & QMAN_ENQUEUE_FLAG_DCA_PARK) ? + QM_EQCR_DCA_PARK : 0) | + ((flags >> 8) & QM_EQCR_DCA_IDXMASK); + eq->fqid = fq->fqid; +#ifdef CONFIG_FSL_QMAN_FQ_LOOKUP + eq->tag = fq->key; +#else + eq->tag = (u32)(uintptr_t)fq; +#endif + /* From p4080 rev1 -> rev2, the FD struct's address went from 48-bit to + * 40-bit but rev1 chips will still interpret it as 48-bit, meaning we + * have to scrub the upper 8-bits, just in case the user left noise in + * there. Doing this selectively via a run-time check of the h/w + * revision (as we do for most errata, for example) is too slow in this + * critical path code. The most inexpensive way to handle this is just + * to reinterpret the FD as 4 32-bit words and to mask the first word + * appropriately, irrespecitive of the h/w revision. The struct fields + * corresponding to this word are; + * u8 dd:2; + * u8 liodn_offset:6; + * u8 bpid; + * u8 eliodn_offset:4; + * u8 __reserved:4; + * u8 addr_hi; + * So we mask this word with 0xc0ff00ff, which implicitly scrubs out + * liodn_offset, eliodn_offset, and __reserved - the latter two fields + * are interpreted as the 8 msbits of the 48-bit address in the case of + * rev1. + */ + { + const u32 *src = (const u32 *)fd; + u32 *dest = (u32 *)&eq->fd; + dest[0] = src[0] & 0xc0ff00ff; + dest[1] = src[1]; + dest[2] = src[2]; + dest[3] = src[3]; + } + return eq; +} + +#ifdef CONFIG_FSL_DPA_CAN_WAIT +static noinline struct qm_eqcr_entry *__wait_eq_start(struct qman_portal **p, + unsigned long *irqflags __maybe_unused, + struct qman_fq *fq, + const struct qm_fd *fd, + u32 flags) +{ + struct qm_eqcr_entry *eq = try_eq_start(p, irqflags, fq, fd, flags); + if (!eq) + qm_eqcr_set_ithresh(&(*p)->p, EQCR_ITHRESH); + return eq; +} +static noinline struct qm_eqcr_entry *wait_eq_start(struct qman_portal **p, + unsigned long *irqflags __maybe_unused, + struct qman_fq *fq, + const struct qm_fd *fd, + u32 flags) +{ + struct qm_eqcr_entry *eq; + if (flags & QMAN_ENQUEUE_FLAG_WAIT_INT) + wait_event_interruptible(affine_queue, + (eq = __wait_eq_start(p, irqflags, fq, fd, flags))); + else + wait_event(affine_queue, + (eq = __wait_eq_start(p, irqflags, fq, fd, flags))); + return eq; +} +#endif + +int qman_enqueue(struct qman_fq *fq, const struct qm_fd *fd, u32 flags) +{ + struct qman_portal *p; + struct qm_eqcr_entry *eq; + unsigned long irqflags __maybe_unused; + +#ifdef CONFIG_FSL_DPA_CAN_WAIT + if (flags & QMAN_ENQUEUE_FLAG_WAIT) + eq = wait_eq_start(&p, &irqflags, fq, fd, flags); + else +#endif + eq = try_eq_start(&p, &irqflags, fq, fd, flags); + if (!eq) + return -EBUSY; + /* Note: QM_EQCR_VERB_INTERRUPT == QMAN_ENQUEUE_FLAG_WAIT_SYNC */ + qm_eqcr_pvb_commit(&p->p, QM_EQCR_VERB_CMD_ENQUEUE | + (flags & (QM_EQCR_VERB_COLOUR_MASK | QM_EQCR_VERB_INTERRUPT))); + /* Factor the below out, it's used from qman_enqueue_orp() too */ + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); +#ifdef CONFIG_FSL_DPA_CAN_WAIT_SYNC + if (unlikely((flags & QMAN_ENQUEUE_FLAG_WAIT) && + (flags & QMAN_ENQUEUE_FLAG_WAIT_SYNC))) { + if (flags & QMAN_ENQUEUE_FLAG_WAIT_INT) + wait_event_interruptible(affine_queue, + (p->eqci_owned != fq)); + else + wait_event(affine_queue, (p->eqci_owned != fq)); + } +#endif + return 0; +} +EXPORT_SYMBOL(qman_enqueue); + +int qman_enqueue_orp(struct qman_fq *fq, const struct qm_fd *fd, u32 flags, + struct qman_fq *orp, u16 orp_seqnum) +{ + struct qman_portal *p; + struct qm_eqcr_entry *eq; + unsigned long irqflags __maybe_unused; + +#ifdef CONFIG_FSL_DPA_CAN_WAIT + if (flags & QMAN_ENQUEUE_FLAG_WAIT) + eq = wait_eq_start(&p, &irqflags, fq, fd, flags); + else +#endif + eq = try_eq_start(&p, &irqflags, fq, fd, flags); + if (!eq) + return -EBUSY; + /* Process ORP-specifics here */ + if (flags & QMAN_ENQUEUE_FLAG_NLIS) + orp_seqnum |= QM_EQCR_SEQNUM_NLIS; + else { + orp_seqnum &= ~QM_EQCR_SEQNUM_NLIS; + if (flags & QMAN_ENQUEUE_FLAG_NESN) + orp_seqnum |= QM_EQCR_SEQNUM_NESN; + else + /* No need to check 4 QMAN_ENQUEUE_FLAG_HOLE */ + orp_seqnum &= ~QM_EQCR_SEQNUM_NESN; + } + eq->seqnum = orp_seqnum; + eq->orp = orp->fqid; + /* Note: QM_EQCR_VERB_INTERRUPT == QMAN_ENQUEUE_FLAG_WAIT_SYNC */ + qm_eqcr_pvb_commit(&p->p, QM_EQCR_VERB_ORP | + ((flags & (QMAN_ENQUEUE_FLAG_HOLE | QMAN_ENQUEUE_FLAG_NESN)) ? + 0 : QM_EQCR_VERB_CMD_ENQUEUE) | + (flags & (QM_EQCR_VERB_COLOUR_MASK | QM_EQCR_VERB_INTERRUPT))); + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); +#ifdef CONFIG_FSL_DPA_CAN_WAIT_SYNC + if (unlikely((flags & QMAN_ENQUEUE_FLAG_WAIT) && + (flags & QMAN_ENQUEUE_FLAG_WAIT_SYNC))) { + if (flags & QMAN_ENQUEUE_FLAG_WAIT_INT) + wait_event_interruptible(affine_queue, + (p->eqci_owned != fq)); + else + wait_event(affine_queue, (p->eqci_owned != fq)); + } +#endif + return 0; +} +EXPORT_SYMBOL(qman_enqueue_orp); + +int qman_modify_cgr(struct qman_cgr *cgr, u32 flags, + struct qm_mcc_initcgr *opts) +{ + struct qm_mc_command *mcc; + struct qm_mc_result *mcr; + struct qman_portal *p = get_affine_portal(); + unsigned long irqflags __maybe_unused; + u8 res; + u8 verb = QM_MCC_VERB_MODIFYCGR; + + /* frame mode not supported on rev1.0 */ + if (unlikely(qman_ip_rev == QMAN_REV10)) { + if (opts && (opts->we_mask & QM_CGR_WE_MODE) && + opts->cgr.mode == QMAN_CGR_MODE_FRAME) { + put_affine_portal(); + return -EIO; + } + } + PORTAL_IRQ_LOCK(p, irqflags); + mcc = qm_mc_start(&p->p); + if (opts) + mcc->initcgr = *opts; + mcc->initcgr.cgid = cgr->cgrid; + if (flags & QMAN_CGR_FLAG_USE_INIT) + verb = QM_MCC_VERB_INITCGR; + qm_mc_commit(&p->p, verb); + while (!(mcr = qm_mc_result(&p->p))) + cpu_relax(); + DPA_ASSERT((mcr->verb & QM_MCR_VERB_MASK) == verb); + res = mcr->result; + PORTAL_IRQ_UNLOCK(p, irqflags); + put_affine_portal(); + return (res == QM_MCR_RESULT_OK) ? 0 : -EIO; +} +EXPORT_SYMBOL(qman_modify_cgr); + +#define TARG_MASK(n) (0x80000000 >> (n->config->public_cfg.channel - \ + qm_channel_swportal0)) + +int qman_create_cgr(struct qman_cgr *cgr, u32 flags, + struct qm_mcc_initcgr *opts) +{ + unsigned long irqflags __maybe_unused; + struct qm_mcr_querycgr cgr_state; + struct qm_mcc_initcgr local_opts; + int ret; + struct qman_portal *p; + + /* We have to check that the provided CGRID is within the limits of the + * data-structures, for obvious reasons. However we'll let h/w take + * care of determining whether it's within the limits of what exists on + * the SoC. */ + if (cgr->cgrid >= __CGR_NUM) + return -EINVAL; + + p = get_affine_portal(); + + memset(&local_opts, 0, sizeof(struct qm_mcc_initcgr)); + cgr->chan = p->config->public_cfg.channel; + spin_lock_irqsave(&p->cgr_lock, irqflags); + + /* if no opts specified and I'm not the first for this portal, just add + * to the list */ + if ((opts == NULL) && !list_empty(&p->cgr_cbs[cgr->cgrid])) + goto add_list; + + ret = qman_query_cgr(cgr, &cgr_state); + if (ret) + goto release_lock; + if (opts) + local_opts = *opts; + /* Overwrite TARG */ + local_opts.cgr.cscn_targ = cgr_state.cgr.cscn_targ | TARG_MASK(p); + local_opts.we_mask |= QM_CGR_WE_CSCN_TARG; + + /* send init if flags indicate so */ + if (opts && (flags & QMAN_CGR_FLAG_USE_INIT)) + ret = qman_modify_cgr(cgr, QMAN_CGR_FLAG_USE_INIT, &local_opts); + else + ret = qman_modify_cgr(cgr, 0, &local_opts); + if (ret) + goto release_lock; +add_list: + list_add(&cgr->node, &p->cgr_cbs[cgr->cgrid]); + + /* Determine if newly added object requires its callback to be called */ + ret = qman_query_cgr(cgr, &cgr_state); + if (ret) { + /* we can't go back, so proceed and return success, but screen + * and wail to the log file */ + pr_crit("CGR HW state partially modified\n"); + ret = 0; + goto release_lock; + } + if (cgr->cb && cgr_state.cgr.cscn_en && qman_cgrs_get(&p->cgrs[1], + cgr->cgrid)) + cgr->cb(p, cgr, 1); +release_lock: + spin_unlock_irqrestore(&p->cgr_lock, irqflags); + put_affine_portal(); + return ret; +} +EXPORT_SYMBOL(qman_create_cgr); + +int qman_delete_cgr(struct qman_cgr *cgr) +{ + unsigned long irqflags __maybe_unused; + struct qm_mcr_querycgr cgr_state; + struct qm_mcc_initcgr local_opts; + int ret = 0; + struct qman_portal *p = get_affine_portal(); + + if (cgr->chan != p->config->public_cfg.channel) { + pr_crit("Attempting to delete cgr from different portal " + "than it was create: create 0x%x, delete 0x%x\n", + cgr->chan, p->config->public_cfg.channel); + ret = -EINVAL; + goto put_portal; + } + memset(&local_opts, 0, sizeof(struct qm_mcc_initcgr)); + spin_lock_irqsave(&p->cgr_lock, irqflags); + list_del(&cgr->node); + /* If last in list, CSCN_TARG must be set accordingly */ + if (!list_empty(&p->cgr_cbs[cgr->cgrid])) + goto release_lock; + ret = qman_query_cgr(cgr, &cgr_state); + if (ret) { + /* add back to the list */ + list_add(&cgr->node, &p->cgr_cbs[cgr->cgrid]); + goto release_lock; + } + /* Overwrite TARG */ + local_opts.we_mask = QM_CGR_WE_CSCN_TARG; + local_opts.cgr.cscn_targ = cgr_state.cgr.cscn_targ & ~(TARG_MASK(p)); + ret = qman_modify_cgr(cgr, 0, &local_opts); + if (ret) + /* add back to the list */ + list_add(&cgr->node, &p->cgr_cbs[cgr->cgrid]); +release_lock: + spin_unlock_irqrestore(&p->cgr_lock, irqflags); +put_portal: + put_affine_portal(); + return ret; +} +EXPORT_SYMBOL(qman_delete_cgr); + --- linux-3.13.0.orig/drivers/staging/fsl_qbman/qman_low.h +++ linux-3.13.0/drivers/staging/fsl_qbman/qman_low.h @@ -0,0 +1,1186 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "qman_private.h" + +/***************************/ +/* Portal register assists */ +/***************************/ + +/* Cache-inhibited register offsets */ +#define REG_EQCR_PI_CINH 0x0000 +#define REG_EQCR_CI_CINH 0x0004 +#define REG_EQCR_ITR 0x0008 +#define REG_DQRR_PI_CINH 0x0040 +#define REG_DQRR_CI_CINH 0x0044 +#define REG_DQRR_ITR 0x0048 +#define REG_DQRR_DCAP 0x0050 +#define REG_DQRR_SDQCR 0x0054 +#define REG_DQRR_VDQCR 0x0058 +#define REG_DQRR_PDQCR 0x005c +#define REG_MR_PI_CINH 0x0080 +#define REG_MR_CI_CINH 0x0084 +#define REG_MR_ITR 0x0088 +#define REG_CFG 0x0100 +#define REG_ISR 0x0e00 +#define REG_ITPR 0x0e14 + +/* Cache-enabled register offsets */ +#define CL_EQCR 0x0000 +#define CL_DQRR 0x1000 +#define CL_MR 0x2000 +#define CL_EQCR_PI_CENA 0x3000 +#define CL_EQCR_CI_CENA 0x3100 +#define CL_DQRR_PI_CENA 0x3200 +#define CL_DQRR_CI_CENA 0x3300 +#define CL_MR_PI_CENA 0x3400 +#define CL_MR_CI_CENA 0x3500 +#define CL_CR 0x3800 +#define CL_RR0 0x3900 +#define CL_RR1 0x3940 + +/* BTW, the drivers (and h/w programming model) already obtain the required + * synchronisation for portal accesses via lwsync(), hwsync(), and + * data-dependencies. Use of barrier()s or other order-preserving primitives + * simply degrade performance. Hence the use of the __raw_*() interfaces, which + * simply ensure that the compiler treats the portal registers as volatile (ie. + * non-coherent). */ + +/* Cache-inhibited register access. */ +#define __qm_in(qm, o) __raw_readl((qm)->addr_ci + (o)) +#define __qm_out(qm, o, val) __raw_writel((val), (qm)->addr_ci + (o)) +#define qm_in(reg) __qm_in(&portal->addr, REG_##reg) +#define qm_out(reg, val) __qm_out(&portal->addr, REG_##reg, val) + +/* Cache-enabled (index) register access */ +#define __qm_cl_touch_ro(qm, o) dcbt_ro((qm)->addr_ce + (o)) +#define __qm_cl_touch_rw(qm, o) dcbt_rw((qm)->addr_ce + (o)) +#define __qm_cl_in(qm, o) __raw_readl((qm)->addr_ce + (o)) +#define __qm_cl_out(qm, o, val) \ + do { \ + u32 *__tmpclout = (qm)->addr_ce + (o); \ + __raw_writel((val), __tmpclout); \ + dcbf(__tmpclout); \ + } while (0) +#define __qm_cl_invalidate(qm, o) dcbi((qm)->addr_ce + (o)) +#define qm_cl_touch_ro(reg) __qm_cl_touch_ro(&portal->addr, CL_##reg##_CENA) +#define qm_cl_touch_rw(reg) __qm_cl_touch_rw(&portal->addr, CL_##reg##_CENA) +#define qm_cl_in(reg) __qm_cl_in(&portal->addr, CL_##reg##_CENA) +#define qm_cl_out(reg, val) __qm_cl_out(&portal->addr, CL_##reg##_CENA, val) +#define qm_cl_invalidate(reg) __qm_cl_invalidate(&portal->addr, CL_##reg##_CENA) + +/* Cache-enabled ring access */ +#define qm_cl(base, idx) ((void *)base + ((idx) << 6)) + +/* Cyclic helper for rings. FIXME: once we are able to do fine-grain perf + * analysis, look at using the "extra" bit in the ring index registers to avoid + * cyclic issues. */ +static inline u8 cyc_diff(u8 ringsize, u8 first, u8 last) +{ + /* 'first' is included, 'last' is excluded */ + if (first <= last) + return last - first; + return ringsize + last - first; +} + +/* Portal modes. + * Enum types; + * pmode == production mode + * cmode == consumption mode, + * dmode == h/w dequeue mode. + * Enum values use 3 letter codes. First letter matches the portal mode, + * remaining two letters indicate; + * ci == cache-inhibited portal register + * ce == cache-enabled portal register + * vb == in-band valid-bit (cache-enabled) + * dc == DCA (Discrete Consumption Acknowledgement), DQRR-only + * As for "enum qm_dqrr_dmode", it should be self-explanatory. + */ +enum qm_eqcr_pmode { /* matches QCSP_CFG::EPM */ + qm_eqcr_pci = 0, /* PI index, cache-inhibited */ + qm_eqcr_pce = 1, /* PI index, cache-enabled */ + qm_eqcr_pvb = 2 /* valid-bit */ +}; +enum qm_eqcr_cmode { /* s/w-only */ + qm_eqcr_cci, /* CI index, cache-inhibited */ + qm_eqcr_cce /* CI index, cache-enabled */ +}; +enum qm_dqrr_dmode { /* matches QCSP_CFG::DP */ + qm_dqrr_dpush = 0, /* SDQCR + VDQCR */ + qm_dqrr_dpull = 1 /* PDQCR */ +}; +enum qm_dqrr_pmode { /* s/w-only */ + qm_dqrr_pci, /* reads DQRR_PI_CINH */ + qm_dqrr_pce, /* reads DQRR_PI_CENA */ + qm_dqrr_pvb /* reads valid-bit */ +}; +enum qm_dqrr_cmode { /* matches QCSP_CFG::DCM */ + qm_dqrr_cci = 0, /* CI index, cache-inhibited */ + qm_dqrr_cce = 1, /* CI index, cache-enabled */ + qm_dqrr_cdc = 2 /* Discrete Consumption Acknowledgement */ +}; +enum qm_mr_pmode { /* s/w-only */ + qm_mr_pci, /* reads MR_PI_CINH */ + qm_mr_pce, /* reads MR_PI_CENA */ + qm_mr_pvb /* reads valid-bit */ +}; +enum qm_mr_cmode { /* matches QCSP_CFG::MM */ + qm_mr_cci = 0, /* CI index, cache-inhibited */ + qm_mr_cce = 1 /* CI index, cache-enabled */ +}; + + +/* ------------------------- */ +/* --- Portal structures --- */ + +#define QM_EQCR_SIZE 8 +#define QM_DQRR_SIZE 16 +#define QM_MR_SIZE 8 + +struct qm_eqcr { + struct qm_eqcr_entry *ring, *cursor; + u8 ci, available, ithresh, vbit; +#ifdef CONFIG_FSL_DPA_CHECKING + u32 busy; + enum qm_eqcr_pmode pmode; + enum qm_eqcr_cmode cmode; +#endif +}; + +struct qm_dqrr { + const struct qm_dqrr_entry *ring, *cursor; + u8 pi, ci, fill, ithresh, vbit; +#ifdef CONFIG_FSL_DPA_CHECKING +#define QM_DQRR_FLAG_RE 0x01 /* Stash ring entries */ +#define QM_DQRR_FLAG_SE 0x02 /* Stash data */ + u8 flags; + enum qm_dqrr_dmode dmode; + enum qm_dqrr_pmode pmode; + enum qm_dqrr_cmode cmode; +#endif +}; + +struct qm_mr { + const struct qm_mr_entry *ring, *cursor; + u8 pi, ci, fill, ithresh, vbit; +#ifdef CONFIG_FSL_DPA_CHECKING + enum qm_mr_pmode pmode; + enum qm_mr_cmode cmode; +#endif +}; + +struct qm_mc { + struct qm_mc_command *cr; + struct qm_mc_result *rr; + u8 rridx, vbit; +#ifdef CONFIG_FSL_DPA_CHECKING + enum { + /* Can be _mc_start()ed */ + mc_idle, + /* Can be _mc_commit()ed or _mc_abort()ed */ + mc_user, + /* Can only be _mc_retry()ed */ + mc_hw + } state; +#endif +}; + +#ifdef CONFIG_FSL_QMAN_BUG_AND_FEATURE_REV1 +/* For workarounds that require storage. The struct alignment is required for + * cases where operations on "shadow" structs need the same alignment as is + * present on the corresponding h/w data structs (specifically, there is a + * zero-bit present above the range required to address the ring, so that + * iteration can be achieved by incrementing a ring pointer and clearing the + * carry-bit). The "portal" struct needs the same alignment because this type + * goes at its head, so it has a more radical alignment requirement if this + * structure is used. (NB: "64" instead of "L1_CACHE_BYTES", because this + * alignment relates to the h/w interface, not the CPU cache granularity!)*/ +#define QM_PORTAL_ALIGNMENT __attribute__((aligned(32 * 64))) +struct qm_portal_bugs { + /* shadow MR ring, for QMAN9 workaround, 8-CL-aligned */ + struct qm_mr_entry mr[QM_MR_SIZE]; + /* shadow MC result, for QMAN6 and QMAN7 workarounds, CL-aligned */ + struct qm_mc_result result; + /* boolean switch for QMAN7 workaround */ + int initfq_and_sched; +} QM_PORTAL_ALIGNMENT; +#else +#define QM_PORTAL_ALIGNMENT ____cacheline_aligned +#endif + +struct qm_addr { + void __iomem *addr_ce; /* cache-enabled */ + void __iomem *addr_ci; /* cache-inhibited */ +}; + +struct qm_portal { +#ifdef CONFIG_FSL_QMAN_BUG_AND_FEATURE_REV1 + struct qm_portal_bugs bugs; +#endif + /* In the non-CONFIG_FSL_DPA_CHECKING case, the following stuff up to + * and including 'mc' fits within a cacheline (yay!). The 'config' part + * is setup-only, so isn't a cause for a concern. In other words, don't + * rearrange this structure on a whim, there be dragons ... */ + struct qm_addr addr; + struct qm_eqcr eqcr; + struct qm_dqrr dqrr; + struct qm_mr mr; + struct qm_mc mc; +} QM_PORTAL_ALIGNMENT; + + +/* ---------------- */ +/* --- EQCR API --- */ + +/* Bit-wise logic to wrap a ring pointer by clearing the "carry bit" */ +#define EQCR_CARRYCLEAR(p) \ + (void *)((unsigned long)(p) & (~(unsigned long)(QM_EQCR_SIZE << 6))) + +/* Bit-wise logic to convert a ring pointer to a ring index */ +static inline u8 EQCR_PTR2IDX(struct qm_eqcr_entry *e) +{ + return ((uintptr_t)e >> 6) & (QM_EQCR_SIZE - 1); +} + +/* Increment the 'cursor' ring pointer, taking 'vbit' into account */ +static inline void EQCR_INC(struct qm_eqcr *eqcr) +{ + /* NB: this is odd-looking, but experiments show that it generates fast + * code with essentially no branching overheads. We increment to the + * next EQCR pointer and handle overflow and 'vbit'. */ + struct qm_eqcr_entry *partial = eqcr->cursor + 1; + eqcr->cursor = EQCR_CARRYCLEAR(partial); + if (partial != eqcr->cursor) + eqcr->vbit ^= QM_EQCR_VERB_VBIT; +} + +static inline int qm_eqcr_init(struct qm_portal *portal, + enum qm_eqcr_pmode pmode, + __maybe_unused enum qm_eqcr_cmode cmode) +{ + /* This use of 'register', as well as all other occurances, is because + * it has been observed to generate much faster code with gcc than is + * otherwise the case. */ + register struct qm_eqcr *eqcr = &portal->eqcr; + u32 cfg; + u8 pi; + + eqcr->ring = portal->addr.addr_ce + CL_EQCR; + eqcr->ci = qm_in(EQCR_CI_CINH) & (QM_EQCR_SIZE - 1); + qm_cl_invalidate(EQCR_CI); + pi = qm_in(EQCR_PI_CINH) & (QM_EQCR_SIZE - 1); + eqcr->cursor = eqcr->ring + pi; + eqcr->vbit = (qm_in(EQCR_PI_CINH) & QM_EQCR_SIZE) ? + QM_EQCR_VERB_VBIT : 0; + eqcr->available = QM_EQCR_SIZE - 1 - + cyc_diff(QM_EQCR_SIZE, eqcr->ci, pi); + eqcr->ithresh = qm_in(EQCR_ITR); +#ifdef CONFIG_FSL_DPA_CHECKING + eqcr->busy = 0; + eqcr->pmode = pmode; + eqcr->cmode = cmode; +#endif + cfg = (qm_in(CFG) & 0x00ffffff) | + ((pmode & 0x3) << 24); /* QCSP_CFG::EPM */ + qm_out(CFG, cfg); + return 0; +} + +static inline void qm_eqcr_finish(struct qm_portal *portal) +{ + register struct qm_eqcr *eqcr = &portal->eqcr; + u8 pi = qm_in(EQCR_PI_CINH) & (QM_EQCR_SIZE - 1); + u8 ci = qm_in(EQCR_CI_CINH) & (QM_EQCR_SIZE - 1); + + DPA_ASSERT(!eqcr->busy); + if (pi != EQCR_PTR2IDX(eqcr->cursor)) + pr_crit("losing uncommited EQCR entries\n"); + if (ci != eqcr->ci) + pr_crit("missing existing EQCR completions\n"); + if (eqcr->ci != EQCR_PTR2IDX(eqcr->cursor)) + pr_crit("EQCR destroyed unquiesced\n"); +} + +static inline struct qm_eqcr_entry *qm_eqcr_start(struct qm_portal *portal) +{ + register struct qm_eqcr *eqcr = &portal->eqcr; + DPA_ASSERT(!eqcr->busy); + if (!eqcr->available) + return NULL; +#ifdef CONFIG_FSL_DPA_CHECKING + eqcr->busy = 1; +#endif + dcbz_64(eqcr->cursor); + return eqcr->cursor; +} + +static inline void qm_eqcr_abort(struct qm_portal *portal) +{ + __maybe_unused register struct qm_eqcr *eqcr = &portal->eqcr; + DPA_ASSERT(eqcr->busy); +#ifdef CONFIG_FSL_DPA_CHECKING + eqcr->busy = 0; +#endif +} + +static inline struct qm_eqcr_entry *qm_eqcr_pend_and_next( + struct qm_portal *portal, u8 myverb) +{ + register struct qm_eqcr *eqcr = &portal->eqcr; + DPA_ASSERT(eqcr->busy); + DPA_ASSERT(eqcr->pmode != qm_eqcr_pvb); + if (eqcr->available == 1) + return NULL; + eqcr->cursor->__dont_write_directly__verb = myverb | eqcr->vbit; + dcbf(eqcr->cursor); + EQCR_INC(eqcr); + eqcr->available--; + dcbz_64(eqcr->cursor); + return eqcr->cursor; +} + +#define EQCR_COMMIT_CHECKS(eqcr) \ +do { \ + DPA_ASSERT(eqcr->busy); \ + DPA_ASSERT(eqcr->cursor->orp == (eqcr->cursor->orp & 0x00ffffff)); \ + DPA_ASSERT(eqcr->cursor->fqid == (eqcr->cursor->fqid & 0x00ffffff)); \ +} while(0) + +static inline void qm_eqcr_pci_commit(struct qm_portal *portal, u8 myverb) +{ + register struct qm_eqcr *eqcr = &portal->eqcr; + EQCR_COMMIT_CHECKS(eqcr); + DPA_ASSERT(eqcr->pmode == qm_eqcr_pci); + eqcr->cursor->__dont_write_directly__verb = myverb | eqcr->vbit; + EQCR_INC(eqcr); + eqcr->available--; + dcbf(eqcr->cursor); + hwsync(); + qm_out(EQCR_PI_CINH, EQCR_PTR2IDX(eqcr->cursor)); +#ifdef CONFIG_FSL_DPA_CHECKING + eqcr->busy = 0; +#endif +} + +static inline void qm_eqcr_pce_prefetch(struct qm_portal *portal) +{ + __maybe_unused register struct qm_eqcr *eqcr = &portal->eqcr; + DPA_ASSERT(eqcr->pmode == qm_eqcr_pce); + qm_cl_invalidate(EQCR_PI); + qm_cl_touch_rw(EQCR_PI); +} + +static inline void qm_eqcr_pce_commit(struct qm_portal *portal, u8 myverb) +{ + register struct qm_eqcr *eqcr = &portal->eqcr; + EQCR_COMMIT_CHECKS(eqcr); + DPA_ASSERT(eqcr->pmode == qm_eqcr_pce); + eqcr->cursor->__dont_write_directly__verb = myverb | eqcr->vbit; + EQCR_INC(eqcr); + eqcr->available--; + dcbf(eqcr->cursor); + lwsync(); + qm_cl_out(EQCR_PI, EQCR_PTR2IDX(eqcr->cursor)); +#ifdef CONFIG_FSL_DPA_CHECKING + eqcr->busy = 0; +#endif +} + +static inline void qm_eqcr_pvb_commit(struct qm_portal *portal, u8 myverb) +{ + register struct qm_eqcr *eqcr = &portal->eqcr; + struct qm_eqcr_entry *eqcursor; + EQCR_COMMIT_CHECKS(eqcr); + DPA_ASSERT(eqcr->pmode == qm_eqcr_pvb); + lwsync(); + eqcursor = eqcr->cursor; + eqcursor->__dont_write_directly__verb = myverb | eqcr->vbit; + dcbf(eqcursor); + EQCR_INC(eqcr); + eqcr->available--; +#ifdef CONFIG_FSL_DPA_CHECKING + eqcr->busy = 0; +#endif +} + +static inline u8 qm_eqcr_cci_update(struct qm_portal *portal) +{ + register struct qm_eqcr *eqcr = &portal->eqcr; + u8 diff, old_ci = eqcr->ci; + DPA_ASSERT(eqcr->cmode == qm_eqcr_cci); + eqcr->ci = qm_in(EQCR_CI_CINH) & (QM_EQCR_SIZE - 1); + diff = cyc_diff(QM_EQCR_SIZE, old_ci, eqcr->ci); + eqcr->available += diff; + return diff; +} + +static inline void qm_eqcr_cce_prefetch(struct qm_portal *portal) +{ + __maybe_unused register struct qm_eqcr *eqcr = &portal->eqcr; + DPA_ASSERT(eqcr->cmode == qm_eqcr_cce); + qm_cl_touch_ro(EQCR_CI); +} + +static inline u8 qm_eqcr_cce_update(struct qm_portal *portal) +{ + register struct qm_eqcr *eqcr = &portal->eqcr; + u8 diff, old_ci = eqcr->ci; + DPA_ASSERT(eqcr->cmode == qm_eqcr_cce); + eqcr->ci = qm_cl_in(EQCR_CI) & (QM_EQCR_SIZE - 1); + qm_cl_invalidate(EQCR_CI); + diff = cyc_diff(QM_EQCR_SIZE, old_ci, eqcr->ci); + eqcr->available += diff; + return diff; +} + +static inline u8 qm_eqcr_get_ithresh(struct qm_portal *portal) +{ + register struct qm_eqcr *eqcr = &portal->eqcr; + return eqcr->ithresh; +} + +static inline void qm_eqcr_set_ithresh(struct qm_portal *portal, u8 ithresh) +{ + register struct qm_eqcr *eqcr = &portal->eqcr; + eqcr->ithresh = ithresh; + qm_out(EQCR_ITR, ithresh); +} + +static inline u8 qm_eqcr_get_avail(struct qm_portal *portal) +{ + register struct qm_eqcr *eqcr = &portal->eqcr; + return eqcr->available; +} + +static inline u8 qm_eqcr_get_fill(struct qm_portal *portal) +{ + register struct qm_eqcr *eqcr = &portal->eqcr; + return QM_EQCR_SIZE - 1 - eqcr->available; +} + + +/* ---------------- */ +/* --- DQRR API --- */ + +/* FIXME: many possible improvements; + * - look at changing the API to use pointer rather than index parameters now + * that 'cursor' is a pointer, + * - consider moving other parameters to pointer if it could help (ci) + */ + +#define DQRR_CARRYCLEAR(p) \ + (void *)((unsigned long)(p) & (~(unsigned long)(QM_DQRR_SIZE << 6))) + +static inline u8 DQRR_PTR2IDX(const struct qm_dqrr_entry *e) +{ + return ((uintptr_t)e >> 6) & (QM_DQRR_SIZE - 1); +} + +static inline const struct qm_dqrr_entry *DQRR_INC( + const struct qm_dqrr_entry *e) +{ + return DQRR_CARRYCLEAR(e + 1); +} + +static inline void qm_dqrr_set_maxfill(struct qm_portal *portal, u8 mf) +{ + qm_out(CFG, (qm_in(CFG) & 0xff0fffff) | + ((mf & (QM_DQRR_SIZE - 1)) << 20)); +} + +static inline int qm_dqrr_init(struct qm_portal *portal, + const struct qm_portal_config *config, + enum qm_dqrr_dmode dmode, + __maybe_unused enum qm_dqrr_pmode pmode, + enum qm_dqrr_cmode cmode, u8 max_fill, + int disable_stash) +{ + register struct qm_dqrr *dqrr = &portal->dqrr; + u32 cfg; + + if ((config->public_cfg.has_stashing) && (config->public_cfg.cpu == -1)) + return -EINVAL; + /* Make sure the DQRR will be idle when we enable */ + qm_out(DQRR_SDQCR, 0); + qm_out(DQRR_VDQCR, 0); + qm_out(DQRR_PDQCR, 0); + dqrr->ring = portal->addr.addr_ce + CL_DQRR; + dqrr->pi = qm_in(DQRR_PI_CINH) & (QM_DQRR_SIZE - 1); + dqrr->ci = qm_in(DQRR_CI_CINH) & (QM_DQRR_SIZE - 1); + dqrr->cursor = dqrr->ring + dqrr->ci; + dqrr->fill = cyc_diff(QM_DQRR_SIZE, dqrr->ci, dqrr->pi); + dqrr->vbit = (qm_in(DQRR_PI_CINH) & QM_DQRR_SIZE) ? + QM_DQRR_VERB_VBIT : 0; + dqrr->ithresh = qm_in(DQRR_ITR); +#ifdef CONFIG_FSL_DPA_CHECKING + dqrr->dmode = dmode; + dqrr->pmode = pmode; + dqrr->cmode = cmode; + dqrr->flags = 0; + if (!disable_stash) + dqrr->flags |= QM_DQRR_FLAG_RE | QM_DQRR_FLAG_SE; +#endif + cfg = (qm_in(CFG) & 0xff000f00) | + ((max_fill & (QM_DQRR_SIZE - 1)) << 20) | /* DQRR_MF */ + ((dmode & 1) << 18) | /* DP */ + ((cmode & 3) << 16) | /* DCM */ + (disable_stash ? 0 : /* RE+SE */ + config->public_cfg.has_stashing ? 0xa0 : 0) | + (0 ? 0x40 : 0) | /* Ignore RP */ + (0 ? 0x10 : 0); /* Ignore SP */ + qm_out(CFG, cfg); + qm_dqrr_set_maxfill(portal, max_fill); + return 0; +} + +static inline void qm_dqrr_finish(struct qm_portal *portal) +{ + __maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr; +#ifdef CONFIG_FSL_DPA_CHECKING + if ((dqrr->cmode != qm_dqrr_cdc) && + (dqrr->ci != DQRR_PTR2IDX(dqrr->cursor))) + pr_crit("Ignoring completed DQRR entries\n"); +#endif +} + +static inline const struct qm_dqrr_entry *qm_dqrr_current( + struct qm_portal *portal) +{ + register struct qm_dqrr *dqrr = &portal->dqrr; + if (!dqrr->fill) + return NULL; + return dqrr->cursor; +} + +static inline u8 qm_dqrr_cursor(struct qm_portal *portal) +{ + register struct qm_dqrr *dqrr = &portal->dqrr; + return DQRR_PTR2IDX(dqrr->cursor); +} + +static inline u8 qm_dqrr_next(struct qm_portal *portal) +{ + register struct qm_dqrr *dqrr = &portal->dqrr; + DPA_ASSERT(dqrr->fill); + dqrr->cursor = DQRR_INC(dqrr->cursor); + return --dqrr->fill; +} + +static inline u8 qm_dqrr_pci_update(struct qm_portal *portal) +{ + register struct qm_dqrr *dqrr = &portal->dqrr; + u8 diff, old_pi = dqrr->pi; + DPA_ASSERT(dqrr->pmode == qm_dqrr_pci); + dqrr->pi = qm_in(DQRR_PI_CINH) & (QM_DQRR_SIZE - 1); + diff = cyc_diff(QM_DQRR_SIZE, old_pi, dqrr->pi); + dqrr->fill += diff; + return diff; +} + +static inline void qm_dqrr_pce_prefetch(struct qm_portal *portal) +{ + __maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr; + DPA_ASSERT(dqrr->pmode == qm_dqrr_pce); + qm_cl_invalidate(DQRR_PI); + qm_cl_touch_ro(DQRR_PI); +} + +static inline u8 qm_dqrr_pce_update(struct qm_portal *portal) +{ + register struct qm_dqrr *dqrr = &portal->dqrr; + u8 diff, old_pi = dqrr->pi; + DPA_ASSERT(dqrr->pmode == qm_dqrr_pce); + dqrr->pi = qm_cl_in(DQRR_PI) & (QM_DQRR_SIZE - 1); + diff = cyc_diff(QM_DQRR_SIZE, old_pi, dqrr->pi); + dqrr->fill += diff; + return diff; +} + +static inline void qm_dqrr_pvb_update(struct qm_portal *portal, int coherent) +{ + register struct qm_dqrr *dqrr = &portal->dqrr; + const struct qm_dqrr_entry *res = qm_cl(dqrr->ring, dqrr->pi); + DPA_ASSERT(dqrr->pmode == qm_dqrr_pvb); + /* when accessing 'verb', use __raw_readb() to ensure that compiler + * inlining doesn't try to optimise out "excess reads". */ + if ((__raw_readb(&res->verb) & QM_DQRR_VERB_VBIT) == dqrr->vbit) { + dqrr->pi = (dqrr->pi + 1) & (QM_DQRR_SIZE - 1); + if (!dqrr->pi) + dqrr->vbit ^= QM_DQRR_VERB_VBIT; + dqrr->fill++; + if (!coherent) { + DPA_ASSERT(!(dqrr->flags & QM_DQRR_FLAG_RE)); + dcbit_ro(DQRR_INC(res)); + } + } else if (!coherent) { + DPA_ASSERT(!(dqrr->flags & QM_DQRR_FLAG_RE)); + dcbit_ro(res); + } +} + +static inline void qm_dqrr_cci_consume(struct qm_portal *portal, u8 num) +{ + register struct qm_dqrr *dqrr = &portal->dqrr; + DPA_ASSERT(dqrr->cmode == qm_dqrr_cci); + dqrr->ci = (dqrr->ci + num) & (QM_DQRR_SIZE - 1); + qm_out(DQRR_CI_CINH, dqrr->ci); +} + +static inline void qm_dqrr_cci_consume_to_current(struct qm_portal *portal) +{ + register struct qm_dqrr *dqrr = &portal->dqrr; + DPA_ASSERT(dqrr->cmode == qm_dqrr_cci); + dqrr->ci = DQRR_PTR2IDX(dqrr->cursor); + qm_out(DQRR_CI_CINH, dqrr->ci); +} + +static inline void qm_dqrr_cce_prefetch(struct qm_portal *portal) +{ + __maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr; + DPA_ASSERT(dqrr->cmode == qm_dqrr_cce); + qm_cl_invalidate(DQRR_CI); + qm_cl_touch_rw(DQRR_CI); +} + +static inline void qm_dqrr_cce_consume(struct qm_portal *portal, u8 num) +{ + register struct qm_dqrr *dqrr = &portal->dqrr; + DPA_ASSERT(dqrr->cmode == qm_dqrr_cce); + dqrr->ci = (dqrr->ci + num) & (QM_DQRR_SIZE - 1); + qm_cl_out(DQRR_CI, dqrr->ci); +} + +static inline void qm_dqrr_cce_consume_to_current(struct qm_portal *portal) +{ + register struct qm_dqrr *dqrr = &portal->dqrr; + DPA_ASSERT(dqrr->cmode == qm_dqrr_cce); + dqrr->ci = DQRR_PTR2IDX(dqrr->cursor); + qm_cl_out(DQRR_CI, dqrr->ci); +} + +static inline void qm_dqrr_cdc_consume_1(struct qm_portal *portal, u8 idx, + int park) +{ + __maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr; + DPA_ASSERT(dqrr->cmode == qm_dqrr_cdc); + DPA_ASSERT(idx < QM_DQRR_SIZE); + qm_out(DQRR_DCAP, (0 << 8) | /* S */ + ((park ? 1 : 0) << 6) | /* PK */ + idx); /* DCAP_CI */ +} + +static inline void qm_dqrr_cdc_consume_1ptr(struct qm_portal *portal, + const struct qm_dqrr_entry *dq, + int park) +{ + __maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr; + u8 idx = DQRR_PTR2IDX(dq); + DPA_ASSERT(dqrr->cmode == qm_dqrr_cdc); + DPA_ASSERT((dqrr->ring + idx) == dq); + DPA_ASSERT(idx < QM_DQRR_SIZE); + qm_out(DQRR_DCAP, (0 << 8) | /* DQRR_DCAP::S */ + ((park ? 1 : 0) << 6) | /* DQRR_DCAP::PK */ + idx); /* DQRR_DCAP::DCAP_CI */ +} + +static inline void qm_dqrr_cdc_consume_n(struct qm_portal *portal, u16 bitmask) +{ + __maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr; + DPA_ASSERT(dqrr->cmode == qm_dqrr_cdc); + qm_out(DQRR_DCAP, (1 << 8) | /* DQRR_DCAP::S */ + ((u32)bitmask << 16)); /* DQRR_DCAP::DCAP_CI */ +} + +static inline u8 qm_dqrr_cdc_cci(struct qm_portal *portal) +{ + __maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr; + DPA_ASSERT(dqrr->cmode == qm_dqrr_cdc); + return qm_in(DQRR_CI_CINH) & (QM_DQRR_SIZE - 1); +} + +static inline void qm_dqrr_cdc_cce_prefetch(struct qm_portal *portal) +{ + __maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr; + DPA_ASSERT(dqrr->cmode == qm_dqrr_cdc); + qm_cl_invalidate(DQRR_CI); + qm_cl_touch_ro(DQRR_CI); +} + +static inline u8 qm_dqrr_cdc_cce(struct qm_portal *portal) +{ + __maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr; + DPA_ASSERT(dqrr->cmode == qm_dqrr_cdc); + return qm_cl_in(DQRR_CI) & (QM_DQRR_SIZE - 1); +} + +static inline u8 qm_dqrr_get_ci(struct qm_portal *portal) +{ + register struct qm_dqrr *dqrr = &portal->dqrr; + DPA_ASSERT(dqrr->cmode != qm_dqrr_cdc); + return dqrr->ci; +} + +static inline void qm_dqrr_park(struct qm_portal *portal, u8 idx) +{ + __maybe_unused register struct qm_dqrr *dqrr = &portal->dqrr; + DPA_ASSERT(dqrr->cmode != qm_dqrr_cdc); + qm_out(DQRR_DCAP, (0 << 8) | /* S */ + (1 << 6) | /* PK */ + (idx & (QM_DQRR_SIZE - 1))); /* DCAP_CI */ +} + +static inline void qm_dqrr_park_current(struct qm_portal *portal) +{ + register struct qm_dqrr *dqrr = &portal->dqrr; + DPA_ASSERT(dqrr->cmode != qm_dqrr_cdc); + qm_out(DQRR_DCAP, (0 << 8) | /* S */ + (1 << 6) | /* PK */ + DQRR_PTR2IDX(dqrr->cursor)); /* DCAP_CI */ +} + +static inline void qm_dqrr_sdqcr_set(struct qm_portal *portal, u32 sdqcr) +{ + qm_out(DQRR_SDQCR, sdqcr); +} + +static inline u32 qm_dqrr_sdqcr_get(struct qm_portal *portal) +{ + return qm_in(DQRR_SDQCR); +} + +static inline void qm_dqrr_vdqcr_set(struct qm_portal *portal, u32 vdqcr) +{ + qm_out(DQRR_VDQCR, vdqcr); +} + +static inline u32 qm_dqrr_vdqcr_get(struct qm_portal *portal) +{ + return qm_in(DQRR_VDQCR); +} + +static inline void qm_dqrr_pdqcr_set(struct qm_portal *portal, u32 pdqcr) +{ + qm_out(DQRR_PDQCR, pdqcr); +} + +static inline u32 qm_dqrr_pdqcr_get(struct qm_portal *portal) +{ + return qm_in(DQRR_PDQCR); +} + +static inline u8 qm_dqrr_get_ithresh(struct qm_portal *portal) +{ + register struct qm_dqrr *dqrr = &portal->dqrr; + return dqrr->ithresh; +} + +static inline void qm_dqrr_set_ithresh(struct qm_portal *portal, u8 ithresh) +{ + qm_out(DQRR_ITR, ithresh); +} + +static inline u8 qm_dqrr_get_maxfill(struct qm_portal *portal) +{ + return (qm_in(CFG) & 0x00f00000) >> 20; +} + + +/* -------------- */ +/* --- MR API --- */ + +#define MR_CARRYCLEAR(p) \ + (void *)((unsigned long)(p) & (~(unsigned long)(QM_MR_SIZE << 6))) + +static inline u8 MR_PTR2IDX(const struct qm_mr_entry *e) +{ + return ((uintptr_t)e >> 6) & (QM_MR_SIZE - 1); +} + +static inline const struct qm_mr_entry *MR_INC(const struct qm_mr_entry *e) +{ + return MR_CARRYCLEAR(e + 1); +} + +#ifdef CONFIG_FSL_QMAN_BUG_AND_FEATURE_REV1 +static inline void __mr_copy_and_fixup(struct qm_portal *p, u8 idx) +{ + if (qman_ip_rev == QMAN_REV10) { + struct qm_mr_entry *shadow = qm_cl(p->bugs.mr, idx); + struct qm_mr_entry *res = qm_cl(p->mr.ring, idx); + copy_words(shadow, res, sizeof(*res)); + /* Bypass the QM_MR_RC_*** definitions, and check the byte value + * directly to handle the erratum. */ + if (shadow->ern.rc == 0x06) + shadow->ern.rc = 0x60; + } +} +#else +#define __mr_copy_and_fixup(p, idx) do { ; } while (0) +#endif + +static inline int qm_mr_init(struct qm_portal *portal, enum qm_mr_pmode pmode, + enum qm_mr_cmode cmode) +{ + register struct qm_mr *mr = &portal->mr; + u32 cfg; + int loop; + +#ifdef CONFIG_FSL_QMAN_BUG_AND_FEATURE_REV1 + if ((qman_ip_rev == QMAN_REV10) && (pmode != qm_mr_pvb)) { + pr_err("Qman is rev1, so QMAN9 workaround requires 'pvb'\n"); + return -EINVAL; + } +#endif + mr->ring = portal->addr.addr_ce + CL_MR; + mr->pi = qm_in(MR_PI_CINH) & (QM_MR_SIZE - 1); + mr->ci = qm_in(MR_CI_CINH) & (QM_MR_SIZE - 1); +#ifdef CONFIG_FSL_QMAN_BUG_AND_FEATURE_REV1 + if (qman_ip_rev == QMAN_REV10) + /* Situate the cursor in the shadow ring */ + mr->cursor = portal->bugs.mr + mr->ci; + else +#endif + mr->cursor = mr->ring + mr->ci; + mr->fill = cyc_diff(QM_MR_SIZE, mr->ci, mr->pi); + mr->vbit = (qm_in(MR_PI_CINH) & QM_MR_SIZE) ? QM_MR_VERB_VBIT : 0; + mr->ithresh = qm_in(MR_ITR); +#ifdef CONFIG_FSL_DPA_CHECKING + mr->pmode = pmode; + mr->cmode = cmode; +#endif + /* Only new entries get the copy-and-fixup treatment from + * qm_mr_pvb_update(), so perform it here for any stale entries. */ + for (loop = 0; loop < mr->fill; loop++) + __mr_copy_and_fixup(portal, (mr->ci + loop) & (QM_MR_SIZE - 1)); + cfg = (qm_in(CFG) & 0xfffff0ff) | + ((cmode & 1) << 8); /* QCSP_CFG:MM */ + qm_out(CFG, cfg); + return 0; +} + +static inline void qm_mr_finish(struct qm_portal *portal) +{ + register struct qm_mr *mr = &portal->mr; + if (mr->ci != MR_PTR2IDX(mr->cursor)) + pr_crit("Ignoring completed MR entries\n"); +} + +static inline const struct qm_mr_entry *qm_mr_current(struct qm_portal *portal) +{ + register struct qm_mr *mr = &portal->mr; + if (!mr->fill) + return NULL; + return mr->cursor; +} + +static inline u8 qm_mr_cursor(struct qm_portal *portal) +{ + register struct qm_mr *mr = &portal->mr; + return MR_PTR2IDX(mr->cursor); +} + +static inline u8 qm_mr_next(struct qm_portal *portal) +{ + register struct qm_mr *mr = &portal->mr; + DPA_ASSERT(mr->fill); + mr->cursor = MR_INC(mr->cursor); + return --mr->fill; +} + +static inline u8 qm_mr_pci_update(struct qm_portal *portal) +{ + register struct qm_mr *mr = &portal->mr; + u8 diff, old_pi = mr->pi; + DPA_ASSERT(mr->pmode == qm_mr_pci); + mr->pi = qm_in(MR_PI_CINH); + diff = cyc_diff(QM_MR_SIZE, old_pi, mr->pi); + mr->fill += diff; + return diff; +} + +static inline void qm_mr_pce_prefetch(struct qm_portal *portal) +{ + __maybe_unused register struct qm_mr *mr = &portal->mr; + DPA_ASSERT(mr->pmode == qm_mr_pce); + qm_cl_invalidate(MR_PI); + qm_cl_touch_ro(MR_PI); +} + +static inline u8 qm_mr_pce_update(struct qm_portal *portal) +{ + register struct qm_mr *mr = &portal->mr; + u8 diff, old_pi = mr->pi; + DPA_ASSERT(mr->pmode == qm_mr_pce); + mr->pi = qm_cl_in(MR_PI) & (QM_MR_SIZE - 1); + diff = cyc_diff(QM_MR_SIZE, old_pi, mr->pi); + mr->fill += diff; + return diff; +} + +static inline void qm_mr_pvb_update(struct qm_portal *portal) +{ + register struct qm_mr *mr = &portal->mr; + const struct qm_mr_entry *res = qm_cl(mr->ring, mr->pi); + DPA_ASSERT(mr->pmode == qm_mr_pvb); + /* when accessing 'verb', use __raw_readb() to ensure that compiler + * inlining doesn't try to optimise out "excess reads". */ + if ((__raw_readb(&res->verb) & QM_MR_VERB_VBIT) == mr->vbit) { + __mr_copy_and_fixup(portal, mr->pi); + mr->pi = (mr->pi + 1) & (QM_MR_SIZE - 1); + if (!mr->pi) + mr->vbit ^= QM_MR_VERB_VBIT; + mr->fill++; + res = MR_INC(res); + } + dcbit_ro(res); +} + +static inline void qm_mr_cci_consume(struct qm_portal *portal, u8 num) +{ + register struct qm_mr *mr = &portal->mr; + DPA_ASSERT(mr->cmode == qm_mr_cci); + mr->ci = (mr->ci + num) & (QM_MR_SIZE - 1); + qm_out(MR_CI_CINH, mr->ci); +} + +static inline void qm_mr_cci_consume_to_current(struct qm_portal *portal) +{ + register struct qm_mr *mr = &portal->mr; + DPA_ASSERT(mr->cmode == qm_mr_cci); + mr->ci = MR_PTR2IDX(mr->cursor); + qm_out(MR_CI_CINH, mr->ci); +} + +static inline void qm_mr_cce_prefetch(struct qm_portal *portal) +{ + __maybe_unused register struct qm_mr *mr = &portal->mr; + DPA_ASSERT(mr->cmode == qm_mr_cce); + qm_cl_invalidate(MR_CI); + qm_cl_touch_rw(MR_CI); +} + +static inline void qm_mr_cce_consume(struct qm_portal *portal, u8 num) +{ + register struct qm_mr *mr = &portal->mr; + DPA_ASSERT(mr->cmode == qm_mr_cce); + mr->ci = (mr->ci + num) & (QM_MR_SIZE - 1); + qm_cl_out(MR_CI, mr->ci); +} + +static inline void qm_mr_cce_consume_to_current(struct qm_portal *portal) +{ + register struct qm_mr *mr = &portal->mr; + DPA_ASSERT(mr->cmode == qm_mr_cce); + mr->ci = MR_PTR2IDX(mr->cursor); + qm_cl_out(MR_CI, mr->ci); +} + +static inline u8 qm_mr_get_ci(struct qm_portal *portal) +{ + register struct qm_mr *mr = &portal->mr; + return mr->ci; +} + +static inline u8 qm_mr_get_ithresh(struct qm_portal *portal) +{ + register struct qm_mr *mr = &portal->mr; + return mr->ithresh; +} + +static inline void qm_mr_set_ithresh(struct qm_portal *portal, u8 ithresh) +{ + qm_out(MR_ITR, ithresh); +} + + +/* ------------------------------ */ +/* --- Management command API --- */ + +static inline int qm_mc_init(struct qm_portal *portal) +{ + register struct qm_mc *mc = &portal->mc; + mc->cr = portal->addr.addr_ce + CL_CR; + mc->rr = portal->addr.addr_ce + CL_RR0; + mc->rridx = (__raw_readb(&mc->cr->__dont_write_directly__verb) & + QM_MCC_VERB_VBIT) ? 0 : 1; + mc->vbit = mc->rridx ? QM_MCC_VERB_VBIT : 0; +#ifdef CONFIG_FSL_DPA_CHECKING + mc->state = mc_idle; +#endif + return 0; +} + +static inline void qm_mc_finish(struct qm_portal *portal) +{ + __maybe_unused register struct qm_mc *mc = &portal->mc; + DPA_ASSERT(mc->state == mc_idle); +#ifdef CONFIG_FSL_DPA_CHECKING + if (mc->state != mc_idle) + pr_crit("Losing incomplete MC command\n"); +#endif +} + +static inline struct qm_mc_command *qm_mc_start(struct qm_portal *portal) +{ + register struct qm_mc *mc = &portal->mc; + DPA_ASSERT(mc->state == mc_idle); +#ifdef CONFIG_FSL_DPA_CHECKING + mc->state = mc_user; +#endif + dcbz_64(mc->cr); + return mc->cr; +} + +static inline void qm_mc_abort(struct qm_portal *portal) +{ + __maybe_unused register struct qm_mc *mc = &portal->mc; + DPA_ASSERT(mc->state == mc_user); +#ifdef CONFIG_FSL_DPA_CHECKING + mc->state = mc_idle; +#endif +} + +static inline void qm_mc_commit(struct qm_portal *portal, u8 myverb) +{ + register struct qm_mc *mc = &portal->mc; + struct qm_mc_result *rr = mc->rr + mc->rridx; + DPA_ASSERT(mc->state == mc_user); + lwsync(); +#ifdef CONFIG_FSL_QMAN_BUG_AND_FEATURE_REV1 + if ((qman_ip_rev == QMAN_REV10) && ((myverb & QM_MCC_VERB_MASK) == + QM_MCC_VERB_INITFQ_SCHED)) { + u32 fqid = mc->cr->initfq.fqid; + /* Do two commands to avoid the hw bug. Note, we poll locally + * rather than using qm_mc_result() because from a DPA_CHECKING + * perspective, we don't want to appear to have "finished" until + * both commands are done. */ + mc->cr->__dont_write_directly__verb = mc->vbit | + QM_MCC_VERB_INITFQ_PARKED; + dcbf(mc->cr); + portal->bugs.initfq_and_sched = 1; + do { + dcbit_ro(rr); + } while (!__raw_readb(&rr->verb)); +#ifdef CONFIG_FSL_DPA_CHECKING + mc->state = mc_idle; +#endif + if (rr->result != QM_MCR_RESULT_OK) { +#ifdef CONFIG_FSL_DPA_CHECKING + mc->state = mc_hw; +#endif + return; + } + mc->rridx ^= 1; + mc->vbit ^= QM_MCC_VERB_VBIT; + rr = mc->rr + mc->rridx; + dcbz_64(mc->cr); + mc->cr->alterfq.fqid = fqid; + lwsync(); + myverb = QM_MCC_VERB_ALTER_SCHED; + } else + portal->bugs.initfq_and_sched = 0; +#endif + mc->cr->__dont_write_directly__verb = myverb | mc->vbit; + dcbf(mc->cr); + dcbit_ro(rr); +#ifdef CONFIG_FSL_DPA_CHECKING + mc->state = mc_hw; +#endif +} + +static inline struct qm_mc_result *qm_mc_result(struct qm_portal *portal) +{ + register struct qm_mc *mc = &portal->mc; + struct qm_mc_result *rr = mc->rr + mc->rridx; + DPA_ASSERT(mc->state == mc_hw); + /* The inactive response register's verb byte always returns zero until + * its command is submitted and completed. This includes the valid-bit, + * in case you were wondering... */ + if (!__raw_readb(&rr->verb)) { + dcbit_ro(rr); + return NULL; + } +#ifdef CONFIG_FSL_QMAN_BUG_AND_FEATURE_REV1 + if (qman_ip_rev == QMAN_REV10) { + if ((__raw_readb(&rr->verb) & QM_MCR_VERB_MASK) == + QM_MCR_VERB_QUERYFQ) { + void *misplaced = (void *)rr + 50; + copy_words(&portal->bugs.result, rr, sizeof(*rr)); + rr = &portal->bugs.result; + copy_shorts(&rr->queryfq.fqd.td, misplaced, + sizeof(rr->queryfq.fqd.td)); + } else if (portal->bugs.initfq_and_sched) { + /* We split the user-requested command, make the final + * result match the requested type. */ + copy_words(&portal->bugs.result, rr, sizeof(*rr)); + rr = &portal->bugs.result; + rr->verb = (rr->verb & QM_MCR_VERB_RRID) | + QM_MCR_VERB_INITFQ_SCHED; + } + } +#endif + mc->rridx ^= 1; + mc->vbit ^= QM_MCC_VERB_VBIT; +#ifdef CONFIG_FSL_DPA_CHECKING + mc->state = mc_idle; +#endif + return rr; +} + + +/* ------------------------------------- */ +/* --- Portal interrupt register API --- */ + +static inline int qm_isr_init(__always_unused struct qm_portal *portal) +{ + return 0; +} + +static inline void qm_isr_finish(__always_unused struct qm_portal *portal) +{ +} + +static inline void qm_isr_set_iperiod(struct qm_portal *portal, u16 iperiod) +{ + qm_out(ITPR, iperiod); +} + +static inline u32 __qm_isr_read(struct qm_portal *portal, enum qm_isr_reg n) +{ + return __qm_in(&portal->addr, REG_ISR + (n << 2)); +} + +static inline void __qm_isr_write(struct qm_portal *portal, enum qm_isr_reg n, + u32 val) +{ + __qm_out(&portal->addr, REG_ISR + (n << 2), val); +} + --- linux-3.13.0.orig/drivers/staging/fsl_qbman/qman_private.h +++ linux-3.13.0/drivers/staging/fsl_qbman/qman_private.h @@ -0,0 +1,292 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "dpa_sys.h" +#include + +#if !defined(CONFIG_FSL_QMAN_FQ_LOOKUP) && defined(CONFIG_PPC64) +#error "_PPC64 requires _FSL_QMAN_FQ_LOOKUP" +#endif + + /* ----------------- */ + /* Congestion Groups */ + /* ----------------- */ +/* This wrapper represents a bit-array for the state of the 256 Qman congestion + * groups. Is also used as a *mask* for congestion groups, eg. so we ignore + * those that don't concern us. We harness the structure and accessor details + * already used in the management command to query congestion groups. */ +struct qman_cgrs { + struct __qm_mcr_querycongestion q; +}; +static inline void qman_cgrs_init(struct qman_cgrs *c) +{ + memset(c, 0, sizeof(*c)); +} +static inline void qman_cgrs_fill(struct qman_cgrs *c) +{ + memset(c, 0xff, sizeof(*c)); +} +static inline int qman_cgrs_get(struct qman_cgrs *c, int num) +{ + return QM_MCR_QUERYCONGESTION(&c->q, num); +} +static inline void qman_cgrs_set(struct qman_cgrs *c, int num) +{ + c->q.__state[__CGR_WORD(num)] |= (0x80000000 >> __CGR_SHIFT(num)); +} +static inline void qman_cgrs_unset(struct qman_cgrs *c, int num) +{ + c->q.__state[__CGR_WORD(num)] &= ~(0x80000000 >> __CGR_SHIFT(num)); +} +static inline int qman_cgrs_next(struct qman_cgrs *c, int num) +{ + while ((++num < __CGR_NUM) && !qman_cgrs_get(c, num)) + ; + return num; +} +static inline void qman_cgrs_cp(struct qman_cgrs *dest, + const struct qman_cgrs *src) +{ + memcpy(dest, src, sizeof(*dest)); +} +static inline void qman_cgrs_and(struct qman_cgrs *dest, + const struct qman_cgrs *a, const struct qman_cgrs *b) +{ + int ret; + u32 *_d = dest->q.__state; + const u32 *_a = a->q.__state; + const u32 *_b = b->q.__state; + for (ret = 0; ret < 8; ret++) + *(_d++) = *(_a++) & *(_b++); +} +static inline void qman_cgrs_xor(struct qman_cgrs *dest, + const struct qman_cgrs *a, const struct qman_cgrs *b) +{ + int ret; + u32 *_d = dest->q.__state; + const u32 *_a = a->q.__state; + const u32 *_b = b->q.__state; + for (ret = 0; ret < 8; ret++) + *(_d++) = *(_a++) ^ *(_b++); +} + +#define qman_cgrs_for_each_1(cgr, cgrs) \ + for ((cgr) = -1; (cgr) = qman_cgrs_next((cgrs), (cgr)),\ + (cgr) < __CGR_NUM;) + +/* used by CCSR and portal interrupt code */ +enum qm_isr_reg { + qm_isr_status = 0, + qm_isr_enable = 1, + qm_isr_disable = 2, + qm_isr_inhibit = 3 +}; + +#define QM_ADDR_CE 0 +#define QM_ADDR_CI 1 +struct qm_portal_config { + /* Corenet portal addresses; + * [0]==cache-enabled, [1]==cache-inhibited. */ + __iomem void *addr_virt[2]; + struct resource addr_phys[2]; + struct device_node *node; + /* Allow these to be joined in lists */ + struct list_head list; + /* User-visible portal configuration settings */ + struct qman_portal_config public_cfg; +}; + +/* Hooks for driver initialisation */ +__init int fqalloc_init(int use_bman); + +/* Revision info (for errata and feature handling) */ +#define QMAN_REV10 0x0100 +#define QMAN_REV11 0x0101 +#define QMAN_REV12 0x0102 +#define QMAN_REV20 0x0200 +extern u16 qman_ip_rev; /* 0 if uninitialised, otherwise QMAN_REVx */ + +#ifdef CONFIG_FSL_QMAN_CONFIG +/* Hooks from qman_driver.c to qman_config.c */ +int qman_init_error_int(struct device_node *node); +void qman_liodn_fixup(enum qm_channel channel); +#endif + +/* Hooks from qman_driver.c in to qman_high.c */ +struct qman_portal *qman_create_affine_portal( + const struct qm_portal_config *config, + const struct qman_cgrs *cgrs, + const struct qman_fq_cb *null_cb, + int recovery_mode); +struct qman_portal *qman_create_affine_slave(struct qman_portal *redirect); +const struct qm_portal_config *qman_destroy_affine_portal(void); +void qman_recovery_exit_local(void); + +/* This CGR feature is supported by h/w and required by unit-tests and the + * debugfs hooks, so is implemented in the driver. However it allows an explicit + * corruption of h/w fields by s/w that are usually incorruptible (because the + * counters are usually maintained entirely within h/w). As such, we declare + * this API internally. */ +int qman_testwrite_cgr(struct qman_cgr *cgr, u64 i_bcnt, + struct qm_mcr_cgrtestwrite *result); + +#ifdef CONFIG_FSL_QMAN_FQ_LOOKUP +/* If the fq object pointer is greater than the size of context_b field, + * than a lookup table is required. */ +int qman_setup_fq_lookup_table(size_t num_entries); +#endif + +/*************************************************/ +/* QMan s/w corenet portal, low-level i/face */ +/*************************************************/ + +/* Note: most functions are only used by the high-level interface, so are + * inlined from qman_low.h. The stuff below is for use by other parts of the + * driver. */ + +/* For qm_dqrr_sdqcr_set(); Choose one SOURCE. Choose one COUNT. Choose one + * dequeue TYPE. Choose TOKEN (8-bit). + * If SOURCE == CHANNELS, + * Choose CHANNELS_DEDICATED and/or CHANNELS_POOL(n). + * You can choose DEDICATED_PRECEDENCE if the portal channel should have + * priority. + * If SOURCE == SPECIFICWQ, + * Either select the work-queue ID with SPECIFICWQ_WQ(), or select the + * channel (SPECIFICWQ_DEDICATED or SPECIFICWQ_POOL()) and specify the + * work-queue priority (0-7) with SPECIFICWQ_WQ() - either way, you get the + * same value. + */ +#define QM_SDQCR_SOURCE_CHANNELS 0x0 +#define QM_SDQCR_SOURCE_SPECIFICWQ 0x40000000 +#define QM_SDQCR_COUNT_EXACT1 0x0 +#define QM_SDQCR_COUNT_UPTO3 0x20000000 +#define QM_SDQCR_DEDICATED_PRECEDENCE 0x10000000 +#define QM_SDQCR_TYPE_MASK 0x03000000 +#define QM_SDQCR_TYPE_NULL 0x0 +#define QM_SDQCR_TYPE_PRIO_QOS 0x01000000 +#define QM_SDQCR_TYPE_ACTIVE_QOS 0x02000000 +#define QM_SDQCR_TYPE_ACTIVE 0x03000000 +#define QM_SDQCR_TOKEN_MASK 0x00ff0000 +#define QM_SDQCR_TOKEN_SET(v) (((v) & 0xff) << 16) +#define QM_SDQCR_TOKEN_GET(v) (((v) >> 16) & 0xff) +#define QM_SDQCR_CHANNELS_DEDICATED 0x00008000 +#if 0 /* These are defined in the external fsl_qman.h API */ +#define QM_SDQCR_CHANNELS_POOL_MASK 0x00007fff +#define QM_SDQCR_CHANNELS_POOL(n) (0x00008000 >> (n)) +#endif +#define QM_SDQCR_SPECIFICWQ_MASK 0x000000f7 +#define QM_SDQCR_SPECIFICWQ_DEDICATED 0x00000000 +#define QM_SDQCR_SPECIFICWQ_POOL(n) ((n) << 4) +#define QM_SDQCR_SPECIFICWQ_WQ(n) (n) + +/* For qm_dqrr_vdqcr_set(); Choose one PRECEDENCE. EXACT is optional. Use + * NUMFRAMES(n) (6-bit) or NUMFRAMES_TILLEMPTY to fill in the frame-count. Use + * FQID(n) to fill in the frame queue ID. */ +#if 0 /* These are defined in the external fsl_qman.h API */ +#define QM_VDQCR_PRECEDENCE_VDQCR 0x0 +#define QM_VDQCR_PRECEDENCE_SDQCR 0x80000000 +#define QM_VDQCR_EXACT 0x40000000 +#define QM_VDQCR_NUMFRAMES_MASK 0x3f000000 +#define QM_VDQCR_NUMFRAMES_SET(n) (((n) & 0x3f) << 24) +#define QM_VDQCR_NUMFRAMES_GET(n) (((n) >> 24) & 0x3f) +#define QM_VDQCR_NUMFRAMES_TILLEMPTY QM_VDQCR_NUMFRAMES_SET(0) +#endif +#define QM_VDQCR_FQID_MASK 0x00ffffff +#define QM_VDQCR_FQID(n) ((n) & QM_VDQCR_FQID_MASK) + +/* For qm_dqrr_pdqcr_set(); Choose one MODE. Choose one COUNT. + * If MODE==SCHEDULED + * Choose SCHEDULED_CHANNELS or SCHEDULED_SPECIFICWQ. Choose one dequeue TYPE. + * If CHANNELS, + * Choose CHANNELS_DEDICATED and/or CHANNELS_POOL() channels. + * You can choose DEDICATED_PRECEDENCE if the portal channel should have + * priority. + * If SPECIFICWQ, + * Either select the work-queue ID with SPECIFICWQ_WQ(), or select the + * channel (SPECIFICWQ_DEDICATED or SPECIFICWQ_POOL()) and specify the + * work-queue priority (0-7) with SPECIFICWQ_WQ() - either way, you get the + * same value. + * If MODE==UNSCHEDULED + * Choose FQID(). + */ +#define QM_PDQCR_MODE_SCHEDULED 0x0 +#define QM_PDQCR_MODE_UNSCHEDULED 0x80000000 +#define QM_PDQCR_SCHEDULED_CHANNELS 0x0 +#define QM_PDQCR_SCHEDULED_SPECIFICWQ 0x40000000 +#define QM_PDQCR_COUNT_EXACT1 0x0 +#define QM_PDQCR_COUNT_UPTO3 0x20000000 +#define QM_PDQCR_DEDICATED_PRECEDENCE 0x10000000 +#define QM_PDQCR_TYPE_MASK 0x03000000 +#define QM_PDQCR_TYPE_NULL 0x0 +#define QM_PDQCR_TYPE_PRIO_QOS 0x01000000 +#define QM_PDQCR_TYPE_ACTIVE_QOS 0x02000000 +#define QM_PDQCR_TYPE_ACTIVE 0x03000000 +#define QM_PDQCR_CHANNELS_DEDICATED 0x00008000 +#define QM_PDQCR_CHANNELS_POOL(n) (0x00008000 >> (n)) +#define QM_PDQCR_SPECIFICWQ_MASK 0x000000f7 +#define QM_PDQCR_SPECIFICWQ_DEDICATED 0x00000000 +#define QM_PDQCR_SPECIFICWQ_POOL(n) ((n) << 4) +#define QM_PDQCR_SPECIFICWQ_WQ(n) (n) +#define QM_PDQCR_FQID(n) ((n) & 0xffffff) + +/* Used by all portal interrupt registers except 'inhibit'. NB, some of these + * definitions are exported for use by the qman_irqsource_***() APIs, so are + * commented-out here. */ +#define QM_PIRQ_DQAVAIL 0x0000ffff /* Channels with frame availability */ +#if 0 +#define QM_PIRQ_CSCI 0x00100000 /* Congestion State Change */ +#define QM_PIRQ_EQCI 0x00080000 /* Enqueue Command Committed */ +#define QM_PIRQ_EQRI 0x00040000 /* EQCR Ring (below threshold) */ +#define QM_PIRQ_DQRI 0x00020000 /* DQRR Ring (non-empty) */ +#define QM_PIRQ_MRI 0x00010000 /* MR Ring (non-empty) */ +/* This mask contains all the interrupt sources that need handling except DQRI, + * ie. that if present should trigger slow-path processing. */ +#define QM_PIRQ_SLOW (QM_PIRQ_CSCI | QM_PIRQ_EQCI | QM_PIRQ_EQRI | \ + QM_PIRQ_MRI) +#endif +/* The DQAVAIL interrupt fields break down into these bits; */ +#define QM_DQAVAIL_PORTAL 0x8000 /* Portal channel */ +#define QM_DQAVAIL_POOL(n) (0x8000 >> (n)) /* Pool channel, n==[1..15] */ +#define QM_DQAVAIL_MASK 0xffff +/* This mask contains all the "irqsource" bits visible to API users */ +#define QM_PIRQ_VISIBLE (QM_PIRQ_SLOW | QM_PIRQ_DQRI) + +/* These are qm__(). So for example, qm_disable_write() means "write + * the disable register" rather than "disable the ability to write". */ +#define qm_isr_status_read(qm) __qm_isr_read(qm, qm_isr_status) +#define qm_isr_status_clear(qm, m) __qm_isr_write(qm, qm_isr_status, m) +#define qm_isr_enable_read(qm) __qm_isr_read(qm, qm_isr_enable) +#define qm_isr_enable_write(qm, v) __qm_isr_write(qm, qm_isr_enable, v) +#define qm_isr_disable_read(qm) __qm_isr_read(qm, qm_isr_disable) +#define qm_isr_disable_write(qm, v) __qm_isr_write(qm, qm_isr_disable, v) +/* TODO: unfortunate name-clash here, reword? */ +#define qm_isr_inhibit(qm) __qm_isr_write(qm, qm_isr_inhibit, 1) +#define qm_isr_uninhibit(qm) __qm_isr_write(qm, qm_isr_inhibit, 0) --- linux-3.13.0.orig/drivers/staging/fsl_qbman/qman_test.c +++ linux-3.13.0/drivers/staging/fsl_qbman/qman_test.c @@ -0,0 +1,61 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "qman_test.h" + +MODULE_AUTHOR("Geoff Thorpe"); +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_DESCRIPTION("Qman testing"); + +static int test_init(void) +{ + int loop = 1; + while(loop--) { +#ifdef CONFIG_FSL_QMAN_TEST_STASH_POTATO + qman_test_hotpotato(); +#endif +#ifdef CONFIG_FSL_QMAN_TEST_HIGH + qman_test_high(); +#endif +#ifdef CONFIG_FSL_QMAN_TEST_ERRATA + qman_test_errata(); +#endif + } + return 0; +} + +static void test_exit(void) +{ +} + +module_init(test_init); +module_exit(test_exit); + --- linux-3.13.0.orig/drivers/staging/fsl_qbman/qman_test.h +++ linux-3.13.0/drivers/staging/fsl_qbman/qman_test.h @@ -0,0 +1,85 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include + +void qman_test_hotpotato(void); +void qman_test_high(void); +void qman_test_errata(void); +void qman_test_fqrange(void); + +static inline void __hexdump(unsigned long start, unsigned long end, + unsigned long p, size_t sz, const unsigned char *c) +{ + while (start < end) { + unsigned int pos = 0; + char buf[64]; + int nl = 0; + pos += sprintf(buf + pos, "%08lx: ", start); + do { + if ((start < p) || (start >= (p + sz))) + pos += sprintf(buf + pos, ".."); + else + pos += sprintf(buf + pos, "%02x", *(c++)); + if (!(++start & 15)) { + buf[pos++] = '\n'; + nl = 1; + } else { + nl = 0; + if(!(start & 1)) + buf[pos++] = ' '; + if(!(start & 3)) + buf[pos++] = ' '; + } + } while (start & 15); + if (!nl) + buf[pos++] = '\n'; + buf[pos] = '\0'; + pr_info("%s", buf); + } +} +static inline void hexdump(const void *ptr, size_t sz) +{ + unsigned long p = (unsigned long)ptr; + unsigned long start = p & ~(unsigned long)15; + unsigned long end = (p + sz + 15) & ~(unsigned long)15; + const unsigned char *c = ptr; + __hexdump(start, end, p, sz, c); +} + --- linux-3.13.0.orig/drivers/staging/fsl_qbman/qman_test_errata.c +++ linux-3.13.0/drivers/staging/fsl_qbman/qman_test_errata.c @@ -0,0 +1,248 @@ +/* Copyright 2009-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "qman_test.h" + +/* Waiting on a model fix from virtutech */ +#if 0 +/*********************/ +/* generic utilities */ +/*********************/ + +static int do_enqueues(struct qman_fq *fq, const struct qm_fd *fds, int num) +{ + int ret = 0; + u32 flags = QMAN_ENQUEUE_FLAG_WAIT; + while (num-- && !ret) { + if (!num) + flags |= QMAN_ENQUEUE_FLAG_WAIT_SYNC; + pr_info("about to enqueue\n"); + ret = qman_enqueue(fq, fds++, flags); + } + return ret; +} + +/***************************/ +/* "tdthresh" test (QMAN6) */ +/***************************/ + +/* First thresh == 201 * (2^21) == 421527552 (0x19200000) */ +#define THRESH_MANT 201 +#define THRESH_EXP 21 + +/* first three equal thresh, fourth takes us over */ +static const struct qm_fd td_eq[] = { + QM_FD_FMT_20(0, 0x34, 0x87654321, QM_FD_SG, 0, 79321), + QM_FD_FMT_29(0, 0x34, 0x87654321, QM_FD_COMPOUND, 29923679), + QM_FD_FMT_29(0, 0x0d, 0xacadabba, QM_FD_CONTIG_BIG, 391524552), + QM_FD_FMT_20(0, 0x0b, 0x0fa10ada, QM_FD_CONTIG, 0, 1), + QM_FD_FMT_20(0, 0x0b, 0x0fa10ada, QM_FD_CONTIG, 0, 1), +}; + +struct tdthresh_fq { + struct qman_fq fq; + int got_ern; + int num_dqrr; +}; + +static enum qman_cb_dqrr_result cb_dqrr_tdthresh(struct qman_portal *p, + struct qman_fq *__fq, + const struct qm_dqrr_entry *dqrr) +{ + struct tdthresh_fq *t = (void *)__fq; + t->num_dqrr++; + return qman_cb_dqrr_consume; +} + +static void cb_ern_tdthresh(struct qman_portal *p, struct qman_fq *__fq, + const struct qm_mr_entry *mr) +{ + struct tdthresh_fq *t = (void *)__fq; + t->got_ern = 1; +} + +static void test_tdthresh(void) +{ + struct tdthresh_fq tdfq = { + .fq = { + .cb = { + .dqrr = cb_dqrr_tdthresh, + .ern = cb_ern_tdthresh + } + }, + .got_ern = 0, + .num_dqrr = 0 + }; + struct qman_fq *fq = &tdfq.fq; + struct qm_mcc_initfq opts = { + .we_mask = QM_INITFQ_WE_FQCTRL | QM_INITFQ_WE_TDTHRESH, + .fqd = { + .fq_ctrl = QM_FQCTRL_TDE, + .td = { + .exp = THRESH_EXP, + .mant = THRESH_MANT, + } + } + }; + struct qm_fqd fqd; + u32 flags; + int ret = qman_create_fq(0, QMAN_FQ_FLAG_DYNAMIC_FQID, fq); + BUG_ON(ret); + /* leave it parked, and set it for local dequeue (loopback) */ + ret = qman_init_fq(fq, QMAN_INITFQ_FLAG_LOCAL, &opts); + BUG_ON(ret); + /* query it back and confirm everything is ok */ + ret = qman_query_fq(fq, &fqd); + BUG_ON(ret); + if (fqd.fq_ctrl != opts.fqd.fq_ctrl) { + pr_err("queried fq_ctrl=%x, should be=%x\n", fqd.fq_ctrl, + opts.fqd.fq_ctrl); + panic("fail"); + } + if (memcmp(&fqd.td, &opts.fqd.td, sizeof(fqd.td))) { + pr_err("queried td_thresh=%x:%x, should be=%x:%x\n", + fqd.td.exp, fqd.td.mant, + opts.fqd.td.exp, opts.fqd.td.mant); + panic("fail"); + } + ret = do_enqueues(fq, td_eq, 3); + BUG_ON(ret); + pr_info(" tdthresh: eq[0..2] complete\n"); + /* enqueues are flushed, so if Qman is going to throw an ERN, the irq + * assertion will already be on its way. */ + msleep(500); + BUG_ON(tdfq.got_ern); + pr_info(" tdthresh: eq <= thresh OK\n"); + ret = do_enqueues(fq, td_eq + 3, 1); + BUG_ON(ret); + pr_info(" tdthresh: eq[3] complete\n"); + /* enqueues are flushed, so if Qman is going to throw an ERN, the irq + * assertion will already be on its way. */ + msleep(500); + BUG_ON(tdfq.got_ern); + pr_info(" tdthresh: eq <= thresh OK\n"); + ret = do_enqueues(fq, td_eq + 4, 1); + BUG_ON(ret); + pr_info(" tdthresh: eq[4] complete\n"); + /* enqueues are flushed, so if Qman is going to throw an ERN, the irq + * assertion will already be on its way. */ + msleep(500); + BUG_ON(!tdfq.got_ern); + pr_info(" tdthresh: eq > thresh OK\n"); + ret = qman_volatile_dequeue(fq, + QMAN_VOLATILE_FLAG_WAIT | QMAN_VOLATILE_FLAG_FINISH, + QM_VDQCR_NUMFRAMES_TILLEMPTY); + BUG_ON(ret); + BUG_ON(tdfq.num_dqrr != 4); + ret = qman_retire_fq(fq, &flags); + BUG_ON(ret); + BUG_ON(flags); + ret = qman_oos_fq(fq); + BUG_ON(ret); +} + +/****************************/ +/* "ern code6" test (QMAN9) */ +/****************************/ + +/* Dummy FD to enqueue out-of-sequence and generate an ERN */ +static const struct qm_fd c6_eq = + QM_FD_FMT_29(0, 0xba, 0xdeadbeef, QM_FD_CONTIG_BIG, 1234); + +struct code6_fq { + struct qman_fq fq; + struct qm_mr_entry mr; + struct completion got_ern; +}; + +static void cb_ern_code6(struct qman_portal *p, struct qman_fq *__fq, + const struct qm_mr_entry *mr) +{ + struct code6_fq *c = (void *)__fq; + memcpy(&c->mr, mr, sizeof(*mr)); + complete(&c->got_ern); +} + +static void test_ern_code6(void) +{ + struct code6_fq c6fq = { + .fq = { + .cb = { + .ern = cb_ern_code6 + } + }, + .got_ern = COMPLETION_INITIALIZER(c6fq.got_ern) + }; + struct qman_fq *fq = &c6fq.fq; + struct qm_mcc_initfq opts = { + .we_mask = QM_INITFQ_WE_FQCTRL, + .fqd = { + .fq_ctrl = QM_FQCTRL_ORP + } + }; + u32 flags; + int ret = qman_create_fq(0, QMAN_FQ_FLAG_DYNAMIC_FQID, fq); + BUG_ON(ret); + /* leave it parked, and set it for local dequeue (loopback) */ + ret = qman_init_fq(fq, QMAN_INITFQ_FLAG_LOCAL, &opts); + BUG_ON(ret); + /* enqueue with ORP using a "too early" sequence number */ + ret = qman_enqueue_orp(fq, &c6_eq, + QMAN_ENQUEUE_FLAG_WAIT | QMAN_ENQUEUE_FLAG_WAIT_SYNC, fq, 5); + BUG_ON(ret); + pr_info(" code6: eq complete\n"); + ret = qman_retire_fq(fq, &flags); + BUG_ON(ret); + pr_info(" code6: retire complete, flags=%08x\n", flags); + BUG_ON(flags != QMAN_FQ_STATE_ORL); + wait_for_completion(&c6fq.got_ern); + pr_info(" code6: ERN, VERB=0x%02x, RC==0x%02x\n", + c6fq.mr.verb, c6fq.mr.ern.rc); + BUG_ON(c6fq.mr.verb & 0x20); + BUG_ON((c6fq.mr.ern.rc & QM_MR_RC_MASK) != QM_MR_RC_ORPWINDOW_RETIRED); + ret = qman_oos_fq(fq); + BUG_ON(ret); +} + +void qman_test_errata(void) +{ + pr_info("Testing Qman errata handling ...\n"); + test_tdthresh(); + test_ern_code6(); + pr_info(" ... SUCCESS!\n"); +} +#else +void qman_test_errata(void) +{ + pr_info("Qman errata-handling test disabled, waiting on model fix\n"); +} +#endif + --- linux-3.13.0.orig/drivers/staging/fsl_qbman/qman_test_high.c +++ linux-3.13.0/drivers/staging/fsl_qbman/qman_test_high.c @@ -0,0 +1,222 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "qman_test.h" + +/*************/ +/* constants */ +/*************/ + +#define CGR_ID 27 +#define POOL_ID 2 +#define FQ_FLAGS QMAN_FQ_FLAG_DYNAMIC_FQID +#define NUM_ENQUEUES 10 +#define NUM_PARTIAL 4 +#define PORTAL_SDQCR (QM_SDQCR_SOURCE_CHANNELS | \ + QM_SDQCR_TYPE_PRIO_QOS | \ + QM_SDQCR_TOKEN_SET(0x98) | \ + QM_SDQCR_CHANNELS_DEDICATED | \ + QM_SDQCR_CHANNELS_POOL(POOL_ID)) +#define PORTAL_OPAQUE (void *)0xf00dbeef +#define VDQCR_FLAGS (QMAN_VOLATILE_FLAG_WAIT | QMAN_VOLATILE_FLAG_FINISH) + +/*************************************/ +/* Predeclarations (eg. for fq_base) */ +/*************************************/ + +static enum qman_cb_dqrr_result cb_dqrr(struct qman_portal *, + struct qman_fq *, + const struct qm_dqrr_entry *); +static void cb_ern(struct qman_portal *, struct qman_fq *, + const struct qm_mr_entry *); +static void cb_dc_ern(struct qman_portal *, struct qman_fq *, + const struct qm_mr_entry *); +static void cb_fqs(struct qman_portal *, struct qman_fq *, + const struct qm_mr_entry *); + +/***************/ +/* global vars */ +/***************/ + +static struct qm_fd fd, fd_dq; +static struct qman_fq fq_base = { + .cb.dqrr = cb_dqrr, + .cb.ern = cb_ern, + .cb.dc_ern = cb_dc_ern, + .cb.fqs = cb_fqs +}; +static DECLARE_WAIT_QUEUE_HEAD(waitqueue); +static int retire_complete, sdqcr_complete; + +/**********************/ +/* internal functions */ +/**********************/ + +/* Helpers for initialising and "incrementing" a frame descriptor */ +static void fd_init(struct qm_fd *__fd) +{ + qm_fd_addr_set64(__fd, 0xabdeadbeefLLU); + __fd->format = qm_fd_contig_big; + __fd->length29 = 0x0000ffff; + __fd->cmd = 0xfeedf00d; +} + +static void fd_inc(struct qm_fd *__fd) +{ + u64 t = qm_fd_addr_get64(__fd); + int z = t >> 40; + t <<= 1; + if (z) + t |= 1; + qm_fd_addr_set64(__fd, t); + __fd->length29--; + __fd->cmd++; +} + +/* The only part of the 'fd' we can't memcmp() is the ppid */ +static int fd_cmp(const struct qm_fd *a, const struct qm_fd *b) +{ + int r = (qm_fd_addr_get64(a) == qm_fd_addr_get64(b)) ? 0 : -1; + if (!r) + r = a->format - b->format; + if (!r) + r = a->opaque - b->opaque; + if (!r) + r = a->cmd - b->cmd; + return r; +} + +/********/ +/* test */ +/********/ + +static void do_enqueues(struct qman_fq *fq) +{ + unsigned int loop; + for (loop = 0; loop < NUM_ENQUEUES; loop++) { + if (qman_enqueue(fq, &fd, QMAN_ENQUEUE_FLAG_WAIT | + (((loop + 1) == NUM_ENQUEUES) ? + QMAN_ENQUEUE_FLAG_WAIT_SYNC : 0))) + panic("qman_enqueue() failed\n"); + fd_inc(&fd); + } +} + +void qman_test_high(void) +{ + int flags, res; + struct qman_fq *fq = &fq_base; + + pr_info("qman_test_high starting\n"); + fd_init(&fd); + fd_init(&fd_dq); + + /* Initialise (parked) FQ */ + if (qman_create_fq(0, FQ_FLAGS, fq)) + panic("qman_create_fq() failed\n"); + if (qman_init_fq(fq, QMAN_INITFQ_FLAG_LOCAL, NULL)) + panic("qman_init_fq() failed\n"); + + /* Do enqueues + VDQCR, twice. (Parked FQ) */ + do_enqueues(fq); + pr_info("VDQCR (till-empty);\n"); + if (qman_volatile_dequeue(fq, VDQCR_FLAGS, + QM_VDQCR_NUMFRAMES_TILLEMPTY)) + panic("qman_volatile_dequeue() failed\n"); + do_enqueues(fq); + pr_info("VDQCR (%d of %d);\n", NUM_PARTIAL, NUM_ENQUEUES); + if (qman_volatile_dequeue(fq, VDQCR_FLAGS, + QM_VDQCR_NUMFRAMES_SET(NUM_PARTIAL))) + panic("qman_volatile_dequeue() failed\n"); + pr_info("VDQCR (%d of %d);\n", NUM_ENQUEUES - NUM_PARTIAL, + NUM_ENQUEUES); + if (qman_volatile_dequeue(fq, VDQCR_FLAGS, + QM_VDQCR_NUMFRAMES_SET(NUM_ENQUEUES - NUM_PARTIAL))) + panic("qman_volatile_dequeue() failed\n"); + + do_enqueues(fq); + pr_info("scheduled dequeue (till-empty)\n"); + if (qman_schedule_fq(fq)) + panic("qman_schedule_fq() failed\n"); + wait_event(waitqueue, sdqcr_complete); + + /* Retire and OOS the FQ */ + res = qman_retire_fq(fq, &flags); + if (res < 0) + panic("qman_retire_fq() failed\n"); + wait_event(waitqueue, retire_complete); + if (flags & QMAN_FQ_STATE_BLOCKOOS) + panic("leaking frames\n"); + if (qman_oos_fq(fq)) + panic("qman_oos_fq() failed\n"); + qman_destroy_fq(fq, 0); + pr_info("qman_test_high finished\n"); +} + +static enum qman_cb_dqrr_result cb_dqrr(struct qman_portal *p, + struct qman_fq *fq, + const struct qm_dqrr_entry *dq) +{ + if (fd_cmp(&fd_dq, &dq->fd)) { + pr_err("BADNESS: dequeued frame doesn't match;\n"); + BUG(); + } + fd_inc(&fd_dq); + if (!(dq->stat & QM_DQRR_STAT_UNSCHEDULED) && !fd_cmp(&fd_dq, &fd)) { + sdqcr_complete = 1; + wake_up(&waitqueue); + } + return qman_cb_dqrr_consume; +} + +static void cb_ern(struct qman_portal *p, struct qman_fq *fq, + const struct qm_mr_entry *msg) +{ + panic("cb_ern() unimplemented"); +} + +static void cb_dc_ern(struct qman_portal *p, struct qman_fq *fq, + const struct qm_mr_entry *msg) +{ + panic("cb_dc_ern() unimplemented"); +} + +static void cb_fqs(struct qman_portal *p, struct qman_fq *fq, + const struct qm_mr_entry *msg) +{ + u8 verb = (msg->verb & QM_MR_VERB_TYPE_MASK); + if ((verb != QM_MR_VERB_FQRN) && (verb != QM_MR_VERB_FQRNI)) + panic("unexpected FQS message"); + pr_info("Retirement message received\n"); + retire_complete = 1; + wake_up(&waitqueue); +} + --- linux-3.13.0.orig/drivers/staging/fsl_qbman/qman_test_hotpotato.c +++ linux-3.13.0/drivers/staging/fsl_qbman/qman_test_hotpotato.c @@ -0,0 +1,497 @@ +/* Copyright 2009-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include "qman_test.h" + +/* Algorithm: + * + * Each cpu will have HP_PER_CPU "handlers" set up, each of which incorporates + * an rx/tx pair of FQ objects (both of which are stashed on dequeue). The + * organisation of FQIDs is such that the HP_PER_CPU*NUM_CPUS handlers will + * shuttle a "hot potato" frame around them such that every forwarding action + * moves it from one cpu to another. (The use of more than one handler per cpu + * is to allow enough handlers/FQs to truly test the significance of caching - + * ie. when cache-expiries are occuring.) + * + * The "hot potato" frame content will be HP_NUM_WORDS*4 bytes in size, and the + * first and last words of the frame data will undergo a transformation step on + * each forwarding action. To achieve this, each handler will be assigned a + * 32-bit "mixer", that is produced using a 32-bit LFSR. When a frame is + * received by a handler, the mixer of the expected sender is XOR'd into all + * words of the entire frame, which is then validated against the original + * values. Then, before forwarding, the entire frame is XOR'd with the mixer of + * the current handler. Apart from validating that the frame is taking the + * expected path, this also provides some quasi-realistic overheads to each + * forwarding action - dereferencing *all* the frame data, computation, and + * conditional branching. There is a "special" handler designated to act as the + * instigator of the test by creating an enqueuing the "hot potato" frame, and + * to determine when the test has completed by counting HP_LOOPS iterations. + * + * Init phases: + * + * 1. prepare each cpu's 'hp_cpu' struct using on_each_cpu(,,1) and link them + * into 'hp_cpu_list'. Specifically, set processor_id, allocate HP_PER_CPU + * handlers and link-list them (but do no other handler setup). + * + * 2. scan over 'hp_cpu_list' HP_PER_CPU times, the first time sets each + * hp_cpu's 'iterator' to point to its first handler. With each loop, + * allocate rx/tx FQIDs and mixer values to the hp_cpu's iterator handler + * and advance the iterator for the next loop. This includes a final fixup, + * which connects the last handler to the first (and which is why phase 2 + * and 3 are separate). + * + * 3. scan over 'hp_cpu_list' HP_PER_CPU times, the first time sets each + * hp_cpu's 'iterator' to point to its first handler. With each loop, + * initialise FQ objects and advance the iterator for the next loop. + * Moreover, do this initialisation on the cpu it applies to so that Rx FQ + * initialisation targets the correct cpu. + */ + +/* helper to run something on all cpus (can't use on_each_cpu(), as that invokes + * the fn from irq context, which is too restrictive). */ +struct bstrap { + void (*fn)(void); + atomic_t started; +}; +static int bstrap_fn(void *__bstrap) +{ + struct bstrap *bstrap = __bstrap; + atomic_inc(&bstrap->started); + bstrap->fn(); + while (!kthread_should_stop()) + msleep(1); + return 0; +} +static int on_all_cpus(void (*fn)(void)) +{ + int cpu; + for_each_cpu(cpu, cpu_online_mask) { + struct bstrap bstrap = { + .fn = fn, + .started = ATOMIC_INIT(0) + }; + struct task_struct *k = kthread_create(bstrap_fn, &bstrap, + "hotpotato%d", cpu); + int ret; + if (IS_ERR(k)) + return -ENOMEM; + kthread_bind(k, cpu); + wake_up_process(k); + /* If we call kthread_stop() before the "wake up" has had an + * effect, then the thread may exit with -EINTR without ever + * running the function. So poll until it's started before + * requesting it to stop. */ + while (!atomic_read(&bstrap.started)) + msleep(10); + ret = kthread_stop(k); + if (ret) + return ret; + } + return 0; +} + +struct hp_handler { + + /* The following data is stashed when 'rx' is dequeued; */ + /* -------------- */ + /* The Rx FQ, dequeues of which will stash the entire hp_handler */ + struct qman_fq rx; + /* The Tx FQ we should forward to */ + struct qman_fq tx; + /* The value we XOR post-dequeue, prior to validating */ + u32 rx_mixer; + /* The value we XOR pre-enqueue, after validating */ + u32 tx_mixer; + /* what the hotpotato address should be on dequeue */ + dma_addr_t addr; + u32 *frame_ptr; + + /* The following data isn't (necessarily) stashed on dequeue; */ + /* -------------- */ + u32 fqid_rx, fqid_tx; + /* list node for linking us into 'hp_cpu' */ + struct list_head node; + /* Just to check ... */ + unsigned int processor_id; +} ____cacheline_aligned; + +struct hp_cpu { + /* identify the cpu we run on; */ + unsigned int processor_id; + /* root node for the per-cpu list of handlers */ + struct list_head handlers; + /* list node for linking us into 'hp_cpu_list' */ + struct list_head node; + /* when repeatedly scanning 'hp_list', each time linking the n'th + * handlers together, this is used as per-cpu iterator state */ + struct hp_handler *iterator; +}; + +/* Each cpu has one of these */ +static DEFINE_PER_CPU(struct hp_cpu, hp_cpus); + +/* links together the hp_cpu structs, in first-come first-serve order. */ +static LIST_HEAD(hp_cpu_list); +static spinlock_t hp_lock = __SPIN_LOCK_UNLOCKED(hp_lock); + +static unsigned int hp_cpu_list_length; + +/* the "special" handler, that starts and terminates the test. */ +static struct hp_handler *special_handler; +static int loop_counter; + +/* handlers are allocated out of this, so they're properly aligned. */ +static struct kmem_cache *hp_handler_slab; + +/* this is the frame data */ +static void *__frame_ptr; +static u32 *frame_ptr; +static dma_addr_t frame_dma; + +/* the main function waits on this */ +static DECLARE_WAIT_QUEUE_HEAD(queue); + +#define HP_PER_CPU 2 +#define HP_LOOPS 8 +/* 80 bytes, like a small ethernet frame, and bleeds into a second cacheline */ +#define HP_NUM_WORDS 80 +/* First word of the LFSR-based frame data */ +#define HP_FIRST_WORD 0xabbaf00d + +static inline u32 do_lfsr(u32 prev) +{ + return (prev >> 1) ^ (-(prev & 1u) & 0xd0000001u); +} + +static void allocate_frame_data(void) +{ + u32 lfsr = HP_FIRST_WORD; + int loop; + struct platform_device *pdev = platform_device_alloc("foobar", -1); + if (!pdev) + panic("platform_device_alloc() failed"); + if (platform_device_add(pdev)) + panic("platform_device_add() failed"); + __frame_ptr = kmalloc(4 * HP_NUM_WORDS, GFP_KERNEL); + if (!__frame_ptr) + panic("kmalloc() failed"); + frame_ptr = (void *)(((unsigned long)__frame_ptr + 63) & + ~(unsigned long)63); + for (loop = 0; loop < HP_NUM_WORDS; loop++) { + frame_ptr[loop] = lfsr; + lfsr = do_lfsr(lfsr); + } + frame_dma = dma_map_single(&pdev->dev, frame_ptr, 4 * HP_NUM_WORDS, + DMA_BIDIRECTIONAL); + platform_device_del(pdev); + platform_device_put(pdev); +} + +static void deallocate_frame_data(void) +{ + kfree(__frame_ptr); +} + +static inline void process_frame_data(struct hp_handler *handler, + const struct qm_fd *fd) +{ + u32 *p = handler->frame_ptr; + u32 lfsr = HP_FIRST_WORD; + int loop; + if (qm_fd_addr_get64(fd) != handler->addr) + panic("bad frame address"); + for (loop = 0; loop < HP_NUM_WORDS; loop++, p++) { + *p ^= handler->rx_mixer; + if (*p != lfsr) + panic("corrupt frame data"); + *p ^= handler->tx_mixer; + lfsr = do_lfsr(lfsr); + } +} + +static enum qman_cb_dqrr_result normal_dqrr(struct qman_portal *portal, + struct qman_fq *fq, + const struct qm_dqrr_entry *dqrr) +{ + struct hp_handler *handler = (struct hp_handler *)fq; + + process_frame_data(handler, &dqrr->fd); + if (qman_enqueue(&handler->tx, &dqrr->fd, 0)) + panic("qman_enqueue() failed"); + return qman_cb_dqrr_consume; +} + +static enum qman_cb_dqrr_result special_dqrr(struct qman_portal *portal, + struct qman_fq *fq, + const struct qm_dqrr_entry *dqrr) +{ + struct hp_handler *handler = (struct hp_handler *)fq; + + process_frame_data(handler, &dqrr->fd); + if (++loop_counter < HP_LOOPS) { + if (qman_enqueue(&handler->tx, &dqrr->fd, 0)) + panic("qman_enqueue() failed"); + } else { + pr_info("Received final (%dth) frame\n", loop_counter); + wake_up(&queue); + } + return qman_cb_dqrr_consume; +} + +static void create_per_cpu_handlers(void) +{ + struct hp_handler *handler; + int loop; + struct hp_cpu *hp_cpu = &__get_cpu_var(hp_cpus); + + hp_cpu->processor_id = smp_processor_id(); + spin_lock(&hp_lock); + list_add_tail(&hp_cpu->node, &hp_cpu_list); + hp_cpu_list_length++; + spin_unlock(&hp_lock); + INIT_LIST_HEAD(&hp_cpu->handlers); + for (loop = 0; loop < HP_PER_CPU; loop++) { + handler = kmem_cache_alloc(hp_handler_slab, GFP_KERNEL); + if (!handler) + panic("kmem_cache_alloc() failed"); + handler->processor_id = hp_cpu->processor_id; + handler->addr = frame_dma; + handler->frame_ptr = frame_ptr; + list_add_tail(&handler->node, &hp_cpu->handlers); + } +} + +static void destroy_per_cpu_handlers(void) +{ + struct list_head *loop, *tmp; + struct hp_cpu *hp_cpu = &__get_cpu_var(hp_cpus); + + spin_lock(&hp_lock); + list_del(&hp_cpu->node); + spin_unlock(&hp_lock); + list_for_each_safe(loop, tmp, &hp_cpu->handlers) { + u32 flags; + struct hp_handler *handler = list_entry(loop, struct hp_handler, + node); + if (qman_retire_fq(&handler->rx, &flags)) + panic("qman_retire_fq(rx) failed"); + BUG_ON(flags & QMAN_FQ_STATE_BLOCKOOS); + if (qman_oos_fq(&handler->rx)) + panic("qman_oos_fq(rx) failed"); + qman_destroy_fq(&handler->rx, 0); + qman_destroy_fq(&handler->tx, 0); + qm_fq_free(handler->fqid_rx); + list_del(&handler->node); + kmem_cache_free(hp_handler_slab, handler); + } +} + +static inline u8 num_cachelines(u32 offset) +{ + u8 res = (offset + (L1_CACHE_BYTES - 1)) + / (L1_CACHE_BYTES); + if (res > 3) + return 3; + return res; +} +#define STASH_DATA_CL \ + num_cachelines(HP_NUM_WORDS * 4) +#define STASH_CTX_CL \ + num_cachelines(offsetof(struct hp_handler,fqid_rx)) + +static void init_handler(void *__handler) +{ + struct qm_mcc_initfq opts; + struct hp_handler *handler = __handler; + BUG_ON(handler->processor_id != smp_processor_id()); + /* Set up rx */ + memset(&handler->rx, 0, sizeof(handler->rx)); + if (handler == special_handler) + handler->rx.cb.dqrr = special_dqrr; + else + handler->rx.cb.dqrr = normal_dqrr; + if (qman_create_fq(handler->fqid_rx, 0, &handler->rx)) + panic("qman_create_fq(rx) failed"); + memset(&opts, 0, sizeof(opts)); + opts.we_mask = QM_INITFQ_WE_FQCTRL | QM_INITFQ_WE_CONTEXTA; + opts.fqd.fq_ctrl = QM_FQCTRL_CTXASTASHING; + opts.fqd.context_a.stashing.data_cl = STASH_DATA_CL; + opts.fqd.context_a.stashing.context_cl = STASH_CTX_CL; + if (qman_init_fq(&handler->rx, QMAN_INITFQ_FLAG_SCHED | + QMAN_INITFQ_FLAG_LOCAL, &opts)) + panic("qman_init_fq(rx) failed"); + /* Set up tx */ + memset(&handler->tx, 0, sizeof(handler->tx)); + if (qman_create_fq(handler->fqid_tx, QMAN_FQ_FLAG_NO_MODIFY, + &handler->tx)) + panic("qman_create_fq(tx) failed"); +} + +static void init_phase2(void) +{ + int loop; + u32 fqid = 0; + u32 lfsr = 0xdeadbeef; + struct hp_cpu *hp_cpu; + struct hp_handler *handler; + + for (loop = 0; loop < HP_PER_CPU; loop++) { + list_for_each_entry(hp_cpu, &hp_cpu_list, node) { + if (!loop) + hp_cpu->iterator = list_first_entry( + &hp_cpu->handlers, + struct hp_handler, node); + else + hp_cpu->iterator = list_entry( + hp_cpu->iterator->node.next, + struct hp_handler, node); + /* Rx FQID is the previous handler's Tx FQID */ + hp_cpu->iterator->fqid_rx = fqid; + /* Allocate new FQID for Tx */ + fqid = qm_fq_new(); + if (!fqid) + panic("qm_fq_new() failed"); + hp_cpu->iterator->fqid_tx = fqid; + /* Rx mixer is the previous handler's Tx mixer */ + hp_cpu->iterator->rx_mixer = lfsr; + /* Get new mixer for Tx */ + lfsr = do_lfsr(lfsr); + hp_cpu->iterator->tx_mixer = lfsr; + } + } + /* Fix up the first handler (fqid_rx==0, rx_mixer=0xdeadbeef) */ + hp_cpu = list_first_entry(&hp_cpu_list, struct hp_cpu, node); + handler = list_first_entry(&hp_cpu->handlers, struct hp_handler, node); + BUG_ON((handler->fqid_rx != 0) || (handler->rx_mixer != 0xdeadbeef)); + handler->fqid_rx = fqid; + handler->rx_mixer = lfsr; + /* and tag it as our "special" handler */ + special_handler = handler; +} + +static void init_phase3(void) +{ + int loop; + struct hp_cpu *hp_cpu; + + for (loop = 0; loop < HP_PER_CPU; loop++) { + list_for_each_entry(hp_cpu, &hp_cpu_list, node) { + if (!loop) + hp_cpu->iterator = list_first_entry( + &hp_cpu->handlers, + struct hp_handler, node); + else + hp_cpu->iterator = list_entry( + hp_cpu->iterator->node.next, + struct hp_handler, node); + preempt_disable(); + if (hp_cpu->processor_id == smp_processor_id()) + init_handler(hp_cpu->iterator); + else + smp_call_function_single(hp_cpu->processor_id, + init_handler, hp_cpu->iterator, 1); + preempt_enable(); + } + } +} + +static void send_first_frame(void *ignore) +{ + u32 *p = special_handler->frame_ptr; + u32 lfsr = HP_FIRST_WORD; + int loop; + struct qm_fd fd; + + BUG_ON(special_handler->processor_id != smp_processor_id()); + memset(&fd, 0, sizeof(fd)); + qm_fd_addr_set64(&fd, special_handler->addr); + fd.format = qm_fd_contig_big; + fd.length29 = HP_NUM_WORDS * 4; + for (loop = 0; loop < HP_NUM_WORDS; loop++, p++) { + if (*p != lfsr) + panic("corrupt frame data"); + *p ^= special_handler->tx_mixer; + lfsr = do_lfsr(lfsr); + } + pr_info("Sending first frame\n"); + if (qman_enqueue(&special_handler->tx, &fd, 0)) + panic("qman_enqueue() failed"); +} + +void qman_test_hotpotato(void) +{ + if (cpumask_weight(cpu_online_mask) < 2) { + pr_info("qman_test_hotpotato, skip - only 1 CPU\n"); + return; + } + + pr_info("qman_test_hotpotato starting\n"); + + hp_cpu_list_length = 0; + loop_counter = 0; + hp_handler_slab = kmem_cache_create("hp_handler_slab", + sizeof(struct hp_handler), L1_CACHE_BYTES, + SLAB_HWCACHE_ALIGN, NULL); + if (!hp_handler_slab) + panic("kmem_cache_create() failed"); + + allocate_frame_data(); + + /* Init phase 1 */ + pr_info("Creating %d handlers per cpu...\n", HP_PER_CPU); + if (on_all_cpus(create_per_cpu_handlers)) + panic("on_each_cpu() failed"); + pr_info("Number of cpus: %d, total of %d handlers\n", + hp_cpu_list_length, hp_cpu_list_length * HP_PER_CPU); + + init_phase2(); + + init_phase3(); + + preempt_disable(); + if (special_handler->processor_id == smp_processor_id()) + send_first_frame(NULL); + else + smp_call_function_single(special_handler->processor_id, + send_first_frame, NULL, 1); + preempt_enable(); + + wait_event(queue, loop_counter == HP_LOOPS); + deallocate_frame_data(); + if (on_all_cpus(destroy_per_cpu_handlers)) + panic("on_each_cpu() failed"); + kmem_cache_destroy(hp_handler_slab); + pr_info("qman_test_hotpotato finished\n"); +} + --- linux-3.13.0.orig/drivers/staging/fsl_qbman/qman_utility.c +++ linux-3.13.0/drivers/staging/fsl_qbman/qman_utility.c @@ -0,0 +1,131 @@ +/* Copyright 2008-2011 Freescale Semiconductor, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "qman_private.h" + +/* ----------------- */ +/* --- FQID Pool --- */ + +struct qman_fqid_pool { + /* Base and size of the FQID range */ + u32 fqid_base; + u32 total; + /* Number of FQIDs currently "allocated" */ + u32 used; + /* Allocation optimisation. When 'usedfqid_base = fqid_start; + pool->total = num; + pool->used = 0; + pool->next = 0; + pool->bits = kmalloc(QNUM_BYTES(num), GFP_KERNEL); + if (!pool->bits) { + kfree(pool); + return NULL; + } + memset(pool->bits, 0, QNUM_BYTES(num)); + /* If num is not an even multiple of QLONG_BITS (or even 8, for + * byte-oriented searching) then we fill the trailing bits with 1, to + * make them look allocated (permanently). */ + for (i = num + 1; i < QNUM_BITS(num); i++) + set_bit(i, pool->bits); + return pool; +} +EXPORT_SYMBOL(qman_fqid_pool_create); + +int qman_fqid_pool_destroy(struct qman_fqid_pool *pool) +{ + int ret = pool->used; + kfree(pool->bits); + kfree(pool); + return ret; +} +EXPORT_SYMBOL(qman_fqid_pool_destroy); + +int qman_fqid_pool_alloc(struct qman_fqid_pool *pool, u32 *fqid) +{ + int ret; + if (pool->used == pool->total) + return -ENOMEM; + *fqid = pool->fqid_base + pool->next; + ret = test_and_set_bit(pool->next, pool->bits); + BUG_ON(ret); + if (++pool->used == pool->total) + return 0; + pool->next = find_next_zero_bit(pool->bits, pool->total, pool->next); + if (pool->next >= pool->total) + pool->next = find_first_zero_bit(pool->bits, pool->total); + BUG_ON(pool->next >= pool->total); + return 0; +} +EXPORT_SYMBOL(qman_fqid_pool_alloc); + +void qman_fqid_pool_free(struct qman_fqid_pool *pool, u32 fqid) +{ + int ret; + + fqid -= pool->fqid_base; + ret = test_and_clear_bit(fqid, pool->bits); + BUG_ON(!ret); + if (pool->used-- == pool->total) + pool->next = fqid; +} +EXPORT_SYMBOL(qman_fqid_pool_free); + +u32 qman_fqid_pool_used(struct qman_fqid_pool *pool) +{ + return pool->used; +} +EXPORT_SYMBOL(qman_fqid_pool_used); + --- linux-3.13.0.orig/drivers/staging/iio/adc/ad7291.c +++ linux-3.13.0/drivers/staging/iio/adc/ad7291.c @@ -465,7 +465,7 @@ struct ad7291_platform_data *pdata = client->dev.platform_data; struct ad7291_chip_info *chip; struct iio_dev *indio_dev; - int ret = 0; + int ret; indio_dev = devm_iio_device_alloc(&client->dev, sizeof(*chip)); if (!indio_dev) @@ -475,7 +475,7 @@ if (pdata && pdata->use_external_ref) { chip->reg = devm_regulator_get(&client->dev, "vref"); if (IS_ERR(chip->reg)) - return ret; + return PTR_ERR(chip->reg); ret = regulator_enable(chip->reg); if (ret) --- linux-3.13.0.orig/drivers/staging/iio/adc/ad799x_core.c +++ linux-3.13.0/drivers/staging/iio/adc/ad799x_core.c @@ -393,7 +393,7 @@ }, { .type = IIO_EV_TYPE_THRESH, .dir = IIO_EV_DIR_FALLING, - .mask_separate = BIT(IIO_EV_INFO_VALUE), + .mask_separate = BIT(IIO_EV_INFO_VALUE) | BIT(IIO_EV_INFO_ENABLE), }, { .type = IIO_EV_TYPE_THRESH, @@ -588,7 +588,8 @@ return 0; error_free_irq: - free_irq(client->irq, indio_dev); + if (client->irq > 0) + free_irq(client->irq, indio_dev); error_cleanup_ring: ad799x_ring_cleanup(indio_dev); error_disable_reg: --- linux-3.13.0.orig/drivers/staging/iio/adc/mxs-lradc.c +++ linux-3.13.0/drivers/staging/iio/adc/mxs-lradc.c @@ -698,6 +698,7 @@ } /* if it is released, wait for the next touch via IRQ */ + lradc->cur_plate = LRADC_TOUCH; mxs_lradc_reg_clear(lradc, LRADC_CTRL1_TOUCH_DETECT_IRQ, LRADC_CTRL1); mxs_lradc_reg_set(lradc, LRADC_CTRL1_TOUCH_DETECT_IRQ_EN, LRADC_CTRL1); } @@ -1306,14 +1307,16 @@ /* Grab all IRQ sources */ for (i = 0; i < of_cfg->irq_count; i++) { lradc->irq[i] = platform_get_irq(pdev, i); - if (lradc->irq[i] < 0) - return -EINVAL; + if (lradc->irq[i] < 0) { + ret = lradc->irq[i]; + goto err_clk; + } ret = devm_request_irq(dev, lradc->irq[i], mxs_lradc_handle_irq, 0, of_cfg->irq_name[i], iio); if (ret) - return ret; + goto err_clk; } platform_set_drvdata(pdev, iio); @@ -1333,7 +1336,7 @@ &mxs_lradc_trigger_handler, &mxs_lradc_buffer_ops); if (ret) - return ret; + goto err_clk; ret = mxs_lradc_trigger_init(iio); if (ret) @@ -1368,6 +1371,8 @@ mxs_lradc_trigger_remove(iio); err_trig: iio_triggered_buffer_cleanup(iio); +err_clk: + clk_disable_unprepare(lradc->clk); return ret; } --- linux-3.13.0.orig/drivers/staging/iio/impedance-analyzer/ad5933.c +++ linux-3.13.0/drivers/staging/iio/impedance-analyzer/ad5933.c @@ -115,6 +115,7 @@ .channel = 0, .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), .address = AD5933_REG_TEMP_DATA, + .scan_index = -1, .scan_type = { .sign = 's', .realbits = 14, @@ -124,9 +125,7 @@ .type = IIO_VOLTAGE, .indexed = 1, .channel = 0, - .extend_name = "real_raw", - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | - BIT(IIO_CHAN_INFO_SCALE), + .extend_name = "real", .address = AD5933_REG_REAL_DATA, .scan_index = 0, .scan_type = { @@ -138,9 +137,7 @@ .type = IIO_VOLTAGE, .indexed = 1, .channel = 0, - .extend_name = "imag_raw", - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW) | - BIT(IIO_CHAN_INFO_SCALE), + .extend_name = "imag", .address = AD5933_REG_IMAG_DATA, .scan_index = 1, .scan_type = { @@ -629,7 +626,7 @@ struct iio_buffer *buffer; buffer = iio_kfifo_allocate(indio_dev); - if (buffer) + if (!buffer) return -ENOMEM; iio_device_attach_buffer(indio_dev, buffer); @@ -748,14 +745,14 @@ indio_dev->name = id->name; indio_dev->modes = INDIO_DIRECT_MODE; indio_dev->channels = ad5933_channels; - indio_dev->num_channels = 1; /* only register temp0_input */ + indio_dev->num_channels = ARRAY_SIZE(ad5933_channels); ret = ad5933_register_ring_funcs_and_init(indio_dev); if (ret) goto error_disable_reg; - /* skip temp0_input, register in0_(real|imag)_raw */ - ret = iio_buffer_register(indio_dev, &ad5933_channels[1], 2); + ret = iio_buffer_register(indio_dev, ad5933_channels, + ARRAY_SIZE(ad5933_channels)); if (ret) goto error_unreg_ring; --- linux-3.13.0.orig/drivers/staging/iio/light/tsl2x7x_core.c +++ linux-3.13.0/drivers/staging/iio/light/tsl2x7x_core.c @@ -667,9 +667,13 @@ chip->tsl2x7x_config[TSL2X7X_PRX_COUNT] = chip->tsl2x7x_settings.prox_pulse_count; chip->tsl2x7x_config[TSL2X7X_PRX_MINTHRESHLO] = - chip->tsl2x7x_settings.prox_thres_low; + (chip->tsl2x7x_settings.prox_thres_low) & 0xFF; + chip->tsl2x7x_config[TSL2X7X_PRX_MINTHRESHHI] = + (chip->tsl2x7x_settings.prox_thres_low >> 8) & 0xFF; chip->tsl2x7x_config[TSL2X7X_PRX_MAXTHRESHLO] = - chip->tsl2x7x_settings.prox_thres_high; + (chip->tsl2x7x_settings.prox_thres_high) & 0xFF; + chip->tsl2x7x_config[TSL2X7X_PRX_MAXTHRESHHI] = + (chip->tsl2x7x_settings.prox_thres_high >> 8) & 0xFF; /* and make sure we're not already on */ if (chip->tsl2x7x_chip_status == TSL2X7X_CHIP_WORKING) { --- linux-3.13.0.orig/drivers/staging/iio/meter/ade7758.h +++ linux-3.13.0/drivers/staging/iio/meter/ade7758.h @@ -119,7 +119,6 @@ u8 *tx; u8 *rx; struct mutex buf_lock; - const struct iio_chan_spec *ade7758_ring_channels; struct spi_transfer ring_xfer[4]; struct spi_message ring_msg; /* --- linux-3.13.0.orig/drivers/staging/iio/meter/ade7758_core.c +++ linux-3.13.0/drivers/staging/iio/meter/ade7758_core.c @@ -630,9 +630,6 @@ .type = IIO_VOLTAGE, .indexed = 1, .channel = 0, - .extend_name = "raw", - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), .address = AD7758_WT(AD7758_PHASE_A, AD7758_VOLTAGE), .scan_index = 0, .scan_type = { @@ -644,9 +641,6 @@ .type = IIO_CURRENT, .indexed = 1, .channel = 0, - .extend_name = "raw", - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), .address = AD7758_WT(AD7758_PHASE_A, AD7758_CURRENT), .scan_index = 1, .scan_type = { @@ -658,9 +652,7 @@ .type = IIO_POWER, .indexed = 1, .channel = 0, - .extend_name = "apparent_raw", - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), + .extend_name = "apparent", .address = AD7758_WT(AD7758_PHASE_A, AD7758_APP_PWR), .scan_index = 2, .scan_type = { @@ -672,9 +664,7 @@ .type = IIO_POWER, .indexed = 1, .channel = 0, - .extend_name = "active_raw", - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), + .extend_name = "active", .address = AD7758_WT(AD7758_PHASE_A, AD7758_ACT_PWR), .scan_index = 3, .scan_type = { @@ -686,9 +676,7 @@ .type = IIO_POWER, .indexed = 1, .channel = 0, - .extend_name = "reactive_raw", - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), + .extend_name = "reactive", .address = AD7758_WT(AD7758_PHASE_A, AD7758_REACT_PWR), .scan_index = 4, .scan_type = { @@ -700,9 +688,6 @@ .type = IIO_VOLTAGE, .indexed = 1, .channel = 1, - .extend_name = "raw", - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), .address = AD7758_WT(AD7758_PHASE_B, AD7758_VOLTAGE), .scan_index = 5, .scan_type = { @@ -714,9 +699,6 @@ .type = IIO_CURRENT, .indexed = 1, .channel = 1, - .extend_name = "raw", - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), .address = AD7758_WT(AD7758_PHASE_B, AD7758_CURRENT), .scan_index = 6, .scan_type = { @@ -728,9 +710,7 @@ .type = IIO_POWER, .indexed = 1, .channel = 1, - .extend_name = "apparent_raw", - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), + .extend_name = "apparent", .address = AD7758_WT(AD7758_PHASE_B, AD7758_APP_PWR), .scan_index = 7, .scan_type = { @@ -742,9 +722,7 @@ .type = IIO_POWER, .indexed = 1, .channel = 1, - .extend_name = "active_raw", - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), + .extend_name = "active", .address = AD7758_WT(AD7758_PHASE_B, AD7758_ACT_PWR), .scan_index = 8, .scan_type = { @@ -756,9 +734,7 @@ .type = IIO_POWER, .indexed = 1, .channel = 1, - .extend_name = "reactive_raw", - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), + .extend_name = "reactive", .address = AD7758_WT(AD7758_PHASE_B, AD7758_REACT_PWR), .scan_index = 9, .scan_type = { @@ -770,9 +746,6 @@ .type = IIO_VOLTAGE, .indexed = 1, .channel = 2, - .extend_name = "raw", - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), .address = AD7758_WT(AD7758_PHASE_C, AD7758_VOLTAGE), .scan_index = 10, .scan_type = { @@ -784,9 +757,6 @@ .type = IIO_CURRENT, .indexed = 1, .channel = 2, - .extend_name = "raw", - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), .address = AD7758_WT(AD7758_PHASE_C, AD7758_CURRENT), .scan_index = 11, .scan_type = { @@ -798,9 +768,7 @@ .type = IIO_POWER, .indexed = 1, .channel = 2, - .extend_name = "apparent_raw", - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), + .extend_name = "apparent", .address = AD7758_WT(AD7758_PHASE_C, AD7758_APP_PWR), .scan_index = 12, .scan_type = { @@ -812,9 +780,7 @@ .type = IIO_POWER, .indexed = 1, .channel = 2, - .extend_name = "active_raw", - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), + .extend_name = "active", .address = AD7758_WT(AD7758_PHASE_C, AD7758_ACT_PWR), .scan_index = 13, .scan_type = { @@ -826,9 +792,7 @@ .type = IIO_POWER, .indexed = 1, .channel = 2, - .extend_name = "reactive_raw", - .info_mask_separate = BIT(IIO_CHAN_INFO_RAW), - .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SCALE), + .extend_name = "reactive", .address = AD7758_WT(AD7758_PHASE_C, AD7758_REACT_PWR), .scan_index = 14, .scan_type = { @@ -869,13 +833,14 @@ goto error_free_rx; } st->us = spi; - st->ade7758_ring_channels = &ade7758_channels[0]; mutex_init(&st->buf_lock); indio_dev->name = spi->dev.driver->name; indio_dev->dev.parent = &spi->dev; indio_dev->info = &ade7758_info; indio_dev->modes = INDIO_DIRECT_MODE; + indio_dev->channels = ade7758_channels; + indio_dev->num_channels = ARRAY_SIZE(ade7758_channels); ret = ade7758_configure_ring(indio_dev); if (ret) --- linux-3.13.0.orig/drivers/staging/iio/meter/ade7758_ring.c +++ linux-3.13.0/drivers/staging/iio/meter/ade7758_ring.c @@ -85,17 +85,16 @@ **/ static int ade7758_ring_preenable(struct iio_dev *indio_dev) { - struct ade7758_state *st = iio_priv(indio_dev); unsigned channel; - if (!bitmap_empty(indio_dev->active_scan_mask, indio_dev->masklength)) + if (bitmap_empty(indio_dev->active_scan_mask, indio_dev->masklength)) return -EINVAL; channel = find_first_bit(indio_dev->active_scan_mask, indio_dev->masklength); ade7758_write_waveform_type(&indio_dev->dev, - st->ade7758_ring_channels[channel].address); + indio_dev->channels[channel].address); return 0; } --- linux-3.13.0.orig/drivers/staging/iio/meter/ade7758_trigger.c +++ linux-3.13.0/drivers/staging/iio/meter/ade7758_trigger.c @@ -85,7 +85,7 @@ ret = iio_trigger_register(st->trig); /* select default trigger */ - indio_dev->trig = st->trig; + indio_dev->trig = iio_trigger_get(st->trig); if (ret) goto error_free_irq; --- linux-3.13.0.orig/drivers/staging/imx-drm/ipuv3-plane.c +++ linux-3.13.0/drivers/staging/imx-drm/ipuv3-plane.c @@ -269,7 +269,8 @@ ipu_idmac_put(ipu_plane->ipu_ch); ipu_dmfc_put(ipu_plane->dmfc); - ipu_dp_put(ipu_plane->dp); + if (ipu_plane->dp) + ipu_dp_put(ipu_plane->dp); } } --- linux-3.13.0.orig/drivers/staging/lustre/lustre/llite/dcache.c +++ linux-3.13.0/drivers/staging/lustre/lustre/llite/dcache.c @@ -278,7 +278,7 @@ inode->i_ino, inode->i_generation, inode); ll_lock_dcache(inode); - ll_d_hlist_for_each_entry(dentry, p, &inode->i_dentry, d_alias) { + ll_d_hlist_for_each_entry(dentry, p, &inode->i_dentry, d_u.d_alias) { CDEBUG(D_DENTRY, "dentry in drop %.*s (%p) parent %p " "inode %p flags %d\n", dentry->d_name.len, dentry->d_name.name, dentry, dentry->d_parent, --- linux-3.13.0.orig/drivers/staging/lustre/lustre/llite/dir.c +++ linux-3.13.0/drivers/staging/lustre/lustre/llite/dir.c @@ -1086,7 +1086,7 @@ break; case Q_GETQUOTA: if (((type == USRQUOTA && - uid_eq(current_euid(), make_kuid(&init_user_ns, id))) || + !uid_eq(current_euid(), make_kuid(&init_user_ns, id))) || (type == GRPQUOTA && !in_egroup_p(make_kgid(&init_user_ns, id)))) && (!cfs_capable(CFS_CAP_SYS_ADMIN) || --- linux-3.13.0.orig/drivers/staging/lustre/lustre/llite/llite_lib.c +++ linux-3.13.0/drivers/staging/lustre/lustre/llite/llite_lib.c @@ -665,7 +665,7 @@ return; list_for_each(tmp, &dentry->d_subdirs) { - struct dentry *d = list_entry(tmp, struct dentry, d_u.d_child); + struct dentry *d = list_entry(tmp, struct dentry, d_child); lustre_dump_dentry(d, recur - 1); } } --- linux-3.13.0.orig/drivers/staging/lustre/lustre/llite/namei.c +++ linux-3.13.0/drivers/staging/lustre/lustre/llite/namei.c @@ -175,14 +175,14 @@ struct ll_d_hlist_node *p; ll_lock_dcache(dir); - ll_d_hlist_for_each_entry(dentry, p, &dir->i_dentry, d_alias) { + ll_d_hlist_for_each_entry(dentry, p, &dir->i_dentry, d_u.d_alias) { spin_lock(&dentry->d_lock); if (!list_empty(&dentry->d_subdirs)) { struct dentry *child; list_for_each_entry_safe(child, tmp_subdir, &dentry->d_subdirs, - d_u.d_child) { + d_child) { if (child->d_inode == NULL) d_lustre_invalidate(child, 1); } @@ -363,7 +363,7 @@ discon_alias = invalid_alias = NULL; ll_lock_dcache(inode); - ll_d_hlist_for_each_entry(alias, p, &inode->i_dentry, d_alias) { + ll_d_hlist_for_each_entry(alias, p, &inode->i_dentry, d_u.d_alias) { LASSERT(alias != dentry); spin_lock(&alias->d_lock); @@ -953,7 +953,7 @@ { struct dentry *parent, *child; - parent = ll_d_hlist_entry(dir->i_dentry, struct dentry, d_alias); + parent = ll_d_hlist_entry(dir->i_dentry, struct dentry, d_u.d_alias); child = d_lookup(parent, name); if (child) { if (child->d_inode) --- linux-3.13.0.orig/drivers/staging/lustre/lustre/obdclass/class_obd.c +++ linux-3.13.0/drivers/staging/lustre/lustre/obdclass/class_obd.c @@ -35,7 +35,7 @@ */ #define DEBUG_SUBSYSTEM S_CLASS -# include +# include #include #include --- linux-3.13.0.orig/drivers/staging/lustre/lustre/ptlrpc/niobuf.c +++ linux-3.13.0/drivers/staging/lustre/lustre/ptlrpc/niobuf.c @@ -179,7 +179,7 @@ LNET_UNLINK, LNET_INS_AFTER, &me_h); if (rc != 0) { CERROR("%s: LNetMEAttach failed x"LPU64"/%d: rc = %d\n", - desc->bd_export->exp_obd->obd_name, xid, + desc->bd_import->imp_obd->obd_name, xid, posted_md, rc); break; } @@ -189,7 +189,7 @@ &desc->bd_mds[posted_md]); if (rc != 0) { CERROR("%s: LNetMDAttach failed x"LPU64"/%d: rc = %d\n", - desc->bd_export->exp_obd->obd_name, xid, + desc->bd_import->imp_obd->obd_name, xid, posted_md, rc); rc2 = LNetMEUnlink(me_h); LASSERT(rc2 == 0); @@ -219,7 +219,7 @@ /* Holler if peer manages to touch buffers before he knows the xid */ if (desc->bd_md_count != total_md) CWARN("%s: Peer %s touched %d buffers while I registered\n", - desc->bd_export->exp_obd->obd_name, libcfs_id2str(peer), + desc->bd_import->imp_obd->obd_name, libcfs_id2str(peer), total_md - desc->bd_md_count); spin_unlock(&desc->bd_lock); --- linux-3.13.0.orig/drivers/staging/mt29f_spinand/mt29f_spinand.c +++ linux-3.13.0/drivers/staging/mt29f_spinand/mt29f_spinand.c @@ -924,6 +924,7 @@ static const struct of_device_id spinand_dt[] = { { .compatible = "spinand,mt29f", }, + {} }; /* --- linux-3.13.0.orig/drivers/staging/netlogic/xlr_net.c +++ linux-3.13.0/drivers/staging/netlogic/xlr_net.c @@ -307,7 +307,7 @@ } static u16 xlr_net_select_queue(struct net_device *ndev, struct sk_buff *skb, - void *accel_priv) + void *accel_priv, select_queue_fallback_t fallback) { return (u16)smp_processor_id(); } --- linux-3.13.0.orig/drivers/staging/rtl8188eu/core/rtw_recv.c +++ linux-3.13.0/drivers/staging/rtl8188eu/core/rtw_recv.c @@ -558,21 +558,19 @@ /* set the security information in the recv_frame */ static union recv_frame *portctrl(struct adapter *adapter, union recv_frame *precv_frame) { - u8 *psta_addr = NULL, *ptr; + u8 *psta_addr, *ptr; uint auth_alg; struct recv_frame_hdr *pfhdr; struct sta_info *psta; struct sta_priv *pstapriv; union recv_frame *prtnframe; - u16 ether_type = 0; + u16 ether_type; u16 eapol_type = 0x888e;/* for Funia BD's WPA issue */ struct rx_pkt_attrib *pattrib; - __be16 be_tmp; _func_enter_; pstapriv = &adapter->stapriv; - psta = rtw_get_stainfo(pstapriv, psta_addr); auth_alg = adapter->securitypriv.dot11AuthAlgrthm; @@ -580,24 +578,23 @@ pfhdr = &precv_frame->u.hdr; pattrib = &pfhdr->attrib; psta_addr = pattrib->ta; + psta = rtw_get_stainfo(pstapriv, psta_addr); prtnframe = NULL; RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("########portctrl:adapter->securitypriv.dot11AuthAlgrthm=%d\n", adapter->securitypriv.dot11AuthAlgrthm)); if (auth_alg == 2) { + /* get ether_type */ + ptr = ptr + pfhdr->attrib.hdrlen + LLC_HEADER_SIZE; + memcpy(ðer_type, ptr, 2); + ether_type = ntohs((unsigned short)ether_type); + if ((psta != NULL) && (psta->ieee8021x_blocked)) { /* blocked */ /* only accept EAPOL frame */ RT_TRACE(_module_rtl871x_recv_c_, _drv_info_, ("########portctrl:psta->ieee8021x_blocked==1\n")); - prtnframe = precv_frame; - - /* get ether_type */ - ptr = ptr+pfhdr->attrib.hdrlen+pfhdr->attrib.iv_len+LLC_HEADER_SIZE; - memcpy(&be_tmp, ptr, 2); - ether_type = ntohs(be_tmp); - if (ether_type == eapol_type) { prtnframe = precv_frame; } else { --- linux-3.13.0.orig/drivers/staging/rtl8188eu/os_dep/os_intfs.c +++ linux-3.13.0/drivers/staging/rtl8188eu/os_dep/os_intfs.c @@ -653,7 +653,7 @@ } static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb, - void *accel_priv) + void *accel_priv, select_queue_fallback_t fallback) { struct adapter *padapter = rtw_netdev_priv(dev); struct mlme_priv *pmlmepriv = &padapter->mlmepriv; --- linux-3.13.0.orig/drivers/staging/rtl8188eu/os_dep/usb_intf.c +++ linux-3.13.0/drivers/staging/rtl8188eu/os_dep/usb_intf.c @@ -53,8 +53,12 @@ {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x0179)}, /* 8188ETV */ /*=== Customer ID ===*/ /****** 8188EUS ********/ - {USB_DEVICE(0x8179, 0x07B8)}, /* Abocom - Abocom */ + {USB_DEVICE(0x056e, 0x4008)}, /* Elecom WDC-150SU2M */ + {USB_DEVICE(0x07b8, 0x8179)}, /* Abocom - Abocom */ {USB_DEVICE(0x2001, 0x330F)}, /* DLink DWA-125 REV D1 */ + {USB_DEVICE(0x2001, 0x3310)}, /* Dlink DWA-123 REV D1 */ + {USB_DEVICE(0x2001, 0x3311)}, /* DLink GO-USB-N150 REV B1 */ + {USB_DEVICE(0x0df6, 0x0076)}, /* Sitecom N150 v2 */ {} /* Terminating entry */ }; --- linux-3.13.0.orig/drivers/staging/rtl8712/rtl871x_recv.c +++ linux-3.13.0/drivers/staging/rtl8712/rtl871x_recv.c @@ -254,7 +254,7 @@ struct sta_info *psta; struct sta_priv *pstapriv; union recv_frame *prtnframe; - u16 ether_type = 0; + u16 ether_type; pstapriv = &adapter->stapriv; ptr = get_recvframe_data(precv_frame); @@ -263,15 +263,14 @@ psta = r8712_get_stainfo(pstapriv, psta_addr); auth_alg = adapter->securitypriv.AuthAlgrthm; if (auth_alg == 2) { + /* get ether_type */ + ptr = ptr + pfhdr->attrib.hdrlen + LLC_HEADER_SIZE; + memcpy(ðer_type, ptr, 2); + ether_type = ntohs((unsigned short)ether_type); + if ((psta != NULL) && (psta->ieee8021x_blocked)) { /* blocked * only accept EAPOL frame */ - prtnframe = precv_frame; - /*get ether_type */ - ptr = ptr + pfhdr->attrib.hdrlen + - pfhdr->attrib.iv_len + LLC_HEADER_SIZE; - memcpy(ðer_type, ptr, 2); - ether_type = ntohs((unsigned short)ether_type); if (ether_type == 0x888e) prtnframe = precv_frame; else { --- linux-3.13.0.orig/drivers/staging/rtl8712/usb_intf.c +++ linux-3.13.0/drivers/staging/rtl8712/usb_intf.c @@ -353,6 +353,10 @@ } } +static const struct device_type wlan_type = { + .name = "wlan", +}; + /* * drv_init() - a device potentially for us * @@ -388,6 +392,7 @@ padapter->pusb_intf = pusb_intf; usb_set_intfdata(pusb_intf, pnetdev); SET_NETDEV_DEV(pnetdev, &pusb_intf->dev); + pnetdev->dev.type = &wlan_type; /* step 2. */ padapter->dvobj_init = &r8712_usb_dvobj_init; padapter->dvobj_deinit = &r8712_usb_dvobj_deinit; --- linux-3.13.0.orig/drivers/staging/rtl8821ae/Kconfig +++ linux-3.13.0/drivers/staging/rtl8821ae/Kconfig @@ -0,0 +1,11 @@ +config R8821AE + tristate "RealTek RTL8821AE Wireless LAN NIC driver" + depends on PCI && WLAN && MAC80211 + depends on m + select WIRELESS_EXT + select WEXT_PRIV + select EEPROM_93CX6 + select CRYPTO + default N + ---help--- + If built as a module, it will be called r8821ae.ko. --- linux-3.13.0.orig/drivers/staging/rtl8821ae/Makefile +++ linux-3.13.0/drivers/staging/rtl8821ae/Makefile @@ -0,0 +1,35 @@ +PCI_MAIN_OBJS := base.o \ + rc.o \ + debug.o \ + regd.o \ + efuse.o \ + cam.o \ + ps.o \ + core.o \ + stats.o \ + pci.o \ + +BT_COEXIST_OBJS:= btcoexist/halbtc8192e2ant.o\ + btcoexist/halbtc8723b1ant.o\ + btcoexist/halbtc8723b2ant.o\ + btcoexist/halbtcoutsrc.o\ + btcoexist/rtl_btc.o \ + +PCI_8821AE_HAL_OBJS:= \ + rtl8821ae/hw.o \ + rtl8821ae/table.o \ + rtl8821ae/sw.o \ + rtl8821ae/trx.o \ + rtl8821ae/led.o \ + rtl8821ae/fw.o \ + rtl8821ae/phy.o \ + rtl8821ae/rf.o \ + rtl8821ae/dm.o \ + rtl8821ae/pwrseq.o \ + rtl8821ae/pwrseqcmd.o \ + rtl8821ae/hal_btc.o \ + rtl8821ae/hal_bt_coexist.o \ + +rtl8821ae-objs += $(BT_COEXIST_OBJS) $(PCI_MAIN_OBJS) $(PCI_8821AE_HAL_OBJS) + +obj-$(CONFIG_R8821AE) += rtl8821ae.o --- linux-3.13.0.orig/drivers/staging/rtl8821ae/TODO +++ linux-3.13.0/drivers/staging/rtl8821ae/TODO @@ -0,0 +1,10 @@ +Realtek 8821AE PCI wifi driver TODO: + - remove built-in btcoexist module when the "real" one gets upstream + - remove built-in rtlwifi code by porting driver to use the "real" one + in the drivers/net/ directory. + - fix up coding style issues + +Please send any patches for this driver to: + Greg Kroah-Hartman +and the mailing list. + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/base.c +++ linux-3.13.0/drivers/staging/rtl8821ae/base.c @@ -0,0 +1,1873 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include +#include +#include "wifi.h" +#include "rc.h" +#include "base.h" +#include "efuse.h" +#include "cam.h" +#include "ps.h" +#include "regd.h" +#include "pci.h" + +/* + *NOTICE!!!: This file will be very big, we hsould + *keep it clear under follwing roles: + * + *This file include follwing part, so, if you add new + *functions into this file, please check which part it + *should includes. or check if you should add new part + *for this file: + * + *1) mac80211 init functions + *2) tx information functions + *3) functions called by core.c + *4) wq & timer callback functions + *5) frame process functions + *6) IOT functions + *7) sysfs functions + *8) vif functions + *9) ... + */ + +/********************************************************* + * + * mac80211 init functions + * + *********************************************************/ +static struct ieee80211_channel rtl_channeltable_2g[] = { + {.center_freq = 2412,.hw_value = 1,}, + {.center_freq = 2417,.hw_value = 2,}, + {.center_freq = 2422,.hw_value = 3,}, + {.center_freq = 2427,.hw_value = 4,}, + {.center_freq = 2432,.hw_value = 5,}, + {.center_freq = 2437,.hw_value = 6,}, + {.center_freq = 2442,.hw_value = 7,}, + {.center_freq = 2447,.hw_value = 8,}, + {.center_freq = 2452,.hw_value = 9,}, + {.center_freq = 2457,.hw_value = 10,}, + {.center_freq = 2462,.hw_value = 11,}, + {.center_freq = 2467,.hw_value = 12,}, + {.center_freq = 2472,.hw_value = 13,}, + {.center_freq = 2484,.hw_value = 14,}, +}; + +static struct ieee80211_channel rtl_channeltable_5g[] = { + {.center_freq = 5180,.hw_value = 36,}, + {.center_freq = 5200,.hw_value = 40,}, + {.center_freq = 5220,.hw_value = 44,}, + {.center_freq = 5240,.hw_value = 48,}, + {.center_freq = 5260,.hw_value = 52,}, + {.center_freq = 5280,.hw_value = 56,}, + {.center_freq = 5300,.hw_value = 60,}, + {.center_freq = 5320,.hw_value = 64,}, + {.center_freq = 5500,.hw_value = 100,}, + {.center_freq = 5520,.hw_value = 104,}, + {.center_freq = 5540,.hw_value = 108,}, + {.center_freq = 5560,.hw_value = 112,}, + {.center_freq = 5580,.hw_value = 116,}, + {.center_freq = 5600,.hw_value = 120,}, + {.center_freq = 5620,.hw_value = 124,}, + {.center_freq = 5640,.hw_value = 128,}, + {.center_freq = 5660,.hw_value = 132,}, + {.center_freq = 5680,.hw_value = 136,}, + {.center_freq = 5700,.hw_value = 140,}, + {.center_freq = 5745,.hw_value = 149,}, + {.center_freq = 5765,.hw_value = 153,}, + {.center_freq = 5785,.hw_value = 157,}, + {.center_freq = 5805,.hw_value = 161,}, + {.center_freq = 5825,.hw_value = 165,}, +}; + +static struct ieee80211_rate rtl_ratetable_2g[] = { + {.bitrate = 10,.hw_value = 0x00,}, + {.bitrate = 20,.hw_value = 0x01,}, + {.bitrate = 55,.hw_value = 0x02,}, + {.bitrate = 110,.hw_value = 0x03,}, + {.bitrate = 60,.hw_value = 0x04,}, + {.bitrate = 90,.hw_value = 0x05,}, + {.bitrate = 120,.hw_value = 0x06,}, + {.bitrate = 180,.hw_value = 0x07,}, + {.bitrate = 240,.hw_value = 0x08,}, + {.bitrate = 360,.hw_value = 0x09,}, + {.bitrate = 480,.hw_value = 0x0a,}, + {.bitrate = 540,.hw_value = 0x0b,}, +}; + +static struct ieee80211_rate rtl_ratetable_5g[] = { + {.bitrate = 60,.hw_value = 0x04,}, + {.bitrate = 90,.hw_value = 0x05,}, + {.bitrate = 120,.hw_value = 0x06,}, + {.bitrate = 180,.hw_value = 0x07,}, + {.bitrate = 240,.hw_value = 0x08,}, + {.bitrate = 360,.hw_value = 0x09,}, + {.bitrate = 480,.hw_value = 0x0a,}, + {.bitrate = 540,.hw_value = 0x0b,}, +}; + +static const struct ieee80211_supported_band rtl_band_2ghz = { + .band = IEEE80211_BAND_2GHZ, + + .channels = rtl_channeltable_2g, + .n_channels = ARRAY_SIZE(rtl_channeltable_2g), + + .bitrates = rtl_ratetable_2g, + .n_bitrates = ARRAY_SIZE(rtl_ratetable_2g), + + .ht_cap = {0}, +}; + +static struct ieee80211_supported_band rtl_band_5ghz = { + .band = IEEE80211_BAND_5GHZ, + + .channels = rtl_channeltable_5g, + .n_channels = ARRAY_SIZE(rtl_channeltable_5g), + + .bitrates = rtl_ratetable_5g, + .n_bitrates = ARRAY_SIZE(rtl_ratetable_5g), + + .ht_cap = {0}, +}; + +static const u8 tid_to_ac[] = { + 2, /* IEEE80211_AC_BE */ + 3, /* IEEE80211_AC_BK */ + 3, /* IEEE80211_AC_BK */ + 2, /* IEEE80211_AC_BE */ + 1, /* IEEE80211_AC_VI */ + 1, /* IEEE80211_AC_VI */ + 0, /* IEEE80211_AC_VO */ + 0, /* IEEE80211_AC_VO */ +}; + +u8 rtl_tid_to_ac(struct ieee80211_hw *hw, u8 tid) +{ + return tid_to_ac[tid]; +} + +static void _rtl_init_hw_ht_capab(struct ieee80211_hw *hw, + struct ieee80211_sta_ht_cap *ht_cap) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + ht_cap->ht_supported = true; + ht_cap->cap = IEEE80211_HT_CAP_SUP_WIDTH_20_40 | + IEEE80211_HT_CAP_SGI_40 | + IEEE80211_HT_CAP_SGI_20 | + IEEE80211_HT_CAP_DSSSCCK40 | IEEE80211_HT_CAP_MAX_AMSDU; + + if (rtlpriv->rtlhal.disable_amsdu_8k) + ht_cap->cap &= ~IEEE80211_HT_CAP_MAX_AMSDU; + + /* + *Maximum length of AMPDU that the STA can receive. + *Length = 2 ^ (13 + max_ampdu_length_exp) - 1 (octets) + */ + ht_cap->ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K; + + /*Minimum MPDU start spacing , */ + ht_cap->ampdu_density = IEEE80211_HT_MPDU_DENSITY_16; + + ht_cap->mcs.tx_params = IEEE80211_HT_MCS_TX_DEFINED; + + /* + *hw->wiphy->bands[IEEE80211_BAND_2GHZ] + *base on ant_num + *rx_mask: RX mask + *if rx_ant =1 rx_mask[0]=0xff;==>MCS0-MCS7 + *if rx_ant =2 rx_mask[1]=0xff;==>MCS8-MCS15 + *if rx_ant >=3 rx_mask[2]=0xff; + *if BW_40 rx_mask[4]=0x01; + *highest supported RX rate + */ + if (rtlpriv->dm.supp_phymode_switch) { + RT_TRACE(COMP_INIT, DBG_EMERG, ("Support phy mode switch\n")); + + ht_cap->mcs.rx_mask[0] = 0xFF; + ht_cap->mcs.rx_mask[1] = 0xFF; + ht_cap->mcs.rx_mask[4] = 0x01; + + ht_cap->mcs.rx_highest = MAX_BIT_RATE_40MHZ_MCS15; + } else { + if (get_rf_type(rtlphy) == RF_1T2R || + get_rf_type(rtlphy) == RF_2T2R) { + + RT_TRACE(COMP_INIT, DBG_DMESG, ("1T2R or 2T2R\n")); + + ht_cap->mcs.rx_mask[0] = 0xFF; + ht_cap->mcs.rx_mask[1] = 0xFF; + ht_cap->mcs.rx_mask[4] = 0x01; + + ht_cap->mcs.rx_highest = MAX_BIT_RATE_40MHZ_MCS15; + } else if (get_rf_type(rtlphy) == RF_1T1R) { + + RT_TRACE(COMP_INIT, DBG_DMESG, ("1T1R\n")); + + ht_cap->mcs.rx_mask[0] = 0xFF; + ht_cap->mcs.rx_mask[1] = 0x00; + ht_cap->mcs.rx_mask[4] = 0x01; + + ht_cap->mcs.rx_highest = MAX_BIT_RATE_40MHZ_MCS7; + } + } +} + +static void _rtl_init_mac80211(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + struct rtl_mac *rtlmac = rtl_mac(rtl_priv(hw)); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct ieee80211_supported_band *sband; + + + if (rtlhal->macphymode == SINGLEMAC_SINGLEPHY && + rtlhal->bandset == BAND_ON_BOTH) { + /* 1: 2.4 G bands */ + /* <1> use mac->bands as mem for hw->wiphy->bands */ + sband = &(rtlmac->bands[IEEE80211_BAND_2GHZ]); + + /* <2> set hw->wiphy->bands[IEEE80211_BAND_2GHZ] + * to default value(1T1R) */ + memcpy(&(rtlmac->bands[IEEE80211_BAND_2GHZ]), &rtl_band_2ghz, + sizeof(struct ieee80211_supported_band)); + + /* <3> init ht cap base on ant_num */ + _rtl_init_hw_ht_capab(hw, &sband->ht_cap); + + /* <4> set mac->sband to wiphy->sband */ + hw->wiphy->bands[IEEE80211_BAND_2GHZ] = sband; + + /* 2: 5 G bands */ + /* <1> use mac->bands as mem for hw->wiphy->bands */ + sband = &(rtlmac->bands[IEEE80211_BAND_5GHZ]); + + /* <2> set hw->wiphy->bands[IEEE80211_BAND_5GHZ] + * to default value(1T1R) */ + memcpy(&(rtlmac->bands[IEEE80211_BAND_5GHZ]), &rtl_band_5ghz, + sizeof(struct ieee80211_supported_band)); + + /* <3> init ht cap base on ant_num */ + _rtl_init_hw_ht_capab(hw, &sband->ht_cap); + + /* <4> set mac->sband to wiphy->sband */ + hw->wiphy->bands[IEEE80211_BAND_5GHZ] = sband; + } else { + if (rtlhal->current_bandtype == BAND_ON_2_4G) { + /* <1> use mac->bands as mem for hw->wiphy->bands */ + sband = &(rtlmac->bands[IEEE80211_BAND_2GHZ]); + + /* <2> set hw->wiphy->bands[IEEE80211_BAND_2GHZ] + * to default value(1T1R) */ + memcpy(&(rtlmac->bands[IEEE80211_BAND_2GHZ]), + &rtl_band_2ghz, + sizeof(struct ieee80211_supported_band)); + + /* <3> init ht cap base on ant_num */ + _rtl_init_hw_ht_capab(hw, &sband->ht_cap); + + /* <4> set mac->sband to wiphy->sband */ + hw->wiphy->bands[IEEE80211_BAND_2GHZ] = sband; + } else if (rtlhal->current_bandtype == BAND_ON_5G) { + /* <1> use mac->bands as mem for hw->wiphy->bands */ + sband = &(rtlmac->bands[IEEE80211_BAND_5GHZ]); + + /* <2> set hw->wiphy->bands[IEEE80211_BAND_5GHZ] + * to default value(1T1R) */ + memcpy(&(rtlmac->bands[IEEE80211_BAND_5GHZ]), + &rtl_band_5ghz, + sizeof(struct ieee80211_supported_band)); + + /* <3> init ht cap base on ant_num */ + _rtl_init_hw_ht_capab(hw, &sband->ht_cap); + + /* <4> set mac->sband to wiphy->sband */ + hw->wiphy->bands[IEEE80211_BAND_5GHZ] = sband; + } else { + RT_TRACE(COMP_INIT, DBG_EMERG, ("Err BAND %d\n", + rtlhal->current_bandtype)); + } + } + /* <5> set hw caps */ + hw->flags = IEEE80211_HW_SIGNAL_DBM | + IEEE80211_HW_RX_INCLUDES_FCS | +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)) + IEEE80211_HW_BEACON_FILTER | +#endif + IEEE80211_HW_AMPDU_AGGREGATION | + IEEE80211_HW_REPORTS_TX_ACK_STATUS | + IEEE80211_HW_CONNECTION_MONITOR | + /* IEEE80211_HW_SUPPORTS_CQM_RSSI | */ + IEEE80211_HW_MFP_CAPABLE | 0; + + /* swlps or hwlps has been set in diff chip in init_sw_vars */ + if (rtlpriv->psc.b_swctrl_lps) + hw->flags |= IEEE80211_HW_SUPPORTS_PS | + IEEE80211_HW_PS_NULLFUNC_STACK | + /* IEEE80211_HW_SUPPORTS_DYNAMIC_PS | */ + 0; +/**/ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + hw->wiphy->interface_modes = + BIT(NL80211_IFTYPE_AP) | + BIT(NL80211_IFTYPE_STATION) | + BIT(NL80211_IFTYPE_ADHOC) | + BIT(NL80211_IFTYPE_MESH_POINT) | + BIT(NL80211_IFTYPE_P2P_CLIENT) | + BIT(NL80211_IFTYPE_P2P_GO); +#else +/**/ + hw->wiphy->interface_modes = + BIT(NL80211_IFTYPE_AP) | + BIT(NL80211_IFTYPE_STATION) | + BIT(NL80211_IFTYPE_ADHOC) | + BIT(NL80211_IFTYPE_MESH_POINT) ; +/**/ +#endif +/**/ +#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,39)) + hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN; +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + hw->wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL; +#endif + + hw->wiphy->rts_threshold = 2347; + + hw->queues = AC_MAX; + hw->extra_tx_headroom = RTL_TX_HEADER_SIZE; + + /* TODO: Correct this value for our hw */ + /* TODO: define these hard code value */ + hw->max_listen_interval = 10; + hw->max_rate_tries = 4; + /* hw->max_rates = 1; */ + hw->sta_data_size = sizeof(struct rtl_sta_info); +#ifdef VIF_TODO + hw->vif_data_size = sizeof(struct rtl_vif_info); +#endif + + /* <6> mac address */ + if (is_valid_ether_addr(rtlefuse->dev_addr)) { + SET_IEEE80211_PERM_ADDR(hw, rtlefuse->dev_addr); + } else { + u8 rtlmac[] = { 0x00, 0xe0, 0x4c, 0x81, 0x92, 0x00 }; + get_random_bytes((rtlmac + (ETH_ALEN - 1)), 1); + SET_IEEE80211_PERM_ADDR(hw, rtlmac); + } + +} + +static void _rtl_init_deferred_work(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + /* <1> timer */ + init_timer(&rtlpriv->works.watchdog_timer); + setup_timer(&rtlpriv->works.watchdog_timer, + rtl_watch_dog_timer_callback, (unsigned long)hw); + init_timer(&rtlpriv->works.dualmac_easyconcurrent_retrytimer); + setup_timer(&rtlpriv->works.dualmac_easyconcurrent_retrytimer, + rtl_easy_concurrent_retrytimer_callback, (unsigned long)hw); + /* <2> work queue */ + rtlpriv->works.hw = hw; +/**/ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +/**/ + rtlpriv->works.rtl_wq = alloc_workqueue(rtlpriv->cfg->name, 0, 0); +/**/ +#else + rtlpriv->works.rtl_wq = create_workqueue(rtlpriv->cfg->name); +#endif +/**/ + INIT_DELAYED_WORK(&rtlpriv->works.watchdog_wq, + (void *)rtl_watchdog_wq_callback); + INIT_DELAYED_WORK(&rtlpriv->works.ips_nic_off_wq, + (void *)rtl_ips_nic_off_wq_callback); + INIT_DELAYED_WORK(&rtlpriv->works.ps_work, + (void *)rtl_swlps_wq_callback); + INIT_DELAYED_WORK(&rtlpriv->works.ps_rfon_wq, + (void *)rtl_swlps_rfon_wq_callback); + INIT_DELAYED_WORK(&rtlpriv->works.fwevt_wq, + (void *)rtl_fwevt_wq_callback); + +} + +void rtl_deinit_deferred_work(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + del_timer_sync(&rtlpriv->works.watchdog_timer); + + cancel_delayed_work(&rtlpriv->works.watchdog_wq); + cancel_delayed_work(&rtlpriv->works.ips_nic_off_wq); + cancel_delayed_work(&rtlpriv->works.ps_work); + cancel_delayed_work(&rtlpriv->works.ps_rfon_wq); + cancel_delayed_work(&rtlpriv->works.fwevt_wq); +} + +void rtl_init_rfkill(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + bool radio_state; + bool blocked; + u8 valid = 0; + + /*set init state to on */ + rtlpriv->rfkill.rfkill_state = 1; + wiphy_rfkill_set_hw_state(hw->wiphy, 0); + + radio_state = rtlpriv->cfg->ops->radio_onoff_checking(hw, &valid); + + if (valid) { + printk(KERN_INFO "rtlwifi: wireless switch is %s\n", + rtlpriv->rfkill.rfkill_state ? "on" : "off"); + + rtlpriv->rfkill.rfkill_state = radio_state; + + blocked = (rtlpriv->rfkill.rfkill_state == 1) ? 0 : 1; + wiphy_rfkill_set_hw_state(hw->wiphy, blocked); + } + + wiphy_rfkill_start_polling(hw->wiphy); +} + +void rtl_deinit_rfkill(struct ieee80211_hw *hw) +{ + wiphy_rfkill_stop_polling(hw->wiphy); +} + +#ifdef VIF_TODO +static void rtl_init_vif(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + INIT_LIST_HEAD(&rtlpriv->vif_priv.vif_list); + + rtlpriv->vif_priv.vifs = 0; +} +#endif + +int rtl_init_core(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *rtlmac = rtl_mac(rtl_priv(hw)); + + /* <1> init mac80211 */ + _rtl_init_mac80211(hw); + rtlmac->hw = hw; + rtlmac->link_state = MAC80211_NOLINK; + + /* <2> rate control register */ + hw->rate_control_algorithm = "rtl_rc"; + + /* + * <3> init CRDA must come after init + * mac80211 hw in _rtl_init_mac80211. + */ + if (rtl_regd_init(hw, rtl_reg_notifier)) { + RT_TRACE(COMP_ERR, DBG_EMERG, ("REGD init failed\n")); + return 1; + } + + /* <4> locks */ + mutex_init(&rtlpriv->locks.conf_mutex); + spin_lock_init(&rtlpriv->locks.ips_lock); + spin_lock_init(&rtlpriv->locks.irq_th_lock); + spin_lock_init(&rtlpriv->locks.h2c_lock); + spin_lock_init(&rtlpriv->locks.rf_ps_lock); + spin_lock_init(&rtlpriv->locks.rf_lock); + spin_lock_init(&rtlpriv->locks.lps_lock); + spin_lock_init(&rtlpriv->locks.waitq_lock); + spin_lock_init(&rtlpriv->locks.entry_list_lock); + spin_lock_init(&rtlpriv->locks.cck_and_rw_pagea_lock); + spin_lock_init(&rtlpriv->locks.check_sendpkt_lock); + spin_lock_init(&rtlpriv->locks.fw_ps_lock); + spin_lock_init(&rtlpriv->locks.iqk_lock); + /* <5> init list */ + INIT_LIST_HEAD(&rtlpriv->entry_list); + + /* <6> init deferred work */ + _rtl_init_deferred_work(hw); + + /* <7> */ +#ifdef VIF_TODO + rtl_init_vif(hw); +#endif + + return 0; +} + +void rtl_deinit_core(struct ieee80211_hw *hw) +{ +} + +void rtl_init_rx_config(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + + rtlpriv->cfg->ops->get_hw_reg(hw, HW_VAR_RCR, (u8 *) (&mac->rx_conf)); +} + +/********************************************************* + * + * tx information functions + * + *********************************************************/ +static void _rtl_qurey_shortpreamble_mode(struct ieee80211_hw *hw, + struct rtl_tcb_desc *tcb_desc, + struct ieee80211_tx_info *info) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 rate_flag = info->control.rates[0].flags; + + tcb_desc->use_shortpreamble = false; + + /* 1M can only use Long Preamble. 11B spec */ + if (tcb_desc->hw_rate == rtlpriv->cfg->maps[RTL_RC_CCK_RATE1M]) + return; + else if (rate_flag & IEEE80211_TX_RC_USE_SHORT_PREAMBLE) + tcb_desc->use_shortpreamble = true; + + return; +} + +static void _rtl_query_shortgi(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, + struct rtl_tcb_desc *tcb_desc, + struct ieee80211_tx_info *info) +{ + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + u8 rate_flag = info->control.rates[0].flags; + u8 sgi_40 = 0, sgi_20 = 0, bw_40 = 0; + tcb_desc->use_shortgi = false; + + if (sta == NULL) + return; + + sgi_40 = sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_40; + sgi_20 = sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_20; + + if (!(sta->ht_cap.ht_supported)) + return; + + if (!sgi_40 && !sgi_20) + return; + + if (mac->opmode == NL80211_IFTYPE_STATION) + bw_40 = mac->bw_40; + else if (mac->opmode == NL80211_IFTYPE_AP || + mac->opmode == NL80211_IFTYPE_ADHOC || + mac->opmode == NL80211_IFTYPE_MESH_POINT) + bw_40 = sta->ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40; + + if ((bw_40 == true) && sgi_40) + tcb_desc->use_shortgi = true; + else if ((bw_40 == false) && sgi_20) + tcb_desc->use_shortgi = true; + + if (!(rate_flag & IEEE80211_TX_RC_SHORT_GI)) + tcb_desc->use_shortgi = false; +} + +static void _rtl_query_protection_mode(struct ieee80211_hw *hw, + struct rtl_tcb_desc *tcb_desc, + struct ieee80211_tx_info *info) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 rate_flag = info->control.rates[0].flags; + + /* Common Settings */ + tcb_desc->b_rts_stbc = false; + tcb_desc->b_cts_enable = false; + tcb_desc->rts_sc = 0; + tcb_desc->b_rts_bw = false; + tcb_desc->b_rts_use_shortpreamble = false; + tcb_desc->b_rts_use_shortgi = false; + + if (rate_flag & IEEE80211_TX_RC_USE_CTS_PROTECT) { + /* Use CTS-to-SELF in protection mode. */ + tcb_desc->b_rts_enable = true; + tcb_desc->b_cts_enable = true; + tcb_desc->rts_rate = rtlpriv->cfg->maps[RTL_RC_OFDM_RATE24M]; + } else if (rate_flag & IEEE80211_TX_RC_USE_RTS_CTS) { + /* Use RTS-CTS in protection mode. */ + tcb_desc->b_rts_enable = true; + tcb_desc->rts_rate = rtlpriv->cfg->maps[RTL_RC_OFDM_RATE24M]; + } +} + +static void _rtl_txrate_selectmode(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, + struct rtl_tcb_desc *tcb_desc) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_sta_info *sta_entry = NULL; + u8 ratr_index = 7; + + if (sta) { + sta_entry = (struct rtl_sta_info *) sta->drv_priv; + ratr_index = sta_entry->ratr_index; + } + if (!tcb_desc->disable_ratefallback || !tcb_desc->use_driver_rate) { + if (mac->opmode == NL80211_IFTYPE_STATION) { + tcb_desc->ratr_index = 0; + } else if (mac->opmode == NL80211_IFTYPE_ADHOC || + mac->opmode == NL80211_IFTYPE_MESH_POINT) { + if (tcb_desc->b_multicast || tcb_desc->b_broadcast) { + tcb_desc->hw_rate = + rtlpriv->cfg->maps[RTL_RC_CCK_RATE2M]; + tcb_desc->use_driver_rate = 1; + tcb_desc->ratr_index = RATR_INX_WIRELESS_MC; + } else { + tcb_desc->ratr_index = ratr_index; + } + } else if (mac->opmode == NL80211_IFTYPE_AP) { + tcb_desc->ratr_index = ratr_index; + } + } + + if (rtlpriv->dm.b_useramask) { + tcb_desc->ratr_index = ratr_index; + /* TODO we will differentiate adhoc and station futrue */ + if (mac->opmode == NL80211_IFTYPE_STATION || + mac->opmode == NL80211_IFTYPE_MESH_POINT) { + tcb_desc->mac_id = 0; + + if (mac->mode == WIRELESS_MODE_N_24G) { + tcb_desc->ratr_index = RATR_INX_WIRELESS_NGB; + } else if (mac->mode == WIRELESS_MODE_N_5G) { + tcb_desc->ratr_index = RATR_INX_WIRELESS_NG; + } else if (mac->mode & WIRELESS_MODE_G) { + tcb_desc->ratr_index = RATR_INX_WIRELESS_GB; + } else if (mac->mode & WIRELESS_MODE_B) { + tcb_desc->ratr_index = RATR_INX_WIRELESS_B; + } else if (mac->mode & WIRELESS_MODE_A) { + tcb_desc->ratr_index = RATR_INX_WIRELESS_G; + } + } else if (mac->opmode == NL80211_IFTYPE_AP || + mac->opmode == NL80211_IFTYPE_ADHOC) { + if (NULL != sta) { + if (sta->aid > 0) { + tcb_desc->mac_id = sta->aid + 1; + } else { + tcb_desc->mac_id = 1; + } + } else { + tcb_desc->mac_id = 0; + } + } + } +} + +static void _rtl_query_bandwidth_mode(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, + struct rtl_tcb_desc *tcb_desc) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + + tcb_desc->b_packet_bw = false; + if (!sta) + return; + if (mac->opmode == NL80211_IFTYPE_AP || + mac->opmode == NL80211_IFTYPE_ADHOC || + mac->opmode == NL80211_IFTYPE_MESH_POINT) { + if (!(sta->ht_cap.ht_supported) || + !(sta->ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40)) + return; + } else if (mac->opmode == NL80211_IFTYPE_STATION) { + if (!mac->bw_40 || !(sta->ht_cap.ht_supported)) + return; + } + if (tcb_desc->b_multicast || tcb_desc->b_broadcast) + return; + + /*use legency rate, shall use 20MHz */ + if (tcb_desc->hw_rate <= rtlpriv->cfg->maps[RTL_RC_OFDM_RATE54M]) + return; + + tcb_desc->b_packet_bw = true; +} + +static u8 _rtl_get_highest_n_rate(struct ieee80211_hw *hw, + struct ieee80211_sta *sta) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 hw_rate; + + if ((get_rf_type(rtlphy) == RF_2T2R) && (sta->ht_cap.mcs.rx_mask[1]!=0)) + hw_rate = rtlpriv->cfg->maps[RTL_RC_HT_RATEMCS15]; + else + hw_rate = rtlpriv->cfg->maps[RTL_RC_HT_RATEMCS7]; + + return hw_rate; +} + +void rtl_get_tcb_desc(struct ieee80211_hw *hw, + struct ieee80211_tx_info *info, + struct ieee80211_sta *sta, + struct sk_buff *skb, struct rtl_tcb_desc *tcb_desc) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *rtlmac = rtl_mac(rtl_priv(hw)); + struct ieee80211_hdr *hdr = rtl_get_hdr(skb); + struct ieee80211_rate *txrate; + u16 fc = rtl_get_fc(skb); + + txrate = ieee80211_get_tx_rate(hw, info); + if (txrate != NULL) + tcb_desc->hw_rate = txrate->hw_value; + + if (ieee80211_is_data(fc)) { + /* + *we set data rate INX 0 + *in rtl_rc.c if skb is special data or + *mgt which need low data rate. + */ + + /* + *So tcb_desc->hw_rate is just used for + *special data and mgt frames + */ + if (info->control.rates[0].idx == 0 || + ieee80211_is_nullfunc(fc)) { + tcb_desc->use_driver_rate = true; + tcb_desc->ratr_index = RATR_INX_WIRELESS_MC; + + tcb_desc->disable_ratefallback = 1; + } else { + /* + *because hw will nerver use hw_rate + *when tcb_desc->use_driver_rate = false + *so we never set highest N rate here, + *and N rate will all be controled by FW + *when tcb_desc->use_driver_rate = false + */ + if (sta && (sta->ht_cap.ht_supported)) { + tcb_desc->hw_rate = _rtl_get_highest_n_rate(hw, sta); + } else { + if(rtlmac->mode == WIRELESS_MODE_B) { + tcb_desc->hw_rate = + rtlpriv->cfg->maps[RTL_RC_CCK_RATE11M]; + } else { + tcb_desc->hw_rate = + rtlpriv->cfg->maps[RTL_RC_OFDM_RATE54M]; + } + } + } + + if (is_multicast_ether_addr(ieee80211_get_DA(hdr))) + tcb_desc->b_multicast = 1; + else if (is_broadcast_ether_addr(ieee80211_get_DA(hdr))) + tcb_desc->b_broadcast = 1; + + _rtl_txrate_selectmode(hw, sta, tcb_desc); + _rtl_query_bandwidth_mode(hw, sta, tcb_desc); + _rtl_qurey_shortpreamble_mode(hw, tcb_desc, info); + _rtl_query_shortgi(hw, sta, tcb_desc, info); + _rtl_query_protection_mode(hw, tcb_desc, info); + } else { + tcb_desc->use_driver_rate = true; + tcb_desc->ratr_index = RATR_INX_WIRELESS_MC; + tcb_desc->disable_ratefallback = 1; + tcb_desc->mac_id = 0; + tcb_desc->b_packet_bw = false; + } +} +//EXPORT_SYMBOL(rtl_get_tcb_desc); + +bool rtl_tx_mgmt_proc(struct ieee80211_hw *hw, struct sk_buff *skb) +{ + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_priv *rtlpriv = rtl_priv(hw); + u16 fc = rtl_get_fc(skb); + + if (rtlpriv->dm.supp_phymode_switch && + mac->link_state < MAC80211_LINKED && + (ieee80211_is_auth(fc) || ieee80211_is_probe_req(fc))) { + if (rtlpriv->cfg->ops->check_switch_to_dmdp) + rtlpriv->cfg->ops->check_switch_to_dmdp(hw); + } + if (ieee80211_is_auth(fc)) { + RT_TRACE(COMP_SEND, DBG_DMESG, ("MAC80211_LINKING\n")); + rtl_ips_nic_on(hw); + + mac->link_state = MAC80211_LINKING; + /* Dul mac */ + rtlpriv->phy.b_need_iqk = true; + + } + + return true; +} + +struct sk_buff *rtl_make_del_ba(struct ieee80211_hw *hw, u8 *sa, + u8 *bssid, u16 tid); +bool rtl_action_proc(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx) +{ + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct ieee80211_hdr *hdr = rtl_get_hdr(skb); + struct rtl_priv *rtlpriv = rtl_priv(hw); + u16 fc = rtl_get_fc(skb); + u8 *act = (u8 *) (((u8 *) skb->data + MAC80211_3ADDR_LEN)); + u8 category; + + if (!ieee80211_is_action(fc)) + return true; + + category = *act; + act++; + switch (category) { + case ACT_CAT_BA: + switch (*act) { + case ACT_ADDBAREQ: + if (mac->act_scanning) + return false; + + RT_TRACE((COMP_SEND | COMP_RECV), DBG_DMESG, + ("%s ACT_ADDBAREQ From :%pM\n", + is_tx ? "Tx" : "Rx", hdr->addr2)); + RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_DMESG, ("req \n"), + skb->data, skb->len); + if (!is_tx) { + struct ieee80211_sta *sta = NULL; + struct rtl_sta_info *sta_entry = NULL; + struct ieee80211_mgmt *mgmt = (void *)skb->data; + u16 capab = 0, tid = 0; + struct rtl_tid_data *tid_data; + struct sk_buff *skb_delba = NULL; + struct ieee80211_rx_status rx_status = { 0 }; + + rcu_read_lock(); + sta = rtl_find_sta(hw, hdr->addr3); + if (sta == NULL) { + RT_TRACE((COMP_SEND | COMP_RECV), + DBG_EMERG, ("sta is NULL\n")); + rcu_read_unlock(); + return true; + } + + sta_entry = (struct rtl_sta_info *)sta->drv_priv; + if (!sta_entry) { + rcu_read_unlock(); + return true; + } + capab = le16_to_cpu(mgmt->u.action.u.addba_req.capab); + tid = (capab & IEEE80211_ADDBA_PARAM_TID_MASK) >> 2; + tid_data = &sta_entry->tids[tid]; + if (tid_data->agg.rx_agg_state == + RTL_RX_AGG_START) { + skb_delba = rtl_make_del_ba(hw, + hdr->addr2, + hdr->addr3, + tid); + if (skb_delba) { +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) + rx_status.freq = hw->conf.chandef.chan->center_freq; + rx_status.band = hw->conf.chandef.chan->band; +#else + rx_status.freq = hw->conf.channel->center_freq; + rx_status.band = hw->conf.channel->band; +#endif + rx_status.flag |= RX_FLAG_DECRYPTED; + rx_status.flag |= RX_FLAG_MACTIME_MPDU; + rx_status.rate_idx = 0; + rx_status.signal = 50 + 10; + memcpy(IEEE80211_SKB_RXCB(skb_delba), &rx_status, + sizeof(rx_status)); + RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_DMESG, + ("fake del\n"), skb_delba->data, + skb_delba->len); + ieee80211_rx_irqsafe(hw, skb_delba); + } + } + rcu_read_unlock(); + } + break; + case ACT_ADDBARSP: + RT_TRACE((COMP_SEND | COMP_RECV), DBG_DMESG, + ("%s ACT_ADDBARSP From :%pM\n", + is_tx ? "Tx" : "Rx", hdr->addr2)); + break; + case ACT_DELBA: + RT_TRACE((COMP_SEND | COMP_RECV), DBG_DMESG, + ("ACT_ADDBADEL From :%pM\n", hdr->addr2)); + break; + } + break; + default: + break; + } + + return true; +} + +/*should call before software enc*/ +u8 rtl_is_special_data(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + u16 fc = rtl_get_fc(skb); + u16 ether_type; + u8 mac_hdr_len = ieee80211_get_hdrlen_from_skb(skb); + const struct iphdr *ip; + + if (!ieee80211_is_data(fc)) + goto end; + + + ip = (struct iphdr *)((u8 *) skb->data + mac_hdr_len + + SNAP_SIZE + PROTOC_TYPE_SIZE); + ether_type = *(u16 *) ((u8 *) skb->data + mac_hdr_len + SNAP_SIZE); + ether_type = ntohs(ether_type); + + if (ETH_P_IP == ether_type) { + if (IPPROTO_UDP == ip->protocol) { + struct udphdr *udp = (struct udphdr *)((u8 *) ip + + (ip->ihl << 2)); + if (((((u8 *) udp)[1] == 68) && + (((u8 *) udp)[3] == 67)) || + ((((u8 *) udp)[1] == 67) && + (((u8 *) udp)[3] == 68))) { + /* + * 68 : UDP BOOTP client + * 67 : UDP BOOTP server + */ + RT_TRACE((COMP_SEND | COMP_RECV), + DBG_DMESG, ("dhcp %s !!\n", + (is_tx) ? "Tx" : "Rx")); + + if (is_tx) { + rtlpriv->ra.is_special_data = true; + rtl_lps_leave(hw); + ppsc->last_delaylps_stamp_jiffies = + jiffies; + } + + return true; + } + } + } else if (ETH_P_ARP == ether_type) { + if (is_tx) { + rtlpriv->ra.is_special_data = true; + rtl_lps_leave(hw); + ppsc->last_delaylps_stamp_jiffies = jiffies; + } + + return true; + } else if (ETH_P_PAE == ether_type) { + RT_TRACE((COMP_SEND | COMP_RECV), DBG_DMESG, + ("802.1X %s EAPOL pkt!!\n", (is_tx) ? "Tx" : "Rx")); + + if (is_tx) { + rtlpriv->ra.is_special_data = true; + rtl_lps_leave(hw); + ppsc->last_delaylps_stamp_jiffies = jiffies; + } + + return true; + } else if (0x86DD == ether_type) { + return true; + } + +end: + rtlpriv->ra.is_special_data = false; + return false; +} + +/********************************************************* + * + * functions called by core.c + * + *********************************************************/ +int rtl_tx_agg_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + struct ieee80211_sta *sta, u16 tid, u16 *ssn) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_tid_data *tid_data; + struct rtl_sta_info *sta_entry = NULL; + + if (sta == NULL) + return -EINVAL; + + if (unlikely(tid >= MAX_TID_COUNT)) + return -EINVAL; + + sta_entry = (struct rtl_sta_info *)sta->drv_priv; + if (!sta_entry) + return -ENXIO; + tid_data = &sta_entry->tids[tid]; + + RT_TRACE(COMP_SEND, DBG_DMESG, + ("on ra = %pM tid = %d seq:%d\n", sta->addr, tid, + tid_data->seq_number)); + + *ssn = tid_data->seq_number; + tid_data->agg.agg_state = RTL_AGG_START; + + ieee80211_start_tx_ba_cb_irqsafe(vif, sta->addr, tid); + return 0; +} + +int rtl_tx_agg_stop(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + struct ieee80211_sta *sta, u16 tid) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_tid_data *tid_data; + struct rtl_sta_info *sta_entry = NULL; + + if (sta == NULL) + return -EINVAL; + + if (!sta->addr) { + RT_TRACE(COMP_ERR, DBG_EMERG, ("ra = NULL\n")); + return -EINVAL; + } + + RT_TRACE(COMP_SEND, DBG_DMESG, + ("on ra = %pM tid = %d\n", sta->addr, tid)); + + if (unlikely(tid >= MAX_TID_COUNT)) + return -EINVAL; + + sta_entry = (struct rtl_sta_info *)sta->drv_priv; + tid_data = &sta_entry->tids[tid]; + sta_entry->tids[tid].agg.agg_state = RTL_AGG_STOP; + + ieee80211_stop_tx_ba_cb_irqsafe(vif, sta->addr, tid); + return 0; +} + +int rtl_rx_agg_start(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, u16 tid) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_tid_data *tid_data; + struct rtl_sta_info *sta_entry = NULL; + + if (sta == NULL) + return -EINVAL; + + if (unlikely(tid >= MAX_TID_COUNT)) + return -EINVAL; + + sta_entry = (struct rtl_sta_info *)sta->drv_priv; + if (!sta_entry) + return -ENXIO; + tid_data = &sta_entry->tids[tid]; + + RT_TRACE(COMP_RECV, DBG_DMESG, + ("on ra = %pM tid = %d seq:%d\n", sta->addr, tid, + tid_data->seq_number)); + + tid_data->agg.rx_agg_state = RTL_RX_AGG_START; + return 0; +} + +int rtl_rx_agg_stop(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, u16 tid) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_tid_data *tid_data; + struct rtl_sta_info *sta_entry = NULL; + + if (sta == NULL) + return -EINVAL; + + if (!sta->addr) { + RT_TRACE(COMP_ERR, DBG_EMERG, ("ra = NULL\n")); + return -EINVAL; + } + + RT_TRACE(COMP_SEND, DBG_DMESG, + ("on ra = %pM tid = %d\n", sta->addr, tid)); + + if (unlikely(tid >= MAX_TID_COUNT)) + return -EINVAL; + + sta_entry = (struct rtl_sta_info *)sta->drv_priv; + tid_data = &sta_entry->tids[tid]; + sta_entry->tids[tid].agg.rx_agg_state = RTL_RX_AGG_STOP; + + return 0; +} +int rtl_tx_agg_oper(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, u16 tid) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_tid_data *tid_data; + struct rtl_sta_info *sta_entry = NULL; + + if (sta == NULL) + return -EINVAL; + + if (!sta->addr) { + RT_TRACE(COMP_ERR, DBG_EMERG, ("ra = NULL\n")); + return -EINVAL; + } + + RT_TRACE(COMP_SEND, DBG_DMESG, + ("on ra = %pM tid = %d\n", sta->addr, tid)); + + if (unlikely(tid >= MAX_TID_COUNT)) + return -EINVAL; + + sta_entry = (struct rtl_sta_info *)sta->drv_priv; + tid_data = &sta_entry->tids[tid]; + sta_entry->tids[tid].agg.agg_state = RTL_AGG_OPERATIONAL; + + return 0; +} + +/********************************************************* + * + * wq & timer callback functions + * + *********************************************************/ +/* this function is used for roaming */ +void rtl_beacon_statistic(struct ieee80211_hw *hw, struct sk_buff *skb) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; + + if (rtlpriv->mac80211.opmode != NL80211_IFTYPE_STATION) + return; + + if (rtlpriv->mac80211.link_state < MAC80211_LINKED) + return; + + /* check if this really is a beacon */ + if (!ieee80211_is_beacon(hdr->frame_control) && + !ieee80211_is_probe_resp(hdr->frame_control)) + return; + + /* min. beacon length + FCS_LEN */ + if (skb->len <= 40 + FCS_LEN) + return; + + /* and only beacons from the associated BSSID, please */ + if (ether_addr_equal(hdr->addr3, rtlpriv->mac80211.bssid)) + return; + + rtlpriv->link_info.bcn_rx_inperiod ++; +} + +void rtl_watchdog_wq_callback(void *data) +{ + struct rtl_works *rtlworks = container_of_dwork_rtl(data, + struct rtl_works, + watchdog_wq); + struct ieee80211_hw *hw = rtlworks->hw; + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + bool b_busytraffic = false; + bool b_tx_busy_traffic = false; + bool b_rx_busy_traffic = false; + bool b_higher_busytraffic = false; + bool b_higher_busyrxtraffic = false; + u8 idx, tid; + u32 rx_cnt_inp4eriod = 0; + u32 tx_cnt_inp4eriod = 0; + u32 aver_rx_cnt_inperiod = 0; + u32 aver_tx_cnt_inperiod = 0; + u32 aver_tidtx_inperiod[MAX_TID_COUNT] = {0}; + u32 tidtx_inp4eriod[MAX_TID_COUNT] = {0}; + bool benter_ps = false; + + if (is_hal_stop(rtlhal)) + return; + + /* <1> Determine if action frame is allowed */ + if (mac->link_state > MAC80211_NOLINK) { + if (mac->cnt_after_linked < 20) + mac->cnt_after_linked++; + } else { + mac->cnt_after_linked = 0; + } + + /* <2> to check if traffic busy, if + * busytraffic we don't change channel */ + if (mac->link_state >= MAC80211_LINKED) { + + /* (1) get aver_rx_cnt_inperiod & aver_tx_cnt_inperiod */ + for (idx = 0; idx <= 2; idx++) { + rtlpriv->link_info.num_rx_in4period[idx] = + rtlpriv->link_info.num_rx_in4period[idx + 1]; + rtlpriv->link_info.num_tx_in4period[idx] = + rtlpriv->link_info.num_tx_in4period[idx + 1]; + } + rtlpriv->link_info.num_rx_in4period[3] = + rtlpriv->link_info.num_rx_inperiod; + rtlpriv->link_info.num_tx_in4period[3] = + rtlpriv->link_info.num_tx_inperiod; + for (idx = 0; idx <= 3; idx++) { + rx_cnt_inp4eriod += + rtlpriv->link_info.num_rx_in4period[idx]; + tx_cnt_inp4eriod += + rtlpriv->link_info.num_tx_in4period[idx]; + } + aver_rx_cnt_inperiod = rx_cnt_inp4eriod / 4; + aver_tx_cnt_inperiod = tx_cnt_inp4eriod / 4; + + /* (2) check traffic busy */ + if (aver_rx_cnt_inperiod > 100 || aver_tx_cnt_inperiod > 100) { + b_busytraffic = true; + if (aver_rx_cnt_inperiod > aver_tx_cnt_inperiod) + b_rx_busy_traffic = true; + else + b_tx_busy_traffic = false; + } + + /* Higher Tx/Rx data. */ + if (aver_rx_cnt_inperiod > 4000 || + aver_tx_cnt_inperiod > 4000) { + b_higher_busytraffic = true; + + /* Extremely high Rx data. */ + if (aver_rx_cnt_inperiod > 5000) + b_higher_busyrxtraffic = true; + } + + /* check every tid's tx traffic */ + for (tid = 0; tid <= 7; tid++) { + for (idx = 0; idx <= 2; idx++) + rtlpriv->link_info.tidtx_in4period[tid][idx] = + rtlpriv->link_info.tidtx_in4period[tid] + [idx + 1]; + rtlpriv->link_info.tidtx_in4period[tid][3] = + rtlpriv->link_info.tidtx_inperiod[tid]; + + for (idx = 0; idx <= 3; idx++) + tidtx_inp4eriod[tid] += + rtlpriv->link_info.tidtx_in4period[tid][idx]; + aver_tidtx_inperiod[tid] = tidtx_inp4eriod[tid] / 4; + if (aver_tidtx_inperiod[tid] > 5000) + rtlpriv->link_info.higher_busytxtraffic[tid] = + true; + else + rtlpriv->link_info.higher_busytxtraffic[tid] = + false; + } + + if (((rtlpriv->link_info.num_rx_inperiod + + rtlpriv->link_info.num_tx_inperiod) > 8) || + (rtlpriv->link_info.num_rx_inperiod > 2)) + benter_ps = false; + else + benter_ps = true; + + /* LeisurePS only work in infra mode. */ + if (benter_ps) + rtl_lps_enter(hw); + else + rtl_lps_leave(hw); + } + + rtlpriv->link_info.num_rx_inperiod = 0; + rtlpriv->link_info.num_tx_inperiod = 0; + for (tid = 0; tid <= 7; tid++) + rtlpriv->link_info.tidtx_inperiod[tid] = 0; + + rtlpriv->link_info.b_busytraffic = b_busytraffic; + rtlpriv->link_info.b_rx_busy_traffic = b_rx_busy_traffic; + rtlpriv->link_info.b_tx_busy_traffic = b_tx_busy_traffic; + rtlpriv->link_info.b_higher_busytraffic = b_higher_busytraffic; + rtlpriv->link_info.b_higher_busyrxtraffic = b_higher_busyrxtraffic; + + /* <3> DM */ + rtlpriv->cfg->ops->dm_watchdog(hw); + + /* <4> roaming */ + if (mac->link_state == MAC80211_LINKED && + mac->opmode == NL80211_IFTYPE_STATION) { + if ((rtlpriv->link_info.bcn_rx_inperiod + + rtlpriv->link_info.num_rx_inperiod) == 0) { + rtlpriv->link_info.roam_times++; + RT_TRACE(COMP_ERR, DBG_DMESG, ("AP off for %d s\n", + (rtlpriv->link_info.roam_times * 2))); + + /* if we can't recv beacon for 10s, + * we should reconnect this AP */ + if (rtlpriv->link_info.roam_times >= 5) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("AP off, try to reconnect now\n")); + rtlpriv->link_info.roam_times = 0; + ieee80211_connection_loss(rtlpriv->mac80211.vif); + } + } else { + rtlpriv->link_info.roam_times = 0; + } + } + rtlpriv->link_info.bcn_rx_inperiod = 0; +} + +void rtl_watch_dog_timer_callback(unsigned long data) +{ + struct ieee80211_hw *hw = (struct ieee80211_hw *)data; + struct rtl_priv *rtlpriv = rtl_priv(hw); + + queue_delayed_work(rtlpriv->works.rtl_wq, + &rtlpriv->works.watchdog_wq, 0); + + mod_timer(&rtlpriv->works.watchdog_timer, + jiffies + MSECS(RTL_WATCH_DOG_TIME)); +} +void rtl_fwevt_wq_callback(void *data) +{ + struct rtl_works *rtlworks = + container_of_dwork_rtl(data, struct rtl_works, fwevt_wq); + struct ieee80211_hw *hw = rtlworks->hw; + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtlpriv->cfg->ops->c2h_command_handle(hw); +} +void rtl_easy_concurrent_retrytimer_callback(unsigned long data) +{ + struct ieee80211_hw *hw = (struct ieee80211_hw *)data; + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_priv *buddy_priv = rtlpriv->buddy_priv; + + if(buddy_priv == NULL) + return; + + rtlpriv->cfg->ops->dualmac_easy_concurrent(hw); +} +/********************************************************* + * + * frame process functions + * + *********************************************************/ +u8 *rtl_find_ie(u8 *data, unsigned int len, u8 ie) +{ + struct ieee80211_mgmt *mgmt = (void *)data; + u8 *pos, *end; + + pos = (u8 *)mgmt->u.beacon.variable; + end = data + len; + while (pos < end) { + if (pos + 2 + pos[1] > end) + return NULL; + + if (pos[0] == ie) + return pos; + + pos += 2 + pos[1]; + } + return NULL; +} + +/* when we use 2 rx ants we send IEEE80211_SMPS_OFF */ +/* when we use 1 rx ant we send IEEE80211_SMPS_STATIC */ +struct sk_buff *rtl_make_smps_action(struct ieee80211_hw *hw, + enum ieee80211_smps_mode smps, + u8 *da, u8 *bssid) +{ + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct sk_buff *skb; + struct ieee80211_mgmt_compat *action_frame; + + /* 27 = header + category + action + smps mode */ + skb = dev_alloc_skb(27 + hw->extra_tx_headroom); + if (!skb) + return NULL; + + skb_reserve(skb, hw->extra_tx_headroom); + action_frame = (void *)skb_put(skb, 27); + memset(action_frame, 0, 27); + memcpy(action_frame->da, da, ETH_ALEN); + memcpy(action_frame->sa, rtlefuse->dev_addr, ETH_ALEN); + memcpy(action_frame->bssid, bssid, ETH_ALEN); + action_frame->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | + IEEE80211_STYPE_ACTION); + action_frame->u.action.category = WLAN_CATEGORY_HT; + action_frame->u.action.u.ht_smps.action = WLAN_HT_ACTION_SMPS; + switch (smps) { + case IEEE80211_SMPS_AUTOMATIC:/* 0 */ + case IEEE80211_SMPS_NUM_MODES:/* 4 */ + WARN_ON(1); + case IEEE80211_SMPS_OFF:/* 1 */ /*MIMO_PS_NOLIMIT*/ + action_frame->u.action.u.ht_smps.smps_control = + WLAN_HT_SMPS_CONTROL_DISABLED;/* 0 */ + break; + case IEEE80211_SMPS_STATIC:/* 2 */ /*MIMO_PS_STATIC*/ + action_frame->u.action.u.ht_smps.smps_control = + WLAN_HT_SMPS_CONTROL_STATIC;/* 1 */ + break; + case IEEE80211_SMPS_DYNAMIC:/* 3 */ /*MIMO_PS_DYNAMIC*/ + action_frame->u.action.u.ht_smps.smps_control = + WLAN_HT_SMPS_CONTROL_DYNAMIC;/* 3 */ + break; + } + + return skb; +} + +int rtl_send_smps_action(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, + enum ieee80211_smps_mode smps) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct sk_buff *skb = NULL; + struct rtl_tcb_desc tcb_desc; + u8 bssid[ETH_ALEN] = {0}; + + memset(&tcb_desc, 0, sizeof(struct rtl_tcb_desc)); + + if (rtlpriv->mac80211.act_scanning) + goto err_free; + + if (!sta) + goto err_free; + + if (unlikely(is_hal_stop(rtlhal) || ppsc->rfpwr_state != ERFON)) + goto err_free; + + if (!test_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status)) + goto err_free; + + if (rtlpriv->mac80211.opmode == NL80211_IFTYPE_AP) + memcpy(bssid, rtlpriv->efuse.dev_addr, ETH_ALEN); + else + memcpy(bssid, rtlpriv->mac80211.bssid, ETH_ALEN); + + skb = rtl_make_smps_action(hw, smps, sta->addr, bssid); + /* this is a type = mgmt * stype = action frame */ + if (skb) { + struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); + struct rtl_sta_info *sta_entry = + (struct rtl_sta_info *) sta->drv_priv; + sta_entry->mimo_ps = smps; + /* rtlpriv->cfg->ops->update_rate_tbl(hw, sta, 0); */ + + info->control.rates[0].idx = 0; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) + info->band = hw->conf.chandef.chan->band; +#else + info->band = hw->conf.channel->band; +#endif +/**/ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) + info->control.sta = sta; + rtlpriv->intf_ops->adapter_tx(hw, skb, &tcb_desc); +#else +/**/ + rtlpriv->intf_ops->adapter_tx(hw, sta, skb, &tcb_desc); +/**/ +#endif +/**/ + } + return 1; + +err_free: + return 0; +} +//EXPORT_SYMBOL(rtl_send_smps_action); + +/* because mac80211 have issues when can receive del ba + * so here we just make a fake del_ba if we receive a ba_req + * but rx_agg was opened to let mac80211 release some ba + * related resources, so please this del_ba for tx */ +struct sk_buff *rtl_make_del_ba(struct ieee80211_hw *hw, + u8 *sa, u8 *bssid, u16 tid) +{ + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct sk_buff *skb; + struct ieee80211_mgmt *action_frame; + u16 params; + + /* 27 = header + category + action + smps mode */ + skb = dev_alloc_skb(34 + hw->extra_tx_headroom); + if (!skb) + return NULL; + + skb_reserve(skb, hw->extra_tx_headroom); + action_frame = (void *)skb_put(skb, 34); + memset(action_frame, 0, 34); + memcpy(action_frame->sa, sa, ETH_ALEN); + memcpy(action_frame->da, rtlefuse->dev_addr, ETH_ALEN); + memcpy(action_frame->bssid, bssid, ETH_ALEN); + action_frame->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | + IEEE80211_STYPE_ACTION); + action_frame->u.action.category = WLAN_CATEGORY_BACK; + action_frame->u.action.u.delba.action_code = WLAN_ACTION_DELBA; + params = (u16)(1 << 11); /* bit 11 initiator */ + params |= (u16)(tid << 12); /* bit 15:12 TID number */ + + action_frame->u.action.u.delba.params = cpu_to_le16(params); + action_frame->u.action.u.delba.reason_code = + cpu_to_le16(WLAN_REASON_QSTA_TIMEOUT); + + return skb; +} + +/********************************************************* + * + * IOT functions + * + *********************************************************/ +static bool rtl_chk_vendor_ouisub(struct ieee80211_hw *hw, + struct octet_string vendor_ie) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + bool matched = false; + static u8 athcap_1[] = { 0x00, 0x03, 0x7F }; + static u8 athcap_2[] = { 0x00, 0x13, 0x74 }; + static u8 broadcap_1[] = { 0x00, 0x10, 0x18 }; + static u8 broadcap_2[] = { 0x00, 0x0a, 0xf7 }; + static u8 broadcap_3[] = { 0x00, 0x05, 0xb5 }; + static u8 racap[] = { 0x00, 0x0c, 0x43 }; + static u8 ciscocap[] = { 0x00, 0x40, 0x96 }; + static u8 marvcap[] = { 0x00, 0x50, 0x43 }; + + if (memcmp(vendor_ie.octet, athcap_1, 3) == 0 || + memcmp(vendor_ie.octet, athcap_2, 3) == 0) { + rtlpriv->mac80211.vendor = PEER_ATH; + matched = true; + } else if (memcmp(vendor_ie.octet, broadcap_1, 3) == 0 || + memcmp(vendor_ie.octet, broadcap_2, 3) == 0 || + memcmp(vendor_ie.octet, broadcap_3, 3) == 0) { + rtlpriv->mac80211.vendor = PEER_BROAD; + matched = true; + } else if (memcmp(vendor_ie.octet, racap, 3) == 0) { + rtlpriv->mac80211.vendor = PEER_RAL; + matched = true; + } else if (memcmp(vendor_ie.octet, ciscocap, 3) == 0) { + rtlpriv->mac80211.vendor = PEER_CISCO; + matched = true; + } else if (memcmp(vendor_ie.octet, marvcap, 3) == 0) { + rtlpriv->mac80211.vendor = PEER_MARV; + matched = true; + } + + return matched; +} + +bool rtl_find_221_ie(struct ieee80211_hw *hw, u8 *data, + unsigned int len) +{ + struct ieee80211_mgmt *mgmt = (void *)data; + struct octet_string vendor_ie; + u8 *pos, *end; + + pos = (u8 *)mgmt->u.beacon.variable; + end = data + len; + while (pos < end) { + if (pos[0] == 221) { + vendor_ie.length = pos[1]; + vendor_ie.octet = &pos[2]; + if (rtl_chk_vendor_ouisub(hw, vendor_ie)) + return true; + } + + if (pos + 2 + pos[1] > end) + return false; + + pos += 2 + pos[1]; + } + return false; +} + +void rtl_recognize_peer(struct ieee80211_hw *hw, u8 *data, unsigned int len) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct ieee80211_hdr *hdr = (void *)data; + u32 vendor = PEER_UNKNOWN; + + static u8 ap3_1[3] = { 0x00, 0x14, 0xbf }; + static u8 ap3_2[3] = { 0x00, 0x1a, 0x70 }; + static u8 ap3_3[3] = { 0x00, 0x1d, 0x7e }; + static u8 ap4_1[3] = { 0x00, 0x90, 0xcc }; + static u8 ap4_2[3] = { 0x00, 0x0e, 0x2e }; + static u8 ap4_3[3] = { 0x00, 0x18, 0x02 }; + static u8 ap4_4[3] = { 0x00, 0x17, 0x3f }; + static u8 ap4_5[3] = { 0x00, 0x1c, 0xdf }; + static u8 ap5_1[3] = { 0x00, 0x1c, 0xf0 }; + static u8 ap5_2[3] = { 0x00, 0x21, 0x91 }; + static u8 ap5_3[3] = { 0x00, 0x24, 0x01 }; + static u8 ap5_4[3] = { 0x00, 0x15, 0xe9 }; + static u8 ap5_5[3] = { 0x00, 0x17, 0x9A }; + static u8 ap5_6[3] = { 0x00, 0x18, 0xE7 }; + static u8 ap6_1[3] = { 0x00, 0x17, 0x94 }; + static u8 ap7_1[3] = { 0x00, 0x14, 0xa4 }; + + if (mac->opmode != NL80211_IFTYPE_STATION) + return; + + if (mac->link_state == MAC80211_NOLINK) { + mac->vendor = PEER_UNKNOWN; + return; + } + + if (mac->cnt_after_linked > 2) + return; + + /* check if this really is a beacon */ + if (!ieee80211_is_beacon(hdr->frame_control)) + return; + + /* min. beacon length + FCS_LEN */ + if (len <= 40 + FCS_LEN) + return; + + /* and only beacons from the associated BSSID, please */ + if (ether_addr_equal(hdr->addr3, rtlpriv->mac80211.bssid)) + return; + + if (rtl_find_221_ie(hw, data, len)) { + vendor = mac->vendor; + } + + if ((memcmp(mac->bssid, ap5_1, 3) == 0) || + (memcmp(mac->bssid, ap5_2, 3) == 0) || + (memcmp(mac->bssid, ap5_3, 3) == 0) || + (memcmp(mac->bssid, ap5_4, 3) == 0) || + (memcmp(mac->bssid, ap5_5, 3) == 0) || + (memcmp(mac->bssid, ap5_6, 3) == 0) || + vendor == PEER_ATH) { + vendor = PEER_ATH; + RT_TRACE(COMP_MAC80211, DBG_LOUD, ("=>ath find\n")); + } else if ((memcmp(mac->bssid, ap4_4, 3) == 0) || + (memcmp(mac->bssid, ap4_5, 3) == 0) || + (memcmp(mac->bssid, ap4_1, 3) == 0) || + (memcmp(mac->bssid, ap4_2, 3) == 0) || + (memcmp(mac->bssid, ap4_3, 3) == 0) || + vendor == PEER_RAL) { + RT_TRACE(COMP_MAC80211, DBG_LOUD, ("=>ral findn\n")); + vendor = PEER_RAL; + } else if (memcmp(mac->bssid, ap6_1, 3) == 0 || + vendor == PEER_CISCO) { + vendor = PEER_CISCO; + RT_TRACE(COMP_MAC80211, DBG_LOUD, ("=>cisco find\n")); + } else if ((memcmp(mac->bssid, ap3_1, 3) == 0) || + (memcmp(mac->bssid, ap3_2, 3) == 0) || + (memcmp(mac->bssid, ap3_3, 3) == 0) || + vendor == PEER_BROAD) { + RT_TRACE(COMP_MAC80211, DBG_LOUD, ("=>broad find\n")); + vendor = PEER_BROAD; + } else if (memcmp(mac->bssid, ap7_1, 3) == 0 || + vendor == PEER_MARV) { + vendor = PEER_MARV; + RT_TRACE(COMP_MAC80211, DBG_LOUD, ("=>marv find\n")); + } + + mac->vendor = vendor; +} + +/********************************************************* + * + * sysfs functions + * + *********************************************************/ +static ssize_t rtl_show_debug_level(struct device *d, + struct device_attribute *attr, char *buf) +{ + struct ieee80211_hw *hw = dev_get_drvdata(d); + struct rtl_priv *rtlpriv = rtl_priv(hw); + + return sprintf(buf, "0x%08X\n", rtlpriv->dbg.global_debuglevel); +} + +static ssize_t rtl_store_debug_level(struct device *d, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct ieee80211_hw *hw = dev_get_drvdata(d); + struct rtl_priv *rtlpriv = rtl_priv(hw); + unsigned long val; + int ret; + + ret = strict_strtoul(buf, 0, &val); + if (ret) { + printk(KERN_DEBUG "%s is not in hex or decimal form.\n", buf); + } else { + rtlpriv->dbg.global_debuglevel = val; + printk(KERN_DEBUG "debuglevel:%x\n", + rtlpriv->dbg.global_debuglevel); + } + + return strnlen(buf, count); +} + +static DEVICE_ATTR(debug_level, S_IWUSR | S_IRUGO, + rtl_show_debug_level, rtl_store_debug_level); + +static struct attribute *rtl_sysfs_entries[] = { + + &dev_attr_debug_level.attr, + + NULL +}; + +/* + * "name" is folder name witch will be + * put in device directory like : + * sys/devices/pci0000:00/0000:00:1c.4/ + * 0000:06:00.0/rtl_sysfs + */ +struct attribute_group rtl_attribute_group = { + .name = "rtlsysfs", + .attrs = rtl_sysfs_entries, +}; + +#ifdef VIF_TODO +/********************************************************* + * + * vif functions + * + *********************************************************/ +static inline struct ieee80211_vif * +rtl_get_vif(struct rtl_vif_info *vif_priv) +{ + return container_of((void *)vif_priv, struct ieee80211_vif, drv_priv); +} + +/* Protected by ar->mutex or RCU */ +struct ieee80211_vif *rtl_get_main_vif(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_vif_info *cvif; + + list_for_each_entry_rcu(cvif, &rtlpriv->vif_priv.vif_list, list) { + if (cvif->active) + return rtl_get_vif(cvif); + } + + return NULL; +} + +static inline bool is_main_vif(struct ieee80211_hw *hw, + struct ieee80211_vif *vif) +{ + bool ret; + + rcu_read_lock(); + ret = (rtl_get_main_vif(hw) == vif); + rcu_read_unlock(); + return ret; +} + +bool rtl_set_vif_info(struct ieee80211_hw *hw, struct ieee80211_vif *vif) +{ + struct rtl_vif_info *vif_info = (void *) vif->drv_priv; + struct rtl_priv *rtlpriv = rtl_priv(hw); + int vif_id = -1; + + if (rtlpriv->vif_priv.vifs >= MAX_VIRTUAL_MAC) { + RT_TRACE(COMP_ERR, DBG_WARNING, + ("vif number can not bigger than %d, now vifs is:%d\n", + MAX_VIRTUAL_MAC, rtlpriv->vif_priv.vifs)); + return false; + } + + rcu_read_lock(); + vif_id = bitmap_find_free_region(&rtlpriv->vif_priv.vif_bitmap, + MAX_VIRTUAL_MAC, 0); + RT_TRACE(COMP_MAC80211, DBG_DMESG, + ("%s vid_id:%d\n", __func__, vif_id)); + + if (vif_id < 0) { + rcu_read_unlock(); + return false; + } + + BUG_ON(rtlpriv->vif_priv.vif[vif_id].id != vif_id); + vif_info->active = true; + vif_info->id = vif_id; + vif_info->enable_beacon = false; + rtlpriv->vif_priv.vifs++; + if (rtlpriv->vif_priv.vifs > 1) { + rtlpriv->psc.b_inactiveps = false; + rtlpriv->psc.b_swctrl_lps = false; + rtlpriv->psc.b_fwctrl_lps = false; + } + + list_add_tail_rcu(&vif_info->list, &rtlpriv->vif_priv.vif_list); + rcu_assign_pointer(rtlpriv->vif_priv.vif[vif_id].vif, vif); + + RT_TRACE(COMP_MAC80211, DBG_DMESG, ("vifaddress:%p %p %p\n", + rtlpriv->vif_priv.vif[vif_id].vif, vif, rtl_get_main_vif(hw))); + + rcu_read_unlock(); + + return true; +} +#endif + + +#if 0 +MODULE_AUTHOR("lizhaoming "); +MODULE_AUTHOR("Realtek WlanFAE "); +MODULE_AUTHOR("Larry Finger "); +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Realtek 802.11n PCI wireless core"); +#endif +struct rtl_global_var global_var = {}; + +int rtl_core_module_init(void) +{ + if (rtl_rate_control_register()) + printk(KERN_DEBUG "rtl: Unable to register rtl_rc," + "use default RC !!\n"); + + /* add proc for debug */ + rtl_proc_add_topdir(); + + /* init some global vars */ + INIT_LIST_HEAD(&global_var.glb_priv_list); + spin_lock_init(&global_var.glb_list_lock); + + return 0; +} + +void rtl_core_module_exit(void) +{ + /*RC*/ + rtl_rate_control_unregister(); + + /* add proc for debug */ + rtl_proc_remove_topdir(); +} + +#if 0 +module_init(rtl_core_module_init); +module_exit(rtl_core_module_exit); +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/base.h +++ linux-3.13.0/drivers/staging/rtl8821ae/base.h @@ -0,0 +1,159 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL_BASE_H__ +#define __RTL_BASE_H__ + +#include "compat.h" + +enum ap_peer { + PEER_UNKNOWN = 0, + PEER_RTL = 1, + PEER_RTL_92SE = 2, + PEER_BROAD = 3, + PEER_RAL = 4, + PEER_ATH = 5, + PEER_CISCO = 6, + PEER_MARV = 7, + PEER_AIRGO = 9, + PEER_MAX = 10, +} ; + +#define RTL_DUMMY_OFFSET 0 +#define RTL_DUMMY_UNIT 8 +#define RTL_TX_DUMMY_SIZE (RTL_DUMMY_OFFSET * RTL_DUMMY_UNIT) +#define RTL_TX_DESC_SIZE 32 +#define RTL_TX_HEADER_SIZE (RTL_TX_DESC_SIZE + RTL_TX_DUMMY_SIZE) + +#define HT_AMSDU_SIZE_4K 3839 +#define HT_AMSDU_SIZE_8K 7935 + +#define MAX_BIT_RATE_40MHZ_MCS15 300 /* Mbps */ +#define MAX_BIT_RATE_40MHZ_MCS7 150 /* Mbps */ + +#define RTL_RATE_COUNT_LEGACY 12 +#define RTL_CHANNEL_COUNT 14 + +#define FRAME_OFFSET_FRAME_CONTROL 0 +#define FRAME_OFFSET_DURATION 2 +#define FRAME_OFFSET_ADDRESS1 4 +#define FRAME_OFFSET_ADDRESS2 10 +#define FRAME_OFFSET_ADDRESS3 16 +#define FRAME_OFFSET_SEQUENCE 22 +#define FRAME_OFFSET_ADDRESS4 24 + +#define SET_80211_HDR_FRAME_CONTROL(_hdr, _val) \ + WRITEEF2BYTE(_hdr, _val) +#define SET_80211_HDR_TYPE_AND_SUBTYPE(_hdr, _val) \ + WRITEEF1BYTE(_hdr, _val) +#define SET_80211_HDR_PWR_MGNT(_hdr, _val) \ + SET_BITS_TO_LE_2BYTE(_hdr, 12, 1, _val) +#define SET_80211_HDR_TO_DS(_hdr, _val) \ + SET_BITS_TO_LE_2BYTE(_hdr, 8, 1, _val) + +#define SET_80211_PS_POLL_AID(_hdr, _val) \ + WRITEEF2BYTE(((u8*)(_hdr))+2, _val) +#define SET_80211_PS_POLL_BSSID(_hdr, _val) \ + CP_MACADDR(((u8*)(_hdr))+4, (u8*)(_val)) +#define SET_80211_PS_POLL_TA(_hdr, _val) \ + CP_MACADDR(((u8*)(_hdr))+10, (u8*)(_val)) + +#define SET_80211_HDR_DURATION(_hdr, _val) \ + WRITEEF2BYTE((u8*)(_hdr)+FRAME_OFFSET_DURATION, _val) +#define SET_80211_HDR_ADDRESS1(_hdr, _val) \ + CP_MACADDR((u8*)(_hdr)+FRAME_OFFSET_ADDRESS1, (u8*)(_val)) +#define SET_80211_HDR_ADDRESS2(_hdr, _val) \ + CP_MACADDR((u8*)(_hdr)+FRAME_OFFSET_ADDRESS2, (u8*)(_val)) +#define SET_80211_HDR_ADDRESS3(_hdr, _val) \ + CP_MACADDR((u8*)(_hdr)+FRAME_OFFSET_ADDRESS3, (u8*)(_val)) +#define SET_80211_HDR_FRAGMENT_SEQUENCE(_hdr, _val) \ + WRITEEF2BYTE((u8*)(_hdr)+FRAME_OFFSET_SEQUENCE, _val) + +#define SET_BEACON_PROBE_RSP_TIME_STAMP_LOW(__phdr, __val) \ + WRITEEF4BYTE(((u8*)(__phdr)) + 24, __val) +#define SET_BEACON_PROBE_RSP_TIME_STAMP_HIGH(__phdr, __val) \ + WRITEEF4BYTE(((u8*)(__phdr)) + 28, __val) +#define SET_BEACON_PROBE_RSP_BEACON_INTERVAL(__phdr, __val) \ + WRITEEF2BYTE(((u8*)(__phdr)) + 32, __val) +#define GET_BEACON_PROBE_RSP_CAPABILITY_INFO(__phdr) \ + READEF2BYTE(((u8*)(__phdr)) + 34) +#define SET_BEACON_PROBE_RSP_CAPABILITY_INFO(__phdr, __val) \ + WRITEEF2BYTE(((u8*)(__phdr)) + 34, __val) +#define MASK_BEACON_PROBE_RSP_CAPABILITY_INFO(__phdr, __val) \ + SET_BEACON_PROBE_RSP_CAPABILITY_INFO(__phdr, \ + (GET_BEACON_PROBE_RSP_CAPABILITY_INFO(__phdr) & (~(__val)))) + +int rtl_init_core(struct ieee80211_hw *hw); +void rtl_deinit_core(struct ieee80211_hw *hw); +void rtl_init_rx_config(struct ieee80211_hw *hw); +void rtl_init_rfkill(struct ieee80211_hw *hw); +void rtl_deinit_rfkill(struct ieee80211_hw *hw); + +void rtl_watch_dog_timer_callback(unsigned long data); +void rtl_deinit_deferred_work(struct ieee80211_hw *hw); + +bool rtl_action_proc(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx); +bool rtl_tx_mgmt_proc(struct ieee80211_hw *hw, struct sk_buff *skb); +u8 rtl_is_special_data(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx); + +void rtl_beacon_statistic(struct ieee80211_hw *hw, struct sk_buff *skb); +void rtl_watch_dog_timer_callback(unsigned long data); +int rtl_tx_agg_start(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + struct ieee80211_sta *sta, u16 tid, u16 * ssn); +int rtl_tx_agg_stop(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + struct ieee80211_sta *sta, u16 tid); +int rtl_tx_agg_oper(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, u16 tid); +int rtl_rx_agg_start(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, u16 tid); +int rtl_rx_agg_stop(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, u16 tid); +void rtl_watchdog_wq_callback(void *data); +void rtl_fwevt_wq_callback(void *data); + +void rtl_get_tcb_desc(struct ieee80211_hw *hw, + struct ieee80211_tx_info *info, + struct ieee80211_sta *sta, + struct sk_buff *skb, struct rtl_tcb_desc *tcb_desc); + +int rtl_send_smps_action(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, + enum ieee80211_smps_mode smps); +u8 *rtl_find_ie(u8 *data, unsigned int len, u8 ie); +void rtl_recognize_peer(struct ieee80211_hw *hw, u8 *data, unsigned int len); +u8 rtl_tid_to_ac(struct ieee80211_hw *hw, u8 tid); +extern struct attribute_group rtl_attribute_group; +void rtl_easy_concurrent_retrytimer_callback(unsigned long data); +extern struct rtl_global_var global_var; + +#ifdef VIF_TODO +struct ieee80211_vif *rtl_get_main_vif(struct ieee80211_hw *hw); +bool rtl_set_vif_info(struct ieee80211_hw *hw, struct ieee80211_vif *vif); +#endif +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/HalBtc8812a1Ant.c +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/HalBtc8812a1Ant.c @@ -0,0 +1,3976 @@ +//============================================================ +// Description: +// +// This file is for 8812a1ant Co-exist mechanism +// +// History +// 2012/11/15 Cosa first check in. +// +//============================================================ + +//============================================================ +// include files +//============================================================ +#include "halbt_precomp.h" +#if 1 +//============================================================ +// Global variables, these are static variables +//============================================================ +static COEX_DM_8812A_1ANT GLCoexDm8812a1Ant; +static PCOEX_DM_8812A_1ANT coex_dm=&GLCoexDm8812a1Ant; +static COEX_STA_8812A_1ANT GLCoexSta8812a1Ant; +static PCOEX_STA_8812A_1ANT coex_sta=&GLCoexSta8812a1Ant; + +const char *const GLBtInfoSrc8812a1Ant[]={ + "BT Info[wifi fw]", + "BT Info[bt rsp]", + "BT Info[bt auto report]", +}; + +//============================================================ +// local function proto type if needed +//============================================================ +//============================================================ +// local function start with halbtc8812a1ant_ +//============================================================ +#if 0 +void +halbtc8812a1ant_Reg0x550Bit3( + PBTC_COEXIST btcoexist, + BOOLEAN bSet + ) +{ + u1Byte u1tmp=0; + + u1tmp = btcoexist->btc_read_1byte(btcoexist, 0x550); + if(bSet) + { + u1tmp |= BIT3; + } + else + { + u1tmp &= ~BIT3; + } + btcoexist->btc_write_1byte(btcoexist, 0x550, u1tmp); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], set 0x550[3]=%d\n", (bSet? 1:0))); +} +#endif +u1Byte +halbtc8812a1ant_BtRssiState( + u1Byte level_num, + u1Byte rssi_thresh, + u1Byte rssi_thresh1 + ) +{ + s4Byte bt_rssi=0; + u1Byte bt_rssi_state; + + bt_rssi = coex_sta->bt_rssi; + + if(level_num == 2) + { + if( (coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_LOW) || + (coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_STAY_LOW)) + { + if(bt_rssi >= (rssi_thresh+BTC_RSSI_COEX_THRESH_TOL_8812A_1ANT)) + { + bt_rssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state switch to High\n")); + } + else + { + bt_rssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state stay at Low\n")); + } + } + else + { + if(bt_rssi < rssi_thresh) + { + bt_rssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state switch to Low\n")); + } + else + { + bt_rssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state stay at High\n")); + } + } + } + else if(level_num == 3) + { + if(rssi_thresh > rssi_thresh1) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi thresh error!!\n")); + return coex_sta->pre_bt_rssi_state; + } + + if( (coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_LOW) || + (coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_STAY_LOW)) + { + if(bt_rssi >= (rssi_thresh+BTC_RSSI_COEX_THRESH_TOL_8812A_1ANT)) + { + bt_rssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state switch to Medium\n")); + } + else + { + bt_rssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state stay at Low\n")); + } + } + else if( (coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_MEDIUM) || + (coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_STAY_MEDIUM)) + { + if(bt_rssi >= (rssi_thresh1+BTC_RSSI_COEX_THRESH_TOL_8812A_1ANT)) + { + bt_rssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state switch to High\n")); + } + else if(bt_rssi < rssi_thresh) + { + bt_rssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state switch to Low\n")); + } + else + { + bt_rssi_state = BTC_RSSI_STATE_STAY_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state stay at Medium\n")); + } + } + else + { + if(bt_rssi < rssi_thresh1) + { + bt_rssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state switch to Medium\n")); + } + else + { + bt_rssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state stay at High\n")); + } + } + } + + coex_sta->pre_bt_rssi_state = bt_rssi_state; + + return bt_rssi_state; +} + +u1Byte +halbtc8812a1ant_WifiRssiState( + PBTC_COEXIST btcoexist, + u1Byte index, + u1Byte level_num, + u1Byte rssi_thresh, + u1Byte rssi_thresh1 + ) +{ + s4Byte wifi_rssi=0; + u1Byte wifi_rssi_state; + + btcoexist->btc_get(btcoexist, BTC_GET_S4_WIFI_RSSI, &wifi_rssi); + + if(level_num == 2) + { + if( (coex_sta->pre_wifi_rssi_state[index] == BTC_RSSI_STATE_LOW) || + (coex_sta->pre_wifi_rssi_state[index] == BTC_RSSI_STATE_STAY_LOW)) + { + if(wifi_rssi >= (rssi_thresh+BTC_RSSI_COEX_THRESH_TOL_8812A_1ANT)) + { + wifi_rssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state switch to High\n")); + } + else + { + wifi_rssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state stay at Low\n")); + } + } + else + { + if(wifi_rssi < rssi_thresh) + { + wifi_rssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state switch to Low\n")); + } + else + { + wifi_rssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state stay at High\n")); + } + } + } + else if(level_num == 3) + { + if(rssi_thresh > rssi_thresh1) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI thresh error!!\n")); + return coex_sta->pre_wifi_rssi_state[index]; + } + + if( (coex_sta->pre_wifi_rssi_state[index] == BTC_RSSI_STATE_LOW) || + (coex_sta->pre_wifi_rssi_state[index] == BTC_RSSI_STATE_STAY_LOW)) + { + if(wifi_rssi >= (rssi_thresh+BTC_RSSI_COEX_THRESH_TOL_8812A_1ANT)) + { + wifi_rssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state switch to Medium\n")); + } + else + { + wifi_rssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state stay at Low\n")); + } + } + else if( (coex_sta->pre_wifi_rssi_state[index] == BTC_RSSI_STATE_MEDIUM) || + (coex_sta->pre_wifi_rssi_state[index] == BTC_RSSI_STATE_STAY_MEDIUM)) + { + if(wifi_rssi >= (rssi_thresh1+BTC_RSSI_COEX_THRESH_TOL_8812A_1ANT)) + { + wifi_rssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state switch to High\n")); + } + else if(wifi_rssi < rssi_thresh) + { + wifi_rssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state switch to Low\n")); + } + else + { + wifi_rssi_state = BTC_RSSI_STATE_STAY_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state stay at Medium\n")); + } + } + else + { + if(wifi_rssi < rssi_thresh1) + { + wifi_rssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state switch to Medium\n")); + } + else + { + wifi_rssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state stay at High\n")); + } + } + } + + coex_sta->pre_wifi_rssi_state[index] = wifi_rssi_state; + + return wifi_rssi_state; +} + +void +halbtc8812a1ant_MonitorBtEnableDisable( + PBTC_COEXIST btcoexist + ) +{ + static BOOLEAN pre_bt_disabled=false; + static u4Byte bt_disable_cnt=0; + BOOLEAN bt_active=true, bt_disable_by68=false, bt_disabled=false; + u4Byte u4_tmp=0; + + // This function check if bt is disabled + + if( coex_sta->high_priority_tx == 0 && + coex_sta->high_priority_rx == 0 && + coex_sta->low_priority_tx == 0 && + coex_sta->low_priority_rx == 0) + { + bt_active = false; + } + if( coex_sta->high_priority_tx == 0xffff && + coex_sta->high_priority_rx == 0xffff && + coex_sta->low_priority_tx == 0xffff && + coex_sta->low_priority_rx == 0xffff) + { + bt_active = false; + } + if(bt_active) + { + bt_disable_cnt = 0; + bt_disabled = false; + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_DISABLE, &bt_disabled); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], BT is enabled !!\n")); + } + else + { + bt_disable_cnt++; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], bt all counters=0, %d times!!\n", + bt_disable_cnt)); + if(bt_disable_cnt >= 2 ||bt_disable_by68) + { + bt_disabled = true; + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_DISABLE, &bt_disabled); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], BT is disabled !!\n")); + } + } + if(pre_bt_disabled != bt_disabled) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], BT is from %s to %s!!\n", + (pre_bt_disabled ? "disabled":"enabled"), + (bt_disabled ? "disabled":"enabled"))); + pre_bt_disabled = bt_disabled; + if(!bt_disabled) + { + } + else + { + } + } +} + +void +halbtc8812a1ant_MonitorBtCtr( + PBTC_COEXIST btcoexist + ) +{ + u4Byte reg_hp_tx_rx, reg_lp_tx_rx, u4_tmp; + u4Byte reg_hp_tx=0, reg_hp_rx=0, reg_lp_tx=0, reg_lp_rx=0; + u1Byte u1_tmp; + + reg_hp_tx_rx = 0x770; + reg_lp_tx_rx = 0x774; + + u4_tmp = btcoexist->btc_read_4byte(btcoexist, reg_hp_tx_rx); + reg_hp_tx = u4_tmp & bMaskLWord; + reg_hp_rx = (u4_tmp & bMaskHWord)>>16; + + u4_tmp = btcoexist->btc_read_4byte(btcoexist, reg_lp_tx_rx); + reg_lp_tx = u4_tmp & bMaskLWord; + reg_lp_rx = (u4_tmp & bMaskHWord)>>16; + + coex_sta->high_priority_tx = reg_hp_tx; + coex_sta->high_priority_rx = reg_hp_rx; + coex_sta->low_priority_tx = reg_lp_tx; + coex_sta->low_priority_rx = reg_lp_rx; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], High Priority Tx/Rx (reg 0x%x)=%x(%d)/%x(%d)\n", + reg_hp_tx_rx, reg_hp_tx, reg_hp_tx, reg_hp_rx, reg_hp_rx)); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], Low Priority Tx/Rx (reg 0x%x)=%x(%d)/%x(%d)\n", + reg_lp_tx_rx, reg_lp_tx, reg_lp_tx, reg_lp_rx, reg_lp_rx)); + + // reset counter + btcoexist->btc_write_1byte(btcoexist, 0x76e, 0xc); +} + +void +halbtc8812a1ant_QueryBtInfo( + PBTC_COEXIST btcoexist + ) +{ + u1Byte dataLen=3; + u1Byte buf[5] = {0}; + static u4Byte btInfoCnt=0; + + if(!btInfoCnt || + (coex_sta->bt_info_c2h_cnt[BT_INFO_SRC_8812A_1ANT_BT_RSP]-btInfoCnt)>2) + { + buf[0] = dataLen; + buf[1] = 0x1; // polling enable, 1=enable, 0=disable + buf[2] = 0x2; // polling time in seconds + buf[3] = 0x1; // auto report enable, 1=enable, 0=disable + + btcoexist->btc_set(btcoexist, BTC_SET_ACT_CTRL_BT_INFO, (PVOID)&buf[0]); + } + btInfoCnt = coex_sta->bt_info_c2h_cnt[BT_INFO_SRC_8812A_1ANT_BT_RSP]; +} +u1Byte +halbtc8812a1ant_ActionAlgorithm( + PBTC_COEXIST btcoexist + ) +{ + PBTC_STACK_INFO stack_info=&btcoexist->stack_info; + BOOLEAN bt_hs_on=false; + u1Byte algorithm=BT_8812A_1ANT_COEX_ALGO_UNDEFINED; + u1Byte num_of_diff_profile=0; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + + if(!stack_info->bt_link_exist) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], No profile exists!!!\n")); + return algorithm; + } + + if(stack_info->sco_exist) + num_of_diff_profile++; + if(stack_info->hid_exist) + num_of_diff_profile++; + if(stack_info->pan_exist) + num_of_diff_profile++; + if(stack_info->a2dp_exist) + num_of_diff_profile++; + + if(num_of_diff_profile == 1) + { + if(stack_info->sco_exist) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO only\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_SCO; + } + else + { + if(stack_info->hid_exist) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HID only\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_HID; + } + else if(stack_info->a2dp_exist) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], A2DP only\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_A2DP; + } + else if(stack_info->pan_exist) + { + if(bt_hs_on) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], PAN(HS) only\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_PANHS; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], PAN(EDR) only\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_PANEDR; + } + } + } + } + else if(num_of_diff_profile == 2) + { + if(stack_info->sco_exist) + { + if(stack_info->hid_exist) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + HID\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_HID; + } + else if(stack_info->a2dp_exist) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + A2DP ==> SCO\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_SCO; + } + else if(stack_info->pan_exist) + { + if(bt_hs_on) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + PAN(HS)\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_SCO; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + PAN(EDR)\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_PANEDR_HID; + } + } + } + else + { + if( stack_info->hid_exist && + stack_info->a2dp_exist ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HID + A2DP\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_HID_A2DP; + } + else if( stack_info->hid_exist && + stack_info->pan_exist ) + { + if(bt_hs_on) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HID + PAN(HS)\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_HID_A2DP; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HID + PAN(EDR)\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_PANEDR_HID; + } + } + else if( stack_info->pan_exist && + stack_info->a2dp_exist ) + { + if(bt_hs_on) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], A2DP + PAN(HS)\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_A2DP_PANHS; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], A2DP + PAN(EDR)\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_PANEDR_A2DP; + } + } + } + } + else if(num_of_diff_profile == 3) + { + if(stack_info->sco_exist) + { + if( stack_info->hid_exist && + stack_info->a2dp_exist ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + HID + A2DP ==> HID\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_HID; + } + else if( stack_info->hid_exist && + stack_info->pan_exist ) + { + if(bt_hs_on) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + HID + PAN(HS)\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_HID_A2DP; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + HID + PAN(EDR)\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_PANEDR_HID; + } + } + else if( stack_info->pan_exist && + stack_info->a2dp_exist ) + { + if(bt_hs_on) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + A2DP + PAN(HS)\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_SCO; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + A2DP + PAN(EDR) ==> HID\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_PANEDR_HID; + } + } + } + else + { + if( stack_info->hid_exist && + stack_info->pan_exist && + stack_info->a2dp_exist ) + { + if(bt_hs_on) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HID + A2DP + PAN(HS)\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_HID_A2DP; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HID + A2DP + PAN(EDR)\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_HID_A2DP_PANEDR; + } + } + } + } + else if(num_of_diff_profile >= 3) + { + if(stack_info->sco_exist) + { + if( stack_info->hid_exist && + stack_info->pan_exist && + stack_info->a2dp_exist ) + { + if(bt_hs_on) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Error!!! SCO + HID + A2DP + PAN(HS)\n")); + + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + HID + A2DP + PAN(EDR)==>PAN(EDR)+HID\n")); + algorithm = BT_8812A_1ANT_COEX_ALGO_PANEDR_HID; + } + } + } + } + + return algorithm; +} + +BOOLEAN +halbtc8812a1ant_NeedToDecBtPwr( + PBTC_COEXIST btcoexist + ) +{ + BOOLEAN ret=false; + BOOLEAN bt_hs_on=false, wifi_connected=false; + s4Byte bt_hs_rssi=0; + + if(!btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on)) + return false; + if(!btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, &wifi_connected)) + return false; + if(!btcoexist->btc_get(btcoexist, BTC_GET_S4_HS_RSSI, &bt_hs_rssi)) + return false; + + if(wifi_connected) + { + if(bt_hs_on) + { + if(bt_hs_rssi > 37) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], Need to decrease bt power for HS mode!!\n")); + ret = true; + } + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], Need to decrease bt power for Wifi is connected!!\n")); + ret = true; + } + } + + return ret; +} + +void +halbtc8812a1ant_SetFwDacSwingLevel( + PBTC_COEXIST btcoexist, + u1Byte dac_swing_lvl + ) +{ + u1Byte h2c_parameter[1] ={0}; + + // There are several type of dacswing + // 0x18/ 0x10/ 0xc/ 0x8/ 0x4/ 0x6 + h2c_parameter[0] = dac_swing_lvl; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], Set Dac Swing Level=0x%x\n", dac_swing_lvl)); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], FW write 0x64=0x%x\n", h2c_parameter[0])); + + btcoexist->btc_fill_h2c(btcoexist, 0x64, 1, h2c_parameter); +} + +void +halbtc8812a1ant_SetFwDecBtPwr( + PBTC_COEXIST btcoexist, + BOOLEAN dec_bt_pwr + ) +{ + u1Byte dataLen=3; + u1Byte buf[5] = {0}; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], decrease Bt Power : %s\n", + (dec_bt_pwr? "Yes!!":"No!!"))); + + buf[0] = dataLen; + buf[1] = 0x3; // OP_Code + buf[2] = 0x1; // OP_Code_Length + if(dec_bt_pwr) + buf[3] = 0x1; // OP_Code_Content + else + buf[3] = 0x0; + + btcoexist->btc_set(btcoexist, BTC_SET_ACT_CTRL_BT_COEX, (PVOID)&buf[0]); +} + +void +halbtc8812a1ant_DecBtPwr( + PBTC_COEXIST btcoexist, + BOOLEAN force_exec, + BOOLEAN dec_bt_pwr + ) +{ + return; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s Dec BT power = %s\n", + (force_exec? "force to":""), ((dec_bt_pwr)? "ON":"OFF"))); + coex_dm->cur_dec_bt_pwr = dec_bt_pwr; + + if(!force_exec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], pre_dec_bt_pwr=%d, cur_dec_bt_pwr=%d\n", + coex_dm->pre_dec_bt_pwr, coex_dm->cur_dec_bt_pwr)); + + if(coex_dm->pre_dec_bt_pwr == coex_dm->cur_dec_bt_pwr) + return; + } + halbtc8812a1ant_SetFwDecBtPwr(btcoexist, coex_dm->cur_dec_bt_pwr); + + coex_dm->pre_dec_bt_pwr = coex_dm->cur_dec_bt_pwr; +} + +void +halbtc8812a1ant_SetFwBtLnaConstrain( + PBTC_COEXIST btcoexist, + BOOLEAN bt_lna_cons_on + ) +{ + u1Byte dataLen=3; + u1Byte buf[5] = {0}; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], set BT LNA Constrain: %s\n", + (bt_lna_cons_on? "ON!!":"OFF!!"))); + + buf[0] = dataLen; + buf[1] = 0x2; // OP_Code + buf[2] = 0x1; // OP_Code_Length + if(bt_lna_cons_on) + buf[3] = 0x1; // OP_Code_Content + else + buf[3] = 0x0; + + btcoexist->btc_set(btcoexist, BTC_SET_ACT_CTRL_BT_COEX, (PVOID)&buf[0]); +} + +void +halbtc8812a1ant_SetBtLnaConstrain( + PBTC_COEXIST btcoexist, + BOOLEAN force_exec, + BOOLEAN bt_lna_cons_on + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s BT Constrain = %s\n", + (force_exec? "force":""), ((bt_lna_cons_on)? "ON":"OFF"))); + coex_dm->bCurBtLnaConstrain = bt_lna_cons_on; + + if(!force_exec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], bPreBtLnaConstrain=%d, bCurBtLnaConstrain=%d\n", + coex_dm->bPreBtLnaConstrain, coex_dm->bCurBtLnaConstrain)); + + if(coex_dm->bPreBtLnaConstrain == coex_dm->bCurBtLnaConstrain) + return; + } + halbtc8812a1ant_SetFwBtLnaConstrain(btcoexist, coex_dm->bCurBtLnaConstrain); + + coex_dm->bPreBtLnaConstrain = coex_dm->bCurBtLnaConstrain; +} + +void +halbtc8812a1ant_SetFwBtPsdMode( + PBTC_COEXIST btcoexist, + u1Byte bt_psd_mode + ) +{ + u1Byte dataLen=3; + u1Byte buf[5] = {0}; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], set BT PSD mode=0x%x\n", + bt_psd_mode)); + + buf[0] = dataLen; + buf[1] = 0x4; // OP_Code + buf[2] = 0x1; // OP_Code_Length + buf[3] = bt_psd_mode; // OP_Code_Content + + btcoexist->btc_set(btcoexist, BTC_SET_ACT_CTRL_BT_COEX, (PVOID)&buf[0]); +} + + +void +halbtc8812a1ant_SetBtPsdMode( + PBTC_COEXIST btcoexist, + BOOLEAN force_exec, + u1Byte bt_psd_mode + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s BT PSD mode = 0x%x\n", + (force_exec? "force":""), bt_psd_mode)); + coex_dm->bCurBtPsdMode = bt_psd_mode; + + if(!force_exec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], bPreBtPsdMode=0x%x, bCurBtPsdMode=0x%x\n", + coex_dm->bPreBtPsdMode, coex_dm->bCurBtPsdMode)); + + if(coex_dm->bPreBtPsdMode == coex_dm->bCurBtPsdMode) + return; + } + halbtc8812a1ant_SetFwBtPsdMode(btcoexist, coex_dm->bCurBtPsdMode); + + coex_dm->bPreBtPsdMode = coex_dm->bCurBtPsdMode; +} + + +void +halbtc8812a1ant_SetBtAutoReport( + PBTC_COEXIST btcoexist, + BOOLEAN enable_auto_report + ) +{ +#if 0 + u1Byte h2c_parameter[1] ={0}; + + h2c_parameter[0] = 0; + + if(enable_auto_report) + { + h2c_parameter[0] |= BIT0; + } + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], BT FW auto report : %s, FW write 0x68=0x%x\n", + (enable_auto_report? "Enabled!!":"Disabled!!"), h2c_parameter[0])); + + btcoexist->btc_fill_h2c(btcoexist, 0x68, 1, h2c_parameter); +#else + +#endif +} + +void +halbtc8812a1ant_BtAutoReport( + PBTC_COEXIST btcoexist, + BOOLEAN force_exec, + BOOLEAN enable_auto_report + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s BT Auto report = %s\n", + (force_exec? "force to":""), ((enable_auto_report)? "Enabled":"Disabled"))); + coex_dm->cur_bt_auto_report = enable_auto_report; + + if(!force_exec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], pre_bt_auto_report=%d, cur_bt_auto_report=%d\n", + coex_dm->pre_bt_auto_report, coex_dm->cur_bt_auto_report)); + + if(coex_dm->pre_bt_auto_report == coex_dm->cur_bt_auto_report) + return; + } + halbtc8812a1ant_SetBtAutoReport(btcoexist, coex_dm->cur_bt_auto_report); + + coex_dm->pre_bt_auto_report = coex_dm->cur_bt_auto_report; +} + +void +halbtc8812a1ant_FwDacSwingLvl( + PBTC_COEXIST btcoexist, + BOOLEAN force_exec, + u1Byte fw_dac_swing_lvl + ) +{ + return; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s set FW Dac Swing level = %d\n", + (force_exec? "force to":""), fw_dac_swing_lvl)); + coex_dm->cur_fw_dac_swing_lvl = fw_dac_swing_lvl; + + if(!force_exec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], pre_fw_dac_swing_lvl=%d, cur_fw_dac_swing_lvl=%d\n", + coex_dm->pre_fw_dac_swing_lvl, coex_dm->cur_fw_dac_swing_lvl)); + + if(coex_dm->pre_fw_dac_swing_lvl == coex_dm->cur_fw_dac_swing_lvl) + return; + } + + halbtc8812a1ant_SetFwDacSwingLevel(btcoexist, coex_dm->cur_fw_dac_swing_lvl); + + coex_dm->pre_fw_dac_swing_lvl = coex_dm->cur_fw_dac_swing_lvl; +} + +void +halbtc8812a1ant_SetSwRfRxLpfCorner( + PBTC_COEXIST btcoexist, + BOOLEAN rx_rf_shrink_on + ) +{ + if(rx_rf_shrink_on) + { + //Shrink RF Rx LPF corner + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Shrink RF Rx LPF corner!!\n")); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1e, 0xfffff, 0xf0ff7); + } + else + { + //Resume RF Rx LPF corner + // After initialized, we can use coex_dm->bt_rf0x1e_backup + if(btcoexist->bInitilized) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Resume RF Rx LPF corner!!\n")); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1e, 0xfffff, coex_dm->bt_rf0x1e_backup); + } + } +} + +void +halbtc8812a1ant_RfShrink( + PBTC_COEXIST btcoexist, + BOOLEAN force_exec, + BOOLEAN rx_rf_shrink_on + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s turn Rx RF Shrink = %s\n", + (force_exec? "force to":""), ((rx_rf_shrink_on)? "ON":"OFF"))); + coex_dm->cur_rf_rx_lpf_shrink = rx_rf_shrink_on; + + if(!force_exec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], pre_rf_rx_lpf_shrink=%d, cur_rf_rx_lpf_shrink=%d\n", + coex_dm->pre_rf_rx_lpf_shrink, coex_dm->cur_rf_rx_lpf_shrink)); + + if(coex_dm->pre_rf_rx_lpf_shrink == coex_dm->cur_rf_rx_lpf_shrink) + return; + } + halbtc8812a1ant_SetSwRfRxLpfCorner(btcoexist, coex_dm->cur_rf_rx_lpf_shrink); + + coex_dm->pre_rf_rx_lpf_shrink = coex_dm->cur_rf_rx_lpf_shrink; +} + +void +halbtc8812a1ant_SetSwPenaltyTxRateAdaptive( + PBTC_COEXIST btcoexist, + BOOLEAN low_penalty_ra + ) +{ + u1Byte u1_tmp; + + u1_tmp = btcoexist->btc_read_1byte(btcoexist, 0x4fd); + u1_tmp |= BIT0; + if(low_penalty_ra) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Tx rate adaptive, set low penalty!!\n")); + u1_tmp &= ~BIT2; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Tx rate adaptive, set normal!!\n")); + u1_tmp |= BIT2; + } + + btcoexist->btc_write_1byte(btcoexist, 0x4fd, u1_tmp); +} + +void +halbtc8812a1ant_LowPenaltyRa( + PBTC_COEXIST btcoexist, + BOOLEAN force_exec, + BOOLEAN low_penalty_ra + ) +{ + return; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s turn LowPenaltyRA = %s\n", + (force_exec? "force to":""), ((low_penalty_ra)? "ON":"OFF"))); + coex_dm->cur_low_penalty_ra = low_penalty_ra; + + if(!force_exec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], pre_low_penalty_ra=%d, cur_low_penalty_ra=%d\n", + coex_dm->pre_low_penalty_ra, coex_dm->cur_low_penalty_ra)); + + if(coex_dm->pre_low_penalty_ra == coex_dm->cur_low_penalty_ra) + return; + } + halbtc8812a1ant_SetSwPenaltyTxRateAdaptive(btcoexist, coex_dm->cur_low_penalty_ra); + + coex_dm->pre_low_penalty_ra = coex_dm->cur_low_penalty_ra; +} + +void +halbtc8812a1ant_SetDacSwingReg( + PBTC_COEXIST btcoexist, + u4Byte level + ) +{ + u1Byte val=(u1Byte)level; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Write SwDacSwing = 0x%x\n", level)); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0xc5b, 0x3e, val); +} + +void +halbtc8812a1ant_SetSwFullTimeDacSwing( + PBTC_COEXIST btcoexist, + BOOLEAN sw_dac_swing_on, + u4Byte sw_dac_swing_lvl + ) +{ + if(sw_dac_swing_on) + { + halbtc8812a1ant_SetDacSwingReg(btcoexist, sw_dac_swing_lvl); + } + else + { + halbtc8812a1ant_SetDacSwingReg(btcoexist, 0x18); + } +} + + +void +halbtc8812a1ant_DacSwing( + PBTC_COEXIST btcoexist, + BOOLEAN force_exec, + BOOLEAN dac_swing_on, + u4Byte dac_swing_lvl + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s turn DacSwing=%s, dac_swing_lvl=0x%x\n", + (force_exec? "force to":""), ((dac_swing_on)? "ON":"OFF"), dac_swing_lvl)); + coex_dm->cur_dac_swing_on = dac_swing_on; + coex_dm->cur_dac_swing_lvl = dac_swing_lvl; + + if(!force_exec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], pre_dac_swing_on=%d, pre_dac_swing_lvl=0x%x, cur_dac_swing_on=%d, cur_dac_swing_lvl=0x%x\n", + coex_dm->pre_dac_swing_on, coex_dm->pre_dac_swing_lvl, + coex_dm->cur_dac_swing_on, coex_dm->cur_dac_swing_lvl)); + + if( (coex_dm->pre_dac_swing_on == coex_dm->cur_dac_swing_on) && + (coex_dm->pre_dac_swing_lvl == coex_dm->cur_dac_swing_lvl) ) + return; + } + delay_ms(30); + halbtc8812a1ant_SetSwFullTimeDacSwing(btcoexist, dac_swing_on, dac_swing_lvl); + + coex_dm->pre_dac_swing_on = coex_dm->cur_dac_swing_on; + coex_dm->pre_dac_swing_lvl = coex_dm->cur_dac_swing_lvl; +} + +void +halbtc8812a1ant_SetAdcBackOff( + PBTC_COEXIST btcoexist, + BOOLEAN adc_back_off + ) +{ + if(adc_back_off) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], BB BackOff Level On!\n")); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x8db, 0x60, 0x3); + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], BB BackOff Level Off!\n")); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x8db, 0x60, 0x1); + } +} + +void +halbtc8812a1ant_AdcBackOff( + PBTC_COEXIST btcoexist, + BOOLEAN force_exec, + BOOLEAN adc_back_off + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s turn AdcBackOff = %s\n", + (force_exec? "force to":""), ((adc_back_off)? "ON":"OFF"))); + coex_dm->cur_adc_back_off = adc_back_off; + + if(!force_exec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], pre_adc_back_off=%d, cur_adc_back_off=%d\n", + coex_dm->pre_adc_back_off, coex_dm->cur_adc_back_off)); + + if(coex_dm->pre_adc_back_off == coex_dm->cur_adc_back_off) + return; + } + halbtc8812a1ant_SetAdcBackOff(btcoexist, coex_dm->cur_adc_back_off); + + coex_dm->pre_adc_back_off = coex_dm->cur_adc_back_off; +} + +void +halbtc8812a1ant_SetAgcTable( + PBTC_COEXIST btcoexist, + BOOLEAN agc_table_en + ) +{ + u1Byte rssi_adjust_val=0; + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0xef, 0xfffff, 0x02000); + if(agc_table_en) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Agc Table On!\n")); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, 0xfffff, 0x3fa58); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, 0xfffff, 0x37a58); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, 0xfffff, 0x2fa58); + rssi_adjust_val = 8; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Agc Table Off!\n")); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, 0xfffff, 0x39258); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, 0xfffff, 0x31258); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, 0xfffff, 0x29258); + } + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0xef, 0xfffff, 0x0); + + // set rssi_adjust_val for wifi module. + btcoexist->btc_set(btcoexist, BTC_SET_U1_RSSI_ADJ_VAL_FOR_AGC_TABLE_ON, &rssi_adjust_val); +} + + +void +halbtc8812a1ant_AgcTable( + PBTC_COEXIST btcoexist, + BOOLEAN force_exec, + BOOLEAN agc_table_en + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s %s Agc Table\n", + (force_exec? "force to":""), ((agc_table_en)? "Enable":"Disable"))); + coex_dm->cur_agc_table_en = agc_table_en; + + if(!force_exec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], pre_agc_table_en=%d, cur_agc_table_en=%d\n", + coex_dm->pre_agc_table_en, coex_dm->cur_agc_table_en)); + + if(coex_dm->pre_agc_table_en == coex_dm->cur_agc_table_en) + return; + } + halbtc8812a1ant_SetAgcTable(btcoexist, agc_table_en); + + coex_dm->pre_agc_table_en = coex_dm->cur_agc_table_en; +} + +void +halbtc8812a1ant_SetCoexTable( + PBTC_COEXIST btcoexist, + u4Byte val0x6c0, + u4Byte val0x6c4, + u4Byte val0x6c8, + u1Byte val0x6cc + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], set coex table, set 0x6c0=0x%x\n", val0x6c0)); + btcoexist->btc_write_4byte(btcoexist, 0x6c0, val0x6c0); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], set coex table, set 0x6c4=0x%x\n", val0x6c4)); + btcoexist->btc_write_4byte(btcoexist, 0x6c4, val0x6c4); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], set coex table, set 0x6c8=0x%x\n", val0x6c8)); + btcoexist->btc_write_4byte(btcoexist, 0x6c8, val0x6c8); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], set coex table, set 0x6cc=0x%x\n", val0x6cc)); + btcoexist->btc_write_1byte(btcoexist, 0x6cc, val0x6cc); +} + +void +halbtc8812a1ant_CoexTable( + PBTC_COEXIST btcoexist, + BOOLEAN force_exec, + u4Byte val0x6c0, + u4Byte val0x6c4, + u4Byte val0x6c8, + u1Byte val0x6cc + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s write Coex Table 0x6c0=0x%x, 0x6c4=0x%x, 0x6c8=0x%x, 0x6cc=0x%x\n", + (force_exec? "force to":""), val0x6c0, val0x6c4, val0x6c8, val0x6cc)); + coex_dm->cur_val0x6c0 = val0x6c0; + coex_dm->cur_val0x6c4 = val0x6c4; + coex_dm->cur_val0x6c8 = val0x6c8; + coex_dm->cur_val0x6cc = val0x6cc; + + if(!force_exec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], pre_val0x6c0=0x%x, pre_val0x6c4=0x%x, pre_val0x6c8=0x%x, pre_val0x6cc=0x%x !!\n", + coex_dm->pre_val0x6c0, coex_dm->pre_val0x6c4, coex_dm->pre_val0x6c8, coex_dm->pre_val0x6cc)); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], cur_val0x6c0=0x%x, cur_val0x6c4=0x%x, cur_val0x6c8=0x%x, cur_val0x6cc=0x%x !!\n", + coex_dm->cur_val0x6c0, coex_dm->cur_val0x6c4, coex_dm->cur_val0x6c8, coex_dm->cur_val0x6cc)); + + if( (coex_dm->pre_val0x6c0 == coex_dm->cur_val0x6c0) && + (coex_dm->pre_val0x6c4 == coex_dm->cur_val0x6c4) && + (coex_dm->pre_val0x6c8 == coex_dm->cur_val0x6c8) && + (coex_dm->pre_val0x6cc == coex_dm->cur_val0x6cc) ) + return; + } + halbtc8812a1ant_SetCoexTable(btcoexist, val0x6c0, val0x6c4, val0x6c8, val0x6cc); + + coex_dm->pre_val0x6c0 = coex_dm->cur_val0x6c0; + coex_dm->pre_val0x6c4 = coex_dm->cur_val0x6c4; + coex_dm->pre_val0x6c8 = coex_dm->cur_val0x6c8; + coex_dm->pre_val0x6cc = coex_dm->cur_val0x6cc; +} + +void +halbtc8812a1ant_SetFwIgnoreWlanAct( + PBTC_COEXIST btcoexist, + BOOLEAN enable + ) +{ + u1Byte dataLen=3; + u1Byte buf[5] = {0}; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], %s BT Ignore Wlan_Act\n", + (enable? "Enable":"Disable"))); + + buf[0] = dataLen; + buf[1] = 0x1; // OP_Code + buf[2] = 0x1; // OP_Code_Length + if(enable) + buf[3] = 0x1; // OP_Code_Content + else + buf[3] = 0x0; + + btcoexist->btc_set(btcoexist, BTC_SET_ACT_CTRL_BT_COEX, (PVOID)&buf[0]); +} + +void +halbtc8812a1ant_IgnoreWlanAct( + PBTC_COEXIST btcoexist, + BOOLEAN force_exec, + BOOLEAN enable + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s turn Ignore WlanAct %s\n", + (force_exec? "force to":""), (enable? "ON":"OFF"))); + coex_dm->cur_ignore_wlan_act = enable; + + if(!force_exec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], pre_ignore_wlan_act = %d, cur_ignore_wlan_act = %d!!\n", + coex_dm->pre_ignore_wlan_act, coex_dm->cur_ignore_wlan_act)); + + if(coex_dm->pre_ignore_wlan_act == coex_dm->cur_ignore_wlan_act) + return; + } + halbtc8812a1ant_SetFwIgnoreWlanAct(btcoexist, enable); + + coex_dm->pre_ignore_wlan_act = coex_dm->cur_ignore_wlan_act; +} + +void +halbtc8812a1ant_SetFwPstdma( + PBTC_COEXIST btcoexist, + u1Byte byte1, + u1Byte byte2, + u1Byte byte3, + u1Byte byte4, + u1Byte byte5 + ) +{ + u1Byte h2c_parameter[5] ={0}; + + h2c_parameter[0] = byte1; + h2c_parameter[1] = byte2; + h2c_parameter[2] = byte3; + h2c_parameter[3] = byte4; + h2c_parameter[4] = byte5; + + coex_dm->ps_tdma_para[0] = byte1; + coex_dm->ps_tdma_para[1] = byte2; + coex_dm->ps_tdma_para[2] = byte3; + coex_dm->ps_tdma_para[3] = byte4; + coex_dm->ps_tdma_para[4] = byte5; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], FW write 0x60(5bytes)=0x%x%08x\n", + h2c_parameter[0], + h2c_parameter[1]<<24|h2c_parameter[2]<<16|h2c_parameter[3]<<8|h2c_parameter[4])); + + btcoexist->btc_fill_h2c(btcoexist, 0x60, 5, h2c_parameter); +} + +void +halbtc8812a1ant_SetLpsRpwm( + PBTC_COEXIST btcoexist, + u1Byte lps_val, + u1Byte rpwm_val + ) +{ + u1Byte lps=lps_val; + u1Byte rpwm=rpwm_val; + + btcoexist->btc_set(btcoexist, BTC_SET_U1_1ANT_LPS, &lps); + btcoexist->btc_set(btcoexist, BTC_SET_U1_1ANT_RPWM, &rpwm); + + btcoexist->btc_set(btcoexist, BTC_SET_ACT_INC_FORCE_EXEC_PWR_CMD_CNT, NULL); +} + +void +halbtc8812a1ant_LpsRpwm( + PBTC_COEXIST btcoexist, + BOOLEAN force_exec, + u1Byte lps_val, + u1Byte rpwm_val + ) +{ + BOOLEAN bForceExecPwrCmd=false; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s set lps/rpwm=0x%x/0x%x \n", + (force_exec? "force to":""), lps_val, rpwm_val)); + coex_dm->cur_lps = lps_val; + coex_dm->cur_rpwm = rpwm_val; + + if(!force_exec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], pre_lps/cur_lps=0x%x/0x%x, pre_rpwm/cur_rpwm=0x%x/0x%x!!\n", + coex_dm->pre_lps, coex_dm->cur_lps, coex_dm->pre_rpwm, coex_dm->cur_rpwm)); + + if( (coex_dm->pre_lps == coex_dm->cur_lps) && + (coex_dm->pre_rpwm == coex_dm->cur_rpwm) ) + { + return; + } + } + halbtc8812a1ant_SetLpsRpwm(btcoexist, lps_val, rpwm_val); + + coex_dm->pre_lps = coex_dm->cur_lps; + coex_dm->pre_rpwm = coex_dm->cur_rpwm; +} + +void +halbtc8812a1ant_SwMechanism1( + PBTC_COEXIST btcoexist, + BOOLEAN shrink_rx_lpf, + BOOLEAN low_penalty_ra, + BOOLEAN limited_dig, + BOOLEAN bt_lna_constrain + ) +{ + //halbtc8812a1ant_RfShrink(btcoexist, NORMAL_EXEC, shrink_rx_lpf); + //halbtc8812a1ant_LowPenaltyRa(btcoexist, NORMAL_EXEC, low_penalty_ra); + + //no limited DIG + //halbtc8812a1ant_SetBtLnaConstrain(btcoexist, NORMAL_EXEC, bt_lna_constrain); +} + +void +halbtc8812a1ant_SwMechanism2( + PBTC_COEXIST btcoexist, + BOOLEAN agc_table_shift, + BOOLEAN adc_back_off, + BOOLEAN sw_dac_swing, + u4Byte dac_swing_lvl + ) +{ + //halbtc8812a1ant_AgcTable(btcoexist, NORMAL_EXEC, agc_table_shift); + //halbtc8812a1ant_AdcBackOff(btcoexist, NORMAL_EXEC, adc_back_off); + //halbtc8812a1ant_DacSwing(btcoexist, NORMAL_EXEC, sw_dac_swing, dac_swing_lvl); +} + +void +halbtc8812a1ant_PsTdma( + PBTC_COEXIST btcoexist, + BOOLEAN force_exec, + BOOLEAN turn_on, + u1Byte type + ) +{ + BOOLEAN bTurnOnByCnt=false; + u1Byte psTdmaTypeByCnt=0, rssi_adjust_val=0; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s turn %s PS TDMA, type=%d\n", + (force_exec? "force to":""), (turn_on? "ON":"OFF"), type)); + coex_dm->cur_ps_tdma_on = turn_on; + coex_dm->cur_ps_tdma = type; + + if(!force_exec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], pre_ps_tdma_on = %d, cur_ps_tdma_on = %d!!\n", + coex_dm->pre_ps_tdma_on, coex_dm->cur_ps_tdma_on)); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], pre_ps_tdma = %d, cur_ps_tdma = %d!!\n", + coex_dm->pre_ps_tdma, coex_dm->cur_ps_tdma)); + + if( (coex_dm->pre_ps_tdma_on == coex_dm->cur_ps_tdma_on) && + (coex_dm->pre_ps_tdma == coex_dm->cur_ps_tdma) ) + return; + } + if(turn_on) + { + switch(type) + { + default: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0xd3, 0x1a, 0x1a, 0x0, 0x58); + break; + case 1: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0xd3, 0x1a, 0x1a, 0x0, 0x48); + rssi_adjust_val = 11; + break; + case 2: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0xd3, 0x12, 0x12, 0x0, 0x48); + rssi_adjust_val = 14; + break; + case 3: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x93, 0x25, 0x3, 0x10, 0x40); + break; + case 4: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x93, 0x15, 0x3, 0x14, 0x0); + rssi_adjust_val = 17; + break; + case 5: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x61, 0x15, 0x3, 0x31, 0x0); + break; + case 6: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x13, 0xa, 0x3, 0x0, 0x0); + break; + case 7: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x13, 0xc, 0x5, 0x0, 0x0); + break; + case 8: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x93, 0x25, 0x3, 0x10, 0x0); + break; + case 9: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0xd3, 0xa, 0xa, 0x0, 0x48); + rssi_adjust_val = 18; + break; + case 10: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x13, 0xa, 0xa, 0x0, 0x40); + break; + case 11: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0xd3, 0x5, 0x5, 0x0, 0x48); + rssi_adjust_val = 20; + break; + case 12: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0xeb, 0xa, 0x3, 0x31, 0x18); + break; + + case 15: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x13, 0xa, 0x3, 0x8, 0x0); + break; + case 16: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x93, 0x15, 0x3, 0x10, 0x0); + rssi_adjust_val = 18; + break; + + case 18: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x93, 0x25, 0x3, 0x10, 0x0); + rssi_adjust_val = 14; + break; + + case 20: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x13, 0x25, 0x25, 0x0, 0x0); + break; + case 21: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x93, 0x20, 0x3, 0x10, 0x40); + break; + case 22: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x13, 0x8, 0x8, 0x0, 0x40); + break; + case 23: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0xe3, 0x25, 0x3, 0x31, 0x18); + rssi_adjust_val = 22; + break; + case 24: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0xe3, 0x15, 0x3, 0x31, 0x18); + rssi_adjust_val = 22; + break; + case 25: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0xe3, 0xa, 0x3, 0x31, 0x18); + rssi_adjust_val = 22; + break; + case 26: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0xe3, 0xa, 0x3, 0x31, 0x18); + rssi_adjust_val = 22; + break; + case 27: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0xe3, 0x25, 0x3, 0x31, 0x98); + rssi_adjust_val = 22; + break; + case 28: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x69, 0x25, 0x3, 0x31, 0x0); + break; + case 29: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0xab, 0x1a, 0x1a, 0x1, 0x8); + break; + case 30: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x93, 0x15, 0x3, 0x14, 0x0); + break; + case 31: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0xd3, 0x1a, 0x1a, 0, 0x58); + break; + case 32: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0xab, 0xa, 0x3, 0x31, 0x88); + break; + case 33: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0xa3, 0x25, 0x3, 0x30, 0x88); + break; + case 34: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0xd3, 0x1a, 0x1a, 0x0, 0x8); + break; + case 35: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0xe3, 0x1a, 0x1a, 0x0, 0x8); + break; + case 36: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0xd3, 0x12, 0x3, 0x14, 0x58); + break; + } + } + else + { + // disable PS tdma + switch(type) + { + case 8: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x8, 0x0, 0x0, 0x0, 0x0); + btcoexist->btc_write_1byte(btcoexist, 0x92c, 0x4); + break; + case 0: + default: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x0, 0x0, 0x0, 0x0, 0x0); + delay_ms(5); + btcoexist->btc_write_1byte(btcoexist, 0x92c, 0x20); + break; + case 9: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x0, 0x0, 0x0, 0x0, 0x0); + btcoexist->btc_write_1byte(btcoexist, 0x92c, 0x4); + break; + case 10: + halbtc8812a1ant_SetFwPstdma(btcoexist, 0x0, 0x0, 0x0, 0x8, 0x0); + delay_ms(5); + btcoexist->btc_write_1byte(btcoexist, 0x92c, 0x20); + break; + } + } + rssi_adjust_val =0; + btcoexist->btc_set(btcoexist, BTC_SET_U1_RSSI_ADJ_VAL_FOR_1ANT_COEX_TYPE, &rssi_adjust_val); + + // update pre state + coex_dm->pre_ps_tdma_on = coex_dm->cur_ps_tdma_on; + coex_dm->pre_ps_tdma = coex_dm->cur_ps_tdma; +} + +void +halbtc8812a1ant_CoexAllOff( + PBTC_COEXIST btcoexist + ) +{ + // fw all off + halbtc8812a1ant_FwDacSwingLvl(btcoexist, NORMAL_EXEC, 6); + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, false); + + // sw all off + halbtc8812a1ant_SwMechanism1(btcoexist,false,false,false,false); + halbtc8812a1ant_SwMechanism2(btcoexist,false,false,false,0x18); + + + // hw all off + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); +} + +void +halbtc8812a1ant_WifiParaAdjust( + PBTC_COEXIST btcoexist, + BOOLEAN enable + ) +{ + if(enable) + { + halbtc8812a1ant_LowPenaltyRa(btcoexist, NORMAL_EXEC, true); + } + else + { + halbtc8812a1ant_LowPenaltyRa(btcoexist, NORMAL_EXEC, false); + } +} + +BOOLEAN +halbtc8812a1ant_IsCommonAction( + PBTC_COEXIST btcoexist + ) +{ + BOOLEAN common=false, wifi_connected=false, wifi_busy=false; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, &wifi_connected); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + + //halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + + if(!wifi_connected && + BT_8812A_1ANT_BT_STATUS_NON_CONNECTED_IDLE == coex_dm->bt_status) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Wifi non connected-idle + BT non connected-idle!!\n")); + halbtc8812a1ant_FwDacSwingLvl(btcoexist, NORMAL_EXEC, 6); + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, false); + + halbtc8812a1ant_SwMechanism1(btcoexist,false,false,false,false); + halbtc8812a1ant_SwMechanism2(btcoexist,false,false,false,0x18); + + common = true; + } + else if(wifi_connected && + (BT_8812A_1ANT_BT_STATUS_NON_CONNECTED_IDLE == coex_dm->bt_status) ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Wifi connected + BT non connected-idle!!\n")); + halbtc8812a1ant_FwDacSwingLvl(btcoexist, NORMAL_EXEC, 6); + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, true); + + halbtc8812a1ant_SwMechanism1(btcoexist,false,false,false,false); + halbtc8812a1ant_SwMechanism2(btcoexist,false,false,false,0x18); + + common = true; + } + else if(!wifi_connected && + (BT_8812A_1ANT_BT_STATUS_CONNECTED_IDLE == coex_dm->bt_status) ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Wifi non connected-idle + BT connected-idle!!\n")); + halbtc8812a1ant_FwDacSwingLvl(btcoexist, NORMAL_EXEC, 6); + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, false); + + halbtc8812a1ant_SwMechanism1(btcoexist,false,false,false,false); + halbtc8812a1ant_SwMechanism2(btcoexist,false,false,false,0x18); + + common = true; + } + else if(wifi_connected && + (BT_8812A_1ANT_BT_STATUS_CONNECTED_IDLE == coex_dm->bt_status) ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Wifi connected + BT connected-idle!!\n")); + halbtc8812a1ant_FwDacSwingLvl(btcoexist, NORMAL_EXEC, 6); + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, false); + + halbtc8812a1ant_SwMechanism1(btcoexist,true,true,true,true); + halbtc8812a1ant_SwMechanism2(btcoexist,false,false,false,0x18); + + common = true; + } + else if(!wifi_connected && + (BT_8812A_1ANT_BT_STATUS_CONNECTED_IDLE != coex_dm->bt_status) ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Wifi non connected-idle + BT Busy!!\n")); + halbtc8812a1ant_FwDacSwingLvl(btcoexist, NORMAL_EXEC, 6); + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, false); + + halbtc8812a1ant_SwMechanism1(btcoexist,false,false,false,false); + halbtc8812a1ant_SwMechanism2(btcoexist,false,false,false,0x18); + + common = true; + } + else + { + halbtc8812a1ant_SwMechanism1(btcoexist,true,true,true,true); + + common = false; + } + + return common; +} + + +void +halbtc8812a1ant_TdmaDurationAdjustForAcl( + PBTC_COEXIST btcoexist + ) +{ + static s4Byte up,dn,m,n,wait_count; + s4Byte result; //0: no change, +1: increase WiFi duration, -1: decrease WiFi duration + u1Byte retry_count=0, bt_info_ext; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], halbtc8812a1ant_TdmaDurationAdjustForAcl()\n")); + if(coex_dm->reset_tdma_adjust) + { + coex_dm->reset_tdma_adjust = false; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], first run TdmaDurationAdjust()!!\n")); + + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 2); + coex_dm->ps_tdma_du_adj_type = 2; + //============ + up = 0; + dn = 0; + m = 1; + n= 3; + result = 0; + wait_count = 0; + } + else + { + //accquire the BT TRx retry count from BT_Info byte2 + retry_count = coex_sta->bt_retry_cnt; + bt_info_ext = coex_sta->bt_info_ext; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], retry_count = %d\n", retry_count)); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], up=%d, dn=%d, m=%d, n=%d, wait_count=%d\n", + up, dn, m, n, wait_count)); + result = 0; + wait_count++; + + if(retry_count == 0) // no retry in the last 2-second duration + { + up++; + dn--; + + if (dn <= 0) + dn = 0; + + if(up >= n) // if s n 2 retry count0, hռeWiFi duration + { + wait_count = 0; + n = 3; + up = 0; + dn = 0; + result = 1; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], Increase wifi duration!!\n")); + } + } + else if (retry_count <= 3) // <=3 retry in the last 2-second duration + { + up--; + dn++; + + if (up <= 0) + up = 0; + + if (dn == 2) // if s 2 2 retry count< 3, hկWiFi duration + { + if (wait_count <= 2) + m++; // קK@blevelӦ^ + else + m = 1; + + if ( m >= 20) //m ̤j = 20 ' ̤j120 recheckO_վ WiFi duration. + m = 20; + + n = 3*m; + up = 0; + dn = 0; + wait_count = 0; + result = -1; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], Decrease wifi duration for retryCounter<3!!\n")); + } + } + else //retry count > 3, un1 retry count > 3, hկWiFi duration + { + if (wait_count == 1) + m++; // קK@blevelӦ^ + else + m = 1; + + if ( m >= 20) //m ̤j = 20 ' ̤j120 recheckO_վ WiFi duration. + m = 20; + + n = 3*m; + up = 0; + dn = 0; + wait_count = 0; + result = -1; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], Decrease wifi duration for retryCounter>3!!\n")); + } + + if(result == -1) + { + if( (BT_INFO_8812A_1ANT_A2DP_BASIC_RATE(bt_info_ext)) && + ((coex_dm->cur_ps_tdma == 1) ||(coex_dm->cur_ps_tdma == 2)) ) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 9); + coex_dm->ps_tdma_du_adj_type = 9; + } + else if(coex_dm->cur_ps_tdma == 1) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 2); + coex_dm->ps_tdma_du_adj_type = 2; + } + else if(coex_dm->cur_ps_tdma == 2) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 9); + coex_dm->ps_tdma_du_adj_type = 9; + } + else if(coex_dm->cur_ps_tdma == 9) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 11); + coex_dm->ps_tdma_du_adj_type = 11; + } + } + else if(result == 1) + { + if( (BT_INFO_8812A_1ANT_A2DP_BASIC_RATE(bt_info_ext)) && + ((coex_dm->cur_ps_tdma == 1) ||(coex_dm->cur_ps_tdma == 2)) ) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 9); + coex_dm->ps_tdma_du_adj_type = 9; + } + else if(coex_dm->cur_ps_tdma == 11) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 9); + coex_dm->ps_tdma_du_adj_type = 9; + } + else if(coex_dm->cur_ps_tdma == 9) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 2); + coex_dm->ps_tdma_du_adj_type = 2; + } + else if(coex_dm->cur_ps_tdma == 2) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 1); + coex_dm->ps_tdma_du_adj_type = 1; + } + } + + if( coex_dm->cur_ps_tdma != 1 && + coex_dm->cur_ps_tdma != 2 && + coex_dm->cur_ps_tdma != 9 && + coex_dm->cur_ps_tdma != 11 ) + { + // recover to previous adjust type + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, coex_dm->ps_tdma_du_adj_type); + } + } +} + +u1Byte +halbtc8812a1ant_PsTdmaTypeByWifiRssi( + s4Byte wifi_rssi, + s4Byte pre_wifi_rssi, + u1Byte wifi_rssi_thresh + ) +{ + u1Byte ps_tdma_type=0; + + if(wifi_rssi > pre_wifi_rssi) + { + if(wifi_rssi > (wifi_rssi_thresh+5)) + { + ps_tdma_type = 26; + } + else + { + ps_tdma_type = 25; + } + } + else + { + if(wifi_rssi > wifi_rssi_thresh) + { + ps_tdma_type = 26; + } + else + { + ps_tdma_type = 25; + } + } + + return ps_tdma_type; +} + +void +halbtc8812a1ant_PsTdmaCheckForPowerSaveState( + PBTC_COEXIST btcoexist, + BOOLEAN new_ps_state + ) +{ + u1Byte lps_mode=0x0; + + btcoexist->btc_get(btcoexist, BTC_GET_U1_LPS_MODE, &lps_mode); + + if(lps_mode) // already under LPS state + { + if(new_ps_state) + { + // keep state under LPS, do nothing. + } + else + { + // will leave LPS state, turn off psTdma first + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 0); + } + } + else // NO PS state + { + if(new_ps_state) + { + // will enter LPS state, turn off psTdma first + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 0); + } + else + { + // keep state under NO PS state, do nothing. + } + } +} + +// SCO only or SCO+PAN(HS) +void +halbtc8812a1ant_ActionSco( + PBTC_COEXIST btcoexist + ) +{ + u1Byte wifi_rssi_state; + u4Byte wifi_bw; + + wifi_rssi_state = halbtc8812a1ant_WifiRssiState(btcoexist, 0, 2, 25, 0); + + halbtc8812a1ant_FwDacSwingLvl(btcoexist, NORMAL_EXEC, 4); + + if(halbtc8812a1ant_NeedToDecBtPwr(btcoexist)) + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if(BTC_WIFI_BW_HT40 == wifi_bw) + { + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,true,false,0x18); + } + } + else + { + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,false,false,0x18); + } + } +} + + +void +halbtc8812a1ant_ActionHid( + PBTC_COEXIST btcoexist + ) +{ + u1Byte wifi_rssi_state, bt_rssi_state; + u4Byte wifi_bw; + + wifi_rssi_state = halbtc8812a1ant_WifiRssiState(btcoexist, 0, 2, 25, 0); + bt_rssi_state = halbtc8812a1ant_BtRssiState(2, 50, 0); + + halbtc8812a1ant_FwDacSwingLvl(btcoexist, NORMAL_EXEC, 6); + + if(halbtc8812a1ant_NeedToDecBtPwr(btcoexist)) + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if(BTC_WIFI_BW_HT40 == wifi_bw) + { + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,false,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,false,false,0x18); + } + } + else + { + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,false,false,0x18); + } + } +} + +//A2DP only / PAN(EDR) only/ A2DP+PAN(HS) +void +halbtc8812a1ant_ActionA2dp( + PBTC_COEXIST btcoexist + ) +{ + u1Byte wifi_rssi_state, bt_rssi_state; + u4Byte wifi_bw; + + wifi_rssi_state = halbtc8812a1ant_WifiRssiState(btcoexist, 0, 2, 25, 0); + bt_rssi_state = halbtc8812a1ant_BtRssiState(2, 50, 0); + + halbtc8812a1ant_FwDacSwingLvl(btcoexist, NORMAL_EXEC, 6); + + if(halbtc8812a1ant_NeedToDecBtPwr(btcoexist)) + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if(BTC_WIFI_BW_HT40 == wifi_bw) + { + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,true,false,0x18); + } + } + else + { + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,false,false,0x18); + } + } +} + +void +halbtc8812a1ant_ActionA2dpPanHs( + PBTC_COEXIST btcoexist + ) +{ + u1Byte wifi_rssi_state, bt_rssi_state, bt_info_ext; + u4Byte wifi_bw; + + bt_info_ext = coex_sta->bt_info_ext; + wifi_rssi_state = halbtc8812a1ant_WifiRssiState(btcoexist, 0, 2, 25, 0); + bt_rssi_state = halbtc8812a1ant_BtRssiState(2, 50, 0); + + halbtc8812a1ant_FwDacSwingLvl(btcoexist, NORMAL_EXEC, 6); + + if(halbtc8812a1ant_NeedToDecBtPwr(btcoexist)) + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if(BTC_WIFI_BW_HT40 == wifi_bw) + { + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,true,false,0x18); + } + } + else + { + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,false,false,0x18); + } + } +} + +void +halbtc8812a1ant_ActionPanEdr( + PBTC_COEXIST btcoexist + ) +{ + u1Byte wifi_rssi_state, bt_rssi_state; + u4Byte wifi_bw; + + wifi_rssi_state = halbtc8812a1ant_WifiRssiState(btcoexist, 0, 2, 25, 0); + bt_rssi_state = halbtc8812a1ant_BtRssiState(2, 50, 0); + + halbtc8812a1ant_FwDacSwingLvl(btcoexist, NORMAL_EXEC, 6); + + if(halbtc8812a1ant_NeedToDecBtPwr(btcoexist)) + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if(BTC_WIFI_BW_HT40 == wifi_bw) + { + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,true,false,0x18); + } + } + else + { + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,false,false,0x18); + } + } +} + + +//PAN(HS) only +void +halbtc8812a1ant_ActionPanHs( + PBTC_COEXIST btcoexist + ) +{ + u1Byte wifi_rssi_state, bt_rssi_state; + u4Byte wifi_bw; + + wifi_rssi_state = halbtc8812a1ant_WifiRssiState(btcoexist, 0, 2, 25, 0); + bt_rssi_state = halbtc8812a1ant_BtRssiState(2, 50, 0); + + halbtc8812a1ant_FwDacSwingLvl(btcoexist, NORMAL_EXEC, 6); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if(BTC_WIFI_BW_HT40 == wifi_bw) + { + // fw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, true); + } + else + { + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, false); + } + + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,true,false,0x18); + } + } + else + { + // fw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, true); + } + else + { + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, false); + } + + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,false,false,0x18); + } + } +} + +//PAN(EDR)+A2DP +void +halbtc8812a1ant_ActionPanEdrA2dp( + PBTC_COEXIST btcoexist + ) +{ + u1Byte wifi_rssi_state, bt_rssi_state, bt_info_ext; + u4Byte wifi_bw; + + bt_info_ext = coex_sta->bt_info_ext; + wifi_rssi_state = halbtc8812a1ant_WifiRssiState(btcoexist, 0, 2, 25, 0); + bt_rssi_state = halbtc8812a1ant_BtRssiState(2, 50, 0); + + halbtc8812a1ant_FwDacSwingLvl(btcoexist, NORMAL_EXEC, 6); + + if(halbtc8812a1ant_NeedToDecBtPwr(btcoexist)) + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if(BTC_WIFI_BW_HT40 == wifi_bw) + { + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,true,false,0x18); + } + } + else + { + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,false,false,0x18); + } + } +} + +void +halbtc8812a1ant_ActionPanEdrHid( + PBTC_COEXIST btcoexist + ) +{ + u1Byte wifi_rssi_state, bt_rssi_state; + u4Byte wifi_bw; + + wifi_rssi_state = halbtc8812a1ant_WifiRssiState(btcoexist, 0, 2, 25, 0); + bt_rssi_state = halbtc8812a1ant_BtRssiState(2, 50, 0); + + halbtc8812a1ant_FwDacSwingLvl(btcoexist, NORMAL_EXEC, 6); + + if(halbtc8812a1ant_NeedToDecBtPwr(btcoexist)) + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if(BTC_WIFI_BW_HT40 == wifi_bw) + { + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,true,false,0x18); + } + } + else + { + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,false,false,0x18); + } + } +} + +// HID+A2DP+PAN(EDR) +void +halbtc8812a1ant_ActionHidA2dpPanEdr( + PBTC_COEXIST btcoexist + ) +{ + u1Byte wifi_rssi_state, bt_rssi_state, bt_info_ext; + u4Byte wifi_bw; + + bt_info_ext = coex_sta->bt_info_ext; + wifi_rssi_state = halbtc8812a1ant_WifiRssiState(btcoexist, 0, 2, 25, 0); + bt_rssi_state = halbtc8812a1ant_BtRssiState(2, 50, 0); + + halbtc8812a1ant_FwDacSwingLvl(btcoexist, NORMAL_EXEC, 6); + + if(halbtc8812a1ant_NeedToDecBtPwr(btcoexist)) + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if(BTC_WIFI_BW_HT40 == wifi_bw) + { + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,true,false,0x18); + } + } + else + { + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,false,false,0x18); + } + } +} + +void +halbtc8812a1ant_ActionHidA2dp( + PBTC_COEXIST btcoexist + ) +{ + u1Byte wifi_rssi_state, bt_rssi_state, bt_info_ext; + u4Byte wifi_bw; + + bt_info_ext = coex_sta->bt_info_ext; + wifi_rssi_state = halbtc8812a1ant_WifiRssiState(btcoexist, 0, 2, 25, 0); + bt_rssi_state = halbtc8812a1ant_BtRssiState(2, 50, 0); + + if(halbtc8812a1ant_NeedToDecBtPwr(btcoexist)) + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8812a1ant_DecBtPwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if(BTC_WIFI_BW_HT40 == wifi_bw) + { + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,true,false,0x18); + } + } + else + { + // sw mechanism + if( (wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8812a1ant_SwMechanism2(btcoexist,true,true,false,0x18); + } + else + { + halbtc8812a1ant_SwMechanism2(btcoexist,false,false,false,0x18); + } + } +} + +void +halbtc8812a1ant_ActionHs( + PBTC_COEXIST btcoexist, + BOOLEAN hs_connecting + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action for HS, hs_connecting=%d!!!\n", hs_connecting)); + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 8); + + if(hs_connecting) + { + halbtc8812a1ant_CoexTable(btcoexist, FORCE_EXEC, 0xaaaaaaaa, 0xaaaaaaaa, 0xffff, 0x3); + } + else + { + if((coex_sta->high_priority_tx+coex_sta->high_priority_rx+ + coex_sta->low_priority_tx+coex_sta->low_priority_rx)<=1200) + halbtc8812a1ant_CoexTable(btcoexist, FORCE_EXEC, 0xaaaaaaaa, 0xaaaaaaaa, 0xffff, 0x3); + else + halbtc8812a1ant_CoexTable(btcoexist, FORCE_EXEC, 0xffffffff, 0xffffffff, 0xffff, 0x3); + } +} + + +void +halbtc8812a1ant_ActionWifiNotConnected( + PBTC_COEXIST btcoexist + ) +{ + BOOLEAN hs_connecting=false; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_CONNECTING, &hs_connecting); + + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, false); + btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + + if(hs_connecting) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HS is connecting!!!\n")); + halbtc8812a1ant_ActionHs(btcoexist, hs_connecting); + } + else + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 8); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + } +} + +void +halbtc8812a1ant_ActionWifiNotConnectedAssoAuthScan( + PBTC_COEXIST btcoexist + ) +{ + PBTC_STACK_INFO stack_info=&btcoexist->stack_info; + BOOLEAN hs_connecting=false; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_CONNECTING, &hs_connecting); + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, false); + btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + + if(hs_connecting) + { + halbtc8812a1ant_ActionHs(btcoexist, hs_connecting); + } + else if(btcoexist->bt_info.bt_disabled) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 9); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + } + else if(BT_8812A_1ANT_BT_STATUS_INQ_PAGE == coex_dm->bt_status) +{ + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 30); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + } + else if( (BT_8812A_1ANT_BT_STATUS_NON_CONNECTED_IDLE == coex_dm->bt_status) || + (BT_8812A_1ANT_BT_STATUS_CONNECTED_IDLE == coex_dm->bt_status) ) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 28); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + } + else if(BT_8812A_1ANT_BT_STATUS_ACL_BUSY == coex_dm->bt_status) + { + if(stack_info->hid_exist) + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 35); + else + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 29); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x5afa5afa, 0xffff, 0x3); + } + else if( (BT_8812A_1ANT_BT_STATUS_SCO_BUSY == coex_dm->bt_status) || + (BT_8812A_1ANT_BT_STATUS_ACL_SCO_BUSY == coex_dm->bt_status) ) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 8); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x5aea5aea, 0x5aea5aea, 0xffff, 0x3); + } + else + { + //error condition, should not reach here, record error number for debugging. + coex_dm->error_condition = 1; + } +} + +void +halbtc8812a1ant_ActionWifiConnectedScan( + PBTC_COEXIST btcoexist + ) +{ + PBTC_STACK_INFO stack_info=&btcoexist->stack_info; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], ActionConnectedScan()===>\n")); + + if(btcoexist->bt_info.bt_disabled) + { + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, false); + btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 9); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + } + else + { + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, true); + halbtc8812a1ant_LpsRpwm(btcoexist, NORMAL_EXEC, 0x0, 0x4); + // power save must executed before psTdma. + btcoexist->btc_set(btcoexist, BTC_SET_ACT_ENTER_LPS, NULL); + + // psTdma + if(BT_8812A_1ANT_BT_STATUS_INQ_PAGE == coex_dm->bt_status) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], ActionConnectedScan(), bt is under inquiry/page scan\n")); + if(stack_info->sco_exist) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 32); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x5afa5afa, 0xffff, 0x3); + } + else + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 30); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + } + } + else if( (BT_8812A_1ANT_BT_STATUS_NON_CONNECTED_IDLE == coex_dm->bt_status) || + (BT_8812A_1ANT_BT_STATUS_CONNECTED_IDLE == coex_dm->bt_status) ) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 5); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + } + else if(BT_8812A_1ANT_BT_STATUS_ACL_BUSY == coex_dm->bt_status) + { + if(stack_info->hid_exist) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 34); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x5afa5afa, 0xffff, 0x3); + } + else + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 4); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + } + } + else if( (BT_8812A_1ANT_BT_STATUS_SCO_BUSY == coex_dm->bt_status) || + (BT_8812A_1ANT_BT_STATUS_ACL_SCO_BUSY == coex_dm->bt_status) ) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 33); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x5afa5afa, 0xffff, 0x3); + } + else + { + //error condition, should not reach here + coex_dm->error_condition = 2; + } + } + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], ActionConnectedScan()<===\n")); +} + +void +halbtc8812a1ant_ActionWifiConnectedSpecialPacket( + PBTC_COEXIST btcoexist + ) +{ + PBTC_STACK_INFO stack_info=&btcoexist->stack_info; + + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, false); + btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + + if(btcoexist->bt_info.bt_disabled) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 9); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + } + else + { + if(BT_8812A_1ANT_BT_STATUS_INQ_PAGE == coex_dm->bt_status) + { + if(stack_info->sco_exist) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 32); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x5afa5afa, 0xffff, 0x3); + } + else + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 30); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + } + } + else if( (BT_8812A_1ANT_BT_STATUS_NON_CONNECTED_IDLE == coex_dm->bt_status) || + (BT_8812A_1ANT_BT_STATUS_CONNECTED_IDLE == coex_dm->bt_status) ) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 28); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + } + else if(BT_8812A_1ANT_BT_STATUS_ACL_BUSY == coex_dm->bt_status) + { + if(stack_info->hid_exist) + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 35); + else + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 29); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x5afa5afa, 0xffff, 0x3); + } + else if( (BT_8812A_1ANT_BT_STATUS_SCO_BUSY == coex_dm->bt_status) || + (BT_8812A_1ANT_BT_STATUS_ACL_SCO_BUSY == coex_dm->bt_status) ) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 8); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x5aea5aea, 0x5aea5aea, 0xffff, 0x3); + } + else + { + //error condition, should not reach here + coex_dm->error_condition = 3; + } + } +} + +void +halbtc8812a1ant_ActionWifiConnected( + PBTC_COEXIST btcoexist + ) +{ + PBTC_STACK_INFO stack_info=&btcoexist->stack_info; + BOOLEAN wifi_connected=false, wifi_busy=false, bt_hs_on=false; + BOOLEAN scan=false, link=false, roam=false; + BOOLEAN hs_connecting=false, under4way=false; + u4Byte wifi_bw; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], CoexForWifiConnect()===>\n")); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, &wifi_connected); + if(!wifi_connected) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], CoexForWifiConnect(), return for wifi not connected<===\n")); + return; + } + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_4_WAY_PROGRESS, &under4way); + if(under4way) + { + halbtc8812a1ant_ActionWifiConnectedSpecialPacket(btcoexist); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], CoexForWifiConnect(), return for wifi is under 4way<===\n")); + return; + } + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_CONNECTING, &hs_connecting); + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam); + if(scan || link || roam) + { + halbtc8812a1ant_ActionWifiConnectedScan(btcoexist); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], CoexForWifiConnect(), return for wifi is under scan<===\n")); + return; + } + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + if(!wifi_busy) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], wifi associated-idle!!!\n")); + if(btcoexist->bt_info.bt_disabled) + { + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, true); + halbtc8812a1ant_LpsRpwm(btcoexist, NORMAL_EXEC, 0x0, 0x4); + btcoexist->btc_set(btcoexist, BTC_SET_ACT_ENTER_LPS, NULL); + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 9); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + } + else + { + if(BT_8812A_1ANT_BT_STATUS_INQ_PAGE == coex_dm->bt_status) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], bt is under inquiry/page scan!!!\n")); + if(stack_info->sco_exist) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 32); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x5afa5afa, 0xffff, 0x3); + } + else + { + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, true); + halbtc8812a1ant_LpsRpwm(btcoexist, NORMAL_EXEC, 0x0, 0x4); + // power save must executed before psTdma. + btcoexist->btc_set(btcoexist, BTC_SET_ACT_ENTER_LPS, NULL); + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 30); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + } + } + else if(BT_8812A_1ANT_BT_STATUS_NON_CONNECTED_IDLE == coex_dm->bt_status) + { + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, true); + halbtc8812a1ant_LpsRpwm(btcoexist, NORMAL_EXEC, 0x26, 0x0); + // power save must executed before psTdma. + btcoexist->btc_set(btcoexist, BTC_SET_ACT_ENTER_LPS, NULL); + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 9); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + } + else if(BT_8812A_1ANT_BT_STATUS_CONNECTED_IDLE == coex_dm->bt_status) + { + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, true); + halbtc8812a1ant_LpsRpwm(btcoexist, NORMAL_EXEC, 0x26, 0x0); + // power save must executed before psTdma. + btcoexist->btc_set(btcoexist, BTC_SET_ACT_ENTER_LPS, NULL); + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 0); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + } + else if(BT_8812A_1ANT_BT_STATUS_ACL_BUSY == coex_dm->bt_status) + { + if(stack_info->hid_exist && stack_info->numOfLink==1) + { + // hid only + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, false); + // power save must executed before psTdma. + btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 8); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x5fff5fff, 0x5fff5fff, 0xffff, 0x3); + coex_dm->reset_tdma_adjust = true; + } + else + { + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, true); + halbtc8812a1ant_LpsRpwm(btcoexist, NORMAL_EXEC, 0x0, 0x4); + // power save must executed before psTdma. + btcoexist->btc_set(btcoexist, BTC_SET_ACT_ENTER_LPS, NULL); + + if(stack_info->hid_exist) + { + if(stack_info->a2dp_exist) + { + // hid+a2dp + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 2); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x5afa5afa, 0xffff, 0x3); + } + else if(stack_info->pan_exist) + { + if(bt_hs_on) + { + // hid+hs + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 2); + } + else + { + // hid+pan + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 2); + } + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x5afa5afa, 0xffff, 0x3); + } + else + { + coex_dm->error_condition = 4; + } + coex_dm->reset_tdma_adjust = true; + } + else if(stack_info->a2dp_exist) + { + if(stack_info->pan_exist) + { + if(bt_hs_on) + { + // a2dp+hs + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 2); + } + else + { + // a2dp+pan + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 36); + } + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x5afa5afa, 0xffff, 0x3); + coex_dm->reset_tdma_adjust = true; + } + else + { + // a2dp only + halbtc8812a1ant_TdmaDurationAdjustForAcl(btcoexist); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x5afa5afa, 0xffff, 0x3); + } + } + else if(stack_info->pan_exist) + { + // pan only + if(bt_hs_on) + { + coex_dm->error_condition = 5; + } + else + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 2); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x5afa5afa, 0xffff, 0x3); + } + coex_dm->reset_tdma_adjust = true; + } + else + { + // temp state, do nothing!!! + //DbgPrint("error 6, coex_dm->bt_status=%d\n", coex_dm->bt_status); + //DbgPrint("error 6, stack_info->numOfLink=%d, stack_info->hid_exist=%d, stack_info->a2dp_exist=%d, stack_info->pan_exist=%d, stack_info->sco_exist=%d\n", + //stack_info->numOfLink, stack_info->hid_exist, stack_info->a2dp_exist, stack_info->pan_exist, stack_info->sco_exist); + //coex_dm->error_condition = 6; + } + } + } + else if( (BT_8812A_1ANT_BT_STATUS_SCO_BUSY == coex_dm->bt_status) || + (BT_8812A_1ANT_BT_STATUS_ACL_SCO_BUSY == coex_dm->bt_status) ) + { + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, false); + // power save must executed before psTdma. + btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 8); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x5aea5aea, 0x5aea5aea, 0xffff, 0x3); + } + else + { + //error condition, should not reach here + coex_dm->error_condition = 7; + } + } + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], wifi busy!!!\n")); + if(btcoexist->bt_info.bt_disabled) + { + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, false); + btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 9); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + } + else + { + if(bt_hs_on) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HS is under progress!!!\n")); + //DbgPrint("coex_dm->bt_status = 0x%x\n", coex_dm->bt_status); + halbtc8812a1ant_ActionHs(btcoexist, hs_connecting); + } + else if(BT_8812A_1ANT_BT_STATUS_INQ_PAGE == coex_dm->bt_status) + { + if(stack_info->sco_exist) + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 32); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x5afa5afa, 0xffff, 0x3); + } + else + { + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, true); + halbtc8812a1ant_LpsRpwm(btcoexist, NORMAL_EXEC, 0x0, 0x4); + // power save must executed before psTdma. + btcoexist->btc_set(btcoexist, BTC_SET_ACT_ENTER_LPS, NULL); + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 30); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + } + } + else if(BT_8812A_1ANT_BT_STATUS_NON_CONNECTED_IDLE == coex_dm->bt_status) + { + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, false); + // power save must executed before psTdma. + btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 5); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x5a5a5a5a, 0x5a5a5a5a, 0xffff, 0x3); + } + else if(BT_8812A_1ANT_BT_STATUS_CONNECTED_IDLE == coex_dm->bt_status) + { + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, false); + // power save must executed before psTdma. + btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + if(bt_hs_on) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HS is under progress!!!\n")); + halbtc8812a1ant_ActionHs(btcoexist, hs_connecting); + } + else + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 5); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x5a5a5a5a, 0x5a5a5a5a, 0xffff, 0x3); + } + } + else if(BT_8812A_1ANT_BT_STATUS_ACL_BUSY == coex_dm->bt_status) + { + if(stack_info->hid_exist && stack_info->numOfLink==1) + { + // hid only + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, false); + // power save must executed before psTdma. + btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 8); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x5fff5fff, 0x5fff5fff, 0xffff, 0x3); + coex_dm->reset_tdma_adjust = true; + } + else + { + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, true); + halbtc8812a1ant_LpsRpwm(btcoexist, NORMAL_EXEC, 0x0, 0x4); + // power save must executed before psTdma. + btcoexist->btc_set(btcoexist, BTC_SET_ACT_ENTER_LPS, NULL); + + if(stack_info->hid_exist) + { + if(stack_info->a2dp_exist) + { + // hid+a2dp + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 2); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x5afa5afa, 0xffff, 0x3); + } + else if(stack_info->pan_exist) + { + if(bt_hs_on) + { + // hid+hs + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 2); + } + else + { + // hid+pan + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 2); + } + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x5afa5afa, 0xffff, 0x3); + } + else + { + coex_dm->error_condition = 8; + } + coex_dm->reset_tdma_adjust = true; + } + else if(stack_info->a2dp_exist) + { + if(stack_info->pan_exist) + { + if(bt_hs_on) + { + // a2dp+hs + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 2); + } + else + { + // a2dp+pan + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 36); + } + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x5afa5afa, 0xffff, 0x3); + coex_dm->reset_tdma_adjust = true; + } + else + { + // a2dp only + halbtc8812a1ant_TdmaDurationAdjustForAcl(btcoexist); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x5afa5afa, 0xffff, 0x3); + } + } + else if(stack_info->pan_exist) + { + // pan only + if(bt_hs_on) + { + coex_dm->error_condition = 9; + } + else + { + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, true, 2); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x5afa5afa, 0xffff, 0x3); + } + coex_dm->reset_tdma_adjust = true; + } + else + { + //DbgPrint("error 10, stack_info->numOfLink=%d, stack_info->hid_exist=%d, stack_info->a2dp_exist=%d, stack_info->pan_exist=%d, stack_info->sco_exist=%d\n", + //stack_info->numOfLink, stack_info->hid_exist, stack_info->a2dp_exist, stack_info->pan_exist, stack_info->sco_exist); + coex_dm->error_condition = 10; + } + } + } + else if( (BT_8812A_1ANT_BT_STATUS_SCO_BUSY == coex_dm->bt_status) || + (BT_8812A_1ANT_BT_STATUS_ACL_SCO_BUSY == coex_dm->bt_status) ) + { + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, false); + // power save must executed before psTdma. + btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 8); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x5aea5aea, 0x5aea5aea, 0xffff, 0x3); + } + else + { + //DbgPrint("error 11, coex_dm->bt_status=%d\n", coex_dm->bt_status); + //DbgPrint("error 11, stack_info->numOfLink=%d, stack_info->hid_exist=%d, stack_info->a2dp_exist=%d, stack_info->pan_exist=%d, stack_info->sco_exist=%d\n", + //stack_info->numOfLink, stack_info->hid_exist, stack_info->a2dp_exist, stack_info->pan_exist, stack_info->sco_exist); + //error condition, should not reach here + coex_dm->error_condition = 11; + } + } + } + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], CoexForWifiConnect()<===\n")); +} + +void +halbtc8812a1ant_RunSwCoexistMechanism( + PBTC_COEXIST btcoexist + ) +{ + PBTC_STACK_INFO stack_info=&btcoexist->stack_info; + BOOLEAN wifi_under5g=false, wifi_busy=false, wifi_connected=false; + u1Byte bt_info_original=0, bt_retry_cnt=0; + u1Byte algorithm=0; + + return; + if(stack_info->bProfileNotified) + { + algorithm = halbtc8812a1ant_ActionAlgorithm(btcoexist); + coex_dm->cur_algorithm = algorithm; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Algorithm = %d \n", coex_dm->cur_algorithm)); + + if(halbtc8812a1ant_IsCommonAction(btcoexist)) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action common.\n")); + } + else + { + switch(coex_dm->cur_algorithm) + { + case BT_8812A_1ANT_COEX_ALGO_SCO: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = SCO.\n")); + halbtc8812a1ant_ActionSco(btcoexist); + break; + case BT_8812A_1ANT_COEX_ALGO_HID: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = HID.\n")); + halbtc8812a1ant_ActionHid(btcoexist); + break; + case BT_8812A_1ANT_COEX_ALGO_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = A2DP.\n")); + halbtc8812a1ant_ActionA2dp(btcoexist); + break; + case BT_8812A_1ANT_COEX_ALGO_A2DP_PANHS: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = A2DP+PAN(HS).\n")); + halbtc8812a1ant_ActionA2dpPanHs(btcoexist); + break; + case BT_8812A_1ANT_COEX_ALGO_PANEDR: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = PAN(EDR).\n")); + halbtc8812a1ant_ActionPanEdr(btcoexist); + break; + case BT_8812A_1ANT_COEX_ALGO_PANHS: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = HS mode.\n")); + halbtc8812a1ant_ActionPanHs(btcoexist); + break; + case BT_8812A_1ANT_COEX_ALGO_PANEDR_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = PAN+A2DP.\n")); + halbtc8812a1ant_ActionPanEdrA2dp(btcoexist); + break; + case BT_8812A_1ANT_COEX_ALGO_PANEDR_HID: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = PAN(EDR)+HID.\n")); + halbtc8812a1ant_ActionPanEdrHid(btcoexist); + break; + case BT_8812A_1ANT_COEX_ALGO_HID_A2DP_PANEDR: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = HID+A2DP+PAN.\n")); + halbtc8812a1ant_ActionHidA2dpPanEdr(btcoexist); + break; + case BT_8812A_1ANT_COEX_ALGO_HID_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = HID+A2DP.\n")); + halbtc8812a1ant_ActionHidA2dp(btcoexist); + break; + default: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = coexist All Off!!\n")); + halbtc8812a1ant_CoexAllOff(btcoexist); + break; + } + coex_dm->pre_algorithm = coex_dm->cur_algorithm; + } + } +} + +void +halbtc8812a1ant_RunCoexistMechanism( + PBTC_COEXIST btcoexist + ) +{ + PBTC_STACK_INFO stack_info=&btcoexist->stack_info; + BOOLEAN wifi_under5g=false, wifi_busy=false, wifi_connected=false; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], RunCoexistMechanism()===>\n")); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under5g); + + if(wifi_under5g) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], RunCoexistMechanism(), return for 5G <===\n")); + return; + } + + if(btcoexist->manual_control) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], RunCoexistMechanism(), return for Manual CTRL <===\n")); + return; + } + + if(btcoexist->stop_coex_dm) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], RunCoexistMechanism(), return for Stop Coex DM <===\n")); + return; + } + + halbtc8812a1ant_RunSwCoexistMechanism(btcoexist); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, &wifi_connected); + if(btcoexist->bt_info.bt_disabled) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], bt is disabled!!!\n")); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + if(wifi_busy) + { + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, false); + btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 9); + } + else + { + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, true); + halbtc8812a1ant_LpsRpwm(btcoexist, NORMAL_EXEC, 0x0, 0x4); + // power save must executed before psTdma. + btcoexist->btc_set(btcoexist, BTC_SET_ACT_ENTER_LPS, NULL); + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 9); + } + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + } + else if(coex_sta->under_ips) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], wifi is under IPS !!!\n")); + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 0); + halbtc8812a1ant_CoexTable(btcoexist, NORMAL_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); + halbtc8812a1ant_WifiParaAdjust(btcoexist, false); + } + else if(!wifi_connected) + { + BOOLEAN scan=false, link=false, roam=false; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], wifi is non connected-idle !!!\n")); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam); + + if(scan || link || roam) + halbtc8812a1ant_ActionWifiNotConnectedAssoAuthScan(btcoexist); + else + halbtc8812a1ant_ActionWifiNotConnected(btcoexist); + } + else // wifi LPS/Busy + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], wifi is NOT under IPS!!!\n")); + halbtc8812a1ant_WifiParaAdjust(btcoexist, true); + halbtc8812a1ant_ActionWifiConnected(btcoexist); + } + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], RunCoexistMechanism()<===\n")); +} + +void +halbtc8812a1ant_InitCoexDm( + PBTC_COEXIST btcoexist + ) +{ + BOOLEAN wifi_connected=false; + // force to reset coex mechanism + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, &wifi_connected); + if(!wifi_connected) // non-connected scan + { + halbtc8812a1ant_ActionWifiNotConnected(btcoexist); + } + else // wifi is connected + { + halbtc8812a1ant_ActionWifiConnected(btcoexist); + } + + halbtc8812a1ant_FwDacSwingLvl(btcoexist, FORCE_EXEC, 6); + halbtc8812a1ant_DecBtPwr(btcoexist, FORCE_EXEC, false); + + // sw all off + halbtc8812a1ant_SwMechanism1(btcoexist,false,false,false,false); + halbtc8812a1ant_SwMechanism2(btcoexist,false,false,false,0x18); + + halbtc8812a1ant_CoexTable(btcoexist, FORCE_EXEC, 0x55555555, 0x55555555, 0xffff, 0x3); +} + +//============================================================ +// work around function start with wa_halbtc8812a1ant_ +//============================================================ +//============================================================ +// extern function start with EXhalbtc8812a1ant_ +//============================================================ +void +EXhalbtc8812a1ant_InitHwConfig( + PBTC_COEXIST btcoexist + ) +{ + u4Byte u4_tmp=0; + u2Byte u2Tmp=0; + u1Byte u1_tmp=0; + + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, ("[BTCoex], 1Ant Init HW Config!!\n")); + + // backup rf 0x1e value + coex_dm->bt_rf0x1e_backup = + btcoexist->btc_get_rf_reg(btcoexist, BTC_RF_A, 0x1e, 0xfffff); + + //ant sw control to BT + btcoexist->btc_write_4byte(btcoexist, 0x900, 0x00000400); + btcoexist->btc_write_1byte(btcoexist, 0x76d, 0x1); + btcoexist->btc_write_1byte(btcoexist, 0xcb3, 0x77); + btcoexist->btc_write_1byte(btcoexist, 0xcb7, 0x40); + + // 0x790[5:0]=0x5 + u1_tmp = btcoexist->btc_read_1byte(btcoexist, 0x790); + u1_tmp &= 0xc0; + u1_tmp |= 0x5; + btcoexist->btc_write_1byte(btcoexist, 0x790, u1_tmp); + + // PTA parameter + btcoexist->btc_write_1byte(btcoexist, 0x6cc, 0x0); + btcoexist->btc_write_4byte(btcoexist, 0x6c8, 0xffff); + btcoexist->btc_write_4byte(btcoexist, 0x6c4, 0x55555555); + btcoexist->btc_write_4byte(btcoexist, 0x6c0, 0x55555555); + + // coex parameters + btcoexist->btc_write_1byte(btcoexist, 0x778, 0x1); + + // enable counter statistics + btcoexist->btc_write_1byte(btcoexist, 0x76e, 0x4); + + // enable PTA + btcoexist->btc_write_1byte(btcoexist, 0x40, 0x20); + + // bt clock related + u1_tmp = btcoexist->btc_read_1byte(btcoexist, 0x4); + u1_tmp |= BIT7; + btcoexist->btc_write_1byte(btcoexist, 0x4, u1_tmp); + + // bt clock related + u1_tmp = btcoexist->btc_read_1byte(btcoexist, 0x7); + u1_tmp |= BIT1; + btcoexist->btc_write_1byte(btcoexist, 0x7, u1_tmp); +} + +void +EXhalbtc8812a1ant_InitCoexDm( + PBTC_COEXIST btcoexist + ) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, ("[BTCoex], Coex Mechanism Init!!\n")); + + btcoexist->stop_coex_dm = false; + + halbtc8812a1ant_InitCoexDm(btcoexist); +} + +void +EXhalbtc8812a1ant_DisplayCoexInfo( + PBTC_COEXIST btcoexist + ) +{ + PBTC_BOARD_INFO board_info=&btcoexist->boardInfo; + PBTC_STACK_INFO stack_info=&btcoexist->stack_info; + pu1Byte cli_buf=btcoexist->cli_buf; + u1Byte u1_tmp[4], i, bt_info_ext, psTdmaCase=0; + u4Byte u4_tmp[4]; + BOOLEAN roam=false, scan=false, link=false, wifi_under5g=false; + BOOLEAN bt_hs_on=false, wifi_busy=false; + s4Byte wifi_rssi=0, bt_hs_rssi=0; + u4Byte wifi_bw, wifiTrafficDir; + u1Byte wifiDot11Chnl, wifiHsChnl; + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n ============[BT Coexist info]============"); + CL_PRINTF(cli_buf); + + if(btcoexist->manual_control) + { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n ============[Under Manual Control]============"); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n =========================================="); + CL_PRINTF(cli_buf); + } + if(btcoexist->stop_coex_dm) + { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n ============[Coex is STOPPED]============"); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n =========================================="); + CL_PRINTF(cli_buf); + } + + if(!board_info->bBtExist) + { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n BT not exists !!!"); + CL_PRINTF(cli_buf); + return; + } + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d ", "Ant PG number/ Ant mechanism:", \ + board_info->pgAntNum, board_info->btdmAntNum); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s / %d", "BT stack/ hci ext ver", \ + ((stack_info->bProfileNotified)? "Yes":"No"), stack_info->hciVersion); + CL_PRINTF(cli_buf); + btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_BT_FW_VER); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_DOT11_CHNL, &wifiDot11Chnl); + btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_HS_CHNL, &wifiHsChnl); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d(%d)", "Dot11 channel / HsChnl(HsMode)", \ + wifiDot11Chnl, wifiHsChnl, bt_hs_on); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x ", "H2C Wifi inform bt chnl Info", \ + coex_dm->wifi_chnl_info[0], coex_dm->wifi_chnl_info[1], + coex_dm->wifi_chnl_info[2]); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_S4_WIFI_RSSI, &wifi_rssi); + btcoexist->btc_get(btcoexist, BTC_GET_S4_HS_RSSI, &bt_hs_rssi); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", "Wifi rssi/ HS rssi", \ + wifi_rssi, bt_hs_rssi); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d ", "Wifi link/ roam/ scan", \ + link, roam, scan); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under5g); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_TRAFFIC_DIRECTION, &wifiTrafficDir); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s / %s/ %s ", "Wifi status", \ + (wifi_under5g? "5G":"2.4G"), + ((BTC_WIFI_BW_LEGACY==wifi_bw)? "Legacy": (((BTC_WIFI_BW_HT40==wifi_bw)? "HT40":"HT20"))), + ((!wifi_busy)? "idle": ((BTC_WIFI_TRAFFIC_TX==wifiTrafficDir)? "uplink":"downlink"))); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = [%s/ %d/ %d] ", "BT [status/ rssi/ retryCnt]", \ + ((coex_sta->c2h_bt_inquiry_page)?("inquiry/page scan"):((BT_8812A_1ANT_BT_STATUS_NON_CONNECTED_IDLE == coex_dm->bt_status)? "non-connected idle": + ( (BT_8812A_1ANT_BT_STATUS_CONNECTED_IDLE == coex_dm->bt_status)? "connected-idle":"busy"))), + coex_sta->bt_rssi, coex_sta->bt_retry_cnt); + CL_PRINTF(cli_buf); + + if(stack_info->bProfileNotified) + { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d / %d / %d", "SCO/HID/PAN/A2DP", \ + stack_info->sco_exist, stack_info->hid_exist, stack_info->pan_exist, stack_info->a2dp_exist); + CL_PRINTF(cli_buf); + + btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_BT_LINK_INFO); + } + + bt_info_ext = coex_sta->bt_info_ext; + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s", "BT Info A2DP rate", \ + (bt_info_ext&BIT0)? "Basic rate":"EDR rate"); + CL_PRINTF(cli_buf); + + for(i=0; ibt_info_c2h_cnt[i]) + { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x %02x %02x %02x %02x(%d)", GLBtInfoSrc8812a1Ant[i], \ + coex_sta->bt_info_c2h[i][0], coex_sta->bt_info_c2h[i][1], + coex_sta->bt_info_c2h[i][2], coex_sta->bt_info_c2h[i][3], + coex_sta->bt_info_c2h[i][4], coex_sta->bt_info_c2h[i][5], + coex_sta->bt_info_c2h[i][6], coex_sta->bt_info_c2h_cnt[i]); + CL_PRINTF(cli_buf); + } + } + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/%s, (0x%x/0x%x)", "PS state, IPS/LPS, (lps/rpwm)", \ + ((coex_sta->under_ips? "IPS ON":"IPS OFF")), + ((coex_sta->under_lps? "LPS ON":"LPS OFF")), + btcoexist->bt_info.lps1Ant, + btcoexist->bt_info.rpwm1Ant); + CL_PRINTF(cli_buf); + btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_FW_PWR_MODE_CMD); + + if(!btcoexist->manual_control) + { + // Sw mechanism + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", "============[Sw mechanism]============"); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d/ %d ", "SM1[ShRf/ LpRA/ LimDig/ btLna]", \ + coex_dm->cur_rf_rx_lpf_shrink, coex_dm->cur_low_penalty_ra, coex_dm->limited_dig, coex_dm->bCurBtLnaConstrain); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d(0x%x) ", "SM2[AgcT/ AdcB/ SwDacSwing(lvl)]", \ + coex_dm->cur_agc_table_en, coex_dm->cur_adc_back_off, coex_dm->cur_dac_swing_on, coex_dm->cur_dac_swing_lvl); + CL_PRINTF(cli_buf); + + // Fw mechanism + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", "============[Fw mechanism]============"); + CL_PRINTF(cli_buf); + + psTdmaCase = coex_dm->cur_ps_tdma; + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x %02x %02x case-%d", "PS TDMA", \ + coex_dm->ps_tdma_para[0], coex_dm->ps_tdma_para[1], + coex_dm->ps_tdma_para[2], coex_dm->ps_tdma_para[3], + coex_dm->ps_tdma_para[4], psTdmaCase); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x ", "Latest error condition(should be 0)", \ + coex_dm->error_condition); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d ", "DecBtPwr/ IgnWlanAct", \ + coex_dm->cur_dec_bt_pwr, coex_dm->cur_ignore_wlan_act); + CL_PRINTF(cli_buf); + } + + // Hw setting + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", "============[Hw setting]============"); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "RF-A, 0x1e initVal", \ + coex_dm->bt_rf0x1e_backup); + CL_PRINTF(cli_buf); + + u1_tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x778); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x778", \ + u1_tmp[0]); + CL_PRINTF(cli_buf); + + u1_tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x92c); + u4_tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x930); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", "0x92c/ 0x930", \ + (u1_tmp[0]), u4_tmp[0]); + CL_PRINTF(cli_buf); + + u1_tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x40); + u1_tmp[1] = btcoexist->btc_read_1byte(btcoexist, 0x4f); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", "0x40/ 0x4f", \ + u1_tmp[0], u1_tmp[1]); + CL_PRINTF(cli_buf); + + u4_tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x550); + u1_tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x522); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", "0x550(bcn ctrl)/0x522", \ + u4_tmp[0], u1_tmp[0]); + CL_PRINTF(cli_buf); + + u4_tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0xc50); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0xc50(dig)", \ + u4_tmp[0]); + CL_PRINTF(cli_buf); + +#if 0 + u4_tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0xf48); + u4_tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0xf4c); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", "0xf48/ 0xf4c (FA cnt)", \ + u4_tmp[0], u4_tmp[1]); + CL_PRINTF(cli_buf); +#endif + + u4_tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x6c0); + u4_tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0x6c4); + u4_tmp[2] = btcoexist->btc_read_4byte(btcoexist, 0x6c8); + u1_tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x6cc); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", "0x6c0/0x6c4/0x6c8/0x6cc(coexTable)", \ + u4_tmp[0], u4_tmp[1], u4_tmp[2], u1_tmp[0]); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", "0x770(hp rx[31:16]/tx[15:0])", \ + coex_sta->high_priority_rx, coex_sta->high_priority_tx); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", "0x774(lp rx[31:16]/tx[15:0])", \ + coex_sta->low_priority_rx, coex_sta->low_priority_tx); + CL_PRINTF(cli_buf); + + btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_COEX_STATISTICS); +} + + +void +EXhalbtc8812a1ant_IpsNotify( + PBTC_COEXIST btcoexist, + u1Byte type + ) +{ + u4Byte u4_tmp=0; + + if(btcoexist->manual_control || btcoexist->stop_coex_dm) + return; + + if(BTC_IPS_ENTER == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], IPS ENTER notify\n")); + coex_sta->under_ips = true; + + // 0x4c[23]=1 + u4_tmp = btcoexist->btc_read_4byte(btcoexist, 0x4c); + u4_tmp |= BIT23; + btcoexist->btc_write_4byte(btcoexist, 0x4c, u4_tmp); + + halbtc8812a1ant_CoexAllOff(btcoexist); + } + else if(BTC_IPS_LEAVE == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], IPS LEAVE notify\n")); + coex_sta->under_ips = false; + //halbtc8812a1ant_InitCoexDm(btcoexist); + } +} + +void +EXhalbtc8812a1ant_LpsNotify( + PBTC_COEXIST btcoexist, + u1Byte type + ) +{ + if(btcoexist->manual_control || btcoexist->stop_coex_dm) + return; + + if(BTC_LPS_ENABLE == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], LPS ENABLE notify\n")); + coex_sta->under_lps = true; + } + else if(BTC_IPS_LEAVE == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], LPS DISABLE notify\n")); + coex_sta->under_lps = false; + } +} + +void +EXhalbtc8812a1ant_ScanNotify( + PBTC_COEXIST btcoexist, + u1Byte type + ) +{ + PBTC_STACK_INFO stack_info=&btcoexist->stack_info; + BOOLEAN wifi_connected=false; + + if(btcoexist->manual_control ||btcoexist->stop_coex_dm) + return; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, &wifi_connected); + if(BTC_SCAN_START == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], SCAN START notify\n")); + if(!wifi_connected) // non-connected scan + { + //set 0x550[3]=1 before PsTdma + //halbtc8812a1ant_Reg0x550Bit3(btcoexist, true); + halbtc8812a1ant_ActionWifiNotConnectedAssoAuthScan(btcoexist); + } + else // wifi is connected + { + halbtc8812a1ant_ActionWifiConnectedScan(btcoexist); + } + } + else if(BTC_SCAN_FINISH == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], SCAN FINISH notify\n")); + if(!wifi_connected) // non-connected scan + { + //halbtc8812a1ant_Reg0x550Bit3(btcoexist, false); + halbtc8812a1ant_ActionWifiNotConnected(btcoexist); + } + else + { + halbtc8812a1ant_ActionWifiConnected(btcoexist); + } + } +} + +void +EXhalbtc8812a1ant_ConnectNotify( + PBTC_COEXIST btcoexist, + u1Byte type + ) +{ + PBTC_STACK_INFO stack_info=&btcoexist->stack_info; + BOOLEAN wifi_connected=false; + + if(btcoexist->manual_control ||btcoexist->stop_coex_dm) + return; + + if(BTC_ASSOCIATE_START == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], CONNECT START notify\n")); + if(btcoexist->bt_info.bt_disabled) + { + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, false); + btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 9); + } + else + { + halbtc8812a1ant_ActionWifiNotConnectedAssoAuthScan(btcoexist); + } + } + else if(BTC_ASSOCIATE_FINISH == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], CONNECT FINISH notify\n")); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, &wifi_connected); + if(!wifi_connected) // non-connected scan + { + //halbtc8812a1ant_Reg0x550Bit3(btcoexist, false); + halbtc8812a1ant_ActionWifiNotConnected(btcoexist); + } + else + { + halbtc8812a1ant_ActionWifiConnected(btcoexist); + } + } +} + +void +EXhalbtc8812a1ant_MediaStatusNotify( + PBTC_COEXIST btcoexist, + u1Byte type + ) +{ + u1Byte dataLen=5; + u1Byte buf[6] = {0}; + u1Byte h2c_parameter[3] ={0}; + BOOLEAN wifi_under5g=false; + u4Byte wifi_bw; + u1Byte wifi_central_chnl; + + if(btcoexist->manual_control ||btcoexist->stop_coex_dm) + return; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under5g); + + // only 2.4G we need to inform bt the chnl mask + if(!wifi_under5g) + { + if(BTC_MEDIA_CONNECT == type) + { + h2c_parameter[0] = 0x1; + } + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_CENTRAL_CHNL, &wifi_central_chnl); + h2c_parameter[1] = wifi_central_chnl; + if(BTC_WIFI_BW_HT40 == wifi_bw) + h2c_parameter[2] = 0x30; + else + h2c_parameter[2] = 0x20; + } + + coex_dm->wifi_chnl_info[0] = h2c_parameter[0]; + coex_dm->wifi_chnl_info[1] = h2c_parameter[1]; + coex_dm->wifi_chnl_info[2] = h2c_parameter[2]; + + buf[0] = dataLen; + buf[1] = 0x5; // OP_Code + buf[2] = 0x3; // OP_Code_Length + buf[3] = h2c_parameter[0]; // OP_Code_Content + buf[4] = h2c_parameter[1]; + buf[5] = h2c_parameter[2]; + + btcoexist->btc_set(btcoexist, BTC_SET_ACT_CTRL_BT_COEX, (PVOID)&buf[0]); +} + +void +EXhalbtc8812a1ant_SpecialPacketNotify( + PBTC_COEXIST btcoexist, + u1Byte type + ) +{ + BOOLEAN bSecurityLink=false; + + if(btcoexist->manual_control ||btcoexist->stop_coex_dm) + return; + + //if(type == BTC_PACKET_DHCP) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], special Packet(%d) notify\n", type)); + if(btcoexist->bt_info.bt_disabled) + { + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, false); + btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 9); + } + else + { + halbtc8812a1ant_ActionWifiConnectedSpecialPacket(btcoexist); + } + } +} + +void +EXhalbtc8812a1ant_BtInfoNotify( + PBTC_COEXIST btcoexist, + pu1Byte tmp_buf, + u1Byte length + ) +{ + u1Byte bt_info=0; + u1Byte i, rsp_source=0; + static u4Byte set_bt_lna_cnt=0, set_bt_psd_mode=0; + BOOLEAN bt_busy=false, limited_dig=false; + BOOLEAN wifi_connected=false; + BOOLEAN bRejApAggPkt=false; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BtInfoNotify()===>\n")); + + + rsp_source = tmp_buf[0]&0xf; + if(rsp_source >= BT_INFO_SRC_8812A_1ANT_MAX) + rsp_source = BT_INFO_SRC_8812A_1ANT_WIFI_FW; + coex_sta->bt_info_c2h_cnt[rsp_source]++; + + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], Bt info[%d], length=%d, hex data=[", rsp_source, length)); + for(i=0; ibt_info_c2h[rsp_source][i] = tmp_buf[i]; + if(i == 1) + bt_info = tmp_buf[i]; + if(i == length-1) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("0x%2x]\n", tmp_buf[i])); + } + else + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("0x%2x, ", tmp_buf[i])); + } + } + + if(btcoexist->manual_control) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BtInfoNotify(), return for Manual CTRL<===\n")); + return; + } + if(btcoexist->stop_coex_dm) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BtInfoNotify(), return for Coex STOPPED!!<===\n")); + return; + } + + if(BT_INFO_SRC_8812A_1ANT_WIFI_FW != rsp_source) + { + coex_sta->bt_retry_cnt = + coex_sta->bt_info_c2h[rsp_source][2]; + + coex_sta->bt_rssi = + coex_sta->bt_info_c2h[rsp_source][3]*2+10; + + coex_sta->bt_info_ext = + coex_sta->bt_info_c2h[rsp_source][4]; + + // Here we need to resend some wifi info to BT + // because bt is reset and loss of the info. + if( (coex_sta->bt_info_ext & BIT1) ) + { + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, &wifi_connected); + if(wifi_connected) + { + EXhalbtc8812a1ant_MediaStatusNotify(btcoexist, BTC_MEDIA_CONNECT); + } + else + { + EXhalbtc8812a1ant_MediaStatusNotify(btcoexist, BTC_MEDIA_DISCONNECT); + } + + set_bt_psd_mode = 0; + } + + // test-chip bt patch doesn't support, temporary remove. + // need to add back when mp-chip. 12/20/2012 +#if 0 + if(set_bt_psd_mode <= 3) + { + halbtc8812a1ant_SetBtPsdMode(btcoexist, FORCE_EXEC, 0xd); + set_bt_psd_mode++; + } + + if(coex_dm->bCurBtLnaConstrain) + { + if( (coex_sta->bt_info_ext & BIT2) ) + { + } + else + { + if(set_bt_lna_cnt <= 3) + { + halbtc8812a1ant_SetBtLnaConstrain(btcoexist, FORCE_EXEC, true); + set_bt_lna_cnt++; + } + } + } + else + { + set_bt_lna_cnt = 0; + } +#endif + // test-chip bt patch only rsp the status for BT_RSP, + // so temporary we consider the following only under BT_RSP + if(BT_INFO_SRC_8812A_1ANT_BT_RSP == rsp_source) + { + if( (coex_sta->bt_info_ext & BIT3) ) + { + #if 0// temp disable because bt patch report the wrong value. + halbtc8812a1ant_IgnoreWlanAct(btcoexist, FORCE_EXEC, false); + #endif + } + else + { + // BT already NOT ignore Wlan active, do nothing here. + } + + if( (coex_sta->bt_info_ext & BIT4) ) + { + // BT auto report already enabled, do nothing + } + else + { + halbtc8812a1ant_BtAutoReport(btcoexist, FORCE_EXEC, true); + } + } + } + + // check BIT2 first ==> check if bt is under inquiry or page scan + if(bt_info & BT_INFO_8812A_1ANT_B_INQ_PAGE) + { + coex_sta->c2h_bt_inquiry_page = true; + coex_dm->bt_status = BT_8812A_1ANT_BT_STATUS_INQ_PAGE; + } + else + { + coex_sta->c2h_bt_inquiry_page = false; + if(!(bt_info&BT_INFO_8812A_1ANT_B_CONNECTION)) + { + coex_dm->bt_status = BT_8812A_1ANT_BT_STATUS_NON_CONNECTED_IDLE; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BtInfoNotify(), bt non-connected idle!!!\n")); + } + else if(bt_info == BT_INFO_8812A_1ANT_B_CONNECTION) // connection exists but no busy + { + coex_dm->bt_status = BT_8812A_1ANT_BT_STATUS_CONNECTED_IDLE; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BtInfoNotify(), bt connected-idle!!!\n")); + } + else if((bt_info&BT_INFO_8812A_1ANT_B_SCO_ESCO) || + (bt_info&BT_INFO_8812A_1ANT_B_SCO_BUSY)) + { + coex_dm->bt_status = BT_8812A_1ANT_BT_STATUS_SCO_BUSY; + bRejApAggPkt = true; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BtInfoNotify(), bt sco busy!!!\n")); + } + else if(bt_info&BT_INFO_8812A_1ANT_B_ACL_BUSY) + { + if(BT_8812A_1ANT_BT_STATUS_ACL_BUSY != coex_dm->bt_status) + coex_dm->reset_tdma_adjust = true; + coex_dm->bt_status = BT_8812A_1ANT_BT_STATUS_ACL_BUSY; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BtInfoNotify(), bt acl busy!!!\n")); + } +#if 0 + else if(bt_info&BT_INFO_8812A_1ANT_B_SCO_ESCO) + { + coex_dm->bt_status = BT_8812A_1ANT_BT_STATUS_ACL_SCO_BUSY; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BtInfoNotify(), bt acl/sco busy!!!\n")); + } +#endif + else + { + //DbgPrint("error, undefined bt_info=0x%x\n", bt_info); + coex_dm->bt_status = BT_8812A_1ANT_BT_STATUS_MAX; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BtInfoNotify(), bt non-defined state!!!\n")); + } + + // send delete BA to disable aggregation + //btcoexist->btc_set(btcoexist, BTC_SET_BL_TO_REJ_AP_AGG_PKT, &bRejApAggPkt); + } + + if( (BT_8812A_1ANT_BT_STATUS_ACL_BUSY == coex_dm->bt_status) || + (BT_8812A_1ANT_BT_STATUS_SCO_BUSY == coex_dm->bt_status) || + (BT_8812A_1ANT_BT_STATUS_ACL_SCO_BUSY == coex_dm->bt_status) ) + { + bt_busy = true; + } + else + { + bt_busy = false; + } + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_TRAFFIC_BUSY, &bt_busy); + + if(bt_busy) + { + limited_dig = true; + } + else + { + limited_dig = false; + } + coex_dm->limited_dig = limited_dig; + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_LIMITED_DIG, &limited_dig); + + halbtc8812a1ant_RunCoexistMechanism(btcoexist); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BtInfoNotify()<===\n")); +} + +void +EXhalbtc8812a1ant_StackOperationNotify( + PBTC_COEXIST btcoexist, + u1Byte type + ) +{ + if(BTC_STACK_OP_INQ_PAGE_PAIR_START == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], StackOP Inquiry/page/pair start notify\n")); + } + else if(BTC_STACK_OP_INQ_PAGE_PAIR_FINISH == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], StackOP Inquiry/page/pair finish notify\n")); + } +} + +void +EXhalbtc8812a1ant_HaltNotify( + PBTC_COEXIST btcoexist + ) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], Halt notify\n")); + + halbtc8812a1ant_IgnoreWlanAct(btcoexist, FORCE_EXEC, true); + halbtc8812a1ant_PsTdma(btcoexist, FORCE_EXEC, false, 0); + btcoexist->btc_write_1byte(btcoexist, 0x4f, 0xf); + halbtc8812a1ant_WifiParaAdjust(btcoexist, false); +} + +void +EXhalbtc8812a1ant_PnpNotify( + PBTC_COEXIST btcoexist, + u1Byte pnpState + ) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], Pnp notify\n")); + + if(BTC_WIFI_PNP_SLEEP == pnpState) + { + btcoexist->stop_coex_dm = true; + halbtc8812a1ant_IgnoreWlanAct(btcoexist, FORCE_EXEC, true); + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, false); + btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 9); + } + else if(BTC_WIFI_PNP_WAKE_UP == pnpState) + { + + } +} + +void +EXhalbtc8812a1ant_Periodical( + PBTC_COEXIST btcoexist + ) +{ + BOOLEAN wifi_under5g=false; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Periodical()===>\n")); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], 1Ant Periodical!!\n")); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under5g); + + if(wifi_under5g) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Periodical(), return for 5G<===\n")); + halbtc8812a1ant_CoexAllOff(btcoexist); + return; + } + + halbtc8812a1ant_QueryBtInfo(btcoexist); + halbtc8812a1ant_MonitorBtCtr(btcoexist); + halbtc8812a1ant_MonitorBtEnableDisable(btcoexist); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Periodical()<===\n")); +} + +void +EXhalbtc8812a1ant_DbgControl( + PBTC_COEXIST btcoexist, + u1Byte opCode, + u1Byte opLen, + pu1Byte pData + ) +{ + switch(opCode) + { + case BTC_DBG_SET_COEX_NORMAL: + btcoexist->manual_control = false; + halbtc8812a1ant_InitCoexDm(btcoexist); + break; + case BTC_DBG_SET_COEX_WIFI_ONLY: + btcoexist->manual_control = true; + halbtc8812a1ant_PsTdmaCheckForPowerSaveState(btcoexist, false); + btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + halbtc8812a1ant_PsTdma(btcoexist, NORMAL_EXEC, false, 9); + break; + case BTC_DBG_SET_COEX_BT_ONLY: + // todo + break; + default: + break; + } +} +#endif + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/HalBtc8812a1Ant.h +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/HalBtc8812a1Ant.h @@ -0,0 +1,205 @@ +//=========================================== +// The following is for 8812A_1ANT BT Co-exist definition +//=========================================== +#define BT_INFO_8812A_1ANT_B_FTP BIT7 +#define BT_INFO_8812A_1ANT_B_A2DP BIT6 +#define BT_INFO_8812A_1ANT_B_HID BIT5 +#define BT_INFO_8812A_1ANT_B_SCO_BUSY BIT4 +#define BT_INFO_8812A_1ANT_B_ACL_BUSY BIT3 +#define BT_INFO_8812A_1ANT_B_INQ_PAGE BIT2 +#define BT_INFO_8812A_1ANT_B_SCO_ESCO BIT1 +#define BT_INFO_8812A_1ANT_B_CONNECTION BIT0 + +#define BT_INFO_8812A_1ANT_A2DP_BASIC_RATE(_BT_INFO_EXT_) \ + (((_BT_INFO_EXT_&BIT0))? true:false) + +#define BTC_RSSI_COEX_THRESH_TOL_8812A_1ANT 2 + +#define +#define OUT + +typedef enum _BT_INFO_SRC_8812A_1ANT{ + BT_INFO_SRC_8812A_1ANT_WIFI_FW = 0x0, + BT_INFO_SRC_8812A_1ANT_BT_RSP = 0x1, + BT_INFO_SRC_8812A_1ANT_BT_ACTIVE_SEND = 0x2, + BT_INFO_SRC_8812A_1ANT_MAX +}BT_INFO_SRC_8812A_1ANT,*PBT_INFO_SRC_8812A_1ANT; + +typedef enum _BT_8812A_1ANT_BT_STATUS{ + BT_8812A_1ANT_BT_STATUS_NON_CONNECTED_IDLE = 0x0, + BT_8812A_1ANT_BT_STATUS_CONNECTED_IDLE = 0x1, + BT_8812A_1ANT_BT_STATUS_INQ_PAGE = 0x2, + BT_8812A_1ANT_BT_STATUS_ACL_BUSY = 0x3, + BT_8812A_1ANT_BT_STATUS_SCO_BUSY = 0x4, + BT_8812A_1ANT_BT_STATUS_ACL_SCO_BUSY = 0x5, + BT_8812A_1ANT_BT_STATUS_MAX +}BT_8812A_1ANT_BT_STATUS,*PBT_8812A_1ANT_BT_STATUS; + +typedef enum _BT_8812A_1ANT_COEX_ALGO{ + BT_8812A_1ANT_COEX_ALGO_UNDEFINED = 0x0, + BT_8812A_1ANT_COEX_ALGO_SCO = 0x1, + BT_8812A_1ANT_COEX_ALGO_HID = 0x2, + BT_8812A_1ANT_COEX_ALGO_A2DP = 0x3, + BT_8812A_1ANT_COEX_ALGO_A2DP_PANHS = 0x4, + BT_8812A_1ANT_COEX_ALGO_PANEDR = 0x5, + BT_8812A_1ANT_COEX_ALGO_PANHS = 0x6, + BT_8812A_1ANT_COEX_ALGO_PANEDR_A2DP = 0x7, + BT_8812A_1ANT_COEX_ALGO_PANEDR_HID = 0x8, + BT_8812A_1ANT_COEX_ALGO_HID_A2DP_PANEDR = 0x9, + BT_8812A_1ANT_COEX_ALGO_HID_A2DP = 0xa, + BT_8812A_1ANT_COEX_ALGO_MAX = 0xb, +}BT_8812A_1ANT_COEX_ALGO,*PBT_8812A_1ANT_COEX_ALGO; + +typedef struct _COEX_DM_8812A_1ANT{ + // fw mechanism + bool pre_dec_bt_pwr; + bool cur_dec_bt_pwr; + bool bPreBtLnaConstrain; + bool bCurBtLnaConstrain; + u8 bPreBtPsdMode; + u8 bCurBtPsdMode; + u8 pre_fw_dac_swing_lvl; + u8 cur_fw_dac_swing_lvl; + bool cur_ignore_wlan_act; + bool pre_ignore_wlan_act; + u8 pre_ps_tdma; + u8 cur_ps_tdma; + u8 ps_tdma_para[5]; + u8 ps_tdma_du_adj_type; + bool reset_tdma_adjust; + bool pre_ps_tdma_on; + bool cur_ps_tdma_on; + bool pre_bt_auto_report; + bool cur_bt_auto_report; + u8 pre_lps; + u8 cur_lps; + u8 pre_rpwm; + u8 cur_rpwm; + + // sw mechanism + bool pre_rf_rx_lpf_shrink; + bool cur_rf_rx_lpf_shrink; + u32 bt_rf0x1e_backup; + bool pre_low_penalty_ra; + bool cur_low_penalty_ra; + bool pre_dac_swing_on; + u32 pre_dac_swing_lvl; + bool cur_dac_swing_on; + u32 cur_dac_swing_lvl; + bool pre_adc_back_off; + bool cur_adc_back_off; + bool pre_agc_table_en; + bool cur_agc_table_en; + u32 pre_val0x6c0; + u32 cur_val0x6c0; + u32 pre_val0x6c4; + u32 cur_val0x6c4; + u32 pre_val0x6c8; + u32 cur_val0x6c8; + u8 pre_val0x6cc; + u8 cur_val0x6cc; + bool limited_dig; + + // algorithm related + u8 pre_algorithm; + u8 cur_algorithm; + u8 bt_status; + u8 wifi_chnl_info[3]; + + u8 error_condition; +} COEX_DM_8812A_1ANT, *PCOEX_DM_8812A_1ANT; + +typedef struct _COEX_STA_8812A_1ANT{ + bool under_lps; + bool under_ips; + u32 high_priority_tx; + u32 high_priority_rx; + u32 low_priority_tx; + u32 low_priority_rx; + u8 bt_rssi; + u8 pre_bt_rssi_state; + u8 pre_wifi_rssi_state[4]; + bool c2h_bt_info_req_sent; + u8 bt_info_c2h[BT_INFO_SRC_8812A_1ANT_MAX][10]; + u32 bt_info_c2h_cnt[BT_INFO_SRC_8812A_1ANT_MAX]; + bool c2h_bt_inquiry_page; + u8 bt_retry_cnt; + u8 bt_info_ext; +}COEX_STA_8812A_1ANT, *PCOEX_STA_8812A_1ANT; + +//=========================================== +// The following is interface which will notify coex module. +//=========================================== +void +EXhalbtc8812a1ant_InitHwConfig( + PBTC_COEXIST btcoexist + ); +void +EXhalbtc8812a1ant_InitCoexDm( + PBTC_COEXIST btcoexist + ); +void +EXhalbtc8812a1ant_IpsNotify( + PBTC_COEXIST btcoexist, + u8 type + ); +void +EXhalbtc8812a1ant_LpsNotify( + PBTC_COEXIST btcoexist, + u8 type + ); +void +EXhalbtc8812a1ant_ScanNotify( + PBTC_COEXIST btcoexist, + u8 type + ); +void +EXhalbtc8812a1ant_ConnectNotify( + PBTC_COEXIST btcoexist, + u8 type + ); +void +EXhalbtc8812a1ant_MediaStatusNotify( + PBTC_COEXIST btcoexist, + u8 type + ); +void +EXhalbtc8812a1ant_SpecialPacketNotify( + PBTC_COEXIST btcoexist, + u8 type + ); +void +EXhalbtc8812a1ant_BtInfoNotify( + PBTC_COEXIST btcoexist, + u8 *tmp_buf, + u8 length + ); +void +EXhalbtc8812a1ant_StackOperationNotify( + PBTC_COEXIST btcoexist, + u8 type + ); +void +EXhalbtc8812a1ant_HaltNotify( + PBTC_COEXIST btcoexist + ); +void +EXhalbtc8812a1ant_PnpNotify( + PBTC_COEXIST btcoexist, + u8 pnpState + ); +void +EXhalbtc8812a1ant_Periodical( + PBTC_COEXIST btcoexist + ); +void +EXhalbtc8812a1ant_DisplayCoexInfo( + PBTC_COEXIST btcoexist + ); +void +EXhalbtc8812a1ant_DbgControl( + PBTC_COEXIST btcoexist, + u8 opCode, + u8 opLen, + u8 *pData + ); --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/habtc8723a1ant.c +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/habtc8723a1ant.c @@ -0,0 +1,1614 @@ +//============================================================ +// Description: +// +// This file is for RTL8723A Co-exist mechanism +// +// History +// 2012/08/22 Cosa first check in. +// 2012/11/14 Cosa Revise for 8723A 1Ant out sourcing. +// +//============================================================ + +//============================================================ +// include files +//============================================================ +#include "Mp_Precomp.h" +#if(BT_30_SUPPORT == 1) +//============================================================ +// Global variables, these are static variables +//============================================================ +static COEX_DM_8723A_1ANT GLCoexDm8723a1Ant; +static PCOEX_DM_8723A_1ANT pCoexDm=&GLCoexDm8723a1Ant; +static COEX_STA_8723A_1ANT GLCoexSta8723a1Ant; +static PCOEX_STA_8723A_1ANT pCoexSta=&GLCoexSta8723a1Ant; + +const char *const GLBtInfoSrc8723a1Ant[]={ + "BT Info[wifi fw]", + "BT Info[bt rsp]", + "BT Info[bt auto report]", +}; + +//============================================================ +// local function proto type if needed +//============================================================ +//============================================================ +// local function start with halbtc8723a1ant_ +//============================================================ +VOID +halbtc8723a1ant_Reg0x550Bit3( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bSet + ) +{ + u1Byte u1tmp=0; + + u1tmp = pBtCoexist->btc_read_1byte(pBtCoexist, 0x550); + if(bSet) + { + u1tmp |= BIT3; + } + else + { + u1tmp &= ~BIT3; + } + pBtCoexist->btc_write_1byte(pBtCoexist, 0x550, u1tmp); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], set 0x550[3]=%d\n", (bSet? 1:0))); +} + +VOID +halbtc8723a1ant_NotifyFwScan( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte scanType + ) +{ + u1Byte H2C_Parameter[1] ={0}; + + if(BTC_SCAN_START == scanType) + H2C_Parameter[0] = 0x1; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], Notify FW for wifi scan, write 0x3b=0x%x\n", + H2C_Parameter[0])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x3b, 1, H2C_Parameter); +} + +VOID +halbtc8723a1ant_QueryBtInfo( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte H2C_Parameter[1] ={0}; + + pCoexSta->bC2hBtInfoReqSent = true; + + H2C_Parameter[0] |= BIT0; // trigger + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], Query Bt Info, FW write 0x38=0x%x\n", + H2C_Parameter[0])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x38, 1, H2C_Parameter); +} + +VOID +halbtc8723a1ant_SetSwRfRxLpfCorner( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bRxRfShrinkOn + ) +{ + if(bRxRfShrinkOn) + { + //Shrink RF Rx LPF corner + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Shrink RF Rx LPF corner!!\n")); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x1e, 0xfffff, 0xf0ff7); + } + else + { + //Resume RF Rx LPF corner + // After initialized, we can use pCoexDm->btRf0x1eBackup + if(pBtCoexist->initilized) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Resume RF Rx LPF corner!!\n")); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x1e, 0xfffff, pCoexDm->btRf0x1eBackup); + } + } +} + +VOID +halbtc8723a1ant_RfShrink( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bRxRfShrinkOn + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s turn Rx RF Shrink = %s\n", + (bForceExec? "force to":""), ((bRxRfShrinkOn)? "ON":"OFF"))); + pCoexDm->bCurRfRxLpfShrink = bRxRfShrinkOn; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], bPreRfRxLpfShrink=%d, bCurRfRxLpfShrink=%d\n", + pCoexDm->bPreRfRxLpfShrink, pCoexDm->bCurRfRxLpfShrink)); + + if(pCoexDm->bPreRfRxLpfShrink == pCoexDm->bCurRfRxLpfShrink) + return; + } + halbtc8723a1ant_SetSwRfRxLpfCorner(pBtCoexist, pCoexDm->bCurRfRxLpfShrink); + + pCoexDm->bPreRfRxLpfShrink = pCoexDm->bCurRfRxLpfShrink; +} + +VOID +halbtc8723a1ant_SetSwPenaltyTxRateAdaptive( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bLowPenaltyRa + ) +{ + u1Byte tmpU1; + + tmpU1 = pBtCoexist->btc_read_1byte(pBtCoexist, 0x4fd); + tmpU1 |= BIT0; + if(bLowPenaltyRa) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Tx rate adaptive, set low penalty!!\n")); + tmpU1 &= ~BIT2; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Tx rate adaptive, set normal!!\n")); + tmpU1 |= BIT2; + } + + pBtCoexist->btc_write_1byte(pBtCoexist, 0x4fd, tmpU1); +} + +VOID +halbtc8723a1ant_LowPenaltyRa( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bLowPenaltyRa + ) +{ + return; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s turn LowPenaltyRA = %s\n", + (bForceExec? "force to":""), ((bLowPenaltyRa)? "ON":"OFF"))); + pCoexDm->bCurLowPenaltyRa = bLowPenaltyRa; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], bPreLowPenaltyRa=%d, bCurLowPenaltyRa=%d\n", + pCoexDm->bPreLowPenaltyRa, pCoexDm->bCurLowPenaltyRa)); + + if(pCoexDm->bPreLowPenaltyRa == pCoexDm->bCurLowPenaltyRa) + return; + } + halbtc8723a1ant_SetSwPenaltyTxRateAdaptive(pBtCoexist, pCoexDm->bCurLowPenaltyRa); + + pCoexDm->bPreLowPenaltyRa = pCoexDm->bCurLowPenaltyRa; +} + +VOID +halbtc8723a1ant_SetCoexTable( + IN PBTC_COEXIST pBtCoexist, + IN u4Byte val0x6c0, + IN u4Byte val0x6c8, + IN u1Byte val0x6cc + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], set coex table, set 0x6c0=0x%x\n", val0x6c0)); + pBtCoexist->btc_write_4byte(pBtCoexist, 0x6c0, val0x6c0); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], set coex table, set 0x6c8=0x%x\n", val0x6c8)); + pBtCoexist->btc_write_4byte(pBtCoexist, 0x6c8, val0x6c8); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], set coex table, set 0x6cc=0x%x\n", val0x6cc)); + pBtCoexist->btc_write_1byte(pBtCoexist, 0x6cc, val0x6cc); +} + +VOID +halbtc8723a1ant_CoexTable( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN u4Byte val0x6c0, + IN u4Byte val0x6c8, + IN u1Byte val0x6cc + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s write Coex Table 0x6c0=0x%x, 0x6c8=0x%x, 0x6cc=0x%x\n", + (bForceExec? "force to":""), val0x6c0, val0x6c8, val0x6cc)); + pCoexDm->curVal0x6c0 = val0x6c0; + pCoexDm->curVal0x6c8 = val0x6c8; + pCoexDm->curVal0x6cc = val0x6cc; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], preVal0x6c0=0x%x, preVal0x6c8=0x%x, preVal0x6cc=0x%x !!\n", + pCoexDm->preVal0x6c0, pCoexDm->preVal0x6c8, pCoexDm->preVal0x6cc)); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], curVal0x6c0=0x%x, curVal0x6c8=0x%x, curVal0x6cc=0x%x !!\n", + pCoexDm->curVal0x6c0, pCoexDm->curVal0x6c8, pCoexDm->curVal0x6cc)); + + if( (pCoexDm->preVal0x6c0 == pCoexDm->curVal0x6c0) && + (pCoexDm->preVal0x6c8 == pCoexDm->curVal0x6c8) && + (pCoexDm->preVal0x6cc == pCoexDm->curVal0x6cc) ) + return; + } + halbtc8723a1ant_SetCoexTable(pBtCoexist, val0x6c0, val0x6c8, val0x6cc); + + pCoexDm->preVal0x6c0 = pCoexDm->curVal0x6c0; + pCoexDm->preVal0x6c8 = pCoexDm->curVal0x6c8; + pCoexDm->preVal0x6cc = pCoexDm->curVal0x6cc; +} + +VOID +halbtc8723a1ant_SetFwIgnoreWlanAct( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bEnable + ) +{ + u1Byte H2C_Parameter[1] ={0}; + + if(bEnable) + { + H2C_Parameter[0] |= BIT0; // function enable + } + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], set FW for BT Ignore Wlan_Act, FW write 0x25=0x%x\n", + H2C_Parameter[0])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x25, 1, H2C_Parameter); +} + +VOID +halbtc8723a1ant_IgnoreWlanAct( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bEnable + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s turn Ignore WlanAct %s\n", + (bForceExec? "force to":""), (bEnable? "ON":"OFF"))); + pCoexDm->bCurIgnoreWlanAct = bEnable; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], bPreIgnoreWlanAct = %d, bCurIgnoreWlanAct = %d!!\n", + pCoexDm->bPreIgnoreWlanAct, pCoexDm->bCurIgnoreWlanAct)); + + if(pCoexDm->bPreIgnoreWlanAct == pCoexDm->bCurIgnoreWlanAct) + return; + } + halbtc8723a1ant_SetFwIgnoreWlanAct(pBtCoexist, bEnable); + + pCoexDm->bPreIgnoreWlanAct = pCoexDm->bCurIgnoreWlanAct; +} + +VOID +halbtc8723a1ant_SetFwPstdma( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type, + IN u1Byte byte1, + IN u1Byte byte2, + IN u1Byte byte3, + IN u1Byte byte4, + IN u1Byte byte5 + ) +{ + u1Byte H2C_Parameter[5] ={0}; + u1Byte realByte1=byte1, realByte5=byte5; + BOOLEAN bApEnable=FALSE; + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_AP_MODE_ENABLE, &bApEnable); + + // byte1[1:0] != 0 means enable pstdma + // for 2Ant bt coexist, if byte1 != 0 means enable pstdma + if(byte1) + { + if(bApEnable) + { + if(type != 5 && type != 12) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], FW for 1Ant AP mode\n")); + realByte1 &= ~BIT4; + realByte1 |= BIT5; + + realByte5 |= BIT5; + realByte5 &= ~BIT6; + } + } + } + H2C_Parameter[0] = realByte1; + H2C_Parameter[1] = byte2; + H2C_Parameter[2] = byte3; + H2C_Parameter[3] = byte4; + H2C_Parameter[4] = realByte5; + + pCoexDm->psTdmaPara[0] = realByte1; + pCoexDm->psTdmaPara[1] = byte2; + pCoexDm->psTdmaPara[2] = byte3; + pCoexDm->psTdmaPara[3] = byte4; + pCoexDm->psTdmaPara[4] = realByte5; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], FW write 0x3a(5bytes)=0x%x%08x\n", + H2C_Parameter[0], + H2C_Parameter[1]<<24|H2C_Parameter[2]<<16|H2C_Parameter[3]<<8|H2C_Parameter[4])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x3a, 5, H2C_Parameter); +} + +VOID +halbtc8723a1ant_PsTdma( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bTurnOn, + IN u1Byte type + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s turn %s PS TDMA, type=%d\n", + (bForceExec? "force to":""), (bTurnOn? "ON":"OFF"), type)); + pCoexDm->bCurPsTdmaOn = bTurnOn; + pCoexDm->curPsTdma = type; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], bPrePsTdmaOn = %d, bCurPsTdmaOn = %d!!\n", + pCoexDm->bPrePsTdmaOn, pCoexDm->bCurPsTdmaOn)); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], prePsTdma = %d, curPsTdma = %d!!\n", + pCoexDm->prePsTdma, pCoexDm->curPsTdma)); + + if( (pCoexDm->bPrePsTdmaOn == pCoexDm->bCurPsTdmaOn) && + (pCoexDm->prePsTdma == pCoexDm->curPsTdma) ) + return; + } + if(pCoexDm->bCurPsTdmaOn) + { + switch(pCoexDm->curPsTdma) + { + case 1: + default: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x13, 0x1a, 0x1a, 0x0, 0x40); + break; + case 2: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x13, 0x12, 0x12, 0x0, 0x40); + break; + case 3: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x93, 0x3f, 0x3, 0x10, 0x40); + break; + case 4: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x93, 0x15, 0x3, 0x10, 0x0); + break; + case 5: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0xa9, 0x15, 0x3, 0x35, 0xc0); + break; + + case 8: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x93, 0x25, 0x3, 0x10, 0x0); + break; + case 9: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x13, 0xa, 0xa, 0x0, 0x40); + break; + case 10: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x13, 0xa, 0xa, 0x0, 0x40); + break; + case 11: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x13, 0x5, 0x5, 0x0, 0x40); + break; + case 12: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0xa9, 0xa, 0x3, 0x15, 0xc0); + break; + + case 18: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x93, 0x25, 0x3, 0x10, 0x0); + break; + + case 20: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x13, 0x2a, 0x2a, 0x0, 0x0); + break; + case 21: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x93, 0x20, 0x3, 0x10, 0x40); + break; + case 22: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x13, 0x1a, 0x1a, 0x2, 0x40); + break; + case 23: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x13, 0x12, 0x12, 0x2, 0x40); + break; + case 24: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x13, 0xa, 0xa, 0x2, 0x40); + break; + case 25: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x13, 0x5, 0x5, 0x2, 0x40); + break; + case 26: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x93, 0x25, 0x3, 0x10, 0x0); + break; + case 27: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x13, 0x5, 0x5, 0x2, 0x40); + break; + case 28: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x3, 0x2f, 0x2f, 0x0, 0x0); + break; + + } + } + else + { + // disable PS tdma + switch(pCoexDm->curPsTdma) + { + case 8: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x8, 0x0, 0x0, 0x0, 0x0); + break; + case 0: + default: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x0, 0x0, 0x0, 0x0, 0x0); + pBtCoexist->btc_write_2byte(pBtCoexist, 0x860, 0x210); + break; + case 9: + halbtc8723a1ant_SetFwPstdma(pBtCoexist, type, 0x0, 0x0, 0x0, 0x0, 0x0); + pBtCoexist->btc_write_2byte(pBtCoexist, 0x860, 0x110); + break; + + } + } + + // update pre state + pCoexDm->bPrePsTdmaOn = pCoexDm->bCurPsTdmaOn; + pCoexDm->prePsTdma = pCoexDm->curPsTdma; +} + + +VOID +halbtc8723a1ant_CoexAllOff( + IN PBTC_COEXIST pBtCoexist + ) +{ + // fw all off + halbtc8723a1ant_IgnoreWlanAct(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 0); + + // sw all off + halbtc8723a1ant_LowPenaltyRa(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a1ant_RfShrink(pBtCoexist, NORMAL_EXEC, FALSE); + + // hw all off + halbtc8723a1ant_CoexTable(pBtCoexist, NORMAL_EXEC, 0x55555555, 0xffff, 0x3); +} + +VOID +halbtc8723a1ant_InitCoexDm( + IN PBTC_COEXIST pBtCoexist + ) +{ + // force to reset coex mechanism + halbtc8723a1ant_IgnoreWlanAct(pBtCoexist, FORCE_EXEC, FALSE); +} + +VOID +halbtc8723a1ant_BtEnableAction( + IN PBTC_COEXIST pBtCoexist + ) +{ + halbtc8723a1ant_IgnoreWlanAct(pBtCoexist, FORCE_EXEC, FALSE); +} + +VOID +halbtc8723a1ant_MonitorBtCtr( + IN PBTC_COEXIST pBtCoexist + ) +{ + u4Byte regHPTxRx, regLPTxRx, u4Tmp; + u4Byte regHPTx=0, regHPRx=0, regLPTx=0, regLPRx=0; + u1Byte u1Tmp; + + regHPTxRx = 0x770; + regLPTxRx = 0x774; + + u4Tmp = pBtCoexist->btc_read_4byte(pBtCoexist, regHPTxRx); + regHPTx = u4Tmp & MASKLWORD; + regHPRx = (u4Tmp & MASKHWORD)>>16; + + u4Tmp = pBtCoexist->btc_read_4byte(pBtCoexist, regLPTxRx); + regLPTx = u4Tmp & MASKLWORD; + regLPRx = (u4Tmp & MASKHWORD)>>16; + + pCoexSta->highPriorityTx = regHPTx; + pCoexSta->highPriorityRx = regHPRx; + pCoexSta->lowPriorityTx = regLPTx; + pCoexSta->lowPriorityRx = regLPRx; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], High Priority Tx/Rx (reg 0x%x)=0x%x(%d)/0x%x(%d)\n", + regHPTxRx, regHPTx, regHPTx, regHPRx, regHPRx)); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], Low Priority Tx/Rx (reg 0x%x)=0x%x(%d)/0x%x(%d)\n", + regLPTxRx, regLPTx, regLPTx, regLPRx, regLPRx)); + + // reset counter + pBtCoexist->btc_write_1byte(pBtCoexist, 0x76e, 0xc); +} + +VOID +halbtc8723a1ant_MonitorBtEnableDisable( + IN PBTC_COEXIST pBtCoexist + ) +{ + static BOOLEAN bPreBtDisabled=FALSE; + static u4Byte btDisableCnt=0; + BOOLEAN bBtActive=true, bBtDisabled=FALSE; + + // This function check if bt is disabled + + if( pCoexSta->highPriorityTx == 0 && + pCoexSta->highPriorityRx == 0 && + pCoexSta->lowPriorityTx == 0 && + pCoexSta->lowPriorityRx == 0) + { + bBtActive = FALSE; + } + if( pCoexSta->highPriorityTx == 0xffff && + pCoexSta->highPriorityRx == 0xffff && + pCoexSta->lowPriorityTx == 0xffff && + pCoexSta->lowPriorityRx == 0xffff) + { + bBtActive = FALSE; + } + if(bBtActive) + { + btDisableCnt = 0; + bBtDisabled = FALSE; + pBtCoexist->btc_set(pBtCoexist, BTC_SET_BL_BT_DISABLE, &bBtDisabled); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], BT is enabled !!\n")); + } + else + { + btDisableCnt++; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], bt all counters=0, %d times!!\n", + btDisableCnt)); + if(btDisableCnt >= 2) + { + bBtDisabled = true; + pBtCoexist->btc_set(pBtCoexist, BTC_SET_BL_BT_DISABLE, &bBtDisabled); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], BT is disabled !!\n")); + } + } + if(bPreBtDisabled != bBtDisabled) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], BT is from %s to %s!!\n", + (bPreBtDisabled ? "disabled":"enabled"), + (bBtDisabled ? "disabled":"enabled"))); + bPreBtDisabled = bBtDisabled; + if(!bBtDisabled) + { + halbtc8723a1ant_BtEnableAction(pBtCoexist); + } + else + { + pBtCoexist->btc_set(pBtCoexist, BTC_SET_ACT_NORMAL_LPS, NULL); + } + } +} + +VOID +halbtc8723a1ant_TdmaDurationAdjust( + IN PBTC_COEXIST pBtCoexist + ) +{ + static s4Byte up,dn,m,n,WaitCount; + s4Byte result; //0: no change, +1: increase WiFi duration, -1: decrease WiFi duration + u1Byte retryCount=0; + u1Byte btState; + BOOLEAN bScan=FALSE, bLink=FALSE, bRoam=FALSE; + u4Byte wifiBw; + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + btState = pCoexDm->btStatus; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], TdmaDurationAdjust()\n")); + if(pCoexDm->psTdmaGlobalCnt != pCoexDm->psTdmaMonitorCnt) + { + pCoexDm->psTdmaMonitorCnt = 0; + pCoexDm->psTdmaGlobalCnt = 0; + } + if(pCoexDm->psTdmaMonitorCnt == 0) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], first run BT A2DP + WiFi busy state!!\n")); + if(btState == BT_STATE_8723A_1ANT_ACL_ONLY_BUSY) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 1); + pCoexDm->psTdmaDuAdjType = 1; + } + else + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 22); + pCoexDm->psTdmaDuAdjType = 22; + } + //============ + up = 0; + dn = 0; + m = 1; + n= 3; + result = 0; + WaitCount = 0; + } + else + { + //accquire the BT TRx retry count from BT_Info byte2 + retryCount = pCoexSta->btRetryCnt; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], retryCount = %d\n", retryCount)); + result = 0; + WaitCount++; + + if(retryCount == 0) // no retry in the last 2-second duration + { + up++; + dn--; + + if (dn <= 0) + dn = 0; + + if(up >= n) // if s n 2 retry count0, hռeWiFi duration + { + WaitCount = 0; + n = 3; + up = 0; + dn = 0; + result = 1; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Increase wifi duration!!\n")); + } + } + else if (retryCount <= 3) // <=3 retry in the last 2-second duration + { + up--; + dn++; + + if (up <= 0) + up = 0; + + if (dn == 2) // if s 2 2 retry count< 3, hկWiFi duration + { + if (WaitCount <= 2) + m++; // קK@blevelӦ^ + else + m = 1; + + if ( m >= 20) //m ̤j = 20 ' ̤j120 recheckO_վ WiFi duration. + m = 20; + + n = 3*m; + up = 0; + dn = 0; + WaitCount = 0; + result = -1; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Decrease wifi duration for retryCounter<3!!\n")); + } + } + else //retry count > 3, un1 retry count > 3, hկWiFi duration + { + if (WaitCount == 1) + m++; // קK@blevelӦ^ + else + m = 1; + + if ( m >= 20) //m ̤j = 20 ' ̤j120 recheckO_վ WiFi duration. + m = 20; + + n = 3*m; + up = 0; + dn = 0; + WaitCount = 0; + result = -1; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Decrease wifi duration for retryCounter>3!!\n")); + } + + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BT TxRx counter H+L <= 1200\n")); + if(btState != BT_STATE_8723A_1ANT_ACL_ONLY_BUSY) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], NOT ACL only busy!\n")); + if(BTC_WIFI_BW_HT40 != wifiBw) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], 20MHz\n")); + if(result == -1) + { + if(pCoexDm->curPsTdma == 22) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 23); + pCoexDm->psTdmaDuAdjType = 23; + } + else if(pCoexDm->curPsTdma == 23) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 24); + pCoexDm->psTdmaDuAdjType = 24; + } + else if(pCoexDm->curPsTdma == 24) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 25); + pCoexDm->psTdmaDuAdjType = 25; + } + } + else if (result == 1) + { + if(pCoexDm->curPsTdma == 25) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 24); + pCoexDm->psTdmaDuAdjType = 24; + } + else if(pCoexDm->curPsTdma == 24) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 23); + pCoexDm->psTdmaDuAdjType = 23; + } + else if(pCoexDm->curPsTdma == 23) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 22); + pCoexDm->psTdmaDuAdjType = 22; + } + } + // error handle, if not in the following state, + // set psTdma again. + if( (pCoexDm->psTdmaDuAdjType != 22) && + (pCoexDm->psTdmaDuAdjType != 23) && + (pCoexDm->psTdmaDuAdjType != 24) && + (pCoexDm->psTdmaDuAdjType != 25) ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], duration case out of handle!!\n")); + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 23); + pCoexDm->psTdmaDuAdjType = 23; + } + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], 40MHz\n")); + if(result == -1) + { + if(pCoexDm->curPsTdma == 23) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 24); + pCoexDm->psTdmaDuAdjType = 24; + } + else if(pCoexDm->curPsTdma == 24) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 25); + pCoexDm->psTdmaDuAdjType = 25; + } + else if(pCoexDm->curPsTdma == 25) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 27); + pCoexDm->psTdmaDuAdjType = 27; + } + } + else if (result == 1) + { + if(pCoexDm->curPsTdma == 27) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 25); + pCoexDm->psTdmaDuAdjType = 25; + } + else if(pCoexDm->curPsTdma == 25) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 24); + pCoexDm->psTdmaDuAdjType = 24; + } + else if(pCoexDm->curPsTdma == 24) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 23); + pCoexDm->psTdmaDuAdjType = 23; + } + } + // error handle, if not in the following state, + // set psTdma again. + if( (pCoexDm->psTdmaDuAdjType != 23) && + (pCoexDm->psTdmaDuAdjType != 24) && + (pCoexDm->psTdmaDuAdjType != 25) && + (pCoexDm->psTdmaDuAdjType != 27) ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], duration case out of handle!!\n")); + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 24); + pCoexDm->psTdmaDuAdjType = 24; + } + } + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], ACL only busy\n")); + if (result == -1) + { + if(pCoexDm->curPsTdma == 1) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + pCoexDm->psTdmaDuAdjType = 2; + } + else if(pCoexDm->curPsTdma == 2) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 9); + pCoexDm->psTdmaDuAdjType = 9; + } + else if(pCoexDm->curPsTdma == 9) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->psTdmaDuAdjType = 11; + } + } + else if (result == 1) + { + if(pCoexDm->curPsTdma == 11) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 9); + pCoexDm->psTdmaDuAdjType = 9; + } + else if(pCoexDm->curPsTdma == 9) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + pCoexDm->psTdmaDuAdjType = 2; + } + else if(pCoexDm->curPsTdma == 2) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 1); + pCoexDm->psTdmaDuAdjType = 1; + } + } + + // error handle, if not in the following state, + // set psTdma again. + if( (pCoexDm->psTdmaDuAdjType != 1) && + (pCoexDm->psTdmaDuAdjType != 2) && + (pCoexDm->psTdmaDuAdjType != 9) && + (pCoexDm->psTdmaDuAdjType != 11) ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], duration case out of handle!!\n")); + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + pCoexDm->psTdmaDuAdjType = 2; + } + } + } + } + + // if current PsTdma not match with the recorded one (when scan, dhcp...), + // then we have to adjust it back to the previous record one. + if(pCoexDm->curPsTdma != pCoexDm->psTdmaDuAdjType) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], PsTdma type dismatch!!!, curPsTdma=%d, recordPsTdma=%d\n", + pCoexDm->curPsTdma, pCoexDm->psTdmaDuAdjType)); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_SCAN, &bScan); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_LINK, &bLink); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_ROAM, &bRoam); + + if( !bScan && !bLink && !bRoam) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, pCoexDm->psTdmaDuAdjType); + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], roaming/link/scan is under progress, will adjust next time!!!\n")); + } + } + pCoexDm->psTdmaMonitorCnt++; +} + + +VOID +halbtc8723a1ant_CoexForWifiConnect( + IN PBTC_COEXIST pBtCoexist + ) +{ + BOOLEAN bWifiConnected=FALSE, bWifiBusy=FALSE; + u1Byte btState, btInfoOriginal=0; + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_CONNECTED, &bWifiConnected); + + btState = pCoexDm->btStatus; + btInfoOriginal = pCoexSta->btInfoC2h[BT_INFO_SRC_8723A_1ANT_BT_RSP][0]; + + if(bWifiConnected) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], wifi connected!!\n")); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_BUSY, &bWifiBusy); + + if( !bWifiBusy && + ((BT_STATE_8723A_1ANT_NO_CONNECTION == btState) || + (BT_STATE_8723A_1ANT_CONNECT_IDLE == btState)) ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], [Wifi is idle] or [Bt is non connected idle or Bt is connected idle]!!\n")); + + if(BT_STATE_8723A_1ANT_NO_CONNECTION == btState) + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 9); + else if(BT_STATE_8723A_1ANT_CONNECT_IDLE == btState) + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 0); + + pBtCoexist->btc_setBbReg(pBtCoexist, 0x880, 0xff000000, 0xc0); + } + else + { + if( (BT_STATE_8723A_1ANT_SCO_ONLY_BUSY == btState) || + (BT_STATE_8723A_1ANT_ACL_SCO_BUSY == btState) || + (BT_STATE_8723A_1ANT_HID_BUSY == btState) || + (BT_STATE_8723A_1ANT_HID_SCO_BUSY == btState) ) + { + pBtCoexist->btc_setBbReg(pBtCoexist, 0x880, 0xff000000, 0x60); + } + else + { + pBtCoexist->btc_setBbReg(pBtCoexist, 0x880, 0xff000000, 0xc0); + } + switch(btState) + { + case BT_STATE_8723A_1ANT_NO_CONNECTION: + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 5); + break; + case BT_STATE_8723A_1ANT_CONNECT_IDLE: + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 12); + break; + case BT_STATE_8723A_1ANT_INQ_OR_PAG: + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 10); + break; + case BT_STATE_8723A_1ANT_SCO_ONLY_BUSY: + case BT_STATE_8723A_1ANT_ACL_SCO_BUSY: + case BT_STATE_8723A_1ANT_HID_BUSY: + case BT_STATE_8723A_1ANT_HID_SCO_BUSY: + halbtc8723a1ant_TdmaDurationAdjust(pBtCoexist); + break; + case BT_STATE_8723A_1ANT_ACL_ONLY_BUSY: + if (btInfoOriginal&BT_INFO_8723A_1ANT_B_A2DP) + { + halbtc8723a1ant_TdmaDurationAdjust(pBtCoexist); + } + else if(btInfoOriginal&BT_INFO_8723A_1ANT_B_FTP) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 1); + } + else if( (btInfoOriginal&BT_INFO_8723A_1ANT_B_A2DP) && + (btInfoOriginal&BT_INFO_8723A_1ANT_B_FTP) ) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 6); + } + else + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 1); + } + break; + default: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], error!!!, undefined case in halbtc8723a1ant_CoexForWifiConnect()!!\n")); + break; + } + } + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], wifi is disconnected!!\n")); + } + + pCoexDm->psTdmaGlobalCnt++; +} + +//============================================================ +// work around function start with wa_halbtc8723a1ant_ +//============================================================ +VOID +wa_halbtc8723a1ant_MonitorC2h( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte tmp1b=0x0; + u4Byte curC2hTotalCnt=0x0; + static u4Byte preC2hTotalCnt=0x0, sameCntPollingTime=0x0; + + curC2hTotalCnt+=pCoexSta->btInfoC2hCnt[BT_INFO_SRC_8723A_1ANT_BT_RSP]; + + if(curC2hTotalCnt == preC2hTotalCnt) + { + sameCntPollingTime++; + } + else + { + preC2hTotalCnt = curC2hTotalCnt; + sameCntPollingTime = 0; + } + + if(sameCntPollingTime >= 2) + { + tmp1b = pBtCoexist->btc_read_1byte(pBtCoexist, 0x1af); + if(tmp1b != 0x0) + { + pCoexSta->c2hHangDetectCnt++; + pBtCoexist->btc_write_1byte(pBtCoexist, 0x1af, 0x0); + } + } +} + +//============================================================ +// extern function start with EXhalbtc8723a1ant_ +//============================================================ +VOID +EXhalbtc8723a1ant_InitHwConfig( + IN PBTC_COEXIST pBtCoexist + ) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, ("[BTCoex], 1Ant Init HW Config!!\n")); + + // backup rf 0x1e value + pCoexDm->btRf0x1eBackup = + pBtCoexist->btc_get_rf_reg(pBtCoexist, BTC_RF_A, 0x1e, 0xfffff); + + pBtCoexist->btc_write_1byte(pBtCoexist, 0x40, 0x20); + + // enable counter statistics + pBtCoexist->btc_write_1byte(pBtCoexist, 0x76e, 0x4); + + // coex table + pBtCoexist->btc_write_1byte(pBtCoexist, 0x6cc, 0x0); // 1-Ant coex + pBtCoexist->btc_write_4byte(pBtCoexist, 0x6c8, 0xffff); // wifi break table + pBtCoexist->btc_write_4byte(pBtCoexist, 0x6c4, 0x55555555); //coex table + + // antenna switch control parameter + pBtCoexist->btc_write_4byte(pBtCoexist, 0x858, 0xaaaaaaaa); + + pBtCoexist->btc_write_2byte(pBtCoexist, 0x860, 0x210); //set antenna at wifi side if ANTSW is software control + pBtCoexist->btc_write_4byte(pBtCoexist, 0x870, 0x300); //SPDT(connected with TRSW) control by hardware PTA + pBtCoexist->btc_write_4byte(pBtCoexist, 0x874, 0x22804000); //ANTSW keep by GNT_BT + + // coexistence parameters + pBtCoexist->btc_write_1byte(pBtCoexist, 0x778, 0x1); // enable RTK mode PTA +} + +VOID +EXhalbtc8723a1ant_InitCoexDm( + IN PBTC_COEXIST pBtCoexist + ) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, ("[BTCoex], Coex Mechanism Init!!\n")); + + halbtc8723a1ant_InitCoexDm(pBtCoexist); +} + +VOID +EXhalbtc8723a1ant_DisplayCoexInfo( + IN PBTC_COEXIST pBtCoexist + ) +{ + struct btc_board_info * pBoardInfo=&pBtCoexist->board_info; + PBTC_STACK_INFO pStackInfo=&pBtCoexist->stack_info; + pu1Byte cliBuf=pBtCoexist->cli_buf; + u1Byte u1Tmp[4], i, btInfoExt, psTdmaCase=0; + u4Byte u4Tmp[4]; + BOOLEAN bRoam=FALSE, bScan=FALSE, bLink=FALSE, bWifiUnder5G=FALSE; + BOOLEAN bBtHsOn=FALSE, bWifiBusy=FALSE; + s4Byte wifiRssi=0, btHsRssi=0; + u4Byte wifiBw, wifiTrafficDir; + u1Byte wifiDot11Chnl, wifiHsChnl; + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n ============[BT Coexist info]============"); + CL_PRINTF(cliBuf); + + if(!pBoardInfo->bt_exist) + { + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n BT not exists !!!"); + CL_PRINTF(cliBuf); + return; + } + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d ", "Ant PG number/ Ant mechanism:", \ + pBoardInfo->pg_ant_num, pBoardInfo->btdm_ant_num); + CL_PRINTF(cliBuf); + + if(pBtCoexist->manual_control) + { + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "[Action Manual control]!!"); + CL_PRINTF(cliBuf); + } + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s / %d", "BT stack/ hci ext ver", \ + ((pStackInfo->bProfileNotified)? "Yes":"No"), pStackInfo->hciVersion); + CL_PRINTF(cliBuf); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_HS_OPERATION, &bBtHsOn); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U1_WIFI_DOT11_CHNL, &wifiDot11Chnl); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U1_WIFI_HS_CHNL, &wifiHsChnl); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d(%d)", "Dot11 channel / HsChnl(HsMode)", \ + wifiDot11Chnl, wifiHsChnl, bBtHsOn); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x ", "H2C Wifi inform bt chnl Info", \ + pCoexDm->wifiChnlInfo[0], pCoexDm->wifiChnlInfo[1], + pCoexDm->wifiChnlInfo[2]); + CL_PRINTF(cliBuf); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_S4_WIFI_RSSI, &wifiRssi); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_S4_HS_RSSI, &btHsRssi); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", "Wifi rssi/ HS rssi", \ + wifiRssi, btHsRssi); + CL_PRINTF(cliBuf); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_SCAN, &bScan); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_LINK, &bLink); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_ROAM, &bRoam); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d ", "Wifi bLink/ bRoam/ bScan", \ + bLink, bRoam, bScan); + CL_PRINTF(cliBuf); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_UNDER_5G, &bWifiUnder5G); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_BUSY, &bWifiBusy); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_TRAFFIC_DIRECTION, &wifiTrafficDir); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s / %s/ %s ", "Wifi status", \ + (bWifiUnder5G? "5G":"2.4G"), + ((BTC_WIFI_BW_LEGACY==wifiBw)? "Legacy": (((BTC_WIFI_BW_HT40==wifiBw)? "HT40":"HT20"))), + ((!bWifiBusy)? "idle": ((BTC_WIFI_TRAFFIC_TX==wifiTrafficDir)? "uplink":"downlink"))); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = [%s/ %d/ %d] ", "BT [status/ rssi/ retryCnt]", \ + ((pCoexSta->bC2hBtInquiryPage)?("inquiry/page scan"):((BT_8723A_1ANT_BT_STATUS_IDLE == pCoexDm->btStatus)? "idle":( (BT_8723A_1ANT_BT_STATUS_CONNECTED_IDLE == pCoexDm->btStatus)? "connected-idle":"busy"))), + pCoexSta->btRssi, pCoexSta->btRetryCnt); + CL_PRINTF(cliBuf); + + if(pStackInfo->bProfileNotified) + { + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d / %d / %d", "SCO/HID/PAN/A2DP", \ + pStackInfo->bScoExist, pStackInfo->bHidExist, pStackInfo->bPanExist, pStackInfo->bA2dpExist); + CL_PRINTF(cliBuf); + + pBtCoexist->btc_disp_dbg_msg(pBtCoexist, BTC_DBG_DISP_BT_LINK_INFO); + } + + btInfoExt = pCoexSta->btInfoExt; + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s", "BT Info A2DP rate", \ + (btInfoExt&BIT0)? "Basic rate":"EDR rate"); + CL_PRINTF(cliBuf); + + for(i=0; ibtInfoC2hCnt[i]) + { + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x %02x %02x %02x %02x(%d)", GLBtInfoSrc8723a1Ant[i], \ + pCoexSta->btInfoC2h[i][0], pCoexSta->btInfoC2h[i][1], + pCoexSta->btInfoC2h[i][2], pCoexSta->btInfoC2h[i][3], + pCoexSta->btInfoC2h[i][4], pCoexSta->btInfoC2h[i][5], + pCoexSta->btInfoC2h[i][6], pCoexSta->btInfoC2hCnt[i]); + CL_PRINTF(cliBuf); + } + } + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d", "write 0x1af=0x0 num", \ + pCoexSta->c2hHangDetectCnt); + CL_PRINTF(cliBuf); + + // Sw mechanism + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "============[Sw mechanism]============"); + CL_PRINTF(cliBuf); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d", "SM1[ShRf/ LpRA/ LimDig]", \ + pCoexDm->bCurRfRxLpfShrink, pCoexDm->bCurLowPenaltyRa, pCoexDm->limited_dig); + CL_PRINTF(cliBuf); + + // Fw mechanism + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "============[Fw mechanism]============"); + CL_PRINTF(cliBuf); + + if(!pBtCoexist->manual_control) + { + psTdmaCase = pCoexDm->curPsTdma; + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x %02x %02x case-%d", "PS TDMA", \ + pCoexDm->psTdmaPara[0], pCoexDm->psTdmaPara[1], + pCoexDm->psTdmaPara[2], pCoexDm->psTdmaPara[3], + pCoexDm->psTdmaPara[4], psTdmaCase); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d ", "IgnWlanAct", \ + pCoexDm->bCurIgnoreWlanAct); + CL_PRINTF(cliBuf); + } + + // Hw setting + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "============[Hw setting]============"); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "RF-A, 0x1e initVal", \ + pCoexDm->btRf0x1eBackup); + CL_PRINTF(cliBuf); + + u1Tmp[0] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x778); + u1Tmp[1] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x783); + u1Tmp[2] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x796); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", "0x778/ 0x783/ 0x796", \ + u1Tmp[0], u1Tmp[1], u1Tmp[2]); + CL_PRINTF(cliBuf); + + u4Tmp[0] = pBtCoexist->btc_read_4byte(pBtCoexist, 0x880); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x880", \ + u4Tmp[0]); + CL_PRINTF(cliBuf); + + u1Tmp[0] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x40); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x40", \ + u1Tmp[0]); + CL_PRINTF(cliBuf); + + u4Tmp[0] = pBtCoexist->btc_read_4byte(pBtCoexist, 0x550); + u1Tmp[0] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x522); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", "0x550(bcn ctrl)/0x522", \ + u4Tmp[0], u1Tmp[0]); + CL_PRINTF(cliBuf); + + u4Tmp[0] = pBtCoexist->btc_read_4byte(pBtCoexist, 0x484); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x484(rate adaptive)", \ + u4Tmp[0]); + CL_PRINTF(cliBuf); + + u4Tmp[0] = pBtCoexist->btc_read_4byte(pBtCoexist, 0xc50); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0xc50(dig)", \ + u4Tmp[0]); + CL_PRINTF(cliBuf); + + u4Tmp[0] = pBtCoexist->btc_read_4byte(pBtCoexist, 0xda0); + u4Tmp[1] = pBtCoexist->btc_read_4byte(pBtCoexist, 0xda4); + u4Tmp[2] = pBtCoexist->btc_read_4byte(pBtCoexist, 0xda8); + u4Tmp[3] = pBtCoexist->btc_read_4byte(pBtCoexist, 0xdac); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", "0xda0/0xda4/0xda8/0xdac(FA cnt)", \ + u4Tmp[0], u4Tmp[1], u4Tmp[2], u4Tmp[3]); + CL_PRINTF(cliBuf); + + u4Tmp[0] = pBtCoexist->btc_read_4byte(pBtCoexist, 0x6c0); + u4Tmp[1] = pBtCoexist->btc_read_4byte(pBtCoexist, 0x6c4); + u4Tmp[2] = pBtCoexist->btc_read_4byte(pBtCoexist, 0x6c8); + u1Tmp[0] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x6cc); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", "0x6c0/0x6c4/0x6c8/0x6cc(coexTable)", \ + u4Tmp[0], u4Tmp[1], u4Tmp[2], u1Tmp[0]); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", "0x770 (hp rx[31:16]/tx[15:0])", \ + pCoexSta->highPriorityRx, pCoexSta->highPriorityTx); + CL_PRINTF(cliBuf); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", "0x774(lp rx[31:16]/tx[15:0])", \ + pCoexSta->lowPriorityRx, pCoexSta->lowPriorityTx); + CL_PRINTF(cliBuf); + + // Tx mgnt queue hang or not, 0x41b should = 0xf, ex: 0xd ==>hang + u1Tmp[0] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x41b); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x41b (mgntQ hang chk == 0xf)", \ + u1Tmp[0]); + CL_PRINTF(cliBuf); + + pBtCoexist->btc_disp_dbg_msg(pBtCoexist, BTC_DBG_DISP_COEX_STATISTICS); +} + + +VOID +EXhalbtc8723a1ant_IpsNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + if(BTC_IPS_ENTER == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], IPS ENTER notify\n")); + halbtc8723a1ant_CoexAllOff(pBtCoexist); + } + else if(BTC_IPS_LEAVE == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], IPS LEAVE notify\n")); + //halbtc8723a1ant_InitCoexDm(pBtCoexist); + } +} + +VOID +EXhalbtc8723a1ant_LpsNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + if(BTC_LPS_ENABLE == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], LPS ENABLE notify\n")); + } + else if(BTC_LPS_DISABLE == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], LPS DISABLE notify\n")); + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 8); + } +} + +VOID +EXhalbtc8723a1ant_ScanNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + BOOLEAN bWifiConnected=FALSE; + + halbtc8723a1ant_NotifyFwScan(pBtCoexist, type); + + if(pBtCoexist->btInfo.bBtDisabled) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 9); + } + else + { + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_CONNECTED, &bWifiConnected); + if(BTC_SCAN_START == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], SCAN START notify\n")); + if(!bWifiConnected) // non-connected scan + { + //set 0x550[3]=1 before PsTdma + halbtc8723a1ant_Reg0x550Bit3(pBtCoexist, true); + } + + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 4); + } + else if(BTC_SCAN_FINISH == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], SCAN FINISH notify\n")); + if(!bWifiConnected) // non-connected scan + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 0); + } + else + { + halbtc8723a1ant_CoexForWifiConnect(pBtCoexist); + } + } + } +} + +VOID +EXhalbtc8723a1ant_ConnectNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + BOOLEAN bWifiConnected=FALSE; + + if(pBtCoexist->btInfo.bBtDisabled) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 9); + } + else + { + if(BTC_ASSOCIATE_START == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], CONNECT START notify\n")); + //set 0x550[3]=1 before PsTdma + halbtc8723a1ant_Reg0x550Bit3(pBtCoexist, true); + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 8); // extend wifi slot + } + else if(BTC_ASSOCIATE_FINISH == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], CONNECT FINISH notify\n")); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_CONNECTED, &bWifiConnected); + if(!bWifiConnected) // non-connected scan + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 0); + } + else + { + halbtc8723a1ant_CoexForWifiConnect(pBtCoexist); + } + } + } +} + +VOID +EXhalbtc8723a1ant_MediaStatusNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + if(BTC_MEDIA_CONNECT == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], MEDIA connect notify\n")); + } + else + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], MEDIA disconnect notify\n")); + } +} + +VOID +EXhalbtc8723a1ant_SpecialPacketNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + if(type == BTC_PACKET_DHCP) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], DHCP Packet notify\n")); + if(pBtCoexist->btInfo.bBtDisabled) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 9); + } + else + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 18); + } + } +} + +VOID +EXhalbtc8723a1ant_BtInfoNotify( + IN PBTC_COEXIST pBtCoexist, + IN pu1Byte tmpBuf, + IN u1Byte length + ) +{ + u1Byte btInfo=0; + u1Byte i, rspSource=0; + BOOLEAN bBtHsOn=FALSE, bBtBusy=FALSE, bForceLps=FALSE; + + pCoexSta->bC2hBtInfoReqSent = FALSE; + + rspSource = BT_INFO_SRC_8723A_1ANT_BT_RSP; + pCoexSta->btInfoC2hCnt[rspSource]++; + + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], Bt info[%d], length=%d, hex data=[", rspSource, length)); + for(i=0; ibtInfoC2h[rspSource][i] = tmpBuf[i]; + if(i == 0) + btInfo = tmpBuf[i]; + if(i == length-1) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("0x%02x]\n", tmpBuf[i])); + } + else + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("0x%02x, ", tmpBuf[i])); + } + } + + if(BT_INFO_SRC_8723A_1ANT_WIFI_FW != rspSource) + { + pCoexSta->btRetryCnt = + pCoexSta->btInfoC2h[rspSource][1]; + + pCoexSta->btRssi = + pCoexSta->btInfoC2h[rspSource][2]*2+10; + + pCoexSta->btInfoExt = + pCoexSta->btInfoC2h[rspSource][3]; + } + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_HS_OPERATION, &bBtHsOn); + // check BIT2 first ==> check if bt is under inquiry or page scan + if(btInfo & BT_INFO_8723A_1ANT_B_INQ_PAGE) + { + pCoexSta->bC2hBtInquiryPage = true; + } + else + { + pCoexSta->bC2hBtInquiryPage = FALSE; + } + btInfo &= ~BIT2; + if(!(btInfo & BIT0)) + { + pCoexDm->btStatus = BT_STATE_8723A_1ANT_NO_CONNECTION; + bForceLps = FALSE; + } + else + { + bForceLps = true; + if(btInfo == 0x1) + { + pCoexDm->btStatus = BT_STATE_8723A_1ANT_CONNECT_IDLE; + } + else if(btInfo == 0x9) + { + pCoexDm->btStatus = BT_STATE_8723A_1ANT_ACL_ONLY_BUSY; + bBtBusy = true; + } + else if(btInfo == 0x13) + { + pCoexDm->btStatus = BT_STATE_8723A_1ANT_SCO_ONLY_BUSY; + bBtBusy = true; + } + else if(btInfo == 0x1b) + { + pCoexDm->btStatus = BT_STATE_8723A_1ANT_ACL_SCO_BUSY; + bBtBusy = true; + } + else if(btInfo == 0x29) + { + pCoexDm->btStatus = BT_STATE_8723A_1ANT_HID_BUSY; + bBtBusy = true; + } + else if(btInfo == 0x3b) + { + pCoexDm->btStatus = BT_STATE_8723A_1ANT_HID_SCO_BUSY; + bBtBusy = true; + } + } + pBtCoexist->btc_set(pBtCoexist, BTC_SET_BL_BT_TRAFFIC_BUSY, &bBtBusy); + pBtCoexist->btc_set(pBtCoexist, BTC_SET_BL_BT_LIMITED_DIG, &bBtBusy); + if(bForceLps) + pBtCoexist->btc_set(pBtCoexist, BTC_SET_ACT_ENTER_LPS, NULL); + else + pBtCoexist->btc_set(pBtCoexist, BTC_SET_ACT_NORMAL_LPS, NULL); + + if( (BT_STATE_8723A_1ANT_NO_CONNECTION == pCoexDm->btStatus) || + (BT_STATE_8723A_1ANT_CONNECT_IDLE == pCoexDm->btStatus) ) + { + if(pCoexSta->bC2hBtInquiryPage) + pCoexDm->btStatus = BT_STATE_8723A_1ANT_INQ_OR_PAG; + } +} + +VOID +EXhalbtc8723a1ant_StackOperationNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + if(BTC_STACK_OP_INQ_PAGE_PAIR_START == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], StackOP Inquiry/page/pair start notify\n")); + } + else if(BTC_STACK_OP_INQ_PAGE_PAIR_FINISH == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], StackOP Inquiry/page/pair finish notify\n")); + } +} + +VOID +EXhalbtc8723a1ant_HaltNotify( + IN PBTC_COEXIST pBtCoexist + ) +{ + halbtc8723a1ant_PsTdma(pBtCoexist, FORCE_EXEC, FALSE, 0); + + halbtc8723a1ant_LowPenaltyRa(pBtCoexist, FORCE_EXEC, FALSE); + halbtc8723a1ant_RfShrink(pBtCoexist, FORCE_EXEC, FALSE); + + halbtc8723a1ant_IgnoreWlanAct(pBtCoexist, FORCE_EXEC, true); + EXhalbtc8723a1ant_MediaStatusNotify(pBtCoexist, BTC_MEDIA_DISCONNECT); +} + +VOID +EXhalbtc8723a1ant_Periodical( + IN PBTC_COEXIST pBtCoexist + ) +{ + BOOLEAN bScan=FALSE, bLink=FALSE, bRoam=FALSE, bWifiConnected=FALSE; + + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], 1Ant Periodical!!\n")); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_SCAN, &bScan); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_LINK, &bLink); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_ROAM, &bRoam); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_CONNECTED, &bWifiConnected); + + // work around for c2h hang + wa_halbtc8723a1ant_MonitorC2h(pBtCoexist); + + halbtc8723a1ant_QueryBtInfo(pBtCoexist); + halbtc8723a1ant_MonitorBtCtr(pBtCoexist); + halbtc8723a1ant_MonitorBtEnableDisable(pBtCoexist); + + + if(bScan) + return; + if(bLink) + return; + + if(bWifiConnected) + { + if(pBtCoexist->btInfo.bBtDisabled) + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 9); + + halbtc8723a1ant_LowPenaltyRa(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a1ant_RfShrink(pBtCoexist, NORMAL_EXEC, FALSE); + } + else + { + halbtc8723a1ant_LowPenaltyRa(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a1ant_RfShrink(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a1ant_CoexForWifiConnect(pBtCoexist); + } + } + else + { + halbtc8723a1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 0); + + halbtc8723a1ant_LowPenaltyRa(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a1ant_RfShrink(pBtCoexist, NORMAL_EXEC, FALSE); + } +} + + +#endif + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/habtc8723a1ant.h +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/habtc8723a1ant.h @@ -0,0 +1,176 @@ +//=========================================== +// The following is for 8723A 1Ant BT Co-exist definition +//=========================================== +#define BT_INFO_8723A_1ANT_B_FTP BIT7 +#define BT_INFO_8723A_1ANT_B_A2DP BIT6 +#define BT_INFO_8723A_1ANT_B_HID BIT5 +#define BT_INFO_8723A_1ANT_B_SCO_BUSY BIT4 +#define BT_INFO_8723A_1ANT_B_ACL_BUSY BIT3 +#define BT_INFO_8723A_1ANT_B_INQ_PAGE BIT2 +#define BT_INFO_8723A_1ANT_B_SCO_ESCO BIT1 +#define BT_INFO_8723A_1ANT_B_CONNECTION BIT0 + +typedef enum _BT_STATE_8723A_1ANT{ + BT_STATE_8723A_1ANT_DISABLED = 0, + BT_STATE_8723A_1ANT_NO_CONNECTION = 1, + BT_STATE_8723A_1ANT_CONNECT_IDLE = 2, + BT_STATE_8723A_1ANT_INQ_OR_PAG = 3, + BT_STATE_8723A_1ANT_ACL_ONLY_BUSY = 4, + BT_STATE_8723A_1ANT_SCO_ONLY_BUSY = 5, + BT_STATE_8723A_1ANT_ACL_SCO_BUSY = 6, + BT_STATE_8723A_1ANT_HID_BUSY = 7, + BT_STATE_8723A_1ANT_HID_SCO_BUSY = 8, + BT_STATE_8723A_1ANT_MAX +}BT_STATE_8723A_1ANT, *PBT_STATE_8723A_1ANT; + +#define BTC_RSSI_COEX_THRESH_TOL_8723A_1ANT 2 + +typedef enum _BT_INFO_SRC_8723A_1ANT{ + BT_INFO_SRC_8723A_1ANT_WIFI_FW = 0x0, + BT_INFO_SRC_8723A_1ANT_BT_RSP = 0x1, + BT_INFO_SRC_8723A_1ANT_BT_ACTIVE_SEND = 0x2, + BT_INFO_SRC_8723A_1ANT_MAX +}BT_INFO_SRC_8723A_1ANT,*PBT_INFO_SRC_8723A_1ANT; + +typedef enum _BT_8723A_1ANT_BT_STATUS{ + BT_8723A_1ANT_BT_STATUS_IDLE = 0x0, + BT_8723A_1ANT_BT_STATUS_CONNECTED_IDLE = 0x1, + BT_8723A_1ANT_BT_STATUS_NON_IDLE = 0x2, + BT_8723A_1ANT_BT_STATUS_MAX +}BT_8723A_1ANT_BT_STATUS,*PBT_8723A_1ANT_BT_STATUS; + +typedef enum _BT_8723A_1ANT_COEX_ALGO{ + BT_8723A_1ANT_COEX_ALGO_UNDEFINED = 0x0, + BT_8723A_1ANT_COEX_ALGO_SCO = 0x1, + BT_8723A_1ANT_COEX_ALGO_HID = 0x2, + BT_8723A_1ANT_COEX_ALGO_A2DP = 0x3, + BT_8723A_1ANT_COEX_ALGO_PANEDR = 0x4, + BT_8723A_1ANT_COEX_ALGO_PANHS = 0x5, + BT_8723A_1ANT_COEX_ALGO_PANEDR_A2DP = 0x6, + BT_8723A_1ANT_COEX_ALGO_PANEDR_HID = 0x7, + BT_8723A_1ANT_COEX_ALGO_HID_A2DP_PANEDR = 0x8, + BT_8723A_1ANT_COEX_ALGO_HID_A2DP = 0x9, + BT_8723A_1ANT_COEX_ALGO_MAX +}BT_8723A_1ANT_COEX_ALGO,*PBT_8723A_1ANT_COEX_ALGO; + +typedef struct _COEX_DM_8723A_1ANT{ + // fw mechanism + BOOLEAN bCurIgnoreWlanAct; + BOOLEAN bPreIgnoreWlanAct; + u1Byte prePsTdma; + u1Byte curPsTdma; + u1Byte psTdmaPara[5]; + u1Byte psTdmaDuAdjType; + u4Byte psTdmaMonitorCnt; + u4Byte psTdmaGlobalCnt; + BOOLEAN bResetTdmaAdjust; + BOOLEAN bPrePsTdmaOn; + BOOLEAN bCurPsTdmaOn; + + // sw mechanism + BOOLEAN bPreRfRxLpfShrink; + BOOLEAN bCurRfRxLpfShrink; + u4Byte btRf0x1eBackup; + BOOLEAN bPreLowPenaltyRa; + BOOLEAN bCurLowPenaltyRa; + u4Byte preVal0x6c0; + u4Byte curVal0x6c0; + u4Byte preVal0x6c8; + u4Byte curVal0x6c8; + u1Byte preVal0x6cc; + u1Byte curVal0x6cc; + BOOLEAN limited_dig; + + // algorithm related + u1Byte preAlgorithm; + u1Byte curAlgorithm; + u1Byte btStatus; + u1Byte wifiChnlInfo[3]; +} COEX_DM_8723A_1ANT, *PCOEX_DM_8723A_1ANT; + +typedef struct _COEX_STA_8723A_1ANT{ + u4Byte highPriorityTx; + u4Byte highPriorityRx; + u4Byte lowPriorityTx; + u4Byte lowPriorityRx; + u1Byte btRssi; + u1Byte preBtRssiState; + u1Byte preBtRssiState1; + u1Byte preWifiRssiState[4]; + BOOLEAN bC2hBtInfoReqSent; + u1Byte btInfoC2h[BT_INFO_SRC_8723A_1ANT_MAX][10]; + u4Byte btInfoC2hCnt[BT_INFO_SRC_8723A_1ANT_MAX]; + BOOLEAN bC2hBtInquiryPage; + u1Byte btRetryCnt; + u1Byte btInfoExt; + //BOOLEAN bHoldForStackOperation; + //u1Byte bHoldPeriodCnt; + // this is for c2h hang work-around + u4Byte c2hHangDetectCnt; +}COEX_STA_8723A_1ANT, *PCOEX_STA_8723A_1ANT; + +//=========================================== +// The following is interface which will notify coex module. +//=========================================== +VOID +EXhalbtc8723a1ant_InitHwConfig( + IN PBTC_COEXIST pBtCoexist + ); +VOID +EXhalbtc8723a1ant_InitCoexDm( + IN PBTC_COEXIST pBtCoexist + ); +VOID +EXhalbtc8723a1ant_IpsNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8723a1ant_LpsNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8723a1ant_ScanNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8723a1ant_ConnectNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8723a1ant_MediaStatusNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8723a1ant_SpecialPacketNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8723a1ant_BtInfoNotify( + IN PBTC_COEXIST pBtCoexist, + IN pu1Byte tmpBuf, + IN u1Byte length + ); +VOID +EXhalbtc8723a1ant_StackOperationNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8723a1ant_HaltNotify( + IN PBTC_COEXIST pBtCoexist + ); +VOID +EXhalbtc8723a1ant_Periodical( + IN PBTC_COEXIST pBtCoexist + ); +VOID +EXhalbtc8723a1ant_DisplayCoexInfo( + IN PBTC_COEXIST pBtCoexist + ); + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/halbt_precomp.h +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/halbt_precomp.h @@ -0,0 +1,99 @@ +/****************************************************************************** + * + * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * + ******************************************************************************/ +#ifndef __HALBT_PRECOMP_H__ +#define __HALBT_PRECOMP_H__ +/************************************************************* + * include files + *************************************************************/ +#include "../wifi.h" +#include "../efuse.h" +#include "../base.h" +#include "../regd.h" +#include "../cam.h" +#include "../ps.h" +#include "../pci.h" +#include "../rtl8821ae/reg.h" +#include "../rtl8821ae/def.h" +#include "../rtl8821ae/phy.h" +#include "../rtl8821ae/dm.h" +#include "../rtl8821ae/fw.h" +#include "../rtl8821ae/led.h" +#include "../rtl8821ae/hw.h" +#include "../rtl8821ae/pwrseqcmd.h" +#include "../rtl8821ae/pwrseq.h" + +#include "halbtcoutsrc.h" + + +#include "halbtc8192e2ant.h" +#include "halbtc8723b1ant.h" +#include "halbtc8723b2ant.h" + + + +#define GetDefaultAdapter(padapter) padapter + + +#define BIT0 0x00000001 +#define BIT1 0x00000002 +#define BIT2 0x00000004 +#define BIT3 0x00000008 +#define BIT4 0x00000010 +#define BIT5 0x00000020 +#define BIT6 0x00000040 +#define BIT7 0x00000080 +#define BIT8 0x00000100 +#define BIT9 0x00000200 +#define BIT10 0x00000400 +#define BIT11 0x00000800 +#define BIT12 0x00001000 +#define BIT13 0x00002000 +#define BIT14 0x00004000 +#define BIT15 0x00008000 +#define BIT16 0x00010000 +#define BIT17 0x00020000 +#define BIT18 0x00040000 +#define BIT19 0x00080000 +#define BIT20 0x00100000 +#define BIT21 0x00200000 +#define BIT22 0x00400000 +#define BIT23 0x00800000 +#define BIT24 0x01000000 +#define BIT25 0x02000000 +#define BIT26 0x04000000 +#define BIT27 0x08000000 +#define BIT28 0x10000000 +#define BIT29 0x20000000 +#define BIT30 0x40000000 +#define BIT31 0x80000000 + +#define MASKBYTE0 0xff +#define MASKBYTE1 0xff00 +#define MASKBYTE2 0xff0000 +#define MASKBYTE3 0xff000000 +#define MASKHWORD 0xffff0000 +#define MASKLWORD 0x0000ffff +#define MASKDWORD 0xffffffff +#define MASK12BITS 0xfff +#define MASKH4BITS 0xf0000000 +#define MASKOFDM_D 0xffc00000 +#define MASKCCK 0x3f3f3f3f + +#endif /* __HALBT_PRECOMP_H__ */ --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/halbtc8192e1ant.c +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/halbtc8192e1ant.c @@ -0,0 +1,3891 @@ +//============================================================ +// Description: +// +// This file is for 8192e1ant Co-exist mechanism +// +// History +// 2012/11/15 Cosa first check in. +// +//============================================================ + +//============================================================ +// include files +//============================================================ +#include "Mp_Precomp.h" +#if(BT_30_SUPPORT == 1) +//============================================================ +// Global variables, these are static variables +//============================================================ +static COEX_DM_8192E_1ANT GLCoexDm8192e1Ant; +static PCOEX_DM_8192E_1ANT pCoexDm=&GLCoexDm8192e1Ant; +static COEX_STA_8192E_1ANT GLCoexSta8192e1Ant; +static PCOEX_STA_8192E_1ANT pCoexSta=&GLCoexSta8192e1Ant; + +const char *const GLBtInfoSrc8192e1Ant[]={ + "BT Info[wifi fw]", + "BT Info[bt rsp]", + "BT Info[bt auto report]", +}; + +u4Byte GLCoexVerDate8192e1Ant=20130729; +u4Byte GLCoexVer8192e1Ant=0x10; + +//============================================================ +// local function proto type if needed +//============================================================ +//============================================================ +// local function start with halbtc8192e1ant_ +//============================================================ +u1Byte +halbtc8192e1ant_BtRssiState( + u1Byte levelNum, + u1Byte rssiThresh, + u1Byte rssiThresh1 + ) +{ + s4Byte btRssi=0; + u1Byte btRssiState=pCoexSta->preBtRssiState; + + btRssi = pCoexSta->btRssi; + + if(levelNum == 2) + { + if( (pCoexSta->preBtRssiState == BTC_RSSI_STATE_LOW) || + (pCoexSta->preBtRssiState == BTC_RSSI_STATE_STAY_LOW)) + { + if(btRssi >= (rssiThresh+BTC_RSSI_COEX_THRESH_TOL_8192E_1ANT)) + { + btRssiState = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state switch to High\n")); + } + else + { + btRssiState = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state stay at Low\n")); + } + } + else + { + if(btRssi < rssiThresh) + { + btRssiState = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state switch to Low\n")); + } + else + { + btRssiState = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state stay at High\n")); + } + } + } + else if(levelNum == 3) + { + if(rssiThresh > rssiThresh1) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi thresh error!!\n")); + return pCoexSta->preBtRssiState; + } + + if( (pCoexSta->preBtRssiState == BTC_RSSI_STATE_LOW) || + (pCoexSta->preBtRssiState == BTC_RSSI_STATE_STAY_LOW)) + { + if(btRssi >= (rssiThresh+BTC_RSSI_COEX_THRESH_TOL_8192E_1ANT)) + { + btRssiState = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state switch to Medium\n")); + } + else + { + btRssiState = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state stay at Low\n")); + } + } + else if( (pCoexSta->preBtRssiState == BTC_RSSI_STATE_MEDIUM) || + (pCoexSta->preBtRssiState == BTC_RSSI_STATE_STAY_MEDIUM)) + { + if(btRssi >= (rssiThresh1+BTC_RSSI_COEX_THRESH_TOL_8192E_1ANT)) + { + btRssiState = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state switch to High\n")); + } + else if(btRssi < rssiThresh) + { + btRssiState = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state switch to Low\n")); + } + else + { + btRssiState = BTC_RSSI_STATE_STAY_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state stay at Medium\n")); + } + } + else + { + if(btRssi < rssiThresh1) + { + btRssiState = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state switch to Medium\n")); + } + else + { + btRssiState = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state stay at High\n")); + } + } + } + + pCoexSta->preBtRssiState = btRssiState; + + return btRssiState; +} + +u1Byte +halbtc8192e1ant_WifiRssiState( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte index, + IN u1Byte levelNum, + IN u1Byte rssiThresh, + IN u1Byte rssiThresh1 + ) +{ + s4Byte wifiRssi=0; + u1Byte wifiRssiState=pCoexSta->preWifiRssiState[index]; + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_S4_WIFI_RSSI, &wifiRssi); + + if(levelNum == 2) + { + if( (pCoexSta->preWifiRssiState[index] == BTC_RSSI_STATE_LOW) || + (pCoexSta->preWifiRssiState[index] == BTC_RSSI_STATE_STAY_LOW)) + { + if(wifiRssi >= (rssiThresh+BTC_RSSI_COEX_THRESH_TOL_8192E_1ANT)) + { + wifiRssiState = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state switch to High\n")); + } + else + { + wifiRssiState = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state stay at Low\n")); + } + } + else + { + if(wifiRssi < rssiThresh) + { + wifiRssiState = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state switch to Low\n")); + } + else + { + wifiRssiState = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state stay at High\n")); + } + } + } + else if(levelNum == 3) + { + if(rssiThresh > rssiThresh1) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI thresh error!!\n")); + return pCoexSta->preWifiRssiState[index]; + } + + if( (pCoexSta->preWifiRssiState[index] == BTC_RSSI_STATE_LOW) || + (pCoexSta->preWifiRssiState[index] == BTC_RSSI_STATE_STAY_LOW)) + { + if(wifiRssi >= (rssiThresh+BTC_RSSI_COEX_THRESH_TOL_8192E_1ANT)) + { + wifiRssiState = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state switch to Medium\n")); + } + else + { + wifiRssiState = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state stay at Low\n")); + } + } + else if( (pCoexSta->preWifiRssiState[index] == BTC_RSSI_STATE_MEDIUM) || + (pCoexSta->preWifiRssiState[index] == BTC_RSSI_STATE_STAY_MEDIUM)) + { + if(wifiRssi >= (rssiThresh1+BTC_RSSI_COEX_THRESH_TOL_8192E_1ANT)) + { + wifiRssiState = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state switch to High\n")); + } + else if(wifiRssi < rssiThresh) + { + wifiRssiState = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state switch to Low\n")); + } + else + { + wifiRssiState = BTC_RSSI_STATE_STAY_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state stay at Medium\n")); + } + } + else + { + if(wifiRssi < rssiThresh1) + { + wifiRssiState = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state switch to Medium\n")); + } + else + { + wifiRssiState = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state stay at High\n")); + } + } + } + + pCoexSta->preWifiRssiState[index] = wifiRssiState; + + return wifiRssiState; +} + +VOID +halbtc8192e1ant_Updatera_mask( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN u1Byte type, + IN u4Byte rateMask + ) +{ + if(BTC_RATE_DISABLE == type) + { + pCoexDm->curra_mask |= rateMask; // disable rate + } + else if(BTC_RATE_ENABLE == type) + { + pCoexDm->curra_mask &= ~rateMask; // enable rate + } + + if( bForceExec || (pCoexDm->prera_mask != pCoexDm->curra_mask)) + { + pBtCoexist->btc_set(pBtCoexist, BTC_SET_ACT_UPDATE_ra_mask, &pCoexDm->curra_mask); + } + pCoexDm->prera_mask = pCoexDm->curra_mask; +} + +VOID +halbtc8192e1ant_MonitorBtCtr( + IN PBTC_COEXIST pBtCoexist + ) +{ + u4Byte regHPTxRx, regLPTxRx, u4Tmp; + u4Byte regHPTx=0, regHPRx=0, regLPTx=0, regLPRx=0; + u1Byte u1Tmp; + + regHPTxRx = 0x770; + regLPTxRx = 0x774; + + u4Tmp = pBtCoexist->btc_read_4byte(pBtCoexist, regHPTxRx); + regHPTx = u4Tmp & MASKLWORD; + regHPRx = (u4Tmp & MASKHWORD)>>16; + + u4Tmp = pBtCoexist->btc_read_4byte(pBtCoexist, regLPTxRx); + regLPTx = u4Tmp & MASKLWORD; + regLPRx = (u4Tmp & MASKHWORD)>>16; + + pCoexSta->highPriorityTx = regHPTx; + pCoexSta->highPriorityRx = regHPRx; + pCoexSta->lowPriorityTx = regLPTx; + pCoexSta->lowPriorityRx = regLPRx; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], High Priority Tx/Rx (reg 0x%x)=0x%x(%d)/0x%x(%d)\n", + regHPTxRx, regHPTx, regHPTx, regHPRx, regHPRx)); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], Low Priority Tx/Rx (reg 0x%x)=0x%x(%d)/0x%x(%d)\n", + regLPTxRx, regLPTx, regLPTx, regLPRx, regLPRx)); + + // reset counter + pBtCoexist->btc_write_1byte(pBtCoexist, 0x76e, 0xc); +} + +VOID +halbtc8192e1ant_QueryBtInfo( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte H2C_Parameter[1] ={0}; + + pCoexSta->bC2hBtInfoReqSent = true; + + H2C_Parameter[0] |= BIT0; // trigger + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], Query Bt Info, FW write 0x61=0x%x\n", + H2C_Parameter[0])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x61, 1, H2C_Parameter); +} + +BOOLEAN +halbtc8192e1ant_IsWifiStatusChanged( + IN PBTC_COEXIST pBtCoexist + ) +{ + static BOOLEAN bPreWifiBusy=FALSE, bPreUnder4way=FALSE, bPreBtHsOn=FALSE; + BOOLEAN bWifiBusy=FALSE, bUnder4way=FALSE, bBtHsOn=FALSE; + BOOLEAN bWifiConnected=FALSE; + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_CONNECTED, &bWifiConnected); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_BUSY, &bWifiBusy); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_HS_OPERATION, &bBtHsOn); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_4_WAY_PROGRESS, &bUnder4way); + + if(bWifiConnected) + { + if(bWifiBusy != bPreWifiBusy) + { + bPreWifiBusy = bWifiBusy; + return true; + } + if(bUnder4way != bPreUnder4way) + { + bPreUnder4way = bUnder4way; + return true; + } + if(bBtHsOn != bPreBtHsOn) + { + bPreBtHsOn = bBtHsOn; + return true; + } + } + + return FALSE; +} + +VOID +halbtc8192e1ant_UpdateBtLinkInfo( + IN PBTC_COEXIST pBtCoexist + ) +{ + PBTC_BT_LINK_INFO pBtLinkInfo=&pBtCoexist->bt_link_info; + + pBtLinkInfo->bBtLinkExist = pCoexSta->bBtLinkExist; + pBtLinkInfo->bScoExist = pCoexSta->bScoExist; + pBtLinkInfo->bA2dpExist = pCoexSta->bA2dpExist; + pBtLinkInfo->bPanExist = pCoexSta->bPanExist; + pBtLinkInfo->bHidExist = pCoexSta->bHidExist; + + // check if Sco only + if( pBtLinkInfo->bScoExist && + !pBtLinkInfo->bA2dpExist && + !pBtLinkInfo->bPanExist && + !pBtLinkInfo->bHidExist ) + pBtLinkInfo->bScoOnly = true; + else + pBtLinkInfo->bScoOnly = FALSE; + + // check if A2dp only + if( !pBtLinkInfo->bScoExist && + pBtLinkInfo->bA2dpExist && + !pBtLinkInfo->bPanExist && + !pBtLinkInfo->bHidExist ) + pBtLinkInfo->bA2dpOnly = true; + else + pBtLinkInfo->bA2dpOnly = FALSE; + + // check if Pan only + if( !pBtLinkInfo->bScoExist && + !pBtLinkInfo->bA2dpExist && + pBtLinkInfo->bPanExist && + !pBtLinkInfo->bHidExist ) + pBtLinkInfo->bPanOnly = true; + else + pBtLinkInfo->bPanOnly = FALSE; + + // check if Hid only + if( !pBtLinkInfo->bScoExist && + !pBtLinkInfo->bA2dpExist && + !pBtLinkInfo->bPanExist && + pBtLinkInfo->bHidExist ) + pBtLinkInfo->bHidOnly = true; + else + pBtLinkInfo->bHidOnly = FALSE; +} + +u1Byte +halbtc8192e1ant_ActionAlgorithm( + IN PBTC_COEXIST pBtCoexist + ) +{ + PBTC_BT_LINK_INFO pBtLinkInfo=&pBtCoexist->bt_link_info; + BOOLEAN bBtHsOn=FALSE; + u1Byte algorithm=BT_8192E_1ANT_COEX_ALGO_UNDEFINED; + u1Byte numOfDiffProfile=0; + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_HS_OPERATION, &bBtHsOn); + + if(!pBtLinkInfo->bBtLinkExist) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], No BT link exists!!!\n")); + return algorithm; + } + + if(pBtLinkInfo->bScoExist) + numOfDiffProfile++; + if(pBtLinkInfo->bHidExist) + numOfDiffProfile++; + if(pBtLinkInfo->bPanExist) + numOfDiffProfile++; + if(pBtLinkInfo->bA2dpExist) + numOfDiffProfile++; + + if(numOfDiffProfile == 1) + { + if(pBtLinkInfo->bScoExist) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO only\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_SCO; + } + else + { + if(pBtLinkInfo->bHidExist) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HID only\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_HID; + } + else if(pBtLinkInfo->bA2dpExist) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], A2DP only\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_A2DP; + } + else if(pBtLinkInfo->bPanExist) + { + if(bBtHsOn) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], PAN(HS) only\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_PANHS; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], PAN(EDR) only\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_PANEDR; + } + } + } + } + else if(numOfDiffProfile == 2) + { + if(pBtLinkInfo->bScoExist) + { + if(pBtLinkInfo->bHidExist) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + HID\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_HID; + } + else if(pBtLinkInfo->bA2dpExist) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + A2DP ==> SCO\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_SCO; + } + else if(pBtLinkInfo->bPanExist) + { + if(bBtHsOn) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + PAN(HS)\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_SCO; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + PAN(EDR)\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_PANEDR_HID; + } + } + } + else + { + if( pBtLinkInfo->bHidExist && + pBtLinkInfo->bA2dpExist ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HID + A2DP\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_HID_A2DP; + } + else if( pBtLinkInfo->bHidExist && + pBtLinkInfo->bPanExist ) + { + if(bBtHsOn) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HID + PAN(HS)\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_HID_A2DP; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HID + PAN(EDR)\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_PANEDR_HID; + } + } + else if( pBtLinkInfo->bPanExist && + pBtLinkInfo->bA2dpExist ) + { + if(bBtHsOn) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], A2DP + PAN(HS)\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_A2DP_PANHS; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], A2DP + PAN(EDR)\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_PANEDR_A2DP; + } + } + } + } + else if(numOfDiffProfile == 3) + { + if(pBtLinkInfo->bScoExist) + { + if( pBtLinkInfo->bHidExist && + pBtLinkInfo->bA2dpExist ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + HID + A2DP ==> HID\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_HID; + } + else if( pBtLinkInfo->bHidExist && + pBtLinkInfo->bPanExist ) + { + if(bBtHsOn) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + HID + PAN(HS)\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_HID_A2DP; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + HID + PAN(EDR)\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_PANEDR_HID; + } + } + else if( pBtLinkInfo->bPanExist && + pBtLinkInfo->bA2dpExist ) + { + if(bBtHsOn) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + A2DP + PAN(HS)\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_SCO; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + A2DP + PAN(EDR) ==> HID\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_PANEDR_HID; + } + } + } + else + { + if( pBtLinkInfo->bHidExist && + pBtLinkInfo->bPanExist && + pBtLinkInfo->bA2dpExist ) + { + if(bBtHsOn) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HID + A2DP + PAN(HS)\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_HID_A2DP; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HID + A2DP + PAN(EDR)\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_HID_A2DP_PANEDR; + } + } + } + } + else if(numOfDiffProfile >= 3) + { + if(pBtLinkInfo->bScoExist) + { + if( pBtLinkInfo->bHidExist && + pBtLinkInfo->bPanExist && + pBtLinkInfo->bA2dpExist ) + { + if(bBtHsOn) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Error!!! SCO + HID + A2DP + PAN(HS)\n")); + + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + HID + A2DP + PAN(EDR)==>PAN(EDR)+HID\n")); + algorithm = BT_8192E_1ANT_COEX_ALGO_PANEDR_HID; + } + } + } + } + + return algorithm; +} + +VOID +halbtc8192e1ant_SetFwDacSwingLevel( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte dacSwingLvl + ) +{ + u1Byte H2C_Parameter[1] ={0}; + + // There are several type of dacswing + // 0x18/ 0x10/ 0xc/ 0x8/ 0x4/ 0x6 + H2C_Parameter[0] = dacSwingLvl; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], Set Dac Swing Level=0x%x\n", dacSwingLvl)); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], FW write 0x64=0x%x\n", H2C_Parameter[0])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x64, 1, H2C_Parameter); +} + +VOID +halbtc8192e1ant_SetFwDecBtPwr( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte decBtPwrLvl + ) +{ + u1Byte H2C_Parameter[1] ={0}; + + H2C_Parameter[0] = decBtPwrLvl; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], decrease Bt Power level = %d, FW write 0x62=0x%x\n", + decBtPwrLvl, H2C_Parameter[0])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x62, 1, H2C_Parameter); +} + +VOID +halbtc8192e1ant_DecBtPwr( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN u1Byte decBtPwrLvl + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s Dec BT power level = %d\n", + (bForceExec? "force to":""), decBtPwrLvl)); + pCoexDm->curBtDecPwrLvl = decBtPwrLvl; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], BtDecPwrLvl=%d, curBtDecPwrLvl=%d\n", + pCoexDm->preBtDecPwrLvl, pCoexDm->curBtDecPwrLvl)); + + if(pCoexDm->preBtDecPwrLvl == pCoexDm->curBtDecPwrLvl) + return; + } + halbtc8192e1ant_SetFwDecBtPwr(pBtCoexist, pCoexDm->curBtDecPwrLvl); + + pCoexDm->preBtDecPwrLvl = pCoexDm->curBtDecPwrLvl; +} + +VOID +halbtc8192e1ant_SetFwBtLnaConstrain( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bBtLnaConsOn + ) +{ + u1Byte H2C_Parameter[2] ={0}; + + H2C_Parameter[0] = 0x3; // opCode, 0x3=BT_SET_LNA_CONSTRAIN + + if(bBtLnaConsOn) + { + H2C_Parameter[1] |= BIT0; + } + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], set BT LNA Constrain: %s, FW write 0x69=0x%x\n", + (bBtLnaConsOn? "ON!!":"OFF!!"), + H2C_Parameter[0]<<8|H2C_Parameter[1])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x69, 2, H2C_Parameter); +} + +VOID +halbtc8192e1ant_SetBtLnaConstrain( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bBtLnaConsOn + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s BT Constrain = %s\n", + (bForceExec? "force":""), ((bBtLnaConsOn)? "ON":"OFF"))); + pCoexDm->bCurBtLnaConstrain = bBtLnaConsOn; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], bPreBtLnaConstrain=%d, bCurBtLnaConstrain=%d\n", + pCoexDm->bPreBtLnaConstrain, pCoexDm->bCurBtLnaConstrain)); + + if(pCoexDm->bPreBtLnaConstrain == pCoexDm->bCurBtLnaConstrain) + return; + } + halbtc8192e1ant_SetFwBtLnaConstrain(pBtCoexist, pCoexDm->bCurBtLnaConstrain); + + pCoexDm->bPreBtLnaConstrain = pCoexDm->bCurBtLnaConstrain; +} + +VOID +halbtc8192e1ant_SetFwBtPsdMode( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte btPsdMode + ) +{ + u1Byte H2C_Parameter[2] ={0}; + + H2C_Parameter[0] = 0x2; // opCode, 0x2=BT_SET_PSD_MODE + + H2C_Parameter[1] = btPsdMode; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], set BT PSD mode=0x%x, FW write 0x69=0x%x\n", + H2C_Parameter[1], + H2C_Parameter[0]<<8|H2C_Parameter[1])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x69, 2, H2C_Parameter); +} + + +VOID +halbtc8192e1ant_SetBtPsdMode( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN u1Byte btPsdMode + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s BT PSD mode = 0x%x\n", + (bForceExec? "force":""), btPsdMode)); + pCoexDm->bCurBtPsdMode = btPsdMode; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], bPreBtPsdMode=0x%x, bCurBtPsdMode=0x%x\n", + pCoexDm->bPreBtPsdMode, pCoexDm->bCurBtPsdMode)); + + if(pCoexDm->bPreBtPsdMode == pCoexDm->bCurBtPsdMode) + return; + } + halbtc8192e1ant_SetFwBtPsdMode(pBtCoexist, pCoexDm->bCurBtPsdMode); + + pCoexDm->bPreBtPsdMode = pCoexDm->bCurBtPsdMode; +} + + +VOID +halbtc8192e1ant_SetBtAutoReport( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bEnableAutoReport + ) +{ + u1Byte H2C_Parameter[1] ={0}; + + H2C_Parameter[0] = 0; + + if(bEnableAutoReport) + { + H2C_Parameter[0] |= BIT0; + } + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], BT FW auto report : %s, FW write 0x68=0x%x\n", + (bEnableAutoReport? "Enabled!!":"Disabled!!"), H2C_Parameter[0])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x68, 1, H2C_Parameter); +} + +VOID +halbtc8192e1ant_BtAutoReport( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bEnableAutoReport + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s BT Auto report = %s\n", + (bForceExec? "force to":""), ((bEnableAutoReport)? "Enabled":"Disabled"))); + pCoexDm->bCurBtAutoReport = bEnableAutoReport; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], bPreBtAutoReport=%d, bCurBtAutoReport=%d\n", + pCoexDm->bPreBtAutoReport, pCoexDm->bCurBtAutoReport)); + + if(pCoexDm->bPreBtAutoReport == pCoexDm->bCurBtAutoReport) + return; + } + halbtc8192e1ant_SetBtAutoReport(pBtCoexist, pCoexDm->bCurBtAutoReport); + + pCoexDm->bPreBtAutoReport = pCoexDm->bCurBtAutoReport; +} + +VOID +halbtc8192e1ant_FwDacSwingLvl( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN u1Byte fwDacSwingLvl + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s set FW Dac Swing level = %d\n", + (bForceExec? "force to":""), fwDacSwingLvl)); + pCoexDm->curFwDacSwingLvl = fwDacSwingLvl; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], preFwDacSwingLvl=%d, curFwDacSwingLvl=%d\n", + pCoexDm->preFwDacSwingLvl, pCoexDm->curFwDacSwingLvl)); + + if(pCoexDm->preFwDacSwingLvl == pCoexDm->curFwDacSwingLvl) + return; + } + + halbtc8192e1ant_SetFwDacSwingLevel(pBtCoexist, pCoexDm->curFwDacSwingLvl); + + pCoexDm->preFwDacSwingLvl = pCoexDm->curFwDacSwingLvl; +} + +VOID +halbtc8192e1ant_SetSwRfRxLpfCorner( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bRxRfShrinkOn + ) +{ + if(bRxRfShrinkOn) + { + //Shrink RF Rx LPF corner + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Shrink RF Rx LPF corner!!\n")); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x1e, 0xfffff, 0xf0ff7); + } + else + { + //Resume RF Rx LPF corner + // After initialized, we can use pCoexDm->btRf0x1eBackup + if(pBtCoexist->initilized) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Resume RF Rx LPF corner!!\n")); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x1e, 0xfffff, pCoexDm->btRf0x1eBackup); + } + } +} + +VOID +halbtc8192e1ant_RfShrink( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bRxRfShrinkOn + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s turn Rx RF Shrink = %s\n", + (bForceExec? "force to":""), ((bRxRfShrinkOn)? "ON":"OFF"))); + pCoexDm->bCurRfRxLpfShrink = bRxRfShrinkOn; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], bPreRfRxLpfShrink=%d, bCurRfRxLpfShrink=%d\n", + pCoexDm->bPreRfRxLpfShrink, pCoexDm->bCurRfRxLpfShrink)); + + if(pCoexDm->bPreRfRxLpfShrink == pCoexDm->bCurRfRxLpfShrink) + return; + } + halbtc8192e1ant_SetSwRfRxLpfCorner(pBtCoexist, pCoexDm->bCurRfRxLpfShrink); + + pCoexDm->bPreRfRxLpfShrink = pCoexDm->bCurRfRxLpfShrink; +} + +VOID +halbtc8192e1ant_SetSwPenaltyTxRateAdaptive( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bLowPenaltyRa + ) +{ + u1Byte tmpU1; + + tmpU1 = pBtCoexist->btc_read_1byte(pBtCoexist, 0x4fd); + tmpU1 |= BIT0; + if(bLowPenaltyRa) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Tx rate adaptive, set low penalty!!\n")); + tmpU1 &= ~BIT2; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Tx rate adaptive, set normal!!\n")); + tmpU1 |= BIT2; + } + + pBtCoexist->btc_write_1byte(pBtCoexist, 0x4fd, tmpU1); +} + +VOID +halbtc8192e1ant_LowPenaltyRa( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bLowPenaltyRa + ) +{ + return; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s turn LowPenaltyRA = %s\n", + (bForceExec? "force to":""), ((bLowPenaltyRa)? "ON":"OFF"))); + pCoexDm->bCurLowPenaltyRa = bLowPenaltyRa; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], bPreLowPenaltyRa=%d, bCurLowPenaltyRa=%d\n", + pCoexDm->bPreLowPenaltyRa, pCoexDm->bCurLowPenaltyRa)); + + if(pCoexDm->bPreLowPenaltyRa == pCoexDm->bCurLowPenaltyRa) + return; + } + halbtc8192e1ant_SetSwPenaltyTxRateAdaptive(pBtCoexist, pCoexDm->bCurLowPenaltyRa); + + pCoexDm->bPreLowPenaltyRa = pCoexDm->bCurLowPenaltyRa; +} + +VOID +halbtc8192e1ant_SetDacSwingReg( + IN PBTC_COEXIST pBtCoexist, + IN u4Byte level + ) +{ + u1Byte val=(u1Byte)level; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Write SwDacSwing = 0x%x\n", level)); + pBtCoexist->btc_write_1byte_bitmask(pBtCoexist, 0x883, 0x3e, val); +} + +VOID +halbtc8192e1ant_SetSwFullTimeDacSwing( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bSwDacSwingOn, + IN u4Byte swDacSwingLvl + ) +{ + if(bSwDacSwingOn) + { + halbtc8192e1ant_SetDacSwingReg(pBtCoexist, swDacSwingLvl); + } + else + { + halbtc8192e1ant_SetDacSwingReg(pBtCoexist, 0x18); + } +} + + +VOID +halbtc8192e1ant_DacSwing( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bDacSwingOn, + IN u4Byte dacSwingLvl + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s turn DacSwing=%s, dacSwingLvl=0x%x\n", + (bForceExec? "force to":""), ((bDacSwingOn)? "ON":"OFF"), dacSwingLvl)); + pCoexDm->bCurDacSwingOn = bDacSwingOn; + pCoexDm->curDacSwingLvl = dacSwingLvl; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], bPreDacSwingOn=%d, preDacSwingLvl=0x%x, bCurDacSwingOn=%d, curDacSwingLvl=0x%x\n", + pCoexDm->bPreDacSwingOn, pCoexDm->preDacSwingLvl, + pCoexDm->bCurDacSwingOn, pCoexDm->curDacSwingLvl)); + + if( (pCoexDm->bPreDacSwingOn == pCoexDm->bCurDacSwingOn) && + (pCoexDm->preDacSwingLvl == pCoexDm->curDacSwingLvl) ) + return; + } + mdelay(30); + halbtc8192e1ant_SetSwFullTimeDacSwing(pBtCoexist, bDacSwingOn, dacSwingLvl); + + pCoexDm->bPreDacSwingOn = pCoexDm->bCurDacSwingOn; + pCoexDm->preDacSwingLvl = pCoexDm->curDacSwingLvl; +} + +VOID +halbtc8192e1ant_SetAdcBackOff( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bAdcBackOff + ) +{ + if(bAdcBackOff) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], BB BackOff Level On!\n")); + pBtCoexist->btc_write_1byte_bitmask(pBtCoexist, 0x8db, 0x60, 0x3); + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], BB BackOff Level Off!\n")); + pBtCoexist->btc_write_1byte_bitmask(pBtCoexist, 0x8db, 0x60, 0x1); + } +} + +VOID +halbtc8192e1ant_AdcBackOff( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bAdcBackOff + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s turn AdcBackOff = %s\n", + (bForceExec? "force to":""), ((bAdcBackOff)? "ON":"OFF"))); + pCoexDm->bCurAdcBackOff = bAdcBackOff; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], bPreAdcBackOff=%d, bCurAdcBackOff=%d\n", + pCoexDm->bPreAdcBackOff, pCoexDm->bCurAdcBackOff)); + + if(pCoexDm->bPreAdcBackOff == pCoexDm->bCurAdcBackOff) + return; + } + halbtc8192e1ant_SetAdcBackOff(pBtCoexist, pCoexDm->bCurAdcBackOff); + + pCoexDm->bPreAdcBackOff = pCoexDm->bCurAdcBackOff; +} + +VOID +halbtc8192e1ant_SetAgcTable( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bAgcTableEn + ) +{ + u1Byte rssiAdjustVal=0; + + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0xef, 0xfffff, 0x02000); + if(bAgcTableEn) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Agc Table On!\n")); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x3b, 0xfffff, 0x3fa58); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x3b, 0xfffff, 0x37a58); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x3b, 0xfffff, 0x2fa58); + rssiAdjustVal = 8; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Agc Table Off!\n")); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x3b, 0xfffff, 0x39258); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x3b, 0xfffff, 0x31258); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x3b, 0xfffff, 0x29258); + } + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0xef, 0xfffff, 0x0); + + // set rssiAdjustVal for wifi module. + pBtCoexist->btc_set(pBtCoexist, BTC_SET_U1_RSSI_ADJ_VAL_FOR_AGC_TABLE_ON, &rssiAdjustVal); +} + + +VOID +halbtc8192e1ant_AgcTable( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bAgcTableEn + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s %s Agc Table\n", + (bForceExec? "force to":""), ((bAgcTableEn)? "Enable":"Disable"))); + pCoexDm->bCurAgcTableEn = bAgcTableEn; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], bPreAgcTableEn=%d, bCurAgcTableEn=%d\n", + pCoexDm->bPreAgcTableEn, pCoexDm->bCurAgcTableEn)); + + if(pCoexDm->bPreAgcTableEn == pCoexDm->bCurAgcTableEn) + return; + } + halbtc8192e1ant_SetAgcTable(pBtCoexist, bAgcTableEn); + + pCoexDm->bPreAgcTableEn = pCoexDm->bCurAgcTableEn; +} + +VOID +halbtc8192e1ant_SetCoexTable( + IN PBTC_COEXIST pBtCoexist, + IN u4Byte val0x6c0, + IN u4Byte val0x6c4, + IN u4Byte val0x6c8, + IN u1Byte val0x6cc + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], set coex table, set 0x6c0=0x%x\n", val0x6c0)); + pBtCoexist->btc_write_4byte(pBtCoexist, 0x6c0, val0x6c0); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], set coex table, set 0x6c4=0x%x\n", val0x6c4)); + pBtCoexist->btc_write_4byte(pBtCoexist, 0x6c4, val0x6c4); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], set coex table, set 0x6c8=0x%x\n", val0x6c8)); + pBtCoexist->btc_write_4byte(pBtCoexist, 0x6c8, val0x6c8); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], set coex table, set 0x6cc=0x%x\n", val0x6cc)); + pBtCoexist->btc_write_1byte(pBtCoexist, 0x6cc, val0x6cc); +} + +VOID +halbtc8192e1ant_CoexTable( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN u4Byte val0x6c0, + IN u4Byte val0x6c4, + IN u4Byte val0x6c8, + IN u1Byte val0x6cc + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s write Coex Table 0x6c0=0x%x, 0x6c4=0x%x, 0x6c8=0x%x, 0x6cc=0x%x\n", + (bForceExec? "force to":""), val0x6c0, val0x6c4, val0x6c8, val0x6cc)); + pCoexDm->curVal0x6c0 = val0x6c0; + pCoexDm->curVal0x6c4 = val0x6c4; + pCoexDm->curVal0x6c8 = val0x6c8; + pCoexDm->curVal0x6cc = val0x6cc; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], preVal0x6c0=0x%x, preVal0x6c4=0x%x, preVal0x6c8=0x%x, preVal0x6cc=0x%x !!\n", + pCoexDm->preVal0x6c0, pCoexDm->preVal0x6c4, pCoexDm->preVal0x6c8, pCoexDm->preVal0x6cc)); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], curVal0x6c0=0x%x, curVal0x6c4=0x%x, curVal0x6c8=0x%x, curVal0x6cc=0x%x !!\n", + pCoexDm->curVal0x6c0, pCoexDm->curVal0x6c4, pCoexDm->curVal0x6c8, pCoexDm->curVal0x6cc)); + + if( (pCoexDm->preVal0x6c0 == pCoexDm->curVal0x6c0) && + (pCoexDm->preVal0x6c4 == pCoexDm->curVal0x6c4) && + (pCoexDm->preVal0x6c8 == pCoexDm->curVal0x6c8) && + (pCoexDm->preVal0x6cc == pCoexDm->curVal0x6cc) ) + return; + } + halbtc8192e1ant_SetCoexTable(pBtCoexist, val0x6c0, val0x6c4, val0x6c8, val0x6cc); + + pCoexDm->preVal0x6c0 = pCoexDm->curVal0x6c0; + pCoexDm->preVal0x6c4 = pCoexDm->curVal0x6c4; + pCoexDm->preVal0x6c8 = pCoexDm->curVal0x6c8; + pCoexDm->preVal0x6cc = pCoexDm->curVal0x6cc; +} + +VOID +halbtc8192e1ant_CoexTableWithType( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN u1Byte type + ) +{ + switch(type) + { + case 0: + halbtc8192e1ant_CoexTable(pBtCoexist, bForceExec, 0x55555555, 0x55555555, 0xffffff, 0x3); + break; + case 1: + halbtc8192e1ant_CoexTable(pBtCoexist, bForceExec, 0x55555555, 0x5a5a5a5a, 0xffffff, 0x3); + break; + case 2: + halbtc8192e1ant_CoexTable(pBtCoexist, bForceExec, 0x5a5a5a5a, 0x5a5a5a5a, 0xffffff, 0x3); + break; + case 3: + halbtc8192e1ant_CoexTable(pBtCoexist, bForceExec, 0xaaaaaaaa, 0xaaaaaaaa, 0xffffff, 0x3); + break; + case 4: + halbtc8192e1ant_CoexTable(pBtCoexist, bForceExec, 0xffffffff, 0xffffffff, 0xffffff, 0x3); + break; + case 5: + halbtc8192e1ant_CoexTable(pBtCoexist, bForceExec, 0x5fff5fff, 0x5fff5fff, 0xffffff, 0x3); + break; + case 6: + halbtc8192e1ant_CoexTable(pBtCoexist, bForceExec, 0x55ff55ff, 0x5a5a5a5a, 0xffffff, 0x3); + break; + case 7: + halbtc8192e1ant_CoexTable(pBtCoexist, bForceExec, 0xddffddff, 0xddffddff, 0xffffff, 0x3); + break; + case 8: + halbtc8192e1ant_CoexTable(pBtCoexist, bForceExec, 0x55ff55ff, 0x5afa5afa, 0xffffff, 0x3); + break; + case 9: + halbtc8192e1ant_CoexTable(pBtCoexist, bForceExec, 0x5f5f5f5f, 0x5f5f5f5f, 0xffffff, 0x3); + break; + default: + break; + } +} + +VOID +halbtc8192e1ant_SetFwIgnoreWlanAct( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bEnable + ) +{ + u1Byte H2C_Parameter[1] ={0}; + + if(bEnable) + { + H2C_Parameter[0] |= BIT0; // function enable + } + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], set FW for BT Ignore Wlan_Act, FW write 0x63=0x%x\n", + H2C_Parameter[0])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x63, 1, H2C_Parameter); +} + +VOID +halbtc8192e1ant_IgnoreWlanAct( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bEnable + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s turn Ignore WlanAct %s\n", + (bForceExec? "force to":""), (bEnable? "ON":"OFF"))); + pCoexDm->bCurIgnoreWlanAct = bEnable; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], bPreIgnoreWlanAct = %d, bCurIgnoreWlanAct = %d!!\n", + pCoexDm->bPreIgnoreWlanAct, pCoexDm->bCurIgnoreWlanAct)); + + if(pCoexDm->bPreIgnoreWlanAct == pCoexDm->bCurIgnoreWlanAct) + return; + } + halbtc8192e1ant_SetFwIgnoreWlanAct(pBtCoexist, bEnable); + + pCoexDm->bPreIgnoreWlanAct = pCoexDm->bCurIgnoreWlanAct; +} + +VOID +halbtc8192e1ant_SetFwPstdma( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte byte1, + IN u1Byte byte2, + IN u1Byte byte3, + IN u1Byte byte4, + IN u1Byte byte5 + ) +{ + u1Byte H2C_Parameter[5] ={0}; + + H2C_Parameter[0] = byte1; + H2C_Parameter[1] = byte2; + H2C_Parameter[2] = byte3; + H2C_Parameter[3] = byte4; + H2C_Parameter[4] = byte5; + + pCoexDm->psTdmaPara[0] = byte1; + pCoexDm->psTdmaPara[1] = byte2; + pCoexDm->psTdmaPara[2] = byte3; + pCoexDm->psTdmaPara[3] = byte4; + pCoexDm->psTdmaPara[4] = byte5; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], FW write 0x60(5bytes)=0x%x%08x\n", + H2C_Parameter[0], + H2C_Parameter[1]<<24|H2C_Parameter[2]<<16|H2C_Parameter[3]<<8|H2C_Parameter[4])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x60, 5, H2C_Parameter); +} + +VOID +halbtc8192e1ant_SetLpsRpwm( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte lpsVal, + IN u1Byte rpwmVal + ) +{ + u1Byte lps=lpsVal; + u1Byte rpwm=rpwmVal; + + pBtCoexist->btc_set(pBtCoexist, BTC_SET_U1_1ANT_LPS, &lps); + pBtCoexist->btc_set(pBtCoexist, BTC_SET_U1_1ANT_RPWM, &rpwm); +} + +VOID +halbtc8192e1ant_LpsRpwm( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN u1Byte lpsVal, + IN u1Byte rpwmVal + ) +{ + BOOLEAN bForceExecPwrCmd=FALSE; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s set lps/rpwm=0x%x/0x%x \n", + (bForceExec? "force to":""), lpsVal, rpwmVal)); + pCoexDm->curLps = lpsVal; + pCoexDm->curRpwm = rpwmVal; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], preLps/curLps=0x%x/0x%x, preRpwm/curRpwm=0x%x/0x%x!!\n", + pCoexDm->preLps, pCoexDm->curLps, pCoexDm->preRpwm, pCoexDm->curRpwm)); + + if( (pCoexDm->preLps == pCoexDm->curLps) && + (pCoexDm->preRpwm == pCoexDm->curRpwm) ) + { + return; + } + } + halbtc8192e1ant_SetLpsRpwm(pBtCoexist, lpsVal, rpwmVal); + + pCoexDm->preLps = pCoexDm->curLps; + pCoexDm->preRpwm = pCoexDm->curRpwm; +} + +VOID +halbtc8192e1ant_SwMechanism1( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bShrinkRxLPF, + IN BOOLEAN bLowPenaltyRA, + IN BOOLEAN limited_dig, + IN BOOLEAN bBTLNAConstrain + ) +{ + //halbtc8192e1ant_RfShrink(pBtCoexist, NORMAL_EXEC, bShrinkRxLPF); + //halbtc8192e1ant_LowPenaltyRa(pBtCoexist, NORMAL_EXEC, bLowPenaltyRA); + + //no limited DIG + //halbtc8192e1ant_SetBtLnaConstrain(pBtCoexist, NORMAL_EXEC, bBTLNAConstrain); +} + +VOID +halbtc8192e1ant_SwMechanism2( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bAGCTableShift, + IN BOOLEAN bADCBackOff, + IN BOOLEAN bSWDACSwing, + IN u4Byte dacSwingLvl + ) +{ + //halbtc8192e1ant_AgcTable(pBtCoexist, NORMAL_EXEC, bAGCTableShift); + //halbtc8192e1ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, bADCBackOff); + //halbtc8192e1ant_DacSwing(pBtCoexist, NORMAL_EXEC, bSWDACSwing, dacSwingLvl); +} + +VOID +halbtc8192e1ant_PsTdma( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bTurnOn, + IN u1Byte type + ) +{ + BOOLEAN bTurnOnByCnt=FALSE; + u1Byte psTdmaTypeByCnt=0, rssiAdjustVal=0; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s turn %s PS TDMA, type=%d\n", + (bForceExec? "force to":""), (bTurnOn? "ON":"OFF"), type)); + pCoexDm->bCurPsTdmaOn = bTurnOn; + pCoexDm->curPsTdma = type; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], bPrePsTdmaOn = %d, bCurPsTdmaOn = %d!!\n", + pCoexDm->bPrePsTdmaOn, pCoexDm->bCurPsTdmaOn)); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], prePsTdma = %d, curPsTdma = %d!!\n", + pCoexDm->prePsTdma, pCoexDm->curPsTdma)); + + if( (pCoexDm->bPrePsTdmaOn == pCoexDm->bCurPsTdmaOn) && + (pCoexDm->prePsTdma == pCoexDm->curPsTdma) ) + return; + } + if(bTurnOn) + { + switch(type) + { + default: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x53, 0x2c, 0x03, 0x10, 0x50); + break; + case 1: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x53, 0x2c, 0x03, 0x10, 0x50); + rssiAdjustVal = 11; + break; + case 2: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x53, 0x25, 0x03, 0x10, 0x50); + rssiAdjustVal = 14; + break; + case 3: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x93, 0x25, 0x3, 0x10, 0x40); + break; + case 4: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x93, 0x15, 0x3, 0x14, 0x0); + rssiAdjustVal = 17; + break; + case 5: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x61, 0x15, 0x3, 0x31, 0x0); + break; + case 6: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x13, 0xa, 0x3, 0x0, 0x0); + break; + case 7: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x13, 0xc, 0x5, 0x0, 0x0); + break; + case 8: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x93, 0x25, 0x3, 0x10, 0x0); + break; + case 9: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x53, 0x1e, 0x03, 0x10, 0x50); + rssiAdjustVal = 18; + break; + case 10: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x13, 0xa, 0xa, 0x0, 0x40); + break; + case 11: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x53, 0x12, 0x03, 0x10, 0x50); + rssiAdjustVal = 20; + break; + case 12: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0xeb, 0xa, 0x3, 0x31, 0x18); + break; + + case 15: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x13, 0xa, 0x3, 0x8, 0x0); + break; + case 16: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x93, 0x15, 0x3, 0x10, 0x0); + rssiAdjustVal = 18; + break; + + case 18: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x93, 0x25, 0x3, 0x10, 0x0); + rssiAdjustVal = 14; + break; + + case 20: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x13, 0x25, 0x25, 0x0, 0x0); + break; + case 21: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x93, 0x20, 0x3, 0x10, 0x40); + break; + case 22: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x13, 0x8, 0x8, 0x0, 0x40); + break; + case 23: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0xe3, 0x25, 0x3, 0x31, 0x18); + rssiAdjustVal = 22; + break; + case 24: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0xe3, 0x15, 0x3, 0x31, 0x18); + rssiAdjustVal = 22; + break; + case 25: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0xe3, 0xa, 0x3, 0x31, 0x18); + rssiAdjustVal = 22; + break; + case 26: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0xe3, 0xa, 0x3, 0x31, 0x18); + rssiAdjustVal = 22; + break; + case 27: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0xe3, 0x25, 0x3, 0x31, 0x98); + rssiAdjustVal = 22; + break; + case 28: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x69, 0x25, 0x3, 0x31, 0x0); + break; + case 29: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0xab, 0x1a, 0x1a, 0x1, 0x10); + break; + case 30: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x93, 0x15, 0x3, 0x14, 0x0); + break; + case 31: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0xd3, 0x1a, 0x1a, 0, 0x58); + break; + case 32: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0xab, 0xa, 0x3, 0x31, 0x90); + break; + case 33: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0xa3, 0x25, 0x3, 0x30, 0x90); + break; + case 34: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0xd3, 0x1a, 0x1a, 0x0, 0x10); + break; + case 35: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0xe3, 0x1a, 0x1a, 0x0, 0x10); + break; + case 36: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0xd3, 0x12, 0x3, 0x14, 0x50); + break; + case 37: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x53, 0x25, 0x3, 0x10, 0x50); + break; + case 38: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0xe3, 0x12, 0x12, 0xe1, 0x90); + break; + } + } + else + { + // disable PS tdma + switch(type) + { + case 8: //0x778 = 1, ant2PTA + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x8, 0x0, 0x0, 0x0, 0x0); + pBtCoexist->btc_write_1byte(pBtCoexist, 0x92c, 0x4); + break; + case 0: //0x778 = 1, ant2BT + default: + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x0, 0x0, 0x0, 0x0, 0x0); + mdelay(5); + pBtCoexist->btc_write_1byte(pBtCoexist, 0x92c, 0x20); + break; + case 9: //0x778 = 1, ant2WIFI + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x0, 0x0, 0x0, 0x0, 0x0); + pBtCoexist->btc_write_1byte(pBtCoexist, 0x92c, 0x4); + break; + case 10: //0x778 = 3, ant2BT + halbtc8192e1ant_SetFwPstdma(pBtCoexist, 0x0, 0x0, 0x0, 0x8, 0x0); + mdelay(5); + pBtCoexist->btc_write_1byte(pBtCoexist, 0x92c, 0x20); + break; + } + } + rssiAdjustVal =0; + pBtCoexist->btc_set(pBtCoexist, BTC_SET_U1_RSSI_ADJ_VAL_FOR_1ANT_COEX_TYPE, &rssiAdjustVal); + + // update pre state + pCoexDm->bPrePsTdmaOn = pCoexDm->bCurPsTdmaOn; + pCoexDm->prePsTdma = pCoexDm->curPsTdma; +} + +VOID +halbtc8192e1ant_SetSwitchSsType( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte ssType + ) +{ + u1Byte mimoPs=BTC_MIMO_PS_DYNAMIC; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], REAL set SS Type = %d\n", ssType)); + + if(ssType == 1) + { + halbtc8192e1ant_Updatera_mask(pBtCoexist, FORCE_EXEC, BTC_RATE_DISABLE, 0xfff00000); // disable 2ss + halbtc8192e1ant_PsTdma(pBtCoexist, FORCE_EXEC, FALSE, 0); + // switch ofdm path + pBtCoexist->btc_write_1byte(pBtCoexist, 0xc04, 0x11); + pBtCoexist->btc_write_1byte(pBtCoexist, 0xd04, 0x1); + pBtCoexist->btc_write_4byte(pBtCoexist, 0x90c, 0x81111111); + // switch cck patch + pBtCoexist->btc_write_1byte_bitmask(pBtCoexist, 0xe77, 0x4, 0x1); + pBtCoexist->btc_write_1byte(pBtCoexist, 0xa07, 0x81); + mimoPs=BTC_MIMO_PS_STATIC; + } + else if(ssType == 2) + { + halbtc8192e1ant_Updatera_mask(pBtCoexist, FORCE_EXEC, BTC_RATE_ENABLE, 0xfff00000); // enable 2ss + halbtc8192e1ant_PsTdma(pBtCoexist, FORCE_EXEC, FALSE, 8); + pBtCoexist->btc_write_1byte(pBtCoexist, 0xc04, 0x33); + pBtCoexist->btc_write_1byte(pBtCoexist, 0xd04, 0x3); + pBtCoexist->btc_write_4byte(pBtCoexist, 0x90c, 0x81121313); + pBtCoexist->btc_write_1byte_bitmask(pBtCoexist, 0xe77, 0x4, 0x0); + pBtCoexist->btc_write_1byte(pBtCoexist, 0xa07, 0x41); + mimoPs=BTC_MIMO_PS_DYNAMIC; + } + + pBtCoexist->btc_set(pBtCoexist, BTC_SET_ACT_SEND_MIMO_PS, &mimoPs); // set rx 1ss or 2ss +} + +VOID +halbtc8192e1ant_SwitchSsType( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN u1Byte newSsType + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], %s Switch SS Type = %d\n", + (bForceExec? "force to":""), newSsType)); + pCoexDm->curSsType = newSsType; + + if(!bForceExec) + { + if(pCoexDm->preSsType == pCoexDm->curSsType) + return; + } + halbtc8192e1ant_SetSwitchSsType(pBtCoexist, pCoexDm->curSsType); + + pCoexDm->preSsType = pCoexDm->curSsType; +} + +VOID +halbtc8192e1ant_CoexAllOff( + IN PBTC_COEXIST pBtCoexist + ) +{ + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 0); + + // sw all off + halbtc8192e1ant_SwMechanism1(pBtCoexist,FALSE,FALSE,FALSE,FALSE); + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,FALSE,FALSE,0x18); + + + // hw all off + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 0); +} + +BOOLEAN +halbtc8192e1ant_IsCommonAction( + IN PBTC_COEXIST pBtCoexist + ) +{ + BOOLEAN bCommon=FALSE, bWifiConnected=FALSE, bWifiBusy=FALSE; + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_CONNECTED, &bWifiConnected); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_BUSY, &bWifiBusy); + + if(!bWifiConnected && + BT_8192E_1ANT_BT_STATUS_NON_CONNECTED_IDLE == pCoexDm->btStatus) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Wifi non connected-idle + BT non connected-idle!!\n")); + halbtc8192e1ant_SwMechanism1(pBtCoexist,FALSE,FALSE,FALSE,FALSE); + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,FALSE,FALSE,0x18); + + bCommon = true; + } + else if(bWifiConnected && + (BT_8192E_1ANT_BT_STATUS_NON_CONNECTED_IDLE == pCoexDm->btStatus) ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Wifi connected + BT non connected-idle!!\n")); + halbtc8192e1ant_SwMechanism1(pBtCoexist,FALSE,FALSE,FALSE,FALSE); + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,FALSE,FALSE,0x18); + + bCommon = true; + } + else if(!bWifiConnected && + (BT_8192E_1ANT_BT_STATUS_CONNECTED_IDLE == pCoexDm->btStatus) ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Wifi non connected-idle + BT connected-idle!!\n")); + halbtc8192e1ant_SwMechanism1(pBtCoexist,FALSE,FALSE,FALSE,FALSE); + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,FALSE,FALSE,0x18); + + bCommon = true; + } + else if(bWifiConnected && + (BT_8192E_1ANT_BT_STATUS_CONNECTED_IDLE == pCoexDm->btStatus) ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Wifi connected + BT connected-idle!!\n")); + halbtc8192e1ant_SwMechanism1(pBtCoexist,true,true,true,true); + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,FALSE,FALSE,0x18); + + bCommon = true; + } + else if(!bWifiConnected && + (BT_8192E_1ANT_BT_STATUS_CONNECTED_IDLE != pCoexDm->btStatus) ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Wifi non connected-idle + BT Busy!!\n")); + halbtc8192e1ant_SwMechanism1(pBtCoexist,FALSE,FALSE,FALSE,FALSE); + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,FALSE,FALSE,0x18); + + bCommon = true; + } + else + { + halbtc8192e1ant_SwMechanism1(pBtCoexist,true,true,true,true); + + bCommon = FALSE; + } + + return bCommon; +} + + +VOID +halbtc8192e1ant_TdmaDurationAdjustForAcl( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte wifiStatus + ) +{ + static s4Byte up,dn,m,n,WaitCount; + s4Byte result; //0: no change, +1: increase WiFi duration, -1: decrease WiFi duration + u1Byte retryCount=0, btInfoExt; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], TdmaDurationAdjustForAcl()\n")); + + if( (BT_8192E_1ANT_WIFI_STATUS_NON_CONNECTED_ASSO_AUTH_SCAN == wifiStatus) || + (BT_8192E_1ANT_WIFI_STATUS_CONNECTED_SCAN == wifiStatus) || + (BT_8192E_1ANT_WIFI_STATUS_CONNECTED_SPECIAL_PKT == wifiStatus) ) + { + if( pCoexDm->curPsTdma != 1 && + pCoexDm->curPsTdma != 2 && + pCoexDm->curPsTdma != 3 && + pCoexDm->curPsTdma != 9 ) + { + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 9); + pCoexDm->psTdmaDuAdjType = 9; + + up = 0; + dn = 0; + m = 1; + n= 3; + result = 0; + WaitCount = 0; + } + return; + } + + if(!pCoexDm->bAutoTdmaAdjust) + { + pCoexDm->bAutoTdmaAdjust = true; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], first run TdmaDurationAdjust()!!\n")); + + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + pCoexDm->psTdmaDuAdjType = 2; + //============ + up = 0; + dn = 0; + m = 1; + n= 3; + result = 0; + WaitCount = 0; + } + else + { + //accquire the BT TRx retry count from BT_Info byte2 + retryCount = pCoexSta->btRetryCnt; + btInfoExt = pCoexSta->btInfoExt; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], retryCount = %d\n", retryCount)); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], up=%d, dn=%d, m=%d, n=%d, WaitCount=%d\n", + up, dn, m, n, WaitCount)); + result = 0; + WaitCount++; + + if(retryCount == 0) // no retry in the last 2-second duration + { + up++; + dn--; + + if (dn <= 0) + dn = 0; + + if(up >= n) // if s n 2 retry count0, hռeWiFi duration + { + WaitCount = 0; + n = 3; + up = 0; + dn = 0; + result = 1; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], Increase wifi duration!!\n")); + } + } + else if (retryCount <= 3) // <=3 retry in the last 2-second duration + { + up--; + dn++; + + if (up <= 0) + up = 0; + + if (dn == 2) // if s 2 2 retry count< 3, hկWiFi duration + { + if (WaitCount <= 2) + m++; // קK@blevelӦ^ + else + m = 1; + + if ( m >= 20) //m ̤j = 20 ' ̤j120 recheckO_վ WiFi duration. + m = 20; + + n = 3*m; + up = 0; + dn = 0; + WaitCount = 0; + result = -1; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], Decrease wifi duration for retryCounter<3!!\n")); + } + } + else //retry count > 3, un1 retry count > 3, hկWiFi duration + { + if (WaitCount == 1) + m++; // קK@blevelӦ^ + else + m = 1; + + if ( m >= 20) //m ̤j = 20 ' ̤j120 recheckO_վ WiFi duration. + m = 20; + + n = 3*m; + up = 0; + dn = 0; + WaitCount = 0; + result = -1; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], Decrease wifi duration for retryCounter>3!!\n")); + } + + if(result == -1) + { + if( (BT_INFO_8192E_1ANT_A2DP_BASIC_RATE(btInfoExt)) && + ((pCoexDm->curPsTdma == 1) ||(pCoexDm->curPsTdma == 2)) ) + { + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 9); + pCoexDm->psTdmaDuAdjType = 9; + } + else if(pCoexDm->curPsTdma == 1) + { + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + pCoexDm->psTdmaDuAdjType = 2; + } + else if(pCoexDm->curPsTdma == 2) + { + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 9); + pCoexDm->psTdmaDuAdjType = 9; + } + else if(pCoexDm->curPsTdma == 9) + { + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->psTdmaDuAdjType = 11; + } + } + else if(result == 1) + { + if( (BT_INFO_8192E_1ANT_A2DP_BASIC_RATE(btInfoExt)) && + ((pCoexDm->curPsTdma == 1) ||(pCoexDm->curPsTdma == 2)) ) + { + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 9); + pCoexDm->psTdmaDuAdjType = 9; + } + else if(pCoexDm->curPsTdma == 11) + { + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 9); + pCoexDm->psTdmaDuAdjType = 9; + } + else if(pCoexDm->curPsTdma == 9) + { + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + pCoexDm->psTdmaDuAdjType = 2; + } + else if(pCoexDm->curPsTdma == 2) + { + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 1); + pCoexDm->psTdmaDuAdjType = 1; + } + } + + if( pCoexDm->curPsTdma != 1 && + pCoexDm->curPsTdma != 2 && + pCoexDm->curPsTdma != 9 && + pCoexDm->curPsTdma != 11 ) + { + // recover to previous adjust type + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, pCoexDm->psTdmaDuAdjType); + } + } +} + +u1Byte +halbtc8192e1ant_PsTdmaTypeByWifiRssi( + IN s4Byte wifiRssi, + IN s4Byte preWifiRssi, + IN u1Byte wifiRssiThresh + ) +{ + u1Byte psTdmaType=0; + + if(wifiRssi > preWifiRssi) + { + if(wifiRssi > (wifiRssiThresh+5)) + { + psTdmaType = 26; + } + else + { + psTdmaType = 25; + } + } + else + { + if(wifiRssi > wifiRssiThresh) + { + psTdmaType = 26; + } + else + { + psTdmaType = 25; + } + } + + return psTdmaType; +} + +VOID +halbtc8192e1ant_PsTdmaCheckForPowerSaveState( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bNewPsState + ) +{ + u1Byte lpsMode=0x0; + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U1_LPS_MODE, &lpsMode); + + if(lpsMode) // already under LPS state + { + if(bNewPsState) + { + // keep state under LPS, do nothing. + } + else + { + // will leave LPS state, turn off psTdma first + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 0); + } + } + else // NO PS state + { + if(bNewPsState) + { + // will enter LPS state, turn off psTdma first + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 0); + } + else + { + // keep state under NO PS state, do nothing. + } + } +} + +VOID +halbtc8192e1ant_PowerSaveState( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte psType, + IN u1Byte lpsVal, + IN u1Byte rpwmVal + ) +{ + BOOLEAN bLowPwrDisable=FALSE; + + switch(psType) + { + case BTC_PS_WIFI_NATIVE: + // recover to original 32k low power setting + bLowPwrDisable = FALSE; + pBtCoexist->btc_set(pBtCoexist, BTC_SET_ACT_DISABLE_LOW_POWER, &bLowPwrDisable); + pBtCoexist->btc_set(pBtCoexist, BTC_SET_ACT_NORMAL_LPS, NULL); + break; + case BTC_PS_LPS_ON: + halbtc8192e1ant_PsTdmaCheckForPowerSaveState(pBtCoexist, true); + halbtc8192e1ant_LpsRpwm(pBtCoexist, NORMAL_EXEC, lpsVal, rpwmVal); + // when coex force to enter LPS, do not enter 32k low power. + bLowPwrDisable = true; + pBtCoexist->btc_set(pBtCoexist, BTC_SET_ACT_DISABLE_LOW_POWER, &bLowPwrDisable); + // power save must executed before psTdma. + pBtCoexist->btc_set(pBtCoexist, BTC_SET_ACT_ENTER_LPS, NULL); + break; + case BTC_PS_LPS_OFF: + halbtc8192e1ant_PsTdmaCheckForPowerSaveState(pBtCoexist, FALSE); + pBtCoexist->btc_set(pBtCoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + break; + default: + break; + } +} + + +VOID +halbtc8192e1ant_ActionWifiOnly( + IN PBTC_COEXIST pBtCoexist + ) +{ + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 0); + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 9); +} + +VOID +halbtc8192e1ant_MonitorBtEnableDisable( + IN PBTC_COEXIST pBtCoexist + ) +{ + static BOOLEAN bPreBtDisabled=FALSE; + static u4Byte btDisableCnt=0; + BOOLEAN bBtActive=true, bBtDisabled=FALSE; + + // This function check if bt is disabled + + if( pCoexSta->highPriorityTx == 0 && + pCoexSta->highPriorityRx == 0 && + pCoexSta->lowPriorityTx == 0 && + pCoexSta->lowPriorityRx == 0) + { + bBtActive = FALSE; + } + if( pCoexSta->highPriorityTx == 0xffff && + pCoexSta->highPriorityRx == 0xffff && + pCoexSta->lowPriorityTx == 0xffff && + pCoexSta->lowPriorityRx == 0xffff) + { + bBtActive = FALSE; + } + if(bBtActive) + { + btDisableCnt = 0; + bBtDisabled = FALSE; + pBtCoexist->btc_set(pBtCoexist, BTC_SET_BL_BT_DISABLE, &bBtDisabled); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], BT is enabled !!\n")); + } + else + { + btDisableCnt++; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], bt all counters=0, %d times!!\n", + btDisableCnt)); + if(btDisableCnt >= 2) + { + bBtDisabled = true; + pBtCoexist->btc_set(pBtCoexist, BTC_SET_BL_BT_DISABLE, &bBtDisabled); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], BT is disabled !!\n")); + halbtc8192e1ant_ActionWifiOnly(pBtCoexist); + } + } + if(bPreBtDisabled != bBtDisabled) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], BT is from %s to %s!!\n", + (bPreBtDisabled ? "disabled":"enabled"), + (bBtDisabled ? "disabled":"enabled"))); + bPreBtDisabled = bBtDisabled; + if(!bBtDisabled) + { + } + else + { + pBtCoexist->btc_set(pBtCoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + pBtCoexist->btc_set(pBtCoexist, BTC_SET_ACT_NORMAL_LPS, NULL); + } + } +} + +//============================================= +// +// Software Coex Mechanism start +// +//============================================= + +// SCO only or SCO+PAN(HS) +VOID +halbtc8192e1ant_ActionSco( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState; + u4Byte wifiBw; + + wifiRssiState = halbtc8192e1ant_WifiRssiState(pBtCoexist, 0, 2, 25, 0); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + + if(BTC_WIFI_BW_HT40 == wifiBw) + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,true,FALSE,0x18); + } + } + else + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,FALSE,FALSE,0x18); + } + } +} + + +VOID +halbtc8192e1ant_ActionHid( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState; + u4Byte wifiBw; + + wifiRssiState = halbtc8192e1ant_WifiRssiState(pBtCoexist, 0, 2, 25, 0); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + + if(BTC_WIFI_BW_HT40 == wifiBw) + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,FALSE,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,FALSE,FALSE,0x18); + } + } + else + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,FALSE,FALSE,0x18); + } + } +} + +//A2DP only / PAN(EDR) only/ A2DP+PAN(HS) +VOID +halbtc8192e1ant_ActionA2dp( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState; + u4Byte wifiBw; + + wifiRssiState = halbtc8192e1ant_WifiRssiState(pBtCoexist, 0, 2, 25, 0); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + + if(BTC_WIFI_BW_HT40 == wifiBw) + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,true,FALSE,0x18); + } + } + else + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,FALSE,FALSE,0x18); + } + } +} + +VOID +halbtc8192e1ant_ActionA2dpPanHs( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState, btInfoExt; + u4Byte wifiBw; + + btInfoExt = pCoexSta->btInfoExt; + wifiRssiState = halbtc8192e1ant_WifiRssiState(pBtCoexist, 0, 2, 25, 0); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + + if(BTC_WIFI_BW_HT40 == wifiBw) + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,true,FALSE,0x18); + } + } + else + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,FALSE,FALSE,0x18); + } + } +} + +VOID +halbtc8192e1ant_ActionPanEdr( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState; + u4Byte wifiBw; + + wifiRssiState = halbtc8192e1ant_WifiRssiState(pBtCoexist, 0, 2, 25, 0); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + + if(BTC_WIFI_BW_HT40 == wifiBw) + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,true,FALSE,0x18); + } + } + else + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,FALSE,FALSE,0x18); + } + } +} + + +//PAN(HS) only +VOID +halbtc8192e1ant_ActionPanHs( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState; + u4Byte wifiBw; + + wifiRssiState = halbtc8192e1ant_WifiRssiState(pBtCoexist, 0, 2, 25, 0); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + + if(BTC_WIFI_BW_HT40 == wifiBw) + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,true,FALSE,0x18); + } + } + else + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,FALSE,FALSE,0x18); + } + } +} + +//PAN(EDR)+A2DP +VOID +halbtc8192e1ant_ActionPanEdrA2dp( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState, btInfoExt; + u4Byte wifiBw; + + btInfoExt = pCoexSta->btInfoExt; + wifiRssiState = halbtc8192e1ant_WifiRssiState(pBtCoexist, 0, 2, 25, 0); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + + if(BTC_WIFI_BW_HT40 == wifiBw) + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,true,FALSE,0x18); + } + } + else + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,FALSE,FALSE,0x18); + } + } +} + +VOID +halbtc8192e1ant_ActionPanEdrHid( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState; + u4Byte wifiBw; + + wifiRssiState = halbtc8192e1ant_WifiRssiState(pBtCoexist, 0, 2, 25, 0); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + + if(BTC_WIFI_BW_HT40 == wifiBw) + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,true,FALSE,0x18); + } + } + else + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,FALSE,FALSE,0x18); + } + } +} + +// HID+A2DP+PAN(EDR) +VOID +halbtc8192e1ant_ActionHidA2dpPanEdr( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState, btInfoExt; + u4Byte wifiBw; + + btInfoExt = pCoexSta->btInfoExt; + wifiRssiState = halbtc8192e1ant_WifiRssiState(pBtCoexist, 0, 2, 25, 0); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + + if(BTC_WIFI_BW_HT40 == wifiBw) + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,true,FALSE,0x18); + } + } + else + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,FALSE,FALSE,0x18); + } + } +} + +VOID +halbtc8192e1ant_ActionHidA2dp( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState, btInfoExt; + u4Byte wifiBw; + + btInfoExt = pCoexSta->btInfoExt; + wifiRssiState = halbtc8192e1ant_WifiRssiState(pBtCoexist, 0, 2, 25, 0); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + + if(BTC_WIFI_BW_HT40 == wifiBw) + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,true,FALSE,0x18); + } + } + else + { + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,true,true,FALSE,0x18); + } + else + { + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,FALSE,FALSE,0x18); + } + } +} + +//============================================= +// +// Non-Software Coex Mechanism start +// +//============================================= +VOID +halbtc8192e1ant_ActionBtInquiry( + IN PBTC_COEXIST pBtCoexist + ) +{ + PBTC_BT_LINK_INFO pBtLinkInfo=&pBtCoexist->bt_link_info; + BOOLEAN bWifiConnected=FALSE, bBtHsOn=FALSE; + + // Note: + // Do not do DacSwing here, use original setting. + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_CONNECTED, &bWifiConnected); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_HS_OPERATION, &bBtHsOn); + if(bBtHsOn) + return; + + if(!bWifiConnected) + { + halbtc8192e1ant_PowerSaveState(pBtCoexist, BTC_PS_WIFI_NATIVE, 0x0, 0x0); + + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 0); + + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 8); + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 0); + } + else if( (pBtLinkInfo->bScoExist) || + (pBtLinkInfo->bHidOnly) ) + { + // SCO/HID-only busy + halbtc8192e1ant_PowerSaveState(pBtCoexist, BTC_PS_WIFI_NATIVE, 0x0, 0x0); + + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 0); + + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 32); + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 1); + } + else + { + halbtc8192e1ant_PowerSaveState(pBtCoexist, BTC_PS_LPS_ON, 0x50, 0x0); + + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 0); + + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 30); + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 0); + } +} + +VOID +halbtc8192e1ant_ActionBtScoHidOnlyBusy( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte wifiStatus + ) +{ + PBTC_BT_LINK_INFO pBtLinkInfo=&pBtCoexist->bt_link_info; + u1Byte btRssiState=BTC_RSSI_STATE_HIGH; + + if(BT_8192E_1ANT_WIFI_STATUS_NON_CONNECTED_ASSO_AUTH_SCAN == wifiStatus) + { + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 0); + halbtc8192e1ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0); + + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 8); + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 0); + } + else + { + if(pBtLinkInfo->bHidOnly) + { + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 0); + halbtc8192e1ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0); + + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 8); + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 2); + } + else + { + // dec bt power for diff level + btRssiState = halbtc8192e1ant_BtRssiState(3, 34, 42); + if( (btRssiState == BTC_RSSI_STATE_LOW) || + (btRssiState == BTC_RSSI_STATE_STAY_LOW) ) + { + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 0); + } + else if( (btRssiState == BTC_RSSI_STATE_MEDIUM) || + (btRssiState == BTC_RSSI_STATE_STAY_MEDIUM) ) + { + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 2); + } + else if( (btRssiState == BTC_RSSI_STATE_HIGH) || + (btRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 6); + } + + // sw dacSwing + halbtc8192e1ant_DacSwing(pBtCoexist, NORMAL_EXEC, true, 0xc); + + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 0); + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 7); + } + } +} + +VOID +halbtc8192e1ant_ActionHs( + IN PBTC_COEXIST pBtCoexist + ) +{ + PBTC_BT_LINK_INFO pBtLinkInfo=&pBtCoexist->bt_link_info; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action for HS!!!\n")); + + halbtc8192e1ant_PowerSaveState(pBtCoexist, BTC_PS_WIFI_NATIVE, 0x0, 0x0); + + if(BT_8192E_1ANT_BT_STATUS_NON_CONNECTED_IDLE == pCoexDm->btStatus) + { + // error, should not be here + pCoexDm->errorCondition = 1; + } + else if(BT_8192E_1ANT_BT_STATUS_CONNECTED_IDLE == pCoexDm->btStatus) + { + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 0); + halbtc8192e1ant_DacSwing(pBtCoexist, NORMAL_EXEC, true, 6); + + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 10); + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 0); + } + else if(BT_8192E_1ANT_BT_STATUS_ACL_BUSY == pCoexDm->btStatus && + !pBtCoexist->bt_link_info.bHidOnly) + { + if(pCoexDm->curSsType == 1) + { + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 0); + halbtc8192e1ant_DacSwing(pBtCoexist, NORMAL_EXEC, true, 6); + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 10); + //halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 38); + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 0); + } + } + else + { + halbtc8192e1ant_ActionBtScoHidOnlyBusy(pBtCoexist, + BT_8192E_1ANT_WIFI_STATUS_CONNECTED_BUSY); + } +} + +VOID +halbtc8192e1ant_ActionWifiConnectedBtAclBusy( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte wifiStatus + ) +{ + PBTC_BT_LINK_INFO pBtLinkInfo=&pBtCoexist->bt_link_info; + + if(pBtLinkInfo->bHidOnly) + { + halbtc8192e1ant_ActionBtScoHidOnlyBusy(pBtCoexist, wifiStatus); + pCoexDm->bAutoTdmaAdjust = FALSE; + return; + } + + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 0); + halbtc8192e1ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0); + + if( (pBtLinkInfo->bA2dpOnly) || + (pBtLinkInfo->bHidExist&&pBtLinkInfo->bA2dpExist) ) + { + halbtc8192e1ant_TdmaDurationAdjustForAcl(pBtCoexist, wifiStatus); + } + else if( (pBtLinkInfo->bPanOnly) || + (pBtLinkInfo->bHidExist&&pBtLinkInfo->bPanExist) ) + { + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 3); + pCoexDm->bAutoTdmaAdjust = FALSE; + } + else + { + if( (BT_8192E_1ANT_WIFI_STATUS_NON_CONNECTED_ASSO_AUTH_SCAN == wifiStatus) || + (BT_8192E_1ANT_WIFI_STATUS_CONNECTED_SCAN == wifiStatus) || + (BT_8192E_1ANT_WIFI_STATUS_CONNECTED_SPECIAL_PKT == wifiStatus) ) + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 9); + else + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->bAutoTdmaAdjust = FALSE; + } + + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 1); +} + + +VOID +halbtc8192e1ant_ActionWifiNotConnected( + IN PBTC_COEXIST pBtCoexist + ) +{ + // power save state + halbtc8192e1ant_PowerSaveState(pBtCoexist, BTC_PS_WIFI_NATIVE, 0x0, 0x0); + + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 0); + halbtc8192e1ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0); + + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 8); + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 0); +} + +VOID +halbtc8192e1ant_ActionWifiNotConnectedAssoAuthScan( + IN PBTC_COEXIST pBtCoexist + ) +{ + halbtc8192e1ant_PowerSaveState(pBtCoexist, BTC_PS_WIFI_NATIVE, 0x0, 0x0); + + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 0); + halbtc8192e1ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0); + + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 8); + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 0); +} + +VOID +halbtc8192e1ant_ActionWifiConnectedScan( + IN PBTC_COEXIST pBtCoexist + ) +{ + // power save state + if(BT_8192E_1ANT_BT_STATUS_ACL_BUSY == pCoexDm->btStatus && !pBtCoexist->bt_link_info.bHidOnly) + halbtc8192e1ant_PowerSaveState(pBtCoexist, BTC_PS_LPS_ON, 0x50, 0x0); + else + halbtc8192e1ant_PowerSaveState(pBtCoexist, BTC_PS_WIFI_NATIVE, 0x0, 0x0); + + if(BT_8192E_1ANT_BT_STATUS_ACL_BUSY == pCoexDm->btStatus) + { + halbtc8192e1ant_ActionWifiConnectedBtAclBusy(pBtCoexist, + BT_8192E_1ANT_WIFI_STATUS_CONNECTED_SCAN); + } + else if( (BT_8192E_1ANT_BT_STATUS_SCO_BUSY == pCoexDm->btStatus) || + (BT_8192E_1ANT_BT_STATUS_ACL_SCO_BUSY == pCoexDm->btStatus) ) + { + halbtc8192e1ant_ActionBtScoHidOnlyBusy(pBtCoexist, + BT_8192E_1ANT_WIFI_STATUS_CONNECTED_SCAN); + } + else + { + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 0); + halbtc8192e1ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0); + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 8); + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 2); + } +} + + +VOID +halbtc8192e1ant_ActionWifiConnectedSpecialPacket( + IN PBTC_COEXIST pBtCoexist + ) +{ + // power save state + if(BT_8192E_1ANT_BT_STATUS_ACL_BUSY == pCoexDm->btStatus && !pBtCoexist->bt_link_info.bHidOnly) + halbtc8192e1ant_PowerSaveState(pBtCoexist, BTC_PS_LPS_ON, 0x50, 0x0); + else + halbtc8192e1ant_PowerSaveState(pBtCoexist, BTC_PS_WIFI_NATIVE, 0x0, 0x0); + + if(BT_8192E_1ANT_BT_STATUS_ACL_BUSY == pCoexDm->btStatus) + { + halbtc8192e1ant_ActionWifiConnectedBtAclBusy(pBtCoexist, + BT_8192E_1ANT_WIFI_STATUS_CONNECTED_SPECIAL_PKT); + } + else + { + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 0); + halbtc8192e1ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0); + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 8); + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 2); + } +} + +VOID +halbtc8192e1ant_ActionWifiConnected( + IN PBTC_COEXIST pBtCoexist + ) +{ + BOOLEAN bWifiConnected=FALSE, bWifiBusy=FALSE; + BOOLEAN bScan=FALSE, bLink=FALSE, bRoam=FALSE; + BOOLEAN bUnder4way=FALSE; + u4Byte wifiBw; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], CoexForWifiConnect()===>\n")); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_CONNECTED, &bWifiConnected); + if(!bWifiConnected) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], CoexForWifiConnect(), return for wifi not connected<===\n")); + return; + } + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_4_WAY_PROGRESS, &bUnder4way); + if(bUnder4way) + { + halbtc8192e1ant_ActionWifiConnectedSpecialPacket(pBtCoexist); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], CoexForWifiConnect(), return for wifi is under 4way<===\n")); + return; + } + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_SCAN, &bScan); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_LINK, &bLink); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_ROAM, &bRoam); + if(bScan || bLink || bRoam) + { + halbtc8192e1ant_ActionWifiConnectedScan(pBtCoexist); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], CoexForWifiConnect(), return for wifi is under scan<===\n")); + return; + } + + // power save state + if(BT_8192E_1ANT_BT_STATUS_ACL_BUSY == pCoexDm->btStatus && !pBtCoexist->bt_link_info.bHidOnly) + halbtc8192e1ant_PowerSaveState(pBtCoexist, BTC_PS_LPS_ON, 0x50, 0x0); + else + halbtc8192e1ant_PowerSaveState(pBtCoexist, BTC_PS_WIFI_NATIVE, 0x0, 0x0); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_BUSY, &bWifiBusy); + if(!bWifiBusy) + { + if(BT_8192E_1ANT_BT_STATUS_ACL_BUSY == pCoexDm->btStatus) + { + halbtc8192e1ant_ActionWifiConnectedBtAclBusy(pBtCoexist, + BT_8192E_1ANT_WIFI_STATUS_CONNECTED_IDLE); + } + else if( (BT_8192E_1ANT_BT_STATUS_SCO_BUSY == pCoexDm->btStatus) || + (BT_8192E_1ANT_BT_STATUS_ACL_SCO_BUSY == pCoexDm->btStatus) ) + { + halbtc8192e1ant_ActionBtScoHidOnlyBusy(pBtCoexist, + BT_8192E_1ANT_WIFI_STATUS_CONNECTED_IDLE); + } + else + { + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 0); + halbtc8192e1ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0); + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 8); + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 2); + } + } + else + { + if(BT_8192E_1ANT_BT_STATUS_NON_CONNECTED_IDLE == pCoexDm->btStatus) + { + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 0); + halbtc8192e1ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0); + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 5); + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 2); + } + else if(BT_8192E_1ANT_BT_STATUS_CONNECTED_IDLE == pCoexDm->btStatus) + { + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 0); + halbtc8192e1ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0); + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 5); + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 2); + } + else if(BT_8192E_1ANT_BT_STATUS_ACL_BUSY == pCoexDm->btStatus) + { + halbtc8192e1ant_ActionWifiConnectedBtAclBusy(pBtCoexist, + BT_8192E_1ANT_WIFI_STATUS_CONNECTED_BUSY); + } + else if( (BT_8192E_1ANT_BT_STATUS_SCO_BUSY == pCoexDm->btStatus) || + (BT_8192E_1ANT_BT_STATUS_ACL_SCO_BUSY == pCoexDm->btStatus) ) + { + halbtc8192e1ant_ActionBtScoHidOnlyBusy(pBtCoexist, + BT_8192E_1ANT_WIFI_STATUS_CONNECTED_BUSY); + } + else + { + halbtc8192e1ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, 0); + halbtc8192e1ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0); + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 8); + halbtc8192e1ant_CoexTableWithType(pBtCoexist, NORMAL_EXEC, 2); + } + } +} + +VOID +halbtc8192e1ant_RunSwCoexistMechanism( + IN PBTC_COEXIST pBtCoexist + ) +{ + BOOLEAN bWifiUnder5G=FALSE, bWifiBusy=FALSE, bWifiConnected=FALSE; + u1Byte btInfoOriginal=0, btRetryCnt=0; + u1Byte algorithm=0; + + return; + + algorithm = halbtc8192e1ant_ActionAlgorithm(pBtCoexist); + pCoexDm->curAlgorithm = algorithm; + + if(halbtc8192e1ant_IsCommonAction(pBtCoexist)) + { + } + else + { + switch(pCoexDm->curAlgorithm) + { + case BT_8192E_1ANT_COEX_ALGO_SCO: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = SCO.\n")); + halbtc8192e1ant_ActionSco(pBtCoexist); + break; + case BT_8192E_1ANT_COEX_ALGO_HID: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = HID.\n")); + halbtc8192e1ant_ActionHid(pBtCoexist); + break; + case BT_8192E_1ANT_COEX_ALGO_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = A2DP.\n")); + halbtc8192e1ant_ActionA2dp(pBtCoexist); + break; + case BT_8192E_1ANT_COEX_ALGO_A2DP_PANHS: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = A2DP+PAN(HS).\n")); + halbtc8192e1ant_ActionA2dpPanHs(pBtCoexist); + break; + case BT_8192E_1ANT_COEX_ALGO_PANEDR: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = PAN(EDR).\n")); + halbtc8192e1ant_ActionPanEdr(pBtCoexist); + break; + case BT_8192E_1ANT_COEX_ALGO_PANHS: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = HS mode.\n")); + halbtc8192e1ant_ActionPanHs(pBtCoexist); + break; + case BT_8192E_1ANT_COEX_ALGO_PANEDR_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = PAN+A2DP.\n")); + halbtc8192e1ant_ActionPanEdrA2dp(pBtCoexist); + break; + case BT_8192E_1ANT_COEX_ALGO_PANEDR_HID: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = PAN(EDR)+HID.\n")); + halbtc8192e1ant_ActionPanEdrHid(pBtCoexist); + break; + case BT_8192E_1ANT_COEX_ALGO_HID_A2DP_PANEDR: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = HID+A2DP+PAN.\n")); + halbtc8192e1ant_ActionHidA2dpPanEdr(pBtCoexist); + break; + case BT_8192E_1ANT_COEX_ALGO_HID_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = HID+A2DP.\n")); + halbtc8192e1ant_ActionHidA2dp(pBtCoexist); + break; + default: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action algorithm = coexist All Off!!\n")); + halbtc8192e1ant_CoexAllOff(pBtCoexist); + break; + } + pCoexDm->preAlgorithm = pCoexDm->curAlgorithm; + } +} + +VOID +halbtc8192e1ant_RunCoexistMechanism( + IN PBTC_COEXIST pBtCoexist + ) +{ + PBTC_BT_LINK_INFO pBtLinkInfo=&pBtCoexist->bt_link_info; + BOOLEAN bWifiConnected=FALSE, bBtHsOn=FALSE; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], RunCoexistMechanism()===>\n")); + + if(pBtCoexist->manual_control) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], RunCoexistMechanism(), return for Manual CTRL <===\n")); + return; + } + + if(pBtCoexist->bStopCoexDm) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], RunCoexistMechanism(), return for Stop Coex DM <===\n")); + return; + } + + if(pCoexSta->bUnderIps) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], wifi is under IPS !!!\n")); + return; + } + + halbtc8192e1ant_RunSwCoexistMechanism(pBtCoexist); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_HS_OPERATION, &bBtHsOn); + if(pCoexSta->bC2hBtInquiryPage) + { + halbtc8192e1ant_ActionBtInquiry(pBtCoexist); + return; + } + + // 1ss or 2ss + if(pBtLinkInfo->bScoExist) + { + halbtc8192e1ant_SwitchSsType(pBtCoexist, NORMAL_EXEC, 1); + } + else if(bBtHsOn) + { + if(pBtLinkInfo->bHidOnly) + halbtc8192e1ant_SwitchSsType(pBtCoexist, NORMAL_EXEC, 2); + else + halbtc8192e1ant_SwitchSsType(pBtCoexist, NORMAL_EXEC, 1); + } + else + halbtc8192e1ant_SwitchSsType(pBtCoexist, NORMAL_EXEC, 2); + + if(bBtHsOn) + { + halbtc8192e1ant_ActionHs(pBtCoexist); + return; + } + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_CONNECTED, &bWifiConnected); + if(!bWifiConnected) + { + BOOLEAN bScan=FALSE, bLink=FALSE, bRoam=FALSE; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], wifi is non connected-idle !!!\n")); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_SCAN, &bScan); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_LINK, &bLink); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_ROAM, &bRoam); + + if(bScan || bLink || bRoam) + halbtc8192e1ant_ActionWifiNotConnectedAssoAuthScan(pBtCoexist); + else + halbtc8192e1ant_ActionWifiNotConnected(pBtCoexist); + } + else + { + halbtc8192e1ant_ActionWifiConnected(pBtCoexist); + } +} + +VOID +halbtc8192e1ant_InitCoexDm( + IN PBTC_COEXIST pBtCoexist + ) +{ + // force to reset coex mechanism + halbtc8192e1ant_FwDacSwingLvl(pBtCoexist, FORCE_EXEC, 6); + halbtc8192e1ant_DecBtPwr(pBtCoexist, FORCE_EXEC, 0); + + // sw all off + halbtc8192e1ant_SwMechanism1(pBtCoexist,FALSE,FALSE,FALSE,FALSE); + halbtc8192e1ant_SwMechanism2(pBtCoexist,FALSE,FALSE,FALSE,0x18); + + halbtc8192e1ant_SwitchSsType(pBtCoexist, FORCE_EXEC, 2); + + halbtc8192e1ant_PsTdma(pBtCoexist, FORCE_EXEC, FALSE, 8); + halbtc8192e1ant_CoexTableWithType(pBtCoexist, FORCE_EXEC, 0); +} + +//============================================================ +// work around function start with wa_halbtc8192e1ant_ +//============================================================ +//============================================================ +// extern function start with EXhalbtc8192e1ant_ +//============================================================ +VOID +EXhalbtc8192e1ant_InitHwConfig( + IN PBTC_COEXIST pBtCoexist + ) +{ + u4Byte u4Tmp=0; + u16 u2Tmp=0; + u1Byte u1Tmp=0; + + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, ("[BTCoex], 1Ant Init HW Config!!\n")); + + // backup rf 0x1e value + pCoexDm->btRf0x1eBackup = + pBtCoexist->btc_get_rf_reg(pBtCoexist, BTC_RF_A, 0x1e, 0xfffff); + + // antenna sw ctrl to bt + pBtCoexist->btc_write_1byte(pBtCoexist, 0x4f, 0x6); + pBtCoexist->btc_write_1byte(pBtCoexist, 0x944, 0x24); + pBtCoexist->btc_write_4byte(pBtCoexist, 0x930, 0x700700); + pBtCoexist->btc_write_1byte(pBtCoexist, 0x92c, 0x20); + if(pBtCoexist->chipInterface == BTC_INTF_USB) + pBtCoexist->btc_write_4byte(pBtCoexist, 0x64, 0x30430004); + else + pBtCoexist->btc_write_4byte(pBtCoexist, 0x64, 0x30030004); + + halbtc8192e1ant_CoexTableWithType(pBtCoexist, FORCE_EXEC, 0); + + // antenna switch control parameter + pBtCoexist->btc_write_4byte(pBtCoexist, 0x858, 0x55555555); + + // coex parameters + pBtCoexist->btc_write_1byte(pBtCoexist, 0x778, 0x1); + // 0x790[5:0]=0x5 + u1Tmp = pBtCoexist->btc_read_1byte(pBtCoexist, 0x790); + u1Tmp &= 0xc0; + u1Tmp |= 0x5; + pBtCoexist->btc_write_1byte(pBtCoexist, 0x790, u1Tmp); + + // enable counter statistics + pBtCoexist->btc_write_1byte(pBtCoexist, 0x76e, 0x4); + + // enable PTA + pBtCoexist->btc_write_1byte(pBtCoexist, 0x40, 0x20); + // enable mailbox interface + u2Tmp = pBtCoexist->btc_read_2byte(pBtCoexist, 0x40); + u2Tmp |= BIT9; + pBtCoexist->btc_write_2byte(pBtCoexist, 0x40, u2Tmp); + + // enable PTA I2C mailbox + u1Tmp = pBtCoexist->btc_read_1byte(pBtCoexist, 0x101); + u1Tmp |= BIT4; + pBtCoexist->btc_write_1byte(pBtCoexist, 0x101, u1Tmp); + + // enable bt clock when wifi is disabled. + u1Tmp = pBtCoexist->btc_read_1byte(pBtCoexist, 0x93); + u1Tmp |= BIT0; + pBtCoexist->btc_write_1byte(pBtCoexist, 0x93, u1Tmp); + // enable bt clock when suspend. + u1Tmp = pBtCoexist->btc_read_1byte(pBtCoexist, 0x7); + u1Tmp |= BIT0; + pBtCoexist->btc_write_1byte(pBtCoexist, 0x7, u1Tmp); +} + +VOID +EXhalbtc8192e1ant_InitCoexDm( + IN PBTC_COEXIST pBtCoexist + ) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, ("[BTCoex], Coex Mechanism Init!!\n")); + + pBtCoexist->bStopCoexDm = FALSE; + + halbtc8192e1ant_InitCoexDm(pBtCoexist); +} + +VOID +EXhalbtc8192e1ant_DisplayCoexInfo( + IN PBTC_COEXIST pBtCoexist + ) +{ + struct btc_board_info * pBoardInfo=&pBtCoexist->board_info; + PBTC_STACK_INFO pStackInfo=&pBtCoexist->stack_info; + PBTC_BT_LINK_INFO pBtLinkInfo=&pBtCoexist->bt_link_info; + pu1Byte cliBuf=pBtCoexist->cli_buf; + u1Byte u1Tmp[4], i, btInfoExt, psTdmaCase=0; + u4Byte u4Tmp[4]; + BOOLEAN bRoam=FALSE, bScan=FALSE, bLink=FALSE, bWifiUnder5G=FALSE; + BOOLEAN bBtHsOn=FALSE, bWifiBusy=FALSE; + s4Byte wifiRssi=0, btHsRssi=0; + u4Byte wifiBw, wifiTrafficDir; + u1Byte wifiDot11Chnl, wifiHsChnl; + u4Byte fwVer=0, btPatchVer=0; + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n ============[BT Coexist info]============"); + CL_PRINTF(cliBuf); + + if(pBtCoexist->manual_control) + { + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n ============[Under Manual Control]============"); + CL_PRINTF(cliBuf); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n =========================================="); + CL_PRINTF(cliBuf); + } + if(pBtCoexist->bStopCoexDm) + { + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n ============[Coex is STOPPED]============"); + CL_PRINTF(cliBuf); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n =========================================="); + CL_PRINTF(cliBuf); + } + + if(!pBoardInfo->bt_exist) + { + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n BT not exists !!!"); + CL_PRINTF(cliBuf); + return; + } + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d ", "Ant PG number/ Ant mechanism:", \ + pBoardInfo->pg_ant_num, pBoardInfo->btdm_ant_num); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s / %d", "BT stack/ hci ext ver", \ + ((pStackInfo->bProfileNotified)? "Yes":"No"), pStackInfo->hciVersion); + CL_PRINTF(cliBuf); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_BT_PATCH_VER, &btPatchVer); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_FW_VER, &fwVer); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d_%d/ 0x%x/ 0x%x(%d)", "CoexVer/ FwVer/ PatchVer", \ + GLCoexVerDate8192e1Ant, GLCoexVer8192e1Ant, fwVer, btPatchVer, btPatchVer); + CL_PRINTF(cliBuf); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_HS_OPERATION, &bBtHsOn); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U1_WIFI_DOT11_CHNL, &wifiDot11Chnl); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U1_WIFI_HS_CHNL, &wifiHsChnl); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d(%d)", "Dot11 channel / HsChnl(HsMode)", \ + wifiDot11Chnl, wifiHsChnl, bBtHsOn); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x ", "H2C Wifi inform bt chnl Info", \ + pCoexDm->wifiChnlInfo[0], pCoexDm->wifiChnlInfo[1], + pCoexDm->wifiChnlInfo[2]); + CL_PRINTF(cliBuf); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_S4_WIFI_RSSI, &wifiRssi); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_S4_HS_RSSI, &btHsRssi); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", "Wifi rssi/ HS rssi", \ + wifiRssi, btHsRssi); + CL_PRINTF(cliBuf); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_SCAN, &bScan); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_LINK, &bLink); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_ROAM, &bRoam); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d ", "Wifi bLink/ bRoam/ bScan", \ + bLink, bRoam, bScan); + CL_PRINTF(cliBuf); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_UNDER_5G, &bWifiUnder5G); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_BUSY, &bWifiBusy); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_TRAFFIC_DIRECTION, &wifiTrafficDir); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s / %s/ %s ", "Wifi status", \ + (bWifiUnder5G? "5G":"2.4G"), + ((BTC_WIFI_BW_LEGACY==wifiBw)? "Legacy": (((BTC_WIFI_BW_HT40==wifiBw)? "HT40":"HT20"))), + ((!bWifiBusy)? "idle": ((BTC_WIFI_TRAFFIC_TX==wifiTrafficDir)? "uplink":"downlink"))); + CL_PRINTF(cliBuf); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = [%s/ %d/ %d] ", "BT [status/ rssi/ retryCnt]", \ + ((pBtCoexist->btInfo.bBtDisabled)? ("disabled"): ((pCoexSta->bC2hBtInquiryPage)?("inquiry/page scan"):((BT_8192E_1ANT_BT_STATUS_NON_CONNECTED_IDLE == pCoexDm->btStatus)? "non-connected idle": + ( (BT_8192E_1ANT_BT_STATUS_CONNECTED_IDLE == pCoexDm->btStatus)? "connected-idle":"busy")))), + pCoexSta->btRssi, pCoexSta->btRetryCnt); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d / %d / %d", "SCO/HID/PAN/A2DP", \ + pBtLinkInfo->bScoExist, pBtLinkInfo->bHidExist, pBtLinkInfo->bPanExist, pBtLinkInfo->bA2dpExist); + CL_PRINTF(cliBuf); + pBtCoexist->btc_disp_dbg_msg(pBtCoexist, BTC_DBG_DISP_BT_LINK_INFO); + + btInfoExt = pCoexSta->btInfoExt; + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s", "BT Info A2DP rate", \ + (btInfoExt&BIT0)? "Basic rate":"EDR rate"); + CL_PRINTF(cliBuf); + + for(i=0; ibtInfoC2hCnt[i]) + { + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x %02x %02x %02x %02x(%d)", GLBtInfoSrc8192e1Ant[i], \ + pCoexSta->btInfoC2h[i][0], pCoexSta->btInfoC2h[i][1], + pCoexSta->btInfoC2h[i][2], pCoexSta->btInfoC2h[i][3], + pCoexSta->btInfoC2h[i][4], pCoexSta->btInfoC2h[i][5], + pCoexSta->btInfoC2h[i][6], pCoexSta->btInfoC2hCnt[i]); + CL_PRINTF(cliBuf); + } + } + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/%s, (0x%x/0x%x)", "PS state, IPS/LPS, (lps/rpwm)", \ + ((pCoexSta->bUnderIps? "IPS ON":"IPS OFF")), + ((pCoexSta->bUnderLps? "LPS ON":"LPS OFF")), + pBtCoexist->btInfo.lps1Ant, + pBtCoexist->btInfo.rpwm_1ant); + CL_PRINTF(cliBuf); + pBtCoexist->btc_disp_dbg_msg(pBtCoexist, BTC_DBG_DISP_FW_PWR_MODE_CMD); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x ", "SS Type", \ + pCoexDm->curSsType); + CL_PRINTF(cliBuf); + + if(!pBtCoexist->manual_control) + { + // Sw mechanism + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "============[Sw mechanism]============"); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d/ %d ", "SM1[ShRf/ LpRA/ LimDig/ btLna]", \ + pCoexDm->bCurRfRxLpfShrink, pCoexDm->bCurLowPenaltyRa, pCoexDm->limited_dig, pCoexDm->bCurBtLnaConstrain); + CL_PRINTF(cliBuf); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d(0x%x) ", "SM2[AgcT/ AdcB/ SwDacSwing(lvl)]", \ + pCoexDm->bCurAgcTableEn, pCoexDm->bCurAdcBackOff, pCoexDm->bCurDacSwingOn, pCoexDm->curDacSwingLvl); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/ %s/ %d ", "DelBA/ BtCtrlAgg/ AggSize", \ + (pBtCoexist->btInfo.reject_agg_pkt? "Yes":"No"), (pBtCoexist->btInfo.b_bt_ctrl_agg_buf_size? "Yes":"No"), + pBtCoexist->btInfo.aggBufSize); + CL_PRINTF(cliBuf); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x ", "Rate Mask", \ + pBtCoexist->btInfo.ra_mask); + CL_PRINTF(cliBuf); + + // Fw mechanism + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "============[Fw mechanism]============"); + CL_PRINTF(cliBuf); + + psTdmaCase = pCoexDm->curPsTdma; + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x %02x %02x case-%d (auto:%d)", "PS TDMA", \ + pCoexDm->psTdmaPara[0], pCoexDm->psTdmaPara[1], + pCoexDm->psTdmaPara[2], pCoexDm->psTdmaPara[3], + pCoexDm->psTdmaPara[4], psTdmaCase, pCoexDm->bAutoTdmaAdjust); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x ", "Latest error condition(should be 0)", \ + pCoexDm->errorCondition); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d ", "DecBtPwrLvl/ IgnWlanAct", \ + pCoexDm->curBtDecPwrLvl, pCoexDm->bCurIgnoreWlanAct); + CL_PRINTF(cliBuf); + } + + // Hw setting + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "============[Hw setting]============"); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "RF-A, 0x1e initVal", \ + pCoexDm->btRf0x1eBackup); + CL_PRINTF(cliBuf); + + u4Tmp[0] = pBtCoexist->btc_read_4byte(pBtCoexist, 0xc04); + u4Tmp[1] = pBtCoexist->btc_read_4byte(pBtCoexist, 0xd04); + u4Tmp[2] = pBtCoexist->btc_read_4byte(pBtCoexist, 0x90c); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", "0xc04/ 0xd04/ 0x90c", \ + u4Tmp[0], u4Tmp[1], u4Tmp[2]); + CL_PRINTF(cliBuf); + + u1Tmp[0] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x778); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x778", \ + u1Tmp[0]); + CL_PRINTF(cliBuf); + + u1Tmp[0] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x92c); + u4Tmp[0] = pBtCoexist->btc_read_4byte(pBtCoexist, 0x930); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", "0x92c/ 0x930", \ + (u1Tmp[0]), u4Tmp[0]); + CL_PRINTF(cliBuf); + + u1Tmp[0] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x40); + u1Tmp[1] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x4f); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", "0x40/ 0x4f", \ + u1Tmp[0], u1Tmp[1]); + CL_PRINTF(cliBuf); + + u4Tmp[0] = pBtCoexist->btc_read_4byte(pBtCoexist, 0x550); + u1Tmp[0] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x522); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", "0x550(bcn ctrl)/0x522", \ + u4Tmp[0], u1Tmp[0]); + CL_PRINTF(cliBuf); + + u4Tmp[0] = pBtCoexist->btc_read_4byte(pBtCoexist, 0xc50); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0xc50(dig)", \ + u4Tmp[0]); + CL_PRINTF(cliBuf); + + u4Tmp[0] = pBtCoexist->btc_read_4byte(pBtCoexist, 0x6c0); + u4Tmp[1] = pBtCoexist->btc_read_4byte(pBtCoexist, 0x6c4); + u4Tmp[2] = pBtCoexist->btc_read_4byte(pBtCoexist, 0x6c8); + u1Tmp[0] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x6cc); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", "0x6c0/0x6c4/0x6c8/0x6cc(coexTable)", \ + u4Tmp[0], u4Tmp[1], u4Tmp[2], u1Tmp[0]); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", "0x770(hp rx[31:16]/tx[15:0])", \ + pCoexSta->highPriorityRx, pCoexSta->highPriorityTx); + CL_PRINTF(cliBuf); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", "0x774(lp rx[31:16]/tx[15:0])", \ + pCoexSta->lowPriorityRx, pCoexSta->lowPriorityTx); + CL_PRINTF(cliBuf); +#if(BT_AUTO_REPORT_ONLY_8192E_1ANT == 1) + halbtc8192e1ant_MonitorBtCtr(pBtCoexist); +#endif + + pBtCoexist->btc_disp_dbg_msg(pBtCoexist, BTC_DBG_DISP_COEX_STATISTICS); +} + + +VOID +EXhalbtc8192e1ant_IpsNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + u4Byte u4Tmp=0; + + if(pBtCoexist->manual_control || pBtCoexist->bStopCoexDm) + return; + + if(BTC_IPS_ENTER == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], IPS ENTER notify\n")); + pCoexSta->bUnderIps = true; + halbtc8192e1ant_CoexAllOff(pBtCoexist); + } + else if(BTC_IPS_LEAVE == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], IPS LEAVE notify\n")); + pCoexSta->bUnderIps = FALSE; + } +} + +VOID +EXhalbtc8192e1ant_LpsNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + if(pBtCoexist->manual_control || pBtCoexist->bStopCoexDm) + return; + + if(BTC_LPS_ENABLE == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], LPS ENABLE notify\n")); + pCoexSta->bUnderLps = true; + } + else if(BTC_LPS_DISABLE == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], LPS DISABLE notify\n")); + pCoexSta->bUnderLps = FALSE; + } +} + +VOID +EXhalbtc8192e1ant_ScanNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + BOOLEAN bWifiConnected=FALSE, bBtHsOn=FALSE; + + if(pBtCoexist->manual_control || + pBtCoexist->bStopCoexDm || + pBtCoexist->btInfo.bBtDisabled ) + return; + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_HS_OPERATION, &bBtHsOn); + if(pCoexSta->bC2hBtInquiryPage) + { + halbtc8192e1ant_ActionBtInquiry(pBtCoexist); + return; + } + else if(bBtHsOn) + { + halbtc8192e1ant_ActionHs(pBtCoexist); + return; + } + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_CONNECTED, &bWifiConnected); + if(BTC_SCAN_START == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], SCAN START notify\n")); + if(!bWifiConnected) // non-connected scan + { + halbtc8192e1ant_ActionWifiNotConnectedAssoAuthScan(pBtCoexist); + } + else // wifi is connected + { + halbtc8192e1ant_ActionWifiConnectedScan(pBtCoexist); + } + } + else if(BTC_SCAN_FINISH == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], SCAN FINISH notify\n")); + if(!bWifiConnected) // non-connected scan + { + halbtc8192e1ant_ActionWifiNotConnected(pBtCoexist); + } + else + { + halbtc8192e1ant_ActionWifiConnected(pBtCoexist); + } + } +} + +VOID +EXhalbtc8192e1ant_ConnectNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + BOOLEAN bWifiConnected=FALSE, bBtHsOn=FALSE; + + if(pBtCoexist->manual_control || + pBtCoexist->bStopCoexDm || + pBtCoexist->btInfo.bBtDisabled ) + return; + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_HS_OPERATION, &bBtHsOn); + if(pCoexSta->bC2hBtInquiryPage) + { + halbtc8192e1ant_ActionBtInquiry(pBtCoexist); + return; + } + else if(bBtHsOn) + { + halbtc8192e1ant_ActionHs(pBtCoexist); + return; + } + + if(BTC_ASSOCIATE_START == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], CONNECT START notify\n")); + halbtc8192e1ant_ActionWifiNotConnectedAssoAuthScan(pBtCoexist); + } + else if(BTC_ASSOCIATE_FINISH == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], CONNECT FINISH notify\n")); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_CONNECTED, &bWifiConnected); + if(!bWifiConnected) // non-connected scan + { + halbtc8192e1ant_ActionWifiNotConnected(pBtCoexist); + } + else + { + halbtc8192e1ant_ActionWifiConnected(pBtCoexist); + } + } +} + +VOID +EXhalbtc8192e1ant_MediaStatusNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + u1Byte H2C_Parameter[3] ={0}; + u4Byte wifiBw; + u1Byte wifiCentralChnl; + + if(pBtCoexist->manual_control || + pBtCoexist->bStopCoexDm || + pBtCoexist->btInfo.bBtDisabled ) + return; + + if(BTC_MEDIA_CONNECT == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], MEDIA connect notify\n")); + } + else + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], MEDIA disconnect notify\n")); + } + + // only 2.4G we need to inform bt the chnl mask + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U1_WIFI_CENTRAL_CHNL, &wifiCentralChnl); + if( (BTC_MEDIA_CONNECT == type) && + (wifiCentralChnl <= 14) ) + { + H2C_Parameter[0] = 0x1; + H2C_Parameter[1] = wifiCentralChnl; + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + if(BTC_WIFI_BW_HT40 == wifiBw) + H2C_Parameter[2] = 0x30; + else + H2C_Parameter[2] = 0x20; + } + + pCoexDm->wifiChnlInfo[0] = H2C_Parameter[0]; + pCoexDm->wifiChnlInfo[1] = H2C_Parameter[1]; + pCoexDm->wifiChnlInfo[2] = H2C_Parameter[2]; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], FW write 0x66=0x%x\n", + H2C_Parameter[0]<<16|H2C_Parameter[1]<<8|H2C_Parameter[2])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x66, 3, H2C_Parameter); +} + +VOID +EXhalbtc8192e1ant_SpecialPacketNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + BOOLEAN bBtHsOn=FALSE; + + if(pBtCoexist->manual_control || + pBtCoexist->bStopCoexDm || + pBtCoexist->btInfo.bBtDisabled ) + return; + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_HS_OPERATION, &bBtHsOn); + if(pCoexSta->bC2hBtInquiryPage) + { + halbtc8192e1ant_ActionBtInquiry(pBtCoexist); + return; + } + else if(bBtHsOn) + { + halbtc8192e1ant_ActionHs(pBtCoexist); + return; + } + + if( BTC_PACKET_DHCP == type || + BTC_PACKET_EAPOL == type ) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], special Packet(%d) notify\n", type)); + halbtc8192e1ant_ActionWifiConnectedSpecialPacket(pBtCoexist); + } +} + +VOID +EXhalbtc8192e1ant_BtInfoNotify( + IN PBTC_COEXIST pBtCoexist, + IN pu1Byte tmpBuf, + IN u1Byte length + ) +{ + PBTC_BT_LINK_INFO pBtLinkInfo=&pBtCoexist->bt_link_info; + u1Byte btInfo=0; + u1Byte i, rspSource=0; + static u4Byte setBtPsdMode=0; + BOOLEAN bBtBusy=FALSE, limited_dig=FALSE; + BOOLEAN bWifiConnected=FALSE; + BOOLEAN b_bt_ctrl_agg_buf_size=FALSE; + + pCoexSta->bC2hBtInfoReqSent = FALSE; + + rspSource = tmpBuf[0]&0xf; + if(rspSource >= BT_INFO_SRC_8192E_1ANT_MAX) + rspSource = BT_INFO_SRC_8192E_1ANT_WIFI_FW; + pCoexSta->btInfoC2hCnt[rspSource]++; + + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], Bt info[%d], length=%d, hex data=[", rspSource, length)); + for(i=0; ibtInfoC2h[rspSource][i] = tmpBuf[i]; + if(i == 1) + btInfo = tmpBuf[i]; + if(i == length-1) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("0x%02x]\n", tmpBuf[i])); + } + else + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("0x%02x, ", tmpBuf[i])); + } + } + + if(pBtCoexist->btInfo.bBtDisabled) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BtInfoNotify(), return for BT is disabled <===\n")); + return; + } + + if(pBtCoexist->manual_control) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BtInfoNotify(), return for Manual CTRL<===\n")); + return; + } + if(pBtCoexist->bStopCoexDm) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BtInfoNotify(), return for Coex STOPPED!!<===\n")); + return; + } + + if(BT_INFO_SRC_8192E_1ANT_WIFI_FW != rspSource) + { + pCoexSta->btRetryCnt = // [3:0] + pCoexSta->btInfoC2h[rspSource][2]&0xf; + + pCoexSta->btRssi = + pCoexSta->btInfoC2h[rspSource][3]*2+10; + + pCoexSta->btInfoExt = + pCoexSta->btInfoC2h[rspSource][4]; + + // Here we need to resend some wifi info to BT + // because bt is reset and loss of the info. + if( (pCoexSta->btInfoExt & BIT1) ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BT ext info bit1 check, send wifi BW&Chnl to BT!!\n")); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_CONNECTED, &bWifiConnected); + if(bWifiConnected) + { + EXhalbtc8192e1ant_MediaStatusNotify(pBtCoexist, BTC_MEDIA_CONNECT); + } + else + { + EXhalbtc8192e1ant_MediaStatusNotify(pBtCoexist, BTC_MEDIA_DISCONNECT); + } + + setBtPsdMode = 0; + } + + // test-chip bt patch only rsp the status for BT_RSP, + // so temporary we consider the following only under BT_RSP + if(BT_INFO_SRC_8192E_1ANT_BT_RSP == rspSource) + { + if( (pCoexSta->btInfoExt & BIT3) ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BT ext info bit3 check, set BT NOT to ignore Wlan active!!\n")); + halbtc8192e1ant_IgnoreWlanAct(pBtCoexist, FORCE_EXEC, FALSE); + } + else + { + // BT already NOT ignore Wlan active, do nothing here. + } +#if(BT_AUTO_REPORT_ONLY_8192E_1ANT == 0) + if( (pCoexSta->btInfoExt & BIT4) ) + { + // BT auto report already enabled, do nothing + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BT ext info bit4 check, set BT to enable Auto Report!!\n")); + halbtc8192e1ant_BtAutoReport(pBtCoexist, FORCE_EXEC, true); + } +#endif + } + } + + // check BIT2 first ==> check if bt is under inquiry or page scan + if(btInfo & BT_INFO_8192E_1ANT_B_INQ_PAGE) + pCoexSta->bC2hBtInquiryPage = true; + else + pCoexSta->bC2hBtInquiryPage = FALSE; + + // set link exist status + if(!(btInfo&BT_INFO_8192E_1ANT_B_CONNECTION)) + { + pCoexSta->bBtLinkExist = FALSE; + pCoexSta->bPanExist = FALSE; + pCoexSta->bA2dpExist = FALSE; + pCoexSta->bHidExist = FALSE; + pCoexSta->bScoExist = FALSE; + } + else // connection exists + { + pCoexSta->bBtLinkExist = true; + if(btInfo & BT_INFO_8192E_1ANT_B_FTP) + pCoexSta->bPanExist = true; + else + pCoexSta->bPanExist = FALSE; + if(btInfo & BT_INFO_8192E_1ANT_B_A2DP) + pCoexSta->bA2dpExist = true; + else + pCoexSta->bA2dpExist = FALSE; + if(btInfo & BT_INFO_8192E_1ANT_B_HID) + pCoexSta->bHidExist = true; + else + pCoexSta->bHidExist = FALSE; + if(btInfo & BT_INFO_8192E_1ANT_B_SCO_ESCO) + pCoexSta->bScoExist = true; + else + pCoexSta->bScoExist = FALSE; + } + + halbtc8192e1ant_UpdateBtLinkInfo(pBtCoexist); + + if(!(btInfo&BT_INFO_8192E_1ANT_B_CONNECTION)) + { + pCoexDm->btStatus = BT_8192E_1ANT_BT_STATUS_NON_CONNECTED_IDLE; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BtInfoNotify(), bt non-connected idle!!!\n")); + } + else if(btInfo == BT_INFO_8192E_1ANT_B_CONNECTION) // connection exists but no busy + { + pCoexDm->btStatus = BT_8192E_1ANT_BT_STATUS_CONNECTED_IDLE; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BtInfoNotify(), bt connected-idle!!!\n")); + } + else if((btInfo&BT_INFO_8192E_1ANT_B_SCO_ESCO) || + (btInfo&BT_INFO_8192E_1ANT_B_SCO_BUSY)) + { + pCoexDm->btStatus = BT_8192E_1ANT_BT_STATUS_SCO_BUSY; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BtInfoNotify(), bt sco busy!!!\n")); + } + else if( (btInfo&BT_INFO_8192E_1ANT_B_ACL_BUSY) || + (btInfo&BT_INFO_8192E_1ANT_B_A2DP) || + (btInfo&BT_INFO_8192E_1ANT_B_FTP) ) + { + if(BT_8192E_1ANT_BT_STATUS_ACL_BUSY != pCoexDm->btStatus) + pCoexDm->bAutoTdmaAdjust = FALSE; + pCoexDm->btStatus = BT_8192E_1ANT_BT_STATUS_ACL_BUSY; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BtInfoNotify(), bt acl busy!!!\n")); + } + else + { + pCoexDm->btStatus = BT_8192E_1ANT_BT_STATUS_MAX; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], BtInfoNotify(), bt non-defined state!!!\n")); + } + + // ra mask check + if(pBtLinkInfo->bScoExist || pBtLinkInfo->bHidExist) + { + halbtc8192e1ant_Updatera_mask(pBtCoexist, NORMAL_EXEC, BTC_RATE_DISABLE, 0x00000003); // disable tx cck 1M/2M + } + else + { + halbtc8192e1ant_Updatera_mask(pBtCoexist, NORMAL_EXEC, BTC_RATE_ENABLE, 0x00000003); // enable tx cck 1M/2M + } + + if( (BT_8192E_1ANT_BT_STATUS_ACL_BUSY == pCoexDm->btStatus) || + (BT_8192E_1ANT_BT_STATUS_SCO_BUSY == pCoexDm->btStatus) || + (BT_8192E_1ANT_BT_STATUS_ACL_SCO_BUSY == pCoexDm->btStatus) ) + { + bBtBusy = true; + limited_dig = true; + if(pBtLinkInfo->bHidExist) + b_bt_ctrl_agg_buf_size = true; + } + else + { + bBtBusy = FALSE; + limited_dig = FALSE; + } + pBtCoexist->btc_set(pBtCoexist, BTC_SET_BL_BT_TRAFFIC_BUSY, &bBtBusy); + + //============================================ + // Aggregation related setting + //============================================ + // if sco, reject AddBA + //pBtCoexist->btc_set(pBtCoexist, BTC_SET_BL_TO_REJ_AP_AGG_PKT, &bRejApAggPkt); + + // decide BT control aggregation buf size or not + pBtCoexist->btc_set(pBtCoexist, BTC_SET_BL_BT_CTRL_AGG_SIZE, &b_bt_ctrl_agg_buf_size); + // real update aggregation setting + pBtCoexist->btc_set(pBtCoexist, BTC_SET_ACT_AGGREGATE_CTRL, NULL); + //============================================ + + pCoexDm->limited_dig = limited_dig; + pBtCoexist->btc_set(pBtCoexist, BTC_SET_BL_BT_LIMITED_DIG, &limited_dig); + + halbtc8192e1ant_RunCoexistMechanism(pBtCoexist); +} + +VOID +EXhalbtc8192e1ant_StackOperationNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + if(BTC_STACK_OP_INQ_PAGE_PAIR_START == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], StackOP Inquiry/page/pair start notify\n")); + } + else if(BTC_STACK_OP_INQ_PAGE_PAIR_FINISH == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], StackOP Inquiry/page/pair finish notify\n")); + } +} + +VOID +EXhalbtc8192e1ant_HaltNotify( + IN PBTC_COEXIST pBtCoexist + ) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], Halt notify\n")); + + pBtCoexist->bStopCoexDm = true; + halbtc8192e1ant_IgnoreWlanAct(pBtCoexist, FORCE_EXEC, true); + + halbtc8192e1ant_PowerSaveState(pBtCoexist, BTC_PS_WIFI_NATIVE, 0x0, 0x0); + + halbtc8192e1ant_PsTdma(pBtCoexist, FORCE_EXEC, FALSE, 0); + pBtCoexist->btc_write_1byte(pBtCoexist, 0x4f, 0xf); + + EXhalbtc8192e1ant_MediaStatusNotify(pBtCoexist, BTC_MEDIA_DISCONNECT); +} + +VOID +EXhalbtc8192e1ant_PnpNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte pnpState + ) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], Pnp notify\n")); + + if(BTC_WIFI_PNP_SLEEP == pnpState) + { + pBtCoexist->bStopCoexDm = true; + halbtc8192e1ant_IgnoreWlanAct(pBtCoexist, FORCE_EXEC, true); + halbtc8192e1ant_PowerSaveState(pBtCoexist, BTC_PS_WIFI_NATIVE, 0x0, 0x0); + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 9); + } + else if(BTC_WIFI_PNP_WAKE_UP == pnpState) + { + + } +} + +VOID +EXhalbtc8192e1ant_Periodical( + IN PBTC_COEXIST pBtCoexist + ) +{ + static u1Byte disVerInfoCnt=0; + u4Byte fwVer=0, btPatchVer=0; + struct btc_board_info * pBoardInfo=&pBtCoexist->board_info; + PBTC_STACK_INFO pStackInfo=&pBtCoexist->stack_info; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], ==========================Periodical===========================\n")); + + if(disVerInfoCnt <= 5) + { + disVerInfoCnt += 1; + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, ("[BTCoex], ****************************************************************\n")); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, ("[BTCoex], Ant PG Num/ Ant Mech/ Ant Pos = %d/ %d/ %d\n", \ + pBoardInfo->pg_ant_num, pBoardInfo->btdm_ant_num, pBoardInfo->btdm_ant_pos)); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, ("[BTCoex], BT stack/ hci ext ver = %s / %d\n", \ + ((pStackInfo->bProfileNotified)? "Yes":"No"), pStackInfo->hciVersion)); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_BT_PATCH_VER, &btPatchVer); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_FW_VER, &fwVer); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, ("[BTCoex], CoexVer/ FwVer/ PatchVer = %d_%x/ 0x%x/ 0x%x(%d)\n", \ + GLCoexVerDate8192e1Ant, GLCoexVer8192e1Ant, fwVer, btPatchVer, btPatchVer)); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, ("[BTCoex], ****************************************************************\n")); + } +#if(BT_AUTO_REPORT_ONLY_8192E_1ANT == 0) + halbtc8192e1ant_QueryBtInfo(pBtCoexist); + halbtc8192e1ant_MonitorBtCtr(pBtCoexist); + halbtc8192e1ant_MonitorBtEnableDisable(pBtCoexist); +#else + if( halbtc8192e1ant_IsWifiStatusChanged(pBtCoexist) || + pCoexDm->bAutoTdmaAdjust) + { + halbtc8192e1ant_RunCoexistMechanism(pBtCoexist); + } +#endif +} + +VOID +EXhalbtc8192e1ant_DbgControl( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte opCode, + IN u1Byte opLen, + IN pu1Byte pData + ) +{ + switch(opCode) + { + case BTC_DBG_SET_COEX_NORMAL: + pBtCoexist->manual_control = FALSE; + halbtc8192e1ant_InitCoexDm(pBtCoexist); + break; + case BTC_DBG_SET_COEX_WIFI_ONLY: + pBtCoexist->manual_control = true; + halbtc8192e1ant_PowerSaveState(pBtCoexist, BTC_PS_WIFI_NATIVE, 0x0, 0x0); + halbtc8192e1ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 9); + break; + case BTC_DBG_SET_COEX_BT_ONLY: + // todo + break; + default: + break; + } +} +#endif + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/halbtc8192e1ant.h +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/halbtc8192e1ant.h @@ -0,0 +1,226 @@ +//=========================================== +// The following is for 8192E_1ANT BT Co-exist definition +//=========================================== +#define BT_AUTO_REPORT_ONLY_8192E_1ANT 0 + +#define BT_INFO_8192E_1ANT_B_FTP BIT7 +#define BT_INFO_8192E_1ANT_B_A2DP BIT6 +#define BT_INFO_8192E_1ANT_B_HID BIT5 +#define BT_INFO_8192E_1ANT_B_SCO_BUSY BIT4 +#define BT_INFO_8192E_1ANT_B_ACL_BUSY BIT3 +#define BT_INFO_8192E_1ANT_B_INQ_PAGE BIT2 +#define BT_INFO_8192E_1ANT_B_SCO_ESCO BIT1 +#define BT_INFO_8192E_1ANT_B_CONNECTION BIT0 + +#define BT_INFO_8192E_1ANT_A2DP_BASIC_RATE(_BT_INFO_EXT_) \ + (((_BT_INFO_EXT_&BIT0))? true:FALSE) + +#define BTC_RSSI_COEX_THRESH_TOL_8192E_1ANT 2 + +typedef enum _BT_INFO_SRC_8192E_1ANT{ + BT_INFO_SRC_8192E_1ANT_WIFI_FW = 0x0, + BT_INFO_SRC_8192E_1ANT_BT_RSP = 0x1, + BT_INFO_SRC_8192E_1ANT_BT_ACTIVE_SEND = 0x2, + BT_INFO_SRC_8192E_1ANT_MAX +}BT_INFO_SRC_8192E_1ANT,*PBT_INFO_SRC_8192E_1ANT; + +typedef enum _BT_8192E_1ANT_BT_STATUS{ + BT_8192E_1ANT_BT_STATUS_NON_CONNECTED_IDLE = 0x0, + BT_8192E_1ANT_BT_STATUS_CONNECTED_IDLE = 0x1, + BT_8192E_1ANT_BT_STATUS_INQ_PAGE = 0x2, + BT_8192E_1ANT_BT_STATUS_ACL_BUSY = 0x3, + BT_8192E_1ANT_BT_STATUS_SCO_BUSY = 0x4, + BT_8192E_1ANT_BT_STATUS_ACL_SCO_BUSY = 0x5, + BT_8192E_1ANT_BT_STATUS_MAX +}BT_8192E_1ANT_BT_STATUS,*PBT_8192E_1ANT_BT_STATUS; + +typedef enum _BT_8192E_1ANT_WIFI_STATUS{ + BT_8192E_1ANT_WIFI_STATUS_NON_CONNECTED_IDLE = 0x0, + BT_8192E_1ANT_WIFI_STATUS_NON_CONNECTED_ASSO_AUTH_SCAN = 0x1, + BT_8192E_1ANT_WIFI_STATUS_CONNECTED_SCAN = 0x2, + BT_8192E_1ANT_WIFI_STATUS_CONNECTED_SPECIAL_PKT = 0x3, + BT_8192E_1ANT_WIFI_STATUS_CONNECTED_IDLE = 0x4, + BT_8192E_1ANT_WIFI_STATUS_CONNECTED_BUSY = 0x5, + BT_8192E_1ANT_WIFI_STATUS_MAX +}BT_8192E_1ANT_WIFI_STATUS,*PBT_8192E_1ANT_WIFI_STATUS; + +typedef enum _BT_8192E_1ANT_COEX_ALGO{ + BT_8192E_1ANT_COEX_ALGO_UNDEFINED = 0x0, + BT_8192E_1ANT_COEX_ALGO_SCO = 0x1, + BT_8192E_1ANT_COEX_ALGO_HID = 0x2, + BT_8192E_1ANT_COEX_ALGO_A2DP = 0x3, + BT_8192E_1ANT_COEX_ALGO_A2DP_PANHS = 0x4, + BT_8192E_1ANT_COEX_ALGO_PANEDR = 0x5, + BT_8192E_1ANT_COEX_ALGO_PANHS = 0x6, + BT_8192E_1ANT_COEX_ALGO_PANEDR_A2DP = 0x7, + BT_8192E_1ANT_COEX_ALGO_PANEDR_HID = 0x8, + BT_8192E_1ANT_COEX_ALGO_HID_A2DP_PANEDR = 0x9, + BT_8192E_1ANT_COEX_ALGO_HID_A2DP = 0xa, + BT_8192E_1ANT_COEX_ALGO_MAX = 0xb, +}BT_8192E_1ANT_COEX_ALGO,*PBT_8192E_1ANT_COEX_ALGO; + +typedef struct _COEX_DM_8192E_1ANT{ + // fw mechanism + u1Byte preBtDecPwrLvl; + u1Byte curBtDecPwrLvl; + BOOLEAN bPreBtLnaConstrain; + BOOLEAN bCurBtLnaConstrain; + u1Byte bPreBtPsdMode; + u1Byte bCurBtPsdMode; + u1Byte preFwDacSwingLvl; + u1Byte curFwDacSwingLvl; + BOOLEAN bCurIgnoreWlanAct; + BOOLEAN bPreIgnoreWlanAct; + u1Byte prePsTdma; + u1Byte curPsTdma; + u1Byte psTdmaPara[5]; + u1Byte psTdmaDuAdjType; + BOOLEAN bAutoTdmaAdjust; + BOOLEAN bPrePsTdmaOn; + BOOLEAN bCurPsTdmaOn; + BOOLEAN bPreBtAutoReport; + BOOLEAN bCurBtAutoReport; + u1Byte preLps; + u1Byte curLps; + u1Byte preRpwm; + u1Byte curRpwm; + + // sw mechanism + BOOLEAN bPreRfRxLpfShrink; + BOOLEAN bCurRfRxLpfShrink; + u4Byte btRf0x1eBackup; + BOOLEAN bPreLowPenaltyRa; + BOOLEAN bCurLowPenaltyRa; + BOOLEAN bPreDacSwingOn; + u4Byte preDacSwingLvl; + BOOLEAN bCurDacSwingOn; + u4Byte curDacSwingLvl; + BOOLEAN bPreAdcBackOff; + BOOLEAN bCurAdcBackOff; + BOOLEAN bPreAgcTableEn; + BOOLEAN bCurAgcTableEn; + u4Byte preVal0x6c0; + u4Byte curVal0x6c0; + u4Byte preVal0x6c4; + u4Byte curVal0x6c4; + u4Byte preVal0x6c8; + u4Byte curVal0x6c8; + u1Byte preVal0x6cc; + u1Byte curVal0x6cc; + BOOLEAN limited_dig; + + // algorithm related + u1Byte preAlgorithm; + u1Byte curAlgorithm; + u1Byte btStatus; + u1Byte wifiChnlInfo[3]; + + u1Byte preSsType; + u1Byte curSsType; + + u4Byte prera_mask; + u4Byte curra_mask; + + u1Byte errorCondition; +} COEX_DM_8192E_1ANT, *PCOEX_DM_8192E_1ANT; + +typedef struct _COEX_STA_8192E_1ANT{ + BOOLEAN bBtLinkExist; + BOOLEAN bScoExist; + BOOLEAN bA2dpExist; + BOOLEAN bHidExist; + BOOLEAN bPanExist; + + BOOLEAN bUnderLps; + BOOLEAN bUnderIps; + u4Byte highPriorityTx; + u4Byte highPriorityRx; + u4Byte lowPriorityTx; + u4Byte lowPriorityRx; + u1Byte btRssi; + u1Byte preBtRssiState; + u1Byte preWifiRssiState[4]; + BOOLEAN bC2hBtInfoReqSent; + u1Byte btInfoC2h[BT_INFO_SRC_8192E_1ANT_MAX][10]; + u4Byte btInfoC2hCnt[BT_INFO_SRC_8192E_1ANT_MAX]; + BOOLEAN bC2hBtInquiryPage; + u1Byte btRetryCnt; + u1Byte btInfoExt; +}COEX_STA_8192E_1ANT, *PCOEX_STA_8192E_1ANT; + +//=========================================== +// The following is interface which will notify coex module. +//=========================================== +VOID +EXhalbtc8192e1ant_InitHwConfig( + IN PBTC_COEXIST pBtCoexist + ); +VOID +EXhalbtc8192e1ant_InitCoexDm( + IN PBTC_COEXIST pBtCoexist + ); +VOID +EXhalbtc8192e1ant_IpsNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8192e1ant_LpsNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8192e1ant_ScanNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8192e1ant_ConnectNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8192e1ant_MediaStatusNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8192e1ant_SpecialPacketNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8192e1ant_BtInfoNotify( + IN PBTC_COEXIST pBtCoexist, + IN pu1Byte tmpBuf, + IN u1Byte length + ); +VOID +EXhalbtc8192e1ant_StackOperationNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8192e1ant_HaltNotify( + IN PBTC_COEXIST pBtCoexist + ); +VOID +EXhalbtc8192e1ant_PnpNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte pnpState + ); +VOID +EXhalbtc8192e1ant_Periodical( + IN PBTC_COEXIST pBtCoexist + ); +VOID +EXhalbtc8192e1ant_DisplayCoexInfo( + IN PBTC_COEXIST pBtCoexist + ); +VOID +EXhalbtc8192e1ant_DbgControl( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte opCode, + IN u1Byte opLen, + IN pu1Byte pData + ); --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/halbtc8192e2ant.c +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/halbtc8192e2ant.c @@ -0,0 +1,4242 @@ +/************************************************************** + * Description: + * + * This file is for RTL8192E Co-exist mechanism + * + * History + * 2012/11/15 Cosa first check in. + * + **************************************************************/ + +/************************************************************** + * include files + **************************************************************/ +#include "halbt_precomp.h" +#if 1 +/************************************************************** + * Global variables, these are static variables + **************************************************************/ +static struct coex_dm_8192e_2ant glcoex_dm_8192e_2ant; +static struct coex_dm_8192e_2ant *coex_dm = &glcoex_dm_8192e_2ant; +static struct coex_sta_8192e_2ant glcoex_sta_8192e_2ant; +static struct coex_sta_8192e_2ant *coex_sta = &glcoex_sta_8192e_2ant; + +const char *const GLBtInfoSrc8192e2Ant[]={ + "BT Info[wifi fw]", + "BT Info[bt rsp]", + "BT Info[bt auto report]", +}; + +u32 glcoex_ver_date_8192e_2ant = 20130902; +u32 glcoex_ver_8192e_2ant = 0x34; + +/************************************************************** + * local function proto type if needed + **************************************************************/ +/************************************************************** + * local function start with halbtc8192e2ant_ + **************************************************************/ +u8 halbtc8192e2ant_btrssi_state(u8 level_num, u8 rssi_thresh, u8 rssi_thresh1) +{ + int btrssi=0; + u8 btrssi_state = coex_sta->pre_bt_rssi_state; + + btrssi = coex_sta->bt_rssi; + + if (level_num == 2) { + if ((coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_LOW) || + (coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_STAY_LOW)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "BT Rssi pre state=LOW\n"); + if (btrssi >= (rssi_thresh + + BTC_RSSI_COEX_THRESH_TOL_8192E_2ANT)) { + btrssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "BT Rssi state switch to High\n"); + } else { + btrssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "BT Rssi state stay at Low\n"); + } + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "BT Rssi pre state=HIGH\n"); + if (btrssi < rssi_thresh) { + btrssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "BT Rssi state switch to Low\n"); + } else { + btrssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "BT Rssi state stay at High\n"); + } + } + } else if (level_num == 3) { + if (rssi_thresh > rssi_thresh1) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "BT Rssi thresh error!!\n"); + return coex_sta->pre_bt_rssi_state; + } + + if ((coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_LOW) || + (coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_STAY_LOW)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "BT Rssi pre state=LOW\n"); + if(btrssi >= (rssi_thresh + + BTC_RSSI_COEX_THRESH_TOL_8192E_2ANT)) { + btrssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "BT Rssi state switch to Medium\n"); + } else { + btrssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "BT Rssi state stay at Low\n"); + } + } else if ((coex_sta->pre_bt_rssi_state == + BTC_RSSI_STATE_MEDIUM) || + (coex_sta->pre_bt_rssi_state == + BTC_RSSI_STATE_STAY_MEDIUM)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi pre state=MEDIUM\n"); + if (btrssi >= (rssi_thresh1 + + BTC_RSSI_COEX_THRESH_TOL_8192E_2ANT)) { + btrssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "BT Rssi state switch to High\n"); + } else if (btrssi < rssi_thresh) { + btrssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "BT Rssi state switch to Low\n"); + } else { + btrssi_state = BTC_RSSI_STATE_STAY_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "BT Rssi state stay at Medium\n"); + } + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "BT Rssi pre state=HIGH\n"); + if (btrssi < rssi_thresh1) { + btrssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "BT Rssi state switch to Medium\n"); + } else { + btrssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "BT Rssi state stay at High\n"); + } + } + } + + coex_sta->pre_bt_rssi_state = btrssi_state; + + return btrssi_state; +} + +u8 halbtc8192e2ant_wifirssi_state(struct btc_coexist * btcoexist, u8 index, + u8 level_num, u8 rssi_thresh, u8 rssi_thresh1) +{ + int wifirssi = 0; + u8 wifirssi_state = coex_sta->pre_wifi_rssi_state[index]; + + btcoexist->btc_get(btcoexist, BTC_GET_S4_WIFI_RSSI, &wifirssi); + + if (level_num == 2) { + if ((coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_LOW) || + (coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_STAY_LOW)) { + if (wifirssi >= (rssi_thresh + + BTC_RSSI_COEX_THRESH_TOL_8192E_2ANT)) { + wifirssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "wifi RSSI state switch to High\n"); + } else { + wifirssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "wifi RSSI state stay at Low\n"); + } + } else { + if (wifirssi < rssi_thresh) { + wifirssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "wifi RSSI state switch to Low\n"); + } else { + wifirssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "wifi RSSI state stay at High\n"); + } + } + } else if (level_num == 3) { + if (rssi_thresh > rssi_thresh1) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, + "wifi RSSI thresh error!!\n"); + return coex_sta->pre_wifi_rssi_state[index]; + } + + if ((coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_LOW) || + (coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_STAY_LOW)) { + if (wifirssi >= (rssi_thresh + + BTC_RSSI_COEX_THRESH_TOL_8192E_2ANT)) { + wifirssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "wifi RSSI state switch to Medium\n"); + } else { + wifirssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "wifi RSSI state stay at Low\n"); + } + } else if ((coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_MEDIUM) || + (coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_STAY_MEDIUM)) { + if (wifirssi >= (rssi_thresh1 + + BTC_RSSI_COEX_THRESH_TOL_8192E_2ANT)) { + wifirssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "wifi RSSI state switch to High\n"); + } else if (wifirssi < rssi_thresh) { + wifirssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "wifi RSSI state switch to Low\n"); + } else { + wifirssi_state = BTC_RSSI_STATE_STAY_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "wifi RSSI state stay at Medium\n"); + } + } else { + if (wifirssi < rssi_thresh1) { + wifirssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "wifi RSSI state switch to Medium\n"); + } else { + wifirssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "wifi RSSI state stay at High\n"); + } + } + } + + coex_sta->pre_wifi_rssi_state[index] = wifirssi_state; + + return wifirssi_state; +} + +void halbtc8192e2ant_monitor_bt_enable_disable(struct btc_coexist *btcoexist) +{ + static bool pre_bt_disabled = false; + static u32 bt_disable_cnt = 0; + bool bt_active = true, bt_disabled = false; + + /* This function check if bt is disabled */ + + if (coex_sta->high_priority_tx == 0 && + coex_sta->high_priority_rx == 0 && + coex_sta->low_priority_tx == 0 && + coex_sta->low_priority_rx == 0) + bt_active = false; + + if (coex_sta->high_priority_tx == 0xffff && + coex_sta->high_priority_rx == 0xffff && + coex_sta->low_priority_tx == 0xffff && + coex_sta->low_priority_rx == 0xffff) + bt_active = false; + + if (bt_active) { + bt_disable_cnt = 0; + bt_disabled = false; + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_DISABLE, + &bt_disabled); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex], BT is enabled !!\n"); + } else { + bt_disable_cnt++; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex], bt all counters=0, %d times!!\n", + bt_disable_cnt); + if (bt_disable_cnt >= 2) { + bt_disabled = true; + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_DISABLE, + &bt_disabled); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex], BT is disabled !!\n"); + } + } + if (pre_bt_disabled != bt_disabled) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex], BT is from %s to %s!!\n", + (pre_bt_disabled ? "disabled":"enabled"), + (bt_disabled ? "disabled":"enabled")); + pre_bt_disabled = bt_disabled; + } +} + +u32 halbtc8192e2ant_decidera_mask(struct btc_coexist *btcoexist, + u8 sstype, u32 ra_masktype) +{ + u32 disra_mask = 0x0; + + switch (ra_masktype) { + case 0: /* normal mode */ + if (sstype == 2) + disra_mask = 0x0; /* enable 2ss */ + else + disra_mask = 0xfff00000;/* disable 2ss */ + break; + case 1: /* disable cck 1/2 */ + if(sstype == 2) + disra_mask = 0x00000003;/* enable 2ss */ + else + disra_mask = 0xfff00003;/* disable 2ss */ + break; + case 2: /* disable cck 1/2/5.5, ofdm 6/9/12/18/24, mcs 0/1/2/3/4 */ + if(sstype == 2) + disra_mask = 0x0001f1f7;/* enable 2ss */ + else + disra_mask = 0xfff1f1f7;/* disable 2ss */ + break; + default: + break; + } + + return disra_mask; +} + +void halbtc8192e2ant_Updatera_mask(struct btc_coexist *btcoexist, + bool force_exec, u32 dis_ratemask) +{ + coex_dm->curra_mask = dis_ratemask; + + if (force_exec || (coex_dm->prera_mask != coex_dm->curra_mask)) + btcoexist->btc_set(btcoexist, BTC_SET_ACT_UPDATE_ra_mask, + &coex_dm->curra_mask); + coex_dm->prera_mask = coex_dm->curra_mask; +} + +void halbtc8192e2ant_autorate_fallback_retry(struct btc_coexist *btcoexist, + bool force_exec, u8 type) +{ + bool wifi_under_bmode = false; + + coex_dm->cur_arfrtype = type; + + if (force_exec || (coex_dm->pre_arfrtype != coex_dm->cur_arfrtype)) { + switch (coex_dm->cur_arfrtype) { + case 0: /* normal mode */ + btcoexist->btc_write_4byte(btcoexist, 0x430, + coex_dm->backup_arfr_cnt1); + btcoexist->btc_write_4byte(btcoexist, 0x434, + coex_dm->backup_arfr_cnt2); + break; + case 1: + btcoexist->btc_get(btcoexist, + BTC_GET_BL_WIFI_UNDER_B_MODE, + &wifi_under_bmode); + if (wifi_under_bmode) { + btcoexist->btc_write_4byte(btcoexist, 0x430, + 0x0); + btcoexist->btc_write_4byte(btcoexist, 0x434, + 0x01010101); + } else { + btcoexist->btc_write_4byte(btcoexist, 0x430, + 0x0); + btcoexist->btc_write_4byte(btcoexist, 0x434, + 0x04030201); + } + break; + default: + break; + } + } + + coex_dm->pre_arfrtype = coex_dm->cur_arfrtype; +} + +void halbtc8192e2ant_retrylimit(struct btc_coexist *btcoexist, + bool force_exec, u8 type) +{ + coex_dm->cur_retrylimit_type = type; + + if (force_exec || (coex_dm->pre_retrylimit_type != + coex_dm->cur_retrylimit_type)) { + switch (coex_dm->cur_retrylimit_type) { + case 0: /* normal mode */ + btcoexist->btc_write_2byte(btcoexist, 0x42a, + coex_dm->backup_retrylimit); + break; + case 1: /* retry limit=8 */ + btcoexist->btc_write_2byte(btcoexist, 0x42a, + 0x0808); + break; + default: + break; + } + } + + coex_dm->pre_retrylimit_type = coex_dm->cur_retrylimit_type; +} + +void halbtc8192e2ant_ampdu_maxtime(struct btc_coexist *btcoexist, + bool force_exec, u8 type) +{ + coex_dm->cur_ampdutime_type = type; + + if (force_exec || (coex_dm->pre_ampdutime_type != + coex_dm->cur_ampdutime_type)) { + switch (coex_dm->cur_ampdutime_type) { + case 0: /* normal mode */ + btcoexist->btc_write_1byte(btcoexist, 0x456, + coex_dm->backup_ampdu_maxtime); + break; + case 1: /* AMPDU timw = 0x38 * 32us */ + btcoexist->btc_write_1byte(btcoexist, 0x456, 0x38); + break; + default: + break; + } + } + + coex_dm->pre_ampdutime_type = coex_dm->cur_ampdutime_type; +} + +void halbtc8192e2ant_limited_tx(struct btc_coexist *btcoexist, + bool force_exec, u8 ra_masktype, u8 arfr_type, + u8 retrylimit_type, u8 ampdutime_type) +{ + u32 disra_mask = 0x0; + + coex_dm->curra_masktype = ra_masktype; + disra_mask = halbtc8192e2ant_decidera_mask(btcoexist, + coex_dm->cur_sstype, + ra_masktype); + halbtc8192e2ant_Updatera_mask(btcoexist, force_exec, disra_mask); + + halbtc8192e2ant_autorate_fallback_retry(btcoexist, force_exec, + arfr_type); + halbtc8192e2ant_retrylimit(btcoexist, force_exec, retrylimit_type); + halbtc8192e2ant_ampdu_maxtime(btcoexist, force_exec, ampdutime_type); +} + +void halbtc8192e2ant_limited_rx(struct btc_coexist *btcoexist, + bool force_exec, bool rej_ap_agg_pkt, + bool b_bt_ctrl_agg_buf_size, + u8 agg_buf_size) +{ + bool reject_rx_agg = rej_ap_agg_pkt; + bool bt_ctrl_rx_agg_size = b_bt_ctrl_agg_buf_size; + u8 rx_agg_size = agg_buf_size; + + /********************************************* + * Rx Aggregation related setting + *********************************************/ + btcoexist->btc_set(btcoexist, BTC_SET_BL_TO_REJ_AP_AGG_PKT, + &reject_rx_agg); + /* decide BT control aggregation buf size or not */ + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_CTRL_AGG_SIZE, + &bt_ctrl_rx_agg_size); + /* aggregation buf size, only work + * when BT control Rx aggregation size. */ + btcoexist->btc_set(btcoexist, BTC_SET_U1_AGG_BUF_SIZE, &rx_agg_size); + /* real update aggregation setting */ + btcoexist->btc_set(btcoexist, BTC_SET_ACT_AGGREGATE_CTRL, NULL); + + +} + +void halbtc8192e2ant_monitor_bt_ctr(struct btc_coexist *btcoexist) +{ + u32 reg_hp_txrx, reg_lp_txrx, u32tmp; + u32 reg_hp_tx = 0, reg_hp_rx = 0, reg_lp_tx = 0, reg_lp_rx = 0; + + reg_hp_txrx = 0x770; + reg_lp_txrx = 0x774; + + u32tmp = btcoexist->btc_read_4byte(btcoexist, reg_hp_txrx); + reg_hp_tx = u32tmp & MASKLWORD; + reg_hp_rx = (u32tmp & MASKHWORD)>>16; + + u32tmp = btcoexist->btc_read_4byte(btcoexist, reg_lp_txrx); + reg_lp_tx = u32tmp & MASKLWORD; + reg_lp_rx = (u32tmp & MASKHWORD)>>16; + + coex_sta->high_priority_tx = reg_hp_tx; + coex_sta->high_priority_rx = reg_hp_rx; + coex_sta->low_priority_tx = reg_lp_tx; + coex_sta->low_priority_rx = reg_lp_rx; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex] High Priority Tx/Rx (reg 0x%x)=0x%x(%d)/0x%x(%d)\n", + reg_hp_txrx, reg_hp_tx, reg_hp_tx, reg_hp_rx, reg_hp_rx); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex] Low Priority Tx/Rx (reg 0x%x)=0x%x(%d)/0x%x(%d)\n", + reg_lp_txrx, reg_lp_tx, reg_lp_tx, reg_lp_rx, reg_lp_rx); + + /* reset counter */ + btcoexist->btc_write_1byte(btcoexist, 0x76e, 0xc); +} + +void halbtc8192e2ant_querybt_info(struct btc_coexist *btcoexist) +{ + u8 h2c_parameter[1] ={0}; + + coex_sta->c2h_bt_info_req_sent = true; + + h2c_parameter[0] |= BIT0; /* trigger */ + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], Query Bt Info, FW write 0x61=0x%x\n", + h2c_parameter[0]); + + btcoexist->btc_fill_h2c(btcoexist, 0x61, 1, h2c_parameter); +} + +bool halbtc8192e2ant_iswifi_status_changed(struct btc_coexist *btcoexist) +{ + static bool pre_wifi_busy = false; + static bool pre_under_4way = false, pre_bt_hson = false; + bool wifi_busy = false, under_4way = false, bt_hson = false; + bool wifi_connected = false; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hson); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_4_WAY_PROGRESS, + &under_4way); + + if (wifi_connected) { + if (wifi_busy != pre_wifi_busy) { + pre_wifi_busy = wifi_busy; + return true; + } + if (under_4way != pre_under_4way) { + pre_under_4way = under_4way; + return true; + } + if (bt_hson != pre_bt_hson) { + pre_bt_hson = bt_hson; + return true; + } + } + + return false; +} + +void halbtc8192e2ant_update_btlink_info(struct btc_coexist *btcoexist) +{ + struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; + bool bt_hson = false; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hson); + + bt_link_info->bt_link_exist = coex_sta->bt_link_exist; + bt_link_info->sco_exist = coex_sta->sco_exist; + bt_link_info->a2dp_exist = coex_sta->a2dp_exist; + bt_link_info->pan_exist = coex_sta->pan_exist; + bt_link_info->hid_exist = coex_sta->hid_exist; + + /* work around for HS mode. */ + if (bt_hson) { + bt_link_info->pan_exist = true; + bt_link_info->bt_link_exist = true; + } + + /* check if Sco only */ + if (bt_link_info->sco_exist && + !bt_link_info->a2dp_exist && + !bt_link_info->pan_exist && + !bt_link_info->hid_exist) + bt_link_info->sco_only = true; + else + bt_link_info->sco_only = false; + + /* check if A2dp only */ + if (!bt_link_info->sco_exist && + bt_link_info->a2dp_exist && + !bt_link_info->pan_exist && + !bt_link_info->hid_exist) + bt_link_info->a2dp_only = true; + else + bt_link_info->a2dp_only = false; + + /* check if Pan only */ + if (!bt_link_info->sco_exist && + !bt_link_info->a2dp_exist && + bt_link_info->pan_exist && + !bt_link_info->hid_exist) + bt_link_info->pan_only = true; + else + bt_link_info->pan_only = false; + + /* check if Hid only */ + if (!bt_link_info->sco_exist && + !bt_link_info->a2dp_exist && + !bt_link_info->pan_exist && + bt_link_info->hid_exist) + bt_link_info->hid_only = true; + else + bt_link_info->hid_only = false; +} + +u8 halbtc8192e2ant_action_algorithm(struct btc_coexist *btcoexist) +{ + struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; + struct btc_stack_info *stack_info = &btcoexist->stack_info; + bool bt_hson=false; + u8 algorithm = BT_8192E_2ANT_COEX_ALGO_UNDEFINED; + u8 numOfDiffProfile = 0; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hson); + + if (!bt_link_info->bt_link_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "No BT link exists!!!\n"); + return algorithm; + } + + if (bt_link_info->sco_exist) + numOfDiffProfile++; + if (bt_link_info->hid_exist) + numOfDiffProfile++; + if (bt_link_info->pan_exist) + numOfDiffProfile++; + if (bt_link_info->a2dp_exist) + numOfDiffProfile++; + + if (numOfDiffProfile == 1) { + if (bt_link_info->sco_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "SCO only\n"); + algorithm = BT_8192E_2ANT_COEX_ALGO_SCO; + } else { + if (bt_link_info->hid_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "HID only\n"); + algorithm = BT_8192E_2ANT_COEX_ALGO_HID; + } else if (bt_link_info->a2dp_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "A2DP only\n"); + algorithm = BT_8192E_2ANT_COEX_ALGO_A2DP; + } else if (bt_link_info->pan_exist) { + if (bt_hson) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "PAN(HS) only\n"); + algorithm = + BT_8192E_2ANT_COEX_ALGO_PANHS; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "PAN(EDR) only\n"); + algorithm = + BT_8192E_2ANT_COEX_ALGO_PANEDR; + } + } + } + } else if (numOfDiffProfile == 2) { + if (bt_link_info->sco_exist) { + if (bt_link_info->hid_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "SCO + HID\n"); + algorithm = BT_8192E_2ANT_COEX_ALGO_SCO; + } else if (bt_link_info->a2dp_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "SCO + A2DP ==> SCO\n"); + algorithm = BT_8192E_2ANT_COEX_ALGO_PANEDR_HID; + } else if (bt_link_info->pan_exist) { + if (bt_hson) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "SCO + PAN(HS)\n"); + algorithm = BT_8192E_2ANT_COEX_ALGO_SCO; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "SCO + PAN(EDR)\n"); + algorithm = + BT_8192E_2ANT_COEX_ALGO_SCO_PAN; + } + } + } else { + if (bt_link_info->hid_exist && + bt_link_info->a2dp_exist) { + if (stack_info->num_of_hid >= 2) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "HID*2 + A2DP\n"); + algorithm = + BT_8192E_2ANT_COEX_ALGO_HID_A2DP_PANEDR; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "HID + A2DP\n"); + algorithm = + BT_8192E_2ANT_COEX_ALGO_HID_A2DP; + } + } else if (bt_link_info->hid_exist && + bt_link_info->pan_exist) { + if (bt_hson) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "HID + PAN(HS)\n"); + algorithm = BT_8192E_2ANT_COEX_ALGO_HID; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "HID + PAN(EDR)\n"); + algorithm = + BT_8192E_2ANT_COEX_ALGO_PANEDR_HID; + } + } else if (bt_link_info->pan_exist && + bt_link_info->a2dp_exist) { + if (bt_hson) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "A2DP + PAN(HS)\n"); + algorithm = + BT_8192E_2ANT_COEX_ALGO_A2DP_PANHS; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "A2DP + PAN(EDR)\n"); + algorithm = + BT_8192E_2ANT_COEX_ALGO_PANEDR_A2DP; + } + } + } + } else if (numOfDiffProfile == 3) { + if (bt_link_info->sco_exist) { + if (bt_link_info->hid_exist && + bt_link_info->a2dp_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "SCO + HID + A2DP ==> HID\n"); + algorithm = BT_8192E_2ANT_COEX_ALGO_PANEDR_HID; + } else if (bt_link_info->hid_exist && + bt_link_info->pan_exist) { + if (bt_hson) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "SCO + HID + PAN(HS)\n"); + algorithm = BT_8192E_2ANT_COEX_ALGO_SCO; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "SCO + HID + PAN(EDR)\n"); + algorithm = + BT_8192E_2ANT_COEX_ALGO_SCO_PAN; + } + } else if (bt_link_info->pan_exist && + bt_link_info->a2dp_exist) { + if (bt_hson) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "SCO + A2DP + PAN(HS)\n"); + algorithm = BT_8192E_2ANT_COEX_ALGO_SCO; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "SCO + A2DP + PAN(EDR)\n"); + algorithm = + BT_8192E_2ANT_COEX_ALGO_PANEDR_HID; + } + } + } else { + if (bt_link_info->hid_exist && + bt_link_info->pan_exist && + bt_link_info->a2dp_exist) { + if (bt_hson) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "HID + A2DP + PAN(HS)\n"); + algorithm = + BT_8192E_2ANT_COEX_ALGO_HID_A2DP; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "HID + A2DP + PAN(EDR)\n"); + algorithm = + BT_8192E_2ANT_COEX_ALGO_HID_A2DP_PANEDR; + } + } + } + } else if (numOfDiffProfile >= 3) { + if (bt_link_info->sco_exist) { + if (bt_link_info->hid_exist && + bt_link_info->pan_exist && + bt_link_info->a2dp_exist) { + if (bt_hson) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "ErrorSCO+HID+A2DP+PAN(HS)\n"); + + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "SCO+HID+A2DP+PAN(EDR)\n"); + algorithm = + BT_8192E_2ANT_COEX_ALGO_PANEDR_HID; + } + } + } + } + + return algorithm; +} + +void halbtc8192e2ant_setfw_dac_swinglevel(struct btc_coexist *btcoexist, + u8 dac_swinglvl) +{ + u8 h2c_parameter[1] ={0}; + + /* There are several type of dacswing + * 0x18/ 0x10/ 0xc/ 0x8/ 0x4/ 0x6 */ + h2c_parameter[0] = dac_swinglvl; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], Set Dac Swing Level=0x%x\n", dac_swinglvl); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], FW write 0x64=0x%x\n", h2c_parameter[0]); + + btcoexist->btc_fill_h2c(btcoexist, 0x64, 1, h2c_parameter); +} + +void halbtc8192e2ant_set_fwdec_btpwr(struct btc_coexist *btcoexist, + u8 dec_btpwr_lvl) +{ + u8 h2c_parameter[1] ={0}; + + h2c_parameter[0] = dec_btpwr_lvl; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex] decrease Bt Power level = %d, FW write 0x62=0x%x\n", + dec_btpwr_lvl, h2c_parameter[0]); + + btcoexist->btc_fill_h2c(btcoexist, 0x62, 1, h2c_parameter); +} + +void halbtc8192e2ant_dec_btpwr(struct btc_coexist *btcoexist, + bool force_exec, u8 dec_btpwr_lvl) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s Dec BT power level = %d\n", + (force_exec? "force to":""), dec_btpwr_lvl); + coex_dm->cur_dec_bt_pwr = dec_btpwr_lvl; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], preBtDecPwrLvl=%d, curBtDecPwrLvl=%d\n", + coex_dm->pre_dec_bt_pwr, coex_dm->cur_dec_bt_pwr); + } + halbtc8192e2ant_set_fwdec_btpwr(btcoexist, coex_dm->cur_dec_bt_pwr); + + coex_dm->pre_dec_bt_pwr = coex_dm->cur_dec_bt_pwr; +} + +void halbtc8192e2ant_set_bt_autoreport(struct btc_coexist *btcoexist, + bool enable_autoreport) +{ + u8 h2c_parameter[1] ={0}; + + h2c_parameter[0] = 0; + + if (enable_autoreport) + h2c_parameter[0] |= BIT0; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], BT FW auto report : %s, FW write 0x68=0x%x\n", + (enable_autoreport? "Enabled!!":"Disabled!!"), + h2c_parameter[0]); + + btcoexist->btc_fill_h2c(btcoexist, 0x68, 1, h2c_parameter); +} + +void halbtc8192e2ant_bt_autoreport(struct btc_coexist *btcoexist, + bool force_exec, bool enable_autoreport) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s BT Auto report = %s\n", + (force_exec? "force to":""), + ((enable_autoreport)? "Enabled":"Disabled")); + coex_dm->cur_bt_auto_report = enable_autoreport; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex] bPreBtAutoReport=%d, bCurBtAutoReport=%d\n", + coex_dm->pre_bt_auto_report, + coex_dm->cur_bt_auto_report); + + if (coex_dm->pre_bt_auto_report == coex_dm->cur_bt_auto_report) + return; + } + halbtc8192e2ant_set_bt_autoreport(btcoexist, + coex_dm->cur_bt_auto_report); + + coex_dm->pre_bt_auto_report = coex_dm->cur_bt_auto_report; +} + +void halbtc8192e2ant_fw_dac_swinglvl(struct btc_coexist *btcoexist, + bool force_exec, u8 fw_dac_swinglvl) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s set FW Dac Swing level = %d\n", + (force_exec? "force to":""), fw_dac_swinglvl); + coex_dm->cur_fw_dac_swing_lvl = fw_dac_swinglvl; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex] preFwDacSwingLvl=%d, curFwDacSwingLvl=%d\n", + coex_dm->pre_fw_dac_swing_lvl, + coex_dm->cur_fw_dac_swing_lvl); + + if (coex_dm->pre_fw_dac_swing_lvl == + coex_dm->cur_fw_dac_swing_lvl) + return; + } + + halbtc8192e2ant_setfw_dac_swinglevel(btcoexist, + coex_dm->cur_fw_dac_swing_lvl); + + coex_dm->pre_fw_dac_swing_lvl = coex_dm->cur_fw_dac_swing_lvl; +} + +void halbtc8192e2ant_set_sw_rf_rx_lpf_corner(struct btc_coexist *btcoexist, + bool rx_rf_shrink_on) +{ + if (rx_rf_shrink_on) { + /* Shrink RF Rx LPF corner */ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Shrink RF Rx LPF corner!!\n"); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1e, + 0xfffff, 0xffffc); + } else { + /* Resume RF Rx LPF corner + * After initialized, we can use coex_dm->btRf0x1eBackup */ + if (btcoexist->initilized) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Resume RF Rx LPF corner!!\n"); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1e, + 0xfffff, + coex_dm->bt_rf0x1e_backup); + } + } +} + +void halbtc8192e2ant_rf_shrink(struct btc_coexist *btcoexist, + bool force_exec, bool rx_rf_shrink_on) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s turn Rx RF Shrink = %s\n", + (force_exec? "force to":""), ((rx_rf_shrink_on)? "ON":"OFF")); + coex_dm->cur_rf_rx_lpf_shrink = rx_rf_shrink_on; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex]bPreRfRxLpfShrink=%d,bCurRfRxLpfShrink=%d\n", + coex_dm->pre_rf_rx_lpf_shrink, + coex_dm->cur_rf_rx_lpf_shrink); + + if (coex_dm->pre_rf_rx_lpf_shrink == + coex_dm->cur_rf_rx_lpf_shrink) + return; + } + halbtc8192e2ant_set_sw_rf_rx_lpf_corner(btcoexist, + coex_dm->cur_rf_rx_lpf_shrink); + + coex_dm->pre_rf_rx_lpf_shrink = coex_dm->cur_rf_rx_lpf_shrink; +} + +void halbtc8192e2ant_set_sw_penalty_tx_rateadaptive( + struct btc_coexist *btcoexist, + bool low_penalty_ra) +{ + u8 h2c_parameter[6] ={0}; + + h2c_parameter[0] = 0x6; /* opCode, 0x6= Retry_Penalty */ + + if (low_penalty_ra) { + h2c_parameter[1] |= BIT0; + /* normal rate except MCS7/6/5, OFDM54/48/36 */ + h2c_parameter[2] = 0x00; + h2c_parameter[3] = 0xf7; /* MCS7 or OFDM54 */ + h2c_parameter[4] = 0xf8; /* MCS6 or OFDM48 */ + h2c_parameter[5] = 0xf9; /* MCS5 or OFDM36 */ + } + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], set WiFi Low-Penalty Retry: %s", + (low_penalty_ra? "ON!!":"OFF!!")); + + btcoexist->btc_fill_h2c(btcoexist, 0x69, 6, h2c_parameter); +} + +void halbtc8192e2ant_low_penalty_ra(struct btc_coexist *btcoexist, + bool force_exec, bool low_penalty_ra) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s turn LowPenaltyRA = %s\n", + (force_exec? "force to":""), ((low_penalty_ra)? "ON":"OFF")); + coex_dm->cur_low_penalty_ra = low_penalty_ra; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex] bPreLowPenaltyRa=%d, bCurLowPenaltyRa=%d\n", + coex_dm->pre_low_penalty_ra, + coex_dm->cur_low_penalty_ra); + + if (coex_dm->pre_low_penalty_ra == + coex_dm->cur_low_penalty_ra) + return; + } + halbtc8192e2ant_set_sw_penalty_tx_rateadaptive(btcoexist, + coex_dm->cur_low_penalty_ra); + + coex_dm->pre_low_penalty_ra = coex_dm->cur_low_penalty_ra; +} + +void halbtc8192e2ant_set_dac_swingreg(struct btc_coexist *btcoexist, + u32 level) +{ + u8 val = (u8)level; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Write SwDacSwing = 0x%x\n", level); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x883, 0x3e, val); +} + +void halbtc8192e2ant_setsw_fulltime_dacswing(struct btc_coexist *btcoexist, + bool sw_dac_swingon, + u32 sw_dac_swinglvl) +{ + if (sw_dac_swingon) + halbtc8192e2ant_set_dac_swingreg(btcoexist, sw_dac_swinglvl); + else + halbtc8192e2ant_set_dac_swingreg(btcoexist, 0x18); +} + + +void halbtc8192e2ant_DacSwing(struct btc_coexist *btcoexist, + bool force_exec, bool dac_swingon, + u32 dac_swinglvl) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s turn DacSwing=%s, dac_swinglvl=0x%x\n", + (force_exec? "force to":""), + ((dac_swingon)? "ON":"OFF"), dac_swinglvl); + coex_dm->cur_dac_swing_on = dac_swingon; + coex_dm->cur_dac_swing_lvl = dac_swinglvl; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], bPreDacSwingOn=%d, preDacSwingLvl=0x%x, ", + coex_dm->pre_dac_swing_on, + coex_dm->pre_dac_swing_lvl); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "bCurDacSwingOn=%d, curDacSwingLvl=0x%x\n", + coex_dm->cur_dac_swing_on, + coex_dm->cur_dac_swing_lvl); + + if ((coex_dm->pre_dac_swing_on == coex_dm->cur_dac_swing_on) && + (coex_dm->pre_dac_swing_lvl == coex_dm->cur_dac_swing_lvl)) + return; + } + mdelay(30); + halbtc8192e2ant_setsw_fulltime_dacswing(btcoexist, dac_swingon, + dac_swinglvl); + + coex_dm->pre_dac_swing_on = coex_dm->cur_dac_swing_on; + coex_dm->pre_dac_swing_lvl = coex_dm->cur_dac_swing_lvl; +} + +void halbtc8192e2ant_set_adc_backoff(struct btc_coexist *btcoexist, + bool adc_backoff) +{ + if(adc_backoff) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], BB BackOff Level On!\n"); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0xc05, 0x30, 0x3); + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], BB BackOff Level Off!\n"); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0xc05, 0x30, 0x1); + } +} + +void halbtc8192e2ant_adc_backoff(struct btc_coexist *btcoexist, + bool force_exec, bool adc_backoff) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s turn AdcBackOff = %s\n", + (force_exec? "force to":""), ((adc_backoff)? "ON":"OFF")); + coex_dm->cur_adc_back_off = adc_backoff; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], bPreAdcBackOff=%d, bCurAdcBackOff=%d\n", + coex_dm->pre_adc_back_off, coex_dm->cur_adc_back_off); + + if (coex_dm->pre_adc_back_off == coex_dm->cur_adc_back_off) + return; + } + halbtc8192e2ant_set_adc_backoff(btcoexist, coex_dm->cur_adc_back_off); + + coex_dm->pre_adc_back_off = coex_dm->cur_adc_back_off; +} + +void halbtc8192e2ant_set_agc_table(struct btc_coexist *btcoexist, + bool agc_table_en) +{ + + /* BB AGC Gain Table */ + if (agc_table_en) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], BB Agc Table On!\n"); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x0a1A0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x091B0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x081C0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x071D0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x061E0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x051F0001); + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], BB Agc Table Off!\n"); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xaa1A0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xa91B0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xa81C0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xa71D0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xa61E0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xa51F0001); + } +} + +void halbtc8192e2ant_AgcTable(struct btc_coexist *btcoexist, + bool force_exec, bool agc_table_en) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s %s Agc Table\n", + (force_exec? "force to":""), + ((agc_table_en)? "Enable":"Disable")); + coex_dm->cur_agc_table_en = agc_table_en; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], bPreAgcTableEn=%d, bCurAgcTableEn=%d\n", + coex_dm->pre_agc_table_en, coex_dm->cur_agc_table_en); + + if (coex_dm->pre_agc_table_en == coex_dm->cur_agc_table_en) + return; + } + halbtc8192e2ant_set_agc_table(btcoexist, agc_table_en); + + coex_dm->pre_agc_table_en = coex_dm->cur_agc_table_en; +} + +void halbtc8192e2ant_set_coex_table(struct btc_coexist *btcoexist, + u32 val0x6c0, u32 val0x6c4, + u32 val0x6c8, u8 val0x6cc) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], set coex table, set 0x6c0=0x%x\n", val0x6c0); + btcoexist->btc_write_4byte(btcoexist, 0x6c0, val0x6c0); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], set coex table, set 0x6c4=0x%x\n", val0x6c4); + btcoexist->btc_write_4byte(btcoexist, 0x6c4, val0x6c4); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], set coex table, set 0x6c8=0x%x\n", val0x6c8); + btcoexist->btc_write_4byte(btcoexist, 0x6c8, val0x6c8); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], set coex table, set 0x6cc=0x%x\n", val0x6cc); + btcoexist->btc_write_1byte(btcoexist, 0x6cc, val0x6cc); +} + +void halbtc8192e2ant_coex_table(struct btc_coexist *btcoexist, bool force_exec, + u32 val0x6c0, u32 val0x6c4, + u32 val0x6c8, u8 val0x6cc) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s write Coex Table 0x6c0=0x%x, ", + (force_exec? "force to":""), val0x6c0); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "0x6c4=0x%x, 0x6c8=0x%x, 0x6cc=0x%x\n", + val0x6c4, val0x6c8, val0x6cc); + coex_dm->cur_val0x6c0 = val0x6c0; + coex_dm->cur_val0x6c4 = val0x6c4; + coex_dm->cur_val0x6c8 = val0x6c8; + coex_dm->cur_val0x6cc = val0x6cc; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], preVal0x6c0=0x%x, preVal0x6c4=0x%x, ", + coex_dm->pre_val0x6c0, coex_dm->pre_val0x6c4); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "preVal0x6c8=0x%x, preVal0x6cc=0x%x !!\n", + coex_dm->pre_val0x6c8, coex_dm->pre_val0x6cc); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], curVal0x6c0=0x%x, curVal0x6c4=0x%x, \n", + coex_dm->cur_val0x6c0, coex_dm->cur_val0x6c4); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "curVal0x6c8=0x%x, curVal0x6cc=0x%x !!\n", + coex_dm->cur_val0x6c8, coex_dm->cur_val0x6cc); + + if ((coex_dm->pre_val0x6c0 == coex_dm->cur_val0x6c0) && + (coex_dm->pre_val0x6c4 == coex_dm->cur_val0x6c4) && + (coex_dm->pre_val0x6c8 == coex_dm->cur_val0x6c8) && + (coex_dm->pre_val0x6cc == coex_dm->cur_val0x6cc)) + return; + } + halbtc8192e2ant_set_coex_table(btcoexist, val0x6c0, val0x6c4, + val0x6c8, val0x6cc); + + coex_dm->pre_val0x6c0 = coex_dm->cur_val0x6c0; + coex_dm->pre_val0x6c4 = coex_dm->cur_val0x6c4; + coex_dm->pre_val0x6c8 = coex_dm->cur_val0x6c8; + coex_dm->pre_val0x6cc = coex_dm->cur_val0x6cc; +} + +void halbtc8192e2ant_coex_table_with_type(struct btc_coexist *btcoexist, + bool force_exec, u8 type) +{ + switch (type) { + case 0: + halbtc8192e2ant_coex_table(btcoexist, force_exec, 0x55555555, + 0x5a5a5a5a, 0xffffff, 0x3); + break; + case 1: + halbtc8192e2ant_coex_table(btcoexist, force_exec, 0x5a5a5a5a, + 0x5a5a5a5a, 0xffffff, 0x3); + break; + case 2: + halbtc8192e2ant_coex_table(btcoexist, force_exec, 0x55555555, + 0x5ffb5ffb, 0xffffff, 0x3); + break; + case 3: + halbtc8192e2ant_coex_table(btcoexist, force_exec, 0xdfffdfff, + 0x5fdb5fdb, 0xffffff, 0x3); + break; + case 4: + halbtc8192e2ant_coex_table(btcoexist, force_exec, 0xdfffdfff, + 0x5ffb5ffb, 0xffffff, 0x3); + break; + default: + break; + } +} + +void halbtc8192e2ant_set_fw_ignore_wlanact(struct btc_coexist *btcoexist, + bool enable) +{ + u8 h2c_parameter[1] ={0}; + + if (enable) + h2c_parameter[0] |= BIT0; /* function enable */ + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex]set FW for BT Ignore Wlan_Act, FW write 0x63=0x%x\n", + h2c_parameter[0]); + + btcoexist->btc_fill_h2c(btcoexist, 0x63, 1, h2c_parameter); +} + +void halbtc8192e2ant_IgnoreWlanAct(struct btc_coexist *btcoexist, + bool force_exec, bool enable) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s turn Ignore WlanAct %s\n", + (force_exec? "force to":""), (enable? "ON":"OFF")); + coex_dm->cur_ignore_wlan_act = enable; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], bPreIgnoreWlanAct = %d ", + coex_dm->pre_ignore_wlan_act); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "bCurIgnoreWlanAct = %d!!\n", + coex_dm->cur_ignore_wlan_act); + + if (coex_dm->pre_ignore_wlan_act == + coex_dm->cur_ignore_wlan_act) + return; + } + halbtc8192e2ant_set_fw_ignore_wlanact(btcoexist, enable); + + coex_dm->pre_ignore_wlan_act = coex_dm->cur_ignore_wlan_act; +} + +void halbtc8192e2ant_SetFwPstdma(struct btc_coexist *btcoexist, u8 byte1, + u8 byte2, u8 byte3, u8 byte4, u8 byte5) +{ + u8 h2c_parameter[5] ={0}; + + h2c_parameter[0] = byte1; + h2c_parameter[1] = byte2; + h2c_parameter[2] = byte3; + h2c_parameter[3] = byte4; + h2c_parameter[4] = byte5; + + coex_dm->ps_tdma_para[0] = byte1; + coex_dm->ps_tdma_para[1] = byte2; + coex_dm->ps_tdma_para[2] = byte3; + coex_dm->ps_tdma_para[3] = byte4; + coex_dm->ps_tdma_para[4] = byte5; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], FW write 0x60(5bytes)=0x%x%08x\n", + h2c_parameter[0], + h2c_parameter[1] << 24 | h2c_parameter[2] << 16 | + h2c_parameter[3] << 8 | h2c_parameter[4]); + + btcoexist->btc_fill_h2c(btcoexist, 0x60, 5, h2c_parameter); +} + +void halbtc8192e2ant_sw_mechanism1(struct btc_coexist *btcoexist, + bool shrink_rx_lpf, bool low_penalty_ra, + bool limited_dig, bool btlan_constrain) +{ + halbtc8192e2ant_rf_shrink(btcoexist, NORMAL_EXEC, shrink_rx_lpf); +} + +void halbtc8192e2ant_sw_mechanism2(struct btc_coexist *btcoexist, + bool agc_table_shift, bool adc_backoff, + bool sw_dac_swing, u32 dac_swinglvl) +{ + halbtc8192e2ant_AgcTable(btcoexist, NORMAL_EXEC, agc_table_shift); + halbtc8192e2ant_DacSwing(btcoexist, NORMAL_EXEC, sw_dac_swing, + dac_swinglvl); +} + +void halbtc8192e2ant_ps_tdma(struct btc_coexist *btcoexist, + bool force_exec, bool turn_on, u8 type) +{ + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s turn %s PS TDMA, type=%d\n", + (force_exec? "force to":""), (turn_on? "ON":"OFF"), type); + coex_dm->cur_ps_tdma_on = turn_on; + coex_dm->cur_ps_tdma = type; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], bPrePsTdmaOn = %d, bCurPsTdmaOn = %d!!\n", + coex_dm->pre_ps_tdma_on, coex_dm->cur_ps_tdma_on); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], prePsTdma = %d, curPsTdma = %d!!\n", + coex_dm->pre_ps_tdma, coex_dm->cur_ps_tdma); + + if ((coex_dm->pre_ps_tdma_on == coex_dm->cur_ps_tdma_on) && + (coex_dm->pre_ps_tdma == coex_dm->cur_ps_tdma)) + return; + } + if (turn_on) { + switch (type) { + case 1: + default: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x1a, + 0x1a, 0xe1, 0x90); + break; + case 2: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x12, + 0x12, 0xe1, 0x90); + break; + case 3: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x1c, + 0x3, 0xf1, 0x90); + break; + case 4: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x10, + 0x3, 0xf1, 0x90); + break; + case 5: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x1a, + 0x1a, 0x60, 0x90); + break; + case 6: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x12, + 0x12, 0x60, 0x90); + break; + case 7: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x1c, + 0x3, 0x70, 0x90); + break; + case 8: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xa3, 0x10, + 0x3, 0x70, 0x90); + break; + case 9: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x1a, + 0x1a, 0xe1, 0x10); + break; + case 10: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x12, + 0x12, 0xe1, 0x10); + break; + case 11: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x1c, + 0x3, 0xf1, 0x10); + break; + case 12: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x10, + 0x3, 0xf1, 0x10); + break; + case 13: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x1a, + 0x1a, 0xe0, 0x10); + break; + case 14: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x12, + 0x12, 0xe0, 0x10); + break; + case 15: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x1c, + 0x3, 0xf0, 0x10); + break; + case 16: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x12, + 0x3, 0xf0, 0x10); + break; + case 17: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0x61, 0x20, + 0x03, 0x10, 0x10); + break; + case 18: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x5, + 0x5, 0xe1, 0x90); + break; + case 19: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x25, + 0x25, 0xe1, 0x90); + break; + case 20: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x25, + 0x25, 0x60, 0x90); + break; + case 21: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x15, + 0x03, 0x70, 0x90); + break; + case 71: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0xe3, 0x1a, + 0x1a, 0xe1, 0x90); + break; + } + } else { + /* disable PS tdma */ + switch (type) { + default: + case 0: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0x8, 0x0, 0x0, + 0x0, 0x0); + btcoexist->btc_write_1byte(btcoexist, 0x92c, 0x4); + break; + case 1: + halbtc8192e2ant_SetFwPstdma(btcoexist, 0x0, 0x0, 0x0, + 0x8, 0x0); + mdelay(5); + btcoexist->btc_write_1byte(btcoexist, 0x92c, 0x20); + break; + } + } + + /* update pre state */ + coex_dm->pre_ps_tdma_on = coex_dm->cur_ps_tdma_on; + coex_dm->pre_ps_tdma = coex_dm->cur_ps_tdma; +} + +void halbtc8192e2ant_set_switch_sstype(struct btc_coexist *btcoexist, u8 sstype) +{ + u8 mimops = BTC_MIMO_PS_DYNAMIC; + u32 disra_mask = 0x0; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], REAL set SS Type = %d\n", sstype); + + disra_mask = halbtc8192e2ant_decidera_mask(btcoexist, sstype, + coex_dm->curra_masktype); + halbtc8192e2ant_Updatera_mask(btcoexist, FORCE_EXEC, disra_mask); + + if (sstype == 1) { + halbtc8192e2ant_ps_tdma(btcoexist, FORCE_EXEC, false, 1); + /* switch ofdm path */ + btcoexist->btc_write_1byte(btcoexist, 0xc04, 0x11); + btcoexist->btc_write_1byte(btcoexist, 0xd04, 0x1); + btcoexist->btc_write_4byte(btcoexist, 0x90c, 0x81111111); + /* switch cck patch */ + btcoexist->btc_write_1byte_bitmask(btcoexist, 0xe77, 0x4, 0x1); + btcoexist->btc_write_1byte(btcoexist, 0xa07, 0x81); + mimops=BTC_MIMO_PS_STATIC; + } else if (sstype == 2) { + halbtc8192e2ant_ps_tdma(btcoexist, FORCE_EXEC, false, 0); + btcoexist->btc_write_1byte(btcoexist, 0xc04, 0x33); + btcoexist->btc_write_1byte(btcoexist, 0xd04, 0x3); + btcoexist->btc_write_4byte(btcoexist, 0x90c, 0x81121313); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0xe77, 0x4, 0x0); + btcoexist->btc_write_1byte(btcoexist, 0xa07, 0x41); + mimops=BTC_MIMO_PS_DYNAMIC; + } + /* set rx 1ss or 2ss */ + btcoexist->btc_set(btcoexist, BTC_SET_ACT_SEND_MIMO_PS, &mimops); +} + +void halbtc8192e2ant_switch_sstype(struct btc_coexist *btcoexist, + bool force_exec, u8 new_sstype) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], %s Switch SS Type = %d\n", + (force_exec? "force to":""), new_sstype); + coex_dm->cur_sstype = new_sstype; + + if (!force_exec) { + if (coex_dm->pre_sstype == coex_dm->cur_sstype) + return; + } + halbtc8192e2ant_set_switch_sstype(btcoexist, coex_dm->cur_sstype); + + coex_dm->pre_sstype = coex_dm->cur_sstype; +} + +void halbtc8192e2ant_coex_alloff(struct btc_coexist *btcoexist) +{ + /* fw all off */ + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 1); + halbtc8192e2ant_fw_dac_swinglvl(btcoexist, NORMAL_EXEC, 6); + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 0); + + /* sw all off */ + halbtc8192e2ant_sw_mechanism1(btcoexist, false, false, false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, false, 0x18); + + /* hw all off */ + halbtc8192e2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0); +} + +void halbtc8192e2ant_init_coex_dm(struct btc_coexist *btcoexist) +{ + /* force to reset coex mechanism */ + + halbtc8192e2ant_ps_tdma(btcoexist, FORCE_EXEC, false, 1); + halbtc8192e2ant_fw_dac_swinglvl(btcoexist, FORCE_EXEC, 6); + halbtc8192e2ant_dec_btpwr(btcoexist, FORCE_EXEC, 0); + + halbtc8192e2ant_coex_table_with_type(btcoexist, FORCE_EXEC, 0); + halbtc8192e2ant_switch_sstype(btcoexist, FORCE_EXEC, 2); + + halbtc8192e2ant_sw_mechanism1(btcoexist, false, false, false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, false, 0x18); +} + +void halbtc8192e2ant_action_bt_inquiry(struct btc_coexist *btcoexist) +{ + bool low_pwr_disable = true; + + btcoexist->btc_set(btcoexist, BTC_SET_ACT_DISABLE_LOW_POWER, + &low_pwr_disable); + + halbtc8192e2ant_switch_sstype(btcoexist, NORMAL_EXEC, 1); + + halbtc8192e2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 2); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 3); + halbtc8192e2ant_fw_dac_swinglvl(btcoexist, NORMAL_EXEC, 6); + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 0); + + halbtc8192e2ant_sw_mechanism1(btcoexist, false, false, false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, false, 0x18); +} + +bool halbtc8192e2ant_is_common_action(struct btc_coexist *btcoexist) +{ + struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; + bool common = false, wifi_connected = false, wifi_busy = false; + bool bt_hson = false, low_pwr_disable = false; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hson); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + + if (bt_link_info->sco_exist || bt_link_info->hid_exist) + halbtc8192e2ant_limited_tx(btcoexist, NORMAL_EXEC, 1, 0, 0, 0); + else + halbtc8192e2ant_limited_tx(btcoexist, NORMAL_EXEC, 0, 0, 0, 0); + + if (!wifi_connected) { + low_pwr_disable = false; + btcoexist->btc_set(btcoexist, BTC_SET_ACT_DISABLE_LOW_POWER, + &low_pwr_disable); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Wifi non-connected idle!!\n"); + + if ((BT_8192E_2ANT_BT_STATUS_NON_CONNECTED_IDLE == + coex_dm->bt_status) || + (BT_8192E_2ANT_BT_STATUS_CONNECTED_IDLE == + coex_dm->bt_status)) { + halbtc8192e2ant_switch_sstype(btcoexist, NORMAL_EXEC, + 2); + halbtc8192e2ant_coex_table_with_type(btcoexist, + NORMAL_EXEC, 1); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, + 0); + } else { + halbtc8192e2ant_switch_sstype(btcoexist, NORMAL_EXEC, + 1); + halbtc8192e2ant_coex_table_with_type(btcoexist, + NORMAL_EXEC, 0); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, + 1); + } + + halbtc8192e2ant_fw_dac_swinglvl(btcoexist, NORMAL_EXEC, 6); + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 0); + + halbtc8192e2ant_sw_mechanism1(btcoexist, false, false, false, + false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, false, + 0x18); + + common = true; + } else { + if (BT_8192E_2ANT_BT_STATUS_NON_CONNECTED_IDLE == + coex_dm->bt_status) { + low_pwr_disable = false; + btcoexist->btc_set(btcoexist, + BTC_SET_ACT_DISABLE_LOW_POWER, + &low_pwr_disable); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "Wifi connected + BT non connected-idle!!\n"); + + halbtc8192e2ant_switch_sstype(btcoexist, NORMAL_EXEC, + 2); + halbtc8192e2ant_coex_table_with_type(btcoexist, + NORMAL_EXEC, 1); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, + 0); + halbtc8192e2ant_fw_dac_swinglvl(btcoexist, NORMAL_EXEC, + 6); + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 0); + + halbtc8192e2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + + common = true; + } else if (BT_8192E_2ANT_BT_STATUS_CONNECTED_IDLE == + coex_dm->bt_status) { + low_pwr_disable = true; + btcoexist->btc_set(btcoexist, + BTC_SET_ACT_DISABLE_LOW_POWER, + &low_pwr_disable); + + if (bt_hson) + return false; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "Wifi connected + BT connected-idle!!\n"); + + halbtc8192e2ant_switch_sstype(btcoexist, NORMAL_EXEC, + 2); + halbtc8192e2ant_coex_table_with_type(btcoexist, + NORMAL_EXEC, 1); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, + 0); + halbtc8192e2ant_fw_dac_swinglvl(btcoexist, NORMAL_EXEC, + 6); + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 0); + + halbtc8192e2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + + common = true; + } else { + low_pwr_disable = true; + btcoexist->btc_set(btcoexist, + BTC_SET_ACT_DISABLE_LOW_POWER, + &low_pwr_disable); + + if (wifi_busy) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "Wifi Connected-Busy + BT Busy!!\n"); + common = false; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "Wifi Connected-Idle + BT Busy!!\n"); + + halbtc8192e2ant_switch_sstype(btcoexist, + NORMAL_EXEC, 1); + halbtc8192e2ant_coex_table_with_type(btcoexist, + NORMAL_EXEC, + 2); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 21); + halbtc8192e2ant_fw_dac_swinglvl(btcoexist, + NORMAL_EXEC, 6); + halbtc8192e2ant_dec_btpwr(btcoexist, + NORMAL_EXEC, 0); + halbtc8192e2ant_sw_mechanism1(btcoexist, false, + false, false, + false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, + false, false, + 0x18); + common = true; + } + } + } + return common; +} + +void halbtc8192e2ant_tdma_duration_adjust(struct btc_coexist *btcoexist, + bool sco_hid, bool tx_pause, + u8 max_interval) +{ + static int up, dn, m, n, wait_cnt; + /* 0: no change, +1: increase WiFi duration, + * -1: decrease WiFi duration */ + int result; + u8 retry_cnt = 0; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], TdmaDurationAdjust()\n"); + + if (!coex_dm->auto_tdma_adjust) { + coex_dm->auto_tdma_adjust = true; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], first run TdmaDurationAdjust()!!\n"); + if (sco_hid) { + if (tx_pause) { + if (max_interval == 1) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 13); + coex_dm->ps_tdma_du_adj_type = 13; + } else if (max_interval == 2) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->ps_tdma_du_adj_type = 14; + } else if (max_interval == 3) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = 15; + } else { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = 15; + } + } else { + if (max_interval == 1) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 9); + coex_dm->ps_tdma_du_adj_type = 9; + } else if (max_interval == 2) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->ps_tdma_du_adj_type = 10; + } else if (max_interval == 3) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = 11; + } else { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = 11; + } + } + } else { + if (tx_pause) { + if (max_interval == 1) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 5); + coex_dm->ps_tdma_du_adj_type = 5; + } else if (max_interval == 2) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->ps_tdma_du_adj_type = 6; + } else if (max_interval == 3) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = 7; + } else { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = 7; + } + } else { + if (max_interval == 1) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 1); + coex_dm->ps_tdma_du_adj_type = 1; + } else if (max_interval == 2) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = 2; + } else if (max_interval == 3) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = 3; + } else { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = 3; + } + } + } + + up = 0; + dn = 0; + m = 1; + n= 3; + result = 0; + wait_cnt = 0; + } else { + /* accquire the BT TRx retry count from BT_Info byte2 */ + retry_cnt = coex_sta->bt_retry_cnt; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], retry_cnt = %d\n", retry_cnt); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], up=%d, dn=%d, m=%d, n=%d, wait_cnt=%d\n", + up, dn, m, n, wait_cnt); + result = 0; + wait_cnt++; + /* no retry in the last 2-second duration */ + if (retry_cnt == 0) { + up++; + dn--; + + if (dn <= 0) + dn = 0; + + if (up >= n) { + wait_cnt = 0; + n = 3; + up = 0; + dn = 0; + result = 1; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex]Increase wifi duration!!\n"); + } + } else if (retry_cnt <= 3) { + up--; + dn++; + + if (up <= 0) + up = 0; + + if (dn == 2) { + if (wait_cnt <= 2) + m++; + else + m = 1; + + if (m >= 20) + m = 20; + + n = 3 * m; + up = 0; + dn = 0; + wait_cnt = 0; + result = -1; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "Reduce wifi duration for retry<3\n"); + } + } else { + if (wait_cnt == 1) + m++; + else + m = 1; + + if (m >= 20) + m = 20; + + n = 3*m; + up = 0; + dn = 0; + wait_cnt = 0; + result = -1; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "Decrease wifi duration for retryCounter>3!!\n"); + } + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], max Interval = %d\n", max_interval); + if (max_interval == 1) { + if (tx_pause) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], TxPause = 1\n"); + + if (coex_dm->cur_ps_tdma == 71) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 5); + coex_dm->ps_tdma_du_adj_type = 5; + } else if (coex_dm->cur_ps_tdma == 1) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 5); + coex_dm->ps_tdma_du_adj_type = 5; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->ps_tdma_du_adj_type = 6; + } else if (coex_dm->cur_ps_tdma == 3) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 4) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 8); + coex_dm->ps_tdma_du_adj_type = 8; + } + if (coex_dm->cur_ps_tdma == 9) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 13); + coex_dm->ps_tdma_du_adj_type = 13; + } else if (coex_dm->cur_ps_tdma == 10) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->ps_tdma_du_adj_type = 14; + } else if (coex_dm->cur_ps_tdma == 11) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 12) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 16); + coex_dm->ps_tdma_du_adj_type = 16; + } + + if (result == -1) { + if (coex_dm->cur_ps_tdma == 5) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->ps_tdma_du_adj_type = + 6; + } else if (coex_dm->cur_ps_tdma == 6) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = + 7; + } else if (coex_dm->cur_ps_tdma == 7) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 8); + coex_dm->ps_tdma_du_adj_type = + 8; + } else if (coex_dm->cur_ps_tdma == 13) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->ps_tdma_du_adj_type = + 14; + } else if (coex_dm->cur_ps_tdma == 14) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = + 15; + } else if (coex_dm->cur_ps_tdma == 15) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 16); + coex_dm->ps_tdma_du_adj_type = + 16; + } + } else if (result == 1) { + if (coex_dm->cur_ps_tdma == 8) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = + 7; + } else if (coex_dm->cur_ps_tdma == 7) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->ps_tdma_du_adj_type = + 6; + } else if (coex_dm->cur_ps_tdma == 6) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 5); + coex_dm->ps_tdma_du_adj_type = + 5; + } else if (coex_dm->cur_ps_tdma == 16) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = + 15; + } else if (coex_dm->cur_ps_tdma == 15) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->ps_tdma_du_adj_type = + 14; + } else if (coex_dm->cur_ps_tdma == 14) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 13); + coex_dm->ps_tdma_du_adj_type = + 13; + } + } + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], TxPause = 0\n"); + if (coex_dm->cur_ps_tdma == 5) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 71); + coex_dm->ps_tdma_du_adj_type = 71; + } else if (coex_dm->cur_ps_tdma == 6) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = 2; + } else if (coex_dm->cur_ps_tdma == 7) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = 3; + } else if (coex_dm->cur_ps_tdma == 8) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 4); + coex_dm->ps_tdma_du_adj_type = 4; + } + if (coex_dm->cur_ps_tdma == 13) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 9); + coex_dm->ps_tdma_du_adj_type = 9; + } else if (coex_dm->cur_ps_tdma == 14) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->ps_tdma_du_adj_type = 10; + } else if (coex_dm->cur_ps_tdma == 15) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = 11; + } else if (coex_dm->cur_ps_tdma == 16) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 12); + coex_dm->ps_tdma_du_adj_type = 12; + } + + if (result == -1) { + if (coex_dm->cur_ps_tdma == 71) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 1); + coex_dm->ps_tdma_du_adj_type = + 1; + } else if (coex_dm->cur_ps_tdma == 1) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = + 2; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = + 3; + } else if (coex_dm->cur_ps_tdma == 3) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 4); + coex_dm->ps_tdma_du_adj_type = + 4; + } else if (coex_dm->cur_ps_tdma == 9) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->ps_tdma_du_adj_type = + 10; + } else if (coex_dm->cur_ps_tdma == 10) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = + 11; + } else if (coex_dm->cur_ps_tdma == 11) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 12); + coex_dm->ps_tdma_du_adj_type = + 12; + } + } else if (result == 1) { + if (coex_dm->cur_ps_tdma == 4) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = + 3; + } else if (coex_dm->cur_ps_tdma == 3) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = + 2; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 1); + coex_dm->ps_tdma_du_adj_type = + 1; + } else if (coex_dm->cur_ps_tdma == 1) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 71); + coex_dm->ps_tdma_du_adj_type = + 71; + } else if (coex_dm->cur_ps_tdma == 12) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = + 11; + } else if (coex_dm->cur_ps_tdma == 11) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->ps_tdma_du_adj_type = + 10; + } else if (coex_dm->cur_ps_tdma == 10) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 9); + coex_dm->ps_tdma_du_adj_type = + 9; + } + } + } + } else if (max_interval == 2) { + if (tx_pause) { + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], TxPause = 1\n"); + if (coex_dm->cur_ps_tdma == 1) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->ps_tdma_du_adj_type = 6; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->ps_tdma_du_adj_type = 6; + } else if (coex_dm->cur_ps_tdma == 3) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 4) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 8); + coex_dm->ps_tdma_du_adj_type = 8; + } + if (coex_dm->cur_ps_tdma == 9) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->ps_tdma_du_adj_type = 14; + } else if (coex_dm->cur_ps_tdma == 10) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->ps_tdma_du_adj_type = 14; + } else if (coex_dm->cur_ps_tdma == 11) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 12) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 16); + coex_dm->ps_tdma_du_adj_type = 16; + } + if (result == -1) { + if (coex_dm->cur_ps_tdma == 5) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->ps_tdma_du_adj_type = + 6; + } else if (coex_dm->cur_ps_tdma == 6) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = + 7; + } else if (coex_dm->cur_ps_tdma == 7) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 8); + coex_dm->ps_tdma_du_adj_type = + 8; + } else if (coex_dm->cur_ps_tdma == 13) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->ps_tdma_du_adj_type = + 14; + } else if (coex_dm->cur_ps_tdma == 14) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = + 15; + } else if (coex_dm->cur_ps_tdma == 15) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 16); + coex_dm->ps_tdma_du_adj_type = + 16; + } + } else if (result == 1) { + if (coex_dm->cur_ps_tdma == 8) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = + 7; + } else if (coex_dm->cur_ps_tdma == 7) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->ps_tdma_du_adj_type = + 6; + } else if (coex_dm->cur_ps_tdma == 6) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->ps_tdma_du_adj_type = + 6; + } else if (coex_dm->cur_ps_tdma == 16) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = + 15; + } else if (coex_dm->cur_ps_tdma == 15) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->ps_tdma_du_adj_type = + 14; + } else if (coex_dm->cur_ps_tdma == 14) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->ps_tdma_du_adj_type = + 14; + } + } + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], TxPause = 0\n"); + if (coex_dm->cur_ps_tdma == 5) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = 2; + } else if (coex_dm->cur_ps_tdma == 6) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = 2; + } else if (coex_dm->cur_ps_tdma == 7) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = 3; + } else if (coex_dm->cur_ps_tdma == 8) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 4); + coex_dm->ps_tdma_du_adj_type = 4; + } + if (coex_dm->cur_ps_tdma == 13) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->ps_tdma_du_adj_type = 10; + } else if (coex_dm->cur_ps_tdma == 14) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->ps_tdma_du_adj_type = 10; + } else if (coex_dm->cur_ps_tdma == 15) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = 11; + } else if (coex_dm->cur_ps_tdma == 16) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 12); + coex_dm->ps_tdma_du_adj_type = 12; + } + if (result == -1) { + if (coex_dm->cur_ps_tdma == 1) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = + 2; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = + 3; + } else if (coex_dm->cur_ps_tdma == 3) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 4); + coex_dm->ps_tdma_du_adj_type = + 4; + } else if (coex_dm->cur_ps_tdma == 9) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->ps_tdma_du_adj_type = + 10; + } else if (coex_dm->cur_ps_tdma == 10) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = + 11; + } else if (coex_dm->cur_ps_tdma == 11) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 12); + coex_dm->ps_tdma_du_adj_type = + 12; + } + } else if (result == 1) { + if (coex_dm->cur_ps_tdma == 4) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = + 3; + } else if (coex_dm->cur_ps_tdma == 3) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = + 2; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = + 2; + } else if(coex_dm->cur_ps_tdma == 12) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = + 11; + } else if(coex_dm->cur_ps_tdma == 11) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->ps_tdma_du_adj_type = + 10; + } else if(coex_dm->cur_ps_tdma == 10) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->ps_tdma_du_adj_type = + 10; + } + } + } + } else if (max_interval == 3) { + if (tx_pause) { + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], TxPause = 1\n"); + if (coex_dm->cur_ps_tdma == 1) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 3) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 4) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 8); + coex_dm->ps_tdma_du_adj_type = 8; + } + if (coex_dm->cur_ps_tdma == 9) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 10) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 11) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 12) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 16); + coex_dm->ps_tdma_du_adj_type = 16; + } + if (result == -1) { + if (coex_dm->cur_ps_tdma == 5) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = + 7; + } else if (coex_dm->cur_ps_tdma == 6) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = + 7; + } else if (coex_dm->cur_ps_tdma == 7) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 8); + coex_dm->ps_tdma_du_adj_type = + 8; + } else if (coex_dm->cur_ps_tdma == 13) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = + 15; + } else if (coex_dm->cur_ps_tdma == 14) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = + 15; + } else if (coex_dm->cur_ps_tdma == 15) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 16); + coex_dm->ps_tdma_du_adj_type = + 16; + } + } else if (result == 1) { + if (coex_dm->cur_ps_tdma == 8) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = + 7; + } else if (coex_dm->cur_ps_tdma == 7) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = + 7; + } else if (coex_dm->cur_ps_tdma == 6) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = + 7; + } else if (coex_dm->cur_ps_tdma == 16) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = + 15; + } else if (coex_dm->cur_ps_tdma == 15) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = + 15; + } else if (coex_dm->cur_ps_tdma == 14) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = + 15; + } + } + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], TxPause = 0\n"); + if (coex_dm->cur_ps_tdma == 5) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = 3; + } else if (coex_dm->cur_ps_tdma == 6) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = 3; + } else if (coex_dm->cur_ps_tdma == 7) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = 3; + } else if (coex_dm->cur_ps_tdma == 8) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 4); + coex_dm->ps_tdma_du_adj_type = 4; + } + if (coex_dm->cur_ps_tdma == 13) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = 11; + } else if (coex_dm->cur_ps_tdma == 14) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = 11; + } else if (coex_dm->cur_ps_tdma == 15) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = 11; + } else if (coex_dm->cur_ps_tdma == 16) { + halbtc8192e2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 12); + coex_dm->ps_tdma_du_adj_type = 12; + } + if (result == -1) { + if (coex_dm->cur_ps_tdma == 1) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = + 3; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = + 3; + } else if (coex_dm->cur_ps_tdma == 3) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 4); + coex_dm->ps_tdma_du_adj_type = + 4; + } else if (coex_dm->cur_ps_tdma == 9) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = + 11; + } else if (coex_dm->cur_ps_tdma == 10) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = + 11; + } else if (coex_dm->cur_ps_tdma == 11) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 12); + coex_dm->ps_tdma_du_adj_type = + 12; + } + } else if (result == 1) { + if (coex_dm->cur_ps_tdma == 4) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = + 3; + } else if (coex_dm->cur_ps_tdma == 3) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = + 3; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = + 3; + } else if (coex_dm->cur_ps_tdma == 12) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = + 11; + } else if (coex_dm->cur_ps_tdma == 11) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = + 11; + } else if (coex_dm->cur_ps_tdma == 10) { + halbtc8192e2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = + 11; + } + } + } + } + } + + /* if current PsTdma not match with + * the recorded one (when scan, dhcp...), + * then we have to adjust it back to the previous record one. */ + if (coex_dm->cur_ps_tdma != coex_dm->ps_tdma_du_adj_type) { + bool scan = false, link = false, roam = false; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], PsTdma type dismatch!!!, " ); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "curPsTdma=%d, recordPsTdma=%d\n", + coex_dm->cur_ps_tdma, coex_dm->ps_tdma_du_adj_type); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam); + + if ( !scan && !link && !roam) + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, + coex_dm->ps_tdma_du_adj_type); + else + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], roaming/link/scan is under progress, will adjust next time!!!\n"); + } +} + +/* SCO only or SCO+PAN(HS) */ +void halbtc8192e2ant_action_sco(struct btc_coexist *btcoexist) +{ + u8 wifirssi_state, btrssi_state = BTC_RSSI_STATE_STAY_LOW; + u32 wifi_bw; + + wifirssi_state = halbtc8192e2ant_wifirssi_state(btcoexist, 0, 2, 15, 0); + + halbtc8192e2ant_switch_sstype(btcoexist, NORMAL_EXEC, 1); + halbtc8192e2ant_limited_rx(btcoexist, NORMAL_EXEC, false, false, 0x8); + + halbtc8192e2ant_fw_dac_swinglvl(btcoexist, NORMAL_EXEC, 6); + + halbtc8192e2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4); + + btrssi_state = halbtc8192e2ant_btrssi_state(3, 34, 42); + + if ((btrssi_state == BTC_RSSI_STATE_LOW) || + (btrssi_state == BTC_RSSI_STATE_STAY_LOW)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 0); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 13); + } else if ((btrssi_state == BTC_RSSI_STATE_MEDIUM) || + (btrssi_state == BTC_RSSI_STATE_STAY_MEDIUM)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 2); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 9); + } else if ((btrssi_state == BTC_RSSI_STATE_HIGH) || + (btrssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 4); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 9); + } + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x6); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x6); + } + } else { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x6); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x6); + } + } +} + +void halbtc8192e2ant_action_sco_pan(struct btc_coexist *btcoexist) +{ + u8 wifirssi_state, btrssi_state = BTC_RSSI_STATE_STAY_LOW; + u32 wifi_bw; + + wifirssi_state = halbtc8192e2ant_wifirssi_state(btcoexist, 0, 2, 15, 0); + + halbtc8192e2ant_switch_sstype(btcoexist, NORMAL_EXEC, 1); + halbtc8192e2ant_limited_rx(btcoexist, NORMAL_EXEC, false, false, 0x8); + + halbtc8192e2ant_fw_dac_swinglvl(btcoexist, NORMAL_EXEC, 6); + + halbtc8192e2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 4); + + btrssi_state = halbtc8192e2ant_btrssi_state(3, 34, 42); + + if ((btrssi_state == BTC_RSSI_STATE_LOW) || + (btrssi_state == BTC_RSSI_STATE_STAY_LOW)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 0); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 14); + } else if ((btrssi_state == BTC_RSSI_STATE_MEDIUM) || + (btrssi_state == BTC_RSSI_STATE_STAY_MEDIUM)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 2); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 10); + } else if ((btrssi_state == BTC_RSSI_STATE_HIGH) || + (btrssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 4); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 10); + } + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x6); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x6); + } + } else { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x6); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x6); + } + } +} + +void halbtc8192e2ant_action_hid(struct btc_coexist *btcoexist) +{ + u8 wifirssi_state, btrssi_state=BTC_RSSI_STATE_HIGH; + u32 wifi_bw; + + wifirssi_state = halbtc8192e2ant_wifirssi_state(btcoexist, 0, 2, 15, 0); + btrssi_state = halbtc8192e2ant_btrssi_state(3, 34, 42); + + halbtc8192e2ant_switch_sstype(btcoexist, NORMAL_EXEC, 1); + halbtc8192e2ant_limited_rx(btcoexist, NORMAL_EXEC, false, false, 0x8); + + halbtc8192e2ant_fw_dac_swinglvl(btcoexist, NORMAL_EXEC, 6); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + halbtc8192e2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 3); + + if ((btrssi_state == BTC_RSSI_STATE_LOW) || + (btrssi_state == BTC_RSSI_STATE_STAY_LOW)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 0); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 13); + } else if ((btrssi_state == BTC_RSSI_STATE_MEDIUM) || + (btrssi_state == BTC_RSSI_STATE_STAY_MEDIUM)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 2); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 9); + } else if ((btrssi_state == BTC_RSSI_STATE_HIGH) || + (btrssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 4); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 9); + } + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +/* A2DP only / PAN(EDR) only/ A2DP+PAN(HS) */ +void halbtc8192e2ant_action_a2dp(struct btc_coexist *btcoexist) +{ + u8 wifirssi_state, btrssi_state = BTC_RSSI_STATE_HIGH; + u32 wifi_bw; + bool long_dist = false; + + wifirssi_state = halbtc8192e2ant_wifirssi_state(btcoexist, 0, 2, 15, 0); + btrssi_state = halbtc8192e2ant_btrssi_state(3, 34, 42); + + if ((btrssi_state == BTC_RSSI_STATE_LOW || + btrssi_state == BTC_RSSI_STATE_STAY_LOW) && + (wifirssi_state == BTC_RSSI_STATE_LOW || + wifirssi_state == BTC_RSSI_STATE_STAY_LOW)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], A2dp, wifi/bt rssi both LOW!!\n"); + long_dist = true; + } + if (long_dist) { + halbtc8192e2ant_switch_sstype(btcoexist, NORMAL_EXEC, 2); + halbtc8192e2ant_limited_rx(btcoexist, NORMAL_EXEC, false, true, + 0x4); + } else { + halbtc8192e2ant_switch_sstype(btcoexist, NORMAL_EXEC, 1); + halbtc8192e2ant_limited_rx(btcoexist, NORMAL_EXEC, false, false, + 0x8); + } + + halbtc8192e2ant_fw_dac_swinglvl(btcoexist, NORMAL_EXEC, 6); + + if (long_dist) + halbtc8192e2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0); + else + halbtc8192e2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 2); + + + if (long_dist) { + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 17); + coex_dm->auto_tdma_adjust = false; + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 0); + } else { + if ((btrssi_state == BTC_RSSI_STATE_LOW) || + (btrssi_state == BTC_RSSI_STATE_STAY_LOW)) { + halbtc8192e2ant_tdma_duration_adjust(btcoexist, false, + true, 1); + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 0); + } else if ((btrssi_state == BTC_RSSI_STATE_MEDIUM) || + (btrssi_state == BTC_RSSI_STATE_STAY_MEDIUM)) { + halbtc8192e2ant_tdma_duration_adjust(btcoexist, false, + false, 1); + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 2); + } else if ((btrssi_state == BTC_RSSI_STATE_HIGH) || + (btrssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_tdma_duration_adjust(btcoexist, false, + false, 1); + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 4); + } + } + + /* sw mechanism */ + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +void halbtc8192e2ant_action_a2dp_pan_hs(struct btc_coexist *btcoexist) +{ + u8 wifirssi_state, btrssi_state = BTC_RSSI_STATE_HIGH; + u32 wifi_bw; + + wifirssi_state = halbtc8192e2ant_wifirssi_state(btcoexist, 0, 2, 15, 0); + btrssi_state = halbtc8192e2ant_btrssi_state(3, 34, 42); + + halbtc8192e2ant_switch_sstype(btcoexist, NORMAL_EXEC, 1); + halbtc8192e2ant_limited_rx(btcoexist, NORMAL_EXEC, false, false, 0x8); + + halbtc8192e2ant_fw_dac_swinglvl(btcoexist, NORMAL_EXEC, 6); + halbtc8192e2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 2); + + if ((btrssi_state == BTC_RSSI_STATE_LOW) || + (btrssi_state == BTC_RSSI_STATE_STAY_LOW)) { + halbtc8192e2ant_tdma_duration_adjust(btcoexist, false, true, 2); + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 0); + } else if ((btrssi_state == BTC_RSSI_STATE_MEDIUM) || + (btrssi_state == BTC_RSSI_STATE_STAY_MEDIUM)) { + halbtc8192e2ant_tdma_duration_adjust(btcoexist, false, false, + 2); + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 2); + } else if ((btrssi_state == BTC_RSSI_STATE_HIGH) || + (btrssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_tdma_duration_adjust(btcoexist, false, false, + 2); + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 4); + } + + /* sw mechanism */ + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + true, 0x6); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + true, 0x6); + } + } else { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + true, 0x6); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + true, 0x6); + } + } +} + +void halbtc8192e2ant_action_pan_edr(struct btc_coexist *btcoexist) +{ + u8 wifirssi_state, btrssi_state = BTC_RSSI_STATE_HIGH; + u32 wifi_bw; + + wifirssi_state = halbtc8192e2ant_wifirssi_state(btcoexist, 0, 2, 15, 0); + btrssi_state = halbtc8192e2ant_btrssi_state(3, 34, 42); + + halbtc8192e2ant_switch_sstype(btcoexist, NORMAL_EXEC, 1); + halbtc8192e2ant_limited_rx(btcoexist, NORMAL_EXEC, false, false, 0x8); + + halbtc8192e2ant_fw_dac_swinglvl(btcoexist, NORMAL_EXEC, 6); + + halbtc8192e2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 2); + + if ((btrssi_state == BTC_RSSI_STATE_LOW) || + (btrssi_state == BTC_RSSI_STATE_STAY_LOW)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 0); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 5); + } else if ((btrssi_state == BTC_RSSI_STATE_MEDIUM) || + (btrssi_state == BTC_RSSI_STATE_STAY_MEDIUM)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 2); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 1); + } else if ((btrssi_state == BTC_RSSI_STATE_HIGH) || + (btrssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 4); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 1); + } + + /* sw mechanism */ + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +/* PAN(HS) only */ +void halbtc8192e2ant_action_pan_hs(struct btc_coexist *btcoexist) +{ + u8 wifirssi_state, btrssi_state = BTC_RSSI_STATE_HIGH; + u32 wifi_bw; + + wifirssi_state = halbtc8192e2ant_wifirssi_state(btcoexist, 0, 2, 15, 0); + btrssi_state = halbtc8192e2ant_btrssi_state(3, 34, 42); + + halbtc8192e2ant_switch_sstype(btcoexist, NORMAL_EXEC, 1); + halbtc8192e2ant_limited_rx(btcoexist, NORMAL_EXEC, false, false, 0x8); + + halbtc8192e2ant_fw_dac_swinglvl(btcoexist, NORMAL_EXEC, 6); + + halbtc8192e2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 2); + + if ((btrssi_state == BTC_RSSI_STATE_LOW) || + (btrssi_state == BTC_RSSI_STATE_STAY_LOW)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 0); + } else if ((btrssi_state == BTC_RSSI_STATE_MEDIUM) || + (btrssi_state == BTC_RSSI_STATE_STAY_MEDIUM)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 2); + } else if ((btrssi_state == BTC_RSSI_STATE_HIGH) || + (btrssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 4); + } + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 1); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +/* PAN(EDR)+A2DP */ +void halbtc8192e2ant_action_pan_edr_a2dp(struct btc_coexist *btcoexist) +{ + u8 wifirssi_state, btrssi_state=BTC_RSSI_STATE_HIGH; + u32 wifi_bw; + + wifirssi_state = halbtc8192e2ant_wifirssi_state(btcoexist, 0, 2, 15, 0); + btrssi_state = halbtc8192e2ant_btrssi_state(3, 34, 42); + + halbtc8192e2ant_switch_sstype(btcoexist, NORMAL_EXEC, 1); + halbtc8192e2ant_limited_rx(btcoexist, NORMAL_EXEC, false, false, 0x8); + + halbtc8192e2ant_fw_dac_swinglvl(btcoexist, NORMAL_EXEC, 6); + + halbtc8192e2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 2); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if ((btrssi_state == BTC_RSSI_STATE_LOW) || + (btrssi_state == BTC_RSSI_STATE_STAY_LOW)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 0); + halbtc8192e2ant_tdma_duration_adjust(btcoexist, false, true, 3); + } else if ((btrssi_state == BTC_RSSI_STATE_MEDIUM) || + (btrssi_state == BTC_RSSI_STATE_STAY_MEDIUM)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 2); + halbtc8192e2ant_tdma_duration_adjust(btcoexist, false, false, + 3); + } else if ((btrssi_state == BTC_RSSI_STATE_HIGH) || + (btrssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 4); + halbtc8192e2ant_tdma_duration_adjust(btcoexist, false, false, + 3); + } + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +void halbtc8192e2ant_action_pan_edr_hid(struct btc_coexist *btcoexist) +{ + u8 wifirssi_state, btrssi_state = BTC_RSSI_STATE_HIGH; + u32 wifi_bw; + + wifirssi_state = halbtc8192e2ant_wifirssi_state(btcoexist, 0, 2, 15, 0); + btrssi_state = halbtc8192e2ant_btrssi_state(3, 34, 42); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + halbtc8192e2ant_switch_sstype(btcoexist, NORMAL_EXEC, 1); + halbtc8192e2ant_limited_rx(btcoexist, NORMAL_EXEC, false, false, 0x8); + + halbtc8192e2ant_fw_dac_swinglvl(btcoexist, NORMAL_EXEC, 6); + + halbtc8192e2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 3); + + if ((btrssi_state == BTC_RSSI_STATE_LOW) || + (btrssi_state == BTC_RSSI_STATE_STAY_LOW)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 0); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 14); + } else if ((btrssi_state == BTC_RSSI_STATE_MEDIUM) || + (btrssi_state == BTC_RSSI_STATE_STAY_MEDIUM)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 2); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 10); + } else if ((btrssi_state == BTC_RSSI_STATE_HIGH) || + (btrssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 4); + halbtc8192e2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 10); + } + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +/* HID+A2DP+PAN(EDR) */ +void halbtc8192e2ant_action_hid_a2dp_pan_edr(struct btc_coexist *btcoexist) +{ + u8 wifirssi_state, btrssi_state = BTC_RSSI_STATE_HIGH; + u32 wifi_bw; + + wifirssi_state = halbtc8192e2ant_wifirssi_state(btcoexist, 0, 2, 15, 0); + btrssi_state = halbtc8192e2ant_btrssi_state(3, 34, 42); + + halbtc8192e2ant_switch_sstype(btcoexist, NORMAL_EXEC, 1); + halbtc8192e2ant_limited_rx(btcoexist, NORMAL_EXEC, false, false, 0x8); + + halbtc8192e2ant_fw_dac_swinglvl(btcoexist, NORMAL_EXEC, 6); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + halbtc8192e2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 3); + + if ((btrssi_state == BTC_RSSI_STATE_LOW) || + (btrssi_state == BTC_RSSI_STATE_STAY_LOW)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 0); + halbtc8192e2ant_tdma_duration_adjust(btcoexist, true, true, 3); + } else if ((btrssi_state == BTC_RSSI_STATE_MEDIUM) || + (btrssi_state == BTC_RSSI_STATE_STAY_MEDIUM)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 2); + halbtc8192e2ant_tdma_duration_adjust(btcoexist, true, false, 3); + } else if ((btrssi_state == BTC_RSSI_STATE_HIGH) || + (btrssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 4); + halbtc8192e2ant_tdma_duration_adjust(btcoexist, true, false, 3); + } + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +void halbtc8192e2ant_action_hid_a2dp(struct btc_coexist *btcoexist) +{ + u8 wifirssi_state, btrssi_state = BTC_RSSI_STATE_HIGH; + u32 wifi_bw; + + wifirssi_state = halbtc8192e2ant_wifirssi_state(btcoexist, 0, 2, 15, 0); + btrssi_state = halbtc8192e2ant_btrssi_state(3, 34, 42); + + halbtc8192e2ant_switch_sstype(btcoexist, NORMAL_EXEC, 1); + halbtc8192e2ant_limited_rx(btcoexist, NORMAL_EXEC, false, false, 0x8); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + halbtc8192e2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 3); + + if ((btrssi_state == BTC_RSSI_STATE_LOW) || + (btrssi_state == BTC_RSSI_STATE_STAY_LOW)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 0); + halbtc8192e2ant_tdma_duration_adjust(btcoexist, true, true, 2); + } else if ((btrssi_state == BTC_RSSI_STATE_MEDIUM) || + (btrssi_state == BTC_RSSI_STATE_STAY_MEDIUM)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 2); + halbtc8192e2ant_tdma_duration_adjust(btcoexist, true, false, 2); + } else if ((btrssi_state == BTC_RSSI_STATE_HIGH) || + (btrssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_dec_btpwr(btcoexist, NORMAL_EXEC, 4); + halbtc8192e2ant_tdma_duration_adjust(btcoexist, true, false, 2); + } + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifirssi_state == BTC_RSSI_STATE_HIGH) || + (wifirssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8192e2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8192e2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +void halbtc8192e2ant_run_coexist_mechanism(struct btc_coexist *btcoexist) +{ + u8 algorithm = 0; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], RunCoexistMechanism()===>\n"); + + if (btcoexist->manual_control) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], return for Manual CTRL <===\n"); + return; + } + + if (coex_sta->under_ips) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], wifi is under IPS !!!\n"); + return; + } + + algorithm = halbtc8192e2ant_action_algorithm(btcoexist); + if (coex_sta->c2h_bt_inquiry_page && + (BT_8192E_2ANT_COEX_ALGO_PANHS != algorithm)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT is under inquiry/page scan !!\n"); + halbtc8192e2ant_action_bt_inquiry(btcoexist); + return; + } + + coex_dm->cur_algorithm = algorithm; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Algorithm = %d \n", coex_dm->cur_algorithm); + + if (halbtc8192e2ant_is_common_action(btcoexist)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant common.\n"); + coex_dm->auto_tdma_adjust = false; + } else { + if (coex_dm->cur_algorithm != coex_dm->pre_algorithm) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex] preAlgorithm=%d, curAlgorithm=%d\n", + coex_dm->pre_algorithm, + coex_dm->cur_algorithm); + coex_dm->auto_tdma_adjust = false; + } + switch (coex_dm->cur_algorithm) { + case BT_8192E_2ANT_COEX_ALGO_SCO: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "Action 2-Ant, algorithm = SCO.\n"); + halbtc8192e2ant_action_sco(btcoexist); + break; + case BT_8192E_2ANT_COEX_ALGO_SCO_PAN: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "Action 2-Ant, algorithm = SCO+PAN(EDR).\n"); + halbtc8192e2ant_action_sco_pan(btcoexist); + break; + case BT_8192E_2ANT_COEX_ALGO_HID: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "Action 2-Ant, algorithm = HID.\n"); + halbtc8192e2ant_action_hid(btcoexist); + break; + case BT_8192E_2ANT_COEX_ALGO_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "Action 2-Ant, algorithm = A2DP.\n"); + halbtc8192e2ant_action_a2dp(btcoexist); + break; + case BT_8192E_2ANT_COEX_ALGO_A2DP_PANHS: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "Action 2-Ant, algorithm = A2DP+PAN(HS).\n"); + halbtc8192e2ant_action_a2dp_pan_hs(btcoexist); + break; + case BT_8192E_2ANT_COEX_ALGO_PANEDR: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "Action 2-Ant, algorithm = PAN(EDR).\n"); + halbtc8192e2ant_action_pan_edr(btcoexist); + break; + case BT_8192E_2ANT_COEX_ALGO_PANHS: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "Action 2-Ant, algorithm = HS mode.\n"); + halbtc8192e2ant_action_pan_hs(btcoexist); + break; + case BT_8192E_2ANT_COEX_ALGO_PANEDR_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "Action 2-Ant, algorithm = PAN+A2DP.\n"); + halbtc8192e2ant_action_pan_edr_a2dp(btcoexist); + break; + case BT_8192E_2ANT_COEX_ALGO_PANEDR_HID: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "Action 2-Ant, algorithm = PAN(EDR)+HID.\n"); + halbtc8192e2ant_action_pan_edr_hid(btcoexist); + break; + case BT_8192E_2ANT_COEX_ALGO_HID_A2DP_PANEDR: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "Action 2-Ant, algorithm = HID+A2DP+PAN.\n"); + halbtc8192e2ant_action_hid_a2dp_pan_edr(btcoexist); + break; + case BT_8192E_2ANT_COEX_ALGO_HID_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "Action 2-Ant, algorithm = HID+A2DP.\n"); + halbtc8192e2ant_action_hid_a2dp(btcoexist); + break; + default: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "Action 2-Ant, algorithm = unknown!!\n"); + /* halbtc8192e2ant_coex_alloff(btcoexist); */ + break; + } + coex_dm->pre_algorithm = coex_dm->cur_algorithm; + } +} + +void halbtc8192e2ant_init_hwconfig(struct btc_coexist *btcoexist, bool backup) +{ + u16 u16tmp = 0; + u8 u8tmp = 0; + + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], 2Ant Init HW Config!!\n"); + + if (backup) { + /* backup rf 0x1e value */ + coex_dm->bt_rf0x1e_backup = + btcoexist->btc_get_rf_reg(btcoexist, BTC_RF_A, + 0x1e, 0xfffff); + + coex_dm->backup_arfr_cnt1 = btcoexist->btc_read_4byte(btcoexist, + 0x430); + coex_dm->backup_arfr_cnt2 = btcoexist->btc_read_4byte(btcoexist, + 0x434); + coex_dm->backup_retrylimit = btcoexist->btc_read_2byte( + btcoexist, + 0x42a); + coex_dm->backup_ampdu_maxtime = btcoexist->btc_read_1byte( + btcoexist, + 0x456); + } + + /* antenna sw ctrl to bt */ + btcoexist->btc_write_1byte(btcoexist, 0x4f, 0x6); + btcoexist->btc_write_1byte(btcoexist, 0x944, 0x24); + btcoexist->btc_write_4byte(btcoexist, 0x930, 0x700700); + btcoexist->btc_write_1byte(btcoexist, 0x92c, 0x20); + if (btcoexist->chip_interface == BTC_INTF_USB) + btcoexist->btc_write_4byte(btcoexist, 0x64, 0x30430004); + else + btcoexist->btc_write_4byte(btcoexist, 0x64, 0x30030004); + + halbtc8192e2ant_coex_table_with_type(btcoexist, FORCE_EXEC, 0); + + /* antenna switch control parameter */ + btcoexist->btc_write_4byte(btcoexist, 0x858, 0x55555555); + + /* coex parameters */ + btcoexist->btc_write_1byte(btcoexist, 0x778, 0x3); + /* 0x790[5:0]=0x5 */ + u8tmp = btcoexist->btc_read_1byte(btcoexist, 0x790); + u8tmp &= 0xc0; + u8tmp |= 0x5; + btcoexist->btc_write_1byte(btcoexist, 0x790, u8tmp); + + /* enable counter statistics */ + btcoexist->btc_write_1byte(btcoexist, 0x76e, 0x4); + + /* enable PTA */ + btcoexist->btc_write_1byte(btcoexist, 0x40, 0x20); + /* enable mailbox interface */ + u16tmp = btcoexist->btc_read_2byte(btcoexist, 0x40); + u16tmp |= BIT9; + btcoexist->btc_write_2byte(btcoexist, 0x40, u16tmp); + + /* enable PTA I2C mailbox */ + u8tmp = btcoexist->btc_read_1byte(btcoexist, 0x101); + u8tmp |= BIT4; + btcoexist->btc_write_1byte(btcoexist, 0x101, u8tmp); + + /* enable bt clock when wifi is disabled. */ + u8tmp = btcoexist->btc_read_1byte(btcoexist, 0x93); + u8tmp |= BIT0; + btcoexist->btc_write_1byte(btcoexist, 0x93, u8tmp); + /* enable bt clock when suspend. */ + u8tmp = btcoexist->btc_read_1byte(btcoexist, 0x7); + u8tmp |= BIT0; + btcoexist->btc_write_1byte(btcoexist, 0x7, u8tmp); +} + +/************************************************************* + * work around function start with wa_halbtc8192e2ant_ + *************************************************************/ + +/************************************************************ + * extern function start with EXhalbtc8192e2ant_ + ************************************************************/ + +void ex_halbtc8192e2ant_init_hwconfig(struct btc_coexist *btcoexist) +{ + halbtc8192e2ant_init_hwconfig(btcoexist, true); +} + +void ex_halbtc8192e2ant_init_coex_dm(struct btc_coexist *btcoexist) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], Coex Mechanism Init!!\n"); + halbtc8192e2ant_init_coex_dm(btcoexist); +} + +void ex_halbtc8192e2ant_display_coex_info(struct btc_coexist *btcoexist) +{ + struct btc_board_info *board_info = &btcoexist->board_info; + struct btc_stack_info*stack_info = &btcoexist->stack_info; + u8 *cli_buf = btcoexist->cli_buf; + u8 u8tmp[4], i, bt_info_ext, ps_tdma_case = 0; + u16 u16tmp[4]; + u32 u32tmp[4]; + bool roam = false, scan = false, link = false, wifi_under_5g = false; + bool bt_hson = false, wifi_busy = false; + int wifirssi = 0, bt_hs_rssi = 0; + u32 wifi_bw, wifi_traffic_dir; + u8 wifi_dot11_chnl, wifi_hs_chnl; + u32 fw_ver = 0, bt_patch_ver = 0; + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n ============[BT Coexist info]============"); + CL_PRINTF(cli_buf); + + if (btcoexist->manual_control) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n ===========[Under Manual Control]==========="); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n =========================================="); + CL_PRINTF(cli_buf); + } + + if (!board_info->bt_exist) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n BT not exists !!!"); + CL_PRINTF(cli_buf); + return; + } + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %d/ %d ", "Ant PG number/ Ant mechanism:", + board_info->pg_ant_num, board_info->btdm_ant_num); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s / %d", + "BT stack/ hci ext ver", + ((stack_info->profile_notified) ? "Yes" : "No"), + stack_info->hci_version); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_BT_PATCH_VER, &bt_patch_ver); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_FW_VER, &fw_ver); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %d_%d/ 0x%x/ 0x%x(%d)", + "CoexVer/ FwVer/ PatchVer", + glcoex_ver_date_8192e_2ant, glcoex_ver_8192e_2ant, + fw_ver, bt_patch_ver, bt_patch_ver); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hson); + btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_DOT11_CHNL, + &wifi_dot11_chnl); + btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_HS_CHNL, &wifi_hs_chnl); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d(%d)", + "Dot11 channel / HsMode(HsChnl)", + wifi_dot11_chnl, bt_hson, wifi_hs_chnl); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x ", + "H2C Wifi inform bt chnl Info", coex_dm->wifi_chnl_info[0], + coex_dm->wifi_chnl_info[1], coex_dm->wifi_chnl_info[2]); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_S4_WIFI_RSSI, &wifirssi); + btcoexist->btc_get(btcoexist, BTC_GET_S4_HS_RSSI, &bt_hs_rssi); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", + "Wifi rssi/ HS rssi", wifirssi, bt_hs_rssi); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d ", + "Wifi link/ roam/ scan", link, roam, scan); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_TRAFFIC_DIRECTION, + &wifi_traffic_dir); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s / %s/ %s ", + "Wifi status", (wifi_under_5g ? "5G" : "2.4G"), + ((BTC_WIFI_BW_LEGACY == wifi_bw) ? "Legacy" : + (((BTC_WIFI_BW_HT40 == wifi_bw) ? "HT40" : "HT20"))), + ((!wifi_busy) ? "idle" : + ((BTC_WIFI_TRAFFIC_TX == wifi_traffic_dir) ? + "uplink" : "downlink"))); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = [%s/ %d/ %d] ", + "BT [status/ rssi/ retryCnt]", + ((btcoexist->bt_info.bt_disabled) ? ("disabled") : + ((coex_sta->c2h_bt_inquiry_page) ? + ("inquiry/page scan") : + ((BT_8192E_2ANT_BT_STATUS_NON_CONNECTED_IDLE == + coex_dm->bt_status) ? "non-connected idle" : + ((BT_8192E_2ANT_BT_STATUS_CONNECTED_IDLE == + coex_dm->bt_status) ? "connected-idle" : "busy")))), + coex_sta->bt_rssi, coex_sta->bt_retry_cnt); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d / %d / %d", + "SCO/HID/PAN/A2DP", stack_info->sco_exist, + stack_info->hid_exist, stack_info->pan_exist, + stack_info->a2dp_exist); + CL_PRINTF(cli_buf); + btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_BT_LINK_INFO); + + bt_info_ext = coex_sta->bt_info_ext; + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s", + "BT Info A2DP rate", + (bt_info_ext&BIT0) ? "Basic rate" : "EDR rate"); + CL_PRINTF(cli_buf); + + for (i=0; ibt_info_c2h_cnt[i]) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %02x %02x %02x %02x ", + GLBtInfoSrc8192e2Ant[i], + coex_sta->bt_info_c2h[i][0], + coex_sta->bt_info_c2h[i][1], + coex_sta->bt_info_c2h[i][2], + coex_sta->bt_info_c2h[i][3]); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "%02x %02x %02x(%d)", + coex_sta->bt_info_c2h[i][4], + coex_sta->bt_info_c2h[i][5], + coex_sta->bt_info_c2h[i][6], + coex_sta->bt_info_c2h_cnt[i]); + CL_PRINTF(cli_buf); + } + } + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/%s", + "PS state, IPS/LPS", + ((coex_sta->under_ips ? "IPS ON" : "IPS OFF")), + ((coex_sta->under_lps ? "LPS ON" : "LPS OFF"))); + CL_PRINTF(cli_buf); + btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_FW_PWR_MODE_CMD); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x ", "SS Type", + coex_dm->cur_sstype); + CL_PRINTF(cli_buf); + + /* Sw mechanism */ + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", + "============[Sw mechanism]============"); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d ", + "SM1[ShRf/ LpRA/ LimDig]", coex_dm->cur_rf_rx_lpf_shrink, + coex_dm->cur_low_penalty_ra, coex_dm->limited_dig); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d(0x%x) ", + "SM2[AgcT/ AdcB/ SwDacSwing(lvl)]", + coex_dm->cur_agc_table_en, coex_dm->cur_adc_back_off, + coex_dm->cur_dac_swing_on, coex_dm->cur_dac_swing_lvl); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x ", "Rate Mask", + btcoexist->bt_info.ra_mask); + CL_PRINTF(cli_buf); + + /* Fw mechanism */ + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", + "============[Fw mechanism]============"); + CL_PRINTF(cli_buf); + + ps_tdma_case = coex_dm->cur_ps_tdma; + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %02x %02x %02x %02x %02x case-%d (auto:%d)", + "PS TDMA", coex_dm->ps_tdma_para[0], + coex_dm->ps_tdma_para[1], coex_dm->ps_tdma_para[2], + coex_dm->ps_tdma_para[3], coex_dm->ps_tdma_para[4], + ps_tdma_case, coex_dm->auto_tdma_adjust); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d ", + "DecBtPwr/ IgnWlanAct", + coex_dm->cur_dec_bt_pwr, coex_dm->cur_ignore_wlan_act); + CL_PRINTF(cli_buf); + + /* Hw setting */ + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", + "============[Hw setting]============"); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", + "RF-A, 0x1e initVal", coex_dm->bt_rf0x1e_backup); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/0x%x/0x%x/0x%x", + "backup ARFR1/ARFR2/RL/AMaxTime", coex_dm->backup_arfr_cnt1, + coex_dm->backup_arfr_cnt2, coex_dm->backup_retrylimit, + coex_dm->backup_ampdu_maxtime); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x430); + u32tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0x434); + u16tmp[0] = btcoexist->btc_read_2byte(btcoexist, 0x42a); + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x456); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/0x%x/0x%x/0x%x", + "0x430/0x434/0x42a/0x456", + u32tmp[0], u32tmp[1], u16tmp[0], u8tmp[0]); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0xc04); + u32tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0xd04); + u32tmp[2] = btcoexist->btc_read_4byte(btcoexist, 0x90c); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", + "0xc04/ 0xd04/ 0x90c", u32tmp[0], u32tmp[1], u32tmp[2]); + CL_PRINTF(cli_buf); + + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x778); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x778", + u8tmp[0]); + CL_PRINTF(cli_buf); + + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x92c); + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x930); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", + "0x92c/ 0x930", (u8tmp[0]), u32tmp[0]); + CL_PRINTF(cli_buf); + + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x40); + u8tmp[1] = btcoexist->btc_read_1byte(btcoexist, 0x4f); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", + "0x40/ 0x4f", u8tmp[0], u8tmp[1]); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x550); + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x522); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", + "0x550(bcn ctrl)/0x522", u32tmp[0], u8tmp[0]); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0xc50); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0xc50(dig)", + u32tmp[0]); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x6c0); + u32tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0x6c4); + u32tmp[2] = btcoexist->btc_read_4byte(btcoexist, 0x6c8); + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x6cc); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", + "0x6c0/0x6c4/0x6c8/0x6cc(coexTable)", + u32tmp[0], u32tmp[1], u32tmp[2], u8tmp[0]); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", + "0x770(hp rx[31:16]/tx[15:0])", + coex_sta->high_priority_rx, coex_sta->high_priority_tx); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", + "0x774(lp rx[31:16]/tx[15:0])", + coex_sta->low_priority_rx, coex_sta->low_priority_tx); + CL_PRINTF(cli_buf); +#if(BT_AUTO_REPORT_ONLY_8192E_2ANT == 1) + halbtc8192e2ant_monitor_bt_ctr(btcoexist); +#endif + btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_COEX_STATISTICS); +} + + +void ex_halbtc8192e2ant_ips_notify(struct btc_coexist *btcoexist, u8 type) +{ + if (BTC_IPS_ENTER == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], IPS ENTER notify\n"); + coex_sta->under_ips = true; + halbtc8192e2ant_coex_alloff(btcoexist); + } else if (BTC_IPS_LEAVE == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], IPS LEAVE notify\n"); + coex_sta->under_ips = false; + } +} + +void ex_halbtc8192e2ant_lps_notify(struct btc_coexist *btcoexist, u8 type) +{ + if (BTC_LPS_ENABLE == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], LPS ENABLE notify\n"); + coex_sta->under_lps = true; + } else if (BTC_LPS_DISABLE == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], LPS DISABLE notify\n"); + coex_sta->under_lps = false; + } +} + +void ex_halbtc8192e2ant_scan_notify(struct btc_coexist *btcoexist, u8 type) +{ + if (BTC_SCAN_START == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], SCAN START notify\n"); + else if(BTC_SCAN_FINISH == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], SCAN FINISH notify\n"); +} + +void ex_halbtc8192e2ant_connect_notify(struct btc_coexist *btcoexist, u8 type) +{ + if (BTC_ASSOCIATE_START == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], CONNECT START notify\n"); + else if(BTC_ASSOCIATE_FINISH == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], CONNECT FINISH notify\n"); +} + +void ex_halbtc8192e2ant_media_status_notify(struct btc_coexist *btcoexist, + u8 type) +{ + u8 h2c_parameter[3] ={0}; + u32 wifi_bw; + u8 wifi_center_chnl; + + if (btcoexist->manual_control || + btcoexist->stop_coex_dm || + btcoexist->bt_info.bt_disabled) + return; + + if (BTC_MEDIA_CONNECT == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], MEDIA connect notify\n"); + else + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], MEDIA disconnect notify\n"); + + /* only 2.4G we need to inform bt the chnl mask */ + btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_CENTRAL_CHNL, + &wifi_center_chnl); + if ((BTC_MEDIA_CONNECT == type) && + (wifi_center_chnl <= 14)) { + h2c_parameter[0] = 0x1; + h2c_parameter[1] = wifi_center_chnl; + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + if (BTC_WIFI_BW_HT40 == wifi_bw) + h2c_parameter[2] = 0x30; + else + h2c_parameter[2] = 0x20; + } + + coex_dm->wifi_chnl_info[0] = h2c_parameter[0]; + coex_dm->wifi_chnl_info[1] = h2c_parameter[1]; + coex_dm->wifi_chnl_info[2] = h2c_parameter[2]; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], FW write 0x66=0x%x\n", + h2c_parameter[0] << 16 | h2c_parameter[1] << 8 | + h2c_parameter[2]); + + btcoexist->btc_fill_h2c(btcoexist, 0x66, 3, h2c_parameter); +} + +void ex_halbtc8192e2ant_special_packet_notify(struct btc_coexist *btcoexist, + u8 type) +{ + if (type == BTC_PACKET_DHCP) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], DHCP Packet notify\n"); + } + +void ex_halbtc8192e2ant_bt_info_notify(struct btc_coexist *btcoexist, + u8 *tmp_buf, u8 length ) +{ + u8 bt_info = 0; + u8 i, rspSource = 0; + bool bt_busy = false, limited_dig = false; + bool wifi_connected = false; + + coex_sta->c2h_bt_info_req_sent = false; + + rspSource = tmp_buf[0] & 0xf; + if (rspSource >= BT_INFO_SRC_8192E_2ANT_MAX) + rspSource = BT_INFO_SRC_8192E_2ANT_WIFI_FW; + coex_sta->bt_info_c2h_cnt[rspSource]++; + + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], Bt info[%d], length=%d, hex data=[", + rspSource, length); + for (i = 0; i < length; i++) { + coex_sta->bt_info_c2h[rspSource][i] = tmp_buf[i]; + if (i == 1) + bt_info = tmp_buf[i]; + if (i == length-1) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "0x%02x]\n", tmp_buf[i]); + else + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "0x%02x, ", tmp_buf[i]); + } + + if (BT_INFO_SRC_8192E_2ANT_WIFI_FW != rspSource) { + coex_sta->bt_retry_cnt = /* [3:0] */ + coex_sta->bt_info_c2h[rspSource][2] & 0xf; + + coex_sta->bt_rssi = + coex_sta->bt_info_c2h[rspSource][3] * 2 + 10; + + coex_sta->bt_info_ext = + coex_sta->bt_info_c2h[rspSource][4]; + + /* Here we need to resend some wifi info to BT + * because bt is reset and loss of the info. */ + if ((coex_sta->bt_info_ext & BIT1)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "bit1, send wifi BW&Chnl to BT!!\n"); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + if (wifi_connected) + ex_halbtc8192e2ant_media_status_notify( + btcoexist, + BTC_MEDIA_CONNECT); + else + ex_halbtc8192e2ant_media_status_notify( + btcoexist, + BTC_MEDIA_DISCONNECT); + } + + if ((coex_sta->bt_info_ext & BIT3)) { + if (!btcoexist->manual_control && + !btcoexist->stop_coex_dm) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "bit3, BT NOT ignore Wlan active!\n"); + halbtc8192e2ant_IgnoreWlanAct(btcoexist, + FORCE_EXEC, + false); + } + } else { + /* BT already NOT ignore Wlan active, + * do nothing here. */ + } + +#if(BT_AUTO_REPORT_ONLY_8192E_2ANT == 0) + if ((coex_sta->bt_info_ext & BIT4)) { + /* BT auto report already enabled, do nothing */ + } else { + halbtc8192e2ant_bt_autoreport(btcoexist, FORCE_EXEC, + true); + } +#endif + } + + /* check BIT2 first ==> check if bt is under inquiry or page scan */ + if(bt_info & BT_INFO_8192E_2ANT_B_INQ_PAGE) + coex_sta->c2h_bt_inquiry_page = true; + else + coex_sta->c2h_bt_inquiry_page = false; + + /* set link exist status */ + if (!(bt_info&BT_INFO_8192E_2ANT_B_CONNECTION)) { + coex_sta->bt_link_exist = false; + coex_sta->pan_exist = false; + coex_sta->a2dp_exist = false; + coex_sta->hid_exist = false; + coex_sta->sco_exist = false; + } else {/* connection exists */ + coex_sta->bt_link_exist = true; + if (bt_info & BT_INFO_8192E_2ANT_B_FTP) + coex_sta->pan_exist = true; + else + coex_sta->pan_exist = false; + if (bt_info & BT_INFO_8192E_2ANT_B_A2DP) + coex_sta->a2dp_exist = true; + else + coex_sta->a2dp_exist = false; + if (bt_info & BT_INFO_8192E_2ANT_B_HID) + coex_sta->hid_exist = true; + else + coex_sta->hid_exist = false; + if (bt_info & BT_INFO_8192E_2ANT_B_SCO_ESCO) + coex_sta->sco_exist = true; + else + coex_sta->sco_exist = false; + } + + halbtc8192e2ant_update_btlink_info(btcoexist); + + if (!(bt_info&BT_INFO_8192E_2ANT_B_CONNECTION)) { + coex_dm->bt_status = BT_8192E_2ANT_BT_STATUS_NON_CONNECTED_IDLE; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Non-Connected idle!!!\n"); + } else if (bt_info == BT_INFO_8192E_2ANT_B_CONNECTION) { + coex_dm->bt_status = BT_8192E_2ANT_BT_STATUS_CONNECTED_IDLE; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], bt_infoNotify(), BT Connected-idle!!!\n"); + } else if ((bt_info&BT_INFO_8192E_2ANT_B_SCO_ESCO) || + (bt_info&BT_INFO_8192E_2ANT_B_SCO_BUSY)) { + coex_dm->bt_status = BT_8192E_2ANT_BT_STATUS_SCO_BUSY; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], bt_infoNotify(), BT SCO busy!!!\n"); + } else if (bt_info&BT_INFO_8192E_2ANT_B_ACL_BUSY) { + coex_dm->bt_status = BT_8192E_2ANT_BT_STATUS_ACL_BUSY; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], bt_infoNotify(), BT ACL busy!!!\n"); + } else { + coex_dm->bt_status = BT_8192E_2ANT_BT_STATUS_MAX; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex]bt_infoNotify(), BT Non-Defined state!!!\n"); + } + + if ((BT_8192E_2ANT_BT_STATUS_ACL_BUSY == coex_dm->bt_status) || + (BT_8192E_2ANT_BT_STATUS_SCO_BUSY == coex_dm->bt_status) || + (BT_8192E_2ANT_BT_STATUS_ACL_SCO_BUSY == coex_dm->bt_status)) { + bt_busy = true; + limited_dig = true; + } else { + bt_busy = false; + limited_dig = false; + } + + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_TRAFFIC_BUSY, &bt_busy); + + coex_dm->limited_dig = limited_dig; + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_LIMITED_DIG, &limited_dig); + + halbtc8192e2ant_run_coexist_mechanism(btcoexist); +} + +void ex_halbtc8192e2ant_stack_operation_notify(struct btc_coexist *btcoexist, + u8 type) +{ + if (BTC_STACK_OP_INQ_PAGE_PAIR_START == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex] StackOP Inquiry/page/pair start notify\n"); + else if(BTC_STACK_OP_INQ_PAGE_PAIR_FINISH == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex] StackOP Inquiry/page/pair finish notify\n"); +} + +void ex_halbtc8192e2ant_halt_notify(struct btc_coexist *btcoexist) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, "[BTCoex], Halt notify\n"); + + halbtc8192e2ant_IgnoreWlanAct(btcoexist, FORCE_EXEC, true); + ex_halbtc8192e2ant_media_status_notify(btcoexist, BTC_MEDIA_DISCONNECT); +} + +void ex_halbtc8192e2ant_periodical(struct btc_coexist *btcoexist) +{ + static u8 dis_ver_info_cnt = 0; + u32 fw_ver = 0, bt_patch_ver = 0; + struct btc_board_info *board_info=&btcoexist->board_info; + struct btc_stack_info *stack_info=&btcoexist->stack_info; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "=======================Periodical=======================\n"); + if (dis_ver_info_cnt <= 5) { + dis_ver_info_cnt += 1; + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "************************************************\n"); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "Ant PG Num/ Ant Mech/ Ant Pos = %d/ %d/ %d\n", + board_info->pg_ant_num, board_info->btdm_ant_num, + board_info->btdm_ant_pos); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "BT stack/ hci ext ver = %s / %d\n", + ((stack_info->profile_notified) ? "Yes" : "No"), + stack_info->hci_version); + btcoexist->btc_get(btcoexist, BTC_GET_U4_BT_PATCH_VER, + &bt_patch_ver); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_FW_VER, &fw_ver); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "CoexVer/ FwVer/ PatchVer = %d_%x/ 0x%x/ 0x%x(%d)\n", + glcoex_ver_date_8192e_2ant, glcoex_ver_8192e_2ant, + fw_ver, bt_patch_ver, bt_patch_ver); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "************************************************\n"); + } + +#if(BT_AUTO_REPORT_ONLY_8192E_2ANT == 0) + halbtc8192e2ant_querybt_info(btcoexist); + halbtc8192e2ant_monitor_bt_ctr(btcoexist); + halbtc8192e2ant_monitor_bt_enable_disable(btcoexist); +#else + if (halbtc8192e2ant_iswifi_status_changed(btcoexist) || + coex_dm->auto_tdma_adjust) + halbtc8192e2ant_run_coexist_mechanism(btcoexist); +#endif +} + + +#endif + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/halbtc8192e2ant.h +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/halbtc8192e2ant.h @@ -0,0 +1,162 @@ +/***************************************************************** + * The following is for 8192E 2Ant BT Co-exist definition + *****************************************************************/ +#define BT_AUTO_REPORT_ONLY_8192E_2ANT 0 + +#define BT_INFO_8192E_2ANT_B_FTP BIT7 +#define BT_INFO_8192E_2ANT_B_A2DP BIT6 +#define BT_INFO_8192E_2ANT_B_HID BIT5 +#define BT_INFO_8192E_2ANT_B_SCO_BUSY BIT4 +#define BT_INFO_8192E_2ANT_B_ACL_BUSY BIT3 +#define BT_INFO_8192E_2ANT_B_INQ_PAGE BIT2 +#define BT_INFO_8192E_2ANT_B_SCO_ESCO BIT1 +#define BT_INFO_8192E_2ANT_B_CONNECTION BIT0 + +#define BTC_RSSI_COEX_THRESH_TOL_8192E_2ANT 2 + +enum bt_info_src_8192e_2ant{ + BT_INFO_SRC_8192E_2ANT_WIFI_FW = 0x0, + BT_INFO_SRC_8192E_2ANT_BT_RSP = 0x1, + BT_INFO_SRC_8192E_2ANT_BT_ACTIVE_SEND = 0x2, + BT_INFO_SRC_8192E_2ANT_MAX +}; + +enum bt_8192e_2ant_bt_status{ + BT_8192E_2ANT_BT_STATUS_NON_CONNECTED_IDLE = 0x0, + BT_8192E_2ANT_BT_STATUS_CONNECTED_IDLE = 0x1, + BT_8192E_2ANT_BT_STATUS_INQ_PAGE = 0x2, + BT_8192E_2ANT_BT_STATUS_ACL_BUSY = 0x3, + BT_8192E_2ANT_BT_STATUS_SCO_BUSY = 0x4, + BT_8192E_2ANT_BT_STATUS_ACL_SCO_BUSY = 0x5, + BT_8192E_2ANT_BT_STATUS_MAX +}; + +enum bt_8192e_2ant_coex_algo{ + BT_8192E_2ANT_COEX_ALGO_UNDEFINED = 0x0, + BT_8192E_2ANT_COEX_ALGO_SCO = 0x1, + BT_8192E_2ANT_COEX_ALGO_SCO_PAN = 0x2, + BT_8192E_2ANT_COEX_ALGO_HID = 0x3, + BT_8192E_2ANT_COEX_ALGO_A2DP = 0x4, + BT_8192E_2ANT_COEX_ALGO_A2DP_PANHS = 0x5, + BT_8192E_2ANT_COEX_ALGO_PANEDR = 0x6, + BT_8192E_2ANT_COEX_ALGO_PANHS = 0x7, + BT_8192E_2ANT_COEX_ALGO_PANEDR_A2DP = 0x8, + BT_8192E_2ANT_COEX_ALGO_PANEDR_HID = 0x9, + BT_8192E_2ANT_COEX_ALGO_HID_A2DP_PANEDR = 0xa, + BT_8192E_2ANT_COEX_ALGO_HID_A2DP = 0xb, + BT_8192E_2ANT_COEX_ALGO_MAX = 0xc +}; + +struct coex_dm_8192e_2ant{ + /* fw mechanism */ + u8 pre_dec_bt_pwr; + u8 cur_dec_bt_pwr; + u8 pre_fw_dac_swing_lvl; + u8 cur_fw_dac_swing_lvl; + bool cur_ignore_wlan_act; + bool pre_ignore_wlan_act; + u8 pre_ps_tdma; + u8 cur_ps_tdma; + u8 ps_tdma_para[5]; + u8 ps_tdma_du_adj_type; + bool reset_tdma_adjust; + bool auto_tdma_adjust; + bool pre_ps_tdma_on; + bool cur_ps_tdma_on; + bool pre_bt_auto_report; + bool cur_bt_auto_report; + + /* sw mechanism */ + bool pre_rf_rx_lpf_shrink; + bool cur_rf_rx_lpf_shrink; + u32 bt_rf0x1e_backup; + bool pre_low_penalty_ra; + bool cur_low_penalty_ra; + bool pre_dac_swing_on; + u32 pre_dac_swing_lvl; + bool cur_dac_swing_on; + u32 cur_dac_swing_lvl; + bool pre_adc_back_off; + bool cur_adc_back_off; + bool pre_agc_table_en; + bool cur_agc_table_en; + u32 pre_val0x6c0; + u32 cur_val0x6c0; + u32 pre_val0x6c4; + u32 cur_val0x6c4; + u32 pre_val0x6c8; + u32 cur_val0x6c8; + u8 pre_val0x6cc; + u8 cur_val0x6cc; + bool limited_dig; + + u32 backup_arfr_cnt1; /* Auto Rate Fallback Retry cnt */ + u32 backup_arfr_cnt2; /* Auto Rate Fallback Retry cnt */ + u16 backup_retrylimit; + u8 backup_ampdu_maxtime; + + /* algorithm related */ + u8 pre_algorithm; + u8 cur_algorithm; + u8 bt_status; + u8 wifi_chnl_info[3]; + + u8 pre_sstype; + u8 cur_sstype; + + u32 prera_mask; + u32 curra_mask; + u8 curra_masktype; + u8 pre_arfrtype; + u8 cur_arfrtype; + u8 pre_retrylimit_type; + u8 cur_retrylimit_type; + u8 pre_ampdutime_type; + u8 cur_ampdutime_type; +}; + +struct coex_sta_8192e_2ant{ + bool bt_link_exist; + bool sco_exist; + bool a2dp_exist; + bool hid_exist; + bool pan_exist; + + bool under_lps; + bool under_ips; + u32 high_priority_tx; + u32 high_priority_rx; + u32 low_priority_tx; + u32 low_priority_rx; + u8 bt_rssi; + u8 pre_bt_rssi_state; + u8 pre_wifi_rssi_state[4]; + bool c2h_bt_info_req_sent; + u8 bt_info_c2h[BT_INFO_SRC_8192E_2ANT_MAX][10]; + u32 bt_info_c2h_cnt[BT_INFO_SRC_8192E_2ANT_MAX]; + bool c2h_bt_inquiry_page; + u8 bt_retry_cnt; + u8 bt_info_ext; +}; + +/**************************************************************** + * The following is interface which will notify coex module. + ****************************************************************/ +void ex_halbtc8192e2ant_init_hwconfig(struct btc_coexist *btcoexist); +void ex_halbtc8192e2ant_init_coex_dm(struct btc_coexist *btcoexist); +void ex_halbtc8192e2ant_ips_notify(struct btc_coexist *btcoexist, u8 type); +void ex_halbtc8192e2ant_lps_notify(struct btc_coexist *btcoexist, u8 type); +void ex_halbtc8192e2ant_scan_notify(struct btc_coexist *btcoexist, u8 type); +void ex_halbtc8192e2ant_connect_notify(struct btc_coexist *btcoexist, u8 type); +void ex_halbtc8192e2ant_media_status_notify(struct btc_coexist *btcoexist, + u8 type); +void ex_halbtc8192e2ant_special_packet_notify(struct btc_coexist *btcoexist, + u8 type); +void ex_halbtc8192e2ant_bt_info_notify(struct btc_coexist *btcoexist, + u8 *tmpBuf,u8 length); +void ex_halbtc8192e2ant_stack_operation_notify(struct btc_coexist *btcoexist, + u8 type); +void ex_halbtc8192e2ant_halt_notify(struct btc_coexist *btcoexist); +void ex_halbtc8192e2ant_periodical(struct btc_coexist *btcoexist); +void ex_halbtc8192e2ant_display_coex_info(struct btc_coexist *btcoexist); + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/halbtc8723a2ant.c +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/halbtc8723a2ant.c @@ -0,0 +1,3780 @@ +//============================================================ +// Description: +// +// This file is for RTL8723A Co-exist mechanism +// +// History +// 2012/08/22 Cosa first check in. +// 2012/11/14 Cosa Revise for 8723A 2Ant out sourcing. +// +//============================================================ + +//============================================================ +// include files +//============================================================ +#include "Mp_Precomp.h" +#if(BT_30_SUPPORT == 1) +//============================================================ +// Global variables, these are static variables +//============================================================ +static COEX_DM_8723A_2ANT GLCoexDm8723a2Ant; +static PCOEX_DM_8723A_2ANT pCoexDm=&GLCoexDm8723a2Ant; +static COEX_STA_8723A_2ANT GLCoexSta8723a2Ant; +static PCOEX_STA_8723A_2ANT pCoexSta=&GLCoexSta8723a2Ant; + +const char *const GLBtInfoSrc8723a2Ant[]={ + "BT Info[wifi fw]", + "BT Info[bt rsp]", + "BT Info[bt auto report]", +}; + +//============================================================ +// local function proto type if needed +//============================================================ +//============================================================ +// local function start with halbtc8723a2ant_ +//============================================================ +BOOLEAN +halbtc8723a2ant_IsWifiIdle( + IN PBTC_COEXIST pBtCoexist + ) +{ + BOOLEAN bWifiConnected=FALSE, bScan=FALSE, bLink=FALSE, bRoam=FALSE; + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_CONNECTED, &bWifiConnected); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_SCAN, &bScan); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_LINK, &bLink); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_ROAM, &bRoam); + + if(bWifiConnected) + return FALSE; + if(bScan) + return FALSE; + if(bLink) + return FALSE; + if(bRoam) + return FALSE; + + return true; +} + +u1Byte +halbtc8723a2ant_BtRssiState( + u1Byte levelNum, + u1Byte rssiThresh, + u1Byte rssiThresh1 + ) +{ + s4Byte btRssi=0; + u1Byte btRssiState=pCoexSta->preBtRssiState; + + btRssi = pCoexSta->btRssi; + + if(levelNum == 2) + { + if( (pCoexSta->preBtRssiState == BTC_RSSI_STATE_LOW) || + (pCoexSta->preBtRssiState == BTC_RSSI_STATE_STAY_LOW)) + { + if(btRssi >= (rssiThresh+BTC_RSSI_COEX_THRESH_TOL_8723A_2ANT)) + { + btRssiState = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state switch to High\n")); + } + else + { + btRssiState = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state stay at Low\n")); + } + } + else + { + if(btRssi < rssiThresh) + { + btRssiState = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state switch to Low\n")); + } + else + { + btRssiState = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state stay at High\n")); + } + } + } + else if(levelNum == 3) + { + if(rssiThresh > rssiThresh1) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi thresh error!!\n")); + return pCoexSta->preBtRssiState; + } + + if( (pCoexSta->preBtRssiState == BTC_RSSI_STATE_LOW) || + (pCoexSta->preBtRssiState == BTC_RSSI_STATE_STAY_LOW)) + { + if(btRssi >= (rssiThresh+BTC_RSSI_COEX_THRESH_TOL_8723A_2ANT)) + { + btRssiState = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state switch to Medium\n")); + } + else + { + btRssiState = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state stay at Low\n")); + } + } + else if( (pCoexSta->preBtRssiState == BTC_RSSI_STATE_MEDIUM) || + (pCoexSta->preBtRssiState == BTC_RSSI_STATE_STAY_MEDIUM)) + { + if(btRssi >= (rssiThresh1+BTC_RSSI_COEX_THRESH_TOL_8723A_2ANT)) + { + btRssiState = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state switch to High\n")); + } + else if(btRssi < rssiThresh) + { + btRssiState = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state switch to Low\n")); + } + else + { + btRssiState = BTC_RSSI_STATE_STAY_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state stay at Medium\n")); + } + } + else + { + if(btRssi < rssiThresh1) + { + btRssiState = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state switch to Medium\n")); + } + else + { + btRssiState = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, ("[BTCoex], BT Rssi state stay at High\n")); + } + } + } + + pCoexSta->preBtRssiState = btRssiState; + + return btRssiState; +} + +u1Byte +halbtc8723a2ant_WifiRssiState( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte index, + IN u1Byte levelNum, + IN u1Byte rssiThresh, + IN u1Byte rssiThresh1 + ) +{ + s4Byte wifiRssi=0; + u1Byte wifiRssiState=pCoexSta->preWifiRssiState[index]; + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_S4_WIFI_RSSI, &wifiRssi); + + if(levelNum == 2) + { + if( (pCoexSta->preWifiRssiState[index] == BTC_RSSI_STATE_LOW) || + (pCoexSta->preWifiRssiState[index] == BTC_RSSI_STATE_STAY_LOW)) + { + if(wifiRssi >= (rssiThresh+BTC_RSSI_COEX_THRESH_TOL_8723A_2ANT)) + { + wifiRssiState = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state switch to High\n")); + } + else + { + wifiRssiState = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state stay at Low\n")); + } + } + else + { + if(wifiRssi < rssiThresh) + { + wifiRssiState = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state switch to Low\n")); + } + else + { + wifiRssiState = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state stay at High\n")); + } + } + } + else if(levelNum == 3) + { + if(rssiThresh > rssiThresh1) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI thresh error!!\n")); + return pCoexSta->preWifiRssiState[index]; + } + + if( (pCoexSta->preWifiRssiState[index] == BTC_RSSI_STATE_LOW) || + (pCoexSta->preWifiRssiState[index] == BTC_RSSI_STATE_STAY_LOW)) + { + if(wifiRssi >= (rssiThresh+BTC_RSSI_COEX_THRESH_TOL_8723A_2ANT)) + { + wifiRssiState = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state switch to Medium\n")); + } + else + { + wifiRssiState = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state stay at Low\n")); + } + } + else if( (pCoexSta->preWifiRssiState[index] == BTC_RSSI_STATE_MEDIUM) || + (pCoexSta->preWifiRssiState[index] == BTC_RSSI_STATE_STAY_MEDIUM)) + { + if(wifiRssi >= (rssiThresh1+BTC_RSSI_COEX_THRESH_TOL_8723A_2ANT)) + { + wifiRssiState = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state switch to High\n")); + } + else if(wifiRssi < rssiThresh) + { + wifiRssiState = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state switch to Low\n")); + } + else + { + wifiRssiState = BTC_RSSI_STATE_STAY_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state stay at Medium\n")); + } + } + else + { + if(wifiRssi < rssiThresh1) + { + wifiRssiState = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state switch to Medium\n")); + } + else + { + wifiRssiState = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, ("[BTCoex], wifi RSSI state stay at High\n")); + } + } + } + + pCoexSta->preWifiRssiState[index] = wifiRssiState; + + return wifiRssiState; +} + +VOID +halbtc8723a2ant_IndicateWifiChnlBwInfo( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + u1Byte H2C_Parameter[3] ={0}; + u4Byte wifiBw; + u1Byte wifiCentralChnl; + + // only 2.4G we need to inform bt the chnl mask + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U1_WIFI_CENTRAL_CHNL, &wifiCentralChnl); + if( (BTC_MEDIA_CONNECT == type) && + (wifiCentralChnl <= 14) ) + { + H2C_Parameter[0] = 0x1; + H2C_Parameter[1] = wifiCentralChnl; + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + if(BTC_WIFI_BW_HT40 == wifiBw) + H2C_Parameter[2] = 0x30; + else + H2C_Parameter[2] = 0x20; + } + + pCoexDm->wifiChnlInfo[0] = H2C_Parameter[0]; + pCoexDm->wifiChnlInfo[1] = H2C_Parameter[1]; + pCoexDm->wifiChnlInfo[2] = H2C_Parameter[2]; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], FW write 0x19=0x%x\n", + H2C_Parameter[0]<<16|H2C_Parameter[1]<<8|H2C_Parameter[2])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x19, 3, H2C_Parameter); +} + +VOID +halbtc8723a2ant_QueryBtInfo( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte H2C_Parameter[1] ={0}; + + pCoexSta->bC2hBtInfoReqSent = true; + + H2C_Parameter[0] |= BIT0; // trigger + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], Query Bt Info, FW write 0x38=0x%x\n", + H2C_Parameter[0])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x38, 1, H2C_Parameter); +} +u1Byte +halbtc8723a2ant_ActionAlgorithm( + IN PBTC_COEXIST pBtCoexist + ) +{ + PBTC_STACK_INFO pStackInfo=&pBtCoexist->stack_info; + BOOLEAN bBtHsOn=FALSE, bBtBusy=FALSE, limited_dig=FALSE; + u1Byte algorithm=BT_8723A_2ANT_COEX_ALGO_UNDEFINED; + u1Byte numOfDiffProfile=0; + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_HS_OPERATION, &bBtHsOn); + + //====================== + // here we get BT status first + //====================== + pCoexDm->btStatus = BT_8723A_2ANT_BT_STATUS_IDLE; + + if((pStackInfo->bScoExist) ||(bBtHsOn) ||(pStackInfo->bHidExist)) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO or HID or HS exists, set BT non-idle !!!\n")); + pCoexDm->btStatus = BT_8723A_2ANT_BT_STATUS_NON_IDLE; + } + else + { + // A2dp profile + if( (pBtCoexist->stack_info.numOfLink == 1) && + (pStackInfo->bA2dpExist) ) + { + if( (pCoexSta->lowPriorityTx+ pCoexSta->lowPriorityRx) < 100) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], A2DP, low priority tx+rx < 100, set BT connected-idle!!!\n")); + pCoexDm->btStatus = BT_8723A_2ANT_BT_STATUS_CONNECTED_IDLE; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], A2DP, low priority tx+rx >= 100, set BT non-idle!!!\n")); + pCoexDm->btStatus = BT_8723A_2ANT_BT_STATUS_NON_IDLE; + } + } + // Pan profile + if( (pBtCoexist->stack_info.numOfLink == 1) && + (pStackInfo->bPanExist) ) + { + if((pCoexSta->lowPriorityTx+ pCoexSta->lowPriorityRx) < 600) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], PAN, low priority tx+rx < 600, set BT connected-idle!!!\n")); + pCoexDm->btStatus = BT_8723A_2ANT_BT_STATUS_CONNECTED_IDLE; + } + else + { + if(pCoexSta->lowPriorityTx) + { + if((pCoexSta->lowPriorityRx /pCoexSta->lowPriorityTx)>9 ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], PAN, low priority rx/tx > 9, set BT connected-idle!!!\n")); + pCoexDm->btStatus = BT_8723A_2ANT_BT_STATUS_CONNECTED_IDLE; + } + } + } + if(BT_8723A_2ANT_BT_STATUS_CONNECTED_IDLE != pCoexDm->btStatus) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], PAN, set BT non-idle!!!\n")); + pCoexDm->btStatus = BT_8723A_2ANT_BT_STATUS_NON_IDLE; + } + } + // Pan+A2dp profile + if( (pBtCoexist->stack_info.numOfLink == 2) && + (pStackInfo->bA2dpExist) && + (pStackInfo->bPanExist) ) + { + if((pCoexSta->lowPriorityTx+ pCoexSta->lowPriorityRx) < 600) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], PAN+A2DP, low priority tx+rx < 600, set BT connected-idle!!!\n")); + pCoexDm->btStatus = BT_8723A_2ANT_BT_STATUS_CONNECTED_IDLE; + } + else + { + if(pCoexSta->lowPriorityTx) + { + if((pCoexSta->lowPriorityRx /pCoexSta->lowPriorityTx)>9 ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], PAN+A2DP, low priority rx/tx > 9, set BT connected-idle!!!\n")); + pCoexDm->btStatus = BT_8723A_2ANT_BT_STATUS_CONNECTED_IDLE; + } + } + } + if(BT_8723A_2ANT_BT_STATUS_CONNECTED_IDLE != pCoexDm->btStatus) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], PAN+A2DP, set BT non-idle!!!\n")); + pCoexDm->btStatus = BT_8723A_2ANT_BT_STATUS_NON_IDLE; + } + } + } + if(BT_8723A_2ANT_BT_STATUS_IDLE != pCoexDm->btStatus) + { + bBtBusy = true; + limited_dig = true; + } + else + { + bBtBusy = FALSE; + limited_dig = FALSE; + } + pBtCoexist->btc_set(pBtCoexist, BTC_SET_BL_BT_TRAFFIC_BUSY, &bBtBusy); + pBtCoexist->btc_set(pBtCoexist, BTC_SET_BL_BT_LIMITED_DIG, &limited_dig); + //====================== + + if(!pStackInfo->bBtLinkExist) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], No profile exists!!!\n")); + return algorithm; + } + + if(pStackInfo->bScoExist) + numOfDiffProfile++; + if(pStackInfo->bHidExist) + numOfDiffProfile++; + if(pStackInfo->bPanExist) + numOfDiffProfile++; + if(pStackInfo->bA2dpExist) + numOfDiffProfile++; + + if(numOfDiffProfile == 1) + { + if(pStackInfo->bScoExist) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO only\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_SCO; + } + else + { + if(pStackInfo->bHidExist) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HID only\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_HID; + } + else if(pStackInfo->bA2dpExist) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], A2DP only\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_A2DP; + } + else if(pStackInfo->bPanExist) + { + if(bBtHsOn) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], PAN(HS) only\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_PANHS; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], PAN(EDR) only\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_PANEDR; + } + } + } + } + else if(numOfDiffProfile == 2) + { + if(pStackInfo->bScoExist) + { + if(pStackInfo->bHidExist) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + HID\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_HID; + } + else if(pStackInfo->bA2dpExist) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + A2DP ==> SCO\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_SCO; + } + else if(pStackInfo->bPanExist) + { + if(bBtHsOn) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + PAN(HS)\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_SCO; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + PAN(EDR)\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_PANEDR_HID; + } + } + } + else + { + if( pStackInfo->bHidExist && + pStackInfo->bA2dpExist ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HID + A2DP\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_HID_A2DP; + } + else if( pStackInfo->bHidExist && + pStackInfo->bPanExist ) + { + if(bBtHsOn) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HID + PAN(HS)\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_HID_A2DP; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HID + PAN(EDR)\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_PANEDR_HID; + } + } + else if( pStackInfo->bPanExist && + pStackInfo->bA2dpExist ) + { + if(bBtHsOn) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], A2DP + PAN(HS)\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_A2DP; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], A2DP + PAN(EDR)\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_PANEDR_A2DP; + } + } + } + } + else if(numOfDiffProfile == 3) + { + if(pStackInfo->bScoExist) + { + if( pStackInfo->bHidExist && + pStackInfo->bA2dpExist ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + HID + A2DP ==> HID\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_HID; + } + else if( pStackInfo->bHidExist && + pStackInfo->bPanExist ) + { + if(bBtHsOn) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + HID + PAN(HS)\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_HID_A2DP; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + HID + PAN(EDR)\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_PANEDR_HID; + } + } + else if( pStackInfo->bPanExist && + pStackInfo->bA2dpExist ) + { + if(bBtHsOn) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + A2DP + PAN(HS)\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_SCO; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + A2DP + PAN(EDR) ==> HID\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_PANEDR_HID; + } + } + } + else + { + if( pStackInfo->bHidExist && + pStackInfo->bPanExist && + pStackInfo->bA2dpExist ) + { + if(bBtHsOn) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HID + A2DP + PAN(HS)\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_HID_A2DP; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], HID + A2DP + PAN(EDR)\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_HID_A2DP_PANEDR; + } + } + } + } + else if(numOfDiffProfile >= 3) + { + if(pStackInfo->bScoExist) + { + if( pStackInfo->bHidExist && + pStackInfo->bPanExist && + pStackInfo->bA2dpExist ) + { + if(bBtHsOn) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Error!!! SCO + HID + A2DP + PAN(HS)\n")); + + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], SCO + HID + A2DP + PAN(EDR)==>PAN(EDR)+HID\n")); + algorithm = BT_8723A_2ANT_COEX_ALGO_PANEDR_HID; + } + } + } + } + + return algorithm; +} + +BOOLEAN +halbtc8723a2ant_NeedToDecBtPwr( + IN PBTC_COEXIST pBtCoexist + ) +{ + BOOLEAN bRet=FALSE; + BOOLEAN bBtHsOn=FALSE, bWifiConnected=FALSE; + s4Byte btHsRssi=0; + + if(!pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_HS_OPERATION, &bBtHsOn)) + return FALSE; + if(!pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_CONNECTED, &bWifiConnected)) + return FALSE; + if(!pBtCoexist->btc_get(pBtCoexist, BTC_GET_S4_HS_RSSI, &btHsRssi)) + return FALSE; + + if(bWifiConnected) + { + if(bBtHsOn) + { + if(btHsRssi > 37) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], Need to decrease bt power for HS mode!!\n")); + bRet = true; + } + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], Need to decrease bt power for Wifi is connected!!\n")); + bRet = true; + } + } + + return bRet; +} + +VOID +halbtc8723a2ant_SetFwDacSwingLevel( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte dacSwingLvl + ) +{ + u1Byte H2C_Parameter[1] ={0}; + + // There are several type of dacswing + // 0x18/ 0x10/ 0xc/ 0x8/ 0x4/ 0x6 + H2C_Parameter[0] = dacSwingLvl; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], Set Dac Swing Level=0x%x\n", dacSwingLvl)); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], FW write 0x29=0x%x\n", H2C_Parameter[0])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x29, 1, H2C_Parameter); +} + +VOID +halbtc8723a2ant_SetFwDecBtPwr( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bDecBtPwr + ) +{ + u1Byte H2C_Parameter[1] ={0}; + + H2C_Parameter[0] = 0; + + if(bDecBtPwr) + { + H2C_Parameter[0] |= BIT1; + } + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], decrease Bt Power : %s, FW write 0x21=0x%x\n", + (bDecBtPwr? "Yes!!":"No!!"), H2C_Parameter[0])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x21, 1, H2C_Parameter); +} + +VOID +halbtc8723a2ant_DecBtPwr( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bDecBtPwr + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s Dec BT power = %s\n", + (bForceExec? "force to":""), ((bDecBtPwr)? "ON":"OFF"))); + pCoexDm->bCurDecBtPwr = bDecBtPwr; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], bPreDecBtPwr=%d, bCurDecBtPwr=%d\n", + pCoexDm->bPreDecBtPwr, pCoexDm->bCurDecBtPwr)); + + if(pCoexDm->bPreDecBtPwr == pCoexDm->bCurDecBtPwr) + return; + } + halbtc8723a2ant_SetFwDecBtPwr(pBtCoexist, pCoexDm->bCurDecBtPwr); + + pCoexDm->bPreDecBtPwr = pCoexDm->bCurDecBtPwr; +} + +VOID +halbtc8723a2ant_FwDacSwingLvl( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN u1Byte fwDacSwingLvl + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s set FW Dac Swing level = %d\n", + (bForceExec? "force to":""), fwDacSwingLvl)); + pCoexDm->curFwDacSwingLvl = fwDacSwingLvl; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], preFwDacSwingLvl=%d, curFwDacSwingLvl=%d\n", + pCoexDm->preFwDacSwingLvl, pCoexDm->curFwDacSwingLvl)); + + if(pCoexDm->preFwDacSwingLvl == pCoexDm->curFwDacSwingLvl) + return; + } + + halbtc8723a2ant_SetFwDacSwingLevel(pBtCoexist, pCoexDm->curFwDacSwingLvl); + + pCoexDm->preFwDacSwingLvl = pCoexDm->curFwDacSwingLvl; +} + +VOID +halbtc8723a2ant_SetSwRfRxLpfCorner( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bRxRfShrinkOn + ) +{ + if(bRxRfShrinkOn) + { + //Shrink RF Rx LPF corner + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Shrink RF Rx LPF corner!!\n")); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x1e, 0xfffff, 0xf0ff7); + } + else + { + //Resume RF Rx LPF corner + // After initialized, we can use pCoexDm->btRf0x1eBackup + if(pBtCoexist->initilized) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Resume RF Rx LPF corner!!\n")); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x1e, 0xfffff, pCoexDm->btRf0x1eBackup); + } + } +} + +VOID +halbtc8723a2ant_RfShrink( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bRxRfShrinkOn + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s turn Rx RF Shrink = %s\n", + (bForceExec? "force to":""), ((bRxRfShrinkOn)? "ON":"OFF"))); + pCoexDm->bCurRfRxLpfShrink = bRxRfShrinkOn; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], bPreRfRxLpfShrink=%d, bCurRfRxLpfShrink=%d\n", + pCoexDm->bPreRfRxLpfShrink, pCoexDm->bCurRfRxLpfShrink)); + + if(pCoexDm->bPreRfRxLpfShrink == pCoexDm->bCurRfRxLpfShrink) + return; + } + halbtc8723a2ant_SetSwRfRxLpfCorner(pBtCoexist, pCoexDm->bCurRfRxLpfShrink); + + pCoexDm->bPreRfRxLpfShrink = pCoexDm->bCurRfRxLpfShrink; +} + +VOID +halbtc8723a2ant_SetSwPenaltyTxRateAdaptive( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bLowPenaltyRa + ) +{ + u1Byte tmpU1; + + tmpU1 = pBtCoexist->btc_read_1byte(pBtCoexist, 0x4fd); + tmpU1 |= BIT0; + if(bLowPenaltyRa) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Tx rate adaptive, set low penalty!!\n")); + tmpU1 &= ~BIT2; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Tx rate adaptive, set normal!!\n")); + tmpU1 |= BIT2; + } + + pBtCoexist->btc_write_1byte(pBtCoexist, 0x4fd, tmpU1); +} + +VOID +halbtc8723a2ant_LowPenaltyRa( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bLowPenaltyRa + ) +{ + return; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s turn LowPenaltyRA = %s\n", + (bForceExec? "force to":""), ((bLowPenaltyRa)? "ON":"OFF"))); + pCoexDm->bCurLowPenaltyRa = bLowPenaltyRa; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], bPreLowPenaltyRa=%d, bCurLowPenaltyRa=%d\n", + pCoexDm->bPreLowPenaltyRa, pCoexDm->bCurLowPenaltyRa)); + + if(pCoexDm->bPreLowPenaltyRa == pCoexDm->bCurLowPenaltyRa) + return; + } + halbtc8723a2ant_SetSwPenaltyTxRateAdaptive(pBtCoexist, pCoexDm->bCurLowPenaltyRa); + + pCoexDm->bPreLowPenaltyRa = pCoexDm->bCurLowPenaltyRa; +} + +VOID +halbtc8723a2ant_SetSwFullTimeDacSwing( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bSwDacSwingOn, + IN u4Byte swDacSwingLvl + ) +{ + if(bSwDacSwingOn) + { + pBtCoexist->btc_setBbReg(pBtCoexist, 0x880, 0xff000000, swDacSwingLvl); + } + else + { + pBtCoexist->btc_setBbReg(pBtCoexist, 0x880, 0xff000000, 0xc0); + } +} + + +VOID +halbtc8723a2ant_DacSwing( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bDacSwingOn, + IN u4Byte dacSwingLvl + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s turn DacSwing=%s, dacSwingLvl=0x%x\n", + (bForceExec? "force to":""), ((bDacSwingOn)? "ON":"OFF"), dacSwingLvl)); + pCoexDm->bCurDacSwingOn = bDacSwingOn; + pCoexDm->curDacSwingLvl = dacSwingLvl; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], bPreDacSwingOn=%d, preDacSwingLvl=0x%x, bCurDacSwingOn=%d, curDacSwingLvl=0x%x\n", + pCoexDm->bPreDacSwingOn, pCoexDm->preDacSwingLvl, + pCoexDm->bCurDacSwingOn, pCoexDm->curDacSwingLvl)); + + if( (pCoexDm->bPreDacSwingOn == pCoexDm->bCurDacSwingOn) && + (pCoexDm->preDacSwingLvl == pCoexDm->curDacSwingLvl) ) + return; + } + mdelay(30); + halbtc8723a2ant_SetSwFullTimeDacSwing(pBtCoexist, bDacSwingOn, dacSwingLvl); + + pCoexDm->bPreDacSwingOn = pCoexDm->bCurDacSwingOn; + pCoexDm->preDacSwingLvl = pCoexDm->curDacSwingLvl; +} + +VOID +halbtc8723a2ant_SetAdcBackOff( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bAdcBackOff + ) +{ + if(bAdcBackOff) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], BB BackOff Level On!\n")); + pBtCoexist->btc_write_4byte(pBtCoexist, 0xc04,0x3a07611); + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], BB BackOff Level Off!\n")); + pBtCoexist->btc_write_4byte(pBtCoexist, 0xc04,0x3a05611); + } +} + +VOID +halbtc8723a2ant_AdcBackOff( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bAdcBackOff + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s turn AdcBackOff = %s\n", + (bForceExec? "force to":""), ((bAdcBackOff)? "ON":"OFF"))); + pCoexDm->bCurAdcBackOff = bAdcBackOff; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], bPreAdcBackOff=%d, bCurAdcBackOff=%d\n", + pCoexDm->bPreAdcBackOff, pCoexDm->bCurAdcBackOff)); + + if(pCoexDm->bPreAdcBackOff == pCoexDm->bCurAdcBackOff) + return; + } + halbtc8723a2ant_SetAdcBackOff(pBtCoexist, pCoexDm->bCurAdcBackOff); + + pCoexDm->bPreAdcBackOff = pCoexDm->bCurAdcBackOff; +} + +VOID +halbtc8723a2ant_SetAgcTable( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bAgcTableEn + ) +{ + u1Byte rssiAdjustVal=0; + + if(bAgcTableEn) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Agc Table On!\n")); + pBtCoexist->btc_write_4byte(pBtCoexist, 0xc78,0x4e1c0001); + pBtCoexist->btc_write_4byte(pBtCoexist, 0xc78,0x4d1d0001); + pBtCoexist->btc_write_4byte(pBtCoexist, 0xc78,0x4c1e0001); + pBtCoexist->btc_write_4byte(pBtCoexist, 0xc78,0x4b1f0001); + pBtCoexist->btc_write_4byte(pBtCoexist, 0xc78,0x4a200001); + + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x12, 0xfffff, 0xdc000); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x12, 0xfffff, 0x90000); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x12, 0xfffff, 0x51000); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x12, 0xfffff, 0x12000); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x1a, 0xfffff, 0x00355); + + rssiAdjustVal = 6; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], Agc Table Off!\n")); + pBtCoexist->btc_write_4byte(pBtCoexist, 0xc78,0x641c0001); + pBtCoexist->btc_write_4byte(pBtCoexist, 0xc78,0x631d0001); + pBtCoexist->btc_write_4byte(pBtCoexist, 0xc78,0x621e0001); + pBtCoexist->btc_write_4byte(pBtCoexist, 0xc78,0x611f0001); + pBtCoexist->btc_write_4byte(pBtCoexist, 0xc78,0x60200001); + + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x12, 0xfffff, 0x32000); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x12, 0xfffff, 0x71000); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x12, 0xfffff, 0xb0000); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x12, 0xfffff, 0xfc000); + pBtCoexist->btc_set_rf_reg(pBtCoexist, BTC_RF_A, 0x1a, 0xfffff, 0x30355); + } + + // set rssiAdjustVal for wifi module. + pBtCoexist->btc_set(pBtCoexist, BTC_SET_U1_RSSI_ADJ_VAL_FOR_AGC_TABLE_ON, &rssiAdjustVal); +} + + +VOID +halbtc8723a2ant_AgcTable( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bAgcTableEn + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s %s Agc Table\n", + (bForceExec? "force to":""), ((bAgcTableEn)? "Enable":"Disable"))); + pCoexDm->bCurAgcTableEn = bAgcTableEn; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], bPreAgcTableEn=%d, bCurAgcTableEn=%d\n", + pCoexDm->bPreAgcTableEn, pCoexDm->bCurAgcTableEn)); + + if(pCoexDm->bPreAgcTableEn == pCoexDm->bCurAgcTableEn) + return; + } + halbtc8723a2ant_SetAgcTable(pBtCoexist, bAgcTableEn); + + pCoexDm->bPreAgcTableEn = pCoexDm->bCurAgcTableEn; +} + +VOID +halbtc8723a2ant_SetCoexTable( + IN PBTC_COEXIST pBtCoexist, + IN u4Byte val0x6c0, + IN u4Byte val0x6c8, + IN u1Byte val0x6cc + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], set coex table, set 0x6c0=0x%x\n", val0x6c0)); + pBtCoexist->btc_write_4byte(pBtCoexist, 0x6c0, val0x6c0); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], set coex table, set 0x6c8=0x%x\n", val0x6c8)); + pBtCoexist->btc_write_4byte(pBtCoexist, 0x6c8, val0x6c8); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, ("[BTCoex], set coex table, set 0x6cc=0x%x\n", val0x6cc)); + pBtCoexist->btc_write_1byte(pBtCoexist, 0x6cc, val0x6cc); +} + +VOID +halbtc8723a2ant_CoexTable( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN u4Byte val0x6c0, + IN u4Byte val0x6c8, + IN u1Byte val0x6cc + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, ("[BTCoex], %s write Coex Table 0x6c0=0x%x, 0x6c8=0x%x, 0x6cc=0x%x\n", + (bForceExec? "force to":""), val0x6c0, val0x6c8, val0x6cc)); + pCoexDm->curVal0x6c0 = val0x6c0; + pCoexDm->curVal0x6c8 = val0x6c8; + pCoexDm->curVal0x6cc = val0x6cc; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], preVal0x6c0=0x%x, preVal0x6c8=0x%x, preVal0x6cc=0x%x !!\n", + pCoexDm->preVal0x6c0, pCoexDm->preVal0x6c8, pCoexDm->preVal0x6cc)); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, ("[BTCoex], curVal0x6c0=0x%x, curVal0x6c8=0x%x, curVal0x6cc=0x%x !!\n", + pCoexDm->curVal0x6c0, pCoexDm->curVal0x6c8, pCoexDm->curVal0x6cc)); + + if( (pCoexDm->preVal0x6c0 == pCoexDm->curVal0x6c0) && + (pCoexDm->preVal0x6c8 == pCoexDm->curVal0x6c8) && + (pCoexDm->preVal0x6cc == pCoexDm->curVal0x6cc) ) + return; + } + halbtc8723a2ant_SetCoexTable(pBtCoexist, val0x6c0, val0x6c8, val0x6cc); + + pCoexDm->preVal0x6c0 = pCoexDm->curVal0x6c0; + pCoexDm->preVal0x6c8 = pCoexDm->curVal0x6c8; + pCoexDm->preVal0x6cc = pCoexDm->curVal0x6cc; +} + +VOID +halbtc8723a2ant_SetFwIgnoreWlanAct( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bEnable + ) +{ + u1Byte H2C_Parameter[1] ={0}; + + if(bEnable) + { + H2C_Parameter[0] |= BIT0; // function enable + } + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], set FW for BT Ignore Wlan_Act, FW write 0x25=0x%x\n", + H2C_Parameter[0])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x25, 1, H2C_Parameter); +} + +VOID +halbtc8723a2ant_IgnoreWlanAct( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bEnable + ) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s turn Ignore WlanAct %s\n", + (bForceExec? "force to":""), (bEnable? "ON":"OFF"))); + pCoexDm->bCurIgnoreWlanAct = bEnable; + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], bPreIgnoreWlanAct = %d, bCurIgnoreWlanAct = %d!!\n", + pCoexDm->bPreIgnoreWlanAct, pCoexDm->bCurIgnoreWlanAct)); + + if(pCoexDm->bPreIgnoreWlanAct == pCoexDm->bCurIgnoreWlanAct) + return; + } + halbtc8723a2ant_SetFwIgnoreWlanAct(pBtCoexist, bEnable); + + pCoexDm->bPreIgnoreWlanAct = pCoexDm->bCurIgnoreWlanAct; +} + +VOID +halbtc8723a2ant_SetFwPstdma( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte byte1, + IN u1Byte byte2, + IN u1Byte byte3, + IN u1Byte byte4, + IN u1Byte byte5 + ) +{ + u1Byte H2C_Parameter[5] ={0}; + + H2C_Parameter[0] = byte1; + H2C_Parameter[1] = byte2; + H2C_Parameter[2] = byte3; + H2C_Parameter[3] = byte4; + H2C_Parameter[4] = byte5; + + pCoexDm->psTdmaPara[0] = byte1; + pCoexDm->psTdmaPara[1] = byte2; + pCoexDm->psTdmaPara[2] = byte3; + pCoexDm->psTdmaPara[3] = byte4; + pCoexDm->psTdmaPara[4] = byte5; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, ("[BTCoex], FW write 0x3a(5bytes)=0x%x%08x\n", + H2C_Parameter[0], + H2C_Parameter[1]<<24|H2C_Parameter[2]<<16|H2C_Parameter[3]<<8|H2C_Parameter[4])); + + pBtCoexist->btc_fill_h2c(pBtCoexist, 0x3a, 5, H2C_Parameter); +} + +VOID +halbtc8723a2ant_PsTdma( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bForceExec, + IN BOOLEAN bTurnOn, + IN u1Byte type + ) +{ + u4Byte btTxRxCnt=0; + + btTxRxCnt = pCoexSta->highPriorityTx+pCoexSta->highPriorityRx+ + pCoexSta->lowPriorityTx+pCoexSta->lowPriorityRx; + + if(btTxRxCnt > 3000) + { + pCoexDm->bCurPsTdmaOn = true; + pCoexDm->curPsTdma = 8; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], turn ON PS TDMA, type=%d for BT tx/rx counters=%d(>3000)\n", + pCoexDm->curPsTdma, btTxRxCnt)); + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], %s turn %s PS TDMA, type=%d\n", + (bForceExec? "force to":""), (bTurnOn? "ON":"OFF"), type)); + pCoexDm->bCurPsTdmaOn = bTurnOn; + pCoexDm->curPsTdma = type; + } + + if(!bForceExec) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], bPrePsTdmaOn = %d, bCurPsTdmaOn = %d!!\n", + pCoexDm->bPrePsTdmaOn, pCoexDm->bCurPsTdmaOn)); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], prePsTdma = %d, curPsTdma = %d!!\n", + pCoexDm->prePsTdma, pCoexDm->curPsTdma)); + + if( (pCoexDm->bPrePsTdmaOn == pCoexDm->bCurPsTdmaOn) && + (pCoexDm->prePsTdma == pCoexDm->curPsTdma) ) + return; + } + if(pCoexDm->bCurPsTdmaOn) + { + switch(pCoexDm->curPsTdma) + { + case 1: + default: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xe3, 0x1a, 0x1a, 0xe1, 0x98); + break; + case 2: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xe3, 0x12, 0x12, 0xe1, 0x98); + break; + case 3: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xe3, 0xa, 0xa, 0xe1, 0x98); + break; + case 4: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xa3, 0x5, 0x5, 0xe1, 0x80); + break; + case 5: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xe3, 0x1a, 0x1a, 0x60, 0x98); + break; + case 6: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xe3, 0x12, 0x12, 0x60, 0x98); + break; + case 7: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xe3, 0xa, 0xa, 0x60, 0x98); + break; + case 8: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xa3, 0x5, 0x5, 0x60, 0x80); + break; + case 9: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xe3, 0x1a, 0x1a, 0xe1, 0x98); + break; + case 10: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xe3, 0x12, 0x12, 0xe1, 0x98); + break; + case 11: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xe3, 0xa, 0xa, 0xe1, 0x98); + break; + case 12: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xe3, 0x5, 0x5, 0xe1, 0x98); + break; + case 13: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xe3, 0x1a, 0x1a, 0x60, 0x98); + break; + case 14: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xe3, 0x12, 0x12, 0x60, 0x98); + break; + case 15: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xe3, 0xa, 0xa, 0x60, 0x98); + break; + case 16: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xe3, 0x5, 0x5, 0x60, 0x98); + break; + case 17: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xa3, 0x2f, 0x2f, 0x60, 0x80); + break; + case 18: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xe3, 0x5, 0x5, 0xe1, 0x98); + break; + case 19: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xe3, 0x25, 0x25, 0xe1, 0x98); + break; + case 20: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0xe3, 0x25, 0x25, 0x60, 0x98); + break; + } + } + else + { + // disable PS tdma + switch(pCoexDm->curPsTdma) + { + case 0: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0x0, 0x0, 0x0, 0x8, 0x0); + break; + case 1: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0x0, 0x0, 0x0, 0x0, 0x0); + break; + default: + halbtc8723a2ant_SetFwPstdma(pBtCoexist, 0x0, 0x0, 0x0, 0x8, 0x0); + break; + } + } + + // update pre state + pCoexDm->bPrePsTdmaOn = pCoexDm->bCurPsTdmaOn; + pCoexDm->prePsTdma = pCoexDm->curPsTdma; +} + + +VOID +halbtc8723a2ant_CoexAllOff( + IN PBTC_COEXIST pBtCoexist + ) +{ + // fw all off + halbtc8723a2ant_IgnoreWlanAct(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 0); + halbtc8723a2ant_FwDacSwingLvl(pBtCoexist, NORMAL_EXEC, 0x20); + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, FALSE); + + // sw all off + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_LowPenaltyRa(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_RfShrink(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + + // hw all off + halbtc8723a2ant_CoexTable(pBtCoexist, NORMAL_EXEC, 0x55555555, 0xffff, 0x3); +} + +VOID +halbtc8723a2ant_InitCoexDm( + IN PBTC_COEXIST pBtCoexist + ) +{ + // force to reset coex mechanism + halbtc8723a2ant_CoexTable(pBtCoexist, FORCE_EXEC, 0x55555555, 0xffff, 0x3); + halbtc8723a2ant_PsTdma(pBtCoexist, FORCE_EXEC, FALSE, 0); + halbtc8723a2ant_FwDacSwingLvl(pBtCoexist, FORCE_EXEC, 0x20); + halbtc8723a2ant_DecBtPwr(pBtCoexist, FORCE_EXEC, FALSE); + halbtc8723a2ant_IgnoreWlanAct(pBtCoexist, FORCE_EXEC, FALSE); + + halbtc8723a2ant_AgcTable(pBtCoexist, FORCE_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, FORCE_EXEC, FALSE); + halbtc8723a2ant_LowPenaltyRa(pBtCoexist, FORCE_EXEC, FALSE); + halbtc8723a2ant_RfShrink(pBtCoexist, FORCE_EXEC, FALSE); + halbtc8723a2ant_DacSwing(pBtCoexist, FORCE_EXEC, FALSE, 0xc0); +} + +VOID +halbtc8723a2ant_BtInquiryPage( + IN PBTC_COEXIST pBtCoexist + ) +{ + BOOLEAN bLowPwrDisable=true; + + pBtCoexist->btc_set(pBtCoexist, BTC_SET_ACT_DISABLE_LOW_POWER, &bLowPwrDisable); + + halbtc8723a2ant_CoexTable(pBtCoexist, NORMAL_EXEC, 0x55555555, 0xffff, 0x3); + halbtc8723a2ant_IgnoreWlanAct(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 8); +} + +VOID +halbtc8723a2ant_BtEnableAction( + IN PBTC_COEXIST pBtCoexist + ) +{ + BOOLEAN bWifiConnected=FALSE; + + // Here we need to resend some wifi info to BT + // because bt is reset and loss of the info. + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_CONNECTED, &bWifiConnected); + if(bWifiConnected) + { + halbtc8723a2ant_IndicateWifiChnlBwInfo(pBtCoexist, BTC_MEDIA_CONNECT); + } + else + { + halbtc8723a2ant_IndicateWifiChnlBwInfo(pBtCoexist, BTC_MEDIA_DISCONNECT); + } + + halbtc8723a2ant_IgnoreWlanAct(pBtCoexist, FORCE_EXEC, FALSE); +} + +VOID +halbtc8723a2ant_MonitorBtCtr( + IN PBTC_COEXIST pBtCoexist + ) +{ + u4Byte regHPTxRx, regLPTxRx, u4Tmp; + u4Byte regHPTx=0, regHPRx=0, regLPTx=0, regLPRx=0; + u1Byte u1Tmp; + + regHPTxRx = 0x770; + regLPTxRx = 0x774; + + u4Tmp = pBtCoexist->btc_read_4byte(pBtCoexist, regHPTxRx); + regHPTx = u4Tmp & MASKLWORD; + regHPRx = (u4Tmp & MASKHWORD)>>16; + + u4Tmp = pBtCoexist->btc_read_4byte(pBtCoexist, regLPTxRx); + regLPTx = u4Tmp & MASKLWORD; + regLPRx = (u4Tmp & MASKHWORD)>>16; + + pCoexSta->highPriorityTx = regHPTx; + pCoexSta->highPriorityRx = regHPRx; + pCoexSta->lowPriorityTx = regLPTx; + pCoexSta->lowPriorityRx = regLPRx; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], High Priority Tx/Rx (reg 0x%x)=0x%x(%d)/0x%x(%d)\n", + regHPTxRx, regHPTx, regHPTx, regHPRx, regHPRx)); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], Low Priority Tx/Rx (reg 0x%x)=0x%x(%d)/0x%x(%d)\n", + regLPTxRx, regLPTx, regLPTx, regLPRx, regLPRx)); + + // reset counter + pBtCoexist->btc_write_1byte(pBtCoexist, 0x76e, 0xc); +} + +VOID +halbtc8723a2ant_MonitorBtEnableDisable( + IN PBTC_COEXIST pBtCoexist + ) +{ + static BOOLEAN bPreBtDisabled=FALSE; + static u4Byte btDisableCnt=0; + BOOLEAN bBtActive=true, bBtDisabled=FALSE; + + // This function check if bt is disabled + + if( pCoexSta->highPriorityTx == 0 && + pCoexSta->highPriorityRx == 0 && + pCoexSta->lowPriorityTx == 0 && + pCoexSta->lowPriorityRx == 0) + { + bBtActive = FALSE; + } + if( pCoexSta->highPriorityTx == 0xffff && + pCoexSta->highPriorityRx == 0xffff && + pCoexSta->lowPriorityTx == 0xffff && + pCoexSta->lowPriorityRx == 0xffff) + { + bBtActive = FALSE; + } + if(bBtActive) + { + btDisableCnt = 0; + bBtDisabled = FALSE; + pBtCoexist->btc_set(pBtCoexist, BTC_SET_BL_BT_DISABLE, &bBtDisabled); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], BT is enabled !!\n")); + } + else + { + btDisableCnt++; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], bt all counters=0, %d times!!\n", + btDisableCnt)); + if(btDisableCnt >= 2) + { + bBtDisabled = true; + pBtCoexist->btc_set(pBtCoexist, BTC_SET_BL_BT_DISABLE, &bBtDisabled); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], BT is disabled !!\n")); + } + } + if(bPreBtDisabled != bBtDisabled) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, ("[BTCoex], BT is from %s to %s!!\n", + (bPreBtDisabled ? "disabled":"enabled"), + (bBtDisabled ? "disabled":"enabled"))); + bPreBtDisabled = bBtDisabled; + if(!bBtDisabled) + { + halbtc8723a2ant_BtEnableAction(pBtCoexist); + } + } +} + +BOOLEAN +halbtc8723a2ant_IsCommonAction( + IN PBTC_COEXIST pBtCoexist + ) +{ + PBTC_STACK_INFO pStackInfo=&pBtCoexist->stack_info; + BOOLEAN bCommon=FALSE, bWifiConnected=FALSE; + BOOLEAN bLowPwrDisable=FALSE; + + if(!pStackInfo->bBtLinkExist) + { + bLowPwrDisable = FALSE; + pBtCoexist->btc_set(pBtCoexist, BTC_SET_ACT_DISABLE_LOW_POWER, &bLowPwrDisable); + } + else + { + bLowPwrDisable = true; + pBtCoexist->btc_set(pBtCoexist, BTC_SET_ACT_DISABLE_LOW_POWER, &bLowPwrDisable); + } + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_CONNECTED, &bWifiConnected); + + if(halbtc8723a2ant_IsWifiIdle(pBtCoexist) && + BT_8723A_2ANT_BT_STATUS_IDLE == pCoexDm->btStatus) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Wifi idle + Bt idle!!\n")); + + halbtc8723a2ant_LowPenaltyRa(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_RfShrink(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_CoexTable(pBtCoexist, NORMAL_EXEC, 0x55555555, 0xffff, 0x3); + + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 0); + halbtc8723a2ant_FwDacSwingLvl(pBtCoexist, NORMAL_EXEC, 0x20); + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, FALSE); + + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + + bCommon = true; + } + else if(!halbtc8723a2ant_IsWifiIdle(pBtCoexist) && + (BT_8723A_2ANT_BT_STATUS_IDLE == pCoexDm->btStatus) ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Wifi non-idle + BT idle!!\n")); + + halbtc8723a2ant_LowPenaltyRa(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_RfShrink(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_CoexTable(pBtCoexist, NORMAL_EXEC, 0x55555555, 0xffff, 0x3); + + halbtc8723a2ant_IgnoreWlanAct(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 0); + halbtc8723a2ant_FwDacSwingLvl(pBtCoexist, NORMAL_EXEC, 0x20); + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, true); + + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + + bCommon = true; + } + else if(halbtc8723a2ant_IsWifiIdle(pBtCoexist) && + (BT_8723A_2ANT_BT_STATUS_CONNECTED_IDLE == pCoexDm->btStatus) ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Wifi idle + Bt connected idle!!\n")); + + halbtc8723a2ant_LowPenaltyRa(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_RfShrink(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_CoexTable(pBtCoexist, NORMAL_EXEC, 0x55555555, 0xffff, 0x3); + + halbtc8723a2ant_IgnoreWlanAct(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 0); + halbtc8723a2ant_FwDacSwingLvl(pBtCoexist, NORMAL_EXEC, 0x20); + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, FALSE); + + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + + bCommon = true; + } + else if(!halbtc8723a2ant_IsWifiIdle(pBtCoexist) && + (BT_8723A_2ANT_BT_STATUS_CONNECTED_IDLE == pCoexDm->btStatus) ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Wifi non-idle + Bt connected idle!!\n")); + + halbtc8723a2ant_LowPenaltyRa(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_RfShrink(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_CoexTable(pBtCoexist, NORMAL_EXEC, 0x55555555, 0xffff, 0x3); + + halbtc8723a2ant_IgnoreWlanAct(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 0); + halbtc8723a2ant_FwDacSwingLvl(pBtCoexist, NORMAL_EXEC, 0x20); + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, FALSE); + + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + + bCommon = true; + } + else if(halbtc8723a2ant_IsWifiIdle(pBtCoexist) && + (BT_8723A_2ANT_BT_STATUS_NON_IDLE == pCoexDm->btStatus) ) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Wifi idle + BT non-idle!!\n")); + + halbtc8723a2ant_LowPenaltyRa(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_RfShrink(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_CoexTable(pBtCoexist, NORMAL_EXEC, 0x55555555, 0xffff, 0x3); + + halbtc8723a2ant_IgnoreWlanAct(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 0); + halbtc8723a2ant_FwDacSwingLvl(pBtCoexist, NORMAL_EXEC, 0x20); + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, FALSE); + + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + + bCommon = true; + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Wifi non-idle + BT non-idle!!\n")); + halbtc8723a2ant_LowPenaltyRa(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_RfShrink(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_IgnoreWlanAct(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_FwDacSwingLvl(pBtCoexist, NORMAL_EXEC, 0x20); + + bCommon = FALSE; + } + + return bCommon; +} +VOID +halbtc8723a2ant_TdmaDurationAdjust( + IN PBTC_COEXIST pBtCoexist, + IN BOOLEAN bScoHid, + IN BOOLEAN bTxPause, + IN u1Byte maxInterval + ) +{ + static s4Byte up,dn,m,n,WaitCount; + s4Byte result; //0: no change, +1: increase WiFi duration, -1: decrease WiFi duration + u1Byte retryCount=0; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, ("[BTCoex], TdmaDurationAdjust()\n")); + + if(pCoexDm->bResetTdmaAdjust) + { + pCoexDm->bResetTdmaAdjust = FALSE; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], first run TdmaDurationAdjust()!!\n")); + { + if(bScoHid) + { + if(bTxPause) + { + if(maxInterval == 1) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 13); + pCoexDm->psTdmaDuAdjType = 13; + } + else if(maxInterval == 2) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 14); + pCoexDm->psTdmaDuAdjType = 14; + } + else if(maxInterval == 3) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 15); + pCoexDm->psTdmaDuAdjType = 15; + } + else + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 15); + pCoexDm->psTdmaDuAdjType = 15; + } + } + else + { + if(maxInterval == 1) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 9); + pCoexDm->psTdmaDuAdjType = 9; + } + else if(maxInterval == 2) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 10); + pCoexDm->psTdmaDuAdjType = 10; + } + else if(maxInterval == 3) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->psTdmaDuAdjType = 11; + } + else + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->psTdmaDuAdjType = 11; + } + } + } + else + { + if(bTxPause) + { + if(maxInterval == 1) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 5); + pCoexDm->psTdmaDuAdjType = 5; + } + else if(maxInterval == 2) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 6); + pCoexDm->psTdmaDuAdjType = 6; + } + else if(maxInterval == 3) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 7); + pCoexDm->psTdmaDuAdjType = 7; + } + else + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 7); + pCoexDm->psTdmaDuAdjType = 7; + } + } + else + { + if(maxInterval == 1) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 1); + pCoexDm->psTdmaDuAdjType = 1; + } + else if(maxInterval == 2) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + pCoexDm->psTdmaDuAdjType = 2; + } + else if(maxInterval == 3) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 3); + pCoexDm->psTdmaDuAdjType = 3; + } + else + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 3); + pCoexDm->psTdmaDuAdjType = 3; + } + } + } + } + //============ + up = 0; + dn = 0; + m = 1; + n= 3; + result = 0; + WaitCount = 0; + } + else + { + //accquire the BT TRx retry count from BT_Info byte2 + retryCount = pCoexSta->btRetryCnt; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], retryCount = %d\n", retryCount)); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], up=%d, dn=%d, m=%d, n=%d, WaitCount=%d\n", + up, dn, m, n, WaitCount)); + result = 0; + WaitCount++; + + if(retryCount == 0) // no retry in the last 2-second duration + { + up++; + dn--; + + if (dn <= 0) + dn = 0; + + if(up >= n) // if s n 2 retry count0, hռeWiFi duration + { + WaitCount = 0; + n = 3; + up = 0; + dn = 0; + result = 1; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], Increase wifi duration!!\n")); + } + } + else if (retryCount <= 3) // <=3 retry in the last 2-second duration + { + up--; + dn++; + + if (up <= 0) + up = 0; + + if (dn == 2) // if s 2 2 retry count< 3, hկWiFi duration + { + if (WaitCount <= 2) + m++; // קK@blevelӦ^ + else + m = 1; + + if ( m >= 20) //m ̤j = 20 ' ̤j120 recheckO_վ WiFi duration. + m = 20; + + n = 3*m; + up = 0; + dn = 0; + WaitCount = 0; + result = -1; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], Decrease wifi duration for retryCounter<3!!\n")); + } + } + else //retry count > 3, un1 retry count > 3, hկWiFi duration + { + if (WaitCount == 1) + m++; // קK@blevelӦ^ + else + m = 1; + + if ( m >= 20) //m ̤j = 20 ' ̤j120 recheckO_վ WiFi duration. + m = 20; + + n = 3*m; + up = 0; + dn = 0; + WaitCount = 0; + result = -1; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], Decrease wifi duration for retryCounter>3!!\n")); + } + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], max Interval = %d\n", maxInterval)); + if(maxInterval == 1) + { + if(bTxPause) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], TxPause = 1\n")); + + if(pCoexDm->curPsTdma == 1) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 5); + pCoexDm->psTdmaDuAdjType = 5; + } + else if(pCoexDm->curPsTdma == 2) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 6); + pCoexDm->psTdmaDuAdjType = 6; + } + else if(pCoexDm->curPsTdma == 3) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 7); + pCoexDm->psTdmaDuAdjType = 7; + } + else if(pCoexDm->curPsTdma == 4) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 8); + pCoexDm->psTdmaDuAdjType = 8; + } + if(pCoexDm->curPsTdma == 9) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 13); + pCoexDm->psTdmaDuAdjType = 13; + } + else if(pCoexDm->curPsTdma == 10) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 14); + pCoexDm->psTdmaDuAdjType = 14; + } + else if(pCoexDm->curPsTdma == 11) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 15); + pCoexDm->psTdmaDuAdjType = 15; + } + else if(pCoexDm->curPsTdma == 12) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 16); + pCoexDm->psTdmaDuAdjType = 16; + } + + if(result == -1) + { + if(pCoexDm->curPsTdma == 5) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 6); + pCoexDm->psTdmaDuAdjType = 6; + } + else if(pCoexDm->curPsTdma == 6) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 7); + pCoexDm->psTdmaDuAdjType = 7; + } + else if(pCoexDm->curPsTdma == 7) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 8); + pCoexDm->psTdmaDuAdjType = 8; + } + else if(pCoexDm->curPsTdma == 13) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 14); + pCoexDm->psTdmaDuAdjType = 14; + } + else if(pCoexDm->curPsTdma == 14) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 15); + pCoexDm->psTdmaDuAdjType = 15; + } + else if(pCoexDm->curPsTdma == 15) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 16); + pCoexDm->psTdmaDuAdjType = 16; + } + } + else if (result == 1) + { + if(pCoexDm->curPsTdma == 8) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 7); + pCoexDm->psTdmaDuAdjType = 7; + } + else if(pCoexDm->curPsTdma == 7) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 6); + pCoexDm->psTdmaDuAdjType = 6; + } + else if(pCoexDm->curPsTdma == 6) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 5); + pCoexDm->psTdmaDuAdjType = 5; + } + else if(pCoexDm->curPsTdma == 16) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 15); + pCoexDm->psTdmaDuAdjType = 15; + } + else if(pCoexDm->curPsTdma == 15) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 14); + pCoexDm->psTdmaDuAdjType = 14; + } + else if(pCoexDm->curPsTdma == 14) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 13); + pCoexDm->psTdmaDuAdjType = 13; + } + } + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], TxPause = 0\n")); + if(pCoexDm->curPsTdma == 5) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 1); + pCoexDm->psTdmaDuAdjType = 1; + } + else if(pCoexDm->curPsTdma == 6) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + pCoexDm->psTdmaDuAdjType = 2; + } + else if(pCoexDm->curPsTdma == 7) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 3); + pCoexDm->psTdmaDuAdjType = 3; + } + else if(pCoexDm->curPsTdma == 8) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 4); + pCoexDm->psTdmaDuAdjType = 4; + } + if(pCoexDm->curPsTdma == 13) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 9); + pCoexDm->psTdmaDuAdjType = 9; + } + else if(pCoexDm->curPsTdma == 14) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 10); + pCoexDm->psTdmaDuAdjType = 10; + } + else if(pCoexDm->curPsTdma == 15) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->psTdmaDuAdjType = 11; + } + else if(pCoexDm->curPsTdma == 16) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 12); + pCoexDm->psTdmaDuAdjType = 12; + } + + if(result == -1) + { + if(pCoexDm->curPsTdma == 1) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + pCoexDm->psTdmaDuAdjType = 2; + } + else if(pCoexDm->curPsTdma == 2) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 3); + pCoexDm->psTdmaDuAdjType = 3; + } + else if(pCoexDm->curPsTdma == 3) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 4); + pCoexDm->psTdmaDuAdjType = 4; + } + else if(pCoexDm->curPsTdma == 9) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 10); + pCoexDm->psTdmaDuAdjType = 10; + } + else if(pCoexDm->curPsTdma == 10) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->psTdmaDuAdjType = 11; + } + else if(pCoexDm->curPsTdma == 11) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 12); + pCoexDm->psTdmaDuAdjType = 12; + } + } + else if (result == 1) + { + if(pCoexDm->curPsTdma == 4) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 3); + pCoexDm->psTdmaDuAdjType = 3; + } + else if(pCoexDm->curPsTdma == 3) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + pCoexDm->psTdmaDuAdjType = 2; + } + else if(pCoexDm->curPsTdma == 2) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 1); + pCoexDm->psTdmaDuAdjType = 1; + } + else if(pCoexDm->curPsTdma == 12) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->psTdmaDuAdjType = 11; + } + else if(pCoexDm->curPsTdma == 11) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 10); + pCoexDm->psTdmaDuAdjType = 10; + } + else if(pCoexDm->curPsTdma == 10) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 9); + pCoexDm->psTdmaDuAdjType = 9; + } + } + } + } + else if(maxInterval == 2) + { + if(bTxPause) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], TxPause = 1\n")); + if(pCoexDm->curPsTdma == 1) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 6); + pCoexDm->psTdmaDuAdjType = 6; + } + else if(pCoexDm->curPsTdma == 2) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 6); + pCoexDm->psTdmaDuAdjType = 6; + } + else if(pCoexDm->curPsTdma == 3) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 7); + pCoexDm->psTdmaDuAdjType = 7; + } + else if(pCoexDm->curPsTdma == 4) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 8); + pCoexDm->psTdmaDuAdjType = 8; + } + if(pCoexDm->curPsTdma == 9) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 14); + pCoexDm->psTdmaDuAdjType = 14; + } + else if(pCoexDm->curPsTdma == 10) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 14); + pCoexDm->psTdmaDuAdjType = 14; + } + else if(pCoexDm->curPsTdma == 11) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 15); + pCoexDm->psTdmaDuAdjType = 15; + } + else if(pCoexDm->curPsTdma == 12) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 16); + pCoexDm->psTdmaDuAdjType = 16; + } + if(result == -1) + { + if(pCoexDm->curPsTdma == 5) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 6); + pCoexDm->psTdmaDuAdjType = 6; + } + else if(pCoexDm->curPsTdma == 6) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 7); + pCoexDm->psTdmaDuAdjType = 7; + } + else if(pCoexDm->curPsTdma == 7) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 8); + pCoexDm->psTdmaDuAdjType = 8; + } + else if(pCoexDm->curPsTdma == 13) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 14); + pCoexDm->psTdmaDuAdjType = 14; + } + else if(pCoexDm->curPsTdma == 14) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 15); + pCoexDm->psTdmaDuAdjType = 15; + } + else if(pCoexDm->curPsTdma == 15) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 16); + pCoexDm->psTdmaDuAdjType = 16; + } + } + else if (result == 1) + { + if(pCoexDm->curPsTdma == 8) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 7); + pCoexDm->psTdmaDuAdjType = 7; + } + else if(pCoexDm->curPsTdma == 7) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 6); + pCoexDm->psTdmaDuAdjType = 6; + } + else if(pCoexDm->curPsTdma == 6) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 6); + pCoexDm->psTdmaDuAdjType = 6; + } + else if(pCoexDm->curPsTdma == 16) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 15); + pCoexDm->psTdmaDuAdjType = 15; + } + else if(pCoexDm->curPsTdma == 15) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 14); + pCoexDm->psTdmaDuAdjType = 14; + } + else if(pCoexDm->curPsTdma == 14) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 14); + pCoexDm->psTdmaDuAdjType = 14; + } + } + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], TxPause = 0\n")); + if(pCoexDm->curPsTdma == 5) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + pCoexDm->psTdmaDuAdjType = 2; + } + else if(pCoexDm->curPsTdma == 6) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + pCoexDm->psTdmaDuAdjType = 2; + } + else if(pCoexDm->curPsTdma == 7) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 3); + pCoexDm->psTdmaDuAdjType = 3; + } + else if(pCoexDm->curPsTdma == 8) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 4); + pCoexDm->psTdmaDuAdjType = 4; + } + if(pCoexDm->curPsTdma == 13) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 10); + pCoexDm->psTdmaDuAdjType = 10; + } + else if(pCoexDm->curPsTdma == 14) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 10); + pCoexDm->psTdmaDuAdjType = 10; + } + else if(pCoexDm->curPsTdma == 15) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->psTdmaDuAdjType = 11; + } + else if(pCoexDm->curPsTdma == 16) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 12); + pCoexDm->psTdmaDuAdjType = 12; + } + if(result == -1) + { + if(pCoexDm->curPsTdma == 1) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + pCoexDm->psTdmaDuAdjType = 2; + } + else if(pCoexDm->curPsTdma == 2) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 3); + pCoexDm->psTdmaDuAdjType = 3; + } + else if(pCoexDm->curPsTdma == 3) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 4); + pCoexDm->psTdmaDuAdjType = 4; + } + else if(pCoexDm->curPsTdma == 9) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 10); + pCoexDm->psTdmaDuAdjType = 10; + } + else if(pCoexDm->curPsTdma == 10) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->psTdmaDuAdjType = 11; + } + else if(pCoexDm->curPsTdma == 11) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 12); + pCoexDm->psTdmaDuAdjType = 12; + } + } + else if (result == 1) + { + if(pCoexDm->curPsTdma == 4) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 3); + pCoexDm->psTdmaDuAdjType = 3; + } + else if(pCoexDm->curPsTdma == 3) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + pCoexDm->psTdmaDuAdjType = 2; + } + else if(pCoexDm->curPsTdma == 2) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + pCoexDm->psTdmaDuAdjType = 2; + } + else if(pCoexDm->curPsTdma == 12) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->psTdmaDuAdjType = 11; + } + else if(pCoexDm->curPsTdma == 11) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 10); + pCoexDm->psTdmaDuAdjType = 10; + } + else if(pCoexDm->curPsTdma == 10) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 10); + pCoexDm->psTdmaDuAdjType = 10; + } + } + } + } + else if(maxInterval == 3) + { + if(bTxPause) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], TxPause = 1\n")); + if(pCoexDm->curPsTdma == 1) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 7); + pCoexDm->psTdmaDuAdjType = 7; + } + else if(pCoexDm->curPsTdma == 2) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 7); + pCoexDm->psTdmaDuAdjType = 7; + } + else if(pCoexDm->curPsTdma == 3) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 7); + pCoexDm->psTdmaDuAdjType = 7; + } + else if(pCoexDm->curPsTdma == 4) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 8); + pCoexDm->psTdmaDuAdjType = 8; + } + if(pCoexDm->curPsTdma == 9) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 15); + pCoexDm->psTdmaDuAdjType = 15; + } + else if(pCoexDm->curPsTdma == 10) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 15); + pCoexDm->psTdmaDuAdjType = 15; + } + else if(pCoexDm->curPsTdma == 11) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 15); + pCoexDm->psTdmaDuAdjType = 15; + } + else if(pCoexDm->curPsTdma == 12) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 16); + pCoexDm->psTdmaDuAdjType = 16; + } + if(result == -1) + { + if(pCoexDm->curPsTdma == 5) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 7); + pCoexDm->psTdmaDuAdjType = 7; + } + else if(pCoexDm->curPsTdma == 6) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 7); + pCoexDm->psTdmaDuAdjType = 7; + } + else if(pCoexDm->curPsTdma == 7) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 8); + pCoexDm->psTdmaDuAdjType = 8; + } + else if(pCoexDm->curPsTdma == 13) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 15); + pCoexDm->psTdmaDuAdjType = 15; + } + else if(pCoexDm->curPsTdma == 14) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 15); + pCoexDm->psTdmaDuAdjType = 15; + } + else if(pCoexDm->curPsTdma == 15) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 16); + pCoexDm->psTdmaDuAdjType = 16; + } + } + else if (result == 1) + { + if(pCoexDm->curPsTdma == 8) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 7); + pCoexDm->psTdmaDuAdjType = 7; + } + else if(pCoexDm->curPsTdma == 7) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 7); + pCoexDm->psTdmaDuAdjType = 7; + } + else if(pCoexDm->curPsTdma == 6) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 7); + pCoexDm->psTdmaDuAdjType = 7; + } + else if(pCoexDm->curPsTdma == 16) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 15); + pCoexDm->psTdmaDuAdjType = 15; + } + else if(pCoexDm->curPsTdma == 15) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 15); + pCoexDm->psTdmaDuAdjType = 15; + } + else if(pCoexDm->curPsTdma == 14) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 15); + pCoexDm->psTdmaDuAdjType = 15; + } + } + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], TxPause = 0\n")); + if(pCoexDm->curPsTdma == 5) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 3); + pCoexDm->psTdmaDuAdjType = 3; + } + else if(pCoexDm->curPsTdma == 6) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 3); + pCoexDm->psTdmaDuAdjType = 3; + } + else if(pCoexDm->curPsTdma == 7) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 3); + pCoexDm->psTdmaDuAdjType = 3; + } + else if(pCoexDm->curPsTdma == 8) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 4); + pCoexDm->psTdmaDuAdjType = 4; + } + if(pCoexDm->curPsTdma == 13) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->psTdmaDuAdjType = 11; + } + else if(pCoexDm->curPsTdma == 14) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->psTdmaDuAdjType = 11; + } + else if(pCoexDm->curPsTdma == 15) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->psTdmaDuAdjType = 11; + } + else if(pCoexDm->curPsTdma == 16) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 12); + pCoexDm->psTdmaDuAdjType = 12; + } + if(result == -1) + { + if(pCoexDm->curPsTdma == 1) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 3); + pCoexDm->psTdmaDuAdjType = 3; + } + else if(pCoexDm->curPsTdma == 2) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 3); + pCoexDm->psTdmaDuAdjType = 3; + } + else if(pCoexDm->curPsTdma == 3) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 4); + pCoexDm->psTdmaDuAdjType = 4; + } + else if(pCoexDm->curPsTdma == 9) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->psTdmaDuAdjType = 11; + } + else if(pCoexDm->curPsTdma == 10) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->psTdmaDuAdjType = 11; + } + else if(pCoexDm->curPsTdma == 11) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 12); + pCoexDm->psTdmaDuAdjType = 12; + } + } + else if (result == 1) + { + if(pCoexDm->curPsTdma == 4) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 3); + pCoexDm->psTdmaDuAdjType = 3; + } + else if(pCoexDm->curPsTdma == 3) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 3); + pCoexDm->psTdmaDuAdjType = 3; + } + else if(pCoexDm->curPsTdma == 2) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 3); + pCoexDm->psTdmaDuAdjType = 3; + } + else if(pCoexDm->curPsTdma == 12) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->psTdmaDuAdjType = 11; + } + else if(pCoexDm->curPsTdma == 11) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->psTdmaDuAdjType = 11; + } + else if(pCoexDm->curPsTdma == 10) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + pCoexDm->psTdmaDuAdjType = 11; + } + } + } + } + } + + // if current PsTdma not match with the recorded one (when scan, dhcp...), + // then we have to adjust it back to the previous record one. + if(pCoexDm->curPsTdma != pCoexDm->psTdmaDuAdjType) + { + BOOLEAN bScan=FALSE, bLink=FALSE, bRoam=FALSE; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], PsTdma type dismatch!!!, curPsTdma=%d, recordPsTdma=%d\n", + pCoexDm->curPsTdma, pCoexDm->psTdmaDuAdjType)); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_SCAN, &bScan); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_LINK, &bLink); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_ROAM, &bRoam); + + if( !bScan && !bLink && !bRoam) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, pCoexDm->psTdmaDuAdjType); + } + else + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, ("[BTCoex], roaming/link/scan is under progress, will adjust next time!!!\n")); + } + } +} + +// SCO only or SCO+PAN(HS) +VOID +halbtc8723a2ant_ActionSco( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState, wifiRssiState1; + u4Byte wifiBw; + + if(halbtc8723a2ant_NeedToDecBtPwr(pBtCoexist)) + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, true); + else + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_CoexTable(pBtCoexist, NORMAL_EXEC, 0x55555555, 0xffff, 0x3); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + if(BTC_WIFI_BW_HT40 == wifiBw) + { + wifiRssiState = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 37, 0); + // fw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + } + else + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 15); + } + + // sw mechanism + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + else + { + wifiRssiState = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 27, 0); + wifiRssiState1 = halbtc8723a2ant_WifiRssiState(pBtCoexist, 1, 2, 47, 0); + + // fw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 11); + } + else + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 15); + } + + // sw mechanism + if( (wifiRssiState1 == BTC_RSSI_STATE_HIGH) || + (wifiRssiState1 == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + else + { + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + } +} + + +VOID +halbtc8723a2ant_ActionHid( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState, wifiRssiState1; + u4Byte wifiBw; + + if(halbtc8723a2ant_NeedToDecBtPwr(pBtCoexist)) + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, true); + else + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_CoexTable(pBtCoexist, NORMAL_EXEC, 0x55555555, 0xffff, 0x3); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + if(BTC_WIFI_BW_HT40 == wifiBw) + { + wifiRssiState = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 37, 0); + // fw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 9); + } + else + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 13); + } + + // sw mechanism + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + else + { + wifiRssiState = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 27, 0); + wifiRssiState1 = halbtc8723a2ant_WifiRssiState(pBtCoexist, 1, 2, 47, 0); + + // fw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 9); + } + else + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 13); + } + + // sw mechanism + if( (wifiRssiState1 == BTC_RSSI_STATE_HIGH) || + (wifiRssiState1 == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + else + { + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + } +} + +//A2DP only / PAN(EDR) only/ A2DP+PAN(HS) +VOID +halbtc8723a2ant_ActionA2dp( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState, wifiRssiState1, btInfoExt; + u4Byte wifiBw; + + btInfoExt = pCoexSta->btInfoExt; + + if(halbtc8723a2ant_NeedToDecBtPwr(pBtCoexist)) + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, true); + else + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_CoexTable(pBtCoexist, NORMAL_EXEC, 0x55555555, 0xffff, 0x3); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + if(BTC_WIFI_BW_HT40 == wifiBw) + { + wifiRssiState = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 37, 0); + + // fw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + if(btInfoExt&BIT0) //a2dp rate, 1:basic /0:edr + { + halbtc8723a2ant_TdmaDurationAdjust(pBtCoexist, FALSE, FALSE, 3); + } + else + { + halbtc8723a2ant_TdmaDurationAdjust(pBtCoexist, FALSE, FALSE, 1); + } + } + else + { + if(btInfoExt&BIT0) //a2dp rate, 1:basic /0:edr + { + halbtc8723a2ant_TdmaDurationAdjust(pBtCoexist, FALSE, true, 3); + } + else + { + halbtc8723a2ant_TdmaDurationAdjust(pBtCoexist, FALSE, true, 1); + } + } + + // sw mechanism + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + else + { + wifiRssiState = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 27, 0); + wifiRssiState1 = halbtc8723a2ant_WifiRssiState(pBtCoexist, 1, 2, 47, 0); + + // fw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + if(btInfoExt&BIT0) //a2dp rate, 1:basic /0:edr + { + halbtc8723a2ant_TdmaDurationAdjust(pBtCoexist, FALSE, FALSE, 3); + } + else + { + halbtc8723a2ant_TdmaDurationAdjust(pBtCoexist, FALSE, FALSE, 1); + } + } + else + { + if(btInfoExt&BIT0) //a2dp rate, 1:basic /0:edr + { + halbtc8723a2ant_TdmaDurationAdjust(pBtCoexist, FALSE, true, 3); + } + else + { + halbtc8723a2ant_TdmaDurationAdjust(pBtCoexist, FALSE, true, 1); + } + } + + // sw mechanism + if( (wifiRssiState1 == BTC_RSSI_STATE_HIGH) || + (wifiRssiState1 == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + else + { + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + } +} + +VOID +halbtc8723a2ant_ActionPanEdr( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState, wifiRssiState1, btInfoExt; + u4Byte wifiBw; + + btInfoExt = pCoexSta->btInfoExt; + + if(halbtc8723a2ant_NeedToDecBtPwr(pBtCoexist)) + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, true); + else + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_CoexTable(pBtCoexist, NORMAL_EXEC, 0x55555555, 0xffff, 0x3); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + if(BTC_WIFI_BW_HT40 == wifiBw) + { + wifiRssiState = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 37, 0); + + // fw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + } + else + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 6); + } + + // sw mechanism + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + else + { + wifiRssiState = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 27, 0); + wifiRssiState1 = halbtc8723a2ant_WifiRssiState(pBtCoexist, 1, 2, 47, 0); + + // fw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + } + else + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 6); + } + + // sw mechanism + if( (wifiRssiState1 == BTC_RSSI_STATE_HIGH) || + (wifiRssiState1 == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + else + { + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + } +} + + +//PAN(HS) only +VOID +halbtc8723a2ant_ActionPanHs( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState; + u4Byte wifiBw; + + halbtc8723a2ant_CoexTable(pBtCoexist, NORMAL_EXEC, 0x55555555, 0xffff, 0x3); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + if(BTC_WIFI_BW_HT40 == wifiBw) + { + wifiRssiState = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 37, 0); + + // fw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, true); + } + else + { + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, FALSE); + } + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 0); + + // sw mechanism + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + else + { + wifiRssiState = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 37, 0); + + // fw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 0); + } + else + { + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, FALSE, 0); + } + + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + else + { + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + } +} + +//PAN(EDR)+A2DP +VOID +halbtc8723a2ant_ActionPanEdrA2dp( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState, wifiRssiState1, btInfoExt; + u4Byte wifiBw; + + btInfoExt = pCoexSta->btInfoExt; + + if(halbtc8723a2ant_NeedToDecBtPwr(pBtCoexist)) + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, true); + else + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_CoexTable(pBtCoexist, NORMAL_EXEC, 0x55555555, 0xffff, 0x3); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + if(BTC_WIFI_BW_HT40 == wifiBw) + { + wifiRssiState = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 37, 0); + + // fw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + if(btInfoExt&BIT0) //a2dp basic rate + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 4); + } + else //a2dp edr rate + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + } + } + else + { + if(btInfoExt&BIT0) //a2dp basic rate + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 8); + } + else //a2dp edr rate + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 6); + } + } + + // sw mechanism + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + else + { + wifiRssiState = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 27, 0); + wifiRssiState1 = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 47, 0); + + // fw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + if(btInfoExt&BIT0) //a2dp basic rate + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 4); + } + else //a2dp edr rate + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 2); + } + } + else + { + if(btInfoExt&BIT0) //a2dp basic rate + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 8); + } + else //a2dp edr rate + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 6); + } + } + + // sw mechanism + if( (wifiRssiState1 == BTC_RSSI_STATE_HIGH) || + (wifiRssiState1 == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + else + { + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + } +} + +VOID +halbtc8723a2ant_ActionPanEdrHid( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState, wifiRssiState1; + u4Byte wifiBw; + + if(halbtc8723a2ant_NeedToDecBtPwr(pBtCoexist)) + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, true); + else + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_CoexTable(pBtCoexist, NORMAL_EXEC, 0x55555555, 0xffff, 0x3); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + if(BTC_WIFI_BW_HT40 == wifiBw) + { + wifiRssiState = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 37, 0); + + // fw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 10); + } + else + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 14); + } + + // sw mechanism + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + else + { + wifiRssiState = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 27, 0); + wifiRssiState1 = halbtc8723a2ant_WifiRssiState(pBtCoexist, 1, 2, 47, 0); + + // fw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 10); + } + else + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 14); + } + + // sw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + else + { + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + } +} + +// HID+A2DP+PAN(EDR) +VOID +halbtc8723a2ant_ActionHidA2dpPanEdr( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState, wifiRssiState1, btInfoExt; + u4Byte wifiBw; + + btInfoExt = pCoexSta->btInfoExt; + + if(halbtc8723a2ant_NeedToDecBtPwr(pBtCoexist)) + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, true); + else + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_CoexTable(pBtCoexist, NORMAL_EXEC, 0x55555555, 0xffff, 0x3); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + if(BTC_WIFI_BW_HT40 == wifiBw) + { + wifiRssiState = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 37, 0); + + // fw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + if(btInfoExt&BIT0) //a2dp basic rate + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 12); + } + else //a2dp edr rate + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 10); + } + } + else + { + if(btInfoExt&BIT0) //a2dp basic rate + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 16); + } + else //a2dp edr rate + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 14); + } + } + + // sw mechanism + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + else + { + wifiRssiState = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 27, 0); + wifiRssiState1 = halbtc8723a2ant_WifiRssiState(pBtCoexist, 1, 2, 47, 0); + + // fw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + if(btInfoExt&BIT0) //a2dp basic rate + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 12); + } + else //a2dp edr rate + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 10); + } + } + else + { + if(btInfoExt&BIT0) //a2dp basic rate + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 16); + } + else //a2dp edr rate + { + halbtc8723a2ant_PsTdma(pBtCoexist, NORMAL_EXEC, true, 14); + } + } + + // sw mechanism + if( (wifiRssiState1 == BTC_RSSI_STATE_HIGH) || + (wifiRssiState1 == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + else + { + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + } +} + +VOID +halbtc8723a2ant_ActionHidA2dp( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte wifiRssiState, wifiRssiState1, btInfoExt; + u4Byte wifiBw; + + btInfoExt = pCoexSta->btInfoExt; + + if(halbtc8723a2ant_NeedToDecBtPwr(pBtCoexist)) + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, true); + else + halbtc8723a2ant_DecBtPwr(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_CoexTable(pBtCoexist, NORMAL_EXEC, 0x55555555, 0xffff, 0x3); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + if(BTC_WIFI_BW_HT40 == wifiBw) + { + wifiRssiState = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 37, 0); + + // fw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + if(btInfoExt&BIT0) //a2dp basic rate + { + halbtc8723a2ant_TdmaDurationAdjust(pBtCoexist, true, FALSE, 3); + } + else //a2dp edr rate + { + halbtc8723a2ant_TdmaDurationAdjust(pBtCoexist, true, FALSE, 1); + } + } + else + { + if(btInfoExt&BIT0) //a2dp basic rate + { + halbtc8723a2ant_TdmaDurationAdjust(pBtCoexist, true, true, 3); + } + else //a2dp edr rate + { + halbtc8723a2ant_TdmaDurationAdjust(pBtCoexist, true, true, 1); + } + } + + // sw mechanism + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + else + { + wifiRssiState = halbtc8723a2ant_WifiRssiState(pBtCoexist, 0, 2, 27, 0); + wifiRssiState1 = halbtc8723a2ant_WifiRssiState(pBtCoexist, 1, 2, 47, 0); + + // fw mechanism + if( (wifiRssiState == BTC_RSSI_STATE_HIGH) || + (wifiRssiState == BTC_RSSI_STATE_STAY_HIGH) ) + { + if(btInfoExt&BIT0) //a2dp basic rate + { + halbtc8723a2ant_TdmaDurationAdjust(pBtCoexist, true, FALSE, 3); + } + else //a2dp edr rate + { + halbtc8723a2ant_TdmaDurationAdjust(pBtCoexist, true, FALSE, 1); + } + } + else + { + if(btInfoExt&BIT0) //a2dp basic rate + { + halbtc8723a2ant_TdmaDurationAdjust(pBtCoexist, true, true, 3); + } + else //a2dp edr rate + { + halbtc8723a2ant_TdmaDurationAdjust(pBtCoexist, true, true, 1); + } + } + + // sw mechanism + if( (wifiRssiState1 == BTC_RSSI_STATE_HIGH) || + (wifiRssiState1 == BTC_RSSI_STATE_STAY_HIGH) ) + { + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, true); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + else + { + halbtc8723a2ant_AgcTable(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_AdcBackOff(pBtCoexist, NORMAL_EXEC, FALSE); + halbtc8723a2ant_DacSwing(pBtCoexist, NORMAL_EXEC, FALSE, 0xc0); + } + } +} + +VOID +halbtc8723a2ant_RunCoexistMechanism( + IN PBTC_COEXIST pBtCoexist + ) +{ + PBTC_STACK_INFO pStackInfo=&pBtCoexist->stack_info; + u1Byte btInfoOriginal=0, btRetryCnt=0; + u1Byte algorithm=0; + + if(pBtCoexist->manual_control) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Manual control!!!\n")); + return; + } + + if(pStackInfo->bProfileNotified) + { + if(pCoexSta->bHoldForStackOperation) + { + // if bt inquiry/page/pair, do not execute. + return; + } + + algorithm = halbtc8723a2ant_ActionAlgorithm(pBtCoexist); + if(pCoexSta->bHoldPeriodCnt && (BT_8723A_2ANT_COEX_ALGO_PANHS!=algorithm)) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex],Hold BT inquiry/page scan setting (cnt = %d)!!\n", + pCoexSta->bHoldPeriodCnt)); + if(pCoexSta->bHoldPeriodCnt >= 6) + { + pCoexSta->bHoldPeriodCnt = 0; + // next time the coexist parameters should be reset again. + } + else + pCoexSta->bHoldPeriodCnt++; + return; + } + + pCoexDm->curAlgorithm = algorithm; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Algorithm = %d \n", pCoexDm->curAlgorithm)); + if(halbtc8723a2ant_IsCommonAction(pBtCoexist)) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action 2-Ant common.\n")); + pCoexDm->bResetTdmaAdjust = true; + } + else + { + if(pCoexDm->curAlgorithm != pCoexDm->preAlgorithm) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], preAlgorithm=%d, curAlgorithm=%d\n", + pCoexDm->preAlgorithm, pCoexDm->curAlgorithm)); + pCoexDm->bResetTdmaAdjust = true; + } + switch(pCoexDm->curAlgorithm) + { + case BT_8723A_2ANT_COEX_ALGO_SCO: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action 2-Ant, algorithm = SCO.\n")); + halbtc8723a2ant_ActionSco(pBtCoexist); + break; + case BT_8723A_2ANT_COEX_ALGO_HID: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action 2-Ant, algorithm = HID.\n")); + halbtc8723a2ant_ActionHid(pBtCoexist); + break; + case BT_8723A_2ANT_COEX_ALGO_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action 2-Ant, algorithm = A2DP.\n")); + halbtc8723a2ant_ActionA2dp(pBtCoexist); + break; + case BT_8723A_2ANT_COEX_ALGO_PANEDR: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action 2-Ant, algorithm = PAN(EDR).\n")); + halbtc8723a2ant_ActionPanEdr(pBtCoexist); + break; + case BT_8723A_2ANT_COEX_ALGO_PANHS: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action 2-Ant, algorithm = HS mode.\n")); + halbtc8723a2ant_ActionPanHs(pBtCoexist); + break; + case BT_8723A_2ANT_COEX_ALGO_PANEDR_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action 2-Ant, algorithm = PAN+A2DP.\n")); + halbtc8723a2ant_ActionPanEdrA2dp(pBtCoexist); + break; + case BT_8723A_2ANT_COEX_ALGO_PANEDR_HID: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action 2-Ant, algorithm = PAN(EDR)+HID.\n")); + halbtc8723a2ant_ActionPanEdrHid(pBtCoexist); + break; + case BT_8723A_2ANT_COEX_ALGO_HID_A2DP_PANEDR: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action 2-Ant, algorithm = HID+A2DP+PAN.\n")); + halbtc8723a2ant_ActionHidA2dpPanEdr(pBtCoexist); + break; + case BT_8723A_2ANT_COEX_ALGO_HID_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action 2-Ant, algorithm = HID+A2DP.\n")); + halbtc8723a2ant_ActionHidA2dp(pBtCoexist); + break; + default: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, ("[BTCoex], Action 2-Ant, algorithm = coexist All Off!!\n")); + halbtc8723a2ant_CoexAllOff(pBtCoexist); + break; + } + pCoexDm->preAlgorithm = pCoexDm->curAlgorithm; + } + } +} + +//============================================================ +// work around function start with wa_halbtc8723a2ant_ +//============================================================ +VOID +wa_halbtc8723a2ant_MonitorC2h( + IN PBTC_COEXIST pBtCoexist + ) +{ + u1Byte tmp1b=0x0; + u4Byte curC2hTotalCnt=0x0; + static u4Byte preC2hTotalCnt=0x0, sameCntPollingTime=0x0; + + curC2hTotalCnt+=pCoexSta->btInfoC2hCnt[BT_INFO_SRC_8723A_2ANT_BT_RSP]; + + if(curC2hTotalCnt == preC2hTotalCnt) + { + sameCntPollingTime++; + } + else + { + preC2hTotalCnt = curC2hTotalCnt; + sameCntPollingTime = 0; + } + + if(sameCntPollingTime >= 2) + { + tmp1b = pBtCoexist->btc_read_1byte(pBtCoexist, 0x1af); + if(tmp1b != 0x0) + { + pCoexSta->c2hHangDetectCnt++; + pBtCoexist->btc_write_1byte(pBtCoexist, 0x1af, 0x0); + } + } +} + +//============================================================ +// extern function start with EXhalbtc8723a2ant_ +//============================================================ +VOID +EXhalbtc8723a2ant_InitHwConfig( + IN PBTC_COEXIST pBtCoexist + ) +{ + u4Byte u4Tmp=0; + u1Byte u1Tmp=0; + + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, ("[BTCoex], 2Ant Init HW Config!!\n")); + + // backup rf 0x1e value + pCoexDm->btRf0x1eBackup = + pBtCoexist->btc_get_rf_reg(pBtCoexist, BTC_RF_A, 0x1e, 0xfffff); + + // Enable counter statistics + pBtCoexist->btc_write_1byte(pBtCoexist, 0x76e, 0x4); + pBtCoexist->btc_write_1byte(pBtCoexist, 0x778, 0x3); + pBtCoexist->btc_write_1byte(pBtCoexist, 0x40, 0x20); +} + +VOID +EXhalbtc8723a2ant_InitCoexDm( + IN PBTC_COEXIST pBtCoexist + ) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, ("[BTCoex], Coex Mechanism Init!!\n")); + + halbtc8723a2ant_InitCoexDm(pBtCoexist); +} + +VOID +EXhalbtc8723a2ant_DisplayCoexInfo( + IN PBTC_COEXIST pBtCoexist + ) +{ + struct btc_board_info * pBoardInfo=&pBtCoexist->board_info; + PBTC_STACK_INFO pStackInfo=&pBtCoexist->stack_info; + pu1Byte cliBuf=pBtCoexist->cli_buf; + u1Byte u1Tmp[4], i, btInfoExt, psTdmaCase=0; + u4Byte u4Tmp[4]; + BOOLEAN bRoam=FALSE, bScan=FALSE, bLink=FALSE, bWifiUnder5G=FALSE; + BOOLEAN bBtHsOn=FALSE, bWifiBusy=FALSE; + s4Byte wifiRssi=0, btHsRssi=0; + u4Byte wifiBw, wifiTrafficDir; + u1Byte wifiDot11Chnl, wifiHsChnl; + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n ============[BT Coexist info]============"); + CL_PRINTF(cliBuf); + + if(!pBoardInfo->bt_exist) + { + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n BT not exists !!!"); + CL_PRINTF(cliBuf); + return; + } + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d ", "Ant PG number/ Ant mechanism:", \ + pBoardInfo->pg_ant_num, pBoardInfo->btdm_ant_num); + CL_PRINTF(cliBuf); + + if(pBtCoexist->manual_control) + { + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "[Action Manual control]!!"); + CL_PRINTF(cliBuf); + } + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s / %d", "BT stack/ hci ext ver", \ + ((pStackInfo->bProfileNotified)? "Yes":"No"), pStackInfo->hciVersion); + CL_PRINTF(cliBuf); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_HS_OPERATION, &bBtHsOn); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U1_WIFI_DOT11_CHNL, &wifiDot11Chnl); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U1_WIFI_HS_CHNL, &wifiHsChnl); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d(%d)", "Dot11 channel / HsChnl(HsMode)", \ + wifiDot11Chnl, wifiHsChnl, bBtHsOn); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x ", "H2C Wifi inform bt chnl Info", \ + pCoexDm->wifiChnlInfo[0], pCoexDm->wifiChnlInfo[1], + pCoexDm->wifiChnlInfo[2]); + CL_PRINTF(cliBuf); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_S4_WIFI_RSSI, &wifiRssi); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_S4_HS_RSSI, &btHsRssi); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", "Wifi rssi/ HS rssi", \ + wifiRssi, btHsRssi); + CL_PRINTF(cliBuf); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_SCAN, &bScan); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_LINK, &bLink); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_ROAM, &bRoam); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d ", "Wifi bLink/ bRoam/ bScan", \ + bLink, bRoam, bScan); + CL_PRINTF(cliBuf); + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_UNDER_5G, &bWifiUnder5G); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_BW, &wifiBw); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_WIFI_BUSY, &bWifiBusy); + pBtCoexist->btc_get(pBtCoexist, BTC_GET_U4_WIFI_TRAFFIC_DIRECTION, &wifiTrafficDir); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s / %s/ %s ", "Wifi status", \ + (bWifiUnder5G? "5G":"2.4G"), + ((BTC_WIFI_BW_LEGACY==wifiBw)? "Legacy": (((BTC_WIFI_BW_HT40==wifiBw)? "HT40":"HT20"))), + ((!bWifiBusy)? "idle": ((BTC_WIFI_TRAFFIC_TX==wifiTrafficDir)? "uplink":"downlink"))); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = [%s/ %d/ %d] ", "BT [status/ rssi/ retryCnt]", \ + ((pCoexSta->bC2hBtInquiryPage)?("inquiry/page scan"):((BT_8723A_2ANT_BT_STATUS_IDLE == pCoexDm->btStatus)? "idle":( (BT_8723A_2ANT_BT_STATUS_CONNECTED_IDLE == pCoexDm->btStatus)? "connected-idle":"busy"))), + pCoexSta->btRssi, pCoexSta->btRetryCnt); + CL_PRINTF(cliBuf); + + if(pStackInfo->bProfileNotified) + { + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d / %d / %d", "SCO/HID/PAN/A2DP", \ + pStackInfo->bScoExist, pStackInfo->bHidExist, pStackInfo->bPanExist, pStackInfo->bA2dpExist); + CL_PRINTF(cliBuf); + + pBtCoexist->btc_disp_dbg_msg(pBtCoexist, BTC_DBG_DISP_BT_LINK_INFO); + } + + btInfoExt = pCoexSta->btInfoExt; + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s", "BT Info A2DP rate", \ + (btInfoExt&BIT0)? "Basic rate":"EDR rate"); + CL_PRINTF(cliBuf); + + for(i=0; ibtInfoC2hCnt[i]) + { + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x %02x %02x %02x %02x(%d)", GLBtInfoSrc8723a2Ant[i], \ + pCoexSta->btInfoC2h[i][0], pCoexSta->btInfoC2h[i][1], + pCoexSta->btInfoC2h[i][2], pCoexSta->btInfoC2h[i][3], + pCoexSta->btInfoC2h[i][4], pCoexSta->btInfoC2h[i][5], + pCoexSta->btInfoC2h[i][6], pCoexSta->btInfoC2hCnt[i]); + CL_PRINTF(cliBuf); + } + } + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d", "write 0x1af=0x0 num", \ + pCoexSta->c2hHangDetectCnt); + CL_PRINTF(cliBuf); + + // Sw mechanism + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "============[Sw mechanism]============"); + CL_PRINTF(cliBuf); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d", "SM1[ShRf/ LpRA/ LimDig]", \ + pCoexDm->bCurRfRxLpfShrink, pCoexDm->bCurLowPenaltyRa, pCoexDm->limited_dig); + CL_PRINTF(cliBuf); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d(0x%x) ", "SM2[AgcT/ AdcB/ SwDacSwing(lvl)]", \ + pCoexDm->bCurAgcTableEn, pCoexDm->bCurAdcBackOff, pCoexDm->bCurDacSwingOn, pCoexDm->curDacSwingLvl); + CL_PRINTF(cliBuf); + + // Fw mechanism + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "============[Fw mechanism]============"); + CL_PRINTF(cliBuf); + + if(!pBtCoexist->manual_control) + { + psTdmaCase = pCoexDm->curPsTdma; + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x %02x %02x case-%d", "PS TDMA", \ + pCoexDm->psTdmaPara[0], pCoexDm->psTdmaPara[1], + pCoexDm->psTdmaPara[2], pCoexDm->psTdmaPara[3], + pCoexDm->psTdmaPara[4], psTdmaCase); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d ", "DecBtPwr/ IgnWlanAct", \ + pCoexDm->bCurDecBtPwr, pCoexDm->bCurIgnoreWlanAct); + CL_PRINTF(cliBuf); + } + + // Hw setting + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s", "============[Hw setting]============"); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "RF-A, 0x1e initVal", \ + pCoexDm->btRf0x1eBackup); + CL_PRINTF(cliBuf); + + u1Tmp[0] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x778); + u1Tmp[1] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x783); + u1Tmp[2] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x796); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", "0x778/ 0x783/ 0x796", \ + u1Tmp[0], u1Tmp[1], u1Tmp[2]); + CL_PRINTF(cliBuf); + + u4Tmp[0] = pBtCoexist->btc_read_4byte(pBtCoexist, 0x880); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x880", \ + u4Tmp[0]); + CL_PRINTF(cliBuf); + + u1Tmp[0] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x40); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x40", \ + u1Tmp[0]); + CL_PRINTF(cliBuf); + + u4Tmp[0] = pBtCoexist->btc_read_4byte(pBtCoexist, 0x550); + u1Tmp[0] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x522); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", "0x550(bcn ctrl)/0x522", \ + u4Tmp[0], u1Tmp[0]); + CL_PRINTF(cliBuf); + + u4Tmp[0] = pBtCoexist->btc_read_4byte(pBtCoexist, 0x484); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x484(rate adaptive)", \ + u4Tmp[0]); + CL_PRINTF(cliBuf); + + u4Tmp[0] = pBtCoexist->btc_read_4byte(pBtCoexist, 0xc50); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0xc50(dig)", \ + u4Tmp[0]); + CL_PRINTF(cliBuf); + + u4Tmp[0] = pBtCoexist->btc_read_4byte(pBtCoexist, 0xda0); + u4Tmp[1] = pBtCoexist->btc_read_4byte(pBtCoexist, 0xda4); + u4Tmp[2] = pBtCoexist->btc_read_4byte(pBtCoexist, 0xda8); + u4Tmp[3] = pBtCoexist->btc_read_4byte(pBtCoexist, 0xdac); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", "0xda0/0xda4/0xda8/0xdac(FA cnt)", \ + u4Tmp[0], u4Tmp[1], u4Tmp[2], u4Tmp[3]); + CL_PRINTF(cliBuf); + + u4Tmp[0] = pBtCoexist->btc_read_4byte(pBtCoexist, 0x6c0); + u4Tmp[1] = pBtCoexist->btc_read_4byte(pBtCoexist, 0x6c4); + u4Tmp[2] = pBtCoexist->btc_read_4byte(pBtCoexist, 0x6c8); + u1Tmp[0] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x6cc); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", "0x6c0/0x6c4/0x6c8/0x6cc(coexTable)", \ + u4Tmp[0], u4Tmp[1], u4Tmp[2], u1Tmp[0]); + CL_PRINTF(cliBuf); + + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", "0x770 (hp rx[31:16]/tx[15:0])", \ + pCoexSta->highPriorityRx, pCoexSta->highPriorityTx); + CL_PRINTF(cliBuf); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", "0x774(lp rx[31:16]/tx[15:0])", \ + pCoexSta->lowPriorityRx, pCoexSta->lowPriorityTx); + CL_PRINTF(cliBuf); + + // Tx mgnt queue hang or not, 0x41b should = 0xf, ex: 0xd ==>hang + u1Tmp[0] = pBtCoexist->btc_read_1byte(pBtCoexist, 0x41b); + CL_SPRINTF(cliBuf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", "0x41b (mgntQ hang chk == 0xf)", \ + u1Tmp[0]); + CL_PRINTF(cliBuf); + + pBtCoexist->btc_disp_dbg_msg(pBtCoexist, BTC_DBG_DISP_COEX_STATISTICS); +} + + +VOID +EXhalbtc8723a2ant_IpsNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + if(BTC_IPS_ENTER == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], IPS ENTER notify\n")); + halbtc8723a2ant_CoexAllOff(pBtCoexist); + } + else if(BTC_IPS_LEAVE == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], IPS LEAVE notify\n")); + //halbtc8723a2ant_InitCoexDm(pBtCoexist); + } +} + +VOID +EXhalbtc8723a2ant_LpsNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + if(BTC_LPS_ENABLE == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], LPS ENABLE notify\n")); + } + else if(BTC_LPS_DISABLE == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], LPS DISABLE notify\n")); + } +} + +VOID +EXhalbtc8723a2ant_ScanNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + if(BTC_SCAN_START == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], SCAN START notify\n")); + } + else if(BTC_SCAN_FINISH == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], SCAN FINISH notify\n")); + } +} + +VOID +EXhalbtc8723a2ant_ConnectNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + if(BTC_ASSOCIATE_START == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], CONNECT START notify\n")); + } + else if(BTC_ASSOCIATE_FINISH == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], CONNECT FINISH notify\n")); + } +} + +VOID +EXhalbtc8723a2ant_MediaStatusNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + if(BTC_MEDIA_CONNECT == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], MEDIA connect notify\n")); + } + else + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], MEDIA disconnect notify\n")); + } + + halbtc8723a2ant_IndicateWifiChnlBwInfo(pBtCoexist, type); +} + +VOID +EXhalbtc8723a2ant_SpecialPacketNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + if(type == BTC_PACKET_DHCP) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], DHCP Packet notify\n")); + } +} + +VOID +EXhalbtc8723a2ant_BtInfoNotify( + IN PBTC_COEXIST pBtCoexist, + IN pu1Byte tmpBuf, + IN u1Byte length + ) +{ + u1Byte btInfo=0; + u1Byte i, rspSource=0; + BOOLEAN bBtBusy=FALSE, limited_dig=FALSE; + BOOLEAN bWifiConnected=FALSE, bBtHsOn=FALSE; + + pCoexSta->bC2hBtInfoReqSent = FALSE; + + rspSource = BT_INFO_SRC_8723A_2ANT_BT_RSP; + pCoexSta->btInfoC2hCnt[rspSource]++; + + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], Bt info[%d], length=%d, hex data=[", rspSource, length)); + for(i=0; ibtInfoC2h[rspSource][i] = tmpBuf[i]; + if(i == 0) + btInfo = tmpBuf[i]; + if(i == length-1) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("0x%02x]\n", tmpBuf[i])); + } + else + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("0x%02x, ", tmpBuf[i])); + } + } + + if(BT_INFO_SRC_8723A_2ANT_WIFI_FW != rspSource) + { + pCoexSta->btRetryCnt = + pCoexSta->btInfoC2h[rspSource][1]; + + pCoexSta->btRssi = + pCoexSta->btInfoC2h[rspSource][2]*2+10; + + pCoexSta->btInfoExt = + pCoexSta->btInfoC2h[rspSource][3]; + } + + pBtCoexist->btc_get(pBtCoexist, BTC_GET_BL_HS_OPERATION, &bBtHsOn); + // check BIT2 first ==> check if bt is under inquiry or page scan + if(btInfo & BT_INFO_8723A_2ANT_B_INQ_PAGE) + { + pCoexSta->bC2hBtInquiryPage = true; + } + else + { + pCoexSta->bC2hBtInquiryPage = FALSE; + } +} + +VOID +EXhalbtc8723a2ant_StackOperationNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ) +{ + if(BTC_STACK_OP_INQ_PAGE_PAIR_START == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], StackOP Inquiry/page/pair start notify\n")); + pCoexSta->bHoldForStackOperation = true; + pCoexSta->bHoldPeriodCnt = 1; + halbtc8723a2ant_BtInquiryPage(pBtCoexist); + } + else if(BTC_STACK_OP_INQ_PAGE_PAIR_FINISH == type) + { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], StackOP Inquiry/page/pair finish notify\n")); + pCoexSta->bHoldForStackOperation = FALSE; + } +} + +VOID +EXhalbtc8723a2ant_HaltNotify( + IN PBTC_COEXIST pBtCoexist + ) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], Halt notify\n")); + + halbtc8723a2ant_IgnoreWlanAct(pBtCoexist, FORCE_EXEC, true); + EXhalbtc8723a2ant_MediaStatusNotify(pBtCoexist, BTC_MEDIA_DISCONNECT); +} + +VOID +EXhalbtc8723a2ant_Periodical( + IN PBTC_COEXIST pBtCoexist + ) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, ("[BTCoex], 2Ant Periodical!!\n")); + + // work around for c2h hang + wa_halbtc8723a2ant_MonitorC2h(pBtCoexist); + + halbtc8723a2ant_QueryBtInfo(pBtCoexist); + halbtc8723a2ant_MonitorBtCtr(pBtCoexist); + halbtc8723a2ant_MonitorBtEnableDisable(pBtCoexist); + + halbtc8723a2ant_RunCoexistMechanism(pBtCoexist); +} + + +#endif + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/halbtc8723a2ant.h +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/halbtc8723a2ant.h @@ -0,0 +1,179 @@ +//=========================================== +// The following is for 8723A 2Ant BT Co-exist definition +//=========================================== +#define BT_INFO_8723A_2ANT_B_FTP BIT7 +#define BT_INFO_8723A_2ANT_B_A2DP BIT6 +#define BT_INFO_8723A_2ANT_B_HID BIT5 +#define BT_INFO_8723A_2ANT_B_SCO_BUSY BIT4 +#define BT_INFO_8723A_2ANT_B_ACL_BUSY BIT3 +#define BT_INFO_8723A_2ANT_B_INQ_PAGE BIT2 +#define BT_INFO_8723A_2ANT_B_SCO_ESCO BIT1 +#define BT_INFO_8723A_2ANT_B_CONNECTION BIT0 + +#define BTC_RSSI_COEX_THRESH_TOL_8723A_2ANT 2 + +typedef enum _BT_INFO_SRC_8723A_2ANT{ + BT_INFO_SRC_8723A_2ANT_WIFI_FW = 0x0, + BT_INFO_SRC_8723A_2ANT_BT_RSP = 0x1, + BT_INFO_SRC_8723A_2ANT_BT_ACTIVE_SEND = 0x2, + BT_INFO_SRC_8723A_2ANT_MAX +}BT_INFO_SRC_8723A_2ANT,*PBT_INFO_SRC_8723A_2ANT; + +typedef enum _BT_8723A_2ANT_BT_STATUS{ + BT_8723A_2ANT_BT_STATUS_IDLE = 0x0, + BT_8723A_2ANT_BT_STATUS_CONNECTED_IDLE = 0x1, + BT_8723A_2ANT_BT_STATUS_NON_IDLE = 0x2, + BT_8723A_2ANT_BT_STATUS_MAX +}BT_8723A_2ANT_BT_STATUS,*PBT_8723A_2ANT_BT_STATUS; + +typedef enum _BT_8723A_2ANT_COEX_ALGO{ + BT_8723A_2ANT_COEX_ALGO_UNDEFINED = 0x0, + BT_8723A_2ANT_COEX_ALGO_SCO = 0x1, + BT_8723A_2ANT_COEX_ALGO_HID = 0x2, + BT_8723A_2ANT_COEX_ALGO_A2DP = 0x3, + BT_8723A_2ANT_COEX_ALGO_PANEDR = 0x4, + BT_8723A_2ANT_COEX_ALGO_PANHS = 0x5, + BT_8723A_2ANT_COEX_ALGO_PANEDR_A2DP = 0x6, + BT_8723A_2ANT_COEX_ALGO_PANEDR_HID = 0x7, + BT_8723A_2ANT_COEX_ALGO_HID_A2DP_PANEDR = 0x8, + BT_8723A_2ANT_COEX_ALGO_HID_A2DP = 0x9, + BT_8723A_2ANT_COEX_ALGO_MAX +}BT_8723A_2ANT_COEX_ALGO,*PBT_8723A_2ANT_COEX_ALGO; + +typedef struct _COEX_DM_8723A_2ANT{ + // fw mechanism + BOOLEAN bPreDecBtPwr; + BOOLEAN bCurDecBtPwr; + //BOOLEAN bPreBtLnaConstrain; + //BOOLEAN bCurBtLnaConstrain; + //u1Byte bPreBtPsdMode; + //u1Byte bCurBtPsdMode; + u1Byte preFwDacSwingLvl; + u1Byte curFwDacSwingLvl; + BOOLEAN bCurIgnoreWlanAct; + BOOLEAN bPreIgnoreWlanAct; + u1Byte prePsTdma; + u1Byte curPsTdma; + u1Byte psTdmaPara[5]; + u1Byte psTdmaDuAdjType; + BOOLEAN bResetTdmaAdjust; + BOOLEAN bPrePsTdmaOn; + BOOLEAN bCurPsTdmaOn; + //BOOLEAN bPreBtAutoReport; + //BOOLEAN bCurBtAutoReport; + + // sw mechanism + BOOLEAN bPreRfRxLpfShrink; + BOOLEAN bCurRfRxLpfShrink; + u4Byte btRf0x1eBackup; + BOOLEAN bPreLowPenaltyRa; + BOOLEAN bCurLowPenaltyRa; + BOOLEAN bPreDacSwingOn; + u4Byte preDacSwingLvl; + BOOLEAN bCurDacSwingOn; + u4Byte curDacSwingLvl; + BOOLEAN bPreAdcBackOff; + BOOLEAN bCurAdcBackOff; + BOOLEAN bPreAgcTableEn; + BOOLEAN bCurAgcTableEn; + u4Byte preVal0x6c0; + u4Byte curVal0x6c0; + u4Byte preVal0x6c8; + u4Byte curVal0x6c8; + u1Byte preVal0x6cc; + u1Byte curVal0x6cc; + BOOLEAN limited_dig; + + // algorithm related + u1Byte preAlgorithm; + u1Byte curAlgorithm; + u1Byte btStatus; + u1Byte wifiChnlInfo[3]; +} COEX_DM_8723A_2ANT, *PCOEX_DM_8723A_2ANT; + +typedef struct _COEX_STA_8723A_2ANT{ + u4Byte highPriorityTx; + u4Byte highPriorityRx; + u4Byte lowPriorityTx; + u4Byte lowPriorityRx; + u1Byte btRssi; + u1Byte preBtRssiState; + u1Byte preBtRssiState1; + u1Byte preWifiRssiState[4]; + BOOLEAN bC2hBtInfoReqSent; + u1Byte btInfoC2h[BT_INFO_SRC_8723A_2ANT_MAX][10]; + u4Byte btInfoC2hCnt[BT_INFO_SRC_8723A_2ANT_MAX]; + BOOLEAN bC2hBtInquiryPage; + u1Byte btRetryCnt; + u1Byte btInfoExt; + BOOLEAN bHoldForStackOperation; + u1Byte bHoldPeriodCnt; + // this is for c2h hang work-around + u4Byte c2hHangDetectCnt; +}COEX_STA_8723A_2ANT, *PCOEX_STA_8723A_2ANT; + +//=========================================== +// The following is interface which will notify coex module. +//=========================================== +VOID +EXhalbtc8723a2ant_InitHwConfig( + IN PBTC_COEXIST pBtCoexist + ); +VOID +EXhalbtc8723a2ant_InitCoexDm( + IN PBTC_COEXIST pBtCoexist + ); +VOID +EXhalbtc8723a2ant_IpsNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8723a2ant_LpsNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8723a2ant_ScanNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8723a2ant_ConnectNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8723a2ant_MediaStatusNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8723a2ant_SpecialPacketNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8723a2ant_HaltNotify( + IN PBTC_COEXIST pBtCoexist + ); +VOID +EXhalbtc8723a2ant_Periodical( + IN PBTC_COEXIST pBtCoexist + ); +VOID +EXhalbtc8723a2ant_BtInfoNotify( + IN PBTC_COEXIST pBtCoexist, + IN pu1Byte tmpBuf, + IN u1Byte length + ); +VOID +EXhalbtc8723a2ant_StackOperationNotify( + IN PBTC_COEXIST pBtCoexist, + IN u1Byte type + ); +VOID +EXhalbtc8723a2ant_DisplayCoexInfo( + IN PBTC_COEXIST pBtCoexist + ); + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/halbtc8723b1ant.c +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/halbtc8723b1ant.c @@ -0,0 +1,4104 @@ +/*************************************************************** + * Description: + * + * This file is for RTL8723B Co-exist mechanism + * + * History + * 2012/11/15 Cosa first check in. + * + ***************************************************************/ + + +/*************************************************************** + * include files + ***************************************************************/ +#include "halbt_precomp.h" +#if 1 +/*************************************************************** + * Global variables, these are static variables + ***************************************************************/ +static struct coex_dm_8723b_1ant glcoex_dm_8723b_1ant; +static struct coex_dm_8723b_1ant *coex_dm = &glcoex_dm_8723b_1ant; +static struct coex_sta_8723b_1ant glcoex_sta_8723b_1ant; +static struct coex_sta_8723b_1ant *coex_sta = &glcoex_sta_8723b_1ant; + +const char *const GLBtInfoSrc8723b1Ant[]={ + "BT Info[wifi fw]", + "BT Info[bt rsp]", + "BT Info[bt auto report]", +}; + +u32 glcoex_ver_date_8723b_1ant = 20130906; +u32 glcoex_ver_8723b_1ant = 0x45; + +/*************************************************************** + * local function proto type if needed + ***************************************************************/ +/*************************************************************** + * local function start with halbtc8723b1ant_ + ***************************************************************/ +u8 halbtc8723b1ant_bt_rssi_state(u8 level_num, u8 rssi_thresh, u8 rssi_thresh1) +{ + s32 bt_rssi=0; + u8 bt_rssi_state = coex_sta->pre_bt_rssi_state; + + bt_rssi = coex_sta->bt_rssi; + + if (level_num == 2){ + if ((coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_LOW) || + (coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_STAY_LOW)) { + if (bt_rssi >= rssi_thresh + + BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT) { + bt_rssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "switch to High\n"); + } else { + bt_rssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "stay at Low\n"); + } + } else { + if (bt_rssi < rssi_thresh) { + bt_rssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "switch to Low\n"); + } else { + bt_rssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "stay at High\n"); + } + } + } else if (level_num == 3) { + if (rssi_thresh > rssi_thresh1) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi thresh error!!\n"); + return coex_sta->pre_bt_rssi_state; + } + + if ((coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_LOW) || + (coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_STAY_LOW)) { + if (bt_rssi >= rssi_thresh + + BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT) { + bt_rssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "switch to Medium\n"); + } else { + bt_rssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "stay at Low\n"); + } + } else if ((coex_sta->pre_bt_rssi_state == + BTC_RSSI_STATE_MEDIUM) || + (coex_sta->pre_bt_rssi_state == + BTC_RSSI_STATE_STAY_MEDIUM)) { + if (bt_rssi >= rssi_thresh1 + + BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT) { + bt_rssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "switch to High\n"); + } else if (bt_rssi < rssi_thresh) { + bt_rssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "switch to Low\n"); + } else { + bt_rssi_state = BTC_RSSI_STATE_STAY_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "stay at Medium\n"); + } + } else { + if (bt_rssi < rssi_thresh1) { + bt_rssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "switch to Medium\n"); + } else { + bt_rssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "stay at High\n"); + } + } + } + + coex_sta->pre_bt_rssi_state = bt_rssi_state; + + return bt_rssi_state; +} + +u8 halbtc8723b1ant_wifi_rssi_state(struct btc_coexist *btcoexist, + u8 index, u8 level_num, + u8 rssi_thresh, u8 rssi_thresh1) +{ + s32 wifi_rssi=0; + u8 wifi_rssi_state = coex_sta->pre_wifi_rssi_state[index]; + + btcoexist->btc_get(btcoexist, + BTC_GET_S4_WIFI_RSSI, &wifi_rssi); + + if (level_num == 2) { + if ((coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_LOW) || + (coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_STAY_LOW)) { + if (wifi_rssi >= rssi_thresh + + BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT) { + wifi_rssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "switch to High\n"); + } else { + wifi_rssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "stay at Low\n"); + } + } else { + if (wifi_rssi < rssi_thresh) { + wifi_rssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "switch to Low\n"); + } else { + wifi_rssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "stay at High\n"); + } + } + } else if (level_num == 3) { + if (rssi_thresh > rssi_thresh1) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI thresh error!!\n"); + return coex_sta->pre_wifi_rssi_state[index]; + } + + if ((coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_LOW) || + (coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_STAY_LOW)) { + if (wifi_rssi >= rssi_thresh + + BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT) { + wifi_rssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "switch to Medium\n"); + } else { + wifi_rssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "stay at Low\n"); + } + } else if ((coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_MEDIUM) || + (coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_STAY_MEDIUM)) { + if (wifi_rssi >= rssi_thresh1 + + BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT) { + wifi_rssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "switch to High\n"); + } else if (wifi_rssi < rssi_thresh) { + wifi_rssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "switch to Low\n"); + } else { + wifi_rssi_state = BTC_RSSI_STATE_STAY_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "stay at Medium\n"); + } + } else { + if (wifi_rssi < rssi_thresh1) { + wifi_rssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "switch to Medium\n"); + } else { + wifi_rssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "stay at High\n"); + } + } + } + + coex_sta->pre_wifi_rssi_state[index] = wifi_rssi_state; + + return wifi_rssi_state; +} + +void halbtc8723b1ant_updatera_mask(struct btc_coexist *btcoexist, + bool force_exec, u32 dis_rate_mask) +{ + coex_dm->curra_mask = dis_rate_mask; + + if (force_exec || (coex_dm->prera_mask != coex_dm->curra_mask)) + btcoexist->btc_set(btcoexist, BTC_SET_ACT_UPDATE_ra_mask, + &coex_dm->curra_mask); + + coex_dm->prera_mask = coex_dm->curra_mask; +} + +void halbtc8723b1ant_auto_rate_fallback_retry(struct btc_coexist *btcoexist, + bool force_exec, u8 type) +{ + bool wifi_under_bmode = false; + + coex_dm->cur_arfr_type = type; + + if (force_exec || (coex_dm->pre_arfr_type != coex_dm->cur_arfr_type)) { + switch (coex_dm->cur_arfr_type) { + case 0: /* normal mode */ + btcoexist->btc_write_4byte(btcoexist, 0x430, + coex_dm->backup_arfr_cnt1); + btcoexist->btc_write_4byte(btcoexist, 0x434, + coex_dm->backup_arfr_cnt2); + break; + case 1: + btcoexist->btc_get(btcoexist, + BTC_GET_BL_WIFI_UNDER_B_MODE, + &wifi_under_bmode); + if (wifi_under_bmode) { + btcoexist->btc_write_4byte(btcoexist, + 0x430, 0x0); + btcoexist->btc_write_4byte(btcoexist, + 0x434, 0x01010101); + } else { + btcoexist->btc_write_4byte(btcoexist, + 0x430, 0x0); + btcoexist->btc_write_4byte(btcoexist, + 0x434, 0x04030201); + } + break; + default: + break; + } + } + + coex_dm->pre_arfr_type = coex_dm->cur_arfr_type; +} + +void halbtc8723b1ant_retry_limit(struct btc_coexist *btcoexist, + bool force_exec, u8 type) +{ + coex_dm->cur_retry_limit_type = type; + + if (force_exec || (coex_dm->pre_retry_limit_type != + coex_dm->cur_retry_limit_type)) { + + switch (coex_dm->cur_retry_limit_type) { + case 0: /* normal mode */ + btcoexist->btc_write_2byte(btcoexist, 0x42a, + coex_dm->backup_retry_limit); + break; + case 1: /* retry limit=8 */ + btcoexist->btc_write_2byte(btcoexist, 0x42a, 0x0808); + break; + default: + break; + } + } + + coex_dm->pre_retry_limit_type = coex_dm->cur_retry_limit_type; +} + +void halbtc8723b1ant_ampdu_maxtime(struct btc_coexist *btcoexist, + bool force_exec, u8 type) +{ + coex_dm->cur_ampdu_time_type = type; + + if (force_exec || (coex_dm->pre_ampdu_time_type != + coex_dm->cur_ampdu_time_type)) { + switch (coex_dm->cur_ampdu_time_type) { + case 0: /* normal mode */ + btcoexist->btc_write_1byte(btcoexist, 0x456, + coex_dm->backup_ampdu_max_time); + break; + case 1: /* AMPDU timw = 0x38 * 32us */ + btcoexist->btc_write_1byte(btcoexist, + 0x456, 0x38); + break; + default: + break; + } + } + + coex_dm->pre_ampdu_time_type = coex_dm->cur_ampdu_time_type; +} + +void halbtc8723b1ant_limited_tx(struct btc_coexist *btcoexist, + bool force_exec, u8 ra_maskType, u8 arfr_type, + u8 retry_limit_type, u8 ampdu_time_type) +{ + switch (ra_maskType) { + case 0: /* normal mode */ + halbtc8723b1ant_updatera_mask(btcoexist, force_exec, 0x0); + break; + case 1: /* disable cck 1/2 */ + halbtc8723b1ant_updatera_mask(btcoexist, force_exec, + 0x00000003); + break; + /* disable cck 1/2/5.5, ofdm 6/9/12/18/24, mcs 0/1/2/3/4*/ + case 2: + halbtc8723b1ant_updatera_mask(btcoexist, force_exec, + 0x0001f1f7); + break; + default: + break; + } + + halbtc8723b1ant_auto_rate_fallback_retry(btcoexist, force_exec, + arfr_type); + halbtc8723b1ant_retry_limit(btcoexist, force_exec, retry_limit_type); + halbtc8723b1ant_ampdu_maxtime(btcoexist, force_exec, ampdu_time_type); +} + +void halbtc8723b1ant_limited_rx(struct btc_coexist *btcoexist, + bool force_exec, bool rej_ap_agg_pkt, + bool b_bt_ctrl_agg_buf_size, u8 agg_buf_size) +{ + bool reject_rx_agg = rej_ap_agg_pkt; + bool bt_ctrl_rx_agg_size = b_bt_ctrl_agg_buf_size; + u8 rxAggSize = agg_buf_size; + + /********************************************** + * Rx Aggregation related setting + **********************************************/ + btcoexist->btc_set(btcoexist, BTC_SET_BL_TO_REJ_AP_AGG_PKT, + &reject_rx_agg); + /* decide BT control aggregation buf size or not */ + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_CTRL_AGG_SIZE, + &bt_ctrl_rx_agg_size); + /* aggregation buf size, only work + *when BT control Rx aggregation size. */ + btcoexist->btc_set(btcoexist, BTC_SET_U1_AGG_BUF_SIZE, &rxAggSize); + /* real update aggregation setting */ + btcoexist->btc_set(btcoexist, BTC_SET_ACT_AGGREGATE_CTRL, NULL); +} + +void halbtc8723b1ant_monitor_bt_ctr(struct btc_coexist *btcoexist) +{ + u32 reg_hp_txrx, reg_lp_txrx, u32tmp; + u32 reg_hp_tx = 0, reg_hp_rx = 0; + u32 reg_lp_tx = 0, reg_lp_rx = 0; + + reg_hp_txrx = 0x770; + reg_lp_txrx = 0x774; + + u32tmp = btcoexist->btc_read_4byte(btcoexist, reg_hp_txrx); + reg_hp_tx = u32tmp & MASKLWORD; + reg_hp_rx = (u32tmp & MASKHWORD) >> 16; + + u32tmp = btcoexist->btc_read_4byte(btcoexist, reg_lp_txrx); + reg_lp_tx = u32tmp & MASKLWORD; + reg_lp_rx = (u32tmp & MASKHWORD) >> 16; + + coex_sta->high_priority_tx = reg_hp_tx; + coex_sta->high_priority_rx = reg_hp_rx; + coex_sta->low_priority_tx = reg_lp_tx; + coex_sta->low_priority_rx = reg_lp_rx; + + /* reset counter */ + btcoexist->btc_write_1byte(btcoexist, 0x76e, 0xc); +} + +void halbtc8723b1ant_query_bt_info(struct btc_coexist *btcoexist) +{ + u8 h2c_parameter[1] = {0}; + + coex_sta->c2h_bt_info_req_sent = true; + + h2c_parameter[0] |= BIT0; /* trigger*/ + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], Query Bt Info, FW write 0x61=0x%x\n", + h2c_parameter[0]); + + btcoexist->btc_fill_h2c(btcoexist, 0x61, 1, h2c_parameter); +} + +bool halbtc8723b1ant_is_wifi_status_changed(struct btc_coexist *btcoexist) +{ + static bool pre_wifi_busy = false; + static bool pre_under_4way = false, pre_bt_hs_on = false; + bool wifi_busy = false, under_4way = false, bt_hs_on = false; + bool wifi_connected = false; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_4_WAY_PROGRESS, + &under_4way); + + if (wifi_connected) { + if (wifi_busy != pre_wifi_busy) { + pre_wifi_busy = wifi_busy; + return true; + } + if (under_4way != pre_under_4way) { + pre_under_4way = under_4way; + return true; + } + if (bt_hs_on != pre_bt_hs_on) { + pre_bt_hs_on = bt_hs_on; + return true; + } + } + + return false; +} + +void halbtc8723b1ant_update_bt_link_info(struct btc_coexist *btcoexist) +{ + struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; + bool bt_hs_on = false; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + + bt_link_info->bt_link_exist = coex_sta->bt_link_exist; + bt_link_info->sco_exist = coex_sta->sco_exist; + bt_link_info->a2dp_exist = coex_sta->a2dp_exist; + bt_link_info->pan_exist = coex_sta->pan_exist; + bt_link_info->hid_exist = coex_sta->hid_exist; + + /* work around for HS mode. */ + if (bt_hs_on) { + bt_link_info->pan_exist = true; + bt_link_info->bt_link_exist = true; + } + + /* check if Sco only */ + if (bt_link_info->sco_exist && !bt_link_info->a2dp_exist && + !bt_link_info->pan_exist && !bt_link_info->hid_exist) + bt_link_info->sco_only = true; + else + bt_link_info->sco_only = false; + + /* check if A2dp only */ + if (!bt_link_info->sco_exist && bt_link_info->a2dp_exist && + !bt_link_info->pan_exist && !bt_link_info->hid_exist) + bt_link_info->a2dp_only = true; + else + bt_link_info->a2dp_only = false; + + /* check if Pan only */ + if (!bt_link_info->sco_exist && !bt_link_info->a2dp_exist && + bt_link_info->pan_exist && !bt_link_info->hid_exist) + bt_link_info->pan_only = true; + else + bt_link_info->pan_only = false; + + /* check if Hid only */ + if (!bt_link_info->sco_exist && !bt_link_info->a2dp_exist && + !bt_link_info->pan_exist && bt_link_info->hid_exist ) + bt_link_info->hid_only = true; + else + bt_link_info->hid_only = false; +} + +u8 halbtc8723b1ant_action_algorithm(struct btc_coexist *btcoexist) +{ + struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; + bool bt_hs_on = false; + u8 algorithm = BT_8723B_1ANT_COEX_ALGO_UNDEFINED; + u8 numOfDiffProfile = 0; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + + if (!bt_link_info->bt_link_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], No BT link exists!!!\n"); + return algorithm; + } + + if (bt_link_info->sco_exist) + numOfDiffProfile++; + if (bt_link_info->hid_exist) + numOfDiffProfile++; + if (bt_link_info->pan_exist) + numOfDiffProfile++; + if (bt_link_info->a2dp_exist) + numOfDiffProfile++; + + if (numOfDiffProfile == 1) { + if (bt_link_info->sco_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = SCO only\n"); + algorithm = BT_8723B_1ANT_COEX_ALGO_SCO; + } else { + if (bt_link_info->hid_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = HID only\n"); + algorithm = BT_8723B_1ANT_COEX_ALGO_HID; + } else if (bt_link_info->a2dp_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = A2DP only\n"); + algorithm = BT_8723B_1ANT_COEX_ALGO_A2DP; + } else if (bt_link_info->pan_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = " + "PAN(HS) only\n"); + algorithm = + BT_8723B_1ANT_COEX_ALGO_PANHS; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = " + "PAN(EDR) only\n"); + algorithm = + BT_8723B_1ANT_COEX_ALGO_PANEDR; + } + } + } + } else if (numOfDiffProfile == 2) { + if (bt_link_info->sco_exist) { + if (bt_link_info->hid_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = SCO + HID\n"); + algorithm = BT_8723B_1ANT_COEX_ALGO_HID; + } else if (bt_link_info->a2dp_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = " + "SCO + A2DP ==> SCO\n"); + algorithm = BT_8723B_1ANT_COEX_ALGO_SCO; + } else if (bt_link_info->pan_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile " + "= SCO + PAN(HS)\n"); + algorithm = BT_8723B_1ANT_COEX_ALGO_SCO; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile " + "= SCO + PAN(EDR)\n"); + algorithm = + BT_8723B_1ANT_COEX_ALGO_PANEDR_HID; + } + } + } else { + if (bt_link_info->hid_exist && + bt_link_info->a2dp_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = " + "HID + A2DP\n"); + algorithm = BT_8723B_1ANT_COEX_ALGO_HID_A2DP; + } else if (bt_link_info->hid_exist && + bt_link_info->pan_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = " + "HID + PAN(HS)\n"); + algorithm = + BT_8723B_1ANT_COEX_ALGO_HID_A2DP; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = " + "HID + PAN(EDR)\n"); + algorithm = + BT_8723B_1ANT_COEX_ALGO_PANEDR_HID; + } + } else if (bt_link_info->pan_exist && + bt_link_info->a2dp_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = " + "A2DP + PAN(HS)\n"); + algorithm = + BT_8723B_1ANT_COEX_ALGO_A2DP_PANHS; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = " + "A2DP + PAN(EDR)\n"); + algorithm = + BT_8723B_1ANT_COEX_ALGO_PANEDR_A2DP; + } + } + } + } else if (numOfDiffProfile == 3) { + if (bt_link_info->sco_exist) { + if (bt_link_info->hid_exist && + bt_link_info->a2dp_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = " + "SCO + HID + A2DP ==> HID\n"); + algorithm = BT_8723B_1ANT_COEX_ALGO_HID; + } else if (bt_link_info->hid_exist && + bt_link_info->pan_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = " + "SCO + HID + PAN(HS)\n"); + algorithm = + BT_8723B_1ANT_COEX_ALGO_HID_A2DP; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = " + "SCO + HID + PAN(EDR)\n"); + algorithm = + BT_8723B_1ANT_COEX_ALGO_PANEDR_HID; + } + } else if (bt_link_info->pan_exist && + bt_link_info->a2dp_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = " + "SCO + A2DP + PAN(HS)\n"); + algorithm = BT_8723B_1ANT_COEX_ALGO_SCO; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = SCO + " + "A2DP + PAN(EDR) ==> HID\n"); + algorithm = + BT_8723B_1ANT_COEX_ALGO_PANEDR_HID; + } + } + } else { + if (bt_link_info->hid_exist && + bt_link_info->pan_exist && + bt_link_info->a2dp_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = " + "HID + A2DP + PAN(HS)\n"); + algorithm = + BT_8723B_1ANT_COEX_ALGO_HID_A2DP; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = " + "HID + A2DP + PAN(EDR)\n"); + algorithm = + BT_8723B_1ANT_COEX_ALGO_HID_A2DP_PANEDR; + } + } + } + } else if (numOfDiffProfile >= 3) { + if (bt_link_info->sco_exist) { + if (bt_link_info->hid_exist && + bt_link_info->pan_exist && + bt_link_info->a2dp_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Error!!! " + "BT Profile = SCO + " + "HID + A2DP + PAN(HS)\n"); + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT Profile = " + "SCO + HID + A2DP + PAN(EDR)" + "==>PAN(EDR)+HID\n"); + algorithm = + BT_8723B_1ANT_COEX_ALGO_PANEDR_HID; + } + } + } + } + + return algorithm; +} + +bool halbtc8723b1ant_need_to_dec_bt_pwr(struct btc_coexist *btcoexist) +{ + bool ret = false; + bool bt_hs_on = false, wifi_connected = false; + s32 bt_hs_rssi = 0; + u8 bt_rssi_state; + + if (!btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on)) + return false; + if (!btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected)) + return false; + if (!btcoexist->btc_get(btcoexist, BTC_GET_S4_HS_RSSI, &bt_hs_rssi)) + return false; + + bt_rssi_state = halbtc8723b1ant_bt_rssi_state(2, 35, 0); + + if (wifi_connected) { + if (bt_hs_on) { + if (bt_hs_rssi > 37) + ret = true; + } else { + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) + ret = true; + } + } + + return ret; +} + +void halbtc8723b1ant_set_fw_dac_swing_level(struct btc_coexist *btcoexist, + u8 dac_swing_lvl) +{ + u8 h2c_parameter[1] = {0}; + + /* There are several type of dacswing + * 0x18/ 0x10/ 0xc/ 0x8/ 0x4/ 0x6 */ + h2c_parameter[0] = dac_swing_lvl; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], Set Dac Swing Level=0x%x\n", dac_swing_lvl); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], FW write 0x64=0x%x\n", h2c_parameter[0]); + + btcoexist->btc_fill_h2c(btcoexist, 0x64, 1, h2c_parameter); +} + +void halbtc8723b1ant_set_fw_dec_bt_pwr(struct btc_coexist *btcoexist, + bool dec_bt_pwr) +{ + u8 h2c_parameter[1] = {0}; + + h2c_parameter[0] = 0; + + if (dec_bt_pwr) + h2c_parameter[0] |= BIT1; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], decrease Bt Power : %s, FW write 0x62=0x%x\n", + (dec_bt_pwr? "Yes!!":"No!!"),h2c_parameter[0]); + + btcoexist->btc_fill_h2c(btcoexist, 0x62, 1, h2c_parameter); +} + +void halbtc8723b1ant_dec_bt_pwr(struct btc_coexist *btcoexist, + bool force_exec, bool dec_bt_pwr) +{ + return; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s Dec BT power = %s\n", + (force_exec ? "force to" : ""), (dec_bt_pwr ? "ON" : "OFF")); + coex_dm->cur_dec_bt_pwr = dec_bt_pwr; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], bPreDecBtPwr=%d, bCurDecBtPwr=%d\n", + coex_dm->pre_dec_bt_pwr, coex_dm->cur_dec_bt_pwr); + + if (coex_dm->pre_dec_bt_pwr == coex_dm->cur_dec_bt_pwr) + return; + } + halbtc8723b1ant_set_fw_dec_bt_pwr(btcoexist, coex_dm->cur_dec_bt_pwr); + + coex_dm->pre_dec_bt_pwr = coex_dm->cur_dec_bt_pwr; +} + +void halbtc8723b1ant_set_bt_auto_report(struct btc_coexist *btcoexist, + bool enable_auto_report) +{ + u8 h2c_parameter[1] = {0}; + + h2c_parameter[0] = 0; + + if (enable_auto_report) + h2c_parameter[0] |= BIT0; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], BT FW auto report : %s, FW write 0x68=0x%x\n", + (enable_auto_report? "Enabled!!":"Disabled!!"), + h2c_parameter[0]); + + btcoexist->btc_fill_h2c(btcoexist, 0x68, 1, h2c_parameter); +} + +void halbtc8723b1ant_bt_auto_report(struct btc_coexist *btcoexist, + bool force_exec, bool enable_auto_report) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s BT Auto report = %s\n", + (force_exec? "force to":""), + ((enable_auto_report)? "Enabled":"Disabled")); + coex_dm->cur_bt_auto_report = enable_auto_report; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], bPreBtAutoReport=%d, " + "bCurBtAutoReport=%d\n", + coex_dm->pre_bt_auto_report, + coex_dm->cur_bt_auto_report); + + if (coex_dm->pre_bt_auto_report == coex_dm->cur_bt_auto_report) + return; + } + halbtc8723b1ant_set_bt_auto_report(btcoexist, + coex_dm->cur_bt_auto_report); + + coex_dm->pre_bt_auto_report = coex_dm->cur_bt_auto_report; +} + +void halbtc8723b1ant_fw_dac_swing_lvl(struct btc_coexist *btcoexist, + bool force_exec, u8 fw_dac_swing_lvl) +{ + return; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s set FW Dac Swing level = %d\n", + (force_exec? "force to":""), fw_dac_swing_lvl); + coex_dm->cur_fw_dac_swing_lvl = fw_dac_swing_lvl; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], preFwDacSwingLvl=%d, " + "curFwDacSwingLvl=%d\n", + coex_dm->pre_fw_dac_swing_lvl, + coex_dm->cur_fw_dac_swing_lvl); + + if (coex_dm->pre_fw_dac_swing_lvl == + coex_dm->cur_fw_dac_swing_lvl) + return; + } + + halbtc8723b1ant_set_fw_dac_swing_level(btcoexist, + coex_dm->cur_fw_dac_swing_lvl); + + coex_dm->pre_fw_dac_swing_lvl = coex_dm->cur_fw_dac_swing_lvl; +} + +void halbtc8723b1ant_set_sw_rf_rx_lpf_corner(struct btc_coexist *btcoexist, + bool rx_rf_shrink_on) +{ + if (rx_rf_shrink_on) { + /*Shrink RF Rx LPF corner */ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Shrink RF Rx LPF corner!!\n"); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1e, + 0xfffff, 0xffff7); + } else { + /*Resume RF Rx LPF corner + * After initialized, we can use coex_dm->btRf0x1eBackup */ + if (btcoexist->initilized) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Resume RF Rx LPF corner!!\n"); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, + 0x1e, 0xfffff, + coex_dm->bt_rf0x1e_backup); + } + } +} + +void halbtc8723b1ant_rf_shrink(struct btc_coexist *btcoexist, + bool force_exec, bool rx_rf_shrink_on) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s turn Rx RF Shrink = %s\n", + (force_exec? "force to":""), + ((rx_rf_shrink_on)? "ON":"OFF")); + coex_dm->cur_rf_rx_lpf_shrink = rx_rf_shrink_on; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], bPreRfRxLpfShrink=%d, " + "bCurRfRxLpfShrink=%d\n", + coex_dm->pre_rf_rx_lpf_shrink, + coex_dm->cur_rf_rx_lpf_shrink); + + if (coex_dm->pre_rf_rx_lpf_shrink == + coex_dm->cur_rf_rx_lpf_shrink) + return; + } + halbtc8723b1ant_set_sw_rf_rx_lpf_corner(btcoexist, + coex_dm->cur_rf_rx_lpf_shrink); + + coex_dm->pre_rf_rx_lpf_shrink = coex_dm->cur_rf_rx_lpf_shrink; +} + +void halbtc8723b1ant_set_sw_penalty_tx_rate_adaptive( + struct btc_coexist *btcoexist, + bool low_penalty_ra) +{ + u8 h2c_parameter[6] = {0}; + + h2c_parameter[0] = 0x6; /* opCode, 0x6= Retry_Penalty */ + + if (low_penalty_ra) { + h2c_parameter[1] |= BIT0; + /*normal rate except MCS7/6/5, OFDM54/48/36 */ + h2c_parameter[2] = 0x00; + h2c_parameter[3] = 0xf7; /*MCS7 or OFDM54 */ + h2c_parameter[4] = 0xf8; /*MCS6 or OFDM48 */ + h2c_parameter[5] = 0xf9; /*MCS5 or OFDM36 */ + } + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], set WiFi Low-Penalty Retry: %s", + (low_penalty_ra ? "ON!!" : "OFF!!")); + + btcoexist->btc_fill_h2c(btcoexist, 0x69, 6, h2c_parameter); +} + +void halbtc8723b1ant_low_penalty_ra(struct btc_coexist *btcoexist, + bool force_exec, bool low_penalty_ra) +{ + coex_dm->cur_low_penalty_ra = low_penalty_ra; + + if (!force_exec) { + if (coex_dm->pre_low_penalty_ra == coex_dm->cur_low_penalty_ra) + return; + } + halbtc8723b1ant_set_sw_penalty_tx_rate_adaptive(btcoexist, + coex_dm->cur_low_penalty_ra); + + coex_dm->pre_low_penalty_ra = coex_dm->cur_low_penalty_ra; +} + +void halbtc8723b1ant_set_dac_swing_reg(struct btc_coexist *btcoexist, u32 level) +{ + u8 val = (u8) level; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Write SwDacSwing = 0x%x\n", level); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x883, 0x3e, val); +} + +void halbtc8723b1ant_set_sw_full_time_dac_swing(struct btc_coexist *btcoexist, + bool sw_dac_swing_on, + u32 sw_dac_swing_lvl) +{ + if (sw_dac_swing_on) + halbtc8723b1ant_set_dac_swing_reg(btcoexist, sw_dac_swing_lvl); + else + halbtc8723b1ant_set_dac_swing_reg(btcoexist, 0x18); +} + + +void halbtc8723b1ant_dac_swing(struct btc_coexist *btcoexist, bool force_exec, + bool dac_swing_on, u32 dac_swing_lvl) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s turn DacSwing=%s, dac_swing_lvl=0x%x\n", + (force_exec ? "force to" : ""), (dac_swing_on ? "ON" : "OFF"), + dac_swing_lvl); + + coex_dm->cur_dac_swing_on = dac_swing_on; + coex_dm->cur_dac_swing_lvl = dac_swing_lvl; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], bPreDacSwingOn=%d, preDacSwingLvl=0x%x, " + "bCurDacSwingOn=%d, curDacSwingLvl=0x%x\n", + coex_dm->pre_dac_swing_on, coex_dm->pre_dac_swing_lvl, + coex_dm->cur_dac_swing_on, + coex_dm->cur_dac_swing_lvl); + + if ((coex_dm->pre_dac_swing_on == coex_dm->cur_dac_swing_on) && + (coex_dm->pre_dac_swing_lvl == coex_dm->cur_dac_swing_lvl)) + return; + } + mdelay(30); + halbtc8723b1ant_set_sw_full_time_dac_swing(btcoexist, dac_swing_on, + dac_swing_lvl); + + coex_dm->pre_dac_swing_on = coex_dm->cur_dac_swing_on; + coex_dm->pre_dac_swing_lvl = coex_dm->cur_dac_swing_lvl; +} + +void halbtc8723b1ant_set_adc_backoff(struct btc_coexist *btcoexist, + bool adc_backoff) +{ + if (adc_backoff) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], BB BackOff Level On!\n"); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x8db, 0x60, 0x3); + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], BB BackOff Level Off!\n"); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x8db, 0x60, 0x1); + } +} + +void halbtc8723b1ant_adc_backoff(struct btc_coexist *btcoexist, + bool force_exec, bool adc_backoff) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s turn AdcBackOff = %s\n", + (force_exec ? "force to" : ""), (adc_backoff ? "ON" : "OFF")); + coex_dm->cur_adc_backoff = adc_backoff; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], bPreAdcBackOff=%d, bCurAdcBackOff=%d\n", + coex_dm->pre_adc_backoff, coex_dm->cur_adc_backoff); + + if(coex_dm->pre_adc_backoff == coex_dm->cur_adc_backoff) + return; + } + halbtc8723b1ant_set_adc_backoff(btcoexist, coex_dm->cur_adc_backoff); + + coex_dm->pre_adc_backoff = + coex_dm->cur_adc_backoff; +} + +void halbtc8723b1ant_set_agc_table(struct btc_coexist *btcoexist, + bool adc_table_en) +{ + u8 rssi_adjust_val = 0; + + btcoexist->btc_set_rf_reg(btcoexist, + BTC_RF_A, 0xef, 0xfffff, 0x02000); + if (adc_table_en) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Agc Table On!\n"); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, + 0xfffff, 0x3fa58); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, + 0xfffff, 0x37a58); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, + 0xfffff, 0x2fa58); + rssi_adjust_val = 8; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Agc Table Off!\n"); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, + 0xfffff, 0x39258); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, + 0xfffff, 0x31258); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, + 0xfffff, 0x29258); + } + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0xef, 0xfffff, 0x0); + + /* set rssi_adjust_val for wifi module. */ + btcoexist->btc_set(btcoexist, BTC_SET_U1_RSSI_ADJ_VAL_FOR_AGC_TABLE_ON, + &rssi_adjust_val); +} + + +void halbtc8723b1ant_agc_table(struct btc_coexist *btcoexist, + bool force_exec, bool adc_table_en) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s %s Agc Table\n", + (force_exec ? "force to" : ""), + (adc_table_en ? "Enable" : "Disable")); + coex_dm->cur_agc_table_en = adc_table_en; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], bPreAgcTableEn=%d, bCurAgcTableEn=%d\n", + coex_dm->pre_agc_table_en, + coex_dm->cur_agc_table_en); + + if(coex_dm->pre_agc_table_en == coex_dm->cur_agc_table_en) + return; + } + halbtc8723b1ant_set_agc_table(btcoexist, adc_table_en); + + coex_dm->pre_agc_table_en = coex_dm->cur_agc_table_en; +} + +void halbtc8723b1ant_set_coex_table(struct btc_coexist *btcoexist, + u32 val0x6c0, u32 val0x6c4, + u32 val0x6c8, u8 val0x6cc) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], set coex table, set 0x6c0=0x%x\n", val0x6c0); + btcoexist->btc_write_4byte(btcoexist, 0x6c0, val0x6c0); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], set coex table, set 0x6c4=0x%x\n", val0x6c4); + btcoexist->btc_write_4byte(btcoexist, 0x6c4, val0x6c4); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], set coex table, set 0x6c8=0x%x\n", val0x6c8); + btcoexist->btc_write_4byte(btcoexist, 0x6c8, val0x6c8); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], set coex table, set 0x6cc=0x%x\n", val0x6cc); + btcoexist->btc_write_1byte(btcoexist, 0x6cc, val0x6cc); +} + +void halbtc8723b1ant_coex_table(struct btc_coexist *btcoexist, + bool force_exec, u32 val0x6c0, + u32 val0x6c4, u32 val0x6c8, + u8 val0x6cc) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s write Coex Table 0x6c0=0x%x," + " 0x6c4=0x%x, 0x6cc=0x%x\n", (force_exec ? "force to" : ""), + val0x6c0, val0x6c4, val0x6cc); + coex_dm->cur_val0x6c0 = val0x6c0; + coex_dm->cur_val0x6c4 = val0x6c4; + coex_dm->cur_val0x6c8 = val0x6c8; + coex_dm->cur_val0x6cc = val0x6cc; + + if (!force_exec) { + if ((coex_dm->pre_val0x6c0 == coex_dm->cur_val0x6c0) && + (coex_dm->pre_val0x6c4 == coex_dm->cur_val0x6c4) && + (coex_dm->pre_val0x6c8 == coex_dm->cur_val0x6c8) && + (coex_dm->pre_val0x6cc == coex_dm->cur_val0x6cc)) + return; + } + halbtc8723b1ant_set_coex_table(btcoexist, val0x6c0, val0x6c4, + val0x6c8, val0x6cc); + + coex_dm->pre_val0x6c0 = coex_dm->cur_val0x6c0; + coex_dm->pre_val0x6c4 = coex_dm->cur_val0x6c4; + coex_dm->pre_val0x6c8 = coex_dm->cur_val0x6c8; + coex_dm->pre_val0x6cc = coex_dm->cur_val0x6cc; +} + +void halbtc8723b1ant_coex_table_with_type(struct btc_coexist *btcoexist, + bool force_exec, u8 type) +{ + switch (type) { + case 0: + halbtc8723b1ant_coex_table(btcoexist, force_exec, 0x55555555, + 0x55555555, 0xffffff, 0x3); + break; + case 1: + halbtc8723b1ant_coex_table(btcoexist, force_exec, 0x55555555, + 0x5a5a5a5a, 0xffffff, 0x3); + break; + case 2: + halbtc8723b1ant_coex_table(btcoexist, force_exec, 0x5a5a5a5a, + 0x5a5a5a5a, 0xffffff, 0x3); + break; + case 3: + halbtc8723b1ant_coex_table(btcoexist, force_exec, 0x55555555, + 0xaaaaaaaa, 0xffffff, 0x3); + break; + case 4: + halbtc8723b1ant_coex_table(btcoexist, force_exec, 0x55555555, + 0x5aaa5aaa, 0xffffff, 0x3); + break; + case 5: + halbtc8723b1ant_coex_table(btcoexist, force_exec, 0x5a5a5a5a, + 0xaaaa5a5a, 0xffffff, 0x3); + break; + case 6: + halbtc8723b1ant_coex_table(btcoexist, force_exec, 0x55555555, + 0xaaaa5a5a, 0xffffff, 0x3); + break; + case 7: + halbtc8723b1ant_coex_table(btcoexist, force_exec, 0x5afa5afa, + 0x5afa5afa, 0xffffff, 0x3); + break; + default: + break; + } +} + +void halbtc8723b1ant_SetFwIgnoreWlanAct(struct btc_coexist *btcoexist, + bool enable) +{ + u8 h2c_parameter[1] = {0}; + + if (enable) + h2c_parameter[0] |= BIT0; /* function enable */ + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], set FW for BT Ignore Wlan_Act," + " FW write 0x63=0x%x\n", h2c_parameter[0]); + + btcoexist->btc_fill_h2c(btcoexist, 0x63, 1, h2c_parameter); +} + +void halbtc8723b1ant_ignore_wlan_act(struct btc_coexist *btcoexist, + bool force_exec, bool enable) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s turn Ignore WlanAct %s\n", + (force_exec ? "force to" : ""), (enable ? "ON" : "OFF")); + coex_dm->cur_ignore_wlan_act = enable; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], bPreIgnoreWlanAct = %d, " + "bCurIgnoreWlanAct = %d!!\n", + coex_dm->pre_ignore_wlan_act, + coex_dm->cur_ignore_wlan_act); + + if (coex_dm->pre_ignore_wlan_act == + coex_dm->cur_ignore_wlan_act) + return; + } + halbtc8723b1ant_SetFwIgnoreWlanAct(btcoexist, enable); + + coex_dm->pre_ignore_wlan_act = coex_dm->cur_ignore_wlan_act; +} + +void halbtc8723b1ant_set_fw_ps_tdma(struct btc_coexist *btcoexist, + u8 byte1, u8 byte2, u8 byte3, + u8 byte4, u8 byte5) +{ + u8 h2c_parameter[5] = {0}; + u8 real_byte1 = byte1, real_byte5 = byte5; + bool ap_enable = false; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_AP_MODE_ENABLE, + &ap_enable); + + if (ap_enable) { + if ((byte1 & BIT4) && !(byte1 & BIT5)) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], FW for 1Ant AP mode\n"); + real_byte1 &= ~BIT4; + real_byte1 |= BIT5; + + real_byte5 |= BIT5; + real_byte5 &= ~BIT6; + } + } + + h2c_parameter[0] = real_byte1; + h2c_parameter[1] = byte2; + h2c_parameter[2] = byte3; + h2c_parameter[3] = byte4; + h2c_parameter[4] = real_byte5; + + coex_dm->ps_tdma_para[0] = real_byte1; + coex_dm->ps_tdma_para[1] = byte2; + coex_dm->ps_tdma_para[2] = byte3; + coex_dm->ps_tdma_para[3] = byte4; + coex_dm->ps_tdma_para[4] = real_byte5; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], PS-TDMA H2C cmd =0x%x%08x\n", + h2c_parameter[0], + h2c_parameter[1] << 24 | + h2c_parameter[2] << 16 | + h2c_parameter[3] << 8 | + h2c_parameter[4]); + + btcoexist->btc_fill_h2c(btcoexist, 0x60, 5, h2c_parameter); +} + +void halbtc8723b1ant_SetLpsRpwm(struct btc_coexist *btcoexist, + u8 lps_val, u8 rpwm_val) +{ + u8 lps = lps_val; + u8 rpwm = rpwm_val; + + btcoexist->btc_set(btcoexist, BTC_SET_U1_1ANT_LPS, &lps); + btcoexist->btc_set(btcoexist, BTC_SET_U1_1ANT_RPWM, &rpwm); +} + +void halbtc8723b1ant_LpsRpwm(struct btc_coexist *btcoexist, bool force_exec, + u8 lps_val, u8 rpwm_val) +{ + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s set lps/rpwm=0x%x/0x%x \n", + (force_exec ? "force to" : ""), lps_val, rpwm_val); + coex_dm->cur_lps = lps_val; + coex_dm->cur_rpwm = rpwm_val; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], LPS-RxBeaconMode=0x%x , LPS-RPWM=0x%x!!\n", + coex_dm->cur_lps, coex_dm->cur_rpwm); + + if ((coex_dm->pre_lps == coex_dm->cur_lps) && + (coex_dm->pre_rpwm == coex_dm->cur_rpwm)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], LPS-RPWM_Last=0x%x" + " , LPS-RPWM_Now=0x%x!!\n", + coex_dm->pre_rpwm, coex_dm->cur_rpwm); + + return; + } + } + halbtc8723b1ant_SetLpsRpwm(btcoexist, lps_val, rpwm_val); + + coex_dm->pre_lps = coex_dm->cur_lps; + coex_dm->pre_rpwm = coex_dm->cur_rpwm; +} + +void halbtc8723b1ant_sw_mechanism1(struct btc_coexist *btcoexist, + bool shrink_rx_lpf, bool low_penalty_ra, + bool limited_dig, bool bt_lna_constrain) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex], SM1[ShRf/ LpRA/ LimDig/ btLna] = %d %d %d %d\n", + shrink_rx_lpf, low_penalty_ra, limited_dig, bt_lna_constrain); + + halbtc8723b1ant_low_penalty_ra(btcoexist, NORMAL_EXEC, low_penalty_ra); +} + +void halbtc8723b1ant_sw_mechanism2(struct btc_coexist *btcoexist, + bool agc_table_shift, bool adc_backoff, + bool sw_dac_swing, u32 dac_swing_lvl) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex], SM2[AgcT/ AdcB/ SwDacSwing(lvl)] = %d %d %d\n", + agc_table_shift, adc_backoff, sw_dac_swing); +} + +void halbtc8723b1ant_SetAntPath(struct btc_coexist *btcoexist, + u8 ant_pos_type, bool init_hw_cfg, + bool wifi_off) +{ + struct btc_board_info *board_info = &btcoexist->board_info; + u32 fw_ver = 0, u32tmp = 0; + bool pg_ext_switch = false; + bool use_ext_switch = false; + u8 h2c_parameter[2] = {0}; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_EXT_SWITCH, &pg_ext_switch); + /* [31:16]=fw ver, [15:0]=fw sub ver */ + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_FW_VER, &fw_ver); + + + if ((fw_ver < 0xc0000) || pg_ext_switch) + use_ext_switch = true; + + if (init_hw_cfg){ + /*BT select s0/s1 is controlled by WiFi */ + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x67, 0x20, 0x1); + + /*Force GNT_BT to Normal */ + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x765, 0x18, 0x0); + } else if (wifi_off) { + /*Force GNT_BT to High */ + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x765, 0x18, 0x3); + /*BT select s0/s1 is controlled by BT */ + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x67, 0x20, 0x0); + + /* 0x4c[24:23]=00, Set Antenna control by BT_RFE_CTRL + * BT Vendor 0xac=0xf002 */ + u32tmp = btcoexist->btc_read_4byte(btcoexist, 0x4c); + u32tmp &= ~BIT23; + u32tmp &= ~BIT24; + btcoexist->btc_write_4byte(btcoexist, 0x4c, u32tmp); + } + + if (use_ext_switch) { + if (init_hw_cfg) { + /* 0x4c[23]=0, 0x4c[24]=1 Antenna control by WL/BT */ + u32tmp = btcoexist->btc_read_4byte(btcoexist, 0x4c); + u32tmp &= ~BIT23; + u32tmp |= BIT24; + btcoexist->btc_write_4byte(btcoexist, 0x4c, u32tmp); + + if (board_info->btdm_ant_pos == + BTC_ANTENNA_AT_MAIN_PORT) { + /* Main Ant to BT for IPS case 0x4c[23]=1 */ + btcoexist->btc_write_1byte_bitmask(btcoexist, + 0x64, 0x1, + 0x1); + + /*tell firmware "no antenna inverse"*/ + h2c_parameter[0] = 0; + h2c_parameter[1] = 1; /*ext switch type*/ + btcoexist->btc_fill_h2c(btcoexist, 0x65, 2, + h2c_parameter); + } else { + /*Aux Ant to BT for IPS case 0x4c[23]=1 */ + btcoexist->btc_write_1byte_bitmask(btcoexist, + 0x64, 0x1, + 0x0); + + /*tell firmware "antenna inverse"*/ + h2c_parameter[0] = 1; + h2c_parameter[1] = 1; /*ext switch type*/ + btcoexist->btc_fill_h2c(btcoexist, 0x65, 2, + h2c_parameter); + } + } + + /* fixed internal switch first*/ + /* fixed internal switch S1->WiFi, S0->BT*/ + if (board_info->btdm_ant_pos == BTC_ANTENNA_AT_MAIN_PORT) + btcoexist->btc_write_2byte(btcoexist, 0x948, 0x0); + else/* fixed internal switch S0->WiFi, S1->BT*/ + btcoexist->btc_write_2byte(btcoexist, 0x948, 0x280); + + /* ext switch setting */ + switch (ant_pos_type) { + case BTC_ANT_PATH_WIFI: + if (board_info->btdm_ant_pos == + BTC_ANTENNA_AT_MAIN_PORT) + btcoexist->btc_write_1byte_bitmask(btcoexist, + 0x92c, 0x3, + 0x1); + else + btcoexist->btc_write_1byte_bitmask(btcoexist, + 0x92c, 0x3, + 0x2); + break; + case BTC_ANT_PATH_BT: + if (board_info->btdm_ant_pos == + BTC_ANTENNA_AT_MAIN_PORT) + btcoexist->btc_write_1byte_bitmask(btcoexist, + 0x92c, 0x3, + 0x2); + else + btcoexist->btc_write_1byte_bitmask(btcoexist, + 0x92c, 0x3, + 0x1); + break; + default: + case BTC_ANT_PATH_PTA: + if (board_info->btdm_ant_pos == + BTC_ANTENNA_AT_MAIN_PORT) + btcoexist->btc_write_1byte_bitmask(btcoexist, + 0x92c, 0x3, + 0x1); + else + btcoexist->btc_write_1byte_bitmask(btcoexist, + 0x92c, 0x3, + 0x2); + break; + } + + } else { + if (init_hw_cfg) { + /* 0x4c[23]=1, 0x4c[24]=0 Antenna control by 0x64*/ + u32tmp = btcoexist->btc_read_4byte(btcoexist, 0x4c); + u32tmp |= BIT23; + u32tmp &= ~BIT24; + btcoexist->btc_write_4byte(btcoexist, 0x4c, u32tmp); + + if (board_info->btdm_ant_pos == + BTC_ANTENNA_AT_MAIN_PORT) { + /*Main Ant to WiFi for IPS case 0x4c[23]=1*/ + btcoexist->btc_write_1byte_bitmask(btcoexist, + 0x64, 0x1, + 0x0); + + /*tell firmware "no antenna inverse"*/ + h2c_parameter[0] = 0; + h2c_parameter[1] = 0; /*internal switch type*/ + btcoexist->btc_fill_h2c(btcoexist, 0x65, 2, + h2c_parameter); + } else { + /*Aux Ant to BT for IPS case 0x4c[23]=1*/ + btcoexist->btc_write_1byte_bitmask(btcoexist, + 0x64, 0x1, + 0x1); + + /*tell firmware "antenna inverse"*/ + h2c_parameter[0] = 1; + h2c_parameter[1] = 0; /*internal switch type*/ + btcoexist->btc_fill_h2c(btcoexist, 0x65, 2, + h2c_parameter); + } + } + + /* fixed external switch first*/ + /*Main->WiFi, Aux->BT*/ + if(board_info->btdm_ant_pos == BTC_ANTENNA_AT_MAIN_PORT) + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x92c, + 0x3, 0x1); + else/*Main->BT, Aux->WiFi */ + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x92c, + 0x3, 0x2); + + /* internal switch setting*/ + switch (ant_pos_type) { + case BTC_ANT_PATH_WIFI: + if(board_info->btdm_ant_pos == BTC_ANTENNA_AT_MAIN_PORT) + btcoexist->btc_write_2byte(btcoexist, 0x948, + 0x0); + else + btcoexist->btc_write_2byte(btcoexist, 0x948, + 0x280); + break; + case BTC_ANT_PATH_BT: + if(board_info->btdm_ant_pos == BTC_ANTENNA_AT_MAIN_PORT) + btcoexist->btc_write_2byte(btcoexist, 0x948, + 0x280); + else + btcoexist->btc_write_2byte(btcoexist, 0x948, + 0x0); + break; + default: + case BTC_ANT_PATH_PTA: + if(board_info->btdm_ant_pos == BTC_ANTENNA_AT_MAIN_PORT) + btcoexist->btc_write_2byte(btcoexist, 0x948, + 0x200); + else + btcoexist->btc_write_2byte(btcoexist, 0x948, + 0x80); + break; + } + } +} + +void halbtc8723b1ant_ps_tdma(struct btc_coexist *btcoexist, bool force_exec, + bool turn_on, u8 type) +{ + bool wifi_busy = false; + u8 rssi_adjust_val = 0; + + coex_dm->cur_ps_tdma_on = turn_on; + coex_dm->cur_ps_tdma = type; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + + if (!force_exec) { + if (coex_dm->cur_ps_tdma_on) + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], ******** TDMA(on, %d) *********\n", + coex_dm->cur_ps_tdma); + else + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], ******** TDMA(off, %d) ********\n", + coex_dm->cur_ps_tdma); + + + if ((coex_dm->pre_ps_tdma_on == coex_dm->cur_ps_tdma_on) && + (coex_dm->pre_ps_tdma == coex_dm->cur_ps_tdma)) + return; + } + if (turn_on) { + switch (type) { + default: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x1a, + 0x1a, 0x0, 0x50); + break; + case 1: + if (wifi_busy) + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x51, + 0x3a, 0x03, + 0x10, 0x50); + else + halbtc8723b1ant_set_fw_ps_tdma(btcoexist,0x51, + 0x3a, 0x03, + 0x10, 0x51); + + rssi_adjust_val = 11; + break; + case 2: + if (wifi_busy) + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x51, + 0x2b, 0x03, + 0x10, 0x50); + else + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x51, + 0x2b, 0x03, + 0x10, 0x51); + rssi_adjust_val = 14; + break; + case 3: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x1d, + 0x1d, 0x0, 0x52); + break; + case 4: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x93, 0x15, + 0x3, 0x14, 0x0); + rssi_adjust_val = 17; + break; + case 5: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x61, 0x15, + 0x3, 0x11, 0x10); + break; + case 6: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x61, 0x20, + 0x3, 0x11, 0x13); + break; + case 7: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x13, 0xc, + 0x5, 0x0, 0x0); + break; + case 8: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x93, 0x25, + 0x3, 0x10, 0x0); + break; + case 9: + if(wifi_busy) + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x51, + 0x21, 0x3, + 0x10, 0x50); + else + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x51, + 0x21, 0x3, + 0x10, 0x50); + rssi_adjust_val = 18; + break; + case 10: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x13, 0xa, + 0xa, 0x0, 0x40); + break; + case 11: + if (wifi_busy) + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x51, + 0x15, 0x03, + 0x10, 0x50); + else + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x51, + 0x15, 0x03, + 0x10, 0x50); + rssi_adjust_val = 20; + break; + case 12: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x0a, + 0x0a, 0x0, 0x50); + break; + case 13: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x15, + 0x15, 0x0, 0x50); + break; + case 14: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x21, + 0x3, 0x10, 0x52); + break; + case 15: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x13, 0xa, + 0x3, 0x8, 0x0); + break; + case 16: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x93, 0x15, + 0x3, 0x10, 0x0); + rssi_adjust_val = 18; + break; + case 18: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x93, 0x25, + 0x3, 0x10, 0x0); + rssi_adjust_val = 14; + break; + case 20: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x61, 0x35, + 0x03, 0x11, 0x10); + break; + case 21: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x61, 0x15, + 0x03, 0x11, 0x10); + break; + case 22: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x61, 0x25, + 0x03, 0x11, 0x10); + break; + case 23: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x25, + 0x3, 0x31, 0x18); + rssi_adjust_val = 22; + break; + case 24: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x15, + 0x3, 0x31, 0x18); + rssi_adjust_val = 22; + break; + case 25: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0xe3, 0xa, + 0x3, 0x31, 0x18); + rssi_adjust_val = 22; + break; + case 26: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0xe3, 0xa, + 0x3, 0x31, 0x18); + rssi_adjust_val = 22; + break; + case 27: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x25, + 0x3, 0x31, 0x98); + rssi_adjust_val = 22; + break; + case 28: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x69, 0x25, + 0x3, 0x31, 0x0); + break; + case 29: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0xab, 0x1a, + 0x1a, 0x1, 0x10); + break; + case 30: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x51, 0x14, + 0x3, 0x10, 0x50); + break; + case 31: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0xd3, 0x1a, + 0x1a, 0, 0x58); + break; + case 32: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x61, 0xa, + 0x3, 0x10, 0x0); + break; + case 33: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0xa3, 0x25, + 0x3, 0x30, 0x90); + break; + case 34: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x53, 0x1a, + 0x1a, 0x0, 0x10); + break; + case 35: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x63, 0x1a, + 0x1a, 0x0, 0x10); + break; + case 36: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0xd3, 0x12, + 0x3, 0x14, 0x50); + break; + /* SoftAP only with no sta associated,BT disable , + * TDMA mode for power saving + * here softap mode screen off will cost 70-80mA for phone */ + case 40: + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x23, 0x18, + 0x00, 0x10, 0x24); + break; + } + } else { + switch (type) { + case 8: /*PTA Control */ + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x8, 0x0, + 0x0, 0x0, 0x0); + halbtc8723b1ant_SetAntPath(btcoexist, BTC_ANT_PATH_PTA, + false, false); + break; + case 0: + default: /*Software control, Antenna at BT side */ + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x0, 0x0, + 0x0, 0x0, 0x0); + halbtc8723b1ant_SetAntPath(btcoexist, BTC_ANT_PATH_BT, + false, false); + break; + case 9: /*Software control, Antenna at WiFi side */ + halbtc8723b1ant_set_fw_ps_tdma(btcoexist, 0x0, 0x0, + 0x0, 0x0, 0x0); + halbtc8723b1ant_SetAntPath(btcoexist, BTC_ANT_PATH_WIFI, + false, false); + break; + } + } + rssi_adjust_val = 0; + btcoexist->btc_set(btcoexist, + BTC_SET_U1_RSSI_ADJ_VAL_FOR_1ANT_COEX_TYPE, + &rssi_adjust_val); + + /* update pre state */ + coex_dm->pre_ps_tdma_on = coex_dm->cur_ps_tdma_on; + coex_dm->pre_ps_tdma = coex_dm->cur_ps_tdma; +} + +void halbtc8723b1ant_coex_alloff(struct btc_coexist *btcoexist) +{ + /* fw all off */ + halbtc8723b1ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + /* sw all off */ + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, false, 0x18); + + + /* hw all off */ + halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0); +} + +bool halbtc8723b1ant_is_common_action(struct btc_coexist *btcoexist) +{ + bool commom = false, wifi_connected = false; + bool wifi_busy = false; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + + if (!wifi_connected && + BT_8723B_1ANT_BT_STATUS_NON_CONNECTED_IDLE == coex_dm->bt_status) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Wifi non connected-idle + " + "BT non connected-idle!!\n"); + halbtc8723b1ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + + commom = true; + } else if (wifi_connected && + (BT_8723B_1ANT_BT_STATUS_NON_CONNECTED_IDLE == + coex_dm->bt_status)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Wifi connected + " + "BT non connected-idle!!\n"); + halbtc8723b1ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + + commom = true; + } else if (!wifi_connected && + (BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE == + coex_dm->bt_status)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Wifi non connected-idle + " + "BT connected-idle!!\n"); + halbtc8723b1ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + + commom = true; + } else if (wifi_connected && + (BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE == + coex_dm->bt_status)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Wifi connected + BT connected-idle!!\n"); + halbtc8723b1ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + + commom = true; + } else if (!wifi_connected && + (BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE != + coex_dm->bt_status)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + ("[BTCoex], Wifi non connected-idle + BT Busy!!\n")); + halbtc8723b1ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + + commom = true; + } else { + if (wifi_busy) + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Wifi Connected-Busy" + " + BT Busy!!\n"); + else + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Wifi Connected-Idle" + " + BT Busy!!\n"); + + commom = false; + } + + return commom; +} + + +void halbtc8723b1ant_tdma_duration_adjust_for_acl(struct btc_coexist *btcoexist, + u8 wifi_status) +{ + static s32 up, dn, m, n, wait_count; + /* 0: no change, +1: increase WiFi duration, + * -1: decrease WiFi duration */ + s32 result; + u8 retry_count = 0, bt_info_ext; + static bool pre_wifi_busy = false; + bool wifi_busy = false; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], TdmaDurationAdjustForAcl()\n"); + + if (BT_8723B_1ANT_WIFI_STATUS_CONNECTED_BUSY == wifi_status) + wifi_busy = true; + else + wifi_busy = false; + + if ((BT_8723B_1ANT_WIFI_STATUS_NON_CONNECTED_ASSO_AUTH_SCAN == + wifi_status) || + (BT_8723B_1ANT_WIFI_STATUS_CONNECTED_SCAN == wifi_status) || + (BT_8723B_1ANT_WIFI_STATUS_CONNECTED_SPECIAL_PKT == wifi_status)) { + if (coex_dm->cur_ps_tdma != 1 && coex_dm->cur_ps_tdma != 2 && + coex_dm->cur_ps_tdma != 3 && coex_dm->cur_ps_tdma != 9) { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 9); + coex_dm->ps_tdma_du_adj_type = 9; + + up = 0; + dn = 0; + m = 1; + n = 3; + result = 0; + wait_count = 0; + } + return; + } + + if (!coex_dm->auto_tdma_adjust) { + coex_dm->auto_tdma_adjust = true; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], first run TdmaDurationAdjust()!!\n"); + + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 2); + coex_dm->ps_tdma_du_adj_type = 2; + + up = 0; + dn = 0; + m = 1; + n = 3; + result = 0; + wait_count = 0; + } else { + /*accquire the BT TRx retry count from BT_Info byte2 */ + retry_count = coex_sta->bt_retry_cnt; + bt_info_ext = coex_sta->bt_info_ext; + result = 0; + wait_count++; + /* no retry in the last 2-second duration */ + if (retry_count == 0) { + up++; + dn--; + + if (dn <= 0) + dn = 0; + + if (up >= n) { + wait_count = 0; + n = 3; + up = 0; + dn = 0; + result = 1; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], Increase wifi " + "duration!!\n"); + } + } else if (retry_count <= 3) { + up--; + dn++; + + if (up <= 0) + up = 0; + + if (dn == 2) { + if (wait_count <= 2) + m++; + else + m = 1; + + if (m >= 20) + m = 20; + + n = 3 * m; + up = 0; + dn = 0; + wait_count = 0; + result = -1; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], Decrease wifi duration" + " for retryCounter<3!!\n"); + } + } else { + if (wait_count == 1) + m++; + else + m = 1; + + if (m >= 20) + m = 20; + + n = 3 * m; + up = 0; + dn = 0; + wait_count = 0; + result = -1; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], Decrease wifi duration" + " for retryCounter>3!!\n"); + } + + if (result == -1) { + if ((BT_INFO_8723B_1ANT_A2DP_BASIC_RATE(bt_info_ext)) && + ((coex_dm->cur_ps_tdma == 1) || + (coex_dm->cur_ps_tdma == 2))) { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 9); + coex_dm->ps_tdma_du_adj_type = 9; + } else if (coex_dm->cur_ps_tdma == 1) { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = 2; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 9); + coex_dm->ps_tdma_du_adj_type = 9; + } else if (coex_dm->cur_ps_tdma == 9) { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = 11; + } + } else if(result == 1) { + if ((BT_INFO_8723B_1ANT_A2DP_BASIC_RATE(bt_info_ext)) && + ((coex_dm->cur_ps_tdma == 1) || + (coex_dm->cur_ps_tdma == 2))) { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 9); + coex_dm->ps_tdma_du_adj_type = 9; + } else if (coex_dm->cur_ps_tdma == 11) { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 9); + coex_dm->ps_tdma_du_adj_type = 9; + } else if (coex_dm->cur_ps_tdma == 9) { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = 2; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 1); + coex_dm->ps_tdma_du_adj_type = 1; + } + } else { /*no change */ + /*if busy / idle change */ + if (wifi_busy != pre_wifi_busy) { + pre_wifi_busy = wifi_busy; + halbtc8723b1ant_ps_tdma(btcoexist, FORCE_EXEC, + true, + coex_dm->cur_ps_tdma); + } + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex],********* TDMA(on, %d) ********\n", + coex_dm->cur_ps_tdma); + } + + if (coex_dm->cur_ps_tdma != 1 && coex_dm->cur_ps_tdma != 2 && + coex_dm->cur_ps_tdma != 9 && coex_dm->cur_ps_tdma != 11) { + /* recover to previous adjust type */ + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, + coex_dm->ps_tdma_du_adj_type); + } + } +} + +u8 halbtc8723b1ant_ps_tdma_type_by_wifi_rssi(s32 wifi_rssi, s32 pre_wifi_rssi, + u8 wifi_rssi_thresh) +{ + u8 ps_tdma_type=0; + + if (wifi_rssi > pre_wifi_rssi) { + if (wifi_rssi > (wifi_rssi_thresh + 5)) + ps_tdma_type = 26; + else + ps_tdma_type = 25; + } else { + if (wifi_rssi > wifi_rssi_thresh) + ps_tdma_type = 26; + else + ps_tdma_type = 25; + } + + return ps_tdma_type; +} + +void halbtc8723b1ant_PsTdmaCheckForPowerSaveState(struct btc_coexist *btcoexist, + bool new_ps_state) +{ + u8 lps_mode = 0x0; + + btcoexist->btc_get(btcoexist, BTC_GET_U1_LPS_MODE, &lps_mode); + + if (lps_mode) { /* already under LPS state */ + if (new_ps_state) { + /* keep state under LPS, do nothing. */ + } else { + /* will leave LPS state, turn off psTdma first */ + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, + false, 0); + } + } else { /* NO PS state */ + if (new_ps_state) { + /* will enter LPS state, turn off psTdma first */ + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, + false, 0); + } else { + /* keep state under NO PS state, do nothing. */ + } + } +} + +void halbtc8723b1ant_power_save_state(struct btc_coexist *btcoexist, + u8 ps_type, u8 lps_val, + u8 rpwm_val) +{ + bool low_pwr_disable = false; + + switch (ps_type) { + case BTC_PS_WIFI_NATIVE: + /* recover to original 32k low power setting */ + low_pwr_disable = false; + btcoexist->btc_set(btcoexist, BTC_SET_ACT_DISABLE_LOW_POWER, + &low_pwr_disable); + btcoexist->btc_set(btcoexist, BTC_SET_ACT_NORMAL_LPS, NULL); + break; + case BTC_PS_LPS_ON: + halbtc8723b1ant_PsTdmaCheckForPowerSaveState(btcoexist, true); + halbtc8723b1ant_LpsRpwm(btcoexist, NORMAL_EXEC, lps_val, + rpwm_val); + /* when coex force to enter LPS, do not enter 32k low power. */ + low_pwr_disable = true; + btcoexist->btc_set(btcoexist, BTC_SET_ACT_DISABLE_LOW_POWER, + &low_pwr_disable); + /* power save must executed before psTdma. */ + btcoexist->btc_set(btcoexist, BTC_SET_ACT_ENTER_LPS, NULL); + break; + case BTC_PS_LPS_OFF: + halbtc8723b1ant_PsTdmaCheckForPowerSaveState(btcoexist, false); + btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, NULL); + break; + default: + break; + } +} + +void halbtc8723b1ant_action_wifi_only(struct btc_coexist *btcoexist) +{ + halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0); + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 9); +} + +void halbtc8723b1ant_monitor_bt_enable_disable(struct btc_coexist *btcoexist) +{ + static bool pre_bt_disabled = false; + static u32 bt_disable_cnt = 0; + bool bt_active = true, bt_disabled = false; + + /* This function check if bt is disabled */ + + if (coex_sta->high_priority_tx == 0 && + coex_sta->high_priority_rx == 0 && + coex_sta->low_priority_tx == 0 && + coex_sta->low_priority_rx == 0) + bt_active = false; + + if (coex_sta->high_priority_tx == 0xffff && + coex_sta->high_priority_rx == 0xffff && + coex_sta->low_priority_tx == 0xffff && + coex_sta->low_priority_rx == 0xffff) + bt_active = false; + + if (bt_active) { + bt_disable_cnt = 0; + bt_disabled = false; + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_DISABLE, + &bt_disabled); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex], BT is enabled !!\n"); + } else { + bt_disable_cnt++; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex], bt all counters=0, %d times!!\n", + bt_disable_cnt); + if (bt_disable_cnt >= 2) { + bt_disabled = true; + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_DISABLE, + &bt_disabled); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex], BT is disabled !!\n"); + halbtc8723b1ant_action_wifi_only(btcoexist); + } + } + if (pre_bt_disabled != bt_disabled) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex], BT is from %s to %s!!\n", + (pre_bt_disabled ? "disabled" : "enabled"), + (bt_disabled ? "disabled" : "enabled")); + pre_bt_disabled = bt_disabled; + if (!bt_disabled) { + } else { + btcoexist->btc_set(btcoexist, BTC_SET_ACT_LEAVE_LPS, + NULL); + btcoexist->btc_set(btcoexist, BTC_SET_ACT_NORMAL_LPS, + NULL); + } + } +} + +/*************************************************** + * + * Software Coex Mechanism start + * + ***************************************************/ +/* SCO only or SCO+PAN(HS) */ +void halbtc8723b1ant_action_sco(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = + halbtc8723b1ant_wifi_rssi_state(btcoexist, 0, 2, 25, 0); + + halbtc8723b1ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 4); + + if (halbtc8723b1ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + else + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if (BTC_WIFI_BW_HT40 == wifi_bw) { + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + + +void halbtc8723b1ant_action_hid(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = halbtc8723b1ant_wifi_rssi_state(btcoexist, + 0, 2, 25, 0); + bt_rssi_state = halbtc8723b1ant_bt_rssi_state(2, 50, 0); + + halbtc8723b1ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (halbtc8723b1ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + else + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, + BTC_GET_U4_WIFI_BW, &wifi_bw); + + if (BTC_WIFI_BW_HT40 == wifi_bw) { + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +/*A2DP only / PAN(EDR) only/ A2DP+PAN(HS) */ +void halbtc8723b1ant_action_a2dp(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = halbtc8723b1ant_wifi_rssi_state(btcoexist, + 0, 2, 25, 0); + bt_rssi_state = halbtc8723b1ant_bt_rssi_state(2, 50, 0); + + halbtc8723b1ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (halbtc8723b1ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + else + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if (BTC_WIFI_BW_HT40 == wifi_bw) { + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +void halbtc8723b1ant_action_a2dp_pan_hs(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state, bt_info_ext; + u32 wifi_bw; + + bt_info_ext = coex_sta->bt_info_ext; + wifi_rssi_state = halbtc8723b1ant_wifi_rssi_state(btcoexist, + 0, 2, 25, 0); + bt_rssi_state = halbtc8723b1ant_bt_rssi_state(2, 50, 0); + + halbtc8723b1ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (halbtc8723b1ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + else + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if (BTC_WIFI_BW_HT40 == wifi_bw) { + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +void halbtc8723b1ant_action_pan_edr(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = halbtc8723b1ant_wifi_rssi_state(btcoexist, + 0, 2, 25, 0); + bt_rssi_state = halbtc8723b1ant_bt_rssi_state(2, 50, 0); + + halbtc8723b1ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (halbtc8723b1ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + else + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if (BTC_WIFI_BW_HT40 == wifi_bw) { + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + + +/* PAN(HS) only */ +void halbtc8723b1ant_action_pan_hs(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = halbtc8723b1ant_wifi_rssi_state(btcoexist, + 0, 2, 25, 0); + bt_rssi_state = halbtc8723b1ant_bt_rssi_state(2, 50, 0); + + halbtc8723b1ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if (BTC_WIFI_BW_HT40 == wifi_bw) { + /* fw mechanism */ + if((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, + false); + else + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, + false); + + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + /* fw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, + false); + else + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, + false); + + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +/*PAN(EDR)+A2DP */ +void halbtc8723b1ant_action_pan_edr_a2dp(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state, bt_info_ext; + u32 wifi_bw; + + bt_info_ext = coex_sta->bt_info_ext; + wifi_rssi_state = halbtc8723b1ant_wifi_rssi_state(btcoexist, + 0, 2, 25, 0); + bt_rssi_state = halbtc8723b1ant_bt_rssi_state(2, 50, 0); + + halbtc8723b1ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (halbtc8723b1ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + else + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, + BTC_GET_U4_WIFI_BW, &wifi_bw); + + if (BTC_WIFI_BW_HT40 == wifi_bw) { + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +void halbtc8723b1ant_action_pan_edr_hid(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = halbtc8723b1ant_wifi_rssi_state(btcoexist, + 0, 2, 25, 0); + bt_rssi_state = halbtc8723b1ant_bt_rssi_state(2, 50, 0); + + halbtc8723b1ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (halbtc8723b1ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + else + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if (BTC_WIFI_BW_HT40 == wifi_bw) { + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +/* HID+A2DP+PAN(EDR) */ +void halbtc8723b1ant_action_hid_a2dp_pan_edr(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state, bt_info_ext; + u32 wifi_bw; + + bt_info_ext = coex_sta->bt_info_ext; + wifi_rssi_state = halbtc8723b1ant_wifi_rssi_state(btcoexist, + 0, 2, 25, 0); + bt_rssi_state = halbtc8723b1ant_bt_rssi_state(2, 50, 0); + + halbtc8723b1ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (halbtc8723b1ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + else + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if (BTC_WIFI_BW_HT40 == wifi_bw) { + /* sw mechanism */ + if((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +void halbtc8723b1ant_action_hid_a2dp(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state, bt_info_ext; + u32 wifi_bw; + + bt_info_ext = coex_sta->bt_info_ext; + wifi_rssi_state = halbtc8723b1ant_wifi_rssi_state(btcoexist, + 0, 2, 25, 0); + bt_rssi_state = halbtc8723b1ant_bt_rssi_state(2, 50, 0); + + if (halbtc8723b1ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + else + halbtc8723b1ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if (BTC_WIFI_BW_HT40 == wifi_bw) { + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + /* sw mechanism */ + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } else { + halbtc8723b1ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +/***************************************************** + * + * Non-Software Coex Mechanism start + * + *****************************************************/ +void halbtc8723b1ant_action_hs(struct btc_coexist *btcoexist) +{ + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 5); + halbtc8723b1ant_coex_table_with_type(btcoexist, FORCE_EXEC, 2); +} + +void halbtc8723b1ant_action_bt_inquiry(struct btc_coexist *btcoexist) +{ + struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; + bool wifi_connected = false, ap_enable = false; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_AP_MODE_ENABLE, + &ap_enable); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + + if (!wifi_connected) { + halbtc8723b1ant_power_save_state(btcoexist, + BTC_PS_WIFI_NATIVE, 0x0, 0x0); + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 5); + halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1); + } else if (bt_link_info->sco_exist || bt_link_info->hid_only) { + /* SCO/HID-only busy */ + halbtc8723b1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE, + 0x0, 0x0); + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 32); + halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1); + } else { + if (ap_enable) + halbtc8723b1ant_power_save_state(btcoexist, + BTC_PS_WIFI_NATIVE, + 0x0, 0x0); + else + halbtc8723b1ant_power_save_state(btcoexist, + BTC_PS_LPS_ON, + 0x50, 0x4); + + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 30); + halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1); + } +} + +void halbtc8723b1ant_action_bt_sco_hid_only_busy(struct btc_coexist * btcoexist, + u8 wifi_status) +{ + struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; + bool wifi_connected = false; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + + /* tdma and coex table */ + + if (bt_link_info->sco_exist) { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 5); + halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 2); + } else { /* HID */ + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 6); + halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 5); + } +} + +void halbtc8723b1ant_action_wifi_connected_bt_acl_busy( + struct btc_coexist *btcoexist, + u8 wifi_status) +{ + u8 bt_rssi_state; + + struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; + bt_rssi_state = halbtc8723b1ant_bt_rssi_state(2, 28, 0); + + if (bt_link_info->hid_only) { /*HID */ + halbtc8723b1ant_action_bt_sco_hid_only_busy(btcoexist, + wifi_status); + coex_dm->auto_tdma_adjust = false; + return; + } else if (bt_link_info->a2dp_only) { /*A2DP */ + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_tdma_duration_adjust_for_acl(btcoexist, + wifi_status); + } else { /*for low BT RSSI */ + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 11); + coex_dm->auto_tdma_adjust = false; + } + + halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1); + } else if (bt_link_info->hid_exist && + bt_link_info->a2dp_exist) { /*HID+A2DP */ + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 14); + coex_dm->auto_tdma_adjust = false; + } else { /*for low BT RSSI*/ + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 14); + coex_dm->auto_tdma_adjust = false; + } + + halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 6); + /*PAN(OPP,FTP), HID+PAN(OPP,FTP) */ + } else if (bt_link_info->pan_only || + (bt_link_info->hid_exist && bt_link_info->pan_exist)) { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 3); + halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 6); + coex_dm->auto_tdma_adjust = false; + /*A2DP+PAN(OPP,FTP), HID+A2DP+PAN(OPP,FTP)*/ + } else if ((bt_link_info->a2dp_exist && bt_link_info->pan_exist) || + (bt_link_info->hid_exist && bt_link_info->a2dp_exist && + bt_link_info->pan_exist)) { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 13); + halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1); + coex_dm->auto_tdma_adjust = false; + } else { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 11); + halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1); + coex_dm->auto_tdma_adjust = false; + } +} + +void halbtc8723b1ant_action_wifi_not_connected(struct btc_coexist *btcoexist) +{ + /* power save state */ + halbtc8723b1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE, + 0x0, 0x0); + + /* tdma and coex table */ + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8); + halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0); +} + +void halbtc8723b1ant_action_wifi_not_connected_asso_auth_scan( + struct btc_coexist *btcoexist) +{ + halbtc8723b1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE, + 0x0, 0x0); + + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 22); + halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1); +} + +void halbtc8723b1ant_ActionWifiConnectedScan(struct btc_coexist *btcoexist) +{ + struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; + + halbtc8723b1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE, + 0x0, 0x0); + + /* tdma and coex table */ + if (BT_8723B_1ANT_BT_STATUS_ACL_BUSY == coex_dm->bt_status) { + if (bt_link_info->a2dp_exist && + bt_link_info->pan_exist) { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 22); + halbtc8723b1ant_coex_table_with_type(btcoexist, + NORMAL_EXEC, 1); + } else { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 20); + halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1); + } + } else if ((BT_8723B_1ANT_BT_STATUS_SCO_BUSY == coex_dm->bt_status) || + (BT_8723B_1ANT_BT_STATUS_ACL_SCO_BUSY == + coex_dm->bt_status)) { + halbtc8723b1ant_action_bt_sco_hid_only_busy(btcoexist, + BT_8723B_1ANT_WIFI_STATUS_CONNECTED_SCAN); + } else { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 20); + halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1); + } +} + +void halbtc8723b1ant_action_wifi_connected_special_packet( + struct btc_coexist *btcoexist) +{ + bool hs_connecting = false; + struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_CONNECTING, &hs_connecting); + + halbtc8723b1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE, + 0x0, 0x0); + + /* tdma and coex table */ + if (BT_8723B_1ANT_BT_STATUS_ACL_BUSY == coex_dm->bt_status) { + if (bt_link_info->a2dp_exist && bt_link_info->pan_exist) { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 22); + halbtc8723b1ant_coex_table_with_type(btcoexist, + NORMAL_EXEC, 1); + } else { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 20); + halbtc8723b1ant_coex_table_with_type(btcoexist, + NORMAL_EXEC, 1); + } + } else { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 20); + halbtc8723b1ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 1); + } +} + +void halbtc8723b1ant_action_wifi_connected(struct btc_coexist *btcoexist) +{ + bool wifi_busy = false; + bool scan = false, link = false, roam = false; + bool under_4way = false, ap_enable = false; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], CoexForWifiConnect()===>\n"); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_4_WAY_PROGRESS, + &under_4way); + if (under_4way) { + halbtc8723b1ant_action_wifi_connected_special_packet(btcoexist); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], CoexForWifiConnect(), " + "return for wifi is under 4way<===\n"); + return; + } + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam); + + if (scan || link || roam) { + halbtc8723b1ant_ActionWifiConnectedScan(btcoexist); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], CoexForWifiConnect(), " + "return for wifi is under scan<===\n"); + return; + } + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_AP_MODE_ENABLE, + &ap_enable); + /* power save state */ + if (!ap_enable && + BT_8723B_1ANT_BT_STATUS_ACL_BUSY == coex_dm->bt_status && + !btcoexist->bt_link_info.hid_only) + halbtc8723b1ant_power_save_state(btcoexist, BTC_PS_LPS_ON, + 0x50, 0x4); + else + halbtc8723b1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE, + 0x0, 0x0); + + /* tdma and coex table */ + btcoexist->btc_get(btcoexist, + BTC_GET_BL_WIFI_BUSY, &wifi_busy); + if (!wifi_busy) { + if (BT_8723B_1ANT_BT_STATUS_ACL_BUSY == coex_dm->bt_status) { + halbtc8723b1ant_action_wifi_connected_bt_acl_busy(btcoexist, + BT_8723B_1ANT_WIFI_STATUS_CONNECTED_IDLE); + } else if ((BT_8723B_1ANT_BT_STATUS_SCO_BUSY == + coex_dm->bt_status) || + (BT_8723B_1ANT_BT_STATUS_ACL_SCO_BUSY == + coex_dm->bt_status)) { + halbtc8723b1ant_action_bt_sco_hid_only_busy(btcoexist, + BT_8723B_1ANT_WIFI_STATUS_CONNECTED_IDLE); + } else { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, + false, 8); + halbtc8723b1ant_coex_table_with_type(btcoexist, + NORMAL_EXEC, 2); + } + } else { + if (BT_8723B_1ANT_BT_STATUS_ACL_BUSY == coex_dm->bt_status) { + halbtc8723b1ant_action_wifi_connected_bt_acl_busy(btcoexist, + BT_8723B_1ANT_WIFI_STATUS_CONNECTED_BUSY); + } else if ((BT_8723B_1ANT_BT_STATUS_SCO_BUSY == + coex_dm->bt_status) || + (BT_8723B_1ANT_BT_STATUS_ACL_SCO_BUSY == + coex_dm->bt_status)) { + halbtc8723b1ant_action_bt_sco_hid_only_busy(btcoexist, + BT_8723B_1ANT_WIFI_STATUS_CONNECTED_BUSY); + } else { + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 8); + halbtc8723b1ant_coex_table_with_type(btcoexist, + NORMAL_EXEC, 2); + } + } +} + +void halbtc8723b1ant_run_sw_coexist_mechanism(struct btc_coexist *btcoexist) +{ + u8 algorithm = 0; + + algorithm = halbtc8723b1ant_action_algorithm(btcoexist); + coex_dm->cur_algorithm = algorithm; + + if (halbtc8723b1ant_is_common_action(btcoexist)) { + } else { + switch (coex_dm->cur_algorithm) { + case BT_8723B_1ANT_COEX_ALGO_SCO: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action algorithm = SCO.\n"); + halbtc8723b1ant_action_sco(btcoexist); + break; + case BT_8723B_1ANT_COEX_ALGO_HID: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action algorithm = HID.\n"); + halbtc8723b1ant_action_hid(btcoexist); + break; + case BT_8723B_1ANT_COEX_ALGO_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action algorithm = A2DP.\n"); + halbtc8723b1ant_action_a2dp(btcoexist); + break; + case BT_8723B_1ANT_COEX_ALGO_A2DP_PANHS: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action algorithm = " + "A2DP+PAN(HS).\n"); + halbtc8723b1ant_action_a2dp_pan_hs(btcoexist); + break; + case BT_8723B_1ANT_COEX_ALGO_PANEDR: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action algorithm = PAN(EDR).\n"); + halbtc8723b1ant_action_pan_edr(btcoexist); + break; + case BT_8723B_1ANT_COEX_ALGO_PANHS: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action algorithm = HS mode.\n"); + halbtc8723b1ant_action_pan_hs(btcoexist); + break; + case BT_8723B_1ANT_COEX_ALGO_PANEDR_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action algorithm = PAN+A2DP.\n"); + halbtc8723b1ant_action_pan_edr_a2dp(btcoexist); + break; + case BT_8723B_1ANT_COEX_ALGO_PANEDR_HID: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action algorithm = " + "PAN(EDR)+HID.\n"); + halbtc8723b1ant_action_pan_edr_hid(btcoexist); + break; + case BT_8723B_1ANT_COEX_ALGO_HID_A2DP_PANEDR: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action algorithm = " + "HID+A2DP+PAN.\n"); + halbtc8723b1ant_action_hid_a2dp_pan_edr(btcoexist); + break; + case BT_8723B_1ANT_COEX_ALGO_HID_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action algorithm = HID+A2DP.\n"); + halbtc8723b1ant_action_hid_a2dp(btcoexist); + break; + default: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action algorithm = " + "coexist All Off!!\n"); + break; + } + coex_dm->pre_algorithm = coex_dm->cur_algorithm; + } +} + +void halbtc8723b1ant_run_coexist_mechanism(struct btc_coexist *btcoexist) +{ + struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; + bool wifi_connected = false, bt_hs_on = false; + bool limited_dig = false, bIncreaseScanDevNum = false; + bool b_bt_ctrl_agg_buf_size = false; + u8 agg_buf_size = 5; + u8 wifi_rssi_state = BTC_RSSI_STATE_HIGH; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], RunCoexistMechanism()===>\n"); + + if (btcoexist->manual_control) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], RunCoexistMechanism(), " + "return for Manual CTRL <===\n"); + return; + } + + if (btcoexist->stop_coex_dm) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], RunCoexistMechanism(), " + "return for Stop Coex DM <===\n"); + return; + } + + if (coex_sta->under_ips) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], wifi is under IPS !!!\n"); + return; + } + + if ((BT_8723B_1ANT_BT_STATUS_ACL_BUSY == coex_dm->bt_status) || + (BT_8723B_1ANT_BT_STATUS_SCO_BUSY == coex_dm->bt_status) || + (BT_8723B_1ANT_BT_STATUS_ACL_SCO_BUSY == coex_dm->bt_status)) { + limited_dig = true; + bIncreaseScanDevNum = true; + } + + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_LIMITED_DIG, &limited_dig); + btcoexist->btc_set(btcoexist, BTC_SET_BL_INC_SCAN_DEV_NUM, + &bIncreaseScanDevNum); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + + if (!bt_link_info->sco_exist && !bt_link_info->hid_exist) { + halbtc8723b1ant_limited_tx(btcoexist, NORMAL_EXEC, 0, 0, 0, 0); + } else { + if (wifi_connected) { + wifi_rssi_state = + halbtc8723b1ant_wifi_rssi_state(btcoexist, + 1, 2, 30, 0); + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b1ant_limited_tx(btcoexist, + NORMAL_EXEC, + 1, 1, 1, 1); + } else { + halbtc8723b1ant_limited_tx(btcoexist, + NORMAL_EXEC, + 1, 1, 1, 1); + } + } else { + halbtc8723b1ant_limited_tx(btcoexist, NORMAL_EXEC, + 0, 0, 0, 0); + } + } + + if (bt_link_info->sco_exist) { + b_bt_ctrl_agg_buf_size = true; + agg_buf_size = 0x3; + } else if (bt_link_info->hid_exist) { + b_bt_ctrl_agg_buf_size = true; + agg_buf_size = 0x5; + } else if (bt_link_info->a2dp_exist || bt_link_info->pan_exist) { + b_bt_ctrl_agg_buf_size = true; + agg_buf_size = 0x8; + } + halbtc8723b1ant_limited_rx(btcoexist, NORMAL_EXEC, false, + b_bt_ctrl_agg_buf_size, agg_buf_size); + + halbtc8723b1ant_run_sw_coexist_mechanism(btcoexist); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + + if (coex_sta->c2h_bt_inquiry_page) { + halbtc8723b1ant_action_bt_inquiry(btcoexist); + return; + } else if (bt_hs_on) { + halbtc8723b1ant_action_hs(btcoexist); + return; + } + + + if (!wifi_connected) { + bool scan = false, link = false, roam = false; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], wifi is non connected-idle !!!\n"); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam); + + if (scan || link || roam) + halbtc8723b1ant_action_wifi_not_connected_asso_auth_scan(btcoexist); + else + halbtc8723b1ant_action_wifi_not_connected(btcoexist); + } else { /* wifi LPS/Busy */ + halbtc8723b1ant_action_wifi_connected(btcoexist); + } +} + +void halbtc8723b1ant_init_coex_dm(struct btc_coexist *btcoexist) +{ + /* force to reset coex mechanism */ + halbtc8723b1ant_fw_dac_swing_lvl(btcoexist, FORCE_EXEC, 6); + halbtc8723b1ant_dec_bt_pwr(btcoexist, FORCE_EXEC, false); + + /* sw all off */ + halbtc8723b1ant_sw_mechanism1(btcoexist, false, false, false, false); + halbtc8723b1ant_sw_mechanism2(btcoexist,false, false, false, 0x18); + + halbtc8723b1ant_ps_tdma(btcoexist, FORCE_EXEC, false, 8); + halbtc8723b1ant_coex_table_with_type(btcoexist, FORCE_EXEC, 0); +} + +void halbtc8723b1ant_init_hw_config(struct btc_coexist *btcoexist, bool backup) +{ + u32 u32tmp = 0; + u8 u8tmp = 0; + u32 cnt_bt_cal_chk = 0; + + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], 1Ant Init HW Config!!\n"); + + if (backup) {/* backup rf 0x1e value */ + coex_dm->bt_rf0x1e_backup = + btcoexist->btc_get_rf_reg(btcoexist, + BTC_RF_A, 0x1e, 0xfffff); + + coex_dm->backup_arfr_cnt1 = + btcoexist->btc_read_4byte(btcoexist, 0x430); + coex_dm->backup_arfr_cnt2 = + btcoexist->btc_read_4byte(btcoexist, 0x434); + coex_dm->backup_retry_limit = + btcoexist->btc_read_2byte(btcoexist, 0x42a); + coex_dm->backup_ampdu_max_time = + btcoexist->btc_read_1byte(btcoexist, 0x456); + } + + /* WiFi goto standby while GNT_BT 0-->1 */ + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x780); + /* BT goto standby while GNT_BT 1-->0 */ + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x2, 0xfffff, 0x500); + + btcoexist->btc_write_1byte(btcoexist, 0x974, 0xff); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x944, 0x3, 0x3); + btcoexist->btc_write_1byte(btcoexist, 0x930, 0x77); + + + /* BT calibration check */ + while (cnt_bt_cal_chk <= 20) { + u32tmp = btcoexist->btc_read_4byte(btcoexist, 0x49d); + cnt_bt_cal_chk++; + if (u32tmp & BIT0) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], ########### BT " + "calibration(cnt=%d) ###########\n", + cnt_bt_cal_chk); + mdelay(50); + } else { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], ********** BT NOT " + "calibration (cnt=%d)**********\n", + cnt_bt_cal_chk); + break; + } + } + + /* 0x790[5:0]=0x5 */ + u8tmp = btcoexist->btc_read_1byte(btcoexist, 0x790); + u8tmp &= 0xc0; + u8tmp |= 0x5; + btcoexist->btc_write_1byte(btcoexist, 0x790, u8tmp); + + /* Enable counter statistics */ + /*0x76e[3] =1, WLAN_Act control by PTA */ + btcoexist->btc_write_1byte(btcoexist, 0x76e, 0xc); + btcoexist->btc_write_1byte(btcoexist, 0x778, 0x1); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x40, 0x20, 0x1); + + /*Antenna config */ + halbtc8723b1ant_SetAntPath(btcoexist, BTC_ANT_PATH_PTA, true, false); + /* PTA parameter */ + halbtc8723b1ant_coex_table_with_type(btcoexist, FORCE_EXEC, 0); + +} + +void halbtc8723b1ant_wifi_off_hw_cfg(struct btc_coexist *btcoexist) +{ + /* set wlan_act to low */ + btcoexist->btc_write_1byte(btcoexist, 0x76e, 0); +} + +/************************************************************** + * work around function start with wa_halbtc8723b1ant_ + **************************************************************/ +/************************************************************** + * extern function start with EXhalbtc8723b1ant_ + **************************************************************/ + +void ex_halbtc8723b1ant_init_hwconfig(struct btc_coexist *btcoexist) +{ + halbtc8723b1ant_init_hw_config(btcoexist, true); +} + +void ex_halbtc8723b1ant_init_coex_dm(struct btc_coexist *btcoexist) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], Coex Mechanism Init!!\n"); + + btcoexist->stop_coex_dm = false; + + halbtc8723b1ant_init_coex_dm(btcoexist); + + halbtc8723b1ant_query_bt_info(btcoexist); +} + +void ex_halbtc8723b1ant_display_coex_info(struct btc_coexist *btcoexist) +{ + struct btc_board_info *board_info = &btcoexist->board_info; + struct btc_stack_info *stack_info = &btcoexist->stack_info; + struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; + u8 *cli_buf = btcoexist->cli_buf; + u8 u8tmp[4], i, bt_info_ext, psTdmaCase=0; + u16 u16tmp[4]; + u32 u32tmp[4]; + bool roam = false, scan = false; + bool link = false, wifi_under_5g = false; + bool bt_hs_on = false, wifi_busy = false; + s32 wifi_rssi =0, bt_hs_rssi = 0; + u32 wifi_bw, wifi_traffic_dir, fa_ofdm, fa_cck; + u8 wifi_dot11_chnl, wifi_hs_chnl; + u32 fw_ver = 0, bt_patch_ver = 0; + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n ============[BT Coexist info]============"); + CL_PRINTF(cli_buf); + + if (btcoexist->manual_control) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n ============[Under Manual Control]=========="); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n =========================================="); + CL_PRINTF(cli_buf); + } + if (btcoexist->stop_coex_dm) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n ============[Coex is STOPPED]============"); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n =========================================="); + CL_PRINTF(cli_buf); + } + + if (!board_info->bt_exist) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n BT not exists !!!"); + CL_PRINTF(cli_buf); + return; + } + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d", + "Ant PG Num/ Ant Mech/ Ant Pos:", \ + board_info->pg_ant_num, board_info->btdm_ant_num, + board_info->btdm_ant_pos); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s / %d", + "BT stack/ hci ext ver", \ + ((stack_info->profile_notified)? "Yes":"No"), + stack_info->hci_version); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_BT_PATCH_VER, &bt_patch_ver); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_FW_VER, &fw_ver); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %d_%x/ 0x%x/ 0x%x(%d)", + "CoexVer/ FwVer/ PatchVer", \ + glcoex_ver_date_8723b_1ant, glcoex_ver_8723b_1ant, + fw_ver, bt_patch_ver, bt_patch_ver); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_DOT11_CHNL, + &wifi_dot11_chnl); + btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_HS_CHNL, &wifi_hs_chnl); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d(%d)", + "Dot11 channel / HsChnl(HsMode)", \ + wifi_dot11_chnl, wifi_hs_chnl, bt_hs_on); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x ", + "H2C Wifi inform bt chnl Info", \ + coex_dm->wifi_chnl_info[0], coex_dm->wifi_chnl_info[1], + coex_dm->wifi_chnl_info[2]); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_S4_WIFI_RSSI, &wifi_rssi); + btcoexist->btc_get(btcoexist, BTC_GET_S4_HS_RSSI, &bt_hs_rssi); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", + "Wifi rssi/ HS rssi", wifi_rssi, bt_hs_rssi); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d ", + "Wifi link/ roam/ scan", link, roam, scan); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist,BTC_GET_BL_WIFI_UNDER_5G, + &wifi_under_5g); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_TRAFFIC_DIRECTION, + &wifi_traffic_dir); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s / %s/ %s ", + "Wifi status", (wifi_under_5g? "5G":"2.4G"), + ((BTC_WIFI_BW_LEGACY==wifi_bw)? "Legacy": + (((BTC_WIFI_BW_HT40==wifi_bw)? "HT40":"HT20"))), + ((!wifi_busy)? "idle": + ((BTC_WIFI_TRAFFIC_TX==wifi_traffic_dir)? + "uplink":"downlink"))); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = [%s/ %d/ %d] ", + "BT [status/ rssi/ retryCnt]", + ((btcoexist->bt_info.bt_disabled)? ("disabled"): + ((coex_sta->c2h_bt_inquiry_page)?("inquiry/page scan"): + ((BT_8723B_1ANT_BT_STATUS_NON_CONNECTED_IDLE == coex_dm->bt_status)? + "non-connected idle": + ((BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE == coex_dm->bt_status)? + "connected-idle":"busy")))), + coex_sta->bt_rssi, coex_sta->bt_retry_cnt); + CL_PRINTF(cli_buf); + + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d / %d / %d", + "SCO/HID/PAN/A2DP", bt_link_info->sco_exist, + bt_link_info->hid_exist, bt_link_info->pan_exist, + bt_link_info->a2dp_exist); + CL_PRINTF(cli_buf); + btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_BT_LINK_INFO); + + bt_info_ext = coex_sta->bt_info_ext; + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s", + "BT Info A2DP rate", + (bt_info_ext & BIT0) ? "Basic rate" : "EDR rate"); + CL_PRINTF(cli_buf); + + for (i = 0; i < BT_INFO_SRC_8723B_1ANT_MAX; i++) { + if (coex_sta->bt_info_c2h_cnt[i]) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %02x %02x %02x " + "%02x %02x %02x %02x(%d)", + GLBtInfoSrc8723b1Ant[i], + coex_sta->bt_info_c2h[i][0], + coex_sta->bt_info_c2h[i][1], + coex_sta->bt_info_c2h[i][2], + coex_sta->bt_info_c2h[i][3], + coex_sta->bt_info_c2h[i][4], + coex_sta->bt_info_c2h[i][5], + coex_sta->bt_info_c2h[i][6], + coex_sta->bt_info_c2h_cnt[i]); + CL_PRINTF(cli_buf); + } + } + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %s/%s, (0x%x/0x%x)", + "PS state, IPS/LPS, (lps/rpwm)", \ + ((coex_sta->under_ips? "IPS ON":"IPS OFF")), + ((coex_sta->under_lps? "LPS ON":"LPS OFF")), + btcoexist->bt_info.lps_1ant, + btcoexist->bt_info.rpwm_1ant); + CL_PRINTF(cli_buf); + btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_FW_PWR_MODE_CMD); + + if (!btcoexist->manual_control) { + /* Sw mechanism */ + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", + "============[Sw mechanism]============"); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d ", + "SM1[ShRf/ LpRA/ LimDig]", \ + coex_dm->cur_rf_rx_lpf_shrink, + coex_dm->cur_low_penalty_ra, + btcoexist->bt_info.limited_dig); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %d/ %d/ %d(0x%x) ", + "SM2[AgcT/ AdcB/ SwDacSwing(lvl)]", \ + coex_dm->cur_agc_table_en, + coex_dm->cur_adc_backoff, + coex_dm->cur_dac_swing_on, + coex_dm->cur_dac_swing_lvl); + CL_PRINTF(cli_buf); + + + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x ", + "Rate Mask", btcoexist->bt_info.ra_mask); + CL_PRINTF(cli_buf); + + /* Fw mechanism */ + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", + "============[Fw mechanism]============"); + CL_PRINTF(cli_buf); + + psTdmaCase = coex_dm->cur_ps_tdma; + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %02x %02x %02x %02x %02x " + "case-%d (auto:%d)", + "PS TDMA", coex_dm->ps_tdma_para[0], + coex_dm->ps_tdma_para[1], coex_dm->ps_tdma_para[2], + coex_dm->ps_tdma_para[3], coex_dm->ps_tdma_para[4], + psTdmaCase, coex_dm->auto_tdma_adjust); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x ", + "Latest error condition(should be 0)", \ + coex_dm->error_condition); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d ", + "DecBtPwr/ IgnWlanAct", coex_dm->cur_dec_bt_pwr, + coex_dm->cur_ignore_wlan_act); + CL_PRINTF(cli_buf); + } + + /* Hw setting */ + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", + "============[Hw setting]============"); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", + "RF-A, 0x1e initVal", coex_dm->bt_rf0x1e_backup); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/0x%x/0x%x/0x%x", + "backup ARFR1/ARFR2/RL/AMaxTime", coex_dm->backup_arfr_cnt1, + coex_dm->backup_arfr_cnt2, coex_dm->backup_retry_limit, + coex_dm->backup_ampdu_max_time); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x430); + u32tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0x434); + u16tmp[0] = btcoexist->btc_read_2byte(btcoexist, 0x42a); + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x456); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/0x%x/0x%x/0x%x", + "0x430/0x434/0x42a/0x456", + u32tmp[0], u32tmp[1], u16tmp[0], u8tmp[0]); + CL_PRINTF(cli_buf); + + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x778); + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x6cc); + u32tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0x880); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", + "0x778/0x6cc/0x880[29:25]", u8tmp[0], u32tmp[0], + (u32tmp[1] & 0x3e000000) >> 25); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x948); + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x67); + u8tmp[1] = btcoexist->btc_read_1byte(btcoexist, 0x765); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", + "0x948/ 0x67[5] / 0x765", + u32tmp[0], ((u8tmp[0] & 0x20)>> 5), u8tmp[1]); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x92c); + u32tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0x930); + u32tmp[2] = btcoexist->btc_read_4byte(btcoexist, 0x944); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", + "0x92c[1:0]/ 0x930[7:0]/0x944[1:0]", + u32tmp[0] & 0x3, u32tmp[1] & 0xff, u32tmp[2] & 0x3); + CL_PRINTF(cli_buf); + + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x39); + u8tmp[1] = btcoexist->btc_read_1byte(btcoexist, 0x40); + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x4c); + u8tmp[2] = btcoexist->btc_read_1byte(btcoexist, 0x64); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", + "0x38[11]/0x40/0x4c[24:23]/0x64[0]", + ((u8tmp[0] & 0x8)>>3), u8tmp[1], + ((u32tmp[0] & 0x01800000) >> 23), u8tmp[2] & 0x1); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x550); + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x522); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", + "0x550(bcn ctrl)/0x522", u32tmp[0], u8tmp[0]); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0xc50); + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x49c); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", + "0xc50(dig)/0x49c(null-drop)", u32tmp[0] & 0xff, u8tmp[0]); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0xda0); + u32tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0xda4); + u32tmp[2] = btcoexist->btc_read_4byte(btcoexist, 0xda8); + u32tmp[3] = btcoexist->btc_read_4byte(btcoexist, 0xcf0); + + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0xa5b); + u8tmp[1] = btcoexist->btc_read_1byte(btcoexist, 0xa5c); + + fa_ofdm = ((u32tmp[0] & 0xffff0000) >> 16) + + ((u32tmp[1] & 0xffff0000) >> 16) + + (u32tmp[1] & 0xffff) + + (u32tmp[2] & 0xffff) + \ + ((u32tmp[3] & 0xffff0000) >> 16) + + (u32tmp[3] & 0xffff) ; + fa_cck = (u8tmp[0] << 8) + u8tmp[1]; + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", + "OFDM-CCA/OFDM-FA/CCK-FA", + u32tmp[0] & 0xffff, fa_ofdm, fa_cck); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x6c0); + u32tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0x6c4); + u32tmp[2] = btcoexist->btc_read_4byte(btcoexist, 0x6c8); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", + "0x6c0/0x6c4/0x6c8(coexTable)", + u32tmp[0], u32tmp[1], u32tmp[2]); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", + "0x770(high-pri rx/tx)", coex_sta->high_priority_rx, + coex_sta->high_priority_tx); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", + "0x774(low-pri rx/tx)", coex_sta->low_priority_rx, + coex_sta->low_priority_tx); + CL_PRINTF(cli_buf); +#if(BT_AUTO_REPORT_ONLY_8723B_1ANT == 1) + halbtc8723b1ant_monitor_bt_ctr(btcoexist); +#endif + btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_COEX_STATISTICS); +} + + +void ex_halbtc8723b1ant_ips_notify(struct btc_coexist *btcoexist, u8 type) +{ + + if (btcoexist->manual_control || btcoexist->stop_coex_dm) + return; + + if (BTC_IPS_ENTER == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], IPS ENTER notify\n"); + coex_sta->under_ips = true; + + halbtc8723b1ant_SetAntPath(btcoexist, BTC_ANT_PATH_BT, + false, true); + /* set PTA control */ + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0); + halbtc8723b1ant_coex_table_with_type(btcoexist, + NORMAL_EXEC, 0); + } else if (BTC_IPS_LEAVE == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], IPS LEAVE notify\n"); + coex_sta->under_ips = false; + + halbtc8723b1ant_run_coexist_mechanism(btcoexist); + } +} + +void ex_halbtc8723b1ant_lps_notify(struct btc_coexist *btcoexist, u8 type) +{ + if (btcoexist->manual_control || btcoexist->stop_coex_dm) + return; + + if (BTC_LPS_ENABLE == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], LPS ENABLE notify\n"); + coex_sta->under_lps = true; + } else if (BTC_LPS_DISABLE == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], LPS DISABLE notify\n"); + coex_sta->under_lps = false; + } +} + +void ex_halbtc8723b1ant_scan_notify(struct btc_coexist *btcoexist, u8 type) +{ + bool wifi_connected = false, bt_hs_on = false; + + if (btcoexist->manual_control || btcoexist->stop_coex_dm || + btcoexist->bt_info.bt_disabled) + return; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + + halbtc8723b1ant_query_bt_info(btcoexist); + + if (coex_sta->c2h_bt_inquiry_page) { + halbtc8723b1ant_action_bt_inquiry(btcoexist); + return; + } else if (bt_hs_on) { + halbtc8723b1ant_action_hs(btcoexist); + return; + } + + if (BTC_SCAN_START == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], SCAN START notify\n"); + if (!wifi_connected) /* non-connected scan */ + halbtc8723b1ant_action_wifi_not_connected_asso_auth_scan(btcoexist); + else /* wifi is connected */ + halbtc8723b1ant_ActionWifiConnectedScan(btcoexist); + } else if (BTC_SCAN_FINISH == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], SCAN FINISH notify\n"); + if (!wifi_connected) /* non-connected scan */ + halbtc8723b1ant_action_wifi_not_connected(btcoexist); + else + halbtc8723b1ant_action_wifi_connected(btcoexist); + } +} + +void ex_halbtc8723b1ant_connect_notify(struct btc_coexist *btcoexist, u8 type) +{ + bool wifi_connected = false, bt_hs_on = false; + + if (btcoexist->manual_control || btcoexist->stop_coex_dm || + btcoexist->bt_info.bt_disabled) + return; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + if (coex_sta->c2h_bt_inquiry_page) { + halbtc8723b1ant_action_bt_inquiry(btcoexist); + return; + } else if (bt_hs_on) { + halbtc8723b1ant_action_hs(btcoexist); + return; + } + + if (BTC_ASSOCIATE_START == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], CONNECT START notify\n"); + halbtc8723b1ant_action_wifi_not_connected_asso_auth_scan(btcoexist); + } else if (BTC_ASSOCIATE_FINISH == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], CONNECT FINISH notify\n"); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + if (!wifi_connected) /* non-connected scan */ + halbtc8723b1ant_action_wifi_not_connected(btcoexist); + else + halbtc8723b1ant_action_wifi_connected(btcoexist); + } +} + +void ex_halbtc8723b1ant_media_status_notify(struct btc_coexist *btcoexist, + u8 type) +{ + u8 h2c_parameter[3] ={0}; + u32 wifi_bw; + u8 wifiCentralChnl; + + if (btcoexist->manual_control || btcoexist->stop_coex_dm || + btcoexist->bt_info.bt_disabled ) + return; + + if (BTC_MEDIA_CONNECT == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], MEDIA connect notify\n"); + else + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], MEDIA disconnect notify\n"); + + /* only 2.4G we need to inform bt the chnl mask */ + btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_CENTRAL_CHNL, + &wifiCentralChnl); + + if ((BTC_MEDIA_CONNECT == type) && + (wifiCentralChnl <= 14)) { + h2c_parameter[0] = 0x0; + h2c_parameter[1] = wifiCentralChnl; + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + if (BTC_WIFI_BW_HT40 == wifi_bw) + h2c_parameter[2] = 0x30; + else + h2c_parameter[2] = 0x20; + } + + coex_dm->wifi_chnl_info[0] = h2c_parameter[0]; + coex_dm->wifi_chnl_info[1] = h2c_parameter[1]; + coex_dm->wifi_chnl_info[2] = h2c_parameter[2]; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], FW write 0x66=0x%x\n", + h2c_parameter[0] << 16 | h2c_parameter[1] << 8 | + h2c_parameter[2]); + + btcoexist->btc_fill_h2c(btcoexist, 0x66, 3, h2c_parameter); +} + +void ex_halbtc8723b1ant_special_packet_notify(struct btc_coexist *btcoexist, + u8 type) +{ + bool bt_hs_on = false; + + if (btcoexist->manual_control || btcoexist->stop_coex_dm || + btcoexist->bt_info.bt_disabled) + return; + + coex_sta->special_pkt_period_cnt = 0; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + if (coex_sta->c2h_bt_inquiry_page) { + halbtc8723b1ant_action_bt_inquiry(btcoexist); + return; + } else if (bt_hs_on) { + halbtc8723b1ant_action_hs(btcoexist); + return; + } + + if (BTC_PACKET_DHCP == type || + BTC_PACKET_EAPOL == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], special Packet(%d) notify\n", type); + halbtc8723b1ant_action_wifi_connected_special_packet(btcoexist); + } +} + +void ex_halbtc8723b1ant_bt_info_notify(struct btc_coexist *btcoexist, + u8 *tmp_buf, u8 length) +{ + u8 bt_info = 0; + u8 i, rsp_source = 0; + bool wifi_connected = false; + bool bt_busy = false; + + coex_sta->c2h_bt_info_req_sent = false; + + rsp_source = tmp_buf[0] & 0xf; + if (rsp_source >= BT_INFO_SRC_8723B_1ANT_MAX) + rsp_source = BT_INFO_SRC_8723B_1ANT_WIFI_FW; + coex_sta->bt_info_c2h_cnt[rsp_source]++; + + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], Bt info[%d], length=%d, hex data=[", + rsp_source, length); + for (i=0; ibt_info_c2h[rsp_source][i] = tmp_buf[i]; + if (i == 1) + bt_info = tmp_buf[i]; + if (i == length - 1) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "0x%02x]\n", tmp_buf[i]); + else + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "0x%02x, ", tmp_buf[i]); + } + + if (BT_INFO_SRC_8723B_1ANT_WIFI_FW != rsp_source) { + coex_sta->bt_retry_cnt = /* [3:0] */ + coex_sta->bt_info_c2h[rsp_source][2] & 0xf; + + coex_sta->bt_rssi = + coex_sta->bt_info_c2h[rsp_source][3] * 2 + 10; + + coex_sta->bt_info_ext = + coex_sta->bt_info_c2h[rsp_source][4]; + + /* Here we need to resend some wifi info to BT + * because bt is reset and loss of the info.*/ + if(coex_sta->bt_info_ext & BIT1) + { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT ext info bit1 check, " + "send wifi BW&Chnl to BT!!\n"); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + if(wifi_connected) + ex_halbtc8723b1ant_media_status_notify(btcoexist, + BTC_MEDIA_CONNECT); + else + ex_halbtc8723b1ant_media_status_notify(btcoexist, + BTC_MEDIA_DISCONNECT); + } + + if (coex_sta->bt_info_ext & BIT3) { + if (!btcoexist->manual_control && + !btcoexist->stop_coex_dm) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT ext info bit3 check, " + "set BT NOT ignore Wlan active!!\n"); + halbtc8723b1ant_ignore_wlan_act(btcoexist, + FORCE_EXEC, + false); + } + } else { + /* BT already NOT ignore Wlan active, do nothing here.*/ + } +#if(BT_AUTO_REPORT_ONLY_8723B_1ANT == 0) + if (coex_sta->bt_info_ext & BIT4) { + /* BT auto report already enabled, do nothing */ + } else { + halbtc8723b1ant_bt_auto_report(btcoexist, FORCE_EXEC, + true); + } +#endif + } + + /* check BIT2 first ==> check if bt is under inquiry or page scan */ + if (bt_info & BT_INFO_8723B_1ANT_B_INQ_PAGE) + coex_sta->c2h_bt_inquiry_page = true; + else + coex_sta->c2h_bt_inquiry_page = false; + + /* set link exist status */ + if (!(bt_info & BT_INFO_8723B_1ANT_B_CONNECTION)) { + coex_sta->bt_link_exist = false; + coex_sta->pan_exist = false; + coex_sta->a2dp_exist = false; + coex_sta->hid_exist = false; + coex_sta->sco_exist = false; + } else { /* connection exists */ + coex_sta->bt_link_exist = true; + if (bt_info & BT_INFO_8723B_1ANT_B_FTP) + coex_sta->pan_exist = true; + else + coex_sta->pan_exist = false; + if (bt_info & BT_INFO_8723B_1ANT_B_A2DP) + coex_sta->a2dp_exist = true; + else + coex_sta->a2dp_exist = false; + if (bt_info & BT_INFO_8723B_1ANT_B_HID) + coex_sta->hid_exist = true; + else + coex_sta->hid_exist = false; + if (bt_info & BT_INFO_8723B_1ANT_B_SCO_ESCO) + coex_sta->sco_exist = true; + else + coex_sta->sco_exist = false; + } + + halbtc8723b1ant_update_bt_link_info(btcoexist); + + if (!(bt_info&BT_INFO_8723B_1ANT_B_CONNECTION)) { + coex_dm->bt_status = BT_8723B_1ANT_BT_STATUS_NON_CONNECTED_IDLE; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BtInfoNotify(), " + "BT Non-Connected idle!!!\n"); + /* connection exists but no busy */ + } else if (bt_info == BT_INFO_8723B_1ANT_B_CONNECTION) { + coex_dm->bt_status = BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BtInfoNotify(), BT Connected-idle!!!\n"); + } else if ((bt_info & BT_INFO_8723B_1ANT_B_SCO_ESCO) || + (bt_info & BT_INFO_8723B_1ANT_B_SCO_BUSY)) { + coex_dm->bt_status = BT_8723B_1ANT_BT_STATUS_SCO_BUSY; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BtInfoNotify(), " + "BT SCO busy!!!\n"); + } else if (bt_info & BT_INFO_8723B_1ANT_B_ACL_BUSY) { + if (BT_8723B_1ANT_BT_STATUS_ACL_BUSY != coex_dm->bt_status) + coex_dm->auto_tdma_adjust = false; + + coex_dm->bt_status = BT_8723B_1ANT_BT_STATUS_ACL_BUSY; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BtInfoNotify(), BT ACL busy!!!\n"); + } else { + coex_dm->bt_status = + BT_8723B_1ANT_BT_STATUS_MAX; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BtInfoNotify(), BT Non-Defined state!!\n"); + } + + if ((BT_8723B_1ANT_BT_STATUS_ACL_BUSY == coex_dm->bt_status) || + (BT_8723B_1ANT_BT_STATUS_SCO_BUSY == coex_dm->bt_status) || + (BT_8723B_1ANT_BT_STATUS_ACL_SCO_BUSY == coex_dm->bt_status)) + bt_busy = true; + else + bt_busy = false; + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_TRAFFIC_BUSY, &bt_busy); + + halbtc8723b1ant_run_coexist_mechanism(btcoexist); +} + +void ex_halbtc8723b1ant_halt_notify(struct btc_coexist *btcoexist) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, "[BTCoex], Halt notify\n"); + + btcoexist->stop_coex_dm = true; + + halbtc8723b1ant_SetAntPath(btcoexist, BTC_ANT_PATH_BT, false, true); + + halbtc8723b1ant_wifi_off_hw_cfg(btcoexist); + halbtc8723b1ant_ignore_wlan_act(btcoexist, FORCE_EXEC, true); + + halbtc8723b1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE, + 0x0, 0x0); + halbtc8723b1ant_ps_tdma(btcoexist, FORCE_EXEC, false, 0); + + ex_halbtc8723b1ant_media_status_notify(btcoexist, BTC_MEDIA_DISCONNECT); +} + +void ex_halbtc8723b1ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, "[BTCoex], Pnp notify\n"); + + if (BTC_WIFI_PNP_SLEEP == pnp_state) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], Pnp notify to SLEEP\n"); + btcoexist->stop_coex_dm = true; + halbtc8723b1ant_ignore_wlan_act(btcoexist, FORCE_EXEC, true); + halbtc8723b1ant_power_save_state(btcoexist, BTC_PS_WIFI_NATIVE, + 0x0, 0x0); + halbtc8723b1ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 9); + } else if (BTC_WIFI_PNP_WAKE_UP == pnp_state) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], Pnp notify to WAKE UP\n"); + btcoexist->stop_coex_dm = false; + halbtc8723b1ant_init_hw_config(btcoexist, false); + halbtc8723b1ant_init_coex_dm(btcoexist); + halbtc8723b1ant_query_bt_info(btcoexist); + } +} + +void ex_halbtc8723b1ant_periodical(struct btc_coexist *btcoexist) +{ + struct btc_board_info *board_info = &btcoexist->board_info; + struct btc_stack_info *stack_info = &btcoexist->stack_info; + static u8 dis_ver_info_cnt = 0; + u32 fw_ver = 0, bt_patch_ver = 0; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], ==========================" + "Periodical===========================\n"); + + if (dis_ver_info_cnt <= 5) { + dis_ver_info_cnt += 1; + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], *************************" + "***************************************\n"); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], Ant PG Num/ Ant Mech/ " + "Ant Pos = %d/ %d/ %d\n", \ + board_info->pg_ant_num, board_info->btdm_ant_num, + board_info->btdm_ant_pos); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], BT stack/ hci ext ver = %s / %d\n", \ + ((stack_info->profile_notified)? "Yes":"No"), + stack_info->hci_version); + btcoexist->btc_get(btcoexist, BTC_GET_U4_BT_PATCH_VER, + &bt_patch_ver); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_FW_VER, &fw_ver); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], CoexVer/ FwVer/ PatchVer " + "= %d_%x/ 0x%x/ 0x%x(%d)\n", \ + glcoex_ver_date_8723b_1ant, + glcoex_ver_8723b_1ant, fw_ver, + bt_patch_ver, bt_patch_ver); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], *****************************" + "***********************************\n"); + } + +#if(BT_AUTO_REPORT_ONLY_8723B_1ANT == 0) + halbtc8723b1ant_query_bt_info(btcoexist); + halbtc8723b1ant_monitor_bt_ctr(btcoexist); + halbtc8723b1ant_monitor_bt_enable_disable(btcoexist); +#else + if (halbtc8723b1ant_is_wifi_status_changed(btcoexist) || + coex_dm->auto_tdma_adjust) { + if (coex_sta->special_pkt_period_cnt > 2) + halbtc8723b1ant_run_coexist_mechanism(btcoexist); + } + + coex_sta->special_pkt_period_cnt++; +#endif +} + + +#endif + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/halbtc8723b1ant.h +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/halbtc8723b1ant.h @@ -0,0 +1,175 @@ +/********************************************************************** + * The following is for 8723B 1ANT BT Co-exist definition + **********************************************************************/ +#define BT_AUTO_REPORT_ONLY_8723B_1ANT 1 + +#define BT_INFO_8723B_1ANT_B_FTP BIT7 +#define BT_INFO_8723B_1ANT_B_A2DP BIT6 +#define BT_INFO_8723B_1ANT_B_HID BIT5 +#define BT_INFO_8723B_1ANT_B_SCO_BUSY BIT4 +#define BT_INFO_8723B_1ANT_B_ACL_BUSY BIT3 +#define BT_INFO_8723B_1ANT_B_INQ_PAGE BIT2 +#define BT_INFO_8723B_1ANT_B_SCO_ESCO BIT1 +#define BT_INFO_8723B_1ANT_B_CONNECTION BIT0 + +#define BT_INFO_8723B_1ANT_A2DP_BASIC_RATE(_BT_INFO_EXT_) \ + (((_BT_INFO_EXT_&BIT0))? true:false) + +#define BTC_RSSI_COEX_THRESH_TOL_8723B_1ANT 2 + +typedef enum _BT_INFO_SRC_8723B_1ANT{ + BT_INFO_SRC_8723B_1ANT_WIFI_FW = 0x0, + BT_INFO_SRC_8723B_1ANT_BT_RSP = 0x1, + BT_INFO_SRC_8723B_1ANT_BT_ACTIVE_SEND = 0x2, + BT_INFO_SRC_8723B_1ANT_MAX +}BT_INFO_SRC_8723B_1ANT,*PBT_INFO_SRC_8723B_1ANT; + +typedef enum _BT_8723B_1ANT_BT_STATUS{ + BT_8723B_1ANT_BT_STATUS_NON_CONNECTED_IDLE = 0x0, + BT_8723B_1ANT_BT_STATUS_CONNECTED_IDLE = 0x1, + BT_8723B_1ANT_BT_STATUS_INQ_PAGE = 0x2, + BT_8723B_1ANT_BT_STATUS_ACL_BUSY = 0x3, + BT_8723B_1ANT_BT_STATUS_SCO_BUSY = 0x4, + BT_8723B_1ANT_BT_STATUS_ACL_SCO_BUSY = 0x5, + BT_8723B_1ANT_BT_STATUS_MAX +}BT_8723B_1ANT_BT_STATUS,*PBT_8723B_1ANT_BT_STATUS; + +typedef enum _BT_8723B_1ANT_WIFI_STATUS{ + BT_8723B_1ANT_WIFI_STATUS_NON_CONNECTED_IDLE = 0x0, + BT_8723B_1ANT_WIFI_STATUS_NON_CONNECTED_ASSO_AUTH_SCAN = 0x1, + BT_8723B_1ANT_WIFI_STATUS_CONNECTED_SCAN = 0x2, + BT_8723B_1ANT_WIFI_STATUS_CONNECTED_SPECIAL_PKT = 0x3, + BT_8723B_1ANT_WIFI_STATUS_CONNECTED_IDLE = 0x4, + BT_8723B_1ANT_WIFI_STATUS_CONNECTED_BUSY = 0x5, + BT_8723B_1ANT_WIFI_STATUS_MAX +}BT_8723B_1ANT_WIFI_STATUS,*PBT_8723B_1ANT_WIFI_STATUS; + +typedef enum _BT_8723B_1ANT_COEX_ALGO{ + BT_8723B_1ANT_COEX_ALGO_UNDEFINED = 0x0, + BT_8723B_1ANT_COEX_ALGO_SCO = 0x1, + BT_8723B_1ANT_COEX_ALGO_HID = 0x2, + BT_8723B_1ANT_COEX_ALGO_A2DP = 0x3, + BT_8723B_1ANT_COEX_ALGO_A2DP_PANHS = 0x4, + BT_8723B_1ANT_COEX_ALGO_PANEDR = 0x5, + BT_8723B_1ANT_COEX_ALGO_PANHS = 0x6, + BT_8723B_1ANT_COEX_ALGO_PANEDR_A2DP = 0x7, + BT_8723B_1ANT_COEX_ALGO_PANEDR_HID = 0x8, + BT_8723B_1ANT_COEX_ALGO_HID_A2DP_PANEDR = 0x9, + BT_8723B_1ANT_COEX_ALGO_HID_A2DP = 0xa, + BT_8723B_1ANT_COEX_ALGO_MAX = 0xb, +}BT_8723B_1ANT_COEX_ALGO,*PBT_8723B_1ANT_COEX_ALGO; + +struct coex_dm_8723b_1ant{ + /* fw mechanism */ + bool pre_dec_bt_pwr; + bool cur_dec_bt_pwr; + u8 pre_fw_dac_swing_lvl; + u8 cur_fw_dac_swing_lvl; + bool cur_ignore_wlan_act; + bool pre_ignore_wlan_act; + u8 pre_ps_tdma; + u8 cur_ps_tdma; + u8 ps_tdma_para[5]; + u8 ps_tdma_du_adj_type; + bool auto_tdma_adjust; + bool pre_ps_tdma_on; + bool cur_ps_tdma_on; + bool pre_bt_auto_report; + bool cur_bt_auto_report; + u8 pre_lps; + u8 cur_lps; + u8 pre_rpwm; + u8 cur_rpwm; + + /* sw mechanism */ + bool pre_rf_rx_lpf_shrink; + bool cur_rf_rx_lpf_shrink; + u32 bt_rf0x1e_backup; + bool pre_low_penalty_ra; + bool cur_low_penalty_ra; + bool pre_dac_swing_on; + u32 pre_dac_swing_lvl; + bool cur_dac_swing_on; + u32 cur_dac_swing_lvl; + bool pre_adc_backoff; + bool cur_adc_backoff; + bool pre_agc_table_en; + bool cur_agc_table_en; + u32 pre_val0x6c0; + u32 cur_val0x6c0; + u32 pre_val0x6c4; + u32 cur_val0x6c4; + u32 pre_val0x6c8; + u32 cur_val0x6c8; + u8 pre_val0x6cc; + u8 cur_val0x6cc; + bool limited_dig; + + u32 backup_arfr_cnt1; /* Auto Rate Fallback Retry cnt */ + u32 backup_arfr_cnt2; /* Auto Rate Fallback Retry cnt */ + u16 backup_retry_limit; + u8 backup_ampdu_max_time; + + /* algorithm related */ + u8 pre_algorithm; + u8 cur_algorithm; + u8 bt_status; + u8 wifi_chnl_info[3]; + + u32 prera_mask; + u32 curra_mask; + u8 pre_arfr_type; + u8 cur_arfr_type; + u8 pre_retry_limit_type; + u8 cur_retry_limit_type; + u8 pre_ampdu_time_type; + u8 cur_ampdu_time_type; + + u8 error_condition; +}; + +struct coex_sta_8723b_1ant{ + bool bt_link_exist; + bool sco_exist; + bool a2dp_exist; + bool hid_exist; + bool pan_exist; + + bool under_lps; + bool under_ips; + u32 special_pkt_period_cnt; + u32 high_priority_tx; + u32 high_priority_rx; + u32 low_priority_tx; + u32 low_priority_rx; + u8 bt_rssi; + u8 pre_bt_rssi_state; + u8 pre_wifi_rssi_state[4]; + bool c2h_bt_info_req_sent; + u8 bt_info_c2h[BT_INFO_SRC_8723B_1ANT_MAX][10]; + u32 bt_info_c2h_cnt[BT_INFO_SRC_8723B_1ANT_MAX]; + bool c2h_bt_inquiry_page; + u8 bt_retry_cnt; + u8 bt_info_ext; +}; + +/************************************************************************* + * The following is interface which will notify coex module. + *************************************************************************/ +void ex_halbtc8723b1ant_init_hwconfig(struct btc_coexist *btcoexist); +void ex_halbtc8723b1ant_init_coex_dm(struct btc_coexist *btcoexist); +void ex_halbtc8723b1ant_ips_notify(struct btc_coexist *btcoexist, u8 type); +void ex_halbtc8723b1ant_lps_notify(struct btc_coexist *btcoexist, u8 type); +void ex_halbtc8723b1ant_scan_notify(struct btc_coexist *btcoexist, u8 type); +void ex_halbtc8723b1ant_connect_notify(struct btc_coexist *btcoexist, u8 type); +void ex_halbtc8723b1ant_media_status_notify(struct btc_coexist *btcoexist, + u8 type); +void ex_halbtc8723b1ant_special_packet_notify(struct btc_coexist *btcoexist, + u8 type); +void ex_halbtc8723b1ant_bt_info_notify(struct btc_coexist *btcoexist, + u8 *tmpbuf, u8 length); +void ex_halbtc8723b1ant_halt_notify(struct btc_coexist *btcoexist); +void ex_halbtc8723b1ant_pnp_notify(struct btc_coexist *btcoexist, u8 pnpState); +void ex_halbtc8723b1ant_periodical(struct btc_coexist *btcoexist); +void ex_halbtc8723b1ant_display_coex_info(struct btc_coexist *btcoexist); + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/halbtc8723b2ant.c +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/halbtc8723b2ant.c @@ -0,0 +1,4185 @@ +/*************************************************************** + * Description: + * + * This file is for RTL8723B Co-exist mechanism + * + * History + * 2012/11/15 Cosa first check in. + * + **************************************************************/ +/************************************************************** + * include files + **************************************************************/ +#include "halbt_precomp.h" +#if 1 +/************************************************************** + * Global variables, these are static variables + **************************************************************/ +static struct coex_dm_8723b_2ant glcoex_dm_8723b_2ant; +static struct coex_dm_8723b_2ant *coex_dm = &glcoex_dm_8723b_2ant; +static struct coex_sta_8723b_2ant glcoex_sta_8723b_2ant; +static struct coex_sta_8723b_2ant *coex_sta = &glcoex_sta_8723b_2ant; + +const char *const glbt_info_src_8723b_2ant[] = { + "BT Info[wifi fw]", + "BT Info[bt rsp]", + "BT Info[bt auto report]", +}; + +u32 glcoex_ver_date_8723b_2ant = 20131113; +u32 glcoex_ver_8723b_2ant = 0x3f; + +/************************************************************** + * local function proto type if needed + **************************************************************/ +/************************************************************** + * local function start with halbtc8723b2ant_ + **************************************************************/ +u8 halbtc8723b2ant_bt_rssi_state(u8 level_num, u8 rssi_thresh, u8 rssi_thresh1) +{ + s32 bt_rssi = 0; + u8 bt_rssi_state = coex_sta->pre_bt_rssi_state; + + bt_rssi = coex_sta->bt_rssi; + + if (level_num == 2) { + if ((coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_LOW) || + (coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_STAY_LOW)) { + if (bt_rssi >= rssi_thresh + + BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT) { + bt_rssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "switch to High\n"); + } else { + bt_rssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "stay at Low\n"); + } + } else { + if (bt_rssi < rssi_thresh) { + bt_rssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "switch to Low\n"); + } else { + bt_rssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "stay at High\n"); + } + } + } else if (level_num == 3) { + if (rssi_thresh > rssi_thresh1) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi thresh error!!\n"); + return coex_sta->pre_bt_rssi_state; + } + + if ((coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_LOW) || + (coex_sta->pre_bt_rssi_state == BTC_RSSI_STATE_STAY_LOW)) { + if (bt_rssi >= rssi_thresh + + BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT) { + bt_rssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "switch to Medium\n"); + } else { + bt_rssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "stay at Low\n"); + } + } else if ((coex_sta->pre_bt_rssi_state == + BTC_RSSI_STATE_MEDIUM) || + (coex_sta->pre_bt_rssi_state == + BTC_RSSI_STATE_STAY_MEDIUM)) { + if (bt_rssi >= rssi_thresh1 + + BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT) { + bt_rssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "switch to High\n"); + } else if (bt_rssi < rssi_thresh) { + bt_rssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "switch to Low\n"); + } else { + bt_rssi_state = BTC_RSSI_STATE_STAY_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "stay at Medium\n"); + } + } else { + if (bt_rssi < rssi_thresh1) { + bt_rssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "switch to Medium\n"); + } else { + bt_rssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_RSSI_STATE, + "[BTCoex], BT Rssi state " + "stay at High\n"); + } + } + } + + coex_sta->pre_bt_rssi_state = bt_rssi_state; + + return bt_rssi_state; +} + +u8 halbtc8723b2ant_wifi_rssi_state(struct btc_coexist *btcoexist, + u8 index, u8 level_num, + u8 rssi_thresh, u8 rssi_thresh1) +{ + s32 wifi_rssi=0; + u8 wifi_rssi_state = coex_sta->pre_wifi_rssi_state[index]; + + btcoexist->btc_get(btcoexist, BTC_GET_S4_WIFI_RSSI, &wifi_rssi); + + if (level_num == 2) { + if ((coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_LOW) || + (coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_STAY_LOW)) { + if (wifi_rssi >= rssi_thresh + + BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT) { + wifi_rssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "switch to High\n"); + } else { + wifi_rssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "stay at Low\n"); + } + } else { + if (wifi_rssi < rssi_thresh) { + wifi_rssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "switch to Low\n"); + } else { + wifi_rssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "stay at High\n"); + } + } + } else if (level_num == 3) { + if (rssi_thresh > rssi_thresh1) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI thresh error!!\n"); + return coex_sta->pre_wifi_rssi_state[index]; + } + + if ((coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_LOW) || + (coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_STAY_LOW)) { + if(wifi_rssi >= rssi_thresh + + BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT) { + wifi_rssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "switch to Medium\n"); + } else { + wifi_rssi_state = BTC_RSSI_STATE_STAY_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "stay at Low\n"); + } + } else if ((coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_MEDIUM) || + (coex_sta->pre_wifi_rssi_state[index] == + BTC_RSSI_STATE_STAY_MEDIUM)) { + if (wifi_rssi >= rssi_thresh1 + + BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT) { + wifi_rssi_state = BTC_RSSI_STATE_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "switch to High\n"); + } else if (wifi_rssi < rssi_thresh) { + wifi_rssi_state = BTC_RSSI_STATE_LOW; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "switch to Low\n"); + } else { + wifi_rssi_state = BTC_RSSI_STATE_STAY_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "stay at Medium\n"); + } + } else { + if (wifi_rssi < rssi_thresh1) { + wifi_rssi_state = BTC_RSSI_STATE_MEDIUM; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "switch to Medium\n"); + } else { + wifi_rssi_state = BTC_RSSI_STATE_STAY_HIGH; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_WIFI_RSSI_STATE, + "[BTCoex], wifi RSSI state " + "stay at High\n"); + } + } + } + + coex_sta->pre_wifi_rssi_state[index] = wifi_rssi_state; + + return wifi_rssi_state; +} + +void halbtc8723b2ant_monitor_bt_enable_disable(struct btc_coexist *btcoexist) +{ + static bool pre_bt_disabled = false; + static u32 bt_disable_cnt = 0; + bool bt_active = true, bt_disabled = false; + + /* This function check if bt is disabled */ + if (coex_sta->high_priority_tx == 0 && + coex_sta->high_priority_rx == 0 && + coex_sta->low_priority_tx == 0 && + coex_sta->low_priority_rx == 0) + bt_active = false; + + if (coex_sta->high_priority_tx == 0xffff && + coex_sta->high_priority_rx == 0xffff && + coex_sta->low_priority_tx == 0xffff && + coex_sta->low_priority_rx == 0xffff) + bt_active = true; + + if (bt_active) { + bt_disable_cnt = 0; + bt_disabled = false; + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_DISABLE, + &bt_disabled); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex], BT is enabled !!\n"); + } else { + bt_disable_cnt++; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex], bt all counters=0, %d times!!\n", + bt_disable_cnt); + if (bt_disable_cnt >= 2) { + bt_disabled = true; + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_DISABLE, + &bt_disabled); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex], BT is disabled !!\n"); + } + } + + if (pre_bt_disabled != bt_disabled) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex], BT is from %s to %s!!\n", + (pre_bt_disabled ? "disabled":"enabled"), + (bt_disabled ? "disabled":"enabled")); + + pre_bt_disabled = bt_disabled; + if (!bt_disabled) { + } else { + } + } +} + +void halbtc8723b2ant_monitor_bt_ctr(struct btc_coexist *btcoexist) +{ + u32 reg_hp_txrx, reg_lp_txrx, u32tmp; + u32 reg_hp_tx = 0, reg_hp_rx = 0; + u32 reg_lp_tx = 0, reg_lp_rx = 0; + + reg_hp_txrx = 0x770; + reg_lp_txrx = 0x774; + + u32tmp = btcoexist->btc_read_4byte(btcoexist, reg_hp_txrx); + reg_hp_tx = u32tmp & MASKLWORD; + reg_hp_rx = (u32tmp & MASKHWORD) >> 16; + + u32tmp = btcoexist->btc_read_4byte(btcoexist, reg_lp_txrx); + reg_lp_tx = u32tmp & MASKLWORD; + reg_lp_rx = (u32tmp & MASKHWORD) >> 16; + + coex_sta->high_priority_tx = reg_hp_tx; + coex_sta->high_priority_rx = reg_hp_rx; + coex_sta->low_priority_tx = reg_lp_tx; + coex_sta->low_priority_rx = reg_lp_rx; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex], High Priority Tx/Rx(reg 0x%x)=0x%x(%d)/0x%x(%d)\n", + reg_hp_txrx, reg_hp_tx, reg_hp_tx, reg_hp_rx, reg_hp_rx); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_BT_MONITOR, + "[BTCoex], Low Priority Tx/Rx(reg 0x%x)=0x%x(%d)/0x%x(%d)\n", + reg_lp_txrx, reg_lp_tx, reg_lp_tx, reg_lp_rx, reg_lp_rx); + + /* reset counter */ + btcoexist->btc_write_1byte(btcoexist, 0x76e, 0xc); +} + +void halbtc8723b2ant_query_bt_info(struct btc_coexist *btcoexist) +{ + u8 h2c_parameter[1] ={0}; + + coex_sta->c2h_bt_info_req_sent = true; + + h2c_parameter[0] |= BIT0; /* trigger */ + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], Query Bt Info, FW write 0x61=0x%x\n", + h2c_parameter[0]); + + btcoexist->btc_fill_h2c(btcoexist, 0x61, 1, h2c_parameter); +} + +bool halbtc8723b2ant_is_wifi_status_changed(struct btc_coexist *btcoexist) +{ + static bool pre_wifi_busy = false; + static bool pre_under_4way = false; + static bool pre_bt_hs_on = false; + bool wifi_busy = false, under_4way = false, bt_hs_on = false; + bool wifi_connected = false; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_4_WAY_PROGRESS, + &under_4way); + + if (wifi_connected) { + if (wifi_busy != pre_wifi_busy) { + pre_wifi_busy = wifi_busy; + return true; + } + + if (under_4way != pre_under_4way) { + pre_under_4way = under_4way; + return true; + } + + if (bt_hs_on != pre_bt_hs_on) { + pre_bt_hs_on = bt_hs_on; + return true; + } + } + + return false; +} + +void halbtc8723b2ant_update_bt_link_info(struct btc_coexist *btcoexist) +{ + /*struct btc_stack_info *stack_info = &btcoexist->stack_info;*/ + struct btc_bt_link_info *bt_link_info = &btcoexist->bt_link_info; + bool bt_hs_on = false; + +#if(BT_AUTO_REPORT_ONLY_8723B_2ANT == 1) /* profile from bt patch */ + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + + bt_link_info->bt_link_exist = coex_sta->bt_link_exist; + bt_link_info->sco_exist = coex_sta->sco_exist; + bt_link_info->a2dp_exist = coex_sta->a2dp_exist; + bt_link_info->pan_exist = coex_sta->pan_exist; + bt_link_info->hid_exist = coex_sta->hid_exist; + + /* work around for HS mode. */ + if (bt_hs_on) { + bt_link_info->pan_exist = true; + bt_link_info->bt_link_exist = true; + } +#else /* profile from bt stack */ + bt_link_info->bt_link_exist = stack_info->bt_link_exist; + bt_link_info->sco_exist = stack_info->sco_exist; + bt_link_info->a2dp_exist = stack_info->a2dp_exist; + bt_link_info->pan_exist = stack_info->pan_exist; + bt_link_info->hid_exist = stack_info->hid_exist; + + /*for win-8 stack HID report error*/ + if (!stack_info->hid_exist) + stack_info->hid_exist = coex_sta->hid_exist; + /*sync BTInfo with BT firmware and stack*/ + /* when stack HID report error, here we use the info from bt fw.*/ + if (!stack_info->bt_link_exist) + stack_info->bt_link_exist = coex_sta->bt_link_exist; +#endif + /* check if Sco only */ + if (bt_link_info->sco_exist && !bt_link_info->a2dp_exist && + !bt_link_info->pan_exist && !bt_link_info->hid_exist) + bt_link_info->sco_only = true; + else + bt_link_info->sco_only = false; + + /* check if A2dp only */ + if (!bt_link_info->sco_exist && bt_link_info->a2dp_exist && + !bt_link_info->pan_exist && !bt_link_info->hid_exist) + bt_link_info->a2dp_only = true; + else + bt_link_info->a2dp_only = false; + + /* check if Pan only */ + if (!bt_link_info->sco_exist && !bt_link_info->a2dp_exist && + bt_link_info->pan_exist && !bt_link_info->hid_exist) + bt_link_info->pan_only = true; + else + bt_link_info->pan_only = false; + + /* check if Hid only */ + if (!bt_link_info->sco_exist && !bt_link_info->a2dp_exist && + !bt_link_info->pan_exist && bt_link_info->hid_exist) + bt_link_info->hid_only = true; + else + bt_link_info->hid_only = false; +} + +u8 halbtc8723b2ant_action_algorithm(struct btc_coexist *btcoexist) +{ + struct btc_bt_link_info *bt_link_info=&btcoexist->bt_link_info; + bool bt_hs_on = false; + u8 algorithm = BT_8723B_2ANT_COEX_ALGO_UNDEFINED; + u8 num_of_diff_profile = 0; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + + if (!bt_link_info->bt_link_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], No BT link exists!!!\n"); + return algorithm; + } + + if (bt_link_info->sco_exist) + num_of_diff_profile++; + if (bt_link_info->hid_exist) + num_of_diff_profile++; + if (bt_link_info->pan_exist) + num_of_diff_profile++; + if (bt_link_info->a2dp_exist) + num_of_diff_profile++; + + if (num_of_diff_profile == 1) { + if (bt_link_info->sco_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO only\n"); + algorithm = BT_8723B_2ANT_COEX_ALGO_SCO; + } else { + if (bt_link_info->hid_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], HID only\n"); + algorithm = BT_8723B_2ANT_COEX_ALGO_HID; + } else if (bt_link_info->a2dp_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], A2DP only\n"); + algorithm = BT_8723B_2ANT_COEX_ALGO_A2DP; + } else if (bt_link_info->pan_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], PAN(HS) only\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANHS; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], PAN(EDR) only\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANEDR; + } + } + } + } else if (num_of_diff_profile == 2) { + if (bt_link_info->sco_exist) { + if (bt_link_info->hid_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + HID\n"); + algorithm = BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } else if (bt_link_info->a2dp_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + A2DP ==> SCO\n"); + algorithm = BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } else if (bt_link_info->pan_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + PAN(HS)\n"); + algorithm = BT_8723B_2ANT_COEX_ALGO_SCO; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + PAN(EDR)\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } + } + } else { + if (bt_link_info->hid_exist && + bt_link_info->a2dp_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], HID + A2DP\n"); + algorithm = BT_8723B_2ANT_COEX_ALGO_HID_A2DP; + } else if (bt_link_info->hid_exist && + bt_link_info->pan_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], HID + PAN(HS)\n"); + algorithm = BT_8723B_2ANT_COEX_ALGO_HID; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], HID + PAN(EDR)\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } + } else if (bt_link_info->pan_exist && + bt_link_info->a2dp_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], A2DP + PAN(HS)\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_A2DP_PANHS; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex],A2DP + PAN(EDR)\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANEDR_A2DP; + } + } + } + } else if (num_of_diff_profile == 3) { + if (bt_link_info->sco_exist) { + if (bt_link_info->hid_exist && + bt_link_info->a2dp_exist) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + HID + A2DP" + " ==> HID\n"); + algorithm = BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } else if (bt_link_info->hid_exist && + bt_link_info->pan_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + HID + " + "PAN(HS)\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + HID + " + "PAN(EDR)\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } + } else if (bt_link_info->pan_exist && + bt_link_info->a2dp_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + A2DP + " + "PAN(HS)\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + A2DP + " + "PAN(EDR) ==> HID\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } + } + } else { + if (bt_link_info->hid_exist && + bt_link_info->pan_exist && + bt_link_info->a2dp_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], HID + A2DP + " + "PAN(HS)\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_HID_A2DP; + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], HID + A2DP + " + "PAN(EDR)\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_HID_A2DP_PANEDR; + } + } + } + } else if (num_of_diff_profile >= 3) { + if (bt_link_info->sco_exist) { + if (bt_link_info->hid_exist && + bt_link_info->pan_exist && + bt_link_info->a2dp_exist) { + if (bt_hs_on) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Error!!! SCO + HID" + " + A2DP + PAN(HS)\n"); + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], SCO + HID + A2DP +" + " PAN(EDR)==>PAN(EDR)+HID\n"); + algorithm = + BT_8723B_2ANT_COEX_ALGO_PANEDR_HID; + } + } + } + } + + return algorithm; +} + +bool halbtc8723b2ant_need_to_dec_bt_pwr(struct btc_coexist *btcoexist) +{ + bool bRet = false; + bool bt_hs_on = false, wifi_connected = false; + s32 bt_hs_rssi=0; + u8 bt_rssi_state; + + if (!btcoexist->btc_get(btcoexist, + BTC_GET_BL_HS_OPERATION, &bt_hs_on)) + return false; + if (!btcoexist->btc_get(btcoexist, + BTC_GET_BL_WIFI_CONNECTED, &wifi_connected)) + return false; + if (!btcoexist->btc_get(btcoexist, + BTC_GET_S4_HS_RSSI, &bt_hs_rssi)) + return false; + + bt_rssi_state = halbtc8723b2ant_bt_rssi_state(2, 29, 0); + + if (wifi_connected) { + if (bt_hs_on) { + if (bt_hs_rssi > 37) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], Need to decrease bt " + "power for HS mode!!\n"); + bRet = true; + } + } else { + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], Need to decrease bt " + "power for Wifi is connected!!\n"); + bRet = true; + } + } + } + + return bRet; +} + +void halbtc8723b2ant_set_fw_dac_swing_level(struct btc_coexist *btcoexist, + u8 dac_swing_lvl) +{ + u8 h2c_parameter[1] ={0}; + + /* There are several type of dacswing + * 0x18/ 0x10/ 0xc/ 0x8/ 0x4/ 0x6 */ + h2c_parameter[0] = dac_swing_lvl; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], Set Dac Swing Level=0x%x\n", dac_swing_lvl); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], FW write 0x64=0x%x\n", h2c_parameter[0]); + + btcoexist->btc_fill_h2c(btcoexist, 0x64, 1, h2c_parameter); +} + +void halbtc8723b2ant_set_fw_dec_bt_pwr(struct btc_coexist *btcoexist, + bool dec_bt_pwr) +{ + u8 h2c_parameter[1] = {0}; + + h2c_parameter[0] = 0; + + if (dec_bt_pwr) + h2c_parameter[0] |= BIT1; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], decrease Bt Power : %s, FW write 0x62=0x%x\n", + (dec_bt_pwr? "Yes!!":"No!!"), h2c_parameter[0]); + + btcoexist->btc_fill_h2c(btcoexist, 0x62, 1, h2c_parameter); +} + +void halbtc8723b2ant_dec_bt_pwr(struct btc_coexist *btcoexist, + bool force_exec, bool dec_bt_pwr) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s Dec BT power = %s\n", + (force_exec? "force to":""), (dec_bt_pwr? "ON":"OFF")); + coex_dm->cur_dec_bt_pwr = dec_bt_pwr; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], bPreDecBtPwr=%d, bCurDecBtPwr=%d\n", + coex_dm->pre_dec_bt_pwr, coex_dm->cur_dec_bt_pwr); + + if (coex_dm->pre_dec_bt_pwr == coex_dm->cur_dec_bt_pwr) + return; + } + halbtc8723b2ant_set_fw_dec_bt_pwr(btcoexist, coex_dm->cur_dec_bt_pwr); + + coex_dm->pre_dec_bt_pwr = coex_dm->cur_dec_bt_pwr; +} + +void halbtc8723b2ant_set_bt_auto_report(struct btc_coexist *btcoexist, + bool enable_auto_report) +{ + u8 h2c_parameter[1] = {0}; + h2c_parameter[0] = 0; + + if (enable_auto_report) + h2c_parameter[0] |= BIT0; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], BT FW auto report : %s, FW write 0x68=0x%x\n", + (enable_auto_report? "Enabled!!":"Disabled!!"), + h2c_parameter[0]); + + btcoexist->btc_fill_h2c(btcoexist, 0x68, 1, h2c_parameter); +} + +void halbtc8723b2ant_bt_auto_report(struct btc_coexist *btcoexist, + bool force_exec, bool enable_auto_report) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s BT Auto report = %s\n", + (force_exec? "force to":""), + ((enable_auto_report)? "Enabled":"Disabled")); + coex_dm->cur_bt_auto_report = enable_auto_report; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], bPreBtAutoReport=%d, " + "bCurBtAutoReport=%d\n", + coex_dm->pre_bt_auto_report, + coex_dm->cur_bt_auto_report); + + if (coex_dm->pre_bt_auto_report == coex_dm->cur_bt_auto_report) + return; + } + halbtc8723b2ant_set_bt_auto_report(btcoexist, + coex_dm->cur_bt_auto_report); + + coex_dm->pre_bt_auto_report = coex_dm->cur_bt_auto_report; +} + +void halbtc8723b2ant_fw_dac_swing_lvl(struct btc_coexist *btcoexist, + bool force_exec, u8 fw_dac_swing_lvl) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s set FW Dac Swing level = %d\n", + (force_exec? "force to":""), fw_dac_swing_lvl); + coex_dm->cur_fw_dac_swing_lvl = fw_dac_swing_lvl; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], preFwDacSwingLvl=%d, " + "curFwDacSwingLvl=%d\n", + coex_dm->pre_fw_dac_swing_lvl, + coex_dm->cur_fw_dac_swing_lvl); + + if(coex_dm->pre_fw_dac_swing_lvl == + coex_dm->cur_fw_dac_swing_lvl) + return; + } + + halbtc8723b2ant_set_fw_dac_swing_level(btcoexist, + coex_dm->cur_fw_dac_swing_lvl); + coex_dm->pre_fw_dac_swing_lvl = coex_dm->cur_fw_dac_swing_lvl; +} + +void halbtc8723b2ant_set_sw_rf_rx_lpf_corner(struct btc_coexist *btcoexist, + bool rx_rf_shrink_on) +{ + if (rx_rf_shrink_on) { + /* Shrink RF Rx LPF corner */ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Shrink RF Rx LPF corner!!\n"); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1e, + 0xfffff, 0xffffc); + } else { + /* Resume RF Rx LPF corner */ + /* After initialized, we can use coex_dm->btRf0x1eBackup */ + if (btcoexist->initilized) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Resume RF Rx LPF corner!!\n"); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1e, + 0xfffff, + coex_dm->bt_rf0x1e_backup); + } + } +} + +void halbtc8723b2ant_rf_shrink(struct btc_coexist *btcoexist, + bool force_exec, bool rx_rf_shrink_on) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s turn Rx RF Shrink = %s\n", + (force_exec? "force to":""), (rx_rf_shrink_on? "ON":"OFF")); + coex_dm->cur_rf_rx_lpf_shrink = rx_rf_shrink_on; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], bPreRfRxLpfShrink=%d, " + "bCurRfRxLpfShrink=%d\n", + coex_dm->pre_rf_rx_lpf_shrink, + coex_dm->cur_rf_rx_lpf_shrink); + + if (coex_dm->pre_rf_rx_lpf_shrink == + coex_dm->cur_rf_rx_lpf_shrink) + return; + } + halbtc8723b2ant_set_sw_rf_rx_lpf_corner(btcoexist, + coex_dm->cur_rf_rx_lpf_shrink); + + coex_dm->pre_rf_rx_lpf_shrink = coex_dm->cur_rf_rx_lpf_shrink; +} + +void halbtc8723b2ant_set_sw_penalty_txrate_adaptive( + struct btc_coexist *btcoexist, + bool low_penalty_ra) +{ + u8 h2c_parameter[6] ={0}; + + h2c_parameter[0] = 0x6; /* opCode, 0x6= Retry_Penalty*/ + + if (low_penalty_ra) { + h2c_parameter[1] |= BIT0; + /*normal rate except MCS7/6/5, OFDM54/48/36*/ + h2c_parameter[2] = 0x00; + h2c_parameter[3] = 0xf7; /*MCS7 or OFDM54*/ + h2c_parameter[4] = 0xf8; /*MCS6 or OFDM48*/ + h2c_parameter[5] = 0xf9; /*MCS5 or OFDM36*/ + } + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], set WiFi Low-Penalty Retry: %s", + (low_penalty_ra? "ON!!":"OFF!!")); + + btcoexist->btc_fill_h2c(btcoexist, 0x69, 6, h2c_parameter); +} + +void halbtc8723b2ant_low_penalty_ra(struct btc_coexist *btcoexist, + bool force_exec, bool low_penalty_ra) +{ + /*return; */ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s turn LowPenaltyRA = %s\n", + (force_exec? "force to":""), (low_penalty_ra? "ON":"OFF")); + coex_dm->cur_low_penalty_ra = low_penalty_ra; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], bPreLowPenaltyRa=%d, " + "bCurLowPenaltyRa=%d\n", + coex_dm->pre_low_penalty_ra, + coex_dm->cur_low_penalty_ra); + + if (coex_dm->pre_low_penalty_ra == coex_dm->cur_low_penalty_ra) + return; + } + halbtc8723b2ant_set_sw_penalty_txrate_adaptive(btcoexist, + coex_dm->cur_low_penalty_ra); + + coex_dm->pre_low_penalty_ra = coex_dm->cur_low_penalty_ra; +} + +void halbtc8723b2ant_set_dac_swing_reg(struct btc_coexist * btcoexist, + u32 level) +{ + u8 val = (u8) level; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Write SwDacSwing = 0x%x\n", level); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x883, 0x3e, val); +} + +void halbtc8723b2ant_set_sw_fulltime_dac_swing(struct btc_coexist *btcoexist, + bool sw_dac_swing_on, + u32 sw_dac_swing_lvl) +{ + if(sw_dac_swing_on) + halbtc8723b2ant_set_dac_swing_reg(btcoexist, sw_dac_swing_lvl); + else + halbtc8723b2ant_set_dac_swing_reg(btcoexist, 0x18); +} + + +void halbtc8723b2ant_dac_swing(struct btc_coexist *btcoexist, + bool force_exec, bool dac_swing_on, + u32 dac_swing_lvl) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s turn DacSwing=%s, dac_swing_lvl=0x%x\n", + (force_exec? "force to":""), + (dac_swing_on? "ON":"OFF"), dac_swing_lvl); + coex_dm->cur_dac_swing_on = dac_swing_on; + coex_dm->cur_dac_swing_lvl = dac_swing_lvl; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], bPreDacSwingOn=%d, preDacSwingLvl=0x%x," + " bCurDacSwingOn=%d, curDacSwingLvl=0x%x\n", + coex_dm->pre_dac_swing_on, coex_dm->pre_dac_swing_lvl, + coex_dm->cur_dac_swing_on, + coex_dm->cur_dac_swing_lvl); + + if ((coex_dm->pre_dac_swing_on == coex_dm->cur_dac_swing_on) && + (coex_dm->pre_dac_swing_lvl == coex_dm->cur_dac_swing_lvl)) + return; + } + mdelay(30); + halbtc8723b2ant_set_sw_fulltime_dac_swing(btcoexist, dac_swing_on, + dac_swing_lvl); + + coex_dm->pre_dac_swing_on = coex_dm->cur_dac_swing_on; + coex_dm->pre_dac_swing_lvl = coex_dm->cur_dac_swing_lvl; +} + +void halbtc8723b2ant_set_adc_backoff(struct btc_coexist *btcoexist, + bool adc_backoff) +{ + if (adc_backoff) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], BB BackOff Level On!\n"); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0xc05, 0x30, 0x3); + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], BB BackOff Level Off!\n"); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0xc05, 0x30, 0x1); + } +} + +void halbtc8723b2ant_adc_backoff(struct btc_coexist *btcoexist, + bool force_exec, bool adc_backoff) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s turn AdcBackOff = %s\n", + (force_exec? "force to":""), (adc_backoff? "ON":"OFF")); + coex_dm->cur_adc_back_off = adc_backoff; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], bPreAdcBackOff=%d, bCurAdcBackOff=%d\n", + coex_dm->pre_adc_back_off, + coex_dm->cur_adc_back_off); + + if (coex_dm->pre_adc_back_off == coex_dm->cur_adc_back_off) + return; + } + halbtc8723b2ant_set_adc_backoff(btcoexist, coex_dm->cur_adc_back_off); + + coex_dm->pre_adc_back_off = coex_dm->cur_adc_back_off; +} + +void halbtc8723b2ant_set_agc_table(struct btc_coexist *btcoexist, + bool agc_table_en) +{ + u8 rssi_adjust_val = 0; + + /* BB AGC Gain Table */ + if (agc_table_en) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], BB Agc Table On!\n"); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x6e1A0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x6d1B0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x6c1C0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x6b1D0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x6a1E0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x691F0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0x68200001); + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], BB Agc Table Off!\n"); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xaa1A0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xa91B0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xa81C0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xa71D0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xa61E0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xa51F0001); + btcoexist->btc_write_4byte(btcoexist, 0xc78, 0xa4200001); + } + + + /* RF Gain */ + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0xef, 0xfffff, 0x02000); + if (agc_table_en) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Agc Table On!\n"); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, + 0xfffff, 0x38fff); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, + 0xfffff, 0x38ffe); + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Agc Table Off!\n"); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, + 0xfffff, 0x380c3); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x3b, + 0xfffff, 0x28ce6); + } + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0xef, 0xfffff, 0x0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0xed, 0xfffff, 0x1); + + if (agc_table_en) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Agc Table On!\n"); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x40, + 0xfffff, 0x38fff); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x40, + 0xfffff, 0x38ffe); + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], Agc Table Off!\n"); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x40, + 0xfffff, 0x380c3); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x40, + 0xfffff, 0x28ce6); + } + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0xed, 0xfffff, 0x0); + + /* set rssiAdjustVal for wifi module. */ + if (agc_table_en) + rssi_adjust_val = 8; + btcoexist->btc_set(btcoexist, BTC_SET_U1_RSSI_ADJ_VAL_FOR_AGC_TABLE_ON, + &rssi_adjust_val); +} + +void halbtc8723b2ant_agc_table(struct btc_coexist *btcoexist, + bool force_exec, bool agc_table_en) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s %s Agc Table\n", + (force_exec? "force to":""), + (agc_table_en? "Enable":"Disable")); + coex_dm->cur_agc_table_en = agc_table_en; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], bPreAgcTableEn=%d, bCurAgcTableEn=%d\n", + coex_dm->pre_agc_table_en, coex_dm->cur_agc_table_en); + + if (coex_dm->pre_agc_table_en == coex_dm->cur_agc_table_en) + return; + } + halbtc8723b2ant_set_agc_table(btcoexist, agc_table_en); + + coex_dm->pre_agc_table_en = coex_dm->cur_agc_table_en; +} + +void halbtc8723b2ant_set_coex_table(struct btc_coexist *btcoexist, + u32 val0x6c0, u32 val0x6c4, + u32 val0x6c8, u8 val0x6cc) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], set coex table, set 0x6c0=0x%x\n", val0x6c0); + btcoexist->btc_write_4byte(btcoexist, 0x6c0, val0x6c0); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], set coex table, set 0x6c4=0x%x\n", val0x6c4); + btcoexist->btc_write_4byte(btcoexist, 0x6c4, val0x6c4); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], set coex table, set 0x6c8=0x%x\n", val0x6c8); + btcoexist->btc_write_4byte(btcoexist, 0x6c8, val0x6c8); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_EXEC, + "[BTCoex], set coex table, set 0x6cc=0x%x\n", val0x6cc); + btcoexist->btc_write_1byte(btcoexist, 0x6cc, val0x6cc); +} + +void halbtc8723b2ant_coex_table(struct btc_coexist *btcoexist, + bool force_exec, u32 val0x6c0, + u32 val0x6c4, u32 val0x6c8, + u8 val0x6cc) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW, + "[BTCoex], %s write Coex Table 0x6c0=0x%x," + " 0x6c4=0x%x, 0x6c8=0x%x, 0x6cc=0x%x\n", + (force_exec? "force to":""), val0x6c0, + val0x6c4, val0x6c8, val0x6cc); + coex_dm->cur_val0x6c0 = val0x6c0; + coex_dm->cur_val0x6c4 = val0x6c4; + coex_dm->cur_val0x6c8 = val0x6c8; + coex_dm->cur_val0x6cc = val0x6cc; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], preVal0x6c0=0x%x, " + "preVal0x6c4=0x%x, preVal0x6c8=0x%x, " + "preVal0x6cc=0x%x !!\n", + coex_dm->pre_val0x6c0, coex_dm->pre_val0x6c4, + coex_dm->pre_val0x6c8, coex_dm->pre_val0x6cc); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_SW_DETAIL, + "[BTCoex], curVal0x6c0=0x%x, " + "curVal0x6c4=0x%x, curVal0x6c8=0x%x, " + "curVal0x6cc=0x%x !!\n", + coex_dm->cur_val0x6c0, coex_dm->cur_val0x6c4, + coex_dm->cur_val0x6c8, coex_dm->cur_val0x6cc); + + if ((coex_dm->pre_val0x6c0 == coex_dm->cur_val0x6c0) && + (coex_dm->pre_val0x6c4 == coex_dm->cur_val0x6c4) && + (coex_dm->pre_val0x6c8 == coex_dm->cur_val0x6c8) && + (coex_dm->pre_val0x6cc == coex_dm->cur_val0x6cc)) + return; + } + halbtc8723b2ant_set_coex_table(btcoexist, val0x6c0, val0x6c4, + val0x6c8, val0x6cc); + + coex_dm->pre_val0x6c0 = coex_dm->cur_val0x6c0; + coex_dm->pre_val0x6c4 = coex_dm->cur_val0x6c4; + coex_dm->pre_val0x6c8 = coex_dm->cur_val0x6c8; + coex_dm->pre_val0x6cc = coex_dm->cur_val0x6cc; +} + +void halbtc8723b2ant_coex_table_with_type(struct btc_coexist *btcoexist, + bool force_exec, u8 type) +{ + switch (type) { + case 0: + halbtc8723b2ant_coex_table(btcoexist, force_exec, 0x55555555, + 0x55555555, 0xffff, 0x3); + break; + case 1: + halbtc8723b2ant_coex_table(btcoexist, force_exec, 0x55555555, + 0x5afa5afa, 0xffff, 0x3); + break; + case 2: + halbtc8723b2ant_coex_table(btcoexist, force_exec, 0x5a5a5a5a, + 0x5a5a5a5a, 0xffff, 0x3); + break; + case 3: + halbtc8723b2ant_coex_table(btcoexist, force_exec, 0xaaaaaaaa, + 0xaaaaaaaa, 0xffff, 0x3); + break; + case 4: + halbtc8723b2ant_coex_table(btcoexist, force_exec, 0xffffffff, + 0xffffffff, 0xffff, 0x3); + break; + case 5: + halbtc8723b2ant_coex_table(btcoexist, force_exec, 0x5fff5fff, + 0x5fff5fff, 0xffff, 0x3); + break; + case 6: + halbtc8723b2ant_coex_table(btcoexist, force_exec, 0x55ff55ff, + 0x5a5a5a5a, 0xffff, 0x3); + break; + case 7: + halbtc8723b2ant_coex_table(btcoexist, force_exec, 0x55ff55ff, + 0x5afa5afa, 0xffff, 0x3); + break; + case 8: + halbtc8723b2ant_coex_table(btcoexist, force_exec, 0x5aea5aea, + 0x5aea5aea, 0xffff, 0x3); + break; + case 9: + halbtc8723b2ant_coex_table(btcoexist, force_exec, 0x55ff55ff, + 0x5aea5aea, 0xffff, 0x3); + break; + case 10: + halbtc8723b2ant_coex_table(btcoexist, force_exec, 0x55ff55ff, + 0x5aff5aff, 0xffff, 0x3); + break; + case 11: + halbtc8723b2ant_coex_table(btcoexist, force_exec, 0x55ff55ff, + 0x5a5f5a5f, 0xffff, 0x3); + break; + case 12: + halbtc8723b2ant_coex_table(btcoexist, force_exec, 0x55ff55ff, + 0x5f5f5f5f, 0xffff, 0x3); + break; + default: + break; + } +} + +void halbtc8723b2ant_set_fw_ignore_wlan_act(struct btc_coexist *btcoexist, + bool enable) +{ + u8 h2c_parameter[1] ={0}; + + if (enable) + h2c_parameter[0] |= BIT0;/* function enable*/ + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], set FW for BT Ignore Wlan_Act, " + "FW write 0x63=0x%x\n", h2c_parameter[0]); + + btcoexist->btc_fill_h2c(btcoexist, 0x63, 1, h2c_parameter); +} + +void halbtc8723b2ant_ignore_wlan_act(struct btc_coexist *btcoexist, + bool force_exec, bool enable) +{ + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s turn Ignore WlanAct %s\n", + (force_exec? "force to":""), (enable? "ON":"OFF")); + coex_dm->cur_ignore_wlan_act = enable; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], bPreIgnoreWlanAct = %d, " + "bCurIgnoreWlanAct = %d!!\n", + coex_dm->pre_ignore_wlan_act, + coex_dm->cur_ignore_wlan_act); + + if (coex_dm->pre_ignore_wlan_act == + coex_dm->cur_ignore_wlan_act) + return; + } + halbtc8723b2ant_set_fw_ignore_wlan_act(btcoexist, enable); + + coex_dm->pre_ignore_wlan_act = coex_dm->cur_ignore_wlan_act; +} + +void halbtc8723b2ant_set_fw_ps_tdma(struct btc_coexist *btcoexist, u8 byte1, + u8 byte2, u8 byte3, u8 byte4, u8 byte5) +{ + u8 h2c_parameter[5] ={0}; + + h2c_parameter[0] = byte1; + h2c_parameter[1] = byte2; + h2c_parameter[2] = byte3; + h2c_parameter[3] = byte4; + h2c_parameter[4] = byte5; + + coex_dm->ps_tdma_para[0] = byte1; + coex_dm->ps_tdma_para[1] = byte2; + coex_dm->ps_tdma_para[2] = byte3; + coex_dm->ps_tdma_para[3] = byte4; + coex_dm->ps_tdma_para[4] = byte5; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], FW write 0x60(5bytes)=0x%x%08x\n", + h2c_parameter[0], + h2c_parameter[1] << 24 | h2c_parameter[2] << 16 | + h2c_parameter[3] << 8 | h2c_parameter[4]); + + btcoexist->btc_fill_h2c(btcoexist, 0x60, 5, h2c_parameter); +} + +void halbtc8723b2ant_sw_mechanism1(struct btc_coexist *btcoexist, + bool shrink_rx_lpf, bool low_penalty_ra, + bool limited_dig, bool bt_lna_constrain) +{ + /* + u32 wifi_bw; + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if(BTC_WIFI_BW_HT40 != wifi_bw) //only shrink RF Rx LPF for HT40 + { + if (shrink_rx_lpf) + shrink_rx_lpf = false; + } + */ + + halbtc8723b2ant_rf_shrink(btcoexist, NORMAL_EXEC, shrink_rx_lpf); + halbtc8723b2ant_low_penalty_ra(btcoexist, NORMAL_EXEC, low_penalty_ra); +} + +void halbtc8723b2ant_sw_mechanism2(struct btc_coexist *btcoexist, + bool agc_table_shift, bool adc_backoff, + bool sw_dac_swing, u32 dac_swing_lvl) +{ + halbtc8723b2ant_agc_table(btcoexist, NORMAL_EXEC, agc_table_shift); + /*halbtc8723b2ant_adc_backoff(btcoexist, NORMAL_EXEC, adc_backoff);*/ + halbtc8723b2ant_dac_swing(btcoexist, NORMAL_EXEC, sw_dac_swing, + dac_swing_lvl); +} + +void halbtc8723b2ant_set_ant_path(struct btc_coexist *btcoexist, + u8 antpos_type, bool init_hwcfg, + bool wifi_off) +{ + struct btc_board_info *board_info = &btcoexist->board_info; + u32 fw_ver = 0, u32tmp=0; + bool pg_ext_switch = false; + bool use_ext_switch = false; + u8 h2c_parameter[2] ={0}; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_EXT_SWITCH, &pg_ext_switch); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_FW_VER, &fw_ver); + + if ((fw_ver<0xc0000) || pg_ext_switch) + use_ext_switch = true; + + if (init_hwcfg) { + /* 0x4c[23]=0, 0x4c[24]=1 Antenna control by WL/BT */ + u32tmp = btcoexist->btc_read_4byte(btcoexist, 0x4c); + u32tmp &= ~BIT23; + u32tmp |= BIT24; + btcoexist->btc_write_4byte(btcoexist, 0x4c, u32tmp); + + btcoexist->btc_write_1byte(btcoexist, 0x974, 0xff); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x944, 0x3, 0x3); + btcoexist->btc_write_1byte(btcoexist, 0x930, 0x77); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x67, 0x20, 0x1); + + /* Force GNT_BT to low */ + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x765, 0x18, 0x0); + btcoexist->btc_write_2byte(btcoexist, 0x948, 0x0); + + if (board_info->btdm_ant_pos == BTC_ANTENNA_AT_MAIN_PORT) { + /* tell firmware "no antenna inverse" */ + h2c_parameter[0] = 0; + h2c_parameter[1] = 1; /* ext switch type */ + btcoexist->btc_fill_h2c(btcoexist, 0x65, 2, + h2c_parameter); + } else { + /* tell firmware "antenna inverse" */ + h2c_parameter[0] = 1; + h2c_parameter[1] = 1; /* ext switch type */ + btcoexist->btc_fill_h2c(btcoexist, 0x65, 2, + h2c_parameter); + } + } + + /* ext switch setting */ + if (use_ext_switch) { + /* fixed internal switch S1->WiFi, S0->BT */ + btcoexist->btc_write_2byte(btcoexist, 0x948, 0x0); + switch (antpos_type) { + case BTC_ANT_WIFI_AT_MAIN: + /* ext switch main at wifi */ + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x92c, + 0x3, 0x1); + break; + case BTC_ANT_WIFI_AT_AUX: + /* ext switch aux at wifi */ + btcoexist->btc_write_1byte_bitmask(btcoexist, + 0x92c, 0x3, 0x2); + break; + } + } else { /* internal switch */ + /* fixed ext switch */ + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x92c, 0x3, 0x1); + switch (antpos_type) { + case BTC_ANT_WIFI_AT_MAIN: + /* fixed internal switch S1->WiFi, S0->BT */ + btcoexist->btc_write_2byte(btcoexist, 0x948, 0x0); + break; + case BTC_ANT_WIFI_AT_AUX: + /* fixed internal switch S0->WiFi, S1->BT */ + btcoexist->btc_write_2byte(btcoexist, 0x948, 0x280); + break; + } + } +} + + +void halbtc8723b2ant_ps_tdma(struct btc_coexist *btcoexist, bool force_exec, + bool turn_on, u8 type) +{ + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], %s turn %s PS TDMA, type=%d\n", + (force_exec? "force to":""), (turn_on? "ON":"OFF"), type); + coex_dm->cur_ps_tdma_on = turn_on; + coex_dm->cur_ps_tdma = type; + + if (!force_exec) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], bPrePsTdmaOn = %d, bCurPsTdmaOn = %d!!\n", + coex_dm->pre_ps_tdma_on, coex_dm->cur_ps_tdma_on); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], prePsTdma = %d, curPsTdma = %d!!\n", + coex_dm->pre_ps_tdma, coex_dm->cur_ps_tdma); + + if ((coex_dm->pre_ps_tdma_on == coex_dm->cur_ps_tdma_on) && + (coex_dm->pre_ps_tdma == coex_dm->cur_ps_tdma)) + return; + } + if (turn_on) { + switch (type) { + case 1: + default: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x1a, + 0x1a, 0xe1, 0x90); + break; + case 2: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x12, + 0x12, 0xe1, 0x90); + break; + case 3: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x1c, + 0x3, 0xf1, 0x90); + break; + case 4: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x10, + 0x03, 0xf1, 0x90); + break; + case 5: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x1a, + 0x1a, 0x60, 0x90); + break; + case 6: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x12, + 0x12, 0x60, 0x90); + break; + case 7: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x1c, + 0x3, 0x70, 0x90); + break; + case 8: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xa3, 0x10, + 0x3, 0x70, 0x90); + break; + case 9: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x1a, + 0x1a, 0xe1, 0x90); + break; + case 10: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x12, + 0x12, 0xe1, 0x90); + break; + case 11: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0xa, + 0xa, 0xe1, 0x90); + break; + case 12: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x5, + 0x5, 0xe1, 0x90); + break; + case 13: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x1a, + 0x1a, 0x60, 0x90); + break; + case 14: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x12, + 0x12, 0x60, 0x90); + break; + case 15: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0xa, + 0xa, 0x60, 0x90); + break; + case 16: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x5, + 0x5, 0x60, 0x90); + break; + case 17: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xa3, 0x2f, + 0x2f, 0x60, 0x90); + break; + case 18: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x5, + 0x5, 0xe1, 0x90); + break; + case 19: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x25, + 0x25, 0xe1, 0x90); + break; + case 20: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x25, + 0x25, 0x60, 0x90); + break; + case 21: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x15, + 0x03, 0x70, 0x90); + break; + case 71: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0xe3, 0x1a, + 0x1a, 0xe1, 0x90); + break; + } + } else { + /* disable PS tdma */ + switch (type) { + case 0: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0x0, 0x0, 0x0, + 0x40, 0x0); + break; + case 1: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0x0, 0x0, 0x0, + 0x48, 0x0); + break; + default: + halbtc8723b2ant_set_fw_ps_tdma(btcoexist, 0x0, 0x0, 0x0, + 0x40, 0x0); + break; + } + } + + /* update pre state */ + coex_dm->pre_ps_tdma_on = coex_dm->cur_ps_tdma_on; + coex_dm->pre_ps_tdma = coex_dm->cur_ps_tdma; +} + +void halbtc8723b2ant_coex_alloff(struct btc_coexist *btcoexist) +{ + /* fw all off */ + halbtc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 1); + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + /* sw all off */ + halbtc8723b2ant_sw_mechanism1(btcoexist, false, false, false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, false, 0x18); + + /* hw all off */ + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + halbtc8723b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0); +} + +void halbtc8723b2ant_init_coex_dm(struct btc_coexist *btcoexist) +{ + /* force to reset coex mechanism*/ + + halbtc8723b2ant_ps_tdma(btcoexist, FORCE_EXEC, false, 1); + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, FORCE_EXEC, 6); + halbtc8723b2ant_dec_bt_pwr(btcoexist, FORCE_EXEC, false); + + halbtc8723b2ant_sw_mechanism1(btcoexist, false, false, false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, false, 0x18); +} + +void halbtc8723b2ant_action_bt_inquiry(struct btc_coexist *btcoexist) +{ + bool wifi_connected = false; + bool low_pwr_disable = true; + + btcoexist->btc_set(btcoexist, BTC_SET_ACT_DISABLE_LOW_POWER, + &low_pwr_disable); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + + if (wifi_connected) { + halbtc8723b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 7); + halbtc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 3); + } else { + halbtc8723b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0); + halbtc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 1); + } + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, FORCE_EXEC, 6); + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + halbtc8723b2ant_sw_mechanism1(btcoexist, false, false, false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, false, 0x18); + + coex_dm->need_recover_0x948 = true; + coex_dm->backup_0x948 = btcoexist->btc_read_2byte(btcoexist, 0x948); + + halbtc8723b2ant_set_ant_path(btcoexist, BTC_ANT_WIFI_AT_AUX, + false, false); +} + +bool halbtc8723b2ant_is_common_action(struct btc_coexist *btcoexist) +{ + bool bCommon = false, wifi_connected = false; + bool wifi_busy = false; + bool bt_hs_on = false, low_pwr_disable = false; + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + + if (!wifi_connected) { + low_pwr_disable = false; + btcoexist->btc_set(btcoexist, BTC_SET_ACT_DISABLE_LOW_POWER, + &low_pwr_disable); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Wifi non-connected idle!!\n"); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, + 0x0); + halbtc8723b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0); + halbtc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 1); + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + halbtc8723b2ant_sw_mechanism1(btcoexist, false, false, false, + false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, false, + 0x18); + + bCommon = true; + } else { + if (BT_8723B_2ANT_BT_STATUS_NON_CONNECTED_IDLE == + coex_dm->bt_status) { + low_pwr_disable = false; + btcoexist->btc_set(btcoexist, + BTC_SET_ACT_DISABLE_LOW_POWER, + &low_pwr_disable); + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Wifi connected + " + "BT non connected-idle!!\n"); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, + 0xfffff, 0x0); + halbtc8723b2ant_coex_table_with_type(btcoexist, + NORMAL_EXEC, 0); + halbtc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, + 1); + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, + 0xb); + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, + false); + + halbtc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + + bCommon = true; + } else if (BT_8723B_2ANT_BT_STATUS_CONNECTED_IDLE == + coex_dm->bt_status) { + low_pwr_disable = true; + btcoexist->btc_set(btcoexist, + BTC_SET_ACT_DISABLE_LOW_POWER, + &low_pwr_disable); + + if(bt_hs_on) + return false; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Wifi connected + " + "BT connected-idle!!\n"); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, + 0xfffff, 0x0); + halbtc8723b2ant_coex_table_with_type(btcoexist, + NORMAL_EXEC, 0); + halbtc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, + 1); + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, + 0xb); + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, + false); + + halbtc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + + bCommon = true; + } else { + low_pwr_disable = true; + btcoexist->btc_set(btcoexist, + BTC_SET_ACT_DISABLE_LOW_POWER, + &low_pwr_disable); + + if (wifi_busy) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Wifi Connected-Busy + " + "BT Busy!!\n"); + bCommon = false; + } else { + if(bt_hs_on) + return false; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Wifi Connected-Idle + " + "BT Busy!!\n"); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, + 0x1, 0xfffff, 0x0); + halbtc8723b2ant_coex_table_with_type(btcoexist, + NORMAL_EXEC, + 7); + halbtc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, + true, 21); + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, + NORMAL_EXEC, + 0xb); + if (halbtc8723b2ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b2ant_dec_bt_pwr(btcoexist, + NORMAL_EXEC, + true); + else + halbtc8723b2ant_dec_bt_pwr(btcoexist, + NORMAL_EXEC, + false); + halbtc8723b2ant_sw_mechanism1(btcoexist, false, + false, false, + false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, + false, false, + 0x18); + bCommon = true; + } + } + } + + return bCommon; +} +void halbtc8723b2ant_tdma_duration_adjust(struct btc_coexist *btcoexist, + bool sco_hid, bool tx_pause, + u8 max_interval) +{ + static s32 up, dn, m, n, wait_count; + /*0: no change, +1: increase WiFi duration, -1: decrease WiFi duration*/ + s32 result; + u8 retryCount=0; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW, + "[BTCoex], TdmaDurationAdjust()\n"); + + if (!coex_dm->auto_tdma_adjust) { + coex_dm->auto_tdma_adjust = true; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], first run TdmaDurationAdjust()!!\n"); + if (sco_hid) { + if (tx_pause) { + if (max_interval == 1) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 13); + coex_dm->ps_tdma_du_adj_type = 13; + }else if (max_interval == 2) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->ps_tdma_du_adj_type = 14; + } else if (max_interval == 3) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = 15; + } else { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = 15; + } + } else { + if(max_interval == 1) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 9); + coex_dm->ps_tdma_du_adj_type = 9; + } else if (max_interval == 2) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->ps_tdma_du_adj_type = 10; + } else if (max_interval == 3) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = 11; + } else { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = 11; + } + } + } else { + if (tx_pause) { + if (max_interval == 1) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 5); + coex_dm->ps_tdma_du_adj_type = 5; + } else if (max_interval == 2) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->ps_tdma_du_adj_type = 6; + } else if (max_interval == 3) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = 7; + } else { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = 7; + } + } else { + if (max_interval == 1) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 1); + coex_dm->ps_tdma_du_adj_type = 1; + } else if (max_interval == 2) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = 2; + } else if (max_interval == 3) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = 3; + } else { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = 3; + } + } + } + + up = 0; + dn = 0; + m = 1; + n= 3; + result = 0; + wait_count = 0; + } else { + /*accquire the BT TRx retry count from BT_Info byte2*/ + retryCount = coex_sta->bt_retry_cnt; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], retryCount = %d\n", retryCount); + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], up=%d, dn=%d, m=%d, n=%d, wait_count=%d\n", + up, dn, m, n, wait_count); + result = 0; + wait_count++; + /* no retry in the last 2-second duration*/ + if (retryCount == 0) { + up++; + dn--; + + if (dn <= 0) + dn = 0; + + if (up >= n) { + wait_count = 0; + n = 3; + up = 0; + dn = 0; + result = 1; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], Increase wifi " + "duration!!\n"); + }/* <=3 retry in the last 2-second duration*/ + } else if (retryCount <= 3) { + up--; + dn++; + + if (up <= 0) + up = 0; + + if (dn == 2) { + if (wait_count <= 2) + m++; + else + m = 1; + + if (m >= 20) + m = 20; + + n = 3 * m; + up = 0; + dn = 0; + wait_count = 0; + result = -1; + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], Decrease wifi duration " + "for retryCounter<3!!\n"); + } + } else { + if (wait_count == 1) + m++; + else + m = 1; + + if (m >= 20) + m = 20; + + n = 3 * m; + up = 0; + dn = 0; + wait_count = 0; + result = -1; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], Decrease wifi duration " + "for retryCounter>3!!\n"); + } + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], max Interval = %d\n", max_interval); + if (max_interval == 1) { + if (tx_pause) { + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], TxPause = 1\n"); + + if (coex_dm->cur_ps_tdma == 71) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 5); + coex_dm->ps_tdma_du_adj_type = 5; + } else if (coex_dm->cur_ps_tdma == 1) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 5); + coex_dm->ps_tdma_du_adj_type = 5; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->ps_tdma_du_adj_type = 6; + } else if (coex_dm->cur_ps_tdma == 3) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 4) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 8); + coex_dm->ps_tdma_du_adj_type = 8; + } + + if (coex_dm->cur_ps_tdma == 9) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 13); + coex_dm->ps_tdma_du_adj_type = 13; + } else if (coex_dm->cur_ps_tdma == 10) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->ps_tdma_du_adj_type = 14; + } else if (coex_dm->cur_ps_tdma == 11) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 12) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 16); + coex_dm->ps_tdma_du_adj_type = 16; + } + + if (result == -1) { + if (coex_dm->cur_ps_tdma == 5) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->ps_tdma_du_adj_type = + 6; + } else if (coex_dm->cur_ps_tdma == 6) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = + 7; + } else if (coex_dm->cur_ps_tdma == 7) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 8); + coex_dm->ps_tdma_du_adj_type = + 8; + } else if (coex_dm->cur_ps_tdma == 13) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->ps_tdma_du_adj_type = + 14; + } else if(coex_dm->cur_ps_tdma == 14) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = + 15; + } else if(coex_dm->cur_ps_tdma == 15) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 16); + coex_dm->ps_tdma_du_adj_type = + 16; + } + } else if (result == 1) { + if (coex_dm->cur_ps_tdma == 8) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = + 7; + } else if (coex_dm->cur_ps_tdma == 7) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->ps_tdma_du_adj_type = + 6; + } else if(coex_dm->cur_ps_tdma == 6) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 5); + coex_dm->ps_tdma_du_adj_type = + 5; + } else if(coex_dm->cur_ps_tdma == 16) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = + 15; + } else if(coex_dm->cur_ps_tdma == 15) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->ps_tdma_du_adj_type = + 14; + } else if(coex_dm->cur_ps_tdma == 14) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 13); + coex_dm->ps_tdma_du_adj_type = + 13; + } + } + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], TxPause = 0\n"); + if (coex_dm->cur_ps_tdma == 5) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 71); + coex_dm->ps_tdma_du_adj_type = 71; + } else if (coex_dm->cur_ps_tdma == 6) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = 2; + } else if (coex_dm->cur_ps_tdma == 7) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = 3; + } else if (coex_dm->cur_ps_tdma == 8) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 4); + coex_dm->ps_tdma_du_adj_type = 4; + } + + if (coex_dm->cur_ps_tdma == 13) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 9); + coex_dm->ps_tdma_du_adj_type = 9; + } else if (coex_dm->cur_ps_tdma == 14) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->ps_tdma_du_adj_type = 10; + } else if (coex_dm->cur_ps_tdma == 15) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = 11; + } else if(coex_dm->cur_ps_tdma == 16) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 12); + coex_dm->ps_tdma_du_adj_type = 12; + } + + if (result == -1) { + if (coex_dm->cur_ps_tdma == 71) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 1); + coex_dm->ps_tdma_du_adj_type = + 1; + } else if (coex_dm->cur_ps_tdma == 1) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = + 2; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = + 3; + } else if(coex_dm->cur_ps_tdma == 3) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 4); + coex_dm->ps_tdma_du_adj_type = + 4; + } else if(coex_dm->cur_ps_tdma == 9) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->ps_tdma_du_adj_type = + 10; + } else if (coex_dm->cur_ps_tdma == 10) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = + 11; + } else if (coex_dm->cur_ps_tdma == 11) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 12); + coex_dm->ps_tdma_du_adj_type = + 12; + } + } else if (result == 1) { + if (coex_dm->cur_ps_tdma == 4) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = + 3; + } else if (coex_dm->cur_ps_tdma == 3) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = + 2; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 1); + coex_dm->ps_tdma_du_adj_type = + 1; + } else if (coex_dm->cur_ps_tdma == 1) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 71); + coex_dm->ps_tdma_du_adj_type = + 71; + } else if (coex_dm->cur_ps_tdma == 12) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = + 11; + } else if (coex_dm->cur_ps_tdma == 11) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->ps_tdma_du_adj_type = + 10; + } else if (coex_dm->cur_ps_tdma == 10) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 9); + coex_dm->ps_tdma_du_adj_type = + 9; + } + } + } + } else if(max_interval == 2) { + if (tx_pause) { + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], TxPause = 1\n"); + if (coex_dm->cur_ps_tdma == 1) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->ps_tdma_du_adj_type = 6; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->ps_tdma_du_adj_type = 6; + } else if (coex_dm->cur_ps_tdma == 3) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 4) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 8); + coex_dm->ps_tdma_du_adj_type = 8; + } + if (coex_dm->cur_ps_tdma == 9) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->ps_tdma_du_adj_type = 14; + } else if (coex_dm->cur_ps_tdma == 10) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->ps_tdma_du_adj_type = 14; + } else if (coex_dm->cur_ps_tdma == 11) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 12) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 16); + coex_dm->ps_tdma_du_adj_type = 16; + } + if (result == -1) { + if (coex_dm->cur_ps_tdma == 5) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->ps_tdma_du_adj_type = + 6; + } else if (coex_dm->cur_ps_tdma == 6) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = + 7; + } else if (coex_dm->cur_ps_tdma == 7) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 8); + coex_dm->ps_tdma_du_adj_type = + 8; + } else if (coex_dm->cur_ps_tdma == 13) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->ps_tdma_du_adj_type = + 14; + } else if (coex_dm->cur_ps_tdma == 14) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = + 15; + } else if (coex_dm->cur_ps_tdma == 15) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 16); + coex_dm->ps_tdma_du_adj_type = + 16; + } + } else if (result == 1) { + if (coex_dm->cur_ps_tdma == 8) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = + 7; + } else if (coex_dm->cur_ps_tdma == 7) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->ps_tdma_du_adj_type = + 6; + } else if (coex_dm->cur_ps_tdma == 6) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 6); + coex_dm->ps_tdma_du_adj_type = + 6; + } else if (coex_dm->cur_ps_tdma == 16) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = + 15; + } else if (coex_dm->cur_ps_tdma == 15) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->ps_tdma_du_adj_type = + 14; + } else if (coex_dm->cur_ps_tdma == 14) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 14); + coex_dm->ps_tdma_du_adj_type = + 14; + } + } + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], TxPause = 0\n"); + if (coex_dm->cur_ps_tdma == 5) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = 2; + } else if (coex_dm->cur_ps_tdma == 6) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = 2; + } else if (coex_dm->cur_ps_tdma == 7) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = 3; + } else if (coex_dm->cur_ps_tdma == 8) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 4); + coex_dm->ps_tdma_du_adj_type = 4; + } + if (coex_dm->cur_ps_tdma == 13) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->ps_tdma_du_adj_type = 10; + } else if (coex_dm->cur_ps_tdma == 14){ + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->ps_tdma_du_adj_type = 10; + } else if (coex_dm->cur_ps_tdma == 15) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = 11; + } else if (coex_dm->cur_ps_tdma == 16) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 12); + coex_dm->ps_tdma_du_adj_type = 12; + } + if (result == -1) { + if (coex_dm->cur_ps_tdma == 1) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = + 2; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = + 3; + } else if (coex_dm->cur_ps_tdma == 3) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 4); + coex_dm->ps_tdma_du_adj_type = + 4; + } else if (coex_dm->cur_ps_tdma == 9) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->ps_tdma_du_adj_type = + 10; + } else if (coex_dm->cur_ps_tdma == 10) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = + 11; + } else if (coex_dm->cur_ps_tdma == 11) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 12); + coex_dm->ps_tdma_du_adj_type = + 12; + } + } else if (result == 1) { + if (coex_dm->cur_ps_tdma == 4) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = + 3; + } else if (coex_dm->cur_ps_tdma == 3) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = + 2; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 2); + coex_dm->ps_tdma_du_adj_type = + 2; + } else if (coex_dm->cur_ps_tdma == 12) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = + 11; + } else if (coex_dm->cur_ps_tdma == 11) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->ps_tdma_du_adj_type = + 10; + } else if (coex_dm->cur_ps_tdma == 10) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 10); + coex_dm->ps_tdma_du_adj_type = + 10; + } + } + } + } else if (max_interval == 3) { + if (tx_pause) { + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], TxPause = 1\n"); + if (coex_dm->cur_ps_tdma == 1) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 3) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = 7; + } else if (coex_dm->cur_ps_tdma == 4) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 8); + coex_dm->ps_tdma_du_adj_type = 8; + } + if (coex_dm->cur_ps_tdma == 9) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 10) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 11) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = 15; + } else if (coex_dm->cur_ps_tdma == 12) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 16); + coex_dm->ps_tdma_du_adj_type = 16; + } + if (result == -1) { + if (coex_dm->cur_ps_tdma == 5) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = + 7; + } else if (coex_dm->cur_ps_tdma == 6) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = + 7; + } else if (coex_dm->cur_ps_tdma == 7) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 8); + coex_dm->ps_tdma_du_adj_type = + 8; + } else if (coex_dm->cur_ps_tdma == 13) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = + 15; + } else if (coex_dm->cur_ps_tdma == 14) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = + 15; + } else if (coex_dm->cur_ps_tdma == 15) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 16); + coex_dm->ps_tdma_du_adj_type = + 16; + } + } else if (result == 1) { + if (coex_dm->cur_ps_tdma == 8) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = + 7; + } else if (coex_dm->cur_ps_tdma == 7) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = + 7; + } else if (coex_dm->cur_ps_tdma == 6) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 7); + coex_dm->ps_tdma_du_adj_type = + 7; + } else if (coex_dm->cur_ps_tdma == 16) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = + 15; + } else if (coex_dm->cur_ps_tdma == 15) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = + 15; + } else if (coex_dm->cur_ps_tdma == 14) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 15); + coex_dm->ps_tdma_du_adj_type = + 15; + } + } + } else { + BTC_PRINT(BTC_MSG_ALGORITHM, + ALGO_TRACE_FW_DETAIL, + "[BTCoex], TxPause = 0\n"); + if (coex_dm->cur_ps_tdma == 5) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = 3; + } else if (coex_dm->cur_ps_tdma == 6) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = 3; + } else if (coex_dm->cur_ps_tdma == 7) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = 3; + } else if (coex_dm->cur_ps_tdma == 8) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 4); + coex_dm->ps_tdma_du_adj_type = 4; + } + if (coex_dm->cur_ps_tdma == 13) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = 11; + } else if (coex_dm->cur_ps_tdma == 14) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = 11; + } else if (coex_dm->cur_ps_tdma == 15) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = 11; + } else if (coex_dm->cur_ps_tdma == 16) { + halbtc8723b2ant_ps_tdma(btcoexist, + NORMAL_EXEC, + true, 12); + coex_dm->ps_tdma_du_adj_type = 12; + } + if (result == -1) { + if (coex_dm->cur_ps_tdma == 1) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = + 3; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = + 3; + } else if (coex_dm->cur_ps_tdma == 3) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 4); + coex_dm->ps_tdma_du_adj_type = + 4; + } else if (coex_dm->cur_ps_tdma == 9) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = + 11; + } else if (coex_dm->cur_ps_tdma == 10) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = + 11; + } else if (coex_dm->cur_ps_tdma == 11) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 12); + coex_dm->ps_tdma_du_adj_type = + 12; + } + } else if (result == 1) { + if (coex_dm->cur_ps_tdma == 4) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = + 3; + } else if (coex_dm->cur_ps_tdma == 3) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = + 3; + } else if (coex_dm->cur_ps_tdma == 2) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 3); + coex_dm->ps_tdma_du_adj_type = + 3; + } else if (coex_dm->cur_ps_tdma == 12) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = + 11; + } else if (coex_dm->cur_ps_tdma == 11) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = + 11; + } else if (coex_dm->cur_ps_tdma == 10) { + halbtc8723b2ant_ps_tdma( + btcoexist, + NORMAL_EXEC, + true, 11); + coex_dm->ps_tdma_du_adj_type = + 11; + } + } + } + } + } + + /*if current PsTdma not match with the recorded one (when scan, dhcp..), + *then we have to adjust it back to the previous record one.*/ + if (coex_dm->cur_ps_tdma != coex_dm->ps_tdma_du_adj_type) { + bool scan = false, link = false, roam = false; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], PsTdma type dismatch!!!, " + "curPsTdma=%d, recordPsTdma=%d\n", + coex_dm->cur_ps_tdma, coex_dm->ps_tdma_du_adj_type); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam); + + if (!scan && !link && !roam) + halbtc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, + coex_dm->ps_tdma_du_adj_type); + else + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_DETAIL, + "[BTCoex], roaming/link/scan is under" + " progress, will adjust next time!!!\n"); + } +} + +/* SCO only or SCO+PAN(HS) */ +void halbtc8723b2ant_action_sco(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = halbtc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 4); + + if (halbtc8723b2ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + /*for SCO quality at 11b/g mode*/ + if (BTC_WIFI_BW_LEGACY == wifi_bw) + halbtc8723b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 2); + else /*for SCO quality & wifi performance balance at 11n mode*/ + halbtc8723b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 8); + + /*for voice quality */ + halbtc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 0); + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + true, 0x4); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + true, 0x4); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + true, 0x4); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + true, 0x4); + } + } +} + + +void halbtc8723b2ant_action_hid(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = halbtc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + bt_rssi_state = halbtc8723b2ant_bt_rssi_state(2, 29, 0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (halbtc8723b2ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if (BTC_WIFI_BW_LEGACY == wifi_bw) /*/for HID at 11b/g mode*/ + halbtc8723b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 7); + else /*for HID quality & wifi performance balance at 11n mode*/ + halbtc8723b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 9); + + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) + halbtc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 9); + else + halbtc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 13); + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +/*A2DP only / PAN(EDR) only/ A2DP+PAN(HS)*/ +void halbtc8723b2ant_action_a2dp(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, wifi_rssi_state1, bt_rssi_state; + u32 wifi_bw; + u8 ap_num = 0; + + wifi_rssi_state = halbtc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + wifi_rssi_state1 = halbtc8723b2ant_wifi_rssi_state(btcoexist, + 1, 2, 40, 0); + bt_rssi_state = halbtc8723b2ant_bt_rssi_state(2, 29, 0); + + btcoexist->btc_get(btcoexist, BTC_GET_U1_AP_NUM, &ap_num); + + /* define the office environment */ + /* driver don't know AP num in Linux, so we will never enter this if */ + if (ap_num >= 10 && BTC_RSSI_HIGH(wifi_rssi_state1)) { + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, + 0x0); + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + halbtc8723b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 0); + halbtc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 1); + + /* sw mechanism */ + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + if (BTC_WIFI_BW_HT40 == wifi_bw) { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + true, 0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + true, 0x18); + } + return; + } + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (halbtc8723b2ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + halbtc8723b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 7); + + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) + halbtc8723b2ant_tdma_duration_adjust(btcoexist,false, false, 1); + else + halbtc8723b2ant_tdma_duration_adjust(btcoexist,false, true, 1); + + /* sw mechanism */ + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +void halbtc8723b2ant_action_a2dp_pan_hs(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = halbtc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (halbtc8723b2ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + halbtc8723b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 7); + + halbtc8723b2ant_tdma_duration_adjust(btcoexist, false, true, 2); + + /* sw mechanism */ + btcoexist->btc_get(btcoexist, + BTC_GET_U4_WIFI_BW, &wifi_bw); + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + false,0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +void halbtc8723b2ant_action_pan_edr(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = halbtc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + bt_rssi_state = halbtc8723b2ant_bt_rssi_state(2, 29, 0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (halbtc8723b2ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + halbtc8723b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 10); + + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) + halbtc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 1); + else + halbtc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, true, 5); + + /* sw mechanism */ + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + + +/*PAN(HS) only*/ +void halbtc8723b2ant_action_pan_hs(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = halbtc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH) ) + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + halbtc8723b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 7); + + halbtc8723b2ant_ps_tdma(btcoexist, NORMAL_EXEC, false, 1); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +/*PAN(EDR)+A2DP*/ +void halbtc8723b2ant_action_pan_edr_a2dp(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = halbtc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + bt_rssi_state = halbtc8723b2ant_bt_rssi_state(2, 29, 0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (halbtc8723b2ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_coex_table_with_type(btcoexist,NORMAL_EXEC, 12); + if (BTC_WIFI_BW_HT40 == wifi_bw) + halbtc8723b2ant_tdma_duration_adjust(btcoexist, false, + true, 3); + else + halbtc8723b2ant_tdma_duration_adjust(btcoexist, false, + false, 3); + } else { + halbtc8723b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 7); + halbtc8723b2ant_tdma_duration_adjust(btcoexist, false, true, 3); + } + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, false, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +void halbtc8723b2ant_action_pan_edr_hid(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = halbtc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + bt_rssi_state = halbtc8723b2ant_bt_rssi_state(2, 29, 0); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + if (halbtc8723b2ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + if (BTC_WIFI_BW_HT40 == wifi_bw) { + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, + 3); + halbtc8723b2ant_coex_table_with_type(btcoexist, + NORMAL_EXEC, 11); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, + 0xfffff, 0x780); + } else { + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, + 6); + halbtc8723b2ant_coex_table_with_type(btcoexist, + NORMAL_EXEC, 7); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, + 0xfffff, 0x0); + } + halbtc8723b2ant_tdma_duration_adjust(btcoexist, true, false, 2); + } else { + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + halbtc8723b2ant_coex_table_with_type(btcoexist,NORMAL_EXEC, 11); + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, + 0x0); + halbtc8723b2ant_tdma_duration_adjust(btcoexist, true, true, 2); + } + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)){ + halbtc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +/* HID+A2DP+PAN(EDR) */ +void halbtc8723b2ant_action_hid_a2dp_pan_edr(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = halbtc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + bt_rssi_state = halbtc8723b2ant_bt_rssi_state(2, 29, 0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (halbtc8723b2ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + halbtc8723b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 7); + + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + if (BTC_WIFI_BW_HT40 == wifi_bw) + halbtc8723b2ant_tdma_duration_adjust(btcoexist, true, + true, 2); + else + halbtc8723b2ant_tdma_duration_adjust(btcoexist, true, + false, 3); + } else { + halbtc8723b2ant_tdma_duration_adjust(btcoexist, true, true, 3); + } + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +void halbtc8723b2ant_action_hid_a2dp(struct btc_coexist *btcoexist) +{ + u8 wifi_rssi_state, bt_rssi_state; + u32 wifi_bw; + + wifi_rssi_state = halbtc8723b2ant_wifi_rssi_state(btcoexist, + 0, 2, 15, 0); + bt_rssi_state = halbtc8723b2ant_bt_rssi_state(2, 29, 0); + + btcoexist->btc_set_rf_reg(btcoexist, BTC_RF_A, 0x1, 0xfffff, 0x0); + + halbtc8723b2ant_fw_dac_swing_lvl(btcoexist, NORMAL_EXEC, 6); + + if (halbtc8723b2ant_need_to_dec_bt_pwr(btcoexist)) + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, true); + else + halbtc8723b2ant_dec_bt_pwr(btcoexist, NORMAL_EXEC, false); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + + halbtc8723b2ant_coex_table_with_type(btcoexist, NORMAL_EXEC, 7); + + if ((bt_rssi_state == BTC_RSSI_STATE_HIGH) || + (bt_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) + halbtc8723b2ant_tdma_duration_adjust(btcoexist, true, false, 2); + else + halbtc8723b2ant_tdma_duration_adjust(btcoexist, true, true, 2); + + /* sw mechanism */ + if (BTC_WIFI_BW_HT40 == wifi_bw) { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, true, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } else { + if ((wifi_rssi_state == BTC_RSSI_STATE_HIGH) || + (wifi_rssi_state == BTC_RSSI_STATE_STAY_HIGH)) { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, true, false, + false, 0x18); + } else { + halbtc8723b2ant_sw_mechanism1(btcoexist, false, true, + false, false); + halbtc8723b2ant_sw_mechanism2(btcoexist, false, false, + false, 0x18); + } + } +} + +void halbtc8723b2ant_run_coexist_mechanism(struct btc_coexist *btcoexist) +{ + u8 algorithm = 0; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], RunCoexistMechanism()===>\n"); + + if (btcoexist->manual_control) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], RunCoexistMechanism(), " + "return for Manual CTRL <===\n"); + return; + } + + if (coex_sta->under_ips) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], wifi is under IPS !!!\n"); + return; + } + + algorithm = halbtc8723b2ant_action_algorithm(btcoexist); + if (coex_sta->c2h_bt_inquiry_page && + (BT_8723B_2ANT_COEX_ALGO_PANHS != algorithm)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT is under inquiry/page scan !!\n"); + halbtc8723b2ant_action_bt_inquiry(btcoexist); + return; + } else { + if (coex_dm->need_recover_0x948) { + coex_dm->need_recover_0x948 = false; + btcoexist->btc_write_2byte(btcoexist, 0x948, + coex_dm->backup_0x948); + } + } + + coex_dm->cur_algorithm = algorithm; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, "[BTCoex], Algorithm = %d \n", + coex_dm->cur_algorithm); + + if (halbtc8723b2ant_is_common_action(btcoexist)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant common.\n"); + coex_dm->auto_tdma_adjust = false; + } else { + if (coex_dm->cur_algorithm != coex_dm->pre_algorithm) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], preAlgorithm=%d, " + "curAlgorithm=%d\n", coex_dm->pre_algorithm, + coex_dm->cur_algorithm); + coex_dm->auto_tdma_adjust = false; + } + switch (coex_dm->cur_algorithm) { + case BT_8723B_2ANT_COEX_ALGO_SCO: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, algorithm = SCO.\n"); + halbtc8723b2ant_action_sco(btcoexist); + break; + case BT_8723B_2ANT_COEX_ALGO_HID: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, algorithm = HID.\n"); + halbtc8723b2ant_action_hid(btcoexist); + break; + case BT_8723B_2ANT_COEX_ALGO_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, " + "algorithm = A2DP.\n"); + halbtc8723b2ant_action_a2dp(btcoexist); + break; + case BT_8723B_2ANT_COEX_ALGO_A2DP_PANHS: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, " + "algorithm = A2DP+PAN(HS).\n"); + halbtc8723b2ant_action_a2dp_pan_hs(btcoexist); + break; + case BT_8723B_2ANT_COEX_ALGO_PANEDR: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, " + "algorithm = PAN(EDR).\n"); + halbtc8723b2ant_action_pan_edr(btcoexist); + break; + case BT_8723B_2ANT_COEX_ALGO_PANHS: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, " + "algorithm = HS mode.\n"); + halbtc8723b2ant_action_pan_hs(btcoexist); + break; + case BT_8723B_2ANT_COEX_ALGO_PANEDR_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, " + "algorithm = PAN+A2DP.\n"); + halbtc8723b2ant_action_pan_edr_a2dp(btcoexist); + break; + case BT_8723B_2ANT_COEX_ALGO_PANEDR_HID: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, " + "algorithm = PAN(EDR)+HID.\n"); + halbtc8723b2ant_action_pan_edr_hid(btcoexist); + break; + case BT_8723B_2ANT_COEX_ALGO_HID_A2DP_PANEDR: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, " + "algorithm = HID+A2DP+PAN.\n"); + halbtc8723b2ant_action_hid_a2dp_pan_edr(btcoexist); + break; + case BT_8723B_2ANT_COEX_ALGO_HID_A2DP: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, " + "algorithm = HID+A2DP.\n"); + halbtc8723b2ant_action_hid_a2dp(btcoexist); + break; + default: + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], Action 2-Ant, " + "algorithm = coexist All Off!!\n"); + halbtc8723b2ant_coex_alloff(btcoexist); + break; + } + coex_dm->pre_algorithm = coex_dm->cur_algorithm; + } +} + +void halbtc8723b2ant_wifioff_hwcfg(struct btc_coexist *btcoexist) +{ + /* set wlan_act to low */ + btcoexist->btc_write_1byte(btcoexist, 0x76e, 0x4); + /* Force GNT_BT to High */ + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x765, 0x18, 0x3); + /* BT select s0/s1 is controlled by BT */ + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x67, 0x20, 0x0); +} + +/********************************************************************* + * work around function start with wa_halbtc8723b2ant_ + *********************************************************************/ +/********************************************************************* + * extern function start with EXhalbtc8723b2ant_ + *********************************************************************/ +void ex_halbtc8723b2ant_init_hwconfig(struct btc_coexist *btcoexist) +{ + u8 u8tmp = 0; + + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], 2Ant Init HW Config!!\n"); + coex_dm->bt_rf0x1e_backup = + btcoexist->btc_get_rf_reg(btcoexist, BTC_RF_A, 0x1e, 0xfffff); + + /* 0x790[5:0]=0x5 */ + u8tmp = btcoexist->btc_read_1byte(btcoexist, 0x790); + u8tmp &= 0xc0; + u8tmp |= 0x5; + btcoexist->btc_write_1byte(btcoexist, 0x790, u8tmp); + + + /*Antenna config */ + halbtc8723b2ant_set_ant_path(btcoexist, BTC_ANT_WIFI_AT_MAIN, + true, false); + + + + + /* PTA parameter */ + halbtc8723b2ant_coex_table_with_type(btcoexist, FORCE_EXEC, 0); + + /* Enable counter statistics */ + /*0x76e[3] =1, WLAN_Act control by PTA*/ + btcoexist->btc_write_1byte(btcoexist, 0x76e, 0xc); + btcoexist->btc_write_1byte(btcoexist, 0x778, 0x3); + btcoexist->btc_write_1byte_bitmask(btcoexist, 0x40, 0x20, 0x1); +} + +void ex_halbtc8723b2ant_init_coex_dm(struct btc_coexist *btcoexist) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], Coex Mechanism Init!!\n"); + halbtc8723b2ant_init_coex_dm(btcoexist); +} + +void ex_halbtc8723b2ant_display_coex_info(struct btc_coexist *btcoexist) +{ + struct btc_board_info *board_info = &btcoexist->board_info; + struct btc_stack_info *stack_info = &btcoexist->stack_info; + struct btc_bt_link_info* bt_link_info = &btcoexist->bt_link_info; + u8 *cli_buf = btcoexist->cli_buf; + u8 u8tmp[4], i, bt_info_ext, ps_tdma_case=0; + u32 u32tmp[4]; + bool roam = false, scan = false; + bool link = false, wifi_under_5g = false; + bool bt_hs_on = false, wifi_busy = false; + s32 wifi_rssi = 0, bt_hs_rssi = 0; + u32 wifi_bw, wifi_traffic_dir, fa_ofdm, fa_cck; + u8 wifi_dot11_chnl, wifi_hs_chnl; + u32 fw_ver = 0, bt_patch_ver = 0; + u8 ap_num = 0; + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n ============[BT Coexist info]============"); + CL_PRINTF(cli_buf); + + if (btcoexist->manual_control) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n ==========[Under Manual Control]============"); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n =========================================="); + CL_PRINTF(cli_buf); + } + + if (!board_info->bt_exist) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n BT not exists !!!"); + CL_PRINTF(cli_buf); + return; + } + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d ", + "Ant PG number/ Ant mechanism:", + board_info->pg_ant_num, board_info->btdm_ant_num); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s / %d", + "BT stack/ hci ext ver", + ((stack_info->profile_notified)? "Yes":"No"), + stack_info->hci_version); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_U4_BT_PATCH_VER, &bt_patch_ver); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_FW_VER, &fw_ver); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %d_%x/ 0x%x/ 0x%x(%d)", + "CoexVer/ fw_ver/ PatchVer", + glcoex_ver_date_8723b_2ant, glcoex_ver_8723b_2ant, + fw_ver, bt_patch_ver, bt_patch_ver); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_HS_OPERATION, &bt_hs_on); + btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_DOT11_CHNL, + &wifi_dot11_chnl); + btcoexist->btc_get(btcoexist, BTC_GET_U1_WIFI_HS_CHNL, &wifi_hs_chnl); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d(%d)", + "Dot11 channel / HsChnl(HsMode)", + wifi_dot11_chnl, wifi_hs_chnl, bt_hs_on); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %02x %02x %02x ", + "H2C Wifi inform bt chnl Info", coex_dm->wifi_chnl_info[0], + coex_dm->wifi_chnl_info[1], coex_dm->wifi_chnl_info[2]); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_S4_WIFI_RSSI, &wifi_rssi); + btcoexist->btc_get(btcoexist, BTC_GET_S4_HS_RSSI, &bt_hs_rssi); + btcoexist->btc_get(btcoexist, BTC_GET_U1_AP_NUM, &ap_num); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d", + "Wifi rssi/ HS rssi/ AP#", wifi_rssi, bt_hs_rssi, ap_num); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_SCAN, &scan); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_LINK, &link); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_ROAM, &roam); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d ", + "Wifi link/ roam/ scan", link, roam, scan); + CL_PRINTF(cli_buf); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_UNDER_5G, &wifi_under_5g); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_BW, &wifi_bw); + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_BUSY, &wifi_busy); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_TRAFFIC_DIRECTION, + &wifi_traffic_dir); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s / %s/ %s ", + "Wifi status", (wifi_under_5g? "5G":"2.4G"), + ((BTC_WIFI_BW_LEGACY == wifi_bw)? "Legacy": + (((BTC_WIFI_BW_HT40 == wifi_bw)? "HT40":"HT20"))), + ((!wifi_busy)? "idle": + ((BTC_WIFI_TRAFFIC_TX ==wifi_traffic_dir)?\ + "uplink":"downlink"))); + CL_PRINTF(cli_buf); + + + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d / %d / %d / %d", + "SCO/HID/PAN/A2DP", + bt_link_info->sco_exist, bt_link_info->hid_exist, + bt_link_info->pan_exist, bt_link_info->a2dp_exist); + CL_PRINTF(cli_buf); + btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_BT_LINK_INFO); + + bt_info_ext = coex_sta->bt_info_ext; + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s", + "BT Info A2DP rate", + (bt_info_ext&BIT0)? "Basic rate":"EDR rate"); + CL_PRINTF(cli_buf); + + for (i=0; ibt_info_c2h_cnt[i]) { + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %02x %02x %02x " + "%02x %02x %02x %02x(%d)", + glbt_info_src_8723b_2ant[i], \ + coex_sta->bt_info_c2h[i][0], + coex_sta->bt_info_c2h[i][1], + coex_sta->bt_info_c2h[i][2], + coex_sta->bt_info_c2h[i][3], + coex_sta->bt_info_c2h[i][4], + coex_sta->bt_info_c2h[i][5], + coex_sta->bt_info_c2h[i][6], + coex_sta->bt_info_c2h_cnt[i]); + CL_PRINTF(cli_buf); + } + } + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %s/%s", + "PS state, IPS/LPS", + ((coex_sta->under_ips? "IPS ON":"IPS OFF")), + ((coex_sta->under_lps? "LPS ON":"LPS OFF"))); + CL_PRINTF(cli_buf); + btcoexist->btc_disp_dbg_msg(btcoexist, BTC_DBG_DISP_FW_PWR_MODE_CMD); + + /* Sw mechanism */ + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s", "============[Sw mechanism]============"); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d ", + "SM1[ShRf/ LpRA/ LimDig]", coex_dm->cur_rf_rx_lpf_shrink, + coex_dm->cur_low_penalty_ra, coex_dm->limited_dig); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d/ %d(0x%x) ", + "SM2[AgcT/ AdcB/ SwDacSwing(lvl)]", + coex_dm->cur_agc_table_en, coex_dm->cur_adc_back_off, + coex_dm->cur_dac_swing_on, coex_dm->cur_dac_swing_lvl); + CL_PRINTF(cli_buf); + + /* Fw mechanism */ + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", + "============[Fw mechanism]============"); + CL_PRINTF(cli_buf); + + ps_tdma_case = coex_dm->cur_ps_tdma; + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = %02x %02x %02x %02x %02x case-%d (auto:%d)", + "PS TDMA", coex_dm->ps_tdma_para[0], + coex_dm->ps_tdma_para[1], coex_dm->ps_tdma_para[2], + coex_dm->ps_tdma_para[3], coex_dm->ps_tdma_para[4], + ps_tdma_case, coex_dm->auto_tdma_adjust); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d ", + "DecBtPwr/ IgnWlanAct", coex_dm->cur_dec_bt_pwr, + coex_dm->cur_ignore_wlan_act); + CL_PRINTF(cli_buf); + + /* Hw setting */ + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s", + "============[Hw setting]============"); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x", + "RF-A, 0x1e initVal", coex_dm->bt_rf0x1e_backup); + CL_PRINTF(cli_buf); + + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x778); + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x880); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", + "0x778/0x880[29:25]", u8tmp[0], + (u32tmp[0]&0x3e000000) >> 25); + CL_PRINTF(cli_buf); + + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x948); + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x67); + u8tmp[1] = btcoexist->btc_read_1byte(btcoexist, 0x765); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", + "0x948/ 0x67[5] / 0x765", + u32tmp[0], ((u8tmp[0]&0x20)>> 5), u8tmp[1]); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x92c); + u32tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0x930); + u32tmp[2] = btcoexist->btc_read_4byte(btcoexist, 0x944); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", + "0x92c[1:0]/ 0x930[7:0]/0x944[1:0]", + u32tmp[0]&0x3, u32tmp[1]&0xff, u32tmp[2]&0x3); + CL_PRINTF(cli_buf); + + + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x39); + u8tmp[1] = btcoexist->btc_read_1byte(btcoexist, 0x40); + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x4c); + u8tmp[2] = btcoexist->btc_read_1byte(btcoexist, 0x64); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", + "0x38[11]/0x40/0x4c[24:23]/0x64[0]", + ((u8tmp[0] & 0x8)>>3), u8tmp[1], + ((u32tmp[0]&0x01800000)>>23), u8tmp[2]&0x1); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x550); + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x522); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", + "0x550(bcn ctrl)/0x522", u32tmp[0], u8tmp[0]); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0xc50); + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x49c); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x", + "0xc50(dig)/0x49c(null-drop)", u32tmp[0]&0xff, u8tmp[0]); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0xda0); + u32tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0xda4); + u32tmp[2] = btcoexist->btc_read_4byte(btcoexist, 0xda8); + u32tmp[3] = btcoexist->btc_read_4byte(btcoexist, 0xcf0); + + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0xa5b); + u8tmp[1] = btcoexist->btc_read_1byte(btcoexist, 0xa5c); + + fa_ofdm = ((u32tmp[0]&0xffff0000) >> 16) + + ((u32tmp[1]&0xffff0000) >> 16) + + (u32tmp[1] & 0xffff) + + (u32tmp[2] & 0xffff) + + ((u32tmp[3]&0xffff0000) >> 16) + + (u32tmp[3] & 0xffff) ; + fa_cck = (u8tmp[0] << 8) + u8tmp[1]; + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = 0x%x/ 0x%x/ 0x%x", + "OFDM-CCA/OFDM-FA/CCK-FA", \ + u32tmp[0]&0xffff, fa_ofdm, fa_cck); + CL_PRINTF(cli_buf); + + u32tmp[0] = btcoexist->btc_read_4byte(btcoexist, 0x6c0); + u32tmp[1] = btcoexist->btc_read_4byte(btcoexist, 0x6c4); + u32tmp[2] = btcoexist->btc_read_4byte(btcoexist, 0x6c8); + u8tmp[0] = btcoexist->btc_read_1byte(btcoexist, 0x6cc); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, + "\r\n %-35s = 0x%x/ 0x%x/ 0x%x/ 0x%x", + "0x6c0/0x6c4/0x6c8/0x6cc(coexTable)", \ + u32tmp[0], u32tmp[1], u32tmp[2], u8tmp[0]); + CL_PRINTF(cli_buf); + + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", + "0x770(high-pri rx/tx)", + coex_sta->high_priority_rx, coex_sta->high_priority_tx); + CL_PRINTF(cli_buf); + CL_SPRINTF(cli_buf, BT_TMP_BUF_SIZE, "\r\n %-35s = %d/ %d", + "0x774(low-pri rx/tx)", coex_sta->low_priority_rx, + coex_sta->low_priority_tx); + CL_PRINTF(cli_buf); +#if(BT_AUTO_REPORT_ONLY_8723B_2ANT == 1) + halbtc8723b2ant_monitor_bt_ctr(btcoexist); +#endif + btcoexist->btc_disp_dbg_msg(btcoexist, + BTC_DBG_DISP_COEX_STATISTICS); +} + + +void ex_halbtc8723b2ant_ips_notify(struct btc_coexist *btcoexist, u8 type) +{ + if (BTC_IPS_ENTER == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], IPS ENTER notify\n"); + coex_sta->under_ips = true; + halbtc8723b2ant_wifioff_hwcfg(btcoexist); + halbtc8723b2ant_ignore_wlan_act(btcoexist, FORCE_EXEC, true); + halbtc8723b2ant_coex_alloff(btcoexist); + } else if (BTC_IPS_LEAVE == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], IPS LEAVE notify\n"); + coex_sta->under_ips = false; + ex_halbtc8723b2ant_init_hwconfig(btcoexist); + halbtc8723b2ant_init_coex_dm(btcoexist); + halbtc8723b2ant_query_bt_info(btcoexist); + } +} + +void ex_halbtc8723b2ant_lps_notify(struct btc_coexist *btcoexist, u8 type) +{ + if (BTC_LPS_ENABLE == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], LPS ENABLE notify\n"); + coex_sta->under_lps = true; + } else if (BTC_LPS_DISABLE == type) { + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], LPS DISABLE notify\n"); + coex_sta->under_lps = false; + } +} + +void ex_halbtc8723b2ant_scan_notify(struct btc_coexist *btcoexist, u8 type) +{ + if (BTC_SCAN_START == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], SCAN START notify\n"); + else if (BTC_SCAN_FINISH == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], SCAN FINISH notify\n"); +} + +void ex_halbtc8723b2ant_connect_notify(struct btc_coexist *btcoexist, u8 type) +{ + if (BTC_ASSOCIATE_START == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], CONNECT START notify\n"); + else if (BTC_ASSOCIATE_FINISH == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], CONNECT FINISH notify\n"); +} + +void ex_halbtc8723b2ant_media_status_notify(struct btc_coexist *btcoexist, + u8 type) +{ + u8 h2c_parameter[3] ={0}; + u32 wifi_bw; + u8 wifi_central_chnl; + + if (BTC_MEDIA_CONNECT == type) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], MEDIA connect notify\n"); + else + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], MEDIA disconnect notify\n"); + + /* only 2.4G we need to inform bt the chnl mask */ + btcoexist->btc_get(btcoexist, + BTC_GET_U1_WIFI_CENTRAL_CHNL, &wifi_central_chnl); + if ((BTC_MEDIA_CONNECT == type) && + (wifi_central_chnl <= 14)) { + h2c_parameter[0] = 0x1; + h2c_parameter[1] = wifi_central_chnl; + btcoexist->btc_get(btcoexist, + BTC_GET_U4_WIFI_BW, &wifi_bw); + if (BTC_WIFI_BW_HT40 == wifi_bw) + h2c_parameter[2] = 0x30; + else + h2c_parameter[2] = 0x20; + } + + coex_dm->wifi_chnl_info[0] = h2c_parameter[0]; + coex_dm->wifi_chnl_info[1] = h2c_parameter[1]; + coex_dm->wifi_chnl_info[2] = h2c_parameter[2]; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE_FW_EXEC, + "[BTCoex], FW write 0x66=0x%x\n", + h2c_parameter[0] << 16 | h2c_parameter[1] << 8 | + h2c_parameter[2]); + + btcoexist->btc_fill_h2c(btcoexist, 0x66, 3, h2c_parameter); +} + +void ex_halbtc8723b2ant_special_packet_notify(struct btc_coexist *btcoexist, + u8 type) +{ + if (type == BTC_PACKET_DHCP) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], DHCP Packet notify\n"); +} + +void ex_halbtc8723b2ant_bt_info_notify(struct btc_coexist *btcoexist, + u8 *tmpbuf, u8 length) +{ + u8 btInfo = 0; + u8 i, rsp_source = 0; + bool bt_busy = false, limited_dig = false; + bool wifi_connected = false; + + coex_sta->c2h_bt_info_req_sent = false; + + rsp_source = tmpbuf[0]&0xf; + if(rsp_source >= BT_INFO_SRC_8723B_2ANT_MAX) + rsp_source = BT_INFO_SRC_8723B_2ANT_WIFI_FW; + coex_sta->bt_info_c2h_cnt[rsp_source]++; + + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "[BTCoex], Bt info[%d], length=%d, hex data=[", + rsp_source, length); + for (i = 0; i < length; i++) { + coex_sta->bt_info_c2h[rsp_source][i] = tmpbuf[i]; + if (i == 1) + btInfo = tmpbuf[i]; + if (i == length-1) + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "0x%02x]\n", tmpbuf[i]); + else + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, + "0x%02x, ", tmpbuf[i]); + } + + if (btcoexist->manual_control) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BtInfoNotify(), " + "return for Manual CTRL<===\n"); + return; + } + + if (BT_INFO_SRC_8723B_2ANT_WIFI_FW != rsp_source) { + coex_sta->bt_retry_cnt = /* [3:0]*/ + coex_sta->bt_info_c2h[rsp_source][2] & 0xf; + + coex_sta->bt_rssi = + coex_sta->bt_info_c2h[rsp_source][3] * 2 + 10; + + coex_sta->bt_info_ext = + coex_sta->bt_info_c2h[rsp_source][4]; + + /* Here we need to resend some wifi info to BT + because bt is reset and loss of the info.*/ + if ((coex_sta->bt_info_ext & BIT1)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT ext info bit1 check," + " send wifi BW&Chnl to BT!!\n"); + btcoexist->btc_get(btcoexist,BTC_GET_BL_WIFI_CONNECTED, + &wifi_connected); + if (wifi_connected) + ex_halbtc8723b2ant_media_status_notify( + btcoexist, + BTC_MEDIA_CONNECT); + else + ex_halbtc8723b2ant_media_status_notify( + btcoexist, + BTC_MEDIA_DISCONNECT); + } + + if ((coex_sta->bt_info_ext & BIT3)) { + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BT ext info bit3 check, " + "set BT NOT to ignore Wlan active!!\n"); + halbtc8723b2ant_ignore_wlan_act(btcoexist, FORCE_EXEC, + false); + } else { + /* BT already NOT ignore Wlan active, do nothing here.*/ + } +#if(BT_AUTO_REPORT_ONLY_8723B_2ANT == 0) + if ((coex_sta->bt_info_ext & BIT4)) { + /* BT auto report already enabled, do nothing*/ + } else { + halbtc8723b2ant_bt_auto_report(btcoexist, FORCE_EXEC, + true); + } +#endif + } + + /* check BIT2 first ==> check if bt is under inquiry or page scan*/ + if (btInfo & BT_INFO_8723B_2ANT_B_INQ_PAGE) + coex_sta->c2h_bt_inquiry_page = true; + else + coex_sta->c2h_bt_inquiry_page = false; + + /* set link exist status*/ + if (!(btInfo & BT_INFO_8723B_2ANT_B_CONNECTION)) { + coex_sta->bt_link_exist = false; + coex_sta->pan_exist = false; + coex_sta->a2dp_exist = false; + coex_sta->hid_exist = false; + coex_sta->sco_exist = false; + } else {// connection exists + coex_sta->bt_link_exist = true; + if (btInfo & BT_INFO_8723B_2ANT_B_FTP) + coex_sta->pan_exist = true; + else + coex_sta->pan_exist = false; + if (btInfo & BT_INFO_8723B_2ANT_B_A2DP) + coex_sta->a2dp_exist = true; + else + coex_sta->a2dp_exist = false; + if (btInfo & BT_INFO_8723B_2ANT_B_HID) + coex_sta->hid_exist = true; + else + coex_sta->hid_exist = false; + if (btInfo & BT_INFO_8723B_2ANT_B_SCO_ESCO) + coex_sta->sco_exist = true; + else + coex_sta->sco_exist = false; + } + + halbtc8723b2ant_update_bt_link_info(btcoexist); + + if (!(btInfo & BT_INFO_8723B_2ANT_B_CONNECTION)) { + coex_dm->bt_status = BT_8723B_2ANT_BT_STATUS_NON_CONNECTED_IDLE; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BtInfoNotify(), " + "BT Non-Connected idle!!!\n"); + /* connection exists but no busy */ + } else if (btInfo == BT_INFO_8723B_2ANT_B_CONNECTION) { + coex_dm->bt_status = BT_8723B_2ANT_BT_STATUS_CONNECTED_IDLE; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BtInfoNotify(), BT Connected-idle!!!\n"); + } else if ((btInfo & BT_INFO_8723B_2ANT_B_SCO_ESCO) || + (btInfo & BT_INFO_8723B_2ANT_B_SCO_BUSY)) { + coex_dm->bt_status = + BT_8723B_2ANT_BT_STATUS_SCO_BUSY; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BtInfoNotify(), BT SCO busy!!!\n"); + } else if (btInfo&BT_INFO_8723B_2ANT_B_ACL_BUSY) { + coex_dm->bt_status = + BT_8723B_2ANT_BT_STATUS_ACL_BUSY; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BtInfoNotify(), BT ACL busy!!!\n"); + } else { + coex_dm->bt_status = BT_8723B_2ANT_BT_STATUS_MAX; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], BtInfoNotify(), " + "BT Non-Defined state!!!\n"); + } + + if ((BT_8723B_2ANT_BT_STATUS_ACL_BUSY == coex_dm->bt_status) || + (BT_8723B_2ANT_BT_STATUS_SCO_BUSY == coex_dm->bt_status) || + (BT_8723B_2ANT_BT_STATUS_ACL_SCO_BUSY == coex_dm->bt_status)) { + bt_busy = true; + limited_dig = true; + } else { + bt_busy = false; + limited_dig = false; + } + + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_TRAFFIC_BUSY, &bt_busy); + + coex_dm->limited_dig = limited_dig; + btcoexist->btc_set(btcoexist, BTC_SET_BL_BT_LIMITED_DIG, &limited_dig); + + halbtc8723b2ant_run_coexist_mechanism(btcoexist); +} + +void ex_halbtc8723b2ant_halt_notify(struct btc_coexist *btcoexist) +{ + BTC_PRINT(BTC_MSG_INTERFACE, INTF_NOTIFY, "[BTCoex], Halt notify\n"); + + halbtc8723b2ant_wifioff_hwcfg(btcoexist); + halbtc8723b2ant_ignore_wlan_act(btcoexist, FORCE_EXEC, true); + ex_halbtc8723b2ant_media_status_notify(btcoexist, BTC_MEDIA_DISCONNECT); +} + +void ex_halbtc8723b2ant_periodical(struct btc_coexist *btcoexist) +{ + struct btc_board_info *board_info = &btcoexist->board_info; + struct btc_stack_info *stack_info = &btcoexist->stack_info; + static u8 dis_ver_info_cnt = 0; + u32 fw_ver = 0, bt_patch_ver = 0; + + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "[BTCoex], ==========================" + "Periodical===========================\n"); + + if (dis_ver_info_cnt <= 5) { + dis_ver_info_cnt += 1; + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], ****************************" + "************************************\n"); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], Ant PG Num/ Ant Mech/ " + "Ant Pos = %d/ %d/ %d\n", board_info->pg_ant_num, + board_info->btdm_ant_num, board_info->btdm_ant_pos); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], BT stack/ hci ext ver = %s / %d\n", + ((stack_info->profile_notified)? "Yes":"No"), + stack_info->hci_version); + btcoexist->btc_get(btcoexist, BTC_GET_U4_BT_PATCH_VER, + &bt_patch_ver); + btcoexist->btc_get(btcoexist, BTC_GET_U4_WIFI_FW_VER, &fw_ver); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], CoexVer/ fw_ver/ PatchVer = " + "%d_%x/ 0x%x/ 0x%x(%d)\n", + glcoex_ver_date_8723b_2ant, glcoex_ver_8723b_2ant, + fw_ver, bt_patch_ver, bt_patch_ver); + BTC_PRINT(BTC_MSG_INTERFACE, INTF_INIT, + "[BTCoex], *****************************" + "***********************************\n"); + } + +#if(BT_AUTO_REPORT_ONLY_8723B_2ANT == 0) + halbtc8723b2ant_query_bt_info(btcoexist); + halbtc8723b2ant_monitor_bt_ctr(btcoexist); + halbtc8723b2ant_monitor_bt_enable_disable(btcoexist); +#else + if (halbtc8723b2ant_is_wifi_status_changed(btcoexist) || + coex_dm->auto_tdma_adjust) + halbtc8723b2ant_run_coexist_mechanism(btcoexist); +#endif +} + + +#endif + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/halbtc8723b2ant.h +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/halbtc8723b2ant.h @@ -0,0 +1,145 @@ +/************************************************************************ + * The following is for 8723B 2Ant BT Co-exist definition + ************************************************************************/ +#define BT_AUTO_REPORT_ONLY_8723B_2ANT 1 + + +#define BT_INFO_8723B_2ANT_B_FTP BIT7 +#define BT_INFO_8723B_2ANT_B_A2DP BIT6 +#define BT_INFO_8723B_2ANT_B_HID BIT5 +#define BT_INFO_8723B_2ANT_B_SCO_BUSY BIT4 +#define BT_INFO_8723B_2ANT_B_ACL_BUSY BIT3 +#define BT_INFO_8723B_2ANT_B_INQ_PAGE BIT2 +#define BT_INFO_8723B_2ANT_B_SCO_ESCO BIT1 +#define BT_INFO_8723B_2ANT_B_CONNECTION BIT0 + +#define BTC_RSSI_COEX_THRESH_TOL_8723B_2ANT 2 + +typedef enum _BT_INFO_SRC_8723B_2ANT{ + BT_INFO_SRC_8723B_2ANT_WIFI_FW = 0x0, + BT_INFO_SRC_8723B_2ANT_BT_RSP = 0x1, + BT_INFO_SRC_8723B_2ANT_BT_ACTIVE_SEND = 0x2, + BT_INFO_SRC_8723B_2ANT_MAX +}BT_INFO_SRC_8723B_2ANT,*PBT_INFO_SRC_8723B_2ANT; + +typedef enum _BT_8723B_2ANT_BT_STATUS{ + BT_8723B_2ANT_BT_STATUS_NON_CONNECTED_IDLE = 0x0, + BT_8723B_2ANT_BT_STATUS_CONNECTED_IDLE = 0x1, + BT_8723B_2ANT_BT_STATUS_INQ_PAGE = 0x2, + BT_8723B_2ANT_BT_STATUS_ACL_BUSY = 0x3, + BT_8723B_2ANT_BT_STATUS_SCO_BUSY = 0x4, + BT_8723B_2ANT_BT_STATUS_ACL_SCO_BUSY = 0x5, + BT_8723B_2ANT_BT_STATUS_MAX +}BT_8723B_2ANT_BT_STATUS,*PBT_8723B_2ANT_BT_STATUS; + +typedef enum _BT_8723B_2ANT_COEX_ALGO{ + BT_8723B_2ANT_COEX_ALGO_UNDEFINED = 0x0, + BT_8723B_2ANT_COEX_ALGO_SCO = 0x1, + BT_8723B_2ANT_COEX_ALGO_HID = 0x2, + BT_8723B_2ANT_COEX_ALGO_A2DP = 0x3, + BT_8723B_2ANT_COEX_ALGO_A2DP_PANHS = 0x4, + BT_8723B_2ANT_COEX_ALGO_PANEDR = 0x5, + BT_8723B_2ANT_COEX_ALGO_PANHS = 0x6, + BT_8723B_2ANT_COEX_ALGO_PANEDR_A2DP = 0x7, + BT_8723B_2ANT_COEX_ALGO_PANEDR_HID = 0x8, + BT_8723B_2ANT_COEX_ALGO_HID_A2DP_PANEDR = 0x9, + BT_8723B_2ANT_COEX_ALGO_HID_A2DP = 0xa, + BT_8723B_2ANT_COEX_ALGO_MAX = 0xb, +}BT_8723B_2ANT_COEX_ALGO,*PBT_8723B_2ANT_COEX_ALGO; + +struct coex_dm_8723b_2ant{ + /* fw mechanism */ + bool pre_dec_bt_pwr; + bool cur_dec_bt_pwr; + u8 pre_fw_dac_swing_lvl; + u8 cur_fw_dac_swing_lvl; + bool cur_ignore_wlan_act; + bool pre_ignore_wlan_act; + u8 pre_ps_tdma; + u8 cur_ps_tdma; + u8 ps_tdma_para[5]; + u8 ps_tdma_du_adj_type; + bool reset_tdma_adjust; + bool auto_tdma_adjust; + bool pre_ps_tdma_on; + bool cur_ps_tdma_on; + bool pre_bt_auto_report; + bool cur_bt_auto_report; + + /* sw mechanism */ + bool pre_rf_rx_lpf_shrink; + bool cur_rf_rx_lpf_shrink; + u32 bt_rf0x1e_backup; + bool pre_low_penalty_ra; + bool cur_low_penalty_ra; + bool pre_dac_swing_on; + u32 pre_dac_swing_lvl; + bool cur_dac_swing_on; + u32 cur_dac_swing_lvl; + bool pre_adc_back_off; + bool cur_adc_back_off; + bool pre_agc_table_en; + bool cur_agc_table_en; + u32 pre_val0x6c0; + u32 cur_val0x6c0; + u32 pre_val0x6c4; + u32 cur_val0x6c4; + u32 pre_val0x6c8; + u32 cur_val0x6c8; + u8 pre_val0x6cc; + u8 cur_val0x6cc; + bool limited_dig; + + /* algorithm related */ + u8 pre_algorithm; + u8 cur_algorithm; + u8 bt_status; + u8 wifi_chnl_info[3]; + + bool need_recover_0x948; + u16 backup_0x948; +}; + +struct coex_sta_8723b_2ant{ + bool bt_link_exist; + bool sco_exist; + bool a2dp_exist; + bool hid_exist; + bool pan_exist; + + bool under_lps; + bool under_ips; + u32 high_priority_tx; + u32 high_priority_rx; + u32 low_priority_tx; + u32 low_priority_rx; + u8 bt_rssi; + u8 pre_bt_rssi_state; + u8 pre_wifi_rssi_state[4]; + bool c2h_bt_info_req_sent; + u8 bt_info_c2h[BT_INFO_SRC_8723B_2ANT_MAX][10]; + u32 bt_info_c2h_cnt[BT_INFO_SRC_8723B_2ANT_MAX]; + bool c2h_bt_inquiry_page; + u8 bt_retry_cnt; + u8 bt_info_ext; +}; + +/********************************************************************* + * The following is interface which will notify coex module. + *********************************************************************/ +void ex_halbtc8723b2ant_init_hwconfig(struct btc_coexist *btcoexist); +void ex_halbtc8723b2ant_init_coex_dm(struct btc_coexist *btcoexist); +void ex_halbtc8723b2ant_ips_notify(struct btc_coexist *btcoexist, u8 type); +void ex_halbtc8723b2ant_lps_notify(struct btc_coexist *btcoexist, u8 type); +void ex_halbtc8723b2ant_scan_notify(struct btc_coexist *btcoexist, u8 type); +void ex_halbtc8723b2ant_connect_notify(struct btc_coexist *btcoexist, u8 type); +void ex_halbtc8723b2ant_media_status_notify(struct btc_coexist *btcoexist, + u8 type); +void ex_halbtc8723b2ant_special_packet_notify(struct btc_coexist *btcoexist, + u8 type); +void ex_halbtc8723b2ant_bt_info_notify(struct btc_coexist *btcoexist, + u8 *tmpbuf, u8 length); +void ex_halbtc8723b2ant_halt_notify(struct btc_coexist *btcoexist); +void ex_halbtc8723b2ant_periodical(struct btc_coexist * btcoexist); +void ex_halbtc8723b2ant_display_coex_info(struct btc_coexist *btcoexist); + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/halbtcoutsrc.c +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/halbtcoutsrc.c @@ -0,0 +1,1181 @@ +/****************************************************************************** + * + * Copyright(c) 2007 - 2013 Realtek Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * + ******************************************************************************/ + +#include "halbt_precomp.h" + +/*#if(BT_30_SUPPORT == 1)*/ +#if 1 +/*********************************************** + * Global variables + ***********************************************/ +const char *const bt_profile_string[]={ + "NONE", + "A2DP", + "PAN", + "HID", + "SCO", +}; + +const char *const bt_spec_string[]={ + "1.0b", + "1.1", + "1.2", + "2.0+EDR", + "2.1+EDR", + "3.0+HS", + "4.0", +}; + +const char *const bt_link_role_string[]={ + "Master", + "Slave", +}; + +const char *const h2c_state_string[]={ + "successful", + "h2c busy", + "rf off", + "fw not read", +}; + +const char *const io_state_string[]={ + "IO_STATUS_SUCCESS", + "IO_STATUS_FAIL_CANNOT_IO", + "IO_STATUS_FAIL_RF_OFF", + "IO_STATUS_FAIL_FW_READ_CLEAR_TIMEOUT", + "IO_STATUS_FAIL_WAIT_IO_EVENT_TIMEOUT", + "IO_STATUS_INVALID_LEN", + "IO_STATUS_IO_IDLE_QUEUE_EMPTY", + "IO_STATUS_IO_INSERT_WAIT_QUEUE_FAIL", + "IO_STATUS_UNKNOWN_FAIL", + "IO_STATUS_WRONG_LEVEL", + "IO_STATUS_H2C_STOPPED", +}; + +struct btc_coexist gl_bt_coexist; + +u32 btc_dbg_type[BTC_MSG_MAX]; +u8 btc_dbg_buf[100]; + +/*************************************************** + * Debug related function + ***************************************************/ +bool halbtc_is_bt_coexist_available(struct btc_coexist *btcoexist) +{ + if (!btcoexist->binded || NULL == btcoexist->adapter) + return false; + + return true; +} + +bool halbtc_is_wifi_busy(struct rtl_priv *rtlpriv) +{ + + if (rtlpriv->link_info.b_busytraffic) + return true; + else + return false; +} + + +void halbtc_dbg_init(void) +{ + u8 i; + + for (i = 0; i < BTC_MSG_MAX; i++) + btc_dbg_type[i] = 0; + + btc_dbg_type[BTC_MSG_INTERFACE] = \ +// INTF_INIT | +// INTF_NOTIFY | + 0; + + btc_dbg_type[BTC_MSG_ALGORITHM] = \ +// ALGO_BT_RSSI_STATE | +// ALGO_WIFI_RSSI_STATE | +// ALGO_BT_MONITOR | +// ALGO_TRACE | +// ALGO_TRACE_FW | +// ALGO_TRACE_FW_DETAIL | +// ALGO_TRACE_FW_EXEC | +// ALGO_TRACE_SW | +// ALGO_TRACE_SW_DETAIL | +// ALGO_TRACE_SW_EXEC | + 0; +} + +bool halbtc_is_hw_mailbox_exist(struct btc_coexist *btcoexist) +{ + return true; +} + +bool halbtc_is_bt40(struct rtl_priv *adapter) +{ + struct rtl_priv *rtlpriv = adapter; + struct rtl_phy *rtlphy = &(rtlpriv->phy); + bool is_ht40 = true; + enum ht_channel_width bw = rtlphy->current_chan_bw; + + + if (bw == HT_CHANNEL_WIDTH_20) + is_ht40 = false; + else if (bw == HT_CHANNEL_WIDTH_20_40) + is_ht40 = true; + + return is_ht40; +} + +bool halbtc_legacy(struct rtl_priv *adapter) +{ + struct rtl_priv *rtlpriv = adapter; + struct rtl_mac *mac = rtl_mac(rtlpriv); + + bool is_legacy = false; + + if ((mac->mode == WIRELESS_MODE_B) || (mac->mode == WIRELESS_MODE_B)) + is_legacy = true; + + return is_legacy; +} + +bool halbtc_is_wifi_uplink(struct rtl_priv *adapter) +{ + struct rtl_priv *rtlpriv = adapter; + + if (rtlpriv->link_info.b_tx_busy_traffic) + return true; + else + return false; +} + +u32 halbtc_get_wifi_bw(struct btc_coexist *btcoexist) +{ + struct rtl_priv *rtlpriv = + (struct rtl_priv *)btcoexist->adapter; + u32 wifi_bw = BTC_WIFI_BW_HT20; + + if (halbtc_is_bt40(rtlpriv)){ + wifi_bw = BTC_WIFI_BW_HT40; + } else { + if(halbtc_legacy(rtlpriv)) + wifi_bw = BTC_WIFI_BW_LEGACY; + else + wifi_bw = BTC_WIFI_BW_HT20; + } + return wifi_bw; +} + +u8 halbtc_get_wifi_central_chnl(struct btc_coexist *btcoexist) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 chnl = 1; + + + if (rtlphy->current_channel != 0) + chnl = rtlphy->current_channel; + BTC_PRINT(BTC_MSG_ALGORITHM, ALGO_TRACE, + "halbtc_get_wifi_central_chnl:%d\n",chnl); + return chnl; +} + +void halbtc_leave_lps(struct btc_coexist *btcoexist) +{ + struct rtl_priv *rtlpriv; + struct rtl_ps_ctl *ppsc; + bool ap_enable = false; + + rtlpriv = btcoexist->adapter; + ppsc = rtl_psc(rtlpriv); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_AP_MODE_ENABLE, + &ap_enable); + + if (ap_enable) { + printk("halbtc_leave_lps()<--dont leave lps under AP mode\n"); + return; + } + + btcoexist->bt_info.bt_ctrl_lps = true; + btcoexist->bt_info.bt_lps_on = false; +} + +void halbtc_enter_lps(struct btc_coexist *btcoexist) +{ + struct rtl_priv *rtlpriv; + struct rtl_ps_ctl *ppsc; + bool ap_enable = false; + + rtlpriv = btcoexist->adapter; + ppsc = rtl_psc(rtlpriv); + + btcoexist->btc_get(btcoexist, BTC_GET_BL_WIFI_AP_MODE_ENABLE, + &ap_enable); + + if (ap_enable) { + printk("halbtc_enter_lps()<--dont enter lps under AP mode\n"); + return; + } + + btcoexist->bt_info.bt_ctrl_lps = true; + btcoexist->bt_info.bt_lps_on = false; +} + +void halbtc_normal_lps(struct btc_coexist *btcoexist) +{ + if (btcoexist->bt_info.bt_ctrl_lps) { + btcoexist->bt_info.bt_lps_on = false; + btcoexist->bt_info.bt_ctrl_lps = false; + } + +} + +void halbtc_leave_low_power(void) +{ +} + +void halbtc_nomal_low_power(void) +{ +} + +void halbtc_disable_low_power(void) +{ +} + +void halbtc_aggregation_check(void) +{ +} + + +u32 halbtc_get_bt_patch_version(struct btc_coexist *btcoexist) +{ + return 0; +} + +s32 halbtc_get_wifi_rssi(struct rtl_priv *adapter) +{ + struct rtl_priv *rtlpriv = adapter; + s32 undecorated_smoothed_pwdb = 0; + + if (rtlpriv->mac80211.link_state >= MAC80211_LINKED) + undecorated_smoothed_pwdb = + rtlpriv->dm.undecorated_smoothed_pwdb; + else /* associated entry pwdb */ + undecorated_smoothed_pwdb = + rtlpriv->dm.undecorated_smoothed_pwdb; + return undecorated_smoothed_pwdb; +} + +bool halbtc_get(void *void_btcoexist, u8 get_type, void *out_buf) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)void_btcoexist; + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_mac *mac = rtl_mac(rtlpriv); + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + bool *bool_tmp = (bool*)out_buf; + int *s32_tmp = (int*)out_buf; + u32 *u32_tmp = (u32*)out_buf; + u8 *u8_tmp = (u8*)out_buf; + bool tmp = false; + + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return false; + + + switch (get_type){ + case BTC_GET_BL_HS_OPERATION: + *bool_tmp = false; + break; + case BTC_GET_BL_HS_CONNECTING: + *bool_tmp = false; + break; + case BTC_GET_BL_WIFI_CONNECTED: + if (rtlpriv->mac80211.link_state >= MAC80211_LINKED) + tmp = true; + + *bool_tmp = tmp; + break; + case BTC_GET_BL_WIFI_BUSY: + if(halbtc_is_wifi_busy(rtlpriv)) + *bool_tmp = true; + else + *bool_tmp = false; + break; + case BTC_GET_BL_WIFI_SCAN: + if (mac->act_scanning == true) + *bool_tmp = true; + else + *bool_tmp = false; + break; + case BTC_GET_BL_WIFI_LINK: + if (mac->link_state == MAC80211_LINKING) + *bool_tmp = true; + else + *bool_tmp = false; + break; + case BTC_GET_BL_WIFI_ROAM: /*TODO*/ + if (mac->link_state == MAC80211_LINKING) + *bool_tmp = true; + else + *bool_tmp = false; + break; + case BTC_GET_BL_WIFI_4_WAY_PROGRESS: /*TODO*/ + *bool_tmp = false; + + break; + case BTC_GET_BL_WIFI_UNDER_5G: + *bool_tmp = false; /*TODO*/ + + case BTC_GET_BL_WIFI_DHCP: /*TODO*/ + break; + case BTC_GET_BL_WIFI_SOFTAP_IDLE: + *bool_tmp = true; + break; + case BTC_GET_BL_WIFI_SOFTAP_LINKING: + *bool_tmp = false; + break; + case BTC_GET_BL_WIFI_IN_EARLY_SUSPEND: + *bool_tmp = false; + break; + case BTC_GET_BL_WIFI_AP_MODE_ENABLE: + *bool_tmp = false; + break; + case BTC_GET_BL_WIFI_ENABLE_ENCRYPTION: + if (NO_ENCRYPTION == rtlpriv->sec.pairwise_enc_algorithm) + *bool_tmp = false; + else + *bool_tmp = true; + break; + case BTC_GET_BL_WIFI_UNDER_B_MODE: + *bool_tmp = false; /*TODO*/ + break; + case BTC_GET_BL_EXT_SWITCH: + *bool_tmp = false; + break; + case BTC_GET_S4_WIFI_RSSI: + *s32_tmp = halbtc_get_wifi_rssi(rtlpriv); + break; + case BTC_GET_S4_HS_RSSI: /*TODO*/ + *s32_tmp = halbtc_get_wifi_rssi(rtlpriv); + break; + case BTC_GET_U4_WIFI_BW: + *u32_tmp = halbtc_get_wifi_bw(btcoexist); + break; + case BTC_GET_U4_WIFI_TRAFFIC_DIRECTION: + if (halbtc_is_wifi_uplink(rtlpriv)) + *u32_tmp = BTC_WIFI_TRAFFIC_TX; + else + *u32_tmp = BTC_WIFI_TRAFFIC_RX; + break; + case BTC_GET_U4_WIFI_FW_VER: + *u32_tmp = rtlhal->fw_version; + break; + case BTC_GET_U4_BT_PATCH_VER: + *u32_tmp = halbtc_get_bt_patch_version(btcoexist); + break; + case BTC_GET_U1_WIFI_DOT11_CHNL: + *u8_tmp = rtlphy->current_channel; + break; + case BTC_GET_U1_WIFI_CENTRAL_CHNL: + *u8_tmp = halbtc_get_wifi_central_chnl(btcoexist); + break; + case BTC_GET_U1_WIFI_HS_CHNL: + *u8_tmp = 1;/* BT_OperateChnl(rtlpriv); */ + break; + case BTC_GET_U1_MAC_PHY_MODE: + *u8_tmp = BTC_MP_UNKNOWN; + break; + case BTC_GET_U1_AP_NUM: + /* driver don't know AP num in Linux, + * So, the return value here is not right */ + *u8_tmp = 1;/* pDefMgntInfo->NumBssDesc4Query; */ + break; + + /************* 1Ant **************/ + case BTC_GET_U1_LPS_MODE: + *u8_tmp = btcoexist->pwr_mode_val[0]; + break; + + default: + break; + } + + return true; +} + +bool halbtc_set(void *void_btcoexist, u8 set_type, void *in_buf) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)void_btcoexist; + bool *bool_tmp = (bool *)in_buf; + u8 *u8_tmp = (u8 *)in_buf; + u32 *u32_tmp = (u32 *)in_buf; + + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return false; + + switch (set_type) { + /* set some bool type variables. */ + case BTC_SET_BL_BT_DISABLE: + btcoexist->bt_info.bt_disabled = *bool_tmp; + break; + case BTC_SET_BL_BT_TRAFFIC_BUSY: + btcoexist->bt_info.bt_busy = *bool_tmp; + break; + case BTC_SET_BL_BT_LIMITED_DIG: + btcoexist->bt_info.limited_dig = *bool_tmp; + break; + case BTC_SET_BL_FORCE_TO_ROAM: + btcoexist->bt_info.force_to_roam = *bool_tmp; + break; + case BTC_SET_BL_TO_REJ_AP_AGG_PKT: + btcoexist->bt_info.reject_agg_pkt = *bool_tmp; + break; + case BTC_SET_BL_BT_CTRL_AGG_SIZE: + btcoexist->bt_info.b_bt_ctrl_buf_size = *bool_tmp; + break; + case BTC_SET_BL_INC_SCAN_DEV_NUM: + btcoexist->bt_info.increase_scan_dev_num = *bool_tmp; + break; + /* set some u1Byte type variables. */ + case BTC_SET_U1_RSSI_ADJ_VAL_FOR_AGC_TABLE_ON: + btcoexist->bt_info.rssi_adjust_for_agc_table_on = *u8_tmp; + break; + case BTC_SET_U1_AGG_BUF_SIZE: + btcoexist->bt_info.agg_buf_size = *u8_tmp; + break; + /* the following are some action which will be triggered */ + case BTC_SET_ACT_GET_BT_RSSI: + /*BTHCI_SendGetBtRssiEvent(rtlpriv);*/ + break; + case BTC_SET_ACT_AGGREGATE_CTRL: + halbtc_aggregation_check(); + break; + + /* 1Ant */ + case BTC_SET_U1_RSSI_ADJ_VAL_FOR_1ANT_COEX_TYPE: + btcoexist->bt_info.rssi_adjust_for_1ant_coex_type = *u8_tmp; + break; + case BTC_SET_UI_SCAN_SIG_COMPENSATION: + /* rtlpriv->mlmepriv.scan_compensation = *u8_tmp; */ + break; + case BTC_SET_U1_1ANT_LPS: + btcoexist->bt_info.lps_1ant = *u8_tmp; + break; + case BTC_SET_U1_1ANT_RPWM: + btcoexist->bt_info.rpwm_1ant = *u8_tmp; + break; + /* the following are some action which will be triggered */ + case BTC_SET_ACT_LEAVE_LPS: + halbtc_leave_lps(btcoexist); + break; + case BTC_SET_ACT_ENTER_LPS: + halbtc_enter_lps(btcoexist); + break; + case BTC_SET_ACT_NORMAL_LPS: + halbtc_normal_lps(btcoexist); + break; + case BTC_SET_ACT_DISABLE_LOW_POWER: + halbtc_disable_low_power(); + break; + case BTC_SET_ACT_UPDATE_ra_mask: + btcoexist->bt_info.ra_mask = *u32_tmp; + break; + case BTC_SET_ACT_SEND_MIMO_PS: + break; + case BTC_SET_ACT_INC_FORCE_EXEC_PWR_CMD_CNT: + btcoexist->bt_info.force_exec_pwr_cmd_cnt++; + break; + case BTC_SET_ACT_CTRL_BT_INFO: /*wait for 8812/8821*/ + break; + case BTC_SET_ACT_CTRL_BT_COEX: + break; + default: + break; + } + + return true; +} + +void halbtc_display_coex_statistics(struct btc_coexist *btcoexist) +{ +} + +void halbtc_display_bt_link_info(struct btc_coexist *btcoexist) +{ +} + +void halbtc_display_bt_fw_info(struct btc_coexist *btcoexist) +{ +} + +void halbtc_display_fw_pwr_mode_cmd(struct btc_coexist *btcoexist) +{ +} + +/************************************************************ + * IO related function + ************************************************************/ +u8 halbtc_read_1byte(void *bt_context, u32 reg_addr) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + return rtl_read_byte(rtlpriv, reg_addr); +} + + +u16 halbtc_read_2byte(void *bt_context, u32 reg_addr) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + return rtl_read_word(rtlpriv, reg_addr); +} + + +u32 halbtc_read_4byte(void *bt_context, u32 reg_addr) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + return rtl_read_dword(rtlpriv, reg_addr); +} + + +void halbtc_write_1byte(void *bt_context, u32 reg_addr, u8 data) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + rtl_write_byte(rtlpriv, reg_addr, data); +} + +void halbtc_bitmask_write_1byte(void *bt_context, u32 reg_addr, + u8 bit_mask, u8 data) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + u8 original_value, bit_shift = 0; + u8 i; + + if (bit_mask != MASKDWORD) {/*if not "double word" write*/ + original_value = rtl_read_byte(rtlpriv, reg_addr); + for (i=0; i<=7; i++) { + if((bit_mask>>i)&0x1) + break; + } + bit_shift = i; + data = (original_value & (~bit_mask)) | + ((data << bit_shift) & bit_mask); + } + rtl_write_byte(rtlpriv, reg_addr, data); +} + + +void halbtc_write_2byte(void *bt_context, u32 reg_addr, u16 data) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + rtl_write_word(rtlpriv, reg_addr, data); +} + + +void halbtc_write_4byte(void *bt_context, u32 reg_addr, u32 data) +{ + struct btc_coexist *btcoexist = + (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + rtl_write_dword(rtlpriv, reg_addr, data); +} + + +void halbtc_set_macreg(void *bt_context, u32 reg_addr, u32 bit_mask, u32 data) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + rtl_set_bbreg(rtlpriv->mac80211.hw, reg_addr, bit_mask, data); +} + + +u32 halbtc_get_macreg(void *bt_context, u32 reg_addr, u32 bit_mask) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + return rtl_get_bbreg(rtlpriv->mac80211.hw, reg_addr, bit_mask); +} + + +void halbtc_set_bbreg(void *bt_context, u32 reg_addr, u32 bit_mask, u32 data) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + rtl_set_bbreg(rtlpriv->mac80211.hw, reg_addr, bit_mask, data); +} + + +u32 halbtc_get_bbreg(void *bt_context, u32 reg_addr, u32 bit_mask) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + return rtl_get_bbreg(rtlpriv->mac80211.hw,reg_addr, bit_mask); +} + + +void halbtc_set_rfreg(void *bt_context, u8 rf_path, u32 reg_addr, + u32 bit_mask, u32 data) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + rtl_set_rfreg(rtlpriv->mac80211.hw, rf_path, reg_addr, bit_mask, data); +} + + +u32 halbtc_get_rfreg(void *bt_context, u8 rf_path, u32 reg_addr, u32 bit_mask) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + return rtl_get_rfreg(rtlpriv->mac80211.hw, rf_path, reg_addr, bit_mask); +} + + +void halbtc_fill_h2c_cmd(void *bt_context, u8 element_id, + u32 cmd_len, u8 *cmd_buf) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + struct rtl_priv *rtlpriv = btcoexist->adapter; + + rtlpriv->cfg->ops->fill_h2c_cmd(rtlpriv->mac80211.hw, element_id, + cmd_len, cmd_buf); +} + +void halbtc_display_dbg_msg(void *bt_context, u8 disp_type) +{ + struct btc_coexist *btcoexist = (struct btc_coexist *)bt_context; + switch (disp_type) { + case BTC_DBG_DISP_COEX_STATISTICS: + halbtc_display_coex_statistics(btcoexist); + break; + case BTC_DBG_DISP_BT_LINK_INFO: + halbtc_display_bt_link_info(btcoexist); + break; + case BTC_DBG_DISP_BT_FW_VER: + halbtc_display_bt_fw_info(btcoexist); + break; + case BTC_DBG_DISP_FW_PWR_MODE_CMD: + halbtc_display_fw_pwr_mode_cmd(btcoexist); + break; + default: + break; + } +} + +bool halbtc_under_ips(struct btc_coexist *btcoexist) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_ps_ctl *ppsc = rtl_psc(rtlpriv); + enum rf_pwrstate rtstate; + + if (ppsc->b_inactiveps) { + rtstate = ppsc->rfpwr_state; + + if (rtstate != ERFON && + ppsc->rfoff_reason == RF_CHANGE_BY_IPS) { + + return true; + } + } + + return false; +} + +/***************************************************************** + * Extern functions called by other module + *****************************************************************/ +bool exhalbtc_initlize_variables(struct rtl_priv *adapter) +{ + struct btc_coexist *btcoexist = &gl_bt_coexist; + + btcoexist->statistics.cnt_bind++; + + halbtc_dbg_init(); + + if (btcoexist->binded) + return false; + else + btcoexist->binded = true; + +#if ( defined(CONFIG_PCI_HCI)) + btcoexist->chip_interface = BTC_INTF_PCI; +#elif ( defined(CONFIG_USB_HCI)) + btcoexist->chip_interface = BTC_INTF_USB; +#elif ( defined(CONFIG_SDIO_HCI)) + btcoexist->chip_interface = BTC_INTF_SDIO; +#elif ( defined(CONFIG_GSPI_HCI)) + btcoexist->chip_interface = BTC_INTF_GSPI; +#else + btcoexist->chip_interface = BTC_INTF_UNKNOWN; +#endif + + if (NULL == btcoexist->adapter) + btcoexist->adapter = adapter; + + btcoexist->stack_info.profile_notified = false; + + btcoexist->btc_read_1byte = halbtc_read_1byte; + btcoexist->btc_write_1byte = halbtc_write_1byte; + btcoexist->btc_write_1byte_bitmask = halbtc_bitmask_write_1byte; + btcoexist->btc_read_2byte = halbtc_read_2byte; + btcoexist->btc_write_2byte = halbtc_write_2byte; + btcoexist->btc_read_4byte = halbtc_read_4byte; + btcoexist->btc_write_4byte = halbtc_write_4byte; + + btcoexist->btc_set_bb_reg = halbtc_set_bbreg; + btcoexist->btc_get_bb_reg = halbtc_get_bbreg; + + btcoexist->btc_set_rf_reg = halbtc_set_rfreg; + btcoexist->btc_get_rf_reg = halbtc_get_rfreg; + + btcoexist->btc_fill_h2c = halbtc_fill_h2c_cmd; + btcoexist->btc_disp_dbg_msg = halbtc_display_dbg_msg; + + btcoexist->btc_get = halbtc_get; + btcoexist->btc_set = halbtc_set; + + btcoexist->cli_buf = &btc_dbg_buf[0]; + + btcoexist->bt_info.b_bt_ctrl_buf_size = false; + btcoexist->bt_info.agg_buf_size = 5; + + btcoexist->bt_info.increase_scan_dev_num = false; + return true; +} + +void exhalbtc_init_hw_config(struct btc_coexist *btcoexist) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + + btcoexist->statistics.cnt_init_hw_config++; + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) { + if (btcoexist->board_info.btdm_ant_num == 2) + ex_halbtc8723b2ant_init_hwconfig(btcoexist); + else if(btcoexist->board_info.btdm_ant_num == 1) + ex_halbtc8723b1ant_init_hwconfig(btcoexist); + } else if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192EE) { + ex_halbtc8192e2ant_init_hwconfig(btcoexist); + } + +} + +void exhalbtc_init_coex_dm(struct btc_coexist *btcoexist) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + + btcoexist->statistics.cnt_init_coex_dm++; + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) { + if (btcoexist->board_info.btdm_ant_num == 2) + ex_halbtc8723b2ant_init_coex_dm(btcoexist); + else if(btcoexist->board_info.btdm_ant_num == 1) + ex_halbtc8723b1ant_init_coex_dm(btcoexist); + } else if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192EE) { + ex_halbtc8192e2ant_init_coex_dm(btcoexist); + } + + btcoexist->initilized = true; +} + +void exhalbtc_ips_notify(struct btc_coexist *btcoexist, u8 type) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + u8 ips_type; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_ips_notify++; + if (btcoexist->manual_control) + return; + + if (ERFOFF == type) + ips_type = BTC_IPS_ENTER; + else + ips_type = BTC_IPS_LEAVE; + + halbtc_leave_low_power(); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) { + if (btcoexist->board_info.btdm_ant_num == 2) + ex_halbtc8723b2ant_ips_notify(btcoexist, ips_type); + else if(btcoexist->board_info.btdm_ant_num == 1) + ex_halbtc8723b1ant_ips_notify(btcoexist, ips_type); + } else if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192EE) { + ex_halbtc8192e2ant_ips_notify(btcoexist, ips_type); + } + + halbtc_nomal_low_power(); +} + +void exhalbtc_lps_notify(struct btc_coexist *btcoexist, u8 type) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + u8 lps_type; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_lps_notify++; + if (btcoexist->manual_control) + return; + + if (EACTIVE == type) + lps_type = BTC_LPS_DISABLE; + else + lps_type = BTC_LPS_ENABLE; + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) { + if (btcoexist->board_info.btdm_ant_num == 2) + ex_halbtc8723b2ant_lps_notify(btcoexist, lps_type); + else if(btcoexist->board_info.btdm_ant_num == 1) + ex_halbtc8723b1ant_lps_notify(btcoexist, lps_type); + } else if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192EE) { + ex_halbtc8192e2ant_lps_notify(btcoexist, lps_type); + } +} + +void exhalbtc_scan_notify(struct btc_coexist *btcoexist, u8 type) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + u8 scan_type; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_scan_notify++; + if (btcoexist->manual_control) + return; + + if (type) + scan_type = BTC_SCAN_START; + else + scan_type = BTC_SCAN_FINISH; + + halbtc_leave_low_power(); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) { + if (btcoexist->board_info.btdm_ant_num == 2) + ex_halbtc8723b2ant_scan_notify(btcoexist, scan_type); + else if(btcoexist->board_info.btdm_ant_num == 1) + ex_halbtc8723b1ant_scan_notify(btcoexist, scan_type); + } else if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192EE) { + ex_halbtc8192e2ant_scan_notify(btcoexist, scan_type); + } + + halbtc_nomal_low_power(); +} + +void exhalbtc_connect_notify(struct btc_coexist *btcoexist, u8 action) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + u8 asso_type; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_connect_notify++; + if (btcoexist->manual_control) + return; + + if (action) + asso_type = BTC_ASSOCIATE_START; + else + asso_type = BTC_ASSOCIATE_FINISH; + + halbtc_leave_low_power(); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) { + if (btcoexist->board_info.btdm_ant_num == 2) + ex_halbtc8723b2ant_connect_notify(btcoexist, asso_type); + else if(btcoexist->board_info.btdm_ant_num == 1) + ex_halbtc8723b1ant_connect_notify(btcoexist, asso_type); + } else if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192EE) { + ex_halbtc8192e2ant_connect_notify(btcoexist, asso_type); + } + + halbtc_nomal_low_power(); +} + +void exhalbtc_mediastatus_notify(struct btc_coexist *btcoexist, + enum rt_media_status media_status) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + u8 status; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_media_status_notify++; + if (btcoexist->manual_control) + return; + + if (RT_MEDIA_CONNECT == media_status) + status = BTC_MEDIA_CONNECT; + else + status = BTC_MEDIA_DISCONNECT; + + halbtc_leave_low_power(); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) { + if (btcoexist->board_info.btdm_ant_num == 2) + ex_halbtc8723b2ant_media_status_notify(btcoexist, status); + else if(btcoexist->board_info.btdm_ant_num == 1) + ex_halbtc8723b1ant_media_status_notify(btcoexist, status); + } else if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192EE) { + ex_halbtc8192e2ant_media_status_notify(btcoexist, status); + } + + halbtc_nomal_low_power(); +} + +void exhalbtc_special_packet_notify(struct btc_coexist *btcoexist, u8 pkt_type) +{ + u8 packet_type; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_special_packet_notify++; + if (btcoexist->manual_control) + return; + + /*if(PACKET_DHCP == pkt_type)*/ + packet_type = BTC_PACKET_DHCP; + /*else if(PACKET_EAPOL == pkt_type) + packet_type = BTC_PACKET_EAPOL; + else + packet_type = BTC_PACKET_UNKNOWN;*/ + + halbtc_leave_low_power(); + + if (btcoexist->board_info.btdm_ant_num == 2) + ex_halbtc8723b2ant_special_packet_notify(btcoexist, + packet_type); + else if (btcoexist->board_info.btdm_ant_num == 1) + ex_halbtc8723b1ant_special_packet_notify(btcoexist, + packet_type); + + halbtc_nomal_low_power(); +} + +void exhalbtc_bt_info_notify(struct btc_coexist *btcoexist, + u8 *tmp_buf, u8 length) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_bt_info_notify++; + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) { + if (btcoexist->board_info.btdm_ant_num == 2) + ex_halbtc8723b2ant_bt_info_notify(btcoexist, tmp_buf, length); + else if(btcoexist->board_info.btdm_ant_num == 1) + ex_halbtc8723b1ant_bt_info_notify(btcoexist, tmp_buf, length); + } else if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192EE) { + // ex_halbtc8192e2ant_bt_info_notify(btcoexist, tmp_buf, length); + } +} + +void exhalbtc_stack_operation_notify(struct btc_coexist *btcoexist, u8 type) +{ + u8 stack_op_type; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_stack_operation_notify++; + if (btcoexist->manual_control) + return; + + stack_op_type = BTC_STACK_OP_NONE; +} + +void exhalbtc_halt_notify(struct btc_coexist *btcoexist) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) { + if (btcoexist->board_info.btdm_ant_num == 2) + ex_halbtc8723b2ant_halt_notify(btcoexist); + else if(btcoexist->board_info.btdm_ant_num == 1) + ex_halbtc8723b1ant_halt_notify(btcoexist); + } else if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192EE) { + ex_halbtc8192e2ant_halt_notify(btcoexist); + } +} + +void exhalbtc_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state) +{ + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; +} + +void exhalbtc_periodical(struct btc_coexist *btcoexist) +{ + struct rtl_priv *rtlpriv = btcoexist->adapter; + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_periodical++; + + halbtc_leave_low_power(); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) { + if (btcoexist->board_info.btdm_ant_num == 2) + ex_halbtc8723b2ant_periodical(btcoexist); + else if(btcoexist->board_info.btdm_ant_num == 1) + ex_halbtc8723b1ant_periodical(btcoexist); + } else if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192EE) { + ex_halbtc8192e2ant_periodical(btcoexist); + } + + halbtc_nomal_low_power(); +} + +void exhalbtc_dbg_control(struct btc_coexist *btcoexist, + u8 code, u8 len, u8 *data) +{ + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + btcoexist->statistics.cnt_dbg_ctrl++; +} + +void exhalbtc_stack_update_profile_info() +{ +} + +void exhalbtc_update_min_bt_rssi(char bt_rssi) +{ + struct btc_coexist *btcoexist = &gl_bt_coexist; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + + btcoexist->stack_info.min_bt_rssi = bt_rssi; +} + + +void exhalbtc_set_hci_version(u16 hci_version) +{ + struct btc_coexist *btcoexist = &gl_bt_coexist; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + + btcoexist->stack_info.hci_version = hci_version; +} + +void exhalbtc_set_bt_patch_version(u16 bt_hci_version, u16 bt_patch_version) +{ + struct btc_coexist *btcoexist = &gl_bt_coexist; + + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + + btcoexist->bt_info.bt_real_fw_ver = bt_patch_version; + btcoexist->bt_info.bt_hci_ver = bt_hci_version; +} + +void exhalbtc_set_bt_exist(bool bt_exist) +{ + gl_bt_coexist.board_info.bt_exist = bt_exist; +} + +void exhalbtc_set_chip_type(u8 chip_type) +{ + switch (chip_type) { + default: + case BT_2WIRE: + case BT_ISSC_3WIRE: + case BT_ACCEL: + case BT_RTL8756: + gl_bt_coexist.board_info.bt_chip_type = BTC_CHIP_UNDEF; + break; + case BT_CSR_BC4: + gl_bt_coexist.board_info.bt_chip_type = BTC_CHIP_CSR_BC4; + break; + case BT_CSR_BC8: + gl_bt_coexist.board_info.bt_chip_type = BTC_CHIP_CSR_BC8; + break; + case BT_RTL8723A: + gl_bt_coexist.board_info.bt_chip_type = BTC_CHIP_RTL8723A; + break; + case BT_RTL8821A: + gl_bt_coexist.board_info.bt_chip_type = BTC_CHIP_RTL8821; + break; + case BT_RTL8723B: + gl_bt_coexist.board_info.bt_chip_type = BTC_CHIP_RTL8723B; + break; + } +} + +void exhalbtc_set_ant_num(u8 type, u8 ant_num) +{ + if (BT_COEX_ANT_TYPE_PG == type) { + gl_bt_coexist.board_info.pg_ant_num = ant_num; + gl_bt_coexist.board_info.btdm_ant_num = ant_num; + } else if (BT_COEX_ANT_TYPE_ANTDIV == type) { + gl_bt_coexist.board_info.btdm_ant_num = ant_num; + } +} + +void exhalbtc_display_bt_coex_info(struct btc_coexist *btcoexist) +{ + if (!halbtc_is_bt_coexist_available(btcoexist)) + return; + + if (btcoexist->board_info.btdm_ant_num == 2) + ex_halbtc8723b2ant_display_coex_info(btcoexist); + else if (btcoexist->board_info.btdm_ant_num == 1) + ex_halbtc8723b1ant_display_coex_info(btcoexist); +} + +#endif + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/halbtcoutsrc.h +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/halbtcoutsrc.h @@ -0,0 +1,549 @@ +#ifndef __HALBTC_OUT_SRC_H__ +#define __HALBTC_OUT_SRC_H__ + +#include "../wifi.h" + +#define NORMAL_EXEC false +#define FORCE_EXEC true + +#define BTC_RF_A RF90_PATH_A +#define BTC_RF_B RF90_PATH_B +#define BTC_RF_C RF90_PATH_C +#define BTC_RF_D RF90_PATH_D + +#define BTC_SMSP SINGLEMAC_SINGLEPHY +#define BTC_DMDP DUALMAC_DUALPHY +#define BTC_DMSP DUALMAC_SINGLEPHY +#define BTC_MP_UNKNOWN 0xff + +#define IN +#define OUT + +#define BT_TMP_BUF_SIZE 100 + +#define BT_COEX_ANT_TYPE_PG 0 +#define BT_COEX_ANT_TYPE_ANTDIV 1 +#define BT_COEX_ANT_TYPE_DETECTED 2 + +#define BTC_MIMO_PS_STATIC 0 +#define BTC_MIMO_PS_DYNAMIC 1 + +#define BTC_RATE_DISABLE 0 +#define BTC_RATE_ENABLE 1 + +/* single Antenna definition */ +#define BTC_ANT_PATH_WIFI 0 +#define BTC_ANT_PATH_BT 1 +#define BTC_ANT_PATH_PTA 2 +/* dual Antenna definition */ +#define BTC_ANT_WIFI_AT_MAIN 0 +#define BTC_ANT_WIFI_AT_AUX 1 +/* coupler Antenna definition */ +#define BTC_ANT_WIFI_AT_CPL_MAIN 0 +#define BTC_ANT_WIFI_AT_CPL_AUX 1 + +enum btc_chip_interface{ + BTC_INTF_UNKNOWN = 0, + BTC_INTF_PCI = 1, + BTC_INTF_USB = 2, + BTC_INTF_SDIO = 3, + BTC_INTF_GSPI = 4, + BTC_INTF_MAX +}; + +enum btc_chip_type{ + BTC_CHIP_UNDEF = 0, + BTC_CHIP_CSR_BC4 = 1, + BTC_CHIP_CSR_BC8 = 2, + BTC_CHIP_RTL8723A = 3, + BTC_CHIP_RTL8821 = 4, + BTC_CHIP_RTL8723B = 5, + BTC_CHIP_MAX +}; + +enum btc_msg_type{ + BTC_MSG_INTERFACE = 0x0, + BTC_MSG_ALGORITHM = 0x1, + BTC_MSG_MAX +}; + +extern u32 btc_dbg_type[]; + +/* following is for BTC_MSG_INTERFACE */ +#define INTF_INIT BIT0 +#define INTF_NOTIFY BIT2 + +/* following is for BTC_ALGORITHM */ +#define ALGO_BT_RSSI_STATE BIT0 +#define ALGO_WIFI_RSSI_STATE BIT1 +#define ALGO_BT_MONITOR BIT2 +#define ALGO_TRACE BIT3 +#define ALGO_TRACE_FW BIT4 +#define ALGO_TRACE_FW_DETAIL BIT5 +#define ALGO_TRACE_FW_EXEC BIT6 +#define ALGO_TRACE_SW BIT7 +#define ALGO_TRACE_SW_DETAIL BIT8 +#define ALGO_TRACE_SW_EXEC BIT9 + + + +#define CL_SPRINTF snprintf +#define CL_PRINTF printk + +#define BTC_PRINT(dbgtype, dbgflag, printstr, ...) \ + do { \ + if (unlikely(btc_dbg_type[dbgtype] & dbgflag)) {\ + printk(printstr, ##__VA_ARGS__); \ + } \ + } while(0) + +#define BTC_PRINT_F(dbgtype, dbgflag, printstr, ...) \ + do { \ + if (unlikely(btc_dbg_type[dbgtype] & dbgflag)) {\ + printk(KERN_DEBUG "%s: ", __func__); \ + printk(printstr, ##__VA_ARGS__); \ + } \ + } while(0) + +#define BTC_PRINT_ADDR(dbgtype, dbgflag, printstr, _ptr) \ + do { \ + if(unlikely(btc_dbg_type[dbgtype] & dbgflag)) { \ + int __i; \ + u8* __ptr = (u8*)_Ptr; \ + printk printstr; \ + for( __i = 0; __i < 6; __i++ ) \ + printk("%02X%s", __ptr[__i], (__i==5)?"":"-");\ + printk(KERN_DEBUG "\n"); \ + }\ + } while(0) + +#define BTC_PRINT_DATA(dbgtype, dbgflag, _titlestring, _hexdata, _hexdatalen) \ + do { \ + if(unlikely(btc_dbg_type[dbgtype] & dbgflag) ) { \ + int __i; \ + u8 *__ptr = (u8*)_hexdata; \ + printk(_titlestring); \ + for( __i = 0; __i < (int)_hexdatalen; __i++ ) { \ + printk("%02X%s", __ptr[__i], (((__i + 1) % 4) \ + == 0)?" ":" ");\ + if (((__i + 1) % 16) == 0) \ + printk("\n"); \ + } \ + printk(KERN_DEBUG "\n"); \ + } \ + } while(0) + + +#define BTC_RSSI_HIGH(_rssi_) \ + ((_rssi_==BTC_RSSI_STATE_HIGH || _rssi_==BTC_RSSI_STATE_STAY_HIGH) ? \ + true : false) + +#define BTC_RSSI_MEDIUM(_rssi_) \ + ((_rssi_==BTC_RSSI_STATE_MEDIUM || _rssi_==BTC_RSSI_STATE_STAY_MEDIUM) \ + ? true : false) + +#define BTC_RSSI_LOW(_rssi_) \ + ((_rssi_==BTC_RSSI_STATE_LOW || _rssi_==BTC_RSSI_STATE_STAY_LOW) ? \ + true : false) + + +enum btc_power_save_type { + BTC_PS_WIFI_NATIVE = 0, + BTC_PS_LPS_ON = 1, + BTC_PS_LPS_OFF = 2, + BTC_PS_LPS_MAX +}; + +struct btc_board_info { + /* The following is some board information */ + u8 bt_chip_type; + u8 pg_ant_num; /* pg ant number */ + u8 btdm_ant_num; /* ant number for btdm */ + u8 btdm_ant_pos; + bool bt_exist; +}; + +enum btc_dbg_opcode{ + BTC_DBG_SET_COEX_NORMAL = 0x0, + BTC_DBG_SET_COEX_WIFI_ONLY = 0x1, + BTC_DBG_SET_COEX_BT_ONLY = 0x2, + BTC_DBG_MAX +}; + +enum btc_rssi_state{ + BTC_RSSI_STATE_HIGH = 0x0, + BTC_RSSI_STATE_MEDIUM = 0x1, + BTC_RSSI_STATE_LOW = 0x2, + BTC_RSSI_STATE_STAY_HIGH = 0x3, + BTC_RSSI_STATE_STAY_MEDIUM = 0x4, + BTC_RSSI_STATE_STAY_LOW = 0x5, + BTC_RSSI_MAX +}; + +enum btc_wifi_role{ + BTC_ROLE_STATION = 0x0, + BTC_ROLE_AP = 0x1, + BTC_ROLE_IBSS = 0x2, + BTC_ROLE_HS_MODE = 0x3, + BTC_ROLE_MAX +}; + +enum btc_wifi_bw_mode{ + BTC_WIFI_BW_LEGACY = 0x0, + BTC_WIFI_BW_HT20 = 0x1, + BTC_WIFI_BW_HT40 = 0x2, + BTC_WIFI_BW_MAX +}; + +enum btc_wifi_traffic_dir{ + BTC_WIFI_TRAFFIC_TX = 0x0, + BTC_WIFI_TRAFFIC_RX = 0x1, + BTC_WIFI_TRAFFIC_MAX +}; + +enum btc_wifi_pnp{ + BTC_WIFI_PNP_WAKE_UP = 0x0, + BTC_WIFI_PNP_SLEEP = 0x1, + BTC_WIFI_PNP_MAX +}; + + +enum btc_get_type{ + /* type bool */ + BTC_GET_BL_HS_OPERATION, + BTC_GET_BL_HS_CONNECTING, + BTC_GET_BL_WIFI_CONNECTED, + BTC_GET_BL_WIFI_BUSY, + BTC_GET_BL_WIFI_SCAN, + BTC_GET_BL_WIFI_LINK, + BTC_GET_BL_WIFI_DHCP, + BTC_GET_BL_WIFI_SOFTAP_IDLE, + BTC_GET_BL_WIFI_SOFTAP_LINKING, + BTC_GET_BL_WIFI_IN_EARLY_SUSPEND, + BTC_GET_BL_WIFI_ROAM, + BTC_GET_BL_WIFI_4_WAY_PROGRESS, + BTC_GET_BL_WIFI_UNDER_5G, + BTC_GET_BL_WIFI_AP_MODE_ENABLE, + BTC_GET_BL_WIFI_ENABLE_ENCRYPTION, + BTC_GET_BL_WIFI_UNDER_B_MODE, + BTC_GET_BL_EXT_SWITCH, + + /* type s4Byte */ + BTC_GET_S4_WIFI_RSSI, + BTC_GET_S4_HS_RSSI, + + /* type u32 */ + BTC_GET_U4_WIFI_BW, + BTC_GET_U4_WIFI_TRAFFIC_DIRECTION, + BTC_GET_U4_WIFI_FW_VER, + BTC_GET_U4_BT_PATCH_VER, + + /* type u1Byte */ + BTC_GET_U1_WIFI_DOT11_CHNL, + BTC_GET_U1_WIFI_CENTRAL_CHNL, + BTC_GET_U1_WIFI_HS_CHNL, + BTC_GET_U1_MAC_PHY_MODE, + BTC_GET_U1_AP_NUM, + + /* for 1Ant */ + BTC_GET_U1_LPS_MODE, + BTC_GET_BL_BT_SCO_BUSY, + + /* for test mode */ + BTC_GET_DRIVER_TEST_CFG, +#if 0 + BTC_GET_U1_LPS, + BTC_GET_U1_RPWM, +#endif + BTC_GET_MAX +}; + + +enum btc_set_type{ + /* type bool */ + BTC_SET_BL_BT_DISABLE, + BTC_SET_BL_BT_TRAFFIC_BUSY, + BTC_SET_BL_BT_LIMITED_DIG, + BTC_SET_BL_FORCE_TO_ROAM, + BTC_SET_BL_TO_REJ_AP_AGG_PKT, + BTC_SET_BL_BT_CTRL_AGG_SIZE, + BTC_SET_BL_INC_SCAN_DEV_NUM, + + /* type u1Byte */ + BTC_SET_U1_RSSI_ADJ_VAL_FOR_AGC_TABLE_ON, + BTC_SET_U1_RSSI_ADJ_VAL_FOR_1ANT_COEX_TYPE, + BTC_SET_UI_SCAN_SIG_COMPENSATION, + BTC_SET_U1_AGG_BUF_SIZE, + + /* type trigger some action */ + BTC_SET_ACT_GET_BT_RSSI, + BTC_SET_ACT_AGGREGATE_CTRL, + + /********* for 1Ant **********/ + /* type bool */ + BTC_SET_BL_BT_SCO_BUSY, + /* type u1Byte */ + BTC_SET_U1_1ANT_LPS, + BTC_SET_U1_1ANT_RPWM, + /* type trigger some action */ + BTC_SET_ACT_LEAVE_LPS, + BTC_SET_ACT_ENTER_LPS, + BTC_SET_ACT_NORMAL_LPS, + BTC_SET_ACT_INC_FORCE_EXEC_PWR_CMD_CNT, + BTC_SET_ACT_DISABLE_LOW_POWER, + BTC_SET_ACT_UPDATE_ra_mask, + BTC_SET_ACT_SEND_MIMO_PS, + /* BT Coex related */ + BTC_SET_ACT_CTRL_BT_INFO, + BTC_SET_ACT_CTRL_BT_COEX, + /***************************/ + BTC_SET_MAX +}; + +enum btc_dbg_disp_type{ + BTC_DBG_DISP_COEX_STATISTICS = 0x0, + BTC_DBG_DISP_BT_LINK_INFO = 0x1, + BTC_DBG_DISP_BT_FW_VER = 0x2, + BTC_DBG_DISP_FW_PWR_MODE_CMD = 0x3, + BTC_DBG_DISP_MAX +}; + +enum btc_notify_type_ips{ + BTC_IPS_LEAVE = 0x0, + BTC_IPS_ENTER = 0x1, + BTC_IPS_MAX +}; + +enum btc_notify_type_lps{ + BTC_LPS_DISABLE = 0x0, + BTC_LPS_ENABLE = 0x1, + BTC_LPS_MAX +}; + +enum btc_notify_type_scan{ + BTC_SCAN_FINISH = 0x0, + BTC_SCAN_START = 0x1, + BTC_SCAN_MAX +}; + +enum btc_notify_type_associate{ + BTC_ASSOCIATE_FINISH = 0x0, + BTC_ASSOCIATE_START = 0x1, + BTC_ASSOCIATE_MAX +}; + +enum btc_notify_type_media_status{ + BTC_MEDIA_DISCONNECT = 0x0, + BTC_MEDIA_CONNECT = 0x1, + BTC_MEDIA_MAX +}; + +enum btc_notify_type_special_packet{ + BTC_PACKET_UNKNOWN = 0x0, + BTC_PACKET_DHCP = 0x1, + BTC_PACKET_ARP = 0x2, + BTC_PACKET_EAPOL = 0x3, + BTC_PACKET_MAX +}; + +enum btc_notify_type_stack_operation{ + BTC_STACK_OP_NONE = 0x0, + BTC_STACK_OP_INQ_PAGE_PAIR_START = 0x1, + BTC_STACK_OP_INQ_PAGE_PAIR_FINISH = 0x2, + BTC_STACK_OP_MAX +}; + + +typedef u8 (*bfp_btc_r1)(void *btc_context, u32 reg_addr); + +typedef u16 (*bfp_btc_r2)(void *btc_context, u32 reg_addr); + +typedef u32 (*bfp_btc_r4)(void *btc_context, u32 reg_addr); + +typedef void (*bfp_btc_w1)(void *btc_context, u32 reg_addr, u8 data); + +typedef void (*bfp_btc_w1_bit_mak)(void *btc_context, u32 reg_addr, + u8 bit_mask, u8 data1b); + +typedef void (*bfp_btc_w2)(void *btc_context, u32 reg_addr, u16 data); + +typedef void (*bfp_btc_w4)(void *btc_context, u32 reg_addr, u32 data); + +typedef void (*bfp_btc_wr_1byte_bit_mask)(void *btc_context, u32 reg_addr, + u8 bit_mask, u8 data); + +typedef void (*bfp_btc_set_bb_reg)(void *btc_context, u32 reg_addr, + u32 bit_mask, u32 data); + +typedef u32 (*bfp_btc_get_bb_reg)(void *btc_context, u32 reg_addr, + u32 bit_mask); + +typedef void (*bfp_btc_set_rf_reg)(void *btc_context, u8 rf_path, u32 reg_addr, + u32 bit_mask, u32 data); + +typedef u32 (*bfp_btc_get_rf_reg)(void *btc_context, u8 rf_path, + u32 reg_addr, u32 bit_mask); + +typedef void (*bfp_btc_fill_h2c)(void *btc_context, u8 element_id, + u32 cmd_len, u8 *cmd_buffer); + +typedef bool (*bfp_btc_get)(void *btcoexist, u8 get_type, void *out_buf); + +typedef bool (*bfp_btc_set)(void *btcoexist, u8 set_type, void *in_buf); + +typedef void (*bfp_btc_disp_dbg_msg)(void *btcoexist, u8 disp_type); + +struct btc_bt_info { + bool bt_disabled; + u8 rssi_adjust_for_agc_table_on; + u8 rssi_adjust_for_1ant_coex_type; + bool bt_busy; + u8 agg_buf_size; + bool limited_dig; + bool reject_agg_pkt; + bool b_bt_ctrl_buf_size; + bool increase_scan_dev_num; + u16 bt_hci_ver; + u16 bt_real_fw_ver; + u8 bt_fw_ver; + + /* the following is for 1Ant solution */ + bool bt_ctrl_lps; + bool bt_pwr_save_mode; + bool bt_lps_on; + bool force_to_roam; + u8 force_exec_pwr_cmd_cnt; + u8 lps_1ant; + u8 rpwm_1ant; + u32 ra_mask; +}; + +struct btc_stack_info { + bool profile_notified; + u16 hci_version; /* stack hci version */ + u8 num_of_link; + bool bt_link_exist; + bool sco_exist; + bool acl_exist; + bool a2dp_exist; + bool hid_exist; + u8 num_of_hid; + bool pan_exist; + bool unknown_acl_exist; + char min_bt_rssi; +}; + +struct btc_statistics { + u32 cnt_bind; + u32 cnt_init_hw_config; + u32 cnt_init_coex_dm; + u32 cnt_ips_notify; + u32 cnt_lps_notify; + u32 cnt_scan_notify; + u32 cnt_connect_notify; + u32 cnt_media_status_notify; + u32 cnt_special_packet_notify; + u32 cnt_bt_info_notify; + u32 cnt_periodical; + u32 cnt_stack_operation_notify; + u32 cnt_dbg_ctrl; +}; + +struct btc_bt_link_info { + bool bt_link_exist; + bool sco_exist; + bool sco_only; + bool a2dp_exist; + bool a2dp_only; + bool hid_exist; + bool hid_only; + bool pan_exist; + bool pan_only; +}; + +enum btc_antenna_pos { + BTC_ANTENNA_AT_MAIN_PORT = 0x1, + BTC_ANTENNA_AT_AUX_PORT = 0x2, +}; + +struct btc_coexist { + /* make sure only one adapter can bind the data context */ + bool binded; + /* default adapter */ + void *adapter; + struct btc_board_info board_info; + /* some bt info referenced by non-bt module */ + struct btc_bt_info bt_info; + struct btc_stack_info stack_info; + enum btc_chip_interface chip_interface; + struct btc_bt_link_info bt_link_info; + + bool initilized; + bool stop_coex_dm; + bool manual_control; + u8 *cli_buf; + struct btc_statistics statistics; + u8 pwr_mode_val[10]; + + /* function pointers + * io related */ + bfp_btc_r1 btc_read_1byte; + bfp_btc_w1 btc_write_1byte; + bfp_btc_w1_bit_mak btc_write_1byte_bitmask; + bfp_btc_r2 btc_read_2byte; + bfp_btc_w2 btc_write_2byte; + bfp_btc_r4 btc_read_4byte; + bfp_btc_w4 btc_write_4byte; + + bfp_btc_set_bb_reg btc_set_bb_reg; + bfp_btc_get_bb_reg btc_get_bb_reg; + + + bfp_btc_set_rf_reg btc_set_rf_reg; + bfp_btc_get_rf_reg btc_get_rf_reg; + + + bfp_btc_fill_h2c btc_fill_h2c; + + bfp_btc_disp_dbg_msg btc_disp_dbg_msg; + + bfp_btc_get btc_get; + bfp_btc_set btc_set; +}; + +bool halbtc_is_wifi_uplink(struct rtl_priv *adapter); + + +extern struct btc_coexist gl_bt_coexist; + +bool exhalbtc_initlize_variables(struct rtl_priv* adapter); +void exhalbtc_init_hw_config(struct btc_coexist *btcoexist); +void exhalbtc_init_coex_dm(struct btc_coexist *btcoexist); +void exhalbtc_ips_notify(struct btc_coexist *btcoexist, u8 type); +void exhalbtc_lps_notify(struct btc_coexist *btcoexist, u8 type); +void exhalbtc_scan_notify(struct btc_coexist *btcoexist, u8 type); +void exhalbtc_connect_notify(struct btc_coexist *btcoexist, u8 action); +void exhalbtc_mediastatus_notify(struct btc_coexist *btcoexist, + enum rt_media_status media_status); +void exhalbtc_special_packet_notify(struct btc_coexist *btcoexist, u8 pkt_type); +void exhalbtc_bt_info_notify(struct btc_coexist *btcoexist, u8 *tmp_buf, + u8 length); +void exhalbtc_stack_operation_notify(struct btc_coexist *btcoexist, u8 type); +void exhalbtc_halt_notify(struct btc_coexist *btcoexist); +void exhalbtc_pnp_notify(struct btc_coexist *btcoexist, u8 pnp_state); +void exhalbtc_periodical(struct btc_coexist *btcoexist); +void exhalbtc_dbg_control(struct btc_coexist *btcoexist, u8 code, u8 len, + u8 *data); +void exhalbtc_stack_update_profile_info(void); +void exhalbtc_set_hci_version(u16 hci_version); +void exhalbtc_set_bt_patch_version(u16 bt_hci_version, u16 bt_patch_version); +void exhalbtc_update_min_bt_rssi(char bt_rssi); +void exhalbtc_set_bt_exist(bool bt_exist); +void exhalbtc_set_chip_type(u8 chip_type); +void exhalbtc_set_ant_num(u8 type, u8 ant_num); +void exhalbtc_display_bt_coex_info(struct btc_coexist *btcoexist); +void exhalbtc_signal_compensation(struct btc_coexist *btcoexist, + u8 *rssi_wifi, u8 *rssi_bt); +void exhalbtc_lps_leave(struct btc_coexist *btcoexist); +void exhalbtc_low_wifi_traffic_notify(struct btc_coexist *btcoexist); +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/rtl_btc.c +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/rtl_btc.c @@ -0,0 +1,236 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ +#include +#include + +#include "rtl_btc.h" +#include "halbt_precomp.h" + +struct rtl_btc_ops rtl_btc_operation ={ + .btc_init_variables = rtl_btc_init_variables, + .btc_init_hal_vars = rtl_btc_init_hal_vars, + .btc_init_hw_config = rtl_btc_init_hw_config, + .btc_ips_notify = rtl_btc_ips_notify, + .btc_scan_notify = rtl_btc_scan_notify, + .btc_connect_notify = rtl_btc_connect_notify, + .btc_mediastatus_notify = rtl_btc_mediastatus_notify, + .btc_periodical = rtl_btc_periodical, + .btc_halt_notify = rtl_btc_halt_notify, + .btc_btinfo_notify = rtl_btc_btinfo_notify, + .btc_is_limited_dig = rtl_btc_is_limited_dig, + .btc_is_disable_edca_turbo = rtl_btc_is_disable_edca_turbo, + .btc_is_bt_disabled = rtl_btc_is_bt_disabled, +}; + + +void rtl_btc_init_variables(struct rtl_priv *rtlpriv) +{ + + exhalbtc_initlize_variables(rtlpriv); +} + +void rtl_btc_init_hal_vars(struct rtl_priv *rtlpriv) +{ + u8 ant_num; + u8 bt_exist; + u8 bt_type; + ant_num = rtl_get_hwpg_ant_num(rtlpriv); + RT_TRACE(COMP_INIT, DBG_DMESG, ("%s, antNum is %d\n", __func__, ant_num)); + + bt_exist = rtl_get_hwpg_bt_exist(rtlpriv); + RT_TRACE(COMP_INIT, DBG_DMESG, ("%s, bt_exist is %d\n", __func__, bt_exist)); + exhalbtc_set_bt_exist(bt_exist); + + bt_type = rtl_get_hwpg_bt_type(rtlpriv); + RT_TRACE(COMP_INIT, DBG_DMESG, ("%s, bt_type is %d\n", __func__, bt_type)); + exhalbtc_set_chip_type(bt_type); + + exhalbtc_set_ant_num(BT_COEX_ANT_TYPE_PG, ant_num); + +} + + +void rtl_btc_init_hw_config(struct rtl_priv *rtlpriv) +{ + exhalbtc_init_hw_config(&gl_bt_coexist); + exhalbtc_init_coex_dm(&gl_bt_coexist); +} + + +void rtl_btc_ips_notify(struct rtl_priv *rtlpriv, u8 type) +{ + exhalbtc_ips_notify(&gl_bt_coexist, type); +} + + +void rtl_btc_scan_notify(struct rtl_priv *rtlpriv, u8 scantype) +{ + exhalbtc_scan_notify(&gl_bt_coexist, scantype); +} + + +void rtl_btc_connect_notify(struct rtl_priv *rtlpriv, u8 action) +{ + exhalbtc_connect_notify(&gl_bt_coexist, action); +} + + +void rtl_btc_mediastatus_notify(struct rtl_priv *rtlpriv, enum rt_media_status mstatus) +{ + exhalbtc_mediastatus_notify(&gl_bt_coexist, mstatus); +} + +void rtl_btc_periodical(struct rtl_priv *rtlpriv) +{ +// rtl_bt_dm_monitor(); + exhalbtc_periodical(&gl_bt_coexist); +} + +void rtl_btc_halt_notify(void) +{ + exhalbtc_halt_notify(&gl_bt_coexist); +} + +void rtl_btc_btinfo_notify(struct rtl_priv *rtlpriv, u8 * tmp_buf, u8 length) +{ + exhalbtc_bt_info_notify(&gl_bt_coexist, tmp_buf, length); +} + +bool rtl_btc_is_limited_dig(struct rtl_priv *rtlpriv) +{ + return gl_bt_coexist.bt_info.limited_dig; +} + +bool rtl_btc_is_disable_edca_turbo(struct rtl_priv *rtlpriv) +{ + bool bt_change_edca = false; + u32 cur_edca_val; + u32 edca_bt_hs_uplink = 0x5ea42b, edca_bt_hs_downlink = 0x5ea42b; + u32 edca_hs; + u32 edca_addr = 0x504; + + cur_edca_val = rtl_read_dword(rtlpriv, edca_addr); + if (halbtc_is_wifi_uplink(rtlpriv)){ + if (cur_edca_val != edca_bt_hs_uplink){ + edca_hs = edca_bt_hs_uplink; + bt_change_edca = true; + } + }else{ + if (cur_edca_val != edca_bt_hs_downlink){ + edca_hs = edca_bt_hs_downlink; + bt_change_edca = true; + } + } + + if(bt_change_edca) + rtl_write_dword(rtlpriv, edca_addr, edca_hs); + + return true; +} + +bool rtl_btc_is_bt_disabled(struct rtl_priv *rtlpriv) +{ + if (gl_bt_coexist.bt_info.bt_disabled) + return true; + else + return false; +} + +struct rtl_btc_ops *rtl_btc_get_ops_pointer(void) +{ + return &rtl_btc_operation; +} +//EXPORT_SYMBOL(rtl_btc_get_ops_pointer); + +u8 rtl_get_hwpg_ant_num(struct rtl_priv *rtlpriv) +{ + u8 num; + + if (rtlpriv->btcoexist.btc_info.ant_num == ANT_X2) + num = 2; + else + num = 1; + + return num; +} + +#if 0 +enum rt_media_status mgnt_link_status_query(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + enum rt_media_status m_status = RT_MEDIA_DISCONNECT; + + u8 bibss = (mac->opmode == NL80211_IFTYPE_ADHOC) ? 1 : 0; + + if(bibss || rtlpriv->mac80211.link_state >= MAC80211_LINKED) { + m_status = RT_MEDIA_CONNECT; + } + + return m_status; +} +#endif + +u8 rtl_get_hwpg_bt_exist(struct rtl_priv *rtlpriv) +{ + return rtlpriv->btcoexist.btc_info.btcoexist; +} + +u8 rtl_get_hwpg_bt_type(struct rtl_priv *rtlpriv) +{ + return rtlpriv->btcoexist.btc_info.bt_type; +} + + +#if 0 + +MODULE_AUTHOR("Page He "); +MODULE_AUTHOR("Realtek WlanFAE "); +MODULE_AUTHOR("Larry Finger "); +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Realtek 802.11n PCI wireless core"); + +static int __init rtl_btcoexist_module_init(void) +{ + + //printk("%s, rtlpriv->btc_ops.btc_init_variables addr is %p\n", __func__, rtlpriv->btc_ops.btc_init_variables); + + return 0; +} + +static void __exit rtl_btcoexist_module_exit(void) +{ + return; +} + +module_init(rtl_btcoexist_module_init); +module_exit(rtl_btcoexist_module_exit); + +#endif + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/btcoexist/rtl_btc.h +++ linux-3.13.0/drivers/staging/rtl8821ae/btcoexist/rtl_btc.h @@ -0,0 +1,66 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL_BTC_H__ +#define __RTL_BTC_H__ + +#include "halbt_precomp.h" + + + +void rtl_btc_init_variables(struct rtl_priv *rtlpriv); +void rtl_btc_init_hal_vars(struct rtl_priv *rtlpriv); +void rtl_btc_init_hw_config(struct rtl_priv *rtlpriv); +void rtl_btc_ips_notify(struct rtl_priv *rtlpriv, u8 type); +void rtl_btc_scan_notify(struct rtl_priv *rtlpriv, u8 scantype); +void rtl_btc_connect_notify(struct rtl_priv *rtlpriv, u8 action); +void rtl_btc_mediastatus_notify(struct rtl_priv *rtlpriv, enum rt_media_status mstatus); +void rtl_btc_periodical(struct rtl_priv *rtlpriv); +void rtl_btc_halt_notify(void); +void rtl_btc_btinfo_notify(struct rtl_priv *rtlpriv, u8 * tmpBuf, u8 length); +bool rtl_btc_is_limited_dig(struct rtl_priv *rtlpriv); +bool rtl_btc_is_disable_edca_turbo(struct rtl_priv *rtlpriv); +bool rtl_btc_is_bt_disabled(struct rtl_priv *rtlpriv); + + +//extern struct rtl_btc_ops rtl_btc_operation; +extern struct rtl_btc_ops *rtl_btc_get_ops_pointer(void); + +u8 rtl_get_hwpg_ant_num(struct rtl_priv *rtlpriv); +u8 rtl_get_hwpg_bt_exist(struct rtl_priv *rtlpriv); +u8 rtl_get_hwpg_bt_type(struct rtl_priv *rtlpriv); +//enum rt_media_status mgnt_link_status_query(struct ieee80211_hw *hw); + + + + + + + + +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/cam.c +++ linux-3.13.0/drivers/staging/rtl8821ae/cam.c @@ -0,0 +1,354 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ +#include "wifi.h" +#include "cam.h" +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +#include +#endif + +void rtl_cam_reset_sec_info(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtlpriv->sec.use_defaultkey = false; + rtlpriv->sec.pairwise_enc_algorithm = NO_ENCRYPTION; + rtlpriv->sec.group_enc_algorithm = NO_ENCRYPTION; + memset(rtlpriv->sec.key_buf, 0, KEY_BUF_SIZE * MAX_KEY_LEN); + memset(rtlpriv->sec.key_len, 0, KEY_BUF_SIZE); + rtlpriv->sec.pairwise_key = NULL; +} + +static void rtl_cam_program_entry(struct ieee80211_hw *hw, u32 entry_no, + u8 *mac_addr, u8 *key_cont_128, u16 us_config) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + u32 target_command; + u32 target_content = 0; + u8 entry_i; + + RT_PRINT_DATA(rtlpriv, COMP_SEC, DBG_DMESG, "Key content :", + key_cont_128, 16); + + for (entry_i = 0; entry_i < CAM_CONTENT_COUNT; entry_i++) { + target_command = entry_i + CAM_CONTENT_COUNT * entry_no; + target_command = target_command | BIT(31) | BIT(16); + + if (entry_i == 0) { + target_content = (u32) (*(mac_addr + 0)) << 16 | + (u32) (*(mac_addr + 1)) << 24 | (u32) us_config; + + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[WCAMI], + target_content); + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM], + target_command); + + RT_TRACE(COMP_SEC, DBG_LOUD, + ("WRITE %x: %x \n", + rtlpriv->cfg->maps[WCAMI], target_content)); + RT_TRACE(COMP_SEC, DBG_LOUD, + ("The Key ID is %d\n", entry_no)); + RT_TRACE(COMP_SEC, DBG_LOUD, + ("WRITE %x: %x \n", + rtlpriv->cfg->maps[RWCAM], target_command)); + + } else if (entry_i == 1) { + + target_content = (u32) (*(mac_addr + 5)) << 24 | + (u32) (*(mac_addr + 4)) << 16 | + (u32) (*(mac_addr + 3)) << 8 | + (u32) (*(mac_addr + 2)); + + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[WCAMI], + target_content); + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM], + target_command); + + RT_TRACE(COMP_SEC, DBG_LOUD, + ("WRITE A4: %x \n", target_content)); + RT_TRACE(COMP_SEC, DBG_LOUD, + ("WRITE A0: %x \n", target_command)); + + } else { + + target_content = + (u32) (*(key_cont_128 + (entry_i * 4 - 8) + 3)) << + 24 | (u32) (*(key_cont_128 + (entry_i * 4 - 8) + 2)) + << 16 | + (u32) (*(key_cont_128 + (entry_i * 4 - 8) + 1)) << 8 + | (u32) (*(key_cont_128 + (entry_i * 4 - 8) + 0)); + + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[WCAMI], + target_content); + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM], + target_command); + udelay(100); + + RT_TRACE(COMP_SEC, DBG_LOUD, + ("WRITE A4: %x \n", target_content)); + RT_TRACE(COMP_SEC, DBG_LOUD, + ("WRITE A0: %x \n", target_command)); + } + } + + RT_TRACE(COMP_SEC, DBG_LOUD, + ("after set key, usconfig:%x\n", us_config)); +} + +u8 rtl_cam_add_one_entry(struct ieee80211_hw *hw, u8 *mac_addr, + u32 ul_key_id, u32 ul_entry_idx, u32 ul_enc_alg, + u32 ul_default_key, u8 *key_content) +{ + u32 us_config; + struct rtl_priv *rtlpriv = rtl_priv(hw); + + RT_TRACE(COMP_SEC, DBG_DMESG, + ("EntryNo:%x, ulKeyId=%x, ulEncAlg=%x, " + "ulUseDK=%x MacAddr %pM\n", + ul_entry_idx, ul_key_id, ul_enc_alg, + ul_default_key, mac_addr)); + + if (ul_key_id == TOTAL_CAM_ENTRY) { + RT_TRACE(COMP_ERR, DBG_WARNING, + ("ulKeyId exceed!\n")); + return 0; + } + + if (ul_default_key == 1) { + us_config = CFG_VALID | ((u16) (ul_enc_alg) << 2); + } else { + us_config = CFG_VALID | ((ul_enc_alg) << 2) | ul_key_id; + } + + rtl_cam_program_entry(hw, ul_entry_idx, mac_addr, + (u8 *) key_content, us_config); + + RT_TRACE(COMP_SEC, DBG_DMESG, ("end \n")); + + return 1; + +} +//EXPORT_SYMBOL(rtl_cam_add_one_entry); + +int rtl_cam_delete_one_entry(struct ieee80211_hw *hw, + u8 *mac_addr, u32 ul_key_id) +{ + u32 ul_command; + struct rtl_priv *rtlpriv = rtl_priv(hw); + + RT_TRACE(COMP_SEC, DBG_DMESG, ("key_idx:%d\n", ul_key_id)); + + ul_command = ul_key_id * CAM_CONTENT_COUNT; + ul_command = ul_command | BIT(31) | BIT(16); + + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[WCAMI], 0); + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM], ul_command); + + RT_TRACE(COMP_SEC, DBG_DMESG, + ("rtl_cam_delete_one_entry(): WRITE A4: %x \n", 0)); + RT_TRACE(COMP_SEC, DBG_DMESG, + ("rtl_cam_delete_one_entry(): WRITE A0: %x \n", ul_command)); + + return 0; + +} +//EXPORT_SYMBOL(rtl_cam_delete_one_entry); + +void rtl_cam_reset_all_entry(struct ieee80211_hw *hw) +{ + u32 ul_command; + struct rtl_priv *rtlpriv = rtl_priv(hw); + + ul_command = BIT(31) | BIT(30); + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM], ul_command); +} +//EXPORT_SYMBOL(rtl_cam_reset_all_entry); + +void rtl_cam_mark_invalid(struct ieee80211_hw *hw, u8 uc_index) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + u32 ul_command; + u32 ul_content; + u32 ul_enc_algo = rtlpriv->cfg->maps[SEC_CAM_AES]; + + switch (rtlpriv->sec.pairwise_enc_algorithm) { + case WEP40_ENCRYPTION: + ul_enc_algo = rtlpriv->cfg->maps[SEC_CAM_WEP40]; + break; + case WEP104_ENCRYPTION: + ul_enc_algo = rtlpriv->cfg->maps[SEC_CAM_WEP104]; + break; + case TKIP_ENCRYPTION: + ul_enc_algo = rtlpriv->cfg->maps[SEC_CAM_TKIP]; + break; + case AESCCMP_ENCRYPTION: + ul_enc_algo = rtlpriv->cfg->maps[SEC_CAM_AES]; + break; + default: + ul_enc_algo = rtlpriv->cfg->maps[SEC_CAM_AES]; + } + + ul_content = (uc_index & 3) | ((u16) (ul_enc_algo) << 2); + + ul_content |= BIT(15); + ul_command = CAM_CONTENT_COUNT * uc_index; + ul_command = ul_command | BIT(31) | BIT(16); + + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[WCAMI], ul_content); + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM], ul_command); + + RT_TRACE(COMP_SEC, DBG_DMESG, + ("rtl_cam_mark_invalid(): WRITE A4: %x \n", ul_content)); + RT_TRACE(COMP_SEC, DBG_DMESG, + ("rtl_cam_mark_invalid(): WRITE A0: %x \n", ul_command)); +} +//EXPORT_SYMBOL(rtl_cam_mark_invalid); + +void rtl_cam_empty_entry(struct ieee80211_hw *hw, u8 uc_index) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + u32 ul_command; + u32 ul_content; + u32 ul_encalgo = rtlpriv->cfg->maps[SEC_CAM_AES]; + u8 entry_i; + + switch (rtlpriv->sec.pairwise_enc_algorithm) { + case WEP40_ENCRYPTION: + ul_encalgo = rtlpriv->cfg->maps[SEC_CAM_WEP40]; + break; + case WEP104_ENCRYPTION: + ul_encalgo = rtlpriv->cfg->maps[SEC_CAM_WEP104]; + break; + case TKIP_ENCRYPTION: + ul_encalgo = rtlpriv->cfg->maps[SEC_CAM_TKIP]; + break; + case AESCCMP_ENCRYPTION: + ul_encalgo = rtlpriv->cfg->maps[SEC_CAM_AES]; + break; + default: + ul_encalgo = rtlpriv->cfg->maps[SEC_CAM_AES]; + } + + for (entry_i = 0; entry_i < CAM_CONTENT_COUNT; entry_i++) { + + if (entry_i == 0) { + ul_content = + (uc_index & 0x03) | ((u16) (ul_encalgo) << 2); + ul_content |= BIT(15); + + } else { + ul_content = 0; + } + + ul_command = CAM_CONTENT_COUNT * uc_index + entry_i; + ul_command = ul_command | BIT(31) | BIT(16); + + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[WCAMI], ul_content); + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM], ul_command); + + RT_TRACE(COMP_SEC, DBG_LOUD, + ("rtl_cam_empty_entry(): WRITE A4: %x \n", + ul_content)); + RT_TRACE(COMP_SEC, DBG_LOUD, + ("rtl_cam_empty_entry(): WRITE A0: %x \n", + ul_command)); + } + +} +//EXPORT_SYMBOL(rtl_cam_empty_entry); + +u8 rtl_cam_get_free_entry(struct ieee80211_hw *hw, u8 *sta_addr) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 bitmap = (rtlpriv->sec.hwsec_cam_bitmap) >> 4; + u8 entry_idx = 0; + u8 i, *addr; + + if (NULL == sta_addr) { + RT_TRACE(COMP_SEC, DBG_EMERG, + ("sta_addr is NULL.\n")); + return TOTAL_CAM_ENTRY; + } + /* Does STA already exist? */ + for (i = 4; i < TOTAL_CAM_ENTRY; i++) { + addr = rtlpriv->sec.hwsec_cam_sta_addr[i]; + if(memcmp(addr, sta_addr, ETH_ALEN) == 0) + return i; + } + /* Get a free CAM entry. */ + for (entry_idx = 4; entry_idx < TOTAL_CAM_ENTRY; entry_idx++) { + if ((bitmap & BIT(0)) == 0) { + RT_TRACE(COMP_SEC, DBG_EMERG, + ("-----hwsec_cam_bitmap: 0x%x entry_idx=%d\n", + rtlpriv->sec.hwsec_cam_bitmap, entry_idx)); + rtlpriv->sec.hwsec_cam_bitmap |= BIT(0) << entry_idx; + memcpy(rtlpriv->sec.hwsec_cam_sta_addr[entry_idx], + sta_addr, ETH_ALEN); + return entry_idx; + } + bitmap = bitmap >>1; + } + return TOTAL_CAM_ENTRY; +} +//EXPORT_SYMBOL(rtl_cam_get_free_entry); + +void rtl_cam_del_entry(struct ieee80211_hw *hw, u8 *sta_addr) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 bitmap; + u8 i, *addr; + + if (NULL == sta_addr) { + RT_TRACE(COMP_SEC, DBG_EMERG, + ("sta_addr is NULL.\n")); + } + + if ((sta_addr[0]|sta_addr[1]|sta_addr[2]|sta_addr[3]|\ + sta_addr[4]|sta_addr[5]) == 0) { + RT_TRACE(COMP_SEC, DBG_EMERG, + ("sta_addr is 00:00:00:00:00:00.\n")); + return; + } + /* Does STA already exist? */ + for (i = 4; i < TOTAL_CAM_ENTRY; i++) { + addr = rtlpriv->sec.hwsec_cam_sta_addr[i]; + bitmap = (rtlpriv->sec.hwsec_cam_bitmap) >> i; + if (((bitmap & BIT(0)) == BIT(0)) && + (memcmp(addr, sta_addr, ETH_ALEN) == 0)) { + /* Remove from HW Security CAM */ + memset(rtlpriv->sec.hwsec_cam_sta_addr[i], 0, ETH_ALEN); + rtlpriv->sec.hwsec_cam_bitmap &= ~(BIT(0) << i); + printk("&&&&&&&&&del entry %d\n",i); + } + } + return; +} +//EXPORT_SYMBOL(rtl_cam_del_entry); --- linux-3.13.0.orig/drivers/staging/rtl8821ae/cam.h +++ linux-3.13.0/drivers/staging/rtl8821ae/cam.h @@ -0,0 +1,56 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL_CAM_H_ +#define __RTL_CAM_H_ + +#define CAM_CONTENT_COUNT 8 + +#define CFG_DEFAULT_KEY BIT(5) +#define CFG_VALID BIT(15) + +#define PAIRWISE_KEYIDX 0 +#define CAM_PAIRWISE_KEY_POSITION 4 + +#define CAM_CONFIG_USEDK 1 +#define CAM_CONFIG_NO_USEDK 0 + +extern void rtl_cam_reset_all_entry(struct ieee80211_hw *hw); +extern u8 rtl_cam_add_one_entry(struct ieee80211_hw *hw, u8 *mac_addr, + u32 ul_key_id, u32 ul_entry_idx, u32 ul_enc_alg, + u32 ul_default_key, u8 *key_content); +int rtl_cam_delete_one_entry(struct ieee80211_hw *hw, u8 *mac_addr, + u32 ul_key_id); +void rtl_cam_mark_invalid(struct ieee80211_hw *hw, u8 uc_index); +void rtl_cam_empty_entry(struct ieee80211_hw *hw, u8 uc_index); +void rtl_cam_reset_sec_info(struct ieee80211_hw *hw); +u8 rtl_cam_get_free_entry(struct ieee80211_hw *hw, u8 *sta_addr); +void rtl_cam_del_entry(struct ieee80211_hw *hw, u8 *sta_addr); + +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/compat.h +++ linux-3.13.0/drivers/staging/rtl8821ae/compat.h @@ -0,0 +1,125 @@ +#ifndef __RTL_COMPAT_H__ +#define __RTL_COMPAT_H__ + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)) +/* + * Use this if you want to use the same suspend and resume callbacks for suspend + * to RAM and hibernation. + */ +#define SIMPLE_DEV_PM_OPS(name, suspend_fn, resume_fn) \ +struct dev_pm_ops name = { \ + .suspend = suspend_fn, \ + .resume = resume_fn, \ + .freeze = suspend_fn, \ + .thaw = resume_fn, \ + .poweroff = suspend_fn, \ + .restore = resume_fn, \ +} + +#define compat_pci_suspend(fn) \ + int fn##_compat(struct pci_dev *pdev, pm_message_t state) \ + { \ + int r; \ + \ + r = fn(&pdev->dev); \ + if (r) \ + return r; \ + \ + pci_save_state(pdev); \ + pci_disable_device(pdev); \ + pci_set_power_state(pdev, PCI_D3hot); \ + \ + return 0; \ + } + +#define compat_pci_resume(fn) \ + int fn##_compat(struct pci_dev *pdev) \ + { \ + int r; \ + \ + pci_set_power_state(pdev, PCI_D0); \ + r = pci_enable_device(pdev); \ + if (r) \ + return r; \ + pci_restore_state(pdev); \ + \ + return fn(&pdev->dev); \ + } +#endif + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39)) +#define RX_FLAG_MACTIME_MPDU RX_FLAG_TSFT +#else +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) +#define RX_FLAG_MACTIME_MPDU RX_FLAG_MACTIME_START +#else +#endif +//#define NETDEV_TX_OK +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) +#define IEEE80211_KEY_FLAG_SW_MGMT IEEE80211_KEY_FLAG_SW_MGMT_TX +#endif + +struct ieee80211_mgmt_compat { + __le16 frame_control; + __le16 duration; + u8 da[6]; + u8 sa[6]; + u8 bssid[6]; + __le16 seq_ctrl; + union { + struct { + u8 category; + union { + struct { + u8 action_code; + u8 dialog_token; + u8 status_code; + u8 variable[0]; + } __attribute__ ((packed)) wme_action; + struct{ + u8 action_code; + u8 dialog_token; + __le16 capab; + __le16 timeout; + __le16 start_seq_num; + } __attribute__((packed)) addba_req; + struct{ + u8 action_code; + u8 dialog_token; + __le16 status; + __le16 capab; + __le16 timeout; + } __attribute__((packed)) addba_resp; + struct{ + u8 action_code; + __le16 params; + __le16 reason_code; + } __attribute__((packed)) delba; + struct{ + u8 action_code; + /* capab_info for open and confirm, + * reason for close + */ + __le16 aux; + /* Followed in plink_confirm by status + * code, AID and supported rates, + * and directly by supported rates in + * plink_open and plink_close + */ + u8 variable[0]; + } __attribute__((packed)) plink_action; + struct{ + u8 action_code; + u8 variable[0]; + } __attribute__((packed)) mesh_action; + struct { + u8 action; + u8 smps_control; + } __attribute__ ((packed)) ht_smps; + } u; + } __attribute__ ((packed)) action; + } u; +} __attribute__ ((packed)); +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/core.c +++ linux-3.13.0/drivers/staging/rtl8821ae/core.c @@ -0,0 +1,1464 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "wifi.h" +#include "core.h" +#include "cam.h" +#include "base.h" +#include "ps.h" + +#include "btcoexist/rtl_btc.h" + +/*mutex for start & stop is must here. */ +static int rtl_op_start(struct ieee80211_hw *hw) +{ + int err = 0; + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + + if (!is_hal_stop(rtlhal)) + return 0; + if (!test_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status)) + return 0; + mutex_lock(&rtlpriv->locks.conf_mutex); + err = rtlpriv->intf_ops->adapter_start(hw); + if (err) + goto out; + rtl_watch_dog_timer_callback((unsigned long)hw); + +out: + mutex_unlock(&rtlpriv->locks.conf_mutex); + return err; +} + +static void rtl_op_stop(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + + if (is_hal_stop(rtlhal)) + return; + + /* here is must, because adhoc do stop and start, + * but stop with RFOFF may cause something wrong, + * like adhoc TP */ + if (unlikely(ppsc->rfpwr_state == ERFOFF)) + rtl_ips_nic_on(hw); + + mutex_lock(&rtlpriv->locks.conf_mutex); + + mac->link_state = MAC80211_NOLINK; + memset(mac->bssid, 0, 6); + mac->vendor = PEER_UNKNOWN; + + /*reset sec info */ + rtl_cam_reset_sec_info(hw); + + rtl_deinit_deferred_work(hw); + rtlpriv->intf_ops->adapter_stop(hw); + + mutex_unlock(&rtlpriv->locks.conf_mutex); +} + +/**/ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39)) +static int rtl_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_tcb_desc tcb_desc; + memset(&tcb_desc, 0, sizeof(struct rtl_tcb_desc)); + + if (unlikely(is_hal_stop(rtlhal) || ppsc->rfpwr_state != ERFON)) + goto err_free; + + if (!test_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status)) + goto err_free; + + if (!rtlpriv->intf_ops->waitq_insert(hw, skb)) + rtlpriv->intf_ops->adapter_tx(hw, skb, &tcb_desc); + + return NETDEV_TX_OK; + +err_free: + dev_kfree_skb_any(skb); + return NETDEV_TX_OK; +} +#else +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) +static void rtl_op_tx(struct ieee80211_hw *hw, struct sk_buff *skb) +#else +/**/ +static void rtl_op_tx(struct ieee80211_hw *hw, + struct ieee80211_tx_control *control, + struct sk_buff *skb) +/**/ +#endif +/**/ +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_tcb_desc tcb_desc; + memset(&tcb_desc, 0, sizeof(struct rtl_tcb_desc)); + + if (unlikely(is_hal_stop(rtlhal) || ppsc->rfpwr_state != ERFON)) + goto err_free; + + if (!test_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status)) + goto err_free; + +/**/ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) + if (!rtlpriv->intf_ops->waitq_insert(hw, skb)) + rtlpriv->intf_ops->adapter_tx(hw, skb, &tcb_desc); +#else +/**/ + if (!rtlpriv->intf_ops->waitq_insert(hw, control->sta, skb)) + rtlpriv->intf_ops->adapter_tx(hw, control->sta, skb, &tcb_desc); +/**/ +#endif +/**/ + return; + +err_free: + dev_kfree_skb_any(skb); + return; +} +/**/ +#endif +/**/ + +static int rtl_op_add_interface(struct ieee80211_hw *hw, + struct ieee80211_vif *vif) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + int err = 0; + + if (mac->vif) { + RT_TRACE(COMP_ERR, DBG_WARNING, + ("vif has been set!! mac->vif = 0x%p\n", mac->vif)); + return -EOPNOTSUPP; + } + +/*This flag is not defined before kernel 3.4*/ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + vif->driver_flags |= IEEE80211_VIF_BEACON_FILTER; +#endif + + rtl_ips_nic_on(hw); + + mutex_lock(&rtlpriv->locks.conf_mutex); +/**/ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + switch (ieee80211_vif_type_p2p(vif)) { + case NL80211_IFTYPE_P2P_CLIENT: + mac->p2p = P2P_ROLE_CLIENT; + /*fall through*/ +#else +/**/ + switch (vif->type) { +/**/ +#endif +/**/ + case NL80211_IFTYPE_STATION: + if (mac->beacon_enabled == 1) { + RT_TRACE(COMP_MAC80211, DBG_LOUD, + ("NL80211_IFTYPE_STATION \n")); + mac->beacon_enabled = 0; + rtlpriv->cfg->ops->update_interrupt_mask(hw, 0, + rtlpriv->cfg->maps[RTL_IBSS_INT_MASKS]); + } + break; + case NL80211_IFTYPE_ADHOC: + RT_TRACE(COMP_MAC80211, DBG_LOUD, + ("NL80211_IFTYPE_ADHOC \n")); + + mac->link_state = MAC80211_LINKED; + rtlpriv->cfg->ops->set_bcn_reg(hw); + if (rtlpriv->rtlhal.current_bandtype == BAND_ON_2_4G) + mac->basic_rates = 0xfff; + else + mac->basic_rates = 0xff0; + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_BASIC_RATE, + (u8 *) (&mac->basic_rates)); + + break; +/**/ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + case NL80211_IFTYPE_P2P_GO: + mac->p2p = P2P_ROLE_GO; + /*fall through*/ +#endif +/**/ + case NL80211_IFTYPE_AP: + RT_TRACE(COMP_MAC80211, DBG_LOUD, + ("NL80211_IFTYPE_AP \n")); + + mac->link_state = MAC80211_LINKED; + rtlpriv->cfg->ops->set_bcn_reg(hw); + if (rtlpriv->rtlhal.current_bandtype == BAND_ON_2_4G) + mac->basic_rates = 0xfff; + else + mac->basic_rates = 0xff0; + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_BASIC_RATE, + (u8 *) (&mac->basic_rates)); + break; + case NL80211_IFTYPE_MESH_POINT: + RT_TRACE(COMP_MAC80211, DBG_LOUD, + ("NL80211_IFTYPE_MESH_POINT \n")); + + mac->link_state = MAC80211_LINKED; + rtlpriv->cfg->ops->set_bcn_reg(hw); + if (rtlpriv->rtlhal.current_bandtype == BAND_ON_2_4G) + mac->basic_rates = 0xfff; + else + mac->basic_rates = 0xff0; + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_BASIC_RATE, + (u8 *) (&mac->basic_rates)); + break; + default: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("operation mode %d is not support!\n", vif->type)); + err = -EOPNOTSUPP; + goto out; + } + +#ifdef VIF_TODO + if (!rtl_set_vif_info(hw, vif)) + goto out; +#endif + + if (mac->p2p) { + RT_TRACE(COMP_MAC80211, DBG_LOUD, + ("p2p role %x \n",vif->type)); + mac->basic_rates = 0xff0;/*disable cck rate for p2p*/ + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_BASIC_RATE, + (u8 *) (&mac->basic_rates)); + } + mac->vif = vif; + mac->opmode = vif->type; + rtlpriv->cfg->ops->set_network_type(hw, vif->type); + memcpy(mac->mac_addr, vif->addr, ETH_ALEN); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ETHER_ADDR, mac->mac_addr); + +out: + mutex_unlock(&rtlpriv->locks.conf_mutex); + return err; +} + +static void rtl_op_remove_interface(struct ieee80211_hw *hw, + struct ieee80211_vif *vif) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + + mutex_lock(&rtlpriv->locks.conf_mutex); + + /* Free beacon resources */ + if ((vif->type == NL80211_IFTYPE_AP) || + (vif->type == NL80211_IFTYPE_ADHOC) || + (vif->type == NL80211_IFTYPE_MESH_POINT)) { + if (mac->beacon_enabled == 1) { + mac->beacon_enabled = 0; + rtlpriv->cfg->ops->update_interrupt_mask(hw, 0, + rtlpriv->cfg->maps[RTL_IBSS_INT_MASKS]); + } + } + + /* + *Note: We assume NL80211_IFTYPE_UNSPECIFIED as + *NO LINK for our hardware. + */ + mac->p2p = 0; + mac->vif = NULL; + mac->link_state = MAC80211_NOLINK; + memset(mac->bssid, 0, 6); + mac->vendor = PEER_UNKNOWN; + mac->opmode = NL80211_IFTYPE_UNSPECIFIED; + rtlpriv->cfg->ops->set_network_type(hw, mac->opmode); + + mutex_unlock(&rtlpriv->locks.conf_mutex); +} +/**/ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +/**/ +static int rtl_op_change_interface(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, + enum nl80211_iftype new_type, bool p2p) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + int ret; + rtl_op_remove_interface(hw, vif); + + vif->type = new_type; + vif->p2p = p2p; + ret = rtl_op_add_interface(hw, vif); + RT_TRACE(COMP_MAC80211, DBG_LOUD, + (" p2p %x\n",p2p)); + return ret; +} +/**/ +#endif +/**/ +static int rtl_op_config(struct ieee80211_hw *hw, u32 changed) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct ieee80211_conf *conf = &hw->conf; + + if (mac->skip_scan) + return 1; + + + mutex_lock(&rtlpriv->locks.conf_mutex); + if (changed & IEEE80211_CONF_CHANGE_LISTEN_INTERVAL) { /* BIT(2) */ + RT_TRACE(COMP_MAC80211, DBG_LOUD, + ("IEEE80211_CONF_CHANGE_LISTEN_INTERVAL\n")); + } + + /*For IPS */ + if (changed & IEEE80211_CONF_CHANGE_IDLE) { + if (hw->conf.flags & IEEE80211_CONF_IDLE) + rtl_ips_nic_off(hw); + else + rtl_ips_nic_on(hw); + } else { + /* + *although rfoff may not cause by ips, but we will + *check the reason in set_rf_power_state function + */ + if (unlikely(ppsc->rfpwr_state == ERFOFF)) + rtl_ips_nic_on(hw); + } + + /*For LPS */ + if (changed & IEEE80211_CONF_CHANGE_PS) { + cancel_delayed_work(&rtlpriv->works.ps_work); + cancel_delayed_work(&rtlpriv->works.ps_rfon_wq); + if (conf->flags & IEEE80211_CONF_PS) { + rtlpriv->psc.sw_ps_enabled = true; + /* sleep here is must, or we may recv the beacon and + * cause mac80211 into wrong ps state, this will cause + * power save nullfunc send fail, and further cause + * pkt loss, So sleep must quickly but not immediatly + * because that will cause nullfunc send by mac80211 + * fail, and cause pkt loss, we have tested that 5mA + * is worked very well */ + if (!rtlpriv->psc.multi_buffered) + queue_delayed_work(rtlpriv->works.rtl_wq, + &rtlpriv->works.ps_work, + MSECS(5)); + } else { + rtl_swlps_rf_awake(hw); + rtlpriv->psc.sw_ps_enabled = false; + } + } + + if (changed & IEEE80211_CONF_CHANGE_RETRY_LIMITS) { + RT_TRACE(COMP_MAC80211, DBG_LOUD, + ("IEEE80211_CONF_CHANGE_RETRY_LIMITS %x\n", + hw->conf.long_frame_max_tx_count)); + mac->retry_long = hw->conf.long_frame_max_tx_count; + mac->retry_short = hw->conf.long_frame_max_tx_count; + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RETRY_LIMIT, + (u8 *) (&hw->conf.long_frame_max_tx_count)); + } + + if (changed & IEEE80211_CONF_CHANGE_CHANNEL) { +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) + struct ieee80211_channel *channel = hw->conf.chandef.chan; + enum nl80211_channel_type channel_type = + cfg80211_get_chandef_type(&(hw->conf.chandef)); +#else + struct ieee80211_channel *channel = hw->conf.channel; + enum nl80211_channel_type channel_type = hw->conf.channel_type; +#endif + u8 wide_chan = (u8) channel->hw_value; + + if (mac->act_scanning) + mac->n_channels++; + + if (rtlpriv->dm.supp_phymode_switch && + mac->link_state < MAC80211_LINKED && + !mac->act_scanning) { + if (rtlpriv->cfg->ops->check_switch_to_dmdp) + rtlpriv->cfg->ops->check_switch_to_dmdp(hw); + } + + /* + *because we should back channel to + *current_network.chan in in scanning, + *So if set_chan == current_network.chan + *we should set it. + *because mac80211 tell us wrong bw40 + *info for cisco1253 bw20, so we modify + *it here based on UPPER & LOWER + */ + switch (channel_type) { + case NL80211_CHAN_HT20: + case NL80211_CHAN_NO_HT: + /* SC */ + mac->cur_40_prime_sc = + PRIME_CHNL_OFFSET_DONT_CARE; + rtlphy->current_chan_bw = HT_CHANNEL_WIDTH_20; + mac->bw_40 = false; + break; + case NL80211_CHAN_HT40MINUS: + /* SC */ + mac->cur_40_prime_sc = PRIME_CHNL_OFFSET_UPPER; + rtlphy->current_chan_bw = + HT_CHANNEL_WIDTH_20_40; + mac->bw_40 = true; + + /*wide channel */ + wide_chan -= 2; + + break; + case NL80211_CHAN_HT40PLUS: + /* SC */ + mac->cur_40_prime_sc = PRIME_CHNL_OFFSET_LOWER; + rtlphy->current_chan_bw = + HT_CHANNEL_WIDTH_20_40; + mac->bw_40 = true; + + /*wide channel */ + wide_chan += 2; + + break; + default: + mac->bw_40 = false; + RT_TRACE(COMP_ERR, DBG_EMERG, + ("switch case not processed \n")); + break; + } + + if (wide_chan <= 0) + wide_chan = 1; + + /* in scanning, when before we offchannel we may send a ps=1 + * null to AP, and then we may send a ps = 0 null to AP quickly, + * but first null have cause AP's put lots of packet to hw tx + * buffer, these packet must be tx before off channel so we must + * delay more time to let AP flush these packets before + * offchannel, or dis-association or delete BA will happen by AP + */ + if (rtlpriv->mac80211.offchan_deley) { + rtlpriv->mac80211.offchan_deley = false; + mdelay(50); + } + + rtlphy->current_channel = wide_chan; + + rtlpriv->cfg->ops->switch_channel(hw); + rtlpriv->cfg->ops->set_channel_access(hw); + rtlpriv->cfg->ops->set_bw_mode(hw, + channel_type); + } + + mutex_unlock(&rtlpriv->locks.conf_mutex); + + return 0; +} + +static void rtl_op_configure_filter(struct ieee80211_hw *hw, + unsigned int changed_flags, + unsigned int *new_flags, u64 multicast) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + + *new_flags &= RTL_SUPPORTED_FILTERS; + if (0 == changed_flags) + return; + + /*TODO: we disable broadcase now, so enable here */ + if (changed_flags & FIF_ALLMULTI) { + if (*new_flags & FIF_ALLMULTI) { + mac->rx_conf |= rtlpriv->cfg->maps[MAC_RCR_AM] | + rtlpriv->cfg->maps[MAC_RCR_AB]; + RT_TRACE(COMP_MAC80211, DBG_LOUD, + ("Enable receive multicast frame.\n")); + } else { + mac->rx_conf &= ~(rtlpriv->cfg->maps[MAC_RCR_AM] | + rtlpriv->cfg->maps[MAC_RCR_AB]); + RT_TRACE(COMP_MAC80211, DBG_LOUD, + ("Disable receive multicast frame.\n")); + } + } + + if (changed_flags & FIF_FCSFAIL) { + if (*new_flags & FIF_FCSFAIL) { + mac->rx_conf |= rtlpriv->cfg->maps[MAC_RCR_ACRC32]; + RT_TRACE(COMP_MAC80211, DBG_LOUD, + ("Enable receive FCS error frame.\n")); + } else { + mac->rx_conf &= ~rtlpriv->cfg->maps[MAC_RCR_ACRC32]; + RT_TRACE(COMP_MAC80211, DBG_LOUD, + ("Disable receive FCS error frame.\n")); + } + } + + /* if ssid not set to hw don't check bssid + * here just used for linked scanning, & linked + * and nolink check bssid is set in set network_type */ + if ((changed_flags & FIF_BCN_PRBRESP_PROMISC) && + (mac->link_state >= MAC80211_LINKED)) { + if (mac->opmode != NL80211_IFTYPE_AP && + mac->opmode != NL80211_IFTYPE_MESH_POINT) { + if (*new_flags & FIF_BCN_PRBRESP_PROMISC) { + rtlpriv->cfg->ops->set_chk_bssid(hw, false); + } else { + rtlpriv->cfg->ops->set_chk_bssid(hw, true); + } + } + } + + if (changed_flags & FIF_CONTROL) { + if (*new_flags & FIF_CONTROL) { + mac->rx_conf |= rtlpriv->cfg->maps[MAC_RCR_ACF]; + + RT_TRACE(COMP_MAC80211, DBG_LOUD, + ("Enable receive control frame.\n")); + } else { + mac->rx_conf &= ~rtlpriv->cfg->maps[MAC_RCR_ACF]; + RT_TRACE(COMP_MAC80211, DBG_LOUD, + ("Disable receive control frame.\n")); + } + } + + if (changed_flags & FIF_OTHER_BSS) { + if (*new_flags & FIF_OTHER_BSS) { + mac->rx_conf |= rtlpriv->cfg->maps[MAC_RCR_AAP]; + RT_TRACE(COMP_MAC80211, DBG_LOUD, + ("Enable receive other BSS's frame.\n")); + } else { + mac->rx_conf &= ~rtlpriv->cfg->maps[MAC_RCR_AAP]; + RT_TRACE(COMP_MAC80211, DBG_LOUD, + ("Disable receive other BSS's frame.\n")); + } + } +} +static int rtl_op_sta_add(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, + struct ieee80211_sta *sta) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal= rtl_hal(rtl_priv(hw)); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_sta_info *sta_entry; + + if (sta) { + sta_entry = (struct rtl_sta_info *) sta->drv_priv; + spin_lock_bh(&rtlpriv->locks.entry_list_lock); + list_add_tail(&sta_entry->list, &rtlpriv->entry_list); + spin_unlock_bh(&rtlpriv->locks.entry_list_lock); + if (rtlhal->current_bandtype == BAND_ON_2_4G) { + sta_entry->wireless_mode = WIRELESS_MODE_G; + if (sta->supp_rates[0] <= 0xf) + sta_entry->wireless_mode = WIRELESS_MODE_B; + if (sta->ht_cap.ht_supported == true) + sta_entry->wireless_mode = WIRELESS_MODE_N_24G; + + if (vif->type == NL80211_IFTYPE_ADHOC) + sta_entry->wireless_mode = WIRELESS_MODE_G; + } else if (rtlhal->current_bandtype == BAND_ON_5G) { + sta_entry->wireless_mode = WIRELESS_MODE_A; + if (sta->ht_cap.ht_supported == true) + sta_entry->wireless_mode = WIRELESS_MODE_N_24G; + + if (vif->type == NL80211_IFTYPE_ADHOC) + sta_entry->wireless_mode = WIRELESS_MODE_A; + } + /*disable cck rate for p2p*/ + if (mac->p2p) + sta->supp_rates[0] &= 0xfffffff0; + + memcpy(sta_entry->mac_addr, sta->addr, ETH_ALEN); + RT_TRACE(COMP_MAC80211, DBG_DMESG, + ("Add sta addr is %pM\n",sta->addr)); + rtlpriv->cfg->ops->update_rate_tbl(hw, sta, 0); + } + + return 0; +} + +static int rtl_op_sta_remove(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, + struct ieee80211_sta *sta) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_sta_info *sta_entry; + if (sta) { + RT_TRACE(COMP_MAC80211, DBG_DMESG, + ("Remove sta addr is %pM\n",sta->addr)); + sta_entry = (struct rtl_sta_info *) sta->drv_priv; + sta_entry->wireless_mode = 0; + sta_entry->ratr_index = 0; + spin_lock_bh(&rtlpriv->locks.entry_list_lock); + list_del(&sta_entry->list); + spin_unlock_bh(&rtlpriv->locks.entry_list_lock); + } + return 0; +} +static int _rtl_get_hal_qnum(u16 queue) +{ + int qnum; + + switch (queue) { + case 0: + qnum = AC3_VO; + break; + case 1: + qnum = AC2_VI; + break; + case 2: + qnum = AC0_BE; + break; + case 3: + qnum = AC1_BK; + break; + default: + qnum = AC0_BE; + break; + } + return qnum; +} + +/* + *for mac80211 VO=0, VI=1, BE=2, BK=3 + *for rtl819x BE=0, BK=1, VI=2, VO=3 + */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +static int rtl_op_conf_tx(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, u16 queue, + const struct ieee80211_tx_queue_params *param) +#else +static int rtl_op_conf_tx(struct ieee80211_hw *hw, u16 queue, + const struct ieee80211_tx_queue_params *param) +#endif +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + int aci; + + if (queue >= AC_MAX) { + RT_TRACE(COMP_ERR, DBG_WARNING, + ("queue number %d is incorrect!\n", queue)); + return -EINVAL; + } + + aci = _rtl_get_hal_qnum(queue); + mac->ac[aci].aifs = param->aifs; + mac->ac[aci].cw_min = param->cw_min; + mac->ac[aci].cw_max = param->cw_max; + mac->ac[aci].tx_op = param->txop; + memcpy(&mac->edca_param[aci], param, sizeof(*param)); + rtlpriv->cfg->ops->set_qos(hw, aci); + return 0; +} + +static void rtl_op_bss_info_changed(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, + struct ieee80211_bss_conf *bss_conf, + u32 changed) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + + mutex_lock(&rtlpriv->locks.conf_mutex); + if ((vif->type == NL80211_IFTYPE_ADHOC) || + (vif->type == NL80211_IFTYPE_AP) || + (vif->type == NL80211_IFTYPE_MESH_POINT)) { + if ((changed & BSS_CHANGED_BEACON) || + (changed & BSS_CHANGED_BEACON_ENABLED && + bss_conf->enable_beacon)) { + if (mac->beacon_enabled == 0) { + RT_TRACE(COMP_MAC80211, DBG_DMESG, + ("BSS_CHANGED_BEACON_ENABLED \n")); + + /*start hw beacon interrupt. */ + /*rtlpriv->cfg->ops->set_bcn_reg(hw); */ + mac->beacon_enabled = 1; + rtlpriv->cfg->ops->update_interrupt_mask(hw, + rtlpriv->cfg->maps + [RTL_IBSS_INT_MASKS], 0); + + if (rtlpriv->cfg->ops->linked_set_reg) + rtlpriv->cfg->ops->linked_set_reg(hw); + } + } + if ((changed & BSS_CHANGED_BEACON_ENABLED && + !bss_conf->enable_beacon)){ + if (mac->beacon_enabled == 1) { + RT_TRACE(COMP_MAC80211, DBG_DMESG, + ("ADHOC DISABLE BEACON\n")); + + mac->beacon_enabled = 0; + rtlpriv->cfg->ops->update_interrupt_mask(hw, 0, + rtlpriv->cfg->maps + [RTL_IBSS_INT_MASKS]); + } + } + if (changed & BSS_CHANGED_BEACON_INT) { + RT_TRACE(COMP_BEACON, DBG_TRACE, + ("BSS_CHANGED_BEACON_INT\n")); + mac->beacon_interval = bss_conf->beacon_int; + rtlpriv->cfg->ops->set_bcn_intv(hw); + } + } + + /*TODO: reference to enum ieee80211_bss_change */ + if (changed & BSS_CHANGED_ASSOC) { + if (bss_conf->assoc) { + struct ieee80211_sta *sta = NULL; + /* we should reset all sec info & cam + * before set cam after linked, we should not + * reset in disassoc, that will cause tkip->wep + * fail because some flag will be wrong */ + /* reset sec info */ + rtl_cam_reset_sec_info(hw); + /* reset cam to fix wep fail issue + * when change from wpa to wep */ + rtl_cam_reset_all_entry(hw); + + mac->link_state = MAC80211_LINKED; + mac->cnt_after_linked = 0; + mac->assoc_id = bss_conf->aid; + memcpy(mac->bssid, bss_conf->bssid, 6); + + if (rtlpriv->cfg->ops->linked_set_reg) + rtlpriv->cfg->ops->linked_set_reg(hw); + + rcu_read_lock(); + sta = ieee80211_find_sta(vif, (u8*)bss_conf->bssid); + + if (vif->type == NL80211_IFTYPE_STATION && sta) + rtlpriv->cfg->ops->update_rate_tbl(hw, sta, 0); + RT_TRACE(COMP_EASY_CONCURRENT, DBG_LOUD, + ("send PS STATIC frame \n")); + if (rtlpriv->dm.supp_phymode_switch) { + if (sta->ht_cap.ht_supported) + rtl_send_smps_action(hw, sta, + IEEE80211_SMPS_STATIC); + } + rcu_read_unlock(); + + RT_TRACE(COMP_MAC80211, DBG_DMESG, + ("BSS_CHANGED_ASSOC\n")); + } else { + if (mac->link_state == MAC80211_LINKED) + rtl_lps_leave(hw); + if (ppsc->p2p_ps_info.p2p_ps_mode> P2P_PS_NONE) + rtl_p2p_ps_cmd(hw, P2P_PS_DISABLE); + mac->link_state = MAC80211_NOLINK; + memset(mac->bssid, 0, 6); + mac->vendor = PEER_UNKNOWN; + + if (rtlpriv->dm.supp_phymode_switch) { + if (rtlpriv->cfg->ops->check_switch_to_dmdp) + rtlpriv->cfg->ops->check_switch_to_dmdp(hw); + } + RT_TRACE(COMP_MAC80211, DBG_DMESG, + ("BSS_CHANGED_UN_ASSOC\n")); + } + } + + if (changed & BSS_CHANGED_ERP_CTS_PROT) { + RT_TRACE(COMP_MAC80211, DBG_TRACE, + ("BSS_CHANGED_ERP_CTS_PROT\n")); + mac->use_cts_protect = bss_conf->use_cts_prot; + } + + if (changed & BSS_CHANGED_ERP_PREAMBLE) { + RT_TRACE(COMP_MAC80211, DBG_LOUD, + ("BSS_CHANGED_ERP_PREAMBLE use short preamble:%x \n", + bss_conf->use_short_preamble)); + + mac->short_preamble = bss_conf->use_short_preamble; + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ACK_PREAMBLE, + (u8 *) (&mac->short_preamble)); + } + + if (changed & BSS_CHANGED_ERP_SLOT) { + RT_TRACE(COMP_MAC80211, DBG_TRACE, + ("BSS_CHANGED_ERP_SLOT\n")); + + if (bss_conf->use_short_slot) + mac->slot_time = RTL_SLOT_TIME_9; + else + mac->slot_time = RTL_SLOT_TIME_20; + + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SLOT_TIME, + (u8 *) (&mac->slot_time)); + } + + if (changed & BSS_CHANGED_HT) { + struct ieee80211_sta *sta = NULL; + + RT_TRACE(COMP_MAC80211, DBG_TRACE, + ("BSS_CHANGED_HT\n")); + + rcu_read_lock(); + sta = ieee80211_find_sta(vif, (u8*)bss_conf->bssid); + if (sta) { + if (sta->ht_cap.ampdu_density > + mac->current_ampdu_density) + mac->current_ampdu_density = + sta->ht_cap.ampdu_density; + if (sta->ht_cap.ampdu_factor < + mac->current_ampdu_factor) + mac->current_ampdu_factor = + sta->ht_cap.ampdu_factor; + } + rcu_read_unlock(); + + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SHORTGI_DENSITY, + (u8 *) (&mac->max_mss_density)); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_AMPDU_FACTOR, + &mac->current_ampdu_factor); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_AMPDU_MIN_SPACE, + &mac->current_ampdu_density); + } + + if (changed & BSS_CHANGED_BSSID) { + u32 basic_rates; + struct ieee80211_sta *sta = NULL; + + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_BSSID, + (u8 *) bss_conf->bssid); + + RT_TRACE(COMP_MAC80211, DBG_DMESG, + ("bssid: %pM\n", bss_conf->bssid)); + + mac->vendor = PEER_UNKNOWN; + memcpy(mac->bssid, bss_conf->bssid, 6); + rtlpriv->cfg->ops->set_network_type(hw, vif->type); + + rcu_read_lock(); + sta = ieee80211_find_sta(vif, (u8*)bss_conf->bssid); + if (!sta) { + rcu_read_unlock(); + goto out; + } + + if (rtlhal->current_bandtype == BAND_ON_5G) { + mac->mode = WIRELESS_MODE_A; + } else { + if (sta->supp_rates[0] <= 0xf) + mac->mode = WIRELESS_MODE_B; + else + mac->mode = WIRELESS_MODE_G; + } + + if (sta->ht_cap.ht_supported) { + if (rtlhal->current_bandtype == BAND_ON_2_4G) + mac->mode = WIRELESS_MODE_N_24G; + else + mac->mode = WIRELESS_MODE_N_5G; + } + + /* just station need it, because ibss & ap mode will + * set in sta_add, and will be NULL here */ + if (vif->type == NL80211_IFTYPE_STATION) { + struct rtl_sta_info *sta_entry; + sta_entry = (struct rtl_sta_info *) sta->drv_priv; + sta_entry->wireless_mode = mac->mode; + } + + if (sta->ht_cap.ht_supported) { + mac->ht_enable = true; + + /* + * for cisco 1252 bw20 it's wrong + * if (ht_cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40) { + * mac->bw_40 = true; + * } + * */ + } + + if (changed & BSS_CHANGED_BASIC_RATES) { + /* for 5G must << RATE_6M_INDEX=4, + * because 5G have no cck rate*/ + if (rtlhal->current_bandtype == BAND_ON_5G) + basic_rates = sta->supp_rates[1] << 4; + else + basic_rates = sta->supp_rates[0]; + + mac->basic_rates = basic_rates; + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_BASIC_RATE, + (u8 *) (&basic_rates)); + } + rcu_read_unlock(); + } + + /* + * For FW LPS and Keep Alive: + * To tell firmware we have connected + * to an AP. For 92SE/CE power save v2. + */ + if (changed & BSS_CHANGED_ASSOC) { + if (bss_conf->assoc) { + u8 keep_alive = 10; + u8 mstatus = RT_MEDIA_CONNECT; + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_KEEP_ALIVE, + (u8 *) (&keep_alive)); + + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_H2C_FW_JOINBSSRPT, + (u8 *) (&mstatus)); + ppsc->report_linked = true; + + } else { + + u8 mstatus = RT_MEDIA_DISCONNECT; + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_H2C_FW_JOINBSSRPT, + (u8 *) (&mstatus)); + ppsc->report_linked = false; + + } + + if (rtlpriv->cfg->ops->get_btc_status()){ + rtlpriv->btcoexist.btc_ops->btc_mediastatus_notify( + rtlpriv, ppsc->report_linked); + } + } + +out: + mutex_unlock(&rtlpriv->locks.conf_mutex); +} + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +static u64 rtl_op_get_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) +#else +static u64 rtl_op_get_tsf(struct ieee80211_hw *hw) +#endif +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u64 tsf; + + rtlpriv->cfg->ops->get_hw_reg(hw, HW_VAR_CORRECT_TSF, (u8 *) (&tsf)); + return tsf; +} + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +static void rtl_op_set_tsf(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, u64 tsf) +#else +static void rtl_op_set_tsf(struct ieee80211_hw *hw, u64 tsf) +#endif +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + u8 bibss = (mac->opmode == NL80211_IFTYPE_ADHOC) ? 1 : 0; + + mac->tsf = tsf; + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_CORRECT_TSF, (u8 *) (&bibss)); +} + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +static void rtl_op_reset_tsf(struct ieee80211_hw *hw, struct ieee80211_vif *vif) +#else +static void rtl_op_reset_tsf(struct ieee80211_hw *hw) +#endif +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 tmp = 0; + + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_DUAL_TSF_RST, (u8 *) (&tmp)); +} + +static void rtl_op_sta_notify(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, + enum sta_notify_cmd cmd, + struct ieee80211_sta *sta) +{ + switch (cmd) { + case STA_NOTIFY_SLEEP: + break; + case STA_NOTIFY_AWAKE: + break; + default: + break; + } +} + +static int rtl_op_ampdu_action(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, + enum ieee80211_ampdu_mlme_action action, + struct ieee80211_sta *sta, u16 tid, u16 * ssn +/**/ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) +/**/ + ,u8 buf_size +/**/ +#endif +/**/ + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + switch (action) { + case IEEE80211_AMPDU_TX_START: + RT_TRACE(COMP_MAC80211, DBG_TRACE, + ("IEEE80211_AMPDU_TX_START: TID:%d\n", tid)); + return rtl_tx_agg_start(hw, vif, sta, tid, ssn); + break; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + case IEEE80211_AMPDU_TX_STOP_CONT: + case IEEE80211_AMPDU_TX_STOP_FLUSH: + case IEEE80211_AMPDU_TX_STOP_FLUSH_CONT: +#else + case IEEE80211_AMPDU_TX_STOP: +#endif + RT_TRACE(COMP_MAC80211, DBG_TRACE, + ("IEEE80211_AMPDU_TX_STOP: TID:%d\n", tid)); + return rtl_tx_agg_stop(hw, vif, sta, tid); + break; + case IEEE80211_AMPDU_TX_OPERATIONAL: + RT_TRACE(COMP_MAC80211, DBG_TRACE, + ("IEEE80211_AMPDU_TX_OPERATIONAL:TID:%d\n", tid)); + rtl_tx_agg_oper(hw, sta, tid); + break; + case IEEE80211_AMPDU_RX_START: + RT_TRACE(COMP_MAC80211, DBG_TRACE, + ("IEEE80211_AMPDU_RX_START:TID:%d\n", tid)); + return rtl_rx_agg_start(hw, sta, tid); + break; + case IEEE80211_AMPDU_RX_STOP: + RT_TRACE(COMP_MAC80211, DBG_TRACE, + ("IEEE80211_AMPDU_RX_STOP:TID:%d\n", tid)); + return rtl_rx_agg_stop(hw, sta, tid); + break; + default: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("IEEE80211_AMPDU_ERR!!!!:\n")); + return -EOPNOTSUPP; + } + return 0; +} + +static void rtl_op_sw_scan_start(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + + RT_TRACE(COMP_MAC80211, DBG_LOUD, ("\n")); + mac->act_scanning = true; + /*rtlpriv->btcops->btc_scan_notify(rtlpriv, 0); */ + if (rtlpriv->link_info.b_higher_busytraffic) { + mac->skip_scan = true; + return; + } + + if (rtlpriv->dm.supp_phymode_switch) { + if (rtlpriv->cfg->ops->check_switch_to_dmdp) + rtlpriv->cfg->ops->check_switch_to_dmdp(hw); + } + + if (mac->link_state == MAC80211_LINKED) { + rtl_lps_leave(hw); + mac->link_state = MAC80211_LINKED_SCANNING; + } else { + rtl_ips_nic_on(hw); + } + + /* Dul mac */ + rtlpriv->rtlhal.b_load_imrandiqk_setting_for2g = false; + + rtlpriv->cfg->ops->led_control(hw, LED_CTL_SITE_SURVEY); + + rtlpriv->cfg->ops->scan_operation_backup(hw, SCAN_OPT_BACKUP_BAND0); + +} + +static void rtl_op_sw_scan_complete(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + + RT_TRACE(COMP_MAC80211, DBG_LOUD, ("\n")); + mac->act_scanning = false; + mac->skip_scan = false; + if (rtlpriv->link_info.b_higher_busytraffic) { + return; + } + + /* p2p will use 1/6/11 to scan */ + if (mac->n_channels == 3) + mac->p2p_in_use = true; + else + mac->p2p_in_use = false; + mac->n_channels = 0; + /* Dul mac */ + rtlpriv->rtlhal.b_load_imrandiqk_setting_for2g = false; + + if (mac->link_state == MAC80211_LINKED_SCANNING) { + mac->link_state = MAC80211_LINKED; + if (mac->opmode == NL80211_IFTYPE_STATION) { + /* fix fwlps issue */ + rtlpriv->cfg->ops->set_network_type(hw, mac->opmode); + } + } + + rtlpriv->cfg->ops->scan_operation_backup(hw, SCAN_OPT_RESTORE); + /* rtlpriv->btcops->btc_scan_notify(rtlpriv, 1); */ +} + +static int rtl_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, + struct ieee80211_vif *vif, struct ieee80211_sta *sta, + struct ieee80211_key_conf *key) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 key_type = NO_ENCRYPTION; + u8 key_idx; + bool group_key = false; + bool wep_only = false; + int err = 0; + u8 mac_addr[ETH_ALEN]; + u8 bcast_addr[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; + u8 zero_addr[ETH_ALEN] = { 0 }; + + if (rtlpriv->cfg->mod_params->sw_crypto || rtlpriv->sec.use_sw_sec) { + RT_TRACE(COMP_ERR, DBG_WARNING, + ("not open hw encryption\n")); + return -ENOSPC; /*User disabled HW-crypto */ + } + /* To support IBSS, use sw-crypto for GTK */ + if(((vif->type == NL80211_IFTYPE_ADHOC) || + (vif->type == NL80211_IFTYPE_MESH_POINT)) && + !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) + return -ENOSPC; + RT_TRACE(COMP_SEC, DBG_DMESG, + ("%s hardware based encryption for keyidx: %d, mac: %pM\n", + cmd == SET_KEY ? "Using" : "Disabling", key->keyidx, + sta ? sta->addr : bcast_addr)); + rtlpriv->sec.being_setkey = true; + rtl_ips_nic_on(hw); + mutex_lock(&rtlpriv->locks.conf_mutex); + /* <1> get encryption alg */ + +/**/ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +/**/ + switch (key->cipher) { + case WLAN_CIPHER_SUITE_WEP40: + key_type = WEP40_ENCRYPTION; + RT_TRACE(COMP_SEC, DBG_DMESG, ("alg:WEP40\n")); + break; + case WLAN_CIPHER_SUITE_WEP104: + RT_TRACE(COMP_SEC, DBG_DMESG, ("alg:WEP104\n")); + key_type = WEP104_ENCRYPTION; + break; + case WLAN_CIPHER_SUITE_TKIP: + key_type = TKIP_ENCRYPTION; + RT_TRACE(COMP_SEC, DBG_DMESG, ("alg:TKIP\n")); + break; + case WLAN_CIPHER_SUITE_CCMP: + key_type = AESCCMP_ENCRYPTION; + RT_TRACE(COMP_SEC, DBG_DMESG, ("alg:CCMP\n")); + break; + case WLAN_CIPHER_SUITE_AES_CMAC: + /* HW don't support CMAC encryption, + * use software CMAC encryption */ + key_type = AESCMAC_ENCRYPTION; + RT_TRACE(COMP_SEC, DBG_DMESG, ("alg:CMAC\n")); + RT_TRACE(COMP_SEC, DBG_DMESG, + ("HW don't support CMAC encrypiton, " + "use software CMAC encrypiton\n")); + err = -EOPNOTSUPP; + goto out_unlock; + default: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("alg_err:%x!!!!:\n", key->cipher)); + goto out_unlock; + } +/**/ +#else + switch (key->alg) { + case ALG_WEP: + if (key->keylen == WLAN_KEY_LEN_WEP40) { + key_type = WEP40_ENCRYPTION; + RT_TRACE(COMP_SEC, DBG_DMESG, ("alg:WEP40\n")); + } else { + RT_TRACE(COMP_SEC, DBG_DMESG, + ("alg:WEP104\n")); + key_type = WEP104_ENCRYPTION; + } + break; + case ALG_TKIP: + key_type = TKIP_ENCRYPTION; + RT_TRACE(COMP_SEC, DBG_DMESG, ("alg:TKIP\n")); + break; + case ALG_CCMP: + key_type = AESCCMP_ENCRYPTION; + RT_TRACE(COMP_SEC, DBG_DMESG, ("alg:CCMP\n")); + break; + case ALG_AES_CMAC: + /*HW don't support CMAC encryption, use software CMAC encryption */ + key_type = AESCMAC_ENCRYPTION; + RT_TRACE(COMP_SEC, DBG_DMESG, ("alg:CMAC\n")); + RT_TRACE(COMP_SEC, DBG_DMESG, + ("HW don't support CMAC encrypiton, " + "use software CMAC encrypiton\n")); + err = -EOPNOTSUPP; + goto out_unlock; + default: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("alg_err:%x!!!!:\n", key->alg)); + goto out_unlock; + } +#endif +/**/ + if(key_type == WEP40_ENCRYPTION || + key_type == WEP104_ENCRYPTION || + vif->type == NL80211_IFTYPE_ADHOC) + rtlpriv->sec.use_defaultkey = true; + + /* <2> get key_idx */ + key_idx = (u8) (key->keyidx); + if (key_idx > 3) + goto out_unlock; + /* <3> if pairwise key enable_hw_sec */ + group_key = !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE); + + /* wep always be group key, but there are two conditions: + * 1) wep only: is just for wep enc, in this condition + * rtlpriv->sec.pairwise_enc_algorithm == NO_ENCRYPTION + * will be true & enable_hw_sec will be set when wep + * ke setting. + * 2) wep(group) + AES(pairwise): some AP like cisco + * may use it, in this condition enable_hw_sec will not + * be set when wep key setting */ + /* we must reset sec_info after lingked before set key, + * or some flag will be wrong*/ + if (vif->type == NL80211_IFTYPE_AP || + vif->type == NL80211_IFTYPE_MESH_POINT) { + if (!group_key || key_type == WEP40_ENCRYPTION || + key_type == WEP104_ENCRYPTION) { + if (group_key) { + wep_only = true; + } + rtlpriv->cfg->ops->enable_hw_sec(hw); + } + } else { + if ((!group_key) || (vif->type == NL80211_IFTYPE_ADHOC) || + rtlpriv->sec.pairwise_enc_algorithm == NO_ENCRYPTION) { + if (rtlpriv->sec.pairwise_enc_algorithm == + NO_ENCRYPTION && + (key_type == WEP40_ENCRYPTION || + key_type == WEP104_ENCRYPTION)) + wep_only = true; + rtlpriv->sec.pairwise_enc_algorithm = key_type; + RT_TRACE(COMP_SEC, DBG_DMESG, + ("set enable_hw_sec, key_type:%x(OPEN:0 WEP40:" + "1 TKIP:2 AES:4 WEP104:5)\n", key_type)); + rtlpriv->cfg->ops->enable_hw_sec(hw); + } + } + /* <4> set key based on cmd */ + switch (cmd) { + case SET_KEY: + if (wep_only) { + RT_TRACE(COMP_SEC, DBG_DMESG, + ("set WEP(group/pairwise) key\n")); + /* Pairwise key with an assigned MAC address. */ + rtlpriv->sec.pairwise_enc_algorithm = key_type; + rtlpriv->sec.group_enc_algorithm = key_type; + /*set local buf about wep key. */ + memcpy(rtlpriv->sec.key_buf[key_idx], + key->key, key->keylen); + rtlpriv->sec.key_len[key_idx] = key->keylen; + memcpy(mac_addr, zero_addr, ETH_ALEN); + } else if (group_key) { /* group key */ + RT_TRACE(COMP_SEC, DBG_DMESG, + ("set group key\n")); + /* group key */ + rtlpriv->sec.group_enc_algorithm = key_type; + /*set local buf about group key. */ + memcpy(rtlpriv->sec.key_buf[key_idx], + key->key, key->keylen); + rtlpriv->sec.key_len[key_idx] = key->keylen; + memcpy(mac_addr, bcast_addr, ETH_ALEN); + } else { /* pairwise key */ + RT_TRACE(COMP_SEC, DBG_DMESG, + ("set pairwise key\n")); + if (!sta) { + RT_ASSERT(false, ("pairwise key withnot" + "mac_addr\n")); + + err = -EOPNOTSUPP; + goto out_unlock; + } + /* Pairwise key with an assigned MAC address. */ + rtlpriv->sec.pairwise_enc_algorithm = key_type; + /*set local buf about pairwise key. */ + memcpy(rtlpriv->sec.key_buf[PAIRWISE_KEYIDX], + key->key, key->keylen); + rtlpriv->sec.key_len[PAIRWISE_KEYIDX] = key->keylen; + rtlpriv->sec.pairwise_key = + rtlpriv->sec.key_buf[PAIRWISE_KEYIDX]; + memcpy(mac_addr, sta->addr, ETH_ALEN); + } + rtlpriv->cfg->ops->set_key(hw, key_idx, mac_addr, + group_key, key_type, wep_only, + false); + /* <5> tell mac80211 do something: */ + /*must use sw generate IV, or can not work !!!!. */ + key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV; + key->hw_key_idx = key_idx; + if (key_type == TKIP_ENCRYPTION) + key->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIC; + /*use software CCMP encryption for management frames (MFP) */ + if (key_type == AESCCMP_ENCRYPTION) + key->flags |= IEEE80211_KEY_FLAG_SW_MGMT; + break; + case DISABLE_KEY: + RT_TRACE(COMP_SEC, DBG_DMESG, + ("disable key delete one entry\n")); + /*set local buf about wep key. */ + if (vif->type == NL80211_IFTYPE_AP || + vif->type == NL80211_IFTYPE_MESH_POINT) { + if (sta) + rtl_cam_del_entry(hw, sta->addr); + } + memset(rtlpriv->sec.key_buf[key_idx], 0, key->keylen); + rtlpriv->sec.key_len[key_idx] = 0; + memcpy(mac_addr, zero_addr, ETH_ALEN); + /* + *mac80211 will delete entrys one by one, + *so don't use rtl_cam_reset_all_entry + *or clear all entry here. + */ + rtl_cam_delete_one_entry(hw, mac_addr, key_idx); + break; + default: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("cmd_err:%x!!!!:\n", cmd)); + } +out_unlock: + mutex_unlock(&rtlpriv->locks.conf_mutex); + rtlpriv->sec.being_setkey = false; + return err; +} + +static void rtl_op_rfkill_poll(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + bool radio_state; + bool blocked; + u8 valid = 0; + + if (!test_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status)) + return; + + mutex_lock(&rtlpriv->locks.conf_mutex); + + /*if Radio On return true here */ + radio_state = rtlpriv->cfg->ops->radio_onoff_checking(hw, &valid); + + if (valid) { + if (unlikely(radio_state != rtlpriv->rfkill.rfkill_state)) { + rtlpriv->rfkill.rfkill_state = radio_state; + + RT_TRACE(COMP_RF, DBG_DMESG, + (KERN_INFO "wireless radio switch turned %s\n", + radio_state ? "on" : "off")); + + blocked = (rtlpriv->rfkill.rfkill_state == 1) ? 0 : 1; + wiphy_rfkill_set_hw_state(hw->wiphy, blocked); + } + } + + mutex_unlock(&rtlpriv->locks.conf_mutex); +} + +/* this function is called by mac80211 to flush tx buffer + * before switch channle or power save, or tx buffer packet + * maybe send after offchannel or rf sleep, this may cause + * dis-association by AP */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) +static void rtl_op_flush(struct ieee80211_hw *hw, u32 queues, bool drop) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if (rtlpriv->intf_ops->flush) + rtlpriv->intf_ops->flush(hw, queues, drop); +} +#else +static void rtl_op_flush(struct ieee80211_hw *hw, bool drop) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if (rtlpriv->intf_ops->flush) + rtlpriv->intf_ops->flush(hw, drop); +} +#endif + +const struct ieee80211_ops rtl_ops = { + .start = rtl_op_start, + .stop = rtl_op_stop, + .tx = rtl_op_tx, + .add_interface = rtl_op_add_interface, + .remove_interface = rtl_op_remove_interface, +/**/ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +/**/ + .change_interface = rtl_op_change_interface, +/**/ +#endif +/**/ + .config = rtl_op_config, + .configure_filter = rtl_op_configure_filter, + .set_key = rtl_op_set_key, + .conf_tx = rtl_op_conf_tx, + .bss_info_changed = rtl_op_bss_info_changed, + .get_tsf = rtl_op_get_tsf, + .set_tsf = rtl_op_set_tsf, + .reset_tsf = rtl_op_reset_tsf, + .sta_notify = rtl_op_sta_notify, + .ampdu_action = rtl_op_ampdu_action, + .sw_scan_start = rtl_op_sw_scan_start, + .sw_scan_complete = rtl_op_sw_scan_complete, + .rfkill_poll = rtl_op_rfkill_poll, + .sta_add = rtl_op_sta_add, + .sta_remove = rtl_op_sta_remove, + .flush = rtl_op_flush, +}; --- linux-3.13.0.orig/drivers/staging/rtl8821ae/core.h +++ linux-3.13.0/drivers/staging/rtl8821ae/core.h @@ -0,0 +1,43 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * Tmis program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * Tmis program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * tmis program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * Tme full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL_CORE_H__ +#define __RTL_CORE_H__ + +#define RTL_SUPPORTED_FILTERS \ + (FIF_PROMISC_IN_BSS | \ + FIF_ALLMULTI | FIF_CONTROL | \ + FIF_OTHER_BSS | \ + FIF_FCSFAIL | \ + FIF_BCN_PRBRESP_PROMISC) + +#define RTL_SUPPORTED_CTRL_FILTER 0xFF + +extern const struct ieee80211_ops rtl_ops; +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/debug.c +++ linux-3.13.0/drivers/staging/rtl8821ae/debug.c @@ -0,0 +1,988 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * Tmis program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * Tmis program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * tmis program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * Tme full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "wifi.h" +#include "cam.h" + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) +#define GET_INODE_DATA(__node) PDE_DATA(__node) +#else +#define GET_INODE_DATA(__node) PDE(__node)->data +#endif + + +void rtl_dbgp_flag_init(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 i; + + rtlpriv->dbg.global_debuglevel = DBG_DMESG; + + rtlpriv->dbg.global_debugcomponents = + COMP_ERR | + COMP_FW | + COMP_INIT | + COMP_RECV | + COMP_SEND | + COMP_MLME | + COMP_SCAN | + COMP_INTR | + COMP_LED | + COMP_SEC | + COMP_BEACON | + COMP_RATE | + COMP_RXDESC | + COMP_DIG | + COMP_TXAGC | + COMP_POWER | + COMP_POWER_TRACKING | + COMP_BB_POWERSAVING | + COMP_SWAS | + COMP_RF | + COMP_TURBO | + COMP_RATR | + COMP_CMD | + COMP_EASY_CONCURRENT | + COMP_EFUSE | + COMP_QOS | COMP_MAC80211 | COMP_REGD | + COMP_CHAN | + COMP_BT_COEXIST | + COMP_IQK | + 0; + + for (i = 0; i < DBGP_TYPE_MAX; i++) + rtlpriv->dbg.dbgp_type[i] = 0; + + /*Init Debug flag enable condition */ +} + +struct proc_dir_entry *proc_topdir; +static int rtl_proc_get_mac_0(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + struct rtl_priv *rtlpriv = rtl_priv(hw); + int i, n, page; + int max = 0xff; + page = 0x000; + + for (n = 0; n <= max; ) { + seq_printf(m, "\n%8.8x ", n + page); + for (i = 0; i < 4 && n <= max; i++, n += 4) + seq_printf(m, "%8.8x ", + rtl_read_dword(rtlpriv, (page | n))); + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_mac_0(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_mac_0, GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_mac_0 = { + .open = dl_proc_open_mac_0, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_mac_1(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + struct rtl_priv *rtlpriv = rtl_priv(hw); + int i, n, page; + int max = 0xff; + page = 0x100; + + for (n = 0; n <= max; ) { + seq_printf(m, "\n%8.8x ", n + page); + for (i = 0; i < 4 && n <= max; i++, n += 4) + seq_printf(m, "%8.8x ", + rtl_read_dword(rtlpriv, (page | n))); + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_mac_1(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_mac_1, GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_mac_1 = { + .open = dl_proc_open_mac_1, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_mac_2(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + struct rtl_priv *rtlpriv = rtl_priv(hw); + int i, n, page; + int max = 0xff; + page = 0x200; + + for (n = 0; n <= max; ) { + seq_printf(m, "\n%8.8x ", n + page); + for (i = 0; i < 4 && n <= max; i++, n += 4) + seq_printf(m, "%8.8x ", + rtl_read_dword(rtlpriv, (page | n))); + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_mac_2(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_mac_2, GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_mac_2 = { + .open = dl_proc_open_mac_2, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_mac_3(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + struct rtl_priv *rtlpriv = rtl_priv(hw); + int i, n, page; + int max = 0xff; + page = 0x300; + + for (n = 0; n <= max; ) { + seq_printf(m, "\n%8.8x ", n + page); + for (i = 0; i < 4 && n <= max; i++, n += 4) + seq_printf(m, "%8.8x ", + rtl_read_dword(rtlpriv, (page | n))); + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_mac_3(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_mac_3, GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_mac_3 = { + .open = dl_proc_open_mac_3, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_mac_4(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + struct rtl_priv *rtlpriv = rtl_priv(hw); + int i, n, page; + int max = 0xff; + page = 0x400; + + for (n = 0; n <= max; ) { + seq_printf(m, "\n%8.8x ", n + page); + for (i = 0; i < 4 && n <= max; i++, n += 4) + seq_printf(m, "%8.8x ", + rtl_read_dword(rtlpriv, (page | n))); + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_mac_4(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_mac_4, GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_mac_4 = { + .open = dl_proc_open_mac_4, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_mac_5(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + struct rtl_priv *rtlpriv = rtl_priv(hw); + int i, n, page; + int max = 0xff; + page = 0x500; + + for (n = 0; n <= max; ) { + seq_printf(m, "\n%8.8x ", n + page); + for (i = 0; i < 4 && n <= max; i++, n += 4) + seq_printf(m, "%8.8x ", + rtl_read_dword(rtlpriv, (page | n))); + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_mac_5(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_mac_5, GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_mac_5 = { + .open = dl_proc_open_mac_5, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_mac_6(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + struct rtl_priv *rtlpriv = rtl_priv(hw); + int i, n, page; + int max = 0xff; + page = 0x600; + + for (n = 0; n <= max; ) { + seq_printf(m, "\n%8.8x ", n + page); + for (i = 0; i < 4 && n <= max; i++, n += 4) + seq_printf(m, "%8.8x ", + rtl_read_dword(rtlpriv, (page | n))); + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_mac_6(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_mac_6, GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_mac_6 = { + .open = dl_proc_open_mac_6, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_mac_7(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + struct rtl_priv *rtlpriv = rtl_priv(hw); + int i, n, page; + int max = 0xff; + page = 0x700; + + for (n = 0; n <= max; ) { + seq_printf(m, "\n%8.8x ", n + page); + for (i = 0; i < 4 && n <= max; i++, n += 4) + seq_printf(m, "%8.8x ", + rtl_read_dword(rtlpriv, (page | n))); + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_mac_7(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_mac_7, GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_mac_7 = { + .open = dl_proc_open_mac_7, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_bb_8(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + int i, n, page; + int max = 0xff; + page = 0x800; + + for (n = 0; n <= max; ) { + seq_printf(m, "\n%8.8x ", n + page); + for (i = 0; i < 4 && n <= max; i++, n += 4) + seq_printf(m, "%8.8x ", + rtl_get_bbreg(hw, (page | n), 0xffffffff)); + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_bb_8(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_bb_8, GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_bb_8 = { + .open = dl_proc_open_bb_8, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_bb_9(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + int i, n, page; + int max = 0xff; + page = 0x900; + + for (n = 0; n <= max; ) { + seq_printf(m, "\n%8.8x ", n + page); + for (i = 0; i < 4 && n <= max; i++, n += 4) + seq_printf(m, "%8.8x ", + rtl_get_bbreg(hw, (page | n), 0xffffffff)); + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_bb_9(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_bb_9, GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_bb_9 = { + .open = dl_proc_open_bb_9, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_bb_a(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + int i, n, page; + int max = 0xff; + page = 0xa00; + + for (n = 0; n <= max; ) { + seq_printf(m, "\n%8.8x ", n + page); + for (i = 0; i < 4 && n <= max; i++, n += 4) + seq_printf(m, "%8.8x ", + rtl_get_bbreg(hw, (page | n), 0xffffffff)); + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_bb_a(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_bb_a, GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_bb_a = { + .open = dl_proc_open_bb_a, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_bb_b(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + int i, n, page; + int max = 0xff; + page = 0xb00; + + for (n = 0; n <= max; ) { + seq_printf(m, "\n%8.8x ", n + page); + for (i = 0; i < 4 && n <= max; i++, n += 4) + seq_printf(m, "%8.8x ", + rtl_get_bbreg(hw, (page | n), 0xffffffff)); + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_bb_b(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_bb_b, GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_bb_b = { + .open = dl_proc_open_bb_b, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_bb_c(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + int i, n, page; + int max = 0xff; + page = 0xc00; + + for (n = 0; n <= max; ) { + seq_printf(m, "\n%8.8x ", n + page); + for (i = 0; i < 4 && n <= max; i++, n += 4) + seq_printf(m, "%8.8x ", + rtl_get_bbreg(hw, (page | n), 0xffffffff)); + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_bb_c(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_bb_c, GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_bb_c = { + .open = dl_proc_open_bb_c, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_bb_d(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + int i, n, page; + int max = 0xff; + page = 0xd00; + + for (n = 0; n <= max; ) { + seq_printf(m, "\n%8.8x ", n + page); + for (i = 0; i < 4 && n <= max; i++, n += 4) + seq_printf(m, "%8.8x ", + rtl_get_bbreg(hw, (page | n), 0xffffffff)); + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_bb_d(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_bb_d, GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_bb_d = { + .open = dl_proc_open_bb_d, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_bb_e(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + int i, n, page; + int max = 0xff; + page = 0xe00; + + for (n = 0; n <= max; ) { + seq_printf(m, "\n%8.8x ", n + page); + for (i = 0; i < 4 && n <= max; i++, n += 4) + seq_printf(m, "%8.8x ", + rtl_get_bbreg(hw, (page | n), 0xffffffff)); + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_bb_e(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_bb_e, GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_bb_e = { + .open = dl_proc_open_bb_e, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_bb_f(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + int i, n, page; + int max = 0xff; + page = 0xf00; + + for (n = 0; n <= max; ) { + seq_printf(m, "\n%8.8x ", n + page); + for (i = 0; i < 4 && n <= max; i++, n += 4) + seq_printf(m, "%8.8x ", + rtl_get_bbreg(hw, (page | n), 0xffffffff)); + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_bb_f(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_bb_f, GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_bb_f = { + .open = dl_proc_open_bb_f, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_reg_rf_a(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + int i, n; + int max = 0x40; + + for (n = 0; n <= max; ) { + seq_printf(m, "\n%8.8x ", n); + for (i = 0; i < 4 && n <= max; n += 1, i++) + seq_printf(m, "%8.8x ", + rtl_get_rfreg(hw, RF90_PATH_A, n, 0xffffffff)); + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_rf_a(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_reg_rf_a, GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_rf_a = { + .open = dl_proc_open_rf_a, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_reg_rf_b(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + int i, n; + int max = 0x40; + + for (n = 0; n <= max; ) { + seq_printf(m, "\n%8.8x ", n); + for (i = 0; i < 4 && n <= max; n += 1, i++) + seq_printf(m, "%8.8x ", + rtl_get_rfreg(hw, RF90_PATH_B, n, + 0xffffffff)); + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_rf_b(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_reg_rf_b, GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_rf_b = { + .open = dl_proc_open_rf_b, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_cam_register_1(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 target_cmd = 0; + u32 target_val=0; + u8 entry_i=0; + u32 ulstatus; + int i = 100, j = 0; + + /* This dump the current register page */ + seq_puts(m, + "\n#################### SECURITY CAM (0-10) ##################\n "); + + for (j = 0; j < 11; j++) { + seq_printf(m, "\nD: %2x > ", j); + for (entry_i = 0; entry_i < CAM_CONTENT_COUNT; entry_i++) { + /* polling bit, and No Write enable, and address */ + target_cmd = entry_i + CAM_CONTENT_COUNT * j; + target_cmd = target_cmd | BIT(31); + + /* Check polling bit is clear */ + while ((i--) >= 0) { + ulstatus = rtl_read_dword(rtlpriv, + rtlpriv->cfg->maps[RWCAM]); + if (ulstatus & BIT(31)) { + continue; + } else { + break; + } + } + + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM], + target_cmd); + target_val = rtl_read_dword(rtlpriv, + rtlpriv->cfg->maps[RCAMO]); + seq_printf(m, "%8.8x ", target_val); + } + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_cam_1(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_cam_register_1, + GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_cam_1 = { + .open = dl_proc_open_cam_1, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_cam_register_2(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 target_cmd = 0; + u32 target_val = 0; + u8 entry_i = 0; + u32 ulstatus; + int i = 100, j = 0; + + /* This dump the current register page */ + seq_puts(m, + "\n################### SECURITY CAM (11-21) ##################\n "); + + for (j = 11; j < 22; j++) { + seq_printf(m, "\nD: %2x > ", j); + for (entry_i = 0; entry_i < CAM_CONTENT_COUNT; entry_i++) { + target_cmd = entry_i + CAM_CONTENT_COUNT * j; + target_cmd = target_cmd | BIT(31); + + while ((i--) >= 0) { + ulstatus = rtl_read_dword(rtlpriv, + rtlpriv->cfg->maps[RWCAM]); + if (ulstatus & BIT(31)) { + continue; + } else { + break; + } + } + + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM], + target_cmd); + target_val = rtl_read_dword(rtlpriv, + rtlpriv->cfg->maps[RCAMO]); + seq_printf(m, "%8.8x ", target_val); + } + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_cam_2(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_cam_register_2, + GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_cam_2 = { + .open = dl_proc_open_cam_2, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +static int rtl_proc_get_cam_register_3(struct seq_file *m, void *v) +{ + struct ieee80211_hw *hw = m->private; + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 target_cmd = 0; + u32 target_val = 0; + u8 entry_i = 0; + u32 ulstatus; + int i = 100, j = 0; + + /* This dump the current register page */ + seq_puts(m, + "\n################### SECURITY CAM (22-31) ##################\n "); + + for (j = 22; j < TOTAL_CAM_ENTRY; j++) { + seq_printf(m, "\nD: %2x > ", j); + for (entry_i = 0; entry_i < CAM_CONTENT_COUNT; entry_i++) { + target_cmd = entry_i+CAM_CONTENT_COUNT*j; + target_cmd = target_cmd | BIT(31); + + while ((i--) >= 0) { + ulstatus = rtl_read_dword(rtlpriv, + rtlpriv->cfg->maps[RWCAM]); + if (ulstatus & BIT(31)) { + continue; + } else { + break; + } + } + + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[RWCAM], + target_cmd); + target_val = rtl_read_dword(rtlpriv, + rtlpriv->cfg->maps[RCAMO]); + seq_printf(m, "%8.8x ", target_val); + } + } + seq_puts(m, "\n"); + return 0; +} + +static int dl_proc_open_cam_3(struct inode *inode, struct file *file) +{ + return single_open(file, rtl_proc_get_cam_register_3, + GET_INODE_DATA(inode)); +} + +static const struct file_operations file_ops_cam_3 = { + .open = dl_proc_open_cam_3, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; + +void rtl_proc_add_one(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct proc_dir_entry *entry; + + snprintf(rtlpriv->dbg.proc_name, 18, "%x-%x-%x-%x-%x-%x", + rtlefuse->dev_addr[0], rtlefuse->dev_addr[1], + rtlefuse->dev_addr[2], rtlefuse->dev_addr[3], + rtlefuse->dev_addr[4], rtlefuse->dev_addr[5]); + + rtlpriv->dbg.proc_dir = proc_mkdir(rtlpriv->dbg.proc_name, proc_topdir); + if (!rtlpriv->dbg.proc_dir) { + RT_TRACE(COMP_INIT, DBG_EMERG, ("Unable to init " + "/proc/net/%s/%s\n", rtlpriv->cfg->name, + rtlpriv->dbg.proc_name)); + return; + } + + entry = proc_create_data("mac-0", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_mac_0, hw); + if (!entry) + RT_TRACE(COMP_INIT, DBG_EMERG, + ("Unable to initialize /proc/net/%s/%s/mac-0\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("mac-1", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_mac_1, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/mac-1\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("mac-2", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_mac_2, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/mac-2\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("mac-3", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_mac_3, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/mac-3\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("mac-4", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_mac_4, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/mac-4\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("mac-5", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_mac_5, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/mac-5\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("mac-6", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_mac_6, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/mac-6\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("mac-7", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_mac_7, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/mac-7\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("bb-8", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_bb_8, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/bb-8\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("bb-9", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_bb_9, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/bb-9\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("bb-a", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_bb_a, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/bb-a\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("bb-b", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_bb_b, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/bb-b\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("bb-c", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_bb_c, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/bb-c\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("bb-d", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_bb_d, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/bb-d\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("bb-e", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_bb_e, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/bb-e\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("bb-f", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_bb_f, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/bb-f\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("rf-a", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_rf_a, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/rf-a\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("rf-b", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_rf_b, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/rf-b\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("cam-1", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_cam_1, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/cam-1\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("cam-2", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_cam_2, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/cam-2\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); + + entry = proc_create_data("cam-3", S_IFREG | S_IRUGO, + rtlpriv->dbg.proc_dir, &file_ops_cam_3, hw); + if (!entry) + RT_TRACE(COMP_INIT, COMP_ERR, + ("Unable to initialize /proc/net/%s/%s/cam-3\n", + rtlpriv->cfg->name, rtlpriv->dbg.proc_name)); +} + +void rtl_proc_remove_one(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if (rtlpriv->dbg.proc_dir) { + remove_proc_entry("mac-0", rtlpriv->dbg.proc_dir); + remove_proc_entry("mac-1", rtlpriv->dbg.proc_dir); + remove_proc_entry("mac-2", rtlpriv->dbg.proc_dir); + remove_proc_entry("mac-3", rtlpriv->dbg.proc_dir); + remove_proc_entry("mac-4", rtlpriv->dbg.proc_dir); + remove_proc_entry("mac-5", rtlpriv->dbg.proc_dir); + remove_proc_entry("mac-6", rtlpriv->dbg.proc_dir); + remove_proc_entry("mac-7", rtlpriv->dbg.proc_dir); + remove_proc_entry("bb-8", rtlpriv->dbg.proc_dir); + remove_proc_entry("bb-9", rtlpriv->dbg.proc_dir); + remove_proc_entry("bb-a", rtlpriv->dbg.proc_dir); + remove_proc_entry("bb-b", rtlpriv->dbg.proc_dir); + remove_proc_entry("bb-c", rtlpriv->dbg.proc_dir); + remove_proc_entry("bb-d", rtlpriv->dbg.proc_dir); + remove_proc_entry("bb-e", rtlpriv->dbg.proc_dir); + remove_proc_entry("bb-f", rtlpriv->dbg.proc_dir); + remove_proc_entry("rf-a", rtlpriv->dbg.proc_dir); + remove_proc_entry("rf-b", rtlpriv->dbg.proc_dir); + remove_proc_entry("cam-1", rtlpriv->dbg.proc_dir); + remove_proc_entry("cam-2", rtlpriv->dbg.proc_dir); + remove_proc_entry("cam-3", rtlpriv->dbg.proc_dir); + + remove_proc_entry(rtlpriv->dbg.proc_name, proc_topdir); + + rtlpriv->dbg.proc_dir = NULL; + } +} + +void rtl_proc_add_topdir(void) +{ + proc_topdir = proc_mkdir("rtlwifi", init_net.proc_net); +} + +void rtl_proc_remove_topdir(void) +{ + if (proc_topdir) + remove_proc_entry("rtlwifi", init_net.proc_net); +} \ No newline at end of file --- linux-3.13.0.orig/drivers/staging/rtl8821ae/debug.h +++ linux-3.13.0/drivers/staging/rtl8821ae/debug.h @@ -0,0 +1,227 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * Tmis program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * Tmis program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * tmis program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * Tme full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL_DEBUG_H__ +#define __RTL_DEBUG_H__ + +/*-------------------------------------------------------------- + Debug level +--------------------------------------------------------------*/ +/* + *Fatal bug. + *For example, Tx/Rx/IO locked up, + *memory access violation, + *resource allocation failed, + *unexpected HW behavior, HW BUG + *and so on. + */ +#define DBG_EMERG 0 + +/* + *Abnormal, rare, or unexpeted cases. + *For example, Packet/IO Ctl canceled, + *device suprisely unremoved and so on. + */ +#define DBG_WARNING 2 + +/* + *Normal case driver developer should + *open, we can see link status like + *assoc/AddBA/DHCP/adapter start and + *so on basic and useful infromations. + */ +#define DBG_DMESG 3 + +/* + *Normal case with useful information + *about current SW or HW state. + *For example, Tx/Rx descriptor to fill, + *Tx/Rx descriptor completed status, + *SW protocol state change, dynamic + *mechanism state change and so on. + */ +#define DBG_LOUD 4 + +/* + *Normal case with detail execution + *flow or information. + */ +#define DBG_TRACE 5 + +/*-------------------------------------------------------------- + Define the rt_trace components +--------------------------------------------------------------*/ +#define COMP_ERR BIT(0) +#define COMP_FW BIT(1) +#define COMP_INIT BIT(2) /*For init/deinit */ +#define COMP_RECV BIT(3) /*For Rx. */ +#define COMP_SEND BIT(4) /*For Tx. */ +#define COMP_MLME BIT(5) /*For MLME. */ +#define COMP_SCAN BIT(6) /*For Scan. */ +#define COMP_INTR BIT(7) /*For interrupt Related. */ +#define COMP_LED BIT(8) /*For LED. */ +#define COMP_SEC BIT(9) /*For sec. */ +#define COMP_BEACON BIT(10) /*For beacon. */ +#define COMP_RATE BIT(11) /*For rate. */ +#define COMP_RXDESC BIT(12) /*For rx desc. */ +#define COMP_DIG BIT(13) /*For DIG */ +#define COMP_TXAGC BIT(14) /*For Tx power */ +#define COMP_HIPWR BIT(15) /*For High Power Mechanism */ +#define COMP_POWER BIT(16) /*For lps/ips/aspm. */ +#define COMP_POWER_TRACKING BIT(17) /*For TX POWER TRACKING */ +#define COMP_BB_POWERSAVING BIT(18) +#define COMP_SWAS BIT(19) /*For SW Antenna Switch */ +#define COMP_RF BIT(20) /*For RF. */ +#define COMP_TURBO BIT(21) /*For EDCA TURBO. */ +#define COMP_RATR BIT(22) +#define COMP_CMD BIT(23) +#define COMP_EFUSE BIT(24) +#define COMP_QOS BIT(25) +#define COMP_MAC80211 BIT(26) +#define COMP_REGD BIT(27) +#define COMP_CHAN BIT(28) +#define COMP_EASY_CONCURRENT BIT(29) +#define COMP_BT_COEXIST BIT(30) +#define COMP_IQK BIT(31) + +/*-------------------------------------------------------------- + Define the rt_print components +--------------------------------------------------------------*/ +/* Define EEPROM and EFUSE check module bit*/ +#define EEPROM_W BIT(0) +#define EFUSE_PG BIT(1) +#define EFUSE_READ_ALL BIT(2) + +/* Define init check for module bit*/ +#define INIT_EEPROM BIT(0) +#define INIT_TxPower BIT(1) +#define INIT_IQK BIT(2) +#define INIT_RF BIT(3) + +/* Define PHY-BB/RF/MAC check module bit */ +#define PHY_BBR BIT(0) +#define PHY_BBW BIT(1) +#define PHY_RFR BIT(2) +#define PHY_RFW BIT(3) +#define PHY_MACR BIT(4) +#define PHY_MACW BIT(5) +#define PHY_ALLR BIT(6) +#define PHY_ALLW BIT(7) +#define PHY_TXPWR BIT(8) +#define PHY_PWRDIFF BIT(9) + +/* Define Dynamic Mechanism check module bit --> FDM */ +#define WA_IOT BIT(0) +#define DM_PWDB BIT(1) +#define DM_MONITOR BIT(2) +#define DM_DIG BIT(3) +#define DM_EDCA_TURBO BIT(4) + +enum dbgp_flag_e { + FQOS = 0, + FTX = 1, + FRX = 2, + FSEC = 3, + FMGNT = 4, + FMLME = 5, + FRESOURCE = 6, + FBEACON = 7, + FISR = 8, + FPHY = 9, + FMP = 10, + FEEPROM = 11, + FPWR = 12, + FDM = 13, + FDBGCtrl = 14, + FC2H = 15, + FBT = 16, + FINIT = 17, + FIOCTL = 18, + DBGP_TYPE_MAX +}; + +#define RT_ASSERT(_exp,fmt) \ + do { \ + if(!(_exp)) { \ + printk(KERN_DEBUG "%s:%s(): ", KBUILD_MODNAME, \ + __func__); \ + printk fmt; \ + } \ + } while(0); + +#define RT_DISP(dbgtype, dbgflag, printstr) + +#define RT_TRACE(comp, level, fmt)\ + do { \ + if(unlikely(((comp) & rtlpriv->dbg.global_debugcomponents) && \ + ((level) <= rtlpriv->dbg.global_debuglevel))) {\ + printk(KERN_DEBUG "%s-%d:%s():<%lx-%x> ", \ + KBUILD_MODNAME, \ + rtlpriv->rtlhal.interfaceindex, __func__, \ + in_interrupt(), in_atomic()); \ + printk fmt; \ + }\ + } while(0); + +#define RTPRINT(rtlpriv, dbgtype, dbgflag, printstr) \ + do { \ + if (unlikely(rtlpriv->dbg.dbgp_type[dbgtype] & dbgflag)) { \ + printk(KERN_DEBUG "%s: ", KBUILD_MODNAME); \ + printk printstr; \ + } \ + } while(0); + +#define RT_PRINT_DATA(rtlpriv, _comp, _level, _titlestring, _hexdata, \ + _hexdatalen) \ + do {\ + if(unlikely(((_comp) & rtlpriv->dbg.global_debugcomponents ) &&\ + (_level <= rtlpriv->dbg.global_debuglevel ))) { \ + int __i; \ + u8* ptr = (u8*)_hexdata; \ + printk(KERN_DEBUG "%s: ", KBUILD_MODNAME); \ + printk(KERN_DEBUG "In process \"%s\" (pid %i):", \ + current->comm, \ + current->pid); \ + printk(_titlestring); \ + for( __i=0; __i<(int)_hexdatalen; __i++ ) { \ + printk("%02X%s", ptr[__i], (((__i + 1) % 4) \ + == 0)?" ":" ");\ + if (((__i + 1) % 16) == 0) \ + printk("\n"); \ + } \ + printk(KERN_DEBUG "\n"); \ + } \ + } while(0); + +void rtl_dbgp_flag_init(struct ieee80211_hw *hw); +void rtl_proc_add_one(struct ieee80211_hw *hw); +void rtl_proc_remove_one(struct ieee80211_hw *hw); +void rtl_proc_add_topdir(void); +void rtl_proc_remove_topdir(void); +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/efuse.c +++ linux-3.13.0/drivers/staging/rtl8821ae/efuse.c @@ -0,0 +1,1285 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * Tmis program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * Tmis program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * tmis program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * Tme full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ +#include "wifi.h" +#include "efuse.h" +#include "btcoexist/halbt_precomp.h" +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +#include +#endif + +static const u8 MAX_PGPKT_SIZE = 9; +static const u8 PGPKT_DATA_SIZE = 8; +static const int EFUSE_MAX_SIZE = 512; + +static const struct efuse_map RTL8712_SDIO_EFUSE_TABLE[] = { + {0, 0, 0, 2}, + {0, 1, 0, 2}, + {0, 2, 0, 2}, + {1, 0, 0, 1}, + {1, 0, 1, 1}, + {1, 1, 0, 1}, + {1, 1, 1, 3}, + {1, 3, 0, 17}, + {3, 3, 1, 48}, + {10, 0, 0, 6}, + {10, 3, 0, 1}, + {10, 3, 1, 1}, + {11, 0, 0, 28} +}; + +static void efuse_shadow_read_1byte(struct ieee80211_hw *hw, u16 offset, + u8 * value); +static void efuse_shadow_read_2byte(struct ieee80211_hw *hw, u16 offset, + u16 * value); +static void efuse_shadow_read_4byte(struct ieee80211_hw *hw, u16 offset, + u32 * value); +static void efuse_shadow_write_1byte(struct ieee80211_hw *hw, u16 offset, + u8 value); +static void efuse_shadow_write_2byte(struct ieee80211_hw *hw, u16 offset, + u16 value); +static void efuse_shadow_write_4byte(struct ieee80211_hw *hw, u16 offset, + u32 value); +static int efuse_one_byte_write(struct ieee80211_hw *hw, u16 addr, + u8 data); +static void efuse_read_all_map(struct ieee80211_hw *hw, u8 * efuse); +static int efuse_pg_packet_read(struct ieee80211_hw *hw, u8 offset, + u8 *data); +static int efuse_pg_packet_write(struct ieee80211_hw *hw, u8 offset, + u8 word_en, u8 * data); +static void efuse_word_enable_data_read(u8 word_en, u8 * sourdata, + u8 * targetdata); +static u8 efuse_word_enable_data_write(struct ieee80211_hw *hw, + u16 efuse_addr, u8 word_en, u8 * data); +static void efuse_power_switch(struct ieee80211_hw *hw, u8 bwrite, + u8 pwrstate); +static u16 efuse_get_current_size(struct ieee80211_hw *hw); +static u8 efuse_calculate_word_cnts(u8 word_en); + +void efuse_initialize(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 bytetemp; + u8 temp; + + bytetemp = rtl_read_byte(rtlpriv, rtlpriv->cfg->maps[SYS_FUNC_EN] + 1); + temp = bytetemp | 0x20; + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[SYS_FUNC_EN] + 1, temp); + + bytetemp = rtl_read_byte(rtlpriv, rtlpriv->cfg->maps[SYS_ISO_CTRL] + 1); + temp = bytetemp & 0xFE; + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[SYS_ISO_CTRL] + 1, temp); + + bytetemp = rtl_read_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_TEST] + 3); + temp = bytetemp | 0x80; + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_TEST] + 3, temp); + + rtl_write_byte(rtlpriv, 0x2F8, 0x3); + + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 3, 0x72); + +} + +u8 efuse_read_1byte(struct ieee80211_hw *hw, u16 address) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 data; + u8 bytetemp; + u8 temp; + u32 k = 0; + const u32 efuse_real_content_len = + rtlpriv->cfg->maps[EFUSE_REAL_CONTENT_SIZE]; + + if (address < efuse_real_content_len) { + temp = address & 0xFF; + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 1, + temp); + bytetemp = rtl_read_byte(rtlpriv, + rtlpriv->cfg->maps[EFUSE_CTRL] + 2); + temp = ((address >> 8) & 0x03) | (bytetemp & 0xFC); + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 2, + temp); + + bytetemp = rtl_read_byte(rtlpriv, + rtlpriv->cfg->maps[EFUSE_CTRL] + 3); + temp = bytetemp & 0x7F; + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 3, + temp); + + bytetemp = rtl_read_byte(rtlpriv, + rtlpriv->cfg->maps[EFUSE_CTRL] + 3); + while (!(bytetemp & 0x80)) { + bytetemp = rtl_read_byte(rtlpriv, + rtlpriv->cfg-> + maps[EFUSE_CTRL] + 3); + k++; + if (k == 1000) { + k = 0; + break; + } + } + data = rtl_read_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL]); + return data; + } else + return 0xFF; + +} +//EXPORT_SYMBOL(efuse_read_1byte); + +void efuse_write_1byte(struct ieee80211_hw *hw, u16 address, u8 value) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 bytetemp; + u8 temp; + u32 k = 0; + const u32 efuse_real_content_len = + rtlpriv->cfg->maps[EFUSE_REAL_CONTENT_SIZE]; + + RT_TRACE(COMP_EFUSE, DBG_LOUD, + ("Addr=%x Data =%x\n", address, value)); + + if (address < efuse_real_content_len) { + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL], value); + + temp = address & 0xFF; + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 1, + temp); + bytetemp = rtl_read_byte(rtlpriv, + rtlpriv->cfg->maps[EFUSE_CTRL] + 2); + + temp = ((address >> 8) & 0x03) | (bytetemp & 0xFC); + rtl_write_byte(rtlpriv, + rtlpriv->cfg->maps[EFUSE_CTRL] + 2, temp); + + bytetemp = rtl_read_byte(rtlpriv, + rtlpriv->cfg->maps[EFUSE_CTRL] + 3); + temp = bytetemp | 0x80; + rtl_write_byte(rtlpriv, + rtlpriv->cfg->maps[EFUSE_CTRL] + 3, temp); + + bytetemp = rtl_read_byte(rtlpriv, + rtlpriv->cfg->maps[EFUSE_CTRL] + 3); + + while (bytetemp & 0x80) { + bytetemp = rtl_read_byte(rtlpriv, + rtlpriv->cfg-> + maps[EFUSE_CTRL] + 3); + k++; + if (k == 100) { + k = 0; + break; + } + } + } + +} + +void read_efuse_byte(struct ieee80211_hw *hw, u16 _offset, u8 *pbuf) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 value32; + u8 readbyte; + u16 retry; + + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 1, + (_offset & 0xff)); + readbyte = rtl_read_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 2); + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 2, + ((_offset >> 8) & 0x03) | (readbyte & 0xfc)); + + readbyte = rtl_read_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 3); + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 3, + (readbyte & 0x7f)); + + retry = 0; + value32 = rtl_read_dword(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL]); + while (!(((value32 >> 24) & 0xff) & 0x80) && (retry < 10000)) { + value32 = rtl_read_dword(rtlpriv, + rtlpriv->cfg->maps[EFUSE_CTRL]); + retry++; + } + + udelay(50); + value32 = rtl_read_dword(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL]); + + *pbuf = (u8) (value32 & 0xff); +} + +void read_efuse(struct ieee80211_hw *hw, u16 _offset, u16 _size_byte, u8 *pbuf) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + u8 efuse_tbl[rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE]]; + u8 rtemp8[1]; + u16 efuse_addr = 0; + u8 offset, wren; + u8 u1temp = 0; + u16 i; + u16 j; + const u16 efuse_max_section = + rtlpriv->cfg->maps[EFUSE_MAX_SECTION_MAP]; + const u32 efuse_real_content_len = + rtlpriv->cfg->maps[EFUSE_REAL_CONTENT_SIZE]; + u16 efuse_word[efuse_max_section][EFUSE_MAX_WORD_UNIT]; + u16 efuse_utilized = 0; + u8 efuse_usage; + + if ((_offset + _size_byte) > rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE]) { + RT_TRACE(COMP_EFUSE, DBG_LOUD, + ("read_efuse(): Invalid offset(%#x) with read " + "bytes(%#x)!!\n", _offset, _size_byte)); + return; + } + + for (i = 0; i < efuse_max_section; i++) + for (j = 0; j < EFUSE_MAX_WORD_UNIT; j++) + efuse_word[i][j] = 0xFFFF; + + read_efuse_byte(hw, efuse_addr, rtemp8); + if (*rtemp8 != 0xFF) { + efuse_utilized++; + RTPRINT(rtlpriv, FEEPROM, EFUSE_READ_ALL, + ("Addr=%d\n", efuse_addr)); + efuse_addr++; + } + + while ((*rtemp8 != 0xFF) && (efuse_addr < efuse_real_content_len)) { + /* Check PG header for section num. */ + if((*rtemp8 & 0x1F ) == 0x0F) {/* extended header */ + u1temp =( (*rtemp8 & 0xE0) >> 5); + read_efuse_byte(hw, efuse_addr, rtemp8); + + if((*rtemp8 & 0x0F) == 0x0F) { + efuse_addr++; + read_efuse_byte(hw, efuse_addr, rtemp8); + + if (*rtemp8 != 0xFF && + (efuse_addr < efuse_real_content_len)) { + efuse_addr++; + } + continue; + } else { + offset = ((*rtemp8 & 0xF0) >> 1) | u1temp; + wren = (*rtemp8 & 0x0F); + efuse_addr++; + } + } else { + offset = ((*rtemp8 >> 4) & 0x0f); + wren = (*rtemp8 & 0x0f); + } + + if (offset < efuse_max_section) { + RTPRINT(rtlpriv, FEEPROM, EFUSE_READ_ALL, + ("offset-%d Worden=%x\n", offset, wren)); + + for (i = 0; i < EFUSE_MAX_WORD_UNIT; i++) { + if (!(wren & 0x01)) { + RTPRINT(rtlpriv, FEEPROM, + EFUSE_READ_ALL, ("Addr=%d\n", + efuse_addr)); + + read_efuse_byte(hw, efuse_addr, rtemp8); + efuse_addr++; + efuse_utilized++; + efuse_word[offset][i] = (*rtemp8 & + 0xff); + + if (efuse_addr >= + efuse_real_content_len) + break; + + RTPRINT(rtlpriv, FEEPROM, + EFUSE_READ_ALL, ("Addr=%d\n", + efuse_addr)); + + read_efuse_byte(hw, efuse_addr, rtemp8); + efuse_addr++; + efuse_utilized++; + efuse_word[offset][i] |= + (((u16) * rtemp8 << 8) & 0xff00); + + if (efuse_addr >= efuse_real_content_len) + break; + } + + wren >>= 1; + } + } + + RTPRINT(rtlpriv, FEEPROM, EFUSE_READ_ALL, + ("Addr=%d\n", efuse_addr)); + read_efuse_byte(hw, efuse_addr, rtemp8); + if (*rtemp8 != 0xFF && (efuse_addr < efuse_real_content_len)) { + efuse_utilized++; + efuse_addr++; + } + } + + for (i = 0; i < efuse_max_section; i++) { + for (j = 0; j < EFUSE_MAX_WORD_UNIT; j++) { + efuse_tbl[(i * 8) + (j * 2)] = + (efuse_word[i][j] & 0xff); + efuse_tbl[(i * 8) + ((j * 2) + 1)] = + ((efuse_word[i][j] >> 8) & 0xff); + } + } + + for (i = 0; i < _size_byte; i++) + pbuf[i] = efuse_tbl[_offset + i]; + + rtlefuse->efuse_usedbytes = efuse_utilized; + efuse_usage = (u8) ((efuse_utilized * 100) / efuse_real_content_len); + rtlefuse->efuse_usedpercentage = efuse_usage; + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_EFUSE_BYTES, + (u8 *) & efuse_utilized); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_EFUSE_USAGE, + (u8 *) & efuse_usage); +} + +bool efuse_shadow_update_chk(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + u8 section_idx, i, Base; + u16 words_need = 0, hdr_num = 0, totalbytes, efuse_used; + bool bwordchanged, bresult = true; + + for (section_idx = 0; section_idx < 16; section_idx++) { + Base = section_idx * 8; + bwordchanged = false; + + for (i = 0; i < 8; i = i + 2) { + if ((rtlefuse->efuse_map[EFUSE_INIT_MAP][Base + i] != + rtlefuse->efuse_map[EFUSE_MODIFY_MAP][Base + i]) || + (rtlefuse->efuse_map[EFUSE_INIT_MAP][Base + i + 1] != + rtlefuse->efuse_map[EFUSE_MODIFY_MAP][Base + i + + 1])) { + words_need++; + bwordchanged = true; + } + } + + if (bwordchanged == true) + hdr_num++; + } + + totalbytes = hdr_num + words_need * 2; + efuse_used = rtlefuse->efuse_usedbytes; + + if ((totalbytes + efuse_used) >= (EFUSE_MAX_SIZE - + rtlpriv->cfg->maps[EFUSE_OOB_PROTECT_BYTES_LEN])) + bresult = false; + + RT_TRACE(COMP_EFUSE, DBG_LOUD, + ("efuse_shadow_update_chk(): totalbytes(%#x), " + "hdr_num(%#x), words_need(%#x), efuse_used(%d)\n", + totalbytes, hdr_num, words_need, efuse_used)); + + return bresult; +} + +void efuse_shadow_read(struct ieee80211_hw *hw, u8 type, + u16 offset, u32 *value) +{ + if (type == 1) + efuse_shadow_read_1byte(hw, offset, (u8 *) value); + else if (type == 2) + efuse_shadow_read_2byte(hw, offset, (u16 *) value); + else if (type == 4) + efuse_shadow_read_4byte(hw, offset, (u32 *) value); + +} + +void efuse_shadow_write(struct ieee80211_hw *hw, u8 type, u16 offset, + u32 value) +{ + if (type == 1) + efuse_shadow_write_1byte(hw, offset, (u8) value); + else if (type == 2) + efuse_shadow_write_2byte(hw, offset, (u16) value); + else if (type == 4) + efuse_shadow_write_4byte(hw, offset, (u32) value); + +} + +bool efuse_shadow_update(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + u16 i, offset, base; + u8 word_en = 0x0F; + u8 first_pg = false; + + RT_TRACE(COMP_EFUSE, DBG_LOUD, ("\n")); + + if (!efuse_shadow_update_chk(hw)) { + efuse_read_all_map(hw, &rtlefuse->efuse_map[EFUSE_INIT_MAP][0]); + memcpy(&rtlefuse->efuse_map[EFUSE_MODIFY_MAP][0], + &rtlefuse->efuse_map[EFUSE_INIT_MAP][0], + rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE]); + + RT_TRACE(COMP_EFUSE, DBG_LOUD, + ("efuse out of capacity!!\n")); + return false; + } + efuse_power_switch(hw, true, true); + + for (offset = 0; offset < 16; offset++) { + + word_en = 0x0F; + base = offset * 8; + + for (i = 0; i < 8; i++) { + if (first_pg == true) { + + word_en &= ~(BIT(i / 2)); + + rtlefuse->efuse_map[EFUSE_INIT_MAP][base + i] = + rtlefuse->efuse_map[EFUSE_MODIFY_MAP][base + i]; + } else { + + if (rtlefuse->efuse_map[EFUSE_INIT_MAP][base + i] != + rtlefuse->efuse_map[EFUSE_MODIFY_MAP][base + i]) { + word_en &= ~(BIT(i / 2)); + + rtlefuse->efuse_map[EFUSE_INIT_MAP][base + i] = + rtlefuse->efuse_map[EFUSE_MODIFY_MAP][base + i]; + } + } + } + + if (word_en != 0x0F) { + u8 tmpdata[8]; + memcpy(tmpdata, (&rtlefuse->efuse_map[EFUSE_MODIFY_MAP][base]), 8); + RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_LOUD, + ("U-efuse\n"), tmpdata, 8); + + if (!efuse_pg_packet_write(hw, (u8) offset, word_en, + tmpdata)) { + RT_TRACE(COMP_ERR, DBG_WARNING, + ("PG section(%#x) fail!!\n", offset)); + break; + } + } + + } + + efuse_power_switch(hw, true, false); + efuse_read_all_map(hw, &rtlefuse->efuse_map[EFUSE_INIT_MAP][0]); + + memcpy(&rtlefuse->efuse_map[EFUSE_MODIFY_MAP][0], + &rtlefuse->efuse_map[EFUSE_INIT_MAP][0], + rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE]); + + RT_TRACE(COMP_EFUSE, DBG_LOUD, ("\n")); + return true; +} + +void rtl_efuse_shadow_map_update(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + + if (rtlefuse->autoload_failflag == true) { + memset((&rtlefuse->efuse_map[EFUSE_INIT_MAP][0]), + 0xFF, rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE]); + } else { + efuse_read_all_map(hw, &rtlefuse->efuse_map[EFUSE_INIT_MAP][0]); + } + + memcpy(&rtlefuse->efuse_map[EFUSE_MODIFY_MAP][0], + &rtlefuse->efuse_map[EFUSE_INIT_MAP][0], + rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE]); + +} +//EXPORT_SYMBOL(rtl_efuse_shadow_map_update); + +void efuse_force_write_vendor_Id(struct ieee80211_hw *hw) +{ + u8 tmpdata[8] = { 0xFF, 0xFF, 0xEC, 0x10, 0xFF, 0xFF, 0xFF, 0xFF }; + + efuse_power_switch(hw, true, true); + + efuse_pg_packet_write(hw, 1, 0xD, tmpdata); + + efuse_power_switch(hw, true, false); + +} + +void efuse_re_pg_section(struct ieee80211_hw *hw, u8 section_idx) +{ +} + +static void efuse_shadow_read_1byte(struct ieee80211_hw *hw, + u16 offset, u8 *value) +{ + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + *value = rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset]; +} + +static void efuse_shadow_read_2byte(struct ieee80211_hw *hw, + u16 offset, u16 *value) +{ + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + + *value = rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset]; + *value |= rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset + 1] << 8; + +} + +static void efuse_shadow_read_4byte(struct ieee80211_hw *hw, + u16 offset, u32 *value) +{ + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + + *value = rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset]; + *value |= rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset + 1] << 8; + *value |= rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset + 2] << 16; + *value |= rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset + 3] << 24; +} + +static void efuse_shadow_write_1byte(struct ieee80211_hw *hw, + u16 offset, u8 value) +{ + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + + rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset] = value; +} + +static void efuse_shadow_write_2byte(struct ieee80211_hw *hw, + u16 offset, u16 value) +{ + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + + rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset] = value & 0x00FF; + rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset + 1] = value >> 8; + +} + +static void efuse_shadow_write_4byte(struct ieee80211_hw *hw, + u16 offset, u32 value) +{ + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + + rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset] = + (u8) (value & 0x000000FF); + rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset + 1] = + (u8) ((value >> 8) & 0x0000FF); + rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset + 2] = + (u8) ((value >> 16) & 0x00FF); + rtlefuse->efuse_map[EFUSE_MODIFY_MAP][offset + 3] = + (u8) ((value >> 24) & 0xFF); + +} + +int efuse_one_byte_read(struct ieee80211_hw *hw, u16 addr, u8 *data) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 tmpidx = 0; + int bresult; + + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 1, + (u8) (addr & 0xff)); + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 2, + ((u8) ((addr >> 8) & 0x03)) | + (rtl_read_byte(rtlpriv, + rtlpriv->cfg->maps[EFUSE_CTRL] + 2) & + 0xFC)); + + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 3, 0x72); + + while (!(0x80 & rtl_read_byte(rtlpriv, + rtlpriv->cfg->maps[EFUSE_CTRL] + 3)) + && (tmpidx < 100)) { + tmpidx++; + } + + if (tmpidx < 100) { + *data = rtl_read_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL]); + bresult = true; + } else { + *data = 0xff; + bresult = false; + } + return bresult; +} +//EXPORT_SYMBOL(efuse_one_byte_read); + +static int efuse_one_byte_write(struct ieee80211_hw *hw, u16 addr, u8 data) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 tmpidx = 0; + bool bresult; + + RT_TRACE(COMP_EFUSE, DBG_LOUD, + ("Addr = %x Data=%x\n", addr, data)); + + rtl_write_byte(rtlpriv, + rtlpriv->cfg->maps[EFUSE_CTRL] + 1, (u8) (addr & 0xff)); + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 2, + (rtl_read_byte(rtlpriv, + rtlpriv->cfg->maps[EFUSE_CTRL] + + 2) & 0xFC) | (u8) ((addr >> 8) & 0x03)); + + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL], data); + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CTRL] + 3, 0xF2); + + while ((0x80 & rtl_read_byte(rtlpriv, + rtlpriv->cfg->maps[EFUSE_CTRL] + 3)) + && (tmpidx < 100)) { + tmpidx++; + } + + if (tmpidx < 100) + bresult = true; + else + bresult = false; + + return bresult; +} + +static void efuse_read_all_map(struct ieee80211_hw *hw, u8 * efuse) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + efuse_power_switch(hw, false, true); + read_efuse(hw, 0, rtlpriv->cfg->maps[EFUSE_HWSET_MAX_SIZE], efuse); + efuse_power_switch(hw, false, false); +} + +static void efuse_read_data_case1(struct ieee80211_hw *hw, u16 *efuse_addr, + u8 efuse_data, u8 offset, u8 *tmpdata, + u8 *readstate) +{ + bool bdataempty = true; + u8 hoffset; + u8 tmpidx; + u8 hworden; + u8 word_cnts; + + hoffset = (efuse_data >> 4) & 0x0F; + hworden = efuse_data & 0x0F; + word_cnts = efuse_calculate_word_cnts(hworden); + + if (hoffset == offset) { + for (tmpidx = 0; tmpidx < word_cnts * 2; tmpidx++) { + if (efuse_one_byte_read(hw, *efuse_addr + 1 + tmpidx, + &efuse_data)) { + tmpdata[tmpidx] = efuse_data; + if (efuse_data != 0xff) + bdataempty = true; + } + } + + if (bdataempty == true) { + *readstate = PG_STATE_DATA; + } else { + *efuse_addr = *efuse_addr + (word_cnts * 2) + 1; + *readstate = PG_STATE_HEADER; + } + + } else { + *efuse_addr = *efuse_addr + (word_cnts * 2) + 1; + *readstate = PG_STATE_HEADER; + } +} + +static int efuse_pg_packet_read(struct ieee80211_hw *hw, u8 offset, u8 *data) +{ + u8 readstate = PG_STATE_HEADER; + + bool bcontinual = true; + + u8 efuse_data, word_cnts = 0; + u16 efuse_addr = 0; + u8 hworden = 0; + u8 tmpdata[8]; + + if (data == NULL) + return false; + if (offset > 15) + return false; + + memset(data, 0xff, PGPKT_DATA_SIZE * sizeof(u8)); + memset(tmpdata, 0xff, PGPKT_DATA_SIZE * sizeof(u8)); + + while (bcontinual && (efuse_addr < EFUSE_MAX_SIZE)) { + if (readstate & PG_STATE_HEADER) { + if (efuse_one_byte_read(hw, efuse_addr, &efuse_data) + && (efuse_data != 0xFF)) + efuse_read_data_case1(hw, &efuse_addr, efuse_data, offset, + tmpdata, &readstate); + else + bcontinual = false; + } else if (readstate & PG_STATE_DATA) { + efuse_word_enable_data_read(hworden, tmpdata, data); + efuse_addr = efuse_addr + (word_cnts * 2) + 1; + readstate = PG_STATE_HEADER; + } + + } + + if ((data[0] == 0xff) && (data[1] == 0xff) && + (data[2] == 0xff) && (data[3] == 0xff) && + (data[4] == 0xff) && (data[5] == 0xff) && + (data[6] == 0xff) && (data[7] == 0xff)) + return false; + else + return true; + +} + +static void efuse_write_data_case1(struct ieee80211_hw *hw, u16 *efuse_addr, + u8 efuse_data, u8 offset, int *bcontinual, + u8 *write_state, struct pgpkt_struct *target_pkt, + int *repeat_times, int *bresult, u8 word_en) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct pgpkt_struct tmp_pkt; + int bdataempty = true; + u8 originaldata[8 * sizeof(u8)]; + u8 badworden = 0x0F; + u8 match_word_en, tmp_word_en; + u8 tmpindex; + u8 tmp_header = efuse_data; + u8 tmp_word_cnts; + + tmp_pkt.offset = (tmp_header >> 4) & 0x0F; + tmp_pkt.word_en = tmp_header & 0x0F; + tmp_word_cnts = efuse_calculate_word_cnts(tmp_pkt.word_en); + + if (tmp_pkt.offset != target_pkt->offset) { + *efuse_addr = *efuse_addr + (tmp_word_cnts * 2) + 1; + *write_state = PG_STATE_HEADER; + } else { + for (tmpindex = 0; tmpindex < (tmp_word_cnts * 2); tmpindex++) { + if (efuse_one_byte_read(hw, + (*efuse_addr + 1 + tmpindex), + &efuse_data) && (efuse_data != 0xFF)) + bdataempty = false; + } + + if (bdataempty == false) { + *efuse_addr = *efuse_addr + (tmp_word_cnts * 2) + 1; + *write_state = PG_STATE_HEADER; + } else { + match_word_en = 0x0F; + if (!((target_pkt->word_en & BIT(0)) | + (tmp_pkt.word_en & BIT(0)))) + match_word_en &= (~BIT(0)); + + if (!((target_pkt->word_en & BIT(1)) | + (tmp_pkt.word_en & BIT(1)))) + match_word_en &= (~BIT(1)); + + if (!((target_pkt->word_en & BIT(2)) | + (tmp_pkt.word_en & BIT(2)))) + match_word_en &= (~BIT(2)); + + if (!((target_pkt->word_en & BIT(3)) | + (tmp_pkt.word_en & BIT(3)))) + match_word_en &= (~BIT(3)); + + if ((match_word_en & 0x0F) != 0x0F) { + badworden = efuse_word_enable_data_write(hw, + *efuse_addr + 1, + tmp_pkt.word_en, + target_pkt->data); + + if (0x0F != (badworden & 0x0F)) { + u8 reorg_offset = offset; + u8 reorg_worden = badworden; + efuse_pg_packet_write(hw, reorg_offset, + reorg_worden, + originaldata); + } + + tmp_word_en = 0x0F; + if ((target_pkt->word_en & BIT(0)) ^ + (match_word_en & BIT(0))) + tmp_word_en &= (~BIT(0)); + + if ((target_pkt->word_en & BIT(1)) ^ + (match_word_en & BIT(1))) + tmp_word_en &= (~BIT(1)); + + if ((target_pkt->word_en & BIT(2)) ^ + (match_word_en & BIT(2))) + tmp_word_en &= (~BIT(2)); + + if ((target_pkt->word_en & BIT(3)) ^ + (match_word_en & BIT(3))) + tmp_word_en &= (~BIT(3)); + + if ((tmp_word_en & 0x0F) != 0x0F) { + *efuse_addr = efuse_get_current_size(hw); + target_pkt->offset = offset; + target_pkt->word_en = tmp_word_en; + } else { + *bcontinual = false; + } + *write_state = PG_STATE_HEADER; + *repeat_times += 1; + if (*repeat_times > EFUSE_REPEAT_THRESHOLD_) { + *bcontinual = false; + *bresult = false; + } + } else { + *efuse_addr += (2 * tmp_word_cnts) + 1; + target_pkt->offset = offset; + target_pkt->word_en = word_en; + *write_state = PG_STATE_HEADER; + } + } + } + RTPRINT(rtlpriv, FEEPROM, EFUSE_PG, ("efuse PG_STATE_HEADER-1\n")); +} + +static void efuse_write_data_case2(struct ieee80211_hw *hw, u16 *efuse_addr, + int *bcontinual, u8 *write_state, + struct pgpkt_struct target_pkt, + int *repeat_times, int *bresult) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct pgpkt_struct tmp_pkt; + u8 pg_header; + u8 tmp_header; + u8 originaldata[8 * sizeof(u8)]; + u8 tmp_word_cnts; + u8 badworden = 0x0F; + + pg_header = ((target_pkt.offset << 4) & 0xf0) | target_pkt.word_en; + efuse_one_byte_write(hw, *efuse_addr, pg_header); + efuse_one_byte_read(hw, *efuse_addr, &tmp_header); + + if (tmp_header == pg_header) { + *write_state = PG_STATE_DATA; + } else if (tmp_header == 0xFF) { + *write_state = PG_STATE_HEADER; + *repeat_times += 1; + if (*repeat_times > EFUSE_REPEAT_THRESHOLD_) { + *bcontinual = false; + *bresult = false; + } + } else { + tmp_pkt.offset = (tmp_header >> 4) & 0x0F; + tmp_pkt.word_en = tmp_header & 0x0F; + + tmp_word_cnts = efuse_calculate_word_cnts(tmp_pkt.word_en); + + memset(originaldata, 0xff, 8 * sizeof(u8)); + + if (efuse_pg_packet_read(hw, tmp_pkt.offset, originaldata)) { + badworden = efuse_word_enable_data_write(hw, + *efuse_addr + 1, + tmp_pkt.word_en, + originaldata); + + if (0x0F != (badworden & 0x0F)) { + u8 reorg_offset = tmp_pkt.offset; + u8 reorg_worden = badworden; + efuse_pg_packet_write(hw, reorg_offset, + reorg_worden, + originaldata); + *efuse_addr = efuse_get_current_size(hw); + } else { + *efuse_addr = *efuse_addr + + (tmp_word_cnts * 2) + 1; + } + } else { + *efuse_addr = *efuse_addr + (tmp_word_cnts * 2) + 1; + } + + *write_state = PG_STATE_HEADER; + *repeat_times += 1; + if (*repeat_times > EFUSE_REPEAT_THRESHOLD_) { + *bcontinual = false; + *bresult = false; + } + + RTPRINT(rtlpriv, FEEPROM, EFUSE_PG, + ("efuse PG_STATE_HEADER-2\n")); + } +} + +static int efuse_pg_packet_write(struct ieee80211_hw *hw, + u8 offset, u8 word_en, u8 *data) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct pgpkt_struct target_pkt; + u8 write_state = PG_STATE_HEADER; + int bcontinual = true, bdataempty = true, bresult = true; + u16 efuse_addr = 0; + u8 efuse_data; + u8 target_word_cnts = 0; + u8 badworden = 0x0F; + static int repeat_times = 0; + + if (efuse_get_current_size(hw) >= (EFUSE_MAX_SIZE - + rtlpriv->cfg->maps[EFUSE_OOB_PROTECT_BYTES_LEN])) { + RTPRINT(rtlpriv, FEEPROM, EFUSE_PG, + ("efuse_pg_packet_write error \n")); + return false; + } + + target_pkt.offset = offset; + target_pkt.word_en = word_en; + + memset(target_pkt.data, 0xFF, 8 * sizeof(u8)); + + efuse_word_enable_data_read(word_en, data, target_pkt.data); + target_word_cnts = efuse_calculate_word_cnts(target_pkt.word_en); + + RTPRINT(rtlpriv, FEEPROM, EFUSE_PG, ("efuse Power ON\n")); + + while (bcontinual && (efuse_addr < (EFUSE_MAX_SIZE - + rtlpriv->cfg->maps[EFUSE_OOB_PROTECT_BYTES_LEN]))) { + + if (write_state == PG_STATE_HEADER) { + bdataempty = true; + badworden = 0x0F; + RTPRINT(rtlpriv, FEEPROM, EFUSE_PG, + ("efuse PG_STATE_HEADER\n")); + + if (efuse_one_byte_read(hw, efuse_addr, &efuse_data) && + (efuse_data != 0xFF)) + efuse_write_data_case1(hw, &efuse_addr, + efuse_data, offset, + &bcontinual, + &write_state, + &target_pkt, + &repeat_times, &bresult, + word_en); + else + efuse_write_data_case2(hw, &efuse_addr, + &bcontinual, + &write_state, + target_pkt, + &repeat_times, + &bresult); + + } else if (write_state == PG_STATE_DATA) { + RTPRINT(rtlpriv, FEEPROM, EFUSE_PG, + ("efuse PG_STATE_DATA\n")); + badworden = 0x0f; + badworden = + efuse_word_enable_data_write(hw, efuse_addr + 1, + target_pkt.word_en, + target_pkt.data); + + if ((badworden & 0x0F) == 0x0F) { + bcontinual = false; + } else { + efuse_addr = + efuse_addr + (2 * target_word_cnts) + 1; + + target_pkt.offset = offset; + target_pkt.word_en = badworden; + target_word_cnts = + efuse_calculate_word_cnts(target_pkt. + word_en); + write_state = PG_STATE_HEADER; + repeat_times++; + if (repeat_times > EFUSE_REPEAT_THRESHOLD_) { + bcontinual = false; + bresult = false; + } + RTPRINT(rtlpriv, FEEPROM, EFUSE_PG, + ("efuse PG_STATE_HEADER-3\n")); + } + } + } + + if (efuse_addr >= (EFUSE_MAX_SIZE - + rtlpriv->cfg->maps[EFUSE_OOB_PROTECT_BYTES_LEN])) { + RT_TRACE(COMP_EFUSE, DBG_LOUD, + ("efuse_addr(%#x) Out of size!!\n", efuse_addr)); + } + + return true; +} + +static void efuse_word_enable_data_read(u8 word_en, u8 * sourdata, + u8 *targetdata) +{ + if (!(word_en & BIT(0))) { + targetdata[0] = sourdata[0]; + targetdata[1] = sourdata[1]; + } + + if (!(word_en & BIT(1))) { + targetdata[2] = sourdata[2]; + targetdata[3] = sourdata[3]; + } + + if (!(word_en & BIT(2))) { + targetdata[4] = sourdata[4]; + targetdata[5] = sourdata[5]; + } + + if (!(word_en & BIT(3))) { + targetdata[6] = sourdata[6]; + targetdata[7] = sourdata[7]; + } +} + +static u8 efuse_word_enable_data_write(struct ieee80211_hw *hw, + u16 efuse_addr, u8 word_en, u8 *data) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u16 tmpaddr; + u16 start_addr = efuse_addr; + u8 badworden = 0x0F; + u8 tmpdata[8]; + + memset(tmpdata, 0xff, PGPKT_DATA_SIZE); + RT_TRACE(COMP_EFUSE, DBG_LOUD, + ("word_en = %x efuse_addr=%x\n", word_en, efuse_addr)); + + if (!(word_en & BIT(0))) { + tmpaddr = start_addr; + efuse_one_byte_write(hw, start_addr++, data[0]); + efuse_one_byte_write(hw, start_addr++, data[1]); + + efuse_one_byte_read(hw, tmpaddr, &tmpdata[0]); + efuse_one_byte_read(hw, tmpaddr + 1, &tmpdata[1]); + if ((data[0] != tmpdata[0]) || (data[1] != tmpdata[1])) + badworden &= (~BIT(0)); + } + + if (!(word_en & BIT(1))) { + tmpaddr = start_addr; + efuse_one_byte_write(hw, start_addr++, data[2]); + efuse_one_byte_write(hw, start_addr++, data[3]); + + efuse_one_byte_read(hw, tmpaddr, &tmpdata[2]); + efuse_one_byte_read(hw, tmpaddr + 1, &tmpdata[3]); + if ((data[2] != tmpdata[2]) || (data[3] != tmpdata[3])) + badworden &= (~BIT(1)); + } + + if (!(word_en & BIT(2))) { + tmpaddr = start_addr; + efuse_one_byte_write(hw, start_addr++, data[4]); + efuse_one_byte_write(hw, start_addr++, data[5]); + + efuse_one_byte_read(hw, tmpaddr, &tmpdata[4]); + efuse_one_byte_read(hw, tmpaddr + 1, &tmpdata[5]); + if ((data[4] != tmpdata[4]) || (data[5] != tmpdata[5])) + badworden &= (~BIT(2)); + } + + if (!(word_en & BIT(3))) { + tmpaddr = start_addr; + efuse_one_byte_write(hw, start_addr++, data[6]); + efuse_one_byte_write(hw, start_addr++, data[7]); + + efuse_one_byte_read(hw, tmpaddr, &tmpdata[6]); + efuse_one_byte_read(hw, tmpaddr + 1, &tmpdata[7]); + if ((data[6] != tmpdata[6]) || (data[7] != tmpdata[7])) + badworden &= (~BIT(3)); + } + + return badworden; +} + +static void efuse_power_switch(struct ieee80211_hw *hw, u8 bwrite, u8 pwrstate) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 tempval; + u16 tmpV16; + + if(rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + { + if (pwrstate == true) + { + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_ACCESS], 0x69); + + // 1.2V Power: From VDDON with Power Cut(0x0000h[15]), defualt valid + tmpV16 = rtl_read_word(rtlpriv, + rtlpriv->cfg->maps[SYS_ISO_CTRL]); + + printk("SYS_ISO_CTRL=%04x.\n",tmpV16); + if( ! (tmpV16 & PWC_EV12V ) ){ + tmpV16 |= PWC_EV12V ; + //PlatformEFIOWrite2Byte(pAdapter,REG_SYS_ISO_CTRL,tmpV16); + } + // Reset: 0x0000h[28], default valid + tmpV16 = rtl_read_word(rtlpriv, rtlpriv->cfg->maps[SYS_FUNC_EN]); + printk("SYS_FUNC_EN=%04x.\n",tmpV16); + if( !(tmpV16 & FEN_ELDR) ){ + tmpV16 |= FEN_ELDR ; + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[SYS_FUNC_EN], tmpV16); + } + + // Clock: Gated(0x0008h[5]) 8M(0x0008h[1]) clock from ANA, default valid + tmpV16 = rtl_read_word(rtlpriv, rtlpriv->cfg->maps[SYS_CLK] ); + printk("SYS_CLK=%04x.\n",tmpV16); + if( (!(tmpV16 & LOADER_CLK_EN) ) ||(!(tmpV16 & ANA8M) ) ) + { + tmpV16 |= (LOADER_CLK_EN |ANA8M ) ; + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[SYS_CLK], tmpV16); + } + + if(bwrite == true) + { + // Enable LDO 2.5V before read/write action + tempval = rtl_read_word(rtlpriv, rtlpriv->cfg->maps[EFUSE_TEST] + 3); + printk("EFUSE_TEST=%04x.\n",tmpV16); + tempval &= ~(BIT(3) | BIT(4) |BIT(5) | BIT(6)); + tempval |= (VOLTAGE_V25 << 3); + tempval |= BIT(7); + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_TEST] + 3, tempval); + } + } + else + { + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_ACCESS], 0x00); + if(bwrite == true){ + // Disable LDO 2.5V after read/write action + tempval = rtl_read_word(rtlpriv, rtlpriv->cfg->maps[EFUSE_TEST] + 3); + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_TEST] + 3, (tempval & 0x7F)); + } + } + } + else + { + if (pwrstate == true && (rtlhal->hw_type != + HARDWARE_TYPE_RTL8192SE)) { + + if(rtlhal->hw_type == HARDWARE_TYPE_RTL8188EE) + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_ACCESS], + 0x69); + + tmpV16 = rtl_read_word(rtlpriv, + rtlpriv->cfg->maps[SYS_ISO_CTRL]); + if (!(tmpV16 & rtlpriv->cfg->maps[EFUSE_PWC_EV12V])) { + tmpV16 |= rtlpriv->cfg->maps[EFUSE_PWC_EV12V]; + rtl_write_word(rtlpriv, + rtlpriv->cfg->maps[SYS_ISO_CTRL], + tmpV16); + } + + tmpV16 = rtl_read_word(rtlpriv, + rtlpriv->cfg->maps[SYS_FUNC_EN]); + if (!(tmpV16 & rtlpriv->cfg->maps[EFUSE_FEN_ELDR])) { + tmpV16 |= rtlpriv->cfg->maps[EFUSE_FEN_ELDR]; + rtl_write_word(rtlpriv, + rtlpriv->cfg->maps[SYS_FUNC_EN], tmpV16); + } + + tmpV16 = rtl_read_word(rtlpriv, rtlpriv->cfg->maps[SYS_CLK]); + if ((!(tmpV16 & rtlpriv->cfg->maps[EFUSE_LOADER_CLK_EN])) || + (!(tmpV16 & rtlpriv->cfg->maps[EFUSE_ANA8M]))) { + tmpV16 |= (rtlpriv->cfg->maps[EFUSE_LOADER_CLK_EN] | + rtlpriv->cfg->maps[EFUSE_ANA8M]); + rtl_write_word(rtlpriv, + rtlpriv->cfg->maps[SYS_CLK], tmpV16); + } + } + + if (pwrstate == true) { + if (bwrite == true) { + tempval = rtl_read_byte(rtlpriv, + rtlpriv->cfg->maps[EFUSE_TEST] + + 3); + + if (rtlhal->hw_type != HARDWARE_TYPE_RTL8192SE) { + tempval &= 0x0F; + tempval |= (VOLTAGE_V25 << 4); + } + + rtl_write_byte(rtlpriv, + rtlpriv->cfg->maps[EFUSE_TEST] + 3, + (tempval | 0x80)); + } + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192SE) { + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CLK], + 0x03); + } + + } else { + if(rtlhal->hw_type == HARDWARE_TYPE_RTL8188EE) + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_ACCESS], 0); + + if (bwrite == true) { + tempval = rtl_read_byte(rtlpriv, + rtlpriv->cfg->maps[EFUSE_TEST] + + 3); + rtl_write_byte(rtlpriv, + rtlpriv->cfg->maps[EFUSE_TEST] + 3, + (tempval & 0x7F)); + } + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192SE) { + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[EFUSE_CLK], + 0x02); + } + + } + } + +} + +static u16 efuse_get_current_size(struct ieee80211_hw *hw) +{ + int bcontinual = true; + u16 efuse_addr = 0; + u8 hoffset, hworden; + u8 efuse_data, word_cnts; + + while (bcontinual && efuse_one_byte_read(hw, efuse_addr, &efuse_data) + && (efuse_addr < EFUSE_MAX_SIZE)) { + if (efuse_data != 0xFF) { + hoffset = (efuse_data >> 4) & 0x0F; + hworden = efuse_data & 0x0F; + word_cnts = efuse_calculate_word_cnts(hworden); + efuse_addr = efuse_addr + (word_cnts * 2) + 1; + } else { + bcontinual = false; + } + } + + return efuse_addr; +} + +static u8 efuse_calculate_word_cnts(u8 word_en) +{ + u8 word_cnts = 0; + if (!(word_en & BIT(0))) + word_cnts++; + if (!(word_en & BIT(1))) + word_cnts++; + if (!(word_en & BIT(2))) + word_cnts++; + if (!(word_en & BIT(3))) + word_cnts++; + return word_cnts; +} + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/efuse.h +++ linux-3.13.0/drivers/staging/rtl8821ae/efuse.h @@ -0,0 +1,130 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL_EFUSE_H_ +#define __RTL_EFUSE_H_ + +#define EFUSE_IC_ID_OFFSET 506 + +/* +#define EFUSE_REAL_CONTENT_LEN 512 +#define EFUSE_MAP_LEN 128 +#define EFUSE_MAX_SECTION 16 +#define EFUSE_MAX_WORD_UNIT 4 +#define EFUSE_IC_ID_OFFSET 506 +*/ + +#define EFUSE_MAX_WORD_UNIT 4 + +#define EFUSE_INIT_MAP 0 +#define EFUSE_MODIFY_MAP 1 + +#define PG_STATE_HEADER 0x01 +#define PG_STATE_WORD_0 0x02 +#define PG_STATE_WORD_1 0x04 +#define PG_STATE_WORD_2 0x08 +#define PG_STATE_WORD_3 0x10 +#define PG_STATE_DATA 0x20 + +#define PG_SWBYTE_H 0x01 +#define PG_SWBYTE_L 0x02 + +#define _POWERON_DELAY_ +#define _PRE_EXECUTE_READ_CMD_ + +#define EFUSE_REPEAT_THRESHOLD_ 3 +#define EFUSE_ERROE_HANDLE 1 + +struct efuse_map { + u8 offset; + u8 word_start; + u8 byte_start; + u8 byte_cnts; +}; + +struct pgpkt_struct { + u8 offset; + u8 word_en; + u8 data[8]; +}; + +enum efuse_data_item { + EFUSE_CHIP_ID = 0, + EFUSE_LDO_SETTING, + EFUSE_CLK_SETTING, + EFUSE_SDIO_SETTING, + EFUSE_CCCR, + EFUSE_SDIO_MODE, + EFUSE_OCR, + EFUSE_F0CIS, + EFUSE_F1CIS, + EFUSE_MAC_ADDR, + EFUSE_EEPROM_VER, + EFUSE_CHAN_PLAN, + EFUSE_TXPW_TAB +}; + +enum { + VOLTAGE_V25 = 0x03, + LDOE25_SHIFT = 28, +}; + +struct efuse_priv { + u8 id[2]; + u8 ldo_setting[2]; + u8 clk_setting[2]; + u8 cccr; + u8 sdio_mode; + u8 ocr[3]; + u8 cis0[17]; + u8 cis1[48]; + u8 mac_addr[6]; + u8 eeprom_verno; + u8 channel_plan; + u8 tx_power_b[14]; + u8 tx_power_g[14]; +}; + +extern void read_efuse_byte(struct ieee80211_hw *hw, u16 _offset, u8 *pbuf); +extern void efuse_initialize(struct ieee80211_hw *hw); +extern u8 efuse_read_1byte(struct ieee80211_hw *hw, u16 address); +extern int efuse_one_byte_read(struct ieee80211_hw *hw, u16 addr, u8 *data); +extern void efuse_write_1byte(struct ieee80211_hw *hw, u16 address, u8 value); +extern void read_efuse(struct ieee80211_hw *hw, u16 _offset, + u16 _size_byte, u8 * pbuf); +extern void efuse_shadow_read(struct ieee80211_hw *hw, u8 type, + u16 offset, u32 * value); +extern void efuse_shadow_write(struct ieee80211_hw *hw, u8 type, + u16 offset, u32 value); +extern bool efuse_shadow_update(struct ieee80211_hw *hw); +extern bool efuse_shadow_update_chk(struct ieee80211_hw *hw); +extern void rtl_efuse_shadow_map_update(struct ieee80211_hw *hw); +extern void efuse_force_write_vendor_Id(struct ieee80211_hw *hw); +extern void efuse_re_pg_section(struct ieee80211_hw *hw, u8 section_idx); +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/pci.c +++ linux-3.13.0/drivers/staging/rtl8821ae/pci.c @@ -0,0 +1,2549 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "core.h" +#include "wifi.h" +#include "pci.h" +#include "base.h" +#include "ps.h" +#include "efuse.h" +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +#include +#endif + +static const u16 pcibridge_vendors[PCI_BRIDGE_VENDOR_MAX] = { + INTEL_VENDOR_ID, + ATI_VENDOR_ID, + AMD_VENDOR_ID, + SIS_VENDOR_ID +}; + +static const u8 ac_to_hwq[] = { + VO_QUEUE, + VI_QUEUE, + BE_QUEUE, + BK_QUEUE +}; + +u8 _rtl_mac_to_hwqueue(struct ieee80211_hw *hw, + struct sk_buff *skb) +{ + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u16 fc = rtl_get_fc(skb); + u8 queue_index = skb_get_queue_mapping(skb); + + if (unlikely(ieee80211_is_beacon(fc))) + return BEACON_QUEUE; + if (ieee80211_is_mgmt(fc) || ieee80211_is_ctl(fc)) + return MGNT_QUEUE; + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192SE) + if (ieee80211_is_nullfunc(fc)) + return HIGH_QUEUE; + + return ac_to_hwq[queue_index]; +} + +/* Update PCI dependent default settings*/ +static void _rtl_pci_update_default_setting(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + u8 pcibridge_vendor = pcipriv->ndis_adapter.pcibridge_vendor; + u8 init_aspm; + + ppsc->reg_rfps_level = 0; + ppsc->b_support_aspm = 0; + + /*Update PCI ASPM setting */ + ppsc->const_amdpci_aspm = rtlpci->const_amdpci_aspm; + switch (rtlpci->const_pci_aspm) { + case 0: + /*No ASPM */ + break; + + case 1: + /*ASPM dynamically enabled/disable. */ + ppsc->reg_rfps_level |= RT_RF_LPS_LEVEL_ASPM; + break; + + case 2: + /*ASPM with Clock Req dynamically enabled/disable. */ + ppsc->reg_rfps_level |= (RT_RF_LPS_LEVEL_ASPM | + RT_RF_OFF_LEVL_CLK_REQ); + break; + + case 3: + /* + * Always enable ASPM and Clock Req + * from initialization to halt. + * */ + ppsc->reg_rfps_level &= ~(RT_RF_LPS_LEVEL_ASPM); + ppsc->reg_rfps_level |= (RT_RF_PS_LEVEL_ALWAYS_ASPM | + RT_RF_OFF_LEVL_CLK_REQ); + break; + + case 4: + /* + * Always enable ASPM without Clock Req + * from initialization to halt. + * */ + ppsc->reg_rfps_level &= ~(RT_RF_LPS_LEVEL_ASPM | + RT_RF_OFF_LEVL_CLK_REQ); + ppsc->reg_rfps_level |= RT_RF_PS_LEVEL_ALWAYS_ASPM; + break; + } + + ppsc->reg_rfps_level |= RT_RF_OFF_LEVL_HALT_NIC; + + /*Update Radio OFF setting */ + switch (rtlpci->const_hwsw_rfoff_d3) { + case 1: + if (ppsc->reg_rfps_level & RT_RF_LPS_LEVEL_ASPM) + ppsc->reg_rfps_level |= RT_RF_OFF_LEVL_ASPM; + break; + + case 2: + if (ppsc->reg_rfps_level & RT_RF_LPS_LEVEL_ASPM) + ppsc->reg_rfps_level |= RT_RF_OFF_LEVL_ASPM; + ppsc->reg_rfps_level |= RT_RF_OFF_LEVL_HALT_NIC; + break; + + case 3: + ppsc->reg_rfps_level |= RT_RF_OFF_LEVL_PCI_D3; + break; + } + + /*Set HW definition to determine if it supports ASPM. */ + switch (rtlpci->const_support_pciaspm) { + case 0:{ + /*Not support ASPM. */ + bool b_support_aspm = false; + ppsc->b_support_aspm = b_support_aspm; + break; + } + case 1:{ + /*Support ASPM. */ + bool b_support_aspm = true; + bool b_support_backdoor = true; + ppsc->b_support_aspm = b_support_aspm; + + /*if(priv->oem_id == RT_CID_TOSHIBA && + !priv->ndis_adapter.amd_l1_patch) + b_support_backdoor = false; */ + + ppsc->b_support_backdoor = b_support_backdoor; + + break; + } + case 2: + /*ASPM value set by chipset. */ + if (pcibridge_vendor == PCI_BRIDGE_VENDOR_INTEL) { + bool b_support_aspm = true; + ppsc->b_support_aspm = b_support_aspm; + } + break; + default: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("switch case not process \n")); + break; + } + + /* toshiba aspm issue, toshiba will set aspm selfly + * so we should not set aspm in driver */ + pci_read_config_byte(rtlpci->pdev, 0x80, &init_aspm); + if (rtlpriv->rtlhal.hw_type == HARDWARE_TYPE_RTL8192SE && + init_aspm == 0x43) + ppsc->b_support_aspm = false; +} + +static bool _rtl_pci_platform_switch_device_pci_aspm(struct ieee80211_hw *hw, + u8 value) +{ + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + bool bresult = false; + + if (rtlhal->hw_type != HARDWARE_TYPE_RTL8192SE) + value |= 0x40; + + pci_write_config_byte(rtlpci->pdev, 0x80, value); + + return bresult; +} + +/*When we set 0x01 to enable clk request. Set 0x0 to disable clk req.*/ +static bool _rtl_pci_switch_clk_req(struct ieee80211_hw *hw, u8 value) +{ + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + bool bresult = false; + + pci_write_config_byte(rtlpci->pdev, 0x81, value); + bresult = true; + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192SE) + udelay(100); + + return bresult; +} + +/*Disable RTL8192SE ASPM & Disable Pci Bridge ASPM*/ +static void rtl_pci_disable_aspm(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + u8 pcibridge_vendor = pcipriv->ndis_adapter.pcibridge_vendor; + u32 pcicfg_addrport = pcipriv->ndis_adapter.pcicfg_addrport; + u8 num4bytes = pcipriv->ndis_adapter.num4bytes; + /*Retrieve original configuration settings. */ + u8 linkctrl_reg = pcipriv->ndis_adapter.linkctrl_reg; + u16 pcibridge_linkctrlreg = pcipriv->ndis_adapter. + pcibridge_linkctrlreg; + u16 aspmlevel = 0; + + if (!ppsc->b_support_aspm) + return; + + if (pcibridge_vendor == PCI_BRIDGE_VENDOR_UNKNOWN) { + RT_TRACE(COMP_POWER, DBG_TRACE, + ("PCI(Bridge) UNKNOWN.\n")); + + return; + } + + if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_CLK_REQ) { + RT_CLEAR_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_CLK_REQ); + _rtl_pci_switch_clk_req(hw, 0x0); + } + + if (1) { + /*for promising device will in L0 state after an I/O. */ + u8 tmp_u1b; + pci_read_config_byte(rtlpci->pdev, 0x80, &tmp_u1b); + } + + /*Set corresponding value. */ + aspmlevel |= BIT(0) | BIT(1); + linkctrl_reg &= ~aspmlevel; + pcibridge_linkctrlreg &= ~(BIT(0) | BIT(1)); + + _rtl_pci_platform_switch_device_pci_aspm(hw, linkctrl_reg); + udelay(50); + + /*4 Disable Pci Bridge ASPM */ + rtl_pci_raw_write_port_ulong(PCI_CONF_ADDRESS, + pcicfg_addrport + (num4bytes << 2)); + rtl_pci_raw_write_port_uchar(PCI_CONF_DATA, pcibridge_linkctrlreg); + + udelay(50); + +} + +/* + *Enable RTL8192SE ASPM & Enable Pci Bridge ASPM for + *power saving We should follow the sequence to enable + *RTL8192SE first then enable Pci Bridge ASPM + *or the system will show bluescreen. + */ +static void rtl_pci_enable_aspm(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + u8 pcibridge_vendor = pcipriv->ndis_adapter.pcibridge_vendor; + u32 pcicfg_addrport = pcipriv->ndis_adapter.pcicfg_addrport; + u8 num4bytes = pcipriv->ndis_adapter.num4bytes; + u16 aspmlevel; + u8 u_pcibridge_aspmsetting; + u8 u_device_aspmsetting; + + if (!ppsc->b_support_aspm) + return; + + if (pcibridge_vendor == PCI_BRIDGE_VENDOR_UNKNOWN) { + RT_TRACE(COMP_POWER, DBG_TRACE, + ("PCI(Bridge) UNKNOWN.\n")); + return; + } + + /*4 Enable Pci Bridge ASPM */ + rtl_pci_raw_write_port_ulong(PCI_CONF_ADDRESS, + pcicfg_addrport + (num4bytes << 2)); + + u_pcibridge_aspmsetting = + pcipriv->ndis_adapter.pcibridge_linkctrlreg | + rtlpci->const_hostpci_aspm_setting; + + if (pcibridge_vendor == PCI_BRIDGE_VENDOR_INTEL) + u_pcibridge_aspmsetting &= ~BIT(0); + + rtl_pci_raw_write_port_uchar(PCI_CONF_DATA, u_pcibridge_aspmsetting); + + RT_TRACE(COMP_INIT, DBG_LOUD, + ("PlatformEnableASPM(): Write reg[%x] = %x\n", + (pcipriv->ndis_adapter.pcibridge_pciehdr_offset + 0x10), + u_pcibridge_aspmsetting)); + + udelay(50); + + /*Get ASPM level (with/without Clock Req) */ + aspmlevel = rtlpci->const_devicepci_aspm_setting; + u_device_aspmsetting = pcipriv->ndis_adapter.linkctrl_reg; + + /*_rtl_pci_platform_switch_device_pci_aspm(dev,*/ + /*(priv->ndis_adapter.linkctrl_reg | ASPMLevel)); */ + + u_device_aspmsetting |= aspmlevel; + + _rtl_pci_platform_switch_device_pci_aspm(hw, u_device_aspmsetting); + + if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_CLK_REQ) { + _rtl_pci_switch_clk_req(hw, (ppsc->reg_rfps_level & + RT_RF_OFF_LEVL_CLK_REQ) ? 1 : 0); + RT_SET_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_CLK_REQ); + } + udelay(100); +} + +static bool rtl_pci_get_amd_l1_patch(struct ieee80211_hw *hw) +{ + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + u32 pcicfg_addrport = pcipriv->ndis_adapter.pcicfg_addrport; + + bool status = false; + u8 offset_e0; + unsigned offset_e4; + + rtl_pci_raw_write_port_ulong(PCI_CONF_ADDRESS, + pcicfg_addrport + 0xE0); + rtl_pci_raw_write_port_uchar(PCI_CONF_DATA, 0xA0); + + rtl_pci_raw_write_port_ulong(PCI_CONF_ADDRESS, + pcicfg_addrport + 0xE0); + rtl_pci_raw_read_port_uchar(PCI_CONF_DATA, &offset_e0); + + if (offset_e0 == 0xA0) { + rtl_pci_raw_write_port_ulong(PCI_CONF_ADDRESS, + pcicfg_addrport + 0xE4); + rtl_pci_raw_read_port_ulong(PCI_CONF_DATA, &offset_e4); + if (offset_e4 & BIT(23)) + status = true; + } + + return status; +} + +/**/ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)) +static u8 _rtl_pci_get_pciehdr_offset(struct ieee80211_hw *hw) +{ + u8 capability_offset; + u8 num4bytes = 0x34/4; + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + u32 pcicfg_addr_port = (pcipriv->ndis_adapter.pcibridge_busnum << 16)| + (pcipriv->ndis_adapter.pcibridge_devnum << 11)| + (pcipriv->ndis_adapter.pcibridge_funcnum << 8)| + (1 << 31); + + rtl_pci_raw_write_port_ulong(PCI_CONF_ADDRESS , pcicfg_addr_port + + (num4bytes << 2)); + rtl_pci_raw_read_port_uchar(PCI_CONF_DATA, &capability_offset); + while (capability_offset != 0) { + struct rtl_pci_capabilities_header capability_hdr; + + num4bytes = capability_offset / 4; + /* Read the header of the capability at this offset. + * If the retrieved capability is not the power management + * capability that we are looking for, follow the link to + * the next capability and continue looping. + */ + rtl_pci_raw_write_port_ulong(PCI_CONF_ADDRESS , + pcicfg_addr_port + + (num4bytes << 2)); + rtl_pci_raw_read_port_ushort(PCI_CONF_DATA, + (u16*)&capability_hdr); + /* Found the PCI express capability. */ + if (capability_hdr.capability_id == + PCI_CAPABILITY_ID_PCI_EXPRESS) + break; + else + capability_offset = capability_hdr.next; + } + return capability_offset; +} +#endif +/**/ + +bool rtl_pci_check_buddy_priv(struct ieee80211_hw *hw, + struct rtl_priv **buddy_priv) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + bool b_find_buddy_priv = false; + struct rtl_priv *temp_priv = NULL; + struct rtl_pci_priv *temp_pcipriv = NULL; + + if (!list_empty(&rtlpriv->glb_var->glb_priv_list)) { + list_for_each_entry(temp_priv, &rtlpriv->glb_var->glb_priv_list, + list) { + if (temp_priv) { + temp_pcipriv = + (struct rtl_pci_priv *)temp_priv->priv; + RT_TRACE(COMP_INIT, DBG_LOUD, + (("pcipriv->ndis_adapter.funcnumber %x \n"), + pcipriv->ndis_adapter.funcnumber)); + RT_TRACE(COMP_INIT, DBG_LOUD, + (("temp_pcipriv->ndis_adapter.funcnumber %x \n"), + temp_pcipriv->ndis_adapter.funcnumber)); + + if ((pcipriv->ndis_adapter.busnumber == + temp_pcipriv->ndis_adapter.busnumber) && + (pcipriv->ndis_adapter.devnumber == + temp_pcipriv->ndis_adapter.devnumber) && + (pcipriv->ndis_adapter.funcnumber != + temp_pcipriv->ndis_adapter.funcnumber)) { + b_find_buddy_priv = true; + break; + } + } + } + } + + RT_TRACE(COMP_INIT, DBG_LOUD, + (("b_find_buddy_priv %d \n"), b_find_buddy_priv)); + + if (b_find_buddy_priv) + *buddy_priv = temp_priv; + + return b_find_buddy_priv; +} + +void rtl_pci_get_linkcontrol_field(struct ieee80211_hw *hw) +{ + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + u8 capabilityoffset = pcipriv->ndis_adapter.pcibridge_pciehdr_offset; + u32 pcicfg_addrport = pcipriv->ndis_adapter.pcicfg_addrport; + u8 linkctrl_reg; + u8 num4bbytes; + + num4bbytes = (capabilityoffset + 0x10) / 4; + + /*Read Link Control Register */ + rtl_pci_raw_write_port_ulong(PCI_CONF_ADDRESS, + pcicfg_addrport + (num4bbytes << 2)); + rtl_pci_raw_read_port_uchar(PCI_CONF_DATA, &linkctrl_reg); + + pcipriv->ndis_adapter.pcibridge_linkctrlreg = linkctrl_reg; +} + +static void rtl_pci_parse_configuration(struct pci_dev *pdev, + struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + + u8 tmp; + int pos; + u8 linkctrl_reg; + + /*Link Control Register */ + pos = pci_find_capability(pdev, PCI_CAP_ID_EXP); + pci_read_config_byte(pdev, pos + PCI_EXP_LNKCTL, &linkctrl_reg); + pcipriv->ndis_adapter.linkctrl_reg = linkctrl_reg; + + RT_TRACE(COMP_INIT, DBG_TRACE, + ("Link Control Register =%x\n", + pcipriv->ndis_adapter.linkctrl_reg)); + + pci_read_config_byte(pdev, 0x98, &tmp); + tmp |= BIT(4); + pci_write_config_byte(pdev, 0x98, tmp); + + tmp = 0x17; + pci_write_config_byte(pdev, 0x70f, tmp); +} + +static void rtl_pci_init_aspm(struct ieee80211_hw *hw) +{ + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + + _rtl_pci_update_default_setting(hw); + + if (ppsc->reg_rfps_level & RT_RF_PS_LEVEL_ALWAYS_ASPM) { + /*Always enable ASPM & Clock Req. */ + rtl_pci_enable_aspm(hw); + RT_SET_PS_LEVEL(ppsc, RT_RF_PS_LEVEL_ALWAYS_ASPM); + } + +} + +static void _rtl_pci_io_handler_init(struct device *dev, + struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtlpriv->io.dev = dev; + + rtlpriv->io.write8_async = pci_write8_async; + rtlpriv->io.write16_async = pci_write16_async; + rtlpriv->io.write32_async = pci_write32_async; + + rtlpriv->io.read8_sync = pci_read8_sync; + rtlpriv->io.read16_sync = pci_read16_sync; + rtlpriv->io.read32_sync = pci_read32_sync; + +} + +static bool _rtl_pci_update_earlymode_info(struct ieee80211_hw *hw, + struct sk_buff *skb, + struct rtl_tcb_desc *tcb_desc, + u8 tid) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 additionlen = FCS_LEN; + struct sk_buff *next_skb; + + /* here open is 4, wep/tkip is 8, aes is 12*/ + if (info->control.hw_key) + additionlen += info->control.hw_key->icv_len; + + /* The most skb num is 6 */ + tcb_desc->empkt_num = 0; + spin_lock_bh(&rtlpriv->locks.waitq_lock); + skb_queue_walk(&rtlpriv->mac80211.skb_waitq[tid], next_skb) { + struct ieee80211_tx_info *next_info = + IEEE80211_SKB_CB(next_skb); + if (next_info->flags & IEEE80211_TX_CTL_AMPDU) { + tcb_desc->empkt_len[tcb_desc->empkt_num] = + next_skb->len + additionlen; + tcb_desc->empkt_num++; + } else { + break; + } + + if (skb_queue_is_last(&rtlpriv->mac80211.skb_waitq[tid], + next_skb)) + break; + + if (tcb_desc->empkt_num >= rtlhal->max_earlymode_num) + break; + } + spin_unlock_bh(&rtlpriv->locks.waitq_lock); + return true; +} + +/* just for early mode now */ +static void _rtl_pci_tx_chk_waitq(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct sk_buff *skb = NULL; + struct ieee80211_tx_info *info = NULL; + int tid; /* should be int */ + + if (!rtlpriv->rtlhal.b_earlymode_enable) + return; + if (rtlpriv->dm.supp_phymode_switch && + (rtlpriv->easy_concurrent_ctl.bswitch_in_process || + (rtlpriv->buddy_priv && + rtlpriv->buddy_priv->easy_concurrent_ctl.bswitch_in_process))) + return; + /* we juse use em for BE/BK/VI/VO */ + for (tid = 7; tid >= 0; tid--) { + u8 hw_queue = ac_to_hwq[rtl_tid_to_ac(hw, tid)]; + struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[hw_queue]; + while (!mac->act_scanning && + rtlpriv->psc.rfpwr_state == ERFON) { + struct rtl_tcb_desc tcb_desc; + memset(&tcb_desc, 0, sizeof(struct rtl_tcb_desc)); + + spin_lock_bh(&rtlpriv->locks.waitq_lock); + if (!skb_queue_empty(&mac->skb_waitq[tid]) && + (ring->entries - skb_queue_len(&ring->queue) > + rtlhal->max_earlymode_num)) { + skb = skb_dequeue(&mac->skb_waitq[tid]); + } else { + spin_unlock_bh(&rtlpriv->locks.waitq_lock); + break; + } + spin_unlock_bh(&rtlpriv->locks.waitq_lock); + + /* Some macaddr can't do early mode. like + * multicast/broadcast/no_qos data */ + info = IEEE80211_SKB_CB(skb); + if (info->flags & IEEE80211_TX_CTL_AMPDU) + _rtl_pci_update_earlymode_info(hw, skb, + &tcb_desc, tid); + +/**/ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) + rtlpriv->intf_ops->adapter_tx(hw, skb, &tcb_desc); +#else +/**/ + rtlpriv->intf_ops->adapter_tx(hw, NULL, skb, &tcb_desc); +#endif +/**/ + } + } +} + +static void _rtl_pci_tx_isr(struct ieee80211_hw *hw, int prio) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[prio]; + + while (skb_queue_len(&ring->queue)) { + struct sk_buff *skb; + struct ieee80211_tx_info *info; + u16 fc; + u8 tid; + u8 *entry; + + + if (rtlpriv->use_new_trx_flow) + entry = (u8 *)(&ring->buffer_desc[ring->idx]); + else + entry = (u8 *)(&ring->desc[ring->idx]); + + if (!rtlpriv->cfg->ops->is_tx_desc_closed(hw, prio, ring->idx)) + return; + + ring->idx = (ring->idx + 1) % ring->entries; + + skb = __skb_dequeue(&ring->queue); + + pci_unmap_single(rtlpci->pdev, + le32_to_cpu(rtlpriv->cfg->ops-> + get_desc((u8 *) entry, true, + HW_DESC_TXBUFF_ADDR)), + skb->len, PCI_DMA_TODEVICE); + + /* remove early mode header */ + if(rtlpriv->rtlhal.b_earlymode_enable) + skb_pull(skb, EM_HDR_LEN); + + RT_TRACE((COMP_INTR | COMP_SEND), DBG_TRACE, + ("new ring->idx:%d, " + "free: skb_queue_len:%d, free: seq:%d\n", + ring->idx, + skb_queue_len(&ring->queue), + *(u16 *) (skb->data + 22))); + + if(prio == TXCMD_QUEUE) { + dev_kfree_skb(skb); + goto tx_status_ok; + + } + + /* for sw LPS, just after NULL skb send out, we can + * sure AP kown we are sleeped, our we should not let + * rf to sleep*/ + fc = rtl_get_fc(skb); + if (ieee80211_is_nullfunc(fc)) { + if(ieee80211_has_pm(fc)) { + rtlpriv->mac80211.offchan_deley = true; + rtlpriv->psc.state_inap = 1; + } else { + rtlpriv->psc.state_inap = 0; + } + } + if (ieee80211_is_action(fc)) { + struct ieee80211_mgmt_compat *action_frame = + (struct ieee80211_mgmt_compat *)skb->data; + if (action_frame->u.action.u.ht_smps.action == + WLAN_HT_ACTION_SMPS) { + dev_kfree_skb(skb); + goto tx_status_ok; + } + } + + /* update tid tx pkt num */ + tid = rtl_get_tid(skb); + if (tid <= 7) + rtlpriv->link_info.tidtx_inperiod[tid]++; + + info = IEEE80211_SKB_CB(skb); + ieee80211_tx_info_clear_status(info); + + info->flags |= IEEE80211_TX_STAT_ACK; + /*info->status.rates[0].count = 1; */ + + ieee80211_tx_status_irqsafe(hw, skb); + + if ((ring->entries - skb_queue_len(&ring->queue)) + == 2) { + + RT_TRACE(COMP_ERR, DBG_LOUD, + ("more desc left, wake" + "skb_queue@%d,ring->idx = %d," + "skb_queue_len = 0x%d\n", + prio, ring->idx, + skb_queue_len(&ring->queue))); + + ieee80211_wake_queue(hw, + skb_get_queue_mapping + (skb)); + } +tx_status_ok: + skb = NULL; + } + + if (((rtlpriv->link_info.num_rx_inperiod + + rtlpriv->link_info.num_tx_inperiod) > 8) || + (rtlpriv->link_info.num_rx_inperiod > 2)) { + rtl_lps_leave(hw); + } +} + +static int _rtl_pci_init_one_rxdesc(struct ieee80211_hw *hw, + u8 *entry, int rxring_idx, int desc_idx) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + u32 bufferaddress; + u8 tmp_one = 1; + struct sk_buff *skb; + + skb = dev_alloc_skb(rtlpci->rxbuffersize); + if (!skb) + return 0; + rtlpci->rx_ring[rxring_idx].rx_buf[desc_idx] = skb; + + /* just set skb->cb to mapping addr + * for pci_unmap_single use */ + *((dma_addr_t *) skb->cb) = pci_map_single(rtlpci->pdev, + skb_tail_pointer(skb), rtlpci->rxbuffersize, + PCI_DMA_FROMDEVICE); + bufferaddress = cpu_to_le32(*((dma_addr_t *) skb->cb)); + if (pci_dma_mapping_error(rtlpci->pdev, bufferaddress)) + return 0; + if (rtlpriv->use_new_trx_flow) { + rtlpriv->cfg->ops->set_desc(hw, (u8 *) entry, false, + HW_DESC_RX_PREPARE, + (u8 *) & bufferaddress); + } else { + rtlpriv->cfg->ops->set_desc(hw, (u8 *) entry, false, + HW_DESC_RXBUFF_ADDR, + (u8 *) & bufferaddress); + rtlpriv->cfg->ops->set_desc(hw, (u8 *) entry, false, + HW_DESC_RXPKT_LEN, + (u8 *) & rtlpci->rxbuffersize); + rtlpriv->cfg->ops->set_desc(hw, (u8 *) entry, false, + HW_DESC_RXOWN, + (u8 *) & tmp_one); + } + + return 1; +} + +/* inorder to receive 8K AMSDU we have set skb to + * 9100bytes in init rx ring, but if this packet is + * not a AMSDU, this so big packet will be sent to + * TCP/IP directly, this cause big packet ping fail + * like: "ping -s 65507", so here we will realloc skb + * based on the true size of packet, I think mac80211 + * do it will be better, but now mac80211 haven't */ + +/* but some platform will fail when alloc skb sometimes. + * in this condition, we will send the old skb to + * mac80211 directly, this will not cause any other + * issues, but only be losted by TCP/IP */ +static void _rtl_pci_rx_to_mac80211(struct ieee80211_hw *hw, + struct sk_buff *skb, struct ieee80211_rx_status rx_status) +{ + if (unlikely(!rtl_action_proc(hw, skb, false))) { + dev_kfree_skb_any(skb); + } else { + struct sk_buff *uskb = NULL; + u8 *pdata; + + uskb = dev_alloc_skb(skb->len + 128); + if (likely(uskb)) { + memcpy(IEEE80211_SKB_RXCB(uskb), &rx_status, + sizeof(rx_status)); + pdata = (u8 *)skb_put(uskb, skb->len); + memcpy(pdata, skb->data, skb->len); + dev_kfree_skb_any(skb); + + ieee80211_rx_irqsafe(hw, uskb); + } else { + ieee80211_rx_irqsafe(hw, skb); + } + } +} + +/*hsisr interrupt handler*/ +static void _rtl_pci_hs_interrupt(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + + rtl_write_byte(rtlpriv, rtlpriv->cfg->maps[MAC_HSISR], + rtl_read_byte(rtlpriv, rtlpriv->cfg->maps[MAC_HSISR]) | + rtlpci->sys_irq_mask); + + +} +static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + int rxring_idx = RTL_PCI_RX_MPDU_QUEUE; + + struct ieee80211_rx_status rx_status = { 0 }; + unsigned int count = rtlpci->rxringcount; + bool unicast = false; + u8 hw_queue = 0; + unsigned int rx_remained_cnt; + u8 own; + u8 tmp_one; + + struct rtl_stats status = { + .signal = 0, + .noise = -98, + .rate = 0, + }; + + /*RX NORMAL PKT */ + while (count--) { + struct ieee80211_hdr *hdr; + u16 fc; + u16 len; + /*rx buffer descriptor */ + struct rtl_rx_buffer_desc *buffer_desc = NULL; + /*if use new trx flow, it means wifi info */ + struct rtl_rx_desc *pdesc = NULL; + /*rx pkt */ + struct sk_buff *skb = rtlpci->rx_ring[rxring_idx].rx_buf[ + rtlpci->rx_ring[rxring_idx].idx]; + + if (rtlpriv->use_new_trx_flow) { + rx_remained_cnt = + rtlpriv->cfg->ops->rx_desc_buff_remained_cnt(hw, + hw_queue); + if (rx_remained_cnt < 1) + return; + + } else { /* rx descriptor */ + pdesc = &rtlpci->rx_ring[rxring_idx].desc[ + rtlpci->rx_ring[rxring_idx].idx]; + + own = (u8) rtlpriv->cfg->ops->get_desc((u8 *) pdesc, + false, + HW_DESC_OWN); + if (own) /* wait data to be filled by hardware */ + return; + } + + /* Get here means: data is filled already*/ + /* AAAAAAttention !!! + * We can NOT access 'skb' before 'pci_unmap_single' */ + pci_unmap_single(rtlpci->pdev, *((dma_addr_t *) skb->cb), + rtlpci->rxbuffersize, PCI_DMA_FROMDEVICE); + + if (rtlpriv->use_new_trx_flow) { + buffer_desc = &rtlpci->rx_ring[rxring_idx].buffer_desc[ + rtlpci->rx_ring[rxring_idx].idx]; + /*means rx wifi info*/ + pdesc = (struct rtl_rx_desc *)skb->data; + } + + rtlpriv->cfg->ops->query_rx_desc(hw, &status, + &rx_status, (u8 *) pdesc, skb); + + if (rtlpriv->use_new_trx_flow) + rtlpriv->cfg->ops->rx_check_dma_ok(hw, + (u8 *)buffer_desc, + hw_queue); + + + len = rtlpriv->cfg->ops->get_desc((u8 *)pdesc, false, + HW_DESC_RXPKT_LEN); + + if (skb->end - skb->tail > len) { + skb_put(skb, len); + if (rtlpriv->use_new_trx_flow) + skb_reserve(skb, status.rx_drvinfo_size + + status.rx_bufshift + 24); + else + skb_reserve(skb, status.rx_drvinfo_size + + status.rx_bufshift); + + } else { + printk("skb->end - skb->tail = %d, len is %d\n", + skb->end - skb->tail, len); + break; + } + + rtlpriv->cfg->ops->rx_command_packet_handler(hw, status, skb); + + /* + *NOTICE This can not be use for mac80211, + *this is done in mac80211 code, + *if you done here sec DHCP will fail + *skb_trim(skb, skb->len - 4); + */ + + hdr = rtl_get_hdr(skb); + fc = rtl_get_fc(skb); + + if (!status.b_crc && !status.b_hwerror) { + memcpy(IEEE80211_SKB_RXCB(skb), &rx_status, + sizeof(rx_status)); + + if (is_broadcast_ether_addr(hdr->addr1)) { + ;/*TODO*/ + } else if (is_multicast_ether_addr(hdr->addr1)) { + ;/*TODO*/ + } else { + unicast = true; + rtlpriv->stats.rxbytesunicast += skb->len; + } + + rtl_is_special_data(hw, skb, false); + + if (ieee80211_is_data(fc)) { + rtlpriv->cfg->ops->led_control(hw, LED_CTL_RX); + + if (unicast) + rtlpriv->link_info.num_rx_inperiod++; + } + + /* static bcn for roaming */ + rtl_beacon_statistic(hw, skb); + rtl_p2p_info(hw, (void*)skb->data, skb->len); + /* for sw lps */ + rtl_swlps_beacon(hw, (void*)skb->data, skb->len); + rtl_recognize_peer(hw, (void*)skb->data, skb->len); + if ((rtlpriv->mac80211.opmode == NL80211_IFTYPE_AP) && + (rtlpriv->rtlhal.current_bandtype == BAND_ON_2_4G)&& + (ieee80211_is_beacon(fc) || + ieee80211_is_probe_resp(fc))) { + dev_kfree_skb_any(skb); + } else { + _rtl_pci_rx_to_mac80211(hw, skb, rx_status); + } + } else { + dev_kfree_skb_any(skb); + } + if (rtlpriv->use_new_trx_flow) { + rtlpci->rx_ring[hw_queue].next_rx_rp += 1; + rtlpci->rx_ring[hw_queue].next_rx_rp %= + RTL_PCI_MAX_RX_COUNT; + + + rx_remained_cnt--; + if (1/*rx_remained_cnt == 0*/) { + rtl_write_word(rtlpriv, 0x3B4, + rtlpci->rx_ring[hw_queue].next_rx_rp); + } + } + if (((rtlpriv->link_info.num_rx_inperiod + + rtlpriv->link_info.num_tx_inperiod) > 8) || + (rtlpriv->link_info.num_rx_inperiod > 2)) { + rtl_lps_leave(hw); + } + + if (rtlpriv->use_new_trx_flow) { + _rtl_pci_init_one_rxdesc(hw, (u8 *)buffer_desc, + rxring_idx, + rtlpci->rx_ring[rxring_idx].idx); + } else { + _rtl_pci_init_one_rxdesc(hw, (u8 *)pdesc, rxring_idx, + rtlpci->rx_ring[rxring_idx].idx); + + if (rtlpci->rx_ring[rxring_idx].idx == + rtlpci->rxringcount - 1) + rtlpriv->cfg->ops->set_desc(hw, (u8 *) pdesc, + false, + HW_DESC_RXERO, + (u8 *) & tmp_one); + } + rtlpci->rx_ring[rxring_idx].idx = + (rtlpci->rx_ring[rxring_idx].idx + 1) % + rtlpci->rxringcount; + } +} + +static irqreturn_t _rtl_pci_interrupt(int irq, void *dev_id) +{ + struct ieee80211_hw *hw = dev_id; + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + unsigned long flags; + u32 inta = 0; + u32 intb = 0; + + + + if (rtlpci->irq_enabled == 0) + return IRQ_HANDLED; + + spin_lock_irqsave(&rtlpriv->locks.irq_th_lock,flags); + + + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[MAC_HIMR], 0x0); + + + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[MAC_HIMRE], 0x0); + + + /*read ISR: 4/8bytes */ + rtlpriv->cfg->ops->interrupt_recognized(hw, &inta, &intb); + + + /*Shared IRQ or HW disappared */ + if (!inta || inta == 0xffff) + goto done; + /*<1> beacon related */ + if (inta & rtlpriv->cfg->maps[RTL_IMR_TBDOK]) { + RT_TRACE(COMP_INTR, DBG_TRACE, ("beacon ok interrupt!\n")); + } + + if (unlikely(inta & rtlpriv->cfg->maps[RTL_IMR_TBDER])) { + RT_TRACE(COMP_INTR, DBG_TRACE, ("beacon err interrupt!\n")); + } + + if (inta & rtlpriv->cfg->maps[RTL_IMR_BDOK]) { + RT_TRACE(COMP_INTR, DBG_TRACE, ("beacon interrupt!\n")); + } + + if (inta & rtlpriv->cfg->maps[RTL_IMR_BcnInt]) { + RT_TRACE(COMP_INTR, DBG_TRACE, + ("prepare beacon for interrupt!\n")); + tasklet_schedule(&rtlpriv->works.irq_prepare_bcn_tasklet); + } + + + /*<2> tx related */ + if (unlikely(intb & rtlpriv->cfg->maps[RTL_IMR_TXFOVW])) + RT_TRACE(COMP_ERR, DBG_TRACE, ("IMR_TXFOVW!\n")); + + if (inta & rtlpriv->cfg->maps[RTL_IMR_MGNTDOK]) { + RT_TRACE(COMP_INTR, DBG_TRACE, ("Manage ok interrupt!\n")); + _rtl_pci_tx_isr(hw, MGNT_QUEUE); + } + + if (inta & rtlpriv->cfg->maps[RTL_IMR_HIGHDOK]) { + RT_TRACE(COMP_INTR, DBG_TRACE, ("HIGH_QUEUE ok interrupt!\n")); + _rtl_pci_tx_isr(hw, HIGH_QUEUE); + } + + if (inta & rtlpriv->cfg->maps[RTL_IMR_BKDOK]) { + rtlpriv->link_info.num_tx_inperiod++; + + RT_TRACE(COMP_INTR, DBG_TRACE, ("BK Tx OK interrupt!\n")); + _rtl_pci_tx_isr(hw, BK_QUEUE); + } + + if (inta & rtlpriv->cfg->maps[RTL_IMR_BEDOK]) { + rtlpriv->link_info.num_tx_inperiod++; + + RT_TRACE(COMP_INTR, DBG_TRACE, ("BE TX OK interrupt!\n")); + _rtl_pci_tx_isr(hw, BE_QUEUE); + } + + if (inta & rtlpriv->cfg->maps[RTL_IMR_VIDOK]) { + rtlpriv->link_info.num_tx_inperiod++; + + RT_TRACE(COMP_INTR, DBG_TRACE, ("VI TX OK interrupt!\n")); + _rtl_pci_tx_isr(hw, VI_QUEUE); + } + + if (inta & rtlpriv->cfg->maps[RTL_IMR_VODOK]) { + rtlpriv->link_info.num_tx_inperiod++; + + RT_TRACE(COMP_INTR, DBG_TRACE, ("Vo TX OK interrupt!\n")); + _rtl_pci_tx_isr(hw, VO_QUEUE); + } + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192SE) { + if (inta & rtlpriv->cfg->maps[RTL_IMR_COMDOK]) { + rtlpriv->link_info.num_tx_inperiod++; + + RT_TRACE(COMP_INTR, DBG_TRACE, + ("CMD TX OK interrupt!\n")); + _rtl_pci_tx_isr(hw, TXCMD_QUEUE); + } + } + + /*<3> rx related */ + if (inta & rtlpriv->cfg->maps[RTL_IMR_ROK]) { + RT_TRACE(COMP_INTR, DBG_TRACE, ("Rx ok interrupt!\n")); + + _rtl_pci_rx_interrupt(hw); + + } + + if (unlikely(inta & rtlpriv->cfg->maps[RTL_IMR_RDU])) { + RT_TRACE(COMP_ERR, DBG_WARNING, + ("rx descriptor unavailable!\n")); + rtl_write_byte(rtlpriv, 0xb4, BIT(1) ); + _rtl_pci_rx_interrupt(hw); + } + + if (unlikely(intb & rtlpriv->cfg->maps[RTL_IMR_RXFOVW])) { + RT_TRACE(COMP_ERR, DBG_WARNING, ("rx overflow !\n")); + _rtl_pci_rx_interrupt(hw); + } + + /*<4> fw related*/ + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8723AE) { + if (inta & rtlpriv->cfg->maps[RTL_IMR_C2HCMD]) { + RT_TRACE(COMP_INTR, DBG_TRACE, + ("firmware interrupt!\n")); + queue_delayed_work(rtlpriv->works.rtl_wq, + &rtlpriv->works.fwevt_wq, 0); + } + } + + /*<5> hsisr related*/ + /* Only 8188EE & 8723BE Supported. + * If Other ICs Come in, System will corrupt, + * because maps[RTL_IMR_HSISR_IND] & maps[MAC_HSISR] + * are not initialized*/ + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8188EE || + rtlhal->hw_type == HARDWARE_TYPE_RTL8723BE) { + if (unlikely(inta & rtlpriv->cfg->maps[RTL_IMR_HSISR_IND])) { + RT_TRACE(COMP_INTR, DBG_TRACE, + ("hsisr interrupt!\n")); + _rtl_pci_hs_interrupt(hw); + } + } + + + if(rtlpriv->rtlhal.b_earlymode_enable) + tasklet_schedule(&rtlpriv->works.irq_tasklet); + + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[MAC_HIMR], + rtlpci->irq_mask[0]); + rtl_write_dword(rtlpriv, rtlpriv->cfg->maps[MAC_HIMRE], + rtlpci->irq_mask[1]); + spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags); + + return IRQ_HANDLED; + +done: + spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags); + return IRQ_HANDLED; +} + +static void _rtl_pci_irq_tasklet(struct ieee80211_hw *hw) +{ + _rtl_pci_tx_chk_waitq(hw); +} + +static void _rtl_pci_prepare_bcn_tasklet(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl8192_tx_ring *ring = NULL; + struct ieee80211_hdr *hdr = NULL; + struct ieee80211_tx_info *info = NULL; + struct sk_buff *pskb = NULL; + struct rtl_tx_desc *pdesc = NULL; + struct rtl_tcb_desc tcb_desc; + /*This is for new trx flow*/ + struct rtl_tx_buffer_desc *pbuffer_desc = NULL; + u8 temp_one = 1; + + memset(&tcb_desc, 0, sizeof(struct rtl_tcb_desc)); + ring = &rtlpci->tx_ring[BEACON_QUEUE]; + pskb = __skb_dequeue(&ring->queue); + if (pskb) + kfree_skb(pskb); + + /*NB: the beacon data buffer must be 32-bit aligned. */ + pskb = ieee80211_beacon_get(hw, mac->vif); + if (pskb == NULL) + return; + hdr = rtl_get_hdr(pskb); + info = IEEE80211_SKB_CB(pskb); + pdesc = &ring->desc[0]; + if (rtlpriv->use_new_trx_flow) + pbuffer_desc = &ring->buffer_desc[0]; + +/**/ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) + rtlpriv->cfg->ops->fill_tx_desc(hw, hdr, (u8 *) pdesc, + (u8 *)pbuffer_desc, info, pskb, + BEACON_QUEUE, &tcb_desc); +#else +/**/ + rtlpriv->cfg->ops->fill_tx_desc(hw, hdr, (u8 *) pdesc, + (u8 *)pbuffer_desc, info, NULL, pskb, + BEACON_QUEUE, &tcb_desc); +/**/ +#endif +/**/ + + __skb_queue_tail(&ring->queue, pskb); + + rtlpriv->cfg->ops->set_desc(hw, (u8 *) pdesc, true, HW_DESC_OWN, + (u8 *) & temp_one); + + return; +} + +static void _rtl_pci_init_trx_var(struct ieee80211_hw *hw) +{ + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + u8 i; + u16 desc_num; + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192EE) + desc_num = TX_DESC_NUM_92E; + else + desc_num = RT_TXDESC_NUM; + + for (i = 0; i < RTL_PCI_MAX_TX_QUEUE_COUNT; i++) { + rtlpci->txringcount[i] = desc_num; + } + /* + *we just alloc 2 desc for beacon queue, + *because we just need first desc in hw beacon. + */ + rtlpci->txringcount[BEACON_QUEUE] = 2; + + /* + *BE queue need more descriptor for performance + *consideration or, No more tx desc will happen, + *and may cause mac80211 mem leakage. + */ + if (rtl_priv(hw)->use_new_trx_flow == false) + rtlpci->txringcount[BE_QUEUE] = RT_TXDESC_NUM_BE_QUEUE; + + rtlpci->rxbuffersize = 9100; /*2048/1024; */ + rtlpci->rxringcount = RTL_PCI_MAX_RX_COUNT; /*64; */ +} + +static void _rtl_pci_init_struct(struct ieee80211_hw *hw, + struct pci_dev *pdev) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + + rtlpriv->rtlhal.up_first_time = true; + rtlpriv->rtlhal.being_init_adapter = false; + + rtlhal->hw = hw; + rtlpci->pdev = pdev; + + /*Tx/Rx related var */ + _rtl_pci_init_trx_var(hw); + + /*IBSS*/ mac->beacon_interval = 100; + + /*AMPDU*/ + mac->min_space_cfg = 0; + mac->max_mss_density = 0; + /*set sane AMPDU defaults */ + mac->current_ampdu_density = 7; + mac->current_ampdu_factor = 3; + + /*QOS*/ + rtlpci->acm_method = eAcmWay2_SW; + + /*task */ + tasklet_init(&rtlpriv->works.irq_tasklet, + (void (*)(unsigned long))_rtl_pci_irq_tasklet, + (unsigned long)hw); + tasklet_init(&rtlpriv->works.irq_prepare_bcn_tasklet, + (void (*)(unsigned long))_rtl_pci_prepare_bcn_tasklet, + (unsigned long)hw); +} + +static int _rtl_pci_init_tx_ring(struct ieee80211_hw *hw, + unsigned int prio, unsigned int entries) +{ + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_tx_buffer_desc *buffer_desc; + struct rtl_tx_desc *desc; + dma_addr_t buffer_desc_dma, desc_dma; + u32 nextdescaddress; + int i; + + /* alloc tx buffer desc for new trx flow*/ + if (rtlpriv->use_new_trx_flow) { + buffer_desc = pci_alloc_consistent(rtlpci->pdev, + sizeof(*buffer_desc) * entries, + &buffer_desc_dma); + + if (!buffer_desc || (unsigned long)buffer_desc & 0xFF) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("Cannot allocate TX ring (prio = %d)\n", + prio)); + return -ENOMEM; + } + + memset(buffer_desc, 0, sizeof(*buffer_desc) * entries); + rtlpci->tx_ring[prio].buffer_desc = buffer_desc; + rtlpci->tx_ring[prio].buffer_desc_dma = buffer_desc_dma; + + rtlpci->tx_ring[prio].cur_tx_rp = 0; + rtlpci->tx_ring[prio].cur_tx_wp = 0; + rtlpci->tx_ring[prio].avl_desc = entries; + + } + + /* alloc dma for this ring */ + desc = pci_alloc_consistent(rtlpci->pdev, + sizeof(*desc) * entries, &desc_dma); + + if (!desc || (unsigned long)desc & 0xFF) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("Cannot allocate TX ring (prio = %d)\n", prio)); + return -ENOMEM; + } + + memset(desc, 0, sizeof(*desc) * entries); + rtlpci->tx_ring[prio].desc = desc; + rtlpci->tx_ring[prio].dma = desc_dma; + + rtlpci->tx_ring[prio].idx = 0; + rtlpci->tx_ring[prio].entries = entries; + skb_queue_head_init(&rtlpci->tx_ring[prio].queue); + RT_TRACE(COMP_INIT, DBG_LOUD, + ("queue:%d, ring_addr:%p\n", prio, desc)); + + /* init every desc in this ring */ + if (rtlpriv->use_new_trx_flow == false) { + for (i = 0; i < entries; i++) { + nextdescaddress = cpu_to_le32((u32) desc_dma + + ((i + 1) % entries) * + sizeof(*desc)); + + rtlpriv->cfg->ops->set_desc(hw, (u8 *) & (desc[i]), + true, + HW_DESC_TX_NEXTDESC_ADDR, + (u8 *) & nextdescaddress); + } + } + return 0; +} + +static int _rtl_pci_init_rx_ring(struct ieee80211_hw *hw, int rxring_idx) +{ + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl_priv *rtlpriv = rtl_priv(hw); + + int i; + + if (rtlpriv->use_new_trx_flow) { + struct rtl_rx_buffer_desc *entry = NULL; + /* alloc dma for this ring */ + rtlpci->rx_ring[rxring_idx].buffer_desc = + pci_alloc_consistent(rtlpci->pdev, + sizeof(*rtlpci->rx_ring[rxring_idx]. + buffer_desc) * + rtlpci->rxringcount, + &rtlpci->rx_ring[rxring_idx].dma); + if (!rtlpci->rx_ring[rxring_idx].buffer_desc || + (unsigned long)rtlpci->rx_ring[rxring_idx].buffer_desc & 0xFF) { + RT_TRACE(COMP_ERR, DBG_EMERG, ("Cannot allocate RX ring\n")); + return -ENOMEM; + } + + memset(rtlpci->rx_ring[rxring_idx].buffer_desc, 0, + sizeof(*rtlpci->rx_ring[rxring_idx].buffer_desc) * + rtlpci->rxringcount); + + /* init every desc in this ring */ + rtlpci->rx_ring[rxring_idx].idx = 0; + for (i = 0; i < rtlpci->rxringcount; i++) { + entry = &rtlpci->rx_ring[rxring_idx].buffer_desc[i]; + if (!_rtl_pci_init_one_rxdesc(hw, (u8 *)entry, + rxring_idx, i)) + return -ENOMEM; + } + } else { + struct rtl_rx_desc *entry = NULL; + u8 tmp_one = 1; + /* alloc dma for this ring */ + rtlpci->rx_ring[rxring_idx].desc = + pci_alloc_consistent(rtlpci->pdev, + sizeof(*rtlpci->rx_ring[rxring_idx]. + desc) * rtlpci->rxringcount, + &rtlpci->rx_ring[rxring_idx].dma); + if (!rtlpci->rx_ring[rxring_idx].desc || + (unsigned long)rtlpci->rx_ring[rxring_idx].desc & 0xFF) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("Cannot allocate RX ring\n")); + return -ENOMEM; + } + + memset(rtlpci->rx_ring[rxring_idx].desc, 0, + sizeof(*rtlpci->rx_ring[rxring_idx].desc) * + rtlpci->rxringcount); + + /* init every desc in this ring */ + rtlpci->rx_ring[rxring_idx].idx = 0; + for (i = 0; i < rtlpci->rxringcount; i++) { + entry = &rtlpci->rx_ring[rxring_idx].desc[i]; + if (!_rtl_pci_init_one_rxdesc(hw, (u8 *)entry, + rxring_idx, i)) + return -ENOMEM; + } + rtlpriv->cfg->ops->set_desc(hw, (u8 *) entry, false, + HW_DESC_RXERO, (u8 *) & tmp_one); + } + return 0; +} + +static void _rtl_pci_free_tx_ring(struct ieee80211_hw *hw, + unsigned int prio) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[prio]; + + /* free every desc in this ring */ + while (skb_queue_len(&ring->queue)) { + u8 *entry; + struct sk_buff *skb = __skb_dequeue(&ring->queue); + if (rtlpriv->use_new_trx_flow) + entry = (u8 *)(&ring->buffer_desc[ring->idx]); + else + entry = (u8 *)(&ring->desc[ring->idx]); + + pci_unmap_single(rtlpci->pdev, + le32_to_cpu(rtlpriv->cfg->ops->get_desc( + (u8 *) entry, true, HW_DESC_TXBUFF_ADDR)), + skb->len, PCI_DMA_TODEVICE); + kfree_skb(skb); + ring->idx = (ring->idx + 1) % ring->entries; + } + + /* free dma of this ring */ + pci_free_consistent(rtlpci->pdev, + sizeof(*ring->desc) * ring->entries, + ring->desc, ring->dma); + ring->desc = NULL; + if (rtlpriv->use_new_trx_flow) { + pci_free_consistent(rtlpci->pdev, + sizeof(*ring->buffer_desc) * ring->entries, + ring->buffer_desc, ring->buffer_desc_dma); + ring->buffer_desc = NULL; + } +} + +static void _rtl_pci_free_rx_ring(struct ieee80211_hw *hw, int rxring_idx) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + int i; + + /* free every desc in this ring */ + for (i = 0; i < rtlpci->rxringcount; i++) { + struct sk_buff *skb = rtlpci->rx_ring[rxring_idx].rx_buf[i]; + if (!skb) + continue; + + pci_unmap_single(rtlpci->pdev, *((dma_addr_t *) skb->cb), + rtlpci->rxbuffersize, PCI_DMA_FROMDEVICE); + kfree_skb(skb); + } + + /* free dma of this ring */ + if (rtlpriv->use_new_trx_flow) { + pci_free_consistent(rtlpci->pdev, + sizeof(*rtlpci->rx_ring[rxring_idx]. + buffer_desc) * rtlpci->rxringcount, + rtlpci->rx_ring[rxring_idx].buffer_desc, + rtlpci->rx_ring[rxring_idx].dma); + rtlpci->rx_ring[rxring_idx].buffer_desc = NULL; + } else { + pci_free_consistent(rtlpci->pdev, + sizeof(*rtlpci->rx_ring[rxring_idx].desc) * + rtlpci->rxringcount, + rtlpci->rx_ring[rxring_idx].desc, + rtlpci->rx_ring[rxring_idx].dma); + rtlpci->rx_ring[rxring_idx].desc = NULL; + } +} + +static int _rtl_pci_init_trx_ring(struct ieee80211_hw *hw) +{ + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + int ret; + int i, rxring_idx; + + /* rxring_idx 0:RX_MPDU_QUEUE + * rxring_idx 1:RX_CMD_QUEUE */ + for (rxring_idx = 0; rxring_idx < RTL_PCI_MAX_RX_QUEUE; rxring_idx++) { + ret = _rtl_pci_init_rx_ring(hw, rxring_idx); + if (ret) + return ret; + } + + for (i = 0; i < RTL_PCI_MAX_TX_QUEUE_COUNT; i++) { + ret = _rtl_pci_init_tx_ring(hw, i, rtlpci->txringcount[i]); + if (ret) + goto err_free_rings; + } + + return 0; + +err_free_rings: + for (rxring_idx = 0; rxring_idx < RTL_PCI_MAX_RX_QUEUE; rxring_idx++) + _rtl_pci_free_rx_ring(hw, rxring_idx); + + for (i = 0; i < RTL_PCI_MAX_TX_QUEUE_COUNT; i++) + if (rtlpci->tx_ring[i].desc || + rtlpci->tx_ring[i].buffer_desc) + _rtl_pci_free_tx_ring(hw, i); + + return 1; +} + +static int _rtl_pci_deinit_trx_ring(struct ieee80211_hw *hw) +{ + u32 i, rxring_idx; + + /*free rx rings */ + for (rxring_idx = 0; rxring_idx < RTL_PCI_MAX_RX_QUEUE; rxring_idx++) + _rtl_pci_free_rx_ring(hw, rxring_idx); + + /*free tx rings */ + for (i = 0; i < RTL_PCI_MAX_TX_QUEUE_COUNT; i++) + _rtl_pci_free_tx_ring(hw, i); + + return 0; +} + +int rtl_pci_reset_trx_ring(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + int i, rxring_idx; + unsigned long flags; + u8 tmp_one = 1; + /* rxring_idx 0:RX_MPDU_QUEUE */ + /* rxring_idx 1:RX_CMD_QUEUE */ + for (rxring_idx = 0; rxring_idx < RTL_PCI_MAX_RX_QUEUE; rxring_idx++) { + /* force the rx_ring[RX_MPDU_QUEUE/ + * RX_CMD_QUEUE].idx to the first one */ + /*new trx flow, do nothing*/ + if ((rtlpriv->use_new_trx_flow == false) && + rtlpci->rx_ring[rxring_idx].desc) { + struct rtl_rx_desc *entry = NULL; + + for (i = 0; i < rtlpci->rxringcount; i++) { + entry = &rtlpci->rx_ring[rxring_idx].desc[i]; + rtlpriv->cfg->ops->set_desc(hw, (u8 *) entry, + false, + HW_DESC_RXOWN, + (u8 *) & tmp_one); + } + } + rtlpci->rx_ring[rxring_idx].idx = 0; } + + /* after reset, release previous pending packet, + * and force the tx idx to the first one */ + spin_lock_irqsave(&rtlpriv->locks.irq_th_lock, flags); + for (i = 0; i < RTL_PCI_MAX_TX_QUEUE_COUNT; i++) { + if (rtlpci->tx_ring[i].desc || + rtlpci->tx_ring[i].buffer_desc) { + struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[i]; + + while (skb_queue_len(&ring->queue)) { + u8 *entry; + struct sk_buff *skb = + __skb_dequeue(&ring->queue); + if (rtlpriv->use_new_trx_flow) + entry = (u8 *)(&ring->buffer_desc + [ring->idx]); + else + entry = (u8 *)(&ring->desc[ring->idx]); + + pci_unmap_single(rtlpci->pdev, + le32_to_cpu(rtlpriv->cfg->ops->get_desc( + (u8 *)entry, true, + HW_DESC_TXBUFF_ADDR)), + skb->len, PCI_DMA_TODEVICE); + kfree_skb(skb); + ring->idx = (ring->idx + 1) % ring->entries; + } + ring->idx = 0; + } + } + + spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags); + + return 0; +} + +/**/ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) +static bool rtl_pci_tx_chk_waitq_insert(struct ieee80211_hw *hw, + struct sk_buff *skb) +#else +/**/ +static bool rtl_pci_tx_chk_waitq_insert(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, + struct sk_buff *skb) +/**/ +#endif +/**/ +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); +/**/ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) + struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); + struct ieee80211_sta *sta = info->control.sta; +#endif +/**/ + struct rtl_sta_info *sta_entry = NULL; + u8 tid = rtl_get_tid(skb); + u16 fc = rtl_get_fc(skb); + + if(!sta) + return false; + sta_entry = (struct rtl_sta_info *)sta->drv_priv; + + if (!rtlpriv->rtlhal.b_earlymode_enable) + return false; + if (ieee80211_is_nullfunc(fc)) + return false; + if (ieee80211_is_qos_nullfunc(fc)) + return false; + if (ieee80211_is_pspoll(fc)) { + return false; + } + + if (sta_entry->tids[tid].agg.agg_state != RTL_AGG_OPERATIONAL) + return false; + if (_rtl_mac_to_hwqueue(hw, skb) > VO_QUEUE) + return false; + if (tid > 7) + return false; + /* maybe every tid should be checked */ + if (!rtlpriv->link_info.higher_busytxtraffic[tid]) + return false; + + spin_lock_bh(&rtlpriv->locks.waitq_lock); + skb_queue_tail(&rtlpriv->mac80211.skb_waitq[tid], skb); + spin_unlock_bh(&rtlpriv->locks.waitq_lock); + + return true; +} + +/**/ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) +int rtl_pci_tx(struct ieee80211_hw *hw, struct sk_buff *skb, + struct rtl_tcb_desc *ptcb_desc) +#else +/**/ +static int rtl_pci_tx(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, + struct sk_buff *skb, + struct rtl_tcb_desc *ptcb_desc) +/**/ +#endif +/**/ +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_sta_info *sta_entry = NULL; + struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); +/**/ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) + struct ieee80211_sta *sta = info->control.sta; +#endif +/**/ + struct rtl8192_tx_ring *ring; + struct rtl_tx_desc *pdesc; + struct rtl_tx_buffer_desc *ptx_bd_desc = NULL; + u16 idx; + u8 own; + u8 temp_one = 1; + u8 hw_queue = _rtl_mac_to_hwqueue(hw, skb); + unsigned long flags; + struct ieee80211_hdr *hdr = rtl_get_hdr(skb); + u16 fc = rtl_get_fc(skb); + u8 *pda_addr = hdr->addr1; + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + /*ssn */ + u8 tid = 0; + u16 seq_number = 0; + + + if (ieee80211_is_mgmt(fc)) + rtl_tx_mgmt_proc(hw, skb); + + if (rtlpriv->psc.sw_ps_enabled) { + if (ieee80211_is_data(fc) && !ieee80211_is_nullfunc(fc) && + !ieee80211_has_pm(fc)) + hdr->frame_control |= cpu_to_le16(IEEE80211_FCTL_PM); + } + + rtl_action_proc(hw, skb, true); + + if (is_multicast_ether_addr(pda_addr)) + rtlpriv->stats.txbytesmulticast += skb->len; + else if (is_broadcast_ether_addr(pda_addr)) + rtlpriv->stats.txbytesbroadcast += skb->len; + else + rtlpriv->stats.txbytesunicast += skb->len; + + spin_lock_irqsave(&rtlpriv->locks.irq_th_lock, flags); + ring = &rtlpci->tx_ring[hw_queue]; + if (hw_queue != BEACON_QUEUE) { + if (rtlpriv->use_new_trx_flow) + idx = ring->cur_tx_wp; + else + idx = (ring->idx + skb_queue_len(&ring->queue)) % + ring->entries; + } else { + idx = 0; + } + + pdesc = &ring->desc[idx]; + + if (rtlpriv->use_new_trx_flow) { + ptx_bd_desc = &ring->buffer_desc[idx]; + } else { + own = (u8) rtlpriv->cfg->ops->get_desc((u8 *) pdesc, + true, HW_DESC_OWN); + + if ((own == 1) && (hw_queue != BEACON_QUEUE)) { + RT_TRACE(COMP_ERR, DBG_WARNING, + ("No more TX desc@%d, ring->idx = %d," + "idx = %d, skb_queue_len = 0x%d\n", + hw_queue, ring->idx, idx, + skb_queue_len(&ring->queue))); + + spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, + flags); + return skb->len; + } + } + + if (ieee80211_is_data_qos(fc)) { + tid = rtl_get_tid(skb); + if (sta) { + sta_entry = (struct rtl_sta_info *)sta->drv_priv; + seq_number = (le16_to_cpu(hdr->seq_ctrl) & + IEEE80211_SCTL_SEQ) >> 4; + seq_number += 1; + + if (!ieee80211_has_morefrags(hdr->frame_control)) + sta_entry->tids[tid].seq_number = seq_number; + } + } + + if (ieee80211_is_data(fc)) + rtlpriv->cfg->ops->led_control(hw, LED_CTL_TX); + +/**/ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) + rtlpriv->cfg->ops->fill_tx_desc(hw, hdr, (u8 *) pdesc, + (u8 *)ptx_bd_desc, info, skb, + hw_queue, ptcb_desc); +#else +/**/ + rtlpriv->cfg->ops->fill_tx_desc(hw, hdr, (u8 *) pdesc, + (u8 *)ptx_bd_desc, info, sta, skb, + hw_queue, ptcb_desc); +/**/ +#endif +/**/ + + __skb_queue_tail(&ring->queue, skb); + if (rtlpriv->use_new_trx_flow) { + rtlpriv->cfg->ops->set_desc(hw, (u8 *) pdesc, true, + HW_DESC_OWN, (u8 *) & hw_queue); + } else { + rtlpriv->cfg->ops->set_desc(hw, (u8 *) pdesc, true, + HW_DESC_OWN, (u8 *) & temp_one); + } + + if ((ring->entries - skb_queue_len(&ring->queue)) < 2 && + hw_queue != BEACON_QUEUE) { + + RT_TRACE(COMP_ERR, DBG_LOUD, + ("less desc left, stop skb_queue@%d, " + "ring->idx = %d," + "idx = %d, skb_queue_len = 0x%d\n", + hw_queue, ring->idx, idx, + skb_queue_len(&ring->queue))); + + ieee80211_stop_queue(hw, skb_get_queue_mapping(skb)); + } + + spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags); + + rtlpriv->cfg->ops->tx_polling(hw, hw_queue); + + return 0; +} +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) +static void rtl_pci_flush(struct ieee80211_hw *hw, u32 queues, bool drop) +#else +static void rtl_pci_flush(struct ieee80211_hw *hw, bool drop) +#endif +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u16 i = 0; + int queue_id; + struct rtl8192_tx_ring *ring; + + if (mac->skip_scan) + return; + + for (queue_id = RTL_PCI_MAX_TX_QUEUE_COUNT - 1; queue_id >= 0;) { + u32 queue_len; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) + if (((queues >> queue_id) & 0x1) == 0) { + queue_id--; + continue; + } +#endif + ring = &pcipriv->dev.tx_ring[queue_id]; + queue_len = skb_queue_len(&ring->queue); + if (queue_len == 0 || queue_id == BEACON_QUEUE || + queue_id == TXCMD_QUEUE) { + queue_id--; + continue; + } else { + msleep(5); + i++; + } + + /* we just wait 1s for all queues */ + if (rtlpriv->psc.rfpwr_state == ERFOFF || + is_hal_stop(rtlhal) || i >= 200) + return; + } +} + +void rtl_pci_deinit(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + + _rtl_pci_deinit_trx_ring(hw); + + synchronize_irq(rtlpci->pdev->irq); + tasklet_kill(&rtlpriv->works.irq_tasklet); + + flush_workqueue(rtlpriv->works.rtl_wq); + destroy_workqueue(rtlpriv->works.rtl_wq); + +} + +int rtl_pci_init(struct ieee80211_hw *hw, struct pci_dev *pdev) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + int err; + + _rtl_pci_init_struct(hw, pdev); + + err = _rtl_pci_init_trx_ring(hw); + if (err) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("tx ring initialization failed")); + return err; + } + + return 1; +} + +int rtl_pci_start(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + + int err = 0; + RT_TRACE(COMP_INIT, DBG_DMESG, (" rtl_pci_start \n")); + rtl_pci_reset_trx_ring(hw); + + rtlpriv->rtlhal.driver_is_goingto_unload = false; + err = rtlpriv->cfg->ops->hw_init(hw); + if (err) { + RT_TRACE(COMP_INIT, DBG_DMESG, + ("Failed to config hardware err %x!\n",err)); + return err; + } + + rtlpriv->cfg->ops->enable_interrupt(hw); + RT_TRACE(COMP_INIT, DBG_LOUD, ("enable_interrupt OK\n")); + + rtl_init_rx_config(hw); + + /*should after adapter start and interrupt enable. */ + set_hal_start(rtlhal); + + RT_CLEAR_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC); + + rtlpriv->rtlhal.up_first_time = false; + + RT_TRACE(COMP_INIT, DBG_DMESG, ("rtl_pci_start OK\n")); + return 0; +} + +void rtl_pci_stop(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 RFInProgressTimeOut = 0; + + /* + *should before disable interrrupt&adapter + *and will do it immediately. + */ + set_hal_stop(rtlhal); + + rtlpriv->cfg->ops->disable_interrupt(hw); + + spin_lock(&rtlpriv->locks.rf_ps_lock); + while (ppsc->rfchange_inprogress) { + spin_unlock(&rtlpriv->locks.rf_ps_lock); + if (RFInProgressTimeOut > 100) { + spin_lock(&rtlpriv->locks.rf_ps_lock); + break; + } + mdelay(1); + RFInProgressTimeOut++; + spin_lock(&rtlpriv->locks.rf_ps_lock); + } + ppsc->rfchange_inprogress = true; + spin_unlock(&rtlpriv->locks.rf_ps_lock); + + rtlpriv->rtlhal.driver_is_goingto_unload = true; + rtlpriv->cfg->ops->hw_disable(hw); + rtlpriv->cfg->ops->led_control(hw, LED_CTL_POWER_OFF); + + spin_lock(&rtlpriv->locks.rf_ps_lock); + ppsc->rfchange_inprogress = false; + spin_unlock(&rtlpriv->locks.rf_ps_lock); + + rtl_pci_enable_aspm(hw); +} + +static bool _rtl_pci_find_adapter(struct pci_dev *pdev, + struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct pci_dev *bridge_pdev = pdev->bus->self; + u16 venderid; + u16 deviceid; + u8 revisionid; + u16 irqline; + u8 tmp; + + venderid = pdev->vendor; + deviceid = pdev->device; + pci_read_config_byte(pdev, 0x8, &revisionid); + pci_read_config_word(pdev, 0x3C, &irqline); + + if (deviceid == RTL_PCI_8192_DID || + deviceid == RTL_PCI_0044_DID || + deviceid == RTL_PCI_0047_DID || + deviceid == RTL_PCI_8192SE_DID || + deviceid == RTL_PCI_8174_DID || + deviceid == RTL_PCI_8173_DID || + deviceid == RTL_PCI_8172_DID || + deviceid == RTL_PCI_8171_DID) { + switch (revisionid) { + case RTL_PCI_REVISION_ID_8192PCIE: + RT_TRACE(COMP_INIT, DBG_DMESG, + ("8192E is found but not supported now-" + "vid/did=%x/%x\n", venderid, deviceid)); + rtlhal->hw_type = HARDWARE_TYPE_RTL8192E; + return false; + break; + case RTL_PCI_REVISION_ID_8192SE: + RT_TRACE(COMP_INIT, DBG_DMESG, + ("8192SE is found - " + "vid/did=%x/%x\n", venderid, deviceid)); + rtlhal->hw_type = HARDWARE_TYPE_RTL8192SE; + break; + default: + RT_TRACE(COMP_ERR, DBG_WARNING, + ("Err: Unknown device - " + "vid/did=%x/%x\n", venderid, deviceid)); + rtlhal->hw_type = HARDWARE_TYPE_RTL8192SE; + break; + + } + }else if(deviceid == RTL_PCI_8723AE_DID) { + rtlhal->hw_type = HARDWARE_TYPE_RTL8723AE; + RT_TRACE(COMP_INIT, DBG_DMESG, + ("8723AE PCI-E is found - " + "vid/did=%x/%x\n", venderid, deviceid)); + } else if (deviceid == RTL_PCI_8192CET_DID || + deviceid == RTL_PCI_8192CE_DID || + deviceid == RTL_PCI_8191CE_DID || + deviceid == RTL_PCI_8188CE_DID) { + rtlhal->hw_type = HARDWARE_TYPE_RTL8192CE; + RT_TRACE(COMP_INIT, DBG_DMESG, + ("8192C PCI-E is found - " + "vid/did=%x/%x\n", venderid, deviceid)); + } else if (deviceid == RTL_PCI_8192DE_DID || + deviceid == RTL_PCI_8192DE_DID2) { + rtlhal->hw_type = HARDWARE_TYPE_RTL8192DE; + RT_TRACE(COMP_INIT, DBG_DMESG, + ("8192D PCI-E is found - " + "vid/did=%x/%x\n", venderid, deviceid)); + }else if(deviceid == RTL_PCI_8188EE_DID){ + rtlhal->hw_type = HARDWARE_TYPE_RTL8188EE; + RT_TRACE(COMP_INIT,DBG_LOUD, + ("Find adapter, Hardware type is 8188EE\n")); + }else if (deviceid == RTL_PCI_8723BE_DID){ + rtlhal->hw_type = HARDWARE_TYPE_RTL8723BE; + RT_TRACE(COMP_INIT,DBG_LOUD, + ("Find adapter, Hardware type is 8723BE\n")); + }else if (deviceid == RTL_PCI_8192EE_DID){ + rtlhal->hw_type = HARDWARE_TYPE_RTL8192EE; + RT_TRACE(COMP_INIT,DBG_LOUD, + ("Find adapter, Hardware type is 8192EE\n")); + }else if (deviceid == RTL_PCI_8821AE_DID) { + rtlhal->hw_type = HARDWARE_TYPE_RTL8821AE; + RT_TRACE(COMP_INIT,DBG_LOUD, + ("Find adapter, Hardware type is 8821AE\n")); + }else if (deviceid == RTL_PCI_8812AE_DID) { + rtlhal->hw_type = HARDWARE_TYPE_RTL8812AE; + RT_TRACE(COMP_INIT,DBG_LOUD, + ("Find adapter, Hardware type is 8812AE\n")); + }else { + RT_TRACE(COMP_ERR, DBG_WARNING, + ("Err: Unknown device -" + " vid/did=%x/%x\n", venderid, deviceid)); + + rtlhal->hw_type = RTL_DEFAULT_HARDWARE_TYPE; + } + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192DE) { + if (revisionid == 0 || revisionid == 1) { + if (revisionid == 0) { + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Find 92DE MAC0.\n")); + rtlhal->interfaceindex = 0; + } else if (revisionid == 1) { + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Find 92DE MAC1.\n")); + rtlhal->interfaceindex = 1; + } + } else { + RT_TRACE(COMP_INIT, DBG_LOUD, ("Unknown device - " + "VendorID/DeviceID=%x/%x, Revision=%x\n", + venderid, deviceid, revisionid)); + rtlhal->interfaceindex = 0; + } + } + + /* 92ee use new trx flow */ + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8192EE) + rtlpriv->use_new_trx_flow = true; + else + rtlpriv->use_new_trx_flow = false; + + /*find bus info */ + pcipriv->ndis_adapter.busnumber = pdev->bus->number; + pcipriv->ndis_adapter.devnumber = PCI_SLOT(pdev->devfn); + pcipriv->ndis_adapter.funcnumber = PCI_FUNC(pdev->devfn); + + /*find bridge info */ + pcipriv->ndis_adapter.pcibridge_vendor = PCI_BRIDGE_VENDOR_UNKNOWN; + /* some ARM have no bridge_pdev and will crash here + * so we should check if bridge_pdev is NULL */ + if (bridge_pdev) { + pcipriv->ndis_adapter.pcibridge_vendorid = bridge_pdev->vendor; + for (tmp = 0; tmp < PCI_BRIDGE_VENDOR_MAX; tmp++) { + if (bridge_pdev->vendor == pcibridge_vendors[tmp]) { + pcipriv->ndis_adapter.pcibridge_vendor = tmp; + RT_TRACE(COMP_INIT, DBG_DMESG, + ("Pci Bridge Vendor is found index: %d\n", + tmp)); + break; + } + } + } + + if (pcipriv->ndis_adapter.pcibridge_vendor != + PCI_BRIDGE_VENDOR_UNKNOWN) { + pcipriv->ndis_adapter.pcibridge_busnum = + bridge_pdev->bus->number; + pcipriv->ndis_adapter.pcibridge_devnum = + PCI_SLOT(bridge_pdev->devfn); + pcipriv->ndis_adapter.pcibridge_funcnum = + PCI_FUNC(bridge_pdev->devfn); + pcipriv->ndis_adapter.pcicfg_addrport = + (pcipriv->ndis_adapter.pcibridge_busnum << 16) | + (pcipriv->ndis_adapter.pcibridge_devnum << 11) | + (pcipriv->ndis_adapter.pcibridge_funcnum << 8) | (1 << 31); +/**/ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) +/**/ + pcipriv->ndis_adapter.pcibridge_pciehdr_offset = + pci_pcie_cap(bridge_pdev); +/**/ +#else + pcipriv->ndis_adapter.pcibridge_pciehdr_offset = + _rtl_pci_get_pciehdr_offset(hw); +#endif +/**/ + pcipriv->ndis_adapter.num4bytes = + (pcipriv->ndis_adapter.pcibridge_pciehdr_offset + 0x10) / 4; + + rtl_pci_get_linkcontrol_field(hw); + + if (pcipriv->ndis_adapter.pcibridge_vendor == + PCI_BRIDGE_VENDOR_AMD) { + pcipriv->ndis_adapter.amd_l1_patch = + rtl_pci_get_amd_l1_patch(hw); + } + } + + RT_TRACE(COMP_INIT, DBG_DMESG, + ("pcidev busnumber:devnumber:funcnumber:" + "vendor:link_ctl %d:%d:%d:%x:%x\n", + pcipriv->ndis_adapter.busnumber, + pcipriv->ndis_adapter.devnumber, + pcipriv->ndis_adapter.funcnumber, + pdev->vendor, pcipriv->ndis_adapter.linkctrl_reg)); + + RT_TRACE(COMP_INIT, DBG_DMESG, + ("pci_bridge busnumber:devnumber:funcnumber:vendor:" + "pcie_cap:link_ctl_reg:amd %d:%d:%d:%x:%x:%x:%x\n", + pcipriv->ndis_adapter.pcibridge_busnum, + pcipriv->ndis_adapter.pcibridge_devnum, + pcipriv->ndis_adapter.pcibridge_funcnum, + pcibridge_vendors[pcipriv->ndis_adapter.pcibridge_vendor], + pcipriv->ndis_adapter.pcibridge_pciehdr_offset, + pcipriv->ndis_adapter.pcibridge_linkctrlreg, + pcipriv->ndis_adapter.amd_l1_patch)); + + rtl_pci_parse_configuration(pdev, hw); + list_add_tail(&rtlpriv->list, &rtlpriv->glb_var->glb_priv_list); + return true; +} + +static int rtl_pci_intr_mode_msi(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(pcipriv); + int ret; + ret = pci_enable_msi(rtlpci->pdev); + if (ret < 0) + return ret; + + ret = request_irq(rtlpci->pdev->irq, &_rtl_pci_interrupt, + IRQF_SHARED, KBUILD_MODNAME, hw); + if (ret < 0) { + pci_disable_msi(rtlpci->pdev); + return ret; + } + + rtlpci->using_msi = true; + + RT_TRACE(COMP_INIT|COMP_INTR, DBG_DMESG, ("MSI Interrupt Mode!\n")); + return 0; +} + +static int rtl_pci_intr_mode_legacy(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(pcipriv); + int ret; + + ret = request_irq(rtlpci->pdev->irq, &_rtl_pci_interrupt, + IRQF_SHARED, KBUILD_MODNAME, hw); + if (ret < 0) { + return ret; + } + + rtlpci->using_msi = false; + RT_TRACE(COMP_INIT|COMP_INTR, DBG_DMESG, + ("Pin-based Interrupt Mode!\n")); + return 0; +} + +static int rtl_pci_intr_mode_decide(struct ieee80211_hw *hw) +{ + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(pcipriv); + int ret; + if (rtlpci->msi_support == true) { + ret = rtl_pci_intr_mode_msi(hw); + if (ret < 0) + ret = rtl_pci_intr_mode_legacy(hw); + } else { + ret = rtl_pci_intr_mode_legacy(hw); + } + return ret; +} + +/* this is used for other modules get + * hw pointer in rtl_pci_get_hw_pointer */ +struct ieee80211_hw *hw_export = NULL; + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) +int rtl_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *id) + +#else +int __devinit rtl_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *id) +#endif +{ + struct ieee80211_hw *hw = NULL; + + struct rtl_priv *rtlpriv = NULL; + struct rtl_pci_priv *pcipriv = NULL; + struct rtl_pci *rtlpci; + unsigned long pmem_start, pmem_len, pmem_flags; + int err; + + + err = pci_enable_device(pdev); + if (err) { + RT_ASSERT(false, + ("%s : Cannot enable new PCI device\n", + pci_name(pdev))); + return err; + } + + if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) { + if (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) { + RT_ASSERT(false, ("Unable to obtain 32bit DMA " + "for consistent allocations\n")); + pci_disable_device(pdev); + return -ENOMEM; + } + } + + pci_set_master(pdev); + + hw = ieee80211_alloc_hw(sizeof(struct rtl_pci_priv) + + sizeof(struct rtl_priv), &rtl_ops); + if (!hw) { + RT_ASSERT(false, + ("%s : ieee80211 alloc failed\n", pci_name(pdev))); + err = -ENOMEM; + goto fail1; + } + hw_export = hw; + + SET_IEEE80211_DEV(hw, &pdev->dev); + pci_set_drvdata(pdev, hw); + + rtlpriv = hw->priv; + pcipriv = (void *)rtlpriv->priv; + pcipriv->dev.pdev = pdev; + + /* init cfg & intf_ops */ + rtlpriv->rtlhal.interface = INTF_PCI; + rtlpriv->cfg = (struct rtl_hal_cfg *)(id->driver_data); + rtlpriv->intf_ops = &rtl_pci_ops; + rtlpriv->glb_var = &global_var; + + /* + *init dbgp flags before all + *other functions, because we will + *use it in other funtions like + *RT_TRACE/RT_PRINT/RTL_PRINT_DATA + *you can not use these macro + *before this + */ + rtl_dbgp_flag_init(hw); + + /* MEM map */ + err = pci_request_regions(pdev, KBUILD_MODNAME); + if (err) { + RT_ASSERT(false, ("Can't obtain PCI resources\n")); + return err; + } + + pmem_start = pci_resource_start(pdev, rtlpriv->cfg->bar_id); + pmem_len = pci_resource_len(pdev, rtlpriv->cfg->bar_id); + pmem_flags = pci_resource_flags(pdev, rtlpriv->cfg->bar_id); + + /*shared mem start */ + rtlpriv->io.pci_mem_start = + (unsigned long)pci_iomap(pdev, + rtlpriv->cfg->bar_id, pmem_len); + if (rtlpriv->io.pci_mem_start == 0) { + RT_ASSERT(false, ("Can't map PCI mem\n")); + goto fail2; + } + + RT_TRACE(COMP_INIT, DBG_DMESG, + ("mem mapped space: start: 0x%08lx len:%08lx " + "flags:%08lx, after map:0x%08lx\n", + pmem_start, pmem_len, pmem_flags, + rtlpriv->io.pci_mem_start)); + + /* Disable Clk Request */ + pci_write_config_byte(pdev, 0x81, 0); + /* leave D3 mode */ + pci_write_config_byte(pdev, 0x44, 0); + pci_write_config_byte(pdev, 0x04, 0x06); + pci_write_config_byte(pdev, 0x04, 0x07); + + /* find adapter */ + /* if chip not support, will return false */ + if(!_rtl_pci_find_adapter(pdev, hw)) + goto fail3; + + /* Init IO handler */ + _rtl_pci_io_handler_init(&pdev->dev, hw); + + /*like read eeprom and so on */ + rtlpriv->cfg->ops->read_eeprom_info(hw); + + if (rtlpriv->cfg->ops->init_sw_vars(hw)) { + RT_TRACE(COMP_ERR, DBG_EMERG, ("Can't init_sw_vars.\n")); + goto fail3; + } + + rtlpriv->cfg->ops->init_sw_leds(hw); + + /*aspm */ + rtl_pci_init_aspm(hw); + + /* Init mac80211 sw */ + err = rtl_init_core(hw); + if (err) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("Can't allocate sw for mac80211.\n")); + goto fail3; + } + + /* Init PCI sw */ + err = !rtl_pci_init(hw, pdev); + if (err) { + RT_TRACE(COMP_ERR, DBG_EMERG, ("Failed to init PCI.\n")); + goto fail3; + } + + err = ieee80211_register_hw(hw); + if (err) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("Can't register mac80211 hw.\n")); + goto fail3; + } else { + rtlpriv->mac80211.mac80211_registered = 1; + } + /* the wiphy must have been registed to + * cfg80211 prior to regulatory_hint */ + if (regulatory_hint(hw->wiphy, rtlpriv->regd.alpha2)) { + RT_TRACE(COMP_ERR, DBG_WARNING, ("regulatory_hint fail\n")); + } + + err = sysfs_create_group(&pdev->dev.kobj, &rtl_attribute_group); + if (err) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("failed to create sysfs device attributes\n")); + goto fail3; + } + /* add for prov */ + rtl_proc_add_one(hw); + + /*init rfkill */ + rtl_init_rfkill(hw); + + rtlpci = rtl_pcidev(pcipriv); + + err = rtl_pci_intr_mode_decide(hw); + if (err) { + RT_TRACE(COMP_INIT, DBG_DMESG, + ("%s: failed to register IRQ handler\n", + wiphy_name(hw->wiphy))); + goto fail3; + } else { + rtlpci->irq_alloc = 1; + } + + set_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status); + return 0; + +fail3: + pci_set_drvdata(pdev, NULL); + rtl_deinit_core(hw); + ieee80211_free_hw(hw); + + if (rtlpriv->io.pci_mem_start != 0) + pci_iounmap(pdev, (void *)rtlpriv->io.pci_mem_start); + +fail2: + pci_release_regions(pdev); + +fail1: + + pci_disable_device(pdev); + + return -ENODEV; + +} +//EXPORT_SYMBOL(rtl_pci_probe); + +struct ieee80211_hw *rtl_pci_get_hw_pointer(void) +{ + return hw_export; +} +//EXPORT_SYMBOL(rtl_pci_get_hw_pointer); + +void rtl_pci_disconnect(struct pci_dev *pdev) +{ + struct ieee80211_hw *hw = pci_get_drvdata(pdev); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(pcipriv); + struct rtl_mac *rtlmac = rtl_mac(rtlpriv); + + clear_bit(RTL_STATUS_INTERFACE_START, &rtlpriv->status); + + sysfs_remove_group(&pdev->dev.kobj, &rtl_attribute_group); + + /* add for prov */ + rtl_proc_remove_one(hw); + + + /*ieee80211_unregister_hw will call ops_stop */ + if (rtlmac->mac80211_registered == 1) { + ieee80211_unregister_hw(hw); + rtlmac->mac80211_registered = 0; + } else { + rtl_deinit_deferred_work(hw); + rtlpriv->intf_ops->adapter_stop(hw); + } + + /*deinit rfkill */ + rtl_deinit_rfkill(hw); + + rtl_pci_deinit(hw); + rtl_deinit_core(hw); + rtlpriv->cfg->ops->deinit_sw_vars(hw); + + if (rtlpci->irq_alloc) { + synchronize_irq(rtlpci->pdev->irq); + free_irq(rtlpci->pdev->irq, hw); + rtlpci->irq_alloc = 0; + } + + if (rtlpci->using_msi == true) + pci_disable_msi(rtlpci->pdev); + + list_del(&rtlpriv->list); + if (rtlpriv->io.pci_mem_start != 0) { + pci_iounmap(pdev, (void *)rtlpriv->io.pci_mem_start); + pci_release_regions(pdev); + } + + pci_disable_device(pdev); + + rtl_pci_disable_aspm(hw); + + pci_set_drvdata(pdev, NULL); + + ieee80211_free_hw(hw); +} +//EXPORT_SYMBOL(rtl_pci_disconnect); + +/*************************************** +kernel pci power state define: +PCI_D0 ((pci_power_t __force) 0) +PCI_D1 ((pci_power_t __force) 1) +PCI_D2 ((pci_power_t __force) 2) +PCI_D3hot ((pci_power_t __force) 3) +PCI_D3cold ((pci_power_t __force) 4) +PCI_UNKNOWN ((pci_power_t __force) 5) + +This function is called when system +goes into suspend state mac80211 will +call rtl_mac_stop() from the mac80211 +suspend function first, So there is +no need to call hw_disable here. +****************************************/ +int rtl_pci_suspend(struct device *dev) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct ieee80211_hw *hw = pci_get_drvdata(pdev); + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtlpriv->cfg->ops->hw_suspend(hw); + rtl_deinit_rfkill(hw); + + return 0; +} +//EXPORT_SYMBOL(rtl_pci_suspend); + +int rtl_pci_resume(struct device *dev) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct ieee80211_hw *hw = pci_get_drvdata(pdev); + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtlpriv->cfg->ops->hw_resume(hw); + rtl_init_rfkill(hw); + + return 0; +} +//EXPORT_SYMBOL(rtl_pci_resume); + +struct rtl_intf_ops rtl_pci_ops = { + .read_efuse_byte = read_efuse_byte, + .adapter_start = rtl_pci_start, + .adapter_stop = rtl_pci_stop, + .check_buddy_priv = rtl_pci_check_buddy_priv, + .adapter_tx = rtl_pci_tx, + .flush = rtl_pci_flush, + .reset_trx_ring = rtl_pci_reset_trx_ring, + .waitq_insert = rtl_pci_tx_chk_waitq_insert, + + .disable_aspm = rtl_pci_disable_aspm, + .enable_aspm = rtl_pci_enable_aspm, +}; --- linux-3.13.0.orig/drivers/staging/rtl8821ae/pci.h +++ linux-3.13.0/drivers/staging/rtl8821ae/pci.h @@ -0,0 +1,353 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL_PCI_H__ +#define __RTL_PCI_H__ + +#include +/* +1: MSDU packet queue, +2: Rx Command Queue +*/ +#define RTL_PCI_RX_MPDU_QUEUE 0 +#define RTL_PCI_RX_CMD_QUEUE 1 +#define RTL_PCI_MAX_RX_QUEUE 2 + +#define RTL_PCI_MAX_RX_COUNT 512//64 +#define RTL_PCI_MAX_TX_QUEUE_COUNT 9 + +#define RT_TXDESC_NUM 128 +#define TX_DESC_NUM_92E 512 +#define RT_TXDESC_NUM_BE_QUEUE 256 + +#define BK_QUEUE 0 +#define BE_QUEUE 1 +#define VI_QUEUE 2 +#define VO_QUEUE 3 +#define BEACON_QUEUE 4 +#define TXCMD_QUEUE 5 +#define MGNT_QUEUE 6 +#define HIGH_QUEUE 7 +#define HCCA_QUEUE 8 + +#define RTL_PCI_DEVICE(vend, dev, cfg) \ + .vendor = (vend), \ + .device = (dev), \ + .subvendor = PCI_ANY_ID, \ + .subdevice = PCI_ANY_ID,\ + .driver_data = (kernel_ulong_t)&(cfg) + +#define INTEL_VENDOR_ID 0x8086 +#define SIS_VENDOR_ID 0x1039 +#define ATI_VENDOR_ID 0x1002 +#define ATI_DEVICE_ID 0x7914 +#define AMD_VENDOR_ID 0x1022 + +#define PCI_MAX_BRIDGE_NUMBER 255 +#define PCI_MAX_DEVICES 32 +#define PCI_MAX_FUNCTION 8 + +#define PCI_CONF_ADDRESS 0x0CF8 /*PCI Configuration Space Address */ +#define PCI_CONF_DATA 0x0CFC /*PCI Configuration Space Data */ + +#define PCI_CLASS_BRIDGE_DEV 0x06 +#define PCI_SUBCLASS_BR_PCI_TO_PCI 0x04 +#define PCI_CAPABILITY_ID_PCI_EXPRESS 0x10 +#define PCI_CAP_ID_EXP 0x10 + +#define U1DONTCARE 0xFF +#define U2DONTCARE 0xFFFF +#define U4DONTCARE 0xFFFFFFFF + +#define RTL_PCI_8192_DID 0x8192 /*8192 PCI-E */ +#define RTL_PCI_8192SE_DID 0x8192 /*8192 SE */ +#define RTL_PCI_8174_DID 0x8174 /*8192 SE */ +#define RTL_PCI_8173_DID 0x8173 /*8191 SE Crab */ +#define RTL_PCI_8172_DID 0x8172 /*8191 SE RE */ +#define RTL_PCI_8171_DID 0x8171 /*8191 SE Unicron */ +#define RTL_PCI_0045_DID 0x0045 /*8190 PCI for Ceraga */ +#define RTL_PCI_0046_DID 0x0046 /*8190 Cardbus for Ceraga */ +#define RTL_PCI_0044_DID 0x0044 /*8192e PCIE for Ceraga */ +#define RTL_PCI_0047_DID 0x0047 /*8192e Express Card for Ceraga */ +#define RTL_PCI_700F_DID 0x700F +#define RTL_PCI_701F_DID 0x701F +#define RTL_PCI_DLINK_DID 0x3304 +#define RTL_PCI_8723AE_DID 0x8723 /*8723e */ +#define RTL_PCI_8192CET_DID 0x8191 /*8192ce */ +#define RTL_PCI_8192CE_DID 0x8178 /*8192ce */ +#define RTL_PCI_8191CE_DID 0x8177 /*8192ce */ +#define RTL_PCI_8188CE_DID 0x8176 /*8192ce */ +#define RTL_PCI_8192CU_DID 0x8191 /*8192ce */ +#define RTL_PCI_8192DE_DID 0x8193 /*8192de */ +#define RTL_PCI_8192DE_DID2 0x002B /*92DE*/ +#define RTL_PCI_8188EE_DID 0x8179 /*8188ee*/ +#define RTL_PCI_8723BE_DID 0xB723 /*8723be*/ +#define RTL_PCI_8192EE_DID 0x818B /*8192ee*/ +#define RTL_PCI_8821AE_DID 0x8821 /*8821ae*/ +#define RTL_PCI_8812AE_DID 0x8812 /*8812ae*/ + +/*8192 support 16 pages of IO registers*/ +#define RTL_MEM_MAPPED_IO_RANGE_8190PCI 0x1000 +#define RTL_MEM_MAPPED_IO_RANGE_8192PCIE 0x4000 +#define RTL_MEM_MAPPED_IO_RANGE_8192SE 0x4000 +#define RTL_MEM_MAPPED_IO_RANGE_8192CE 0x4000 +#define RTL_MEM_MAPPED_IO_RANGE_8192DE 0x4000 + +#define RTL_PCI_REVISION_ID_8190PCI 0x00 +#define RTL_PCI_REVISION_ID_8192PCIE 0x01 +#define RTL_PCI_REVISION_ID_8192SE 0x10 +#define RTL_PCI_REVISION_ID_8192CE 0x1 +#define RTL_PCI_REVISION_ID_8192DE 0x0 + +#define PCI_VENDOR_ID_REALTEK 0x10ec + +#define RTL_DEFAULT_HARDWARE_TYPE HARDWARE_TYPE_RTL8192CE + +enum pci_bridge_vendor { + PCI_BRIDGE_VENDOR_INTEL = 0x0, /*0b'0000,0001 */ + PCI_BRIDGE_VENDOR_ATI, /*0b'0000,0010*/ + PCI_BRIDGE_VENDOR_AMD, /*0b'0000,0100*/ + PCI_BRIDGE_VENDOR_SIS, /*0b'0000,1000*/ + PCI_BRIDGE_VENDOR_UNKNOWN, /*0b'0100,0000*/ + PCI_BRIDGE_VENDOR_MAX, +}; + +struct rtl_pci_capabilities_header { + u8 capability_id; + u8 next; +}; + +/* In new TRX flow, Buffer_desc is new concept + * But TX wifi info == TX descriptor in old flow + * RX wifi info == RX descriptor in old flow */ +struct rtl_tx_buffer_desc { +#if (RTL8192EE_SEG_NUM == 2) + u32 dword[2*(DMA_IS_64BIT + 1)*8]; //seg = 8 +#elif (RTL8192EE_SEG_NUM == 1) + u32 dword[2*(DMA_IS_64BIT + 1)*4]; //seg = 4 +#elif (RTL8192EE_SEG_NUM == 0) + u32 dword[2*(DMA_IS_64BIT + 1)*2]; //seg = 2 +#endif +} __packed; + +struct rtl_tx_desc {/*old: tx desc*//*new: tx wifi info*/ + u32 dword[16]; +} __packed; + +struct rtl_rx_buffer_desc { /*rx buffer desc*/ + u32 dword[2]; +} __packed; + +struct rtl_rx_desc { /*old: rx desc*//*new: rx wifi info*/ + u32 dword[8]; +} __packed; + +struct rtl_tx_cmd_desc { + u32 dword[16]; +} __packed; + +struct rtl8192_tx_ring { + struct rtl_tx_desc *desc; /*tx desc / tx wifi info*/ + dma_addr_t dma; /*tx desc dma memory / tx wifi info dma memory*/ + unsigned int idx; + unsigned int entries; + struct sk_buff_head queue; + /*add for new trx flow*/ + struct rtl_tx_buffer_desc *buffer_desc; /*tx buffer descriptor*/ + dma_addr_t buffer_desc_dma; /*tx bufferd desc dma memory*/ + u16 avl_desc; /* available_desc_to_write */ + u16 cur_tx_wp; /* current_tx_write_point */ + u16 cur_tx_rp; /* current_tx_read_point */ +}; + +struct rtl8192_rx_ring { + struct rtl_rx_desc *desc;/*for old trx flow, not uesd in new trx*/ + /*dma matches either 'desc' or 'buffer_desc'*/ + dma_addr_t dma; + unsigned int idx; + struct sk_buff *rx_buf[RTL_PCI_MAX_RX_COUNT]; + /*add for new trx flow*/ + struct rtl_rx_buffer_desc *buffer_desc; /*rx buffer descriptor*/ + u16 next_rx_rp; /* next_rx_read_point */ +}; + +struct rtl_pci { + struct pci_dev *pdev; + bool irq_enabled; + + /*Tx */ + struct rtl8192_tx_ring tx_ring[RTL_PCI_MAX_TX_QUEUE_COUNT]; + int txringcount[RTL_PCI_MAX_TX_QUEUE_COUNT]; + u32 transmit_config; + + /*Rx */ + struct rtl8192_rx_ring rx_ring[RTL_PCI_MAX_RX_QUEUE]; + int rxringcount; + u16 rxbuffersize; + u32 receive_config; + + /*irq */ + u8 irq_alloc; + u32 irq_mask[2]; + u32 sys_irq_mask; + + /*Bcn control register setting */ + u32 reg_bcn_ctrl_val; + + /*ASPM*/ u8 const_pci_aspm; + u8 const_amdpci_aspm; + u8 const_hwsw_rfoff_d3; + u8 const_support_pciaspm; + /*pci-e bridge */ + u8 const_hostpci_aspm_setting; + /*pci-e device */ + u8 const_devicepci_aspm_setting; + /*If it supports ASPM, Offset[560h] = 0x40, + otherwise Offset[560h] = 0x00. */ + bool b_support_aspm; + bool b_support_backdoor; + + /*QOS & EDCA */ + enum acm_method acm_method; + + u16 shortretry_limit; + u16 longretry_limit; + + /* MSI support */ + bool msi_support; + bool using_msi; +}; + +struct mp_adapter { + u8 linkctrl_reg; + + u8 busnumber; + u8 devnumber; + u8 funcnumber; + + u8 pcibridge_busnum; + u8 pcibridge_devnum; + u8 pcibridge_funcnum; + + u8 pcibridge_vendor; + u16 pcibridge_vendorid; + u16 pcibridge_deviceid; + + u32 pcicfg_addrport; + u8 num4bytes; + + u8 pcibridge_pciehdr_offset; + u8 pcibridge_linkctrlreg; + + bool amd_l1_patch; +}; + +struct rtl_pci_priv { + struct rtl_pci dev; + struct mp_adapter ndis_adapter; + struct rtl_led_ctl ledctl; + struct bt_coexist_info btcoexist; +}; + +#define rtl_pcipriv(hw) (((struct rtl_pci_priv *)(rtl_priv(hw))->priv)) +#define rtl_pcidev(pcipriv) (&((pcipriv)->dev)) + +int rtl_pci_reset_trx_ring(struct ieee80211_hw *hw); + +extern struct rtl_intf_ops rtl_pci_ops; + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) +int rtl_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *id); +#else +int __devinit rtl_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *id); +#endif +void rtl_pci_disconnect(struct pci_dev *pdev); +int rtl_pci_suspend(struct device *dev); +int rtl_pci_resume(struct device *dev); + +static inline u8 pci_read8_sync(struct rtl_priv *rtlpriv, u32 addr) +{ + return 0xff & readb((u8 __iomem *) rtlpriv->io.pci_mem_start + addr); +} + +static inline u16 pci_read16_sync(struct rtl_priv *rtlpriv, u32 addr) +{ + return readw((u8 __iomem *) rtlpriv->io.pci_mem_start + addr); +} + +static inline u32 pci_read32_sync(struct rtl_priv *rtlpriv, u32 addr) +{ + return readl((u8 __iomem *) rtlpriv->io.pci_mem_start + addr); +} + +static inline void pci_write8_async(struct rtl_priv *rtlpriv, u32 addr, u8 val) +{ + writeb(val, (u8 __iomem *) rtlpriv->io.pci_mem_start + addr); +} + +static inline void pci_write16_async(struct rtl_priv *rtlpriv, + u32 addr, u16 val) +{ + writew(val, (u8 __iomem *) rtlpriv->io.pci_mem_start + addr); +} + +static inline void pci_write32_async(struct rtl_priv *rtlpriv, + u32 addr, u32 val) +{ + writel(val, (u8 __iomem *) rtlpriv->io.pci_mem_start + addr); +} + +static inline void rtl_pci_raw_write_port_ulong(u32 port, u32 val) +{ + outl(val, port); +} + +static inline void rtl_pci_raw_write_port_uchar(u32 port, u8 val) +{ + outb(val, port); +} + +static inline void rtl_pci_raw_read_port_uchar(u32 port, u8 * pval) +{ + *pval = inb(port); +} + +static inline void rtl_pci_raw_read_port_ushort(u32 port, u16 * pval) +{ + *pval = inw(port); +} + +static inline void rtl_pci_raw_read_port_ulong(u32 port, u32 * pval) +{ + *pval = inl(port); +} + +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/ps.c +++ linux-3.13.0/drivers/staging/rtl8821ae/ps.c @@ -0,0 +1,1025 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "wifi.h" +#include "base.h" +#include "ps.h" +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +#include +#endif +#include "btcoexist/rtl_btc.h" + +bool rtl_ps_enable_nic(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + bool init_status = true; + + /*<1> reset trx ring */ + if (rtlhal->interface == INTF_PCI) + rtlpriv->intf_ops->reset_trx_ring(hw); + + if (is_hal_stop(rtlhal)) + RT_TRACE(COMP_ERR, DBG_WARNING, ("Driver is already down!\n")); + + /*<2> Enable Adapter */ + rtlpriv->cfg->ops->hw_init(hw); + RT_CLEAR_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC); + /*init_status = false; */ + + /*<3> Enable Interrupt */ + rtlpriv->cfg->ops->enable_interrupt(hw); + + /* */ + rtl_watch_dog_timer_callback((unsigned long)hw); + + return init_status; +} +//EXPORT_SYMBOL(rtl_ps_enable_nic); + +bool rtl_ps_disable_nic(struct ieee80211_hw *hw) +{ + bool status = true; + struct rtl_priv *rtlpriv = rtl_priv(hw); + + /*<1> Stop all timer */ + rtl_deinit_deferred_work(hw); + + /*<2> Disable Interrupt */ + rtlpriv->cfg->ops->disable_interrupt(hw); + + /*<3> Disable Adapter */ + rtlpriv->cfg->ops->hw_disable(hw); + + return status; +} +//EXPORT_SYMBOL(rtl_ps_disable_nic); + +bool rtl_ps_set_rf_state(struct ieee80211_hw *hw, + enum rf_pwrstate state_toset, + u32 changesource, bool protect_or_not) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + enum rf_pwrstate rtstate; + bool b_actionallowed = false; + u16 rfwait_cnt = 0; + + /*protect_or_not = true; */ + + if (protect_or_not) + goto no_protect; + + /* + *Only one thread can change + *the RF state at one time, and others + *should wait to be executed. + */ + while (true) { + spin_lock(&rtlpriv->locks.rf_ps_lock); + if (ppsc->rfchange_inprogress) { + spin_unlock(&rtlpriv->locks.rf_ps_lock); + + RT_TRACE(COMP_ERR, DBG_WARNING, + ("RF Change in progress!" + "Wait to set..state_toset(%d).\n", + state_toset)); + + /* Set RF after the previous action is done. */ + while (ppsc->rfchange_inprogress) { + rfwait_cnt++; + mdelay(1); + /* + *Wait too long, return false to avoid + *to be stuck here. + */ + if (rfwait_cnt > 100) + return false; + } + } else { + ppsc->rfchange_inprogress = true; + spin_unlock(&rtlpriv->locks.rf_ps_lock); + break; + } + } + +no_protect: + rtstate = ppsc->rfpwr_state; + + switch (state_toset) { + case ERFON: + ppsc->rfoff_reason &= (~changesource); + + if ((changesource == RF_CHANGE_BY_HW) && + (ppsc->b_hwradiooff == true)) { + ppsc->b_hwradiooff = false; + } + + if (!ppsc->rfoff_reason) { + ppsc->rfoff_reason = 0; + b_actionallowed = true; + } + + break; + + case ERFOFF: + + if ((changesource == RF_CHANGE_BY_HW) && + (ppsc->b_hwradiooff == false)) { + ppsc->b_hwradiooff = true; + } + + ppsc->rfoff_reason |= changesource; + b_actionallowed = true; + break; + + case ERFSLEEP: + ppsc->rfoff_reason |= changesource; + b_actionallowed = true; + break; + + default: + RT_TRACE(COMP_ERR, DBG_EMERG, ("switch case not process \n")); + break; + } + + if (b_actionallowed) + rtlpriv->cfg->ops->set_rf_power_state(hw, state_toset); + + if (!protect_or_not) { + spin_lock(&rtlpriv->locks.rf_ps_lock); + ppsc->rfchange_inprogress = false; + spin_unlock(&rtlpriv->locks.rf_ps_lock); + } + + return b_actionallowed; +} +//EXPORT_SYMBOL(rtl_ps_set_rf_state); + +static void _rtl_ps_inactive_ps(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + + ppsc->b_swrf_processing = true; + + if (ppsc->inactive_pwrstate == ERFON && rtlhal->interface == INTF_PCI) { + if ((ppsc->reg_rfps_level & RT_RF_OFF_LEVL_ASPM) && + RT_IN_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM) && + rtlhal->interface == INTF_PCI) { + rtlpriv->intf_ops->disable_aspm(hw); + RT_CLEAR_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM); + } + } + + if (rtlpriv->cfg->ops->get_btc_status()){ + rtlpriv->btcoexist.btc_ops->btc_ips_notify(rtlpriv, + ppsc->inactive_pwrstate); + } + rtl_ps_set_rf_state(hw, ppsc->inactive_pwrstate, + RF_CHANGE_BY_IPS, false); + + if (ppsc->inactive_pwrstate == ERFOFF && + rtlhal->interface == INTF_PCI) { + if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_ASPM && + !RT_IN_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM)) { + rtlpriv->intf_ops->enable_aspm(hw); + RT_SET_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM); + } + } + + ppsc->b_swrf_processing = false; +} + +void rtl_ips_nic_off_wq_callback(void *data) +{ + struct rtl_works *rtlworks = + container_of_dwork_rtl(data, struct rtl_works, ips_nic_off_wq); + struct ieee80211_hw *hw = rtlworks->hw; + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + enum rf_pwrstate rtstate; + + if (mac->opmode != NL80211_IFTYPE_STATION) { + RT_TRACE(COMP_ERR, DBG_WARNING, ("not station return\n")); + return; + } + + if (mac->p2p_in_use) + return; + + if (mac->link_state > MAC80211_NOLINK) + return; + + if (is_hal_stop(rtlhal)) + return; + + if (rtlpriv->sec.being_setkey) + return; + + if(rtlpriv->cfg->ops->bt_turn_off_bt_coexist_before_enter_lps) + rtlpriv->cfg->ops->bt_turn_off_bt_coexist_before_enter_lps(hw); + + if (ppsc->b_inactiveps) { + rtstate = ppsc->rfpwr_state; + + /* + *Do not enter IPS in the following conditions: + *(1) RF is already OFF or Sleep + *(2) b_swrf_processing (indicates the IPS is still under going) + *(3) Connectted (only disconnected can trigger IPS) + *(4) IBSS (send Beacon) + *(5) AP mode (send Beacon) + *(6) monitor mode (rcv packet) + */ + + if (rtstate == ERFON && + !ppsc->b_swrf_processing && + (mac->link_state == MAC80211_NOLINK) && + !mac->act_scanning) { + RT_TRACE(COMP_RF, DBG_LOUD, + ("IPSEnter(): Turn off RF.\n")); + + ppsc->inactive_pwrstate = ERFOFF; + ppsc->b_in_powersavemode = true; + + /*rtl_pci_reset_trx_ring(hw); */ + _rtl_ps_inactive_ps(hw); + } + } +} + +void rtl_ips_nic_off(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + /* + *because when link with ap, mac80211 will ask us + *to disable nic quickly after scan before linking, + *this will cause link failed, so we delay 100ms here + */ + queue_delayed_work(rtlpriv->works.rtl_wq, + &rtlpriv->works.ips_nic_off_wq, MSECS(100)); +} + +/* NOTICE: any opmode should exc nic_on, or disable without + * nic_on may something wrong, like adhoc TP*/ +void rtl_ips_nic_on(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + enum rf_pwrstate rtstate; + + cancel_delayed_work(&rtlpriv->works.ips_nic_off_wq); + + spin_lock(&rtlpriv->locks.ips_lock); + if (ppsc->b_inactiveps) { + rtstate = ppsc->rfpwr_state; + + if (rtstate != ERFON && + !ppsc->b_swrf_processing && + ppsc->rfoff_reason <= RF_CHANGE_BY_IPS) { + + ppsc->inactive_pwrstate = ERFON; + ppsc->b_in_powersavemode = false; + _rtl_ps_inactive_ps(hw); + } + } + spin_unlock(&rtlpriv->locks.ips_lock); +} + +/*for FW LPS*/ + +/* + *Determine if we can set Fw into PS mode + *in current condition.Return true if it + *can enter PS mode. + */ +static bool rtl_get_fwlps_doze(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + u32 ps_timediff; + + ps_timediff = jiffies_to_msecs(jiffies - + ppsc->last_delaylps_stamp_jiffies); + + if (ps_timediff < 2000) { + RT_TRACE(COMP_POWER, DBG_LOUD, + ("Delay enter Fw LPS for DHCP, ARP," + " or EAPOL exchanging state.\n")); + return false; + } + + if (mac->link_state != MAC80211_LINKED) + return false; + + if (mac->opmode == NL80211_IFTYPE_ADHOC) + return false; + + return true; +} + +/* Change current and default preamble mode.*/ +void rtl_lps_set_psmode(struct ieee80211_hw *hw, u8 rt_psmode) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + bool enter_fwlps; + + if (mac->opmode == NL80211_IFTYPE_ADHOC) + return; + + if (mac->link_state != MAC80211_LINKED) + return; + + if (ppsc->dot11_psmode == rt_psmode) + return; + + /* Update power save mode configured. */ + ppsc->dot11_psmode = rt_psmode; + + /* + * + *1. Enter PS mode + * Set RPWM to Fw to turn RF off and send H2C fw_pwrmode + * cmd to set Fw into PS mode. + *2. Leave PS mode + * Send H2C fw_pwrmode cmd to Fw to set Fw into Active + * mode and set RPWM to turn RF on. + */ + + if ((ppsc->b_fwctrl_lps) && ppsc->report_linked) { + if (ppsc->dot11_psmode == EACTIVE) { + RT_TRACE(COMP_RF, DBG_DMESG, + ("FW LPS leave ps_mode:%x\n", + FW_PS_ACTIVE_MODE)); + enter_fwlps = false; + ppsc->pwr_mode = FW_PS_ACTIVE_MODE; + ppsc->smart_ps = 0; + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_FW_LPS_ACTION, + (u8 *)(&enter_fwlps)); + if (ppsc->p2p_ps_info.opp_ps) + rtl_p2p_ps_cmd(hw,P2P_PS_ENABLE); + + } else { + if (rtl_get_fwlps_doze(hw)) { + RT_TRACE(COMP_RF, DBG_DMESG, + ("FW LPS enter ps_mode:%x\n", + ppsc->fwctrl_psmode)); + enter_fwlps = true; + ppsc->pwr_mode = ppsc->fwctrl_psmode; + ppsc->smart_ps = 2; + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_FW_LPS_ACTION, + (u8 *)(&enter_fwlps)); + + } else { + /* Reset the power save related parameters. */ + ppsc->dot11_psmode = EACTIVE; + } + } + } +} + +/*Enter the leisure power save mode.*/ +void rtl_lps_enter(struct ieee80211_hw *hw) +{ + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_priv *rtlpriv = rtl_priv(hw); + unsigned long flag; + + if (!ppsc->b_fwctrl_lps) + return; + + if (rtlpriv->sec.being_setkey) + return; + + if (rtlpriv->link_info.b_busytraffic) + return; + + /*sleep after linked 10s, to let DHCP and 4-way handshake ok enough!! */ + if (mac->cnt_after_linked < 5) + return; + + if (mac->opmode == NL80211_IFTYPE_ADHOC) + return; + + if (mac->link_state != MAC80211_LINKED) + return; + + spin_lock_irqsave(&rtlpriv->locks.lps_lock, flag); + + /* Idle for a while if we connect to AP a while ago. */ + if (mac->cnt_after_linked >= 2) { + if (ppsc->dot11_psmode == EACTIVE) { + RT_TRACE(COMP_POWER, DBG_LOUD, + ("Enter 802.11 power save mode...\n")); + + rtl_lps_set_psmode(hw, EAUTOPS); + } + } + + spin_unlock_irqrestore(&rtlpriv->locks.lps_lock, flag); +} + +/*Leave the leisure power save mode.*/ +void rtl_lps_leave(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + unsigned long flag; + + spin_lock_irqsave(&rtlpriv->locks.lps_lock, flag); + + if (ppsc->b_fwctrl_lps) { + if (ppsc->dot11_psmode != EACTIVE) { + + /*FIX ME */ + rtlpriv->cfg->ops->enable_interrupt(hw); + + if (ppsc->reg_rfps_level & RT_RF_LPS_LEVEL_ASPM && + RT_IN_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM) && + rtlhal->interface == INTF_PCI) { + rtlpriv->intf_ops->disable_aspm(hw); + RT_CLEAR_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM); + } + + RT_TRACE(COMP_POWER, DBG_LOUD, + ("Busy Traffic,Leave 802.11 power save..\n")); + + rtl_lps_set_psmode(hw, EACTIVE); + } + } + spin_unlock_irqrestore(&rtlpriv->locks.lps_lock, flag); +} + +/* For sw LPS*/ +void rtl_swlps_beacon(struct ieee80211_hw *hw, void *data, unsigned int len) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct ieee80211_hdr *hdr = (void *) data; + struct ieee80211_tim_ie *tim_ie; + u8 *tim; + u8 tim_len; + bool u_buffed; + bool m_buffed; + + if (mac->opmode != NL80211_IFTYPE_STATION) + return; + + if (!rtlpriv->psc.b_swctrl_lps) + return; + + if (rtlpriv->mac80211.link_state != MAC80211_LINKED) + return; + + if (!rtlpriv->psc.sw_ps_enabled) + return; + + if (rtlpriv->psc.b_fwctrl_lps) + return; + + if (likely(!(hw->conf.flags & IEEE80211_CONF_PS))) + return; + + /* check if this really is a beacon */ + if (!ieee80211_is_beacon(hdr->frame_control)) + return; + + /* min. beacon length + FCS_LEN */ + if (len <= 40 + FCS_LEN) + return; + + /* and only beacons from the associated BSSID, please */ + if (ether_addr_equal(hdr->addr3, rtlpriv->mac80211.bssid)) + return; + + rtlpriv->psc.last_beacon = jiffies; + + tim = rtl_find_ie(data, len - FCS_LEN, WLAN_EID_TIM); + if (!tim) + return; + + if (tim[1] < sizeof(*tim_ie)) + return; + + tim_len = tim[1]; + tim_ie = (struct ieee80211_tim_ie *) &tim[2]; + +/**/ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) +/**/ + if (!WARN_ON_ONCE(!hw->conf.ps_dtim_period)) + rtlpriv->psc.dtim_counter = tim_ie->dtim_count; +/**/ +#else + if (!WARN_ON_ONCE(!mac->vif->bss_conf.dtim_period)) + rtlpriv->psc.dtim_counter = tim_ie->dtim_count; +#endif +/**/ + + /* Check whenever the PHY can be turned off again. */ + + /* 1. What about buffered unicast traffic for our AID? */ + u_buffed = ieee80211_check_tim(tim_ie, tim_len, + rtlpriv->mac80211.assoc_id); + + /* 2. Maybe the AP wants to send multicast/broadcast data? */ + m_buffed = tim_ie->bitmap_ctrl & 0x01; + rtlpriv->psc.multi_buffered = m_buffed; + + /* unicast will process by mac80211 through + * set ~IEEE80211_CONF_PS, So we just check + * multicast frames here */ + if (!m_buffed ) {//&&) {// !rtlpriv->psc.tx_doing) { + /* back to low-power land. and delay is + * prevent null power save frame tx fail */ + queue_delayed_work(rtlpriv->works.rtl_wq, + &rtlpriv->works.ps_work, MSECS(5)); + } else { + RT_TRACE(COMP_POWER, DBG_DMESG, + ("u_bufferd: %x, m_buffered: %x\n", + u_buffed, m_buffed)); + } +} + +void rtl_swlps_rf_awake(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + unsigned long flag; + + if (!rtlpriv->psc.b_swctrl_lps) + return; + if (mac->link_state != MAC80211_LINKED) + return; + + if (ppsc->reg_rfps_level & RT_RF_LPS_LEVEL_ASPM && + RT_IN_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM)) { + rtlpriv->intf_ops->disable_aspm(hw); + RT_CLEAR_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM); + } + + spin_lock_irqsave(&rtlpriv->locks.lps_lock, flag); + rtl_ps_set_rf_state(hw, ERFON, RF_CHANGE_BY_PS, false); + spin_unlock_irqrestore(&rtlpriv->locks.lps_lock, flag); +} + +void rtl_swlps_rfon_wq_callback(void *data) +{ + struct rtl_works *rtlworks = + container_of_dwork_rtl(data, struct rtl_works, ps_rfon_wq); + struct ieee80211_hw *hw = rtlworks->hw; + + rtl_swlps_rf_awake(hw); +} + +void rtl_swlps_rf_sleep(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + unsigned long flag; + u8 sleep_intv; + + if (!rtlpriv->psc.sw_ps_enabled) + return; + + if ((rtlpriv->sec.being_setkey) || + (mac->opmode == NL80211_IFTYPE_ADHOC)) + return; + + /*sleep after linked 10s, to let DHCP and 4-way handshake ok enough!! */ + if ((mac->link_state != MAC80211_LINKED) || (mac->cnt_after_linked < 5)) + return; + + if (rtlpriv->link_info.b_busytraffic) + return; + + spin_lock(&rtlpriv->locks.rf_ps_lock); + if (rtlpriv->psc.rfchange_inprogress) { + spin_unlock(&rtlpriv->locks.rf_ps_lock); + return; + } + spin_unlock(&rtlpriv->locks.rf_ps_lock); + + spin_lock_irqsave(&rtlpriv->locks.lps_lock, flag); + rtl_ps_set_rf_state(hw, ERFSLEEP, RF_CHANGE_BY_PS,false); + spin_unlock_irqrestore(&rtlpriv->locks.lps_lock, flag); + + if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_ASPM && + !RT_IN_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM)) { + rtlpriv->intf_ops->enable_aspm(hw); + RT_SET_PS_LEVEL(ppsc, RT_PS_LEVEL_ASPM); + } + + /* here is power save alg, when this beacon is DTIM + * we will set sleep time to dtim_period * n; + * when this beacon is not DTIM, we will set sleep + * time to sleep_intv = rtlpriv->psc.dtim_counter or + * MAX_SW_LPS_SLEEP_INTV(default set to 5) */ + +/**/ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) +/**/ + if (rtlpriv->psc.dtim_counter == 0) { + if (hw->conf.ps_dtim_period == 1) + sleep_intv = hw->conf.ps_dtim_period * 2; + else + sleep_intv = hw->conf.ps_dtim_period; + } else { + sleep_intv = rtlpriv->psc.dtim_counter; + } +/**/ +#else + if (rtlpriv->psc.dtim_counter == 0) { + if (mac->vif->bss_conf.dtim_period == 1) + sleep_intv = mac->vif->bss_conf.dtim_period * 2; + else + sleep_intv = mac->vif->bss_conf.dtim_period; + } else { + sleep_intv = rtlpriv->psc.dtim_counter; + } +#endif +/**/ + + if (sleep_intv > MAX_SW_LPS_SLEEP_INTV) + sleep_intv = MAX_SW_LPS_SLEEP_INTV; + + /* this print should always be dtim_conter = 0 & + * sleep = dtim_period, that meaons, we should + * awake before every dtim */ + RT_TRACE(COMP_POWER, DBG_DMESG, + ("dtim_counter:%x will sleep :%d beacon_intv\n", + rtlpriv->psc.dtim_counter, sleep_intv)); + + /* we tested that 40ms is enough for sw & hw sw delay */ + queue_delayed_work(rtlpriv->works.rtl_wq, &rtlpriv->works.ps_rfon_wq, + MSECS(sleep_intv * mac->vif->bss_conf.beacon_int - 40)); +} + + +void rtl_swlps_wq_callback(void *data) +{ + struct rtl_works *rtlworks = + container_of_dwork_rtl(data, struct rtl_works, ps_work); + struct ieee80211_hw *hw = rtlworks->hw; + struct rtl_priv *rtlpriv = rtl_priv(hw); + bool ps = false; + + ps = (hw->conf.flags & IEEE80211_CONF_PS); + + /* we can sleep after ps null send ok */ + if (rtlpriv->psc.state_inap) { + rtl_swlps_rf_sleep(hw); + + if (rtlpriv->psc.state && !ps) { + rtlpriv->psc.sleep_ms = + jiffies_to_msecs(jiffies - + rtlpriv->psc.last_action); + } + + if (ps) + rtlpriv->psc.last_slept = jiffies; + + rtlpriv->psc.last_action = jiffies; + rtlpriv->psc.state = ps; + } +} + + +void rtl_p2p_noa_ie(struct ieee80211_hw *hw, void *data, unsigned int len) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct ieee80211_mgmt *mgmt = (void *)data; + struct rtl_p2p_ps_info *p2pinfo = &(rtlpriv->psc.p2p_ps_info); + u8 *pos, *end, *ie; + u16 noa_len; + static u8 p2p_oui_ie_type[4] = {0x50, 0x6f, 0x9a, 0x09}; + u8 noa_num, index,i, noa_index = 0; + bool find_p2p_ie = false , find_p2p_ps_ie = false; + pos = (u8 *)mgmt->u.beacon.variable; + end = data + len; + ie = NULL; + + while (pos + 1 < end) { + + if (pos + 2 + pos[1] > end) + return; + + if (pos[0] == 221 && pos[1] > 4) { + if (memcmp(&pos[2], p2p_oui_ie_type, 4) == 0) { + ie = pos + 2+4; + break; + } + } + pos += 2 + pos[1]; + } + + if (ie == NULL) + return; + find_p2p_ie = true; + /*to find noa ie*/ + while (ie + 1 < end) { + noa_len = READEF2BYTE(&ie[1]); + if (ie + 3 + ie[1] > end) + return; + + if (ie[0] == 12) { + find_p2p_ps_ie = true; + if ( (noa_len - 2) % 13 != 0){ + RT_TRACE(COMP_INIT, DBG_LOUD, + ("P2P notice of absence: " + "invalid length.%d\n",noa_len)); + return; + } else { + noa_num = (noa_len - 2) / 13; + } + noa_index = ie[3]; + if (rtlpriv->psc.p2p_ps_info.p2p_ps_mode == P2P_PS_NONE + || noa_index != p2pinfo->noa_index) { + RT_TRACE(COMP_FW, DBG_LOUD, + ("update NOA ie.\n")); + p2pinfo->noa_index = noa_index; + p2pinfo->opp_ps= (ie[4] >> 7); + p2pinfo->ctwindow = ie[4] & 0x7F; + p2pinfo->noa_num = noa_num; + index = 5; + for (i = 0; i< noa_num; i++){ + p2pinfo->noa_count_type[i] = + READEF1BYTE(ie+index); + index += 1; + p2pinfo->noa_duration[i] = + READEF4BYTE(ie+index); + index += 4; + p2pinfo->noa_interval[i] = + READEF4BYTE(ie+index); + index += 4; + p2pinfo->noa_start_time[i] = + READEF4BYTE(ie+index); + index += 4; + } + + if (p2pinfo->opp_ps == 1) { + p2pinfo->p2p_ps_mode = P2P_PS_CTWINDOW; + /* Driver should wait LPS + * entering CTWindow*/ + if (rtlpriv->psc.b_fw_current_inpsmode){ + rtl_p2p_ps_cmd(hw, + P2P_PS_ENABLE); + } + } else if (p2pinfo->noa_num > 0) { + p2pinfo->p2p_ps_mode = P2P_PS_NOA; + rtl_p2p_ps_cmd(hw, P2P_PS_ENABLE); + } else if (p2pinfo->p2p_ps_mode > P2P_PS_NONE) { + rtl_p2p_ps_cmd(hw, P2P_PS_DISABLE); + } + } + + break; + } + ie += 3 + noa_len; + } + + if (find_p2p_ie == true) { + if ((p2pinfo->p2p_ps_mode > P2P_PS_NONE) && + (find_p2p_ps_ie == false)) + rtl_p2p_ps_cmd(hw, P2P_PS_DISABLE); + } +} + +void rtl_p2p_action_ie(struct ieee80211_hw *hw, void *data, unsigned int len) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct ieee80211_mgmt *mgmt = (void *)data; + struct rtl_p2p_ps_info *p2pinfo = &(rtlpriv->psc.p2p_ps_info); + bool find_p2p_ie = false , find_p2p_ps_ie = false; + u8 noa_num, index,i, noa_index = 0; + u8 *pos, *end, *ie; + u16 noa_len; + static u8 p2p_oui_ie_type[4] = {0x50, 0x6f, 0x9a, 0x09}; + + pos = (u8 *) &mgmt->u.action.category; + end = data + len; + ie = NULL; + + if (pos[0] == 0x7f ) { + if (memcmp(&pos[1], p2p_oui_ie_type, 4) == 0) { + ie = pos + 3+4; + } + } + + if (ie == NULL) + return; + find_p2p_ie = true; + + RT_TRACE(COMP_FW, DBG_LOUD, ("action frame find P2P IE.\n")); + /*to find noa ie*/ + while (ie + 1 < end) { + noa_len = READEF2BYTE(&ie[1]); + if (ie + 3 + ie[1] > end) + return; + + if (ie[0] == 12) { + RT_TRACE(COMP_FW, DBG_LOUD, ("find NOA IE.\n")); + RT_PRINT_DATA(rtlpriv, COMP_FW, DBG_LOUD, ("noa ie "), + ie, noa_len); + find_p2p_ps_ie = true; + if ( (noa_len - 2) % 13 != 0){ + RT_TRACE(COMP_FW, DBG_LOUD, + ("P2P notice of absence: " + "invalid length.%d\n",noa_len)); + return; + } else { + noa_num = (noa_len - 2) / 13; + } + noa_index = ie[3]; + if (rtlpriv->psc.p2p_ps_info.p2p_ps_mode == P2P_PS_NONE + || noa_index != p2pinfo->noa_index) { + p2pinfo->noa_index = noa_index; + p2pinfo->opp_ps= (ie[4] >> 7); + p2pinfo->ctwindow = ie[4] & 0x7F; + p2pinfo->noa_num = noa_num; + index = 5; + for (i = 0; i< noa_num; i++){ + p2pinfo->noa_count_type[i] = + READEF1BYTE(ie+index); + index += 1; + p2pinfo->noa_duration[i] = + READEF4BYTE(ie+index); + index += 4; + p2pinfo->noa_interval[i] = + READEF4BYTE(ie+index); + index += 4; + p2pinfo->noa_start_time[i] = + READEF4BYTE(ie+index); + index += 4; + } + + if (p2pinfo->opp_ps == 1) { + p2pinfo->p2p_ps_mode = P2P_PS_CTWINDOW; + /* Driver should wait LPS + * entering CTWindow */ + if (rtlpriv->psc.b_fw_current_inpsmode){ + rtl_p2p_ps_cmd(hw, + P2P_PS_ENABLE); + } + } else if (p2pinfo->noa_num > 0) { + p2pinfo->p2p_ps_mode = P2P_PS_NOA; + rtl_p2p_ps_cmd(hw, P2P_PS_ENABLE); + } else if (p2pinfo->p2p_ps_mode > P2P_PS_NONE) { + rtl_p2p_ps_cmd(hw, P2P_PS_DISABLE); + } + } + + break; + } + ie += 3 + noa_len; + } + + +} + + +void rtl_p2p_ps_cmd(struct ieee80211_hw *hw,u8 p2p_ps_state) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *rtlps = rtl_psc(rtl_priv(hw)); + struct rtl_p2p_ps_info *p2pinfo = &(rtlpriv->psc.p2p_ps_info); + + RT_TRACE(COMP_FW, DBG_LOUD, (" p2p state %x\n",p2p_ps_state)); + switch (p2p_ps_state) { + case P2P_PS_DISABLE: + p2pinfo->p2p_ps_state = p2p_ps_state; + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_H2C_FW_P2P_PS_OFFLOAD, + (u8 *)(&p2p_ps_state)); + + p2pinfo->noa_index = 0; + p2pinfo->ctwindow = 0; + p2pinfo->opp_ps = 0; + p2pinfo->noa_num = 0; + p2pinfo->p2p_ps_mode = P2P_PS_NONE; + if (rtlps->b_fw_current_inpsmode == true) { + if (rtlps->smart_ps == 0) { + rtlps->smart_ps = 2; + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_H2C_FW_PWRMODE, + (u8 *)(&rtlps->pwr_mode)); + } + + } + break; + case P2P_PS_ENABLE: + if (p2pinfo->p2p_ps_mode > P2P_PS_NONE) { + p2pinfo->p2p_ps_state = p2p_ps_state; + + if (p2pinfo->ctwindow > 0) { + if (rtlps->smart_ps != 0){ + rtlps->smart_ps = 0; + rtlpriv->cfg->ops->set_hw_reg( + hw, HW_VAR_H2C_FW_PWRMODE, + (u8 *)(&rtlps->pwr_mode)); + } + } + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_H2C_FW_P2P_PS_OFFLOAD, + (u8 *)(&p2p_ps_state)); + + } + break; + case P2P_PS_SCAN: + case P2P_PS_SCAN_DONE: + case P2P_PS_ALLSTASLEEP: + if (p2pinfo->p2p_ps_mode > P2P_PS_NONE) { + p2pinfo->p2p_ps_state = p2p_ps_state; + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_H2C_FW_P2P_PS_OFFLOAD, + (u8 *)(&p2p_ps_state)); + } + break; + default: + break; + + } + RT_TRACE(COMP_FW, DBG_LOUD, (" ctwindow %x oppps %x \n", + p2pinfo->ctwindow,p2pinfo->opp_ps)); + RT_TRACE(COMP_FW, DBG_LOUD, ("count %x duration %x index %x interval %x" + " start time %x noa num %x\n", + p2pinfo->noa_count_type[0], + p2pinfo->noa_duration[0], + p2pinfo->noa_index, + p2pinfo->noa_interval[0], + p2pinfo->noa_start_time[0], + p2pinfo->noa_num)); + RT_TRACE(COMP_FW, DBG_LOUD, ("end\n")); +} + +void rtl_p2p_info(struct ieee80211_hw *hw, void *data, unsigned int len) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct ieee80211_hdr *hdr = (void *) data; + + if (!mac->p2p) + return; + if (mac->link_state != MAC80211_LINKED) + return; + /* min. beacon length + FCS_LEN */ + if (len <= 40 + FCS_LEN) + return; + + /* and only beacons from the associated BSSID, please */ + if (ether_addr_equal(hdr->addr3, rtlpriv->mac80211.bssid)) + return; + + /* check if this really is a beacon */ + if (!(ieee80211_is_beacon(hdr->frame_control) || + ieee80211_is_probe_resp(hdr->frame_control) || + ieee80211_is_action(hdr->frame_control))) + return; + + if (ieee80211_is_action(hdr->frame_control)) { + rtl_p2p_action_ie(hw,data,len - FCS_LEN); + } else { + rtl_p2p_noa_ie(hw,data,len - FCS_LEN); + } + +} --- linux-3.13.0.orig/drivers/staging/rtl8821ae/ps.h +++ linux-3.13.0/drivers/staging/rtl8821ae/ps.h @@ -0,0 +1,55 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __REALTEK_RTL_PCI_PS_H__ +#define __REALTEK_RTL_PCI_PS_H__ + +#define MAX_SW_LPS_SLEEP_INTV 5 + +bool rtl_ps_set_rf_state(struct ieee80211_hw *hw, + enum rf_pwrstate state_toset, u32 changesource, + bool protect_or_not); +bool rtl_ps_enable_nic(struct ieee80211_hw *hw); +bool rtl_ps_disable_nic(struct ieee80211_hw *hw); +void rtl_ips_nic_off(struct ieee80211_hw *hw); +void rtl_ips_nic_on(struct ieee80211_hw *hw); +void rtl_ips_nic_off_wq_callback(void *data); +void rtl_lps_enter(struct ieee80211_hw *hw); +void rtl_lps_leave(struct ieee80211_hw *hw); + +void rtl_lps_set_psmode(struct ieee80211_hw *hw, u8 rt_psmode); + +void rtl_swlps_beacon(struct ieee80211_hw *hw, void *data, unsigned int len); +void rtl_swlps_wq_callback(void *data); +void rtl_swlps_rfon_wq_callback(void *data); +void rtl_swlps_rf_awake(struct ieee80211_hw *hw); +void rtl_swlps_rf_sleep(struct ieee80211_hw *hw); +void rtl_p2p_ps_cmd(struct ieee80211_hw *hw,u8 p2p_ps_state); +void rtl_p2p_info(struct ieee80211_hw *hw, void *data, unsigned int len); +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rc.c +++ linux-3.13.0/drivers/staging/rtl8821ae/rc.c @@ -0,0 +1,309 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "wifi.h" +#include "base.h" +#include "rc.h" + +/* + *Finds the highest rate index we can use + *if skb is special data like DHCP/EAPOL, we set should + *it to lowest rate CCK_1M, otherwise we set rate to + *highest rate based on wireless mode used for iwconfig + *show Tx rate. + */ +static u8 _rtl_rc_get_highest_rix(struct rtl_priv *rtlpriv, + struct ieee80211_sta *sta, + struct sk_buff *skb, bool not_data) +{ + struct rtl_mac *rtlmac = rtl_mac(rtlpriv); + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_sta_info *sta_entry = NULL; + u8 wireless_mode = 0; + + /* + *this rate is no use for true rate, firmware + *will control rate at all it just used for + *1.show in iwconfig in B/G mode + *2.in rtl_get_tcb_desc when we check rate is + * 1M we will not use FW rate but user rate. + */ + if (rtlmac->opmode == NL80211_IFTYPE_AP || + rtlmac->opmode == NL80211_IFTYPE_ADHOC || + rtlmac->opmode == NL80211_IFTYPE_MESH_POINT) { + if (sta) { + sta_entry = (struct rtl_sta_info *) sta->drv_priv; + wireless_mode = sta_entry->wireless_mode; + } else { + return 0; + } + } else { + wireless_mode = rtlmac->mode; + } + + if (rtl_is_special_data(rtlpriv->mac80211.hw, skb, true) || not_data) { + return 0; + } else { + if (rtlhal->current_bandtype == BAND_ON_2_4G) { + if (wireless_mode == WIRELESS_MODE_B) { + return B_MODE_MAX_RIX; + } else if (wireless_mode == WIRELESS_MODE_G) { + return G_MODE_MAX_RIX; + } else { + if (get_rf_type(rtlphy) != RF_2T2R) + return N_MODE_MCS7_RIX; + else + return N_MODE_MCS15_RIX; + } + } else { + if (wireless_mode == WIRELESS_MODE_A) { + return A_MODE_MAX_RIX; + } else { + if (get_rf_type(rtlphy) != RF_2T2R) + return N_MODE_MCS7_RIX; + else + return N_MODE_MCS15_RIX; + } + } + } +} + +static void _rtl_rc_rate_set_series(struct rtl_priv *rtlpriv, + struct ieee80211_sta *sta, + struct ieee80211_tx_rate *rate, + struct ieee80211_tx_rate_control *txrc, + u8 tries, char rix, int rtsctsenable, + bool not_data) +{ + struct rtl_mac *mac = rtl_mac(rtlpriv); + u8 sgi_20 = 0, sgi_40 = 0; + + if (sta) { + sgi_20 = sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_20; + sgi_40 = sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_40; + } + rate->count = tries; + rate->idx = rix >= 0x00 ? rix : 0x00; + + if (!not_data) { + if (txrc->short_preamble) + rate->flags |= IEEE80211_TX_RC_USE_SHORT_PREAMBLE; + if (mac->opmode == NL80211_IFTYPE_AP || + mac->opmode == NL80211_IFTYPE_ADHOC) { + if (sta && (sta->ht_cap.cap & + IEEE80211_HT_CAP_SUP_WIDTH_20_40)) + rate->flags |= IEEE80211_TX_RC_40_MHZ_WIDTH; + } else { + if (mac->bw_40) + rate->flags |= IEEE80211_TX_RC_40_MHZ_WIDTH; + } + if (sgi_20 || sgi_40) + rate->flags |= IEEE80211_TX_RC_SHORT_GI; + if (sta && sta->ht_cap.ht_supported) + rate->flags |= IEEE80211_TX_RC_MCS; + } +} + +static void rtl_get_rate(void *ppriv, struct ieee80211_sta *sta, + void *priv_sta, + struct ieee80211_tx_rate_control *txrc) +{ + struct rtl_priv *rtlpriv = ppriv; + struct sk_buff *skb = txrc->skb; + struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb); + struct ieee80211_tx_rate *rates = tx_info->control.rates; + __le16 fc = rtl_get_fc(skb); + u8 try_per_rate, i, rix; + bool not_data = !ieee80211_is_data(fc); + + if (rate_control_send_low(sta, priv_sta, txrc)) + return; + + rix = _rtl_rc_get_highest_rix(rtlpriv, sta, skb, not_data); + try_per_rate = 1; + _rtl_rc_rate_set_series(rtlpriv, sta, &rates[0], txrc, + try_per_rate, rix, 1, not_data); + + if (!not_data) { + for (i = 1; i < 4; i++) + _rtl_rc_rate_set_series(rtlpriv, sta, &rates[i], + txrc, i, (rix - i), 1, + not_data); + } +} + +static bool _rtl_tx_aggr_check(struct rtl_priv *rtlpriv, + struct rtl_sta_info *sta_entry, u16 tid) +{ + struct rtl_mac *mac = rtl_mac(rtlpriv); + + if (mac->act_scanning) + return false; + + if (mac->opmode == NL80211_IFTYPE_STATION && + mac->cnt_after_linked < 3) + return false; + + if (sta_entry->tids[tid].agg.agg_state == RTL_AGG_STOP) + return true; + + return false; +} + +/*mac80211 Rate Control callbacks*/ +static void rtl_tx_status(void *ppriv, + struct ieee80211_supported_band *sband, + struct ieee80211_sta *sta, void *priv_sta, + struct sk_buff *skb) +{ + struct rtl_priv *rtlpriv = ppriv; + struct rtl_mac *mac = rtl_mac(rtlpriv); + struct ieee80211_hdr *hdr = rtl_get_hdr(skb); + __le16 fc = rtl_get_fc(skb); + struct rtl_sta_info *sta_entry; + + if (!priv_sta || !ieee80211_is_data(fc)) + return; + + if (rtl_is_special_data(mac->hw, skb, true)) + return; + + if (is_multicast_ether_addr(ieee80211_get_DA(hdr)) || + is_broadcast_ether_addr(ieee80211_get_DA(hdr))) + return; + + if (sta) { + /* Check if aggregation has to be enabled for this tid */ + sta_entry = (struct rtl_sta_info *) sta->drv_priv; + if ((sta->ht_cap.ht_supported == true) && + !(skb->protocol == cpu_to_be16(ETH_P_PAE))) { + if (ieee80211_is_data_qos(fc)) { + u8 tid = rtl_get_tid(skb); + if (_rtl_tx_aggr_check(rtlpriv, sta_entry, + tid)) { + sta_entry->tids[tid].agg.agg_state = + RTL_AGG_PROGRESS; + /**/ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) + /**/ + ieee80211_start_tx_ba_session(sta, tid, + 5000); + /**/ +#else + ieee80211_start_tx_ba_session(sta, tid); +#endif + /**/ + } + } + } + } +} + +static void rtl_rate_init(void *ppriv, + struct ieee80211_supported_band *sband, + struct cfg80211_chan_def *chandef, + struct ieee80211_sta *sta, void *priv_sta) +{ +} +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) +static void rtl_rate_update(void *ppriv, + struct ieee80211_supported_band *sband, + struct ieee80211_sta *sta, void *priv_sta, + u32 changed, + enum nl80211_channel_type oper_chan_type) +{ +} +#else +static void rtl_rate_update(void *ppriv, + struct ieee80211_supported_band *sband, + struct cfg80211_chan_def *chandef, + struct ieee80211_sta *sta, void *priv_sta, + u32 changed) +{ +} +#endif +static void *rtl_rate_alloc(struct ieee80211_hw *hw, struct dentry *debugfsdir) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + return rtlpriv; +} + +static void rtl_rate_free(void *rtlpriv) +{ + return; +} + +static void *rtl_rate_alloc_sta(void *ppriv, + struct ieee80211_sta *sta, gfp_t gfp) +{ + struct rtl_priv *rtlpriv = ppriv; + struct rtl_rate_priv *rate_priv; + + rate_priv = kzalloc(sizeof(struct rtl_rate_priv), gfp); + if (!rate_priv) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("Unable to allocate private rc structure\n")); + return NULL; + } + + rtlpriv->rate_priv = rate_priv; + + return rate_priv; +} + +static void rtl_rate_free_sta(void *rtlpriv, + struct ieee80211_sta *sta, void *priv_sta) +{ + struct rtl_rate_priv *rate_priv = priv_sta; + kfree(rate_priv); +} + +static struct rate_control_ops rtl_rate_ops = { + .module = NULL, + .name = "rtl_rc", + .alloc = rtl_rate_alloc, + .free = rtl_rate_free, + .alloc_sta = rtl_rate_alloc_sta, + .free_sta = rtl_rate_free_sta, + .rate_init = rtl_rate_init, + .rate_update = rtl_rate_update, + .tx_status = rtl_tx_status, + .get_rate = rtl_get_rate, +}; + +int rtl_rate_control_register(void) +{ + return ieee80211_rate_control_register(&rtl_rate_ops); +} + +void rtl_rate_control_unregister(void) +{ + ieee80211_rate_control_unregister(&rtl_rate_ops); +} --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rc.h +++ linux-3.13.0/drivers/staging/rtl8821ae/rc.h @@ -0,0 +1,47 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL_RC_H__ +#define __RTL_RC_H__ + +#define B_MODE_MAX_RIX 3 +#define G_MODE_MAX_RIX 11 +#define A_MODE_MAX_RIX 7 + +/* in mac80211 mcs0-mcs15 is idx0-idx15*/ +#define N_MODE_MCS7_RIX 7 +#define N_MODE_MCS15_RIX 15 + +struct rtl_rate_priv { + u8 ht_cap; +}; + +int rtl_rate_control_register(void); +void rtl_rate_control_unregister(void); +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/regd.c +++ linux-3.13.0/drivers/staging/rtl8821ae/regd.c @@ -0,0 +1,503 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "wifi.h" +#include "regd.h" + +static struct country_code_to_enum_rd allCountries[] = { + {COUNTRY_CODE_FCC, "US"}, + {COUNTRY_CODE_IC, "US"}, + {COUNTRY_CODE_ETSI, "EC"}, + {COUNTRY_CODE_SPAIN, "EC"}, + {COUNTRY_CODE_FRANCE, "EC"}, + {COUNTRY_CODE_MKK, "JP"}, + {COUNTRY_CODE_MKK1, "JP"}, + {COUNTRY_CODE_ISRAEL, "EC"}, + {COUNTRY_CODE_TELEC, "JP"}, + {COUNTRY_CODE_MIC, "JP"}, + {COUNTRY_CODE_GLOBAL_DOMAIN, "JP"}, + {COUNTRY_CODE_WORLD_WIDE_13, "EC"}, + {COUNTRY_CODE_TELEC_NETGEAR, "EC"}, +}; + +/* + *Only these channels all allow active + *scan on all world regulatory domains + */ +#define RTL819x_2GHZ_CH01_11 \ + REG_RULE(2412-10, 2462+10, 40, 0, 20, 0) + +/* + *We enable active scan on these a case + *by case basis by regulatory domain + */ +#define RTL819x_2GHZ_CH12_13 \ + REG_RULE(2467-10, 2472+10, 40, 0, 20,\ + NL80211_RRF_PASSIVE_SCAN) + +#define RTL819x_2GHZ_CH14 \ + REG_RULE(2484-10, 2484+10, 40, 0, 20, \ + NL80211_RRF_PASSIVE_SCAN | \ + NL80211_RRF_NO_OFDM) + +/* 5G chan 36 - chan 64*/ +#define RTL819x_5GHZ_5150_5350 \ + REG_RULE(5150-10, 5350+10, 40, 0, 30, \ + NL80211_RRF_PASSIVE_SCAN | \ + NL80211_RRF_NO_IBSS) + +/* 5G chan 100 - chan 165*/ +#define RTL819x_5GHZ_5470_5850 \ + REG_RULE(5470-10, 5850+10, 40, 0, 30, \ + NL80211_RRF_PASSIVE_SCAN | \ + NL80211_RRF_NO_IBSS) + +/* 5G chan 149 - chan 165*/ +#define RTL819x_5GHZ_5725_5850 \ + REG_RULE(5725-10, 5850+10, 40, 0, 30, \ + NL80211_RRF_PASSIVE_SCAN | \ + NL80211_RRF_NO_IBSS) + +#define RTL819x_5GHZ_ALL \ + RTL819x_5GHZ_5150_5350, RTL819x_5GHZ_5470_5850 + +static const struct ieee80211_regdomain rtl_regdom_11 = { + .n_reg_rules = 1, + .alpha2 = "99", + .reg_rules = { + RTL819x_2GHZ_CH01_11, + } +}; + +static const struct ieee80211_regdomain rtl_regdom_12_13 = { + .n_reg_rules = 2, + .alpha2 = "99", + .reg_rules = { + RTL819x_2GHZ_CH01_11, + RTL819x_2GHZ_CH12_13, + } +}; + +static const struct ieee80211_regdomain rtl_regdom_no_midband = { + .n_reg_rules = 3, + .alpha2 = "99", + .reg_rules = { + RTL819x_2GHZ_CH01_11, + RTL819x_5GHZ_5150_5350, + RTL819x_5GHZ_5725_5850, + } +}; + +static const struct ieee80211_regdomain rtl_regdom_60_64 = { + .n_reg_rules = 3, + .alpha2 = "99", + .reg_rules = { + RTL819x_2GHZ_CH01_11, + RTL819x_2GHZ_CH12_13, + RTL819x_5GHZ_5725_5850, + } +}; + +static const struct ieee80211_regdomain rtl_regdom_14_60_64 = { + .n_reg_rules = 4, + .alpha2 = "99", + .reg_rules = { + RTL819x_2GHZ_CH01_11, + RTL819x_2GHZ_CH12_13, + RTL819x_2GHZ_CH14, + RTL819x_5GHZ_5725_5850, + } +}; + +static const struct ieee80211_regdomain rtl_regdom_14 = { + .n_reg_rules = 3, + .alpha2 = "99", + .reg_rules = { + RTL819x_2GHZ_CH01_11, + RTL819x_2GHZ_CH12_13, + RTL819x_2GHZ_CH14, + } +}; + +static bool _rtl_is_radar_freq(u16 center_freq) +{ + return (center_freq >= 5260 && center_freq <= 5700); +} + +static void _rtl_reg_apply_beaconing_flags(struct wiphy *wiphy, + enum nl80211_reg_initiator initiator) +{ + enum ieee80211_band band; + struct ieee80211_supported_band *sband; + const struct ieee80211_reg_rule *reg_rule; + struct ieee80211_channel *ch; + unsigned int i; +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,9,0)) + u32 bandwidth = 0; + int r; +#endif + + for (band = 0; band < IEEE80211_NUM_BANDS; band++) { + + if (!wiphy->bands[band]) + continue; + + sband = wiphy->bands[band]; + + for (i = 0; i < sband->n_channels; i++) { + ch = &sband->channels[i]; + if (_rtl_is_radar_freq(ch->center_freq) || + (ch->flags & IEEE80211_CHAN_RADAR)) + continue; + if (initiator == NL80211_REGDOM_SET_BY_COUNTRY_IE) { +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + reg_rule = freq_reg_info(wiphy, ch->center_freq); + if (IS_ERR(reg_rule)) + continue; +#else + r = freq_reg_info(wiphy, ch->center_freq, + bandwidth, ®_rule); + if (r) + continue; +#endif + + /* + *If 11d had a rule for this channel ensure + *we enable adhoc/beaconing if it allows us to + *use it. Note that we would have disabled it + *by applying our static world regdomain by + *default during init, prior to calling our + *regulatory_hint(). + */ + + if (!(reg_rule->flags & NL80211_RRF_NO_IBSS)) + ch->flags &= ~IEEE80211_CHAN_NO_IBSS; + if (!(reg_rule->flags & + NL80211_RRF_PASSIVE_SCAN)) + ch->flags &= + ~IEEE80211_CHAN_PASSIVE_SCAN; + } else { + if (ch->beacon_found) + ch->flags &= ~(IEEE80211_CHAN_NO_IBSS | + IEEE80211_CHAN_PASSIVE_SCAN); + } + } + } +} + +/* Allows active scan scan on Ch 12 and 13 */ +static void _rtl_reg_apply_active_scan_flags(struct wiphy *wiphy, + enum nl80211_reg_initiator + initiator) +{ + struct ieee80211_supported_band *sband; + struct ieee80211_channel *ch; + const struct ieee80211_reg_rule *reg_rule; +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,9,0)) + u32 bandwidth = 0; + int r; +#endif + + if (!wiphy->bands[IEEE80211_BAND_2GHZ]) + return; + sband = wiphy->bands[IEEE80211_BAND_2GHZ]; + + /* + *If no country IE has been received always enable active scan + *on these channels. This is only done for specific regulatory SKUs + */ + if (initiator != NL80211_REGDOM_SET_BY_COUNTRY_IE) { + ch = &sband->channels[11]; /* CH 12 */ + if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) + ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; + ch = &sband->channels[12]; /* CH 13 */ + if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) + ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; + return; + } + + /* + *If a country IE has been recieved check its rule for this + *channel first before enabling active scan. The passive scan + *would have been enforced by the initial processing of our + *custom regulatory domain. + */ + + ch = &sband->channels[11]; /* CH 12 */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + reg_rule = freq_reg_info(wiphy, ch->center_freq); + if (!IS_ERR(reg_rule)) { +#else + r = freq_reg_info(wiphy, ch->center_freq, bandwidth, ®_rule); + if (!r) { +#endif + if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN)) + if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) + ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; + } + + ch = &sband->channels[12]; /* CH 13 */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + reg_rule = freq_reg_info(wiphy, ch->center_freq); + if (!IS_ERR(reg_rule)) { +#else + r = freq_reg_info(wiphy, ch->center_freq, bandwidth, ®_rule); + if (!r) { +#endif + if (!(reg_rule->flags & NL80211_RRF_PASSIVE_SCAN)) + if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) + ch->flags &= ~IEEE80211_CHAN_PASSIVE_SCAN; + } +} + +/* + *Always apply Radar/DFS rules on + *freq range 5260 MHz - 5700 MHz + */ +static void _rtl_reg_apply_radar_flags(struct wiphy *wiphy) +{ + struct ieee80211_supported_band *sband; + struct ieee80211_channel *ch; + unsigned int i; + + if (!wiphy->bands[IEEE80211_BAND_5GHZ]) + return; + + sband = wiphy->bands[IEEE80211_BAND_5GHZ]; + + for (i = 0; i < sband->n_channels; i++) { + ch = &sband->channels[i]; + if (!_rtl_is_radar_freq(ch->center_freq)) + continue; + + /* + *We always enable radar detection/DFS on this + *frequency range. Additionally we also apply on + *this frequency range: + *- If STA mode does not yet have DFS supports disable + * active scanning + *- If adhoc mode does not support DFS yet then disable + * adhoc in the frequency. + *- If AP mode does not yet support radar detection/DFS + *do not allow AP mode + */ + if (!(ch->flags & IEEE80211_CHAN_DISABLED)) + ch->flags |= IEEE80211_CHAN_RADAR | + IEEE80211_CHAN_NO_IBSS | + IEEE80211_CHAN_PASSIVE_SCAN; + } +} + +static void _rtl_reg_apply_world_flags(struct wiphy *wiphy, + enum nl80211_reg_initiator initiator, + struct rtl_regulatory *reg) +{ + _rtl_reg_apply_beaconing_flags(wiphy, initiator); + _rtl_reg_apply_active_scan_flags(wiphy, initiator); + return; +} + +static void _rtl_dump_channel_map(struct wiphy *wiphy) +{ + enum ieee80211_band band; + struct ieee80211_supported_band *sband; + struct ieee80211_channel *ch; + unsigned int i; + + for (band = 0; band < IEEE80211_NUM_BANDS; band++) { + if (!wiphy->bands[band]) + continue; + sband = wiphy->bands[band]; + for (i = 0; i < sband->n_channels; i++) + ch = &sband->channels[i]; + } +} + +static int _rtl_reg_notifier_apply(struct wiphy *wiphy, + struct regulatory_request *request, + struct rtl_regulatory *reg) +{ + /* We always apply this */ + _rtl_reg_apply_radar_flags(wiphy); + + switch (request->initiator) { + case NL80211_REGDOM_SET_BY_DRIVER: + case NL80211_REGDOM_SET_BY_CORE: + case NL80211_REGDOM_SET_BY_USER: + break; + case NL80211_REGDOM_SET_BY_COUNTRY_IE: + _rtl_reg_apply_world_flags(wiphy, request->initiator, reg); + break; + } + + _rtl_dump_channel_map(wiphy); + + return 0; +} + +static const struct ieee80211_regdomain *_rtl_regdomain_select( + struct rtl_regulatory *reg) +{ + switch (reg->country_code) { + case COUNTRY_CODE_FCC: + return &rtl_regdom_no_midband; + case COUNTRY_CODE_IC: + return &rtl_regdom_11; + case COUNTRY_CODE_ETSI: + case COUNTRY_CODE_TELEC_NETGEAR: + return &rtl_regdom_60_64; + case COUNTRY_CODE_SPAIN: + case COUNTRY_CODE_FRANCE: + case COUNTRY_CODE_ISRAEL: + case COUNTRY_CODE_WORLD_WIDE_13: + return &rtl_regdom_12_13; + case COUNTRY_CODE_MKK: + case COUNTRY_CODE_MKK1: + case COUNTRY_CODE_TELEC: + case COUNTRY_CODE_MIC: + return &rtl_regdom_14_60_64; + case COUNTRY_CODE_GLOBAL_DOMAIN: + return &rtl_regdom_14; + default: + return &rtl_regdom_no_midband; + } +} + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) +static int _rtl_regd_init_wiphy(struct rtl_regulatory *reg, + struct wiphy *wiphy, + void (*reg_notifier) (struct wiphy * wiphy, + struct regulatory_request * + request)) +#else +static int _rtl_regd_init_wiphy(struct rtl_regulatory *reg, + struct wiphy *wiphy, + int (*reg_notifier) (struct wiphy * wiphy, + struct regulatory_request * + request)) +#endif +{ + const struct ieee80211_regdomain *regd; + + wiphy->reg_notifier = reg_notifier; + + wiphy->flags |= WIPHY_FLAG_CUSTOM_REGULATORY; + wiphy->flags &= ~WIPHY_FLAG_STRICT_REGULATORY; + wiphy->flags &= ~WIPHY_FLAG_DISABLE_BEACON_HINTS; + + regd = _rtl_regdomain_select(reg); + wiphy_apply_custom_regulatory(wiphy, regd); + _rtl_reg_apply_radar_flags(wiphy); + _rtl_reg_apply_world_flags(wiphy, NL80211_REGDOM_SET_BY_DRIVER, reg); + return 0; +} + +static struct country_code_to_enum_rd *_rtl_regd_find_country(u16 countrycode) +{ + int i; + + for (i = 0; i < ARRAY_SIZE(allCountries); i++) { + if (allCountries[i].countrycode == countrycode) + return &allCountries[i]; + } + return NULL; +} + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) +int rtl_regd_init(struct ieee80211_hw *hw, + void (*reg_notifier) (struct wiphy *wiphy, + struct regulatory_request *request)) +#else +int rtl_regd_init(struct ieee80211_hw *hw, + int (*reg_notifier) (struct wiphy *wiphy, + struct regulatory_request *request)) +#endif +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct wiphy *wiphy = hw->wiphy; + struct country_code_to_enum_rd *country = NULL; + + if (wiphy == NULL || &rtlpriv->regd == NULL) + return -EINVAL; + + /* init country_code from efuse channel plan */ + rtlpriv->regd.country_code = rtlpriv->efuse.channel_plan; + + RT_TRACE(COMP_REGD, DBG_TRACE, + (KERN_DEBUG "rtl: EEPROM regdomain: 0x%0x\n", + rtlpriv->regd.country_code)); + + if (rtlpriv->regd.country_code >= COUNTRY_CODE_MAX) { + RT_TRACE(COMP_REGD, DBG_DMESG, + (KERN_DEBUG "rtl: EEPROM indicates invalid contry code" + "world wide 13 should be used\n")); + + rtlpriv->regd.country_code = COUNTRY_CODE_WORLD_WIDE_13; + } + + country = _rtl_regd_find_country(rtlpriv->regd.country_code); + + if (country) { + rtlpriv->regd.alpha2[0] = country->iso_name[0]; + rtlpriv->regd.alpha2[1] = country->iso_name[1]; + } else { + rtlpriv->regd.alpha2[0] = '0'; + rtlpriv->regd.alpha2[1] = '0'; + } + + RT_TRACE(COMP_REGD, DBG_TRACE, + (KERN_DEBUG "rtl: Country alpha2 being used: %c%c\n", + rtlpriv->regd.alpha2[0], rtlpriv->regd.alpha2[1])); + + _rtl_regd_init_wiphy(&rtlpriv->regd, wiphy, reg_notifier); + + return 0; +} + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) +void rtl_reg_notifier(struct wiphy *wiphy, struct regulatory_request *request) +{ + struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy); + struct rtl_priv *rtlpriv = rtl_priv(hw); + + RT_TRACE(COMP_REGD, DBG_LOUD, ("\n")); + + _rtl_reg_notifier_apply(wiphy, request, &rtlpriv->regd); +} +#else +int rtl_reg_notifier(struct wiphy *wiphy, struct regulatory_request *request) +{ + struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy); + struct rtl_priv *rtlpriv = rtl_priv(hw); + + RT_TRACE(COMP_REGD, DBG_LOUD, ("\n")); + + return _rtl_reg_notifier_apply(wiphy, request, &rtlpriv->regd); +} +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/regd.h +++ linux-3.13.0/drivers/staging/rtl8821ae/regd.h @@ -0,0 +1,75 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL_REGD_H__ +#define __RTL_REGD_H__ + +#define IEEE80211_CHAN_NO_IBSS 1<<2 +#define IEEE80211_CHAN_PASSIVE_SCAN 1<<1 +#define WIPHY_FLAG_CUSTOM_REGULATORY BIT(0) +#define WIPHY_FLAG_STRICT_REGULATORY BIT(1) +#define WIPHY_FLAG_DISABLE_BEACON_HINTS BIT(2) + +struct country_code_to_enum_rd { + u16 countrycode; + const char *iso_name; +}; + +enum country_code_type_t { + COUNTRY_CODE_FCC = 0, + COUNTRY_CODE_IC = 1, + COUNTRY_CODE_ETSI = 2, + COUNTRY_CODE_SPAIN = 3, + COUNTRY_CODE_FRANCE = 4, + COUNTRY_CODE_MKK = 5, + COUNTRY_CODE_MKK1 = 6, + COUNTRY_CODE_ISRAEL = 7, + COUNTRY_CODE_TELEC = 8, + COUNTRY_CODE_MIC = 9, + COUNTRY_CODE_GLOBAL_DOMAIN = 10, + COUNTRY_CODE_WORLD_WIDE_13 = 11, + COUNTRY_CODE_TELEC_NETGEAR = 12, + + /*add new channel plan above this line */ + COUNTRY_CODE_MAX +}; + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) +int rtl_regd_init(struct ieee80211_hw *hw, + void (*reg_notifier) (struct wiphy *wiphy, + struct regulatory_request *request)); +void rtl_reg_notifier(struct wiphy *wiphy, struct regulatory_request *request); +#else +int rtl_regd_init(struct ieee80211_hw *hw, + int (*reg_notifier) (struct wiphy *wiphy, + struct regulatory_request *request)); +int rtl_reg_notifier(struct wiphy *wiphy, struct regulatory_request *request); +#endif + +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/btc.h +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/btc.h @@ -0,0 +1,87 @@ + +/****************************************************************************** + ** + ** Copyright(c) 2009-2010 Realtek Corporation. + ** + ** This program is free software; you can redistribute it and/or modify it + ** under the terms of version 2 of the GNU General Public License as + ** published by the Free Software Foundation. + ** + ** This program is distributed in the hope that it will be useful, but WITHOUT + ** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + ** more details. + ** + ** You should have received a copy of the GNU General Public License along with + ** this program; if not, write to the Free Software Foundation, Inc., + ** 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + ** + ** The full GNU General Public License is included in this distribution in the + ** file called LICENSE. + ** + ** Contact Information: + ** wlanfae + ** Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + ** Hsinchu 300, Taiwan. + ** Larry Finger + ** + ******************************************************************************/ + +#ifndef __RTL8821AE_BTC_H__ +#define __RTL8821AE_BTC_H__ + +#include "../wifi.h" +#include "hal_bt_coexist.h" + +struct bt_coexist_c2h_info { + u8 no_parse_c2h; + u8 has_c2h; +}; + +struct btdm_8821ae { + bool b_all_off; + bool b_agc_table_en; + bool b_adc_back_off_on; + bool b2_ant_hid_en; + bool b_low_penalty_rate_adaptive; + bool b_rf_rx_lpf_shrink; + bool b_reject_aggre_pkt; + bool b_tra_tdma_on; + u8 tra_tdma_nav; + u8 tra_tdma_ant; + bool b_tdma_on; + u8 tdma_ant; + u8 tdma_nav; + u8 tdma_dac_swing; + u8 fw_dac_swing_lvl; + bool b_ps_tdma_on; + u8 ps_tdma_byte[5]; + bool b_pta_on; + u32 val_0x6c0; + u32 val_0x6c8; + u32 val_0x6cc; + bool b_sw_dac_swing_on; + u32 sw_dac_swing_lvl; + u32 wlan_act_hi; + u32 wlan_act_lo; + u32 bt_retry_index; + bool b_dec_bt_pwr; + bool b_ignore_wlan_act; +}; + +struct bt_coexist_8821ae { + u32 high_priority_tx; + u32 high_priority_rx; + u32 low_priority_tx; + u32 low_priority_rx; + u8 c2h_bt_info; + bool b_c2h_bt_info_req_sent; + bool b_c2h_bt_inquiry_page; + u32 bt_inq_page_start_time; + u8 bt_retry_cnt; + u8 c2h_bt_info_original; + u8 bt_inquiry_page_cnt; + struct btdm_8821ae btdm; +}; + +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/def.h +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/def.h @@ -0,0 +1,442 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8821AE_DEF_H__ +#define __RTL8821AE_DEF_H__ + +/*--------------------------Define -------------------------------------------*/ +/* BIT 7 HT Rate*/ +/*TxHT = 0*/ +#define MGN_1M 0x02 +#define MGN_2M 0x04 +#define MGN_5_5M 0x0b +#define MGN_11M 0x16 + +#define MGN_6M 0x0c +#define MGN_9M 0x12 +#define MGN_12M 0x18 +#define MGN_18M 0x24 +#define MGN_24M 0x30 +#define MGN_36M 0x48 +#define MGN_48M 0x60 +#define MGN_54M 0x6c + +// TxHT = 1 +#define MGN_MCS0 0x80 +#define MGN_MCS1 0x81 +#define MGN_MCS2 0x82 +#define MGN_MCS3 0x83 +#define MGN_MCS4 0x84 +#define MGN_MCS5 0x85 +#define MGN_MCS6 0x86 +#define MGN_MCS7 0x87 +#define MGN_MCS8 0x88 +#define MGN_MCS9 0x89 +#define MGN_MCS10 0x8a +#define MGN_MCS11 0x8b +#define MGN_MCS12 0x8c +#define MGN_MCS13 0x8d +#define MGN_MCS14 0x8e +#define MGN_MCS15 0x8f +//VHT rate +#define MGN_VHT1SS_MCS0 0x90 +#define MGN_VHT1SS_MCS1 0x91 +#define MGN_VHT1SS_MCS2 0x92 +#define MGN_VHT1SS_MCS3 0x93 +#define MGN_VHT1SS_MCS4 0x94 +#define MGN_VHT1SS_MCS5 0x95 +#define MGN_VHT1SS_MCS6 0x96 +#define MGN_VHT1SS_MCS7 0x97 +#define MGN_VHT1SS_MCS8 0x98 +#define MGN_VHT1SS_MCS9 0x99 +#define MGN_VHT2SS_MCS0 0x9a +#define MGN_VHT2SS_MCS1 0x9b +#define MGN_VHT2SS_MCS2 0x9c +#define MGN_VHT2SS_MCS3 0x9d +#define MGN_VHT2SS_MCS4 0x9e +#define MGN_VHT2SS_MCS5 0x9f +#define MGN_VHT2SS_MCS6 0xa0 +#define MGN_VHT2SS_MCS7 0xa1 +#define MGN_VHT2SS_MCS8 0xa2 +#define MGN_VHT2SS_MCS9 0xa3 + +#define MGN_VHT3SS_MCS0 0xa4 +#define MGN_VHT3SS_MCS1 0xa5 +#define MGN_VHT3SS_MCS2 0xa6 +#define MGN_VHT3SS_MCS3 0xa7 +#define MGN_VHT3SS_MCS4 0xa8 +#define MGN_VHT3SS_MCS5 0xa9 +#define MGN_VHT3SS_MCS6 0xaa +#define MGN_VHT3SS_MCS7 0xab +#define MGN_VHT3SS_MCS8 0xac +#define MGN_VHT3SS_MCS9 0xad + +#define MGN_MCS0_SG 0xc0 +#define MGN_MCS1_SG 0xc1 +#define MGN_MCS2_SG 0xc2 +#define MGN_MCS3_SG 0xc3 +#define MGN_MCS4_SG 0xc4 +#define MGN_MCS5_SG 0xc5 +#define MGN_MCS6_SG 0xc6 +#define MGN_MCS7_SG 0xc7 +#define MGN_MCS8_SG 0xc8 +#define MGN_MCS9_SG 0xc9 +#define MGN_MCS10_SG 0xca +#define MGN_MCS11_SG 0xcb +#define MGN_MCS12_SG 0xcc +#define MGN_MCS13_SG 0xcd +#define MGN_MCS14_SG 0xce +#define MGN_MCS15_SG 0xcf + +#define MGN_UNKNOWN 0xff + + +/* 30 ms */ +#define WIFI_NAV_UPPER_US 30000 +#define HAL_92C_NAV_UPPER_UNIT 128 + +#define HAL_RETRY_LIMIT_INFRA 48 +#define HAL_RETRY_LIMIT_AP_ADHOC 7 + +#define RESET_DELAY_8185 20 + +#define RT_IBSS_INT_MASKS (IMR_BCNINT | IMR_TBDOK | IMR_TBDER) +#define RT_AC_INT_MASKS (IMR_VIDOK | IMR_VODOK | IMR_BEDOK|IMR_BKDOK) + +#define NUM_OF_FIRMWARE_QUEUE 10 +#define NUM_OF_PAGES_IN_FW 0x100 +#define NUM_OF_PAGE_IN_FW_QUEUE_BK 0x07 +#define NUM_OF_PAGE_IN_FW_QUEUE_BE 0x07 +#define NUM_OF_PAGE_IN_FW_QUEUE_VI 0x07 +#define NUM_OF_PAGE_IN_FW_QUEUE_VO 0x07 +#define NUM_OF_PAGE_IN_FW_QUEUE_HCCA 0x0 +#define NUM_OF_PAGE_IN_FW_QUEUE_CMD 0x0 +#define NUM_OF_PAGE_IN_FW_QUEUE_MGNT 0x02 +#define NUM_OF_PAGE_IN_FW_QUEUE_HIGH 0x02 +#define NUM_OF_PAGE_IN_FW_QUEUE_BCN 0x2 +#define NUM_OF_PAGE_IN_FW_QUEUE_PUB 0xA1 + +#define NUM_OF_PAGE_IN_FW_QUEUE_BK_DTM 0x026 +#define NUM_OF_PAGE_IN_FW_QUEUE_BE_DTM 0x048 +#define NUM_OF_PAGE_IN_FW_QUEUE_VI_DTM 0x048 +#define NUM_OF_PAGE_IN_FW_QUEUE_VO_DTM 0x026 +#define NUM_OF_PAGE_IN_FW_QUEUE_PUB_DTM 0x00 + +#define MAX_RX_DMA_BUFFER_SIZE 0x3E80 + + +#define MAX_LINES_HWCONFIG_TXT 1000 +#define MAX_BYTES_LINE_HWCONFIG_TXT 256 + +#define SW_THREE_WIRE 0 +#define HW_THREE_WIRE 2 + +#define BT_DEMO_BOARD 0 +#define BT_QA_BOARD 1 +#define BT_FPGA 2 + +#define HAL_PRIME_CHNL_OFFSET_DONT_CARE 0 +#define HAL_PRIME_CHNL_OFFSET_LOWER 1 +#define HAL_PRIME_CHNL_OFFSET_UPPER 2 + +#define MAX_H2C_QUEUE_NUM 10 + +#define RX_MPDU_QUEUE 0 +#define RX_CMD_QUEUE 1 +#define RX_MAX_QUEUE 2 +#define AC2QUEUEID(_AC) (_AC) + +#define C2H_RX_CMD_HDR_LEN 8 +#define GET_C2H_CMD_CMD_LEN(__prxhdr) \ + LE_BITS_TO_4BYTE((__prxhdr), 0, 16) +#define GET_C2H_CMD_ELEMENT_ID(__prxhdr) \ + LE_BITS_TO_4BYTE((__prxhdr), 16, 8) +#define GET_C2H_CMD_CMD_SEQ(__prxhdr) \ + LE_BITS_TO_4BYTE((__prxhdr), 24, 7) +#define GET_C2H_CMD_CONTINUE(__prxhdr) \ + LE_BITS_TO_4BYTE((__prxhdr), 31, 1) +#define GET_C2H_CMD_CONTENT(__prxhdr) \ + ((u8*)(__prxhdr) + C2H_RX_CMD_HDR_LEN) + +#define GET_C2H_CMD_FEEDBACK_ELEMENT_ID(__pcmdfbhdr) \ + LE_BITS_TO_4BYTE((__pcmdfbhdr), 0, 8) +#define GET_C2H_CMD_FEEDBACK_CCX_LEN(__pcmdfbhdr) \ + LE_BITS_TO_4BYTE((__pcmdfbhdr), 8, 8) +#define GET_C2H_CMD_FEEDBACK_CCX_CMD_CNT(__pcmdfbhdr) \ + LE_BITS_TO_4BYTE((__pcmdfbhdr), 16, 16) +#define GET_C2H_CMD_FEEDBACK_CCX_MAC_ID(__pcmdfbhdr) \ + LE_BITS_TO_4BYTE(((__pcmdfbhdr) + 4), 0, 5) +#define GET_C2H_CMD_FEEDBACK_CCX_VALID(__pcmdfbhdr) \ + LE_BITS_TO_4BYTE(((__pcmdfbhdr) + 4), 7, 1) +#define GET_C2H_CMD_FEEDBACK_CCX_RETRY_CNT(__pcmdfbhdr) \ + LE_BITS_TO_4BYTE(((__pcmdfbhdr) + 4), 8, 5) +#define GET_C2H_CMD_FEEDBACK_CCX_TOK(__pcmdfbhdr) \ + LE_BITS_TO_4BYTE(((__pcmdfbhdr) + 4), 15, 1) +#define GET_C2H_CMD_FEEDBACK_CCX_QSEL(__pcmdfbhdr) \ + LE_BITS_TO_4BYTE(((__pcmdfbhdr) + 4), 16, 4) +#define GET_C2H_CMD_FEEDBACK_CCX_SEQ(__pcmdfbhdr) \ + LE_BITS_TO_4BYTE(((__pcmdfbhdr) + 4), 20, 12) + +#define CHIP_BONDING_IDENTIFIER(_value) (((_value)>>22)&0x3) + +#define CHIP_8812 BIT(2) +#define CHIP_8821 (BIT(0)|BIT(2)) + +#define CHIP_8821A (BIT(0)|BIT(2)) +#define NORMAL_CHIP BIT(3) +#define RF_TYPE_1T1R (~(BIT(4)|BIT(5)|BIT(6))) +#define RF_TYPE_1T2R BIT(4) +#define RF_TYPE_2T2R BIT(5) +#define CHIP_VENDOR_UMC BIT(7) +#define B_CUT_VERSION BIT(12) +#define C_CUT_VERSION BIT(13) +#define D_CUT_VERSION ((BIT(12)|BIT(13))) +#define E_CUT_VERSION BIT(14) +#define RF_RL_ID (BIT(31)|BIT(30)|BIT(29)|BIT(28)) + + + +enum version_8821ae { + VERSION_TEST_CHIP_1T1R_8812 = 0x0004, + VERSION_TEST_CHIP_2T2R_8812 = 0x0024, + VERSION_NORMAL_TSMC_CHIP_1T1R_8812 = 0x100c, + VERSION_NORMAL_TSMC_CHIP_2T2R_8812 = 0x102c, + VERSION_NORMAL_TSMC_CHIP_1T1R_8812_C_CUT = 0x200c, + VERSION_NORMAL_TSMC_CHIP_2T2R_8812_C_CUT = 0x202c, + VERSION_TEST_CHIP_8821 = 0x0005, + VERSION_NORMAL_TSMC_CHIP_8821 = 0x000d, + VERSION_NORMAL_TSMC_CHIP_8821_B_CUT = 0x100d, + VERSION_UNKNOWN = 0xFF, +}; + +enum vht_data_sc{ + VHT_DATA_SC_DONOT_CARE = 0, + VHT_DATA_SC_20_UPPER_OF_80MHZ = 1, + VHT_DATA_SC_20_LOWER_OF_80MHZ = 2, + VHT_DATA_SC_20_UPPERST_OF_80MHZ = 3, + VHT_DATA_SC_20_LOWEST_OF_80MHZ = 4, + VHT_DATA_SC_20_RECV1 = 5, + VHT_DATA_SC_20_RECV2 = 6, + VHT_DATA_SC_20_RECV3 = 7, + VHT_DATA_SC_20_RECV4 = 8, + VHT_DATA_SC_40_UPPER_OF_80MHZ = 9, + VHT_DATA_SC_40_LOWER_OF_80MHZ = 10, +}; + + +/* MASK */ +#define IC_TYPE_MASK (BIT(0)|BIT(1)|BIT(2)) +#define CHIP_TYPE_MASK BIT(3) +#define RF_TYPE_MASK (BIT(4)|BIT(5)|BIT(6)) +#define MANUFACTUER_MASK BIT(7) +#define ROM_VERSION_MASK (BIT(11)|BIT(10)|BIT(9)|BIT(8)) +#define CUT_VERSION_MASK (BIT(15)|BIT(14)|BIT(13)|BIT(12)) + +/* Get element */ +#define GET_CVID_IC_TYPE(version) ((version) & IC_TYPE_MASK) +#define GET_CVID_CHIP_TYPE(version) ((version) & CHIP_TYPE_MASK) +#define GET_CVID_RF_TYPE(version) ((version) & RF_TYPE_MASK) +#define GET_CVID_MANUFACTUER(version) ((version) & MANUFACTUER_MASK) +#define GET_CVID_ROM_VERSION(version) ((version) & ROM_VERSION_MASK) +#define GET_CVID_CUT_VERSION(version) ((version) & CUT_VERSION_MASK) + +#define IS_1T1R(version) ((GET_CVID_RF_TYPE(version))? false : true) +#define IS_1T2R(version) ((GET_CVID_RF_TYPE(version) == RF_TYPE_1T2R)\ + ? true : false) +#define IS_2T2R(version) ((GET_CVID_RF_TYPE(version) == RF_TYPE_2T2R)\ + ? true : false) + +#define IS_8812_SERIES(version) ((GET_CVID_IC_TYPE(version) == CHIP_8812)? \ + true : false) +#define IS_8821_SERIES(version) ((GET_CVID_IC_TYPE(version) == CHIP_8821)? \ + true : false) + +#define IS_VENDOR_8812A_TEST_CHIP(version) ((IS_8812_SERIES(version)) ? \ + ((IS_NORMAL_CHIP(version)) ? \ + false : true) : false) +#define IS_VENDOR_8812A_MP_CHIP(version) ((IS_8812_SERIES(version)) ? \ + ((IS_NORMAL_CHIP(version)) ? \ + true : false) : false) +#define IS_VENDOR_8812A_C_CUT(version) ((IS_8812_SERIES(version)) ? \ + ((GET_CVID_CUT_VERSION(version) == C_CUT_VERSION) ? \ + true : false) : false) + +#define IS_VENDOR_8821A_TEST_CHIP(version) ((IS_8821_SERIES(version)) ? \ + ((IS_NORMAL_CHIP(version)) ? \ + false : true) : false) +#define IS_VENDOR_8821A_MP_CHIP(version) ((IS_8821_SERIES(version)) ? \ + ((IS_NORMAL_CHIP(version)) ? \ + true : false) : false) +#define IS_VENDOR_8821A_B_CUT(version) ((IS_8821_SERIES(version)) ? \ + ((GET_CVID_CUT_VERSION(version) == B_CUT_VERSION) ? \ + true : false) : false) + + +enum rf_optype { + RF_OP_BY_SW_3WIRE = 0, + RF_OP_BY_FW, + RF_OP_MAX +}; + +enum rf_power_state { + RF_ON, + RF_OFF, + RF_SLEEP, + RF_SHUT_DOWN, +}; + +enum power_save_mode { + POWER_SAVE_MODE_ACTIVE, + POWER_SAVE_MODE_SAVE, +}; + +enum power_polocy_config { + POWERCFG_MAX_POWER_SAVINGS, + POWERCFG_GLOBAL_POWER_SAVINGS, + POWERCFG_LOCAL_POWER_SAVINGS, + POWERCFG_LENOVO, +}; + +enum interface_select_pci { + INTF_SEL1_MINICARD = 0, + INTF_SEL0_PCIE = 1, + INTF_SEL2_RSV = 2, + INTF_SEL3_RSV = 3, +}; + +enum hal_fw_c2h_cmd_id { + HAL_FW_C2H_CMD_Read_MACREG = 0, + HAL_FW_C2H_CMD_Read_BBREG = 1, + HAL_FW_C2H_CMD_Read_RFREG = 2, + HAL_FW_C2H_CMD_Read_EEPROM = 3, + HAL_FW_C2H_CMD_Read_EFUSE = 4, + HAL_FW_C2H_CMD_Read_CAM = 5, + HAL_FW_C2H_CMD_Get_BasicRate = 6, + HAL_FW_C2H_CMD_Get_DataRate = 7, + HAL_FW_C2H_CMD_Survey = 8, + HAL_FW_C2H_CMD_SurveyDone = 9, + HAL_FW_C2H_CMD_JoinBss = 10, + HAL_FW_C2H_CMD_AddSTA = 11, + HAL_FW_C2H_CMD_DelSTA = 12, + HAL_FW_C2H_CMD_AtimDone = 13, + HAL_FW_C2H_CMD_TX_Report = 14, + HAL_FW_C2H_CMD_CCX_Report = 15, + HAL_FW_C2H_CMD_DTM_Report = 16, + HAL_FW_C2H_CMD_TX_Rate_Statistics = 17, + HAL_FW_C2H_CMD_C2HLBK = 18, + HAL_FW_C2H_CMD_C2HDBG = 19, + HAL_FW_C2H_CMD_C2HFEEDBACK = 20, + HAL_FW_C2H_CMD_MAX +}; + +enum rtl_desc_qsel { + QSLT_BK = 0x2, + QSLT_BE = 0x0, + QSLT_VI = 0x5, + QSLT_VO = 0x7, + QSLT_BEACON = 0x10, + QSLT_HIGH = 0x11, + QSLT_MGNT = 0x12, + QSLT_CMD = 0x13, +}; + +enum rtl_desc8821ae_rate { + DESC_RATE1M = 0x00, + DESC_RATE2M = 0x01, + DESC_RATE5_5M = 0x02, + DESC_RATE11M = 0x03, + + DESC_RATE6M = 0x04, + DESC_RATE9M = 0x05, + DESC_RATE12M = 0x06, + DESC_RATE18M = 0x07, + DESC_RATE24M = 0x08, + DESC_RATE36M = 0x09, + DESC_RATE48M = 0x0a, + DESC_RATE54M = 0x0b, + + DESC_RATEMCS0 = 0x0c, + DESC_RATEMCS1 = 0x0d, + DESC_RATEMCS2 = 0x0e, + DESC_RATEMCS3 = 0x0f, + DESC_RATEMCS4 = 0x10, + DESC_RATEMCS5 = 0x11, + DESC_RATEMCS6 = 0x12, + DESC_RATEMCS7 = 0x13, + DESC_RATEMCS8 = 0x14, + DESC_RATEMCS9 = 0x15, + DESC_RATEMCS10 = 0x16, + DESC_RATEMCS11 = 0x17, + DESC_RATEMCS12 = 0x18, + DESC_RATEMCS13 = 0x19, + DESC_RATEMCS14 = 0x1a, + DESC_RATEMCS15 = 0x1b, + DESC_RATEVHT1SS_MCS0 = 0x1c, + DESC_RATEVHT1SS_MCS1 = 0x1d, + DESC_RATEVHT1SS_MCS2 = 0x1e, + DESC_RATEVHT1SS_MCS3 = 0x1f, + DESC_RATEVHT1SS_MCS4 = 0x20, + DESC_RATEVHT1SS_MCS5 = 0x21, + DESC_RATEVHT1SS_MCS6 = 0x22, + DESC_RATEVHT1SS_MCS7 = 0x23, + DESC_RATEVHT1SS_MCS8 = 0x24, + DESC_RATEVHT1SS_MCS9 = 0x25, + DESC_RATEVHT2SS_MCS0 = 0x26, + DESC_RATEVHT2SS_MCS1 = 0x27, + DESC_RATEVHT2SS_MCS2 = 0x28, + DESC_RATEVHT2SS_MCS3 = 0x29, + DESC_RATEVHT2SS_MCS4 = 0x2a, + DESC_RATEVHT2SS_MCS5 = 0x2b, + DESC_RATEVHT2SS_MCS6 = 0x2c, + DESC_RATEVHT2SS_MCS7 = 0x2d, + DESC_RATEVHT2SS_MCS8 = 0x2e, + DESC_RATEVHT2SS_MCS9 = 0x2f, +}; + +enum rx_packet_type{ + NORMAL_RX, + TX_REPORT1, + TX_REPORT2, + HIS_REPORT, + C2H_PACKET, +}; + +struct phy_sts_cck_8821ae_t { + u8 adc_pwdb_X[4]; + u8 sq_rpt; + u8 cck_agc_rpt; +}; + +struct h2c_cmd_8821ae { + u8 element_id; + u32 cmd_len; + u8 *p_cmdbuffer; +}; + +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/dm.c +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/dm.c @@ -0,0 +1,3045 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "../base.h" +#include "../pci.h" +#include "reg.h" +#include "def.h" +#include "phy.h" +#include "dm.h" +#include "fw.h" +#include "trx.h" +#include "../btcoexist/rtl_btc.h" + +struct dig_t dm_digtable; +static struct ps_t dm_pstable; + +static const u32 rtl8812ae_txscaling_table[TXSCALE_TABLE_SIZE] = +{ + 0x081, // 0, -12.0dB + 0x088, // 1, -11.5dB + 0x090, // 2, -11.0dB + 0x099, // 3, -10.5dB + 0x0A2, // 4, -10.0dB + 0x0AC, // 5, -9.5dB + 0x0B6, // 6, -9.0dB + 0x0C0, // 7, -8.5dB + 0x0CC, // 8, -8.0dB + 0x0D8, // 9, -7.5dB + 0x0E5, // 10, -7.0dB + 0x0F2, // 11, -6.5dB + 0x101, // 12, -6.0dB + 0x110, // 13, -5.5dB + 0x120, // 14, -5.0dB + 0x131, // 15, -4.5dB + 0x143, // 16, -4.0dB + 0x156, // 17, -3.5dB + 0x16A, // 18, -3.0dB + 0x180, // 19, -2.5dB + 0x197, // 20, -2.0dB + 0x1AF, // 21, -1.5dB + 0x1C8, // 22, -1.0dB + 0x1E3, // 23, -0.5dB + 0x200, // 24, +0 dB + 0x21E, // 25, +0.5dB + 0x23E, // 26, +1.0dB + 0x261, // 27, +1.5dB + 0x285, // 28, +2.0dB + 0x2AB, // 29, +2.5dB + 0x2D3, // 30, +3.0dB + 0x2FE, // 31, +3.5dB + 0x32B, // 32, +4.0dB + 0x35C, // 33, +4.5dB + 0x38E, // 34, +5.0dB + 0x3C4, // 35, +5.5dB + 0x3FE // 36, +6.0dB +}; + +static const u32 rtl8821ae_txscaling_table[TXSCALE_TABLE_SIZE] = { + 0x081, // 0, -12.0dB + 0x088, // 1, -11.5dB + 0x090, // 2, -11.0dB + 0x099, // 3, -10.5dB + 0x0A2, // 4, -10.0dB + 0x0AC, // 5, -9.5dB + 0x0B6, // 6, -9.0dB + 0x0C0, // 7, -8.5dB + 0x0CC, // 8, -8.0dB + 0x0D8, // 9, -7.5dB + 0x0E5, // 10, -7.0dB + 0x0F2, // 11, -6.5dB + 0x101, // 12, -6.0dB + 0x110, // 13, -5.5dB + 0x120, // 14, -5.0dB + 0x131, // 15, -4.5dB + 0x143, // 16, -4.0dB + 0x156, // 17, -3.5dB + 0x16A, // 18, -3.0dB + 0x180, // 19, -2.5dB + 0x197, // 20, -2.0dB + 0x1AF, // 21, -1.5dB + 0x1C8, // 22, -1.0dB + 0x1E3, // 23, -0.5dB + 0x200, // 24, +0 dB + 0x21E, // 25, +0.5dB + 0x23E, // 26, +1.0dB + 0x261, // 27, +1.5dB + 0x285, // 28, +2.0dB + 0x2AB, // 29, +2.5dB + 0x2D3, // 30, +3.0dB + 0x2FE, // 31, +3.5dB + 0x32B, // 32, +4.0dB + 0x35C, // 33, +4.5dB + 0x38E, // 34, +5.0dB + 0x3C4, // 35, +5.5dB + 0x3FE // 36, +6.0dB +}; + +static const u32 ofdmswing_table[] = { + 0x0b40002d, // 0, -15.0dB + 0x0c000030, // 1, -14.5dB + 0x0cc00033, // 2, -14.0dB + 0x0d800036, // 3, -13.5dB + 0x0e400039, // 4, -13.0dB + 0x0f00003c, // 5, -12.5dB + 0x10000040, // 6, -12.0dB + 0x11000044, // 7, -11.5dB + 0x12000048, // 8, -11.0dB + 0x1300004c, // 9, -10.5dB + 0x14400051, // 10, -10.0dB + 0x15800056, // 11, -9.5dB + 0x16c0005b, // 12, -9.0dB + 0x18000060, // 13, -8.5dB + 0x19800066, // 14, -8.0dB + 0x1b00006c, // 15, -7.5dB + 0x1c800072, // 16, -7.0dB + 0x1e400079, // 17, -6.5dB + 0x20000080, // 18, -6.0dB + 0x22000088, // 19, -5.5dB + 0x24000090, // 20, -5.0dB + 0x26000098, // 21, -4.5dB + 0x288000a2, // 22, -4.0dB + 0x2ac000ab, // 23, -3.5dB + 0x2d4000b5, // 24, -3.0dB + 0x300000c0, // 25, -2.5dB + 0x32c000cb, // 26, -2.0dB + 0x35c000d7, // 27, -1.5dB + 0x390000e4, // 28, -1.0dB + 0x3c8000f2, // 29, -0.5dB + 0x40000100, // 30, +0dB + 0x43c0010f, // 31, +0.5dB + 0x47c0011f, // 32, +1.0dB + 0x4c000130, // 33, +1.5dB + 0x50800142, // 34, +2.0dB + 0x55400155, // 35, +2.5dB + 0x5a400169, // 36, +3.0dB + 0x5fc0017f, // 37, +3.5dB + 0x65400195, // 38, +4.0dB + 0x6b8001ae, // 39, +4.5dB + 0x71c001c7, // 40, +5.0dB + 0x788001e2, // 41, +5.5dB + 0x7f8001fe // 42, +6.0dB +}; + +static const u8 cckswing_table_ch1ch13[CCK_TABLE_SIZE][8] = { + {0x09, 0x08, 0x07, 0x06, 0x04, 0x03, 0x01, 0x01}, // 0, -16.0dB + {0x09, 0x09, 0x08, 0x06, 0x05, 0x03, 0x01, 0x01}, // 1, -15.5dB + {0x0a, 0x09, 0x08, 0x07, 0x05, 0x03, 0x02, 0x01}, // 2, -15.0dB + {0x0a, 0x0a, 0x09, 0x07, 0x05, 0x03, 0x02, 0x01}, // 3, -14.5dB + {0x0b, 0x0a, 0x09, 0x08, 0x06, 0x04, 0x02, 0x01}, // 4, -14.0dB + {0x0b, 0x0b, 0x0a, 0x08, 0x06, 0x04, 0x02, 0x01}, // 5, -13.5dB + {0x0c, 0x0c, 0x0a, 0x09, 0x06, 0x04, 0x02, 0x01}, // 6, -13.0dB + {0x0d, 0x0c, 0x0b, 0x09, 0x07, 0x04, 0x02, 0x01}, // 7, -12.5dB + {0x0d, 0x0d, 0x0c, 0x0a, 0x07, 0x05, 0x02, 0x01}, // 8, -12.0dB + {0x0e, 0x0e, 0x0c, 0x0a, 0x08, 0x05, 0x02, 0x01}, // 9, -11.5dB + {0x0f, 0x0f, 0x0d, 0x0b, 0x08, 0x05, 0x03, 0x01}, // 10, -11.0dB + {0x10, 0x10, 0x0e, 0x0b, 0x08, 0x05, 0x03, 0x01}, // 11, -10.5dB + {0x11, 0x11, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01}, // 12, -10.0dB + {0x12, 0x12, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01}, // 13, -9.5dB + {0x13, 0x13, 0x10, 0x0d, 0x0a, 0x06, 0x03, 0x01}, // 14, -9.0dB + {0x14, 0x14, 0x11, 0x0e, 0x0b, 0x07, 0x03, 0x02}, // 15, -8.5dB + {0x16, 0x15, 0x12, 0x0f, 0x0b, 0x07, 0x04, 0x01}, // 16, -8.0dB + {0x17, 0x16, 0x13, 0x10, 0x0c, 0x08, 0x04, 0x02}, // 17, -7.5dB + {0x18, 0x17, 0x15, 0x11, 0x0c, 0x08, 0x04, 0x02}, // 18, -7.0dB + {0x1a, 0x19, 0x16, 0x12, 0x0d, 0x09, 0x04, 0x02}, // 19, -6.5dB + {0x1b, 0x1a, 0x17, 0x13, 0x0e, 0x09, 0x04, 0x02}, // 20, -6.0dB + {0x1d, 0x1c, 0x18, 0x14, 0x0f, 0x0a, 0x05, 0x02}, // 21, -5.5dB + {0x1f, 0x1e, 0x1a, 0x15, 0x10, 0x0a, 0x05, 0x02}, // 22, -5.0dB + {0x20, 0x20, 0x1b, 0x16, 0x11, 0x08, 0x05, 0x02}, // 23, -4.5dB + {0x22, 0x21, 0x1d, 0x18, 0x11, 0x0b, 0x06, 0x02}, // 24, -4.0dB + {0x24, 0x23, 0x1f, 0x19, 0x13, 0x0c, 0x06, 0x03}, // 25, -3.5dB + {0x26, 0x25, 0x21, 0x1b, 0x14, 0x0d, 0x06, 0x03}, // 26, -3.0dB + {0x28, 0x28, 0x22, 0x1c, 0x15, 0x0d, 0x07, 0x03}, // 27, -2.5dB + {0x2b, 0x2a, 0x25, 0x1e, 0x16, 0x0e, 0x07, 0x03}, // 28, -2.0dB + {0x2d, 0x2d, 0x27, 0x1f, 0x18, 0x0f, 0x08, 0x03}, // 29, -1.5dB + {0x30, 0x2f, 0x29, 0x21, 0x19, 0x10, 0x08, 0x03}, // 30, -1.0dB + {0x33, 0x32, 0x2b, 0x23, 0x1a, 0x11, 0x08, 0x04}, // 31, -0.5dB + {0x36, 0x35, 0x2e, 0x25, 0x1c, 0x12, 0x09, 0x04} // 32, +0dB +}; + +static const u8 cckswing_table_ch14[CCK_TABLE_SIZE][8]= { + {0x09, 0x08, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00}, // 0, -16.0dB + {0x09, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00}, // 1, -15.5dB + {0x0a, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00}, // 2, -15.0dB + {0x0a, 0x0a, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00}, // 3, -14.5dB + {0x0b, 0x0a, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00}, // 4, -14.0dB + {0x0b, 0x0b, 0x0a, 0x06, 0x00, 0x00, 0x00, 0x00}, // 5, -13.5dB + {0x0c, 0x0c, 0x0a, 0x06, 0x00, 0x00, 0x00, 0x00}, // 6, -13.0dB + {0x0d, 0x0c, 0x0b, 0x06, 0x00, 0x00, 0x00, 0x00}, // 7, -12.5dB + {0x0d, 0x0d, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x00}, // 8, -12.0dB + {0x0e, 0x0e, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x00}, // 9, -11.5dB + {0x0f, 0x0f, 0x0d, 0x08, 0x00, 0x00, 0x00, 0x00}, // 10, -11.0dB + {0x10, 0x10, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x00}, // 11, -10.5dB + {0x11, 0x11, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00}, // 12, -10.0dB + {0x12, 0x12, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00}, // 13, -9.5dB + {0x13, 0x13, 0x10, 0x0a, 0x00, 0x00, 0x00, 0x00}, // 14, -9.0dB + {0x14, 0x14, 0x11, 0x0a, 0x00, 0x00, 0x00, 0x00}, // 15, -8.5dB + {0x16, 0x15, 0x12, 0x0b, 0x00, 0x00, 0x00, 0x00}, // 16, -8.0dB + {0x17, 0x16, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x00}, // 17, -7.5dB + {0x18, 0x17, 0x15, 0x0c, 0x00, 0x00, 0x00, 0x00}, // 18, -7.0dB + {0x1a, 0x19, 0x16, 0x0d, 0x00, 0x00, 0x00, 0x00}, // 19, -6.5dB + {0x1b, 0x1a, 0x17, 0x0e, 0x00, 0x00, 0x00, 0x00}, // 20, -6.0dB + {0x1d, 0x1c, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00}, // 21, -5.5dB + {0x1f, 0x1e, 0x1a, 0x0f, 0x00, 0x00, 0x00, 0x00}, // 22, -5.0dB + {0x20, 0x20, 0x1b, 0x10, 0x00, 0x00, 0x00, 0x00}, // 23, -4.5dB + {0x22, 0x21, 0x1d, 0x11, 0x00, 0x00, 0x00, 0x00}, // 24, -4.0dB + {0x24, 0x23, 0x1f, 0x12, 0x00, 0x00, 0x00, 0x00}, // 25, -3.5dB + {0x26, 0x25, 0x21, 0x13, 0x00, 0x00, 0x00, 0x00}, // 26, -3.0dB + {0x28, 0x28, 0x24, 0x14, 0x00, 0x00, 0x00, 0x00}, // 27, -2.5dB + {0x2b, 0x2a, 0x25, 0x15, 0x00, 0x00, 0x00, 0x00}, // 28, -2.0dB + {0x2d, 0x2d, 0x17, 0x17, 0x00, 0x00, 0x00, 0x00}, // 29, -1.5dB + {0x30, 0x2f, 0x29, 0x18, 0x00, 0x00, 0x00, 0x00}, // 30, -1.0dB + {0x33, 0x32, 0x2b, 0x19, 0x00, 0x00, 0x00, 0x00}, // 31, -0.5dB + {0x36, 0x35, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00} // 32, +0dB +}; + +static const u32 edca_setting_dl[PEER_MAX] = { + 0xa44f, /* 0 UNKNOWN */ + 0x5ea44f, /* 1 REALTEK_90 */ + 0x5e4322, /* 2 REALTEK_92SE */ + 0x5ea42b, /* 3 BROAD */ + 0xa44f, /* 4 RAL */ + 0xa630, /* 5 ATH */ + 0x5ea630, /* 6 CISCO */ + 0x5ea42b, /* 7 MARVELL */ +}; + +static const u32 edca_setting_ul[PEER_MAX] = { + 0x5e4322, /* 0 UNKNOWN */ + 0xa44f, /* 1 REALTEK_90 */ + 0x5ea44f, /* 2 REALTEK_92SE */ + 0x5ea32b, /* 3 BROAD */ + 0x5ea422, /* 4 RAL */ + 0x5ea322, /* 5 ATH */ + 0x3ea430, /* 6 CISCO */ + 0x5ea44f, /* 7 MARV */ +}; + +static u8 rtl8818e_delta_swing_table_idx_24gb_p_txpwrtrack[] = + {0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9}; +static u8 rtl8818e_delta_swing_table_idx_24gb_n_txpwrtrack[] = + {0, 0, 0, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11}; + + +u8 rtl8812ae_delta_swing_table_idx_24gb_n_txpwrtrack[] = + {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11}; +u8 rtl8812ae_delta_swing_table_idx_24gb_p_txpwrtrack[] = + {0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9}; +u8 rtl8812ae_delta_swing_table_idx_24ga_n_txpwrtrack[] = + {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 8, 8, 9, 9, 9, 10, 10, 10, 10, 11, 11}; +u8 rtl8812ae_delta_swing_table_idx_24ga_p_txpwrtrack[] = + {0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9}; +u8 rtl8812ae_delta_swing_table_idx_24gcckb_n_txpwrtrack[] = + {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11}; +u8 rtl8812ae_delta_swing_table_idx_24gcckb_p_txpwrtrack[] = + {0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9}; +u8 rtl8812ae_delta_swing_table_idx_24gccka_n_txpwrtrack[] = + {0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 7, 8, 8, 9, 9, 9, 10, 10, 10, 10, 11, 11}; +u8 rtl8812ae_delta_swing_table_idx_24gccka_p_txpwrtrack[] = + {0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9}; + +u8 rtl8812ae_delta_swing_table_idx_5gb_n_txpwrtrack[][DELTA_SWINGIDX_SIZE] = { + {0, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 13}, + {0, 1, 1, 2, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13}, + {0, 1, 1, 2, 3, 3, 4, 4, 5, 6, 6, 7, 8, 9, 10, 11, 12, 12, 13, 14, 14, 14, 15, 16, 17, 17, 17, 18, 18, 18}, +}; +u8 rtl8812ae_delta_swing_table_idx_5gb_p_txpwrtrack[][DELTA_SWINGIDX_SIZE] = { + {0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11}, + {0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11}, + {0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11}, +}; +u8 rtl8812ae_delta_swing_table_idx_5ga_n_txpwrtrack[][DELTA_SWINGIDX_SIZE] = { + {0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13}, + {0, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13}, + {0, 1, 1, 2, 2, 3, 3, 4, 5, 6, 7, 8, 8, 9, 10, 11, 12, 13, 14, 14, 15, 15, 15, 16, 16, 16, 17, 17, 18, 18}, +}; +u8 rtl8812ae_delta_swing_table_idx_5ga_p_txpwrtrack[][DELTA_SWINGIDX_SIZE] = { + {0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 4, 5, 5, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11}, + {0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7, 8, 9, 9, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11}, + {0, 1, 1, 2, 3, 3, 4, 4, 5, 6, 6, 7, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11}, +}; + +u8 rtl8821ae_delta_swing_table_idx_24gb_n_txpwrtrack[] = + {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10}; +u8 rtl8821ae_delta_swing_table_idx_24gb_p_txpwrtrack[] = + {0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 12}; +u8 rtl8821ae_delta_swing_table_idx_24ga_n_txpwrtrack[] = + {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10}; +u8 rtl8821ae_delta_swing_table_idx_24ga_p_txpwrtrack[] = + {0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 12}; +u8 rtl8821ae_delta_swing_table_idx_24gcckb_n_txpwrtrack[] = + {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10}; +u8 rtl8821ae_delta_swing_table_idx_24gcckb_p_txpwrtrack[] = + {0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 12}; +u8 rtl8821ae_delta_swing_table_idx_24gccka_n_txpwrtrack[] = + {0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10}; +u8 rtl8821ae_delta_swing_table_idx_24gccka_p_txpwrtrack[] = + {0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 12}; + +u8 rtl8821ae_delta_swing_table_idx_5gb_n_txpwrtrack[][DELTA_SWINGIDX_SIZE] = { + {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16}, + {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16}, + {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16}, +}; + +u8 rtl8821ae_delta_swing_table_idx_5gb_p_txpwrtrack[][DELTA_SWINGIDX_SIZE] = { + {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16}, + {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16}, + {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16}, +}; + +u8 rtl8821ae_delta_swing_table_idx_5ga_n_txpwrtrack[][DELTA_SWINGIDX_SIZE] = { + {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16}, + {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16}, + {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16}, +}; + +u8 rtl8821ae_delta_swing_table_idx_5ga_p_txpwrtrack[][DELTA_SWINGIDX_SIZE] = { + {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16}, + {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16}, + {0, 0, 1, 2, 3, 3, 4, 5, 6, 6, 7, 8, 9, 9, 10, 11, 12, 12, 13, 14, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16}, +}; + +void rtl8812ae_dm_read_and_config_txpower_track( + struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("===> rtl8821ae_dm_read_and_config_txpower_track\n")); + + + memcpy(rtldm->delta_swing_table_idx_24ga_p, + rtl8812ae_delta_swing_table_idx_24ga_p_txpwrtrack, DELTA_SWINGIDX_SIZE); + memcpy(rtldm->delta_swing_table_idx_24ga_n, + rtl8812ae_delta_swing_table_idx_24ga_n_txpwrtrack, DELTA_SWINGIDX_SIZE); + memcpy(rtldm->delta_swing_table_idx_24gb_p, + rtl8812ae_delta_swing_table_idx_24gb_p_txpwrtrack, DELTA_SWINGIDX_SIZE); + memcpy(rtldm->delta_swing_table_idx_24gb_n, + rtl8812ae_delta_swing_table_idx_24gb_n_txpwrtrack, DELTA_SWINGIDX_SIZE); + + memcpy(rtldm->delta_swing_table_idx_24gccka_p, + rtl8812ae_delta_swing_table_idx_24gccka_p_txpwrtrack, DELTA_SWINGIDX_SIZE); + memcpy(rtldm->delta_swing_table_idx_24gccka_n, + rtl8812ae_delta_swing_table_idx_24gccka_n_txpwrtrack, DELTA_SWINGIDX_SIZE); + memcpy(rtldm->delta_swing_table_idx_24gcckb_p, + rtl8812ae_delta_swing_table_idx_24gcckb_p_txpwrtrack, DELTA_SWINGIDX_SIZE); + memcpy(rtldm->delta_swing_table_idx_24gcckb_n, + rtl8812ae_delta_swing_table_idx_24gcckb_n_txpwrtrack, DELTA_SWINGIDX_SIZE); + + memcpy(rtldm->delta_swing_table_idx_5ga_p, + rtl8812ae_delta_swing_table_idx_5ga_p_txpwrtrack, DELTA_SWINGIDX_SIZE*3); + memcpy(rtldm->delta_swing_table_idx_5ga_n, + rtl8812ae_delta_swing_table_idx_5ga_n_txpwrtrack, DELTA_SWINGIDX_SIZE*3); + memcpy(rtldm->delta_swing_table_idx_5gb_p, + rtl8812ae_delta_swing_table_idx_5gb_p_txpwrtrack, DELTA_SWINGIDX_SIZE*3); + memcpy(rtldm->delta_swing_table_idx_5gb_n, + rtl8812ae_delta_swing_table_idx_5gb_n_txpwrtrack, DELTA_SWINGIDX_SIZE*3); +} + +void rtl8821ae_dm_read_and_config_txpower_track( + struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("===> rtl8821ae_dm_read_and_config_txpower_track\n")); + + + memcpy(rtldm->delta_swing_table_idx_24ga_p, + rtl8821ae_delta_swing_table_idx_24ga_p_txpwrtrack, DELTA_SWINGIDX_SIZE); + memcpy(rtldm->delta_swing_table_idx_24ga_n, + rtl8821ae_delta_swing_table_idx_24ga_n_txpwrtrack, DELTA_SWINGIDX_SIZE); + memcpy(rtldm->delta_swing_table_idx_24gb_p, + rtl8821ae_delta_swing_table_idx_24gb_p_txpwrtrack, DELTA_SWINGIDX_SIZE); + memcpy(rtldm->delta_swing_table_idx_24gb_n, + rtl8821ae_delta_swing_table_idx_24gb_n_txpwrtrack, DELTA_SWINGIDX_SIZE); + + memcpy(rtldm->delta_swing_table_idx_24gccka_p, + rtl8821ae_delta_swing_table_idx_24gccka_p_txpwrtrack, DELTA_SWINGIDX_SIZE); + memcpy(rtldm->delta_swing_table_idx_24gccka_n, + rtl8821ae_delta_swing_table_idx_24gccka_n_txpwrtrack, DELTA_SWINGIDX_SIZE); + memcpy(rtldm->delta_swing_table_idx_24gcckb_p, + rtl8821ae_delta_swing_table_idx_24gcckb_p_txpwrtrack, DELTA_SWINGIDX_SIZE); + memcpy(rtldm->delta_swing_table_idx_24gcckb_n, + rtl8821ae_delta_swing_table_idx_24gcckb_n_txpwrtrack, DELTA_SWINGIDX_SIZE); + + memcpy(rtldm->delta_swing_table_idx_5ga_p, + rtl8821ae_delta_swing_table_idx_5ga_p_txpwrtrack, DELTA_SWINGIDX_SIZE*3); + memcpy(rtldm->delta_swing_table_idx_5ga_n, + rtl8821ae_delta_swing_table_idx_5ga_n_txpwrtrack, DELTA_SWINGIDX_SIZE*3); + memcpy(rtldm->delta_swing_table_idx_5gb_p, + rtl8821ae_delta_swing_table_idx_5gb_p_txpwrtrack, DELTA_SWINGIDX_SIZE*3); + memcpy(rtldm->delta_swing_table_idx_5gb_n, + rtl8821ae_delta_swing_table_idx_5gb_n_txpwrtrack, DELTA_SWINGIDX_SIZE*3); +} + + + +#define CALCULATE_SWINGTALBE_OFFSET(_offset, _direction, _size, _deltaThermal) \ + do {\ + for(_offset = 0; _offset < _size; _offset++)\ + {\ + if(_deltaThermal < thermal_threshold[_direction][_offset])\ + {\ + if(_offset != 0)\ + _offset--;\ + break;\ + }\ + } \ + if(_offset >= _size)\ + _offset = _size-1;\ + } while(0) + + +void rtl8821ae_dm_txpower_track_adjust(struct ieee80211_hw *hw, + u8 type,u8 *pdirection, + u32 *poutwrite_val) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + u8 pwr_val = 0; + + if (type == 0){ + if (rtlpriv->dm.bb_swing_idx_ofdm[RF90_PATH_A] <= + rtlpriv->dm.bb_swing_idx_ofdm_base[RF90_PATH_A]) { + *pdirection = 1; + pwr_val = rtldm->bb_swing_idx_ofdm_base[RF90_PATH_A] - rtldm->bb_swing_idx_ofdm[RF90_PATH_A]; + } else { + *pdirection = 2; + pwr_val = rtldm->bb_swing_idx_ofdm[RF90_PATH_A] - rtldm->bb_swing_idx_ofdm_base[RF90_PATH_A]; + } + } else if (type ==1) { + if (rtldm->bb_swing_idx_cck <= rtldm->bb_swing_idx_cck_base) { + *pdirection = 1; + pwr_val = rtldm->bb_swing_idx_cck_base - rtldm->bb_swing_idx_cck; + } else { + *pdirection = 2; + pwr_val = rtldm->bb_swing_idx_cck - rtldm->bb_swing_idx_cck_base; + } + } + + if (pwr_val >= TXPWRTRACK_MAX_IDX && (*pdirection == 1)) + pwr_val = TXPWRTRACK_MAX_IDX; + + *poutwrite_val = pwr_val |(pwr_val << 8)|(pwr_val << 16) | (pwr_val << 24); +} + +void rtl8821ae_dm_clear_txpower_tracking_state(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_dm *rtldm = rtl_dm(rtlpriv); + struct rtl_efuse *rtlefuse = rtl_efuse(rtlpriv); + u8 p = 0; + rtldm->bb_swing_idx_cck_base = rtldm->default_cck_index; + rtldm->bb_swing_idx_cck = rtldm->default_cck_index; + rtldm->cck_index = 0; + + for (p = RF90_PATH_A; p < MAX_RF_PATH; ++p) { + rtldm->bb_swing_idx_ofdm_base[p] = rtldm->default_ofdm_index; + rtldm->bb_swing_idx_ofdm[p] = rtldm->default_ofdm_index; + rtldm->ofdm_index[p] = rtldm->default_ofdm_index; + + rtldm->power_index_offset[p] = 0; + rtldm->delta_power_index[p] = 0; + rtldm->delta_power_index_last[p] = 0; + + rtldm->aboslute_ofdm_swing_idx[p] = 0; /*Initial Mix mode power tracking*/ + rtldm->remnant_ofdm_swing_idx[p] = 0; + } + + rtldm->modify_txagc_flag_path_a = false; /*Initial at Modify Tx Scaling Mode*/ + rtldm->modify_txagc_flag_path_b = false; /*Initial at Modify Tx Scaling Mode*/ + rtldm->remnant_cck_idx = 0; + rtldm->thermalvalue = rtlefuse->eeprom_thermalmeter; + rtldm->thermalvalue_iqk = rtlefuse->eeprom_thermalmeter; + rtldm->thermalvalue_lck = rtlefuse->eeprom_thermalmeter; +} + +u8 rtl8821ae_dm_get_swing_index(struct ieee80211_hw *hw) +{ + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 i = 0; + u32 bb_swing; + + bb_swing =rtl8821ae_phy_query_bb_reg(hw, rtlhal->current_bandtype, RF90_PATH_A); + + for (i = 0; i < TXSCALE_TABLE_SIZE; ++i) + if ( bb_swing == rtl8821ae_txscaling_table[i]) + break; + + return i; +} + +void rtl8821ae_dm_initialize_txpower_tracking_thermalmeter( + struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_dm *rtldm = rtl_dm(rtlpriv); + struct rtl_efuse *rtlefuse = rtl_efuse(rtlpriv); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 default_swing_index = 0; + u8 p = 0; + + rtlpriv->dm.txpower_track_control = true; + rtldm->thermalvalue = rtlefuse->eeprom_thermalmeter; + rtldm->thermalvalue_iqk = rtlefuse->eeprom_thermalmeter; + rtldm->thermalvalue_lck = rtlefuse->eeprom_thermalmeter; + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + rtl8812ae_dm_read_and_config_txpower_track(hw); + else + rtl8821ae_dm_read_and_config_txpower_track(hw); + + default_swing_index = rtl8821ae_dm_get_swing_index(hw); + + rtldm->default_ofdm_index = (default_swing_index == TXSCALE_TABLE_SIZE) ? 24 : default_swing_index; + rtldm->default_cck_index = 24; + + rtldm->bb_swing_idx_cck_base = rtldm->default_cck_index; + rtldm->cck_index = rtldm->default_cck_index; + + for (p = RF90_PATH_A; p < MAX_RF_PATH; ++p) + { + rtldm->bb_swing_idx_ofdm_base[p] = rtldm->default_ofdm_index; + rtldm->ofdm_index[p] = rtldm->default_ofdm_index; + rtldm->delta_power_index[p] = 0; + rtldm->power_index_offset[p] = 0; + rtldm->delta_power_index_last[p] = 0; + } +} + +static void rtl8821ae_dm_init_dynamic_bb_powersaving(struct ieee80211_hw *hw) +{ + dm_pstable.pre_ccastate = CCA_MAX; + dm_pstable.cur_ccasate = CCA_MAX; + dm_pstable.pre_rfstate = RF_MAX; + dm_pstable.cur_rfstate = RF_MAX; + dm_pstable.rssi_val_min = 0; + dm_pstable.initialize = 0; +} + + +static void rtl8821ae_dm_diginit(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + //dm_digtable.dig_enable_flag = true; + dm_digtable.cur_igvalue = rtl_get_bbreg(hw, ROFDM0_XAAGCCORE1, 0x7f); + /*dm_digtable.pre_igvalue = 0; + dm_digtable.cursta_connectctate = DIG_STA_DISCONNECT; + dm_digtable.presta_connectstate = DIG_STA_DISCONNECT; + dm_digtable.curmultista_connectstate = DIG_MULTISTA_DISCONNECT;*/ + dm_digtable.rssi_lowthresh = DM_DIG_THRESH_LOW; + dm_digtable.rssi_highthresh = DM_DIG_THRESH_HIGH; + dm_digtable.fa_lowthresh = DM_FALSEALARM_THRESH_LOW; + dm_digtable.fa_highthresh = DM_FALSEALARM_THRESH_HIGH; + dm_digtable.rx_gain_range_max = DM_DIG_MAX; + dm_digtable.rx_gain_range_min = DM_DIG_MIN; + dm_digtable.backoff_val = DM_DIG_BACKOFF_DEFAULT; + dm_digtable.backoff_val_range_max = DM_DIG_BACKOFF_MAX; + dm_digtable.backoff_val_range_min = DM_DIG_BACKOFF_MIN; + dm_digtable.pre_cck_cca_thres = 0xff; + dm_digtable.cur_cck_cca_thres = 0x83; + dm_digtable.forbidden_igi = DM_DIG_MIN; + dm_digtable.large_fa_hit = 0; + dm_digtable.recover_cnt = 0; + dm_digtable.dig_dynamic_min_0 = DM_DIG_MIN; + dm_digtable.dig_dynamic_min_1 = DM_DIG_MIN; + dm_digtable.b_media_connect_0 = false; + dm_digtable.b_media_connect_1 = false; + rtlpriv->dm.b_dm_initialgain_enable = true; + dm_digtable.bt30_cur_igi = 0x32; +} + +static void rtl8821ae_dm_init_dynamic_txpower(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtlpriv->dm.bdynamic_txpower_enable = false; + + rtlpriv->dm.last_dtp_lvl = TXHIGHPWRLEVEL_NORMAL; + rtlpriv->dm.dynamic_txhighpower_lvl = TXHIGHPWRLEVEL_NORMAL; +} + + +void rtl8821ae_dm_init_edca_turbo(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + rtlpriv->dm.bcurrent_turbo_edca = false; + rtlpriv->dm.bis_any_nonbepkts = false; + rtlpriv->dm.bis_cur_rdlstate = false; +} + + +void rtl8821ae_dm_init_rate_adaptive_mask(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rate_adaptive *p_ra = &(rtlpriv->ra); + + p_ra->ratr_state = DM_RATR_STA_INIT; + p_ra->pre_ratr_state = DM_RATR_STA_INIT; + + rtlpriv->dm.dm_type = DM_TYPE_BYDRIVER; + if (rtlpriv->dm.dm_type == DM_TYPE_BYDRIVER) + rtlpriv->dm.b_useramask = true; + else + rtlpriv->dm.b_useramask = false; + + p_ra->high_rssi_thresh_for_ra = 50; + p_ra->low_rssi_thresh_for_ra = 20; +} + + +static void rtl8821ae_dm_init_txpower_tracking(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtlpriv->dm.btxpower_tracking = true; + rtlpriv->dm.btxpower_trackinginit = false; + rtlpriv->dm.txpowercount = 0; + rtlpriv->dm.txpower_track_control = true; + rtlpriv->dm.thermalvalue = 0; + + rtlpriv->dm.ofdm_index[0] = 30; + rtlpriv->dm.cck_index = 20; + + rtlpriv->dm.bb_swing_idx_cck_base = rtlpriv->dm.cck_index; + + + rtlpriv->dm.bb_swing_idx_ofdm[RF90_PATH_A] = rtlpriv->dm.ofdm_index[0]; + rtlpriv->dm.bb_swing_idx_ofdm[RF90_PATH_B] = rtlpriv->dm.ofdm_index[0]; + rtlpriv->dm.delta_power_index[0] = 0; + rtlpriv->dm.delta_power_index_last[0] = 0; + rtlpriv->dm.power_index_offset[0] = 0; + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + (" rtlpriv->dm.btxpower_tracking = %d\n", + rtlpriv->dm.btxpower_tracking)); +} + + +void rtl8821ae_dm_init_dynamic_atc_switch(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtlpriv->dm.crystal_cap = rtlpriv->efuse.crystalcap; + + rtlpriv->dm.atc_status = rtl_get_bbreg(hw, ROFDM1_CFOTRACKING, BIT(11)); + rtlpriv->dm.cfo_threshold = CFO_THRESHOLD_XTAL; +} + + +void rtl8821ae_dm_init(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + spin_lock(&rtlpriv->locks.iqk_lock); + rtlphy->b_iqk_in_progress = false; + spin_unlock(&rtlpriv->locks.iqk_lock); + + rtlpriv->dm.dm_type = DM_TYPE_BYDRIVER; + rtl8821ae_dm_diginit(hw); + rtl8821ae_dm_init_rate_adaptive_mask(hw); + rtl8812ae_dm_path_diversity_init(hw); + rtl8821ae_dm_init_edca_turbo(hw); + rtl8821ae_dm_initialize_txpower_tracking_thermalmeter(hw); +#if 1 + rtl8821ae_dm_init_dynamic_bb_powersaving(hw); + rtl8821ae_dm_init_dynamic_txpower(hw); + rtl8821ae_dm_init_txpower_tracking(hw); +#endif + rtl8821ae_dm_init_dynamic_atc_switch(hw); +} + +void rtl8821ae_dm_find_minimum_rssi(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_dig *rtl_dm_dig = &(rtlpriv->dm.dm_digtable); + struct rtl_mac *mac = rtl_mac(rtlpriv); + + /* Determine the minimum RSSI */ + if ((mac->link_state < MAC80211_LINKED) && + (rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb == 0)) { + rtl_dm_dig->min_undecorated_pwdb_for_dm = 0; + RT_TRACE(COMP_BB_POWERSAVING, DBG_LOUD, + ("Not connected to any \n")); + } + if (mac->link_state >= MAC80211_LINKED) { + if (mac->opmode == NL80211_IFTYPE_AP || + mac->opmode == NL80211_IFTYPE_ADHOC) { + rtl_dm_dig->min_undecorated_pwdb_for_dm = + rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb; + RT_TRACE(COMP_BB_POWERSAVING, DBG_LOUD, + ("AP Client PWDB = 0x%lx \n", + rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb)); + } else { + rtl_dm_dig->min_undecorated_pwdb_for_dm = + rtlpriv->dm.undecorated_smoothed_pwdb; + RT_TRACE(COMP_BB_POWERSAVING, DBG_LOUD, + ("STA Default Port PWDB = 0x%x \n", + rtl_dm_dig->min_undecorated_pwdb_for_dm)); + } + } else { + rtl_dm_dig->min_undecorated_pwdb_for_dm = + rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb; + RT_TRACE(COMP_BB_POWERSAVING, DBG_LOUD, + ("AP Ext Port or disconnet PWDB = 0x%x \n", + rtl_dm_dig->min_undecorated_pwdb_for_dm)); + } + RT_TRACE(COMP_DIG, DBG_LOUD, ("MinUndecoratedPWDBForDM =%d\n", + rtl_dm_dig->min_undecorated_pwdb_for_dm)); +} + +#if 0 +void rtl8812ae_dm_rssi_dump_to_register( + struct ieee80211_hw *hw + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtl_write_byte(rtlpriv, RA_RSSI_DUMP, Adapter->RxStats.RxRSSIPercentage[0]); + rtl_write_byte(rtlpriv, RB_RSSI_DUMP, Adapter->RxStats.RxRSSIPercentage[1]); + + /* Rx EVM*/ + rtl_write_byte(rtlpriv, RS1_RX_EVM_DUMP, Adapter->RxStats.RxEVMdbm[0]); + rtl_write_byte(rtlpriv, RS2_RX_EVM_DUMP, Adapter->RxStats.RxEVMdbm[1]); + + /*Rx SNR*/ + rtl_write_byte(rtlpriv, RA_RX_SNR_DUMP, (u1Byte)(Adapter->RxStats.RxSNRdB[0])); + rtl_write_byte(rtlpriv, RB_RX_SNR_DUMP, (u1Byte)(Adapter->RxStats.RxSNRdB[1])); + + /*Rx Cfo_Short*/ + rtl_write_word(rtlpriv, RA_CFO_SHORT_DUMP, Adapter->RxStats.RxCfoShort[0]); + rtl_write_word(rtlpriv, RB_CFO_SHORT_DUMP, Adapter->RxStats.RxCfoShort[1]); + + /*Rx Cfo_Tail*/ + rtl_write_word(rtlpriv, RA_CFO_LONG_DUMP, Adapter->RxStats.RxCfoTail[0]); + rtl_write_word(rtlpriv, RB_CFO_LONG_DUMP, Adapter->RxStats.RxCfoTail[1]); + +} +#endif + +static void rtl8821ae_dm_check_rssi_monitor(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_sta_info *drv_priv; + u8 h2c_parameter[3] = { 0 }; + long tmp_entry_max_pwdb = 0, tmp_entry_min_pwdb = 0xff; + + + /* AP & ADHOC & MESH */ + spin_lock_bh(&rtlpriv->locks.entry_list_lock); + list_for_each_entry(drv_priv, &rtlpriv->entry_list, list) { + if(drv_priv->rssi_stat.undecorated_smoothed_pwdb < tmp_entry_min_pwdb) + tmp_entry_min_pwdb = drv_priv->rssi_stat.undecorated_smoothed_pwdb; + if(drv_priv->rssi_stat.undecorated_smoothed_pwdb > tmp_entry_max_pwdb) + tmp_entry_max_pwdb = drv_priv->rssi_stat.undecorated_smoothed_pwdb; + + /*h2c_parameter[2] = (u8) (rtlpriv->dm.undecorated_smoothed_pwdb & 0xFF); + h2c_parameter[1] = 0x20; + h2c_parameter[0] = drv_priv->rssi_stat; + rtl8821ae_fill_h2c_cmd(hw, H2C_RSSI_REPORT, 3, h2c_parameter);*/ + } + spin_unlock_bh(&rtlpriv->locks.entry_list_lock); + + /* If associated entry is found */ + if (tmp_entry_max_pwdb != 0) { + rtlpriv->dm.entry_max_undecoratedsmoothed_pwdb = tmp_entry_max_pwdb; + RTPRINT(rtlpriv, FDM, DM_PWDB, ("EntryMaxPWDB = 0x%lx(%ld)\n", + tmp_entry_max_pwdb, tmp_entry_max_pwdb)); + } else { + rtlpriv->dm.entry_max_undecoratedsmoothed_pwdb = 0; + } + /* If associated entry is found */ + if (tmp_entry_min_pwdb != 0xff) { + rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb = tmp_entry_min_pwdb; + RTPRINT(rtlpriv, FDM, DM_PWDB, ("EntryMinPWDB = 0x%lx(%ld)\n", + tmp_entry_min_pwdb, tmp_entry_min_pwdb)); + } else { + rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb = 0; + } + /* Indicate Rx signal strength to FW. */ + if (rtlpriv->dm.b_useramask) { + h2c_parameter[2] = (u8) (rtlpriv->dm.undecorated_smoothed_pwdb & 0xFF); + h2c_parameter[1] = 0x20; + h2c_parameter[0] = 0; + rtl8821ae_fill_h2c_cmd(hw, H2C_RSSI_REPORT, 3, h2c_parameter); + } else { + rtl_write_byte(rtlpriv, 0x4fe, rtlpriv->dm.undecorated_smoothed_pwdb); + } + rtl8821ae_dm_find_minimum_rssi(hw); + dm_digtable.rssi_val_min = rtlpriv->dm.dm_digtable.min_undecorated_pwdb_for_dm; +} + +void rtl8821ae_dm_write_cck_cca_thres(struct ieee80211_hw *hw, u8 current_cca) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if (dm_digtable.cur_cck_cca_thres != current_cca) + rtl_write_byte(rtlpriv, DM_REG_CCK_CCA_11AC, current_cca); + + dm_digtable.pre_cck_cca_thres = dm_digtable.cur_cck_cca_thres; + dm_digtable.cur_cck_cca_thres = current_cca; +} + +void rtl8821ae_dm_write_dig(struct ieee80211_hw *hw, u8 current_igi) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + if(dm_digtable.stop_dig) + return; + + if (dm_digtable.cur_igvalue != current_igi){ + rtl_set_bbreg(hw, DM_REG_IGI_A_11AC, DM_BIT_IGI_11AC, current_igi); + if (rtlpriv->phy.rf_type != RF_1T1R) + rtl_set_bbreg(hw, DM_REG_IGI_B_11AC, DM_BIT_IGI_11AC, current_igi); + } + //dm_digtable.pre_igvalue = dm_digtable.cur_igvalue; + dm_digtable.cur_igvalue = current_igi; +} + +static void rtl8821ae_dm_dig(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 dig_dynamic_min; + u8 dig_max_of_min; + bool first_connect, first_disconnect; + u8 dm_dig_max, dm_dig_min, offset; + u8 current_igi =dm_digtable.cur_igvalue; + + + RT_TRACE(COMP_DIG, DBG_LOUD,("rtl8821ae_dm_dig()==>\n")); + + + if (mac->act_scanning == true) { + RT_TRACE(COMP_DIG, DBG_LOUD,("rtl8821ae_dm_dig() Return: In Scan Progress \n")); + return; + } + + /*add by Neil Chen to avoid PSD is processing*/ + dig_dynamic_min = dm_digtable.dig_dynamic_min_0; + first_connect = (mac->link_state >= MAC80211_LINKED) && + (dm_digtable.b_media_connect_0 == false); + first_disconnect = (mac->link_state < MAC80211_LINKED) && + (dm_digtable.b_media_connect_0 == true); + + /*1 Boundary Decision*/ + + + dm_dig_max = 0x5A; + + if (rtlhal->hw_type != HARDWARE_TYPE_RTL8821AE) + dm_dig_min = DM_DIG_MIN; + else + dm_dig_min = 0x1C; + + dig_max_of_min = DM_DIG_MAX_AP; + + if (mac->link_state >= MAC80211_LINKED) { + if (rtlhal->hw_type != HARDWARE_TYPE_RTL8821AE) + offset = 20; + else + offset = 10; + + if ((dm_digtable.rssi_val_min + offset) > dm_dig_max) + dm_digtable.rx_gain_range_max = dm_dig_max; + else if ((dm_digtable.rssi_val_min + offset) < dm_dig_min) + dm_digtable.rx_gain_range_max = dm_dig_min; + else + dm_digtable.rx_gain_range_max = dm_digtable.rssi_val_min + offset; + + if(rtlpriv->dm.b_one_entry_only){ + offset = 0; + + if (dm_digtable.rssi_val_min - offset < dm_dig_min) + dig_dynamic_min = dm_dig_min; + else if (dm_digtable.rssi_val_min - offset > dig_max_of_min) + dig_dynamic_min = dig_max_of_min; + else + dig_dynamic_min = dm_digtable.rssi_val_min - offset; + + RT_TRACE(COMP_DIG, DBG_LOUD, + ("rtl8821ae_dm_dig() : bOneEntryOnly=TRUE, dig_dynamic_min=0x%x\n", + dig_dynamic_min)); + RT_TRACE(COMP_DIG, DBG_LOUD, + ("rtl8821ae_dm_dig() : dm_digtable.rssi_val_min=%d",dm_digtable. + rssi_val_min)); + } else { + dig_dynamic_min = dm_dig_min; + } + } else { + dm_digtable.rx_gain_range_max = dm_dig_max; + dig_dynamic_min = dm_dig_min; + RT_TRACE(COMP_DIG, DBG_LOUD, + ("rtl8821ae_dm_dig() : No Link\n")); + } + + if (rtlpriv->falsealm_cnt.cnt_all > 10000) { + RT_TRACE(COMP_DIG, DBG_LOUD, + ("rtl8821ae_dm_dig(): Abnornally false alarm case. \n")); + + if (dm_digtable.large_fa_hit != 3) + dm_digtable.large_fa_hit++; + if (dm_digtable.forbidden_igi < current_igi) { + dm_digtable.forbidden_igi = current_igi; + dm_digtable.large_fa_hit = 1; + } + + if (dm_digtable.large_fa_hit >= 3) { + if((dm_digtable.forbidden_igi + 1) > dm_digtable.rx_gain_range_max) + dm_digtable.rx_gain_range_min = dm_digtable.rx_gain_range_max; + else + dm_digtable.rx_gain_range_min = (dm_digtable.forbidden_igi + 1); + dm_digtable.recover_cnt = 3600; + } + + } else { + /*Recovery mechanism for IGI lower bound*/ + if (dm_digtable.recover_cnt != 0) + dm_digtable.recover_cnt --; + else { + if (dm_digtable.large_fa_hit < 3) { + if ((dm_digtable.forbidden_igi -1) < dig_dynamic_min) { + dm_digtable.forbidden_igi = dig_dynamic_min; + dm_digtable.rx_gain_range_min = dig_dynamic_min; + RT_TRACE(COMP_DIG, DBG_LOUD, + ("rtl8821ae_dm_dig(): Normal Case: At Lower Bound\n")); + } else { + dm_digtable.forbidden_igi --; + dm_digtable.rx_gain_range_min = (dm_digtable.forbidden_igi + 1); + RT_TRACE(COMP_DIG, DBG_LOUD, + ("rtl8821ae_dm_dig(): Normal Case: Approach Lower Bound\n")); + } + } else { + dm_digtable.large_fa_hit = 0; + } + } + } + RT_TRACE(COMP_DIG, DBG_LOUD, + ("rtl8821ae_dm_dig(): pDM_DigTable->LargeFAHit=%d\n", + dm_digtable.large_fa_hit)); + + if (rtlpriv->dm.dbginfo.num_qry_beacon_pkt < 10) + dm_digtable.rx_gain_range_min = dm_dig_min; + + if (dm_digtable.rx_gain_range_min > dm_digtable.rx_gain_range_max) + dm_digtable.rx_gain_range_min = dm_digtable.rx_gain_range_max; + + /*Adjust initial gain by false alarm*/ + if (mac->link_state >= MAC80211_LINKED) { + RT_TRACE(COMP_DIG, DBG_LOUD, + ("rtl8821ae_dm_dig(): DIG AfterLink\n")); + if (first_connect) { + if (dm_digtable.rssi_val_min <= dig_max_of_min) + current_igi = dm_digtable.rssi_val_min; + else + current_igi = dig_max_of_min; + RT_TRACE(COMP_DIG, DBG_LOUD, + ("rtl8821ae_dm_dig: First Connect\n")); + } else { + if(rtlpriv->falsealm_cnt.cnt_all > DM_DIG_FA_TH2) + current_igi = current_igi + 4; + else if (rtlpriv->falsealm_cnt.cnt_all > DM_DIG_FA_TH1) + current_igi = current_igi + 2; + else if(rtlpriv->falsealm_cnt.cnt_all < DM_DIG_FA_TH0) + current_igi = current_igi - 2; + + if((rtlpriv->dm.dbginfo.num_qry_beacon_pkt < 10) + &&(rtlpriv->falsealm_cnt.cnt_all < DM_DIG_FA_TH1)) { + current_igi = dm_digtable.rx_gain_range_min; + RT_TRACE(COMP_DIG, DBG_LOUD, + ("rtl8821ae_dm_dig(): Beacon is less than 10 and FA is less than 768, IGI GOES TO 0x1E!!!!!!!!!!!!\n")); + } + } + } else{ + RT_TRACE(COMP_DIG, DBG_LOUD, + ("rtl8821ae_dm_dig(): DIG BeforeLink\n")); + if (first_disconnect){ + current_igi = dm_digtable.rx_gain_range_min; + RT_TRACE(COMP_DIG, DBG_LOUD, + ("rtl8821ae_dm_dig(): First DisConnect \n")); + } else { + /*2012.03.30 LukeLee: enable DIG before link but with very high thresholds*/ + if (rtlpriv->falsealm_cnt.cnt_all > 2000) + current_igi = current_igi + 4; + else if (rtlpriv->falsealm_cnt.cnt_all > 600) + current_igi = current_igi + 2; + else if(rtlpriv->falsealm_cnt.cnt_all < 300) + current_igi = current_igi - 2; + if (current_igi >= 0x3e) + current_igi = 0x3e; + RT_TRACE(COMP_DIG, DBG_LOUD,("rtl8821ae_dm_dig(): England DIG \n")); + } + } + RT_TRACE(COMP_DIG, DBG_LOUD, + ("rtl8821ae_dm_dig(): DIG End Adjust IGI\n")); + /* Check initial gain by upper/lower bound*/ + + if (current_igi > dm_digtable.rx_gain_range_max) + current_igi = dm_digtable.rx_gain_range_max; + if (current_igi < dm_digtable.rx_gain_range_min) + current_igi = dm_digtable.rx_gain_range_min; + + RT_TRACE(COMP_DIG, DBG_LOUD, + ("rtl8821ae_dm_dig(): rx_gain_range_max=0x%x, rx_gain_range_min=0x%x\n", + dm_digtable.rx_gain_range_max, dm_digtable.rx_gain_range_min)); + RT_TRACE(COMP_DIG, DBG_LOUD, + ("rtl8821ae_dm_dig(): TotalFA=%d\n", rtlpriv->falsealm_cnt.cnt_all)); + RT_TRACE(COMP_DIG, DBG_LOUD, + ("rtl8821ae_dm_dig(): CurIGValue=0x%x\n", current_igi)); + + rtl8821ae_dm_write_dig(hw, current_igi); + dm_digtable.b_media_connect_0= ((mac->link_state >= MAC80211_LINKED) ? true :false); + dm_digtable.dig_dynamic_min_0 = dig_dynamic_min; +} + +static void rtl8821ae_dm_common_info_self_update(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 cnt = 0; + struct rtl_sta_info *drv_priv; + + rtlpriv->dm.b_one_entry_only = false; + + if (rtlpriv->mac80211.opmode == NL80211_IFTYPE_STATION && + rtlpriv->mac80211.link_state >= MAC80211_LINKED) { + rtlpriv->dm.b_one_entry_only = true; + return; + } + + if (rtlpriv->mac80211.opmode == NL80211_IFTYPE_AP || + rtlpriv->mac80211.opmode == NL80211_IFTYPE_ADHOC || + rtlpriv->mac80211.opmode == NL80211_IFTYPE_MESH_POINT) { + spin_lock_bh(&rtlpriv->locks.entry_list_lock); + list_for_each_entry(drv_priv, &rtlpriv->entry_list, list) { + cnt ++; + } + spin_unlock_bh(&rtlpriv->locks.entry_list_lock); + + if (cnt == 1) + rtlpriv->dm.b_one_entry_only = true; + } +} + + +static void rtl8821ae_dm_false_alarm_counter_statistics(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct false_alarm_statistics *falsealm_cnt = &(rtlpriv->falsealm_cnt); + u32 cck_enable =0; + + /*read OFDM FA counter*/ + falsealm_cnt->cnt_ofdm_fail = rtl_get_bbreg(hw, ODM_REG_OFDM_FA_11AC, BMASKLWORD); + falsealm_cnt->cnt_cck_fail = rtl_get_bbreg(hw, ODM_REG_CCK_FA_11AC, BMASKLWORD); + + cck_enable = rtl_get_bbreg(hw, ODM_REG_BB_RX_PATH_11AC, BIT(28)); + if (cck_enable) /*if(pDM_Odm->pBandType == ODM_BAND_2_4G)*/ + falsealm_cnt->cnt_all = falsealm_cnt->cnt_ofdm_fail + falsealm_cnt->cnt_cck_fail; + else + falsealm_cnt->cnt_all = falsealm_cnt->cnt_ofdm_fail; + + /*reset OFDM FA coutner*/ + rtl_set_bbreg(hw, ODM_REG_OFDM_FA_RST_11AC, BIT(17), 1); + rtl_set_bbreg(hw, ODM_REG_OFDM_FA_RST_11AC, BIT(17), 0); + /* reset CCK FA counter*/ + rtl_set_bbreg(hw, ODM_REG_CCK_FA_RST_11AC, BIT(15), 0); + rtl_set_bbreg(hw, ODM_REG_CCK_FA_RST_11AC, BIT(15), 1); + + RT_TRACE(COMP_DIG, DBG_LOUD, ("Cnt_Cck_fail=%d\n", + falsealm_cnt->cnt_cck_fail)); + RT_TRACE(COMP_DIG, DBG_LOUD, ("cnt_ofdm_fail=%d\n", + falsealm_cnt->cnt_ofdm_fail)); + RT_TRACE(COMP_DIG, DBG_LOUD, ("Total False Alarm=%d\n", + falsealm_cnt->cnt_all)); +} + +void rtl8812ae_dm_check_txpower_tracking_thermalmeter( + struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + static u8 tm_trigger = 0; + + if (!rtlpriv->dm.btxpower_tracking) + return; + + if (!tm_trigger) { + rtl_set_rfreg(hw, RF90_PATH_A, RF_T_METER_88E, BIT(17)|BIT(16), 0x03); + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("Trigger 8812 Thermal Meter!!\n")); + tm_trigger = 1; + return; + } else { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("Schedule TxPowerTracking direct call!!\n")); + rtl8812ae_dm_txpower_tracking_callback_thermalmeter(hw); + tm_trigger = 0; + } +} + +static void rtl8821ae_dm_iq_calibrate(struct ieee80211_hw *hw) +{ + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + + if (mac->link_state >= MAC80211_LINKED) { + /*if ((*rtldm->p_channel != rtldm->pre_channel ) + && (!mac->act_scanning)) { + rtldm->pre_channel = *rtldm->p_channel; + rtldm->linked_interval = 0; + }*/ + + if(rtldm->linked_interval < 3) + rtldm->linked_interval ++; + + if(rtldm->linked_interval == 2) + { + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + rtl8812ae_phy_iq_calibrate(hw, false); + else + rtl8821ae_phy_iq_calibrate(hw, false); + } + } else { + rtldm->linked_interval = 0; + } +} + + +void rtl8812ae_get_delta_swing_table( + struct ieee80211_hw *hw, + u8 **temperature_up_a, + u8 **temperature_down_a, + u8 **temperature_up_b, + u8 **temperature_down_b + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + u8 channel = rtlphy->current_channel; + u8 rate = rtldm->tx_rate; + + + if ( 1 <= channel && channel <= 14) { + if (RX_HAL_IS_CCK_RATE(rate)) { + *temperature_up_a = rtldm->delta_swing_table_idx_24gccka_p; + *temperature_down_a = rtldm->delta_swing_table_idx_24gccka_n; + *temperature_up_b = rtldm->delta_swing_table_idx_24gcckb_p; + *temperature_down_b = rtldm->delta_swing_table_idx_24gcckb_n; + } else { + *temperature_up_a = rtldm->delta_swing_table_idx_24ga_p; + *temperature_down_a = rtldm->delta_swing_table_idx_24ga_n; + *temperature_up_b = rtldm->delta_swing_table_idx_24gb_p; + *temperature_down_b = rtldm->delta_swing_table_idx_24gb_n; + } + } else if ( 36 <= channel && channel <= 64) { + *temperature_up_a = rtldm->delta_swing_table_idx_5ga_p[0]; + *temperature_down_a = rtldm->delta_swing_table_idx_5ga_n[0]; + *temperature_up_b = rtldm->delta_swing_table_idx_5gb_p[0]; + *temperature_down_b = rtldm->delta_swing_table_idx_5gb_n[0]; + } else if ( 100 <= channel && channel <= 140) { + *temperature_up_a = rtldm->delta_swing_table_idx_5ga_p[1]; + *temperature_down_a = rtldm->delta_swing_table_idx_5ga_n[1]; + *temperature_up_b = rtldm->delta_swing_table_idx_5gb_p[1]; + *temperature_down_b = rtldm->delta_swing_table_idx_5gb_n[1]; + } else if ( 149 <= channel && channel <= 173) { + *temperature_up_a = rtldm->delta_swing_table_idx_5ga_p[2]; + *temperature_down_a = rtldm->delta_swing_table_idx_5ga_n[2]; + *temperature_up_b = rtldm->delta_swing_table_idx_5gb_p[2]; + *temperature_down_b = rtldm->delta_swing_table_idx_5gb_n[2]; + } else { + *temperature_up_a = (u8*)rtl8818e_delta_swing_table_idx_24gb_p_txpwrtrack; + *temperature_down_a =(u8*)rtl8818e_delta_swing_table_idx_24gb_n_txpwrtrack; + *temperature_up_b = (u8*)rtl8818e_delta_swing_table_idx_24gb_p_txpwrtrack; + *temperature_down_b = (u8*)rtl8818e_delta_swing_table_idx_24gb_n_txpwrtrack; + } + + return; +} + +void rtl8812ae_phy_lccalibrate( + struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, ("===> rtl8812ae_phy_lccalibrate\n")); + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, ("<=== rtl8812ae_phy_lccalibrate\n")); + +} + +void rtl8812ae_dm_update_init_rate( + struct ieee80211_hw *hw, + u8 rate + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 p = 0; + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("Get C2H Command! Rate=0x%x\n", rate)); + + rtldm->tx_rate = rate; + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE){ + rtl8821ae_dm_txpwr_track_set_pwr(hw, MIX_MODE, RF90_PATH_A, 0); + } + else + { + for (p = RF90_PATH_A; p < MAX_PATH_NUM_8812A; p++) + { + rtl8812ae_dm_txpwr_track_set_pwr(hw, BBSWING, p, 0); + } + } + +} + +u8 rtl8812ae_hw_rate_to_mrate( + struct ieee80211_hw *hw, + u8 rate + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 ret_rate = MGN_1M; + + + switch(rate) + { + case DESC_RATE1M: ret_rate = MGN_1M; break; + case DESC_RATE2M: ret_rate = MGN_2M; break; + case DESC_RATE5_5M: ret_rate = MGN_5_5M; break; + case DESC_RATE11M: ret_rate = MGN_11M; break; + case DESC_RATE6M: ret_rate = MGN_6M; break; + case DESC_RATE9M: ret_rate = MGN_9M; break; + case DESC_RATE12M: ret_rate = MGN_12M; break; + case DESC_RATE18M: ret_rate = MGN_18M; break; + case DESC_RATE24M: ret_rate = MGN_24M; break; + case DESC_RATE36M: ret_rate = MGN_36M; break; + case DESC_RATE48M: ret_rate = MGN_48M; break; + case DESC_RATE54M: ret_rate = MGN_54M; break; + case DESC_RATEMCS0: ret_rate = MGN_MCS0; break; + case DESC_RATEMCS1: ret_rate = MGN_MCS1; break; + case DESC_RATEMCS2: ret_rate = MGN_MCS2; break; + case DESC_RATEMCS3: ret_rate = MGN_MCS3; break; + case DESC_RATEMCS4: ret_rate = MGN_MCS4; break; + case DESC_RATEMCS5: ret_rate = MGN_MCS5; break; + case DESC_RATEMCS6: ret_rate = MGN_MCS6; break; + case DESC_RATEMCS7: ret_rate = MGN_MCS7; break; + case DESC_RATEMCS8: ret_rate = MGN_MCS8; break; + case DESC_RATEMCS9: ret_rate = MGN_MCS9; break; + case DESC_RATEMCS10: ret_rate = MGN_MCS10; break; + case DESC_RATEMCS11: ret_rate = MGN_MCS11; break; + case DESC_RATEMCS12: ret_rate = MGN_MCS12; break; + case DESC_RATEMCS13: ret_rate = MGN_MCS13; break; + case DESC_RATEMCS14: ret_rate = MGN_MCS14; break; + case DESC_RATEMCS15: ret_rate = MGN_MCS15; break; + case DESC_RATEVHT1SS_MCS0: ret_rate = MGN_VHT1SS_MCS0; break; + case DESC_RATEVHT1SS_MCS1: ret_rate = MGN_VHT1SS_MCS1; break; + case DESC_RATEVHT1SS_MCS2: ret_rate = MGN_VHT1SS_MCS2; break; + case DESC_RATEVHT1SS_MCS3: ret_rate = MGN_VHT1SS_MCS3; break; + case DESC_RATEVHT1SS_MCS4: ret_rate = MGN_VHT1SS_MCS4; break; + case DESC_RATEVHT1SS_MCS5: ret_rate = MGN_VHT1SS_MCS5; break; + case DESC_RATEVHT1SS_MCS6: ret_rate = MGN_VHT1SS_MCS6; break; + case DESC_RATEVHT1SS_MCS7: ret_rate = MGN_VHT1SS_MCS7; break; + case DESC_RATEVHT1SS_MCS8: ret_rate = MGN_VHT1SS_MCS8; break; + case DESC_RATEVHT1SS_MCS9: ret_rate = MGN_VHT1SS_MCS9; break; + case DESC_RATEVHT2SS_MCS0: ret_rate = MGN_VHT2SS_MCS0; break; + case DESC_RATEVHT2SS_MCS1: ret_rate = MGN_VHT2SS_MCS1; break; + case DESC_RATEVHT2SS_MCS2: ret_rate = MGN_VHT2SS_MCS2; break; + case DESC_RATEVHT2SS_MCS3: ret_rate = MGN_VHT2SS_MCS3; break; + case DESC_RATEVHT2SS_MCS4: ret_rate = MGN_VHT2SS_MCS4; break; + case DESC_RATEVHT2SS_MCS5: ret_rate = MGN_VHT2SS_MCS5; break; + case DESC_RATEVHT2SS_MCS6: ret_rate = MGN_VHT2SS_MCS6; break; + case DESC_RATEVHT2SS_MCS7: ret_rate = MGN_VHT2SS_MCS7; break; + case DESC_RATEVHT2SS_MCS8: ret_rate = MGN_VHT2SS_MCS8; break; + case DESC_RATEVHT2SS_MCS9: ret_rate = MGN_VHT2SS_MCS9; break; + + default: + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("HwRateToMRate8812(): Non supported Rate [%x]!!!\n",rate )); + break; + } + return ret_rate; +} + +/*----------------------------------------------------------------------------- + * Function: odm_TxPwrTrackSetPwr88E() + * + * Overview: 88E change all channel tx power accordign to flag. + * OFDM & CCK are all different. + * + * Input: NONE + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 04/23/2012 MHC Create Version 0. + * + *---------------------------------------------------------------------------*/ +void rtl8812ae_dm_txpwr_track_set_pwr(struct ieee80211_hw *hw, + enum pwr_track_control_method method, u8 rf_path, u8 channel_mapped_index) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u32 final_bb_swing_idx[2]; + u8 pwr_tracking_limit = 26; /*+1.0dB*/ + u8 tx_rate = 0xFF; + s8 final_ofdm_swing_index = 0; + + if(rtldm->tx_rate != 0xFF) + tx_rate = rtl8812ae_hw_rate_to_mrate(hw, rtldm->tx_rate); + + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("===>rtl8812ae_dm_txpwr_track_set_pwr\n")); + + if(tx_rate != 0xFF) { /*20130429 Mimic Modify High Rate BBSwing Limit.*/ + /*CCK*/ + if((tx_rate >= MGN_1M) && (tx_rate <= MGN_11M)) + pwr_tracking_limit = 32; /*+4dB*/ + /*OFDM*/ + else if((tx_rate >= MGN_6M) && (tx_rate <= MGN_48M)) + pwr_tracking_limit = 30; /*+3dB*/ + else if(tx_rate == MGN_54M) + pwr_tracking_limit = 28; /*+2dB*/ + /*HT*/ + else if((tx_rate >= MGN_MCS0) && (tx_rate <= MGN_MCS2)) /*QPSK/BPSK*/ + pwr_tracking_limit = 34; /*+5dB*/ + else if((tx_rate >= MGN_MCS3) && (tx_rate <= MGN_MCS4)) /*16QAM*/ + pwr_tracking_limit = 30; /*+3dB*/ + else if((tx_rate >= MGN_MCS5) && (tx_rate <= MGN_MCS7)) /*64QAM*/ + pwr_tracking_limit = 28; /*+2dB*/ + + else if((tx_rate >= MGN_MCS8) && (tx_rate <= MGN_MCS10)) /*QPSK/BPSK*/ + pwr_tracking_limit = 34; /*+5dB*/ + else if((tx_rate >= MGN_MCS11) && (tx_rate <= MGN_MCS12)) /*16QAM*/ + pwr_tracking_limit = 30; /*+3dB*/ + else if((tx_rate >= MGN_MCS13) && (tx_rate <= MGN_MCS15)) /*64QAM*/ + pwr_tracking_limit = 28; /*+2dB*/ + + /*2 VHT*/ + else if((tx_rate >= MGN_VHT1SS_MCS0) && (tx_rate <= MGN_VHT1SS_MCS2)) /*QPSK/BPSK*/ + pwr_tracking_limit = 34; /*+5dB*/ + else if((tx_rate >= MGN_VHT1SS_MCS3) && (tx_rate <= MGN_VHT1SS_MCS4)) /*16QAM*/ + pwr_tracking_limit = 30; /*+3dB*/ + else if((tx_rate >= MGN_VHT1SS_MCS5)&&(tx_rate <= MGN_VHT1SS_MCS6)) /*64QAM*/ + pwr_tracking_limit = 28; /*+2dB*/ + else if(tx_rate == MGN_VHT1SS_MCS7) /*64QAM*/ + pwr_tracking_limit = 26; /*+1dB*/ + else if(tx_rate == MGN_VHT1SS_MCS8) /*256QAM*/ + pwr_tracking_limit = 24; /*+0dB*/ + else if(tx_rate == MGN_VHT1SS_MCS9) /*256QAM*/ + pwr_tracking_limit = 22; /*-1dB*/ + + else if((tx_rate >= MGN_VHT2SS_MCS0)&&(tx_rate <= MGN_VHT2SS_MCS2)) /*QPSK/BPSK*/ + pwr_tracking_limit = 34; /*+5dB*/ + else if((tx_rate >= MGN_VHT2SS_MCS3)&&(tx_rate <= MGN_VHT2SS_MCS4)) /*16QAM*/ + pwr_tracking_limit = 30; /*+3dB*/ + else if((tx_rate >= MGN_VHT2SS_MCS5)&&(tx_rate <= MGN_VHT2SS_MCS6)) /*64QAM*/ + pwr_tracking_limit = 28; /*+2dB*/ + else if(tx_rate == MGN_VHT2SS_MCS7) /*64QAM*/ + pwr_tracking_limit = 26; /*+1dB*/ + else if(tx_rate == MGN_VHT2SS_MCS8) /*256QAM*/ + pwr_tracking_limit = 24; /*+0dB*/ + else if(tx_rate == MGN_VHT2SS_MCS9) /*256QAM*/ + pwr_tracking_limit = 22; /*-1dB*/ + else + pwr_tracking_limit = 24; + } + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("TxRate=0x%x, PwrTrackingLimit=%d\n", tx_rate, pwr_tracking_limit)); + + + if (method == BBSWING) { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("===>rtl8812ae_dm_txpwr_track_set_pwr\n")); + + if (rf_path == RF90_PATH_A) { + final_bb_swing_idx[RF90_PATH_A] = + (rtldm->ofdm_index[RF90_PATH_A] > pwr_tracking_limit) ? + pwr_tracking_limit : rtldm->ofdm_index[RF90_PATH_A]; + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("pDM_Odm->RFCalibrateInfo.OFDM_index[ODM_RF_PATH_A]=%d, \ + pDM_Odm->RealBbSwingIdx[ODM_RF_PATH_A]=%d\n", + rtldm->ofdm_index[RF90_PATH_A], final_bb_swing_idx[RF90_PATH_A])); + + rtl_set_bbreg(hw, RA_TXSCALE, 0xFFE00000, rtl8812ae_txscaling_table[final_bb_swing_idx[RF90_PATH_A]]); + } else { + final_bb_swing_idx[RF90_PATH_B] = + rtldm->ofdm_index[RF90_PATH_B] > pwr_tracking_limit ? \ + pwr_tracking_limit : rtldm->ofdm_index[RF90_PATH_B]; + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("pDM_Odm->RFCalibrateInfo.OFDM_index[ODM_RF_PATH_B]=%d, \ + pDM_Odm->RealBbSwingIdx[ODM_RF_PATH_B]=%d\n", + rtldm->ofdm_index[RF90_PATH_B], final_bb_swing_idx[RF90_PATH_B])); + + rtl_set_bbreg(hw, RB_TXSCALE, 0xFFE00000, rtl8812ae_txscaling_table[final_bb_swing_idx[RF90_PATH_B]]); + } + } else if (method == MIX_MODE) { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("pDM_Odm->DefaultOfdmIndex=%d, \ + pDM_Odm->Aboslute_OFDMSwingIdx[RFPath]=%d, RF_Path = %d\n", + rtldm->default_ofdm_index, rtldm->aboslute_ofdm_swing_idx[rf_path], + rf_path )); + + + final_ofdm_swing_index = rtldm->default_ofdm_index + rtldm->aboslute_ofdm_swing_idx[rf_path]; + + if (rf_path == RF90_PATH_A) { + if(final_ofdm_swing_index > pwr_tracking_limit) { /*BBSwing higher then Limit*/ + + rtldm->remnant_cck_idx = final_ofdm_swing_index - pwr_tracking_limit; + /* CCK Follow the same compensate value as Path A*/ + rtldm->remnant_ofdm_swing_idx[rf_path] = final_ofdm_swing_index - pwr_tracking_limit; + + rtl_set_bbreg(hw, RA_TXSCALE, 0xFFE00000, rtl8812ae_txscaling_table[pwr_tracking_limit]); + + rtldm->modify_txagc_flag_path_a = true; + + /*Set TxAGC Page C{};*/ + rtl8821ae_phy_set_txpower_level_by_path(hw, rtlphy->current_channel, RF90_PATH_A); + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("******Path_A Over BBSwing Limit , PwrTrackingLimit = %d , Remnant TxAGC Value = %d \n", + pwr_tracking_limit, rtldm->remnant_ofdm_swing_idx[rf_path])); + } else if (final_ofdm_swing_index < 0) { + rtldm->remnant_cck_idx = final_ofdm_swing_index; + /* CCK Follow the same compensate value as Path A*/ + rtldm->remnant_ofdm_swing_idx[rf_path] = final_ofdm_swing_index; + + rtl_set_bbreg(hw, RA_TXSCALE, 0xFFE00000, rtl8812ae_txscaling_table[0]); + + rtldm->modify_txagc_flag_path_a = true; + + /*Set TxAGC Page C{};*/ + rtl8821ae_phy_set_txpower_level_by_path(hw, rtlphy->current_channel, RF90_PATH_A); + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("******Path_A Lower then BBSwing lower bound 0 , Remnant TxAGC Value = %d \n", + rtldm->remnant_ofdm_swing_idx[rf_path])); + } else { + rtl_set_bbreg(hw, RA_TXSCALE, 0xFFE00000, rtl8812ae_txscaling_table[final_ofdm_swing_index]); + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("******Path_A Compensate with BBSwing , Final_OFDM_Swing_Index = %d \n", + final_ofdm_swing_index)); + + if(rtldm->modify_txagc_flag_path_a) { /*If TxAGC has changed, reset TxAGC again*/ + rtldm->remnant_cck_idx = 0; + rtldm->remnant_ofdm_swing_idx[rf_path] = 0; + + /*Set TxAGC Page C{};*/ + rtl8821ae_phy_set_txpower_level_by_path(hw, rtlphy->current_channel, RF90_PATH_A); + + rtldm->modify_txagc_flag_path_a = false; + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("******Path_A pDM_Odm->Modify_TxAGC_Flag = FALSE \n")); + } + } + } + + if (rf_path == RF90_PATH_B) { + if(final_ofdm_swing_index > pwr_tracking_limit) { /*BBSwing higher then Limit*/ + rtldm->remnant_ofdm_swing_idx[rf_path] = final_ofdm_swing_index - pwr_tracking_limit; + + rtl_set_bbreg(hw, RB_TXSCALE, 0xFFE00000, rtl8812ae_txscaling_table[pwr_tracking_limit]); + + rtldm->modify_txagc_flag_path_b = true; + + /*Set TxAGC Page E{};*/ + rtl8821ae_phy_set_txpower_level_by_path(hw, rtlphy->current_channel, RF90_PATH_B); + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("******Path_B Over BBSwing Limit , PwrTrackingLimit = %d , Remnant TxAGC Value = %d \n", + pwr_tracking_limit, rtldm->remnant_ofdm_swing_idx[rf_path])); + } else if (final_ofdm_swing_index < 0) { + rtldm->remnant_ofdm_swing_idx[rf_path] = final_ofdm_swing_index; + + rtl_set_bbreg(hw, RB_TXSCALE, 0xFFE00000, rtl8812ae_txscaling_table[0]); + + rtldm->modify_txagc_flag_path_b = true; + + /*Set TxAGC Page E{};*/ + rtl8821ae_phy_set_txpower_level_by_path(hw, rtlphy->current_channel, RF90_PATH_B); + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("******Path_B Lower then BBSwing lower bound 0 , Remnant TxAGC Value = %d \n", + rtldm->remnant_ofdm_swing_idx[rf_path] )); + } else { + rtl_set_bbreg(hw, RB_TXSCALE, 0xFFE00000, rtl8812ae_txscaling_table[final_ofdm_swing_index]); + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("******Path_B Compensate with BBSwing , Final_OFDM_Swing_Index = %d \n", + final_ofdm_swing_index)); + + if(rtldm->modify_txagc_flag_path_b) { /*If TxAGC has changed, reset TxAGC again*/ + rtldm->remnant_ofdm_swing_idx[rf_path] = 0; + + /*Set TxAGC Page E{};*/ + rtl8821ae_phy_set_txpower_level_by_path(hw, rtlphy->current_channel, RF90_PATH_B); + + rtldm->modify_txagc_flag_path_b = false; + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("******Path_B pDM_Odm->Modify_TxAGC_Flag = FALSE \n")); + } + } + } + + } else { + return; + } +} + +void rtl8812ae_dm_txpower_tracking_callback_thermalmeter + (struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + u8 thermal_value = 0, delta, delta_lck, delta_iqk, p = 0, i = 0; + u8 thermal_value_avg_count = 0; + u32 thermal_value_avg = 0; + + u8 ofdm_min_index = 6; /*OFDM BB Swing should be less than +3.0dB, which is required by Arthur*/ + u8 index_for_channel = 0; /* GetRightChnlPlaceforIQK(pHalData->CurrentChannel)*/ + + /* 1. The following TWO tables decide the final index of OFDM/CCK swing table.*/ + u8 *delta_swing_table_idx_tup_a; + u8 *delta_swing_table_idx_tdown_a; + u8 *delta_swing_table_idx_tup_b; + u8 *delta_swing_table_idx_tdown_b; + + /*2. Initilization ( 7 steps in total )*/ + rtl8812ae_get_delta_swing_table(hw, (u8**)&delta_swing_table_idx_tup_a, + (u8**)&delta_swing_table_idx_tdown_a, + (u8**)&delta_swing_table_idx_tup_b, + (u8**)&delta_swing_table_idx_tdown_b); + + rtldm->btxpower_trackinginit = true; + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("===>rtl8812ae_dm_txpower_tracking_callback_thermalmeter, \ + \n pDM_Odm->BbSwingIdxCckBase: %d, pDM_Odm->BbSwingIdxOfdmBase[A]:\ + %d, pDM_Odm->DefaultOfdmIndex: %d\n", + rtldm->bb_swing_idx_cck_base, + rtldm->bb_swing_idx_ofdm_base[RF90_PATH_A], + rtldm->default_ofdm_index)); + + thermal_value = (u8)rtl_get_rfreg(hw, RF90_PATH_A, RF_T_METER_8812A, 0xfc00); /*0x42: RF Reg[15:10] 88E*/ + if( ! rtldm->txpower_track_control || rtlefuse->eeprom_thermalmeter == 0 || + rtlefuse->eeprom_thermalmeter == 0xFF) + return; + + + /* 3. Initialize ThermalValues of RFCalibrateInfo*/ + + if(rtlhal->reloadtxpowerindex) + { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("reload ofdm index for band switch\n")); + } + + /*4. Calculate average thermal meter*/ + rtldm->thermalvalue_avg[rtldm->thermalvalue_avg_index] = thermal_value; + rtldm->thermalvalue_avg_index++; + if(rtldm->thermalvalue_avg_index == AVG_THERMAL_NUM_8812A) + /*Average times = c.AverageThermalNum*/ + rtldm->thermalvalue_avg_index = 0; + + for(i = 0; i < AVG_THERMAL_NUM_8812A; i++) + { + if(rtldm->thermalvalue_avg[i]) + { + thermal_value_avg += rtldm->thermalvalue_avg[i]; + thermal_value_avg_count++; + } + } + + if(thermal_value_avg_count) /*Calculate Average ThermalValue after average enough times*/ + { + thermal_value = (u8)(thermal_value_avg / thermal_value_avg_count); + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("AVG Thermal Meter = 0x%X, EFUSE Thermal Base = 0x%X\n", + thermal_value, rtlefuse->eeprom_thermalmeter)); + } + + /*5. Calculate delta, delta_LCK, delta_IQK.*/ + /*"delta" here is used to determine whether thermal value changes or not.*/ + delta = (thermal_value > rtldm->thermalvalue) ? \ + (thermal_value - rtldm->thermalvalue): \ + (rtldm->thermalvalue - thermal_value); + delta_lck = (thermal_value > rtldm->thermalvalue_lck) ? \ + (thermal_value - rtldm->thermalvalue_lck) : \ + (rtldm->thermalvalue_lck - thermal_value); + delta_iqk = (thermal_value > rtldm->thermalvalue_iqk) ? \ + (thermal_value - rtldm->thermalvalue_iqk) : \ + (rtldm->thermalvalue_iqk - thermal_value); + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("(delta, delta_LCK, delta_IQK) = (%d, %d, %d)\n", + delta, delta_lck, delta_iqk)); + + /* 6. If necessary, do LCK. */ + + if (delta_lck >= IQK_THRESHOLD) /*Delta temperature is equal to or larger than 20 centigrade.*/ + { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("delta_LCK(%d) >= Threshold_IQK(%d)\n", + delta_lck, IQK_THRESHOLD)); + rtldm->thermalvalue_lck = thermal_value; + rtl8812ae_phy_lccalibrate(hw); + } + + /*7. If necessary, move the index of swing table to adjust Tx power.*/ + + if (delta > 0 && rtldm->txpower_track_control) + { + /*"delta" here is used to record the absolute value of differrence.*/ + delta = thermal_value > rtlefuse->eeprom_thermalmeter ? \ + (thermal_value - rtlefuse->eeprom_thermalmeter) : \ + (rtlefuse->eeprom_thermalmeter - thermal_value); + + if (delta >= TXPWR_TRACK_TABLE_SIZE) + delta = TXPWR_TRACK_TABLE_SIZE - 1; + + /*7.1 The Final Power Index = BaseIndex + PowerIndexOffset*/ + + if(thermal_value > rtlefuse->eeprom_thermalmeter) { + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("delta_swing_table_idx_tup_a[%d] = %d\n", + delta, delta_swing_table_idx_tup_a[delta])); + rtldm->delta_power_index_last[RF90_PATH_A] = rtldm->delta_power_index[RF90_PATH_A]; + rtldm->delta_power_index[RF90_PATH_A] = delta_swing_table_idx_tup_a[delta]; + + rtldm->aboslute_ofdm_swing_idx[RF90_PATH_A] = delta_swing_table_idx_tup_a[delta]; + /*Record delta swing for mix mode power tracking*/ + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("******Temp is higher and pDM_Odm->Aboslute_OFDMSwingIdx[ODM_RF_PATH_A] = %d\n", + rtldm->aboslute_ofdm_swing_idx[RF90_PATH_A])); + + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("delta_swing_table_idx_tup_b[%d] = %d\n", + delta, delta_swing_table_idx_tup_b[delta])); + rtldm->delta_power_index_last[RF90_PATH_B] = rtldm->delta_power_index[RF90_PATH_B]; + rtldm->delta_power_index[RF90_PATH_B] = delta_swing_table_idx_tup_b[delta]; + + rtldm->aboslute_ofdm_swing_idx[RF90_PATH_B] = delta_swing_table_idx_tup_b[delta]; + /*Record delta swing for mix mode power tracking*/ + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("******Temp is higher and pDM_Odm->Aboslute_OFDMSwingIdx[ODM_RF_PATH_B] = %d\n", + rtldm->aboslute_ofdm_swing_idx[RF90_PATH_B])); + + } else { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("delta_swing_table_idx_tdown_a[%d] = %d\n", + delta, delta_swing_table_idx_tdown_a[delta])); + + rtldm->delta_power_index_last[RF90_PATH_A] = rtldm->delta_power_index[RF90_PATH_A]; + rtldm->delta_power_index[RF90_PATH_A] = -1 * delta_swing_table_idx_tdown_a[delta]; + + rtldm->aboslute_ofdm_swing_idx[RF90_PATH_A] = -1 * delta_swing_table_idx_tdown_a[delta]; + /* Record delta swing for mix mode power tracking*/ + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("******Temp is lower and pDM_Odm->Aboslute_OFDMSwingIdx[ODM_RF_PATH_A] = %d\n", + rtldm->aboslute_ofdm_swing_idx[RF90_PATH_A])); + + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("deltaSwingTableIdx_TDOWN_B[%d] = %d\n", + delta, delta_swing_table_idx_tdown_b[delta])); + + rtldm->delta_power_index_last[RF90_PATH_B] = rtldm->delta_power_index[RF90_PATH_B]; + rtldm->delta_power_index[RF90_PATH_B] = -1 * delta_swing_table_idx_tdown_b[delta]; + + rtldm->aboslute_ofdm_swing_idx[RF90_PATH_B] = -1 * delta_swing_table_idx_tdown_b[delta]; + /*Record delta swing for mix mode power tracking*/ + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("******Temp is lower and pDM_Odm->Aboslute_OFDMSwingIdx[ODM_RF_PATH_B] = %d\n", + rtldm->aboslute_ofdm_swing_idx[RF90_PATH_B])); + } + + for (p = RF90_PATH_A; p < MAX_PATH_NUM_8812A; p++) + { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("\n\n================================ [Path-%c] \ + Calculating PowerIndexOffset ================================\n", + (p == RF90_PATH_A ? 'A' : 'B'))); + + if (rtldm->delta_power_index[p] == rtldm->delta_power_index_last[p]) + /*If Thermal value changes but lookup table value still the same*/ + rtldm->power_index_offset[p] = 0; + else + rtldm->power_index_offset[p] = + rtldm->delta_power_index[p] - rtldm->delta_power_index_last[p]; + /*Power Index Diff between 2 times Power Tracking*/ + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("[Path-%c] PowerIndexOffset(%d) = DeltaPowerIndex(%d) - DeltaPowerIndexLast(%d)\n", + (p == RF90_PATH_A ? 'A' : 'B'), + rtldm->power_index_offset[p], + rtldm->delta_power_index[p] , + rtldm->delta_power_index_last[p])); + + rtldm->ofdm_index[p] = + rtldm->bb_swing_idx_ofdm_base[p] + rtldm->power_index_offset[p]; + rtldm->cck_index = + rtldm->bb_swing_idx_cck_base + rtldm->power_index_offset[p]; + + rtldm->bb_swing_idx_cck = rtldm->cck_index; + rtldm->bb_swing_idx_ofdm[p] = rtldm->ofdm_index[p]; + + /*************Print BB Swing Base and Index Offset*************/ + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("The 'CCK' final index(%d) = BaseIndex(%d) + PowerIndexOffset(%d)\n", + rtldm->bb_swing_idx_cck, + rtldm->bb_swing_idx_cck_base, + rtldm->power_index_offset[p])); + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("The 'OFDM' final index(%d) = BaseIndex[%c](%d) + PowerIndexOffset(%d)\n", + rtldm->bb_swing_idx_ofdm[p], + (p == RF90_PATH_A ? 'A' : 'B'), + rtldm->bb_swing_idx_ofdm_base[p], + rtldm->power_index_offset[p])); + + /*7.1 Handle boundary conditions of index.*/ + + + if(rtldm->ofdm_index[p] > TXSCALE_TABLE_SIZE -1) + { + rtldm->ofdm_index[p] = TXSCALE_TABLE_SIZE -1; + } + else if (rtldm->ofdm_index[p] < ofdm_min_index) + { + rtldm->ofdm_index[p] = ofdm_min_index; + } + } + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("\n\n======================================================\ + ==================================================\n")); + if(rtldm->cck_index > TXSCALE_TABLE_SIZE -1) + rtldm->cck_index = TXSCALE_TABLE_SIZE -1; + else if (rtldm->cck_index < 0) + rtldm->cck_index = 0; + } else { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("The thermal meter is unchanged or TxPowerTracking OFF(%d): \ + ThermalValue: %d , pDM_Odm->RFCalibrateInfo.ThermalValue: %d\n", + rtldm->txpower_track_control, + thermal_value, + rtldm->thermalvalue)); + + for (p = RF90_PATH_A; p < MAX_PATH_NUM_8812A; p++) + rtldm->power_index_offset[p] = 0; + } + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("TxPowerTracking: [CCK] Swing Current Index: %d, Swing Base Index: %d\n", + rtldm->cck_index, rtldm->bb_swing_idx_cck_base)); /*Print Swing base & current*/ + for (p = RF90_PATH_A; p < MAX_PATH_NUM_8812A; p++) + { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("TxPowerTracking: [OFDM] Swing Current Index: %d, Swing Base Index[%c]: %d\n", + rtldm->ofdm_index[p], + (p == RF90_PATH_A ? 'A' : 'B'), + rtldm->bb_swing_idx_ofdm_base[p])); + } + + if ((rtldm->power_index_offset[RF90_PATH_A] != 0 || + rtldm->power_index_offset[RF90_PATH_B] != 0 ) && + rtldm->txpower_track_control) + { + /*7.2 Configure the Swing Table to adjust Tx Power.*/ + /*Always TRUE after Tx Power is adjusted by power tracking.*/ + /* + 2012/04/23 MH According to Luke's suggestion, we can not write BB digital + to increase TX power. Otherwise, EVM will be bad. + + 2012/04/25 MH Add for tx power tracking to set tx power in tx agc for 88E. + */ + if (thermal_value > rtldm->thermalvalue) + { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("Temperature Increasing(A): delta_pi: %d , delta_t: %d, Now_t: %d, EFUSE_t: %d, Last_t: %d\n", + rtldm->power_index_offset[RF90_PATH_A], + delta, thermal_value, + rtlefuse->eeprom_thermalmeter, + rtldm->thermalvalue)); + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("Temperature Increasing(B): delta_pi: %d , delta_t: %d, Now_t: %d, EFUSE_t: %d, Last_t: %d\n", + rtldm->power_index_offset[RF90_PATH_B], + delta, thermal_value, + rtlefuse->eeprom_thermalmeter, + rtldm->thermalvalue)); + + } else if (thermal_value < rtldm->thermalvalue) { /*Low temperature*/ + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("Temperature Decreasing(A): delta_pi: %d , delta_t: %d, Now_t: %d, EFUSE_t: %d, Last_t: %d\n", + rtldm->power_index_offset[RF90_PATH_A], + delta, thermal_value, + rtlefuse->eeprom_thermalmeter, + rtldm->thermalvalue)); + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("Temperature Decreasing(B): delta_pi: %d , delta_t: %d, Now_t: %d, EFUSE_t: %d, Last_t: %d\n", + rtldm->power_index_offset[RF90_PATH_B], + delta, thermal_value, + rtlefuse->eeprom_thermalmeter, + rtldm->thermalvalue)); + } + + if (thermal_value > rtlefuse->eeprom_thermalmeter) { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("Temperature(%d) higher than PG value(%d)\n", + thermal_value, rtlefuse->eeprom_thermalmeter)); + + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("**********Enter POWER Tracking MIX_MODE**********\n")); + for (p = RF90_PATH_A; p < MAX_PATH_NUM_8812A; p++) + rtl8812ae_dm_txpwr_track_set_pwr(hw, MIX_MODE, p, 0); + + } else { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("Temperature(%d) lower than PG value(%d)\n", + thermal_value, rtlefuse->eeprom_thermalmeter)); + + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("**********Enter POWER Tracking MIX_MODE**********\n")); + for (p = RF90_PATH_A; p < MAX_PATH_NUM_8812A; p++) + rtl8812ae_dm_txpwr_track_set_pwr(hw, MIX_MODE, p, index_for_channel); + + } + + rtldm->bb_swing_idx_cck_base = rtldm->bb_swing_idx_cck; /*Record last time Power Tracking result as base.*/ + for (p = RF90_PATH_A; p < MAX_PATH_NUM_8812A; p++) + rtldm->bb_swing_idx_ofdm_base[p] = rtldm->bb_swing_idx_ofdm[p]; + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("pDM_Odm->RFCalibrateInfo.ThermalValue = %d ThermalValue= %d\n", + rtldm->thermalvalue, thermal_value)); + + rtldm->thermalvalue = thermal_value; /*Record last Power Tracking Thermal Value*/ + + } + /*Delta temperature is equal to or larger than 20 centigrade (When threshold is 8).*/ + if ((delta_iqk >= IQK_THRESHOLD)) { + + if ( !rtlphy->b_iqk_in_progress) { + + spin_lock(&rtlpriv->locks.iqk_lock); + rtlphy->b_iqk_in_progress = true; + spin_unlock(&rtlpriv->locks.iqk_lock); + + rtl8812ae_do_iqk(hw, delta_iqk, thermal_value, 8); + + spin_lock(&rtlpriv->locks.iqk_lock); + rtlphy->b_iqk_in_progress = false; + spin_unlock(&rtlpriv->locks.iqk_lock); + } + } + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("<===rtl8812ae_dm_txpower_tracking_callback_thermalmeter\n")); +} + + +void rtl8821ae_get_delta_swing_table( + struct ieee80211_hw *hw, + u8 **temperature_up_a, + u8 **temperature_down_a, + u8 **temperature_up_b, + u8 **temperature_down_b + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + u8 channel = rtlphy->current_channel; + u8 rate = rtldm->tx_rate; + + + if ( 1 <= channel && channel <= 14) { + if (RX_HAL_IS_CCK_RATE(rate)) { + *temperature_up_a = rtldm->delta_swing_table_idx_24gccka_p; + *temperature_down_a = rtldm->delta_swing_table_idx_24gccka_n; + *temperature_up_b = rtldm->delta_swing_table_idx_24gcckb_p; + *temperature_down_b = rtldm->delta_swing_table_idx_24gcckb_n; + } else { + *temperature_up_a = rtldm->delta_swing_table_idx_24ga_p; + *temperature_down_a = rtldm->delta_swing_table_idx_24ga_n; + *temperature_up_b = rtldm->delta_swing_table_idx_24gb_p; + *temperature_down_b = rtldm->delta_swing_table_idx_24gb_n; + } + } else if ( 36 <= channel && channel <= 64) { + *temperature_up_a = rtldm->delta_swing_table_idx_5ga_p[0]; + *temperature_down_a = rtldm->delta_swing_table_idx_5ga_n[0]; + *temperature_up_b = rtldm->delta_swing_table_idx_5gb_p[0]; + *temperature_down_b = rtldm->delta_swing_table_idx_5gb_n[0]; + } else if ( 100 <= channel && channel <= 140) { + *temperature_up_a = rtldm->delta_swing_table_idx_5ga_p[1]; + *temperature_down_a = rtldm->delta_swing_table_idx_5ga_n[1]; + *temperature_up_b = rtldm->delta_swing_table_idx_5gb_p[1]; + *temperature_down_b = rtldm->delta_swing_table_idx_5gb_n[1]; + } else if ( 149 <= channel && channel <= 173) { + *temperature_up_a = rtldm->delta_swing_table_idx_5ga_p[2]; + *temperature_down_a = rtldm->delta_swing_table_idx_5ga_n[2]; + *temperature_up_b = rtldm->delta_swing_table_idx_5gb_p[2]; + *temperature_down_b = rtldm->delta_swing_table_idx_5gb_n[2]; + } else { + *temperature_up_a = (u8*)rtl8818e_delta_swing_table_idx_24gb_p_txpwrtrack; + *temperature_down_a =(u8*)rtl8818e_delta_swing_table_idx_24gb_n_txpwrtrack; + *temperature_up_b = (u8*)rtl8818e_delta_swing_table_idx_24gb_p_txpwrtrack; + *temperature_down_b = (u8*)rtl8818e_delta_swing_table_idx_24gb_n_txpwrtrack; + } + + return; +} + +void rtl8821ae_phy_lccalibrate( + struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, ("===> rtl8812ae_phy_lccalibrate\n")); + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, ("<=== rtl8812ae_phy_lccalibrate\n")); + +} + +/*----------------------------------------------------------------------------- + * Function: odm_TxPwrTrackSetPwr88E() + * + * Overview: 88E change all channel tx power accordign to flag. + * OFDM & CCK are all different. + * + * Input: NONE + * + * Output: NONE + * + * Return: NONE + * + * Revised History: + * When Who Remark + * 04/23/2012 MHC Create Version 0. + * + *---------------------------------------------------------------------------*/ +void rtl8821ae_dm_txpwr_track_set_pwr(struct ieee80211_hw *hw, + enum pwr_track_control_method method, u8 rf_path, u8 channel_mapped_index) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u32 final_bb_swing_idx[1]; + u8 pwr_tracking_limit = 26; /*+1.0dB*/ + u8 tx_rate = 0xFF; + s8 final_ofdm_swing_index = 0; + + if(rtldm->tx_rate != 0xFF) + tx_rate = rtl8812ae_hw_rate_to_mrate(hw, rtldm->tx_rate); + + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("===>rtl8812ae_dm_txpwr_track_set_pwr\n")); + + if(tx_rate != 0xFF) { /*20130429 Mimic Modify High Rate BBSwing Limit.*/ + /*CCK*/ + if((tx_rate >= MGN_1M) && (tx_rate <= MGN_11M)) + pwr_tracking_limit = 32; /*+4dB*/ + /*OFDM*/ + else if((tx_rate >= MGN_6M) && (tx_rate <= MGN_48M)) + pwr_tracking_limit = 30; /*+3dB*/ + else if(tx_rate == MGN_54M) + pwr_tracking_limit = 28; /*+2dB*/ + /*HT*/ + else if((tx_rate >= MGN_MCS0) && (tx_rate <= MGN_MCS2)) /*QPSK/BPSK*/ + pwr_tracking_limit = 34; /*+5dB*/ + else if((tx_rate >= MGN_MCS3) && (tx_rate <= MGN_MCS4)) /*16QAM*/ + pwr_tracking_limit = 30; /*+3dB*/ + else if((tx_rate >= MGN_MCS5) && (tx_rate <= MGN_MCS7)) /*64QAM*/ + pwr_tracking_limit = 28; /*+2dB*/ +#if 0 + else if((tx_rate >= MGN_MCS8) && (tx_rate <= MGN_MCS10)) /*QPSK/BPSK*/ + pwr_tracking_limit = 34; /*+5dB*/ + else if((tx_rate >= MGN_MCS11) && (tx_rate <= MGN_MCS12)) /*16QAM*/ + pwr_tracking_limit = 30; /*+3dB*/ + else if((tx_rate >= MGN_MCS13) && (tx_rate <= MGN_MCS15)) /*64QAM*/ + pwr_tracking_limit = 28; /*+2dB*/ +#endif + /*2 VHT*/ + else if((tx_rate >= MGN_VHT1SS_MCS0) && (tx_rate <= MGN_VHT1SS_MCS2)) /*QPSK/BPSK*/ + pwr_tracking_limit = 34; /*+5dB*/ + else if((tx_rate >= MGN_VHT1SS_MCS3) && (tx_rate <= MGN_VHT1SS_MCS4)) /*16QAM*/ + pwr_tracking_limit = 30; /*+3dB*/ + else if((tx_rate >= MGN_VHT1SS_MCS5)&&(tx_rate <= MGN_VHT1SS_MCS6)) /*64QAM*/ + pwr_tracking_limit = 28; /*+2dB*/ + else if(tx_rate == MGN_VHT1SS_MCS7) /*64QAM*/ + pwr_tracking_limit = 26; /*+1dB*/ + else if(tx_rate == MGN_VHT1SS_MCS8) /*256QAM*/ + pwr_tracking_limit = 24; /*+0dB*/ + else if(tx_rate == MGN_VHT1SS_MCS9) /*256QAM*/ + pwr_tracking_limit = 22; /*-1dB*/ + else + pwr_tracking_limit = 24; + } + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("TxRate=0x%x, PwrTrackingLimit=%d\n", tx_rate, pwr_tracking_limit)); + + + if (method == BBSWING) { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("===>rtl8812ae_dm_txpwr_track_set_pwr\n")); + + if (rf_path == RF90_PATH_A) { + final_bb_swing_idx[RF90_PATH_A] = + (rtldm->ofdm_index[RF90_PATH_A] > pwr_tracking_limit) ? + pwr_tracking_limit : rtldm->ofdm_index[RF90_PATH_A]; + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("pDM_Odm->RFCalibrateInfo.OFDM_index[ODM_RF_PATH_A]=%d, \ + pDM_Odm->RealBbSwingIdx[ODM_RF_PATH_A]=%d\n", + rtldm->ofdm_index[RF90_PATH_A], final_bb_swing_idx[RF90_PATH_A])); + + rtl_set_bbreg(hw, RA_TXSCALE, 0xFFE00000, rtl8812ae_txscaling_table[final_bb_swing_idx[RF90_PATH_A]]); + } + } else if (method == MIX_MODE) { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("pDM_Odm->DefaultOfdmIndex=%d, \ + pDM_Odm->Aboslute_OFDMSwingIdx[RFPath]=%d, RF_Path = %d\n", + rtldm->default_ofdm_index, rtldm->aboslute_ofdm_swing_idx[rf_path], + rf_path )); + + + final_ofdm_swing_index = rtldm->default_ofdm_index + rtldm->aboslute_ofdm_swing_idx[rf_path]; + + if (rf_path == RF90_PATH_A) { + if(final_ofdm_swing_index > pwr_tracking_limit) { /*BBSwing higher then Limit*/ + + rtldm->remnant_cck_idx = final_ofdm_swing_index - pwr_tracking_limit; + /* CCK Follow the same compensate value as Path A*/ + rtldm->remnant_ofdm_swing_idx[rf_path] = final_ofdm_swing_index - pwr_tracking_limit; + + rtl_set_bbreg(hw, RA_TXSCALE, 0xFFE00000, rtl8812ae_txscaling_table[pwr_tracking_limit]); + + rtldm->modify_txagc_flag_path_a = true; + + /*Set TxAGC Page C{};*/ + rtl8821ae_phy_set_txpower_level_by_path(hw, rtlphy->current_channel, RF90_PATH_A); + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("******Path_A Over BBSwing Limit , PwrTrackingLimit = %d , Remnant TxAGC Value = %d \n", + pwr_tracking_limit, rtldm->remnant_ofdm_swing_idx[rf_path])); + } else if (final_ofdm_swing_index < 0) { + rtldm->remnant_cck_idx = final_ofdm_swing_index; + /* CCK Follow the same compensate value as Path A*/ + rtldm->remnant_ofdm_swing_idx[rf_path] = final_ofdm_swing_index; + + rtl_set_bbreg(hw, RA_TXSCALE, 0xFFE00000, rtl8812ae_txscaling_table[0]); + + rtldm->modify_txagc_flag_path_a = true; + + /*Set TxAGC Page C{};*/ + rtl8821ae_phy_set_txpower_level_by_path(hw, rtlphy->current_channel, RF90_PATH_A); + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("******Path_A Lower then BBSwing lower bound 0 , Remnant TxAGC Value = %d \n", + rtldm->remnant_ofdm_swing_idx[rf_path])); + } else { + rtl_set_bbreg(hw, RA_TXSCALE, 0xFFE00000, rtl8812ae_txscaling_table[final_ofdm_swing_index]); + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("******Path_A Compensate with BBSwing , Final_OFDM_Swing_Index = %d \n", + final_ofdm_swing_index)); + + if(rtldm->modify_txagc_flag_path_a) { /*If TxAGC has changed, reset TxAGC again*/ + rtldm->remnant_cck_idx = 0; + rtldm->remnant_ofdm_swing_idx[rf_path] = 0; + + /*Set TxAGC Page C{};*/ + rtl8821ae_phy_set_txpower_level_by_path(hw, rtlphy->current_channel, RF90_PATH_A); + + rtldm->modify_txagc_flag_path_a = false; + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("******Path_A pDM_Odm->Modify_TxAGC_Flag = FALSE \n")); + } + } + } + + } else { + return; + } +} + + +void rtl8821ae_dm_txpower_tracking_callback_thermalmeter + (struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + u8 thermal_value = 0, delta, delta_lck, delta_iqk, p = 0, i = 0; + u8 thermal_value_avg_count = 0; + u32 thermal_value_avg = 0; + + u8 ofdm_min_index = 6; /*OFDM BB Swing should be less than +3.0dB, which is required by Arthur*/ + u8 index_for_channel = 0; /* GetRightChnlPlaceforIQK(pHalData->CurrentChannel)*/ + + /* 1. The following TWO tables decide the final index of OFDM/CCK swing table.*/ + u8 *delta_swing_table_idx_tup_a; + u8 *delta_swing_table_idx_tdown_a; + u8 *delta_swing_table_idx_tup_b; + u8 *delta_swing_table_idx_tdown_b; + + /*2. Initilization ( 7 steps in total )*/ + rtl8821ae_get_delta_swing_table(hw, (u8**)&delta_swing_table_idx_tup_a, + (u8**)&delta_swing_table_idx_tdown_a, + (u8**)&delta_swing_table_idx_tup_b, + (u8**)&delta_swing_table_idx_tdown_b); + + rtldm->btxpower_trackinginit = true; + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("===>rtl8812ae_dm_txpower_tracking_callback_thermalmeter, \ + \n pDM_Odm->BbSwingIdxCckBase: %d, pDM_Odm->BbSwingIdxOfdmBase[A]:\ + %d, pDM_Odm->DefaultOfdmIndex: %d\n", + rtldm->bb_swing_idx_cck_base, + rtldm->bb_swing_idx_ofdm_base[RF90_PATH_A], + rtldm->default_ofdm_index)); + + thermal_value = (u8)rtl_get_rfreg(hw, RF90_PATH_A, RF_T_METER_8812A, 0xfc00); /*0x42: RF Reg[15:10] 88E*/ + if( ! rtldm->txpower_track_control || rtlefuse->eeprom_thermalmeter == 0 || + rtlefuse->eeprom_thermalmeter == 0xFF) + return; + + + /* 3. Initialize ThermalValues of RFCalibrateInfo*/ + + if(rtlhal->reloadtxpowerindex) + { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("reload ofdm index for band switch\n")); + } + + /*4. Calculate average thermal meter*/ + rtldm->thermalvalue_avg[rtldm->thermalvalue_avg_index] = thermal_value; + rtldm->thermalvalue_avg_index++; + if(rtldm->thermalvalue_avg_index == AVG_THERMAL_NUM_8812A) + /*Average times = c.AverageThermalNum*/ + rtldm->thermalvalue_avg_index = 0; + + for(i = 0; i < AVG_THERMAL_NUM_8812A; i++) + { + if(rtldm->thermalvalue_avg[i]) + { + thermal_value_avg += rtldm->thermalvalue_avg[i]; + thermal_value_avg_count++; + } + } + + if(thermal_value_avg_count) /*Calculate Average ThermalValue after average enough times*/ + { + thermal_value = (u8)(thermal_value_avg / thermal_value_avg_count); + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("AVG Thermal Meter = 0x%X, EFUSE Thermal Base = 0x%X\n", + thermal_value, rtlefuse->eeprom_thermalmeter)); + } + + /*5. Calculate delta, delta_LCK, delta_IQK.*/ + /*"delta" here is used to determine whether thermal value changes or not.*/ + delta = (thermal_value > rtldm->thermalvalue) ? \ + (thermal_value - rtldm->thermalvalue): \ + (rtldm->thermalvalue - thermal_value); + delta_lck = (thermal_value > rtldm->thermalvalue_lck) ? \ + (thermal_value - rtldm->thermalvalue_lck) : \ + (rtldm->thermalvalue_lck - thermal_value); + delta_iqk = (thermal_value > rtldm->thermalvalue_iqk) ? \ + (thermal_value - rtldm->thermalvalue_iqk) : \ + (rtldm->thermalvalue_iqk - thermal_value); + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("(delta, delta_LCK, delta_IQK) = (%d, %d, %d)\n", + delta, delta_lck, delta_iqk)); + + /* 6. If necessary, do LCK. */ + + if (delta_lck >= IQK_THRESHOLD) /*Delta temperature is equal to or larger than 20 centigrade.*/ + { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("delta_LCK(%d) >= Threshold_IQK(%d)\n", + delta_lck, IQK_THRESHOLD)); + rtldm->thermalvalue_lck = thermal_value; + rtl8821ae_phy_lccalibrate(hw); + } + + /*7. If necessary, move the index of swing table to adjust Tx power.*/ + + if (delta > 0 && rtldm->txpower_track_control) + { + /*"delta" here is used to record the absolute value of differrence.*/ + delta = thermal_value > rtlefuse->eeprom_thermalmeter ? \ + (thermal_value - rtlefuse->eeprom_thermalmeter) : \ + (rtlefuse->eeprom_thermalmeter - thermal_value); + + if (delta >= TXSCALE_TABLE_SIZE) + delta = TXSCALE_TABLE_SIZE - 1; + + /*7.1 The Final Power Index = BaseIndex + PowerIndexOffset*/ + + if(thermal_value > rtlefuse->eeprom_thermalmeter) { + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("delta_swing_table_idx_tup_a[%d] = %d\n", + delta, delta_swing_table_idx_tup_a[delta])); + rtldm->delta_power_index_last[RF90_PATH_A] = rtldm->delta_power_index[RF90_PATH_A]; + rtldm->delta_power_index[RF90_PATH_A] = delta_swing_table_idx_tup_a[delta]; + + rtldm->aboslute_ofdm_swing_idx[RF90_PATH_A] = delta_swing_table_idx_tup_a[delta]; + /*Record delta swing for mix mode power tracking*/ + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("******Temp is higher and pDM_Odm->Aboslute_OFDMSwingIdx[ODM_RF_PATH_A] = %d\n", + rtldm->aboslute_ofdm_swing_idx[RF90_PATH_A])); + + } else { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("delta_swing_table_idx_tdown_a[%d] = %d\n", + delta, delta_swing_table_idx_tdown_a[delta])); + + rtldm->delta_power_index_last[RF90_PATH_A] = rtldm->delta_power_index[RF90_PATH_A]; + rtldm->delta_power_index[RF90_PATH_A] = -1 * delta_swing_table_idx_tdown_a[delta]; + + rtldm->aboslute_ofdm_swing_idx[RF90_PATH_A] = -1 * delta_swing_table_idx_tdown_a[delta]; + /* Record delta swing for mix mode power tracking*/ + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("******Temp is lower and pDM_Odm->Aboslute_OFDMSwingIdx[ODM_RF_PATH_A] = %d\n", + rtldm->aboslute_ofdm_swing_idx[RF90_PATH_A])); + } + + for (p = RF90_PATH_A; p < MAX_PATH_NUM_8821A; p++) + { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("\n\n================================ [Path-%c] \ + Calculating PowerIndexOffset ================================\n", + (p == RF90_PATH_A ? 'A' : 'B'))); + + if (rtldm->delta_power_index[p] == rtldm->delta_power_index_last[p]) + /*If Thermal value changes but lookup table value still the same*/ + rtldm->power_index_offset[p] = 0; + else + rtldm->power_index_offset[p] = + rtldm->delta_power_index[p] - rtldm->delta_power_index_last[p]; + /*Power Index Diff between 2 times Power Tracking*/ + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("[Path-%c] PowerIndexOffset(%d) = DeltaPowerIndex(%d) - DeltaPowerIndexLast(%d)\n", + (p == RF90_PATH_A ? 'A' : 'B'), + rtldm->power_index_offset[p], + rtldm->delta_power_index[p] , + rtldm->delta_power_index_last[p])); + + rtldm->ofdm_index[p] = + rtldm->bb_swing_idx_ofdm_base[p] + rtldm->power_index_offset[p]; + rtldm->cck_index = + rtldm->bb_swing_idx_cck_base + rtldm->power_index_offset[p]; + + rtldm->bb_swing_idx_cck = rtldm->cck_index; + rtldm->bb_swing_idx_ofdm[p] = rtldm->ofdm_index[p]; + + /*************Print BB Swing Base and Index Offset*************/ + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("The 'CCK' final index(%d) = BaseIndex(%d) + PowerIndexOffset(%d)\n", + rtldm->bb_swing_idx_cck, + rtldm->bb_swing_idx_cck_base, + rtldm->power_index_offset[p])); + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("The 'OFDM' final index(%d) = BaseIndex[%c](%d) + PowerIndexOffset(%d)\n", + rtldm->bb_swing_idx_ofdm[p], + (p == RF90_PATH_A ? 'A' : 'B'), + rtldm->bb_swing_idx_ofdm_base[p], + rtldm->power_index_offset[p])); + + /*7.1 Handle boundary conditions of index.*/ + + + if(rtldm->ofdm_index[p] > TXSCALE_TABLE_SIZE -1) + { + rtldm->ofdm_index[p] = TXSCALE_TABLE_SIZE -1; + } + else if (rtldm->ofdm_index[p] < ofdm_min_index) + { + rtldm->ofdm_index[p] = ofdm_min_index; + } + } + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("\n\n======================================================\ + ==================================================\n")); + if(rtldm->cck_index > TXSCALE_TABLE_SIZE -1) + rtldm->cck_index = TXSCALE_TABLE_SIZE -1; + else if (rtldm->cck_index < 0) + rtldm->cck_index = 0; + } else { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("The thermal meter is unchanged or TxPowerTracking OFF(%d): \ + ThermalValue: %d , pDM_Odm->RFCalibrateInfo.ThermalValue: %d\n", + rtldm->txpower_track_control, + thermal_value, + rtldm->thermalvalue)); + + for (p = RF90_PATH_A; p < MAX_PATH_NUM_8821A; p++) + rtldm->power_index_offset[p] = 0; + } + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("TxPowerTracking: [CCK] Swing Current Index: %d, Swing Base Index: %d\n", + rtldm->cck_index, rtldm->bb_swing_idx_cck_base)); /*Print Swing base & current*/ + for (p = RF90_PATH_A; p < MAX_PATH_NUM_8821A; p++) + { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("TxPowerTracking: [OFDM] Swing Current Index: %d, Swing Base Index[%c]: %d\n", + rtldm->ofdm_index[p], + (p == RF90_PATH_A ? 'A' : 'B'), + rtldm->bb_swing_idx_ofdm_base[p])); + } + + if ((rtldm->power_index_offset[RF90_PATH_A] != 0 || + rtldm->power_index_offset[RF90_PATH_B] != 0 ) && + rtldm->txpower_track_control) + { + /*7.2 Configure the Swing Table to adjust Tx Power.*/ + /*Always TRUE after Tx Power is adjusted by power tracking.*/ + /* + 2012/04/23 MH According to Luke's suggestion, we can not write BB digital + to increase TX power. Otherwise, EVM will be bad. + + 2012/04/25 MH Add for tx power tracking to set tx power in tx agc for 88E. + */ + if (thermal_value > rtldm->thermalvalue) + { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("Temperature Increasing(A): delta_pi: %d , delta_t: %d, Now_t: %d, EFUSE_t: %d, Last_t: %d\n", + rtldm->power_index_offset[RF90_PATH_A], + delta, thermal_value, + rtlefuse->eeprom_thermalmeter, + rtldm->thermalvalue)); + } else if (thermal_value < rtldm->thermalvalue) { /*Low temperature*/ + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("Temperature Decreasing(A): delta_pi: %d , delta_t: %d, Now_t: %d, EFUSE_t: %d, Last_t: %d\n", + rtldm->power_index_offset[RF90_PATH_A], + delta, thermal_value, + rtlefuse->eeprom_thermalmeter, + rtldm->thermalvalue)); + } + + if (thermal_value > rtlefuse->eeprom_thermalmeter) { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("Temperature(%d) higher than PG value(%d)\n", + thermal_value, rtlefuse->eeprom_thermalmeter)); + + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("**********Enter POWER Tracking MIX_MODE**********\n")); + for (p = RF90_PATH_A; p < MAX_PATH_NUM_8821A; p++) + rtl8821ae_dm_txpwr_track_set_pwr(hw, MIX_MODE, p, index_for_channel); + + } else { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("Temperature(%d) lower than PG value(%d)\n", + thermal_value, rtlefuse->eeprom_thermalmeter)); + + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("**********Enter POWER Tracking MIX_MODE**********\n")); + for (p = RF90_PATH_A; p < MAX_PATH_NUM_8821A; p++) + rtl8812ae_dm_txpwr_track_set_pwr(hw, MIX_MODE, p, index_for_channel); + + } + + rtldm->bb_swing_idx_cck_base = rtldm->bb_swing_idx_cck; /*Record last time Power Tracking result as base.*/ + for (p = RF90_PATH_A; p < MAX_PATH_NUM_8821A; p++) + rtldm->bb_swing_idx_ofdm_base[p] = rtldm->bb_swing_idx_ofdm[p]; + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("pDM_Odm->RFCalibrateInfo.ThermalValue = %d ThermalValue= %d\n", + rtldm->thermalvalue, thermal_value)); + + rtldm->thermalvalue = thermal_value; /*Record last Power Tracking Thermal Value*/ + + } + /*Delta temperature is equal to or larger than 20 centigrade (When threshold is 8).*/ + if ((delta_iqk >= IQK_THRESHOLD)) { + + if ( !rtlphy->b_iqk_in_progress) { + + spin_lock(&rtlpriv->locks.iqk_lock); + rtlphy->b_iqk_in_progress = true; + spin_unlock(&rtlpriv->locks.iqk_lock); + + rtl8821ae_do_iqk(hw, delta_iqk, thermal_value, 8); + + spin_lock(&rtlpriv->locks.iqk_lock); + rtlphy->b_iqk_in_progress = false; + spin_unlock(&rtlpriv->locks.iqk_lock); + } + } + + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("<===rtl8812ae_dm_txpower_tracking_callback_thermalmeter\n")); +} + + +void rtl8821ae_dm_check_txpower_tracking_thermalmeter(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + static u8 tm_trigger = 0; + + //if (!rtlpriv->dm.btxpower_tracking) + // return; + + if (!tm_trigger) { + rtl_set_rfreg(hw, RF90_PATH_A, RF_T_METER_88E, BIT(17)|BIT(16), + 0x03); + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("Trigger 8821ae Thermal Meter!!\n")); + tm_trigger = 1; + return; + } else { + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, + ("Schedule TxPowerTracking !!\n")); + + rtl8821ae_dm_txpower_tracking_callback_thermalmeter(hw); + tm_trigger = 0; + } +} + + +void rtl8821ae_dm_refresh_rate_adaptive_mask(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rate_adaptive *p_ra = &(rtlpriv->ra); + u32 low_rssithresh_for_ra = p_ra->low2high_rssi_thresh_for_ra; + u32 high_rssithresh_for_ra = p_ra->high_rssi_thresh_for_ra; + u8 go_up_gap = 5; + struct ieee80211_sta *sta = NULL; + + if (is_hal_stop(rtlhal)) { + RT_TRACE(COMP_RATE, DBG_LOUD, + ("driver is going to unload\n")); + return; + } + + if (!rtlpriv->dm.b_useramask) { + RT_TRACE(COMP_RATE, DBG_LOUD, + ("driver does not control rate adaptive mask\n")); + return; + } + + if (mac->link_state == MAC80211_LINKED && + mac->opmode == NL80211_IFTYPE_STATION) { + + switch (p_ra->pre_ratr_state) { + case DM_RATR_STA_MIDDLE: + high_rssithresh_for_ra += go_up_gap; + break; + case DM_RATR_STA_LOW: + high_rssithresh_for_ra += go_up_gap; + low_rssithresh_for_ra += go_up_gap; + break; + default: + break; + } + + if (rtlpriv->dm.undecorated_smoothed_pwdb > + (long)high_rssithresh_for_ra) + p_ra->ratr_state = DM_RATR_STA_HIGH; + else if (rtlpriv->dm.undecorated_smoothed_pwdb > + (long)low_rssithresh_for_ra) + p_ra->ratr_state = DM_RATR_STA_MIDDLE; + else + p_ra->ratr_state = DM_RATR_STA_LOW; + + if (p_ra->pre_ratr_state != p_ra->ratr_state ) { + RT_TRACE(COMP_RATE, DBG_LOUD, + ("RSSI = %ld\n", + rtlpriv->dm.undecorated_smoothed_pwdb)); + RT_TRACE(COMP_RATE, DBG_LOUD, + ("RSSI_LEVEL = %d\n", p_ra->ratr_state)); + RT_TRACE(COMP_RATE, DBG_LOUD, + ("PreState = %d, CurState = %d\n", + p_ra->pre_ratr_state, p_ra->ratr_state)); + + rcu_read_lock(); + sta = rtl_find_sta(hw, mac->bssid); + if (sta) + rtlpriv->cfg->ops->update_rate_tbl(hw, sta, p_ra->ratr_state); + rcu_read_unlock(); + + p_ra->pre_ratr_state = p_ra->ratr_state; + } + } +} + +bool rtl8821ae_dm_is_edca_turbo_disable(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if (rtlpriv->btcoexist.btc_ops->btc_is_disable_edca_turbo(rtlpriv)) + return true; + if (rtlpriv->mac80211.mode == WIRELESS_MODE_B) + return true; + + return false; +} + +void rtl8821ae_dm_edca_choose_traffic_idx( + struct ieee80211_hw *hw, u64 cur_tx_bytes, u64 cur_rx_bytes, bool b_bias_on_rx, + bool *pb_is_cur_rdl_state) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if(b_bias_on_rx) + { + if (cur_tx_bytes > (cur_rx_bytes*4)) { + *pb_is_cur_rdl_state = false; + RT_TRACE(COMP_TURBO, DBG_LOUD, + ("Uplink Traffic\n ")); + } else { + *pb_is_cur_rdl_state = true; + RT_TRACE(COMP_TURBO, DBG_LOUD, + ("Balance Traffic\n")); + } + } else { + if (cur_rx_bytes > (cur_tx_bytes*4)) { + *pb_is_cur_rdl_state = true; + RT_TRACE(COMP_TURBO, DBG_LOUD, + ("Downlink Traffic\n")); + } else { + *pb_is_cur_rdl_state = false; + RT_TRACE(COMP_TURBO, DBG_LOUD, + ("Balance Traffic\n")); + } + } + return ; +} + +static void rtl8821ae_dm_check_edca_turbo(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + + /*Keep past Tx/Rx packet count for RT-to-RT EDCA turbo.*/ + unsigned long cur_tx_ok_cnt = 0; + unsigned long cur_rx_ok_cnt = 0; + u32 edca_be_ul = 0x5ea42b; + u32 edca_be_dl = 0x5ea42b; + u32 edca_be = 0x5ea42b; + u8 iot_peer = 0; + bool *pb_is_cur_rdl_state = NULL; + bool b_last_is_cur_rdl_state = false; + bool b_bias_on_rx = false; + bool b_edca_turbo_on = false; + + RT_TRACE(COMP_TURBO, DBG_LOUD, + ("rtl8821ae_dm_check_edca_turbo=====>")); + RT_TRACE(COMP_TURBO, DBG_LOUD, + ("Orginial BE PARAM: 0x%x\n", + rtl_read_dword(rtlpriv, DM_REG_EDCA_BE_11N))); + + /*=============================== + list paramter for different platform + ===============================*/ + b_last_is_cur_rdl_state = rtlpriv->dm.bis_cur_rdlstate; + pb_is_cur_rdl_state = &( rtlpriv->dm.bis_cur_rdlstate); + + cur_tx_ok_cnt = rtlpriv->stats.txbytesunicast - rtldm->last_tx_ok_cnt; + cur_rx_ok_cnt = rtlpriv->stats.rxbytesunicast - rtldm->last_rx_ok_cnt; + + rtldm->last_tx_ok_cnt = rtlpriv->stats.txbytesunicast; + rtldm->last_rx_ok_cnt = rtlpriv->stats.rxbytesunicast; + + iot_peer = rtlpriv->mac80211.vendor; + b_bias_on_rx = (iot_peer == PEER_RAL || iot_peer == PEER_ATH) ? + true : false; + b_edca_turbo_on = ((!rtlpriv->dm.bis_any_nonbepkts) && + (!rtlpriv->dm.b_disable_framebursting)) ? + true : false; + + /*if (rtl8821ae_dm_is_edca_turbo_disable(hw)) + goto dm_CheckEdcaTurbo_EXIT;*/ + + if ((iot_peer == PEER_CISCO) && (mac->mode == WIRELESS_MODE_N_24G)) + { + edca_be_dl = edca_setting_dl[iot_peer]; + edca_be_ul = edca_setting_ul[iot_peer]; + } + + RT_TRACE(COMP_TURBO, DBG_LOUD, + ("bIsAnyNonBEPkts : 0x%x bDisableFrameBursting : 0x%x \n", + rtlpriv->dm.bis_any_nonbepkts, rtlpriv->dm.b_disable_framebursting)); + + RT_TRACE(COMP_TURBO, DBG_LOUD, + ("bEdcaTurboOn : 0x%x bBiasOnRx : 0x%x\n", + b_edca_turbo_on, b_bias_on_rx)); + + if (b_edca_turbo_on) { + RT_TRACE(COMP_TURBO, DBG_LOUD, + ("curTxOkCnt : 0x%lx \n",cur_tx_ok_cnt)); + RT_TRACE(COMP_TURBO, DBG_LOUD, + ("curRxOkCnt : 0x%lx \n",cur_rx_ok_cnt)); + if(b_bias_on_rx) + rtl8821ae_dm_edca_choose_traffic_idx(hw, cur_tx_ok_cnt, + cur_rx_ok_cnt, true, pb_is_cur_rdl_state); + else + rtl8821ae_dm_edca_choose_traffic_idx(hw, cur_tx_ok_cnt, + cur_rx_ok_cnt, false, pb_is_cur_rdl_state); + + edca_be = ((*pb_is_cur_rdl_state) == true) ? edca_be_dl : edca_be_ul; + + rtl_write_dword(rtlpriv, DM_REG_EDCA_BE_11N, edca_be); + + RT_TRACE(COMP_TURBO, DBG_LOUD, + ("EDCA Turbo on: EDCA_BE:0x%x\n", edca_be)); + + rtlpriv->dm.bcurrent_turbo_edca = true; + + RT_TRACE(COMP_TURBO, DBG_LOUD, + ("EDCA_BE_DL : 0x%x EDCA_BE_UL : 0x%x EDCA_BE : 0x%x \n", + edca_be_dl, edca_be_ul, edca_be)); + } else { + if (rtlpriv->dm.bcurrent_turbo_edca) { + u8 tmp = AC0_BE; + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_AC_PARAM, + (u8 *) (&tmp)); + } + rtlpriv->dm.bcurrent_turbo_edca = false; + } + +/* dm_CheckEdcaTurbo_EXIT: */ + rtlpriv->dm.bis_any_nonbepkts = false; + rtldm->last_tx_ok_cnt = rtlpriv->stats.txbytesunicast; + rtldm->last_rx_ok_cnt = rtlpriv->stats.rxbytesunicast; +} + +static void rtl8821ae_dm_cck_packet_detection_thresh(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 cur_cck_cca_thresh; + + if (rtlpriv->mac80211.link_state >= MAC80211_LINKED) { + /*dm_digtable.rssi_val_min = rtl8821ae_dm_initial_gain_min_pwdb(hw);*/ + if (dm_digtable.rssi_val_min > 25) + cur_cck_cca_thresh = 0xcd; + else if ((dm_digtable.rssi_val_min <= 25) && (dm_digtable.rssi_val_min > 10)) + cur_cck_cca_thresh = 0x83; + else { + if (rtlpriv->falsealm_cnt.cnt_cck_fail > 1000) + cur_cck_cca_thresh = 0x83; + else + cur_cck_cca_thresh = 0x40; + } + + } else { + if (rtlpriv->falsealm_cnt.cnt_cck_fail > 1000) + cur_cck_cca_thresh = 0x83; + else + cur_cck_cca_thresh = 0x40; + } + + if (dm_digtable.cur_cck_cca_thres != cur_cck_cca_thresh) { + rtl_set_bbreg(hw, RCCK0_CCA, MASKBYTE2, cur_cck_cca_thresh); + } + + dm_digtable.pre_cck_cca_thres = dm_digtable.cur_cck_cca_thres; + dm_digtable.cur_cck_cca_thres = cur_cck_cca_thresh; + RT_TRACE(COMP_DIG, DBG_TRACE, + ("CCK cca thresh hold =%x\n", dm_digtable.cur_cck_cca_thres)); + +} + +void rtl8821ae_dm_dynamic_edcca(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + bool b_fw_current_in_ps_mode = false; + + rtlpriv->cfg->ops->get_hw_reg(hw,HW_VAR_FW_PSMODE_STATUS, \ + (u8*)(&b_fw_current_in_ps_mode)); + if (b_fw_current_in_ps_mode) + return; +} + +void rtl8812ae_dm_update_txpath(struct ieee80211_hw *hw, u8 path) +{ + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if (rtldm->resp_tx_path != path) { + RT_TRACE(COMP_DIG, DBG_LOUD, \ + ("Need to Update Tx Path\n")); + if (path == RF90_PATH_A) { + /*Tx by Reg*/ + rtl_set_bbreg(hw, 0x80c, 0xFFF0, 0x111); + /*Resp Tx by Txinfo*/ + rtl_set_bbreg(hw, 0x6d8, BIT(7) | BIT(6), 1); + } else { + /*Tx by Reg*/ + rtl_set_bbreg(hw, 0x80c, 0xFFF0, 0x222); + /*Resp Tx by Txinfo*/ + rtl_set_bbreg(hw, 0x6d8, BIT(7) |BIT(6), 2); + } + } + rtldm->resp_tx_path = path; + RT_TRACE(COMP_DIG, DBG_LOUD, \ + ("Path=%s\n",(path == RF90_PATH_A) ? \ + "RF90_PATH_A":"RF90_PATH_A")); +} + +void rtl8812ae_dm_path_diversity_init(struct ieee80211_hw *hw) +{ + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + + //rtl_set_bbreg(hw, 0x80c , BIT(29), 1); /*Tx path from Reg*/ + rtl_set_bbreg(hw, 0x80c , 0xFFF0, 0x111); /*Tx by Reg*/ + rtl_set_bbreg(hw, 0x6d8 , BIT(7) | BIT(6), 1); /*Resp Tx by Txinfo*/ + rtl8812ae_dm_update_txpath(hw, RF90_PATH_A); + + rtldm->path_sel = 1; /* TxInfo default at path-A*/ +} + +void rtl812ae_dm_set_txpath_by_txinfo(struct ieee80211_hw *hw, + u8 *pdesc) +{ + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + + SET_TX_DESC_TX_ANT(pdesc, rtldm->path_sel); +} + +void rtl8812ae_dm_path_statistics(struct ieee80211_hw *hw, + u32 rssi_a, u32 rssi_b) +{ + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + + rtldm->patha_sum += rssi_a; + rtldm->patha_cnt ++; + + rtldm->pathb_sum += rssi_b; + rtldm->pathb_cnt ++; +} + +void rtl8812ae_dm_path_diversity(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + u32 rssi_avg_a = 0; + u32 rssi_avg_b = 0; + u32 local_min_rssi = 0; + u32 min_rssi = 0xFF; + u8 tx_resp_path=0, target_path; + struct ieee80211_sta *sta = NULL; + + sta = rtl_find_sta(hw, mac->bssid); + if (sta) { + /*Caculate RSSI per Path*/ + rssi_avg_a = (rtldm->patha_cnt != 0) ? \ + (rtldm->patha_sum / rtldm->patha_cnt) : 0; + rssi_avg_b = (rtldm->pathb_cnt != 0) ? \ + (rtldm->pathb_sum / rtldm->pathb_cnt) : 0; + + target_path = (rssi_avg_a == rssi_avg_b) ? rtldm->resp_tx_path : \ + ((rssi_avg_a>=rssi_avg_b) ? RF90_PATH_A : RF90_PATH_B); + + RT_TRACE(COMP_DIG, DBG_TRACE, \ + ("assoc_id=%d, PathA_Sum=%d, PathA_Cnt=%d\n", \ + mac->assoc_id, rtldm->patha_sum, rtldm->patha_cnt)); + RT_TRACE(COMP_DIG, DBG_TRACE, \ + ("assoc_id=%d, PathB_Sum=%d, PathB_Cnt=%d\n", \ + mac->assoc_id, rtldm->pathb_sum, rtldm->pathb_cnt)); + RT_TRACE(COMP_DIG, DBG_TRACE, \ + ("assoc_id=%d, RssiAvgA= %d, RssiAvgB= %d\n", \ + mac->assoc_id, rssi_avg_a, rssi_avg_b)); + + /*Select Resp Tx Path*/ + local_min_rssi = (rssi_avg_a > rssi_avg_b) ? rssi_avg_b : rssi_avg_a; + if(local_min_rssi < min_rssi) + { + min_rssi = local_min_rssi; + tx_resp_path = target_path; + } + + /*Select Tx DESC*/ + if(target_path == RF90_PATH_A) + rtldm->path_sel = 1; + else + rtldm->path_sel = 2; + + RT_TRACE(COMP_DIG, DBG_TRACE, \ + ("Tx from TxInfo, TargetPath=%s\n", \ + (target_path==RF90_PATH_A) ? \ + "ODM_RF_PATH_A":"ODM_RF_PATH_B")); + RT_TRACE(COMP_DIG, DBG_TRACE, \ + ("pDM_PathDiv->PathSel= %d\n", \ + rtldm->path_sel)); + } + rtldm->patha_cnt = 0; + rtldm->patha_sum = 0; + rtldm->pathb_cnt = 0; + rtldm->pathb_sum = 0; +} + +void rtl8821ae_dm_dynamic_atc_switch(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + u8 crystal_cap; + u32 packet_count; + int cfo_khz_a,cfo_khz_b,cfo_ave = 0, adjust_xtal = 0; + int cfo_ave_diff; + + if (rtlpriv->mac80211.link_state < MAC80211_LINKED){ + /*1.Enable ATC*/ + if (rtldm->atc_status == ATC_STATUS_OFF) + { + rtl_set_bbreg(hw, RFC_AREA, BIT(14), ATC_STATUS_ON); + rtldm->atc_status = ATC_STATUS_ON; + } + + RT_TRACE(COMP_DIG, DBG_LOUD, \ + ("rtl8821ae_dm_dynamic_atc_switch(): No link!!\n")); + RT_TRACE(COMP_DIG, DBG_LOUD, \ + ("rtl8821ae_dm_dynamic_atc_switch(): atc_status = %d\n", \ + rtldm->atc_status)); + + if (rtldm->crystal_cap != rtlpriv->efuse.crystalcap) + { + rtldm->crystal_cap = rtlpriv->efuse.crystalcap; + crystal_cap = rtldm->crystal_cap & 0x3f; + crystal_cap = crystal_cap & 0x3f; + rtl_set_bbreg(hw, REG_MAC_PHY_CTRL, \ + 0x7ff80000, (crystal_cap | (crystal_cap << 6))); + } + RT_TRACE(COMP_DIG, DBG_LOUD, \ + ("rtl8821ae_dm_dynamic_atc_switch(): crystal_cap = 0x%x\n", \ + rtldm->crystal_cap)); + }else{ + /*1. Calculate CFO for path-A & path-B*/ + cfo_khz_a = (int)(rtldm->cfo_tail[0] * 3125) / 1280; + cfo_khz_b = (int)(rtldm->cfo_tail[1] * 3125) / 1280; + packet_count = rtldm->packet_count; + + /*2.No new packet*/ + if (packet_count == rtldm->packet_count_pre) { + RT_TRACE(COMP_DIG, DBG_LOUD, \ + ("rtl8821ae_dm_dynamic_atc_switch(): packet counter doesn't change\n")); + return; + } + + rtldm->packet_count_pre = packet_count; + RT_TRACE(COMP_DIG, DBG_LOUD, \ + ("rtl8821ae_dm_dynamic_atc_switch(): packet counter = %d\n", \ + rtldm->packet_count)); + + /*3.Average CFO*/ + if (rtlpriv->phy.rf_type == RF_1T1R) + cfo_ave = cfo_khz_a; + else + cfo_ave = (cfo_khz_a + cfo_khz_b) >> 1; + + RT_TRACE(COMP_DIG, DBG_LOUD, \ + ("rtl8821ae_dm_dynamic_atc_switch():" + "cfo_khz_a = %dkHz, cfo_khz_b = %dkHz, cfo_ave = %dkHz\n", + cfo_khz_a, cfo_khz_b, cfo_ave)); + + /*4.Avoid abnormal large CFO*/ + cfo_ave_diff = (rtldm->cfo_ave_pre >= cfo_ave)? + (rtldm->cfo_ave_pre - cfo_ave): + (cfo_ave - rtldm->cfo_ave_pre); + + if (cfo_ave_diff > 20 && rtldm->large_cfo_hit == 0){ + RT_TRACE(COMP_DIG, DBG_LOUD, \ + ("rtl8821ae_dm_dynamic_atc_switch(): first large CFO hit\n")); + rtldm->large_cfo_hit = 1; + return; + } + else + rtldm->large_cfo_hit = 0; + + rtldm->cfo_ave_pre = cfo_ave; + + /*CFO tracking by adjusting Xtal cap.*/ + + /*1.Dynamic Xtal threshold*/ + if (cfo_ave >= -rtldm->cfo_threshold && + cfo_ave <= rtldm->cfo_threshold && + rtldm->is_freeze == 0){ + if (rtldm->cfo_threshold == CFO_THRESHOLD_XTAL){ + rtldm->cfo_threshold = CFO_THRESHOLD_XTAL + 10; + rtldm->is_freeze = 1; + } + else + rtldm->cfo_threshold = CFO_THRESHOLD_XTAL; + } + RT_TRACE(COMP_DIG, DBG_LOUD, \ + ("rtl8821ae_dm_dynamic_atc_switch(): Dynamic threshold = %d\n", \ + rtldm->cfo_threshold)); + + /* 2.Calculate Xtal offset*/ + if (cfo_ave > rtldm->cfo_threshold && rtldm->crystal_cap < 0x3f) + adjust_xtal = ((cfo_ave - CFO_THRESHOLD_XTAL) >> 2) + 1; + else if ((cfo_ave < -rtlpriv->dm.cfo_threshold) && rtlpriv->dm.crystal_cap > 0) + adjust_xtal = ((cfo_ave + CFO_THRESHOLD_XTAL) >> 2) - 1; + RT_TRACE(COMP_DIG, DBG_LOUD, \ + ("rtl8821ae_dm_dynamic_atc_switch(): " + "Crystal cap = 0x%x, Crystal cap offset = %d\n", + rtldm->crystal_cap, adjust_xtal)); + + /*3.Adjudt Crystal Cap.*/ + if (adjust_xtal != 0){ + rtldm->is_freeze = 0; + rtldm->crystal_cap += adjust_xtal; + + if (rtldm->crystal_cap > 0x3f) + rtldm->crystal_cap = 0x3f; + else if (rtldm->crystal_cap < 0) + rtldm->crystal_cap = 0; + + crystal_cap = rtldm->crystal_cap & 0x3f; + crystal_cap = crystal_cap & 0x3f; + rtl_set_bbreg(hw, REG_MAC_PHY_CTRL, \ + 0x7ff80000, (crystal_cap | (crystal_cap << 6))); + RT_TRACE(COMP_DIG, DBG_LOUD, \ + ("rtl8821ae_dm_dynamic_atc_switch(): New crystal cap = 0x%x \n", \ + rtldm->crystal_cap)); + } + } + +} + +void rtl8821ae_dm_watchdog(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + bool b_fw_current_inpsmode = false; + bool b_fw_ps_awake = true; + + rtlpriv->cfg->ops->get_hw_reg(hw, HW_VAR_FW_PSMODE_STATUS, + (u8 *) (&b_fw_current_inpsmode)); + + rtlpriv->cfg->ops->get_hw_reg(hw, HW_VAR_FWLPS_RF_ON, + (u8 *) (&b_fw_ps_awake)); + + if(ppsc->p2p_ps_info.p2p_ps_mode) + b_fw_ps_awake = false; + + if((ppsc->rfpwr_state == ERFON) && + ((!b_fw_current_inpsmode) && b_fw_ps_awake) && + (!ppsc->rfchange_inprogress)) { + rtl8821ae_dm_common_info_self_update(hw); + rtl8821ae_dm_false_alarm_counter_statistics(hw); + rtl8821ae_dm_check_rssi_monitor(hw); + rtl8821ae_dm_dig(hw); + rtl8821ae_dm_dynamic_edcca(hw); + rtl8821ae_dm_cck_packet_detection_thresh(hw); + rtl8821ae_dm_refresh_rate_adaptive_mask(hw); + rtl8821ae_dm_check_edca_turbo(hw); + rtl8821ae_dm_dynamic_atc_switch(hw); + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + rtl8812ae_dm_check_txpower_tracking_thermalmeter(hw); + else + rtl8821ae_dm_check_txpower_tracking_thermalmeter(hw); + rtl8821ae_dm_iq_calibrate(hw); + if (rtlpriv->cfg->ops->get_btc_status()){ + rtlpriv->btcoexist.btc_ops->btc_periodical(rtlpriv); + } + } + + rtlpriv->dm.dbginfo.num_qry_beacon_pkt = 0; +} + +void rtl8821ae_dm_set_tx_ant_by_tx_info(struct ieee80211_hw *hw, + u8 *pdesc, u32 mac_id) +{ + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + struct fast_ant_trainning *pfat_table= &(rtldm->fat_table); + + if (rtlhal->hw_type != HARDWARE_TYPE_RTL8812AE) + return; + + if ((rtlefuse->antenna_div_type == CG_TRX_HW_ANTDIV) || + (rtlefuse->antenna_div_type == CG_TRX_HW_ANTDIV)){ + SET_TX_DESC_TX_ANT(pdesc, pfat_table->antsel_a[mac_id]); + } +} --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/dm.h +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/dm.h @@ -0,0 +1,426 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8821AE_DM_H__ +#define __RTL8821AE_DM_H__ + +#define MAIN_ANT 0 +#define AUX_ANT 1 +#define MAIN_ANT_CG_TRX 1 +#define AUX_ANT_CG_TRX 0 +#define MAIN_ANT_CGCS_RX 0 +#define AUX_ANT_CGCS_RX 1 + +#define TXSCALE_TABLE_SIZE 37 + +/*RF REG LIST*/ +#define DM_REG_RF_MODE_11N 0x00 +#define DM_REG_RF_0B_11N 0x0B +#define DM_REG_CHNBW_11N 0x18 +#define DM_REG_T_METER_11N 0x24 +#define DM_REG_RF_25_11N 0x25 +#define DM_REG_RF_26_11N 0x26 +#define DM_REG_RF_27_11N 0x27 +#define DM_REG_RF_2B_11N 0x2B +#define DM_REG_RF_2C_11N 0x2C +#define DM_REG_RXRF_A3_11N 0x3C +#define DM_REG_T_METER_92D_11N 0x42 +#define DM_REG_T_METER_88E_11N 0x42 + + + +/*BB REG LIST*/ +/*PAGE 8 */ +#define DM_REG_BB_CTRL_11N 0x800 +#define DM_REG_RF_PIN_11N 0x804 +#define DM_REG_PSD_CTRL_11N 0x808 +#define DM_REG_TX_ANT_CTRL_11N 0x80C +#define DM_REG_BB_PWR_SAV5_11N 0x818 +#define DM_REG_CCK_RPT_FORMAT_11N 0x824 +#define DM_REG_RX_DEFUALT_A_11N 0x858 +#define DM_REG_RX_DEFUALT_B_11N 0x85A +#define DM_REG_BB_PWR_SAV3_11N 0x85C +#define DM_REG_ANTSEL_CTRL_11N 0x860 +#define DM_REG_RX_ANT_CTRL_11N 0x864 +#define DM_REG_PIN_CTRL_11N 0x870 +#define DM_REG_BB_PWR_SAV1_11N 0x874 +#define DM_REG_ANTSEL_PATH_11N 0x878 +#define DM_REG_BB_3WIRE_11N 0x88C +#define DM_REG_SC_CNT_11N 0x8C4 +#define DM_REG_PSD_DATA_11N 0x8B4 +/*PAGE 9*/ +#define DM_REG_ANT_MAPPING1_11N 0x914 +#define DM_REG_ANT_MAPPING2_11N 0x918 +/*PAGE A*/ +#define DM_REG_CCK_ANTDIV_PARA1_11N 0xA00 +#define DM_REG_CCK_CCA_11N 0xA0A +#define DM_REG_CCK_CCA_11AC 0xA0A +#define DM_REG_CCK_ANTDIV_PARA2_11N 0xA0C +#define DM_REG_CCK_ANTDIV_PARA3_11N 0xA10 +#define DM_REG_CCK_ANTDIV_PARA4_11N 0xA14 +#define DM_REG_CCK_FILTER_PARA1_11N 0xA22 +#define DM_REG_CCK_FILTER_PARA2_11N 0xA23 +#define DM_REG_CCK_FILTER_PARA3_11N 0xA24 +#define DM_REG_CCK_FILTER_PARA4_11N 0xA25 +#define DM_REG_CCK_FILTER_PARA5_11N 0xA26 +#define DM_REG_CCK_FILTER_PARA6_11N 0xA27 +#define DM_REG_CCK_FILTER_PARA7_11N 0xA28 +#define DM_REG_CCK_FILTER_PARA8_11N 0xA29 +#define DM_REG_CCK_FA_RST_11N 0xA2C +#define DM_REG_CCK_FA_MSB_11N 0xA58 +#define DM_REG_CCK_FA_LSB_11N 0xA5C +#define DM_REG_CCK_CCA_CNT_11N 0xA60 +#define DM_REG_BB_PWR_SAV4_11N 0xA74 +/*PAGE B */ +#define DM_REG_LNA_SWITCH_11N 0xB2C +#define DM_REG_PATH_SWITCH_11N 0xB30 +#define DM_REG_RSSI_CTRL_11N 0xB38 +#define DM_REG_CONFIG_ANTA_11N 0xB68 +#define DM_REG_RSSI_BT_11N 0xB9C +/*PAGE C */ +#define DM_REG_OFDM_FA_HOLDC_11N 0xC00 +#define DM_REG_RX_PATH_11N 0xC04 +#define DM_REG_TRMUX_11N 0xC08 +#define DM_REG_OFDM_FA_RSTC_11N 0xC0C +#define DM_REG_RXIQI_MATRIX_11N 0xC14 +#define DM_REG_TXIQK_MATRIX_LSB1_11N 0xC4C +#define DM_REG_IGI_A_11N 0xC50 +#define DM_REG_IGI_A_11AC 0xC50 +#define DM_REG_ANTDIV_PARA2_11N 0xC54 +#define DM_REG_IGI_B_11N 0xC58 +#define DM_REG_IGI_B_11AC 0xE50 +#define DM_REG_ANTDIV_PARA3_11N 0xC5C +#define DM_REG_BB_PWR_SAV2_11N 0xC70 +#define DM_REG_RX_OFF_11N 0xC7C +#define DM_REG_TXIQK_MATRIXA_11N 0xC80 +#define DM_REG_TXIQK_MATRIXB_11N 0xC88 +#define DM_REG_TXIQK_MATRIXA_LSB2_11N 0xC94 +#define DM_REG_TXIQK_MATRIXB_LSB2_11N 0xC9C +#define DM_REG_RXIQK_MATRIX_LSB_11N 0xCA0 +#define DM_REG_ANTDIV_PARA1_11N 0xCA4 +#define DM_REG_OFDM_FA_TYPE1_11N 0xCF0 +/*PAGE D */ +#define DM_REG_OFDM_FA_RSTD_11N 0xD00 +#define DM_REG_OFDM_FA_TYPE2_11N 0xDA0 +#define DM_REG_OFDM_FA_TYPE3_11N 0xDA4 +#define DM_REG_OFDM_FA_TYPE4_11N 0xDA8 +/*PAGE E */ +#define DM_REG_TXAGC_A_6_18_11N 0xE00 +#define DM_REG_TXAGC_A_24_54_11N 0xE04 +#define DM_REG_TXAGC_A_1_MCS32_11N 0xE08 +#define DM_REG_TXAGC_A_MCS0_3_11N 0xE10 +#define DM_REG_TXAGC_A_MCS4_7_11N 0xE14 +#define DM_REG_TXAGC_A_MCS8_11_11N 0xE18 +#define DM_REG_TXAGC_A_MCS12_15_11N 0xE1C +#define DM_REG_FPGA0_IQK_11N 0xE28 +#define DM_REG_TXIQK_TONE_A_11N 0xE30 +#define DM_REG_RXIQK_TONE_A_11N 0xE34 +#define DM_REG_TXIQK_PI_A_11N 0xE38 +#define DM_REG_RXIQK_PI_A_11N 0xE3C +#define DM_REG_TXIQK_11N 0xE40 +#define DM_REG_RXIQK_11N 0xE44 +#define DM_REG_IQK_AGC_PTS_11N 0xE48 +#define DM_REG_IQK_AGC_RSP_11N 0xE4C +#define DM_REG_BLUETOOTH_11N 0xE6C +#define DM_REG_RX_WAIT_CCA_11N 0xE70 +#define DM_REG_TX_CCK_RFON_11N 0xE74 +#define DM_REG_TX_CCK_BBON_11N 0xE78 +#define DM_REG_OFDM_RFON_11N 0xE7C +#define DM_REG_OFDM_BBON_11N 0xE80 +#define DM_REG_TX2RX_11N 0xE84 +#define DM_REG_TX2TX_11N 0xE88 +#define DM_REG_RX_CCK_11N 0xE8C +#define DM_REG_RX_OFDM_11N 0xED0 +#define DM_REG_RX_WAIT_RIFS_11N 0xED4 +#define DM_REG_RX2RX_11N 0xED8 +#define DM_REG_STANDBY_11N 0xEDC +#define DM_REG_SLEEP_11N 0xEE0 +#define DM_REG_PMPD_ANAEN_11N 0xEEC + + +/*MAC REG LIST*/ +#define DM_REG_BB_RST_11N 0x02 +#define DM_REG_ANTSEL_PIN_11N 0x4C +#define DM_REG_EARLY_MODE_11N 0x4D0 +#define DM_REG_RSSI_MONITOR_11N 0x4FE +#define DM_REG_EDCA_VO_11N 0x500 +#define DM_REG_EDCA_VI_11N 0x504 +#define DM_REG_EDCA_BE_11N 0x508 +#define DM_REG_EDCA_BK_11N 0x50C +#define DM_REG_TXPAUSE_11N 0x522 +#define DM_REG_RESP_TX_11N 0x6D8 +#define DM_REG_ANT_TRAIN_PARA1_11N 0x7b0 +#define DM_REG_ANT_TRAIN_PARA2_11N 0x7b4 + + +/*DIG Related*/ +#define DM_BIT_IGI_11N 0x0000007F +#define DM_BIT_IGI_11AC 0xFFFFFFFF + + + +#define HAL_DM_DIG_DISABLE BIT(0) +#define HAL_DM_HIPWR_DISABLE BIT(1) + +#define OFDM_TABLE_LENGTH 43 +#define CCK_TABLE_LENGTH 33 + +#define OFDM_TABLE_SIZE 37 +#define CCK_TABLE_SIZE 33 + +#define BW_AUTO_SWITCH_HIGH_LOW 25 +#define BW_AUTO_SWITCH_LOW_HIGH 30 + +#define DM_DIG_THRESH_HIGH 40 +#define DM_DIG_THRESH_LOW 35 + +#define DM_FALSEALARM_THRESH_LOW 400 +#define DM_FALSEALARM_THRESH_HIGH 1000 + +#define DM_DIG_MAX 0x3e +#define DM_DIG_MIN 0x1e + +#define DM_DIG_MAX_AP 0x32 +#define DM_DIG_MIN_AP 0x20 + +#define DM_DIG_FA_UPPER 0x3e +#define DM_DIG_FA_LOWER 0x1e +#define DM_DIG_FA_TH0 0x200 +#define DM_DIG_FA_TH1 0x300 +#define DM_DIG_FA_TH2 0x400 + +#define DM_DIG_BACKOFF_MAX 12 +#define DM_DIG_BACKOFF_MIN -4 +#define DM_DIG_BACKOFF_DEFAULT 10 + +#define RXPATHSELECTION_SS_TH_lOW 30 +#define RXPATHSELECTION_DIFF_TH 18 + +#define DM_RATR_STA_INIT 0 +#define DM_RATR_STA_HIGH 1 +#define DM_RATR_STA_MIDDLE 2 +#define DM_RATR_STA_LOW 3 + +#define CTS2SELF_THVAL 30 +#define REGC38_TH 20 + +#define WAIOTTHVal 25 + +#define TXHIGHPWRLEVEL_NORMAL 0 +#define TXHIGHPWRLEVEL_LEVEL1 1 +#define TXHIGHPWRLEVEL_LEVEL2 2 +#define TXHIGHPWRLEVEL_BT1 3 +#define TXHIGHPWRLEVEL_BT2 4 + +#define DM_TYPE_BYFW 0 +#define DM_TYPE_BYDRIVER 1 + +#define TX_POWER_NEAR_FIELD_THRESH_LVL2 74 +#define TX_POWER_NEAR_FIELD_THRESH_LVL1 67 +#define TXPWRTRACK_MAX_IDX 6 + +/* Dynamic ATC switch */ +#define ATC_STATUS_OFF 0x0 /* enable */ +#define ATC_STATUS_ON 0x1 /* disable */ +#define CFO_THRESHOLD_XTAL 10 /* kHz */ +#define CFO_THRESHOLD_ATC 80 /* kHz */ + +#define AVG_THERMAL_NUM_8812A 4 +#define TXPWR_TRACK_TABLE_SIZE 30 +#define MAX_PATH_NUM_8812A 2 +#define MAX_PATH_NUM_8821A 1 + + +struct ps_t { + u8 pre_ccastate; + u8 cur_ccasate; + u8 pre_rfstate; + u8 cur_rfstate; + u8 initialize; + long rssi_val_min; + +}; + +struct dig_t { + u8 dig_enable_flag; + u8 dig_ext_port_stage; + u32 rssi_lowthresh; + u32 rssi_highthresh; + + u32 fa_lowthresh; + u32 fa_highthresh; + + u8 cursta_connectctate; + u8 presta_connectstate; + u8 curmultista_connectstate; + + u8 pre_igvalue; + u8 cur_igvalue; + u8 bt30_cur_igi; + u8 backup_igvalue; + u8 stop_dig; + + char backoff_val; + char backoff_val_range_max; + char backoff_val_range_min; + u8 rx_gain_range_max; + u8 rx_gain_range_min; + u8 rssi_val_min; + + u8 pre_cck_cca_thres; + u8 cur_cck_cca_thres; + u8 pre_cck_pd_state; + u8 cur_cck_pd_state; + + u8 large_fa_hit; + u8 forbidden_igi; + u32 recover_cnt; + + u8 dig_dynamic_min_0; + u8 dig_dynamic_min_1; + bool b_media_connect_0; + bool b_media_connect_1; + + u32 antdiv_rssi_max; + u32 rssi_max; +}; + + +enum FAT_STATE { + FAT_NORMAL_STATE = 0, + FAT_TRAINING_STATE = 1, +}; + +enum tag_dynamic_init_gain_operation_type_definition { + DIG_TYPE_THRESH_HIGH = 0, + DIG_TYPE_THRESH_LOW = 1, + DIG_TYPE_BACKOFF = 2, + DIG_TYPE_RX_GAIN_MIN = 3, + DIG_TYPE_RX_GAIN_MAX = 4, + DIG_TYPE_ENABLE = 5, + DIG_TYPE_DISABLE = 6, + DIG_OP_TYPE_MAX +}; + +enum tag_cck_packet_detection_threshold_type_definition { + CCK_PD_STAGE_LowRssi = 0, + CCK_PD_STAGE_HighRssi = 1, + CCK_FA_STAGE_Low = 2, + CCK_FA_STAGE_High = 3, + CCK_PD_STAGE_MAX = 4, +}; + +enum dm_1r_cca_e { + CCA_1R = 0, + CCA_2R = 1, + CCA_MAX = 2, +}; + +enum dm_rf_e { + RF_SAVE = 0, + RF_NORMAL = 1, + RF_MAX = 2, +}; + +enum dm_sw_ant_switch_e { + ANS_ANTENNA_B = 1, + ANS_ANTENNA_A = 2, + ANS_ANTENNA_MAX = 3, +}; + +enum dm_dig_ext_port_alg_e { + DIG_EXT_PORT_STAGE_0 = 0, + DIG_EXT_PORT_STAGE_1 = 1, + DIG_EXT_PORT_STAGE_2 = 2, + DIG_EXT_PORT_STAGE_3 = 3, + DIG_EXT_PORT_STAGE_MAX = 4, +}; + +enum dm_dig_connect_e { + DIG_STA_DISCONNECT = 0, + DIG_STA_CONNECT = 1, + DIG_STA_BEFORE_CONNECT = 2, + DIG_MULTISTA_DISCONNECT = 3, + DIG_MULTISTA_CONNECT = 4, + DIG_CONNECT_MAX +}; + +enum pwr_track_control_method { + BBSWING, + TXAGC, + MIX_MODE +}; + +#define BT_RSSI_STATE_NORMAL_POWER BIT_OFFSET_LEN_MASK_32(0, 1) +#define BT_RSSI_STATE_AMDPU_OFF BIT_OFFSET_LEN_MASK_32(1, 1) +#define BT_RSSI_STATE_SPECIAL_LOW BIT_OFFSET_LEN_MASK_32(2, 1) +#define BT_RSSI_STATE_BG_EDCA_LOW BIT_OFFSET_LEN_MASK_32(3, 1) +#define BT_RSSI_STATE_TXPOWER_LOW BIT_OFFSET_LEN_MASK_32(4, 1) +#define GET_UNDECORATED_AVERAGE_RSSI(_priv) \ + (((struct rtl_priv *)(_priv))->mac80211.opmode == NL80211_IFTYPE_ADHOC)? \ + (((struct rtl_priv *)(_priv))->dm.entry_min_undecoratedsmoothed_pwdb): \ + (((struct rtl_priv *)(_priv))->dm.undecorated_smoothed_pwdb) + +extern struct dig_t dm_digtable; +void rtl8821ae_dm_set_tx_ant_by_tx_info(struct ieee80211_hw *hw, + u8 *pdesc, u32 mac_id); +void rtl8821ae_dm_ant_sel_statistics(struct ieee80211_hw *hw, + u8 antsel_tr_mux, u32 mac_id, + u32 rx_pwdb_all); +void rtl8821ae_dm_fast_antenna_trainning_callback(unsigned long data); +void rtl8821ae_dm_init(struct ieee80211_hw *hw); +void rtl8821ae_dm_watchdog(struct ieee80211_hw *hw); +void rtl8821ae_dm_write_dig(struct ieee80211_hw *hw, u8 current_igi); +void rtl8821ae_dm_init_edca_turbo(struct ieee80211_hw *hw); +void rtl8821ae_dm_check_txpower_tracking_thermalmeter(struct ieee80211_hw *hw); +void rtl8821ae_dm_init_rate_adaptive_mask(struct ieee80211_hw *hw); +void rtl8821ae_dm_txpower_track_adjust(struct ieee80211_hw *hw, + u8 type,u8 *pdirection, + u32 *poutwrite_val); +void rtl8821ae_dm_clear_txpower_tracking_state(struct ieee80211_hw *hw); +void rtl8821ae_dm_write_cck_cca_thres(struct ieee80211_hw *hw, u8 current_cca); +void rtl8821ae_dm_initialize_txpower_tracking_thermalmeter(struct ieee80211_hw *hw); +void rtl8812ae_dm_path_diversity(struct ieee80211_hw *hw); +void rtl8812ae_dm_path_diversity_init(struct ieee80211_hw *hw); +void rtl8812ae_dm_path_statistics(struct ieee80211_hw *hw, + u32 rssi_a, u32 rssi_b); +void rtl812ae_dm_set_txpath_by_txinfo(struct ieee80211_hw *hw, + u8 *pdesc); +void rtl8812ae_dm_txpwr_track_set_pwr(struct ieee80211_hw *hw, + enum pwr_track_control_method method, + u8 rf_path, + u8 channel_mapped_index); +void rtl8821ae_dm_txpwr_track_set_pwr(struct ieee80211_hw *hw, + enum pwr_track_control_method method, u8 rf_path, u8 channel_mapped_index); + +void rtl8812ae_dm_update_init_rate(struct ieee80211_hw *hw, u8 rate); +u8 rtl8812ae_hw_rate_to_mrate(struct ieee80211_hw *hw, u8 rate); +void rtl8812ae_dm_txpower_tracking_callback_thermalmeter(struct ieee80211_hw *hw); +void rtl8821ae_dm_txpower_tracking_callback_thermalmeter(struct ieee80211_hw *hw); +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/fw.c +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/fw.c @@ -0,0 +1,1349 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "../pci.h" +#include "../base.h" +#include "reg.h" +#include "def.h" +#include "fw.h" +#include "dm.h" + +static void _rtl8821ae_enable_fw_download(struct ieee80211_hw *hw, bool enable) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 tmp; + + if (enable) { + rtl_write_byte(rtlpriv, REG_MCUFWDL, 0x05); + + tmp = rtl_read_byte(rtlpriv, REG_MCUFWDL + 2); + rtl_write_byte(rtlpriv, REG_MCUFWDL + 2, tmp & 0xf7); + + tmp = rtl_read_byte(rtlpriv, REG_MCUFWDL); + //printk("0x80=%02x.\n",tmp); + } else { + tmp = rtl_read_byte(rtlpriv, REG_MCUFWDL); + rtl_write_byte(rtlpriv, REG_MCUFWDL, tmp & 0xfe); + tmp = rtl_read_byte(rtlpriv, REG_MCUFWDL); + //printk("0x80=%02x.\n",tmp); + } + +} + +static void _rtl8821ae_fw_block_write(struct ieee80211_hw *hw, + const u8 *buffer, u32 size) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 blockSize = sizeof(u32); + u8 *bufferPtr = (u8 *) buffer; + u32 *pu4BytePtr = (u32 *) buffer; + u32 i, offset, blockCount, remainSize; + + blockCount = size / blockSize; + remainSize = size % blockSize; + + for (i = 0; i < blockCount; i++) { + offset = i * blockSize; + rtl_write_dword(rtlpriv, (FW_8821AE_START_ADDRESS + offset), + *(pu4BytePtr + i)); + } + + if (remainSize) { + offset = blockCount * blockSize; + bufferPtr += offset; + for (i = 0; i < remainSize; i++) { + rtl_write_byte(rtlpriv, (FW_8821AE_START_ADDRESS + + offset + i), *(bufferPtr + i)); + } + } +} + +static void _rtl8821ae_fw_page_write(struct ieee80211_hw *hw, + u32 page, const u8 *buffer, u32 size) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 value8; + u8 u8page = (u8) (page & 0x07); + + value8 = (rtl_read_byte(rtlpriv, REG_MCUFWDL + 2) & 0xF8) | u8page; + + rtl_write_byte(rtlpriv, (REG_MCUFWDL + 2), value8); + _rtl8821ae_fw_block_write(hw, buffer, size); +} + +static void _rtl8821ae_fill_dummy(u8 *pfwbuf, u32 *pfwlen) +{ + u32 fwlen = *pfwlen; + u8 remain = (u8) (fwlen % 4); + + remain = (remain == 0) ? 0 : (4 - remain); + + while (remain > 0) { + pfwbuf[fwlen] = 0; + fwlen++; + remain--; + } + + *pfwlen = fwlen; +} + +static void _rtl8821ae_write_fw(struct ieee80211_hw *hw, + enum version_8821ae version, + u8 *buffer, u32 size) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 *bufferPtr = (u8 *) buffer; + u32 pageNums, remainSize; + u32 page, offset; + + RT_TRACE(COMP_FW, DBG_LOUD, ("FW size is %d bytes,\n", size)); + + _rtl8821ae_fill_dummy(bufferPtr, &size); + + pageNums = size / FW_8821AE_PAGE_SIZE; + remainSize = size % FW_8821AE_PAGE_SIZE; + + if (pageNums > 8) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("Page numbers should not greater then 8\n")); + } + + for (page = 0; page < pageNums; page++) { + offset = page * FW_8821AE_PAGE_SIZE; + _rtl8821ae_fw_page_write(hw, page, (bufferPtr + offset), + FW_8821AE_PAGE_SIZE); + } + + if (remainSize) { + offset = pageNums * FW_8821AE_PAGE_SIZE; + page = pageNums; + _rtl8821ae_fw_page_write(hw, page, (bufferPtr + offset), + remainSize); + } + +} + +static int _rtl8821ae_fw_free_to_go(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + int err = -EIO; + u32 counter = 0; + u32 value32; + + do { + value32 = rtl_read_dword(rtlpriv, REG_MCUFWDL); + } while ((counter++ < FW_8821AE_POLLING_TIMEOUT_COUNT) && + (!(value32 & FWDL_CHKSUM_RPT))); + + if (counter >= FW_8821AE_POLLING_TIMEOUT_COUNT) { + RT_TRACE(COMP_ERR, DBG_LOUD, + ("chksum report faill ! REG_MCUFWDL:0x%08x .\n", + value32)); + goto exit; + } + + RT_TRACE(COMP_FW, DBG_EMERG, + ("Checksum report OK ! REG_MCUFWDL:0x%08x .\n", value32)); + + value32 = rtl_read_dword(rtlpriv, REG_MCUFWDL); + value32 |= MCUFWDL_RDY; + value32 &= ~WINTINI_RDY; + rtl_write_dword(rtlpriv, REG_MCUFWDL, value32); + + rtl8821ae_firmware_selfreset(hw); + + counter = 0; + do { + value32 = rtl_read_dword(rtlpriv, REG_MCUFWDL); + if (value32 & WINTINI_RDY) { + RT_TRACE(COMP_FW, DBG_LOUD, + ("Polling FW ready success!! REG_MCUFWDL:0x%08x .\n", + value32)); + err = 0; + goto exit; + } + + udelay(FW_8821AE_POLLING_DELAY); + + } while (counter++ < FW_8821AE_POLLING_TIMEOUT_COUNT); + + RT_TRACE(COMP_ERR, DBG_EMERG, + ("Polling FW ready fail!! REG_MCUFWDL:0x%08x .\n", value32)); + +exit: + return err; +} + +int rtl8821ae_download_fw(struct ieee80211_hw *hw, + bool buse_wake_on_wlan_fw + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl8821a_firmware_header *pfwheader; + u8 *pfwdata; + u32 fwsize; + int err; + enum version_8821ae version = rtlhal->version; + + if(!rtlhal->pfirmware) + return 1; + + pfwheader = (struct rtl8821a_firmware_header *)rtlhal->pfirmware; + pfwdata = (u8 *) rtlhal->pfirmware; + fwsize = rtlhal->fwsize; + RT_TRACE(COMP_FW, DBG_DMESG, + ("normal Firmware SIZE %d \n",fwsize)); + + if (IS_FW_HEADER_EXIST_8812(pfwheader) || IS_FW_HEADER_EXIST_8821(pfwheader)) { + RT_TRACE(COMP_FW, DBG_DMESG, + ("Firmware Version(%d), Signature(%#x),Size(%d)\n", + pfwheader->version, pfwheader->signature, + (int)sizeof(struct rtl8821a_firmware_header))); + + pfwdata = pfwdata + sizeof(struct rtl8821a_firmware_header); + fwsize = fwsize - sizeof(struct rtl8821a_firmware_header); + } + + if(rtl_read_byte(rtlpriv, REG_MCUFWDL) & BIT(7)){ + rtl_write_byte(rtlpriv, REG_MCUFWDL, 0x00); + rtl8821ae_firmware_selfreset(hw); + } + _rtl8821ae_enable_fw_download(hw, true); + _rtl8821ae_write_fw(hw, version, pfwdata, fwsize); + _rtl8821ae_enable_fw_download(hw, false); + + err = _rtl8821ae_fw_free_to_go(hw); + if (err) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("Firmware is not ready to run!\n")); + } else { + RT_TRACE(COMP_FW, DBG_LOUD, + ("Firmware is ready to run!\n")); + } + + return 0; +} + +static bool _rtl8821ae_check_fw_read_last_h2c(struct ieee80211_hw *hw, u8 boxnum) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 val_hmetfr; + bool result = false; + + val_hmetfr = rtl_read_byte(rtlpriv, REG_HMETFR); + if (((val_hmetfr >> boxnum) & BIT(0)) == 0) + result = true; + return result; +} + +static void _rtl8821ae_fill_h2c_command(struct ieee80211_hw *hw, + u8 element_id, u32 cmd_len, u8 *p_cmdbuffer) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 boxnum =0; + u16 box_reg = 0, box_extreg = 0; + u8 u1b_tmp = 0; + bool isfw_read = false; + u8 buf_index = 0; + bool bwrite_sucess = false; + u8 wait_h2c_limmit = 100; + /*u8 wait_writeh2c_limmit = 100;*/ + u8 boxcontent[4], boxextcontent[4]; + u32 h2c_waitcounter = 0; + unsigned long flag =0; + u8 idx =0; + + RT_TRACE(COMP_CMD, DBG_LOUD, ("come in\n")); + + while (true) { + spin_lock_irqsave(&rtlpriv->locks.h2c_lock, flag); + if (rtlhal->b_h2c_setinprogress) { + RT_TRACE(COMP_CMD, DBG_LOUD, + ("H2C set in progress! Wait to set.." + "element_id(%d).\n", element_id)); + + while (rtlhal->b_h2c_setinprogress) { + spin_unlock_irqrestore(&rtlpriv->locks.h2c_lock, + flag); + h2c_waitcounter++; + RT_TRACE(COMP_CMD, DBG_LOUD, + ("Wait 100 us (%d times)...\n", + h2c_waitcounter)); + udelay(100); + + if (h2c_waitcounter > 1000) + return; + spin_lock_irqsave(&rtlpriv->locks.h2c_lock, + flag); + } + spin_unlock_irqrestore(&rtlpriv->locks.h2c_lock, flag); + } else { + rtlhal->b_h2c_setinprogress = true; + spin_unlock_irqrestore(&rtlpriv->locks.h2c_lock, flag); + break; + } + } + + while (!bwrite_sucess) { + /*cosa remove this because never reach this.*/ +#if 0 + wait_writeh2c_limmit--; + if (wait_writeh2c_limmit == 0) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("Write H2C fail because no trigger " + "for FW INT!\n")); + break; + } +#endif + + boxnum = rtlhal->last_hmeboxnum; + switch (boxnum) { + case 0: + box_reg = REG_HMEBOX_0; + box_extreg = REG_HMEBOX_EXT_0; + break; + case 1: + box_reg = REG_HMEBOX_1; + box_extreg = REG_HMEBOX_EXT_1; + break; + case 2: + box_reg = REG_HMEBOX_2; + box_extreg = REG_HMEBOX_EXT_2; + break; + case 3: + box_reg = REG_HMEBOX_3; + box_extreg = REG_HMEBOX_EXT_3; + break; + default: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("switch case not process \n")); + break; + } + + isfw_read = false; + u1b_tmp = rtl_read_byte(rtlpriv, REG_CR); + + if (u1b_tmp != 0xEA) + isfw_read = true; + else { + if( rtl_read_byte(rtlpriv, REG_TXDMA_STATUS) == 0xEA || + rtl_read_byte(rtlpriv, REG_TXPKT_EMPTY) == 0xEA) + rtl_write_byte(rtlpriv, REG_SYS_CFG1 + 3, 0xFF); + } + + if (isfw_read == true) { + wait_h2c_limmit = 100; + isfw_read = _rtl8821ae_check_fw_read_last_h2c(hw, boxnum); + while (!isfw_read) { + /*wait until Fw read*/ + wait_h2c_limmit--; + if (wait_h2c_limmit == 0) { + RT_TRACE(COMP_CMD, DBG_LOUD, + ("Wating too long for FW read " + "clear HMEBox(%d)!\n", boxnum)); + break; + } + + udelay(10); + + isfw_read = _rtl8821ae_check_fw_read_last_h2c(hw, boxnum); + u1b_tmp = rtl_read_byte(rtlpriv, 0x130); + RT_TRACE(COMP_CMD, DBG_LOUD, + ("Wating for FW read clear HMEBox(%d)!!! " + "0x130 = %2x\n", boxnum, u1b_tmp)); + } + } + + if (!isfw_read) { + RT_TRACE(COMP_CMD, DBG_LOUD, + ("Write H2C register BOX[%d] fail!!!!! " + "Fw do not read. \n", boxnum)); + break; + } + + memset(boxcontent, 0, sizeof(boxcontent)); + memset(boxextcontent, 0, sizeof(boxextcontent)); + boxcontent[0] = element_id; + RT_TRACE(COMP_CMD, DBG_LOUD, + ("Write element_id box_reg(%4x) = %2x \n", + box_reg, element_id)); + + switch (cmd_len) { + case 1: + case 2: + case 3: + /*boxcontent[0] &= ~(BIT(7));*/ + memcpy((u8 *) (boxcontent) + 1, + p_cmdbuffer + buf_index, cmd_len); + + for (idx = 0; idx < 4; idx++) { + rtl_write_byte(rtlpriv, box_reg + idx, + boxcontent[idx]); + } + break; + case 4: + case 5: + case 6: + case 7: + /*boxcontent[0] |= (BIT(7));*/ + memcpy((u8 *) (boxextcontent), + p_cmdbuffer + buf_index+3, cmd_len-3); + memcpy((u8 *) (boxcontent) + 1, + p_cmdbuffer + buf_index, 3); + + for (idx = 0; idx < 4; idx++) { + rtl_write_byte(rtlpriv, box_extreg + idx, + boxextcontent[idx]); + } + + for (idx = 0; idx < 4; idx++) { + rtl_write_byte(rtlpriv, box_reg + idx, + boxcontent[idx]); + } + break; + default: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("switch case not process \n")); + break; + } + + bwrite_sucess = true; + + rtlhal->last_hmeboxnum = boxnum + 1; + if (rtlhal->last_hmeboxnum == 4) + rtlhal->last_hmeboxnum = 0; + + RT_TRACE(COMP_CMD, DBG_LOUD, + ("pHalData->last_hmeboxnum = %d\n", + rtlhal->last_hmeboxnum)); + } + + spin_lock_irqsave(&rtlpriv->locks.h2c_lock, flag); + rtlhal->b_h2c_setinprogress = false; + spin_unlock_irqrestore(&rtlpriv->locks.h2c_lock, flag); + + RT_TRACE(COMP_CMD, DBG_LOUD, ("go out\n")); +} + +void rtl8821ae_fill_h2c_cmd(struct ieee80211_hw *hw, + u8 element_id, u32 cmd_len, u8 *p_cmdbuffer) +{ + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u32 tmp_cmdbuf[2]; + + if (rtlhal->bfw_ready == false) { + RT_ASSERT(false, ("return H2C cmd because of Fw " + "download fail!!!\n")); + return; + } + + memset(tmp_cmdbuf, 0, 8); + memcpy(tmp_cmdbuf, p_cmdbuffer, cmd_len); + _rtl8821ae_fill_h2c_command(hw, element_id, cmd_len, (u8 *) & tmp_cmdbuf); + + return; +} + +void rtl8821ae_firmware_selfreset(struct ieee80211_hw *hw) +{ + u8 u1b_tmp; + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + + if(rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + { + u1b_tmp = rtl_read_byte(rtlpriv, REG_RSV_CTRL+1); + rtl_write_byte(rtlpriv, REG_RSV_CTRL+1, (u1b_tmp & (~BIT(3)))); + }else { + u1b_tmp = rtl_read_byte(rtlpriv, REG_RSV_CTRL+1); + rtl_write_byte(rtlpriv, REG_RSV_CTRL+1, (u1b_tmp & (~BIT(0)))); + } + + u1b_tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN+1); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN+1, (u1b_tmp & (~BIT(2)))); + udelay(50); + + if(rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + { + u1b_tmp = rtl_read_byte(rtlpriv, REG_RSV_CTRL+1); + rtl_write_byte(rtlpriv, REG_RSV_CTRL+1, (u1b_tmp | BIT(3))); + }else { + u1b_tmp = rtl_read_byte(rtlpriv, REG_RSV_CTRL+1); + rtl_write_byte(rtlpriv, REG_RSV_CTRL+1, (u1b_tmp | BIT(0))); + } + + u1b_tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN+1); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN+1, (u1b_tmp | BIT(2))); + + RT_TRACE(COMP_INIT, DBG_LOUD, (" _8051Reset8812ae(): 8051 reset success .\n")); + +} + +void rtl8821ae_set_fw_pwrmode_cmd(struct ieee80211_hw *hw, u8 mode) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 u1_h2c_set_pwrmode[H2C_8821AE_PWEMODE_LENGTH] = { 0 }; + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + u8 rlbm,power_state = 0; + RT_TRACE(COMP_POWER, DBG_LOUD, ("FW LPS mode = %d\n", mode)); + + SET_H2CCMD_PWRMODE_PARM_MODE(u1_h2c_set_pwrmode, ((mode) ? 1 : 0)); + rlbm = 0;/*YJ,temp,120316. FW now not support RLBM=2.*/ + SET_H2CCMD_PWRMODE_PARM_RLBM(u1_h2c_set_pwrmode, rlbm); + SET_H2CCMD_PWRMODE_PARM_SMART_PS(u1_h2c_set_pwrmode, (rtlpriv->mac80211.p2p) ? ppsc->smart_ps : 1); + SET_H2CCMD_PWRMODE_PARM_AWAKE_INTERVAL(u1_h2c_set_pwrmode, ppsc->reg_max_lps_awakeintvl); + SET_H2CCMD_PWRMODE_PARM_ALL_QUEUE_UAPSD(u1_h2c_set_pwrmode, 0); + if(mode == FW_PS_ACTIVE_MODE) + { + power_state |= FW_PWR_STATE_ACTIVE; + } + else + { + power_state |= FW_PWR_STATE_RF_OFF; + } + SET_H2CCMD_PWRMODE_PARM_PWR_STATE(u1_h2c_set_pwrmode, power_state); + + RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG, + "rtl92c_set_fw_pwrmode(): u1_h2c_set_pwrmode \n", + u1_h2c_set_pwrmode, H2C_8821AE_PWEMODE_LENGTH); + rtl8821ae_fill_h2c_cmd(hw, H2C_8821AE_SETPWRMODE, H2C_8821AE_PWEMODE_LENGTH, u1_h2c_set_pwrmode); + +} + +void rtl8821ae_set_fw_joinbss_report_cmd(struct ieee80211_hw *hw, u8 mstatus) +{ + u8 u1_joinbssrpt_parm[1] = { 0 }; + + SET_H2CCMD_JOINBSSRPT_PARM_OPMODE(u1_joinbssrpt_parm, mstatus); + + rtl8821ae_fill_h2c_cmd(hw, H2C_8821AE_JOINBSSRPT, 1, u1_joinbssrpt_parm); +} + +void rtl8821ae_set_fw_ap_off_load_cmd(struct ieee80211_hw *hw, u8 ap_offload_enable) +{ + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + u8 u1_apoffload_parm[H2C_8821AE_AP_OFFLOAD_LENGTH] = { 0 }; + + SET_H2CCMD_AP_OFFLOAD_ON(u1_apoffload_parm, ap_offload_enable); + SET_H2CCMD_AP_OFFLOAD_HIDDEN(u1_apoffload_parm, mac->bhiddenssid); + SET_H2CCMD_AP_OFFLOAD_DENYANY(u1_apoffload_parm, 0); + + rtl8821ae_fill_h2c_cmd(hw, H2C_8821AE_AP_OFFLOAD, H2C_8821AE_AP_OFFLOAD_LENGTH, u1_apoffload_parm); + +} + +static bool _rtl8821ae_cmd_send_packet(struct ieee80211_hw *hw, + struct sk_buff *skb) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl8192_tx_ring *ring; + struct rtl_tx_desc *pdesc; + u8 own; + unsigned long flags; + struct sk_buff *pskb = NULL; + + ring = &rtlpci->tx_ring[BEACON_QUEUE]; + + pskb = __skb_dequeue(&ring->queue); + if (pskb) + kfree_skb(pskb); + + spin_lock_irqsave(&rtlpriv->locks.irq_th_lock, flags); + + pdesc = &ring->desc[0]; + own = (u8) rtlpriv->cfg->ops->get_desc((u8 *) pdesc, true, HW_DESC_OWN); + + rtlpriv->cfg->ops->fill_tx_cmddesc(hw, (u8 *) pdesc, 1, 1, skb); + + __skb_queue_tail(&ring->queue, skb); + + spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags); + + rtlpriv->cfg->ops->tx_polling(hw, BEACON_QUEUE); + + return true; +} + +#define BEACON_PG 0 /* ->1 */ +#define PSPOLL_PG 2 +#define NULL_PG 3 +#define PROBERSP_PG 4 /* ->5 */ + +#define BEACON_PG_8812 0 +#define PSPOLL_PG_8812 1 +#define NULL_PG_8812 2 +#define PROBERSP_PG_8812 3 + +#define BEACON_PG_8821 0 +#define PSPOLL_PG_8821 1 +#define NULL_PG_8821 2 +#define PROBERSP_PG_8821 3 + +#define TOTAL_RESERVED_PKT_LEN_8812 2048 +#define TOTAL_RESERVED_PKT_LEN_8821 1024 + + +static u8 reserved_page_packet_8821[TOTAL_RESERVED_PKT_LEN_8821] = { + /* page 0 */ + 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x00, 0xe0, 0x4c, 0x02, 0xe2, 0x64, + 0x40, 0x16, 0x9f, 0x23, 0xd4, 0x46, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x20, 0x04, 0x00, 0x06, 0x64, 0x6c, + 0x69, 0x6e, 0x6b, 0x31, 0x01, 0x08, 0x82, 0x84, + 0x8b, 0x96, 0x0c, 0x18, 0x30, 0x48, 0x03, 0x01, + 0x0b, 0x06, 0x02, 0x00, 0x00, 0x2a, 0x01, 0x8b, + 0x32, 0x04, 0x12, 0x24, 0x60, 0x6c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x28, 0x8c, 0x00, 0x12, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* page 1 */ + 0xa4, 0x10, 0x01, 0xc0, 0x40, 0x16, 0x9f, 0x23, + 0xd4, 0x46, 0x00, 0xe0, 0x4c, 0x02, 0xe2, 0x64, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x28, 0x8c, 0x00, 0x12, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* page 2 */ + 0x48, 0x01, 0x00, 0x00, 0x40, 0x16, 0x9f, 0x23, + 0xd4, 0x46, 0x00, 0xe0, 0x4c, 0x02, 0xe2, 0x64, + 0x40, 0x16, 0x9f, 0x23, 0xd4, 0x46, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1a, 0x00, 0x28, 0x8c, 0x00, 0x12, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + /* page 3 */ + 0xc8, 0x01, 0x00, 0x00, 0x40, 0x16, 0x9f, 0x23, + 0xd4, 0x46, 0x00, 0xe0, 0x4c, 0x02, 0xe2, 0x64, + 0x40, 0x16, 0x9f, 0x23, 0xd4, 0x46, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + + +static u8 reserved_page_packet_8812[TOTAL_RESERVED_PKT_LEN_8812] = { + 0x80, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x00, 0xE0, 0x4C, 0x02, 0x53, 0xE5, + 0xE0, 0x46, 0x9A, 0x57, 0x71, 0x30, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x30, 0x04, 0x00, 0x0C, 0x4E, 0x45, + 0x54, 0x47, 0x45, 0x41, 0x52, 0x5F, 0x31, 0x35, + 0x30, 0x4E, 0x01, 0x08, 0x82, 0x84, 0x8B, 0x96, + 0x0C, 0x12, 0x18, 0x24, 0x03, 0x01, 0x03, 0x06, + 0x02, 0x00, 0x00, 0x2A, 0x01, 0x8A, 0x32, 0x04, + 0x30, 0x48, 0x60, 0x6C, 0xDD, 0x18, 0x00, 0x50, + 0xF2, 0x01, 0x01, 0x00, 0x00, 0x50, 0xF2, 0x02, + 0x01, 0x00, 0x00, 0x50, 0xF2, 0x02, 0x01, 0x00, + 0x00, 0x50, 0xF2, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x28, 0x8C, 0x00, 0x12, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0xA4, 0x10, 0x02, 0xC0, 0xE0, 0x46, 0x9A, 0x57, + 0x71, 0x30, 0x00, 0xE0, 0x4C, 0x02, 0x53, 0xE5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x28, 0x8C, 0x00, 0x12, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0x48, 0x01, 0x00, 0x00, 0xE0, 0x46, 0x9A, 0x57, + 0x71, 0x30, 0x00, 0xE0, 0x4C, 0x02, 0x53, 0xE5, + 0xE0, 0x46, 0x9A, 0x57, 0x71, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1A, 0x00, 0x28, 0x8C, 0x00, 0x12, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + + 0xC8, 0x01, 0x00, 0x00, 0xE0, 0x46, 0x9A, 0x57, + 0x71, 0x30, 0x00, 0xE0, 0x4C, 0x02, 0x53, 0xE5, + 0xE0, 0x46, 0x9A, 0x57, 0x71, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; + +void rtl8812ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct sk_buff *skb = NULL; + + u32 totalpacketlen; + bool rtstatus; + u8 u1RsvdPageLoc[5] = { 0 }; + bool b_dlok = false; + + u8* beacon; + u8* p_pspoll; + u8* nullfunc; + u8* p_probersp; + /*--------------------------------------------------------- + (1) beacon + ---------------------------------------------------------*/ + beacon = &reserved_page_packet_8812[BEACON_PG_8812 * 512]; + SET_80211_HDR_ADDRESS2(beacon, mac->mac_addr); + SET_80211_HDR_ADDRESS3(beacon, mac->bssid); + + /*------------------------------------------------------- + (2) ps-poll + --------------------------------------------------------*/ + p_pspoll = &reserved_page_packet_8812[PSPOLL_PG_8812 * 512]; + SET_80211_PS_POLL_AID(p_pspoll, (mac->assoc_id | 0xc000)); + SET_80211_PS_POLL_BSSID(p_pspoll, mac->bssid); + SET_80211_PS_POLL_TA(p_pspoll, mac->mac_addr); + + SET_H2CCMD_RSVDPAGE_LOC_PSPOLL(u1RsvdPageLoc, PSPOLL_PG_8812); + + /*-------------------------------------------------------- + (3) null data + ---------------------------------------------------------*/ + nullfunc = &reserved_page_packet_8812[NULL_PG_8812* 512]; + SET_80211_HDR_ADDRESS1(nullfunc, mac->bssid); + SET_80211_HDR_ADDRESS2(nullfunc, mac->mac_addr); + SET_80211_HDR_ADDRESS3(nullfunc, mac->bssid); + + SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(u1RsvdPageLoc, NULL_PG_8812); + + /*--------------------------------------------------------- + (4) probe response + ----------------------------------------------------------*/ + p_probersp = &reserved_page_packet_8812[PROBERSP_PG_8812 * 512]; + SET_80211_HDR_ADDRESS1(p_probersp, mac->bssid); + SET_80211_HDR_ADDRESS2(p_probersp, mac->mac_addr); + SET_80211_HDR_ADDRESS3(p_probersp, mac->bssid); + + SET_H2CCMD_RSVDPAGE_LOC_PROBE_RSP(u1RsvdPageLoc, PROBERSP_PG_8812); + + totalpacketlen = TOTAL_RESERVED_PKT_LEN_8812; + + RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD, + "rtl8821ae_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL \n", + &reserved_page_packet_8812[0], totalpacketlen); + RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG, + "rtl8821ae_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL \n", + u1RsvdPageLoc, 3); + + + skb = dev_alloc_skb(totalpacketlen); + memcpy((u8 *) skb_put(skb, totalpacketlen), + &reserved_page_packet_8812, totalpacketlen); + + rtstatus = _rtl8821ae_cmd_send_packet(hw, skb); + + if (rtstatus) + b_dlok = true; + + if (b_dlok) { + RT_TRACE(COMP_POWER, DBG_LOUD, + ("Set RSVD page location to Fw.\n")); + RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG, + "H2C_RSVDPAGE:\n", + u1RsvdPageLoc, 3); + rtl8821ae_fill_h2c_cmd(hw, H2C_8821AE_RSVDPAGE, + sizeof(u1RsvdPageLoc), u1RsvdPageLoc); + } else + RT_TRACE(COMP_ERR, DBG_WARNING, + ("Set RSVD page location to Fw FAIL!!!!!!.\n")); +} + +void rtl8821ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct sk_buff *skb = NULL; + + u32 totalpacketlen; + bool rtstatus; + u8 u1RsvdPageLoc[5] = { 0 }; + bool b_dlok = false; + + u8* beacon; + u8* p_pspoll; + u8* nullfunc; + u8* p_probersp; + /*--------------------------------------------------------- + (1) beacon + ---------------------------------------------------------*/ + beacon = &reserved_page_packet_8821[BEACON_PG_8821 * 256]; + SET_80211_HDR_ADDRESS2(beacon, mac->mac_addr); + SET_80211_HDR_ADDRESS3(beacon, mac->bssid); + + /*------------------------------------------------------- + (2) ps-poll + --------------------------------------------------------*/ + p_pspoll = &reserved_page_packet_8821[PSPOLL_PG_8821 * 256]; + SET_80211_PS_POLL_AID(p_pspoll, (mac->assoc_id | 0xc000)); + SET_80211_PS_POLL_BSSID(p_pspoll, mac->bssid); + SET_80211_PS_POLL_TA(p_pspoll, mac->mac_addr); + + SET_H2CCMD_RSVDPAGE_LOC_PSPOLL(u1RsvdPageLoc, PSPOLL_PG_8821); + + /*-------------------------------------------------------- + (3) null data + ---------------------------------------------------------*/ + nullfunc = &reserved_page_packet_8821[NULL_PG_8821 * 256]; + SET_80211_HDR_ADDRESS1(nullfunc, mac->bssid); + SET_80211_HDR_ADDRESS2(nullfunc, mac->mac_addr); + SET_80211_HDR_ADDRESS3(nullfunc, mac->bssid); + + SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(u1RsvdPageLoc, NULL_PG_8821); + + /*--------------------------------------------------------- + (4) probe response + ----------------------------------------------------------*/ + p_probersp = &reserved_page_packet_8821[PROBERSP_PG_8821 * 256]; + SET_80211_HDR_ADDRESS1(p_probersp, mac->bssid); + SET_80211_HDR_ADDRESS2(p_probersp, mac->mac_addr); + SET_80211_HDR_ADDRESS3(p_probersp, mac->bssid); + + SET_H2CCMD_RSVDPAGE_LOC_PROBE_RSP(u1RsvdPageLoc, PROBERSP_PG_8821); + + totalpacketlen = TOTAL_RESERVED_PKT_LEN_8821; + + RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD, + "rtl8821ae_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL \n", + &reserved_page_packet_8821[0], totalpacketlen); + RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG, + "rtl8821ae_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL \n", + u1RsvdPageLoc, 3); + + + skb = dev_alloc_skb(totalpacketlen); + memcpy((u8 *) skb_put(skb, totalpacketlen), + &reserved_page_packet_8821, totalpacketlen); + + rtstatus = _rtl8821ae_cmd_send_packet(hw, skb); + + if (rtstatus) + b_dlok = true; + + if (b_dlok) { + RT_TRACE(COMP_POWER, DBG_LOUD, + ("Set RSVD page location to Fw.\n")); + RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_DMESG, + "H2C_RSVDPAGE:\n", + u1RsvdPageLoc, 3); + rtl8821ae_fill_h2c_cmd(hw, H2C_8821AE_RSVDPAGE, + sizeof(u1RsvdPageLoc), u1RsvdPageLoc); + } else + RT_TRACE(COMP_ERR, DBG_WARNING, + ("Set RSVD page location to Fw FAIL!!!!!!.\n")); +} + +/*Shoud check FW support p2p or not.*/ +void rtl8821ae_set_p2p_ctw_period_cmd(struct ieee80211_hw *hw, u8 ctwindow) +{ + u8 u1_ctwindow_period[1] ={ ctwindow}; + + rtl8821ae_fill_h2c_cmd(hw, H2C_8821AE_P2P_PS_CTW_CMD, 1, u1_ctwindow_period); + +} + +void rtl8821ae_set_p2p_ps_offload_cmd(struct ieee80211_hw *hw, u8 p2p_ps_state) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *rtlps = rtl_psc(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_p2p_ps_info *p2pinfo = &(rtlps->p2p_ps_info); + struct p2p_ps_offload_t *p2p_ps_offload = &rtlhal->p2p_ps_offload; + u8 i; + u16 ctwindow; + u32 start_time, tsf_low; + + switch(p2p_ps_state) + { + case P2P_PS_DISABLE: + RT_TRACE(COMP_FW, DBG_LOUD,("P2P_PS_DISABLE \n")); + memset(p2p_ps_offload, 0, 1); + break; + case P2P_PS_ENABLE: + RT_TRACE(COMP_FW, DBG_LOUD,("P2P_PS_ENABLE \n")); + /* update CTWindow value. */ + if( p2pinfo->ctwindow > 0 ) + { + p2p_ps_offload->CTWindow_En = 1; + ctwindow = p2pinfo->ctwindow; + rtl8821ae_set_p2p_ctw_period_cmd(hw, ctwindow); + } + + /* hw only support 2 set of NoA */ + for( i=0 ; inoa_num ; i++) + { + /* To control the register setting for which NOA*/ + rtl_write_byte(rtlpriv, 0x5cf, (i << 4)); + if(i == 0) + p2p_ps_offload->NoA0_En = 1; + else + p2p_ps_offload->NoA1_En = 1; + + /* config P2P NoA Descriptor Register */ + rtl_write_dword(rtlpriv, 0x5E0, p2pinfo->noa_duration[i]); + rtl_write_dword(rtlpriv, 0x5E4, p2pinfo->noa_interval[i]); + + /*Get Current TSF value */ + tsf_low = rtl_read_dword(rtlpriv, REG_TSFTR); + + start_time = p2pinfo->noa_start_time[i]; + if(p2pinfo->noa_count_type[i] != 1) + { + while( start_time <= (tsf_low+(50*1024) ) ) { + start_time += p2pinfo->noa_interval[i]; + if(p2pinfo->noa_count_type[i] != 255) + p2pinfo->noa_count_type[i]--; + } + } + rtl_write_dword(rtlpriv, 0x5E8, start_time); + rtl_write_dword(rtlpriv, 0x5EC, p2pinfo->noa_count_type[i] ); + + } + + if( (p2pinfo->opp_ps == 1) || (p2pinfo->noa_num > 0) ) + { + /* rst p2p circuit */ + rtl_write_byte(rtlpriv, REG_DUAL_TSF_RST, BIT(4)); + + p2p_ps_offload->Offload_En = 1; + + if(P2P_ROLE_GO == rtlpriv->mac80211.p2p) + { + p2p_ps_offload->role= 1; + p2p_ps_offload->AllStaSleep = 0; + } + else + { + p2p_ps_offload->role= 0; + } + + p2p_ps_offload->discovery = 0; + } + break; + case P2P_PS_SCAN: + RT_TRACE(COMP_FW, DBG_LOUD,("P2P_PS_SCAN \n")); + p2p_ps_offload->discovery = 1; + break; + case P2P_PS_SCAN_DONE: + RT_TRACE(COMP_FW, DBG_LOUD,("P2P_PS_SCAN_DONE \n")); + p2p_ps_offload->discovery = 0; + p2pinfo->p2p_ps_state = P2P_PS_ENABLE; + break; + default: + break; + } + + rtl8821ae_fill_h2c_cmd(hw, H2C_8821AE_P2P_PS_OFFLOAD, 1, (u8 *)p2p_ps_offload); + +} + +void rtl8812ae_c2h_ra_report_handler( + struct ieee80211_hw *hw, + u8 *cmd_buf, + u8 cmd_len +) +{ + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 rate = cmd_buf[0] & 0x3F; + + rtlhal->current_ra_rate= rtl8812ae_hw_rate_to_mrate(hw, rate); + + rtl8812ae_dm_update_init_rate(hw, rate); +} + + +void _rtl8812ae_c2h_content_parsing( + struct ieee80211_hw *hw, + u8 c2h_cmd_id, + u8 c2h_cmd_len, + u8 *tmp_buf +) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + switch (c2h_cmd_id) { + case C2H_8812_DBG: + RT_TRACE(COMP_FW, DBG_LOUD,("[C2H], C2H_8812_DBG!!\n")); + break; + + case C2H_8812_RA_RPT: + rtl8812ae_c2h_ra_report_handler(hw, tmp_buf, c2h_cmd_len); + break; + + default: + break; + } + +} + +void rtl8812ae_c2h_packet_handler( + struct ieee80211_hw *hw, + u8 *buffer, + u8 length + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 c2h_cmd_id=0, c2h_cmd_seq=0, c2h_cmd_len=0; + u8 *tmp_buf=NULL; + + c2h_cmd_id = buffer[0]; + c2h_cmd_seq = buffer[1]; + c2h_cmd_len = length -2; + tmp_buf = buffer + 2; + + RT_TRACE(COMP_FW, DBG_LOUD, + ("[C2H packet], c2hCmdId=0x%x, c2hCmdSeq=0x%x, c2hCmdLen=%d\n", + c2h_cmd_id, c2h_cmd_seq, c2h_cmd_len)); + + RT_PRINT_DATA(rtlpriv, COMP_FW, DBG_LOUD, + "[C2H packet], Content Hex:\n", tmp_buf, c2h_cmd_len); + _rtl8812ae_c2h_content_parsing(hw, c2h_cmd_id, c2h_cmd_len, tmp_buf); +} + + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/fw.h +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/fw.h @@ -0,0 +1,321 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8821AE__FW__H__ +#define __RTL8821AE__FW__H__ + +#define FW_8821AE_SIZE 0x8000 +#define FW_8821AE_START_ADDRESS 0x1000 +#define FW_8821AE_END_ADDRESS 0x5FFF +#define FW_8821AE_PAGE_SIZE 4096 +#define FW_8821AE_POLLING_DELAY 5 +#define FW_8821AE_POLLING_TIMEOUT_COUNT 6000 + +#define IS_FW_HEADER_EXIST_8812(_pfwhdr) \ + ((_pfwhdr->signature&0xFFF0) == 0x9500 ) + +#define IS_FW_HEADER_EXIST_8821(_pfwhdr) \ + ((_pfwhdr->signature&0xFFF0) == 0x2100 ) + +#define USE_OLD_WOWLAN_DEBUG_FW 0 + +#define H2C_8821AE_RSVDPAGE_LOC_LEN 5 +#define H2C_8821AE_PWEMODE_LENGTH 5 +#define H2C_8821AE_JOINBSSRPT_LENGTH 1 +#define H2C_8821AE_AP_OFFLOAD_LENGTH 3 +#define H2C_8821AE_WOWLAN_LENGTH 3 +#define H2C_8821AE_KEEP_ALIVE_CTRL_LENGTH 3 +#if(USE_OLD_WOWLAN_DEBUG_FW == 0) +#define H2C_8821AE_REMOTE_WAKE_CTRL_LEN 1 +#else +#define H2C_8821AE_REMOTE_WAKE_CTRL_LEN 3 +#endif +#define H2C_8821AE_AOAC_GLOBAL_INFO_LEN 2 +#define H2C_8821AE_AOAC_RSVDPAGE_LOC_LEN 7 + + +/* Fw PS state for RPWM. +*BIT[2:0] = HW state +*BIT[3] = Protocol PS state, 1: register active state , 0: register sleep state +*BIT[4] = sub-state +*/ +#define FW_PS_GO_ON BIT(0) +#define FW_PS_TX_NULL BIT(1) +#define FW_PS_RF_ON BIT(2) +#define FW_PS_REGISTER_ACTIVE BIT(3) + +#define FW_PS_DPS BIT(0) +#define FW_PS_LCLK (FW_PS_DPS) +#define FW_PS_RF_OFF BIT(1) +#define FW_PS_ALL_ON BIT(2) +#define FW_PS_ST_ACTIVE BIT(3) +#define FW_PS_ISR_ENABLE BIT(4) +#define FW_PS_IMR_ENABLE BIT(5) + + +#define FW_PS_ACK BIT(6) +#define FW_PS_TOGGLE BIT(7) + + /* 8821AE RPWM value*/ + /* BIT[0] = 1: 32k, 0: 40M*/ +#define FW_PS_CLOCK_OFF BIT(0) /* 32k*/ +#define FW_PS_CLOCK_ON 0 /*40M*/ + +#define FW_PS_STATE_MASK (0x0F) +#define FW_PS_STATE_HW_MASK (0x07) +#define FW_PS_STATE_INT_MASK (0x3F) /*ISR_ENABLE, IMR_ENABLE, and PS mode should be inherited.*/ + +#define FW_PS_STATE(x) (FW_PS_STATE_MASK & (x)) +#define FW_PS_STATE_HW(x) (FW_PS_STATE_HW_MASK & (x)) +#define FW_PS_STATE_INT(x) (FW_PS_STATE_INT_MASK & (x)) +#define FW_PS_ISR_VAL(x) ((x) & 0x70) +#define FW_PS_IMR_MASK(x) ((x) & 0xDF) +#define FW_PS_KEEP_IMR(x) ((x) & 0x20) + + +#define FW_PS_STATE_S0 (FW_PS_DPS) +#define FW_PS_STATE_S1 (FW_PS_LCLK) +#define FW_PS_STATE_S2 (FW_PS_RF_OFF) +#define FW_PS_STATE_S3 (FW_PS_ALL_ON) +#define FW_PS_STATE_S4 ((FW_PS_ST_ACTIVE) | (FW_PS_ALL_ON)) + +#define FW_PS_STATE_ALL_ON_8821AE (FW_PS_CLOCK_ON) /* ((FW_PS_RF_ON) | (FW_PS_REGISTER_ACTIVE))*/ +#define FW_PS_STATE_RF_ON_8821AE (FW_PS_CLOCK_ON) /* (FW_PS_RF_ON)*/ +#define FW_PS_STATE_RF_OFF_8821AE (FW_PS_CLOCK_ON) /* 0x0*/ +#define FW_PS_STATE_RF_OFF_LOW_PWR_8821AE (FW_PS_CLOCK_OFF) /* (FW_PS_STATE_RF_OFF)*/ + +#define FW_PS_STATE_ALL_ON_92C (FW_PS_STATE_S4) +#define FW_PS_STATE_RF_ON_92C (FW_PS_STATE_S3) +#define FW_PS_STATE_RF_OFF_92C (FW_PS_STATE_S2) +#define FW_PS_STATE_RF_OFF_LOW_PWR_92C (FW_PS_STATE_S1) + + +/* For 8821AE H2C PwrMode Cmd ID 5.*/ +#define FW_PWR_STATE_ACTIVE ((FW_PS_RF_ON) | (FW_PS_REGISTER_ACTIVE)) +#define FW_PWR_STATE_RF_OFF 0 + +#define FW_PS_IS_ACK(x) ((x) & FW_PS_ACK ) +#define FW_PS_IS_CLK_ON(x) ((x) & (FW_PS_RF_OFF |FW_PS_ALL_ON )) +#define FW_PS_IS_RF_ON(x) ((x) & (FW_PS_ALL_ON)) +#define FW_PS_IS_ACTIVE(x) ((x) & (FW_PS_ST_ACTIVE)) +#define FW_PS_IS_CPWM_INT(x) ((x) & 0x40) + +#define FW_CLR_PS_STATE(x) ((x) = ((x) & (0xF0))) + +#define IS_IN_LOW_POWER_STATE_8821AE(FwPSState) \ + (FW_PS_STATE(FwPSState) == FW_PS_CLOCK_OFF) + +#define FW_PWR_STATE_ACTIVE ((FW_PS_RF_ON) | (FW_PS_REGISTER_ACTIVE)) +#define FW_PWR_STATE_RF_OFF 0 + +struct rtl8821a_firmware_header { + u16 signature; + u8 category; + u8 function; + u16 version; + u8 subversion; + u8 rsvd1; + u8 month; + u8 date; + u8 hour; + u8 minute; + u16 ramcodeSize; + u16 rsvd2; + u32 svnindex; + u32 rsvd3; + u32 rsvd4; + u32 rsvd5; +}; + +enum rtl8812_c2h_evt{ + C2H_8812_DBG = 0, + C2H_8812_LB = 1, + C2H_8812_TXBF = 2, + C2H_8812_TX_REPORT = 3, + C2H_8812_BT_INFO = 9, + C2H_8812_BT_MP = 11, + C2H_8812_RA_RPT=12, + + C2H_8812_FW_SWCHNL = 0x10, + C2H_8812_IQK_FINISH = 0x11, + MAX_8812_C2HEVENT +}; + +enum rtl8821a_h2c_cmd { + H2C_8821AE_RSVDPAGE = 0, + H2C_8821AE_JOINBSSRPT = 1, + H2C_8821AE_SCAN = 2, + H2C_8821AE_KEEP_ALIVE_CTRL = 3, + H2C_8821AE_DISCONNECT_DECISION = 4, +#if(USE_OLD_WOWLAN_DEBUG_FW == 1) + H2C_8821AE_WO_WLAN = 5, +#endif + H2C_8821AE_INIT_OFFLOAD = 6, +#if(USE_OLD_WOWLAN_DEBUG_FW == 1) + H2C_8821AE_REMOTE_WAKE_CTRL = 7, +#endif + H2C_8821AE_AP_OFFLOAD = 8, + H2C_8821AE_BCN_RSVDPAGE = 9, + H2C_8821AE_PROBERSP_RSVDPAGE = 10, + + H2C_8821AE_SETPWRMODE = 0x20, + H2C_8821AE_PS_TUNING_PARA = 0x21, + H2C_8821AE_PS_TUNING_PARA2 = 0x22, + H2C_8821AE_PS_LPS_PARA = 0x23, + H2C_8821AE_P2P_PS_OFFLOAD = 024, + +#if(USE_OLD_WOWLAN_DEBUG_FW == 0) + H2C_8821AE_WO_WLAN = 0x80, + H2C_8821AE_REMOTE_WAKE_CTRL = 0x81, + H2C_8821AE_AOAC_GLOBAL_INFO = 0x82, + H2C_8821AE_AOAC_RSVDPAGE = 0x83, +#endif + H2C_RSSI_REPORT = 0x42, + H2C_8821AE_RA_MASK = 0x40, + H2C_8821AE_SELECTIVE_SUSPEND_ROF_CMD, + H2C_8821AE_P2P_PS_MODE, + H2C_8821AE_PSD_RESULT, + /*Not defined CTW CMD for P2P yet*/ + H2C_8821AE_P2P_PS_CTW_CMD, + MAX_8821AE_H2CCMD +}; + +#define pagenum_128(_len) (u32)(((_len)>>7) + ((_len)&0x7F ? 1:0)) + +#define SET_8821AE_H2CCMD_WOWLAN_FUNC_ENABLE(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 1, __Value) +#define SET_8821AE_H2CCMD_WOWLAN_PATTERN_MATCH_ENABLE(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 1, 1, __Value) +#define SET_8821AE_H2CCMD_WOWLAN_MAGIC_PKT_ENABLE(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 2, 1, __Value) +#define SET_8821AE_H2CCMD_WOWLAN_UNICAST_PKT_ENABLE(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 3, 1, __Value) +#define SET_8821AE_H2CCMD_WOWLAN_ALL_PKT_DROP(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 4, 1, __Value) +#define SET_8821AE_H2CCMD_WOWLAN_GPIO_ACTIVE(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 5, 1, __Value) +#define SET_8821AE_H2CCMD_WOWLAN_REKEY_WAKE_UP(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 6, 1, __Value) +#define SET_8821AE_H2CCMD_WOWLAN_DISCONNECT_WAKE_UP(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 7, 1, __Value) +#define SET_8821AE_H2CCMD_WOWLAN_GPIONUM(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd)+1, 0, 8, __Value) +#define SET_8821AE_H2CCMD_WOWLAN_GPIO_DURATION(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd)+2, 0, 8, __Value) + + +#define SET_H2CCMD_PWRMODE_PARM_MODE(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 0, 8, __val) +#define SET_H2CCMD_PWRMODE_PARM_RLBM(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd)+1, 0, 4, __Value) +#define SET_H2CCMD_PWRMODE_PARM_SMART_PS(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd)+1, 4, 4, __Value) +#define SET_H2CCMD_PWRMODE_PARM_AWAKE_INTERVAL(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd)+2, 0, 8, __Value) +#define SET_H2CCMD_PWRMODE_PARM_ALL_QUEUE_UAPSD(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd)+3, 0, 8, __Value) +#define SET_H2CCMD_PWRMODE_PARM_PWR_STATE(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd)+4, 0, 8, __Value) +#define GET_8821AE_H2CCMD_PWRMODE_PARM_MODE(__pH2CCmd) \ + LE_BITS_TO_1BYTE(__pH2CCmd, 0, 8) + +#define SET_H2CCMD_JOINBSSRPT_PARM_OPMODE(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 0, 8, __val) +#define SET_H2CCMD_RSVDPAGE_LOC_PROBE_RSP(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE(__ph2ccmd, 0, 8, __val) +#define SET_H2CCMD_RSVDPAGE_LOC_PSPOLL(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+1, 0, 8, __val) +#define SET_H2CCMD_RSVDPAGE_LOC_NULL_DATA(__ph2ccmd, __val) \ + SET_BITS_TO_LE_1BYTE((__ph2ccmd)+2, 0, 8, __val) + +/* AP_OFFLOAD */ +#define SET_H2CCMD_AP_OFFLOAD_ON(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 8, __Value) +#define SET_H2CCMD_AP_OFFLOAD_HIDDEN(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd)+1, 0, 8, __Value) +#define SET_H2CCMD_AP_OFFLOAD_DENYANY(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd)+2, 0, 8, __Value) +#define SET_H2CCMD_AP_OFFLOAD_WAKEUP_EVT_RPT(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd)+3, 0, 8, __Value) + +/* Keep Alive Control*/ +#define SET_8821AE_H2CCMD_KEEP_ALIVE_ENABLE(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 1, __Value) +#define SET_8821AE_H2CCMD_KEEP_ALIVE_ACCPEPT_USER_DEFINED(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 1, 1, __Value) +#define SET_8821AE_H2CCMD_KEEP_ALIVE_PERIOD(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd)+1, 0, 8, __Value) + +/*REMOTE_WAKE_CTRL */ +#define SET_8821AE_H2CCMD_REMOTE_WAKE_CTRL_EN(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 1, __Value) +#if(USE_OLD_WOWLAN_DEBUG_FW == 0) +#define SET_8821AE_H2CCMD_REMOTE_WAKE_CTRL_ARP_OFFLOAD_EN(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 1, 1, __Value) +#define SET_8821AE_H2CCMD_REMOTE_WAKE_CTRL_NDP_OFFLOAD_EN(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 2, 1, __Value) +#define SET_8821AE_H2CCMD_REMOTE_WAKE_CTRL_GTK_OFFLOAD_EN(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 3, 1, __Value) +#else +#define SET_8821AE_H2CCMD_REMOTE_WAKE_CTRL_PAIRWISE_ENC_ALG(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd)+1, 0, 8, __Value) +#define SET_8821AE_H2CCMD_REMOTE_WAKE_CTRL_GROUP_ENC_ALG(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd)+2, 0, 8, __Value) +#endif + +/* GTK_OFFLOAD */ +#define SET_8821AE_H2CCMD_AOAC_GLOBAL_INFO_PAIRWISE_ENC_ALG(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE(__pH2CCmd, 0, 8, __Value) +#define SET_8821AE_H2CCMD_AOAC_GLOBAL_INFO_GROUP_ENC_ALG(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd)+1, 0, 8, __Value) + +/* AOAC_RSVDPAGE_LOC */ +#define SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_REMOTE_WAKE_CTRL_INFO(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd), 0, 8, __Value) +#define SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_ARP_RSP(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd)+1, 0, 8, __Value) +#define SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_NEIGHBOR_ADV(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd)+2, 0, 8, __Value) +#define SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_GTK_RSP(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd)+3, 0, 8, __Value) +#define SET_8821AE_H2CCMD_AOAC_RSVDPAGE_LOC_GTK_INFO(__pH2CCmd, __Value) \ + SET_BITS_TO_LE_1BYTE((__pH2CCmd)+4, 0, 8, __Value) + +int rtl8821ae_download_fw(struct ieee80211_hw *hw, + bool buse_wake_on_wlan_fw); +void rtl8821ae_fill_h2c_cmd(struct ieee80211_hw *hw, u8 element_id, + u32 cmd_len, u8 *p_cmdbuffer); +void rtl8821ae_firmware_selfreset(struct ieee80211_hw *hw); +void rtl8821ae_set_fw_pwrmode_cmd(struct ieee80211_hw *hw, u8 mode); +void rtl8821ae_set_fw_joinbss_report_cmd(struct ieee80211_hw *hw, u8 mstatus); +void rtl8821ae_set_fw_ap_off_load_cmd(struct ieee80211_hw *hw, u8 ap_offload_enable); +void rtl8821ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished); +void rtl8812ae_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool b_dl_finished); +void rtl8821ae_set_p2p_ps_offload_cmd(struct ieee80211_hw *hw, u8 p2p_ps_state); +void rtl8812ae_c2h_packet_handler(struct ieee80211_hw *hw, u8 *buffer, u8 length); +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/hal_bt_coexist.c +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/hal_bt_coexist.c @@ -0,0 +1,519 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "hal_bt_coexist.h" +#include "../pci.h" +#include "dm.h" +#include "fw.h" +#include "phy.h" +#include "reg.h" +#include "hal_btc.h" + +static bool bt_operation_on = false; + +void rtl8821ae_dm_bt_reject_ap_aggregated_packet(struct ieee80211_hw *hw, bool b_reject) +{ +#if 0 + struct rtl_priv rtlpriv = rtl_priv(hw); + PRX_TS_RECORD pRxTs = NULL; + + if(b_reject){ + // Do not allow receiving A-MPDU aggregation. + if (rtlpriv->mac80211.vendor == PEER_CISCO) { + if (pHTInfo->bAcceptAddbaReq) { + RTPRINT(FBT, BT_TRACE, ("BT_Disallow AMPDU \n")); + pHTInfo->bAcceptAddbaReq = FALSE; + if(GetTs(Adapter, (PTS_COMMON_INFO*)(&pRxTs), pMgntInfo->Bssid, 0, RX_DIR, FALSE)) + TsInitDelBA(Adapter, (PTS_COMMON_INFO)pRxTs, RX_DIR); + } + } else { + if (!pHTInfo->bAcceptAddbaReq) { + RTPRINT(FBT, BT_TRACE, ("BT_Allow AMPDU BT Idle\n")); + pHTInfo->bAcceptAddbaReq = TRUE; + } + } + } else { + if(rtlpriv->mac80211.vendor == PEER_CISCO) { + if (!pHTInfo->bAcceptAddbaReq) { + RTPRINT(FBT, BT_TRACE, ("BT_Allow AMPDU \n")); + pHTInfo->bAcceptAddbaReq = TRUE; + } + } + } +#endif +} + +void _rtl8821ae_dm_bt_check_wifi_state(struct ieee80211_hw *hw) +{ +struct rtl_priv *rtlpriv = rtl_priv(hw); +struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); +struct rtl_phy *rtlphy = &(rtlpriv->phy); + +if (rtlpriv->link_info.b_busytraffic) { + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_IDLE; + + if(rtlpriv->link_info.b_tx_busy_traffic) { + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_WIFI_UPLINK; + } else { + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_UPLINK; + } + + if(rtlpriv->link_info.b_rx_busy_traffic) { + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_WIFI_DOWNLINK; + } else { + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_DOWNLINK; + } +} else { + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_WIFI_IDLE; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_UPLINK; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_DOWNLINK; +} + +if (rtlpriv->mac80211.mode == WIRELESS_MODE_G + || rtlpriv->mac80211.mode == WIRELESS_MODE_B) { + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_WIFI_LEGACY; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_HT20; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_HT40; +} else { + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_LEGACY; + if(rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) { + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_WIFI_HT40; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_HT20; + } else { + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_WIFI_HT20; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_HT40; + } +} + +if (bt_operation_on) { + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_BT30; +} else { + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_BT30; +} +} + + +u8 rtl8821ae_dm_bt_check_coex_rssi_state1(struct ieee80211_hw *hw, + u8 level_num, u8 rssi_thresh, u8 rssi_thresh1) + +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_priv *rtlpriv = rtl_priv(hw); + long undecoratedsmoothed_pwdb = 0; + u8 bt_rssi_state = 0; + + undecoratedsmoothed_pwdb = rtl8821ae_dm_bt_get_rx_ss(hw); + + if(level_num == 2) { + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_RSSI_1_MEDIUM; + + if( (rtlpcipriv->btcoexist.bt_pre_rssi_state == BT_RSSI_STATE_LOW) || + (rtlpcipriv->btcoexist.bt_pre_rssi_state == BT_RSSI_STATE_STAY_LOW)) { + if(undecoratedsmoothed_pwdb >= (rssi_thresh + BT_FW_COEX_THRESH_TOL)) { + bt_rssi_state = BT_RSSI_STATE_HIGH; + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_WIFI_RSSI_1_HIGH; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_RSSI_1_LOW; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[DM][BT], RSSI_1 state switch to High\n")); + } else { + bt_rssi_state = BT_RSSI_STATE_STAY_LOW; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[DM][BT], RSSI_1 state stay at Low\n")); + } + } else { + if(undecoratedsmoothed_pwdb < rssi_thresh) { + bt_rssi_state = BT_RSSI_STATE_LOW; + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_WIFI_RSSI_1_LOW; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_RSSI_1_HIGH; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[DM][BT], RSSI_1 state switch to Low\n")); + } else { + bt_rssi_state = BT_RSSI_STATE_STAY_HIGH; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[DM][BT], RSSI_1 state stay at High\n")); + } + } + } else if(level_num == 3) { + if(rssi_thresh > rssi_thresh1) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[DM][BT], RSSI_1 thresh error!!\n")); + return rtlpcipriv->btcoexist.bt_pre_rssi_state; + } + + if( (rtlpcipriv->btcoexist.bt_pre_rssi_state == BT_RSSI_STATE_LOW) || + (rtlpcipriv->btcoexist.bt_pre_rssi_state == BT_RSSI_STATE_STAY_LOW)) { + if(undecoratedsmoothed_pwdb >= (rssi_thresh+BT_FW_COEX_THRESH_TOL)) { + bt_rssi_state = BT_RSSI_STATE_MEDIUM; + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_WIFI_RSSI_1_MEDIUM; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_RSSI_1_LOW; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_RSSI_1_HIGH; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[DM][BT], RSSI_1 state switch to Medium\n")); + } else { + bt_rssi_state = BT_RSSI_STATE_STAY_LOW; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[DM][BT], RSSI_1 state stay at Low\n")); + } + } else if( (rtlpcipriv->btcoexist.bt_pre_rssi_state == BT_RSSI_STATE_MEDIUM) || + (rtlpcipriv->btcoexist.bt_pre_rssi_state == BT_RSSI_STATE_STAY_MEDIUM)) { + if(undecoratedsmoothed_pwdb >= (rssi_thresh1 + BT_FW_COEX_THRESH_TOL)) { + bt_rssi_state = BT_RSSI_STATE_HIGH; + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_WIFI_RSSI_1_HIGH; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_RSSI_1_LOW; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_RSSI_1_MEDIUM; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[DM][BT], RSSI_1 state switch to High\n")); + } else if(undecoratedsmoothed_pwdb < rssi_thresh) { + bt_rssi_state = BT_RSSI_STATE_LOW; + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_WIFI_RSSI_1_LOW; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_RSSI_1_HIGH; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_RSSI_1_MEDIUM; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[DM][BT], RSSI_1 state switch to Low\n")); + } else { + bt_rssi_state = BT_RSSI_STATE_STAY_MEDIUM; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[DM][BT], RSSI_1 state stay at Medium\n")); + } + } else { + if(undecoratedsmoothed_pwdb < rssi_thresh1) { + bt_rssi_state = BT_RSSI_STATE_MEDIUM; + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_WIFI_RSSI_1_MEDIUM; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_RSSI_1_HIGH; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_RSSI_1_LOW; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE,("[DM][BT], RSSI_1 state switch to Medium\n")); + } else { + bt_rssi_state = BT_RSSI_STATE_STAY_HIGH; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[DM][BT], RSSI_1 state stay at High\n")); + } + } + } + + rtlpcipriv->btcoexist.bt_pre_rssi_state1 = bt_rssi_state; + + return bt_rssi_state; +} + +u8 rtl8821ae_dm_bt_check_coex_rssi_state(struct ieee80211_hw *hw, + u8 level_num, u8 rssi_thresh, u8 rssi_thresh1) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_priv *rtlpriv = rtl_priv(hw); + long undecoratedsmoothed_pwdb = 0; + u8 bt_rssi_state = 0; + + undecoratedsmoothed_pwdb = rtl8821ae_dm_bt_get_rx_ss(hw); + + if (level_num == 2) { + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_WIFI_RSSI_MEDIUM; + + if ((rtlpcipriv->btcoexist.bt_pre_rssi_state == BT_RSSI_STATE_LOW) || + (rtlpcipriv->btcoexist.bt_pre_rssi_state == BT_RSSI_STATE_STAY_LOW)){ + if (undecoratedsmoothed_pwdb + >= (rssi_thresh + BT_FW_COEX_THRESH_TOL)) { + bt_rssi_state = BT_RSSI_STATE_HIGH; + rtlpcipriv->btcoexist.current_state + |= BT_COEX_STATE_WIFI_RSSI_HIGH; + rtlpcipriv->btcoexist.current_state + &= ~BT_COEX_STATE_WIFI_RSSI_LOW; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[DM][BT], RSSI state switch to High\n")); + } else { + bt_rssi_state = BT_RSSI_STATE_STAY_LOW; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[DM][BT], RSSI state stay at Low\n")); + } + } else { + if (undecoratedsmoothed_pwdb < rssi_thresh) { + bt_rssi_state = BT_RSSI_STATE_LOW; + rtlpcipriv->btcoexist.current_state + |= BT_COEX_STATE_WIFI_RSSI_LOW; + rtlpcipriv->btcoexist.current_state + &= ~BT_COEX_STATE_WIFI_RSSI_HIGH; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[DM][BT], RSSI state switch to Low\n")); + } else { + bt_rssi_state = BT_RSSI_STATE_STAY_HIGH; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[DM][BT], RSSI state stay at High\n")); + } + } + } + else if (level_num == 3) { + if (rssi_thresh > rssi_thresh1) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[DM][BT], RSSI thresh error!!\n")); + return rtlpcipriv->btcoexist.bt_pre_rssi_state; + } + if ((rtlpcipriv->btcoexist.bt_pre_rssi_state == BT_RSSI_STATE_LOW) || + (rtlpcipriv->btcoexist.bt_pre_rssi_state == BT_RSSI_STATE_STAY_LOW)) { + if(undecoratedsmoothed_pwdb + >= (rssi_thresh + BT_FW_COEX_THRESH_TOL)) { + bt_rssi_state = BT_RSSI_STATE_MEDIUM; + rtlpcipriv->btcoexist.current_state + |= BT_COEX_STATE_WIFI_RSSI_MEDIUM; + rtlpcipriv->btcoexist.current_state + &= ~BT_COEX_STATE_WIFI_RSSI_LOW; + rtlpcipriv->btcoexist.current_state + &= ~BT_COEX_STATE_WIFI_RSSI_HIGH; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[DM][BT], RSSI state switch to Medium\n")); + } else { + bt_rssi_state = BT_RSSI_STATE_STAY_LOW; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[DM][BT], RSSI state stay at Low\n")); + } + } else if ((rtlpcipriv->btcoexist.bt_pre_rssi_state == BT_RSSI_STATE_MEDIUM) || + (rtlpcipriv->btcoexist.bt_pre_rssi_state == BT_RSSI_STATE_STAY_MEDIUM)) { + if (undecoratedsmoothed_pwdb + >= (rssi_thresh1 + BT_FW_COEX_THRESH_TOL)) { + bt_rssi_state = BT_RSSI_STATE_HIGH; + rtlpcipriv->btcoexist.current_state + |= BT_COEX_STATE_WIFI_RSSI_HIGH; + rtlpcipriv->btcoexist.current_state + &= ~BT_COEX_STATE_WIFI_RSSI_LOW; + rtlpcipriv->btcoexist.current_state + &= ~BT_COEX_STATE_WIFI_RSSI_MEDIUM; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[DM][BT], RSSI state switch to High\n")); + } else if(undecoratedsmoothed_pwdb < rssi_thresh) + { + bt_rssi_state = BT_RSSI_STATE_LOW; + rtlpcipriv->btcoexist.current_state + |= BT_COEX_STATE_WIFI_RSSI_LOW; + rtlpcipriv->btcoexist.current_state + &= ~BT_COEX_STATE_WIFI_RSSI_HIGH; + rtlpcipriv->btcoexist.current_state + &= ~BT_COEX_STATE_WIFI_RSSI_MEDIUM; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[DM][BT], RSSI state switch to Low\n")); + } else { + bt_rssi_state = BT_RSSI_STATE_STAY_MEDIUM; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[DM][BT], RSSI state stay at Medium\n")); + } + } else { + if(undecoratedsmoothed_pwdb < rssi_thresh1) { + bt_rssi_state = BT_RSSI_STATE_MEDIUM; + rtlpcipriv->btcoexist.current_state + |= BT_COEX_STATE_WIFI_RSSI_MEDIUM; + rtlpcipriv->btcoexist.current_state + &= ~BT_COEX_STATE_WIFI_RSSI_HIGH; + rtlpcipriv->btcoexist.current_state + &= ~BT_COEX_STATE_WIFI_RSSI_LOW; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[DM][BT], RSSI state switch to Medium\n")); + } else { + bt_rssi_state = BT_RSSI_STATE_STAY_HIGH; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[DM][BT], RSSI state stay at High\n")); + } + } + } + + rtlpcipriv->btcoexist.bt_pre_rssi_state = bt_rssi_state; + return bt_rssi_state; +} +long rtl8821ae_dm_bt_get_rx_ss(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + long undecoratedsmoothed_pwdb = 0; + + if (rtlpriv->mac80211.link_state >= MAC80211_LINKED) { + undecoratedsmoothed_pwdb = GET_UNDECORATED_AVERAGE_RSSI(rtlpriv); + } else { + undecoratedsmoothed_pwdb + = rtlpriv->dm.entry_min_undecoratedsmoothed_pwdb; + } + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("rtl8821ae_dm_bt_get_rx_ss() = %ld\n", undecoratedsmoothed_pwdb)); + + return undecoratedsmoothed_pwdb; +} + +void rtl8821ae_dm_bt_balance(struct ieee80211_hw *hw, + bool b_balance_on, u8 ms0, u8 ms1) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 h2c_parameter[3] ={0}; + + if (b_balance_on) { + h2c_parameter[2] = 1; + h2c_parameter[1] = ms1; + h2c_parameter[0] = ms0; + rtlpcipriv->btcoexist.b_fw_coexist_all_off = false; + } else { + h2c_parameter[2] = 0; + h2c_parameter[1] = 0; + h2c_parameter[0] = 0; + } + rtlpcipriv->btcoexist.b_balance_on = b_balance_on; + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[DM][BT], Balance=[%s:%dms:%dms], write 0xc=0x%x\n", + b_balance_on?"ON":"OFF", ms0, ms1, + h2c_parameter[0]<<16 | h2c_parameter[1]<<8 | h2c_parameter[2])); + + rtl8821ae_fill_h2c_cmd(hw, 0xc, 3, h2c_parameter); +} + + +void rtl8821ae_dm_bt_agc_table(struct ieee80211_hw *hw, u8 type) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + + if (type == BT_AGCTABLE_OFF) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BT]AGCTable Off!\n")); + rtl_write_dword(rtlpriv, 0xc78,0x641c0001); + rtl_write_dword(rtlpriv, 0xc78,0x631d0001); + rtl_write_dword(rtlpriv, 0xc78,0x621e0001); + rtl_write_dword(rtlpriv, 0xc78,0x611f0001); + rtl_write_dword(rtlpriv, 0xc78,0x60200001); + + rtl8821ae_phy_set_rf_reg(hw, RF90_PATH_A, + RF_RX_AGC_HP, 0xfffff, 0x32000); + rtl8821ae_phy_set_rf_reg(hw, RF90_PATH_A, + RF_RX_AGC_HP, 0xfffff, 0x71000); + rtl8821ae_phy_set_rf_reg(hw, RF90_PATH_A, + RF_RX_AGC_HP, 0xfffff, 0xb0000); + rtl8821ae_phy_set_rf_reg(hw, RF90_PATH_A, + RF_RX_AGC_HP, 0xfffff, 0xfc000); + rtl8821ae_phy_set_rf_reg(hw, RF90_PATH_A, + RF_RX_G1, 0xfffff, 0x30355); + } else if (type == BT_AGCTABLE_ON) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BT]AGCTable On!\n")); + rtl_write_dword(rtlpriv, 0xc78,0x4e1c0001); + rtl_write_dword(rtlpriv, 0xc78,0x4d1d0001); + rtl_write_dword(rtlpriv, 0xc78,0x4c1e0001); + rtl_write_dword(rtlpriv, 0xc78,0x4b1f0001); + rtl_write_dword(rtlpriv, 0xc78,0x4a200001); + + rtl8821ae_phy_set_rf_reg(hw, RF90_PATH_A, + RF_RX_AGC_HP, 0xfffff, 0xdc000); + rtl8821ae_phy_set_rf_reg(hw, RF90_PATH_A, + RF_RX_AGC_HP, 0xfffff, 0x90000); + rtl8821ae_phy_set_rf_reg(hw, RF90_PATH_A, + RF_RX_AGC_HP, 0xfffff, 0x51000); + rtl8821ae_phy_set_rf_reg(hw, RF90_PATH_A, + RF_RX_AGC_HP, 0xfffff, 0x12000); + rtl8821ae_phy_set_rf_reg(hw, RF90_PATH_A, + RF_RX_G1, 0xfffff, 0x00355); + + rtlpcipriv->btcoexist.b_sw_coexist_all_off = false; + } +} + +void rtl8821ae_dm_bt_bb_back_off_level(struct ieee80211_hw *hw, u8 type) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + + if (type == BT_BB_BACKOFF_OFF) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BT]BBBackOffLevel Off!\n")); + rtl_write_dword(rtlpriv, 0xc04,0x3a05611); + } else if (type == BT_BB_BACKOFF_ON) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BT]BBBackOffLevel On!\n")); + rtl_write_dword(rtlpriv, 0xc04,0x3a07611); + rtlpcipriv->btcoexist.b_sw_coexist_all_off = false; + } +} + +void rtl8821ae_dm_bt_fw_coex_all_off(struct ieee80211_hw *hw) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_priv *rtlpriv = rtl_priv(hw); + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("rtl8821ae_dm_bt_fw_coex_all_off()\n")); + + if(rtlpcipriv->btcoexist.b_fw_coexist_all_off) + return; + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("rtl8821ae_dm_bt_fw_coex_all_off(), real Do\n")); + rtl8821ae_dm_bt_fw_coex_all_off_8723a(hw); + rtlpcipriv->btcoexist.b_fw_coexist_all_off = true; +} + +void rtl8821ae_dm_bt_sw_coex_all_off(struct ieee80211_hw *hw) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_priv *rtlpriv = rtl_priv(hw); + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("rtl8821ae_dm_bt_sw_coex_all_off()\n")); + + if(rtlpcipriv->btcoexist.b_sw_coexist_all_off) + return; + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("rtl8821ae_dm_bt_sw_coex_all_off(), real Do\n")); + rtl8821ae_dm_bt_sw_coex_all_off_8723a(hw); + rtlpcipriv->btcoexist.b_sw_coexist_all_off = true; +} + +void rtl8821ae_dm_bt_hw_coex_all_off(struct ieee80211_hw *hw) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_priv *rtlpriv = rtl_priv(hw); + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("rtl8821ae_dm_bt_hw_coex_all_off()\n")); + + if(rtlpcipriv->btcoexist.b_hw_coexist_all_off) + return; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("rtl8821ae_dm_bt_hw_coex_all_off(), real Do\n")); + + rtl8821ae_dm_bt_hw_coex_all_off_8723a(hw); + + rtlpcipriv->btcoexist.b_hw_coexist_all_off = true; +} + +void rtl8821ae_btdm_coex_all_off(struct ieee80211_hw *hw) +{ + rtl8821ae_dm_bt_fw_coex_all_off(hw); + rtl8821ae_dm_bt_sw_coex_all_off(hw); + rtl8821ae_dm_bt_hw_coex_all_off(hw); +} + +bool rtl8821ae_dm_bt_is_coexist_state_changed(struct ieee80211_hw *hw) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + + if((rtlpcipriv->btcoexist.previous_state + == rtlpcipriv->btcoexist.current_state) + && (rtlpcipriv->btcoexist.previous_state_h + == rtlpcipriv->btcoexist.current_state_h)) + return false; + else + return true; +} + +bool rtl8821ae_dm_bt_is_wifi_up_link(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if (rtlpriv->link_info.b_tx_busy_traffic) + return true; + else + return false; +} + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/hal_bt_coexist.h +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/hal_bt_coexist.h @@ -0,0 +1,169 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8821AE_HAL_BT_COEXIST_H__ +#define __RTL8821AE_HAL_BT_COEXIST_H__ + +#include "../wifi.h" + +/* The reg define is for 8723 */ +#define REG_HIGH_PRIORITY_TXRX 0x770 +#define REG_LOW_PRIORITY_TXRX 0x774 + +#define BT_FW_COEX_THRESH_TOL 6 +#define BT_FW_COEX_THRESH_20 20 +#define BT_FW_COEX_THRESH_23 23 +#define BT_FW_COEX_THRESH_25 25 +#define BT_FW_COEX_THRESH_30 30 +#define BT_FW_COEX_THRESH_35 35 +#define BT_FW_COEX_THRESH_40 40 +#define BT_FW_COEX_THRESH_45 45 +#define BT_FW_COEX_THRESH_47 47 +#define BT_FW_COEX_THRESH_50 50 +#define BT_FW_COEX_THRESH_55 55 + +#define BT_COEX_STATE_BT30 BIT(0) +#define BT_COEX_STATE_WIFI_HT20 BIT(1) +#define BT_COEX_STATE_WIFI_HT40 BIT(2) +#define BT_COEX_STATE_WIFI_LEGACY BIT(3) + +#define BT_COEX_STATE_WIFI_RSSI_LOW BIT(4) +#define BT_COEX_STATE_WIFI_RSSI_MEDIUM BIT(5) +#define BT_COEX_STATE_WIFI_RSSI_HIGH BIT(6) +#define BT_COEX_STATE_DEC_BT_POWER BIT(7) + +#define BT_COEX_STATE_WIFI_IDLE BIT(8) +#define BT_COEX_STATE_WIFI_UPLINK BIT(9) +#define BT_COEX_STATE_WIFI_DOWNLINK BIT(10) + +#define BT_COEX_STATE_BT_INQ_PAGE BIT(11) +#define BT_COEX_STATE_BT_IDLE BIT(12) +#define BT_COEX_STATE_BT_UPLINK BIT(13) +#define BT_COEX_STATE_BT_DOWNLINK BIT(14) + +#define BT_COEX_STATE_HOLD_FOR_BT_OPERATION BIT(15) +#define BT_COEX_STATE_BT_RSSI_LOW BIT(19) + +#define BT_COEX_STATE_PROFILE_HID BIT(20) +#define BT_COEX_STATE_PROFILE_A2DP BIT(21) +#define BT_COEX_STATE_PROFILE_PAN BIT(22) +#define BT_COEX_STATE_PROFILE_SCO BIT(23) + +#define BT_COEX_STATE_WIFI_RSSI_1_LOW BIT(24) +#define BT_COEX_STATE_WIFI_RSSI_1_MEDIUM BIT(25) +#define BT_COEX_STATE_WIFI_RSSI_1_HIGH BIT(26) + +#define BT_COEX_STATE_BTINFO_COMMON BIT(30) +#define BT_COEX_STATE_BTINFO_B_HID_SCOESCO BIT(31) +#define BT_COEX_STATE_BTINFO_B_FTP_A2DP BIT(29) + +#define BT_COEX_STATE_BT_CNT_LEVEL_0 BIT(0) +#define BT_COEX_STATE_BT_CNT_LEVEL_1 BIT(1) +#define BT_COEX_STATE_BT_CNT_LEVEL_2 BIT(2) +#define BT_COEX_STATE_BT_CNT_LEVEL_3 BIT(3) + +#define BT_RSSI_STATE_HIGH 0 +#define BT_RSSI_STATE_MEDIUM 1 +#define BT_RSSI_STATE_LOW 2 +#define BT_RSSI_STATE_STAY_HIGH 3 +#define BT_RSSI_STATE_STAY_MEDIUM 4 +#define BT_RSSI_STATE_STAY_LOW 5 + +#define BT_AGCTABLE_OFF 0 +#define BT_AGCTABLE_ON 1 +#define BT_BB_BACKOFF_OFF 0 +#define BT_BB_BACKOFF_ON 1 +#define BT_FW_NAV_OFF 0 +#define BT_FW_NAV_ON 1 + +#define BT_COEX_MECH_NONE 0 +#define BT_COEX_MECH_SCO 1 +#define BT_COEX_MECH_HID 2 +#define BT_COEX_MECH_A2DP 3 +#define BT_COEX_MECH_PAN 4 +#define BT_COEX_MECH_HID_A2DP 5 +#define BT_COEX_MECH_HID_PAN 6 +#define BT_COEX_MECH_PAN_A2DP 7 +#define BT_COEX_MECH_HID_SCO_ESCO 8 +#define BT_COEX_MECH_FTP_A2DP 9 +#define BT_COEX_MECH_COMMON 10 +#define BT_COEX_MECH_MAX 11 + +#define BT_DBG_PROFILE_NONE 0 +#define BT_DBG_PROFILE_SCO 1 +#define BT_DBG_PROFILE_HID 2 +#define BT_DBG_PROFILE_A2DP 3 +#define BT_DBG_PROFILE_PAN 4 +#define BT_DBG_PROFILE_HID_A2DP 5 +#define BT_DBG_PROFILE_HID_PAN 6 +#define BT_DBG_PROFILE_PAN_A2DP 7 +#define BT_DBG_PROFILE_MAX 9 + +#define BTINFO_B_FTP BIT(7) +#define BTINFO_B_A2DP BIT(6) +#define BTINFO_B_HID BIT(5) +#define BTINFO_B_SCO_BUSY BIT(4) +#define BTINFO_B_ACL_BUSY BIT(3) +#define BTINFO_B_INQ_PAGE BIT(2) +#define BTINFO_B_SCO_ESCO BIT(1) +#define BTINFO_B_CONNECTION BIT(0) + + +void rtl8821ae_btdm_coex_all_off(struct ieee80211_hw *hw); +void rtl8821ae_dm_bt_fw_coex_all_off(struct ieee80211_hw *hw); + +void rtl8821ae_dm_bt_sw_coex_all_off(struct ieee80211_hw *hw); +void rtl8821ae_dm_bt_hw_coex_all_off(struct ieee80211_hw *hw); +long rtl8821ae_dm_bt_get_rx_ss(struct ieee80211_hw *hw); +void rtl8821ae_dm_bt_balance(struct ieee80211_hw *hw, + bool b_balance_on, u8 ms0, u8 ms1); +void rtl8821ae_dm_bt_agc_table(struct ieee80211_hw *hw, u8 tyep); +void rtl8821ae_dm_bt_bb_back_off_level(struct ieee80211_hw *hw, u8 type); +u8 rtl8821ae_dm_bt_check_coex_rssi_state(struct ieee80211_hw *hw, + u8 level_num, u8 rssi_thresh, u8 rssi_thresh1); +u8 rtl8821ae_dm_bt_check_coex_rssi_state1(struct ieee80211_hw *hw, + u8 level_num, u8 rssi_thresh, u8 rssi_thresh1); +void _rtl8821ae_dm_bt_check_wifi_state(struct ieee80211_hw *hw); +void rtl8821ae_dm_bt_reject_ap_aggregated_packet(struct ieee80211_hw *hw, + bool b_reject); + +#if 0 +VOID +BTDM_PWDBMonitor( + PADAPTER Adapter + ); + +BOOLEAN +BTDM_DIGByBTRSSI( + PADAPTER Adapter + ); +#endif +bool rtl8821ae_dm_bt_is_coexist_state_changed(struct ieee80211_hw *hw); +bool rtl8821ae_dm_bt_is_wifi_up_link(struct ieee80211_hw *hw); +#endif + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/hal_btc.c +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/hal_btc.c @@ -0,0 +1,2069 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ +#include "hal_btc.h" +#include "../pci.h" +#include "phy.h" +#include "fw.h" +#include "reg.h" +#include "def.h" +#include "../btcoexist/rtl_btc.h" + +static struct bt_coexist_8821ae hal_coex_8821ae; + +void rtl8821ae_dm_bt_turn_off_bt_coexist_before_enter_lps(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + + if(!rtlpcipriv->btcoexist.bt_coexistence) + return; + + if(ppsc->b_inactiveps) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG,("[BT][DM], Before enter IPS, turn off all Coexist DM\n")); + rtlpcipriv->btcoexist.current_state = 0; + rtlpcipriv->btcoexist.previous_state = 0; + rtlpcipriv->btcoexist.current_state_h = 0; + rtlpcipriv->btcoexist.previous_state_h = 0; + rtl8821ae_btdm_coex_all_off(hw); + } +} + + +enum rt_media_status mgnt_link_status_query(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + enum rt_media_status m_status = RT_MEDIA_DISCONNECT; + + u8 bibss = (mac->opmode == NL80211_IFTYPE_ADHOC) ? 1 : 0; + + if(bibss || rtlpriv->mac80211.link_state >= MAC80211_LINKED) { + m_status = RT_MEDIA_CONNECT; + } + + return m_status; +} + +void rtl_8821ae_bt_wifi_media_status_notify(struct ieee80211_hw *hw, bool mstatus) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 h2c_parameter[3] ={0}; + u8 chnl; + + if(!rtlpcipriv->btcoexist.bt_coexistence) + return; + + if(RT_MEDIA_CONNECT == mstatus) + h2c_parameter[0] = 0x1; // 0: disconnected, 1:connected + else + h2c_parameter[0] = 0x0; + + if(mgnt_link_status_query(hw)) { + chnl = rtlphy->current_channel; + h2c_parameter[1] = chnl; + } + + if(rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40){ + h2c_parameter[2] = 0x30; + } else { + h2c_parameter[2] = 0x20; + } + + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG,("[BTCoex], FW write 0x19=0x%x\n", + h2c_parameter[0]<<16|h2c_parameter[1]<<8|h2c_parameter[2])); + + rtl8821ae_fill_h2c_cmd(hw, 0x19, 3, h2c_parameter); + +} + + +bool rtl8821ae_dm_bt_is_wifi_busy(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + if(rtlpriv->link_info.b_busytraffic || + rtlpriv->link_info.b_rx_busy_traffic || + rtlpriv->link_info.b_tx_busy_traffic) + return true; + else + return false; +} +void rtl8821ae_dm_bt_set_fw_3a(struct ieee80211_hw *hw, + u8 byte1, u8 byte2, u8 byte3, u8 byte4, u8 byte5) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 h2c_parameter[5] ={0}; + h2c_parameter[0] = byte1; + h2c_parameter[1] = byte2; + h2c_parameter[2] = byte3; + h2c_parameter[3] = byte4; + h2c_parameter[4] = byte5; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], FW write 0x3a(4bytes)=0x%x%8x\n", + h2c_parameter[0], h2c_parameter[1]<<24 | h2c_parameter[2]<<16 | h2c_parameter[3]<<8 | h2c_parameter[4])); + rtl8821ae_fill_h2c_cmd(hw, 0x3a, 5, h2c_parameter); +} + +bool rtl8821ae_dm_bt_need_to_dec_bt_pwr(struct ieee80211_hw *hw) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if (mgnt_link_status_query(hw) == RT_MEDIA_CONNECT) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("Need to decrease bt power\n")); + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_DEC_BT_POWER; + return true; + } + + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_DEC_BT_POWER; + return false; +} + + +bool rtl8821ae_dm_bt_is_same_coexist_state(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + + if ((rtlpcipriv->btcoexist.previous_state + == rtlpcipriv->btcoexist.current_state) + &&(rtlpcipriv->btcoexist.previous_state_h + == rtlpcipriv->btcoexist.current_state_h)) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[DM][BT], Coexist state do not chang!!\n")); + return true; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[DM][BT], Coexist state changed!!\n")); + return false; + } +} + +void rtl8821ae_dm_bt_set_coex_table(struct ieee80211_hw *hw, + u32 val_0x6c0, u32 val_0x6c8, u32 val_0x6cc) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("set coex table, set 0x6c0=0x%x\n", val_0x6c0)); + rtl_write_dword(rtlpriv, 0x6c0, val_0x6c0); + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("set coex table, set 0x6c8=0x%x\n", val_0x6c8)); + rtl_write_dword(rtlpriv, 0x6c8, val_0x6c8); + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("set coex table, set 0x6cc=0x%x\n", val_0x6cc)); + rtl_write_byte(rtlpriv, 0x6cc, val_0x6cc); +} + +void rtl8821ae_dm_bt_set_hw_pta_mode(struct ieee80211_hw *hw, bool b_mode) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if (BT_PTA_MODE_ON == b_mode) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("PTA mode on, ")); + /* Enable GPIO 0/1/2/3/8 pins for bt */ + rtl_write_byte(rtlpriv, 0x40, 0x20); + rtlpcipriv->btcoexist.b_hw_coexist_all_off = false; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("PTA mode off\n")); + rtl_write_byte(rtlpriv, 0x40, 0x0); + } +} + +void rtl8821ae_dm_bt_set_sw_rf_rx_lpf_corner(struct ieee80211_hw *hw, u8 type) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if (BT_RF_RX_LPF_CORNER_SHRINK == type) { + /* Shrink RF Rx LPF corner, 0x1e[7:4]=1111 ==> [11:4] by Jenyu */ + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("Shrink RF Rx LPF corner!!\n")); + /* PHY_SetRFReg(Adapter, (RF_RADIO_PATH_E)PathA, 0x1e, 0xf0, 0xf); */ + rtl8821ae_phy_set_rf_reg(hw, RF90_PATH_A, 0x1e, 0xfffff, 0xf0ff7); + rtlpcipriv->btcoexist.b_sw_coexist_all_off = false; + } else if(BT_RF_RX_LPF_CORNER_RESUME == type) { + /*Resume RF Rx LPF corner*/ + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("Resume RF Rx LPF corner!!\n")); + /* PHY_SetRFReg(Adapter, (RF_RADIO_PATH_E)PathA, 0x1e, 0xf0, + * pHalData->btcoexist.BtRfRegOrigin1E); */ + rtl8821ae_phy_set_rf_reg(hw, RF90_PATH_A, 0x1e, 0xfffff, + rtlpcipriv->btcoexist.bt_rfreg_origin_1e); + } +} + +void rtl8821ae_dm_bt_set_sw_penalty_tx_rate_adaptive(struct ieee80211_hw *hw, + u8 ra_type) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + u8 tmp_u1; + + tmp_u1 = rtl_read_byte(rtlpriv, 0x4fd); + tmp_u1 |= BIT(0); + if (BT_TX_RATE_ADAPTIVE_LOW_PENALTY == ra_type) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("Tx rate adaptive, set low penalty!!\n")); + tmp_u1 &= ~BIT(2); + rtlpcipriv->btcoexist.b_sw_coexist_all_off = false; + } else if(BT_TX_RATE_ADAPTIVE_NORMAL == ra_type) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("Tx rate adaptive, set normal!!\n")); + tmp_u1 |= BIT(2); + } + + rtl_write_byte(rtlpriv, 0x4fd, tmp_u1); +} + +void rtl8821ae_dm_bt_btdm_structure_reload(struct ieee80211_hw *hw, + struct btdm_8821ae *p_btdm) +{ + p_btdm->b_all_off = false; + p_btdm->b_agc_table_en = false; + p_btdm->b_adc_back_off_on = false; + p_btdm->b2_ant_hid_en = false; + p_btdm->b_low_penalty_rate_adaptive = false; + p_btdm->b_rf_rx_lpf_shrink = false; + p_btdm->b_reject_aggre_pkt= false; + + p_btdm->b_tdma_on = false; + p_btdm->tdma_ant = TDMA_2ANT; + p_btdm->tdma_nav = TDMA_NAV_OFF; + p_btdm->tdma_dac_swing = TDMA_DAC_SWING_OFF; + p_btdm->fw_dac_swing_lvl = 0x20; + + p_btdm->b_tra_tdma_on = false; + p_btdm->tra_tdma_ant = TDMA_2ANT; + p_btdm->tra_tdma_nav = TDMA_NAV_OFF; + p_btdm->b_ignore_wlan_act = false; + + p_btdm->b_ps_tdma_on = false; + p_btdm->ps_tdma_byte[0] = 0x0; + p_btdm->ps_tdma_byte[1] = 0x0; + p_btdm->ps_tdma_byte[2] = 0x0; + p_btdm->ps_tdma_byte[3] = 0x8; + p_btdm->ps_tdma_byte[4] = 0x0; + + p_btdm->b_pta_on = true; + p_btdm->val_0x6c0 = 0x5a5aaaaa; + p_btdm->val_0x6c8 = 0xcc; + p_btdm->val_0x6cc = 0x3; + + p_btdm->b_sw_dac_swing_on = false; + p_btdm->sw_dac_swing_lvl = 0xc0; + p_btdm->wlan_act_hi = 0x20; + p_btdm->wlan_act_lo = 0x10; + p_btdm->bt_retry_index = 2; + + p_btdm->b_dec_bt_pwr = false; +} + +void rtl8821ae_dm_bt_btdm_structure_reload_all_off(struct ieee80211_hw *hw, + struct btdm_8821ae *p_btdm) +{ + rtl8821ae_dm_bt_btdm_structure_reload(hw, p_btdm); + p_btdm->b_all_off = true; + p_btdm->b_pta_on = false; + p_btdm->wlan_act_hi = 0x10; +} + +bool rtl8821ae_dm_bt_is_2_ant_common_action(struct ieee80211_hw *hw) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct btdm_8821ae btdm8821ae; + bool b_common = false; + + rtl8821ae_dm_bt_btdm_structure_reload(hw, &btdm8821ae); + + if(!rtl8821ae_dm_bt_is_wifi_busy(hw) + && !rtlpcipriv->btcoexist.b_bt_busy) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("Wifi idle + Bt idle, bt coex mechanism always off!!\n")); + rtl8821ae_dm_bt_btdm_structure_reload_all_off(hw, &btdm8821ae); + b_common = true; + } else if (rtl8821ae_dm_bt_is_wifi_busy(hw) + && !rtlpcipriv->btcoexist.b_bt_busy) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("Wifi non-idle + Bt disabled/idle!!\n")); + btdm8821ae.b_low_penalty_rate_adaptive = true; + btdm8821ae.b_rf_rx_lpf_shrink = false; + btdm8821ae.b_reject_aggre_pkt = false; + + /* sw mechanism */ + btdm8821ae.b_agc_table_en = false; + btdm8821ae.b_adc_back_off_on = false; + btdm8821ae.b_sw_dac_swing_on = false; + + btdm8821ae.b_pta_on = true; + btdm8821ae.val_0x6c0 = 0x5a5aaaaa; + btdm8821ae.val_0x6c8 = 0xcccc; + btdm8821ae.val_0x6cc = 0x3; + + btdm8821ae.b_tdma_on = false; + btdm8821ae.tdma_dac_swing = TDMA_DAC_SWING_OFF; + btdm8821ae.b2_ant_hid_en = false; + + b_common = true; + }else if (rtlpcipriv->btcoexist.b_bt_busy) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("Bt non-idle!\n")); + if(mgnt_link_status_query(hw) == RT_MEDIA_CONNECT){ + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("Wifi connection exist\n")) + b_common = false; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("No Wifi connection!\n")); + btdm8821ae.b_rf_rx_lpf_shrink = true; + btdm8821ae.b_low_penalty_rate_adaptive = false; + btdm8821ae.b_reject_aggre_pkt = false; + + /* sw mechanism */ + btdm8821ae.b_agc_table_en = false; + btdm8821ae.b_adc_back_off_on = false; + btdm8821ae.b_sw_dac_swing_on = false; + + btdm8821ae.b_pta_on = true; + btdm8821ae.val_0x6c0 = 0x55555555; + btdm8821ae.val_0x6c8 = 0x0000ffff; + btdm8821ae.val_0x6cc = 0x3; + + btdm8821ae.b_tdma_on = false; + btdm8821ae.tdma_dac_swing = TDMA_DAC_SWING_OFF; + btdm8821ae.b2_ant_hid_en = false; + + b_common = true; + } + } + + if (rtl8821ae_dm_bt_need_to_dec_bt_pwr(hw)) { + btdm8821ae.b_dec_bt_pwr = true; + } + + if(b_common) + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_BTINFO_COMMON; + + if (b_common && rtl8821ae_dm_bt_is_coexist_state_changed(hw)) + rtl8821ae_dm_bt_set_bt_dm(hw, &btdm8821ae); + + return b_common; +} + +void rtl8821ae_dm_bt_set_sw_full_time_dac_swing( + struct ieee80211_hw * hw, bool b_sw_dac_swing_on, u32 sw_dac_swing_lvl) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if (b_sw_dac_swing_on) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], SwDacSwing = 0x%x\n", sw_dac_swing_lvl)); + rtl8821ae_phy_set_bb_reg(hw, 0x880, 0xff000000, sw_dac_swing_lvl); + rtlpcipriv->btcoexist.b_sw_coexist_all_off = false; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], SwDacSwing Off!\n")); + rtl8821ae_phy_set_bb_reg(hw, 0x880, 0xff000000, 0xc0); + } +} + +void rtl8821ae_dm_bt_set_fw_dec_bt_pwr( + struct ieee80211_hw *hw, bool b_dec_bt_pwr) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 h2c_parameter[1] ={0}; + + h2c_parameter[0] = 0; + + if (b_dec_bt_pwr) { + h2c_parameter[0] |= BIT(1); + rtlpcipriv->btcoexist.b_fw_coexist_all_off = false; + } + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], decrease Bt Power : %s, write 0x21=0x%x\n", + (b_dec_bt_pwr? "Yes!!":"No!!"), h2c_parameter[0])); + + rtl8821ae_fill_h2c_cmd(hw, 0x21, 1, h2c_parameter); +} + + +void rtl8821ae_dm_bt_set_fw_2_ant_hid(struct ieee80211_hw *hw, + bool b_enable, bool b_dac_swing_on) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 h2c_parameter[1] ={0}; + + if (b_enable) { + h2c_parameter[0] |= BIT(0); + rtlpcipriv->btcoexist.b_fw_coexist_all_off = false; + } + if (b_dac_swing_on) { + h2c_parameter[0] |= BIT(1); /* Dac Swing default enable */ + } + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], turn 2-Ant+HID mode %s, DACSwing:%s, write 0x15=0x%x\n", + (b_enable ? "ON!!":"OFF!!"), (b_dac_swing_on ? "ON":"OFF"), + h2c_parameter[0])); + + rtl8821ae_fill_h2c_cmd(hw, 0x15, 1, h2c_parameter); +} + +void rtl8821ae_dm_bt_set_fw_tdma_ctrl(struct ieee80211_hw *hw, + bool b_enable, u8 ant_num, u8 nav_en, u8 dac_swing_en) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + u8 h2c_parameter[1] ={0}; + u8 h2c_parameter1[1] = {0}; + + h2c_parameter[0] = 0; + h2c_parameter1[0] = 0; + + if(b_enable) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], set BT PTA update manager to trigger update!!\n")); + h2c_parameter1[0] |= BIT(0); + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], turn TDMA mode ON!!\n")); + h2c_parameter[0] |= BIT(0); /* function enable */ + if (TDMA_1ANT == ant_num) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], TDMA_1ANT\n")); + h2c_parameter[0] |= BIT(1); + } else if(TDMA_2ANT == ant_num) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], TDMA_2ANT\n")); + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], Unknown Ant\n")); + } + + if (TDMA_NAV_OFF == nav_en) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], TDMA_NAV_OFF\n")); + } else if (TDMA_NAV_ON == nav_en) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], TDMA_NAV_ON\n")); + h2c_parameter[0] |= BIT(2); + } + + if (TDMA_DAC_SWING_OFF == dac_swing_en) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], TDMA_DAC_SWING_OFF\n")); + } else if(TDMA_DAC_SWING_ON == dac_swing_en) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], TDMA_DAC_SWING_ON\n")); + h2c_parameter[0] |= BIT(4); + } + rtlpcipriv->btcoexist.b_fw_coexist_all_off = false; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], set BT PTA update manager to no update!!\n")); + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], turn TDMA mode OFF!!\n")); + } + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], FW2AntTDMA, write 0x26=0x%x\n", h2c_parameter1[0])); + rtl8821ae_fill_h2c_cmd(hw, 0x26, 1, h2c_parameter1); + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], FW2AntTDMA, write 0x14=0x%x\n", h2c_parameter[0])); + rtl8821ae_fill_h2c_cmd(hw, 0x14, 1, h2c_parameter); + + if (!b_enable) { + /* delay_ms(2); + * PlatformEFIOWrite1Byte(Adapter, 0x778, 0x1); */ + } +} + + +void rtl8821ae_dm_bt_set_fw_ignore_wlan_act( struct ieee80211_hw *hw, bool b_enable) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + u8 h2c_parameter[1] ={0}; + + if (b_enable) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], BT Ignore Wlan_Act !!\n")); + h2c_parameter[0] |= BIT(0); // function enable + rtlpcipriv->btcoexist.b_fw_coexist_all_off = false; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], BT don't ignore Wlan_Act !!\n")); + } + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], set FW for BT Ignore Wlan_Act, write 0x25=0x%x\n", + h2c_parameter[0])); + + rtl8821ae_fill_h2c_cmd(hw, 0x25, 1, h2c_parameter); +} + + +void rtl8821ae_dm_bt_set_fw_tra_tdma_ctrl(struct ieee80211_hw *hw, + bool b_enable, u8 ant_num, u8 nav_en + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + //struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + + u8 h2c_parameter[2] ={0}; + + + if (b_enable) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], turn TTDMA mode ON!!\n")); + h2c_parameter[0] |= BIT(0); // function enable + if (TDMA_1ANT == ant_num) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], TTDMA_1ANT\n")); + h2c_parameter[0] |= BIT(1); + } else if (TDMA_2ANT == ant_num) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], TTDMA_2ANT\n")); + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], Unknown Ant\n")); + } + + if (TDMA_NAV_OFF == nav_en) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], TTDMA_NAV_OFF\n")); + } else if (TDMA_NAV_ON == nav_en) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], TTDMA_NAV_ON\n")); + h2c_parameter[1] |= BIT(0); + } + + rtlpcipriv->btcoexist.b_fw_coexist_all_off = false; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], turn TTDMA mode OFF!!\n")); + } + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], FW Traditional TDMA, write 0x33=0x%x\n", + h2c_parameter[0] << 8| h2c_parameter[1])); + + rtl8821ae_fill_h2c_cmd(hw, 0x33, 2, h2c_parameter); +} + + +void rtl8821ae_dm_bt_set_fw_dac_swing_level(struct ieee80211_hw *hw, + u8 dac_swing_lvl) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 h2c_parameter[1] ={0}; + h2c_parameter[0] = dac_swing_lvl; + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], Set Dac Swing Level=0x%x\n", dac_swing_lvl)); + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], write 0x29=0x%x\n", h2c_parameter[0])); + + rtl8821ae_fill_h2c_cmd(hw, 0x29, 1, h2c_parameter); +} + +void rtl8821ae_dm_bt_set_fw_bt_hid_info(struct ieee80211_hw *hw, bool b_enable) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 h2c_parameter[1] ={0}; + h2c_parameter[0] = 0; + + if(b_enable){ + h2c_parameter[0] |= BIT(0); + rtlpcipriv->btcoexist.b_fw_coexist_all_off = false; + } + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], Set BT HID information=0x%x\n", b_enable)); + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], write 0x24=0x%x\n", h2c_parameter[0])); + + rtl8821ae_fill_h2c_cmd(hw, 0x24, 1, h2c_parameter); +} + +void rtl8821ae_dm_bt_set_fw_bt_retry_index(struct ieee80211_hw *hw, + u8 retry_index) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 h2c_parameter[1] ={0}; + h2c_parameter[0] = retry_index; + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], Set BT Retry Index=%d\n", retry_index)); + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], write 0x23=0x%x\n", h2c_parameter[0])); + + rtl8821ae_fill_h2c_cmd(hw, 0x23, 1, h2c_parameter); +} + +void rtl8821ae_dm_bt_set_fw_wlan_act(struct ieee80211_hw *hw, + u8 wlan_act_hi, u8 wlan_act_lo) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 h2c_parameter_hi[1] ={0}; + u8 h2c_parameter_lo[1] ={0}; + h2c_parameter_hi[0] = wlan_act_hi; + h2c_parameter_lo[0] = wlan_act_lo; + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], Set WLAN_ACT Hi:Lo=0x%x/0x%x\n", wlan_act_hi, wlan_act_lo)); + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], write 0x22=0x%x\n", h2c_parameter_hi[0])); + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], write 0x11=0x%x\n", h2c_parameter_lo[0])); + + /* WLAN_ACT = High duration, unit:ms */ + rtl8821ae_fill_h2c_cmd(hw, 0x22, 1, h2c_parameter_hi); + /* WLAN_ACT = Low duration, unit:3*625us */ + rtl8821ae_fill_h2c_cmd(hw, 0x11, 1, h2c_parameter_lo); +} + +void rtl8821ae_dm_bt_set_bt_dm(struct ieee80211_hw *hw, struct btdm_8821ae *p_btdm) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct btdm_8821ae *p_btdm_8821ae = &hal_coex_8821ae.btdm; + u8 i; + + bool b_fw_current_inpsmode = false; + bool b_fw_ps_awake = true; + + rtlpriv->cfg->ops->get_hw_reg(hw, HW_VAR_FW_PSMODE_STATUS, + (u8 *) (&b_fw_current_inpsmode)); + rtlpriv->cfg->ops->get_hw_reg(hw, HW_VAR_FWLPS_RF_ON, + (u8 *) (&b_fw_ps_awake)); + + // check new setting is different with the old one, + // if all the same, don't do the setting again. + if (memcmp(p_btdm_8821ae, p_btdm, sizeof(struct btdm_8821ae)) == 0) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], the same coexist setting, return!!\n")); + return; + } else { //save the new coexist setting + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], UPDATE TO NEW COEX SETTING!!\n")); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new bAllOff=0x%x/ 0x%x \n", + p_btdm_8821ae->b_all_off, p_btdm->b_all_off)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new b_agc_table_en=0x%x/ 0x%x \n", + p_btdm_8821ae->b_agc_table_en, p_btdm->b_agc_table_en)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new b_adc_back_off_on=0x%x/ 0x%x \n", + p_btdm_8821ae->b_adc_back_off_on, p_btdm->b_adc_back_off_on)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new b2_ant_hid_en=0x%x/ 0x%x \n", + p_btdm_8821ae->b2_ant_hid_en, p_btdm->b2_ant_hid_en)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new bLowPenaltyRateAdaptive=0x%x/ 0x%x \n", + p_btdm_8821ae->b_low_penalty_rate_adaptive, + p_btdm->b_low_penalty_rate_adaptive)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new bRfRxLpfShrink=0x%x/ 0x%x \n", + p_btdm_8821ae->b_rf_rx_lpf_shrink, p_btdm->b_rf_rx_lpf_shrink)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new bRejectAggrePkt=0x%x/ 0x%x \n", + p_btdm_8821ae->b_reject_aggre_pkt, p_btdm->b_reject_aggre_pkt)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new b_tdma_on=0x%x/ 0x%x \n", + p_btdm_8821ae->b_tdma_on, p_btdm->b_tdma_on)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new tdmaAnt=0x%x/ 0x%x \n", + p_btdm_8821ae->tdma_ant, p_btdm->tdma_ant)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new tdmaNav=0x%x/ 0x%x \n", + p_btdm_8821ae->tdma_nav, p_btdm->tdma_nav)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new tdma_dac_swing=0x%x/ 0x%x \n", + p_btdm_8821ae->tdma_dac_swing, p_btdm->tdma_dac_swing)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new fw_dac_swing_lvl=0x%x/ 0x%x \n", + p_btdm_8821ae->fw_dac_swing_lvl, p_btdm->fw_dac_swing_lvl)); + + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new bTraTdmaOn=0x%x/ 0x%x \n", + p_btdm_8821ae->b_tra_tdma_on, p_btdm->b_tra_tdma_on)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new traTdmaAnt=0x%x/ 0x%x \n", + p_btdm_8821ae->tra_tdma_ant, p_btdm->tra_tdma_ant)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new traTdmaNav=0x%x/ 0x%x \n", + p_btdm_8821ae->tra_tdma_nav, p_btdm->tra_tdma_nav)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new bPsTdmaOn=0x%x/ 0x%x \n", + p_btdm_8821ae->b_ps_tdma_on, p_btdm->b_ps_tdma_on)); + for(i=0; i<5; i++) + { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new psTdmaByte[i]=0x%x/ 0x%x \n", + p_btdm_8821ae->ps_tdma_byte[i], p_btdm->ps_tdma_byte[i])); + } + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new bIgnoreWlanAct=0x%x/ 0x%x \n", + p_btdm_8821ae->b_ignore_wlan_act, p_btdm->b_ignore_wlan_act)); + + + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new bPtaOn=0x%x/ 0x%x \n", + p_btdm_8821ae->b_pta_on, p_btdm->b_pta_on)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new val_0x6c0=0x%x/ 0x%x \n", + p_btdm_8821ae->val_0x6c0, p_btdm->val_0x6c0)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new val_0x6c8=0x%x/ 0x%x \n", + p_btdm_8821ae->val_0x6c8, p_btdm->val_0x6c8)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new val_0x6cc=0x%x/ 0x%x \n", + p_btdm_8821ae->val_0x6cc, p_btdm->val_0x6cc)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new b_sw_dac_swing_on=0x%x/ 0x%x \n", + p_btdm_8821ae->b_sw_dac_swing_on, p_btdm->b_sw_dac_swing_on)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new sw_dac_swing_lvl=0x%x/ 0x%x \n", + p_btdm_8821ae->sw_dac_swing_lvl, p_btdm->sw_dac_swing_lvl)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new wlanActHi=0x%x/ 0x%x \n", + p_btdm_8821ae->wlan_act_hi, p_btdm->wlan_act_hi)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new wlanActLo=0x%x/ 0x%x \n", + p_btdm_8821ae->wlan_act_lo, p_btdm->wlan_act_lo)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], original/new btRetryIndex=0x%x/ 0x%x \n", + p_btdm_8821ae->bt_retry_index, p_btdm->bt_retry_index)); + + memcpy(p_btdm_8821ae, p_btdm, sizeof(struct btdm_8821ae)); + } + /* + * Here we only consider when Bt Operation + * inquiry/paging/pairing is ON + * we only need to turn off TDMA */ + + if (rtlpcipriv->btcoexist.b_hold_for_bt_operation) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], set to ignore wlanAct for BT OP!!\n")); + rtl8821ae_dm_bt_set_fw_ignore_wlan_act(hw, true); + return; + } + + if (p_btdm->b_all_off) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex], disable all coexist mechanism !!\n")); + rtl8821ae_btdm_coex_all_off(hw); + return; + } + + rtl8821ae_dm_bt_reject_ap_aggregated_packet(hw, p_btdm->b_reject_aggre_pkt); + + if(p_btdm->b_low_penalty_rate_adaptive) + rtl8821ae_dm_bt_set_sw_penalty_tx_rate_adaptive(hw, + BT_TX_RATE_ADAPTIVE_LOW_PENALTY); + else + rtl8821ae_dm_bt_set_sw_penalty_tx_rate_adaptive(hw, + BT_TX_RATE_ADAPTIVE_NORMAL); + + if(p_btdm->b_rf_rx_lpf_shrink) + rtl8821ae_dm_bt_set_sw_rf_rx_lpf_corner(hw, BT_RF_RX_LPF_CORNER_SHRINK); + else + rtl8821ae_dm_bt_set_sw_rf_rx_lpf_corner(hw, BT_RF_RX_LPF_CORNER_RESUME); + + if(p_btdm->b_agc_table_en) + rtl8821ae_dm_bt_agc_table(hw, BT_AGCTABLE_ON); + else + rtl8821ae_dm_bt_agc_table(hw, BT_AGCTABLE_OFF); + + if(p_btdm->b_adc_back_off_on) + rtl8821ae_dm_bt_bb_back_off_level(hw, BT_BB_BACKOFF_ON); + else + rtl8821ae_dm_bt_bb_back_off_level(hw, BT_BB_BACKOFF_OFF); + + rtl8821ae_dm_bt_set_fw_bt_retry_index(hw, p_btdm->bt_retry_index); + + rtl8821ae_dm_bt_set_fw_dac_swing_level(hw, p_btdm->fw_dac_swing_lvl); + rtl8821ae_dm_bt_set_fw_wlan_act(hw, p_btdm->wlan_act_hi, p_btdm->wlan_act_lo); + + rtl8821ae_dm_bt_set_coex_table(hw, p_btdm->val_0x6c0, + p_btdm->val_0x6c8, p_btdm->val_0x6cc); + rtl8821ae_dm_bt_set_hw_pta_mode(hw, p_btdm->b_pta_on); + + /* + * Note: There is a constraint between TDMA and 2AntHID + * Only one of 2AntHid and tdma can be turn on + * We should turn off those mechanisms should be turned off first + * and then turn on those mechanisms should be turned on. + */ +#if 1 + if(p_btdm->b2_ant_hid_en) { + // turn off tdma + rtl8821ae_dm_bt_set_fw_tra_tdma_ctrl(hw, p_btdm->b_tra_tdma_on, + p_btdm->tra_tdma_ant, p_btdm->tra_tdma_nav); + rtl8821ae_dm_bt_set_fw_tdma_ctrl(hw, false, p_btdm->tdma_ant, + p_btdm->tdma_nav, p_btdm->tdma_dac_swing); + + // turn off Pstdma + rtl8821ae_dm_bt_set_fw_ignore_wlan_act(hw, p_btdm->b_ignore_wlan_act); + rtl8821ae_dm_bt_set_fw_3a(hw, 0x0, 0x0, 0x0, 0x8, 0x0); // Antenna control by PTA, 0x870 = 0x300. + + // turn on 2AntHid + rtl8821ae_dm_bt_set_fw_bt_hid_info(hw, true); + rtl8821ae_dm_bt_set_fw_2_ant_hid(hw, true, true); + } else if(p_btdm->b_tdma_on) { + // turn off 2AntHid + rtl8821ae_dm_bt_set_fw_bt_hid_info(hw, false); + rtl8821ae_dm_bt_set_fw_2_ant_hid(hw, false, false); + + // turn off pstdma + rtl8821ae_dm_bt_set_fw_ignore_wlan_act(hw, p_btdm->b_ignore_wlan_act); + rtl8821ae_dm_bt_set_fw_3a(hw, 0x0, 0x0, 0x0, 0x8, 0x0); // Antenna control by PTA, 0x870 = 0x300. + + // turn on tdma + rtl8821ae_dm_bt_set_fw_tra_tdma_ctrl(hw, p_btdm->b_tra_tdma_on, p_btdm->tra_tdma_ant, p_btdm->tra_tdma_nav); + rtl8821ae_dm_bt_set_fw_tdma_ctrl(hw, true, p_btdm->tdma_ant, p_btdm->tdma_nav, p_btdm->tdma_dac_swing); + } else if(p_btdm->b_ps_tdma_on) { + // turn off 2AntHid + rtl8821ae_dm_bt_set_fw_bt_hid_info(hw, false); + rtl8821ae_dm_bt_set_fw_2_ant_hid(hw, false, false); + + // turn off tdma + rtl8821ae_dm_bt_set_fw_tra_tdma_ctrl(hw, p_btdm->b_tra_tdma_on, p_btdm->tra_tdma_ant, p_btdm->tra_tdma_nav); + rtl8821ae_dm_bt_set_fw_tdma_ctrl(hw, false, p_btdm->tdma_ant, p_btdm->tdma_nav, p_btdm->tdma_dac_swing); + + // turn on pstdma + rtl8821ae_dm_bt_set_fw_ignore_wlan_act(hw, p_btdm->b_ignore_wlan_act); + rtl8821ae_dm_bt_set_fw_3a(hw, + p_btdm->ps_tdma_byte[0], + p_btdm->ps_tdma_byte[1], + p_btdm->ps_tdma_byte[2], + p_btdm->ps_tdma_byte[3], + p_btdm->ps_tdma_byte[4]); + } else { + // turn off 2AntHid + rtl8821ae_dm_bt_set_fw_bt_hid_info(hw, false); + rtl8821ae_dm_bt_set_fw_2_ant_hid(hw, false, false); + + // turn off tdma + rtl8821ae_dm_bt_set_fw_tra_tdma_ctrl(hw, p_btdm->b_tra_tdma_on, p_btdm->tra_tdma_ant, p_btdm->tra_tdma_nav); + rtl8821ae_dm_bt_set_fw_tdma_ctrl(hw, false, p_btdm->tdma_ant, p_btdm->tdma_nav, p_btdm->tdma_dac_swing); + + // turn off pstdma + rtl8821ae_dm_bt_set_fw_ignore_wlan_act(hw, p_btdm->b_ignore_wlan_act); + rtl8821ae_dm_bt_set_fw_3a(hw, 0x0, 0x0, 0x0, 0x8, 0x0); // Antenna control by PTA, 0x870 = 0x300. + } +#else + if (p_btdm->b_tdma_on) { + if(p_btdm->b_ps_tdma_on) { + } else { + rtl8821ae_dm_bt_set_fw_3a(hw, 0x0, 0x0, 0x0, 0x8, 0x0); + } + /* Turn off 2AntHID first then turn tdma ON */ + rtl8821ae_dm_bt_set_fw_bt_hid_info(hw, false); + rtl8821ae_dm_bt_set_fw_2_ant_hid(hw, false, false); + rtl8821ae_dm_bt_set_fw_tra_tdma_ctrl(hw, p_btdm->b_tra_tdma_on, p_btdm->tra_tdma_ant, p_btdm->tra_tdma_nav); + rtl8821ae_dm_bt_set_fw_tdma_ctrl(hw, true, + p_btdm->tdma_ant, p_btdm->tdma_nav, p_btdm->tdma_dac_swing); + } else { + /* Turn off tdma first then turn 2AntHID ON if need */ + rtl8821ae_dm_bt_set_fw_tra_tdma_ctrl(hw, p_btdm->b_tra_tdma_on, p_btdm->tra_tdma_ant, p_btdm->tra_tdma_nav); + rtl8821ae_dm_bt_set_fw_tdma_ctrl(hw, false, p_btdm->tdma_ant, + p_btdm->tdma_nav, p_btdm->tdma_dac_swing); + if (p_btdm->b2_ant_hid_en) { + rtl8821ae_dm_bt_set_fw_bt_hid_info(hw, true); + rtl8821ae_dm_bt_set_fw_2_ant_hid(hw, true, true); + } else { + rtl8821ae_dm_bt_set_fw_bt_hid_info(hw, false); + rtl8821ae_dm_bt_set_fw_2_ant_hid(hw, false, false); + } + if(p_btdm->b_ps_tdma_on) { + rtl8821ae_dm_bt_set_fw_3a(hw, p_btdm->ps_tdma_byte[0], p_btdm->ps_tdma_byte[1], + p_btdm->ps_tdma_byte[2], p_btdm->ps_tdma_byte[3], p_btdm->ps_tdma_byte[4]); + } else { + rtl8821ae_dm_bt_set_fw_3a(hw, 0x0, 0x0, 0x0, 0x8, 0x0); + } + } +#endif + + /* + * Note: + * We should add delay for making sure sw DacSwing can be set sucessfully. + * because of that rtl8821ae_dm_bt_set_fw_2_ant_hid() and rtl8821ae_dm_bt_set_fw_tdma_ctrl() + * will overwrite the reg 0x880. + */ + mdelay(30); + rtl8821ae_dm_bt_set_sw_full_time_dac_swing(hw, + p_btdm->b_sw_dac_swing_on, p_btdm->sw_dac_swing_lvl); + rtl8821ae_dm_bt_set_fw_dec_bt_pwr(hw, p_btdm->b_dec_bt_pwr); +} + +void rtl8821ae_dm_bt_bt_state_update_2_ant_hid(struct ieee80211_hw *hw) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_priv *rtlpriv = rtl_priv(hw); + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], HID busy!!\n")); + rtlpcipriv->btcoexist.b_bt_busy = true; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_BT_IDLE; +} + +void rtl8821ae_dm_bt_bt_state_update_2_ant_pan(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + bool b_idle = false; + + if (hal_coex_8821ae.low_priority_tx >= + hal_coex_8821ae.low_priority_rx) { + if((hal_coex_8821ae.low_priority_tx/ + hal_coex_8821ae.low_priority_rx) > 10) { + b_idle = true; + } + } else { + if((hal_coex_8821ae.low_priority_rx/ + hal_coex_8821ae.low_priority_tx) > 10) { + b_idle = true; + } + } + + if(!b_idle) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], PAN busy!!\n")); + rtlpcipriv->btcoexist.b_bt_busy = true; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_BT_IDLE; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], PAN idle!!\n")); + } +} + +void rtl8821ae_dm_bt_2_ant_sco_action(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct btdm_8821ae btdm8821ae; + u8 bt_rssi_state; + + rtl8821ae_dm_bt_btdm_structure_reload(hw, &btdm8821ae); + btdm8821ae.b_rf_rx_lpf_shrink = true; + btdm8821ae.b_low_penalty_rate_adaptive = true; + btdm8821ae.b_reject_aggre_pkt = false; + + if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("HT40\n")); + /* coex table */ + btdm8821ae.val_0x6c0 = 0x5a5aaaaa; + btdm8821ae.val_0x6c8 = 0xcc; + btdm8821ae.val_0x6cc = 0x3; + /* sw mechanism */ + btdm8821ae.b_agc_table_en = false; + btdm8821ae.b_adc_back_off_on = true; + btdm8821ae.b_sw_dac_swing_on = false; + /* fw mechanism */ + btdm8821ae.b_tdma_on = false; + btdm8821ae.tdma_dac_swing = TDMA_DAC_SWING_OFF; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("HT20 or Legacy\n")); + bt_rssi_state + = rtl8821ae_dm_bt_check_coex_rssi_state(hw, 2, BT_FW_COEX_THRESH_47, 0); + + /* coex table */ + btdm8821ae.val_0x6c0 = 0x5a5aaaaa; + btdm8821ae.val_0x6c8 = 0xcc; + btdm8821ae.val_0x6cc = 0x3; + /* sw mechanism */ + if ((bt_rssi_state == BT_RSSI_STATE_HIGH) || + (bt_rssi_state == BT_RSSI_STATE_STAY_HIGH) ) { + btdm8821ae.b_agc_table_en = true; + btdm8821ae.b_adc_back_off_on = true; + btdm8821ae.b_sw_dac_swing_on = false; + } else { + btdm8821ae.b_agc_table_en = false; + btdm8821ae.b_adc_back_off_on = false; + btdm8821ae.b_sw_dac_swing_on = false; + } + /* fw mechanism */ + btdm8821ae.b_tdma_on = false; + btdm8821ae.tdma_dac_swing = TDMA_DAC_SWING_OFF; + } + + if (rtl8821ae_dm_bt_need_to_dec_bt_pwr(hw)) { + btdm8821ae.b_dec_bt_pwr = true; + } + + if(rtl8821ae_dm_bt_is_coexist_state_changed(hw)) + rtl8821ae_dm_bt_set_bt_dm(hw, &btdm8821ae); +} + +void rtl8821ae_dm_bt_2_ant_hid_action(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct btdm_8821ae btdm8821ae; + u8 bt_rssi_state; + + rtl8821ae_dm_bt_btdm_structure_reload(hw, &btdm8821ae); + + btdm8821ae.b_rf_rx_lpf_shrink = true; + btdm8821ae.b_low_penalty_rate_adaptive = true; + btdm8821ae.b_reject_aggre_pkt = false; + + // coex table + btdm8821ae.val_0x6c0 = 0x55555555; + btdm8821ae.val_0x6c8 = 0xffff; + btdm8821ae.val_0x6cc = 0x3; + btdm8821ae.b_ignore_wlan_act = true; + + if(rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("HT40\n")); + // sw mechanism + btdm8821ae.b_agc_table_en = false; + btdm8821ae.b_adc_back_off_on = false; + btdm8821ae.b_sw_dac_swing_on = false; + + // fw mechanism + btdm8821ae.b_ps_tdma_on = true; + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0xf; + btdm8821ae.ps_tdma_byte[2] = 0xf; + btdm8821ae.ps_tdma_byte[3] = 0x0; + btdm8821ae.ps_tdma_byte[4] = 0x80; + + btdm8821ae.b_tra_tdma_on = false; + btdm8821ae.b_tdma_on = false; + btdm8821ae.tdma_dac_swing = TDMA_DAC_SWING_OFF; + btdm8821ae.b2_ant_hid_en = false; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("HT20 or Legacy\n")); + bt_rssi_state = + rtl8821ae_dm_bt_check_coex_rssi_state(hw, 2, 47, 0); + + if( (bt_rssi_state == BT_RSSI_STATE_HIGH) || + (bt_rssi_state == BT_RSSI_STATE_STAY_HIGH) ) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("Wifi rssi high \n")); + // sw mechanism + btdm8821ae.b_agc_table_en = false; + btdm8821ae.b_adc_back_off_on = false; + btdm8821ae.b_sw_dac_swing_on = true; + btdm8821ae.sw_dac_swing_lvl = 0x20; + + // fw mechanism + btdm8821ae.b_ps_tdma_on = false; + btdm8821ae.b_tdma_on = false; + btdm8821ae.tdma_dac_swing = TDMA_DAC_SWING_OFF; + btdm8821ae.b2_ant_hid_en = false; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("Wifi rssi low \n")); + // sw mechanism + btdm8821ae.b_agc_table_en = false; + btdm8821ae.b_adc_back_off_on = false; + btdm8821ae.b_sw_dac_swing_on = false; + + // fw mechanism + btdm8821ae.b_ps_tdma_on = false; + btdm8821ae.b_tdma_on = false; + btdm8821ae.tdma_dac_swing = TDMA_DAC_SWING_OFF; + btdm8821ae.b2_ant_hid_en = true; + btdm8821ae.fw_dac_swing_lvl = 0x20; + } + } + + if (rtl8821ae_dm_bt_need_to_dec_bt_pwr(hw)) { + btdm8821ae.b_dec_bt_pwr = true; + } + + if (rtl8821ae_dm_bt_is_coexist_state_changed(hw)) { + rtl8821ae_dm_bt_set_bt_dm(hw, &btdm8821ae); + } +} + + +void rtl8821ae_dm_bt_2_ant_2_dp_action_no_profile(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct btdm_8821ae btdm8821ae; + u8 bt_rssi_state; + + rtl8821ae_dm_bt_btdm_structure_reload(hw, &btdm8821ae); + + btdm8821ae.b_rf_rx_lpf_shrink = true; + btdm8821ae.b_low_penalty_rate_adaptive = true; + btdm8821ae.b_reject_aggre_pkt = false; + + if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("HT40\n")); + if (rtl8821ae_dm_bt_is_wifi_up_link(hw)) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("Wifi Uplink\n")); + /* coex table */ + btdm8821ae.val_0x6c0 = 0x5a5a5a5a; + btdm8821ae.val_0x6c8 = 0xcccc; + btdm8821ae.val_0x6cc = 0x3; + // sw mechanism + btdm8821ae.b_agc_table_en = false; + btdm8821ae.b_adc_back_off_on = true; + btdm8821ae.b_sw_dac_swing_on = false; + // fw mechanism + btdm8821ae.b_tra_tdma_on = true; + btdm8821ae.b_tdma_on = true; + btdm8821ae.tdma_dac_swing = TDMA_DAC_SWING_ON; + btdm8821ae.b2_ant_hid_en = false; + //btSpec = BTHCI_GetBTCoreSpecByProf(Adapter, BT_PROFILE_A2DP); + //if(btSpec >= BT_SPEC_2_1_EDR) + { + btdm8821ae.wlan_act_hi = 0x10; + btdm8821ae.wlan_act_lo = 0x10; + } + //else + //{ + //btdm8821ae.wlanActHi = 0x20; + //btdm8821ae.wlanActLo = 0x20; + //} + btdm8821ae.bt_retry_index = 2; + btdm8821ae.fw_dac_swing_lvl = 0x18; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("Wifi Downlink\n")); + // coex table + btdm8821ae.val_0x6c0 = 0x5a5a5a5a; + btdm8821ae.val_0x6c8 = 0xcc; + btdm8821ae.val_0x6cc = 0x3; + // sw mechanism + btdm8821ae.b_agc_table_en = false; + btdm8821ae.b_adc_back_off_on = true; + btdm8821ae.b_sw_dac_swing_on = false; + // fw mechanism + btdm8821ae.b_tra_tdma_on = true; + btdm8821ae.b_tdma_on = true; + btdm8821ae.tdma_dac_swing = TDMA_DAC_SWING_ON; + btdm8821ae.b2_ant_hid_en = false; + //btSpec = BTHCI_GetBTCoreSpecByProf(Adapter, BT_PROFILE_A2DP); + //if(btSpec >= BT_SPEC_2_1_EDR) + { + btdm8821ae.wlan_act_hi = 0x10; + btdm8821ae.wlan_act_lo = 0x10; + } + //else + //{ + // btdm8821ae.wlanActHi = 0x20; + // btdm8821ae.wlanActLo = 0x20; + //} + btdm8821ae.bt_retry_index = 2; + btdm8821ae.fw_dac_swing_lvl = 0x40; + } + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("HT20 or Legacy\n")); + bt_rssi_state = rtl8821ae_dm_bt_check_coex_rssi_state(hw, 2, BT_FW_COEX_THRESH_47, 0); + + if(rtl8821ae_dm_bt_is_wifi_up_link(hw)) + { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("Wifi Uplink\n")); + // coex table + btdm8821ae.val_0x6c0 = 0x5a5a5a5a; + btdm8821ae.val_0x6c8 = 0xcccc; + btdm8821ae.val_0x6cc = 0x3; + // sw mechanism + if( (bt_rssi_state == BT_RSSI_STATE_HIGH) || + (bt_rssi_state == BT_RSSI_STATE_STAY_HIGH) ) + { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("Wifi rssi high \n")); + btdm8821ae.b_agc_table_en = true; + btdm8821ae.b_adc_back_off_on = true; + btdm8821ae.b_sw_dac_swing_on = false; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("Wifi rssi low \n")); + btdm8821ae.b_agc_table_en = false; + btdm8821ae.b_adc_back_off_on = false; + btdm8821ae.b_sw_dac_swing_on = false; + } + // fw mechanism + btdm8821ae.b_tra_tdma_on = true; + btdm8821ae.b_tdma_on = true; + btdm8821ae.tdma_dac_swing = TDMA_DAC_SWING_ON; + btdm8821ae.b2_ant_hid_en = false; + //btSpec = BTHCI_GetBTCoreSpecByProf(Adapter, BT_PROFILE_A2DP); + //if(btSpec >= BT_SPEC_2_1_EDR) + { + btdm8821ae.wlan_act_hi = 0x10; + btdm8821ae.wlan_act_lo = 0x10; + } + //else + //{ + //btdm8821ae.wlanActHi = 0x20; + //btdm8821ae.wlanActLo = 0x20; + //} + btdm8821ae.bt_retry_index = 2; + btdm8821ae.fw_dac_swing_lvl = 0x18; + } + else + { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("Wifi Downlink\n")); + // coex table + btdm8821ae.val_0x6c0 = 0x5a5a5a5a; + btdm8821ae.val_0x6c8 = 0xcc; + btdm8821ae.val_0x6cc = 0x3; + // sw mechanism + if( (bt_rssi_state == BT_RSSI_STATE_HIGH) || + (bt_rssi_state == BT_RSSI_STATE_STAY_HIGH) ) + { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("Wifi rssi high \n")); + btdm8821ae.b_agc_table_en = true; + btdm8821ae.b_adc_back_off_on = true; + btdm8821ae.b_sw_dac_swing_on = false; + } + else + { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("Wifi rssi low \n")); + btdm8821ae.b_agc_table_en = false; + btdm8821ae.b_adc_back_off_on = false; + btdm8821ae.b_sw_dac_swing_on = false; + } + // fw mechanism + btdm8821ae.b_tra_tdma_on = true; + btdm8821ae.b_tdma_on = true; + btdm8821ae.tdma_dac_swing = TDMA_DAC_SWING_ON; + btdm8821ae.b2_ant_hid_en = false; + //btSpec = BTHCI_GetBTCoreSpecByProf(Adapter, BT_PROFILE_A2DP); + //if(btSpec >= BT_SPEC_2_1_EDR) + { + btdm8821ae.wlan_act_hi = 0x10; + btdm8821ae.wlan_act_lo = 0x10; + } + //else + //{ + //btdm8821ae.wlanActHi = 0x20; + //btdm8821ae.wlanActLo = 0x20; + //} + btdm8821ae.bt_retry_index = 2; + btdm8821ae.fw_dac_swing_lvl = 0x40; + } + } + + if (rtl8821ae_dm_bt_need_to_dec_bt_pwr(hw)) { + btdm8821ae.b_dec_bt_pwr = true; + } + + if (rtl8821ae_dm_bt_is_coexist_state_changed(hw)) { + rtl8821ae_dm_bt_set_bt_dm(hw, &btdm8821ae); + } +} + + +//============================================================ +// extern function start with BTDM_ +//============================================================ +u32 rtl8821ae_dm_bt_tx_rx_couter_h(struct ieee80211_hw *hw) +{ + u32 counters=0; + + counters = hal_coex_8821ae.high_priority_tx + hal_coex_8821ae.high_priority_rx ; + return counters; +} + +u32 rtl8821ae_dm_bt_tx_rx_couter_l(struct ieee80211_hw *hw) +{ + u32 counters=0; + + counters = hal_coex_8821ae.low_priority_tx + hal_coex_8821ae.low_priority_rx ; + return counters; +} + +u8 rtl8821ae_dm_bt_bt_tx_rx_counter_level(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + u32 bt_tx_rx_cnt = 0; + u8 bt_tx_rx_cnt_lvl = 0; + + bt_tx_rx_cnt = rtl8821ae_dm_bt_tx_rx_couter_h(hw) + + rtl8821ae_dm_bt_tx_rx_couter_l(hw); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], BT TxRx Counters = %d\n", bt_tx_rx_cnt)); + + rtlpcipriv->btcoexist.current_state_h &= ~\ + (BT_COEX_STATE_BT_CNT_LEVEL_0 | BT_COEX_STATE_BT_CNT_LEVEL_1| + BT_COEX_STATE_BT_CNT_LEVEL_2); + + if (bt_tx_rx_cnt >= BT_TXRX_CNT_THRES_3) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], BT TxRx Counters at level 3\n")); + bt_tx_rx_cnt_lvl = BT_TXRX_CNT_LEVEL_3; + rtlpcipriv->btcoexist.current_state_h |= BT_COEX_STATE_BT_CNT_LEVEL_3; + } else if(bt_tx_rx_cnt >= BT_TXRX_CNT_THRES_2) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], BT TxRx Counters at level 2\n")); + bt_tx_rx_cnt_lvl = BT_TXRX_CNT_LEVEL_2; + rtlpcipriv->btcoexist.current_state_h |= BT_COEX_STATE_BT_CNT_LEVEL_2; + } else if(bt_tx_rx_cnt >= BT_TXRX_CNT_THRES_1) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], BT TxRx Counters at level 1\n")); + bt_tx_rx_cnt_lvl = BT_TXRX_CNT_LEVEL_1; + rtlpcipriv->btcoexist.current_state_h |= BT_COEX_STATE_BT_CNT_LEVEL_1; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], BT TxRx Counters at level 0\n")); + bt_tx_rx_cnt_lvl = BT_TXRX_CNT_LEVEL_0; + rtlpcipriv->btcoexist.current_state_h |= BT_COEX_STATE_BT_CNT_LEVEL_0; + } + return bt_tx_rx_cnt_lvl; +} + + +void rtl8821ae_dm_bt_2_ant_hid_sco_esco(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct btdm_8821ae btdm8821ae; + + u8 bt_rssi_state, bt_rssi_state1; + u8 bt_tx_rx_cnt_lvl = 0; + + rtl8821ae_dm_bt_btdm_structure_reload(hw, &btdm8821ae); + + + btdm8821ae.b_rf_rx_lpf_shrink = true; + btdm8821ae.b_low_penalty_rate_adaptive = true; + btdm8821ae.b_reject_aggre_pkt = false; + + bt_tx_rx_cnt_lvl = rtl8821ae_dm_bt_bt_tx_rx_counter_level(hw); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters = %d\n", bt_tx_rx_cnt_lvl)); + + if(rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) + { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("HT40\n")); + // coex table + btdm8821ae.val_0x6c0 = 0x55555555; + btdm8821ae.val_0x6c8 = 0xffff; + btdm8821ae.val_0x6cc = 0x3; + + // sw mechanism + btdm8821ae.b_agc_table_en = false; + btdm8821ae.b_adc_back_off_on = false; + btdm8821ae.b_sw_dac_swing_on = false; + + // fw mechanism + btdm8821ae.b_ps_tdma_on = true; + if (bt_tx_rx_cnt_lvl == BT_TXRX_CNT_LEVEL_2) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters >= 1400\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0x5; + btdm8821ae.ps_tdma_byte[2] = 0x5; + btdm8821ae.ps_tdma_byte[3] = 0x2; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } else if(bt_tx_rx_cnt_lvl == BT_TXRX_CNT_LEVEL_1) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters >= 1200 && < 1400\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0xa; + btdm8821ae.ps_tdma_byte[2] = 0xa; + btdm8821ae.ps_tdma_byte[3] = 0x2; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters < 1200\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0xf; + btdm8821ae.ps_tdma_byte[2] = 0xf; + btdm8821ae.ps_tdma_byte[3] = 0x2; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("HT20 or Legacy\n")); + bt_rssi_state = rtl8821ae_dm_bt_check_coex_rssi_state(hw, 2, 47, 0); + bt_rssi_state1 = rtl8821ae_dm_bt_check_coex_rssi_state1(hw, 2, 27, 0); + + // coex table + btdm8821ae.val_0x6c0 = 0x55555555; + btdm8821ae.val_0x6c8 = 0xffff; + btdm8821ae.val_0x6cc = 0x3; + + // sw mechanism + if( (bt_rssi_state == BT_RSSI_STATE_HIGH) || + (bt_rssi_state == BT_RSSI_STATE_STAY_HIGH) ) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("Wifi rssi high \n")); + btdm8821ae.b_agc_table_en = true; + btdm8821ae.b_adc_back_off_on = true; + btdm8821ae.b_sw_dac_swing_on = false; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("Wifi rssi low \n")); + btdm8821ae.b_agc_table_en = false; + btdm8821ae.b_adc_back_off_on = false; + btdm8821ae.b_sw_dac_swing_on = false; + } + + // fw mechanism + btdm8821ae.b_ps_tdma_on = true; + if( (bt_rssi_state1 == BT_RSSI_STATE_HIGH) || + (bt_rssi_state1 == BT_RSSI_STATE_STAY_HIGH) ) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG,("Wifi rssi-1 high \n")); + // only rssi high we need to do this, + // when rssi low, the value will modified by fw + rtl_write_byte(rtlpriv, 0x883, 0x40); + if(bt_tx_rx_cnt_lvl == BT_TXRX_CNT_LEVEL_2) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters >= 1400\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0x5; + btdm8821ae.ps_tdma_byte[2] = 0x5; + btdm8821ae.ps_tdma_byte[3] = 0x83; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } else if(bt_tx_rx_cnt_lvl == BT_TXRX_CNT_LEVEL_1) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters >= 1200 && < 1400\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0xa; + btdm8821ae.ps_tdma_byte[2] = 0xa; + btdm8821ae.ps_tdma_byte[3] = 0x83; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters < 1200\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0xf; + btdm8821ae.ps_tdma_byte[2] = 0xf; + btdm8821ae.ps_tdma_byte[3] = 0x83; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("Wifi rssi-1 low \n")); + if(bt_tx_rx_cnt_lvl == BT_TXRX_CNT_LEVEL_2) + { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters >= 1400\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0x5; + btdm8821ae.ps_tdma_byte[2] = 0x5; + btdm8821ae.ps_tdma_byte[3] = 0x2; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } else if(bt_tx_rx_cnt_lvl == BT_TXRX_CNT_LEVEL_1) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters >= 1200 && < 1400\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0xa; + btdm8821ae.ps_tdma_byte[2] = 0xa; + btdm8821ae.ps_tdma_byte[3] = 0x2; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters < 1200\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0xf; + btdm8821ae.ps_tdma_byte[2] = 0xf; + btdm8821ae.ps_tdma_byte[3] = 0x2; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } + } + } + + if (rtl8821ae_dm_bt_need_to_dec_bt_pwr(hw)) { + btdm8821ae.b_dec_bt_pwr = true; + } + + // Always ignore WlanAct if bHid|bSCOBusy|bSCOeSCO + + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], BT btInqPageStartTime = 0x%x, btTxRxCntLvl = %d\n", + hal_coex_8821ae.bt_inq_page_start_time, bt_tx_rx_cnt_lvl)); + if( (hal_coex_8821ae.bt_inq_page_start_time) || + (BT_TXRX_CNT_LEVEL_3 == bt_tx_rx_cnt_lvl) ) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], Set BT inquiry / page scan 0x3a setting\n")); + btdm8821ae.b_ps_tdma_on = true; + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0x5; + btdm8821ae.ps_tdma_byte[2] = 0x5; + btdm8821ae.ps_tdma_byte[3] = 0x2; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } + + if(rtl8821ae_dm_bt_is_coexist_state_changed(hw)) { + rtl8821ae_dm_bt_set_bt_dm(hw, &btdm8821ae); + } +} + +void rtl8821ae_dm_bt_2_ant_ftp_a2dp(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct btdm_8821ae btdm8821ae; + + u8 bt_rssi_state, bt_rssi_state1; + u32 bt_tx_rx_cnt_lvl = 0; + + rtl8821ae_dm_bt_btdm_structure_reload(hw, &btdm8821ae); + + btdm8821ae.b_rf_rx_lpf_shrink = true; + btdm8821ae.b_low_penalty_rate_adaptive = true; + btdm8821ae.b_reject_aggre_pkt = false; + + bt_tx_rx_cnt_lvl = rtl8821ae_dm_bt_bt_tx_rx_counter_level(hw); + + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters = %d\n", bt_tx_rx_cnt_lvl)); + + if(rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) + { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("HT40\n")); + bt_rssi_state = rtl8821ae_dm_bt_check_coex_rssi_state(hw, 2, 37, 0); + + // coex table + btdm8821ae.val_0x6c0 = 0x55555555; + btdm8821ae.val_0x6c8 = 0xffff; + btdm8821ae.val_0x6cc = 0x3; + + // sw mechanism + btdm8821ae.b_agc_table_en = false; + btdm8821ae.b_adc_back_off_on = true; + btdm8821ae.b_sw_dac_swing_on = false; + + // fw mechanism + btdm8821ae.b_ps_tdma_on = true; + if ((bt_rssi_state == BT_RSSI_STATE_HIGH) || + (bt_rssi_state == BT_RSSI_STATE_STAY_HIGH) ) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("Wifi rssi high \n")); + if (bt_tx_rx_cnt_lvl == BT_TXRX_CNT_LEVEL_2) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters >= 1400\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0x5; + btdm8821ae.ps_tdma_byte[2] = 0x5; + btdm8821ae.ps_tdma_byte[3] = 0x81; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } else if(bt_tx_rx_cnt_lvl == BT_TXRX_CNT_LEVEL_1) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters >= 1200 && < 1400\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0xa; + btdm8821ae.ps_tdma_byte[2] = 0xa; + btdm8821ae.ps_tdma_byte[3] = 0x81; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters < 1200\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0xf; + btdm8821ae.ps_tdma_byte[2] = 0xf; + btdm8821ae.ps_tdma_byte[3] = 0x81; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("Wifi rssi low \n")); + if(bt_tx_rx_cnt_lvl == BT_TXRX_CNT_LEVEL_2) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters >= 1400\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0x5; + btdm8821ae.ps_tdma_byte[2] = 0x5; + btdm8821ae.ps_tdma_byte[3] = 0x0; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } else if(bt_tx_rx_cnt_lvl == BT_TXRX_CNT_LEVEL_1) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters >= 1200 && < 1400\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0xa; + btdm8821ae.ps_tdma_byte[2] = 0xa; + btdm8821ae.ps_tdma_byte[3] = 0x0; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters < 1200\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0xf; + btdm8821ae.ps_tdma_byte[2] = 0xf; + btdm8821ae.ps_tdma_byte[3] = 0x0; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } + } + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("HT20 or Legacy\n")); + bt_rssi_state = rtl8821ae_dm_bt_check_coex_rssi_state(hw, 2, 47, 0); + bt_rssi_state1 = rtl8821ae_dm_bt_check_coex_rssi_state1(hw, 2, 27, 0); + + // coex table + btdm8821ae.val_0x6c0 = 0x55555555; + btdm8821ae.val_0x6c8 = 0xffff; + btdm8821ae.val_0x6cc = 0x3; + + // sw mechanism + if( (bt_rssi_state == BT_RSSI_STATE_HIGH) || + (bt_rssi_state == BT_RSSI_STATE_STAY_HIGH) ) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("Wifi rssi high \n")); + btdm8821ae.b_agc_table_en = true; + btdm8821ae.b_adc_back_off_on = true; + btdm8821ae.b_sw_dac_swing_on = false; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("Wifi rssi low \n")); + btdm8821ae.b_agc_table_en = false; + btdm8821ae.b_adc_back_off_on = false; + btdm8821ae.b_sw_dac_swing_on = false; + } + + // fw mechanism + btdm8821ae.b_ps_tdma_on = true; + if( (bt_rssi_state1 == BT_RSSI_STATE_HIGH) || + (bt_rssi_state1 == BT_RSSI_STATE_STAY_HIGH) ) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("Wifi rssi-1 high \n")); + // only rssi high we need to do this, + // when rssi low, the value will modified by fw + rtl_write_byte(rtlpriv, 0x883, 0x40); + if (bt_tx_rx_cnt_lvl == BT_TXRX_CNT_LEVEL_2) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters >= 1400\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0x5; + btdm8821ae.ps_tdma_byte[2] = 0x5; + btdm8821ae.ps_tdma_byte[3] = 0x81; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } else if(bt_tx_rx_cnt_lvl == BT_TXRX_CNT_LEVEL_1) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters >= 1200 && < 1400\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0xa; + btdm8821ae.ps_tdma_byte[2] = 0xa; + btdm8821ae.ps_tdma_byte[3] = 0x81; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters < 1200\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0xf; + btdm8821ae.ps_tdma_byte[2] = 0xf; + btdm8821ae.ps_tdma_byte[3] = 0x81; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("Wifi rssi-1 low \n")); + if(bt_tx_rx_cnt_lvl == BT_TXRX_CNT_LEVEL_2) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters >= 1400\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0x5; + btdm8821ae.ps_tdma_byte[2] = 0x5; + btdm8821ae.ps_tdma_byte[3] = 0x0; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } else if(bt_tx_rx_cnt_lvl == BT_TXRX_CNT_LEVEL_1) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters >= 1200 && < 1400\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0xa; + btdm8821ae.ps_tdma_byte[2] = 0xa; + btdm8821ae.ps_tdma_byte[3] = 0x0; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT TxRx Counters < 1200\n")); + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0xf; + btdm8821ae.ps_tdma_byte[2] = 0xf; + btdm8821ae.ps_tdma_byte[3] = 0x0; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } + } + } + + if(rtl8821ae_dm_bt_need_to_dec_bt_pwr(hw)) { + btdm8821ae.b_dec_bt_pwr = true; + } + + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], BT btInqPageStartTime = 0x%x, btTxRxCntLvl = %d\n", + hal_coex_8821ae.bt_inq_page_start_time, bt_tx_rx_cnt_lvl)); + + if( (hal_coex_8821ae.bt_inq_page_start_time) || + (BT_TXRX_CNT_LEVEL_3 == bt_tx_rx_cnt_lvl) ) + { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], Set BT inquiry / page scan 0x3a setting\n")); + btdm8821ae.b_ps_tdma_on = true; + btdm8821ae.ps_tdma_byte[0] = 0xa3; + btdm8821ae.ps_tdma_byte[1] = 0x5; + btdm8821ae.ps_tdma_byte[2] = 0x5; + btdm8821ae.ps_tdma_byte[3] = 0x83; + btdm8821ae.ps_tdma_byte[4] = 0x80; + } + + if(rtl8821ae_dm_bt_is_coexist_state_changed(hw)){ + rtl8821ae_dm_bt_set_bt_dm(hw, &btdm8821ae); + } +} + +void rtl8821ae_dm_bt_inq_page_monitor(struct ieee80211_hw *hw) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 cur_time; + cur_time = jiffies; + if (hal_coex_8821ae.b_c2h_bt_inquiry_page) { + //pHalData->btcoexist.halCoex8821ae.btInquiryPageCnt++; + // bt inquiry or page is started. + if(hal_coex_8821ae.bt_inq_page_start_time == 0){ + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_BT_INQ_PAGE; + hal_coex_8821ae.bt_inq_page_start_time = cur_time; + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], BT Inquiry/page is started at time : 0x%x \n", + hal_coex_8821ae.bt_inq_page_start_time)); + } + } + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], BT Inquiry/page started time : 0x%x, cur_time : 0x%x \n", + hal_coex_8821ae.bt_inq_page_start_time, cur_time)); + + if (hal_coex_8821ae.bt_inq_page_start_time) { + if ((((long)cur_time - (long)hal_coex_8821ae.bt_inq_page_start_time) / HZ) >= 10) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BT Inquiry/page >= 10sec!!!")); + hal_coex_8821ae.bt_inq_page_start_time = 0; + rtlpcipriv->btcoexist.current_state &=~ BT_COEX_STATE_BT_INQ_PAGE; + } + } + +#if 0 + if (hal_coex_8821ae.b_c2h_bt_inquiry_page) { + hal_coex_8821ae.b_c2h_bt_inquiry_page++; + // bt inquiry or page is started. + } if(hal_coex_8821ae.b_c2h_bt_inquiry_page) { + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_BT_INQ_PAGE; + if(hal_coex_8821ae.bt_inquiry_page_cnt >= 4) + hal_coex_8821ae.bt_inquiry_page_cnt = 0; + hal_coex_8821ae.bt_inquiry_page_cnt++; + } else { + rtlpcipriv->btcoexist.current_state &=~ BT_COEX_STATE_BT_INQ_PAGE; + } +#endif +} + +void rtl8821ae_dm_bt_reset_action_profile_state(struct ieee80211_hw *hw) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + + rtlpcipriv->btcoexist.current_state &= ~\ + (BT_COEX_STATE_PROFILE_HID | BT_COEX_STATE_PROFILE_A2DP| + BT_COEX_STATE_PROFILE_PAN | BT_COEX_STATE_PROFILE_SCO); + + rtlpcipriv->btcoexist.current_state &= ~\ + (BT_COEX_STATE_BTINFO_COMMON | BT_COEX_STATE_BTINFO_B_HID_SCOESCO| + BT_COEX_STATE_BTINFO_B_FTP_A2DP); +} + +void _rtl8821ae_dm_bt_coexist_2_ant(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + u8 bt_retry_cnt; + u8 bt_info_original; + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex] Get bt info by fw!!\n")); + + _rtl8821ae_dm_bt_check_wifi_state(hw); + + if (hal_coex_8821ae.b_c2h_bt_info_req_sent) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("[BTCoex] c2h for bt_info not rcvd yet!!\n")); + } + + bt_retry_cnt = hal_coex_8821ae.bt_retry_cnt; + bt_info_original = hal_coex_8821ae.c2h_bt_info_original; + + // when bt inquiry or page scan, we have to set h2c 0x25 + // ignore wlanact for continuous 4x2secs + rtl8821ae_dm_bt_inq_page_monitor(hw); + rtl8821ae_dm_bt_reset_action_profile_state(hw); + + if(rtl8821ae_dm_bt_is_2_ant_common_action(hw)) { + rtlpcipriv->btcoexist.bt_profile_case = BT_COEX_MECH_COMMON; + rtlpcipriv->btcoexist.bt_profile_action= BT_COEX_MECH_COMMON; + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("Action 2-Ant common.\n")); + } else { + if( (bt_info_original & BTINFO_B_HID) || + (bt_info_original & BTINFO_B_SCO_BUSY) || + (bt_info_original & BTINFO_B_SCO_ESCO) ) { + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_BTINFO_B_HID_SCOESCO; + rtlpcipriv->btcoexist.bt_profile_case = BT_COEX_MECH_HID_SCO_ESCO; + rtlpcipriv->btcoexist.bt_profile_action = BT_COEX_MECH_HID_SCO_ESCO; + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BTInfo: bHid|bSCOBusy|bSCOeSCO\n")); + rtl8821ae_dm_bt_2_ant_hid_sco_esco(hw); + } else if( (bt_info_original & BTINFO_B_FTP) || + (bt_info_original & BTINFO_B_A2DP) ) { + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_BTINFO_B_FTP_A2DP; + rtlpcipriv->btcoexist.bt_profile_case = BT_COEX_MECH_FTP_A2DP; + rtlpcipriv->btcoexist.bt_profile_action = BT_COEX_MECH_FTP_A2DP; + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("BTInfo: bFTP|bA2DP\n")); + rtl8821ae_dm_bt_2_ant_ftp_a2dp(hw); + } else { + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_BTINFO_B_HID_SCOESCO; + rtlpcipriv->btcoexist.bt_profile_case = BT_COEX_MECH_NONE; + rtlpcipriv->btcoexist.bt_profile_action= BT_COEX_MECH_NONE; + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], BTInfo: undefined case!!!!\n")); + rtl8821ae_dm_bt_2_ant_hid_sco_esco(hw); + } + } +} + +void _rtl8821ae_dm_bt_coexist_1_ant(struct ieee80211_hw *hw) +{ + return; +} + +void rtl8821ae_dm_bt_hw_coex_all_off_8723a(struct ieee80211_hw *hw) +{ + rtl8821ae_dm_bt_set_coex_table(hw, 0x5a5aaaaa, 0xcc, 0x3); + rtl8821ae_dm_bt_set_hw_pta_mode(hw, true); +} + +void rtl8821ae_dm_bt_fw_coex_all_off_8723a(struct ieee80211_hw *hw) +{ + rtl8821ae_dm_bt_set_fw_ignore_wlan_act(hw, false); + rtl8821ae_dm_bt_set_fw_3a(hw, 0x0, 0x0, 0x0, 0x8, 0x0); + rtl8821ae_dm_bt_set_fw_2_ant_hid(hw, false, false); + rtl8821ae_dm_bt_set_fw_tra_tdma_ctrl(hw, false, TDMA_2ANT, TDMA_NAV_OFF); + rtl8821ae_dm_bt_set_fw_tdma_ctrl(hw, false, TDMA_2ANT, + TDMA_NAV_OFF, TDMA_DAC_SWING_OFF); + rtl8821ae_dm_bt_set_fw_dac_swing_level(hw, 0); + rtl8821ae_dm_bt_set_fw_bt_hid_info(hw, false); + rtl8821ae_dm_bt_set_fw_bt_retry_index(hw, 2); + rtl8821ae_dm_bt_set_fw_wlan_act(hw, 0x10, 0x10); + rtl8821ae_dm_bt_set_fw_dec_bt_pwr(hw, false); +} + +void rtl8821ae_dm_bt_sw_coex_all_off_8723a(struct ieee80211_hw *hw) +{ + rtl8821ae_dm_bt_agc_table(hw, BT_AGCTABLE_OFF); + rtl8821ae_dm_bt_bb_back_off_level(hw, BT_BB_BACKOFF_OFF); + rtl8821ae_dm_bt_reject_ap_aggregated_packet(hw, false); + + rtl8821ae_dm_bt_set_sw_penalty_tx_rate_adaptive(hw, + BT_TX_RATE_ADAPTIVE_NORMAL); + rtl8821ae_dm_bt_set_sw_rf_rx_lpf_corner(hw, BT_RF_RX_LPF_CORNER_RESUME); + rtl8821ae_dm_bt_set_sw_full_time_dac_swing(hw, false, 0xc0); +} + +void rtl8821ae_dm_bt_query_bt_information(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 h2c_parameter[1] = {0}; + + hal_coex_8821ae.b_c2h_bt_info_req_sent = true; + + h2c_parameter[0] |= BIT(0); + + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("Query Bt information, write 0x38=0x%x\n", h2c_parameter[0])); + + rtl8821ae_fill_h2c_cmd(hw, 0x38, 1, h2c_parameter); +} + +void rtl8821ae_dm_bt_bt_hw_counters_monitor(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + u32 reg_hp_tx_rx, reg_lp_tx_rx, u32_tmp; + u32 reg_hp_tx=0, reg_hp_rx=0, reg_lp_tx=0, reg_lp_rx=0; + + reg_hp_tx_rx = REG_HIGH_PRIORITY_TXRX; + reg_lp_tx_rx = REG_LOW_PRIORITY_TXRX; + + u32_tmp = rtl_read_dword(rtlpriv, reg_hp_tx_rx); + reg_hp_tx = u32_tmp & MASKLWORD; + reg_hp_rx = (u32_tmp & MASKHWORD)>>16; + + u32_tmp = rtl_read_dword(rtlpriv, reg_lp_tx_rx); + reg_lp_tx = u32_tmp & MASKLWORD; + reg_lp_rx = (u32_tmp & MASKHWORD)>>16; + + if(rtlpcipriv->btcoexist.lps_counter > 1) { + reg_hp_tx %= rtlpcipriv->btcoexist.lps_counter; + reg_hp_rx %= rtlpcipriv->btcoexist.lps_counter; + reg_lp_tx %= rtlpcipriv->btcoexist.lps_counter; + reg_lp_rx %= rtlpcipriv->btcoexist.lps_counter; + } + + hal_coex_8821ae.high_priority_tx = reg_hp_tx; + hal_coex_8821ae.high_priority_rx = reg_hp_rx; + hal_coex_8821ae.low_priority_tx = reg_lp_tx; + hal_coex_8821ae.low_priority_rx = reg_lp_rx; + + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("High Priority Tx/Rx (reg 0x%x)=%x(%d)/%x(%d)\n", + reg_hp_tx_rx, reg_hp_tx, reg_hp_tx, reg_hp_rx, reg_hp_rx)); + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("Low Priority Tx/Rx (reg 0x%x)=%x(%d)/%x(%d)\n", + reg_lp_tx_rx, reg_lp_tx, reg_lp_tx, reg_lp_rx, reg_lp_rx)); + rtlpcipriv->btcoexist.lps_counter = 0; + //rtl_write_byte(rtlpriv, 0x76e, 0xc); +} + +void rtl8821ae_dm_bt_bt_enable_disable_check(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + bool bt_alife = true; + + if (hal_coex_8821ae.high_priority_tx == 0 && + hal_coex_8821ae.high_priority_rx == 0 && + hal_coex_8821ae.low_priority_tx == 0 && + hal_coex_8821ae.low_priority_rx == 0) { + bt_alife = false; + } + if (hal_coex_8821ae.high_priority_tx == 0xeaea && + hal_coex_8821ae.high_priority_rx == 0xeaea && + hal_coex_8821ae.low_priority_tx == 0xeaea && + hal_coex_8821ae.low_priority_rx == 0xeaea) { + bt_alife = false; + } + if (hal_coex_8821ae.high_priority_tx == 0xffff && + hal_coex_8821ae.high_priority_rx == 0xffff && + hal_coex_8821ae.low_priority_tx == 0xffff && + hal_coex_8821ae.low_priority_rx == 0xffff) { + bt_alife = false; + } + if (bt_alife) { + rtlpcipriv->btcoexist.bt_active_zero_cnt = 0; + rtlpcipriv->btcoexist.b_cur_bt_disabled = false; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("8821AE BT is enabled !!\n")); + } else { + rtlpcipriv->btcoexist.bt_active_zero_cnt++; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, + ("8821AE bt all counters=0, %d times!!\n", + rtlpcipriv->btcoexist.bt_active_zero_cnt)); + if (rtlpcipriv->btcoexist.bt_active_zero_cnt >= 2) { + rtlpcipriv->btcoexist.b_cur_bt_disabled = true; + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("8821AE BT is disabled !!\n")); + } + } + if (rtlpcipriv->btcoexist.b_pre_bt_disabled != + rtlpcipriv->btcoexist.b_cur_bt_disabled) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("8821AE BT is from %s to %s!!\n", + (rtlpcipriv->btcoexist.b_pre_bt_disabled ? "disabled":"enabled"), + (rtlpcipriv->btcoexist.b_cur_bt_disabled ? "disabled":"enabled"))); + rtlpcipriv->btcoexist.b_pre_bt_disabled + = rtlpcipriv->btcoexist.b_cur_bt_disabled; + } +} + + +void rtl8821ae_dm_bt_coexist(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + + rtl8821ae_dm_bt_query_bt_information(hw); + rtl8821ae_dm_bt_bt_hw_counters_monitor(hw); + rtl8821ae_dm_bt_bt_enable_disable_check(hw); + + if (rtlpcipriv->btcoexist.bt_ant_num == ANT_X2) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTCoex], 2 Ant mechanism\n")); + _rtl8821ae_dm_bt_coexist_2_ant(hw); + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("[BTCoex], 1 Ant mechanism\n")); + _rtl8821ae_dm_bt_coexist_1_ant(hw); + } + + if (!rtl8821ae_dm_bt_is_same_coexist_state(hw)) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("[BTCoex], Coexist State[bitMap] change from 0x%x%8x to 0x%x%8x\n", + rtlpcipriv->btcoexist.previous_state_h, + rtlpcipriv->btcoexist.previous_state, + rtlpcipriv->btcoexist.current_state_h, + rtlpcipriv->btcoexist.current_state)); + rtlpcipriv->btcoexist.previous_state + = rtlpcipriv->btcoexist.current_state; + rtlpcipriv->btcoexist.previous_state_h + = rtlpcipriv->btcoexist.current_state_h; + } +} + +void rtl8821ae_dm_bt_parse_bt_info(struct ieee80211_hw *hw, u8 * tmp_buf, u8 len) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + u8 bt_info; + u8 i; + + hal_coex_8821ae.b_c2h_bt_info_req_sent = false; + hal_coex_8821ae.bt_retry_cnt = 0; + for (i = 0; i < len; i++) { + if (i == 0) { + hal_coex_8821ae.c2h_bt_info_original = tmp_buf[i]; + } else if (i == 1) { + hal_coex_8821ae.bt_retry_cnt = tmp_buf[i]; + } + if(i == len-1) { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("0x%2x]", tmp_buf[i])); + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_TRACE, ("0x%2x, ", tmp_buf[i])); + } + } + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, + ("BT info bt_info (Data)= 0x%x\n",hal_coex_8821ae.c2h_bt_info_original)); + bt_info = hal_coex_8821ae.c2h_bt_info_original; + + if(bt_info & BIT(2)){ + hal_coex_8821ae.b_c2h_bt_inquiry_page = true; + } else { + hal_coex_8821ae.b_c2h_bt_inquiry_page = false; + } + + if (bt_info & BTINFO_B_CONNECTION) { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTC2H], BTInfo: bConnect=true\n")); + rtlpcipriv->btcoexist.b_bt_busy = true; + rtlpcipriv->btcoexist.current_state &= ~BT_COEX_STATE_BT_IDLE; + } else { + RT_TRACE(COMP_BT_COEXIST, DBG_DMESG, ("[BTC2H], BTInfo: bConnect=false\n")); + rtlpcipriv->btcoexist.b_bt_busy = false; + rtlpcipriv->btcoexist.current_state |= BT_COEX_STATE_BT_IDLE; + } +} +void rtl_8821ae_c2h_command_handle(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct c2h_evt_hdr c2h_event; + u8 * ptmp_buf = NULL; + u8 index = 0; + u8 u1b_tmp = 0; + memset(&c2h_event, 0, sizeof(c2h_event)); + u1b_tmp = rtl_read_byte(rtlpriv, REG_C2HEVT_MSG_NORMAL); + RT_TRACE(COMP_FW, DBG_DMESG, + ("&&&&&&: REG_C2HEVT_MSG_NORMAL is 0x%x\n", u1b_tmp)); + c2h_event.cmd_id = u1b_tmp & 0xF; + c2h_event.cmd_len = (u1b_tmp & 0xF0) >> 4; + c2h_event.cmd_seq = rtl_read_byte(rtlpriv, REG_C2HEVT_MSG_NORMAL + 1); + RT_TRACE(COMP_FW, DBG_DMESG, ("cmd_id: %d, cmd_len: %d, cmd_seq: %d\n", + c2h_event.cmd_id , c2h_event.cmd_len, c2h_event.cmd_seq)); + u1b_tmp = rtl_read_byte(rtlpriv, 0x01AF); + if (u1b_tmp == C2H_EVT_HOST_CLOSE) { + return; + } else if (u1b_tmp != C2H_EVT_FW_CLOSE) { + rtl_write_byte(rtlpriv, 0x1AF, 0x00); + return; + } + ptmp_buf = (u8 *) kmalloc(c2h_event.cmd_len, GFP_KERNEL); + if(ptmp_buf == NULL) { + RT_TRACE(COMP_FW, DBG_TRACE, ("malloc cmd buf failed\n")); + return; + } + + /* Read the content */ + for (index = 0; index < c2h_event.cmd_len; index ++) { + ptmp_buf[index] = rtl_read_byte(rtlpriv, REG_C2HEVT_MSG_NORMAL + 2+ index); + } + + switch(c2h_event.cmd_id) { + case C2H_BT_RSSI: + break; + + case C2H_BT_OP_MODE: + break; + + case BT_INFO: + RT_TRACE(COMP_FW, DBG_TRACE, + ("BT info Byte[0] (ID) is 0x%x\n", c2h_event.cmd_id)); + RT_TRACE(COMP_FW, DBG_TRACE, + ("BT info Byte[1] (Seq) is 0x%x\n", c2h_event.cmd_seq)); + RT_TRACE(COMP_FW, DBG_TRACE, + ("BT info Byte[2] (Data)= 0x%x\n", ptmp_buf[0])); + + if (rtlpriv->cfg->ops->get_btc_status()){ + rtlpriv->btcoexist.btc_ops->btc_btinfo_notify(rtlpriv, ptmp_buf, c2h_event.cmd_len); + } + break; + default: + break; + } + + if(ptmp_buf) + kfree(ptmp_buf); + + rtl_write_byte(rtlpriv, 0x01AF, C2H_EVT_HOST_CLOSE); +} + + + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/hal_btc.h +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/hal_btc.h @@ -0,0 +1,160 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8821AE_HAL_BTC_H__ +#define __RTL8821AE_HAL_BTC_H__ + +#include "../wifi.h" +#include "btc.h" +#include "hal_bt_coexist.h" + +#define BT_TXRX_CNT_THRES_1 1200 +#define BT_TXRX_CNT_THRES_2 1400 +#define BT_TXRX_CNT_THRES_3 3000 +#define BT_TXRX_CNT_LEVEL_0 0 // < 1200 +#define BT_TXRX_CNT_LEVEL_1 1 // >= 1200 && < 1400 +#define BT_TXRX_CNT_LEVEL_2 2 // >= 1400 +#define BT_TXRX_CNT_LEVEL_3 3 + + + +#define BT_COEX_DISABLE 0 +#define BT_Q_PKT_OFF 0 +#define BT_Q_PKT_ON 1 + +#define BT_TX_PWR_OFF 0 +#define BT_TX_PWR_ON 1 + +/* TDMA mode definition */ +#define TDMA_2ANT 0 +#define TDMA_1ANT 1 +#define TDMA_NAV_OFF 0 +#define TDMA_NAV_ON 1 +#define TDMA_DAC_SWING_OFF 0 +#define TDMA_DAC_SWING_ON 1 + +/* PTA mode related definition */ +#define BT_PTA_MODE_OFF 0 +#define BT_PTA_MODE_ON 1 + +/* Penalty Tx Rate Adaptive */ +#define BT_TX_RATE_ADAPTIVE_NORMAL 0 +#define BT_TX_RATE_ADAPTIVE_LOW_PENALTY 1 + +/* RF Corner */ +#define BT_RF_RX_LPF_CORNER_RESUME 0 +#define BT_RF_RX_LPF_CORNER_SHRINK 1 + +#define C2H_EVT_HOST_CLOSE 0x00 +#define C2H_EVT_FW_CLOSE 0xFF + +enum bt_traffic_mode { + BT_MOTOR_EXT_BE = 0x00, + BT_MOTOR_EXT_GUL = 0x01, + BT_MOTOR_EXT_GUB = 0x02, + BT_MOTOR_EXT_GULB = 0x03 +}; + +enum bt_traffic_mode_profile { + BT_PROFILE_NONE, + BT_PROFILE_A2DP, + BT_PROFILE_PAN, + BT_PROFILE_HID, + BT_PROFILE_SCO +}; + +enum hci_ext_bt_operation { + HCI_BT_OP_NONE = 0x0, + HCI_BT_OP_INQUIRE_START = 0x1, + HCI_BT_OP_INQUIRE_FINISH = 0x2, + HCI_BT_OP_PAGING_START = 0x3, + HCI_BT_OP_PAGING_SUCCESS = 0x4, + HCI_BT_OP_PAGING_UNSUCCESS = 0x5, + HCI_BT_OP_PAIRING_START = 0x6, + HCI_BT_OP_PAIRING_FINISH = 0x7, + HCI_BT_OP_BT_DEV_ENABLE = 0x8, + HCI_BT_OP_BT_DEV_DISABLE = 0x9, + HCI_BT_OP_MAX, +}; + +enum bt_spec { + BT_SPEC_1_0_b = 0x00, + BT_SPEC_1_1 = 0x01, + BT_SPEC_1_2 = 0x02, + BT_SPEC_2_0_EDR = 0x03, + BT_SPEC_2_1_EDR = 0x04, + BT_SPEC_3_0_HS = 0x05, + BT_SPEC_4_0 = 0x06 +}; + +struct c2h_evt_hdr { + u8 cmd_id; + u8 cmd_len; + u8 cmd_seq; +}; + +enum bt_state{ + BT_INFO_STATE_DISABLED = 0, + BT_INFO_STATE_NO_CONNECTION = 1, + BT_INFO_STATE_CONNECT_IDLE = 2, + BT_INFO_STATE_INQ_OR_PAG = 3, + BT_INFO_STATE_ACL_ONLY_BUSY = 4, + BT_INFO_STATE_SCO_ONLY_BUSY = 5, + BT_INFO_STATE_ACL_SCO_BUSY = 6, + BT_INFO_STATE_HID_BUSY = 7, + BT_INFO_STATE_HID_SCO_BUSY = 8, + BT_INFO_STATE_MAX = 7 +}; + +enum rtl8723be_c2h_evt { + C2H_DBG = 0, + C2H_TSF = 1, + C2H_AP_RPT_RSP = 2, + C2H_CCX_TX_RPT = 3, // The FW notify the report of the specific tx packet. + C2H_BT_RSSI = 4, + C2H_BT_OP_MODE = 5, + C2H_HW_INFO_EXCH = 10, + C2H_C2H_H2C_TEST = 11, + BT_INFO = 9, + MAX_C2HEVENT +}; + + + +void rtl8821ae_dm_bt_fw_coex_all_off_8723a(struct ieee80211_hw *hw); +void rtl8821ae_dm_bt_sw_coex_all_off_8723a(struct ieee80211_hw *hw); +void rtl8821ae_dm_bt_hw_coex_all_off_8723a(struct ieee80211_hw *hw); +void rtl8821ae_dm_bt_coexist(struct ieee80211_hw *hw); +void rtl8821ae_dm_bt_set_bt_dm(struct ieee80211_hw *hw, struct btdm_8821ae *p_btdm); +void rtl_8821ae_c2h_command_handle(struct ieee80211_hw * hw); +void rtl_8821ae_bt_wifi_media_status_notify(struct ieee80211_hw * hw, bool mstatus); +void rtl8821ae_dm_bt_turn_off_bt_coexist_before_enter_lps(struct ieee80211_hw *hw); + + + +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/hw.c +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/hw.c @@ -0,0 +1,3346 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "../efuse.h" +#include "../base.h" +#include "../regd.h" +#include "../cam.h" +#include "../ps.h" +#include "../pci.h" +#include "reg.h" +#include "def.h" +#include "phy.h" +#include "dm.h" +#include "fw.h" +#include "led.h" +#include "hw.h" +#include "pwrseqcmd.h" +#include "pwrseq.h" +#include "btc.h" +#include "../btcoexist/rtl_btc.h" + +#define LLT_CONFIG 5 + +static void _rtl8821ae_return_beacon_queue_skb(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[BEACON_QUEUE]; + + while (skb_queue_len(&ring->queue)) { + struct rtl_tx_desc *entry = &ring->desc[ring->idx]; + struct sk_buff *skb = __skb_dequeue(&ring->queue); + + pci_unmap_single(rtlpci->pdev, + le32_to_cpu(rtlpriv->cfg->ops->get_desc( + (u8 *) entry, true, HW_DESC_TXBUFF_ADDR)), + skb->len, PCI_DMA_TODEVICE); + kfree_skb(skb); + ring->idx = (ring->idx + 1) % ring->entries; + } + +} + +static void _rtl8821ae_set_bcn_ctrl_reg(struct ieee80211_hw *hw, + u8 set_bits, u8 clear_bits) +{ + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtlpci->reg_bcn_ctrl_val |= set_bits; + rtlpci->reg_bcn_ctrl_val &= ~clear_bits; + + rtl_write_byte(rtlpriv, REG_BCN_CTRL, (u8) rtlpci->reg_bcn_ctrl_val); +} + +void _rtl8821ae_stop_tx_beacon(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 tmp1byte; + + tmp1byte = rtl_read_byte(rtlpriv, REG_FWHW_TXQ_CTRL + 2); + rtl_write_byte(rtlpriv, REG_FWHW_TXQ_CTRL + 2, tmp1byte & (~BIT(6))); + rtl_write_byte(rtlpriv, REG_TBTT_PROHIBIT + 1, 0x64); + tmp1byte = rtl_read_byte(rtlpriv, REG_TBTT_PROHIBIT + 2); + tmp1byte &= ~(BIT(0)); + rtl_write_byte(rtlpriv, REG_TBTT_PROHIBIT + 2, tmp1byte); +} + +void _rtl8821ae_resume_tx_beacon(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 tmp1byte; + + tmp1byte = rtl_read_byte(rtlpriv, REG_FWHW_TXQ_CTRL + 2); + rtl_write_byte(rtlpriv, REG_FWHW_TXQ_CTRL + 2, tmp1byte | BIT(6)); + rtl_write_byte(rtlpriv, REG_TBTT_PROHIBIT + 1, 0xff); + tmp1byte = rtl_read_byte(rtlpriv, REG_TBTT_PROHIBIT + 2); + tmp1byte |= BIT(0); + rtl_write_byte(rtlpriv, REG_TBTT_PROHIBIT + 2, tmp1byte); +} + +static void _rtl8821ae_enable_bcn_sub_func(struct ieee80211_hw *hw) +{ + _rtl8821ae_set_bcn_ctrl_reg(hw, 0, BIT(1)); +} + +static void _rtl8821ae_disable_bcn_sub_func(struct ieee80211_hw *hw) +{ + _rtl8821ae_set_bcn_ctrl_reg(hw, BIT(1), 0); +} + +static void _rtl8821ae_set_fw_clock_on(struct ieee80211_hw *hw, + u8 rpwm_val, bool b_need_turn_off_ckk) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + bool b_support_remote_wake_up; + u32 count = 0,isr_regaddr,content; + bool b_schedule_timer = b_need_turn_off_ckk; + rtlpriv->cfg->ops->get_hw_reg(hw, HAL_DEF_WOWLAN, + (u8 *) (&b_support_remote_wake_up)); + + if (!rtlhal->bfw_ready) + return; + if (!rtlpriv->psc.b_fw_current_inpsmode) + return; + + while (1) { + spin_lock_bh(&rtlpriv->locks.fw_ps_lock); + if (rtlhal->bfw_clk_change_in_progress) { + while (rtlhal->bfw_clk_change_in_progress) { + spin_unlock_bh(&rtlpriv->locks.fw_ps_lock); + count++; + udelay(100); + if (count > 1000) + return; + spin_lock_bh(&rtlpriv->locks.fw_ps_lock); + } + spin_unlock_bh(&rtlpriv->locks.fw_ps_lock); + } else { + rtlhal->bfw_clk_change_in_progress = false; + spin_unlock_bh(&rtlpriv->locks.fw_ps_lock); + } + } + + if (IS_IN_LOW_POWER_STATE_8821AE(rtlhal->fw_ps_state)) { + rtlpriv->cfg->ops->get_hw_reg(hw, HW_VAR_SET_RPWM, + (u8 *) (&rpwm_val)); + if (FW_PS_IS_ACK(rpwm_val)) { + isr_regaddr = REG_HISR; + content = rtl_read_dword(rtlpriv, isr_regaddr); + while (!(content & IMR_CPWM) && (count < 500)) { + udelay(50); + count++; + content = rtl_read_dword(rtlpriv, isr_regaddr); + } + + if (content & IMR_CPWM) { + rtl_write_word(rtlpriv,isr_regaddr, 0x0100); + rtlhal->fw_ps_state = FW_PS_STATE_RF_ON_8821AE; + RT_TRACE(COMP_POWER, DBG_LOUD, ("Receive CPWM INT!!! Set pHalData->FwPSState = %X\n", rtlhal->fw_ps_state)); + } + } + + spin_lock_bh(&rtlpriv->locks.fw_ps_lock); + rtlhal->bfw_clk_change_in_progress = false; + spin_unlock_bh(&rtlpriv->locks.fw_ps_lock); + if (b_schedule_timer) { + mod_timer(&rtlpriv->works.fw_clockoff_timer, + jiffies + MSECS(10)); + } + + } else { + spin_lock_bh(&rtlpriv->locks.fw_ps_lock); + rtlhal->bfw_clk_change_in_progress = false; + spin_unlock_bh(&rtlpriv->locks.fw_ps_lock); + } + + +} + +static void _rtl8821ae_set_fw_clock_off(struct ieee80211_hw *hw, + u8 rpwm_val) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl8192_tx_ring *ring; + enum rf_pwrstate rtstate; + bool b_schedule_timer = false; + u8 queue; + + if (!rtlhal->bfw_ready) + return; + if (!rtlpriv->psc.b_fw_current_inpsmode) + return; + if (!rtlhal->ballow_sw_to_change_hwclc) + return; + rtlpriv->cfg->ops->get_hw_reg(hw,HW_VAR_RF_STATE,(u8 *)(&rtstate)); + if (rtstate == ERFOFF ||rtlpriv->psc.inactive_pwrstate ==ERFOFF) + return; + + for (queue = 0; queue < RTL_PCI_MAX_TX_QUEUE_COUNT; queue++) { + ring = &rtlpci->tx_ring[queue]; + if (skb_queue_len(&ring->queue)) { + b_schedule_timer = true; + break; + } + } + + if (b_schedule_timer) { + mod_timer(&rtlpriv->works.fw_clockoff_timer, + jiffies + MSECS(10)); + return; + } + + if (FW_PS_STATE(rtlhal->fw_ps_state) != FW_PS_STATE_RF_OFF_LOW_PWR_8821AE) { + spin_lock_bh(&rtlpriv->locks.fw_ps_lock); + if (!rtlhal->bfw_clk_change_in_progress) { + rtlhal->bfw_clk_change_in_progress = true; + spin_unlock_bh(&rtlpriv->locks.fw_ps_lock); + rtlhal->fw_ps_state = FW_PS_STATE(rpwm_val); + rtl_write_word(rtlpriv, REG_HISR, 0x0100); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SET_RPWM, + (u8 *) (&rpwm_val)); + spin_lock_bh(&rtlpriv->locks.fw_ps_lock); + rtlhal->bfw_clk_change_in_progress = false; + spin_unlock_bh(&rtlpriv->locks.fw_ps_lock); + } else { + spin_unlock_bh(&rtlpriv->locks.fw_ps_lock); + mod_timer(&rtlpriv->works.fw_clockoff_timer, + jiffies + MSECS(10)); + } + } + +} + +static void _rtl8821ae_set_fw_ps_rf_on(struct ieee80211_hw *hw) +{ + u8 rpwm_val = 0; + rpwm_val |= (FW_PS_STATE_RF_OFF_8821AE | FW_PS_ACK); + _rtl8821ae_set_fw_clock_on(hw, rpwm_val, true); +} + +static void _rtl8821ae_fwlps_leave(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + bool b_fw_current_inps = false; + u8 rpwm_val = 0,fw_pwrmode = FW_PS_ACTIVE_MODE; + + if (ppsc->b_low_power_enable){ + rpwm_val = (FW_PS_STATE_ALL_ON_8821AE|FW_PS_ACK);/* RF on */ + _rtl8821ae_set_fw_clock_on(hw, rpwm_val, false); + rtlhal->ballow_sw_to_change_hwclc = false; + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_H2C_FW_PWRMODE, + (u8 *) (&fw_pwrmode)); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_FW_PSMODE_STATUS, + (u8 *) (&b_fw_current_inps)); + } else { + rpwm_val = FW_PS_STATE_ALL_ON_8821AE; /* RF on */ + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SET_RPWM, + (u8 *) (&rpwm_val)); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_H2C_FW_PWRMODE, + (u8 *) (&fw_pwrmode)); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_FW_PSMODE_STATUS, + (u8 *) (&b_fw_current_inps)); + } + +} + +static void _rtl8821ae_fwlps_enter(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + bool b_fw_current_inps = true; + u8 rpwm_val; + + if (ppsc->b_low_power_enable){ + rpwm_val = FW_PS_STATE_RF_OFF_LOW_PWR_8821AE; /* RF off */ + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_FW_PSMODE_STATUS, + (u8 *) (&b_fw_current_inps)); + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_H2C_FW_PWRMODE, + (u8 *) (&ppsc->fwctrl_psmode)); + rtlhal->ballow_sw_to_change_hwclc = true; + _rtl8821ae_set_fw_clock_off(hw, rpwm_val); + + + } else { + rpwm_val = FW_PS_STATE_RF_OFF_8821AE; /* RF off */ + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_FW_PSMODE_STATUS, + (u8 *) (&b_fw_current_inps)); + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_H2C_FW_PWRMODE, + (u8 *) (&ppsc->fwctrl_psmode)); + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_SET_RPWM, + (u8 *) (&rpwm_val)); + } + +} + +void rtl8821ae_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + + switch (variable) { + case HW_VAR_ETHER_ADDR: + *((u32 *)(val)) = rtl_read_dword(rtlpriv, REG_MACID); + *((u16 *)(val+4)) = rtl_read_word(rtlpriv, REG_MACID + 4); + break; + case HW_VAR_BSSID: + *((u32 *)(val)) = rtl_read_dword(rtlpriv, REG_BSSID); + *((u16 *)(val+4)) = rtl_read_word(rtlpriv, REG_BSSID+4); + break; + case HW_VAR_MEDIA_STATUS: + val[0] = rtl_read_byte(rtlpriv, REG_CR+2) & 0x3; + break; + case HW_VAR_SLOT_TIME: + *((u8 *)(val)) = mac->slot_time; + break; + case HW_VAR_BEACON_INTERVAL: + *((u16 *)(val)) = rtl_read_word(rtlpriv, REG_BCN_INTERVAL); + break; + case HW_VAR_ATIM_WINDOW: + *((u16 *)(val)) = rtl_read_word(rtlpriv, REG_ATIMWND); + break; + case HW_VAR_RCR: + *((u32 *) (val)) = rtlpci->receive_config; + break; + case HW_VAR_RF_STATE: + *((enum rf_pwrstate *)(val)) = ppsc->rfpwr_state; + break; + case HW_VAR_FWLPS_RF_ON:{ + enum rf_pwrstate rfState; + u32 val_rcr; + + rtlpriv->cfg->ops->get_hw_reg(hw, + HW_VAR_RF_STATE, + (u8 *) (&rfState)); + if (rfState == ERFOFF) { + *((bool *) (val)) = true; + } else { + val_rcr = rtl_read_dword(rtlpriv, REG_RCR); + val_rcr &= 0x00070000; + if (val_rcr) + *((bool *) (val)) = false; + else + *((bool *) (val)) = true; + } + break; + } + case HW_VAR_FW_PSMODE_STATUS: + *((bool *) (val)) = ppsc->b_fw_current_inpsmode; + break; + case HW_VAR_CORRECT_TSF:{ + u64 tsf; + u32 *ptsf_low = (u32 *) & tsf; + u32 *ptsf_high = ((u32 *) & tsf) + 1; + + *ptsf_high = rtl_read_dword(rtlpriv, (REG_TSFTR + 4)); + *ptsf_low = rtl_read_dword(rtlpriv, REG_TSFTR); + + *((u64 *) (val)) = tsf; + + break; + } + default: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("switch case not process %x\n",variable)); + break; + } +} + + +void rtl8821ae_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 idx; + + switch (variable) { + case HW_VAR_ETHER_ADDR:{ + for (idx = 0; idx < ETH_ALEN; idx++) { + rtl_write_byte(rtlpriv, (REG_MACID + idx), + val[idx]); + } + break; + } + case HW_VAR_BASIC_RATE:{ + u16 b_rate_cfg = ((u16 *) val)[0]; + u8 rate_index = 0; + b_rate_cfg = b_rate_cfg & 0x15f; + b_rate_cfg |= 0x01; + rtl_write_byte(rtlpriv, REG_RRSR, b_rate_cfg & 0xff); + rtl_write_byte(rtlpriv, REG_RRSR + 1, + (b_rate_cfg >> 8) & 0xff); + while (b_rate_cfg > 0x1) { + b_rate_cfg = (b_rate_cfg >> 1); + rate_index++; + } + rtl_write_byte(rtlpriv, REG_INIRTS_RATE_SEL, + rate_index); + break; + } + case HW_VAR_BSSID:{ + for (idx = 0; idx < ETH_ALEN; idx++) { + rtl_write_byte(rtlpriv, (REG_BSSID + idx), + val[idx]); + } + break; + } + case HW_VAR_SIFS:{ + rtl_write_byte(rtlpriv, REG_SIFS_CTX + 1, val[0]); + rtl_write_byte(rtlpriv, REG_SIFS_TRX + 1, val[1]); + + rtl_write_byte(rtlpriv, REG_SPEC_SIFS + 1, val[0]); + rtl_write_byte(rtlpriv, REG_MAC_SPEC_SIFS + 1, val[0]); + + if (!mac->ht_enable) + rtl_write_word(rtlpriv, REG_RESP_SIFS_OFDM, + 0x0e0e); + else + rtl_write_word(rtlpriv, REG_RESP_SIFS_OFDM, + *((u16 *) val)); + break; + } + case HW_VAR_SLOT_TIME:{ + u8 e_aci; + + RT_TRACE(COMP_MLME, DBG_LOUD, + ("HW_VAR_SLOT_TIME %x\n", val[0])); + + rtl_write_byte(rtlpriv, REG_SLOT, val[0]); + + for (e_aci = 0; e_aci < AC_MAX; e_aci++) { + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_AC_PARAM, + (u8 *) (&e_aci)); + } + break; + } + case HW_VAR_ACK_PREAMBLE:{ + u8 reg_tmp; + u8 short_preamble = (bool) (*(u8 *) val); + reg_tmp = rtl_read_byte(rtlpriv, REG_TRXPTCL_CTL+2); + if (short_preamble){ + reg_tmp |= BIT(1); + rtl_write_byte(rtlpriv, REG_TRXPTCL_CTL + 2, reg_tmp); + } else { + reg_tmp &= (~BIT(1)); + rtl_write_byte(rtlpriv, REG_TRXPTCL_CTL + 2, reg_tmp); + } + break; + } + case HW_VAR_WPA_CONFIG: + rtl_write_byte(rtlpriv, REG_SECCFG, *((u8 *) val)); + break; + case HW_VAR_AMPDU_MIN_SPACE:{ + u8 min_spacing_to_set; + u8 sec_min_space; + + min_spacing_to_set = *((u8 *) val); + if (min_spacing_to_set <= 7) { + sec_min_space = 0; + + if (min_spacing_to_set < sec_min_space) + min_spacing_to_set = sec_min_space; + + mac->min_space_cfg = ((mac->min_space_cfg & + 0xf8) | + min_spacing_to_set); + + *val = min_spacing_to_set; + + RT_TRACE(COMP_MLME, DBG_LOUD, + ("Set HW_VAR_AMPDU_MIN_SPACE: %#x\n", + mac->min_space_cfg)); + + rtl_write_byte(rtlpriv, REG_AMPDU_MIN_SPACE, + mac->min_space_cfg); + } + break; + } + case HW_VAR_SHORTGI_DENSITY:{ + u8 density_to_set; + + density_to_set = *((u8 *) val); + mac->min_space_cfg |= (density_to_set << 3); + + RT_TRACE(COMP_MLME, DBG_LOUD, + ("Set HW_VAR_SHORTGI_DENSITY: %#x\n", + mac->min_space_cfg)); + + rtl_write_byte(rtlpriv, REG_AMPDU_MIN_SPACE, + mac->min_space_cfg); + + break; + } + case HW_VAR_AMPDU_FACTOR:{ + u32 ampdu_len = (*((u8 *)val)); + if(rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) { + if(ampdu_len < VHT_AGG_SIZE_128K) + ampdu_len = (0x2000 << (*((u8 *)val))) -1; + else + ampdu_len = 0x1ffff; + } else if(rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) { + if(ampdu_len < HT_AGG_SIZE_64K) + ampdu_len = (0x2000 << (*((u8 *)val))) -1; + else + ampdu_len = 0xffff; + } + ampdu_len |= BIT(31); + + rtl_write_dword(rtlpriv, + REG_AMPDU_MAX_LENGTH_8812, ampdu_len); + break; + } + case HW_VAR_AC_PARAM:{ + u8 e_aci = *((u8 *) val); + rtl8821ae_dm_init_edca_turbo(hw); + + if (rtlpci->acm_method != eAcmWay2_SW) + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_ACM_CTRL, + (u8 *) (&e_aci)); + break; + } + case HW_VAR_ACM_CTRL:{ + u8 e_aci = *((u8 *) val); + union aci_aifsn *p_aci_aifsn = + (union aci_aifsn *)(&(mac->ac[0].aifs)); + u8 acm = p_aci_aifsn->f.acm; + u8 acm_ctrl = rtl_read_byte(rtlpriv, REG_ACMHWCTRL); + + acm_ctrl = + acm_ctrl | ((rtlpci->acm_method == 2) ? 0x0 : 0x1); + + if (acm) { + switch (e_aci) { + case AC0_BE: + acm_ctrl |= AcmHw_BeqEn; + break; + case AC2_VI: + acm_ctrl |= AcmHw_ViqEn; + break; + case AC3_VO: + acm_ctrl |= AcmHw_VoqEn; + break; + default: + RT_TRACE(COMP_ERR, DBG_WARNING, + ("HW_VAR_ACM_CTRL acm set " + "failed: eACI is %d\n", acm)); + break; + } + } else { + switch (e_aci) { + case AC0_BE: + acm_ctrl &= (~AcmHw_BeqEn); + break; + case AC2_VI: + acm_ctrl &= (~AcmHw_ViqEn); + break; + case AC3_VO: + acm_ctrl &= (~AcmHw_BeqEn); + break; + default: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("switch case not process \n")); + break; + } + } + + RT_TRACE(COMP_QOS, DBG_TRACE, + ("SetHwReg8190pci(): [HW_VAR_ACM_CTRL] " + "Write 0x%X\n", acm_ctrl)); + rtl_write_byte(rtlpriv, REG_ACMHWCTRL, acm_ctrl); + break; + } + case HW_VAR_RCR:{ + rtl_write_dword(rtlpriv, REG_RCR, ((u32 *) (val))[0]); + rtlpci->receive_config = ((u32 *) (val))[0]; + break; + } + case HW_VAR_RETRY_LIMIT:{ + u8 retry_limit = ((u8 *) (val))[0]; + + rtl_write_word(rtlpriv, REG_RL, + retry_limit << RETRY_LIMIT_SHORT_SHIFT | + retry_limit << RETRY_LIMIT_LONG_SHIFT); + break; + } + case HW_VAR_DUAL_TSF_RST: + rtl_write_byte(rtlpriv, REG_DUAL_TSF_RST, (BIT(0) | BIT(1))); + break; + case HW_VAR_EFUSE_BYTES: + rtlefuse->efuse_usedbytes = *((u16 *) val); + break; + case HW_VAR_EFUSE_USAGE: + rtlefuse->efuse_usedpercentage = *((u8 *) val); + break; + case HW_VAR_IO_CMD: + rtl8821ae_phy_set_io_cmd(hw, (*(enum io_type *)val)); + break; + case HW_VAR_SET_RPWM:{ + u8 rpwm_val; + + rpwm_val = rtl_read_byte(rtlpriv, REG_PCIE_HRPWM); + udelay(1); + + if (rpwm_val & BIT(7)) { + rtl_write_byte(rtlpriv, REG_PCIE_HRPWM, + (*(u8 *) val)); + } else { + rtl_write_byte(rtlpriv, REG_PCIE_HRPWM, + ((*(u8 *) val) | BIT(7))); + } + + break; + } + case HW_VAR_H2C_FW_PWRMODE:{ + rtl8821ae_set_fw_pwrmode_cmd(hw, (*(u8 *) val)); + break; + } + case HW_VAR_FW_PSMODE_STATUS: + ppsc->b_fw_current_inpsmode = *((bool *) val); + break; + + case HW_VAR_RESUME_CLK_ON: + _rtl8821ae_set_fw_ps_rf_on(hw); + break; + + case HW_VAR_FW_LPS_ACTION:{ + bool b_enter_fwlps = *((bool *) val); + + if (b_enter_fwlps) + _rtl8821ae_fwlps_enter(hw); + else + _rtl8821ae_fwlps_leave(hw); + + break; + } + + case HW_VAR_H2C_FW_JOINBSSRPT:{ + u8 mstatus = (*(u8 *) val); + u8 tmp_regcr, tmp_reg422,bcnvalid_reg; + u8 count = 0, dlbcn_count = 0; + bool b_recover = false; + + if (mstatus == RT_MEDIA_CONNECT) { + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_AID, + NULL); + + tmp_regcr = rtl_read_byte(rtlpriv, REG_CR + 1); + rtl_write_byte(rtlpriv, REG_CR + 1, + (tmp_regcr | BIT(0))); + + _rtl8821ae_set_bcn_ctrl_reg(hw, 0, BIT(3)); + _rtl8821ae_set_bcn_ctrl_reg(hw, BIT(4), 0); + + tmp_reg422 = + rtl_read_byte(rtlpriv, + REG_FWHW_TXQ_CTRL + 2); + rtl_write_byte(rtlpriv, REG_FWHW_TXQ_CTRL + 2, + tmp_reg422 & (~BIT(6))); + if (tmp_reg422 & BIT(6)) + b_recover = true; + + do { + bcnvalid_reg = rtl_read_byte(rtlpriv, REG_TDECTRL+2); + rtl_write_byte(rtlpriv, REG_TDECTRL+2,(bcnvalid_reg | BIT(0))); + _rtl8821ae_return_beacon_queue_skb(hw); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + rtl8812ae_set_fw_rsvdpagepkt(hw, 0); + else + rtl8821ae_set_fw_rsvdpagepkt(hw, 0); + bcnvalid_reg = rtl_read_byte(rtlpriv, REG_TDECTRL+2); + count = 0; + while (!(bcnvalid_reg & BIT(0)) && count <20){ + count++; + udelay(10); + bcnvalid_reg = rtl_read_byte(rtlpriv, REG_TDECTRL+2); + } + dlbcn_count++; + } while (!(bcnvalid_reg & BIT(0)) && dlbcn_count <5); + + if (bcnvalid_reg & BIT(0)) + rtl_write_byte(rtlpriv, REG_TDECTRL+2, BIT(0)); + + _rtl8821ae_set_bcn_ctrl_reg(hw, BIT(3), 0); + _rtl8821ae_set_bcn_ctrl_reg(hw, 0, BIT(4)); + + if (b_recover) { + rtl_write_byte(rtlpriv, + REG_FWHW_TXQ_CTRL + 2, + tmp_reg422); + } + + rtl_write_byte(rtlpriv, REG_CR + 1, + (tmp_regcr & ~(BIT(0)))); + } + rtl8821ae_set_fw_joinbss_report_cmd(hw, (*(u8 *) val)); + + break; + } + case HW_VAR_H2C_FW_P2P_PS_OFFLOAD:{ + rtl8821ae_set_p2p_ps_offload_cmd(hw, (*(u8 *) val)); + break; + } + + case HW_VAR_AID:{ + u16 u2btmp; + u2btmp = rtl_read_word(rtlpriv, REG_BCN_PSR_RPT); + u2btmp &= 0xC000; + rtl_write_word(rtlpriv, REG_BCN_PSR_RPT, (u2btmp | + mac->assoc_id)); + + break; + } + case HW_VAR_CORRECT_TSF:{ + u8 btype_ibss = ((u8 *) (val))[0]; + + if (btype_ibss == true) + _rtl8821ae_stop_tx_beacon(hw); + + _rtl8821ae_set_bcn_ctrl_reg(hw, 0, BIT(3)); + + rtl_write_dword(rtlpriv, REG_TSFTR, + (u32) (mac->tsf & 0xffffffff)); + rtl_write_dword(rtlpriv, REG_TSFTR + 4, + (u32) ((mac->tsf >> 32) & 0xffffffff)); + + _rtl8821ae_set_bcn_ctrl_reg(hw, BIT(3), 0); + + if (btype_ibss == true) + _rtl8821ae_resume_tx_beacon(hw); + + break; + + } + case HW_VAR_NAV_UPPER: { + u32 us_nav_upper = ((u32)*val); + + if(us_nav_upper > HAL_92C_NAV_UPPER_UNIT * 0xFF) + { + RT_TRACE(COMP_INIT , DBG_WARNING, + ("The setting value (0x%08X us) of NAV_UPPER" + " is larger than (%d * 0xFF)!!!\n", + us_nav_upper, HAL_92C_NAV_UPPER_UNIT)); + break; + } + rtl_write_byte(rtlpriv, REG_NAV_UPPER, + ((u8)((us_nav_upper + HAL_92C_NAV_UPPER_UNIT - 1) / HAL_92C_NAV_UPPER_UNIT))); + break; + } + case HW_VAR_KEEP_ALIVE: { + u8 array[2]; + array[0] = 0xff; + array[1] = *((u8 *)val); + rtl8821ae_fill_h2c_cmd(hw, H2C_8821AE_KEEP_ALIVE_CTRL, 2, array); + } + default: + RT_TRACE(COMP_ERR, DBG_EMERG, ("switch case " + "not process %x\n",variable)); + break; + } +} + +static bool _rtl8821ae_llt_write(struct ieee80211_hw *hw, u32 address, u32 data) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + bool status = true; + long count = 0; + u32 value = _LLT_INIT_ADDR(address) | + _LLT_INIT_DATA(data) | _LLT_OP(_LLT_WRITE_ACCESS); + + rtl_write_dword(rtlpriv, REG_LLT_INIT, value); + + do { + value = rtl_read_dword(rtlpriv, REG_LLT_INIT); + if (_LLT_NO_ACTIVE == _LLT_OP_VALUE(value)) + break; + + if (count > POLLING_LLT_THRESHOLD) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("Failed to polling write LLT done at " + "address %d!\n", address)); + status = false; + break; + } + } while (++count); + + return status; +} + +static bool _rtl8821ae_llt_table_init(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + unsigned short i; + u8 txpktbuf_bndy; + u8 maxPage; + bool status; + + maxPage = 255; + txpktbuf_bndy = 0xF8; + + + rtl_write_byte(rtlpriv, REG_TRXFF_BNDY, txpktbuf_bndy); + rtl_write_word(rtlpriv, REG_TRXFF_BNDY + 2, MAX_RX_DMA_BUFFER_SIZE - 1); + + rtl_write_byte(rtlpriv, REG_TDECTRL + 1, txpktbuf_bndy); + + rtl_write_byte(rtlpriv, REG_TXPKTBUF_BCNQ_BDNY, txpktbuf_bndy); + rtl_write_byte(rtlpriv, REG_TXPKTBUF_MGQ_BDNY, txpktbuf_bndy); + + rtl_write_byte(rtlpriv, REG_PBP, 0x31); + rtl_write_byte(rtlpriv, REG_RX_DRVINFO_SZ, 0x4); + + for (i = 0; i < (txpktbuf_bndy - 1); i++) { + status = _rtl8821ae_llt_write(hw, i, i + 1); + if (true != status) + return status; + } + + status = _rtl8821ae_llt_write(hw, (txpktbuf_bndy - 1), 0xFF); + if (true != status) + return status; + + for (i = txpktbuf_bndy; i < maxPage; i++) { + status = _rtl8821ae_llt_write(hw, i, (i + 1)); + if (true != status) + return status; + } + + status = _rtl8821ae_llt_write(hw, maxPage, txpktbuf_bndy); + if (true != status) + return status; + + rtl_write_dword(rtlpriv, REG_RQPN, 0x80e70808); + rtl_write_byte(rtlpriv, REG_RQPN_NPQ, 0x00); + + return true; +} + +static void _rtl8821ae_gen_refresh_led_state(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_led *pLed0 = &(pcipriv->ledctl.sw_led0); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + + if (rtlpriv->rtlhal.up_first_time) + return; + + if (ppsc->rfoff_reason == RF_CHANGE_BY_IPS) + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + rtl8812ae_sw_led_on(hw, pLed0); + else + rtl8821ae_sw_led_on(hw, pLed0); + else if (ppsc->rfoff_reason == RF_CHANGE_BY_INIT) + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + rtl8812ae_sw_led_on(hw, pLed0); + else + rtl8821ae_sw_led_on(hw, pLed0); + else + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + rtl8812ae_sw_led_off(hw, pLed0); + else + rtl8821ae_sw_led_off(hw, pLed0); +} + +static bool _rtl8821ae_init_mac(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + + u8 bytetmp = 0; + u16 wordtmp = 0; + bool b_mac_func_enable = rtlhal->b_mac_func_enable; + + rtl_write_byte(rtlpriv, REG_RSV_CTRL, 0x00); + + /*Auto Power Down to CHIP-off State*/ + bytetmp = rtl_read_byte(rtlpriv, REG_APS_FSMCO + 1) & (~BIT(7)); + rtl_write_byte(rtlpriv, REG_APS_FSMCO + 1, bytetmp); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) { + /* HW Power on sequence*/ + if(!rtl_hal_pwrseqcmdparsing(rtlpriv, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, + PWR_INTF_PCI_MSK, RTL8812_NIC_ENABLE_FLOW)) { + RT_TRACE(COMP_INIT,DBG_LOUD,("init 8812 MAC Fail as power on failure\n")); + return false; + } + } else { + /* HW Power on sequence */ + if (!rtl_hal_pwrseqcmdparsing(rtlpriv, PWR_CUT_A_MSK, PWR_FAB_ALL_MSK, + PWR_INTF_PCI_MSK, RTL8821A_NIC_ENABLE_FLOW)){ + RT_TRACE(COMP_INIT,DBG_LOUD,("init 8821 MAC Fail as power on failure\n")); + return false; + } + } + + bytetmp = rtl_read_byte(rtlpriv, REG_APS_FSMCO) | BIT(4); + rtl_write_byte(rtlpriv, REG_APS_FSMCO, bytetmp); + + bytetmp = rtl_read_byte(rtlpriv, REG_CR); + bytetmp = 0xff; + rtl_write_byte(rtlpriv, REG_CR, bytetmp); + mdelay(2); + + bytetmp |= 0x7f; + rtl_write_byte(rtlpriv, REG_HWSEQ_CTRL, bytetmp); + mdelay(2); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) { + bytetmp = rtl_read_byte(rtlpriv, REG_SYS_CFG + 3); + if (bytetmp & BIT(0)) { + bytetmp = rtl_read_byte(rtlpriv, 0x7c); + bytetmp |= BIT(6); + rtl_write_byte(rtlpriv, 0x7c, bytetmp); + } + } + + bytetmp = rtl_read_byte(rtlpriv, REG_GPIO_MUXCFG + 1); + bytetmp &= ~BIT(4); + rtl_write_byte(rtlpriv, REG_GPIO_MUXCFG + 1, bytetmp); + + rtl_write_word(rtlpriv, REG_CR, 0x2ff); + + if (!b_mac_func_enable) { + if (!_rtl8821ae_llt_table_init(hw)) + return false; + } + + rtl_write_dword(rtlpriv, REG_HISR, 0xffffffff); + rtl_write_dword(rtlpriv, REG_HISRE, 0xffffffff); + + /* Enable FW Beamformer Interrupt */ + bytetmp = rtl_read_byte(rtlpriv, REG_FWIMR + 3); + rtl_write_byte(rtlpriv, REG_FWIMR + 3, bytetmp | BIT(6)); + + wordtmp = rtl_read_word(rtlpriv, REG_TRXDMA_CTRL); + wordtmp &= 0xf; + wordtmp |= 0xF5B1; + rtl_write_word(rtlpriv, REG_TRXDMA_CTRL, wordtmp); + + rtl_write_byte(rtlpriv, REG_FWHW_TXQ_CTRL + 1, 0x1F); + rtl_write_dword(rtlpriv, REG_RCR, rtlpci->receive_config); + rtl_write_word(rtlpriv, REG_RXFLTMAP2, 0xFFFF); + /*low address*/ + rtl_write_dword(rtlpriv, REG_BCNQ_DESA, + rtlpci->tx_ring[BEACON_QUEUE].dma & DMA_BIT_MASK(32)); + rtl_write_dword(rtlpriv, REG_MGQ_DESA, + rtlpci->tx_ring[MGNT_QUEUE].dma & DMA_BIT_MASK(32)); + rtl_write_dword(rtlpriv, REG_VOQ_DESA, + rtlpci->tx_ring[VO_QUEUE].dma & DMA_BIT_MASK(32)); + rtl_write_dword(rtlpriv, REG_VIQ_DESA, + rtlpci->tx_ring[VI_QUEUE].dma & DMA_BIT_MASK(32)); + rtl_write_dword(rtlpriv, REG_BEQ_DESA, + rtlpci->tx_ring[BE_QUEUE].dma & DMA_BIT_MASK(32)); + rtl_write_dword(rtlpriv, REG_BKQ_DESA, + rtlpci->tx_ring[BK_QUEUE].dma & DMA_BIT_MASK(32)); + rtl_write_dword(rtlpriv, REG_HQ_DESA, + rtlpci->tx_ring[HIGH_QUEUE].dma & DMA_BIT_MASK(32)); + rtl_write_dword(rtlpriv, REG_RX_DESA, + rtlpci->rx_ring[RX_MPDU_QUEUE].dma & DMA_BIT_MASK(32)); + + rtl_write_byte(rtlpriv, REG_PCIE_CTRL_REG + 3, 0x77); + + rtl_write_dword(rtlpriv, REG_INT_MIG, 0); + + rtl_write_byte(rtlpriv, REG_SECONDARY_CCA_CTRL, 0x3); + _rtl8821ae_gen_refresh_led_state(hw); + + return true; +} + +static void _rtl8821ae_hw_configure(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + u32 reg_rrsr; + + reg_rrsr = RATE_ALL_CCK | RATE_ALL_OFDM_AG; + + rtl_write_dword(rtlpriv, REG_RRSR, reg_rrsr); + /* ARFB table 9 for 11ac 5G 2SS */ + rtl_write_dword(rtlpriv, REG_ARFR0 + 4, 0xfffff000); + /* ARFB table 10 for 11ac 5G 1SS */ + rtl_write_dword(rtlpriv, REG_ARFR1 + 4, 0x003ff000); + /* ARFB table 11 for 11ac 24G 1SS */ + rtl_write_dword(rtlpriv, REG_ARFR2, 0x00000015); + rtl_write_dword(rtlpriv, REG_ARFR2 + 4, 0x003ff000); + /* ARFB table 12 for 11ac 24G 1SS */ + rtl_write_dword(rtlpriv, REG_ARFR3, 0x00000015); + rtl_write_dword(rtlpriv, REG_ARFR3 + 4, 0xffcff000); + /* 0x420[7] = 0 , enable retry AMPDU in new AMPD not singal MPDU. */ + rtl_write_word(rtlpriv, REG_FWHW_TXQ_CTRL, 0x1F00); + rtl_write_byte(rtlpriv, REG_AMPDU_MAX_TIME, 0x70); + + /*Set retry limit*/ + rtl_write_word(rtlpriv, REG_RL, 0x0707); + + + /* Set Data / Response auto rate fallack retry count*/ + rtl_write_dword(rtlpriv, REG_DARFRC, 0x01000000); + rtl_write_dword(rtlpriv, REG_DARFRC + 4, 0x07060504); + rtl_write_dword(rtlpriv, REG_RARFRC, 0x01000000); + rtl_write_dword(rtlpriv, REG_RARFRC + 4, 0x07060504); + + rtlpci->reg_bcn_ctrl_val = 0x1d; + rtl_write_byte(rtlpriv, REG_BCN_CTRL, rtlpci->reg_bcn_ctrl_val); + + /* TBTT prohibit hold time. Suggested by designer TimChen. */ + rtl_write_byte(rtlpriv, REG_TBTT_PROHIBIT + 1,0xff); // 8 ms + + /* AGGR_BK_TIME Reg51A 0x16 */ + rtl_write_word(rtlpriv, REG_NAV_PROT_LEN, 0x0040); + + /*For Rx TP. Suggested by SD1 Richard. Added by tynli. 2010.04.12.*/ + rtl_write_dword(rtlpriv, REG_FAST_EDCA_CTRL, 0x03086666); + + rtl_write_byte(rtlpriv, REG_HT_SINGLE_AMPDU, 0x80); + rtl_write_byte(rtlpriv, REG_RX_PKT_LIMIT, 0x20); + rtl_write_word(rtlpriv, REG_MAX_AGGR_NUM, 0x1F1F); +} + +static u16 _rtl8821ae_mdio_read(struct rtl_priv *rtlpriv, u8 addr) +{ + u16 ret = 0; + u8 tmp = 0, count = 0; + + rtl_write_byte(rtlpriv, REG_MDIO_CTL, addr | BIT(6)); + tmp = rtl_read_byte(rtlpriv, REG_MDIO_CTL) & BIT(6) ; + count = 0; + while (tmp && count < 20) { + udelay(10); + tmp = rtl_read_byte(rtlpriv, REG_MDIO_CTL) & BIT(6); + count++; + } + if (0 == tmp) + ret = rtl_read_word(rtlpriv, REG_MDIO_RDATA); + + return ret; +} + +void _rtl8821ae_mdio_write(struct rtl_priv *rtlpriv, u8 addr, u16 data) +{ + u8 tmp = 0, count = 0; + + rtl_write_word(rtlpriv, REG_MDIO_WDATA, data); + rtl_write_byte(rtlpriv, REG_MDIO_CTL, addr | BIT(5)); + tmp = rtl_read_byte(rtlpriv, REG_MDIO_CTL) & BIT(5) ; + count = 0; + while (tmp && count < 20) { + udelay(10); + tmp = rtl_read_byte(rtlpriv, REG_MDIO_CTL) & BIT(5); + count++; + } +} + +static u8 _rtl8821ae_dbi_read(struct rtl_priv *rtlpriv, u16 addr) +{ + u16 read_addr = addr & 0xfffc; + u8 tmp = 0, count = 0, ret = 0; + + rtl_write_word(rtlpriv, REG_DBI_ADDR, read_addr); + rtl_write_byte(rtlpriv, REG_DBI_FLAG, 0x2); + tmp = rtl_read_byte(rtlpriv, REG_DBI_FLAG); + count = 0; + while (tmp && count < 20) { + udelay(10); + tmp = rtl_read_byte(rtlpriv, REG_DBI_FLAG); + count++; + } + if (0 == tmp) { + read_addr = REG_DBI_RDATA + addr % 4; + ret = rtl_read_word(rtlpriv, read_addr); + } + return ret; +} + +void _rtl8821ae_dbi_write(struct rtl_priv *rtlpriv, u16 addr, u8 data) +{ + u8 tmp = 0, count = 0; + u16 wrtie_addr, remainder = addr % 4; + + wrtie_addr = REG_DBI_WDATA + remainder; + rtl_write_byte(rtlpriv, wrtie_addr, data); + + wrtie_addr = (addr & 0xfffc) | (BIT(0) << (remainder + 12)); + rtl_write_word(rtlpriv, REG_DBI_ADDR, wrtie_addr); + + rtl_write_byte(rtlpriv, REG_DBI_FLAG, 0x1); + + tmp = rtl_read_byte(rtlpriv, REG_DBI_FLAG); + count = 0; + while (tmp && count < 20) { + udelay(10); + tmp = rtl_read_byte(rtlpriv, REG_DBI_FLAG); + count++; + } + +} + +static void _rtl8821ae_enable_aspm_back_door(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 tmp; + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) { + if (_rtl8821ae_mdio_read(rtlpriv, 0x04) != 0x8544) + _rtl8821ae_mdio_write(rtlpriv, 0x04, 0x8544); + + if (_rtl8821ae_mdio_read(rtlpriv, 0x0b) != 0x0070) + _rtl8821ae_mdio_write(rtlpriv, 0x0b, 0x0070); + } + + tmp = _rtl8821ae_dbi_read(rtlpriv, 0x70f); + _rtl8821ae_dbi_write(rtlpriv, 0x70f, tmp | BIT(7)); + + tmp = _rtl8821ae_dbi_read(rtlpriv, 0x719); + _rtl8821ae_dbi_write(rtlpriv, 0x719, tmp | BIT(3) | BIT(4)); + + if(rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + { + tmp = _rtl8821ae_dbi_read(rtlpriv, 0x718); + _rtl8821ae_dbi_write(rtlpriv, 0x718, tmp|BIT(4)); + } +} + +void rtl8821ae_enable_hw_security_config(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 sec_reg_value; + u8 tmp; + + RT_TRACE(COMP_INIT, DBG_DMESG, + ("PairwiseEncAlgorithm = %d GroupEncAlgorithm = %d\n", + rtlpriv->sec.pairwise_enc_algorithm, + rtlpriv->sec.group_enc_algorithm)); + + if (rtlpriv->cfg->mod_params->sw_crypto || rtlpriv->sec.use_sw_sec) { + RT_TRACE(COMP_SEC, DBG_DMESG, ("not open hw encryption\n")); + return; + } + + sec_reg_value = SCR_TxEncEnable | SCR_RxDecEnable; + + if (rtlpriv->sec.use_defaultkey) { + sec_reg_value |= SCR_TxUseDK; + sec_reg_value |= SCR_RxUseDK; + } + + sec_reg_value |= (SCR_RXBCUSEDK | SCR_TXBCUSEDK); + + tmp = rtl_read_byte(rtlpriv, REG_CR + 1); + rtl_write_byte(rtlpriv, REG_CR + 1, tmp | BIT(1)); + + RT_TRACE(COMP_SEC, DBG_DMESG, + ("The SECR-value %x \n", sec_reg_value)); + + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_WPA_CONFIG, &sec_reg_value); + +} + +#if 0 +bool _rtl8821ae_check_pcie_dma_hang(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 tmp; + tmp = rtl_read_byte(rtlpriv, REG_DBI_CTRL+3); + if (!(tmp&BIT(2))) { + rtl_write_byte(rtlpriv, REG_DBI_CTRL+3, tmp|BIT(2)); + mdelay(100); + } + + tmp = rtl_read_byte(rtlpriv, REG_DBI_CTRL+3); + if (tmp&BIT(0) || tmp&BIT(1)) { + RT_TRACE(COMP_INIT, DBG_LOUD, + ("rtl8821ae_check_pcie_dma_hang(): TRUE! Reset PCIE DMA!\n")); + return true; + } else { + return false; + } +} + +void _rtl8821ae_reset_pcie_interface_dma(struct ieee80211_hw *hw, + bool mac_power_on, bool watch_dog) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 tmp; + bool release_mac_rx_pause; + u8 backup_pcie_dma_pause; + + RT_TRACE(COMP_INIT, DBG_LOUD, ("_rtl8821ae_reset_pcie_interface_dma()\n")); + + tmp = rtl_read_byte(rtlpriv, REG_RSV_CTRL); + tmp &= ~BIT(1); + rtl_write_byte(rtlpriv, REG_RSV_CTRL, tmp); + tmp = rtl_read_byte(rtlpriv, REG_PMC_DBG_CTRL2); + tmp |= BIT2; + rtl_write_byte(rtlpriv, REG_PMC_DBG_CTRL2, tmp); + + tmp = rtl_read_byte(rtlpriv, REG_RXDMA_CONTROL); + if (tmp & BIT(2)) { + release_mac_rx_pause = false; + } else { + rtl_write_byte(rtlpriv, REG_RXDMA_CONTROL, tmp | BIT(2)); + release_mac_rx_pause = true; + } + backup_pcie_dma_pause = rtl_read_byte(rtlpriv, REG_PCIE_CTRL_REG+1); + if (backup_pcie_dma_pause != 0xFF) + rtl_write_byte(rtlpriv, REG_PCIE_CTRL_REG+1, 0xFF); + + if (mac_power_on) + rtl_write_byte(rtlpriv, REG_CR, 0); + + tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN+1); + tmp &= ~BIT(0); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN+1, tmp); + + tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN+1); + tmp |= ~BIT(0); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN+1, tmp); + + if (mac_power_on) + rtl_write_byte(rtlpriv, REG_CR, 0xFF); + + tmp = rtl_read_byte(rtlpriv, REG_MAC_PHY_CTRL_NORMAL+2); + tmp |= BIT1; + rtl_write_byte(rtlpriv, REG_MAC_PHY_CTRL_NORMAL+2, tmp); + + if (watch_dog) { + u32 rqpn = 0; + u32 rqpn_npq = 0; + u8 tx_page_boundary = _RQPN_Init_8812E(Adapter, &rqpn_npq, &rqpn); + + if(LLT_table_init_8812(Adapter, TX_PAGE_BOUNDARY, RQPN, RQPN_NPQ) == RT_STATUS_FAILURE) + return false; + + PlatformAcquireSpinLock(Adapter, RT_RX_SPINLOCK); + PlatformAcquireSpinLock(Adapter, RT_TX_SPINLOCK); + + // <1> Reset Tx descriptor + Adapter->HalFunc.ResetTxDescHandler(Adapter,Adapter->NumTxDesc); + + // <2> Reset Rx descriptor + Adapter->HalFunc.ResetRxDescHandler(Adapter,Adapter->NumRxDesc); + + // <3> Reset RFDs + FreeRFDs( Adapter, TRUE); + + // <4> Reset TCBs + FreeTCBs( Adapter, TRUE); + + // We should set all Rx desc own bit to 1 to prevent from RDU after enable Rx DMA. 2013.02.18, by tynli. + PrepareAllRxDescBuffer(Adapter); + + PlatformReleaseSpinLock(Adapter, RT_TX_SPINLOCK); + PlatformReleaseSpinLock(Adapter, RT_RX_SPINLOCK); + + // + // Initialize TRx DMA address. + // + // Because set 0x100 to 0x0 will cause the Rx descriptor address 0x340 be cleared to zero on 88EE, + // we should re-initialize Rx desc. address before enable DMA. 2012.11.07. by tynli. + InitTRxDescHwAddress8812AE(Adapter); + } + + // In MAC power on state, BB and RF maybe in ON state, if we release TRx DMA here + // it will cause packets to be started to Tx/Rx, so we release Tx/Rx DMA later. + if(!bInMACPowerOn || bInWatchDog) + { + // 8. release TRX DMA + //write 0x284 bit[18] = 1'b0 + //write 0x301 = 0x00 + if(bReleaseMACRxPause) + { + u1Tmp = PlatformEFIORead1Byte(Adapter, REG_RXDMA_CONTROL); + PlatformEFIOWrite1Byte(Adapter, REG_RXDMA_CONTROL, (u1Tmp&~BIT2)); + } + PlatformEFIOWrite1Byte(Adapter, REG_PCIE_CTRL_REG+1, BackUpPcieDMAPause); + } + + if(IS_HARDWARE_TYPE_8821E(Adapter)) + { + //9. lock system register + // write 0xCC bit[2] = 1'b0 + u1Tmp = PlatformEFIORead1Byte(Adapter, REG_PMC_DBG_CTRL2_8723B); + u1Tmp &= ~(BIT2); + PlatformEFIOWrite1Byte(Adapter, REG_PMC_DBG_CTRL2_8723B, u1Tmp); + } + + return RT_STATUS_SUCCESS; +} +#endif + +// Static MacID Mapping (cf. Used in MacIdDoStaticMapping) ---------- +#define MAC_ID_STATIC_FOR_DEFAULT_PORT 0 +#define MAC_ID_STATIC_FOR_BROADCAST_MULTICAST 1 +#define MAC_ID_STATIC_FOR_BT_CLIENT_START 2 +#define MAC_ID_STATIC_FOR_BT_CLIENT_END 3 +// ----------------------------------------------------------- + +void rtl8821ae_macid_initialize_mediastatus(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 media_rpt[4] = {RT_MEDIA_CONNECT, 1, \ + MAC_ID_STATIC_FOR_BROADCAST_MULTICAST, \ + MAC_ID_STATIC_FOR_BT_CLIENT_END}; + + rtlpriv->cfg->ops->set_hw_reg(hw, \ + HW_VAR_H2C_FW_MEDIASTATUSRPT, media_rpt); + + RT_TRACE(COMP_INIT,DBG_LOUD, \ + ("Initialize MacId media status: from %d to %d\n", \ + MAC_ID_STATIC_FOR_BROADCAST_MULTICAST, \ + MAC_ID_STATIC_FOR_BT_CLIENT_END)); +} + +int rtl8821ae_hw_init(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + bool rtstatus = true; + int err; + u8 tmp_u1b; + u32 nav_upper = WIFI_NAV_UPPER_US; + + rtlpriv->rtlhal.being_init_adapter = true; + rtlpriv->intf_ops->disable_aspm(hw); + + /*YP wowlan not considered*/ + + tmp_u1b = rtl_read_byte(rtlpriv, REG_CR); + if (tmp_u1b!=0 && tmp_u1b != 0xEA) { + rtlhal->b_mac_func_enable = true; + RT_TRACE(COMP_INIT,DBG_LOUD,(" MAC has already power on.\n")); + } else { + rtlhal->b_mac_func_enable = false; + rtlhal->fw_ps_state = FW_PS_STATE_ALL_ON_8821AE; + } + +/* if (_rtl8821ae_check_pcie_dma_hang(hw)) { + _rtl8821ae_reset_pcie_interface_dma(hw,rtlhal->b_mac_func_enable,false); + rtlhal->b_mac_func_enable = false; + } */ + + rtstatus = _rtl8821ae_init_mac(hw); + if (rtstatus != true) { + RT_TRACE(COMP_ERR, DBG_EMERG, ("Init MAC failed\n")); + err = 1; + return err; + } + + tmp_u1b = rtl_read_byte(rtlpriv, REG_SYS_CFG); + tmp_u1b &= 0x7F; + rtl_write_byte(rtlpriv, REG_SYS_CFG, tmp_u1b); + + err = rtl8821ae_download_fw(hw, false); + if (err) { + RT_TRACE(COMP_ERR, DBG_WARNING, + ("Failed to download FW. Init HW " + "without FW now..\n")); + err = 1; + rtlhal->bfw_ready = false; + return err; + } else { + rtlhal->bfw_ready = true; + } + rtlhal->fw_ps_state = FW_PS_STATE_ALL_ON_8821AE; + rtlhal->bfw_clk_change_in_progress = false; + rtlhal->ballow_sw_to_change_hwclc = false; + rtlhal->last_hmeboxnum = 0; + + /*SIC_Init(Adapter); + if(pHalData->AMPDUBurstMode) + PlatformEFIOWrite1Byte(Adapter,REG_AMPDU_BURST_MODE_8812, 0x7F);*/ + + rtl8821ae_phy_mac_config(hw); + /* because last function modify RCR, so we update + * rcr var here, or TP will unstable for receive_config + * is wrong, RX RCR_ACRC32 will cause TP unstabel & Rx + * RCR_APP_ICV will cause mac80211 unassoc for cisco 1252 + rtlpci->receive_config = rtl_read_dword(rtlpriv, REG_RCR); + rtlpci->receive_config &= ~(RCR_ACRC32 | RCR_AICV); + rtl_write_dword(rtlpriv, REG_RCR, rtlpci->receive_config);*/ + rtl8821ae_phy_bb_config(hw); + + rtl8821ae_phy_rf_config(hw); + + _rtl8821ae_hw_configure(hw); + + rtl8821ae_phy_switch_wirelessband(hw, BAND_ON_2_4G); + + /*set wireless mode*/ + + rtlhal->b_mac_func_enable = true; + + rtl_cam_reset_all_entry(hw); + + rtl8821ae_enable_hw_security_config(hw); + + ppsc->rfpwr_state = ERFON; + + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_ETHER_ADDR, mac->mac_addr); + _rtl8821ae_enable_aspm_back_door(hw); + rtlpriv->intf_ops->enable_aspm(hw); + + //rtl8821ae_bt_hw_init(hw); + rtlpriv->rtlhal.being_init_adapter = false; + + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_NAV_UPPER, (u8 *)&nav_upper); + + //rtl8821ae_dm_check_txpower_tracking(hw); + //rtl8821ae_phy_lc_calibrate(hw); + + /* Release Rx DMA*/ + tmp_u1b = rtl_read_byte(rtlpriv, REG_RXDMA_CONTROL); + if (tmp_u1b & BIT(2)) { + /* Release Rx DMA if needed*/ + tmp_u1b &= ~BIT(2); + rtl_write_byte(rtlpriv, REG_RXDMA_CONTROL, tmp_u1b); + } + + /* Release Tx/Rx PCIE DMA if*/ + rtl_write_byte(rtlpriv, REG_PCIE_CTRL_REG + 1, 0); + + rtl8821ae_dm_init(hw); + rtl8821ae_macid_initialize_mediastatus(hw); + + RT_TRACE(COMP_INIT, DBG_LOUD, ("rtl8821ae_hw_init() <====\n")); + return err; +} + +static enum version_8821ae _rtl8821ae_read_chip_version(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + enum version_8821ae version = VERSION_UNKNOWN; + u32 value32; + + value32 = rtl_read_dword(rtlpriv, REG_SYS_CFG1); + RT_TRACE(COMP_INIT, DBG_LOUD, ("ReadChipVersion8812A 0xF0 = 0x%x \n", value32)); + + + + if(rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + rtlphy->rf_type = RF_2T2R; + else if(rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) + rtlphy->rf_type = RF_1T1R; + + RT_TRACE(COMP_INIT, DBG_LOUD, ("RF_Type is %x!!\n", rtlphy->rf_type)); + + + if (value32 & TRP_VAUX_EN) + { + if(rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + { + if(rtlphy->rf_type == RF_2T2R) + version = VERSION_TEST_CHIP_2T2R_8812; + else + version = VERSION_TEST_CHIP_1T1R_8812; + } + else + version = VERSION_TEST_CHIP_8821; + } else { + if(rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + { + u32 rtl_id = ((value32 & CHIP_VER_RTL_MASK) >> 12) +1 ; + + if(rtlphy->rf_type == RF_2T2R) + version = (enum version_8821ae)(CHIP_8812 | NORMAL_CHIP | RF_TYPE_2T2R); + else + version = (enum version_8821ae)(CHIP_8812 | NORMAL_CHIP); + + version = (enum version_8821ae)(version| (rtl_id << 12)); + } + else if(rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) + { + u32 rtl_id = value32 & CHIP_VER_RTL_MASK; + + version = (enum version_8821ae)(CHIP_8821 | NORMAL_CHIP | rtl_id); + } + } + + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Chip RF Type: %s\n", (rtlphy->rf_type == RF_2T2R) ? + "RF_2T2R" : "RF_1T1R")); + + if(rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) + { + /*WL_HWROF_EN.*/ + value32 = rtl_read_dword(rtlpriv, REG_MULTI_FUNC_CTRL); + rtlphy->hw_rof_enable= ((value32 & WL_HWROF_EN) ? 1 : 0); + } + + switch(version) + { + case VERSION_TEST_CHIP_1T1R_8812: + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Chip Version ID: VERSION_TEST_CHIP_1T1R_8812.\n")); + break; + case VERSION_TEST_CHIP_2T2R_8812: + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Chip Version ID: VERSION_TEST_CHIP_2T2R_8812.\n")); + break; + case VERSION_NORMAL_TSMC_CHIP_1T1R_8812: + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Chip Version ID: VERSION_NORMAL_TSMC_CHIP_1T1R_8812.\n")); + break; + case VERSION_NORMAL_TSMC_CHIP_2T2R_8812: + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Chip Version ID: VERSION_NORMAL_TSMC_CHIP_2T2R_8812.\n")); + break; + case VERSION_NORMAL_TSMC_CHIP_1T1R_8812_C_CUT: + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Chip Version ID: VERSION_NORMAL_TSMC_CHIP_1T1R_8812 C CUT.\n")); + break; + case VERSION_NORMAL_TSMC_CHIP_2T2R_8812_C_CUT: + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Chip Version ID: VERSION_NORMAL_TSMC_CHIP_2T2R_8812 C CUT.\n")); + break; + case VERSION_TEST_CHIP_8821: + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Chip Version ID: VERSION_TEST_CHIP_8821.\n")); + break; + case VERSION_NORMAL_TSMC_CHIP_8821: + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Chip Version ID: VERSION_NORMAL_TSMC_CHIP_8821 A CUT.\n")); + break; + case VERSION_NORMAL_TSMC_CHIP_8821_B_CUT: + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Chip Version ID: VERSION_NORMAL_TSMC_CHIP_8821 B CUT.\n")); + break; + default: + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Chip Version ID: Unknow (0x%X).\n", version)); + break; + } + + return version; +} + +static int _rtl8821ae_set_media_status(struct ieee80211_hw *hw, + enum nl80211_iftype type) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 bt_msr = rtl_read_byte(rtlpriv, MSR); + enum led_ctl_mode ledaction = LED_CTL_NO_LINK; + bt_msr &= 0xfc; + + rtl_write_dword(rtlpriv, REG_BCN_CTRL, 0); + RT_TRACE(COMP_BEACON, DBG_LOUD, + ("clear 0x550 when set HW_VAR_MEDIA_STATUS\n")); + + if (type == NL80211_IFTYPE_UNSPECIFIED || + type == NL80211_IFTYPE_STATION) { + _rtl8821ae_stop_tx_beacon(hw); + _rtl8821ae_enable_bcn_sub_func(hw); + } else if (type == NL80211_IFTYPE_ADHOC || + type == NL80211_IFTYPE_AP) { + _rtl8821ae_resume_tx_beacon(hw); + _rtl8821ae_disable_bcn_sub_func(hw); + } else { + RT_TRACE(COMP_ERR, DBG_WARNING,("Set HW_VAR_MEDIA_STATUS: " + "No such media status(%x).\n", type)); + } + + switch (type) { + case NL80211_IFTYPE_UNSPECIFIED: + bt_msr |= MSR_NOLINK; + ledaction = LED_CTL_LINK; + RT_TRACE(COMP_INIT, DBG_TRACE, ("Set Network type to NO LINK!\n")); + break; + case NL80211_IFTYPE_ADHOC: + bt_msr |= MSR_ADHOC; + RT_TRACE(COMP_INIT, DBG_TRACE, ("Set Network type to Ad Hoc!\n")); + break; + case NL80211_IFTYPE_STATION: + bt_msr |= MSR_INFRA; + ledaction = LED_CTL_LINK; + RT_TRACE(COMP_INIT, DBG_TRACE, ("Set Network type to STA!\n")); + break; + case NL80211_IFTYPE_AP: + bt_msr |= MSR_AP; + RT_TRACE(COMP_INIT, DBG_TRACE, ("Set Network type to AP!\n")); + break; + default: + RT_TRACE(COMP_ERR, DBG_EMERG, ("Network type %d not support!\n", type)); + return 1; + break; + + } + + rtl_write_byte(rtlpriv, (MSR), bt_msr); + rtlpriv->cfg->ops->led_control(hw, ledaction); + if ((bt_msr & 0xfc) == MSR_AP) + rtl_write_byte(rtlpriv, REG_BCNTCFG + 1, 0x00); + else + rtl_write_byte(rtlpriv, REG_BCNTCFG + 1, 0x66); + + return 0; +} + +void rtl8821ae_set_check_bssid(struct ieee80211_hw *hw, bool check_bssid) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + u32 reg_rcr = rtlpci->receive_config; + + if (rtlpriv->psc.rfpwr_state != ERFON) + return; + + if (check_bssid == true) { + reg_rcr |= (RCR_CBSSID_DATA | RCR_CBSSID_BCN); + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RCR, + (u8 *) (®_rcr)); + _rtl8821ae_set_bcn_ctrl_reg(hw, 0, BIT(4)); + } else if (check_bssid == false) { + reg_rcr &= (~(RCR_CBSSID_DATA | RCR_CBSSID_BCN)); + _rtl8821ae_set_bcn_ctrl_reg(hw, BIT(4), 0); + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_RCR, (u8 *) (®_rcr)); + } + +} + +int rtl8821ae_set_network_type(struct ieee80211_hw *hw, enum nl80211_iftype type) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + RT_TRACE(COMP_INIT, DBG_LOUD, ("rtl8821ae_set_network_type!\n")); + + if (_rtl8821ae_set_media_status(hw, type)) + return -EOPNOTSUPP; + + if (rtlpriv->mac80211.link_state == MAC80211_LINKED) { + if (type != NL80211_IFTYPE_AP) + rtl8821ae_set_check_bssid(hw, true); + } else { + rtl8821ae_set_check_bssid(hw, false); + } + + return 0; +} + +/* don't set REG_EDCA_BE_PARAM here because mac80211 will send pkt when scan */ +void rtl8821ae_set_qos(struct ieee80211_hw *hw, int aci) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + rtl8821ae_dm_init_edca_turbo(hw); + switch (aci) { + case AC1_BK: + rtl_write_dword(rtlpriv, REG_EDCA_BK_PARAM, 0xa44f); + break; + case AC0_BE: + /* rtl_write_dword(rtlpriv, REG_EDCA_BE_PARAM, u4b_ac_param); */ + break; + case AC2_VI: + rtl_write_dword(rtlpriv, REG_EDCA_VI_PARAM, 0x5e4322); + break; + case AC3_VO: + rtl_write_dword(rtlpriv, REG_EDCA_VO_PARAM, 0x2f3222); + break; + default: + RT_ASSERT(false, ("invalid aci: %d !\n", aci)); + break; + } +} + +void rtl8821ae_enable_interrupt(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + + rtl_write_dword(rtlpriv, REG_HIMR, rtlpci->irq_mask[0] & 0xFFFFFFFF); + rtl_write_dword(rtlpriv, REG_HIMRE, rtlpci->irq_mask[1] & 0xFFFFFFFF); + rtlpci->irq_enabled = true; + /* there are some C2H CMDs have been sent before system interrupt is enabled, e.g., C2H, CPWM. + *So we need to clear all C2H events that FW has notified, otherwise FW won't schedule any commands anymore. + */ + //rtl_write_byte(rtlpriv, REG_C2HEVT_CLEAR, 0); + /*enable system interrupt*/ + rtl_write_dword(rtlpriv, REG_HSIMR, rtlpci->sys_irq_mask & 0xFFFFFFFF); +} + +void rtl8821ae_disable_interrupt(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + + rtl_write_dword(rtlpriv, REG_HIMR, IMR_DISABLED); + rtl_write_dword(rtlpriv, REG_HIMRE, IMR_DISABLED); + rtlpci->irq_enabled = false; + synchronize_irq(rtlpci->pdev->irq); +} + +static void _rtl8821ae_poweroff_adapter(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 u1b_tmp; + + rtlhal->b_mac_func_enable = false; + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) { + /* Combo (PCIe + USB) Card and PCIe-MF Card */ + /* 1. Run LPS WL RFOFF flow */ + //RT_TRACE(COMP_INIT, DBG_LOUD, ("=====>CardDisableRTL8812E,RTL8821A_NIC_LPS_ENTER_FLOW\n")); + rtl_hal_pwrseqcmdparsing(rtlpriv, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, + PWR_INTF_PCI_MSK, RTL8821A_NIC_LPS_ENTER_FLOW); + } + /* 2. 0x1F[7:0] = 0 */ + /* turn off RF */ + //rtl_write_byte(rtlpriv, REG_RF_CTRL, 0x00); + if ((rtl_read_byte(rtlpriv, REG_MCUFWDL) & BIT(7)) && + rtlhal->bfw_ready ) { + rtl8821ae_firmware_selfreset(hw); + } + + /* Reset MCU. Suggested by Filen. */ + u1b_tmp = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN+1); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN+1, (u1b_tmp & (~BIT(2)))); + + /* g. MCUFWDL 0x80[1:0]=0 */ + /* reset MCU ready status */ + rtl_write_byte(rtlpriv, REG_MCUFWDL, 0x00); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) { + /* HW card disable configuration. */ + rtl_hal_pwrseqcmdparsing(rtlpriv, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, + PWR_INTF_PCI_MSK, RTL8821A_NIC_DISABLE_FLOW); + } else { + /* HW card disable configuration. */ + rtl_hal_pwrseqcmdparsing(rtlpriv, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, + PWR_INTF_PCI_MSK, RTL8812_NIC_DISABLE_FLOW); + } + + /* Reset MCU IO Wrapper */ + u1b_tmp = rtl_read_byte(rtlpriv, REG_RSV_CTRL + 1); + rtl_write_byte(rtlpriv, REG_RSV_CTRL + 1, (u1b_tmp & (~BIT(0)))); + u1b_tmp = rtl_read_byte(rtlpriv, REG_RSV_CTRL + 1); + rtl_write_byte(rtlpriv, REG_RSV_CTRL + 1, u1b_tmp | BIT(0)); + + /* 7. RSV_CTRL 0x1C[7:0] = 0x0E */ + /* lock ISO/CLK/Power control register */ + rtl_write_byte(rtlpriv, REG_RSV_CTRL, 0x0e); +} + +void rtl8821ae_card_disable(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + enum nl80211_iftype opmode; + + RT_TRACE(COMP_INIT, DBG_LOUD, + ("rtl8821ae_card_disable.\n")); + + mac->link_state = MAC80211_NOLINK; + opmode = NL80211_IFTYPE_UNSPECIFIED; + _rtl8821ae_set_media_status(hw, opmode); + if (rtlpriv->rtlhal.driver_is_goingto_unload || + ppsc->rfoff_reason > RF_CHANGE_BY_PS) + rtlpriv->cfg->ops->led_control(hw, LED_CTL_POWER_OFF); + RT_SET_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC); + _rtl8821ae_poweroff_adapter(hw); + + /* after power off we should do iqk again */ + rtlpriv->phy.iqk_initialized = false; +} + +void rtl8821ae_interrupt_recognized(struct ieee80211_hw *hw, + u32 *p_inta, u32 *p_intb) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + + *p_inta = rtl_read_dword(rtlpriv, ISR) & rtlpci->irq_mask[0]; + rtl_write_dword(rtlpriv, ISR, *p_inta); + + + *p_intb = rtl_read_dword(rtlpriv, REG_HISRE) & rtlpci->irq_mask[1]; + rtl_write_dword(rtlpriv, REG_HISRE, *p_intb); + +} + + +void rtl8821ae_set_beacon_related_registers(struct ieee80211_hw *hw) +{ + + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + u16 bcn_interval, atim_window; + + bcn_interval = mac->beacon_interval; + atim_window = 2; /*FIX MERGE */ + rtl8821ae_disable_interrupt(hw); + rtl_write_word(rtlpriv, REG_ATIMWND, atim_window); + rtl_write_word(rtlpriv, REG_BCN_INTERVAL, bcn_interval); + rtl_write_word(rtlpriv, REG_BCNTCFG, 0x660f); + rtl_write_byte(rtlpriv, REG_RXTSF_OFFSET_CCK, 0x18); + rtl_write_byte(rtlpriv, REG_RXTSF_OFFSET_OFDM, 0x18); + rtl_write_byte(rtlpriv, 0x606, 0x30); + rtlpci->reg_bcn_ctrl_val |= BIT(3); + rtl_write_byte(rtlpriv, REG_BCN_CTRL, (u8) rtlpci->reg_bcn_ctrl_val); + rtl8821ae_enable_interrupt(hw); +} + +void rtl8821ae_set_beacon_interval(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + u16 bcn_interval = mac->beacon_interval; + + RT_TRACE(COMP_BEACON, DBG_DMESG, + ("beacon_interval:%d\n", bcn_interval)); + rtl8821ae_disable_interrupt(hw); + rtl_write_word(rtlpriv, REG_BCN_INTERVAL, bcn_interval); + rtl8821ae_enable_interrupt(hw); +} + +void rtl8821ae_update_interrupt_mask(struct ieee80211_hw *hw, + u32 add_msr, u32 rm_msr) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + + RT_TRACE(COMP_INTR, DBG_LOUD, + ("add_msr:%x, rm_msr:%x\n", add_msr, rm_msr)); + + if (add_msr) + rtlpci->irq_mask[0] |= add_msr; + if (rm_msr) + rtlpci->irq_mask[0] &= (~rm_msr); + rtl8821ae_disable_interrupt(hw); + rtl8821ae_enable_interrupt(hw); +} + +static u8 _rtl8821ae_get_chnl_group(u8 chnl) +{ + u8 group = 0; + + if (chnl <= 14) { + if (1 <= chnl && chnl <= 2 ) + group = 0; + else if (3 <= chnl && chnl <= 5 ) + group = 1; + else if (6 <= chnl && chnl <= 8 ) + group = 2; + else if (9 <= chnl && chnl <= 11) + group = 3; + else /*if (12 <= chnl && chnl <= 14)*/ + group = 4; + } else { + if (36 <= chnl && chnl <= 42) + group = 0; + else if (44 <= chnl && chnl <= 48) + group = 1; + else if (50 <= chnl && chnl <= 58) + group = 2; + else if (60 <= chnl && chnl <= 64) + group = 3; + else if (100 <= chnl && chnl <= 106) + group = 4; + else if (108 <= chnl && chnl <= 114) + group = 5; + else if (116 <= chnl && chnl <= 122) + group = 6; + else if (124 <= chnl && chnl <= 130) + group = 7; + else if (132 <= chnl && chnl <= 138) + group = 8; + else if (140 <= chnl && chnl <= 144) + group = 9; + else if (149 <= chnl && chnl <= 155) + group = 10; + else if (157 <= chnl && chnl <= 161) + group = 11; + else if (165 <= chnl && chnl <= 171) + group = 12; + else if (173 <= chnl && chnl <= 177) + group = 13; + else + /*RT_TRACE(COMP_EFUSE,DBG_LOUD, + ("5G, Channel %d in Group not found \n",chnl));*/ + RT_ASSERT(!COMP_EFUSE, + ("5G, Channel %d in Group not found \n",chnl)); + } + return group; +} + +static void _rtl8821ae_read_power_value_fromprom(struct ieee80211_hw *hw, + struct txpower_info_2g *pwrinfo24g, + struct txpower_info_5g *pwrinfo5g, + bool autoload_fail, + u8 *hwinfo) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 rfPath, eeAddr=EEPROM_TX_PWR_INX, group,TxCount=0; + + RT_TRACE(COMP_INIT, DBG_LOUD, ("hal_ReadPowerValueFromPROM8821ae(): PROMContent[0x%x]=0x%x\n", (eeAddr+1), hwinfo[eeAddr+1])); + if (0xFF == hwinfo[eeAddr+1]) /*YJ,add,120316*/ + autoload_fail = true; + + if (autoload_fail) + { + RT_TRACE(COMP_INIT, DBG_LOUD, ("auto load fail : Use Default value!\n")); + for (rfPath = 0 ; rfPath < MAX_RF_PATH ; rfPath++) { + /*2.4G default value*/ + for (group = 0 ; group < MAX_CHNL_GROUP_24G; group++) { + pwrinfo24g->index_cck_base[rfPath][group] = 0x2D; + pwrinfo24g->index_bw40_base[rfPath][group] = 0x2D; + } + for (TxCount = 0;TxCount < MAX_TX_COUNT;TxCount++) { + if (TxCount == 0) { + pwrinfo24g->bw20_diff[rfPath][0] = 0x02; + pwrinfo24g->ofdm_diff[rfPath][0] = 0x04; + } else { + pwrinfo24g->bw20_diff[rfPath][TxCount] = 0xFE; + pwrinfo24g->bw40_diff[rfPath][TxCount] = 0xFE; + pwrinfo24g->cck_diff[rfPath][TxCount] = 0xFE; + pwrinfo24g->ofdm_diff[rfPath][TxCount] = 0xFE; + } + } + /*5G default value*/ + for (group = 0 ; group < MAX_CHNL_GROUP_5G; group++) + pwrinfo5g->index_bw40_base[rfPath][group] = 0x2A; + + for (TxCount = 0; TxCount < MAX_TX_COUNT; TxCount++) { + if (TxCount == 0) { + pwrinfo5g->ofdm_diff[rfPath][0] = 0x04; + pwrinfo5g->bw20_diff[rfPath][0] = 0x00; + pwrinfo5g->bw80_diff[rfPath][0] = 0xFE; + pwrinfo5g->bw160_diff[rfPath][0] = 0xFE; + } else { + pwrinfo5g->ofdm_diff[rfPath][0] = 0xFE; + pwrinfo5g->bw20_diff[rfPath][0] = 0xFE; + pwrinfo5g->bw40_diff[rfPath][0] = 0xFE; + pwrinfo5g->bw80_diff[rfPath][0] = 0xFE; + pwrinfo5g->bw160_diff[rfPath][0] = 0xFE; + } + } + } + return; + } + + rtl_priv(hw)->efuse.b_txpwr_fromeprom = true; + + for (rfPath = 0 ; rfPath < MAX_RF_PATH ; rfPath++) { + /*2.4G default value*/ + for (group = 0 ; group < MAX_CHNL_GROUP_24G; group++) { + pwrinfo24g->index_cck_base[rfPath][group] = hwinfo[eeAddr++]; + if (pwrinfo24g->index_cck_base[rfPath][group] == 0xFF) + pwrinfo24g->index_cck_base[rfPath][group] = 0x2D; + } + for (group = 0 ; group < MAX_CHNL_GROUP_24G - 1; group++) { + pwrinfo24g->index_bw40_base[rfPath][group] = hwinfo[eeAddr++]; + if (pwrinfo24g->index_bw40_base[rfPath][group] == 0xFF) + pwrinfo24g->index_bw40_base[rfPath][group] = 0x2D; + } + for (TxCount = 0; TxCount < MAX_TX_COUNT; TxCount ++) { + if (TxCount == 0) { + pwrinfo24g->bw40_diff[rfPath][TxCount] = 0; + if (hwinfo[eeAddr] == 0xFF) { + pwrinfo24g->bw20_diff[rfPath][TxCount] = 0x02; + } else { + pwrinfo24g->bw20_diff[rfPath][TxCount] = (hwinfo[eeAddr] & 0xf0) >> 4; + if (pwrinfo24g->bw20_diff[rfPath][TxCount] & BIT(3)) /*bit sign number to 8 bit sign number*/ + pwrinfo24g->bw20_diff[rfPath][TxCount] |= 0xF0; + } + + if (hwinfo[eeAddr] == 0xFF) { + pwrinfo24g->ofdm_diff[rfPath][TxCount] = 0x04; + } else { + pwrinfo24g->ofdm_diff[rfPath][TxCount] = (hwinfo[eeAddr] & 0x0f); + if(pwrinfo24g->ofdm_diff[rfPath][TxCount] & BIT(3)) /*bit sign number to 8 bit sign number*/ + pwrinfo24g->ofdm_diff[rfPath][TxCount] |= 0xF0; + } + pwrinfo24g->cck_diff[rfPath][TxCount] = 0; + eeAddr++; + } else { + if (hwinfo[eeAddr] == 0xFF) { + pwrinfo24g->bw40_diff[rfPath][TxCount] = 0xFE; + } else { + pwrinfo24g->bw40_diff[rfPath][TxCount] = (hwinfo[eeAddr]&0xf0) >> 4; + if (pwrinfo24g->bw40_diff[rfPath][TxCount] & BIT(3)) + pwrinfo24g->bw40_diff[rfPath][TxCount] |= 0xF0; + } + + if (hwinfo[eeAddr] == 0xFF) { + pwrinfo24g->bw20_diff[rfPath][TxCount] = 0xFE; + } else { + pwrinfo24g->bw20_diff[rfPath][TxCount] = (hwinfo[eeAddr] & 0x0f); + if (pwrinfo24g->bw20_diff[rfPath][TxCount] & BIT(3)) + pwrinfo24g->bw20_diff[rfPath][TxCount] |= 0xF0; + } + + eeAddr++; + + if (hwinfo[eeAddr] == 0xFF) { + pwrinfo24g->ofdm_diff[rfPath][TxCount] = 0xFE; + } else { + pwrinfo24g->ofdm_diff[rfPath][TxCount] = (hwinfo[eeAddr] & 0xf0) >> 4; + if(pwrinfo24g->ofdm_diff[rfPath][TxCount] & BIT(3)) + pwrinfo24g->ofdm_diff[rfPath][TxCount] |= 0xF0; + } + + if (hwinfo[eeAddr] == 0xFF) { + pwrinfo24g->cck_diff[rfPath][TxCount] = 0xFE; + } else { + pwrinfo24g->cck_diff[rfPath][TxCount] = (hwinfo[eeAddr] & 0x0f); + if(pwrinfo24g->cck_diff[rfPath][TxCount] & BIT(3)) + pwrinfo24g->cck_diff[rfPath][TxCount] |= 0xF0; + } + eeAddr++; + } + } + + /*5G default value*/ + for (group = 0 ; group < MAX_CHNL_GROUP_5G; group ++) { + pwrinfo5g->index_bw40_base[rfPath][group] = hwinfo[eeAddr++]; + if (pwrinfo5g->index_bw40_base[rfPath][group] == 0xFF) + pwrinfo5g->index_bw40_base[rfPath][group] = 0xFE; + } + + for (TxCount = 0; TxCount < MAX_TX_COUNT; TxCount++) { + if (TxCount == 0) { + pwrinfo5g->bw40_diff[rfPath][TxCount] = 0; + if (hwinfo[eeAddr] == 0xFF) { + pwrinfo5g->bw20_diff[rfPath][TxCount] = 0x0; + } else { + pwrinfo5g->bw20_diff[rfPath][0] = (hwinfo[eeAddr] & 0xf0) >> 4; + if(pwrinfo5g->bw20_diff[rfPath][TxCount] & BIT(3)) + pwrinfo5g->bw20_diff[rfPath][TxCount] |= 0xF0; + } + + if (hwinfo[eeAddr] == 0xFF) { + pwrinfo5g->ofdm_diff[rfPath][TxCount] = 0x4; + } else { + pwrinfo5g->ofdm_diff[rfPath][0] = (hwinfo[eeAddr] & 0x0f); + if(pwrinfo5g->ofdm_diff[rfPath][TxCount] & BIT(3)) + pwrinfo5g->ofdm_diff[rfPath][TxCount] |= 0xF0; + } + eeAddr++; + } else { + if (hwinfo[eeAddr] == 0xFF) { + pwrinfo5g->bw40_diff[rfPath][TxCount] = 0xFE; + } else { + pwrinfo5g->bw40_diff[rfPath][TxCount]= (hwinfo[eeAddr] & 0xf0) >> 4; + if(pwrinfo5g->bw40_diff[rfPath][TxCount] & BIT(3)) + pwrinfo5g->bw40_diff[rfPath][TxCount] |= 0xF0; + } + + if (hwinfo[eeAddr] == 0xFF) { + pwrinfo5g->bw20_diff[rfPath][TxCount] = 0xFE; + } else { + pwrinfo5g->bw20_diff[rfPath][TxCount] = (hwinfo[eeAddr] & 0x0f); + if(pwrinfo5g->bw20_diff[rfPath][TxCount] & BIT(3)) + pwrinfo5g->bw20_diff[rfPath][TxCount] |= 0xF0; + } + eeAddr++; + } + } + + if (hwinfo[eeAddr] == 0xFF) { + pwrinfo5g->ofdm_diff[rfPath][1] = 0xFE; + pwrinfo5g->ofdm_diff[rfPath][2] = 0xFE; + } else { + pwrinfo5g->ofdm_diff[rfPath][1] = (hwinfo[eeAddr] & 0xf0) >> 4; + pwrinfo5g->ofdm_diff[rfPath][2] = (hwinfo[eeAddr] & 0x0f); + } + eeAddr++; + if (hwinfo[eeAddr] == 0xFF) + pwrinfo5g->ofdm_diff[rfPath][3] = 0xFE; + else + pwrinfo5g->ofdm_diff[rfPath][3] = (hwinfo[eeAddr] & 0x0f); + + eeAddr++; + + for (TxCount = 1; TxCount < MAX_TX_COUNT; TxCount++) { + if (pwrinfo5g->ofdm_diff[rfPath][TxCount] == 0xFF) + pwrinfo5g->ofdm_diff[rfPath][TxCount] = 0xFE; + else if(pwrinfo5g->ofdm_diff[rfPath][TxCount] & BIT(3)) + pwrinfo5g->ofdm_diff[rfPath][TxCount] |= 0xF0; + } + for (TxCount = 0; TxCount < MAX_TX_COUNT; TxCount++) { + if (hwinfo[eeAddr] == 0xFF) { + pwrinfo5g->bw80_diff[rfPath][TxCount] = 0xFE; + } else { + pwrinfo5g->bw80_diff[rfPath][TxCount] = (hwinfo[eeAddr] & 0xf0) >> 4; + if(pwrinfo5g->bw80_diff[rfPath][TxCount] & BIT(3)) //4bit sign number to 8 bit sign number + pwrinfo5g->bw80_diff[rfPath][TxCount] |= 0xF0; + } + + if (hwinfo[eeAddr] == 0xFF) { + pwrinfo5g->bw160_diff[rfPath][TxCount] = 0xFE; + } else { + pwrinfo5g->bw160_diff[rfPath][TxCount]= (hwinfo[eeAddr] & 0x0f); + if(pwrinfo5g->bw160_diff[rfPath][TxCount] & BIT(3)) //4bit sign number to 8 bit sign number + pwrinfo5g->bw160_diff[rfPath][TxCount] |= 0xF0; + } + eeAddr++; + } + } +} + +static void _rtl8812ae_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, + bool autoload_fail, + u8 *hwinfo) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct txpower_info_2g pwrinfo24g; + struct txpower_info_5g pwrinfo5g; + u8 channel5g[CHANNEL_MAX_NUMBER_5G] = + {36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,100,102,104,106,108,110,112, + 114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,149,151, + 153,155,157,159,161,163,165,167,168,169,171,173,175,177}; + u8 channel5g_80m[CHANNEL_MAX_NUMBER_5G_80M] = {42, 58, 106, 122, 138, 155, 171}; + u8 rf_path, index; + u8 i; + + _rtl8821ae_read_power_value_fromprom(hw, &pwrinfo24g, &pwrinfo5g, autoload_fail, hwinfo); + + for (rf_path = 0; rf_path < 2; rf_path++) { + for (i = 0; i < CHANNEL_MAX_NUMBER_2G; i++) { + index = _rtl8821ae_get_chnl_group(i + 1); + + if (i == CHANNEL_MAX_NUMBER_2G - 1) { + rtlefuse->txpwrlevel_cck[rf_path][i] = + pwrinfo24g.index_cck_base[rf_path][5]; + rtlefuse->txpwrlevel_ht40_1s[rf_path][i] = + pwrinfo24g.index_bw40_base[rf_path][index]; + } else { + rtlefuse->txpwrlevel_cck[rf_path][i] = + pwrinfo24g.index_cck_base[rf_path][index]; + rtlefuse->txpwrlevel_ht40_1s[rf_path][i] = + pwrinfo24g.index_bw40_base[rf_path][index]; + } + } + + for (i = 0; i < CHANNEL_MAX_NUMBER_5G; i++) { + index = _rtl8821ae_get_chnl_group(channel5g[i]); + rtlefuse->txpwr_5g_bw40base[rf_path][i] = pwrinfo5g.index_bw40_base[rf_path][index]; + } + for (i = 0; i < CHANNEL_MAX_NUMBER_5G_80M; i++) { + u8 upper, lower; + index = _rtl8821ae_get_chnl_group(channel5g_80m[i]); + upper = pwrinfo5g.index_bw40_base[rf_path][index]; + lower = pwrinfo5g.index_bw40_base[rf_path][index + 1]; + + rtlefuse->txpwr_5g_bw80base[rf_path][i] = (upper + lower) / 2; + } + for (i = 0; i < MAX_TX_COUNT; i++) { + rtlefuse->txpwr_cckdiff[rf_path][i] = pwrinfo24g.cck_diff[rf_path][i]; + rtlefuse->txpwr_legacyhtdiff[rf_path][i] = pwrinfo24g.ofdm_diff[rf_path][i]; + rtlefuse->txpwr_ht20diff[rf_path][i] = pwrinfo24g.bw20_diff[rf_path][i]; + rtlefuse->txpwr_ht40diff[rf_path][i] = pwrinfo24g.bw40_diff[rf_path][i]; + + rtlefuse->txpwr_5g_ofdmdiff[rf_path][i] = pwrinfo5g.ofdm_diff[rf_path][i]; + rtlefuse->txpwr_5g_bw20diff[rf_path][i] = pwrinfo5g.bw20_diff[rf_path][i]; + rtlefuse->txpwr_5g_bw40diff[rf_path][i] = pwrinfo5g.bw40_diff[rf_path][i]; + rtlefuse->txpwr_5g_bw80diff[rf_path][i] = pwrinfo5g.bw80_diff[rf_path][i]; + } + } + + if (!autoload_fail){ + rtlefuse->eeprom_regulatory = + hwinfo[EEPROM_RF_BOARD_OPTION] & 0x07;/*bit0~2*/ + if (hwinfo[EEPROM_RF_BOARD_OPTION] == 0xFF) + rtlefuse->eeprom_regulatory = 0; + } else { + rtlefuse->eeprom_regulatory = 0; + } + + RTPRINT(rtlpriv, FINIT, INIT_TxPower, + ("eeprom_regulatory = 0x%x\n", rtlefuse->eeprom_regulatory )); +} + +static void _rtl8821ae_read_txpower_info_from_hwpg(struct ieee80211_hw *hw, + bool autoload_fail, + u8 *hwinfo) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct txpower_info_2g pwrinfo24g; + struct txpower_info_5g pwrinfo5g; + u8 channel5g[CHANNEL_MAX_NUMBER_5G] = + {36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,100,102,104,106,108,110,112, + 114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,149,151, + 153,155,157,159,161,163,165,167,168,169,171,173,175,177}; + u8 channel5g_80m[CHANNEL_MAX_NUMBER_5G_80M] = {42, 58, 106, 122, 138, 155, 171}; + u8 rf_path, index; + u8 i; + + _rtl8821ae_read_power_value_fromprom(hw, &pwrinfo24g, &pwrinfo5g, autoload_fail, hwinfo); + + for (rf_path = 0; rf_path < 2; rf_path++) { + for (i = 0; i < CHANNEL_MAX_NUMBER_2G; i++) { + index = _rtl8821ae_get_chnl_group(i + 1); + + if (i == CHANNEL_MAX_NUMBER_2G - 1) { + rtlefuse->txpwrlevel_cck[rf_path][i] = pwrinfo24g.index_cck_base[rf_path][5]; + rtlefuse->txpwrlevel_ht40_1s[rf_path][i] = pwrinfo24g.index_bw40_base[rf_path][index]; + } else { + rtlefuse->txpwrlevel_cck[rf_path][i] = pwrinfo24g.index_cck_base[rf_path][index]; + rtlefuse->txpwrlevel_ht40_1s[rf_path][i] = pwrinfo24g.index_bw40_base[rf_path][index]; + } + } + + for (i = 0; i < CHANNEL_MAX_NUMBER_5G; i++) { + index = _rtl8821ae_get_chnl_group(channel5g[i]); + rtlefuse->txpwr_5g_bw40base[rf_path][i] = pwrinfo5g.index_bw40_base[rf_path][index]; + } + for (i = 0; i < CHANNEL_MAX_NUMBER_5G_80M; i++) { + u8 upper, lower; + index = _rtl8821ae_get_chnl_group(channel5g_80m[i]); + upper = pwrinfo5g.index_bw40_base[rf_path][index]; + lower = pwrinfo5g.index_bw40_base[rf_path][index + 1]; + + rtlefuse->txpwr_5g_bw80base[rf_path][i] = (upper + lower) / 2; + } + for (i = 0; i < MAX_TX_COUNT; i++) { + rtlefuse->txpwr_cckdiff[rf_path][i] = pwrinfo24g.cck_diff[rf_path][i]; + rtlefuse->txpwr_legacyhtdiff[rf_path][i] = pwrinfo24g.ofdm_diff[rf_path][i]; + rtlefuse->txpwr_ht20diff[rf_path][i] = pwrinfo24g.bw20_diff[rf_path][i]; + rtlefuse->txpwr_ht40diff[rf_path][i] = pwrinfo24g.bw40_diff[rf_path][i]; + + rtlefuse->txpwr_5g_ofdmdiff[rf_path][i] = pwrinfo5g.ofdm_diff[rf_path][i]; + rtlefuse->txpwr_5g_bw20diff[rf_path][i] = pwrinfo5g.bw20_diff[rf_path][i]; + rtlefuse->txpwr_5g_bw40diff[rf_path][i] = pwrinfo5g.bw40_diff[rf_path][i]; + rtlefuse->txpwr_5g_bw80diff[rf_path][i] = pwrinfo5g.bw80_diff[rf_path][i]; + } + } + + if (!autoload_fail){ + rtlefuse->eeprom_regulatory = hwinfo[EEPROM_RF_BOARD_OPTION] & 0x07;/*bit0~2*/ + if (hwinfo[EEPROM_RF_BOARD_OPTION] == 0xFF) + rtlefuse->eeprom_regulatory = 0; + } else { + rtlefuse->eeprom_regulatory = 0; + } + + RTPRINT(rtlpriv, FINIT, INIT_TxPower, + ("eeprom_regulatory = 0x%x\n", rtlefuse->eeprom_regulatory )); +} + +static void _rtl8812ae_read_adapter_info(struct ieee80211_hw *hw, bool b_pseudo_test ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + u16 i, usvalue; + u8 hwinfo[HWSET_MAX_SIZE]; + u16 eeprom_id; + + if (b_pseudo_test) { + /* need add */ + } + + if (rtlefuse->epromtype == EEPROM_BOOT_EFUSE) { + rtl_efuse_shadow_map_update(hw); + memcpy(hwinfo, &rtlefuse->efuse_map[EFUSE_INIT_MAP][0], + HWSET_MAX_SIZE); + } else if (rtlefuse->epromtype == EEPROM_93C46) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("RTL819X Not boot from eeprom, check it !!")); + } + + RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_DMESG, ("MAP \n"), + hwinfo, HWSET_MAX_SIZE); + + eeprom_id = *((u16 *) & hwinfo[0]); + if (eeprom_id != RTL_EEPROM_ID) { + RT_TRACE(COMP_ERR, DBG_WARNING, + ("EEPROM ID(%#x) is invalid!!\n", eeprom_id)); + rtlefuse->autoload_failflag = true; + } else { + RT_TRACE(COMP_INIT, DBG_LOUD, ("Autoload OK\n")); + rtlefuse->autoload_failflag = false; + } + + if (rtlefuse->autoload_failflag == true) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("RTL8812AE autoload_failflag, check it !!")); + return; + } + + rtlefuse->eeprom_version = *(u8 *) & hwinfo[EEPROM_VERSION]; + if (rtlefuse->eeprom_version == 0xff) + rtlefuse->eeprom_version = 0; + + RT_TRACE(COMP_INIT, DBG_LOUD, + ("EEPROM version: 0x%2x\n", rtlefuse->eeprom_version)); + + rtlefuse->eeprom_vid = *(u16 *) &hwinfo[EEPROM_VID]; + rtlefuse->eeprom_did = *(u16 *) &hwinfo[EEPROM_DID]; + rtlefuse->eeprom_svid = *(u16 *) &hwinfo[EEPROM_SVID]; + rtlefuse->eeprom_smid = *(u16 *) &hwinfo[EEPROM_SMID]; + RT_TRACE(COMP_INIT, DBG_LOUD, + ("EEPROMId = 0x%4x\n", eeprom_id)); + RT_TRACE(COMP_INIT, DBG_LOUD, + ("EEPROM VID = 0x%4x\n", rtlefuse->eeprom_vid)); + RT_TRACE(COMP_INIT, DBG_LOUD, + ("EEPROM DID = 0x%4x\n", rtlefuse->eeprom_did)); + RT_TRACE(COMP_INIT, DBG_LOUD, + ("EEPROM SVID = 0x%4x\n", rtlefuse->eeprom_svid)); + RT_TRACE(COMP_INIT, DBG_LOUD, + ("EEPROM SMID = 0x%4x\n", rtlefuse->eeprom_smid)); + + /*customer ID*/ + rtlefuse->eeprom_oemid = *(u8 *) & hwinfo[EEPROM_CUSTOMER_ID]; + if (rtlefuse->eeprom_oemid == 0xFF) + rtlefuse->eeprom_oemid = 0; + + RT_TRACE(COMP_INIT, DBG_LOUD, + ("EEPROM Customer ID: 0x%2x\n", rtlefuse->eeprom_oemid)); + + for (i = 0; i < 6; i += 2) { + usvalue = *(u16 *) & hwinfo[EEPROM_MAC_ADDR + i]; + *((u16 *) (&rtlefuse->dev_addr[i])) = usvalue; + } + + RT_TRACE(COMP_INIT, DBG_DMESG, + ("dev_addr: %pM\n", rtlefuse->dev_addr)); + + _rtl8812ae_read_txpower_info_from_hwpg(hw, + rtlefuse->autoload_failflag, hwinfo); + + /*board type*/ + rtlefuse->board_type = (((*(u8 *) & hwinfo[EEPROM_RF_BOARD_OPTION]) & 0xE0 ) >> 5); + if ((*(u8 *) & hwinfo[EEPROM_RF_BOARD_OPTION]) == 0xff ) + rtlefuse->board_type = 0; + rtlhal->boad_type = rtlefuse->board_type; + + rtl8812ae_read_bt_coexist_info_from_hwpg(hw, + rtlefuse->autoload_failflag, hwinfo); + + rtlefuse->eeprom_channelplan = *(u8 *) & hwinfo[EEPROM_CHANNELPLAN]; + if (rtlefuse->eeprom_channelplan == 0xff) + rtlefuse->eeprom_channelplan = 0x7F; + + /* set channel paln to world wide 13 */ + //rtlefuse->channel_plan = (u8) rtlefuse->eeprom_channelplan; + + /*parse xtal*/ + rtlefuse->crystalcap = hwinfo[EEPROM_XTAL_8821AE]; + if ( rtlefuse->crystalcap == 0xFF ) + rtlefuse->crystalcap = 0x20; + + rtlefuse->eeprom_thermalmeter = *(u8 *) & hwinfo[EEPROM_THERMAL_METER]; + if ((rtlefuse->eeprom_thermalmeter == 0xff) ||rtlefuse->autoload_failflag ) + { + rtlefuse->b_apk_thermalmeterignore = true; + rtlefuse->eeprom_thermalmeter = 0xff; + } + + rtlefuse->thermalmeter[0] = rtlefuse->eeprom_thermalmeter; + RT_TRACE(COMP_INIT, DBG_LOUD, + ("thermalmeter = 0x%x\n", rtlefuse->eeprom_thermalmeter)); + + if (rtlefuse->autoload_failflag == false) { + rtlefuse->antenna_div_cfg = *(u8 *) & hwinfo[EEPROM_RF_BOARD_OPTION] & 0x18 >> 3; + if (*(u8 *) & hwinfo[EEPROM_RF_BOARD_OPTION] == 0xff) + rtlefuse->antenna_div_cfg = 0x00; + /*if (BT_1ant()) + rtlefuse->antenna_div_cfg = 0;*/ + rtlefuse->antenna_div_type = *(u8 *) & hwinfo[EEPROM_RF_ANTENNA_OPT_88E]; + if (rtlefuse->antenna_div_type == 0xFF) + { + rtlefuse->antenna_div_type = FIXED_HW_ANTDIV; + } + } else { + rtlefuse->antenna_div_cfg = 0; + rtlefuse->antenna_div_type = 0; + } + + RT_TRACE(COMP_INIT, DBG_LOUD, + ("SWAS: bHwAntDiv = %x, TRxAntDivType = %x\n", + rtlefuse->antenna_div_cfg, rtlefuse->antenna_div_type)); + + /*Hal_ReadPAType_8821A()*/ + /*Hal_EfuseParseRateIndicationOption8821A()*/ + /*Hal_ReadEfusePCIeCap8821AE()*/ + + pcipriv->ledctl.bled_opendrain = true; + + if (rtlhal->oem_id == RT_CID_DEFAULT) { + switch (rtlefuse->eeprom_oemid) { + case RT_CID_DEFAULT: + break; + case EEPROM_CID_TOSHIBA: + rtlhal->oem_id = RT_CID_TOSHIBA; + break; + case EEPROM_CID_CCX: + rtlhal->oem_id = RT_CID_CCX; + break; + case EEPROM_CID_QMI: + rtlhal->oem_id = RT_CID_819x_QMI; + break; + case EEPROM_CID_WHQL: + break; + default: + break; + + } + } +} + +static void _rtl8821ae_read_adapter_info(struct ieee80211_hw *hw, bool b_pseudo_test ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + u16 i, usvalue; + u8 hwinfo[HWSET_MAX_SIZE]; + u16 eeprom_id; + + if (b_pseudo_test) { + /* need add */ + } + + if (rtlefuse->epromtype == EEPROM_BOOT_EFUSE) { + rtl_efuse_shadow_map_update(hw); + memcpy(hwinfo, &rtlefuse->efuse_map[EFUSE_INIT_MAP][0], + HWSET_MAX_SIZE); + } else if (rtlefuse->epromtype == EEPROM_93C46) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("RTL819X Not boot from eeprom, check it !!")); + } + + RT_PRINT_DATA(rtlpriv, COMP_INIT, DBG_DMESG, ("MAP \n"), + hwinfo, HWSET_MAX_SIZE); + + eeprom_id = *((u16 *) & hwinfo[0]); + if (eeprom_id != RTL_EEPROM_ID) { + RT_TRACE(COMP_ERR, DBG_WARNING, + ("EEPROM ID(%#x) is invalid!!\n", eeprom_id)); + rtlefuse->autoload_failflag = true; + } else { + RT_TRACE(COMP_INIT, DBG_LOUD, ("Autoload OK\n")); + rtlefuse->autoload_failflag = false; + } + + if (rtlefuse->autoload_failflag == true) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("RTL8812AE autoload_failflag, check it !!")); + return; + } + + rtlefuse->eeprom_version = *(u8 *) & hwinfo[EEPROM_VERSION]; + if (rtlefuse->eeprom_version == 0xff) + rtlefuse->eeprom_version = 0; + + RT_TRACE(COMP_INIT, DBG_LOUD, + ("EEPROM version: 0x%2x\n", rtlefuse->eeprom_version)); + + rtlefuse->eeprom_vid = *(u16 *) &hwinfo[EEPROM_VID]; + rtlefuse->eeprom_did = *(u16 *) &hwinfo[EEPROM_DID]; + rtlefuse->eeprom_svid = *(u16 *) &hwinfo[EEPROM_SVID]; + rtlefuse->eeprom_smid = *(u16 *) &hwinfo[EEPROM_SMID]; + RT_TRACE(COMP_INIT, DBG_LOUD, + ("EEPROMId = 0x%4x\n", eeprom_id)); + RT_TRACE(COMP_INIT, DBG_LOUD, + ("EEPROM VID = 0x%4x\n", rtlefuse->eeprom_vid)); + RT_TRACE(COMP_INIT, DBG_LOUD, + ("EEPROM DID = 0x%4x\n", rtlefuse->eeprom_did)); + RT_TRACE(COMP_INIT, DBG_LOUD, + ("EEPROM SVID = 0x%4x\n", rtlefuse->eeprom_svid)); + RT_TRACE(COMP_INIT, DBG_LOUD, + ("EEPROM SMID = 0x%4x\n", rtlefuse->eeprom_smid)); + + /*customer ID*/ + rtlefuse->eeprom_oemid = *(u8 *) & hwinfo[EEPROM_CUSTOMER_ID]; + if (rtlefuse->eeprom_oemid == 0xFF) + rtlefuse->eeprom_oemid = 0; + + RT_TRACE(COMP_INIT, DBG_LOUD, + ("EEPROM Customer ID: 0x%2x\n", rtlefuse->eeprom_oemid)); + + for (i = 0; i < 6; i += 2) { + usvalue = *(u16 *) & hwinfo[EEPROM_MAC_ADDR + i]; + *((u16 *) (&rtlefuse->dev_addr[i])) = usvalue; + } + + RT_TRACE(COMP_INIT, DBG_DMESG, + ("dev_addr: %pM\n", rtlefuse->dev_addr)); + + _rtl8821ae_read_txpower_info_from_hwpg(hw, + rtlefuse->autoload_failflag, hwinfo); + + /*board type*/ + rtlefuse->board_type = (((*(u8 *) & hwinfo[EEPROM_RF_BOARD_OPTION]) & 0xE0 ) >> 5); + if ((*(u8 *) & hwinfo[EEPROM_RF_BOARD_OPTION]) == 0xff ) + rtlefuse->board_type = 0; + rtlhal->boad_type = rtlefuse->board_type; + + rtl8821ae_read_bt_coexist_info_from_hwpg(hw, + rtlefuse->autoload_failflag, hwinfo); + + rtlefuse->eeprom_channelplan = *(u8 *) & hwinfo[EEPROM_CHANNELPLAN]; + if (rtlefuse->eeprom_channelplan == 0xff) + rtlefuse->eeprom_channelplan = 0x7F; + + /* set channel paln to world wide 13 */ + //rtlefuse->channel_plan = (u8) rtlefuse->eeprom_channelplan; + + /*parse xtal*/ + rtlefuse->crystalcap = hwinfo[EEPROM_XTAL_8821AE]; + if ( rtlefuse->crystalcap == 0xFF ) + rtlefuse->crystalcap = 0x20; + + rtlefuse->eeprom_thermalmeter = *(u8 *) & hwinfo[EEPROM_THERMAL_METER]; + if ((rtlefuse->eeprom_thermalmeter == 0xff) ||rtlefuse->autoload_failflag ) + { + rtlefuse->b_apk_thermalmeterignore = true; + rtlefuse->eeprom_thermalmeter = 0x18; + } + + rtlefuse->thermalmeter[0] = rtlefuse->eeprom_thermalmeter; + RT_TRACE(COMP_INIT, DBG_LOUD, + ("thermalmeter = 0x%x\n", rtlefuse->eeprom_thermalmeter)); + + if (rtlefuse->autoload_failflag == false) { + rtlefuse->antenna_div_cfg = (*(u8 *) & hwinfo[EEPROM_RF_BOARD_OPTION] & BIT(3))?true:false; + /*if (BT_1ant()) + rtlefuse->antenna_div_cfg = 0;*/ + + rtlefuse->antenna_div_type = CG_TRX_HW_ANTDIV; + } else { + rtlefuse->antenna_div_cfg = 0; + rtlefuse->antenna_div_type = 0; + } + + RT_TRACE(COMP_INIT, DBG_LOUD, + ("SWAS: bHwAntDiv = %x, TRxAntDivType = %x\n", + rtlefuse->antenna_div_cfg, rtlefuse->antenna_div_type)); + + pcipriv->ledctl.bled_opendrain = true; + + if (rtlhal->oem_id == RT_CID_DEFAULT) { + switch (rtlefuse->eeprom_oemid) { + case RT_CID_DEFAULT: + break; + case EEPROM_CID_TOSHIBA: + rtlhal->oem_id = RT_CID_TOSHIBA; + break; + case EEPROM_CID_CCX: + rtlhal->oem_id = RT_CID_CCX; + break; + case EEPROM_CID_QMI: + rtlhal->oem_id = RT_CID_819x_QMI; + break; + case EEPROM_CID_WHQL: + break; + default: + break; + } + } +} + + +/*static void _rtl8821ae_hal_customized_behavior(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + + pcipriv->ledctl.bled_opendrain = true; + switch (rtlhal->oem_id) { + case RT_CID_819x_HP: + pcipriv->ledctl.bled_opendrain = true; + break; + case RT_CID_819x_Lenovo: + case RT_CID_DEFAULT: + case RT_CID_TOSHIBA: + case RT_CID_CCX: + case RT_CID_819x_Acer: + case RT_CID_WHQL: + default: + break; + } + RT_TRACE(COMP_INIT, DBG_DMESG, + ("RT Customized ID: 0x%02X\n", rtlhal->oem_id)); +}*/ + +void rtl8821ae_read_eeprom_info(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 tmp_u1b; + + rtlhal->version = _rtl8821ae_read_chip_version(hw); + + if (get_rf_type(rtlphy) == RF_1T1R) + rtlpriv->dm.brfpath_rxenable[0] = true; + else + rtlpriv->dm.brfpath_rxenable[0] = + rtlpriv->dm.brfpath_rxenable[1] = true; + RT_TRACE(COMP_INIT, DBG_LOUD, ("VersionID = 0x%4x\n", + rtlhal->version)); + + tmp_u1b = rtl_read_byte(rtlpriv, REG_9346CR); + if (tmp_u1b & BIT(4)) { + RT_TRACE(COMP_INIT, DBG_DMESG, ("Boot from EEPROM\n")); + rtlefuse->epromtype = EEPROM_93C46; + } else { + RT_TRACE(COMP_INIT, DBG_DMESG, ("Boot from EFUSE\n")); + rtlefuse->epromtype = EEPROM_BOOT_EFUSE; + } + + if (tmp_u1b & BIT(5)) { + RT_TRACE(COMP_INIT, DBG_LOUD, ("Autoload OK\n")); + rtlefuse->autoload_failflag = false; + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + _rtl8812ae_read_adapter_info(hw, false); + else if (rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) + _rtl8821ae_read_adapter_info(hw, false); + } else { + RT_TRACE(COMP_ERR, DBG_EMERG, ("Autoload ERR!!\n")); + } + /*hal_ReadRFType_8812A()*/ + //_rtl8821ae_hal_customized_behavior(hw); +} + +static void rtl8821ae_update_hal_rate_table(struct ieee80211_hw *hw, + struct ieee80211_sta *sta) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u32 ratr_value; + u8 ratr_index = 0; + u8 b_nmode = mac->ht_enable; + u8 mimo_ps = IEEE80211_SMPS_OFF; + u16 shortgi_rate; + u32 tmp_ratr_value; + u8 b_curtxbw_40mhz = mac->bw_40; + u8 b_curshortgi_40mhz = (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_40) ? + 1 : 0; + u8 b_curshortgi_20mhz = (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_20) ? + 1 : 0; + enum wireless_mode wirelessmode = mac->mode; + + if (rtlhal->current_bandtype == BAND_ON_5G) + ratr_value = sta->supp_rates[1] << 4; + else + ratr_value = sta->supp_rates[0]; + if (mac->opmode == NL80211_IFTYPE_ADHOC) + ratr_value = 0xfff; + ratr_value |= (sta->ht_cap.mcs.rx_mask[1] << 20 | + sta->ht_cap.mcs.rx_mask[0] << 12); + switch (wirelessmode) { + case WIRELESS_MODE_B: + if (ratr_value & 0x0000000c) + ratr_value &= 0x0000000d; + else + ratr_value &= 0x0000000f; + break; + case WIRELESS_MODE_G: + ratr_value &= 0x00000FF5; + break; + case WIRELESS_MODE_N_24G: + case WIRELESS_MODE_N_5G: + b_nmode = 1; + if (mimo_ps == IEEE80211_SMPS_STATIC) { + ratr_value &= 0x0007F005; + } else { + u32 ratr_mask; + + if (get_rf_type(rtlphy) == RF_1T2R || + get_rf_type(rtlphy) == RF_1T1R) + ratr_mask = 0x000ff005; + else + ratr_mask = 0x0f0ff005; + + ratr_value &= ratr_mask; + } + break; + default: + if (rtlphy->rf_type == RF_1T2R) + ratr_value &= 0x000ff0ff; + else + ratr_value &= 0x0f0ff0ff; + + break; + } + + if ( (rtlpcipriv->btcoexist.bt_coexistence) && + (rtlpcipriv->btcoexist.bt_coexist_type == BT_CSR_BC4) && + (rtlpcipriv->btcoexist.bt_cur_state) && + (rtlpcipriv->btcoexist.bt_ant_isolation) && + ((rtlpcipriv->btcoexist.bt_service == BT_SCO)|| + (rtlpcipriv->btcoexist.bt_service == BT_BUSY)) ) + ratr_value &= 0x0fffcfc0; + else + ratr_value &= 0x0FFFFFFF; + + if (b_nmode && ((b_curtxbw_40mhz && + b_curshortgi_40mhz) || (!b_curtxbw_40mhz && + b_curshortgi_20mhz))) { + + ratr_value |= 0x10000000; + tmp_ratr_value = (ratr_value >> 12); + + for (shortgi_rate = 15; shortgi_rate > 0; shortgi_rate--) { + if ((1 << shortgi_rate) & tmp_ratr_value) + break; + } + + shortgi_rate = (shortgi_rate << 12) | (shortgi_rate << 8) | + (shortgi_rate << 4) | (shortgi_rate); + } + + rtl_write_dword(rtlpriv, REG_ARFR0 + ratr_index * 4, ratr_value); + + RT_TRACE(COMP_RATR, DBG_DMESG, + ("%x\n", rtl_read_dword(rtlpriv, REG_ARFR0))); +} + + +static u8 _rtl8821ae_mrate_idx_to_arfr_id( + struct ieee80211_hw *hw, u8 rate_index, + enum wireless_mode wirelessmode) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 ret = 0; + switch(rate_index){ + case RATR_INX_WIRELESS_NGB: + if(rtlphy->rf_type == RF_1T1R) + ret = 1; + else + ret = 0; + ;break; + case RATR_INX_WIRELESS_N: + case RATR_INX_WIRELESS_NG: + if(rtlphy->rf_type == RF_1T1R) + ret = 5; + else + ret = 4; + ;break; + case RATR_INX_WIRELESS_NB: + if(rtlphy->rf_type == RF_1T1R) + ret = 3; + else + ret = 2; + ;break; + case RATR_INX_WIRELESS_GB: + ret = 6; + break; + case RATR_INX_WIRELESS_G: + ret = 7; + break; + case RATR_INX_WIRELESS_B: + ret = 8; + break; + case RATR_INX_WIRELESS_MC: + if ((wirelessmode == WIRELESS_MODE_B) + || (wirelessmode == WIRELESS_MODE_G) + || (wirelessmode == WIRELESS_MODE_N_24G) + || (wirelessmode == WIRELESS_MODE_AC_24G)) + ret = 6; + else + ret = 7; + case RATR_INX_WIRELESS_AC_5N: + if(rtlphy->rf_type == RF_1T1R) + ret = 10; + else + ret = 9; + break; + case RATR_INX_WIRELESS_AC_24N: + if(rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_80) + { + if(rtlphy->rf_type == RF_1T1R) + ret = 10; + else + ret = 9; + } else { + if(rtlphy->rf_type == RF_1T1R) + ret = 11; + else + ret = 12; + } + break; + default: + ret = 0;break; + } + return ret; +} + +static void rtl8821ae_update_hal_rate_mask(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, u8 rssi_level) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_sta_info * sta_entry = NULL; + u32 ratr_bitmap; + u8 ratr_index; + u8 b_curtxbw_40mhz = (sta->ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40) + ? 1 : 0; + u8 b_curshortgi_40mhz = (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_40) ? + 1 : 0; + u8 b_curshortgi_20mhz = (sta->ht_cap.cap & IEEE80211_HT_CAP_SGI_20) ? + 1 : 0; + enum wireless_mode wirelessmode = 0; + bool b_shortgi = false; + u8 rate_mask[7]; + u8 macid = 0; + u8 mimo_ps = IEEE80211_SMPS_OFF; + + sta_entry = (struct rtl_sta_info *) sta->drv_priv; + wirelessmode = sta_entry->wireless_mode; + if (mac->opmode == NL80211_IFTYPE_STATION || + mac->opmode == NL80211_IFTYPE_MESH_POINT) + b_curtxbw_40mhz = mac->bw_40; + else if (mac->opmode == NL80211_IFTYPE_AP || + mac->opmode == NL80211_IFTYPE_ADHOC) + macid = sta->aid + 1; + + ratr_bitmap = sta->supp_rates[0]; + + if (mac->opmode == NL80211_IFTYPE_ADHOC) + ratr_bitmap = 0xfff; + + ratr_bitmap |= (sta->ht_cap.mcs.rx_mask[1] << 20 | + sta->ht_cap.mcs.rx_mask[0] << 12); +/*mac id owner*/ + switch (wirelessmode) { + case WIRELESS_MODE_B: + ratr_index = RATR_INX_WIRELESS_B; + if (ratr_bitmap & 0x0000000c) + ratr_bitmap &= 0x0000000d; + else + ratr_bitmap &= 0x0000000f; + break; + case WIRELESS_MODE_G: + ratr_index = RATR_INX_WIRELESS_GB; + + if (rssi_level == 1) + ratr_bitmap &= 0x00000f00; + else if (rssi_level == 2) + ratr_bitmap &= 0x00000ff0; + else + ratr_bitmap &= 0x00000ff5; + break; + case WIRELESS_MODE_A: + ratr_index = RATR_INX_WIRELESS_G; + ratr_bitmap &= 0x00000ff0; + break; + case WIRELESS_MODE_N_24G: + case WIRELESS_MODE_N_5G: + if (wirelessmode == WIRELESS_MODE_N_24G) + ratr_index = RATR_INX_WIRELESS_NGB; + else + ratr_index = RATR_INX_WIRELESS_NG; + + if (mimo_ps == IEEE80211_SMPS_STATIC || mimo_ps == IEEE80211_SMPS_DYNAMIC) { + if (rssi_level == 1) + ratr_bitmap &= 0x00070000; + else if (rssi_level == 2) + ratr_bitmap &= 0x0007f000; + else + ratr_bitmap &= 0x0007f005; + } else { + if ( rtlphy->rf_type == RF_1T1R) { + if (b_curtxbw_40mhz) { + if (rssi_level == 1) + ratr_bitmap &= 0x000f0000; + else if (rssi_level == 2) + ratr_bitmap &= 0x000ff000; + else + ratr_bitmap &= 0x000ff015; + } else { + if (rssi_level == 1) + ratr_bitmap &= 0x000f0000; + else if (rssi_level == 2) + ratr_bitmap &= 0x000ff000; + else + ratr_bitmap &= 0x000ff005; + } + } else { + if (b_curtxbw_40mhz) { + if (rssi_level == 1) + ratr_bitmap &= 0x0fff0000; + else if (rssi_level == 2) + ratr_bitmap &= 0x0ffff000; + else + ratr_bitmap &= 0x0ffff015; + } else { + if (rssi_level == 1) + ratr_bitmap &= 0x0fff0000; + else if (rssi_level == 2) + ratr_bitmap &= 0x0ffff000; + else + ratr_bitmap &= 0x0ffff005; + } + } + } + if ((b_curtxbw_40mhz && b_curshortgi_40mhz) || + (!b_curtxbw_40mhz && b_curshortgi_20mhz)) { + + if (macid == 0) + b_shortgi = true; + else if (macid == 1) + b_shortgi = false; + } + break; + + case WIRELESS_MODE_AC_24G: + ratr_index = RATR_INX_WIRELESS_AC_24N; + if(rssi_level == 1) + ratr_bitmap &= 0xfc3f0000; + else if(rssi_level == 2) + ratr_bitmap &= 0xfffff000; + else + ratr_bitmap &= 0xffffffff; + break; + + case WIRELESS_MODE_AC_5G: + ratr_index = RATR_INX_WIRELESS_AC_5N; + + if (rtlphy->rf_type == RF_1T1R) + { + if(rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + { + if(rssi_level == 1) /*add by Gary for ac-series*/ + ratr_bitmap &= 0x003f8000; + else if (rssi_level == 2) + ratr_bitmap &= 0x003ff000; + else + ratr_bitmap &= 0x003ff010; + } + else + ratr_bitmap &= 0x000ff010; + } + else + { + if(rssi_level == 1) /* add by Gary for ac-series*/ + ratr_bitmap &= 0xfe3f8000; /*VHT 2SS MCS3~9*/ + else if (rssi_level == 2) + ratr_bitmap &= 0xfffff000; /*VHT 2SS MCS0~9*/ + else + ratr_bitmap &= 0xfffff010; /*All*/ + } + break; + + default: + ratr_index = RATR_INX_WIRELESS_NGB; + + if (rtlphy->rf_type == RF_1T2R) + ratr_bitmap &= 0x000ff0ff; + else + ratr_bitmap &= 0x0f0ff0ff; + break; + + } + + sta_entry->ratr_index = ratr_index; + + RT_TRACE(COMP_RATR, DBG_DMESG, + ("ratr_bitmap :%x\n", ratr_bitmap)); + *(u32 *) & rate_mask = EF4BYTE((ratr_bitmap & 0x0fffffff) | + (ratr_index << 28)); + rate_mask[0] = macid; + rate_mask[1] = _rtl8821ae_mrate_idx_to_arfr_id(hw, ratr_index, wirelessmode) | (b_shortgi ? 0x80 : 0x00); + rate_mask[2] = b_curtxbw_40mhz; + /* if (prox_priv->proxim_modeinfo->power_output > 0) + rate_mask[2] |= BIT(6); */ + + rate_mask[3] = (u8)(ratr_bitmap & 0x000000ff); + rate_mask[4] = (u8)((ratr_bitmap & 0x0000ff00) >>8); + rate_mask[5] = (u8)((ratr_bitmap & 0x00ff0000) >> 16); + rate_mask[6] = (u8)((ratr_bitmap & 0xff000000) >> 24); + + RT_TRACE(COMP_RATR, DBG_DMESG, ("Rate_index:%x, " + "ratr_val:%x, %x:%x:%x:%x:%x:%x:%x\n", + ratr_index, ratr_bitmap, + rate_mask[0], rate_mask[1], + rate_mask[2], rate_mask[3], + rate_mask[4], rate_mask[5], + rate_mask[6])); + rtl8821ae_fill_h2c_cmd(hw, H2C_8821AE_RA_MASK, 7, rate_mask); + _rtl8821ae_set_bcn_ctrl_reg(hw, BIT(3), 0); +} + +void rtl8821ae_update_hal_rate_tbl(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, u8 rssi_level) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + if (rtlpriv->dm.b_useramask) + rtl8821ae_update_hal_rate_mask(hw, sta, rssi_level); + else + /*RT_TRACE(COMP_RATR,DBG_LOUD,("rtl8821ae_update_hal_rate_tbl(): Error! 8821ae FW RA Only"));*/ + rtl8821ae_update_hal_rate_table(hw, sta); +} + +void rtl8821ae_update_channel_access_setting(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + u16 sifs_timer; + + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SLOT_TIME, + (u8 *) & mac->slot_time); + if (!mac->ht_enable) + sifs_timer = 0x0a0a; + else + sifs_timer = 0x0e0e; + rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_SIFS, (u8 *) & sifs_timer); +} + +bool rtl8821ae_gpio_radio_on_off_checking(struct ieee80211_hw *hw, u8 * valid) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + enum rf_pwrstate e_rfpowerstate_toset, cur_rfstate; + u8 u1tmp = 0; + bool b_actuallyset = false; + + if (rtlpriv->rtlhal.being_init_adapter) + return false; + + if (ppsc->b_swrf_processing) + return false; + + spin_lock(&rtlpriv->locks.rf_ps_lock); + if (ppsc->rfchange_inprogress) { + spin_unlock(&rtlpriv->locks.rf_ps_lock); + return false; + } else { + ppsc->rfchange_inprogress = true; + spin_unlock(&rtlpriv->locks.rf_ps_lock); + } + + cur_rfstate = ppsc->rfpwr_state; + + rtl_write_byte(rtlpriv, REG_GPIO_IO_SEL_2, + rtl_read_byte(rtlpriv, REG_GPIO_IO_SEL_2) & ~(BIT(1))); + + u1tmp = rtl_read_byte(rtlpriv, REG_GPIO_PIN_CTRL_2); + + if (rtlphy->polarity_ctl) { + e_rfpowerstate_toset = (u1tmp & BIT(1)) ? ERFOFF : ERFON; + } else { + e_rfpowerstate_toset = (u1tmp & BIT(1)) ? ERFON : ERFOFF; + } + + if ((ppsc->b_hwradiooff == true) && (e_rfpowerstate_toset == ERFON)) { + RT_TRACE(COMP_RF, DBG_DMESG, + ("GPIOChangeRF - HW Radio ON, RF ON\n")); + + e_rfpowerstate_toset = ERFON; + ppsc->b_hwradiooff = false; + b_actuallyset = true; + } else if ((ppsc->b_hwradiooff == false) + && (e_rfpowerstate_toset == ERFOFF)) { + RT_TRACE(COMP_RF, DBG_DMESG, + ("GPIOChangeRF - HW Radio OFF, RF OFF\n")); + + e_rfpowerstate_toset = ERFOFF; + ppsc->b_hwradiooff = true; + b_actuallyset = true; + } + + if (b_actuallyset) { + spin_lock(&rtlpriv->locks.rf_ps_lock); + ppsc->rfchange_inprogress = false; + spin_unlock(&rtlpriv->locks.rf_ps_lock); + } else { + if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_HALT_NIC) + RT_SET_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC); + + spin_lock(&rtlpriv->locks.rf_ps_lock); + ppsc->rfchange_inprogress = false; + spin_unlock(&rtlpriv->locks.rf_ps_lock); + } + + *valid = 1; + return !ppsc->b_hwradiooff; + +} + +void rtl8821ae_set_key(struct ieee80211_hw *hw, u32 key_index, + u8 *p_macaddr, bool is_group, u8 enc_algo, + bool is_wepkey, bool clear_all) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + u8 *macaddr = p_macaddr; + u32 entry_id = 0; + bool is_pairwise = false; + + static u8 cam_const_addr[4][6] = { + {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x01}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x02}, + {0x00, 0x00, 0x00, 0x00, 0x00, 0x03} + }; + static u8 cam_const_broad[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + }; + + if (clear_all) { + u8 idx = 0; + u8 cam_offset = 0; + u8 clear_number = 5; + + RT_TRACE(COMP_SEC, DBG_DMESG, ("clear_all\n")); + + for (idx = 0; idx < clear_number; idx++) { + rtl_cam_mark_invalid(hw, cam_offset + idx); + rtl_cam_empty_entry(hw, cam_offset + idx); + + if (idx < 5) { + memset(rtlpriv->sec.key_buf[idx], 0, + MAX_KEY_LEN); + rtlpriv->sec.key_len[idx] = 0; + } + } + + } else { + switch (enc_algo) { + case WEP40_ENCRYPTION: + enc_algo = CAM_WEP40; + break; + case WEP104_ENCRYPTION: + enc_algo = CAM_WEP104; + break; + case TKIP_ENCRYPTION: + enc_algo = CAM_TKIP; + break; + case AESCCMP_ENCRYPTION: + enc_algo = CAM_AES; + break; + default: + RT_TRACE(COMP_ERR, DBG_EMERG, ("switch case " + "not process \n")); + enc_algo = CAM_TKIP; + break; + } + + if (is_wepkey || rtlpriv->sec.use_defaultkey) { + macaddr = cam_const_addr[key_index]; + entry_id = key_index; + } else { + if (is_group) { + macaddr = cam_const_broad; + entry_id = key_index; + } else { + if (mac->opmode == NL80211_IFTYPE_AP) { + entry_id = rtl_cam_get_free_entry(hw, p_macaddr); + if (entry_id >= TOTAL_CAM_ENTRY) { + RT_TRACE(COMP_SEC, DBG_EMERG, + ("Can not find free hw security cam entry\n")); + return; + } + } else { + entry_id = CAM_PAIRWISE_KEY_POSITION; + } + + key_index = PAIRWISE_KEYIDX; + is_pairwise = true; + } + } + + if (rtlpriv->sec.key_len[key_index] == 0) { + RT_TRACE(COMP_SEC, DBG_DMESG, + ("delete one entry, entry_id is %d\n",entry_id)); + if (mac->opmode == NL80211_IFTYPE_AP) + rtl_cam_del_entry(hw, p_macaddr); + rtl_cam_delete_one_entry(hw, p_macaddr, entry_id); + } else { + RT_TRACE(COMP_SEC, DBG_DMESG, ("add one entry\n")); + if (is_pairwise) { + RT_TRACE(COMP_SEC, DBG_DMESG, ("set Pairwiase key\n")); + + rtl_cam_add_one_entry(hw, macaddr, key_index, + entry_id, enc_algo, + CAM_CONFIG_NO_USEDK, + rtlpriv->sec.key_buf[key_index]); + } else { + RT_TRACE(COMP_SEC, DBG_DMESG, ("set group key\n")); + + if (mac->opmode == NL80211_IFTYPE_ADHOC) { + rtl_cam_add_one_entry(hw, + rtlefuse->dev_addr, + PAIRWISE_KEYIDX, + CAM_PAIRWISE_KEY_POSITION, + enc_algo, + CAM_CONFIG_NO_USEDK, + rtlpriv->sec.key_buf + [entry_id]); + } + + rtl_cam_add_one_entry(hw, macaddr, key_index, + entry_id, enc_algo, + CAM_CONFIG_NO_USEDK, + rtlpriv->sec.key_buf[entry_id]); + } + + } + } +} + + +void rtl8812ae_read_bt_coexist_info_from_hwpg(struct ieee80211_hw *hw, + bool auto_load_fail, u8 *hwinfo) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 value; + + if (!auto_load_fail) { + value = *(u8 *) & hwinfo[EEPROM_RF_BOARD_OPTION]; + if (((value & 0xe0) >> 5) == 0x1) + rtlpriv->btcoexist.btc_info.btcoexist = 1; + else + rtlpriv->btcoexist.btc_info.btcoexist = 0; + rtlpriv->btcoexist.btc_info.bt_type = BT_RTL8812A; + + value = hwinfo[EEPROM_RF_BT_SETTING]; + rtlpriv->btcoexist.btc_info.ant_num = (value & 0x1); + } else { + rtlpriv->btcoexist.btc_info.btcoexist = 0; + rtlpriv->btcoexist.btc_info.bt_type = BT_RTL8812A; + rtlpriv->btcoexist.btc_info.ant_num = ANT_X2; + } + /*move BT_InitHalVars() to init_sw_vars*/ +} + +void rtl8821ae_read_bt_coexist_info_from_hwpg(struct ieee80211_hw *hw, + bool auto_load_fail, u8 *hwinfo) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u8 value; + u32 tmpu_32; + + if (!auto_load_fail) { + tmpu_32 = rtl_read_dword(rtlpriv, REG_MULTI_FUNC_CTRL); + if(tmpu_32 & BIT(18)) + rtlpriv->btcoexist.btc_info.btcoexist = 1; + else + rtlpriv->btcoexist.btc_info.btcoexist = 0; + rtlpriv->btcoexist.btc_info.bt_type = BT_RTL8821A; + + value = hwinfo[EEPROM_RF_BT_SETTING]; + rtlpriv->btcoexist.btc_info.ant_num = (value & 0x1); + } else { + rtlpriv->btcoexist.btc_info.btcoexist = 0; + rtlpriv->btcoexist.btc_info.bt_type = BT_RTL8821A; + rtlpriv->btcoexist.btc_info.ant_num = ANT_X2; + } + /*move BT_InitHalVars() to init_sw_vars*/ +} + +void rtl8821ae_bt_reg_init(struct ieee80211_hw* hw) +{ + struct rtl_pci_priv *rtlpcipriv = rtl_pcipriv(hw); + + /* 0:Low, 1:High, 2:From Efuse. */ + rtlpcipriv->btcoexist.b_reg_bt_iso = 2; + /* 0:Idle, 1:None-SCO, 2:SCO, 3:From Counter. */ + rtlpcipriv->btcoexist.b_reg_bt_sco= 3; + /* 0:Disable BT control A-MPDU, 1:Enable BT control A-MPDU. */ + rtlpcipriv->btcoexist.b_reg_bt_sco= 0; +} + + +void rtl8821ae_bt_hw_init(struct ieee80211_hw* hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if (rtlpriv->cfg->ops->get_btc_status()){ + rtlpriv->btcoexist.btc_ops->btc_init_hw_config(rtlpriv); + } +} + +void rtl8821ae_suspend(struct ieee80211_hw *hw) +{ +} + +void rtl8821ae_resume(struct ieee80211_hw *hw) +{ +} + +/* Turn on AAP (RCR:bit 0) for promicuous mode. */ +void rtl8821ae_allow_all_destaddr(struct ieee80211_hw *hw, + bool allow_all_da, bool write_into_reg) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + + if (allow_all_da) /* Set BIT0 */ + rtlpci->receive_config |= RCR_AAP; + else /* Clear BIT0 */ + rtlpci->receive_config &= ~RCR_AAP; + + if(write_into_reg) + rtl_write_dword(rtlpriv, REG_RCR, rtlpci->receive_config); + + + RT_TRACE(COMP_TURBO | COMP_INIT, DBG_LOUD, + ("receive_config=0x%08X, write_into_reg=%d\n", + rtlpci->receive_config, write_into_reg )); +} + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/hw.h +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/hw.h @@ -0,0 +1,75 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8821AE_HW_H__ +#define __RTL8821AE_HW_H__ + +void rtl8821ae_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val); +void rtl8821ae_read_eeprom_info(struct ieee80211_hw *hw); + +void rtl8821ae_interrupt_recognized(struct ieee80211_hw *hw, + u32 *p_inta, u32 *p_intb); +int rtl8821ae_hw_init(struct ieee80211_hw *hw); +void rtl8821ae_card_disable(struct ieee80211_hw *hw); +void rtl8821ae_enable_interrupt(struct ieee80211_hw *hw); +void rtl8821ae_disable_interrupt(struct ieee80211_hw *hw); +int rtl8821ae_set_network_type(struct ieee80211_hw *hw, enum nl80211_iftype type); +void rtl8821ae_set_check_bssid(struct ieee80211_hw *hw, bool check_bssid); +void rtl8821ae_set_qos(struct ieee80211_hw *hw, int aci); +void rtl8821ae_set_beacon_related_registers(struct ieee80211_hw *hw); +void rtl8821ae_set_beacon_interval(struct ieee80211_hw *hw); +void rtl8821ae_update_interrupt_mask(struct ieee80211_hw *hw, + u32 add_msr, u32 rm_msr); +void rtl8821ae_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val); +void rtl8821ae_update_hal_rate_tbl(struct ieee80211_hw *hw, + struct ieee80211_sta *sta, + u8 rssi_level); +void rtl8821ae_update_channel_access_setting(struct ieee80211_hw *hw); +bool rtl8821ae_gpio_radio_on_off_checking(struct ieee80211_hw *hw, u8 *valid); +void rtl8821ae_enable_hw_security_config(struct ieee80211_hw *hw); +void rtl8821ae_set_key(struct ieee80211_hw *hw, u32 key_index, + u8 *p_macaddr, bool is_group, u8 enc_algo, + bool is_wepkey, bool clear_all); + +void rtl8821ae_read_bt_coexist_info_from_hwpg(struct ieee80211_hw *hw, + bool autoload_fail, + u8* hwinfo); +void rtl8812ae_read_bt_coexist_info_from_hwpg(struct ieee80211_hw *hw, + bool autoload_fail, + u8* hwinfo); +void rtl8821ae_bt_reg_init(struct ieee80211_hw* hw); +void rtl8821ae_bt_hw_init(struct ieee80211_hw* hw); +void rtl8821ae_suspend(struct ieee80211_hw *hw); +void rtl8821ae_resume(struct ieee80211_hw *hw); +void rtl8821ae_allow_all_destaddr(struct ieee80211_hw *hw, + bool allow_all_da, + bool write_into_reg); +void _rtl8821ae_stop_tx_beacon(struct ieee80211_hw *hw); +void _rtl8821ae_resume_tx_beacon(struct ieee80211_hw *hw); +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/led.c +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/led.c @@ -0,0 +1,239 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "../pci.h" +#include "reg.h" + +static void _rtl8821ae_init_led(struct ieee80211_hw *hw, + struct rtl_led *pled, + enum rtl_led_pin ledpin) +{ + pled->hw = hw; + pled->ledpin = ledpin; + pled->b_ledon = false; +} + +void rtl8821ae_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled) +{ + u8 ledcfg; + struct rtl_priv *rtlpriv = rtl_priv(hw); + + RT_TRACE(COMP_LED, DBG_LOUD, + ("LedAddr:%X ledpin=%d\n", REG_LEDCFG2, pled->ledpin)); + + switch (pled->ledpin) { + case LED_PIN_GPIO0: + break; + case LED_PIN_LED0: + ledcfg = rtl_read_byte(rtlpriv, REG_LEDCFG2); + ledcfg &= ~BIT(6); + rtl_write_byte(rtlpriv, + REG_LEDCFG2, (ledcfg & 0xf0) | BIT(5)); + break; + case LED_PIN_LED1: + ledcfg = rtl_read_byte(rtlpriv, REG_LEDCFG1); + rtl_write_byte(rtlpriv, REG_LEDCFG1, ledcfg & 0x10); + break; + default: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("switch case not process \n")); + break; + } + pled->b_ledon = true; +} + +void rtl8812ae_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled) +{ + u16 ledreg = REG_LEDCFG1; + u8 ledcfg = 0; + struct rtl_priv *rtlpriv = rtl_priv(hw); + + switch (pled->ledpin) { + case LED_PIN_LED0: + ledreg = REG_LEDCFG1; + break; + + case LED_PIN_LED1: + ledreg = REG_LEDCFG2; + break; + + case LED_PIN_GPIO0: + default: + break; + } + + RT_TRACE(COMP_LED, DBG_LOUD, ("In SwLedOn, LedAddr:%X LEDPIN=%d \n", ledreg, pled->ledpin)); + + ledcfg = rtl_read_byte(rtlpriv, ledreg); + ledcfg |= BIT(5); /*Set 0x4c[21]*/ + ledcfg &= ~(BIT(7) | BIT(6) | BIT(3) |BIT(2) | BIT(1) |BIT(0)); + /*Clear 0x4c[23:22] and 0x4c[19:16]*/ + rtl_write_byte(rtlpriv, ledreg, ledcfg); /*SW control led0 on.*/ + pled->b_ledon = true; +} + +void rtl8821ae_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + u8 ledcfg; + + RT_TRACE(COMP_LED, DBG_LOUD, + ("LedAddr:%X ledpin=%d\n", REG_LEDCFG2, pled->ledpin)); + + ledcfg = rtl_read_byte(rtlpriv, REG_LEDCFG2); + + switch (pled->ledpin) { + case LED_PIN_GPIO0: + break; + case LED_PIN_LED0: + ledcfg &= 0xf0; + if (pcipriv->ledctl.bled_opendrain == true) { + ledcfg &= 0x90; /* Set to software control. */ + rtl_write_byte(rtlpriv, REG_LEDCFG2, (ledcfg|BIT(3))); + ledcfg = rtl_read_byte(rtlpriv, REG_MAC_PINMUX_CFG); + ledcfg &= 0xFE; + rtl_write_byte(rtlpriv, REG_MAC_PINMUX_CFG, ledcfg); + } + else { + ledcfg &= ~BIT(6); + rtl_write_byte(rtlpriv, REG_LEDCFG2, + (ledcfg | BIT(3) | BIT(5))); + } + break; + case LED_PIN_LED1: + ledcfg = rtl_read_byte(rtlpriv, REG_LEDCFG1); + ledcfg &= 0x10; /* Set to software control. */ + rtl_write_byte(rtlpriv, REG_LEDCFG1, ledcfg|BIT(3)); + + break; + default: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("switch case not process \n")); + break; + } + pled->b_ledon = false; +} + +void rtl8812ae_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled){ + u16 ledreg = REG_LEDCFG1; + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + + switch(pled->ledpin) + { + case LED_PIN_LED0: + ledreg = REG_LEDCFG1; + break; + + case LED_PIN_LED1: + ledreg = REG_LEDCFG2; + break; + + case LED_PIN_GPIO0: + default: + break; + } + + RT_TRACE(COMP_LED,DBG_LOUD,("In SwLedOff,LedAddr:%X LEDPIN=%d\n", ledreg, pled->ledpin)); + + if(pcipriv->ledctl.bled_opendrain == true) /*Open-drain arrangement for controlling the LED*/ + { + u8 ledcfg = rtl_read_byte(rtlpriv, ledreg); + + ledreg &= 0xd0; /* Set to software control.*/ + rtl_write_byte(rtlpriv, ledreg, (ledcfg | BIT(3))); + + /*Open-drain arrangement*/ + ledcfg = rtl_read_byte(rtlpriv, REG_MAC_PINMUX_CFG); + ledcfg &= 0xFE;/*Set GPIO[8] to input mode*/ + rtl_write_byte(rtlpriv, REG_MAC_PINMUX_CFG, ledcfg); + } + else + { + rtl_write_byte(rtlpriv, ledreg, 0x28); + } + + pled->b_ledon = false; +} + +void rtl8821ae_init_sw_leds(struct ieee80211_hw *hw) +{ + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + _rtl8821ae_init_led(hw, &(pcipriv->ledctl.sw_led0), LED_PIN_LED0); + _rtl8821ae_init_led(hw, &(pcipriv->ledctl.sw_led1), LED_PIN_LED1); +} + +static void _rtl8821ae_sw_led_control(struct ieee80211_hw *hw, + enum led_ctl_mode ledaction) +{ + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_led *pLed0 = &(pcipriv->ledctl.sw_led0); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + switch (ledaction) { + case LED_CTL_POWER_ON: + case LED_CTL_LINK: + case LED_CTL_NO_LINK: + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + rtl8812ae_sw_led_on(hw, pLed0); + else + rtl8821ae_sw_led_on(hw, pLed0); + break; + case LED_CTL_POWER_OFF: + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE)\ + rtl8812ae_sw_led_off(hw, pLed0); + else + rtl8821ae_sw_led_off(hw, pLed0); + break; + default: + break; + } +} + +void rtl8821ae_led_control(struct ieee80211_hw *hw, + enum led_ctl_mode ledaction) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + + if ((ppsc->rfoff_reason > RF_CHANGE_BY_PS) && + (ledaction == LED_CTL_TX || + ledaction == LED_CTL_RX || + ledaction == LED_CTL_SITE_SURVEY || + ledaction == LED_CTL_LINK || + ledaction == LED_CTL_NO_LINK || + ledaction == LED_CTL_START_TO_LINK || + ledaction == LED_CTL_POWER_ON)) { + return; + } + RT_TRACE(COMP_LED, DBG_LOUD, ("ledaction %d, \n", + ledaction)); + _rtl8821ae_sw_led_control(hw, ledaction); +} --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/led.h +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/led.h @@ -0,0 +1,40 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8821AE_LED_H__ +#define __RTL8821AE_LED_H__ + +void rtl8821ae_init_sw_leds(struct ieee80211_hw *hw); +void rtl8821ae_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled); +void rtl8812ae_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled); +void rtl8821ae_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled); +void rtl8812ae_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled); +void rtl8821ae_led_control(struct ieee80211_hw *hw, enum led_ctl_mode ledaction); + +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/phy.c +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/phy.c @@ -0,0 +1,5525 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "../pci.h" +#include "../ps.h" +#include "reg.h" +#include "def.h" +#include "phy.h" +#include "rf.h" +#include "dm.h" +#include "table.h" +#include "trx.h" +#include "../btcoexist/halbt_precomp.h" +#include "hw.h" + +#define READ_NEXT_PAIR(array_table,v1, v2, i) do { i += 2; v1 = array_table[i]; v2 = array_table[i+1]; } while(0) + +static u32 _rtl8821ae_phy_rf_serial_read(struct ieee80211_hw *hw, + enum radio_path rfpath, u32 offset); +static void _rtl8821ae_phy_rf_serial_write(struct ieee80211_hw *hw, + enum radio_path rfpath, u32 offset, + u32 data); +static u32 _rtl8821ae_phy_calculate_bit_shift(u32 bitmask); +static bool _rtl8821ae_phy_bb8821a_config_parafile(struct ieee80211_hw *hw); +static bool _rtl8812ae_phy_config_mac_with_headerfile(struct ieee80211_hw *hw); +static bool _rtl8821ae_phy_config_mac_with_headerfile(struct ieee80211_hw *hw); +static bool _rtl8821ae_phy_config_bb_with_headerfile(struct ieee80211_hw *hw, + u8 configtype); +static bool _rtl8812ae_phy_config_bb_with_headerfile(struct ieee80211_hw *hw, + u8 configtype); +static bool _rtl8821ae_phy_config_bb_with_pgheaderfile(struct ieee80211_hw *hw, + u8 configtype); +static bool _rtl8812ae_phy_config_bb_with_pgheaderfile(struct ieee80211_hw *hw, + u8 configtype); +static void _rtl8821ae_phy_init_bb_rf_register_definition(struct ieee80211_hw *hw); + +static long _rtl8821ae_phy_txpwr_idx_to_dbm(struct ieee80211_hw *hw, + enum wireless_mode wirelessmode, + u8 txpwridx); +static void rtl8821ae_phy_set_rf_on(struct ieee80211_hw *hw); +static void rtl8821ae_phy_set_io(struct ieee80211_hw *hw); + +void rtl8812ae_fixspur( + struct ieee80211_hw *hw, + enum ht_channel_width band_width, + u8 channel +) +{ + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + + /*C cut Item12 ADC FIFO CLOCK*/ + if(IS_VENDOR_8812A_C_CUT(rtlhal->version)) + { + if(band_width == HT_CHANNEL_WIDTH_20_40 && channel == 11) + rtl_set_bbreg(hw, RRFMOD, 0xC00, 0x3) ; + /* 0x8AC[11:10] = 2'b11*/ + else + rtl_set_bbreg(hw, RRFMOD, 0xC00, 0x2); + /* 0x8AC[11:10] = 2'b10*/ + + + /* <20120914, Kordan> A workarould to resolve + 2480Mhz spur by setting ADC clock as 160M. (Asked by Binson)*/ + if (band_width == HT_CHANNEL_WIDTH_20 && + (channel == 13 || channel == 14)) { + rtl_set_bbreg(hw, RRFMOD, 0x300, 0x3); + /*0x8AC[9:8] = 2'b11*/ + rtl_set_bbreg(hw, RADC_BUF_CLK, BIT(30), 1); + /* 0x8C4[30] = 1*/ + } else if (band_width == HT_CHANNEL_WIDTH_20_40 && + channel == 11) { + rtl_set_bbreg(hw, RADC_BUF_CLK, BIT(30), 1); + /*0x8C4[30] = 1*/ + } else if (band_width != HT_CHANNEL_WIDTH_80) { + rtl_set_bbreg(hw, RRFMOD, 0x300, 0x2); + /*0x8AC[9:8] = 2'b10*/ + rtl_set_bbreg(hw, RADC_BUF_CLK, BIT(30), 0); + /*0x8C4[30] = 0*/ + } + } + else if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + { + /* <20120914, Kordan> A workarould to resolve + 2480Mhz spur by setting ADC clock as 160M. (Asked by Binson)*/ + if (band_width == HT_CHANNEL_WIDTH_20 && + (channel == 13 || channel == 14)) + rtl_set_bbreg(hw, RRFMOD, 0x300, 0x3); + /*0x8AC[9:8] = 11*/ + else if (channel <= 14) /*2.4G only*/ + rtl_set_bbreg(hw, RRFMOD, 0x300, 0x2); + /*0x8AC[9:8] = 10*/ + } + +} + +u32 rtl8821ae_phy_query_bb_reg(struct ieee80211_hw *hw, u32 regaddr, u32 bitmask) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 returnvalue, originalvalue, bitshift; + + RT_TRACE(COMP_RF, DBG_TRACE, ("regaddr(%#x), " + "bitmask(%#x)\n", regaddr, + bitmask)); + originalvalue = rtl_read_dword(rtlpriv, regaddr); + bitshift = _rtl8821ae_phy_calculate_bit_shift(bitmask); + returnvalue = (originalvalue & bitmask) >> bitshift; + + RT_TRACE(COMP_RF, DBG_TRACE, ("BBR MASK=0x%x " + "Addr[0x%x]=0x%x\n", bitmask, + regaddr, originalvalue)); + + return returnvalue; + +} + +void rtl8821ae_phy_set_bb_reg(struct ieee80211_hw *hw, + u32 regaddr, u32 bitmask, u32 data) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 originalvalue, bitshift; + + RT_TRACE(COMP_RF, DBG_TRACE, ("regaddr(%#x), bitmask(%#x)," + " data(%#x)\n", regaddr, bitmask, + data)); + + if (bitmask != MASKDWORD) { + originalvalue = rtl_read_dword(rtlpriv, regaddr); + bitshift = _rtl8821ae_phy_calculate_bit_shift(bitmask); + data = ((originalvalue & (~bitmask)) | ((data << bitshift) & bitmask)); + } + + rtl_write_dword(rtlpriv, regaddr, data); + + RT_TRACE(COMP_RF, DBG_TRACE, ("regaddr(%#x), bitmask(%#x)," + " data(%#x)\n", regaddr, bitmask, + data)); + +} + +u32 rtl8821ae_phy_query_rf_reg(struct ieee80211_hw *hw, + enum radio_path rfpath, u32 regaddr, u32 bitmask) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 original_value, readback_value, bitshift; + unsigned long flags; + + RT_TRACE(COMP_RF, DBG_TRACE, ("regaddr(%#x), " + "rfpath(%#x), bitmask(%#x)\n", + regaddr, rfpath, bitmask)); + + spin_lock_irqsave(&rtlpriv->locks.rf_lock, flags); + + + original_value = _rtl8821ae_phy_rf_serial_read(hw,rfpath, regaddr); + bitshift = _rtl8821ae_phy_calculate_bit_shift(bitmask); + readback_value = (original_value & bitmask) >> bitshift; + + spin_unlock_irqrestore(&rtlpriv->locks.rf_lock, flags); + + RT_TRACE(COMP_RF, DBG_TRACE, + ("regaddr(%#x), rfpath(%#x), " + "bitmask(%#x), original_value(%#x)\n", + regaddr, rfpath, bitmask, original_value)); + + return readback_value; +} + +void rtl8821ae_phy_set_rf_reg(struct ieee80211_hw *hw, + enum radio_path rfpath, + u32 regaddr, u32 bitmask, u32 data) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 original_value, bitshift; + unsigned long flags; + + RT_TRACE(COMP_RF, DBG_TRACE, + ("regaddr(%#x), bitmask(%#x), data(%#x), rfpath(%#x)\n", + regaddr, bitmask, data, rfpath)); + + spin_lock_irqsave(&rtlpriv->locks.rf_lock, flags); + + if (bitmask != RFREG_OFFSET_MASK) { + original_value = _rtl8821ae_phy_rf_serial_read(hw, + rfpath, + regaddr); + bitshift = _rtl8821ae_phy_calculate_bit_shift(bitmask); + data = + ((original_value & (~bitmask)) | + (data << bitshift)); + } + + _rtl8821ae_phy_rf_serial_write(hw, rfpath, regaddr, data); + + + spin_unlock_irqrestore(&rtlpriv->locks.rf_lock, flags); + + RT_TRACE(COMP_RF, DBG_TRACE, ("regaddr(%#x), " + "bitmask(%#x), data(%#x), rfpath(%#x)\n", + regaddr, bitmask, data, rfpath)); + +} + +static u32 _rtl8821ae_phy_rf_serial_read(struct ieee80211_hw *hw, + enum radio_path rfpath, u32 offset) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + bool b_is_pi_mode =false; + u32 retvalue = 0; + + /* 2009/06/17 MH We can not execute IO for power save or other accident mode.*/ + if (RT_CANNOT_IO(hw)) { + RT_TRACE(COMP_ERR, DBG_EMERG, ("return all one\n")); + return 0xFFFFFFFF; + } + + /* <20120809, Kordan> CCA OFF(when entering), asked by James to avoid reading the wrong value. + <20120828, Kordan> Toggling CCA would affect RF 0x0, skip it!*/ + if (offset != 0x0 && + !((rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) + || (IS_VENDOR_8812A_C_CUT(rtlhal->version)))) + rtl_set_bbreg(hw, RCCAONSEC, 0x8, 1); + + offset &= 0xff; + + if (rfpath == RF90_PATH_A) + b_is_pi_mode = (bool) rtl_get_bbreg(hw, 0xC00, 0x4); + else if (rfpath == RF90_PATH_B) + b_is_pi_mode = (bool) rtl_get_bbreg(hw, 0xE00, 0x4); + + rtl_set_bbreg(hw, RHSSIREAD_8821AE, 0xff, offset); + + if ((rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) + || (IS_VENDOR_8812A_C_CUT(rtlhal->version))) + udelay(20); + + if (b_is_pi_mode) + { + if (rfpath == RF90_PATH_A) { + retvalue = rtl_get_bbreg(hw, RA_PIREAD_8821A, BLSSIREADBACKDATA); + } + else if (rfpath == RF90_PATH_B){ + retvalue = rtl_get_bbreg(hw, RB_PIREAD_8821A, BLSSIREADBACKDATA); + } + } + else + { + if (rfpath == RF90_PATH_A) { + retvalue = rtl_get_bbreg(hw, RA_SIREAD_8821A, BLSSIREADBACKDATA); + } + else if (rfpath == RF90_PATH_B){ + retvalue = rtl_get_bbreg(hw, RB_SIREAD_8821A, BLSSIREADBACKDATA); + } + } + + /*<20120809, Kordan> CCA ON(when exiting), asked by James to avoid reading the wrong value. + <20120828, Kordan> Toggling CCA would affect RF 0x0, skip it!*/ + if (offset != 0x0 && ! ((rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) + || (IS_VENDOR_8812A_C_CUT(rtlhal->version)))) + rtl_set_bbreg(hw, RCCAONSEC, 0x8, 0); + return retvalue; +} + +#if 0 +static u32 _rtl8821ae_phy_rf_serial_read(struct ieee80211_hw *hw, + enum radio_path rfpath, u32 offset) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct bb_reg_def *pphyreg = &rtlphy->phyreg_def[rfpath]; + u32 newoffset; + u32 tmplong, tmplong2; + u8 rfpi_enable = 0; + u32 retvalue; + + offset &= 0xff; + newoffset = offset; + if (RT_CANNOT_IO(hw)) { + RT_TRACE(COMP_ERR, DBG_EMERG, ("return all one\n")); + return 0xFFFFFFFF; + } + tmplong = rtl_get_bbreg(hw, RFPGA0_XA_HSSIPARAMETER2, MASKDWORD); + if (rfpath == RF90_PATH_A) + tmplong2 = tmplong; + else + tmplong2 = rtl_get_bbreg(hw, pphyreg->rfhssi_para2, MASKDWORD); + tmplong2 = (tmplong2 & (~BLSSIREADADDRESS)) | + (newoffset << 23) | BLSSIREADEDGE; + rtl_set_bbreg(hw, RFPGA0_XA_HSSIPARAMETER2, MASKDWORD, + tmplong & (~BLSSIREADEDGE)); + mdelay(1); + rtl_set_bbreg(hw, pphyreg->rfhssi_para2, MASKDWORD, tmplong2); + mdelay(1); + /*rtl_set_bbreg(hw, RFPGA0_XA_HSSIPARAMETER2, MASKDWORD, + tmplong | BLSSIREADEDGE);*/ + mdelay(1); + if (rfpath == RF90_PATH_A) + rfpi_enable = (u8) rtl_get_bbreg(hw, RFPGA0_XA_HSSIPARAMETER1, + BIT(8)); + else if (rfpath == RF90_PATH_B) + rfpi_enable = (u8) rtl_get_bbreg(hw, RFPGA0_XB_HSSIPARAMETER1, + BIT(8)); + if (rfpi_enable) + retvalue = rtl_get_bbreg(hw, pphyreg->rflssi_readbackpi, + BLSSIREADBACKDATA); + else + retvalue = rtl_get_bbreg(hw, pphyreg->rflssi_readback, + BLSSIREADBACKDATA); + RT_TRACE(COMP_RF, DBG_TRACE, ("RFR-%d Addr[0x%x]=0x%x\n", + rfpath, pphyreg->rflssi_readback, + retvalue)); + return retvalue; +} +#endif + +static void _rtl8821ae_phy_rf_serial_write(struct ieee80211_hw *hw, + enum radio_path rfpath, u32 offset, + u32 data) +{ + u32 data_and_addr; + u32 newoffset; + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct bb_reg_def *pphyreg = &rtlphy->phyreg_def[rfpath]; + + if (RT_CANNOT_IO(hw)) { + RT_TRACE(COMP_ERR, DBG_EMERG, ("stop\n")); + return; + } + offset &= 0xff; + newoffset = offset; + data_and_addr = ((newoffset << 20) | (data & 0x000fffff)) & 0x0fffffff; + rtl_set_bbreg(hw, pphyreg->rf3wire_offset, MASKDWORD, data_and_addr); + RT_TRACE(COMP_RF, DBG_TRACE, ("RFW-%d Addr[0x%x]=0x%x\n", + rfpath, pphyreg->rf3wire_offset, + data_and_addr)); +} + +static u32 _rtl8821ae_phy_calculate_bit_shift(u32 bitmask) +{ + u32 i; + + for (i = 0; i <= 31; i++) { + if (((bitmask >> i) & 0x1) == 1) + break; + } + return i; +} + +bool rtl8821ae_phy_mac_config(struct ieee80211_hw *hw) +{ + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + bool rtstatus = 0; + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + rtstatus = _rtl8812ae_phy_config_mac_with_headerfile(hw); + else + rtstatus = _rtl8821ae_phy_config_mac_with_headerfile(hw); + + return rtstatus; +} + +bool rtl8821ae_phy_bb_config(struct ieee80211_hw *hw) +{ + bool rtstatus = true; + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 regval; + u8 crystal_cap; + //u32 tmp; + + _rtl8821ae_phy_init_bb_rf_register_definition(hw); + + regval = rtl_read_byte(rtlpriv, REG_SYS_FUNC_EN); + regval |= regval | FEN_PCIEA; + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, regval); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, + regval | FEN_BB_GLB_RSTN | FEN_BBRSTB); + + rtl_write_byte(rtlpriv, REG_RF_CTRL, 0x7);/*RF_EN | RF_RSTB | RF_SDMRSTB*/ + rtl_write_byte(rtlpriv, REG_OPT_CTRL + 2, 0x7);/*RF_EN | RF_RSTB | RF_SDMRSTB*/ + + rtstatus = _rtl8821ae_phy_bb8821a_config_parafile(hw); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + { + crystal_cap = rtlefuse->crystalcap & 0x3F; + rtl_set_bbreg(hw, REG_MAC_PHY_CTRL, 0x7FF80000, (crystal_cap | (crystal_cap << 6))); + }else{ + crystal_cap = rtlefuse->crystalcap & 0x3F; + rtl_set_bbreg(hw, REG_MAC_PHY_CTRL, 0xFFF000, (crystal_cap | (crystal_cap << 6))); + } + rtlphy->reg_837 = rtl_read_byte(rtlpriv, 0x837); + + return rtstatus; +} + +bool rtl8821ae_phy_rf_config(struct ieee80211_hw *hw) +{ + return rtl8821ae_phy_rf6052_config(hw); +} + + +u32 phy_get_tx_bb_swing_8812A( + struct ieee80211_hw *hw, + u8 band, + u8 rf_path + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_dm *rtldm = rtl_dm(rtlpriv); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + + char bb_swing_2g = (char) (-1 * 0xFF); + char bb_swing_5g = (char) (-1 * 0xFF); + u32 out = 0x200; + const char auto_temp = -1; + + RT_TRACE(COMP_SCAN, DBG_LOUD, + ("===> PHY_GetTxBBSwing_8812A, bbSwing_2G: %d, bbSwing_5G: %d\n", + (int)bb_swing_2g, (int)bb_swing_5g)); + + if ( rtlefuse->autoload_failflag) { + if ( band == BAND_ON_2_4G ) { + rtldm->bb_swing_diff_2g = bb_swing_2g; + if (bb_swing_2g == 0) out = 0x200; // 0 dB + else if (bb_swing_2g == -3) out = 0x16A; // -3 dB + else if (bb_swing_2g == -6) out = 0x101; // -6 dB + else if (bb_swing_2g == -9) out = 0x0B6; // -9 dB + else { + rtldm->bb_swing_diff_2g = 0; + out = 0x200; + } + + } else if ( band == BAND_ON_5G ) { + rtldm->bb_swing_diff_5g = bb_swing_5g; + if (bb_swing_5g == 0) out = 0x200; // 0 dB + else if (bb_swing_5g == -3) out = 0x16A; // -3 dB + else if (bb_swing_5g == -6) out = 0x101; // -6 dB + else if (bb_swing_5g == -9) out = 0x0B6; // -9 dB + else { + if ( rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) { + rtldm->bb_swing_diff_5g = -3; + out = 0x16A; + } else { + rtldm->bb_swing_diff_5g = 0; + out = 0x200; + } + } + } else { + rtldm->bb_swing_diff_2g = -3; + rtldm->bb_swing_diff_5g = -3; + out = 0x16A; // -3 dB + } + } + else + { + u32 swing = 0, swing_a = 0, swing_b = 0; + + if (band == BAND_ON_2_4G) + { + if (0xFF == auto_temp) + { + efuse_shadow_read(hw, 1, 0xC6, (u32 *)&swing); + swing = (swing == 0xFF) ? 0x00 : swing; + } + else if (bb_swing_2g == 0) swing = 0x00; // 0 dB + else if (bb_swing_2g == -3) swing = 0x05; // -3 dB + else if (bb_swing_2g == -6) swing = 0x0A; // -6 dB + else if (bb_swing_2g == -9) swing = 0xFF; // -9 dB + else swing = 0x00; + } + else + { + if (0xFF == auto_temp) + { + efuse_shadow_read(hw, 1, 0xC7, (u32 *)&swing); + swing = (swing == 0xFF) ? 0x00 : swing; + } + else if (bb_swing_5g == 0) swing = 0x00; // 0 dB + else if (bb_swing_5g == -3) swing = 0x05; // -3 dB + else if (bb_swing_5g == -6) swing = 0x0A; // -6 dB + else if (bb_swing_5g == -9) swing = 0xFF; // -9 dB + else swing = 0x00; + } + + swing_a = (swing & 0x3) >> 0; // 0xC6/C7[1:0] + swing_b = (swing & 0xC) >> 2; // 0xC6/C7[3:2] + RT_TRACE(COMP_SCAN, DBG_LOUD, + ("===> PHY_GetTxBBSwing_8812A, swingA: 0x%X, swingB: 0x%X\n", + swing_a, swing_b)); + + //3 Path-A + if (swing_a == 0x0) { + if (band == BAND_ON_2_4G) + rtldm->bb_swing_diff_2g = 0; + else + rtldm->bb_swing_diff_5g = 0; + out = 0x200; // 0 dB + } else if (swing_a == 0x1) { + if (band == BAND_ON_2_4G) + rtldm->bb_swing_diff_2g = -3; + else + rtldm->bb_swing_diff_5g = -3; + out = 0x16A; // -3 dB + } else if (swing_a == 0x2) { + if (band == BAND_ON_2_4G) + rtldm->bb_swing_diff_2g = -6; + else + rtldm->bb_swing_diff_5g = -6; + out = 0x101; // -6 dB + } else if (swing_a == 0x3) { + if (band == BAND_ON_2_4G) + rtldm->bb_swing_diff_2g = -9; + else + rtldm->bb_swing_diff_5g = -9; + out = 0x0B6; // -9 dB + } + + //3 Path-B + if (swing_b == 0x0) { + if (band == BAND_ON_2_4G) + rtldm->bb_swing_diff_2g = 0; + else + rtldm->bb_swing_diff_5g = 0; + out = 0x200; // 0 dB + } else if (swing_b == 0x1) { + if (band == BAND_ON_2_4G) + rtldm->bb_swing_diff_2g = -3; + else + rtldm->bb_swing_diff_5g = -3; + out = 0x16A; // -3 dB + } else if (swing_b == 0x2) { + if (band == BAND_ON_2_4G) + rtldm->bb_swing_diff_2g = -6; + else + rtldm->bb_swing_diff_5g = -6; + out = 0x101; // -6 dB + } else if (swing_b == 0x3) { + if (band == BAND_ON_2_4G) + rtldm->bb_swing_diff_2g = -9; + else + rtldm->bb_swing_diff_5g = -9; + out = 0x0B6; // -9 dB + } + } + + RT_TRACE(COMP_SCAN, DBG_LOUD, + ("<=== PHY_GetTxBBSwing_8812A, out = 0x%X\n", out)); + return out; +} +void rtl8821ae_phy_switch_wirelessband(struct ieee80211_hw *hw, u8 band) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_dm *rtldm = rtl_dm(rtlpriv); + u8 current_band = rtlhal->current_bandtype; + u32 txpath, rxpath; + //u8 i, value8; + char bb_diff_between_band; + + RT_TRACE(COMP_INIT, DBG_LOUD, ("\n")); + txpath = rtl8821ae_phy_query_bb_reg(hw, RTXPATH, 0xf0); + rxpath = rtl8821ae_phy_query_bb_reg(hw, RCCK_RX, 0x0f000000); + rtlhal->current_bandtype = (enum band_type) band; + /* reconfig BB/RF according to wireless mode */ + if (rtlhal->current_bandtype == BAND_ON_2_4G) { + /* BB & RF Config */ + RT_TRACE(COMP_CMD, DBG_DMESG, ("2.4G\n")); + rtl_set_bbreg(hw, ROFDMCCKEN, BOFDMEN|BCCKEN, 0x03); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) { + /* 0xCB0[15:12] = 0x7 (LNA_On)*/ + rtl_set_bbreg(hw, RA_RFE_PINMUX, 0xF000, 0x7); + /* 0xCB0[7:4] = 0x7 (PAPE_A)*/ + rtl_set_bbreg(hw, RA_RFE_PINMUX, 0xF0, 0x7); + } + + if(rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) { + rtl_set_bbreg(hw, 0x830, 0xE, 0x4); /*0x830[3:1] = 0x4*/ + rtl_set_bbreg(hw, 0x834, 0x3, 0x1); /*0x834[1:0] = 0x1*/ + } + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) + rtl_set_bbreg(hw, RA_TXSCALE, 0xF00, 0); // 0xC1C[11:8] = 0 + else + rtl_set_bbreg(hw, 0x82c, 0x3, 0); // 0x82C[1:0] = 2b'00 + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) { + rtl_set_bbreg(hw, RA_RFE_PINMUX, BMASKDWORD, 0x77777777); + rtl_set_bbreg(hw, RB_RFE_PINMUX, BMASKDWORD, 0x77777777); + rtl_set_bbreg(hw, RA_RFE_INV, 0x3ff00000, 0x000); + rtl_set_bbreg(hw, RB_RFE_INV, 0x3ff00000, 0x000); + } + + rtl_set_bbreg(hw, RTXPATH, 0xf0, txpath); + rtl_set_bbreg(hw, RCCK_RX, 0x0f000000, rxpath); + + rtl_write_byte(rtlpriv, REG_CCK_CHECK, 0x0); + } else {/* 5G band */ + u16 count, reg_41a; + RT_TRACE(COMP_CMD, DBG_DMESG, ("5G\n")); + + if(rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) { + /*0xCB0[15:12] = 0x5 (LNA_On)*/ + rtl_set_bbreg(hw, RA_RFE_PINMUX, 0xF000, 0x5); + /*0xCB0[7:4] = 0x4 (PAPE_A)*/ + rtl_set_bbreg(hw, RA_RFE_PINMUX, 0xF0, 0x4); + } + /*CCK_CHECK_en*/ + rtl_write_byte(rtlpriv, REG_CCK_CHECK, 0x80); + + count = 0; + reg_41a = rtl_read_word(rtlpriv, REG_TXPKT_EMPTY); + RT_TRACE(COMP_SCAN, DBG_LOUD, ("Reg41A value %d", reg_41a)); + reg_41a &= 0x30; + while ((reg_41a!= 0x30) && (count < 50)) { + udelay(50); + RT_TRACE(COMP_SCAN, DBG_LOUD, ("Delay 50us \n")); + + reg_41a = rtl_read_word(rtlpriv, REG_TXPKT_EMPTY); + reg_41a &= 0x30; + count++; + RT_TRACE(COMP_SCAN, DBG_LOUD, ("Reg41A value %d", reg_41a)); + } + if (count != 0) + RT_TRACE(COMP_MLME, DBG_LOUD, + ("PHY_SwitchWirelessBand8812(): Switch to 5G Band. " + "Count = %d reg41A=0x%x\n", count, reg_41a)); + + // 2012/02/01, Sinda add registry to switch workaround without long-run verification for scan issue. + rtl_set_bbreg(hw, ROFDMCCKEN, BOFDMEN|BCCKEN, 0x03); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) { + rtl_set_bbreg(hw, 0x830, 0xE, 0x3); /*0x830[3:1] = 0x3*/ + rtl_set_bbreg(hw, 0x834, 0x3, 0x2); /*0x834[1:0] = 0x2*/ + } + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) { + /* AGC table select */ + rtl_set_bbreg(hw, RA_TXSCALE, 0xF00, 1); /* 0xC1C[11:8] = 1*/ + } else + rtl_set_bbreg(hw, 0x82c, 0x3, 1); // 0x82C[1:0] = 2'b00 + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) { + rtl_set_bbreg(hw, RA_RFE_PINMUX, BMASKDWORD, 0x77337777); + rtl_set_bbreg(hw, RB_RFE_PINMUX, BMASKDWORD, 0x77337777); + rtl_set_bbreg(hw, RA_RFE_INV, 0x3ff00000, 0x010); + rtl_set_bbreg(hw, RB_RFE_INV, 0x3ff00000, 0x010); + } + + rtl_set_bbreg(hw, RTXPATH, 0xf0, txpath); + rtl_set_bbreg(hw, RCCK_RX, 0x0f000000, rxpath); + + RT_TRACE(COMP_SCAN, DBG_LOUD, + ("==>PHY_SwitchWirelessBand8812() BAND_ON_5G settings OFDM index 0x%x\n", + rtlpriv->dm.ofdm_index[RF90_PATH_A])); + } + + if ((rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) || + (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE)) { + rtl_set_bbreg(hw, RA_TXSCALE, 0xFFE00000, + phy_get_tx_bb_swing_8812A(hw, band, RF90_PATH_A)); // 0xC1C[31:21] + rtl_set_bbreg(hw, RB_TXSCALE, 0xFFE00000, + phy_get_tx_bb_swing_8812A(hw, band, RF90_PATH_B)); // 0xE1C[31:21] + + /* <20121005, Kordan> When TxPowerTrack is ON, we should take care of the change of BB swing. + That is, reset all info to trigger Tx power tracking.*/ + if (band != current_band) { + bb_diff_between_band = (rtldm->bb_swing_diff_2g - rtldm->bb_swing_diff_5g); + bb_diff_between_band = (band == BAND_ON_2_4G) ? bb_diff_between_band : (-1 * bb_diff_between_band); + rtldm->default_ofdm_index += bb_diff_between_band * 2; + } + rtl8821ae_dm_clear_txpower_tracking_state(hw); + } + + RT_TRACE(COMP_SCAN, DBG_TRACE, + ("<==rtl8821ae_phy_switch_wirelessband():Switch Band OK.\n")); + return; +} + +static bool _rtl8821ae_check_condition(struct ieee80211_hw *hw, + const u32 Condition + ) +{ + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + u32 _board = rtlefuse->board_type; /*need efuse define*/ + u32 _interface = rtlhal->interface; + u32 _platform = 0x08;/*SupportPlatform */ + u32 cond = Condition; + + if ( Condition == 0xCDCDCDCD ) + return true; + + cond = Condition & 0xFF; + if ( (_board != cond) == 0 && cond != 0xFF) + return false; + + cond = Condition & 0xFF00; + cond = cond >> 8; + if ( (_interface & cond) == 0 && cond != 0x07) + return false; + + cond = Condition & 0xFF0000; + cond = cond >> 16; + if ( (_platform & cond) == 0 && cond != 0x0F) + return false; + return true; +} + +static void _rtl8821ae_config_rf_reg(struct ieee80211_hw *hw, + u32 addr, + u32 data, + enum radio_path rfpath, + u32 regaddr + ) +{ + if ( addr == 0xfe || addr == 0xffe) { + mdelay(50); + } else { + rtl_set_rfreg(hw, rfpath, regaddr, RFREG_OFFSET_MASK, data); + udelay(1); + } +} + +static void _rtl8821ae_config_rf_radio_a(struct ieee80211_hw *hw, + u32 addr, u32 data) +{ + u32 content = 0x1000; /*RF Content: radio_a_txt*/ + u32 maskforphyset = (u32)(content & 0xE000); + + _rtl8821ae_config_rf_reg(hw, addr, data, RF90_PATH_A, addr | maskforphyset); + +} + +static void _rtl8821ae_config_rf_radio_b(struct ieee80211_hw *hw, + u32 addr, u32 data) +{ + u32 content = 0x1001; /*RF Content: radio_b_txt*/ + u32 maskforphyset = (u32)(content & 0xE000); + + _rtl8821ae_config_rf_reg(hw, addr, data, RF90_PATH_B, addr | maskforphyset); + +} + +static void _rtl8812ae_config_bb_reg(struct ieee80211_hw *hw, + u32 addr, u32 data) +{ + if ( addr == 0xfe) { + mdelay(50); + } else if ( addr == 0xfd) + mdelay(5); + else if ( addr == 0xfc) + mdelay(1); + else if ( addr == 0xfb) + udelay(50); + else if ( addr == 0xfa) + udelay(5); + else if ( addr == 0xf9) + udelay(1); + else { + rtl_set_bbreg(hw, addr, MASKDWORD,data); + } + udelay(1); +} + +static void _rtl8821ae_config_bb_reg(struct ieee80211_hw *hw, + u32 addr, u32 data) +{ + if ( addr == 0xfe) { + mdelay(50); + } else if ( addr == 0xfd) + mdelay(5); + else if ( addr == 0xfc) + mdelay(1); + else if ( addr == 0xfb) + udelay(50); + else if ( addr == 0xfa) + udelay(5); + else if ( addr == 0xf9) + udelay(1); + + rtl_set_bbreg(hw, addr, MASKDWORD,data); + udelay(1); +} + +static void _rtl8821ae_phy_init_tx_power_by_rate(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + u8 band, rfpath, txnum, rate_section; + + for ( band = BAND_ON_2_4G; band <= BAND_ON_5G; ++band ) + for ( rfpath = 0; rfpath < TX_PWR_BY_RATE_NUM_RF; ++rfpath ) + for ( txnum = 0; txnum < TX_PWR_BY_RATE_NUM_RF; ++txnum ) + for ( rate_section = 0; rate_section < TX_PWR_BY_RATE_NUM_SECTION; ++rate_section ) + rtlphy->tx_power_by_rate_offset[band][rfpath][txnum][rate_section] = 0; +} + +void _rtl8821ae_phy_set_txpower_by_rate_base(struct ieee80211_hw *hw, + u8 band, u8 path, + u8 rate_section, + u8 txnum, u8 value) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + if (path > RF90_PATH_D) { + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Invalid Rf Path %d in phy_SetTxPowerByRatBase()\n", path)); + return; + } + + if (band == BAND_ON_2_4G) { + switch (rate_section) { + case CCK: + rtlphy->txpwr_by_rate_base_24g[path][txnum][0] = value; + break; + case OFDM: + rtlphy->txpwr_by_rate_base_24g[path][txnum][1] = value; + break; + case HT_MCS0_MCS7: + rtlphy->txpwr_by_rate_base_24g[path][txnum][2] = value; + break; + case HT_MCS8_MCS15: + rtlphy->txpwr_by_rate_base_24g[path][txnum][3] = value; + break; + case VHT_1SSMCS0_1SSMCS9: + rtlphy->txpwr_by_rate_base_24g[path][txnum][4] = value; + break; + case VHT_2SSMCS0_2SSMCS9: + rtlphy->txpwr_by_rate_base_24g[path][txnum][5] = value; + break; + default: + RT_TRACE(COMP_INIT, DBG_LOUD, ( "Invalid RateSection %d in Band 2.4G, Rf Path %d, %dTx in PHY_SetTxPowerByRateBase()\n", + rate_section, path, txnum ) ); + break; + }; + } else if (band == BAND_ON_5G) { + switch (rate_section) { + case OFDM: + rtlphy->txpwr_by_rate_base_5g[path][txnum][0] = value; + break; + case HT_MCS0_MCS7: + rtlphy->txpwr_by_rate_base_5g[path][txnum][1] = value; + break; + case HT_MCS8_MCS15: + rtlphy->txpwr_by_rate_base_5g[path][txnum][2] = value; + break; + case VHT_1SSMCS0_1SSMCS9: + rtlphy->txpwr_by_rate_base_5g[path][txnum][3] = value; + break; + case VHT_2SSMCS0_2SSMCS9: + rtlphy->txpwr_by_rate_base_5g[path][txnum][4] = value; + break; + default: + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Invalid RateSection %d in Band 5G, Rf Path %d, " + "%dTx in PHY_SetTxPowerByRateBase()\n", + rate_section, path, txnum)); + break; + }; + } else { + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Invalid Band %d in PHY_SetTxPowerByRateBase()\n", band)); + } + +} + +u8 _rtl8821ae_phy_get_txpower_by_rate_base(struct ieee80211_hw *hw, + u8 band, u8 path, + u8 txnum, u8 rate_section) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 value = 0; + + if (path > RF90_PATH_D) { + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Invalid Rf Path %d in PHY_GetTxPowerByRateBase()\n", path)); + return 0; + } + + if (band == BAND_ON_2_4G) { + switch (rate_section) { + case CCK: + value = rtlphy->txpwr_by_rate_base_24g[path][txnum][0]; + break; + case OFDM: + value = rtlphy->txpwr_by_rate_base_24g[path][txnum][1]; + break; + case HT_MCS0_MCS7: + value = rtlphy->txpwr_by_rate_base_24g[path][txnum][2]; + break; + case HT_MCS8_MCS15: + value = rtlphy->txpwr_by_rate_base_24g[path][txnum][3]; + break; + case VHT_1SSMCS0_1SSMCS9: + value = rtlphy->txpwr_by_rate_base_24g[path][txnum][4]; + break; + case VHT_2SSMCS0_2SSMCS9: + value = rtlphy->txpwr_by_rate_base_24g[path][txnum][5]; + break; + default: + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Invalid RateSection %d in Band 2.4G, Rf Path %d," + " %dTx in PHY_GetTxPowerByRateBase()\n", + rate_section, path, txnum)); + break; + }; + } else if (band == BAND_ON_5G) { + switch (rate_section) { + case OFDM: + value = rtlphy->txpwr_by_rate_base_5g[path][txnum][0]; + break; + case HT_MCS0_MCS7: + value = rtlphy->txpwr_by_rate_base_5g[path][txnum][1]; + break; + case HT_MCS8_MCS15: + value = rtlphy->txpwr_by_rate_base_5g[path][txnum][2]; + break; + case VHT_1SSMCS0_1SSMCS9: + value = rtlphy->txpwr_by_rate_base_5g[path][txnum][3]; + break; + case VHT_2SSMCS0_2SSMCS9: + value = rtlphy->txpwr_by_rate_base_5g[path][txnum][4]; + break; + default: + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Invalid RateSection %d in Band 5G, Rf Path %d," + " %dTx in PHY_GetTxPowerByRateBase()\n", + rate_section, path, txnum)); + break; + }; + } else { + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Invalid Band %d in PHY_GetTxPowerByRateBase()\n", band)); + } + + return value; + +} +void _rtl8821ae_phy_store_txpower_by_rate_base(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u16 rawValue = 0; + u8 base = 0, path = 0; + + for (path = RF90_PATH_A; path <= RF90_PATH_B; ++path) { + rawValue = (u16) (rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][path][RF_1TX][0] >> 24) & 0xFF; + base = (rawValue >> 4) * 10 + (rawValue & 0xF); + _rtl8821ae_phy_set_txpower_by_rate_base(hw, BAND_ON_2_4G, path, CCK, RF_1TX, base); + + rawValue = (u16) (rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][path][RF_1TX][2] >> 24) & 0xFF; + base = (rawValue >> 4) * 10 + (rawValue & 0xF); + _rtl8821ae_phy_set_txpower_by_rate_base(hw, BAND_ON_2_4G, path, OFDM, RF_1TX, base ); + + rawValue = (u16) (rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][path][RF_1TX][4] >> 24) & 0xFF; + base = (rawValue >> 4) * 10 + (rawValue & 0xF); + _rtl8821ae_phy_set_txpower_by_rate_base(hw, BAND_ON_2_4G, path, HT_MCS0_MCS7, RF_1TX, base ); + + rawValue = (u16) (rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][path][RF_2TX][6] >> 24) & 0xFF; + base = (rawValue >> 4) * 10 + (rawValue & 0xF); + _rtl8821ae_phy_set_txpower_by_rate_base(hw, BAND_ON_2_4G, path, HT_MCS8_MCS15, RF_2TX, base ); + + rawValue = (u16) (rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][path][RF_1TX][8] >> 24) & 0xFF; + base = (rawValue >> 4) * 10 + (rawValue & 0xF); + _rtl8821ae_phy_set_txpower_by_rate_base(hw, BAND_ON_2_4G, path, VHT_1SSMCS0_1SSMCS9, RF_1TX, base ); + + rawValue = (u16) (rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][path][RF_2TX][11] >> 8) & 0xFF; + base = (rawValue >> 4) * 10 + (rawValue & 0xF); + _rtl8821ae_phy_set_txpower_by_rate_base(hw, BAND_ON_2_4G, path, VHT_2SSMCS0_2SSMCS9, RF_2TX, base ); + + rawValue = (u16) (rtlphy->tx_power_by_rate_offset[BAND_ON_5G][path][RF_1TX][2] >> 24) & 0xFF; + base = (rawValue >> 4) * 10 + (rawValue & 0xF); + _rtl8821ae_phy_set_txpower_by_rate_base(hw, BAND_ON_5G, path, OFDM, RF_1TX, base ); + + rawValue = (u16) (rtlphy->tx_power_by_rate_offset[BAND_ON_5G][path][RF_1TX][4] >> 24) & 0xFF; + base = (rawValue >> 4) * 10 + (rawValue & 0xF); + _rtl8821ae_phy_set_txpower_by_rate_base(hw, BAND_ON_5G, path, HT_MCS0_MCS7, RF_1TX, base ); + + rawValue = (u16) (rtlphy->tx_power_by_rate_offset[BAND_ON_5G][path][RF_2TX][6] >> 24) & 0xFF; + base = (rawValue >> 4) * 10 + (rawValue & 0xF); + _rtl8821ae_phy_set_txpower_by_rate_base(hw, BAND_ON_5G, path, HT_MCS8_MCS15, RF_2TX, base ); + + rawValue = (u16) (rtlphy->tx_power_by_rate_offset[BAND_ON_5G][path][RF_1TX][8] >> 24) & 0xFF; + base = (rawValue >> 4) * 10 + (rawValue & 0xF); + _rtl8821ae_phy_set_txpower_by_rate_base(hw, BAND_ON_5G, path, VHT_1SSMCS0_1SSMCS9, RF_1TX, base ); + + rawValue = (u16) (rtlphy->tx_power_by_rate_offset[BAND_ON_5G][path][RF_2TX][11] >> 8) & 0xFF; + base = (rawValue >> 4) * 10 + (rawValue & 0xF); + _rtl8821ae_phy_set_txpower_by_rate_base(hw, BAND_ON_5G, path, VHT_2SSMCS0_2SSMCS9, RF_2TX, base ); + } +} + +void _phy_convert_txpower_dbm_to_relative_value(u32 *data, u8 start, + u8 end, u8 base_val) +{ + char i = 0; + u8 temp_value = 0; + u32 temp_data = 0; + + for (i = 3; i >= 0; --i) + { + if (i >= start && i <= end) { + // Get the exact value + temp_value = (u8) (*data >> (i * 8)) & 0xF; + temp_value += ((u8) ((*data >> (i * 8 + 4)) & 0xF)) * 10; + + // Change the value to a relative value + temp_value = (temp_value > base_val) ? temp_value - base_val : base_val - temp_value; + } else { + temp_value = (u8) (*data >> (i * 8)) & 0xFF; + } + temp_data <<= 8; + temp_data |= temp_value; + } + *data = temp_data; +} + +void _rtl8821ae_phy_convert_txpower_dbm_to_relative_value(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 base = 0, rfPath = 0; + + for (rfPath = RF90_PATH_A; rfPath <= RF90_PATH_B; ++rfPath) { + base = _rtl8821ae_phy_get_txpower_by_rate_base(hw, BAND_ON_2_4G, rfPath, RF_1TX, CCK); + RT_DISP( FPHY, PHY_TXPWR, ( "base of 2.4G CCK 1TX: %d\n", base ) ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][rfPath][RF_1TX][0] ), + 0, 3, base ); + + base = _rtl8821ae_phy_get_txpower_by_rate_base(hw, BAND_ON_2_4G, rfPath, RF_1TX, OFDM ); + RT_DISP( FPHY, PHY_TXPWR, ( "base of 2.4G OFDM 1TX: %d\n", base ) ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][rfPath][RF_1TX][1] ), + 0, 3, base ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][rfPath][RF_1TX][2] ), + 0, 3, base ); + + base = _rtl8821ae_phy_get_txpower_by_rate_base(hw, BAND_ON_2_4G, rfPath, RF_1TX, HT_MCS0_MCS7 ); + RT_DISP( FPHY, PHY_TXPWR, ( "base of 2.4G HTMCS0-7 1TX: %d\n", base ) ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][rfPath][RF_1TX][3] ), + 0, 3, base ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][rfPath][RF_1TX][4] ), + 0, 3, base ); + + base = _rtl8821ae_phy_get_txpower_by_rate_base(hw, BAND_ON_2_4G, rfPath, RF_2TX, HT_MCS8_MCS15 ); + RT_DISP( FPHY, PHY_TXPWR, ( "base of 2.4G HTMCS8-15 2TX: %d\n", base ) ); + + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][rfPath][RF_2TX][5] ), + 0, 3, base ); + + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][rfPath][RF_2TX][6] ), + 0, 3, base ); + + base = _rtl8821ae_phy_get_txpower_by_rate_base(hw, BAND_ON_2_4G, rfPath, RF_1TX, VHT_1SSMCS0_1SSMCS9 ); + RT_DISP( FPHY, PHY_TXPWR, ( "base of 2.4G VHT1SSMCS0-9 1TX: %d\n", base ) ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][rfPath][RF_1TX][7] ), + 0, 3, base ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][rfPath][RF_1TX][8] ), + 0, 3, base ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][rfPath][RF_1TX][9] ), + 0, 1, base ); + + base = _rtl8821ae_phy_get_txpower_by_rate_base(hw, BAND_ON_2_4G, rfPath, RF_2TX, VHT_2SSMCS0_2SSMCS9 ); + RT_DISP( FPHY, PHY_TXPWR, ( "base of 2.4G VHT2SSMCS0-9 2TX: %d\n", base ) ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][rfPath][RF_1TX][9] ), + 2, 3, base ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][rfPath][RF_2TX][10] ), + 0, 3, base ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_2_4G][rfPath][RF_2TX][11] ), + 0, 3, base ); + + base = _rtl8821ae_phy_get_txpower_by_rate_base(hw, BAND_ON_5G, rfPath, RF_1TX, OFDM ); + RT_DISP( FPHY, PHY_TXPWR, ( "base of 5G OFDM 1TX: %d\n", base ) ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_5G][rfPath][RF_1TX][1] ), + 0, 3, base ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_5G][rfPath][RF_1TX][2] ), + 0, 3, base ); + + base = _rtl8821ae_phy_get_txpower_by_rate_base(hw, BAND_ON_5G, rfPath, RF_1TX, HT_MCS0_MCS7 ); + RT_DISP( FPHY, PHY_TXPWR, ( "base of 5G HTMCS0-7 1TX: %d\n", base ) ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_5G][rfPath][RF_1TX][3] ), + 0, 3, base ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_5G][rfPath][RF_1TX][4] ), + 0, 3, base ); + + base = _rtl8821ae_phy_get_txpower_by_rate_base(hw, BAND_ON_5G, rfPath, RF_2TX, HT_MCS8_MCS15 ); + RT_DISP( FPHY, PHY_TXPWR, ( "base of 5G HTMCS8-15 2TX: %d\n", base ) ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_5G][rfPath][RF_2TX][5] ), + 0, 3, base ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_5G][rfPath][RF_2TX][6] ), + 0, 3, base ); + + base = _rtl8821ae_phy_get_txpower_by_rate_base(hw, BAND_ON_5G, rfPath, RF_1TX, VHT_1SSMCS0_1SSMCS9 ); + RT_DISP( FPHY, PHY_TXPWR, ( "base of 5G VHT1SSMCS0-9 1TX: %d\n", base ) ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_5G][rfPath][RF_1TX][7] ), + 0, 3, base ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_5G][rfPath][RF_1TX][8] ), + 0, 3, base ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_5G][rfPath][RF_1TX][9] ), + 0, 1, base ); + + base = _rtl8821ae_phy_get_txpower_by_rate_base(hw, BAND_ON_5G, rfPath, RF_2TX, VHT_2SSMCS0_2SSMCS9 ); + RT_DISP( FPHY, PHY_TXPWR, ( "base of 5G VHT2SSMCS0-9 2TX: %d\n", base ) ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_5G][rfPath][RF_1TX][9] ), + 2, 3, base ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_5G][rfPath][RF_2TX][10] ), + 0, 3, base ); + _phy_convert_txpower_dbm_to_relative_value( + &(rtlphy->tx_power_by_rate_offset[BAND_ON_5G][rfPath][RF_2TX][11] ), + 0, 3, base ); + } + + RT_TRACE(COMP_POWER, DBG_TRACE, + ("<===_rtl8821ae_phy_convert_txpower_dbm_to_relative_value()\n")); + +} + +void _rtl8821ae_phy_txpower_by_rate_configuration(struct ieee80211_hw *hw) +{ + _rtl8821ae_phy_store_txpower_by_rate_base(hw); + _rtl8821ae_phy_convert_txpower_dbm_to_relative_value(hw); +} + +static bool _rtl8821ae_phy_bb8821a_config_parafile(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + bool rtstatus; + + /*TX POWER LIMIT + PHY_InitTxPowerLimit + PHY_ConfigRFWithCustomPowerLimitTableParaFile*/ + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + rtstatus = _rtl8812ae_phy_config_bb_with_headerfile(hw, + BASEBAND_CONFIG_PHY_REG); + else{ + rtstatus = _rtl8821ae_phy_config_bb_with_headerfile(hw, + BASEBAND_CONFIG_PHY_REG); + } + if (rtstatus != true) { + RT_TRACE(COMP_ERR, DBG_EMERG, ("Write BB Reg Fail!!")); + return false; + } + _rtl8821ae_phy_init_tx_power_by_rate(hw); + if (rtlefuse->autoload_failflag == false) { + //rtlphy->pwrgroup_cnt = 0; + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + rtstatus = _rtl8812ae_phy_config_bb_with_pgheaderfile(hw, + BASEBAND_CONFIG_PHY_REG); + else{ + rtstatus = _rtl8821ae_phy_config_bb_with_pgheaderfile(hw, + BASEBAND_CONFIG_PHY_REG); + } + } + if (rtstatus != true) { + RT_TRACE(COMP_ERR, DBG_EMERG, ("BB_PG Reg Fail!!")); + return false; + } + + _rtl8821ae_phy_txpower_by_rate_configuration(hw); + + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + rtstatus = _rtl8812ae_phy_config_bb_with_headerfile(hw, + BASEBAND_CONFIG_AGC_TAB); + else + rtstatus = _rtl8821ae_phy_config_bb_with_headerfile(hw, + BASEBAND_CONFIG_AGC_TAB); + + if (rtstatus != true) { + RT_TRACE(COMP_ERR, DBG_EMERG, ("AGC Table Fail\n")); + return false; + } + rtlphy->bcck_high_power = (bool) (rtl_get_bbreg(hw, + RFPGA0_XA_HSSIPARAMETER2, + 0x200)); + return true; +} + +static bool _rtl8812ae_phy_config_mac_with_headerfile(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 i, v1, v2; + u32 arraylength; + u32 *ptrarray; + + RT_TRACE(COMP_INIT, DBG_TRACE, ("Read rtl8812AE_MAC_REG_Array\n")); + arraylength = RTL8812AEMAC_1T_ARRAYLEN; + ptrarray = RTL8812AE_MAC_REG_ARRAY; + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Img:RTL8812AE_MAC_REG_ARRAY LEN %d\n",arraylength)); + for (i = 0; i < arraylength; i += 2) { + v1 = ptrarray[i]; + v2 = (u8) ptrarray[i + 1]; + if (v1<0xCDCDCDCD) { + rtl_write_byte(rtlpriv, v1, (u8) v2); + } else { + if (!_rtl8821ae_check_condition(hw,v1)) { + /*Discard the following (offset, data) pairs*/ + READ_NEXT_PAIR(ptrarray, v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && i < arraylength -2) + READ_NEXT_PAIR(ptrarray, v1, v2, i); + + i -= 2; /* prevent from for-loop += 2*/ + } else {/*Configure matched pairs and skip to end of if-else.*/ + READ_NEXT_PAIR(ptrarray, v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && i < arraylength -2) { + rtl_write_byte(rtlpriv,v1,v2); + READ_NEXT_PAIR(ptrarray, v1, v2, i); + } + + while (v2 != 0xDEAD && i < arraylength -2) + READ_NEXT_PAIR(ptrarray, v1, v2, i); + } + } + } + return true; +} + +static bool _rtl8821ae_phy_config_mac_with_headerfile(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 i, v1, v2; + u32 arraylength; + u32 *ptrarray; + + RT_TRACE(COMP_INIT, DBG_TRACE, ("Read rtl8821AE_MAC_REG_Array\n")); + arraylength = RTL8821AEMAC_1T_ARRAYLEN; + ptrarray = RTL8821AE_MAC_REG_ARRAY; + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Img:RTL8821AE_MAC_REG_ARRAY LEN %d\n",arraylength)); + for (i = 0; i < arraylength; i += 2) { + v1 = ptrarray[i]; + v2 = (u8) ptrarray[i + 1]; + if (v1<0xCDCDCDCD) { + rtl_write_byte(rtlpriv, v1, (u8) v2); + continue; + } else { + if (!_rtl8821ae_check_condition(hw,v1)) { + /*Discard the following (offset, data) pairs*/ + READ_NEXT_PAIR(ptrarray, v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && i < arraylength -2) + READ_NEXT_PAIR(ptrarray, v1, v2, i); + + i -= 2; /* prevent from for-loop += 2*/ + } else {/*Configure matched pairs and skip to end of if-else.*/ + READ_NEXT_PAIR(ptrarray, v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && i < arraylength -2) { + rtl_write_byte(rtlpriv,v1,v2); + READ_NEXT_PAIR(ptrarray, v1, v2, i); + } + + while (v2 != 0xDEAD && i < arraylength -2) + READ_NEXT_PAIR(ptrarray, v1, v2, i); + } + } + } + return true; +} + +static bool _rtl8812ae_phy_config_bb_with_headerfile(struct ieee80211_hw *hw, + u8 configtype) +{ + int i; + u32 *array_table; + u16 arraylen; + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 v1 = 0, v2 = 0; + + if (configtype == BASEBAND_CONFIG_PHY_REG) { + arraylen = RTL8812AEPHY_REG_1TARRAYLEN; + array_table = RTL8812AE_PHY_REG_ARRAY; + + for (i = 0; i < arraylen; i += 2) { + v1 = array_table[i]; + v2 = array_table[i+1]; + if (v1<0xCDCDCDCD) { + _rtl8812ae_config_bb_reg(hw, v1, v2); + continue; + } else {/*This line is the start line of branch.*/ + if (!_rtl8821ae_check_condition(hw,v1)) { + /*Discard the following (offset, data) pairs*/ + READ_NEXT_PAIR(array_table,v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && i < arraylen -2) + READ_NEXT_PAIR(array_table,v1, v2, i); + + i -= 2; /* prevent from for-loop += 2*/ + } else {/*Configure matched pairs and skip to end of if-else.*/ + READ_NEXT_PAIR(array_table,v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && i < arraylen -2) { + _rtl8812ae_config_bb_reg(hw,v1,v2); + READ_NEXT_PAIR(array_table,v1, v2, i); + } + + while (v2 != 0xDEAD && i < arraylen -2) + READ_NEXT_PAIR(array_table,v1, v2, i); + } + } + } + } else if (configtype == BASEBAND_CONFIG_AGC_TAB) { + arraylen = RTL8812AEAGCTAB_1TARRAYLEN; + array_table = RTL8812AE_AGC_TAB_ARRAY; + + for (i = 0; i < arraylen; i = i + 2) { + v1 = array_table[i]; + v2 = array_table[i+1]; + if (v1 < 0xCDCDCDCD) { + rtl_set_bbreg(hw, v1, MASKDWORD, v2); + udelay(1); + continue; + } else {/*This line is the start line of branch.*/ + if (!_rtl8821ae_check_condition(hw,v1)) { + /*Discard the following (offset, data) pairs*/ + READ_NEXT_PAIR(array_table,v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && i < arraylen -2) + READ_NEXT_PAIR(array_table,v1, v2, i); + + i -= 2; /* prevent from for-loop += 2*/ + }else{/*Configure matched pairs and skip to end of if-else.*/ + READ_NEXT_PAIR(array_table,v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && i < arraylen -2) + { + rtl_set_bbreg(hw, v1, MASKDWORD, v2); + udelay(1); + READ_NEXT_PAIR(array_table,v1, v2, i); + } + + while (v2 != 0xDEAD && i < arraylen -2) + READ_NEXT_PAIR(array_table,v1, v2, i); + } + } + RT_TRACE(COMP_INIT, DBG_TRACE, + ("The agctab_array_table[0] is " + "%x Rtl818EEPHY_REGArray[1] is %x \n", + array_table[i], + array_table[i + 1])); + } + } + return true; +} + +static bool _rtl8821ae_phy_config_bb_with_headerfile(struct ieee80211_hw *hw, + u8 configtype) +{ + int i; + u32 *array_table; + u16 arraylen; + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 v1 = 0, v2 = 0; + + if (configtype == BASEBAND_CONFIG_PHY_REG) { + arraylen = RTL8821AEPHY_REG_1TARRAYLEN; + array_table = RTL8821AE_PHY_REG_ARRAY; + + for (i = 0; i < arraylen; i += 2) { + v1 = array_table[i]; + v2 = array_table[i+1]; + if (v1<0xCDCDCDCD) { + _rtl8821ae_config_bb_reg(hw, v1, v2); + continue; + } else {/*This line is the start line of branch.*/ + if (!_rtl8821ae_check_condition(hw,v1)) { + /*Discard the following (offset, data) pairs*/ + READ_NEXT_PAIR(array_table, v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && i < arraylen -2) + READ_NEXT_PAIR(array_table, v1, v2, i); + + i -= 2; /* prevent from for-loop += 2*/ + } else {/*Configure matched pairs and skip to end of if-else.*/ + READ_NEXT_PAIR(array_table, v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && i < arraylen -2) { + _rtl8821ae_config_bb_reg(hw,v1,v2); + READ_NEXT_PAIR(array_table, v1, v2, i); + } + + while (v2 != 0xDEAD && i < arraylen -2) + READ_NEXT_PAIR(array_table, v1, v2, i); + } + } + } + } else if (configtype == BASEBAND_CONFIG_AGC_TAB) { + arraylen = RTL8821AEAGCTAB_1TARRAYLEN; + array_table = RTL8821AE_AGC_TAB_ARRAY; + + for (i = 0; i < arraylen; i = i + 2) { + v1 = array_table[i]; + v2 = array_table[i+1]; + if (v1 < 0xCDCDCDCD) { + rtl_set_bbreg(hw, v1, MASKDWORD, v2); + udelay(1); + continue; + } else {/*This line is the start line of branch.*/ + if (!_rtl8821ae_check_condition(hw,v1)) { + /*Discard the following (offset, data) pairs*/ + READ_NEXT_PAIR(array_table, v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && i < arraylen -2) + READ_NEXT_PAIR(array_table, v1, v2, i); + + i -= 2; /* prevent from for-loop += 2*/ + }else{/*Configure matched pairs and skip to end of if-else.*/ + READ_NEXT_PAIR(array_table, v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && i < arraylen -2) + { + rtl_set_bbreg(hw, v1, MASKDWORD, v2); + udelay(1); + READ_NEXT_PAIR(array_table, v1, v2, i); + } + + while (v2 != 0xDEAD && i < arraylen -2) + READ_NEXT_PAIR(array_table, v1, v2, i); + } + } + RT_TRACE(COMP_INIT, DBG_TRACE, + ("The agctab_array_table[0] is " + "%x Rtl818EEPHY_REGArray[1] is %x \n", + array_table[i], + array_table[i + 1])); + } + } + return true; +} + +static u8 _rtl8821ae_get_rate_selection_index(u32 regaddr) +{ + u8 index = 0; + + regaddr &= 0xFFF; + if (regaddr >= 0xC20 && regaddr <= 0xC4C) + index = (u8) ((regaddr - 0xC20) / 4); + else if (regaddr >= 0xE20 && regaddr <= 0xE4C) + index = (u8) ((regaddr - 0xE20) / 4); + else + RT_ASSERT(!COMP_INIT, + ("Invalid RegAddr 0x%x in" + "PHY_GetRateSectionIndexOfTxPowerByRate()\n",regaddr)); + + return index; +} + +static void _rtl8821ae_store_tx_power_by_rate(struct ieee80211_hw *hw, + u32 band, u32 rfpath, + u32 txnum, u32 regaddr, + u32 bitmask, u32 data) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 rate_section = _rtl8821ae_get_rate_selection_index(regaddr); + + if (band != BAND_ON_2_4G && band != BAND_ON_5G) + RT_TRACE(COMP_INIT, DBG_WARNING, ("Invalid Band %d\n", band)); + + if (rfpath > MAX_RF_PATH) + RT_TRACE(COMP_INIT, DBG_WARNING, ("Invalid RfPath %d\n", rfpath)); + + if (txnum > MAX_RF_PATH) + RT_TRACE(COMP_INIT, DBG_WARNING, ("Invalid TxNum %d\n", txnum ) ); + + rtlphy->tx_power_by_rate_offset[band][rfpath][txnum][rate_section] = data; + RT_TRACE(COMP_INIT, DBG_WARNING,( "pHalData->TxPwrByRateOffset[Band %d][RfPath %d][TxNum %d][RateSection %d] = 0x%x\n", + band, rfpath, txnum, rate_section, rtlphy->tx_power_by_rate_offset[band][rfpath][txnum][rate_section])); + +} + +static bool _rtl8812ae_phy_config_bb_with_pgheaderfile(struct ieee80211_hw *hw, + u8 configtype) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + int i; + u32 *phy_regarray_table_pg; + u16 phy_regarray_pg_len; + u32 v1, v2, v3, v4, v5, v6; + + phy_regarray_pg_len = RTL8812AEPHY_REG_ARRAY_PGLEN; + phy_regarray_table_pg = RTL8812AE_PHY_REG_ARRAY_PG; + + if (configtype == BASEBAND_CONFIG_PHY_REG) { + for (i = 0; i < phy_regarray_pg_len; i += 6) { + v1 = phy_regarray_table_pg[i]; + v2 = phy_regarray_table_pg[i+1]; + v3 = phy_regarray_table_pg[i+2]; + v4 = phy_regarray_table_pg[i+3]; + v5 = phy_regarray_table_pg[i+4]; + v6 = phy_regarray_table_pg[i+5]; + + if (v1<0xCDCDCDCD) { + if ( (v4 == 0xfe) || (v4 == 0xffe)) + mdelay(50); + else + /*_rtl8821ae_store_pwrIndex_diffrate_offset*/ + _rtl8821ae_store_tx_power_by_rate(hw, v1, v2, v3, v4, v5, v6); + continue; + } else { + if (!_rtl8821ae_check_condition(hw,v1)) { /*don't need the hw_body*/ + i += 2; /* skip the pair of expression*/ + v1 = phy_regarray_table_pg[i]; + v2 = phy_regarray_table_pg[i+1]; + v3 = phy_regarray_table_pg[i+2]; + while (v2 != 0xDEAD) { + i += 3; + v1 = phy_regarray_table_pg[i]; + v2 = phy_regarray_table_pg[i+1]; + v3 = phy_regarray_table_pg[i+2]; + } + } + } + } + } else { + + RT_TRACE(COMP_SEND, DBG_TRACE, + ("configtype != BaseBand_Config_PHY_REG\n")); + } + return true; +} + +static bool _rtl8821ae_phy_config_bb_with_pgheaderfile(struct ieee80211_hw *hw, + u8 configtype) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + int i; + u32 *phy_regarray_table_pg; + u16 phy_regarray_pg_len; + u32 v1, v2, v3, v4, v5, v6; + + phy_regarray_pg_len = RTL8821AEPHY_REG_ARRAY_PGLEN; + phy_regarray_table_pg = RTL8821AE_PHY_REG_ARRAY_PG; + + if (configtype == BASEBAND_CONFIG_PHY_REG) { + for (i = 0; i < phy_regarray_pg_len; i += 6) { + v1 = phy_regarray_table_pg[i]; + v2 = phy_regarray_table_pg[i+1]; + v3 = phy_regarray_table_pg[i+2]; + v4 = phy_regarray_table_pg[i+3]; + v5 = phy_regarray_table_pg[i+4]; + v6 = phy_regarray_table_pg[i+5]; + + if (v1<0xCDCDCDCD) { + if (v4 == 0xfe) + mdelay(50); + else if (v4 == 0xfd) + mdelay(5); + else if (v4 == 0xfc) + mdelay(1); + else if (v4 == 0xfb) + udelay(50); + else if (v4 == 0xfa) + udelay(5); + else if (v4 == 0xf9) + udelay(1); + + /*_rtl8821ae_store_pwrIndex_diffrate_offset*/ + _rtl8821ae_store_tx_power_by_rate(hw, v1, v2, v3, v4, v5, v6); + continue; + } else { + if (!_rtl8821ae_check_condition(hw,v1)) { /*don't need the hw_body*/ + i += 2; /* skip the pair of expression*/ + v1 = phy_regarray_table_pg[i]; + v2 = phy_regarray_table_pg[i+1]; + v3 = phy_regarray_table_pg[i+2]; + while (v2 != 0xDEAD) { + i += 3; + v1 = phy_regarray_table_pg[i]; + v2 = phy_regarray_table_pg[i+1]; + v3 = phy_regarray_table_pg[i+2]; + } + } + } + } + } else { + + RT_TRACE(COMP_SEND, DBG_TRACE, + ("configtype != BaseBand_Config_PHY_REG\n")); + } + return true; +} + +bool rtl8812ae_phy_config_rf_with_headerfile(struct ieee80211_hw * hw, + enum radio_path rfpath) +{ + #define READ_NEXT_RF_PAIR_8812(radioa_array_table,v1, v2, i) do { i += 2; v1 = radioa_array_table[i]; v2 = radioa_array_table[i+1]; } while(0) + + int i; + bool rtstatus = true; + u32 *radioa_array_table_a, *radioa_array_table_b; + u16 radioa_arraylen_a, radioa_arraylen_b; + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 v1 = 0, v2 = 0; + + radioa_arraylen_a = RTL8812AE_RADIOA_1TARRAYLEN; + radioa_array_table_a= RTL8812AE_RADIOA_ARRAY; + radioa_arraylen_b= RTL8812AE_RADIOB_1TARRAYLEN; + radioa_array_table_b = RTL8812AE_RADIOB_ARRAY; + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Radio_A:RTL8821AE_RADIOA_ARRAY %d\n",radioa_arraylen_a)); + RT_TRACE(COMP_INIT, DBG_LOUD, ("Radio No %x\n", rfpath)); + rtstatus = true; + switch (rfpath) { + case RF90_PATH_A: + for (i = 0; i < radioa_arraylen_a; i = i + 2) { + v1 = radioa_array_table_a[i]; + v2 = radioa_array_table_a[i+1]; + if (v1<0xcdcdcdcd) { + _rtl8821ae_config_rf_radio_a(hw,v1,v2); + continue; + }else{/*This line is the start line of branch.*/ + if(!_rtl8821ae_check_condition(hw,v1)){ + /*Discard the following (offset, data) pairs*/ + READ_NEXT_RF_PAIR_8812(radioa_array_table_a,v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && i < radioa_arraylen_a-2) + READ_NEXT_RF_PAIR_8812(radioa_array_table_a,v1, v2, i); + + i -= 2; /* prevent from for-loop += 2*/ + } else {/*Configure matched pairs and skip to end of if-else.*/ + READ_NEXT_RF_PAIR_8812(radioa_array_table_a,v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && i < radioa_arraylen_a -2) { + _rtl8821ae_config_rf_radio_a(hw,v1,v2); + READ_NEXT_RF_PAIR_8812(radioa_array_table_a,v1, v2, i); + } + + while (v2 != 0xDEAD && i < radioa_arraylen_a-2) + READ_NEXT_RF_PAIR_8812(radioa_array_table_a,v1, v2, i); + } + } + } + break; + case RF90_PATH_B: + for (i = 0; i < radioa_arraylen_b; i = i + 2) { + v1 = radioa_array_table_b[i]; + v2 = radioa_array_table_b[i+1]; + if (v1<0xcdcdcdcd) { + _rtl8821ae_config_rf_radio_b(hw,v1,v2); + continue; + }else{/*This line is the start line of branch.*/ + if(!_rtl8821ae_check_condition(hw,v1)){ + /*Discard the following (offset, data) pairs*/ + READ_NEXT_RF_PAIR_8812(radioa_array_table_b,v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && i < radioa_arraylen_b-2) + READ_NEXT_RF_PAIR_8812(radioa_array_table_b,v1, v2, i); + + i -= 2; /* prevent from for-loop += 2*/ + } else {/*Configure matched pairs and skip to end of if-else.*/ + READ_NEXT_RF_PAIR_8812(radioa_array_table_b,v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && i < radioa_arraylen_b-2) { + _rtl8821ae_config_rf_radio_b(hw,v1,v2); + READ_NEXT_RF_PAIR_8812(radioa_array_table_b,v1, v2, i); + } + + while (v2 != 0xDEAD && i < radioa_arraylen_b-2) + READ_NEXT_RF_PAIR_8812(radioa_array_table_b,v1, v2, i); + } + } + } + break; + case RF90_PATH_C: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("switch case not process \n")); + break; + case RF90_PATH_D: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("switch case not process \n")); + break; + } + return true; +} + + +bool rtl8821ae_phy_config_rf_with_headerfile(struct ieee80211_hw * hw, + enum radio_path rfpath) +{ + #define READ_NEXT_RF_PAIR(v1, v2, i) do { i += 2; v1 = radioa_array_table[i]; v2 = radioa_array_table[i+1]; } while(0) + + int i; + bool rtstatus = true; + u32 *radioa_array_table; + u16 radioa_arraylen; + struct rtl_priv *rtlpriv = rtl_priv(hw); + //struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u32 v1 = 0, v2 = 0; + + radioa_arraylen = RTL8821AE_RADIOA_1TARRAYLEN; + radioa_array_table = RTL8821AE_RADIOA_ARRAY; + RT_TRACE(COMP_INIT, DBG_LOUD, + ("Radio_A:RTL8821AE_RADIOA_ARRAY %d\n",radioa_arraylen)); + RT_TRACE(COMP_INIT, DBG_LOUD, ("Radio No %x\n", rfpath)); + rtstatus = true; + switch (rfpath) { + case RF90_PATH_A: + for (i = 0; i < radioa_arraylen; i = i + 2) { + v1 = radioa_array_table[i]; + v2 = radioa_array_table[i+1]; + if (v1<0xcdcdcdcd) { + _rtl8821ae_config_rf_radio_a(hw,v1,v2); + }else{/*This line is the start line of branch.*/ + if(!_rtl8821ae_check_condition(hw,v1)){ + /*Discard the following (offset, data) pairs*/ + READ_NEXT_RF_PAIR(v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && i < radioa_arraylen -2) + READ_NEXT_RF_PAIR(v1, v2, i); + + i -= 2; /* prevent from for-loop += 2*/ + } else {/*Configure matched pairs and skip to end of if-else.*/ + READ_NEXT_RF_PAIR(v1, v2, i); + while (v2 != 0xDEAD && + v2 != 0xCDEF && + v2 != 0xCDCD && i < radioa_arraylen -2) { + _rtl8821ae_config_rf_radio_a(hw,v1,v2); + READ_NEXT_RF_PAIR(v1, v2, i); + } + + while (v2 != 0xDEAD && i < radioa_arraylen -2) + READ_NEXT_RF_PAIR(v1, v2, i); + } + } + } + break; + + case RF90_PATH_B: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("switch case not process \n")); + break; + case RF90_PATH_C: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("switch case not process \n")); + break; + case RF90_PATH_D: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("switch case not process \n")); + break; + } + return true; +} + +void rtl8821ae_phy_get_hw_reg_originalvalue(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + rtlphy->default_initialgain[0] = + (u8) rtl_get_bbreg(hw, ROFDM0_XAAGCCORE1, MASKBYTE0); + rtlphy->default_initialgain[1] = + (u8) rtl_get_bbreg(hw, ROFDM0_XBAGCCORE1, MASKBYTE0); + rtlphy->default_initialgain[2] = + (u8) rtl_get_bbreg(hw, ROFDM0_XCAGCCORE1, MASKBYTE0); + rtlphy->default_initialgain[3] = + (u8) rtl_get_bbreg(hw, ROFDM0_XDAGCCORE1, MASKBYTE0); + + RT_TRACE(COMP_INIT, DBG_TRACE, + ("Default initial gain (c50=0x%x, " + "c58=0x%x, c60=0x%x, c68=0x%x \n", + rtlphy->default_initialgain[0], + rtlphy->default_initialgain[1], + rtlphy->default_initialgain[2], + rtlphy->default_initialgain[3])); + + rtlphy->framesync = (u8) rtl_get_bbreg(hw, + ROFDM0_RXDETECTOR3, MASKBYTE0); + rtlphy->framesync_c34 = rtl_get_bbreg(hw, + ROFDM0_RXDETECTOR2, MASKDWORD); + + RT_TRACE(COMP_INIT, DBG_TRACE, + ("Default framesync (0x%x) = 0x%x \n", + ROFDM0_RXDETECTOR3, rtlphy->framesync)); +} + +static void _rtl8821ae_phy_init_bb_rf_register_definition(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + rtlphy->phyreg_def[RF90_PATH_A].rfintfs = RFPGA0_XAB_RFINTERFACESW; + rtlphy->phyreg_def[RF90_PATH_B].rfintfs = RFPGA0_XAB_RFINTERFACESW; + + rtlphy->phyreg_def[RF90_PATH_A].rfintfo = RFPGA0_XA_RFINTERFACEOE; + rtlphy->phyreg_def[RF90_PATH_B].rfintfo = RFPGA0_XB_RFINTERFACEOE; + + rtlphy->phyreg_def[RF90_PATH_A].rfintfe = RFPGA0_XA_RFINTERFACEOE; + rtlphy->phyreg_def[RF90_PATH_B].rfintfe = RFPGA0_XB_RFINTERFACEOE; + + rtlphy->phyreg_def[RF90_PATH_A].rf3wire_offset = RA_LSSIWRITE_8821A; + rtlphy->phyreg_def[RF90_PATH_B].rf3wire_offset = RB_LSSIWRITE_8821A; + + rtlphy->phyreg_def[RF90_PATH_A].rfhssi_para2 = RHSSIREAD_8821AE; + rtlphy->phyreg_def[RF90_PATH_B].rfhssi_para2 = RHSSIREAD_8821AE; + + rtlphy->phyreg_def[RF90_PATH_A].rflssi_readback = RA_SIREAD_8821A; + rtlphy->phyreg_def[RF90_PATH_B].rflssi_readback = RB_SIREAD_8821A; + + rtlphy->phyreg_def[RF90_PATH_A].rflssi_readbackpi = RA_PIREAD_8821A; + rtlphy->phyreg_def[RF90_PATH_B].rflssi_readbackpi = RB_PIREAD_8821A; +} + +void rtl8821ae_phy_get_txpower_level(struct ieee80211_hw *hw, long *powerlevel) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 txpwr_level; + long txpwr_dbm; + + txpwr_level = rtlphy->cur_cck_txpwridx; + txpwr_dbm = _rtl8821ae_phy_txpwr_idx_to_dbm(hw, + WIRELESS_MODE_B, txpwr_level); + txpwr_level = rtlphy->cur_ofdm24g_txpwridx; + if (_rtl8821ae_phy_txpwr_idx_to_dbm(hw, + WIRELESS_MODE_G, + txpwr_level) > txpwr_dbm) + txpwr_dbm = + _rtl8821ae_phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_G, + txpwr_level); + txpwr_level = rtlphy->cur_ofdm24g_txpwridx; + if (_rtl8821ae_phy_txpwr_idx_to_dbm(hw, + WIRELESS_MODE_N_24G, + txpwr_level) > txpwr_dbm) + txpwr_dbm = + _rtl8821ae_phy_txpwr_idx_to_dbm(hw, WIRELESS_MODE_N_24G, + txpwr_level); + *powerlevel = txpwr_dbm; +} + +static bool _rtl8821ae_phy_get_chnl_index(u8 channel, u8 *chnl_index) +{ + u8 channel_5g[CHANNEL_MAX_NUMBER_5G] = + {36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,100,102,104,106,108,110,112, + 114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,149,151, + 153,155,157,159,161,163,165,167,168,169,171,173,175,177}; + u8 i = 0; + bool in_24g = true; + + if (channel <= 14) { + in_24g = true; + *chnl_index = channel - 1; + } else { + in_24g = false; + + for (i = 0; i < sizeof(channel_5g) / sizeof(u8); ++i) { + if (channel_5g[i] == channel) { + *chnl_index = i; + return in_24g; + } + } + } + return in_24g; +} + +static char _rtl8821ae_phy_get_ratesection_intxpower_byrate(u8 path, u8 rate) +{ + char rate_section = 0; + switch (rate) { + case DESC_RATE1M: + case DESC_RATE2M: + case DESC_RATE5_5M: + case DESC_RATE11M: + rate_section = 0; + break; + + case DESC_RATE6M: + case DESC_RATE9M: + case DESC_RATE12M: + case DESC_RATE18M: + rate_section = 1; + break; + + case DESC_RATE24M: + case DESC_RATE36M: + case DESC_RATE48M: + case DESC_RATE54M: + rate_section = 2; + break; + + case DESC_RATEMCS0: + case DESC_RATEMCS1: + case DESC_RATEMCS2: + case DESC_RATEMCS3: + rate_section = 3; + break; + + case DESC_RATEMCS4: + case DESC_RATEMCS5: + case DESC_RATEMCS6: + case DESC_RATEMCS7: + rate_section = 4; + break; + + case DESC_RATEMCS8: + case DESC_RATEMCS9: + case DESC_RATEMCS10: + case DESC_RATEMCS11: + rate_section = 5; + break; + + case DESC_RATEMCS12: + case DESC_RATEMCS13: + case DESC_RATEMCS14: + case DESC_RATEMCS15: + rate_section = 6; + break; + + case DESC_RATEVHT1SS_MCS0: + case DESC_RATEVHT1SS_MCS1: + case DESC_RATEVHT1SS_MCS2: + case DESC_RATEVHT1SS_MCS3: + rate_section = 7; + break; + + case DESC_RATEVHT1SS_MCS4: + case DESC_RATEVHT1SS_MCS5: + case DESC_RATEVHT1SS_MCS6: + case DESC_RATEVHT1SS_MCS7: + rate_section = 8; + break; + + case DESC_RATEVHT1SS_MCS8: + case DESC_RATEVHT1SS_MCS9: + case DESC_RATEVHT2SS_MCS0: + case DESC_RATEVHT2SS_MCS1: + rate_section = 9; + break; + + case DESC_RATEVHT2SS_MCS2: + case DESC_RATEVHT2SS_MCS3: + case DESC_RATEVHT2SS_MCS4: + case DESC_RATEVHT2SS_MCS5: + rate_section = 10; + break; + + case DESC_RATEVHT2SS_MCS6: + case DESC_RATEVHT2SS_MCS7: + case DESC_RATEVHT2SS_MCS8: + case DESC_RATEVHT2SS_MCS9: + rate_section = 11; + break; + + default: + RT_ASSERT(true, ("Rate_Section is Illegal\n")); + break; + } + + return rate_section; +} + +static char _rtl8821ae_phy_get_txpower_by_rate(struct ieee80211_hw *hw, + u8 band, u8 path, u8 rate) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 shift = 0, rate_section, tx_num; + char tx_pwr_diff = 0; + + rate_section = _rtl8821ae_phy_get_ratesection_intxpower_byrate(path, rate); + tx_num = RF_TX_NUM_NONIMPLEMENT; + + if (tx_num == RF_TX_NUM_NONIMPLEMENT) { + if ((rate >= DESC_RATEMCS8 && rate <= DESC_RATEMCS15 ) || + (rate >= DESC_RATEVHT2SS_MCS2 && rate <= DESC_RATEVHT2SS_MCS9)) + tx_num = RF_2TX; + else + tx_num = RF_1TX; + } + + switch (rate) { + case DESC_RATE1M: shift = 0; break; + case DESC_RATE2M: shift = 8; break; + case DESC_RATE5_5M: shift = 16; break; + case DESC_RATE11M: shift = 24; break; + + case DESC_RATE6M: shift = 0; break; + case DESC_RATE9M: shift = 8; break; + case DESC_RATE12M: shift = 16; break; + case DESC_RATE18M: shift = 24; break; + + case DESC_RATE24M: shift = 0; break; + case DESC_RATE36M: shift = 8; break; + case DESC_RATE48M: shift = 16; break; + case DESC_RATE54M: shift = 24; break; + + case DESC_RATEMCS0: shift = 0; break; + case DESC_RATEMCS1: shift = 8; break; + case DESC_RATEMCS2: shift = 16; break; + case DESC_RATEMCS3: shift = 24; break; + + case DESC_RATEMCS4: shift = 0; break; + case DESC_RATEMCS5: shift = 8; break; + case DESC_RATEMCS6: shift = 16; break; + case DESC_RATEMCS7: shift = 24; break; + + case DESC_RATEMCS8: shift = 0; break; + case DESC_RATEMCS9: shift = 8; break; + case DESC_RATEMCS10: shift = 16; break; + case DESC_RATEMCS11: shift = 24; break; + + case DESC_RATEMCS12: shift = 0; break; + case DESC_RATEMCS13: shift = 8; break; + case DESC_RATEMCS14: shift = 16; break; + case DESC_RATEMCS15: shift = 24; break; + + case DESC_RATEVHT1SS_MCS0: shift = 0; break; + case DESC_RATEVHT1SS_MCS1: shift = 8; break; + case DESC_RATEVHT1SS_MCS2: shift = 16; break; + case DESC_RATEVHT1SS_MCS3: shift = 24; break; + + case DESC_RATEVHT1SS_MCS4: shift = 0; break; + case DESC_RATEVHT1SS_MCS5: shift = 8; break; + case DESC_RATEVHT1SS_MCS6: shift = 16; break; + case DESC_RATEVHT1SS_MCS7: shift = 24; break; + + case DESC_RATEVHT1SS_MCS8: shift = 0; break; + case DESC_RATEVHT1SS_MCS9: shift = 8; break; + case DESC_RATEVHT2SS_MCS0: shift = 16; break; + case DESC_RATEVHT2SS_MCS1: shift = 24; break; + + case DESC_RATEVHT2SS_MCS2: shift = 0; break; + case DESC_RATEVHT2SS_MCS3: shift = 8; break; + case DESC_RATEVHT2SS_MCS4: shift = 16; break; + case DESC_RATEVHT2SS_MCS5: shift = 24; break; + + case DESC_RATEVHT2SS_MCS6: shift = 0; break; + case DESC_RATEVHT2SS_MCS7: shift = 8; break; + case DESC_RATEVHT2SS_MCS8: shift = 16; break; + case DESC_RATEVHT2SS_MCS9: shift = 24; break; + + default: + RT_ASSERT(true, ("Rate_Section is Illegal\n")); + break; + } + + tx_pwr_diff = (u8) (rtlphy->tx_power_by_rate_offset[band][path][tx_num][rate_section] >> shift) & 0xff; + + return tx_pwr_diff; +} + +static u8 _rtl8821ae_get_txpower_index(struct ieee80211_hw *hw, u8 path, + u8 rate, u8 bandwidth, u8 channel) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + u8 index = (channel - 1); + u8 txpower = 0; + bool in_24g = false; + char powerdiff_byrate = 0; + + if (((rtlhal->current_bandtype == BAND_ON_2_4G) && (channel > 14 || channel < 1)) || + ((rtlhal->current_bandtype == BAND_ON_5G) && (channel <= 14))) { + index = 0; + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, ("Illegal channel!!\n")); + } + + in_24g = _rtl8821ae_phy_get_chnl_index(channel, &index); + if (in_24g) { + if (RX_HAL_IS_CCK_RATE(rate)) + txpower = rtlefuse->txpwrlevel_cck[path][index]; + else if ( DESC_RATE6M <= rate ) + txpower = rtlefuse->txpwrlevel_ht40_1s[path][index]; + else + RT_TRACE(COMP_POWER_TRACKING, DBG_LOUD, ("invalid rate\n")); + + if (DESC_RATE6M <= rate && rate <= DESC_RATE54M && !RX_HAL_IS_CCK_RATE(rate)) + txpower += rtlefuse->txpwr_legacyhtdiff[path][TX_1S]; + + if (bandwidth == HT_CHANNEL_WIDTH_20) { + if ((DESC_RATEMCS0 <= rate && rate <= DESC_RATEMCS15) || + (DESC_RATEVHT1SS_MCS0 <= rate && rate <= DESC_RATEVHT2SS_MCS9)) + txpower += rtlefuse->txpwr_ht20diff[path][TX_1S]; + if ((DESC_RATEMCS8 <= rate && rate <= DESC_RATEMCS15) || + (DESC_RATEVHT2SS_MCS0 <= rate && rate <= DESC_RATEVHT2SS_MCS9)) + txpower += rtlefuse->txpwr_ht20diff[path][TX_2S]; + } else if (bandwidth == HT_CHANNEL_WIDTH_20_40) { + if ((DESC_RATEMCS0 <= rate && rate <= DESC_RATEMCS15) || + (DESC_RATEVHT1SS_MCS0 <= rate && rate <= DESC_RATEVHT2SS_MCS9)) + txpower += rtlefuse->txpwr_ht40diff[path][TX_1S]; + if ((DESC_RATEMCS8 <= rate && rate <= DESC_RATEMCS15) || + (DESC_RATEVHT2SS_MCS0 <= rate && rate <= DESC_RATEVHT2SS_MCS9)) + txpower += rtlefuse->txpwr_ht40diff[path][TX_2S]; + } else if (bandwidth == HT_CHANNEL_WIDTH_80) { + if ((DESC_RATEMCS0 <= rate && rate <= DESC_RATEMCS15) || + (DESC_RATEVHT1SS_MCS0 <= rate && rate <= DESC_RATEVHT2SS_MCS9)) + txpower += rtlefuse->txpwr_ht40diff[path][TX_1S]; + if ((DESC_RATEMCS8 <= rate && rate <= DESC_RATEMCS15) || + (DESC_RATEVHT2SS_MCS0 <= rate && rate <= DESC_RATEVHT2SS_MCS9)) + txpower += rtlefuse->txpwr_ht40diff[path][TX_2S]; + } + + } else { + if (DESC_RATE6M <= rate) + txpower = rtlefuse->txpwr_5g_bw40base[path][index]; + else + RT_TRACE(COMP_POWER_TRACKING, DBG_WARNING,("INVALID Rate.\n")); + + if (DESC_RATE6M <= rate && rate <= DESC_RATE54M && !RX_HAL_IS_CCK_RATE(rate)) + txpower += rtlefuse->txpwr_5g_ofdmdiff[path][TX_1S]; + + if (bandwidth == HT_CHANNEL_WIDTH_20) { + if ((DESC_RATEMCS0 <= rate && rate <= DESC_RATEMCS15) || + (DESC_RATEVHT1SS_MCS0 <= rate && rate <= DESC_RATEVHT2SS_MCS9)) + txpower += rtlefuse->txpwr_5g_bw20diff[path][TX_1S]; + if ((DESC_RATEMCS8 <= rate && rate <= DESC_RATEMCS15) || + (DESC_RATEVHT2SS_MCS0 <= rate && rate <= DESC_RATEVHT2SS_MCS9)) + txpower += rtlefuse->txpwr_5g_bw20diff[path][TX_2S]; + } else if (bandwidth == HT_CHANNEL_WIDTH_20_40) { + if ((DESC_RATEMCS0 <= rate && rate <= DESC_RATEMCS15) || + (DESC_RATEVHT1SS_MCS0 <= rate && rate <= DESC_RATEVHT2SS_MCS9)) + txpower += rtlefuse->txpwr_5g_bw40diff[path][TX_1S]; + if ((DESC_RATEMCS8 <= rate && rate <= DESC_RATEMCS15) || + (DESC_RATEVHT2SS_MCS0 <= rate && rate <= DESC_RATEVHT2SS_MCS9)) + txpower += rtlefuse->txpwr_5g_bw40diff[path][TX_2S]; + } else if (bandwidth == HT_CHANNEL_WIDTH_80) { + u8 channel_5g_80m[CHANNEL_MAX_NUMBER_5G_80M] = {42, 58, 106, 122, 138, 155, 171}; + u8 i = 0; + for (i = 0; i < sizeof(channel_5g_80m) / sizeof(u8); ++i) + if (channel_5g_80m[i] == channel) + index = i; + + if ((DESC_RATEMCS0 <= rate && rate <= DESC_RATEMCS15) || + (DESC_RATEVHT1SS_MCS0 <= rate && rate <= DESC_RATEVHT2SS_MCS9)) + txpower = rtlefuse->txpwr_5g_bw80base[path][index] + + rtlefuse->txpwr_5g_bw80diff[path][TX_1S]; + if ((DESC_RATEMCS8 <= rate && rate <= DESC_RATEMCS15) || + (DESC_RATEVHT2SS_MCS0 <= rate && rate <= DESC_RATEVHT2SS_MCS9)) + txpower = rtlefuse->txpwr_5g_bw80base[path][index] + + rtlefuse->txpwr_5g_bw80diff[path][TX_1S] + + rtlefuse->txpwr_5g_bw80diff[path][TX_2S]; + } + } + if (rtlefuse->eeprom_regulatory != 2) + powerdiff_byrate = _rtl8821ae_phy_get_txpower_by_rate(hw, + (u8)(!in_24g), path, rate); + + if (rate == DESC_RATEVHT1SS_MCS8 || rate == DESC_RATEVHT1SS_MCS9 || + rate == DESC_RATEVHT2SS_MCS8 || rate == DESC_RATEVHT2SS_MCS9) + txpower -= powerdiff_byrate; + else + txpower += powerdiff_byrate; + + if (rate > DESC_RATE11M) + txpower += rtlpriv->dm.remnant_ofdm_swing_idx[path]; + else + txpower += rtlpriv->dm.remnant_cck_idx; + + if (txpower > MAX_POWER_INDEX) + txpower = MAX_POWER_INDEX; + + return txpower; +} + +static void _rtl8821ae_phy_set_txpower_index(struct ieee80211_hw *hw, + u8 power_index, u8 path, u8 rate) +{ + struct rtl_priv* rtlpriv = rtl_priv(hw); + + if (path == RF90_PATH_A) { + switch (rate) { + case DESC_RATE1M: + rtl_set_bbreg(hw, RTXAGC_A_CCK11_CCK1, MASKBYTE0, power_index); + break; + case DESC_RATE2M: + rtl_set_bbreg(hw, RTXAGC_A_CCK11_CCK1, MASKBYTE1, power_index); + break; + case DESC_RATE5_5M: + rtl_set_bbreg(hw, RTXAGC_A_CCK11_CCK1, MASKBYTE2, power_index); + break; + case DESC_RATE11M: + rtl_set_bbreg(hw, RTXAGC_A_CCK11_CCK1, MASKBYTE3, power_index); + break; + + case DESC_RATE6M: + rtl_set_bbreg(hw, RTXAGC_A_OFDM18_OFDM6, MASKBYTE0, power_index); + break; + case DESC_RATE9M: + rtl_set_bbreg(hw, RTXAGC_A_OFDM18_OFDM6, MASKBYTE1, power_index); + break; + case DESC_RATE12M: + rtl_set_bbreg(hw, RTXAGC_A_OFDM18_OFDM6, MASKBYTE2, power_index); + break; + case DESC_RATE18M: + rtl_set_bbreg(hw, RTXAGC_A_OFDM18_OFDM6, MASKBYTE3, power_index); + break; + + case DESC_RATE24M: + rtl_set_bbreg(hw, RTXAGC_A_OFDM54_OFDM24, MASKBYTE0, power_index); + break; + case DESC_RATE36M: + rtl_set_bbreg(hw, RTXAGC_A_OFDM54_OFDM24, MASKBYTE1, power_index); + break; + case DESC_RATE48M: + rtl_set_bbreg(hw, RTXAGC_A_OFDM54_OFDM24, MASKBYTE2, power_index); + break; + case DESC_RATE54M: + rtl_set_bbreg(hw, RTXAGC_A_OFDM54_OFDM24, MASKBYTE3, power_index); + break; + + case DESC_RATEMCS0: + rtl_set_bbreg(hw, RTXAGC_A_MCS03_MCS00, MASKBYTE0, power_index); + break; + case DESC_RATEMCS1: + rtl_set_bbreg(hw, RTXAGC_A_MCS03_MCS00, MASKBYTE1, power_index); + break; + case DESC_RATEMCS2: + rtl_set_bbreg(hw, RTXAGC_A_MCS03_MCS00, MASKBYTE2, power_index); + break; + case DESC_RATEMCS3: + rtl_set_bbreg(hw, RTXAGC_A_MCS03_MCS00, MASKBYTE3, power_index); + break; + + case DESC_RATEMCS4: + rtl_set_bbreg(hw, RTXAGC_A_MCS07_MCS04, MASKBYTE0, power_index); + break; + case DESC_RATEMCS5: + rtl_set_bbreg(hw, RTXAGC_A_MCS07_MCS04, MASKBYTE1, power_index); + break; + case DESC_RATEMCS6: + rtl_set_bbreg(hw, RTXAGC_A_MCS07_MCS04, MASKBYTE2, power_index); + break; + case DESC_RATEMCS7: + rtl_set_bbreg(hw, RTXAGC_A_MCS07_MCS04, MASKBYTE3, power_index); + break; + + case DESC_RATEMCS8: + rtl_set_bbreg(hw, RTXAGC_A_MCS11_MCS08, MASKBYTE0, power_index); + break; + case DESC_RATEMCS9: + rtl_set_bbreg(hw, RTXAGC_A_MCS11_MCS08, MASKBYTE1, power_index); + break; + case DESC_RATEMCS10: + rtl_set_bbreg(hw, RTXAGC_A_MCS11_MCS08, MASKBYTE2, power_index); + break; + case DESC_RATEMCS11: + rtl_set_bbreg(hw, RTXAGC_A_MCS11_MCS08, MASKBYTE3, power_index); + break; + + case DESC_RATEMCS12: + rtl_set_bbreg(hw, RTXAGC_A_MCS15_MCS12, MASKBYTE0, power_index); + break; + case DESC_RATEMCS13: + rtl_set_bbreg(hw, RTXAGC_A_MCS15_MCS12, MASKBYTE1, power_index); + break; + case DESC_RATEMCS14: + rtl_set_bbreg(hw, RTXAGC_A_MCS15_MCS12, MASKBYTE2, power_index); + break; + case DESC_RATEMCS15: + rtl_set_bbreg(hw, RTXAGC_A_MCS15_MCS12, MASKBYTE3, power_index); + break; + + case DESC_RATEVHT1SS_MCS0: + rtl_set_bbreg(hw, RTXAGC_A_NSS1INDEX3_NSS1INDEX0, MASKBYTE0, power_index); + break; + case DESC_RATEVHT1SS_MCS1: + rtl_set_bbreg(hw, RTXAGC_A_NSS1INDEX3_NSS1INDEX0, MASKBYTE1, power_index); + break; + case DESC_RATEVHT1SS_MCS2: + rtl_set_bbreg(hw, RTXAGC_A_NSS1INDEX3_NSS1INDEX0, MASKBYTE2, power_index); + break; + case DESC_RATEVHT1SS_MCS3: + rtl_set_bbreg(hw, RTXAGC_A_NSS1INDEX3_NSS1INDEX0, MASKBYTE3, power_index); + break; + + case DESC_RATEVHT1SS_MCS4: + rtl_set_bbreg(hw, RTXAGC_A_NSS1INDEX7_NSS1INDEX4, MASKBYTE0, power_index); + break; + case DESC_RATEVHT1SS_MCS5: + rtl_set_bbreg(hw, RTXAGC_A_NSS1INDEX7_NSS1INDEX4, MASKBYTE1, power_index); + break; + case DESC_RATEVHT1SS_MCS6: + rtl_set_bbreg(hw, RTXAGC_A_NSS1INDEX7_NSS1INDEX4, MASKBYTE2, power_index); + break; + case DESC_RATEVHT1SS_MCS7: + rtl_set_bbreg(hw, RTXAGC_A_NSS1INDEX7_NSS1INDEX4, MASKBYTE3, power_index); + break; + + case DESC_RATEVHT1SS_MCS8: + rtl_set_bbreg(hw, RTXAGC_A_NSS2INDEX1_NSS1INDEX8, MASKBYTE0, power_index); + break; + case DESC_RATEVHT1SS_MCS9: + rtl_set_bbreg(hw, RTXAGC_A_NSS2INDEX1_NSS1INDEX8, MASKBYTE1, power_index); + break; + case DESC_RATEVHT2SS_MCS0: + rtl_set_bbreg(hw, RTXAGC_A_NSS2INDEX1_NSS1INDEX8, MASKBYTE2, power_index); + break; + case DESC_RATEVHT2SS_MCS1: + rtl_set_bbreg(hw, RTXAGC_A_NSS2INDEX1_NSS1INDEX8, MASKBYTE3, power_index); + break; + + case DESC_RATEVHT2SS_MCS2: + rtl_set_bbreg(hw, RTXAGC_A_NSS2INDEX5_NSS2INDEX2, MASKBYTE0, power_index); + break; + case DESC_RATEVHT2SS_MCS3: + rtl_set_bbreg(hw, RTXAGC_A_NSS2INDEX5_NSS2INDEX2, MASKBYTE1, power_index); + break; + case DESC_RATEVHT2SS_MCS4: + rtl_set_bbreg(hw, RTXAGC_A_NSS2INDEX5_NSS2INDEX2, MASKBYTE2, power_index); + break; + case DESC_RATEVHT2SS_MCS5: + rtl_set_bbreg(hw, RTXAGC_A_NSS2INDEX5_NSS2INDEX2, MASKBYTE3, power_index); + break; + + case DESC_RATEVHT2SS_MCS6: + rtl_set_bbreg(hw, RTXAGC_A_NSS2INDEX9_NSS2INDEX6, MASKBYTE0, power_index); + break; + case DESC_RATEVHT2SS_MCS7: + rtl_set_bbreg(hw, RTXAGC_A_NSS2INDEX9_NSS2INDEX6, MASKBYTE1, power_index); + break; + case DESC_RATEVHT2SS_MCS8: + rtl_set_bbreg(hw, RTXAGC_A_NSS2INDEX9_NSS2INDEX6, MASKBYTE2, power_index); + break; + case DESC_RATEVHT2SS_MCS9: + rtl_set_bbreg(hw, RTXAGC_A_NSS2INDEX9_NSS2INDEX6, MASKBYTE3, power_index); + break; + + default: + RT_TRACE(COMP_POWER, DBG_LOUD, ("Invalid Rate!!\n")); + break; + } + } else if (path == RF90_PATH_B) { + switch (rate) { + case DESC_RATE1M: + rtl_set_bbreg(hw, RTXAGC_B_CCK11_CCK1, MASKBYTE0, power_index); + break; + case DESC_RATE2M: + rtl_set_bbreg(hw, RTXAGC_B_CCK11_CCK1, MASKBYTE1, power_index); + break; + case DESC_RATE5_5M: + rtl_set_bbreg(hw, RTXAGC_B_CCK11_CCK1, MASKBYTE2, power_index); + break; + case DESC_RATE11M: + rtl_set_bbreg(hw, RTXAGC_B_CCK11_CCK1, MASKBYTE3, power_index); + break; + + case DESC_RATE6M: + rtl_set_bbreg(hw, RTXAGC_B_OFDM18_OFDM6, MASKBYTE0, power_index); + break; + case DESC_RATE9M: + rtl_set_bbreg(hw, RTXAGC_B_OFDM18_OFDM6, MASKBYTE1, power_index); + break; + case DESC_RATE12M: + rtl_set_bbreg(hw, RTXAGC_B_OFDM18_OFDM6, MASKBYTE2, power_index); + break; + case DESC_RATE18M: + rtl_set_bbreg(hw, RTXAGC_B_OFDM18_OFDM6, MASKBYTE3, power_index); + break; + + case DESC_RATE24M: + rtl_set_bbreg(hw, RTXAGC_B_OFDM54_OFDM24, MASKBYTE0, power_index); + break; + case DESC_RATE36M: + rtl_set_bbreg(hw, RTXAGC_B_OFDM54_OFDM24, MASKBYTE1, power_index); + break; + case DESC_RATE48M: + rtl_set_bbreg(hw, RTXAGC_B_OFDM54_OFDM24, MASKBYTE2, power_index); + break; + case DESC_RATE54M: + rtl_set_bbreg(hw, RTXAGC_B_OFDM54_OFDM24, MASKBYTE3, power_index); + break; + + case DESC_RATEMCS0: + rtl_set_bbreg(hw, RTXAGC_B_MCS03_MCS00, MASKBYTE0, power_index); + break; + case DESC_RATEMCS1: + rtl_set_bbreg(hw, RTXAGC_B_MCS03_MCS00, MASKBYTE1, power_index); + break; + case DESC_RATEMCS2: + rtl_set_bbreg(hw, RTXAGC_B_MCS03_MCS00, MASKBYTE2, power_index); + break; + case DESC_RATEMCS3: + rtl_set_bbreg(hw, RTXAGC_B_MCS03_MCS00, MASKBYTE3, power_index); + break; + + case DESC_RATEMCS4: + rtl_set_bbreg(hw, RTXAGC_B_MCS07_MCS04, MASKBYTE0, power_index); + break; + case DESC_RATEMCS5: + rtl_set_bbreg(hw, RTXAGC_B_MCS07_MCS04, MASKBYTE1, power_index); + break; + case DESC_RATEMCS6: + rtl_set_bbreg(hw, RTXAGC_B_MCS07_MCS04, MASKBYTE2, power_index); + break; + case DESC_RATEMCS7: + rtl_set_bbreg(hw, RTXAGC_B_MCS07_MCS04, MASKBYTE3, power_index); + break; + + case DESC_RATEMCS8: + rtl_set_bbreg(hw, RTXAGC_B_MCS11_MCS08, MASKBYTE0, power_index); + break; + case DESC_RATEMCS9: + rtl_set_bbreg(hw, RTXAGC_B_MCS11_MCS08, MASKBYTE1, power_index); + break; + case DESC_RATEMCS10: + rtl_set_bbreg(hw, RTXAGC_B_MCS11_MCS08, MASKBYTE2, power_index); + break; + case DESC_RATEMCS11: + rtl_set_bbreg(hw, RTXAGC_B_MCS11_MCS08, MASKBYTE3, power_index); + break; + + case DESC_RATEMCS12: + rtl_set_bbreg(hw, RTXAGC_B_MCS15_MCS12, MASKBYTE0, power_index); + break; + case DESC_RATEMCS13: + rtl_set_bbreg(hw, RTXAGC_B_MCS15_MCS12, MASKBYTE1, power_index); + break; + case DESC_RATEMCS14: + rtl_set_bbreg(hw, RTXAGC_B_MCS15_MCS12, MASKBYTE2, power_index); + break; + case DESC_RATEMCS15: + rtl_set_bbreg(hw, RTXAGC_B_MCS15_MCS12, MASKBYTE3, power_index); + break; + + case DESC_RATEVHT1SS_MCS0: + rtl_set_bbreg(hw, RTXAGC_B_NSS1INDEX3_NSS1INDEX0, MASKBYTE0, power_index); + break; + case DESC_RATEVHT1SS_MCS1: + rtl_set_bbreg(hw, RTXAGC_B_NSS1INDEX3_NSS1INDEX0, MASKBYTE1, power_index); + break; + case DESC_RATEVHT1SS_MCS2: + rtl_set_bbreg(hw, RTXAGC_B_NSS1INDEX3_NSS1INDEX0, MASKBYTE2, power_index); + break; + case DESC_RATEVHT1SS_MCS3: + rtl_set_bbreg(hw, RTXAGC_B_NSS1INDEX3_NSS1INDEX0, MASKBYTE3, power_index); + break; + + case DESC_RATEVHT1SS_MCS4: + rtl_set_bbreg(hw, RTXAGC_B_NSS1INDEX7_NSS1INDEX4, MASKBYTE0, power_index); + break; + case DESC_RATEVHT1SS_MCS5: + rtl_set_bbreg(hw, RTXAGC_B_NSS1INDEX7_NSS1INDEX4, MASKBYTE1, power_index); + break; + case DESC_RATEVHT1SS_MCS6: + rtl_set_bbreg(hw, RTXAGC_B_NSS1INDEX7_NSS1INDEX4, MASKBYTE2, power_index); + break; + case DESC_RATEVHT1SS_MCS7: + rtl_set_bbreg(hw, RTXAGC_B_NSS1INDEX7_NSS1INDEX4, MASKBYTE3, power_index); + break; + + case DESC_RATEVHT1SS_MCS8: + rtl_set_bbreg(hw, RTXAGC_B_NSS2INDEX1_NSS1INDEX8, MASKBYTE0, power_index); + break; + case DESC_RATEVHT1SS_MCS9: + rtl_set_bbreg(hw, RTXAGC_B_NSS2INDEX1_NSS1INDEX8, MASKBYTE1, power_index); + break; + case DESC_RATEVHT2SS_MCS0: + rtl_set_bbreg(hw, RTXAGC_B_NSS2INDEX1_NSS1INDEX8, MASKBYTE2, power_index); + break; + case DESC_RATEVHT2SS_MCS1: + rtl_set_bbreg(hw, RTXAGC_B_NSS2INDEX1_NSS1INDEX8, MASKBYTE3, power_index); + break; + + case DESC_RATEVHT2SS_MCS2: + rtl_set_bbreg(hw, RTXAGC_B_NSS2INDEX5_NSS2INDEX2, MASKBYTE0, power_index); + break; + case DESC_RATEVHT2SS_MCS3: + rtl_set_bbreg(hw, RTXAGC_B_NSS2INDEX5_NSS2INDEX2, MASKBYTE1, power_index); + break; + case DESC_RATEVHT2SS_MCS4: + rtl_set_bbreg(hw, RTXAGC_B_NSS2INDEX5_NSS2INDEX2, MASKBYTE2, power_index); + break; + case DESC_RATEVHT2SS_MCS5: + rtl_set_bbreg(hw, RTXAGC_B_NSS2INDEX5_NSS2INDEX2, MASKBYTE3, power_index); + break; + + case DESC_RATEVHT2SS_MCS6: + rtl_set_bbreg(hw, RTXAGC_B_NSS2INDEX9_NSS2INDEX6, MASKBYTE0, power_index); + break; + case DESC_RATEVHT2SS_MCS7: + rtl_set_bbreg(hw, RTXAGC_B_NSS2INDEX9_NSS2INDEX6, MASKBYTE1, power_index); + break; + case DESC_RATEVHT2SS_MCS8: + rtl_set_bbreg(hw, RTXAGC_B_NSS2INDEX9_NSS2INDEX6, MASKBYTE2, power_index); + break; + case DESC_RATEVHT2SS_MCS9: + rtl_set_bbreg(hw, RTXAGC_B_NSS2INDEX9_NSS2INDEX6, MASKBYTE3, power_index); + break; + + default: + RT_TRACE(COMP_POWER, DBG_LOUD, ("Invalid Rate!!\n")); + break; + } + } else { + RT_TRACE(COMP_POWER, DBG_LOUD, ("Invalid RFPath!!\n")); + } +} + +void _rtl8821ae_phy_set_txpower_level_by_path(struct ieee80211_hw *hw, + u8 *array, u8 path, u8 channel, + u8 size) +{ + struct rtl_phy *rtlphy = &(rtl_priv(hw)->phy); + u8 i; + u8 power_index; + for (i = 0; i < size; i ++) { + power_index = _rtl8821ae_get_txpower_index(hw, path, array[i], + rtlphy->current_chan_bw, channel); + _rtl8821ae_phy_set_txpower_index(hw, power_index, path, array[i]); + } +} + +static void _rtl8821ae_phy_txpower_training_by_path(struct ieee80211_hw *hw, + u8 bw, u8 channel, u8 path) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + u8 i; + u32 power_level, data, offset; + + if(path >= rtlphy->num_total_rfpath) + return; + + data = 0; + if (path == RF90_PATH_A) { + power_level = + _rtl8821ae_get_txpower_index(hw, RF90_PATH_A, + DESC_RATEMCS7, bw, channel); + offset = RA_TXPWRTRAING; + } else { + power_level = + _rtl8821ae_get_txpower_index(hw, RF90_PATH_A, + DESC_RATEMCS7, bw, channel); + offset = RB_TXPWRTRAING; + } + + for (i = 0; i < 3; i++) { + if (i == 0) + power_level = power_level - 10; + else if (i == 1) + power_level = power_level - 8; + else + power_level = power_level - 6; + + data |= (((power_level > 2) ? (power_level) : 2) << (i * 8)); + } + rtl_set_bbreg(hw, offset, 0xffffff, data); +} + +void rtl8821ae_phy_set_txpower_level_by_path(struct ieee80211_hw *hw, u8 channel, u8 path) +{ + //struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_phy *rtlphy = &(rtl_priv(hw)->phy); + u8 cck_rates[] = {DESC_RATE1M, DESC_RATE2M, DESC_RATE5_5M, DESC_RATE11M}; + u8 ofdm_rates[] = {DESC_RATE6M, DESC_RATE9M, DESC_RATE12M, DESC_RATE18M, + DESC_RATE24M, DESC_RATE36M, DESC_RATE48M, DESC_RATE54M}; + u8 ht_rates_1t[] = {DESC_RATEMCS0, DESC_RATEMCS1, DESC_RATEMCS2, DESC_RATEMCS3, + DESC_RATEMCS4, DESC_RATEMCS5, DESC_RATEMCS6, DESC_RATEMCS7}; + u8 ht_rates_2t[] = {DESC_RATEMCS8, DESC_RATEMCS9, DESC_RATEMCS10, DESC_RATEMCS11, + DESC_RATEMCS12, DESC_RATEMCS13, DESC_RATEMCS14, DESC_RATEMCS15}; + u8 vht_rates_1t[] = {DESC_RATEVHT1SS_MCS0, DESC_RATEVHT1SS_MCS1, DESC_RATEVHT1SS_MCS2, + DESC_RATEVHT1SS_MCS3, DESC_RATEVHT1SS_MCS4, + DESC_RATEVHT1SS_MCS5, DESC_RATEVHT1SS_MCS6, DESC_RATEVHT1SS_MCS7, + DESC_RATEVHT1SS_MCS8, DESC_RATEVHT1SS_MCS9}; + u8 vht_rates_2t[] = {DESC_RATEVHT2SS_MCS0, DESC_RATEVHT2SS_MCS1, DESC_RATEVHT2SS_MCS2, + DESC_RATEVHT2SS_MCS3, DESC_RATEVHT2SS_MCS4, + DESC_RATEVHT2SS_MCS5, DESC_RATEVHT2SS_MCS6, DESC_RATEVHT2SS_MCS7, + DESC_RATEVHT2SS_MCS8, DESC_RATEVHT2SS_MCS9}; + //u8 i,size; + //u8 power_index; + + if (rtlhal->current_bandtype == BAND_ON_2_4G) + _rtl8821ae_phy_set_txpower_level_by_path(hw,cck_rates,path,channel, + sizeof(cck_rates) / sizeof(u8)); + + _rtl8821ae_phy_set_txpower_level_by_path(hw,ofdm_rates,path,channel, + sizeof(ofdm_rates) / sizeof(u8)); + _rtl8821ae_phy_set_txpower_level_by_path(hw,ht_rates_1t,path,channel, + sizeof(ht_rates_1t) / sizeof(u8)); + _rtl8821ae_phy_set_txpower_level_by_path(hw,vht_rates_1t,path,channel, + sizeof(vht_rates_1t) / sizeof(u8)); + + if (rtlphy->num_total_rfpath >= 2) { + _rtl8821ae_phy_set_txpower_level_by_path(hw,ht_rates_2t,path,channel, + sizeof(ht_rates_2t) / sizeof(u8)); + _rtl8821ae_phy_set_txpower_level_by_path(hw,vht_rates_2t,path,channel, + sizeof(vht_rates_2t) / sizeof(u8)); + } + + _rtl8821ae_phy_txpower_training_by_path(hw, rtlphy->current_chan_bw, channel, path); +} +/*just in case, write txpower in DW, to reduce time*/ +#if 0 +void _rtl8821ae_phy_get_txpower_index_by_rate_array(struct ieee80211_hw *hw, u8 channel, + u8 *rate, u8 path, u8 bw, u8 *power_index, u8 size) +{ + u8 i; + for (i = 0; i < size; i++) + power_index[i] = _rtl8821ae_get_txpower_index(hw, path, rate[i], bw, channel); +} + +void rtl8821ae_phy_set_txpower_level_by_path2(struct ieee80211_hw *hw, u8 channel, u8 path) +{ + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_phy *rtlphy = &(rtl_priv(hw)->phy); + u8 cck_rates[] = {DESC_RATE1M, DESC_RATE2M, DESC_RATE5_5M, DESC_RATE11M}; + u8 ofdm_rates[] = {DESC_RATE6M, DESC_RATE9M, DESC_RATE12M, DESC_RATE18M, + DESC_RATE24M, DESC_RATE36M, DESC_RATE48M, DESC_RATE54M}; + u8 ht_rates_1t[] = {DESC_RATEMCS0, DESC_RATEMCS1, DESC_RATEMCS2, DESC_RATEMCS3, + DESC_RATEMCS4, DESC_RATEMCS5, DESC_RATEMCS6, DESC_RATEMCS7}; + u8 ht_rates_2t[] = {DESC_RATEMCS8, DESC_RATEMCS9, DESC_RATEMCS10, DESC_RATEMCS11, + DESC_RATEMCS12, DESC_RATEMCS13, DESC_RATEMCS14, DESC_RATEMCS15}; + u8 vht_rates_1t[] = {DESC_RATEVHT1SS_MCS0, DESC_RATEVHT1SS_MCS1, DESC_RATEVHT1SS_MCS2, DESC_RATEVHT1SS_MCS3, DESC_RATEVHT1SS_MCS4, + DESC_RATEVHT1SS_MCS5, DESC_RATEVHT1SS_MCS6, DESC_RATEVHT1SS_MCS7, DESC_RATEVHT1SS_MCS8, DESC_RATEVHT1SS_MCS9}; + u8 vht_rates_2t[] = {DESC_RATEVHT2SS_MCS0, DESC_RATEVHT2SS_MCS1, DESC_RATEVHT2SS_MCS2, DESC_RATEVHT2SS_MCS3, DESC_RATEVHT2SS_MCS4, + DESC_RATEVHT2SS_MCS5, DESC_RATEVHT2SS_MCS6, DESC_RATEVHT2SS_MCS7, DESC_RATEVHT2SS_MCS8, DESC_RATEVHT2SS_MCS9}; + u8 i, j; + u8 pwridx[48] = {0}; + u8 cs = sizeof(cck_rates) / sizeof(u8); + u8 os = sizeof(ofdm_rates) / sizeof(u8); + u8 h1s = sizeof(ht_rates_1t) / sizeof(u8); + u8 h2s = sizeof(ht_rates_2t) / sizeof(u8); + u8 v1s = sizeof(vht_rates_1t) / sizeof(u8); + u8 v2s = sizeof(vht_rates_2t) / sizeof(u8); + + u8 len, start; + u32 reg_addr, power_index; + u8 bw = rtlphy->current_chan_bw; + + _rtl8821ae_phy_get_txpower_index_by_rate_array(hw, channel, + ofdm_rates, path, bw, &pwridx[cs], os); + + _rtl8821ae_phy_get_txpower_index_by_rate_array(hw, channel, + ht_rates_1t, path, bw, &pwridx[cs+os], h1s); + + _rtl8821ae_phy_get_txpower_index_by_rate_array(hw, channel, + vht_rates_1t, path, bw, &pwridx[cs+os+h1s+h2s], v1s); + + + if (rtlhal->current_bandtype == BAND_ON_2_4G) { + _rtl8821ae_phy_get_txpower_index_by_rate_array(hw, channel, + cck_rates, path, bw, pwridx, cs); + + start = 0; + } else { + start = cs; + } + + reg_addr = (path == 0) ? RTXAGC_A_CCK11_CCK1 : RTXAGC_B_CCK11_CCK1; + reg_addr += start; + + len = cs + os + h1s + h2s + v1s; + if (rtlphy->num_total_rfpath >= 2) { + _rtl8821ae_phy_get_txpower_index_by_rate_array(hw, channel, + ht_rates_2t, path, bw, &pwridx[cs+os+h1s], h2s); + + _rtl8821ae_phy_get_txpower_index_by_rate_array(hw, channel, + vht_rates_2t, path, bw, &pwridx[cs+os+h1s+h2s+v1s], v2s); + + len += v2s; + } + for (i = start; i < len; i += 4) { + power_index = 0; + for (j = 0; j < 4; j++) + power_index |= (pwridx[i+j] << (j*8)); + rtl_set_bbreg(hw, reg_addr + i, MASKDWORD, power_index); + } + + _rtl8821ae_phy_txpower_training_by_path(hw, rtlphy->current_chan_bw, channel, path); +} +#endif + +void rtl8821ae_phy_set_txpower_level(struct ieee80211_hw *hw, u8 channel) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 path = 0; + + for (path = RF90_PATH_A; path < rtlphy->num_total_rfpath; ++path ) + rtl8821ae_phy_set_txpower_level_by_path(hw, channel, path); +} + +static long _rtl8821ae_phy_txpwr_idx_to_dbm(struct ieee80211_hw *hw, + enum wireless_mode wirelessmode, + u8 txpwridx) +{ + long offset; + long pwrout_dbm; + + switch (wirelessmode) { + case WIRELESS_MODE_B: + offset = -7; + break; + case WIRELESS_MODE_G: + case WIRELESS_MODE_N_24G: + offset = -8; + break; + default: + offset = -8; + break; + } + pwrout_dbm = txpwridx / 2 + offset; + return pwrout_dbm; +} + +void rtl8821ae_phy_scan_operation_backup(struct ieee80211_hw *hw, u8 operation) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + enum io_type iotype = IO_CMD_PAUSE_BAND0_DM_BY_SCAN; + + if (!is_hal_stop(rtlhal)) { + switch (operation) { + case SCAN_OPT_BACKUP_BAND0: + iotype = IO_CMD_PAUSE_BAND0_DM_BY_SCAN; + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_IO_CMD, + (u8 *) & iotype); + + break; + case SCAN_OPT_BACKUP_BAND1: + iotype = IO_CMD_PAUSE_BAND1_DM_BY_SCAN; + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_IO_CMD, + (u8 *) & iotype); + + break; + case SCAN_OPT_RESTORE: + iotype = IO_CMD_RESUME_DM_BY_SCAN; + rtlpriv->cfg->ops->set_hw_reg(hw, + HW_VAR_IO_CMD, + (u8 *) & iotype); + break; + default: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("Unknown Scan Backup operation.\n")); + break; + } + } +} + +static void _rtl8821ae_phy_set_reg_bw(struct rtl_priv * rtlpriv, u8 bw) +{ + u16 reg_rf_mode_bw, tmp = 0; + reg_rf_mode_bw = rtl_read_word(rtlpriv, REG_TRXPTCL_CTL); + switch (bw) { + case HT_CHANNEL_WIDTH_20: + rtl_write_word(rtlpriv, REG_TRXPTCL_CTL, reg_rf_mode_bw & 0xFE7F); + break; + case HT_CHANNEL_WIDTH_20_40: + tmp = reg_rf_mode_bw | BIT(7); + rtl_write_word(rtlpriv, REG_TRXPTCL_CTL, tmp & 0xFEFF); + break; + case HT_CHANNEL_WIDTH_80: + tmp = reg_rf_mode_bw | BIT(8); + rtl_write_word(rtlpriv, REG_TRXPTCL_CTL, tmp & 0xFF7F); + break; + default: + RT_TRACE(COMP_ERR, DBG_WARNING,("unknown Bandwidth: 0x%x\n",bw)); + break; + } +} + +static u8 _rtl8821ae_phy_get_secondary_chnl(struct rtl_priv * rtlpriv) +{ + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_mac *mac = rtl_mac(rtlpriv); + u8 sc_set_40 = 0, sc_set_20 =0; + + if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_80) { + if(mac->cur_80_prime_sc == PRIME_CHNL_OFFSET_LOWER) + sc_set_40 = VHT_DATA_SC_40_LOWER_OF_80MHZ; + else if(mac->cur_80_prime_sc == PRIME_CHNL_OFFSET_UPPER) + sc_set_40 = VHT_DATA_SC_40_UPPER_OF_80MHZ; + else + RT_TRACE(COMP_ERR, DBG_EMERG, + ("SCMapping: Not Correct Primary40MHz Setting \n")); + + if((mac->cur_40_prime_sc == PRIME_CHNL_OFFSET_LOWER) && + (mac->cur_80_prime_sc == HAL_PRIME_CHNL_OFFSET_LOWER)) + sc_set_20 = VHT_DATA_SC_20_LOWEST_OF_80MHZ; + else if((mac->cur_40_prime_sc == PRIME_CHNL_OFFSET_UPPER) && + (mac->cur_80_prime_sc == HAL_PRIME_CHNL_OFFSET_LOWER)) + sc_set_20 = VHT_DATA_SC_20_LOWER_OF_80MHZ; + else if((mac->cur_40_prime_sc == PRIME_CHNL_OFFSET_LOWER) && + (mac->cur_80_prime_sc == HAL_PRIME_CHNL_OFFSET_UPPER)) + sc_set_20 = VHT_DATA_SC_20_UPPER_OF_80MHZ; + else if((mac->cur_40_prime_sc == PRIME_CHNL_OFFSET_UPPER) && + (mac->cur_80_prime_sc == HAL_PRIME_CHNL_OFFSET_UPPER)) + sc_set_20 = VHT_DATA_SC_20_UPPERST_OF_80MHZ; + else + RT_TRACE(COMP_ERR, DBG_EMERG, + ("SCMapping: Not Correct Primary40MHz Setting \n")); + } else if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) { + if (mac->cur_40_prime_sc == PRIME_CHNL_OFFSET_UPPER) + sc_set_20 = VHT_DATA_SC_20_UPPER_OF_80MHZ; + else if (mac->cur_40_prime_sc == PRIME_CHNL_OFFSET_LOWER) + sc_set_20 = VHT_DATA_SC_20_LOWER_OF_80MHZ; + else + RT_TRACE(COMP_ERR, DBG_EMERG, + ("SCMapping: Not Correct Primary40MHz Setting \n")); + } + return ((sc_set_40 << 4) | sc_set_20); +} + +void rtl8821ae_phy_set_bw_mode_callback(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 sub_chnl = 0; + u8 l1pk_val = 0; + + RT_TRACE(COMP_SCAN, DBG_TRACE, + ("Switch to %s bandwidth\n", + (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20 ? + "20MHz" : + (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40 ? + "40MHz" : "80MHz")))) + + + + _rtl8821ae_phy_set_reg_bw(rtlpriv, rtlphy->current_chan_bw); + sub_chnl = _rtl8821ae_phy_get_secondary_chnl(rtlpriv); + rtl_write_byte(rtlpriv, 0x0483, sub_chnl); + + switch (rtlphy->current_chan_bw) { + case HT_CHANNEL_WIDTH_20: + rtl_set_bbreg(hw, RRFMOD, 0x003003C3, 0x00300200); + rtl_set_bbreg(hw, RADC_BUF_CLK, BIT(30), 0); + + if(rtlphy->rf_type == RF_2T2R) + rtl_set_bbreg(hw, RL1PEAKTH, 0x03C00000, 7); + else + rtl_set_bbreg(hw, RL1PEAKTH, 0x03C00000, 8); + break; + case HT_CHANNEL_WIDTH_20_40: + rtl_set_bbreg(hw, RRFMOD, 0x003003C3, 0x00300201); + rtl_set_bbreg(hw, RADC_BUF_CLK, BIT(30), 0); + rtl_set_bbreg(hw, RRFMOD, 0x3C, sub_chnl); + rtl_set_bbreg(hw, RCCAONSEC, 0xf0000000, sub_chnl); + + if(rtlphy->reg_837 & BIT(2)) + l1pk_val = 6; + else + { + if(rtlphy->rf_type == RF_2T2R) + l1pk_val = 7; + else + l1pk_val = 8; + } + rtl_set_bbreg(hw, RL1PEAKTH, 0x03C00000, l1pk_val); // 0x848[25:22] = 0x6 + + if(sub_chnl == VHT_DATA_SC_20_UPPER_OF_80MHZ) + rtl_set_bbreg(hw, RCCK_SYSTEM, BCCK_SYSTEM, 1); + else + rtl_set_bbreg(hw, RCCK_SYSTEM, BCCK_SYSTEM, 0); + break; + + case HT_CHANNEL_WIDTH_80: + rtl_set_bbreg(hw, RRFMOD, 0x003003C3, 0x00300202); // 0x8ac[21,20,9:6,1,0]=8'b11100010 + rtl_set_bbreg(hw, RADC_BUF_CLK, BIT(30), 1); // 0x8c4[30] = 1 + rtl_set_bbreg(hw, RRFMOD, 0x3C, sub_chnl); + rtl_set_bbreg(hw, RCCAONSEC, 0xf0000000, sub_chnl); + + if(rtlphy->reg_837 & BIT(2)) + l1pk_val = 5; + else + { + if(rtlphy->rf_type == RF_2T2R) + l1pk_val = 6; + else + l1pk_val = 7; + } + rtl_set_bbreg(hw, RL1PEAKTH, 0x03C00000, l1pk_val); + + break; + default: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("unknown bandwidth: %#X\n", rtlphy->current_chan_bw)); + break; + } + + rtl8812ae_fixspur(hw, rtlphy->current_chan_bw, rtlphy->current_channel); + + rtl8821ae_phy_rf6052_set_bandwidth(hw, rtlphy->current_chan_bw); + rtlphy->set_bwmode_inprogress = false; + + RT_TRACE(COMP_SCAN, DBG_LOUD, (" \n")); +} + +void rtl8821ae_phy_set_bw_mode(struct ieee80211_hw *hw, + enum nl80211_channel_type ch_type) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u8 tmp_bw = rtlphy->current_chan_bw; + + if (rtlphy->set_bwmode_inprogress) + return; + rtlphy->set_bwmode_inprogress = true; + if ((!is_hal_stop(rtlhal)) && !(RT_CANNOT_IO(hw))) { + rtl8821ae_phy_set_bw_mode_callback(hw); + } else { + RT_TRACE(COMP_ERR, DBG_WARNING, + ("FALSE driver sleep or unload\n")); + rtlphy->set_bwmode_inprogress = false; + rtlphy->current_chan_bw = tmp_bw; + } +} + +void rtl8821ae_phy_sw_chnl_callback(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 channel = rtlphy->current_channel; + u8 path; + u32 data; + + RT_TRACE(COMP_SCAN, DBG_TRACE, + ("switch to channel%d\n", rtlphy->current_channel)); + if (is_hal_stop(rtlhal)) + return; + + if (36 <= channel && channel <= 48) + data = 0x494; + else if (50 <= channel && channel <= 64) + data = 0x453; + else if (100 <= channel && channel <= 116) + data = 0x452; + else if (118 <= channel) + data = 0x412; + else + data = 0x96a; + rtl_set_bbreg(hw, RFC_AREA, 0x1ffe0000, data); + + + for(path = RF90_PATH_A; path < rtlphy->num_total_rfpath; path++) + { + if (36 <= channel && channel <= 64) + data = 0x101; + else if (100 <= channel && channel <= 140) + data = 0x301; + else if (140 < channel) + data = 0x501; + else + data = 0x000; + rtl8821ae_phy_set_rf_reg(hw, path, RF_CHNLBW, + BIT(18)|BIT(17)|BIT(16)|BIT(9)|BIT(8), data); + + rtl8821ae_phy_set_rf_reg(hw, path, RF_CHNLBW, + BMASKBYTE0, channel); + + if (channel > 14) { + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8821AE) { + if (36 <= channel && channel <= 64) + data = 0x114E9; + else if (100 <= channel && channel <= 140) + data = 0x110E9; + else + data = 0x110E9; + rtl8821ae_phy_set_rf_reg(hw, path, RF_APK, + BRFREGOFFSETMASK, data); + } + } + } + RT_TRACE(COMP_SCAN, DBG_TRACE, ("\n")); +} + +u8 rtl8821ae_phy_sw_chnl(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + u32 timeout = 1000, timecount = 0; + u8 channel = rtlphy->current_channel; + + if (rtlphy->sw_chnl_inprogress) + return 0; + if (rtlphy->set_bwmode_inprogress) + return 0; + + if ((is_hal_stop(rtlhal)) || (RT_CANNOT_IO(hw))) { + RT_TRACE(COMP_CHAN, DBG_LOUD, + ("sw_chnl_inprogress false driver sleep or unload\n")); + return 0; + } + while (rtlphy->lck_inprogress && timecount < timeout) { + mdelay(50); + timecount += 50; + } + + if (rtlphy->current_channel > 14 && rtlhal->current_bandtype != BAND_ON_5G) + rtl8821ae_phy_switch_wirelessband(hw, BAND_ON_5G); + else if (rtlphy->current_channel <= 14 && rtlhal->current_bandtype != BAND_ON_2_4G) + rtl8821ae_phy_switch_wirelessband(hw, BAND_ON_2_4G); + + rtlphy->sw_chnl_inprogress = true; + if (channel == 0) + channel = 1; + + RT_TRACE(COMP_SCAN, DBG_TRACE, + ("switch to channel%d, band type is %d\n", rtlphy->current_channel, rtlhal->current_bandtype)); + + rtl8821ae_phy_sw_chnl_callback(hw); + + rtl8821ae_dm_clear_txpower_tracking_state(hw); + rtl8821ae_phy_set_txpower_level(hw, rtlphy->current_channel); + + RT_TRACE(COMP_SCAN, DBG_TRACE, ("\n")); + rtlphy->sw_chnl_inprogress = false; + return 1; +} + +#if 0 +static u8 _rtl8821ae_phy_path_b_iqk(struct ieee80211_hw *hw) +{ + u32 reg_eac, reg_eb4, reg_ebc, reg_ec4, reg_ecc; + u8 result = 0x00; + + rtl_set_bbreg(hw, 0xe60, MASKDWORD, 0x00000002); + rtl_set_bbreg(hw, 0xe60, MASKDWORD, 0x00000000); + mdelay(IQK_DELAY_TIME); + reg_eac = rtl_get_bbreg(hw, 0xeac, MASKDWORD); + reg_eb4 = rtl_get_bbreg(hw, 0xeb4, MASKDWORD); + reg_ebc = rtl_get_bbreg(hw, 0xebc, MASKDWORD); + reg_ec4 = rtl_get_bbreg(hw, 0xec4, MASKDWORD); + reg_ecc = rtl_get_bbreg(hw, 0xecc, MASKDWORD); + + if (!(reg_eac & BIT(31)) && + (((reg_eb4 & 0x03FF0000) >> 16) != 0x142) && + (((reg_ebc & 0x03FF0000) >> 16) != 0x42)) + result |= 0x01; + else + return result; + if (!(reg_eac & BIT(30)) && + (((reg_ec4 & 0x03FF0000) >> 16) != 0x132) && + (((reg_ecc & 0x03FF0000) >> 16) != 0x36)) + result |= 0x02; + return result; +} + +static u8 _rtl8821ae_phy_path_a_rx_iqk(struct ieee80211_hw *hw, bool config_pathb) +{ + u32 reg_eac, reg_e94, reg_e9c, reg_ea4,u32temp; + u8 result = 0x00; + + /*Get TXIMR Setting*/ + /*Modify RX IQK mode table*/ + rtl_set_bbreg(hw, RFPGA0_IQK, MASKDWORD, 0x00000000); + rtl_set_rfreg(hw, RF90_PATH_A, RF_WE_LUT, RFREG_OFFSET_MASK, 0x800a0); + rtl_set_rfreg(hw, RF90_PATH_A, RF_RCK_OS, RFREG_OFFSET_MASK, 0x30000); + rtl_set_rfreg(hw, RF90_PATH_A, RF_TXPA_G1, RFREG_OFFSET_MASK, 0x0000f); + rtl_set_rfreg(hw, RF90_PATH_A, RF_TXPA_G2, RFREG_OFFSET_MASK, 0xf117b); + rtl_set_bbreg(hw, RFPGA0_IQK, MASKDWORD, 0x80800000); + + /*IQK Setting*/ + rtl_set_bbreg(hw, RTx_IQK, MASKDWORD, 0x01007c00); + rtl_set_bbreg(hw, RRx_IQK, MASKDWORD, 0x81004800); + + /*path a IQK setting*/ + rtl_set_bbreg(hw, RTx_IQK_Tone_A, MASKDWORD, 0x10008c1c); + rtl_set_bbreg(hw, RRx_IQK_Tone_A, MASKDWORD, 0x30008c1c); + rtl_set_bbreg(hw, RTx_IQK_PI_A, MASKDWORD, 0x82160804); + rtl_set_bbreg(hw, RRx_IQK_PI_A, MASKDWORD, 0x28160000); + + /*LO calibration Setting*/ + rtl_set_bbreg(hw, RIQK_AGC_Rsp, MASKDWORD, 0x0046a911); + /*one shot,path A LOK & iqk*/ + rtl_set_bbreg(hw, RIQK_AGC_Pts, MASKDWORD, 0xf9000000); + rtl_set_bbreg(hw, RIQK_AGC_Pts, MASKDWORD, 0xf8000000); + + mdelay(IQK_DELAY_TIME); + + reg_eac = rtl_get_bbreg(hw, RRx_Power_After_IQK_A_2, MASKDWORD); + reg_e94 = rtl_get_bbreg(hw, RTx_Power_Before_IQK_A, MASKDWORD); + reg_e9c = rtl_get_bbreg(hw, RTx_Power_After_IQK_A, MASKDWORD); + + + if (!(reg_eac & BIT(28)) && + (((reg_e94 & 0x03FF0000) >> 16) != 0x142) && + (((reg_e9c & 0x03FF0000) >> 16) != 0x42)) + result |= 0x01; + else + return result; + + u32temp = 0x80007C00 | (reg_e94&0x3FF0000) | ((reg_e9c&0x3FF0000) >> 16); + rtl_set_bbreg(hw, RTx_IQK, MASKDWORD, u32temp); + /*RX IQK*/ + /*Modify RX IQK mode table*/ + rtl_set_bbreg(hw, RFPGA0_IQK, MASKDWORD, 0x00000000); + rtl_set_rfreg(hw, RF90_PATH_A, RF_WE_LUT, RFREG_OFFSET_MASK, 0x800a0); + rtl_set_rfreg(hw, RF90_PATH_A, RF_RCK_OS, RFREG_OFFSET_MASK, 0x30000); + rtl_set_rfreg(hw, RF90_PATH_A, RF_TXPA_G1, RFREG_OFFSET_MASK, 0x0000f); + rtl_set_rfreg(hw, RF90_PATH_A, RF_TXPA_G2, RFREG_OFFSET_MASK, 0xf7ffa); + rtl_set_bbreg(hw, RFPGA0_IQK, MASKDWORD, 0x80800000); + + /*IQK Setting*/ + rtl_set_bbreg(hw, RRx_IQK, MASKDWORD, 0x01004800); + + /*path a IQK setting*/ + rtl_set_bbreg(hw, RTx_IQK_Tone_A, MASKDWORD, 0x30008c1c); + rtl_set_bbreg(hw, RRx_IQK_Tone_A, MASKDWORD, 0x10008c1c); + rtl_set_bbreg(hw, RTx_IQK_PI_A, MASKDWORD, 0x82160c05); + rtl_set_bbreg(hw, RRx_IQK_PI_A, MASKDWORD, 0x28160c05); + + /*LO calibration Setting*/ + rtl_set_bbreg(hw, RIQK_AGC_Rsp, MASKDWORD, 0x0046a911); + /*one shot,path A LOK & iqk*/ + rtl_set_bbreg(hw, RIQK_AGC_Pts, MASKDWORD, 0xf9000000); + rtl_set_bbreg(hw, RIQK_AGC_Pts, MASKDWORD, 0xf8000000); + + mdelay(IQK_DELAY_TIME); + + reg_eac = rtl_get_bbreg(hw, RRx_Power_After_IQK_A_2, MASKDWORD); + reg_e94 = rtl_get_bbreg(hw, RTx_Power_Before_IQK_A, MASKDWORD); + reg_e9c = rtl_get_bbreg(hw, RTx_Power_After_IQK_A, MASKDWORD); + reg_ea4 = rtl_get_bbreg(hw, RRx_Power_Before_IQK_A_2, MASKDWORD); + + if (!(reg_eac & BIT(27)) && + (((reg_ea4 & 0x03FF0000) >> 16) != 0x132) && + (((reg_eac & 0x03FF0000) >> 16) != 0x36)) + result |= 0x02; + return result; +} +#endif + +u8 _rtl8812ae_get_right_chnl_place_for_iqk(u8 chnl) +{ + u8 channel_all[TARGET_CHNL_NUM_2G_5G_8812] = + {1,2,3,4,5,6,7,8,9,10,11,12,13,14,36,38,40,42,\ + 44,46,48,50,52,54,56,58,60,62,64,100,\ + 102,104,106,108,110,112,114,116,118,\ + 120,122,124,126,128,130,132,134,136,\ + 138,140,149,151,153,155,157,159,161,\ + 163,165}; + u8 place = chnl; + + if(chnl > 14) + { + for(place = 14; place Page C*/ + if (rx_x >> 1 ==0x112 || rx_y >> 1 == 0x3ee){ + rtl_set_bbreg(hw, 0xc10, 0x000003ff, 0x100); + rtl_set_bbreg(hw, 0xc10, 0x03ff0000, 0); + RT_TRACE(COMP_IQK, DBG_LOUD, + ("RX_X = %x;;RX_Y = %x ====>fill to IQC\n", + rx_x >> 1 & 0x000003ff, rx_y >> 1 & 0x000003ff)); + } + else{ + rtl_set_bbreg(hw, 0xc10, 0x000003ff, rx_x >> 1); + rtl_set_bbreg(hw, 0xc10, 0x03ff0000, rx_y >> 1); + RT_TRACE(COMP_IQK, DBG_LOUD, + ("RX_X = %x;;RX_Y = %x ====>fill to IQC\n", + rx_x >> 1 & 0x000003ff, rx_y >> 1 & 0x000003ff)); + RT_TRACE(COMP_IQK, DBG_LOUD, + ("0xc10 = %x ====>fill to IQC\n", + rtl_read_dword(rtlpriv, 0xc10))); + } + } + break; + case RF90_PATH_B: + { + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /*[31] = 0 --> Page C*/ + if (rx_x >> 1 ==0x112 || rx_y >> 1 == 0x3ee){ + rtl_set_bbreg(hw, 0xe10, 0x000003ff, 0x100); + rtl_set_bbreg(hw, 0xe10, 0x03ff0000, 0); + RT_TRACE(COMP_IQK, DBG_LOUD, + ("RX_X = %x;;RX_Y = %x ====>fill to IQC\n", + rx_x >> 1 & 0x000003ff, rx_y >> 1 & 0x000003ff)); + } + else{ + rtl_set_bbreg(hw, 0xe10, 0x000003ff, rx_x >> 1); + rtl_set_bbreg(hw, 0xe10, 0x03ff0000, rx_y >> 1); + RT_TRACE(COMP_IQK, DBG_LOUD, + ("RX_X = %x;;RX_Y = %x====>fill to IQC\n ", + rx_x >> 1 & 0x000003ff, rx_y >> 1 & 0x000003ff)); + RT_TRACE(COMP_IQK, DBG_LOUD, + ("0xe10 = %x====>fill to IQC\n", + rtl_read_dword(rtlpriv, 0xe10))); + } + } + break; + default: + break; + }; +} + +void _rtl8812ae_iqk_tx_fill_iqc( + struct ieee80211_hw *hw, + enum radio_path path, + u32 tx_x, + u32 tx_y + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + switch (path) { + case RF90_PATH_A: + { + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); /*[31] = 1 --> Page C1*/ + rtl_write_dword(rtlpriv, 0xc90, 0x00000080); + rtl_write_dword(rtlpriv, 0xcc4, 0x20040000); + rtl_write_dword(rtlpriv, 0xcc8, 0x20000000); + rtl_set_bbreg(hw, 0xccc, 0x000007ff, tx_y); + rtl_set_bbreg(hw, 0xcd4, 0x000007ff, tx_x); + RT_TRACE(COMP_IQK, DBG_LOUD, + ("TX_X = %x;;TX_Y = %x =====> fill to IQC\n", + tx_x & 0x000007ff, tx_y & 0x000007ff)); + RT_TRACE(COMP_IQK, DBG_LOUD, + ("0xcd4 = %x;;0xccc = %x ====>fill to IQC\n", + rtl_get_bbreg(hw, 0xcd4, 0x000007ff), + rtl_get_bbreg(hw, 0xccc, 0x000007ff))); + } + break; + case RF90_PATH_B: + { + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); /*[31] = 1 --> Page C1*/ + rtl_write_dword(rtlpriv, 0xe90, 0x00000080); + rtl_write_dword(rtlpriv, 0xec4, 0x20040000); + rtl_write_dword(rtlpriv, 0xec8, 0x20000000); + rtl_set_bbreg(hw, 0xecc, 0x000007ff, tx_y); + rtl_set_bbreg(hw, 0xed4, 0x000007ff, tx_x); + RT_TRACE(COMP_IQK, DBG_LOUD, + ("TX_X = %x;;TX_Y = %x =====> fill to IQC\n", + tx_x&0x000007ff, tx_y&0x000007ff)); + RT_TRACE(COMP_IQK, DBG_LOUD, + ("0xed4 = %x;;0xecc = %x ====>fill to IQC\n", + rtl_get_bbreg(hw, 0xed4, 0x000007ff), + rtl_get_bbreg(hw, 0xecc, 0x000007ff))); + } + break; + default: + break; + }; +} + +void _rtl8812ae_iqk_backup_macbb( + struct ieee80211_hw *hw, + u32 *macbb_backup, + u32 *backup_macbb_reg, + u32 mac_bb_num + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 i; + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /*[31] = 0 --> Page C*/ + /*save MACBB default value*/ + for (i = 0; i < mac_bb_num; i++) { + macbb_backup[i] =rtl_read_dword(rtlpriv,backup_macbb_reg[i]); + } + + RT_TRACE(COMP_IQK, DBG_LOUD, ("BackupMacBB Success!!!!\n")); +} + +void _rtl8812ae_iqk_backup_afe( + struct ieee80211_hw *hw, + u32 *afe_backup, + u32 *backup_afe_REG, + u32 afe_num + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 i; + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /*[31] = 0 --> Page C*/ + /*Save AFE Parameters */ + for (i = 0; i < afe_num; i++){ + afe_backup[i] = rtl_read_dword(rtlpriv, backup_afe_REG[i]); + } + RT_TRACE(COMP_IQK, DBG_LOUD, ("BackupAFE Success!!!!\n")); +} + +void _rtl8812ae_iqk_backup_rf( + struct ieee80211_hw *hw, + u32 *rfa_backup, + u32 *rfb_backup, + u32 *backup_rf_reg, + u32 rf_num + ) +{ + + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 i; + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /*[31] = 0 --> Page C*/ + /*Save RF Parameters*/ + for (i = 0; i < rf_num; i++){ + rfa_backup[i] = rtl_get_rfreg(hw, RF90_PATH_A, backup_rf_reg[i], BMASKDWORD); + rfb_backup[i] = rtl_get_rfreg(hw, RF90_PATH_B, backup_rf_reg[i], BMASKDWORD); + } + RT_TRACE(COMP_IQK, DBG_LOUD, ("BackupRF Success!!!!\n")); +} + +void _rtl8812ae_iqk_configure_mac( + struct ieee80211_hw *hw + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + /* ========MAC register setting========*/ + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /*[31] = 0 --> Page C*/ + rtl_write_byte(rtlpriv, 0x522, 0x3f); + rtl_set_bbreg(hw, 0x550, BIT(11) | BIT(3), 0x0); + rtl_write_byte(rtlpriv, 0x808, 0x00); /*RX ante off*/ + rtl_set_bbreg(hw, 0x838, 0xf, 0xc); /*CCA off*/ +} + +#define cal_num 10 + +void _rtl8812ae_iqk_tx( + struct ieee80211_hw *hw, + u8 chnl_idx + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + + u8 delay_count; + u8 cal0_retry, cal1_retry; + u8 tx0_average = 0, tx1_average = 0, rx0_average = 0, rx1_average = 0; + int tx0_x = 0, tx0_y = 0, rx0_x = 0, rx0_y = 0; + int tx_x0[cal_num], tx_y0[cal_num], rx_x0[cal_num], rx_y0[cal_num]; + int tx1_x = 0, tx1_y = 0, rx1_x = 0, rx1_y = 0; + int tx_x1[cal_num], tx_y1[cal_num], rx_x1[cal_num], rx_y1[cal_num]; + bool tx0iqkok= false, rx0iqkok = false, tx0_fail = true, rx0_fail; + bool iqk0_ready = false, tx0_finish = false, rx0_finish = false; + bool tx1iqkok = false, rx1iqkok = false, tx1_fail = true, rx1_fail; + bool iqk1_ready = false, tx1_finish = false, rx1_finish = false, vdf_enable = false; + int i, tx_dt[3] = {0}, rx_dt[3] = {0}, ii, dx = 0, dy = 0; + + RT_TRACE(COMP_IQK, DBG_LOUD, + ("BandWidth = %d.\n", + rtlphy->current_chan_bw)); + if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_80){ + vdf_enable = true; + } + vdf_enable = false; + + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /*[31] = 0 --> Page C*/ + /*========Path-A AFE all on========*/ + /*Port 0 DAC/ADC on*/ + rtl_write_dword(rtlpriv, 0xc60, 0x77777777); + rtl_write_dword(rtlpriv, 0xc64, 0x77777777); + + /* Port 1 DAC/ADC off*/ + rtl_write_dword(rtlpriv, 0xe60, 0x77777777); + rtl_write_dword(rtlpriv, 0xe64, 0x77777777); + + rtl_write_dword(rtlpriv, 0xc68, 0x19791979); + rtl_write_dword(rtlpriv, 0xe68, 0x19791979); + rtl_set_bbreg(hw,0xc00, 0xf, 0x4);/*hardware 3-wire off*/ + rtl_set_bbreg(hw,0xe00, 0xf, 0x4);/*hardware 3-wire off*/ + + /*DAC/ADC sampling rate (160 MHz)*/ + rtl_set_bbreg(hw, 0xc5c, BIT(26) | BIT(25) | BIT(24), 0x7); + rtl_set_bbreg(hw, 0xe5c, BIT(26) | BIT(25) | BIT(24), 0x7); + rtl_set_bbreg(hw, 0x8c4, BIT(30), 0x1); + + /*====== Path A TX IQK RF Setting ======*/ + rtl_set_bbreg(hw,0x82c, BIT(31), 0x0); // [31] = 0 --> Page C + rtl_set_rfreg(hw,RF90_PATH_A, 0xef, BRFREGOFFSETMASK, 0x80002); + rtl_set_rfreg(hw,RF90_PATH_A, 0x30, BRFREGOFFSETMASK, 0x20000); + rtl_set_rfreg(hw,RF90_PATH_A, 0x31, BRFREGOFFSETMASK, 0x3fffd); + rtl_set_rfreg(hw,RF90_PATH_A, 0x32, BRFREGOFFSETMASK, 0xfe83f); + rtl_set_rfreg(hw,RF90_PATH_A, 0x65, BRFREGOFFSETMASK, 0x931d5); + rtl_set_rfreg(hw,RF90_PATH_A, 0x8f, BRFREGOFFSETMASK, 0x8a001); + /*====== Path A TX IQK RF Setting ======*/ + rtl_set_rfreg(hw,RF90_PATH_B, 0xef, BRFREGOFFSETMASK, 0x80002); + rtl_set_rfreg(hw,RF90_PATH_B, 0x30, BRFREGOFFSETMASK, 0x20000); + rtl_set_rfreg(hw,RF90_PATH_B, 0x31, BRFREGOFFSETMASK, 0x3fffd); + rtl_set_rfreg(hw,RF90_PATH_B, 0x32, BRFREGOFFSETMASK, 0xfe83f); + rtl_set_rfreg(hw,RF90_PATH_B, 0x65, BRFREGOFFSETMASK, 0x931d5); + rtl_set_rfreg(hw,RF90_PATH_B, 0x8f, BRFREGOFFSETMASK, 0x8a001); + rtl_write_dword(rtlpriv, 0x90c, 0x00008000); + rtl_write_dword(rtlpriv, 0xb00, 0x03000100); + rtl_set_bbreg(hw, 0xc94, BIT(0), 0x1); + rtl_set_bbreg(hw, 0xe94, BIT(0), 0x1); + rtl_write_dword(rtlpriv, 0x978, 0x29002000);/* TX (X,Y)*/ + rtl_write_dword(rtlpriv, 0x97c, 0xa9002000);/* RX (X,Y)*/ + rtl_write_dword(rtlpriv, 0x984, 0x00462910);/*[0]:AGC_en, [15]:idac_K_Mask*/ + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); /* [31] = 1 --> Page C1*/ + + /*ExternalPA_5G == 0*/ + rtl_write_dword(rtlpriv, 0xc88, 0x821403f1); + rtl_write_dword(rtlpriv, 0xe88, 0x821403f1); + + if (rtlhal->current_bandtype){ + rtl_write_dword(rtlpriv, 0xc8c, 0x68163e96); + rtl_write_dword(rtlpriv, 0xe8c, 0x68163e96); + } + else{ + rtl_write_dword(rtlpriv, 0xc8c, 0x28163e96); + rtl_write_dword(rtlpriv, 0xe8c, 0x28163e96); + } + + if (vdf_enable){} + else{ + rtl_write_dword(rtlpriv, 0xc80, 0x18008c10);/*TX_Tone_idx[9:0], TxK_Mask[29] TX_Tone = 16*/ + rtl_write_dword(rtlpriv, 0xc84, 0x38008c10);/*RX_Tone_idx[9:0], RxK_Mask[29]*/ + rtl_write_dword(rtlpriv, 0xce8, 0x00000000); + rtl_write_dword(rtlpriv, 0xe80, 0x18008c10);/*TX_Tone_idx[9:0], TxK_Mask[29] TX_Tone = 16*/ + rtl_write_dword(rtlpriv, 0xe84, 0x38008c10);/*RX_Tone_idx[9:0], RxK_Mask[29]*/ + rtl_write_dword(rtlpriv, 0xee8, 0x00000000); + + cal0_retry = 0; + cal1_retry = 0; + while(1){ + /*one shot*/ + rtl_write_dword(rtlpriv, 0xcb8, 0x00100000);/* cb8[20] N SI/PI ϥv iqk_dpk module*/ + rtl_write_dword(rtlpriv, 0xeb8, 0x00100000);/* cb8[20] N SI/PI ϥv iqk_dpk module*/ + rtl_write_dword(rtlpriv, 0x980, 0xfa000000); + rtl_write_dword(rtlpriv, 0x980, 0xf8000000); + + mdelay(10); /*Delay 25ms*/ + rtl_write_dword(rtlpriv, 0xcb8, 0x00000000); + rtl_write_dword(rtlpriv, 0xeb8, 0x00000000); + delay_count = 0; + while (1){ + if (!tx0_finish) + iqk0_ready = (bool) rtl_get_bbreg(hw, 0xd00, BIT(10)); + if (!tx1_finish) + iqk1_ready = (bool) rtl_get_bbreg(hw, 0xd40, BIT(10)); + if ((iqk0_ready && iqk1_ready) || (delay_count>20)) + break; + else{ + mdelay(1); + delay_count++; + } + } + RT_TRACE(COMP_IQK, DBG_LOUD, ("TX delay_count = %d\n", delay_count)); + if (delay_count < 20){ // If 20ms No Result, then cal_retry++ + /* ============TXIQK Check==============*/ + tx0_fail = (bool) rtl_get_bbreg(hw, 0xd00, BIT(12)); + tx1_fail = (bool) rtl_get_bbreg(hw, 0xd40, BIT(12)); + if (!(tx0_fail || tx0_finish)){ + rtl_write_dword(rtlpriv, 0xcb8, 0x02000000); + tx_x0[tx0_average] = rtl_get_bbreg(hw, 0xd00, 0x07ff0000) << 21; + rtl_write_dword(rtlpriv, 0xcb8, 0x04000000); + tx_y0[tx0_average] = rtl_get_bbreg(hw, 0xd00, 0x07ff0000) << 21; + tx0iqkok = true; + RT_TRACE(COMP_IQK, DBG_LOUD, + ("TX_X0[%d] = %x ;; TX_Y0[%d] = %x\n", + tx0_average, (tx_x0[tx0_average]) >> 21 & 0x000007ff, + tx0_average, (tx_y0[tx0_average]) >> 21 & 0x000007ff)); + + tx0_average++; + } + else{ + tx0iqkok = false; + cal0_retry++; + if (cal0_retry == 10) + break; + } + if (!(tx1_fail || tx1_finish)){ + rtl_write_dword(rtlpriv, 0xeb8, 0x02000000); + tx_x1[tx1_average] = rtl_get_bbreg(hw, 0xd40, 0x07ff0000) << 21; + rtl_write_dword(rtlpriv, 0xeb8, 0x04000000); + tx_y1[tx1_average] = rtl_get_bbreg(hw, 0xd40, 0x07ff0000) << 21; + tx1iqkok= true; + RT_TRACE(COMP_IQK, DBG_LOUD, + ("TX_X1[%d] = %x ;; TX_Y1[%d] = %x\n", + tx1_average, (tx_x1[tx1_average]) >> 21 & 0x000007ff, + tx1_average, (tx_y1[tx1_average]) >> 21 & 0x000007ff)); + + tx1_average++; + } + else{ + tx1iqkok = false; + cal1_retry++; + if (cal1_retry == 10) + break; + } + } + else{ + tx0iqkok = false; + tx1iqkok = false; + cal0_retry++; + cal1_retry++; + RT_TRACE(COMP_IQK, DBG_LOUD, + ("Delay 20ms TX IQK Not Ready!!!!!\n")); + if (cal0_retry == 10) + break; + } + if (tx0_average >= 2){ + for (i = 0; i < tx0_average; i++){ + for (ii = i+1; ii > 21) - (tx_x0[ii] >> 21); + if (dx < 4 && dx > -4){ + dy = (tx_y0[i]>>21) - (tx_y0[ii]>>21); + if (dy < 4 && dy > -4){ + tx0_x = ((tx_x0[i] >> 21) + (tx_x0[ii] >> 21)) / 2; + tx0_y = ((tx_y0[i] >> 21) + (tx_y0[ii] >> 21)) / 2; + tx_x0[0] = tx_x0[i]; + tx_y0[1] = tx_y0[ii]; + RT_TRACE(COMP_IQK, DBG_LOUD, + ("TX0_X = %x;;TX0_Y = %x\n", + tx0_x & 0x000007ff, tx0_y & 0x000007ff)); + if ((rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_80) + && vdf_enable) { + tx_dt[0] = (tx_dt[i] + tx_dt[ii]) / 2; + } + tx0_finish = true; + } + } + } + } + } + if (tx1_average >= 2){ + for (i = 0; i < tx1_average; i++){ + for (ii = i+1; ii < tx1_average; ii++){ + dx = (tx_x1[i] >> 21) - (tx_x1[ii] >> 21); + if (dx < 4 && dx > -4){ + dy = (tx_y1[i] >> 21) - (tx_y1[ii] >> 21); + if (dy < 4 && dy > -4){ + tx1_x = ((tx_x1[i] >> 21) + (tx_x1[ii] >> 21)) / 2; + tx1_y = ((tx_y1[i] >> 21) + (tx_y1[ii] >> 21)) / 2; + tx_x1[0] = tx_x1[i]; + tx_y1[1] = tx_y1[ii]; + RT_TRACE(COMP_IQK, DBG_LOUD, + ("TX1_X = %x;;TX1_Y = %x\n", + tx1_x & 0x000007ff, tx1_y & 0x000007ff)); + if ((rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_80) + && vdf_enable) { + tx_dt[0] = (tx_dt[i] + tx_dt[ii]) / 2; + } + tx1_finish = true; + } + } + } + } + } + RT_TRACE(COMP_IQK, DBG_LOUD, + ("TX0_Average = %d, TX1_Average = %d\n", + tx0_average, tx1_average)); + RT_TRACE(COMP_IQK, DBG_LOUD, + ("TX0_finish = %d, TX1_finish = %d\n", + tx0_finish, tx1_finish)); + if (tx0_finish && tx1_finish) + break; + if ((cal0_retry + tx0_average) >= 10 + || (cal1_retry + tx1_average) >= 10 ) + break; + } + RT_TRACE(COMP_IQK, DBG_LOUD, + ("TXA_cal_retry = %d\n", cal0_retry)); + RT_TRACE(COMP_IQK, DBG_LOUD, + ("TXB_cal_retry = %d\n", cal1_retry)); + + } + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /* [31] = 0 --> Page C*/ + rtl_set_rfreg(hw, RF90_PATH_A, 0x58, 0x7fe00, + rtl_get_rfreg(hw, RF90_PATH_A, 0x8, 0xffc00)); /*Load LOK*/ + rtl_set_rfreg(hw, RF90_PATH_B, 0x58, 0x7fe00, + rtl_get_rfreg(hw, RF90_PATH_B, 0x8, 0xffc00)); /* Load LOK*/ + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); /*[31] = 1 --> Page C1*/ + + + if (vdf_enable) {} + else{ + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /*[31] = 0 --> Page C*/ + if (tx0_finish) { + /*====== Path A RX IQK RF Setting======*/ + rtl_set_rfreg(hw, RF90_PATH_A, 0xef, BRFREGOFFSETMASK, 0x80000); + rtl_set_rfreg(hw, RF90_PATH_A, 0x18, 0x00c00, 0x3); /* BW 20M*/ + rtl_set_rfreg(hw, RF90_PATH_A, 0x30, BRFREGOFFSETMASK, 0x30000); + rtl_set_rfreg(hw, RF90_PATH_A, 0x31, BRFREGOFFSETMASK, 0x3f7ff); + rtl_set_rfreg(hw, RF90_PATH_A, 0x32, BRFREGOFFSETMASK, 0xfe7bf); + rtl_set_rfreg(hw, RF90_PATH_A, 0x8f, BRFREGOFFSETMASK, 0x88001); + rtl_set_rfreg(hw, RF90_PATH_A, 0x65, BRFREGOFFSETMASK, 0x931d6); + rtl_set_rfreg(hw, RF90_PATH_A, 0xef, BRFREGOFFSETMASK, 0x00000); + } + if (tx1_finish){ + /*====== Path B RX IQK RF Setting======*/ + rtl_set_rfreg(hw, RF90_PATH_B, 0xef, BRFREGOFFSETMASK, 0x80000); + rtl_set_rfreg(hw, RF90_PATH_B, 0x30, BRFREGOFFSETMASK, 0x30000); + rtl_set_rfreg(hw, RF90_PATH_B, 0x31, BRFREGOFFSETMASK, 0x3f7ff); + rtl_set_rfreg(hw, RF90_PATH_B, 0x32, BRFREGOFFSETMASK, 0xfe7bf); + rtl_set_rfreg(hw, RF90_PATH_B, 0x8f, BRFREGOFFSETMASK, 0x88001); + rtl_set_rfreg(hw, RF90_PATH_B, 0x65, BRFREGOFFSETMASK, 0x931d1); + rtl_set_rfreg(hw, RF90_PATH_B, 0xef, BRFREGOFFSETMASK, 0x00000); + } + rtl_set_bbreg(hw, 0x978, BIT(31), 0x1); + rtl_set_bbreg(hw, 0x97c, BIT(31), 0x0); + rtl_write_dword(rtlpriv, 0x90c, 0x00008000); + rtl_write_dword(rtlpriv, 0x984, 0x0046a890); + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); /*[31] = 1 --> Page C1*/ + if (tx0_finish) { + rtl_write_dword(rtlpriv, 0xc80, 0x38008c10);/*TX_Tone_idx[9:0], TxK_Mask[29] TX_Tone = 16*/ + rtl_write_dword(rtlpriv, 0xc84, 0x18008c10);/*RX_Tone_idx[9:0], RxK_Mask[29]*/ + rtl_write_dword(rtlpriv, 0xc88, 0x02140119); + rtl_write_dword(rtlpriv, 0xc8c, 0x28160cc0); + } + if (tx1_finish){ + rtl_write_dword(rtlpriv, 0xe80, 0x38008c10);/*TX_Tone_idx[9:0], TxK_Mask[29] TX_Tone = 16*/ + rtl_write_dword(rtlpriv, 0xe84, 0x18008c10);/*RX_Tone_idx[9:0], RxK_Mask[29]*/ + rtl_write_dword(rtlpriv, 0xe88, 0x02140119); + rtl_write_dword(rtlpriv, 0xe8c, 0x28160ca0); + } + cal0_retry = 0; + cal1_retry = 0; + while(1){ + /* one shot*/ + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /*[31] = 0 --> Page C*/ + if (tx0_finish){ + rtl_set_bbreg(hw, 0x978, 0x03FF8000, (tx_x0[rx0_average % 2]) >> 21 & 0x000007ff); + rtl_set_bbreg(hw, 0x978, 0x000007FF, (tx_y0[rx0_average % 2]) >> 21 & 0x000007ff); + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); /* [31] = 1 --> Page C1*/ + rtl_write_dword(rtlpriv, 0xcb8, 0x00300000);/*cb8[20] N SI/PI ϥv iqk_dpk module*/ + rtl_write_dword(rtlpriv, 0xcb8, 0x00100000); + mdelay(5); /*Delay 10ms*/ + } + if (tx1_finish){ + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /*[31] = 0 --> Page C*/ + rtl_set_bbreg(hw, 0x978, 0x03FF8000, (tx_x1[rx1_average % 2]) >> 21 & 0x000007ff); + rtl_set_bbreg(hw, 0x978, 0x000007FF, (tx_y1[rx1_average % 2]) >> 21 & 0x000007ff); + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); /*[31] = 1 --> Page C1*/ + rtl_write_dword(rtlpriv, 0xeb8, 0x00300000);/*cb8[20] N SI/PI ϥv iqk_dpk module*/ + rtl_write_dword(rtlpriv, 0xeb8, 0x00100000);/* cb8[20] N SI/PI ϥv iqk_dpk module*/ + } + mdelay(10); /*Delay 10ms*/ + rtl_write_dword(rtlpriv, 0xcb8, 0x00000000); + rtl_write_dword(rtlpriv, 0xeb8, 0x00000000); + delay_count = 0; + while (1){ + if (!rx0_finish && tx0_finish) + iqk0_ready = (bool) rtl_get_bbreg(hw, 0xd00, BIT(10)); + if (!rx1_finish && tx1_finish) + iqk1_ready = (bool) rtl_get_bbreg(hw, 0xd40, BIT(10)); + if ((iqk0_ready && iqk1_ready)||(delay_count>20)) + break; + else{ + mdelay(1); + delay_count++; + } + } + RT_TRACE(COMP_IQK, DBG_LOUD, + ("RX delay_count = %d\n", delay_count)); + if (delay_count < 20){ // If 20ms No Result, then cal_retry++ + // ============RXIQK Check============== + rx0_fail = (bool) rtl_get_bbreg(hw, 0xd00, BIT(11)); + rx1_fail = (bool) rtl_get_bbreg(hw, 0xd40, BIT(11)); + if (!(rx0_fail || rx0_finish) && tx0_finish){ + rtl_write_dword(rtlpriv, 0xcb8, 0x06000000); + rx_x0[rx0_average] = rtl_get_bbreg(hw, 0xd00, 0x07ff0000) << 21; + rtl_write_dword(rtlpriv, 0xcb8, 0x08000000); + rx_y0[rx0_average] = rtl_get_bbreg(hw, 0xd00, 0x07ff0000) << 21; + rx0iqkok= true; + RT_TRACE(COMP_IQK, DBG_LOUD, + ("RX_X0[%d] = %x ;; RX_Y0[%d] = %x\n", + rx0_average, (rx_x0[rx0_average]) >> 21 & 0x000007ff, + rx0_average, (rx_y0[rx0_average]) >> 21 & 0x000007ff)); + + rx0_average++; + } + else{ + RT_TRACE(COMP_IQK, DBG_LOUD, + ("1. RXA_cal_retry = %d\n", cal0_retry)); + rx0iqkok = false; + cal0_retry++; + if (cal0_retry == 10) + break; + } + if (!(rx1_fail || rx1_finish) && tx1_finish){ + rtl_write_dword(rtlpriv, 0xeb8, 0x06000000); + rx_x1[rx1_average] = rtl_get_bbreg(hw, 0xd40, 0x07ff0000) << 21; + rtl_write_dword(rtlpriv, 0xeb8, 0x08000000); + rx_y1[rx1_average] = rtl_get_bbreg(hw, 0xd40, 0x07ff0000) << 21; + rx1iqkok = true; + RT_TRACE(COMP_IQK, DBG_LOUD, + ("RX_X1[%d] = %x ;; RX_Y1[%d] = %x\n", + rx1_average, (rx_x1[rx1_average]) >> 21 & 0x000007ff, + rx1_average, (rx_y1[rx1_average]) >> 21 & 0x000007ff)); + + rx1_average++; + } + else{ + rx1iqkok= false; + cal1_retry++; + if (cal1_retry == 10) + break; + } + + } + else{ + RT_TRACE(COMP_IQK, DBG_LOUD, + ("2. RXA_cal_retry = %d\n", cal0_retry)); + rx0iqkok = false; + rx1iqkok = false; + cal0_retry++; + cal1_retry++; + RT_TRACE(COMP_IQK, DBG_LOUD, + ("Delay 20ms RX IQK Not Ready!!!!!\n")); + if (cal0_retry == 10) + break; + } + RT_TRACE(COMP_IQK, DBG_LOUD, + ("3. RXA_cal_retry = %d\n", cal0_retry)); + if (rx0_average >= 2){ + for (i = 0; i < rx0_average; i++){ + for (ii = i+1; ii < rx0_average; ii++){ + dx = (rx_x0[i] >> 21) - (rx_x0[ii] >> 21); + if (dx < 4 && dx > -4){ + dy = (rx_y0[i] >> 21) - (rx_y0[ii] >> 21); + if (dy < 4 && dy > -4){ + rx0_x = ((rx_x0[i]>>21) + (rx_x0[ii] >> 21)) / 2; + rx0_y = ((rx_y0[i]>>21) + (rx_y0[ii] >> 21)) / 2; + if ((rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_80) + && vdf_enable) { + rx_dt[0] = (rx_dt[i] + rx_dt[ii]) / 2; + } + rx0_finish = true; + break; + } + } + } + } + } + if (rx1_average >= 2){ + for (i = 0; i < rx1_average; i++){ + for (ii = i+1; ii < rx1_average; ii++){ + dx = (rx_x1[i] >> 21) - (rx_x1[ii] >> 21); + if (dx < 4 && dx > -4){ + dy = (rx_y1[i] >> 21) - (rx_y1[ii] >> 21); + if (dy < 4 && dy > -4){ + rx1_x = ((rx_x1[i] >> 21) + (rx_x1[ii] >> 21)) / 2; + rx1_y = ((rx_y1[i] >> 21) + (rx_y1[ii] >> 21)) / 2; + if ((rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_80) + && vdf_enable) { + rx_dt[0] = (rx_dt[i] + rx_dt[ii]) / 2; + } + rx1_finish = true; + break; + } + } + } + } + } + RT_TRACE(COMP_IQK, DBG_LOUD, + ("RX0_Average = %d, RX1_Average = %d\n", + rx0_average, rx1_average)); + RT_TRACE(COMP_IQK, DBG_LOUD, + ("RX0_finish = %d, RX1_finish = %d\n", + rx0_finish, rx1_finish)); + if ((rx0_finish|| !tx0_finish) && (rx1_finish || !tx1_finish) ) + break; + if ((cal0_retry + rx0_average) >= 10 + || (cal1_retry + rx1_average) >= 10 + || rx0_average == 3 + || rx1_average == 3) + break; + } + RT_TRACE(COMP_IQK, DBG_LOUD, + ("RXA_cal_retry = %d\n", cal0_retry)); + RT_TRACE(COMP_IQK, DBG_LOUD, + ("RXB_cal_retry = %d\n", cal1_retry)); + } + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /* [31] = 0 --> Page C*/ + switch (rtlphy->current_chan_bw) + { + case HT_CHANNEL_WIDTH_20_40: + { + rtl_set_rfreg(hw, RF90_PATH_A, 0x18, 0x00c00, 0x1); + } + break; + case HT_CHANNEL_WIDTH_80: + { + rtl_set_rfreg(hw, RF90_PATH_A, 0x18, 0x00c00, 0x0); + } + break; + default: + break; + + } + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); /* [31] = 0 --> Page C*/ + /*FillIQK Result*/ + RT_TRACE(COMP_IQK, DBG_LOUD, + ("========Path_A =======\n")); + + if (tx0_finish){ + _rtl8812ae_iqk_tx_fill_iqc(hw, RF90_PATH_A, tx0_x, tx0_y); + } + else{ + _rtl8812ae_iqk_tx_fill_iqc(hw, RF90_PATH_A, 0x200, 0x0); + } + + if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_80 + || vdf_enable){ + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); /*[31] = 0 --> Page C*/ + rtl_set_bbreg(hw, 0xce8, 0x3fff0000, tx_dt[0] & 0x00003fff); + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /*[31] = 0 --> Page C*/ + } + + if (rx0_finish == 1){ + _rtl8812ae_iqk_rx_fill_iqc(hw, RF90_PATH_A, rx0_x, rx0_y); + } + else{ + _rtl8812ae_iqk_rx_fill_iqc(hw, RF90_PATH_A, 0x200, 0x0); + } + + if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_80 + || vdf_enable){ + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); /*[31] = 0 --> Page C*/ + rtl_set_bbreg(hw, 0xce8, 0x00003fff, rx_dt[0] & 0x00003fff); + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /* [31] = 0 --> Page C*/ + } + + RT_TRACE(COMP_IQK, DBG_LOUD, + ("========Path_B =======\n")); + + if (tx1_finish){ + _rtl8812ae_iqk_tx_fill_iqc(hw, RF90_PATH_B, tx1_x, tx1_y); + } + else{ + _rtl8812ae_iqk_tx_fill_iqc(hw, RF90_PATH_B, 0x200, 0x0); + } + + if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_80 + || vdf_enable){ + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); /* [31] = 0 --> Page C*/ + rtl_set_bbreg(hw, 0xee8, 0x3fff0000, tx_dt[0] & 0x00003fff); + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /* [31] = 0 --> Page C*/ + } + + if (rx1_finish == 1){ + _rtl8812ae_iqk_rx_fill_iqc(hw, RF90_PATH_B, rx1_x, rx1_y); + } + else{ + _rtl8812ae_iqk_rx_fill_iqc(hw, RF90_PATH_B, 0x200, 0x0); + } + + if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_80 + || vdf_enable){ + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); /* [31] = 0 --> Page C*/ + rtl_set_bbreg(hw, 0xee8, 0x00003fff, rx_dt[0] & 0x00003fff); + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /* [31] = 0 --> Page C*/ + } +} + +void _rtl8812ae_iqk_restore_rf( + struct ieee80211_hw *hw, + enum radio_path path, + u32 *backup_rf_reg, + u32 *rf_backup, + u32 rf_reg_num + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 i; + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /*[31] = 0 --> Page C*/ + for (i = 0; i < rf_reg_num; i++) + rtl_set_rfreg(hw, path, backup_rf_reg[i], BRFREGOFFSETMASK, rf_backup[i]); + + rtl_set_rfreg(hw, path, 0xef, BRFREGOFFSETMASK, 0x0); + + switch(path){ + case RF90_PATH_A: + { + RT_TRACE(COMP_IQK, DBG_LOUD, + ("RestoreRF Path A Success!!!!\n")); + } + break; + case RF90_PATH_B: + { + RT_TRACE(COMP_IQK, DBG_LOUD, + ("RestoreRF Path B Success!!!!\n")); + } + break; + default: + break; + } +} + +void _rtl8812ae_iqk_restore_afe( + struct ieee80211_hw *hw, + u32 *afe_backup, + u32 *backup_afe_reg, + u32 afe_num + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 i; + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /*[31] = 0 --> Page C*/ + /*Reload AFE Parameters */ + for (i = 0; i < afe_num; i++){ + rtl_write_dword(rtlpriv, backup_afe_reg[i], afe_backup[i]); + } + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); /* [31] = 1 --> Page C1*/ + rtl_write_dword(rtlpriv, 0xc80, 0x0); + rtl_write_dword(rtlpriv, 0xc84, 0x0); + rtl_write_dword(rtlpriv, 0xc88, 0x0); + rtl_write_dword(rtlpriv, 0xc8c, 0x3c000000); + rtl_write_dword(rtlpriv, 0xc90, 0x00000080); + rtl_write_dword(rtlpriv, 0xc94, 0x00000000); + rtl_write_dword(rtlpriv, 0xcc4, 0x20040000); + rtl_write_dword(rtlpriv, 0xcc8, 0x20000000); + rtl_write_dword(rtlpriv, 0xcb8, 0x0); + rtl_write_dword(rtlpriv, 0xe80, 0x0); + rtl_write_dword(rtlpriv, 0xe84, 0x0); + rtl_write_dword(rtlpriv, 0xe88, 0x0); + rtl_write_dword(rtlpriv, 0xe8c, 0x3c000000); + rtl_write_dword(rtlpriv, 0xe90, 0x00000080); + rtl_write_dword(rtlpriv, 0xe94, 0x00000000); + rtl_write_dword(rtlpriv, 0xec4, 0x20040000); + rtl_write_dword(rtlpriv, 0xec8, 0x20000000); + rtl_write_dword(rtlpriv, 0xeb8, 0x0); + RT_TRACE(COMP_IQK, DBG_LOUD, + ("RestoreAFE Success!!!!\n")); +} + +void _rtl8812ae_iqk_restore_macbb( + struct ieee80211_hw *hw, + u32 *macbb_backup, + u32 *backup_macbb_reg, + u32 macbb_num + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 i; + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /* [31] = 0 --> Page C*/ + //Reload MacBB Parameters + for (i = 0; i < macbb_num; i++){ + rtl_write_dword(rtlpriv, backup_macbb_reg[i], macbb_backup[i]); + } + RT_TRACE(COMP_IQK, DBG_LOUD, + ("RestoreMacBB Success!!!!\n")); +} + +#define MACBB_REG_NUM 10 +#define AFE_REG_NUM 14 +#define RF_REG_NUM 3 + +static void _rtl8812ae_phy_iq_calibrate( + struct ieee80211_hw *hw, + u8 channel) +{ + u32 macbb_backup[MACBB_REG_NUM]; + u32 afe_backup[AFE_REG_NUM]; + u32 rfa_backup[RF_REG_NUM]; + u32 rfb_backup[RF_REG_NUM]; + u32 backup_macbb_reg[MACBB_REG_NUM] = {0xb00, 0x520, 0x550, + 0x808, 0x90c, 0xc00, 0xe00, + 0x8c4,0x838, 0x82c}; + u32 backup_afe_reg[AFE_REG_NUM] = {0xc5c, 0xc60, 0xc64, 0xc68, + 0xcb8, 0xcb0, 0xcb4,0xe5c, + 0xe60, 0xe64, 0xe68, 0xeb8, + 0xeb0, 0xeb4}; + u32 backup_rf_reg[RF_REG_NUM] = {0x65, 0x8f, 0x0}; + u8 chnl_idx = _rtl8812ae_get_right_chnl_place_for_iqk(channel); + + _rtl8812ae_iqk_backup_macbb(hw, macbb_backup, backup_macbb_reg, MACBB_REG_NUM); + _rtl8812ae_iqk_backup_afe(hw, afe_backup, backup_afe_reg, AFE_REG_NUM); + _rtl8812ae_iqk_backup_rf(hw, rfa_backup, rfb_backup, backup_rf_reg, RF_REG_NUM); + + _rtl8812ae_iqk_configure_mac(hw); + _rtl8812ae_iqk_tx(hw, chnl_idx); + _rtl8812ae_iqk_restore_rf(hw, RF90_PATH_A, backup_rf_reg, rfa_backup, RF_REG_NUM); + _rtl8812ae_iqk_restore_rf(hw, RF90_PATH_A, backup_rf_reg, rfb_backup, RF_REG_NUM); // PATH_A ? + + _rtl8812ae_iqk_restore_afe(hw, afe_backup, backup_afe_reg, AFE_REG_NUM); + _rtl8812ae_iqk_restore_macbb(hw, macbb_backup, backup_macbb_reg, MACBB_REG_NUM); +} + + +void _rtl8821ae_iqk_backup_macbb( + struct ieee80211_hw *hw, + u32 *macbb_backup, + u32 *backup_macbb_reg, + u32 mac_bb_num + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 i; + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /*[31] = 0 --> Page C*/ + /*save MACBB default value*/ + for (i = 0; i < mac_bb_num; i++) { + macbb_backup[i] =rtl_read_dword(rtlpriv,backup_macbb_reg[i]); + } + + RT_TRACE(COMP_IQK, DBG_LOUD, ("BackupMacBB Success!!!!\n")); +} + +void _rtl8821ae_iqk_backup_afe( + struct ieee80211_hw *hw, + u32 *afe_backup, + u32 *backup_afe_REG, + u32 afe_num + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 i; + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /*[31] = 0 --> Page C*/ + /*Save AFE Parameters */ + for (i = 0; i < afe_num; i++){ + afe_backup[i] = rtl_read_dword(rtlpriv, backup_afe_REG[i]); + } + RT_TRACE(COMP_IQK, DBG_LOUD, ("BackupAFE Success!!!!\n")); +} + +void _rtl8821ae_iqk_backup_rf( + struct ieee80211_hw *hw, + u32 *rfa_backup, + u32 *rfb_backup, + u32 *backup_rf_reg, + u32 rf_num + ) +{ + + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 i; + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /*[31] = 0 --> Page C*/ + /*Save RF Parameters*/ + for (i = 0; i < rf_num; i++){ + rfa_backup[i] = rtl_get_rfreg(hw, RF90_PATH_A, backup_rf_reg[i], BMASKDWORD); + rfb_backup[i] = rtl_get_rfreg(hw, RF90_PATH_B, backup_rf_reg[i], BMASKDWORD); + } + RT_TRACE(COMP_IQK, DBG_LOUD, ("BackupRF Success!!!!\n")); +} + +void _rtl8821ae_iqk_configure_mac( + struct ieee80211_hw *hw + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + /* ========MAC register setting========*/ + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /*[31] = 0 --> Page C*/ + rtl_write_byte(rtlpriv, 0x522, 0x3f); + rtl_set_bbreg(hw, 0x550, BIT(11) | BIT(3), 0x0); + rtl_write_byte(rtlpriv, 0x808, 0x00); /*RX ante off*/ + rtl_set_bbreg(hw, 0x838, 0xf, 0xc); /*CCA off*/ +} + + +void _rtl8821ae_iqk_tx_fill_iqc( + struct ieee80211_hw *hw, + enum radio_path path, + u32 tx_x, + u32 tx_y + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + switch (path) { + case RF90_PATH_A: + { + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); // [31] = 1 --> Page C1 + rtl_write_dword(rtlpriv, 0xc90, 0x00000080); + rtl_write_dword(rtlpriv, 0xcc4, 0x20040000); + rtl_write_dword(rtlpriv, 0xcc8, 0x20000000); + rtl_set_bbreg(hw, 0xccc, 0x000007ff, tx_y); + rtl_set_bbreg(hw, 0xcd4, 0x000007ff, tx_x); + RT_TRACE(COMP_IQK, DBG_LOUD, ("TX_X = %x;;TX_Y = %x =====> fill to IQC\n", tx_x, tx_y)); + RT_TRACE(COMP_IQK, DBG_LOUD, ("0xcd4 = %x;;0xccc = %x ====>fill to IQC\n", rtl_get_bbreg(hw, 0xcd4, 0x000007ff), rtl_get_bbreg(hw, 0xccc, 0x000007ff))); + } + break; + default: + break; + }; +} + + +void _rtl8821ae_iqk_rx_fill_iqc( + struct ieee80211_hw *hw, + enum radio_path path, + u32 rx_x, + u32 rx_y + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + switch (path) { + case RF90_PATH_A: + { + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); // [31] = 0 --> Page C + rtl_set_bbreg(hw, 0xc10, 0x000003ff, rx_x>>1); + rtl_set_bbreg(hw, 0xc10, 0x03ff0000, rx_y>>1); + RT_TRACE(COMP_IQK, DBG_LOUD, ("rx_x = %x;;rx_y = %x ====>fill to IQC\n", rx_x>>1, rx_y>>1)); + RT_TRACE(COMP_IQK, DBG_LOUD, ("0xc10 = %x ====>fill to IQC\n", rtl_read_dword(rtlpriv, 0xc10))); + } + break; + default: + break; + }; +} + + + +#define cal_num 10 + +void _rtl8821ae_iqk_tx( + struct ieee80211_hw *hw, + enum radio_path path + ) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + + u32 tx_fail, rx_fail, delay_count, iqk_ready, cal_retry, cal = 0, temp_reg65; + int tx_x = 0, tx_y = 0, rx_x = 0, rx_y = 0, tx_average = 0, rx_average = 0; + int tx_x0[cal_num], tx_y0[cal_num], tx_x0_rxk[cal_num], tx_y0_rxk[cal_num], rx_x0[cal_num], rx_y0[cal_num]; + bool tx0iqkok = false, rx0iqkok = false; + bool vdf_enable = false; + int i, k, vdf_y[3], vdf_x[3], tx_dt[3], rx_dt[3], ii, dx = 0, dy = 0, tx_finish = 0, rx_finish = 0; + + + RT_TRACE(COMP_IQK, DBG_LOUD, + ("BandWidth = %d.\n", + rtlphy->current_chan_bw)); + if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_80){ + vdf_enable = true; + } + + while (cal < cal_num) { + switch (path) { + case RF90_PATH_A: + { + temp_reg65 = rtl_get_rfreg(hw, path, 0x65, 0xffffffff); + //Path-A LOK + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); /*[31] = 0 --> Page C*/ + /*========Path-A AFE all on========*/ + /*Port 0 DAC/ADC on*/ + rtl_write_dword(rtlpriv, 0xc60, 0x77777777); + rtl_write_dword(rtlpriv, 0xc64, 0x77777777); + rtl_write_dword(rtlpriv, 0xc68, 0x19791979); + rtl_write_dword(rtlpriv, 0xc6c, 0x19791979); + rtl_write_dword(rtlpriv, 0xc70, 0x19791979); + rtl_write_dword(rtlpriv, 0xc74, 0x19791979); + rtl_write_dword(rtlpriv, 0xc78, 0x19791979); + rtl_write_dword(rtlpriv, 0xc7c, 0x19791979); + rtl_write_dword(rtlpriv, 0xc80, 0x19791979); + rtl_write_dword(rtlpriv, 0xc84, 0x19791979); + + rtl_set_bbreg(hw, 0xc00, 0xf, 0x4); /*hardware 3-wire off*/ + + // LOK Setting + //====== LOK ====== + /*DAC/ADC sampling rate (160 MHz)*/ + rtl_set_bbreg(hw, 0xc5c, BIT(26) | BIT(25) | BIT(24), 0x7); + + // 2. LoK RF Setting (at BW = 20M) + rtl_set_rfreg(hw, path, 0xef, RFREG_OFFSET_MASK, 0x80002); + rtl_set_rfreg(hw, path, 0x18, 0x00c00, 0x3); // BW 20M + rtl_set_rfreg(hw, path, 0x30, RFREG_OFFSET_MASK, 0x20000); + rtl_set_rfreg(hw, path, 0x31, RFREG_OFFSET_MASK, 0x0003f); + rtl_set_rfreg(hw, path, 0x32, RFREG_OFFSET_MASK, 0xf3fc3); + rtl_set_rfreg(hw, path, 0x65, RFREG_OFFSET_MASK, 0x931d5); + rtl_set_rfreg(hw, path, 0x8f, RFREG_OFFSET_MASK, 0x8a001); + rtl_set_bbreg(hw, 0xcb8, 0xf, 0xd); + rtl_write_dword(rtlpriv, 0x90c, 0x00008000); + rtl_write_dword(rtlpriv, 0xb00, 0x03000100); + rtl_set_bbreg(hw, 0xc94, BIT(0), 0x1); + rtl_write_dword(rtlpriv, 0x978, 0x29002000);// TX (X,Y) + rtl_write_dword(rtlpriv, 0x97c, 0xa9002000);// RX (X,Y) + rtl_write_dword(rtlpriv, 0x984, 0x00462910);// [0]:AGC_en, [15]:idac_K_Mask + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); // [31] = 1 --> Page C1 + rtl_write_dword(rtlpriv, 0xc88, 0x821403f4); + + if (rtlhal->current_bandtype) + rtl_write_dword(rtlpriv, 0xc8c, 0x68163e96); + else + rtl_write_dword(rtlpriv, 0xc8c, 0x28163e96); + + rtl_write_dword(rtlpriv, 0xc80, 0x18008c10);// TX_Tone_idx[9:0], TxK_Mask[29] TX_Tone = 16 + rtl_write_dword(rtlpriv, 0xc84, 0x38008c10);// RX_Tone_idx[9:0], RxK_Mask[29] + rtl_write_dword(rtlpriv, 0xcb8, 0x00100000);// cb8[20] N SI/PI ϥv iqk_dpk module + rtl_write_dword(rtlpriv, 0x980, 0xfa000000); + rtl_write_dword(rtlpriv, 0x980, 0xf8000000); + + mdelay(10); //Delay 10ms + rtl_write_dword(rtlpriv, 0xcb8, 0x00000000); + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); // [31] = 0 --> Page C + rtl_set_rfreg(hw, path, 0x58, 0x7fe00, rtl_get_rfreg(hw, path, 0x8, 0xffc00)); // Load LOK + + switch (rtlphy->current_chan_bw) + { + case 1: + { + rtl_set_rfreg(hw, path, 0x18, 0x00c00, 0x1); + } + break; + case 2: + { + rtl_set_rfreg(hw, path, 0x18, 0x00c00, 0x0); + } + break; + default: + break; + + } + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); // [31] = 1 --> Page C1 + + // 3. TX RF Setting + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); // [31] = 0 --> Page C + rtl_set_rfreg(hw, path, 0xef, RFREG_OFFSET_MASK, 0x80000); + rtl_set_rfreg(hw, path, 0x30, RFREG_OFFSET_MASK, 0x20000); + rtl_set_rfreg(hw, path, 0x31, RFREG_OFFSET_MASK, 0x0003f); + rtl_set_rfreg(hw, path, 0x32, RFREG_OFFSET_MASK, 0xf3fc3); + rtl_set_rfreg(hw, path, 0x65, RFREG_OFFSET_MASK, 0x931d5); + rtl_set_rfreg(hw, path, 0x8f, RFREG_OFFSET_MASK, 0x8a001); + rtl_set_rfreg(hw, path, 0xef, RFREG_OFFSET_MASK, 0x00000); + //ODM_SetBBReg(pDM_Odm, 0xcb8, 0xf, 0xd); + rtl_write_dword(rtlpriv, 0x90c, 0x00008000); + rtl_write_dword(rtlpriv, 0xb00, 0x03000100); + rtl_set_bbreg(hw, 0xc94, BIT(0), 0x1); + rtl_write_dword(rtlpriv, 0x978, 0x29002000);// TX (X,Y) + rtl_write_dword(rtlpriv, 0x97c, 0xa9002000);// RX (X,Y) + rtl_write_dword(rtlpriv, 0x984, 0x0046a910);// [0]:AGC_en, [15]:idac_K_Mask + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); // [31] = 1 --> Page C1 + rtl_write_dword(rtlpriv, 0xc88, 0x821403f1); + if (rtlhal->current_bandtype) + rtl_write_dword(rtlpriv, 0xc8c, 0x40163e96); + else + rtl_write_dword(rtlpriv, 0xc8c, 0x00163e96); + + if (vdf_enable == 1){ + RT_TRACE(COMP_IQK, DBG_LOUD, ("VDF_enable\n")); + for (k = 0;k <= 2; k++){ + switch (k){ + case 0: + { + rtl_write_dword(rtlpriv, 0xc80, 0x18008c38);// TX_Tone_idx[9:0], TxK_Mask[29] TX_Tone = 16 + rtl_write_dword(rtlpriv, 0xc84, 0x38008c38);// RX_Tone_idx[9:0], RxK_Mask[29] + rtl_set_bbreg(hw, 0xce8, BIT(31), 0x0); + } + break; + case 1: + { + rtl_set_bbreg(hw, 0xc80, BIT(28), 0x0); + rtl_set_bbreg(hw, 0xc84, BIT(28), 0x0); + rtl_set_bbreg(hw, 0xce8, BIT(31), 0x0); + } + break; + case 2: + { + RT_TRACE(COMP_IQK, DBG_LOUD, ("vdf_y[1] = %x;;;vdf_y[0] = %x\n", vdf_y[1]>>21 & 0x00007ff, vdf_y[0]>>21 & 0x00007ff)); + RT_TRACE(COMP_IQK, DBG_LOUD, ("vdf_x[1] = %x;;;vdf_x[0] = %x\n", vdf_x[1]>>21 & 0x00007ff, vdf_x[0]>>21 & 0x00007ff)); + tx_dt[cal] = (vdf_y[1]>>20)-(vdf_y[0]>>20); + tx_dt[cal] = ((16*tx_dt[cal])*10000/15708); + tx_dt[cal] = (tx_dt[cal] >> 1 )+(tx_dt[cal] & BIT(0)); + rtl_write_dword(rtlpriv, 0xc80, 0x18008c20);// TX_Tone_idx[9:0], TxK_Mask[29] TX_Tone = 16 + rtl_write_dword(rtlpriv, 0xc84, 0x38008c20);// RX_Tone_idx[9:0], RxK_Mask[29] + rtl_set_bbreg(hw, 0xce8, BIT(31), 0x1); + rtl_set_bbreg(hw, 0xce8, 0x3fff0000, tx_dt[cal] & 0x00003fff); + } + break; + default: + break; + } + rtl_write_dword(rtlpriv, 0xcb8, 0x00100000);// cb8[20] N SI/PI ϥv iqk_dpk module + cal_retry = 0; + while(1){ + // one shot + rtl_write_dword(rtlpriv, 0x980, 0xfa000000); + rtl_write_dword(rtlpriv, 0x980, 0xf8000000); + + mdelay(10); //Delay 10ms + rtl_write_dword(rtlpriv, 0xcb8, 0x00000000); + delay_count = 0; + while (1){ + iqk_ready = rtl_get_bbreg(hw, 0xd00, BIT(10)); + if ((~iqk_ready) || (delay_count>20)){ + break; + } + else{ + mdelay(1); + delay_count++; + } + } + + if (delay_count < 20){ // If 20ms No Result, then cal_retry++ + // ============TXIQK Check============== + tx_fail = rtl_get_bbreg(hw, 0xd00, BIT(12)); + + if (~tx_fail){ + rtl_write_dword(rtlpriv, 0xcb8, 0x02000000); + vdf_x[k] = rtl_get_bbreg(hw, 0xd00, 0x07ff0000)<<21; + rtl_write_dword(rtlpriv, 0xcb8, 0x04000000); + vdf_y[k] = rtl_get_bbreg(hw, 0xd00, 0x07ff0000)<<21; + tx0iqkok = true; + break; + } + else{ + rtl_set_bbreg(hw, 0xccc, 0x000007ff, 0x0); + rtl_set_bbreg(hw, 0xcd4, 0x000007ff, 0x200); + tx0iqkok = false; + cal_retry++; + if (cal_retry == 10) { + break; + } + } + } + else{ + tx0iqkok = false; + cal_retry++; + if (cal_retry == 10){ + break; + } + } + } + } + if (k == 3){ + tx_x0[cal] = vdf_x[k-1] ; + tx_y0[cal] = vdf_y[k-1]; + } + } + + else { + rtl_write_dword(rtlpriv, 0xc80, 0x18008c10);// TX_Tone_idx[9:0], TxK_Mask[29] TX_Tone = 16 + rtl_write_dword(rtlpriv, 0xc84, 0x38008c10);// RX_Tone_idx[9:0], RxK_Mask[29] + rtl_write_dword(rtlpriv, 0xcb8, 0x00100000);// cb8[20] N SI/PI ϥv iqk_dpk module + cal_retry = 0; + while(1){ + // one shot + rtl_write_dword(rtlpriv, 0x980, 0xfa000000); + rtl_write_dword(rtlpriv, 0x980, 0xf8000000); + + mdelay(10); //Delay 10ms + rtl_write_dword(rtlpriv, 0xcb8, 0x00000000); + delay_count = 0; + while (1){ + iqk_ready = rtl_get_bbreg(hw, 0xd00, BIT(10)); + if ((~iqk_ready) || (delay_count>20)) { + break; + } + else{ + mdelay(1); + delay_count++; + } + } + + if (delay_count < 20){ // If 20ms No Result, then cal_retry++ + // ============TXIQK Check============== + tx_fail = rtl_get_bbreg(hw, 0xd00, BIT(12)); + + if (~tx_fail){ + rtl_write_dword(rtlpriv, 0xcb8, 0x02000000); + tx_x0[cal] = rtl_get_bbreg(hw, 0xd00, 0x07ff0000)<<21; + rtl_write_dword(rtlpriv, 0xcb8, 0x04000000); + tx_y0[cal] = rtl_get_bbreg(hw, 0xd00, 0x07ff0000)<<21; + tx0iqkok = true; + break; + } + else{ + rtl_set_bbreg(hw, 0xccc, 0x000007ff, 0x0); + rtl_set_bbreg(hw, 0xcd4, 0x000007ff, 0x200); + tx0iqkok = false; + cal_retry++; + if (cal_retry == 10) { + break; + } + } + } + else{ + tx0iqkok = false; + cal_retry++; + if (cal_retry == 10) + break; + } + } + } + + + if (tx0iqkok == false) + break; // TXK fail, Don't do RXK + + if (vdf_enable == 1){ + rtl_set_bbreg(hw, 0xce8, BIT(31), 0x0); // TX VDF Disable + RT_TRACE(COMP_IQK, DBG_LOUD, ("RXVDF Start\n")); + for (k = 0;k <= 2; k++){ + //====== RX mode TXK (RXK Step 1) ====== + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); // [31] = 0 --> Page C + // 1. TX RF Setting + rtl_set_rfreg(hw, path, 0xef, RFREG_OFFSET_MASK, 0x80000); + rtl_set_rfreg(hw, path, 0x30, RFREG_OFFSET_MASK, 0x30000); + rtl_set_rfreg(hw, path, 0x31, RFREG_OFFSET_MASK, 0x00029); + rtl_set_rfreg(hw, path, 0x32, RFREG_OFFSET_MASK, 0xd7ffb); + rtl_set_rfreg(hw, path, 0x65, RFREG_OFFSET_MASK, temp_reg65); + rtl_set_rfreg(hw, path, 0x8f, RFREG_OFFSET_MASK, 0x8a001); + rtl_set_rfreg(hw, path, 0xef, RFREG_OFFSET_MASK, 0x00000); + + rtl_set_bbreg(hw, 0xcb8, 0xf, 0xd); + rtl_write_dword(rtlpriv, 0x978, 0x29002000);// TX (X,Y) + rtl_write_dword(rtlpriv, 0x97c, 0xa9002000);// RX (X,Y) + rtl_write_dword(rtlpriv, 0x984, 0x0046a910);// [0]:AGC_en, [15]:idac_K_Mask + rtl_write_dword(rtlpriv, 0x90c, 0x00008000); + rtl_write_dword(rtlpriv, 0xb00, 0x03000100); + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); // [31] = 1 --> Page C1 + switch (k){ + case 0: + { + rtl_write_dword(rtlpriv, 0xc80, 0x18008c38);// TX_Tone_idx[9:0], TxK_Mask[29] TX_Tone = 16 + rtl_write_dword(rtlpriv, 0xc84, 0x38008c38);// RX_Tone_idx[9:0], RxK_Mask[29] + rtl_set_bbreg(hw, 0xce8, BIT(30), 0x0); + } + break; + case 1: + { + rtl_write_dword(rtlpriv, 0xc80, 0x08008c38);// TX_Tone_idx[9:0], TxK_Mask[29] TX_Tone = 16 + rtl_write_dword(rtlpriv, 0xc84, 0x28008c38);// RX_Tone_idx[9:0], RxK_Mask[29] + rtl_set_bbreg(hw, 0xce8, BIT(30), 0x0); + } + break; + case 2: + { + RT_TRACE(COMP_IQK, DBG_LOUD, ("VDF_Y[1] = %x;;;VDF_Y[0] = %x\n", vdf_y[1]>>21 & 0x00007ff, vdf_y[0]>>21 & 0x00007ff)); + RT_TRACE(COMP_IQK, DBG_LOUD, ("VDF_X[1] = %x;;;VDF_X[0] = %x\n", vdf_x[1]>>21 & 0x00007ff, vdf_x[0]>>21 & 0x00007ff)); + rx_dt[cal] = (vdf_y[1]>>20)-(vdf_y[0]>>20); + RT_TRACE(COMP_IQK, DBG_LOUD, ("Rx_dt = %d\n", rx_dt[cal])); + rx_dt[cal] = ((16*rx_dt[cal])*10000/13823); + rx_dt[cal] = (rx_dt[cal] >> 1 )+(rx_dt[cal] & BIT(0)); + rtl_write_dword(rtlpriv, 0xc80, 0x18008c20);// TX_Tone_idx[9:0], TxK_Mask[29] TX_Tone = 16 + rtl_write_dword(rtlpriv, 0xc84, 0x38008c20);// RX_Tone_idx[9:0], RxK_Mask[29] + rtl_set_bbreg(hw, 0xce8, 0x00003fff, rx_dt[cal] & 0x00003fff); + } + break; + default: + break; + } + rtl_write_dword(rtlpriv, 0xc88, 0x821603e0); + rtl_write_dword(rtlpriv, 0xc8c, 0x68163e96); + rtl_write_dword(rtlpriv, 0xcb8, 0x00100000);// cb8[20] N SI/PI ϥv iqk_dpk module + cal_retry = 0; + while(1){ + // one shot + rtl_write_dword(rtlpriv, 0x980, 0xfa000000); + rtl_write_dword(rtlpriv, 0x980, 0xf8000000); + + mdelay(10); //Delay 10ms + rtl_write_dword(rtlpriv, 0xcb8, 0x00000000); + delay_count = 0; + while (1){ + iqk_ready = rtl_get_bbreg(hw, 0xd00, BIT(10)); + if ((~iqk_ready)||(delay_count>20)){ + break; + } + else{ + mdelay(1); + delay_count++; + } + } + + if (delay_count < 20){ // If 20ms No Result, then cal_retry++ + // ============TXIQK Check============== + tx_fail = rtl_get_bbreg(hw, 0xd00, BIT(12)); + + if (~tx_fail){ + rtl_write_dword(rtlpriv, 0xcb8, 0x02000000); + tx_x0_rxk[cal] = rtl_get_bbreg(hw, 0xd00, 0x07ff0000)<<21; + rtl_write_dword(rtlpriv, 0xcb8, 0x04000000); + tx_y0_rxk[cal] = rtl_get_bbreg(hw, 0xd00, 0x07ff0000)<<21; + tx0iqkok = true; + break; + } + else{ + tx0iqkok = false; + cal_retry++; + if (cal_retry == 10) + break; + } + } + else{ + tx0iqkok = false; + cal_retry++; + if (cal_retry == 10) + break; + } + } + + if (tx0iqkok == false){ //If RX mode TXK fail, then take TXK Result + tx_x0_rxk[cal] = tx_x0[cal]; + tx_y0_rxk[cal] = tx_y0[cal]; + tx0iqkok = true; + RT_TRACE(COMP_IQK, DBG_LOUD, ("RXK Step 1 fail\n")); + } + + + //====== RX IQK ====== + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); // [31] = 0 --> Page C + // 1. RX RF Setting + rtl_set_rfreg(hw, path, 0xef, RFREG_OFFSET_MASK, 0x80000); + rtl_set_rfreg(hw, path, 0x30, RFREG_OFFSET_MASK, 0x30000); + rtl_set_rfreg(hw, path, 0x31, RFREG_OFFSET_MASK, 0x0002f); + rtl_set_rfreg(hw, path, 0x32, RFREG_OFFSET_MASK, 0xfffbb); + rtl_set_rfreg(hw, path, 0x8f, RFREG_OFFSET_MASK, 0x88001); + rtl_set_rfreg(hw, path, 0x65, RFREG_OFFSET_MASK, 0x931d8); + rtl_set_rfreg(hw, path, 0xef, RFREG_OFFSET_MASK, 0x00000); + + rtl_set_bbreg(hw, 0x978, 0x03FF8000, (tx_x0_rxk[cal])>>21&0x000007ff); + rtl_set_bbreg(hw, 0x978, 0x000007FF, (tx_y0_rxk[cal])>>21&0x000007ff); + rtl_set_bbreg(hw, 0x978, BIT(31), 0x1); + rtl_set_bbreg(hw, 0x97c, BIT(31), 0x0); + rtl_set_bbreg(hw, 0xcb8, 0xF, 0xe); + rtl_write_dword(rtlpriv, 0x90c, 0x00008000); + rtl_write_dword(rtlpriv, 0x984, 0x0046a911); + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); // [31] = 1 --> Page C1 + rtl_set_bbreg(hw, 0xc80, BIT(29), 0x1); + rtl_set_bbreg(hw, 0xc84, BIT(29), 0x0); + rtl_write_dword(rtlpriv, 0xc88, 0x02140119); + + rtl_write_dword(rtlpriv, 0xc8c, 0x28160d00); /* pDM_Odm->SupportInterface == 1 */ + + if (k==2){ + rtl_set_bbreg(hw, 0xce8, BIT(30), 0x1); //RX VDF Enable + } + rtl_write_dword(rtlpriv, 0xcb8, 0x00100000);// cb8[20] N SI/PI ϥv iqk_dpk module + + cal_retry = 0; + while(1){ + // one shot + rtl_write_dword(rtlpriv, 0x980, 0xfa000000); + rtl_write_dword(rtlpriv, 0x980, 0xf8000000); + + mdelay(10); //Delay 10ms + rtl_write_dword(rtlpriv, 0xcb8, 0x00000000); + delay_count = 0; + while (1){ + iqk_ready = rtl_get_bbreg(hw, 0xd00, BIT(10)); + if ((~iqk_ready)||(delay_count>20)){ + break; + } + else{ + mdelay(1); + delay_count++; + } + } + + if (delay_count < 20){ // If 20ms No Result, then cal_retry++ + // ============RXIQK Check============== + rx_fail = rtl_get_bbreg(hw, 0xd00, BIT(11)); + if (rx_fail == 0){ + rtl_write_dword(rtlpriv, 0xcb8, 0x06000000); + vdf_x[k] = rtl_get_bbreg(hw, 0xd00, 0x07ff0000)<<21; + rtl_write_dword(rtlpriv, 0xcb8, 0x08000000); + vdf_y[k] = rtl_get_bbreg(hw, 0xd00, 0x07ff0000)<<21; + rx0iqkok = true; + break; + } + else{ + rtl_set_bbreg(hw, 0xc10, 0x000003ff, 0x200>>1); + rtl_set_bbreg(hw, 0xc10, 0x03ff0000, 0x0>>1); + rx0iqkok = false; + cal_retry++; + if (cal_retry == 10) + break; + + } + } + else{ + rx0iqkok = false; + cal_retry++; + if (cal_retry == 10) + break; + } + } + + } + if (k == 3){ + rx_x0[cal] = vdf_x[k-1] ; + rx_y0[cal] = vdf_y[k-1]; + } + rtl_set_bbreg(hw, 0xce8, BIT(31), 0x1); // TX VDF Enable + } + + else{ + //====== RX mode TXK (RXK Step 1) ====== + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); // [31] = 0 --> Page C + // 1. TX RF Setting + rtl_set_rfreg(hw, path, 0xef, RFREG_OFFSET_MASK, 0x80000); + rtl_set_rfreg(hw, path, 0x30, RFREG_OFFSET_MASK, 0x30000); + rtl_set_rfreg(hw, path, 0x31, RFREG_OFFSET_MASK, 0x00029); + rtl_set_rfreg(hw, path, 0x32, RFREG_OFFSET_MASK, 0xd7ffb); + rtl_set_rfreg(hw, path, 0x65, RFREG_OFFSET_MASK, temp_reg65); + rtl_set_rfreg(hw, path, 0x8f, RFREG_OFFSET_MASK, 0x8a001); + rtl_set_rfreg(hw, path, 0xef, RFREG_OFFSET_MASK, 0x00000); + rtl_write_dword(rtlpriv, 0x90c, 0x00008000); + rtl_write_dword(rtlpriv, 0xb00, 0x03000100); + rtl_write_dword(rtlpriv, 0x984, 0x0046a910);// [0]:AGC_en, [15]:idac_K_Mask + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); // [31] = 1 --> Page C1 + rtl_write_dword(rtlpriv, 0xc80, 0x18008c10);// TX_Tone_idx[9:0], TxK_Mask[29] TX_Tone = 16 + rtl_write_dword(rtlpriv, 0xc84, 0x38008c10);// RX_Tone_idx[9:0], RxK_Mask[29] + rtl_write_dword(rtlpriv, 0xc88, 0x821603e0); + //ODM_Write4Byte(pDM_Odm, 0xc8c, 0x68163e96); + rtl_write_dword(rtlpriv, 0xcb8, 0x00100000);// cb8[20] N SI/PI ϥv iqk_dpk module + cal_retry = 0; + while(1){ + // one shot + rtl_write_dword(rtlpriv, 0x980, 0xfa000000); + rtl_write_dword(rtlpriv, 0x980, 0xf8000000); + + mdelay(10); //Delay 10ms + rtl_write_dword(rtlpriv, 0xcb8, 0x00000000); + delay_count = 0; + while (1){ + iqk_ready = rtl_get_bbreg(hw, 0xd00, BIT(10)); + if ((~iqk_ready)||(delay_count>20)){ + break; + } + else{ + mdelay(1); + delay_count++; + } + } + + if (delay_count < 20){ // If 20ms No Result, then cal_retry++ + // ============TXIQK Check============== + tx_fail = rtl_get_bbreg(hw, 0xd00, BIT(12)); + + if (~tx_fail){ + rtl_write_dword(rtlpriv, 0xcb8, 0x02000000); + tx_x0_rxk[cal] = rtl_get_bbreg(hw, 0xd00, 0x07ff0000)<<21; + rtl_write_dword(rtlpriv, 0xcb8, 0x04000000); + tx_y0_rxk[cal] = rtl_get_bbreg(hw, 0xd00, 0x07ff0000)<<21; + tx0iqkok = true; + break; + } + else{ + tx0iqkok = false; + cal_retry++; + if (cal_retry == 10) + break; + } + } + else{ + tx0iqkok = false; + cal_retry++; + if (cal_retry == 10) + break; + } + } + + + if (tx0iqkok == false){ //If RX mode TXK fail, then take TXK Result + tx_x0_rxk[cal] = tx_x0[cal]; + tx_y0_rxk[cal] = tx_y0[cal]; + tx0iqkok = true; + RT_TRACE(COMP_IQK, DBG_LOUD, ("1")); + } + + + //====== RX IQK ====== + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); // [31] = 0 --> Page C + // 1. RX RF Setting + rtl_set_rfreg(hw, path, 0xef, RFREG_OFFSET_MASK, 0x80000); + rtl_set_rfreg(hw, path, 0x30, RFREG_OFFSET_MASK, 0x30000); + rtl_set_rfreg(hw, path, 0x31, RFREG_OFFSET_MASK, 0x0002f); + rtl_set_rfreg(hw, path, 0x32, RFREG_OFFSET_MASK, 0xfffbb); + rtl_set_rfreg(hw, path, 0x8f, RFREG_OFFSET_MASK, 0x88001); + rtl_set_rfreg(hw, path, 0x65, RFREG_OFFSET_MASK, 0x931d8); + rtl_set_rfreg(hw, path, 0xef, RFREG_OFFSET_MASK, 0x00000); + + rtl_set_bbreg(hw, 0x978, 0x03FF8000, (tx_x0_rxk[cal])>>21&0x000007ff); + rtl_set_bbreg(hw, 0x978, 0x000007FF, (tx_y0_rxk[cal])>>21&0x000007ff); + rtl_set_bbreg(hw, 0x978, BIT(31), 0x1); + rtl_set_bbreg(hw, 0x97c, BIT(31), 0x0); + //ODM_SetBBReg(pDM_Odm, 0xcb8, 0xF, 0xe); + rtl_write_dword(rtlpriv, 0x90c, 0x00008000); + rtl_write_dword(rtlpriv, 0x984, 0x0046a911); + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); // [31] = 1 --> Page C1 + rtl_write_dword(rtlpriv, 0xc80, 0x38008c10);// TX_Tone_idx[9:0], TxK_Mask[29] TX_Tone = 16 + rtl_write_dword(rtlpriv, 0xc84, 0x18008c10);// RX_Tone_idx[9:0], RxK_Mask[29] + rtl_write_dword(rtlpriv, 0xc88, 0x02140119); + + rtl_write_dword(rtlpriv, 0xc8c, 0x28160d00); /*pDM_Odm->SupportInterface == 1*/ + + rtl_write_dword(rtlpriv, 0xcb8, 0x00100000);// cb8[20] N SI/PI ϥv iqk_dpk module + + cal_retry = 0; + while(1){ + // one shot + rtl_write_dword(rtlpriv, 0x980, 0xfa000000); + rtl_write_dword(rtlpriv, 0x980, 0xf8000000); + + mdelay(10); //Delay 10ms + rtl_write_dword(rtlpriv, 0xcb8, 0x00000000); + delay_count = 0; + while (1){ + iqk_ready = rtl_get_bbreg(hw, 0xd00, BIT(10)); + if ((~iqk_ready)||(delay_count>20)){ + break; + } + else{ + mdelay(1); + delay_count++; + } + } + + if (delay_count < 20){ // If 20ms No Result, then cal_retry++ + // ============RXIQK Check============== + rx_fail = rtl_get_bbreg(hw, 0xd00, BIT(11)); + if (rx_fail == 0){ + /* + ODM_Write4Byte(pDM_Odm, 0xcb8, 0x05000000); + reg1 = ODM_GetBBReg(pDM_Odm, 0xd00, 0xffffffff); + ODM_Write4Byte(pDM_Odm, 0xcb8, 0x06000000); + reg2 = ODM_GetBBReg(pDM_Odm, 0xd00, 0x0000001f); + DbgPrint("reg1 = %d, reg2 = %d", reg1, reg2); + Image_Power = (reg2<<32)+reg1; + DbgPrint("Before PW = %d\n", Image_Power); + ODM_Write4Byte(pDM_Odm, 0xcb8, 0x07000000); + reg1 = ODM_GetBBReg(pDM_Odm, 0xd00, 0xffffffff); + ODM_Write4Byte(pDM_Odm, 0xcb8, 0x08000000); + reg2 = ODM_GetBBReg(pDM_Odm, 0xd00, 0x0000001f); + Image_Power = (reg2<<32)+reg1; + DbgPrint("After PW = %d\n", Image_Power); + */ + + rtl_write_dword(rtlpriv, 0xcb8, 0x06000000); + rx_x0[cal] = rtl_get_bbreg(hw, 0xd00, 0x07ff0000)<<21; + rtl_write_dword(rtlpriv, 0xcb8, 0x08000000); + rx_y0[cal] = rtl_get_bbreg(hw, 0xd00, 0x07ff0000)<<21; + rx0iqkok = true; + break; + } + else{ + rtl_set_bbreg(hw, 0xc10, 0x000003ff, 0x200>>1); + rtl_set_bbreg(hw, 0xc10, 0x03ff0000, 0x0>>1); + rx0iqkok = false; + cal_retry++; + if (cal_retry == 10) + break; + + } + } + else{ + rx0iqkok = false; + cal_retry++; + if (cal_retry == 10) + break; + } + } + } + + if (tx0iqkok) + tx_average++; + if (rx0iqkok) + rx_average++; + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); // [31] = 0 --> Page C + rtl_set_rfreg(hw, path, 0x65, RFREG_OFFSET_MASK, temp_reg65); + } + break; + default: + break; + } + cal++; + } + + // FillIQK Result + switch (path){ + case RF90_PATH_A: + { + RT_TRACE(COMP_IQK, DBG_LOUD, ("========Path_A =======\n")); + if (tx_average == 0) + break; + + for (i = 0; i < tx_average; i++){ + RT_TRACE(COMP_IQK, DBG_LOUD, (" TX_X0_RXK[%d] = %x ;; TX_Y0_RXK[%d] = %x\n", i, (tx_x0_rxk[i])>>21&0x000007ff, i, (tx_y0_rxk[i])>>21&0x000007ff)); + RT_TRACE(COMP_IQK, DBG_LOUD, ("TX_X0[%d] = %x ;; TX_Y0[%d] = %x\n", i, (tx_x0[i])>>21&0x000007ff, i, (tx_y0[i])>>21&0x000007ff)); + } + for (i = 0; i < tx_average; i++){ + for (ii = i+1; ii >21) - (tx_x0[ii]>>21); + if (dx < 3 && dx > -3){ + dy = (tx_y0[i]>>21) - (tx_y0[ii]>>21); + if (dy < 3 && dy > -3){ + tx_x = ((tx_x0[i]>>21) + (tx_x0[ii]>>21))/2; + tx_y = ((tx_y0[i]>>21) + (tx_y0[ii]>>21))/2; + tx_finish = 1; + break; + } + } + } + if (tx_finish == 1) + break; + } + + if (tx_finish == 1){ + _rtl8821ae_iqk_tx_fill_iqc(hw, path, tx_x, tx_y); // ? + } + else{ + _rtl8821ae_iqk_tx_fill_iqc(hw, path, 0x200, 0x0); + } + + if (rx_average == 0) + break; + + for (i = 0; i < rx_average; i++){ + RT_TRACE(COMP_IQK, DBG_LOUD, ("RX_X0[%d] = %x ;; RX_Y0[%d] = %x\n", i, (rx_x0[i])>>21&0x000007ff, i, (rx_y0[i])>>21&0x000007ff)); + } + for (i = 0; i < rx_average; i++){ + for (ii = i+1; ii >21) - (rx_x0[ii]>>21); + if (dx < 4 && dx > -4){ + dy = (rx_y0[i]>>21) - (rx_y0[ii]>>21); + if (dy < 4 && dy > -4){ + rx_x = ((rx_x0[i]>>21) + (rx_x0[ii]>>21))/2; + rx_y = ((rx_y0[i]>>21) + (rx_y0[ii]>>21))/2; + rx_finish = 1; + break; + } + } + } + if (rx_finish == 1) + break; + } + + if (rx_finish == 1){ + _rtl8821ae_iqk_rx_fill_iqc(hw, path, rx_x, rx_y); + } + else{ + _rtl8821ae_iqk_rx_fill_iqc(hw, path, 0x200, 0x0); + } + } + break; + default: + break; + } +} + +void _rtl8821ae_iqk_restore_rf( + struct ieee80211_hw *hw, + enum radio_path path, + u32* backup_rf_reg, + u32* rf_backup, + u32 rf_reg_num + ) +{ + u32 i; + struct rtl_priv* rtlpriv = rtl_priv(hw); + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); // [31] = 0 --> Page C + for (i = 0; i < RF_REG_NUM; i++) + rtl_set_rfreg(hw, path, backup_rf_reg[i], RFREG_OFFSET_MASK, rf_backup[i]); + + switch(path){ + case RF90_PATH_A: + { + RT_TRACE(COMP_IQK, DBG_LOUD, ("RestoreRF Path A Success!!!!\n")); + } + break; + default: + break; + } +} + +void _rtl8821ae_iqk_restore_afe( + struct ieee80211_hw *hw, + u32* afe_backup, + u32* backup_afe_reg, + u32 afe_num + ) +{ + u32 i; + struct rtl_priv* rtlpriv = rtl_priv(hw); + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); // [31] = 0 --> Page C + //Reload AFE Parameters + for (i = 0; i < afe_num; i++){ + rtl_write_dword(rtlpriv, backup_afe_reg[i], afe_backup[i]); + } + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x1); // [31] = 1 --> Page C1 + rtl_write_dword(rtlpriv, 0xc80, 0x0); + rtl_write_dword(rtlpriv, 0xc84, 0x0); + rtl_write_dword(rtlpriv, 0xc88, 0x0); + rtl_write_dword(rtlpriv, 0xc8c, 0x3c000000); + rtl_write_dword(rtlpriv, 0xc90, 0x00000080); + rtl_write_dword(rtlpriv, 0xc94, 0x00000000); + rtl_write_dword(rtlpriv, 0xcc4, 0x20040000); + rtl_write_dword(rtlpriv, 0xcc8, 0x20000000); + rtl_write_dword(rtlpriv, 0xcb8, 0x0); + RT_TRACE(COMP_IQK, DBG_LOUD, ("RestoreAFE Success!!!!\n")); +} + +void _rtl8821ae_iqk_restore_macbb( + struct ieee80211_hw *hw, + u32* macbb_backup, + u32* backup_macbb_reg, + u32 macbb_num + ) +{ + u32 i; + struct rtl_priv* rtlpriv = rtl_priv(hw); + + rtl_set_bbreg(hw, 0x82c, BIT(31), 0x0); // [31] = 0 --> Page C + //Reload MacBB Parameters + for (i = 0; i < macbb_num; i++){ + rtl_write_dword(rtlpriv, backup_macbb_reg[i], macbb_backup[i]); + } + RT_TRACE(COMP_IQK, DBG_LOUD, ("RestoreMacBB Success!!!!\n")); +} + + +#undef MACBB_REG_NUM +#undef AFE_REG_NUM +#undef RF_REG_NUM + +#define MACBB_REG_NUM 11 +#define AFE_REG_NUM 12 +#define RF_REG_NUM 3 + +static void _rtl8821ae_phy_iq_calibrate(struct ieee80211_hw *hw) +{ + u32 macbb_backup[MACBB_REG_NUM]; + u32 afe_backup[AFE_REG_NUM]; + u32 rfa_backup[RF_REG_NUM]; + u32 rfb_backup[RF_REG_NUM]; + u32 backup_macbb_reg[MACBB_REG_NUM] = {0xb00, 0x520, 0x550, 0x808, 0x90c, 0xc00, 0xc50, + 0xe00, 0xe50, 0x838, 0x82c}; + u32 backup_afe_reg[AFE_REG_NUM] = {0xc5c, 0xc60, 0xc64, 0xc68, 0xc6c, 0xc70, 0xc74, + 0xc78, 0xc7c, 0xc80, 0xc84, 0xcb8}; + u32 backup_rf_reg[RF_REG_NUM] = {0x65, 0x8f, 0x0}; + + _rtl8821ae_iqk_backup_macbb(hw, macbb_backup, backup_macbb_reg, MACBB_REG_NUM); + _rtl8821ae_iqk_backup_afe(hw, afe_backup, backup_afe_reg, AFE_REG_NUM); + _rtl8821ae_iqk_backup_rf(hw, rfa_backup, rfb_backup, backup_rf_reg, RF_REG_NUM); + + _rtl8821ae_iqk_configure_mac(hw); + _rtl8821ae_iqk_tx(hw, RF90_PATH_A); + _rtl8821ae_iqk_restore_rf(hw, RF90_PATH_A, backup_rf_reg, rfa_backup, RF_REG_NUM); + + _rtl8821ae_iqk_restore_afe(hw, afe_backup, backup_afe_reg, AFE_REG_NUM); + _rtl8821ae_iqk_restore_macbb(hw, macbb_backup, backup_macbb_reg, MACBB_REG_NUM); +} + +static void _rtl8821ae_phy_lc_calibrate(struct ieee80211_hw *hw, bool is2t) +{ + u8 tmpreg; + u32 rf_a_mode = 0, rf_b_mode = 0, lc_cal; + struct rtl_priv *rtlpriv = rtl_priv(hw); + + tmpreg = rtl_read_byte(rtlpriv, 0xd03); + + if ((tmpreg & 0x70) != 0) + rtl_write_byte(rtlpriv, 0xd03, tmpreg & 0x8F); + else + rtl_write_byte(rtlpriv, REG_TXPAUSE, 0xFF); + + if ((tmpreg & 0x70) != 0) { + rf_a_mode = rtl_get_rfreg(hw, RF90_PATH_A, 0x00, MASK12BITS); + + if (is2t) + rf_b_mode = rtl_get_rfreg(hw, RF90_PATH_B, 0x00, + MASK12BITS); + + rtl_set_rfreg(hw, RF90_PATH_A, 0x00, MASK12BITS, + (rf_a_mode & 0x8FFFF) | 0x10000); + + if (is2t) + rtl_set_rfreg(hw, RF90_PATH_B, 0x00, MASK12BITS, + (rf_b_mode & 0x8FFFF) | 0x10000); + } + lc_cal = rtl_get_rfreg(hw, RF90_PATH_A, 0x18, MASK12BITS); + + rtl_set_rfreg(hw, RF90_PATH_A, 0xb0, RFREG_OFFSET_MASK, 0xdfbe0); + /* rtl_set_rfreg(hw, RF90_PATH_A, 0x18, MASK12BITS, lc_cal | 0x08000); */ + rtl_set_rfreg(hw, RF90_PATH_A, 0x18, MASK12BITS, 0x8c0a); + + mdelay(100); + + rtl_set_rfreg(hw, RF90_PATH_A, 0xb0, RFREG_OFFSET_MASK, 0xdffe0); + + if ((tmpreg & 0x70) != 0) { + rtl_write_byte(rtlpriv, 0xd03, tmpreg); + rtl_set_rfreg(hw, RF90_PATH_A, 0x00, MASK12BITS, rf_a_mode); + + if (is2t) + rtl_set_rfreg(hw, RF90_PATH_B, 0x00, MASK12BITS, rf_b_mode); + } else { + rtl_write_byte(rtlpriv, REG_TXPAUSE, 0x00); + } +RT_TRACE(COMP_INIT,DBG_LOUD,("\n")); + +} + +static void _rtl8821ae_phy_set_rfpath_switch(struct ieee80211_hw *hw, bool main) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + //struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + //struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + RT_TRACE(COMP_INIT,DBG_LOUD,("\n")); + + if (main) + rtl_set_bbreg(hw, RA_RFE_PINMUX + 4, BIT(29) | BIT(28), 0x1); + else + rtl_set_bbreg(hw, RA_RFE_PINMUX + 4, BIT(29) | BIT(28), 0x2); +} + +#undef IQK_ADDA_REG_NUM +#undef IQK_DELAY_TIME + +void rtl8812ae_phy_iq_calibrate(struct ieee80211_hw *hw, bool b_recovery) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + if (!rtlphy->b_iqk_in_progress) + { + spin_lock(&rtlpriv->locks.iqk_lock); + rtlphy->b_iqk_in_progress = true; + spin_unlock(&rtlpriv->locks.iqk_lock); + + _rtl8812ae_phy_iq_calibrate(hw, rtlphy->current_channel); + + spin_lock(&rtlpriv->locks.iqk_lock); + rtlphy->b_iqk_in_progress = false; + spin_unlock(&rtlpriv->locks.iqk_lock); + } +} + +void rtl8812ae_reset_iqk_result(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 i; + + RT_TRACE(COMP_IQK, DBG_LOUD, + ("rtl8812ae_dm_reset_iqk_result:: settings regs %d default regs %d\n", + (int)(sizeof(rtlphy->iqk_matrix_regsetting) / + sizeof(struct iqk_matrix_regs)), + IQK_MATRIX_SETTINGS_NUM)); + + for(i = 0; i < IQK_MATRIX_SETTINGS_NUM; i++) { + { + rtlphy->iqk_matrix_regsetting[i].value[0][0] = + rtlphy->iqk_matrix_regsetting[i].value[0][2] = + rtlphy->iqk_matrix_regsetting[i].value[0][4] = + rtlphy->iqk_matrix_regsetting[i].value[0][6] = 0x100; + + rtlphy->iqk_matrix_regsetting[i].value[0][1] = + rtlphy->iqk_matrix_regsetting[i].value[0][3] = + rtlphy->iqk_matrix_regsetting[i].value[0][5] = + rtlphy->iqk_matrix_regsetting[i].value[0][7] = 0x0; + + rtlphy->iqk_matrix_regsetting[i].b_iqk_done = false; + + } + } +} + +void rtl8812ae_do_iqk(struct ieee80211_hw *hw,u8 delta_thermal_index, + u8 thermal_value, u8 threshold) +{ + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + + rtl8812ae_reset_iqk_result(hw); + + rtldm->thermalvalue_iqk= thermal_value; + rtl8812ae_phy_iq_calibrate(hw, false); +} + +void rtl8821ae_phy_iq_calibrate(struct ieee80211_hw *hw, bool b_recovery) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + if (!rtlphy->b_iqk_in_progress) + { + spin_lock(&rtlpriv->locks.iqk_lock); + rtlphy->b_iqk_in_progress = true; + spin_unlock(&rtlpriv->locks.iqk_lock); + + _rtl8821ae_phy_iq_calibrate(hw); + + spin_lock(&rtlpriv->locks.iqk_lock); + rtlphy->b_iqk_in_progress = false; + spin_unlock(&rtlpriv->locks.iqk_lock); + } +} + +void rtl8821ae_reset_iqk_result(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 i; + + RT_TRACE(COMP_IQK, DBG_LOUD, + ("rtl8812ae_dm_reset_iqk_result:: settings regs %d default regs %d\n", + (int)(sizeof(rtlphy->iqk_matrix_regsetting) / + sizeof(struct iqk_matrix_regs)), + IQK_MATRIX_SETTINGS_NUM)); + + for(i = 0; i < IQK_MATRIX_SETTINGS_NUM; i++) { + { + rtlphy->iqk_matrix_regsetting[i].value[0][0] = + rtlphy->iqk_matrix_regsetting[i].value[0][2] = + rtlphy->iqk_matrix_regsetting[i].value[0][4] = + rtlphy->iqk_matrix_regsetting[i].value[0][6] = 0x100; + + rtlphy->iqk_matrix_regsetting[i].value[0][1] = + rtlphy->iqk_matrix_regsetting[i].value[0][3] = + rtlphy->iqk_matrix_regsetting[i].value[0][5] = + rtlphy->iqk_matrix_regsetting[i].value[0][7] = 0x0; + + rtlphy->iqk_matrix_regsetting[i].b_iqk_done = false; + + } + } +} + +void rtl8821ae_do_iqk(struct ieee80211_hw *hw,u8 delta_thermal_index, + u8 thermal_value, u8 threshold) +{ + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + + rtl8821ae_reset_iqk_result(hw); + + rtldm->thermalvalue_iqk= thermal_value; + rtl8821ae_phy_iq_calibrate(hw, false); +} + +void rtl8821ae_phy_lc_calibrate(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_hal *rtlhal = &(rtlpriv->rtlhal); + u32 timeout = 2000, timecount = 0; + + + while (rtlpriv->mac80211.act_scanning && timecount < timeout) { + udelay(50); + timecount += 50; + } + + rtlphy->lck_inprogress = true; + RTPRINT(rtlpriv, FINIT, INIT_IQK, + ("LCK:Start!!! currentband %x delay %d ms\n", + rtlhal->current_bandtype, timecount)); + + _rtl8821ae_phy_lc_calibrate(hw, false); + + rtlphy->lck_inprogress = false; +} + +void rtl8821ae_phy_ap_calibrate(struct ieee80211_hw *hw, char delta) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + if (rtlphy->b_apk_done) + return; + + return; +} + +void rtl8821ae_phy_set_rfpath_switch(struct ieee80211_hw *hw, bool bmain) +{ + _rtl8821ae_phy_set_rfpath_switch(hw, bmain); +} + +bool rtl8821ae_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + bool b_postprocessing = false; + + RT_TRACE(COMP_CMD, DBG_TRACE, + ("-->IO Cmd(%#x), set_io_inprogress(%d)\n", + iotype, rtlphy->set_io_inprogress)); + do { + switch (iotype) { + case IO_CMD_RESUME_DM_BY_SCAN: + RT_TRACE(COMP_CMD, DBG_TRACE, + ("[IO CMD] Resume DM after scan.\n")); + b_postprocessing = true; + break; + case IO_CMD_PAUSE_BAND0_DM_BY_SCAN: + case IO_CMD_PAUSE_BAND1_DM_BY_SCAN: + RT_TRACE(COMP_CMD, DBG_TRACE, + ("[IO CMD] Pause DM before scan.\n")); + b_postprocessing = true; + break; + default: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("switch case not process \n")); + break; + } + } while (false); + if (b_postprocessing && !rtlphy->set_io_inprogress) { + rtlphy->set_io_inprogress = true; + rtlphy->current_io_type = iotype; + } else { + return false; + } + rtl8821ae_phy_set_io(hw); + RT_TRACE(COMP_CMD, DBG_TRACE, ("IO Type(%#x)\n", iotype)); + return true; +} + +static void rtl8821ae_phy_set_io(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + RT_TRACE(COMP_CMD, DBG_TRACE, + ("--->Cmd(%#x), set_io_inprogress(%d)\n", + rtlphy->current_io_type, rtlphy->set_io_inprogress)); + switch (rtlphy->current_io_type) { + case IO_CMD_RESUME_DM_BY_SCAN: + if (rtlpriv->mac80211.opmode== NL80211_IFTYPE_ADHOC) + _rtl8821ae_resume_tx_beacon(hw); + rtl8821ae_dm_write_dig(hw, rtlphy->initgain_backup.xaagccore1); + rtl8821ae_dm_write_cck_cca_thres(hw, rtlphy->initgain_backup.cca); + break; + case IO_CMD_PAUSE_BAND0_DM_BY_SCAN: + if (rtlpriv->mac80211.opmode== NL80211_IFTYPE_ADHOC) + _rtl8821ae_stop_tx_beacon(hw); + rtlphy->initgain_backup.xaagccore1 = dm_digtable.cur_igvalue; + rtl8821ae_dm_write_dig(hw, 0x17); + rtlphy->initgain_backup.cca = dm_digtable.cur_cck_cca_thres; + rtl8821ae_dm_write_cck_cca_thres(hw, 0x40); + break; + case IO_CMD_PAUSE_BAND1_DM_BY_SCAN: + break; + default: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("switch case not process \n")); + break; + } + rtlphy->set_io_inprogress = false; + RT_TRACE(COMP_CMD, DBG_TRACE, + ("(%#x)\n", rtlphy->current_io_type)); +} + +static void rtl8821ae_phy_set_rf_on(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtl_write_byte(rtlpriv, REG_SPS0_CTRL, 0x2b); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, 0xE3); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, 0xE2); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, 0xE3); + rtl_write_byte(rtlpriv, REG_TXPAUSE, 0x00); +} + +#if 0 +static void _rtl8821ae_phy_set_rf_sleep(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + rtl_write_byte(rtlpriv, REG_TXPAUSE, 0xFF); + rtl_set_rfreg(hw, RF90_PATH_A, 0x00, RFREG_OFFSET_MASK, 0x00); + /*rtl_write_byte(rtlpriv, REG_APSD_CTRL, 0x40); + u4b_tmp = rtl_get_rfreg(hw, RF90_PATH_A, 0, RFREG_OFFSET_MASK); + while (u4b_tmp != 0 && delay > 0) { + rtl_write_byte(rtlpriv, REG_APSD_CTRL, 0x0); + rtl_set_rfreg(hw, RF90_PATH_A, 0x00, RFREG_OFFSET_MASK, 0x00); + rtl_write_byte(rtlpriv, REG_APSD_CTRL, 0x40); + u4b_tmp = rtl_get_rfreg(hw, RF90_PATH_A, 0, RFREG_OFFSET_MASK); + delay--; + } + if (delay == 0) { + rtl_write_byte(rtlpriv, REG_APSD_CTRL, 0x00); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, 0xE2); + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, 0xE3); + rtl_write_byte(rtlpriv, REG_TXPAUSE, 0x00); + RT_TRACE(COMP_POWER, DBG_TRACE, + ("Switch RF timeout !!!.\n")); + return; + }*/ + rtl_write_byte(rtlpriv, REG_SYS_FUNC_EN, 0xE2); + rtl_write_byte(rtlpriv, REG_SPS0_CTRL, 0x22); +} +#endif + +static bool _rtl8821ae_phy_set_rf_power_state(struct ieee80211_hw *hw, + enum rf_pwrstate rfpwr_state) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci_priv *pcipriv = rtl_pcipriv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + bool bresult = true; + u8 i, queue_id; + struct rtl8192_tx_ring *ring = NULL; + + switch (rfpwr_state) { + case ERFON:{ + if ((ppsc->rfpwr_state == ERFOFF) && + RT_IN_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC)) { + bool rtstatus = false; + u32 InitializeCount = 0; + do { + InitializeCount++; + RT_TRACE(COMP_RF, DBG_DMESG, + ("IPS Set eRf nic enable\n")); + rtstatus = rtl_ps_enable_nic(hw); + } while ((rtstatus != true) + && (InitializeCount < 10)); + RT_CLEAR_PS_LEVEL(ppsc, + RT_RF_OFF_LEVL_HALT_NIC); + } else { + RT_TRACE(COMP_RF, DBG_DMESG, + ("Set ERFON sleeped:%d ms\n", + jiffies_to_msecs(jiffies - + ppsc-> + last_sleep_jiffies))); + ppsc->last_awake_jiffies = jiffies; + rtl8821ae_phy_set_rf_on(hw); + } + if (mac->link_state == MAC80211_LINKED) { + rtlpriv->cfg->ops->led_control(hw, + LED_CTL_LINK); + } else { + rtlpriv->cfg->ops->led_control(hw, + LED_CTL_NO_LINK); + } + break; + } + case ERFOFF:{ + for (queue_id = 0, i = 0; + queue_id < RTL_PCI_MAX_TX_QUEUE_COUNT;) { + ring = &pcipriv->dev.tx_ring[queue_id]; + if (skb_queue_len(&ring->queue) == 0) { + queue_id++; + continue; + } else { + RT_TRACE(COMP_ERR, DBG_WARNING, + ("eRf Off/Sleep: %d times " + "TcbBusyQueue[%d] =%d before " + "doze!\n", (i + 1), queue_id, + skb_queue_len(&ring->queue))); + + udelay(10); + i++; + } + if (i >= MAX_DOZE_WAITING_TIMES_9x) { + RT_TRACE(COMP_ERR, DBG_WARNING, + ("\n ERFSLEEP: %d times " + "TcbBusyQueue[%d] = %d !\n", + MAX_DOZE_WAITING_TIMES_9x, + queue_id, + skb_queue_len(&ring->queue))); + break; + } + } + + if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_HALT_NIC) { + RT_TRACE(COMP_RF, DBG_DMESG, + ("IPS Set eRf nic disable\n")); + rtl_ps_disable_nic(hw); + RT_SET_PS_LEVEL(ppsc, RT_RF_OFF_LEVL_HALT_NIC); + } else { + if (ppsc->rfoff_reason == RF_CHANGE_BY_IPS) { + rtlpriv->cfg->ops->led_control(hw, + LED_CTL_NO_LINK); + } else { + rtlpriv->cfg->ops->led_control(hw, + LED_CTL_POWER_OFF); + } + } + break; + } + /*case ERFSLEEP:{ + if (ppsc->rfpwr_state == ERFOFF) + break; + for (queue_id = 0, i = 0; + queue_id < RTL_PCI_MAX_TX_QUEUE_COUNT;) { + ring = &pcipriv->dev.tx_ring[queue_id]; + if (skb_queue_len(&ring->queue) == 0) { + queue_id++; + continue; + } else { + RT_TRACE(COMP_ERR, DBG_WARNING, + ("eRf Off/Sleep: %d times " + "TcbBusyQueue[%d] =%d before " + "doze!\n", (i + 1), queue_id, + skb_queue_len(&ring->queue))); + + udelay(10); + i++; + } + if (i >= MAX_DOZE_WAITING_TIMES_9x) { + RT_TRACE(COMP_ERR, DBG_WARNING, + ("\n ERFSLEEP: %d times " + "TcbBusyQueue[%d] = %d !\n", + MAX_DOZE_WAITING_TIMES_9x, + queue_id, + skb_queue_len(&ring->queue))); + break; + } + } + RT_TRACE(COMP_RF, DBG_DMESG, + ("Set ERFSLEEP awaked:%d ms\n", + jiffies_to_msecs(jiffies - + ppsc->last_awake_jiffies))); + ppsc->last_sleep_jiffies = jiffies; + _rtl8821ae_phy_set_rf_sleep(hw); + break; + }*/ + default: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("switch case not process \n")); + bresult = false; + break; + } + if (bresult) + ppsc->rfpwr_state = rfpwr_state; + return bresult; +} + +bool rtl8821ae_phy_set_rf_power_state(struct ieee80211_hw *hw, + enum rf_pwrstate rfpwr_state) +{ + struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); + + bool bresult = false; + + if (rfpwr_state == ppsc->rfpwr_state) + return bresult; + bresult = _rtl8821ae_phy_set_rf_power_state(hw, rfpwr_state); + return bresult; +} --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/phy.h +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/phy.h @@ -0,0 +1,258 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8821AE_PHY_H__ +#define __RTL8821AE_PHY_H__ + +/*It must always set to 4, otherwise read efuse table secquence will be wrong.*/ +#define MAX_TX_COUNT 4 +#define TX_1S 0 +#define TX_2S 1 +#define TX_3S 2 +#define TX_4S 3 + +#define MAX_POWER_INDEX 0x3F + +#define MAX_PRECMD_CNT 16 +#define MAX_RFDEPENDCMD_CNT 16 +#define MAX_POSTCMD_CNT 16 + +#define MAX_DOZE_WAITING_TIMES_9x 64 + +#define RT_CANNOT_IO(hw) false +#define HIGHPOWER_RADIOA_ARRAYLEN 22 + +#define IQK_ADDA_REG_NUM 16 +#define IQK_BB_REG_NUM 9 +#define MAX_TOLERANCE 5 +#define IQK_DELAY_TIME 10 +#define index_mapping_NUM 15 + +#define APK_BB_REG_NUM 5 +#define APK_AFE_REG_NUM 16 +#define APK_CURVE_REG_NUM 4 +#define PATH_NUM 2 + +#define LOOP_LIMIT 5 +#define MAX_STALL_TIME 50 +#define AntennaDiversityValue 0x80 +#define MAX_TXPWR_IDX_NMODE_92S 63 +#define Reset_Cnt_Limit 3 + +#define IQK_ADDA_REG_NUM 16 +#define IQK_MAC_REG_NUM 4 + +#define RF6052_MAX_PATH 2 + +#define CT_OFFSET_MAC_ADDR 0X16 + +#define CT_OFFSET_CCK_TX_PWR_IDX 0x5A +#define CT_OFFSET_HT401S_TX_PWR_IDX 0x60 +#define CT_OFFSET_HT402S_TX_PWR_IDX_DIFF 0x66 +#define CT_OFFSET_HT20_TX_PWR_IDX_DIFF 0x69 +#define CT_OFFSET_OFDM_TX_PWR_IDX_DIFF 0x6C + +#define CT_OFFSET_HT40_MAX_PWR_OFFSET 0x6F +#define CT_OFFSET_HT20_MAX_PWR_OFFSET 0x72 + +#define CT_OFFSET_CHANNEL_PLAH 0x75 +#define CT_OFFSET_THERMAL_METER 0x78 +#define CT_OFFSET_RF_OPTION 0x79 +#define CT_OFFSET_VERSION 0x7E +#define CT_OFFSET_CUSTOMER_ID 0x7F + +#define RTL8821AE_MAX_PATH_NUM 2 + +#define TARGET_CHNL_NUM_2G_5G_8812 59 + +enum swchnlcmd_id { + CMDID_END, + CMDID_SET_TXPOWEROWER_LEVEL, + CMDID_BBREGWRITE10, + CMDID_WRITEPORT_ULONG, + CMDID_WRITEPORT_USHORT, + CMDID_WRITEPORT_UCHAR, + CMDID_RF_WRITEREG, +}; + +struct swchnlcmd { + enum swchnlcmd_id cmdid; + u32 para1; + u32 para2; + u32 msdelay; +}; + +enum hw90_block_e { + HW90_BLOCK_MAC = 0, + HW90_BLOCK_PHY0 = 1, + HW90_BLOCK_PHY1 = 2, + HW90_BLOCK_RF = 3, + HW90_BLOCK_MAXIMUM = 4, +}; + +enum baseband_config_type { + BASEBAND_CONFIG_PHY_REG = 0, + BASEBAND_CONFIG_AGC_TAB = 1, +}; + +enum ra_offset_area { + RA_OFFSET_LEGACY_OFDM1, + RA_OFFSET_LEGACY_OFDM2, + RA_OFFSET_HT_OFDM1, + RA_OFFSET_HT_OFDM2, + RA_OFFSET_HT_OFDM3, + RA_OFFSET_HT_OFDM4, + RA_OFFSET_HT_CCK, +}; + +enum antenna_path { + ANTENNA_NONE, + ANTENNA_D, + ANTENNA_C, + ANTENNA_CD, + ANTENNA_B, + ANTENNA_BD, + ANTENNA_BC, + ANTENNA_BCD, + ANTENNA_A, + ANTENNA_AD, + ANTENNA_AC, + ANTENNA_ACD, + ANTENNA_AB, + ANTENNA_ABD, + ANTENNA_ABC, + ANTENNA_ABCD +}; + +struct r_antenna_select_ofdm { + u32 r_tx_antenna:4; + u32 r_ant_l:4; + u32 r_ant_non_ht:4; + u32 r_ant_ht1:4; + u32 r_ant_ht2:4; + u32 r_ant_ht_s1:4; + u32 r_ant_non_ht_s1:4; + u32 ofdm_txsc:2; + u32 reserved:2; +}; + +struct r_antenna_select_cck { + u8 r_cckrx_enable_2:2; + u8 r_cckrx_enable:2; + u8 r_ccktx_enable:4; +}; + + +struct efuse_contents { + u8 mac_addr[ETH_ALEN]; + u8 cck_tx_power_idx[6]; + u8 ht40_1s_tx_power_idx[6]; + u8 ht40_2s_tx_power_idx_diff[3]; + u8 ht20_tx_power_idx_diff[3]; + u8 ofdm_tx_power_idx_diff[3]; + u8 ht40_max_power_offset[3]; + u8 ht20_max_power_offset[3]; + u8 channel_plan; + u8 thermal_meter; + u8 rf_option[5]; + u8 version; + u8 oem_id; + u8 regulatory; +}; + +struct tx_power_struct { + u8 cck[RTL8821AE_MAX_PATH_NUM][CHANNEL_MAX_NUMBER]; + u8 ht40_1s[RTL8821AE_MAX_PATH_NUM][CHANNEL_MAX_NUMBER]; + u8 ht40_2s[RTL8821AE_MAX_PATH_NUM][CHANNEL_MAX_NUMBER]; + u8 ht20_diff[RTL8821AE_MAX_PATH_NUM][CHANNEL_MAX_NUMBER]; + u8 legacy_ht_diff[RTL8821AE_MAX_PATH_NUM][CHANNEL_MAX_NUMBER]; + u8 legacy_ht_txpowerdiff; + u8 groupht20[RTL8821AE_MAX_PATH_NUM][CHANNEL_MAX_NUMBER]; + u8 groupht40[RTL8821AE_MAX_PATH_NUM][CHANNEL_MAX_NUMBER]; + u8 pwrgroup_cnt; + u32 mcs_original_offset[4][16]; +}; +enum _ANT_DIV_TYPE +{ + NO_ANTDIV = 0xFF, + CG_TRX_HW_ANTDIV = 0x01, + CGCS_RX_HW_ANTDIV = 0x02, + FIXED_HW_ANTDIV = 0x03, + CG_TRX_SMART_ANTDIV = 0x04, + CGCS_RX_SW_ANTDIV = 0x05, + +}; + +extern u32 rtl8821ae_phy_query_bb_reg(struct ieee80211_hw *hw, + u32 regaddr, u32 bitmask); +extern void rtl8821ae_phy_set_bb_reg(struct ieee80211_hw *hw, + u32 regaddr, u32 bitmask, u32 data); +extern u32 rtl8821ae_phy_query_rf_reg(struct ieee80211_hw *hw, + enum radio_path rfpath, u32 regaddr, + u32 bitmask); +extern void rtl8821ae_phy_set_rf_reg(struct ieee80211_hw *hw, + enum radio_path rfpath, u32 regaddr, + u32 bitmask, u32 data); +extern bool rtl8821ae_phy_mac_config(struct ieee80211_hw *hw); +extern bool rtl8821ae_phy_bb_config(struct ieee80211_hw *hw); +extern bool rtl8821ae_phy_rf_config(struct ieee80211_hw *hw); +extern void rtl8821ae_phy_switch_wirelessband(struct ieee80211_hw *hw, u8 band); +extern void rtl8821ae_phy_get_hw_reg_originalvalue(struct ieee80211_hw *hw); +extern void rtl8821ae_phy_get_txpower_level(struct ieee80211_hw *hw, + long *powerlevel); +extern void rtl8821ae_phy_set_txpower_level(struct ieee80211_hw *hw, u8 channel); +extern void rtl8821ae_phy_scan_operation_backup(struct ieee80211_hw *hw, + u8 operation); +extern void rtl8821ae_phy_set_bw_mode_callback(struct ieee80211_hw *hw); +extern void rtl8821ae_phy_set_bw_mode(struct ieee80211_hw *hw, + enum nl80211_channel_type ch_type); +extern void rtl8821ae_phy_sw_chnl_callback(struct ieee80211_hw *hw); +extern u8 rtl8821ae_phy_sw_chnl(struct ieee80211_hw *hw); +extern void rtl8821ae_phy_iq_calibrate(struct ieee80211_hw *hw, bool b_recovery); +extern void rtl8812ae_phy_iq_calibrate(struct ieee80211_hw *hw, bool b_recovery); +void rtl8821ae_phy_ap_calibrate(struct ieee80211_hw *hw, char delta); +void rtl8821ae_phy_lc_calibrate(struct ieee80211_hw *hw); +void rtl8821ae_phy_set_rfpath_switch(struct ieee80211_hw *hw, bool bmain); +bool rtl8812ae_phy_config_rf_with_headerfile(struct ieee80211_hw *hw, + enum radio_path rfpath); +bool rtl8821ae_phy_config_rf_with_headerfile(struct ieee80211_hw *hw, + enum radio_path rfpath); +bool rtl8821ae_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype); +extern bool rtl8821ae_phy_set_rf_power_state(struct ieee80211_hw *hw, + enum rf_pwrstate rfpwr_state); +u8 _rtl8812ae_get_right_chnl_place_for_iqk(u8 chnl); +void rtl8821ae_phy_set_txpower_level_by_path(struct ieee80211_hw *hw, u8 channel, u8 path); +void rtl8812ae_do_iqk(struct ieee80211_hw *hw,u8 delta_thermal_index, + u8 thermal_value, u8 threshold); +void rtl8821ae_do_iqk(struct ieee80211_hw *hw,u8 delta_thermal_index, + u8 thermal_value, u8 threshold); +void rtl8821ae_reset_iqk_result(struct ieee80211_hw *hw); + + +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/pwrseq.c +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/pwrseq.c @@ -0,0 +1,199 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "pwrseqcmd.h" +#include "pwrseq.h" + +/* + drivers should parse below arrays and do the corresponding actions +*/ +//3 Power on Array +struct wlan_pwr_cfg rtl8812_power_on_flow[RTL8812_TRANS_CARDEMU_TO_ACT_STEPS+RTL8812_TRANS_END_STEPS]= +{ + RTL8812_TRANS_CARDEMU_TO_ACT + RTL8812_TRANS_END +}; + +//3Radio off GPIO Array +struct wlan_pwr_cfg rtl8812_radio_off_flow[RTL8812_TRANS_ACT_TO_CARDEMU_STEPS+RTL8812_TRANS_END_STEPS]= +{ + RTL8812_TRANS_ACT_TO_CARDEMU + RTL8812_TRANS_END +}; + +//3Card Disable Array +struct wlan_pwr_cfg rtl8812_card_disable_flow[ RTL8812_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8812_TRANS_CARDEMU_TO_PDN_STEPS + + RTL8812_TRANS_END_STEPS ] = +{ + RTL8812_TRANS_ACT_TO_CARDEMU + RTL8812_TRANS_CARDEMU_TO_CARDDIS + RTL8812_TRANS_END +}; + +//3 Card Enable Array +struct wlan_pwr_cfg rtl8812_card_enable_flow[ RTL8812_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8812_TRANS_CARDEMU_TO_PDN_STEPS + + RTL8812_TRANS_END_STEPS ] = +{ + RTL8812_TRANS_CARDDIS_TO_CARDEMU + RTL8812_TRANS_CARDEMU_TO_ACT + RTL8812_TRANS_END +}; + +//3Suspend Array +struct wlan_pwr_cfg rtl8812_suspend_flow[RTL8812_TRANS_ACT_TO_CARDEMU_STEPS+RTL8812_TRANS_CARDEMU_TO_SUS_STEPS+RTL8812_TRANS_END_STEPS]= +{ + RTL8812_TRANS_ACT_TO_CARDEMU + RTL8812_TRANS_CARDEMU_TO_SUS + RTL8812_TRANS_END +}; + +//3 Resume Array +struct wlan_pwr_cfg rtl8812_resume_flow[RTL8812_TRANS_ACT_TO_CARDEMU_STEPS+RTL8812_TRANS_CARDEMU_TO_SUS_STEPS+RTL8812_TRANS_END_STEPS]= +{ + RTL8812_TRANS_SUS_TO_CARDEMU + RTL8812_TRANS_CARDEMU_TO_ACT + RTL8812_TRANS_END +}; + + + +//3HWPDN Array +struct wlan_pwr_cfg rtl8812_hwpdn_flow[RTL8812_TRANS_ACT_TO_CARDEMU_STEPS+RTL8812_TRANS_CARDEMU_TO_PDN_STEPS+RTL8812_TRANS_END_STEPS]= +{ + RTL8812_TRANS_ACT_TO_CARDEMU + RTL8812_TRANS_CARDEMU_TO_PDN + RTL8812_TRANS_END +}; + +//3 Enter LPS +struct wlan_pwr_cfg rtl8812_enter_lps_flow[RTL8812_TRANS_ACT_TO_LPS_STEPS+RTL8812_TRANS_END_STEPS]= +{ + //FW behavior + RTL8812_TRANS_ACT_TO_LPS + RTL8812_TRANS_END +}; + +//3 Leave LPS +struct wlan_pwr_cfg rtl8812_leave_lps_flow[RTL8812_TRANS_LPS_TO_ACT_STEPS+RTL8812_TRANS_END_STEPS]= +{ + //FW behavior + RTL8812_TRANS_LPS_TO_ACT + RTL8812_TRANS_END +}; + + +/* + drivers should parse below arrays and do the corresponding actions +*/ +/*3 Power on Array*/ +struct wlan_pwr_cfg rtl8821A_power_on_flow[RTL8821A_TRANS_CARDEMU_TO_ACT_STEPS + + RTL8821A_TRANS_END_STEPS] = +{ + RTL8821A_TRANS_CARDEMU_TO_ACT + RTL8821A_TRANS_END +}; + +/*3Radio off GPIO Array */ +struct wlan_pwr_cfg rtl8821A_radio_off_flow[RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8821A_TRANS_END_STEPS] = +{ + RTL8821A_TRANS_ACT_TO_CARDEMU + RTL8821A_TRANS_END +}; + +/*3Card Disable Array*/ +struct wlan_pwr_cfg rtl8821A_card_disable_flow[RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8821A_TRANS_CARDEMU_TO_PDN_STEPS + + RTL8821A_TRANS_END_STEPS] = +{ + RTL8821A_TRANS_ACT_TO_CARDEMU + RTL8821A_TRANS_CARDEMU_TO_CARDDIS + RTL8821A_TRANS_END +}; + +/*3 Card Enable Array*/ +struct wlan_pwr_cfg rtl8821A_card_enable_flow[RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8821A_TRANS_CARDEMU_TO_ACT_STEPS /*RTL8821A_TRANS_CARDEMU_TO_PDN_STEPS*/ + + RTL8821A_TRANS_END_STEPS] = +{ + RTL8821A_TRANS_CARDDIS_TO_CARDEMU + RTL8821A_TRANS_CARDEMU_TO_ACT + RTL8821A_TRANS_END +}; + +/*3Suspend Array*/ +struct wlan_pwr_cfg rtl8821A_suspend_flow[RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8821A_TRANS_CARDEMU_TO_SUS_STEPS + + RTL8821A_TRANS_END_STEPS] = +{ + RTL8821A_TRANS_ACT_TO_CARDEMU + RTL8821A_TRANS_CARDEMU_TO_SUS + RTL8821A_TRANS_END +}; + +/*3 Resume Array*/ +struct wlan_pwr_cfg rtl8821A_resume_flow[RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8821A_TRANS_CARDEMU_TO_SUS_STEPS + + RTL8821A_TRANS_END_STEPS] = +{ + RTL8821A_TRANS_SUS_TO_CARDEMU + RTL8821A_TRANS_CARDEMU_TO_ACT + RTL8821A_TRANS_END +}; + +/*3HWPDN Array*/ +struct wlan_pwr_cfg rtl8821A_hwpdn_flow[RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8821A_TRANS_CARDEMU_TO_PDN_STEPS + + RTL8821A_TRANS_END_STEPS] = +{ + RTL8821A_TRANS_ACT_TO_CARDEMU + RTL8821A_TRANS_CARDEMU_TO_PDN + RTL8821A_TRANS_END +}; + +/*3 Enter LPS */ +struct wlan_pwr_cfg rtl8821A_enter_lps_flow[RTL8821A_TRANS_ACT_TO_LPS_STEPS + + RTL8821A_TRANS_END_STEPS] = +{ + /*FW behavior*/ + RTL8821A_TRANS_ACT_TO_LPS + RTL8821A_TRANS_END +}; + +/*3 Leave LPS */ +struct wlan_pwr_cfg rtl8821A_leave_lps_flow[RTL8821A_TRANS_LPS_TO_ACT_STEPS + + RTL8821A_TRANS_END_STEPS] = +{ + /*FW behavior*/ + RTL8821A_TRANS_LPS_TO_ACT + RTL8821A_TRANS_END +}; + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/pwrseq.h +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/pwrseq.h @@ -0,0 +1,413 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8821AE_PWRSEQ_H__ +#define __RTL8821AE_PWRSEQ_H__ + +#include "pwrseqcmd.h" +#include "../btcoexist/halbt_precomp.h" + +#define RTL8812_TRANS_CARDEMU_TO_ACT_STEPS 15 +#define RTL8812_TRANS_ACT_TO_CARDEMU_STEPS 15 +#define RTL8812_TRANS_CARDEMU_TO_SUS_STEPS 15 +#define RTL8812_TRANS_SUS_TO_CARDEMU_STEPS 15 +#define RTL8812_TRANS_CARDEMU_TO_PDN_STEPS 25 +#define RTL8812_TRANS_PDN_TO_CARDEMU_STEPS 15 +#define RTL8812_TRANS_ACT_TO_LPS_STEPS 15 +#define RTL8812_TRANS_LPS_TO_ACT_STEPS 15 +#define RTL8812_TRANS_END_STEPS 1 + + +#define RTL8812_TRANS_CARDEMU_TO_ACT \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT2, 0},/* disable SW LPS 0x04[10]=0*/ \ + {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_POLLING, BIT1, BIT1},/* wait till 0x04[17] = 1 power ready*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT7, 0},/* disable HWPDN 0x04[15]=0*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT3, 0},/* disable WL suspend*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0, BIT0},/* polling until return 0*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_POLLING, BIT0, 0},/**/ + +#define RTL8812_TRANS_ACT_TO_CARDEMU \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x0c00, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x04}, /* 0xc00[7:0] = 4 turn off 3-wire */ \ + {0x0e00, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x04}, /* 0xe00[7:0] = 4 turn off 3-wire */ \ + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0, 0}, /* 0x2[0] = 0 RESET BB, CLOSE RF */ \ + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_DELAY, 0, PWRSEQ_DELAY_US},/*Delay 1us*/ \ + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT1, 0}, /* Whole BB is reset*/ \ + /*{0x001F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0},//0x1F[7:0] = 0 turn off RF*/ \ + /*{0x004E, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT7, 0},//0x4C[23] = 0x4E[7] = 0, switch DPDT_SEL_P output from register 0x65[2] */ \ + {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x2A}, /* 0x07[7:0] = 0x28 sps pwm mode 0x2a for BT coex*/ \ + {0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0x02, 0},/*0x8[1] = 0 ANA clk =500k */ \ + /*{0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0|BIT1, 0}, // 0x02[1:0] = 0 reset BB */ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT1, BIT1}, /*0x04[9] = 1 turn off MAC by HW state machine*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_POLLING, BIT1, 0}, /*wait till 0x04[9] = 0 polling until return 0 to disable*/ + +#define RTL8812_TRANS_CARDEMU_TO_SUS \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x0042, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xF0, 0xcc},\ + {0x0042, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xF0, 0xEC},\ + {0x0043, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x07},/* gpio11 input mode, gpio10~8 output mode */ \ + {0x0045, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x00},/* gpio 0~7 output same value as input ?? */ \ + {0x0046, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0xff},/* gpio0~7 output mode */ \ + {0x0047, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0},/* 0x47[7:0] = 00 gpio mode */ \ + {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0},/* suspend option all off */ \ + {0x0014, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0x80, BIT7},/*0x14[7] = 1 turn on ZCD */ \ + {0x0015, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0x01, BIT0},/* 0x15[0] =1 trun on ZCD */ \ + {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0x10, BIT4},/*0x23[4] = 1 hpon LDO sleep mode */ \ + {0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0x02, 0},/*0x8[1] = 0 ANA clk =500k */ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT3, BIT3}, /*0x04[11] = 2b'11 enable WL suspend for PCIe*/ + +#define RTL8812_TRANS_SUS_TO_CARDEMU \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT3, 0}, /*0x04[11] = 2b'01enable WL suspend*/ \ + {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0x10, 0},/*0x23[4] = 0 hpon LDO sleep mode leave */ \ + {0x0015, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0x01, 0},/* 0x15[0] =0 trun off ZCD */ \ + {0x0014, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0x80, 0},/*0x14[7] = 0 turn off ZCD */ \ + {0x0046, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x00},/* gpio0~7 input mode */ \ + {0x0043, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x00},/* gpio11 input mode, gpio10~8 input mode */ + +#define RTL8812_TRANS_CARDEMU_TO_CARDDIS \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + /**{0x0194, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0, 0}, //0x194[0]=0 , disable 32K clock*/ \ + /**{0x0093, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x94}, //0x93=0x94 , 90[30] =0 enable 500k ANA clock .switch clock from 12M to 500K , 90 [26] =0 disable EEprom loader clock*/ \ + {0x0003, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT2, 0}, /*0x03[2] = 0, reset 8051*/ \ + {0x0080, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x05}, /*0x80=05h if reload fw, fill the default value of host_CPU handshake field*/ \ + {0x0042, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xF0, 0xcc},\ + {0x0042, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xF0, 0xEC},\ + {0x0043, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x07},/* gpio11 input mode, gpio10~8 output mode */ \ + {0x0045, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x00},/* gpio 0~7 output same value as input ?? */ \ + {0x0046, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0xff},/* gpio0~7 output mode */ \ + {0x0047, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0},/* 0x47[7:0] = 00 gpio mode */ \ + {0x0014, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0x80, BIT7},/*0x14[7] = 1 turn on ZCD */ \ + {0x0015, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0x01, BIT0},/* 0x15[0] =1 trun on ZCD */ \ + {0x0012, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0x01, 0},/*0x12[0] = 0 force PFM mode */ \ + {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0x10, BIT4},/*0x23[4] = 1 hpon LDO sleep mode */ \ + {0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0x02, 0},/*0x8[1] = 0 ANA clk =500k */ \ + {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x20}, /*0x07=0x20 , SOP option to disable BG/MB*/ \ + {0x001f, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT1, 0}, /*0x01f[1]=0 , disable RFC_0 control REG_RF_CTRL_8812 */ \ + {0x0076, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT1, 0}, /*0x076[1]=0 , disable RFC_1 control REG_OPT_CTRL_8812 +2 */ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT3, BIT3}, /*0x04[11] = 2b'01 enable WL suspend*/ + +#define RTL8812_TRANS_CARDDIS_TO_CARDEMU \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x0012, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0, BIT0},/*0x12[0] = 1 force PWM mode */ \ + {0x0014, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0x80, 0},/*0x14[7] = 0 turn off ZCD */ \ + {0x0015, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0x01, 0},/* 0x15[0] =0 trun off ZCD */ \ + {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0x10, 0},/*0x23[4] = 0 hpon LDO leave sleep mode */ \ + {0x0046, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x00},/* gpio0~7 input mode */ \ + {0x0043, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x00},/* gpio11 input mode, gpio10~8 input mode */ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT2, 0}, /*0x04[10] = 0, enable SW LPS PCIE only*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT3, 0}, /*0x04[11] = 2b'01enable WL suspend*/ \ + {0x0003, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT2, BIT2}, /*0x03[2] = 1, enable 8051*/ \ + {0x0301, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0},/*PCIe DMA start*/ + + +#define RTL8812_TRANS_CARDEMU_TO_PDN \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT7, BIT7},/* 0x04[15] = 1*/ + +#define RTL8812_TRANS_PDN_TO_CARDEMU \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT7, 0},/* 0x04[15] = 0*/ + +#define RTL8812_TRANS_ACT_TO_LPS \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x0301, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0xFF},/*PCIe DMA stop*/ \ + {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x7F},/*Tx Pause*/ \ + {0x05F8, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_POLLING, 0xFF, 0},/*Should be zero if no packet is transmitting*/ \ + {0x05F9, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_POLLING, 0xFF, 0},/*Should be zero if no packet is transmitting*/ \ + {0x05FA, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_POLLING, 0xFF, 0},/*Should be zero if no packet is transmitting*/ \ + {0x05FB, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_POLLING, 0xFF, 0},/*Should be zero if no packet is transmitting*/ \ + {0x0c00, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x04}, /* 0xc00[7:0] = 4 turn off 3-wire */ \ + {0x0e00, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x04}, /* 0xe00[7:0] = 4 turn off 3-wire */ \ + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0, 0},/*CCK and OFDM are disabled,and clock are gated,and RF closed*/ \ + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_DELAY, 0, PWRSEQ_DELAY_US},/*Delay 1us*/ \ + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT1, 0}, /* Whole BB is reset*/ \ + {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x03},/*Reset MAC TRX*/ \ + {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT1, 0},/*check if removed later*/ \ + {0x0553, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT5, BIT5},/*Respond TxOK to scheduler*/ + + +#define RTL8812_TRANS_LPS_TO_ACT \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x0080, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,PWR_BASEADDR_SDIO,PWR_CMD_WRITE, 0xFF, 0x84}, /*SDIO RPWM*/ \ + {0xFE58, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x84}, /*USB RPWM*/ \ + {0x0361, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x84}, /*PCIe RPWM*/ \ + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_DELAY, 0, PWRSEQ_DELAY_MS}, /*Delay*/ \ + {0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT4, 0}, /*. 0x08[4] = 0 switch TSF to 40M*/ \ + {0x0109, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_POLLING, BIT7, 0}, /*Polling 0x109[7]=0 TSF in 40M*/ \ + {0x0029, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT6|BIT7, 0}, /*. 0x29[7:6] = 2b'00 enable BB clock*/ \ + {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT1, BIT1}, /*. 0x101[1] = 1*/ \ + {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0xFF}, /*. 0x100[7:0] = 0xFF enable WMAC TRX*/ \ + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT1|BIT0, BIT1|BIT0}, /*. 0x02[1:0] = 2b'11 enable BB macro*/ \ + {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0}, /*. 0x522 = 0*/ + +#define RTL8812_TRANS_END \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0xFFFF, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,0,PWR_CMD_END, 0, 0}, // + + +extern struct wlan_pwr_cfg rtl8812_power_on_flow[RTL8812_TRANS_CARDEMU_TO_ACT_STEPS+RTL8812_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8812_radio_off_flow[RTL8812_TRANS_ACT_TO_CARDEMU_STEPS+RTL8812_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8812_card_disable_flow[RTL8812_TRANS_ACT_TO_CARDEMU_STEPS+RTL8812_TRANS_CARDEMU_TO_PDN_STEPS+RTL8812_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8812_card_enable_flow[RTL8812_TRANS_ACT_TO_CARDEMU_STEPS+RTL8812_TRANS_CARDEMU_TO_PDN_STEPS+RTL8812_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8812_suspend_flow[RTL8812_TRANS_ACT_TO_CARDEMU_STEPS+RTL8812_TRANS_CARDEMU_TO_SUS_STEPS+RTL8812_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8812_resume_flow[RTL8812_TRANS_ACT_TO_CARDEMU_STEPS+RTL8812_TRANS_CARDEMU_TO_SUS_STEPS+RTL8812_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8812_hwpdn_flow[RTL8812_TRANS_ACT_TO_CARDEMU_STEPS+RTL8812_TRANS_CARDEMU_TO_PDN_STEPS+RTL8812_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8812_enter_lps_flow[RTL8812_TRANS_ACT_TO_LPS_STEPS+RTL8812_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8812_leave_lps_flow[RTL8812_TRANS_LPS_TO_ACT_STEPS+RTL8812_TRANS_END_STEPS]; + +/* + Check document WM-20130516-JackieLau-RTL8821A_Power_Architecture-R10.vsd + There are 6 HW Power States: + 0: POFF--Power Off + 1: PDN--Power Down + 2: CARDEMU--Card Emulation + 3: ACT--Active Mode + 4: LPS--Low Power State + 5: SUS--Suspend + + The transision from different states are defined below + TRANS_CARDEMU_TO_ACT + TRANS_ACT_TO_CARDEMU + TRANS_CARDEMU_TO_SUS + TRANS_SUS_TO_CARDEMU + TRANS_CARDEMU_TO_PDN + TRANS_ACT_TO_LPS + TRANS_LPS_TO_ACT + + TRANS_END +*/ +#define RTL8821A_TRANS_CARDEMU_TO_ACT_STEPS 25 +#define RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS 15 +#define RTL8821A_TRANS_CARDEMU_TO_SUS_STEPS 15 +#define RTL8821A_TRANS_SUS_TO_CARDEMU_STEPS 15 +#define RTL8821A_TRANS_CARDDIS_TO_CARDEMU_STEPS 15 +#define RTL8821A_TRANS_CARDEMU_TO_PDN_STEPS 15 +#define RTL8821A_TRANS_PDN_TO_CARDEMU_STEPS 15 +#define RTL8821A_TRANS_ACT_TO_LPS_STEPS 15 +#define RTL8821A_TRANS_LPS_TO_ACT_STEPS 15 +#define RTL8821A_TRANS_END_STEPS 1 + + +#define RTL8821A_TRANS_CARDEMU_TO_ACT \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x0020, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0, BIT0}, /*0x20[0] = 1b'1 enable LDOA12 MACRO block for all interface*/ \ + {0x0067, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT4, 0}, /*0x67[0] = 0 to disable BT_GPS_SEL pins*/ \ + {0x0001, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,PWR_BASEADDR_MAC,PWR_CMD_DELAY, 1, PWRSEQ_DELAY_MS},/*Delay 1ms*/ \ + {0x0000, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT5, 0}, /*0x00[5] = 1b'0 release analog Ips to digital ,1:isolation*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, (BIT4|BIT3|BIT2), 0},/* disable SW LPS 0x04[10]=0 and WLSUS_EN 0x04[12:11]=0*/ \ + {0x0075, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0 , BIT0},/* Disable USB suspend */ \ + {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_POLLING, BIT1, BIT1},/* wait till 0x04[17] = 1 power ready*/ \ + {0x0075, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0 , 0},/* Enable USB suspend */ \ + {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0, BIT0},/* release WLON reset 0x04[16]=1*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT7, 0},/* disable HWPDN 0x04[15]=0*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, (BIT4|BIT3), 0},/* disable WL suspend*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0, BIT0},/* polling until return 0*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_POLLING, BIT0, 0},/**/ \ + {0x004F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0, BIT0},/*0x4C[24] = 0x4F[0] = 1, switch DPDT_SEL_P output from WL BB */\ + {0x0067, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, (BIT5|BIT4), (BIT5|BIT4)},/*0x66[13] = 0x67[5] = 1, switch for PAPE_G/PAPE_A from WL BB ; 0x66[12] = 0x67[4] = 1, switch LNAON from WL BB */\ + {0x0025, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT6, 0},/*anapar_mac<118> , 0x25[6]=0 by wlan single function*/\ + {0x0049, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT1, BIT1},/*Enable falling edge triggering interrupt*/\ + {0x0063, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT1, BIT1},/*Enable GPIO9 interrupt mode*/\ + {0x0062, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT1, 0},/*Enable GPIO9 input mode*/\ + {0x0058, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0, BIT0},/*Enable HSISR GPIO[C:0] interrupt*/\ + {0x005A, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT1, BIT1},/*Enable HSISR GPIO9 interrupt*/\ + {0x007A, PWR_CUT_TESTCHIP_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x3A},/*0x7A = 0x3A start BT*/\ + {0x002E, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF , 0x82 },/* 0x2C[23:12]=0x820 ; XTAL trim */ \ + {0x0010, PWR_CUT_A_MSK , PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT6 , BIT6 },/* 0x10[6]=1 ; MPsW0x2CvA0x10[6]]1~WLAN */ \ + + +#define RTL8821A_TRANS_ACT_TO_CARDEMU \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x001F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0},/*0x1F[7:0] = 0 turn off RF*/ \ + {0x004F, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0, 0},/*0x4C[24] = 0x4F[0] = 0, switch DPDT_SEL_P output from register 0x65[2] */\ + {0x0049, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT1, 0},/*Enable rising edge triggering interrupt*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT1, BIT1}, /*0x04[9] = 1 turn off MAC by HW state machine*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_POLLING, BIT1, 0}, /*wait till 0x04[9] = 0 polling until return 0 to disable*/ \ + {0x0000, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT5, BIT5}, /*0x00[5] = 1b'1 analog Ips to digital ,1:isolation*/ \ + {0x0020, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0, 0}, /*0x20[0] = 1b'0 disable LDOA12 MACRO block*/ \ + + +#define RTL8821A_TRANS_CARDEMU_TO_SUS \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT4|BIT3, (BIT4|BIT3)}, /*0x04[12:11] = 2b'11 enable WL suspend for PCIe*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT3|BIT4, BIT3}, /*0x04[12:11] = 2b'01 enable WL suspend*/ \ + {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT4, BIT4}, /*0x23[4] = 1b'1 12H LDO enter sleep mode*/ \ + {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x20}, /*0x07[7:0] = 0x20 SDIO SOP option to disable BG/MB/ACK/SWR*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT3|BIT4, BIT3|BIT4}, /*0x04[12:11] = 2b'11 enable WL suspend for PCIe*/ \ + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,PWR_BASEADDR_SDIO,PWR_CMD_WRITE, BIT0, BIT0}, /*Set SDIO suspend local register*/ \ + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,PWR_BASEADDR_SDIO,PWR_CMD_POLLING, BIT1, 0}, /*wait power state to suspend*/ + +#define RTL8821A_TRANS_SUS_TO_CARDEMU \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT3 | BIT7, 0}, /*clear suspend enable and power down enable*/ \ + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,PWR_BASEADDR_SDIO,PWR_CMD_WRITE, BIT0, 0}, /*Set SDIO suspend local register*/ \ + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,PWR_BASEADDR_SDIO,PWR_CMD_POLLING, BIT1, BIT1}, /*wait power state to suspend*/\ + {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT4, 0}, /*0x23[4] = 1b'0 12H LDO enter normal mode*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT3|BIT4, 0}, /*0x04[12:11] = 2b'01enable WL suspend*/ + +#define RTL8821A_TRANS_CARDEMU_TO_CARDDIS \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x20}, /*0x07=0x20 , SOP option to disable BG/MB*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK|PWR_INTF_SDIO_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT3|BIT4, BIT3}, /*0x04[12:11] = 2b'01 enable WL suspend*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT2, BIT2}, /*0x04[10] = 1, enable SW LPS*/ \ + {0x004A, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0, 1}, /*0x48[16] = 1 to enable GPIO9 as EXT WAKEUP*/ \ + {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT4, BIT4}, /*0x23[4] = 1b'1 12H LDO enter sleep mode*/ \ + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,PWR_BASEADDR_SDIO,PWR_CMD_WRITE, BIT0, BIT0}, /*Set SDIO suspend local register*/ \ + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,PWR_BASEADDR_SDIO,PWR_CMD_POLLING, BIT1, 0}, /*wait power state to suspend*/ + +#define RTL8821A_TRANS_CARDDIS_TO_CARDEMU \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT3 | BIT7, 0}, /*clear suspend enable and power down enable*/ \ + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,PWR_BASEADDR_SDIO,PWR_CMD_WRITE, BIT0, 0}, /*Set SDIO suspend local register*/ \ + {0x0086, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,PWR_BASEADDR_SDIO,PWR_CMD_POLLING, BIT1, BIT1}, /*wait power state to suspend*/\ + {0x004A, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0, 0}, /*0x48[16] = 0 to disable GPIO9 as EXT WAKEUP*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT3|BIT4, 0}, /*0x04[12:11] = 2b'01enable WL suspend*/\ + {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT4, 0}, /*0x23[4] = 1b'0 12H LDO enter normal mode*/ \ + {0x0301, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0},/*PCIe DMA start*/ + + +#define RTL8821A_TRANS_CARDEMU_TO_PDN \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x0023, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT4, BIT4}, /*0x23[4] = 1b'1 12H LDO enter sleep mode*/ \ + {0x0007, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK|PWR_INTF_USB_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x20}, /*0x07[7:0] = 0x20 SOP option to disable BG/MB/ACK/SWR*/ \ + {0x0006, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0, 0},/* 0x04[16] = 0*/\ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT7, BIT7},/* 0x04[15] = 1*/ + +#define RTL8821A_TRANS_PDN_TO_CARDEMU \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x0005, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT7, 0},/* 0x04[15] = 0*/ + +#define RTL8821A_TRANS_ACT_TO_LPS \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x0301, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0xFF},/*PCIe DMA stop*/ \ + {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0xFF},/*Tx Pause*/ \ + {0x05F8, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_POLLING, 0xFF, 0},/*Should be zero if no packet is transmitting*/ \ + {0x05F9, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_POLLING, 0xFF, 0},/*Should be zero if no packet is transmitting*/ \ + {0x05FA, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_POLLING, 0xFF, 0},/*Should be zero if no packet is transmitting*/ \ + {0x05FB, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_POLLING, 0xFF, 0},/*Should be zero if no packet is transmitting*/ \ + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT0, 0},/*CCK and OFDM are disabled,and clock are gated*/ \ + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_DELAY, 0, PWRSEQ_DELAY_US},/*Delay 1us*/ \ + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT1, 0},/*Whole BB is reset*/ \ + {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x03},/*Reset MAC TRX*/ \ + {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT1, 0},/*check if removed later*/ \ + {0x0093, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x00},/*When driver enter Sus/ Disable, enable LOP for BT*/ \ + {0x0553, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT5, BIT5},/*Respond TxOK to scheduler*/ \ + + +#define RTL8821A_TRANS_LPS_TO_ACT \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0x0080, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_SDIO_MSK,PWR_BASEADDR_SDIO,PWR_CMD_WRITE, 0xFF, 0x84}, /*SDIO RPWM*/\ + {0xFE58, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_USB_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x84}, /*USB RPWM*/\ + {0x0361, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_PCI_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0x84}, /*PCIe RPWM*/\ + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_DELAY, 0, PWRSEQ_DELAY_MS}, /*Delay*/\ + {0x0008, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT4, 0}, /*. 0x08[4] = 0 switch TSF to 40M*/\ + {0x0109, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_POLLING, BIT7, 0}, /*Polling 0x109[7]=0 TSF in 40M*/\ + {0x0029, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT6|BIT7, 0}, /*. 0x29[7:6] = 2b'00 enable BB clock*/\ + {0x0101, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT1, BIT1}, /*. 0x101[1] = 1*/\ + {0x0100, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0xFF}, /*. 0x100[7:0] = 0xFF enable WMAC TRX*/\ + {0x0002, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, BIT1|BIT0, BIT1|BIT0}, /*. 0x02[1:0] = 2b'11 enable BB macro*/\ + {0x0522, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,PWR_BASEADDR_MAC,PWR_CMD_WRITE, 0xFF, 0}, /*. 0x522 = 0*/ + +#define RTL8821A_TRANS_END \ + /* format */ \ + /* { offset, cut_msk, fab_msk|interface_msk, base|cmd, msk, value }, // comments here*/ \ + {0xFFFF, PWR_CUT_ALL_MSK, PWR_FAB_ALL_MSK, PWR_INTF_ALL_MSK,0,PWR_CMD_END, 0, 0}, // + +extern struct wlan_pwr_cfg rtl8821A_power_on_flow[RTL8821A_TRANS_CARDEMU_TO_ACT_STEPS + + RTL8821A_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8821A_radio_off_flow[RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8821A_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8821A_card_disable_flow[RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8821A_TRANS_CARDEMU_TO_PDN_STEPS + + RTL8821A_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8821A_card_enable_flow[RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8821A_TRANS_CARDEMU_TO_ACT_STEPS/*RTL8821A_TRANS_CARDEMU_TO_PDN_STEPS*/ + + RTL8821A_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8821A_suspend_flow[RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8821A_TRANS_CARDEMU_TO_SUS_STEPS + + RTL8821A_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8821A_resume_flow[RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8821A_TRANS_CARDEMU_TO_SUS_STEPS + + RTL8821A_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8821A_hwpdn_flow[RTL8821A_TRANS_ACT_TO_CARDEMU_STEPS + + RTL8821A_TRANS_CARDEMU_TO_PDN_STEPS + + RTL8821A_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8821A_enter_lps_flow[RTL8821A_TRANS_ACT_TO_LPS_STEPS + + RTL8821A_TRANS_END_STEPS]; +extern struct wlan_pwr_cfg rtl8821A_leave_lps_flow[RTL8821A_TRANS_LPS_TO_ACT_STEPS + + RTL8821A_TRANS_END_STEPS]; + +/*RTL8812 Power Configuration CMDs for PCIe interface*/ +#define RTL8812_NIC_PWR_ON_FLOW rtl8812_power_on_flow +#define RTL8812_NIC_RF_OFF_FLOW rtl8812_radio_off_flow +#define RTL8812_NIC_DISABLE_FLOW rtl8812_card_disable_flow +#define RTL8812_NIC_ENABLE_FLOW rtl8812_card_enable_flow +#define RTL8812_NIC_SUSPEND_FLOW rtl8812_suspend_flow +#define RTL8812_NIC_RESUME_FLOW rtl8812_resume_flow +#define RTL8812_NIC_PDN_FLOW rtl8812_hwpdn_flow +#define RTL8812_NIC_LPS_ENTER_FLOW rtl8812_enter_lps_flow +#define RTL8812_NIC_LPS_LEAVE_FLOW rtl8812_leave_lps_flow + +/* RTL8821 Power Configuration CMDs for PCIe interface */ +#define RTL8821A_NIC_PWR_ON_FLOW rtl8821A_power_on_flow +#define RTL8821A_NIC_RF_OFF_FLOW rtl8821A_radio_off_flow +#define RTL8821A_NIC_DISABLE_FLOW rtl8821A_card_disable_flow +#define RTL8821A_NIC_ENABLE_FLOW rtl8821A_card_enable_flow +#define RTL8821A_NIC_SUSPEND_FLOW rtl8821A_suspend_flow +#define RTL8821A_NIC_RESUME_FLOW rtl8821A_resume_flow +#define RTL8821A_NIC_PDN_FLOW rtl8821A_hwpdn_flow +#define RTL8821A_NIC_LPS_ENTER_FLOW rtl8821A_enter_lps_flow +#define RTL8821A_NIC_LPS_LEAVE_FLOW rtl8821A_leave_lps_flow + + +#endif + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/pwrseqcmd.c +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/pwrseqcmd.c @@ -0,0 +1,140 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "pwrseq.h" + + +/* +* Description: +* This routine deal with the Power Configuration CMDs +* parsing for RTL8723/RTL8188E Series IC. +* Assumption: +* We should follow specific format which was released from HW SD. +* +* 2011.07.07, added by Roger. +*/ +bool rtl_hal_pwrseqcmdparsing (struct rtl_priv* rtlpriv, u8 cut_version, + u8 fab_version, u8 interface_type, + struct wlan_pwr_cfg pwrcfgcmd[]) + +{ + struct wlan_pwr_cfg pwr_cfg_cmd = {0}; + bool polling_bit = false; + u32 ary_idx=0; + u8 value = 0; + u32 offset = 0; + u32 polling_count = 0; + u32 max_polling_cnt = 5000; + + do { + pwr_cfg_cmd = pwrcfgcmd[ary_idx]; + RT_TRACE(COMP_INIT, DBG_TRACE, + ("rtl_hal_pwrseqcmdparsing(): offset(%#x),cut_msk(%#x), fab_msk(%#x)," + "interface_msk(%#x), base(%#x), cmd(%#x), msk(%#x), value(%#x)\n", + GET_PWR_CFG_OFFSET(pwr_cfg_cmd), GET_PWR_CFG_CUT_MASK(pwr_cfg_cmd), + GET_PWR_CFG_FAB_MASK(pwr_cfg_cmd), GET_PWR_CFG_INTF_MASK(pwr_cfg_cmd), + GET_PWR_CFG_BASE(pwr_cfg_cmd), GET_PWR_CFG_CMD(pwr_cfg_cmd), + GET_PWR_CFG_MASK(pwr_cfg_cmd), GET_PWR_CFG_VALUE(pwr_cfg_cmd))); + + if ((GET_PWR_CFG_FAB_MASK(pwr_cfg_cmd)&fab_version) && + (GET_PWR_CFG_CUT_MASK(pwr_cfg_cmd)&cut_version) && + (GET_PWR_CFG_INTF_MASK(pwr_cfg_cmd)&interface_type)) { + switch (GET_PWR_CFG_CMD(pwr_cfg_cmd)) { + case PWR_CMD_READ: + RT_TRACE(COMP_INIT, DBG_TRACE, + ("rtl_hal_pwrseqcmdparsing(): PWR_CMD_READ\n")); + break; + + case PWR_CMD_WRITE: { + RT_TRACE(COMP_INIT, DBG_TRACE, + ("rtl_hal_pwrseqcmdparsing(): PWR_CMD_WRITE\n")); + offset = GET_PWR_CFG_OFFSET(pwr_cfg_cmd); + + /*Read the value from system register*/ + value = rtl_read_byte(rtlpriv, offset); + value = value & (~(GET_PWR_CFG_MASK(pwr_cfg_cmd))); + value = value | (GET_PWR_CFG_VALUE(pwr_cfg_cmd) + & GET_PWR_CFG_MASK(pwr_cfg_cmd)); + + /*Write the value back to sytem register*/ + rtl_write_byte(rtlpriv, offset, value); + } + break; + + case PWR_CMD_POLLING: + RT_TRACE(COMP_INIT, DBG_TRACE, + ("rtl_hal_pwrseqcmdparsing(): PWR_CMD_POLLING\n")); + polling_bit = false; + offset = GET_PWR_CFG_OFFSET(pwr_cfg_cmd); + + do { + value = rtl_read_byte(rtlpriv, offset); + + value = value & GET_PWR_CFG_MASK(pwr_cfg_cmd); + if (value == (GET_PWR_CFG_VALUE(pwr_cfg_cmd) + & GET_PWR_CFG_MASK(pwr_cfg_cmd))) + polling_bit=true; + else + udelay(10); + + if (polling_count++ > max_polling_cnt) { + return false; + } + } while (!polling_bit); + + break; + + case PWR_CMD_DELAY: + RT_TRACE(COMP_INIT, DBG_TRACE, + ("rtl_hal_pwrseqcmdparsing(): PWR_CMD_DELAY\n")); + if (GET_PWR_CFG_VALUE(pwr_cfg_cmd) == PWRSEQ_DELAY_US) + udelay(GET_PWR_CFG_OFFSET(pwr_cfg_cmd)); + else + mdelay(GET_PWR_CFG_OFFSET(pwr_cfg_cmd)); + break; + + case PWR_CMD_END: + RT_TRACE(COMP_INIT, DBG_TRACE, + ("rtl_hal_pwrseqcmdparsing(): PWR_CMD_END\n")); + return true; + break; + + default: + RT_ASSERT(false, + ("rtl_hal_pwrseqcmdparsing(): Unknown CMD!!\n")); + break; + } + + } + + ary_idx++; + } while (1); + + return true; +} --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/pwrseqcmd.h +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/pwrseqcmd.h @@ -0,0 +1,71 @@ +#ifndef __RTL8821AE_PWRSEQCMD_H__ +#define __RTL8821AE_PWRSEQCMD_H__ + +#include "../wifi.h" +/*---------------------------------------------*/ +/*The value of cmd: 4 bits */ +/*---------------------------------------------*/ +#define PWR_CMD_READ 0x00 +#define PWR_CMD_WRITE 0x01 +#define PWR_CMD_POLLING 0x02 +#define PWR_CMD_DELAY 0x03 +#define PWR_CMD_END 0x04 + +/* define the base address of each block */ +#define PWR_BASEADDR_MAC 0x00 +#define PWR_BASEADDR_USB 0x01 +#define PWR_BASEADDR_PCIE 0x02 +#define PWR_BASEADDR_SDIO 0x03 + +#define PWR_INTF_SDIO_MSK BIT(0) +#define PWR_INTF_USB_MSK BIT(1) +#define PWR_INTF_PCI_MSK BIT(2) +#define PWR_INTF_ALL_MSK (BIT(0)|BIT(1)|BIT(2)|BIT(3)) + +#define PWR_FAB_TSMC_MSK BIT(0) +#define PWR_FAB_UMC_MSK BIT(1) +#define PWR_FAB_ALL_MSK (BIT(0)|BIT(1)|BIT(2)|BIT(3)) + +#define PWR_CUT_TESTCHIP_MSK BIT(0) +#define PWR_CUT_A_MSK BIT(1) +#define PWR_CUT_B_MSK BIT(2) +#define PWR_CUT_C_MSK BIT(3) +#define PWR_CUT_D_MSK BIT(4) +#define PWR_CUT_E_MSK BIT(5) +#define PWR_CUT_F_MSK BIT(6) +#define PWR_CUT_G_MSK BIT(7) +#define PWR_CUT_ALL_MSK 0xFF + + +enum pwrseq_delay_unit { + PWRSEQ_DELAY_US, + PWRSEQ_DELAY_MS, +}; + +struct wlan_pwr_cfg { + u16 offset; + u8 cut_msk; + u8 fab_msk:4; + u8 interface_msk:4; + u8 base:4; + u8 cmd:4; + u8 msk; + u8 value; + +}; + +#define GET_PWR_CFG_OFFSET(__PWR_CMD) __PWR_CMD.offset +#define GET_PWR_CFG_CUT_MASK(__PWR_CMD) __PWR_CMD.cut_msk +#define GET_PWR_CFG_FAB_MASK(__PWR_CMD) __PWR_CMD.fab_msk +#define GET_PWR_CFG_INTF_MASK(__PWR_CMD) __PWR_CMD.interface_msk +#define GET_PWR_CFG_BASE(__PWR_CMD) __PWR_CMD.base +#define GET_PWR_CFG_CMD(__PWR_CMD) __PWR_CMD.cmd +#define GET_PWR_CFG_MASK(__PWR_CMD) __PWR_CMD.msk +#define GET_PWR_CFG_VALUE(__PWR_CMD) __PWR_CMD.value + +bool rtl_hal_pwrseqcmdparsing(struct rtl_priv * rtlpriv, u8 cut_version, + u8 fab_version, u8 interface_type, + struct wlan_pwr_cfg pwrcfgcmd[]); + +#endif + --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/reg.h +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/reg.h @@ -0,0 +1,2427 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8821AE_REG_H__ +#define __RTL8821AE_REG_H__ + +#define TXPKT_BUF_SELECT 0x69 +#define RXPKT_BUF_SELECT 0xA5 +#define DISABLE_TRXPKT_BUF_ACCESS 0x0 + +#define REG_SYS_ISO_CTRL 0x0000 +#define REG_SYS_FUNC_EN 0x0002 +#define REG_APS_FSMCO 0x0004 +#define REG_SYS_CLKR 0x0008 +#define REG_9346CR 0x000A +#define REG_EE_VPD 0x000C +#define REG_AFE_MISC 0x0010 +#define REG_SPS0_CTRL 0x0011 +#define REG_SPS_OCP_CFG 0x0018 +#define REG_RSV_CTRL 0x001C +#define REG_RF_CTRL 0x001F +#define REG_LDOA15_CTRL 0x0020 +#define REG_LDOV12D_CTRL 0x0021 +#define REG_LDOHCI12_CTRL 0x0022 +#define REG_LPLDO_CTRL 0x0023 +#define REG_AFE_XTAL_CTRL 0x0024 +#define REG_AFE_LDO_CTRL 0x0027 /* 1.5v for 8188EE test chip, 1.4v for MP chip */ +#define REG_AFE_PLL_CTRL 0x0028 +#define REG_MAC_PHY_CTRL 0x002c +#define REG_EFUSE_CTRL 0x0030 +#define REG_EFUSE_TEST 0x0034 +#define REG_PWR_DATA 0x0038 +#define REG_CAL_TIMER 0x003C +#define REG_ACLK_MON 0x003E +#define REG_GPIO_MUXCFG 0x0040 +#define REG_GPIO_IO_SEL 0x0042 +#define REG_MAC_PINMUX_CFG 0x0043 +#define REG_GPIO_PIN_CTRL 0x0044 +#define REG_GPIO_INTM 0x0048 +#define REG_LEDCFG0 0x004C +#define REG_LEDCFG1 0x004D +#define REG_LEDCFG2 0x004E +#define REG_LEDCFG3 0x004F +#define REG_FSIMR 0x0050 +#define REG_FSISR 0x0054 +#define REG_HSIMR 0x0058 +#define REG_HSISR 0x005c +#define REG_GPIO_PIN_CTRL_2 0x0060 +#define REG_GPIO_IO_SEL_2 0x0062 +#define REG_MULTI_FUNC_CTRL 0x0068 +#define REG_GPIO_OUTPUT 0x006c +#define REG_OPT_CTRL 0x0074 +#define REG_AFE_XTAL_CTRL_EXT 0x0078 +#define REG_XCK_OUT_CTRL 0x007c +#define REG_MCUFWDL 0x0080 +#define REG_WOL_EVENT 0x0081 +#define REG_MCUTSTCFG 0x0084 + + +#define REG_HIMR 0x00B0 +#define REG_HISR 0x00B4 +#define REG_HIMRE 0x00B8 +#define REG_HISRE 0x00BC + +#define REG_PMC_DBG_CTRL2 0x00CC + +#define REG_EFUSE_ACCESS 0x00CF + +#define REG_BIST_SCAN 0x00D0 +#define REG_BIST_RPT 0x00D4 +#define REG_BIST_ROM_RPT 0x00D8 +#define REG_USB_SIE_INTF 0x00E0 +#define REG_PCIE_MIO_INTF 0x00E4 +#define REG_PCIE_MIO_INTD 0x00E8 +#define REG_HPON_FSM 0x00EC +#define REG_SYS_CFG 0x00F0 +#define REG_GPIO_OUTSTS 0x00F4 +#define REG_SYS_CFG1 0x00FC +#define REG_ROM_VERSION 0x00FD + +#define REG_CR 0x0100 +#define REG_PBP 0x0104 +#define REG_PKT_BUFF_ACCESS_CTRL 0x0106 +#define REG_TRXDMA_CTRL 0x010C +#define REG_TRXFF_BNDY 0x0114 +#define REG_TRXFF_STATUS 0x0118 +#define REG_RXFF_PTR 0x011C + +#define REG_CPWM 0x012F +#define REG_FWIMR 0x0130 +#define REG_FWISR 0x0134 +#define REG_PKTBUF_DBG_CTRL 0x0140 +#define REG_PKTBUF_DBG_DATA_L 0x0144 +#define REG_PKTBUF_DBG_DATA_H 0x0148 +#define REG_RXPKTBUF_CTRL (REG_PKTBUF_DBG_CTRL+2) + +#define REG_TC0_CTRL 0x0150 +#define REG_TC1_CTRL 0x0154 +#define REG_TC2_CTRL 0x0158 +#define REG_TC3_CTRL 0x015C +#define REG_TC4_CTRL 0x0160 +#define REG_TCUNIT_BASE 0x0164 +#define REG_MBIST_START 0x0174 +#define REG_MBIST_DONE 0x0178 +#define REG_MBIST_FAIL 0x017C +#define REG_32K_CTRL 0x0194 +#define REG_C2HEVT_MSG_NORMAL 0x01A0 +#define REG_C2HEVT_CLEAR 0x01AF +#define REG_C2HEVT_MSG_TEST 0x01B8 +#define REG_MCUTST_1 0x01c0 +#define REG_FMETHR 0x01C8 +#define REG_HMETFR 0x01CC +#define REG_HMEBOX_0 0x01D0 +#define REG_HMEBOX_1 0x01D4 +#define REG_HMEBOX_2 0x01D8 +#define REG_HMEBOX_3 0x01DC + +#define REG_LLT_INIT 0x01E0 +#define REG_BB_ACCEESS_CTRL 0x01E8 +#define REG_BB_ACCESS_DATA 0x01EC + +#define REG_HMEBOX_EXT_0 0x01F0 +#define REG_HMEBOX_EXT_1 0x01F4 +#define REG_HMEBOX_EXT_2 0x01F8 +#define REG_HMEBOX_EXT_3 0x01FC + +#define REG_RQPN 0x0200 +#define REG_FIFOPAGE 0x0204 +#define REG_TDECTRL 0x0208 +#define REG_TXDMA_OFFSET_CHK 0x020C +#define REG_TXDMA_STATUS 0x0210 +#define REG_RQPN_NPQ 0x0214 + +#define REG_RXDMA_AGG_PG_TH 0x0280 +#define REG_FW_UPD_RDPTR 0x0284 /* FW shall update this register before FW write RXPKT_RELEASE_POLL to 1 */ +#define REG_RXDMA_CONTROL 0x0286 /* Control the RX DMA.*/ +#define REG_RXPKT_NUM 0x0287 /* The number of packets in RXPKTBUF. */ + +#define REG_PCIE_CTRL_REG 0x0300 +#define REG_INT_MIG 0x0304 +#define REG_BCNQ_DESA 0x0308 +#define REG_HQ_DESA 0x0310 +#define REG_MGQ_DESA 0x0318 +#define REG_VOQ_DESA 0x0320 +#define REG_VIQ_DESA 0x0328 +#define REG_BEQ_DESA 0x0330 +#define REG_BKQ_DESA 0x0338 +#define REG_RX_DESA 0x0340 + +#define REG_DBI_WDATA 0x0348 +#define REG_DBI_RDATA 0x034C +#define REG_DBI_ADDR 0x0350 +#define REG_DBI_FLAG 0x0352 +#define REG_MDIO_WDATA 0x0354 +#define REG_MDIO_RDATA 0x0356 +#define REG_MDIO_CTL 0x0358 +#define REG_DBG_SEL 0x0360 +#define REG_PCIE_HRPWM 0x0361 +#define REG_PCIE_HCPWM 0x0363 +#define REG_UART_CTRL 0x0364 +#define REG_WATCH_DOG 0x0368 +#define REG_UART_TX_DESA 0x0370 +#define REG_UART_RX_DESA 0x0378 + + +#define REG_HDAQ_DESA_NODEF 0x0000 +#define REG_CMDQ_DESA_NODEF 0x0000 + +#define REG_VOQ_INFORMATION 0x0400 +#define REG_VIQ_INFORMATION 0x0404 +#define REG_BEQ_INFORMATION 0x0408 +#define REG_BKQ_INFORMATION 0x040C +#define REG_MGQ_INFORMATION 0x0410 +#define REG_HGQ_INFORMATION 0x0414 +#define REG_BCNQ_INFORMATION 0x0418 +#define REG_TXPKT_EMPTY 0x041A + + +#define REG_CPU_MGQ_INFORMATION 0x041C +#define REG_FWHW_TXQ_CTRL 0x0420 +#define REG_HWSEQ_CTRL 0x0423 +#define REG_TXPKTBUF_BCNQ_BDNY 0x0424 +#define REG_TXPKTBUF_MGQ_BDNY 0x0425 +#define REG_MULTI_BCNQ_EN 0x0426 +#define REG_MULTI_BCNQ_OFFSET 0x0427 +#define REG_SPEC_SIFS 0x0428 +#define REG_RL 0x042A +#define REG_DARFRC 0x0430 +#define REG_RARFRC 0x0438 +#define REG_RRSR 0x0440 +#define REG_ARFR0 0x0444 +#define REG_ARFR1 0x044C +#define REG_CCK_CHECK 0x0454 +#define REG_AMPDU_MAX_TIME 0x0456 +#define REG_AGGLEN_LMT 0x0458 +#define REG_AMPDU_MIN_SPACE 0x045C +#define REG_TXPKTBUF_WMAC_LBK_BF_HD 0x045D +#define REG_FAST_EDCA_CTRL 0x0460 +#define REG_RD_RESP_PKT_TH 0x0463 +#define REG_INIRTS_RATE_SEL 0x0480 +#define REG_INIDATA_RATE_SEL 0x0484 +#define REG_ARFR2 0x048C +#define REG_ARFR3 0x0494 +#define REG_POWER_STATUS 0x04A4 +#define REG_POWER_STAGE1 0x04B4 +#define REG_POWER_STAGE2 0x04B8 +#define REG_PKT_LIFE_TIME 0x04C0 +#define REG_STBC_SETTING 0x04C4 +#define REG_HT_SINGLE_AMPDU 0x04C7 +#define REG_PROT_MODE_CTRL 0x04C8 +#define REG_MAX_AGGR_NUM 0x04CA +#define REG_BAR_MODE_CTRL 0x04CC +#define REG_RA_TRY_RATE_AGG_LMT 0x04CF +#define REG_EARLY_MODE_CONTROL 0x04D0 +#define REG_NQOS_SEQ 0x04DC +#define REG_QOS_SEQ 0x04DE +#define REG_NEED_CPU_HANDLE 0x04E0 +#define REG_PKT_LOSE_RPT 0x04E1 +#define REG_PTCL_ERR_STATUS 0x04E2 +#define REG_TX_RPT_CTRL 0x04EC +#define REG_TX_RPT_TIME 0x04F0 +#define REG_DUMMY 0x04FC + +#define REG_EDCA_VO_PARAM 0x0500 +#define REG_EDCA_VI_PARAM 0x0504 +#define REG_EDCA_BE_PARAM 0x0508 +#define REG_EDCA_BK_PARAM 0x050C +#define REG_BCNTCFG 0x0510 +#define REG_PIFS 0x0512 +#define REG_RDG_PIFS 0x0513 +#define REG_SIFS_CTX 0x0514 +#define REG_SIFS_TRX 0x0516 +#define REG_AGGR_BREAK_TIME 0x051A +#define REG_SLOT 0x051B +#define REG_TX_PTCL_CTRL 0x0520 +#define REG_TXPAUSE 0x0522 +#define REG_DIS_TXREQ_CLR 0x0523 +#define REG_RD_CTRL 0x0524 +#define REG_TBTT_PROHIBIT 0x0540 +#define REG_RD_NAV_NXT 0x0544 +#define REG_NAV_PROT_LEN 0x0546 +#define REG_BCN_CTRL 0x0550 +#define REG_USTIME_TSF 0x0551 +#define REG_MBID_NUM 0x0552 +#define REG_DUAL_TSF_RST 0x0553 +#define REG_BCN_INTERVAL 0x0554 +#define REG_MBSSID_BCN_SPACE 0x0554 +#define REG_DRVERLYINT 0x0558 +#define REG_BCNDMATIM 0x0559 +#define REG_ATIMWND 0x055A +#define REG_BCN_MAX_ERR 0x055D +#define REG_RXTSF_OFFSET_CCK 0x055E +#define REG_RXTSF_OFFSET_OFDM 0x055F +#define REG_TSFTR 0x0560 +#define REG_INIT_TSFTR 0x0564 +#define REG_SECONDARY_CCA_CTRL 0x0577 +#define REG_PSTIMER 0x0580 +#define REG_TIMER0 0x0584 +#define REG_TIMER1 0x0588 +#define REG_ACMHWCTRL 0x05C0 +#define REG_ACMRSTCTRL 0x05C1 +#define REG_ACMAVG 0x05C2 +#define REG_VO_ADMTIME 0x05C4 +#define REG_VI_ADMTIME 0x05C6 +#define REG_BE_ADMTIME 0x05C8 +#define REG_EDCA_RANDOM_GEN 0x05CC +#define REG_NOA_DESC_SEL 0x05CF +#define REG_NOA_DESC_DURATION 0x05E0 +#define REG_NOA_DESC_INTERVAL 0x05E4 +#define REG_NOA_DESC_START 0x05E8 +#define REG_NOA_DESC_COUNT 0x05EC +#define REG_SCH_TX_CMD 0x05F8 + +#define REG_APSD_CTRL 0x0600 +#define REG_BWOPMODE 0x0603 +#define REG_TCR 0x0604 +#define REG_RCR 0x0608 +#define REG_RX_PKT_LIMIT 0x060C +#define REG_RX_DLK_TIME 0x060D +#define REG_RX_DRVINFO_SZ 0x060F + +#define REG_MACID 0x0610 +#define REG_BSSID 0x0618 +#define REG_MAR 0x0620 +#define REG_MBIDCAMCFG 0x0628 + +#define REG_USTIME_EDCA 0x0638 +#define REG_MAC_SPEC_SIFS 0x063A +#define REG_RESP_SIFS_CCK 0x063C +#define REG_RESP_SIFS_OFDM 0x063E +#define REG_ACKTO 0x0640 +#define REG_CTS2TO 0x0641 +#define REG_EIFS 0x0642 + +#define REG_NAV_CTRL 0x0650 +#define REG_NAV_UPPER 0x0652 +#define REG_BACAMCMD 0x0654 +#define REG_BACAMCONTENT 0x0658 +#define REG_LBDLY 0x0660 +#define REG_FWDLY 0x0661 +#define REG_RXERR_RPT 0x0664 +#define REG_TRXPTCL_CTL 0x0668 + +#define REG_CAMCMD 0x0670 +#define REG_CAMWRITE 0x0674 +#define REG_CAMREAD 0x0678 +#define REG_CAMDBG 0x067C +#define REG_SECCFG 0x0680 + +#define REG_WOW_CTRL 0x0690 +#define REG_PSSTATUS 0x0691 +#define REG_PS_RX_INFO 0x0692 +#define REG_UAPSD_TID 0x0693 +#define REG_LPNAV_CTRL 0x0694 +#define REG_WKFMCAM_NUM 0x0698 +#define REG_WKFMCAM_RWD 0x069C +#define REG_RXFLTMAP0 0x06A0 +#define REG_RXFLTMAP1 0x06A2 +#define REG_RXFLTMAP2 0x06A4 +#define REG_BCN_PSR_RPT 0x06A8 +#define REG_CALB32K_CTRL 0x06AC +#define REG_PKT_MON_CTRL 0x06B4 +#define REG_BT_COEX_TABLE 0x06C0 +#define REG_WMAC_RESP_TXINFO 0x06D8 + +#define REG_USB_INFO 0xFE17 +#define REG_USB_SPECIAL_OPTION 0xFE55 +#define REG_USB_DMA_AGG_TO 0xFE5B +#define REG_USB_AGG_TO 0xFE5C +#define REG_USB_AGG_TH 0xFE5D + +#define REG_TEST_USB_TXQS 0xFE48 +#define REG_TEST_SIE_VID 0xFE60 +#define REG_TEST_SIE_PID 0xFE62 +#define REG_TEST_SIE_OPTIONAL 0xFE64 +#define REG_TEST_SIE_CHIRP_K 0xFE65 +#define REG_TEST_SIE_PHY 0xFE66 +#define REG_TEST_SIE_MAC_ADDR 0xFE70 +#define REG_TEST_SIE_STRING 0xFE80 + +#define REG_NORMAL_SIE_VID 0xFE60 +#define REG_NORMAL_SIE_PID 0xFE62 +#define REG_NORMAL_SIE_OPTIONAL 0xFE64 +#define REG_NORMAL_SIE_EP 0xFE65 +#define REG_NORMAL_SIE_PHY 0xFE68 +#define REG_NORMAL_SIE_MAC_ADDR 0xFE70 +#define REG_NORMAL_SIE_STRING 0xFE80 + +#define CR9346 REG_9346CR +#define MSR (REG_CR + 2) +#define ISR REG_HISR +#define TSFR REG_TSFTR + +#define MACIDR0 REG_MACID +#define MACIDR4 (REG_MACID + 4) + +#define PBP REG_PBP + +#define IDR0 MACIDR0 +#define IDR4 MACIDR4 + +#define UNUSED_REGISTER 0x1BF +#define DCAM UNUSED_REGISTER +#define PSR UNUSED_REGISTER +#define BBADDR UNUSED_REGISTER +#define PHYDATAR UNUSED_REGISTER + +#define INVALID_BBRF_VALUE 0x12345678 + +#define MAX_MSS_DENSITY_2T 0x13 +#define MAX_MSS_DENSITY_1T 0x0A + +#define CMDEEPROM_EN BIT(5) +#define CMDEEPROM_SEL BIT(4) +#define CMD9346CR_9356SEL BIT(4) +#define AUTOLOAD_EEPROM (CMDEEPROM_EN|CMDEEPROM_SEL) +#define AUTOLOAD_EFUSE CMDEEPROM_EN + +#define GPIOSEL_GPIO 0 +#define GPIOSEL_ENBT BIT(5) + +#define GPIO_IN REG_GPIO_PIN_CTRL +#define GPIO_OUT (REG_GPIO_PIN_CTRL+1) +#define GPIO_IO_SEL (REG_GPIO_PIN_CTRL+2) +#define GPIO_MOD (REG_GPIO_PIN_CTRL+3) + +/* 8723/8188E Host System Interrupt Mask Register (offset 0x58, 32 byte) */ +#define HSIMR_GPIO12_0_INT_EN BIT(0) +#define HSIMR_SPS_OCP_INT_EN BIT(5) +#define HSIMR_RON_INT_EN BIT(6) +#define HSIMR_PDN_INT_EN BIT(7) +#define HSIMR_GPIO9_INT_EN BIT(25) + + +/* +* 8723/8188E Host System Interrupt Status Register (offset 0x5C, 32 byte) +*/ +#define HSISR_GPIO12_0_INT BIT(0) +#define HSISR_SPS_OCP_INT BIT(5) +#define HSISR_RON_INT_EN BIT(6) +#define HSISR_PDNINT BIT(7) +#define HSISR_GPIO9_INT BIT(25) + +#define MSR_NOLINK 0x00 +#define MSR_ADHOC 0x01 +#define MSR_INFRA 0x02 +#define MSR_AP 0x03 + +#define RRSR_RSC_OFFSET 21 +#define RRSR_SHORT_OFFSET 23 +#define RRSR_RSC_BW_40M 0x600000 +#define RRSR_RSC_UPSUBCHNL 0x400000 +#define RRSR_RSC_LOWSUBCHNL 0x200000 +#define RRSR_SHORT 0x800000 +#define RRSR_1M BIT(0) +#define RRSR_2M BIT(1) +#define RRSR_5_5M BIT(2) +#define RRSR_11M BIT(3) +#define RRSR_6M BIT(4) +#define RRSR_9M BIT(5) +#define RRSR_12M BIT(6) +#define RRSR_18M BIT(7) +#define RRSR_24M BIT(8) +#define RRSR_36M BIT(9) +#define RRSR_48M BIT(10) +#define RRSR_54M BIT(11) +#define RRSR_MCS0 BIT(12) +#define RRSR_MCS1 BIT(13) +#define RRSR_MCS2 BIT(14) +#define RRSR_MCS3 BIT(15) +#define RRSR_MCS4 BIT(16) +#define RRSR_MCS5 BIT(17) +#define RRSR_MCS6 BIT(18) +#define RRSR_MCS7 BIT(19) +#define BRSR_ACKSHORTPMB BIT(23) + +#define RATR_1M 0x00000001 +#define RATR_2M 0x00000002 +#define RATR_55M 0x00000004 +#define RATR_11M 0x00000008 +#define RATR_6M 0x00000010 +#define RATR_9M 0x00000020 +#define RATR_12M 0x00000040 +#define RATR_18M 0x00000080 +#define RATR_24M 0x00000100 +#define RATR_36M 0x00000200 +#define RATR_48M 0x00000400 +#define RATR_54M 0x00000800 +#define RATR_MCS0 0x00001000 +#define RATR_MCS1 0x00002000 +#define RATR_MCS2 0x00004000 +#define RATR_MCS3 0x00008000 +#define RATR_MCS4 0x00010000 +#define RATR_MCS5 0x00020000 +#define RATR_MCS6 0x00040000 +#define RATR_MCS7 0x00080000 +#define RATR_MCS8 0x00100000 +#define RATR_MCS9 0x00200000 +#define RATR_MCS10 0x00400000 +#define RATR_MCS11 0x00800000 +#define RATR_MCS12 0x01000000 +#define RATR_MCS13 0x02000000 +#define RATR_MCS14 0x04000000 +#define RATR_MCS15 0x08000000 + +#define RATE_1M BIT(0) +#define RATE_2M BIT(1) +#define RATE_5_5M BIT(2) +#define RATE_11M BIT(3) +#define RATE_6M BIT(4) +#define RATE_9M BIT(5) +#define RATE_12M BIT(6) +#define RATE_18M BIT(7) +#define RATE_24M BIT(8) +#define RATE_36M BIT(9) +#define RATE_48M BIT(10) +#define RATE_54M BIT(11) +#define RATE_MCS0 BIT(12) +#define RATE_MCS1 BIT(13) +#define RATE_MCS2 BIT(14) +#define RATE_MCS3 BIT(15) +#define RATE_MCS4 BIT(16) +#define RATE_MCS5 BIT(17) +#define RATE_MCS6 BIT(18) +#define RATE_MCS7 BIT(19) +#define RATE_MCS8 BIT(20) +#define RATE_MCS9 BIT(21) +#define RATE_MCS10 BIT(22) +#define RATE_MCS11 BIT(23) +#define RATE_MCS12 BIT(24) +#define RATE_MCS13 BIT(25) +#define RATE_MCS14 BIT(26) +#define RATE_MCS15 BIT(27) + +#define RATE_ALL_CCK (RATR_1M | RATR_2M | RATR_55M | RATR_11M) +#define RATE_ALL_OFDM_AG (RATR_6M | RATR_9M | RATR_12M | RATR_18M |\ + RATR_24M| RATR_36M | RATR_48M | RATR_54M) +#define RATE_ALL_OFDM_1SS (RATR_MCS0 | RATR_MCS1 | RATR_MCS2 |\ + RATR_MCS3 | RATR_MCS4 | RATR_MCS5 |\ + RATR_MCS6 | RATR_MCS7) +#define RATE_ALL_OFDM_2SS (RATR_MCS8 | RATR_MCS9 | RATR_MCS10 |\ + RATR_MCS11| RATR_MCS12 | RATR_MCS13 |\ + RATR_MCS14 | RATR_MCS15) + +#define BW_OPMODE_20MHZ BIT(2) +#define BW_OPMODE_5G BIT(1) +#define BW_OPMODE_11J BIT(0) + +#define CAM_VALID BIT(15) +#define CAM_NOTVALID 0x0000 +#define CAM_USEDK BIT(5) + +#define CAM_NONE 0x0 +#define CAM_WEP40 0x01 +#define CAM_TKIP 0x02 +#define CAM_AES 0x04 +#define CAM_WEP104 0x05 + +#define TOTAL_CAM_ENTRY 32 +#define HALF_CAM_ENTRY 16 + +#define CAM_WRITE BIT(16) +#define CAM_READ 0x00000000 +#define CAM_POLLINIG BIT(31) + +#define SCR_USEDK 0x01 +#define SCR_TXSEC_ENABLE 0x02 +#define SCR_RXSEC_ENABLE 0x04 + +#define WOW_PMEN BIT(0) +#define WOW_WOMEN BIT(1) +#define WOW_MAGIC BIT(2) +#define WOW_UWF BIT(3) + +/********************************************* +* 8188 IMR/ISR bits +**********************************************/ +#define IMR_DISABLED 0x0 +/* IMR DW0(0x0060-0063) Bit 0-31 */ +#define IMR_TXCCK BIT(30) /* TXRPT interrupt when CCX bit of the packet is set */ +#define IMR_PSTIMEOUT BIT(29) /* Power Save Time Out Interrupt */ +#define IMR_GTINT4 BIT(28) /* When GTIMER4 expires, this bit is set to 1 */ +#define IMR_GTINT3 BIT(27) /* When GTIMER3 expires, this bit is set to 1 */ +#define IMR_TBDER BIT(26) /* Transmit Beacon0 Error */ +#define IMR_TBDOK BIT(25) /* Transmit Beacon0 OK */ +#define IMR_TSF_BIT32_TOGGLE BIT(24) /* TSF Timer BIT32 toggle indication interrupt */ +#define IMR_BCNDMAINT0 BIT(20) /* Beacon DMA Interrupt 0 */ +#define IMR_BCNDOK0 BIT(16) /* Beacon Queue DMA OK0 */ +#define IMR_HSISR_IND_ON_INT BIT(15) /* HSISR Indicator (HSIMR & HSISR is true, this bit is set to 1) */ +#define IMR_BCNDMAINT_E BIT(14) /* Beacon DMA Interrupt Extension for Win7 */ +#define IMR_ATIMEND BIT(12) /* CTWidnow End or ATIM Window End */ +#define IMR_HISR1_IND_INT BIT(11) /* HISR1 Indicator (HISR1 & HIMR1 is true, this bit is set to 1)*/ +#define IMR_C2HCMD BIT(10) /* CPU to Host Command INT Status, Write 1 clear */ +#define IMR_CPWM2 BIT(9) /* CPU power Mode exchange INT Status, Write 1 clear */ +#define IMR_CPWM BIT(8) /* CPU power Mode exchange INT Status, Write 1 clear */ +#define IMR_HIGHDOK BIT(7) /* High Queue DMA OK */ +#define IMR_MGNTDOK BIT(6) /* Management Queue DMA OK */ +#define IMR_BKDOK BIT(5) /* AC_BK DMA OK */ +#define IMR_BEDOK BIT(4) /* AC_BE DMA OK */ +#define IMR_VIDOK BIT(3) /* AC_VI DMA OK */ +#define IMR_VODOK BIT(2) /* AC_VO DMA OK */ +#define IMR_RDU BIT(1) /* Rx Descriptor Unavailable */ +#define IMR_ROK BIT(0) /* Receive DMA OK */ + +/* IMR DW1(0x00B4-00B7) Bit 0-31 */ +#define IMR_BCNDMAINT7 BIT(27) /* Beacon DMA Interrupt 7 */ +#define IMR_BCNDMAINT6 BIT(26) /* Beacon DMA Interrupt 6 */ +#define IMR_BCNDMAINT5 BIT(25) /* Beacon DMA Interrupt 5 */ +#define IMR_BCNDMAINT4 BIT(24) /* Beacon DMA Interrupt 4 */ +#define IMR_BCNDMAINT3 BIT(23) /* Beacon DMA Interrupt 3 */ +#define IMR_BCNDMAINT2 BIT(22) /* Beacon DMA Interrupt 2 */ +#define IMR_BCNDMAINT1 BIT(21) /* Beacon DMA Interrupt 1 */ +#define IMR_BCNDOK7 BIT(20) /* Beacon Queue DMA OK Interrup 7 */ +#define IMR_BCNDOK6 BIT(19) /* Beacon Queue DMA OK Interrup 6 */ +#define IMR_BCNDOK5 BIT(18) /* Beacon Queue DMA OK Interrup 5 */ +#define IMR_BCNDOK4 BIT(17) /* Beacon Queue DMA OK Interrup 4 */ +#define IMR_BCNDOK3 BIT(16) /* Beacon Queue DMA OK Interrup 3 */ +#define IMR_BCNDOK2 BIT(15) /* Beacon Queue DMA OK Interrup 2 */ +#define IMR_BCNDOK1 BIT(14) /* Beacon Queue DMA OK Interrup 1 */ +#define IMR_ATIMEND_E BIT(13) /* ATIM Window End Extension for Win7 */ +#define IMR_TXERR BIT(11) /* Tx Error Flag Interrupt Status, write 1 clear. */ +#define IMR_RXERR BIT(10) /* Rx Error Flag INT Status, Write 1 clear */ +#define IMR_TXFOVW BIT(9) /* Transmit FIFO Overflow */ +#define IMR_RXFOVW BIT(8) /* Receive FIFO Overflow */ + + +#define HWSET_MAX_SIZE 512 +#define EFUSE_MAX_SECTION 64 +#define EFUSE_REAL_CONTENT_LEN 256 +#define EFUSE_OOB_PROTECT_BYTES 18 /* PG data exclude header, dummy 7 bytes frome CP test and reserved 1byte.*/ + + +#define EEPROM_DEFAULT_TSSI 0x0 +#define EEPROM_DEFAULT_TXPOWERDIFF 0x0 +#define EEPROM_DEFAULT_CRYSTALCAP 0x5 +#define EEPROM_DEFAULT_BOARDTYPE 0x02 +#define EEPROM_DEFAULT_TXPOWER 0x1010 +#define EEPROM_DEFAULT_HT2T_TXPWR 0x10 + +#define EEPROM_DEFAULT_LEGACYHTTXPOWERDIFF 0x3 +#define EEPROM_DEFAULT_THERMALMETER 0x18 +#define EEPROM_DEFAULT_ANTTXPOWERDIFF 0x0 +#define EEPROM_DEFAULT_TXPWDIFF_CRYSTALCAP 0x5 +#define EEPROM_DEFAULT_TXPOWERLEVEL 0x22 +#define EEPROM_DEFAULT_HT40_2SDIFF 0x0 +#define EEPROM_DEFAULT_HT20_DIFF 2 +#define EEPROM_DEFAULT_LEGACYHTTXPOWERDIFF 0x3 +#define EEPROM_DEFAULT_HT40_PWRMAXOFFSET 0 +#define EEPROM_DEFAULT_HT20_PWRMAXOFFSET 0 + +#define RF_OPTION1 0x79 +#define RF_OPTION2 0x7A +#define RF_OPTION3 0x7B +#define RF_OPTION4 0xC3 + +#define EEPROM_DEFAULT_PID 0x1234 +#define EEPROM_DEFAULT_VID 0x5678 +#define EEPROM_DEFAULT_CUSTOMERID 0xAB +#define EEPROM_DEFAULT_SUBCUSTOMERID 0xCD +#define EEPROM_DEFAULT_VERSION 0 + +#define EEPROM_CHANNEL_PLAN_FCC 0x0 +#define EEPROM_CHANNEL_PLAN_IC 0x1 +#define EEPROM_CHANNEL_PLAN_ETSI 0x2 +#define EEPROM_CHANNEL_PLAN_SPAIN 0x3 +#define EEPROM_CHANNEL_PLAN_FRANCE 0x4 +#define EEPROM_CHANNEL_PLAN_MKK 0x5 +#define EEPROM_CHANNEL_PLAN_MKK1 0x6 +#define EEPROM_CHANNEL_PLAN_ISRAEL 0x7 +#define EEPROM_CHANNEL_PLAN_TELEC 0x8 +#define EEPROM_CHANNEL_PLAN_GLOBAL_DOMAIN 0x9 +#define EEPROM_CHANNEL_PLAN_WORLD_WIDE_13 0xA +#define EEPROM_CHANNEL_PLAN_NCC 0xB +#define EEPROM_CHANNEL_PLAN_BY_HW_MASK 0x80 + +#define EEPROM_CID_DEFAULT 0x0 +#define EEPROM_CID_TOSHIBA 0x4 +#define EEPROM_CID_CCX 0x10 +#define EEPROM_CID_QMI 0x0D +#define EEPROM_CID_WHQL 0xFE + +#define RTL_EEPROM_ID 0x8129 + +#define EEPROM_HPON 0x02 +#define EEPROM_CLK 0x06 +#define EEPROM_TESTR 0x08 + + +#define EEPROM_TXPOWERCCK 0x10 +#define EEPROM_TXPOWERHT40_1S 0x16 +#define EEPROM_TXPOWERHT20DIFF 0x1B +#define EEPROM_TXPOWER_OFDMDIFF 0x1B + + + +#define EEPROM_TX_PWR_INX 0x10 + +#define EEPROM_CHANNELPLAN 0xB8 +#define EEPROM_XTAL_8821AE 0xB9 +#define EEPROM_THERMAL_METER 0xBA +#define EEPROM_IQK_LCK_88E 0xBB + +#define EEPROM_RF_BOARD_OPTION 0xC1 +#define EEPROM_RF_FEATURE_OPTION_88E 0xC2 +#define EEPROM_RF_BT_SETTING 0xC3 +#define EEPROM_VERSION 0xC4 +#define EEPROM_CUSTOMER_ID 0xC5 +#define EEPROM_RF_ANTENNA_OPT_88E 0xC9 + +#define EEPROM_MAC_ADDR 0xD0 +#define EEPROM_VID 0xD6 +#define EEPROM_DID 0xD8 +#define EEPROM_SVID 0xDA +#define EEPROM_SMID 0xDC + +#define STOPBECON BIT(6) +#define STOPHIGHT BIT(5) +#define STOPMGT BIT(4) +#define STOPVO BIT(3) +#define STOPVI BIT(2) +#define STOPBE BIT(1) +#define STOPBK BIT(0) + +#define RCR_APPFCS BIT(31) +#define RCR_APP_MIC BIT(30) +#define RCR_APP_ICV BIT(29) +#define RCR_APP_PHYST_RXFF BIT(28) +#define RCR_APP_BA_SSN BIT(27) +#define RCR_NONQOS_VHT BIT(26) +#define RCR_ENMBID BIT(24) +#define RCR_LSIGEN BIT(23) +#define RCR_MFBEN BIT(22) +#define RCR_HTC_LOC_CTRL BIT(14) +#define RCR_AMF BIT(13) +#define RCR_ACF BIT(12) +#define RCR_ADF BIT(11) +#define RCR_AICV BIT(9) +#define RCR_ACRC32 BIT(8) +#define RCR_CBSSID_BCN BIT(7) +#define RCR_CBSSID_DATA BIT(6) +#define RCR_CBSSID RCR_CBSSID_DATA +#define RCR_APWRMGT BIT(5) +#define RCR_ADD3 BIT(4) +#define RCR_AB BIT(3) +#define RCR_AM BIT(2) +#define RCR_APM BIT(1) +#define RCR_AAP BIT(0) +#define RCR_MXDMA_OFFSET 8 +#define RCR_FIFO_OFFSET 13 + +#define RSV_CTRL 0x001C +#define RD_CTRL 0x0524 + +#define REG_USB_INFO 0xFE17 +#define REG_USB_SPECIAL_OPTION 0xFE55 +#define REG_USB_DMA_AGG_TO 0xFE5B +#define REG_USB_AGG_TO 0xFE5C +#define REG_USB_AGG_TH 0xFE5D + +#define REG_USB_VID 0xFE60 +#define REG_USB_PID 0xFE62 +#define REG_USB_OPTIONAL 0xFE64 +#define REG_USB_CHIRP_K 0xFE65 +#define REG_USB_PHY 0xFE66 +#define REG_USB_MAC_ADDR 0xFE70 +#define REG_USB_HRPWM 0xFE58 +#define REG_USB_HCPWM 0xFE57 + +#define SW18_FPWM BIT(3) + +#define ISO_MD2PP BIT(0) +#define ISO_UA2USB BIT(1) +#define ISO_UD2CORE BIT(2) +#define ISO_PA2PCIE BIT(3) +#define ISO_PD2CORE BIT(4) +#define ISO_IP2MAC BIT(5) +#define ISO_DIOP BIT(6) +#define ISO_DIOE BIT(7) +#define ISO_EB2CORE BIT(8) +#define ISO_DIOR BIT(9) + +#define PWC_EV25V BIT(14) +#define PWC_EV12V BIT(15) + +#define FEN_BBRSTB BIT(0) +#define FEN_BB_GLB_RSTN BIT(1) +#define FEN_USBA BIT(2) +#define FEN_UPLL BIT(3) +#define FEN_USBD BIT(4) +#define FEN_DIO_PCIE BIT(5) +#define FEN_PCIEA BIT(6) +#define FEN_PPLL BIT(7) +#define FEN_PCIED BIT(8) +#define FEN_DIOE BIT(9) +#define FEN_CPUEN BIT(10) +#define FEN_DCORE BIT(11) +#define FEN_ELDR BIT(12) +#define FEN_DIO_RF BIT(13) +#define FEN_HWPDN BIT(14) +#define FEN_MREGEN BIT(15) + +#define PFM_LDALL BIT(0) +#define PFM_ALDN BIT(1) +#define PFM_LDKP BIT(2) +#define PFM_WOWL BIT(3) +#define EnPDN BIT(4) +#define PDN_PL BIT(5) +#define APFM_ONMAC BIT(8) +#define APFM_OFF BIT(9) +#define APFM_RSM BIT(10) +#define AFSM_HSUS BIT(11) +#define AFSM_PCIE BIT(12) +#define APDM_MAC BIT(13) +#define APDM_HOST BIT(14) +#define APDM_HPDN BIT(15) +#define RDY_MACON BIT(16) +#define SUS_HOST BIT(17) +#define ROP_ALD BIT(20) +#define ROP_PWR BIT(21) +#define ROP_SPS BIT(22) +#define SOP_MRST BIT(25) +#define SOP_FUSE BIT(26) +#define SOP_ABG BIT(27) +#define SOP_AMB BIT(28) +#define SOP_RCK BIT(29) +#define SOP_A8M BIT(30) +#define XOP_BTCK BIT(31) + +#define ANAD16V_EN BIT(0) +#define ANA8M BIT(1) +#define MACSLP BIT(4) +#define LOADER_CLK_EN BIT(5) +#define _80M_SSC_DIS BIT(7) +#define _80M_SSC_EN_HO BIT(8) +#define PHY_SSC_RSTB BIT(9) +#define SEC_CLK_EN BIT(10) +#define MAC_CLK_EN BIT(11) +#define SYS_CLK_EN BIT(12) +#define RING_CLK_EN BIT(13) + +#define BOOT_FROM_EEPROM BIT(4) +#define EEPROM_EN BIT(5) + +#define AFE_BGEN BIT(0) +#define AFE_MBEN BIT(1) +#define MAC_ID_EN BIT(7) + +#define WLOCK_ALL BIT(0) +#define WLOCK_00 BIT(1) +#define WLOCK_04 BIT(2) +#define WLOCK_08 BIT(3) +#define WLOCK_40 BIT(4) +#define R_DIS_PRST_0 BIT(5) +#define R_DIS_PRST_1 BIT(6) +#define LOCK_ALL_EN BIT(7) + +#define RF_EN BIT(0) +#define RF_RSTB BIT(1) +#define RF_SDMRSTB BIT(2) + +#define LDA15_EN BIT(0) +#define LDA15_STBY BIT(1) +#define LDA15_OBUF BIT(2) +#define LDA15_REG_VOS BIT(3) +#define _LDA15_VOADJ(x) (((x) & 0x7) << 4) + +#define LDV12_EN BIT(0) +#define LDV12_SDBY BIT(1) +#define LPLDO_HSM BIT(2) +#define LPLDO_LSM_DIS BIT(3) +#define _LDV12_VADJ(x) (((x) & 0xF) << 4) + +#define XTAL_EN BIT(0) +#define XTAL_BSEL BIT(1) +#define _XTAL_BOSC(x) (((x) & 0x3) << 2) +#define _XTAL_CADJ(x) (((x) & 0xF) << 4) +#define XTAL_GATE_USB BIT(8) +#define _XTAL_USB_DRV(x) (((x) & 0x3) << 9) +#define XTAL_GATE_AFE BIT(11) +#define _XTAL_AFE_DRV(x) (((x) & 0x3) << 12) +#define XTAL_RF_GATE BIT(14) +#define _XTAL_RF_DRV(x) (((x) & 0x3) << 15) +#define XTAL_GATE_DIG BIT(17) +#define _XTAL_DIG_DRV(x) (((x) & 0x3) << 18) +#define XTAL_BT_GATE BIT(20) +#define _XTAL_BT_DRV(x) (((x) & 0x3) << 21) +#define _XTAL_GPIO(x) (((x) & 0x7) << 23) + +#define CKDLY_AFE BIT(26) +#define CKDLY_USB BIT(27) +#define CKDLY_DIG BIT(28) +#define CKDLY_BT BIT(29) + +#define APLL_EN BIT(0) +#define APLL_320_EN BIT(1) +#define APLL_FREF_SEL BIT(2) +#define APLL_EDGE_SEL BIT(3) +#define APLL_WDOGB BIT(4) +#define APLL_LPFEN BIT(5) + +#define APLL_REF_CLK_13MHZ 0x1 +#define APLL_REF_CLK_19_2MHZ 0x2 +#define APLL_REF_CLK_20MHZ 0x3 +#define APLL_REF_CLK_25MHZ 0x4 +#define APLL_REF_CLK_26MHZ 0x5 +#define APLL_REF_CLK_38_4MHZ 0x6 +#define APLL_REF_CLK_40MHZ 0x7 + +#define APLL_320EN BIT(14) +#define APLL_80EN BIT(15) +#define APLL_1MEN BIT(24) + +#define ALD_EN BIT(18) +#define EF_PD BIT(19) +#define EF_FLAG BIT(31) + +#define EF_TRPT BIT(7) +#define LDOE25_EN BIT(31) + +#define RSM_EN BIT(0) +#define Timer_EN BIT(4) + +#define TRSW0EN BIT(2) +#define TRSW1EN BIT(3) +#define EROM_EN BIT(4) +#define EnBT BIT(5) +#define EnUart BIT(8) +#define Uart_910 BIT(9) +#define EnPMAC BIT(10) +#define SIC_SWRST BIT(11) +#define EnSIC BIT(12) +#define SIC_23 BIT(13) +#define EnHDP BIT(14) +#define SIC_LBK BIT(15) + +#define LED0PL BIT(4) +#define LED1PL BIT(12) +#define LED0DIS BIT(7) + +#define MCUFWDL_EN BIT(0) +#define MCUFWDL_RDY BIT(1) +#define FWDL_CHKSUM_RPT BIT(2) +#define MACINI_RDY BIT(3) +#define BBINI_RDY BIT(4) +#define RFINI_RDY BIT(5) +#define WINTINI_RDY BIT(6) +#define CPRST BIT(23) + +#define XCLK_VLD BIT(0) +#define ACLK_VLD BIT(1) +#define UCLK_VLD BIT(2) +#define PCLK_VLD BIT(3) +#define PCIRSTB BIT(4) +#define V15_VLD BIT(5) +#define TRP_B15V_EN BIT(7) +#define SIC_IDLE BIT(8) +#define BD_MAC2 BIT(9) +#define BD_MAC1 BIT(10) +#define IC_MACPHY_MODE BIT(11) +#define VENDOR_ID BIT(19) +#define PAD_HWPD_IDN BIT(22) +#define TRP_VAUX_EN BIT(23) +#define TRP_BT_EN BIT(24) +#define BD_PKG_SEL BIT(25) +#define BD_HCI_SEL BIT(26) +#define TYPE_ID BIT(27) + +#define CHIP_VER_RTL_MASK 0xF000 +#define CHIP_VER_RTL_SHIFT 12 + +#define REG_LBMODE (REG_CR + 3) + +#define HCI_TXDMA_EN BIT(0) +#define HCI_RXDMA_EN BIT(1) +#define TXDMA_EN BIT(2) +#define RXDMA_EN BIT(3) +#define PROTOCOL_EN BIT(4) +#define SCHEDULE_EN BIT(5) +#define MACTXEN BIT(6) +#define MACRXEN BIT(7) +#define ENSWBCN BIT(8) +#define ENSEC BIT(9) + +#define _NETTYPE(x) (((x) & 0x3) << 16) +#define MASK_NETTYPE 0x30000 +#define NT_NO_LINK 0x0 +#define NT_LINK_AD_HOC 0x1 +#define NT_LINK_AP 0x2 +#define NT_AS_AP 0x3 + +#define _LBMODE(x) (((x) & 0xF) << 24) +#define MASK_LBMODE 0xF000000 +#define LOOPBACK_NORMAL 0x0 +#define LOOPBACK_IMMEDIATELY 0xB +#define LOOPBACK_MAC_DELAY 0x3 +#define LOOPBACK_PHY 0x1 +#define LOOPBACK_DMA 0x7 + +#define GET_RX_PAGE_SIZE(value) ((value) & 0xF) +#define GET_TX_PAGE_SIZE(value) (((value) & 0xF0) >> 4) +#define _PSRX_MASK 0xF +#define _PSTX_MASK 0xF0 +#define _PSRX(x) (x) +#define _PSTX(x) ((x) << 4) + +#define PBP_64 0x0 +#define PBP_128 0x1 +#define PBP_256 0x2 +#define PBP_512 0x3 +#define PBP_1024 0x4 + +#define RXDMA_ARBBW_EN BIT(0) +#define RXSHFT_EN BIT(1) +#define RXDMA_AGG_EN BIT(2) +#define QS_VO_QUEUE BIT(8) +#define QS_VI_QUEUE BIT(9) +#define QS_BE_QUEUE BIT(10) +#define QS_BK_QUEUE BIT(11) +#define QS_MANAGER_QUEUE BIT(12) +#define QS_HIGH_QUEUE BIT(13) + +#define HQSEL_VOQ BIT(0) +#define HQSEL_VIQ BIT(1) +#define HQSEL_BEQ BIT(2) +#define HQSEL_BKQ BIT(3) +#define HQSEL_MGTQ BIT(4) +#define HQSEL_HIQ BIT(5) + +#define _TXDMA_HIQ_MAP(x) (((x)&0x3) << 14) +#define _TXDMA_MGQ_MAP(x) (((x)&0x3) << 12) +#define _TXDMA_BKQ_MAP(x) (((x)&0x3) << 10) +#define _TXDMA_BEQ_MAP(x) (((x)&0x3) << 8 ) +#define _TXDMA_VIQ_MAP(x) (((x)&0x3) << 6 ) +#define _TXDMA_VOQ_MAP(x) (((x)&0x3) << 4 ) + +#define QUEUE_LOW 1 +#define QUEUE_NORMAL 2 +#define QUEUE_HIGH 3 + +#define _LLT_NO_ACTIVE 0x0 +#define _LLT_WRITE_ACCESS 0x1 +#define _LLT_READ_ACCESS 0x2 + +#define _LLT_INIT_DATA(x) ((x) & 0xFF) +#define _LLT_INIT_ADDR(x) (((x) & 0xFF) << 8) +#define _LLT_OP(x) (((x) & 0x3) << 30) +#define _LLT_OP_VALUE(x) (((x) >> 30) & 0x3) + +#define BB_WRITE_READ_MASK (BIT(31) | BIT(30)) +#define BB_WRITE_EN BIT(30) +#define BB_READ_EN BIT(31) + +#define _HPQ(x) ((x) & 0xFF) +#define _LPQ(x) (((x) & 0xFF) << 8) +#define _PUBQ(x) (((x) & 0xFF) << 16) +#define _NPQ(x) ((x) & 0xFF) + +#define HPQ_PUBLIC_DIS BIT(24) +#define LPQ_PUBLIC_DIS BIT(25) +#define LD_RQPN BIT(31) + +#define BCN_VALID BIT(16) +#define BCN_HEAD(x) (((x) & 0xFF) << 8) +#define BCN_HEAD_MASK 0xFF00 + +#define BLK_DESC_NUM_SHIFT 4 +#define BLK_DESC_NUM_MASK 0xF + +#define DROP_DATA_EN BIT(9) + +#define EN_AMPDU_RTY_NEW BIT(7) + +#define _INIRTSMCS_SEL(x) ((x) & 0x3F) + +#define _SPEC_SIFS_CCK(x) ((x) & 0xFF) +#define _SPEC_SIFS_OFDM(x) (((x) & 0xFF) << 8) + +#define RATE_REG_BITMAP_ALL 0xFFFFF + +#define _RRSC_BITMAP(x) ((x) & 0xFFFFF) + +#define _RRSR_RSC(x) (((x) & 0x3) << 21) +#define RRSR_RSC_RESERVED 0x0 +#define RRSR_RSC_UPPER_SUBCHANNEL 0x1 +#define RRSR_RSC_LOWER_SUBCHANNEL 0x2 +#define RRSR_RSC_DUPLICATE_MODE 0x3 + +#define USE_SHORT_G1 BIT(20) + +#define _AGGLMT_MCS0(x) ((x) & 0xF) +#define _AGGLMT_MCS1(x) (((x) & 0xF) << 4) +#define _AGGLMT_MCS2(x) (((x) & 0xF) << 8) +#define _AGGLMT_MCS3(x) (((x) & 0xF) << 12) +#define _AGGLMT_MCS4(x) (((x) & 0xF) << 16) +#define _AGGLMT_MCS5(x) (((x) & 0xF) << 20) +#define _AGGLMT_MCS6(x) (((x) & 0xF) << 24) +#define _AGGLMT_MCS7(x) (((x) & 0xF) << 28) + +#define RETRY_LIMIT_SHORT_SHIFT 8 +#define RETRY_LIMIT_LONG_SHIFT 0 + +#define _DARF_RC1(x) ((x) & 0x1F) +#define _DARF_RC2(x) (((x) & 0x1F) << 8) +#define _DARF_RC3(x) (((x) & 0x1F) << 16) +#define _DARF_RC4(x) (((x) & 0x1F) << 24) +#define _DARF_RC5(x) ((x) & 0x1F) +#define _DARF_RC6(x) (((x) & 0x1F) << 8) +#define _DARF_RC7(x) (((x) & 0x1F) << 16) +#define _DARF_RC8(x) (((x) & 0x1F) << 24) + +#define _RARF_RC1(x) ((x) & 0x1F) +#define _RARF_RC2(x) (((x) & 0x1F) << 8) +#define _RARF_RC3(x) (((x) & 0x1F) << 16) +#define _RARF_RC4(x) (((x) & 0x1F) << 24) +#define _RARF_RC5(x) ((x) & 0x1F) +#define _RARF_RC6(x) (((x) & 0x1F) << 8) +#define _RARF_RC7(x) (((x) & 0x1F) << 16) +#define _RARF_RC8(x) (((x) & 0x1F) << 24) + +#define AC_PARAM_TXOP_LIMIT_OFFSET 16 +#define AC_PARAM_ECW_MAX_OFFSET 12 +#define AC_PARAM_ECW_MIN_OFFSET 8 +#define AC_PARAM_AIFS_OFFSET 0 + +#define _AIFS(x) (x) +#define _ECW_MAX_MIN(x) ((x) << 8) +#define _TXOP_LIMIT(x) ((x) << 16) + +#define _BCNIFS(x) ((x) & 0xFF) +#define _BCNECW(x) ((((x) & 0xF))<< 8) + +#define _LRL(x) ((x) & 0x3F) +#define _SRL(x) (((x) & 0x3F) << 8) + +#define _SIFS_CCK_CTX(x) ((x) & 0xFF) +#define _SIFS_CCK_TRX(x) (((x) & 0xFF) << 8); + +#define _SIFS_OFDM_CTX(x) ((x) & 0xFF) +#define _SIFS_OFDM_TRX(x) (((x) & 0xFF) << 8); + +#define _TBTT_PROHIBIT_HOLD(x) (((x) & 0xFF) << 8) + +#define DIS_EDCA_CNT_DWN BIT(11) + +#define EN_MBSSID BIT(1) +#define EN_TXBCN_RPT BIT(2) +#define EN_BCN_FUNCTION BIT(3) + +#define TSFTR_RST BIT(0) +#define TSFTR1_RST BIT(1) + +#define STOP_BCNQ BIT(6) + +#define DIS_TSF_UDT0_NORMAL_CHIP BIT(4) +#define DIS_TSF_UDT0_TEST_CHIP BIT(5) + +#define AcmHw_HwEn BIT(0) +#define AcmHw_BeqEn BIT(1) +#define AcmHw_ViqEn BIT(2) +#define AcmHw_VoqEn BIT(3) +#define AcmHw_BeqStatus BIT(4) +#define AcmHw_ViqStatus BIT(5) +#define AcmHw_VoqStatus BIT(6) + +#define APSDOFF BIT(6) +#define APSDOFF_STATUS BIT(7) + +#define BW_20MHZ BIT(2) + +#define RATE_BITMAP_ALL 0xFFFFF + +#define RATE_RRSR_CCK_ONLY_1M 0xFFFF1 + +#define TSFRST BIT(0) +#define DIS_GCLK BIT(1) +#define PAD_SEL BIT(2) +#define PWR_ST BIT(6) +#define PWRBIT_OW_EN BIT(7) +#define ACRC BIT(8) +#define CFENDFORM BIT(9) +#define ICV BIT(10) + +#define AAP BIT(0) +#define APM BIT(1) +#define AM BIT(2) +#define AB BIT(3) +#define ADD3 BIT(4) +#define APWRMGT BIT(5) +#define CBSSID BIT(6) +#define CBSSID_DATA BIT(6) +#define CBSSID_BCN BIT(7) +#define ACRC32 BIT(8) +#define AICV BIT(9) +#define ADF BIT(11) +#define ACF BIT(12) +#define AMF BIT(13) +#define HTC_LOC_CTRL BIT(14) +#define UC_DATA_EN BIT(16) +#define BM_DATA_EN BIT(17) +#define MFBEN BIT(22) +#define LSIGEN BIT(23) +#define EnMBID BIT(24) +#define APP_BASSN BIT(27) +#define APP_PHYSTS BIT(28) +#define APP_ICV BIT(29) +#define APP_MIC BIT(30) +#define APP_FCS BIT(31) + +#define _MIN_SPACE(x) ((x) & 0x7) +#define _SHORT_GI_PADDING(x) (((x) & 0x1F) << 3) + +#define RXERR_TYPE_OFDM_PPDU 0 +#define RXERR_TYPE_OFDM_FALSE_ALARM 1 +#define RXERR_TYPE_OFDM_MPDU_OK 2 +#define RXERR_TYPE_OFDM_MPDU_FAIL 3 +#define RXERR_TYPE_CCK_PPDU 4 +#define RXERR_TYPE_CCK_FALSE_ALARM 5 +#define RXERR_TYPE_CCK_MPDU_OK 6 +#define RXERR_TYPE_CCK_MPDU_FAIL 7 +#define RXERR_TYPE_HT_PPDU 8 +#define RXERR_TYPE_HT_FALSE_ALARM 9 +#define RXERR_TYPE_HT_MPDU_TOTAL 10 +#define RXERR_TYPE_HT_MPDU_OK 11 +#define RXERR_TYPE_HT_MPDU_FAIL 12 +#define RXERR_TYPE_RX_FULL_DROP 15 + +#define RXERR_COUNTER_MASK 0xFFFFF +#define RXERR_RPT_RST BIT(27) +#define _RXERR_RPT_SEL(type) ((type) << 28) + +#define SCR_TxUseDK BIT(0) +#define SCR_RxUseDK BIT(1) +#define SCR_TxEncEnable BIT(2) +#define SCR_RxDecEnable BIT(3) +#define SCR_SKByA2 BIT(4) +#define SCR_NoSKMC BIT(5) +#define SCR_TXBCUSEDK BIT(6) +#define SCR_RXBCUSEDK BIT(7) + +#define XCLK_VLD BIT(0) +#define ACLK_VLD BIT(1) +#define UCLK_VLD BIT(2) +#define PCLK_VLD BIT(3) +#define PCIRSTB BIT(4) +#define V15_VLD BIT(5) +#define TRP_B15V_EN BIT(7) +#define SIC_IDLE BIT(8) +#define BD_MAC2 BIT(9) +#define BD_MAC1 BIT(10) +#define IC_MACPHY_MODE BIT(11) +#define BT_FUNC BIT(16) +#define VENDOR_ID BIT(19) +#define PAD_HWPD_IDN BIT(22) +#define TRP_VAUX_EN BIT(23) +#define TRP_BT_EN BIT(24) +#define BD_PKG_SEL BIT(25) +#define BD_HCI_SEL BIT(26) +#define TYPE_ID BIT(27) + +#define USB_IS_HIGH_SPEED 0 +#define USB_IS_FULL_SPEED 1 +#define USB_SPEED_MASK BIT(5) + +#define USB_NORMAL_SIE_EP_MASK 0xF +#define USB_NORMAL_SIE_EP_SHIFT 4 + +#define USB_TEST_EP_MASK 0x30 +#define USB_TEST_EP_SHIFT 4 + +#define USB_AGG_EN BIT(3) + +#define MAC_ADDR_LEN 6 +#define LAST_ENTRY_OF_TX_PKT_BUFFER 175/*255 88e*/ + +#define POLLING_LLT_THRESHOLD 20 +#define POLLING_READY_TIMEOUT_COUNT 3000 + +#define MAX_MSS_DENSITY_2T 0x13 +#define MAX_MSS_DENSITY_1T 0x0A + +#define EPROM_CMD_OPERATING_MODE_MASK ((1<<7)|(1<<6)) +#define EPROM_CMD_CONFIG 0x3 +#define EPROM_CMD_LOAD 1 + +#define HWSET_MAX_SIZE_92S HWSET_MAX_SIZE + +#define HAL_8192C_HW_GPIO_WPS_BIT BIT(2) + +#define RA_LSSIWRITE_8821A 0xc90 +#define RB_LSSIWRITE_8821A 0xe90 + +#define RA_PIREAD_8821A 0xd04 +#define RB_PIREAD_8821A 0xd44 +#define RA_SIREAD_8821A 0xd08 +#define RB_SIREAD_8821A 0xd48 + +#define RPMAC_RESET 0x100 +#define RPMAC_TXSTART 0x104 +#define RPMAC_TXLEGACYSIG 0x108 +#define RPMAC_TXHTSIG1 0x10c +#define RPMAC_TXHTSIG2 0x110 +#define RPMAC_PHYDEBUG 0x114 +#define RPMAC_TXPACKETNUM 0x118 +#define RPMAC_TXIDLE 0x11c +#define RPMAC_TXMACHEADER0 0x120 +#define RPMAC_TXMACHEADER1 0x124 +#define RPMAC_TXMACHEADER2 0x128 +#define RPMAC_TXMACHEADER3 0x12c +#define RPMAC_TXMACHEADER4 0x130 +#define RPMAC_TXMACHEADER5 0x134 +#define RPMAC_TXDADATYPE 0x138 +#define RPMAC_TXRANDOMSEED 0x13c +#define RPMAC_CCKPLCPPREAMBLE 0x140 +#define RPMAC_CCKPLCPHEADER 0x144 +#define RPMAC_CCKCRC16 0x148 +#define RPMAC_OFDMRXCRC32OK 0x170 +#define RPMAC_OFDMRXCRC32Er 0x174 +#define RPMAC_OFDMRXPARITYER 0x178 +#define RPMAC_OFDMRXCRC8ER 0x17c +#define RPMAC_CCKCRXRC16ER 0x180 +#define RPMAC_CCKCRXRC32ER 0x184 +#define RPMAC_CCKCRXRC32OK 0x188 +#define RPMAC_TXSTATUS 0x18c + +#define RFPGA0_RFMOD 0x800 + +#define RFPGA0_TXINFO 0x804 +#define RFPGA0_PSDFUNCTION 0x808 + +#define RFPGA0_TXGAINSTAGE 0x80c + +#define RFPGA0_RFTIMING1 0x810 +#define RFPGA0_RFTIMING2 0x814 + +#define RFPGA0_XA_HSSIPARAMETER1 0x820 +#define RFPGA0_XA_HSSIPARAMETER2 0x824 +#define RFPGA0_XB_HSSIPARAMETER1 0x828 +#define RFPGA0_XB_HSSIPARAMETER2 0x82c +#define RCCAONSEC 0x838 + +#define RFPGA0_XA_LSSIPARAMETER 0x840 +#define RFPGA0_XB_LSSIPARAMETER 0x844 +#define RL1PEAKTH 0x848 + +#define RFPGA0_RFWAKEUPPARAMETER 0x850 +#define RFPGA0_RFSLEEPUPPARAMETER 0x854 + +#define RFPGA0_XAB_SWITCHCONTROL 0x858 +#define RFPGA0_XCD_SWITCHCONTROL 0x85c + +#define RFPGA0_XA_RFINTERFACEOE 0x860 +#define RFC_AREA 0x860 +#define RFPGA0_XB_RFINTERFACEOE 0x864 + +#define RFPGA0_XAB_RFINTERFACESW 0x870 +#define RFPGA0_XCD_RFINTERFACESW 0x874 + +#define rFPGA0_XAB_RFPARAMETER 0x878 +#define rFPGA0_XCD_RFPARAMETER 0x87c + +#define RFPGA0_ANALOGPARAMETER1 0x880 +#define RFPGA0_ANALOGPARAMETER2 0x884 +#define RFPGA0_ANALOGPARAMETER3 0x888 +#define RFPGA0_ANALOGPARAMETER4 0x88c + +#define RFPGA0_XA_LSSIREADBACK 0x8a0 +#define RFPGA0_XB_LSSIREADBACK 0x8a4 +#define RFPGA0_XC_LSSIREADBACK 0x8a8 +//#define RFPGA0_XD_LSSIREADBACK 0x8ac +#define RRFMOD 0x8ac +#define RHSSIREAD_8821AE 0x8b0 + +#define RFPGA0_PSDREPORT 0x8b4 +#define TRANSCEIVEA_HSPI_READBACK 0x8b8 +#define TRANSCEIVEB_HSPI_READBACK 0x8bc +//#define REG_SC_CNT 0x8c4 +#define RADC_BUF_CLK 0x8c4 +#define RFPGA0_XAB_RFINTERFACERB 0x8e0 +#define RFPGA0_XCD_RFINTERFACERB 0x8e4 + +#define RFPGA1_RFMOD 0x900 + +#define RFPGA1_TXBLOCK 0x904 +#define RFPGA1_DEBUGSELECT 0x908 +#define RFPGA1_TXINFO 0x90c + +#define RCCK_SYSTEM 0xa00 +#define BCCK_SYSTEM 0x10 + + +#define RCCK0_AFESETTING 0xa04 +#define RCCK0_CCA 0xa08 + +#define RCCK0_RXAGC1 0xa0c +#define RCCK0_RXAGC2 0xa10 + +#define RCCK0_RXHP 0xa14 + +#define RCCK0_DSPPARAMETER1 0xa18 +#define RCCK0_DSPPARAMETER2 0xa1c + +#define RCCK0_TXFILTER1 0xa20 +#define RCCK0_TXFILTER2 0xa24 +#define RCCK0_DEBUGPORT 0xa28 +#define RCCK0_FALSEALARMREPORT 0xa2c +#define RCCK0_TRSSIREPORT 0xa50 +#define RCCK0_RXREPORT 0xa54 +#define RCCK0_FACOUNTERLOWER 0xa5c +#define RCCK0_FACOUNTERUPPER 0xa58 +#define RCCK0_CCA_CNT 0xa60 + + +/* PageB(0xB00) */ +#define rPdp_AntA 0xb00 +#define rPdp_AntA_4 0xb04 +#define rPdp_AntA_8 0xb08 +#define rPdp_AntA_C 0xb0c +#define rPdp_AntA_10 0xb10 +#define rPdp_AntA_14 0xb14 +#define rPdp_AntA_18 0xb18 +#define rPdp_AntA_1C 0xb1c +#define rPdp_AntA_20 0xb20 +#define rPdp_AntA_24 0xb24 + +#define rConfig_Pmpd_AntA 0xb28 +#define rConfig_ram64x16 0xb2c + +#define rBndA 0xb30 +#define rHssiPar 0xb34 + +#define rConfig_AntA 0xb68 +#define rConfig_AntB 0xb6c + +#define rPdp_AntB 0xb70 +#define rPdp_AntB_4 0xb74 +#define rPdp_AntB_8 0xb78 +#define rPdp_AntB_C 0xb7c +#define rPdp_AntB_10 0xb80 +#define rPdp_AntB_14 0xb84 +#define rPdp_AntB_18 0xb88 +#define rPdp_AntB_1C 0xb8c +#define rPdp_AntB_20 0xb90 +#define rPdp_AntB_24 0xb94 + +#define rConfig_Pmpd_AntB 0xb98 + +#define rBndB 0xba0 + +#define rAPK 0xbd8 +#define rPm_Rx0_AntA 0xbdc +#define rPm_Rx1_AntA 0xbe0 +#define rPm_Rx2_AntA 0xbe4 +#define rPm_Rx3_AntA 0xbe8 +#define rPm_Rx0_AntB 0xbec +#define rPm_Rx1_AntB 0xbf0 +#define rPm_Rx2_AntB 0xbf4 +#define rPm_Rx3_AntB 0xbf8 + +/*RSSI Dump*/ +#define RA_RSSI_DUMP 0xBF0 +#define RB_RSSI_DUMP 0xBF1 +#define RS1_RX_EVM_DUMP 0xBF4 +#define RS2_RX_EVM_DUMP 0xBF5 +#define RA_RX_SNR_DUMP 0xBF6 +#define RB_RX_SNR_DUMP 0xBF7 +#define RA_CFO_SHORT_DUMP 0xBF8 +#define RB_CFO_SHORT_DUMP 0xBFA +#define RA_CFO_LONG_DUMP 0xBEC +#define RB_CFO_LONG_DUMP 0xBEE + +/*Page C*/ +#define ROFDM0_LSTF 0xc00 + +#define ROFDM0_TRXPATHENABLE 0xc04 +#define ROFDM0_TRMUXPAR 0xc08 +#define ROFDM0_TRSWISOLATION 0xc0c + +#define ROFDM0_XARXAFE 0xc10 +#define ROFDM0_XARXIQIMBALANCE 0xc14 +#define ROFDM0_XBRXAFE 0xc18 +#define ROFDM0_XBRXIQIMBALANCE 0xc1c +#define ROFDM0_XCRXAFE 0xc20 +#define ROFDM0_XCRXIQIMBANLANCE 0xc24 +#define ROFDM0_XDRXAFE 0xc28 +#define ROFDM0_XDRXIQIMBALANCE 0xc2c + +#define ROFDM0_RXDETECTOR1 0xc30 +#define ROFDM0_RXDETECTOR2 0xc34 +#define ROFDM0_RXDETECTOR3 0xc38 +#define ROFDM0_RXDETECTOR4 0xc3c + +#define ROFDM0_RXDSP 0xc40 +#define ROFDM0_CFOANDDAGC 0xc44 +#define ROFDM0_CCADROPTHRESHOLD 0xc48 +#define ROFDM0_ECCATHRESHOLD 0xc4c + +#define ROFDM0_XAAGCCORE1 0xc50 +#define ROFDM0_XAAGCCORE2 0xc54 +#define ROFDM0_XBAGCCORE1 0xc58 +#define ROFDM0_XBAGCCORE2 0xc5c +#define ROFDM0_XCAGCCORE1 0xc60 +#define ROFDM0_XCAGCCORE2 0xc64 +#define ROFDM0_XDAGCCORE1 0xc68 +#define ROFDM0_XDAGCCORE2 0xc6c + +#define ROFDM0_AGCPARAMETER1 0xc70 +#define ROFDM0_AGCPARAMETER2 0xc74 +#define ROFDM0_AGCRSSITABLE 0xc78 +#define ROFDM0_HTSTFAGC 0xc7c + +#define ROFDM0_XATXIQIMBALANCE 0xc80 +#define ROFDM0_XATXAFE 0xc84 +#define ROFDM0_XBTXIQIMBALANCE 0xc88 +#define ROFDM0_XBTXAFE 0xc8c +#define ROFDM0_XCTXIQIMBALANCE 0xc90 +#define ROFDM0_XCTXAFE 0xc94 +#define ROFDM0_XDTXIQIMBALANCE 0xc98 +#define ROFDM0_XDTXAFE 0xc9c + +#define ROFDM0_RXIQEXTANTA 0xca0 +#define ROFDM0_TXCOEFF1 0xca4 +#define ROFDM0_TXCOEFF2 0xca8 +#define ROFDM0_TXCOEFF3 0xcac +#define ROFDM0_TXCOEFF4 0xcb0 +#define ROFDM0_TXCOEFF5 0xcb4 +#define ROFDM0_TXCOEFF6 0xcb8 + +/*Path_A RFE cotrol */ +#define RA_RFE_CTRL_8812 0xcb8 +/*Path_B RFE control*/ +#define RB_RFE_CTRL_8812 0xeb8 + +#define ROFDM0_RXHPPARAMETER 0xce0 +#define ROFDM0_TXPSEUDONOISEWGT 0xce4 +#define ROFDM0_FRAMESYNC 0xcf0 +#define ROFDM0_DFSREPORT 0xcf4 + + +#define ROFDM1_LSTF 0xd00 +#define ROFDM1_TRXPATHENABLE 0xd04 + +#define ROFDM1_CF0 0xd08 +#define ROFDM1_CSI1 0xd10 +#define ROFDM1_SBD 0xd14 +#define ROFDM1_CSI2 0xd18 +#define ROFDM1_CFOTRACKING 0xd2c +#define ROFDM1_TRXMESAURE1 0xd34 +#define ROFDM1_INTFDET 0xd3c +#define ROFDM1_PSEUDONOISESTATEAB 0xd50 +#define ROFDM1_PSEUDONOISESTATECD 0xd54 +#define ROFDM1_RXPSEUDONOISEWGT 0xd58 + +#define ROFDM_PHYCOUNTER1 0xda0 +#define ROFDM_PHYCOUNTER2 0xda4 +#define ROFDM_PHYCOUNTER3 0xda8 + +#define ROFDM_SHORTCFOAB 0xdac +#define ROFDM_SHORTCFOCD 0xdb0 +#define ROFDM_LONGCFOAB 0xdb4 +#define ROFDM_LONGCFOCD 0xdb8 +#define ROFDM_TAILCF0AB 0xdbc +#define ROFDM_TAILCF0CD 0xdc0 +#define ROFDM_PWMEASURE1 0xdc4 +#define ROFDM_PWMEASURE2 0xdc8 +#define ROFDM_BWREPORT 0xdcc +#define ROFDM_AGCREPORT 0xdd0 +#define ROFDM_RXSNR 0xdd4 +#define ROFDM_RXEVMCSI 0xdd8 +#define ROFDM_SIGREPORT 0xddc + +#define RTXAGC_A_CCK11_CCK1 0xc20 +#define RTXAGC_A_OFDM18_OFDM6 0xc24 +#define RTXAGC_A_OFDM54_OFDM24 0xc28 +#define RTXAGC_A_MCS03_MCS00 0xc2c +#define RTXAGC_A_MCS07_MCS04 0xc30 +#define RTXAGC_A_MCS11_MCS08 0xc34 +#define RTXAGC_A_MCS15_MCS12 0xc38 +#define RTXAGC_A_NSS1INDEX3_NSS1INDEX0 0xc3c +#define RTXAGC_A_NSS1INDEX7_NSS1INDEX4 0xc40 +#define RTXAGC_A_NSS2INDEX1_NSS1INDEX8 0xc44 +#define RTXAGC_A_NSS2INDEX5_NSS2INDEX2 0xc48 +#define RTXAGC_A_NSS2INDEX9_NSS2INDEX6 0xc4c +#define RTXAGC_B_CCK11_CCK1 0xe20 +#define RTXAGC_B_OFDM18_OFDM6 0xe24 +#define RTXAGC_B_OFDM54_OFDM24 0xe28 +#define RTXAGC_B_MCS03_MCS00 0xe2c +#define RTXAGC_B_MCS07_MCS04 0xe30 +#define RTXAGC_B_MCS11_MCS08 0xe34 +#define RTXAGC_B_MCS15_MCS12 0xe38 +#define RTXAGC_B_NSS1INDEX3_NSS1INDEX0 0xe3c +#define RTXAGC_B_NSS1INDEX7_NSS1INDEX4 0xe40 +#define RTXAGC_B_NSS2INDEX1_NSS1INDEX8 0xe44 +#define RTXAGC_B_NSS2INDEX5_NSS2INDEX2 0xe48 +#define RTXAGC_B_NSS2INDEX9_NSS2INDEX6 0xe4c + +#define RA_TXPWRTRAING 0xc54 +#define RB_TXPWRTRAING 0xe54 + + +#define RFPGA0_IQK 0xe28 +#define RTx_IQK_Tone_A 0xe30 +#define RRx_IQK_Tone_A 0xe34 +#define RTx_IQK_PI_A 0xe38 +#define RRx_IQK_PI_A 0xe3c + +#define RTx_IQK 0xe40 +#define RRx_IQK 0xe44 +#define RIQK_AGC_Pts 0xe48 +#define RIQK_AGC_Rsp 0xe4c +#define RTx_IQK_Tone_B 0xe50 +#define RRx_IQK_Tone_B 0xe54 +#define RTx_IQK_PI_B 0xe58 +#define RRx_IQK_PI_B 0xe5c +#define RIQK_AGC_Cont 0xe60 + +#define RBlue_Tooth 0xe6c +#define RRx_Wait_CCA 0xe70 +#define RTx_CCK_RFON 0xe74 +#define RTx_CCK_BBON 0xe78 +#define RTx_OFDM_RFON 0xe7c +#define RTx_OFDM_BBON 0xe80 +#define RTx_To_Rx 0xe84 +#define RTx_To_Tx 0xe88 +#define RRx_CCK 0xe8c + +#define RTx_Power_Before_IQK_A 0xe94 +#define RTx_Power_After_IQK_A 0xe9c + +#define RRx_Power_Before_IQK_A 0xea0 +#define RRx_Power_Before_IQK_A_2 0xea4 +#define RRx_Power_After_IQK_A 0xea8 +#define RRx_Power_After_IQK_A_2 0xeac + +#define RTx_Power_Before_IQK_B 0xeb4 +#define RTx_Power_After_IQK_B 0xebc + +#define RRx_Power_Before_IQK_B 0xec0 +#define RRx_Power_Before_IQK_B_2 0xec4 +#define RRx_Power_After_IQK_B 0xec8 +#define RRx_Power_After_IQK_B_2 0xecc + +#define RRx_OFDM 0xed0 +#define RRx_Wait_RIFS 0xed4 +#define RRx_TO_Rx 0xed8 +#define RStandby 0xedc +#define RSleep 0xee0 +#define RPMPD_ANAEN 0xeec + +#define RZEBRA1_HSSIENABLE 0x0 +#define RZEBRA1_TRXENABLE1 0x1 +#define RZEBRA1_TRXENABLE2 0x2 +#define RZEBRA1_AGC 0x4 +#define RZEBRA1_CHARGEPUMP 0x5 +#define RZEBRA1_CHANNEL 0x7 + +#define RZEBRA1_TXGAIN 0x8 +#define RZEBRA1_TXLPF 0x9 +#define RZEBRA1_RXLPF 0xb +#define RZEBRA1_RXHPFCORNER 0xc + +#define RGLOBALCTRL 0 +#define RRTL8256_TXLPF 19 +#define RRTL8256_RXLPF 11 +#define RRTL8258_TXLPF 0x11 +#define RRTL8258_RXLPF 0x13 +#define RRTL8258_RSSILPF 0xa + +#define RF_AC 0x00 + +#define RF_IQADJ_G1 0x01 +#define RF_IQADJ_G2 0x02 +#define RF_POW_TRSW 0x05 + +#define RF_GAIN_RX 0x06 +#define RF_GAIN_TX 0x07 + +#define RF_TXM_IDAC 0x08 +#define RF_BS_IQGEN 0x0F + +#define RF_MODE1 0x10 +#define RF_MODE2 0x11 + +#define RF_RX_AGC_HP 0x12 +#define RF_TX_AGC 0x13 +#define RF_BIAS 0x14 +#define RF_IPA 0x15 +#define RF_POW_ABILITY 0x17 +#define RF_MODE_AG 0x18 +#define RRFCHANNEL 0x18 +#define RF_CHNLBW 0x18 +#define RF_TOP 0x19 + +#define RF_RX_G1 0x1A +#define RF_RX_G2 0x1B + +#define RF_RX_BB2 0x1C +#define RF_RX_BB1 0x1D + +#define RF_RCK1 0x1E +#define RF_RCK2 0x1F + +#define RF_TX_G1 0x20 +#define RF_TX_G2 0x21 +#define RF_TX_G3 0x22 + +#define RF_TX_BB1 0x23 +#define RF_T_METER 0x24 +#define RF_T_METER_88E 0x42 +#define RF_T_METER_8812A 0x42 + +#define RF_SYN_G1 0x25 +#define RF_SYN_G2 0x26 +#define RF_SYN_G3 0x27 +#define RF_SYN_G4 0x28 +#define RF_SYN_G5 0x29 +#define RF_SYN_G6 0x2A +#define RF_SYN_G7 0x2B +#define RF_SYN_G8 0x2C + +#define RF_RCK_OS 0x30 +#define RF_TXPA_G1 0x31 +#define RF_TXPA_G2 0x32 +#define RF_TXPA_G3 0x33 + +#define RF_TX_BIAS_A 0x35 +#define RF_TX_BIAS_D 0x36 +#define RF_LOBF_9 0x38 +#define RF_RXRF_A3 0x3C +#define RF_TRSW 0x3F + +#define RF_TXRF_A2 0x41 +#define RF_TXPA_G4 0x46 +#define RF_TXPA_A4 0x4B + +#define RF_APK 0x63 + +#define RF_WE_LUT 0xEF + +#define BBBRESETB 0x100 +#define BGLOBALRESETB 0x200 +#define BOFDMTXSTART 0x4 +#define BCCKTXSTART 0x8 +#define BCRC32DEBUG 0x100 +#define BPMACLOOPBACK 0x10 +#define BTXLSIG 0xffffff +#define BOFDMTXRATE 0xf +#define BOFDMTXRESERVED 0x10 +#define BOFDMTXLENGTH 0x1ffe0 +#define BOFDMTXPARITY 0x20000 +#define BTXHTSIG1 0xffffff +#define BTXHTMCSRATE 0x7f +#define BTXHTBW 0x80 +#define BTXHTLENGTH 0xffff00 +#define BTXHTSIG2 0xffffff +#define BTXHTSMOOTHING 0x1 +#define BTXHTSOUNDING 0x2 +#define BTXHTRESERVED 0x4 +#define BTXHTAGGREATION 0x8 +#define BTXHTSTBC 0x30 +#define BTXHTADVANCECODING 0x40 +#define BTXHTSHORTGI 0x80 +#define BTXHTNUMBERHT_LTF 0x300 +#define BTXHTCRC8 0x3fc00 +#define BCOUNTERRESET 0x10000 +#define BNUMOFOFDMTX 0xffff +#define BNUMOFCCKTX 0xffff0000 +#define BTXIDLEINTERVAL 0xffff +#define BOFDMSERVICE 0xffff0000 +#define BTXMACHEADER 0xffffffff +#define BTXDATAINIT 0xff +#define BTXHTMODE 0x100 +#define BTXDATATYPE 0x30000 +#define BTXRANDOMSEED 0xffffffff +#define BCCKTXPREAMBLE 0x1 +#define BCCKTXSFD 0xffff0000 +#define BCCKTXSIG 0xff +#define BCCKTXSERVICE 0xff00 +#define BCCKLENGTHEXT 0x8000 +#define BCCKTXLENGHT 0xffff0000 +#define BCCKTXCRC16 0xffff +#define BCCKTXSTATUS 0x1 +#define BOFDMTXSTATUS 0x2 +#define IS_BB_REG_OFFSET_92S(_Offset) \ + ((_Offset >= 0x800) && (_Offset <= 0xfff)) + +#define BRFMOD 0x1 +#define BJAPANMODE 0x2 +#define BCCKTXSC 0x30 +/* Block & Path enable*/ +#define ROFDMCCKEN 0x808 +#define BCCKEN 0x10000000 +#define BOFDMEN 0x20000000 +#define RRXPATH 0x808 /* Rx antenna*/ +#define BRXPATH 0xff +#define RTXPATH 0x80c /* Tx antenna*/ +#define BTXPATH 0x0fffffff +#define RCCK_RX 0xa04 /* for cck rx path selection*/ +#define BCCK_RX 0x0c000000 +#define RVHTLEN_USE_LSIG 0x8c3 /* Use LSIG for VHT length*/ + + +#define BOFDMRXADCPHASE 0x10000 +#define BOFDMTXDACPHASE 0x40000 +#define BXATXAGC 0x3f + +#define BXBTXAGC 0xf00 +#define BXCTXAGC 0xf000 +#define BXDTXAGC 0xf0000 + +#define BPASTART 0xf0000000 +#define BTRSTART 0x00f00000 +#define BRFSTART 0x0000f000 +#define BBBSTART 0x000000f0 +#define BBBCCKSTART 0x0000000f +#define BPAEND 0xf +#define BTREND 0x0f000000 +#define BRFEND 0x000f0000 +#define BCCAMASK 0x000000f0 +#define BR2RCCAMASK 0x00000f00 +#define BHSSI_R2TDELAY 0xf8000000 +#define BHSSI_T2RDELAY 0xf80000 +#define BCONTXHSSI 0x400 +#define BIGFROMCCK 0x200 +#define BAGCADDRESS 0x3f +#define BRXHPTX 0x7000 +#define BRXHP2RX 0x38000 +#define BRXHPCCKINI 0xc0000 +#define BAGCTXCODE 0xc00000 +#define BAGCRXCODE 0x300000 + +#define B3WIREDATALENGTH 0x800 +#define B3WIREADDREAALENGTH 0x400 + +#define B3WIRERFPOWERDOWN 0x1 +#define B5GPAPEPOLARITY 0x40000000 +#define B2GPAPEPOLARITY 0x80000000 +#define BRFSW_TXDEFAULTANT 0x3 +#define BRFSW_TXOPTIONANT 0x30 +#define BRFSW_RXDEFAULTANT 0x300 +#define BRFSW_RXOPTIONANT 0x3000 +#define BRFSI_3WIREDATA 0x1 +#define BRFSI_3WIRECLOCK 0x2 +#define BRFSI_3WIRELOAD 0x4 +#define BRFSI_3WIRERW 0x8 +#define BRFSI_3WIRE 0xf + +#define BRFSI_RFENV 0x10 + +#define BRFSI_TRSW 0x20 +#define BRFSI_TRSWB 0x40 +#define BRFSI_ANTSW 0x100 +#define BRFSI_ANTSWB 0x200 +#define BRFSI_PAPE 0x400 +#define BRFSI_PAPE5G 0x800 +#define BBANDSELECT 0x1 +#define BHTSIG2_GI 0x80 +#define BHTSIG2_SMOOTHING 0x01 +#define BHTSIG2_SOUNDING 0x02 +#define BHTSIG2_AGGREATON 0x08 +#define BHTSIG2_STBC 0x30 +#define BHTSIG2_ADVCODING 0x40 +#define BHTSIG2_NUMOFHTLTF 0x300 +#define BHTSIG2_CRC8 0x3fc +#define BHTSIG1_MCS 0x7f +#define BHTSIG1_BANDWIDTH 0x80 +#define BHTSIG1_HTLENGTH 0xffff +#define BLSIG_RATE 0xf +#define BLSIG_RESERVED 0x10 +#define BLSIG_LENGTH 0x1fffe +#define BLSIG_PARITY 0x20 +#define BCCKRXPHASE 0x4 + +#define BLSSIREADADDRESS 0x7f800000 +#define BLSSIREADEDGE 0x80000000 + +#define BLSSIREADBACKDATA 0xfffff + +#define BLSSIREADOKFLAG 0x1000 +#define BCCKSAMPLERATE 0x8 +#define BREGULATOR0STANDBY 0x1 +#define BREGULATORPLLSTANDBY 0x2 +#define BREGULATOR1STANDBY 0x4 +#define BPLLPOWERUP 0x8 +#define BDPLLPOWERUP 0x10 +#define BDA10POWERUP 0x20 +#define BAD7POWERUP 0x200 +#define BDA6POWERUP 0x2000 +#define BXTALPOWERUP 0x4000 +#define B40MDCLKPOWERUP 0x8000 +#define BDA6DEBUGMODE 0x20000 +#define BDA6SWING 0x380000 + +#define BADCLKPHASE 0x4000000 +#define B80MCLKDELAY 0x18000000 +#define BAFEWATCHDOGENABLE 0x20000000 + +#define BXTALCAP01 0xc0000000 +#define BXTALCAP23 0x3 +#define BXTALCAP92X 0x0f000000 +#define BXTALCAP 0x0f000000 + +#define BINTDIFCLKENABLE 0x400 +#define BEXTSIGCLKENABLE 0x800 +#define BBANDGAP_MBIAS_POWERUP 0x10000 +#define BAD11SH_GAIN 0xc0000 +#define BAD11NPUT_RANGE 0x700000 +#define BAD110P_CURRENT 0x3800000 +#define BLPATH_LOOPBACK 0x4000000 +#define BQPATH_LOOPBACK 0x8000000 +#define BAFE_LOOPBACK 0x10000000 +#define BDA10_SWING 0x7e0 +#define BDA10_REVERSE 0x800 +#define BDA_CLK_SOURCE 0x1000 +#define BDA7INPUT_RANGE 0x6000 +#define BDA7_GAIN 0x38000 +#define BDA7OUTPUT_CM_MODE 0x40000 +#define BDA7INPUT_CM_MODE 0x380000 +#define BDA7CURRENT 0xc00000 +#define BREGULATOR_ADJUST 0x7000000 +#define BAD11POWERUP_ATTX 0x1 +#define BDA10PS_ATTX 0x10 +#define BAD11POWERUP_ATRX 0x100 +#define BDA10PS_ATRX 0x1000 +#define BCCKRX_AGC_FORMAT 0x200 +#define BPSDFFT_SAMPLE_POINT 0xc000 +#define BPSD_AVERAGE_NUM 0x3000 +#define BIQPATH_CONTROL 0xc00 +#define BPSD_FREQ 0x3ff +#define BPSD_ANTENNA_PATH 0x30 +#define BPSD_IQ_SWITCH 0x40 +#define BPSD_RX_TRIGGER 0x400000 +#define BPSD_TX_TRIGGER 0x80000000 +#define BPSD_SINE_TONE_SCALE 0x7f000000 +#define BPSD_REPORT 0xffff + +#define BOFDM_TXSC 0x30000000 +#define BCCK_TXON 0x1 +#define BOFDM_TXON 0x2 +#define BDEBUG_PAGE 0xfff +#define BDEBUG_ITEM 0xff +#define BANTL 0x10 +#define BANT_NONHT 0x100 +#define BANT_HT1 0x1000 +#define BANT_HT2 0x10000 +#define BANT_HT1S1 0x100000 +#define BANT_NONHTS1 0x1000000 + +#define BCCK_BBMODE 0x3 +#define BCCK_TXPOWERSAVING 0x80 +#define BCCK_RXPOWERSAVING 0x40 + +#define BCCK_SIDEBAND 0x10 + +#define BCCK_SCRAMBLE 0x8 +#define BCCK_ANTDIVERSITY 0x8000 +#define BCCK_CARRIER_RECOVERY 0x4000 +#define BCCK_TXRATE 0x3000 +#define BCCK_DCCANCEL 0x0800 +#define BCCK_ISICANCEL 0x0400 +#define BCCK_MATCH_FILTER 0x0200 +#define BCCK_EQUALIZER 0x0100 +#define BCCK_PREAMBLE_DETECT 0x800000 +#define BCCK_FAST_FALSECCA 0x400000 +#define BCCK_CH_ESTSTART 0x300000 +#define BCCK_CCA_COUNT 0x080000 +#define BCCK_CS_LIM 0x070000 +#define BCCK_BIST_MODE 0x80000000 +#define BCCK_CCAMASK 0x40000000 +#define BCCK_TX_DAC_PHASE 0x4 +#define BCCK_RX_ADC_PHASE 0x20000000 +#define BCCKR_CP_MODE 0x0100 +#define BCCK_TXDC_OFFSET 0xf0 +#define BCCK_RXDC_OFFSET 0xf +#define BCCK_CCA_MODE 0xc000 +#define BCCK_FALSECS_LIM 0x3f00 +#define BCCK_CS_RATIO 0xc00000 +#define BCCK_CORGBIT_SEL 0x300000 +#define BCCK_PD_LIM 0x0f0000 +#define BCCK_NEWCCA 0x80000000 +#define BCCK_RXHP_OF_IG 0x8000 +#define BCCK_RXIG 0x7f00 +#define BCCK_LNA_POLARITY 0x800000 +#define BCCK_RX1ST_BAIN 0x7f0000 +#define BCCK_RF_EXTEND 0x20000000 +#define BCCK_RXAGC_SATLEVEL 0x1f000000 +#define BCCK_RXAGC_SATCOUNT 0xe0 +#define bCCKRxRFSettle 0x1f +#define BCCK_FIXED_RXAGC 0x8000 +#define BCCK_ANTENNA_POLARITY 0x2000 +#define BCCK_TXFILTER_TYPE 0x0c00 +#define BCCK_RXAGC_REPORTTYPE 0x0300 +#define BCCK_RXDAGC_EN 0x80000000 +#define BCCK_RXDAGC_PERIOD 0x20000000 +#define BCCK_RXDAGC_SATLEVEL 0x1f000000 +#define BCCK_TIMING_RECOVERY 0x800000 +#define BCCK_TXC0 0x3f0000 +#define BCCK_TXC1 0x3f000000 +#define BCCK_TXC2 0x3f +#define BCCK_TXC3 0x3f00 +#define BCCK_TXC4 0x3f0000 +#define BCCK_TXC5 0x3f000000 +#define BCCK_TXC6 0x3f +#define BCCK_TXC7 0x3f00 +#define BCCK_DEBUGPORT 0xff0000 +#define BCCK_DAC_DEBUG 0x0f000000 +#define BCCK_FALSEALARM_ENABLE 0x8000 +#define BCCK_FALSEALARM_READ 0x4000 +#define BCCK_TRSSI 0x7f +#define BCCK_RXAGC_REPORT 0xfe +#define BCCK_RXREPORT_ANTSEL 0x80000000 +#define BCCK_RXREPORT_MFOFF 0x40000000 +#define BCCK_RXREPORT_SQLOSS 0x20000000 +#define BCCK_RXREPORT_PKTLOSS 0x10000000 +#define BCCK_RXREPORT_LOCKEDBIT 0x08000000 +#define BCCK_RXREPORT_RATEERROR 0x04000000 +#define BCCK_RXREPORT_RXRATE 0x03000000 +#define BCCK_RXFA_COUNTER_LOWER 0xff +#define BCCK_RXFA_COUNTER_UPPER 0xff000000 +#define BCCK_RXHPAGC_START 0xe000 +#define BCCK_RXHPAGC_FINAL 0x1c00 +#define BCCK_RXFALSEALARM_ENABLE 0x8000 +#define BCCK_FACOUNTER_FREEZE 0x4000 +#define BCCK_TXPATH_SEL 0x10000000 +#define BCCK_DEFAULT_RXPATH 0xc000000 +#define BCCK_OPTION_RXPATH 0x3000000 + +#define BNUM_OFSTF 0x3 +#define BSHIFT_L 0xc0 +#define BGI_TH 0xc +#define BRXPATH_A 0x1 +#define BRXPATH_B 0x2 +#define BRXPATH_C 0x4 +#define BRXPATH_D 0x8 +#define BTXPATH_A 0x1 +#define BTXPATH_B 0x2 +#define BTXPATH_C 0x4 +#define BTXPATH_D 0x8 +#define BTRSSI_FREQ 0x200 +#define BADC_BACKOFF 0x3000 +#define BDFIR_BACKOFF 0xc000 +#define BTRSSI_LATCH_PHASE 0x10000 +#define BRX_LDC_OFFSET 0xff +#define BRX_QDC_OFFSET 0xff00 +#define BRX_DFIR_MODE 0x1800000 +#define BRX_DCNF_TYPE 0xe000000 +#define BRXIQIMB_A 0x3ff +#define BRXIQIMB_B 0xfc00 +#define BRXIQIMB_C 0x3f0000 +#define BRXIQIMB_D 0xffc00000 +#define BDC_DC_NOTCH 0x60000 +#define BRXNB_NOTCH 0x1f000000 +#define BPD_TH 0xf +#define BPD_TH_OPT2 0xc000 +#define BPWED_TH 0x700 +#define BIFMF_WIN_L 0x800 +#define BPD_OPTION 0x1000 +#define BMF_WIN_L 0xe000 +#define BBW_SEARCH_L 0x30000 +#define BWIN_ENH_L 0xc0000 +#define BBW_TH 0x700000 +#define BED_TH2 0x3800000 +#define BBW_OPTION 0x4000000 +#define BRADIO_TH 0x18000000 +#define BWINDOW_L 0xe0000000 +#define BSBD_OPTION 0x1 +#define BFRAME_TH 0x1c +#define BFS_OPTION 0x60 +#define BDC_SLOPE_CHECK 0x80 +#define BFGUARD_COUNTER_DC_L 0xe00 +#define BFRAME_WEIGHT_SHORT 0x7000 +#define BSUB_TUNE 0xe00000 +#define BFRAME_DC_LENGTH 0xe000000 +#define BSBD_START_OFFSET 0x30000000 +#define BFRAME_TH_2 0x7 +#define BFRAME_GI2_TH 0x38 +#define BGI2_SYNC_EN 0x40 +#define BSARCH_SHORT_EARLY 0x300 +#define BSARCH_SHORT_LATE 0xc00 +#define BSARCH_GI2_LATE 0x70000 +#define BCFOANTSUM 0x1 +#define BCFOACC 0x2 +#define BCFOSTARTOFFSET 0xc +#define BCFOLOOPBACK 0x70 +#define BCFOSUMWEIGHT 0x80 +#define BDAGCENABLE 0x10000 +#define BTXIQIMB_A 0x3ff +#define BTXIQIMB_b 0xfc00 +#define BTXIQIMB_C 0x3f0000 +#define BTXIQIMB_D 0xffc00000 +#define BTXIDCOFFSET 0xff +#define BTXIQDCOFFSET 0xff00 +#define BTXDFIRMODE 0x10000 +#define BTXPESUDO_NOISEON 0x4000000 +#define BTXPESUDO_NOISE_A 0xff +#define BTXPESUDO_NOISE_B 0xff00 +#define BTXPESUDO_NOISE_C 0xff0000 +#define BTXPESUDO_NOISE_D 0xff000000 +#define BCCA_DROPOPTION 0x20000 +#define BCCA_DROPTHRES 0xfff00000 +#define BEDCCA_H 0xf +#define BEDCCA_L 0xf0 +#define BLAMBDA_ED 0x300 +#define BRX_INITIALGAIN 0x7f +#define BRX_ANTDIV_EN 0x80 +#define BRX_AGC_ADDRESS_FOR_LNA 0x7f00 +#define BRX_HIGHPOWER_FLOW 0x8000 +#define BRX_AGC_FREEZE_THRES 0xc0000 +#define BRX_FREEZESTEP_AGC1 0x300000 +#define BRX_FREEZESTEP_AGC2 0xc00000 +#define BRX_FREEZESTEP_AGC3 0x3000000 +#define BRX_FREEZESTEP_AGC0 0xc000000 +#define BRXRSSI_CMP_EN 0x10000000 +#define BRXQUICK_AGCEN 0x20000000 +#define BRXAGC_FREEZE_THRES_MODE 0x40000000 +#define BRX_OVERFLOW_CHECKTYPE 0x80000000 +#define BRX_AGCSHIFT 0x7f +#define BTRSW_TRI_ONLY 0x80 +#define BPOWER_THRES 0x300 +#define BRXAGC_EN 0x1 +#define BRXAGC_TOGETHER_EN 0x2 +#define BRXAGC_MIN 0x4 +#define BRXHP_INI 0x7 +#define BRXHP_TRLNA 0x70 +#define BRXHP_RSSI 0x700 +#define BRXHP_BBP1 0x7000 +#define BRXHP_BBP2 0x70000 +#define BRXHP_BBP3 0x700000 +#define BRSSI_H 0x7f0000 +#define BRSSI_GEN 0x7f000000 +#define BRXSETTLE_TRSW 0x7 +#define BRXSETTLE_LNA 0x38 +#define BRXSETTLE_RSSI 0x1c0 +#define BRXSETTLE_BBP 0xe00 +#define BRXSETTLE_RXHP 0x7000 +#define BRXSETTLE_ANTSW_RSSI 0x38000 +#define BRXSETTLE_ANTSW 0xc0000 +#define BRXPROCESS_TIME_DAGC 0x300000 +#define BRXSETTLE_HSSI 0x400000 +#define BRXPROCESS_TIME_BBPPW 0x800000 +#define BRXANTENNA_POWER_SHIFT 0x3000000 +#define BRSSI_TABLE_SELECT 0xc000000 +#define BRXHP_FINAL 0x7000000 +#define BRXHPSETTLE_BBP 0x7 +#define BRXHTSETTLE_HSSI 0x8 +#define BRXHTSETTLE_RXHP 0x70 +#define BRXHTSETTLE_BBPPW 0x80 +#define BRXHTSETTLE_IDLE 0x300 +#define BRXHTSETTLE_RESERVED 0x1c00 +#define BRXHT_RXHP_EN 0x8000 +#define BRXAGC_FREEZE_THRES 0x30000 +#define BRXAGC_TOGETHEREN 0x40000 +#define BRXHTAGC_MIN 0x80000 +#define BRXHTAGC_EN 0x100000 +#define BRXHTDAGC_EN 0x200000 +#define BRXHT_RXHP_BBP 0x1c00000 +#define BRXHT_RXHP_FINAL 0xe0000000 +#define BRXPW_RADIO_TH 0x3 +#define BRXPW_RADIO_EN 0x4 +#define BRXMF_HOLD 0x3800 +#define BRXPD_DELAY_TH1 0x38 +#define BRXPD_DELAY_TH2 0x1c0 +#define BRXPD_DC_COUNT_MAX 0x600 +#define BRXPD_DELAY_TH 0x8000 +#define BRXPROCESS_DELAY 0xf0000 +#define BRXSEARCHRANGE_GI2_EARLY 0x700000 +#define BRXFRAME_FUARD_COUNTER_L 0x3800000 +#define BRXSGI_GUARD_L 0xc000000 +#define BRXSGI_SEARCH_L 0x30000000 +#define BRXSGI_TH 0xc0000000 +#define BDFSCNT0 0xff +#define BDFSCNT1 0xff00 +#define BDFSFLAG 0xf0000 +#define BMF_WEIGHT_SUM 0x300000 +#define BMINIDX_TH 0x7f000000 +#define BDAFORMAT 0x40000 +#define BTXCH_EMU_ENABLE 0x01000000 +#define BTRSW_ISOLATION_A 0x7f +#define BTRSW_ISOLATION_B 0x7f00 +#define BTRSW_ISOLATION_C 0x7f0000 +#define BTRSW_ISOLATION_D 0x7f000000 +#define BEXT_LNA_GAIN 0x7c00 + +#define BSTBC_EN 0x4 +#define BANTENNA_MAPPING 0x10 +#define BNSS 0x20 +#define BCFO_ANTSUM_ID 0x200 +#define BPHY_COUNTER_RESET 0x8000000 +#define BCFO_REPORT_GET 0x4000000 +#define BOFDM_CONTINUE_TX 0x10000000 +#define BOFDM_SINGLE_CARRIER 0x20000000 +#define BOFDM_SINGLE_TONE 0x40000000 +#define BHT_DETECT 0x100 +#define BCFOEN 0x10000 +#define BCFOVALUE 0xfff00000 +#define BSIGTONE_RE 0x3f +#define BSIGTONE_IM 0x7f00 +#define BCOUNTER_CCA 0xffff +#define BCOUNTER_PARITYFAIL 0xffff0000 +#define BCOUNTER_RATEILLEGAL 0xffff +#define BCOUNTER_CRC8FAIL 0xffff0000 +#define BCOUNTER_MCSNOSUPPORT 0xffff +#define BCOUNTER_FASTSYNC 0xffff +#define BSHORTCFO 0xfff +#define BSHORTCFOT_LENGTH 12 +#define BSHORTCFOF_LENGTH 11 +#define BLONGCFO 0x7ff +#define BLONGCFOT_LENGTH 11 +#define BLONGCFOF_LENGTH 11 +#define BTAILCFO 0x1fff +#define BTAILCFOT_LENGTH 13 +#define BTAILCFOF_LENGTH 12 +#define BNOISE_EN_PWDB 0xffff +#define BCC_POWER_DB 0xffff0000 +#define BMOISE_PWDB 0xffff +#define BPOWERMEAST_LENGTH 10 +#define BPOWERMEASF_LENGTH 3 +#define BRX_HT_BW 0x1 +#define BRXSC 0x6 +#define BRX_HT 0x8 +#define BNB_INTF_DET_ON 0x1 +#define BINTF_WIN_LEN_CFG 0x30 +#define BNB_INTF_TH_CFG 0x1c0 +#define BRFGAIN 0x3f +#define BTABLESEL 0x40 +#define BTRSW 0x80 +#define BRXSNR_A 0xff +#define BRXSNR_B 0xff00 +#define BRXSNR_C 0xff0000 +#define BRXSNR_D 0xff000000 +#define BSNR_EVMT_LENGTH 8 +#define BSNR_EVMF_LENGTH 1 +#define BCSI1ST 0xff +#define BCSI2ND 0xff00 +#define BRXEVM1ST 0xff0000 +#define BRXEVM2ND 0xff000000 +#define BSIGEVM 0xff +#define BPWDB 0xff00 +#define BSGIEN 0x10000 + +#define BSFACTOR_QMA1 0xf +#define BSFACTOR_QMA2 0xf0 +#define BSFACTOR_QMA3 0xf00 +#define BSFACTOR_QMA4 0xf000 +#define BSFACTOR_QMA5 0xf0000 +#define BSFACTOR_QMA6 0xf0000 +#define BSFACTOR_QMA7 0xf00000 +#define BSFACTOR_QMA8 0xf000000 +#define BSFACTOR_QMA9 0xf0000000 +#define BCSI_SCHEME 0x100000 + +#define BNOISE_LVL_TOP_SET 0x3 +#define BCHSMOOTH 0x4 +#define BCHSMOOTH_CFG1 0x38 +#define BCHSMOOTH_CFG2 0x1c0 +#define BCHSMOOTH_CFG3 0xe00 +#define BCHSMOOTH_CFG4 0x7000 +#define BMRCMODE 0x800000 +#define BTHEVMCFG 0x7000000 + +#define BLOOP_FIT_TYPE 0x1 +#define BUPD_CFO 0x40 +#define BUPD_CFO_OFFDATA 0x80 +#define BADV_UPD_CFO 0x100 +#define BADV_TIME_CTRL 0x800 +#define BUPD_CLKO 0x1000 +#define BFC 0x6000 +#define BTRACKING_MODE 0x8000 +#define BPHCMP_ENABLE 0x10000 +#define BUPD_CLKO_LTF 0x20000 +#define BCOM_CH_CFO 0x40000 +#define BCSI_ESTI_MODE 0x80000 +#define BADV_UPD_EQZ 0x100000 +#define BUCHCFG 0x7000000 +#define BUPDEQZ 0x8000000 + +#define BRX_PESUDO_NOISE_ON 0x20000000 +#define BRX_PESUDO_NOISE_A 0xff +#define BRX_PESUDO_NOISE_B 0xff00 +#define BRX_PESUDO_NOISE_C 0xff0000 +#define BRX_PESUDO_NOISE_D 0xff000000 +#define BRX_PESUDO_NOISESTATE_A 0xffff +#define BRX_PESUDO_NOISESTATE_B 0xffff0000 +#define BRX_PESUDO_NOISESTATE_C 0xffff +#define BRX_PESUDO_NOISESTATE_D 0xffff0000 + +#define BZEBRA1_HSSIENABLE 0x8 +#define BZEBRA1_TRXCONTROL 0xc00 +#define BZEBRA1_TRXGAINSETTING 0x07f +#define BZEBRA1_RXCOUNTER 0xc00 +#define BZEBRA1_TXCHANGEPUMP 0x38 +#define BZEBRA1_RXCHANGEPUMP 0x7 +#define BZEBRA1_CHANNEL_NUM 0xf80 +#define BZEBRA1_TXLPFBW 0x400 +#define BZEBRA1_RXLPFBW 0x600 + +#define BRTL8256REG_MODE_CTRL1 0x100 +#define BRTL8256REG_MODE_CTRL0 0x40 +#define BRTL8256REG_TXLPFBW 0x18 +#define BRTL8256REG_RXLPFBW 0x600 + +#define BRTL8258_TXLPFBW 0xc +#define BRTL8258_RXLPFBW 0xc00 +#define BRTL8258_RSSILPFBW 0xc0 + +#define BBYTE0 0x1 +#define BBYTE1 0x2 +#define BBYTE2 0x4 +#define BBYTE3 0x8 +#define BWORD0 0x3 +#define BWORD1 0xc +#define BWORD 0xf + +#define MASKBYTE0 0xff +#define MASKBYTE1 0xff00 +#define MASKBYTE2 0xff0000 +#define MASKBYTE3 0xff000000 +#define MASKHWORD 0xffff0000 +#define MASKLWORD 0x0000ffff +#define MASKDWORD 0xffffffff +#define MASK12BITS 0xfff +#define MASKH4BITS 0xf0000000 +#define MASKOFDM_D 0xffc00000 +#define MASKCCK 0x3f3f3f3f + +#define MASK4BITS 0x0f +#define MASK20BITS 0xfffff +#define RFREG_OFFSET_MASK 0xfffff + +#define BENABLE 0x1 +#define BDISABLE 0x0 + +#define LEFT_ANTENNA 0x0 +#define RIGHT_ANTENNA 0x1 + +#define TCHECK_TXSTATUS 500 +#define TUPDATE_RXCOUNTER 100 + +#define REG_UN_used_register 0x01bf + +/* WOL bit information */ +#define HAL92C_WOL_PTK_UPDATE_EVENT BIT(0) +#define HAL92C_WOL_GTK_UPDATE_EVENT BIT(1) +#define HAL92C_WOL_DISASSOC_EVENT BIT(2) +#define HAL92C_WOL_DEAUTH_EVENT BIT(3) +#define HAL92C_WOL_FW_DISCONNECT_EVENT BIT(4) + +#define WOL_REASON_PTK_UPDATE BIT(0) +#define WOL_REASON_GTK_UPDATE BIT(1) +#define WOL_REASON_DISASSOC BIT(2) +#define WOL_REASON_DEAUTH BIT(3) +#define WOL_REASON_FW_DISCONNECT BIT(4) + +#define RA_RFE_PINMUX 0xcb0 /* Path_A RFE cotrol pinmux*/ +#define RB_RFE_PINMUX 0xeb0 /* Path_B RFE control pinmux*/ + +#define RA_RFE_INV 0xcb4 +#define RB_RFE_INV 0xeb4 + +/* RXIQC */ +#define RA_RXIQC_AB 0xc10 /*RxIQ imblance matrix coeff. A & B*/ +#define RA_RXIQC_CD 0xc14 /*RxIQ imblance matrix coeff. C & D*/ +#define RA_TXSCALE 0xc1c /* Pah_A TX scaling factor*/ +#define RB_TXSCALE 0xe1c /* Path_B TX scaling factor*/ +#define RB_RXIQC_AB 0xe10 /*RxIQ imblance matrix coeff. A & B*/ +#define RB_RXIQC_CD 0xe14 /*RxIQ imblance matrix coeff. C & D*/ +#define RXIQC_AC 0x02ff /*bit mask for IQC matrix element A & C*/ +#define RXIQC_BD 0x02ff0000 /*bit mask for IQC matrix element A & C*/ + +/* 2 EFUSE_TEST (For RTL8723 partially) */ +#define EFUSE_SEL(x) (((x) & 0x3) << 8) +#define EFUSE_SEL_MASK 0x300 +#define EFUSE_WIFI_SEL_0 0x0 + +/*REG_MULTI_FUNC_CTRL(For RTL8723 Only)*/ +#define WL_HWPDN_EN BIT(0) /* Enable GPIO[9] as WiFi HW PDn source*/ +#define WL_HWPDN_SL BIT(1) /* WiFi HW PDn polarity control*/ +#define WL_FUNC_EN BIT(2) // WiFi function enable +#define WL_HWROF_EN BIT(3) // Enable GPIO[9] as WiFi RF HW PDn source +#define BT_HWPDN_EN BIT(16) // Enable GPIO[11] as BT HW PDn source +#define BT_HWPDN_SL BIT(17) // BT HW PDn polarity control +#define BT_FUNC_EN BIT(18) // BT function enable +#define BT_HWROF_EN BIT(19) // Enable GPIO[11] as BT/GPS RF HW PDn source +#define GPS_HWPDN_EN BIT(20) // Enable GPIO[10] as GPS HW PDn source +#define GPS_HWPDN_SL BIT(21) // GPS HW PDn polarity control +#define GPS_FUNC_EN BIT(22) // GPS function enable + + +#define BMASKBYTE0 0xff +#define BMASKBYTE1 0xff00 +#define BMASKBYTE2 0xff0000 +#define BMASKBYTE3 0xff000000 +#define BMASKHWORD 0xffff0000 +#define BMASKLWORD 0x0000ffff +#define BMASKDWORD 0xffffffff +#define BMASK12BITS 0xfff +#define BMASKH4BITS 0xf0000000 +#define BMASKOFDM_D 0xffc00000 +#define BMASKCCK 0x3f3f3f3f + +#define BRFREGOFFSETMASK 0xfffff + +#define ODM_REG_CCK_RPT_FORMAT_11AC 0x804 +#define ODM_REG_BB_RX_PATH_11AC 0x808 +/*PAGE 9*/ +#define ODM_REG_OFDM_FA_RST_11AC 0x9A4 +/*PAGE A*/ +#define ODM_REG_CCK_CCA_11AC 0xA0A +#define ODM_REG_CCK_FA_RST_11AC 0xA2C +#define ODM_REG_CCK_FA_11AC 0xA5C +/*PAGE C*/ +#define ODM_REG_IGI_A_11AC 0xC50 +/*PAGE E*/ +#define ODM_REG_IGI_B_11AC 0xE50 +/*PAGE F*/ +#define ODM_REG_OFDM_FA_11AC 0xF48 + + +//2 MAC REG LIST + + + + +//DIG Related +#define ODM_BIT_IGI_11AC 0xFFFFFFFF +#define ODM_BIT_CCK_RPT_FORMAT_11AC BIT16 +#define ODM_BIT_BB_RX_PATH_11AC 0xF + +typedef enum AGGRE_SIZE{ + HT_AGG_SIZE_8K = 0, + HT_AGG_SIZE_16K = 1, + HT_AGG_SIZE_32K = 2, + HT_AGG_SIZE_64K = 3, + VHT_AGG_SIZE_128K = 4, + VHT_AGG_SIZE_256K = 5, + VHT_AGG_SIZE_512K = 6, + VHT_AGG_SIZE_1024K = 7, +}AGGRE_SIZE_E, *PAGGRE_SIZE_E; + +#define REG_AMPDU_MAX_LENGTH_8812 0x0458 + +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/rf.c +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/rf.c @@ -0,0 +1,464 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "reg.h" +#include "def.h" +#include "phy.h" +#include "rf.h" +#include "dm.h" + +static bool _rtl8821ae_phy_rf6052_config_parafile(struct ieee80211_hw *hw); + +void rtl8821ae_phy_rf6052_set_bandwidth(struct ieee80211_hw *hw, u8 bandwidth) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + switch (bandwidth) { + case HT_CHANNEL_WIDTH_20: + rtl_set_rfreg(hw, RF90_PATH_A, RF_CHNLBW, BIT(11)|BIT(10), 3); + rtl_set_rfreg(hw, RF90_PATH_B, RF_CHNLBW, BIT(11)|BIT(10), 3); + break; + case HT_CHANNEL_WIDTH_20_40: + rtl_set_rfreg(hw, RF90_PATH_A, RF_CHNLBW, BIT(11)|BIT(10), 1); + rtl_set_rfreg(hw, RF90_PATH_B, RF_CHNLBW, BIT(11)|BIT(10), 1); + break; + case HT_CHANNEL_WIDTH_80: + rtl_set_rfreg(hw, RF90_PATH_A, RF_CHNLBW, BIT(11)|BIT(10), 0); + rtl_set_rfreg(hw, RF90_PATH_B, RF_CHNLBW, BIT(11)|BIT(10), 0); + break; + default: + RT_TRACE(COMP_ERR, DBG_EMERG, + ("unknown bandwidth: %#X\n", bandwidth)); + break; + } +} + +void rtl8821ae_phy_rf6052_set_cck_txpower(struct ieee80211_hw *hw, + u8 *ppowerlevel) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + u32 tx_agc[2] = {0, 0}, tmpval; + bool turbo_scanoff = false; + u8 idx1, idx2; + u8 *ptr; + u8 direction; + u32 pwrtrac_value; + + if (rtlefuse->eeprom_regulatory != 0) + turbo_scanoff = true; + + if (mac->act_scanning == true) { + tx_agc[RF90_PATH_A] = 0x3f3f3f3f; + tx_agc[RF90_PATH_B] = 0x3f3f3f3f; + + if (turbo_scanoff) { + for (idx1 = RF90_PATH_A; idx1 <= RF90_PATH_B; idx1++) { + tx_agc[idx1] = ppowerlevel[idx1] | + (ppowerlevel[idx1] << 8) | + (ppowerlevel[idx1] << 16) | + (ppowerlevel[idx1] << 24); + } + } + } else { + for (idx1 = RF90_PATH_A; idx1 <= RF90_PATH_B; idx1++) { + tx_agc[idx1] = ppowerlevel[idx1] | + (ppowerlevel[idx1] << 8) | + (ppowerlevel[idx1] << 16) | + (ppowerlevel[idx1] << 24); + } + + if (rtlefuse->eeprom_regulatory == 0) { + tmpval = + (rtlphy->mcs_txpwrlevel_origoffset[0][6]) + + (rtlphy->mcs_txpwrlevel_origoffset[0][7] << + 8); + tx_agc[RF90_PATH_A] += tmpval; + + tmpval = (rtlphy->mcs_txpwrlevel_origoffset[0][14]) + + (rtlphy->mcs_txpwrlevel_origoffset[0][15] << + 24); + tx_agc[RF90_PATH_B] += tmpval; + } + } + + for (idx1 = RF90_PATH_A; idx1 <= RF90_PATH_B; idx1++) { + ptr = (u8 *) (&(tx_agc[idx1])); + for (idx2 = 0; idx2 < 4; idx2++) { + if (*ptr > RF6052_MAX_TX_PWR) + *ptr = RF6052_MAX_TX_PWR; + ptr++; + } + } + rtl8821ae_dm_txpower_track_adjust(hw,1,&direction,&pwrtrac_value); + if (direction ==1){ + tx_agc[0] += pwrtrac_value; + tx_agc[1] += pwrtrac_value; + } else if (direction == 2){ + tx_agc[0] -= pwrtrac_value; + tx_agc[1] -= pwrtrac_value; + } + tmpval = tx_agc[RF90_PATH_A] ; + rtl_set_bbreg(hw, RTXAGC_A_CCK11_CCK1, MASKDWORD, tmpval); + + RTPRINT(rtlpriv, FPHY, PHY_TXPWR, + ("CCK PWR 1~11M (rf-A) = 0x%x (reg 0x%x)\n", tmpval, + RTXAGC_A_CCK11_CCK1)); + + tmpval = tx_agc[RF90_PATH_B] ; + rtl_set_bbreg(hw, RTXAGC_B_CCK11_CCK1, MASKDWORD, tmpval); + + RTPRINT(rtlpriv, FPHY, PHY_TXPWR, + ("CCK PWR 11M (rf-B) = 0x%x (reg 0x%x)\n", tmpval, + RTXAGC_B_CCK11_CCK1)); +} + +static void rtl8821ae_phy_get_power_base(struct ieee80211_hw *hw, + u8 *ppowerlevel_ofdm, u8 *ppowerlevel_bw20, u8 *ppowerlevel_bw40, u8 channel, + u32 *ofdmbase, u32 *mcsbase) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u32 powerBase0, powerBase1; + u8 i, powerlevel[2]; + + for (i = 0; i < 2; i++) { + powerBase0 = ppowerlevel_ofdm[i]; + + powerBase0 = (powerBase0 << 24) | (powerBase0 << 16) | + (powerBase0 << 8) | powerBase0; + *(ofdmbase + i) = powerBase0; + RTPRINT(rtlpriv, FPHY, PHY_TXPWR, + (" [OFDM power base index rf(%c) = 0x%x]\n", + ((i == 0) ? 'A' : 'B'), *(ofdmbase + i))); + } + + for (i = 0; i < 2; i++) { + if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20) { + powerlevel[i] = ppowerlevel_bw20[i]; + }else{ + powerlevel[i] = ppowerlevel_bw40[i]; + } + powerBase1 = powerlevel[i]; + powerBase1 = (powerBase1 << 24) | + (powerBase1 << 16) | (powerBase1 << 8) | powerBase1; + + *(mcsbase + i) = powerBase1; + + RTPRINT(rtlpriv, FPHY, PHY_TXPWR, + (" [MCS power base index rf(%c) = 0x%x]\n", + ((i == 0) ? 'A' : 'B'), *(mcsbase + i))); + } +} + +static void _rtl8821ae_get_txpower_writeval_by_regulatory(struct ieee80211_hw *hw, + u8 channel, u8 index, + u32 *powerBase0, + u32 *powerBase1, + u32 *p_outwriteval) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + u8 i, chnlgroup = 0, pwr_diff_limit[4],pwr_diff = 0,customer_pwr_diff; + u32 writeVal, customer_limit, rf; + + for (rf = 0; rf < 2; rf++) { + switch (rtlefuse->eeprom_regulatory) { + case 0: + chnlgroup = 0; + + writeVal = + rtlphy->mcs_txpwrlevel_origoffset[chnlgroup][index + + (rf ? 8 : 0)] + + ((index < 2) ? powerBase0[rf] : powerBase1[rf]); + + RTPRINT(rtlpriv, FPHY, PHY_TXPWR, + ("RTK better performance, " + "writeVal(%c) = 0x%x\n", + ((rf == 0) ? 'A' : 'B'), writeVal)); + break; + case 1: + if (rtlphy->pwrgroup_cnt == 1) + chnlgroup = 0; + else { + if(channel<3) + chnlgroup = 0; + else if (channel <6) + chnlgroup = 1; + else if (channel <9) + chnlgroup = 2; + else if (channel <12) + chnlgroup = 3; + else if (channel < 14) + chnlgroup = 4; + else if (channel == 14) + chnlgroup = 5; + } + + writeVal = + rtlphy->mcs_txpwrlevel_origoffset[chnlgroup] + [index + (rf ? 8 : 0)] + ((index < 2) ? + powerBase0[rf] : + powerBase1[rf]); + + RTPRINT(rtlpriv, FPHY, PHY_TXPWR, + ("Realtek regulatory, 20MHz, " + "writeVal(%c) = 0x%x\n", + ((rf == 0) ? 'A' : 'B'), writeVal)); + + break; + case 2: + writeVal = + ((index < 2) ? powerBase0[rf] : powerBase1[rf]); + + RTPRINT(rtlpriv, FPHY, PHY_TXPWR, + ("Better regulatory, " + "writeVal(%c) = 0x%x\n", + ((rf == 0) ? 'A' : 'B'), writeVal)); + break; + case 3: + chnlgroup = 0; + + if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) { + RTPRINT(rtlpriv, FPHY, PHY_TXPWR, + ("customer's limit, 40MHz " + "rf(%c) = 0x%x\n", + ((rf == 0) ? 'A' : 'B'), + rtlefuse->pwrgroup_ht40[rf][channel - + 1])); + } else { + RTPRINT(rtlpriv, FPHY, PHY_TXPWR, + ("customer's limit, 20MHz " + "rf(%c) = 0x%x\n", + ((rf == 0) ? 'A' : 'B'), + rtlefuse->pwrgroup_ht20[rf][channel - + 1])); + } + + if (index < 2) + pwr_diff = rtlefuse->txpwr_legacyhtdiff[rf][channel-1]; + else if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20) + pwr_diff = rtlefuse->txpwr_ht20diff[rf][channel-1]; + + if (rtlphy->current_chan_bw == HT_CHANNEL_WIDTH_20_40) + customer_pwr_diff = rtlefuse->pwrgroup_ht40[rf][channel-1]; + else + customer_pwr_diff = rtlefuse->pwrgroup_ht20[rf][channel-1]; + + if (pwr_diff > customer_pwr_diff) + pwr_diff = 0; + else + pwr_diff = customer_pwr_diff - pwr_diff; + + for (i = 0; i < 4; i++) { + pwr_diff_limit[i] = + (u8) ((rtlphy->mcs_txpwrlevel_origoffset + [chnlgroup][index + (rf ? 8 : 0)] & (0x7f << + (i * 8))) >> (i * 8)); + + if(pwr_diff_limit[i] > pwr_diff) + pwr_diff_limit[i] = pwr_diff; + } + + customer_limit = (pwr_diff_limit[3] << 24) | + (pwr_diff_limit[2] << 16) | + (pwr_diff_limit[1] << 8) | (pwr_diff_limit[0]); + + RTPRINT(rtlpriv, FPHY, PHY_TXPWR, + ("Customer's limit rf(%c) = 0x%x\n", + ((rf == 0) ? 'A' : 'B'), customer_limit)); + + writeVal = customer_limit + + ((index < 2) ? powerBase0[rf] : powerBase1[rf]); + + RTPRINT(rtlpriv, FPHY, PHY_TXPWR, + ("Customer, writeVal rf(%c)= 0x%x\n", + ((rf == 0) ? 'A' : 'B'), writeVal)); + break; + default: + chnlgroup = 0; + writeVal = + rtlphy->mcs_txpwrlevel_origoffset[chnlgroup] + [index + (rf ? 8 : 0)] + + ((index < 2) ? powerBase0[rf] : powerBase1[rf]); + + RTPRINT(rtlpriv, FPHY, PHY_TXPWR, + ("RTK better performance, writeVal " + "rf(%c) = 0x%x\n", + ((rf == 0) ? 'A' : 'B'), writeVal)); + break; + } + + if (rtlpriv->dm.dynamic_txhighpower_lvl == TXHIGHPWRLEVEL_BT1) + writeVal = writeVal - 0x06060606; + else if (rtlpriv->dm.dynamic_txhighpower_lvl == + TXHIGHPWRLEVEL_BT2) + writeVal = writeVal - 0x0c0c0c0c; + *(p_outwriteval + rf) = writeVal; + } +} + +static void _rtl8821ae_write_ofdm_power_reg(struct ieee80211_hw *hw, + u8 index, u32 *pValue) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u16 regoffset_a[6] = { + RTXAGC_A_OFDM18_OFDM6, RTXAGC_A_OFDM54_OFDM24, + RTXAGC_A_MCS03_MCS00, RTXAGC_A_MCS07_MCS04, + RTXAGC_A_MCS11_MCS08, RTXAGC_A_MCS15_MCS12 + }; + u16 regoffset_b[6] = { + RTXAGC_B_OFDM18_OFDM6, RTXAGC_B_OFDM54_OFDM24, + RTXAGC_B_MCS03_MCS00, RTXAGC_B_MCS07_MCS04, + RTXAGC_B_MCS11_MCS08, RTXAGC_B_MCS15_MCS12 + }; + u8 i, rf, pwr_val[4]; + u32 writeVal; + u16 regoffset; + + for (rf = 0; rf < 2; rf++) { + writeVal = pValue[rf]; + for (i = 0; i < 4; i++) { + pwr_val[i] = (u8) ((writeVal & (0x7f << + (i * 8))) >> (i * 8)); + + if (pwr_val[i] > RF6052_MAX_TX_PWR) + pwr_val[i] = RF6052_MAX_TX_PWR; + } + writeVal = (pwr_val[3] << 24) | (pwr_val[2] << 16) | + (pwr_val[1] << 8) | pwr_val[0]; + + if (rf == 0) + regoffset = regoffset_a[index]; + else + regoffset = regoffset_b[index]; + rtl_set_bbreg(hw, regoffset, MASKDWORD, writeVal); + + RTPRINT(rtlpriv, FPHY, PHY_TXPWR, + ("Set 0x%x = %08x\n", regoffset, writeVal)); + } +} + +void rtl8821ae_phy_rf6052_set_ofdm_txpower(struct ieee80211_hw *hw, + u8 *ppowerlevel_ofdm, u8 *ppowerlevel_bw20, u8 *ppowerlevel_bw40, u8 channel) +{ + u32 writeVal[2], powerBase0[2], powerBase1[2]; + u8 index; + u8 direction; + u32 pwrtrac_value; + + rtl8821ae_phy_get_power_base(hw, ppowerlevel_ofdm, ppowerlevel_bw20, ppowerlevel_bw40, + channel, &powerBase0[0], &powerBase1[0]); + + rtl8821ae_dm_txpower_track_adjust(hw,1,&direction,&pwrtrac_value); + + for (index = 0; index < 6; index++) { + _rtl8821ae_get_txpower_writeval_by_regulatory(hw, + channel, index, + &powerBase0[0], + &powerBase1[0], + &writeVal[0]); + if (direction ==1){ + writeVal[0] += pwrtrac_value; + writeVal[1] += pwrtrac_value; + } else if (direction == 2){ + writeVal[0] -= pwrtrac_value; + writeVal[1] -= pwrtrac_value; + } + _rtl8821ae_write_ofdm_power_reg(hw, index, &writeVal[0]); + } +} + +bool rtl8821ae_phy_rf6052_config(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + + if (rtlphy->rf_type == RF_1T1R) + rtlphy->num_total_rfpath = 1; + else + rtlphy->num_total_rfpath = 2; + + return _rtl8821ae_phy_rf6052_config_parafile(hw); + +} + +static bool _rtl8821ae_phy_rf6052_config_parafile(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); + //u32 u4_regvalue = 0; + u8 rfpath; + bool rtstatus = true; + //struct bb_reg_def *pphyreg; + + for (rfpath = 0; rfpath < rtlphy->num_total_rfpath; rfpath++) { + switch (rfpath) { + case RF90_PATH_A: { + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + rtstatus = rtl8812ae_phy_config_rf_with_headerfile(hw, + (enum radio_path)rfpath); + else + rtstatus = rtl8821ae_phy_config_rf_with_headerfile(hw, + (enum radio_path)rfpath); + break; + } + case RF90_PATH_B: { + if (rtlhal->hw_type == HARDWARE_TYPE_RTL8812AE) + rtstatus = rtl8812ae_phy_config_rf_with_headerfile(hw, + (enum radio_path)rfpath); + else + rtstatus = rtl8821ae_phy_config_rf_with_headerfile(hw, + (enum radio_path)rfpath); + break; + } + case RF90_PATH_C: + break; + case RF90_PATH_D: + break; + } + + if (rtstatus != true) { + RT_TRACE(COMP_INIT, DBG_TRACE, + ("Radio[%d] Fail!!", rfpath)); + return false; + } + + } + + /*put arrays in dm.c*/ + /*_rtl8821ae_config_rf_txpwr_track_headerfile(hw);*/ + RT_TRACE(COMP_INIT, DBG_TRACE, ("\n")); + return rtstatus; +} --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/rf.h +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/rf.h @@ -0,0 +1,46 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8821AE_RF_H__ +#define __RTL8821AE_RF_H__ + +#define RF6052_MAX_TX_PWR 0x3F +#define RF6052_MAX_REG 0x3F + +extern void rtl8821ae_phy_rf6052_set_bandwidth(struct ieee80211_hw *hw, + u8 bandwidth); +extern void rtl8821ae_phy_rf6052_set_cck_txpower(struct ieee80211_hw *hw, + u8 *ppowerlevel); +extern void rtl8821ae_phy_rf6052_set_ofdm_txpower(struct ieee80211_hw *hw, + u8 *ppowerlevel_ofdm, + u8 *ppowerlevel_bw20, + u8 *ppowerlevel_bw40, + u8 channel); +extern bool rtl8821ae_phy_rf6052_config(struct ieee80211_hw *hw); +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/sw.c +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/sw.c @@ -0,0 +1,499 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include +#include + +#include "../wifi.h" +#include "../core.h" +#include "../pci.h" +#include "reg.h" +#include "def.h" +#include "phy.h" +#include "dm.h" +#include "hw.h" +#include "sw.h" +#include "trx.h" +#include "led.h" +#include "table.h" +#include "hal_btc.h" +#include "../btcoexist/rtl_btc.h" + +void rtl8821ae_init_aspm_vars(struct ieee80211_hw *hw) +{ + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + + /*close ASPM for AMD defaultly */ + rtlpci->const_amdpci_aspm = 0; + + /* + * ASPM PS mode. + * 0 - Disable ASPM, + * 1 - Enable ASPM without Clock Req, + * 2 - Enable ASPM with Clock Req, + * 3 - Alwyas Enable ASPM with Clock Req, + * 4 - Always Enable ASPM without Clock Req. + * set defult to RTL8192CE:3 RTL8192E:2 + * */ + rtlpci->const_pci_aspm = 3; + + /*Setting for PCI-E device */ + rtlpci->const_devicepci_aspm_setting = 0x03; + + /*Setting for PCI-E bridge */ + rtlpci->const_hostpci_aspm_setting = 0x02; + + /* + * In Hw/Sw Radio Off situation. + * 0 - Default, + * 1 - From ASPM setting without low Mac Pwr, + * 2 - From ASPM setting with low Mac Pwr, + * 3 - Bus D3 + * set default to RTL8192CE:0 RTL8192SE:2 + */ + rtlpci->const_hwsw_rfoff_d3 = 0; + + /* + * This setting works for those device with + * backdoor ASPM setting such as EPHY setting. + * 0 - Not support ASPM, + * 1 - Support ASPM, + * 2 - According to chipset. + */ + rtlpci->const_support_pciaspm = 1; +} + +/*InitializeVariables8812E*/ +int rtl8821ae_init_sw_vars(struct ieee80211_hw *hw) +{ + int err = 0; + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + const struct firmware *firmware; + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + char *fw_name = NULL; + + rtl8821ae_bt_reg_init(hw); + rtlpriv->btcoexist.btc_ops = rtl_btc_get_ops_pointer(); + + rtlpriv->dm.b_dm_initialgain_enable = 1; + rtlpriv->dm.dm_flag = 0; + rtlpriv->dm.b_disable_framebursting = 0;; + rtlpriv->dm.thermalvalue = 0; + rtlpci->transmit_config = CFENDFORM | BIT(15) | BIT(24) | BIT(25); + + mac->ht_enable = true; + + rtlpriv->rtlhal.current_bandtype = BAND_ON_2_4G; + /*following 2 is for register 5G band, refer to _rtl_init_mac80211()*/ + rtlpriv->rtlhal.bandset = BAND_ON_BOTH; + rtlpriv->rtlhal.macphymode = SINGLEMAC_SINGLEPHY; + + rtlpci->receive_config = (RCR_APPFCS | + RCR_APP_MIC | + RCR_APP_ICV | + RCR_APP_PHYST_RXFF | + RCR_NONQOS_VHT | + RCR_HTC_LOC_CTRL | + RCR_AMF | + RCR_ACF | + RCR_ADF | /*This bit controls the PS-Poll packet filter.*/ + RCR_AICV | + RCR_ACRC32 | + RCR_AB | + RCR_AM | + RCR_APM | + 0); + + + rtlpci->irq_mask[0] = + (u32) (IMR_PSTIMEOUT | + IMR_GTINT3 | + /*IMR_TBDER | + IMR_TBDOK | + IMR_BCNDMAINT0 |*/ + IMR_HSISR_IND_ON_INT | + IMR_C2HCMD | + IMR_HIGHDOK | + IMR_MGNTDOK | + IMR_BKDOK | + IMR_BEDOK | + IMR_VIDOK | + IMR_VODOK | + IMR_RDU | + IMR_ROK | + 0); + + rtlpci->irq_mask[1] = + (u32)( IMR_RXFOVW | + IMR_TXFOVW | + 0); + + /* for LPS & IPS */ + rtlpriv->psc.b_inactiveps = rtlpriv->cfg->mod_params->b_inactiveps; + rtlpriv->psc.b_swctrl_lps = rtlpriv->cfg->mod_params->b_swctrl_lps; + rtlpriv->psc.b_fwctrl_lps = rtlpriv->cfg->mod_params->b_fwctrl_lps; + rtlpriv->psc.b_reg_fwctrl_lps = 3; + rtlpriv->psc.reg_max_lps_awakeintvl = 5; + /* for ASPM, you can close aspm through + * set const_support_pciaspm = 0 */ + rtl8821ae_init_aspm_vars(hw); + + if (rtlpriv->psc.b_reg_fwctrl_lps == 1) + rtlpriv->psc.fwctrl_psmode = FW_PS_MIN_MODE; + else if (rtlpriv->psc.b_reg_fwctrl_lps == 2) + rtlpriv->psc.fwctrl_psmode = FW_PS_MAX_MODE; + else if (rtlpriv->psc.b_reg_fwctrl_lps == 3) + rtlpriv->psc.fwctrl_psmode = FW_PS_DTIM_MODE; + + /* for firmware buf */ + rtlpriv->rtlhal.pfirmware = (u8 *) vmalloc(0x8000); + if (!rtlpriv->rtlhal.pfirmware) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("Can't alloc buffer for fw.\n")); + return 1; + } + + fw_name = "rtlwifi/rtl8821aefw.bin"; + err = request_firmware(&firmware, fw_name, rtlpriv->io.dev); + if (err) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("Failed to request firmware!\n")); + return 1; + } + + if (firmware->size > 0x8000) { + RT_TRACE(COMP_ERR, DBG_EMERG, + ("Firmware is too big!\n")); + release_firmware(firmware); + return 1; + } + + memcpy(rtlpriv->rtlhal.pfirmware, firmware->data, firmware->size); + rtlpriv->rtlhal.fwsize = firmware->size; + release_firmware(firmware); + + if (rtlpriv->cfg->ops->get_btc_status()){ + rtlpriv->btcoexist.btc_ops->btc_init_variables(rtlpriv); + rtlpriv->btcoexist.btc_ops->btc_init_hal_vars(rtlpriv); + } + + RT_TRACE(COMP_INIT, DBG_LOUD, (" FirmwareDownload OK\n")); + return err; +} + +void rtl8821ae_deinit_sw_vars(struct ieee80211_hw *hw) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + //printk("=========>rtl8821ae_deinit_sw_vars().\n"); + if (rtlpriv->cfg->ops->get_btc_status()){ + //printk("=========>rtl8821ae_deinit_sw_vars().get_btc_status\n"); + rtlpriv->btcoexist.btc_ops->btc_halt_notify(); + } + if (rtlpriv->rtlhal.pfirmware) { + //printk("=========>rtl8821ae_deinit_sw_vars().rtlpriv->rtlhal.pfirmware\n"); + vfree(rtlpriv->rtlhal.pfirmware); + rtlpriv->rtlhal.pfirmware = NULL; + } + //printk("<=========rtl8821ae_deinit_sw_vars().\n"); +} + +u32 rtl8812ae_rx_command_packet_handler( + struct ieee80211_hw *hw, + struct rtl_stats status, + struct sk_buff *skb + ) +{ + u32 result = 0; + struct rtl_priv *rtlpriv = rtl_priv(hw); + + switch (status.packet_report_type) { + case NORMAL_RX: + result = 0; + break; + case C2H_PACKET: + rtl8812ae_c2h_packet_handler(hw, skb->data, (u8) skb->len); + result = 1; + RT_TRACE(COMP_RECV, DBG_LOUD, + ("===>rtl8821ae_rx_command_packet_handler(): (u8) skb->len=%d\n\n", skb->len)); + break; + default: + RT_TRACE(COMP_RECV, DBG_LOUD, + ("===>rtl8821ae_rx_command_packet_handler(): No this packet type!!\n")); + break; + } + + return result; +} + + +/* get bt coexist status */ +bool rtl8821ae_get_btc_status(void) +{ + return true; +} + +struct rtl_hal_ops rtl8821ae_hal_ops = { + .init_sw_vars = rtl8821ae_init_sw_vars, + .deinit_sw_vars = rtl8821ae_deinit_sw_vars, + .read_eeprom_info = rtl8821ae_read_eeprom_info, + .interrupt_recognized = rtl8821ae_interrupt_recognized, + .hw_init = rtl8821ae_hw_init, + .hw_disable = rtl8821ae_card_disable, + .hw_suspend = rtl8821ae_suspend, + .hw_resume = rtl8821ae_resume, + .enable_interrupt = rtl8821ae_enable_interrupt, + .disable_interrupt = rtl8821ae_disable_interrupt, + .set_network_type = rtl8821ae_set_network_type, + .set_chk_bssid = rtl8821ae_set_check_bssid, + .set_qos = rtl8821ae_set_qos, + .set_bcn_reg = rtl8821ae_set_beacon_related_registers, + .set_bcn_intv = rtl8821ae_set_beacon_interval, + .update_interrupt_mask = rtl8821ae_update_interrupt_mask, + .get_hw_reg = rtl8821ae_get_hw_reg, + .set_hw_reg = rtl8821ae_set_hw_reg, + .update_rate_tbl = rtl8821ae_update_hal_rate_tbl, + .fill_tx_desc = rtl8821ae_tx_fill_desc, + .fill_tx_cmddesc = rtl8821ae_tx_fill_cmddesc, + .query_rx_desc = rtl8821ae_rx_query_desc, + .set_channel_access = rtl8821ae_update_channel_access_setting, + .radio_onoff_checking = rtl8821ae_gpio_radio_on_off_checking, + .set_bw_mode = rtl8821ae_phy_set_bw_mode, + .switch_channel = rtl8821ae_phy_sw_chnl, + .dm_watchdog = rtl8821ae_dm_watchdog, + .scan_operation_backup = rtl8821ae_phy_scan_operation_backup, + .set_rf_power_state = rtl8821ae_phy_set_rf_power_state, + .led_control = rtl8821ae_led_control, + .set_desc = rtl8821ae_set_desc, + .get_desc = rtl8821ae_get_desc, + .is_tx_desc_closed = rtl8821ae_is_tx_desc_closed, + .tx_polling = rtl8821ae_tx_polling, + .enable_hw_sec = rtl8821ae_enable_hw_security_config, + .set_key = rtl8821ae_set_key, + .init_sw_leds = rtl8821ae_init_sw_leds, + .allow_all_destaddr = rtl8821ae_allow_all_destaddr, + .get_bbreg = rtl8821ae_phy_query_bb_reg, + .set_bbreg = rtl8821ae_phy_set_bb_reg, + .get_rfreg = rtl8821ae_phy_query_rf_reg, + .set_rfreg = rtl8821ae_phy_set_rf_reg, + .c2h_command_handle = rtl_8821ae_c2h_command_handle, + .bt_wifi_media_status_notify = rtl_8821ae_bt_wifi_media_status_notify, + .bt_turn_off_bt_coexist_before_enter_lps = rtl8821ae_dm_bt_turn_off_bt_coexist_before_enter_lps, + .fill_h2c_cmd = rtl8821ae_fill_h2c_cmd, + .get_btc_status = rtl8821ae_get_btc_status, + .rx_command_packet_handler = rtl8812ae_rx_command_packet_handler, +}; + +struct rtl_mod_params rtl8821ae_mod_params = { + .sw_crypto = false, + .b_inactiveps = false,//true, + .b_swctrl_lps = false, + .b_fwctrl_lps = false, //true, +}; + +struct rtl_hal_cfg rtl8821ae_hal_cfg = { + .bar_id = 2, + .write_readback = true, + .name = "rtl8821ae_pci", + .fw_name = "rtlwifi/rtl8821aefw.bin", + .ops = &rtl8821ae_hal_ops, + .mod_params = &rtl8821ae_mod_params, + .maps[SYS_ISO_CTRL] = REG_SYS_ISO_CTRL, + .maps[SYS_FUNC_EN] = REG_SYS_FUNC_EN, + .maps[SYS_CLK] = REG_SYS_CLKR, + .maps[MAC_RCR_AM] = AM, + .maps[MAC_RCR_AB] = AB, + .maps[MAC_RCR_ACRC32] = ACRC32, + .maps[MAC_RCR_ACF] = ACF, + .maps[MAC_RCR_AAP] = AAP, + .maps[MAC_HIMR] = REG_HIMR, + .maps[MAC_HIMRE] = REG_HIMRE, + + + .maps[EFUSE_ACCESS] = REG_EFUSE_ACCESS, + + .maps[EFUSE_TEST] = REG_EFUSE_TEST, + .maps[EFUSE_CTRL] = REG_EFUSE_CTRL, + .maps[EFUSE_CLK] = 0, + .maps[EFUSE_CLK_CTRL] = REG_EFUSE_CTRL, + .maps[EFUSE_PWC_EV12V] = PWC_EV12V, + .maps[EFUSE_FEN_ELDR] = FEN_ELDR, + .maps[EFUSE_LOADER_CLK_EN] = LOADER_CLK_EN, + .maps[EFUSE_ANA8M] = ANA8M, + .maps[EFUSE_HWSET_MAX_SIZE] = HWSET_MAX_SIZE, + .maps[EFUSE_MAX_SECTION_MAP] = EFUSE_MAX_SECTION, + .maps[EFUSE_REAL_CONTENT_SIZE] = EFUSE_REAL_CONTENT_LEN, + .maps[EFUSE_OOB_PROTECT_BYTES_LEN] = EFUSE_OOB_PROTECT_BYTES, + + .maps[RWCAM] = REG_CAMCMD, + .maps[WCAMI] = REG_CAMWRITE, + .maps[RCAMO] = REG_CAMREAD, + .maps[CAMDBG] = REG_CAMDBG, + .maps[SECR] = REG_SECCFG, + .maps[SEC_CAM_NONE] = CAM_NONE, + .maps[SEC_CAM_WEP40] = CAM_WEP40, + .maps[SEC_CAM_TKIP] = CAM_TKIP, + .maps[SEC_CAM_AES] = CAM_AES, + .maps[SEC_CAM_WEP104] = CAM_WEP104, + + .maps[RTL_IMR_BCNDMAINT6] = IMR_BCNDMAINT6, + .maps[RTL_IMR_BCNDMAINT5] = IMR_BCNDMAINT5, + .maps[RTL_IMR_BCNDMAINT4] = IMR_BCNDMAINT4, + .maps[RTL_IMR_BCNDMAINT3] = IMR_BCNDMAINT3, + .maps[RTL_IMR_BCNDMAINT2] = IMR_BCNDMAINT2, + .maps[RTL_IMR_BCNDMAINT1] = IMR_BCNDMAINT1, +/* .maps[RTL_IMR_BCNDOK8] = IMR_BCNDOK8, */ /*need check*/ + .maps[RTL_IMR_BCNDOK7] = IMR_BCNDOK7, + .maps[RTL_IMR_BCNDOK6] = IMR_BCNDOK6, + .maps[RTL_IMR_BCNDOK5] = IMR_BCNDOK5, + .maps[RTL_IMR_BCNDOK4] = IMR_BCNDOK4, + .maps[RTL_IMR_BCNDOK3] = IMR_BCNDOK3, + .maps[RTL_IMR_BCNDOK2] = IMR_BCNDOK2, + .maps[RTL_IMR_BCNDOK1] = IMR_BCNDOK1, +/* .maps[RTL_IMR_TIMEOUT2] = IMR_TIMEOUT2,*/ +/* .maps[RTL_IMR_TIMEOUT1] = IMR_TIMEOUT1,*/ + + .maps[RTL_IMR_TXFOVW] = IMR_TXFOVW, + .maps[RTL_IMR_PSTIMEOUT] = IMR_PSTIMEOUT, + .maps[RTL_IMR_BcnInt] = IMR_BCNDMAINT0, + .maps[RTL_IMR_RXFOVW] = IMR_RXFOVW, + .maps[RTL_IMR_RDU] = IMR_RDU, + .maps[RTL_IMR_ATIMEND] = IMR_ATIMEND, + .maps[RTL_IMR_BDOK] = IMR_BCNDOK0, + .maps[RTL_IMR_MGNTDOK] = IMR_MGNTDOK, + .maps[RTL_IMR_TBDER] = IMR_TBDER, + .maps[RTL_IMR_HIGHDOK] = IMR_HIGHDOK, + .maps[RTL_IMR_TBDOK] = IMR_TBDOK, + .maps[RTL_IMR_BKDOK] = IMR_BKDOK, + .maps[RTL_IMR_BEDOK] = IMR_BEDOK, + .maps[RTL_IMR_VIDOK] = IMR_VIDOK, + .maps[RTL_IMR_VODOK] = IMR_VODOK, + .maps[RTL_IMR_ROK] = IMR_ROK, + .maps[RTL_IBSS_INT_MASKS] = (IMR_BCNDMAINT0 | IMR_TBDOK | IMR_TBDER), + + .maps[RTL_RC_CCK_RATE1M] = DESC_RATE1M, + .maps[RTL_RC_CCK_RATE2M] = DESC_RATE2M, + .maps[RTL_RC_CCK_RATE5_5M] = DESC_RATE5_5M, + .maps[RTL_RC_CCK_RATE11M] = DESC_RATE11M, + .maps[RTL_RC_OFDM_RATE6M] = DESC_RATE6M, + .maps[RTL_RC_OFDM_RATE9M] = DESC_RATE9M, + .maps[RTL_RC_OFDM_RATE12M] = DESC_RATE12M, + .maps[RTL_RC_OFDM_RATE18M] = DESC_RATE18M, + .maps[RTL_RC_OFDM_RATE24M] = DESC_RATE24M, + .maps[RTL_RC_OFDM_RATE36M] = DESC_RATE36M, + .maps[RTL_RC_OFDM_RATE48M] = DESC_RATE48M, + .maps[RTL_RC_OFDM_RATE54M] = DESC_RATE54M, + + .maps[RTL_RC_HT_RATEMCS7] = DESC_RATEMCS7, + .maps[RTL_RC_HT_RATEMCS15] = DESC_RATEMCS15, +}; + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) +static struct pci_device_id rtl8821ae_pci_ids[] = { + {RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8812, rtl8821ae_hal_cfg)}, + {RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8821, rtl8821ae_hal_cfg)}, + {}, +}; +#else +static struct pci_device_id rtl8821ae_pci_ids[] __devinitdata = { + {RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8812, rtl8821ae_hal_cfg)}, + {RTL_PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8821, rtl8821ae_hal_cfg)}, + {}, +}; +#endif + +MODULE_DEVICE_TABLE(pci, rtl8821ae_pci_ids); + +MODULE_AUTHOR("Ping Yan"); +MODULE_AUTHOR("Realtek WlanFAE "); +MODULE_LICENSE("GPL"); +MODULE_DESCRIPTION("Realtek 8821ae 802.11ac PCI wireless"); +MODULE_FIRMWARE("rtlwifi/rtl8821aefw.bin"); + +module_param_named(swenc, rtl8821ae_mod_params.sw_crypto, bool, 0444); +module_param_named(ips, rtl8821ae_mod_params.b_inactiveps, bool, 0444); +module_param_named(swlps, rtl8821ae_mod_params.b_swctrl_lps, bool, 0444); +module_param_named(fwlps, rtl8821ae_mod_params.b_fwctrl_lps, bool, 0444); +MODULE_PARM_DESC(swenc, "using hardware crypto (default 0 [hardware])\n"); +MODULE_PARM_DESC(ips, "using no link power save (default 1 is open)\n"); +MODULE_PARM_DESC(fwlps, "using linked fw control power save (default 1 is open)\n"); + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) +static const SIMPLE_DEV_PM_OPS(rtlwifi_pm_ops, rtl_pci_suspend, rtl_pci_resume); +#endif + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)) +compat_pci_suspend(rtl_pci_suspend) +compat_pci_resume(rtl_pci_resume) +#endif + +static struct pci_driver rtl8821ae_driver = { + .name = KBUILD_MODNAME, + .id_table = rtl8821ae_pci_ids, + .probe = rtl_pci_probe, + .remove = rtl_pci_disconnect, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)) + .driver.pm = &rtlwifi_pm_ops, +#elif defined(CONFIG_PM) + .suspend = rtl_pci_suspend_compat, + .resume = rtl_pci_resume_compat, +#endif + +}; + + +extern int rtl_core_module_init(void); +extern void rtl_core_module_exit(void); + +static int __init rtl8821ae_module_init(void) +{ + int ret; + + ret = rtl_core_module_init(); + if (ret) + return ret; + + //printk("==========>rtl8821ae_module_init().\n"); + ret = pci_register_driver(&rtl8821ae_driver); + if (ret) + RT_ASSERT(false, (": No device found\n")); + + return ret; +} + +static void __exit rtl8821ae_module_exit(void) +{ + pci_unregister_driver(&rtl8821ae_driver); + rtl_core_module_exit(); +} + +module_init(rtl8821ae_module_init); +module_exit(rtl8821ae_module_exit); --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/sw.h +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/sw.h @@ -0,0 +1,39 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8821AE_SW_H__ +#define __RTL8821AE_SW_H__ + +int rtl8821ae_init_sw_vars(struct ieee80211_hw *hw); +void rtl8821ae_deinit_sw_vars(struct ieee80211_hw *hw); +void rtl8821ae_init_var_map(struct ieee80211_hw *hw); +bool rtl8821ae_get_btc_status(void); + + +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/table.c +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/table.c @@ -0,0 +1,4002 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Created on 2010/ 5/18, 1:41 + * + * Larry Finger + * + *****************************************************************************/ + +#include "table.h" +u32 RTL8812AE_PHY_REG_ARRAY[] = { + 0x800, 0x8020D010, + 0x804, 0x080112E0, + 0x808, 0x0E028233, + 0x80C, 0x12131113, + 0x810, 0x20101263, + 0x814, 0x020C3D10, + 0x818, 0x03A00385, + 0x820, 0x00000000, + 0x824, 0x00030FE0, + 0x828, 0x00000000, + 0x82C, 0x002083DD, + 0x830, 0x2AAA6C86, + 0x834, 0x0037A706, + 0x838, 0x06C89B44, + 0x83C, 0x0000095B, + 0x840, 0xC0000001, + 0x844, 0x40003CDE, + 0x848, 0x6210FF8B, + 0x84C, 0x6CFDFFB8, + 0x850, 0x28874706, + 0x854, 0x0001520C, + 0x858, 0x8060E000, + 0x85C, 0x74210168, + 0x860, 0x6929C321, + 0x864, 0x79727432, + 0x868, 0x8CA7A314, + 0x86C, 0x338C2878, + 0x870, 0x03333333, + 0x874, 0x31602C2E, + 0x878, 0x00003152, + 0x87C, 0x000FC000, + 0x8A0, 0x00000013, + 0x8A4, 0x7F7F7F7F, + 0x8A8, 0xA202033E, + 0x8AC, 0x0FF0FA0A, + 0x8B0, 0x00000600, + 0x8B4, 0x000FC080, + 0x8B8, 0x6C0057FF, + 0x8BC, 0x4CA520A3, + 0x8C0, 0x27F00020, + 0x8C4, 0x00000000, + 0x8C8, 0x00013169, + 0x8CC, 0x08248492, + 0x8D0, 0x0000B800, + 0x8DC, 0x00000000, + 0x8D4, 0x940008A0, + 0x8D8, 0x290B5612, + 0x8F8, 0x400002C0, + 0x8FC, 0x00000000, + 0xFF0F07D8, 0xABCD, + 0x900, 0x00000700, + 0xFF0F07D0, 0xCDEF, + 0x900, 0x00000700, + 0xCDCDCDCD, 0xCDCD, + 0x900, 0x00000700, + 0xFF0F07D8, 0xDEAD, + 0x90C, 0x00000000, + 0x910, 0x0000FC00, + 0x914, 0x00000404, + 0x918, 0x1C1028C0, + 0x91C, 0x64B11A1C, + 0x920, 0xE0767233, + 0x924, 0x055AA500, + 0x928, 0x00000004, + 0x92C, 0xFFFE0000, + 0x930, 0xFFFFFFFE, + 0x934, 0x001FFFFF, + 0x960, 0x00000000, + 0x964, 0x00000000, + 0x968, 0x00000000, + 0x96C, 0x00000000, + 0x970, 0x801FFFFF, + 0x978, 0x00000000, + 0x97C, 0x00000000, + 0x980, 0x00000000, + 0x984, 0x00000000, + 0x988, 0x00000000, + 0x990, 0x27100000, + 0x994, 0xFFFF0100, + 0x998, 0xFFFFFF5C, + 0x99C, 0xFFFFFFFF, + 0x9A0, 0x000000FF, + 0x9A4, 0x00080080, + 0x9A8, 0x00000000, + 0x9AC, 0x00000000, + 0x9B0, 0x81081008, + 0x9B4, 0x00000000, + 0x9B8, 0x01081008, + 0x9BC, 0x01081008, + 0x9D0, 0x00000000, + 0x9D4, 0x00000000, + 0x9D8, 0x00000000, + 0x9DC, 0x00000000, + 0x9E4, 0x00000002, + 0x9E8, 0x000002D5, + 0xA00, 0x00D047C8, + 0xA04, 0x01FF000C, + 0xA08, 0x8C838300, + 0xA0C, 0x2E7F000F, + 0xA10, 0x9500BB78, + 0xA14, 0x11144028, + 0xA18, 0x00881117, + 0xA1C, 0x89140F00, + 0xA20, 0x1A1B0000, + 0xA24, 0x090E1317, + 0xA28, 0x00000204, + 0xA2C, 0x00900000, + 0xA70, 0x101FFF00, + 0xA74, 0x00000008, + 0xA78, 0x00000900, + 0xA7C, 0x225B0606, + 0xA80, 0x218075B2, + 0xA84, 0x001F8C80, + 0xB00, 0x03100000, + 0xB04, 0x0000B000, + 0xB08, 0xAE0201EB, + 0xB0C, 0x01003207, + 0xB10, 0x00009807, + 0xB14, 0x01000000, + 0xB18, 0x00000002, + 0xB1C, 0x00000002, + 0xB20, 0x0000001F, + 0xB24, 0x03020100, + 0xB28, 0x07060504, + 0xB2C, 0x0B0A0908, + 0xB30, 0x0F0E0D0C, + 0xB34, 0x13121110, + 0xB38, 0x17161514, + 0xB3C, 0x0000003A, + 0xB40, 0x00000000, + 0xB44, 0x00000000, + 0xB48, 0x13000032, + 0xB4C, 0x48080000, + 0xB50, 0x00000000, + 0xB54, 0x00000000, + 0xB58, 0x00000000, + 0xB5C, 0x00000000, + 0xC00, 0x00000007, + 0xC04, 0x00042020, + 0xC08, 0x80410231, + 0xC0C, 0x00000000, + 0xC10, 0x00000100, + 0xC14, 0x01000000, + 0xC1C, 0x40000003, + 0xC20, 0x12121212, + 0xC24, 0x12121212, + 0xC28, 0x12121212, + 0xC2C, 0x12121212, + 0xC30, 0x12121212, + 0xC34, 0x12121212, + 0xC38, 0x12121212, + 0xC3C, 0x12121212, + 0xC40, 0x12121212, + 0xC44, 0x12121212, + 0xC48, 0x12121212, + 0xC4C, 0x12121212, + 0xC50, 0x00000020, + 0xC54, 0x0008121C, + 0xC58, 0x30000C1C, + 0xC5C, 0x00000058, + 0xC60, 0x34344443, + 0xC64, 0x07003333, + 0xC68, 0x59791979, + 0xC6C, 0x59795979, + 0xC70, 0x19795979, + 0xC74, 0x19795979, + 0xC78, 0x19791979, + 0xC7C, 0x19791979, + 0xC80, 0x19791979, + 0xC84, 0x19791979, + 0xC94, 0x0100005C, + 0xC98, 0x00000000, + 0xC9C, 0x00000000, + 0xCA0, 0x00000029, + 0xCA4, 0x08040201, + 0xCA8, 0x80402010, + 0xFF0F0740, 0xABCD, + 0xCB0, 0x77547717, + 0xFF0F01C0, 0xCDEF, + 0xCB0, 0x77547717, + 0xFF0F02C0, 0xCDEF, + 0xCB0, 0x77547717, + 0xFF0F07D8, 0xCDEF, + 0xCB0, 0x54547710, + 0xFF0F07D0, 0xCDEF, + 0xCB0, 0x54547710, + 0xCDCDCDCD, 0xCDCD, + 0xCB0, 0x77547777, + 0xFF0F0740, 0xDEAD, + 0xCB4, 0x00000077, + 0xCB8, 0x00508242, + 0xE00, 0x00000007, + 0xE04, 0x00042020, + 0xE08, 0x80410231, + 0xE0C, 0x00000000, + 0xE10, 0x00000100, + 0xE14, 0x01000000, + 0xE1C, 0x40000003, + 0xE20, 0x12121212, + 0xE24, 0x12121212, + 0xE28, 0x12121212, + 0xE2C, 0x12121212, + 0xE30, 0x12121212, + 0xE34, 0x12121212, + 0xE38, 0x12121212, + 0xE3C, 0x12121212, + 0xE40, 0x12121212, + 0xE44, 0x12121212, + 0xE48, 0x12121212, + 0xE4C, 0x12121212, + 0xE50, 0x00000020, + 0xE54, 0x0008121C, + 0xE58, 0x30000C1C, + 0xE5C, 0x00000058, + 0xE60, 0x34344443, + 0xE64, 0x07003333, + 0xE68, 0x59791979, + 0xE6C, 0x59795979, + 0xE70, 0x19795979, + 0xE74, 0x19795979, + 0xE78, 0x19791979, + 0xE7C, 0x19791979, + 0xE80, 0x19791979, + 0xE84, 0x19791979, + 0xE94, 0x0100005C, + 0xE98, 0x00000000, + 0xE9C, 0x00000000, + 0xEA0, 0x00000029, + 0xEA4, 0x08040201, + 0xEA8, 0x80402010, + 0xFF0F0740, 0xABCD, + 0xEB0, 0x77547717, + 0xFF0F01C0, 0xCDEF, + 0xEB0, 0x77547717, + 0xFF0F02C0, 0xCDEF, + 0xEB0, 0x77547717, + 0xFF0F07D8, 0xCDEF, + 0xEB0, 0x54547710, + 0xFF0F07D0, 0xCDEF, + 0xEB0, 0x54547710, + 0xCDCDCDCD, 0xCDCD, + 0xEB0, 0x77547777, + 0xFF0F0740, 0xDEAD, + 0xEB4, 0x00000077, + 0xEB8, 0x00508242, +}; + +u32 RTL8821AE_PHY_REG_ARRAY[] = { + 0x800, 0x0020D090, + 0x804, 0x080112E0, + 0x808, 0x0E028211, + 0x80C, 0x92131111, + 0x810, 0x20101261, + 0x814, 0x020C3D10, + 0x818, 0x03A00385, + 0x820, 0x00000000, + 0x824, 0x00030FE0, + 0x828, 0x00000000, + 0x82C, 0x002081DD, + 0x830, 0x2AAA8E24, + 0x834, 0x0037A706, + 0x838, 0x06489B44, + 0x83C, 0x0000095B, + 0x840, 0xC0000001, + 0x844, 0x40003CDE, + 0x848, 0x62103F8B, + 0x84C, 0x6CFDFFB8, + 0x850, 0x28874706, + 0x854, 0x0001520C, + 0x858, 0x8060E000, + 0x85C, 0x74210168, + 0x860, 0x6929C321, + 0x864, 0x79727432, + 0x868, 0x8CA7A314, + 0x86C, 0x888C2878, + 0x870, 0x08888888, + 0x874, 0x31612C2E, + 0x878, 0x00000152, + 0x87C, 0x000FD000, + 0x8A0, 0x00000013, + 0x8A4, 0x7F7F7F7F, + 0x8A8, 0xA2000338, + 0x8AC, 0x0FF0FA0A, + 0x8B4, 0x000FC080, + 0x8B8, 0x6C10D7FF, + 0x8BC, 0x0CA52090, + 0x8C0, 0x1BF00020, + 0x8C4, 0x00000000, + 0x8C8, 0x00013169, + 0x8CC, 0x08248492, + 0x8D4, 0x940008A0, + 0x8D8, 0x290B5612, + 0x8F8, 0x400002C0, + 0x8FC, 0x00000000, + 0x900, 0x00000700, + 0x90C, 0x00000000, + 0x910, 0x0000FC00, + 0x914, 0x00000404, + 0x918, 0x1C1028C0, + 0x91C, 0x64B11A1C, + 0x920, 0xE0767233, + 0x924, 0x055AA500, + 0x928, 0x00000004, + 0x92C, 0xFFFE0000, + 0x930, 0xFFFFFFFE, + 0x934, 0x001FFFFF, + 0x960, 0x00000000, + 0x964, 0x00000000, + 0x968, 0x00000000, + 0x96C, 0x00000000, + 0x970, 0x801FFFFF, + 0x974, 0x000003FF, + 0x978, 0x00000000, + 0x97C, 0x00000000, + 0x980, 0x00000000, + 0x984, 0x00000000, + 0x988, 0x00000000, + 0x990, 0x27100000, + 0x994, 0xFFFF0100, + 0x998, 0xFFFFFF5C, + 0x99C, 0xFFFFFFFF, + 0x9A0, 0x000000FF, + 0x9A4, 0x00480080, + 0x9A8, 0x00000000, + 0x9AC, 0x00000000, + 0x9B0, 0x81081008, + 0x9B4, 0x01081008, + 0x9B8, 0x01081008, + 0x9BC, 0x01081008, + 0x9D0, 0x00000000, + 0x9D4, 0x00000000, + 0x9D8, 0x00000000, + 0x9DC, 0x00000000, + 0x9E0, 0x00005D00, + 0x9E4, 0x00000002, + 0x9E8, 0x00000001, + 0xA00, 0x00D047C8, + 0xA04, 0x01FF000C, + 0xA08, 0x8C8A8300, + 0xA0C, 0x2E68000F, + 0xA10, 0x9500BB78, + 0xA14, 0x11144028, + 0xA18, 0x00881117, + 0xA1C, 0x89140F00, + 0xA20, 0x1A1B0000, + 0xA24, 0x090E1317, + 0xA28, 0x00000204, + 0xA2C, 0x00900000, + 0xA70, 0x101FFF00, + 0xA74, 0x00000008, + 0xA78, 0x00000900, + 0xA7C, 0x225B0606, + 0xA80, 0x21805490, + 0xA84, 0x001F0000, + 0xB00, 0x03100040, + 0xB04, 0x0000B000, + 0xB08, 0xAE0201EB, + 0xB0C, 0x01003207, + 0xB10, 0x00009807, + 0xB14, 0x01000000, + 0xB18, 0x00000002, + 0xB1C, 0x00000002, + 0xB20, 0x0000001F, + 0xB24, 0x03020100, + 0xB28, 0x07060504, + 0xB2C, 0x0B0A0908, + 0xB30, 0x0F0E0D0C, + 0xB34, 0x13121110, + 0xB38, 0x17161514, + 0xB3C, 0x0000003A, + 0xB40, 0x00000000, + 0xB44, 0x00000000, + 0xB48, 0x13000032, + 0xB4C, 0x48080000, + 0xB50, 0x00000000, + 0xB54, 0x00000000, + 0xB58, 0x00000000, + 0xB5C, 0x00000000, + 0xC00, 0x00000007, + 0xC04, 0x00042020, + 0xC08, 0x80410231, + 0xC0C, 0x00000000, + 0xC10, 0x00000100, + 0xC14, 0x01000000, + 0xC1C, 0x40000003, + 0xC20, 0x2C2C2C2C, + 0xC24, 0x30303030, + 0xC28, 0x30303030, + 0xC2C, 0x2C2C2C2C, + 0xC30, 0x2C2C2C2C, + 0xC34, 0x2C2C2C2C, + 0xC38, 0x2C2C2C2C, + 0xC3C, 0x2A2A2A2A, + 0xC40, 0x2A2A2A2A, + 0xC44, 0x2A2A2A2A, + 0xC48, 0x2A2A2A2A, + 0xC4C, 0x2A2A2A2A, + 0xC50, 0x00000020, + 0xC54, 0x001C1208, + 0xC58, 0x30000C1C, + 0xC5C, 0x00000058, + 0xC60, 0x34344443, + 0xC64, 0x07003333, + 0xC68, 0x19791979, + 0xC6C, 0x19791979, + 0xC70, 0x19791979, + 0xC74, 0x19791979, + 0xC78, 0x19791979, + 0xC7C, 0x19791979, + 0xC80, 0x19791979, + 0xC84, 0x19791979, + 0xC94, 0x0100005C, + 0xC98, 0x00000000, + 0xC9C, 0x00000000, + 0xCA0, 0x00000029, + 0xCA4, 0x08040201, + 0xCA8, 0x80402010, + 0xCB0, 0x77775747, + 0xCB4, 0x10000077, + 0xCB8, 0x00508240, +}; + +u32 RTL8812AE_PHY_REG_ARRAY_PG[] = { + 0, 0, 0, 0x00000c20, 0xffffffff, 0x34363840, + 0, 0, 0, 0x00000c24, 0xffffffff, 0x42424444, + 0, 0, 0, 0x00000c28, 0xffffffff, 0x30323638, + 0, 0, 0, 0x00000c2c, 0xffffffff, 0x40424444, + 0, 0, 0, 0x00000c30, 0xffffffff, 0x28303236, + 0, 0, 1, 0x00000c34, 0xffffffff, 0x38404242, + 0, 0, 1, 0x00000c38, 0xffffffff, 0x26283034, + 0, 0, 0, 0x00000c3c, 0xffffffff, 0x40424444, + 0, 0, 0, 0x00000c40, 0xffffffff, 0x28303236, + 0, 0, 0, 0x00000c44, 0xffffffff, 0x42422426, + 0, 0, 1, 0x00000c48, 0xffffffff, 0x30343840, + 0, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628, + 0, 1, 0, 0x00000e20, 0xffffffff, 0x34363840, + 0, 1, 0, 0x00000e24, 0xffffffff, 0x42424444, + 0, 1, 0, 0x00000e28, 0xffffffff, 0x30323638, + 0, 1, 0, 0x00000e2c, 0xffffffff, 0x40424444, + 0, 1, 0, 0x00000e30, 0xffffffff, 0x28303236, + 0, 1, 1, 0x00000e34, 0xffffffff, 0x38404242, + 0, 1, 1, 0x00000e38, 0xffffffff, 0x26283034, + 0, 1, 0, 0x00000e3c, 0xffffffff, 0x40424444, + 0, 1, 0, 0x00000e40, 0xffffffff, 0x28303236, + 0, 1, 0, 0x00000e44, 0xffffffff, 0x42422426, + 0, 1, 1, 0x00000e48, 0xffffffff, 0x30343840, + 0, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628, + 1, 0, 0, 0x00000c24, 0xffffffff, 0x42424444, + 1, 0, 0, 0x00000c28, 0xffffffff, 0x30323640, + 1, 0, 0, 0x00000c2c, 0xffffffff, 0x40424444, + 1, 0, 0, 0x00000c30, 0xffffffff, 0x28303236, + 1, 0, 1, 0x00000c34, 0xffffffff, 0x38404242, + 1, 0, 1, 0x00000c38, 0xffffffff, 0x26283034, + 1, 0, 0, 0x00000c3c, 0xffffffff, 0x40424444, + 1, 0, 0, 0x00000c40, 0xffffffff, 0x28303236, + 1, 0, 0, 0x00000c44, 0xffffffff, 0x42422426, + 1, 0, 1, 0x00000c48, 0xffffffff, 0x30343840, + 1, 0, 1, 0x00000c4c, 0xffffffff, 0x22242628, + 1, 1, 0, 0x00000e24, 0xffffffff, 0x42424444, + 1, 1, 0, 0x00000e28, 0xffffffff, 0x30323640, + 1, 1, 0, 0x00000e2c, 0xffffffff, 0x40424444, + 1, 1, 0, 0x00000e30, 0xffffffff, 0x28303236, + 1, 1, 1, 0x00000e34, 0xffffffff, 0x38404242, + 1, 1, 1, 0x00000e38, 0xffffffff, 0x26283034, + 1, 1, 0, 0x00000e3c, 0xffffffff, 0x40424444, + 1, 1, 0, 0x00000e40, 0xffffffff, 0x28303236, + 1, 1, 0, 0x00000e44, 0xffffffff, 0x42422426, + 1, 1, 1, 0x00000e48, 0xffffffff, 0x30343840, + 1, 1, 1, 0x00000e4c, 0xffffffff, 0x22242628 +}; + +u32 RTL8821AE_PHY_REG_ARRAY_PG[] = { + 0, 0, 0, 0x00000c20, 0xffffffff, 0x32343638, + 0, 0, 0, 0x00000c24, 0xffffffff, 0x36363838, + 0, 0, 0, 0x00000c28, 0xffffffff, 0x28303234, + 0, 0, 0, 0x00000c2c, 0xffffffff, 0x34363838, + 0, 0, 0, 0x00000c30, 0xffffffff, 0x26283032, + 0, 0, 0, 0x00000c3c, 0xffffffff, 0x32343636, + 0, 0, 0, 0x00000c40, 0xffffffff, 0x24262830, + 0, 0, 0, 0x00000c44, 0x0000ffff, 0x00002022, + 1, 0, 0, 0x00000c24, 0xffffffff, 0x34343636, + 1, 0, 0, 0x00000c28, 0xffffffff, 0x26283032, + 1, 0, 0, 0x00000c2c, 0xffffffff, 0x32343636, + 1, 0, 0, 0x00000c30, 0xffffffff, 0x24262830, + 1, 0, 0, 0x00000c3c, 0xffffffff, 0x32343636, + 1, 0, 0, 0x00000c40, 0xffffffff, 0x24262830, + 1, 0, 0, 0x00000c44, 0x0000ffff, 0x00002022 +}; + +/* it seems not used +u8 *RTL8821AE_TXPWR_LMT_ARRAY[] = { + "FCC", "2.4G", "20M", "CCK", "1T", "01", "32", + "ETSI", "2.4G", "20M", "CCK", "1T", "01", "32", + "MKK", "2.4G", "20M", "CCK", "1T", "01", "32", + "FCC", "2.4G", "20M", "CCK", "1T", "02", "32", + "ETSI", "2.4G", "20M", "CCK", "1T", "02", "32", + "MKK", "2.4G", "20M", "CCK", "1T", "02", "32", + "FCC", "2.4G", "20M", "CCK", "1T", "03", "32", + "ETSI", "2.4G", "20M", "CCK", "1T", "03", "32", + "MKK", "2.4G", "20M", "CCK", "1T", "03", "32", + "FCC", "2.4G", "20M", "CCK", "1T", "04", "34", + "ETSI", "2.4G", "20M", "CCK", "1T", "04", "32", + "MKK", "2.4G", "20M", "CCK", "1T", "04", "32", + "FCC", "2.4G", "20M", "CCK", "1T", "05", "34", + "ETSI", "2.4G", "20M", "CCK", "1T", "05", "32", + "MKK", "2.4G", "20M", "CCK", "1T", "05", "32", + "FCC", "2.4G", "20M", "CCK", "1T", "06", "34", + "ETSI", "2.4G", "20M", "CCK", "1T", "06", "32", + "MKK", "2.4G", "20M", "CCK", "1T", "06", "32", + "FCC", "2.4G", "20M", "CCK", "1T", "07", "34", + "ETSI", "2.4G", "20M", "CCK", "1T", "07", "32", + "MKK", "2.4G", "20M", "CCK", "1T", "07", "32", + "FCC", "2.4G", "20M", "CCK", "1T", "08", "34", + "ETSI", "2.4G", "20M", "CCK", "1T", "08", "32", + "MKK", "2.4G", "20M", "CCK", "1T", "08", "32", + "FCC", "2.4G", "20M", "CCK", "1T", "09", "34", + "ETSI", "2.4G", "20M", "CCK", "1T", "09", "32", + "MKK", "2.4G", "20M", "CCK", "1T", "09", "32", + "FCC", "2.4G", "20M", "CCK", "1T", "10", "32", + "ETSI", "2.4G", "20M", "CCK", "1T", "10", "32", + "MKK", "2.4G", "20M", "CCK", "1T", "10", "32", + "FCC", "2.4G", "20M", "CCK", "1T", "11", "32", + "ETSI", "2.4G", "20M", "CCK", "1T", "11", "32", + "MKK", "2.4G", "20M", "CCK", "1T", "11", "32", + "FCC", "2.4G", "20M", "CCK", "1T", "12", "63", + "ETSI", "2.4G", "20M", "CCK", "1T", "12", "32", + "MKK", "2.4G", "20M", "CCK", "1T", "12", "32", + "FCC", "2.4G", "20M", "CCK", "1T", "13", "63", + "ETSI", "2.4G", "20M", "CCK", "1T", "13", "32", + "MKK", "2.4G", "20M", "CCK", "1T", "13", "32", + "FCC", "2.4G", "20M", "CCK", "1T", "14", "63", + "ETSI", "2.4G", "20M", "CCK", "1T", "14", "63", + "MKK", "2.4G", "20M", "CCK", "1T", "14", "32", + "FCC", "2.4G", "20M", "OFDM", "1T", "01", "30", + "ETSI", "2.4G", "20M", "OFDM", "1T", "01", "32", + "MKK", "2.4G", "20M", "OFDM", "1T", "01", "32", + "FCC", "2.4G", "20M", "OFDM", "1T", "02", "30", + "ETSI", "2.4G", "20M", "OFDM", "1T", "02", "32", + "MKK", "2.4G", "20M", "OFDM", "1T", "02", "32", + "FCC", "2.4G", "20M", "OFDM", "1T", "03", "30", + "ETSI", "2.4G", "20M", "OFDM", "1T", "03", "32", + "MKK", "2.4G", "20M", "OFDM", "1T", "03", "32", + "FCC", "2.4G", "20M", "OFDM", "1T", "04", "32", + "ETSI", "2.4G", "20M", "OFDM", "1T", "04", "32", + "MKK", "2.4G", "20M", "OFDM", "1T", "04", "32", + "FCC", "2.4G", "20M", "OFDM", "1T", "05", "32", + "ETSI", "2.4G", "20M", "OFDM", "1T", "05", "32", + "MKK", "2.4G", "20M", "OFDM", "1T", "05", "32", + "FCC", "2.4G", "20M", "OFDM", "1T", "06", "32", + "ETSI", "2.4G", "20M", "OFDM", "1T", "06", "32", + "MKK", "2.4G", "20M", "OFDM", "1T", "06", "32", + "FCC", "2.4G", "20M", "OFDM", "1T", "07", "32", + "ETSI", "2.4G", "20M", "OFDM", "1T", "07", "32", + "MKK", "2.4G", "20M", "OFDM", "1T", "07", "32", + "FCC", "2.4G", "20M", "OFDM", "1T", "08", "32", + "ETSI", "2.4G", "20M", "OFDM", "1T", "08", "32", + "MKK", "2.4G", "20M", "OFDM", "1T", "08", "32", + "FCC", "2.4G", "20M", "OFDM", "1T", "09", "32", + "ETSI", "2.4G", "20M", "OFDM", "1T", "09", "32", + "MKK", "2.4G", "20M", "OFDM", "1T", "09", "32", + "FCC", "2.4G", "20M", "OFDM", "1T", "10", "30", + "ETSI", "2.4G", "20M", "OFDM", "1T", "10", "32", + "MKK", "2.4G", "20M", "OFDM", "1T", "10", "32", + "FCC", "2.4G", "20M", "OFDM", "1T", "11", "30", + "ETSI", "2.4G", "20M", "OFDM", "1T", "11", "32", + "MKK", "2.4G", "20M", "OFDM", "1T", "11", "32", + "FCC", "2.4G", "20M", "OFDM", "1T", "12", "63", + "ETSI", "2.4G", "20M", "OFDM", "1T", "12", "32", + "MKK", "2.4G", "20M", "OFDM", "1T", "12", "32", + "FCC", "2.4G", "20M", "OFDM", "1T", "13", "63", + "ETSI", "2.4G", "20M", "OFDM", "1T", "13", "32", + "MKK", "2.4G", "20M", "OFDM", "1T", "13", "32", + "FCC", "2.4G", "20M", "OFDM", "1T", "14", "63", + "ETSI", "2.4G", "20M", "OFDM", "1T", "14", "63", + "MKK", "2.4G", "20M", "OFDM", "1T", "14", "63", + "FCC", "2.4G", "20M", "HT", "1T", "01", "26", + "ETSI", "2.4G", "20M", "HT", "1T", "01", "32", + "MKK", "2.4G", "20M", "HT", "1T", "01", "32", + "FCC", "2.4G", "20M", "HT", "1T", "02", "26", + "ETSI", "2.4G", "20M", "HT", "1T", "02", "32", + "MKK", "2.4G", "20M", "HT", "1T", "02", "32", + "FCC", "2.4G", "20M", "HT", "1T", "03", "26", + "ETSI", "2.4G", "20M", "HT", "1T", "03", "32", + "MKK", "2.4G", "20M", "HT", "1T", "03", "32", + "FCC", "2.4G", "20M", "HT", "1T", "04", "32", + "ETSI", "2.4G", "20M", "HT", "1T", "04", "32", + "MKK", "2.4G", "20M", "HT", "1T", "04", "32", + "FCC", "2.4G", "20M", "HT", "1T", "05", "32", + "ETSI", "2.4G", "20M", "HT", "1T", "05", "32", + "MKK", "2.4G", "20M", "HT", "1T", "05", "32", + "FCC", "2.4G", "20M", "HT", "1T", "06", "32", + "ETSI", "2.4G", "20M", "HT", "1T", "06", "32", + "MKK", "2.4G", "20M", "HT", "1T", "06", "32", + "FCC", "2.4G", "20M", "HT", "1T", "07", "32", + "ETSI", "2.4G", "20M", "HT", "1T", "07", "32", + "MKK", "2.4G", "20M", "HT", "1T", "07", "32", + "FCC", "2.4G", "20M", "HT", "1T", "08", "32", + "ETSI", "2.4G", "20M", "HT", "1T", "08", "32", + "MKK", "2.4G", "20M", "HT", "1T", "08", "32", + "FCC", "2.4G", "20M", "HT", "1T", "09", "32", + "ETSI", "2.4G", "20M", "HT", "1T", "09", "32", + "MKK", "2.4G", "20M", "HT", "1T", "09", "32", + "FCC", "2.4G", "20M", "HT", "1T", "10", "26", + "ETSI", "2.4G", "20M", "HT", "1T", "10", "32", + "MKK", "2.4G", "20M", "HT", "1T", "10", "32", + "FCC", "2.4G", "20M", "HT", "1T", "11", "26", + "ETSI", "2.4G", "20M", "HT", "1T", "11", "32", + "MKK", "2.4G", "20M", "HT", "1T", "11", "32", + "FCC", "2.4G", "20M", "HT", "1T", "12", "63", + "ETSI", "2.4G", "20M", "HT", "1T", "12", "32", + "MKK", "2.4G", "20M", "HT", "1T", "12", "32", + "FCC", "2.4G", "20M", "HT", "1T", "13", "63", + "ETSI", "2.4G", "20M", "HT", "1T", "13", "32", + "MKK", "2.4G", "20M", "HT", "1T", "13", "32", + "FCC", "2.4G", "20M", "HT", "1T", "14", "63", + "ETSI", "2.4G", "20M", "HT", "1T", "14", "63", + "MKK", "2.4G", "20M", "HT", "1T", "14", "63", + "FCC", "2.4G", "20M", "HT", "2T", "01", "30", + "ETSI", "2.4G", "20M", "HT", "2T", "01", "32", + "MKK", "2.4G", "20M", "HT", "2T", "01", "32", + "FCC", "2.4G", "20M", "HT", "2T", "02", "32", + "ETSI", "2.4G", "20M", "HT", "2T", "02", "32", + "MKK", "2.4G", "20M", "HT", "2T", "02", "32", + "FCC", "2.4G", "20M", "HT", "2T", "03", "32", + "ETSI", "2.4G", "20M", "HT", "2T", "03", "32", + "MKK", "2.4G", "20M", "HT", "2T", "03", "32", + "FCC", "2.4G", "20M", "HT", "2T", "04", "32", + "ETSI", "2.4G", "20M", "HT", "2T", "04", "32", + "MKK", "2.4G", "20M", "HT", "2T", "04", "32", + "FCC", "2.4G", "20M", "HT", "2T", "05", "32", + "ETSI", "2.4G", "20M", "HT", "2T", "05", "32", + "MKK", "2.4G", "20M", "HT", "2T", "05", "32", + "FCC", "2.4G", "20M", "HT", "2T", "06", "32", + "ETSI", "2.4G", "20M", "HT", "2T", "06", "32", + "MKK", "2.4G", "20M", "HT", "2T", "06", "32", + "FCC", "2.4G", "20M", "HT", "2T", "07", "32", + "ETSI", "2.4G", "20M", "HT", "2T", "07", "32", + "MKK", "2.4G", "20M", "HT", "2T", "07", "32", + "FCC", "2.4G", "20M", "HT", "2T", "08", "32", + "ETSI", "2.4G", "20M", "HT", "2T", "08", "32", + "MKK", "2.4G", "20M", "HT", "2T", "08", "32", + "FCC", "2.4G", "20M", "HT", "2T", "09", "32", + "ETSI", "2.4G", "20M", "HT", "2T", "09", "32", + "MKK", "2.4G", "20M", "HT", "2T", "09", "32", + "FCC", "2.4G", "20M", "HT", "2T", "10", "32", + "ETSI", "2.4G", "20M", "HT", "2T", "10", "32", + "MKK", "2.4G", "20M", "HT", "2T", "10", "32", + "FCC", "2.4G", "20M", "HT", "2T", "11", "30", + "ETSI", "2.4G", "20M", "HT", "2T", "11", "32", + "MKK", "2.4G", "20M", "HT", "2T", "11", "32", + "FCC", "2.4G", "20M", "HT", "2T", "12", "63", + "ETSI", "2.4G", "20M", "HT", "2T", "12", "32", + "MKK", "2.4G", "20M", "HT", "2T", "12", "32", + "FCC", "2.4G", "20M", "HT", "2T", "13", "63", + "ETSI", "2.4G", "20M", "HT", "2T", "13", "32", + "MKK", "2.4G", "20M", "HT", "2T", "13", "32", + "FCC", "2.4G", "20M", "HT", "2T", "14", "63", + "ETSI", "2.4G", "20M", "HT", "2T", "14", "63", + "MKK", "2.4G", "20M", "HT", "2T", "14", "63", + "FCC", "2.4G", "40M", "HT", "1T", "01", "63", + "ETSI", "2.4G", "40M", "HT", "1T", "01", "63", + "MKK", "2.4G", "40M", "HT", "1T", "01", "63", + "FCC", "2.4G", "40M", "HT", "1T", "02", "63", + "ETSI", "2.4G", "40M", "HT", "1T", "02", "63", + "MKK", "2.4G", "40M", "HT", "1T", "02", "63", + "FCC", "2.4G", "40M", "HT", "1T", "03", "26", + "ETSI", "2.4G", "40M", "HT", "1T", "03", "32", + "MKK", "2.4G", "40M", "HT", "1T", "03", "32", + "FCC", "2.4G", "40M", "HT", "1T", "04", "26", + "ETSI", "2.4G", "40M", "HT", "1T", "04", "32", + "MKK", "2.4G", "40M", "HT", "1T", "04", "32", + "FCC", "2.4G", "40M", "HT", "1T", "05", "32", + "ETSI", "2.4G", "40M", "HT", "1T", "05", "32", + "MKK", "2.4G", "40M", "HT", "1T", "05", "32", + "FCC", "2.4G", "40M", "HT", "1T", "06", "32", + "ETSI", "2.4G", "40M", "HT", "1T", "06", "32", + "MKK", "2.4G", "40M", "HT", "1T", "06", "32", + "FCC", "2.4G", "40M", "HT", "1T", "07", "32", + "ETSI", "2.4G", "40M", "HT", "1T", "07", "32", + "MKK", "2.4G", "40M", "HT", "1T", "07", "32", + "FCC", "2.4G", "40M", "HT", "1T", "08", "26", + "ETSI", "2.4G", "40M", "HT", "1T", "08", "32", + "MKK", "2.4G", "40M", "HT", "1T", "08", "32", + "FCC", "2.4G", "40M", "HT", "1T", "09", "26", + "ETSI", "2.4G", "40M", "HT", "1T", "09", "32", + "MKK", "2.4G", "40M", "HT", "1T", "09", "32", + "FCC", "2.4G", "40M", "HT", "1T", "10", "26", + "ETSI", "2.4G", "40M", "HT", "1T", "10", "32", + "MKK", "2.4G", "40M", "HT", "1T", "10", "32", + "FCC", "2.4G", "40M", "HT", "1T", "11", "26", + "ETSI", "2.4G", "40M", "HT", "1T", "11", "32", + "MKK", "2.4G", "40M", "HT", "1T", "11", "32", + "FCC", "2.4G", "40M", "HT", "1T", "12", "63", + "ETSI", "2.4G", "40M", "HT", "1T", "12", "32", + "MKK", "2.4G", "40M", "HT", "1T", "12", "32", + "FCC", "2.4G", "40M", "HT", "1T", "13", "63", + "ETSI", "2.4G", "40M", "HT", "1T", "13", "32", + "MKK", "2.4G", "40M", "HT", "1T", "13", "32", + "FCC", "2.4G", "40M", "HT", "1T", "14", "63", + "ETSI", "2.4G", "40M", "HT", "1T", "14", "63", + "MKK", "2.4G", "40M", "HT", "1T", "14", "63", + "FCC", "2.4G", "40M", "HT", "2T", "01", "63", + "ETSI", "2.4G", "40M", "HT", "2T", "01", "63", + "MKK", "2.4G", "40M", "HT", "2T", "01", "63", + "FCC", "2.4G", "40M", "HT", "2T", "02", "63", + "ETSI", "2.4G", "40M", "HT", "2T", "02", "63", + "MKK", "2.4G", "40M", "HT", "2T", "02", "63", + "FCC", "2.4G", "40M", "HT", "2T", "03", "30", + "ETSI", "2.4G", "40M", "HT", "2T", "03", "30", + "MKK", "2.4G", "40M", "HT", "2T", "03", "30", + "FCC", "2.4G", "40M", "HT", "2T", "04", "32", + "ETSI", "2.4G", "40M", "HT", "2T", "04", "30", + "MKK", "2.4G", "40M", "HT", "2T", "04", "30", + "FCC", "2.4G", "40M", "HT", "2T", "05", "32", + "ETSI", "2.4G", "40M", "HT", "2T", "05", "30", + "MKK", "2.4G", "40M", "HT", "2T", "05", "30", + "FCC", "2.4G", "40M", "HT", "2T", "06", "32", + "ETSI", "2.4G", "40M", "HT", "2T", "06", "30", + "MKK", "2.4G", "40M", "HT", "2T", "06", "30", + "FCC", "2.4G", "40M", "HT", "2T", "07", "32", + "ETSI", "2.4G", "40M", "HT", "2T", "07", "30", + "MKK", "2.4G", "40M", "HT", "2T", "07", "30", + "FCC", "2.4G", "40M", "HT", "2T", "08", "32", + "ETSI", "2.4G", "40M", "HT", "2T", "08", "30", + "MKK", "2.4G", "40M", "HT", "2T", "08", "30", + "FCC", "2.4G", "40M", "HT", "2T", "09", "32", + "ETSI", "2.4G", "40M", "HT", "2T", "09", "30", + "MKK", "2.4G", "40M", "HT", "2T", "09", "30", + "FCC", "2.4G", "40M", "HT", "2T", "10", "32", + "ETSI", "2.4G", "40M", "HT", "2T", "10", "30", + "MKK", "2.4G", "40M", "HT", "2T", "10", "30", + "FCC", "2.4G", "40M", "HT", "2T", "11", "30", + "ETSI", "2.4G", "40M", "HT", "2T", "11", "30", + "MKK", "2.4G", "40M", "HT", "2T", "11", "30", + "FCC", "2.4G", "40M", "HT", "2T", "12", "63", + "ETSI", "2.4G", "40M", "HT", "2T", "12", "32", + "MKK", "2.4G", "40M", "HT", "2T", "12", "32", + "FCC", "2.4G", "40M", "HT", "2T", "13", "63", + "ETSI", "2.4G", "40M", "HT", "2T", "13", "32", + "MKK", "2.4G", "40M", "HT", "2T", "13", "32", + "FCC", "2.4G", "40M", "HT", "2T", "14", "63", + "ETSI", "2.4G", "40M", "HT", "2T", "14", "63", + "MKK", "2.4G", "40M", "HT", "2T", "14", "63", + "FCC", "5G", "20M", "OFDM", "1T", "36", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "36", "30", + "MKK", "5G", "20M", "OFDM", "1T", "36", "30", + "FCC", "5G", "20M", "OFDM", "1T", "40", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "40", "30", + "MKK", "5G", "20M", "OFDM", "1T", "40", "30", + "FCC", "5G", "20M", "OFDM", "1T", "44", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "44", "30", + "MKK", "5G", "20M", "OFDM", "1T", "44", "30", + "FCC", "5G", "20M", "OFDM", "1T", "48", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "48", "30", + "MKK", "5G", "20M", "OFDM", "1T", "48", "30", + "FCC", "5G", "20M", "OFDM", "1T", "52", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "52", "30", + "MKK", "5G", "20M", "OFDM", "1T", "52", "30", + "FCC", "5G", "20M", "OFDM", "1T", "56", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "56", "30", + "MKK", "5G", "20M", "OFDM", "1T", "56", "30", + "FCC", "5G", "20M", "OFDM", "1T", "60", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "60", "30", + "MKK", "5G", "20M", "OFDM", "1T", "60", "30", + "FCC", "5G", "20M", "OFDM", "1T", "64", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "64", "30", + "MKK", "5G", "20M", "OFDM", "1T", "64", "30", + "FCC", "5G", "20M", "OFDM", "1T", "100", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "100", "30", + "MKK", "5G", "20M", "OFDM", "1T", "100", "30", + "FCC", "5G", "20M", "OFDM", "1T", "114", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "114", "30", + "MKK", "5G", "20M", "OFDM", "1T", "114", "30", + "FCC", "5G", "20M", "OFDM", "1T", "108", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "108", "30", + "MKK", "5G", "20M", "OFDM", "1T", "108", "30", + "FCC", "5G", "20M", "OFDM", "1T", "112", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "112", "30", + "MKK", "5G", "20M", "OFDM", "1T", "112", "30", + "FCC", "5G", "20M", "OFDM", "1T", "116", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "116", "30", + "MKK", "5G", "20M", "OFDM", "1T", "116", "30", + "FCC", "5G", "20M", "OFDM", "1T", "120", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "120", "30", + "MKK", "5G", "20M", "OFDM", "1T", "120", "30", + "FCC", "5G", "20M", "OFDM", "1T", "124", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "124", "30", + "MKK", "5G", "20M", "OFDM", "1T", "124", "30", + "FCC", "5G", "20M", "OFDM", "1T", "128", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "128", "30", + "MKK", "5G", "20M", "OFDM", "1T", "128", "30", + "FCC", "5G", "20M", "OFDM", "1T", "132", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "132", "30", + "MKK", "5G", "20M", "OFDM", "1T", "132", "30", + "FCC", "5G", "20M", "OFDM", "1T", "136", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "136", "30", + "MKK", "5G", "20M", "OFDM", "1T", "136", "30", + "FCC", "5G", "20M", "OFDM", "1T", "140", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "140", "30", + "MKK", "5G", "20M", "OFDM", "1T", "140", "30", + "FCC", "5G", "20M", "OFDM", "1T", "149", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "149", "30", + "MKK", "5G", "20M", "OFDM", "1T", "149", "63", + "FCC", "5G", "20M", "OFDM", "1T", "153", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "153", "30", + "MKK", "5G", "20M", "OFDM", "1T", "153", "63", + "FCC", "5G", "20M", "OFDM", "1T", "157", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "157", "30", + "MKK", "5G", "20M", "OFDM", "1T", "157", "63", + "FCC", "5G", "20M", "OFDM", "1T", "161", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "161", "30", + "MKK", "5G", "20M", "OFDM", "1T", "161", "63", + "FCC", "5G", "20M", "OFDM", "1T", "165", "30", + "ETSI", "5G", "20M", "OFDM", "1T", "165", "30", + "MKK", "5G", "20M", "OFDM", "1T", "165", "63", + "FCC", "5G", "20M", "HT", "1T", "36", "30", + "ETSI", "5G", "20M", "HT", "1T", "36", "30", + "MKK", "5G", "20M", "HT", "1T", "36", "30", + "FCC", "5G", "20M", "HT", "1T", "40", "30", + "ETSI", "5G", "20M", "HT", "1T", "40", "30", + "MKK", "5G", "20M", "HT", "1T", "40", "30", + "FCC", "5G", "20M", "HT", "1T", "44", "30", + "ETSI", "5G", "20M", "HT", "1T", "44", "30", + "MKK", "5G", "20M", "HT", "1T", "44", "30", + "FCC", "5G", "20M", "HT", "1T", "48", "30", + "ETSI", "5G", "20M", "HT", "1T", "48", "30", + "MKK", "5G", "20M", "HT", "1T", "48", "30", + "FCC", "5G", "20M", "HT", "1T", "52", "30", + "ETSI", "5G", "20M", "HT", "1T", "52", "30", + "MKK", "5G", "20M", "HT", "1T", "52", "30", + "FCC", "5G", "20M", "HT", "1T", "56", "30", + "ETSI", "5G", "20M", "HT", "1T", "56", "30", + "MKK", "5G", "20M", "HT", "1T", "56", "30", + "FCC", "5G", "20M", "HT", "1T", "60", "30", + "ETSI", "5G", "20M", "HT", "1T", "60", "30", + "MKK", "5G", "20M", "HT", "1T", "60", "30", + "FCC", "5G", "20M", "HT", "1T", "64", "30", + "ETSI", "5G", "20M", "HT", "1T", "64", "30", + "MKK", "5G", "20M", "HT", "1T", "64", "30", + "FCC", "5G", "20M", "HT", "1T", "100", "30", + "ETSI", "5G", "20M", "HT", "1T", "100", "30", + "MKK", "5G", "20M", "HT", "1T", "100", "30", + "FCC", "5G", "20M", "HT", "1T", "114", "30", + "ETSI", "5G", "20M", "HT", "1T", "114", "30", + "MKK", "5G", "20M", "HT", "1T", "114", "30", + "FCC", "5G", "20M", "HT", "1T", "108", "30", + "ETSI", "5G", "20M", "HT", "1T", "108", "30", + "MKK", "5G", "20M", "HT", "1T", "108", "30", + "FCC", "5G", "20M", "HT", "1T", "112", "30", + "ETSI", "5G", "20M", "HT", "1T", "112", "30", + "MKK", "5G", "20M", "HT", "1T", "112", "30", + "FCC", "5G", "20M", "HT", "1T", "116", "30", + "ETSI", "5G", "20M", "HT", "1T", "116", "30", + "MKK", "5G", "20M", "HT", "1T", "116", "30", + "FCC", "5G", "20M", "HT", "1T", "120", "30", + "ETSI", "5G", "20M", "HT", "1T", "120", "30", + "MKK", "5G", "20M", "HT", "1T", "120", "30", + "FCC", "5G", "20M", "HT", "1T", "124", "30", + "ETSI", "5G", "20M", "HT", "1T", "124", "30", + "MKK", "5G", "20M", "HT", "1T", "124", "30", + "FCC", "5G", "20M", "HT", "1T", "128", "30", + "ETSI", "5G", "20M", "HT", "1T", "128", "30", + "MKK", "5G", "20M", "HT", "1T", "128", "30", + "FCC", "5G", "20M", "HT", "1T", "132", "30", + "ETSI", "5G", "20M", "HT", "1T", "132", "30", + "MKK", "5G", "20M", "HT", "1T", "132", "30", + "FCC", "5G", "20M", "HT", "1T", "136", "30", + "ETSI", "5G", "20M", "HT", "1T", "136", "30", + "MKK", "5G", "20M", "HT", "1T", "136", "30", + "FCC", "5G", "20M", "HT", "1T", "140", "30", + "ETSI", "5G", "20M", "HT", "1T", "140", "30", + "MKK", "5G", "20M", "HT", "1T", "140", "30", + "FCC", "5G", "20M", "HT", "1T", "149", "30", + "ETSI", "5G", "20M", "HT", "1T", "149", "30", + "MKK", "5G", "20M", "HT", "1T", "149", "63", + "FCC", "5G", "20M", "HT", "1T", "153", "30", + "ETSI", "5G", "20M", "HT", "1T", "153", "30", + "MKK", "5G", "20M", "HT", "1T", "153", "63", + "FCC", "5G", "20M", "HT", "1T", "157", "30", + "ETSI", "5G", "20M", "HT", "1T", "157", "30", + "MKK", "5G", "20M", "HT", "1T", "157", "63", + "FCC", "5G", "20M", "HT", "1T", "161", "30", + "ETSI", "5G", "20M", "HT", "1T", "161", "30", + "MKK", "5G", "20M", "HT", "1T", "161", "63", + "FCC", "5G", "20M", "HT", "1T", "165", "30", + "ETSI", "5G", "20M", "HT", "1T", "165", "30", + "MKK", "5G", "20M", "HT", "1T", "165", "63", + "FCC", "5G", "20M", "HT", "2T", "36", "28", + "ETSI", "5G", "20M", "HT", "2T", "36", "30", + "MKK", "5G", "20M", "HT", "2T", "36", "30", + "FCC", "5G", "20M", "HT", "2T", "40", "28", + "ETSI", "5G", "20M", "HT", "2T", "40", "30", + "MKK", "5G", "20M", "HT", "2T", "40", "30", + "FCC", "5G", "20M", "HT", "2T", "44", "28", + "ETSI", "5G", "20M", "HT", "2T", "44", "30", + "MKK", "5G", "20M", "HT", "2T", "44", "30", + "FCC", "5G", "20M", "HT", "2T", "48", "28", + "ETSI", "5G", "20M", "HT", "2T", "48", "30", + "MKK", "5G", "20M", "HT", "2T", "48", "30", + "FCC", "5G", "20M", "HT", "2T", "52", "34", + "ETSI", "5G", "20M", "HT", "2T", "52", "30", + "MKK", "5G", "20M", "HT", "2T", "52", "30", + "FCC", "5G", "20M", "HT", "2T", "56", "32", + "ETSI", "5G", "20M", "HT", "2T", "56", "30", + "MKK", "5G", "20M", "HT", "2T", "56", "30", + "FCC", "5G", "20M", "HT", "2T", "60", "30", + "ETSI", "5G", "20M", "HT", "2T", "60", "30", + "MKK", "5G", "20M", "HT", "2T", "60", "30", + "FCC", "5G", "20M", "HT", "2T", "64", "26", + "ETSI", "5G", "20M", "HT", "2T", "64", "30", + "MKK", "5G", "20M", "HT", "2T", "64", "30", + "FCC", "5G", "20M", "HT", "2T", "100", "28", + "ETSI", "5G", "20M", "HT", "2T", "100", "30", + "MKK", "5G", "20M", "HT", "2T", "100", "30", + "FCC", "5G", "20M", "HT", "2T", "114", "28", + "ETSI", "5G", "20M", "HT", "2T", "114", "30", + "MKK", "5G", "20M", "HT", "2T", "114", "30", + "FCC", "5G", "20M", "HT", "2T", "108", "30", + "ETSI", "5G", "20M", "HT", "2T", "108", "30", + "MKK", "5G", "20M", "HT", "2T", "108", "30", + "FCC", "5G", "20M", "HT", "2T", "112", "32", + "ETSI", "5G", "20M", "HT", "2T", "112", "30", + "MKK", "5G", "20M", "HT", "2T", "112", "30", + "FCC", "5G", "20M", "HT", "2T", "116", "32", + "ETSI", "5G", "20M", "HT", "2T", "116", "30", + "MKK", "5G", "20M", "HT", "2T", "116", "30", + "FCC", "5G", "20M", "HT", "2T", "120", "34", + "ETSI", "5G", "20M", "HT", "2T", "120", "30", + "MKK", "5G", "20M", "HT", "2T", "120", "30", + "FCC", "5G", "20M", "HT", "2T", "124", "32", + "ETSI", "5G", "20M", "HT", "2T", "124", "30", + "MKK", "5G", "20M", "HT", "2T", "124", "30", + "FCC", "5G", "20M", "HT", "2T", "128", "30", + "ETSI", "5G", "20M", "HT", "2T", "128", "30", + "MKK", "5G", "20M", "HT", "2T", "128", "30", + "FCC", "5G", "20M", "HT", "2T", "132", "28", + "ETSI", "5G", "20M", "HT", "2T", "132", "30", + "MKK", "5G", "20M", "HT", "2T", "132", "30", + "FCC", "5G", "20M", "HT", "2T", "136", "28", + "ETSI", "5G", "20M", "HT", "2T", "136", "30", + "MKK", "5G", "20M", "HT", "2T", "136", "30", + "FCC", "5G", "20M", "HT", "2T", "140", "26", + "ETSI", "5G", "20M", "HT", "2T", "140", "30", + "MKK", "5G", "20M", "HT", "2T", "140", "30", + "FCC", "5G", "20M", "HT", "2T", "149", "34", + "ETSI", "5G", "20M", "HT", "2T", "149", "30", + "MKK", "5G", "20M", "HT", "2T", "149", "63", + "FCC", "5G", "20M", "HT", "2T", "153", "34", + "ETSI", "5G", "20M", "HT", "2T", "153", "30", + "MKK", "5G", "20M", "HT", "2T", "153", "63", + "FCC", "5G", "20M", "HT", "2T", "157", "34", + "ETSI", "5G", "20M", "HT", "2T", "157", "30", + "MKK", "5G", "20M", "HT", "2T", "157", "63", + "FCC", "5G", "20M", "HT", "2T", "161", "34", + "ETSI", "5G", "20M", "HT", "2T", "161", "30", + "MKK", "5G", "20M", "HT", "2T", "161", "63", + "FCC", "5G", "20M", "HT", "2T", "165", "34", + "ETSI", "5G", "20M", "HT", "2T", "165", "30", + "MKK", "5G", "20M", "HT", "2T", "165", "63", + "FCC", "5G", "40M", "HT", "1T", "38", "26", + "ETSI", "5G", "40M", "HT", "1T", "38", "30", + "MKK", "5G", "40M", "HT", "1T", "38", "30", + "FCC", "5G", "40M", "HT", "1T", "46", "30", + "ETSI", "5G", "40M", "HT", "1T", "46", "30", + "MKK", "5G", "40M", "HT", "1T", "46", "30", + "FCC", "5G", "40M", "HT", "1T", "54", "30", + "ETSI", "5G", "40M", "HT", "1T", "54", "30", + "MKK", "5G", "40M", "HT", "1T", "54", "30", + "FCC", "5G", "40M", "HT", "1T", "62", "26", + "ETSI", "5G", "40M", "HT", "1T", "62", "30", + "MKK", "5G", "40M", "HT", "1T", "62", "30", + "FCC", "5G", "40M", "HT", "1T", "102", "24", + "ETSI", "5G", "40M", "HT", "1T", "102", "30", + "MKK", "5G", "40M", "HT", "1T", "102", "30", + "FCC", "5G", "40M", "HT", "1T", "110", "30", + "ETSI", "5G", "40M", "HT", "1T", "110", "30", + "MKK", "5G", "40M", "HT", "1T", "110", "30", + "FCC", "5G", "40M", "HT", "1T", "118", "30", + "ETSI", "5G", "40M", "HT", "1T", "118", "30", + "MKK", "5G", "40M", "HT", "1T", "118", "30", + "FCC", "5G", "40M", "HT", "1T", "126", "30", + "ETSI", "5G", "40M", "HT", "1T", "126", "30", + "MKK", "5G", "40M", "HT", "1T", "126", "30", + "FCC", "5G", "40M", "HT", "1T", "134", "30", + "ETSI", "5G", "40M", "HT", "1T", "134", "30", + "MKK", "5G", "40M", "HT", "1T", "134", "30", + "FCC", "5G", "40M", "HT", "1T", "151", "30", + "ETSI", "5G", "40M", "HT", "1T", "151", "30", + "MKK", "5G", "40M", "HT", "1T", "151", "63", + "FCC", "5G", "40M", "HT", "1T", "159", "30", + "ETSI", "5G", "40M", "HT", "1T", "159", "30", + "MKK", "5G", "40M", "HT", "1T", "159", "63", + "FCC", "5G", "40M", "HT", "2T", "38", "28", + "ETSI", "5G", "40M", "HT", "2T", "38", "30", + "MKK", "5G", "40M", "HT", "2T", "38", "30", + "FCC", "5G", "40M", "HT", "2T", "46", "28", + "ETSI", "5G", "40M", "HT", "2T", "46", "30", + "MKK", "5G", "40M", "HT", "2T", "46", "30", + "FCC", "5G", "40M", "HT", "2T", "54", "30", + "ETSI", "5G", "40M", "HT", "2T", "54", "30", + "MKK", "5G", "40M", "HT", "2T", "54", "30", + "FCC", "5G", "40M", "HT", "2T", "62", "30", + "ETSI", "5G", "40M", "HT", "2T", "62", "30", + "MKK", "5G", "40M", "HT", "2T", "62", "30", + "FCC", "5G", "40M", "HT", "2T", "102", "26", + "ETSI", "5G", "40M", "HT", "2T", "102", "30", + "MKK", "5G", "40M", "HT", "2T", "102", "30", + "FCC", "5G", "40M", "HT", "2T", "110", "30", + "ETSI", "5G", "40M", "HT", "2T", "110", "30", + "MKK", "5G", "40M", "HT", "2T", "110", "30", + "FCC", "5G", "40M", "HT", "2T", "118", "34", + "ETSI", "5G", "40M", "HT", "2T", "118", "30", + "MKK", "5G", "40M", "HT", "2T", "118", "30", + "FCC", "5G", "40M", "HT", "2T", "126", "32", + "ETSI", "5G", "40M", "HT", "2T", "126", "30", + "MKK", "5G", "40M", "HT", "2T", "126", "30", + "FCC", "5G", "40M", "HT", "2T", "134", "30", + "ETSI", "5G", "40M", "HT", "2T", "134", "30", + "MKK", "5G", "40M", "HT", "2T", "134", "30", + "FCC", "5G", "40M", "HT", "2T", "151", "34", + "ETSI", "5G", "40M", "HT", "2T", "151", "30", + "MKK", "5G", "40M", "HT", "2T", "151", "63", + "FCC", "5G", "40M", "HT", "2T", "159", "34", + "ETSI", "5G", "40M", "HT", "2T", "159", "30", + "MKK", "5G", "40M", "HT", "2T", "159", "63", + "FCC", "5G", "80M", "VHT", "1T", "42", "22", + "ETSI", "5G", "80M", "VHT", "1T", "42", "30", + "MKK", "5G", "80M", "VHT", "1T", "42", "30", + "FCC", "5G", "80M", "VHT", "1T", "58", "20", + "ETSI", "5G", "80M", "VHT", "1T", "58", "30", + "MKK", "5G", "80M", "VHT", "1T", "58", "30", + "FCC", "5G", "80M", "VHT", "1T", "106", "20", + "ETSI", "5G", "80M", "VHT", "1T", "106", "30", + "MKK", "5G", "80M", "VHT", "1T", "106", "30", + "FCC", "5G", "80M", "VHT", "1T", "122", "28", + "ETSI", "5G", "80M", "VHT", "1T", "122", "30", + "MKK", "5G", "80M", "VHT", "1T", "122", "30", + "FCC", "5G", "80M", "VHT", "1T", "155", "30", + "ETSI", "5G", "80M", "VHT", "1T", "155", "30", + "MKK", "5G", "80M", "VHT", "1T", "155", "63", + "FCC", "5G", "80M", "VHT", "2T", "42", "28", + "ETSI", "5G", "80M", "VHT", "2T", "42", "30", + "MKK", "5G", "80M", "VHT", "2T", "42", "30", + "FCC", "5G", "80M", "VHT", "2T", "58", "26", + "ETSI", "5G", "80M", "VHT", "2T", "58", "30", + "MKK", "5G", "80M", "VHT", "2T", "58", "30", + "FCC", "5G", "80M", "VHT", "2T", "106", "28", + "ETSI", "5G", "80M", "VHT", "2T", "106", "30", + "MKK", "5G", "80M", "VHT", "2T", "106", "30", + "FCC", "5G", "80M", "VHT", "2T", "122", "32", + "ETSI", "5G", "80M", "VHT", "2T", "122", "30", + "MKK", "5G", "80M", "VHT", "2T", "122", "30", + "FCC", "5G", "80M", "VHT", "2T", "155", "34", + "ETSI", "5G", "80M", "VHT", "2T", "155", "30", + "MKK", "5G", "80M", "VHT", "2T", "155", "63" +};*/ + +u32 RTL8812AE_RADIOA_ARRAY[] = { + 0x000, 0x00010000, + 0x018, 0x0001712A, + 0x056, 0x00051CF2, + 0x066, 0x00040000, + 0x01E, 0x00080000, + 0x089, 0x00000080, + 0xFF0F0740, 0xABCD, + 0x086, 0x00014B38, + 0xFF0F02C0, 0xCDEF, + 0x086, 0x00014B38, + 0xFF0F01C0, 0xCDEF, + 0x086, 0x00014B38, + 0xFF0F07D8, 0xCDEF, + 0x086, 0x00014B3A, + 0xFF0F07D0, 0xCDEF, + 0x086, 0x00014B3A, + 0xCDCDCDCD, 0xCDCD, + 0x086, 0x00014B38, + 0xFF0F0740, 0xDEAD, + 0x0B1, 0x0001FC1A, + 0x0B3, 0x000F0810, + 0x0B4, 0x0001A78D, + 0x0BA, 0x00086180, + 0x018, 0x00000006, + 0x0EF, 0x00002000, + 0xFF0F07D8, 0xABCD, + 0x03B, 0x0003F218, + 0x03B, 0x00030A58, + 0x03B, 0x0002FA58, + 0x03B, 0x00022590, + 0x03B, 0x0001FA50, + 0x03B, 0x00010248, + 0x03B, 0x00008240, + 0xFF0F07D0, 0xCDEF, + 0x03B, 0x0003F218, + 0x03B, 0x00030A58, + 0x03B, 0x0002FA58, + 0x03B, 0x00022590, + 0x03B, 0x0001FA50, + 0x03B, 0x00010248, + 0x03B, 0x00008240, + 0xCDCDCDCD, 0xCDCD, + 0x03B, 0x00038A58, + 0x03B, 0x00037A58, + 0x03B, 0x0002A590, + 0x03B, 0x00027A50, + 0x03B, 0x00018248, + 0x03B, 0x00010240, + 0x03B, 0x00008240, + 0xFF0F07D8, 0xDEAD, + 0x0EF, 0x00000100, + 0xFF0F07D8, 0xABCD, + 0x034, 0x0000A4EE, + 0x034, 0x00009076, + 0x034, 0x00008073, + 0x034, 0x00007070, + 0x034, 0x0000606D, + 0x034, 0x0000506A, + 0x034, 0x00004049, + 0x034, 0x00003046, + 0x034, 0x00002028, + 0x034, 0x00001025, + 0x034, 0x00000022, + 0xCDCDCDCD, 0xCDCD, + 0x034, 0x0000ADF4, + 0x034, 0x00009DF1, + 0x034, 0x00008DEE, + 0x034, 0x00007DEB, + 0x034, 0x00006DE8, + 0x034, 0x00005CEC, + 0x034, 0x00004CE9, + 0x034, 0x000034EA, + 0x034, 0x000024E7, + 0x034, 0x0000146B, + 0x034, 0x0000006D, + 0xFF0F07D8, 0xDEAD, + 0x0EF, 0x00000000, + 0x0EF, 0x000020A2, + 0x0DF, 0x00000080, + 0x035, 0x00000192, + 0x035, 0x00008192, + 0x035, 0x00010192, + 0x036, 0x00000024, + 0x036, 0x00008024, + 0x036, 0x00010024, + 0x036, 0x00018024, + 0x0EF, 0x00000000, + 0x051, 0x00000C21, + 0x052, 0x000006D9, + 0x053, 0x000FC649, + 0x054, 0x0000017E, + 0x0EF, 0x00000002, + 0x008, 0x00008400, + 0x018, 0x0001712A, + 0x0EF, 0x00001000, + 0x03A, 0x00000080, + 0x03B, 0x0003A02C, + 0x03C, 0x00004000, + 0x03A, 0x00000400, + 0x03B, 0x0003202C, + 0x03C, 0x00010000, + 0x03A, 0x000000A0, + 0x03B, 0x0002B064, + 0x03C, 0x00004000, + 0x03A, 0x000000D8, + 0x03B, 0x00023070, + 0x03C, 0x00004000, + 0x03A, 0x00000468, + 0x03B, 0x0001B870, + 0x03C, 0x00010000, + 0x03A, 0x00000098, + 0x03B, 0x00012085, + 0x03C, 0x000E4000, + 0x03A, 0x00000418, + 0x03B, 0x0000A080, + 0x03C, 0x000F0000, + 0x03A, 0x00000418, + 0x03B, 0x00002080, + 0x03C, 0x00010000, + 0x03A, 0x00000080, + 0x03B, 0x0007A02C, + 0x03C, 0x00004000, + 0x03A, 0x00000400, + 0x03B, 0x0007202C, + 0x03C, 0x00010000, + 0x03A, 0x000000A0, + 0x03B, 0x0006B064, + 0x03C, 0x00004000, + 0x03A, 0x000000D8, + 0x03B, 0x00023070, + 0x03C, 0x00004000, + 0x03A, 0x00000468, + 0x03B, 0x0005B870, + 0x03C, 0x00010000, + 0x03A, 0x00000098, + 0x03B, 0x00052085, + 0x03C, 0x000E4000, + 0x03A, 0x00000418, + 0x03B, 0x0004A080, + 0x03C, 0x000F0000, + 0x03A, 0x00000418, + 0x03B, 0x00042080, + 0x03C, 0x00010000, + 0x03A, 0x00000080, + 0x03B, 0x000BA02C, + 0x03C, 0x00004000, + 0x03A, 0x00000400, + 0x03B, 0x000B202C, + 0x03C, 0x00010000, + 0x03A, 0x000000A0, + 0x03B, 0x000AB064, + 0x03C, 0x00004000, + 0x03A, 0x000000D8, + 0x03B, 0x000A3070, + 0x03C, 0x00004000, + 0x03A, 0x00000468, + 0x03B, 0x0009B870, + 0x03C, 0x00010000, + 0x03A, 0x00000098, + 0x03B, 0x00092085, + 0x03C, 0x000E4000, + 0x03A, 0x00000418, + 0x03B, 0x0008A080, + 0x03C, 0x000F0000, + 0x03A, 0x00000418, + 0x03B, 0x00082080, + 0x03C, 0x00010000, + 0x0EF, 0x00001100, + 0xFF0F0740, 0xABCD, + 0x034, 0x0004A0B2, + 0x034, 0x000490AF, + 0x034, 0x00048070, + 0x034, 0x0004706D, + 0x034, 0x00046050, + 0x034, 0x0004504D, + 0x034, 0x0004404A, + 0x034, 0x00043047, + 0x034, 0x0004200A, + 0x034, 0x00041007, + 0x034, 0x00040004, + 0xFF0F02C0, 0xCDEF, + 0x034, 0x0004A0B2, + 0x034, 0x000490AF, + 0x034, 0x00048070, + 0x034, 0x0004706D, + 0x034, 0x00046050, + 0x034, 0x0004504D, + 0x034, 0x0004404A, + 0x034, 0x00043047, + 0x034, 0x0004200A, + 0x034, 0x00041007, + 0x034, 0x00040004, + 0xFF0F01C0, 0xCDEF, + 0x034, 0x0004A0B2, + 0x034, 0x000490AF, + 0x034, 0x00048070, + 0x034, 0x0004706D, + 0x034, 0x00046050, + 0x034, 0x0004504D, + 0x034, 0x0004404A, + 0x034, 0x00043047, + 0x034, 0x0004200A, + 0x034, 0x00041007, + 0x034, 0x00040004, + 0xFF0F07D8, 0xCDEF, + 0x034, 0x0004A0B2, + 0x034, 0x000490AF, + 0x034, 0x00048070, + 0x034, 0x0004706D, + 0x034, 0x00046050, + 0x034, 0x0004504D, + 0x034, 0x0004404A, + 0x034, 0x00043047, + 0x034, 0x0004200A, + 0x034, 0x00041007, + 0x034, 0x00040004, + 0xFF0F07D0, 0xCDEF, + 0x034, 0x0004A0B2, + 0x034, 0x000490AF, + 0x034, 0x00048070, + 0x034, 0x0004706D, + 0x034, 0x00046050, + 0x034, 0x0004504D, + 0x034, 0x0004404A, + 0x034, 0x00043047, + 0x034, 0x0004200A, + 0x034, 0x00041007, + 0x034, 0x00040004, + 0xCDCDCDCD, 0xCDCD, + 0x034, 0x0004ADF5, + 0x034, 0x00049DF2, + 0x034, 0x00048DEF, + 0x034, 0x00047DEC, + 0x034, 0x00046DE9, + 0x034, 0x00045DC9, + 0x034, 0x00044CE8, + 0x034, 0x000438CA, + 0x034, 0x00042889, + 0x034, 0x0004184A, + 0x034, 0x0004044A, + 0xFF0F0740, 0xDEAD, + 0xFF0F0740, 0xABCD, + 0x034, 0x0002A0B2, + 0x034, 0x000290AF, + 0x034, 0x00028070, + 0x034, 0x0002706D, + 0x034, 0x00026050, + 0x034, 0x0002504D, + 0x034, 0x0002404A, + 0x034, 0x00023047, + 0x034, 0x0002200A, + 0x034, 0x00021007, + 0x034, 0x00020004, + 0xFF0F02C0, 0xCDEF, + 0x034, 0x0002A0B2, + 0x034, 0x000290AF, + 0x034, 0x00028070, + 0x034, 0x0002706D, + 0x034, 0x00026050, + 0x034, 0x0002504D, + 0x034, 0x0002404A, + 0x034, 0x00023047, + 0x034, 0x0002200A, + 0x034, 0x00021007, + 0x034, 0x00020004, + 0xFF0F01C0, 0xCDEF, + 0x034, 0x0002A0B2, + 0x034, 0x000290AF, + 0x034, 0x00028070, + 0x034, 0x0002706D, + 0x034, 0x00026050, + 0x034, 0x0002504D, + 0x034, 0x0002404A, + 0x034, 0x00023047, + 0x034, 0x0002200A, + 0x034, 0x00021007, + 0x034, 0x00020004, + 0xFF0F07D8, 0xCDEF, + 0x034, 0x0002A0B2, + 0x034, 0x000290AF, + 0x034, 0x00028070, + 0x034, 0x0002706D, + 0x034, 0x00026050, + 0x034, 0x0002504D, + 0x034, 0x0002404A, + 0x034, 0x00023047, + 0x034, 0x0002200A, + 0x034, 0x00021007, + 0x034, 0x00020004, + 0xFF0F07D0, 0xCDEF, + 0x034, 0x0002A0B2, + 0x034, 0x000290AF, + 0x034, 0x00028070, + 0x034, 0x0002706D, + 0x034, 0x00026050, + 0x034, 0x0002504D, + 0x034, 0x0002404A, + 0x034, 0x00023047, + 0x034, 0x0002200A, + 0x034, 0x00021007, + 0x034, 0x00020004, + 0xCDCDCDCD, 0xCDCD, + 0x034, 0x0002ADF5, + 0x034, 0x00029DF2, + 0x034, 0x00028DEF, + 0x034, 0x00027DEC, + 0x034, 0x00026DE9, + 0x034, 0x00025DC9, + 0x034, 0x00024CE8, + 0x034, 0x000238CA, + 0x034, 0x00022889, + 0x034, 0x0002184A, + 0x034, 0x0002044A, + 0xFF0F0740, 0xDEAD, + 0xFF0F0740, 0xABCD, + 0x034, 0x0000A0B2, + 0x034, 0x000090AF, + 0x034, 0x00008070, + 0x034, 0x0000706D, + 0x034, 0x00006050, + 0x034, 0x0000504D, + 0x034, 0x0000404A, + 0x034, 0x00003047, + 0x034, 0x0000200A, + 0x034, 0x00001007, + 0x034, 0x00000004, + 0xFF0F02C0, 0xCDEF, + 0x034, 0x0000A0B2, + 0x034, 0x000090AF, + 0x034, 0x00008070, + 0x034, 0x0000706D, + 0x034, 0x00006050, + 0x034, 0x0000504D, + 0x034, 0x0000404A, + 0x034, 0x00003047, + 0x034, 0x0000200A, + 0x034, 0x00001007, + 0x034, 0x00000004, + 0xFF0F01C0, 0xCDEF, + 0x034, 0x0000A0B2, + 0x034, 0x000090AF, + 0x034, 0x00008070, + 0x034, 0x0000706D, + 0x034, 0x00006050, + 0x034, 0x0000504D, + 0x034, 0x0000404A, + 0x034, 0x00003047, + 0x034, 0x0000200A, + 0x034, 0x00001007, + 0x034, 0x00000004, + 0xFF0F07D8, 0xCDEF, + 0x034, 0x0000A0B2, + 0x034, 0x000090AF, + 0x034, 0x00008070, + 0x034, 0x0000706D, + 0x034, 0x00006050, + 0x034, 0x0000504D, + 0x034, 0x0000404A, + 0x034, 0x00003047, + 0x034, 0x0000200A, + 0x034, 0x00001007, + 0x034, 0x00000004, + 0xFF0F07D0, 0xCDEF, + 0x034, 0x0000A0B2, + 0x034, 0x000090AF, + 0x034, 0x00008070, + 0x034, 0x0000706D, + 0x034, 0x00006050, + 0x034, 0x0000504D, + 0x034, 0x0000404A, + 0x034, 0x00003047, + 0x034, 0x0000200A, + 0x034, 0x00001007, + 0x034, 0x00000004, + 0xCDCDCDCD, 0xCDCD, + 0x034, 0x0000AFF7, + 0x034, 0x00009DF7, + 0x034, 0x00008DF4, + 0x034, 0x00007DF1, + 0x034, 0x00006DEE, + 0x034, 0x00005DCD, + 0x034, 0x00004CEB, + 0x034, 0x000038CC, + 0x034, 0x0000288B, + 0x034, 0x0000184C, + 0x034, 0x0000044C, + 0xFF0F0740, 0xDEAD, + 0x0EF, 0x00000000, + 0xFF0F0740, 0xABCD, + 0x018, 0x0001712A, + 0x0EF, 0x00000040, + 0x035, 0x000001D4, + 0x035, 0x000081D4, + 0x035, 0x000101D4, + 0x035, 0x000201B4, + 0x035, 0x000281B4, + 0x035, 0x000301B4, + 0x035, 0x000401B4, + 0x035, 0x000481B4, + 0x035, 0x000501B4, + 0xFF0F02C0, 0xCDEF, + 0x018, 0x0001712A, + 0x0EF, 0x00000040, + 0x035, 0x000001D4, + 0x035, 0x000081D4, + 0x035, 0x000101D4, + 0x035, 0x000201B4, + 0x035, 0x000281B4, + 0x035, 0x000301B4, + 0x035, 0x000401B4, + 0x035, 0x000481B4, + 0x035, 0x000501B4, + 0xFF0F01C0, 0xCDEF, + 0x018, 0x0001712A, + 0x0EF, 0x00000040, + 0x035, 0x000001D4, + 0x035, 0x000081D4, + 0x035, 0x000101D4, + 0x035, 0x000201B4, + 0x035, 0x000281B4, + 0x035, 0x000301B4, + 0x035, 0x000401B4, + 0x035, 0x000481B4, + 0x035, 0x000501B4, + 0xFF0F07D8, 0xCDEF, + 0x018, 0x0001712A, + 0x0EF, 0x00000040, + 0x035, 0x000001D4, + 0x035, 0x000081D4, + 0x035, 0x000101D4, + 0x035, 0x000201B4, + 0x035, 0x000281B4, + 0x035, 0x000301B4, + 0x035, 0x000401B4, + 0x035, 0x000481B4, + 0x035, 0x000501B4, + 0xFF0F07D0, 0xCDEF, + 0x018, 0x0001712A, + 0x0EF, 0x00000040, + 0x035, 0x000001D4, + 0x035, 0x000081D4, + 0x035, 0x000101D4, + 0x035, 0x000201B4, + 0x035, 0x000281B4, + 0x035, 0x000301B4, + 0x035, 0x000401B4, + 0x035, 0x000481B4, + 0x035, 0x000501B4, + 0xCDCDCDCD, 0xCDCD, + 0x018, 0x0001712A, + 0x0EF, 0x00000040, + 0x035, 0x00000188, + 0x035, 0x00008147, + 0x035, 0x00010147, + 0x035, 0x000201D7, + 0x035, 0x000281D7, + 0x035, 0x000301D7, + 0x035, 0x000401D8, + 0x035, 0x000481D8, + 0x035, 0x000501D8, + 0xFF0F0740, 0xDEAD, + 0x0EF, 0x00000000, + 0xFF0F0740, 0xABCD, + 0x018, 0x0001712A, + 0x0EF, 0x00000010, + 0x036, 0x00004BFB, + 0x036, 0x0000CBFB, + 0x036, 0x00014BFB, + 0x036, 0x0001CBFB, + 0x036, 0x00024F4B, + 0x036, 0x0002CF4B, + 0x036, 0x00034F4B, + 0x036, 0x0003CF4B, + 0x036, 0x00044F4B, + 0x036, 0x0004CF4B, + 0x036, 0x00054F4B, + 0x036, 0x0005CF4B, + 0xFF0F02C0, 0xCDEF, + 0x018, 0x0001712A, + 0x0EF, 0x00000010, + 0x036, 0x00004BFB, + 0x036, 0x0000CBFB, + 0x036, 0x00014BFB, + 0x036, 0x0001CBFB, + 0x036, 0x00024F4B, + 0x036, 0x0002CF4B, + 0x036, 0x00034F4B, + 0x036, 0x0003CF4B, + 0x036, 0x00044F4B, + 0x036, 0x0004CF4B, + 0x036, 0x00054F4B, + 0x036, 0x0005CF4B, + 0xFF0F01C0, 0xCDEF, + 0x018, 0x0001712A, + 0x0EF, 0x00000010, + 0x036, 0x00004BFB, + 0x036, 0x0000CBFB, + 0x036, 0x00014BFB, + 0x036, 0x0001CBFB, + 0x036, 0x00024F4B, + 0x036, 0x0002CF4B, + 0x036, 0x00034F4B, + 0x036, 0x0003CF4B, + 0x036, 0x00044F4B, + 0x036, 0x0004CF4B, + 0x036, 0x00054F4B, + 0x036, 0x0005CF4B, + 0xFF0F07D8, 0xCDEF, + 0x018, 0x0001712A, + 0x0EF, 0x00000010, + 0x036, 0x00004BFB, + 0x036, 0x0000CBFB, + 0x036, 0x00014BFB, + 0x036, 0x0001CBFB, + 0x036, 0x00024F4B, + 0x036, 0x0002CF4B, + 0x036, 0x00034F4B, + 0x036, 0x0003CF4B, + 0x036, 0x00044F4B, + 0x036, 0x0004CF4B, + 0x036, 0x00054F4B, + 0x036, 0x0005CF4B, + 0xFF0F07D0, 0xCDEF, + 0x018, 0x0001712A, + 0x0EF, 0x00000010, + 0x036, 0x00004BFB, + 0x036, 0x0000CBFB, + 0x036, 0x00014BFB, + 0x036, 0x0001CBFB, + 0x036, 0x00024F4B, + 0x036, 0x0002CF4B, + 0x036, 0x00034F4B, + 0x036, 0x0003CF4B, + 0x036, 0x00044F4B, + 0x036, 0x0004CF4B, + 0x036, 0x00054F4B, + 0x036, 0x0005CF4B, + 0xCDCDCDCD, 0xCDCD, + 0x018, 0x0001712A, + 0x0EF, 0x00000010, + 0x036, 0x00084EB4, + 0x036, 0x0008CC35, + 0x036, 0x00094C35, + 0x036, 0x0009CC35, + 0x036, 0x000A4935, + 0x036, 0x000ACC35, + 0x036, 0x000B4C35, + 0x036, 0x000BCC35, + 0x036, 0x000C4EB4, + 0x036, 0x000CCEB5, + 0x036, 0x000D4EB5, + 0x036, 0x000DCEB5, + 0xFF0F0740, 0xDEAD, + 0x0EF, 0x00000000, + 0x0EF, 0x00000008, + 0xFF0F0740, 0xABCD, + 0x03C, 0x000002CC, + 0x03C, 0x00000522, + 0x03C, 0x00000902, + 0xFF0F02C0, 0xCDEF, + 0x03C, 0x000002CC, + 0x03C, 0x00000522, + 0x03C, 0x00000902, + 0xFF0F01C0, 0xCDEF, + 0x03C, 0x000002CC, + 0x03C, 0x00000522, + 0x03C, 0x00000902, + 0xFF0F07D8, 0xCDEF, + 0x03C, 0x000002CC, + 0x03C, 0x00000522, + 0x03C, 0x00000902, + 0xFF0F07D0, 0xCDEF, + 0x03C, 0x000002CC, + 0x03C, 0x00000522, + 0x03C, 0x00000902, + 0xCDCDCDCD, 0xCDCD, + 0x03C, 0x000002A8, + 0x03C, 0x000005A2, + 0x03C, 0x00000880, + 0xFF0F0740, 0xDEAD, + 0x0EF, 0x00000000, + 0x018, 0x0001712A, + 0x0EF, 0x00000002, + 0x0DF, 0x00000080, + 0x01F, 0x00040064, + 0xFF0F0740, 0xABCD, + 0x061, 0x000FDD43, + 0x062, 0x00038F4B, + 0x063, 0x00032117, + 0x064, 0x000194AC, + 0x065, 0x000931D1, + 0xFF0F02C0, 0xCDEF, + 0x061, 0x000FDD43, + 0x062, 0x00038F4B, + 0x063, 0x00032117, + 0x064, 0x000194AC, + 0x065, 0x000931D1, + 0xFF0F01C0, 0xCDEF, + 0x061, 0x000FDD43, + 0x062, 0x00038F4B, + 0x063, 0x00032117, + 0x064, 0x000194AC, + 0x065, 0x000931D1, + 0xFF0F07D8, 0xCDEF, + 0x061, 0x000FDD43, + 0x062, 0x00038F4B, + 0x063, 0x00032117, + 0x064, 0x000194AC, + 0x065, 0x000931D1, + 0xFF0F07D0, 0xCDEF, + 0x061, 0x000FDD43, + 0x062, 0x00038F4B, + 0x063, 0x00032117, + 0x064, 0x000194AC, + 0x065, 0x000931D1, + 0xCDCDCDCD, 0xCDCD, + 0x061, 0x000E5D53, + 0x062, 0x00038FCD, + 0x063, 0x000314EB, + 0x064, 0x000196AC, + 0x065, 0x000911D7, + 0xFF0F0740, 0xDEAD, + 0x008, 0x00008400, + 0x01C, 0x000739D2, + 0x0B4, 0x0001E78D, + 0x018, 0x0001F12A, + 0x0FE, 0x00000000, + 0x0FE, 0x00000000, + 0x0FE, 0x00000000, + 0x0FE, 0x00000000, + 0x0B4, 0x0001A78D, + 0x018, 0x0001712A, +}; + +u32 RTL8812AE_RADIOB_ARRAY[] = { + 0x056, 0x00051CF2, + 0x066, 0x00040000, + 0x089, 0x00000080, + 0xFF0F0740, 0xABCD, + 0x086, 0x00014B38, + 0xFF0F01C0, 0xCDEF, + 0x086, 0x00014B38, + 0xFF0F02C0, 0xCDEF, + 0x086, 0x00014B38, + 0xFF0F07D8, 0xCDEF, + 0x086, 0x00014B3A, + 0xFF0F07D0, 0xCDEF, + 0x086, 0x00014B3A, + 0xCDCDCDCD, 0xCDCD, + 0x086, 0x00014B38, + 0xFF0F0740, 0xDEAD, + 0x018, 0x00000006, + 0x0EF, 0x00002000, + 0xFF0F07D8, 0xABCD, + 0x03B, 0x0003F218, + 0x03B, 0x00030A58, + 0x03B, 0x0002FA58, + 0x03B, 0x00022590, + 0x03B, 0x0001FA50, + 0x03B, 0x00010248, + 0x03B, 0x00008240, + 0xFF0F07D0, 0xCDEF, + 0x03B, 0x0003F218, + 0x03B, 0x00030A58, + 0x03B, 0x0002FA58, + 0x03B, 0x00022590, + 0x03B, 0x0001FA50, + 0x03B, 0x00010248, + 0x03B, 0x00008240, + 0xCDCDCDCD, 0xCDCD, + 0x03B, 0x00038A58, + 0x03B, 0x00037A58, + 0x03B, 0x0002A590, + 0x03B, 0x00027A50, + 0x03B, 0x00018248, + 0x03B, 0x00010240, + 0x03B, 0x00008240, + 0xFF0F07D8, 0xDEAD, + 0x0EF, 0x00000100, + 0xFF0F07D8, 0xABCD, + 0x034, 0x0000A4EE, + 0x034, 0x00009076, + 0x034, 0x00008073, + 0x034, 0x00007070, + 0x034, 0x0000606D, + 0x034, 0x0000506A, + 0x034, 0x00004049, + 0x034, 0x00003046, + 0x034, 0x00002028, + 0x034, 0x00001025, + 0x034, 0x00000022, + 0xCDCDCDCD, 0xCDCD, + 0x034, 0x0000ADF4, + 0x034, 0x00009DF1, + 0x034, 0x00008DEE, + 0x034, 0x00007DEB, + 0x034, 0x00006DE8, + 0x034, 0x00005CEC, + 0x034, 0x00004CE9, + 0x034, 0x000034EA, + 0x034, 0x000024E7, + 0x034, 0x0000146B, + 0x034, 0x0000006D, + 0xFF0F07D8, 0xDEAD, + 0x0EF, 0x00000000, + 0x0EF, 0x000020A2, + 0x0DF, 0x00000080, + 0x035, 0x00000192, + 0x035, 0x00008192, + 0x035, 0x00010192, + 0x036, 0x00000024, + 0x036, 0x00008024, + 0x036, 0x00010024, + 0x036, 0x00018024, + 0x0EF, 0x00000000, + 0x051, 0x00000C21, + 0x052, 0x000006D9, + 0x053, 0x000FC649, + 0x054, 0x0000017E, + 0x0EF, 0x00000002, + 0x008, 0x00008400, + 0x018, 0x0001712A, + 0x0EF, 0x00001000, + 0x03A, 0x00000080, + 0x03B, 0x0003A02C, + 0x03C, 0x00004000, + 0x03A, 0x00000400, + 0x03B, 0x0003202C, + 0x03C, 0x00010000, + 0x03A, 0x000000A0, + 0x03B, 0x0002B064, + 0x03C, 0x00004000, + 0x03A, 0x000000D8, + 0x03B, 0x00023070, + 0x03C, 0x00004000, + 0x03A, 0x00000468, + 0x03B, 0x0001B870, + 0x03C, 0x00010000, + 0x03A, 0x00000098, + 0x03B, 0x00012085, + 0x03C, 0x000E4000, + 0x03A, 0x00000418, + 0x03B, 0x0000A080, + 0x03C, 0x000F0000, + 0x03A, 0x00000418, + 0x03B, 0x00002080, + 0x03C, 0x00010000, + 0x03A, 0x00000080, + 0x03B, 0x0007A02C, + 0x03C, 0x00004000, + 0x03A, 0x00000400, + 0x03B, 0x0007202C, + 0x03C, 0x00010000, + 0x03A, 0x000000A0, + 0x03B, 0x0006B064, + 0x03C, 0x00004000, + 0x03A, 0x000000D8, + 0x03B, 0x00063070, + 0x03C, 0x00004000, + 0x03A, 0x00000468, + 0x03B, 0x0005B870, + 0x03C, 0x00010000, + 0x03A, 0x00000098, + 0x03B, 0x00052085, + 0x03C, 0x000E4000, + 0x03A, 0x00000418, + 0x03B, 0x0004A080, + 0x03C, 0x000F0000, + 0x03A, 0x00000418, + 0x03B, 0x00042080, + 0x03C, 0x00010000, + 0x03A, 0x00000080, + 0x03B, 0x000BA02C, + 0x03C, 0x00004000, + 0x03A, 0x00000400, + 0x03B, 0x000B202C, + 0x03C, 0x00010000, + 0x03A, 0x000000A0, + 0x03B, 0x000AB064, + 0x03C, 0x00004000, + 0x03A, 0x000000D8, + 0x03B, 0x000A3070, + 0x03C, 0x00004000, + 0x03A, 0x00000468, + 0x03B, 0x0009B870, + 0x03C, 0x00010000, + 0x03A, 0x00000098, + 0x03B, 0x00092085, + 0x03C, 0x000E4000, + 0x03A, 0x00000418, + 0x03B, 0x0008A080, + 0x03C, 0x000F0000, + 0x03A, 0x00000418, + 0x03B, 0x00082080, + 0x03C, 0x00010000, + 0x0EF, 0x00001100, + 0xFF0F0740, 0xABCD, + 0x034, 0x0004A0B2, + 0x034, 0x000490AF, + 0x034, 0x00048070, + 0x034, 0x0004706D, + 0x034, 0x00046050, + 0x034, 0x0004504D, + 0x034, 0x0004404A, + 0x034, 0x00043047, + 0x034, 0x0004200A, + 0x034, 0x00041007, + 0x034, 0x00040004, + 0xFF0F01C0, 0xCDEF, + 0x034, 0x0004A0B2, + 0x034, 0x000490AF, + 0x034, 0x00048070, + 0x034, 0x0004706D, + 0x034, 0x00046050, + 0x034, 0x0004504D, + 0x034, 0x0004404A, + 0x034, 0x00043047, + 0x034, 0x0004200A, + 0x034, 0x00041007, + 0x034, 0x00040004, + 0xFF0F02C0, 0xCDEF, + 0x034, 0x0004A0B2, + 0x034, 0x000490AF, + 0x034, 0x00048070, + 0x034, 0x0004706D, + 0x034, 0x00046050, + 0x034, 0x0004504D, + 0x034, 0x0004404A, + 0x034, 0x00043047, + 0x034, 0x0004200A, + 0x034, 0x00041007, + 0x034, 0x00040004, + 0xFF0F07D8, 0xCDEF, + 0x034, 0x0004A0B2, + 0x034, 0x000490AF, + 0x034, 0x00048070, + 0x034, 0x0004706D, + 0x034, 0x00046050, + 0x034, 0x0004504D, + 0x034, 0x0004404A, + 0x034, 0x00043047, + 0x034, 0x0004200A, + 0x034, 0x00041007, + 0x034, 0x00040004, + 0xFF0F07D0, 0xCDEF, + 0x034, 0x0004A0B2, + 0x034, 0x000490AF, + 0x034, 0x00048070, + 0x034, 0x0004706D, + 0x034, 0x00046050, + 0x034, 0x0004504D, + 0x034, 0x0004404A, + 0x034, 0x00043047, + 0x034, 0x0004200A, + 0x034, 0x00041007, + 0x034, 0x00040004, + 0xCDCDCDCD, 0xCDCD, + 0x034, 0x0004ADF5, + 0x034, 0x00049DF2, + 0x034, 0x00048DEF, + 0x034, 0x00047DEC, + 0x034, 0x00046DE9, + 0x034, 0x00045DC9, + 0x034, 0x00044CE8, + 0x034, 0x000438CA, + 0x034, 0x00042889, + 0x034, 0x0004184A, + 0x034, 0x0004044A, + 0xFF0F0740, 0xDEAD, + 0xFF0F0740, 0xABCD, + 0x034, 0x0002A0B2, + 0x034, 0x000290AF, + 0x034, 0x00028070, + 0x034, 0x0002706D, + 0x034, 0x00026050, + 0x034, 0x0002504D, + 0x034, 0x0002404A, + 0x034, 0x00023047, + 0x034, 0x0002200A, + 0x034, 0x00021007, + 0x034, 0x00020004, + 0xFF0F01C0, 0xCDEF, + 0x034, 0x0002A0B2, + 0x034, 0x000290AF, + 0x034, 0x00028070, + 0x034, 0x0002706D, + 0x034, 0x00026050, + 0x034, 0x0002504D, + 0x034, 0x0002404A, + 0x034, 0x00023047, + 0x034, 0x0002200A, + 0x034, 0x00021007, + 0x034, 0x00020004, + 0xFF0F02C0, 0xCDEF, + 0x034, 0x0002A0B2, + 0x034, 0x000290AF, + 0x034, 0x00028070, + 0x034, 0x0002706D, + 0x034, 0x00026050, + 0x034, 0x0002504D, + 0x034, 0x0002404A, + 0x034, 0x00023047, + 0x034, 0x0002200A, + 0x034, 0x00021007, + 0x034, 0x00020004, + 0xFF0F07D8, 0xCDEF, + 0x034, 0x0002A0B2, + 0x034, 0x000290AF, + 0x034, 0x00028070, + 0x034, 0x0002706D, + 0x034, 0x00026050, + 0x034, 0x0002504D, + 0x034, 0x0002404A, + 0x034, 0x00023047, + 0x034, 0x0002200A, + 0x034, 0x00021007, + 0x034, 0x00020004, + 0xFF0F07D0, 0xCDEF, + 0x034, 0x0002A0B2, + 0x034, 0x000290AF, + 0x034, 0x00028070, + 0x034, 0x0002706D, + 0x034, 0x00026050, + 0x034, 0x0002504D, + 0x034, 0x0002404A, + 0x034, 0x00023047, + 0x034, 0x0002200A, + 0x034, 0x00021007, + 0x034, 0x00020004, + 0xCDCDCDCD, 0xCDCD, + 0x034, 0x0002ADF5, + 0x034, 0x00029DF2, + 0x034, 0x00028DEF, + 0x034, 0x00027DEC, + 0x034, 0x00026DE9, + 0x034, 0x00025DC9, + 0x034, 0x00024CE8, + 0x034, 0x000238CA, + 0x034, 0x00022889, + 0x034, 0x0002184A, + 0x034, 0x0002044A, + 0xFF0F0740, 0xDEAD, + 0xFF0F0740, 0xABCD, + 0x034, 0x0000A0B2, + 0x034, 0x000090AF, + 0x034, 0x00008070, + 0x034, 0x0000706D, + 0x034, 0x00006050, + 0x034, 0x0000504D, + 0x034, 0x0000404A, + 0x034, 0x00003047, + 0x034, 0x0000200A, + 0x034, 0x00001007, + 0x034, 0x00000004, + 0xFF0F01C0, 0xCDEF, + 0x034, 0x0000A0B2, + 0x034, 0x000090AF, + 0x034, 0x00008070, + 0x034, 0x0000706D, + 0x034, 0x00006050, + 0x034, 0x0000504D, + 0x034, 0x0000404A, + 0x034, 0x00003047, + 0x034, 0x0000200A, + 0x034, 0x00001007, + 0x034, 0x00000004, + 0xFF0F02C0, 0xCDEF, + 0x034, 0x0000A0B2, + 0x034, 0x000090AF, + 0x034, 0x00008070, + 0x034, 0x0000706D, + 0x034, 0x00006050, + 0x034, 0x0000504D, + 0x034, 0x0000404A, + 0x034, 0x00003047, + 0x034, 0x0000200A, + 0x034, 0x00001007, + 0x034, 0x00000004, + 0xFF0F07D8, 0xCDEF, + 0x034, 0x0000A0B2, + 0x034, 0x000090AF, + 0x034, 0x00008070, + 0x034, 0x0000706D, + 0x034, 0x00006050, + 0x034, 0x0000504D, + 0x034, 0x0000404A, + 0x034, 0x00003047, + 0x034, 0x0000200A, + 0x034, 0x00001007, + 0x034, 0x00000004, + 0xFF0F07D0, 0xCDEF, + 0x034, 0x0000A0B2, + 0x034, 0x000090AF, + 0x034, 0x00008070, + 0x034, 0x0000706D, + 0x034, 0x00006050, + 0x034, 0x0000504D, + 0x034, 0x0000404A, + 0x034, 0x00003047, + 0x034, 0x0000200A, + 0x034, 0x00001007, + 0x034, 0x00000004, + 0xCDCDCDCD, 0xCDCD, + 0x034, 0x0000AFF7, + 0x034, 0x00009DF7, + 0x034, 0x00008DF4, + 0x034, 0x00007DF1, + 0x034, 0x00006DEE, + 0x034, 0x00005DCD, + 0x034, 0x00004CEB, + 0x034, 0x000038CC, + 0x034, 0x0000288B, + 0x034, 0x0000184C, + 0x034, 0x0000044C, + 0xFF0F0740, 0xDEAD, + 0x0EF, 0x00000000, + 0xFF0F0740, 0xABCD, + 0x018, 0x0001712A, + 0x0EF, 0x00000040, + 0x035, 0x000001C5, + 0x035, 0x000081C5, + 0x035, 0x000101C5, + 0x035, 0x00020174, + 0x035, 0x00028174, + 0x035, 0x00030174, + 0x035, 0x00040185, + 0x035, 0x00048185, + 0x035, 0x00050185, + 0x0EF, 0x00000000, + 0xFF0F01C0, 0xCDEF, + 0x018, 0x0001712A, + 0x0EF, 0x00000040, + 0x035, 0x000001C5, + 0x035, 0x000081C5, + 0x035, 0x000101C5, + 0x035, 0x00020174, + 0x035, 0x00028174, + 0x035, 0x00030174, + 0x035, 0x00040185, + 0x035, 0x00048185, + 0x035, 0x00050185, + 0x0EF, 0x00000000, + 0xFF0F02C0, 0xCDEF, + 0x018, 0x0001712A, + 0x0EF, 0x00000040, + 0x035, 0x000001C5, + 0x035, 0x000081C5, + 0x035, 0x000101C5, + 0x035, 0x00020174, + 0x035, 0x00028174, + 0x035, 0x00030174, + 0x035, 0x00040185, + 0x035, 0x00048185, + 0x035, 0x00050185, + 0x0EF, 0x00000000, + 0xFF0F07D8, 0xCDEF, + 0x018, 0x0001712A, + 0x0EF, 0x00000040, + 0x035, 0x000001C5, + 0x035, 0x000081C5, + 0x035, 0x000101C5, + 0x035, 0x00020174, + 0x035, 0x00028174, + 0x035, 0x00030174, + 0x035, 0x00040185, + 0x035, 0x00048185, + 0x035, 0x00050185, + 0x0EF, 0x00000000, + 0xFF0F07D0, 0xCDEF, + 0x018, 0x0001712A, + 0x0EF, 0x00000040, + 0x035, 0x000001C5, + 0x035, 0x000081C5, + 0x035, 0x000101C5, + 0x035, 0x00020174, + 0x035, 0x00028174, + 0x035, 0x00030174, + 0x035, 0x00040185, + 0x035, 0x00048185, + 0x035, 0x00050185, + 0x0EF, 0x00000000, + 0xCDCDCDCD, 0xCDCD, + 0x018, 0x0001712A, + 0x0EF, 0x00000040, + 0x035, 0x00000186, + 0x035, 0x00008186, + 0x035, 0x00010185, + 0x035, 0x000201D5, + 0x035, 0x000281D5, + 0x035, 0x000301D5, + 0x035, 0x000401D5, + 0x035, 0x000481D5, + 0x035, 0x000501D5, + 0x0EF, 0x00000000, + 0xFF0F0740, 0xDEAD, + 0xFF0F0740, 0xABCD, + 0x018, 0x0001712A, + 0x0EF, 0x00000010, + 0x036, 0x00005B8B, + 0x036, 0x0000DB8B, + 0x036, 0x00015B8B, + 0x036, 0x0001DB8B, + 0x036, 0x000262DB, + 0x036, 0x0002E2DB, + 0x036, 0x000362DB, + 0x036, 0x0003E2DB, + 0x036, 0x0004553B, + 0x036, 0x0004D53B, + 0x036, 0x0005553B, + 0x036, 0x0005D53B, + 0xFF0F01C0, 0xCDEF, + 0x018, 0x0001712A, + 0x0EF, 0x00000010, + 0x036, 0x00005B8B, + 0x036, 0x0000DB8B, + 0x036, 0x00015B8B, + 0x036, 0x0001DB8B, + 0x036, 0x000262DB, + 0x036, 0x0002E2DB, + 0x036, 0x000362DB, + 0x036, 0x0003E2DB, + 0x036, 0x0004553B, + 0x036, 0x0004D53B, + 0x036, 0x0005553B, + 0x036, 0x0005D53B, + 0xFF0F02C0, 0xCDEF, + 0x018, 0x0001712A, + 0x0EF, 0x00000010, + 0x036, 0x00005B8B, + 0x036, 0x0000DB8B, + 0x036, 0x00015B8B, + 0x036, 0x0001DB8B, + 0x036, 0x000262DB, + 0x036, 0x0002E2DB, + 0x036, 0x000362DB, + 0x036, 0x0003E2DB, + 0x036, 0x0004553B, + 0x036, 0x0004D53B, + 0x036, 0x0005553B, + 0x036, 0x0005D53B, + 0xFF0F07D8, 0xCDEF, + 0x018, 0x0001712A, + 0x0EF, 0x00000010, + 0x036, 0x00005B8B, + 0x036, 0x0000DB8B, + 0x036, 0x00015B8B, + 0x036, 0x0001DB8B, + 0x036, 0x000262DB, + 0x036, 0x0002E2DB, + 0x036, 0x000362DB, + 0x036, 0x0003E2DB, + 0x036, 0x0004553B, + 0x036, 0x0004D53B, + 0x036, 0x0005553B, + 0x036, 0x0005D53B, + 0xFF0F07D0, 0xCDEF, + 0x018, 0x0001712A, + 0x0EF, 0x00000010, + 0x036, 0x00005B8B, + 0x036, 0x0000DB8B, + 0x036, 0x00015B8B, + 0x036, 0x0001DB8B, + 0x036, 0x000262DB, + 0x036, 0x0002E2DB, + 0x036, 0x000362DB, + 0x036, 0x0003E2DB, + 0x036, 0x0004553B, + 0x036, 0x0004D53B, + 0x036, 0x0005553B, + 0x036, 0x0005D53B, + 0xCDCDCDCD, 0xCDCD, + 0x018, 0x0001712A, + 0x0EF, 0x00000010, + 0x036, 0x00084EB4, + 0x036, 0x0008C9B4, + 0x036, 0x000949B4, + 0x036, 0x0009C9B4, + 0x036, 0x000A4935, + 0x036, 0x000AC935, + 0x036, 0x000B4935, + 0x036, 0x000BC935, + 0x036, 0x000C4EB4, + 0x036, 0x000CCEB4, + 0x036, 0x000D4EB4, + 0x036, 0x000DCEB4, + 0xFF0F0740, 0xDEAD, + 0x0EF, 0x00000000, + 0x0EF, 0x00000008, + 0xFF0F0740, 0xABCD, + 0x03C, 0x000002DC, + 0x03C, 0x00000524, + 0x03C, 0x00000902, + 0xFF0F01C0, 0xCDEF, + 0x03C, 0x000002DC, + 0x03C, 0x00000524, + 0x03C, 0x00000902, + 0xFF0F02C0, 0xCDEF, + 0x03C, 0x000002DC, + 0x03C, 0x00000524, + 0x03C, 0x00000902, + 0xFF0F07D8, 0xCDEF, + 0x03C, 0x000002DC, + 0x03C, 0x00000524, + 0x03C, 0x00000902, + 0xFF0F07D0, 0xCDEF, + 0x03C, 0x000002DC, + 0x03C, 0x00000524, + 0x03C, 0x00000902, + 0xCDCDCDCD, 0xCDCD, + 0x03C, 0x000002AA, + 0x03C, 0x000005A2, + 0x03C, 0x00000880, + 0xFF0F0740, 0xDEAD, + 0x0EF, 0x00000000, + 0x018, 0x0001712A, + 0x0EF, 0x00000002, + 0x0DF, 0x00000080, + 0xFF0F0740, 0xABCD, + 0x061, 0x000EAC43, + 0x062, 0x00038F47, + 0x063, 0x00031157, + 0x064, 0x0001C4AC, + 0x065, 0x000931D1, + 0xFF0F01C0, 0xCDEF, + 0x061, 0x000EAC43, + 0x062, 0x00038F47, + 0x063, 0x00031157, + 0x064, 0x0001C4AC, + 0x065, 0x000931D1, + 0xFF0F02C0, 0xCDEF, + 0x061, 0x000EAC43, + 0x062, 0x00038F47, + 0x063, 0x00031157, + 0x064, 0x0001C4AC, + 0x065, 0x000931D1, + 0xFF0F07D8, 0xCDEF, + 0x061, 0x000EAC43, + 0x062, 0x00038F47, + 0x063, 0x00031157, + 0x064, 0x0001C4AC, + 0x065, 0x000931D1, + 0xFF0F07D0, 0xCDEF, + 0x061, 0x000EAC43, + 0x062, 0x00038F47, + 0x063, 0x00031157, + 0x064, 0x0001C4AC, + 0x065, 0x000931D1, + 0xCDCDCDCD, 0xCDCD, + 0x061, 0x000E5D53, + 0x062, 0x00038FCD, + 0x063, 0x000314EB, + 0x064, 0x000196AC, + 0x065, 0x000931D7, + 0xFF0F0740, 0xDEAD, + 0x008, 0x00008400, +}; + +u32 RTL8821AE_RADIOA_ARRAY[] = { + 0x018, 0x0001712A, + 0x056, 0x00051CF2, + 0x066, 0x00040000, + 0x000, 0x00010000, + 0x01E, 0x00080000, + 0x082, 0x00000830, + 0x083, 0x00021800, + 0x084, 0x00028000, + 0x085, 0x00048000, + 0x086, 0x00094838, + 0x087, 0x00044980, + 0x088, 0x00048000, + 0x089, 0x0000D480, + 0x08A, 0x00042240, + 0x08B, 0x000F0380, + 0x08C, 0x00090000, + 0x08D, 0x00022852, + 0x08E, 0x00065540, + 0x08F, 0x00088001, + 0x0EF, 0x00020000, + 0x03E, 0x00000380, + 0x03F, 0x00090018, + 0x03E, 0x00020380, + 0x03F, 0x000A0018, + 0x03E, 0x00040308, + 0x03F, 0x000A0018, + 0x03E, 0x00060018, + 0x03F, 0x000A0018, + 0x0EF, 0x00000000, + 0x018, 0x0001712A, + 0x089, 0x00000080, + 0x08B, 0x00080180, + 0x0EF, 0x00001000, + 0x03A, 0x00000244, + 0x03B, 0x00038027, + 0x03C, 0x00082000, + 0x03A, 0x00000244, + 0x03B, 0x00030113, + 0x03C, 0x00082000, + 0x03A, 0x0000014C, + 0x03B, 0x00028027, + 0x03C, 0x00082000, + 0x03A, 0x000000CC, + 0x03B, 0x00027027, + 0x03C, 0x00042000, + 0x03A, 0x0000014C, + 0x03B, 0x0001F913, + 0x03C, 0x00042000, + 0x03A, 0x0000010C, + 0x03B, 0x00017F10, + 0x03C, 0x00012000, + 0x03A, 0x000000D0, + 0x03B, 0x00008027, + 0x03C, 0x000CA000, + 0x03A, 0x00000244, + 0x03B, 0x00078027, + 0x03C, 0x00082000, + 0x03A, 0x00000244, + 0x03B, 0x00070113, + 0x03C, 0x00082000, + 0x03A, 0x0000014C, + 0x03B, 0x00068027, + 0x03C, 0x00082000, + 0x03A, 0x000000CC, + 0x03B, 0x00067027, + 0x03C, 0x00042000, + 0x03A, 0x0000014C, + 0x03B, 0x0005F913, + 0x03C, 0x00042000, + 0x03A, 0x0000010C, + 0x03B, 0x00057F10, + 0x03C, 0x00012000, + 0x03A, 0x000000D0, + 0x03B, 0x00048027, + 0x03C, 0x000CA000, + 0x03A, 0x00000244, + 0x03B, 0x000B8027, + 0x03C, 0x00082000, + 0x03A, 0x00000244, + 0x03B, 0x000B0113, + 0x03C, 0x00082000, + 0x03A, 0x0000014C, + 0x03B, 0x000A8027, + 0x03C, 0x00082000, + 0x03A, 0x000000CC, + 0x03B, 0x000A7027, + 0x03C, 0x00042000, + 0x03A, 0x0000014C, + 0x03B, 0x0009F913, + 0x03C, 0x00042000, + 0x03A, 0x0000010C, + 0x03B, 0x00097F10, + 0x03C, 0x00012000, + 0x03A, 0x000000D0, + 0x03B, 0x00088027, + 0x03C, 0x000CA000, + 0x0EF, 0x00000000, + 0x0EF, 0x00001100, + 0xFF0F0104, 0xABCD, + 0x034, 0x0004ADF3, + 0x034, 0x00049DF0, + 0xFF0F0204, 0xCDEF, + 0x034, 0x0004ADF3, + 0x034, 0x00049DF0, + 0xFF0F0404, 0xCDEF, + 0x034, 0x0004ADF3, + 0x034, 0x00049DF0, + 0xFF0F0200, 0xCDEF, + 0x034, 0x0004ADF5, + 0x034, 0x00049DF2, + 0xFF0F02C0, 0xCDEF, + 0x034, 0x0004A0F3, + 0x034, 0x000490B1, + 0xCDCDCDCD, 0xCDCD, + 0x034, 0x0004ADF7, + 0x034, 0x00049DF3, + 0xFF0F0104, 0xDEAD, + 0xFF0F0104, 0xABCD, + 0x034, 0x00048DED, + 0x034, 0x00047DEA, + 0x034, 0x00046DE7, + 0x034, 0x00045CE9, + 0x034, 0x00044CE6, + 0x034, 0x000438C6, + 0x034, 0x00042886, + 0x034, 0x00041486, + 0x034, 0x00040447, + 0xFF0F0204, 0xCDEF, + 0x034, 0x00048DED, + 0x034, 0x00047DEA, + 0x034, 0x00046DE7, + 0x034, 0x00045CE9, + 0x034, 0x00044CE6, + 0x034, 0x000438C6, + 0x034, 0x00042886, + 0x034, 0x00041486, + 0x034, 0x00040447, + 0xFF0F0404, 0xCDEF, + 0x034, 0x00048DED, + 0x034, 0x00047DEA, + 0x034, 0x00046DE7, + 0x034, 0x00045CE9, + 0x034, 0x00044CE6, + 0x034, 0x000438C6, + 0x034, 0x00042886, + 0x034, 0x00041486, + 0x034, 0x00040447, + 0xFF0F02C0, 0xCDEF, + 0x034, 0x000480AE, + 0x034, 0x000470AB, + 0x034, 0x0004608B, + 0x034, 0x00045069, + 0x034, 0x00044048, + 0x034, 0x00043045, + 0x034, 0x00042026, + 0x034, 0x00041023, + 0x034, 0x00040002, + 0xCDCDCDCD, 0xCDCD, + 0x034, 0x00048DEF, + 0x034, 0x00047DEC, + 0x034, 0x00046DE9, + 0x034, 0x00045CCB, + 0x034, 0x0004488D, + 0x034, 0x0004348D, + 0x034, 0x0004248A, + 0x034, 0x0004108D, + 0x034, 0x0004008A, + 0xFF0F0104, 0xDEAD, + 0xFF0F0200, 0xABCD, + 0x034, 0x0002ADF4, + 0xFF0F02C0, 0xCDEF, + 0x034, 0x0002A0F3, + 0xCDCDCDCD, 0xCDCD, + 0x034, 0x0002ADF7, + 0xFF0F0200, 0xDEAD, + 0xFF0F0104, 0xABCD, + 0x034, 0x00029DF4, + 0xFF0F0204, 0xCDEF, + 0x034, 0x00029DF4, + 0xFF0F0404, 0xCDEF, + 0x034, 0x00029DF4, + 0xFF0F0200, 0xCDEF, + 0x034, 0x00029DF1, + 0xFF0F02C0, 0xCDEF, + 0x034, 0x000290F0, + 0xCDCDCDCD, 0xCDCD, + 0x034, 0x00029DF2, + 0xFF0F0104, 0xDEAD, + 0xFF0F0104, 0xABCD, + 0x034, 0x00028DF1, + 0x034, 0x00027DEE, + 0x034, 0x00026DEB, + 0x034, 0x00025CEC, + 0x034, 0x00024CE9, + 0x034, 0x000238CA, + 0x034, 0x00022889, + 0x034, 0x00021489, + 0x034, 0x0002044A, + 0xFF0F0204, 0xCDEF, + 0x034, 0x00028DF1, + 0x034, 0x00027DEE, + 0x034, 0x00026DEB, + 0x034, 0x00025CEC, + 0x034, 0x00024CE9, + 0x034, 0x000238CA, + 0x034, 0x00022889, + 0x034, 0x00021489, + 0x034, 0x0002044A, + 0xFF0F0404, 0xCDEF, + 0x034, 0x00028DF1, + 0x034, 0x00027DEE, + 0x034, 0x00026DEB, + 0x034, 0x00025CEC, + 0x034, 0x00024CE9, + 0x034, 0x000238CA, + 0x034, 0x00022889, + 0x034, 0x00021489, + 0x034, 0x0002044A, + 0xFF0F02C0, 0xCDEF, + 0x034, 0x000280AF, + 0x034, 0x000270AC, + 0x034, 0x0002608B, + 0x034, 0x00025069, + 0x034, 0x00024048, + 0x034, 0x00023045, + 0x034, 0x00022026, + 0x034, 0x00021023, + 0x034, 0x00020002, + 0xCDCDCDCD, 0xCDCD, + 0x034, 0x00028DEE, + 0x034, 0x00027DEB, + 0x034, 0x00026CCD, + 0x034, 0x00025CCA, + 0x034, 0x0002488C, + 0x034, 0x0002384C, + 0x034, 0x00022849, + 0x034, 0x00021449, + 0x034, 0x0002004D, + 0xFF0F0104, 0xDEAD, + 0xFF0F02C0, 0xABCD, + 0x034, 0x0000A0D7, + 0x034, 0x000090D3, + 0x034, 0x000080B1, + 0x034, 0x000070AE, + 0xCDCDCDCD, 0xCDCD, + 0x034, 0x0000ADF7, + 0x034, 0x00009DF4, + 0x034, 0x00008DF1, + 0x034, 0x00007DEE, + 0xFF0F02C0, 0xDEAD, + 0xFF0F0104, 0xABCD, + 0x034, 0x00006DEB, + 0x034, 0x00005CEC, + 0x034, 0x00004CE9, + 0x034, 0x000038CA, + 0x034, 0x00002889, + 0x034, 0x00001489, + 0x034, 0x0000044A, + 0xFF0F0204, 0xCDEF, + 0x034, 0x00006DEB, + 0x034, 0x00005CEC, + 0x034, 0x00004CE9, + 0x034, 0x000038CA, + 0x034, 0x00002889, + 0x034, 0x00001489, + 0x034, 0x0000044A, + 0xFF0F0404, 0xCDEF, + 0x034, 0x00006DEB, + 0x034, 0x00005CEC, + 0x034, 0x00004CE9, + 0x034, 0x000038CA, + 0x034, 0x00002889, + 0x034, 0x00001489, + 0x034, 0x0000044A, + 0xFF0F02C0, 0xCDEF, + 0x034, 0x0000608D, + 0x034, 0x0000506B, + 0x034, 0x0000404A, + 0x034, 0x00003047, + 0x034, 0x00002044, + 0x034, 0x00001025, + 0x034, 0x00000004, + 0xCDCDCDCD, 0xCDCD, + 0x034, 0x00006DCD, + 0x034, 0x00005CCD, + 0x034, 0x00004CCA, + 0x034, 0x0000388C, + 0x034, 0x00002888, + 0x034, 0x00001488, + 0x034, 0x00000486, + 0xFF0F0104, 0xDEAD, + 0x0EF, 0x00000000, + 0x018, 0x0001712A, + 0x0EF, 0x00000040, + 0xFF0F0104, 0xABCD, + 0x035, 0x00000187, + 0x035, 0x00008187, + 0x035, 0x00010187, + 0x035, 0x00020188, + 0x035, 0x00028188, + 0x035, 0x00030188, + 0x035, 0x00040188, + 0x035, 0x00048188, + 0x035, 0x00050188, + 0xFF0F0204, 0xCDEF, + 0x035, 0x00000187, + 0x035, 0x00008187, + 0x035, 0x00010187, + 0x035, 0x00020188, + 0x035, 0x00028188, + 0x035, 0x00030188, + 0x035, 0x00040188, + 0x035, 0x00048188, + 0x035, 0x00050188, + 0xFF0F0404, 0xCDEF, + 0x035, 0x00000187, + 0x035, 0x00008187, + 0x035, 0x00010187, + 0x035, 0x00020188, + 0x035, 0x00028188, + 0x035, 0x00030188, + 0x035, 0x00040188, + 0x035, 0x00048188, + 0x035, 0x00050188, + 0xCDCDCDCD, 0xCDCD, + 0x035, 0x00000145, + 0x035, 0x00008145, + 0x035, 0x00010145, + 0x035, 0x00020196, + 0x035, 0x00028196, + 0x035, 0x00030196, + 0x035, 0x000401C7, + 0x035, 0x000481C7, + 0x035, 0x000501C7, + 0xFF0F0104, 0xDEAD, + 0x0EF, 0x00000000, + 0x018, 0x0001712A, + 0x0EF, 0x00000010, + 0xFF0F0104, 0xABCD, + 0x036, 0x00085733, + 0x036, 0x0008D733, + 0x036, 0x00095733, + 0x036, 0x0009D733, + 0x036, 0x000A64B4, + 0x036, 0x000AE4B4, + 0x036, 0x000B64B4, + 0x036, 0x000BE4B4, + 0x036, 0x000C64B4, + 0x036, 0x000CE4B4, + 0x036, 0x000D64B4, + 0x036, 0x000DE4B4, + 0xFF0F0204, 0xCDEF, + 0x036, 0x00085733, + 0x036, 0x0008D733, + 0x036, 0x00095733, + 0x036, 0x0009D733, + 0x036, 0x000A64B4, + 0x036, 0x000AE4B4, + 0x036, 0x000B64B4, + 0x036, 0x000BE4B4, + 0x036, 0x000C64B4, + 0x036, 0x000CE4B4, + 0x036, 0x000D64B4, + 0x036, 0x000DE4B4, + 0xFF0F0404, 0xCDEF, + 0x036, 0x00085733, + 0x036, 0x0008D733, + 0x036, 0x00095733, + 0x036, 0x0009D733, + 0x036, 0x000A64B4, + 0x036, 0x000AE4B4, + 0x036, 0x000B64B4, + 0x036, 0x000BE4B4, + 0x036, 0x000C64B4, + 0x036, 0x000CE4B4, + 0x036, 0x000D64B4, + 0x036, 0x000DE4B4, + 0xCDCDCDCD, 0xCDCD, + 0x036, 0x000056B3, + 0x036, 0x0000D6B3, + 0x036, 0x000156B3, + 0x036, 0x0001D6B3, + 0x036, 0x00026634, + 0x036, 0x0002E634, + 0x036, 0x00036634, + 0x036, 0x0003E634, + 0x036, 0x000467B4, + 0x036, 0x0004E7B4, + 0x036, 0x000567B4, + 0x036, 0x0005E7B4, + 0xFF0F0104, 0xDEAD, + 0x0EF, 0x00000000, + 0x0EF, 0x00000008, + 0xFF0F0104, 0xABCD, + 0x03C, 0x000001C8, + 0x03C, 0x00000492, + 0xFF0F0204, 0xCDEF, + 0x03C, 0x000001C8, + 0x03C, 0x00000492, + 0xFF0F0404, 0xCDEF, + 0x03C, 0x000001C8, + 0x03C, 0x00000492, + 0xCDCDCDCD, 0xCDCD, + 0x03C, 0x0000022A, + 0x03C, 0x00000594, + 0xFF0F0104, 0xDEAD, + 0xFF0F0104, 0xABCD, + 0x03C, 0x00000800, + 0xFF0F0204, 0xCDEF, + 0x03C, 0x00000800, + 0xFF0F0404, 0xCDEF, + 0x03C, 0x00000800, + 0xFF0F02C0, 0xCDEF, + 0x03C, 0x00000820, + 0xCDCDCDCD, 0xCDCD, + 0x03C, 0x00000900, + 0xFF0F0104, 0xDEAD, + 0x0EF, 0x00000000, + 0x018, 0x0001712A, + 0x0EF, 0x00000002, + 0xFF0F0104, 0xABCD, + 0x008, 0x0004E400, + 0xFF0F0204, 0xCDEF, + 0x008, 0x0004E400, + 0xFF0F0404, 0xCDEF, + 0x008, 0x0004E400, + 0xCDCDCDCD, 0xCDCD, + 0x008, 0x00002000, + 0xFF0F0104, 0xDEAD, + 0x0EF, 0x00000000, + 0x0DF, 0x000000C0, + 0x01F, 0x00040064, + 0xFF0F0104, 0xABCD, + 0x058, 0x000A7284, + 0x059, 0x000600EC, + 0xFF0F0204, 0xCDEF, + 0x058, 0x000A7284, + 0x059, 0x000600EC, + 0xFF0F0404, 0xCDEF, + 0x058, 0x000A7284, + 0x059, 0x000600EC, + 0xCDCDCDCD, 0xCDCD, + 0x058, 0x00081184, + 0x059, 0x0006016C, + 0xFF0F0104, 0xDEAD, + 0xFF0F0104, 0xABCD, + 0x061, 0x000E8D73, + 0x062, 0x00093FC5, + 0xFF0F0204, 0xCDEF, + 0x061, 0x000E8D73, + 0x062, 0x00093FC5, + 0xFF0F0404, 0xCDEF, + 0x061, 0x000E8D73, + 0x062, 0x00093FC5, + 0xCDCDCDCD, 0xCDCD, + 0x061, 0x000EAD53, + 0x062, 0x00093BC4, + 0xFF0F0104, 0xDEAD, + 0xFF0F0104, 0xABCD, + 0x063, 0x000110E9, + 0xFF0F0204, 0xCDEF, + 0x063, 0x000110E9, + 0xFF0F0404, 0xCDEF, + 0x063, 0x000110E9, + 0xFF0F0200, 0xCDEF, + 0x063, 0x000710E9, + 0xFF0F02C0, 0xCDEF, + 0x063, 0x000110E9, + 0xCDCDCDCD, 0xCDCD, + 0x063, 0x000714E9, + 0xFF0F0104, 0xDEAD, + 0xFF0F0104, 0xABCD, + 0x064, 0x0001C27C, + 0xFF0F0204, 0xCDEF, + 0x064, 0x0001C27C, + 0xFF0F0404, 0xCDEF, + 0x064, 0x0001C27C, + 0xCDCDCDCD, 0xCDCD, + 0x064, 0x0001C67C, + 0xFF0F0104, 0xDEAD, + 0xFF0F0200, 0xABCD, + 0x065, 0x00093016, + 0xFF0F02C0, 0xCDEF, + 0x065, 0x00093015, + 0xCDCDCDCD, 0xCDCD, + 0x065, 0x00091016, + 0xFF0F0200, 0xDEAD, + 0x018, 0x00000006, + 0x0EF, 0x00002000, + 0x03B, 0x0003824B, + 0x03B, 0x0003024B, + 0x03B, 0x0002844B, + 0x03B, 0x00020F4B, + 0x03B, 0x00018F4B, + 0x03B, 0x000104B2, + 0x03B, 0x00008049, + 0x03B, 0x00000148, + 0x03B, 0x0007824B, + 0x03B, 0x0007024B, + 0x03B, 0x0006824B, + 0x03B, 0x00060F4B, + 0x03B, 0x00058F4B, + 0x03B, 0x000504B2, + 0x03B, 0x00048049, + 0x03B, 0x00040148, + 0x0EF, 0x00000000, + 0x0EF, 0x00000100, + 0x034, 0x0000ADF3, + 0x034, 0x00009DEF, + 0x034, 0x00008DEC, + 0x034, 0x00007DE9, + 0x034, 0x00006CED, + 0x034, 0x00005CE9, + 0x034, 0x000044E9, + 0x034, 0x000034E6, + 0x034, 0x0000246A, + 0x034, 0x00001467, + 0x034, 0x00000068, + 0x0EF, 0x00000000, + 0x0ED, 0x00000010, + 0x044, 0x0000ADF2, + 0x044, 0x00009DEF, + 0x044, 0x00008DEC, + 0x044, 0x00007DE9, + 0x044, 0x00006CEC, + 0x044, 0x00005CE9, + 0x044, 0x000044EC, + 0x044, 0x000034E9, + 0x044, 0x0000246C, + 0x044, 0x00001469, + 0x044, 0x0000006C, + 0x0ED, 0x00000000, + 0x0ED, 0x00000001, + 0x040, 0x00038DA7, + 0x040, 0x000300C2, + 0x040, 0x000288E2, + 0x040, 0x000200B8, + 0x040, 0x000188A5, + 0x040, 0x00010FBC, + 0x040, 0x00008F71, + 0x040, 0x00000240, + 0x0ED, 0x00000000, + 0x0EF, 0x000020A2, + 0x0DF, 0x00000080, + 0x035, 0x00000120, + 0x035, 0x00008120, + 0x035, 0x00010120, + 0x036, 0x00000085, + 0x036, 0x00008085, + 0x036, 0x00010085, + 0x036, 0x00018085, + 0x0EF, 0x00000000, + 0x051, 0x00000C31, + 0x052, 0x00000622, + 0x053, 0x000FC70B, + 0x054, 0x0000017E, + 0x056, 0x00051DF3, + 0x051, 0x00000C01, + 0x052, 0x000006D6, + 0x053, 0x000FC649, + 0x070, 0x00049661, + 0x071, 0x0007843E, + 0x072, 0x00000382, + 0x074, 0x00051400, + 0x035, 0x00000160, + 0x035, 0x00008160, + 0x035, 0x00010160, + 0x036, 0x00000124, + 0x036, 0x00008124, + 0x036, 0x00010124, + 0x036, 0x00018124, + 0x0ED, 0x0000000C, + 0x045, 0x00000140, + 0x045, 0x00008140, + 0x045, 0x00010140, + 0x046, 0x00000124, + 0x046, 0x00008124, + 0x046, 0x00010124, + 0x046, 0x00018124, + 0x0DF, 0x00000088, + 0x0B3, 0x000F0E18, + 0x0B4, 0x0001214C, + 0x0B7, 0x0003000C, + 0x01C, 0x000539D2, + 0x018, 0x0001F12A, + 0x0FE, 0x00000000, + 0x0FE, 0x00000000, + 0x018, 0x0001712A, +}; + +u32 RTL8812AE_MAC_REG_ARRAY[] = { + 0x010, 0x0000000C, + 0xFF0F0180, 0xABCD, + 0x025, 0x0000000F, + 0xFF0F01C0, 0xCDEF, + 0x025, 0x0000000F, + 0xCDCDCDCD, 0xCDCD, + 0x025, 0x0000006F, + 0xFF0F0180, 0xDEAD, + 0x072, 0x00000000, + 0x428, 0x0000000A, + 0x429, 0x00000010, + 0x430, 0x00000000, + 0x431, 0x00000000, + 0x432, 0x00000000, + 0x433, 0x00000001, + 0x434, 0x00000004, + 0x435, 0x00000005, + 0x436, 0x00000007, + 0x437, 0x00000008, + 0x43C, 0x00000004, + 0x43D, 0x00000005, + 0x43E, 0x00000007, + 0x43F, 0x00000008, + 0x440, 0x0000005D, + 0x441, 0x00000001, + 0x442, 0x00000000, + 0x444, 0x00000010, + 0x445, 0x00000000, + 0x446, 0x00000000, + 0x447, 0x00000000, + 0x448, 0x00000000, + 0x449, 0x000000F0, + 0x44A, 0x0000000F, + 0x44B, 0x0000003E, + 0x44C, 0x00000010, + 0x44D, 0x00000000, + 0x44E, 0x00000000, + 0x44F, 0x00000000, + 0x450, 0x00000000, + 0x451, 0x000000F0, + 0x452, 0x0000000F, + 0x453, 0x00000000, + 0x45B, 0x00000080, + 0x460, 0x00000066, + 0x461, 0x00000066, + 0x4C8, 0x000000FF, + 0x4C9, 0x00000008, + 0x4CC, 0x000000FF, + 0x4CD, 0x000000FF, + 0x4CE, 0x00000001, + 0x500, 0x00000026, + 0x501, 0x000000A2, + 0x502, 0x0000002F, + 0x503, 0x00000000, + 0x504, 0x00000028, + 0x505, 0x000000A3, + 0x506, 0x0000005E, + 0x507, 0x00000000, + 0x508, 0x0000002B, + 0x509, 0x000000A4, + 0x50A, 0x0000005E, + 0x50B, 0x00000000, + 0x50C, 0x0000004F, + 0x50D, 0x000000A4, + 0x50E, 0x00000000, + 0x50F, 0x00000000, + 0x512, 0x0000001C, + 0x514, 0x0000000A, + 0x516, 0x0000000A, + 0x525, 0x0000004F, + 0x550, 0x00000010, + 0x551, 0x00000010, + 0x559, 0x00000002, + 0x55C, 0x00000050, + 0x55D, 0x000000FF, + 0x604, 0x00000001, + 0x605, 0x00000030, + 0x607, 0x00000003, + 0x608, 0x0000000E, + 0x609, 0x0000002A, + 0x620, 0x000000FF, + 0x621, 0x000000FF, + 0x622, 0x000000FF, + 0x623, 0x000000FF, + 0x624, 0x000000FF, + 0x625, 0x000000FF, + 0x626, 0x000000FF, + 0x627, 0x000000FF, + 0x638, 0x00000050, + 0x63C, 0x0000000A, + 0x63D, 0x0000000A, + 0x63E, 0x0000000E, + 0x63F, 0x0000000E, + 0x640, 0x00000080, + 0x642, 0x00000040, + 0x643, 0x00000000, + 0x652, 0x000000C8, + 0x66E, 0x00000005, + 0x700, 0x00000021, + 0x701, 0x00000043, + 0x702, 0x00000065, + 0x703, 0x00000087, + 0x708, 0x00000021, + 0x709, 0x00000043, + 0x70A, 0x00000065, + 0x70B, 0x00000087, + 0x718, 0x00000040, +}; + +u32 RTL8821AE_MAC_REG_ARRAY[] = { + 0x428, 0x0000000A, + 0x429, 0x00000010, + 0x430, 0x00000000, + 0x431, 0x00000000, + 0x432, 0x00000000, + 0x433, 0x00000001, + 0x434, 0x00000004, + 0x435, 0x00000005, + 0x436, 0x00000007, + 0x437, 0x00000008, + 0x43C, 0x00000004, + 0x43D, 0x00000005, + 0x43E, 0x00000007, + 0x43F, 0x00000008, + 0x440, 0x0000005D, + 0x441, 0x00000001, + 0x442, 0x00000000, + 0x444, 0x00000010, + 0x445, 0x00000000, + 0x446, 0x00000000, + 0x447, 0x00000000, + 0x448, 0x00000000, + 0x449, 0x000000F0, + 0x44A, 0x0000000F, + 0x44B, 0x0000003E, + 0x44C, 0x00000010, + 0x44D, 0x00000000, + 0x44E, 0x00000000, + 0x44F, 0x00000000, + 0x450, 0x00000000, + 0x451, 0x000000F0, + 0x452, 0x0000000F, + 0x453, 0x00000000, + 0x456, 0x0000005E, + 0x460, 0x00000066, + 0x461, 0x00000066, + 0x4C8, 0x0000003F, + 0x4C9, 0x000000FF, + 0x4CC, 0x000000FF, + 0x4CD, 0x000000FF, + 0x4CE, 0x00000001, + 0x500, 0x00000026, + 0x501, 0x000000A2, + 0x502, 0x0000002F, + 0x503, 0x00000000, + 0x504, 0x00000028, + 0x505, 0x000000A3, + 0x506, 0x0000005E, + 0x507, 0x00000000, + 0x508, 0x0000002B, + 0x509, 0x000000A4, + 0x50A, 0x0000005E, + 0x50B, 0x00000000, + 0x50C, 0x0000004F, + 0x50D, 0x000000A4, + 0x50E, 0x00000000, + 0x50F, 0x00000000, + 0x512, 0x0000001C, + 0x514, 0x0000000A, + 0x516, 0x0000000A, + 0x525, 0x0000004F, + 0x550, 0x00000010, + 0x551, 0x00000010, + 0x559, 0x00000002, + 0x55C, 0x00000050, + 0x55D, 0x000000FF, + 0x605, 0x00000030, + 0x607, 0x00000007, + 0x608, 0x0000000E, + 0x609, 0x0000002A, + 0x620, 0x000000FF, + 0x621, 0x000000FF, + 0x622, 0x000000FF, + 0x623, 0x000000FF, + 0x624, 0x000000FF, + 0x625, 0x000000FF, + 0x626, 0x000000FF, + 0x627, 0x000000FF, + 0x638, 0x00000050, + 0x63C, 0x0000000A, + 0x63D, 0x0000000A, + 0x63E, 0x0000000E, + 0x63F, 0x0000000E, + 0x640, 0x00000040, + 0x642, 0x00000040, + 0x643, 0x00000000, + 0x652, 0x000000C8, + 0x66E, 0x00000005, + 0x700, 0x00000021, + 0x701, 0x00000043, + 0x702, 0x00000065, + 0x703, 0x00000087, + 0x708, 0x00000021, + 0x709, 0x00000043, + 0x70A, 0x00000065, + 0x70B, 0x00000087, + 0x718, 0x00000040, +}; + +u32 RTL8812AE_AGC_TAB_ARRAY[] = { + 0xFF0F07D8, 0xABCD, + 0x81C, 0xFC000001, + 0x81C, 0xFB020001, + 0x81C, 0xFA040001, + 0x81C, 0xF9060001, + 0x81C, 0xF8080001, + 0x81C, 0xF70A0001, + 0x81C, 0xF60C0001, + 0x81C, 0xF50E0001, + 0x81C, 0xF4100001, + 0x81C, 0xF3120001, + 0x81C, 0xF2140001, + 0x81C, 0xF1160001, + 0x81C, 0xF0180001, + 0x81C, 0xEF1A0001, + 0x81C, 0xEE1C0001, + 0x81C, 0xED1E0001, + 0x81C, 0xEC200001, + 0x81C, 0xEB220001, + 0x81C, 0xEA240001, + 0x81C, 0xCD260001, + 0x81C, 0xCC280001, + 0x81C, 0xCB2A0001, + 0x81C, 0xCA2C0001, + 0x81C, 0xC92E0001, + 0x81C, 0xC8300001, + 0x81C, 0xA6320001, + 0x81C, 0xA5340001, + 0x81C, 0xA4360001, + 0x81C, 0xA3380001, + 0x81C, 0xA23A0001, + 0x81C, 0x883C0001, + 0x81C, 0x873E0001, + 0x81C, 0x86400001, + 0x81C, 0x85420001, + 0x81C, 0x84440001, + 0x81C, 0x83460001, + 0x81C, 0x82480001, + 0x81C, 0x814A0001, + 0x81C, 0x484C0001, + 0x81C, 0x474E0001, + 0x81C, 0x46500001, + 0x81C, 0x45520001, + 0x81C, 0x44540001, + 0x81C, 0x43560001, + 0x81C, 0x42580001, + 0x81C, 0x415A0001, + 0x81C, 0x255C0001, + 0x81C, 0x245E0001, + 0x81C, 0x23600001, + 0x81C, 0x22620001, + 0x81C, 0x21640001, + 0x81C, 0x21660001, + 0x81C, 0x21680001, + 0x81C, 0x216A0001, + 0x81C, 0x216C0001, + 0x81C, 0x216E0001, + 0x81C, 0x21700001, + 0x81C, 0x21720001, + 0x81C, 0x21740001, + 0x81C, 0x21760001, + 0x81C, 0x21780001, + 0x81C, 0x217A0001, + 0x81C, 0x217C0001, + 0x81C, 0x217E0001, + 0xFF0F07D0, 0xCDEF, + 0x81C, 0xF9000001, + 0x81C, 0xF8020001, + 0x81C, 0xF7040001, + 0x81C, 0xF6060001, + 0x81C, 0xF5080001, + 0x81C, 0xF40A0001, + 0x81C, 0xF30C0001, + 0x81C, 0xF20E0001, + 0x81C, 0xF1100001, + 0x81C, 0xF0120001, + 0x81C, 0xEF140001, + 0x81C, 0xEE160001, + 0x81C, 0xED180001, + 0x81C, 0xEC1A0001, + 0x81C, 0xEB1C0001, + 0x81C, 0xEA1E0001, + 0x81C, 0xCD200001, + 0x81C, 0xCC220001, + 0x81C, 0xCB240001, + 0x81C, 0xCA260001, + 0x81C, 0xC9280001, + 0x81C, 0xC82A0001, + 0x81C, 0xC72C0001, + 0x81C, 0xC62E0001, + 0x81C, 0xA5300001, + 0x81C, 0xA4320001, + 0x81C, 0xA3340001, + 0x81C, 0xA2360001, + 0x81C, 0x88380001, + 0x81C, 0x873A0001, + 0x81C, 0x863C0001, + 0x81C, 0x853E0001, + 0x81C, 0x84400001, + 0x81C, 0x83420001, + 0x81C, 0x82440001, + 0x81C, 0x81460001, + 0x81C, 0x48480001, + 0x81C, 0x474A0001, + 0x81C, 0x464C0001, + 0x81C, 0x454E0001, + 0x81C, 0x44500001, + 0x81C, 0x43520001, + 0x81C, 0x42540001, + 0x81C, 0x41560001, + 0x81C, 0x25580001, + 0x81C, 0x245A0001, + 0x81C, 0x235C0001, + 0x81C, 0x225E0001, + 0x81C, 0x21600001, + 0x81C, 0x21620001, + 0x81C, 0x21640001, + 0x81C, 0x21660001, + 0x81C, 0x21680001, + 0x81C, 0x216A0001, + 0x81C, 0x236C0001, + 0x81C, 0x226E0001, + 0x81C, 0x21700001, + 0x81C, 0x21720001, + 0x81C, 0x21740001, + 0x81C, 0x21760001, + 0x81C, 0x21780001, + 0x81C, 0x217A0001, + 0x81C, 0x217C0001, + 0x81C, 0x217E0001, + 0xCDCDCDCD, 0xCDCD, + 0x81C, 0xFF000001, + 0x81C, 0xFF020001, + 0x81C, 0xFF040001, + 0x81C, 0xFF060001, + 0x81C, 0xFF080001, + 0x81C, 0xFE0A0001, + 0x81C, 0xFD0C0001, + 0x81C, 0xFC0E0001, + 0x81C, 0xFB100001, + 0x81C, 0xFA120001, + 0x81C, 0xF9140001, + 0x81C, 0xF8160001, + 0x81C, 0xF7180001, + 0x81C, 0xF61A0001, + 0x81C, 0xF51C0001, + 0x81C, 0xF41E0001, + 0x81C, 0xF3200001, + 0x81C, 0xF2220001, + 0x81C, 0xF1240001, + 0x81C, 0xF0260001, + 0x81C, 0xEF280001, + 0x81C, 0xEE2A0001, + 0x81C, 0xED2C0001, + 0x81C, 0xEC2E0001, + 0x81C, 0xEB300001, + 0x81C, 0xEA320001, + 0x81C, 0xE9340001, + 0x81C, 0xE8360001, + 0x81C, 0xE7380001, + 0x81C, 0xE63A0001, + 0x81C, 0xE53C0001, + 0x81C, 0xC73E0001, + 0x81C, 0xC6400001, + 0x81C, 0xC5420001, + 0x81C, 0xC4440001, + 0x81C, 0xC3460001, + 0x81C, 0xC2480001, + 0x81C, 0xC14A0001, + 0x81C, 0xA74C0001, + 0x81C, 0xA64E0001, + 0x81C, 0xA5500001, + 0x81C, 0xA4520001, + 0x81C, 0xA3540001, + 0x81C, 0xA2560001, + 0x81C, 0xA1580001, + 0x81C, 0x675A0001, + 0x81C, 0x665C0001, + 0x81C, 0x655E0001, + 0x81C, 0x64600001, + 0x81C, 0x63620001, + 0x81C, 0x48640001, + 0x81C, 0x47660001, + 0x81C, 0x46680001, + 0x81C, 0x456A0001, + 0x81C, 0x446C0001, + 0x81C, 0x436E0001, + 0x81C, 0x42700001, + 0x81C, 0x41720001, + 0x81C, 0x41740001, + 0x81C, 0x41760001, + 0x81C, 0x41780001, + 0x81C, 0x417A0001, + 0x81C, 0x417C0001, + 0x81C, 0x417E0001, + 0xFF0F07D8, 0xDEAD, + 0xFF0F0180, 0xABCD, + 0x81C, 0xFC800001, + 0x81C, 0xFB820001, + 0x81C, 0xFA840001, + 0x81C, 0xF9860001, + 0x81C, 0xF8880001, + 0x81C, 0xF78A0001, + 0x81C, 0xF68C0001, + 0x81C, 0xF58E0001, + 0x81C, 0xF4900001, + 0x81C, 0xF3920001, + 0x81C, 0xF2940001, + 0x81C, 0xF1960001, + 0x81C, 0xF0980001, + 0x81C, 0xEF9A0001, + 0x81C, 0xEE9C0001, + 0x81C, 0xED9E0001, + 0x81C, 0xECA00001, + 0x81C, 0xEBA20001, + 0x81C, 0xEAA40001, + 0x81C, 0xE9A60001, + 0x81C, 0xE8A80001, + 0x81C, 0xE7AA0001, + 0x81C, 0xE6AC0001, + 0x81C, 0xE5AE0001, + 0x81C, 0xE4B00001, + 0x81C, 0xE3B20001, + 0x81C, 0xA8B40001, + 0x81C, 0xA7B60001, + 0x81C, 0xA6B80001, + 0x81C, 0xA5BA0001, + 0x81C, 0xA4BC0001, + 0x81C, 0xA3BE0001, + 0x81C, 0xA2C00001, + 0x81C, 0xA1C20001, + 0x81C, 0x68C40001, + 0x81C, 0x67C60001, + 0x81C, 0x66C80001, + 0x81C, 0x65CA0001, + 0x81C, 0x64CC0001, + 0x81C, 0x47CE0001, + 0x81C, 0x46D00001, + 0x81C, 0x45D20001, + 0x81C, 0x44D40001, + 0x81C, 0x43D60001, + 0x81C, 0x42D80001, + 0x81C, 0x08DA0001, + 0x81C, 0x07DC0001, + 0x81C, 0x06DE0001, + 0x81C, 0x05E00001, + 0x81C, 0x04E20001, + 0x81C, 0x03E40001, + 0x81C, 0x02E60001, + 0x81C, 0x01E80001, + 0x81C, 0x01EA0001, + 0x81C, 0x01EC0001, + 0x81C, 0x01EE0001, + 0x81C, 0x01F00001, + 0x81C, 0x01F20001, + 0x81C, 0x01F40001, + 0x81C, 0x01F60001, + 0x81C, 0x01F80001, + 0x81C, 0x01FA0001, + 0x81C, 0x01FC0001, + 0x81C, 0x01FE0001, + 0xFF0F0280, 0xCDEF, + 0x81C, 0xFC800001, + 0x81C, 0xFB820001, + 0x81C, 0xFA840001, + 0x81C, 0xF9860001, + 0x81C, 0xF8880001, + 0x81C, 0xF78A0001, + 0x81C, 0xF68C0001, + 0x81C, 0xF58E0001, + 0x81C, 0xF4900001, + 0x81C, 0xF3920001, + 0x81C, 0xF2940001, + 0x81C, 0xF1960001, + 0x81C, 0xF0980001, + 0x81C, 0xEF9A0001, + 0x81C, 0xEE9C0001, + 0x81C, 0xED9E0001, + 0x81C, 0xECA00001, + 0x81C, 0xEBA20001, + 0x81C, 0xEAA40001, + 0x81C, 0xE9A60001, + 0x81C, 0xE8A80001, + 0x81C, 0xE7AA0001, + 0x81C, 0xE6AC0001, + 0x81C, 0xE5AE0001, + 0x81C, 0xE4B00001, + 0x81C, 0xE3B20001, + 0x81C, 0xA8B40001, + 0x81C, 0xA7B60001, + 0x81C, 0xA6B80001, + 0x81C, 0xA5BA0001, + 0x81C, 0xA4BC0001, + 0x81C, 0xA3BE0001, + 0x81C, 0xA2C00001, + 0x81C, 0xA1C20001, + 0x81C, 0x68C40001, + 0x81C, 0x67C60001, + 0x81C, 0x66C80001, + 0x81C, 0x65CA0001, + 0x81C, 0x64CC0001, + 0x81C, 0x47CE0001, + 0x81C, 0x46D00001, + 0x81C, 0x45D20001, + 0x81C, 0x44D40001, + 0x81C, 0x43D60001, + 0x81C, 0x42D80001, + 0x81C, 0x08DA0001, + 0x81C, 0x07DC0001, + 0x81C, 0x06DE0001, + 0x81C, 0x05E00001, + 0x81C, 0x04E20001, + 0x81C, 0x03E40001, + 0x81C, 0x02E60001, + 0x81C, 0x01E80001, + 0x81C, 0x01EA0001, + 0x81C, 0x01EC0001, + 0x81C, 0x01EE0001, + 0x81C, 0x01F00001, + 0x81C, 0x01F20001, + 0x81C, 0x01F40001, + 0x81C, 0x01F60001, + 0x81C, 0x01F80001, + 0x81C, 0x01FA0001, + 0x81C, 0x01FC0001, + 0x81C, 0x01FE0001, + 0xFF0F01C0, 0xCDEF, + 0x81C, 0xFC800001, + 0x81C, 0xFB820001, + 0x81C, 0xFA840001, + 0x81C, 0xF9860001, + 0x81C, 0xF8880001, + 0x81C, 0xF78A0001, + 0x81C, 0xF68C0001, + 0x81C, 0xF58E0001, + 0x81C, 0xF4900001, + 0x81C, 0xF3920001, + 0x81C, 0xF2940001, + 0x81C, 0xF1960001, + 0x81C, 0xF0980001, + 0x81C, 0xEF9A0001, + 0x81C, 0xEE9C0001, + 0x81C, 0xED9E0001, + 0x81C, 0xECA00001, + 0x81C, 0xEBA20001, + 0x81C, 0xEAA40001, + 0x81C, 0xE9A60001, + 0x81C, 0xE8A80001, + 0x81C, 0xE7AA0001, + 0x81C, 0xE6AC0001, + 0x81C, 0xE5AE0001, + 0x81C, 0xE4B00001, + 0x81C, 0xE3B20001, + 0x81C, 0xA8B40001, + 0x81C, 0xA7B60001, + 0x81C, 0xA6B80001, + 0x81C, 0xA5BA0001, + 0x81C, 0xA4BC0001, + 0x81C, 0xA3BE0001, + 0x81C, 0xA2C00001, + 0x81C, 0xA1C20001, + 0x81C, 0x68C40001, + 0x81C, 0x67C60001, + 0x81C, 0x66C80001, + 0x81C, 0x65CA0001, + 0x81C, 0x64CC0001, + 0x81C, 0x47CE0001, + 0x81C, 0x46D00001, + 0x81C, 0x45D20001, + 0x81C, 0x44D40001, + 0x81C, 0x43D60001, + 0x81C, 0x42D80001, + 0x81C, 0x08DA0001, + 0x81C, 0x07DC0001, + 0x81C, 0x06DE0001, + 0x81C, 0x05E00001, + 0x81C, 0x04E20001, + 0x81C, 0x03E40001, + 0x81C, 0x02E60001, + 0x81C, 0x01E80001, + 0x81C, 0x01EA0001, + 0x81C, 0x01EC0001, + 0x81C, 0x01EE0001, + 0x81C, 0x01F00001, + 0x81C, 0x01F20001, + 0x81C, 0x01F40001, + 0x81C, 0x01F60001, + 0x81C, 0x01F80001, + 0x81C, 0x01FA0001, + 0x81C, 0x01FC0001, + 0x81C, 0x01FE0001, + 0xFF0F02C0, 0xCDEF, + 0x81C, 0xFC800001, + 0x81C, 0xFB820001, + 0x81C, 0xFA840001, + 0x81C, 0xF9860001, + 0x81C, 0xF8880001, + 0x81C, 0xF78A0001, + 0x81C, 0xF68C0001, + 0x81C, 0xF58E0001, + 0x81C, 0xF4900001, + 0x81C, 0xF3920001, + 0x81C, 0xF2940001, + 0x81C, 0xF1960001, + 0x81C, 0xF0980001, + 0x81C, 0xEF9A0001, + 0x81C, 0xEE9C0001, + 0x81C, 0xED9E0001, + 0x81C, 0xECA00001, + 0x81C, 0xEBA20001, + 0x81C, 0xEAA40001, + 0x81C, 0xE9A60001, + 0x81C, 0xE8A80001, + 0x81C, 0xE7AA0001, + 0x81C, 0xE6AC0001, + 0x81C, 0xE5AE0001, + 0x81C, 0xE4B00001, + 0x81C, 0xE3B20001, + 0x81C, 0xA8B40001, + 0x81C, 0xA7B60001, + 0x81C, 0xA6B80001, + 0x81C, 0xA5BA0001, + 0x81C, 0xA4BC0001, + 0x81C, 0xA3BE0001, + 0x81C, 0xA2C00001, + 0x81C, 0xA1C20001, + 0x81C, 0x68C40001, + 0x81C, 0x67C60001, + 0x81C, 0x66C80001, + 0x81C, 0x65CA0001, + 0x81C, 0x64CC0001, + 0x81C, 0x47CE0001, + 0x81C, 0x46D00001, + 0x81C, 0x45D20001, + 0x81C, 0x44D40001, + 0x81C, 0x43D60001, + 0x81C, 0x42D80001, + 0x81C, 0x08DA0001, + 0x81C, 0x07DC0001, + 0x81C, 0x06DE0001, + 0x81C, 0x05E00001, + 0x81C, 0x04E20001, + 0x81C, 0x03E40001, + 0x81C, 0x02E60001, + 0x81C, 0x01E80001, + 0x81C, 0x01EA0001, + 0x81C, 0x01EC0001, + 0x81C, 0x01EE0001, + 0x81C, 0x01F00001, + 0x81C, 0x01F20001, + 0x81C, 0x01F40001, + 0x81C, 0x01F60001, + 0x81C, 0x01F80001, + 0x81C, 0x01FA0001, + 0x81C, 0x01FC0001, + 0x81C, 0x01FE0001, + 0xFF0F07D8, 0xCDEF, + 0x81C, 0xFC800001, + 0x81C, 0xFB820001, + 0x81C, 0xFA840001, + 0x81C, 0xF9860001, + 0x81C, 0xF8880001, + 0x81C, 0xF78A0001, + 0x81C, 0xF68C0001, + 0x81C, 0xF58E0001, + 0x81C, 0xF4900001, + 0x81C, 0xF3920001, + 0x81C, 0xF2940001, + 0x81C, 0xF1960001, + 0x81C, 0xF0980001, + 0x81C, 0xEF9A0001, + 0x81C, 0xEE9C0001, + 0x81C, 0xED9E0001, + 0x81C, 0xECA00001, + 0x81C, 0xEBA20001, + 0x81C, 0xEAA40001, + 0x81C, 0xE9A60001, + 0x81C, 0xE8A80001, + 0x81C, 0xE7AA0001, + 0x81C, 0xE6AC0001, + 0x81C, 0xE5AE0001, + 0x81C, 0xE4B00001, + 0x81C, 0xE3B20001, + 0x81C, 0xA8B40001, + 0x81C, 0xA7B60001, + 0x81C, 0xA6B80001, + 0x81C, 0xA5BA0001, + 0x81C, 0xA4BC0001, + 0x81C, 0xA3BE0001, + 0x81C, 0xA2C00001, + 0x81C, 0xA1C20001, + 0x81C, 0x68C40001, + 0x81C, 0x67C60001, + 0x81C, 0x66C80001, + 0x81C, 0x65CA0001, + 0x81C, 0x64CC0001, + 0x81C, 0x47CE0001, + 0x81C, 0x46D00001, + 0x81C, 0x45D20001, + 0x81C, 0x44D40001, + 0x81C, 0x43D60001, + 0x81C, 0x42D80001, + 0x81C, 0x08DA0001, + 0x81C, 0x07DC0001, + 0x81C, 0x06DE0001, + 0x81C, 0x05E00001, + 0x81C, 0x04E20001, + 0x81C, 0x03E40001, + 0x81C, 0x02E60001, + 0x81C, 0x01E80001, + 0x81C, 0x01EA0001, + 0x81C, 0x01EC0001, + 0x81C, 0x01EE0001, + 0x81C, 0x01F00001, + 0x81C, 0x01F20001, + 0x81C, 0x01F40001, + 0x81C, 0x01F60001, + 0x81C, 0x01F80001, + 0x81C, 0x01FA0001, + 0x81C, 0x01FC0001, + 0x81C, 0x01FE0001, + 0xFF0F07D0, 0xCDEF, + 0x81C, 0xFC800001, + 0x81C, 0xFB820001, + 0x81C, 0xFA840001, + 0x81C, 0xF9860001, + 0x81C, 0xF8880001, + 0x81C, 0xF78A0001, + 0x81C, 0xF68C0001, + 0x81C, 0xF58E0001, + 0x81C, 0xF4900001, + 0x81C, 0xF3920001, + 0x81C, 0xF2940001, + 0x81C, 0xF1960001, + 0x81C, 0xF0980001, + 0x81C, 0xEF9A0001, + 0x81C, 0xEE9C0001, + 0x81C, 0xED9E0001, + 0x81C, 0xECA00001, + 0x81C, 0xEBA20001, + 0x81C, 0xEAA40001, + 0x81C, 0xE9A60001, + 0x81C, 0xE8A80001, + 0x81C, 0xE7AA0001, + 0x81C, 0xE6AC0001, + 0x81C, 0xE5AE0001, + 0x81C, 0xE4B00001, + 0x81C, 0xE3B20001, + 0x81C, 0xA8B40001, + 0x81C, 0xA7B60001, + 0x81C, 0xA6B80001, + 0x81C, 0xA5BA0001, + 0x81C, 0xA4BC0001, + 0x81C, 0xA3BE0001, + 0x81C, 0xA2C00001, + 0x81C, 0xA1C20001, + 0x81C, 0x68C40001, + 0x81C, 0x67C60001, + 0x81C, 0x66C80001, + 0x81C, 0x65CA0001, + 0x81C, 0x64CC0001, + 0x81C, 0x47CE0001, + 0x81C, 0x46D00001, + 0x81C, 0x45D20001, + 0x81C, 0x44D40001, + 0x81C, 0x43D60001, + 0x81C, 0x42D80001, + 0x81C, 0x08DA0001, + 0x81C, 0x07DC0001, + 0x81C, 0x06DE0001, + 0x81C, 0x05E00001, + 0x81C, 0x04E20001, + 0x81C, 0x03E40001, + 0x81C, 0x02E60001, + 0x81C, 0x01E80001, + 0x81C, 0x01EA0001, + 0x81C, 0x01EC0001, + 0x81C, 0x01EE0001, + 0x81C, 0x01F00001, + 0x81C, 0x01F20001, + 0x81C, 0x01F40001, + 0x81C, 0x01F60001, + 0x81C, 0x01F80001, + 0x81C, 0x01FA0001, + 0x81C, 0x01FC0001, + 0x81C, 0x01FE0001, + 0xCDCDCDCD, 0xCDCD, + 0x81C, 0xFF800001, + 0x81C, 0xFF820001, + 0x81C, 0xFF840001, + 0x81C, 0xFE860001, + 0x81C, 0xFD880001, + 0x81C, 0xFC8A0001, + 0x81C, 0xFB8C0001, + 0x81C, 0xFA8E0001, + 0x81C, 0xF9900001, + 0x81C, 0xF8920001, + 0x81C, 0xF7940001, + 0x81C, 0xF6960001, + 0x81C, 0xF5980001, + 0x81C, 0xF49A0001, + 0x81C, 0xF39C0001, + 0x81C, 0xF29E0001, + 0x81C, 0xF1A00001, + 0x81C, 0xF0A20001, + 0x81C, 0xEFA40001, + 0x81C, 0xEEA60001, + 0x81C, 0xEDA80001, + 0x81C, 0xECAA0001, + 0x81C, 0xEBAC0001, + 0x81C, 0xEAAE0001, + 0x81C, 0xE9B00001, + 0x81C, 0xE8B20001, + 0x81C, 0xE7B40001, + 0x81C, 0xE6B60001, + 0x81C, 0xE5B80001, + 0x81C, 0xE4BA0001, + 0x81C, 0xE3BC0001, + 0x81C, 0xA8BE0001, + 0x81C, 0xA7C00001, + 0x81C, 0xA6C20001, + 0x81C, 0xA5C40001, + 0x81C, 0xA4C60001, + 0x81C, 0xA3C80001, + 0x81C, 0xA2CA0001, + 0x81C, 0xA1CC0001, + 0x81C, 0x68CE0001, + 0x81C, 0x67D00001, + 0x81C, 0x66D20001, + 0x81C, 0x65D40001, + 0x81C, 0x64D60001, + 0x81C, 0x47D80001, + 0x81C, 0x46DA0001, + 0x81C, 0x45DC0001, + 0x81C, 0x44DE0001, + 0x81C, 0x43E00001, + 0x81C, 0x42E20001, + 0x81C, 0x08E40001, + 0x81C, 0x07E60001, + 0x81C, 0x06E80001, + 0x81C, 0x05EA0001, + 0x81C, 0x04EC0001, + 0x81C, 0x03EE0001, + 0x81C, 0x02F00001, + 0x81C, 0x01F20001, + 0x81C, 0x01F40001, + 0x81C, 0x01F60001, + 0x81C, 0x01F80001, + 0x81C, 0x01FA0001, + 0x81C, 0x01FC0001, + 0x81C, 0x01FE0001, + 0xFF0F0180, 0xDEAD, + 0xC50, 0x00000022, + 0xC50, 0x00000020, + 0xE50, 0x00000022, + 0xE50, 0x00000020, +}; + +u32 RTL8821AE_AGC_TAB_ARRAY[] = { + 0x81C, 0xBF000001, + 0x81C, 0xBF020001, + 0x81C, 0xBF040001, + 0x81C, 0xBF060001, + 0x81C, 0xBE080001, + 0x81C, 0xBD0A0001, + 0x81C, 0xBC0C0001, + 0x81C, 0xBA0E0001, + 0x81C, 0xB9100001, + 0x81C, 0xB8120001, + 0x81C, 0xB7140001, + 0x81C, 0xB6160001, + 0x81C, 0xB5180001, + 0x81C, 0xB41A0001, + 0x81C, 0xB31C0001, + 0x81C, 0xB21E0001, + 0x81C, 0xB1200001, + 0x81C, 0xB0220001, + 0x81C, 0xAF240001, + 0x81C, 0xAE260001, + 0x81C, 0xAD280001, + 0x81C, 0xAC2A0001, + 0x81C, 0xAB2C0001, + 0x81C, 0xAA2E0001, + 0x81C, 0xA9300001, + 0x81C, 0xA8320001, + 0x81C, 0xA7340001, + 0x81C, 0xA6360001, + 0x81C, 0xA5380001, + 0x81C, 0xA43A0001, + 0x81C, 0xA33C0001, + 0x81C, 0x673E0001, + 0x81C, 0x66400001, + 0x81C, 0x65420001, + 0x81C, 0x64440001, + 0x81C, 0x63460001, + 0x81C, 0x62480001, + 0x81C, 0x614A0001, + 0x81C, 0x474C0001, + 0x81C, 0x464E0001, + 0x81C, 0x45500001, + 0x81C, 0x44520001, + 0x81C, 0x43540001, + 0x81C, 0x42560001, + 0x81C, 0x41580001, + 0x81C, 0x285A0001, + 0x81C, 0x275C0001, + 0x81C, 0x265E0001, + 0x81C, 0x25600001, + 0x81C, 0x24620001, + 0x81C, 0x0A640001, + 0x81C, 0x09660001, + 0x81C, 0x08680001, + 0x81C, 0x076A0001, + 0x81C, 0x066C0001, + 0x81C, 0x056E0001, + 0x81C, 0x04700001, + 0x81C, 0x03720001, + 0x81C, 0x02740001, + 0x81C, 0x01760001, + 0x81C, 0x01780001, + 0x81C, 0x017A0001, + 0x81C, 0x017C0001, + 0x81C, 0x017E0001, + 0xFF0F02C0, 0xABCD, + 0x81C, 0xFB000101, + 0x81C, 0xFA020101, + 0x81C, 0xF9040101, + 0x81C, 0xF8060101, + 0x81C, 0xF7080101, + 0x81C, 0xF60A0101, + 0x81C, 0xF50C0101, + 0x81C, 0xF40E0101, + 0x81C, 0xF3100101, + 0x81C, 0xF2120101, + 0x81C, 0xF1140101, + 0x81C, 0xF0160101, + 0x81C, 0xEF180101, + 0x81C, 0xEE1A0101, + 0x81C, 0xED1C0101, + 0x81C, 0xEC1E0101, + 0x81C, 0xEB200101, + 0x81C, 0xEA220101, + 0x81C, 0xE9240101, + 0x81C, 0xE8260101, + 0x81C, 0xE7280101, + 0x81C, 0xE62A0101, + 0x81C, 0xE52C0101, + 0x81C, 0xE42E0101, + 0x81C, 0xE3300101, + 0x81C, 0xA5320101, + 0x81C, 0xA4340101, + 0x81C, 0xA3360101, + 0x81C, 0x87380101, + 0x81C, 0x863A0101, + 0x81C, 0x853C0101, + 0x81C, 0x843E0101, + 0x81C, 0x69400101, + 0x81C, 0x68420101, + 0x81C, 0x67440101, + 0x81C, 0x66460101, + 0x81C, 0x49480101, + 0x81C, 0x484A0101, + 0x81C, 0x474C0101, + 0x81C, 0x2A4E0101, + 0x81C, 0x29500101, + 0x81C, 0x28520101, + 0x81C, 0x27540101, + 0x81C, 0x26560101, + 0x81C, 0x25580101, + 0x81C, 0x245A0101, + 0x81C, 0x235C0101, + 0x81C, 0x055E0101, + 0x81C, 0x04600101, + 0x81C, 0x03620101, + 0x81C, 0x02640101, + 0x81C, 0x01660101, + 0x81C, 0x01680101, + 0x81C, 0x016A0101, + 0x81C, 0x016C0101, + 0x81C, 0x016E0101, + 0x81C, 0x01700101, + 0x81C, 0x01720101, + 0xCDCDCDCD, 0xCDCD, + 0x81C, 0xFF000101, + 0x81C, 0xFF020101, + 0x81C, 0xFE040101, + 0x81C, 0xFD060101, + 0x81C, 0xFC080101, + 0x81C, 0xFD0A0101, + 0x81C, 0xFC0C0101, + 0x81C, 0xFB0E0101, + 0x81C, 0xFA100101, + 0x81C, 0xF9120101, + 0x81C, 0xF8140101, + 0x81C, 0xF7160101, + 0x81C, 0xF6180101, + 0x81C, 0xF51A0101, + 0x81C, 0xF41C0101, + 0x81C, 0xF31E0101, + 0x81C, 0xF2200101, + 0x81C, 0xF1220101, + 0x81C, 0xF0240101, + 0x81C, 0xEF260101, + 0x81C, 0xEE280101, + 0x81C, 0xED2A0101, + 0x81C, 0xEC2C0101, + 0x81C, 0xEB2E0101, + 0x81C, 0xEA300101, + 0x81C, 0xE9320101, + 0x81C, 0xE8340101, + 0x81C, 0xE7360101, + 0x81C, 0xE6380101, + 0x81C, 0xE53A0101, + 0x81C, 0xE43C0101, + 0x81C, 0xE33E0101, + 0x81C, 0xA5400101, + 0x81C, 0xA4420101, + 0x81C, 0xA3440101, + 0x81C, 0x87460101, + 0x81C, 0x86480101, + 0x81C, 0x854A0101, + 0x81C, 0x844C0101, + 0x81C, 0x694E0101, + 0x81C, 0x68500101, + 0x81C, 0x67520101, + 0x81C, 0x66540101, + 0x81C, 0x49560101, + 0x81C, 0x48580101, + 0x81C, 0x475A0101, + 0x81C, 0x2A5C0101, + 0x81C, 0x295E0101, + 0x81C, 0x28600101, + 0x81C, 0x27620101, + 0x81C, 0x26640101, + 0x81C, 0x25660101, + 0x81C, 0x24680101, + 0x81C, 0x236A0101, + 0x81C, 0x056C0101, + 0x81C, 0x046E0101, + 0x81C, 0x03700101, + 0x81C, 0x02720101, + 0xFF0F02C0, 0xDEAD, + 0x81C, 0x01740101, + 0x81C, 0x01760101, + 0x81C, 0x01780101, + 0x81C, 0x017A0101, + 0x81C, 0x017C0101, + 0x81C, 0x017E0101, + 0xC50, 0x00000022, + 0xC50, 0x00000020, + +}; --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/table.h +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/table.h @@ -0,0 +1,62 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Created on 2010/ 5/18, 1:41 + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8821AE_TABLE__H_ +#define __RTL8821AE_TABLE__H_ + +#include +#define RTL8821AEPHY_REG_1TARRAYLEN 344 +extern u32 RTL8821AE_PHY_REG_ARRAY[]; +#define RTL8812AEPHY_REG_1TARRAYLEN 490 +extern u32 RTL8812AE_PHY_REG_ARRAY[]; +#define RTL8821AEPHY_REG_ARRAY_PGLEN 90 +extern u32 RTL8821AE_PHY_REG_ARRAY_PG[]; +#define RTL8812AEPHY_REG_ARRAY_PGLEN 276 +extern u32 RTL8812AE_PHY_REG_ARRAY_PG[]; +//#define RTL8723BE_RADIOA_1TARRAYLEN 206 +//extern u8 *RTL8821AE_TXPWR_LMT_ARRAY[]; +#define RTL8812AE_RADIOA_1TARRAYLEN 1264 +extern u32 RTL8812AE_RADIOA_ARRAY[]; +#define RTL8812AE_RADIOB_1TARRAYLEN 1240 +extern u32 RTL8812AE_RADIOB_ARRAY[]; +#define RTL8821AE_RADIOA_1TARRAYLEN 1176 +extern u32 RTL8821AE_RADIOA_ARRAY[]; +#define RTL8821AEMAC_1T_ARRAYLEN 194 +extern u32 RTL8821AE_MAC_REG_ARRAY[]; +#define RTL8812AEMAC_1T_ARRAYLEN 214 +extern u32 RTL8812AE_MAC_REG_ARRAY[]; +#define RTL8821AEAGCTAB_1TARRAYLEN 382 +extern u32 RTL8821AE_AGC_TAB_ARRAY[]; +#define RTL8812AEAGCTAB_1TARRAYLEN 1312 +extern u32 RTL8812AE_AGC_TAB_ARRAY[]; + + +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/trx.c +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/trx.c @@ -0,0 +1,1050 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#include "../wifi.h" +#include "../pci.h" +#include "../base.h" +#include "../stats.h" +#include "reg.h" +#include "def.h" +#include "phy.h" +#include "trx.h" +#include "led.h" +#include "dm.h" +#include "phy.h" +u8 _rtl8821ae_map_hwqueue_to_fwqueue(struct sk_buff *skb, u8 hw_queue) +{ + u16 fc = rtl_get_fc(skb); + + if (unlikely(ieee80211_is_beacon(fc))) + return QSLT_BEACON; + if (ieee80211_is_mgmt(fc) || ieee80211_is_ctl(fc)) + return QSLT_MGNT; + + return skb->priority; +} + +/* mac80211's rate_idx is like this: + * + * 2.4G band:rx_status->band == IEEE80211_BAND_2GHZ + * + * B/G rate: + * (rx_status->flag & RX_FLAG_HT) = 0, + * DESC_RATE1M-->DESC_RATE54M ==> idx is 0-->11, + * + * N rate: + * (rx_status->flag & RX_FLAG_HT) = 1, + * DESC_RATEMCS0-->DESC_RATEMCS15 ==> idx is 0-->15 + * + * 5G band:rx_status->band == IEEE80211_BAND_5GHZ + * A rate: + * (rx_status->flag & RX_FLAG_HT) = 0, + * DESC_RATE6M-->DESC_RATE54M ==> idx is 0-->7, + * + * N rate: + * (rx_status->flag & RX_FLAG_HT) = 1, + * DESC_RATEMCS0-->DESC_RATEMCS15 ==> idx is 0-->15 + */ +static int _rtl8821ae_rate_mapping(struct ieee80211_hw *hw, + bool isht, u8 desc_rate) +{ + int rate_idx; + + if (false == isht) { +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) + if (IEEE80211_BAND_2GHZ == hw->conf.chandef.chan->band) { +#else + if (IEEE80211_BAND_2GHZ == hw->conf.channel->band) { +#endif + switch (desc_rate) { + case DESC_RATE1M: + rate_idx = 0; + break; + case DESC_RATE2M: + rate_idx = 1; + break; + case DESC_RATE5_5M: + rate_idx = 2; + break; + case DESC_RATE11M: + rate_idx = 3; + break; + case DESC_RATE6M: + rate_idx = 4; + break; + case DESC_RATE9M: + rate_idx = 5; + break; + case DESC_RATE12M: + rate_idx = 6; + break; + case DESC_RATE18M: + rate_idx = 7; + break; + case DESC_RATE24M: + rate_idx = 8; + break; + case DESC_RATE36M: + rate_idx = 9; + break; + case DESC_RATE48M: + rate_idx = 10; + break; + case DESC_RATE54M: + rate_idx = 11; + break; + default: + rate_idx = 0; + break; + } + } else { + switch (desc_rate) { + case DESC_RATE6M: + rate_idx = 0; + break; + case DESC_RATE9M: + rate_idx = 1; + break; + case DESC_RATE12M: + rate_idx = 2; + break; + case DESC_RATE18M: + rate_idx = 3; + break; + case DESC_RATE24M: + rate_idx = 4; + break; + case DESC_RATE36M: + rate_idx = 5; + break; + case DESC_RATE48M: + rate_idx = 6; + break; + case DESC_RATE54M: + rate_idx = 7; + break; + default: + rate_idx = 0; + break; + } + } + } else { + switch(desc_rate) { + case DESC_RATEMCS0: + rate_idx = 0; + break; + case DESC_RATEMCS1: + rate_idx = 1; + break; + case DESC_RATEMCS2: + rate_idx = 2; + break; + case DESC_RATEMCS3: + rate_idx = 3; + break; + case DESC_RATEMCS4: + rate_idx = 4; + break; + case DESC_RATEMCS5: + rate_idx = 5; + break; + case DESC_RATEMCS6: + rate_idx = 6; + break; + case DESC_RATEMCS7: + rate_idx = 7; + break; + case DESC_RATEMCS8: + rate_idx = 8; + break; + case DESC_RATEMCS9: + rate_idx = 9; + break; + case DESC_RATEMCS10: + rate_idx = 10; + break; + case DESC_RATEMCS11: + rate_idx = 11; + break; + case DESC_RATEMCS12: + rate_idx = 12; + break; + case DESC_RATEMCS13: + rate_idx = 13; + break; + case DESC_RATEMCS14: + rate_idx = 14; + break; + case DESC_RATEMCS15: + rate_idx = 15; + break; + default: + rate_idx = 0; + break; + } + } + return rate_idx; +} + +static void _rtl8821ae_query_rxphystatus(struct ieee80211_hw *hw, + struct rtl_stats *pstatus, u8 *pdesc, + struct rx_fwinfo_8821ae *p_drvinfo, bool bpacket_match_bssid, + bool bpacket_toself, bool b_packet_beacon) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_ps_ctl *ppsc = rtl_psc(rtlpriv); + struct phy_sts_cck_8821ae_t *cck_buf; + struct phy_status_rpt *p_phystRpt = (struct phy_status_rpt *)p_drvinfo; + struct rtl_dm *rtldm = rtl_dm(rtl_priv(hw)); + char rx_pwr_all = 0, rx_pwr[4]; + u8 rf_rx_num = 0, evm, pwdb_all; + u8 i, max_spatial_stream; + u32 rssi, total_rssi = 0; + bool b_is_cck = pstatus->b_is_cck; + u8 lan_idx,vga_idx; + + /* Record it for next packet processing */ + pstatus->b_packet_matchbssid = bpacket_match_bssid; + pstatus->b_packet_toself = bpacket_toself; + pstatus->b_packet_beacon = b_packet_beacon; + pstatus->rx_mimo_signalquality[0] = -1; + pstatus->rx_mimo_signalquality[1] = -1; + + if (b_is_cck) { + u8 cck_highpwr; + u8 cck_agc_rpt; + /* CCK Driver info Structure is not the same as OFDM packet. */ + cck_buf = (struct phy_sts_cck_8821ae_t *)p_drvinfo; + cck_agc_rpt = cck_buf->cck_agc_rpt; + + /* (1)Hardware does not provide RSSI for CCK */ + /* (2)PWDB, Average PWDB cacluated by + * hardware (for rate adaptive) */ + if (ppsc->rfpwr_state == ERFON) + cck_highpwr = (u8) rtl_get_bbreg(hw, RFPGA0_XA_HSSIPARAMETER2, + BIT(9)); + else + cck_highpwr = false; + + lan_idx = ((cck_agc_rpt & 0xE0) >> 5); + vga_idx = (cck_agc_rpt & 0x1f); + switch (lan_idx) { + case 7: + if(vga_idx <= 27) + rx_pwr_all = -100 + 2*(27-vga_idx); /*VGA_idx = 27~2*/ + else + rx_pwr_all = -100; + break; + case 6: + rx_pwr_all = -48 + 2*(2-vga_idx); /*VGA_idx = 2~0*/ + break; + case 5: + rx_pwr_all = -42 + 2*(7-vga_idx); /*VGA_idx = 7~5*/ + break; + case 4: + rx_pwr_all = -36 + 2*(7-vga_idx); /*VGA_idx = 7~4*/ + break; + case 3: + rx_pwr_all = -24 + 2*(7-vga_idx); /*VGA_idx = 7~0*/ + break; + case 2: + if(cck_highpwr) + rx_pwr_all = -12 + 2*(5-vga_idx); /*VGA_idx = 5~0*/ + else + rx_pwr_all = -6+ 2*(5-vga_idx); + break; + case 1: + rx_pwr_all = 8-2*vga_idx; + break; + case 0: + rx_pwr_all = 14-2*vga_idx; + break; + default: + break; + } + rx_pwr_all += 6; + pwdb_all = rtl_query_rxpwrpercentage(rx_pwr_all); + /* CCK gain is smaller than OFDM/MCS gain, */ + /* so we add gain diff by experiences, + * the val is 6 */ + pwdb_all += 6; + if(pwdb_all > 100) + pwdb_all = 100; + /* modify the offset to make the same + * gain index with OFDM. */ + if(pwdb_all > 34 && pwdb_all <= 42) + pwdb_all -= 2; + else if(pwdb_all > 26 && pwdb_all <= 34) + pwdb_all -= 6; + else if(pwdb_all > 14 && pwdb_all <= 26) + pwdb_all -= 8; + else if(pwdb_all > 4 && pwdb_all <= 14) + pwdb_all -= 4; + if (cck_highpwr == false){ + if (pwdb_all >= 80) + pwdb_all =((pwdb_all-80)<<1)+((pwdb_all-80)>>1)+80; + else if((pwdb_all <= 78) && (pwdb_all >= 20)) + pwdb_all += 3; + if(pwdb_all>100) + pwdb_all = 100; + } + + pstatus->rx_pwdb_all = pwdb_all; + pstatus->recvsignalpower = rx_pwr_all; + + /* (3) Get Signal Quality (EVM) */ + if (bpacket_match_bssid) { + u8 sq; + + if (pstatus->rx_pwdb_all > 40) + sq = 100; + else { + sq = cck_buf->sq_rpt; + if (sq > 64) + sq = 0; + else if (sq < 20) + sq = 100; + else + sq = ((64 - sq) * 100) / 44; + } + + pstatus->signalquality = sq; + pstatus->rx_mimo_signalquality[0] = sq; + pstatus->rx_mimo_signalquality[1] = -1; + } + } else { + rtlpriv->dm.brfpath_rxenable[0] = + rtlpriv->dm.brfpath_rxenable[1] = true; + + /* (1)Get RSSI for HT rate */ + for (i = RF90_PATH_A; i < RF6052_MAX_PATH; i++) { + + /* we will judge RF RX path now. */ + if (rtlpriv->dm.brfpath_rxenable[i]) + rf_rx_num++; + + rx_pwr[i] = ((p_drvinfo->gain_trsw[i] & 0x3f) * 2) - 110; + + /* Translate DBM to percentage. */ + rssi = rtl_query_rxpwrpercentage(rx_pwr[i]); + total_rssi += rssi; + + /* Get Rx snr value in DB */ + rtlpriv->stats.rx_snr_db[i] = (long)(p_drvinfo->rxsnr[i] / 2); + + /* Record Signal Strength for next packet */ + if (bpacket_match_bssid) + pstatus->rx_mimo_signalstrength[i] = (u8) rssi; + } + + /* (2)PWDB, Average PWDB cacluated by + * hardware (for rate adaptive) */ + rx_pwr_all = ((p_drvinfo->pwdb_all >> 1) & 0x7f) - 110; + + pwdb_all = rtl_query_rxpwrpercentage(rx_pwr_all); + pstatus->rx_pwdb_all = pwdb_all; + pstatus->rxpower = rx_pwr_all; + pstatus->recvsignalpower = rx_pwr_all; + + /* (3)EVM of HT rate */ + if (pstatus->b_is_ht && pstatus->rate >= DESC_RATEMCS8 && + pstatus->rate <= DESC_RATEMCS15) + max_spatial_stream = 2; + else + max_spatial_stream = 1; + + for (i = 0; i < max_spatial_stream; i++) { + evm = rtl_evm_db_to_percentage(p_drvinfo->rxevm[i]); + + if (bpacket_match_bssid) { + /* Fill value in RFD, Get the first + * spatial stream only */ + if (i == 0) + pstatus->signalquality = (u8) (evm & 0xff); + pstatus->rx_mimo_signalquality[i] = (u8) (evm & 0xff); + } + } + } + + /* UI BSS List signal strength(in percentage), + * make it good looking, from 0~100. */ + if (b_is_cck) + pstatus->signalstrength = (u8)(rtl_signal_scale_mapping(hw, + pwdb_all)); + else if (rf_rx_num != 0) + pstatus->signalstrength = (u8)(rtl_signal_scale_mapping(hw, + total_rssi /= rf_rx_num)); + /*HW antenna diversity*/ + rtldm->fat_table.antsel_rx_keep_0 = p_phystRpt->ant_sel; + rtldm->fat_table.antsel_rx_keep_1 = p_phystRpt->ant_sel_b; + rtldm->fat_table.antsel_rx_keep_2 = p_phystRpt->antsel_rx_keep_2; + +} +#if 0 +static void _rtl8821ae_smart_antenna(struct ieee80211_hw *hw, + struct rtl_stats *pstatus) +{ + struct rtl_dm *rtldm= rtl_dm(rtl_priv(hw)); + struct rtl_efuse *rtlefuse =rtl_efuse(rtl_priv(hw)); + u8 antsel_tr_mux; + struct fast_ant_trainning *pfat_table = &(rtldm->fat_table); + + if (rtlefuse->antenna_div_type == CG_TRX_SMART_ANTDIV) { + if (pfat_table->fat_state == FAT_TRAINING_STATE) { + if (pstatus->b_packet_toself) { + antsel_tr_mux = (pfat_table->antsel_rx_keep_2 << 2) | + (pfat_table->antsel_rx_keep_1 << 1) | pfat_table->antsel_rx_keep_0; + pfat_table->ant_sum_rssi[antsel_tr_mux] += pstatus->rx_pwdb_all; + pfat_table->ant_rssi_cnt[antsel_tr_mux]++; + } + } + } else if ((rtlefuse->antenna_div_type == CG_TRX_HW_ANTDIV) || + (rtlefuse->antenna_div_type == CGCS_RX_HW_ANTDIV)) { + if (pstatus->b_packet_toself || pstatus->b_packet_matchbssid) { + antsel_tr_mux = (pfat_table->antsel_rx_keep_2 << 2) | + (pfat_table->antsel_rx_keep_1 << 1) | pfat_table->antsel_rx_keep_0; + rtl8821ae_dm_ant_sel_statistics(hw, antsel_tr_mux, 0, pstatus->rx_pwdb_all); + } + + } +} +#endif +static void _rtl8821ae_translate_rx_signal_stuff(struct ieee80211_hw *hw, + struct sk_buff *skb, struct rtl_stats *pstatus, + u8 *pdesc, struct rx_fwinfo_8821ae *p_drvinfo) +{ + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw)); + struct ieee80211_hdr *hdr; + u8 *tmp_buf; + u8 *praddr; + u8 *psaddr; + u16 fc, type; + bool b_packet_matchbssid, b_packet_toself, b_packet_beacon; + + tmp_buf = skb->data + pstatus->rx_drvinfo_size + pstatus->rx_bufshift; + + hdr = (struct ieee80211_hdr *)tmp_buf; + fc = le16_to_cpu(hdr->frame_control); + type = WLAN_FC_GET_TYPE(fc); + praddr = hdr->addr1; + psaddr = ieee80211_get_SA(hdr); + memcpy(pstatus->psaddr, psaddr, ETH_ALEN); + + b_packet_matchbssid = ((IEEE80211_FTYPE_CTL != type) && + (!ether_addr_equal(mac->bssid, (fc & IEEE80211_FCTL_TODS) ? + hdr->addr1 : (fc & IEEE80211_FCTL_FROMDS) ? + hdr->addr2 : hdr->addr3)) && (!pstatus->b_hwerror) && + (!pstatus->b_crc) && (!pstatus->b_icv)); + + b_packet_toself = b_packet_matchbssid && + (!ether_addr_equal(praddr, rtlefuse->dev_addr)); + + if (ieee80211_is_beacon(fc)) + b_packet_beacon = true; + else + b_packet_beacon = false; + + if (b_packet_beacon && b_packet_matchbssid) + rtl_priv(hw)->dm.dbginfo.num_qry_beacon_pkt++; + + _rtl8821ae_query_rxphystatus(hw, pstatus, pdesc, p_drvinfo, + b_packet_matchbssid, b_packet_toself, + b_packet_beacon); + /*_rtl8821ae_smart_antenna(hw, pstatus); */ + rtl_process_phyinfo(hw, tmp_buf, pstatus); +} + +static void _rtl8821ae_insert_emcontent(struct rtl_tcb_desc *ptcb_desc, + u8 *virtualaddress) +{ + u32 dwtmp = 0; + memset(virtualaddress, 0, 8); + + SET_EARLYMODE_PKTNUM(virtualaddress, ptcb_desc->empkt_num); + if (ptcb_desc->empkt_num == 1) + dwtmp = ptcb_desc->empkt_len[0]; + else { + dwtmp = ptcb_desc->empkt_len[0]; + dwtmp += ((dwtmp%4)?(4-dwtmp%4):0)+4; + dwtmp += ptcb_desc->empkt_len[1]; + } + SET_EARLYMODE_LEN0(virtualaddress, dwtmp); + + if (ptcb_desc->empkt_num <= 3) + dwtmp = ptcb_desc->empkt_len[2]; + else { + dwtmp = ptcb_desc->empkt_len[2]; + dwtmp += ((dwtmp%4)?(4-dwtmp%4):0)+4; + dwtmp += ptcb_desc->empkt_len[3]; + } + SET_EARLYMODE_LEN1(virtualaddress, dwtmp); + if (ptcb_desc->empkt_num <= 5) + dwtmp = ptcb_desc->empkt_len[4]; + else { + dwtmp = ptcb_desc->empkt_len[4]; + dwtmp += ((dwtmp%4)?(4-dwtmp%4):0)+4; + dwtmp += ptcb_desc->empkt_len[5]; + } + SET_EARLYMODE_LEN2_1(virtualaddress, dwtmp & 0xF); + SET_EARLYMODE_LEN2_2(virtualaddress, dwtmp >> 4); + if (ptcb_desc->empkt_num <= 7) + dwtmp = ptcb_desc->empkt_len[6]; + else { + dwtmp = ptcb_desc->empkt_len[6]; + dwtmp += ((dwtmp%4)?(4-dwtmp%4):0)+4; + dwtmp += ptcb_desc->empkt_len[7]; + } + SET_EARLYMODE_LEN3(virtualaddress, dwtmp); + if (ptcb_desc->empkt_num <= 9) + dwtmp = ptcb_desc->empkt_len[8]; + else { + dwtmp = ptcb_desc->empkt_len[8]; + dwtmp += ((dwtmp%4)?(4-dwtmp%4):0)+4; + dwtmp += ptcb_desc->empkt_len[9]; + } + SET_EARLYMODE_LEN4(virtualaddress, dwtmp); +} + +bool rtl8821ae_rx_query_desc(struct ieee80211_hw *hw, + struct rtl_stats *status, + struct ieee80211_rx_status *rx_status, + u8 *pdesc, struct sk_buff *skb) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rx_fwinfo_8821ae *p_drvinfo; + struct ieee80211_hdr *hdr; + + u32 phystatus = GET_RX_DESC_PHYST(pdesc); + + status->length = (u16) GET_RX_DESC_PKT_LEN(pdesc); + status->rx_drvinfo_size = (u8) GET_RX_DESC_DRV_INFO_SIZE(pdesc) * + RX_DRV_INFO_SIZE_UNIT; + status->rx_bufshift = (u8) (GET_RX_DESC_SHIFT(pdesc) & 0x03); + status->b_icv = (u16) GET_RX_DESC_ICV(pdesc); + status->b_crc = (u16) GET_RX_DESC_CRC32(pdesc); + status->b_hwerror = (status->b_crc | status->b_icv); + status->decrypted = !GET_RX_DESC_SWDEC(pdesc); + status->rate = (u8) GET_RX_DESC_RXMCS(pdesc); + status->b_shortpreamble = (u16) GET_RX_DESC_SPLCP(pdesc); + status->b_isampdu = (bool) (GET_RX_DESC_PAGGR(pdesc) == 1); + status->b_isfirst_ampdu = (bool) (GET_RX_DESC_PAGGR(pdesc) == 1); + status->timestamp_low = GET_RX_DESC_TSFL(pdesc); + status->rx_is40Mhzpacket = (bool) GET_RX_DESC_BW(pdesc); + status->macid = GET_RX_DESC_MACID(pdesc); + status->b_is_ht = (bool)GET_RX_DESC_RXHT(pdesc); + + status->b_is_cck = RX_HAL_IS_CCK_RATE(status->rate); + + if (GET_RX_STATUS_DESC_RPT_SEL(pdesc)) + status->packet_report_type = C2H_PACKET; + else + status->packet_report_type = NORMAL_RX; + + if (GET_RX_STATUS_DESC_PATTERN_MATCH(pdesc)) + status->wake_match = BIT(2); + else if (GET_RX_STATUS_DESC_MAGIC_MATCH(pdesc)) + status->wake_match = BIT(1); + else if (GET_RX_STATUS_DESC_UNICAST_MATCH(pdesc)) + status->wake_match = BIT(0); + else + status->wake_match = 0; + + if (status->wake_match) + RT_TRACE(COMP_RXDESC,DBG_LOUD, + ("GGGGGGGGGGGGGet Wakeup Packet!! WakeMatch=%d\n",status->wake_match )); +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) + rx_status->freq = hw->conf.chandef.chan->center_freq; + rx_status->band = hw->conf.chandef.chan->band; +#else + rx_status->freq = hw->conf.channel->center_freq; + rx_status->band = hw->conf.channel->band; +#endif + + hdr = (struct ieee80211_hdr *)(skb->data + status->rx_drvinfo_size + + status->rx_bufshift); + + if (status->b_crc) + rx_status->flag |= RX_FLAG_FAILED_FCS_CRC; + + if (status->rx_is40Mhzpacket) + rx_status->flag |= RX_FLAG_40MHZ; + + if (status->b_is_ht) + rx_status->flag |= RX_FLAG_HT; + + rx_status->flag |= RX_FLAG_MACTIME_MPDU; + + /* hw will set status->decrypted true, if it finds the + * frame is open data frame or mgmt frame. */ + /* So hw will not decryption robust managment frame + * for IEEE80211w but still set status->decrypted + * true, so here we should set it back to undecrypted + * for IEEE80211w frame, and mac80211 sw will help + * to decrypt it */ + if (status->decrypted) { + if (!hdr) { + WARN_ON_ONCE(true); + pr_err("decrypted is true but hdr NULL, from skb %p\n", + rtl_get_hdr(skb)); + return false; + } + + if ((_ieee80211_is_robust_mgmt_frame(hdr)) && + (ieee80211_has_protected(hdr->frame_control))) + rx_status->flag &= ~RX_FLAG_DECRYPTED; + else + rx_status->flag |= RX_FLAG_DECRYPTED; + } + + /* rate_idx: index of data rate into band's + * supported rates or MCS index if HT rates + * are use (RX_FLAG_HT)*/ + /* Notice: this is diff with windows define */ + rx_status->rate_idx = _rtl8821ae_rate_mapping(hw, + status->b_is_ht, status->rate); + + rx_status->mactime = status->timestamp_low; + if (phystatus == true) { + p_drvinfo = (struct rx_fwinfo_8821ae *)(skb->data + + status->rx_bufshift); + + _rtl8821ae_translate_rx_signal_stuff(hw, + skb, status, pdesc, + p_drvinfo); + } + + /*rx_status->qual = status->signal; */ + rx_status->signal = status->recvsignalpower + 10; + /*rx_status->noise = -status->noise; */ + if (status->packet_report_type == TX_REPORT2){ + status->macid_valid_entry[0] = GET_RX_RPT2_DESC_MACID_VALID_1(pdesc); + status->macid_valid_entry[1] = GET_RX_RPT2_DESC_MACID_VALID_2(pdesc); + } + return true; +} + +/**/ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) +void rtl8821ae_tx_fill_desc(struct ieee80211_hw *hw, + struct ieee80211_hdr *hdr, u8 *pdesc_tx, u8 *txbd, + struct ieee80211_tx_info *info, struct sk_buff *skb, + u8 hw_queue, struct rtl_tcb_desc *ptcb_desc) +#else +/**/ +void rtl8821ae_tx_fill_desc(struct ieee80211_hw *hw, + struct ieee80211_hdr *hdr, u8 *pdesc_tx, u8 *txbd, + struct ieee80211_tx_info *info, + struct ieee80211_sta *sta, + struct sk_buff *skb, + u8 hw_queue, struct rtl_tcb_desc *ptcb_desc) +/**/ +#endif +/**/ +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl_hal *rtlhal = rtl_hal(rtlpriv); +/**/ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) + struct ieee80211_sta *sta = info->control.sta; +#endif +/**/ + u8 *pdesc = (u8 *) pdesc_tx; + u16 seq_number; + u16 fc = le16_to_cpu(hdr->frame_control); + unsigned int buf_len = 0; + unsigned int skb_len = skb->len; + u8 fw_qsel = _rtl8821ae_map_hwqueue_to_fwqueue(skb, hw_queue); + bool b_firstseg = ((hdr->seq_ctrl & + cpu_to_le16(IEEE80211_SCTL_FRAG)) == 0); + bool b_lastseg = ((hdr->frame_control & + cpu_to_le16(IEEE80211_FCTL_MOREFRAGS)) == 0); + dma_addr_t mapping; + u8 bw_40 = 0; + u8 short_gi = 0; + + if (mac->opmode == NL80211_IFTYPE_STATION) { + bw_40 = mac->bw_40; + } else if (mac->opmode == NL80211_IFTYPE_AP || + mac->opmode == NL80211_IFTYPE_ADHOC) { + if (sta) + bw_40 = sta->ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40; + } + seq_number = (le16_to_cpu(hdr->seq_ctrl) & IEEE80211_SCTL_SEQ) >> 4; + rtl_get_tcb_desc(hw, info, sta, skb, ptcb_desc); + /* reserve 8 byte for AMPDU early mode */ + if (rtlhal->b_earlymode_enable) { + skb_push(skb, EM_HDR_LEN); + memset(skb->data, 0, EM_HDR_LEN); + } + buf_len = skb->len; + mapping = pci_map_single(rtlpci->pdev, skb->data, skb->len, + PCI_DMA_TODEVICE); + if (pci_dma_mapping_error(rtlpci->pdev, mapping)) { + RT_TRACE(COMP_SEND, DBG_TRACE, + ("DMA mapping error")); + return; + } + CLEAR_PCI_TX_DESC_CONTENT(pdesc, sizeof(struct tx_desc_8821ae)); + if (ieee80211_is_nullfunc(fc) || ieee80211_is_ctl(fc)) { + b_firstseg = true; + b_lastseg = true; + } + if (b_firstseg) { + if (rtlhal->b_earlymode_enable) { + SET_TX_DESC_PKT_OFFSET(pdesc, 1); + SET_TX_DESC_OFFSET(pdesc, USB_HWDESC_HEADER_LEN + EM_HDR_LEN); + if (ptcb_desc->empkt_num) { + RT_TRACE(COMP_SEND, DBG_TRACE, + ("Insert 8 byte.pTcb->EMPktNum:%d\n", + ptcb_desc->empkt_num)); + _rtl8821ae_insert_emcontent(ptcb_desc, (u8 *)(skb->data)); + } + } else { + SET_TX_DESC_OFFSET(pdesc, USB_HWDESC_HEADER_LEN); + } + + /* ptcb_desc->use_driver_rate = true; */ + SET_TX_DESC_TX_RATE(pdesc, ptcb_desc->hw_rate); + if (ptcb_desc->hw_rate > DESC_RATEMCS0) { + short_gi = (ptcb_desc->use_shortgi) ? 1 : 0; + } else { + short_gi = (ptcb_desc->use_shortpreamble) ? 1 :0; + } + SET_TX_DESC_DATA_SHORTGI(pdesc, short_gi); + + if (info->flags & IEEE80211_TX_CTL_AMPDU) { + SET_TX_DESC_AGG_ENABLE(pdesc, 1); + SET_TX_DESC_MAX_AGG_NUM(pdesc, 0x14); + } + SET_TX_DESC_SEQ(pdesc, seq_number); + SET_TX_DESC_RTS_ENABLE(pdesc, ((ptcb_desc->b_rts_enable && + !ptcb_desc->b_cts_enable) ? 1 : 0)); + SET_TX_DESC_HW_RTS_ENABLE(pdesc,0); + SET_TX_DESC_CTS2SELF(pdesc, ((ptcb_desc->b_cts_enable) ? 1 : 0)); + /* SET_TX_DESC_RTS_STBC(pdesc, ((ptcb_desc->b_rts_stbc) ? 1 : 0));*/ + + SET_TX_DESC_RTS_RATE(pdesc, ptcb_desc->rts_rate); + /* SET_TX_DESC_RTS_BW(pdesc, 0);*/ + SET_TX_DESC_RTS_SC(pdesc, ptcb_desc->rts_sc); + SET_TX_DESC_RTS_SHORT(pdesc, ((ptcb_desc->rts_rate <= DESC_RATE54M) ? + (ptcb_desc->b_rts_use_shortpreamble ? 1 : 0) : + (ptcb_desc->b_rts_use_shortgi ? 1 : 0))); + + if(ptcb_desc->btx_enable_sw_calc_duration) + SET_TX_DESC_NAV_USE_HDR(pdesc, 1); + + if (bw_40) { + if (ptcb_desc->b_packet_bw) { + SET_TX_DESC_DATA_BW(pdesc, 1); + SET_TX_DESC_TX_SUB_CARRIER(pdesc, 3); + } else { + SET_TX_DESC_DATA_BW(pdesc, 0); + SET_TX_DESC_TX_SUB_CARRIER(pdesc, mac->cur_40_prime_sc); + } + } else { + SET_TX_DESC_DATA_BW(pdesc, 0); + SET_TX_DESC_TX_SUB_CARRIER(pdesc, 0); + } + + SET_TX_DESC_LINIP(pdesc, 0); + SET_TX_DESC_PKT_SIZE(pdesc, (u16) skb_len); + if (sta) { + u8 ampdu_density = sta->ht_cap.ampdu_density; + SET_TX_DESC_AMPDU_DENSITY(pdesc, ampdu_density); + } + if (info->control.hw_key) { + struct ieee80211_key_conf *keyconf = info->control.hw_key; +/**/ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +/**/ + switch (keyconf->cipher) { + case WLAN_CIPHER_SUITE_WEP40: + case WLAN_CIPHER_SUITE_WEP104: + case WLAN_CIPHER_SUITE_TKIP: + SET_TX_DESC_SEC_TYPE(pdesc, 0x1); + break; + case WLAN_CIPHER_SUITE_CCMP: + SET_TX_DESC_SEC_TYPE(pdesc, 0x3); + break; + default: + SET_TX_DESC_SEC_TYPE(pdesc, 0x0); + break; + + } +/**/ +#else + switch (keyconf->alg) { + case ALG_WEP: + case ALG_TKIP: + SET_TX_DESC_SEC_TYPE(pdesc, 0x1); + break; + case ALG_CCMP: + SET_TX_DESC_SEC_TYPE(pdesc, 0x3); + break; + default: + SET_TX_DESC_SEC_TYPE(pdesc, 0x0); + break; + + } +#endif +/**/ + } + + SET_TX_DESC_QUEUE_SEL(pdesc, fw_qsel); + SET_TX_DESC_DATA_RATE_FB_LIMIT(pdesc, 0x1F); + SET_TX_DESC_RTS_RATE_FB_LIMIT(pdesc, 0xF); + SET_TX_DESC_DISABLE_FB(pdesc, ptcb_desc->disable_ratefallback ? 1 : 0); + SET_TX_DESC_USE_RATE(pdesc, ptcb_desc->use_driver_rate ? 1 : 0); + +#if 0 + SET_TX_DESC_USE_RATE(pdesc, 1); + SET_TX_DESC_TX_RATE(pdesc, 0x04); + + SET_TX_DESC_RETRY_LIMIT_ENABLE(pdesc, 1); + SET_TX_DESC_DATA_RETRY_LIMIT(pdesc, 0x3f); +#endif + + /*SET_TX_DESC_PWR_STATUS(pdesc, pwr_status);*/ + /* Set TxRate and RTSRate in TxDesc */ + /* This prevent Tx initial rate of new-coming packets */ + /* from being overwritten by retried packet rate.*/ + if (!ptcb_desc->use_driver_rate) { + /*SET_TX_DESC_RTS_RATE(pdesc, 0x08); */ + /* SET_TX_DESC_TX_RATE(pdesc, 0x0b); */ + } + if (ieee80211_is_data_qos(fc)) { + if (mac->rdg_en) { + RT_TRACE(COMP_SEND, DBG_TRACE, + ("Enable RDG function.\n")); + SET_TX_DESC_RDG_ENABLE(pdesc, 1); + SET_TX_DESC_HTC(pdesc, 1); + } + } + } + + SET_TX_DESC_FIRST_SEG(pdesc, (b_firstseg ? 1 : 0)); + SET_TX_DESC_LAST_SEG(pdesc, (b_lastseg ? 1 : 0)); + SET_TX_DESC_TX_BUFFER_SIZE(pdesc, (u16) buf_len); + SET_TX_DESC_TX_BUFFER_ADDRESS(pdesc, cpu_to_le32(mapping)); + //if (rtlpriv->dm.b_useramask) { + if(1){ + SET_TX_DESC_RATE_ID(pdesc, ptcb_desc->ratr_index); + SET_TX_DESC_MACID(pdesc, ptcb_desc->mac_id); + } else { + SET_TX_DESC_RATE_ID(pdesc, 0xC + ptcb_desc->ratr_index); + SET_TX_DESC_MACID(pdesc, ptcb_desc->mac_id); + } +/* if (ieee80211_is_data_qos(fc)) + SET_TX_DESC_QOS(pdesc, 1); +*/ + if (!ieee80211_is_data_qos(fc)) { + SET_TX_DESC_HWSEQ_EN(pdesc, 1); + SET_TX_DESC_HWSEQ_SEL(pdesc, 0); + } + SET_TX_DESC_MORE_FRAG(pdesc, (b_lastseg ? 0 : 1)); + if (is_multicast_ether_addr(ieee80211_get_DA(hdr)) || + is_broadcast_ether_addr(ieee80211_get_DA(hdr))) { + SET_TX_DESC_BMC(pdesc, 1); + } + + rtl8821ae_dm_set_tx_ant_by_tx_info(hw,pdesc,ptcb_desc->mac_id); + RT_TRACE(COMP_SEND, DBG_TRACE, ("\n")); +} + +void rtl8821ae_tx_fill_cmddesc(struct ieee80211_hw *hw, + u8 *pdesc, bool b_firstseg, + bool b_lastseg, struct sk_buff *skb) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + u8 fw_queue = QSLT_BEACON; + + dma_addr_t mapping = pci_map_single(rtlpci->pdev, + skb->data, skb->len, + PCI_DMA_TODEVICE); + + if (pci_dma_mapping_error(rtlpci->pdev, mapping)) { + RT_TRACE(COMP_SEND, DBG_TRACE, + ("DMA mapping error")); + return; + } + CLEAR_PCI_TX_DESC_CONTENT(pdesc, TX_DESC_SIZE); + + SET_TX_DESC_FIRST_SEG(pdesc, 1); + SET_TX_DESC_LAST_SEG(pdesc, 1); + + SET_TX_DESC_PKT_SIZE((u8 *) pdesc, (u16) (skb->len)); + + SET_TX_DESC_OFFSET(pdesc, USB_HWDESC_HEADER_LEN); + + SET_TX_DESC_USE_RATE(pdesc, 1); + SET_TX_DESC_TX_RATE(pdesc, DESC_RATE1M); + SET_TX_DESC_DISABLE_FB(pdesc, 1); + + SET_TX_DESC_DATA_BW(pdesc, 0); + + SET_TX_DESC_HWSEQ_EN(pdesc, 1); + + SET_TX_DESC_QUEUE_SEL(pdesc, fw_queue); +/* + if(IsCtrlNDPA(VirtualAddress) || IsMgntNDPA(VirtualAddress)) + { + SET_TX_DESC_DATA_RETRY_LIMIT_8812(pDesc, 5); + SET_TX_DESC_RETRY_LIMIT_ENABLE_8812(pDesc, 1); + + if(IsMgntNDPA(VirtualAddress)) + { + SET_TX_DESC_NDPA_8812(pDesc, 1); + SET_TX_DESC_RTS_SC_8812(pDesc, SCMapping_8812(Adapter, pTcb)); + } + else + { + SET_TX_DESC_NDPA_8812(pDesc, 2); + SET_TX_DESC_RTS_SC_8812(pDesc, SCMapping_8812(Adapter, pTcb)); + } + }*/ + + SET_TX_DESC_TX_BUFFER_SIZE(pdesc, (u16) (skb->len)); + + SET_TX_DESC_TX_BUFFER_ADDRESS(pdesc, cpu_to_le32(mapping)); + + SET_TX_DESC_MACID(pdesc, 0); + + SET_TX_DESC_OWN(pdesc, 1); + + RT_PRINT_DATA(rtlpriv, COMP_CMD, DBG_LOUD, + "H2C Tx Cmd Content\n", + pdesc, TX_DESC_SIZE); +} + +void rtl8821ae_set_desc(struct ieee80211_hw * hw, u8 *pdesc, bool istx, u8 desc_name, u8 *val) +{ + if (istx == true) { + switch (desc_name) { + case HW_DESC_OWN: + SET_TX_DESC_OWN(pdesc, 1); + break; + case HW_DESC_TX_NEXTDESC_ADDR: + SET_TX_DESC_NEXT_DESC_ADDRESS(pdesc, *(u32 *) val); + break; + default: + RT_ASSERT(false, ("ERR txdesc :%d" + " not process\n", desc_name)); + break; + } + } else { + switch (desc_name) { + case HW_DESC_RXOWN: + SET_RX_DESC_OWN(pdesc, 1); + break; + case HW_DESC_RXBUFF_ADDR: + SET_RX_DESC_BUFF_ADDR(pdesc, *(u32 *) val); + break; + case HW_DESC_RXPKT_LEN: + SET_RX_DESC_PKT_LEN(pdesc, *(u32 *) val); + break; + case HW_DESC_RXERO: + SET_RX_DESC_EOR(pdesc, 1); + break; + default: + RT_ASSERT(false, ("ERR rxdesc :%d " + "not process\n", desc_name)); + break; + } + } +} + +u32 rtl8821ae_get_desc(u8 *pdesc, bool istx, u8 desc_name) +{ + u32 ret = 0; + + if (istx == true) { + switch (desc_name) { + case HW_DESC_OWN: + ret = GET_TX_DESC_OWN(pdesc); + break; + case HW_DESC_TXBUFF_ADDR: + ret = GET_TX_DESC_TX_BUFFER_ADDRESS(pdesc); + break; + default: + RT_ASSERT(false, ("ERR txdesc :%d " + "not process\n", desc_name)); + break; + } + } else { + switch (desc_name) { + case HW_DESC_OWN: + ret = GET_RX_DESC_OWN(pdesc); + break; + case HW_DESC_RXPKT_LEN: + ret = GET_RX_DESC_PKT_LEN(pdesc); + break; + default: + RT_ASSERT(false, ("ERR rxdesc :%d " + "not process\n", desc_name)); + break; + } + } + return ret; +} + +bool rtl8821ae_is_tx_desc_closed(struct ieee80211_hw *hw, + u8 hw_queue, u16 index) +{ + struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw)); + struct rtl8192_tx_ring *ring = &rtlpci->tx_ring[hw_queue]; + u8 *entry = (u8 *)(&ring->desc[ring->idx]); + u8 own = (u8) rtl8821ae_get_desc(entry, true, HW_DESC_OWN); + + /* + *beacon packet will only use the first + *descriptor defautly,and the own may not + *be cleared by the hardware + */ + if (own) + return false; + else + return true; +} + + +void rtl8821ae_tx_polling(struct ieee80211_hw *hw, u8 hw_queue) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + + if (hw_queue == BEACON_QUEUE) { + rtl_write_word(rtlpriv, REG_PCIE_CTRL_REG, BIT(4)); + } else { + rtl_write_word(rtlpriv, REG_PCIE_CTRL_REG, + BIT(0) << (hw_queue)); + } +} --- linux-3.13.0.orig/drivers/staging/rtl8821ae/rtl8821ae/trx.h +++ linux-3.13.0/drivers/staging/rtl8821ae/rtl8821ae/trx.h @@ -0,0 +1,641 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL8821AE_TRX_H__ +#define __RTL8821AE_TRX_H__ + +#define TX_DESC_SIZE 40 +#define TX_DESC_AGGR_SUBFRAME_SIZE 32 + +#define RX_DESC_SIZE 32 +#define RX_DRV_INFO_SIZE_UNIT 8 + +#define TX_DESC_NEXT_DESC_OFFSET 40 +#define USB_HWDESC_HEADER_LEN 40 +#define CRCLENGTH 4 + +#define SET_TX_DESC_PKT_SIZE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 0, 16, __val) +#define SET_TX_DESC_OFFSET(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 16, 8, __val) +#define SET_TX_DESC_BMC(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 24, 1, __val) +#define SET_TX_DESC_HTC(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 25, 1, __val) +#define SET_TX_DESC_LAST_SEG(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 26, 1, __val) +#define SET_TX_DESC_FIRST_SEG(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 27, 1, __val) +#define SET_TX_DESC_LINIP(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 28, 1, __val) +#define SET_TX_DESC_NO_ACM(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 29, 1, __val) +#define SET_TX_DESC_GF(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 30, 1, __val) +#define SET_TX_DESC_OWN(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 31, 1, __val) + +#define GET_TX_DESC_PKT_SIZE(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 0, 16) +#define GET_TX_DESC_OFFSET(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 16, 8) +#define GET_TX_DESC_BMC(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 24, 1) +#define GET_TX_DESC_HTC(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 25, 1) +#define GET_TX_DESC_LAST_SEG(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 26, 1) +#define GET_TX_DESC_FIRST_SEG(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 27, 1) +#define GET_TX_DESC_LINIP(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 28, 1) +#define GET_TX_DESC_NO_ACM(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 29, 1) +#define GET_TX_DESC_GF(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 30, 1) +#define GET_TX_DESC_OWN(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 31, 1) + +#define SET_TX_DESC_MACID(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+4, 0, 7, __val) +#define SET_TX_DESC_QUEUE_SEL(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+4, 8, 5, __val) +#define SET_TX_DESC_RDG_NAV_EXT(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+4, 13, 1, __val) +#define SET_TX_DESC_LSIG_TXOP_EN(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+4, 14, 1, __val) +#define SET_TX_DESC_PIFS(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+4, 15, 1, __val) +#define SET_TX_DESC_RATE_ID(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+4, 16, 5, __val) +#define SET_TX_DESC_EN_DESC_ID(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+4, 21, 1, __val) +#define SET_TX_DESC_SEC_TYPE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+4, 22, 2, __val) +#define SET_TX_DESC_PKT_OFFSET(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+4, 24, 5, __val) + + +#define SET_TX_DESC_PAID(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 0, 9, __val) +#define SET_TX_DESC_CCA_RTS(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 10, 2, __val) +#define SET_TX_DESC_AGG_ENABLE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 12, 1, __val) +#define SET_TX_DESC_RDG_ENABLE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 13, 1, __val) +#define SET_TX_DESC_BAR_RTY_TH(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 14, 2, __val) +#define SET_TX_DESC_AGG_BREAK(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 16, 1, __val) +#define SET_TX_DESC_MORE_FRAG(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 17, 1, __val) +#define SET_TX_DESC_RAW(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 18, 1, __val) +#define SET_TX_DESC_SPE_RPT(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 19, 1, __val) +#define SET_TX_DESC_AMPDU_DENSITY(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 20, 3, __val) +#define SET_TX_DESC_BT_INT(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 23, 1, __val) +#define SET_TX_DESC_GID(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+8, 24, 6, __val) + + +#define SET_TX_DESC_WHEADER_LEN(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 0, 4, __val) +#define SET_TX_DESC_CHK_EN(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 4, 1, __val) +#define SET_TX_DESC_EARLY_MODE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 5, 1, __val) +#define SET_TX_DESC_HWSEQ_SEL(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 6, 2, __val) +#define SET_TX_DESC_USE_RATE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 8, 1, __val) +#define SET_TX_DESC_DISABLE_RTS_FB(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 9, 1, __val) +#define SET_TX_DESC_DISABLE_FB(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 10, 1, __val) +#define SET_TX_DESC_CTS2SELF(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 11, 1, __val) +#define SET_TX_DESC_RTS_ENABLE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 12, 1, __val) +#define SET_TX_DESC_HW_RTS_ENABLE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 13, 1, __val) +#define SET_TX_DESC_NAV_USE_HDR(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 15, 1, __val) +#define SET_TX_DESC_USE_MAX_LEN(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 16, 1, __val) +#define SET_TX_DESC_MAX_AGG_NUM(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 17, 5, __val) +#define SET_TX_DESC_NDPA(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 22, 2, __val) +#define SET_TX_DESC_AMPDU_MAX_TIME(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+12, 24, 8, __val) +#define SET_TX_DESC_TX_ANT(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+20, 24, 4, __val) + +#define SET_TX_DESC_TX_RATE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+16, 0, 7, __val) +#define SET_TX_DESC_DATA_RATE_FB_LIMIT(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+16, 8, 5, __val) +#define SET_TX_DESC_RTS_RATE_FB_LIMIT(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+16, 13, 4, __val) +#define SET_TX_DESC_RETRY_LIMIT_ENABLE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+16, 17, 1, __val) +#define SET_TX_DESC_DATA_RETRY_LIMIT(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+16, 18, 6, __val) +#define SET_TX_DESC_RTS_RATE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+16, 24, 5, __val) + + +#define SET_TX_DESC_TX_SUB_CARRIER(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+20, 0, 4, __val) +#define SET_TX_DESC_DATA_SHORTGI(__pdesc, __val) \ + SET_BITS_TO_LE_1BYTE(__pdesc+20, 6, 1, __val) +#define SET_TX_DESC_DATA_BW(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+20, 5, 2, __val) +#define SET_TX_DESC_DATA_LDPC(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+20, 7, 1, __val) +#define SET_TX_DESC_DATA_STBC(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+20, 8, 2, __val) +#define SET_TX_DESC_CTROL_STBC(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+20, 10, 2, __val) +#define SET_TX_DESC_RTS_SHORT(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+20, 12, 1, __val) +#define SET_TX_DESC_RTS_SC(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+20, 13, 4, __val) + + +#define SET_TX_DESC_TX_BUFFER_SIZE(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+28, 0, 16, __val) + +#define GET_TX_DESC_TX_BUFFER_SIZE(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+28, 0, 16) + +#define SET_TX_DESC_HWSEQ_EN(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+32, 15, 1, __val) + +#define SET_TX_DESC_SEQ(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+36, 12, 12, __val) + +#define SET_TX_DESC_TX_BUFFER_ADDRESS(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+40, 0, 32, __val) + +#define GET_TX_DESC_TX_BUFFER_ADDRESS(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+40, 0, 32) + + +#define SET_TX_DESC_NEXT_DESC_ADDRESS(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+48, 0, 32, __val) + +#define GET_TX_DESC_NEXT_DESC_ADDRESS(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+48, 0, 32) + +#define GET_RX_DESC_PKT_LEN(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 0, 14) +#define GET_RX_DESC_CRC32(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 14, 1) +#define GET_RX_DESC_ICV(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 15, 1) +#define GET_RX_DESC_DRV_INFO_SIZE(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 16, 4) +#define GET_RX_DESC_SECURITY(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 20, 3) +#define GET_RX_DESC_QOS(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 23, 1) +#define GET_RX_DESC_SHIFT(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 24, 2) +#define GET_RX_DESC_PHYST(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 26, 1) +#define GET_RX_DESC_SWDEC(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 27, 1) +#define GET_RX_DESC_LS(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 28, 1) +#define GET_RX_DESC_FS(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 29, 1) +#define GET_RX_DESC_EOR(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 30, 1) +#define GET_RX_DESC_OWN(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc, 31, 1) + +#define SET_RX_DESC_PKT_LEN(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 0, 14, __val) +#define SET_RX_DESC_EOR(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 30, 1, __val) +#define SET_RX_DESC_OWN(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc, 31, 1, __val) + +#define GET_RX_DESC_MACID(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 0, 7) +#define GET_RX_DESC_TID(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 8, 4) +#define GET_RX_DESC_AMSDU(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 13, 1) +#define GET_RX_STATUS_DESC_RXID_MATCH(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 14, 1) +#define GET_RX_DESC_PAGGR(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 15, 1) +#define GET_RX_DESC_A1_FIT(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 16, 4) +#define GET_RX_DESC_CHKERR(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 20, 1) +#define GET_RX_DESC_IPVER(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 21, 1) +#define GET_RX_STATUS_DESC_IS_TCPUDP(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 22, 1) +#define GET_RX_STATUS_DESC_CHK_VLD(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 23, 1) +#define GET_RX_DESC_PAM(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 24, 1) +#define GET_RX_DESC_PWR(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 25, 1) +#define GET_RX_DESC_MD(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 26, 1) +#define GET_RX_DESC_MF(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 27, 1) +#define GET_RX_DESC_TYPE(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 28, 2) +#define GET_RX_DESC_MC(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 30, 1) +#define GET_RX_DESC_BC(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+4, 31, 1) + + +#define GET_RX_DESC_SEQ(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+8, 0, 12) +#define GET_RX_DESC_FRAG(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+8, 12, 4) +#define GET_RX_STATUS_DESC_RX_IS_QOS(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+8, 16, 1) +#define GET_RX_STATUS_DESC_WLANHD_IV_LEN(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+8, 18, 6) +#define GET_RX_STATUS_DESC_RPT_SEL(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+8, 28, 1) + + +#define GET_RX_DESC_RXMCS(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+12, 0, 7) +#define GET_RX_DESC_RXHT(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+12, 6, 1) +#define GET_RX_STATUS_DESC_RX_GF(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+12, 7, 1) +#define GET_RX_DESC_HTC(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+12, 10, 1) +#define GET_RX_STATUS_DESC_EOSP(__pdesc) \ + LE_BITS_TO_4BYTE( __pdesc+12, 11, 1) +#define GET_RX_STATUS_DESC_BSSID_FIT(__pdesc) \ + LE_BITS_TO_4BYTE( __pdesc+12, 12, 2) + +#define GET_RX_STATUS_DESC_PATTERN_MATCH(__pdesc) \ + LE_BITS_TO_4BYTE( __pdesc+12, 29, 1) +#define GET_RX_STATUS_DESC_UNICAST_MATCH(__pdesc) \ + LE_BITS_TO_4BYTE( __pdesc+12, 30, 1) +#define GET_RX_STATUS_DESC_MAGIC_MATCH(__pdesc) \ + LE_BITS_TO_4BYTE( __pdesc+12, 31, 1) + +#define GET_RX_DESC_SPLCP(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+16, 0, 1) +#define GET_RX_STATUS_DESC_LDPC(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+16, 1, 1) +#define GET_RX_STATUS_DESC_STBC(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+16, 2, 1) +#define GET_RX_DESC_BW(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+16, 4, 2) + +#define GET_RX_DESC_TSFL(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+20, 0, 32) + +#define GET_RX_DESC_BUFF_ADDR(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+24, 0, 32) +#define GET_RX_DESC_BUFF_ADDR64(__pdesc) \ + LE_BITS_TO_4BYTE(__pdesc+28, 0, 32) + +#define SET_RX_DESC_BUFF_ADDR(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+24, 0, 32, __val) +#define SET_RX_DESC_BUFF_ADDR64(__pdesc, __val) \ + SET_BITS_TO_LE_4BYTE(__pdesc+28, 0, 32, __val) + + +/* TX report 2 format in Rx desc*/ + +#define GET_RX_RPT2_DESC_PKT_LEN(__pRxStatusDesc) \ + LE_BITS_TO_4BYTE( __pRxStatusDesc, 0, 9) +#define GET_RX_RPT2_DESC_MACID_VALID_1(__pRxStatusDesc) \ + LE_BITS_TO_4BYTE( __pRxStatusDesc+16, 0, 32) +#define GET_RX_RPT2_DESC_MACID_VALID_2(__pRxStatusDesc) \ + LE_BITS_TO_4BYTE( __pRxStatusDesc+20, 0, 32) + +#define SET_EARLYMODE_PKTNUM(__paddr, __value) \ + SET_BITS_TO_LE_4BYTE(__paddr, 0, 4, __value) +#define SET_EARLYMODE_LEN0(__paddr, __value) \ + SET_BITS_TO_LE_4BYTE(__paddr, 4, 12, __value) +#define SET_EARLYMODE_LEN1(__paddr, __value) \ + SET_BITS_TO_LE_4BYTE(__paddr, 16, 12, __value) +#define SET_EARLYMODE_LEN2_1(__paddr, __value) \ + SET_BITS_TO_LE_4BYTE(__paddr, 28, 4, __value) +#define SET_EARLYMODE_LEN2_2(__paddr, __value) \ + SET_BITS_TO_LE_4BYTE(__paddr+4, 0, 8, __value) +#define SET_EARLYMODE_LEN3(__paddr, __value) \ + SET_BITS_TO_LE_4BYTE(__paddr+4, 8, 12, __value) +#define SET_EARLYMODE_LEN4(__paddr, __value) \ + SET_BITS_TO_LE_4BYTE(__paddr+4, 20, 12, __value) + +#define CLEAR_PCI_TX_DESC_CONTENT(__pdesc, _size) \ +do { \ + if(_size > TX_DESC_NEXT_DESC_OFFSET) \ + memset(__pdesc, 0, TX_DESC_NEXT_DESC_OFFSET); \ + else \ + memset(__pdesc, 0, _size); \ +} while (0); + +#define RX_HAL_IS_CCK_RATE(rxmcs)\ + (rxmcs == DESC_RATE1M ||\ + rxmcs == DESC_RATE2M ||\ + rxmcs == DESC_RATE5_5M ||\ + rxmcs == DESC_RATE11M) + +#define IS_LITTLE_ENDIAN 1 + +struct phy_rx_agc_info_t { + #if IS_LITTLE_ENDIAN + u8 gain:7,trsw:1; + #else + u8 trsw:1,gain:7; + #endif +}; +struct phy_status_rpt{ + struct phy_rx_agc_info_t path_agc[2]; + u8 ch_corr[2]; + u8 cck_sig_qual_ofdm_pwdb_all; + u8 cck_agc_rpt_ofdm_cfosho_a; + u8 cck_rpt_b_ofdm_cfosho_b; + u8 rsvd_1;//ch_corr_msb; + u8 noise_power_db_msb; + u8 path_cfotail[2]; + u8 pcts_mask[2]; + u8 stream_rxevm[2]; + u8 path_rxsnr[2]; + u8 noise_power_db_lsb; + u8 rsvd_2[3]; + u8 stream_csi[2]; + u8 stream_target_csi[2]; + u8 sig_evm; + u8 rsvd_3; +#if IS_LITTLE_ENDIAN + u8 antsel_rx_keep_2:1; /*ex_intf_flg:1;*/ + u8 sgi_en:1; + u8 rxsc:2; + u8 idle_long:1; + u8 r_ant_train_en:1; + u8 ant_sel_b:1; + u8 ant_sel:1; +#else /* _BIG_ENDIAN_ */ + u8 ant_sel:1; + u8 ant_sel_b:1; + u8 r_ant_train_en:1; + u8 idle_long:1; + u8 rxsc:2; + u8 sgi_en:1; + u8 antsel_rx_keep_2:1; /*ex_intf_flg:1;*/ +#endif +}__packed; + +struct rx_fwinfo_8821ae { + u8 gain_trsw[4]; + u8 pwdb_all; + u8 cfosho[4]; + u8 cfotail[4]; + char rxevm[2]; + char rxsnr[4]; + u8 pdsnr[2]; + u8 csi_current[2]; + u8 csi_target[2]; + u8 sigevm; + u8 max_ex_pwr; + u8 ex_intf_flag:1; + u8 sgi_en:1; + u8 rxsc:2; + u8 reserve:4; +} __packed; + +struct tx_desc_8821ae { + u32 pktsize:16; + u32 offset:8; + u32 bmc:1; + u32 htc:1; + u32 lastseg:1; + u32 firstseg:1; + u32 linip:1; + u32 noacm:1; + u32 gf:1; + u32 own:1; + + u32 macid:6; + u32 rsvd0:2; + u32 queuesel:5; + u32 rd_nav_ext:1; + u32 lsig_txop_en:1; + u32 pifs:1; + u32 rateid:4; + u32 nav_usehdr:1; + u32 en_descid:1; + u32 sectype:2; + u32 pktoffset:8; + + u32 rts_rc:6; + u32 data_rc:6; + u32 agg_en:1; + u32 rdg_en:1; + u32 bar_retryht:2; + u32 agg_break:1; + u32 morefrag:1; + u32 raw:1; + u32 ccx:1; + u32 ampdudensity:3; + u32 bt_int:1; + u32 ant_sela:1; + u32 ant_selb:1; + u32 txant_cck:2; + u32 txant_l:2; + u32 txant_ht:2; + + u32 nextheadpage:8; + u32 tailpage:8; + u32 seq:12; + u32 cpu_handle:1; + u32 tag1:1; + u32 trigger_int:1; + u32 hwseq_en:1; + + u32 rtsrate:5; + u32 apdcfe:1; + u32 qos:1; + u32 hwseq_ssn:1; + u32 userrate:1; + u32 dis_rtsfb:1; + u32 dis_datafb:1; + u32 cts2self:1; + u32 rts_en:1; + u32 hwrts_en:1; + u32 portid:1; + u32 pwr_status:3; + u32 waitdcts:1; + u32 cts2ap_en:1; + u32 txsc:2; + u32 stbc:2; + u32 txshort:1; + u32 txbw:1; + u32 rtsshort:1; + u32 rtsbw:1; + u32 rtssc:2; + u32 rtsstbc:2; + + u32 txrate:6; + u32 shortgi:1; + u32 ccxt:1; + u32 txrate_fb_lmt:5; + u32 rtsrate_fb_lmt:4; + u32 retrylmt_en:1; + u32 txretrylmt:6; + u32 usb_txaggnum:8; + + u32 txagca:5; + u32 txagcb:5; + u32 usemaxlen:1; + u32 maxaggnum:5; + u32 mcsg1maxlen:4; + u32 mcsg2maxlen:4; + u32 mcsg3maxlen:4; + u32 mcs7sgimaxlen:4; + + u32 txbuffersize:16; + u32 sw_offset30:8; + u32 sw_offset31:4; + u32 rsvd1:1; + u32 antsel_c:1; + u32 null_0:1; + u32 null_1:1; + + u32 txbuffaddr; + u32 txbufferaddr64; + u32 nextdescaddress; + u32 nextdescaddress64; + + u32 reserve_pass_pcie_mm_limit[4]; +} __packed; + +struct rx_desc_8821ae { + u32 length:14; + u32 crc32:1; + u32 icverror:1; + u32 drv_infosize:4; + u32 security:3; + u32 qos:1; + u32 shift:2; + u32 phystatus:1; + u32 swdec:1; + u32 lastseg:1; + u32 firstseg:1; + u32 eor:1; + u32 own:1; + + u32 macid:6; + u32 tid:4; + u32 hwrsvd:5; + u32 paggr:1; + u32 faggr:1; + u32 a1_fit:4; + u32 a2_fit:4; + u32 pam:1; + u32 pwr:1; + u32 moredata:1; + u32 morefrag:1; + u32 type:2; + u32 mc:1; + u32 bc:1; + + u32 seq:12; + u32 frag:4; + u32 nextpktlen:14; + u32 nextind:1; + u32 rsvd:1; + + u32 rxmcs:6; + u32 rxht:1; + u32 amsdu:1; + u32 splcp:1; + u32 bandwidth:1; + u32 htc:1; + u32 tcpchk_rpt:1; + u32 ipcchk_rpt:1; + u32 tcpchk_valid:1; + u32 hwpcerr:1; + u32 hwpcind:1; + u32 iv0:16; + + u32 iv1; + + u32 tsfl; + + u32 bufferaddress; + u32 bufferaddress64; + +} __packed; + +/**/ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) +void rtl8821ae_tx_fill_desc(struct ieee80211_hw *hw, + struct ieee80211_hdr *hdr, u8 *pdesc_tx, u8 *txbd, + struct ieee80211_tx_info *info, struct sk_buff *skb, + u8 hw_queue, struct rtl_tcb_desc *ptcb_desc); +#else +/**/ +void rtl8821ae_tx_fill_desc(struct ieee80211_hw *hw, + struct ieee80211_hdr *hdr, u8 *pdesc_tx, u8 *txbd, + struct ieee80211_tx_info *info, + struct ieee80211_sta *sta, + struct sk_buff *skb, + u8 hw_queue, struct rtl_tcb_desc *ptcb_desc); +/**/ +#endif +/**/ +bool rtl8821ae_rx_query_desc(struct ieee80211_hw *hw, + struct rtl_stats *status, + struct ieee80211_rx_status *rx_status, + u8 *pdesc, struct sk_buff *skb); +void rtl8821ae_set_desc(struct ieee80211_hw * hw, u8 *pdesc, bool istx, u8 desc_name, u8 *val); +u32 rtl8821ae_get_desc(u8 *pdesc, bool istx, u8 desc_name); +bool rtl8821ae_is_tx_desc_closed(struct ieee80211_hw *hw, + u8 hw_queue, u16 index); +void rtl8821ae_tx_polling(struct ieee80211_hw *hw, u8 hw_queue); +void rtl8821ae_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc, + bool b_firstseg, bool b_lastseg, + struct sk_buff *skb); +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/stats.c +++ linux-3.13.0/drivers/staging/rtl8821ae/stats.c @@ -0,0 +1,283 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ +#include "wifi.h" +#include "stats.h" +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +#include +#endif + +u8 rtl_query_rxpwrpercentage(char antpower) +{ + if ((antpower <= -100) || (antpower >= 20)) + return 0; + else if (antpower >= 0) + return 100; + else + return (100 + antpower); +} +//EXPORT_SYMBOL(rtl_query_rxpwrpercentage); + +u8 rtl_evm_db_to_percentage(char value) +{ + char ret_val; + ret_val = value; + + if (ret_val >= 0) + ret_val = 0; + if (ret_val <= -33) + ret_val = -33; + ret_val = 0 - ret_val; + ret_val *= 3; + if (ret_val == 99) + ret_val = 100; + + return ret_val; +} +//EXPORT_SYMBOL(rtl_evm_db_to_percentage); + +long rtl_translate_todbm(struct ieee80211_hw *hw, + u8 signal_strength_index) +{ + long signal_power; + + signal_power = (long)((signal_strength_index + 1) >> 1); + signal_power -= 95; + return signal_power; +} + +long rtl_signal_scale_mapping(struct ieee80211_hw *hw, long currsig) +{ + long retsig; + + if (currsig >= 61 && currsig <= 100) + retsig = 90 + ((currsig - 60) / 4); + else if (currsig >= 41 && currsig <= 60) + retsig = 78 + ((currsig - 40) / 2); + else if (currsig >= 31 && currsig <= 40) + retsig = 66 + (currsig - 30); + else if (currsig >= 21 && currsig <= 30) + retsig = 54 + (currsig - 20); + else if (currsig >= 5 && currsig <= 20) + retsig = 42 + (((currsig - 5) * 2) / 3); + else if (currsig == 4) + retsig = 36; + else if (currsig == 3) + retsig = 27; + else if (currsig == 2) + retsig = 18; + else if (currsig == 1) + retsig = 9; + else + retsig = currsig; + + return retsig; +} +//EXPORT_SYMBOL(rtl_signal_scale_mapping); + +void rtl_process_ui_rssi(struct ieee80211_hw *hw, struct rtl_stats *pstatus) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_phy *rtlphy = &(rtlpriv->phy); + u8 rfpath; + u32 last_rssi, tmpval; + + if (!pstatus->b_packet_toself && !pstatus->b_packet_beacon) + return; + + rtlpriv->stats.pwdb_all_cnt += pstatus->rx_pwdb_all; + rtlpriv->stats.rssi_calculate_cnt++; + + if (rtlpriv->stats.ui_rssi.total_num++ >= PHY_RSSI_SLID_WIN_MAX) { + rtlpriv->stats.ui_rssi.total_num = PHY_RSSI_SLID_WIN_MAX; + last_rssi = rtlpriv->stats.ui_rssi.elements[ + rtlpriv->stats.ui_rssi.index]; + rtlpriv->stats.ui_rssi.total_val -= last_rssi; + } + rtlpriv->stats.ui_rssi.total_val += pstatus->signalstrength; + rtlpriv->stats.ui_rssi.elements[rtlpriv->stats.ui_rssi.index++] = + pstatus->signalstrength; + if (rtlpriv->stats.ui_rssi.index >= PHY_RSSI_SLID_WIN_MAX) + rtlpriv->stats.ui_rssi.index = 0; + tmpval = rtlpriv->stats.ui_rssi.total_val / + rtlpriv->stats.ui_rssi.total_num; + rtlpriv->stats.signal_strength = rtl_translate_todbm(hw, + (u8) tmpval); + pstatus->rssi = rtlpriv->stats.signal_strength; + + if (pstatus->b_is_cck) + return; + + for (rfpath = RF90_PATH_A; rfpath < rtlphy->num_total_rfpath; + rfpath++) { + if (rtlpriv->stats.rx_rssi_percentage[rfpath] == 0) { + rtlpriv->stats.rx_rssi_percentage[rfpath] = + pstatus->rx_mimo_signalstrength[rfpath]; + + } + if (pstatus->rx_mimo_signalstrength[rfpath] > + rtlpriv->stats.rx_rssi_percentage[rfpath]) { + rtlpriv->stats.rx_rssi_percentage[rfpath] = + ((rtlpriv->stats.rx_rssi_percentage[rfpath] * + (RX_SMOOTH_FACTOR - 1)) + + (pstatus->rx_mimo_signalstrength[rfpath])) / + (RX_SMOOTH_FACTOR); + rtlpriv->stats.rx_rssi_percentage[rfpath] = + rtlpriv->stats.rx_rssi_percentage[rfpath] + 1; + } else { + rtlpriv->stats.rx_rssi_percentage[rfpath] = + ((rtlpriv->stats.rx_rssi_percentage[rfpath] * + (RX_SMOOTH_FACTOR - 1)) + + (pstatus->rx_mimo_signalstrength[rfpath])) / + (RX_SMOOTH_FACTOR); + } + rtlpriv->stats.rx_snr_db[rfpath] = pstatus->rx_snr[rfpath]; + rtlpriv->stats.rx_evm_dbm[rfpath] = + pstatus->rx_mimo_evm_dbm[rfpath]; + rtlpriv->stats.rx_cfo_short[rfpath] = + pstatus->cfo_short[rfpath]; + rtlpriv->stats.rx_cfo_tail[rfpath] = pstatus->cfo_tail[rfpath]; + } +} + +static void rtl_update_rxsignalstatistics(struct ieee80211_hw *hw, + struct rtl_stats *pstatus) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + int weighting = 0; + + if (rtlpriv->stats.recv_signal_power == 0) + rtlpriv->stats.recv_signal_power = pstatus->recvsignalpower; + if (pstatus->recvsignalpower > rtlpriv->stats.recv_signal_power) + weighting = 5; + else if (pstatus->recvsignalpower < rtlpriv->stats.recv_signal_power) + weighting = (-5); + rtlpriv->stats.recv_signal_power = (rtlpriv->stats.recv_signal_power * + 5 + pstatus->recvsignalpower + weighting) / 6; +} + +static void rtl_process_pwdb(struct ieee80211_hw *hw, struct rtl_stats *pstatus) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + struct rtl_sta_info *drv_priv = NULL; + struct ieee80211_sta *sta = NULL; + long undecorated_smoothed_pwdb; + + rcu_read_lock(); + if (rtlpriv->mac80211.opmode != NL80211_IFTYPE_STATION) + sta = rtl_find_sta(hw, pstatus->psaddr); + + /* adhoc or ap mode */ + if (sta) { + drv_priv = (struct rtl_sta_info *) sta->drv_priv; + undecorated_smoothed_pwdb = + drv_priv->rssi_stat.undecorated_smoothed_pwdb; + } else { + undecorated_smoothed_pwdb = + rtlpriv->dm.undecorated_smoothed_pwdb; + } + + if (undecorated_smoothed_pwdb < 0) + undecorated_smoothed_pwdb = pstatus->rx_pwdb_all; + if (pstatus->rx_pwdb_all > (u32) undecorated_smoothed_pwdb) { + undecorated_smoothed_pwdb = (((undecorated_smoothed_pwdb) * + (RX_SMOOTH_FACTOR - 1)) + + (pstatus->rx_pwdb_all)) / (RX_SMOOTH_FACTOR); + undecorated_smoothed_pwdb = undecorated_smoothed_pwdb + 1; + } else { + undecorated_smoothed_pwdb = (((undecorated_smoothed_pwdb) * + (RX_SMOOTH_FACTOR - 1)) + + (pstatus->rx_pwdb_all)) / (RX_SMOOTH_FACTOR); + } + + if(sta) { + drv_priv->rssi_stat.undecorated_smoothed_pwdb = + undecorated_smoothed_pwdb; + } else { + rtlpriv->dm.undecorated_smoothed_pwdb = undecorated_smoothed_pwdb; + } + rcu_read_unlock(); + + rtl_update_rxsignalstatistics(hw, pstatus); +} + +static void rtl_process_ui_link_quality(struct ieee80211_hw *hw, + struct rtl_stats *pstatus) +{ + struct rtl_priv *rtlpriv = rtl_priv(hw); + u32 last_evm, n_stream, tmpval; + + if (pstatus->signalquality == 0) + return; + + if (rtlpriv->stats.ui_link_quality.total_num++ >= + PHY_LINKQUALITY_SLID_WIN_MAX) { + rtlpriv->stats.ui_link_quality.total_num = + PHY_LINKQUALITY_SLID_WIN_MAX; + last_evm = rtlpriv->stats.ui_link_quality.elements[ + rtlpriv->stats.ui_link_quality.index]; + rtlpriv->stats.ui_link_quality.total_val -= last_evm; + } + rtlpriv->stats.ui_link_quality.total_val += pstatus->signalquality; + rtlpriv->stats.ui_link_quality.elements[ + rtlpriv->stats.ui_link_quality.index++] = + pstatus->signalquality; + if (rtlpriv->stats.ui_link_quality.index >= + PHY_LINKQUALITY_SLID_WIN_MAX) + rtlpriv->stats.ui_link_quality.index = 0; + tmpval = rtlpriv->stats.ui_link_quality.total_val / + rtlpriv->stats.ui_link_quality.total_num; + rtlpriv->stats.signal_quality = tmpval; + rtlpriv->stats.last_sigstrength_inpercent = tmpval; + for (n_stream = 0; n_stream < 2; n_stream++) { + if (pstatus->rx_mimo_signalquality[n_stream] != -1) { + if (rtlpriv->stats.rx_evm_percentage[n_stream] == 0) { + rtlpriv->stats.rx_evm_percentage[n_stream] = + pstatus->rx_mimo_signalquality[n_stream]; + } + rtlpriv->stats.rx_evm_percentage[n_stream] = + ((rtlpriv->stats.rx_evm_percentage[n_stream] + * (RX_SMOOTH_FACTOR - 1)) + + (pstatus->rx_mimo_signalquality[n_stream] * 1)) / + (RX_SMOOTH_FACTOR); + } + } +} + +void rtl_process_phyinfo(struct ieee80211_hw *hw, u8 *buffer, + struct rtl_stats *pstatus) +{ + + if (!pstatus->b_packet_matchbssid) + return; + + rtl_process_ui_rssi(hw, pstatus); + rtl_process_pwdb(hw, pstatus); + rtl_process_ui_link_quality(hw, pstatus); +} +//EXPORT_SYMBOL(rtl_process_phyinfo); --- linux-3.13.0.orig/drivers/staging/rtl8821ae/stats.h +++ linux-3.13.0/drivers/staging/rtl8821ae/stats.h @@ -0,0 +1,46 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL_STATS_H__ +#define __RTL_STATS_H__ + +#define PHY_RSSI_SLID_WIN_MAX 100 +#define PHY_LINKQUALITY_SLID_WIN_MAX 20 +#define PHY_BEACON_RSSI_SLID_WIN_MAX 10 + +/* Rx smooth factor */ +#define RX_SMOOTH_FACTOR 20 + +u8 rtl_query_rxpwrpercentage(char antpower); +u8 rtl_evm_db_to_percentage(char value); +long rtl_signal_scale_mapping(struct ieee80211_hw *hw, long currsig); +void rtl_process_phyinfo(struct ieee80211_hw *hw, u8 *buffer, + struct rtl_stats *pstatus); + +#endif --- linux-3.13.0.orig/drivers/staging/rtl8821ae/wifi.h +++ linux-3.13.0/drivers/staging/rtl8821ae/wifi.h @@ -0,0 +1,2532 @@ +/****************************************************************************** + * + * Copyright(c) 2009-2010 Realtek Corporation. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of version 2 of the GNU General Public License as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA + * + * The full GNU General Public License is included in this distribution in the + * file called LICENSE. + * + * Contact Information: + * wlanfae + * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, + * Hsinchu 300, Taiwan. + * + * Larry Finger + * + *****************************************************************************/ + +#ifndef __RTL_WIFI_H__ +#define __RTL_WIFI_H__ + +#include +#include +#include +#include +#include +#include +#include "debug.h" + + +#define RF_CHANGE_BY_INIT 0 +#define RF_CHANGE_BY_IPS BIT(28) +#define RF_CHANGE_BY_PS BIT(29) +#define RF_CHANGE_BY_HW BIT(30) +#define RF_CHANGE_BY_SW BIT(31) + +#define IQK_ADDA_REG_NUM 16 +#define IQK_MAC_REG_NUM 4 +#define IQK_THRESHOLD 8 + +#define MAX_KEY_LEN 61 +#define KEY_BUF_SIZE 5 + +/* QoS related. */ +/*aci: 0x00 Best Effort*/ +/*aci: 0x01 Background*/ +/*aci: 0x10 Video*/ +/*aci: 0x11 Voice*/ +/*Max: define total number.*/ +#define AC0_BE 0 +#define AC1_BK 1 +#define AC2_VI 2 +#define AC3_VO 3 +#define AC_MAX 4 +#define QOS_QUEUE_NUM 4 +#define RTL_MAC80211_NUM_QUEUE 5 + +#define QBSS_LOAD_SIZE 5 +#define MAX_WMMELE_LENGTH 64 + +#define TOTAL_CAM_ENTRY 32 + +/*slot time for 11g. */ +#define RTL_SLOT_TIME_9 9 +#define RTL_SLOT_TIME_20 20 + +/*related with tcp/ip. */ +/*if_ehther.h*/ +#define ETH_P_PAE 0x888E /*Port Access Entity + *(IEEE 802.1X) */ +#define ETH_P_IP 0x0800 /*Internet Protocol packet */ +#define ETH_P_ARP 0x0806 /*Address Resolution packet */ +#define SNAP_SIZE 6 +#define PROTOC_TYPE_SIZE 2 + +/*related with 802.11 frame*/ +#define MAC80211_3ADDR_LEN 24 +#define MAC80211_4ADDR_LEN 30 + +#define CHANNEL_MAX_NUMBER (14 + 24 + 21) /* 14 is the max + * channel number */ +#define CHANNEL_MAX_NUMBER_2G 14 +#define CHANNEL_MAX_NUMBER_5G 54 /* Please refer to + *"phy_GetChnlGroup8812A" and + * "Hal_ReadTxPowerInfo8812A"*/ +#define CHANNEL_MAX_NUMBER_5G_80M 7 +#define CHANNEL_GROUP_MAX (3 + 9) /* ch1~3, ch4~9, ch10~14 + * total three groups */ +#define MAX_PG_GROUP 13 +#define CHANNEL_GROUP_MAX_2G 3 +#define CHANNEL_GROUP_IDX_5GL 3 +#define CHANNEL_GROUP_IDX_5GM 6 +#define CHANNEL_GROUP_IDX_5GH 9 +#define CHANNEL_GROUP_MAX_5G 9 +#define CHANNEL_MAX_NUMBER_2G 14 +#define AVG_THERMAL_NUM 8 +#define AVG_THERMAL_NUM_92E 4 +#define AVG_THERMAL_NUM_88E 4 +#define AVG_THERMAL_NUM_8723BE 4 +#define MAX_TID_COUNT 9 +#define MAX_NUM_RATES 264 + +/*for 88E use*/ +/*It must always set to 4, otherwise read efuse table secquence will be wrong.*/ +#define MAX_TX_COUNT 4 +#define MAX_RF_PATH 4 +#define MAX_CHNL_GROUP_24G 6 +#define MAX_CHNL_GROUP_5G 14 + +/* BK, BE, VI, VO, HCCA, MANAGEMENT, COMMAND, HIGH, BEACON. */ +#define MAX_TX_QUEUE 9 + +#define TX_PWR_BY_RATE_NUM_BAND 2 +#define TX_PWR_BY_RATE_NUM_RF 4 +#define TX_PWR_BY_RATE_NUM_SECTION 12 +#define MAX_BASE_NUM_IN_PHY_REG_PG_24G 6 +#define MAX_BASE_NUM_IN_PHY_REG_PG_5G 5 + +#define DELTA_SWINGIDX_SIZE 30 +#define BAND_NUM 3 +/*Now, it's just for 8192ee + *not OK yet, keep it 0*/ +#define DMA_IS_64BIT 0 +#define RTL8192EE_SEG_NUM 1 /* 0:2 seg, 1: 4 seg, 2: 8 seg */ + +struct txpower_info_2g { + u8 index_cck_base[MAX_RF_PATH][MAX_CHNL_GROUP_24G]; + u8 index_bw40_base[MAX_RF_PATH][MAX_CHNL_GROUP_24G]; + /*If only one tx, only BW20 and OFDM are used.*/ + u8 cck_diff[MAX_RF_PATH][MAX_TX_COUNT]; + u8 ofdm_diff[MAX_RF_PATH][MAX_TX_COUNT]; + u8 bw20_diff[MAX_RF_PATH][MAX_TX_COUNT]; + u8 bw40_diff[MAX_RF_PATH][MAX_TX_COUNT]; +}; + +struct txpower_info_5g { + u8 index_bw40_base[MAX_RF_PATH][MAX_CHNL_GROUP_5G]; + /*If only one tx, only BW20, OFDM, BW80 and BW160 are used.*/ + u8 ofdm_diff[MAX_RF_PATH][MAX_TX_COUNT]; + u8 bw20_diff[MAX_RF_PATH][MAX_TX_COUNT]; + u8 bw40_diff[MAX_RF_PATH][MAX_TX_COUNT]; + u8 bw80_diff[MAX_RF_PATH][MAX_TX_COUNT]; + u8 bw160_diff[MAX_RF_PATH][MAX_TX_COUNT]; +}; + + +/* for early mode */ +#define EM_HDR_LEN 8 +#define FCS_LEN 4 + +#define MAX_VIRTUAL_MAC 1 + +enum rf_tx_num { + RF_1TX = 0, + RF_2TX, + RF_MAX_TX_NUM, + RF_TX_NUM_NONIMPLEMENT, +}; + +enum rate_section { + CCK = 0, + OFDM, + HT_MCS0_MCS7, + HT_MCS8_MCS15, + VHT_1SSMCS0_1SSMCS9, + VHT_2SSMCS0_2SSMCS9, +}; + +enum intf_type { + INTF_PCI = 0, + INTF_USB = 1, +}; + +enum radio_path { + RF90_PATH_A = 0, + RF90_PATH_B = 1, + RF90_PATH_C = 2, + RF90_PATH_D = 3, +}; + +enum rt_eeprom_type { + EEPROM_93C46, + EEPROM_93C56, + EEPROM_BOOT_EFUSE, +}; + +enum rtl_status { + RTL_STATUS_INTERFACE_START = 0, +}; + +enum hardware_type { + HARDWARE_TYPE_RTL8192E, + HARDWARE_TYPE_RTL8192U, + HARDWARE_TYPE_RTL8192SE, + HARDWARE_TYPE_RTL8192SU, + HARDWARE_TYPE_RTL8192CE, + HARDWARE_TYPE_RTL8192CU, + HARDWARE_TYPE_RTL8192DE, + HARDWARE_TYPE_RTL8192DU, + HARDWARE_TYPE_RTL8723AE, + HARDWARE_TYPE_RTL8188EE, + HARDWARE_TYPE_RTL8723BE, + HARDWARE_TYPE_RTL8192EE, + HARDWARE_TYPE_RTL8821AE, + HARDWARE_TYPE_RTL8812AE, + /* keep it last */ + HARDWARE_TYPE_NUM +}; + +enum scan_operation_backup_opt { + SCAN_OPT_BACKUP_BAND0=0, + SCAN_OPT_BACKUP_BAND1, + SCAN_OPT_RESTORE, + SCAN_OPT_MAX +}; + +/*RF state.*/ +enum rf_pwrstate { + ERFON, + ERFSLEEP, + ERFOFF +}; + +struct bb_reg_def { + u32 rfintfs; + u32 rfintfi; + u32 rfintfo; + u32 rfintfe; + u32 rf3wire_offset; + u32 rflssi_select; + u32 rftxgain_stage; + u32 rfhssi_para1; + u32 rfhssi_para2; + u32 rfswitch_control; + u32 rfagc_control1; + u32 rfagc_control2; + u32 rfrxiq_imbalance; + u32 rfrx_afe; + u32 rftxiq_imbalance; + u32 rftx_afe; + u32 rflssi_readback; + u32 rflssi_readbackpi; +}; + +enum io_type { + IO_CMD_PAUSE_BAND0_DM_BY_SCAN = 0, + IO_CMD_PAUSE_BAND1_DM_BY_SCAN = 1, + IO_CMD_RESUME_DM_BY_SCAN = 2, +}; + +enum hw_variables { + HW_VAR_ETHER_ADDR, + HW_VAR_MULTICAST_REG, + HW_VAR_BASIC_RATE, + HW_VAR_BSSID, + HW_VAR_MEDIA_STATUS, + HW_VAR_SECURITY_CONF, + HW_VAR_BEACON_INTERVAL, + HW_VAR_ATIM_WINDOW, + HW_VAR_LISTEN_INTERVAL, + HW_VAR_CS_COUNTER, + HW_VAR_DEFAULTKEY0, + HW_VAR_DEFAULTKEY1, + HW_VAR_DEFAULTKEY2, + HW_VAR_DEFAULTKEY3, + HW_VAR_SIFS, + HW_VAR_DIFS, + HW_VAR_EIFS, + HW_VAR_SLOT_TIME, + HW_VAR_ACK_PREAMBLE, + HW_VAR_CW_CONFIG, + HW_VAR_CW_VALUES, + HW_VAR_RATE_FALLBACK_CONTROL, + HW_VAR_CONTENTION_WINDOW, + HW_VAR_RETRY_COUNT, + HW_VAR_TR_SWITCH, + HW_VAR_COMMAND, + HW_VAR_WPA_CONFIG, + HW_VAR_AMPDU_MIN_SPACE, + HW_VAR_SHORTGI_DENSITY, + HW_VAR_AMPDU_FACTOR, + HW_VAR_MCS_RATE_AVAILABLE, + HW_VAR_AC_PARAM, + HW_VAR_ACM_CTRL, + HW_VAR_DIS_Req_Qsize, + HW_VAR_CCX_CHNL_LOAD, + HW_VAR_CCX_NOISE_HISTOGRAM, + HW_VAR_CCX_CLM_NHM, + HW_VAR_TxOPLimit, + HW_VAR_TURBO_MODE, + HW_VAR_RF_STATE, + HW_VAR_RF_OFF_BY_HW, + HW_VAR_BUS_SPEED, + HW_VAR_SET_DEV_POWER, + + HW_VAR_RCR, + HW_VAR_RATR_0, + HW_VAR_RRSR, + HW_VAR_CPU_RST, + HW_VAR_CECHK_BSSID, + HW_VAR_LBK_MODE, + HW_VAR_AES_11N_FIX, + HW_VAR_USB_RX_AGGR, + HW_VAR_USER_CONTROL_TURBO_MODE, + HW_VAR_RETRY_LIMIT, + HW_VAR_INIT_TX_RATE, + HW_VAR_TX_RATE_REG, + HW_VAR_EFUSE_USAGE, + HW_VAR_EFUSE_BYTES, + HW_VAR_AUTOLOAD_STATUS, + HW_VAR_RF_2R_DISABLE, + HW_VAR_SET_RPWM, + HW_VAR_H2C_FW_PWRMODE, + HW_VAR_H2C_FW_JOINBSSRPT, + HW_VAR_H2C_FW_MEDIASTATUSRPT, + HW_VAR_H2C_FW_P2P_PS_OFFLOAD, + HW_VAR_FW_PSMODE_STATUS, + HW_VAR_RESUME_CLK_ON, + HW_VAR_FW_LPS_ACTION, + HW_VAR_1X1_RECV_COMBINE, + HW_VAR_STOP_SEND_BEACON, + HW_VAR_TSF_TIMER, + HW_VAR_IO_CMD, + + HW_VAR_RF_RECOVERY, + HW_VAR_H2C_FW_UPDATE_GTK, + HW_VAR_WF_MASK, + HW_VAR_WF_CRC, + HW_VAR_WF_IS_MAC_ADDR, + HW_VAR_H2C_FW_OFFLOAD, + HW_VAR_RESET_WFCRC, + + HW_VAR_HANDLE_FW_C2H, + HW_VAR_DL_FW_RSVD_PAGE, + HW_VAR_AID, + HW_VAR_HW_SEQ_ENABLE, + HW_VAR_CORRECT_TSF, + HW_VAR_BCN_VALID, + HW_VAR_FWLPS_RF_ON, + HW_VAR_DUAL_TSF_RST, + HW_VAR_SWITCH_EPHY_WoWLAN, + HW_VAR_INT_MIGRATION, + HW_VAR_INT_AC, + HW_VAR_RF_TIMING, + + HAL_DEF_WOWLAN, + HW_VAR_MRC, + HW_VAR_KEEP_ALIVE, + HW_VAR_NAV_UPPER, +}; + +enum rt_media_status { + RT_MEDIA_DISCONNECT = 0, + RT_MEDIA_CONNECT = 1 +}; + +enum rt_oem_id { + RT_CID_DEFAULT = 0, + RT_CID_8187_ALPHA0 = 1, + RT_CID_8187_SERCOMM_PS = 2, + RT_CID_8187_HW_LED = 3, + RT_CID_8187_NETGEAR = 4, + RT_CID_WHQL = 5, + RT_CID_819x_CAMEO = 6, + RT_CID_819x_RUNTOP = 7, + RT_CID_819x_Senao = 8, + RT_CID_TOSHIBA = 9, + RT_CID_819x_Netcore = 10, + RT_CID_Nettronix = 11, + RT_CID_DLINK = 12, + RT_CID_PRONET = 13, + RT_CID_COREGA = 14, + RT_CID_819x_ALPHA = 15, + RT_CID_819x_Sitecom = 16, + RT_CID_CCX = 17, + RT_CID_819x_Lenovo = 18, + RT_CID_819x_QMI = 19, + RT_CID_819x_Edimax_Belkin = 20, + RT_CID_819x_Sercomm_Belkin = 21, + RT_CID_819x_CAMEO1 = 22, + RT_CID_819x_MSI = 23, + RT_CID_819x_Acer = 24, + RT_CID_819x_HP = 27, + RT_CID_819x_CLEVO = 28, + RT_CID_819x_Arcadyan_Belkin = 29, + RT_CID_819x_SAMSUNG = 30, + RT_CID_819x_WNC_COREGA = 31, + RT_CID_819x_Foxcoon = 32, + RT_CID_819x_DELL = 33, + RT_CID_819x_PRONETS = 34, + RT_CID_819x_Edimax_ASUS = 35, + RT_CID_NETGEAR = 36, + RT_CID_PLANEX = 37, + RT_CID_CC_C = 38, +}; + +enum hw_descs { + HW_DESC_OWN, + HW_DESC_RXOWN, + HW_DESC_TX_NEXTDESC_ADDR, + HW_DESC_TXBUFF_ADDR, + HW_DESC_RXBUFF_ADDR, + HW_DESC_RXPKT_LEN, + HW_DESC_RXERO, + HW_DESC_RX_PREPARE, +}; + +enum prime_sc { + PRIME_CHNL_OFFSET_DONT_CARE = 0, + PRIME_CHNL_OFFSET_LOWER = 1, + PRIME_CHNL_OFFSET_UPPER = 2, +}; + +enum rf_type { + RF_1T1R = 0, + RF_1T2R = 1, + RF_2T2R = 2, + RF_2T2R_GREEN = 3, +}; + +enum ht_channel_width { + HT_CHANNEL_WIDTH_20 = 0, + HT_CHANNEL_WIDTH_20_40 = 1, + HT_CHANNEL_WIDTH_80 = 2, +}; + +/* Ref: 802.11i sepc D10.0 7.3.2.25.1 +Cipher Suites Encryption Algorithms */ +enum rt_enc_alg { + NO_ENCRYPTION = 0, + WEP40_ENCRYPTION = 1, + TKIP_ENCRYPTION = 2, + RSERVED_ENCRYPTION = 3, + AESCCMP_ENCRYPTION = 4, + WEP104_ENCRYPTION = 5, + AESCMAC_ENCRYPTION = 6, /*IEEE802.11w */ +}; + +enum rtl_hal_state { + _HAL_STATE_STOP = 0, + _HAL_STATE_START = 1, +}; + +enum rtl_var_map { + /*reg map */ + SYS_ISO_CTRL = 0, + SYS_FUNC_EN, + SYS_CLK, + MAC_RCR_AM, + MAC_RCR_AB, + MAC_RCR_ACRC32, + MAC_RCR_ACF, + MAC_RCR_AAP, + MAC_HIMR, + MAC_HIMRE, + MAC_HSISR, + + /*efuse map */ + EFUSE_TEST, + EFUSE_CTRL, + EFUSE_CLK, + EFUSE_CLK_CTRL, + EFUSE_PWC_EV12V, + EFUSE_FEN_ELDR, + EFUSE_LOADER_CLK_EN, + EFUSE_ANA8M, + EFUSE_HWSET_MAX_SIZE, + EFUSE_MAX_SECTION_MAP, + EFUSE_REAL_CONTENT_SIZE, + EFUSE_OOB_PROTECT_BYTES_LEN, + EFUSE_ACCESS, + /*CAM map */ + RWCAM, + WCAMI, + RCAMO, + CAMDBG, + SECR, + SEC_CAM_NONE, + SEC_CAM_WEP40, + SEC_CAM_TKIP, + SEC_CAM_AES, + SEC_CAM_WEP104, + + /*IMR map */ + RTL_IMR_BCNDMAINT6, /*Beacon DMA Interrupt 6 */ + RTL_IMR_BCNDMAINT5, /*Beacon DMA Interrupt 5 */ + RTL_IMR_BCNDMAINT4, /*Beacon DMA Interrupt 4 */ + RTL_IMR_BCNDMAINT3, /*Beacon DMA Interrupt 3 */ + RTL_IMR_BCNDMAINT2, /*Beacon DMA Interrupt 2 */ + RTL_IMR_BCNDMAINT1, /*Beacon DMA Interrupt 1 */ + RTL_IMR_BCNDOK8, /*Beacon Queue DMA OK Interrup 8 */ + RTL_IMR_BCNDOK7, /*Beacon Queue DMA OK Interrup 7 */ + RTL_IMR_BCNDOK6, /*Beacon Queue DMA OK Interrup 6 */ + RTL_IMR_BCNDOK5, /*Beacon Queue DMA OK Interrup 5 */ + RTL_IMR_BCNDOK4, /*Beacon Queue DMA OK Interrup 4 */ + RTL_IMR_BCNDOK3, /*Beacon Queue DMA OK Interrup 3 */ + RTL_IMR_BCNDOK2, /*Beacon Queue DMA OK Interrup 2 */ + RTL_IMR_BCNDOK1, /*Beacon Queue DMA OK Interrup 1 */ + RTL_IMR_TIMEOUT2, /*Timeout interrupt 2 */ + RTL_IMR_TIMEOUT1, /*Timeout interrupt 1 */ + RTL_IMR_TXFOVW, /*Transmit FIFO Overflow */ + RTL_IMR_PSTIMEOUT, /*Power save time out interrupt */ + RTL_IMR_BcnInt, /*Beacon DMA Interrupt 0 */ + RTL_IMR_RXFOVW, /*Receive FIFO Overflow */ + RTL_IMR_RDU, /*Receive Descriptor Unavailable */ + RTL_IMR_ATIMEND, /*For 92C,ATIM Window End Interrupt */ + RTL_IMR_BDOK, /*Beacon Queue DMA OK Interrup */ + RTL_IMR_HIGHDOK, /*High Queue DMA OK Interrupt */ + RTL_IMR_COMDOK, /*Command Queue DMA OK Interrupt*/ + RTL_IMR_TBDOK, /*Transmit Beacon OK interrup */ + RTL_IMR_MGNTDOK, /*Management Queue DMA OK Interrupt */ + RTL_IMR_TBDER, /*For 92C,Transmit Beacon Error Interrupt */ + RTL_IMR_BKDOK, /*AC_BK DMA OK Interrupt */ + RTL_IMR_BEDOK, /*AC_BE DMA OK Interrupt */ + RTL_IMR_VIDOK, /*AC_VI DMA OK Interrupt */ + RTL_IMR_VODOK, /*AC_VO DMA Interrupt */ + RTL_IMR_ROK, /*Receive DMA OK Interrupt */ + RTL_IMR_HSISR_IND, /*HSISR Interrupt*/ + RTL_IBSS_INT_MASKS, /*(RTL_IMR_BcnInt | RTL_IMR_TBDOK | + * RTL_IMR_TBDER) */ + RTL_IMR_C2HCMD, /*fw interrupt*/ + + /*CCK Rates, TxHT = 0 */ + RTL_RC_CCK_RATE1M, + RTL_RC_CCK_RATE2M, + RTL_RC_CCK_RATE5_5M, + RTL_RC_CCK_RATE11M, + + /*OFDM Rates, TxHT = 0 */ + RTL_RC_OFDM_RATE6M, + RTL_RC_OFDM_RATE9M, + RTL_RC_OFDM_RATE12M, + RTL_RC_OFDM_RATE18M, + RTL_RC_OFDM_RATE24M, + RTL_RC_OFDM_RATE36M, + RTL_RC_OFDM_RATE48M, + RTL_RC_OFDM_RATE54M, + + RTL_RC_HT_RATEMCS7, + RTL_RC_HT_RATEMCS15, + + /*keep it last */ + RTL_VAR_MAP_MAX, +}; + +/*Firmware PS mode for control LPS.*/ +enum _fw_ps_mode { + FW_PS_ACTIVE_MODE = 0, + FW_PS_MIN_MODE = 1, + FW_PS_MAX_MODE = 2, + FW_PS_DTIM_MODE = 3, + FW_PS_VOIP_MODE = 4, + FW_PS_UAPSD_WMM_MODE = 5, + FW_PS_UAPSD_MODE = 6, + FW_PS_IBSS_MODE = 7, + FW_PS_WWLAN_MODE = 8, + FW_PS_PM_Radio_Off = 9, + FW_PS_PM_Card_Disable = 10, +}; + +enum rt_psmode { + EACTIVE, /*Active/Continuous access. */ + EMAXPS, /*Max power save mode. */ + EFASTPS, /*Fast power save mode. */ + EAUTOPS, /*Auto power save mode. */ +}; + +/*LED related.*/ +enum led_ctl_mode { + LED_CTL_POWER_ON = 1, + LED_CTL_LINK = 2, + LED_CTL_NO_LINK = 3, + LED_CTL_TX = 4, + LED_CTL_RX = 5, + LED_CTL_SITE_SURVEY = 6, + LED_CTL_POWER_OFF = 7, + LED_CTL_START_TO_LINK = 8, + LED_CTL_START_WPS = 9, + LED_CTL_STOP_WPS = 10, +}; + +enum rtl_led_pin { + LED_PIN_GPIO0, + LED_PIN_LED0, + LED_PIN_LED1, + LED_PIN_LED2 +}; + +/*QoS related.*/ +/*acm implementation method.*/ +enum acm_method { + eAcmWay0_SwAndHw = 0, + eAcmWay1_HW = 1, + eAcmWay2_SW = 2, +}; + +enum macphy_mode { + SINGLEMAC_SINGLEPHY = 0, + DUALMAC_DUALPHY, + DUALMAC_SINGLEPHY, +}; + +enum band_type { + BAND_ON_2_4G = 0, + BAND_ON_5G, + BAND_ON_BOTH, + BANDMAX +}; + +/*aci/aifsn Field. +Ref: WMM spec 2.2.2: WME Parameter Element, p.12.*/ +union aci_aifsn { + u8 char_data; + + struct { + u8 aifsn:4; + u8 acm:1; + u8 aci:2; + u8 reserved:1; + } f; /* Field */ +}; + +/*mlme related.*/ +enum wireless_mode { + WIRELESS_MODE_UNKNOWN = 0x00, + WIRELESS_MODE_A = 0x01, + WIRELESS_MODE_B = 0x02, + WIRELESS_MODE_G = 0x04, + WIRELESS_MODE_AUTO = 0x08, + WIRELESS_MODE_N_24G = 0x10, + WIRELESS_MODE_N_5G = 0x20, + WIRELESS_MODE_AC_5G = 0x40, + WIRELESS_MODE_AC_24G = 0x80 +}; + +enum ratr_table_mode { + RATR_INX_WIRELESS_NGB = 0, // BGN 40 Mhz 2SS 1SS + RATR_INX_WIRELESS_NG = 1, // GN or N + RATR_INX_WIRELESS_NB = 2, // BGN 20 Mhz 2SS 1SS or BN + RATR_INX_WIRELESS_N = 3, + RATR_INX_WIRELESS_GB = 4, + RATR_INX_WIRELESS_G = 5, + RATR_INX_WIRELESS_B = 6, + RATR_INX_WIRELESS_MC = 7, + RATR_INX_WIRELESS_AC_5N = 8, + RATR_INX_WIRELESS_AC_24N = 9, +}; + +enum rtl_link_state { + MAC80211_NOLINK = 0, + MAC80211_LINKING = 1, + MAC80211_LINKED = 2, + MAC80211_LINKED_SCANNING = 3, +}; + +enum act_category { + ACT_CAT_QOS = 1, + ACT_CAT_DLS = 2, + ACT_CAT_BA = 3, + ACT_CAT_HT = 7, + ACT_CAT_WMM = 17, +}; + +enum ba_action { + ACT_ADDBAREQ = 0, + ACT_ADDBARSP = 1, + ACT_DELBA = 2, +}; + +enum rt_polarity_ctl { + RT_POLARITY_LOW_ACT = 0, + RT_POLARITY_HIGH_ACT = 1, +}; + + +struct octet_string { + u8 *octet; + u16 length; +}; + +struct rtl_hdr_3addr { + __le16 frame_ctl; + __le16 duration_id; + u8 addr1[ETH_ALEN]; + u8 addr2[ETH_ALEN]; + u8 addr3[ETH_ALEN]; + __le16 seq_ctl; + u8 payload[0]; +} __packed; + +struct rtl_info_element { + u8 id; + u8 len; + u8 data[0]; +} __packed; + +struct rtl_probe_rsp { + struct rtl_hdr_3addr header; + u32 time_stamp[2]; + __le16 beacon_interval; + __le16 capability; + /*SSID, supported rates, FH params, DS params, + CF params, IBSS params, TIM (if beacon), RSN */ + struct rtl_info_element info_element[0]; +} __packed; + +/*LED related.*/ +/*ledpin Identify how to implement this SW led.*/ +struct rtl_led { + void *hw; + enum rtl_led_pin ledpin; + bool b_ledon; +}; + +struct rtl_led_ctl { + bool bled_opendrain; + struct rtl_led sw_led0; + struct rtl_led sw_led1; +}; + +struct rtl_qos_parameters { + __le16 cw_min; + __le16 cw_max; + u8 aifs; + u8 flag; + __le16 tx_op; +} __packed; + +struct rt_smooth_data { + u32 elements[100]; /*array to store values */ + u32 index; /*index to current array to store */ + u32 total_num; /*num of valid elements */ + u32 total_val; /*sum of valid elements */ +}; + +struct rtl_ht_agg { + u16 txq_id; + u16 wait_for_ba; + u16 start_idx; + u64 bitmap; + u32 rate_n_flags; + u8 agg_state; + u8 rx_agg_state; +}; + +struct rtl_tid_data { + u16 seq_number; + struct rtl_ht_agg agg; +}; + +struct rssi_sta{ + long undecorated_smoothed_pwdb; +}; + +struct rtl_sta_info { + struct list_head list; + u8 ratr_index; + u8 wireless_mode; + u8 mimo_ps; + u8 mac_addr[6]; + struct rtl_tid_data tids[MAX_TID_COUNT]; + + /* just used for ap adhoc or mesh*/ + struct rssi_sta rssi_stat; +} __packed; + +#ifdef VIF_TODO +struct rtl_vif { + unsigned int id; + /* struct ieee80211_vif __rcu *vif; */ + struct ieee80211_vif *vif; +}; + +struct rtl_vif_info { + struct list_head list; + bool active; + unsigned int id; + struct sk_buff *beacon; + bool enable_beacon; +}; + +struct vif_priv { + struct list_head vif_list; + + /* interface mode settings */ + unsigned long vif_bitmap; + unsigned int vifs; + struct rtl_vif vif[MAX_VIRTUAL_MAC]; + + /* beaconing */ + spinlock_t beacon_lock; + unsigned int global_pretbtt; + unsigned int global_beacon_int; + /* struct rtl_vif_info __rcu *beacon_iter; */ + struct rtl_vif_info *beacon_iter; + unsigned int beacon_enabled; +}; +#endif + +struct false_alarm_statistics { + u32 cnt_parity_fail; + u32 cnt_rate_illegal; + u32 cnt_crc8_fail; + u32 cnt_mcs_fail; + u32 cnt_fast_fsync_fail; + u32 cnt_sb_search_fail; + u32 cnt_ofdm_fail; + u32 cnt_cck_fail; + u32 cnt_all; + u32 cnt_ofdm_cca; + u32 cnt_cck_cca; + u32 cnt_cca_all; + u32 cnt_bw_usc; + u32 cnt_bw_lsc; +}; + +struct init_gain { + u8 xaagccore1; + u8 xbagccore1; + u8 xcagccore1; + u8 xdagccore1; + u8 cca; + +}; + +struct wireless_stats { + unsigned long txbytesunicast; + unsigned long txbytesmulticast; + unsigned long txbytesbroadcast; + unsigned long rxbytesunicast; + + long rx_snr_db[4]; + /*Correct smoothed ss in Dbm, only used + in driver to report real power now. */ + long recv_signal_power; + long signal_quality; + long last_sigstrength_inpercent; + + u32 rssi_calculate_cnt; + u32 pwdb_all_cnt; + + /*Transformed, in dbm. Beautified signal + strength for UI, not correct. */ + long signal_strength; + + u8 rx_rssi_percentage[4]; + u8 rx_evm_dbm[4]; + u8 rx_evm_percentage[2]; + + u16 rx_cfo_short[4]; + u16 rx_cfo_tail[4]; + + struct rt_smooth_data ui_rssi; + struct rt_smooth_data ui_link_quality; +}; + +struct rate_adaptive { + u8 rate_adaptive_disabled; + u8 ratr_state; + u16 reserve; + + u32 high_rssi_thresh_for_ra; + u32 high2low_rssi_thresh_for_ra; + u8 low2high_rssi_thresh_for_ra; + u32 low_rssi_thresh_for_ra; + u32 upper_rssi_threshold_ratr; + u32 middleupper_rssi_threshold_ratr; + u32 middle_rssi_threshold_ratr; + u32 middlelow_rssi_threshold_ratr; + u32 low_rssi_threshold_ratr; + u32 ultralow_rssi_threshold_ratr; + u32 low_rssi_threshold_ratr_40m; + u32 low_rssi_threshold_ratr_20m; + u8 ping_rssi_enable; + u32 ping_rssi_ratr; + u32 ping_rssi_thresh_for_ra; + u32 last_ratr; + u8 pre_ratr_state; + u8 ldpc_thres; + bool use_ldpc; + bool lower_rts_rate; + bool is_special_data; +}; + +struct regd_pair_mapping { + u16 reg_dmnenum; + u16 reg_5ghz_ctl; + u16 reg_2ghz_ctl; +}; + +struct dynamic_primary_cca{ + u8 pricca_flag; + u8 intf_flag; + u8 intf_type; + u8 dup_rts_flag; + u8 monitor_flag; + u8 ch_offset; + u8 mf_state; +}; + +struct rtl_regulatory { + char alpha2[2]; + u16 country_code; + u16 max_power_level; + u32 tp_scale; + u16 current_rd; + u16 current_rd_ext; + int16_t power_limit; + struct regd_pair_mapping *regpair; +}; + +struct rtl_rfkill { + bool rfkill_state; /*0 is off, 1 is on */ +}; + +/*for P2P PS**/ +#define P2P_MAX_NOA_NUM 2 + +enum p2p_role { + P2P_ROLE_DISABLE = 0, + P2P_ROLE_DEVICE = 1, + P2P_ROLE_CLIENT = 2, + P2P_ROLE_GO = 3 +}; + +enum p2p_ps_state { + P2P_PS_DISABLE = 0, + P2P_PS_ENABLE = 1, + P2P_PS_SCAN = 2, + P2P_PS_SCAN_DONE = 3, + P2P_PS_ALLSTASLEEP = 4, // for P2P GO +}; + +enum p2p_ps_mode { + P2P_PS_NONE = 0, + P2P_PS_CTWINDOW = 1, + P2P_PS_NOA = 2, + P2P_PS_MIX = 3, // CTWindow and NoA +}; + +struct rtl_p2p_ps_info { + enum p2p_ps_mode p2p_ps_mode; /* indicate p2p ps mode */ + enum p2p_ps_state p2p_ps_state; /* indicate p2p ps state */ + u8 noa_index; /* Identifies and instance of Notice of Absence timing. */ + /* Client traffic window. A period of time in TU after TBTT. */ + u8 ctwindow; + u8 opp_ps; /* opportunistic power save. */ + u8 noa_num; /* number of NoA descriptor in P2P IE. */ + /* Count for owner, Type of client. */ + u8 noa_count_type[P2P_MAX_NOA_NUM]; + /* Max duration for owner, preferred or + * min acceptable duration for client. */ + u32 noa_duration[P2P_MAX_NOA_NUM]; + /* Length of interval for owner, preferred or + * max acceptable interval of client. */ + u32 noa_interval[P2P_MAX_NOA_NUM]; + /* schedule expressed in terms of the lower 4 bytes of the TSF timer. */ + u32 noa_start_time[P2P_MAX_NOA_NUM]; +}; + + struct p2p_ps_offload_t { + u8 Offload_En:1; + u8 role:1; /* 1: Owner, 0: Client */ + u8 CTWindow_En:1; + u8 NoA0_En:1; + u8 NoA1_En:1; + u8 AllStaSleep:1; + u8 discovery:1; + u8 reserved:1; +}; + +#define IQK_MATRIX_REG_NUM 8 +#define IQK_MATRIX_SETTINGS_NUM (14+24+21) // Channels_2_4G_NUM + Channels_5G_20M_NUM + Channels_5G +struct iqk_matrix_regs { + bool b_iqk_done; + long value[1][IQK_MATRIX_REG_NUM]; +}; + +struct rtl_phy { + struct bb_reg_def phyreg_def[4]; /*Radio A/B/C/D */ + struct init_gain initgain_backup; + enum io_type current_io_type; + + u8 rf_mode; + u8 rf_type; + u8 current_chan_bw; + u8 set_bwmode_inprogress; + u8 sw_chnl_inprogress; + u8 sw_chnl_stage; + u8 sw_chnl_step; + u8 current_channel; + u8 h2c_box_num; + u8 set_io_inprogress; + u8 lck_inprogress; + + /* record for power tracking */ + s32 reg_e94; + s32 reg_e9c; + s32 reg_ea4; + s32 reg_eac; + s32 reg_eb4; + s32 reg_ebc; + s32 reg_ec4; + s32 reg_ecc; + u8 rfpienable; + u8 reserve_0; + u16 reserve_1; + u32 reg_c04, reg_c08, reg_874; + u32 adda_backup[16]; + u32 iqk_mac_backup[IQK_MAC_REG_NUM]; + u32 iqk_bb_backup[10]; + bool iqk_initialized; + + bool rfpath_rx_enable[MAX_RF_PATH]; + /*Jaguar*/ + u8 reg_837; + /* Dul mac */ + bool b_need_iqk; + struct iqk_matrix_regs iqk_matrix_regsetting[IQK_MATRIX_SETTINGS_NUM]; + + bool b_rfpi_enable; + + bool b_iqk_in_progress; + + u8 pwrgroup_cnt; + u8 bcck_high_power; + /* this is for 88E & 8723A */ + u32 mcs_txpwrlevel_origoffset[MAX_PG_GROUP][16]; + /* this is for 92EE */ + u32 tx_power_by_rate_offset[TX_PWR_BY_RATE_NUM_BAND] + [TX_PWR_BY_RATE_NUM_RF] + [TX_PWR_BY_RATE_NUM_RF] + [TX_PWR_BY_RATE_NUM_SECTION]; + u8 txpwr_by_rate_base_24g[TX_PWR_BY_RATE_NUM_RF] + [TX_PWR_BY_RATE_NUM_RF] + [MAX_BASE_NUM_IN_PHY_REG_PG_24G]; + + u8 txpwr_by_rate_base_5g[TX_PWR_BY_RATE_NUM_RF] + [TX_PWR_BY_RATE_NUM_RF] + [MAX_BASE_NUM_IN_PHY_REG_PG_5G]; + u8 default_initialgain[4]; + + /* the current Tx power level */ + u8 cur_cck_txpwridx; + u8 cur_ofdm24g_txpwridx; + u8 cur_bw20_txpwridx; + u8 cur_bw40_txpwridx; + + u32 rfreg_chnlval[2]; + bool b_apk_done; + u32 reg_rf3c[2]; /* pathA / pathB */ + + u32 backup_rf_0x1a;/*92ee*/ + /* bfsync */ + u8 framesync; + u32 framesync_c34; + + u8 num_total_rfpath; + u16 rf_pathmap; + + u8 hw_rof_enable; /*Enable GPIO[9] as WL RF HW PDn source*/ + + enum rt_polarity_ctl polarity_ctl; +}; + +#define RTL_AGG_STOP 0 +#define RTL_AGG_PROGRESS 1 +#define RTL_AGG_START 2 +#define RTL_AGG_OPERATIONAL 3 +#define RTL_RX_AGG_START 1 +#define RTL_RX_AGG_STOP 0 + +struct rtl_priv; +struct rtl_io { + struct device *dev; + + /*PCI MEM map */ + unsigned long pci_mem_end; /*shared mem end */ + unsigned long pci_mem_start; /*shared mem start */ + + /*PCI IO map */ + unsigned long pci_base_addr; /*device I/O address */ + + void (*write8_async) (struct rtl_priv * rtlpriv, u32 addr, u8 val); + void (*write16_async) (struct rtl_priv * rtlpriv, u32 addr, u16 val); + void (*write32_async) (struct rtl_priv * rtlpriv, u32 addr, u32 val); + + u8(*read8_sync) (struct rtl_priv * rtlpriv, u32 addr); + u16(*read16_sync) (struct rtl_priv * rtlpriv, u32 addr); + u32(*read32_sync) (struct rtl_priv * rtlpriv, u32 addr); + +}; + +struct rtl_mac { + u8 mac_addr[ETH_ALEN]; + u8 mac80211_registered; + u8 beacon_enabled; + + u32 tx_ss_num; + u32 rx_ss_num; + + struct ieee80211_supported_band bands[IEEE80211_NUM_BANDS]; + struct ieee80211_hw *hw; + struct ieee80211_vif *vif; + enum nl80211_iftype opmode; + + /*Probe Beacon management */ + enum rtl_link_state link_state; + + int n_channels; + int n_bitrates; + + bool offchan_deley; + u8 p2p; /*using p2p role*/ + bool p2p_in_use; + + /*filters */ + u32 rx_conf; + + bool act_scanning; + u8 cnt_after_linked; + bool skip_scan; + + /* early mode */ + /* skb wait queue */ + struct sk_buff_head skb_waitq[MAX_TID_COUNT]; + + /*RDG*/ + bool rdg_en; + + /*AP*/ + u8 bssid[6]; + u32 vendor; + u32 basic_rates; /* b/g rates */ + u8 ht_enable; + u8 bw_40; + u8 mode; /* wireless mode */ + u8 slot_time; + u8 short_preamble; + u8 use_cts_protect; + u8 cur_40_prime_sc; + u8 cur_40_prime_sc_bk; + u8 cur_80_prime_sc; + u64 tsf; + u8 retry_short; + u8 retry_long; + u16 assoc_id; + bool bhiddenssid; + + /*IBSS*/ + int beacon_interval; + + /*AMPDU*/ + u8 min_space_cfg; /*For Min spacing configurations */ + u8 max_mss_density; + u8 current_ampdu_factor; + u8 current_ampdu_density; + + /*QOS & EDCA */ + struct ieee80211_tx_queue_params edca_param[RTL_MAC80211_NUM_QUEUE]; + struct rtl_qos_parameters ac[AC_MAX]; +}; + +struct rtl_hal { + struct ieee80211_hw *hw; + + bool driver_is_goingto_unload; + bool up_first_time; + bool bfirst_init; + bool being_init_adapter; + bool b_bbrf_ready; + bool b_mac_func_enable; + bool b_pre_edcca_enable; + + enum intf_type interface; + u16 hw_type; /*92c or 92d or 92s and so on */ + u8 ic_class; + u8 oem_id; + u32 version; /*version of chip */ + u8 state; /*stop 0, start 1 */ + u8 boad_type; + + /*firmware */ + u32 fwsize; + u8 *pfirmware; + u16 fw_version; + u16 fw_subversion; + bool b_h2c_setinprogress; + u8 last_hmeboxnum; + bool bfw_ready; + + /*Reserve page start offset except beacon in TxQ. */ + u8 fw_rsvdpage_startoffset; + u8 h2c_txcmd_seq; + u8 current_ra_rate; + + /* FW Cmd IO related */ + u16 fwcmd_iomap; + u32 fwcmd_ioparam; + bool set_fwcmd_inprogress; + u8 current_fwcmd_io; + + bool bfw_clk_change_in_progress; + bool ballow_sw_to_change_hwclc; + u8 fw_ps_state; + struct p2p_ps_offload_t p2p_ps_offload; + /**/ + bool driver_going2unload; + + /*AMPDU init min space*/ + u8 minspace_cfg; /*For Min spacing configurations */ + + /* Dul mac */ + enum macphy_mode macphymode; + enum band_type current_bandtype; /* 0:2.4G, 1:5G */ + enum band_type current_bandtypebackup; + enum band_type bandset; + /* dual MAC 0--Mac0 1--Mac1 */ + u32 interfaceindex; + /* just for DulMac S3S4 */ + u8 macphyctl_reg; + bool b_earlymode_enable; + u8 max_earlymode_num; + /* Dul mac*/ + bool during_mac0init_radiob; + bool during_mac1init_radioa; + bool reloadtxpowerindex; + /* True if IMR or IQK have done + for 2.4G in scan progress */ + bool b_load_imrandiqk_setting_for2g; + + bool disable_amsdu_8k; + bool bmaster_of_dmsp; + bool bslave_of_dmsp; + + u16 rx_tag;/*for 92ee*/ + u8 rts_en; +}; + +struct rtl_security { + /*default 0 */ + bool use_sw_sec; + + bool being_setkey; + bool use_defaultkey; + /*Encryption Algorithm for Unicast Packet */ + enum rt_enc_alg pairwise_enc_algorithm; + /*Encryption Algorithm for Brocast/Multicast */ + enum rt_enc_alg group_enc_algorithm; + /*Cam Entry Bitmap */ + u32 hwsec_cam_bitmap; + u8 hwsec_cam_sta_addr[TOTAL_CAM_ENTRY][ETH_ALEN]; + /*local Key buffer, indx 0 is for + pairwise key 1-4 is for agoup key. */ + u8 key_buf[KEY_BUF_SIZE][MAX_KEY_LEN]; + u8 key_len[KEY_BUF_SIZE]; + + /*The pointer of Pairwise Key, + it always points to KeyBuf[4] */ + u8 *pairwise_key; +}; + +struct rtl_dig { + u8 dig_enable_flag; + u8 dig_ext_port_stage; + + u32 rssi_lowthresh; + u32 rssi_highthresh; + + u32 fa_lowthresh; + u32 fa_highthresh; + + u8 cursta_connectstate; + u8 presta_connectstate; + u8 curmultista_connectstate; + + u8 pre_igvalue; + u8 cur_igvalue; + + char backoff_val; + char backoff_val_range_max; + char backoff_val_range_min; + u8 rx_gain_range_max; + u8 rx_gain_range_min; + u8 rssi_val_min; + u8 min_undecorated_pwdb_for_dm; + long last_min_undecorated_pwdb_for_dm; + + u8 pre_cck_pd_state; + u8 cur_cck_pd_state; + + u8 large_fa_hit; + u8 forbidden_igi; + u32 recover_cnt; + +}; + +struct rtl_pstbl { + u8 pre_ccastate; + u8 cur_ccasate; + + u8 pre_rfstate; + u8 cur_rfstate; + + long rssi_val_min; + +}; + +#define ASSOCIATE_ENTRY_NUM 32+1 + +struct fast_ant_trainning{ + u8 bssid[6]; + u8 antsel_rx_keep_0; + u8 antsel_rx_keep_1; + u8 antsel_rx_keep_2; + u32 ant_sum_rssi[7]; + u32 ant_rssi_cnt[7]; + u32 ant_ave_rssi[7]; + u8 fat_state; + u32 train_idx; + u8 antsel_a[ASSOCIATE_ENTRY_NUM]; + u8 antsel_b[ASSOCIATE_ENTRY_NUM]; + u8 antsel_c[ASSOCIATE_ENTRY_NUM]; + u32 main_ant_sum[ASSOCIATE_ENTRY_NUM]; + u32 aux_ant_sum[ASSOCIATE_ENTRY_NUM]; + u32 main_ant_cnt[ASSOCIATE_ENTRY_NUM]; + u32 aux_ant_cnt[ASSOCIATE_ENTRY_NUM]; + u8 rx_idle_ant; + bool b_becomelinked; +}; + +struct dm_phy_dbg_info { + char rx_snrdb[4]; + u64 num_qry_phy_status; + u64 num_qry_phy_status_cck; + u64 num_qry_phy_status_ofdm; + u16 num_qry_beacon_pkt; + u16 num_non_be_pkt; + s32 rx_evm[4]; +}; + +struct rtl_dm { + /*PHY status for DM */ + long entry_min_undecoratedsmoothed_pwdb; + long undecorated_smoothed_pwdb; /*out dm */ + long entry_max_undecoratedsmoothed_pwdb; + bool b_dm_initialgain_enable; + bool bdynamic_txpower_enable; + bool bcurrent_turbo_edca; + bool bis_any_nonbepkts; /*out dm */ + bool bis_cur_rdlstate; + bool btxpower_trackinginit; + bool b_disable_framebursting; + bool b_cck_inch14; + bool btxpower_tracking; + bool b_useramask; + bool brfpath_rxenable[4]; + bool binform_fw_driverctrldm; + bool bcurrent_mrc_switch; + u8 txpowercount; + + u8 thermalvalue_rxgain; + u8 thermalvalue_iqk; + u8 thermalvalue_lck; + u8 thermalvalue; + u8 thermalvalue_avg[AVG_THERMAL_NUM]; + u8 thermalvalue_avg_index; + bool bdone_txpower; + u8 last_dtp_lvl; + u8 dynamic_txhighpower_lvl; /*Tx high power level */ + u8 dm_flag; /*Indicate if each dynamic mechanism's status. */ + u8 dm_type; + u8 txpower_track_control; + bool binterrupt_migration; + bool bdisable_tx_int; + char ofdm_index[MAX_RF_PATH]; + u8 default_ofdm_index; + u8 default_cck_index; + char cck_index; + char delta_power_index[MAX_RF_PATH]; + char delta_power_index_last[MAX_RF_PATH]; + char power_index_offset[MAX_RF_PATH]; + char aboslute_ofdm_swing_idx[MAX_RF_PATH]; + char remnant_ofdm_swing_idx[MAX_RF_PATH]; + char remnant_cck_idx; + bool modify_txagc_flag_path_a; + bool modify_txagc_flag_path_b; + + bool b_one_entry_only; + struct dm_phy_dbg_info dbginfo; + /* Dynamic ATC switch */ + + bool atc_status; + bool large_cfo_hit; + bool is_freeze; + int cfo_tail[2]; + int cfo_ave_pre; + int crystal_cap; + u8 cfo_threshold; + u32 packet_count; + u32 packet_count_pre; + u8 tx_rate; + + + /*88e tx power tracking*/ + u8 bb_swing_idx_ofdm[MAX_RF_PATH]; + u8 bb_swing_idx_ofdm_current; + u8 bb_swing_idx_ofdm_base[MAX_RF_PATH]; + bool bb_swing_flag_Ofdm; + u8 bb_swing_idx_cck; + u8 bb_swing_idx_cck_current; + u8 bb_swing_idx_cck_base; + bool bb_swing_flag_cck; + + char bb_swing_diff_2g; + char bb_swing_diff_5g; + + u8 delta_swing_table_idx_24gccka_p[DELTA_SWINGIDX_SIZE]; + u8 delta_swing_table_idx_24gccka_n[DELTA_SWINGIDX_SIZE]; + u8 delta_swing_table_idx_24gcckb_p[DELTA_SWINGIDX_SIZE]; + u8 delta_swing_table_idx_24gcckb_n[DELTA_SWINGIDX_SIZE]; + u8 delta_swing_table_idx_24ga_p[DELTA_SWINGIDX_SIZE]; + u8 delta_swing_table_idx_24ga_n[DELTA_SWINGIDX_SIZE]; + u8 delta_swing_table_idx_24gb_p[DELTA_SWINGIDX_SIZE]; + u8 delta_swing_table_idx_24gb_n[DELTA_SWINGIDX_SIZE]; + u8 delta_swing_table_idx_5ga_p[BAND_NUM][DELTA_SWINGIDX_SIZE]; + u8 delta_swing_table_idx_5ga_n[BAND_NUM][DELTA_SWINGIDX_SIZE]; + u8 delta_swing_table_idx_5gb_p[BAND_NUM][DELTA_SWINGIDX_SIZE]; + u8 delta_swing_table_idx_5gb_n[BAND_NUM][DELTA_SWINGIDX_SIZE]; + u8 delta_swing_table_idx_24ga_p_8188e[DELTA_SWINGIDX_SIZE]; + u8 delta_swing_table_idx_24ga_n_8188e[DELTA_SWINGIDX_SIZE]; + + + /* DMSP */ + bool supp_phymode_switch; + + /* DulMac */ + struct rtl_dig dm_digtable; + struct rtl_pstbl dm_pstable; + struct fast_ant_trainning fat_table; + + u8 resp_tx_path; + u8 path_sel; + u32 patha_sum; + u32 pathb_sum; + u32 patha_cnt; + u32 pathb_cnt; + + u8 pre_channel; + u8 *p_channel; + u8 linked_interval; + + u64 last_tx_ok_cnt; + u64 last_rx_ok_cnt; +}; + +#define EFUSE_MAX_LOGICAL_SIZE 256 + +struct rtl_efuse { + bool bautoLoad_ok; + bool bootfromefuse; + u16 max_physical_size; + + u8 efuse_map[2][EFUSE_MAX_LOGICAL_SIZE]; + u16 efuse_usedbytes; + u8 efuse_usedpercentage; +#ifdef EFUSE_REPG_WORKAROUND + bool efuse_re_pg_sec1flag; + u8 efuse_re_pg_data[8]; +#endif + + u8 autoload_failflag; + u8 autoload_status; + + short epromtype; + u16 eeprom_vid; + u16 eeprom_did; + u16 eeprom_svid; + u16 eeprom_smid; + u8 eeprom_oemid; + u16 eeprom_channelplan; + u8 eeprom_version; + + u8 dev_addr[6]; + u8 board_type; + u8 wowlan_enable; + u8 antenna_div_cfg; + u8 antenna_div_type; + + bool b_txpwr_fromeprom; + u8 eeprom_crystalcap; + u8 eeprom_tssi[2]; + u8 eeprom_tssi_5g[3][2]; /* for 5GL/5GM/5GH band. */ + u8 eeprom_pwrlimit_ht20[CHANNEL_GROUP_MAX]; + u8 eeprom_pwrlimit_ht40[CHANNEL_GROUP_MAX]; + u8 eeprom_chnlarea_txpwr_cck[2][CHANNEL_GROUP_MAX_2G]; + u8 eeprom_chnlarea_txpwr_ht40_1s[2][CHANNEL_GROUP_MAX]; + u8 eeprom_chnlarea_txpwr_ht40_2sdiif[2][CHANNEL_GROUP_MAX]; + + + u8 internal_pa_5g[2]; /* pathA / pathB */ + u8 eeprom_c9; + u8 eeprom_cc; + + /*For power group */ + u8 eeprom_pwrgroup[2][3]; + u8 pwrgroup_ht20[2][CHANNEL_MAX_NUMBER]; + u8 pwrgroup_ht40[2][CHANNEL_MAX_NUMBER]; + + u8 txpwrlevel_cck[MAX_RF_PATH][CHANNEL_MAX_NUMBER_2G]; + /*For HT 40MHZ pwr */ + u8 txpwrlevel_ht40_1s[MAX_RF_PATH][CHANNEL_MAX_NUMBER]; + /*For HT 40MHZ pwr */ + u8 txpwrlevel_ht40_2s[MAX_RF_PATH][CHANNEL_MAX_NUMBER]; + char txpwr_cckdiff[MAX_RF_PATH][MAX_TX_COUNT]; /*CCK_24G_Diff*/ + /*HT 20<->40 Pwr diff */ + char txpwr_ht20diff[MAX_RF_PATH][MAX_TX_COUNT]; /*BW20_24G_Diff*/ + char txpwr_ht40diff[MAX_RF_PATH][MAX_TX_COUNT];/*BW40_24G_Diff*/ + /*For HT<->legacy pwr diff */ + char txpwr_legacyhtdiff[MAX_RF_PATH][MAX_TX_COUNT];/*OFDM_24G_Diff*/ + + u8 txpwr_5g_bw40base[MAX_RF_PATH][CHANNEL_MAX_NUMBER]; + u8 txpwr_5g_bw80base[MAX_RF_PATH][CHANNEL_MAX_NUMBER_5G_80M]; + char txpwr_5g_ofdmdiff[MAX_RF_PATH][MAX_TX_COUNT]; + char txpwr_5g_bw20diff[MAX_RF_PATH][MAX_TX_COUNT]; + char txpwr_5g_bw40diff[MAX_RF_PATH][MAX_TX_COUNT]; + char txpwr_5g_bw80diff[MAX_RF_PATH][MAX_TX_COUNT]; + + u8 txpwr_safetyflag; /* Band edge enable flag */ + u16 eeprom_txpowerdiff; + u8 legacy_httxpowerdiff; /* Legacy to HT rate power diff */ + u8 antenna_txpwdiff[3]; + + u8 eeprom_regulatory; + u8 eeprom_thermalmeter; + u8 thermalmeter[2];/*ThermalMeter, index 0 for RFIC0, and 1 for RFIC1 */ + u16 tssi_13dbm; + u8 crystalcap; /* CrystalCap. */ + u8 delta_iqk; + u8 delta_lck; + + u8 legacy_ht_txpowerdiff; /*Legacy to HT rate power diff */ + bool b_apk_thermalmeterignore; + + bool b1x1_recvcombine; + bool b1ss_support; + + /*channel plan */ + u8 channel_plan; +}; + +struct rtl_ps_ctl { + bool pwrdomain_protect; + bool b_in_powersavemode; + bool rfchange_inprogress; + bool b_swrf_processing; + bool b_hwradiooff; + /* + * just for PCIE ASPM + * If it supports ASPM, Offset[560h] = 0x40, + * otherwise Offset[560h] = 0x00. + * */ + bool b_support_aspm; + bool b_support_backdoor; + + /*for LPS */ + enum rt_psmode dot11_psmode; /*Power save mode configured. */ + bool b_swctrl_lps; + bool b_fwctrl_lps; + u8 fwctrl_psmode; + /*For Fw control LPS mode */ + u8 b_reg_fwctrl_lps; + /*Record Fw PS mode status. */ + bool b_fw_current_inpsmode; + u8 reg_max_lps_awakeintvl; + bool report_linked; + bool b_low_power_enable;/*for 32k*/ + + /*for IPS */ + bool b_inactiveps; + + u32 rfoff_reason; + + /*RF OFF Level */ + u32 cur_ps_level; + u32 reg_rfps_level; + + /*just for PCIE ASPM */ + u8 const_amdpci_aspm; + + enum rf_pwrstate inactive_pwrstate; + enum rf_pwrstate rfpwr_state; /*cur power state */ + + /* for SW LPS*/ + bool sw_ps_enabled; + bool state; + bool state_inap; + bool multi_buffered; + u16 nullfunc_seq; + unsigned int dtim_counter; + unsigned int sleep_ms; + unsigned long last_sleep_jiffies; + unsigned long last_awake_jiffies; + unsigned long last_delaylps_stamp_jiffies; + unsigned long last_dtim; + unsigned long last_beacon; + unsigned long last_action; + unsigned long last_slept; + + /*For P2P PS */ + struct rtl_p2p_ps_info p2p_ps_info; + u8 pwr_mode; + u8 smart_ps; +}; + +struct rtl_stats { + u8 psaddr[ETH_ALEN]; + u32 mac_time[2]; + s8 rssi; + u8 signal; + u8 noise; + u8 rate; /* hw desc rate */ + u8 rawdata; + u8 received_channel; + u8 control; + u8 mask; + u8 freq; + u16 len; + u64 tsf; + u32 beacon_time; + u8 nic_type; + u16 length; + u8 signalquality; /*in 0-100 index. */ + /* + * Real power in dBm for this packet, + * no beautification and aggregation. + * */ + s32 recvsignalpower; + s8 rxpower; /*in dBm Translate from PWdB */ + u8 signalstrength; /*in 0-100 index. */ + u16 b_hwerror:1; + u16 b_crc:1; + u16 b_icv:1; + u16 b_shortpreamble:1; + u16 antenna:1; + u16 decrypted:1; + u16 wakeup:1; + u32 timestamp_low; + u32 timestamp_high; + bool b_shift; + + u8 rx_drvinfo_size; + u8 rx_bufshift; + bool b_isampdu; + bool b_isfirst_ampdu; + bool rx_is40Mhzpacket; + u32 rx_pwdb_all; + u8 rx_mimo_signalstrength[4]; /*in 0~100 index */ + s8 rx_mimo_signalquality[4]; + u8 rx_mimo_evm_dbm[4]; + u16 cfo_short[4]; /* per-path's Cfo_short */ + u16 cfo_tail[4]; + + u8 rx_pwr[4]; /* per-path's pwdb */ + u8 rx_snr[4]; /* per-path's SNR */ + u8 bandwidth; + u8 bt_coex_pwr_adjust; + bool b_packet_matchbssid; + bool b_is_cck; + bool b_is_ht; + bool b_packet_toself; + bool b_packet_beacon; /*for rssi */ + char cck_adc_pwdb[4]; /*for rx path selection */ + + u8 packet_report_type; + + u32 macid; + u8 wake_match; + u32 bt_rx_rssi_percentage; + u32 macid_valid_entry[2]; +}; + +struct rt_link_detect { + /* count for raoming */ + u32 bcn_rx_inperiod; + u32 roam_times; + + u32 num_tx_in4period[4]; + u32 num_rx_in4period[4]; + + u32 num_tx_inperiod; + u32 num_rx_inperiod; + + bool b_busytraffic; + bool b_tx_busy_traffic; + bool b_rx_busy_traffic; + bool b_higher_busytraffic; + bool b_higher_busyrxtraffic; + + u32 tidtx_in4period[MAX_TID_COUNT][4]; + u32 tidtx_inperiod[MAX_TID_COUNT]; + bool higher_busytxtraffic[MAX_TID_COUNT]; +}; + +struct rtl_tcb_desc { + u8 b_packet_bw:1; + u8 b_multicast:1; + u8 b_broadcast:1; + + u8 b_rts_stbc:1; + u8 b_rts_enable:1; + u8 b_cts_enable:1; + u8 b_rts_use_shortpreamble:1; + u8 b_rts_use_shortgi:1; + u8 rts_sc:1; + u8 b_rts_bw:1; + u8 rts_rate; + + u8 use_shortgi:1; + u8 use_shortpreamble:1; + u8 use_driver_rate:1; + u8 disable_ratefallback:1; + + u8 ratr_index; + u8 mac_id; + u8 hw_rate; + + u8 b_last_inipkt:1; + u8 b_cmd_or_init:1; + u8 queue_index; + + /* early mode */ + u8 empkt_num; + /* The max value by HW */ + u32 empkt_len[10]; + bool btx_enable_sw_calc_duration; + /* used for hal construct pkt, + * we may set desc when tx */ + u8 self_desc; +}; + +struct proxim { + bool proxim_on; + + void *proximity_priv; + int (*proxim_rx)(struct ieee80211_hw *hw, struct rtl_stats *status, + struct sk_buff *skb); + u8 (*proxim_get_var)(struct ieee80211_hw *hw, u8 type); +}; + +struct rtl_hal_ops { + int (*init_sw_vars) (struct ieee80211_hw * hw); + void (*deinit_sw_vars) (struct ieee80211_hw * hw); + void (*read_eeprom_info) (struct ieee80211_hw * hw); + void (*interrupt_recognized) (struct ieee80211_hw * hw, + u32 * p_inta, u32 * p_intb); + int (*hw_init) (struct ieee80211_hw * hw); + void (*hw_disable) (struct ieee80211_hw * hw); + void (*hw_suspend) (struct ieee80211_hw * hw); + void (*hw_resume) (struct ieee80211_hw * hw); + void (*enable_interrupt) (struct ieee80211_hw * hw); + void (*disable_interrupt) (struct ieee80211_hw * hw); + int (*set_network_type) (struct ieee80211_hw * hw, + enum nl80211_iftype type); + void (*set_chk_bssid)(struct ieee80211_hw *hw, + bool check_bssid); + void (*set_bw_mode) (struct ieee80211_hw * hw, + enum nl80211_channel_type ch_type); + u8(*switch_channel) (struct ieee80211_hw * hw); + void (*set_qos) (struct ieee80211_hw * hw, int aci); + void (*set_bcn_reg) (struct ieee80211_hw * hw); + void (*set_bcn_intv) (struct ieee80211_hw * hw); + void (*update_interrupt_mask) (struct ieee80211_hw * hw, + u32 add_msr, u32 rm_msr); + void (*get_hw_reg) (struct ieee80211_hw * hw, u8 variable, u8 * val); + void (*set_hw_reg) (struct ieee80211_hw * hw, u8 variable, u8 * val); + void (*update_rate_tbl) (struct ieee80211_hw * hw, + struct ieee80211_sta *sta, u8 rssi_level); + void (*pre_fill_tx_bd_desc) (struct ieee80211_hw *hw, u8 *tx_bd_desc, + u8 *desc, u8 queue_index, + struct sk_buff *skb, dma_addr_t addr); + u16 (*rx_desc_buff_remained_cnt) (struct ieee80211_hw *hw, + u8 queue_index); + void (*rx_check_dma_ok) (struct ieee80211_hw *hw, u8 *header_desc, + u8 queue_index); + void (*fill_tx_desc) (struct ieee80211_hw * hw, + struct ieee80211_hdr * hdr, + u8 * pdesc_tx, u8 * pbd_desc, + struct ieee80211_tx_info * info, +/**/ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) +/**/ + struct ieee80211_sta *sta, +/**/ +#endif +/**/ + struct sk_buff * skb, u8 hw_queue, + struct rtl_tcb_desc *ptcb_desc); + void (*fill_tx_cmddesc) (struct ieee80211_hw * hw, u8 * pdesc, + bool b_firstseg, bool b_lastseg, + struct sk_buff * skb); + bool(*query_rx_desc) (struct ieee80211_hw * hw, + struct rtl_stats * status, + struct ieee80211_rx_status * rx_status, + u8 * pdesc, struct sk_buff * skb); + void (*set_channel_access) (struct ieee80211_hw * hw); + bool(*radio_onoff_checking) (struct ieee80211_hw * hw, u8 * valid); + void (*dm_watchdog) (struct ieee80211_hw * hw); + void (*scan_operation_backup) (struct ieee80211_hw * hw, u8 operation); + bool(*set_rf_power_state) (struct ieee80211_hw * hw, + enum rf_pwrstate rfpwr_state); + void (*led_control) (struct ieee80211_hw * hw, + enum led_ctl_mode ledaction); + void (*set_desc) (struct ieee80211_hw *hw, u8 * pdesc, bool istx, + u8 desc_name, u8 * val); + u32(*get_desc) (u8 * pdesc, bool istx, u8 desc_name); + bool (*is_tx_desc_closed) (struct ieee80211_hw *hw, + u8 hw_queue, u16 index); + void (*tx_polling) (struct ieee80211_hw * hw, u8 hw_queue); + void (*enable_hw_sec) (struct ieee80211_hw * hw); + void (*set_key) (struct ieee80211_hw * hw, u32 key_index, + u8 * p_macaddr, bool is_group, u8 enc_algo, + bool is_wepkey, bool clear_all); + void (*init_sw_leds) (struct ieee80211_hw * hw); + u32(*get_bbreg) (struct ieee80211_hw * hw, u32 regaddr, u32 bitmask); + void (*set_bbreg) (struct ieee80211_hw * hw, u32 regaddr, u32 bitmask, + u32 data); + u32(*get_rfreg) (struct ieee80211_hw * hw, enum radio_path rfpath, + u32 regaddr, u32 bitmask); + void (*set_rfreg) (struct ieee80211_hw * hw, enum radio_path rfpath, + u32 regaddr, u32 bitmask, u32 data); + void (*allow_all_destaddr)(struct ieee80211_hw *hw, + bool allow_all_da, bool write_into_reg); + void (*linked_set_reg) (struct ieee80211_hw * hw); + void (*check_switch_to_dmdp) (struct ieee80211_hw * hw); + void (*dualmac_easy_concurrent) (struct ieee80211_hw *hw); + void (*dualmac_switch_to_dmdp) (struct ieee80211_hw *hw); + void (*c2h_command_handle) (struct ieee80211_hw *hw); + void (*bt_wifi_media_status_notify) (struct ieee80211_hw *hw, bool mstate); + void (*bt_turn_off_bt_coexist_before_enter_lps) (struct ieee80211_hw *hw); + void (*fill_h2c_cmd) (struct ieee80211_hw *hw, u8 element_id, + u32 cmd_len, u8 *p_cmdbuffer); + bool (*get_btc_status) (void); + u32 (*rx_command_packet_handler)(struct ieee80211_hw *hw, struct rtl_stats status, struct sk_buff *skb); +}; + +struct rtl_intf_ops { + /*com */ + void (*read_efuse_byte)(struct ieee80211_hw *hw, u16 _offset, u8 *pbuf); + int (*adapter_start) (struct ieee80211_hw * hw); + void (*adapter_stop) (struct ieee80211_hw * hw); + bool (*check_buddy_priv)(struct ieee80211_hw *hw, + struct rtl_priv **buddy_priv); + +/**/ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) + int (*adapter_tx) (struct ieee80211_hw * hw, struct sk_buff * skb, + struct rtl_tcb_desc *ptcb_desc); +#else +/**/ + int (*adapter_tx) (struct ieee80211_hw *hw, + struct ieee80211_sta *sta, + struct sk_buff *skb, + struct rtl_tcb_desc *ptcb_desc); +/**/ +#endif +/**/ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) + void (*flush)(struct ieee80211_hw *hw, u32 queues, bool drop); +#else + void (*flush)(struct ieee80211_hw *hw, bool drop); +#endif + int (*reset_trx_ring) (struct ieee80211_hw * hw); +/**/ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) + bool (*waitq_insert) (struct ieee80211_hw *hw, struct sk_buff *skb); +#else +/**/ + bool (*waitq_insert) (struct ieee80211_hw *hw, + struct ieee80211_sta *sta, + struct sk_buff *skb); +/**/ +#endif +/**/ + + /*pci */ + void (*disable_aspm) (struct ieee80211_hw * hw); + void (*enable_aspm) (struct ieee80211_hw * hw); + + /*usb */ +}; + +struct rtl_mod_params { + /* default: 0 = using hardware encryption */ + bool sw_crypto; + + /* default: 1 = using no linked power save */ + bool b_inactiveps; + + /* default: 1 = using linked sw power save */ + bool b_swctrl_lps; + + /* default: 1 = using linked fw power save */ + bool b_fwctrl_lps; +}; + +struct rtl_hal_cfg { + u8 bar_id; + bool write_readback; + char *name; + char *fw_name; + struct rtl_hal_ops *ops; + struct rtl_mod_params *mod_params; + + /*this map used for some registers or vars + defined int HAL but used in MAIN */ + u32 maps[RTL_VAR_MAP_MAX]; + +}; + +struct rtl_locks { + /* mutex */ + struct mutex conf_mutex; + + /*spin lock */ + spinlock_t ips_lock; + spinlock_t irq_th_lock; + spinlock_t h2c_lock; + spinlock_t rf_ps_lock; + spinlock_t rf_lock; + spinlock_t lps_lock; + spinlock_t waitq_lock; + spinlock_t entry_list_lock; + + /*FW clock change */ + spinlock_t fw_ps_lock; + + /*Dul mac*/ + spinlock_t cck_and_rw_pagea_lock; + + /*Easy concurrent*/ + spinlock_t check_sendpkt_lock; + + spinlock_t iqk_lock; +}; + +struct rtl_works { + struct ieee80211_hw *hw; + + /*timer */ + struct timer_list watchdog_timer; + struct timer_list dualmac_easyconcurrent_retrytimer; + struct timer_list fw_clockoff_timer; + struct timer_list fast_antenna_trainning_timer; + /*task */ + struct tasklet_struct irq_tasklet; + struct tasklet_struct irq_prepare_bcn_tasklet; + + /*work queue */ + struct workqueue_struct *rtl_wq; + struct delayed_work watchdog_wq; + struct delayed_work ips_nic_off_wq; + + /* For SW LPS */ + struct delayed_work ps_work; + struct delayed_work ps_rfon_wq; + struct delayed_work fwevt_wq; +}; + +struct rtl_debug { + u32 dbgp_type[DBGP_TYPE_MAX]; + u32 global_debuglevel; + u64 global_debugcomponents; + + /* add for proc debug */ + struct proc_dir_entry *proc_dir; + char proc_name[20]; +}; + +#define MIMO_PS_STATIC 0 +#define MIMO_PS_DYNAMIC 1 +#define MIMO_PS_NOLIMIT 3 + +struct rtl_dualmac_easy_concurrent_ctl { + enum band_type currentbandtype_backfordmdp; + bool bclose_bbandrf_for_dmsp; + bool bchange_to_dmdp; + bool bchange_to_dmsp; + bool bswitch_in_process; +}; + +struct rtl_dmsp_ctl { + bool bactivescan_for_slaveofdmsp; + bool bscan_for_anothermac_fordmsp; + bool bscan_for_itself_fordmsp; + bool bwritedig_for_anothermacofdmsp; + u32 curdigvalue_for_anothermacofdmsp; + bool bchangecckpdstate_for_anothermacofdmsp; + u8 curcckpdstate_for_anothermacofdmsp; + bool bchangetxhighpowerlvl_for_anothermacofdmsp; + u8 curtxhighlvl_for_anothermacofdmsp; + long rssivalmin_for_anothermacofdmsp; +}; + +struct rtl_global_var { + /* from this list we can get + * other adapter's rtl_priv */ + struct list_head glb_priv_list; + spinlock_t glb_list_lock; +}; + +struct rtl_btc_info { + u8 bt_type; + u8 btcoexist; + u8 ant_num; +}; + +struct rtl_btc_ops { + void (*btc_init_variables) (struct rtl_priv *rtlpriv); + void (*btc_init_hal_vars) (struct rtl_priv *rtlpriv); + void (*btc_init_hw_config) (struct rtl_priv *rtlpriv); + void (*btc_ips_notify) (struct rtl_priv *rtlpriv, u8 type); + void (*btc_scan_notify) (struct rtl_priv *rtlpriv, u8 scantype); + void (*btc_connect_notify) (struct rtl_priv *rtlpriv, u8 action); + void (*btc_mediastatus_notify) (struct rtl_priv *rtlpriv, + enum rt_media_status mstatus); + void (*btc_periodical) (struct rtl_priv *rtlpriv); + void (*btc_halt_notify) (void); + void (*btc_btinfo_notify) (struct rtl_priv *rtlpriv, + u8 * tmp_buf, u8 length); + bool (*btc_is_limited_dig) (struct rtl_priv *rtlpriv); + bool (*btc_is_disable_edca_turbo) (struct rtl_priv *rtlpriv); + bool (*btc_is_bt_disabled) (struct rtl_priv *rtlpriv); +}; + +struct rtl_bt_coexist { + struct rtl_btc_ops *btc_ops; + struct rtl_btc_info btc_info; +}; + + +struct rtl_priv { + struct list_head list; +#ifdef VIF_TODO + struct vif_priv vif_priv; +#endif + struct rtl_priv *buddy_priv; + struct rtl_global_var *glb_var; + struct rtl_dualmac_easy_concurrent_ctl easy_concurrent_ctl; + struct rtl_dmsp_ctl dmsp_ctl; + struct rtl_locks locks; + struct rtl_works works; + struct rtl_mac mac80211; + struct rtl_hal rtlhal; + struct rtl_regulatory regd; + struct rtl_rfkill rfkill; + struct rtl_io io; + struct rtl_phy phy; + struct rtl_dm dm; + struct rtl_security sec; + struct rtl_efuse efuse; + + struct rtl_ps_ctl psc; + struct rate_adaptive ra; + struct dynamic_primary_cca primarycca; + struct wireless_stats stats; + struct rt_link_detect link_info; + struct false_alarm_statistics falsealm_cnt; + + struct rtl_rate_priv *rate_priv; + + struct rtl_debug dbg; + + /* sta entry list for ap adhoc or mesh */ + struct list_head entry_list; + + /* + *hal_cfg : for diff cards + *intf_ops : for diff interrface usb/pcie + */ + struct rtl_hal_cfg *cfg; + struct rtl_intf_ops *intf_ops; + + /*this var will be set by set_bit, + and was used to indicate status of + interface or hardware */ + unsigned long status; + + /* intel Proximity, should be alloc mem + * in intel Proximity module and can only + * be used in intel Proximity mode */ + struct proxim proximity; + + /*for bt coexist use*/ + struct rtl_bt_coexist btcoexist; + + /* seperate 92ee from other ICs, + * 92ee use new trx flow. */ + bool use_new_trx_flow; + /*This must be the last item so + that it points to the data allocated + beyond this structure like: + rtl_pci_priv or rtl_usb_priv */ + u8 priv[0]; +}; + +#define rtl_priv(hw) (((struct rtl_priv *)(hw)->priv)) +#define rtl_mac(rtlpriv) (&((rtlpriv)->mac80211)) +#define rtl_hal(rtlpriv) (&((rtlpriv)->rtlhal)) +#define rtl_efuse(rtlpriv) (&((rtlpriv)->efuse)) +#define rtl_psc(rtlpriv) (&((rtlpriv)->psc)) +#define rtl_sec(rtlpriv) (&((rtlpriv)->sec)) +#define rtl_dm(rtlpriv) (&((rtlpriv)->dm)) +/*************************************** + Bluetooth Co-existance Related +****************************************/ + +enum bt_ant_num { + ANT_X2 = 0, + ANT_X1 = 1, +}; + +enum bt_co_type { + BT_2WIRE = 0, + BT_ISSC_3WIRE = 1, + BT_ACCEL = 2, + BT_CSR_BC4 = 3, + BT_CSR_BC8 = 4, + BT_RTL8756 = 5, + BT_RTL8723A = 6, + BT_RTL8821A = 7, + BT_RTL8723B = 8, + BT_RTL8192E = 9, + BT_RTL8812A = 11, +}; + +enum bt_total_ant_num{ + ANT_TOTAL_X2 = 0, + ANT_TOTAL_X1 = 1 +}; + +enum bt_cur_state { + BT_OFF = 0, + BT_ON = 1, +}; + +enum bt_service_type { + BT_SCO = 0, + BT_A2DP = 1, + BT_HID = 2, + BT_HID_IDLE = 3, + BT_SCAN = 4, + BT_IDLE = 5, + BT_OTHER_ACTION = 6, + BT_BUSY = 7, + BT_OTHERBUSY = 8, + BT_PAN = 9, +}; + +enum bt_radio_shared { + BT_RADIO_SHARED = 0, + BT_RADIO_INDIVIDUAL = 1, +}; + +struct bt_coexist_info { + + /* EEPROM BT info. */ + u8 eeprom_bt_coexist; + u8 eeprom_bt_type; + u8 eeprom_bt_ant_num; + u8 eeprom_bt_ant_isolation; + u8 eeprom_bt_radio_shared; + + u8 bt_coexistence; + u8 bt_ant_num; + u8 bt_coexist_type; + u8 bt_state; + u8 bt_cur_state; /* 0:on, 1:off */ + u8 bt_ant_isolation; /* 0:good, 1:bad */ + u8 bt_pape_ctrl; /* 0:SW, 1:SW/HW dynamic */ + u8 bt_service; + u8 bt_radio_shared_type; + u8 bt_rfreg_origin_1e; + u8 bt_rfreg_origin_1f; + u8 bt_rssi_state; + u32 ratio_tx; + u32 ratio_pri; + u32 bt_edca_ul; + u32 bt_edca_dl; + + bool b_init_set; + bool b_bt_busy_traffic; + bool b_bt_traffic_mode_set; + bool b_bt_non_traffic_mode_set; + + bool b_fw_coexist_all_off; + bool b_sw_coexist_all_off; + bool b_hw_coexist_all_off; + u32 current_state; + u32 previous_state; + u32 current_state_h; + u32 previous_state_h; + + u8 bt_pre_rssi_state; + u8 bt_pre_rssi_state1; + + u8 b_reg_bt_iso; + u8 b_reg_bt_sco; + bool b_balance_on; + u8 bt_active_zero_cnt; + bool b_cur_bt_disabled; + bool b_pre_bt_disabled; + + u8 bt_profile_case; + u8 bt_profile_action; + bool b_bt_busy; + bool b_hold_for_bt_operation; + u8 lps_counter; +}; + + +/**************************************** + mem access macro define start + Call endian free function when + 1. Read/write packet content. + 2. Before write integer to IO. + 3. After read integer from IO. +****************************************/ +/* Convert little data endian to host */ +#define EF1BYTE(_val) \ + ((u8)(_val)) +#define EF2BYTE(_val) \ + (le16_to_cpu(_val)) +#define EF4BYTE(_val) \ + (le32_to_cpu(_val)) + +/* Read data from memory */ +#define READEF1BYTE(_ptr) \ + EF1BYTE(*((u8 *)(_ptr))) +#define READEF2BYTE(_ptr) \ + EF2BYTE(*((u16 *)(_ptr))) +#define READEF4BYTE(_ptr) \ + EF4BYTE(*((u32 *)(_ptr))) + +/* Write data to memory */ +#define WRITEEF1BYTE(_ptr, _val) \ + (*((u8 *)(_ptr)))=EF1BYTE(_val) +#define WRITEEF2BYTE(_ptr, _val) \ + (*((u16 *)(_ptr)))=EF2BYTE(_val) +#define WRITEEF4BYTE(_ptr, _val) \ + (*((u32 *)(_ptr)))=EF4BYTE(_val) + +/*Example: +BIT_LEN_MASK_32(0) => 0x00000000 +BIT_LEN_MASK_32(1) => 0x00000001 +BIT_LEN_MASK_32(2) => 0x00000003 +BIT_LEN_MASK_32(32) => 0xFFFFFFFF*/ +#define BIT_LEN_MASK_32(__bitlen) \ + (0xFFFFFFFF >> (32 - (__bitlen))) +#define BIT_LEN_MASK_16(__bitlen) \ + (0xFFFF >> (16 - (__bitlen))) +#define BIT_LEN_MASK_8(__bitlen) \ + (0xFF >> (8 - (__bitlen))) + +/*Example: +BIT_OFFSET_LEN_MASK_32(0, 2) => 0x00000003 +BIT_OFFSET_LEN_MASK_32(16, 2) => 0x00030000*/ +#define BIT_OFFSET_LEN_MASK_32(__bitoffset, __bitlen) \ + (BIT_LEN_MASK_32(__bitlen) << (__bitoffset)) +#define BIT_OFFSET_LEN_MASK_16(__bitoffset, __bitlen) \ + (BIT_LEN_MASK_16(__bitlen) << (__bitoffset)) +#define BIT_OFFSET_LEN_MASK_8(__bitoffset, __bitlen) \ + (BIT_LEN_MASK_8(__bitlen) << (__bitoffset)) + +/*Description: +Return 4-byte value in host byte ordering from +4-byte pointer in little-endian system.*/ +#define LE_P4BYTE_TO_HOST_4BYTE(__pstart) \ + (EF4BYTE(*((u32 *)(__pstart)))) +#define LE_P2BYTE_TO_HOST_2BYTE(__pstart) \ + (EF2BYTE(*((u16 *)(__pstart)))) +#define LE_P1BYTE_TO_HOST_1BYTE(__pstart) \ + (EF1BYTE(*((u8 *)(__pstart)))) + +/*Description: +Translate subfield (continuous bits in little-endian) of 4-byte +value to host byte ordering.*/ +#define LE_BITS_TO_4BYTE(__pstart, __bitoffset, __bitlen) \ + ( \ + ( LE_P4BYTE_TO_HOST_4BYTE(__pstart) >> (__bitoffset) ) & \ + BIT_LEN_MASK_32(__bitlen) \ + ) +#define LE_BITS_TO_2BYTE(__pstart, __bitoffset, __bitlen) \ + ( \ + ( LE_P2BYTE_TO_HOST_2BYTE(__pstart) >> (__bitoffset) ) & \ + BIT_LEN_MASK_16(__bitlen) \ + ) +#define LE_BITS_TO_1BYTE(__pstart, __bitoffset, __bitlen) \ + ( \ + ( LE_P1BYTE_TO_HOST_1BYTE(__pstart) >> (__bitoffset) ) & \ + BIT_LEN_MASK_8(__bitlen) \ + ) + +/*Description: +Mask subfield (continuous bits in little-endian) of 4-byte value +and return the result in 4-byte value in host byte ordering.*/ +#define LE_BITS_CLEARED_TO_4BYTE(__pstart, __bitoffset, __bitlen) \ + ( \ + LE_P4BYTE_TO_HOST_4BYTE(__pstart) & \ + ( ~BIT_OFFSET_LEN_MASK_32(__bitoffset, __bitlen) ) \ + ) +#define LE_BITS_CLEARED_TO_2BYTE(__pstart, __bitoffset, __bitlen) \ + ( \ + LE_P2BYTE_TO_HOST_2BYTE(__pstart) & \ + ( ~BIT_OFFSET_LEN_MASK_16(__bitoffset, __bitlen) ) \ + ) +#define LE_BITS_CLEARED_TO_1BYTE(__pstart, __bitoffset, __bitlen) \ + ( \ + LE_P1BYTE_TO_HOST_1BYTE(__pstart) & \ + ( ~BIT_OFFSET_LEN_MASK_8(__bitoffset, __bitlen) ) \ + ) + +/*Description: +Set subfield of little-endian 4-byte value to specified value. */ +#define SET_BITS_TO_LE_4BYTE(__pstart, __bitoffset, __bitlen, __val) \ + *((u32 *)(__pstart)) = EF4BYTE \ + ( \ + LE_BITS_CLEARED_TO_4BYTE(__pstart, __bitoffset, __bitlen) | \ + ( (((u32)__val) & BIT_LEN_MASK_32(__bitlen)) << (__bitoffset) )\ + ); +#define SET_BITS_TO_LE_2BYTE(__pstart, __bitoffset, __bitlen, __val) \ + *((u16 *)(__pstart)) = EF2BYTE \ + ( \ + LE_BITS_CLEARED_TO_2BYTE(__pstart, __bitoffset, __bitlen) | \ + ( (((u16)__val) & BIT_LEN_MASK_16(__bitlen)) << (__bitoffset) )\ + ); +#define SET_BITS_TO_LE_1BYTE(__pstart, __bitoffset, __bitlen, __val) \ + *((u8 *)(__pstart)) = EF1BYTE \ + ( \ + LE_BITS_CLEARED_TO_1BYTE(__pstart, __bitoffset, __bitlen) | \ + ( (((u8)__val) & BIT_LEN_MASK_8(__bitlen)) << (__bitoffset) ) \ + ); + +#define N_BYTE_ALIGMENT(__value, __aligment) ((__aligment == 1) ? \ + (__value) : (((__value + __aligment - 1) / __aligment) * __aligment)) + +/**************************************** + mem access macro define end +****************************************/ + +#define byte(x,n) ((x >> (8 * n)) & 0xff) + +#define packet_get_type(_packet) (EF1BYTE((_packet).octet[0]) & 0xFC) +#define RTL_WATCH_DOG_TIME 2000 +#define MSECS(t) msecs_to_jiffies(t) +#define WLAN_FC_GET_VERS(fc) ((fc) & IEEE80211_FCTL_VERS) +#define WLAN_FC_GET_TYPE(fc) ((fc) & IEEE80211_FCTL_FTYPE) +#define WLAN_FC_GET_STYPE(fc) ((fc) & IEEE80211_FCTL_STYPE) +#define WLAN_FC_MORE_DATA(fc) ((fc) & IEEE80211_FCTL_MOREDATA) +#define SEQ_TO_SN(seq) (((seq) & IEEE80211_SCTL_SEQ) >> 4) +#define SN_TO_SEQ(ssn) (((ssn) << 4) & IEEE80211_SCTL_SEQ) +#define MAX_SN ((IEEE80211_SCTL_SEQ) >> 4) + +#define RT_RF_OFF_LEVL_ASPM BIT(0) /*PCI ASPM */ +#define RT_RF_OFF_LEVL_CLK_REQ BIT(1) /*PCI clock request */ +#define RT_RF_OFF_LEVL_PCI_D3 BIT(2) /*PCI D3 mode */ +/*NIC halt, re-initialize hw parameters*/ +#define RT_RF_OFF_LEVL_HALT_NIC BIT(3) +#define RT_RF_OFF_LEVL_FREE_FW BIT(4) /*FW free, re-download the FW */ +#define RT_RF_OFF_LEVL_FW_32K BIT(5) /*FW in 32k */ +/*Always enable ASPM and Clock Req in initialization.*/ +#define RT_RF_PS_LEVEL_ALWAYS_ASPM BIT(6) +/* no matter RFOFF or SLEEP we set PS_ASPM_LEVL*/ +#define RT_PS_LEVEL_ASPM BIT(7) +/*When LPS is on, disable 2R if no packet is received or transmittd.*/ +#define RT_RF_LPS_DISALBE_2R BIT(30) +#define RT_RF_LPS_LEVEL_ASPM BIT(31) /*LPS with ASPM */ +#define RT_IN_PS_LEVEL(ppsc, _ps_flg) \ + ((ppsc->cur_ps_level & _ps_flg) ? true : false) +#define RT_CLEAR_PS_LEVEL(ppsc, _ps_flg) \ + (ppsc->cur_ps_level &= (~(_ps_flg))) +#define RT_SET_PS_LEVEL(ppsc, _ps_flg) \ + (ppsc->cur_ps_level |= _ps_flg) + +#define container_of_dwork_rtl(x,y,z) \ + container_of(container_of(x, struct delayed_work, work), y, z) + +#define FILL_OCTET_STRING(_os,_octet,_len) \ + (_os).octet=(u8*)(_octet); \ + (_os).length=(_len); + +#define CP_MACADDR(des,src) \ + ((des)[0]=(src)[0],(des)[1]=(src)[1],\ + (des)[2]=(src)[2],(des)[3]=(src)[3],\ + (des)[4]=(src)[4],(des)[5]=(src)[5]) + +static inline u8 rtl_read_byte(struct rtl_priv *rtlpriv, u32 addr) +{ + return rtlpriv->io.read8_sync(rtlpriv, addr); +} + +static inline u16 rtl_read_word(struct rtl_priv *rtlpriv, u32 addr) +{ + return rtlpriv->io.read16_sync(rtlpriv, addr); +} + +static inline u32 rtl_read_dword(struct rtl_priv *rtlpriv, u32 addr) +{ + return rtlpriv->io.read32_sync(rtlpriv, addr); +} + +static inline void rtl_write_byte(struct rtl_priv *rtlpriv, u32 addr, u8 val8) +{ + rtlpriv->io.write8_async(rtlpriv, addr, val8); + + if (rtlpriv->cfg->write_readback) + rtlpriv->io.read8_sync(rtlpriv, addr); +} + +static inline void rtl_write_word(struct rtl_priv *rtlpriv, u32 addr, u16 val16) +{ + rtlpriv->io.write16_async(rtlpriv, addr, val16); + + if (rtlpriv->cfg->write_readback) + rtlpriv->io.read16_sync(rtlpriv, addr); +} + +static inline void rtl_write_dword(struct rtl_priv *rtlpriv, + u32 addr, u32 val32) +{ + rtlpriv->io.write32_async(rtlpriv, addr, val32); + + if (rtlpriv->cfg->write_readback) + rtlpriv->io.read32_sync(rtlpriv, addr); +} + +static inline u32 rtl_get_bbreg(struct ieee80211_hw *hw, + u32 regaddr, u32 bitmask) +{ + return ((struct rtl_priv *)(hw)->priv)->cfg->ops->get_bbreg(hw, + regaddr, + bitmask); +} + +static inline void rtl_set_bbreg(struct ieee80211_hw *hw, u32 regaddr, + u32 bitmask, u32 data) +{ + ((struct rtl_priv *)(hw)->priv)->cfg->ops->set_bbreg(hw, + regaddr, bitmask, + data); + +} + +static inline u32 rtl_get_rfreg(struct ieee80211_hw *hw, + enum radio_path rfpath, u32 regaddr, + u32 bitmask) +{ + return ((struct rtl_priv *)(hw)->priv)->cfg->ops->get_rfreg(hw, + rfpath, + regaddr, + bitmask); +} + +static inline void rtl_set_rfreg(struct ieee80211_hw *hw, + enum radio_path rfpath, u32 regaddr, + u32 bitmask, u32 data) +{ + ((struct rtl_priv *)(hw)->priv)->cfg->ops->set_rfreg(hw, + rfpath, regaddr, + bitmask, data); +} + +static inline bool is_hal_stop(struct rtl_hal *rtlhal) +{ + return (_HAL_STATE_STOP == rtlhal->state); +} + +static inline void set_hal_start(struct rtl_hal *rtlhal) +{ + rtlhal->state = _HAL_STATE_START; +} + +static inline void set_hal_stop(struct rtl_hal *rtlhal) +{ + rtlhal->state = _HAL_STATE_STOP; +} + +static inline u8 get_rf_type(struct rtl_phy *rtlphy) +{ + return rtlphy->rf_type; +} + +static inline struct ieee80211_hdr *rtl_get_hdr(struct sk_buff *skb) +{ + return (struct ieee80211_hdr *)(skb->data); +} + +static inline u16 rtl_get_fc(struct sk_buff *skb) +{ + return le16_to_cpu(rtl_get_hdr(skb)->frame_control); +} + +static inline u16 rtl_get_tid_h(struct ieee80211_hdr *hdr) +{ + return (ieee80211_get_qos_ctl(hdr))[0] & IEEE80211_QOS_CTL_TID_MASK; +} + +static inline u16 rtl_get_tid(struct sk_buff *skb) +{ + return rtl_get_tid_h(rtl_get_hdr(skb)); +} + +static inline struct ieee80211_sta *rtl_find_sta(struct ieee80211_hw *hw, + u8 *mac_addr) +{ + struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); + return ieee80211_find_sta(mac->vif, mac_addr); +} + +struct ieee80211_hw *rtl_pci_get_hw_pointer(void); +#endif --- linux-3.13.0.orig/drivers/staging/serqt_usb2/serqt_usb2.c +++ linux-3.13.0/drivers/staging/serqt_usb2/serqt_usb2.c @@ -725,7 +725,7 @@ goto startup_error; } - switch (serial->dev->descriptor.idProduct) { + switch (le16_to_cpu(serial->dev->descriptor.idProduct)) { case QUATECH_DSU100: case QUATECH_QSU100: case QUATECH_ESU100A: --- linux-3.13.0.orig/drivers/staging/speakup/main.c +++ linux-3.13.0/drivers/staging/speakup/main.c @@ -2220,6 +2220,7 @@ unregister_keyboard_notifier(&keyboard_notifier_block); unregister_vt_notifier(&vt_notifier_block); speakup_unregister_devsynth(); + speakup_cancel_paste(); del_timer(&cursor_timer); kthread_stop(speakup_task); speakup_task = NULL; --- linux-3.13.0.orig/drivers/staging/speakup/selection.c +++ linux-3.13.0/drivers/staging/speakup/selection.c @@ -4,6 +4,8 @@ #include #include /* for dev_warn */ #include +#include +#include #include "speakup.h" @@ -121,20 +123,24 @@ return 0; } -/* TODO: move to some helper thread, probably. That'd fix having to check for - * in_atomic(). */ -int speakup_paste_selection(struct tty_struct *tty) -{ +struct speakup_paste_work { + struct work_struct work; + struct tty_struct *tty; +}; + +static void __speakup_paste_selection(struct work_struct *work) +{ + struct speakup_paste_work *spw = + container_of(work, struct speakup_paste_work, work); + struct tty_struct *tty = xchg(&spw->tty, NULL); struct vc_data *vc = (struct vc_data *) tty->driver_data; int pasted = 0, count; DECLARE_WAITQUEUE(wait, current); + add_wait_queue(&vc->paste_wait, &wait); while (sel_buffer && sel_buffer_lth > pasted) { set_current_state(TASK_INTERRUPTIBLE); if (test_bit(TTY_THROTTLED, &tty->flags)) { - if (in_atomic()) - /* if we are in an interrupt handler, abort */ - break; schedule(); continue; } @@ -146,6 +152,26 @@ } remove_wait_queue(&vc->paste_wait, &wait); current->state = TASK_RUNNING; + tty_kref_put(tty); +} + +static struct speakup_paste_work speakup_paste_work = { + .work = __WORK_INITIALIZER(speakup_paste_work.work, + __speakup_paste_selection) +}; + +int speakup_paste_selection(struct tty_struct *tty) +{ + if (cmpxchg(&speakup_paste_work.tty, NULL, tty) != NULL) + return -EBUSY; + + tty_kref_get(tty); + schedule_work_on(WORK_CPU_UNBOUND, &speakup_paste_work.work); return 0; } +void speakup_cancel_paste(void) +{ + cancel_work_sync(&speakup_paste_work.work); + tty_kref_put(speakup_paste_work.tty); +} --- linux-3.13.0.orig/drivers/staging/speakup/speakup.h +++ linux-3.13.0/drivers/staging/speakup/speakup.h @@ -77,6 +77,7 @@ extern void speakup_clear_selection(void); extern int speakup_set_selection(struct tty_struct *tty); extern int speakup_paste_selection(struct tty_struct *tty); +extern void speakup_cancel_paste(void); extern void speakup_register_devsynth(void); extern void speakup_unregister_devsynth(void); extern void synth_write(const char *buf, size_t count); --- linux-3.13.0.orig/drivers/staging/vt6655/bssdb.c +++ linux-3.13.0/drivers/staging/vt6655/bssdb.c @@ -1029,7 +1029,7 @@ pDevice->byERPFlag &= ~(WLAN_SET_ERP_USE_PROTECTION(1)); } - { + if (pDevice->eCommandState == WLAN_ASSOCIATE_WAIT) { pDevice->byReAssocCount++; if ((pDevice->byReAssocCount > 10) && (pDevice->bLinkPass != true)) { //10 sec timeout printk("Re-association timeout!!!\n"); --- linux-3.13.0.orig/drivers/staging/vt6655/device_main.c +++ linux-3.13.0/drivers/staging/vt6655/device_main.c @@ -2431,6 +2431,7 @@ unsigned char byData = 0; int ii = 0; // unsigned char byRSSI; + unsigned long flags; MACvReadISR(pDevice->PortOffset, &pDevice->dwIsr); @@ -2455,7 +2456,8 @@ handled = 1; MACvIntDisable(pDevice->PortOffset); - spin_lock_irq(&pDevice->lock); + + spin_lock_irqsave(&pDevice->lock, flags); //Make sure current page is 0 VNSvInPortB(pDevice->PortOffset + MAC_REG_PAGE1SEL, &byOrgPageSel); @@ -2696,7 +2698,8 @@ MACvSelectPage1(pDevice->PortOffset); } - spin_unlock_irq(&pDevice->lock); + spin_unlock_irqrestore(&pDevice->lock, flags); + MACvIntEnable(pDevice->PortOffset, IMR_MASK_VALUE); return IRQ_RETVAL(handled); --- linux-3.13.0.orig/drivers/staging/vt6656/baseband.c +++ linux-3.13.0/drivers/staging/vt6656/baseband.c @@ -1464,7 +1464,6 @@ if( bScanning ) { // need Max sensitivity //RSSI -69, -70,.... - if(pDevice->byBBPreEDIndex == 0) break; pDevice->byBBPreEDIndex = 0; ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0xC9, 0x00); //CR201(0xC9) ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0xCE, 0x30); //CR206(0xCE) @@ -1607,7 +1606,6 @@ if( bScanning ) { // need Max sensitivity //RSSI -69, -70, ... - if(pDevice->byBBPreEDIndex == 0) break; pDevice->byBBPreEDIndex = 0; ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0xC9, 0x00); //CR201(0xC9) ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0xCE, 0x24); //CR206(0xCE) @@ -1759,7 +1757,6 @@ case RF_VT3342A0: //RobertYu:20060627, testing table if( bScanning ) { // need Max sensitivity //RSSI -67, -68, ... - if(pDevice->byBBPreEDIndex == 0) break; pDevice->byBBPreEDIndex = 0; ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0xC9, 0x00); //CR201(0xC9) ControlvWriteByte(pDevice, MESSAGE_REQUEST_BBREG, 0xCE, 0x38); //CR206(0xCE) --- linux-3.13.0.orig/drivers/staging/vt6656/card.c +++ linux-3.13.0/drivers/staging/vt6656/card.c @@ -731,7 +731,7 @@ uBeaconInterval = wBeaconInterval * 1024; // Next TBTT = ((local_current_TSF / beacon_interval) + 1 ) * beacon_interval - uLowNextTBTT = ((qwTSF & 0xffffffffU) >> 10) << 10; + uLowNextTBTT = ((qwTSF & 0xffffffffULL) >> 10) << 10; uLowRemain = (uLowNextTBTT) % uBeaconInterval; uHighRemain = ((0x80000000 % uBeaconInterval) * 2 * (u32)(qwTSF >> 32)) % uBeaconInterval; --- linux-3.13.0.orig/drivers/staging/zram/zram_drv.c +++ linux-3.13.0/drivers/staging/zram/zram_drv.c @@ -430,7 +430,8 @@ } if (page_zero_filled(uncmem)) { - kunmap_atomic(user_mem); + if (user_mem) + kunmap_atomic(user_mem); /* Free memory associated with this sector now. */ zram_free_page(zram, index); @@ -552,14 +553,14 @@ size_t index; struct zram_meta *meta; - flush_work(&zram->free_work); - down_write(&zram->init_lock); if (!zram->init_done) { up_write(&zram->init_lock); return; } + flush_work(&zram->free_work); + meta = zram->meta; zram->init_done = 0; @@ -621,6 +622,8 @@ disksize = PAGE_ALIGN(disksize); meta = zram_meta_alloc(disksize); + if (!meta) + return -ENOMEM; down_write(&zram->init_lock); if (zram->init_done) { up_write(&zram->init_lock); --- linux-3.13.0.orig/drivers/target/iscsi/iscsi_target.c +++ linux-3.13.0/drivers/target/iscsi/iscsi_target.c @@ -52,7 +52,7 @@ static LIST_HEAD(g_tiqn_list); static LIST_HEAD(g_np_list); static DEFINE_SPINLOCK(tiqn_lock); -static DEFINE_SPINLOCK(np_lock); +static DEFINE_MUTEX(np_lock); static struct idr tiqn_idr; struct idr sess_idr; @@ -307,6 +307,9 @@ return false; } +/* + * Called with mutex np_lock held + */ static struct iscsi_np *iscsit_get_np( struct __kernel_sockaddr_storage *sockaddr, int network_transport) @@ -314,11 +317,10 @@ struct iscsi_np *np; bool match; - spin_lock_bh(&np_lock); list_for_each_entry(np, &g_np_list, np_list) { - spin_lock(&np->np_thread_lock); + spin_lock_bh(&np->np_thread_lock); if (np->np_thread_state != ISCSI_NP_THREAD_ACTIVE) { - spin_unlock(&np->np_thread_lock); + spin_unlock_bh(&np->np_thread_lock); continue; } @@ -330,13 +332,11 @@ * while iscsi_tpg_add_network_portal() is called. */ np->np_exports++; - spin_unlock(&np->np_thread_lock); - spin_unlock_bh(&np_lock); + spin_unlock_bh(&np->np_thread_lock); return np; } - spin_unlock(&np->np_thread_lock); + spin_unlock_bh(&np->np_thread_lock); } - spin_unlock_bh(&np_lock); return NULL; } @@ -350,16 +350,22 @@ struct sockaddr_in6 *sock_in6; struct iscsi_np *np; int ret; + + mutex_lock(&np_lock); + /* * Locate the existing struct iscsi_np if already active.. */ np = iscsit_get_np(sockaddr, network_transport); - if (np) + if (np) { + mutex_unlock(&np_lock); return np; + } np = kzalloc(sizeof(struct iscsi_np), GFP_KERNEL); if (!np) { pr_err("Unable to allocate memory for struct iscsi_np\n"); + mutex_unlock(&np_lock); return ERR_PTR(-ENOMEM); } @@ -382,6 +388,7 @@ ret = iscsi_target_setup_login_socket(np, sockaddr); if (ret != 0) { kfree(np); + mutex_unlock(&np_lock); return ERR_PTR(ret); } @@ -390,6 +397,7 @@ pr_err("Unable to create kthread: iscsi_np\n"); ret = PTR_ERR(np->np_thread); kfree(np); + mutex_unlock(&np_lock); return ERR_PTR(ret); } /* @@ -400,10 +408,10 @@ * point because iscsi_np has not been added to g_np_list yet. */ np->np_exports = 1; + np->np_thread_state = ISCSI_NP_THREAD_ACTIVE; - spin_lock_bh(&np_lock); list_add_tail(&np->np_list, &g_np_list); - spin_unlock_bh(&np_lock); + mutex_unlock(&np_lock); pr_debug("CORE[0] - Added Network Portal: %s:%hu on %s\n", np->np_ip, np->np_port, np->np_transport->name); @@ -470,9 +478,9 @@ np->np_transport->iscsit_free_np(np); - spin_lock_bh(&np_lock); + mutex_lock(&np_lock); list_del(&np->np_list); - spin_unlock_bh(&np_lock); + mutex_unlock(&np_lock); pr_debug("CORE[0] - Removed Network Portal: %s:%hu on %s\n", np->np_ip, np->np_port, np->np_transport->name); @@ -622,7 +630,7 @@ { struct iscsi_cmd *cmd; - cmd = iscsit_allocate_cmd(conn, GFP_KERNEL); + cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE); if (!cmd) return -1; @@ -777,7 +785,7 @@ spin_unlock_bh(&conn->cmd_lock); list_for_each_entry_safe(cmd, cmd_p, &ack_list, i_conn_node) { - list_del(&cmd->i_conn_node); + list_del_init(&cmd->i_conn_node); iscsit_free_cmd(cmd, false); } } @@ -1281,7 +1289,7 @@ if (cmd->data_direction != DMA_TO_DEVICE) { pr_err("Command ITT: 0x%08x received DataOUT for a" " NON-WRITE command.\n", cmd->init_task_tag); - return iscsit_reject_cmd(cmd, ISCSI_REASON_PROTOCOL_ERROR, buf); + return iscsit_dump_data_payload(conn, payload_length, 1); } se_cmd = &cmd->se_cmd; iscsit_mod_dataout_timer(cmd); @@ -1556,7 +1564,9 @@ * Initiator is expecting a NopIN ping reply.. */ if (hdr->itt != RESERVED_ITT) { - BUG_ON(!cmd); + if (!cmd) + return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR, + (unsigned char *)hdr); spin_lock_bh(&conn->cmd_lock); list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list); @@ -2460,6 +2470,7 @@ { struct iscsi_cmd *cmd; struct iscsi_conn *conn_p; + bool found = false; /* * Only send a Asynchronous Message on connections whos network @@ -2468,14 +2479,15 @@ list_for_each_entry(conn_p, &conn->sess->sess_conn_list, conn_list) { if (conn_p->conn_state == TARG_CONN_STATE_LOGGED_IN) { iscsit_inc_conn_usage_count(conn_p); + found = true; break; } } - if (!conn_p) + if (!found) return; - cmd = iscsit_allocate_cmd(conn_p, GFP_ATOMIC); + cmd = iscsit_allocate_cmd(conn_p, TASK_RUNNING); if (!cmd) { iscsit_dec_conn_usage_count(conn_p); return; @@ -3348,7 +3360,9 @@ #define SENDTARGETS_BUF_LIMIT 32768U -static int iscsit_build_sendtargets_response(struct iscsi_cmd *cmd) +static int +iscsit_build_sendtargets_response(struct iscsi_cmd *cmd, + enum iscsit_transport_type network_transport) { char *payload = NULL; struct iscsi_conn *conn = cmd->conn; @@ -3425,6 +3439,9 @@ struct iscsi_np *np = tpg_np->tpg_np; bool inaddr_any = iscsit_check_inaddr_any(np); + if (np->np_network_transport != network_transport) + continue; + if (!target_name_printed) { len = sprintf(buf, "TargetName=%s", tiqn->tiqn); @@ -3478,11 +3495,12 @@ int iscsit_build_text_rsp(struct iscsi_cmd *cmd, struct iscsi_conn *conn, - struct iscsi_text_rsp *hdr) + struct iscsi_text_rsp *hdr, + enum iscsit_transport_type network_transport) { int text_length, padding; - text_length = iscsit_build_sendtargets_response(cmd); + text_length = iscsit_build_sendtargets_response(cmd, network_transport); if (text_length < 0) return text_length; @@ -3520,7 +3538,7 @@ u32 tx_size = 0; int text_length, iov_count = 0, rc; - rc = iscsit_build_text_rsp(cmd, conn, hdr); + rc = iscsit_build_text_rsp(cmd, conn, hdr, ISCSI_TCP); if (rc < 0) return rc; @@ -3700,7 +3718,7 @@ break; case ISTATE_REMOVE: spin_lock_bh(&conn->cmd_lock); - list_del(&cmd->i_conn_node); + list_del_init(&cmd->i_conn_node); spin_unlock_bh(&conn->cmd_lock); iscsit_free_cmd(cmd, false); @@ -3951,7 +3969,7 @@ switch (hdr->opcode & ISCSI_OPCODE_MASK) { case ISCSI_OP_SCSI_CMD: - cmd = iscsit_allocate_cmd(conn, GFP_KERNEL); + cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE); if (!cmd) goto reject; @@ -3963,28 +3981,28 @@ case ISCSI_OP_NOOP_OUT: cmd = NULL; if (hdr->ttt == cpu_to_be32(0xFFFFFFFF)) { - cmd = iscsit_allocate_cmd(conn, GFP_KERNEL); + cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE); if (!cmd) goto reject; } ret = iscsit_handle_nop_out(conn, cmd, buf); break; case ISCSI_OP_SCSI_TMFUNC: - cmd = iscsit_allocate_cmd(conn, GFP_KERNEL); + cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE); if (!cmd) goto reject; ret = iscsit_handle_task_mgt_cmd(conn, cmd, buf); break; case ISCSI_OP_TEXT: - cmd = iscsit_allocate_cmd(conn, GFP_KERNEL); + cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE); if (!cmd) goto reject; ret = iscsit_handle_text_cmd(conn, cmd, buf); break; case ISCSI_OP_LOGOUT: - cmd = iscsit_allocate_cmd(conn, GFP_KERNEL); + cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE); if (!cmd) goto reject; @@ -4143,7 +4161,7 @@ spin_lock_bh(&conn->cmd_lock); list_for_each_entry_safe(cmd, cmd_tmp, &conn->conn_cmd_list, i_conn_node) { - list_del(&cmd->i_conn_node); + list_del_init(&cmd->i_conn_node); spin_unlock_bh(&conn->cmd_lock); iscsit_increment_maxcmdsn(cmd, sess); @@ -4188,7 +4206,9 @@ iscsit_stop_timers_for_cmds(conn); iscsit_stop_nopin_response_timer(conn); iscsit_stop_nopin_timer(conn); - iscsit_free_queue_reqs_for_conn(conn); + + if (conn->conn_transport->iscsit_wait_conn) + conn->conn_transport->iscsit_wait_conn(conn); /* * During Connection recovery drop unacknowledged out of order @@ -4206,6 +4226,7 @@ iscsit_clear_ooo_cmdsns_for_conn(conn); iscsit_release_commands_from_conn(conn); } + iscsit_free_queue_reqs_for_conn(conn); /* * Handle decrementing session or connection usage count if @@ -4491,6 +4512,7 @@ { struct iscsi_conn *l_conn; struct iscsi_session *sess = conn->sess; + bool conn_found = false; if (!sess) return; @@ -4499,12 +4521,13 @@ list_for_each_entry(l_conn, &sess->sess_conn_list, conn_list) { if (l_conn->cid == cid) { iscsit_inc_conn_usage_count(l_conn); + conn_found = true; break; } } spin_unlock_bh(&sess->conn_lock); - if (!l_conn) + if (!conn_found) return; if (l_conn->sock) --- linux-3.13.0.orig/drivers/target/iscsi/iscsi_target_auth.c +++ linux-3.13.0/drivers/target/iscsi/iscsi_target_auth.c @@ -314,6 +314,16 @@ goto out; } /* + * During mutual authentication, the CHAP_C generated by the + * initiator must not match the original CHAP_C generated by + * the target. + */ + if (!memcmp(challenge_binhex, chap->challenge, CHAP_CHALLENGE_LENGTH)) { + pr_err("initiator CHAP_C matches target CHAP_C, failing" + " login attempt\n"); + goto out; + } + /* * Generate CHAP_N and CHAP_R for mutual authentication. */ tfm = crypto_alloc_hash("md5", 0, CRYPTO_ALG_ASYNC); --- linux-3.13.0.orig/drivers/target/iscsi/iscsi_target_erl2.c +++ linux-3.13.0/drivers/target/iscsi/iscsi_target_erl2.c @@ -138,7 +138,7 @@ list_for_each_entry_safe(cmd, cmd_tmp, &cr->conn_recovery_cmd_list, i_conn_node) { - list_del(&cmd->i_conn_node); + list_del_init(&cmd->i_conn_node); cmd->conn = NULL; spin_unlock(&cr->conn_recovery_cmd_lock); iscsit_free_cmd(cmd, true); @@ -160,7 +160,7 @@ list_for_each_entry_safe(cmd, cmd_tmp, &cr->conn_recovery_cmd_list, i_conn_node) { - list_del(&cmd->i_conn_node); + list_del_init(&cmd->i_conn_node); cmd->conn = NULL; spin_unlock(&cr->conn_recovery_cmd_lock); iscsit_free_cmd(cmd, true); @@ -216,7 +216,7 @@ } cr = cmd->cr; - list_del(&cmd->i_conn_node); + list_del_init(&cmd->i_conn_node); return --cr->cmd_count; } @@ -297,7 +297,7 @@ if (!(cmd->cmd_flags & ICF_OOO_CMDSN)) continue; - list_del(&cmd->i_conn_node); + list_del_init(&cmd->i_conn_node); spin_unlock_bh(&conn->cmd_lock); iscsit_free_cmd(cmd, true); @@ -335,7 +335,7 @@ /* * Only perform connection recovery on ISCSI_OP_SCSI_CMD or * ISCSI_OP_NOOP_OUT opcodes. For all other opcodes call - * list_del(&cmd->i_conn_node); to release the command to the + * list_del_init(&cmd->i_conn_node); to release the command to the * session pool and remove it from the connection's list. * * Also stop the DataOUT timer, which will be restarted after @@ -351,7 +351,7 @@ " CID: %hu\n", cmd->iscsi_opcode, cmd->init_task_tag, cmd->cmd_sn, conn->cid); - list_del(&cmd->i_conn_node); + list_del_init(&cmd->i_conn_node); spin_unlock_bh(&conn->cmd_lock); iscsit_free_cmd(cmd, true); spin_lock_bh(&conn->cmd_lock); @@ -371,7 +371,7 @@ */ if (!(cmd->cmd_flags & ICF_OOO_CMDSN) && !cmd->immediate_cmd && iscsi_sna_gte(cmd->cmd_sn, conn->sess->exp_cmd_sn)) { - list_del(&cmd->i_conn_node); + list_del_init(&cmd->i_conn_node); spin_unlock_bh(&conn->cmd_lock); iscsit_free_cmd(cmd, true); spin_lock_bh(&conn->cmd_lock); @@ -393,7 +393,7 @@ cmd->sess = conn->sess; - list_del(&cmd->i_conn_node); + list_del_init(&cmd->i_conn_node); spin_unlock_bh(&conn->cmd_lock); iscsit_free_all_datain_reqs(cmd); --- linux-3.13.0.orig/drivers/target/iscsi/iscsi_target_login.c +++ linux-3.13.0/drivers/target/iscsi/iscsi_target_login.c @@ -249,6 +249,28 @@ mutex_unlock(&auth_id_lock); } +static __printf(2, 3) int iscsi_change_param_sprintf( + struct iscsi_conn *conn, + const char *fmt, ...) +{ + va_list args; + unsigned char buf[64]; + + memset(buf, 0, sizeof buf); + + va_start(args, fmt); + vsnprintf(buf, sizeof buf, fmt, args); + va_end(args); + + if (iscsi_change_param_value(buf, conn->param_list, 0) < 0) { + iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR, + ISCSI_LOGIN_STATUS_NO_RESOURCES); + return -1; + } + + return 0; +} + /* * This is the leading connection of a new session, * or session reinstatement. @@ -337,7 +359,6 @@ { struct iscsi_node_attrib *na; struct iscsi_session *sess = conn->sess; - unsigned char buf[32]; bool iser = false; sess->tpg = conn->tpg; @@ -378,26 +399,16 @@ * * In our case, we have already located the struct iscsi_tiqn at this point. */ - memset(buf, 0, 32); - sprintf(buf, "TargetPortalGroupTag=%hu", sess->tpg->tpgt); - if (iscsi_change_param_value(buf, conn->param_list, 0) < 0) { - iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR, - ISCSI_LOGIN_STATUS_NO_RESOURCES); + if (iscsi_change_param_sprintf(conn, "TargetPortalGroupTag=%hu", sess->tpg->tpgt)) return -1; - } /* * Workaround for Initiators that have broken connection recovery logic. * * "We would really like to get rid of this." Linux-iSCSI.org team */ - memset(buf, 0, 32); - sprintf(buf, "ErrorRecoveryLevel=%d", na->default_erl); - if (iscsi_change_param_value(buf, conn->param_list, 0) < 0) { - iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR, - ISCSI_LOGIN_STATUS_NO_RESOURCES); + if (iscsi_change_param_sprintf(conn, "ErrorRecoveryLevel=%d", na->default_erl)) return -1; - } if (iscsi_login_disable_FIM_keys(conn->param_list, conn) < 0) return -1; @@ -409,12 +420,9 @@ unsigned long mrdsl, off; int rc; - sprintf(buf, "RDMAExtensions=Yes"); - if (iscsi_change_param_value(buf, conn->param_list, 0) < 0) { - iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR, - ISCSI_LOGIN_STATUS_NO_RESOURCES); + if (iscsi_change_param_sprintf(conn, "RDMAExtensions=Yes")) return -1; - } + /* * Make MaxRecvDataSegmentLength PAGE_SIZE aligned for * Immediate Data + Unsolicitied Data-OUT if necessary.. @@ -444,12 +452,8 @@ pr_warn("Aligning ISER MaxRecvDataSegmentLength: %lu down" " to PAGE_SIZE\n", mrdsl); - sprintf(buf, "MaxRecvDataSegmentLength=%lu\n", mrdsl); - if (iscsi_change_param_value(buf, conn->param_list, 0) < 0) { - iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR, - ISCSI_LOGIN_STATUS_NO_RESOURCES); + if (iscsi_change_param_sprintf(conn, "MaxRecvDataSegmentLength=%lu\n", mrdsl)) return -1; - } } return 0; @@ -591,13 +595,8 @@ * * In our case, we have already located the struct iscsi_tiqn at this point. */ - memset(buf, 0, 32); - sprintf(buf, "TargetPortalGroupTag=%hu", sess->tpg->tpgt); - if (iscsi_change_param_value(buf, conn->param_list, 0) < 0) { - iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR, - ISCSI_LOGIN_STATUS_NO_RESOURCES); + if (iscsi_change_param_sprintf(conn, "TargetPortalGroupTag=%hu", sess->tpg->tpgt)) return -1; - } return iscsi_login_disable_FIM_keys(conn->param_list, conn); } @@ -1186,6 +1185,9 @@ conn->sock = NULL; } + if (conn->conn_transport->iscsit_wait_conn) + conn->conn_transport->iscsit_wait_conn(conn); + if (conn->conn_transport->iscsit_free_conn) conn->conn_transport->iscsit_free_conn(conn); @@ -1196,7 +1198,7 @@ static int __iscsi_target_login_thread(struct iscsi_np *np) { u8 *buffer, zero_tsih = 0; - int ret = 0, rc, stop; + int ret = 0, rc; struct iscsi_conn *conn = NULL; struct iscsi_login *login; struct iscsi_portal_group *tpg = NULL; @@ -1210,6 +1212,9 @@ if (np->np_thread_state == ISCSI_NP_THREAD_RESET) { np->np_thread_state = ISCSI_NP_THREAD_ACTIVE; complete(&np->np_restart_comp); + } else if (np->np_thread_state == ISCSI_NP_THREAD_SHUTDOWN) { + spin_unlock_bh(&np->np_thread_lock); + goto exit; } else { np->np_thread_state = ISCSI_NP_THREAD_ACTIVE; } @@ -1402,10 +1407,8 @@ } out: - stop = kthread_should_stop(); - /* Wait for another socket.. */ - if (!stop) - return 1; + return 1; + exit: iscsi_stop_login_thread_timer(np); spin_lock_bh(&np->np_thread_lock); @@ -1422,7 +1425,7 @@ allow_signal(SIGINT); - while (!kthread_should_stop()) { + while (1) { ret = __iscsi_target_login_thread(np); /* * We break and exit here unless another sock_accept() call --- linux-3.13.0.orig/drivers/target/iscsi/iscsi_target_nego.c +++ linux-3.13.0/drivers/target/iscsi/iscsi_target_nego.c @@ -1192,7 +1192,7 @@ */ alloc_tags: tag_num = max_t(u32, ISCSIT_MIN_TAGS, queue_depth); - tag_num += (tag_num / 2) + ISCSIT_EXTRA_TAGS; + tag_num = (tag_num * 2) + ISCSIT_EXTRA_TAGS; tag_size = sizeof(struct iscsi_cmd) + conn->conn_transport->priv_size; ret = transport_alloc_session_tags(sess->se_sess, tag_num, tag_size); --- linux-3.13.0.orig/drivers/target/iscsi/iscsi_target_parameters.c +++ linux-3.13.0/drivers/target/iscsi/iscsi_target_parameters.c @@ -601,7 +601,7 @@ param_list = kzalloc(sizeof(struct iscsi_param_list), GFP_KERNEL); if (!param_list) { pr_err("Unable to allocate memory for struct iscsi_param_list.\n"); - goto err_out; + return -1; } INIT_LIST_HEAD(¶m_list->param_list); INIT_LIST_HEAD(¶m_list->extra_response_list); --- linux-3.13.0.orig/drivers/target/iscsi/iscsi_target_tpg.c +++ linux-3.13.0/drivers/target/iscsi/iscsi_target_tpg.c @@ -137,7 +137,7 @@ list_for_each_entry(tpg, &tiqn->tiqn_tpg_list, tpg_list) { spin_lock(&tpg->tpg_state_lock); - if (tpg->tpg_state == TPG_STATE_FREE) { + if (tpg->tpg_state != TPG_STATE_ACTIVE) { spin_unlock(&tpg->tpg_state_lock); continue; } --- linux-3.13.0.orig/drivers/target/iscsi/iscsi_target_util.c +++ linux-3.13.0/drivers/target/iscsi/iscsi_target_util.c @@ -152,13 +152,16 @@ * May be called from software interrupt (timer) context for allocating * iSCSI NopINs. */ -struct iscsi_cmd *iscsit_allocate_cmd(struct iscsi_conn *conn, gfp_t gfp_mask) +struct iscsi_cmd *iscsit_allocate_cmd(struct iscsi_conn *conn, int state) { struct iscsi_cmd *cmd; struct se_session *se_sess = conn->sess->se_sess; int size, tag; - tag = percpu_ida_alloc(&se_sess->sess_tag_pool, gfp_mask); + tag = percpu_ida_alloc(&se_sess->sess_tag_pool, state); + if (tag < 0) + return NULL; + size = sizeof(struct iscsi_cmd) + conn->conn_transport->priv_size; cmd = (struct iscsi_cmd *)(se_sess->sess_cmd_map + (tag * size)); memset(cmd, 0, size); @@ -926,7 +929,7 @@ u8 state; struct iscsi_cmd *cmd; - cmd = iscsit_allocate_cmd(conn, GFP_ATOMIC); + cmd = iscsit_allocate_cmd(conn, TASK_RUNNING); if (!cmd) return -1; @@ -1292,6 +1295,8 @@ login->login_failed = 1; iscsit_collect_login_stats(conn, status_class, status_detail); + memset(&login->rsp[0], 0, ISCSI_HDR_LEN); + hdr = (struct iscsi_login_rsp *)&login->rsp[0]; hdr->opcode = ISCSI_OP_LOGIN_RSP; hdr->status_class = status_class; @@ -1351,15 +1356,15 @@ struct iscsi_conn *conn, struct iscsi_data_count *count) { - int data = count->data_length, total_tx = 0, tx_loop = 0, iov_len; + int ret, iov_len; struct kvec *iov_p; struct msghdr msg; if (!conn || !conn->sock || !conn->conn_ops) return -1; - if (data <= 0) { - pr_err("Data length is: %d\n", data); + if (count->data_length <= 0) { + pr_err("Data length is: %d\n", count->data_length); return -1; } @@ -1368,20 +1373,16 @@ iov_p = count->iov; iov_len = count->iov_count; - while (total_tx < data) { - tx_loop = kernel_sendmsg(conn->sock, &msg, iov_p, iov_len, - (data - total_tx)); - if (tx_loop <= 0) { - pr_debug("tx_loop: %d total_tx %d\n", - tx_loop, total_tx); - return tx_loop; - } - total_tx += tx_loop; - pr_debug("tx_loop: %d, total_tx: %d, data: %d\n", - tx_loop, total_tx, data); + ret = kernel_sendmsg(conn->sock, &msg, iov_p, iov_len, + count->data_length); + if (ret != count->data_length) { + pr_err("Unexpected ret: %d send data %d\n", + ret, count->data_length); + return -EPIPE; } + pr_debug("ret: %d, sent data: %d\n", ret, count->data_length); - return total_tx; + return ret; } int rx_data( --- linux-3.13.0.orig/drivers/target/iscsi/iscsi_target_util.h +++ linux-3.13.0/drivers/target/iscsi/iscsi_target_util.h @@ -9,7 +9,7 @@ extern void iscsit_free_r2t(struct iscsi_r2t *, struct iscsi_cmd *); extern void iscsit_free_r2ts_from_list(struct iscsi_cmd *); extern struct iscsi_cmd *iscsit_alloc_cmd(struct iscsi_conn *, gfp_t); -extern struct iscsi_cmd *iscsit_allocate_cmd(struct iscsi_conn *, gfp_t); +extern struct iscsi_cmd *iscsit_allocate_cmd(struct iscsi_conn *, int); extern struct iscsi_seq *iscsit_get_seq_holder_for_datain(struct iscsi_cmd *, u32); extern struct iscsi_seq *iscsit_get_seq_holder_for_r2t(struct iscsi_cmd *); extern struct iscsi_r2t *iscsit_get_holder_for_r2tsn(struct iscsi_cmd *, u32); --- linux-3.13.0.orig/drivers/target/loopback/tcm_loop.c +++ linux-3.13.0/drivers/target/loopback/tcm_loop.c @@ -197,7 +197,7 @@ set_host_byte(sc, DID_TRANSPORT_DISRUPTED); goto out_done; } - tl_nexus = tl_hba->tl_nexus; + tl_nexus = tl_tpg->tl_nexus; if (!tl_nexus) { scmd_printk(KERN_ERR, sc, "TCM_Loop I_T Nexus" " does not exist\n"); @@ -262,16 +262,26 @@ * to struct scsi_device */ static int tcm_loop_issue_tmr(struct tcm_loop_tpg *tl_tpg, - struct tcm_loop_nexus *tl_nexus, int lun, int task, enum tcm_tmreq_table tmr) { struct se_cmd *se_cmd = NULL; struct se_session *se_sess; struct se_portal_group *se_tpg; + struct tcm_loop_nexus *tl_nexus; struct tcm_loop_cmd *tl_cmd = NULL; struct tcm_loop_tmr *tl_tmr = NULL; int ret = TMR_FUNCTION_FAILED, rc; + /* + * Locate the tl_nexus and se_sess pointers + */ + tl_nexus = tl_tpg->tl_nexus; + if (!tl_nexus) { + pr_err("Unable to perform device reset without" + " active I_T Nexus\n"); + return ret; + } + tl_cmd = kmem_cache_zalloc(tcm_loop_cmd_cache, GFP_KERNEL); if (!tl_cmd) { pr_err("Unable to allocate memory for tl_cmd\n"); @@ -287,7 +297,7 @@ se_cmd = &tl_cmd->tl_se_cmd; se_tpg = &tl_tpg->tl_se_tpg; - se_sess = tl_nexus->se_sess; + se_sess = tl_tpg->tl_nexus->se_sess; /* * Initialize struct se_cmd descriptor from target_core_mod infrastructure */ @@ -332,7 +342,6 @@ static int tcm_loop_abort_task(struct scsi_cmnd *sc) { struct tcm_loop_hba *tl_hba; - struct tcm_loop_nexus *tl_nexus; struct tcm_loop_tpg *tl_tpg; int ret = FAILED; @@ -340,21 +349,8 @@ * Locate the tcm_loop_hba_t pointer */ tl_hba = *(struct tcm_loop_hba **)shost_priv(sc->device->host); - /* - * Locate the tl_nexus and se_sess pointers - */ - tl_nexus = tl_hba->tl_nexus; - if (!tl_nexus) { - pr_err("Unable to perform device reset without" - " active I_T Nexus\n"); - return FAILED; - } - - /* - * Locate the tl_tpg pointer from TargetID in sc->device->id - */ tl_tpg = &tl_hba->tl_hba_tpgs[sc->device->id]; - ret = tcm_loop_issue_tmr(tl_tpg, tl_nexus, sc->device->lun, + ret = tcm_loop_issue_tmr(tl_tpg, sc->device->lun, sc->tag, TMR_ABORT_TASK); return (ret == TMR_FUNCTION_COMPLETE) ? SUCCESS : FAILED; } @@ -366,7 +362,6 @@ static int tcm_loop_device_reset(struct scsi_cmnd *sc) { struct tcm_loop_hba *tl_hba; - struct tcm_loop_nexus *tl_nexus; struct tcm_loop_tpg *tl_tpg; int ret = FAILED; @@ -374,20 +369,9 @@ * Locate the tcm_loop_hba_t pointer */ tl_hba = *(struct tcm_loop_hba **)shost_priv(sc->device->host); - /* - * Locate the tl_nexus and se_sess pointers - */ - tl_nexus = tl_hba->tl_nexus; - if (!tl_nexus) { - pr_err("Unable to perform device reset without" - " active I_T Nexus\n"); - return FAILED; - } - /* - * Locate the tl_tpg pointer from TargetID in sc->device->id - */ tl_tpg = &tl_hba->tl_hba_tpgs[sc->device->id]; - ret = tcm_loop_issue_tmr(tl_tpg, tl_nexus, sc->device->lun, + + ret = tcm_loop_issue_tmr(tl_tpg, sc->device->lun, 0, TMR_LUN_RESET); return (ret == TMR_FUNCTION_COMPLETE) ? SUCCESS : FAILED; } @@ -987,8 +971,8 @@ struct tcm_loop_nexus *tl_nexus; int ret = -ENOMEM; - if (tl_tpg->tl_hba->tl_nexus) { - pr_debug("tl_tpg->tl_hba->tl_nexus already exists\n"); + if (tl_tpg->tl_nexus) { + pr_debug("tl_tpg->tl_nexus already exists\n"); return -EEXIST; } se_tpg = &tl_tpg->tl_se_tpg; @@ -1023,7 +1007,7 @@ */ __transport_register_session(se_tpg, tl_nexus->se_sess->se_node_acl, tl_nexus->se_sess, tl_nexus); - tl_tpg->tl_hba->tl_nexus = tl_nexus; + tl_tpg->tl_nexus = tl_nexus; pr_debug("TCM_Loop_ConfigFS: Established I_T Nexus to emulated" " %s Initiator Port: %s\n", tcm_loop_dump_proto_id(tl_hba), name); @@ -1039,12 +1023,8 @@ { struct se_session *se_sess; struct tcm_loop_nexus *tl_nexus; - struct tcm_loop_hba *tl_hba = tpg->tl_hba; - if (!tl_hba) - return -ENODEV; - - tl_nexus = tl_hba->tl_nexus; + tl_nexus = tpg->tl_nexus; if (!tl_nexus) return -ENODEV; @@ -1060,13 +1040,13 @@ } pr_debug("TCM_Loop_ConfigFS: Removing I_T Nexus to emulated" - " %s Initiator Port: %s\n", tcm_loop_dump_proto_id(tl_hba), + " %s Initiator Port: %s\n", tcm_loop_dump_proto_id(tpg->tl_hba), tl_nexus->se_sess->se_node_acl->initiatorname); /* * Release the SCSI I_T Nexus to the emulated SAS Target Port */ transport_deregister_session(tl_nexus->se_sess); - tpg->tl_hba->tl_nexus = NULL; + tpg->tl_nexus = NULL; kfree(tl_nexus); return 0; } @@ -1082,7 +1062,7 @@ struct tcm_loop_nexus *tl_nexus; ssize_t ret; - tl_nexus = tl_tpg->tl_hba->tl_nexus; + tl_nexus = tl_tpg->tl_nexus; if (!tl_nexus) return -ENODEV; --- linux-3.13.0.orig/drivers/target/loopback/tcm_loop.h +++ linux-3.13.0/drivers/target/loopback/tcm_loop.h @@ -27,11 +27,6 @@ }; struct tcm_loop_nexus { - int it_nexus_active; - /* - * Pointer to Linux/SCSI HBA from linux/include/scsi_host.h - */ - struct scsi_host *sh; /* * Pointer to TCM session for I_T Nexus */ @@ -51,6 +46,7 @@ atomic_t tl_tpg_port_count; struct se_portal_group tl_se_tpg; struct tcm_loop_hba *tl_hba; + struct tcm_loop_nexus *tl_nexus; }; struct tcm_loop_hba { @@ -59,7 +55,6 @@ struct se_hba_s *se_hba; struct se_lun *tl_hba_lun; struct se_port *tl_hba_lun_sep; - struct tcm_loop_nexus *tl_nexus; struct device dev; struct Scsi_Host *sh; struct tcm_loop_tpg tl_hba_tpgs[TL_TPGS_PER_HBA]; --- linux-3.13.0.orig/drivers/target/target_core_configfs.c +++ linux-3.13.0/drivers/target/target_core_configfs.c @@ -2040,6 +2040,11 @@ " tg_pt_gp ID: %hu\n", tg_pt_gp->tg_pt_gp_valid_id); return -EINVAL; } + if (!(dev->dev_flags & DF_CONFIGURED)) { + pr_err("Unable to set alua_access_state while device is" + " not configured\n"); + return -ENODEV; + } ret = kstrtoul(page, 0, &tmp); if (ret < 0) { --- linux-3.13.0.orig/drivers/target/target_core_device.c +++ linux-3.13.0/drivers/target/target_core_device.c @@ -616,6 +616,7 @@ dev->export_count--; spin_unlock(&hba->device_lock); + lun->lun_sep = NULL; lun->lun_se_dev = NULL; } @@ -798,10 +799,10 @@ pr_err("emulate_write_cache not supported for pSCSI\n"); return -EINVAL; } - if (dev->transport->get_write_cache) { - pr_warn("emulate_write_cache cannot be changed when underlying" - " HW reports WriteCacheEnabled, ignoring request\n"); - return 0; + if (flag && + dev->transport->get_write_cache) { + pr_err("emulate_write_cache not supported for this device\n"); + return -EINVAL; } dev->dev_attrib.emulate_write_cache = flag; @@ -1320,7 +1321,8 @@ * Check to see if there are any existing persistent reservation APTPL * pre-registrations that need to be enabled for this LUN ACL.. */ - core_scsi3_check_aptpl_registration(lun->lun_se_dev, tpg, lun, lacl); + core_scsi3_check_aptpl_registration(lun->lun_se_dev, tpg, lun, nacl, + lacl->mapped_lun); return 0; } --- linux-3.13.0.orig/drivers/target/target_core_pr.c +++ linux-3.13.0/drivers/target/target_core_pr.c @@ -944,10 +944,10 @@ struct se_device *dev, struct se_portal_group *tpg, struct se_lun *lun, - struct se_lun_acl *lun_acl) + struct se_node_acl *nacl, + u32 mapped_lun) { - struct se_node_acl *nacl = lun_acl->se_lun_nacl; - struct se_dev_entry *deve = nacl->device_list[lun_acl->mapped_lun]; + struct se_dev_entry *deve = nacl->device_list[mapped_lun]; if (dev->dev_reservation_flags & DRF_SPC2_RESERVATIONS) return 0; @@ -2009,7 +2009,7 @@ struct t10_reservation *pr_tmpl = &dev->t10_pr; unsigned char isid_buf[PR_REG_ISID_LEN], *isid_ptr = NULL; sense_reason_t ret = TCM_NO_SENSE; - int pr_holder = 0; + int pr_holder = 0, type; if (!se_sess || !se_lun) { pr_err("SPC-3 PR: se_sess || struct se_lun is NULL!\n"); @@ -2131,6 +2131,7 @@ ret = TCM_RESERVATION_CONFLICT; goto out; } + type = pr_reg->pr_res_type; spin_lock(&pr_tmpl->registration_lock); /* @@ -2161,6 +2162,7 @@ * Release the calling I_T Nexus registration now.. */ __core_scsi3_free_registration(cmd->se_dev, pr_reg, NULL, 1); + pr_reg = NULL; /* * From spc4r17, section 5.7.11.3 Unregistering @@ -2174,8 +2176,8 @@ * RESERVATIONS RELEASED. */ if (pr_holder && - (pr_reg->pr_res_type == PR_TYPE_WRITE_EXCLUSIVE_REGONLY || - pr_reg->pr_res_type == PR_TYPE_EXCLUSIVE_ACCESS_REGONLY)) { + (type == PR_TYPE_WRITE_EXCLUSIVE_REGONLY || + type == PR_TYPE_EXCLUSIVE_ACCESS_REGONLY)) { list_for_each_entry(pr_reg_p, &pr_tmpl->registration_list, pr_reg_list) { @@ -2194,7 +2196,8 @@ ret = core_scsi3_update_and_write_aptpl(dev, aptpl); out: - core_scsi3_put_pr_reg(pr_reg); + if (pr_reg) + core_scsi3_put_pr_reg(pr_reg); return ret; } --- linux-3.13.0.orig/drivers/target/target_core_pr.h +++ linux-3.13.0/drivers/target/target_core_pr.h @@ -55,7 +55,7 @@ unsigned char *, u16, u32, int, int, u8); extern int core_scsi3_check_aptpl_registration(struct se_device *, struct se_portal_group *, struct se_lun *, - struct se_lun_acl *); + struct se_node_acl *, u32); extern void core_scsi3_free_pr_reg_from_nacl(struct se_device *, struct se_node_acl *); extern void core_scsi3_free_all_registrations(struct se_device *); --- linux-3.13.0.orig/drivers/target/target_core_rd.c +++ linux-3.13.0/drivers/target/target_core_rd.c @@ -178,7 +178,7 @@ - 1; for (j = 0; j < sg_per_table; j++) { - pg = alloc_pages(GFP_KERNEL, 0); + pg = alloc_pages(GFP_KERNEL | __GFP_ZERO, 0); if (!pg) { pr_err("Unable to allocate scatterlist" " pages for struct rd_dev_sg_table\n"); --- linux-3.13.0.orig/drivers/target/target_core_sbc.c +++ linux-3.13.0/drivers/target/target_core_sbc.c @@ -80,7 +80,7 @@ transport_kunmap_data_sg(cmd); } - target_complete_cmd(cmd, GOOD); + target_complete_cmd_with_length(cmd, GOOD, 8); return 0; } @@ -128,7 +128,7 @@ transport_kunmap_data_sg(cmd); } - target_complete_cmd(cmd, GOOD); + target_complete_cmd_with_length(cmd, GOOD, 32); return 0; } @@ -419,13 +419,14 @@ goto out; } - write_sg = kzalloc(sizeof(struct scatterlist) * cmd->t_data_nents, + write_sg = kmalloc(sizeof(struct scatterlist) * cmd->t_data_nents, GFP_KERNEL); if (!write_sg) { pr_err("Unable to allocate compare_and_write sg\n"); ret = TCM_OUT_OF_RESOURCES; goto out; } + sg_init_table(write_sg, cmd->t_data_nents); /* * Setup verify and write data payloads from total NumberLBAs. */ --- linux-3.13.0.orig/drivers/target/target_core_spc.c +++ linux-3.13.0/drivers/target/target_core_spc.c @@ -646,6 +646,7 @@ unsigned char buf[SE_INQUIRY_BUF]; sense_reason_t ret; int p; + int len = 0; memset(buf, 0, SE_INQUIRY_BUF); @@ -663,6 +664,7 @@ } ret = spc_emulate_inquiry_std(cmd, buf); + len = buf[4] + 5; goto out; } @@ -670,6 +672,7 @@ if (cdb[2] == evpd_handlers[p].page) { buf[1] = cdb[2]; ret = evpd_handlers[p].emulate(cmd, buf); + len = get_unaligned_be16(&buf[2]) + 4; goto out; } } @@ -685,7 +688,7 @@ } if (!ret) - target_complete_cmd(cmd, GOOD); + target_complete_cmd_with_length(cmd, GOOD, len); return ret; } @@ -1003,7 +1006,7 @@ transport_kunmap_data_sg(cmd); } - target_complete_cmd(cmd, GOOD); + target_complete_cmd_with_length(cmd, GOOD, length); return 0; } @@ -1180,7 +1183,7 @@ buf[3] = (lun_count & 0xff); transport_kunmap_data_sg(cmd); - target_complete_cmd(cmd, GOOD); + target_complete_cmd_with_length(cmd, GOOD, 8 + lun_count * 8); return 0; } EXPORT_SYMBOL(spc_emulate_report_luns); --- linux-3.13.0.orig/drivers/target/target_core_tpg.c +++ linux-3.13.0/drivers/target/target_core_tpg.c @@ -40,6 +40,7 @@ #include #include "target_core_internal.h" +#include "target_core_pr.h" extern struct se_device *g_lun0_dev; @@ -166,6 +167,13 @@ core_enable_device_list_for_node(lun, NULL, lun->unpacked_lun, lun_access, acl, tpg); + /* + * Check to see if there are any existing persistent reservation + * APTPL pre-registrations that need to be enabled for this dynamic + * LUN ACL now.. + */ + core_scsi3_check_aptpl_registration(dev, tpg, lun, acl, + lun->unpacked_lun); spin_lock(&tpg->tpg_lun_lock); } spin_unlock(&tpg->tpg_lun_lock); --- linux-3.13.0.orig/drivers/target/target_core_transport.c +++ linux-3.13.0/drivers/target/target_core_transport.c @@ -534,7 +534,7 @@ spin_unlock_irqrestore(&cmd->t_state_lock, flags); - complete(&cmd->t_transport_stop_comp); + complete_all(&cmd->t_transport_stop_comp); return 1; } @@ -568,10 +568,11 @@ { struct se_lun *lun = cmd->se_lun; - if (!lun || !cmd->lun_ref_active) + if (!lun) return; - percpu_ref_put(&lun->lun_ref); + if (cmpxchg(&cmd->lun_ref_active, true, false)) + percpu_ref_put(&lun->lun_ref); } void transport_cmd_finish_abort(struct se_cmd *cmd, int remove) @@ -652,7 +653,7 @@ if (cmd->transport_state & CMD_T_ABORTED && cmd->transport_state & CMD_T_STOP) { spin_unlock_irqrestore(&cmd->t_state_lock, flags); - complete(&cmd->t_transport_stop_comp); + complete_all(&cmd->t_transport_stop_comp); return; } else if (cmd->transport_state & CMD_T_FAILED) { INIT_WORK(&cmd->work, target_complete_failure_work); @@ -668,6 +669,23 @@ } EXPORT_SYMBOL(target_complete_cmd); +void target_complete_cmd_with_length(struct se_cmd *cmd, u8 scsi_status, int length) +{ + if (scsi_status == SAM_STAT_GOOD && length < cmd->data_length) { + if (cmd->se_cmd_flags & SCF_UNDERFLOW_BIT) { + cmd->residual_count += cmd->data_length - length; + } else { + cmd->se_cmd_flags |= SCF_UNDERFLOW_BIT; + cmd->residual_count = cmd->data_length - length; + } + + cmd->data_length = length; + } + + target_complete_cmd(cmd, scsi_status); +} +EXPORT_SYMBOL(target_complete_cmd_with_length); + static void target_add_to_state_list(struct se_cmd *cmd) { struct se_device *dev = cmd->se_dev; @@ -1078,6 +1096,7 @@ init_completion(&cmd->cmd_wait_comp); init_completion(&cmd->task_stop_comp); spin_lock_init(&cmd->t_state_lock); + kref_init(&cmd->cmd_kref); cmd->transport_state = CMD_T_DEV_ACTIVE; cmd->se_tfo = tfo; @@ -1708,7 +1727,7 @@ cmd->se_tfo->get_task_tag(cmd)); spin_unlock_irq(&cmd->t_state_lock); - complete(&cmd->t_transport_stop_comp); + complete_all(&cmd->t_transport_stop_comp); return; } @@ -1798,8 +1817,7 @@ if (cmd->se_cmd_flags & SCF_TRANSPORT_TASK_SENSE) { trace_target_cmd_complete(cmd); ret = cmd->se_tfo->queue_status(cmd); - if (ret) - goto out; + goto out; } switch (cmd->data_direction) { @@ -2174,7 +2192,7 @@ * and let it call back once the write buffers are ready. */ target_add_to_state_list(cmd); - if (cmd->data_direction != DMA_TO_DEVICE) { + if (cmd->data_direction != DMA_TO_DEVICE || cmd->data_length == 0) { target_execute_cmd(cmd); return 0; } @@ -2253,7 +2271,6 @@ unsigned long flags; int ret = 0; - kref_init(&se_cmd->cmd_kref); /* * Add a second kref if the fabric caller is expecting to handle * fabric acknowledgement that requires two target_put_sess_cmd() @@ -2303,6 +2320,10 @@ */ int target_put_sess_cmd(struct se_session *se_sess, struct se_cmd *se_cmd) { + if (!se_sess) { + se_cmd->se_tfo->release_cmd(se_cmd); + return 1; + } return kref_put_spinlock_irqsave(&se_cmd->cmd_kref, target_release_cmd_kref, &se_sess->sess_cmd_lock); } @@ -2779,6 +2800,12 @@ int transport_generic_handle_tmr( struct se_cmd *cmd) { + unsigned long flags; + + spin_lock_irqsave(&cmd->t_state_lock, flags); + cmd->transport_state |= CMD_T_ACTIVE; + spin_unlock_irqrestore(&cmd->t_state_lock, flags); + INIT_WORK(&cmd->work, target_tmr_work); queue_work(cmd->se_dev->tmr_wq, &cmd->work); return 0; --- linux-3.13.0.orig/drivers/target/tcm_fc/tfc_cmd.c +++ linux-3.13.0/drivers/target/tcm_fc/tfc_cmd.c @@ -90,18 +90,18 @@ { struct fc_frame *fp; struct fc_lport *lport; - struct se_session *se_sess; + struct ft_sess *sess; if (!cmd) return; - se_sess = cmd->sess->se_sess; + sess = cmd->sess; fp = cmd->req_frame; lport = fr_dev(fp); if (fr_seq(fp)) lport->tt.seq_release(fr_seq(fp)); fc_frame_free(fp); - percpu_ida_free(&se_sess->sess_tag_pool, cmd->se_cmd.map_tag); - ft_sess_put(cmd->sess); /* undo get from lookup at recv */ + percpu_ida_free(&sess->se_sess->sess_tag_pool, cmd->se_cmd.map_tag); + ft_sess_put(sess); /* undo get from lookup at recv */ } void ft_release_cmd(struct se_cmd *se_cmd) @@ -438,7 +438,7 @@ struct se_session *se_sess = sess->se_sess; int tag; - tag = percpu_ida_alloc(&se_sess->sess_tag_pool, GFP_ATOMIC); + tag = percpu_ida_alloc(&se_sess->sess_tag_pool, TASK_RUNNING); if (tag < 0) goto busy; --- linux-3.13.0.orig/drivers/target/tcm_fc/tfc_sess.c +++ linux-3.13.0/drivers/target/tcm_fc/tfc_sess.c @@ -68,6 +68,7 @@ if (tport) { tport->tpg = tpg; + tpg->tport = tport; return tport; } --- linux-3.13.0.orig/drivers/thermal/intel_powerclamp.c +++ linux-3.13.0/drivers/thermal/intel_powerclamp.c @@ -426,7 +426,6 @@ * allowed. thus jiffies are updated properly. */ preempt_disable(); - tick_nohz_idle_enter(); /* mwait until target jiffies is reached */ while (time_before(jiffies, target_jiffies)) { unsigned long ecx = 1; @@ -444,7 +443,6 @@ start_critical_timings(); atomic_inc(&idle_wakeup_counter); } - tick_nohz_idle_exit(); preempt_enable_no_resched(); } del_timer_sync(&wakeup_timer); --- linux-3.13.0.orig/drivers/thermal/thermal_core.c +++ linux-3.13.0/drivers/thermal/thermal_core.c @@ -1742,10 +1742,10 @@ return 0; -unregister_governors: - thermal_unregister_governors(); unregister_class: class_unregister(&thermal_class); +unregister_governors: + thermal_unregister_governors(); error: idr_destroy(&thermal_tz_idr); idr_destroy(&thermal_cdev_idr); --- linux-3.13.0.orig/drivers/thermal/thermal_hwmon.c +++ linux-3.13.0/drivers/thermal/thermal_hwmon.c @@ -140,6 +140,12 @@ return NULL; } +static bool thermal_zone_crit_temp_valid(struct thermal_zone_device *tz) +{ + unsigned long temp; + return tz->ops->get_crit_temp && !tz->ops->get_crit_temp(tz, &temp); +} + int thermal_add_hwmon_sysfs(struct thermal_zone_device *tz) { struct thermal_hwmon_device *hwmon; @@ -189,21 +195,18 @@ if (result) goto free_temp_mem; - if (tz->ops->get_crit_temp) { - unsigned long temperature; - if (!tz->ops->get_crit_temp(tz, &temperature)) { - snprintf(temp->temp_crit.name, - sizeof(temp->temp_crit.name), + if (thermal_zone_crit_temp_valid(tz)) { + snprintf(temp->temp_crit.name, + sizeof(temp->temp_crit.name), "temp%d_crit", hwmon->count); - temp->temp_crit.attr.attr.name = temp->temp_crit.name; - temp->temp_crit.attr.attr.mode = 0444; - temp->temp_crit.attr.show = temp_crit_show; - sysfs_attr_init(&temp->temp_crit.attr.attr); - result = device_create_file(hwmon->device, - &temp->temp_crit.attr); - if (result) - goto unregister_input; - } + temp->temp_crit.attr.attr.name = temp->temp_crit.name; + temp->temp_crit.attr.attr.mode = 0444; + temp->temp_crit.attr.show = temp_crit_show; + sysfs_attr_init(&temp->temp_crit.attr.attr); + result = device_create_file(hwmon->device, + &temp->temp_crit.attr); + if (result) + goto unregister_input; } mutex_lock(&thermal_hwmon_list_lock); @@ -250,7 +253,7 @@ } device_remove_file(hwmon->device, &temp->temp_input.attr); - if (tz->ops->get_crit_temp) + if (thermal_zone_crit_temp_valid(tz)) device_remove_file(hwmon->device, &temp->temp_crit.attr); mutex_lock(&thermal_hwmon_list_lock); --- linux-3.13.0.orig/drivers/thermal/x86_pkg_temp_thermal.c +++ linux-3.13.0/drivers/thermal/x86_pkg_temp_thermal.c @@ -68,6 +68,10 @@ struct thermal_zone_device *tzone; }; +static const struct thermal_zone_params pkg_temp_tz_params = { + .no_hwmon = true, +}; + /* List maintaining number of package instances */ static LIST_HEAD(phy_dev_list); static DEFINE_MUTEX(phy_dev_list_mutex); @@ -446,7 +450,7 @@ thres_count, (thres_count == MAX_NUMBER_OF_TRIPS) ? 0x03 : 0x01, - phy_dev_entry, &tzone_ops, NULL, 0, 0); + phy_dev_entry, &tzone_ops, &pkg_temp_tz_params, 0, 0); if (IS_ERR(phy_dev_entry->tzone)) { err = PTR_ERR(phy_dev_entry->tzone); goto err_ret_free; --- linux-3.13.0.orig/drivers/tty/Kconfig +++ linux-3.13.0/drivers/tty/Kconfig @@ -366,7 +366,7 @@ "Trace data router for MIPI P1149.7 cJTAG standard". config PPC_EPAPR_HV_BYTECHAN - tristate "ePAPR hypervisor byte channel driver" + bool "ePAPR hypervisor byte channel driver" depends on PPC select EPAPR_PARAVIRT help --- linux-3.13.0.orig/drivers/tty/hvc/hvc_console.c +++ linux-3.13.0/drivers/tty/hvc/hvc_console.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -70,6 +71,9 @@ /* Picks up late kicks after list walk but before schedule() */ static int hvc_kicked; +/* hvc_init is triggered from hvc_alloc, i.e. only when actually used */ +static atomic_t hvc_needs_init __read_mostly = ATOMIC_INIT(-1); + static int hvc_init(void); #ifdef CONFIG_MAGIC_SYSRQ @@ -186,7 +190,7 @@ return hvc_driver; } -static int __init hvc_console_setup(struct console *co, char *options) +static int hvc_console_setup(struct console *co, char *options) { if (co->index < 0 || co->index >= MAX_NR_HVC_CONSOLES) return -ENODEV; @@ -851,7 +855,7 @@ int i; /* We wait until a driver actually comes along */ - if (!hvc_driver) { + if (atomic_inc_not_zero(&hvc_needs_init)) { int err = hvc_init(); if (err) return ERR_PTR(err); --- linux-3.13.0.orig/drivers/tty/ipwireless/tty.c +++ linux-3.13.0/drivers/tty/ipwireless/tty.c @@ -177,9 +177,6 @@ ": %d chars not inserted to flip buffer!\n", length - work); - /* - * This may sleep if ->low_latency is set - */ if (work) tty_flip_buffer_push(&tty->port); } --- linux-3.13.0.orig/drivers/tty/n_gsm.c +++ linux-3.13.0/drivers/tty/n_gsm.c @@ -1089,6 +1089,7 @@ { unsigned int addr = 0; unsigned int modem = 0; + unsigned int brk = 0; struct gsm_dlci *dlci; int len = clen; u8 *dp = data; @@ -1115,6 +1116,16 @@ if (len == 0) return; } + len--; + if (len > 0) { + while (gsm_read_ea(&brk, *dp++) == 0) { + len--; + if (len == 0) + return; + } + modem <<= 7; + modem |= (brk & 0x7f); + } tty = tty_port_tty_get(&dlci->port); gsm_process_modem(tty, dlci, modem, clen); if (tty) { --- linux-3.13.0.orig/drivers/tty/n_tty.c +++ linux-3.13.0/drivers/tty/n_tty.c @@ -105,6 +105,7 @@ /* must hold exclusive termios_rwsem to reset these */ unsigned char lnext:1, erasing:1, raw:1, real_raw:1, icanon:1; + unsigned char push:1; /* shared by producer and consumer */ char read_buf[N_TTY_BUF_SIZE]; @@ -319,7 +320,8 @@ static inline void put_tty_queue(unsigned char c, struct n_tty_data *ldata) { - *read_buf_addr(ldata, ldata->read_head++) = c; + *read_buf_addr(ldata, ldata->read_head) = c; + ldata->read_head++; } /** @@ -342,6 +344,7 @@ ldata->erasing = 0; bitmap_zero(ldata->read_flags, N_TTY_BUF_SIZE); + ldata->push = 0; } static void n_tty_packet_mode_flush(struct tty_struct *tty) @@ -813,8 +816,7 @@ struct n_tty_data *ldata = tty->disc_data; size_t echoed; - if ((!L_ECHO(tty) && !L_ECHONL(tty)) || - ldata->echo_mark == ldata->echo_tail) + if (ldata->echo_mark == ldata->echo_tail) return; mutex_lock(&ldata->output_lock); @@ -1238,7 +1240,8 @@ if (L_ECHO(tty)) { echo_char(c, tty); commit_echoes(tty); - } + } else + process_echoes(tty); isig(signal, tty); return; } @@ -1269,7 +1272,7 @@ if (I_IXON(tty)) { if (c == START_CHAR(tty)) { start_tty(tty); - commit_echoes(tty); + process_echoes(tty); return 0; } if (c == STOP_CHAR(tty)) { @@ -1762,7 +1765,16 @@ if (!old || (old->c_lflag ^ tty->termios.c_lflag) & ICANON) { bitmap_zero(ldata->read_flags, N_TTY_BUF_SIZE); - ldata->line_start = ldata->canon_head = ldata->read_tail; + ldata->line_start = ldata->read_tail; + if (!L_ICANON(tty) || !read_cnt(ldata)) { + ldata->canon_head = ldata->read_tail; + ldata->push = 0; + } else { + set_bit((ldata->read_head - 1) & (N_TTY_BUF_SIZE - 1), + ldata->read_flags); + ldata->canon_head = ldata->read_head; + ldata->push = 1; + } ldata->erasing = 0; ldata->lnext = 0; } @@ -1821,8 +1833,10 @@ * Fix tty hang when I_IXON(tty) is cleared, but the tty * been stopped by STOP_CHAR(tty) before it. */ - if (!I_IXON(tty) && old && (old->c_iflag & IXON) && !tty->flow_stopped) + if (!I_IXON(tty) && old && (old->c_iflag & IXON) && !tty->flow_stopped) { start_tty(tty); + process_echoes(tty); + } /* The termios change make the tty ready for I/O */ wake_up_interruptible(&tty->write_wait); @@ -1965,6 +1979,12 @@ * it copies one line of input up to and including the line-delimiting * character into the user-space buffer. * + * NB: When termios is changed from non-canonical to canonical mode and + * the read buffer contains data, n_tty_set_termios() simulates an EOF + * push (as if C-d were input) _without_ the DISABLED_CHAR in the buffer. + * This causes data already processed as input to be immediately available + * as input although a newline has not been received. + * * Called under the atomic_read_lock mutex * * n_tty_read()/consumer path: @@ -2011,7 +2031,7 @@ n += found; c = n; - if (found && read_buf(ldata, eol) == __DISABLED_CHAR) { + if (found && !ldata->push && read_buf(ldata, eol) == __DISABLED_CHAR) { n--; eof_push = !n && ldata->read_tail != ldata->line_start; } @@ -2038,7 +2058,10 @@ ldata->read_tail += c; if (found) { - ldata->line_start = ldata->read_tail; + if (!ldata->push) + ldata->line_start = ldata->read_tail; + else + ldata->push = 0; tty_audit_push(tty); } return eof_push ? -EAGAIN : 0; @@ -2343,8 +2366,12 @@ if (tty->ops->flush_chars) tty->ops->flush_chars(tty); } else { + struct n_tty_data *ldata = tty->disc_data; + while (nr > 0) { + mutex_lock(&ldata->output_lock); c = tty->ops->write(tty, b, nr); + mutex_unlock(&ldata->output_lock); if (c < 0) { retval = c; goto break_out; --- linux-3.13.0.orig/drivers/tty/serial/8250/8250_core.c +++ linux-3.13.0/drivers/tty/serial/8250/8250_core.c @@ -555,7 +555,7 @@ */ if ((p->port.type == PORT_XR17V35X) || (p->port.type == PORT_XR17D15X)) { - serial_out(p, UART_EXAR_SLEEP, 0xff); + serial_out(p, UART_EXAR_SLEEP, sleep ? 0xff : 0); return; } @@ -1520,7 +1520,7 @@ status = serial8250_rx_chars(up, status); } serial8250_modem_status(up); - if (status & UART_LSR_THRE) + if (!up->dma && (status & UART_LSR_THRE)) serial8250_tx_chars(up); spin_unlock_irqrestore(&port->lock, flags); @@ -2334,9 +2334,11 @@ * the trigger, or the MCR RTS bit is cleared. In the case where * the remote UART is not using CTS auto flow control, we must * have sufficient FIFO entries for the latency of the remote - * UART to respond. IOW, at least 32 bytes of FIFO. + * UART to respond. IOW, at least 32 bytes of FIFO. Also enable + * AFE if hw flow control is supported */ - if (up->capabilities & UART_CAP_AFE && port->fifosize >= 32) { + if ((up->capabilities & UART_CAP_AFE && (port->fifosize >= 32)) || + (port->flags & UPF_HARD_FLOW)) { up->mcr &= ~UART_MCR_AFE; if (termios->c_cflag & CRTSCTS) up->mcr |= UART_MCR_AFE; @@ -2670,6 +2672,10 @@ if (port->type == PORT_16550A && port->iotype == UPIO_AU) up->bugs |= UART_BUG_NOMSR; + /* HW bugs may trigger IRQ while IIR == NO_INT */ + if (port->type == PORT_TEGRA) + up->bugs |= UART_BUG_NOMSR; + if (port->type != PORT_UNKNOWN && flags & UART_CONFIG_IRQ) autoconfig_irq(up); --- linux-3.13.0.orig/drivers/tty/serial/8250/8250_dma.c +++ linux-3.13.0/drivers/tty/serial/8250/8250_dma.c @@ -20,12 +20,15 @@ struct uart_8250_port *p = param; struct uart_8250_dma *dma = p->dma; struct circ_buf *xmit = &p->port.state->xmit; - - dma->tx_running = 0; + unsigned long flags; dma_sync_single_for_cpu(dma->txchan->device->dev, dma->tx_addr, UART_XMIT_SIZE, DMA_TO_DEVICE); + spin_lock_irqsave(&p->port.lock, flags); + + dma->tx_running = 0; + xmit->tail += dma->tx_size; xmit->tail &= UART_XMIT_SIZE - 1; p->port.icount.tx += dma->tx_size; @@ -35,6 +38,8 @@ if (!uart_circ_empty(xmit) && !uart_tx_stopped(&p->port)) serial8250_tx_dma(p); + + spin_unlock_irqrestore(&p->port.lock, flags); } static void __dma_rx_complete(void *param) --- linux-3.13.0.orig/drivers/tty/serial/8250/8250_pci.c +++ linux-3.13.0/drivers/tty/serial/8250/8250_pci.c @@ -1259,10 +1259,10 @@ unsigned long base = pci_resource_start(dev, 0); if (base) { u32 tmp; - outl(inl(base + 0x38), base + 0x38); + outl(inl(base + 0x38) | 0x00002000, base + 0x38); tmp = inl(base + 0x3c); outl(tmp | 0x01000000, base + 0x3c); - outl(tmp, base + 0x3c); + outl(tmp &= ~0x01000000, base + 0x3c); } } return 0; @@ -1744,6 +1744,7 @@ #define PCI_DEVICE_ID_TITAN_800E 0xA014 #define PCI_DEVICE_ID_TITAN_200EI 0xA016 #define PCI_DEVICE_ID_TITAN_200EISI 0xA017 +#define PCI_DEVICE_ID_TITAN_200V3 0xA306 #define PCI_DEVICE_ID_TITAN_400V3 0xA310 #define PCI_DEVICE_ID_TITAN_410V3 0xA312 #define PCI_DEVICE_ID_TITAN_800V3 0xA314 @@ -1765,6 +1766,7 @@ #define PCI_DEVICE_ID_COMMTECH_4222PCIE 0x0022 #define PCI_DEVICE_ID_BROADCOM_TRUMANAGE 0x160a #define PCI_DEVICE_ID_AMCC_ADDIDATA_APCI7800 0x818e +#define PCI_DEVICE_ID_INTEL_QRK_UART 0x0936 #define PCI_VENDOR_ID_SUNIX 0x1fd4 #define PCI_DEVICE_ID_SUNIX_1999 0x1999 @@ -1875,6 +1877,13 @@ .subdevice = PCI_ANY_ID, .setup = byt_serial_setup, }, + { + .vendor = PCI_VENDOR_ID_INTEL, + .device = PCI_DEVICE_ID_INTEL_QRK_UART, + .subvendor = PCI_ANY_ID, + .subdevice = PCI_ANY_ID, + .setup = pci_default_setup, + }, /* * ITE */ @@ -2709,6 +2718,7 @@ pbn_ADDIDATA_PCIe_8_3906250, pbn_ce4100_1_115200, pbn_byt, + pbn_qrk, pbn_omegapci, pbn_NETMOS9900_2s_115200, pbn_brcm_trumanage, @@ -3455,6 +3465,12 @@ .uart_offset = 0x80, .reg_shift = 2, }, + [pbn_qrk] = { + .flags = FL_BASE0, + .num_ports = 1, + .base_baud = 2764800, + .reg_shift = 2, + }, [pbn_omegapci] = { .flags = FL_BASE0, .num_ports = 8, @@ -4427,6 +4443,9 @@ { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_200EISI, PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_oxsemi_2_4000000 }, + { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_200V3, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, + pbn_b0_bt_2_921600 }, { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_400V3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_b0_4_921600 }, @@ -5146,6 +5165,12 @@ pbn_byt }, /* + * Intel Quark x1000 + */ + { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_QRK_UART, + PCI_ANY_ID, PCI_ANY_ID, 0, 0, + pbn_qrk }, + /* * Cronyx Omega PCI */ { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_CRONYX_OMEGA, --- linux-3.13.0.orig/drivers/tty/serial/amba-pl011.c +++ linux-3.13.0/drivers/tty/serial/amba-pl011.c @@ -1537,6 +1537,8 @@ /* * Provoke TX FIFO interrupt into asserting. */ + spin_lock_irq(&uap->port.lock); + cr = UART01x_CR_UARTEN | UART011_CR_TXE | UART011_CR_LBE; writew(cr, uap->port.membase + UART011_CR); writew(0, uap->port.membase + UART011_FBRD); @@ -1561,6 +1563,8 @@ cr |= UART01x_CR_UARTEN | UART011_CR_RXE | UART011_CR_TXE; writew(cr, uap->port.membase + UART011_CR); + spin_unlock_irq(&uap->port.lock); + /* * initialise the old status of the modem signals */ @@ -1629,11 +1633,13 @@ * it during startup(). */ uap->autorts = false; + spin_lock_irq(&uap->port.lock); cr = readw(uap->port.membase + UART011_CR); uap->old_cr = cr; cr &= UART011_CR_RTS | UART011_CR_DTR; cr |= UART01x_CR_UARTEN | UART011_CR_TXE; writew(cr, uap->port.membase + UART011_CR); + spin_unlock_irq(&uap->port.lock); /* * disable break condition and fifos --- linux-3.13.0.orig/drivers/tty/serial/atmel_serial.c +++ linux-3.13.0/drivers/tty/serial/atmel_serial.c @@ -825,9 +825,6 @@ atmel_port->desc_rx = NULL; atmel_port->chan_rx = NULL; atmel_port->cookie_rx = -EINVAL; - - if (!atmel_port->is_usart) - del_timer_sync(&atmel_port->uart_timer); } static void atmel_rx_from_dma(struct uart_port *port) @@ -1229,9 +1226,6 @@ DMA_FROM_DEVICE); kfree(pdc->buf); } - - if (!atmel_port->is_usart) - del_timer_sync(&atmel_port->uart_timer); } static void atmel_rx_from_pdc(struct uart_port *port) @@ -1604,12 +1598,13 @@ /* enable xmit & rcvr */ UART_PUT_CR(port, ATMEL_US_TXEN | ATMEL_US_RXEN); + setup_timer(&atmel_port->uart_timer, + atmel_uart_timer_callback, + (unsigned long)port); + if (atmel_use_pdc_rx(port)) { /* set UART timeout */ if (!atmel_port->is_usart) { - setup_timer(&atmel_port->uart_timer, - atmel_uart_timer_callback, - (unsigned long)port); mod_timer(&atmel_port->uart_timer, jiffies + uart_poll_timeout(port)); /* set USART timeout */ @@ -1624,9 +1619,6 @@ } else if (atmel_use_dma_rx(port)) { /* set UART timeout */ if (!atmel_port->is_usart) { - setup_timer(&atmel_port->uart_timer, - atmel_uart_timer_callback, - (unsigned long)port); mod_timer(&atmel_port->uart_timer, jiffies + uart_poll_timeout(port)); /* set USART timeout */ @@ -1650,12 +1642,30 @@ static void atmel_shutdown(struct uart_port *port) { struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); + /* - * Ensure everything is stopped. + * Prevent any tasklets being scheduled during + * cleanup + */ + del_timer_sync(&atmel_port->uart_timer); + + /* + * Clear out any scheduled tasklets before + * we destroy the buffers + */ + tasklet_kill(&atmel_port->tasklet); + + /* + * Ensure everything is stopped and + * disable all interrupts, port and break condition. */ atmel_stop_rx(port); atmel_stop_tx(port); + UART_PUT_CR(port, ATMEL_US_RSTSTA); + UART_PUT_IDR(port, -1); + + /* * Shut-down the DMA. */ @@ -1665,10 +1675,10 @@ atmel_port->release_tx(port); /* - * Disable all interrupts, port and break condition. + * Reset ring buffer pointers */ - UART_PUT_CR(port, ATMEL_US_RSTSTA); - UART_PUT_IDR(port, -1); + atmel_port->rx_ring.head = 0; + atmel_port->rx_ring.tail = 0; /* * Free the interrupt @@ -2441,11 +2451,12 @@ struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); int ret = 0; + tasklet_kill(&atmel_port->tasklet); + device_init_wakeup(&pdev->dev, 0); ret = uart_remove_one_port(&atmel_uart, port); - tasklet_kill(&atmel_port->tasklet); kfree(atmel_port->rx_ring.buf); /* "port" is allocated statically, so we shouldn't free it */ --- linux-3.13.0.orig/drivers/tty/serial/of_serial.c +++ linux-3.13.0/drivers/tty/serial/of_serial.c @@ -183,6 +183,10 @@ "auto-flow-control")) port8250.capabilities |= UART_CAP_AFE; + if (of_property_read_bool(ofdev->dev.of_node, + "has-hw-flow-control")) + port8250.port.flags |= UPF_HARD_FLOW; + ret = serial8250_register_8250_port(&port8250); break; } --- linux-3.13.0.orig/drivers/tty/serial/omap-serial.c +++ linux-3.13.0/drivers/tty/serial/omap-serial.c @@ -225,14 +225,19 @@ if (enable) enable_irq(up->wakeirq); else - disable_irq(up->wakeirq); + disable_irq_nosync(up->wakeirq); } static void serial_omap_enable_wakeup(struct uart_omap_port *up, bool enable) { struct omap_uart_port_info *pdata = dev_get_platdata(up->dev); + if (enable == up->wakeups_enabled) + return; + serial_omap_enable_wakeirq(up, enable); + up->wakeups_enabled = enable; + if (!pdata || !pdata->enable_wakeup) return; @@ -255,8 +260,16 @@ { unsigned int n13 = port->uartclk / (13 * baud); unsigned int n16 = port->uartclk / (16 * baud); - int baudAbsDiff13 = baud - (port->uartclk / (13 * n13)); - int baudAbsDiff16 = baud - (port->uartclk / (16 * n16)); + int baudAbsDiff13; + int baudAbsDiff16; + + if (n13 == 0) + n13 = 1; + if (n16 == 0) + n16 = 1; + + baudAbsDiff13 = baud - (port->uartclk / (13 * n13)); + baudAbsDiff16 = baud - (port->uartclk / (16 * n16)); if (baudAbsDiff13 < 0) baudAbsDiff13 = -baudAbsDiff13; if (baudAbsDiff16 < 0) @@ -738,9 +751,6 @@ return retval; } disable_irq(up->wakeirq); - } else { - dev_info(up->port.dev, "no wakeirq for uart%d\n", - up->port.line); } dev_dbg(up->port.dev, "serial_omap_startup+%d\n", up->port.line); @@ -1491,6 +1501,11 @@ uart_suspend_port(&serial_omap_reg, &up->port); flush_work(&up->qos_work); + if (device_may_wakeup(dev)) + serial_omap_enable_wakeup(up, true); + else + serial_omap_enable_wakeup(up, false); + return 0; } @@ -1498,6 +1513,9 @@ { struct uart_omap_port *up = dev_get_drvdata(dev); + if (device_may_wakeup(dev)) + serial_omap_enable_wakeup(up, false); + uart_resume_port(&serial_omap_reg, &up->port); return 0; @@ -1687,6 +1705,9 @@ up->port.iotype = UPIO_MEM; up->port.irq = uartirq; up->wakeirq = wakeirq; + if (!up->wakeirq) + dev_info(up->port.dev, "no wakeirq for uart%d\n", + up->port.line); up->port.regshift = 2; up->port.fifosize = 64; @@ -1867,17 +1888,7 @@ up->context_loss_cnt = serial_omap_get_context_loss_count(up); - if (device_may_wakeup(dev)) { - if (!up->wakeups_enabled) { - serial_omap_enable_wakeup(up, true); - up->wakeups_enabled = true; - } - } else { - if (up->wakeups_enabled) { - serial_omap_enable_wakeup(up, false); - up->wakeups_enabled = false; - } - } + serial_omap_enable_wakeup(up, true); up->latency = PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE; schedule_work(&up->qos_work); @@ -1891,6 +1902,8 @@ int loss_cnt = serial_omap_get_context_loss_count(up); + serial_omap_enable_wakeup(up, false); + if (loss_cnt < 0) { dev_dbg(dev, "serial_omap_get_context_loss_count failed : %d\n", loss_cnt); --- linux-3.13.0.orig/drivers/tty/serial/samsung.c +++ linux-3.13.0/drivers/tty/serial/samsung.c @@ -544,11 +544,15 @@ unsigned int old) { struct s3c24xx_uart_port *ourport = to_ourport(port); + int timeout = 10000; ourport->pm_level = level; switch (level) { case 3: + while (--timeout && !s3c24xx_serial_txempty_nofifo(port)) + udelay(100); + if (!IS_ERR(ourport->baudclk)) clk_disable_unprepare(ourport->baudclk); --- linux-3.13.0.orig/drivers/tty/serial/serial_core.c +++ linux-3.13.0/drivers/tty/serial/serial_core.c @@ -170,8 +170,12 @@ if (tty->termios.c_cflag & CBAUD) uart_set_mctrl(uport, TIOCM_RTS | TIOCM_DTR); } - - if (tty_port_cts_enabled(port)) { + /* + * if hw support flow control without software intervention, + * then skip the below check + */ + if (tty_port_cts_enabled(port) && + !(uport->flags & UPF_HARD_FLOW)) { spin_lock_irq(&uport->lock); if (!(uport->ops->get_mctrl(uport) & TIOCM_CTS)) tty->hw_stopped = 1; @@ -235,6 +239,9 @@ /* * Turn off DTR and RTS early. */ + if (uart_console(uport) && tty) + uport->cons->cflag = tty->termios.c_cflag; + if (!tty || (tty->termios.c_cflag & HUPCL)) uart_clear_mctrl(uport, TIOCM_DTR | TIOCM_RTS); @@ -350,7 +357,7 @@ * The spd_hi, spd_vhi, spd_shi, spd_warp kludge... * Die! Die! Die! */ - if (baud == 38400) + if (try == 0 && baud == 38400) baud = altbaud; /* @@ -2754,7 +2761,9 @@ uport->icount.cts++; - if (tty_port_cts_enabled(port)) { + /* skip below code if the hw flow control is supported */ + if (tty_port_cts_enabled(port) && + !(uport->flags & UPF_HARD_FLOW)) { if (tty->hw_stopped) { if (status) { tty->hw_stopped = 0; --- linux-3.13.0.orig/drivers/tty/serial/sirfsoc_uart.c +++ linux-3.13.0/drivers/tty/serial/sirfsoc_uart.c @@ -540,8 +540,10 @@ wr_regl(port, ureg->sirfsoc_rx_dma_io_ctrl, rd_regl(port, ureg->sirfsoc_rx_dma_io_ctrl) | SIRFUART_IO_MODE); - sirfsoc_uart_pio_rx_chars(port, 4 - sirfport->rx_io_count); spin_unlock_irqrestore(&sirfport->rx_lock, flags); + spin_lock(&port->lock); + sirfsoc_uart_pio_rx_chars(port, 4 - sirfport->rx_io_count); + spin_unlock(&port->lock); if (sirfport->rx_io_count == 4) { spin_lock_irqsave(&sirfport->rx_lock, flags); sirfport->rx_io_count = 0; --- linux-3.13.0.orig/drivers/tty/serial/sunsab.c +++ linux-3.13.0/drivers/tty/serial/sunsab.c @@ -157,6 +157,15 @@ (up->port.line == up->port.cons->index)) saw_console_brk = 1; + if (count == 0) { + if (unlikely(stat->sreg.isr1 & SAB82532_ISR1_BRK)) { + stat->sreg.isr0 &= ~(SAB82532_ISR0_PERR | + SAB82532_ISR0_FERR); + up->port.icount.brk++; + uart_handle_break(&up->port); + } + } + for (i = 0; i < count; i++) { unsigned char ch = buf[i], flag; --- linux-3.13.0.orig/drivers/tty/tty_buffer.c +++ linux-3.13.0/drivers/tty/tty_buffer.c @@ -248,7 +248,11 @@ if ((n = tty_buffer_alloc(port, size)) != NULL) { buf->tail = n; b->commit = b->used; - smp_mb(); + /* paired w/ barrier in flush_to_ldisc(); ensures the + * latest commit value can be read before the head is + * advanced to the next buffer + */ + smp_wmb(); b->next = n; } else size = left; @@ -332,14 +336,11 @@ * Takes any pending buffers and transfers their ownership to the * ldisc side of the queue. It then schedules those characters for * processing by the line discipline. - * Note that this function can only be used when the low_latency flag - * is unset. Otherwise the workqueue won't be flushed. */ void tty_schedule_flip(struct tty_port *port) { struct tty_bufhead *buf = &port->buf; - WARN_ON(port->low_latency); buf->tail->commit = buf->tail->used; schedule_work(&buf->work); @@ -452,17 +453,24 @@ while (1) { struct tty_buffer *head = buf->head; + struct tty_buffer *next; int count; /* Ldisc or user is trying to gain exclusive access */ if (atomic_read(&buf->priority)) break; + next = head->next; + /* paired w/ barrier in __tty_buffer_request_room(); + * ensures commit value read is not stale if the head + * is advancing to the next buffer + */ + smp_rmb(); count = head->commit - head->read; if (!count) { - if (head->next == NULL) + if (next == NULL) break; - buf->head = head->next; + buf->head = next; tty_buffer_free(port, head); continue; } @@ -487,17 +495,15 @@ */ void tty_flush_to_ldisc(struct tty_struct *tty) { - if (!tty->port->low_latency) - flush_work(&tty->port->buf.work); + flush_work(&tty->port->buf.work); } /** * tty_flip_buffer_push - terminal * @port: tty port to push * - * Queue a push of the terminal flip buffers to the line discipline. This - * function must not be called from IRQ context if port->low_latency is - * set. + * Queue a push of the terminal flip buffers to the line discipline. + * Can be called from IRQ/atomic context. * * In the event of the queue being busy for flipping the work will be * held off and retried later. @@ -505,14 +511,7 @@ void tty_flip_buffer_push(struct tty_port *port) { - struct tty_bufhead *buf = &port->buf; - - buf->tail->commit = buf->tail->used; - - if (port->low_latency) - flush_to_ldisc(&buf->work); - else - schedule_work(&buf->work); + tty_schedule_flip(port); } EXPORT_SYMBOL(tty_flip_buffer_push); --- linux-3.13.0.orig/drivers/tty/tty_io.c +++ linux-3.13.0/drivers/tty/tty_io.c @@ -1271,12 +1271,13 @@ * * Locking: None */ -static void tty_line_name(struct tty_driver *driver, int index, char *p) +static ssize_t tty_line_name(struct tty_driver *driver, int index, char *p) { if (driver->flags & TTY_DRIVER_UNNUMBERED_NODE) - strcpy(p, driver->name); + return sprintf(p, "%s", driver->name); else - sprintf(p, "%s%d", driver->name, index + driver->name_base); + return sprintf(p, "%s%d", driver->name, + index + driver->name_base); } /** @@ -1700,6 +1701,8 @@ int pty_master, tty_closing, o_tty_closing, do_sleep; int idx; char buf[64]; + long timeout = 0; + int once = 1; if (tty_paranoia_check(tty, inode, __func__)) return 0; @@ -1780,11 +1783,18 @@ if (!do_sleep) break; - printk(KERN_WARNING "%s: %s: read/write wait queue active!\n", - __func__, tty_name(tty, buf)); + if (once) { + once = 0; + printk(KERN_WARNING "%s: %s: read/write wait queue active!\n", + __func__, tty_name(tty, buf)); + } tty_unlock_pair(tty, o_tty); mutex_unlock(&tty_mutex); - schedule(); + schedule_timeout_killable(timeout); + if (timeout < 120 * HZ) + timeout = 2 * timeout + 1; + else + timeout = MAX_SCHEDULE_TIMEOUT; } /* @@ -3545,9 +3555,19 @@ if (i >= ARRAY_SIZE(cs)) break; } - while (i--) - count += sprintf(buf + count, "%s%d%c", - cs[i]->name, cs[i]->index, i ? ' ':'\n'); + while (i--) { + int index = cs[i]->index; + struct tty_driver *drv = cs[i]->device(cs[i], &index); + + /* don't resolve tty0 as some programs depend on it */ + if (drv && (cs[i]->index > 0 || drv->major != TTY_MAJOR)) + count += tty_line_name(drv, index, buf + count); + else + count += sprintf(buf + count, "%s%d", + cs[i]->name, cs[i]->index); + + count += sprintf(buf + count, "%c", i ? ' ':'\n'); + } console_unlock(); return count; --- linux-3.13.0.orig/drivers/tty/vt/consolemap.c +++ linux-3.13.0/drivers/tty/vt/consolemap.c @@ -540,6 +540,13 @@ /* Save original vc_unipagdir_loc in case we allocate a new one */ p = (struct uni_pagedir *)*vc->vc_uni_pagedir_loc; + + if (!p) { + err = -EINVAL; + + goto out_unlock; + } + if (p->readonly) { console_unlock(); return -EIO; @@ -633,6 +640,7 @@ set_inverse_transl(vc, p, i); /* Update inverse translations */ set_inverse_trans_unicode(vc, p); +out_unlock: console_unlock(); return err; } --- linux-3.13.0.orig/drivers/tty/vt/vt.c +++ linux-3.13.0/drivers/tty/vt/vt.c @@ -1164,6 +1164,8 @@ scr_memsetw(vc->vc_screenbuf, vc->vc_video_erase_char, vc->vc_screenbuf_size >> 1); set_origin(vc); + if (CON_IS_VISIBLE(vc)) + update_screen(vc); /* fall through */ case 2: /* erase whole display */ count = vc->vc_cols * vc->vc_rows; --- linux-3.13.0.orig/drivers/uio/uio.c +++ linux-3.13.0/drivers/uio/uio.c @@ -847,7 +847,7 @@ info->uio_dev = idev; if (info->irq && (info->irq != UIO_IRQ_CUSTOM)) { - ret = devm_request_irq(parent, info->irq, uio_interrupt, + ret = devm_request_irq(idev->dev, info->irq, uio_interrupt, info->irq_flags, info->name, idev); if (ret) goto err_request_irq; --- linux-3.13.0.orig/drivers/usb/chipidea/ci.h +++ linux-3.13.0/drivers/usb/chipidea/ci.h @@ -135,6 +135,7 @@ * @id_event: indicates there is an id event, and handled at ci_otg_work * @b_sess_valid_event: indicates there is a vbus event, and handled * at ci_otg_work + * @imx28_write_fix: Freescale imx28 needs swp instruction for writing */ struct ci_hdrc { struct device *dev; @@ -173,6 +174,7 @@ struct dentry *debugfs; bool id_event; bool b_sess_valid_event; + bool imx28_write_fix; }; static inline struct ci_role_driver *ci_role(struct ci_hdrc *ci) @@ -253,6 +255,26 @@ return ioread32(ci->hw_bank.regmap[reg]) & mask; } +#ifdef CONFIG_SOC_IMX28 +static inline void imx28_ci_writel(u32 val, volatile void __iomem *addr) +{ + __asm__ ("swp %0, %0, [%1]" : : "r"(val), "r"(addr)); +} +#else +static inline void imx28_ci_writel(u32 val, volatile void __iomem *addr) +{ +} +#endif + +static inline void __hw_write(struct ci_hdrc *ci, u32 val, + void __iomem *addr) +{ + if (ci->imx28_write_fix) + imx28_ci_writel(val, addr); + else + iowrite32(val, addr); +} + /** * hw_write: writes to a hw register * @reg: register index @@ -266,7 +288,7 @@ data = (ioread32(ci->hw_bank.regmap[reg]) & ~mask) | (data & mask); - iowrite32(data, ci->hw_bank.regmap[reg]); + __hw_write(ci, data, ci->hw_bank.regmap[reg]); } /** @@ -281,7 +303,7 @@ { u32 val = ioread32(ci->hw_bank.regmap[reg]) & mask; - iowrite32(val, ci->hw_bank.regmap[reg]); + __hw_write(ci, val, ci->hw_bank.regmap[reg]); return val; } --- linux-3.13.0.orig/drivers/usb/chipidea/ci_hdrc_imx.c +++ linux-3.13.0/drivers/usb/chipidea/ci_hdrc_imx.c @@ -23,6 +23,26 @@ #include "ci.h" #include "ci_hdrc_imx.h" +#define CI_HDRC_IMX_IMX28_WRITE_FIX BIT(0) + +struct ci_hdrc_imx_platform_flag { + unsigned int flags; +}; + +static const struct ci_hdrc_imx_platform_flag imx27_usb_data = { +}; + +static const struct ci_hdrc_imx_platform_flag imx28_usb_data = { + .flags = CI_HDRC_IMX_IMX28_WRITE_FIX, +}; + +static const struct of_device_id ci_hdrc_imx_dt_ids[] = { + { .compatible = "fsl,imx28-usb", .data = &imx28_usb_data}, + { .compatible = "fsl,imx27-usb", .data = &imx27_usb_data}, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(of, ci_hdrc_imx_dt_ids); + struct ci_hdrc_imx_data { struct usb_phy *phy; struct platform_device *ci_pdev; @@ -82,6 +102,9 @@ CI_HDRC_DISABLE_STREAMING, }; int ret; + const struct of_device_id *of_id = + of_match_device(ci_hdrc_imx_dt_ids, &pdev->dev); + const struct ci_hdrc_imx_platform_flag *imx_platform_flag = of_id->data; data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); if (!data) { @@ -115,6 +138,9 @@ pdata.phy = data->phy; + if (imx_platform_flag->flags & CI_HDRC_IMX_IMX28_WRITE_FIX) + pdata.flags |= CI_HDRC_IMX28_WRITE_FIX; + ret = dma_coerce_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)); if (ret) goto err_clk; @@ -173,12 +199,6 @@ return 0; } -static const struct of_device_id ci_hdrc_imx_dt_ids[] = { - { .compatible = "fsl,imx27-usb", }, - { /* sentinel */ } -}; -MODULE_DEVICE_TABLE(of, ci_hdrc_imx_dt_ids); - static struct platform_driver ci_hdrc_imx_driver = { .probe = ci_hdrc_imx_probe, .remove = ci_hdrc_imx_remove, --- linux-3.13.0.orig/drivers/usb/chipidea/core.c +++ linux-3.13.0/drivers/usb/chipidea/core.c @@ -554,6 +554,8 @@ ci->dev = dev; ci->platdata = dev->platform_data; + ci->imx28_write_fix = !!(ci->platdata->flags & + CI_HDRC_IMX28_WRITE_FIX); ret = hw_device_init(ci, base); if (ret < 0) { --- linux-3.13.0.orig/drivers/usb/chipidea/host.c +++ linux-3.13.0/drivers/usb/chipidea/host.c @@ -65,6 +65,7 @@ ehci->caps = ci->hw_bank.cap; ehci->has_hostpc = ci->hw_bank.lpm; ehci->has_tdi_phy_lpm = ci->hw_bank.lpm; + ehci->imx28_write_fix = ci->imx28_write_fix; if (ci->platdata->reg_vbus) { ret = regulator_enable(ci->platdata->reg_vbus); --- linux-3.13.0.orig/drivers/usb/chipidea/otg.h +++ linux-3.13.0/drivers/usb/chipidea/otg.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013 Freescale Semiconductor, Inc. + * Copyright (C) 2013-2014 Freescale Semiconductor, Inc. * * Author: Peter Chen * @@ -19,12 +19,12 @@ static inline void ci_enable_otg_interrupt(struct ci_hdrc *ci, u32 bits) { - hw_write(ci, OP_OTGSC, bits, bits); + hw_write(ci, OP_OTGSC, bits | OTGSC_INT_STATUS_BITS, bits); } static inline void ci_disable_otg_interrupt(struct ci_hdrc *ci, u32 bits) { - hw_write(ci, OP_OTGSC, bits, 0); + hw_write(ci, OP_OTGSC, bits | OTGSC_INT_STATUS_BITS, 0); } int ci_hdrc_otg_init(struct ci_hdrc *ci); --- linux-3.13.0.orig/drivers/usb/chipidea/udc.c +++ linux-3.13.0/drivers/usb/chipidea/udc.c @@ -105,7 +105,7 @@ do { /* flush any pending transfer */ - hw_write(ci, OP_ENDPTFLUSH, BIT(n), BIT(n)); + hw_write(ci, OP_ENDPTFLUSH, ~0, BIT(n)); while (hw_read(ci, OP_ENDPTFLUSH, BIT(n))) cpu_relax(); } while (hw_read(ci, OP_ENDPTSTAT, BIT(n))); @@ -205,7 +205,7 @@ if (is_ctrl && dir == RX && hw_read(ci, OP_ENDPTSETUPSTAT, BIT(num))) return -EAGAIN; - hw_write(ci, OP_ENDPTPRIME, BIT(n), BIT(n)); + hw_write(ci, OP_ENDPTPRIME, ~0, BIT(n)); while (hw_read(ci, OP_ENDPTPRIME, BIT(n))) cpu_relax(); @@ -393,6 +393,14 @@ node->ptr->token = cpu_to_le32(length << __ffs(TD_TOTAL_BYTES)); node->ptr->token &= cpu_to_le32(TD_TOTAL_BYTES); node->ptr->token |= cpu_to_le32(TD_STATUS_ACTIVE); + if (hwep->type == USB_ENDPOINT_XFER_ISOC && hwep->dir == TX) { + u32 mul = hwreq->req.length / hwep->ep.maxpacket; + + if (hwreq->req.length == 0 + || hwreq->req.length % hwep->ep.maxpacket) + mul++; + node->ptr->token |= mul << __ffs(TD_MULTO); + } temp = (u32) (hwreq->req.dma + hwreq->req.actual); if (length) { @@ -515,10 +523,11 @@ hwep->qh.ptr->td.token &= cpu_to_le32(~(TD_STATUS_HALTED|TD_STATUS_ACTIVE)); - if (hwep->type == USB_ENDPOINT_XFER_ISOC) { + if (hwep->type == USB_ENDPOINT_XFER_ISOC && hwep->dir == RX) { u32 mul = hwreq->req.length / hwep->ep.maxpacket; - if (hwreq->req.length % hwep->ep.maxpacket) + if (hwreq->req.length == 0 + || hwreq->req.length % hwep->ep.maxpacket) mul++; hwep->qh.ptr->cap |= mul << __ffs(QH_MULT); } @@ -1170,9 +1179,15 @@ if (hwep->type == USB_ENDPOINT_XFER_CONTROL) cap |= QH_IOS; - if (hwep->num) - cap |= QH_ZLT; + + cap |= QH_ZLT; cap |= (hwep->ep.maxpacket << __ffs(QH_MAX_PKT)) & QH_MAX_PKT; + /* + * For ISO-TX, we set mult at QH as the largest value, and use + * MultO at TD as real mult value. + */ + if (hwep->type == USB_ENDPOINT_XFER_ISOC && hwep->dir == TX) + cap |= 3 << __ffs(QH_MULT); hwep->qh.ptr->cap = cpu_to_le32(cap); @@ -1311,6 +1326,7 @@ struct ci_hw_ep *hwep = container_of(ep, struct ci_hw_ep, ep); struct ci_hw_req *hwreq = container_of(req, struct ci_hw_req, req); unsigned long flags; + struct td_node *node, *tmpnode; if (ep == NULL || req == NULL || hwreq->req.status != -EALREADY || hwep->ep.desc == NULL || list_empty(&hwreq->queue) || @@ -1321,6 +1337,12 @@ hw_ep_flush(hwep->ci, hwep->num, hwep->dir); + list_for_each_entry_safe(node, tmpnode, &hwreq->tds, td) { + dma_pool_free(hwep->td_pool, node->ptr, node->dma); + list_del(&node->td); + kfree(node); + } + /* pop request */ list_del_init(&hwreq->queue); --- linux-3.13.0.orig/drivers/usb/class/cdc-acm.c +++ linux-3.13.0/drivers/usb/class/cdc-acm.c @@ -845,11 +845,12 @@ /* FIXME: Needs to clear unsupported bits in the termios */ acm->clocal = ((termios->c_cflag & CLOCAL) != 0); - if (!newline.dwDTERate) { + if (C_BAUD(tty) == B0) { newline.dwDTERate = acm->line.dwDTERate; newctrl &= ~ACM_CTRL_DTR; - } else + } else if (termios_old && (termios_old->c_cflag & CBAUD) == B0) { newctrl |= ACM_CTRL_DTR; + } if (newctrl != acm->ctrlout) acm_set_control(acm, acm->ctrlout = newctrl); @@ -1048,10 +1049,11 @@ } else { control_interface = usb_ifnum_to_if(usb_dev, union_header->bMasterInterface0); data_interface = usb_ifnum_to_if(usb_dev, (data_interface_num = union_header->bSlaveInterface0)); - if (!control_interface || !data_interface) { - dev_dbg(&intf->dev, "no interfaces\n"); - return -ENODEV; - } + } + + if (!control_interface || !data_interface) { + dev_dbg(&intf->dev, "no interfaces\n"); + return -ENODEV; } if (data_interface_num != call_interface_num) @@ -1325,6 +1327,7 @@ &dev_attr_wCountryCodes); device_remove_file(&acm->control->dev, &dev_attr_iCountryCodeRelDate); + kfree(acm->country_codes); } device_remove_file(&acm->control->dev, &dev_attr_bmCapabilities); alloc_fail7: @@ -1556,17 +1559,32 @@ { USB_DEVICE(0x0572, 0x1328), /* Shiro / Aztech USB MODEM UM-3100 */ .driver_info = NO_UNION_NORMAL, /* has no union descriptor */ }, + { USB_DEVICE(0x2184, 0x001c) }, /* GW Instek AFG-2225 */ { USB_DEVICE(0x22b8, 0x6425), /* Motorola MOTOMAGX phones */ }, /* Motorola H24 HSPA module: */ { USB_DEVICE(0x22b8, 0x2d91) }, /* modem */ - { USB_DEVICE(0x22b8, 0x2d92) }, /* modem + diagnostics */ - { USB_DEVICE(0x22b8, 0x2d93) }, /* modem + AT port */ - { USB_DEVICE(0x22b8, 0x2d95) }, /* modem + AT port + diagnostics */ - { USB_DEVICE(0x22b8, 0x2d96) }, /* modem + NMEA */ - { USB_DEVICE(0x22b8, 0x2d97) }, /* modem + diagnostics + NMEA */ - { USB_DEVICE(0x22b8, 0x2d99) }, /* modem + AT port + NMEA */ - { USB_DEVICE(0x22b8, 0x2d9a) }, /* modem + AT port + diagnostics + NMEA */ + { USB_DEVICE(0x22b8, 0x2d92), /* modem + diagnostics */ + .driver_info = NO_UNION_NORMAL, /* handle only modem interface */ + }, + { USB_DEVICE(0x22b8, 0x2d93), /* modem + AT port */ + .driver_info = NO_UNION_NORMAL, /* handle only modem interface */ + }, + { USB_DEVICE(0x22b8, 0x2d95), /* modem + AT port + diagnostics */ + .driver_info = NO_UNION_NORMAL, /* handle only modem interface */ + }, + { USB_DEVICE(0x22b8, 0x2d96), /* modem + NMEA */ + .driver_info = NO_UNION_NORMAL, /* handle only modem interface */ + }, + { USB_DEVICE(0x22b8, 0x2d97), /* modem + diagnostics + NMEA */ + .driver_info = NO_UNION_NORMAL, /* handle only modem interface */ + }, + { USB_DEVICE(0x22b8, 0x2d99), /* modem + AT port + NMEA */ + .driver_info = NO_UNION_NORMAL, /* handle only modem interface */ + }, + { USB_DEVICE(0x22b8, 0x2d9a), /* modem + AT port + diagnostics + NMEA */ + .driver_info = NO_UNION_NORMAL, /* handle only modem interface */ + }, { USB_DEVICE(0x0572, 0x1329), /* Hummingbird huc56s (Conexant) */ .driver_info = NO_UNION_NORMAL, /* union descriptor misplaced on --- linux-3.13.0.orig/drivers/usb/class/cdc-wdm.c +++ linux-3.13.0/drivers/usb/class/cdc-wdm.c @@ -432,6 +432,38 @@ return rv < 0 ? rv : count; } +/* + * clear WDM_READ flag and possibly submit the read urb if resp_count + * is non-zero. + * + * Called with desc->iuspin locked + */ +static int clear_wdm_read_flag(struct wdm_device *desc) +{ + int rv = 0; + + clear_bit(WDM_READ, &desc->flags); + + /* submit read urb only if the device is waiting for it */ + if (!desc->resp_count || !--desc->resp_count) + goto out; + + set_bit(WDM_RESPONDING, &desc->flags); + spin_unlock_irq(&desc->iuspin); + rv = usb_submit_urb(desc->response, GFP_KERNEL); + spin_lock_irq(&desc->iuspin); + if (rv) { + dev_err(&desc->intf->dev, + "usb_submit_urb failed with result %d\n", rv); + + /* make sure the next notification trigger a submit */ + clear_bit(WDM_RESPONDING, &desc->flags); + desc->resp_count = 0; + } +out: + return rv; +} + static ssize_t wdm_read (struct file *file, char __user *buffer, size_t count, loff_t *ppos) { @@ -503,8 +535,10 @@ if (!desc->reslength) { /* zero length read */ dev_dbg(&desc->intf->dev, "%s: zero length - clearing WDM_READ\n", __func__); - clear_bit(WDM_READ, &desc->flags); + rv = clear_wdm_read_flag(desc); spin_unlock_irq(&desc->iuspin); + if (rv < 0) + goto err; goto retry; } cntr = desc->length; @@ -526,37 +560,9 @@ desc->length -= cntr; /* in case we had outstanding data */ - if (!desc->length) { - clear_bit(WDM_READ, &desc->flags); - - if (--desc->resp_count) { - set_bit(WDM_RESPONDING, &desc->flags); - spin_unlock_irq(&desc->iuspin); - - rv = usb_submit_urb(desc->response, GFP_KERNEL); - if (rv) { - dev_err(&desc->intf->dev, - "%s: usb_submit_urb failed with result %d\n", - __func__, rv); - spin_lock_irq(&desc->iuspin); - clear_bit(WDM_RESPONDING, &desc->flags); - spin_unlock_irq(&desc->iuspin); - - if (rv == -ENOMEM) { - rv = schedule_work(&desc->rxwork); - if (rv) - dev_err(&desc->intf->dev, "Cannot schedule work\n"); - } else { - spin_lock_irq(&desc->iuspin); - desc->resp_count = 0; - spin_unlock_irq(&desc->iuspin); - } - } - } else - spin_unlock_irq(&desc->iuspin); - } else - spin_unlock_irq(&desc->iuspin); - + if (!desc->length) + clear_wdm_read_flag(desc); + spin_unlock_irq(&desc->iuspin); rv = cntr; err: --- linux-3.13.0.orig/drivers/usb/core/config.c +++ linux-3.13.0/drivers/usb/core/config.c @@ -651,10 +651,6 @@ * * hub-only!! ... and only in reset path, or usb_new_device() * (used by real hubs and virtual root hubs) - * - * NOTE: if this is a WUSB device and is not authorized, we skip the - * whole thing. A non-authorized USB device has no - * configurations. */ int usb_get_configuration(struct usb_device *dev) { @@ -666,8 +662,6 @@ struct usb_config_descriptor *desc; cfgno = 0; - if (dev->authorized == 0) /* Not really an error */ - goto out_not_authorized; result = -ENOMEM; if (ncfg > USB_MAXCONFIG) { dev_warn(ddev, "too many configurations: %d, " @@ -724,6 +718,10 @@ result = -ENOMEM; goto err; } + + if (dev->quirks & USB_QUIRK_DELAY_INIT) + msleep(100); + result = usb_get_descriptor(dev, USB_DT_CONFIG, cfgno, bigbuffer, length); if (result < 0) { @@ -751,7 +749,6 @@ err: kfree(desc); -out_not_authorized: dev->descriptor.bNumConfigurations = cfgno; err2: if (result == -ENOMEM) --- linux-3.13.0.orig/drivers/usb/core/devio.c +++ linux-3.13.0/drivers/usb/core/devio.c @@ -1411,7 +1411,7 @@ u = (is_in ? URB_DIR_IN : URB_DIR_OUT); if (uurb->flags & USBDEVFS_URB_ISO_ASAP) u |= URB_ISO_ASAP; - if (uurb->flags & USBDEVFS_URB_SHORT_NOT_OK) + if (uurb->flags & USBDEVFS_URB_SHORT_NOT_OK && is_in) u |= URB_SHORT_NOT_OK; if (uurb->flags & USBDEVFS_URB_NO_FSBR) u |= URB_NO_FSBR; --- linux-3.13.0.orig/drivers/usb/core/driver.c +++ linux-3.13.0/drivers/usb/core/driver.c @@ -959,8 +959,7 @@ * it doesn't support pre_reset/post_reset/reset_resume or * because it doesn't support suspend/resume. * - * The caller must hold @intf's device's lock, but not its pm_mutex - * and not @intf->dev.sem. + * The caller must hold @intf's device's lock, but not @intf's lock. */ void usb_forced_unbind_intf(struct usb_interface *intf) { @@ -973,16 +972,37 @@ intf->needs_binding = 1; } +/* + * Unbind drivers for @udev's marked interfaces. These interfaces have + * the needs_binding flag set, for example by usb_resume_interface(). + * + * The caller must hold @udev's device lock. + */ +static void unbind_marked_interfaces(struct usb_device *udev) +{ + struct usb_host_config *config; + int i; + struct usb_interface *intf; + + config = udev->actconfig; + if (config) { + for (i = 0; i < config->desc.bNumInterfaces; ++i) { + intf = config->interface[i]; + if (intf->dev.driver && intf->needs_binding) + usb_forced_unbind_intf(intf); + } + } +} + /* Delayed forced unbinding of a USB interface driver and scan * for rebinding. * - * The caller must hold @intf's device's lock, but not its pm_mutex - * and not @intf->dev.sem. + * The caller must hold @intf's device's lock, but not @intf's lock. * * Note: Rebinds will be skipped if a system sleep transition is in * progress and the PM "complete" callback hasn't occurred yet. */ -void usb_rebind_intf(struct usb_interface *intf) +static void usb_rebind_intf(struct usb_interface *intf) { int rc; @@ -999,68 +1019,66 @@ } } -#ifdef CONFIG_PM - -/* Unbind drivers for @udev's interfaces that don't support suspend/resume - * There is no check for reset_resume here because it can be determined - * only during resume whether reset_resume is needed. +/* + * Rebind drivers to @udev's marked interfaces. These interfaces have + * the needs_binding flag set. * * The caller must hold @udev's device lock. */ -static void unbind_no_pm_drivers_interfaces(struct usb_device *udev) +static void rebind_marked_interfaces(struct usb_device *udev) { struct usb_host_config *config; int i; struct usb_interface *intf; - struct usb_driver *drv; config = udev->actconfig; if (config) { for (i = 0; i < config->desc.bNumInterfaces; ++i) { intf = config->interface[i]; - - if (intf->dev.driver) { - drv = to_usb_driver(intf->dev.driver); - if (!drv->suspend || !drv->resume) - usb_forced_unbind_intf(intf); - } + if (intf->needs_binding) + usb_rebind_intf(intf); } } } -/* Unbind drivers for @udev's interfaces that failed to support reset-resume. - * These interfaces have the needs_binding flag set by usb_resume_interface(). +/* + * Unbind all of @udev's marked interfaces and then rebind all of them. + * This ordering is necessary because some drivers claim several interfaces + * when they are first probed. * * The caller must hold @udev's device lock. */ -static void unbind_no_reset_resume_drivers_interfaces(struct usb_device *udev) +void usb_unbind_and_rebind_marked_interfaces(struct usb_device *udev) { - struct usb_host_config *config; - int i; - struct usb_interface *intf; - - config = udev->actconfig; - if (config) { - for (i = 0; i < config->desc.bNumInterfaces; ++i) { - intf = config->interface[i]; - if (intf->dev.driver && intf->needs_binding) - usb_forced_unbind_intf(intf); - } - } + unbind_marked_interfaces(udev); + rebind_marked_interfaces(udev); } -static void do_rebind_interfaces(struct usb_device *udev) +#ifdef CONFIG_PM + +/* Unbind drivers for @udev's interfaces that don't support suspend/resume + * There is no check for reset_resume here because it can be determined + * only during resume whether reset_resume is needed. + * + * The caller must hold @udev's device lock. + */ +static void unbind_no_pm_drivers_interfaces(struct usb_device *udev) { struct usb_host_config *config; int i; struct usb_interface *intf; + struct usb_driver *drv; config = udev->actconfig; if (config) { for (i = 0; i < config->desc.bNumInterfaces; ++i) { intf = config->interface[i]; - if (intf->needs_binding) - usb_rebind_intf(intf); + + if (intf->dev.driver) { + drv = to_usb_driver(intf->dev.driver); + if (!drv->suspend || !drv->resume) + usb_forced_unbind_intf(intf); + } } } } @@ -1389,7 +1407,7 @@ * whose needs_binding flag is set */ if (udev->state != USB_STATE_NOTATTACHED) - do_rebind_interfaces(udev); + rebind_marked_interfaces(udev); return 0; } @@ -1411,7 +1429,7 @@ pm_runtime_disable(dev); pm_runtime_set_active(dev); pm_runtime_enable(dev); - unbind_no_reset_resume_drivers_interfaces(udev); + unbind_marked_interfaces(udev); } /* Avoid PM error messages for devices disconnected while suspended @@ -1752,10 +1770,13 @@ if (status == -EAGAIN || status == -EBUSY) usb_mark_last_busy(udev); - /* The PM core reacts badly unless the return code is 0, - * -EAGAIN, or -EBUSY, so always return -EBUSY on an error. + /* + * The PM core reacts badly unless the return code is 0, + * -EAGAIN, or -EBUSY, so always return -EBUSY on an error + * (except for root hubs, because they don't suspend through + * an upstream port like other USB devices). */ - if (status != 0) + if (status != 0 && udev->parent) return -EBUSY; return status; } --- linux-3.13.0.orig/drivers/usb/core/hcd-pci.c +++ linux-3.13.0/drivers/usb/core/hcd-pci.c @@ -75,7 +75,7 @@ PCI_SLOT(companion->devfn) != slot) continue; companion_hcd = pci_get_drvdata(companion); - if (!companion_hcd) + if (!companion_hcd || !companion_hcd->self.root_hub) continue; fn(pdev, hcd, companion, companion_hcd); } --- linux-3.13.0.orig/drivers/usb/core/hcd.c +++ linux-3.13.0/drivers/usb/core/hcd.c @@ -1031,7 +1031,6 @@ dev_name(&usb_dev->dev), retval); return retval; } - usb_dev->lpm_capable = usb_device_supports_lpm(usb_dev); } retval = usb_new_device (usb_dev); @@ -2057,6 +2056,8 @@ return -EINVAL; if (dev->speed != USB_SPEED_SUPER) return -EINVAL; + if (dev->state < USB_STATE_CONFIGURED) + return -ENODEV; /* Streams only apply to bulk endpoints. */ for (i = 0; i < num_eps; i++) --- linux-3.13.0.orig/drivers/usb/core/hub.c +++ linux-3.13.0/drivers/usb/core/hub.c @@ -135,7 +135,7 @@ return usb_get_intfdata(hdev->actconfig->interface[0]); } -int usb_device_supports_lpm(struct usb_device *udev) +static int usb_device_supports_lpm(struct usb_device *udev) { /* USB 2.1 (and greater) devices indicate LPM support through * their USB 2.0 Extended Capabilities BOS descriptor. @@ -156,11 +156,6 @@ "Power management will be impacted.\n"); return 0; } - - /* udev is root hub */ - if (!udev->parent) - return 1; - if (udev->parent->lpm_capable) return 1; @@ -896,6 +891,25 @@ if (!hub_is_superspeed(hub->hdev)) return -EINVAL; + ret = hub_port_status(hub, port1, &portstatus, &portchange); + if (ret < 0) + return ret; + + /* + * USB controller Advanced Micro Devices, Inc. [AMD] FCH USB XHCI + * Controller [1022:7814] will have spurious result making the following + * usb 3.0 device hotplugging route to the 2.0 root hub and recognized + * as high-speed device if we set the usb 3.0 port link state to + * Disabled. Since it's already in USB_SS_PORT_LS_RX_DETECT state, we + * check the state here to avoid the bug. + */ + if ((portstatus & USB_PORT_STAT_LINK_STATE) == + USB_SS_PORT_LS_RX_DETECT) { + dev_dbg(&hub->ports[port1 - 1]->dev, + "Not disabling port; link state is RxDetect\n"); + return ret; + } + ret = hub_set_port_link_state(hub, port1, USB_SS_PORT_LS_SS_DISABLED); if (ret) return ret; @@ -1607,7 +1621,7 @@ { struct usb_hub *hub = usb_get_intfdata(intf); struct usb_device *hdev = interface_to_usbdev(intf); - int i; + int port1; /* Take the hub off the event list and don't let it be added again */ spin_lock_irq(&hub_event_lock); @@ -1622,11 +1636,15 @@ hub->error = 0; hub_quiesce(hub, HUB_DISCONNECT); - usb_set_intfdata (intf, NULL); + /* Avoid races with recursively_mark_NOTATTACHED() */ + spin_lock_irq(&device_state_lock); + port1 = hdev->maxchild; + hdev->maxchild = 0; + usb_set_intfdata(intf, NULL); + spin_unlock_irq(&device_state_lock); - for (i = 0; i < hdev->maxchild; i++) - usb_hub_remove_port_device(hub, i + 1); - hub->hdev->maxchild = 0; + for (; port1 > 0; --port1) + usb_hub_remove_port_device(hub, port1); if (hub->hdev->speed == USB_SPEED_HIGH) highspeed_hubs--; @@ -1683,11 +1701,28 @@ * - Change autosuspend delay of hub can avoid unnecessary auto * suspend timer for hub, also may decrease power consumption * of USB bus. + * + * - If user has indicated to prevent autosuspend by passing + * usbcore.autosuspend = -1 then keep autosuspend disabled. */ - pm_runtime_set_autosuspend_delay(&hdev->dev, 0); +#ifdef CONFIG_PM_RUNTIME + if (hdev->dev.power.autosuspend_delay >= 0) + pm_runtime_set_autosuspend_delay(&hdev->dev, 0); +#endif + + /* + * Hubs have proper suspend/resume support, except for root hubs + * where the controller driver doesn't have bus_suspend and + * bus_resume methods. + */ + if (hdev->parent) { /* normal device */ + usb_enable_autosuspend(hdev); + } else { /* root hub */ + const struct hc_driver *drv = bus_to_hcd(hdev->bus)->driver; - /* Hubs have proper suspend/resume support. */ - usb_enable_autosuspend(hdev); + if (drv->bus_suspend && drv->bus_resume) + usb_enable_autosuspend(hdev); + } if (hdev->level == MAX_TOPO_LEVEL) { dev_err(&intf->dev, @@ -1919,8 +1954,10 @@ || new_state == USB_STATE_SUSPENDED) ; /* No change to wakeup settings */ else if (new_state == USB_STATE_CONFIGURED) - wakeup = udev->actconfig->desc.bmAttributes - & USB_CONFIG_ATT_WAKEUP; + wakeup = (udev->quirks & + USB_QUIRK_IGNORE_REMOTE_WAKEUP) ? 0 : + udev->actconfig->desc.bmAttributes & + USB_CONFIG_ATT_WAKEUP; else wakeup = 0; } @@ -2235,17 +2272,13 @@ return err; } } - if (udev->wusb == 1 && udev->authorized == 0) { - udev->product = kstrdup("n/a (unauthorized)", GFP_KERNEL); - udev->manufacturer = kstrdup("n/a (unauthorized)", GFP_KERNEL); - udev->serial = kstrdup("n/a (unauthorized)", GFP_KERNEL); - } else { - /* read the standard strings and cache them if present */ - udev->product = usb_cache_string(udev, udev->descriptor.iProduct); - udev->manufacturer = usb_cache_string(udev, - udev->descriptor.iManufacturer); - udev->serial = usb_cache_string(udev, udev->descriptor.iSerialNumber); - } + + /* read the standard strings and cache them if present */ + udev->product = usb_cache_string(udev, udev->descriptor.iProduct); + udev->manufacturer = usb_cache_string(udev, + udev->descriptor.iManufacturer); + udev->serial = usb_cache_string(udev, udev->descriptor.iSerialNumber); + err = usb_enumerate_device_otg(udev); if (err < 0) return err; @@ -2427,16 +2460,6 @@ usb_dev->authorized = 0; usb_set_configuration(usb_dev, -1); - kfree(usb_dev->product); - usb_dev->product = kstrdup("n/a (unauthorized)", GFP_KERNEL); - kfree(usb_dev->manufacturer); - usb_dev->manufacturer = kstrdup("n/a (unauthorized)", GFP_KERNEL); - kfree(usb_dev->serial); - usb_dev->serial = kstrdup("n/a (unauthorized)", GFP_KERNEL); - - usb_destroy_configuration(usb_dev); - usb_dev->descriptor.bNumConfigurations = 0; - out_unauthorized: usb_unlock_device(usb_dev); return 0; @@ -2464,17 +2487,7 @@ goto error_device_descriptor; } - kfree(usb_dev->product); - usb_dev->product = NULL; - kfree(usb_dev->manufacturer); - usb_dev->manufacturer = NULL; - kfree(usb_dev->serial); - usb_dev->serial = NULL; - usb_dev->authorized = 1; - result = usb_enumerate_device(usb_dev); - if (result < 0) - goto error_enumerate; /* Choose and set the configuration. This registers the interfaces * with the driver core and lets interface drivers bind to them. */ @@ -2490,7 +2503,6 @@ } dev_info(&usb_dev->dev, "authorized to connect\n"); -error_enumerate: error_device_descriptor: usb_autosuspend_device(usb_dev); error_autoresume: @@ -3161,6 +3173,43 @@ } /* + * There are some SS USB devices which take longer time for link training. + * XHCI specs 4.19.4 says that when Link training is successful, port + * sets CSC bit to 1. So if SW reads port status before successful link + * training, then it will not find device to be present. + * USB Analyzer log with such buggy devices show that in some cases + * device switch on the RX termination after long delay of host enabling + * the VBUS. In few other cases it has been seen that device fails to + * negotiate link training in first attempt. It has been + * reported till now that few devices take as long as 2000 ms to train + * the link after host enabling its VBUS and termination. Following + * routine implements a 2000 ms timeout for link training. If in a case + * link trains before timeout, loop will exit earlier. + * + * FIXME: If a device was connected before suspend, but was removed + * while system was asleep, then the loop in the following routine will + * only exit at timeout. + * + * This routine should only be called when persist is enabled for a SS + * device. + */ +static int wait_for_ss_port_enable(struct usb_device *udev, + struct usb_hub *hub, int *port1, + u16 *portchange, u16 *portstatus) +{ + int status = 0, delay_ms = 0; + + while (delay_ms < 2000) { + if (status || *portstatus & USB_PORT_STAT_CONNECTION) + break; + msleep(20); + delay_ms += 20; + status = hub_port_status(hub, *port1, portstatus, portchange); + } + return status; +} + +/* * usb_port_resume - re-activate a suspended usb device's upstream port * @udev: device to re-activate, not a root hub * Context: must be able to sleep; device not locked; pm locks held @@ -3262,6 +3311,10 @@ clear_bit(port1, hub->busy_bits); + if (udev->persist_enabled && hub_is_superspeed(hub->hdev)) + status = wait_for_ss_port_enable(udev, hub, &port1, &portchange, + &portstatus); + status = check_port_resume_type(udev, hub, port1, status, portchange, portstatus); if (status == 0) @@ -4678,9 +4731,10 @@ hub = list_entry(tmp, struct usb_hub, event_list); kref_get(&hub->kref); + hdev = hub->hdev; + usb_get_dev(hdev); spin_unlock_irq(&hub_event_lock); - hdev = hub->hdev; hub_dev = hub->intfdev; intf = to_usb_interface(hub_dev); dev_dbg(hub_dev, "state %d ports %d chg %04x evt %04x\n", @@ -4893,6 +4947,7 @@ usb_autopm_put_interface(intf); loop_disconnected: usb_unlock_device(hdev); + usb_put_dev(hdev); kref_put(&hub->kref, hub_release); } /* end while (1) */ @@ -5331,10 +5386,11 @@ else if (cintf->condition == USB_INTERFACE_BOUND) rebind = 1; + if (rebind) + cintf->needs_binding = 1; } - if (ret == 0 && rebind) - usb_rebind_intf(cintf); } + usb_unbind_and_rebind_marked_interfaces(udev); } usb_autosuspend_device(udev); --- linux-3.13.0.orig/drivers/usb/core/quirks.c +++ linux-3.13.0/drivers/usb/core/quirks.c @@ -44,9 +44,16 @@ /* Creative SB Audigy 2 NX */ { USB_DEVICE(0x041e, 0x3020), .driver_info = USB_QUIRK_RESET_RESUME }, + /* Microsoft Wireless Laser Mouse 6000 Receiver */ + { USB_DEVICE(0x045e, 0x00e1), .driver_info = USB_QUIRK_RESET_RESUME }, + /* Microsoft LifeCam-VX700 v2.0 */ { USB_DEVICE(0x045e, 0x0770), .driver_info = USB_QUIRK_RESET_RESUME }, + /* Logitech HD Pro Webcams C920 and C930e */ + { USB_DEVICE(0x046d, 0x082d), .driver_info = USB_QUIRK_DELAY_INIT }, + { USB_DEVICE(0x046d, 0x0843), .driver_info = USB_QUIRK_DELAY_INIT }, + /* Logitech Quickcam Fusion */ { USB_DEVICE(0x046d, 0x08c1), .driver_info = USB_QUIRK_RESET_RESUME }, @@ -151,6 +158,10 @@ /* INTEL VALUE SSD */ { USB_DEVICE(0x8086, 0xf1a5), .driver_info = USB_QUIRK_RESET_RESUME }, + /* ASUS Base Station(T100) */ + { USB_DEVICE(0x0b05, 0x17e0), .driver_info = + USB_QUIRK_IGNORE_REMOTE_WAKEUP }, + { } /* terminating entry must be last */ }; --- linux-3.13.0.orig/drivers/usb/core/usb.h +++ linux-3.13.0/drivers/usb/core/usb.h @@ -35,7 +35,6 @@ unsigned int size); extern int usb_get_bos_descriptor(struct usb_device *dev); extern void usb_release_bos_descriptor(struct usb_device *dev); -extern int usb_device_supports_lpm(struct usb_device *udev); extern char *usb_cache_string(struct usb_device *udev, int index); extern int usb_set_configuration(struct usb_device *dev, int configuration); extern int usb_choose_configuration(struct usb_device *udev); @@ -56,7 +55,7 @@ extern int usb_match_device(struct usb_device *dev, const struct usb_device_id *id); extern void usb_forced_unbind_intf(struct usb_interface *intf); -extern void usb_rebind_intf(struct usb_interface *intf); +extern void usb_unbind_and_rebind_marked_interfaces(struct usb_device *udev); extern int usb_hub_claim_port(struct usb_device *hdev, unsigned port, struct dev_state *owner); --- linux-3.13.0.orig/drivers/usb/dwc3/core.c +++ linux-3.13.0/drivers/usb/dwc3/core.c @@ -583,12 +583,6 @@ { struct dwc3 *dwc = platform_get_drvdata(pdev); - usb_phy_set_suspend(dwc->usb2_phy, 1); - usb_phy_set_suspend(dwc->usb3_phy, 1); - - pm_runtime_put_sync(&pdev->dev); - pm_runtime_disable(&pdev->dev); - dwc3_debugfs_exit(dwc); switch (dwc->dr_mode) { @@ -609,8 +603,15 @@ dwc3_event_buffers_cleanup(dwc); dwc3_free_event_buffers(dwc); + + usb_phy_set_suspend(dwc->usb2_phy, 1); + usb_phy_set_suspend(dwc->usb3_phy, 1); + dwc3_core_exit(dwc); + pm_runtime_put_sync(&pdev->dev); + pm_runtime_disable(&pdev->dev); + return 0; } --- linux-3.13.0.orig/drivers/usb/dwc3/core.h +++ linux-3.13.0/drivers/usb/dwc3/core.h @@ -815,15 +815,15 @@ * 12 - VndrDevTstRcved * @reserved15_12: Reserved, not used * @event_info: Information about this event - * @reserved31_24: Reserved, not used + * @reserved31_25: Reserved, not used */ struct dwc3_event_devt { u32 one_bit:1; u32 device_event:7; u32 type:4; u32 reserved15_12:4; - u32 event_info:8; - u32 reserved31_24:8; + u32 event_info:9; + u32 reserved31_25:7; } __packed; /** @@ -856,6 +856,19 @@ struct dwc3_event_gevt gevt; }; +/** + * struct dwc3_gadget_ep_cmd_params - representation of endpoint command + * parameters + * @param2: third parameter + * @param1: second parameter + * @param0: first parameter + */ +struct dwc3_gadget_ep_cmd_params { + u32 param2; + u32 param1; + u32 param0; +}; + /* * DWC3 Features to be used as Driver Data */ @@ -881,11 +894,28 @@ #if IS_ENABLED(CONFIG_USB_DWC3_GADGET) || IS_ENABLED(CONFIG_USB_DWC3_DUAL_ROLE) int dwc3_gadget_init(struct dwc3 *dwc); void dwc3_gadget_exit(struct dwc3 *dwc); +int dwc3_gadget_set_test_mode(struct dwc3 *dwc, int mode); +int dwc3_gadget_set_link_state(struct dwc3 *dwc, enum dwc3_link_state state); +int dwc3_send_gadget_ep_cmd(struct dwc3 *dwc, unsigned ep, + unsigned cmd, struct dwc3_gadget_ep_cmd_params *params); +int dwc3_send_gadget_generic_command(struct dwc3 *dwc, int cmd, u32 param); #else static inline int dwc3_gadget_init(struct dwc3 *dwc) { return 0; } static inline void dwc3_gadget_exit(struct dwc3 *dwc) { } +static inline int dwc3_gadget_set_test_mode(struct dwc3 *dwc, int mode) +{ return 0; } +static inline int dwc3_gadget_set_link_state(struct dwc3 *dwc, + enum dwc3_link_state state) +{ return 0; } + +static inline int dwc3_send_gadget_ep_cmd(struct dwc3 *dwc, unsigned ep, + unsigned cmd, struct dwc3_gadget_ep_cmd_params *params) +{ return 0; } +static inline int dwc3_send_gadget_generic_command(struct dwc3 *dwc, + int cmd, u32 param) +{ return 0; } #endif /* power management interface */ --- linux-3.13.0.orig/drivers/usb/dwc3/dwc3-exynos.c +++ linux-3.13.0/drivers/usb/dwc3/dwc3-exynos.c @@ -50,6 +50,7 @@ exynos->usb2_phy = pdev; pdata.type = USB_PHY_TYPE_USB2; + pdata.gpio_reset = -1; ret = platform_device_add_data(exynos->usb2_phy, &pdata, sizeof(pdata)); if (ret) --- linux-3.13.0.orig/drivers/usb/dwc3/dwc3-omap.c +++ linux-3.13.0/drivers/usb/dwc3/dwc3-omap.c @@ -592,9 +592,9 @@ if (omap->extcon_id_dev.edev) extcon_unregister_interest(&omap->extcon_id_dev); dwc3_omap_disable_irqs(omap); + device_for_each_child(&pdev->dev, NULL, dwc3_omap_remove_core); pm_runtime_put_sync(&pdev->dev); pm_runtime_disable(&pdev->dev); - device_for_each_child(&pdev->dev, NULL, dwc3_omap_remove_core); return 0; } --- linux-3.13.0.orig/drivers/usb/dwc3/dwc3-pci.c +++ linux-3.13.0/drivers/usb/dwc3/dwc3-pci.c @@ -52,6 +52,7 @@ glue->usb2_phy = pdev; pdata.type = USB_PHY_TYPE_USB2; + pdata.gpio_reset = -1; ret = platform_device_add_data(glue->usb2_phy, &pdata, sizeof(pdata)); if (ret) --- linux-3.13.0.orig/drivers/usb/dwc3/ep0.c +++ linux-3.13.0/drivers/usb/dwc3/ep0.c @@ -251,7 +251,7 @@ /* stall is always issued on EP0 */ dep = dwc->eps[0]; - __dwc3_gadget_ep_set_halt(dep, 1); + __dwc3_gadget_ep_set_halt(dep, 1, false); dep->flags = DWC3_EP_ENABLED; dwc->delayed_status = false; @@ -461,7 +461,7 @@ return -EINVAL; if (set == 0 && (dep->flags & DWC3_EP_WEDGE)) break; - ret = __dwc3_gadget_ep_set_halt(dep, set); + ret = __dwc3_gadget_ep_set_halt(dep, set, true); if (ret) return -EINVAL; break; --- linux-3.13.0.orig/drivers/usb/dwc3/gadget.c +++ linux-3.13.0/drivers/usb/dwc3/gadget.c @@ -532,12 +532,11 @@ if (!usb_endpoint_xfer_isoc(desc)) return 0; - memset(&trb_link, 0, sizeof(trb_link)); - /* Link TRB for ISOC. The HWO bit is never reset */ trb_st_hw = &dep->trb_pool[0]; trb_link = &dep->trb_pool[DWC3_TRB_NUM - 1]; + memset(trb_link, 0, sizeof(*trb_link)); trb_link->bpl = lower_32_bits(dwc3_trb_dma_offset(dep, trb_st_hw)); trb_link->bph = upper_32_bits(dwc3_trb_dma_offset(dep, trb_st_hw)); @@ -586,6 +585,10 @@ dwc3_remove_requests(dwc, dep); + /* make sure HW endpoint isn't stalled */ + if (dep->flags & DWC3_EP_STALL) + __dwc3_gadget_ep_set_halt(dep, 0, false); + reg = dwc3_readl(dwc->regs, DWC3_DALEPENA); reg &= ~DWC3_DALEPENA_EP(dep->number); dwc3_writel(dwc->regs, DWC3_DALEPENA, reg); @@ -1182,7 +1185,7 @@ return ret; } -int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value) +int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value, int protocol) { struct dwc3_gadget_ep_cmd_params params; struct dwc3 *dwc = dep->dwc; @@ -1191,6 +1194,14 @@ memset(¶ms, 0x00, sizeof(params)); if (value) { + if (!protocol && ((dep->direction && dep->flags & DWC3_EP_BUSY) || + (!list_empty(&dep->req_queued) || + !list_empty(&dep->request_list)))) { + dev_dbg(dwc->dev, "%s: pending request, cannot halt\n", + dep->name); + return -EAGAIN; + } + ret = dwc3_send_gadget_ep_cmd(dwc, dep->number, DWC3_DEPCMD_SETSTALL, ¶ms); if (ret) @@ -1230,7 +1241,7 @@ goto out; } - ret = __dwc3_gadget_ep_set_halt(dep, value); + ret = __dwc3_gadget_ep_set_halt(dep, value, false); out: spin_unlock_irqrestore(&dwc->lock, flags); --- linux-3.13.0.orig/drivers/usb/dwc3/gadget.h +++ linux-3.13.0/drivers/usb/dwc3/gadget.h @@ -56,12 +56,6 @@ /* DEPXFERCFG parameter 0 */ #define DWC3_DEPXFERCFG_NUM_XFER_RES(n) ((n) & 0xffff) -struct dwc3_gadget_ep_cmd_params { - u32 param2; - u32 param1; - u32 param0; -}; - /* -------------------------------------------------------------------------- */ #define to_dwc3_request(r) (container_of(r, struct dwc3_request, request)) @@ -85,19 +79,13 @@ void dwc3_gadget_giveback(struct dwc3_ep *dep, struct dwc3_request *req, int status); -int dwc3_gadget_set_test_mode(struct dwc3 *dwc, int mode); -int dwc3_gadget_set_link_state(struct dwc3 *dwc, enum dwc3_link_state state); - void dwc3_ep0_interrupt(struct dwc3 *dwc, const struct dwc3_event_depevt *event); void dwc3_ep0_out_start(struct dwc3 *dwc); int dwc3_gadget_ep0_set_halt(struct usb_ep *ep, int value); int dwc3_gadget_ep0_queue(struct usb_ep *ep, struct usb_request *request, gfp_t gfp_flags); -int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value); -int dwc3_send_gadget_ep_cmd(struct dwc3 *dwc, unsigned ep, - unsigned cmd, struct dwc3_gadget_ep_cmd_params *params); -int dwc3_send_gadget_generic_command(struct dwc3 *dwc, int cmd, u32 param); +int __dwc3_gadget_ep_set_halt(struct dwc3_ep *dep, int value, int protocol); /** * dwc3_gadget_ep_get_transfer_index - Gets transfer index from HW --- linux-3.13.0.orig/drivers/usb/gadget/at91_udc.c +++ linux-3.13.0/drivers/usb/gadget/at91_udc.c @@ -871,12 +871,10 @@ return; udc->clocked = 1; - if (IS_ENABLED(CONFIG_COMMON_CLK)) { - clk_set_rate(udc->uclk, 48000000); - clk_prepare_enable(udc->uclk); - } - clk_prepare_enable(udc->iclk); - clk_prepare_enable(udc->fclk); + if (IS_ENABLED(CONFIG_COMMON_CLK)) + clk_enable(udc->uclk); + clk_enable(udc->iclk); + clk_enable(udc->fclk); } static void clk_off(struct at91_udc *udc) @@ -885,10 +883,10 @@ return; udc->clocked = 0; udc->gadget.speed = USB_SPEED_UNKNOWN; - clk_disable_unprepare(udc->fclk); - clk_disable_unprepare(udc->iclk); + clk_disable(udc->fclk); + clk_disable(udc->iclk); if (IS_ENABLED(CONFIG_COMMON_CLK)) - clk_disable_unprepare(udc->uclk); + clk_disable(udc->uclk); } /* @@ -1791,14 +1789,24 @@ } /* don't do anything until we have both gadget driver and VBUS */ + if (IS_ENABLED(CONFIG_COMMON_CLK)) { + clk_set_rate(udc->uclk, 48000000); + retval = clk_prepare(udc->uclk); + if (retval) + goto fail1; + } + retval = clk_prepare(udc->fclk); + if (retval) + goto fail1a; + retval = clk_prepare_enable(udc->iclk); if (retval) - goto fail1; + goto fail1b; at91_udp_write(udc, AT91_UDP_TXVC, AT91_UDP_TXVC_TXVDIS); at91_udp_write(udc, AT91_UDP_IDR, 0xffffffff); /* Clear all pending interrupts - UDP may be used by bootloader. */ at91_udp_write(udc, AT91_UDP_ICR, 0xffffffff); - clk_disable_unprepare(udc->iclk); + clk_disable(udc->iclk); /* request UDC and maybe VBUS irqs */ udc->udp_irq = platform_get_irq(pdev, 0); @@ -1806,7 +1814,7 @@ 0, driver_name, udc); if (retval < 0) { DBG("request irq %d failed\n", udc->udp_irq); - goto fail1; + goto fail1c; } if (gpio_is_valid(udc->board.vbus_pin)) { retval = gpio_request(udc->board.vbus_pin, "udc_vbus"); @@ -1859,6 +1867,13 @@ gpio_free(udc->board.vbus_pin); fail2: free_irq(udc->udp_irq, udc); +fail1c: + clk_unprepare(udc->iclk); +fail1b: + clk_unprepare(udc->fclk); +fail1a: + if (IS_ENABLED(CONFIG_COMMON_CLK)) + clk_unprepare(udc->uclk); fail1: if (IS_ENABLED(CONFIG_COMMON_CLK) && !IS_ERR(udc->uclk)) clk_put(udc->uclk); @@ -1907,6 +1922,11 @@ res = platform_get_resource(pdev, IORESOURCE_MEM, 0); release_mem_region(res->start, resource_size(res)); + if (IS_ENABLED(CONFIG_COMMON_CLK)) + clk_unprepare(udc->uclk); + clk_unprepare(udc->fclk); + clk_unprepare(udc->iclk); + clk_put(udc->iclk); clk_put(udc->fclk); if (IS_ENABLED(CONFIG_COMMON_CLK)) --- linux-3.13.0.orig/drivers/usb/gadget/atmel_usba_udc.c +++ linux-3.13.0/drivers/usb/gadget/atmel_usba_udc.c @@ -1827,12 +1827,12 @@ toggle_bias(0); usba_writel(udc, CTRL, USBA_DISABLE_MASK); - udc->driver = NULL; - clk_disable_unprepare(udc->hclk); clk_disable_unprepare(udc->pclk); - DBG(DBG_GADGET, "unregistered driver `%s'\n", driver->driver.name); + DBG(DBG_GADGET, "unregistered driver `%s'\n", udc->driver->driver.name); + + udc->driver = NULL; return 0; } --- linux-3.13.0.orig/drivers/usb/gadget/bcm63xx_udc.c +++ linux-3.13.0/drivers/usb/gadget/bcm63xx_udc.c @@ -361,24 +361,30 @@ bcm_writel(val, udc->iudma_regs + off); } -static inline u32 usb_dmac_readl(struct bcm63xx_udc *udc, u32 off) +static inline u32 usb_dmac_readl(struct bcm63xx_udc *udc, u32 off, int chan) { - return bcm_readl(udc->iudma_regs + IUDMA_DMAC_OFFSET + off); + return bcm_readl(udc->iudma_regs + IUDMA_DMAC_OFFSET + off + + (ENETDMA_CHAN_WIDTH * chan)); } -static inline void usb_dmac_writel(struct bcm63xx_udc *udc, u32 val, u32 off) +static inline void usb_dmac_writel(struct bcm63xx_udc *udc, u32 val, u32 off, + int chan) { - bcm_writel(val, udc->iudma_regs + IUDMA_DMAC_OFFSET + off); + bcm_writel(val, udc->iudma_regs + IUDMA_DMAC_OFFSET + off + + (ENETDMA_CHAN_WIDTH * chan)); } -static inline u32 usb_dmas_readl(struct bcm63xx_udc *udc, u32 off) +static inline u32 usb_dmas_readl(struct bcm63xx_udc *udc, u32 off, int chan) { - return bcm_readl(udc->iudma_regs + IUDMA_DMAS_OFFSET + off); + return bcm_readl(udc->iudma_regs + IUDMA_DMAS_OFFSET + off + + (ENETDMA_CHAN_WIDTH * chan)); } -static inline void usb_dmas_writel(struct bcm63xx_udc *udc, u32 val, u32 off) +static inline void usb_dmas_writel(struct bcm63xx_udc *udc, u32 val, u32 off, + int chan) { - bcm_writel(val, udc->iudma_regs + IUDMA_DMAS_OFFSET + off); + bcm_writel(val, udc->iudma_regs + IUDMA_DMAS_OFFSET + off + + (ENETDMA_CHAN_WIDTH * chan)); } static inline void set_clocks(struct bcm63xx_udc *udc, bool is_enabled) @@ -639,7 +645,7 @@ } while (!last_bd); usb_dmac_writel(udc, ENETDMAC_CHANCFG_EN_MASK, - ENETDMAC_CHANCFG_REG(iudma->ch_idx)); + ENETDMAC_CHANCFG_REG, iudma->ch_idx); } /** @@ -695,9 +701,9 @@ bcm63xx_fifo_reset_ep(udc, max(0, iudma->ep_num)); /* stop DMA, then wait for the hardware to wrap up */ - usb_dmac_writel(udc, 0, ENETDMAC_CHANCFG_REG(ch_idx)); + usb_dmac_writel(udc, 0, ENETDMAC_CHANCFG_REG, ch_idx); - while (usb_dmac_readl(udc, ENETDMAC_CHANCFG_REG(ch_idx)) & + while (usb_dmac_readl(udc, ENETDMAC_CHANCFG_REG, ch_idx) & ENETDMAC_CHANCFG_EN_MASK) { udelay(1); @@ -714,10 +720,10 @@ dev_warn(udc->dev, "forcibly halting IUDMA channel %d\n", ch_idx); usb_dmac_writel(udc, ENETDMAC_CHANCFG_BUFHALT_MASK, - ENETDMAC_CHANCFG_REG(ch_idx)); + ENETDMAC_CHANCFG_REG, ch_idx); } } - usb_dmac_writel(udc, ~0, ENETDMAC_IR_REG(ch_idx)); + usb_dmac_writel(udc, ~0, ENETDMAC_IR_REG, ch_idx); /* don't leave "live" HW-owned entries for the next guy to step on */ for (d = iudma->bd_ring; d <= iudma->end_bd; d++) @@ -729,11 +735,11 @@ /* set up IRQs, UBUS burst size, and BD base for this channel */ usb_dmac_writel(udc, ENETDMAC_IR_BUFDONE_MASK, - ENETDMAC_IRMASK_REG(ch_idx)); - usb_dmac_writel(udc, 8, ENETDMAC_MAXBURST_REG(ch_idx)); + ENETDMAC_IRMASK_REG, ch_idx); + usb_dmac_writel(udc, 8, ENETDMAC_MAXBURST_REG, ch_idx); - usb_dmas_writel(udc, iudma->bd_ring_dma, ENETDMAS_RSTART_REG(ch_idx)); - usb_dmas_writel(udc, 0, ENETDMAS_SRAM2_REG(ch_idx)); + usb_dmas_writel(udc, iudma->bd_ring_dma, ENETDMAS_RSTART_REG, ch_idx); + usb_dmas_writel(udc, 0, ENETDMAS_SRAM2_REG, ch_idx); } /** @@ -2036,7 +2042,7 @@ spin_lock(&udc->lock); usb_dmac_writel(udc, ENETDMAC_IR_BUFDONE_MASK, - ENETDMAC_IR_REG(iudma->ch_idx)); + ENETDMAC_IR_REG, iudma->ch_idx); bep = iudma->bep; rc = iudma_read(udc, iudma); @@ -2176,18 +2182,18 @@ seq_printf(s, " [ep%d]:\n", max_t(int, iudma_defaults[ch_idx].ep_num, 0)); seq_printf(s, " cfg: %08x; irqstat: %08x; irqmask: %08x; maxburst: %08x\n", - usb_dmac_readl(udc, ENETDMAC_CHANCFG_REG(ch_idx)), - usb_dmac_readl(udc, ENETDMAC_IR_REG(ch_idx)), - usb_dmac_readl(udc, ENETDMAC_IRMASK_REG(ch_idx)), - usb_dmac_readl(udc, ENETDMAC_MAXBURST_REG(ch_idx))); + usb_dmac_readl(udc, ENETDMAC_CHANCFG_REG, ch_idx), + usb_dmac_readl(udc, ENETDMAC_IR_REG, ch_idx), + usb_dmac_readl(udc, ENETDMAC_IRMASK_REG, ch_idx), + usb_dmac_readl(udc, ENETDMAC_MAXBURST_REG, ch_idx)); - sram2 = usb_dmas_readl(udc, ENETDMAS_SRAM2_REG(ch_idx)); - sram3 = usb_dmas_readl(udc, ENETDMAS_SRAM3_REG(ch_idx)); + sram2 = usb_dmas_readl(udc, ENETDMAS_SRAM2_REG, ch_idx); + sram3 = usb_dmas_readl(udc, ENETDMAS_SRAM3_REG, ch_idx); seq_printf(s, " base: %08x; index: %04x_%04x; desc: %04x_%04x %08x\n", - usb_dmas_readl(udc, ENETDMAS_RSTART_REG(ch_idx)), + usb_dmas_readl(udc, ENETDMAS_RSTART_REG, ch_idx), sram2 >> 16, sram2 & 0xffff, sram3 >> 16, sram3 & 0xffff, - usb_dmas_readl(udc, ENETDMAS_SRAM4_REG(ch_idx))); + usb_dmas_readl(udc, ENETDMAS_SRAM4_REG, ch_idx)); seq_printf(s, " desc: %d/%d used", iudma->n_bds_used, iudma->n_bds); --- linux-3.13.0.orig/drivers/usb/gadget/f_acm.c +++ linux-3.13.0/drivers/usb/gadget/f_acm.c @@ -430,11 +430,12 @@ if (acm->notify->driver_data) { VDBG(cdev, "reset acm control interface %d\n", intf); usb_ep_disable(acm->notify); - } else { - VDBG(cdev, "init acm ctrl interface %d\n", intf); + } + + if (!acm->notify->desc) if (config_ep_by_speed(cdev->gadget, f, acm->notify)) return -EINVAL; - } + usb_ep_enable(acm->notify); acm->notify->driver_data = acm; --- linux-3.13.0.orig/drivers/usb/gadget/f_fs.c +++ linux-3.13.0/drivers/usb/gadget/f_fs.c @@ -1389,11 +1389,13 @@ ffs->ep0req->context = ffs; lang = ffs->stringtabs; - for (lang = ffs->stringtabs; *lang; ++lang) { - struct usb_string *str = (*lang)->strings; - int id = first_id; - for (; str->s; ++id, ++str) - str->id = id; + if (lang) { + for (; *lang; ++lang) { + struct usb_string *str = (*lang)->strings; + int id = first_id; + for (; str->s; ++id, ++str) + str->id = id; + } } ffs->gadget = cdev->gadget; --- linux-3.13.0.orig/drivers/usb/gadget/fusb300_udc.h +++ linux-3.13.0/drivers/usb/gadget/fusb300_udc.h @@ -12,7 +12,7 @@ #ifndef __FUSB300_UDC_H__ -#define __FUSB300_UDC_H_ +#define __FUSB300_UDC_H__ #include --- linux-3.13.0.orig/drivers/usb/gadget/tcm_usb_gadget.c +++ linux-3.13.0/drivers/usb/gadget/tcm_usb_gadget.c @@ -1613,7 +1613,7 @@ return ERR_PTR(-ENOMEM); } tport->tport_wwpn = wwpn; - snprintf(tport->tport_name, sizeof(tport->tport_name), wnn_name); + snprintf(tport->tport_name, sizeof(tport->tport_name), "%s", wnn_name); return &tport->tport_wwn; } --- linux-3.13.0.orig/drivers/usb/gadget/u_serial.c +++ linux-3.13.0/drivers/usb/gadget/u_serial.c @@ -549,8 +549,8 @@ port->read_started--; } - /* Push from tty to ldisc; without low_latency set this is handled by - * a workqueue, so we won't get callbacks and can hold port_lock + /* Push from tty to ldisc; this is handled by a workqueue, + * so we won't get callbacks and can hold port_lock */ if (do_push) tty_flip_buffer_push(&port->port); --- linux-3.13.0.orig/drivers/usb/gadget/udc-core.c +++ linux-3.13.0/drivers/usb/gadget/udc-core.c @@ -456,6 +456,11 @@ { struct usb_udc *udc = container_of(dev, struct usb_udc, dev); + if (!udc->driver) { + dev_err(dev, "soft-connect without a gadget driver\n"); + return -EOPNOTSUPP; + } + if (sysfs_streq(buf, "connect")) { usb_gadget_udc_start(udc->gadget, udc->driver); usb_gadget_connect(udc->gadget); --- linux-3.13.0.orig/drivers/usb/gadget/zero.c +++ linux-3.13.0/drivers/usb/gadget/zero.c @@ -300,7 +300,7 @@ ss_opts->isoc_interval = gzero_options.isoc_interval; ss_opts->isoc_maxpacket = gzero_options.isoc_maxpacket; ss_opts->isoc_mult = gzero_options.isoc_mult; - ss_opts->isoc_maxburst = gzero_options.isoc_maxpacket; + ss_opts->isoc_maxburst = gzero_options.isoc_maxburst; ss_opts->bulk_buflen = gzero_options.bulk_buflen; func_ss = usb_get_function(func_inst_ss); --- linux-3.13.0.orig/drivers/usb/host/ehci-fsl.c +++ linux-3.13.0/drivers/usb/host/ehci-fsl.c @@ -261,7 +261,8 @@ break; } - if (pdata->have_sysif_regs && pdata->controller_ver && + if (pdata->have_sysif_regs && + pdata->controller_ver > FSL_USB_VER_1_6 && (phy_mode == FSL_USB2_PHY_ULPI)) { /* check PHY_CLK_VALID to get phy clk valid */ if (!(spin_event_timeout(in_be32(non_ehci + FSL_SOC_USB_CTRL) & --- linux-3.13.0.orig/drivers/usb/host/ehci-hcd.c +++ linux-3.13.0/drivers/usb/host/ehci-hcd.c @@ -686,8 +686,15 @@ struct ehci_hcd *ehci = hcd_to_ehci (hcd); u32 status, masked_status, pcd_status = 0, cmd; int bh; + unsigned long flags; - spin_lock (&ehci->lock); + /* + * For threadirqs option we use spin_lock_irqsave() variant to prevent + * deadlock with ehci hrtimer callback, because hrtimer callbacks run + * in interrupt context even when threadirqs is specified. We can go + * back to spin_lock() variant when hrtimer callbacks become threaded. + */ + spin_lock_irqsave(&ehci->lock, flags); status = ehci_readl(ehci, &ehci->regs->status); @@ -705,7 +712,7 @@ /* Shared IRQ? */ if (!masked_status || unlikely(ehci->rh_state == EHCI_RH_HALTED)) { - spin_unlock(&ehci->lock); + spin_unlock_irqrestore(&ehci->lock, flags); return IRQ_NONE; } @@ -823,7 +830,7 @@ if (bh) ehci_work (ehci); - spin_unlock (&ehci->lock); + spin_unlock_irqrestore(&ehci->lock, flags); if (pcd_status) usb_hcd_poll_rh_status(hcd); return IRQ_HANDLED; @@ -966,8 +973,6 @@ } qh->exception = 1; - if (ehci->rh_state < EHCI_RH_RUNNING) - qh->qh_state = QH_STATE_IDLE; switch (qh->qh_state) { case QH_STATE_LINKED: WARN_ON(!list_empty(&qh->qtd_list)); --- linux-3.13.0.orig/drivers/usb/host/ehci-hub.c +++ linux-3.13.0/drivers/usb/host/ehci-hub.c @@ -238,6 +238,7 @@ int port; int mask; int changed; + bool fs_idle_delay; ehci_dbg(ehci, "suspend root hub\n"); @@ -272,6 +273,7 @@ ehci->bus_suspended = 0; ehci->owned_ports = 0; changed = 0; + fs_idle_delay = false; port = HCS_N_PORTS(ehci->hcs_params); while (port--) { u32 __iomem *reg = &ehci->regs->port_status [port]; @@ -300,16 +302,32 @@ } if (t1 != t2) { + /* + * On some controllers, Wake-On-Disconnect will + * generate false wakeup signals until the bus + * switches over to full-speed idle. For their + * sake, add a delay if we need one. + */ + if ((t2 & PORT_WKDISC_E) && + ehci_port_speed(ehci, t2) == + USB_PORT_STAT_HIGH_SPEED) + fs_idle_delay = true; ehci_writel(ehci, t2, reg); changed = 1; } } + spin_unlock_irq(&ehci->lock); + + if ((changed && ehci->has_tdi_phy_lpm) || fs_idle_delay) { + /* + * Wait for HCD to enter low-power mode or for the bus + * to switch to full-speed idle. + */ + usleep_range(5000, 5500); + } if (changed && ehci->has_tdi_phy_lpm) { - spin_unlock_irq(&ehci->lock); - msleep(5); /* 5 ms for HCD to enter low-power mode */ spin_lock_irq(&ehci->lock); - port = HCS_N_PORTS(ehci->hcs_params); while (port--) { u32 __iomem *hostpc_reg = &ehci->regs->hostpc[port]; @@ -322,8 +340,8 @@ port, (t3 & HOSTPC_PHCD) ? "succeeded" : "failed"); } + spin_unlock_irq(&ehci->lock); } - spin_unlock_irq(&ehci->lock); /* Apparently some devices need a >= 1-uframe delay here */ if (ehci->bus_suspended) @@ -1223,7 +1241,7 @@ if (selector == EHSET_TEST_SINGLE_STEP_SET_FEATURE) { spin_unlock_irqrestore(&ehci->lock, flags); retval = ehset_single_step_set_feature(hcd, - wIndex); + wIndex + 1); spin_lock_irqsave(&ehci->lock, flags); break; } --- linux-3.13.0.orig/drivers/usb/host/ehci-pci.c +++ linux-3.13.0/drivers/usb/host/ehci-pci.c @@ -35,6 +35,21 @@ #define PCI_DEVICE_ID_INTEL_CE4100_USB 0x2e70 /*-------------------------------------------------------------------------*/ +#define PCI_DEVICE_ID_INTEL_QUARK_X1000_SOC 0x0939 +static inline bool is_intel_quark_x1000(struct pci_dev *pdev) +{ + return pdev->vendor == PCI_VENDOR_ID_INTEL && + pdev->device == PCI_DEVICE_ID_INTEL_QUARK_X1000_SOC; +} + +/* + * 0x84 is the offset of in/out threshold register, + * and it is the same offset as the register of 'hostpc'. + */ +#define intel_quark_x1000_insnreg01 hostpc + +/* Maximum usable threshold value is 0x7f dwords for both IN and OUT */ +#define INTEL_QUARK_X1000_EHCI_MAX_THRESHOLD 0x007f007f /* called after powerup, by probe or system-pm "wakeup" */ static int ehci_pci_reinit(struct ehci_hcd *ehci, struct pci_dev *pdev) @@ -50,6 +65,16 @@ if (!retval) ehci_dbg(ehci, "MWI active\n"); + /* Reset the threshold limit */ + if (is_intel_quark_x1000(pdev)) { + /* + * For the Intel QUARK X1000, raise the I/O threshold to the + * maximum usable value in order to improve performance. + */ + ehci_writel(ehci, INTEL_QUARK_X1000_EHCI_MAX_THRESHOLD, + ehci->regs->intel_quark_x1000_insnreg01); + } + return 0; } --- linux-3.13.0.orig/drivers/usb/host/ehci.h +++ linux-3.13.0/drivers/usb/host/ehci.h @@ -225,6 +225,7 @@ unsigned has_synopsys_hc_bug:1; /* Synopsys HC */ unsigned frame_index_bug:1; /* MosChip (AKA NetMos) */ unsigned need_oc_pp_cycle:1; /* MPC834X port power */ + unsigned imx28_write_fix:1; /* For Freescale i.MX28 */ /* required for usb32 quirk */ #define OHCI_CTRL_HCFS (3 << 6) @@ -728,6 +729,18 @@ #endif } +#ifdef CONFIG_SOC_IMX28 +static inline void imx28_ehci_writel(const unsigned int val, + volatile __u32 __iomem *addr) +{ + __asm__ ("swp %0, %0, [%1]" : : "r"(val), "r"(addr)); +} +#else +static inline void imx28_ehci_writel(const unsigned int val, + volatile __u32 __iomem *addr) +{ +} +#endif static inline void ehci_writel(const struct ehci_hcd *ehci, const unsigned int val, __u32 __iomem *regs) { @@ -736,7 +749,10 @@ writel_be(val, regs) : writel(val, regs); #else - writel(val, regs); + if (ehci->imx28_write_fix) + imx28_ehci_writel(val, regs); + else + writel(val, regs); #endif } --- linux-3.13.0.orig/drivers/usb/host/ohci-dbg.c +++ linux-3.13.0/drivers/usb/host/ohci-dbg.c @@ -289,7 +289,7 @@ } } -static void ohci_dump (struct ohci_hcd *controller, int verbose) +static void ohci_dump(struct ohci_hcd *controller) { ohci_dbg (controller, "OHCI controller state\n"); @@ -408,7 +408,7 @@ } #else -static inline void ohci_dump (struct ohci_hcd *controller, int verbose) {} +static inline void ohci_dump (struct ohci_hcd *controller) {} #undef OHCI_VERBOSE_DEBUG @@ -531,15 +531,16 @@ static ssize_t fill_async_buffer(struct debug_buffer *buf) { struct ohci_hcd *ohci; - size_t temp; + size_t temp, size; unsigned long flags; ohci = buf->ohci; + size = PAGE_SIZE; /* display control and bulk lists together, for simplicity */ spin_lock_irqsave (&ohci->lock, flags); - temp = show_list(ohci, buf->page, buf->count, ohci->ed_controltail); - temp += show_list(ohci, buf->page + temp, buf->count - temp, + temp = show_list(ohci, buf->page, size, ohci->ed_controltail); + temp += show_list(ohci, buf->page + temp, size - temp, ohci->ed_bulktail); spin_unlock_irqrestore (&ohci->lock, flags); --- linux-3.13.0.orig/drivers/usb/host/ohci-hcd.c +++ linux-3.13.0/drivers/usb/host/ohci-hcd.c @@ -78,8 +78,8 @@ #include "ohci.h" #include "pci-quirks.h" -static void ohci_dump (struct ohci_hcd *ohci, int verbose); -static void ohci_stop (struct usb_hcd *hcd); +static void ohci_dump(struct ohci_hcd *ohci); +static void ohci_stop(struct usb_hcd *hcd); #include "ohci-hub.c" #include "ohci-dbg.c" @@ -754,7 +754,7 @@ ohci->ed_to_check = NULL; } - ohci_dump (ohci, 1); + ohci_dump(ohci); return 0; } @@ -835,7 +835,7 @@ usb_hc_died(hcd); } - ohci_dump (ohci, 1); + ohci_dump(ohci); ohci_usb_reset (ohci); } @@ -935,7 +935,7 @@ { struct ohci_hcd *ohci = hcd_to_ohci (hcd); - ohci_dump (ohci, 1); + ohci_dump(ohci); if (quirk_nec(ohci)) flush_work(&ohci->nec_work); --- linux-3.13.0.orig/drivers/usb/host/ohci-hub.c +++ linux-3.13.0/drivers/usb/host/ohci-hub.c @@ -90,6 +90,24 @@ dl_done_list (ohci); finish_unlinks (ohci, ohci_frame_no(ohci)); + /* + * Some controllers don't handle "global" suspend properly if + * there are unsuspended ports. For these controllers, put all + * the enabled ports into suspend before suspending the root hub. + */ + if (ohci->flags & OHCI_QUIRK_GLOBAL_SUSPEND) { + __hc32 __iomem *portstat = ohci->regs->roothub.portstatus; + int i; + unsigned temp; + + for (i = 0; i < ohci->num_ports; (++i, ++portstat)) { + temp = ohci_readl(ohci, portstat); + if ((temp & (RH_PS_PES | RH_PS_PSS)) == + RH_PS_PES) + ohci_writel(ohci, RH_PS_PSS, portstat); + } + } + /* maybe resume can wake root hub */ if (ohci_to_hcd(ohci)->self.root_hub->do_remote_wakeup || autostop) { ohci->hc_control |= OHCI_CTRL_RWE; --- linux-3.13.0.orig/drivers/usb/host/ohci-pci.c +++ linux-3.13.0/drivers/usb/host/ohci-pci.c @@ -160,6 +160,7 @@ ohci_dbg(ohci, "enabled AMD prefetch quirk\n"); } + ohci->flags |= OHCI_QUIRK_GLOBAL_SUSPEND; return 0; } --- linux-3.13.0.orig/drivers/usb/host/ohci-q.c +++ linux-3.13.0/drivers/usb/host/ohci-q.c @@ -315,8 +315,7 @@ * - ED_OPER: when there's any request queued, the ED gets rescheduled * immediately. HC should be working on them. * - * - ED_IDLE: when there's no TD queue. there's no reason for the HC - * to care about this ED; safe to disable the endpoint. + * - ED_IDLE: when there's no TD queue or the HC isn't running. * * When finish_unlinks() runs later, after SOF interrupt, it will often * complete one or more URB unlinks before making that state change. @@ -930,6 +929,10 @@ int completed, modified; __hc32 *prev; + /* Is this ED already invisible to the hardware? */ + if (ed->state == ED_IDLE) + goto ed_idle; + /* only take off EDs that the HC isn't using, accounting for * frame counter wraps and EDs with partially retired TDs */ @@ -959,12 +962,20 @@ } } + /* ED's now officially unlinked, hc doesn't see */ + ed->state = ED_IDLE; + if (quirk_zfmicro(ohci) && ed->type == PIPE_INTERRUPT) + ohci->eds_scheduled--; + ed->hwHeadP &= ~cpu_to_hc32(ohci, ED_H); + ed->hwNextED = 0; + wmb(); + ed->hwINFO &= ~cpu_to_hc32(ohci, ED_SKIP | ED_DEQUEUE); +ed_idle: + /* reentrancy: if we drop the schedule lock, someone might * have modified this list. normally it's just prepending * entries (which we'd ignore), but paranoia won't hurt. */ - *last = ed->ed_next; - ed->ed_next = NULL; modified = 0; /* unlink urbs as requested, but rescan the list after @@ -1022,19 +1033,20 @@ if (completed && !list_empty (&ed->td_list)) goto rescan_this; - /* ED's now officially unlinked, hc doesn't see */ - ed->state = ED_IDLE; - if (quirk_zfmicro(ohci) && ed->type == PIPE_INTERRUPT) - ohci->eds_scheduled--; - ed->hwHeadP &= ~cpu_to_hc32(ohci, ED_H); - ed->hwNextED = 0; - wmb (); - ed->hwINFO &= ~cpu_to_hc32 (ohci, ED_SKIP | ED_DEQUEUE); - - /* but if there's work queued, reschedule */ - if (!list_empty (&ed->td_list)) { - if (ohci->rh_state == OHCI_RH_RUNNING) - ed_schedule (ohci, ed); + /* + * If no TDs are queued, take ED off the ed_rm_list. + * Otherwise, if the HC is running, reschedule. + * If not, leave it on the list for further dequeues. + */ + if (list_empty(&ed->td_list)) { + *last = ed->ed_next; + ed->ed_next = NULL; + } else if (ohci->rh_state == OHCI_RH_RUNNING) { + *last = ed->ed_next; + ed->ed_next = NULL; + ed_schedule(ohci, ed); + } else { + last = &ed->ed_next; } if (modified) --- linux-3.13.0.orig/drivers/usb/host/ohci.h +++ linux-3.13.0/drivers/usb/host/ohci.h @@ -405,6 +405,8 @@ #define OHCI_QUIRK_HUB_POWER 0x100 /* distrust firmware power/oc setup */ #define OHCI_QUIRK_AMD_PLL 0x200 /* AMD PLL quirk*/ #define OHCI_QUIRK_AMD_PREFETCH 0x400 /* pre-fetch for ISO transfer */ +#define OHCI_QUIRK_GLOBAL_SUSPEND 0x800 /* must suspend ports */ + // there are also chip quirks/bugs in init logic struct work_struct nec_work; /* Worker for NEC quirk */ --- linux-3.13.0.orig/drivers/usb/host/pci-quirks.c +++ linux-3.13.0/drivers/usb/host/pci-quirks.c @@ -657,6 +657,14 @@ DMI_MATCH(DMI_BIOS_VERSION, "Lucid-"), }, }, + { + /* HASEE E200 */ + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "HASEE"), + DMI_MATCH(DMI_BOARD_NAME, "E210"), + DMI_MATCH(DMI_BIOS_VERSION, "6.00"), + }, + }, { } }; @@ -666,9 +674,14 @@ { int try_handoff = 1, tried_handoff = 0; - /* The Pegatron Lucid tablet sporadically waits for 98 seconds trying - * the handoff on its unused controller. Skip it. */ - if (pdev->vendor == 0x8086 && pdev->device == 0x283a) { + /* + * The Pegatron Lucid tablet sporadically waits for 98 seconds trying + * the handoff on its unused controller. Skip it. + * + * The HASEE E200 hangs when the semaphore is set (bugzilla #77021). + */ + if (pdev->vendor == 0x8086 && (pdev->device == 0x283a || + pdev->device == 0x27cc)) { if (dmi_check_system(ehci_dmi_nohandoff_table)) try_handoff = 0; } --- linux-3.13.0.orig/drivers/usb/host/xhci-hub.c +++ linux-3.13.0/drivers/usb/host/xhci-hub.c @@ -470,7 +470,8 @@ } /* Updates Link Status for super Speed port */ -static void xhci_hub_report_usb3_link_state(u32 *status, u32 status_reg) +static void xhci_hub_report_usb3_link_state(struct xhci_hcd *xhci, + u32 *status, u32 status_reg) { u32 pls = status_reg & PORT_PLS_MASK; @@ -509,7 +510,8 @@ * in which sometimes the port enters compliance mode * caused by a delay on the host-device negotiation. */ - if (pls == USB_SS_PORT_LS_COMP_MOD) + if ((xhci->quirks & XHCI_COMP_MODE_QUIRK) && + (pls == USB_SS_PORT_LS_COMP_MOD)) pls |= USB_PORT_STAT_CONNECTION; } @@ -669,7 +671,7 @@ } /* Update Port Link State */ if (hcd->speed == HCD_USB3) { - xhci_hub_report_usb3_link_state(&status, raw_port_status); + xhci_hub_report_usb3_link_state(xhci, &status, raw_port_status); /* * Verify if all USB3 Ports Have entered U0 already. * Delete Compliance Mode Timer if so. --- linux-3.13.0.orig/drivers/usb/host/xhci-mem.c +++ linux-3.13.0/drivers/usb/host/xhci-mem.c @@ -1711,6 +1711,7 @@ if (xhci->lpm_command) xhci_free_command(xhci, xhci->lpm_command); + xhci->lpm_command = NULL; xhci->cmd_ring_reserved_trbs = 0; if (xhci->cmd_ring) xhci_ring_free(xhci, xhci->cmd_ring); @@ -1722,6 +1723,16 @@ kfree(cur_cd); } + num_ports = HCS_MAX_PORTS(xhci->hcs_params1); + for (i = 0; i < num_ports && xhci->rh_bw; i++) { + struct xhci_interval_bw_table *bwt = &xhci->rh_bw[i].bw_table; + for (j = 0; j < XHCI_MAX_INTERVAL; j++) { + struct list_head *ep = &bwt->interval_bw[j].endpoints; + while (!list_empty(ep)) + list_del_init(ep->next); + } + } + for (i = 1; i < MAX_HC_SLOTS; ++i) xhci_free_virt_device(xhci, i); @@ -1757,16 +1768,6 @@ if (!xhci->rh_bw) goto no_bw; - num_ports = HCS_MAX_PORTS(xhci->hcs_params1); - for (i = 0; i < num_ports; i++) { - struct xhci_interval_bw_table *bwt = &xhci->rh_bw[i].bw_table; - for (j = 0; j < XHCI_MAX_INTERVAL; j++) { - struct list_head *ep = &bwt->interval_bw[j].endpoints; - while (!list_empty(ep)) - list_del_init(ep->next); - } - } - for (i = 0; i < num_ports; i++) { struct xhci_tt_bw_info *tt, *n; list_for_each_entry_safe(tt, n, &xhci->rh_bw[i].tts, tt_list) { --- linux-3.13.0.orig/drivers/usb/host/xhci-pci.c +++ linux-3.13.0/drivers/usb/host/xhci-pci.c @@ -101,6 +101,10 @@ /* AMD PLL quirk */ if (pdev->vendor == PCI_VENDOR_ID_AMD && usb_amd_find_chipset_info()) xhci->quirks |= XHCI_AMD_PLL_FIX; + + if (pdev->vendor == PCI_VENDOR_ID_AMD) + xhci->quirks |= XHCI_TRUST_TX_LENGTH; + if (pdev->vendor == PCI_VENDOR_ID_INTEL) { xhci->quirks |= XHCI_LPM_SUPPORT; xhci->quirks |= XHCI_INTEL_HOST; @@ -122,18 +126,8 @@ xhci->quirks |= XHCI_AVOID_BEI; } if (pdev->vendor == PCI_VENDOR_ID_INTEL && - (pdev->device == PCI_DEVICE_ID_INTEL_LYNXPOINT_XHCI || - pdev->device == PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_XHCI)) { - /* Workaround for occasional spurious wakeups from S5 (or - * any other sleep) on Haswell machines with LPT and LPT-LP - * with the new Intel BIOS - */ - /* Limit the quirk to only known vendors, as this triggers - * yet another BIOS bug on some other machines - * https://bugzilla.kernel.org/show_bug.cgi?id=66171 - */ - if (pdev->subsystem_vendor == PCI_VENDOR_ID_HP) - xhci->quirks |= XHCI_SPURIOUS_WAKEUP; + pdev->device == PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_XHCI) { + xhci->quirks |= XHCI_SPURIOUS_REBOOT; } if (pdev->vendor == PCI_VENDOR_ID_ETRON && pdev->device == PCI_DEVICE_ID_ASROCK_P67) { @@ -142,6 +136,11 @@ "QUIRK: Resetting on resume"); xhci->quirks |= XHCI_TRUST_TX_LENGTH; } + if (pdev->vendor == PCI_VENDOR_ID_RENESAS && + pdev->device == 0x0015 && + pdev->subsystem_vendor == PCI_VENDOR_ID_SAMSUNG && + pdev->subsystem_device == 0xc0cd) + xhci->quirks |= XHCI_RESET_ON_RESUME; if (pdev->vendor == PCI_VENDOR_ID_VIA) xhci->quirks |= XHCI_RESET_ON_RESUME; } @@ -185,6 +184,10 @@ struct usb_hcd *hcd; driver = (struct hc_driver *)id->driver_data; + + /* Prevent runtime suspending between USB-2 and USB-3 initialization */ + pm_runtime_get_noresume(&dev->dev); + /* Register the USB 2.0 roothub. * FIXME: USB core must know to register the USB 2.0 roothub first. * This is sort of silly, because we could just set the HCD driver flags @@ -194,7 +197,7 @@ retval = usb_hcd_pci_probe(dev, id); if (retval) - return retval; + goto put_runtime_pm; /* USB 2.0 roothub is stored in the PCI device now. */ hcd = dev_get_drvdata(&dev->dev); @@ -223,12 +226,17 @@ if (xhci->quirks & XHCI_LPM_SUPPORT) hcd_to_bus(xhci->shared_hcd)->root_hub->lpm_capable = 1; + /* USB-2 and USB-3 roothubs initialized, allow runtime pm suspend */ + pm_runtime_put_noidle(&dev->dev); + return 0; put_usb3_hcd: usb_put_hcd(xhci->shared_hcd); dealloc_usb2_hcd: usb_hcd_pci_remove(dev); +put_runtime_pm: + pm_runtime_put_noidle(&dev->dev); return retval; } @@ -263,7 +271,7 @@ if (xhci_compliance_mode_recovery_timer_quirk_check()) pdev->no_d3cold = true; - return xhci_suspend(xhci); + return xhci_suspend(xhci, do_wakeup); } static int xhci_pci_resume(struct usb_hcd *hcd, bool hibernated) --- linux-3.13.0.orig/drivers/usb/host/xhci-plat.c +++ linux-3.13.0/drivers/usb/host/xhci-plat.c @@ -203,7 +203,15 @@ struct usb_hcd *hcd = dev_get_drvdata(dev); struct xhci_hcd *xhci = hcd_to_xhci(hcd); - return xhci_suspend(xhci); + /* + * xhci_suspend() needs `do_wakeup` to know whether host is allowed + * to do wakeup during suspend. Since xhci_plat_suspend is currently + * only designed for system suspend, device_may_wakeup() is enough + * to dertermine whether host is allowed to do wakeup. Need to + * reconsider this when xhci_plat_suspend enlarges its scope, e.g., + * also applies to runtime suspend. + */ + return xhci_suspend(xhci, device_may_wakeup(dev)); } static int xhci_plat_resume(struct device *dev) --- linux-3.13.0.orig/drivers/usb/host/xhci-ring.c +++ linux-3.13.0/drivers/usb/host/xhci-ring.c @@ -552,10 +552,14 @@ struct xhci_dequeue_state *state) { struct xhci_virt_device *dev = xhci->devs[slot_id]; + struct xhci_virt_ep *ep = &dev->eps[ep_index]; struct xhci_ring *ep_ring; - struct xhci_generic_trb *trb; - struct xhci_ep_ctx *ep_ctx; + struct xhci_segment *new_seg; + union xhci_trb *new_deq; dma_addr_t addr; + u64 hw_dequeue; + bool cycle_found = false; + bool td_last_trb_found = false; ep_ring = xhci_triad_to_transfer_ring(xhci, slot_id, ep_index, stream_id); @@ -565,56 +569,65 @@ stream_id); return; } - state->new_cycle_state = 0; - xhci_dbg_trace(xhci, trace_xhci_dbg_cancel_urb, - "Finding segment containing stopped TRB."); - state->new_deq_seg = find_trb_seg(cur_td->start_seg, - dev->eps[ep_index].stopped_trb, - &state->new_cycle_state); - if (!state->new_deq_seg) { - WARN_ON(1); - return; - } /* Dig out the cycle state saved by the xHC during the stop ep cmd */ xhci_dbg_trace(xhci, trace_xhci_dbg_cancel_urb, "Finding endpoint context"); - ep_ctx = xhci_get_ep_ctx(xhci, dev->out_ctx, ep_index); - state->new_cycle_state = 0x1 & le64_to_cpu(ep_ctx->deq); - - state->new_deq_ptr = cur_td->last_trb; - xhci_dbg_trace(xhci, trace_xhci_dbg_cancel_urb, - "Finding segment containing last TRB in TD."); - state->new_deq_seg = find_trb_seg(state->new_deq_seg, - state->new_deq_ptr, - &state->new_cycle_state); - if (!state->new_deq_seg) { - WARN_ON(1); - return; + /* 4.6.9 the css flag is written to the stream context for streams */ + if (ep->ep_state & EP_HAS_STREAMS) { + struct xhci_stream_ctx *ctx = + &ep->stream_info->stream_ctx_array[stream_id]; + hw_dequeue = le64_to_cpu(ctx->stream_ring); + } else { + struct xhci_ep_ctx *ep_ctx + = xhci_get_ep_ctx(xhci, dev->out_ctx, ep_index); + hw_dequeue = le64_to_cpu(ep_ctx->deq); } - trb = &state->new_deq_ptr->generic; - if (TRB_TYPE_LINK_LE32(trb->field[3]) && - (trb->field[3] & cpu_to_le32(LINK_TOGGLE))) - state->new_cycle_state ^= 0x1; - next_trb(xhci, ep_ring, &state->new_deq_seg, &state->new_deq_ptr); + new_seg = ep_ring->deq_seg; + new_deq = ep_ring->dequeue; + state->new_cycle_state = hw_dequeue & 0x1; /* - * If there is only one segment in a ring, find_trb_seg()'s while loop - * will not run, and it will return before it has a chance to see if it - * needs to toggle the cycle bit. It can't tell if the stalled transfer - * ended just before the link TRB on a one-segment ring, or if the TD - * wrapped around the top of the ring, because it doesn't have the TD in - * question. Look for the one-segment case where stalled TRB's address - * is greater than the new dequeue pointer address. - */ - if (ep_ring->first_seg == ep_ring->first_seg->next && - state->new_deq_ptr < dev->eps[ep_index].stopped_trb) - state->new_cycle_state ^= 0x1; + * We want to find the pointer, segment and cycle state of the new trb + * (the one after current TD's last_trb). We know the cycle state at + * hw_dequeue, so walk the ring until both hw_dequeue and last_trb are + * found. + */ + do { + if (!cycle_found && xhci_trb_virt_to_dma(new_seg, new_deq) + == (dma_addr_t)(hw_dequeue & ~0xf)) { + cycle_found = true; + if (td_last_trb_found) + break; + } + if (new_deq == cur_td->last_trb) + td_last_trb_found = true; + + if (cycle_found && + TRB_TYPE_LINK_LE32(new_deq->generic.field[3]) && + new_deq->generic.field[3] & cpu_to_le32(LINK_TOGGLE)) + state->new_cycle_state ^= 0x1; + + next_trb(xhci, ep_ring, &new_seg, &new_deq); + + /* Search wrapped around, bail out */ + if (new_deq == ep->ring->dequeue) { + xhci_err(xhci, "Error: Failed finding new dequeue state\n"); + state->new_deq_seg = NULL; + state->new_deq_ptr = NULL; + return; + } + + } while (!cycle_found || !td_last_trb_found); + + state->new_deq_seg = new_seg; + state->new_deq_ptr = new_deq; + + /* Don't update the ring cycle state for the producer (us). */ xhci_dbg_trace(xhci, trace_xhci_dbg_cancel_urb, "Cycle state = 0x%x", state->new_cycle_state); - /* Don't update the ring cycle state for the producer (us). */ xhci_dbg_trace(xhci, trace_xhci_dbg_cancel_urb, "New dequeue segment = %p (virtual)", state->new_deq_seg); @@ -797,7 +810,6 @@ if (list_empty(&ep->cancelled_td_list)) { xhci_stop_watchdog_timer_in_irq(xhci, ep); ep->stopped_td = NULL; - ep->stopped_trb = NULL; ring_doorbell_for_active_rings(xhci, slot_id, ep_index); return; } @@ -865,11 +877,9 @@ ring_doorbell_for_active_rings(xhci, slot_id, ep_index); } - /* Clear stopped_td and stopped_trb if endpoint is not halted */ - if (!(ep->ep_state & EP_HALTED)) { + /* Clear stopped_td if endpoint is not halted */ + if (!(ep->ep_state & EP_HALTED)) ep->stopped_td = NULL; - ep->stopped_trb = NULL; - } /* * Drop the lock and complete the URBs in the cancelled TD list. @@ -1187,9 +1197,8 @@ false); xhci_ring_cmd_db(xhci); } else { - /* Clear our internal halted state and restart the ring(s) */ + /* Clear our internal halted state */ xhci->devs[slot_id]->eps[ep_index].ep_state &= ~EP_HALTED; - ring_doorbell_for_active_rings(xhci, slot_id, ep_index); } } @@ -1585,8 +1594,11 @@ xhci_handle_cmd_reset_ep(xhci, slot_id, cmd_trb, cmd_comp_code); break; case TRB_RESET_DEV: - WARN_ON(slot_id != TRB_TO_SLOT_ID( - le32_to_cpu(cmd_trb->generic.field[3]))); + /* SLOT_ID field in reset device cmd completion event TRB is 0. + * Use the SLOT_ID from the command TRB instead (xhci 4.6.11) + */ + slot_id = TRB_TO_SLOT_ID( + le32_to_cpu(cmd_trb->generic.field[3])); xhci_handle_cmd_reset_dev(xhci, slot_id, event); break; case TRB_NEC_GET_FW: @@ -1914,14 +1926,12 @@ struct xhci_virt_ep *ep = &xhci->devs[slot_id]->eps[ep_index]; ep->ep_state |= EP_HALTED; ep->stopped_td = td; - ep->stopped_trb = event_trb; ep->stopped_stream = stream_id; xhci_queue_reset_ep(xhci, slot_id, ep_index); xhci_cleanup_stalled_ring(xhci, td->urb->dev, ep_index); ep->stopped_td = NULL; - ep->stopped_trb = NULL; ep->stopped_stream = 0; xhci_ring_cmd_db(xhci); @@ -2003,26 +2013,15 @@ * the ring dequeue pointer or take this TD off any lists yet. */ ep->stopped_td = td; - ep->stopped_trb = event_trb; return 0; } else { - if (trb_comp_code == COMP_STALL) { - /* The transfer is completed from the driver's - * perspective, but we need to issue a set dequeue - * command for this stalled endpoint to move the dequeue - * pointer past the TD. We can't do that here because - * the halt condition must be cleared first. Let the - * USB class driver clear the stall later. - */ - ep->stopped_td = td; - ep->stopped_trb = event_trb; - ep->stopped_stream = ep_ring->stream_id; - } else if (xhci_requires_manual_halt_cleanup(xhci, - ep_ctx, trb_comp_code)) { - /* Other types of errors halt the endpoint, but the - * class driver doesn't call usb_reset_endpoint() unless - * the error is -EPIPE. Clear the halted status in the - * xHCI hardware manually. + if (trb_comp_code == COMP_STALL || + xhci_requires_manual_halt_cleanup(xhci, ep_ctx, + trb_comp_code)) { + /* Issue a reset endpoint command to clear the host side + * halt, followed by a set dequeue command to move the + * dequeue pointer past the TD. + * The class driver clears the device side halt later. */ xhci_cleanup_halted_endpoint(xhci, slot_id, ep_index, ep_ring->stream_id, @@ -2142,9 +2141,7 @@ else td->urb->actual_length = 0; - xhci_cleanup_halted_endpoint(xhci, - slot_id, ep_index, 0, td, event_trb); - return finish_td(xhci, td, event_trb, event, ep, status, true); + return finish_td(xhci, td, event_trb, event, ep, status, false); } /* * Did we transfer any data, despite the errors that might have @@ -2620,7 +2617,8 @@ * last TRB of the previous TD. The command completion handle * will take care the rest. */ - if (!event_seg && trb_comp_code == COMP_STOP_INVAL) { + if (!event_seg && (trb_comp_code == COMP_STOP || + trb_comp_code == COMP_STOP_INVAL)) { ret = 0; goto cleanup; } @@ -2697,17 +2695,8 @@ if (ret) { urb = td->urb; urb_priv = urb->hcpriv; - /* Leave the TD around for the reset endpoint function - * to use(but only if it's not a control endpoint, - * since we already queued the Set TR dequeue pointer - * command for stalled control endpoints). - */ - if (usb_endpoint_xfer_control(&urb->ep->desc) || - (trb_comp_code != COMP_STALL && - trb_comp_code != COMP_BABBLE)) - xhci_urb_free_priv(xhci, urb_priv); - else - kfree(urb_priv); + + xhci_urb_free_priv(xhci, urb_priv); usb_hcd_unlink_urb_from_ep(bus_to_hcd(urb->dev->bus), urb); if ((urb->actual_length != urb->transfer_buffer_length && @@ -2973,58 +2962,8 @@ } while (1) { - if (room_on_ring(xhci, ep_ring, num_trbs)) { - union xhci_trb *trb = ep_ring->enqueue; - unsigned int usable = ep_ring->enq_seg->trbs + - TRBS_PER_SEGMENT - 1 - trb; - u32 nop_cmd; - - /* - * Section 4.11.7.1 TD Fragments states that a link - * TRB must only occur at the boundary between - * data bursts (eg 512 bytes for 480M). - * While it is possible to split a large fragment - * we don't know the size yet. - * Simplest solution is to fill the trb before the - * LINK with nop commands. - */ - if (num_trbs == 1 || num_trbs <= usable || usable == 0) - break; - - if (ep_ring->type != TYPE_BULK) - /* - * While isoc transfers might have a buffer that - * crosses a 64k boundary it is unlikely. - * Since we can't add NOPs without generating - * gaps in the traffic just hope it never - * happens at the end of the ring. - * This could be fixed by writing a LINK TRB - * instead of the first NOP - however the - * TRB_TYPE_LINK_LE32() calls would all need - * changing to check the ring length. - */ - break; - - if (num_trbs >= TRBS_PER_SEGMENT) { - xhci_err(xhci, "Too many fragments %d, max %d\n", - num_trbs, TRBS_PER_SEGMENT - 1); - return -ENOMEM; - } - - nop_cmd = cpu_to_le32(TRB_TYPE(TRB_TR_NOOP) | - ep_ring->cycle_state); - ep_ring->num_trbs_free -= usable; - do { - trb->generic.field[0] = 0; - trb->generic.field[1] = 0; - trb->generic.field[2] = 0; - trb->generic.field[3] = nop_cmd; - trb++; - } while (--usable); - ep_ring->enqueue = trb; - if (room_on_ring(xhci, ep_ring, num_trbs)) - break; - } + if (room_on_ring(xhci, ep_ring, num_trbs)) + break; if (ep_ring == xhci->cmd_ring) { xhci_err(xhci, "Do not support expand command ring\n"); @@ -3724,7 +3663,7 @@ return 0; max_burst = urb->ep->ss_ep_comp.bMaxBurst; - return roundup(total_packet_count, max_burst + 1) - 1; + return DIV_ROUND_UP(total_packet_count, max_burst + 1) - 1; } /* --- linux-3.13.0.orig/drivers/usb/host/xhci.c +++ linux-3.13.0/drivers/usb/host/xhci.c @@ -35,6 +35,8 @@ #define DRIVER_AUTHOR "Sarah Sharp" #define DRIVER_DESC "'eXtensible' Host Controller (xHC) Driver" +#define PORT_WAKE_BITS (PORT_WKOC_E | PORT_WKDISC_E | PORT_WKCONN_E) + /* Some 0.95 hardware can't handle the chain bit on a Link TRB being cleared */ static int link_quirk; module_param(link_quirk, int, S_IRUGO | S_IWUSR); @@ -321,6 +323,9 @@ struct usb_hcd *hcd = xhci_to_hcd(xhci); struct pci_dev *pdev = to_pci_dev(hcd->self.controller); + if (xhci->quirks & XHCI_PLAT) + return; + xhci_free_irq(xhci); if (xhci->msix_entries) { @@ -837,13 +842,47 @@ xhci_set_cmd_ring_deq(xhci); } +static void xhci_disable_port_wake_on_bits(struct xhci_hcd *xhci) +{ + int port_index; + __le32 __iomem **port_array; + unsigned long flags; + u32 t1, t2; + + spin_lock_irqsave(&xhci->lock, flags); + + /* disble usb3 ports Wake bits*/ + port_index = xhci->num_usb3_ports; + port_array = xhci->usb3_ports; + while (port_index--) { + t1 = readl(port_array[port_index]); + t1 = xhci_port_state_to_neutral(t1); + t2 = t1 & ~PORT_WAKE_BITS; + if (t1 != t2) + writel(t2, port_array[port_index]); + } + + /* disble usb2 ports Wake bits*/ + port_index = xhci->num_usb2_ports; + port_array = xhci->usb2_ports; + while (port_index--) { + t1 = readl(port_array[port_index]); + t1 = xhci_port_state_to_neutral(t1); + t2 = t1 & ~PORT_WAKE_BITS; + if (t1 != t2) + writel(t2, port_array[port_index]); + } + + spin_unlock_irqrestore(&xhci->lock, flags); +} + /* * Stop HC (not bus-specific) * * This is called when the machine transition into S3/S4 mode. * */ -int xhci_suspend(struct xhci_hcd *xhci) +int xhci_suspend(struct xhci_hcd *xhci, bool do_wakeup) { int rc = 0; unsigned int delay = XHCI_MAX_HALT_USEC; @@ -854,6 +893,10 @@ xhci->shared_hcd->state != HC_STATE_SUSPENDED) return -EINVAL; + /* Clear root port wake on bits if wakeup not allowed. */ + if (!do_wakeup) + xhci_disable_port_wake_on_bits(xhci); + /* Don't poll the roothubs on bus suspend. */ xhci_dbg(xhci, "%s: stopping port polling.\n", __func__); clear_bit(HCD_FLAG_POLL_RH, &hcd->flags); @@ -923,7 +966,7 @@ */ int xhci_resume(struct xhci_hcd *xhci, bool hibernated) { - u32 command, temp = 0; + u32 command, temp = 0, status; struct usb_hcd *hcd = xhci_to_hcd(xhci); struct usb_hcd *secondary_hcd; int retval = 0; @@ -1042,8 +1085,12 @@ done: if (retval == 0) { - usb_hcd_resume_root_hub(hcd); - usb_hcd_resume_root_hub(xhci->shared_hcd); + /* Resume root hubs only when have pending events. */ + status = readl(&xhci->op_regs->status); + if (status & STS_EINT) { + usb_hcd_resume_root_hub(hcd); + usb_hcd_resume_root_hub(xhci->shared_hcd); + } } /* @@ -2855,6 +2902,9 @@ ep_index, ep->stopped_stream, ep->stopped_td, &deq_state); + if (!deq_state.new_deq_ptr || !deq_state.new_deq_seg) + return; + /* HW with the reset endpoint quirk will use the saved dequeue state to * issue a configure endpoint command later. */ @@ -2877,64 +2927,32 @@ } } -/* Deal with stalled endpoints. The core should have sent the control message - * to clear the halt condition. However, we need to make the xHCI hardware - * reset its sequence number, since a device will expect a sequence number of - * zero after the halt condition is cleared. +/* Called when clearing halted device. The core should have sent the control + * message to clear the device halt condition. The host side of the halt should + * already be cleared with a reset endpoint command issued when the STALL tx + * event was received. + * * Context: in_interrupt */ + void xhci_endpoint_reset(struct usb_hcd *hcd, struct usb_host_endpoint *ep) { struct xhci_hcd *xhci; - struct usb_device *udev; - unsigned int ep_index; - unsigned long flags; - int ret; - struct xhci_virt_ep *virt_ep; xhci = hcd_to_xhci(hcd); - udev = (struct usb_device *) ep->hcpriv; - /* Called with a root hub endpoint (or an endpoint that wasn't added - * with xhci_add_endpoint() - */ - if (!ep->hcpriv) - return; - ep_index = xhci_get_endpoint_index(&ep->desc); - virt_ep = &xhci->devs[udev->slot_id]->eps[ep_index]; - if (!virt_ep->stopped_td) { - xhci_dbg_trace(xhci, trace_xhci_dbg_reset_ep, - "Endpoint 0x%x not halted, refusing to reset.", - ep->desc.bEndpointAddress); - return; - } - if (usb_endpoint_xfer_control(&ep->desc)) { - xhci_dbg_trace(xhci, trace_xhci_dbg_reset_ep, - "Control endpoint stall already handled."); - return; - } - - xhci_dbg_trace(xhci, trace_xhci_dbg_reset_ep, - "Queueing reset endpoint command"); - spin_lock_irqsave(&xhci->lock, flags); - ret = xhci_queue_reset_ep(xhci, udev->slot_id, ep_index); /* - * Can't change the ring dequeue pointer until it's transitioned to the - * stopped state, which is only upon a successful reset endpoint - * command. Better hope that last command worked! + * We might need to implement the config ep cmd in xhci 4.8.1 note: + * The Reset Endpoint Command may only be issued to endpoints in the + * Halted state. If software wishes reset the Data Toggle or Sequence + * Number of an endpoint that isn't in the Halted state, then software + * may issue a Configure Endpoint Command with the Drop and Add bits set + * for the target endpoint. that is in the Stopped state. */ - if (!ret) { - xhci_cleanup_stalled_ring(xhci, udev, ep_index); - kfree(virt_ep->stopped_td); - xhci_ring_cmd_db(xhci); - } - virt_ep->stopped_td = NULL; - virt_ep->stopped_trb = NULL; - virt_ep->stopped_stream = 0; - spin_unlock_irqrestore(&xhci->lock, flags); - if (ret) - xhci_warn(xhci, "FIXME allocate a new ring segment\n"); + /* For now just print debug to follow the situation */ + xhci_dbg(xhci, "Endpoint 0x%x ep reset callback called\n", + ep->desc.bEndpointAddress); } static int xhci_check_streams_endpoint(struct xhci_hcd *xhci, @@ -3908,13 +3926,21 @@ int ret; spin_lock_irqsave(&xhci->lock, flags); - if (max_exit_latency == xhci->devs[udev->slot_id]->current_mel) { + + virt_dev = xhci->devs[udev->slot_id]; + + /* + * virt_dev might not exists yet if xHC resumed from hibernate (S4) and + * xHC was re-initialized. Exit latency will be set later after + * hub_port_finish_reset() is done and xhci->devs[] are re-allocated + */ + + if (!virt_dev || max_exit_latency == virt_dev->current_mel) { spin_unlock_irqrestore(&xhci->lock, flags); return 0; } /* Attempt to issue an Evaluate Context command to change the MEL. */ - virt_dev = xhci->devs[udev->slot_id]; command = xhci->lpm_command; ctrl_ctx = xhci_get_input_control_ctx(xhci, command->in_ctx); if (!ctrl_ctx) { --- linux-3.13.0.orig/drivers/usb/host/xhci.h +++ linux-3.13.0/drivers/usb/host/xhci.h @@ -864,8 +864,6 @@ #define EP_GETTING_NO_STREAMS (1 << 5) /* ---- Related to URB cancellation ---- */ struct list_head cancelled_td_list; - /* The TRB that was last reported in a stopped endpoint ring */ - union xhci_trb *stopped_trb; struct xhci_td *stopped_td; unsigned int stopped_stream; /* Watchdog timer for stop endpoint command to cancel URBs */ @@ -1767,7 +1765,7 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks); #ifdef CONFIG_PM -int xhci_suspend(struct xhci_hcd *xhci); +int xhci_suspend(struct xhci_hcd *xhci, bool do_wakeup); int xhci_resume(struct xhci_hcd *xhci, bool hibernated); #else #define xhci_suspend NULL --- linux-3.13.0.orig/drivers/usb/misc/sisusbvga/sisusb.c +++ linux-3.13.0/drivers/usb/misc/sisusbvga/sisusb.c @@ -3248,6 +3248,7 @@ { USB_DEVICE(0x0711, 0x0918) }, { USB_DEVICE(0x0711, 0x0920) }, { USB_DEVICE(0x0711, 0x0950) }, + { USB_DEVICE(0x0711, 0x5200) }, { USB_DEVICE(0x182d, 0x021c) }, { USB_DEVICE(0x182d, 0x0269) }, { } --- linux-3.13.0.orig/drivers/usb/misc/usbtest.c +++ linux-3.13.0/drivers/usb/misc/usbtest.c @@ -1303,6 +1303,11 @@ urb->context = &completion; urb->complete = unlink1_callback; + if (usb_pipeout(urb->pipe)) { + simple_fill_buf(urb); + urb->transfer_flags |= URB_ZERO_PACKET; + } + /* keep the endpoint busy. there are lots of hc/hcd-internal * states, and testing should get to all of them over time. * @@ -1433,6 +1438,11 @@ unlink_queued_callback, &ctx); ctx.urbs[i]->transfer_dma = buf_dma; ctx.urbs[i]->transfer_flags = URB_NO_TRANSFER_DMA_MAP; + + if (usb_pipeout(ctx.urbs[i]->pipe)) { + simple_fill_buf(ctx.urbs[i]); + ctx.urbs[i]->transfer_flags |= URB_ZERO_PACKET; + } } /* Submit all the URBs and then unlink URBs num - 4 and num - 2. */ --- linux-3.13.0.orig/drivers/usb/musb/musb_am335x.c +++ linux-3.13.0/drivers/usb/musb/musb_am335x.c @@ -20,21 +20,6 @@ return ret; } -static int of_remove_populated_child(struct device *dev, void *d) -{ - struct platform_device *pdev = to_platform_device(dev); - - of_device_unregister(pdev); - return 0; -} - -static int am335x_child_remove(struct platform_device *pdev) -{ - device_for_each_child(&pdev->dev, NULL, of_remove_populated_child); - pm_runtime_disable(&pdev->dev); - return 0; -} - static const struct of_device_id am335x_child_of_match[] = { { .compatible = "ti,am33xx-usb" }, { }, @@ -43,13 +28,17 @@ static struct platform_driver am335x_child_driver = { .probe = am335x_child_probe, - .remove = am335x_child_remove, .driver = { .name = "am335x-usb-childs", .of_match_table = am335x_child_of_match, }, }; -module_platform_driver(am335x_child_driver); +static int __init am335x_child_init(void) +{ + return platform_driver_register(&am335x_child_driver); +} +module_init(am335x_child_init); + MODULE_DESCRIPTION("AM33xx child devices"); MODULE_LICENSE("GPL v2"); --- linux-3.13.0.orig/drivers/usb/musb/musb_core.c +++ linux-3.13.0/drivers/usb/musb/musb_core.c @@ -439,7 +439,6 @@ static irqreturn_t musb_stage0_irq(struct musb *musb, u8 int_usb, u8 devctl) { - struct usb_otg *otg = musb->xceiv->otg; irqreturn_t handled = IRQ_NONE; dev_dbg(musb->controller, "<== DevCtl=%02x, int_usb=0x%x\n", devctl, @@ -654,7 +653,7 @@ break; case OTG_STATE_B_PERIPHERAL: musb_g_suspend(musb); - musb->is_active = otg->gadget->b_hnp_enable; + musb->is_active = musb->g.b_hnp_enable; if (musb->is_active) { musb->xceiv->state = OTG_STATE_B_WAIT_ACON; dev_dbg(musb->controller, "HNP: Setting timer for b_ase0_brst\n"); @@ -670,7 +669,7 @@ break; case OTG_STATE_A_HOST: musb->xceiv->state = OTG_STATE_A_SUSPEND; - musb->is_active = otg->host->b_hnp_enable; + musb->is_active = musb->hcd->self.b_hnp_enable; break; case OTG_STATE_B_HOST: /* Transition to B_PERIPHERAL, see 6.8.2.6 p 44 */ --- linux-3.13.0.orig/drivers/usb/musb/musb_cppi41.c +++ linux-3.13.0/drivers/usb/musb/musb_cppi41.c @@ -190,7 +190,8 @@ } } - if (!list_empty(&controller->early_tx_list)) { + if (!list_empty(&controller->early_tx_list) && + !hrtimer_is_queued(&controller->early_tx)) { ret = HRTIMER_RESTART; hrtimer_forward_now(&controller->early_tx, ktime_set(0, 150 * NSEC_PER_USEC)); @@ -266,7 +267,7 @@ } list_add_tail(&cppi41_channel->tx_check, &controller->early_tx_list); - if (!hrtimer_active(&controller->early_tx)) { + if (!hrtimer_is_queued(&controller->early_tx)) { hrtimer_start_range_ns(&controller->early_tx, ktime_set(0, 140 * NSEC_PER_USEC), 40 * NSEC_PER_USEC, --- linux-3.13.0.orig/drivers/usb/musb/ux500.c +++ linux-3.13.0/drivers/usb/musb/ux500.c @@ -275,7 +275,6 @@ musb->dev.parent = &pdev->dev; musb->dev.dma_mask = &pdev->dev.coherent_dma_mask; musb->dev.coherent_dma_mask = pdev->dev.coherent_dma_mask; - musb->dev.of_node = pdev->dev.of_node; glue->dev = &pdev->dev; glue->musb = musb; --- linux-3.13.0.orig/drivers/usb/phy/phy-fsl-usb.c +++ linux-3.13.0/drivers/usb/phy/phy-fsl-usb.c @@ -76,7 +76,7 @@ .otg_port = 1, }; -#ifdef CONFIG_PPC32 +#ifdef CONFIG_PPC static u32 _fsl_readl_be(const unsigned __iomem *p) { return in_be32(p); @@ -106,7 +106,7 @@ #else #define fsl_readl(addr) readl(addr) #define fsl_writel(val, addr) writel(val, addr) -#endif /* CONFIG_PPC32 */ +#endif /* CONFIG_PPC */ /* Routines to access transceiver ULPI registers */ u8 view_ulpi(u8 addr) @@ -914,6 +914,7 @@ if (pdata->init && pdata->init(pdev) != 0) return -EINVAL; +#ifdef CONFIG_PPC if (pdata->big_endian_mmio) { _fsl_readl = _fsl_readl_be; _fsl_writel = _fsl_writel_be; @@ -921,6 +922,7 @@ _fsl_readl = _fsl_readl_le; _fsl_writel = _fsl_writel_le; } +#endif /* request irq */ p_otg->irq = platform_get_irq(pdev, 0); --- linux-3.13.0.orig/drivers/usb/phy/phy-tegra-usb.c +++ linux-3.13.0/drivers/usb/phy/phy-tegra-usb.c @@ -881,8 +881,8 @@ return -ENOMEM; } - tegra_phy->config = devm_kzalloc(&pdev->dev, - sizeof(*tegra_phy->config), GFP_KERNEL); + tegra_phy->config = devm_kzalloc(&pdev->dev, sizeof(*config), + GFP_KERNEL); if (!tegra_phy->config) { dev_err(&pdev->dev, "unable to allocate memory for USB UTMIP config\n"); --- linux-3.13.0.orig/drivers/usb/phy/phy-ulpi.c +++ linux-3.13.0/drivers/usb/phy/phy-ulpi.c @@ -47,6 +47,8 @@ static struct ulpi_info ulpi_ids[] = { ULPI_INFO(ULPI_ID(0x04cc, 0x1504), "NXP ISP1504"), ULPI_INFO(ULPI_ID(0x0424, 0x0006), "SMSC USB331x"), + ULPI_INFO(ULPI_ID(0x0424, 0x0007), "SMSC USB3320"), + ULPI_INFO(ULPI_ID(0x0451, 0x1507), "TI TUSB1210"), }; static int ulpi_set_otg_flags(struct usb_phy *phy) --- linux-3.13.0.orig/drivers/usb/renesas_usbhs/mod_gadget.c +++ linux-3.13.0/drivers/usb/renesas_usbhs/mod_gadget.c @@ -600,6 +600,10 @@ static int usbhsg_ep_disable(struct usb_ep *ep) { struct usbhsg_uep *uep = usbhsg_ep_to_uep(ep); + struct usbhs_pipe *pipe = usbhsg_uep_to_pipe(uep); + + if (!pipe) + return -EINVAL; usbhsg_pipe_disable(uep); --- linux-3.13.0.orig/drivers/usb/serial/cp210x.c +++ linux-3.13.0/drivers/usb/serial/cp210x.c @@ -104,6 +104,7 @@ { USB_DEVICE(0x10C4, 0x8218) }, /* Lipowsky Industrie Elektronik GmbH, HARP-1 */ { USB_DEVICE(0x10C4, 0x822B) }, /* Modem EDGE(GSM) Comander 2 */ { USB_DEVICE(0x10C4, 0x826B) }, /* Cygnal Integrated Products, Inc., Fasttrax GPS demonstration module */ + { USB_DEVICE(0x10C4, 0x8281) }, /* Nanotec Plug & Drive */ { USB_DEVICE(0x10C4, 0x8293) }, /* Telegesis ETRX2USB */ { USB_DEVICE(0x10C4, 0x82F9) }, /* Procyon AVS */ { USB_DEVICE(0x10C4, 0x8341) }, /* Siemens MC35PU GPRS Modem */ @@ -119,8 +120,10 @@ { USB_DEVICE(0x10C4, 0x85F8) }, /* Virtenio Preon32 */ { USB_DEVICE(0x10C4, 0x8664) }, /* AC-Services CAN-IF */ { USB_DEVICE(0x10C4, 0x8665) }, /* AC-Services OBD-IF */ + { USB_DEVICE(0x10C4, 0x8875) }, /* CEL MeshConnect USB Stick */ { USB_DEVICE(0x10C4, 0x88A4) }, /* MMB Networks ZigBee USB Device */ { USB_DEVICE(0x10C4, 0x88A5) }, /* Planet Innovation Ingeni ZigBee USB Device */ + { USB_DEVICE(0x10C4, 0x8946) }, /* Ketra N1 Wireless Interface */ { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */ { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */ { USB_DEVICE(0x10C4, 0xEA70) }, /* Silicon Labs factory default */ @@ -152,7 +155,10 @@ { USB_DEVICE(0x1843, 0x0200) }, /* Vaisala USB Instrument Cable */ { USB_DEVICE(0x18EF, 0xE00F) }, /* ELV USB-I2C-Interface */ { USB_DEVICE(0x1ADB, 0x0001) }, /* Schweitzer Engineering C662 Cable */ + { USB_DEVICE(0x1B1C, 0x1C00) }, /* Corsair USB Dongle */ + { USB_DEVICE(0x1BA4, 0x0002) }, /* Silicon Labs 358x factory default */ { USB_DEVICE(0x1BE3, 0x07A6) }, /* WAGO 750-923 USB Service Cable */ + { USB_DEVICE(0x1D6F, 0x0010) }, /* Seluxit ApS RF Dongle */ { USB_DEVICE(0x1E29, 0x0102) }, /* Festo CPX-USB */ { USB_DEVICE(0x1E29, 0x0501) }, /* Festo CMSP */ { USB_DEVICE(0x1FB9, 0x0100) }, /* Lake Shore Model 121 Current Source */ --- linux-3.13.0.orig/drivers/usb/serial/cypress_m8.h +++ linux-3.13.0/drivers/usb/serial/cypress_m8.h @@ -63,7 +63,7 @@ #define UART_DSR 0x20 /* data set ready - flow control - device to host */ #define CONTROL_RTS 0x10 /* request to send - flow control - host to device */ #define UART_CTS 0x10 /* clear to send - flow control - device to host */ -#define UART_RI 0x10 /* ring indicator - modem - device to host */ +#define UART_RI 0x80 /* ring indicator - modem - device to host */ #define UART_CD 0x40 /* carrier detect - modem - device to host */ #define CYP_ERROR 0x08 /* received from input report - device to host */ /* Note - the below has nothing to do with the "feature report" reset */ --- linux-3.13.0.orig/drivers/usb/serial/ftdi_sio.c +++ linux-3.13.0/drivers/usb/serial/ftdi_sio.c @@ -146,13 +146,16 @@ * /sys/bus/usb-serial/drivers/ftdi_sio/new_id and send a patch or report. */ static struct usb_device_id id_table_combined [] = { + { USB_DEVICE(FTDI_VID, FTDI_BRICK_PID) }, { USB_DEVICE(FTDI_VID, FTDI_ZEITCONTROL_TAGTRACE_MIFARE_PID) }, { USB_DEVICE(FTDI_VID, FTDI_CTI_MINI_PID) }, { USB_DEVICE(FTDI_VID, FTDI_CTI_NANO_PID) }, { USB_DEVICE(FTDI_VID, FTDI_AMC232_PID) }, { USB_DEVICE(FTDI_VID, FTDI_CANUSB_PID) }, { USB_DEVICE(FTDI_VID, FTDI_CANDAPTER_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_BM_ATOM_NANO_PID) }, { USB_DEVICE(FTDI_VID, FTDI_NXTCAM_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_EV3CON_PID) }, { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_0_PID) }, { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_1_PID) }, { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_2_PID) }, @@ -192,6 +195,8 @@ { USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_IOBOARD_PID) }, { USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_MINI_IOBOARD_PID) }, { USB_DEVICE(FTDI_VID, FTDI_SPROG_II) }, + { USB_DEVICE(FTDI_VID, FTDI_TAGSYS_LP101_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_TAGSYS_P200X_PID) }, { USB_DEVICE(FTDI_VID, FTDI_LENZ_LIUSB_PID) }, { USB_DEVICE(FTDI_VID, FTDI_XF_632_PID) }, { USB_DEVICE(FTDI_VID, FTDI_XF_634_PID) }, @@ -479,6 +484,39 @@ { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_01FD_PID) }, { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_01FE_PID) }, { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_01FF_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_4701_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9300_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9301_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9302_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9303_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9304_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9305_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9306_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9307_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9308_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9309_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_930A_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_930B_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_930C_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_930D_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_930E_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_930F_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9310_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9311_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9312_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9313_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9314_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9315_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9316_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9317_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9318_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_9319_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_931A_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_931B_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_931C_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_931D_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_931E_PID) }, + { USB_DEVICE(MTXORB_VID, MTXORB_FTDI_RANGE_931F_PID) }, { USB_DEVICE(FTDI_VID, FTDI_PERLE_ULTRAPORT_PID) }, { USB_DEVICE(FTDI_VID, FTDI_PIEGROUP_PID) }, { USB_DEVICE(FTDI_VID, FTDI_TNC_X_PID) }, @@ -578,6 +616,8 @@ { USB_DEVICE(FTDI_VID, FTDI_TAVIR_STK500_PID) }, { USB_DEVICE(FTDI_VID, FTDI_TIAO_UMPA_PID), .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, + { USB_DEVICE(FTDI_VID, FTDI_NT_ORIONLXM_PID), + .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, /* * ELV devices: */ @@ -669,6 +709,10 @@ { USB_DEVICE(FTDI_VID, XSENS_CONVERTER_5_PID) }, { USB_DEVICE(FTDI_VID, XSENS_CONVERTER_6_PID) }, { USB_DEVICE(FTDI_VID, XSENS_CONVERTER_7_PID) }, + { USB_DEVICE(XSENS_VID, XSENS_AWINDA_DONGLE_PID) }, + { USB_DEVICE(XSENS_VID, XSENS_AWINDA_STATION_PID) }, + { USB_DEVICE(XSENS_VID, XSENS_CONVERTER_PID) }, + { USB_DEVICE(XSENS_VID, XSENS_MTW_PID) }, { USB_DEVICE(FTDI_VID, FTDI_OMNI1509) }, { USB_DEVICE(MOBILITY_VID, MOBILITY_USB_SERIAL_PID) }, { USB_DEVICE(FTDI_VID, FTDI_ACTIVE_ROBOTS_PID) }, @@ -716,7 +760,8 @@ { USB_DEVICE(FTDI_VID, FTDI_ACG_HFDUAL_PID) }, { USB_DEVICE(FTDI_VID, FTDI_YEI_SERVOCENTER31_PID) }, { USB_DEVICE(FTDI_VID, FTDI_THORLABS_PID) }, - { USB_DEVICE(TESTO_VID, TESTO_USB_INTERFACE_PID) }, + { USB_DEVICE(TESTO_VID, TESTO_1_PID) }, + { USB_DEVICE(TESTO_VID, TESTO_3_PID) }, { USB_DEVICE(FTDI_VID, FTDI_GAMMA_SCOUT_PID) }, { USB_DEVICE(FTDI_VID, FTDI_TACTRIX_OPENPORT_13M_PID) }, { USB_DEVICE(FTDI_VID, FTDI_TACTRIX_OPENPORT_13S_PID) }, @@ -733,6 +778,7 @@ { USB_DEVICE(FTDI_VID, FTDI_NDI_AURORA_SCU_PID), .driver_info = (kernel_ulong_t)&ftdi_NDI_device_quirk }, { USB_DEVICE(TELLDUS_VID, TELLDUS_TELLSTICK_PID) }, + { USB_DEVICE(NOVITUS_VID, NOVITUS_BONO_E_PID) }, { USB_DEVICE(RTSYSTEMS_VID, RTSYSTEMS_USB_S03_PID) }, { USB_DEVICE(RTSYSTEMS_VID, RTSYSTEMS_USB_59_PID) }, { USB_DEVICE(RTSYSTEMS_VID, RTSYSTEMS_USB_57A_PID) }, @@ -905,6 +951,47 @@ /* Crucible Devices */ { USB_DEVICE(FTDI_VID, FTDI_CT_COMET_PID) }, { USB_DEVICE(FTDI_VID, FTDI_Z3X_PID) }, + /* Cressi Devices */ + { USB_DEVICE(FTDI_VID, FTDI_CRESSI_PID) }, + /* Brainboxes Devices */ + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_VX_001_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_VX_012_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_VX_023_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_VX_034_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_101_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_1_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_2_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_3_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_4_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_5_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_6_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_7_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_160_8_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_257_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_279_1_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_279_2_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_279_3_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_279_4_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_313_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_324_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_346_1_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_346_2_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_357_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_606_1_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_606_2_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_606_3_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_701_1_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_701_2_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_1_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_2_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_3_PID) }, + { USB_DEVICE(BRAINBOXES_VID, BRAINBOXES_US_842_4_PID) }, + /* ekey Devices */ + { USB_DEVICE(FTDI_VID, FTDI_EKEY_CONV_USB_PID) }, + /* Infineon Devices */ + { USB_DEVICE_INTERFACE_NUMBER(INFINEON_VID, INFINEON_TRIBOARD_PID, 1) }, + /* GE Healthcare devices */ + { USB_DEVICE(GE_HEALTHCARE_VID, GE_HEALTHCARE_NEMO_TRACKER_PID) }, { } /* Terminating entry */ }; @@ -1527,14 +1614,17 @@ struct usb_device *udev = serial->dev; struct usb_interface *interface = serial->interface; - struct usb_endpoint_descriptor *ep_desc = &interface->cur_altsetting->endpoint[1].desc; + struct usb_endpoint_descriptor *ep_desc; unsigned num_endpoints; - int i; + unsigned i; num_endpoints = interface->cur_altsetting->desc.bNumEndpoints; dev_info(&udev->dev, "Number of endpoints %d\n", num_endpoints); + if (!num_endpoints) + return; + /* NOTE: some customers have programmed FT232R/FT245R devices * with an endpoint size of 0 - not good. In this case, we * want to override the endpoint descriptor setting and use a @@ -2124,10 +2214,20 @@ } /* - * All FTDI UART chips are limited to CS7/8. We won't pretend to + * All FTDI UART chips are limited to CS7/8. We shouldn't pretend to * support CS5/6 and revert the CSIZE setting instead. + * + * CS5 however is used to control some smartcard readers which abuse + * this limitation to switch modes. Original FTDI chips fall back to + * eight data bits. + * + * TODO: Implement a quirk to only allow this with mentioned + * readers. One I know of (Argolis Smartreader V1) + * returns "USB smartcard server" as iInterface string. + * The vendor didn't bother with a custom VID/PID of + * course. */ - if ((C_CSIZE(tty) != CS8) && (C_CSIZE(tty) != CS7)) { + if (C_CSIZE(tty) == CS6) { dev_warn(ddev, "requested CSIZE setting not supported\n"); termios->c_cflag &= ~CSIZE; @@ -2174,6 +2274,9 @@ urb_value |= FTDI_SIO_SET_DATA_PARITY_NONE; } switch (cflag & CSIZE) { + case CS5: + dev_dbg(ddev, "Setting CS5 quirk\n"); + break; case CS7: urb_value |= 7; dev_dbg(ddev, "Setting CS7\n"); --- linux-3.13.0.orig/drivers/usb/serial/ftdi_sio_ids.h +++ linux-3.13.0/drivers/usb/serial/ftdi_sio_ids.h @@ -30,6 +30,12 @@ /*** third-party PIDs (using FTDI_VID) ***/ +/* + * Certain versions of the official Windows FTDI driver reprogrammed + * counterfeit FTDI devices to PID 0. Support these devices anyway. + */ +#define FTDI_BRICK_PID 0x0000 + #define FTDI_LUMEL_PD12_PID 0x6002 /* @@ -42,6 +48,8 @@ /* www.candapter.com Ewert Energy Systems CANdapter device */ #define FTDI_CANDAPTER_PID 0x9F80 /* Product Id */ +#define FTDI_BM_ATOM_NANO_PID 0xa559 /* Basic Micro ATOM Nano USB2Serial */ + /* * Texas Instruments XDS100v2 JTAG / BeagleBone A3 * http://processors.wiki.ti.com/index.php/XDS100 @@ -50,6 +58,7 @@ #define TI_XDS100V2_PID 0xa6d0 #define FTDI_NXTCAM_PID 0xABB8 /* NXTCam for Mindstorms NXT */ +#define FTDI_EV3CON_PID 0xABB9 /* Mindstorms EV3 Console Adapter */ /* US Interface Navigator (http://www.usinterface.com/) */ #define FTDI_USINT_CAT_PID 0xb810 /* Navigator CAT and 2nd PTT lines */ @@ -139,12 +148,19 @@ /* * Xsens Technologies BV products (http://www.xsens.com). */ -#define XSENS_CONVERTER_0_PID 0xD388 -#define XSENS_CONVERTER_1_PID 0xD389 +#define XSENS_VID 0x2639 +#define XSENS_AWINDA_STATION_PID 0x0101 +#define XSENS_AWINDA_DONGLE_PID 0x0102 +#define XSENS_MTW_PID 0x0200 /* Xsens MTw */ +#define XSENS_CONVERTER_PID 0xD00D /* Xsens USB-serial converter */ + +/* Xsens devices using FTDI VID */ +#define XSENS_CONVERTER_0_PID 0xD388 /* Xsens USB converter */ +#define XSENS_CONVERTER_1_PID 0xD389 /* Xsens Wireless Receiver */ #define XSENS_CONVERTER_2_PID 0xD38A -#define XSENS_CONVERTER_3_PID 0xD38B -#define XSENS_CONVERTER_4_PID 0xD38C -#define XSENS_CONVERTER_5_PID 0xD38D +#define XSENS_CONVERTER_3_PID 0xD38B /* Xsens USB-serial converter */ +#define XSENS_CONVERTER_4_PID 0xD38C /* Xsens Wireless Receiver */ +#define XSENS_CONVERTER_5_PID 0xD38D /* Xsens Awinda Station */ #define XSENS_CONVERTER_6_PID 0xD38E #define XSENS_CONVERTER_7_PID 0xD38F @@ -363,6 +379,12 @@ /* Sprog II (Andrew Crosland's SprogII DCC interface) */ #define FTDI_SPROG_II 0xF0C8 +/* + * Two of the Tagsys RFID Readers + */ +#define FTDI_TAGSYS_LP101_PID 0xF0E9 /* Tagsys L-P101 RFID*/ +#define FTDI_TAGSYS_P200X_PID 0xF0EE /* Tagsys Medio P200x RFID*/ + /* an infrared receiver for user access control with IR tags */ #define FTDI_PIEGROUP_PID 0xF208 /* Product Id */ @@ -531,6 +553,11 @@ */ #define FTDI_TIAO_UMPA_PID 0x8a98 /* TIAO/DIYGADGET USB Multi-Protocol Adapter */ +/* + * NovaTech product ids (FTDI_VID) + */ +#define FTDI_NT_ORIONLXM_PID 0x7c90 /* OrionLXm Substation Automation Platform */ + /********************************/ /** third-party VID/PID combos **/ @@ -572,6 +599,12 @@ #define RATOC_PRODUCT_ID_USB60F 0xb020 /* + * Infineon Technologies + */ +#define INFINEON_VID 0x058b +#define INFINEON_TRIBOARD_PID 0x0028 /* DAS JTAG TriBoard TC1798 V1.0 */ + +/* * Acton Research Corp. */ #define ACTON_VID 0x0647 /* Vendor ID */ @@ -786,7 +819,8 @@ * Submitted by Colin Leroy */ #define TESTO_VID 0x128D -#define TESTO_USB_INTERFACE_PID 0x0001 +#define TESTO_1_PID 0x0001 +#define TESTO_3_PID 0x0003 /* * Mobility Electronics products. @@ -813,6 +847,12 @@ #define TELLDUS_TELLSTICK_PID 0x0C30 /* RF control dongle 433 MHz using FT232RL */ /* + * NOVITUS printers + */ +#define NOVITUS_VID 0x1a28 +#define NOVITUS_BONO_E_PID 0x6010 + +/* * RT Systems programming cables for various ham radios */ #define RTSYSTEMS_VID 0x2100 /* Vendor ID */ @@ -886,8 +926,8 @@ #define BAYER_CONTOUR_CABLE_PID 0x6001 /* - * The following are the values for the Matrix Orbital FTDI Range - * Anything in this range will use an FT232RL. + * Matrix Orbital Intelligent USB displays. + * http://www.matrixorbital.com */ #define MTXORB_VID 0x1B3D #define MTXORB_FTDI_RANGE_0100_PID 0x0100 @@ -1146,8 +1186,39 @@ #define MTXORB_FTDI_RANGE_01FD_PID 0x01FD #define MTXORB_FTDI_RANGE_01FE_PID 0x01FE #define MTXORB_FTDI_RANGE_01FF_PID 0x01FF - - +#define MTXORB_FTDI_RANGE_4701_PID 0x4701 +#define MTXORB_FTDI_RANGE_9300_PID 0x9300 +#define MTXORB_FTDI_RANGE_9301_PID 0x9301 +#define MTXORB_FTDI_RANGE_9302_PID 0x9302 +#define MTXORB_FTDI_RANGE_9303_PID 0x9303 +#define MTXORB_FTDI_RANGE_9304_PID 0x9304 +#define MTXORB_FTDI_RANGE_9305_PID 0x9305 +#define MTXORB_FTDI_RANGE_9306_PID 0x9306 +#define MTXORB_FTDI_RANGE_9307_PID 0x9307 +#define MTXORB_FTDI_RANGE_9308_PID 0x9308 +#define MTXORB_FTDI_RANGE_9309_PID 0x9309 +#define MTXORB_FTDI_RANGE_930A_PID 0x930A +#define MTXORB_FTDI_RANGE_930B_PID 0x930B +#define MTXORB_FTDI_RANGE_930C_PID 0x930C +#define MTXORB_FTDI_RANGE_930D_PID 0x930D +#define MTXORB_FTDI_RANGE_930E_PID 0x930E +#define MTXORB_FTDI_RANGE_930F_PID 0x930F +#define MTXORB_FTDI_RANGE_9310_PID 0x9310 +#define MTXORB_FTDI_RANGE_9311_PID 0x9311 +#define MTXORB_FTDI_RANGE_9312_PID 0x9312 +#define MTXORB_FTDI_RANGE_9313_PID 0x9313 +#define MTXORB_FTDI_RANGE_9314_PID 0x9314 +#define MTXORB_FTDI_RANGE_9315_PID 0x9315 +#define MTXORB_FTDI_RANGE_9316_PID 0x9316 +#define MTXORB_FTDI_RANGE_9317_PID 0x9317 +#define MTXORB_FTDI_RANGE_9318_PID 0x9318 +#define MTXORB_FTDI_RANGE_9319_PID 0x9319 +#define MTXORB_FTDI_RANGE_931A_PID 0x931A +#define MTXORB_FTDI_RANGE_931B_PID 0x931B +#define MTXORB_FTDI_RANGE_931C_PID 0x931C +#define MTXORB_FTDI_RANGE_931D_PID 0x931D +#define MTXORB_FTDI_RANGE_931E_PID 0x931E +#define MTXORB_FTDI_RANGE_931F_PID 0x931F /* * The Mobility Lab (TML) @@ -1313,3 +1384,57 @@ * Manufacturer: Smart GSM Team */ #define FTDI_Z3X_PID 0x0011 + +/* + * Product: Cressi PC Interface + * Manufacturer: Cressi + */ +#define FTDI_CRESSI_PID 0x87d0 + +/* + * Brainboxes devices + */ +#define BRAINBOXES_VID 0x05d1 +#define BRAINBOXES_VX_001_PID 0x1001 /* VX-001 ExpressCard 1 Port RS232 */ +#define BRAINBOXES_VX_012_PID 0x1002 /* VX-012 ExpressCard 2 Port RS232 */ +#define BRAINBOXES_VX_023_PID 0x1003 /* VX-023 ExpressCard 1 Port RS422/485 */ +#define BRAINBOXES_VX_034_PID 0x1004 /* VX-034 ExpressCard 2 Port RS422/485 */ +#define BRAINBOXES_US_101_PID 0x1011 /* US-101 1xRS232 */ +#define BRAINBOXES_US_324_PID 0x1013 /* US-324 1xRS422/485 1Mbaud */ +#define BRAINBOXES_US_606_1_PID 0x2001 /* US-606 6 Port RS232 Serial Port 1 and 2 */ +#define BRAINBOXES_US_606_2_PID 0x2002 /* US-606 6 Port RS232 Serial Port 3 and 4 */ +#define BRAINBOXES_US_606_3_PID 0x2003 /* US-606 6 Port RS232 Serial Port 4 and 6 */ +#define BRAINBOXES_US_701_1_PID 0x2011 /* US-701 4xRS232 1Mbaud Port 1 and 2 */ +#define BRAINBOXES_US_701_2_PID 0x2012 /* US-701 4xRS422 1Mbaud Port 3 and 4 */ +#define BRAINBOXES_US_279_1_PID 0x2021 /* US-279 8xRS422 1Mbaud Port 1 and 2 */ +#define BRAINBOXES_US_279_2_PID 0x2022 /* US-279 8xRS422 1Mbaud Port 3 and 4 */ +#define BRAINBOXES_US_279_3_PID 0x2023 /* US-279 8xRS422 1Mbaud Port 5 and 6 */ +#define BRAINBOXES_US_279_4_PID 0x2024 /* US-279 8xRS422 1Mbaud Port 7 and 8 */ +#define BRAINBOXES_US_346_1_PID 0x3011 /* US-346 4xRS422/485 1Mbaud Port 1 and 2 */ +#define BRAINBOXES_US_346_2_PID 0x3012 /* US-346 4xRS422/485 1Mbaud Port 3 and 4 */ +#define BRAINBOXES_US_257_PID 0x5001 /* US-257 2xRS232 1Mbaud */ +#define BRAINBOXES_US_313_PID 0x6001 /* US-313 2xRS422/485 1Mbaud */ +#define BRAINBOXES_US_357_PID 0x7001 /* US_357 1xRS232/422/485 */ +#define BRAINBOXES_US_842_1_PID 0x8001 /* US-842 8xRS422/485 1Mbaud Port 1 and 2 */ +#define BRAINBOXES_US_842_2_PID 0x8002 /* US-842 8xRS422/485 1Mbaud Port 3 and 4 */ +#define BRAINBOXES_US_842_3_PID 0x8003 /* US-842 8xRS422/485 1Mbaud Port 5 and 6 */ +#define BRAINBOXES_US_842_4_PID 0x8004 /* US-842 8xRS422/485 1Mbaud Port 7 and 8 */ +#define BRAINBOXES_US_160_1_PID 0x9001 /* US-160 16xRS232 1Mbaud Port 1 and 2 */ +#define BRAINBOXES_US_160_2_PID 0x9002 /* US-160 16xRS232 1Mbaud Port 3 and 4 */ +#define BRAINBOXES_US_160_3_PID 0x9003 /* US-160 16xRS232 1Mbaud Port 5 and 6 */ +#define BRAINBOXES_US_160_4_PID 0x9004 /* US-160 16xRS232 1Mbaud Port 7 and 8 */ +#define BRAINBOXES_US_160_5_PID 0x9005 /* US-160 16xRS232 1Mbaud Port 9 and 10 */ +#define BRAINBOXES_US_160_6_PID 0x9006 /* US-160 16xRS232 1Mbaud Port 11 and 12 */ +#define BRAINBOXES_US_160_7_PID 0x9007 /* US-160 16xRS232 1Mbaud Port 13 and 14 */ +#define BRAINBOXES_US_160_8_PID 0x9008 /* US-160 16xRS232 1Mbaud Port 15 and 16 */ + +/* + * ekey biometric systems GmbH (http://ekey.net/) + */ +#define FTDI_EKEY_CONV_USB_PID 0xCB08 /* Converter USB */ + +/* + * GE Healthcare devices + */ +#define GE_HEALTHCARE_VID 0x1901 +#define GE_HEALTHCARE_NEMO_TRACKER_PID 0x0015 --- linux-3.13.0.orig/drivers/usb/serial/io_ti.c +++ linux-3.13.0/drivers/usb/serial/io_ti.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -281,7 +282,7 @@ { int status = 0; __u8 read_length; - __be16 be_start_address; + u16 be_start_address; dev_dbg(&dev->dev, "%s - @ %x for %d\n", __func__, start_address, length); @@ -297,10 +298,14 @@ if (read_length > 1) { dev_dbg(&dev->dev, "%s - @ %x for %d\n", __func__, start_address, read_length); } - be_start_address = cpu_to_be16(start_address); + /* + * NOTE: Must use swab as wIndex is sent in little-endian + * byte order regardless of host byte order. + */ + be_start_address = swab16((u16)start_address); status = ti_vread_sync(dev, UMPC_MEMORY_READ, (__u16)address_type, - (__force __u16)be_start_address, + be_start_address, buffer, read_length); if (status) { @@ -397,7 +402,7 @@ struct device *dev = &serial->serial->dev->dev; int status = 0; int write_length; - __be16 be_start_address; + u16 be_start_address; /* We can only send a maximum of 1 aligned byte page at a time */ @@ -412,11 +417,16 @@ __func__, start_address, write_length); usb_serial_debug_data(dev, __func__, write_length, buffer); - /* Write first page */ - be_start_address = cpu_to_be16(start_address); + /* + * Write first page. + * + * NOTE: Must use swab as wIndex is sent in little-endian byte order + * regardless of host byte order. + */ + be_start_address = swab16((u16)start_address); status = ti_vsend_sync(serial->serial->dev, UMPC_MEMORY_WRITE, (__u16)address_type, - (__force __u16)be_start_address, + be_start_address, buffer, write_length); if (status) { dev_dbg(dev, "%s - ERROR %d\n", __func__, status); @@ -439,11 +449,16 @@ __func__, start_address, write_length); usb_serial_debug_data(dev, __func__, write_length, buffer); - /* Write next page */ - be_start_address = cpu_to_be16(start_address); + /* + * Write next page. + * + * NOTE: Must use swab as wIndex is sent in little-endian byte + * order regardless of host byte order. + */ + be_start_address = swab16((u16)start_address); status = ti_vsend_sync(serial->serial->dev, UMPC_MEMORY_WRITE, (__u16)address_type, - (__force __u16)be_start_address, + be_start_address, buffer, write_length); if (status) { dev_err(dev, "%s - ERROR %d\n", __func__, status); @@ -590,8 +605,8 @@ if (rom_desc->Type == desc_type) return start_address; - start_address = start_address + sizeof(struct ti_i2c_desc) - + rom_desc->Size; + start_address = start_address + sizeof(struct ti_i2c_desc) + + le16_to_cpu(rom_desc->Size); } while ((start_address < TI_MAX_I2C_SIZE) && rom_desc->Type); @@ -604,7 +619,7 @@ __u16 i; __u8 cs = 0; - for (i = 0; i < rom_desc->Size; i++) + for (i = 0; i < le16_to_cpu(rom_desc->Size); i++) cs = (__u8)(cs + buffer[i]); if (cs != rom_desc->CheckSum) { @@ -658,7 +673,7 @@ break; if ((start_address + sizeof(struct ti_i2c_desc) + - rom_desc->Size) > TI_MAX_I2C_SIZE) { + le16_to_cpu(rom_desc->Size)) > TI_MAX_I2C_SIZE) { status = -ENODEV; dev_dbg(dev, "%s - structure too big, erroring out.\n", __func__); break; @@ -673,7 +688,8 @@ /* Read the descriptor data */ status = read_rom(serial, start_address + sizeof(struct ti_i2c_desc), - rom_desc->Size, buffer); + le16_to_cpu(rom_desc->Size), + buffer); if (status) break; @@ -682,7 +698,7 @@ break; } start_address = start_address + sizeof(struct ti_i2c_desc) + - rom_desc->Size; + le16_to_cpu(rom_desc->Size); } while ((rom_desc->Type != I2C_DESC_TYPE_ION) && (start_address < TI_MAX_I2C_SIZE)); @@ -721,7 +737,7 @@ /* Read the descriptor data */ status = read_rom(serial, start_address+sizeof(struct ti_i2c_desc), - rom_desc->Size, buffer); + le16_to_cpu(rom_desc->Size), buffer); if (status) goto exit; @@ -816,7 +832,7 @@ firmware_rec = (struct ti_i2c_firmware_rec*)i2c_header->Data; i2c_header->Type = I2C_DESC_TYPE_FIRMWARE_BLANK; - i2c_header->Size = (__u16)buffer_size; + i2c_header->Size = cpu_to_le16(buffer_size); i2c_header->CheckSum = cs; firmware_rec->Ver_Major = OperationalMajorVersion; firmware_rec->Ver_Minor = OperationalMinorVersion; --- linux-3.13.0.orig/drivers/usb/serial/io_usbvend.h +++ linux-3.13.0/drivers/usb/serial/io_usbvend.h @@ -594,7 +594,7 @@ struct ti_i2c_desc { __u8 Type; // Type of descriptor - __u16 Size; // Size of data only not including header + __le16 Size; // Size of data only not including header __u8 CheckSum; // Checksum (8 bit sum of data only) __u8 Data[0]; // Data starts here } __attribute__((packed)); --- linux-3.13.0.orig/drivers/usb/serial/keyspan.c +++ linux-3.13.0/drivers/usb/serial/keyspan.c @@ -312,24 +312,30 @@ if ((data[0] & 0x80) == 0) { /* no errors on individual bytes, only possible overrun err */ - if (data[0] & RXERROR_OVERRUN) - err = TTY_OVERRUN; - else - err = 0; + if (data[0] & RXERROR_OVERRUN) { + tty_insert_flip_char(&port->port, 0, + TTY_OVERRUN); + } for (i = 1; i < urb->actual_length ; ++i) - tty_insert_flip_char(&port->port, data[i], err); + tty_insert_flip_char(&port->port, data[i], + TTY_NORMAL); } else { /* some bytes had errors, every byte has status */ dev_dbg(&port->dev, "%s - RX error!!!!\n", __func__); for (i = 0; i + 1 < urb->actual_length; i += 2) { - int stat = data[i], flag = 0; - if (stat & RXERROR_OVERRUN) - flag |= TTY_OVERRUN; - if (stat & RXERROR_FRAMING) - flag |= TTY_FRAME; - if (stat & RXERROR_PARITY) - flag |= TTY_PARITY; + int stat = data[i]; + int flag = TTY_NORMAL; + + if (stat & RXERROR_OVERRUN) { + tty_insert_flip_char(&port->port, 0, + TTY_OVERRUN); + } /* XXX should handle break (0x10) */ + if (stat & RXERROR_PARITY) + flag = TTY_PARITY; + else if (stat & RXERROR_FRAMING) + flag = TTY_FRAME; + tty_insert_flip_char(&port->port, data[i+1], flag); } @@ -667,14 +673,19 @@ } else { /* some bytes had errors, every byte has status */ for (i = 0; i + 1 < urb->actual_length; i += 2) { - int stat = data[i], flag = 0; - if (stat & RXERROR_OVERRUN) - flag |= TTY_OVERRUN; - if (stat & RXERROR_FRAMING) - flag |= TTY_FRAME; - if (stat & RXERROR_PARITY) - flag |= TTY_PARITY; + int stat = data[i]; + int flag = TTY_NORMAL; + + if (stat & RXERROR_OVERRUN) { + tty_insert_flip_char(&port->port, 0, + TTY_OVERRUN); + } /* XXX should handle break (0x10) */ + if (stat & RXERROR_PARITY) + flag = TTY_PARITY; + else if (stat & RXERROR_FRAMING) + flag = TTY_FRAME; + tty_insert_flip_char(&port->port, data[i+1], flag); } @@ -731,15 +742,19 @@ */ for (x = 0; x + 1 < len && i + 1 < urb->actual_length; x += 2) { - int stat = data[i], flag = 0; + int stat = data[i]; + int flag = TTY_NORMAL; - if (stat & RXERROR_OVERRUN) - flag |= TTY_OVERRUN; - if (stat & RXERROR_FRAMING) - flag |= TTY_FRAME; - if (stat & RXERROR_PARITY) - flag |= TTY_PARITY; + if (stat & RXERROR_OVERRUN) { + tty_insert_flip_char(&port->port, 0, + TTY_OVERRUN); + } /* XXX should handle break (0x10) */ + if (stat & RXERROR_PARITY) + flag = TTY_PARITY; + else if (stat & RXERROR_FRAMING) + flag = TTY_FRAME; + tty_insert_flip_char(&port->port, data[i+1], flag); i += 2; @@ -791,25 +806,31 @@ if ((data[0] & 0x80) == 0) { /* no errors on individual bytes, only possible overrun err*/ - if (data[0] & RXERROR_OVERRUN) - err = TTY_OVERRUN; - else - err = 0; + if (data[0] & RXERROR_OVERRUN) { + tty_insert_flip_char(&port->port, 0, + TTY_OVERRUN); + } for (i = 1; i < urb->actual_length ; ++i) tty_insert_flip_char(&port->port, - data[i], err); + data[i], TTY_NORMAL); } else { /* some bytes had errors, every byte has status */ dev_dbg(&port->dev, "%s - RX error!!!!\n", __func__); for (i = 0; i + 1 < urb->actual_length; i += 2) { - int stat = data[i], flag = 0; - if (stat & RXERROR_OVERRUN) - flag |= TTY_OVERRUN; - if (stat & RXERROR_FRAMING) - flag |= TTY_FRAME; - if (stat & RXERROR_PARITY) - flag |= TTY_PARITY; + int stat = data[i]; + int flag = TTY_NORMAL; + + if (stat & RXERROR_OVERRUN) { + tty_insert_flip_char( + &port->port, 0, + TTY_OVERRUN); + } /* XXX should handle break (0x10) */ + if (stat & RXERROR_PARITY) + flag = TTY_PARITY; + else if (stat & RXERROR_FRAMING) + flag = TTY_FRAME; + tty_insert_flip_char(&port->port, data[i+1], flag); } --- linux-3.13.0.orig/drivers/usb/serial/kobil_sct.c +++ linux-3.13.0/drivers/usb/serial/kobil_sct.c @@ -336,7 +336,8 @@ port->interrupt_out_urb->transfer_buffer_length = length; priv->cur_pos = priv->cur_pos + length; - result = usb_submit_urb(port->interrupt_out_urb, GFP_NOIO); + result = usb_submit_urb(port->interrupt_out_urb, + GFP_ATOMIC); dev_dbg(&port->dev, "%s - Send write URB returns: %i\n", __func__, result); todo = priv->filled - priv->cur_pos; @@ -351,7 +352,7 @@ if (priv->device_type == KOBIL_ADAPTER_B_PRODUCT_ID || priv->device_type == KOBIL_ADAPTER_K_PRODUCT_ID) { result = usb_submit_urb(port->interrupt_in_urb, - GFP_NOIO); + GFP_ATOMIC); dev_dbg(&port->dev, "%s - Send read URB returns: %i\n", __func__, result); } } --- linux-3.13.0.orig/drivers/usb/serial/opticon.c +++ linux-3.13.0/drivers/usb/serial/opticon.c @@ -219,7 +219,7 @@ /* The conncected devices do not have a bulk write endpoint, * to transmit data to de barcode device the control endpoint is used */ - dr = kmalloc(sizeof(struct usb_ctrlrequest), GFP_NOIO); + dr = kmalloc(sizeof(struct usb_ctrlrequest), GFP_ATOMIC); if (!dr) { dev_err(&port->dev, "out of memory\n"); count = -ENOMEM; --- linux-3.13.0.orig/drivers/usb/serial/option.c +++ linux-3.13.0/drivers/usb/serial/option.c @@ -161,6 +161,7 @@ #define NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_FULLSPEED 0x9000 #define NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_HIGHSPEED 0x9001 #define NOVATELWIRELESS_PRODUCT_E362 0x9010 +#define NOVATELWIRELESS_PRODUCT_E371 0x9011 #define NOVATELWIRELESS_PRODUCT_G2 0xA010 #define NOVATELWIRELESS_PRODUCT_MC551 0xB001 @@ -234,8 +235,31 @@ #define QUALCOMM_VENDOR_ID 0x05C6 #define CMOTECH_VENDOR_ID 0x16d8 -#define CMOTECH_PRODUCT_6008 0x6008 -#define CMOTECH_PRODUCT_6280 0x6280 +#define CMOTECH_PRODUCT_6001 0x6001 +#define CMOTECH_PRODUCT_CMU_300 0x6002 +#define CMOTECH_PRODUCT_6003 0x6003 +#define CMOTECH_PRODUCT_6004 0x6004 +#define CMOTECH_PRODUCT_6005 0x6005 +#define CMOTECH_PRODUCT_CGU_628A 0x6006 +#define CMOTECH_PRODUCT_CHE_628S 0x6007 +#define CMOTECH_PRODUCT_CMU_301 0x6008 +#define CMOTECH_PRODUCT_CHU_628 0x6280 +#define CMOTECH_PRODUCT_CHU_628S 0x6281 +#define CMOTECH_PRODUCT_CDU_680 0x6803 +#define CMOTECH_PRODUCT_CDU_685A 0x6804 +#define CMOTECH_PRODUCT_CHU_720S 0x7001 +#define CMOTECH_PRODUCT_7002 0x7002 +#define CMOTECH_PRODUCT_CHU_629K 0x7003 +#define CMOTECH_PRODUCT_7004 0x7004 +#define CMOTECH_PRODUCT_7005 0x7005 +#define CMOTECH_PRODUCT_CGU_629 0x7006 +#define CMOTECH_PRODUCT_CHU_629S 0x700a +#define CMOTECH_PRODUCT_CHU_720I 0x7211 +#define CMOTECH_PRODUCT_7212 0x7212 +#define CMOTECH_PRODUCT_7213 0x7213 +#define CMOTECH_PRODUCT_7251 0x7251 +#define CMOTECH_PRODUCT_7252 0x7252 +#define CMOTECH_PRODUCT_7253 0x7253 #define TELIT_VENDOR_ID 0x1bc7 #define TELIT_PRODUCT_UC864E 0x1003 @@ -243,15 +267,21 @@ #define TELIT_PRODUCT_CC864_DUAL 0x1005 #define TELIT_PRODUCT_CC864_SINGLE 0x1006 #define TELIT_PRODUCT_DE910_DUAL 0x1010 +#define TELIT_PRODUCT_UE910_V2 0x1012 #define TELIT_PRODUCT_LE920 0x1200 +#define TELIT_PRODUCT_LE910 0x1201 /* ZTE PRODUCTS */ #define ZTE_VENDOR_ID 0x19d2 #define ZTE_PRODUCT_MF622 0x0001 #define ZTE_PRODUCT_MF628 0x0015 #define ZTE_PRODUCT_MF626 0x0031 -#define ZTE_PRODUCT_MC2718 0xffe8 #define ZTE_PRODUCT_AC2726 0xfff1 +#define ZTE_PRODUCT_CDMA_TECH 0xfffe +#define ZTE_PRODUCT_AC8710T 0xffff +#define ZTE_PRODUCT_MC2718 0xffe8 +#define ZTE_PRODUCT_AD3812 0xffeb +#define ZTE_PRODUCT_MC2716 0xffed #define BENQ_VENDOR_ID 0x04a5 #define BENQ_PRODUCT_H10 0x4068 @@ -286,6 +316,7 @@ #define ALCATEL_PRODUCT_X060S_X200 0x0000 #define ALCATEL_PRODUCT_X220_X500D 0x0017 #define ALCATEL_PRODUCT_L100V 0x011e +#define ALCATEL_PRODUCT_L800MA 0x0203 #define PIRELLI_VENDOR_ID 0x1266 #define PIRELLI_PRODUCT_C100_1 0x1002 @@ -320,11 +351,18 @@ * It seems to contain a Qualcomm QSC6240/6290 chipset */ #define FOUR_G_SYSTEMS_PRODUCT_W14 0x9603 +/* iBall 3.5G connect wireless modem */ +#define IBALL_3_5G_CONNECT 0x9605 + /* Zoom */ #define ZOOM_PRODUCT_4597 0x9607 +/* SpeedUp SU9800 usb 3g modem */ +#define SPEEDUP_PRODUCT_SU9800 0x9800 + /* Haier products */ #define HAIER_VENDOR_ID 0x201e +#define HAIER_PRODUCT_CE81B 0x10f8 #define HAIER_PRODUCT_CE100 0x2009 /* Cinterion (formerly Siemens) products */ @@ -343,8 +381,13 @@ /* Olivetti products */ #define OLIVETTI_VENDOR_ID 0x0b3c #define OLIVETTI_PRODUCT_OLICARD100 0xc000 +#define OLIVETTI_PRODUCT_OLICARD120 0xc001 +#define OLIVETTI_PRODUCT_OLICARD140 0xc002 #define OLIVETTI_PRODUCT_OLICARD145 0xc003 +#define OLIVETTI_PRODUCT_OLICARD155 0xc004 #define OLIVETTI_PRODUCT_OLICARD200 0xc005 +#define OLIVETTI_PRODUCT_OLICARD160 0xc00a +#define OLIVETTI_PRODUCT_OLICARD500 0xc00b /* Celot products */ #define CELOT_VENDOR_ID 0x211f @@ -457,6 +500,10 @@ #define INOVIA_VENDOR_ID 0x20a6 #define INOVIA_SEW858 0x1105 +/* VIA Telecom */ +#define VIATELECOM_VENDOR_ID 0x15eb +#define VIATELECOM_PRODUCT_CDS7 0x0001 + /* some devices interfaces need special handling due to a number of reasons */ enum option_blacklist_reason { OPTION_BLACKLIST_NONE = 0, @@ -490,14 +537,26 @@ .reserved = BIT(4), }; +static const struct option_blacklist_info zte_ad3812_z_blacklist = { + .sendsetup = BIT(0) | BIT(1) | BIT(2), +}; + static const struct option_blacklist_info zte_mc2718_z_blacklist = { .sendsetup = BIT(1) | BIT(2) | BIT(3) | BIT(4), }; +static const struct option_blacklist_info zte_mc2716_z_blacklist = { + .sendsetup = BIT(1) | BIT(2) | BIT(3), +}; + static const struct option_blacklist_info huawei_cdc12_blacklist = { .reserved = BIT(1) | BIT(2), }; +static const struct option_blacklist_info net_intf0_blacklist = { + .reserved = BIT(0), +}; + static const struct option_blacklist_info net_intf1_blacklist = { .reserved = BIT(1), }; @@ -531,6 +590,11 @@ .reserved = BIT(3) | BIT(4), }; +static const struct option_blacklist_info telit_le910_blacklist = { + .sendsetup = BIT(0), + .reserved = BIT(1) | BIT(2), +}; + static const struct option_blacklist_info telit_le920_blacklist = { .sendsetup = BIT(0), .reserved = BIT(1) | BIT(5), @@ -979,6 +1043,7 @@ /* Novatel Ovation MC551 a.k.a. Verizon USB551L */ { USB_DEVICE_AND_INTERFACE_INFO(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC551, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_E362, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_E371, 0xff, 0xff, 0xff) }, { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01) }, { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01A) }, @@ -1028,16 +1093,59 @@ { USB_DEVICE_INTERFACE_CLASS(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_1012, 0xff) }, { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC650) }, { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC680) }, + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6000)}, /* ZTE AC8700 */ { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */ { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */ { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000)}, /* SIMCom SIM5218 */ - { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6280) }, /* BP3-USB & BP3-EXT HSDPA */ - { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6008) }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6003), + .driver_info = (kernel_ulong_t)&net_intf0_blacklist }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6004) }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6005) }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CGU_628A) }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHE_628S), + .driver_info = (kernel_ulong_t)&net_intf0_blacklist }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_301), + .driver_info = (kernel_ulong_t)&net_intf0_blacklist }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_628), + .driver_info = (kernel_ulong_t)&net_intf0_blacklist }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_628S) }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CDU_680) }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CDU_685A) }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_720S), + .driver_info = (kernel_ulong_t)&net_intf0_blacklist }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7002), + .driver_info = (kernel_ulong_t)&net_intf0_blacklist }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_629K), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7004), + .driver_info = (kernel_ulong_t)&net_intf3_blacklist }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7005) }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CGU_629), + .driver_info = (kernel_ulong_t)&net_intf5_blacklist }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_629S), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CHU_720I), + .driver_info = (kernel_ulong_t)&net_intf0_blacklist }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7212), + .driver_info = (kernel_ulong_t)&net_intf0_blacklist }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7213), + .driver_info = (kernel_ulong_t)&net_intf0_blacklist }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7251), + .driver_info = (kernel_ulong_t)&net_intf1_blacklist }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7252), + .driver_info = (kernel_ulong_t)&net_intf1_blacklist }, + { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_7253), + .driver_info = (kernel_ulong_t)&net_intf1_blacklist }, { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) }, { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864G) }, { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_DUAL) }, { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_SINGLE) }, { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_DE910_DUAL) }, + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UE910_V2) }, + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE910), + .driver_info = (kernel_ulong_t)&telit_le910_blacklist }, { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920), .driver_info = (kernel_ulong_t)&telit_le920_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */ @@ -1359,7 +1467,8 @@ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1267, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1268, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1269, 0xff, 0xff, 0xff) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1270, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1270, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&net_intf5_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1271, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1272, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1273, 0xff, 0xff, 0xff) }, @@ -1404,6 +1513,8 @@ .driver_info = (kernel_ulong_t)&net_intf2_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1426, 0xff, 0xff, 0xff), /* ZTE MF91 */ .driver_info = (kernel_ulong_t)&net_intf2_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1428, 0xff, 0xff, 0xff), /* Telewell TW-LTE 4G v2 */ + .driver_info = (kernel_ulong_t)&net_intf2_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1533, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1534, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1535, 0xff, 0xff, 0xff) }, @@ -1447,14 +1558,30 @@ .driver_info = (kernel_ulong_t)&net_intf3_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0178, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t)&net_intf3_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xffe9, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff8b, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff8c, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff8d, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff8e, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff8f, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff90, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff91, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff92, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff93, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff94, 0xff, 0xff, 0xff) }, - /* NOTE: most ZTE CDMA devices should be driven by zte_ev, not option */ + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC2726, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC8710T, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MC2718, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t)&zte_mc2718_z_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AD3812, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&zte_ad3812_z_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MC2716, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t)&zte_mc2716_z_blacklist }, { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x02, 0x01) }, { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x02, 0x05) }, { USB_VENDOR_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0xff, 0x86, 0x10) }, - { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC2726, 0xff, 0xff, 0xff) }, { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) }, { USB_DEVICE(DLINK_VENDOR_ID, DLINK_PRODUCT_DWM_652) }, @@ -1483,13 +1610,18 @@ .driver_info = (kernel_ulong_t)&net_intf5_blacklist }, { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_L100V), .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_L800MA), + .driver_info = (kernel_ulong_t)&net_intf2_blacklist }, { USB_DEVICE(AIRPLUS_VENDOR_ID, AIRPLUS_PRODUCT_MCD650) }, { USB_DEVICE(TLAYTECH_VENDOR_ID, TLAYTECH_PRODUCT_TEU800) }, { USB_DEVICE(LONGCHEER_VENDOR_ID, FOUR_G_SYSTEMS_PRODUCT_W14), .driver_info = (kernel_ulong_t)&four_g_w14_blacklist }, + { USB_DEVICE_INTERFACE_CLASS(LONGCHEER_VENDOR_ID, SPEEDUP_PRODUCT_SU9800, 0xff) }, { USB_DEVICE(LONGCHEER_VENDOR_ID, ZOOM_PRODUCT_4597) }, + { USB_DEVICE(LONGCHEER_VENDOR_ID, IBALL_3_5G_CONNECT) }, { USB_DEVICE(HAIER_VENDOR_ID, HAIER_PRODUCT_CE100) }, + { USB_DEVICE_AND_INTERFACE_INFO(HAIER_VENDOR_ID, HAIER_PRODUCT_CE81B, 0xff, 0xff, 0xff) }, /* Pirelli */ { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_C100_1, 0xff) }, { USB_DEVICE_INTERFACE_CLASS(PIRELLI_VENDOR_ID, PIRELLI_PRODUCT_C100_2, 0xff) }, @@ -1510,7 +1642,8 @@ /* Cinterion */ { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EU3_E) }, { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_EU3_P) }, - { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PH8) }, + { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PH8), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_AHXX) }, { USB_DEVICE(CINTERION_VENDOR_ID, CINTERION_PRODUCT_PLXX), .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, @@ -1520,12 +1653,21 @@ { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC25_MDMNET) }, { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC28_MDM) }, /* HC28 enumerates with Siemens or Cinterion VID depending on FW revision */ { USB_DEVICE(SIEMENS_VENDOR_ID, CINTERION_PRODUCT_HC28_MDMNET) }, - - { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD100) }, + { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD100), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD120), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD140), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD145) }, + { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD155), + .driver_info = (kernel_ulong_t)&net_intf6_blacklist }, { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD200), - .driver_info = (kernel_ulong_t)&net_intf6_blacklist - }, + .driver_info = (kernel_ulong_t)&net_intf6_blacklist }, + { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD160), + .driver_info = (kernel_ulong_t)&net_intf6_blacklist }, + { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD500), + .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, { USB_DEVICE(CELOT_VENDOR_ID, CELOT_PRODUCT_CT680M) }, /* CT-650 CDMA 450 1xEVDO modem */ { USB_DEVICE_AND_INTERFACE_INFO(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_GT_B3730, USB_CLASS_CDC_DATA, 0x00, 0x00) }, /* Samsung GT-B3730 LTE USB modem.*/ { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM600) }, @@ -1614,6 +1756,7 @@ { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) }, /* D-Link DWM-152/C1 */ { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/C1 */ { USB_DEVICE(INOVIA_VENDOR_ID, INOVIA_SEW858) }, + { USB_DEVICE(VIATELECOM_VENDOR_ID, VIATELECOM_PRODUCT_CDS7) }, { } /* Terminating entry */ }; MODULE_DEVICE_TABLE(usb, option_ids); @@ -1807,6 +1950,8 @@ dev_dbg(dev, "%s: type %x req %x\n", __func__, req_pkt->bRequestType, req_pkt->bRequest); } + } else if (status == -ENOENT || status == -ESHUTDOWN) { + dev_dbg(dev, "%s: urb stopped: %d\n", __func__, status); } else dev_err(dev, "%s: error %d\n", __func__, status); --- linux-3.13.0.orig/drivers/usb/serial/pl2303.c +++ linux-3.13.0/drivers/usb/serial/pl2303.c @@ -48,6 +48,7 @@ { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_GPRS) }, { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_HCR331) }, { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_MOTOROLA) }, + { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_ZTEK) }, { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) }, { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID_RSAQ5) }, { USB_DEVICE(ATEN_VENDOR_ID, ATEN_PRODUCT_ID) }, @@ -83,6 +84,9 @@ { USB_DEVICE(YCCABLE_VENDOR_ID, YCCABLE_PRODUCT_ID) }, { USB_DEVICE(SUPERIAL_VENDOR_ID, SUPERIAL_PRODUCT_ID) }, { USB_DEVICE(HP_VENDOR_ID, HP_LD220_PRODUCT_ID) }, + { USB_DEVICE(HP_VENDOR_ID, HP_LD960_PRODUCT_ID) }, + { USB_DEVICE(HP_VENDOR_ID, HP_LCM220_PRODUCT_ID) }, + { USB_DEVICE(HP_VENDOR_ID, HP_LCM960_PRODUCT_ID) }, { USB_DEVICE(CRESSI_VENDOR_ID, CRESSI_EDY_PRODUCT_ID) }, { USB_DEVICE(ZEAGLE_VENDOR_ID, ZEAGLE_N2ITION3_PRODUCT_ID) }, { USB_DEVICE(SONY_VENDOR_ID, SONY_QN3USB_PRODUCT_ID) }, @@ -142,6 +146,8 @@ spinlock_t lock; u8 line_control; u8 line_status; + + u8 line_settings[7]; }; static int pl2303_vendor_read(__u16 value, __u16 index, @@ -339,11 +345,6 @@ int i; u8 control; - /* - * The PL2303 is reported to lose bytes if you change serial settings - * even to the same values as before. Thus we actually need to filter - * in this specific case. - */ if (old_termios && !tty_termios_hw_change(&tty->termios, old_termios)) return; @@ -428,10 +429,29 @@ dev_dbg(&port->dev, "parity = none\n"); } - i = usb_control_msg(serial->dev, usb_sndctrlpipe(serial->dev, 0), - SET_LINE_REQUEST, SET_LINE_REQUEST_TYPE, - 0, 0, buf, 7, 100); - dev_dbg(&port->dev, "0x21:0x20:0:0 %d\n", i); + /* + * Some PL2303 are known to lose bytes if you change serial settings + * even to the same values as before. Thus we actually need to filter + * in this specific case. + * + * Note that the tty_termios_hw_change check above is not sufficient + * as a previously requested baud rate may differ from the one + * actually used (and stored in old_termios). + * + * NOTE: No additional locking needed for line_settings as it is + * only used in set_termios, which is serialised against itself. + */ + if (!old_termios || memcmp(buf, priv->line_settings, 7)) { + i = usb_control_msg(serial->dev, + usb_sndctrlpipe(serial->dev, 0), + SET_LINE_REQUEST, SET_LINE_REQUEST_TYPE, + 0, 0, buf, 7, 100); + + dev_dbg(&port->dev, "0x21:0x20:0:0 %d\n", i); + + if (i == 7) + memcpy(priv->line_settings, buf, 7); + } /* change control lines if we are switching to or from B0 */ spin_lock_irqsave(&priv->lock, flags); --- linux-3.13.0.orig/drivers/usb/serial/pl2303.h +++ linux-3.13.0/drivers/usb/serial/pl2303.h @@ -22,6 +22,7 @@ #define PL2303_PRODUCT_ID_GPRS 0x0609 #define PL2303_PRODUCT_ID_HCR331 0x331a #define PL2303_PRODUCT_ID_MOTOROLA 0x0307 +#define PL2303_PRODUCT_ID_ZTEK 0xe1f1 #define ATEN_VENDOR_ID 0x0557 #define ATEN_VENDOR_ID2 0x0547 @@ -121,8 +122,11 @@ #define SUPERIAL_VENDOR_ID 0x5372 #define SUPERIAL_PRODUCT_ID 0x2303 -/* Hewlett-Packard LD220-HP POS Pole Display */ +/* Hewlett-Packard POS Pole Displays */ #define HP_VENDOR_ID 0x03f0 +#define HP_LD960_PRODUCT_ID 0x0b39 +#define HP_LCM220_PRODUCT_ID 0x3139 +#define HP_LCM960_PRODUCT_ID 0x3239 #define HP_LD220_PRODUCT_ID 0x3524 /* Cressi Edy (diving computer) PC interface */ --- linux-3.13.0.orig/drivers/usb/serial/qcserial.c +++ linux-3.13.0/drivers/usb/serial/qcserial.c @@ -136,9 +136,57 @@ {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x68a2, 0)}, /* Sierra Wireless MC7710 Device Management */ {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x68a2, 2)}, /* Sierra Wireless MC7710 NMEA */ {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x68a2, 3)}, /* Sierra Wireless MC7710 Modem */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x68c0, 0)}, /* Sierra Wireless MC73xx Device Management */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x68c0, 2)}, /* Sierra Wireless MC73xx NMEA */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x68c0, 3)}, /* Sierra Wireless MC73xx Modem */ {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x901c, 0)}, /* Sierra Wireless EM7700 Device Management */ {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x901c, 2)}, /* Sierra Wireless EM7700 NMEA */ {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x901c, 3)}, /* Sierra Wireless EM7700 Modem */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x901f, 0)}, /* Sierra Wireless EM7355 Device Management */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x901f, 2)}, /* Sierra Wireless EM7355 NMEA */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x901f, 3)}, /* Sierra Wireless EM7355 Modem */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9040, 0)}, /* Sierra Wireless Modem Device Management */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9040, 2)}, /* Sierra Wireless Modem NMEA */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9040, 3)}, /* Sierra Wireless Modem Modem */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9041, 0)}, /* Sierra Wireless MC7305/MC7355 Device Management */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9041, 2)}, /* Sierra Wireless MC7305/MC7355 NMEA */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9041, 3)}, /* Sierra Wireless MC7305/MC7355 Modem */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9051, 0)}, /* Netgear AirCard 340U Device Management */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9051, 2)}, /* Netgear AirCard 340U NMEA */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9051, 3)}, /* Netgear AirCard 340U Modem */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9053, 0)}, /* Sierra Wireless Modem Device Management */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9053, 2)}, /* Sierra Wireless Modem NMEA */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9053, 3)}, /* Sierra Wireless Modem Modem */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9054, 0)}, /* Sierra Wireless Modem Device Management */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9054, 2)}, /* Sierra Wireless Modem NMEA */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9054, 3)}, /* Sierra Wireless Modem Modem */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9055, 0)}, /* Netgear AirCard 341U Device Management */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9055, 2)}, /* Netgear AirCard 341U NMEA */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9055, 3)}, /* Netgear AirCard 341U Modem */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9056, 0)}, /* Sierra Wireless Modem Device Management */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9056, 2)}, /* Sierra Wireless Modem NMEA */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9056, 3)}, /* Sierra Wireless Modem Modem */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9060, 0)}, /* Sierra Wireless Modem Device Management */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9060, 2)}, /* Sierra Wireless Modem NMEA */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9060, 3)}, /* Sierra Wireless Modem Modem */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9061, 0)}, /* Sierra Wireless Modem Device Management */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9061, 2)}, /* Sierra Wireless Modem NMEA */ + {USB_DEVICE_INTERFACE_NUMBER(0x1199, 0x9061, 3)}, /* Sierra Wireless Modem Modem */ + {USB_DEVICE_INTERFACE_NUMBER(0x413c, 0x81a2, 0)}, /* Dell Wireless 5806 Gobi(TM) 4G LTE Mobile Broadband Card Device Management */ + {USB_DEVICE_INTERFACE_NUMBER(0x413c, 0x81a2, 2)}, /* Dell Wireless 5806 Gobi(TM) 4G LTE Mobile Broadband Card NMEA */ + {USB_DEVICE_INTERFACE_NUMBER(0x413c, 0x81a2, 3)}, /* Dell Wireless 5806 Gobi(TM) 4G LTE Mobile Broadband Card Modem */ + {USB_DEVICE_INTERFACE_NUMBER(0x413c, 0x81a3, 0)}, /* Dell Wireless 5570 HSPA+ (42Mbps) Mobile Broadband Card Device Management */ + {USB_DEVICE_INTERFACE_NUMBER(0x413c, 0x81a3, 2)}, /* Dell Wireless 5570 HSPA+ (42Mbps) Mobile Broadband Card NMEA */ + {USB_DEVICE_INTERFACE_NUMBER(0x413c, 0x81a3, 3)}, /* Dell Wireless 5570 HSPA+ (42Mbps) Mobile Broadband Card Modem */ + {USB_DEVICE_INTERFACE_NUMBER(0x413c, 0x81a4, 0)}, /* Dell Wireless 5570e HSPA+ (42Mbps) Mobile Broadband Card Device Management */ + {USB_DEVICE_INTERFACE_NUMBER(0x413c, 0x81a4, 2)}, /* Dell Wireless 5570e HSPA+ (42Mbps) Mobile Broadband Card NMEA */ + {USB_DEVICE_INTERFACE_NUMBER(0x413c, 0x81a4, 3)}, /* Dell Wireless 5570e HSPA+ (42Mbps) Mobile Broadband Card Modem */ + {USB_DEVICE_INTERFACE_NUMBER(0x413c, 0x81a8, 0)}, /* Dell Wireless 5808 Gobi(TM) 4G LTE Mobile Broadband Card Device Management */ + {USB_DEVICE_INTERFACE_NUMBER(0x413c, 0x81a8, 2)}, /* Dell Wireless 5808 Gobi(TM) 4G LTE Mobile Broadband Card NMEA */ + {USB_DEVICE_INTERFACE_NUMBER(0x413c, 0x81a8, 3)}, /* Dell Wireless 5808 Gobi(TM) 4G LTE Mobile Broadband Card Modem */ + {USB_DEVICE_INTERFACE_NUMBER(0x413c, 0x81a9, 0)}, /* Dell Wireless 5808e Gobi(TM) 4G LTE Mobile Broadband Card Device Management */ + {USB_DEVICE_INTERFACE_NUMBER(0x413c, 0x81a9, 2)}, /* Dell Wireless 5808e Gobi(TM) 4G LTE Mobile Broadband Card NMEA */ + {USB_DEVICE_INTERFACE_NUMBER(0x413c, 0x81a9, 3)}, /* Dell Wireless 5808e Gobi(TM) 4G LTE Mobile Broadband Card Modem */ { } /* Terminating entry */ }; --- linux-3.13.0.orig/drivers/usb/serial/sierra.c +++ linux-3.13.0/drivers/usb/serial/sierra.c @@ -281,17 +281,21 @@ /* Sierra Wireless HSPA Non-Composite Device */ { USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x6892, 0xFF, 0xFF, 0xFF)}, { USB_DEVICE(0x1199, 0x6893) }, /* Sierra Wireless Device */ - { USB_DEVICE(0x1199, 0x68A3), /* Sierra Wireless Direct IP modems */ + /* Sierra Wireless Direct IP modems */ + { USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x68A3, 0xFF, 0xFF, 0xFF), + .driver_info = (kernel_ulong_t)&direct_ip_interface_blacklist + }, + { USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x68AA, 0xFF, 0xFF, 0xFF), .driver_info = (kernel_ulong_t)&direct_ip_interface_blacklist }, /* AT&T Direct IP LTE modems */ { USB_DEVICE_AND_INTERFACE_INFO(0x0F3D, 0x68AA, 0xFF, 0xFF, 0xFF), .driver_info = (kernel_ulong_t)&direct_ip_interface_blacklist }, - { USB_DEVICE(0x0f3d, 0x68A3), /* Airprime/Sierra Wireless Direct IP modems */ + /* Airprime/Sierra Wireless Direct IP modems */ + { USB_DEVICE_AND_INTERFACE_INFO(0x0F3D, 0x68A3, 0xFF, 0xFF, 0xFF), .driver_info = (kernel_ulong_t)&direct_ip_interface_blacklist }, - { USB_DEVICE(0x413C, 0x08133) }, /* Dell Computer Corp. Wireless 5720 VZW Mobile Broadband (EVDO Rev-A) Minicard GPS Port */ { } }; --- linux-3.13.0.orig/drivers/usb/serial/ssu100.c +++ linux-3.13.0/drivers/usb/serial/ssu100.c @@ -495,10 +495,9 @@ if (*tty_flag == TTY_NORMAL) *tty_flag = TTY_FRAME; } - if (lsr & UART_LSR_OE){ + if (lsr & UART_LSR_OE) { port->icount.overrun++; - if (*tty_flag == TTY_NORMAL) - *tty_flag = TTY_OVERRUN; + tty_insert_flip_char(&port->port, 0, TTY_OVERRUN); } } @@ -516,12 +515,8 @@ if ((len >= 4) && (packet[0] == 0x1b) && (packet[1] == 0x1b) && ((packet[2] == 0x00) || (packet[2] == 0x01))) { - if (packet[2] == 0x00) { + if (packet[2] == 0x00) ssu100_update_lsr(port, packet[3], &flag); - if (flag == TTY_OVERRUN) - tty_insert_flip_char(&port->port, 0, - TTY_OVERRUN); - } if (packet[2] == 0x01) ssu100_update_msr(port, packet[3]); --- linux-3.13.0.orig/drivers/usb/serial/usb-serial-simple.c +++ linux-3.13.0/drivers/usb/serial/usb-serial-simple.c @@ -72,7 +72,8 @@ /* Suunto ANT+ USB Driver */ #define SUUNTO_IDS() \ - { USB_DEVICE(0x0fcf, 0x1008) } + { USB_DEVICE(0x0fcf, 0x1008) }, \ + { USB_DEVICE(0x0fcf, 0x1009) } /* Dynastream ANT USB-m Stick */ DEVICE(suunto, SUUNTO_IDS); /* Siemens USB/MPI adapter */ --- linux-3.13.0.orig/drivers/usb/serial/usb-serial.c +++ linux-3.13.0/drivers/usb/serial/usb-serial.c @@ -764,29 +764,39 @@ if (usb_endpoint_is_bulk_in(endpoint)) { /* we found a bulk in endpoint */ dev_dbg(ddev, "found bulk in on endpoint %d\n", i); - bulk_in_endpoint[num_bulk_in] = endpoint; - ++num_bulk_in; + if (num_bulk_in < MAX_NUM_PORTS) { + bulk_in_endpoint[num_bulk_in] = endpoint; + ++num_bulk_in; + } } if (usb_endpoint_is_bulk_out(endpoint)) { /* we found a bulk out endpoint */ dev_dbg(ddev, "found bulk out on endpoint %d\n", i); - bulk_out_endpoint[num_bulk_out] = endpoint; - ++num_bulk_out; + if (num_bulk_out < MAX_NUM_PORTS) { + bulk_out_endpoint[num_bulk_out] = endpoint; + ++num_bulk_out; + } } if (usb_endpoint_is_int_in(endpoint)) { /* we found a interrupt in endpoint */ dev_dbg(ddev, "found interrupt in on endpoint %d\n", i); - interrupt_in_endpoint[num_interrupt_in] = endpoint; - ++num_interrupt_in; + if (num_interrupt_in < MAX_NUM_PORTS) { + interrupt_in_endpoint[num_interrupt_in] = + endpoint; + ++num_interrupt_in; + } } if (usb_endpoint_is_int_out(endpoint)) { /* we found an interrupt out endpoint */ dev_dbg(ddev, "found interrupt out on endpoint %d\n", i); - interrupt_out_endpoint[num_interrupt_out] = endpoint; - ++num_interrupt_out; + if (num_interrupt_out < MAX_NUM_PORTS) { + interrupt_out_endpoint[num_interrupt_out] = + endpoint; + ++num_interrupt_out; + } } } @@ -809,8 +819,10 @@ if (usb_endpoint_is_int_in(endpoint)) { /* we found a interrupt in endpoint */ dev_dbg(ddev, "found interrupt in for Prolific device on separate interface\n"); - interrupt_in_endpoint[num_interrupt_in] = endpoint; - ++num_interrupt_in; + if (num_interrupt_in < MAX_NUM_PORTS) { + interrupt_in_endpoint[num_interrupt_in] = endpoint; + ++num_interrupt_in; + } } } } @@ -850,6 +862,11 @@ num_ports = type->num_ports; } + if (num_ports > MAX_NUM_PORTS) { + dev_warn(ddev, "too many ports requested: %d\n", num_ports); + num_ports = MAX_NUM_PORTS; + } + serial->num_ports = num_ports; serial->num_bulk_in = num_bulk_in; serial->num_bulk_out = num_bulk_out; @@ -1348,10 +1365,12 @@ static void usb_serial_deregister(struct usb_serial_driver *device) { pr_info("USB Serial deregistering driver %s\n", device->description); + mutex_lock(&table_lock); list_del(&device->driver_list); - usb_serial_bus_deregister(device); mutex_unlock(&table_lock); + + usb_serial_bus_deregister(device); } /** --- linux-3.13.0.orig/drivers/usb/serial/usb_wwan.c +++ linux-3.13.0/drivers/usb/serial/usb_wwan.c @@ -470,6 +470,9 @@ int err; int i; + if (!port->bulk_in_size || !port->bulk_out_size) + return -ENODEV; + portdata = kzalloc(sizeof(*portdata), GFP_KERNEL); if (!portdata) return -ENOMEM; @@ -477,9 +480,6 @@ init_usb_anchor(&portdata->delayed); for (i = 0; i < N_IN_URB; i++) { - if (!port->bulk_in_size) - break; - buffer = (u8 *)__get_free_page(GFP_KERNEL); if (!buffer) goto bail_out_error; @@ -493,9 +493,6 @@ } for (i = 0; i < N_OUT_URB; i++) { - if (!port->bulk_out_size) - break; - buffer = kmalloc(OUT_BUFLEN, GFP_KERNEL); if (!buffer) goto bail_out_error2; --- linux-3.13.0.orig/drivers/usb/serial/whiteheat.c +++ linux-3.13.0/drivers/usb/serial/whiteheat.c @@ -521,6 +521,10 @@ dev_dbg(&urb->dev->dev, "%s - command_info is NULL, exiting.\n", __func__); return; } + if (!urb->actual_length) { + dev_dbg(&urb->dev->dev, "%s - empty response, exiting.\n", __func__); + return; + } if (status) { dev_dbg(&urb->dev->dev, "%s - nonzero urb status: %d\n", __func__, status); if (status != -ENOENT) @@ -541,7 +545,8 @@ /* These are unsolicited reports from the firmware, hence no waiting command to wakeup */ dev_dbg(&urb->dev->dev, "%s - event received\n", __func__); - } else if (data[0] == WHITEHEAT_GET_DTR_RTS) { + } else if ((data[0] == WHITEHEAT_GET_DTR_RTS) && + (urb->actual_length - 1 <= sizeof(command_info->result_buffer))) { memcpy(command_info->result_buffer, &data[1], urb->actual_length - 1); command_info->command_finished = WHITEHEAT_CMD_COMPLETE; --- linux-3.13.0.orig/drivers/usb/serial/zte_ev.c +++ linux-3.13.0/drivers/usb/serial/zte_ev.c @@ -273,28 +273,16 @@ } static const struct usb_device_id id_table[] = { - /* AC8710, AC8710T */ - { USB_DEVICE_AND_INTERFACE_INFO(0x19d2, 0xffff, 0xff, 0xff, 0xff) }, - /* AC8700 */ - { USB_DEVICE_AND_INTERFACE_INFO(0x19d2, 0xfffe, 0xff, 0xff, 0xff) }, - /* MG880 */ - { USB_DEVICE(0x19d2, 0xfffd) }, - { USB_DEVICE(0x19d2, 0xfffc) }, - { USB_DEVICE(0x19d2, 0xfffb) }, - /* AC8710_V3 */ + { USB_DEVICE(0x19d2, 0xffec) }, + { USB_DEVICE(0x19d2, 0xffee) }, { USB_DEVICE(0x19d2, 0xfff6) }, { USB_DEVICE(0x19d2, 0xfff7) }, { USB_DEVICE(0x19d2, 0xfff8) }, { USB_DEVICE(0x19d2, 0xfff9) }, - { USB_DEVICE(0x19d2, 0xffee) }, - /* AC2716, MC2716 */ - { USB_DEVICE_AND_INTERFACE_INFO(0x19d2, 0xffed, 0xff, 0xff, 0xff) }, - /* AD3812 */ - { USB_DEVICE_AND_INTERFACE_INFO(0x19d2, 0xffeb, 0xff, 0xff, 0xff) }, - { USB_DEVICE(0x19d2, 0xffec) }, - { USB_DEVICE(0x05C6, 0x3197) }, - { USB_DEVICE(0x05C6, 0x6000) }, - { USB_DEVICE(0x05C6, 0x9008) }, + { USB_DEVICE(0x19d2, 0xfffb) }, + { USB_DEVICE(0x19d2, 0xfffc) }, + /* MG880 */ + { USB_DEVICE(0x19d2, 0xfffd) }, { }, }; MODULE_DEVICE_TABLE(usb, id_table); --- linux-3.13.0.orig/drivers/usb/storage/Kconfig +++ linux-3.13.0/drivers/usb/storage/Kconfig @@ -18,7 +18,9 @@ This option depends on 'SCSI' support being enabled, but you probably also need 'SCSI device support: SCSI disk support' - (BLK_DEV_SD) for most USB storage devices. + (BLK_DEV_SD) for most USB storage devices. Some devices also + will require 'Probe all LUNs on each SCSI device' + (SCSI_MULTI_LUN). To compile this driver as a module, choose M here: the module will be called usb-storage. --- linux-3.13.0.orig/drivers/usb/storage/scsiglue.c +++ linux-3.13.0/drivers/usb/storage/scsiglue.c @@ -78,6 +78,8 @@ static int slave_alloc (struct scsi_device *sdev) { + struct us_data *us = host_to_us(sdev->host); + /* * Set the INQUIRY transfer length to 36. We don't use any of * the extra data and many devices choke if asked for more or @@ -102,6 +104,10 @@ */ blk_queue_update_dma_alignment(sdev->request_queue, (512 - 1)); + /* Tell the SCSI layer if we know there is more than one LUN */ + if (us->protocol == USB_PR_BULK && us->max_lun > 0) + sdev->sdev_bflags |= BLIST_FORCELUN; + return 0; } @@ -250,6 +256,10 @@ if (us->fflags & US_FL_WRITE_CACHE) sdev->wce_default_on = 1; + /* A few buggy USB-ATA bridges don't understand FUA */ + if (us->fflags & US_FL_BROKEN_FUA) + sdev->broken_fua = 1; + } else { /* Non-disk-type devices don't need to blacklist any pages --- linux-3.13.0.orig/drivers/usb/storage/shuttle_usbat.c +++ linux-3.13.0/drivers/usb/storage/shuttle_usbat.c @@ -1851,7 +1851,7 @@ us->transport_name = "Shuttle USBAT"; us->transport = usbat_flash_transport; us->transport_reset = usb_stor_CB_reset; - us->max_lun = 1; + us->max_lun = 0; result = usb_stor_probe2(us); return result; --- linux-3.13.0.orig/drivers/usb/storage/transport.c +++ linux-3.13.0/drivers/usb/storage/transport.c @@ -1118,6 +1118,31 @@ */ if (result == USB_STOR_XFER_LONG) fake_sense = 1; + + /* + * Sometimes a device will mistakenly skip the data phase + * and go directly to the status phase without sending a + * zero-length packet. If we get a 13-byte response here, + * check whether it really is a CSW. + */ + if (result == USB_STOR_XFER_SHORT && + srb->sc_data_direction == DMA_FROM_DEVICE && + transfer_length - scsi_get_resid(srb) == + US_BULK_CS_WRAP_LEN) { + struct scatterlist *sg = NULL; + unsigned int offset = 0; + + if (usb_stor_access_xfer_buf((unsigned char *) bcs, + US_BULK_CS_WRAP_LEN, srb, &sg, + &offset, FROM_XFER_BUF) == + US_BULK_CS_WRAP_LEN && + bcs->Signature == + cpu_to_le32(US_BULK_CS_SIGN)) { + usb_stor_dbg(us, "Device skipped data phase\n"); + scsi_set_resid(srb, transfer_length); + goto skipped_data_phase; + } + } } /* See flow chart on pg 15 of the Bulk Only Transport spec for @@ -1153,6 +1178,7 @@ if (result != USB_STOR_XFER_GOOD) return USB_STOR_TRANSPORT_ERROR; + skipped_data_phase: /* check bulk status */ residue = le32_to_cpu(bcs->Residue); usb_stor_dbg(us, "Bulk Status S 0x%x T 0x%x R %u Stat 0x%x\n", --- linux-3.13.0.orig/drivers/usb/storage/unusual_cypress.h +++ linux-3.13.0/drivers/usb/storage/unusual_cypress.h @@ -31,7 +31,7 @@ "Cypress ISD-300LP", USB_SC_CYP_ATACB, USB_PR_DEVICE, NULL, 0), -UNUSUAL_DEV( 0x14cd, 0x6116, 0x0000, 0x0219, +UNUSUAL_DEV( 0x14cd, 0x6116, 0x0160, 0x0160, "Super Top", "USB 2.0 SATA BRIDGE", USB_SC_CYP_ATACB, USB_PR_DEVICE, NULL, 0), --- linux-3.13.0.orig/drivers/usb/storage/unusual_devs.h +++ linux-3.13.0/drivers/usb/storage/unusual_devs.h @@ -101,6 +101,12 @@ "PhotoSmart R707", USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY), +UNUSUAL_DEV( 0x03f3, 0x0001, 0x0000, 0x9999, + "Adaptec", + "USBConnect 2000", + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_euscsi_init, + US_FL_SCM_MULT_TARG ), + /* Reported by Sebastian Kapfer * and Olaf Hering (different bcd's, same vendor/product) * for USB floppies that need the SINGLE_LUN enforcement. @@ -234,6 +240,27 @@ USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_MAX_SECTORS_64 ), +/* Reported by Daniele Forsi */ +UNUSUAL_DEV( 0x0421, 0x04b9, 0x0350, 0x0350, + "Nokia", + "5300", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_MAX_SECTORS_64 ), + +/* Patch submitted by Victor A. Santos */ +UNUSUAL_DEV( 0x0421, 0x05af, 0x0742, 0x0742, + "Nokia", + "305", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_MAX_SECTORS_64), + +/* Patch submitted by Mikhail Zolotaryov */ +UNUSUAL_DEV( 0x0421, 0x06aa, 0x1110, 0x1110, + "Nokia", + "502", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_MAX_SECTORS_64 ), + #ifdef NO_SDDR09 UNUSUAL_DEV( 0x0436, 0x0005, 0x0100, 0x0100, "Microtech", @@ -720,6 +747,12 @@ USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_SINGLE_LUN ), +UNUSUAL_DEV( 0x059b, 0x0040, 0x0100, 0x0100, + "Iomega", + "Jaz USB Adapter", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_SINGLE_LUN ), + /* Reported by */ UNUSUAL_DEV( 0x059f, 0x0643, 0x0000, 0x0000, "LaCie", @@ -1092,6 +1125,18 @@ USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_NOT_LOCKABLE), +UNUSUAL_DEV( 0x085a, 0x0026, 0x0100, 0x0133, + "Xircom", + "PortGear USB-SCSI (Mac USB Dock)", + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_euscsi_init, + US_FL_SCM_MULT_TARG ), + +UNUSUAL_DEV( 0x085a, 0x0028, 0x0100, 0x0133, + "Xircom", + "PortGear USB to SCSI Converter", + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_euscsi_init, + US_FL_SCM_MULT_TARG ), + /* Submitted by Jan De Luyck */ UNUSUAL_DEV( 0x08bd, 0x1100, 0x0000, 0x0000, "CITIZEN", @@ -1191,6 +1236,13 @@ USB_SC_DEVICE, USB_PR_DEVICE, option_ms_init, 0), +/* Reported by Timo Aaltonen */ +UNUSUAL_DEV( 0x0af0, 0x7011, 0x0000, 0x9999, + "Option", + "Mass Storage", + USB_SC_DEVICE, USB_PR_DEVICE, option_ms_init, + 0 ), + /* Reported by F. Aben * This device (wrongly) has a vendor-specific device descriptor. * The entry is needed so usb-storage can bind to it's mass-storage @@ -1448,6 +1500,13 @@ USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_CAPACITY ), +/* Reported by Moritz Moeller-Herrmann */ +UNUSUAL_DEV( 0x0fca, 0x8004, 0x0201, 0x0201, + "Research In Motion", + "BlackBerry Bold 9000", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_MAX_SECTORS_64 ), + /* Reported by Michael Stattmann */ UNUSUAL_DEV( 0x0fce, 0xd008, 0x0000, 0x0000, "Sony Ericsson", @@ -1908,6 +1967,13 @@ USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), +/* Reported by Michael Büsch */ +UNUSUAL_DEV( 0x152d, 0x0567, 0x0114, 0x0114, + "JMicron", + "USB to ATA/ATAPI Bridge", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_BROKEN_FUA ), + /* Reported by Alexandre Oliva * JMicron responds to USN and several other SCSI ioctls with a * residue that causes subsequent I/O requests to fail. */ @@ -1917,6 +1983,14 @@ USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE | US_FL_SANE_SENSE ), +/* Entrega Technologies U1-SC25 (later Xircom PortGear PGSCSI) + * and Mac USB Dock USB-SCSI */ +UNUSUAL_DEV( 0x1645, 0x0007, 0x0100, 0x0133, + "Entrega Technologies", + "USB to SCSI Converter", + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_euscsi_init, + US_FL_SCM_MULT_TARG ), + /* Reported by Robert Schedel * Note: this is a 'super top' device like the above 14cd/6600 device */ UNUSUAL_DEV( 0x1652, 0x6600, 0x0201, 0x0201, @@ -1939,6 +2013,12 @@ USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_BULK_IGNORE_TAG | US_FL_MAX_SECTORS_64 ), +UNUSUAL_DEV( 0x1822, 0x0001, 0x0000, 0x9999, + "Ariston Technologies", + "iConnect USB to SCSI adapter", + USB_SC_DEVICE, USB_PR_DEVICE, usb_stor_euscsi_init, + US_FL_SCM_MULT_TARG ), + /* Reported by Hans de Goede * These Appotech controllers are found in Picture Frames, they provide a * (buggy) emulation of a cdrom drive which contains the windows software --- linux-3.13.0.orig/drivers/uwb/lc-dev.c +++ linux-3.13.0/drivers/uwb/lc-dev.c @@ -431,16 +431,19 @@ uwb_dev->mac_addr = *bce->mac_addr; uwb_dev->dev_addr = bce->dev_addr; dev_set_name(&uwb_dev->dev, "%s", macbuf); + + /* plug the beacon cache */ + bce->uwb_dev = uwb_dev; + uwb_dev->bce = bce; + uwb_bce_get(bce); /* released in uwb_dev_sys_release() */ + result = uwb_dev_add(uwb_dev, &rc->uwb_dev.dev, rc); if (result < 0) { dev_err(dev, "new device %s: cannot instantiate device\n", macbuf); goto error_dev_add; } - /* plug the beacon cache */ - bce->uwb_dev = uwb_dev; - uwb_dev->bce = bce; - uwb_bce_get(bce); /* released in uwb_dev_sys_release() */ + dev_info(dev, "uwb device (mac %s dev %s) connected to %s %s\n", macbuf, devbuf, rc->uwb_dev.dev.parent->bus->name, dev_name(rc->uwb_dev.dev.parent)); @@ -448,6 +451,8 @@ return; error_dev_add: + bce->uwb_dev = NULL; + uwb_bce_put(bce); kfree(uwb_dev); return; } --- linux-3.13.0.orig/drivers/vfio/vfio_iommu_type1.c +++ linux-3.13.0/drivers/vfio/vfio_iommu_type1.c @@ -186,12 +186,12 @@ if (pfn_valid(pfn)) { bool reserved; struct page *tail = pfn_to_page(pfn); - struct page *head = compound_trans_head(tail); + struct page *head = compound_head(tail); reserved = !!(PageReserved(head)); if (head != tail) { /* * "head" is not a dangling pointer - * (compound_trans_head takes care of that) + * (compound_head takes care of that) * but the hugepage may have been split * from under us (and we may not hold a * reference count on the head page so it can --- linux-3.13.0.orig/drivers/vhost/net.c +++ linux-3.13.0/drivers/vhost/net.c @@ -70,7 +70,12 @@ }; struct vhost_net_ubuf_ref { - struct kref kref; + /* refcount follows semantics similar to kref: + * 0: object is released + * 1: no outstanding ubufs + * >1: outstanding ubufs + */ + atomic_t refcount; wait_queue_head_t wait; struct vhost_virtqueue *vq; }; @@ -116,14 +121,6 @@ vhost_net_zcopy_mask |= 0x1 << vq; } -static void vhost_net_zerocopy_done_signal(struct kref *kref) -{ - struct vhost_net_ubuf_ref *ubufs; - - ubufs = container_of(kref, struct vhost_net_ubuf_ref, kref); - wake_up(&ubufs->wait); -} - static struct vhost_net_ubuf_ref * vhost_net_ubuf_alloc(struct vhost_virtqueue *vq, bool zcopy) { @@ -134,21 +131,24 @@ ubufs = kmalloc(sizeof(*ubufs), GFP_KERNEL); if (!ubufs) return ERR_PTR(-ENOMEM); - kref_init(&ubufs->kref); + atomic_set(&ubufs->refcount, 1); init_waitqueue_head(&ubufs->wait); ubufs->vq = vq; return ubufs; } -static void vhost_net_ubuf_put(struct vhost_net_ubuf_ref *ubufs) +static int vhost_net_ubuf_put(struct vhost_net_ubuf_ref *ubufs) { - kref_put(&ubufs->kref, vhost_net_zerocopy_done_signal); + int r = atomic_sub_return(1, &ubufs->refcount); + if (unlikely(!r)) + wake_up(&ubufs->wait); + return r; } static void vhost_net_ubuf_put_and_wait(struct vhost_net_ubuf_ref *ubufs) { - kref_put(&ubufs->kref, vhost_net_zerocopy_done_signal); - wait_event(ubufs->wait, !atomic_read(&ubufs->kref.refcount)); + vhost_net_ubuf_put(ubufs); + wait_event(ubufs->wait, !atomic_read(&ubufs->refcount)); } static void vhost_net_ubuf_put_wait_and_free(struct vhost_net_ubuf_ref *ubufs) @@ -306,22 +306,21 @@ { struct vhost_net_ubuf_ref *ubufs = ubuf->ctx; struct vhost_virtqueue *vq = ubufs->vq; - int cnt = atomic_read(&ubufs->kref.refcount); + int cnt; /* set len to mark this desc buffers done DMA */ vq->heads[ubuf->desc].len = success ? VHOST_DMA_DONE_LEN : VHOST_DMA_FAILED_LEN; - vhost_net_ubuf_put(ubufs); + cnt = vhost_net_ubuf_put(ubufs); /* * Trigger polling thread if guest stopped submitting new buffers: - * in this case, the refcount after decrement will eventually reach 1 - * so here it is 2. + * in this case, the refcount after decrement will eventually reach 1. * We also trigger polling periodically after each 16 packets * (the value 16 here is more or less arbitrary, it's tuned to trigger * less than 10% of times). */ - if (cnt <= 2 || !(cnt % 16)) + if (cnt <= 1 || !(cnt % 16)) vhost_poll_queue(&vq->poll); } @@ -420,7 +419,7 @@ msg.msg_control = ubuf; msg.msg_controllen = sizeof(ubuf); ubufs = nvq->ubufs; - kref_get(&ubufs->kref); + atomic_inc(&ubufs->refcount); nvq->upend_idx = (nvq->upend_idx + 1) % UIO_MAXIOV; } else { msg.msg_control = NULL; @@ -502,9 +501,13 @@ r = -ENOBUFS; goto err; } - d = vhost_get_vq_desc(vq->dev, vq, vq->iov + seg, + r = vhost_get_vq_desc(vq->dev, vq, vq->iov + seg, ARRAY_SIZE(vq->iov) - seg, &out, &in, log, log_num); + if (unlikely(r < 0)) + goto err; + + d = r; if (d == vq->num) { r = 0; goto err; @@ -529,6 +532,12 @@ *iovcount = seg; if (unlikely(log)) *log_num = nlogs; + + /* Detect overrun */ + if (unlikely(datalen > 0)) { + r = UIO_MAXIOV + 1; + goto err; + } return headcount; err: vhost_discard_vq_desc(vq, headcount); @@ -584,6 +593,14 @@ /* On error, stop handling until the next kick. */ if (unlikely(headcount < 0)) break; + /* On overrun, truncate and discard */ + if (unlikely(headcount > UIO_MAXIOV)) { + msg.msg_iovlen = 1; + err = sock->ops->recvmsg(NULL, sock, &msg, + 1, MSG_DONTWAIT | MSG_TRUNC); + pr_debug("Discarded rx packet: len %zd\n", sock_len); + continue; + } /* OK, now we need to know about added descriptors. */ if (!headcount) { if (unlikely(vhost_enable_notify(&net->dev, vq))) { @@ -785,7 +802,7 @@ vhost_net_ubuf_put_and_wait(n->vqs[VHOST_NET_VQ_TX].ubufs); mutex_lock(&n->vqs[VHOST_NET_VQ_TX].vq.mutex); n->tx_flush = false; - kref_init(&n->vqs[VHOST_NET_VQ_TX].ubufs->kref); + atomic_set(&n->vqs[VHOST_NET_VQ_TX].ubufs->refcount, 1); mutex_unlock(&n->vqs[VHOST_NET_VQ_TX].vq.mutex); } } --- linux-3.13.0.orig/drivers/vhost/scsi.c +++ linux-3.13.0/drivers/vhost/scsi.c @@ -728,7 +728,7 @@ } se_sess = tv_nexus->tvn_se_sess; - tag = percpu_ida_alloc(&se_sess->sess_tag_pool, GFP_ATOMIC); + tag = percpu_ida_alloc(&se_sess->sess_tag_pool, TASK_RUNNING); if (tag < 0) { pr_err("Unable to obtain tag for tcm_vhost_cmd\n"); return ERR_PTR(-ENOMEM); @@ -1194,6 +1194,7 @@ vhost_scsi_set_endpoint(struct vhost_scsi *vs, struct vhost_scsi_target *t) { + struct se_portal_group *se_tpg; struct tcm_vhost_tport *tv_tport; struct tcm_vhost_tpg *tpg; struct tcm_vhost_tpg **vs_tpg; @@ -1241,6 +1242,21 @@ ret = -EEXIST; goto out; } + /* + * In order to ensure individual vhost-scsi configfs + * groups cannot be removed while in use by vhost ioctl, + * go ahead and take an explicit se_tpg->tpg_group.cg_item + * dependency now. + */ + se_tpg = &tpg->se_tpg; + ret = configfs_depend_item(se_tpg->se_tpg_tfo->tf_subsys, + &se_tpg->tpg_group.cg_item); + if (ret) { + pr_warn("configfs_depend_item() failed: %d\n", ret); + kfree(vs_tpg); + mutex_unlock(&tpg->tv_tpg_mutex); + goto out; + } tpg->tv_tpg_vhost_count++; tpg->vhost_scsi = vs; vs_tpg[tpg->tport_tpgt] = tpg; @@ -1283,6 +1299,7 @@ vhost_scsi_clear_endpoint(struct vhost_scsi *vs, struct vhost_scsi_target *t) { + struct se_portal_group *se_tpg; struct tcm_vhost_tport *tv_tport; struct tcm_vhost_tpg *tpg; struct vhost_virtqueue *vq; @@ -1331,6 +1348,13 @@ vs->vs_tpg[target] = NULL; match = true; mutex_unlock(&tpg->tv_tpg_mutex); + /* + * Release se_tpg->tpg_group.cg_item configfs dependency now + * to allow vhost-scsi WWPN se_tpg->tpg_group shutdown to occur. + */ + se_tpg = &tpg->se_tpg; + configfs_undepend_item(se_tpg->se_tpg_tfo->tf_subsys, + &se_tpg->tpg_group.cg_item); } if (match) { for (i = 0; i < VHOST_SCSI_MAX_VQ; i++) { --- linux-3.13.0.orig/drivers/video/aty/mach64_accel.c +++ linux-3.13.0/drivers/video/aty/mach64_accel.c @@ -4,6 +4,7 @@ */ #include +#include #include #include